diff --git a/clients/aws-sdk-acm/README.md b/clients/aws-sdk-acm/README.md new file mode 100644 index 00000000..3bb0df40 --- /dev/null +++ b/clients/aws-sdk-acm/README.md @@ -0,0 +1,12 @@ + + +## AWS Certificate Manager Client + +aws_sdk_acm client + +### Documentation + +You can use Certificate Manager (ACM) to manage SSL/TLS certificates for +your Amazon Web Services-based websites and applications. For more +information about using ACM, see the [Certificate Manager User +Guide](https://docs.aws.amazon.com/acm/latest/userguide/). diff --git a/clients/aws-sdk-acm/pyproject.toml b/clients/aws-sdk-acm/pyproject.toml new file mode 100644 index 00000000..f5a1e1e3 --- /dev/null +++ b/clients/aws-sdk-acm/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_acm" +version = "0.12.0" +description = "aws_sdk_acm client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_acm"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/__init__.py b/clients/aws-sdk-acm/src/aws_sdk_acm/__init__.py new file mode 100644 index 00000000..07c55b9f --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import ACMClient + from .config import ACMConfig + from .aio.client import AsyncACMClient + from .aio.config import AsyncACMConfig + +__all__ = ["ACMClient", "ACMConfig", "AsyncACMClient", "AsyncACMConfig"] + +_EXPORTS = { + "ACMClient": ".client", + "ACMConfig": ".config", + "AsyncACMClient": ".aio.client", + "AsyncACMConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/_private/__init__.py b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/_private/endpoints.py b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/endpoints.py new file mode 100644 index 00000000..b7edd86a --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/endpoints.py @@ -0,0 +1,60 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.acm#CertificateManager.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", True, None, "AWS::Region", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("ServiceType", "string", True, None, None, "service_type"), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 1: PartitionResult = aws.partition(Region) + ((2, "stringEquals", (0, "ServiceType"), "ACM-ACME"), None), # 2: stringEquals(ServiceType, "ACM-ACME") + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws"), None), # 4: stringEquals(PartitionResult#name, "aws") + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 5: booleanEquals(UseDualStack, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 6: stringEquals(PartitionResult#name, "aws-us-gov") + ), + results=( + None, # 0: no match + (6, "{Endpoint}", None, ()), # 1 + (5, "FIPS endpoints are not available for ACME operations"), # 2 + (6, "https://acm-acme.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 3 + (5, "ACME operations are only available in the aws and aws-us-gov partitions"), # 4 + (6, "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 5 + (6, "https://acm.{Region}.amazonaws.com", None, ()), # 6 + (6, "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 7 + (6, "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 8 + (6, "https://acm.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 9 + (5, "Region must be set to resolve an endpoint."), # 10 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 100_000_001, 3, + 1, 4, 100_000_010, + 2, 9, 5, + 3, 7, 6, + 5, 100_000_008, 100_000_009, + 5, 100_000_005, 8, + 6, 100_000_006, 100_000_007, + 3, 12, 10, + 4, 100_000_003, 11, + 6, 100_000_003, 100_000_004, + 4, 100_000_002, 13, + 6, 100_000_002, 100_000_004, + ), +) +# fmt: on diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/_private/schemas.py b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/schemas.py new file mode 100644 index 00000000..f9bb631f --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/_private/schemas.py @@ -0,0 +1,3546 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.acm" +_SEM = "ServiceErrorMessage" +_ADE = "AccessDeniedException" +_s = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_aQE = "aws.protocols#awsQueryError" +_M = "Message" +_AAI = "AcmeAccountId" +_A = "Arn" +_CKPO = "CertificateKeyPairOrigin" +_AM = "AWS_MANAGED" +_sV = "smithy.api#enumValue" +_ACME = "ACME" +_CP = "CUSTOMER_PROVIDED" +_TS = "TStamp" +_NB = "NullableBoolean" +_CE = "CertificateExport" +_ENABLED = "ENABLED" +_DISABLED = "DISABLED" +_CMB = "CertificateManagedBy" +_CLOUDFRONT = "CLOUDFRONT" +_RE = "RenewalEligibility" +_ELIGIBLE = "ELIGIBLE" +_INELIGIBLE = "INELIGIBLE" +_RS = "RenewalStatus" +_PAR = "PENDING_AUTO_RENEWAL" +_PV = "PENDING_VALIDATION" +_SUCCESS = "SUCCESS" +_FAILED = "FAILED" +_CS = "CertificateStatus" +_ISSUED = "ISSUED" +_INACTIVE = "INACTIVE" +_EXPIRED = "EXPIRED" +_VTO = "VALIDATION_TIMED_OUT" +_REVOKED = "REVOKED" +_CT = "CertificateType" +_IMPORTED = "IMPORTED" +_AI = "AMAZON_ISSUED" +_PRIVATE = "PRIVATE" +_VM = "ValidationMethod" +_EMAIL = "EMAIL" +_DNS = "DNS" +_HTTP = "HTTP" +_ACM = "AcmCertificateMetadata" +_CA = "CreatedAt" +_E = "Exported" +_IA = "ImportedAt" +_IU = "InUse" +_IAs = "IssuedAt" +_RA = "RevokedAt" +_S = "Status" +_T = "Type" +_EO = "ExportOption" +_MB = "ManagedBy" +_AEA = "AcmeEndpointArn" +_ACMF = "AcmCertificateMetadataFilter" +_AEABA = "AcmeExternalAccountBindingArn" +_CL = "ContactList" +_sm = "smithy.api#sensitive" +_m = "member" +_AAS = "AcmeAccountStatus" +_VALID = "VALID" +_DEACTIVATED = "DEACTIVATED" +_AA = "AcmeAccount" +_AU = "AccountUrl" +_PKT = "PublicKeyThumbprint" +_C = "Contacts" +_AASc = "AcmeAccountSummary" +_AAL = "AcmeAccountList" +_AAB = "AcmeAuthorizationBehavior" +_PA = "PRE_APPROVED" +_AC = "AcmeContact" +_REQUIRED = "REQUIRED" +_NR = "NOT_REQUIRED" +_ADVA = "AcmeDomainValidationArn" +_DN = "DomainName" +_ADVFR = "AcmeDomainValidationFailureReason" +_AD = "ACCESS_DENIED" +_DM = "DOMAIN_MISMATCH" +_DNA = "DOMAIN_NOT_ALLOWED" +_ENA = "ENDPOINT_NOT_ACTIVE" +_HZNF = "HOSTED_ZONE_NOT_FOUND" +_IF = "INTERNAL_FAILURE" +_ICB = "INVALID_CHANGE_BATCH" +_IPD = "INVALID_PUBLIC_DOMAIN" +_TO = "TIMED_OUT" +_FD = "FailureDetails" +_R = "Reason" +_DSO = "DomainScopeOption" +_DS = "DomainScope" +_ED = "ExactDomain" +_Su = "Subdomains" +_W = "Wildcards" +_HZI = "HostedZoneId" +_St = "String" +_RT = "RecordType" +_CNAME = "CNAME" +_RR = "ResourceRecord" +_N = "Name" +_smi = "smithy.api#required" +_V = "Value" +_DPD = "DnsPrevalidationDetails" +_PD = "PrevalidationDetails" +_DP = "DnsPrevalidation" +_PT = "PrevalidationType" +_DP_ = "DNS_PREVALIDATION" +_ADVS = "AcmeDomainValidationStatus" +_VALIDATING = "VALIDATING" +_INVALID = "INVALID" +_DELETING = "DELETING" +_ADV = "AcmeDomainValidation" +_UA = "UpdatedAt" +_ADVSc = "AcmeDomainValidationSummary" +_ADVL = "AcmeDomainValidationList" +_PKA = "PublicKeyAlgorithm" +_R_ = "RSA_2048" +_EPV = "EC_PRIME256_V1" +_Ep = "EC_prime256v1" +_ESR = "EC_SECP384_R1" +_Es = "EC_secp384r1" +_PKAL = "PublicKeyAlgorithmList" +_PCA = "PublicCertificateAuthority" +_AKA = "AllowedKeyAlgorithms" +_CAe = "CertificateAuthority" +_TK = "TagKey" +_TV = "TagValue" +_Ta = "Tag" +_K = "Key" +_TL = "TagList" +_AES = "AcmeEndpointStatus" +_CREATING = "CREATING" +_ACTIVE = "ACTIVE" +_AE = "AcmeEndpoint" +_EU = "EndpointUrl" +_FR = "FailureReason" +_AB = "AuthorizationBehavior" +_Co = "Contact" +_CTe = "CertificateTags" +_AESc = "AcmeEndpointSummary" +_AEL = "AcmeEndpointList" +_RAo = "RoleArn" +_AEAB = "AcmeExternalAccountBinding" +_EA = "ExpiresAt" +_LUA = "LastUsedAt" +_AEABS = "AcmeExternalAccountBindingSummary" +_AEABL = "AcmeExternalAccountBindingList" +_ATTCI = "AddTagsToCertificateInput" +_sSI = "smithy.synthetic#originalShapeId" +_cATTCR = "com.amazonaws.acm#AddTagsToCertificateRequest" +_smit = "smithy.api#input" +_CAer = "CertificateArn" +_Tag = "Tags" +_ATTCO = "AddTagsToCertificateOutput" +_sU = "smithy.api#Unit" +_smith = "smithy.api#output" +_IAE = "InvalidArnException" +_me = "message" +_IPE = "InvalidParameterException" +_ITE = "InvalidTagException" +_RNFE = "ResourceNotFoundException" +_TPE = "TagPolicyException" +_AEM = "AvailabilityErrorMessage" +_CATR = "CoralAvailabilityThrottlingReason" +_CATRo = "CoralAvailabilityThrottledResource" +_TR = "ThrottlingReason" +_r = "reason" +_re = "resource" +_TRL = "ThrottlingReasonList" +_TE = "ThrottlingException" +_tR = "throttlingReasons" +_TMTE = "TooManyTagsException" +_VEM = "ValidationExceptionMessage" +_VE = "ValidationException" +_ATTC = "AddTagsToCertificate" +_sCP = "smithy.rules#staticContextParams" +_CB = "CertificateBody" +_CBB = "CertificateBodyBlob" +_CC = "CertificateChain" +_CCB = "CertificateChainBlob" +_DNSo = "DomainNameString" +_HR = "HttpRedirect" +_RF = "RedirectFrom" +_RTe = "RedirectTo" +_VEL = "ValidationEmailList" +_DSo = "DomainStatus" +_DV = "DomainValidation" +_VEa = "ValidationEmails" +_VD = "ValidationDomain" +_VS = "ValidationStatus" +_DVL = "DomainValidationList" +_EKUN = "ExtendedKeyUsageName" +_TWSA = "TLS_WEB_SERVER_AUTHENTICATION" +_TWCA = "TLS_WEB_CLIENT_AUTHENTICATION" +_CS_ = "CODE_SIGNING" +_EP = "EMAIL_PROTECTION" +_TS_ = "TIME_STAMPING" +_OS = "OCSP_SIGNING" +_IES = "IPSEC_END_SYSTEM" +_IT = "IPSEC_TUNNEL" +_IU_ = "IPSEC_USER" +_ANY = "ANY" +_NONE = "NONE" +_CUSTOM = "CUSTOM" +_EKU = "ExtendedKeyUsage" +_OID = "OID" +_EKUL = "ExtendedKeyUsageList" +_NAC = "NO_AVAILABLE_CONTACTS" +_AVR = "ADDITIONAL_VERIFICATION_REQUIRED" +_DVD = "DOMAIN_VALIDATION_DENIED" +_CE_ = "CAA_ERROR" +_PLE = "PCA_LIMIT_EXCEEDED" +_PIA = "PCA_INVALID_ARN" +_PIS = "PCA_INVALID_STATE" +_PRF = "PCA_REQUEST_FAILED" +_PNCV = "PCA_NAME_CONSTRAINTS_VALIDATION" +_PRNF = "PCA_RESOURCE_NOT_FOUND" +_PIA_ = "PCA_INVALID_ARGS" +_PID = "PCA_INVALID_DURATION" +_PAD = "PCA_ACCESS_DENIED" +_SNF = "SLR_NOT_FOUND" +_OTHER = "OTHER" +_IUL = "InUseList" +_KA = "KeyAlgorithm" +_R__ = "RSA_1024" +_R___ = "RSA_3072" +_R____ = "RSA_4096" +_Es_ = "EC_secp521r1" +_KUN = "KeyUsageName" +_DS_ = "DIGITAL_SIGNATURE" +_NR_ = "NON_REPUDATION" +_NR__ = "NON_REPUDIATION" +_KE = "KEY_ENCIPHERMENT" +_DE = "DATA_ENCIPHERMENT" +_KA_ = "KEY_AGREEMENT" +_CS__ = "CERTIFICATE_SIGNING" +_CS___ = "CRL_SIGNING" +_EO_ = "ENCHIPER_ONLY" +_EO__ = "ENCIPHER_ONLY" +_DO = "DECIPHER_ONLY" +_KU = "KeyUsage" +_KUL = "KeyUsageList" +_CTLP = "CertificateTransparencyLoggingPreference" +_CO = "CertificateOptions" +_Ex = "Export" +_RSe = "RenewalSummary" +_DVO = "DomainValidationOptions" +_RSR = "RenewalStatusReason" +_RRe = "RevocationReason" +_UNSPECIFIED = "UNSPECIFIED" +_KC = "KEY_COMPROMISE" +_CC_ = "CA_COMPROMISE" +_AC_ = "AFFILIATION_CHANGED" +_SUPERCEDED = "SUPERCEDED" +_SUPERSEDED = "SUPERSEDED" +_COO = "CESSATION_OF_OPERATION" +_CH = "CERTIFICATE_HOLD" +_RFC = "REMOVE_FROM_CRL" +_PW = "PRIVILEGE_WITHDRAWN" +_AAC = "A_A_COMPROMISE" +_DL = "DomainList" +_DVMUS = "DomainValidationMethodUpdateSummary" +_F = "From" +_To = "To" +_US = "UpdateStatus" +_PDV = "PENDING_DOMAIN_VALIDATION" +_UT = "UpdateType" +_DVM = "DOMAIN_VALIDATION_METHOD" +_USp = "UpdateSummary" +_RAe = "RequestedAt" +_CD = "CertificateDetail" +_SAN = "SubjectAlternativeNames" +_Se = "Serial" +_Sub = "Subject" +_I = "Issuer" +_NBo = "NotBefore" +_NA = "NotAfter" +_SA = "SignatureAlgorithm" +_IUB = "InUseBy" +_KUe = "KeyUsages" +_EKUx = "ExtendedKeyUsages" +_CAA = "CertificateAuthorityArn" +_O = "Options" +_TRi = "TimestampRange" +_Sta = "Start" +_En = "End" +_SN = "SerialNumber" +_COo = "ComparisonOperator" +_CONTAINS = "CONTAINS" +_EQUALS = "EQUALS" +_FS = "FilterString" +_CNF = "CommonNameFilter" +_SF = "SubjectFilter" +_CN = "CommonName" +_DNF = "DnsNameFilter" +_SANF = "SubjectAlternativeNameFilter" +_DNn = "DnsName" +_XAF = "X509AttributeFilter" +_SANu = "SubjectAlternativeName" +_CF = "CertificateFilter" +_CKPOe = "CertificateKeyPairOrigins" +_CEo = "ConflictException" +_DPO = "DnsPrevalidationOptions" +_PO = "PrevalidationOptions" +_CADVI = "CreateAcmeDomainValidationInput" +_cCADVR = "com.amazonaws.acm#CreateAcmeDomainValidationRequest" +_ITd = "IdempotencyToken" +_sT = "smithy.api#idempotencyToken" +_CADVO = "CreateAcmeDomainValidationOutput" +_cCADVRo = "com.amazonaws.acm#CreateAcmeDomainValidationResponse" +_ISE = "InternalServerException" +_se = "server" +_SQEE = "ServiceQuotaExceededException" +_CADV = "CreateAcmeDomainValidation" +_CAEI = "CreateAcmeEndpointInput" +_cCAER = "com.amazonaws.acm#CreateAcmeEndpointRequest" +_smithy = "smithy.api#default" +_CAEO = "CreateAcmeEndpointOutput" +_cCAERo = "com.amazonaws.acm#CreateAcmeEndpointResponse" +_CAE = "CreateAcmeEndpoint" +_TT = "TimeType" +_MINUTES = "MINUTES" +_HOURS = "HOURS" +_DAYS = "DAYS" +_Exp = "Expiration" +_CAEABI = "CreateAcmeExternalAccountBindingInput" +_cCAEABR = "com.amazonaws.acm#CreateAcmeExternalAccountBindingRequest" +_CAEABO = "CreateAcmeExternalAccountBindingOutput" +_cCAEABRo = "com.amazonaws.acm#CreateAcmeExternalAccountBindingResponse" +_EAB = "ExternalAccountBinding" +_CAEAB = "CreateAcmeExternalAccountBinding" +_DADVI = "DeleteAcmeDomainValidationInput" +_cDADVR = "com.amazonaws.acm#DeleteAcmeDomainValidationRequest" +_DADVO = "DeleteAcmeDomainValidationOutput" +_DADV = "DeleteAcmeDomainValidation" +_DAEI = "DeleteAcmeEndpointInput" +_cDAER = "com.amazonaws.acm#DeleteAcmeEndpointRequest" +_DAEO = "DeleteAcmeEndpointOutput" +_DAE = "DeleteAcmeEndpoint" +_DAEABI = "DeleteAcmeExternalAccountBindingInput" +_cDAEABR = "com.amazonaws.acm#DeleteAcmeExternalAccountBindingRequest" +_DAEABO = "DeleteAcmeExternalAccountBindingOutput" +_DAEAB = "DeleteAcmeExternalAccountBinding" +_DCI = "DeleteCertificateInput" +_cDCR = "com.amazonaws.acm#DeleteCertificateRequest" +_DCO = "DeleteCertificateOutput" +_RIUE = "ResourceInUseException" +_DC = "DeleteCertificate" +_DAAI = "DescribeAcmeAccountInput" +_cDAAR = "com.amazonaws.acm#DescribeAcmeAccountRequest" +_DAAO = "DescribeAcmeAccountOutput" +_cDAARo = "com.amazonaws.acm#DescribeAcmeAccountResponse" +_DAA = "DescribeAcmeAccount" +_DADVIe = "DescribeAcmeDomainValidationInput" +_cDADVRo = "com.amazonaws.acm#DescribeAcmeDomainValidationRequest" +_DADVOe = "DescribeAcmeDomainValidationOutput" +_cDADVRom = "com.amazonaws.acm#DescribeAcmeDomainValidationResponse" +_DADVe = "DescribeAcmeDomainValidation" +_DAEIe = "DescribeAcmeEndpointInput" +_cDAERo = "com.amazonaws.acm#DescribeAcmeEndpointRequest" +_DAEOe = "DescribeAcmeEndpointOutput" +_cDAERom = "com.amazonaws.acm#DescribeAcmeEndpointResponse" +_DAEe = "DescribeAcmeEndpoint" +_DAEABIe = "DescribeAcmeExternalAccountBindingInput" +_cDAEABRo = "com.amazonaws.acm#DescribeAcmeExternalAccountBindingRequest" +_DAEABOe = "DescribeAcmeExternalAccountBindingOutput" +_cDAEABRom = "com.amazonaws.acm#DescribeAcmeExternalAccountBindingResponse" +_DAEABe = "DescribeAcmeExternalAccountBinding" +_DCIe = "DescribeCertificateInput" +_cDCRo = "com.amazonaws.acm#DescribeCertificateRequest" +_DCOe = "DescribeCertificateOutput" +_cDCRom = "com.amazonaws.acm#DescribeCertificateResponse" +_Ce = "Certificate" +_DCe = "DescribeCertificate" +_PB = "PassphraseBlob" +_ECI = "ExportCertificateInput" +_cECR = "com.amazonaws.acm#ExportCertificateRequest" +_P = "Passphrase" +_PK = "PrivateKey" +_ECO = "ExportCertificateOutput" +_cECRo = "com.amazonaws.acm#ExportCertificateResponse" +_RIPE = "RequestInProgressException" +_EC = "ExportCertificate" +_GACI = "GetAccountConfigurationInput" +_PI = "PositiveInteger" +_EEC = "ExpiryEventsConfiguration" +_DBE = "DaysBeforeExpiry" +_GACO = "GetAccountConfigurationOutput" +_cGACR = "com.amazonaws.acm#GetAccountConfigurationResponse" +_EE = "ExpiryEvents" +_GAC = "GetAccountConfiguration" +_GAEABCI = "GetAcmeExternalAccountBindingCredentialsInput" +_cGAEABCR = "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsRequest" +_MK = "MacKey" +_GAEABCO = "GetAcmeExternalAccountBindingCredentialsOutput" +_cGAEABCRo = "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsResponse" +_KI = "KeyId" +_GAEABC = "GetAcmeExternalAccountBindingCredentials" +_GCI = "GetCertificateInput" +_cGCR = "com.amazonaws.acm#GetCertificateRequest" +_GCO = "GetCertificateOutput" +_cGCRo = "com.amazonaws.acm#GetCertificateResponse" +_GC = "GetCertificate" +_PKB = "PrivateKeyBlob" +_ICI = "ImportCertificateInput" +_cICR = "com.amazonaws.acm#ImportCertificateRequest" +_ICO = "ImportCertificateOutput" +_cICRo = "com.amazonaws.acm#ImportCertificateResponse" +_LEE = "LimitExceededException" +_IC = "ImportCertificate" +_LAAI = "ListAcmeAccountsInput" +_cLAAR = "com.amazonaws.acm#ListAcmeAccountsRequest" +_NT = "NextToken" +_MR = "MaxResults" +_LAAO = "ListAcmeAccountsOutput" +_cLAARo = "com.amazonaws.acm#ListAcmeAccountsResponse" +_AAc = "AcmeAccounts" +_LAA = "ListAcmeAccounts" +_LADVI = "ListAcmeDomainValidationsInput" +_cLADVR = "com.amazonaws.acm#ListAcmeDomainValidationsRequest" +_LADVO = "ListAcmeDomainValidationsOutput" +_cLADVRo = "com.amazonaws.acm#ListAcmeDomainValidationsResponse" +_ADVc = "AcmeDomainValidations" +_LADV = "ListAcmeDomainValidations" +_LAEI = "ListAcmeEndpointsInput" +_cLAER = "com.amazonaws.acm#ListAcmeEndpointsRequest" +_LAEO = "ListAcmeEndpointsOutput" +_cLAERo = "com.amazonaws.acm#ListAcmeEndpointsResponse" +_AEc = "AcmeEndpoints" +_LAE = "ListAcmeEndpoints" +_LAEABI = "ListAcmeExternalAccountBindingsInput" +_cLAEABR = "com.amazonaws.acm#ListAcmeExternalAccountBindingsRequest" +_LAEABO = "ListAcmeExternalAccountBindingsOutput" +_cLAEABRo = "com.amazonaws.acm#ListAcmeExternalAccountBindingsResponse" +_EABx = "ExternalAccountBindings" +_LAEAB = "ListAcmeExternalAccountBindings" +_IAEn = "InvalidArgsException" +_MI = "MaxItems" +_LCDVI = "ListCertificateDomainValidationsInput" +_cLCDVR = "com.amazonaws.acm#ListCertificateDomainValidationsRequest" +_DVC = "DnsValidationChallenge" +_EVC = "EmailValidationChallenge" +_VC = "ValidationChallenge" +_VCa = "ValidationConfiguration" +_DVS = "DomainValidationSummary" +_AVC = "ActiveValidationConfiguration" +_RVC = "RequestedValidationConfiguration" +_DVSL = "DomainValidationSummaryList" +_LCDVO = "ListCertificateDomainValidationsOutput" +_cLCDVRo = "com.amazonaws.acm#ListCertificateDomainValidationsResponse" +_LCDV = "ListCertificateDomainValidations" +_CSe = "CertificateStatuses" +_EKUFL = "ExtendedKeyUsageFilterList" +_KAL = "KeyAlgorithmList" +_KUFL = "KeyUsageFilterList" +_Fi = "Filters" +_eKU = "extendedKeyUsage" +_kU = "keyUsage" +_kT = "keyTypes" +_eO = "exportOption" +_mB = "managedBy" +_SB = "SortBy" +_CA_ = "CREATED_AT" +_SO = "SortOrder" +_ASCENDING = "ASCENDING" +_DESCENDING = "DESCENDING" +_LCI = "ListCertificatesInput" +_cLCR = "com.amazonaws.acm#ListCertificatesRequest" +_In = "Includes" +_EKUNx = "ExtendedKeyUsageNames" +_KUNe = "KeyUsageNames" +_CSer = "CertificateSummary" +_SANS = "SubjectAlternativeNameSummaries" +_HASAN = "HasAdditionalSubjectAlternativeNames" +_CSL = "CertificateSummaryList" +_LCO = "ListCertificatesOutput" +_cLCRo = "com.amazonaws.acm#ListCertificatesResponse" +_LC = "ListCertificates" +_LTFCI = "ListTagsForCertificateInput" +_cLTFCR = "com.amazonaws.acm#ListTagsForCertificateRequest" +_LTFCO = "ListTagsForCertificateOutput" +_cLTFCRo = "com.amazonaws.acm#ListTagsForCertificateResponse" +_LTFC = "ListTagsForCertificate" +_LTFRI = "ListTagsForResourceInput" +_cLTFRR = "com.amazonaws.acm#ListTagsForResourceRequest" +_RAes = "ResourceArn" +_LTFRO = "ListTagsForResourceOutput" +_cLTFRRo = "com.amazonaws.acm#ListTagsForResourceResponse" +_LTFR = "ListTagsForResource" +_PACI = "PutAccountConfigurationInput" +_cPACR = "com.amazonaws.acm#PutAccountConfigurationRequest" +_PACO = "PutAccountConfigurationOutput" +_PAC = "PutAccountConfiguration" +_RTFCI = "RemoveTagsFromCertificateInput" +_cRTFCR = "com.amazonaws.acm#RemoveTagsFromCertificateRequest" +_RTFCO = "RemoveTagsFromCertificateOutput" +_RTFC = "RemoveTagsFromCertificate" +_RCI = "RenewCertificateInput" +_cRCR = "com.amazonaws.acm#RenewCertificateRequest" +_RCO = "RenewCertificateOutput" +_RC = "RenewCertificate" +_IDVOE = "InvalidDomainValidationOptionsException" +_PAc = "PcaArn" +_DVOo = "DomainValidationOption" +_DVOL = "DomainValidationOptionList" +_RCIe = "RequestCertificateInput" +_cRCRo = "com.amazonaws.acm#RequestCertificateRequest" +_RCOe = "RequestCertificateOutput" +_cRCRom = "com.amazonaws.acm#RequestCertificateResponse" +_RCe = "RequestCertificate" +_ISEn = "InvalidStateException" +_RVEI = "ResendValidationEmailInput" +_cRVER = "com.amazonaws.acm#ResendValidationEmailRequest" +_D = "Domain" +_RVEO = "ResendValidationEmailOutput" +_RVE = "ResendValidationEmail" +_RAAI = "RevokeAcmeAccountInput" +_cRAAR = "com.amazonaws.acm#RevokeAcmeAccountRequest" +_RAAO = "RevokeAcmeAccountOutput" +_RAA = "RevokeAcmeAccount" +_RAEABI = "RevokeAcmeExternalAccountBindingInput" +_cRAEABR = "com.amazonaws.acm#RevokeAcmeExternalAccountBindingRequest" +_RAEABO = "RevokeAcmeExternalAccountBindingOutput" +_RAEAB = "RevokeAcmeExternalAccountBinding" +_RCIev = "RevokeCertificateInput" +_cRCRoma = "com.amazonaws.acm#RevokeCertificateRequest" +_RCOev = "RevokeCertificateOutput" +_cRCRomam = "com.amazonaws.acm#RevokeCertificateResponse" +_RCev = "RevokeCertificate" +_SMR = "SearchMaxResults" +_SCSB = "SearchCertificatesSortBy" +_NA_ = "NOT_AFTER" +_STATUS = "STATUS" +_RS_ = "RENEWAL_STATUS" +_EXPORTED = "EXPORTED" +_IU__ = "IN_USE" +_NB_ = "NOT_BEFORE" +_KA__ = "KEY_ALGORITHM" +_TYPE = "TYPE" +_CA__ = "CERTIFICATE_ARN" +_CN_ = "COMMON_NAME" +_RA_ = "REVOKED_AT" +_RE_ = "RENEWAL_ELIGIBILITY" +_IA_ = "ISSUED_AT" +_MB_ = "MANAGED_BY" +_EO___ = "EXPORT_OPTION" +_VM_ = "VALIDATION_METHOD" +_IA__ = "IMPORTED_AT" +_AEA_ = "ACME_ENDPOINT_ARN" +_AAI_ = "ACME_ACCOUNT_ID" +_CKPO_ = "CERTIFICATE_KEY_PAIR_ORIGIN" +_SCSO = "SearchCertificatesSortOrder" +_CM = "CertificateMetadata" +_CAu = "CustomAttribute" +_OI = "ObjectIdentifier" +_CAL = "CustomAttributeList" +_DCL = "DomainComponentList" +_DNi = "DistinguishedName" +_DCo = "DomainComponents" +_Cou = "Country" +_CAus = "CustomAttributes" +_DNQ = "DistinguishedNameQualifier" +_GQ = "GenerationQualifier" +_GN = "GivenName" +_Ini = "Initials" +_L = "Locality" +_Or = "Organization" +_OU = "OrganizationalUnit" +_Ps = "Pseudonym" +_Stat = "State" +_Sur = "Surname" +_Ti = "Title" +_ON = "OtherName" +_GNe = "GeneralName" +_DNir = "DirectoryName" +_IAp = "IpAddress" +_RI = "RegisteredId" +_RN = "Rfc822Name" +_URI = "UniformResourceIdentifier" +_GNL = "GeneralNameList" +_XA = "X509Attributes" +_CSR = "CertificateSearchResult" +_CSRL = "CertificateSearchResultList" +_SCO = "SearchCertificatesOutput" +_cSCR = "com.amazonaws.acm#SearchCertificatesResponse" +_Re = "Results" +_TRI = "TagResourceInput" +_cTRR = "com.amazonaws.acm#TagResourceRequest" +_TRO = "TagResourceOutput" +_TRa = "TagResource" +_TKL = "TagKeyList" +_URIn = "UntagResourceInput" +_cURR = "com.amazonaws.acm#UntagResourceRequest" +_TKa = "TagKeys" +_URO = "UntagResourceOutput" +_UR = "UntagResource" +_UADVI = "UpdateAcmeDomainValidationInput" +_cUADVR = "com.amazonaws.acm#UpdateAcmeDomainValidationRequest" +_UADVO = "UpdateAcmeDomainValidationOutput" +_UADV = "UpdateAcmeDomainValidation" +_UAEI = "UpdateAcmeEndpointInput" +_cUAER = "com.amazonaws.acm#UpdateAcmeEndpointRequest" +_UAEO = "UpdateAcmeEndpointOutput" +_UAE = "UpdateAcmeEndpoint" +_UCOI = "UpdateCertificateOptionsInput" +_cUCOR = "com.amazonaws.acm#UpdateCertificateOptionsRequest" +_UCOO = "UpdateCertificateOptionsOutput" +_UCO = "UpdateCertificateOptions" +_CFS = "CertificateFilterStatement" +_An = "And" +_Or_ = "Or" +_No = "Not" +_Fil = "Filter" +_CFSL = "CertificateFilterStatementList" +_SCI = "SearchCertificatesInput" +_cSCRo = "com.amazonaws.acm#SearchCertificatesRequest" +_FSi = "FilterStatement" +_SC = "SearchCertificates" +_CMe = "CertificateManager" +_a = "aws.auth#sigv4" +_a_ = "aws.protocols#awsJson1_1" +_aw = "aws.api#service" + +SERVICE_ERROR_MESSAGE: StaticSchema = (3, n0, _SEM, 0) + +ACCESS_DENIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _ADE, + { + _s: _c, + _sE: 403, + _aQE: MappingProxyType({"code": "AccessDenied", "httpResponseCode": 403}), + }, + (_M,), + ((SERVICE_ERROR_MESSAGE, 0),), +) + +ACME_ACCOUNT_ID: StaticSchema = (3, n0, _AAI, 0) + +ARN: StaticSchema = (3, n0, _A, 0) + +CERTIFICATE_KEY_PAIR_ORIGIN: StaticSchema = ( + 14, + n0, + _CKPO, + 0, + (_AM, _ACME, _CP), + ((-1, {_sV: _AM}), (-1, {_sV: _ACME}), (-1, {_sV: _CP})), +) + +T_STAMP: StaticSchema = (4, n0, _TS, 0) + +NULLABLE_BOOLEAN: StaticSchema = (2, n0, _NB, 0) + +CERTIFICATE_EXPORT: StaticSchema = ( + 14, + n0, + _CE, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +CERTIFICATE_MANAGED_BY: StaticSchema = ( + 14, + n0, + _CMB, + 0, + (_CLOUDFRONT,), + ((-1, {_sV: _CLOUDFRONT}),), +) + +RENEWAL_ELIGIBILITY: StaticSchema = ( + 14, + n0, + _RE, + 0, + (_ELIGIBLE, _INELIGIBLE), + ((-1, {_sV: _ELIGIBLE}), (-1, {_sV: _INELIGIBLE})), +) + +RENEWAL_STATUS: StaticSchema = ( + 14, + n0, + _RS, + 0, + (_PAR, _PV, _SUCCESS, _FAILED), + ((-1, {_sV: _PAR}), (-1, {_sV: _PV}), (-1, {_sV: _SUCCESS}), (-1, {_sV: _FAILED})), +) + +CERTIFICATE_STATUS: StaticSchema = ( + 14, + n0, + _CS, + 0, + (_PV, _ISSUED, _INACTIVE, _EXPIRED, _VTO, _REVOKED, _FAILED), + ( + (-1, {_sV: _PV}), + (-1, {_sV: _ISSUED}), + (-1, {_sV: _INACTIVE}), + (-1, {_sV: _EXPIRED}), + (-1, {_sV: _VTO}), + (-1, {_sV: _REVOKED}), + (-1, {_sV: _FAILED}), + ), +) + +CERTIFICATE_TYPE: StaticSchema = ( + 14, + n0, + _CT, + 0, + (_IMPORTED, _AI, _PRIVATE), + ((-1, {_sV: _IMPORTED}), (-1, {_sV: _AI}), (-1, {_sV: _PRIVATE})), +) + +VALIDATION_METHOD: StaticSchema = ( + 14, + n0, + _VM, + 0, + (_EMAIL, _DNS, _HTTP), + ((-1, {_sV: _EMAIL}), (-1, {_sV: _DNS}), (-1, {_sV: _HTTP})), +) + +ACM_CERTIFICATE_METADATA: StaticSchema = ( + 18, + n0, + _ACM, + 0, + (_CA, _E, _IA, _IU, _IAs, _RE, _RA, _S, _RS, _T, _EO, _MB, _VM, _CKPO, _AEA, _AAI), + ( + (T_STAMP, 0), + (NULLABLE_BOOLEAN, 0), + (T_STAMP, 0), + (NULLABLE_BOOLEAN, 0), + (T_STAMP, 0), + (RENEWAL_ELIGIBILITY, 0), + (T_STAMP, 0), + (CERTIFICATE_STATUS, 0), + (RENEWAL_STATUS, 0), + (CERTIFICATE_TYPE, 0), + (CERTIFICATE_EXPORT, 0), + (CERTIFICATE_MANAGED_BY, 0), + (VALIDATION_METHOD, 0), + (CERTIFICATE_KEY_PAIR_ORIGIN, 0), + (ARN, 0), + (ACME_ACCOUNT_ID, 0), + ), +) + +ACM_CERTIFICATE_METADATA_FILTER: StaticSchema = ( + 19, + n0, + _ACMF, + 0, + (_S, _RS, _T, _IU, _E, _EO, _MB, _VM, _CKPO, _AEA, _AAI), + ( + (CERTIFICATE_STATUS, 0), + (RENEWAL_STATUS, 0), + (CERTIFICATE_TYPE, 0), + (NULLABLE_BOOLEAN, 0), + (NULLABLE_BOOLEAN, 0), + (CERTIFICATE_EXPORT, 0), + (CERTIFICATE_MANAGED_BY, 0), + (VALIDATION_METHOD, 0), + (CERTIFICATE_KEY_PAIR_ORIGIN, 0), + (ARN, 0), + (ACME_ACCOUNT_ID, 0), + ), +) + +ACME_EXTERNAL_ACCOUNT_BINDING_ARN: StaticSchema = (3, n0, _AEABA, 0) + +CONTACT_LIST: StaticSchema = (16, n0, _CL, 4, (_m,), ((3, 0),)) + +ACME_ACCOUNT_STATUS: StaticSchema = ( + 14, + n0, + _AAS, + 0, + (_VALID, _DEACTIVATED, _REVOKED), + ((-1, {_sV: _VALID}), (-1, {_sV: _DEACTIVATED}), (-1, {_sV: _REVOKED})), +) + +ACME_ACCOUNT: StaticSchema = ( + 18, + n0, + _AA, + 0, + (_AU, _PKT, _S, _CA, _AEABA, _C), + ( + (3, 0), + (3, 0), + (ACME_ACCOUNT_STATUS, 0), + (4, 0), + (ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 0), + (CONTACT_LIST, 0), + ), +) + +ACME_ACCOUNT_SUMMARY: StaticSchema = ( + 18, + n0, + _AASc, + 0, + (_AU, _PKT, _S, _CA, _AEABA, _C), + ( + (3, 0), + (3, 0), + (ACME_ACCOUNT_STATUS, 0), + (4, 0), + (ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 0), + (CONTACT_LIST, 0), + ), +) + +ACME_ACCOUNT_LIST: StaticSchema = (16, n0, _AAL, 0, (_m,), ((ACME_ACCOUNT_SUMMARY, 0),)) + +ACME_AUTHORIZATION_BEHAVIOR: StaticSchema = ( + 14, + n0, + _AAB, + 0, + (_PA,), + ((-1, {_sV: _PA}),), +) + +ACME_CONTACT: StaticSchema = ( + 14, + n0, + _AC, + 0, + (_REQUIRED, _NR), + ((-1, {_sV: _REQUIRED}), (-1, {_sV: _NR})), +) + +ACME_DOMAIN_VALIDATION_ARN: StaticSchema = (3, n0, _ADVA, 0) + +ACME_ENDPOINT_ARN: StaticSchema = (3, n0, _AEA, 0) + +DOMAIN_NAME: StaticSchema = (3, n0, _DN, 0) + +ACME_DOMAIN_VALIDATION_FAILURE_REASON: StaticSchema = ( + 14, + n0, + _ADVFR, + 0, + (_AD, _DM, _DNA, _ENA, _HZNF, _IF, _ICB, _IPD, _TO), + ( + (-1, {_sV: _AD}), + (-1, {_sV: _DM}), + (-1, {_sV: _DNA}), + (-1, {_sV: _ENA}), + (-1, {_sV: _HZNF}), + (-1, {_sV: _IF}), + (-1, {_sV: _ICB}), + (-1, {_sV: _IPD}), + (-1, {_sV: _TO}), + ), +) + +FAILURE_DETAILS: StaticSchema = ( + 18, + n0, + _FD, + 0, + (_R, _M), + ((ACME_DOMAIN_VALIDATION_FAILURE_REASON, 0), (3, 0)), +) + +DOMAIN_SCOPE_OPTION: StaticSchema = ( + 14, + n0, + _DSO, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +DOMAIN_SCOPE: StaticSchema = ( + 18, + n0, + _DS, + 0, + (_ED, _Su, _W), + ((DOMAIN_SCOPE_OPTION, 0), (DOMAIN_SCOPE_OPTION, 0), (DOMAIN_SCOPE_OPTION, 0)), +) + +HOSTED_ZONE_ID: StaticSchema = (3, n0, _HZI, 0) + +STRING: StaticSchema = (3, n0, _St, 0) + +RECORD_TYPE: StaticSchema = (14, n0, _RT, 0, (_CNAME,), ((-1, {_sV: _CNAME}),)) + +RESOURCE_RECORD: StaticSchema = ( + 18, + n0, + _RR, + 0, + (_N, _T, _V), + ((STRING, 1), (RECORD_TYPE, 1), (STRING, 1)), +) + +DNS_PREVALIDATION_DETAILS: StaticSchema = ( + 18, + n0, + _DPD, + 0, + (_DS, _HZI, _RR), + ((DOMAIN_SCOPE, 0), (HOSTED_ZONE_ID, 0), (RESOURCE_RECORD, 0)), +) + +PREVALIDATION_DETAILS: StaticSchema = ( + 19, + n0, + _PD, + 0, + (_DP,), + ((DNS_PREVALIDATION_DETAILS, 0),), +) + +PREVALIDATION_TYPE: StaticSchema = (14, n0, _PT, 0, (_DP_,), ((-1, {_sV: _DP_}),)) + +ACME_DOMAIN_VALIDATION_STATUS: StaticSchema = ( + 14, + n0, + _ADVS, + 0, + (_VALIDATING, _VALID, _INVALID, _DELETING), + ( + (-1, {_sV: _VALIDATING}), + (-1, {_sV: _VALID}), + (-1, {_sV: _INVALID}), + (-1, {_sV: _DELETING}), + ), +) + +ACME_DOMAIN_VALIDATION: StaticSchema = ( + 18, + n0, + _ADV, + 0, + (_ADVA, _AEA, _DN, _PT, _PD, _S, _FD, _CA, _UA), + ( + (ACME_DOMAIN_VALIDATION_ARN, 0), + (ACME_ENDPOINT_ARN, 0), + (DOMAIN_NAME, 0), + (PREVALIDATION_TYPE, 0), + (PREVALIDATION_DETAILS, 0), + (ACME_DOMAIN_VALIDATION_STATUS, 0), + (FAILURE_DETAILS, 0), + (4, 0), + (4, 0), + ), +) + +ACME_DOMAIN_VALIDATION_SUMMARY: StaticSchema = ( + 18, + n0, + _ADVSc, + 0, + (_ADVA, _AEA, _DN, _PT, _PD, _S, _FD, _CA, _UA), + ( + (ACME_DOMAIN_VALIDATION_ARN, 0), + (ACME_ENDPOINT_ARN, 0), + (DOMAIN_NAME, 0), + (PREVALIDATION_TYPE, 0), + (PREVALIDATION_DETAILS, 0), + (ACME_DOMAIN_VALIDATION_STATUS, 0), + (FAILURE_DETAILS, 0), + (4, 0), + (4, 0), + ), +) + +ACME_DOMAIN_VALIDATION_LIST: StaticSchema = ( + 16, + n0, + _ADVL, + 0, + (_m,), + ((ACME_DOMAIN_VALIDATION_SUMMARY, 0),), +) + +PUBLIC_KEY_ALGORITHM: StaticSchema = ( + 14, + n0, + _PKA, + 0, + (_R_, _EPV, _ESR), + ((-1, {_sV: _R_}), (-1, {_sV: _Ep}), (-1, {_sV: _Es})), +) + +PUBLIC_KEY_ALGORITHM_LIST: StaticSchema = ( + 16, + n0, + _PKAL, + 0, + (_m,), + ((PUBLIC_KEY_ALGORITHM, 0),), +) + +PUBLIC_CERTIFICATE_AUTHORITY: StaticSchema = ( + 18, + n0, + _PCA, + 0, + (_AKA,), + ((PUBLIC_KEY_ALGORITHM_LIST, 0),), +) + +CERTIFICATE_AUTHORITY: StaticSchema = ( + 19, + n0, + _CAe, + 0, + (_PCA,), + ((PUBLIC_CERTIFICATE_AUTHORITY, 0),), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG: StaticSchema = (18, n0, _Ta, 0, (_K, _V), ((TAG_KEY, 1), (TAG_VALUE, 0))) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TAG, 0),)) + +ACME_ENDPOINT_STATUS: StaticSchema = ( + 14, + n0, + _AES, + 0, + (_CREATING, _ACTIVE, _DELETING, _FAILED), + ( + (-1, {_sV: _CREATING}), + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _DELETING}), + (-1, {_sV: _FAILED}), + ), +) + +ACME_ENDPOINT: StaticSchema = ( + 18, + n0, + _AE, + 0, + (_AEA, _EU, _S, _FR, _AB, _Co, _CAe, _CTe, _CA, _UA), + ( + (ACME_ENDPOINT_ARN, 0), + (3, 0), + (ACME_ENDPOINT_STATUS, 0), + (3, 0), + (ACME_AUTHORIZATION_BEHAVIOR, 0), + (ACME_CONTACT, 0), + (CERTIFICATE_AUTHORITY, 0), + (TAG_LIST, 0), + (4, 0), + (4, 0), + ), +) + +ACME_ENDPOINT_SUMMARY: StaticSchema = ( + 18, + n0, + _AESc, + 0, + (_AEA, _EU, _S, _FR, _AB, _Co, _CAe, _CTe, _CA, _UA), + ( + (ACME_ENDPOINT_ARN, 0), + (3, 0), + (ACME_ENDPOINT_STATUS, 0), + (3, 0), + (ACME_AUTHORIZATION_BEHAVIOR, 0), + (ACME_CONTACT, 0), + (CERTIFICATE_AUTHORITY, 0), + (TAG_LIST, 0), + (4, 0), + (4, 0), + ), +) + +ACME_ENDPOINT_LIST: StaticSchema = ( + 16, + n0, + _AEL, + 0, + (_m,), + ((ACME_ENDPOINT_SUMMARY, 0),), +) + +ROLE_ARN: StaticSchema = (3, n0, _RAo, 0) + +ACME_EXTERNAL_ACCOUNT_BINDING: StaticSchema = ( + 18, + n0, + _AEAB, + 0, + (_AEABA, _AEA, _RAo, _EA, _RA, _LUA, _CA, _UA), + ( + (ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 0), + (ACME_ENDPOINT_ARN, 0), + (ROLE_ARN, 0), + (4, 0), + (4, 0), + (4, 0), + (4, 0), + (4, 0), + ), +) + +ACME_EXTERNAL_ACCOUNT_BINDING_SUMMARY: StaticSchema = ( + 18, + n0, + _AEABS, + 0, + (_AEABA, _AEA, _RAo, _EA, _RA, _LUA, _CA, _UA), + ( + (ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 0), + (ACME_ENDPOINT_ARN, 0), + (ROLE_ARN, 0), + (4, 0), + (4, 0), + (4, 0), + (4, 0), + (4, 0), + ), +) + +ACME_EXTERNAL_ACCOUNT_BINDING_LIST: StaticSchema = ( + 16, + n0, + _AEABL, + 0, + (_m,), + ((ACME_EXTERNAL_ACCOUNT_BINDING_SUMMARY, 0),), +) + +ADD_TAGS_TO_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _ATTCI, + {_sSI: _cATTCR, _smit: None}, + (_CAer, _Tag), + ((ARN, 1), (TAG_LIST, 1)), +) + +ADD_TAGS_TO_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _ATTCO, + {_sSI: _sU, _smith: None}, +) + +INVALID_ARN_EXCEPTION: StaticSchema = (18, n0, _IAE, {_s: _c}, (_me,), ((STRING, 0),)) + +INVALID_PARAMETER_EXCEPTION: StaticSchema = ( + 18, + n0, + _IPE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +INVALID_TAG_EXCEPTION: StaticSchema = (18, n0, _ITE, {_s: _c}, (_me,), ((STRING, 0),)) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +TAG_POLICY_EXCEPTION: StaticSchema = (18, n0, _TPE, {_s: _c}, (_me,), ((STRING, 0),)) + +AVAILABILITY_ERROR_MESSAGE: StaticSchema = (3, n0, _AEM, 0) + +CORAL_AVAILABILITY_THROTTLING_REASON: StaticSchema = (3, n0, _CATR, 0) + +CORAL_AVAILABILITY_THROTTLED_RESOURCE: StaticSchema = (3, n0, _CATRo, 0) + +THROTTLING_REASON: StaticSchema = ( + 18, + n0, + _TR, + 0, + (_r, _re), + ( + (CORAL_AVAILABILITY_THROTTLING_REASON, 0), + (CORAL_AVAILABILITY_THROTTLED_RESOURCE, 0), + ), +) + +THROTTLING_REASON_LIST: StaticSchema = ( + 16, + n0, + _TRL, + 0, + (_m,), + ((THROTTLING_REASON, 0),), +) + +THROTTLING_EXCEPTION: StaticSchema = ( + 18, + n0, + _TE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "Throttling", "httpResponseCode": 400}), + }, + (_me, _tR), + ((AVAILABILITY_ERROR_MESSAGE, 0), (THROTTLING_REASON_LIST, 0)), +) + +TOO_MANY_TAGS_EXCEPTION: StaticSchema = ( + 18, + n0, + _TMTE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +VALIDATION_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _VEM, 0) + +VALIDATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _VE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "ValidationError", "httpResponseCode": 400}), + }, + (_me,), + ((VALIDATION_EXCEPTION_MESSAGE, 0),), +) + +ADD_TAGS_TO_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _ATTC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + ADD_TAGS_TO_CERTIFICATE_INPUT, + ADD_TAGS_TO_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + INVALID_TAG_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + TAG_POLICY_EXCEPTION, + THROTTLING_EXCEPTION, + TOO_MANY_TAGS_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +CERTIFICATE_ARN: StaticSchema = (3, n0, _CAer, 0) + +CERTIFICATE_BODY: StaticSchema = (3, n0, _CB, 0) + +CERTIFICATE_BODY_BLOB: StaticSchema = (1, n0, _CBB, 0) + +CERTIFICATE_CHAIN: StaticSchema = (3, n0, _CC, 0) + +CERTIFICATE_CHAIN_BLOB: StaticSchema = (1, n0, _CCB, 0) + +DOMAIN_NAME_STRING: StaticSchema = (3, n0, _DNSo, 0) + +HTTP_REDIRECT: StaticSchema = (18, n0, _HR, 0, (_RF, _RTe), ((STRING, 0), (STRING, 0))) + +VALIDATION_EMAIL_LIST: StaticSchema = (16, n0, _VEL, 0, (_m,), ((STRING, 0),)) + +DOMAIN_STATUS: StaticSchema = ( + 14, + n0, + _DSo, + 0, + (_PV, _SUCCESS, _FAILED), + ((-1, {_sV: _PV}), (-1, {_sV: _SUCCESS}), (-1, {_sV: _FAILED})), +) + +DOMAIN_VALIDATION: StaticSchema = ( + 18, + n0, + _DV, + 0, + (_DN, _VEa, _VD, _VS, _RR, _HR, _VM), + ( + (DOMAIN_NAME_STRING, 1), + (VALIDATION_EMAIL_LIST, 0), + (DOMAIN_NAME_STRING, 0), + (DOMAIN_STATUS, 0), + (RESOURCE_RECORD, 0), + (HTTP_REDIRECT, 0), + (VALIDATION_METHOD, 0), + ), +) + +DOMAIN_VALIDATION_LIST: StaticSchema = ( + 16, + n0, + _DVL, + 0, + (_m,), + ((DOMAIN_VALIDATION, 0),), +) + +EXTENDED_KEY_USAGE_NAME: StaticSchema = ( + 14, + n0, + _EKUN, + 0, + (_TWSA, _TWCA, _CS_, _EP, _TS_, _OS, _IES, _IT, _IU_, _ANY, _NONE, _CUSTOM), + ( + (-1, {_sV: _TWSA}), + (-1, {_sV: _TWCA}), + (-1, {_sV: _CS_}), + (-1, {_sV: _EP}), + (-1, {_sV: _TS_}), + (-1, {_sV: _OS}), + (-1, {_sV: _IES}), + (-1, {_sV: _IT}), + (-1, {_sV: _IU_}), + (-1, {_sV: _ANY}), + (-1, {_sV: _NONE}), + (-1, {_sV: _CUSTOM}), + ), +) + +EXTENDED_KEY_USAGE: StaticSchema = ( + 18, + n0, + _EKU, + 0, + (_N, _OID), + ((EXTENDED_KEY_USAGE_NAME, 0), (STRING, 0)), +) + +EXTENDED_KEY_USAGE_LIST: StaticSchema = ( + 16, + n0, + _EKUL, + 0, + (_m,), + ((EXTENDED_KEY_USAGE, 0),), +) + +FAILURE_REASON: StaticSchema = ( + 14, + n0, + _FR, + 0, + ( + _NAC, + _AVR, + _DNA, + _IPD, + _DVD, + _CE_, + _PLE, + _PIA, + _PIS, + _PRF, + _PNCV, + _PRNF, + _PIA_, + _PID, + _PAD, + _SNF, + _OTHER, + ), + ( + (-1, {_sV: _NAC}), + (-1, {_sV: _AVR}), + (-1, {_sV: _DNA}), + (-1, {_sV: _IPD}), + (-1, {_sV: _DVD}), + (-1, {_sV: _CE_}), + (-1, {_sV: _PLE}), + (-1, {_sV: _PIA}), + (-1, {_sV: _PIS}), + (-1, {_sV: _PRF}), + (-1, {_sV: _PNCV}), + (-1, {_sV: _PRNF}), + (-1, {_sV: _PIA_}), + (-1, {_sV: _PID}), + (-1, {_sV: _PAD}), + (-1, {_sV: _SNF}), + (-1, {_sV: _OTHER}), + ), +) + +IN_USE_LIST: StaticSchema = (16, n0, _IUL, 0, (_m,), ((STRING, 0),)) + +KEY_ALGORITHM: StaticSchema = ( + 14, + n0, + _KA, + 0, + (_R__, _R_, _R___, _R____, _Ep, _Es, _Es_), + ( + (-1, {_sV: _R__}), + (-1, {_sV: _R_}), + (-1, {_sV: _R___}), + (-1, {_sV: _R____}), + (-1, {_sV: _Ep}), + (-1, {_sV: _Es}), + (-1, {_sV: _Es_}), + ), +) + +KEY_USAGE_NAME: StaticSchema = ( + 14, + n0, + _KUN, + 0, + (_DS_, _NR_, _KE, _DE, _KA_, _CS__, _CS___, _EO_, _DO, _ANY, _CUSTOM), + ( + (-1, {_sV: _DS_}), + (-1, {_sV: _NR__}), + (-1, {_sV: _KE}), + (-1, {_sV: _DE}), + (-1, {_sV: _KA_}), + (-1, {_sV: _CS__}), + (-1, {_sV: _CS___}), + (-1, {_sV: _EO__}), + (-1, {_sV: _DO}), + (-1, {_sV: _ANY}), + (-1, {_sV: _CUSTOM}), + ), +) + +KEY_USAGE: StaticSchema = (18, n0, _KU, 0, (_N,), ((KEY_USAGE_NAME, 0),)) + +KEY_USAGE_LIST: StaticSchema = (16, n0, _KUL, 0, (_m,), ((KEY_USAGE, 0),)) + +CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE: StaticSchema = ( + 14, + n0, + _CTLP, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +CERTIFICATE_OPTIONS: StaticSchema = ( + 18, + n0, + _CO, + 0, + (_CTLP, _Ex, _VM), + ( + (CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE, 0), + (CERTIFICATE_EXPORT, 0), + (VALIDATION_METHOD, 0), + ), +) + +RENEWAL_SUMMARY: StaticSchema = ( + 18, + n0, + _RSe, + 0, + (_RS, _DVO, _RSR, _UA), + ( + (RENEWAL_STATUS, 1), + (DOMAIN_VALIDATION_LIST, 1), + (FAILURE_REASON, 0), + (T_STAMP, 1), + ), +) + +REVOCATION_REASON: StaticSchema = ( + 14, + n0, + _RRe, + 0, + ( + _UNSPECIFIED, + _KC, + _CC_, + _AC_, + _SUPERCEDED, + _SUPERSEDED, + _COO, + _CH, + _RFC, + _PW, + _AAC, + ), + ( + (-1, {_sV: _UNSPECIFIED}), + (-1, {_sV: _KC}), + (-1, {_sV: _CC_}), + (-1, {_sV: _AC_}), + (-1, {_sV: _SUPERCEDED}), + (-1, {_sV: _SUPERSEDED}), + (-1, {_sV: _COO}), + (-1, {_sV: _CH}), + (-1, {_sV: _RFC}), + (-1, {_sV: _PW}), + (-1, {_sV: _AAC}), + ), +) + +DOMAIN_LIST: StaticSchema = (16, n0, _DL, 0, (_m,), ((DOMAIN_NAME_STRING, 0),)) + +DOMAIN_VALIDATION_METHOD_UPDATE_SUMMARY: StaticSchema = ( + 18, + n0, + _DVMUS, + 0, + (_F, _To), + ((VALIDATION_METHOD, 0), (VALIDATION_METHOD, 0)), +) + +UPDATE_STATUS: StaticSchema = ( + 14, + n0, + _US, + 0, + (_PDV, _SUCCESS, _FAILED), + ((-1, {_sV: _PDV}), (-1, {_sV: _SUCCESS}), (-1, {_sV: _FAILED})), +) + +UPDATE_TYPE: StaticSchema = (14, n0, _UT, 0, (_DVM,), ((-1, {_sV: _DVM}),)) + +UPDATE_SUMMARY: StaticSchema = ( + 18, + n0, + _USp, + 0, + (_S, _T, _DVMUS, _RAe, _UA), + ( + (UPDATE_STATUS, 0), + (UPDATE_TYPE, 0), + (DOMAIN_VALIDATION_METHOD_UPDATE_SUMMARY, 0), + (T_STAMP, 0), + (T_STAMP, 0), + ), +) + +CERTIFICATE_DETAIL: StaticSchema = ( + 18, + n0, + _CD, + 0, + ( + _CAer, + _DN, + _SAN, + _MB, + _DVO, + _Se, + _Sub, + _I, + _CA, + _IAs, + _IA, + _S, + _RA, + _RRe, + _NBo, + _NA, + _KA, + _SA, + _IUB, + _FR, + _T, + _RSe, + _KUe, + _EKUx, + _CAA, + _RE, + _O, + _USp, + _CKPO, + _AEA, + _AAI, + ), + ( + (ARN, 0), + (DOMAIN_NAME_STRING, 0), + (DOMAIN_LIST, 0), + (CERTIFICATE_MANAGED_BY, 0), + (DOMAIN_VALIDATION_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (CERTIFICATE_STATUS, 0), + (T_STAMP, 0), + (REVOCATION_REASON, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (KEY_ALGORITHM, 0), + (STRING, 0), + (IN_USE_LIST, 0), + (FAILURE_REASON, 0), + (CERTIFICATE_TYPE, 0), + (RENEWAL_SUMMARY, 0), + (KEY_USAGE_LIST, 0), + (EXTENDED_KEY_USAGE_LIST, 0), + (ARN, 0), + (RENEWAL_ELIGIBILITY, 0), + (CERTIFICATE_OPTIONS, 0), + (UPDATE_SUMMARY, 0), + (CERTIFICATE_KEY_PAIR_ORIGIN, 0), + (ARN, 0), + (ACME_ACCOUNT_ID, 0), + ), +) + +TIMESTAMP_RANGE: StaticSchema = ( + 18, + n0, + _TRi, + 0, + (_Sta, _En), + ((T_STAMP, 0), (T_STAMP, 0)), +) + +SERIAL_NUMBER: StaticSchema = (3, n0, _SN, 0) + +COMPARISON_OPERATOR: StaticSchema = ( + 14, + n0, + _COo, + 0, + (_CONTAINS, _EQUALS), + ((-1, {_sV: _CONTAINS}), (-1, {_sV: _EQUALS})), +) + +FILTER_STRING: StaticSchema = (3, n0, _FS, 0) + +COMMON_NAME_FILTER: StaticSchema = ( + 18, + n0, + _CNF, + 0, + (_V, _COo), + ((FILTER_STRING, 1), (COMPARISON_OPERATOR, 1)), +) + +SUBJECT_FILTER: StaticSchema = (19, n0, _SF, 0, (_CN,), ((COMMON_NAME_FILTER, 0),)) + +DNS_NAME_FILTER: StaticSchema = ( + 18, + n0, + _DNF, + 0, + (_V, _COo), + ((FILTER_STRING, 1), (COMPARISON_OPERATOR, 1)), +) + +SUBJECT_ALTERNATIVE_NAME_FILTER: StaticSchema = ( + 19, + n0, + _SANF, + 0, + (_DNn,), + ((DNS_NAME_FILTER, 0),), +) + +X509_ATTRIBUTE_FILTER: StaticSchema = ( + 19, + n0, + _XAF, + 0, + (_Sub, _SANu, _EKU, _KU, _KA, _SN, _NA, _NBo), + ( + (SUBJECT_FILTER, 0), + (SUBJECT_ALTERNATIVE_NAME_FILTER, 0), + (EXTENDED_KEY_USAGE_NAME, 0), + (KEY_USAGE_NAME, 0), + (KEY_ALGORITHM, 0), + (SERIAL_NUMBER, 0), + (TIMESTAMP_RANGE, 0), + (TIMESTAMP_RANGE, 0), + ), +) + +CERTIFICATE_FILTER: StaticSchema = ( + 19, + n0, + _CF, + 0, + (_CAer, _XAF, _ACMF), + ((ARN, 0), (X509_ATTRIBUTE_FILTER, 0), (ACM_CERTIFICATE_METADATA_FILTER, 0)), +) + +CERTIFICATE_KEY_PAIR_ORIGINS: StaticSchema = ( + 16, + n0, + _CKPOe, + 0, + (_m,), + ((CERTIFICATE_KEY_PAIR_ORIGIN, 0),), +) + +CONFLICT_EXCEPTION: StaticSchema = (18, n0, _CEo, {_s: _c}, (_me,), ((STRING, 0),)) + +DNS_PREVALIDATION_OPTIONS: StaticSchema = ( + 18, + n0, + _DPO, + 0, + (_DS, _HZI), + ((DOMAIN_SCOPE, 0), (HOSTED_ZONE_ID, 0)), +) + +PREVALIDATION_OPTIONS: StaticSchema = ( + 19, + n0, + _PO, + 0, + (_DP,), + ((DNS_PREVALIDATION_OPTIONS, 0),), +) + +CREATE_ACME_DOMAIN_VALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _CADVI, + {_sSI: _cCADVR, _smit: None}, + (_ITd, _AEA, _DN, _PO, _Tag), + ( + (3, 2), + (ACME_ENDPOINT_ARN, 1), + (DOMAIN_NAME, 1), + (PREVALIDATION_OPTIONS, 1), + (TAG_LIST, 0), + ), +) + +CREATE_ACME_DOMAIN_VALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CADVO, + {_sSI: _cCADVRo, _smith: None}, + (_ADVA,), + ((ACME_DOMAIN_VALIDATION_ARN, 1),), +) + +INTERNAL_SERVER_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISE, + {_s: _se}, + (_me,), + ((STRING, 0),), +) + +SERVICE_QUOTA_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _SQEE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +CREATE_ACME_DOMAIN_VALIDATION: StaticOperationSchema = ( + 23, + n0, + _CADV, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + CREATE_ACME_DOMAIN_VALIDATION_INPUT, + CREATE_ACME_DOMAIN_VALIDATION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +CREATE_ACME_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CAEI, + {_sSI: _cCAER, _smit: None}, + (_ITd, _AB, _Co, _CAe, _Tag, _CTe), + ( + (3, 2), + (ACME_AUTHORIZATION_BEHAVIOR, 1), + (ACME_CONTACT, {_smithy: _REQUIRED}), + (CERTIFICATE_AUTHORITY, 1), + (TAG_LIST, 0), + (TAG_LIST, 0), + ), +) + +CREATE_ACME_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CAEO, + {_sSI: _cCAERo, _smith: None}, + (_AEA,), + ((ACME_ENDPOINT_ARN, 0),), +) + +CREATE_ACME_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CAE, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + CREATE_ACME_ENDPOINT_INPUT, + CREATE_ACME_ENDPOINT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +TIME_TYPE: StaticSchema = ( + 14, + n0, + _TT, + 0, + (_MINUTES, _HOURS, _DAYS), + ((-1, {_sV: _MINUTES}), (-1, {_sV: _HOURS}), (-1, {_sV: _DAYS})), +) + +EXPIRATION: StaticSchema = (18, n0, _Exp, 0, (_V, _T), ((8, 1), (TIME_TYPE, 1))) + +CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT: StaticSchema = ( + 18, + n0, + _CAEABI, + {_sSI: _cCAEABR, _smit: None}, + (_ITd, _AEA, _RAo, _Exp, _Tag), + ((3, 2), (ACME_ENDPOINT_ARN, 1), (ROLE_ARN, 1), (EXPIRATION, 0), (TAG_LIST, 0)), +) + +CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT: StaticSchema = ( + 18, + n0, + _CAEABO, + {_sSI: _cCAEABRo, _smith: None}, + (_EAB,), + ((ACME_EXTERNAL_ACCOUNT_BINDING, 0),), +) + +CREATE_ACME_EXTERNAL_ACCOUNT_BINDING: StaticOperationSchema = ( + 23, + n0, + _CAEAB, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT, + CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_ACME_DOMAIN_VALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _DADVI, + {_sSI: _cDADVR, _smit: None}, + (_ADVA,), + ((ACME_DOMAIN_VALIDATION_ARN, 1),), +) + +DELETE_ACME_DOMAIN_VALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DADVO, + {_sSI: _sU, _smith: None}, +) + +DELETE_ACME_DOMAIN_VALIDATION: StaticOperationSchema = ( + 23, + n0, + _DADV, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DELETE_ACME_DOMAIN_VALIDATION_INPUT, + DELETE_ACME_DOMAIN_VALIDATION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_ACME_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DAEI, + {_sSI: _cDAER, _smit: None}, + (_AEA,), + ((ACME_ENDPOINT_ARN, 1),), +) + +DELETE_ACME_ENDPOINT_OUTPUT: StaticSchema = (18, n0, _DAEO, {_sSI: _sU, _smith: None}) + +DELETE_ACME_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DAE, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DELETE_ACME_ENDPOINT_INPUT, + DELETE_ACME_ENDPOINT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT: StaticSchema = ( + 18, + n0, + _DAEABI, + {_sSI: _cDAEABR, _smit: None}, + (_AEABA,), + ((ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 1),), +) + +DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT: StaticSchema = ( + 18, + n0, + _DAEABO, + {_sSI: _sU, _smith: None}, +) + +DELETE_ACME_EXTERNAL_ACCOUNT_BINDING: StaticOperationSchema = ( + 23, + n0, + _DAEAB, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT, + DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _DCI, + {_sSI: _cDCR, _smit: None}, + (_CAer,), + ((ARN, 1),), +) + +DELETE_CERTIFICATE_OUTPUT: StaticSchema = (18, n0, _DCO, {_sSI: _sU, _smith: None}) + +RESOURCE_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _RIUE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +DELETE_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _DC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + DELETE_CERTIFICATE_INPUT, + DELETE_CERTIFICATE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INVALID_ARN_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_ACME_ACCOUNT_INPUT: StaticSchema = ( + 18, + n0, + _DAAI, + {_sSI: _cDAAR, _smit: None}, + (_AEA, _AU), + ((ACME_ENDPOINT_ARN, 1), (3, 1)), +) + +DESCRIBE_ACME_ACCOUNT_OUTPUT: StaticSchema = ( + 18, + n0, + _DAAO, + {_sSI: _cDAARo, _smith: None}, + (_AA,), + ((ACME_ACCOUNT, 0),), +) + +DESCRIBE_ACME_ACCOUNT: StaticOperationSchema = ( + 23, + n0, + _DAA, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DESCRIBE_ACME_ACCOUNT_INPUT, + DESCRIBE_ACME_ACCOUNT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_ACME_DOMAIN_VALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _DADVIe, + {_sSI: _cDADVRo, _smit: None}, + (_ADVA,), + ((ACME_DOMAIN_VALIDATION_ARN, 1),), +) + +DESCRIBE_ACME_DOMAIN_VALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DADVOe, + {_sSI: _cDADVRom, _smith: None}, + (_ADV,), + ((ACME_DOMAIN_VALIDATION, 0),), +) + +DESCRIBE_ACME_DOMAIN_VALIDATION: StaticOperationSchema = ( + 23, + n0, + _DADVe, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DESCRIBE_ACME_DOMAIN_VALIDATION_INPUT, + DESCRIBE_ACME_DOMAIN_VALIDATION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_ACME_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DAEIe, + {_sSI: _cDAERo, _smit: None}, + (_AEA,), + ((ACME_ENDPOINT_ARN, 1),), +) + +DESCRIBE_ACME_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DAEOe, + {_sSI: _cDAERom, _smith: None}, + (_AE,), + ((ACME_ENDPOINT, 0),), +) + +DESCRIBE_ACME_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DAEe, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DESCRIBE_ACME_ENDPOINT_INPUT, + DESCRIBE_ACME_ENDPOINT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT: StaticSchema = ( + 18, + n0, + _DAEABIe, + {_sSI: _cDAEABRo, _smit: None}, + (_AEABA,), + ((ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 1),), +) + +DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT: StaticSchema = ( + 18, + n0, + _DAEABOe, + {_sSI: _cDAEABRom, _smith: None}, + (_EAB,), + ((ACME_EXTERNAL_ACCOUNT_BINDING, 0),), +) + +DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING: StaticOperationSchema = ( + 23, + n0, + _DAEABe, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT, + DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _DCIe, + {_sSI: _cDCRo, _smit: None}, + (_CAer,), + ((ARN, 1),), +) + +DESCRIBE_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DCOe, + {_sSI: _cDCRom, _smith: None}, + (_Ce,), + ((CERTIFICATE_DETAIL, 0),), +) + +DESCRIBE_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _DCe, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + DESCRIBE_CERTIFICATE_INPUT, + DESCRIBE_CERTIFICATE_OUTPUT, + (INVALID_ARN_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION, VALIDATION_EXCEPTION), +) + +PASSPHRASE_BLOB: StaticSchema = (1, n0, _PB, 4) + +EXPORT_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _ECI, + {_sSI: _cECR, _smit: None}, + (_CAer, _P), + ((ARN, 1), (PASSPHRASE_BLOB, 1)), +) + +PRIVATE_KEY: StaticSchema = (3, n0, _PK, 4) + +EXPORT_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _ECO, + {_sSI: _cECRo, _smith: None}, + (_Ce, _CC, _PK), + ((CERTIFICATE_BODY, 0), (CERTIFICATE_CHAIN, 0), (PRIVATE_KEY, 0)), +) + +REQUEST_IN_PROGRESS_EXCEPTION: StaticSchema = ( + 18, + n0, + _RIPE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +EXPORT_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _EC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + EXPORT_CERTIFICATE_INPUT, + EXPORT_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + REQUEST_IN_PROGRESS_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +GET_ACCOUNT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GACI, + {_sSI: _sU, _smit: None}, +) + +POSITIVE_INTEGER: StaticSchema = (7, n0, _PI, 0) + +EXPIRY_EVENTS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EEC, + 0, + (_DBE,), + ((POSITIVE_INTEGER, 0),), +) + +GET_ACCOUNT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GACO, + {_sSI: _cGACR, _smith: None}, + (_EE,), + ((EXPIRY_EVENTS_CONFIGURATION, 0),), +) + +GET_ACCOUNT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GAC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + GET_ACCOUNT_CONFIGURATION_INPUT, + GET_ACCOUNT_CONFIGURATION_OUTPUT, + (ACCESS_DENIED_EXCEPTION, THROTTLING_EXCEPTION), +) + +GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_INPUT: StaticSchema = ( + 18, + n0, + _GAEABCI, + {_sSI: _cGAEABCR, _smit: None}, + (_AEABA,), + ((ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 1),), +) + +MAC_KEY: StaticSchema = (3, n0, _MK, 4) + +GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_OUTPUT: StaticSchema = ( + 18, + n0, + _GAEABCO, + {_sSI: _cGAEABCRo, _smith: None}, + (_KI, _MK), + ((3, 0), (MAC_KEY, 0)), +) + +GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS: StaticOperationSchema = ( + 23, + n0, + _GAEABC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_INPUT, + GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +GET_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _GCI, + {_sSI: _cGCR, _smit: None}, + (_CAer,), + ((ARN, 1),), +) + +GET_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GCO, + {_sSI: _cGCRo, _smith: None}, + (_Ce, _CC), + ((CERTIFICATE_BODY, 0), (CERTIFICATE_CHAIN, 0)), +) + +GET_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _GC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + GET_CERTIFICATE_INPUT, + GET_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + REQUEST_IN_PROGRESS_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +PRIVATE_KEY_BLOB: StaticSchema = (1, n0, _PKB, 4) + +IMPORT_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _ICI, + {_sSI: _cICR, _smit: None}, + (_CAer, _Ce, _PK, _CC, _Tag), + ( + (ARN, 0), + (CERTIFICATE_BODY_BLOB, 1), + (PRIVATE_KEY_BLOB, 1), + (CERTIFICATE_CHAIN_BLOB, 0), + (TAG_LIST, 0), + ), +) + +IMPORT_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _ICO, + {_sSI: _cICRo, _smith: None}, + (_CAer,), + ((ARN, 0),), +) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +IMPORT_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _IC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + IMPORT_CERTIFICATE_INPUT, + IMPORT_CERTIFICATE_OUTPUT, + ( + CONFLICT_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + INVALID_TAG_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + TAG_POLICY_EXCEPTION, + TOO_MANY_TAGS_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_ACME_ACCOUNTS_INPUT: StaticSchema = ( + 18, + n0, + _LAAI, + {_sSI: _cLAAR, _smit: None}, + (_NT, _MR, _AEA), + ((3, 0), (7, 0), (ACME_ENDPOINT_ARN, 1)), +) + +LIST_ACME_ACCOUNTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LAAO, + {_sSI: _cLAARo, _smith: None}, + (_AAc, _NT), + ((ACME_ACCOUNT_LIST, 0), (3, 0)), +) + +LIST_ACME_ACCOUNTS: StaticOperationSchema = ( + 23, + n0, + _LAA, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + LIST_ACME_ACCOUNTS_INPUT, + LIST_ACME_ACCOUNTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_ACME_DOMAIN_VALIDATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LADVI, + {_sSI: _cLADVR, _smit: None}, + (_NT, _MR, _AEA), + ((3, 0), (7, 0), (ACME_ENDPOINT_ARN, 1)), +) + +LIST_ACME_DOMAIN_VALIDATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LADVO, + {_sSI: _cLADVRo, _smith: None}, + (_ADVc, _NT), + ((ACME_DOMAIN_VALIDATION_LIST, 0), (3, 0)), +) + +LIST_ACME_DOMAIN_VALIDATIONS: StaticOperationSchema = ( + 23, + n0, + _LADV, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + LIST_ACME_DOMAIN_VALIDATIONS_INPUT, + LIST_ACME_DOMAIN_VALIDATIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_ACME_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _LAEI, + {_sSI: _cLAER, _smit: None}, + (_NT, _MR), + ((3, 0), (7, 0)), +) + +LIST_ACME_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LAEO, + {_sSI: _cLAERo, _smith: None}, + (_AEc, _NT), + ((ACME_ENDPOINT_LIST, 0), (3, 0)), +) + +LIST_ACME_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _LAE, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + LIST_ACME_ENDPOINTS_INPUT, + LIST_ACME_ENDPOINTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_INPUT: StaticSchema = ( + 18, + n0, + _LAEABI, + {_sSI: _cLAEABR, _smit: None}, + (_NT, _MR, _AEA), + ((3, 0), (7, 0), (ACME_ENDPOINT_ARN, 1)), +) + +LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LAEABO, + {_sSI: _cLAEABRo, _smith: None}, + (_EABx, _NT), + ((ACME_EXTERNAL_ACCOUNT_BINDING_LIST, 0), (3, 0)), +) + +LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS: StaticOperationSchema = ( + 23, + n0, + _LAEAB, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_INPUT, + LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +INVALID_ARGS_EXCEPTION: StaticSchema = (18, n0, _IAEn, {_s: _c}, (_me,), ((STRING, 0),)) + +MAX_ITEMS: StaticSchema = (7, n0, _MI, 0) + +NEXT_TOKEN: StaticSchema = (3, n0, _NT, 0) + +LIST_CERTIFICATE_DOMAIN_VALIDATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LCDVI, + {_sSI: _cLCDVR, _smit: None}, + (_CAer, _NT, _MI), + ((CERTIFICATE_ARN, 1), (NEXT_TOKEN, 0), (MAX_ITEMS, 0)), +) + +DNS_VALIDATION_CHALLENGE: StaticSchema = ( + 18, + n0, + _DVC, + 0, + (_RR,), + ((RESOURCE_RECORD, 0),), +) + +EMAIL_VALIDATION_CHALLENGE: StaticSchema = ( + 18, + n0, + _EVC, + 0, + (_VEa, _VD), + ((VALIDATION_EMAIL_LIST, 0), (DOMAIN_NAME_STRING, 0)), +) + +VALIDATION_CHALLENGE: StaticSchema = ( + 19, + n0, + _VC, + 0, + (_EVC, _DVC), + ((EMAIL_VALIDATION_CHALLENGE, 0), (DNS_VALIDATION_CHALLENGE, 0)), +) + +VALIDATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VCa, + 0, + (_VM, _VC, _VS), + ((VALIDATION_METHOD, 0), (VALIDATION_CHALLENGE, 0), (DOMAIN_STATUS, 0)), +) + +DOMAIN_VALIDATION_SUMMARY: StaticSchema = ( + 18, + n0, + _DVS, + 0, + (_DN, _AVC, _RVC), + ( + (DOMAIN_NAME_STRING, 1), + (VALIDATION_CONFIGURATION, 0), + (VALIDATION_CONFIGURATION, 0), + ), +) + +DOMAIN_VALIDATION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _DVSL, + 0, + (_m,), + ((DOMAIN_VALIDATION_SUMMARY, 0),), +) + +LIST_CERTIFICATE_DOMAIN_VALIDATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCDVO, + {_sSI: _cLCDVRo, _smith: None}, + (_DVSL, _NT), + ((DOMAIN_VALIDATION_SUMMARY_LIST, 0), (NEXT_TOKEN, 0)), +) + +LIST_CERTIFICATE_DOMAIN_VALIDATIONS: StaticOperationSchema = ( + 23, + n0, + _LCDV, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + LIST_CERTIFICATE_DOMAIN_VALIDATIONS_INPUT, + LIST_CERTIFICATE_DOMAIN_VALIDATIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGS_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + ), +) + +CERTIFICATE_STATUSES: StaticSchema = ( + 16, + n0, + _CSe, + 0, + (_m,), + ((CERTIFICATE_STATUS, 0),), +) + +EXTENDED_KEY_USAGE_FILTER_LIST: StaticSchema = ( + 16, + n0, + _EKUFL, + 0, + (_m,), + ((EXTENDED_KEY_USAGE_NAME, 0),), +) + +KEY_ALGORITHM_LIST: StaticSchema = (16, n0, _KAL, 0, (_m,), ((KEY_ALGORITHM, 0),)) + +KEY_USAGE_FILTER_LIST: StaticSchema = (16, n0, _KUFL, 0, (_m,), ((KEY_USAGE_NAME, 0),)) + +FILTERS: StaticSchema = ( + 18, + n0, + _Fi, + 0, + (_eKU, _kU, _kT, _eO, _mB), + ( + (EXTENDED_KEY_USAGE_FILTER_LIST, 0), + (KEY_USAGE_FILTER_LIST, 0), + (KEY_ALGORITHM_LIST, 0), + (CERTIFICATE_EXPORT, 0), + (CERTIFICATE_MANAGED_BY, 0), + ), +) + +SORT_BY: StaticSchema = (14, n0, _SB, 0, (_CA_,), ((-1, {_sV: _CA_}),)) + +SORT_ORDER: StaticSchema = ( + 14, + n0, + _SO, + 0, + (_ASCENDING, _DESCENDING), + ((-1, {_sV: _ASCENDING}), (-1, {_sV: _DESCENDING})), +) + +LIST_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _LCI, + {_sSI: _cLCR, _smit: None}, + (_CSe, _CKPOe, _In, _NT, _MI, _SB, _SO), + ( + (CERTIFICATE_STATUSES, 0), + (CERTIFICATE_KEY_PAIR_ORIGINS, 0), + (FILTERS, 0), + (NEXT_TOKEN, 0), + (MAX_ITEMS, 0), + (SORT_BY, 0), + (SORT_ORDER, 0), + ), +) + +EXTENDED_KEY_USAGE_NAMES: StaticSchema = ( + 16, + n0, + _EKUNx, + 0, + (_m,), + ((EXTENDED_KEY_USAGE_NAME, 0),), +) + +KEY_USAGE_NAMES: StaticSchema = (16, n0, _KUNe, 0, (_m,), ((KEY_USAGE_NAME, 0),)) + +CERTIFICATE_SUMMARY: StaticSchema = ( + 18, + n0, + _CSer, + 0, + ( + _CAer, + _DN, + _SANS, + _HASAN, + _S, + _T, + _KA, + _KUe, + _EKUx, + _EO, + _IU, + _E, + _RE, + _NBo, + _NA, + _CA, + _IAs, + _IA, + _RA, + _MB, + _CKPO, + ), + ( + (ARN, 0), + (DOMAIN_NAME_STRING, 0), + (DOMAIN_LIST, 0), + (NULLABLE_BOOLEAN, 0), + (CERTIFICATE_STATUS, 0), + (CERTIFICATE_TYPE, 0), + (KEY_ALGORITHM, 0), + (KEY_USAGE_NAMES, 0), + (EXTENDED_KEY_USAGE_NAMES, 0), + (CERTIFICATE_EXPORT, 0), + (NULLABLE_BOOLEAN, 0), + (NULLABLE_BOOLEAN, 0), + (RENEWAL_ELIGIBILITY, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (CERTIFICATE_MANAGED_BY, 0), + (CERTIFICATE_KEY_PAIR_ORIGIN, 0), + ), +) + +CERTIFICATE_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CSL, + 0, + (_m,), + ((CERTIFICATE_SUMMARY, 0),), +) + +LIST_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCO, + {_sSI: _cLCRo, _smith: None}, + (_NT, _CSL), + ((NEXT_TOKEN, 0), (CERTIFICATE_SUMMARY_LIST, 0)), +) + +LIST_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _LC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + LIST_CERTIFICATES_INPUT, + LIST_CERTIFICATES_OUTPUT, + (INVALID_ARGS_EXCEPTION, VALIDATION_EXCEPTION), +) + +LIST_TAGS_FOR_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _LTFCI, + {_sSI: _cLTFCR, _smit: None}, + (_CAer,), + ((ARN, 1),), +) + +LIST_TAGS_FOR_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFCO, + {_sSI: _cLTFCRo, _smith: None}, + (_Tag,), + ((TAG_LIST, 0),), +) + +LIST_TAGS_FOR_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _LTFC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + LIST_TAGS_FOR_CERTIFICATE_INPUT, + LIST_TAGS_FOR_CERTIFICATE_OUTPUT, + (INVALID_ARN_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION, VALIDATION_EXCEPTION), +) + +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sSI: _cLTFRR, _smit: None}, + (_RAes,), + ((ARN, 1),), +) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_sSI: _cLTFRRo, _smith: None}, + (_Tag,), + ((TAG_LIST, 0),), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + (RESOURCE_NOT_FOUND_EXCEPTION, VALIDATION_EXCEPTION), +) + +IDEMPOTENCY_TOKEN: StaticSchema = (3, n0, _ITd, 0) + +PUT_ACCOUNT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PACI, + {_sSI: _cPACR, _smit: None}, + (_EE, _ITd), + ((EXPIRY_EVENTS_CONFIGURATION, 0), (IDEMPOTENCY_TOKEN, 1)), +) + +PUT_ACCOUNT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PACO, + {_sSI: _sU, _smith: None}, +) + +PUT_ACCOUNT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PAC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + PUT_ACCOUNT_CONFIGURATION_INPUT, + PUT_ACCOUNT_CONFIGURATION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +REMOVE_TAGS_FROM_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _RTFCI, + {_sSI: _cRTFCR, _smit: None}, + (_CAer, _Tag), + ((ARN, 1), (TAG_LIST, 1)), +) + +REMOVE_TAGS_FROM_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _RTFCO, + {_sSI: _sU, _smith: None}, +) + +REMOVE_TAGS_FROM_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _RTFC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + REMOVE_TAGS_FROM_CERTIFICATE_INPUT, + REMOVE_TAGS_FROM_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + INVALID_TAG_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + TAG_POLICY_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +RENEW_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _RCI, + {_sSI: _cRCR, _smit: None}, + (_CAer,), + ((ARN, 1),), +) + +RENEW_CERTIFICATE_OUTPUT: StaticSchema = (18, n0, _RCO, {_sSI: _sU, _smith: None}) + +RENEW_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _RC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + RENEW_CERTIFICATE_INPUT, + RENEW_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + REQUEST_IN_PROGRESS_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +INVALID_DOMAIN_VALIDATION_OPTIONS_EXCEPTION: StaticSchema = ( + 18, + n0, + _IDVOE, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +PCA_ARN: StaticSchema = (3, n0, _PAc, 0) + +DOMAIN_VALIDATION_OPTION: StaticSchema = ( + 18, + n0, + _DVOo, + 0, + (_DN, _VD), + ((DOMAIN_NAME_STRING, 1), (DOMAIN_NAME_STRING, 1)), +) + +DOMAIN_VALIDATION_OPTION_LIST: StaticSchema = ( + 16, + n0, + _DVOL, + 0, + (_m,), + ((DOMAIN_VALIDATION_OPTION, 0),), +) + +REQUEST_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _RCIe, + {_sSI: _cRCRo, _smit: None}, + (_DN, _VM, _SAN, _ITd, _DVO, _O, _CAA, _Tag, _KA, _MB), + ( + (DOMAIN_NAME_STRING, 1), + (VALIDATION_METHOD, 0), + (DOMAIN_LIST, 0), + (IDEMPOTENCY_TOKEN, 0), + (DOMAIN_VALIDATION_OPTION_LIST, 0), + (CERTIFICATE_OPTIONS, 0), + (PCA_ARN, 0), + (TAG_LIST, 0), + (KEY_ALGORITHM, 0), + (CERTIFICATE_MANAGED_BY, 0), + ), +) + +REQUEST_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _RCOe, + {_sSI: _cRCRom, _smith: None}, + (_CAer,), + ((ARN, 0),), +) + +REQUEST_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _RCe, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + REQUEST_CERTIFICATE_INPUT, + REQUEST_CERTIFICATE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_DOMAIN_VALIDATION_OPTIONS_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + INVALID_TAG_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + TAG_POLICY_EXCEPTION, + TOO_MANY_TAGS_EXCEPTION, + ), +) + +INVALID_STATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISEn, + {_s: _c}, + (_me,), + ((STRING, 0),), +) + +RESEND_VALIDATION_EMAIL_INPUT: StaticSchema = ( + 18, + n0, + _RVEI, + {_sSI: _cRVER, _smit: None}, + (_CAer, _D, _VD), + ((ARN, 1), (DOMAIN_NAME_STRING, 1), (DOMAIN_NAME_STRING, 1)), +) + +RESEND_VALIDATION_EMAIL_OUTPUT: StaticSchema = ( + 18, + n0, + _RVEO, + {_sSI: _sU, _smith: None}, +) + +RESEND_VALIDATION_EMAIL: StaticOperationSchema = ( + 23, + n0, + _RVE, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + RESEND_VALIDATION_EMAIL_INPUT, + RESEND_VALIDATION_EMAIL_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_DOMAIN_VALIDATION_OPTIONS_EXCEPTION, + INVALID_STATE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +REVOKE_ACME_ACCOUNT_INPUT: StaticSchema = ( + 18, + n0, + _RAAI, + {_sSI: _cRAAR, _smit: None}, + (_AEA, _AU), + ((ACME_ENDPOINT_ARN, 1), (3, 1)), +) + +REVOKE_ACME_ACCOUNT_OUTPUT: StaticSchema = (18, n0, _RAAO, {_sSI: _sU, _smith: None}) + +REVOKE_ACME_ACCOUNT: StaticOperationSchema = ( + 23, + n0, + _RAA, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + REVOKE_ACME_ACCOUNT_INPUT, + REVOKE_ACME_ACCOUNT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT: StaticSchema = ( + 18, + n0, + _RAEABI, + {_sSI: _cRAEABR, _smit: None}, + (_AEABA,), + ((ACME_EXTERNAL_ACCOUNT_BINDING_ARN, 1),), +) + +REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT: StaticSchema = ( + 18, + n0, + _RAEABO, + {_sSI: _sU, _smith: None}, +) + +REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING: StaticOperationSchema = ( + 23, + n0, + _RAEAB, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT, + REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +REVOKE_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _RCIev, + {_sSI: _cRCRoma, _smit: None}, + (_CAer, _RRe), + ((ARN, 1), (REVOCATION_REASON, 1)), +) + +REVOKE_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _RCOev, + {_sSI: _cRCRomam, _smith: None}, + (_CAer,), + ((ARN, 0),), +) + +REVOKE_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _RCev, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + REVOKE_CERTIFICATE_INPUT, + REVOKE_CERTIFICATE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INVALID_ARN_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +SEARCH_MAX_RESULTS: StaticSchema = (7, n0, _SMR, {_smithy: 100}) + +SEARCH_CERTIFICATES_SORT_BY: StaticSchema = ( + 14, + n0, + _SCSB, + 0, + ( + _CA_, + _NA_, + _STATUS, + _RS_, + _EXPORTED, + _IU__, + _NB_, + _KA__, + _TYPE, + _CA__, + _CN_, + _RA_, + _RE_, + _IA_, + _MB_, + _EO___, + _VM_, + _IA__, + _AEA_, + _AAI_, + _CKPO_, + ), + ( + (-1, {_sV: _CA_}), + (-1, {_sV: _NA_}), + (-1, {_sV: _STATUS}), + (-1, {_sV: _RS_}), + (-1, {_sV: _EXPORTED}), + (-1, {_sV: _IU__}), + (-1, {_sV: _NB_}), + (-1, {_sV: _KA__}), + (-1, {_sV: _TYPE}), + (-1, {_sV: _CA__}), + (-1, {_sV: _CN_}), + (-1, {_sV: _RA_}), + (-1, {_sV: _RE_}), + (-1, {_sV: _IA_}), + (-1, {_sV: _MB_}), + (-1, {_sV: _EO___}), + (-1, {_sV: _VM_}), + (-1, {_sV: _IA__}), + (-1, {_sV: _AEA_}), + (-1, {_sV: _AAI_}), + (-1, {_sV: _CKPO_}), + ), +) + +SEARCH_CERTIFICATES_SORT_ORDER: StaticSchema = ( + 14, + n0, + _SCSO, + 0, + (_ASCENDING, _DESCENDING), + ((-1, {_sV: _ASCENDING}), (-1, {_sV: _DESCENDING})), +) + +CERTIFICATE_METADATA: StaticSchema = ( + 19, + n0, + _CM, + 0, + (_ACM,), + ((ACM_CERTIFICATE_METADATA, 0),), +) + +CUSTOM_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _CAu, + 0, + (_OI, _V), + ((STRING, 0), (STRING, 0)), +) + +CUSTOM_ATTRIBUTE_LIST: StaticSchema = (16, n0, _CAL, 0, (_m,), ((CUSTOM_ATTRIBUTE, 0),)) + +DOMAIN_COMPONENT_LIST: StaticSchema = (16, n0, _DCL, 0, (_m,), ((STRING, 0),)) + +DISTINGUISHED_NAME: StaticSchema = ( + 18, + n0, + _DNi, + 0, + ( + _CN, + _DCo, + _Cou, + _CAus, + _DNQ, + _GQ, + _GN, + _Ini, + _L, + _Or, + _OU, + _Ps, + _SN, + _Stat, + _Sur, + _Ti, + ), + ( + (STRING, 0), + (DOMAIN_COMPONENT_LIST, 0), + (STRING, 0), + (CUSTOM_ATTRIBUTE_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + ), +) + +OTHER_NAME: StaticSchema = (18, n0, _ON, 0, (_OI, _V), ((STRING, 0), (STRING, 0))) + +GENERAL_NAME: StaticSchema = ( + 19, + n0, + _GNe, + 0, + (_DNir, _DNn, _IAp, _ON, _RI, _RN, _URI), + ( + (DISTINGUISHED_NAME, 0), + (STRING, 0), + (STRING, 0), + (OTHER_NAME, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + ), +) + +GENERAL_NAME_LIST: StaticSchema = (16, n0, _GNL, 0, (_m,), ((GENERAL_NAME, 0),)) + +X509_ATTRIBUTES: StaticSchema = ( + 18, + n0, + _XA, + 0, + (_I, _Sub, _SAN, _EKUx, _KA, _KUe, _SN, _NA, _NBo), + ( + (DISTINGUISHED_NAME, 0), + (DISTINGUISHED_NAME, 0), + (GENERAL_NAME_LIST, 0), + (EXTENDED_KEY_USAGE_NAMES, 0), + (KEY_ALGORITHM, 0), + (KEY_USAGE_NAMES, 0), + (SERIAL_NUMBER, 0), + (T_STAMP, 0), + (T_STAMP, 0), + ), +) + +CERTIFICATE_SEARCH_RESULT: StaticSchema = ( + 18, + n0, + _CSR, + 0, + (_CAer, _XA, _CM), + ((ARN, 0), (X509_ATTRIBUTES, 0), (CERTIFICATE_METADATA, 0)), +) + +CERTIFICATE_SEARCH_RESULT_LIST: StaticSchema = ( + 16, + n0, + _CSRL, + 0, + (_m,), + ((CERTIFICATE_SEARCH_RESULT, 0),), +) + +SEARCH_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _SCO, + {_sSI: _cSCR, _smith: None}, + (_Re, _NT), + ((CERTIFICATE_SEARCH_RESULT_LIST, 0), (NEXT_TOKEN, 0)), +) + +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sSI: _cTRR, _smit: None}, + (_RAes, _Tag), + ((ARN, 1), (TAG_LIST, 1)), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _sU, _smith: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TRa, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + ( + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_m,), ((TAG_KEY, 0),)) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URIn, + {_sSI: _cURR, _smit: None}, + (_RAes, _TKa), + ((ARN, 1), (TAG_KEY_LIST, 1)), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _sU, _smith: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + (RESOURCE_NOT_FOUND_EXCEPTION, VALIDATION_EXCEPTION), +) + +UPDATE_ACME_DOMAIN_VALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _UADVI, + {_sSI: _cUADVR, _smit: None}, + (_ADVA, _PO), + ((ACME_DOMAIN_VALIDATION_ARN, 1), (PREVALIDATION_OPTIONS, 0)), +) + +UPDATE_ACME_DOMAIN_VALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UADVO, + {_sSI: _sU, _smith: None}, +) + +UPDATE_ACME_DOMAIN_VALIDATION: StaticOperationSchema = ( + 23, + n0, + _UADV, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + UPDATE_ACME_DOMAIN_VALIDATION_INPUT, + UPDATE_ACME_DOMAIN_VALIDATION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_ACME_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _UAEI, + {_sSI: _cUAER, _smit: None}, + (_AEA, _AB, _Co, _CAe), + ( + (ACME_ENDPOINT_ARN, 1), + (ACME_AUTHORIZATION_BEHAVIOR, 0), + (ACME_CONTACT, 0), + (CERTIFICATE_AUTHORITY, 0), + ), +) + +UPDATE_ACME_ENDPOINT_OUTPUT: StaticSchema = (18, n0, _UAEO, {_sSI: _sU, _smith: None}) + +UPDATE_ACME_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _UAE, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM-ACME"})})}, + UPDATE_ACME_ENDPOINT_INPUT, + UPDATE_ACME_ENDPOINT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_CERTIFICATE_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _UCOI, + {_sSI: _cUCOR, _smit: None}, + (_CAer, _O), + ((ARN, 1), (CERTIFICATE_OPTIONS, 1)), +) + +UPDATE_CERTIFICATE_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _UCOO, + {_sSI: _sU, _smith: None}, +) + +UPDATE_CERTIFICATE_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _UCO, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + UPDATE_CERTIFICATE_OPTIONS_INPUT, + UPDATE_CERTIFICATE_OPTIONS_OUTPUT, + ( + CONFLICT_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +CERTIFICATE_FILTER_STATEMENT: StaticSchema = ( + 19, + n0, + _CFS, + 0, + (_An, _Or_, _No, _Fil), + ( + (lambda: CERTIFICATE_FILTER_STATEMENT_LIST, 0), + (lambda: CERTIFICATE_FILTER_STATEMENT_LIST, 0), + (lambda: CERTIFICATE_FILTER_STATEMENT, 0), + (CERTIFICATE_FILTER, 0), + ), +) + +CERTIFICATE_FILTER_STATEMENT_LIST: StaticSchema = ( + 16, + n0, + _CFSL, + 0, + (_m,), + ((CERTIFICATE_FILTER_STATEMENT, 0),), +) + +SEARCH_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _SCI, + {_sSI: _cSCRo, _smit: None}, + (_FSi, _MR, _NT, _SB, _SO), + ( + (CERTIFICATE_FILTER_STATEMENT, 0), + (SEARCH_MAX_RESULTS, {_smithy: 100}), + (NEXT_TOKEN, 0), + (SEARCH_CERTIFICATES_SORT_BY, {_smithy: _CA_}), + (SEARCH_CERTIFICATES_SORT_ORDER, {_smithy: _ASCENDING}), + ), +) + +SEARCH_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _SC, + {_sCP: MappingProxyType({"ServiceType": MappingProxyType({"value": "ACM"})})}, + SEARCH_CERTIFICATES_INPUT, + SEARCH_CERTIFICATES_OUTPUT, + (ACCESS_DENIED_EXCEPTION, THROTTLING_EXCEPTION, VALIDATION_EXCEPTION), +) + +CERTIFICATE_MANAGER: StaticSchema = ( + 21, + n0, + _CMe, + { + _a: MappingProxyType({"name": "acm"}), + _a_: None, + _aw: MappingProxyType( + { + "sdkId": "ACM", + "endpointPrefix": "acm", + "arnNamespace": "acm", + "cloudTrailEventSource": "acm.amazonaws.com", + "cloudFormationName": "CertificateManager", + } + ), + }, +) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/aio/__init__.py b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/__init__.py new file mode 100644 index 00000000..8a8c9959 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncACMClient + from .config import AsyncACMConfig + +__all__ = ["AsyncACMClient", "AsyncACMConfig"] + +_EXPORTS = {"AsyncACMClient": ".client", "AsyncACMConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/aio/client.py b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/client.py new file mode 100644 index 00000000..efb77144 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/client.py @@ -0,0 +1,1276 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncACMConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AddTagsToCertificateInput, + AddTagsToCertificateOutput, + CreateAcmeDomainValidationInput, + CreateAcmeDomainValidationOutput, + CreateAcmeEndpointInput, + CreateAcmeEndpointOutput, + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + DeleteAcmeDomainValidationInput, + DeleteAcmeDomainValidationOutput, + DeleteAcmeEndpointInput, + DeleteAcmeEndpointOutput, + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + DeleteCertificateInput, + DeleteCertificateOutput, + DescribeAcmeAccountInput, + DescribeAcmeAccountOutput, + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + DescribeAcmeEndpointInput, + DescribeAcmeEndpointOutput, + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + DescribeCertificateInput, + DescribeCertificateOutput, + ExportCertificateInput, + ExportCertificateOutput, + GetAccountConfigurationInput, + GetAccountConfigurationOutput, + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + GetCertificateInput, + GetCertificateOutput, + ImportCertificateInput, + ImportCertificateOutput, + ListAcmeAccountsInput, + ListAcmeAccountsOutput, + ListAcmeDomainValidationsInput, + ListAcmeDomainValidationsOutput, + ListAcmeEndpointsInput, + ListAcmeEndpointsOutput, + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + ListCertificatesInput, + ListCertificatesOutput, + ListTagsForCertificateInput, + ListTagsForCertificateOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + PutAccountConfigurationInput, + PutAccountConfigurationOutput, + RemoveTagsFromCertificateInput, + RemoveTagsFromCertificateOutput, + RenewCertificateInput, + RenewCertificateOutput, + RequestCertificateInput, + RequestCertificateOutput, + ResendValidationEmailInput, + ResendValidationEmailOutput, + RevokeAcmeAccountInput, + RevokeAcmeAccountOutput, + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + RevokeCertificateInput, + RevokeCertificateOutput, + SearchCertificatesInput, + SearchCertificatesOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAcmeDomainValidationInput, + UpdateAcmeDomainValidationOutput, + UpdateAcmeEndpointInput, + UpdateAcmeEndpointOutput, + UpdateCertificateOptionsInput, + UpdateCertificateOptionsOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncACMClient(AsyncClient[AsyncACMConfig]): + """ + You can use Certificate Manager (ACM) to manage SSL/TLS certificates for + your Amazon Web Services-based websites and applications. For more + information about using ACM, see the [Certificate Manager User + Guide](https://docs.aws.amazon.com/acm/latest/userguide/). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def add_tags_to_certificate( + self, input: AddTagsToCertificateInput, plugins: list[Plugin] | None = None + ) -> AddTagsToCertificateOutput: + """ + Adds one or more tags to an ACM certificate. Tags are labels that you + can use to identify and organize your Amazon Web Services resources. + Each tag consists of a `key` and an optional `value`. You specify the + certificate on input by its Amazon Resource Name (ARN). You specify the + tag by using a key-value pair. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use TagResource instead. + + You can apply a tag to just one certificate if you want to identify a + specific characteristic of that certificate, or you can apply the same + tag to multiple certificates if you want to filter for a common + relationship among those certificates. Similarly, you can apply the same + tag to multiple resources if you want to specify a relationship among + those resources. For example, you can add the same tag to an ACM + certificate and an Elastic Load Balancing load balancer to indicate that + they are both used by the same website. For more information, see + [Tagging ACM + certificates](https://docs.aws.amazon.com/acm/latest/userguide/tags.html). + + To remove one or more tags, use the RemoveTagsFromCertificate action. To + view all of the tags that have been applied to the certificate, use the + ListTagsForCertificate action. + + Args: + input: + An instance of `AddTagsToCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToCertificateOutput`. + """ + return await self._invoke(input, _models.ADD_TAGS_TO_CERTIFICATE, [], plugins) + + async def create_acme_domain_validation( + self, + input: CreateAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> CreateAcmeDomainValidationOutput: + """ + Creates a domain validation for an ACME endpoint. Domain validations + authorize the endpoint to issue certificates for specified domain names. + You configure prevalidation to prove domain ownership. + + Args: + input: + An instance of `CreateAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeDomainValidationOutput`. + """ + return await self._invoke( + input, _models.CREATE_ACME_DOMAIN_VALIDATION, [], plugins + ) + + async def create_acme_endpoint( + self, input: CreateAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateAcmeEndpointOutput: + """ + Creates an ACME endpoint, which is a managed ACME server with a unique + endpoint URL. After creation, ACME clients can use the endpoint URL to + automate certificate issuance using the ACME protocol. + + Args: + input: + An instance of `CreateAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeEndpointOutput`. + """ + return await self._invoke(input, _models.CREATE_ACME_ENDPOINT, [], plugins) + + async def create_acme_external_account_binding( + self, + input: CreateAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> CreateAcmeExternalAccountBindingOutput: + """ + Creates an external account binding (EAB) for an ACME endpoint. An EAB + provides credentials that authorize an ACME client to register an + account with the endpoint. Each EAB is associated with an IAM role that + controls what certificate operations the ACME client can perform. + + Args: + input: + An instance of `CreateAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeExternalAccountBindingOutput`. + """ + return await self._invoke( + input, _models.CREATE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + async def delete_acme_domain_validation( + self, + input: DeleteAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteAcmeDomainValidationOutput: + """ + Deletes a domain validation. After deletion, the ACME endpoint can no + longer issue certificates for the associated domain. + + Args: + input: + An instance of `DeleteAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeDomainValidationOutput`. + """ + return await self._invoke( + input, _models.DELETE_ACME_DOMAIN_VALIDATION, [], plugins + ) + + async def delete_acme_endpoint( + self, input: DeleteAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteAcmeEndpointOutput: + """ + Deletes an ACME endpoint. After deletion, the endpoint URL is no longer + accessible and ACME clients cannot issue certificates through it. Any + existing external account bindings and domain validations associated + with the endpoint are also deleted. + + Args: + input: + An instance of `DeleteAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeEndpointOutput`. + """ + return await self._invoke(input, _models.DELETE_ACME_ENDPOINT, [], plugins) + + async def delete_acme_external_account_binding( + self, + input: DeleteAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> DeleteAcmeExternalAccountBindingOutput: + """ + Deletes an external account binding. Previously fetched credentials for + this binding will no longer be usable for account registration. A + deleted binding cannot be recovered. + + Args: + input: + An instance of `DeleteAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeExternalAccountBindingOutput`. + """ + return await self._invoke( + input, _models.DELETE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + async def delete_certificate( + self, input: DeleteCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteCertificateOutput: + """ + Deletes a certificate and its associated private key. If this action + succeeds, the certificate is not available for use by Amazon Web + Services services integrated with ACM. Deleting a certificate is + eventually consistent. The may be a short delay before the certificate + no longer appears in the list that can be displayed by calling the + ListCertificates action or be retrieved by calling the GetCertificate + action. + + Note: + You cannot delete an ACM certificate that is being used by another + Amazon Web Services service. To delete a certificate that is in use, you + must first remove the certificate association using the console or the + CLI for the associated service. + + Deleting a certificate issued by a private certificate authority (CA) + has no effect on the CA. You will continue to be charged for the CA + until it is deleted. For more information, see [Deleting Your Private + CA](https://docs.aws.amazon.com/privateca/latest/userguide/PCADeleteCA.html) + in the *Private Certificate Authority User Guide*. + + You cannot delete a certificate with a `CertificateKeyPairOrigin` of + `ACME`. ACM automatically deletes these certificates 1 year after they + expire. + + Deleting a certificate issued by a private certificate authority (CA) + has no effect on the CA. You will continue to be charged for the CA + until it is deleted. For more information, see [Deleting your private + CA](https://docs.aws.amazon.com/privateca/latest/userguide/PCADeleteCA.html) + in the *Amazon Web Services Private Certificate Authority User Guide*. + + Args: + input: + An instance of `DeleteCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCertificateOutput`. + """ + return await self._invoke(input, _models.DELETE_CERTIFICATE, [], plugins) + + async def describe_acme_account( + self, input: DescribeAcmeAccountInput, plugins: list[Plugin] | None = None + ) -> DescribeAcmeAccountOutput: + """ + Returns detailed metadata about the specified ACME account, including + its status, public key thumbprint, and associated external account + binding. + + Args: + input: + An instance of `DescribeAcmeAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeAccountOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ACME_ACCOUNT, [], plugins) + + async def describe_acme_domain_validation( + self, + input: DescribeAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAcmeDomainValidationOutput: + """ + Returns detailed metadata about the specified domain validation, + including its status, domain scope, and DNS resource records required + for validation. + + Args: + input: + An instance of `DescribeAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeDomainValidationOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ACME_DOMAIN_VALIDATION, [], plugins + ) + + async def describe_acme_endpoint( + self, input: DescribeAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> DescribeAcmeEndpointOutput: + """ + Returns detailed metadata about the specified ACME endpoint, including + its status, URL, authorization behavior, and certificate authority + configuration. + + Args: + input: + An instance of `DescribeAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeEndpointOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ACME_ENDPOINT, [], plugins) + + async def describe_acme_external_account_binding( + self, + input: DescribeAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAcmeExternalAccountBindingOutput: + """ + Returns detailed metadata about the specified external account binding, + including the associated IAM role, expiration time, and usage history. + + Args: + input: + An instance of `DescribeAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeExternalAccountBindingOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + async def describe_certificate( + self, input: DescribeCertificateInput, plugins: list[Plugin] | None = None + ) -> DescribeCertificateOutput: + """ + Returns detailed metadata about the specified ACM certificate. + + If you have just created a certificate using the `RequestCertificate` + action, there is a delay of several seconds before you can retrieve + information about it. + + Args: + input: + An instance of `DescribeCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCertificateOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CERTIFICATE, [], plugins) + + async def export_certificate( + self, input: ExportCertificateInput, plugins: list[Plugin] | None = None + ) -> ExportCertificateOutput: + """ + Exports a private certificate issued by a private certificate authority + (CA) or a public certificate for use anywhere. The exported file + contains the certificate, the certificate chain, and the encrypted + private key associated with the public key that is embedded in the + certificate. For security, you must assign a passphrase for the private + key when exporting it. + + For information about exporting and formatting a certificate using the + ACM console or CLI, see [Export a private + certificate](https://docs.aws.amazon.com/acm/latest/userguide/export-private.html) + and [Export a public + certificate](https://docs.aws.amazon.com/acm/latest/userguide/export-public-certificate). + + Note: + ACM public certificates created prior to June 17, 2025 cannot be + exported. + + Args: + input: + An instance of `ExportCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportCertificateOutput`. + """ + return await self._invoke(input, _models.EXPORT_CERTIFICATE, [], plugins) + + async def get_account_configuration( + self, input: GetAccountConfigurationInput, plugins: list[Plugin] | None = None + ) -> GetAccountConfigurationOutput: + """ + Returns the account configuration options associated with an Amazon Web + Services account. + + Args: + input: + An instance of `GetAccountConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountConfigurationOutput`. + """ + return await self._invoke(input, _models.GET_ACCOUNT_CONFIGURATION, [], plugins) + + async def get_acme_external_account_binding_credentials( + self, + input: GetAcmeExternalAccountBindingCredentialsInput, + plugins: list[Plugin] | None = None, + ) -> GetAcmeExternalAccountBindingCredentialsOutput: + """ + Retrieves the key ID and MAC key credentials for an external account + binding. These credentials are used by ACME clients during account + registration to bind to the endpoint. + + Args: + input: + An instance of `GetAcmeExternalAccountBindingCredentialsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAcmeExternalAccountBindingCredentialsOutput`. + """ + return await self._invoke( + input, _models.GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS, [], plugins + ) + + async def get_certificate( + self, input: GetCertificateInput, plugins: list[Plugin] | None = None + ) -> GetCertificateOutput: + """ + Retrieves a certificate and its certificate chain. The certificate may + be either a public or private certificate issued using the ACM + `RequestCertificate` action, or a certificate imported into ACM using + the `ImportCertificate` action. The chain consists of the certificate of + the issuing CA and the intermediate certificates of any other + subordinate CAs. All of the certificates are base64 encoded. You can use + [OpenSSL](https://wiki.openssl.org/index.php/Command_Line_Utilities) to + decode the certificates and inspect individual fields. + + Args: + input: + An instance of `GetCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCertificateOutput`. + """ + return await self._invoke(input, _models.GET_CERTIFICATE, [], plugins) + + async def import_certificate( + self, input: ImportCertificateInput, plugins: list[Plugin] | None = None + ) -> ImportCertificateOutput: + """ + Imports a certificate into Certificate Manager (ACM) to use with + services that are integrated with ACM. Note that [integrated + services](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) + allow only certificate types and keys they support to be associated with + their resources. Further, their support differs depending on whether the + certificate is imported into IAM or into ACM. For more information, see + the documentation for each service. For more information about importing + certificates into ACM, see [Importing + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) + in the *Certificate Manager User Guide*. + + Note: + ACM does not provide [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for certificates that you import. + + Note the following guidelines when importing third party certificates: + + - You must enter the private key that matches the certificate you are + importing. + + - The private key must be unencrypted. You cannot import a private key + that is protected by a password or a passphrase. + + - The private key must be no larger than 5 KB (5,120 bytes). + + - The certificate, private key, and certificate chain must be + PEM-encoded. + + - The current time must be between the `Not Before` and `Not After` + certificate fields. + + - The `Issuer` field must not be empty. + + - The OCSP authority URL, if present, must not exceed 1000 characters. + + - To import a new certificate, omit the `CertificateArn` argument. + Include this argument only when you want to replace a previously + imported certificate. + + - When you import a certificate by using the CLI, you must specify the + certificate, the certificate chain, and the private key by their file + names preceded by `fileb://`. For example, you can specify a + certificate saved in the `C:\temp` folder as + `fileb://C:\temp\\certificate_to_import.pem`. If you are making an HTTP + or HTTPS Query request, include these arguments as BLOBs. + + - When you import a certificate by using an SDK, you must specify the + certificate, the certificate chain, and the private key files in the + manner required by the programming language you're using. + + - The cryptographic algorithm of an imported certificate must match the + algorithm of the signing CA. For example, if the signing CA key type + is RSA, then the certificate key type must also be RSA. + + This operation returns the [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of the imported certificate. + + Args: + input: + An instance of `ImportCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportCertificateOutput`. + """ + return await self._invoke(input, _models.IMPORT_CERTIFICATE, [], plugins) + + async def list_acme_accounts( + self, input: ListAcmeAccountsInput, plugins: list[Plugin] | None = None + ) -> ListAcmeAccountsOutput: + """ + Retrieves a list of ACME accounts registered with the specified ACME + endpoint. ACME accounts are created when clients use external account + binding credentials to register. + + Args: + input: + An instance of `ListAcmeAccountsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeAccountsOutput`. + """ + return await self._invoke(input, _models.LIST_ACME_ACCOUNTS, [], plugins) + + async def list_acme_domain_validations( + self, input: ListAcmeDomainValidationsInput, plugins: list[Plugin] | None = None + ) -> ListAcmeDomainValidationsOutput: + """ + Retrieves a list of domain validations for the specified ACME endpoint. + + Args: + input: + An instance of `ListAcmeDomainValidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeDomainValidationsOutput`. + """ + return await self._invoke( + input, _models.LIST_ACME_DOMAIN_VALIDATIONS, [], plugins + ) + + async def list_acme_endpoints( + self, input: ListAcmeEndpointsInput, plugins: list[Plugin] | None = None + ) -> ListAcmeEndpointsOutput: + """ + Retrieves a list of ACME endpoints in your account. Use this operation + to view all configured ACME endpoints and their current status. + + Args: + input: + An instance of `ListAcmeEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeEndpointsOutput`. + """ + return await self._invoke(input, _models.LIST_ACME_ENDPOINTS, [], plugins) + + async def list_acme_external_account_bindings( + self, + input: ListAcmeExternalAccountBindingsInput, + plugins: list[Plugin] | None = None, + ) -> ListAcmeExternalAccountBindingsOutput: + """ + Retrieves a list of external account bindings for the specified ACME + endpoint. + + Args: + input: + An instance of `ListAcmeExternalAccountBindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeExternalAccountBindingsOutput`. + """ + return await self._invoke( + input, _models.LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS, [], plugins + ) + + async def list_certificate_domain_validations( + self, + input: ListCertificateDomainValidationsInput, + plugins: list[Plugin] | None = None, + ) -> ListCertificateDomainValidationsOutput: + """ + Returns per-domain validation summaries for an ACM certificate. Each + summary includes the domain name, the active validation configuration, + and the requested validation configuration when a validation method + migration is in progress. You can use the results to monitor the + progress of an email-to-DNS validation migration and to retrieve the + CNAME records required for DNS validation. + + Args: + input: + An instance of `ListCertificateDomainValidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCertificateDomainValidationsOutput`. + """ + return await self._invoke( + input, _models.LIST_CERTIFICATE_DOMAIN_VALIDATIONS, [], plugins + ) + + async def list_certificates( + self, input: ListCertificatesInput, plugins: list[Plugin] | None = None + ) -> ListCertificatesOutput: + """ + Retrieves a list of certificate ARNs and domain names. You can request + that only certificates that match a specific status be listed. You can + also filter by specific attributes of the certificate. Default filtering + returns only `RSA_2048` certificates. For more information, see Filters. + + Note: + By default, this action does not return certificates with a + `CertificateKeyPairOrigin` of `ACME`. To include ACME certificates, + specify `ACME` in the `CertificateKeyPairOrigins` filter. + + Args: + input: + An instance of `ListCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCertificatesOutput`. + """ + return await self._invoke(input, _models.LIST_CERTIFICATES, [], plugins) + + async def list_tags_for_certificate( + self, input: ListTagsForCertificateInput, plugins: list[Plugin] | None = None + ) -> ListTagsForCertificateOutput: + """ + Lists the tags that have been applied to the ACM certificate. Use the + certificate's Amazon Resource Name (ARN) to specify the certificate. To + add a tag to an ACM certificate, use the AddTagsToCertificate action. To + delete a tag, use the RemoveTagsFromCertificate action. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use ListTagsForResource instead. + + Args: + input: + An instance of `ListTagsForCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForCertificateOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_CERTIFICATE, [], plugins) + + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists the tags associated with an ACM resource. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use ListTagsForCertificate + instead. + + To add one or more tags, use the TagResource action. To remove one or + more tags, use the UntagResource action. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + async def put_account_configuration( + self, input: PutAccountConfigurationInput, plugins: list[Plugin] | None = None + ) -> PutAccountConfigurationOutput: + """ + Adds or modifies account-level configurations in ACM. + + The supported configuration option is `DaysBeforeExpiry`. This option + specifies the number of days prior to certificate expiration when ACM + starts generating `EventBridge` events. ACM sends one event per day per + certificate until the certificate expires. By default, accounts receive + events starting 45 days before certificate expiration. + + Args: + input: + An instance of `PutAccountConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountConfigurationOutput`. + """ + return await self._invoke(input, _models.PUT_ACCOUNT_CONFIGURATION, [], plugins) + + async def remove_tags_from_certificate( + self, input: RemoveTagsFromCertificateInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromCertificateOutput: + """ + Remove one or more tags from an ACM certificate. A tag consists of a + key-value pair. If you do not specify the value portion of the tag when + calling this function, the tag will be removed regardless of value. If + you specify a value, the tag is removed only if it is associated with + the specified value. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use UntagResource instead. + + To add tags to a certificate, use the AddTagsToCertificate action. To + view all of the tags that have been applied to a specific ACM + certificate, use the ListTagsForCertificate action. + + Args: + input: + An instance of `RemoveTagsFromCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromCertificateOutput`. + """ + return await self._invoke( + input, _models.REMOVE_TAGS_FROM_CERTIFICATE, [], plugins + ) + + async def renew_certificate( + self, input: RenewCertificateInput, plugins: list[Plugin] | None = None + ) -> RenewCertificateOutput: + """ + Renews an [eligible ACM + certificate](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html). + In order to renew your Amazon Web Services Private CA certificates with + ACM, you must first [grant the ACM service principal permission to do + so](https://docs.aws.amazon.com/privateca/latest/userguide/assign-permissions.html#PcaPermissions). + For more information, see [Testing Managed + Renewal](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) + in the ACM User Guide. + + Args: + input: + An instance of `RenewCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RenewCertificateOutput`. + """ + return await self._invoke(input, _models.RENEW_CERTIFICATE, [], plugins) + + async def request_certificate( + self, input: RequestCertificateInput, plugins: list[Plugin] | None = None + ) -> RequestCertificateOutput: + """ + Requests an ACM certificate for use with other Amazon Web Services + services. To request an ACM certificate, you must specify a fully + qualified domain name (FQDN) in the `DomainName` parameter. You can also + specify additional FQDNs in the `SubjectAlternativeNames` parameter. + + If you are requesting a private certificate, domain validation is not + required. If you are requesting a public certificate, each domain name + that you specify must be validated to verify that you own or control the + domain. You can use [DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) + or [email + validation](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html). + We recommend that you use DNS validation. + + Note: + ACM behavior differs from the [RFC + 6125](https://datatracker.ietf.org/doc/html/rfc6125#appendix-B.2) + specification of the certificate validation process. ACM first checks + for a Subject Alternative Name, and, if it finds one, ignores the common + name (CN). + + After successful completion of the `RequestCertificate` action, there is + a delay of several seconds before you can retrieve information about the + new certificate. + + Args: + input: + An instance of `RequestCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestCertificateOutput`. + """ + return await self._invoke(input, _models.REQUEST_CERTIFICATE, [], plugins) + + async def resend_validation_email( + self, input: ResendValidationEmailInput, plugins: list[Plugin] | None = None + ) -> ResendValidationEmailOutput: + """ + Resends the email that requests domain ownership validation. The domain + owner or an authorized representative must approve the ACM certificate + before it can be issued. The certificate can be approved by clicking a + link in the mail to navigate to the Amazon certificate approval website + and then clicking **I Approve**. However, the validation email can be + blocked by spam filters. Therefore, if you do not receive the original + mail, you can request that the mail be resent within 72 hours of + requesting the ACM certificate. If more than 72 hours have elapsed since + your original request or since your last attempt to resend validation + mail, you must request a new certificate. For more information about + setting up your contact email addresses, see [Configure Email for your + Domain](https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html). + + Args: + input: + An instance of `ResendValidationEmailInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResendValidationEmailOutput`. + """ + return await self._invoke(input, _models.RESEND_VALIDATION_EMAIL, [], plugins) + + async def revoke_acme_account( + self, input: RevokeAcmeAccountInput, plugins: list[Plugin] | None = None + ) -> RevokeAcmeAccountOutput: + """ + Revokes an ACME account, preventing it from requesting or revoking + certificates. This operation is irreversible. + + Args: + input: + An instance of `RevokeAcmeAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeAcmeAccountOutput`. + """ + return await self._invoke(input, _models.REVOKE_ACME_ACCOUNT, [], plugins) + + async def revoke_acme_external_account_binding( + self, + input: RevokeAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> RevokeAcmeExternalAccountBindingOutput: + """ + Revokes an external account binding, preventing new ACME accounts from + being registered using this binding. Existing ACME accounts that were + previously registered using the binding are not affected and must be + revoked separately. + + Args: + input: + An instance of `RevokeAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeAcmeExternalAccountBindingOutput`. + """ + return await self._invoke( + input, _models.REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + async def revoke_certificate( + self, input: RevokeCertificateInput, plugins: list[Plugin] | None = None + ) -> RevokeCertificateOutput: + """ + Revokes a public ACM certificate. You can only revoke certificates that + have been previously exported. + + Warning: + Once a certificate is revoked, you cannot reuse the certificate. + Revoking a certificate is permanent. + + Args: + input: + An instance of `RevokeCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeCertificateOutput`. + """ + return await self._invoke(input, _models.REVOKE_CERTIFICATE, [], plugins) + + async def search_certificates( + self, input: SearchCertificatesInput, plugins: list[Plugin] | None = None + ) -> SearchCertificatesOutput: + """ + Retrieves a list of certificates matching search criteria. You can + filter certificates by X.509 attributes and ACM specific properties like + certificate status, type and renewal eligibility. This operation + provides more flexible filtering than ListCertificates by supporting + complex filter statements. + + Args: + input: + An instance of `SearchCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchCertificatesOutput`. + """ + return await self._invoke(input, _models.SEARCH_CERTIFICATES, [], plugins) + + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds one or more tags to an ACM resource. Tags are labels that you can + use to identify and organize your Amazon Web Services resources. Each + tag consists of a `key` and an optional `value`. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use AddTagsToCertificate + instead. + + To remove one or more tags, use the UntagResource action. To view all of + the tags that have been applied to a resource, use the + ListTagsForResource action. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Removes one or more tags from an ACM resource. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use RemoveTagsFromCertificate + instead. + + To add one or more tags, use the TagResource action. To view all of the + tags that have been applied to a resource, use the ListTagsForResource + action. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + async def update_acme_domain_validation( + self, + input: UpdateAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateAcmeDomainValidationOutput: + """ + Updates the prevalidation configuration of an existing domain + validation. + + Args: + input: + An instance of `UpdateAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAcmeDomainValidationOutput`. + """ + return await self._invoke( + input, _models.UPDATE_ACME_DOMAIN_VALIDATION, [], plugins + ) + + async def update_acme_endpoint( + self, input: UpdateAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> UpdateAcmeEndpointOutput: + """ + Updates the configuration of an existing ACME endpoint. You can change + the authorization behavior, contact requirement, or certificate + authority settings. + + Args: + input: + An instance of `UpdateAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAcmeEndpointOutput`. + """ + return await self._invoke(input, _models.UPDATE_ACME_ENDPOINT, [], plugins) + + async def update_certificate_options( + self, input: UpdateCertificateOptionsInput, plugins: list[Plugin] | None = None + ) -> UpdateCertificateOptionsOutput: + """ + Updates certificate options. You can use this operation to change the + domain validation method or specify whether to export your certificate. + For more information, see [Migrate from email to DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-to-dns-migration.html) + and [Certificate Manager Exportable Managed + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html). + + Args: + input: + An instance of `UpdateCertificateOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCertificateOptionsOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CERTIFICATE_OPTIONS, [], plugins + ) + + async def _new_config(self) -> AsyncACMConfig: + return await AsyncACMConfig.resolve() + + async def _post_setup(self, config: AsyncACMConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/aio/config.py b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/config.py new file mode 100644 index 00000000..ccc16cd3 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/config.py @@ -0,0 +1,400 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncAwsJson11ClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import CERTIFICATE_MANAGER +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AddTagsToCertificateInput, + AddTagsToCertificateOutput, + CreateAcmeDomainValidationInput, + CreateAcmeDomainValidationOutput, + CreateAcmeEndpointInput, + CreateAcmeEndpointOutput, + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + DeleteAcmeDomainValidationInput, + DeleteAcmeDomainValidationOutput, + DeleteAcmeEndpointInput, + DeleteAcmeEndpointOutput, + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + DeleteCertificateInput, + DeleteCertificateOutput, + DescribeAcmeAccountInput, + DescribeAcmeAccountOutput, + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + DescribeAcmeEndpointInput, + DescribeAcmeEndpointOutput, + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + DescribeCertificateInput, + DescribeCertificateOutput, + ExportCertificateInput, + ExportCertificateOutput, + GetAccountConfigurationInput, + GetAccountConfigurationOutput, + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + GetCertificateInput, + GetCertificateOutput, + ImportCertificateInput, + ImportCertificateOutput, + ListAcmeAccountsInput, + ListAcmeAccountsOutput, + ListAcmeDomainValidationsInput, + ListAcmeDomainValidationsOutput, + ListAcmeEndpointsInput, + ListAcmeEndpointsOutput, + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + ListCertificatesInput, + ListCertificatesOutput, + ListTagsForCertificateInput, + ListTagsForCertificateOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + PutAccountConfigurationInput, + PutAccountConfigurationOutput, + RemoveTagsFromCertificateInput, + RemoveTagsFromCertificateOutput, + RenewCertificateInput, + RenewCertificateOutput, + RequestCertificateInput, + RequestCertificateOutput, + ResendValidationEmailInput, + ResendValidationEmailOutput, + RevokeAcmeAccountInput, + RevokeAcmeAccountOutput, + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + RevokeCertificateInput, + RevokeCertificateOutput, + SearchCertificatesInput, + SearchCertificatesOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAcmeDomainValidationInput, + UpdateAcmeDomainValidationOutput, + UpdateAcmeEndpointInput, + UpdateAcmeEndpointOutput, + UpdateCertificateOptionsInput, + UpdateCertificateOptionsOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddTagsToCertificateInput, AddTagsToCertificateOutput, Any, Any], + Interceptor[ + CreateAcmeDomainValidationInput, CreateAcmeDomainValidationOutput, Any, Any + ], + Interceptor[CreateAcmeEndpointInput, CreateAcmeEndpointOutput, Any, Any], + Interceptor[ + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[ + DeleteAcmeDomainValidationInput, DeleteAcmeDomainValidationOutput, Any, Any + ], + Interceptor[DeleteAcmeEndpointInput, DeleteAcmeEndpointOutput, Any, Any], + Interceptor[ + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[DeleteCertificateInput, DeleteCertificateOutput, Any, Any], + Interceptor[DescribeAcmeAccountInput, DescribeAcmeAccountOutput, Any, Any], + Interceptor[ + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + Any, + Any, + ], + Interceptor[DescribeAcmeEndpointInput, DescribeAcmeEndpointOutput, Any, Any], + Interceptor[ + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[DescribeCertificateInput, DescribeCertificateOutput, Any, Any], + Interceptor[ExportCertificateInput, ExportCertificateOutput, Any, Any], + Interceptor[ + GetAccountConfigurationInput, GetAccountConfigurationOutput, Any, Any + ], + Interceptor[ + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + Any, + Any, + ], + Interceptor[GetCertificateInput, GetCertificateOutput, Any, Any], + Interceptor[ImportCertificateInput, ImportCertificateOutput, Any, Any], + Interceptor[ListAcmeAccountsInput, ListAcmeAccountsOutput, Any, Any], + Interceptor[ + ListAcmeDomainValidationsInput, ListAcmeDomainValidationsOutput, Any, Any + ], + Interceptor[ListAcmeEndpointsInput, ListAcmeEndpointsOutput, Any, Any], + Interceptor[ + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + Any, + Any, + ], + Interceptor[ + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + Any, + Any, + ], + Interceptor[ListCertificatesInput, ListCertificatesOutput, Any, Any], + Interceptor[ + ListTagsForCertificateInput, ListTagsForCertificateOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ + PutAccountConfigurationInput, PutAccountConfigurationOutput, Any, Any + ], + Interceptor[ + RemoveTagsFromCertificateInput, RemoveTagsFromCertificateOutput, Any, Any + ], + Interceptor[RenewCertificateInput, RenewCertificateOutput, Any, Any], + Interceptor[RequestCertificateInput, RequestCertificateOutput, Any, Any], + Interceptor[ResendValidationEmailInput, ResendValidationEmailOutput, Any, Any], + Interceptor[RevokeAcmeAccountInput, RevokeAcmeAccountOutput, Any, Any], + Interceptor[ + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[RevokeCertificateInput, RevokeCertificateOutput, Any, Any], + Interceptor[SearchCertificatesInput, SearchCertificatesOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[ + UpdateAcmeDomainValidationInput, UpdateAcmeDomainValidationOutput, Any, Any + ], + Interceptor[UpdateAcmeEndpointInput, UpdateAcmeEndpointOutput, Any, Any], + Interceptor[ + UpdateCertificateOptionsInput, UpdateCertificateOptionsOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.acm", + service_target="CertificateManager", + service_schema=CERTIFICATE_MANAGER, +) + + +class _AsyncACMConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + service_type: str | None + use_fips_endpoint: bool | None + use_dualstack_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncACMConfig(AsyncAwsConfig): + """ACM configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + service_type: str | None = None + """The service type: ACM or ACM-ACME. Injected via @staticContextParams.""" + + use_fips_endpoint: bool | None = None + """Use FIPS endpoints.""" + + use_dualstack_endpoint: bool | None = None + """Use dual-stack endpoints.""" + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "service_type": FieldSpec(default=None), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("acm").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncAwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="acm") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncACMConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncACMConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/aio/user_agent.py b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/user_agent.py new file mode 100644 index 00000000..f1ca8928 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncACMConfig + + +def aws_user_agent_plugin(config: AsyncACMConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="ACM", + ) + ) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/auth.py b/clients/aws-sdk-acm/src/aws_sdk_acm/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/client.py b/clients/aws-sdk-acm/src/aws_sdk_acm/client.py new file mode 100644 index 00000000..5aeb3f2c --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/client.py @@ -0,0 +1,1270 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import ACMConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AddTagsToCertificateInput, + AddTagsToCertificateOutput, + CreateAcmeDomainValidationInput, + CreateAcmeDomainValidationOutput, + CreateAcmeEndpointInput, + CreateAcmeEndpointOutput, + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + DeleteAcmeDomainValidationInput, + DeleteAcmeDomainValidationOutput, + DeleteAcmeEndpointInput, + DeleteAcmeEndpointOutput, + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + DeleteCertificateInput, + DeleteCertificateOutput, + DescribeAcmeAccountInput, + DescribeAcmeAccountOutput, + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + DescribeAcmeEndpointInput, + DescribeAcmeEndpointOutput, + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + DescribeCertificateInput, + DescribeCertificateOutput, + ExportCertificateInput, + ExportCertificateOutput, + GetAccountConfigurationInput, + GetAccountConfigurationOutput, + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + GetCertificateInput, + GetCertificateOutput, + ImportCertificateInput, + ImportCertificateOutput, + ListAcmeAccountsInput, + ListAcmeAccountsOutput, + ListAcmeDomainValidationsInput, + ListAcmeDomainValidationsOutput, + ListAcmeEndpointsInput, + ListAcmeEndpointsOutput, + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + ListCertificatesInput, + ListCertificatesOutput, + ListTagsForCertificateInput, + ListTagsForCertificateOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + PutAccountConfigurationInput, + PutAccountConfigurationOutput, + RemoveTagsFromCertificateInput, + RemoveTagsFromCertificateOutput, + RenewCertificateInput, + RenewCertificateOutput, + RequestCertificateInput, + RequestCertificateOutput, + ResendValidationEmailInput, + ResendValidationEmailOutput, + RevokeAcmeAccountInput, + RevokeAcmeAccountOutput, + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + RevokeCertificateInput, + RevokeCertificateOutput, + SearchCertificatesInput, + SearchCertificatesOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAcmeDomainValidationInput, + UpdateAcmeDomainValidationOutput, + UpdateAcmeEndpointInput, + UpdateAcmeEndpointOutput, + UpdateCertificateOptionsInput, + UpdateCertificateOptionsOutput, + ) + + +logger = logging.getLogger(__name__) + + +class ACMClient(Client[ACMConfig]): + """ + You can use Certificate Manager (ACM) to manage SSL/TLS certificates for + your Amazon Web Services-based websites and applications. For more + information about using ACM, see the [Certificate Manager User + Guide](https://docs.aws.amazon.com/acm/latest/userguide/). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def add_tags_to_certificate( + self, input: AddTagsToCertificateInput, plugins: list[Plugin] | None = None + ) -> AddTagsToCertificateOutput: + """ + Adds one or more tags to an ACM certificate. Tags are labels that you + can use to identify and organize your Amazon Web Services resources. + Each tag consists of a `key` and an optional `value`. You specify the + certificate on input by its Amazon Resource Name (ARN). You specify the + tag by using a key-value pair. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use TagResource instead. + + You can apply a tag to just one certificate if you want to identify a + specific characteristic of that certificate, or you can apply the same + tag to multiple certificates if you want to filter for a common + relationship among those certificates. Similarly, you can apply the same + tag to multiple resources if you want to specify a relationship among + those resources. For example, you can add the same tag to an ACM + certificate and an Elastic Load Balancing load balancer to indicate that + they are both used by the same website. For more information, see + [Tagging ACM + certificates](https://docs.aws.amazon.com/acm/latest/userguide/tags.html). + + To remove one or more tags, use the RemoveTagsFromCertificate action. To + view all of the tags that have been applied to the certificate, use the + ListTagsForCertificate action. + + Args: + input: + An instance of `AddTagsToCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToCertificateOutput`. + """ + return self._invoke(input, _models.ADD_TAGS_TO_CERTIFICATE, [], plugins) + + def create_acme_domain_validation( + self, + input: CreateAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> CreateAcmeDomainValidationOutput: + """ + Creates a domain validation for an ACME endpoint. Domain validations + authorize the endpoint to issue certificates for specified domain names. + You configure prevalidation to prove domain ownership. + + Args: + input: + An instance of `CreateAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeDomainValidationOutput`. + """ + return self._invoke(input, _models.CREATE_ACME_DOMAIN_VALIDATION, [], plugins) + + def create_acme_endpoint( + self, input: CreateAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateAcmeEndpointOutput: + """ + Creates an ACME endpoint, which is a managed ACME server with a unique + endpoint URL. After creation, ACME clients can use the endpoint URL to + automate certificate issuance using the ACME protocol. + + Args: + input: + An instance of `CreateAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_ACME_ENDPOINT, [], plugins) + + def create_acme_external_account_binding( + self, + input: CreateAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> CreateAcmeExternalAccountBindingOutput: + """ + Creates an external account binding (EAB) for an ACME endpoint. An EAB + provides credentials that authorize an ACME client to register an + account with the endpoint. Each EAB is associated with an IAM role that + controls what certificate operations the ACME client can perform. + + Args: + input: + An instance of `CreateAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAcmeExternalAccountBindingOutput`. + """ + return self._invoke( + input, _models.CREATE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + def delete_acme_domain_validation( + self, + input: DeleteAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteAcmeDomainValidationOutput: + """ + Deletes a domain validation. After deletion, the ACME endpoint can no + longer issue certificates for the associated domain. + + Args: + input: + An instance of `DeleteAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeDomainValidationOutput`. + """ + return self._invoke(input, _models.DELETE_ACME_DOMAIN_VALIDATION, [], plugins) + + def delete_acme_endpoint( + self, input: DeleteAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteAcmeEndpointOutput: + """ + Deletes an ACME endpoint. After deletion, the endpoint URL is no longer + accessible and ACME clients cannot issue certificates through it. Any + existing external account bindings and domain validations associated + with the endpoint are also deleted. + + Args: + input: + An instance of `DeleteAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_ACME_ENDPOINT, [], plugins) + + def delete_acme_external_account_binding( + self, + input: DeleteAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> DeleteAcmeExternalAccountBindingOutput: + """ + Deletes an external account binding. Previously fetched credentials for + this binding will no longer be usable for account registration. A + deleted binding cannot be recovered. + + Args: + input: + An instance of `DeleteAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAcmeExternalAccountBindingOutput`. + """ + return self._invoke( + input, _models.DELETE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + def delete_certificate( + self, input: DeleteCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteCertificateOutput: + """ + Deletes a certificate and its associated private key. If this action + succeeds, the certificate is not available for use by Amazon Web + Services services integrated with ACM. Deleting a certificate is + eventually consistent. The may be a short delay before the certificate + no longer appears in the list that can be displayed by calling the + ListCertificates action or be retrieved by calling the GetCertificate + action. + + Note: + You cannot delete an ACM certificate that is being used by another + Amazon Web Services service. To delete a certificate that is in use, you + must first remove the certificate association using the console or the + CLI for the associated service. + + Deleting a certificate issued by a private certificate authority (CA) + has no effect on the CA. You will continue to be charged for the CA + until it is deleted. For more information, see [Deleting Your Private + CA](https://docs.aws.amazon.com/privateca/latest/userguide/PCADeleteCA.html) + in the *Private Certificate Authority User Guide*. + + You cannot delete a certificate with a `CertificateKeyPairOrigin` of + `ACME`. ACM automatically deletes these certificates 1 year after they + expire. + + Deleting a certificate issued by a private certificate authority (CA) + has no effect on the CA. You will continue to be charged for the CA + until it is deleted. For more information, see [Deleting your private + CA](https://docs.aws.amazon.com/privateca/latest/userguide/PCADeleteCA.html) + in the *Amazon Web Services Private Certificate Authority User Guide*. + + Args: + input: + An instance of `DeleteCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCertificateOutput`. + """ + return self._invoke(input, _models.DELETE_CERTIFICATE, [], plugins) + + def describe_acme_account( + self, input: DescribeAcmeAccountInput, plugins: list[Plugin] | None = None + ) -> DescribeAcmeAccountOutput: + """ + Returns detailed metadata about the specified ACME account, including + its status, public key thumbprint, and associated external account + binding. + + Args: + input: + An instance of `DescribeAcmeAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeAccountOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACME_ACCOUNT, [], plugins) + + def describe_acme_domain_validation( + self, + input: DescribeAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAcmeDomainValidationOutput: + """ + Returns detailed metadata about the specified domain validation, + including its status, domain scope, and DNS resource records required + for validation. + + Args: + input: + An instance of `DescribeAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeDomainValidationOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACME_DOMAIN_VALIDATION, [], plugins) + + def describe_acme_endpoint( + self, input: DescribeAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> DescribeAcmeEndpointOutput: + """ + Returns detailed metadata about the specified ACME endpoint, including + its status, URL, authorization behavior, and certificate authority + configuration. + + Args: + input: + An instance of `DescribeAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeEndpointOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACME_ENDPOINT, [], plugins) + + def describe_acme_external_account_binding( + self, + input: DescribeAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAcmeExternalAccountBindingOutput: + """ + Returns detailed metadata about the specified external account binding, + including the associated IAM role, expiration time, and usage history. + + Args: + input: + An instance of `DescribeAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAcmeExternalAccountBindingOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + def describe_certificate( + self, input: DescribeCertificateInput, plugins: list[Plugin] | None = None + ) -> DescribeCertificateOutput: + """ + Returns detailed metadata about the specified ACM certificate. + + If you have just created a certificate using the `RequestCertificate` + action, there is a delay of several seconds before you can retrieve + information about it. + + Args: + input: + An instance of `DescribeCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCertificateOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CERTIFICATE, [], plugins) + + def export_certificate( + self, input: ExportCertificateInput, plugins: list[Plugin] | None = None + ) -> ExportCertificateOutput: + """ + Exports a private certificate issued by a private certificate authority + (CA) or a public certificate for use anywhere. The exported file + contains the certificate, the certificate chain, and the encrypted + private key associated with the public key that is embedded in the + certificate. For security, you must assign a passphrase for the private + key when exporting it. + + For information about exporting and formatting a certificate using the + ACM console or CLI, see [Export a private + certificate](https://docs.aws.amazon.com/acm/latest/userguide/export-private.html) + and [Export a public + certificate](https://docs.aws.amazon.com/acm/latest/userguide/export-public-certificate). + + Note: + ACM public certificates created prior to June 17, 2025 cannot be + exported. + + Args: + input: + An instance of `ExportCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportCertificateOutput`. + """ + return self._invoke(input, _models.EXPORT_CERTIFICATE, [], plugins) + + def get_account_configuration( + self, + input: GetAccountConfigurationInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAccountConfigurationOutput: + """ + Returns the account configuration options associated with an Amazon Web + Services account. + + Args: + input: + An instance of `GetAccountConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountConfigurationOutput`. + """ + return self._invoke(input, _models.GET_ACCOUNT_CONFIGURATION, [], plugins) + + def get_acme_external_account_binding_credentials( + self, + input: GetAcmeExternalAccountBindingCredentialsInput, + plugins: list[Plugin] | None = None, + ) -> GetAcmeExternalAccountBindingCredentialsOutput: + """ + Retrieves the key ID and MAC key credentials for an external account + binding. These credentials are used by ACME clients during account + registration to bind to the endpoint. + + Args: + input: + An instance of `GetAcmeExternalAccountBindingCredentialsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAcmeExternalAccountBindingCredentialsOutput`. + """ + return self._invoke( + input, _models.GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS, [], plugins + ) + + def get_certificate( + self, input: GetCertificateInput, plugins: list[Plugin] | None = None + ) -> GetCertificateOutput: + """ + Retrieves a certificate and its certificate chain. The certificate may + be either a public or private certificate issued using the ACM + `RequestCertificate` action, or a certificate imported into ACM using + the `ImportCertificate` action. The chain consists of the certificate of + the issuing CA and the intermediate certificates of any other + subordinate CAs. All of the certificates are base64 encoded. You can use + [OpenSSL](https://wiki.openssl.org/index.php/Command_Line_Utilities) to + decode the certificates and inspect individual fields. + + Args: + input: + An instance of `GetCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCertificateOutput`. + """ + return self._invoke(input, _models.GET_CERTIFICATE, [], plugins) + + def import_certificate( + self, input: ImportCertificateInput, plugins: list[Plugin] | None = None + ) -> ImportCertificateOutput: + """ + Imports a certificate into Certificate Manager (ACM) to use with + services that are integrated with ACM. Note that [integrated + services](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) + allow only certificate types and keys they support to be associated with + their resources. Further, their support differs depending on whether the + certificate is imported into IAM or into ACM. For more information, see + the documentation for each service. For more information about importing + certificates into ACM, see [Importing + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) + in the *Certificate Manager User Guide*. + + Note: + ACM does not provide [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for certificates that you import. + + Note the following guidelines when importing third party certificates: + + - You must enter the private key that matches the certificate you are + importing. + + - The private key must be unencrypted. You cannot import a private key + that is protected by a password or a passphrase. + + - The private key must be no larger than 5 KB (5,120 bytes). + + - The certificate, private key, and certificate chain must be + PEM-encoded. + + - The current time must be between the `Not Before` and `Not After` + certificate fields. + + - The `Issuer` field must not be empty. + + - The OCSP authority URL, if present, must not exceed 1000 characters. + + - To import a new certificate, omit the `CertificateArn` argument. + Include this argument only when you want to replace a previously + imported certificate. + + - When you import a certificate by using the CLI, you must specify the + certificate, the certificate chain, and the private key by their file + names preceded by `fileb://`. For example, you can specify a + certificate saved in the `C:\temp` folder as + `fileb://C:\temp\\certificate_to_import.pem`. If you are making an HTTP + or HTTPS Query request, include these arguments as BLOBs. + + - When you import a certificate by using an SDK, you must specify the + certificate, the certificate chain, and the private key files in the + manner required by the programming language you're using. + + - The cryptographic algorithm of an imported certificate must match the + algorithm of the signing CA. For example, if the signing CA key type + is RSA, then the certificate key type must also be RSA. + + This operation returns the [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of the imported certificate. + + Args: + input: + An instance of `ImportCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportCertificateOutput`. + """ + return self._invoke(input, _models.IMPORT_CERTIFICATE, [], plugins) + + def list_acme_accounts( + self, input: ListAcmeAccountsInput, plugins: list[Plugin] | None = None + ) -> ListAcmeAccountsOutput: + """ + Retrieves a list of ACME accounts registered with the specified ACME + endpoint. ACME accounts are created when clients use external account + binding credentials to register. + + Args: + input: + An instance of `ListAcmeAccountsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeAccountsOutput`. + """ + return self._invoke(input, _models.LIST_ACME_ACCOUNTS, [], plugins) + + def list_acme_domain_validations( + self, input: ListAcmeDomainValidationsInput, plugins: list[Plugin] | None = None + ) -> ListAcmeDomainValidationsOutput: + """ + Retrieves a list of domain validations for the specified ACME endpoint. + + Args: + input: + An instance of `ListAcmeDomainValidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeDomainValidationsOutput`. + """ + return self._invoke(input, _models.LIST_ACME_DOMAIN_VALIDATIONS, [], plugins) + + def list_acme_endpoints( + self, + input: ListAcmeEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListAcmeEndpointsOutput: + """ + Retrieves a list of ACME endpoints in your account. Use this operation + to view all configured ACME endpoints and their current status. + + Args: + input: + An instance of `ListAcmeEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeEndpointsOutput`. + """ + return self._invoke(input, _models.LIST_ACME_ENDPOINTS, [], plugins) + + def list_acme_external_account_bindings( + self, + input: ListAcmeExternalAccountBindingsInput, + plugins: list[Plugin] | None = None, + ) -> ListAcmeExternalAccountBindingsOutput: + """ + Retrieves a list of external account bindings for the specified ACME + endpoint. + + Args: + input: + An instance of `ListAcmeExternalAccountBindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAcmeExternalAccountBindingsOutput`. + """ + return self._invoke( + input, _models.LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS, [], plugins + ) + + def list_certificate_domain_validations( + self, + input: ListCertificateDomainValidationsInput, + plugins: list[Plugin] | None = None, + ) -> ListCertificateDomainValidationsOutput: + """ + Returns per-domain validation summaries for an ACM certificate. Each + summary includes the domain name, the active validation configuration, + and the requested validation configuration when a validation method + migration is in progress. You can use the results to monitor the + progress of an email-to-DNS validation migration and to retrieve the + CNAME records required for DNS validation. + + Args: + input: + An instance of `ListCertificateDomainValidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCertificateDomainValidationsOutput`. + """ + return self._invoke( + input, _models.LIST_CERTIFICATE_DOMAIN_VALIDATIONS, [], plugins + ) + + def list_certificates( + self, + input: ListCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListCertificatesOutput: + """ + Retrieves a list of certificate ARNs and domain names. You can request + that only certificates that match a specific status be listed. You can + also filter by specific attributes of the certificate. Default filtering + returns only `RSA_2048` certificates. For more information, see Filters. + + Note: + By default, this action does not return certificates with a + `CertificateKeyPairOrigin` of `ACME`. To include ACME certificates, + specify `ACME` in the `CertificateKeyPairOrigins` filter. + + Args: + input: + An instance of `ListCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCertificatesOutput`. + """ + return self._invoke(input, _models.LIST_CERTIFICATES, [], plugins) + + def list_tags_for_certificate( + self, input: ListTagsForCertificateInput, plugins: list[Plugin] | None = None + ) -> ListTagsForCertificateOutput: + """ + Lists the tags that have been applied to the ACM certificate. Use the + certificate's Amazon Resource Name (ARN) to specify the certificate. To + add a tag to an ACM certificate, use the AddTagsToCertificate action. To + delete a tag, use the RemoveTagsFromCertificate action. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use ListTagsForResource instead. + + Args: + input: + An instance of `ListTagsForCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForCertificateOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_CERTIFICATE, [], plugins) + + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists the tags associated with an ACM resource. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use ListTagsForCertificate + instead. + + To add one or more tags, use the TagResource action. To remove one or + more tags, use the UntagResource action. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + def put_account_configuration( + self, input: PutAccountConfigurationInput, plugins: list[Plugin] | None = None + ) -> PutAccountConfigurationOutput: + """ + Adds or modifies account-level configurations in ACM. + + The supported configuration option is `DaysBeforeExpiry`. This option + specifies the number of days prior to certificate expiration when ACM + starts generating `EventBridge` events. ACM sends one event per day per + certificate until the certificate expires. By default, accounts receive + events starting 45 days before certificate expiration. + + Args: + input: + An instance of `PutAccountConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountConfigurationOutput`. + """ + return self._invoke(input, _models.PUT_ACCOUNT_CONFIGURATION, [], plugins) + + def remove_tags_from_certificate( + self, input: RemoveTagsFromCertificateInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromCertificateOutput: + """ + Remove one or more tags from an ACM certificate. A tag consists of a + key-value pair. If you do not specify the value portion of the tag when + calling this function, the tag will be removed regardless of value. If + you specify a value, the tag is removed only if it is associated with + the specified value. + + Note: + This action applies only to the `certificate` resource type. For all + other ACM resource types, use UntagResource instead. + + To add tags to a certificate, use the AddTagsToCertificate action. To + view all of the tags that have been applied to a specific ACM + certificate, use the ListTagsForCertificate action. + + Args: + input: + An instance of `RemoveTagsFromCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromCertificateOutput`. + """ + return self._invoke(input, _models.REMOVE_TAGS_FROM_CERTIFICATE, [], plugins) + + def renew_certificate( + self, input: RenewCertificateInput, plugins: list[Plugin] | None = None + ) -> RenewCertificateOutput: + """ + Renews an [eligible ACM + certificate](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html). + In order to renew your Amazon Web Services Private CA certificates with + ACM, you must first [grant the ACM service principal permission to do + so](https://docs.aws.amazon.com/privateca/latest/userguide/assign-permissions.html#PcaPermissions). + For more information, see [Testing Managed + Renewal](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) + in the ACM User Guide. + + Args: + input: + An instance of `RenewCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RenewCertificateOutput`. + """ + return self._invoke(input, _models.RENEW_CERTIFICATE, [], plugins) + + def request_certificate( + self, input: RequestCertificateInput, plugins: list[Plugin] | None = None + ) -> RequestCertificateOutput: + """ + Requests an ACM certificate for use with other Amazon Web Services + services. To request an ACM certificate, you must specify a fully + qualified domain name (FQDN) in the `DomainName` parameter. You can also + specify additional FQDNs in the `SubjectAlternativeNames` parameter. + + If you are requesting a private certificate, domain validation is not + required. If you are requesting a public certificate, each domain name + that you specify must be validated to verify that you own or control the + domain. You can use [DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) + or [email + validation](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html). + We recommend that you use DNS validation. + + Note: + ACM behavior differs from the [RFC + 6125](https://datatracker.ietf.org/doc/html/rfc6125#appendix-B.2) + specification of the certificate validation process. ACM first checks + for a Subject Alternative Name, and, if it finds one, ignores the common + name (CN). + + After successful completion of the `RequestCertificate` action, there is + a delay of several seconds before you can retrieve information about the + new certificate. + + Args: + input: + An instance of `RequestCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestCertificateOutput`. + """ + return self._invoke(input, _models.REQUEST_CERTIFICATE, [], plugins) + + def resend_validation_email( + self, input: ResendValidationEmailInput, plugins: list[Plugin] | None = None + ) -> ResendValidationEmailOutput: + """ + Resends the email that requests domain ownership validation. The domain + owner or an authorized representative must approve the ACM certificate + before it can be issued. The certificate can be approved by clicking a + link in the mail to navigate to the Amazon certificate approval website + and then clicking **I Approve**. However, the validation email can be + blocked by spam filters. Therefore, if you do not receive the original + mail, you can request that the mail be resent within 72 hours of + requesting the ACM certificate. If more than 72 hours have elapsed since + your original request or since your last attempt to resend validation + mail, you must request a new certificate. For more information about + setting up your contact email addresses, see [Configure Email for your + Domain](https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html). + + Args: + input: + An instance of `ResendValidationEmailInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResendValidationEmailOutput`. + """ + return self._invoke(input, _models.RESEND_VALIDATION_EMAIL, [], plugins) + + def revoke_acme_account( + self, input: RevokeAcmeAccountInput, plugins: list[Plugin] | None = None + ) -> RevokeAcmeAccountOutput: + """ + Revokes an ACME account, preventing it from requesting or revoking + certificates. This operation is irreversible. + + Args: + input: + An instance of `RevokeAcmeAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeAcmeAccountOutput`. + """ + return self._invoke(input, _models.REVOKE_ACME_ACCOUNT, [], plugins) + + def revoke_acme_external_account_binding( + self, + input: RevokeAcmeExternalAccountBindingInput, + plugins: list[Plugin] | None = None, + ) -> RevokeAcmeExternalAccountBindingOutput: + """ + Revokes an external account binding, preventing new ACME accounts from + being registered using this binding. Existing ACME accounts that were + previously registered using the binding are not affected and must be + revoked separately. + + Args: + input: + An instance of `RevokeAcmeExternalAccountBindingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeAcmeExternalAccountBindingOutput`. + """ + return self._invoke( + input, _models.REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING, [], plugins + ) + + def revoke_certificate( + self, input: RevokeCertificateInput, plugins: list[Plugin] | None = None + ) -> RevokeCertificateOutput: + """ + Revokes a public ACM certificate. You can only revoke certificates that + have been previously exported. + + Warning: + Once a certificate is revoked, you cannot reuse the certificate. + Revoking a certificate is permanent. + + Args: + input: + An instance of `RevokeCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeCertificateOutput`. + """ + return self._invoke(input, _models.REVOKE_CERTIFICATE, [], plugins) + + def search_certificates( + self, + input: SearchCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> SearchCertificatesOutput: + """ + Retrieves a list of certificates matching search criteria. You can + filter certificates by X.509 attributes and ACM specific properties like + certificate status, type and renewal eligibility. This operation + provides more flexible filtering than ListCertificates by supporting + complex filter statements. + + Args: + input: + An instance of `SearchCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchCertificatesOutput`. + """ + return self._invoke(input, _models.SEARCH_CERTIFICATES, [], plugins) + + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds one or more tags to an ACM resource. Tags are labels that you can + use to identify and organize your Amazon Web Services resources. Each + tag consists of a `key` and an optional `value`. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use AddTagsToCertificate + instead. + + To remove one or more tags, use the UntagResource action. To view all of + the tags that have been applied to a resource, use the + ListTagsForResource action. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Removes one or more tags from an ACM resource. + + Note: + Use this action for all ACM resource types except the `certificate` + resource type. For certificate resources, use RemoveTagsFromCertificate + instead. + + To add one or more tags, use the TagResource action. To view all of the + tags that have been applied to a resource, use the ListTagsForResource + action. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + def update_acme_domain_validation( + self, + input: UpdateAcmeDomainValidationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateAcmeDomainValidationOutput: + """ + Updates the prevalidation configuration of an existing domain + validation. + + Args: + input: + An instance of `UpdateAcmeDomainValidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAcmeDomainValidationOutput`. + """ + return self._invoke(input, _models.UPDATE_ACME_DOMAIN_VALIDATION, [], plugins) + + def update_acme_endpoint( + self, input: UpdateAcmeEndpointInput, plugins: list[Plugin] | None = None + ) -> UpdateAcmeEndpointOutput: + """ + Updates the configuration of an existing ACME endpoint. You can change + the authorization behavior, contact requirement, or certificate + authority settings. + + Args: + input: + An instance of `UpdateAcmeEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAcmeEndpointOutput`. + """ + return self._invoke(input, _models.UPDATE_ACME_ENDPOINT, [], plugins) + + def update_certificate_options( + self, input: UpdateCertificateOptionsInput, plugins: list[Plugin] | None = None + ) -> UpdateCertificateOptionsOutput: + """ + Updates certificate options. You can use this operation to change the + domain validation method or specify whether to export your certificate. + For more information, see [Migrate from email to DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-to-dns-migration.html) + and [Certificate Manager Exportable Managed + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html). + + Args: + input: + An instance of `UpdateCertificateOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCertificateOptionsOutput`. + """ + return self._invoke(input, _models.UPDATE_CERTIFICATE_OPTIONS, [], plugins) + + def _new_config(self) -> ACMConfig: + return ACMConfig.resolve() + + def _post_setup(self, config: ACMConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/config.py b/clients/aws-sdk-acm/src/aws_sdk_acm/config.py new file mode 100644 index 00000000..a5b22e75 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/config.py @@ -0,0 +1,395 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsJson11ClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import CERTIFICATE_MANAGER +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AddTagsToCertificateInput, + AddTagsToCertificateOutput, + CreateAcmeDomainValidationInput, + CreateAcmeDomainValidationOutput, + CreateAcmeEndpointInput, + CreateAcmeEndpointOutput, + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + DeleteAcmeDomainValidationInput, + DeleteAcmeDomainValidationOutput, + DeleteAcmeEndpointInput, + DeleteAcmeEndpointOutput, + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + DeleteCertificateInput, + DeleteCertificateOutput, + DescribeAcmeAccountInput, + DescribeAcmeAccountOutput, + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + DescribeAcmeEndpointInput, + DescribeAcmeEndpointOutput, + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + DescribeCertificateInput, + DescribeCertificateOutput, + ExportCertificateInput, + ExportCertificateOutput, + GetAccountConfigurationInput, + GetAccountConfigurationOutput, + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + GetCertificateInput, + GetCertificateOutput, + ImportCertificateInput, + ImportCertificateOutput, + ListAcmeAccountsInput, + ListAcmeAccountsOutput, + ListAcmeDomainValidationsInput, + ListAcmeDomainValidationsOutput, + ListAcmeEndpointsInput, + ListAcmeEndpointsOutput, + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + ListCertificatesInput, + ListCertificatesOutput, + ListTagsForCertificateInput, + ListTagsForCertificateOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + PutAccountConfigurationInput, + PutAccountConfigurationOutput, + RemoveTagsFromCertificateInput, + RemoveTagsFromCertificateOutput, + RenewCertificateInput, + RenewCertificateOutput, + RequestCertificateInput, + RequestCertificateOutput, + ResendValidationEmailInput, + ResendValidationEmailOutput, + RevokeAcmeAccountInput, + RevokeAcmeAccountOutput, + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + RevokeCertificateInput, + RevokeCertificateOutput, + SearchCertificatesInput, + SearchCertificatesOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAcmeDomainValidationInput, + UpdateAcmeDomainValidationOutput, + UpdateAcmeEndpointInput, + UpdateAcmeEndpointOutput, + UpdateCertificateOptionsInput, + UpdateCertificateOptionsOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddTagsToCertificateInput, AddTagsToCertificateOutput, Any, Any], + Interceptor[ + CreateAcmeDomainValidationInput, CreateAcmeDomainValidationOutput, Any, Any + ], + Interceptor[CreateAcmeEndpointInput, CreateAcmeEndpointOutput, Any, Any], + Interceptor[ + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[ + DeleteAcmeDomainValidationInput, DeleteAcmeDomainValidationOutput, Any, Any + ], + Interceptor[DeleteAcmeEndpointInput, DeleteAcmeEndpointOutput, Any, Any], + Interceptor[ + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[DeleteCertificateInput, DeleteCertificateOutput, Any, Any], + Interceptor[DescribeAcmeAccountInput, DescribeAcmeAccountOutput, Any, Any], + Interceptor[ + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + Any, + Any, + ], + Interceptor[DescribeAcmeEndpointInput, DescribeAcmeEndpointOutput, Any, Any], + Interceptor[ + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[DescribeCertificateInput, DescribeCertificateOutput, Any, Any], + Interceptor[ExportCertificateInput, ExportCertificateOutput, Any, Any], + Interceptor[ + GetAccountConfigurationInput, GetAccountConfigurationOutput, Any, Any + ], + Interceptor[ + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + Any, + Any, + ], + Interceptor[GetCertificateInput, GetCertificateOutput, Any, Any], + Interceptor[ImportCertificateInput, ImportCertificateOutput, Any, Any], + Interceptor[ListAcmeAccountsInput, ListAcmeAccountsOutput, Any, Any], + Interceptor[ + ListAcmeDomainValidationsInput, ListAcmeDomainValidationsOutput, Any, Any + ], + Interceptor[ListAcmeEndpointsInput, ListAcmeEndpointsOutput, Any, Any], + Interceptor[ + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + Any, + Any, + ], + Interceptor[ + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + Any, + Any, + ], + Interceptor[ListCertificatesInput, ListCertificatesOutput, Any, Any], + Interceptor[ + ListTagsForCertificateInput, ListTagsForCertificateOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ + PutAccountConfigurationInput, PutAccountConfigurationOutput, Any, Any + ], + Interceptor[ + RemoveTagsFromCertificateInput, RemoveTagsFromCertificateOutput, Any, Any + ], + Interceptor[RenewCertificateInput, RenewCertificateOutput, Any, Any], + Interceptor[RequestCertificateInput, RequestCertificateOutput, Any, Any], + Interceptor[ResendValidationEmailInput, ResendValidationEmailOutput, Any, Any], + Interceptor[RevokeAcmeAccountInput, RevokeAcmeAccountOutput, Any, Any], + Interceptor[ + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + Any, + Any, + ], + Interceptor[RevokeCertificateInput, RevokeCertificateOutput, Any, Any], + Interceptor[SearchCertificatesInput, SearchCertificatesOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[ + UpdateAcmeDomainValidationInput, UpdateAcmeDomainValidationOutput, Any, Any + ], + Interceptor[UpdateAcmeEndpointInput, UpdateAcmeEndpointOutput, Any, Any], + Interceptor[ + UpdateCertificateOptionsInput, UpdateCertificateOptionsOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.acm", + service_target="CertificateManager", + service_schema=CERTIFICATE_MANAGER, +) + + +class _ACMConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + service_type: str | None + use_fips_endpoint: bool | None + use_dualstack_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class ACMConfig(AwsConfig): + """ACM configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + service_type: str | None = None + """The service type: ACM or ACM-ACME. Injected via @staticContextParams.""" + + use_fips_endpoint: bool | None = None + """Use FIPS endpoints.""" + + use_dualstack_endpoint: bool | None = None + """Use dual-stack endpoints.""" + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "service_type": FieldSpec(default=None), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("acm").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="acm") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_ACMConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[ACMConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/models.py b/clients/aws-sdk-acm/src/aws_sdk_acm/models.py new file mode 100644 index 00000000..700b3127 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/models.py @@ -0,0 +1,997 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccessDeniedException": "ACCESS_DENIED_EXCEPTION", + "AcmCertificateMetadata": "ACM_CERTIFICATE_METADATA", + "AcmCertificateMetadataFilter": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterStatus": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterRenewalStatus": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterType": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterInUse": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterExported": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterExportOption": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterManagedBy": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterValidationMethod": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterCertificateKeyPairOrigin": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterAcmeEndpointArn": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterAcmeAccountId": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmCertificateMetadataFilterUnknown": "ACM_CERTIFICATE_METADATA_FILTER", + "AcmeAccount": "ACME_ACCOUNT", + "AcmeAccountStatus": "ACME_ACCOUNT_STATUS", + "AcmeAccountSummary": "ACME_ACCOUNT_SUMMARY", + "AcmeAuthorizationBehavior": "ACME_AUTHORIZATION_BEHAVIOR", + "AcmeContact": "ACME_CONTACT", + "AcmeDomainValidation": "ACME_DOMAIN_VALIDATION", + "AcmeDomainValidationFailureReason": "ACME_DOMAIN_VALIDATION_FAILURE_REASON", + "AcmeDomainValidationStatus": "ACME_DOMAIN_VALIDATION_STATUS", + "AcmeDomainValidationSummary": "ACME_DOMAIN_VALIDATION_SUMMARY", + "AcmeEndpoint": "ACME_ENDPOINT", + "AcmeEndpointStatus": "ACME_ENDPOINT_STATUS", + "AcmeEndpointSummary": "ACME_ENDPOINT_SUMMARY", + "AcmeExternalAccountBinding": "ACME_EXTERNAL_ACCOUNT_BINDING", + "AcmeExternalAccountBindingSummary": "ACME_EXTERNAL_ACCOUNT_BINDING_SUMMARY", + "AddTagsToCertificateInput": "ADD_TAGS_TO_CERTIFICATE_INPUT", + "AddTagsToCertificateOutput": "ADD_TAGS_TO_CERTIFICATE_OUTPUT", + "CertificateAuthority": "CERTIFICATE_AUTHORITY", + "CertificateAuthorityPublicCertificateAuthority": "CERTIFICATE_AUTHORITY", + "CertificateAuthorityUnknown": "CERTIFICATE_AUTHORITY", + "CertificateDetail": "CERTIFICATE_DETAIL", + "CertificateExport": "CERTIFICATE_EXPORT", + "CertificateFilter": "CERTIFICATE_FILTER", + "CertificateFilterCertificateArn": "CERTIFICATE_FILTER", + "CertificateFilterX509AttributeFilter": "CERTIFICATE_FILTER", + "CertificateFilterAcmCertificateMetadataFilter": "CERTIFICATE_FILTER", + "CertificateFilterUnknown": "CERTIFICATE_FILTER", + "CertificateFilterStatement": "CERTIFICATE_FILTER_STATEMENT", + "CertificateFilterStatementAnd": "CERTIFICATE_FILTER_STATEMENT", + "CertificateFilterStatementOr": "CERTIFICATE_FILTER_STATEMENT", + "CertificateFilterStatementNot": "CERTIFICATE_FILTER_STATEMENT", + "CertificateFilterStatementFilter": "CERTIFICATE_FILTER_STATEMENT", + "CertificateFilterStatementUnknown": "CERTIFICATE_FILTER_STATEMENT", + "CertificateKeyPairOrigin": "CERTIFICATE_KEY_PAIR_ORIGIN", + "CertificateManagedBy": "CERTIFICATE_MANAGED_BY", + "CertificateMetadata": "CERTIFICATE_METADATA", + "CertificateMetadataAcmCertificateMetadata": "CERTIFICATE_METADATA", + "CertificateMetadataUnknown": "CERTIFICATE_METADATA", + "CertificateOptions": "CERTIFICATE_OPTIONS", + "CertificateSearchResult": "CERTIFICATE_SEARCH_RESULT", + "CertificateStatus": "CERTIFICATE_STATUS", + "CertificateSummary": "CERTIFICATE_SUMMARY", + "CertificateTransparencyLoggingPreference": "CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE", + "CertificateType": "CERTIFICATE_TYPE", + "CommonNameFilter": "COMMON_NAME_FILTER", + "ComparisonOperator": "COMPARISON_OPERATOR", + "ConflictException": "CONFLICT_EXCEPTION", + "CreateAcmeDomainValidationInput": "CREATE_ACME_DOMAIN_VALIDATION_INPUT", + "CreateAcmeDomainValidationOutput": "CREATE_ACME_DOMAIN_VALIDATION_OUTPUT", + "CreateAcmeEndpointInput": "CREATE_ACME_ENDPOINT_INPUT", + "CreateAcmeEndpointOutput": "CREATE_ACME_ENDPOINT_OUTPUT", + "CreateAcmeExternalAccountBindingInput": "CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT", + "CreateAcmeExternalAccountBindingOutput": "CREATE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT", + "CustomAttribute": "CUSTOM_ATTRIBUTE", + "DeleteAcmeDomainValidationInput": "DELETE_ACME_DOMAIN_VALIDATION_INPUT", + "DeleteAcmeDomainValidationOutput": "DELETE_ACME_DOMAIN_VALIDATION_OUTPUT", + "DeleteAcmeEndpointInput": "DELETE_ACME_ENDPOINT_INPUT", + "DeleteAcmeEndpointOutput": "DELETE_ACME_ENDPOINT_OUTPUT", + "DeleteAcmeExternalAccountBindingInput": "DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT", + "DeleteAcmeExternalAccountBindingOutput": "DELETE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT", + "DeleteCertificateInput": "DELETE_CERTIFICATE_INPUT", + "DeleteCertificateOutput": "DELETE_CERTIFICATE_OUTPUT", + "DescribeAcmeAccountInput": "DESCRIBE_ACME_ACCOUNT_INPUT", + "DescribeAcmeAccountOutput": "DESCRIBE_ACME_ACCOUNT_OUTPUT", + "DescribeAcmeDomainValidationInput": "DESCRIBE_ACME_DOMAIN_VALIDATION_INPUT", + "DescribeAcmeDomainValidationOutput": "DESCRIBE_ACME_DOMAIN_VALIDATION_OUTPUT", + "DescribeAcmeEndpointInput": "DESCRIBE_ACME_ENDPOINT_INPUT", + "DescribeAcmeEndpointOutput": "DESCRIBE_ACME_ENDPOINT_OUTPUT", + "DescribeAcmeExternalAccountBindingInput": "DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT", + "DescribeAcmeExternalAccountBindingOutput": "DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT", + "DescribeCertificateInput": "DESCRIBE_CERTIFICATE_INPUT", + "DescribeCertificateOutput": "DESCRIBE_CERTIFICATE_OUTPUT", + "DistinguishedName": "DISTINGUISHED_NAME", + "DnsNameFilter": "DNS_NAME_FILTER", + "DnsPrevalidationDetails": "DNS_PREVALIDATION_DETAILS", + "DnsPrevalidationOptions": "DNS_PREVALIDATION_OPTIONS", + "DnsValidationChallenge": "DNS_VALIDATION_CHALLENGE", + "DomainScope": "DOMAIN_SCOPE", + "DomainScopeOption": "DOMAIN_SCOPE_OPTION", + "DomainStatus": "DOMAIN_STATUS", + "DomainValidation": "DOMAIN_VALIDATION", + "DomainValidationMethodUpdateSummary": "DOMAIN_VALIDATION_METHOD_UPDATE_SUMMARY", + "DomainValidationOption": "DOMAIN_VALIDATION_OPTION", + "DomainValidationSummary": "DOMAIN_VALIDATION_SUMMARY", + "EmailValidationChallenge": "EMAIL_VALIDATION_CHALLENGE", + "Expiration": "EXPIRATION", + "ExpiryEventsConfiguration": "EXPIRY_EVENTS_CONFIGURATION", + "ExportCertificateInput": "EXPORT_CERTIFICATE_INPUT", + "ExportCertificateOutput": "EXPORT_CERTIFICATE_OUTPUT", + "ExtendedKeyUsage": "EXTENDED_KEY_USAGE", + "ExtendedKeyUsageName": "EXTENDED_KEY_USAGE_NAME", + "FailureDetails": "FAILURE_DETAILS", + "FailureReason": "FAILURE_REASON", + "Filters": "FILTERS", + "GeneralName": "GENERAL_NAME", + "GeneralNameDirectoryName": "GENERAL_NAME", + "GeneralNameDnsName": "GENERAL_NAME", + "GeneralNameIpAddress": "GENERAL_NAME", + "GeneralNameOtherName": "GENERAL_NAME", + "GeneralNameRegisteredId": "GENERAL_NAME", + "GeneralNameRfc822Name": "GENERAL_NAME", + "GeneralNameUniformResourceIdentifier": "GENERAL_NAME", + "GeneralNameUnknown": "GENERAL_NAME", + "GetAccountConfigurationInput": "GET_ACCOUNT_CONFIGURATION_INPUT", + "GetAccountConfigurationOutput": "GET_ACCOUNT_CONFIGURATION_OUTPUT", + "GetAcmeExternalAccountBindingCredentialsInput": "GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_INPUT", + "GetAcmeExternalAccountBindingCredentialsOutput": "GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS_OUTPUT", + "GetCertificateInput": "GET_CERTIFICATE_INPUT", + "GetCertificateOutput": "GET_CERTIFICATE_OUTPUT", + "HttpRedirect": "HTTP_REDIRECT", + "ImportCertificateInput": "IMPORT_CERTIFICATE_INPUT", + "ImportCertificateOutput": "IMPORT_CERTIFICATE_OUTPUT", + "InternalServerException": "INTERNAL_SERVER_EXCEPTION", + "InvalidArgsException": "INVALID_ARGS_EXCEPTION", + "InvalidArnException": "INVALID_ARN_EXCEPTION", + "InvalidDomainValidationOptionsException": "INVALID_DOMAIN_VALIDATION_OPTIONS_EXCEPTION", + "InvalidParameterException": "INVALID_PARAMETER_EXCEPTION", + "InvalidStateException": "INVALID_STATE_EXCEPTION", + "InvalidTagException": "INVALID_TAG_EXCEPTION", + "KeyAlgorithm": "KEY_ALGORITHM", + "KeyUsage": "KEY_USAGE", + "KeyUsageName": "KEY_USAGE_NAME", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "ListAcmeAccountsInput": "LIST_ACME_ACCOUNTS_INPUT", + "ListAcmeAccountsOutput": "LIST_ACME_ACCOUNTS_OUTPUT", + "ListAcmeDomainValidationsInput": "LIST_ACME_DOMAIN_VALIDATIONS_INPUT", + "ListAcmeDomainValidationsOutput": "LIST_ACME_DOMAIN_VALIDATIONS_OUTPUT", + "ListAcmeEndpointsInput": "LIST_ACME_ENDPOINTS_INPUT", + "ListAcmeEndpointsOutput": "LIST_ACME_ENDPOINTS_OUTPUT", + "ListAcmeExternalAccountBindingsInput": "LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_INPUT", + "ListAcmeExternalAccountBindingsOutput": "LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS_OUTPUT", + "ListCertificateDomainValidationsInput": "LIST_CERTIFICATE_DOMAIN_VALIDATIONS_INPUT", + "ListCertificateDomainValidationsOutput": "LIST_CERTIFICATE_DOMAIN_VALIDATIONS_OUTPUT", + "ListCertificatesInput": "LIST_CERTIFICATES_INPUT", + "ListCertificatesOutput": "LIST_CERTIFICATES_OUTPUT", + "ListTagsForCertificateInput": "LIST_TAGS_FOR_CERTIFICATE_INPUT", + "ListTagsForCertificateOutput": "LIST_TAGS_FOR_CERTIFICATE_OUTPUT", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", + "OtherName": "OTHER_NAME", + "PrevalidationDetails": "PREVALIDATION_DETAILS", + "PrevalidationDetailsDnsPrevalidation": "PREVALIDATION_DETAILS", + "PrevalidationDetailsUnknown": "PREVALIDATION_DETAILS", + "PrevalidationOptions": "PREVALIDATION_OPTIONS", + "PrevalidationOptionsDnsPrevalidation": "PREVALIDATION_OPTIONS", + "PrevalidationOptionsUnknown": "PREVALIDATION_OPTIONS", + "PrevalidationType": "PREVALIDATION_TYPE", + "PublicCertificateAuthority": "PUBLIC_CERTIFICATE_AUTHORITY", + "PublicKeyAlgorithm": "PUBLIC_KEY_ALGORITHM", + "PutAccountConfigurationInput": "PUT_ACCOUNT_CONFIGURATION_INPUT", + "PutAccountConfigurationOutput": "PUT_ACCOUNT_CONFIGURATION_OUTPUT", + "RecordType": "RECORD_TYPE", + "RemoveTagsFromCertificateInput": "REMOVE_TAGS_FROM_CERTIFICATE_INPUT", + "RemoveTagsFromCertificateOutput": "REMOVE_TAGS_FROM_CERTIFICATE_OUTPUT", + "RenewalEligibility": "RENEWAL_ELIGIBILITY", + "RenewalStatus": "RENEWAL_STATUS", + "RenewalSummary": "RENEWAL_SUMMARY", + "RenewCertificateInput": "RENEW_CERTIFICATE_INPUT", + "RenewCertificateOutput": "RENEW_CERTIFICATE_OUTPUT", + "RequestCertificateInput": "REQUEST_CERTIFICATE_INPUT", + "RequestCertificateOutput": "REQUEST_CERTIFICATE_OUTPUT", + "RequestInProgressException": "REQUEST_IN_PROGRESS_EXCEPTION", + "ResendValidationEmailInput": "RESEND_VALIDATION_EMAIL_INPUT", + "ResendValidationEmailOutput": "RESEND_VALIDATION_EMAIL_OUTPUT", + "ResourceInUseException": "RESOURCE_IN_USE_EXCEPTION", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "ResourceRecord": "RESOURCE_RECORD", + "RevocationReason": "REVOCATION_REASON", + "RevokeAcmeAccountInput": "REVOKE_ACME_ACCOUNT_INPUT", + "RevokeAcmeAccountOutput": "REVOKE_ACME_ACCOUNT_OUTPUT", + "RevokeAcmeExternalAccountBindingInput": "REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_INPUT", + "RevokeAcmeExternalAccountBindingOutput": "REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING_OUTPUT", + "RevokeCertificateInput": "REVOKE_CERTIFICATE_INPUT", + "RevokeCertificateOutput": "REVOKE_CERTIFICATE_OUTPUT", + "SearchCertificatesInput": "SEARCH_CERTIFICATES_INPUT", + "SearchCertificatesOutput": "SEARCH_CERTIFICATES_OUTPUT", + "SearchCertificatesSortBy": "SEARCH_CERTIFICATES_SORT_BY", + "SearchCertificatesSortOrder": "SEARCH_CERTIFICATES_SORT_ORDER", + "ServiceQuotaExceededException": "SERVICE_QUOTA_EXCEEDED_EXCEPTION", + "SortBy": "SORT_BY", + "SortOrder": "SORT_ORDER", + "SubjectAlternativeNameFilter": "SUBJECT_ALTERNATIVE_NAME_FILTER", + "SubjectAlternativeNameFilterDnsName": "SUBJECT_ALTERNATIVE_NAME_FILTER", + "SubjectAlternativeNameFilterUnknown": "SUBJECT_ALTERNATIVE_NAME_FILTER", + "SubjectFilter": "SUBJECT_FILTER", + "SubjectFilterCommonName": "SUBJECT_FILTER", + "SubjectFilterUnknown": "SUBJECT_FILTER", + "Tag": "TAG", + "TagPolicyException": "TAG_POLICY_EXCEPTION", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", + "ThrottlingException": "THROTTLING_EXCEPTION", + "ThrottlingReason": "THROTTLING_REASON", + "TimestampRange": "TIMESTAMP_RANGE", + "TimeType": "TIME_TYPE", + "TooManyTagsException": "TOO_MANY_TAGS_EXCEPTION", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", + "UpdateAcmeDomainValidationInput": "UPDATE_ACME_DOMAIN_VALIDATION_INPUT", + "UpdateAcmeDomainValidationOutput": "UPDATE_ACME_DOMAIN_VALIDATION_OUTPUT", + "UpdateAcmeEndpointInput": "UPDATE_ACME_ENDPOINT_INPUT", + "UpdateAcmeEndpointOutput": "UPDATE_ACME_ENDPOINT_OUTPUT", + "UpdateCertificateOptionsInput": "UPDATE_CERTIFICATE_OPTIONS_INPUT", + "UpdateCertificateOptionsOutput": "UPDATE_CERTIFICATE_OPTIONS_OUTPUT", + "UpdateStatus": "UPDATE_STATUS", + "UpdateSummary": "UPDATE_SUMMARY", + "UpdateType": "UPDATE_TYPE", + "ValidationChallenge": "VALIDATION_CHALLENGE", + "ValidationChallengeEmailValidationChallenge": "VALIDATION_CHALLENGE", + "ValidationChallengeDnsValidationChallenge": "VALIDATION_CHALLENGE", + "ValidationChallengeUnknown": "VALIDATION_CHALLENGE", + "ValidationConfiguration": "VALIDATION_CONFIGURATION", + "ValidationException": "VALIDATION_EXCEPTION", + "ValidationMethod": "VALIDATION_METHOD", + "X509AttributeFilter": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterSubject": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterSubjectAlternativeName": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterExtendedKeyUsage": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterKeyUsage": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterKeyAlgorithm": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterSerialNumber": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterNotAfter": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterNotBefore": "X509_ATTRIBUTE_FILTER", + "X509AttributeFilterUnknown": "X509_ATTRIBUTE_FILTER", + "X509Attributes": "X509_ATTRIBUTES", + }, + shape_names=frozenset( + { + "AccessDeniedException", + "AcmCertificateMetadata", + "AcmCertificateMetadataFilter", + "AcmeAccount", + "AcmeAccountStatus", + "AcmeAccountSummary", + "AcmeAuthorizationBehavior", + "AcmeContact", + "AcmeDomainValidation", + "AcmeDomainValidationFailureReason", + "AcmeDomainValidationStatus", + "AcmeDomainValidationSummary", + "AcmeEndpoint", + "AcmeEndpointStatus", + "AcmeEndpointSummary", + "AcmeExternalAccountBinding", + "AcmeExternalAccountBindingSummary", + "AddTagsToCertificateInput", + "AddTagsToCertificateOutput", + "CertificateAuthority", + "CertificateDetail", + "CertificateExport", + "CertificateFilter", + "CertificateFilterStatement", + "CertificateKeyPairOrigin", + "CertificateManagedBy", + "CertificateMetadata", + "CertificateOptions", + "CertificateSearchResult", + "CertificateStatus", + "CertificateSummary", + "CertificateTransparencyLoggingPreference", + "CertificateType", + "CommonNameFilter", + "ComparisonOperator", + "ConflictException", + "CreateAcmeDomainValidationInput", + "CreateAcmeDomainValidationOutput", + "CreateAcmeEndpointInput", + "CreateAcmeEndpointOutput", + "CreateAcmeExternalAccountBindingInput", + "CreateAcmeExternalAccountBindingOutput", + "CustomAttribute", + "DeleteAcmeDomainValidationInput", + "DeleteAcmeDomainValidationOutput", + "DeleteAcmeEndpointInput", + "DeleteAcmeEndpointOutput", + "DeleteAcmeExternalAccountBindingInput", + "DeleteAcmeExternalAccountBindingOutput", + "DeleteCertificateInput", + "DeleteCertificateOutput", + "DescribeAcmeAccountInput", + "DescribeAcmeAccountOutput", + "DescribeAcmeDomainValidationInput", + "DescribeAcmeDomainValidationOutput", + "DescribeAcmeEndpointInput", + "DescribeAcmeEndpointOutput", + "DescribeAcmeExternalAccountBindingInput", + "DescribeAcmeExternalAccountBindingOutput", + "DescribeCertificateInput", + "DescribeCertificateOutput", + "DistinguishedName", + "DnsNameFilter", + "DnsPrevalidationDetails", + "DnsPrevalidationOptions", + "DnsValidationChallenge", + "DomainScope", + "DomainScopeOption", + "DomainStatus", + "DomainValidation", + "DomainValidationMethodUpdateSummary", + "DomainValidationOption", + "DomainValidationSummary", + "EmailValidationChallenge", + "Expiration", + "ExpiryEventsConfiguration", + "ExportCertificateInput", + "ExportCertificateOutput", + "ExtendedKeyUsage", + "ExtendedKeyUsageName", + "FailureDetails", + "FailureReason", + "Filters", + "GeneralName", + "GetAccountConfigurationInput", + "GetAccountConfigurationOutput", + "GetAcmeExternalAccountBindingCredentialsInput", + "GetAcmeExternalAccountBindingCredentialsOutput", + "GetCertificateInput", + "GetCertificateOutput", + "HttpRedirect", + "ImportCertificateInput", + "ImportCertificateOutput", + "InternalServerException", + "InvalidArgsException", + "InvalidArnException", + "InvalidDomainValidationOptionsException", + "InvalidParameterException", + "InvalidStateException", + "InvalidTagException", + "KeyAlgorithm", + "KeyUsage", + "KeyUsageName", + "LimitExceededException", + "ListAcmeAccountsInput", + "ListAcmeAccountsOutput", + "ListAcmeDomainValidationsInput", + "ListAcmeDomainValidationsOutput", + "ListAcmeEndpointsInput", + "ListAcmeEndpointsOutput", + "ListAcmeExternalAccountBindingsInput", + "ListAcmeExternalAccountBindingsOutput", + "ListCertificateDomainValidationsInput", + "ListCertificateDomainValidationsOutput", + "ListCertificatesInput", + "ListCertificatesOutput", + "ListTagsForCertificateInput", + "ListTagsForCertificateOutput", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", + "OtherName", + "PrevalidationDetails", + "PrevalidationOptions", + "PrevalidationType", + "PublicCertificateAuthority", + "PublicKeyAlgorithm", + "PutAccountConfigurationInput", + "PutAccountConfigurationOutput", + "RecordType", + "RemoveTagsFromCertificateInput", + "RemoveTagsFromCertificateOutput", + "RenewCertificateInput", + "RenewCertificateOutput", + "RenewalEligibility", + "RenewalStatus", + "RenewalSummary", + "RequestCertificateInput", + "RequestCertificateOutput", + "RequestInProgressException", + "ResendValidationEmailInput", + "ResendValidationEmailOutput", + "ResourceInUseException", + "ResourceNotFoundException", + "ResourceRecord", + "RevocationReason", + "RevokeAcmeAccountInput", + "RevokeAcmeAccountOutput", + "RevokeAcmeExternalAccountBindingInput", + "RevokeAcmeExternalAccountBindingOutput", + "RevokeCertificateInput", + "RevokeCertificateOutput", + "SearchCertificatesInput", + "SearchCertificatesOutput", + "SearchCertificatesSortBy", + "SearchCertificatesSortOrder", + "ServiceQuotaExceededException", + "SortBy", + "SortOrder", + "SubjectAlternativeNameFilter", + "SubjectFilter", + "Tag", + "TagPolicyException", + "TagResourceInput", + "TagResourceOutput", + "ThrottlingException", + "ThrottlingReason", + "TimeType", + "TimestampRange", + "TooManyTagsException", + "UntagResourceInput", + "UntagResourceOutput", + "UpdateAcmeDomainValidationInput", + "UpdateAcmeDomainValidationOutput", + "UpdateAcmeEndpointInput", + "UpdateAcmeEndpointOutput", + "UpdateCertificateOptionsInput", + "UpdateCertificateOptionsOutput", + "UpdateStatus", + "UpdateSummary", + "UpdateType", + "ValidationChallenge", + "ValidationConfiguration", + "ValidationException", + "ValidationMethod", + "X509AttributeFilter", + "X509Attributes", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ADD_TAGS_TO_CERTIFICATE", + "CREATE_ACME_DOMAIN_VALIDATION", + "CREATE_ACME_ENDPOINT", + "CREATE_ACME_EXTERNAL_ACCOUNT_BINDING", + "DELETE_ACME_DOMAIN_VALIDATION", + "DELETE_ACME_ENDPOINT", + "DELETE_ACME_EXTERNAL_ACCOUNT_BINDING", + "DELETE_CERTIFICATE", + "DESCRIBE_ACME_ACCOUNT", + "DESCRIBE_ACME_DOMAIN_VALIDATION", + "DESCRIBE_ACME_ENDPOINT", + "DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING", + "DESCRIBE_CERTIFICATE", + "EXPORT_CERTIFICATE", + "GET_ACCOUNT_CONFIGURATION", + "GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS", + "GET_CERTIFICATE", + "IMPORT_CERTIFICATE", + "LIST_ACME_ACCOUNTS", + "LIST_ACME_DOMAIN_VALIDATIONS", + "LIST_ACME_ENDPOINTS", + "LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS", + "LIST_CERTIFICATE_DOMAIN_VALIDATIONS", + "LIST_CERTIFICATES", + "LIST_TAGS_FOR_CERTIFICATE", + "LIST_TAGS_FOR_RESOURCE", + "PUT_ACCOUNT_CONFIGURATION", + "REMOVE_TAGS_FROM_CERTIFICATE", + "RENEW_CERTIFICATE", + "REQUEST_CERTIFICATE", + "RESEND_VALIDATION_EMAIL", + "REVOKE_ACME_ACCOUNT", + "REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING", + "REVOKE_CERTIFICATE", + "SEARCH_CERTIFICATES", + "TAG_RESOURCE", + "UNTAG_RESOURCE", + "UPDATE_ACME_DOMAIN_VALIDATION", + "UPDATE_ACME_ENDPOINT", + "UPDATE_CERTIFICATE_OPTIONS", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ADD_TAGS_TO_CERTIFICATE"] = ( + "ADD_TAGS_TO_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidParameterException", + "com.amazonaws.acm#InvalidTagException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#TagPolicyException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#TooManyTagsException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ACME_DOMAIN_VALIDATION"] = ( + "CREATE_ACME_DOMAIN_VALIDATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ServiceQuotaExceededException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ACME_ENDPOINT"] = ( + "CREATE_ACME_ENDPOINT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ServiceQuotaExceededException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ACME_EXTERNAL_ACCOUNT_BINDING"] = ( + "CREATE_ACME_EXTERNAL_ACCOUNT_BINDING", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ServiceQuotaExceededException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACME_DOMAIN_VALIDATION"] = ( + "DELETE_ACME_DOMAIN_VALIDATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACME_ENDPOINT"] = ( + "DELETE_ACME_ENDPOINT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACME_EXTERNAL_ACCOUNT_BINDING"] = ( + "DELETE_ACME_EXTERNAL_ACCOUNT_BINDING", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CERTIFICATE"] = ( + "DELETE_CERTIFICATE", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#ResourceInUseException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACME_ACCOUNT"] = ( + "DESCRIBE_ACME_ACCOUNT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACME_DOMAIN_VALIDATION"] = ( + "DESCRIBE_ACME_DOMAIN_VALIDATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACME_ENDPOINT"] = ( + "DESCRIBE_ACME_ENDPOINT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING"] = ( + "DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CERTIFICATE"] = ( + "DESCRIBE_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["EXPORT_CERTIFICATE"] = ( + "EXPORT_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#RequestInProgressException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCOUNT_CONFIGURATION"] = ( + "GET_ACCOUNT_CONFIGURATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ThrottlingException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS"] = ( + "GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CERTIFICATE"] = ( + "GET_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#RequestInProgressException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["IMPORT_CERTIFICATE"] = ( + "IMPORT_CERTIFICATE", + ( + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidParameterException", + "com.amazonaws.acm#InvalidTagException", + "com.amazonaws.acm#LimitExceededException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#TagPolicyException", + "com.amazonaws.acm#TooManyTagsException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACME_ACCOUNTS"] = ( + "LIST_ACME_ACCOUNTS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACME_DOMAIN_VALIDATIONS"] = ( + "LIST_ACME_DOMAIN_VALIDATIONS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACME_ENDPOINTS"] = ( + "LIST_ACME_ENDPOINTS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS"] = ( + "LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CERTIFICATE_DOMAIN_VALIDATIONS"] = ( + "LIST_CERTIFICATE_DOMAIN_VALIDATIONS", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#InvalidArgsException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CERTIFICATES"] = ( + "LIST_CERTIFICATES", + ("com.amazonaws.acm#InvalidArgsException", "com.amazonaws.acm#ValidationException"), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_CERTIFICATE"] = ( + "LIST_TAGS_FOR_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ACCOUNT_CONFIGURATION"] = ( + "PUT_ACCOUNT_CONFIGURATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_TAGS_FROM_CERTIFICATE"] = ( + "REMOVE_TAGS_FROM_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidParameterException", + "com.amazonaws.acm#InvalidTagException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#TagPolicyException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RENEW_CERTIFICATE"] = ( + "RENEW_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#RequestInProgressException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REQUEST_CERTIFICATE"] = ( + "REQUEST_CERTIFICATE", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidDomainValidationOptionsException", + "com.amazonaws.acm#InvalidParameterException", + "com.amazonaws.acm#InvalidTagException", + "com.amazonaws.acm#LimitExceededException", + "com.amazonaws.acm#TagPolicyException", + "com.amazonaws.acm#TooManyTagsException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESEND_VALIDATION_EMAIL"] = ( + "RESEND_VALIDATION_EMAIL", + ( + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidDomainValidationOptionsException", + "com.amazonaws.acm#InvalidStateException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_ACME_ACCOUNT"] = ( + "REVOKE_ACME_ACCOUNT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING"] = ( + "REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_CERTIFICATE"] = ( + "REVOKE_CERTIFICATE", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#ResourceInUseException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ServiceQuotaExceededException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ACME_DOMAIN_VALIDATION"] = ( + "UPDATE_ACME_DOMAIN_VALIDATION", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ACME_ENDPOINT"] = ( + "UPDATE_ACME_ENDPOINT", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InternalServerException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CERTIFICATE_OPTIONS"] = ( + "UPDATE_CERTIFICATE_OPTIONS", + ( + "com.amazonaws.acm#ConflictException", + "com.amazonaws.acm#InvalidArnException", + "com.amazonaws.acm#InvalidStateException", + "com.amazonaws.acm#LimitExceededException", + "com.amazonaws.acm#ResourceNotFoundException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SEARCH_CERTIFICATES"] = ( + "SEARCH_CERTIFICATES", + ( + "com.amazonaws.acm#AccessDeniedException", + "com.amazonaws.acm#ThrottlingException", + "com.amazonaws.acm#ValidationException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/models.pyi b/clients/aws-sdk-acm/src/aws_sdk_acm/models.pyi new file mode 100644 index 00000000..8a6ec9f6 --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/models.pyi @@ -0,0 +1,3690 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AccessDeniedException(ServiceError, _SerdeShape): + """You do not have access required to perform this action.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcmCertificateMetadata(_SerdeShape): + """Contains ACM-specific metadata about a certificate.""" + + created_at: datetime | None = ... + """The time at which the certificate was requested.""" + exported: bool | None = ... + """Indicates whether the certificate has been exported.""" + imported_at: datetime | None = ... + """ + The date and time when the certificate was imported. This value exists + only when the certificate type is `IMPORTED`. + """ + in_use: bool | None = ... + """ + Indicates whether the certificate is currently in use by an Amazon Web + Services service. + """ + issued_at: datetime | None = ... + """ + The time at which the certificate was issued. This value exists only + when the certificate type is `AMAZON_ISSUED`. + """ + renewal_eligibility: str | None = ... + """ + Specifies whether the certificate is eligible for renewal. At this time, + only exported private certificates can be renewed with the + RenewCertificate command. + """ + revoked_at: datetime | None = ... + """ + The time at which the certificate was revoked. This value exists only + when the certificate status is `REVOKED`. + """ + status: str | None = ... + """ + The status of the certificate. + + A certificate enters status PENDING_VALIDATION upon being requested, + unless it fails for any of the reasons given in the troubleshooting + topic [Certificate request + fails](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html). + ACM makes repeated attempts to validate a certificate for 72 hours and + then times out. If a certificate shows status FAILED or + VALIDATION_TIMED_OUT, delete the request, correct the issue with [DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html) + or [Email + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html), + and try again. If validation succeeds, the certificate enters status + ISSUED. + """ + renewal_status: str | None = ... + """The renewal status of the certificate.""" + type: str | None = ... + """ + The source of the certificate. For certificates provided by ACM, this + value is `AMAZON_ISSUED`. For certificates that you imported with + ImportCertificate, this value is `IMPORTED`. ACM does not provide + [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for imported certificates. For more information about the differences + between certificates that you import and those that ACM provides, see + [Importing + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) + in the *Certificate Manager User Guide*. + """ + export_option: str | None = ... + """Indicates whether the certificate can be exported.""" + managed_by: str | None = ... + """ + Identifies the Amazon Web Services service that manages the certificate + issued by ACM. + """ + validation_method: str | None = ... + """Specifies the domain validation method.""" + certificate_key_pair_origin: str | None = ... + """The origin of the certificate's key pair.""" + acme_endpoint_arn: str | None = ... + """The ARN of the ACME endpoint used to issue the certificate.""" + acme_account_id: str | None = ... + """The ACME account identifier associated with the certificate.""" + +@dataclass +class AcmCertificateMetadataFilterStatus(_SerdeShape): + """Filter by certificate status.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterRenewalStatus(_SerdeShape): + """Filter by certificate renewal status.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterType(_SerdeShape): + """Filter by certificate type.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterInUse(_SerdeShape): + """Filter by whether the certificate is in use.""" + + value: bool + +@dataclass +class AcmCertificateMetadataFilterExported(_SerdeShape): + """Filter by whether the certificate has been exported.""" + + value: bool + +@dataclass +class AcmCertificateMetadataFilterExportOption(_SerdeShape): + """Filter by certificate export option.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterManagedBy(_SerdeShape): + """Filter by the entity that manages the certificate.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterValidationMethod(_SerdeShape): + """Filter by validation method.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterCertificateKeyPairOrigin(_SerdeShape): + """Filter by certificate key pair origin.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterAcmeEndpointArn(_SerdeShape): + """Filter by ACME endpoint ARN.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterAcmeAccountId(_SerdeShape): + """Filter by ACME account identifier.""" + + value: str + +@dataclass +class AcmCertificateMetadataFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +AcmCertificateMetadataFilter = Union[ + AcmCertificateMetadataFilterStatus + | AcmCertificateMetadataFilterRenewalStatus + | AcmCertificateMetadataFilterType + | AcmCertificateMetadataFilterInUse + | AcmCertificateMetadataFilterExported + | AcmCertificateMetadataFilterExportOption + | AcmCertificateMetadataFilterManagedBy + | AcmCertificateMetadataFilterValidationMethod + | AcmCertificateMetadataFilterCertificateKeyPairOrigin + | AcmCertificateMetadataFilterAcmeEndpointArn + | AcmCertificateMetadataFilterAcmeAccountId + | AcmCertificateMetadataFilterUnknown +] +"""Filters certificates by ACM metadata.""" + +class _AcmCertificateMetadataFilterDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> AcmCertificateMetadataFilter: ... + +@dataclass(kw_only=True) +class AcmeAccount(_SerdeShape): + """Contains detailed information about an ACME account.""" + + account_url: str | None = ... + """The URL of the ACME account.""" + public_key_thumbprint: str | None = ... + """The thumbprint of the public key associated with the ACME account.""" + status: str | None = ... + """The status of the ACME account.""" + created_at: datetime | None = ... + """The time at which the ACME account was created.""" + acme_external_account_binding_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the external account binding + associated with this ACME account. + """ + contacts: list[str] | None = ... + """The contact information for the ACME account.""" + +class AcmeAccountStatus(UnknownEnumMixin, StrEnum): + VALID = "VALID" + DEACTIVATED = "DEACTIVATED" + REVOKED = "REVOKED" + +@dataclass(kw_only=True) +class AcmeAccountSummary(_SerdeShape): + """Contains summary information about an ACME account.""" + + account_url: str | None = ... + """The URL of the ACME account.""" + public_key_thumbprint: str | None = ... + """The thumbprint of the public key associated with the ACME account.""" + status: str | None = ... + """The status of the ACME account.""" + created_at: datetime | None = ... + """The time at which the ACME account was created.""" + acme_external_account_binding_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the external account binding + associated with this ACME account. + """ + contacts: list[str] | None = ... + """The contact information for the ACME account.""" + +class AcmeAuthorizationBehavior(UnknownEnumMixin, StrEnum): + PRE_APPROVED = "PRE_APPROVED" + +class AcmeContact(UnknownEnumMixin, StrEnum): + REQUIRED = "REQUIRED" + NOT_REQUIRED = "NOT_REQUIRED" + +@dataclass(kw_only=True) +class AcmeDomainValidation(_SerdeShape): + """Contains detailed information about an ACME domain validation.""" + + acme_domain_validation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME domain validation.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + domain_name: str | None = ... + """The domain name being validated.""" + prevalidation_type: str | None = ... + """The type of prevalidation used.""" + prevalidation_details: PrevalidationDetails | None = ... + """Details about the prevalidation configuration.""" + status: str | None = ... + """The status of the domain validation.""" + failure_details: FailureDetails | None = ... + """Details about the failure, if the validation failed.""" + created_at: datetime | None = ... + """The time at which the domain validation was created.""" + updated_at: datetime | None = ... + """The time at which the domain validation was last updated.""" + +class AcmeDomainValidationFailureReason(UnknownEnumMixin, StrEnum): + ACCESS_DENIED = "ACCESS_DENIED" + DOMAIN_MISMATCH = "DOMAIN_MISMATCH" + DOMAIN_NOT_ALLOWED = "DOMAIN_NOT_ALLOWED" + ENDPOINT_NOT_ACTIVE = "ENDPOINT_NOT_ACTIVE" + HOSTED_ZONE_NOT_FOUND = "HOSTED_ZONE_NOT_FOUND" + INTERNAL_FAILURE = "INTERNAL_FAILURE" + INVALID_CHANGE_BATCH = "INVALID_CHANGE_BATCH" + INVALID_PUBLIC_DOMAIN = "INVALID_PUBLIC_DOMAIN" + TIMED_OUT = "TIMED_OUT" + +class AcmeDomainValidationStatus(UnknownEnumMixin, StrEnum): + VALIDATING = "VALIDATING" + VALID = "VALID" + INVALID = "INVALID" + DELETING = "DELETING" + +@dataclass(kw_only=True) +class AcmeDomainValidationSummary(_SerdeShape): + """Contains summary information about an ACME domain validation.""" + + acme_domain_validation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME domain validation.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + domain_name: str | None = ... + """The domain name being validated.""" + prevalidation_type: str | None = ... + """The type of prevalidation used.""" + prevalidation_details: PrevalidationDetails | None = ... + """Details about the prevalidation configuration.""" + status: str | None = ... + """The status of the domain validation.""" + failure_details: FailureDetails | None = ... + """Details about the failure, if the validation failed.""" + created_at: datetime | None = ... + """The time at which the domain validation was created.""" + updated_at: datetime | None = ... + """The time at which the domain validation was last updated.""" + +@dataclass(kw_only=True) +class AcmeEndpoint(_SerdeShape): + """Contains detailed information about an ACME endpoint.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + endpoint_url: str | None = ... + """The URL of the ACME endpoint.""" + status: str | None = ... + """The status of the ACME endpoint.""" + failure_reason: str | None = ... + """The reason the ACME endpoint failed, if applicable.""" + authorization_behavior: str | None = ... + """The authorization behavior of the ACME endpoint.""" + contact: str | None = ... + """ + Whether ACME clients must provide contact information during account + registration. + """ + certificate_authority: CertificateAuthority | None = ... + """The certificate authority configuration for the ACME endpoint.""" + certificate_tags: list[Tag] | None = ... + """Tags applied to certificates issued through this ACME endpoint.""" + created_at: datetime | None = ... + """The time at which the ACME endpoint was created.""" + updated_at: datetime | None = ... + """The time at which the ACME endpoint was last updated.""" + +class AcmeEndpointStatus(UnknownEnumMixin, StrEnum): + CREATING = "CREATING" + ACTIVE = "ACTIVE" + DELETING = "DELETING" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class AcmeEndpointSummary(_SerdeShape): + """Contains summary information about an ACME endpoint.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + endpoint_url: str | None = ... + """The URL of the ACME endpoint.""" + status: str | None = ... + """The status of the ACME endpoint.""" + failure_reason: str | None = ... + """The reason the ACME endpoint failed, if applicable.""" + authorization_behavior: str | None = ... + """The authorization behavior of the ACME endpoint.""" + contact: str | None = ... + """ + Whether ACME clients must provide contact information during account + registration. + """ + certificate_authority: CertificateAuthority | None = ... + """The certificate authority configuration for the ACME endpoint.""" + certificate_tags: list[Tag] | None = ... + """Tags applied to certificates issued through this ACME endpoint.""" + created_at: datetime | None = ... + """The time at which the ACME endpoint was created.""" + updated_at: datetime | None = ... + """The time at which the ACME endpoint was last updated.""" + +@dataclass(kw_only=True) +class AcmeExternalAccountBinding(_SerdeShape): + """Contains detailed information about an ACME external account binding.""" + + acme_external_account_binding_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME external account binding.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role associated with the + external account binding. + """ + expires_at: datetime | None = ... + """The time at which the external account binding expires.""" + revoked_at: datetime | None = ... + """The time at which the external account binding was revoked.""" + last_used_at: datetime | None = ... + """The time at which the external account binding was last used.""" + created_at: datetime | None = ... + """The time at which the external account binding was created.""" + updated_at: datetime | None = ... + """The time at which the external account binding was last updated.""" + +@dataclass(kw_only=True) +class AcmeExternalAccountBindingSummary(_SerdeShape): + """Contains summary information about an ACME external account binding.""" + + acme_external_account_binding_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME external account binding.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role associated with the + external account binding. + """ + expires_at: datetime | None = ... + """The time at which the external account binding expires.""" + revoked_at: datetime | None = ... + """The time at which the external account binding was revoked.""" + last_used_at: datetime | None = ... + """The time at which the external account binding was last used.""" + created_at: datetime | None = ... + """The time at which the external account binding was created.""" + updated_at: datetime | None = ... + """The time at which the external account binding was last updated.""" + +@dataclass(kw_only=True) +class AddTagsToCertificateInput(_SerdeShape): + """Dataclass for AddTagsToCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the ACM certificate to which the tag is + to be applied. This must be of the form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + tags: list[Tag] | None = ... + """The key-value pair that defines the tag. The tag value is optional.""" + +@dataclass(kw_only=True) +class AddTagsToCertificateOutput(_SerdeShape): + """Dataclass for AddTagsToCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass +class CertificateAuthorityPublicCertificateAuthority(_SerdeShape): + """Configuration for using a public certificate authority.""" + + value: PublicCertificateAuthority + +@dataclass +class CertificateAuthorityUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +CertificateAuthority = Union[ + CertificateAuthorityPublicCertificateAuthority | CertificateAuthorityUnknown +] +"""Defines the certificate authority to use for an ACME endpoint.""" + +class _CertificateAuthorityDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> CertificateAuthority: ... + +@dataclass(kw_only=True) +class CertificateDetail(_SerdeShape): + """ + Contains metadata about an ACM certificate. This structure is returned + in the response to a DescribeCertificate request. + """ + + certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the certificate. For more information + about ARNs, 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*. + """ + domain_name: str | None = ... + """ + The fully qualified domain name for the certificate, such as + www.example.com or example.com. + """ + subject_alternative_names: list[str] | None = ... + """ + One or more domain names (subject alternative names) included in the + certificate. This list contains the domain names that are bound to the + public key that is contained in the certificate. The subject alternative + names include the canonical domain name (CN) of the certificate and + additional domain names that can be used to connect to the website. + """ + managed_by: str | None = ... + """ + Identifies the Amazon Web Services service that manages the certificate + issued by ACM. + """ + domain_validation_options: list[DomainValidation] | None = ... + """ + Contains information about the initial validation of each domain name + that occurs as a result of the RequestCertificate request. This field + exists only when the certificate type is `AMAZON_ISSUED`. + """ + serial: str | None = ... + """The serial number of the certificate.""" + subject: str | None = ... + """ + The name of the entity that is associated with the public key contained + in the certificate. + """ + issuer: str | None = ... + """ + The name of the certificate authority that issued and signed the + certificate. + """ + created_at: datetime | None = ... + """The time at which the certificate was requested.""" + issued_at: datetime | None = ... + """ + The time at which the certificate was issued. This value exists only + when the certificate type is `AMAZON_ISSUED`. + """ + imported_at: datetime | None = ... + """ + The date and time when the certificate was imported. This value exists + only when the certificate type is `IMPORTED`. + """ + status: str | None = ... + """ + The status of the certificate. + + A certificate enters status PENDING_VALIDATION upon being requested, + unless it fails for any of the reasons given in the troubleshooting + topic [Certificate request + fails](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html). + ACM makes repeated attempts to validate a certificate for 72 hours and + then times out. If a certificate shows status FAILED or + VALIDATION_TIMED_OUT, delete the request, correct the issue with [DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html) + or [Email + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html), + and try again. If validation succeeds, the certificate enters status + ISSUED. + """ + revoked_at: datetime | None = ... + """ + The time at which the certificate was revoked. This value exists only + when the certificate status is `REVOKED`. + """ + revocation_reason: str | None = ... + """ + The reason the certificate was revoked. This value exists only when the + certificate status is `REVOKED`. + """ + not_before: datetime | None = ... + """The time before which the certificate is not valid.""" + not_after: datetime | None = ... + """The time after which the certificate is not valid.""" + key_algorithm: str | None = ... + """The algorithm that was used to generate the public-private key pair.""" + signature_algorithm: str | None = ... + """The algorithm that was used to sign the certificate.""" + in_use_by: list[str] | None = ... + """ + A list of ARNs for the Amazon Web Services resources that are using the + certificate. A certificate can be used by multiple Amazon Web Services + resources. + """ + failure_reason: str | None = ... + """ + The reason the certificate request failed. This value exists only when + the certificate status is `FAILED`. For more information, see + [Certificate Request + Failed](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-failed) + in the *Certificate Manager User Guide*. + """ + type: str | None = ... + """ + The source of the certificate. For certificates provided by ACM, this + value is `AMAZON_ISSUED`. For certificates that you imported with + ImportCertificate, this value is `IMPORTED`. ACM does not provide + [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for imported certificates. For more information about the differences + between certificates that you import and those that ACM provides, see + [Importing + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) + in the *Certificate Manager User Guide*. + """ + renewal_summary: RenewalSummary | None = ... + """ + Contains information about the status of ACM's [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for the certificate. This field exists only when the certificate type is + `AMAZON_ISSUED`. + """ + key_usages: list[KeyUsage] | None = ... + """ + A list of Key Usage X.509 v3 extension objects. Each object is a string + value that identifies the purpose of the public key contained in the + certificate. Possible extension values include DIGITAL_SIGNATURE, + KEY_ENCHIPHERMENT, NON_REPUDIATION, and more. + """ + extended_key_usages: list[ExtendedKeyUsage] | None = ... + """ + Contains a list of Extended Key Usage X.509 v3 extension objects. Each + object specifies a purpose for which the certificate public key can be + used and consists of a name and an object identifier (OID). + """ + certificate_authority_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the private certificate authority (CA) + that issued the certificate. This has the following format: + + `arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012` + """ + renewal_eligibility: str | None = ... + """ + Specifies whether the certificate is eligible for renewal. At this time, + only exported private certificates can be renewed with the + RenewCertificate command. + """ + options: CertificateOptions | None = ... + """ + Contains the certificate options. Certificate transparency logging + opt-out is no longer available. All public certificates are recorded in + a certificate transparency log. + """ + update_summary: UpdateSummary | None = ... + """ + Contains information about the most recent update to the certificate. + This field exists only when the certificate type is `AMAZON_ISSUED` and + a certificate update has been requested. + """ + certificate_key_pair_origin: str | None = ... + """The origin of the certificate's key pair.""" + acme_endpoint_arn: str | None = ... + """The ARN of the ACME endpoint used to issue the certificate.""" + acme_account_id: str | None = ... + """The ACME account identifier associated with the certificate.""" + +class CertificateExport(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass +class CertificateFilterCertificateArn(_SerdeShape): + """Filter by certificate ARN.""" + + value: str + +@dataclass +class CertificateFilterX509AttributeFilter(_SerdeShape): + """Filter by X.509 certificate attributes.""" + + value: X509AttributeFilter + +@dataclass +class CertificateFilterAcmCertificateMetadataFilter(_SerdeShape): + """Filter by ACM certificate metadata.""" + + value: AcmCertificateMetadataFilter + +@dataclass +class CertificateFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +CertificateFilter = Union[ + CertificateFilterCertificateArn + | CertificateFilterX509AttributeFilter + | CertificateFilterAcmCertificateMetadataFilter + | CertificateFilterUnknown +] +""" +Defines a filter for searching certificates by ARN, X.509 attributes, or +ACM metadata. +""" + +class _CertificateFilterDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> CertificateFilter: ... + +@dataclass +class CertificateFilterStatementAnd(_SerdeShape): + """A list of filter statements that must all be true.""" + + value: list[CertificateFilterStatement] + +@dataclass +class CertificateFilterStatementOr(_SerdeShape): + """A list of filter statements where at least one must be true.""" + + value: list[CertificateFilterStatement] + +@dataclass +class CertificateFilterStatementNot(_SerdeShape): + """A filter statement that must not be true.""" + + value: CertificateFilterStatement + +@dataclass +class CertificateFilterStatementFilter(_SerdeShape): + """A single certificate filter.""" + + value: CertificateFilter + +@dataclass +class CertificateFilterStatementUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +CertificateFilterStatement = Union[ + CertificateFilterStatementAnd + | CertificateFilterStatementOr + | CertificateFilterStatementNot + | CertificateFilterStatementFilter + | CertificateFilterStatementUnknown +] +""" +A filter statement used to search for certificates. Can contain AND, OR, +NOT logical operators or a single filter. +""" + +class _CertificateFilterStatementDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> CertificateFilterStatement: ... + +class CertificateKeyPairOrigin(UnknownEnumMixin, StrEnum): + """The origin of the certificate's key pair.""" + + AWS_MANAGED = "AWS_MANAGED" + ACME = "ACME" + CUSTOMER_PROVIDED = "CUSTOMER_PROVIDED" + +class CertificateManagedBy(UnknownEnumMixin, StrEnum): + CLOUDFRONT = "CLOUDFRONT" + +@dataclass +class CertificateMetadataAcmCertificateMetadata(_SerdeShape): + """Metadata for an ACM certificate.""" + + value: AcmCertificateMetadata + +@dataclass +class CertificateMetadataUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +CertificateMetadata = Union[ + CertificateMetadataAcmCertificateMetadata | CertificateMetadataUnknown +] +""" +Contains metadata about a certificate. Currently supports ACM +certificate metadata. +""" + +class _CertificateMetadataDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> CertificateMetadata: ... + +@dataclass(kw_only=True) +class CertificateOptions(_SerdeShape): + """ + Structure that contains options for your certificate. You can use this + structure to change the domain validation method or specify whether to + export your certificate. + + All public certificates are recorded in a certificate transparency log. + For general information, see [Certificate Transparency + Logging](https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency). + + You can export public ACM certificates to use with Amazon Web Services + services as well as outside Amazon Web Services Cloud. For more + information, see [Certificate Manager exportable public + certificate](https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html). + """ + + certificate_transparency_logging_preference: str | None = ... + """ + This parameter has been deprecated. Certificate transparency logging + opt-out is no longer available. All public certificates are recorded in + a certificate transparency log. + """ + export: str | None = ... + """ + You can opt in to allow the export of your certificates by specifying + `ENABLED`. You cannot update the value of `Export` after the the + certificate is created. + """ + validation_method: str | None = ... + """ + The domain validation method for the certificate. To migrate from email + to DNS validation, specify `DNS`. + """ + +@dataclass(kw_only=True) +class CertificateSearchResult(_SerdeShape): + """ + Contains information about a certificate returned by the + SearchCertificates action. This structure includes the certificate ARN, + X.509 attributes, and ACM metadata. + """ + + certificate_arn: str | None = ... + """The Amazon Resource Name (ARN) of the certificate.""" + x509_attributes: X509Attributes | None = ... + """ + X.509 certificate attributes such as subject, issuer, and validity + period. + """ + certificate_metadata: CertificateMetadata | None = ... + """ACM-specific metadata about the certificate.""" + +class CertificateStatus(UnknownEnumMixin, StrEnum): + PENDING_VALIDATION = "PENDING_VALIDATION" + ISSUED = "ISSUED" + INACTIVE = "INACTIVE" + EXPIRED = "EXPIRED" + VALIDATION_TIMED_OUT = "VALIDATION_TIMED_OUT" + REVOKED = "REVOKED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class CertificateSummary(_SerdeShape): + """ + This structure is returned in the response object of ListCertificates + action. + """ + + certificate_arn: str | None = ... + """ + Amazon Resource Name (ARN) of the certificate. This is of the form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + domain_name: str | None = ... + """ + Fully qualified domain name (FQDN), such as www.example.com or + example.com, for the certificate. + """ + subject_alternative_name_summaries: list[str] | None = ... + """ + One or more domain names (subject alternative names) included in the + certificate. This list contains the domain names that are bound to the + public key that is contained in the certificate. The subject alternative + names include the canonical domain name (CN) of the certificate and + additional domain names that can be used to connect to the website. + + When called by + [ListCertificates](https://docs.aws.amazon.com/acm/latest/APIReference/API_ListCertificates.html), + this parameter will only return the first 100 subject alternative names + included in the certificate. To display the full list of subject + alternative names, use + [DescribeCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html). + """ + has_additional_subject_alternative_names: bool | None = ... + """ + When called by + [ListCertificates](https://docs.aws.amazon.com/acm/latest/APIReference/API_ListCertificates.html), + indicates whether the full list of subject alternative names has been + included in the response. If false, the response includes all of the + subject alternative names included in the certificate. If true, the + response only includes the first 100 subject alternative names included + in the certificate. To display the full list of subject alternative + names, use + [DescribeCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html). + """ + status: str | None = ... + """ + The status of the certificate. + + A certificate enters status PENDING_VALIDATION upon being requested, + unless it fails for any of the reasons given in the troubleshooting + topic [Certificate request + fails](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html). + ACM makes repeated attempts to validate a certificate for 72 hours and + then times out. If a certificate shows status FAILED or + VALIDATION_TIMED_OUT, delete the request, correct the issue with [DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html) + or [Email + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html), + and try again. If validation succeeds, the certificate enters status + ISSUED. + """ + type: str | None = ... + """ + The source of the certificate. For certificates provided by ACM, this + value is `AMAZON_ISSUED`. For certificates that you imported with + ImportCertificate, this value is `IMPORTED`. ACM does not provide + [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for imported certificates. For more information about the differences + between certificates that you import and those that ACM provides, see + [Importing + Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) + in the *Certificate Manager User Guide*. + """ + key_algorithm: str | None = ... + """The algorithm that was used to generate the public-private key pair.""" + key_usages: list[str] | None = ... + """ + A list of Key Usage X.509 v3 extension objects. Each object is a string + value that identifies the purpose of the public key contained in the + certificate. Possible extension values include DIGITAL_SIGNATURE, + KEY_ENCHIPHERMENT, NON_REPUDIATION, and more. + """ + extended_key_usages: list[str] | None = ... + """ + Contains a list of Extended Key Usage X.509 v3 extension objects. Each + object specifies a purpose for which the certificate public key can be + used and consists of a name and an object identifier (OID). + """ + export_option: str | None = ... + """Indicates if export is enabled for the certificate.""" + in_use: bool | None = ... + """ + Indicates whether the certificate is currently in use by any Amazon Web + Services resources. + """ + exported: bool | None = ... + """Indicates whether the certificate has been exported.""" + renewal_eligibility: str | None = ... + """ + Specifies whether the certificate is eligible for renewal. At this time, + only exported private certificates can be renewed with the + RenewCertificate command. + """ + not_before: datetime | None = ... + """The time before which the certificate is not valid.""" + not_after: datetime | None = ... + """The time after which the certificate is not valid.""" + created_at: datetime | None = ... + """The time at which the certificate was requested.""" + issued_at: datetime | None = ... + """ + The time at which the certificate was issued. This value exists only + when the certificate type is `AMAZON_ISSUED`. + """ + imported_at: datetime | None = ... + """ + The date and time when the certificate was imported. This value exists + only when the certificate type is `IMPORTED`. + """ + revoked_at: datetime | None = ... + """ + The time at which the certificate was revoked. This value exists only + when the certificate status is `REVOKED`. + """ + managed_by: str | None = ... + """ + Identifies the Amazon Web Services service that manages the certificate + issued by ACM. + """ + certificate_key_pair_origin: str | None = ... + """The origin of the certificate's key pair.""" + +class CertificateTransparencyLoggingPreference(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +class CertificateType(UnknownEnumMixin, StrEnum): + IMPORTED = "IMPORTED" + AMAZON_ISSUED = "AMAZON_ISSUED" + PRIVATE = "PRIVATE" + +@dataclass(kw_only=True) +class CommonNameFilter(_SerdeShape): + """Filters certificates by common name.""" + + value: str + """The value to match against.""" + comparison_operator: str + """The comparison operator to use.""" + +class ComparisonOperator(UnknownEnumMixin, StrEnum): + """ + The comparison operator to use for string filters. Valid values are + `CONTAINS` and `EQUALS`. + """ + + CONTAINS = "CONTAINS" + EQUALS = "EQUALS" + +@dataclass(kw_only=True) +class ConflictException(ServiceError, _SerdeShape): + """ + You are trying to update a resource or configuration that is already + being created or updated. Wait for the previous operation to finish and + try again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateAcmeDomainValidationInput(_SerdeShape): + """Dataclass for CreateAcmeDomainValidationInput structure.""" + + idempotency_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure idempotency of the + request. + """ + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + domain_name: str | None = ... + """The domain name to validate.""" + prevalidation_options: PrevalidationOptions | None = ... + """The prevalidation options for the domain.""" + tags: list[Tag] | None = ... + """One or more tags to associate with the domain validation.""" + +@dataclass(kw_only=True) +class CreateAcmeDomainValidationOutput(_SerdeShape): + """Dataclass for CreateAcmeDomainValidationOutput structure.""" + + acme_domain_validation_arn: str + """The Amazon Resource Name (ARN) of the created domain validation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateAcmeEndpointInput(_SerdeShape): + """Dataclass for CreateAcmeEndpointInput structure.""" + + idempotency_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure idempotency of the + request. + """ + authorization_behavior: str | None = ... + """The authorization behavior for the ACME endpoint.""" + contact: str = ... + """ + Specifies whether ACME clients must provide contact information during + account registration. + """ + certificate_authority: CertificateAuthority | None = ... + """ + The type of certificate authority to use for issuing certificates + through this ACME endpoint. + """ + tags: list[Tag] | None = ... + """One or more tags to associate with the ACME endpoint.""" + certificate_tags: list[Tag] | None = ... + """Tags to apply to certificates issued through this ACME endpoint.""" + +@dataclass(kw_only=True) +class CreateAcmeEndpointOutput(_SerdeShape): + """Dataclass for CreateAcmeEndpointOutput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the created ACME endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateAcmeExternalAccountBindingInput(_SerdeShape): + """Dataclass for CreateAcmeExternalAccountBindingInput structure.""" + + idempotency_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure idempotency of the + request. + """ + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to associate with the + external account binding. + """ + expiration: Expiration | None = ... + """The expiration configuration for the external account binding.""" + tags: list[Tag] | None = ... + """One or more tags to associate with the external account binding.""" + +@dataclass(kw_only=True) +class CreateAcmeExternalAccountBindingOutput(_SerdeShape): + """Dataclass for CreateAcmeExternalAccountBindingOutput structure.""" + + external_account_binding: AcmeExternalAccountBinding | None = ... + """The created external account binding.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomAttribute(_SerdeShape): + """Defines the X.500 relative distinguished name (RDN).""" + + object_identifier: str | None = ... + """ + Specifies the object identifier (OID) of the attribute type of the + relative distinguished name (RDN). + """ + value: str | None = ... + """Specifies the attribute value of relative distinguished name (RDN).""" + +@dataclass(kw_only=True) +class DeleteAcmeDomainValidationInput(_SerdeShape): + """Dataclass for DeleteAcmeDomainValidationInput structure.""" + + acme_domain_validation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME domain validation to delete.""" + +@dataclass(kw_only=True) +class DeleteAcmeDomainValidationOutput(_SerdeShape): + """Dataclass for DeleteAcmeDomainValidationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAcmeEndpointInput(_SerdeShape): + """Dataclass for DeleteAcmeEndpointInput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint to delete.""" + +@dataclass(kw_only=True) +class DeleteAcmeEndpointOutput(_SerdeShape): + """Dataclass for DeleteAcmeEndpointOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAcmeExternalAccountBindingInput(_SerdeShape): + """Dataclass for DeleteAcmeExternalAccountBindingInput structure.""" + + acme_external_account_binding_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the ACME external account binding to + delete. + """ + +@dataclass(kw_only=True) +class DeleteAcmeExternalAccountBindingOutput(_SerdeShape): + """Dataclass for DeleteAcmeExternalAccountBindingOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCertificateInput(_SerdeShape): + """Dataclass for DeleteCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the ACM certificate to be deleted. This + must be of the form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + +@dataclass(kw_only=True) +class DeleteCertificateOutput(_SerdeShape): + """Dataclass for DeleteCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAcmeAccountInput(_SerdeShape): + """Dataclass for DescribeAcmeAccountInput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + account_url: str | None = ... + """The URL of the ACME account.""" + +@dataclass(kw_only=True) +class DescribeAcmeAccountOutput(_SerdeShape): + """Dataclass for DescribeAcmeAccountOutput structure.""" + + acme_account: AcmeAccount | None = ... + """The ACME account details.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAcmeDomainValidationInput(_SerdeShape): + """Dataclass for DescribeAcmeDomainValidationInput structure.""" + + acme_domain_validation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME domain validation.""" + +@dataclass(kw_only=True) +class DescribeAcmeDomainValidationOutput(_SerdeShape): + """Dataclass for DescribeAcmeDomainValidationOutput structure.""" + + acme_domain_validation: AcmeDomainValidation | None = ... + """The ACME domain validation details.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAcmeEndpointInput(_SerdeShape): + """Dataclass for DescribeAcmeEndpointInput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + +@dataclass(kw_only=True) +class DescribeAcmeEndpointOutput(_SerdeShape): + """Dataclass for DescribeAcmeEndpointOutput structure.""" + + acme_endpoint: AcmeEndpoint | None = ... + """The ACME endpoint details.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAcmeExternalAccountBindingInput(_SerdeShape): + """Dataclass for DescribeAcmeExternalAccountBindingInput structure.""" + + acme_external_account_binding_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME external account binding.""" + +@dataclass(kw_only=True) +class DescribeAcmeExternalAccountBindingOutput(_SerdeShape): + """Dataclass for DescribeAcmeExternalAccountBindingOutput structure.""" + + external_account_binding: AcmeExternalAccountBinding | None = ... + """The external account binding details.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCertificateInput(_SerdeShape): + """Dataclass for DescribeCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have + the following form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + +@dataclass(kw_only=True) +class DescribeCertificateOutput(_SerdeShape): + """Dataclass for DescribeCertificateOutput structure.""" + + certificate: CertificateDetail | None = ... + """Metadata about an ACM certificate.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DistinguishedName(_SerdeShape): + """Contains X.500 distinguished name information.""" + + common_name: str | None = ... + """The common name (CN) attribute.""" + domain_components: list[str] | None = ... + """The domain component attributes.""" + country: str | None = ... + """The country (C) attribute.""" + custom_attributes: list[CustomAttribute] | None = ... + """ + A list of custom attributes in the distinguished name. Each custom + attribute contains an object identifier (OID) and its corresponding + value. + """ + distinguished_name_qualifier: str | None = ... + """The distinguished name qualifier attribute.""" + generation_qualifier: str | None = ... + """The generation qualifier attribute.""" + given_name: str | None = ... + """The given name attribute.""" + initials: str | None = ... + """The initials attribute.""" + locality: str | None = ... + """The locality (L) attribute.""" + organization: str | None = ... + """The organization (O) attribute.""" + organizational_unit: str | None = ... + """The organizational unit (OU) attribute.""" + pseudonym: str | None = ... + """The pseudonym attribute.""" + serial_number: str | None = ... + """The serial number attribute.""" + state: str | None = ... + """The state or province (ST) attribute.""" + surname: str | None = ... + """The surname attribute.""" + title: str | None = ... + """The title attribute.""" + +@dataclass(kw_only=True) +class DnsNameFilter(_SerdeShape): + """Filters certificates by DNS name.""" + + value: str + """The DNS name value to match against.""" + comparison_operator: str + """The comparison operator to use.""" + +@dataclass(kw_only=True) +class DnsPrevalidationDetails(_SerdeShape): + """DNS prevalidation details including the resource record for validation.""" + + domain_scope: DomainScope | None = ... + """The scope of domains covered by this prevalidation.""" + hosted_zone_id: str | None = ... + """The Route 53 hosted zone ID for DNS validation.""" + resource_record: ResourceRecord | None = ... + """The DNS resource record to create for domain validation.""" + +@dataclass(kw_only=True) +class DnsPrevalidationOptions(_SerdeShape): + """DNS prevalidation options for domain validation.""" + + domain_scope: DomainScope | None = ... + """The scope of domains covered by this prevalidation.""" + hosted_zone_id: str | None = ... + """The Route 53 hosted zone ID for DNS validation.""" + +@dataclass(kw_only=True) +class DnsValidationChallenge(_SerdeShape): + """ + Contains the CNAME record that you must add to your DNS configuration to + validate domain ownership using DNS validation. + """ + + resource_record: ResourceRecord | None = ... + """ + The CNAME record that ACM creates for DNS validation. Add this record to + your DNS configuration to prove that you own or control the domain. + """ + +@dataclass(kw_only=True) +class DomainScope(_SerdeShape): + """Specifies the scope of domain validation.""" + + exact_domain: str | None = ... + """Whether validation applies to the exact domain.""" + subdomains: str | None = ... + """Whether validation applies to subdomains.""" + wildcards: str | None = ... + """Whether validation applies to wildcard domains.""" + +class DomainScopeOption(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +class DomainStatus(UnknownEnumMixin, StrEnum): + PENDING_VALIDATION = "PENDING_VALIDATION" + SUCCESS = "SUCCESS" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class DomainValidation(_SerdeShape): + """ + Contains information about the validation of each domain name in the + certificate. + """ + + domain_name: str + """ + A fully qualified domain name (FQDN) in the certificate. For example, + `www.example.com` or `example.com`. + """ + validation_emails: list[str] | None = ... + """ + A list of email addresses that ACM used to send domain validation + emails. + """ + validation_domain: str | None = ... + """The domain name that ACM used to send domain validation emails.""" + validation_status: str | None = ... + """ + The validation status of the domain name. This can be one of the + following values: + + - `PENDING_VALIDATION` + + - SUCCESS + + - FAILED + """ + resource_record: ResourceRecord | None = ... + """ + Contains the CNAME record that you add to your DNS database for domain + validation. For more information, see [Use DNS to Validate Domain + Ownership](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html). + + Note: + The CNAME information that you need does not include the name of your + domain. If you include your domain name in the DNS database CNAME + record, validation fails. For example, if the name is + `_a79865eb4cd1a6ab990a45779b4e0b96.yourdomain.com`, only + `_a79865eb4cd1a6ab990a45779b4e0b96` must be used. + """ + http_redirect: HttpRedirect | None = ... + """ + Contains information for HTTP-based domain validation of certificates + requested through Amazon CloudFront and issued by ACM. This field exists + only when the certificate type is `AMAZON_ISSUED` and the validation + method is `HTTP`. + """ + validation_method: str | None = ... + """Specifies the domain validation method.""" + +@dataclass(kw_only=True) +class DomainValidationMethodUpdateSummary(_SerdeShape): + """ + Contains information about a domain validation method migration, + including the previous validation method and the target validation + method. + """ + + from_: str | None = ... + """The validation method that the certificate was using before the update.""" + to: str | None = ... + """The target validation method for the update.""" + +@dataclass(kw_only=True) +class DomainValidationOption(_SerdeShape): + """ + Contains information about the domain names that you want ACM to use to + send you emails that enable you to validate domain ownership. + """ + + domain_name: str + """A fully qualified domain name (FQDN) in the certificate request.""" + validation_domain: str + """ + The domain name that you want ACM to use to send you validation emails. + This domain name is the suffix of the email addresses that you want ACM + to use. This must be the same as the `DomainName` value or a superdomain + of the `DomainName` value. For example, if you request a certificate for + `testing.example.com`, you can specify `example.com` for this value. In + that case, ACM sends domain validation emails to the following five + addresses: + + - admin@example.com + + - administrator@example.com + + - hostmaster@example.com + + - postmaster@example.com + + - webmaster@example.com + """ + +@dataclass(kw_only=True) +class DomainValidationSummary(_SerdeShape): + """ + Contains per-domain validation information for a certificate. This + structure is returned as a member of the + ListCertificateDomainValidations response. + """ + + domain_name: str + """ + The fully qualified domain name (FQDN) in the certificate for which this + validation summary applies. + """ + active_validation_configuration: ValidationConfiguration | None = ... + """ + The validation configuration currently in effect for this domain. This + reflects the validation method that ACM is currently using to validate + domain ownership (for example, email or DNS). + """ + requested_validation_configuration: ValidationConfiguration | None = ... + """ + The validation configuration for a pending validation method migration. + This field is present only when a migration is in progress (for example, + from email to DNS validation). It contains the target validation method, + the current validation status, and the validation challenge details + (such as the CNAME record to add to your DNS configuration). + """ + +@dataclass(kw_only=True) +class EmailValidationChallenge(_SerdeShape): + """Contains the email addresses used for email-based domain validation.""" + + validation_emails: list[str] | None = ... + """ + A list of email addresses that ACM uses to send domain validation + emails. + """ + validation_domain: str | None = ... + """The domain name that ACM uses to send validation emails.""" + +@dataclass(kw_only=True) +class Expiration(_SerdeShape): + """Specifies an expiration configuration.""" + + value: int + """The numeric value of the expiration.""" + type: str + """The time unit for the expiration value.""" + +@dataclass(kw_only=True) +class ExpiryEventsConfiguration(_SerdeShape): + """ + Object containing expiration events options associated with an Amazon + Web Services account. + """ + + days_before_expiry: int | None = ... + """ + Specifies the number of days prior to certificate expiration when ACM + starts generating `EventBridge` events. ACM sends one event per day per + certificate until the certificate expires. By default, accounts receive + events starting 45 days before certificate expiration. + """ + +@dataclass(kw_only=True) +class ExportCertificateInput(_SerdeShape): + """Dataclass for ExportCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + An Amazon Resource Name (ARN) of the issued certificate. This must be of + the form: + + `arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012` + """ + passphrase: bytes | None = ... + """ + Passphrase to associate with the encrypted exported private key. + + Note: + When creating your passphrase, you can use any ASCII character except #, + $, or %. + + If you want to later decrypt the private key, you must have the + passphrase. You can use the following OpenSSL command to decrypt a + private key. After entering the command, you are prompted for the + passphrase. + + `openssl rsa -in encrypted_key.pem -out decrypted_key.pem` + """ + +@dataclass(kw_only=True) +class ExportCertificateOutput(_SerdeShape): + """Dataclass for ExportCertificateOutput structure.""" + + certificate: str | None = ... + """The base64 PEM-encoded certificate.""" + certificate_chain: str | None = ... + """ + The base64 PEM-encoded certificate chain. This does not include the + certificate that you are exporting. + """ + private_key: str | None = ... + """ + The encrypted private key associated with the public key in the + certificate. The key is output in PKCS #8 format and is base64 + PEM-encoded. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExtendedKeyUsage(_SerdeShape): + """ + The Extended Key Usage X.509 v3 extension defines one or more purposes + for which the public key can be used. This is in addition to or in place + of the basic purposes specified by the Key Usage extension. + """ + + name: str | None = ... + """The name of an Extended Key Usage value.""" + oid: str | None = ... + """ + An object identifier (OID) for the extension value. OIDs are strings of + numbers separated by periods. The following OIDs are defined in RFC 3280 + and RFC 5280. + + - `1.3.6.1.5.5.7.3.1 (TLS_WEB_SERVER_AUTHENTICATION)` + + - `1.3.6.1.5.5.7.3.2 (TLS_WEB_CLIENT_AUTHENTICATION)` + + - `1.3.6.1.5.5.7.3.3 (CODE_SIGNING)` + + - `1.3.6.1.5.5.7.3.4 (EMAIL_PROTECTION)` + + - `1.3.6.1.5.5.7.3.8 (TIME_STAMPING)` + + - `1.3.6.1.5.5.7.3.9 (OCSP_SIGNING)` + + - `1.3.6.1.5.5.7.3.5 (IPSEC_END_SYSTEM)` + + - `1.3.6.1.5.5.7.3.6 (IPSEC_TUNNEL)` + + - `1.3.6.1.5.5.7.3.7 (IPSEC_USER)` + """ + +class ExtendedKeyUsageName(UnknownEnumMixin, StrEnum): + TLS_WEB_SERVER_AUTHENTICATION = "TLS_WEB_SERVER_AUTHENTICATION" + TLS_WEB_CLIENT_AUTHENTICATION = "TLS_WEB_CLIENT_AUTHENTICATION" + CODE_SIGNING = "CODE_SIGNING" + EMAIL_PROTECTION = "EMAIL_PROTECTION" + TIME_STAMPING = "TIME_STAMPING" + OCSP_SIGNING = "OCSP_SIGNING" + IPSEC_END_SYSTEM = "IPSEC_END_SYSTEM" + IPSEC_TUNNEL = "IPSEC_TUNNEL" + IPSEC_USER = "IPSEC_USER" + ANY = "ANY" + NONE = "NONE" + CUSTOM = "CUSTOM" + +@dataclass(kw_only=True) +class FailureDetails(_SerdeShape): + """Contains details about a failure.""" + + reason: str | None = ... + """The reason for the failure.""" + message: str | None = ... + """A message describing the failure.""" + +class FailureReason(UnknownEnumMixin, StrEnum): + NO_AVAILABLE_CONTACTS = "NO_AVAILABLE_CONTACTS" + ADDITIONAL_VERIFICATION_REQUIRED = "ADDITIONAL_VERIFICATION_REQUIRED" + DOMAIN_NOT_ALLOWED = "DOMAIN_NOT_ALLOWED" + INVALID_PUBLIC_DOMAIN = "INVALID_PUBLIC_DOMAIN" + DOMAIN_VALIDATION_DENIED = "DOMAIN_VALIDATION_DENIED" + CAA_ERROR = "CAA_ERROR" + PCA_LIMIT_EXCEEDED = "PCA_LIMIT_EXCEEDED" + PCA_INVALID_ARN = "PCA_INVALID_ARN" + PCA_INVALID_STATE = "PCA_INVALID_STATE" + PCA_REQUEST_FAILED = "PCA_REQUEST_FAILED" + PCA_NAME_CONSTRAINTS_VALIDATION = "PCA_NAME_CONSTRAINTS_VALIDATION" + PCA_RESOURCE_NOT_FOUND = "PCA_RESOURCE_NOT_FOUND" + PCA_INVALID_ARGS = "PCA_INVALID_ARGS" + PCA_INVALID_DURATION = "PCA_INVALID_DURATION" + PCA_ACCESS_DENIED = "PCA_ACCESS_DENIED" + SLR_NOT_FOUND = "SLR_NOT_FOUND" + OTHER = "OTHER" + +@dataclass(kw_only=True) +class Filters(_SerdeShape): + """ + This structure can be used in the ListCertificates action to filter the + output of the certificate list. + """ + + extended_key_usage: list[str] | None = ... + """Specify one or more ExtendedKeyUsage extension values.""" + key_usage: list[str] | None = ... + """Specify one or more KeyUsage extension values.""" + key_types: list[str] | None = ... + """ + Specify one or more algorithms that can be used to generate key pairs. + + Default filtering returns only `RSA_1024` and `RSA_2048` certificates + that have at least one domain. To return other certificate types, + provide the desired type signatures in a comma-separated list. For + example, `"keyTypes": ["RSA_2048","RSA_4096"]` returns both `RSA_2048` + and `RSA_4096` certificates. + """ + export_option: str | None = ... + """ + Specify `ENABLED` or `DISABLED` to identify certificates that can be + exported. + """ + managed_by: str | None = ... + """ + Identifies the Amazon Web Services service that manages the certificate + issued by ACM. + """ + +@dataclass +class GeneralNameDirectoryName(_SerdeShape): + """ + Contains information about the certificate subject. The `Subject` field + in the certificate identifies the entity that owns or controls the + public key in the certificate. The entity can be a user, computer, + device, or service. The `Subject` must contain an X.500 distinguished + name (DN). A DN is a sequence of relative distinguished names (RDNs). + The RDNs are separated by commas in the certificate. + """ + + value: DistinguishedName + +@dataclass +class GeneralNameDnsName(_SerdeShape): + """Represents `GeneralName` as a DNS name.""" + + value: str + +@dataclass +class GeneralNameIpAddress(_SerdeShape): + """Represents `GeneralName` as an IPv4 or IPv6 address.""" + + value: str + +@dataclass +class GeneralNameOtherName(_SerdeShape): + """Represents `GeneralName` using an `OtherName` object.""" + + value: OtherName + +@dataclass +class GeneralNameRegisteredId(_SerdeShape): + """Represents `GeneralName` as an object identifier (OID).""" + + value: str + +@dataclass +class GeneralNameRfc822Name(_SerdeShape): + """ + Represents `GeneralName` as an [RFC + 822](https://datatracker.ietf.org/doc/html/rfc822) email address. + """ + + value: str + +@dataclass +class GeneralNameUniformResourceIdentifier(_SerdeShape): + """Represents `GeneralName` as a URI.""" + + value: str + +@dataclass +class GeneralNameUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GeneralName = Union[ + GeneralNameDirectoryName + | GeneralNameDnsName + | GeneralNameIpAddress + | GeneralNameOtherName + | GeneralNameRegisteredId + | GeneralNameRfc822Name + | GeneralNameUniformResourceIdentifier + | GeneralNameUnknown +] +""" +Describes an ASN.1 X.400 `GeneralName` as defined in [RFC +5280](https://datatracker.ietf.org/doc/html/rfc5280). Only one of the +following naming options should be provided. +""" + +class _GeneralNameDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> GeneralName: ... + +@dataclass(kw_only=True) +class GetAccountConfigurationInput(_SerdeShape): + """Dataclass for GetAccountConfigurationInput structure.""" + +@dataclass(kw_only=True) +class GetAccountConfigurationOutput(_SerdeShape): + """Dataclass for GetAccountConfigurationOutput structure.""" + + expiry_events: ExpiryEventsConfiguration | None = ... + """ + Expiration events configuration options associated with the Amazon Web + Services account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAcmeExternalAccountBindingCredentialsInput(_SerdeShape): + """Dataclass for GetAcmeExternalAccountBindingCredentialsInput structure.""" + + acme_external_account_binding_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME external account binding.""" + +@dataclass(kw_only=True) +class GetAcmeExternalAccountBindingCredentialsOutput(_SerdeShape): + """Dataclass for GetAcmeExternalAccountBindingCredentialsOutput structure.""" + + key_id: str | None = ... + """The key identifier for the external account binding credentials.""" + mac_key: str | None = ... + """The MAC key for the external account binding credentials.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCertificateInput(_SerdeShape): + """Dataclass for GetCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains a certificate ARN in the following format: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + +@dataclass(kw_only=True) +class GetCertificateOutput(_SerdeShape): + """Dataclass for GetCertificateOutput structure.""" + + certificate: str | None = ... + """The ACM-issued certificate corresponding to the ARN specified as input.""" + certificate_chain: str | None = ... + """ + Certificates forming the requested certificate's chain of trust. The + chain consists of the certificate of the issuing CA and the intermediate + certificates of any other subordinate CAs. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class HttpRedirect(_SerdeShape): + """ + Contains information for HTTP-based domain validation of certificates + requested through Amazon CloudFront and issued by ACM. This field exists + only when the certificate type is `AMAZON_ISSUED` and the validation + method is `HTTP`. + """ + + redirect_from: str | None = ... + """ + The URL including the domain to be validated. The certificate authority + sends `GET` requests here during validation. + """ + redirect_to: str | None = ... + """ + The URL hosting the validation token. `RedirectFrom` must return this + content or redirect here. + """ + +@dataclass(kw_only=True) +class ImportCertificateInput(_SerdeShape): + """Dataclass for ImportCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + The [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of an imported certificate to replace. To import a new certificate, omit + this field. + """ + certificate: bytes | None = ... + """The certificate to import.""" + private_key: bytes | None = ... + """The private key that matches the public key in the certificate.""" + certificate_chain: bytes | None = ... + """The PEM encoded certificate chain.""" + tags: list[Tag] | None = ... + """ + One or more resource tags to associate with the imported certificate. + + Note: You cannot apply tags when reimporting a certificate. + """ + +@dataclass(kw_only=True) +class ImportCertificateOutput(_SerdeShape): + """Dataclass for ImportCertificateOutput structure.""" + + certificate_arn: str | None = ... + """ + The [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of the imported certificate. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InternalServerException(ServiceError, _SerdeShape): + """ + The request processing has failed because of an unknown error, + exception, or failure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidArgsException(ServiceError, _SerdeShape): + """One or more of request parameters specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidArnException(ServiceError, _SerdeShape): + """ + The requested Amazon Resource Name (ARN) does not refer to an existing + resource. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDomainValidationOptionsException(ServiceError, _SerdeShape): + """One or more values in the DomainValidationOption structure is incorrect.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidParameterException(ServiceError, _SerdeShape): + """An input parameter was invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidStateException(ServiceError, _SerdeShape): + """Processing has reached an invalid state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidTagException(ServiceError, _SerdeShape): + """ + One or both of the values that make up the key-value pair is not valid. + For example, you cannot specify a tag value that begins with `aws:`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class KeyAlgorithm(UnknownEnumMixin, StrEnum): + RSA_1024 = "RSA_1024" + RSA_2048 = "RSA_2048" + RSA_3072 = "RSA_3072" + RSA_4096 = "RSA_4096" + EC_PRIME256V1 = "EC_prime256v1" + EC_SECP384R1 = "EC_secp384r1" + EC_SECP521R1 = "EC_secp521r1" + +@dataclass(kw_only=True) +class KeyUsage(_SerdeShape): + """ + The Key Usage X.509 v3 extension defines the purpose of the public key + contained in the certificate. + """ + + name: str | None = ... + """A string value that contains a Key Usage extension name.""" + +class KeyUsageName(UnknownEnumMixin, StrEnum): + DIGITAL_SIGNATURE = "DIGITAL_SIGNATURE" + NON_REPUDATION = "NON_REPUDIATION" + KEY_ENCIPHERMENT = "KEY_ENCIPHERMENT" + DATA_ENCIPHERMENT = "DATA_ENCIPHERMENT" + KEY_AGREEMENT = "KEY_AGREEMENT" + CERTIFICATE_SIGNING = "CERTIFICATE_SIGNING" + CRL_SIGNING = "CRL_SIGNING" + ENCHIPER_ONLY = "ENCIPHER_ONLY" + DECIPHER_ONLY = "DECIPHER_ONLY" + ANY = "ANY" + CUSTOM = "CUSTOM" + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """An ACM quota has been exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAcmeAccountsInput(_SerdeShape): + """Dataclass for ListAcmeAccountsInput structure.""" + + next_token: str | None = ... + """A token for pagination.""" + max_results: int | None = ... + """The maximum number of results to return.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + +@dataclass(kw_only=True) +class ListAcmeAccountsOutput(_SerdeShape): + """Dataclass for ListAcmeAccountsOutput structure.""" + + acme_accounts: list[AcmeAccountSummary] | None = ... + """The list of ACME accounts.""" + next_token: str | None = ... + """A token for pagination.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAcmeDomainValidationsInput(_SerdeShape): + """Dataclass for ListAcmeDomainValidationsInput structure.""" + + next_token: str | None = ... + """A token for pagination.""" + max_results: int | None = ... + """The maximum number of results to return.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + +@dataclass(kw_only=True) +class ListAcmeDomainValidationsOutput(_SerdeShape): + """Dataclass for ListAcmeDomainValidationsOutput structure.""" + + acme_domain_validations: list[AcmeDomainValidationSummary] | None = ... + """The list of domain validations.""" + next_token: str | None = ... + """A token for pagination.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAcmeEndpointsInput(_SerdeShape): + """Dataclass for ListAcmeEndpointsInput structure.""" + + next_token: str | None = ... + """A token for pagination.""" + max_results: int | None = ... + """The maximum number of results to return.""" + +@dataclass(kw_only=True) +class ListAcmeEndpointsOutput(_SerdeShape): + """Dataclass for ListAcmeEndpointsOutput structure.""" + + acme_endpoints: list[AcmeEndpointSummary] | None = ... + """The list of ACME endpoints.""" + next_token: str | None = ... + """A token for pagination.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAcmeExternalAccountBindingsInput(_SerdeShape): + """Dataclass for ListAcmeExternalAccountBindingsInput structure.""" + + next_token: str | None = ... + """A token for pagination.""" + max_results: int | None = ... + """The maximum number of results to return.""" + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + +@dataclass(kw_only=True) +class ListAcmeExternalAccountBindingsOutput(_SerdeShape): + """Dataclass for ListAcmeExternalAccountBindingsOutput structure.""" + + external_account_bindings: list[AcmeExternalAccountBindingSummary] | None = ... + """The list of external account bindings.""" + next_token: str | None = ... + """A token for pagination.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListCertificateDomainValidationsInput(_SerdeShape): + """Dataclass for ListCertificateDomainValidationsInput structure.""" + + certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the certificate for which to list + domain validation summaries. + """ + next_token: str | None = ... + """ + A token returned by a previous call to + `ListCertificateDomainValidations`. If the number of results exceeds + `MaxItems`, use this token to retrieve the next page of results. + """ + max_items: int | None = ... + """ + The maximum number of domain validation summaries to return. If you + don't specify a value, the default is 1000. + """ + +@dataclass(kw_only=True) +class ListCertificateDomainValidationsOutput(_SerdeShape): + """Dataclass for ListCertificateDomainValidationsOutput structure.""" + + domain_validation_summary_list: list[DomainValidationSummary] | None = ... + """ + A list of DomainValidationSummary objects, one for each domain on the + certificate. Each object contains the domain name and its active and + requested validation configurations. + """ + next_token: str | None = ... + """ + If the number of results exceeds `MaxItems`, this token is included in + the response. Use this token in a subsequent + `ListCertificateDomainValidations` request to retrieve the next page of + results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListCertificatesInput(_SerdeShape): + """Dataclass for ListCertificatesInput structure.""" + + certificate_statuses: list[str] | None = ... + """Filter the certificate list by status value.""" + certificate_key_pair_origins: list[str] | None = ... + """ + Filter the certificate list by certificate key pair origin. Specify one + or more `CertificateKeyPairOrigin` values. Default filtering returns + only certificates with key pair origin of `AWS_MANAGED` and + `CUSTOMER_PROVIDED`. + """ + includes: Filters | None = ... + """ + Filter the certificate list. For more information, see the Filters + structure. + """ + next_token: str | None = ... + """ + Use this parameter only when paginating results and only in a subsequent + request after you receive a response with truncated results. Set it to + the value of `NextToken` from the response you just received. + """ + max_items: int | None = ... + """ + Use this parameter when paginating results to specify the maximum number + of items to return in the response. If additional items exist beyond the + number you specify, the `NextToken` element is sent in the response. Use + this `NextToken` value in a subsequent request to retrieve additional + items. + """ + sort_by: str | None = ... + """ + Specifies the field to sort results by. If you specify `SortBy`, you + must also specify `SortOrder`. + """ + sort_order: str | None = ... + """ + Specifies the order of sorted results. If you specify `SortOrder`, you + must also specify `SortBy`. + """ + +@dataclass(kw_only=True) +class ListCertificatesOutput(_SerdeShape): + """Dataclass for ListCertificatesOutput structure.""" + + next_token: str | None = ... + """ + When the list is truncated, this value is present and contains the value + to use for the `NextToken` parameter in a subsequent pagination request. + """ + certificate_summary_list: list[CertificateSummary] | None = ... + """A list of ACM certificates.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForCertificateInput(_SerdeShape): + """Dataclass for ListTagsForCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the ACM certificate for which you want + to list the tags. This must have the following form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + +@dataclass(kw_only=True) +class ListTagsForCertificateOutput(_SerdeShape): + """Dataclass for ListTagsForCertificateOutput structure.""" + + tags: list[Tag] | None = ... + """The key-value pairs that define the applied tags.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """Dataclass for ListTagsForResourceInput structure.""" + + resource_arn: str | None = ... + """The ARN of the ACM resource for which to list tags.""" + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """Dataclass for ListTagsForResourceOutput structure.""" + + tags: list[Tag] | None = ... + """The tags associated with the resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OtherName(_SerdeShape): + """ + Defines a custom ASN.1 X.400 `GeneralName` using an object identifier + (OID) and value. For more information, see NIST's definition of [Object + Identifier + (OID)](https://csrc.nist.gov/glossary/term/Object_Identifier). + """ + + object_identifier: str | None = ... + """Specifies an OID.""" + value: str | None = ... + """Specifies an OID value.""" + +@dataclass +class PrevalidationDetailsDnsPrevalidation(_SerdeShape): + """DNS-based prevalidation details.""" + + value: DnsPrevalidationDetails + +@dataclass +class PrevalidationDetailsUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +PrevalidationDetails = Union[ + PrevalidationDetailsDnsPrevalidation | PrevalidationDetailsUnknown +] +"""Contains details about the prevalidation configuration.""" + +class _PrevalidationDetailsDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> PrevalidationDetails: ... + +@dataclass +class PrevalidationOptionsDnsPrevalidation(_SerdeShape): + """DNS-based prevalidation options.""" + + value: DnsPrevalidationOptions + +@dataclass +class PrevalidationOptionsUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +PrevalidationOptions = Union[ + PrevalidationOptionsDnsPrevalidation | PrevalidationOptionsUnknown +] +"""Specifies prevalidation options for domain validation.""" + +class _PrevalidationOptionsDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> PrevalidationOptions: ... + +class PrevalidationType(UnknownEnumMixin, StrEnum): + DNS_PREVALIDATION = "DNS_PREVALIDATION" + +@dataclass(kw_only=True) +class PublicCertificateAuthority(_SerdeShape): + """Configuration for a public certificate authority.""" + + allowed_key_algorithms: list[str] | None = ... + """ + The key algorithms allowed for certificates issued by this certificate + authority. + """ + +class PublicKeyAlgorithm(UnknownEnumMixin, StrEnum): + RSA_2048 = "RSA_2048" + EC_PRIME256_V1 = "EC_prime256v1" + EC_SECP384_R1 = "EC_secp384r1" + +@dataclass(kw_only=True) +class PutAccountConfigurationInput(_SerdeShape): + """Dataclass for PutAccountConfigurationInput structure.""" + + expiry_events: ExpiryEventsConfiguration | None = ... + """Specifies expiration events associated with an account.""" + idempotency_token: str | None = ... + """ + Customer-chosen string used to distinguish between calls to + `PutAccountConfiguration`. Idempotency tokens time out after one hour. + If you call `PutAccountConfiguration` multiple times with the same + unexpired idempotency token, ACM treats it as the same request and + returns the original result. If you change the idempotency token for + each call, ACM treats each call as a new request. + """ + +@dataclass(kw_only=True) +class PutAccountConfigurationOutput(_SerdeShape): + """Dataclass for PutAccountConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RecordType(UnknownEnumMixin, StrEnum): + CNAME = "CNAME" + +@dataclass(kw_only=True) +class RemoveTagsFromCertificateInput(_SerdeShape): + """Dataclass for RemoveTagsFromCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the ACM Certificate with one or more + tags that you want to remove. This must be of the form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + tags: list[Tag] | None = ... + """The key-value pair that defines the tag to remove.""" + +@dataclass(kw_only=True) +class RemoveTagsFromCertificateOutput(_SerdeShape): + """Dataclass for RemoveTagsFromCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RenewalEligibility(UnknownEnumMixin, StrEnum): + ELIGIBLE = "ELIGIBLE" + INELIGIBLE = "INELIGIBLE" + +class RenewalStatus(UnknownEnumMixin, StrEnum): + PENDING_AUTO_RENEWAL = "PENDING_AUTO_RENEWAL" + PENDING_VALIDATION = "PENDING_VALIDATION" + SUCCESS = "SUCCESS" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class RenewalSummary(_SerdeShape): + """ + Contains information about the status of ACM's [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + for the certificate. This structure exists only when the certificate + type is `AMAZON_ISSUED`. + """ + + renewal_status: str + """ + The status of ACM's [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) + of the certificate. + """ + domain_validation_options: list[DomainValidation] + """ + Contains information about the validation of each domain name in the + certificate, as it pertains to ACM's [managed + renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html). + This is different from the initial validation that occurs as a result of + the RequestCertificate request. This field exists only when the + certificate type is `AMAZON_ISSUED`. + """ + renewal_status_reason: str | None = ... + """The reason that a renewal request was unsuccessful.""" + updated_at: datetime + """The time at which the renewal summary was last updated.""" + +@dataclass(kw_only=True) +class RenewCertificateInput(_SerdeShape): + """Dataclass for RenewCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the ACM certificate to be renewed. This + must be of the form: + + `arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012` + + For more information about ARNs, see [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + """ + +@dataclass(kw_only=True) +class RenewCertificateOutput(_SerdeShape): + """Dataclass for RenewCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RequestCertificateInput(_SerdeShape): + """Dataclass for RequestCertificateInput structure.""" + + domain_name: str | None = ... + """ + Fully qualified domain name (FQDN), such as www.example.com, that you + want to secure with an ACM certificate. Use an asterisk (*) to create a + wildcard certificate that protects several sites in the same domain. For + example, *.example.com protects www.example.com, site.example.com, and + images.example.com. + + In compliance with [RFC + 5280](https://datatracker.ietf.org/doc/html/rfc5280), the length of the + domain name (technically, the Common Name) that you provide cannot + exceed 64 octets (characters), including periods. To add a longer domain + name, specify it in the Subject Alternative Name field, which supports + names up to 253 octets in length. + """ + validation_method: str | None = ... + """ + The method you want to use if you are requesting a public certificate to + validate that you own or control domain. You can [validate with + DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) + or [validate with + email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html). + We recommend that you use DNS validation. + """ + subject_alternative_names: list[str] | None = ... + """ + Additional FQDNs to be included in the Subject Alternative Name + extension of the ACM certificate. For example, add the name + www.example.net to a certificate for which the `DomainName` field is + www.example.com if users can reach your site by using either name. The + maximum number of domain names that you can add to an ACM certificate is + 100. However, the initial quota is 10 domain names. If you need more + than 10 names, you must request a quota increase. For more information, + see + [Quotas](https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html). + + The maximum length of a SAN DNS name is 253 octets. The name is made up + of multiple labels separated by periods. No label can be longer than 63 + octets. Consider the following examples: + + - `(63 octets).(63 octets).(63 octets).(61 octets)` is legal because the + total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 + octets. + + - `(64 octets).(63 octets).(63 octets).(61 octets)` is not legal because + the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first + label exceeds 63 octets. + + - `(63 octets).(63 octets).(63 octets).(62 octets)` is not legal because + the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 + octets. + """ + idempotency_token: str | None = ... + """ + Customer chosen string that can be used to distinguish between calls to + `RequestCertificate`. Idempotency tokens time out after one hour. + Therefore, if you call `RequestCertificate` multiple times with the same + idempotency token within one hour, ACM recognizes that you are + requesting only one certificate and will issue only one. If you change + the idempotency token for each call, ACM recognizes that you are + requesting multiple certificates. + """ + domain_validation_options: list[DomainValidationOption] | None = ... + """ + The domain name that you want ACM to use to send you emails so that you + can validate domain ownership. + """ + options: CertificateOptions | None = ... + """ + You can use this parameter to specify whether to export your + certificate. + + Certificate transparency logging opt-out is no longer available. All + public certificates are recorded in a certificate transparency log. For + more information, see [Certificate Transparency + Logging](https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency). + + You can export public ACM certificates to use with Amazon Web Services + services as well as outside the Amazon Web Services Cloud. For more + information, see [Certificate Manager exportable public + certificate](https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html). + """ + certificate_authority_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the private certificate authority (CA) + that will be used to issue the certificate. If you do not provide an ARN + and you are trying to request a private certificate, ACM will attempt to + issue a public certificate. For more information about private CAs, see + the [Amazon Web Services Private Certificate + Authority](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html) + user guide. The ARN must have the following form: + + `arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012` + """ + tags: list[Tag] | None = ... + """One or more resource tags to associate with the certificate.""" + key_algorithm: str | None = ... + """ + Specifies the algorithm of the public and private key pair that your + certificate uses to encrypt data. RSA is the default key algorithm for + ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) + keys are smaller, offering security comparable to RSA keys but with + greater computing efficiency. However, ECDSA is not supported by all + network clients. Some Amazon Web Services services may require RSA keys, + or only support ECDSA keys of a particular size, while others allow the + use of either RSA and ECDSA keys to ensure that compatibility is not + broken. Check the requirements for the Amazon Web Services service where + you plan to deploy your certificate. For more information about + selecting an algorithm, see [Key + algorithms](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate-characteristics.html#algorithms-term). + + Note: + Algorithms supported for an ACM certificate request include: + + - `RSA_2048` + + - `EC_prime256v1` + + - `EC_secp384r1` + + Other listed algorithms are for imported certificates only. + Note: + When you request a private PKI certificate signed by a CA from Amazon + Web Services Private CA, the specified signing algorithm family (RSA or + ECDSA) must match the algorithm family of the CA's secret key. + + Default: RSA_2048 + """ + managed_by: str | None = ... + """ + Identifies the Amazon Web Services service that manages the certificate + issued by ACM. + """ + +@dataclass(kw_only=True) +class RequestCertificateOutput(_SerdeShape): + """Dataclass for RequestCertificateOutput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the issued certificate. This must be of + the form: + + `arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012` + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RequestInProgressException(ServiceError, _SerdeShape): + """ + The certificate request is in process and the certificate in your + account has not yet been issued. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResendValidationEmailInput(_SerdeShape): + """Dataclass for ResendValidationEmailInput structure.""" + + certificate_arn: str | None = ... + """ + String that contains the ARN of the requested certificate. The + certificate ARN is generated and returned by the RequestCertificate + action as soon as the request is made. By default, using this parameter + causes email to be sent to all top-level domains you specified in the + certificate request. The ARN must be of the form: + + `arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012` + """ + domain: str | None = ... + """ + The fully qualified domain name (FQDN) of the certificate that needs to + be validated. + """ + validation_domain: str | None = ... + """ + The base validation domain that will act as the suffix of the email + addresses that are used to send the emails. This must be the same as the + `Domain` value or a superdomain of the `Domain` value. For example, if + you requested a certificate for `site.subdomain.example.com` and specify + a **ValidationDomain** of `subdomain.example.com`, ACM sends email to + the the following five addresses: + + - admin@subdomain.example.com + + - administrator@subdomain.example.com + + - hostmaster@subdomain.example.com + + - postmaster@subdomain.example.com + + - webmaster@subdomain.example.com + """ + +@dataclass(kw_only=True) +class ResendValidationEmailOutput(_SerdeShape): + """Dataclass for ResendValidationEmailOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceInUseException(ServiceError, _SerdeShape): + """ + The certificate is in use by another Amazon Web Services service in the + caller's account. Remove the association and try again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """ + The specified certificate cannot be found in the caller's account or + the caller's account cannot be found. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceRecord(_SerdeShape): + """ + Contains a DNS record value that you can use to validate ownership or + control of a domain. This is used by the DescribeCertificate action. + """ + + name: str + """ + The name of the DNS record to create in your domain. This is supplied by + ACM. + """ + type: str + """The type of DNS record. Currently this can be `CNAME`.""" + value: str + """ + The value of the CNAME record to add to your DNS database. This is + supplied by ACM. + """ + +class RevocationReason(UnknownEnumMixin, StrEnum): + UNSPECIFIED = "UNSPECIFIED" + KEY_COMPROMISE = "KEY_COMPROMISE" + CA_COMPROMISE = "CA_COMPROMISE" + AFFILIATION_CHANGED = "AFFILIATION_CHANGED" + SUPERCEDED = "SUPERCEDED" + SUPERSEDED = "SUPERSEDED" + CESSATION_OF_OPERATION = "CESSATION_OF_OPERATION" + CERTIFICATE_HOLD = "CERTIFICATE_HOLD" + REMOVE_FROM_CRL = "REMOVE_FROM_CRL" + PRIVILEGE_WITHDRAWN = "PRIVILEGE_WITHDRAWN" + A_A_COMPROMISE = "A_A_COMPROMISE" + +@dataclass(kw_only=True) +class RevokeAcmeAccountInput(_SerdeShape): + """Dataclass for RevokeAcmeAccountInput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint.""" + account_url: str | None = ... + """The URL of the ACME account to revoke.""" + +@dataclass(kw_only=True) +class RevokeAcmeAccountOutput(_SerdeShape): + """Dataclass for RevokeAcmeAccountOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokeAcmeExternalAccountBindingInput(_SerdeShape): + """Dataclass for RevokeAcmeExternalAccountBindingInput structure.""" + + acme_external_account_binding_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the ACME external account binding to + revoke. + """ + +@dataclass(kw_only=True) +class RevokeAcmeExternalAccountBindingOutput(_SerdeShape): + """Dataclass for RevokeAcmeExternalAccountBindingOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokeCertificateInput(_SerdeShape): + """Dataclass for RevokeCertificateInput structure.""" + + certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the public or private certificate that + will be revoked. The ARN must have the following form: + + `arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012` + """ + revocation_reason: str | None = ... + """Specifies why you revoked the certificate.""" + +@dataclass(kw_only=True) +class RevokeCertificateOutput(_SerdeShape): + """Dataclass for RevokeCertificateOutput structure.""" + + certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the public or private certificate that + was revoked. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SearchCertificatesInput(_SerdeShape): + """Dataclass for SearchCertificatesInput structure.""" + + filter_statement: CertificateFilterStatement | None = ... + """ + A filter statement that defines the search criteria. You can combine + multiple filters using AND, OR, and NOT logical operators to create + complex queries. + """ + max_results: int = ... + """The maximum number of results to return in the response. Default is 100.""" + next_token: str | None = ... + """ + Use this parameter only when paginating results and only in a subsequent + request after you receive a response with truncated results. Set it to + the value of `NextToken` from the response you just received. + """ + sort_by: str = ... + """ + Specifies the field to sort results by. Valid values are CREATED_AT, + NOT_AFTER, STATUS, RENEWAL_STATUS, EXPORTED, IN_USE, NOT_BEFORE, + KEY_ALGORITHM, TYPE, CERTIFICATE_ARN, COMMON_NAME, REVOKED_AT, + RENEWAL_ELIGIBILITY, ISSUED_AT, MANAGED_BY, EXPORT_OPTION, + VALIDATION_METHOD, and IMPORTED_AT. + """ + sort_order: str = ... + """ + Specifies the order of sorted results. Valid values are ASCENDING or + DESCENDING. + """ + +@dataclass(kw_only=True) +class SearchCertificatesOutput(_SerdeShape): + """Dataclass for SearchCertificatesOutput structure.""" + + results: list[CertificateSearchResult] | None = ... + """ + A list of certificate search results containing certificate ARNs, X.509 + attributes, and ACM metadata. + """ + next_token: str | None = ... + """ + When the list is truncated, this value is present and contains the value + to use for the `NextToken` parameter in a subsequent pagination request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class SearchCertificatesSortBy(UnknownEnumMixin, StrEnum): + """The field to sort search results by.""" + + CREATED_AT = "CREATED_AT" + NOT_AFTER = "NOT_AFTER" + STATUS = "STATUS" + RENEWAL_STATUS = "RENEWAL_STATUS" + EXPORTED = "EXPORTED" + IN_USE = "IN_USE" + NOT_BEFORE = "NOT_BEFORE" + KEY_ALGORITHM = "KEY_ALGORITHM" + TYPE = "TYPE" + CERTIFICATE_ARN = "CERTIFICATE_ARN" + COMMON_NAME = "COMMON_NAME" + REVOKED_AT = "REVOKED_AT" + RENEWAL_ELIGIBILITY = "RENEWAL_ELIGIBILITY" + ISSUED_AT = "ISSUED_AT" + MANAGED_BY = "MANAGED_BY" + EXPORT_OPTION = "EXPORT_OPTION" + VALIDATION_METHOD = "VALIDATION_METHOD" + IMPORTED_AT = "IMPORTED_AT" + ACME_ENDPOINT_ARN = "ACME_ENDPOINT_ARN" + ACME_ACCOUNT_ID = "ACME_ACCOUNT_ID" + CERTIFICATE_KEY_PAIR_ORIGIN = "CERTIFICATE_KEY_PAIR_ORIGIN" + +class SearchCertificatesSortOrder(UnknownEnumMixin, StrEnum): + """The order to sort search results.""" + + ASCENDING = "ASCENDING" + DESCENDING = "DESCENDING" + +@dataclass(kw_only=True) +class ServiceQuotaExceededException(ServiceError, _SerdeShape): + """A service quota has been exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class SortBy(UnknownEnumMixin, StrEnum): + CREATED_AT = "CREATED_AT" + +class SortOrder(UnknownEnumMixin, StrEnum): + ASCENDING = "ASCENDING" + DESCENDING = "DESCENDING" + +@dataclass +class SubjectAlternativeNameFilterDnsName(_SerdeShape): + """Filter by DNS name in subject alternative names.""" + + value: DnsNameFilter + +@dataclass +class SubjectAlternativeNameFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +SubjectAlternativeNameFilter = Union[ + SubjectAlternativeNameFilterDnsName | SubjectAlternativeNameFilterUnknown +] +"""Filters certificates by subject alternative name attributes.""" + +class _SubjectAlternativeNameFilterDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> SubjectAlternativeNameFilter: ... + +@dataclass +class SubjectFilterCommonName(_SerdeShape): + """Filter by common name in the subject.""" + + value: CommonNameFilter + +@dataclass +class SubjectFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +SubjectFilter = Union[SubjectFilterCommonName | SubjectFilterUnknown] +"""Filters certificates by subject attributes.""" + +class _SubjectFilterDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> SubjectFilter: ... + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + A key-value pair that identifies or specifies metadata about an ACM + resource. + """ + + key: str + """The key of the tag.""" + value: str | None = ... + """The value of the tag.""" + +@dataclass(kw_only=True) +class TagPolicyException(ServiceError, _SerdeShape): + """ + A specified tag did not comply with an existing tag policy and was + rejected. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """Dataclass for TagResourceInput structure.""" + + resource_arn: str | None = ... + """The ARN of the ACM resource to which the tag is to be applied.""" + tags: list[Tag] | None = ... + """The key-value pair that defines the tag to apply.""" + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ThrottlingException(ServiceError, _SerdeShape): + """The request was denied because it exceeded a quota.""" + + throttling_reasons: list[ThrottlingReason] | None = ... + """One or more reasons why the request was throttled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ThrottlingReason(_SerdeShape): + """A description of why a request was throttled.""" + + reason: str | None = ... + """A description of why a request was throttled.""" + resource: str | None = ... + """The resource that causes the request to be throttled.""" + +@dataclass(kw_only=True) +class TimestampRange(_SerdeShape): + """Specifies a time range for filtering certificates.""" + + start: datetime | None = ... + """The start of the time range. This value is inclusive.""" + end: datetime | None = ... + """The end of the time range. This value is inclusive.""" + +class TimeType(UnknownEnumMixin, StrEnum): + MINUTES = "MINUTES" + HOURS = "HOURS" + DAYS = "DAYS" + +@dataclass(kw_only=True) +class TooManyTagsException(ServiceError, _SerdeShape): + """ + The request contains too many tags. Try the request again with fewer + tags. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """Dataclass for UntagResourceInput structure.""" + + resource_arn: str | None = ... + """The ARN of the ACM resource from which the tag is to be removed.""" + tag_keys: list[str] | None = ... + """The key of each tag to remove.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAcmeDomainValidationInput(_SerdeShape): + """Dataclass for UpdateAcmeDomainValidationInput structure.""" + + acme_domain_validation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME domain validation to update.""" + prevalidation_options: PrevalidationOptions | None = ... + """The updated prevalidation options.""" + +@dataclass(kw_only=True) +class UpdateAcmeDomainValidationOutput(_SerdeShape): + """Dataclass for UpdateAcmeDomainValidationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAcmeEndpointInput(_SerdeShape): + """Dataclass for UpdateAcmeEndpointInput structure.""" + + acme_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACME endpoint to update.""" + authorization_behavior: str | None = ... + """The updated authorization behavior.""" + contact: str | None = ... + """The updated contact requirement.""" + certificate_authority: CertificateAuthority | None = ... + """The updated certificate authority configuration.""" + +@dataclass(kw_only=True) +class UpdateAcmeEndpointOutput(_SerdeShape): + """Dataclass for UpdateAcmeEndpointOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCertificateOptionsInput(_SerdeShape): + """Dataclass for UpdateCertificateOptionsInput structure.""" + + certificate_arn: str | None = ... + """ + ARN of the requested certificate to update. This must be of the form: + + `arn:aws:acm:us-east-1:`*`account`*`:certificate/`*`12345678-1234-1234-1234-123456789012`*` ` + """ + options: CertificateOptions | None = ... + """ + Use to update the options for your certificate. Currently, you can + change the domain validation method or specify whether to export your + certificate. For more information about migrating from email to DNS + validation, see [Migrate from email to DNS + validation](https://docs.aws.amazon.com/acm/latest/userguide/email-to-dns-migration.html). + """ + +@dataclass(kw_only=True) +class UpdateCertificateOptionsOutput(_SerdeShape): + """Dataclass for UpdateCertificateOptionsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class UpdateStatus(UnknownEnumMixin, StrEnum): + """ + The status of a certificate update. Possible values: + + - `PENDING_DOMAIN_VALIDATION` -- The update is waiting for domain + validation to complete. + + - `SUCCESS` -- The update completed successfully. + + - `FAILED` -- The update failed. + """ + + PENDING_DOMAIN_VALIDATION = "PENDING_DOMAIN_VALIDATION" + SUCCESS = "SUCCESS" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class UpdateSummary(_SerdeShape): + """ + Contains information about the most recent certificate update, such as a + domain validation method migration. This structure is returned as part + of the CertificateDetail response from DescribeCertificate. + """ + + status: str | None = ... + """ + The status of the certificate update. The following are valid values: + + - `PENDING_DOMAIN_VALIDATION` -- The certificate update is waiting for + domain ownership validation to complete. + + - `SUCCESS` -- The certificate was updated successfully. + + - `FAILED` -- The certificate update failed. + """ + type: str | None = ... + """ + The type of update that was requested for the certificate. The following + are valid values: + + - `DOMAIN_VALIDATION_METHOD` -- The update changes the domain validation + method for the certificate. + """ + domain_validation_method_update_summary: ( + DomainValidationMethodUpdateSummary | None + ) = ... + """ + Contains information about a domain validation method migration, + including the previous and target validation methods. + """ + requested_at: datetime | None = ... + """The time at which the certificate update was requested.""" + updated_at: datetime | None = ... + """The time at which the certificate update status was last changed.""" + +class UpdateType(UnknownEnumMixin, StrEnum): + """ + The type of certificate update. Valid values: + + - `DOMAIN_VALIDATION_METHOD` -- A change to the domain validation method + for the certificate. + """ + + DOMAIN_VALIDATION_METHOD = "DOMAIN_VALIDATION_METHOD" + +@dataclass +class ValidationChallengeEmailValidationChallenge(_SerdeShape): + """Contains the email addresses used for email-based domain validation.""" + + value: EmailValidationChallenge + +@dataclass +class ValidationChallengeDnsValidationChallenge(_SerdeShape): + """ + Contains the CNAME record that you must add to your DNS configuration to + validate domain ownership using DNS validation. + """ + + value: DnsValidationChallenge + +@dataclass +class ValidationChallengeUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +ValidationChallenge = Union[ + ValidationChallengeEmailValidationChallenge + | ValidationChallengeDnsValidationChallenge + | ValidationChallengeUnknown +] +""" +Contains the challenge details that you use to prove domain ownership. +Only one member is set, depending on the validation method. +""" + +class _ValidationChallengeDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> ValidationChallenge: ... + +@dataclass(kw_only=True) +class ValidationConfiguration(_SerdeShape): + """ + Contains the validation method, validation status, and validation + challenge details for a domain. This structure appears in + DomainValidationSummary as both the active and requested validation + configuration. + """ + + validation_method: str | None = ... + """ + The validation method for this configuration. Valid values: + + - `DNS` -- Validation using a CNAME record added to your DNS + configuration. + + - `EMAIL` -- Validation using an approval email sent to domain contacts. + + - `HTTP` -- Validation using an HTTP resource placed on your web server. + """ + validation_challenge: ValidationChallenge | None = ... + """ + The validation challenge details for this configuration. The structure + varies by validation method: for DNS validation, contains a + `DnsValidationChallenge` with the CNAME record to add; for email + validation, contains an `EmailValidationChallenge` with the validation + email addresses. + """ + validation_status: str | None = ... + """ + The validation status for this domain. Valid values: + + - `PENDING_VALIDATION` -- The domain is waiting for validation to + complete. + + - `SUCCESS` -- Validation completed successfully. + + - `FAILED` -- Validation failed. + """ + +@dataclass(kw_only=True) +class ValidationException(ServiceError, _SerdeShape): + """ + The supplied input failed to satisfy constraints of an Amazon Web + Services service. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ValidationMethod(UnknownEnumMixin, StrEnum): + EMAIL = "EMAIL" + DNS = "DNS" + HTTP = "HTTP" + +@dataclass +class X509AttributeFilterSubject(_SerdeShape): + """Filter by certificate subject.""" + + value: SubjectFilter + +@dataclass +class X509AttributeFilterSubjectAlternativeName(_SerdeShape): + """Filter by subject alternative names.""" + + value: SubjectAlternativeNameFilter + +@dataclass +class X509AttributeFilterExtendedKeyUsage(_SerdeShape): + """Filter by extended key usage.""" + + value: str + +@dataclass +class X509AttributeFilterKeyUsage(_SerdeShape): + """Filter by key usage.""" + + value: str + +@dataclass +class X509AttributeFilterKeyAlgorithm(_SerdeShape): + """Filter by key algorithm.""" + + value: str + +@dataclass +class X509AttributeFilterSerialNumber(_SerdeShape): + """Filter by serial number.""" + + value: str + +@dataclass +class X509AttributeFilterNotAfter(_SerdeShape): + """Filter by certificate expiration date. The start date is inclusive.""" + + value: TimestampRange + +@dataclass +class X509AttributeFilterNotBefore(_SerdeShape): + """Filter by certificate validity start date. The start date is inclusive.""" + + value: TimestampRange + +@dataclass +class X509AttributeFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +X509AttributeFilter = Union[ + X509AttributeFilterSubject + | X509AttributeFilterSubjectAlternativeName + | X509AttributeFilterExtendedKeyUsage + | X509AttributeFilterKeyUsage + | X509AttributeFilterKeyAlgorithm + | X509AttributeFilterSerialNumber + | X509AttributeFilterNotAfter + | X509AttributeFilterNotBefore + | X509AttributeFilterUnknown +] +"""Filters certificates by X.509 attributes.""" + +class _X509AttributeFilterDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> X509AttributeFilter: ... + +@dataclass(kw_only=True) +class X509Attributes(_SerdeShape): + """Contains X.509 certificate attributes extracted from the certificate.""" + + issuer: DistinguishedName | None = ... + """The distinguished name of the certificate issuer.""" + subject: DistinguishedName | None = ... + """The distinguished name of the certificate subject.""" + subject_alternative_names: list[GeneralName] | None = ... + """ + One or more domain names (subject alternative names) included in the + certificate. This list contains the domain names that are bound to the + public key that is contained in the certificate. The subject alternative + names include the canonical domain name (CN) of the certificate and + additional domain names that can be used to connect to the website. + """ + extended_key_usages: list[str] | None = ... + """ + Contains a list of Extended Key Usage X.509 v3 extension objects. Each + object specifies a purpose for which the certificate public key can be + used and consists of a name and an object identifier (OID). + """ + key_algorithm: str | None = ... + """The algorithm that was used to generate the public-private key pair.""" + key_usages: list[str] | None = ... + """ + A list of Key Usage X.509 v3 extension objects. Each object is a string + value that identifies the purpose of the public key contained in the + certificate. Possible extension values include DIGITAL_SIGNATURE, + KEY_ENCHIPHERMENT, NON_REPUDIATION, and more. + """ + serial_number: str | None = ... + """The serial number assigned by the certificate authority.""" + not_after: datetime | None = ... + """The time after which the certificate is not valid.""" + not_before: datetime | None = ... + """The time before which the certificate is not valid.""" + +ADD_TAGS_TO_CERTIFICATE: APIOperation[ + AddTagsToCertificateInput, AddTagsToCertificateOutput +] +CREATE_ACME_DOMAIN_VALIDATION: APIOperation[ + CreateAcmeDomainValidationInput, CreateAcmeDomainValidationOutput +] +CREATE_ACME_ENDPOINT: APIOperation[CreateAcmeEndpointInput, CreateAcmeEndpointOutput] +CREATE_ACME_EXTERNAL_ACCOUNT_BINDING: APIOperation[ + CreateAcmeExternalAccountBindingInput, CreateAcmeExternalAccountBindingOutput +] +DELETE_ACME_DOMAIN_VALIDATION: APIOperation[ + DeleteAcmeDomainValidationInput, DeleteAcmeDomainValidationOutput +] +DELETE_ACME_ENDPOINT: APIOperation[DeleteAcmeEndpointInput, DeleteAcmeEndpointOutput] +DELETE_ACME_EXTERNAL_ACCOUNT_BINDING: APIOperation[ + DeleteAcmeExternalAccountBindingInput, DeleteAcmeExternalAccountBindingOutput +] +DELETE_CERTIFICATE: APIOperation[DeleteCertificateInput, DeleteCertificateOutput] +DESCRIBE_ACME_ACCOUNT: APIOperation[DescribeAcmeAccountInput, DescribeAcmeAccountOutput] +DESCRIBE_ACME_DOMAIN_VALIDATION: APIOperation[ + DescribeAcmeDomainValidationInput, DescribeAcmeDomainValidationOutput +] +DESCRIBE_ACME_ENDPOINT: APIOperation[ + DescribeAcmeEndpointInput, DescribeAcmeEndpointOutput +] +DESCRIBE_ACME_EXTERNAL_ACCOUNT_BINDING: APIOperation[ + DescribeAcmeExternalAccountBindingInput, DescribeAcmeExternalAccountBindingOutput +] +DESCRIBE_CERTIFICATE: APIOperation[DescribeCertificateInput, DescribeCertificateOutput] +EXPORT_CERTIFICATE: APIOperation[ExportCertificateInput, ExportCertificateOutput] +GET_ACCOUNT_CONFIGURATION: APIOperation[ + GetAccountConfigurationInput, GetAccountConfigurationOutput +] +GET_ACME_EXTERNAL_ACCOUNT_BINDING_CREDENTIALS: APIOperation[ + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, +] +GET_CERTIFICATE: APIOperation[GetCertificateInput, GetCertificateOutput] +IMPORT_CERTIFICATE: APIOperation[ImportCertificateInput, ImportCertificateOutput] +LIST_ACME_ACCOUNTS: APIOperation[ListAcmeAccountsInput, ListAcmeAccountsOutput] +LIST_ACME_DOMAIN_VALIDATIONS: APIOperation[ + ListAcmeDomainValidationsInput, ListAcmeDomainValidationsOutput +] +LIST_ACME_ENDPOINTS: APIOperation[ListAcmeEndpointsInput, ListAcmeEndpointsOutput] +LIST_ACME_EXTERNAL_ACCOUNT_BINDINGS: APIOperation[ + ListAcmeExternalAccountBindingsInput, ListAcmeExternalAccountBindingsOutput +] +LIST_CERTIFICATE_DOMAIN_VALIDATIONS: APIOperation[ + ListCertificateDomainValidationsInput, ListCertificateDomainValidationsOutput +] +LIST_CERTIFICATES: APIOperation[ListCertificatesInput, ListCertificatesOutput] +LIST_TAGS_FOR_CERTIFICATE: APIOperation[ + ListTagsForCertificateInput, ListTagsForCertificateOutput +] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] +PUT_ACCOUNT_CONFIGURATION: APIOperation[ + PutAccountConfigurationInput, PutAccountConfigurationOutput +] +REMOVE_TAGS_FROM_CERTIFICATE: APIOperation[ + RemoveTagsFromCertificateInput, RemoveTagsFromCertificateOutput +] +RENEW_CERTIFICATE: APIOperation[RenewCertificateInput, RenewCertificateOutput] +REQUEST_CERTIFICATE: APIOperation[RequestCertificateInput, RequestCertificateOutput] +RESEND_VALIDATION_EMAIL: APIOperation[ + ResendValidationEmailInput, ResendValidationEmailOutput +] +REVOKE_ACME_ACCOUNT: APIOperation[RevokeAcmeAccountInput, RevokeAcmeAccountOutput] +REVOKE_ACME_EXTERNAL_ACCOUNT_BINDING: APIOperation[ + RevokeAcmeExternalAccountBindingInput, RevokeAcmeExternalAccountBindingOutput +] +REVOKE_CERTIFICATE: APIOperation[RevokeCertificateInput, RevokeCertificateOutput] +SEARCH_CERTIFICATES: APIOperation[SearchCertificatesInput, SearchCertificatesOutput] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] +UPDATE_ACME_DOMAIN_VALIDATION: APIOperation[ + UpdateAcmeDomainValidationInput, UpdateAcmeDomainValidationOutput +] +UPDATE_ACME_ENDPOINT: APIOperation[UpdateAcmeEndpointInput, UpdateAcmeEndpointOutput] +UPDATE_CERTIFICATE_OPTIONS: APIOperation[ + UpdateCertificateOptionsInput, UpdateCertificateOptionsOutput +] diff --git a/clients/aws-sdk-acm/src/aws_sdk_acm/user_agent.py b/clients/aws-sdk-acm/src/aws_sdk_acm/user_agent.py new file mode 100644 index 00000000..9596a86a --- /dev/null +++ b/clients/aws-sdk-acm/src/aws_sdk_acm/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import ACMConfig + + +def aws_user_agent_plugin(config: ACMConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="ACM", + ) + ) diff --git a/clients/aws-sdk-acm/tests/__init__.py b/clients/aws-sdk-acm/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-acm/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-acm/tests/_typecheck.py b/clients/aws-sdk-acm/tests/_typecheck.py new file mode 100644 index 00000000..f7f8587c --- /dev/null +++ b/clients/aws-sdk-acm/tests/_typecheck.py @@ -0,0 +1,259 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_acm.models import ( + AcmCertificateMetadata, + AcmeAccount, + AcmeAccountSummary, + AcmeDomainValidation, + AcmeDomainValidationSummary, + AcmeEndpoint, + AcmeEndpointSummary, + AcmeExternalAccountBinding, + AcmeExternalAccountBindingSummary, + AddTagsToCertificateInput, + AddTagsToCertificateOutput, + CertificateDetail, + CertificateOptions, + CertificateSearchResult, + CertificateSummary, + CommonNameFilter, + CreateAcmeDomainValidationInput, + CreateAcmeDomainValidationOutput, + CreateAcmeEndpointInput, + CreateAcmeEndpointOutput, + CreateAcmeExternalAccountBindingInput, + CreateAcmeExternalAccountBindingOutput, + CustomAttribute, + DeleteAcmeDomainValidationInput, + DeleteAcmeDomainValidationOutput, + DeleteAcmeEndpointInput, + DeleteAcmeEndpointOutput, + DeleteAcmeExternalAccountBindingInput, + DeleteAcmeExternalAccountBindingOutput, + DeleteCertificateInput, + DeleteCertificateOutput, + DescribeAcmeAccountInput, + DescribeAcmeAccountOutput, + DescribeAcmeDomainValidationInput, + DescribeAcmeDomainValidationOutput, + DescribeAcmeEndpointInput, + DescribeAcmeEndpointOutput, + DescribeAcmeExternalAccountBindingInput, + DescribeAcmeExternalAccountBindingOutput, + DescribeCertificateInput, + DescribeCertificateOutput, + DistinguishedName, + DnsNameFilter, + DnsPrevalidationDetails, + DnsPrevalidationOptions, + DnsValidationChallenge, + DomainScope, + DomainValidation, + DomainValidationMethodUpdateSummary, + DomainValidationOption, + DomainValidationSummary, + EmailValidationChallenge, + Expiration, + ExpiryEventsConfiguration, + ExportCertificateInput, + ExportCertificateOutput, + ExtendedKeyUsage, + FailureDetails, + Filters, + GetAccountConfigurationInput, + GetAccountConfigurationOutput, + GetAcmeExternalAccountBindingCredentialsInput, + GetAcmeExternalAccountBindingCredentialsOutput, + GetCertificateInput, + GetCertificateOutput, + HttpRedirect, + ImportCertificateInput, + ImportCertificateOutput, + KeyUsage, + ListAcmeAccountsInput, + ListAcmeAccountsOutput, + ListAcmeDomainValidationsInput, + ListAcmeDomainValidationsOutput, + ListAcmeEndpointsInput, + ListAcmeEndpointsOutput, + ListAcmeExternalAccountBindingsInput, + ListAcmeExternalAccountBindingsOutput, + ListCertificateDomainValidationsInput, + ListCertificateDomainValidationsOutput, + ListCertificatesInput, + ListCertificatesOutput, + ListTagsForCertificateInput, + ListTagsForCertificateOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + OtherName, + PublicCertificateAuthority, + PutAccountConfigurationInput, + PutAccountConfigurationOutput, + RemoveTagsFromCertificateInput, + RemoveTagsFromCertificateOutput, + RenewCertificateInput, + RenewCertificateOutput, + RenewalSummary, + RequestCertificateInput, + RequestCertificateOutput, + ResendValidationEmailInput, + ResendValidationEmailOutput, + ResourceRecord, + RevokeAcmeAccountInput, + RevokeAcmeAccountOutput, + RevokeAcmeExternalAccountBindingInput, + RevokeAcmeExternalAccountBindingOutput, + RevokeCertificateInput, + RevokeCertificateOutput, + SearchCertificatesInput, + SearchCertificatesOutput, + Tag, + TagResourceInput, + TagResourceOutput, + ThrottlingReason, + TimestampRange, + UntagResourceInput, + UntagResourceOutput, + UpdateAcmeDomainValidationInput, + UpdateAcmeDomainValidationOutput, + UpdateAcmeEndpointInput, + UpdateAcmeEndpointOutput, + UpdateCertificateOptionsInput, + UpdateCertificateOptionsOutput, + UpdateSummary, + ValidationConfiguration, + X509Attributes, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AcmCertificateMetadata() +AcmeAccount() +AcmeAccountSummary() +AcmeDomainValidation() +AcmeDomainValidationSummary() +AcmeEndpoint() +AcmeEndpointSummary() +AcmeExternalAccountBinding() +AcmeExternalAccountBindingSummary() +AddTagsToCertificateInput() +AddTagsToCertificateOutput() +CertificateDetail() +CertificateOptions() +CertificateSearchResult() +CertificateSummary() +CommonNameFilter(value=_, comparison_operator=_) +CreateAcmeDomainValidationInput() +CreateAcmeDomainValidationOutput(acme_domain_validation_arn=_) +CreateAcmeEndpointInput() +CreateAcmeEndpointOutput() +CreateAcmeExternalAccountBindingInput() +CreateAcmeExternalAccountBindingOutput() +CustomAttribute() +DeleteAcmeDomainValidationInput() +DeleteAcmeDomainValidationOutput() +DeleteAcmeEndpointInput() +DeleteAcmeEndpointOutput() +DeleteAcmeExternalAccountBindingInput() +DeleteAcmeExternalAccountBindingOutput() +DeleteCertificateInput() +DeleteCertificateOutput() +DescribeAcmeAccountInput() +DescribeAcmeAccountOutput() +DescribeAcmeDomainValidationInput() +DescribeAcmeDomainValidationOutput() +DescribeAcmeEndpointInput() +DescribeAcmeEndpointOutput() +DescribeAcmeExternalAccountBindingInput() +DescribeAcmeExternalAccountBindingOutput() +DescribeCertificateInput() +DescribeCertificateOutput() +DistinguishedName() +DnsNameFilter(value=_, comparison_operator=_) +DnsPrevalidationDetails() +DnsPrevalidationOptions() +DnsValidationChallenge() +DomainScope() +DomainValidation(domain_name=_) +DomainValidationMethodUpdateSummary() +DomainValidationOption(domain_name=_, validation_domain=_) +DomainValidationSummary(domain_name=_) +EmailValidationChallenge() +Expiration(value=_, type=_) +ExpiryEventsConfiguration() +ExportCertificateInput() +ExportCertificateOutput() +ExtendedKeyUsage() +FailureDetails() +Filters() +GetAccountConfigurationInput() +GetAccountConfigurationOutput() +GetAcmeExternalAccountBindingCredentialsInput() +GetAcmeExternalAccountBindingCredentialsOutput() +GetCertificateInput() +GetCertificateOutput() +HttpRedirect() +ImportCertificateInput() +ImportCertificateOutput() +KeyUsage() +ListAcmeAccountsInput() +ListAcmeAccountsOutput() +ListAcmeDomainValidationsInput() +ListAcmeDomainValidationsOutput() +ListAcmeEndpointsInput() +ListAcmeEndpointsOutput() +ListAcmeExternalAccountBindingsInput() +ListAcmeExternalAccountBindingsOutput() +ListCertificateDomainValidationsInput() +ListCertificateDomainValidationsOutput() +ListCertificatesInput() +ListCertificatesOutput() +ListTagsForCertificateInput() +ListTagsForCertificateOutput() +ListTagsForResourceInput() +ListTagsForResourceOutput() +OtherName() +PublicCertificateAuthority() +PutAccountConfigurationInput() +PutAccountConfigurationOutput() +RemoveTagsFromCertificateInput() +RemoveTagsFromCertificateOutput() +RenewalSummary(renewal_status=_, domain_validation_options=_, updated_at=_) +RenewCertificateInput() +RenewCertificateOutput() +RequestCertificateInput() +RequestCertificateOutput() +ResendValidationEmailInput() +ResendValidationEmailOutput() +ResourceRecord(name=_, type=_, value=_) +RevokeAcmeAccountInput() +RevokeAcmeAccountOutput() +RevokeAcmeExternalAccountBindingInput() +RevokeAcmeExternalAccountBindingOutput() +RevokeCertificateInput() +RevokeCertificateOutput() +SearchCertificatesInput() +SearchCertificatesOutput() +Tag(key=_) +TagResourceInput() +TagResourceOutput() +ThrottlingReason() +TimestampRange() +UntagResourceInput() +UntagResourceOutput() +UpdateAcmeDomainValidationInput() +UpdateAcmeDomainValidationOutput() +UpdateAcmeEndpointInput() +UpdateAcmeEndpointOutput() +UpdateCertificateOptionsInput() +UpdateCertificateOptionsOutput() +UpdateSummary() +ValidationConfiguration() +X509Attributes() diff --git a/clients/aws-sdk-acm/tests/test_awsjson11_protocol.py b/clients/aws-sdk-acm/tests/test_awsjson11_protocol.py new file mode 100644 index 00000000..7c6f7bd6 --- /dev/null +++ b/clients/aws-sdk-acm/tests/test_awsjson11_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_acm.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-acm/tests/test_endpoints.py b/clients/aws-sdk-acm/tests/test_endpoints.py new file mode 100644 index 00000000..fe26bb2a --- /dev/null +++ b/clients/aws-sdk-acm/tests/test_endpoints.py @@ -0,0 +1,596 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_acm.aio.client import AsyncACMClient +from aws_sdk_acm.aio.config import AsyncACMConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.acm#CertificateManager. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_fips_endpoint": None, + "use_dualstack_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncACMConfig: + return await AsyncACMConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncACMClient: + return AsyncACMClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + { + "Region": "af-south-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-northeast-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-northeast-2", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-northeast-3", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-south-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-southeast-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-southeast-2", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ap-southeast-3", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ca-central-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-central-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-north-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-south-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-west-2", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "eu-west-3", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "me-south-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "sa-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-east-2", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "ca-central-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-2", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": True, + "ServiceType": "ACM", + }, + { + "endpoint": { + "url": "https://acm-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": True, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.cn-north-1.api.amazonwebservices.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": True, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": True, + "ServiceType": "ACM", + }, + {"endpoint": {"url": "https://acm.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "ServiceType": "ACM", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with FIPS disabled and dualstack enabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + {"endpoint": {"url": "https://acm-acme.us-east-1.api.aws"}}, + id="ACM-ACME standard endpoint for us-east-1", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + {"error": "FIPS endpoints are not available for ACME operations"}, + id="ACM-ACME FIPS returns error", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + "Endpoint": "https://custom.example.com", + }, + {"endpoint": {"url": "https://custom.example.com"}}, + id="ACM-ACME custom endpoint", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + {"endpoint": {"url": "https://acm-acme.us-gov-west-1.api.aws"}}, + id="ACM-ACME standard endpoint for us-gov-west-1", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + {"endpoint": {"url": "https://acm-acme.us-gov-east-1.api.aws"}}, + id="ACM-ACME standard endpoint for us-gov-east-1", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + { + "error": "ACME operations are only available in the aws and aws-us-gov partitions" + }, + id="ACM-ACME in cn-north-1 returns partition error", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": False, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + { + "error": "ACME operations are only available in the aws and aws-us-gov partitions" + }, + id="ACM-ACME in cn-northwest-1 returns partition error", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": True, + "ServiceType": "ACM-ACME", + }, + {"endpoint": {"url": "https://acm-acme.us-gov-west-1.api.aws"}}, + id="ACM-ACME with DualStack enabled for us-gov-west-1", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": True, + "UseDualStack": False, + "ServiceType": "ACM-ACME", + }, + {"error": "FIPS endpoints are not available for ACME operations"}, + id="ACM-ACME FIPS in us-gov-west-1 returns error", + ), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-acm/tests/test_model_conformance.py b/clients/aws-sdk-acm/tests/test_model_conformance.py new file mode 100644 index 00000000..6d24fb46 --- /dev/null +++ b/clients/aws-sdk-acm/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_acm import models as _models +from aws_sdk_acm._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-appconfigdata/README.md b/clients/aws-sdk-appconfigdata/README.md new file mode 100644 index 00000000..b1943d33 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/README.md @@ -0,0 +1,63 @@ + + +## AWS AppConfig Data Client + +aws_sdk_appconfigdata client + +### Documentation + +AppConfig Data provides the data plane APIs your application uses to +retrieve configuration data. Here's how it works: + +Your application retrieves configuration data by first establishing a +configuration session using the AppConfig Data StartConfigurationSession +API action. Your session's client then makes periodic calls to +GetLatestConfiguration to check for and retrieve the latest data +available. + +When calling `StartConfigurationSession`, your code sends the following +information: + +- Identifiers (ID or name) of an AppConfig application, environment, and + configuration profile that the session tracks. + +- (Optional) The minimum amount of time the session's client must wait + between calls to `GetLatestConfiguration`. + +In response, AppConfig provides an `InitialConfigurationToken` to be +given to the session's client and used the first time it calls +`GetLatestConfiguration` for that session. + +Warning: + This token should only be used once in your first call to + `GetLatestConfiguration`. You *must* use the new token in the + `GetLatestConfiguration` response (`NextPollConfigurationToken`) in each + subsequent call to `GetLatestConfiguration`. + +When calling `GetLatestConfiguration`, your client code sends the most +recent `ConfigurationToken` value it has and receives in response: + +- `NextPollConfigurationToken`: the `ConfigurationToken` value to use on + the next call to `GetLatestConfiguration`. + +- `NextPollIntervalInSeconds`: the duration the client should wait + before making its next call to `GetLatestConfiguration`. This duration + may vary over the course of the session, so it should be used instead + of the value sent on the `StartConfigurationSession` call. + +- The configuration: the latest data intended for the session. This may + be empty if the client already has the latest version of the + configuration. + +Warning: + The `InitialConfigurationToken` and `NextPollConfigurationToken` should + only be used once. To support long poll use cases, the tokens are valid + for up to 24 hours. If a `GetLatestConfiguration` call uses an expired + token, the system returns `BadRequestException`. + +For more information and to view example CLI commands that show how to +retrieve a configuration using the AppConfig Data +`StartConfigurationSession` and `GetLatestConfiguration` API actions, +see [Retrieving the +configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) +in the *AppConfig User Guide*. diff --git a/clients/aws-sdk-appconfigdata/pyproject.toml b/clients/aws-sdk-appconfigdata/pyproject.toml new file mode 100644 index 00000000..f278b0c3 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_appconfigdata" +version = "0.12.0" +description = "aws_sdk_appconfigdata client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_appconfigdata"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/__init__.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/__init__.py new file mode 100644 index 00000000..869870d8 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/__init__.py @@ -0,0 +1,34 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AppConfigDataClient + from .config import AppConfigDataConfig + from .aio.client import AsyncAppConfigDataClient + from .aio.config import AsyncAppConfigDataConfig + +__all__ = [ + "AppConfigDataClient", + "AppConfigDataConfig", + "AsyncAppConfigDataClient", + "AsyncAppConfigDataConfig", +] + +_EXPORTS = { + "AppConfigDataClient": ".client", + "AppConfigDataConfig": ".config", + "AsyncAppConfigDataClient": ".aio.client", + "AsyncAppConfigDataConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/__init__.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/endpoints.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/endpoints.py new file mode 100644 index 00000000..a27e6915 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/endpoints.py @@ -0,0 +1,63 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.appconfigdata#AppConfigData.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 7: stringEquals(PartitionResult#name, "aws-us-gov") + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://appconfigdata.{Region}.amazonaws.com", None, ()), # 6 + (6, "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 7 + (5, "FIPS is enabled but this partition does not support FIPS"), # 8 + (6, "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 + (5, "DualStack is enabled but this partition does not support DualStack"), # 10 + (6, "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 11 + (5, "Invalid Configuration: Missing Region"), # 12 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 13, 3, + 1, 4, 100_000_012, + 2, 5, 100_000_012, + 3, 8, 6, + 4, 7, 100_000_011, + 5, 100_000_009, 100_000_010, + 4, 11, 9, + 6, 10, 100_000_008, + 7, 100_000_006, 100_000_007, + 5, 12, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 14, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/schemas.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/schemas.py new file mode 100644 index 00000000..e37f78c7 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/_private/schemas.py @@ -0,0 +1,258 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.appconfigdata" +_I = "Id" +_S = "String" +_IPP = "InvalidParameterProblem" +_IPD = "InvalidParameterDetail" +_P = "Problem" +_IPM = "InvalidParameterMap" +_k = "key" +_v = "value" +_BRD = "BadRequestDetails" +_IP = "InvalidParameters" +_BRR = "BadRequestReason" +_BRE = "BadRequestException" +_s = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_M = "Message" +_R = "Reason" +_D = "Details" +_ISE = "InternalServerException" +_se = "server" +_SM = "StringMap" +_RT = "ResourceType" +_RNFE = "ResourceNotFoundException" +_RB = "ReferencedBy" +_Id = "Identifier" +_OPS = "OptionalPollSeconds" +_SCSI = "StartConfigurationSessionInput" +_sSI = "smithy.synthetic#originalShapeId" +_cSCSR = "com.amazonaws.appconfigdata#StartConfigurationSessionRequest" +_sm = "smithy.api#input" +_AI = "ApplicationIdentifier" +_smi = "smithy.api#required" +_EI = "EnvironmentIdentifier" +_CPI = "ConfigurationProfileIdentifier" +_RMPIIS = "RequiredMinimumPollIntervalInSeconds" +_T = "Token" +_SCSO = "StartConfigurationSessionOutput" +_cSCSRo = "com.amazonaws.appconfigdata#StartConfigurationSessionResponse" +_smit = "smithy.api#output" +_ICT = "InitialConfigurationToken" +_TE = "ThrottlingException" +_SCS = "StartConfigurationSession" +_smith = "smithy.api#http" +_GLCI = "GetLatestConfigurationInput" +_cGLCR = "com.amazonaws.appconfigdata#GetLatestConfigurationRequest" +_CT = "ConfigurationToken" +_sQ = "smithy.api#httpQuery" +_ct = "configuration_token" +_SB = "SensitiveBlob" +_smithy = "smithy.api#sensitive" +_In = "Integer" +_smithya = "smithy.api#default" +_GLCO = "GetLatestConfigurationOutput" +_cGLCRo = "com.amazonaws.appconfigdata#GetLatestConfigurationResponse" +_NPCT = "NextPollConfigurationToken" +_sH = "smithy.api#httpHeader" +_NPCT_ = "Next-Poll-Configuration-Token" +_NPIIS = "NextPollIntervalInSeconds" +_NPIIS_ = "Next-Poll-Interval-In-Seconds" +_CTo = "ContentType" +_CT_ = "Content-Type" +_C = "Configuration" +_sP = "smithy.api#httpPayload" +_VL = "VersionLabel" +_VL_ = "Version-Label" +_GLC = "GetLatestConfiguration" +_ACD = "AppConfigData" +_a = "aws.auth#sigv4" +_aw = "aws.api#service" +_aJ = "aws.protocols#restJson1" + +ID: StaticSchema = (3, n0, _I, 0) + +STRING: StaticSchema = (3, n0, _S, 0) + +INVALID_PARAMETER_PROBLEM: StaticSchema = (3, n0, _IPP, 0) + +INVALID_PARAMETER_DETAIL: StaticSchema = ( + 18, + n0, + _IPD, + 0, + (_P,), + ((INVALID_PARAMETER_PROBLEM, 0),), +) + +INVALID_PARAMETER_MAP: StaticSchema = ( + 17, + n0, + _IPM, + 0, + (_k, _v), + ((STRING, 0), (INVALID_PARAMETER_DETAIL, 0)), +) + +BAD_REQUEST_DETAILS: StaticSchema = ( + 19, + n0, + _BRD, + 0, + (_IP,), + ((INVALID_PARAMETER_MAP, 0),), +) + +BAD_REQUEST_REASON: StaticSchema = (3, n0, _BRR, 0) + +BAD_REQUEST_EXCEPTION: StaticSchema = ( + 18, + n0, + _BRE, + {_s: _c, _sE: 400}, + (_M, _R, _D), + ((STRING, 0), (BAD_REQUEST_REASON, 0), (BAD_REQUEST_DETAILS, 0)), +) + +INTERNAL_SERVER_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISE, + {_s: _se, _sE: 500}, + (_M,), + ((STRING, 0),), +) + +STRING_MAP: StaticSchema = (17, n0, _SM, 0, (_k, _v), ((STRING, 0), (STRING, 0))) + +RESOURCE_TYPE: StaticSchema = (3, n0, _RT, 0) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_s: _c, _sE: 404}, + (_M, _RT, _RB), + ((STRING, 0), (RESOURCE_TYPE, 0), (STRING_MAP, 0)), +) + +IDENTIFIER: StaticSchema = (3, n0, _Id, 0) + +OPTIONAL_POLL_SECONDS: StaticSchema = (7, n0, _OPS, 0) + +START_CONFIGURATION_SESSION_INPUT: StaticSchema = ( + 18, + n0, + _SCSI, + {_sSI: _cSCSR, _sm: None}, + (_AI, _EI, _CPI, _RMPIIS), + ((IDENTIFIER, 1), (IDENTIFIER, 1), (IDENTIFIER, 1), (OPTIONAL_POLL_SECONDS, 0)), +) + +TOKEN: StaticSchema = (3, n0, _T, 0) + +START_CONFIGURATION_SESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _SCSO, + {_sSI: _cSCSRo, _smit: None}, + (_ICT,), + ((TOKEN, 0),), +) + +THROTTLING_EXCEPTION: StaticSchema = ( + 18, + n0, + _TE, + {_s: _c, _sE: 429}, + (_M,), + ((STRING, 0),), +) + +START_CONFIGURATION_SESSION: StaticOperationSchema = ( + 23, + n0, + _SCS, + { + _smith: MappingProxyType( + {"method": "POST", "uri": "/configurationsessions", "code": 201} + ) + }, + START_CONFIGURATION_SESSION_INPUT, + START_CONFIGURATION_SESSION_OUTPUT, + ( + BAD_REQUEST_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + ), +) + +GET_LATEST_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GLCI, + {_sSI: _cGLCR, _sm: None}, + (_CT,), + ((TOKEN, {_sQ: _ct, _smi: None}),), +) + +SENSITIVE_BLOB: StaticSchema = (1, n0, _SB, 4) + +INTEGER: StaticSchema = (7, n0, _In, {_smithya: 0}) + +GET_LATEST_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GLCO, + {_sSI: _cGLCRo, _smit: None}, + (_NPCT, _NPIIS, _CTo, _C, _VL), + ( + (TOKEN, {_sH: _NPCT_}), + (INTEGER, {_smithya: 0, _sH: _NPIIS_}), + (STRING, {_sH: _CT_}), + (SENSITIVE_BLOB, 16), + (STRING, {_sH: _VL_}), + ), +) + +GET_LATEST_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GLC, + {_smith: MappingProxyType({"method": "GET", "uri": "/configuration", "code": 200})}, + GET_LATEST_CONFIGURATION_INPUT, + GET_LATEST_CONFIGURATION_OUTPUT, + ( + BAD_REQUEST_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + ), +) + +APP_CONFIG_DATA: StaticSchema = ( + 21, + n0, + _ACD, + { + _a: MappingProxyType({"name": "appconfig"}), + _aw: MappingProxyType( + { + "sdkId": "AppConfigData", + "arnNamespace": "appconfigdata", + "cloudFormationName": "AppConfigData", + "cloudTrailEventSource": "appconfigdata.amazonaws.com", + "endpointPrefix": "appconfigdata", + } + ), + _aJ: None, + }, +) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/__init__.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/__init__.py new file mode 100644 index 00000000..1d874d03 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/__init__.py @@ -0,0 +1,22 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncAppConfigDataClient + from .config import AsyncAppConfigDataConfig + +__all__ = ["AsyncAppConfigDataClient", "AsyncAppConfigDataConfig"] + +_EXPORTS = { + "AsyncAppConfigDataClient": ".client", + "AsyncAppConfigDataConfig": ".config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/client.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/client.py new file mode 100644 index 00000000..44868757 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/client.py @@ -0,0 +1,177 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncAppConfigDataConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + GetLatestConfigurationInput, + GetLatestConfigurationOutput, + StartConfigurationSessionInput, + StartConfigurationSessionOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncAppConfigDataClient(AsyncClient[AsyncAppConfigDataConfig]): + """ + AppConfig Data provides the data plane APIs your application uses to + retrieve configuration data. Here's how it works: + + Your application retrieves configuration data by first establishing a + configuration session using the AppConfig Data StartConfigurationSession + API action. Your session's client then makes periodic calls to + GetLatestConfiguration to check for and retrieve the latest data + available. + + When calling `StartConfigurationSession`, your code sends the following + information: + + - Identifiers (ID or name) of an AppConfig application, environment, and + configuration profile that the session tracks. + + - (Optional) The minimum amount of time the session's client must wait + between calls to `GetLatestConfiguration`. + + In response, AppConfig provides an `InitialConfigurationToken` to be + given to the session's client and used the first time it calls + `GetLatestConfiguration` for that session. + + Warning: + This token should only be used once in your first call to + `GetLatestConfiguration`. You *must* use the new token in the + `GetLatestConfiguration` response (`NextPollConfigurationToken`) in each + subsequent call to `GetLatestConfiguration`. + + When calling `GetLatestConfiguration`, your client code sends the most + recent `ConfigurationToken` value it has and receives in response: + + - `NextPollConfigurationToken`: the `ConfigurationToken` value to use on + the next call to `GetLatestConfiguration`. + + - `NextPollIntervalInSeconds`: the duration the client should wait + before making its next call to `GetLatestConfiguration`. This duration + may vary over the course of the session, so it should be used instead + of the value sent on the `StartConfigurationSession` call. + + - The configuration: the latest data intended for the session. This may + be empty if the client already has the latest version of the + configuration. + + Warning: + The `InitialConfigurationToken` and `NextPollConfigurationToken` should + only be used once. To support long poll use cases, the tokens are valid + for up to 24 hours. If a `GetLatestConfiguration` call uses an expired + token, the system returns `BadRequestException`. + + For more information and to view example CLI commands that show how to + retrieve a configuration using the AppConfig Data + `StartConfigurationSession` and `GetLatestConfiguration` API actions, + see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def get_latest_configuration( + self, input: GetLatestConfigurationInput, plugins: list[Plugin] | None = None + ) -> GetLatestConfigurationOutput: + """ + Retrieves the latest deployed configuration. This API may return empty + configuration data if the client already has the latest version. For + more information about this API action and to view example CLI commands + that show how to use it with the StartConfigurationSession API action, + see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + + Warning: + Note the following important information. + + - Each configuration token is only valid for one call to + `GetLatestConfiguration`. The `GetLatestConfiguration` response + includes a `NextPollConfigurationToken` that should always replace the + token used for the just-completed call in preparation for the next + one. + + - `GetLatestConfiguration` is a priced call. For more information, see + [Pricing](https://aws.amazon.com/systems-manager/pricing/). + + Args: + input: + An instance of `GetLatestConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLatestConfigurationOutput`. + """ + return await self._invoke(input, _models.GET_LATEST_CONFIGURATION, [], plugins) + + async def start_configuration_session( + self, input: StartConfigurationSessionInput, plugins: list[Plugin] | None = None + ) -> StartConfigurationSessionOutput: + """ + Starts a configuration session used to retrieve a deployed + configuration. For more information about this API action and to view + example CLI commands that show how to use it with the + GetLatestConfiguration API action, see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + + Args: + input: + An instance of `StartConfigurationSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartConfigurationSessionOutput`. + """ + return await self._invoke( + input, _models.START_CONFIGURATION_SESSION, [], plugins + ) + + async def _new_config(self) -> AsyncAppConfigDataConfig: + return await AsyncAppConfigDataConfig.resolve() + + async def _post_setup(self, config: AsyncAppConfigDataConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/config.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/config.py new file mode 100644 index 00000000..a9f1d253 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/config.py @@ -0,0 +1,234 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncRestJsonClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import APP_CONFIG_DATA +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + GetLatestConfigurationInput, + GetLatestConfigurationOutput, + StartConfigurationSessionInput, + StartConfigurationSessionOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + GetLatestConfigurationInput, GetLatestConfigurationOutput, Any, Any + ], + Interceptor[ + StartConfigurationSessionInput, StartConfigurationSessionOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.appconfigdata", + service_target="AppConfigData", + service_schema=APP_CONFIG_DATA, +) + + +class _AsyncAppConfigDataConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncAppConfigDataConfig(AsyncAwsConfig): + """AppConfigData configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("appconfigdata").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncRestJsonClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="appconfig") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncAppConfigDataConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncAppConfigDataConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/user_agent.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/user_agent.py new file mode 100644 index 00000000..fb01bbfa --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncAppConfigDataConfig + + +def aws_user_agent_plugin(config: AsyncAppConfigDataConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="AppConfigData", + ) + ) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/auth.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/client.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/client.py new file mode 100644 index 00000000..cda36a3c --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/client.py @@ -0,0 +1,175 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import AppConfigDataConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + GetLatestConfigurationInput, + GetLatestConfigurationOutput, + StartConfigurationSessionInput, + StartConfigurationSessionOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AppConfigDataClient(Client[AppConfigDataConfig]): + """ + AppConfig Data provides the data plane APIs your application uses to + retrieve configuration data. Here's how it works: + + Your application retrieves configuration data by first establishing a + configuration session using the AppConfig Data StartConfigurationSession + API action. Your session's client then makes periodic calls to + GetLatestConfiguration to check for and retrieve the latest data + available. + + When calling `StartConfigurationSession`, your code sends the following + information: + + - Identifiers (ID or name) of an AppConfig application, environment, and + configuration profile that the session tracks. + + - (Optional) The minimum amount of time the session's client must wait + between calls to `GetLatestConfiguration`. + + In response, AppConfig provides an `InitialConfigurationToken` to be + given to the session's client and used the first time it calls + `GetLatestConfiguration` for that session. + + Warning: + This token should only be used once in your first call to + `GetLatestConfiguration`. You *must* use the new token in the + `GetLatestConfiguration` response (`NextPollConfigurationToken`) in each + subsequent call to `GetLatestConfiguration`. + + When calling `GetLatestConfiguration`, your client code sends the most + recent `ConfigurationToken` value it has and receives in response: + + - `NextPollConfigurationToken`: the `ConfigurationToken` value to use on + the next call to `GetLatestConfiguration`. + + - `NextPollIntervalInSeconds`: the duration the client should wait + before making its next call to `GetLatestConfiguration`. This duration + may vary over the course of the session, so it should be used instead + of the value sent on the `StartConfigurationSession` call. + + - The configuration: the latest data intended for the session. This may + be empty if the client already has the latest version of the + configuration. + + Warning: + The `InitialConfigurationToken` and `NextPollConfigurationToken` should + only be used once. To support long poll use cases, the tokens are valid + for up to 24 hours. If a `GetLatestConfiguration` call uses an expired + token, the system returns `BadRequestException`. + + For more information and to view example CLI commands that show how to + retrieve a configuration using the AppConfig Data + `StartConfigurationSession` and `GetLatestConfiguration` API actions, + see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def get_latest_configuration( + self, input: GetLatestConfigurationInput, plugins: list[Plugin] | None = None + ) -> GetLatestConfigurationOutput: + """ + Retrieves the latest deployed configuration. This API may return empty + configuration data if the client already has the latest version. For + more information about this API action and to view example CLI commands + that show how to use it with the StartConfigurationSession API action, + see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + + Warning: + Note the following important information. + + - Each configuration token is only valid for one call to + `GetLatestConfiguration`. The `GetLatestConfiguration` response + includes a `NextPollConfigurationToken` that should always replace the + token used for the just-completed call in preparation for the next + one. + + - `GetLatestConfiguration` is a priced call. For more information, see + [Pricing](https://aws.amazon.com/systems-manager/pricing/). + + Args: + input: + An instance of `GetLatestConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLatestConfigurationOutput`. + """ + return self._invoke(input, _models.GET_LATEST_CONFIGURATION, [], plugins) + + def start_configuration_session( + self, input: StartConfigurationSessionInput, plugins: list[Plugin] | None = None + ) -> StartConfigurationSessionOutput: + """ + Starts a configuration session used to retrieve a deployed + configuration. For more information about this API action and to view + example CLI commands that show how to use it with the + GetLatestConfiguration API action, see [Retrieving the + configuration](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration) + in the *AppConfig User Guide*. + + Args: + input: + An instance of `StartConfigurationSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartConfigurationSessionOutput`. + """ + return self._invoke(input, _models.START_CONFIGURATION_SESSION, [], plugins) + + def _new_config(self) -> AppConfigDataConfig: + return AppConfigDataConfig.resolve() + + def _post_setup(self, config: AppConfigDataConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/config.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/config.py new file mode 100644 index 00000000..6d7bf384 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/config.py @@ -0,0 +1,229 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import RestJsonClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import APP_CONFIG_DATA +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + GetLatestConfigurationInput, + GetLatestConfigurationOutput, + StartConfigurationSessionInput, + StartConfigurationSessionOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + GetLatestConfigurationInput, GetLatestConfigurationOutput, Any, Any + ], + Interceptor[ + StartConfigurationSessionInput, StartConfigurationSessionOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.appconfigdata", + service_target="AppConfigData", + service_schema=APP_CONFIG_DATA, +) + + +class _AppConfigDataConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AppConfigDataConfig(AwsConfig): + """AppConfigData configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("appconfigdata").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: RestJsonClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="appconfig") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AppConfigDataConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AppConfigDataConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.py new file mode 100644 index 00000000..5bec795c --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.py @@ -0,0 +1,99 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "BadRequestDetails": "BAD_REQUEST_DETAILS", + "BadRequestDetailsInvalidParameters": "BAD_REQUEST_DETAILS", + "BadRequestDetailsUnknown": "BAD_REQUEST_DETAILS", + "BadRequestException": "BAD_REQUEST_EXCEPTION", + "GetLatestConfigurationInput": "GET_LATEST_CONFIGURATION_INPUT", + "GetLatestConfigurationOutput": "GET_LATEST_CONFIGURATION_OUTPUT", + "InternalServerException": "INTERNAL_SERVER_EXCEPTION", + "InvalidParameterDetail": "INVALID_PARAMETER_DETAIL", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "StartConfigurationSessionInput": "START_CONFIGURATION_SESSION_INPUT", + "StartConfigurationSessionOutput": "START_CONFIGURATION_SESSION_OUTPUT", + "ThrottlingException": "THROTTLING_EXCEPTION", + }, + shape_names=frozenset( + { + "BadRequestDetails", + "BadRequestException", + "GetLatestConfigurationInput", + "GetLatestConfigurationOutput", + "InternalServerException", + "InvalidParameterDetail", + "ResourceNotFoundException", + "StartConfigurationSessionInput", + "StartConfigurationSessionOutput", + "ThrottlingException", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ("GET_LATEST_CONFIGURATION", "START_CONFIGURATION_SESSION") +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["START_CONFIGURATION_SESSION"] = ( + "START_CONFIGURATION_SESSION", + ( + "com.amazonaws.appconfigdata#BadRequestException", + "com.amazonaws.appconfigdata#InternalServerException", + "com.amazonaws.appconfigdata#ResourceNotFoundException", + "com.amazonaws.appconfigdata#ThrottlingException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_LATEST_CONFIGURATION"] = ( + "GET_LATEST_CONFIGURATION", + ( + "com.amazonaws.appconfigdata#BadRequestException", + "com.amazonaws.appconfigdata#InternalServerException", + "com.amazonaws.appconfigdata#ResourceNotFoundException", + "com.amazonaws.appconfigdata#ThrottlingException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.pyi b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.pyi new file mode 100644 index 00000000..3762776e --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/models.pyi @@ -0,0 +1,229 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass +class BadRequestDetailsInvalidParameters(_SerdeShape): + """One or more specified parameters are not valid for the call.""" + + value: dict[str, InvalidParameterDetail] + +@dataclass +class BadRequestDetailsUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +BadRequestDetails = Union[BadRequestDetailsInvalidParameters | BadRequestDetailsUnknown] +""" +Detailed information about the input that failed to satisfy the +constraints specified by a call. +""" + +class _BadRequestDetailsDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> BadRequestDetails: ... + +@dataclass(kw_only=True) +class BadRequestException(ServiceError, _SerdeShape): + """The input fails to satisfy the constraints specified by the service.""" + + reason: str | None = ... + """Code indicating the reason the request was invalid.""" + details: BadRequestDetails | None = ... + """Details describing why the request was invalid.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetLatestConfigurationInput(_SerdeShape): + """Dataclass for GetLatestConfigurationInput structure.""" + + configuration_token: str | None = ... + """ + Token describing the current state of the configuration session. To + obtain a token, first call the StartConfigurationSession API. Note that + every call to `GetLatestConfiguration` will return a new + `ConfigurationToken` (`NextPollConfigurationToken` in the response) and + *must* be provided to subsequent `GetLatestConfiguration` API calls. + + Warning: + This token should only be used once. To support long poll use cases, the + token is valid for up to 24 hours. If a `GetLatestConfiguration` call + uses an expired token, the system returns `BadRequestException`. + """ + +@dataclass(kw_only=True) +class GetLatestConfigurationOutput(_SerdeShape): + """Dataclass for GetLatestConfigurationOutput structure.""" + + next_poll_configuration_token: str | None = ... + """ + The latest token describing the current state of the configuration + session. This *must* be provided to the next call to + `GetLatestConfiguration.` + + Warning: + This token should only be used once. To support long poll use cases, the + token is valid for up to 24 hours. If a `GetLatestConfiguration` call + uses an expired token, the system returns `BadRequestException`. + """ + next_poll_interval_in_seconds: int = ... + """ + The amount of time the client should wait before polling for + configuration updates again. Use `RequiredMinimumPollIntervalInSeconds` + to set the desired poll interval. + """ + content_type: str | None = ... + """A standard MIME type describing the format of the configuration content.""" + configuration: bytes | None = ... + """ + The data of the configuration. This may be empty if the client already + has the latest version of configuration. + """ + version_label: str | None = ... + """ + The user-defined label for the AppConfig hosted configuration version. + This attribute doesn't apply if the configuration is not from an + AppConfig hosted configuration version. If the client already has the + latest version of the configuration data, this value is empty. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InternalServerException(ServiceError, _SerdeShape): + """There was an internal failure in the service.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidParameterDetail(_SerdeShape): + """Information about an invalid parameter.""" + + problem: str | None = ... + """The reason the parameter is invalid.""" + +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """The requested resource could not be found.""" + + resource_type: str | None = ... + """The type of resource that was not found.""" + referenced_by: dict[str, str] | None = ... + """ + A map indicating which parameters in the request reference the resource + that was not found. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartConfigurationSessionInput(_SerdeShape): + """Dataclass for StartConfigurationSessionInput structure.""" + + application_identifier: str | None = ... + """The application ID or the application name.""" + environment_identifier: str | None = ... + """The environment ID or the environment name.""" + configuration_profile_identifier: str | None = ... + """The configuration profile ID or the configuration profile name.""" + required_minimum_poll_interval_in_seconds: int | None = ... + """ + Sets a constraint on a session. If you specify a value of, for example, + 60 seconds, then the client that established the session can't call + GetLatestConfiguration more frequently than every 60 seconds. + """ + +@dataclass(kw_only=True) +class StartConfigurationSessionOutput(_SerdeShape): + """Dataclass for StartConfigurationSessionOutput structure.""" + + initial_configuration_token: str | None = ... + """ + Token encapsulating state about the configuration session. Provide this + token to the `GetLatestConfiguration` API to retrieve configuration + data. + + Warning: + This token should only be used once in your first call to + `GetLatestConfiguration`. You *must* use the new token in the + `GetLatestConfiguration` response (`NextPollConfigurationToken`) in each + subsequent call to `GetLatestConfiguration`. + + The `InitialConfigurationToken` and `NextPollConfigurationToken` should + only be used once. To support long poll use cases, the tokens are valid + for up to 24 hours. If a `GetLatestConfiguration` call uses an expired + token, the system returns `BadRequestException`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ThrottlingException(ServiceError, _SerdeShape): + """The request was denied due to request throttling.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +GET_LATEST_CONFIGURATION: APIOperation[ + GetLatestConfigurationInput, GetLatestConfigurationOutput +] +START_CONFIGURATION_SESSION: APIOperation[ + StartConfigurationSessionInput, StartConfigurationSessionOutput +] diff --git a/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/user_agent.py b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/user_agent.py new file mode 100644 index 00000000..71c7b8f9 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/src/aws_sdk_appconfigdata/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import AppConfigDataConfig + + +def aws_user_agent_plugin(config: AppConfigDataConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="AppConfigData", + ) + ) diff --git a/clients/aws-sdk-appconfigdata/tests/__init__.py b/clients/aws-sdk-appconfigdata/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-appconfigdata/tests/_typecheck.py b/clients/aws-sdk-appconfigdata/tests/_typecheck.py new file mode 100644 index 00000000..af0d165b --- /dev/null +++ b/clients/aws-sdk-appconfigdata/tests/_typecheck.py @@ -0,0 +1,23 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_appconfigdata.models import ( + GetLatestConfigurationInput, + GetLatestConfigurationOutput, + InvalidParameterDetail, + StartConfigurationSessionInput, + StartConfigurationSessionOutput, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +GetLatestConfigurationInput() +GetLatestConfigurationOutput() +InvalidParameterDetail() +StartConfigurationSessionInput() +StartConfigurationSessionOutput() diff --git a/clients/aws-sdk-appconfigdata/tests/test_endpoints.py b/clients/aws-sdk-appconfigdata/tests/test_endpoints.py new file mode 100644 index 00000000..9771f424 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/tests/test_endpoints.py @@ -0,0 +1,321 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_appconfigdata.aio.client import AsyncAppConfigDataClient +from aws_sdk_appconfigdata.aio.config import AsyncAppConfigDataConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.appconfigdata#AppConfigData. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncAppConfigDataConfig: + return await AsyncAppConfigDataConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncAppConfigDataClient: + return AsyncAppConfigDataClient( + config=await _config(**config, interceptors=[capture]) + ) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://appconfigdata-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://appconfigdata.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://appconfigdata-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://appconfigdata.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://appconfigdata-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://appconfigdata.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://appconfigdata-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://appconfigdata.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-appconfigdata/tests/test_model_conformance.py b/clients/aws-sdk-appconfigdata/tests/test_model_conformance.py new file mode 100644 index 00000000..7088081a --- /dev/null +++ b/clients/aws-sdk-appconfigdata/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_appconfigdata import models as _models +from aws_sdk_appconfigdata._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-appconfigdata/tests/test_restjson_protocol.py b/clients/aws-sdk-appconfigdata/tests/test_restjson_protocol.py new file mode 100644 index 00000000..eb5ce092 --- /dev/null +++ b/clients/aws-sdk-appconfigdata/tests/test_restjson_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_appconfigdata.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/_private/schemas.py b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/_private/schemas.py index fa06e85e..68409e93 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/_private/schemas.py +++ b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/_private/schemas.py @@ -209,9 +209,13 @@ _ACMSI = "AgentCoreMemorySessionId" _ARSR = "AgenticRetrieveSourceRetriever" _id = "identifier" -_ARFDED = "AgenticRetrieveFullDocExpansionDetails" +_ARCED = "AgenticRetrieveCodeExecutionDocument" _dI = "documentId" _sR = "sourceRetriever" +_ARCEDL = "AgenticRetrieveCodeExecutionDocumentList" +_ARCEDg = "AgenticRetrieveCodeExecutionDetails" +_do = "documents" +_ARFDED = "AgenticRetrieveFullDocExpansionDetails" _ARMC = "AgenticRetrieveMessageContent" _ARMRD = "AgenticRetrieveMemoryRetrieveDetails" _iQ = "inputQuery" @@ -226,7 +230,13 @@ _re = "retrieve" _fDE = "fullDocumentExpansion" _mR = "memoryRetrieve" +_cE = "codeExecution" _ARAg = "AgenticRetrieveActions" +_RII = "RetrievalInstructionId" +_RIV = "RetrievalInstructionVersion" +_ARAI = "AgenticRetrieveAppliedInstruction" +_id_ = "id" +_ver = "version" _ARBGC = "AgenticRetrieveBedrockGuardrailConfiguration" _gI = "guardrailId" _gV = "guardrailVersion" @@ -279,9 +289,9 @@ _GA = "GuardrailAction" _INTERVENED = "INTERVENED" _ARGW = "AgenticRetrieveGuardrailWarning" -_id_ = "id" -_ver = "version" _ac = "action" +_ARIC = "AgenticRetrieveInstructionConfiguration" +_rII = "retrievalInstructionId" _ARMPM = "AgenticRetrieveMemoryPersistenceMode" _DEFAULT = "DEFAULT" _ARMMK = "AgenticRetrieveMemoryMetadataKey" @@ -375,12 +385,14 @@ _FDEu = "FullDocumentExpansion" _SHL = "SESSION_HISTORY_LOAD" _SHLe = "SessionHistoryLoad" +_CE = "CODE_EXECUTION" +_CEo = "CodeExecution" _UCs = "UserContext" _uI = "userId" _BGE = "BadGatewayException" _se = "server" _rN = "resourceName" -_CE = "ConflictException" +_CEon = "ConflictException" _DFE = "DependencyFailedException" _ISE = "InternalServerException" _rea = "reason" @@ -401,6 +413,7 @@ _fa = "failures" _rM = "retrievalMetadata" _rR = "retrievalResponse" +_aIp = "appliedInstruction" _ARTE = "AgenticRetrieveTraceEvent" _ti = "timestamp" _at = "attributes" @@ -416,7 +429,7 @@ _sQEE = "serviceQuotaExceededException" _tEh = "throttlingException" _aDE = "accessDeniedException" -_cE = "conflictException" +_cEo = "conflictException" _dFE = "dependencyFailedException" _bGE = "badGatewayException" _ARSO = "AgenticRetrieveStreamOutput" @@ -782,7 +795,7 @@ _eC = "errorCode" _eM = "errorMessage" _FECl = "FlowExecutionContent" -_do = "document" +_doc = "document" _NIN = "NodeInputName" _FIF = "FlowInputField" _FIFl = "FlowInputFields" @@ -991,11 +1004,13 @@ _cGQRo = "com.amazonaws.bedrockagentruntime#GenerateQueryResponse" _qu = "queries" _GQen = "GenerateQuery" +_MIe = "MediaId" _DOF = "DocumentOutputFormat" _RAW = "RAW" _EXTRACTED = "EXTRACTED" _GDCI = "GetDocumentContentInput" _cGDCR = "com.amazonaws.bedrockagentruntime#GetDocumentContentRequest" +_mIe = "mediaId" _oF = "outputFormat" _PU = "PresignedUrl" _GDCO = "GetDocumentContentOutput" @@ -1031,7 +1046,7 @@ _GIDA = "GetIngestedDocumentAcl" _BMC = "BedrockModelConfigurations" _ITn = "InputText" -_MIe = "MemoryId" +_MIem = "MemoryId" _PCC = "PromptCreationConfigurations" _pCTTI = "previousConversationTurnsToInclude" _ePTS = "excludePreviousThinkingSteps" @@ -1446,6 +1461,7 @@ _aRC = "agenticRetrieveConfiguration" _pCo = "policyConfiguration" _mCemo = "memoryConfiguration" +_rIC = "retrievalInstructionConfiguration" _gRe = "generateResponse" _KBRCn = "KnowledgeBaseRetrievalConfiguration" _vSC = "vectorSearchConfiguration" @@ -2060,6 +2076,33 @@ AGENTIC_RETRIEVE_SOURCE_RETRIEVER: StaticSchema = (18, n0, _ARSR, 0, (_id,), ((3, 1),)) +AGENTIC_RETRIEVE_CODE_EXECUTION_DOCUMENT: StaticSchema = ( + 18, + n0, + _ARCED, + 0, + (_dI, _sR), + ((3, 0), (AGENTIC_RETRIEVE_SOURCE_RETRIEVER, 0)), +) + +AGENTIC_RETRIEVE_CODE_EXECUTION_DOCUMENT_LIST: StaticSchema = ( + 16, + n0, + _ARCEDL, + 0, + (_me,), + ((AGENTIC_RETRIEVE_CODE_EXECUTION_DOCUMENT, 0),), +) + +AGENTIC_RETRIEVE_CODE_EXECUTION_DETAILS: StaticSchema = ( + 18, + n0, + _ARCEDg, + 0, + (_do,), + ((AGENTIC_RETRIEVE_CODE_EXECUTION_DOCUMENT_LIST, 0),), +) + AGENTIC_RETRIEVE_FULL_DOC_EXPANSION_DETAILS: StaticSchema = ( 18, n0, @@ -2106,11 +2149,12 @@ n0, _ARA, 0, - (_re, _fDE, _mR), + (_re, _fDE, _mR, _cE), ( (AGENTIC_RETRIEVE_ACTION_DETAILS, 0), (AGENTIC_RETRIEVE_FULL_DOC_EXPANSION_DETAILS, 0), (AGENTIC_RETRIEVE_MEMORY_RETRIEVE_DETAILS, 0), + (AGENTIC_RETRIEVE_CODE_EXECUTION_DETAILS, 0), ), ) @@ -2123,6 +2167,19 @@ ((AGENTIC_RETRIEVE_ACTION, 0),), ) +RETRIEVAL_INSTRUCTION_ID: StaticSchema = (3, n0, _RII, 0) + +RETRIEVAL_INSTRUCTION_VERSION: StaticSchema = (3, n0, _RIV, 0) + +AGENTIC_RETRIEVE_APPLIED_INSTRUCTION: StaticSchema = ( + 18, + n0, + _ARAI, + 0, + (_id_, _ver), + ((RETRIEVAL_INSTRUCTION_ID, 1), (RETRIEVAL_INSTRUCTION_VERSION, 0)), +) + AGENTIC_RETRIEVE_BEDROCK_GUARDRAIL_CONFIGURATION: StaticSchema = ( 18, n0, @@ -2340,6 +2397,15 @@ ((3, 1), (3, 1), (GUARDRAIL_ACTION, 1), (3, 0)), ) +AGENTIC_RETRIEVE_INSTRUCTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ARIC, + 0, + (_rII, _ver), + ((RETRIEVAL_INSTRUCTION_ID, 1), (RETRIEVAL_INSTRUCTION_VERSION, 0)), +) + AGENTIC_RETRIEVE_MEMORY_PERSISTENCE_MODE: StaticSchema = ( 14, n0, @@ -2639,13 +2705,14 @@ n0, _ARSg, 0, - (_PLANNING, _RETRIEVAL, _SR_, _FDE, _SHL), + (_PLANNING, _RETRIEVAL, _SR_, _FDE, _SHL, _CE), ( (-1, {_sV: _Pl}), (-1, {_sV: _R}), (-1, {_sV: _SRp}), (-1, {_sV: _FDEu}), (-1, {_sV: _SHLe}), + (-1, {_sV: _CEo}), ), ) @@ -2663,7 +2730,7 @@ CONFLICT_EXCEPTION: StaticSchema = ( 18, n0, - _CE, + _CEon, {_s: _c, _sE: 409}, (_m,), ((NON_BLANK_STRING, 0),), @@ -2761,7 +2828,7 @@ n0, _ARTEA, 0, - (_ste, _sta, _m, _act, _wa, _fa, _rM, _rR), + (_ste, _sta, _m, _act, _wa, _fa, _rM, _rR, _aIp), ( (AGENTIC_RETRIEVE_STEP, 1), (AGENTIC_RETRIEVE_STATUS, 1), @@ -2771,6 +2838,7 @@ (AGENTIC_RETRIEVE_FAILURES, 0), (AGENTIC_RETRIEVE_SOURCE_METADATA_LIST, 0), (AGENTIC_RETRIEVE_TRACE_RESULTS, 0), + (AGENTIC_RETRIEVE_APPLIED_INSTRUCTION, 0), ), ) @@ -2797,7 +2865,7 @@ n0, _ARSRO, {_smith: None}, - (_resu, _tE, _rE, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cE, _dFE, _bGE), + (_resu, _tE, _rE, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cEo, _dFE, _bGE), ( (AGENTIC_RETRIEVE_RESULT_EVENT, 0), (AGENTIC_RETRIEVE_TRACE_EVENT, 0), @@ -4062,7 +4130,7 @@ ((DATE_TIMESTAMP, 1), (FLOW_ERROR_CODE, 1), (3, 1)), ) -FLOW_EXECUTION_CONTENT: StaticSchema = (19, n0, _FECl, 4, (_do,), ((13, 0),)) +FLOW_EXECUTION_CONTENT: StaticSchema = (19, n0, _FECl, 4, (_doc,), ((13, 0),)) NODE_INPUT_NAME: StaticSchema = (3, n0, _NIN, 0) @@ -4155,7 +4223,7 @@ ((-1, {_sV: _LCo}), (-1, {_sV: _RVTLSe}), (-1, {_sV: _ELx})), ) -NODE_EXECUTION_CONTENT: StaticSchema = (19, n0, _NECo, 4, (_do,), ((13, 0),)) +NODE_EXECUTION_CONTENT: StaticSchema = (19, n0, _NECo, 4, (_doc,), ((13, 0),)) FLOW_CONTROL_NODE_TYPE: StaticSchema = ( 14, @@ -4416,7 +4484,7 @@ FLOW_EXECUTION_NAME: StaticSchema = (3, n0, _FEN, 0) -FLOW_INPUT_CONTENT: StaticSchema = (19, n0, _FIC, 4, (_do,), ((13, 0),)) +FLOW_INPUT_CONTENT: StaticSchema = (19, n0, _FIC, 4, (_doc,), ((13, 0),)) FLOW_INPUT: StaticSchema = ( 18, @@ -4594,7 +4662,7 @@ ((FLOW_COMPLETION_REASON, 1),), ) -FLOW_MULTI_TURN_INPUT_CONTENT: StaticSchema = (19, n0, _FMTIC, 0, (_do,), ((13, 0),)) +FLOW_MULTI_TURN_INPUT_CONTENT: StaticSchema = (19, n0, _FMTIC, 0, (_doc,), ((13, 0),)) NODE_TYPE: StaticSchema = ( 14, @@ -4622,7 +4690,7 @@ ((NODE_NAME, 1), (NODE_TYPE, 1), (FLOW_MULTI_TURN_INPUT_CONTENT, 1)), ) -FLOW_OUTPUT_CONTENT: StaticSchema = (19, n0, _FOC, 0, (_do,), ((13, 0),)) +FLOW_OUTPUT_CONTENT: StaticSchema = (19, n0, _FOC, 0, (_doc,), ((13, 0),)) FLOW_OUTPUT_EVENT: StaticSchema = ( 18, @@ -4673,7 +4741,7 @@ ((NODE_NAME, 1), (DATE_TIMESTAMP, 1), (TRACE_ELEMENTS, 1)), ) -FLOW_TRACE_NODE_INPUT_CONTENT: StaticSchema = (19, n0, _FTNIC, 4, (_do,), ((13, 0),)) +FLOW_TRACE_NODE_INPUT_CONTENT: StaticSchema = (19, n0, _FTNIC, 4, (_doc,), ((13, 0),)) FLOW_TRACE_NODE_INPUT_EXECUTION_CHAIN_ITEM: StaticSchema = ( 18, @@ -4736,7 +4804,7 @@ ((NODE_NAME, 1), (DATE_TIMESTAMP, 1), (FLOW_TRACE_NODE_INPUT_FIELDS, 1)), ) -FLOW_TRACE_NODE_OUTPUT_CONTENT: StaticSchema = (19, n0, _FTNOC, 0, (_do,), ((13, 0),)) +FLOW_TRACE_NODE_OUTPUT_CONTENT: StaticSchema = (19, n0, _FTNOC, 0, (_doc,), ((13, 0),)) FLOW_TRACE_NODE_OUTPUT_NEXT: StaticSchema = ( 18, @@ -4810,7 +4878,7 @@ n0, _FRSl, {_smith: None}, - (_fOE, _fCE, _fTE, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cE, _dFE, _bGE, _fMTIRE), + (_fOE, _fCE, _fTE, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cEo, _dFE, _bGE, _fMTIRE), ( (FLOW_OUTPUT_EVENT, 0), (FLOW_COMPLETION_EVENT, 0), @@ -4981,6 +5049,8 @@ ), ) +MEDIA_ID: StaticSchema = (3, n0, _MIe, 0) + DOCUMENT_OUTPUT_FORMAT: StaticSchema = ( 14, n0, @@ -4995,11 +5065,12 @@ n0, _GDCI, {_sSI: _cGDCR, _smithya: None}, - (_kBI, _dSI, _dI, _oF, _uC), + (_kBI, _dSI, _dI, _mIe, _oF, _uC), ( (KNOWLEDGE_BASE_IDENTIFIER, 9), (DATA_SOURCE_ID, 9), (DOCUMENT_ID, 9), + (MEDIA_ID, 0), (DOCUMENT_OUTPUT_FORMAT, 0), (USER_CONTEXT, 0), ), @@ -5187,7 +5258,7 @@ INPUT_TEXT: StaticSchema = (3, n0, _ITn, 4) -MEMORY_ID: StaticSchema = (3, n0, _MIe, 0) +MEMORY_ID: StaticSchema = (3, n0, _MIem, 0) PROMPT_CREATION_CONFIGURATIONS: StaticSchema = ( 18, @@ -5554,7 +5625,7 @@ _sQEE, _tEh, _aDE, - _cE, + _cEo, _dFE, _bGE, _mNRE, @@ -5775,7 +5846,7 @@ n0, _IARS, {_smith: None}, - (_ch, _tra, _rCetu, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cE, _dFE, _bGE, _fil), + (_ch, _tra, _rCetu, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cEo, _dFE, _bGE, _fil), ( (INLINE_AGENT_PAYLOAD_PART, 0), (INLINE_AGENT_TRACE_PART, 0), @@ -6120,7 +6191,7 @@ n0, _RRer, 0, - (_ind, _rSel, _do), + (_ind, _rSel, _doc), ((7, 1), (9, 1), (RERANK_DOCUMENT, 0)), ) @@ -6364,7 +6435,7 @@ n0, _RAGSRO, {_smith: None}, - (_o, _cit, _gu, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cE, _dFE, _bGE), + (_o, _cit, _gu, _iSE, _vE, _rNFE, _sQEE, _tEh, _aDE, _cEo, _dFE, _bGE), ( (RETRIEVE_AND_GENERATE_OUTPUT_EVENT, 0), (CITATION_EVENT, 0), @@ -7285,7 +7356,7 @@ n0, _ARSI, {_sSI: _cARSRo, _smithya: None}, - (_mes, _ret, _aRC, _pCo, _nT, _uC, _mCemo, _gRe), + (_mes, _ret, _aRC, _pCo, _nT, _uC, _mCemo, _rIC, _gRe), ( (AGENTIC_RETRIEVE_MESSAGES, 1), (AGENTIC_RETRIEVERS, 1), @@ -7294,6 +7365,7 @@ (NEXT_TOKEN, 0), (USER_CONTEXT, 0), (AGENTIC_RETRIEVE_MEMORY_CONFIGURATION, 0), + (AGENTIC_RETRIEVE_INSTRUCTION_CONFIGURATION, 0), (2, {_smit: True}), ), ) diff --git a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/aio/client.py b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/aio/client.py index 1a05773e..9fff3aa6 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/aio/client.py +++ b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/aio/client.py @@ -391,8 +391,10 @@ async def get_document_content( self, input: GetDocumentContentInput, plugins: list[Plugin] | None = None ) -> GetDocumentContentOutput: """ - Retrieves the content of an ingested document from a knowledge base. - Returns a pre-signed URL for secure document access. + Retrieves the content of an ingested document from a knowledge base, or + of an image embedded in the document. Returns a pre-signed URL for + downloading the content. Use this operation to display the source of a + `Retrieve` result. Args: input: diff --git a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/client.py b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/client.py index eab3f546..bb5f3dba 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/client.py +++ b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/client.py @@ -325,8 +325,10 @@ def get_document_content( self, input: GetDocumentContentInput, plugins: list[Plugin] | None = None ) -> GetDocumentContentOutput: """ - Retrieves the content of an ingested document from a knowledge base. - Returns a pre-signed URL for secure document access. + Retrieves the content of an ingested document from a knowledge base, or + of an image embedded in the document. Returns a pre-signed URL for + downloading the content. Use this operation to display the source of a + `Retrieve` result. Args: input: diff --git a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.py b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.py index 6156e494..f186ab0c 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.py +++ b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.py @@ -37,16 +37,20 @@ class ServiceError(ModeledError): "AgentCollaboratorOutputPayload": "AGENT_COLLABORATOR_OUTPUT_PAYLOAD", "AgenticRetrieveAction": "AGENTIC_RETRIEVE_ACTION", "AgenticRetrieveActionDetails": "AGENTIC_RETRIEVE_ACTION_DETAILS", + "AgenticRetrieveAppliedInstruction": "AGENTIC_RETRIEVE_APPLIED_INSTRUCTION", "AgenticRetrieveBedrockGuardrailConfiguration": "AGENTIC_RETRIEVE_BEDROCK_GUARDRAIL_CONFIGURATION", "AgenticRetrieveBedrockRerankingConfiguration": "AGENTIC_RETRIEVE_BEDROCK_RERANKING_CONFIGURATION", "AgenticRetrieveBedrockRerankingModelConfiguration": "AGENTIC_RETRIEVE_BEDROCK_RERANKING_MODEL_CONFIGURATION", "AgenticRetrieveCitation": "AGENTIC_RETRIEVE_CITATION", "AgenticRetrieveCitationReference": "AGENTIC_RETRIEVE_CITATION_REFERENCE", + "AgenticRetrieveCodeExecutionDetails": "AGENTIC_RETRIEVE_CODE_EXECUTION_DETAILS", + "AgenticRetrieveCodeExecutionDocument": "AGENTIC_RETRIEVE_CODE_EXECUTION_DOCUMENT", "AgenticRetrieveConfiguration": "AGENTIC_RETRIEVE_CONFIGURATION", "AgenticRetrieveFailure": "AGENTIC_RETRIEVE_FAILURE", "AgenticRetrieveFullDocExpansionDetails": "AGENTIC_RETRIEVE_FULL_DOC_EXPANSION_DETAILS", "AgenticRetrieveGeneratedResponse": "AGENTIC_RETRIEVE_GENERATED_RESPONSE", "AgenticRetrieveGuardrailWarning": "AGENTIC_RETRIEVE_GUARDRAIL_WARNING", + "AgenticRetrieveInstructionConfiguration": "AGENTIC_RETRIEVE_INSTRUCTION_CONFIGURATION", "AgenticRetrieveMemoryConfiguration": "AGENTIC_RETRIEVE_MEMORY_CONFIGURATION", "AgenticRetrieveMemoryMetadataFilter": "AGENTIC_RETRIEVE_MEMORY_METADATA_FILTER", "AgenticRetrieveMemoryMetadataFilterLeft": "AGENTIC_RETRIEVE_MEMORY_METADATA_FILTER_LEFT", @@ -702,16 +706,20 @@ class ServiceError(ModeledError): "AgentCollaboratorOutputPayload", "AgenticRetrieveAction", "AgenticRetrieveActionDetails", + "AgenticRetrieveAppliedInstruction", "AgenticRetrieveBedrockGuardrailConfiguration", "AgenticRetrieveBedrockRerankingConfiguration", "AgenticRetrieveBedrockRerankingModelConfiguration", "AgenticRetrieveCitation", "AgenticRetrieveCitationReference", + "AgenticRetrieveCodeExecutionDetails", + "AgenticRetrieveCodeExecutionDocument", "AgenticRetrieveConfiguration", "AgenticRetrieveFailure", "AgenticRetrieveFullDocExpansionDetails", "AgenticRetrieveGeneratedResponse", "AgenticRetrieveGuardrailWarning", + "AgenticRetrieveInstructionConfiguration", "AgenticRetrieveMemoryConfiguration", "AgenticRetrieveMemoryMetadataFilter", "AgenticRetrieveMemoryMetadataFilterLeft", diff --git a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.pyi b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.pyi index 4e2c445c..5d3d8606 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.pyi +++ b/clients/aws-sdk-bedrock-agent-runtime/src/aws_sdk_bedrock_agent_runtime/models.pyi @@ -289,6 +289,8 @@ class AgenticRetrieveAction(_SerdeShape): The details of a long-term memory retrieval that the agent chose to perform. """ + code_execution: AgenticRetrieveCodeExecutionDetails | None = ... + """The details of code that the agent chose to run.""" @dataclass(kw_only=True) class AgenticRetrieveActionDetails(_SerdeShape): @@ -299,6 +301,22 @@ class AgenticRetrieveActionDetails(_SerdeShape): source_retrievers: list[AgenticRetrieveSourceRetriever] """The list of source retrievers targeted by this action.""" +@dataclass(kw_only=True) +class AgenticRetrieveAppliedInstruction(_SerdeShape): + """ + The retrieval instruction, identified by its ID and version, that was + applied to the request. + """ + + id: str + """The identifier of the retrieval instruction applied.""" + version: str | None = ... + """ + The version that was applied: a version number, or DRAFT. The service + reports this version whenever it reports appliedInstruction, including + DRAFT when the request did not specify a version. + """ + @dataclass(kw_only=True) class AgenticRetrieveBedrockGuardrailConfiguration(_SerdeShape): """Configuration for a Bedrock guardrail applied during agentic retrieval.""" @@ -340,6 +358,29 @@ class AgenticRetrieveCitationReference(_SerdeShape): result_index: int """Index into the results array on the same event.""" +@dataclass(kw_only=True) +class AgenticRetrieveCodeExecutionDetails(_SerdeShape): + """ + The details of code that the agent chose to run in an isolated sandbox. + The record includes the documents that the code reads. The corresponding + CodeExecution step reports the outcome. + """ + + documents: list[AgenticRetrieveCodeExecutionDocument] | None = ... + """ + The documents that the code reads. This field is present when the code + reads documents. + """ + +@dataclass(kw_only=True) +class AgenticRetrieveCodeExecutionDocument(_SerdeShape): + """A document that a code execution action reads.""" + + document_id: str | None = ... + """The identifier of the document.""" + source_retriever: AgenticRetrieveSourceRetriever | None = ... + """The source retriever associated with the document.""" + @dataclass(kw_only=True) class AgenticRetrieveConfiguration(_SerdeShape): """Configuration settings for the agentic retrieval operation.""" @@ -407,6 +448,25 @@ class AgenticRetrieveGuardrailWarning(_SerdeShape): message: str | None = ... """A message describing the guardrail evaluation result.""" +@dataclass(kw_only=True) +class AgenticRetrieveInstructionConfiguration(_SerdeShape): + """ + The retrieval instruction, identified by its ID and optional version, to + apply to this request. + """ + + retrieval_instruction_id: str + """ + The identifier of the retrieval instruction. The instruction must exist + in the caller's account and its status must be ACTIVE. + """ + version: str | None = ... + """ + The version of the retrieval instruction to apply: a version number, or + DRAFT for the instruction's current reviewed content. When omitted, + DRAFT is used. This default is permanent. + """ + @dataclass(kw_only=True) class AgenticRetrieveMemoryConfiguration(_SerdeShape): """ @@ -860,6 +920,11 @@ class AgenticRetrieveStep(UnknownEnumMixin, StrEnum): The phase that restores prior session history from AgentCore Memory short-term memory, before the agent begins work. """ + CODE_EXECUTION = "CodeExecution" + """ + The phase that runs agent-generated code in an isolated sandbox. The + code can read documents retrieved earlier in the same request. + """ @dataclass(kw_only=True) class AgenticRetrieveStreamInput(_SerdeShape): @@ -886,6 +951,10 @@ class AgenticRetrieveStreamInput(_SerdeShape): The configuration for using an Amazon Bedrock AgentCore Memory resource with this retrieval. """ + retrieval_instruction_configuration: ( + AgenticRetrieveInstructionConfiguration | None + ) = ... + """A retrieval instruction to apply to this request.""" generate_response: bool = ... """Whether to generate a response based on the retrieved results.""" @@ -1042,6 +1111,11 @@ class AgenticRetrieveTraceEventAttributes(_SerdeShape): """Metadata about the retrieval sources used.""" retrieval_response: list[AgenticRetrieveTraceResultItem] | None = ... """The retrieval results from this step.""" + applied_instruction: AgenticRetrieveAppliedInstruction | None = ... + """ + The agent reports the retrieval instruction applied to this request on + the first planning step. + """ @dataclass(kw_only=True) class AgenticRetrieveTraceResultItem(_SerdeShape): @@ -3422,10 +3496,30 @@ class GetDocumentContentInput(_SerdeShape): """The unique identifier of the data source that contains the document.""" document_id: str | None = ... """The unique identifier of the document to retrieve content for.""" + media_id: str | None = ... + """ + The unique identifier (in UUID format) of an image embedded in the + specified document. Set this parameter to the `_media_id` value in the + metadata of the corresponding `Retrieve` result. If you specify this + parameter, the response contains a pre-signed URL for the image instead + of the document, and you must omit `outputFormat` or set it to `RAW`. + """ output_format: str | None = ... """ - The output format for the document content. `RAW` returns the original - file. `EXTRACTED` returns parsed text as JSON. Defaults to `RAW`. + The output format for the content. You can specify one of the following + values: + + RAW + + : Returns the original document, or the selected image if you specify + `mediaId`. + + EXTRACTED + + : Returns parsed document text as JSON. + + If you omit this parameter, the default is `RAW`. You can't use + `EXTRACTED` with `mediaId`. """ user_context: UserContext | None = ... """ @@ -3440,20 +3534,18 @@ class GetDocumentContentOutput(_SerdeShape): mime_type: str """ - The MIME type of the document content. For `RAW` format, this is the - original file type (for example, `application/pdf`). For `EXTRACTED` + The MIME type of the returned content. For `RAW` format, this is the + original file type (for example, `application/pdf`), or the image type + (for example, `image/png`) if you specify `mediaId`. For `EXTRACTED` format, this is always `application/json`. """ presigned_url: str """ - A pre-signed URL for downloading the document content. The URL expires - after 5 minutes. + A pre-signed URL for downloading the document content, or the selected + image if you specify `mediaId`. The URL expires after 5 minutes. """ document_content_length: int | None = ... - """ - The size of the document content in bytes available at the pre-signed - URL. - """ + """The size, in bytes, of the content available at the pre-signed URL.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to diff --git a/clients/aws-sdk-bedrock-agent-runtime/tests/_typecheck.py b/clients/aws-sdk-bedrock-agent-runtime/tests/_typecheck.py index 38888005..183f0a47 100644 --- a/clients/aws-sdk-bedrock-agent-runtime/tests/_typecheck.py +++ b/clients/aws-sdk-bedrock-agent-runtime/tests/_typecheck.py @@ -12,16 +12,20 @@ AgentCollaboratorOutputPayload, AgenticRetrieveAction, AgenticRetrieveActionDetails, + AgenticRetrieveAppliedInstruction, AgenticRetrieveBedrockGuardrailConfiguration, AgenticRetrieveBedrockRerankingConfiguration, AgenticRetrieveBedrockRerankingModelConfiguration, AgenticRetrieveCitation, AgenticRetrieveCitationReference, + AgenticRetrieveCodeExecutionDetails, + AgenticRetrieveCodeExecutionDocument, AgenticRetrieveConfiguration, AgenticRetrieveFailure, AgenticRetrieveFullDocExpansionDetails, AgenticRetrieveGeneratedResponse, AgenticRetrieveGuardrailWarning, + AgenticRetrieveInstructionConfiguration, AgenticRetrieveMemoryConfiguration, AgenticRetrieveMemoryMetadataFilter, AgenticRetrieveMemoryRetrievalConfig, @@ -341,16 +345,20 @@ AgentCollaboratorOutputPayload() AgenticRetrieveAction() AgenticRetrieveActionDetails(input_query=_, source_retrievers=_) +AgenticRetrieveAppliedInstruction(id=_) AgenticRetrieveBedrockGuardrailConfiguration(guardrail_id=_, guardrail_version=_) AgenticRetrieveBedrockRerankingConfiguration(model_configuration=_) AgenticRetrieveBedrockRerankingModelConfiguration(model_arn=_) AgenticRetrieveCitation(start_index=_, end_index=_, references=_) AgenticRetrieveCitationReference(result_index=_) +AgenticRetrieveCodeExecutionDetails() +AgenticRetrieveCodeExecutionDocument() AgenticRetrieveConfiguration() AgenticRetrieveFailure(message=_) AgenticRetrieveFullDocExpansionDetails() AgenticRetrieveGeneratedResponse(answer=_) AgenticRetrieveGuardrailWarning(id=_, version=_, action=_) +AgenticRetrieveInstructionConfiguration(retrieval_instruction_id=_) AgenticRetrieveMemoryConfiguration(memory_id=_) AgenticRetrieveMemoryMetadataFilter(left=_, operator=_) AgenticRetrieveMemoryRetrievalConfig() diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/_private/schemas.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/_private/schemas.py index 65145dc0..e437fabb 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/_private/schemas.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/_private/schemas.py @@ -1540,10 +1540,17 @@ _kBC = "knowledgeBaseConfiguration" _sCto = "storageConfiguration" _KBA = "KnowledgeBaseArn" +_MKN = "MetadataKeyName" +_SSe = "SearchableStatus" +_FT = "FieldType" +_MCe = "MetadataConfiguration" +_sea = "searchability" +_MCet = "MetadataConfigurations" _KBSn = "KnowledgeBaseStatus" _ACTIVE = "ACTIVE" _UU = "UPDATE_UNSUCCESSFUL" _kBA = "knowledgeBaseArn" +_mCet = "metadataConfigurations" _CKBO = "CreateKnowledgeBaseOutput" _cCKBRo = "com.amazonaws.bedrockagent#CreateKnowledgeBaseResponse" _kB = "knowledgeBase" @@ -1660,6 +1667,83 @@ _PRPO = "PutResourcePolicyOutput" _cPRPRo = "com.amazonaws.bedrockagent#PutResourcePolicyResponse" _PRP = "PutResourcePolicy" +_RID = "RetrievalInstructionDescription" +_RIFT = "RetrievalInstructionFieldText" +_RIC = "RetrievalInstructionContent" +_rG = "retrievalGuidance" +_pe = "persona" +_aF = "answerFormat" +_aP = "answerPolicy" +_RIN = "RetrievalInstructionName" +_CRII = "CreateRetrievalInstructionInput" +_cCRIR = "com.amazonaws.bedrockagent#CreateRetrievalInstructionRequest" +_RILTS = "RetrievalInstructionLastTransitionStatus" +_CS_ = "CREATE_SUCCESSFUL" +_US = "UPDATE_SUCCESSFUL" +_UF = "UPDATE_FAILED" +_RIA = "RetrievalInstructionArn" +_RII = "RetrievalInstructionId" +_RIS = "RetrievalInstructionStatus" +_INACTIVE = "INACTIVE" +_CRIO = "CreateRetrievalInstructionOutput" +_cCRIRo = "com.amazonaws.bedrockagent#CreateRetrievalInstructionResponse" +_rII = "retrievalInstructionId" +_rIA = "retrievalInstructionArn" +_lTS = "lastTransitionStatus" +_CRI = "CreateRetrievalInstruction" +_CRIVI = "CreateRetrievalInstructionVersionInput" +_cCRIVR = "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionRequest" +_RINV = "RetrievalInstructionNumericalVersion" +_CRIVO = "CreateRetrievalInstructionVersionOutput" +_cCRIVRo = "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionResponse" +_CRIV = "CreateRetrievalInstructionVersion" +_DRII = "DeleteRetrievalInstructionInput" +_cDRIR = "com.amazonaws.bedrockagent#DeleteRetrievalInstructionRequest" +_rIV = "retrievalInstructionVersion" +_DRIO = "DeleteRetrievalInstructionOutput" +_cDRIRo = "com.amazonaws.bedrockagent#DeleteRetrievalInstructionResponse" +_DRI = "DeleteRetrievalInstruction" +_RIVS = "RetrievalInstructionVersionSelector" +_GRII = "GetRetrievalInstructionInput" +_cGRIR = "com.amazonaws.bedrockagent#GetRetrievalInstructionRequest" +_RIFRC = "RetrievalInstructionFailureReasonCode" +_CR_ = "CONTENT_REJECTED" +_CE_ = "CLIENT_ERROR" +_IE_ = "INTERNAL_ERROR" +_RIFN = "RetrievalInstructionFieldName" +_RG = "RETRIEVAL_GUIDANCE" +_PERSONA = "PERSONA" +_AF = "ANSWER_FORMAT" +_AP = "ANSWER_POLICY" +_RIFR = "RetrievalInstructionFailureReason" +_RIFRe = "RetrievalInstructionFailureReasons" +_GRIO = "GetRetrievalInstructionOutput" +_cGRIRo = "com.amazonaws.bedrockagent#GetRetrievalInstructionResponse" +_lTSR = "lastTransitionStatusReasons" +_lV = "latestVersion" +_GRI = "GetRetrievalInstruction" +_RIMR = "RetrievalInstructionMaxResults" +_LRII = "ListRetrievalInstructionsInput" +_cLRIR = "com.amazonaws.bedrockagent#ListRetrievalInstructionsRequest" +_RISe = "RetrievalInstructionSummary" +_RISet = "RetrievalInstructionSummaries" +_LRIO = "ListRetrievalInstructionsOutput" +_cLRIRo = "com.amazonaws.bedrockagent#ListRetrievalInstructionsResponse" +_rIS = "retrievalInstructionSummaries" +_LRI = "ListRetrievalInstructions" +_LRIVI = "ListRetrievalInstructionVersionsInput" +_cLRIVR = "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsRequest" +_RIVSe = "RetrievalInstructionVersionSummary" +_RIVSet = "RetrievalInstructionVersionSummaries" +_LRIVO = "ListRetrievalInstructionVersionsOutput" +_cLRIVRo = "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsResponse" +_rIVS = "retrievalInstructionVersionSummaries" +_LRIV = "ListRetrievalInstructionVersions" +_URII = "UpdateRetrievalInstructionInput" +_cURIR = "com.amazonaws.bedrockagent#UpdateRetrievalInstructionRequest" +_URIO = "UpdateRetrievalInstructionOutput" +_cURIRo = "com.amazonaws.bedrockagent#UpdateRetrievalInstructionResponse" +_URI = "UpdateRetrievalInstruction" _TRA = "TaggableResourcesArn" _LTFRI = "ListTagsForResourceInput" _cLTFRR = "com.amazonaws.bedrockagent#ListTagsForResourceRequest" @@ -1672,7 +1756,7 @@ _cTRRo = "com.amazonaws.bedrockagent#TagResourceResponse" _TR = "TagResource" _TKL = "TagKeyList" -_URI = "UntagResourceInput" +_URIn = "UntagResourceInput" _cURR = "com.amazonaws.bedrockagent#UntagResourceRequest" _tKa = "tagKeys" _URO = "UntagResourceOutput" @@ -1740,7 +1824,7 @@ _GFV = "GetFlowVersion" _VFD = "ValidateFlowDefinition" _CFr = "CreateFlow" -_UF = "UpdateFlow" +_UFp = "UpdateFlow" _ABABTL = "AmazonBedrockAgentBuildTimeLambda" _aw = "aws.auth#sigv4" _aws = "aws.api#service" @@ -8221,6 +8305,44 @@ KNOWLEDGE_BASE_ARN: StaticSchema = (3, n0, _KBA, 0) +METADATA_KEY_NAME: StaticSchema = (3, n0, _MKN, 4) + +SEARCHABLE_STATUS: StaticSchema = ( + 14, + n0, + _SSe, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +FIELD_TYPE: StaticSchema = ( + 14, + n0, + _FT, + 0, + (_STRING, _SL__), + ((-1, {_sV: _STRING}), (-1, {_sV: _SL__})), +) + +METADATA_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MCe, + 0, + (_na, _t, _sea), + ((METADATA_KEY_NAME, 1), (FIELD_TYPE, 1), (SEARCHABLE_STATUS, 1)), +) + +METADATA_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _MCet, + 0, + (_me,), + ((METADATA_CONFIGURATION, 0),), +) + KNOWLEDGE_BASE_STATUS: StaticSchema = ( 14, n0, @@ -8243,7 +8365,7 @@ n0, _KBn, 0, - (_kBI, _na, _kBA, _d, _rAo, _kBC, _sCto, _sta, _cA, _uA, _fR), + (_kBI, _na, _kBA, _d, _rAo, _kBC, _sCto, _sta, _cA, _uA, _fR, _mCet), ( (ID, 1), (NAME, 1), @@ -8256,6 +8378,7 @@ (DATE_TIMESTAMP, 1), (DATE_TIMESTAMP, 1), (FAILURE_REASONS, 0), + (METADATA_CONFIGURATIONS, 0), ), ) @@ -8604,7 +8727,7 @@ n0, _UKBI, {_sSI: _cUKBR, _smit: None}, - (_kBI, _na, _d, _rAo, _kBC, _sCto), + (_kBI, _na, _d, _rAo, _kBC, _sCto, _mCet), ( (ID, 9), (NAME, 1), @@ -8612,6 +8735,7 @@ (KNOWLEDGE_BASE_ROLE_ARN, 1), (KNOWLEDGE_BASE_CONFIGURATION, 1), (STORAGE_CONFIGURATION, 0), + (METADATA_CONFIGURATIONS, 0), ), ) @@ -9149,6 +9273,505 @@ ), ) +RETRIEVAL_INSTRUCTION_DESCRIPTION: StaticSchema = (3, n0, _RID, 4) + +RETRIEVAL_INSTRUCTION_FIELD_TEXT: StaticSchema = (3, n0, _RIFT, 4) + +RETRIEVAL_INSTRUCTION_CONTENT: StaticSchema = ( + 18, + n0, + _RIC, + 4, + (_rG, _pe, _aF, _aP), + ( + (RETRIEVAL_INSTRUCTION_FIELD_TEXT, 0), + (RETRIEVAL_INSTRUCTION_FIELD_TEXT, 0), + (RETRIEVAL_INSTRUCTION_FIELD_TEXT, 0), + (RETRIEVAL_INSTRUCTION_FIELD_TEXT, 0), + ), +) + +RETRIEVAL_INSTRUCTION_NAME: StaticSchema = (3, n0, _RIN, 4) + +CREATE_RETRIEVAL_INSTRUCTION_INPUT: StaticSchema = ( + 18, + n0, + _CRII, + {_sSI: _cCRIR, _smit: None}, + (_cT, _na, _in, _d, _cEKA, _ta), + ( + (CLIENT_TOKEN, 2), + (RETRIEVAL_INSTRUCTION_NAME, 1), + (RETRIEVAL_INSTRUCTION_CONTENT, 1), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + (KMS_KEY_ARN, 0), + (TAGS_MAP, 0), + ), +) + +RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS: StaticSchema = ( + 14, + n0, + _RILTS, + 0, + (_CREATING, _UPDATING, _CS_, _CF, _US, _UF), + ( + (-1, {_sV: _CREATING}), + (-1, {_sV: _UPDATING}), + (-1, {_sV: _CS_}), + (-1, {_sV: _CF}), + (-1, {_sV: _US}), + (-1, {_sV: _UF}), + ), +) + +RETRIEVAL_INSTRUCTION_ARN: StaticSchema = (3, n0, _RIA, 0) + +RETRIEVAL_INSTRUCTION_ID: StaticSchema = (3, n0, _RII, 0) + +RETRIEVAL_INSTRUCTION_STATUS: StaticSchema = ( + 14, + n0, + _RIS, + 0, + (_ACTIVE, _INACTIVE), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _INACTIVE})), +) + +CREATE_RETRIEVAL_INSTRUCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CRIO, + {_sSI: _cCRIRo, _smith: None}, + (_rII, _rIA, _na, _sta, _lTS, _cA, _uA), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NAME, 1), + (RETRIEVAL_INSTRUCTION_STATUS, 1), + (RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS, 1), + (DATE_TIMESTAMP, 1), + (DATE_TIMESTAMP, 1), + ), +) + +CREATE_RETRIEVAL_INSTRUCTION: StaticOperationSchema = ( + 23, + n0, + _CRI, + { + _smithy: MappingProxyType( + {"code": 202, "method": "POST", "uri": "/retrievalinstructions/"} + ) + }, + CREATE_RETRIEVAL_INSTRUCTION_INPUT, + CREATE_RETRIEVAL_INSTRUCTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +CREATE_RETRIEVAL_INSTRUCTION_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _CRIVI, + {_sSI: _cCRIVR, _smit: None}, + (_rII, _d, _cT), + ( + (RETRIEVAL_INSTRUCTION_ID, 9), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + (CLIENT_TOKEN, 2), + ), +) + +RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION: StaticSchema = (3, n0, _RINV, 0) + +CREATE_RETRIEVAL_INSTRUCTION_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CRIVO, + {_sSI: _cCRIVRo, _smith: None}, + (_rII, _rIA, _ve, _cA, _d), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION, 1), + (DATE_TIMESTAMP, 1), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + ), +) + +CREATE_RETRIEVAL_INSTRUCTION_VERSION: StaticOperationSchema = ( + 23, + n0, + _CRIV, + { + _smithy: MappingProxyType( + { + "code": 201, + "method": "POST", + "uri": "/retrievalinstructions/{retrievalInstructionId}/versions", + } + ) + }, + CREATE_RETRIEVAL_INSTRUCTION_VERSION_INPUT, + CREATE_RETRIEVAL_INSTRUCTION_VERSION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_RETRIEVAL_INSTRUCTION_INPUT: StaticSchema = ( + 18, + n0, + _DRII, + {_sSI: _cDRIR, _smit: None}, + (_rII, _rIV), + ( + (RETRIEVAL_INSTRUCTION_ID, 9), + (RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION, {_sQ: _rIV}), + ), +) + +DELETE_RETRIEVAL_INSTRUCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DRIO, + {_sSI: _cDRIRo, _smith: None}, + (_rII, _rIA, _ve), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION, 0), + ), +) + +DELETE_RETRIEVAL_INSTRUCTION: StaticOperationSchema = ( + 23, + n0, + _DRI, + { + _smithy: MappingProxyType( + { + "code": 200, + "method": "DELETE", + "uri": "/retrievalinstructions/{retrievalInstructionId}", + } + ) + }, + DELETE_RETRIEVAL_INSTRUCTION_INPUT, + DELETE_RETRIEVAL_INSTRUCTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +RETRIEVAL_INSTRUCTION_VERSION_SELECTOR: StaticSchema = (3, n0, _RIVS, 0) + +GET_RETRIEVAL_INSTRUCTION_INPUT: StaticSchema = ( + 18, + n0, + _GRII, + {_sSI: _cGRIR, _smit: None}, + (_rII, _rIV), + ( + (RETRIEVAL_INSTRUCTION_ID, 9), + (RETRIEVAL_INSTRUCTION_VERSION_SELECTOR, {_sQ: _rIV}), + ), +) + +RETRIEVAL_INSTRUCTION_FAILURE_REASON_CODE: StaticSchema = ( + 14, + n0, + _RIFRC, + 0, + (_CR_, _CE_, _IE_), + ((-1, {_sV: _CR_}), (-1, {_sV: _CE_}), (-1, {_sV: _IE_})), +) + +RETRIEVAL_INSTRUCTION_FIELD_NAME: StaticSchema = ( + 14, + n0, + _RIFN, + 0, + (_RG, _PERSONA, _AF, _AP), + ((-1, {_sV: _RG}), (-1, {_sV: _PERSONA}), (-1, {_sV: _AF}), (-1, {_sV: _AP})), +) + +RETRIEVAL_INSTRUCTION_FAILURE_REASON: StaticSchema = ( + 18, + n0, + _RIFR, + 0, + (_fN, _cod, _m), + ( + (RETRIEVAL_INSTRUCTION_FIELD_NAME, 0), + (RETRIEVAL_INSTRUCTION_FAILURE_REASON_CODE, 1), + (3, 1), + ), +) + +RETRIEVAL_INSTRUCTION_FAILURE_REASONS: StaticSchema = ( + 16, + n0, + _RIFRe, + 0, + (_me,), + ((RETRIEVAL_INSTRUCTION_FAILURE_REASON, 0),), +) + +GET_RETRIEVAL_INSTRUCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GRIO, + {_sSI: _cGRIRo, _smith: None}, + (_rII, _rIA, _na, _sta, _lTS, _in, _cA, _uA, _d, _cEKA, _lTSR, _ve, _lV), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NAME, 1), + (RETRIEVAL_INSTRUCTION_STATUS, 1), + (RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS, 1), + (RETRIEVAL_INSTRUCTION_CONTENT, 0), + (DATE_TIMESTAMP, 1), + (DATE_TIMESTAMP, 1), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + (KMS_KEY_ARN, 0), + (RETRIEVAL_INSTRUCTION_FAILURE_REASONS, 0), + (RETRIEVAL_INSTRUCTION_VERSION_SELECTOR, 0), + (RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION, 0), + ), +) + +GET_RETRIEVAL_INSTRUCTION: StaticOperationSchema = ( + 23, + n0, + _GRI, + { + _smithy: MappingProxyType( + { + "code": 200, + "method": "GET", + "uri": "/retrievalinstructions/{retrievalInstructionId}", + } + ) + }, + GET_RETRIEVAL_INSTRUCTION_INPUT, + GET_RETRIEVAL_INSTRUCTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +RETRIEVAL_INSTRUCTION_MAX_RESULTS: StaticSchema = (7, n0, _RIMR, 0) + +LIST_RETRIEVAL_INSTRUCTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LRII, + {_sSI: _cLRIR, _smit: None}, + (_sta, _mR, _nT), + ( + (RETRIEVAL_INSTRUCTION_STATUS, {_sQ: _sta}), + (RETRIEVAL_INSTRUCTION_MAX_RESULTS, {_sQ: _mR}), + (NEXT_TOKEN, {_sQ: _nT}), + ), +) + +RETRIEVAL_INSTRUCTION_SUMMARY: StaticSchema = ( + 18, + n0, + _RISe, + 0, + (_rII, _rIA, _na, _sta, _lTS, _cA, _uA, _d), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NAME, 1), + (RETRIEVAL_INSTRUCTION_STATUS, 1), + (RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS, 1), + (DATE_TIMESTAMP, 1), + (DATE_TIMESTAMP, 1), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + ), +) + +RETRIEVAL_INSTRUCTION_SUMMARIES: StaticSchema = ( + 16, + n0, + _RISet, + 0, + (_me,), + ((RETRIEVAL_INSTRUCTION_SUMMARY, 0),), +) + +LIST_RETRIEVAL_INSTRUCTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRIO, + {_sSI: _cLRIRo, _smith: None}, + (_rIS, _nT), + ((RETRIEVAL_INSTRUCTION_SUMMARIES, 1), (NEXT_TOKEN, 0)), +) + +LIST_RETRIEVAL_INSTRUCTIONS: StaticOperationSchema = ( + 23, + n0, + _LRI, + { + _smithy: MappingProxyType( + {"code": 200, "method": "GET", "uri": "/retrievalinstructions/"} + ) + }, + LIST_RETRIEVAL_INSTRUCTIONS_INPUT, + LIST_RETRIEVAL_INSTRUCTIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_RETRIEVAL_INSTRUCTION_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _LRIVI, + {_sSI: _cLRIVR, _smit: None}, + (_rII, _mR, _nT), + ( + (RETRIEVAL_INSTRUCTION_ID, 9), + (RETRIEVAL_INSTRUCTION_MAX_RESULTS, {_sQ: _mR}), + (NEXT_TOKEN, {_sQ: _nT}), + ), +) + +RETRIEVAL_INSTRUCTION_VERSION_SUMMARY: StaticSchema = ( + 18, + n0, + _RIVSe, + 0, + (_ve, _cA), + ((RETRIEVAL_INSTRUCTION_NUMERICAL_VERSION, 1), (DATE_TIMESTAMP, 1)), +) + +RETRIEVAL_INSTRUCTION_VERSION_SUMMARIES: StaticSchema = ( + 16, + n0, + _RIVSet, + 0, + (_me,), + ((RETRIEVAL_INSTRUCTION_VERSION_SUMMARY, 0),), +) + +LIST_RETRIEVAL_INSTRUCTION_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRIVO, + {_sSI: _cLRIVRo, _smith: None}, + (_rIVS, _nT), + ((RETRIEVAL_INSTRUCTION_VERSION_SUMMARIES, 1), (NEXT_TOKEN, 0)), +) + +LIST_RETRIEVAL_INSTRUCTION_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _LRIV, + { + _smithy: MappingProxyType( + { + "code": 200, + "method": "GET", + "uri": "/retrievalinstructions/{retrievalInstructionId}/versions", + } + ) + }, + LIST_RETRIEVAL_INSTRUCTION_VERSIONS_INPUT, + LIST_RETRIEVAL_INSTRUCTION_VERSIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_RETRIEVAL_INSTRUCTION_INPUT: StaticSchema = ( + 18, + n0, + _URII, + {_sSI: _cURIR, _smit: None}, + (_rII, _in, _d), + ( + (RETRIEVAL_INSTRUCTION_ID, 9), + (RETRIEVAL_INSTRUCTION_CONTENT, 1), + (RETRIEVAL_INSTRUCTION_DESCRIPTION, 0), + ), +) + +UPDATE_RETRIEVAL_INSTRUCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _URIO, + {_sSI: _cURIRo, _smith: None}, + (_rII, _rIA, _na, _sta, _lTS, _cA, _uA), + ( + (RETRIEVAL_INSTRUCTION_ID, 1), + (RETRIEVAL_INSTRUCTION_ARN, 1), + (RETRIEVAL_INSTRUCTION_NAME, 1), + (RETRIEVAL_INSTRUCTION_STATUS, 1), + (RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS, 1), + (DATE_TIMESTAMP, 1), + (DATE_TIMESTAMP, 1), + ), +) + +UPDATE_RETRIEVAL_INSTRUCTION: StaticOperationSchema = ( + 23, + n0, + _URI, + { + _smithy: MappingProxyType( + { + "code": 202, + "method": "PUT", + "uri": "/retrievalinstructions/{retrievalInstructionId}", + } + ) + }, + UPDATE_RETRIEVAL_INSTRUCTION_INPUT, + UPDATE_RETRIEVAL_INSTRUCTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + TAGGABLE_RESOURCES_ARN: StaticSchema = (3, n0, _TRA, 0) LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( @@ -9226,7 +9849,7 @@ UNTAG_RESOURCE_INPUT: StaticSchema = ( 18, n0, - _URI, + _URIn, {_sSI: _cURR, _smit: None}, (_rAe, _tKa), ((TAGGABLE_RESOURCES_ARN, 9), (TAG_KEY_LIST, {_sQ: _tKa, _smi: None})), @@ -9715,7 +10338,7 @@ UPDATE_FLOW: StaticOperationSchema = ( 23, n0, - _UF, + _UFp, { _smithy: MappingProxyType( {"code": 200, "method": "PUT", "uri": "/flows/{flowIdentifier}/"} diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/client.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/client.py index 95bd0b37..90876a93 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/client.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/client.py @@ -44,6 +44,10 @@ CreatePromptOutput, CreatePromptVersionInput, CreatePromptVersionOutput, + CreateRetrievalInstructionInput, + CreateRetrievalInstructionOutput, + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, CreateVpcConfigurationInput, CreateVpcConfigurationOutput, DeleteAgentActionGroupInput, @@ -70,6 +74,8 @@ DeletePromptOutput, DeleteResourcePolicyInput, DeleteResourcePolicyOutput, + DeleteRetrievalInstructionInput, + DeleteRetrievalInstructionOutput, DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, DisassociateAgentCollaboratorInput, @@ -106,6 +112,8 @@ GetPromptOutput, GetResourcePolicyInput, GetResourcePolicyOutput, + GetRetrievalInstructionInput, + GetRetrievalInstructionOutput, GetVpcConfigurationInput, GetVpcConfigurationOutput, IngestKnowledgeBaseDocumentsInput, @@ -138,6 +146,10 @@ ListKnowledgeBasesOutput, ListPromptsInput, ListPromptsOutput, + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + ListRetrievalInstructionsInput, + ListRetrievalInstructionsOutput, ListTagsForResourceInput, ListTagsForResourceOutput, ListVpcConfigurationsInput, @@ -176,6 +188,8 @@ UpdateKnowledgeBaseOutput, UpdatePromptInput, UpdatePromptOutput, + UpdateRetrievalInstructionInput, + UpdateRetrievalInstructionOutput, ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, ) @@ -585,6 +599,60 @@ async def create_prompt_version( """ return await self._invoke(input, _models.CREATE_PROMPT_VERSION, [], plugins) + async def create_retrieval_instruction( + self, + input: CreateRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> CreateRetrievalInstructionOutput: + """ + Creates a new retrieval instruction. The retrieval instruction is usable + once its status becomes ACTIVE. Use GetRetrievalInstruction to check + whether it is ready. + + Args: + input: + An instance of `CreateRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRetrievalInstructionOutput`. + """ + return await self._invoke( + input, _models.CREATE_RETRIEVAL_INSTRUCTION, [], plugins + ) + + async def create_retrieval_instruction_version( + self, + input: CreateRetrievalInstructionVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateRetrievalInstructionVersionOutput: + """ + Creates an immutable numbered version from the retrieval instruction's + current reviewed content. The service creates the version synchronously. + + The service numbers versions from 1 and assigns them in order, never + reusing a number. + + Args: + input: + An instance of `CreateRetrievalInstructionVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRetrievalInstructionVersionOutput`. + """ + return await self._invoke( + input, _models.CREATE_RETRIEVAL_INSTRUCTION_VERSION, [], plugins + ) + async def create_vpc_configuration( self, input: CreateVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> CreateVpcConfigurationOutput: @@ -869,6 +937,36 @@ async def delete_resource_policy( """ return await self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + async def delete_retrieval_instruction( + self, + input: DeleteRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteRetrievalInstructionOutput: + """ + Deletes a retrieval instruction or a single version of it. Omit + retrievalInstructionVersion to delete the retrieval instruction itself; + the service rejects that request with ConflictException while the + retrieval instruction has versions or while lastTransitionStatus is + CREATING or UPDATING. Specify retrievalInstructionVersion to delete only + that version; the retrieval instruction and its other versions are + unaffected. + + Args: + input: + An instance of `DeleteRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRetrievalInstructionOutput`. + """ + return await self._invoke( + input, _models.DELETE_RETRIEVAL_INSTRUCTION, [], plugins + ) + async def delete_vpc_configuration( self, input: DeleteVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> DeleteVpcConfigurationOutput: @@ -1264,6 +1362,27 @@ async def get_resource_policy( """ return await self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + async def get_retrieval_instruction( + self, input: GetRetrievalInstructionInput, plugins: list[Plugin] | None = None + ) -> GetRetrievalInstructionOutput: + """ + Gets a retrieval instruction. Also used to poll the terminal reporting + of an asynchronous create or update. + + Args: + input: + An instance of `GetRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRetrievalInstructionOutput`. + """ + return await self._invoke(input, _models.GET_RETRIEVAL_INSTRUCTION, [], plugins) + async def get_vpc_configuration( self, input: GetVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> GetVpcConfigurationOutput: @@ -1623,6 +1742,56 @@ async def list_prompts( """ return await self._invoke(input, _models.LIST_PROMPTS, [], plugins) + async def list_retrieval_instructions( + self, input: ListRetrievalInstructionsInput, plugins: list[Plugin] | None = None + ) -> ListRetrievalInstructionsOutput: + """ + Lists the retrieval instructions in the caller's account. Results are + paginated. Use the nextToken parameter to retrieve additional results. + + Args: + input: + An instance of `ListRetrievalInstructionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetrievalInstructionsOutput`. + """ + return await self._invoke( + input, _models.LIST_RETRIEVAL_INSTRUCTIONS, [], plugins + ) + + async def list_retrieval_instruction_versions( + self, + input: ListRetrievalInstructionVersionsInput, + plugins: list[Plugin] | None = None, + ) -> ListRetrievalInstructionVersionsOutput: + """ + Lists the numbered versions of a retrieval instruction, newest first. + DRAFT is not listed; read it with GetRetrievalInstruction without + retrievalInstructionVersion. Results are paginated. Use the nextToken + parameter to retrieve additional results. + + Args: + input: + An instance of `ListRetrievalInstructionVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetrievalInstructionVersionsOutput`. + """ + return await self._invoke( + input, _models.LIST_RETRIEVAL_INSTRUCTION_VERSIONS, [], plugins + ) + async def list_tags_for_resource( self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None ) -> ListTagsForResourceOutput: @@ -2055,6 +2224,34 @@ async def update_prompt( """ return await self._invoke(input, _models.UPDATE_PROMPT, [], plugins) + async def update_retrieval_instruction( + self, + input: UpdateRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateRetrievalInstructionOutput: + """ + Updates the content of a retrieval instruction. The update is processed + asynchronously; the stored content is a candidate until content review + passes, and the served content does not change while the update is in + flight. The service rejects the request with ConflictException while + lastTransitionStatus is CREATING or UPDATING. + + Args: + input: + An instance of `UpdateRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRetrievalInstructionOutput`. + """ + return await self._invoke( + input, _models.UPDATE_RETRIEVAL_INSTRUCTION, [], plugins + ) + async def validate_flow_definition( self, input: ValidateFlowDefinitionInput, plugins: list[Plugin] | None = None ) -> ValidateFlowDefinitionOutput: diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/config.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/config.py index 6835a865..5632c6f0 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/config.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/aio/config.py @@ -73,6 +73,10 @@ CreatePromptOutput, CreatePromptVersionInput, CreatePromptVersionOutput, + CreateRetrievalInstructionInput, + CreateRetrievalInstructionOutput, + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, CreateVpcConfigurationInput, CreateVpcConfigurationOutput, DeleteAgentActionGroupInput, @@ -99,6 +103,8 @@ DeletePromptOutput, DeleteResourcePolicyInput, DeleteResourcePolicyOutput, + DeleteRetrievalInstructionInput, + DeleteRetrievalInstructionOutput, DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, DisassociateAgentCollaboratorInput, @@ -135,6 +141,8 @@ GetPromptOutput, GetResourcePolicyInput, GetResourcePolicyOutput, + GetRetrievalInstructionInput, + GetRetrievalInstructionOutput, GetVpcConfigurationInput, GetVpcConfigurationOutput, IngestKnowledgeBaseDocumentsInput, @@ -167,6 +175,10 @@ ListKnowledgeBasesOutput, ListPromptsInput, ListPromptsOutput, + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + ListRetrievalInstructionsInput, + ListRetrievalInstructionsOutput, ListTagsForResourceInput, ListTagsForResourceOutput, ListVpcConfigurationsInput, @@ -205,6 +217,8 @@ UpdateKnowledgeBaseOutput, UpdatePromptInput, UpdatePromptOutput, + UpdateRetrievalInstructionInput, + UpdateRetrievalInstructionOutput, ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, ) @@ -231,6 +245,15 @@ Interceptor[CreateKnowledgeBaseInput, CreateKnowledgeBaseOutput, Any, Any], Interceptor[CreatePromptInput, CreatePromptOutput, Any, Any], Interceptor[CreatePromptVersionInput, CreatePromptVersionOutput, Any, Any], + Interceptor[ + CreateRetrievalInstructionInput, CreateRetrievalInstructionOutput, Any, Any + ], + Interceptor[ + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, + Any, + Any, + ], Interceptor[ CreateVpcConfigurationInput, CreateVpcConfigurationOutput, Any, Any ], @@ -253,6 +276,9 @@ ], Interceptor[DeletePromptInput, DeletePromptOutput, Any, Any], Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[ + DeleteRetrievalInstructionInput, DeleteRetrievalInstructionOutput, Any, Any + ], Interceptor[ DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, Any, Any ], @@ -285,6 +311,9 @@ ], Interceptor[GetPromptInput, GetPromptOutput, Any, Any], Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[ + GetRetrievalInstructionInput, GetRetrievalInstructionOutput, Any, Any + ], Interceptor[GetVpcConfigurationInput, GetVpcConfigurationOutput, Any, Any], Interceptor[ IngestKnowledgeBaseDocumentsInput, @@ -312,6 +341,15 @@ ], Interceptor[ListKnowledgeBasesInput, ListKnowledgeBasesOutput, Any, Any], Interceptor[ListPromptsInput, ListPromptsOutput, Any, Any], + Interceptor[ + ListRetrievalInstructionsInput, ListRetrievalInstructionsOutput, Any, Any + ], + Interceptor[ + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + Any, + Any, + ], Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], Interceptor[ListVpcConfigurationsInput, ListVpcConfigurationsOutput, Any, Any], Interceptor[PrepareAgentInput, PrepareAgentOutput, Any, Any], @@ -337,6 +375,9 @@ Interceptor[UpdateFlowAliasInput, UpdateFlowAliasOutput, Any, Any], Interceptor[UpdateKnowledgeBaseInput, UpdateKnowledgeBaseOutput, Any, Any], Interceptor[UpdatePromptInput, UpdatePromptOutput, Any, Any], + Interceptor[ + UpdateRetrievalInstructionInput, UpdateRetrievalInstructionOutput, Any, Any + ], Interceptor[ ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, Any, Any ], diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/client.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/client.py index 149204b9..78e98e54 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/client.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/client.py @@ -44,6 +44,10 @@ CreatePromptOutput, CreatePromptVersionInput, CreatePromptVersionOutput, + CreateRetrievalInstructionInput, + CreateRetrievalInstructionOutput, + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, CreateVpcConfigurationInput, CreateVpcConfigurationOutput, DeleteAgentActionGroupInput, @@ -70,6 +74,8 @@ DeletePromptOutput, DeleteResourcePolicyInput, DeleteResourcePolicyOutput, + DeleteRetrievalInstructionInput, + DeleteRetrievalInstructionOutput, DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, DisassociateAgentCollaboratorInput, @@ -106,6 +112,8 @@ GetPromptOutput, GetResourcePolicyInput, GetResourcePolicyOutput, + GetRetrievalInstructionInput, + GetRetrievalInstructionOutput, GetVpcConfigurationInput, GetVpcConfigurationOutput, IngestKnowledgeBaseDocumentsInput, @@ -138,6 +146,10 @@ ListKnowledgeBasesOutput, ListPromptsInput, ListPromptsOutput, + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + ListRetrievalInstructionsInput, + ListRetrievalInstructionsOutput, ListTagsForResourceInput, ListTagsForResourceOutput, ListVpcConfigurationsInput, @@ -176,6 +188,8 @@ UpdateKnowledgeBaseOutput, UpdatePromptInput, UpdatePromptOutput, + UpdateRetrievalInstructionInput, + UpdateRetrievalInstructionOutput, ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, ) @@ -581,6 +595,58 @@ def create_prompt_version( """ return self._invoke(input, _models.CREATE_PROMPT_VERSION, [], plugins) + def create_retrieval_instruction( + self, + input: CreateRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> CreateRetrievalInstructionOutput: + """ + Creates a new retrieval instruction. The retrieval instruction is usable + once its status becomes ACTIVE. Use GetRetrievalInstruction to check + whether it is ready. + + Args: + input: + An instance of `CreateRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRetrievalInstructionOutput`. + """ + return self._invoke(input, _models.CREATE_RETRIEVAL_INSTRUCTION, [], plugins) + + def create_retrieval_instruction_version( + self, + input: CreateRetrievalInstructionVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateRetrievalInstructionVersionOutput: + """ + Creates an immutable numbered version from the retrieval instruction's + current reviewed content. The service creates the version synchronously. + + The service numbers versions from 1 and assigns them in order, never + reusing a number. + + Args: + input: + An instance of `CreateRetrievalInstructionVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRetrievalInstructionVersionOutput`. + """ + return self._invoke( + input, _models.CREATE_RETRIEVAL_INSTRUCTION_VERSION, [], plugins + ) + def create_vpc_configuration( self, input: CreateVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> CreateVpcConfigurationOutput: @@ -863,6 +929,34 @@ def delete_resource_policy( """ return self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + def delete_retrieval_instruction( + self, + input: DeleteRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteRetrievalInstructionOutput: + """ + Deletes a retrieval instruction or a single version of it. Omit + retrievalInstructionVersion to delete the retrieval instruction itself; + the service rejects that request with ConflictException while the + retrieval instruction has versions or while lastTransitionStatus is + CREATING or UPDATING. Specify retrievalInstructionVersion to delete only + that version; the retrieval instruction and its other versions are + unaffected. + + Args: + input: + An instance of `DeleteRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRetrievalInstructionOutput`. + """ + return self._invoke(input, _models.DELETE_RETRIEVAL_INSTRUCTION, [], plugins) + def delete_vpc_configuration( self, input: DeleteVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> DeleteVpcConfigurationOutput: @@ -1254,6 +1348,27 @@ def get_resource_policy( """ return self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + def get_retrieval_instruction( + self, input: GetRetrievalInstructionInput, plugins: list[Plugin] | None = None + ) -> GetRetrievalInstructionOutput: + """ + Gets a retrieval instruction. Also used to poll the terminal reporting + of an asynchronous create or update. + + Args: + input: + An instance of `GetRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRetrievalInstructionOutput`. + """ + return self._invoke(input, _models.GET_RETRIEVAL_INSTRUCTION, [], plugins) + def get_vpc_configuration( self, input: GetVpcConfigurationInput, plugins: list[Plugin] | None = None ) -> GetVpcConfigurationOutput: @@ -1609,6 +1724,56 @@ def list_prompts( """ return self._invoke(input, _models.LIST_PROMPTS, [], plugins) + def list_retrieval_instructions( + self, + input: ListRetrievalInstructionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListRetrievalInstructionsOutput: + """ + Lists the retrieval instructions in the caller's account. Results are + paginated. Use the nextToken parameter to retrieve additional results. + + Args: + input: + An instance of `ListRetrievalInstructionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetrievalInstructionsOutput`. + """ + return self._invoke(input, _models.LIST_RETRIEVAL_INSTRUCTIONS, [], plugins) + + def list_retrieval_instruction_versions( + self, + input: ListRetrievalInstructionVersionsInput, + plugins: list[Plugin] | None = None, + ) -> ListRetrievalInstructionVersionsOutput: + """ + Lists the numbered versions of a retrieval instruction, newest first. + DRAFT is not listed; read it with GetRetrievalInstruction without + retrievalInstructionVersion. Results are paginated. Use the nextToken + parameter to retrieve additional results. + + Args: + input: + An instance of `ListRetrievalInstructionVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetrievalInstructionVersionsOutput`. + """ + return self._invoke( + input, _models.LIST_RETRIEVAL_INSTRUCTION_VERSIONS, [], plugins + ) + def list_tags_for_resource( self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None ) -> ListTagsForResourceOutput: @@ -2039,6 +2204,32 @@ def update_prompt( """ return self._invoke(input, _models.UPDATE_PROMPT, [], plugins) + def update_retrieval_instruction( + self, + input: UpdateRetrievalInstructionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateRetrievalInstructionOutput: + """ + Updates the content of a retrieval instruction. The update is processed + asynchronously; the stored content is a candidate until content review + passes, and the served content does not change while the update is in + flight. The service rejects the request with ConflictException while + lastTransitionStatus is CREATING or UPDATING. + + Args: + input: + An instance of `UpdateRetrievalInstructionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRetrievalInstructionOutput`. + """ + return self._invoke(input, _models.UPDATE_RETRIEVAL_INSTRUCTION, [], plugins) + def validate_flow_definition( self, input: ValidateFlowDefinitionInput, plugins: list[Plugin] | None = None ) -> ValidateFlowDefinitionOutput: diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/config.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/config.py index a730f0b6..fc128141 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/config.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/config.py @@ -68,6 +68,10 @@ CreatePromptOutput, CreatePromptVersionInput, CreatePromptVersionOutput, + CreateRetrievalInstructionInput, + CreateRetrievalInstructionOutput, + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, CreateVpcConfigurationInput, CreateVpcConfigurationOutput, DeleteAgentActionGroupInput, @@ -94,6 +98,8 @@ DeletePromptOutput, DeleteResourcePolicyInput, DeleteResourcePolicyOutput, + DeleteRetrievalInstructionInput, + DeleteRetrievalInstructionOutput, DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, DisassociateAgentCollaboratorInput, @@ -130,6 +136,8 @@ GetPromptOutput, GetResourcePolicyInput, GetResourcePolicyOutput, + GetRetrievalInstructionInput, + GetRetrievalInstructionOutput, GetVpcConfigurationInput, GetVpcConfigurationOutput, IngestKnowledgeBaseDocumentsInput, @@ -162,6 +170,10 @@ ListKnowledgeBasesOutput, ListPromptsInput, ListPromptsOutput, + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + ListRetrievalInstructionsInput, + ListRetrievalInstructionsOutput, ListTagsForResourceInput, ListTagsForResourceOutput, ListVpcConfigurationsInput, @@ -200,6 +212,8 @@ UpdateKnowledgeBaseOutput, UpdatePromptInput, UpdatePromptOutput, + UpdateRetrievalInstructionInput, + UpdateRetrievalInstructionOutput, ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, ) @@ -226,6 +240,15 @@ Interceptor[CreateKnowledgeBaseInput, CreateKnowledgeBaseOutput, Any, Any], Interceptor[CreatePromptInput, CreatePromptOutput, Any, Any], Interceptor[CreatePromptVersionInput, CreatePromptVersionOutput, Any, Any], + Interceptor[ + CreateRetrievalInstructionInput, CreateRetrievalInstructionOutput, Any, Any + ], + Interceptor[ + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, + Any, + Any, + ], Interceptor[ CreateVpcConfigurationInput, CreateVpcConfigurationOutput, Any, Any ], @@ -248,6 +271,9 @@ ], Interceptor[DeletePromptInput, DeletePromptOutput, Any, Any], Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[ + DeleteRetrievalInstructionInput, DeleteRetrievalInstructionOutput, Any, Any + ], Interceptor[ DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, Any, Any ], @@ -280,6 +306,9 @@ ], Interceptor[GetPromptInput, GetPromptOutput, Any, Any], Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[ + GetRetrievalInstructionInput, GetRetrievalInstructionOutput, Any, Any + ], Interceptor[GetVpcConfigurationInput, GetVpcConfigurationOutput, Any, Any], Interceptor[ IngestKnowledgeBaseDocumentsInput, @@ -307,6 +336,15 @@ ], Interceptor[ListKnowledgeBasesInput, ListKnowledgeBasesOutput, Any, Any], Interceptor[ListPromptsInput, ListPromptsOutput, Any, Any], + Interceptor[ + ListRetrievalInstructionsInput, ListRetrievalInstructionsOutput, Any, Any + ], + Interceptor[ + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + Any, + Any, + ], Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], Interceptor[ListVpcConfigurationsInput, ListVpcConfigurationsOutput, Any, Any], Interceptor[PrepareAgentInput, PrepareAgentOutput, Any, Any], @@ -332,6 +370,9 @@ Interceptor[UpdateFlowAliasInput, UpdateFlowAliasOutput, Any, Any], Interceptor[UpdateKnowledgeBaseInput, UpdateKnowledgeBaseOutput, Any, Any], Interceptor[UpdatePromptInput, UpdatePromptOutput, Any, Any], + Interceptor[ + UpdateRetrievalInstructionInput, UpdateRetrievalInstructionOutput, Any, Any + ], Interceptor[ ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, Any, Any ], diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.py b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.py index 491012af..e59fe014 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.py +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.py @@ -111,6 +111,10 @@ class ServiceError(ModeledError): "CreatePromptOutput": "CREATE_PROMPT_OUTPUT", "CreatePromptVersionInput": "CREATE_PROMPT_VERSION_INPUT", "CreatePromptVersionOutput": "CREATE_PROMPT_VERSION_OUTPUT", + "CreateRetrievalInstructionInput": "CREATE_RETRIEVAL_INSTRUCTION_INPUT", + "CreateRetrievalInstructionOutput": "CREATE_RETRIEVAL_INSTRUCTION_OUTPUT", + "CreateRetrievalInstructionVersionInput": "CREATE_RETRIEVAL_INSTRUCTION_VERSION_INPUT", + "CreateRetrievalInstructionVersionOutput": "CREATE_RETRIEVAL_INSTRUCTION_VERSION_OUTPUT", "CreateVpcConfigurationInput": "CREATE_VPC_CONFIGURATION_INPUT", "CreateVpcConfigurationOutput": "CREATE_VPC_CONFIGURATION_OUTPUT", "CreationMode": "CREATION_MODE", @@ -159,6 +163,8 @@ class ServiceError(ModeledError): "DeletePromptOutput": "DELETE_PROMPT_OUTPUT", "DeleteResourcePolicyInput": "DELETE_RESOURCE_POLICY_INPUT", "DeleteResourcePolicyOutput": "DELETE_RESOURCE_POLICY_OUTPUT", + "DeleteRetrievalInstructionInput": "DELETE_RETRIEVAL_INSTRUCTION_INPUT", + "DeleteRetrievalInstructionOutput": "DELETE_RETRIEVAL_INSTRUCTION_OUTPUT", "DeleteVpcConfigurationInput": "DELETE_VPC_CONFIGURATION_INPUT", "DeleteVpcConfigurationOutput": "DELETE_VPC_CONFIGURATION_OUTPUT", "DeletionProtectionConfiguration": "DELETION_PROTECTION_CONFIGURATION", @@ -180,6 +186,7 @@ class ServiceError(ModeledError): "EnrichmentStrategyConfiguration": "ENRICHMENT_STRATEGY_CONFIGURATION", "EnrichmentStrategyMethod": "ENRICHMENT_STRATEGY_METHOD", "FieldForReranking": "FIELD_FOR_RERANKING", + "FieldType": "FIELD_TYPE", "FixedSizeChunkingConfiguration": "FIXED_SIZE_CHUNKING_CONFIGURATION", "FlowAliasConcurrencyConfiguration": "FLOW_ALIAS_CONCURRENCY_CONFIGURATION", "FlowAliasRoutingConfigurationListItem": "FLOW_ALIAS_ROUTING_CONFIGURATION_LIST_ITEM", @@ -293,6 +300,8 @@ class ServiceError(ModeledError): "GetPromptOutput": "GET_PROMPT_OUTPUT", "GetResourcePolicyInput": "GET_RESOURCE_POLICY_INPUT", "GetResourcePolicyOutput": "GET_RESOURCE_POLICY_OUTPUT", + "GetRetrievalInstructionInput": "GET_RETRIEVAL_INSTRUCTION_INPUT", + "GetRetrievalInstructionOutput": "GET_RETRIEVAL_INSTRUCTION_OUTPUT", "GetVpcConfigurationInput": "GET_VPC_CONFIGURATION_INPUT", "GetVpcConfigurationOutput": "GET_VPC_CONFIGURATION_OUTPUT", "GuardrailConfiguration": "GUARDRAIL_CONFIGURATION", @@ -367,6 +376,10 @@ class ServiceError(ModeledError): "ListKnowledgeBasesOutput": "LIST_KNOWLEDGE_BASES_OUTPUT", "ListPromptsInput": "LIST_PROMPTS_INPUT", "ListPromptsOutput": "LIST_PROMPTS_OUTPUT", + "ListRetrievalInstructionsInput": "LIST_RETRIEVAL_INSTRUCTIONS_INPUT", + "ListRetrievalInstructionsOutput": "LIST_RETRIEVAL_INSTRUCTIONS_OUTPUT", + "ListRetrievalInstructionVersionsInput": "LIST_RETRIEVAL_INSTRUCTION_VERSIONS_INPUT", + "ListRetrievalInstructionVersionsOutput": "LIST_RETRIEVAL_INSTRUCTION_VERSIONS_OUTPUT", "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", "ListVpcConfigurationsInput": "LIST_VPC_CONFIGURATIONS_INPUT", @@ -385,6 +398,7 @@ class ServiceError(ModeledError): "Message": "MESSAGE", "MetadataAttribute": "METADATA_ATTRIBUTE", "MetadataAttributeValue": "METADATA_ATTRIBUTE_VALUE", + "MetadataConfiguration": "METADATA_CONFIGURATION", "MetadataConfigurationForReranking": "METADATA_CONFIGURATION_FOR_RERANKING", "MetadataSourceType": "METADATA_SOURCE_TYPE", "MetadataValueType": "METADATA_VALUE_TYPE", @@ -496,6 +510,14 @@ class ServiceError(ModeledError): "RetrievalFlowNodeServiceConfiguration": "RETRIEVAL_FLOW_NODE_SERVICE_CONFIGURATION", "RetrievalFlowNodeServiceConfigurationS3": "RETRIEVAL_FLOW_NODE_SERVICE_CONFIGURATION", "RetrievalFlowNodeServiceConfigurationUnknown": "RETRIEVAL_FLOW_NODE_SERVICE_CONFIGURATION", + "RetrievalInstructionContent": "RETRIEVAL_INSTRUCTION_CONTENT", + "RetrievalInstructionFailureReason": "RETRIEVAL_INSTRUCTION_FAILURE_REASON", + "RetrievalInstructionFailureReasonCode": "RETRIEVAL_INSTRUCTION_FAILURE_REASON_CODE", + "RetrievalInstructionFieldName": "RETRIEVAL_INSTRUCTION_FIELD_NAME", + "RetrievalInstructionLastTransitionStatus": "RETRIEVAL_INSTRUCTION_LAST_TRANSITION_STATUS", + "RetrievalInstructionStatus": "RETRIEVAL_INSTRUCTION_STATUS", + "RetrievalInstructionSummary": "RETRIEVAL_INSTRUCTION_SUMMARY", + "RetrievalInstructionVersionSummary": "RETRIEVAL_INSTRUCTION_VERSION_SUMMARY", "S3Content": "S3_CONTENT", "S3DataSourceConfiguration": "S3_DATA_SOURCE_CONFIGURATION", "S3Identifier": "S3_IDENTIFIER", @@ -505,6 +527,7 @@ class ServiceError(ModeledError): "SalesforceCrawlerConfiguration": "SALESFORCE_CRAWLER_CONFIGURATION", "SalesforceDataSourceConfiguration": "SALESFORCE_DATA_SOURCE_CONFIGURATION", "SalesforceSourceConfiguration": "SALESFORCE_SOURCE_CONFIGURATION", + "SearchableStatus": "SEARCHABLE_STATUS", "SeedUrl": "SEED_URL", "SemanticChunkingConfiguration": "SEMANTIC_CHUNKING_CONFIGURATION", "ServerSideEncryptionConfiguration": "SERVER_SIDE_ENCRYPTION_CONFIGURATION", @@ -598,6 +621,8 @@ class ServiceError(ModeledError): "UpdateKnowledgeBaseOutput": "UPDATE_KNOWLEDGE_BASE_OUTPUT", "UpdatePromptInput": "UPDATE_PROMPT_INPUT", "UpdatePromptOutput": "UPDATE_PROMPT_OUTPUT", + "UpdateRetrievalInstructionInput": "UPDATE_RETRIEVAL_INSTRUCTION_INPUT", + "UpdateRetrievalInstructionOutput": "UPDATE_RETRIEVAL_INSTRUCTION_OUTPUT", "UrlConfiguration": "URL_CONFIGURATION", "ValidateFlowDefinitionInput": "VALIDATE_FLOW_DEFINITION_INPUT", "ValidateFlowDefinitionOutput": "VALIDATE_FLOW_DEFINITION_OUTPUT", @@ -708,6 +733,10 @@ class ServiceError(ModeledError): "CreatePromptOutput", "CreatePromptVersionInput", "CreatePromptVersionOutput", + "CreateRetrievalInstructionInput", + "CreateRetrievalInstructionOutput", + "CreateRetrievalInstructionVersionInput", + "CreateRetrievalInstructionVersionOutput", "CreateVpcConfigurationInput", "CreateVpcConfigurationOutput", "CreationMode", @@ -753,6 +782,8 @@ class ServiceError(ModeledError): "DeletePromptOutput", "DeleteResourcePolicyInput", "DeleteResourcePolicyOutput", + "DeleteRetrievalInstructionInput", + "DeleteRetrievalInstructionOutput", "DeleteVpcConfigurationInput", "DeleteVpcConfigurationOutput", "DeletionProtectionConfiguration", @@ -774,6 +805,7 @@ class ServiceError(ModeledError): "EnrichmentStrategyConfiguration", "EnrichmentStrategyMethod", "FieldForReranking", + "FieldType", "FixedSizeChunkingConfiguration", "FlowAliasConcurrencyConfiguration", "FlowAliasRoutingConfigurationListItem", @@ -831,6 +863,8 @@ class ServiceError(ModeledError): "GetPromptOutput", "GetResourcePolicyInput", "GetResourcePolicyOutput", + "GetRetrievalInstructionInput", + "GetRetrievalInstructionOutput", "GetVpcConfigurationInput", "GetVpcConfigurationOutput", "GuardrailConfiguration", @@ -905,6 +939,10 @@ class ServiceError(ModeledError): "ListKnowledgeBasesOutput", "ListPromptsInput", "ListPromptsOutput", + "ListRetrievalInstructionVersionsInput", + "ListRetrievalInstructionVersionsOutput", + "ListRetrievalInstructionsInput", + "ListRetrievalInstructionsOutput", "ListTagsForResourceInput", "ListTagsForResourceOutput", "ListVpcConfigurationsInput", @@ -923,6 +961,7 @@ class ServiceError(ModeledError): "Message", "MetadataAttribute", "MetadataAttributeValue", + "MetadataConfiguration", "MetadataConfigurationForReranking", "MetadataSourceType", "MetadataValueType", @@ -1017,6 +1056,14 @@ class ServiceError(ModeledError): "RetrievalFlowNodeConfiguration", "RetrievalFlowNodeS3Configuration", "RetrievalFlowNodeServiceConfiguration", + "RetrievalInstructionContent", + "RetrievalInstructionFailureReason", + "RetrievalInstructionFailureReasonCode", + "RetrievalInstructionFieldName", + "RetrievalInstructionLastTransitionStatus", + "RetrievalInstructionStatus", + "RetrievalInstructionSummary", + "RetrievalInstructionVersionSummary", "S3Content", "S3DataSourceConfiguration", "S3Identifier", @@ -1026,6 +1073,7 @@ class ServiceError(ModeledError): "SalesforceCrawlerConfiguration", "SalesforceDataSourceConfiguration", "SalesforceSourceConfiguration", + "SearchableStatus", "SeedUrl", "SemanticChunkingConfiguration", "ServerSideEncryptionConfiguration", @@ -1101,6 +1149,8 @@ class ServiceError(ModeledError): "UpdateKnowledgeBaseOutput", "UpdatePromptInput", "UpdatePromptOutput", + "UpdateRetrievalInstructionInput", + "UpdateRetrievalInstructionOutput", "UrlConfiguration", "ValidateFlowDefinitionInput", "ValidateFlowDefinitionOutput", @@ -1145,6 +1195,8 @@ class ServiceError(ModeledError): "CREATE_KNOWLEDGE_BASE", "CREATE_PROMPT", "CREATE_PROMPT_VERSION", + "CREATE_RETRIEVAL_INSTRUCTION", + "CREATE_RETRIEVAL_INSTRUCTION_VERSION", "CREATE_VPC_CONFIGURATION", "DELETE_AGENT", "DELETE_AGENT_ACTION_GROUP", @@ -1158,6 +1210,7 @@ class ServiceError(ModeledError): "DELETE_KNOWLEDGE_BASE_DOCUMENTS", "DELETE_PROMPT", "DELETE_RESOURCE_POLICY", + "DELETE_RETRIEVAL_INSTRUCTION", "DELETE_VPC_CONFIGURATION", "DISASSOCIATE_AGENT_COLLABORATOR", "DISASSOCIATE_AGENT_KNOWLEDGE_BASE", @@ -1176,6 +1229,7 @@ class ServiceError(ModeledError): "GET_KNOWLEDGE_BASE_DOCUMENTS", "GET_PROMPT", "GET_RESOURCE_POLICY", + "GET_RETRIEVAL_INSTRUCTION", "GET_VPC_CONFIGURATION", "INGEST_KNOWLEDGE_BASE_DOCUMENTS", "LIST_AGENT_ACTION_GROUPS", @@ -1192,6 +1246,8 @@ class ServiceError(ModeledError): "LIST_KNOWLEDGE_BASE_DOCUMENTS", "LIST_KNOWLEDGE_BASES", "LIST_PROMPTS", + "LIST_RETRIEVAL_INSTRUCTIONS", + "LIST_RETRIEVAL_INSTRUCTION_VERSIONS", "LIST_TAGS_FOR_RESOURCE", "LIST_VPC_CONFIGURATIONS", "PREPARE_AGENT", @@ -1211,6 +1267,7 @@ class ServiceError(ModeledError): "UPDATE_FLOW_ALIAS", "UPDATE_KNOWLEDGE_BASE", "UPDATE_PROMPT", + "UPDATE_RETRIEVAL_INSTRUCTION", "VALIDATE_FLOW_DEFINITION", ) for _operation_name in _operation_names: @@ -2096,6 +2153,94 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["CREATE_RETRIEVAL_INSTRUCTION"] = ( + "CREATE_RETRIEVAL_INSTRUCTION", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#ConflictException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ServiceQuotaExceededException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_RETRIEVAL_INSTRUCTION_VERSION"] = ( + "CREATE_RETRIEVAL_INSTRUCTION_VERSION", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#ConflictException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ResourceNotFoundException", + "com.amazonaws.bedrockagent#ServiceQuotaExceededException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_RETRIEVAL_INSTRUCTION"] = ( + "DELETE_RETRIEVAL_INSTRUCTION", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#ConflictException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ResourceNotFoundException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RETRIEVAL_INSTRUCTION"] = ( + "GET_RETRIEVAL_INSTRUCTION", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ResourceNotFoundException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RETRIEVAL_INSTRUCTIONS"] = ( + "LIST_RETRIEVAL_INSTRUCTIONS", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RETRIEVAL_INSTRUCTION_VERSIONS"] = ( + "LIST_RETRIEVAL_INSTRUCTION_VERSIONS", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ResourceNotFoundException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_RETRIEVAL_INSTRUCTION"] = ( + "UPDATE_RETRIEVAL_INSTRUCTION", + ( + "com.amazonaws.bedrockagent#AccessDeniedException", + "com.amazonaws.bedrockagent#ConflictException", + "com.amazonaws.bedrockagent#InternalServerException", + "com.amazonaws.bedrockagent#ResourceNotFoundException", + "com.amazonaws.bedrockagent#ThrottlingException", + "com.amazonaws.bedrockagent#ValidationException", + ), + ("aws.auth#sigv4",), +) + _operation_data["LIST_TAGS_FOR_RESOURCE"] = ( "LIST_TAGS_FOR_RESOURCE", ( diff --git a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.pyi b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.pyi index 185ebc6c..e154e035 100644 --- a/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.pyi +++ b/clients/aws-sdk-bedrock-agent/src/aws_sdk_bedrock_agent/models.pyi @@ -2009,6 +2009,114 @@ class CreatePromptVersionOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class CreateRetrievalInstructionInput(_SerdeShape): + """Dataclass for CreateRetrievalInstructionInput structure.""" + + client_token: str | None = ... + """ + A caller-supplied token that makes a retried create return the existing + resource rather than a second one. The window is 8 hours. + """ + name: str | None = ... + """Specifies the name of the retrieval instruction.""" + instruction: RetrievalInstructionContent | None = ... + """ + The instruction content, as a set of named fields. Get does not return + this field until the create review passes. + """ + description: str | None = ... + """Specifies a description of the retrieval instruction.""" + customer_encryption_key_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of a customer managed AWS Key Management + Service (AWS KMS) key used to encrypt the instruction content at rest. + If you omit it, the service uses an AWS owned key. You fix the key at + create and cannot change it later. + """ + tags: dict[str, str] | None = ... + """Tags for the retrieval instruction.""" + +@dataclass(kw_only=True) +class CreateRetrievalInstructionOutput(_SerdeShape): + """Dataclass for CreateRetrievalInstructionOutput structure.""" + + retrieval_instruction_id: str + """The identifier of the newly created retrieval instruction.""" + retrieval_instruction_arn: str + """The ARN of the newly created retrieval instruction.""" + name: str + """The name of the retrieval instruction.""" + status: str + """ + Always INACTIVE on this response. The content review has not run when + this call returns, so the resource is not yet usable. + """ + last_transition_status: str + """ + Always CREATING on this response. Poll GetRetrievalInstruction until + this member is neither CREATING nor UPDATING, then read the outcome from + it. + """ + created_at: datetime + """When you created the retrieval instruction.""" + updated_at: datetime + """When the retrieval instruction was last updated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRetrievalInstructionVersionInput(_SerdeShape): + """Dataclass for CreateRetrievalInstructionVersionInput structure.""" + + retrieval_instruction_id: str | None = ... + """The identifier of the retrieval instruction to version.""" + description: str | None = ... + """ + A description of this version. Independent of the retrieval + instruction's own description. + """ + client_token: str | None = ... + """ + A caller-supplied token that makes a retried call return the version + created by the first call rather than a second version. The window is 8 + hours. + """ + +@dataclass(kw_only=True) +class CreateRetrievalInstructionVersionOutput(_SerdeShape): + """Dataclass for CreateRetrievalInstructionVersionOutput structure.""" + + retrieval_instruction_id: str + """The identifier of the retrieval instruction.""" + retrieval_instruction_arn: str + """ + The ARN of the retrieval instruction. Versions do not have their own + ARN. + """ + version: str + """ + The number of the version created. Versions are numbered from 1 and + allocated monotonically; a number is never reused, even after the + version is deleted. + """ + created_at: datetime + """When this version was created.""" + description: str | None = ... + """The description of this version, when one was supplied.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class CreateVpcConfigurationInput(_SerdeShape): """Dataclass for CreateVpcConfigurationInput structure.""" @@ -2803,6 +2911,42 @@ class DeleteResourcePolicyOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class DeleteRetrievalInstructionInput(_SerdeShape): + """Dataclass for DeleteRetrievalInstructionInput structure.""" + + retrieval_instruction_id: str | None = ... + """The identifier of the retrieval instruction to delete.""" + retrieval_instruction_version: str | None = ... + """ + The version to delete. Omit this field to delete the retrieval + instruction itself, which you can do only when it has no versions; while + any version exists the service rejects the request with + ConflictException. You cannot delete DRAFT on its own; deleting the + retrieval instruction removes it. + """ + +@dataclass(kw_only=True) +class DeleteRetrievalInstructionOutput(_SerdeShape): + """Dataclass for DeleteRetrievalInstructionOutput structure.""" + + retrieval_instruction_id: str + """The identifier of the deleted retrieval instruction.""" + retrieval_instruction_arn: str + """The ARN of the retrieval instruction.""" + version: str | None = ... + """ + The version that you deleted. Absent when you deleted the whole + retrieval instruction. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class DeleteVpcConfigurationInput(_SerdeShape): """Dataclass for DeleteVpcConfigurationInput structure.""" @@ -3056,6 +3200,18 @@ class FieldForReranking(_SerdeShape): field_name: str """The name of the metadata field to include or exclude during reranking.""" +class FieldType(UnknownEnumMixin, StrEnum): + """ + The data type of a custom metadata field. Valid values: + + - `STRING` -- The field holds a single string value. + + - `STRING_LIST` -- The field holds a list of string values. + """ + + STRING = "STRING" + STRING_LIST = "STRING_LIST" + @dataclass(kw_only=True) class FixedSizeChunkingConfiguration(_SerdeShape): """ @@ -4551,6 +4707,98 @@ class GetResourcePolicyOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class GetRetrievalInstructionInput(_SerdeShape): + """Dataclass for GetRetrievalInstructionInput structure.""" + + retrieval_instruction_id: str | None = ... + """The identifier of the retrieval instruction to get.""" + retrieval_instruction_version: str | None = ... + """ + The version to return: a version number, or DRAFT for the retrieval + instruction's current reviewed content. When omitted, DRAFT is used. + This default is permanent: omitting retrievalInstructionVersion will + never resolve to a numbered version. + """ + +@dataclass(kw_only=True) +class GetRetrievalInstructionOutput(_SerdeShape): + """Dataclass for GetRetrievalInstructionOutput structure.""" + + retrieval_instruction_id: str + """The identifier of the retrieval instruction.""" + retrieval_instruction_arn: str + """The ARN of the retrieval instruction.""" + name: str + """The name of the retrieval instruction.""" + status: str + """ + Specifies whether you can use the instruction. You can resolve only an + ACTIVE instruction at retrieval time. Monotone: INACTIVE to ACTIVE once, + never back. Numbered versions are always ACTIVE. + """ + last_transition_status: str + """ + The outcome or in-progress state of the most recent create or update. + CREATING or UPDATING means the operation is still running. Independent + of status. Always has a value from the create 202 onward. On a numbered + version this is always CREATE_SUCCESSFUL: a version is created once, + from reviewed content, and is immutable. + """ + instruction: RetrievalInstructionContent | None = ... + """ + The reviewed content this instruction serves --- what + AgenticRetrieveStream resolves while status is ACTIVE. Absent until the + first create review passes. Always present on a numbered version. + """ + created_at: datetime + """ + When the retrieval instruction was created. On a numbered version, when + that version was created. + """ + updated_at: datetime + """ + When the retrieval instruction was last updated. Equal to createdAt on a + numbered version, which is immutable. + """ + description: str | None = ... + """ + A description of the retrieval instruction. On a numbered version, the + description of that version. + """ + customer_encryption_key_arn: str | None = ... + """ + The ARN of the customer managed KMS key protecting this content, when + one was supplied at create. + """ + last_transition_status_reasons: list[RetrievalInstructionFailureReason] | None = ... + """ + Why the most recent create or update was rejected. One entry for each + rejected field, or a single entry when the review itself failed. Each + entry has a machine-readable code and a message, and names the field + when it applies to one. The service includes this field only when + lastTransitionStatus is CREATE_FAILED or UPDATE_FAILED. Never present on + a numbered version. + """ + version: str | None = ... + """The version this response describes: a version number, or DRAFT.""" + latest_version: str | None = ... + """ + The largest version number that currently exists for this retrieval + instruction, that is, the newest version you can retrieve. Present only + on a DRAFT read, and only when at least one version exists. Because + version numbers are never reused, deleting versions can leave gaps: this + is the newest existing version, not a count and not the highest number + ever created. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class GetVpcConfigurationInput(_SerdeShape): """Dataclass for GetVpcConfigurationInput structure.""" @@ -5044,6 +5292,17 @@ class KnowledgeBase(_SerdeShape): """The time the knowledge base was last updated.""" failure_reasons: list[str] | None = ... """A list of reasons that the API operation on the knowledge base failed.""" + metadata_configurations: list[MetadataConfiguration] | None = ... + """ + The custom metadata field configurations of the knowledge base. Each + configuration specifies whether its field is searchable (`ENABLED` or + `DISABLED`). + + If the update fails, the knowledge base status becomes + `UPDATE_UNSUCCESSFUL`, the field configurations revert to their previous + values, and `failureReasons` describes the cause. You can retry the + update from `UPDATE_UNSUCCESSFUL`. + """ @dataclass(kw_only=True) class KnowledgeBaseConfiguration(_SerdeShape): @@ -5913,6 +6172,75 @@ class ListPromptsOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class ListRetrievalInstructionsInput(_SerdeShape): + """Dataclass for ListRetrievalInstructionsInput structure.""" + + status: str | None = ... + """Return only instructions with this availability status.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single page. The effective + upper bound is enforced service-side. + """ + next_token: str | None = ... + """The pagination token from a previous ListRetrievalInstructions response.""" + +@dataclass(kw_only=True) +class ListRetrievalInstructionsOutput(_SerdeShape): + """Dataclass for ListRetrievalInstructionsOutput structure.""" + + retrieval_instruction_summaries: list[RetrievalInstructionSummary] + """The retrieval instruction summaries in this page.""" + next_token: str | None = ... + """ + The pagination token to pass to the next ListRetrievalInstructions call, + absent on the last page. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRetrievalInstructionVersionsInput(_SerdeShape): + """Dataclass for ListRetrievalInstructionVersionsInput structure.""" + + retrieval_instruction_id: str | None = ... + """The identifier of the retrieval instruction whose versions to list.""" + max_results: int | None = ... + """ + Specifies the maximum number of versions to return in a single page. The + service enforces the effective upper bound. + """ + next_token: str | None = ... + """ + The pagination token from a previous ListRetrievalInstructionVersions + response. + """ + +@dataclass(kw_only=True) +class ListRetrievalInstructionVersionsOutput(_SerdeShape): + """Dataclass for ListRetrievalInstructionVersionsOutput structure.""" + + retrieval_instruction_version_summaries: list[RetrievalInstructionVersionSummary] + """The version summaries in this page, newest first.""" + next_token: str | None = ... + """ + The pagination token to pass to the next + ListRetrievalInstructionVersions call, absent on the last page. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class ListTagsForResourceInput(_SerdeShape): """Dataclass for ListTagsForResourceInput structure.""" @@ -6200,6 +6528,30 @@ class MetadataAttributeValue(_SerdeShape): string_list_value: list[str] | None = ... """An array of strings that define the value of the metadata attribute.""" +@dataclass(kw_only=True) +class MetadataConfiguration(_SerdeShape): + """ + Contains the configuration of a single custom metadata field in a + knowledge base, including its name, data type, and whether the field is + searchable. + """ + + name: str + """The name of the custom metadata field.""" + type: str + """ + The data type of the custom metadata field. Valid values are `STRING` + and `STRING_LIST`. + """ + searchability: str + """ + Specifies whether the custom metadata field is searchable. Valid values: + + - `ENABLED` -- The field is searchable. + + - `DISABLED` -- The field is not searchable. + """ + @dataclass(kw_only=True) class MetadataConfigurationForReranking(_SerdeShape): """ @@ -7755,6 +8107,159 @@ class _RetrievalFlowNodeServiceConfigurationDeserializer: self, deserializer: ShapeDeserializer ) -> RetrievalFlowNodeServiceConfiguration: ... +@dataclass(kw_only=True) +class RetrievalInstructionContent(_SerdeShape): + """ + The instruction content, as a set of named fields. Every field is + optional; at least one must be present. Service-side validation enforces + per-field and aggregate size limits. + """ + + retrieval_guidance: str | None = ... + """ + How to interpret and decompose the question, and what to prioritise when + searching. + """ + persona: str | None = ... + """Who the assistant is: identity, tone and language.""" + answer_format: str | None = ... + """How the answer is structured, including how sources are cited.""" + answer_policy: str | None = ... + """ + Whether and how to answer: how strongly an answer must be supported, and + what to do with questions outside scope. + """ + +@dataclass(kw_only=True) +class RetrievalInstructionFailureReason(_SerdeShape): + """ + One reason the most recent create or update did not succeed. code drives + programmatic branching (fix the text, fix the configuration, or retry); + message carries the specific cause. + """ + + field_name: str | None = ... + """ + The instruction field this entry is about. Present on review rejections + of a specific field; absent when the failure applies to the whole + review, because a client-side execution failure or a service fault has + no single field. + """ + code: str + """ + Stable, machine-readable classification by fault attribution. Valid + values: + + - CONTENT_REJECTED -- The review rejected the named field's content; + revise the text and resubmit. + + - CLIENT_ERROR -- The review could not run for a customer-side reason, + for example the customer managed AWS KMS key could not be used; fix + the configuration and resubmit. + + - INTERNAL_ERROR -- The review could not complete due to a service + fault; retry the create or update. + + New values may be added over time; your client should tolerate values it + does not recognize and treat them as a failure. + """ + message: str + """ + Human-readable explanation of the specific cause. Never contains the + customer's own text. + """ + +class RetrievalInstructionFailureReasonCode(UnknownEnumMixin, StrEnum): + """ + A machine-readable failure classification. See + RetrievalInstructionFailureReason.code for the value semantics. + """ + + CONTENT_REJECTED = "CONTENT_REJECTED" + CLIENT_ERROR = "CLIENT_ERROR" + INTERNAL_ERROR = "INTERNAL_ERROR" + +class RetrievalInstructionFieldName(UnknownEnumMixin, StrEnum): + """ + Identifies one field of RetrievalInstructionContent: + + - RETRIEVAL_GUIDANCE -- retrievalGuidance + + - PERSONA -- persona + + - ANSWER_FORMAT -- answerFormat + + - ANSWER_POLICY -- answerPolicy + """ + + RETRIEVAL_GUIDANCE = "RETRIEVAL_GUIDANCE" + PERSONA = "PERSONA" + ANSWER_FORMAT = "ANSWER_FORMAT" + ANSWER_POLICY = "ANSWER_POLICY" + +class RetrievalInstructionLastTransitionStatus(UnknownEnumMixin, StrEnum): + """ + The outcome or in-progress state of the most recent create or update of + a retrieval instruction. Delete is synchronous and has no representation + here. Independent of RetrievalInstructionStatus. + """ + + CREATING = "CREATING" + UPDATING = "UPDATING" + CREATE_SUCCESSFUL = "CREATE_SUCCESSFUL" + CREATE_FAILED = "CREATE_FAILED" + UPDATE_SUCCESSFUL = "UPDATE_SUCCESSFUL" + UPDATE_FAILED = "UPDATE_FAILED" + +class RetrievalInstructionStatus(UnknownEnumMixin, StrEnum): + """ + Specifies whether you can use a retrieval instruction. You can resolve + only an ACTIVE retrieval instruction at retrieval time. Monotone: + INACTIVE to ACTIVE once, never back. + """ + + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + +@dataclass(kw_only=True) +class RetrievalInstructionSummary(_SerdeShape): + """A summary of a retrieval instruction, without the content.""" + + retrieval_instruction_id: str + """The identifier of the retrieval instruction.""" + retrieval_instruction_arn: str + """The ARN of the retrieval instruction.""" + name: str + """The name of the retrieval instruction.""" + status: str + """ + Whether the instruction can be used. Only ACTIVE is resolvable at + retrieval time. + """ + last_transition_status: str + """ + The outcome or in-progress state of the most recent create or update of + the retrieval instruction. + """ + created_at: datetime + """When you created the retrieval instruction.""" + updated_at: datetime + """When the retrieval instruction was last updated.""" + description: str | None = ... + """A description of the retrieval instruction.""" + +@dataclass(kw_only=True) +class RetrievalInstructionVersionSummary(_SerdeShape): + """ + A summary of one numbered version of a retrieval instruction, without + the content. + """ + + version: str + """The version number.""" + created_at: datetime + """When this version was created.""" + @dataclass(kw_only=True) class S3Content(_SerdeShape): """ @@ -7875,6 +8380,15 @@ class SalesforceSourceConfiguration(_SerdeShape): configuration](https://docs.aws.amazon.com/bedrock/latest/userguide/salesforce-data-source-connector.html#configuration-salesforce-connector). """ +class SearchableStatus(UnknownEnumMixin, StrEnum): + """ + Specifies whether a custom metadata field is searchable. The knowledge + base matches query text against the values of searchable fields. + """ + + ENABLED = "ENABLED" + DISABLED = "DISABLED" + @dataclass(kw_only=True) class SeedUrl(_SerdeShape): """ @@ -9229,6 +9743,16 @@ class UpdateKnowledgeBaseInput(_SerdeShape): base. You must use the same configuration as when the knowledge base was created. """ + metadata_configurations: list[MetadataConfiguration] | None = ... + """ + Specifies up to 30 custom metadata field configurations for a managed + knowledge base. + + The list that you specify replaces the existing configurations. The + update removes any configuration that you leave out, and its field is no + longer searchable. An empty list removes all configurations. If you + don't specify a list, the existing configurations don't change. + """ @dataclass(kw_only=True) class UpdateKnowledgeBaseOutput(_SerdeShape): @@ -9312,6 +9836,57 @@ class UpdatePromptOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class UpdateRetrievalInstructionInput(_SerdeShape): + """Dataclass for UpdateRetrievalInstructionInput structure.""" + + retrieval_instruction_id: str | None = ... + """The identifier of the retrieval instruction to update.""" + instruction: RetrievalInstructionContent | None = ... + """ + The replacement instruction content. This is a full replacement of all + four fields, not a patch. During UPDATING, Get continues to return the + previously-served content until the update review passes. + """ + description: str | None = ... + """ + A replacement description; applied together with the content when the + review passes. Omit to clear. + """ + +@dataclass(kw_only=True) +class UpdateRetrievalInstructionOutput(_SerdeShape): + """Dataclass for UpdateRetrievalInstructionOutput structure.""" + + retrieval_instruction_id: str + """The identifier of the retrieval instruction.""" + retrieval_instruction_arn: str + """The ARN of the retrieval instruction.""" + name: str + """The name of the retrieval instruction.""" + status: str + """ + Whether the instruction can be used. An update never lowers status. + Unchanged from the previous value on this response. + """ + last_transition_status: str + """ + Always UPDATING on this response. Poll GetRetrievalInstruction until + this member is neither CREATING nor UPDATING, then read the outcome from + it. + """ + created_at: datetime + """When you created the retrieval instruction.""" + updated_at: datetime + """When the retrieval instruction was last updated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class UrlConfiguration(_SerdeShape): """ @@ -9772,6 +10347,12 @@ CREATE_FLOW_VERSION: APIOperation[CreateFlowVersionInput, CreateFlowVersionOutpu CREATE_KNOWLEDGE_BASE: APIOperation[CreateKnowledgeBaseInput, CreateKnowledgeBaseOutput] CREATE_PROMPT: APIOperation[CreatePromptInput, CreatePromptOutput] CREATE_PROMPT_VERSION: APIOperation[CreatePromptVersionInput, CreatePromptVersionOutput] +CREATE_RETRIEVAL_INSTRUCTION: APIOperation[ + CreateRetrievalInstructionInput, CreateRetrievalInstructionOutput +] +CREATE_RETRIEVAL_INSTRUCTION_VERSION: APIOperation[ + CreateRetrievalInstructionVersionInput, CreateRetrievalInstructionVersionOutput +] CREATE_VPC_CONFIGURATION: APIOperation[ CreateVpcConfigurationInput, CreateVpcConfigurationOutput ] @@ -9793,6 +10374,9 @@ DELETE_PROMPT: APIOperation[DeletePromptInput, DeletePromptOutput] DELETE_RESOURCE_POLICY: APIOperation[ DeleteResourcePolicyInput, DeleteResourcePolicyOutput ] +DELETE_RETRIEVAL_INSTRUCTION: APIOperation[ + DeleteRetrievalInstructionInput, DeleteRetrievalInstructionOutput +] DELETE_VPC_CONFIGURATION: APIOperation[ DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput ] @@ -9825,6 +10409,9 @@ GET_KNOWLEDGE_BASE_DOCUMENTS: APIOperation[ ] GET_PROMPT: APIOperation[GetPromptInput, GetPromptOutput] GET_RESOURCE_POLICY: APIOperation[GetResourcePolicyInput, GetResourcePolicyOutput] +GET_RETRIEVAL_INSTRUCTION: APIOperation[ + GetRetrievalInstructionInput, GetRetrievalInstructionOutput +] GET_VPC_CONFIGURATION: APIOperation[GetVpcConfigurationInput, GetVpcConfigurationOutput] INGEST_KNOWLEDGE_BASE_DOCUMENTS: APIOperation[ IngestKnowledgeBaseDocumentsInput, IngestKnowledgeBaseDocumentsOutput @@ -9851,6 +10438,12 @@ LIST_KNOWLEDGE_BASE_DOCUMENTS: APIOperation[ ] LIST_KNOWLEDGE_BASES: APIOperation[ListKnowledgeBasesInput, ListKnowledgeBasesOutput] LIST_PROMPTS: APIOperation[ListPromptsInput, ListPromptsOutput] +LIST_RETRIEVAL_INSTRUCTIONS: APIOperation[ + ListRetrievalInstructionsInput, ListRetrievalInstructionsOutput +] +LIST_RETRIEVAL_INSTRUCTION_VERSIONS: APIOperation[ + ListRetrievalInstructionVersionsInput, ListRetrievalInstructionVersionsOutput +] LIST_TAGS_FOR_RESOURCE: APIOperation[ ListTagsForResourceInput, ListTagsForResourceOutput ] @@ -9880,6 +10473,9 @@ UPDATE_FLOW: APIOperation[UpdateFlowInput, UpdateFlowOutput] UPDATE_FLOW_ALIAS: APIOperation[UpdateFlowAliasInput, UpdateFlowAliasOutput] UPDATE_KNOWLEDGE_BASE: APIOperation[UpdateKnowledgeBaseInput, UpdateKnowledgeBaseOutput] UPDATE_PROMPT: APIOperation[UpdatePromptInput, UpdatePromptOutput] +UPDATE_RETRIEVAL_INSTRUCTION: APIOperation[ + UpdateRetrievalInstructionInput, UpdateRetrievalInstructionOutput +] VALIDATE_FLOW_DEFINITION: APIOperation[ ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput ] diff --git a/clients/aws-sdk-bedrock-agent/tests/_typecheck.py b/clients/aws-sdk-bedrock-agent/tests/_typecheck.py index 4faa75e3..9e0dd2e5 100644 --- a/clients/aws-sdk-bedrock-agent/tests/_typecheck.py +++ b/clients/aws-sdk-bedrock-agent/tests/_typecheck.py @@ -63,6 +63,10 @@ CreatePromptOutput, CreatePromptVersionInput, CreatePromptVersionOutput, + CreateRetrievalInstructionInput, + CreateRetrievalInstructionOutput, + CreateRetrievalInstructionVersionInput, + CreateRetrievalInstructionVersionOutput, CreateVpcConfigurationInput, CreateVpcConfigurationOutput, CuratedQuery, @@ -100,6 +104,8 @@ DeletePromptOutput, DeleteResourcePolicyInput, DeleteResourcePolicyOutput, + DeleteRetrievalInstructionInput, + DeleteRetrievalInstructionOutput, DeleteVpcConfigurationInput, DeleteVpcConfigurationOutput, DeletionProtectionConfiguration, @@ -162,6 +168,8 @@ GetPromptOutput, GetResourcePolicyInput, GetResourcePolicyOutput, + GetRetrievalInstructionInput, + GetRetrievalInstructionOutput, GetVpcConfigurationInput, GetVpcConfigurationOutput, GuardrailConfiguration, @@ -223,6 +231,10 @@ ListKnowledgeBasesOutput, ListPromptsInput, ListPromptsOutput, + ListRetrievalInstructionVersionsInput, + ListRetrievalInstructionVersionsOutput, + ListRetrievalInstructionsInput, + ListRetrievalInstructionsOutput, ListTagsForResourceInput, ListTagsForResourceOutput, ListVpcConfigurationsInput, @@ -240,6 +252,7 @@ Message, MetadataAttribute, MetadataAttributeValue, + MetadataConfiguration, MetadataConfigurationForReranking, MismatchedNodeInputTypeFlowValidationDetails, MismatchedNodeOutputTypeFlowValidationDetails, @@ -309,6 +322,10 @@ RedshiftServerlessConfiguration, RetrievalFlowNodeConfiguration, RetrievalFlowNodeS3Configuration, + RetrievalInstructionContent, + RetrievalInstructionFailureReason, + RetrievalInstructionSummary, + RetrievalInstructionVersionSummary, S3Content, S3DataSourceConfiguration, S3Identifier, @@ -377,6 +394,8 @@ UpdateKnowledgeBaseOutput, UpdatePromptInput, UpdatePromptOutput, + UpdateRetrievalInstructionInput, + UpdateRetrievalInstructionOutput, UrlConfiguration, ValidateFlowDefinitionInput, ValidateFlowDefinitionOutput, @@ -555,6 +574,20 @@ CreatePromptOutput(name=_, id=_, arn=_, version=_, created_at=_, updated_at=_) CreatePromptVersionInput() CreatePromptVersionOutput(name=_, id=_, arn=_, version=_, created_at=_, updated_at=_) +CreateRetrievalInstructionInput() +CreateRetrievalInstructionOutput( + retrieval_instruction_id=_, + retrieval_instruction_arn=_, + name=_, + status=_, + last_transition_status=_, + created_at=_, + updated_at=_, +) +CreateRetrievalInstructionVersionInput() +CreateRetrievalInstructionVersionOutput( + retrieval_instruction_id=_, retrieval_instruction_arn=_, version=_, created_at=_ +) CreateVpcConfigurationInput() CreateVpcConfigurationOutput(vpc_configuration_id=_, status=_) CuratedQuery(natural_language=_, sql=_) @@ -600,6 +633,10 @@ DeletePromptOutput(id=_) DeleteResourcePolicyInput() DeleteResourcePolicyOutput(resource_arn=_) +DeleteRetrievalInstructionInput() +DeleteRetrievalInstructionOutput( + retrieval_instruction_id=_, retrieval_instruction_arn=_ +) DeleteVpcConfigurationInput() DeleteVpcConfigurationOutput(vpc_configuration_id=_, status=_) DeletionProtectionConfiguration(deletion_protection_status=_) @@ -677,6 +714,16 @@ GetPromptOutput(name=_, id=_, arn=_, version=_, created_at=_, updated_at=_) GetResourcePolicyInput() GetResourcePolicyOutput(resource_arn=_, policy=_, revision_id=_) +GetRetrievalInstructionInput() +GetRetrievalInstructionOutput( + retrieval_instruction_id=_, + retrieval_instruction_arn=_, + name=_, + status=_, + last_transition_status=_, + created_at=_, + updated_at=_, +) GetVpcConfigurationInput() GetVpcConfigurationOutput(vpc_configuration=_) GuardrailConfiguration() @@ -763,6 +810,10 @@ ListKnowledgeBasesOutput(knowledge_base_summaries=_) ListPromptsInput() ListPromptsOutput(prompt_summaries=_) +ListRetrievalInstructionsInput() +ListRetrievalInstructionsOutput(retrieval_instruction_summaries=_) +ListRetrievalInstructionVersionsInput() +ListRetrievalInstructionVersionsOutput(retrieval_instruction_version_summaries=_) ListTagsForResourceInput() ListTagsForResourceOutput() ListVpcConfigurationsInput() @@ -782,6 +833,7 @@ Message(role=_, content=_) MetadataAttribute(key=_, value=_) MetadataAttributeValue(type=_) +MetadataConfiguration(name=_, type=_, searchability=_) MetadataConfigurationForReranking(selection_mode=_) MismatchedNodeInputTypeFlowValidationDetails(node=_, input=_, expected_type=_) MismatchedNodeOutputTypeFlowValidationDetails(node=_, output=_, expected_type=_) @@ -870,6 +922,18 @@ RedshiftServerlessConfiguration(workgroup_arn=_, auth_configuration=_) RetrievalFlowNodeConfiguration(service_configuration=_) RetrievalFlowNodeS3Configuration() +RetrievalInstructionContent() +RetrievalInstructionFailureReason(code=_, message=_) +RetrievalInstructionSummary( + retrieval_instruction_id=_, + retrieval_instruction_arn=_, + name=_, + status=_, + last_transition_status=_, + created_at=_, + updated_at=_, +) +RetrievalInstructionVersionSummary(version=_, created_at=_) S3Content(s3_location=_) S3DataSourceConfiguration(bucket_arn=_) S3Identifier() @@ -953,6 +1017,16 @@ UpdateKnowledgeBaseOutput(knowledge_base=_) UpdatePromptInput() UpdatePromptOutput(name=_, id=_, arn=_, version=_, created_at=_, updated_at=_) +UpdateRetrievalInstructionInput() +UpdateRetrievalInstructionOutput( + retrieval_instruction_id=_, + retrieval_instruction_arn=_, + name=_, + status=_, + last_transition_status=_, + created_at=_, + updated_at=_, +) UrlConfiguration() ValidateFlowDefinitionInput() ValidateFlowDefinitionOutput(validations=_) diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/_private/schemas.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/_private/schemas.py index 3c9be65a..c4c59da5 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/_private/schemas.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/_private/schemas.py @@ -43,10 +43,37 @@ _CBA = "ConfigurationBundleAction" _sO = "staticOverride" _wO = "weightedOverride" +_CBM = "CircuitBreakerMode" +_ENABLED = "ENABLED" +_sVm = "smithy.api#enumValue" +_DISABLED = "DISABLED" +_CBC = "CircuitBreakerConfiguration" +_mo = "mode" +_smi = "smithy.api#default" +_CMI = "ConcreteModelId" _TN = "TargetName" -_smi = "smithy.api#sensitive" -_SR = "StaticRoute" +_smit = "smithy.api#sensitive" +_FE = "FallbackError" +_CE = "CONNECTION_ERROR" +_FBT = "FIRST_BYTE_TIMEOUT" +_UNROUTABLE = "UNROUTABLE" +_FEa = "FallbackErrors" +_ESCP = "ErrorStatusCodePattern" +_ESCPr = "ErrorStatusCodePatterns" +_FT = "FallbackTriggers" +_sC = "statusCodes" +_e = "errors" +_FTa = "FallbackTarget" _tN = "targetName" +_mod = "model" +_tO = "triggerOn" +_fBTM = "firstByteTimeoutMilliseconds" +_TF = "TargetFallbacks" +_F = "Fallback" +_cBi = "circuitBreaker" +_tF = "targetFallback" +_SR = "StaticRoute" +_f = "fallback" _TTSE = "TargetTrafficSplitEntry" _TTSEa = "TargetTrafficSplitEntries" _WR = "WeightedRoute" @@ -58,7 +85,6 @@ _Ac = "Actions" _ATCT = "ActorTokenContentType" _NONE = "NONE" -_sVm = "smithy.api#enumValue" _MM = "M2M" _AIITJ = "AWS_IAM_ID_TOKEN_JWT" _CT = "ClientToken" @@ -66,7 +92,7 @@ _SJ = "SensitiveJson" _DEL = "DatasetExampleList" _IES = "InlineExamplesSource" -_e = "examples" +_ex = "examples" _SU = "S3Uri" _SS = "S3Source" _sU = "s3Uri" @@ -76,7 +102,7 @@ _ADEI = "AddDatasetExamplesInput" _sSI = "smithy.synthetic#originalShapeId" _cADER = "com.amazonaws.bedrockagentcorecontrol#AddDatasetExamplesRequest" -_smit = "smithy.api#input" +_smith = "smithy.api#input" _dI = "datasetId" _sL = "smithy.api#httpLabel" _cT = "clientToken" @@ -95,13 +121,13 @@ _DF = "DELETE_FAILED" _ADEO = "AddDatasetExamplesOutput" _cADERo = "com.amazonaws.bedrockagentcorecontrol#AddDatasetExamplesResponse" -_smith = "smithy.api#output" +_smithy = "smithy.api#output" _dA = "datasetArn" _st = "status" _aCd = "addedCount" _uA = "updatedAt" _eI = "exampleIds" -_CE = "ConflictException" +_CEo = "ConflictException" _ISE = "InternalServerException" _se = "server" _RNFE = "ResourceNotFoundException" @@ -124,7 +150,7 @@ _r = "reason" _fL = "fieldList" _ADEd = "AddDatasetExamples" -_smithy = "smithy.api#http" +_smithya = "smithy.api#http" _ACN = "AdditionalClaimName" _ACV = "AdditionalClaimValue" _AC = "AdditionalClaims" @@ -216,6 +242,14 @@ _cC = "containerConfiguration" _cCo = "codeConfiguration" _ARN = "AgentRuntimeName" +_Po = "Port" +_PR = "PortRange" +_fr = "from" +_to = "to" +_AP = "AllowedPort" +_po = "port" +_pR = "portRange" +_APl = "AllowedPorts" _AA = "AllowedAudience" _AAL = "AllowedAudienceList" _ACl = "AllowedClient" @@ -230,6 +264,17 @@ _AWC = "AllowedWorkloadConfiguration" _hE = "hostingEnvironments" _wI = "workloadIdentities" +_CBOAI = "CertificateBucketOwnerAccountId" +_CSU = "CertificateS3Uri" +_SCC = "S3CertificateConfiguration" +_u = "uri" +_bOAI = "bucketOwnerAccountId" +_CSA = "CertificateSecretArn" +_SMCC = "SecretsManagerCertificateConfiguration" +_sA = "secretArn" +_CCe = "CertificateConfiguration" +_sM = "secretsManager" +_CCL = "CertificateConfigurationList" _CMOT = "ClaimMatchOperatorType" _EQUALS = "EQUALS" _CONTAINS = "CONTAINS" @@ -286,6 +331,7 @@ _aSM = "advertisedScopeMapping" _cCu = "customClaims" _pEO = "privateEndpointOverrides" +_cCe = "certificateConfigurations" _aWC = "allowedWorkloadConfiguration" _ACu = "AuthorizerConfiguration" _cJWTA = "customJWTAuthorizer" @@ -313,6 +359,18 @@ _eAP = "efsAccessPoint" _cPV = "capacityProviderVolume" _FCi = "FilesystemConfigurations" +_LHP = "LifecycleHookPath" +_SP = "ServerPort" +_HPLHA = "HttpPostLifecycleHookAction" +_pa = "path" +_LHA = "LifecycleHookAction" +_hP = "httpPost" +_LH = "LifecycleHook" +_ac = "action" +_BLH = "BuildLifecycleHooks" +_wa = "warmup" +_RHC = "RuntimeHooksConfiguration" +_bu = "build" _LC = "LifecycleConfiguration" _iRST = "idleRuntimeSessionTimeout" _mL = "maxLifetime" @@ -330,7 +388,8 @@ _nM = "networkMode" _nMC = "networkModeConfig" _PV = "PlatformVersion" -_SP = "ServerProtocol" +_SPe = "ServerPath" +_SPer = "ServerProtocol" _MCP = "MCP" _HTTP = "HTTP" _AA_ = "A2A" @@ -339,8 +398,11 @@ _sP = "serverProtocol" _HN = "HeaderName" _RHA = "RequestHeaderAllowlist" -_RHC = "RequestHeaderConfiguration" +_RHCe = "RequestHeaderConfiguration" _rHA = "requestHeaderAllowlist" +_RCes = "ResourceConfiguration" +_mMIMB = "minimumMemoryInMiB" +_RCeso = "ResourceConfigurations" _RA = "RoleArn" _CARI = "CreateAgentRuntimeInput" _cCARR = "com.amazonaws.bedrockagentcorecontrol#CreateAgentRuntimeRequest" @@ -352,10 +414,13 @@ _rHC = "requestHeaderConfiguration" _pC = "protocolConfiguration" _lC = "lifecycleConfiguration" +_hC = "hooksConfiguration" _eV = "environmentVariables" _fC = "filesystemConfigurations" _cPC = "capacityProviderConfiguration" _pV = "platformVersion" +_aP = "allowedPorts" +_rC = "resourceConfigurations" _ARS = "AgentRuntimeStatus" _WIA = "WorkloadIdentityArn" _WID = "WorkloadIdentityDetails" @@ -401,7 +466,7 @@ _SD = "SkillDefinition" _SMD = "SkillMdDefinition" _ASD = "AgentSkillsDescriptor" -_sM = "skillMd" +_sMk = "skillMd" _sD = "skillDefinition" _AAT = "AllowedAudienceType" _HQPN = "HttpQueryParameterName" @@ -427,13 +492,11 @@ _CAKCPI = "CreateApiKeyCredentialProviderInput" _cCAKCPR = "com.amazonaws.bedrockagentcorecontrol#CreateApiKeyCredentialProviderRequest" _aK = "apiKey" -_smithya = "smithy.api#default" _v_ = "" _aKSC = "apiKeySecretConfig" _aKSS = "apiKeySecretSource" _SAe = "SecretArn" _Se = "Secret" -_sA = "secretArn" _CAKCPO = "CreateApiKeyCredentialProviderOutput" _cCAKCPRo = ( "com.amazonaws.bedrockagentcorecontrol#CreateApiKeyCredentialProviderResponse" @@ -518,7 +581,6 @@ _TSA = "ToolSecretArn" _SML = "SecretsManagerLocation" _CL = "CertificateLocation" -_sMe = "secretsManager" _Ce = "Certificate" _l = "location" _Cer = "Certificates" @@ -653,7 +715,7 @@ _oS = "operatingSystem" _iR = "instanceRequirements" _eVp = "ephemeralVolumes" -_mo = "monitoring" +_mon = "monitoring" _lS = "licenseSpecifications" _cRS = "capacityReservationSpecification" _sKN = "sshKeyName" @@ -702,7 +764,7 @@ _THROTTLED = "THROTTLED" _ISE_ = "INTERNAL_SERVER_EXCEPTION" _GCPO = "GetCapacityProviderOutput" -_sC = "statusCode" +_sCt = "statusCode" _sRt = "statusReason" _GCP = "GetCapacityProvider" _LARVBCPI = "ListAgentRuntimeVersionsByCapacityProviderInput" @@ -801,14 +863,14 @@ _CBSL = "ConfigurationBundleSummaryList" _LCBO = "ListConfigurationBundlesOutput" _cLCBRo = "com.amazonaws.bedrockagentcorecontrol#ListConfigurationBundlesResponse" -_bu = "bundles" +_bun = "bundles" _LCB = "ListConfigurationBundles" _VF = "VersionFilter" _cBN = "createdByName" _lPB = "latestPerBranch" _LCBVI = "ListConfigurationBundleVersionsInput" _cLCBVR = "com.amazonaws.bedrockagentcorecontrol#ListConfigurationBundleVersionsRequest" -_f = "filter" +_fi = "filter" _CBVS = "ConfigurationBundleVersionSummary" _CBVSL = "ConfigurationBundleVersionSummaryList" _LCBVO = "ListConfigurationBundleVersionsOutput" @@ -993,11 +1055,20 @@ _de = "definition" _la = "label" _CSDa = "CategoricalScaleDefinitions" +_EDI = "EvaluationDimensionInstruction" +_EDN = "EvaluationDimensionName" _NSD = "NumericalScaleDefinition" _NSDu = "NumericalScaleDefinitions" -_RS = "RatingScale" +_DRS = "DimensionRatingScale" _nu = "numerical" _ca = "categorical" +_EDv = "EvaluationDimension" +_dNi = "dimensionName" +_dIi = "dimensionInstruction" +_dRS = "dimensionRatingScale" +_EDva = "EvaluationDimensions" +_RS = "RatingScale" +_mD = "multiDimensional" _LAAJEC = "LlmAsAJudgeEvaluatorConfig" _in = "instructions" _rS = "ratingScale" @@ -1088,7 +1159,7 @@ _LEi = "LimitEntry" _di = "dimensions" _req = "requests" -_to = "tokens" +_tok = "tokens" _conn = "connections" _LEim = "LimitEntries" _GRLI = "GatewayRateLimitId" @@ -1139,15 +1210,22 @@ _AI = "AWS_IAM" _AO = "AUTHENTICATE_ONLY" _GDa = "GatewayDescription" +_PDN = "PublicDomainName" +_PDNL = "PublicDomainNameList" +_DO = "DomainOverride" +_dD = "defaultDomain" +_sN = "smithy.api#jsonName" +_def = "default" +_aD = "alternateDomains" _ELx = "ExceptionLevel" _DEBUG = "DEBUG" _IPE = "InterceptorPayloadExclusion" _RB = "RESPONSE_BODY" _IPES = "InterceptorPayloadExclusionSelector" -_fi = "field" +_fie = "field" _IPESL = "InterceptorPayloadExclusionSelectorList" _IPF = "InterceptorPayloadFilter" -_ex = "exclude" +_exc = "exclude" _IIC = "InterceptorInputConfiguration" _pRH = "passRequestHeaders" _pF = "payloadFilter" @@ -1170,7 +1248,6 @@ _LO = "LOG_ONLY" _ENFORCE = "ENFORCE" _GPEC = "GatewayPolicyEngineConfiguration" -_mod = "mode" _MIc = "McpInstructions" _STe = "SearchType" _SEMANTIC = "SEMANTIC" @@ -1185,7 +1262,7 @@ _sVu = "supportedVersions" _sTe = "searchType" _sCe = "sessionConfiguration" -_sCt = "streamingConfiguration" +_sCtr = "streamingConfiguration" _dMLTP = "disableMcpListToolsPagination" _GPC = "GatewayProtocolConfiguration" _mc = "mcp" @@ -1197,6 +1274,7 @@ _iCnt = "interceptorConfigurations" _pEC = "policyEngineConfiguration" _eL = "exceptionLevel" +_dO = "domainOverride" _LTC = "LambdaTransformConfiguration" _CTC = "CustomTransformConfiguration" _GA = "GatewayArn" @@ -1247,16 +1325,21 @@ _UGO = "UpdateGatewayOutput" _cUGRo = "com.amazonaws.bedrockagentcorecontrol#UpdateGatewayResponse" _UG = "UpdateGateway" +_MOa = "MatchOperator" +_SE = "StringEquals" +_SLt = "StringLike" +_MPo = "ModelPattern" +_MME = "MatchModelEntry" +_op = "operator" +_MMEa = "MatchModelEntries" +_MMa = "MatchModels" +_aO = "anyOf" _MPP = "MatchPathPattern" _MPPa = "MatchPathPatterns" _MPa = "MatchPaths" -_aO = "anyOf" _IPAa = "IamPrincipalArn" _PMO = "PrincipalMatchOperator" -_SE = "StringEquals" -_SLt = "StringLike" _IP = "IamPrincipal" -_op = "operator" _MPE = "MatchPrincipalEntry" _iPa = "iamPrincipal" _MPEa = "MatchPrincipalEntries" @@ -1264,6 +1347,7 @@ _Co = "Condition" _mPa = "matchPrincipals" _mPat = "matchPaths" +_mM = "matchModels" _Con = "Conditions" _GRD = "GatewayRuleDescription" _GRP = "GatewayRulePriority" @@ -1271,7 +1355,7 @@ _cCGRR = "com.amazonaws.bedrockagentcorecontrol#CreateGatewayRuleRequest" _pri = "priority" _cond = "conditions" -_ac = "actions" +_act = "actions" _GRI = "GatewayRuleId" _GRS = "GatewayRuleStatus" _SMB = "SystemManagedBlock" @@ -1306,15 +1390,6 @@ _UGRO = "UpdateGatewayRuleOutput" _cUGRRo = "com.amazonaws.bedrockagentcorecontrol#UpdateGatewayRuleResponse" _UGR = "UpdateGatewayRule" -_CBOAI = "CertificateBucketOwnerAccountId" -_CSU = "CertificateS3Uri" -_SCC = "S3CertificateConfiguration" -_u = "uri" -_bOAI = "bucketOwnerAccountId" -_CSA = "CertificateSecretArn" -_SMCC = "SecretsManagerCertificateConfiguration" -_CCe = "CertificateConfiguration" -_CCL = "CertificateConfigurationList" _AKCL = "ApiKeyCredentialLocation" _HEADER = "HEADER" _QP = "QUERY_PARAMETER" @@ -1382,7 +1457,7 @@ _HCS = "HttpConnectorSource" _cI = "connectorId" _HCTC = "HttpConnectorTargetConfiguration" -_pa = "parameters" +_par = "parameters" _PEa = "PassthroughEndpoint" _PPT = "PassthroughProtocolType" _INFERENCE = "INFERENCE" @@ -1416,18 +1491,15 @@ _v___ = "." _MMo = "ModelMapping" _pP = "providerPrefix" -_MPo = "ModelPattern" _ME = "ModelEntry" -_mode = "model" _MEo = "ModelEntries" _IOP = "InferenceOperationPath" _IOC = "InferenceOperationConfiguration" -_pat = "path" _pPr = "providerPath" -_model = "models" +_mode = "models" _IOCn = "InferenceOperationConfigurations" _IPTC = "InferenceProviderTargetConfiguration" -_mM = "modelMapping" +_mMo = "modelMapping" _ope = "operations" _ITC = "InferenceTargetConfiguration" _RAM = "RestApiMethod" @@ -1447,8 +1519,8 @@ _meth = "method" _AGTOp = "ApiGatewayToolOverrides" _AGTC = "ApiGatewayToolConfiguration" -_tO = "toolOverrides" -_tF = "toolFilters" +_tOo = "toolOverrides" +_tFo = "toolFilters" _AGTCp = "ApiGatewayTargetConfiguration" _rAI = "restApiId" _stag = "stage" @@ -1532,7 +1604,7 @@ _HC = "HTTP_CONNECTOR" _TSa = "TargetSummary" _lSAa = "lastSynchronizedAt" -_aD = "authorizationData" +_aDu = "authorizationData" _tT = "targetType" _TSar = "TargetSummaries" _LGTO = "ListGatewayTargetsOutput" @@ -1547,7 +1619,7 @@ _RPB = "ResourcePolicyBody" _GRPO = "GetResourcePolicyOutput" _cGRPRo = "com.amazonaws.bedrockagentcorecontrol#GetResourcePolicyResponse" -_po = "policy" +_pol = "policy" _GRPe = "GetResourcePolicy" _TVIT = "TokenVaultIdType" _GTVI = "GetTokenVaultInput" @@ -1642,7 +1714,7 @@ _HACMC = "HarnessAgentCoreMemoryConfiguration" _aIc = "actorId" _mCe = "messagesCount" -_rC = "retrievalConfig" +_rCe = "retrievalConfig" _HDMC = "HarnessDisabledMemoryConfiguration" _HMMST = "HarnessManagedMemoryStrategyType" _SUMMARIZATION = "SUMMARIZATION" @@ -1669,7 +1741,7 @@ _TPo = "TopP" _HBMC = "HarnessBedrockModelConfig" _aF = "apiFormat" -_aP = "additionalParams" +_aPd = "additionalParams" _AKA = "ApiKeyArn" _TKo = "TopK" _HGMC = "HarnessGeminiModelConfig" @@ -1688,7 +1760,7 @@ _HASP = "HarnessAwsSkillPath" _HASPa = "HarnessAwsSkillPaths" _HSASS = "HarnessSkillAwsSkillsSource" -_path = "paths" +_pat = "paths" _HSGA = "HarnessSkillGitAuth" _cAr = "credentialArn" _us = "username" @@ -1722,6 +1794,7 @@ _HHK = "HttpHeaderKey" _HHV = "HttpHeaderValue" _HHM = "HttpHeadersMap" +_HRMOA = "HarnessRemoteMcpOutboundAuth" _HRMU = "HarnessRemoteMcpUrl" _HRMC = "HarnessRemoteMcpConfig" _h = "headers" @@ -1798,7 +1871,7 @@ _LHO = "ListHarnessesOutput" _cLHRo = "com.amazonaws.bedrockagentcorecontrol#ListHarnessesResponse" _har = "harnesses" -_LH = "ListHarnesses" +_LHi = "ListHarnesses" _LHVI = "ListHarnessVersionsInput" _cLHVR = "com.amazonaws.bedrockagentcorecontrol#ListHarnessVersionsRequest" _HVS = "HarnessVersionSummary" @@ -1901,10 +1974,16 @@ _eO = "episodicOverride" _sMC = "selfManagedConfiguration" _Nam = "Name" +_REA = "RecordExpiryAction" +_REMOVE = "REMOVE" +_REDD = "RecordExpiryDurationDays" +_RES = "RecordExpirySpecification" +_rEDD = "recordExpiryDurationDays" _CMSI = "CustomMemoryStrategyInput" +_rES = "recordExpirySpecification" _ERCI = "EpisodicReflectionConfigurationInput" _EMSI = "EpisodicMemoryStrategyInput" -_rCe = "reflectionConfiguration" +_rCef = "reflectionConfiguration" _SMSI = "SemanticMemoryStrategyInput" _SMSIu = "SummaryMemoryStrategyInput" _UPMSI = "UserPreferenceMemoryStrategyInput" @@ -1937,7 +2016,7 @@ _SDRL = "StreamDeliveryResourcesList" _SDRt = "StreamDeliveryResources" _reso = "resources" -_CMI = "CreateMemoryInput" +_CMIr = "CreateMemoryInput" _mERA = "memoryExecutionRoleArn" _mSe = "memoryStrategies" _iK = "indexedKeys" @@ -2057,7 +2136,7 @@ _ZO = "ZoomOauth2" _TO = "TwitchOauth2" _SOp = "SpotifyOauth2" -_DO = "DropboxOauth2" +_DOr = "DropboxOauth2" _NO = "NotionOauth2" _HO = "HubspotOauth2" _CAO = "CyberArkOauth2" @@ -2094,6 +2173,10 @@ _aSMu = "authorizationServerMetadata" _OBOTEGTT = "OnBehalfOfTokenExchangeGrantTypeType" _JAG = "JWT_AUTHORIZATION_GRANT" +_OBOCAM = "OnBehalfOfClientAuthenticationMethod" +_NC_ = "NO_CLIENT" +_OBOAC = "OnBehalfOfAuthenticationConfig" +_cAM = "clientAuthenticationMethod" _STco = "ScopeType" _SLT = "ScopesListType" _TEGTCT = "TokenExchangeGrantTypeConfigType" @@ -2101,6 +2184,7 @@ _aTS = "actorTokenScopes" _OBOTECT = "OnBehalfOfTokenExchangeConfigType" _tEGTC = "tokenExchangeGrantTypeConfig" +_oBOAC = "onBehalfOfAuthenticationConfig" _KKST = "KmsKeySourceType" _PKS = "PrivateKeySource" _kKS = "kmsKeySource" @@ -2116,7 +2200,6 @@ _COPCI = "CustomOauth2ProviderConfigInput" _oD = "oauthDiscovery" _oBOTEC = "onBehalfOfTokenExchangeConfig" -_cAM = "clientAuthenticationMethod" _pKJC = "privateKeyJwtConfig" _GOPCI = "GithubOauth2ProviderConfigInput" _GOPCIo = "GoogleOauth2ProviderConfigInput" @@ -2194,7 +2277,7 @@ _MONTHLY = "MONTHLY" _CFL = "ClusteringFrequencyList" _CCl = "ClusteringConfig" -_fr = "frequencies" +_fre = "frequencies" _LGNP = "LogGroupNamePrefix" _LGNPL = "LogGroupNamePrefixList" _LGN = "LogGroupName" @@ -2204,7 +2287,7 @@ _CWLIC = "CloudWatchLogsInputConfig" _lGN = "logGroupNames" _lGNP = "logGroupNamePrefixes" -_sN = "serviceNames" +_sNe = "serviceNames" _DSC = "DataSourceConfig" _cWL = "cloudWatchLogs" _ECD = "EvaluationConfigDescription" @@ -2239,13 +2322,13 @@ _LTOE = "LESS_THAN_OR_EQUAL" _LTOEe = "LessThanOrEqual" _Cont = "Contains" -_NC_ = "NOT_CONTAINS" +_NC__ = "NOT_CONTAINS" _NCo = "NotContains" _FV = "FilterValue" _sVtr = "stringValue" _dVo = "doubleValue" _bVo = "booleanValue" -_F = "Filter" +_Fi = "Filter" _FL = "FilterList" _SPa = "SamplingPercentage" _SCa = "SamplingConfig" @@ -2267,8 +2350,6 @@ _eERA = "evaluationExecutionRoleArn" _eOC = "enableOnCreate" _OEES = "OnlineEvaluationExecutionStatus" -_ENABLED = "ENABLED" -_DISABLED = "DISABLED" _OECA = "OnlineEvaluationConfigArn" _OECI = "OnlineEvaluationConfigId" _OECS = "OnlineEvaluationConfigStatus" @@ -2565,7 +2646,7 @@ _PDo = "PolicyDefinition" _ced = "cedar" _pG = "policyGeneration" -_FT = "FindingType" +_FTi = "FindingType" _VALID = "VALID" _INVALID = "INVALID" _NT_ = "NOT_TRANSLATABLE" @@ -2573,8 +2654,8 @@ _AN = "ALLOW_NONE" _DA_ = "DENY_ALL" _DN_ = "DENY_NONE" -_Fi = "Finding" -_Fin = "Findings" +_Fin = "Finding" +_Find = "Findings" _NLa = "NaturalLanguage" _PGAo = "PolicyGenerationAsset" _rTF = "rawTextFragment" @@ -2640,11 +2721,11 @@ _LPI = "ListPoliciesInput" _cLPR = "com.amazonaws.bedrockagentcorecontrol#ListPoliciesRequest" _tRS = "targetResourceScope" -_Po = "Policy" -_Pol = "Policies" +_Pol = "Policy" +_Poli = "Policies" _LPO = "ListPoliciesOutput" _cLPRo = "com.amazonaws.bedrockagentcorecontrol#ListPoliciesResponse" -_pol = "policies" +_poli = "policies" _LPi = "ListPolicies" _LPSI = "ListPolicySummariesInput" _cLPSR = "com.amazonaws.bedrockagentcorecontrol#ListPolicySummariesRequest" @@ -2809,6 +2890,11 @@ _URO = "UpdateRegistryOutput" _cURRo = "com.amazonaws.bedrockagentcorecontrol#UpdateRegistryResponse" _UR = "UpdateRegistry" +_RTVKMI = "ResetTokenVaultKeyMaterialInput" +_cRTVKMR = "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialRequest" +_RTVKMO = "ResetTokenVaultKeyMaterialOutput" +_cRTVKMRo = "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialResponse" +_RTVKM = "ResetTokenVaultKeyMaterial" _CME = "ConcurrentModificationException" _STVCMKI = "SetTokenVaultCMKInput" _cSTVCMKR = "com.amazonaws.bedrockagentcorecontrol#SetTokenVaultCMKRequest" @@ -2879,7 +2965,6 @@ _CGTI = "CreateGatewayTargetInput" _cCGTR = "com.amazonaws.bedrockagentcorecontrol#CreateGatewayTargetRequest" _tCa = "targetConfiguration" -_cCe = "certificateConfigurations" _CGTO = "CreateGatewayTargetOutput" _cCGTRo = "com.amazonaws.bedrockagentcorecontrol#CreateGatewayTargetResponse" _pEMR = "privateEndpointManagedResources" @@ -3005,17 +3090,108 @@ ((STATIC_OVERRIDE, 0), (WEIGHTED_OVERRIDE, 0)), ) +CIRCUIT_BREAKER_MODE: StaticSchema = ( + 14, + n0, + _CBM, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sVm: _ENABLED}), (-1, {_sVm: _DISABLED})), +) + +CIRCUIT_BREAKER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CBC, + 0, + (_mo,), + ((CIRCUIT_BREAKER_MODE, {_smi: _ENABLED}),), +) + +CONCRETE_MODEL_ID: StaticSchema = (3, n0, _CMI, 0) + TARGET_NAME: StaticSchema = (3, n0, _TN, 4) -STATIC_ROUTE: StaticSchema = (18, n0, _SR, 0, (_tN,), ((TARGET_NAME, 1),)) +FALLBACK_ERROR: StaticSchema = ( + 14, + n0, + _FE, + 0, + (_CE, _FBT, _UNROUTABLE), + ((-1, {_sVm: _CE}), (-1, {_sVm: _FBT}), (-1, {_sVm: _UNROUTABLE})), +) + +FALLBACK_ERRORS: StaticSchema = (16, n0, _FEa, 0, (_mem,), ((FALLBACK_ERROR, 0),)) + +ERROR_STATUS_CODE_PATTERN: StaticSchema = (3, n0, _ESCP, 0) + +ERROR_STATUS_CODE_PATTERNS: StaticSchema = ( + 16, + n0, + _ESCPr, + 0, + (_mem,), + ((ERROR_STATUS_CODE_PATTERN, 0),), +) + +FALLBACK_TRIGGERS: StaticSchema = ( + 18, + n0, + _FT, + 0, + (_sC, _e), + ((ERROR_STATUS_CODE_PATTERNS, 0), (FALLBACK_ERRORS, 0)), +) + +FALLBACK_TARGET: StaticSchema = ( + 18, + n0, + _FTa, + 0, + (_tN, _mod, _tO, _fBTM), + ((TARGET_NAME, 1), (CONCRETE_MODEL_ID, 0), (FALLBACK_TRIGGERS, 0), (7, 0)), +) + +TARGET_FALLBACKS: StaticSchema = (16, n0, _TF, 0, (_mem,), ((FALLBACK_TARGET, 0),)) + +FALLBACK: StaticSchema = ( + 18, + n0, + _F, + 0, + (_tO, _fBTM, _cBi, _tF), + ( + (FALLBACK_TRIGGERS, 0), + (7, 0), + (CIRCUIT_BREAKER_CONFIGURATION, 0), + (TARGET_FALLBACKS, 1), + ), +) + +STATIC_ROUTE: StaticSchema = ( + 18, + n0, + _SR, + 0, + (_tN, _mod, _f), + ((TARGET_NAME, 1), (CONCRETE_MODEL_ID, 0), (FALLBACK, 0)), +) TARGET_TRAFFIC_SPLIT_ENTRY: StaticSchema = ( 18, n0, _TTSE, 0, - (_n, _w, _tN, _d, _me), - ((3, 1), (7, 1), (TARGET_NAME, 1), (3, 0), (TRAFFIC_SPLIT_METADATA_MAP, 0)), + (_tN, _mod, _f, _n, _w, _d, _me), + ( + (TARGET_NAME, 1), + (CONCRETE_MODEL_ID, 0), + (FALLBACK, 0), + (3, 1), + (7, 1), + (3, 0), + (TRAFFIC_SPLIT_METADATA_MAP, 0), + ), ) TARGET_TRAFFIC_SPLIT_ENTRIES: StaticSchema = ( @@ -3078,7 +3254,7 @@ n0, _IES, 0, - (_e,), + (_ex,), ((DATASET_EXAMPLE_LIST, 1),), ) @@ -3099,7 +3275,7 @@ 18, n0, _ADEI, - {_sSI: _cADER, _smit: None}, + {_sSI: _cADER, _smith: None}, (_dI, _cT, _so), ((DATASET_ID, 9), (CLIENT_TOKEN, 2), (DATA_SOURCE_TYPE, 1)), ) @@ -3131,7 +3307,7 @@ 18, n0, _ADEO, - {_sSI: _cADERo, _smith: None}, + {_sSI: _cADERo, _smithy: None}, (_dA, _dI, _st, _aCd, _uA, _eI), ( (DATASET_ARN, 1), @@ -3146,7 +3322,7 @@ CONFLICT_EXCEPTION: StaticSchema = ( 18, n0, - _CE, + _CEo, {_s: _c, _sE: 409}, (_m,), ((NON_BLANK_STRING, 0),), @@ -3228,7 +3404,7 @@ n0, _ADEd, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/datasets/{datasetId}/examples/add", "code": 202} ) }, @@ -3289,7 +3465,7 @@ 18, n0, _CAREI, - {_sSI: _cCARER, _smit: None}, + {_sSI: _cCARER, _smith: None}, (_aRI, _n, _aRV, _d, _cT, _t), ( (AGENT_RUNTIME_ID, 9), @@ -3328,7 +3504,7 @@ 18, n0, _CAREO, - {_sSI: _cCARERo, _smith: None}, + {_sSI: _cCARERo, _smithy: None}, (_tV, _aREA, _aRA, _aRI, _eN, _st, _cA), ( (AGENT_RUNTIME_VERSION, 1), @@ -3346,7 +3522,7 @@ n0, _CARE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PUT", @@ -3371,7 +3547,7 @@ 18, n0, _DAREI, - {_sSI: _cDARER, _smit: None}, + {_sSI: _cDARER, _smith: None}, (_aRI, _eN, _cT), ((AGENT_RUNTIME_ID, 9), (ENDPOINT_NAME, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -3380,7 +3556,7 @@ 18, n0, _DAREO, - {_sSI: _cDARERo, _smith: None}, + {_sSI: _cDARERo, _smithy: None}, (_st, _aRI, _eN), ((AGENT_RUNTIME_ENDPOINT_STATUS, 1), (AGENT_RUNTIME_ID, 0), (ENDPOINT_NAME, 0)), ) @@ -3390,7 +3566,7 @@ n0, _DARE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -3413,7 +3589,7 @@ 18, n0, _GAREI, - {_sSI: _cGARER, _smit: None}, + {_sSI: _cGARER, _smith: None}, (_aRI, _eN), ((AGENT_RUNTIME_ID, 9), (ENDPOINT_NAME, 9)), ) @@ -3424,7 +3600,7 @@ 18, n0, _GAREO, - {_sSI: _cGARERo, _smith: None}, + {_sSI: _cGARERo, _smithy: None}, (_lV, _tV, _aREA, _aRA, _d, _st, _cA, _lUA, _fR, _n, _i), ( (AGENT_RUNTIME_VERSION, 0), @@ -3446,7 +3622,7 @@ n0, _GARE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -3473,7 +3649,7 @@ 18, n0, _LAREI, - {_sSI: _cLARER, _smit: None}, + {_sSI: _cLARER, _smith: None}, (_aRI, _mR, _nT), ((AGENT_RUNTIME_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -3511,7 +3687,7 @@ 18, n0, _LAREO, - {_sSI: _cLARERo, _smith: None}, + {_sSI: _cLARERo, _smithy: None}, (_rE, _nT), ((AGENT_RUNTIME_ENDPOINTS, 1), (NEXT_TOKEN, 0)), ) @@ -3521,7 +3697,7 @@ n0, _LARE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "POST", @@ -3543,7 +3719,7 @@ 18, n0, _UAREI, - {_sSI: _cUARER, _smit: None}, + {_sSI: _cUARER, _smith: None}, (_aRI, _eN, _aRV, _d, _cT), ( (AGENT_RUNTIME_ID, 9), @@ -3558,7 +3734,7 @@ 18, n0, _UAREO, - {_sSI: _cUARERo, _smith: None}, + {_sSI: _cUARERo, _smithy: None}, (_lV, _tV, _aREA, _aRA, _st, _cA, _lUA), ( (AGENT_RUNTIME_VERSION, 0), @@ -3576,7 +3752,7 @@ n0, _UARE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PUT", @@ -3652,6 +3828,14 @@ AGENT_RUNTIME_NAME: StaticSchema = (3, n0, _ARN, 0) +PORT: StaticSchema = (7, n0, _Po, 0) + +PORT_RANGE: StaticSchema = (18, n0, _PR, 0, (_fr, _to), ((PORT, 1), (PORT, 1))) + +ALLOWED_PORT: StaticSchema = (19, n0, _AP, 0, (_po, _pR), ((PORT, 0), (PORT_RANGE, 0))) + +ALLOWED_PORTS: StaticSchema = (16, n0, _APl, 0, (_mem,), ((ALLOWED_PORT, 0),)) + ALLOWED_AUDIENCE: StaticSchema = (3, n0, _AA, 0) ALLOWED_AUDIENCE_LIST: StaticSchema = ( @@ -3716,6 +3900,48 @@ ((HOSTING_ENVIRONMENT_LIST_TYPE, 0), (WORKLOAD_IDENTITY_NAME_LIST_TYPE, 0)), ) +CERTIFICATE_BUCKET_OWNER_ACCOUNT_ID: StaticSchema = (3, n0, _CBOAI, 0) + +CERTIFICATE_S3_URI: StaticSchema = (3, n0, _CSU, 0) + +S3_CERTIFICATE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCC, + 0, + (_u, _bOAI), + ((CERTIFICATE_S3_URI, 1), (CERTIFICATE_BUCKET_OWNER_ACCOUNT_ID, 0)), +) + +CERTIFICATE_SECRET_ARN: StaticSchema = (3, n0, _CSA, 0) + +SECRETS_MANAGER_CERTIFICATE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SMCC, + 0, + (_sA,), + ((CERTIFICATE_SECRET_ARN, 1),), +) + +CERTIFICATE_CONFIGURATION: StaticSchema = ( + 19, + n0, + _CCe, + 0, + (_s_, _sM), + ((S3_CERTIFICATE_CONFIGURATION, 0), (SECRETS_MANAGER_CERTIFICATE_CONFIGURATION, 0)), +) + +CERTIFICATE_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _CCL, + 0, + (_mem,), + ((CERTIFICATE_CONFIGURATION, 0),), +) + CLAIM_MATCH_OPERATOR_TYPE: StaticSchema = ( 14, n0, @@ -3878,7 +4104,7 @@ n0, _CJWTAC, 0, - (_dU, _aA, _aCl, _aS, _aSM, _cCu, _pE, _pEO, _aWC), + (_dU, _aA, _aCl, _aS, _aSM, _cCu, _pE, _pEO, _cCe, _aWC), ( (DISCOVERY_URL, 1), (ALLOWED_AUDIENCE_LIST, 0), @@ -3888,6 +4114,7 @@ (CUSTOM_CLAIM_VALIDATIONS_TYPE, 0), (PRIVATE_ENDPOINT, 0), (PRIVATE_ENDPOINT_OVERRIDES, 0), + (CERTIFICATE_CONFIGURATION_LIST, 0), (ALLOWED_WORKLOAD_CONFIGURATION, 0), ), ) @@ -3994,6 +4221,41 @@ ((FILESYSTEM_CONFIGURATION, 0),), ) +LIFECYCLE_HOOK_PATH: StaticSchema = (3, n0, _LHP, 0) + +SERVER_PORT: StaticSchema = (7, n0, _SP, 0) + +HTTP_POST_LIFECYCLE_HOOK_ACTION: StaticSchema = ( + 18, + n0, + _HPLHA, + 0, + (_pa, _po), + ((LIFECYCLE_HOOK_PATH, 1), (SERVER_PORT, 0)), +) + +LIFECYCLE_HOOK_ACTION: StaticSchema = ( + 19, + n0, + _LHA, + 0, + (_hP,), + ((HTTP_POST_LIFECYCLE_HOOK_ACTION, 0),), +) + +LIFECYCLE_HOOK: StaticSchema = (18, n0, _LH, 0, (_ac,), ((LIFECYCLE_HOOK_ACTION, 1),)) + +BUILD_LIFECYCLE_HOOKS: StaticSchema = (18, n0, _BLH, 0, (_wa,), ((LIFECYCLE_HOOK, 0),)) + +RUNTIME_HOOKS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RHC, + 0, + (_bu,), + ((BUILD_LIFECYCLE_HOOKS, 0),), +) + LIFECYCLE_CONFIGURATION: StaticSchema = (18, n0, _LC, 0, (_iRST, _mL), ((7, 0), (7, 0))) NETWORK_MODE: StaticSchema = ( @@ -4031,16 +4293,25 @@ PLATFORM_VERSION: StaticSchema = (3, n0, _PV, 0) +SERVER_PATH: StaticSchema = (3, n0, _SPe, 0) + SERVER_PROTOCOL: StaticSchema = ( 14, n0, - _SP, + _SPer, 0, (_MCP, _HTTP, _AA_, _AGUI), ((-1, {_sVm: _MCP}), (-1, {_sVm: _HTTP}), (-1, {_sVm: _AA_}), (-1, {_sVm: _AGUI})), ) -PROTOCOL_CONFIGURATION: StaticSchema = (18, n0, _PC, 0, (_sP,), ((SERVER_PROTOCOL, 1),)) +PROTOCOL_CONFIGURATION: StaticSchema = ( + 18, + n0, + _PC, + 0, + (_sP, _po, _pa), + ((SERVER_PROTOCOL, 1), (SERVER_PORT, 0), (SERVER_PATH, 0)), +) HEADER_NAME: StaticSchema = (3, n0, _HN, 0) @@ -4049,20 +4320,50 @@ REQUEST_HEADER_CONFIGURATION: StaticSchema = ( 19, n0, - _RHC, + _RHCe, 0, (_rHA,), ((REQUEST_HEADER_ALLOWLIST, 0),), ) +RESOURCE_CONFIGURATION: StaticSchema = (18, n0, _RCes, 0, (_mMIMB,), ((7, 1),)) + +RESOURCE_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _RCeso, + 0, + (_mem,), + ((RESOURCE_CONFIGURATION, 0),), +) + ROLE_ARN: StaticSchema = (3, n0, _RA, 0) CREATE_AGENT_RUNTIME_INPUT: StaticSchema = ( 18, n0, _CARI, - {_sSI: _cCARR, _smit: None}, - (_aRN, _aRAg, _rA, _nC, _cT, _d, _aCu, _rHC, _pC, _lC, _eV, _fC, _cPC, _t, _pV), + {_sSI: _cCARR, _smith: None}, + ( + _aRN, + _aRAg, + _rA, + _nC, + _cT, + _d, + _aCu, + _rHC, + _pC, + _lC, + _hC, + _eV, + _fC, + _cPC, + _t, + _pV, + _aP, + _rC, + ), ( (AGENT_RUNTIME_NAME, 1), (AGENT_RUNTIME_ARTIFACT, 1), @@ -4074,11 +4375,14 @@ (REQUEST_HEADER_CONFIGURATION, 0), (PROTOCOL_CONFIGURATION, 0), (LIFECYCLE_CONFIGURATION, 0), + (RUNTIME_HOOKS_CONFIGURATION, 0), (ENVIRONMENT_VARIABLES_MAP, 0), (FILESYSTEM_CONFIGURATIONS, 0), (CAPACITY_PROVIDER_CONFIGURATION, 0), (TAGS_MAP, 0), (PLATFORM_VERSION, 0), + (ALLOWED_PORTS, 0), + (RESOURCE_CONFIGURATIONS, 0), ), ) @@ -4114,7 +4418,7 @@ 18, n0, _CARO, - {_sSI: _cCARRo, _smith: None}, + {_sSI: _cCARRo, _smithy: None}, (_aRA, _wID, _aRI, _aRV, _cA, _st), ( (AGENT_RUNTIME_ARN, 1), @@ -4130,7 +4434,7 @@ 23, n0, _CAR, - {_smithy: MappingProxyType({"code": 202, "method": "PUT", "uri": "/runtimes/"})}, + {_smithya: MappingProxyType({"code": 202, "method": "PUT", "uri": "/runtimes/"})}, CREATE_AGENT_RUNTIME_INPUT, CREATE_AGENT_RUNTIME_OUTPUT, ( @@ -4147,7 +4451,7 @@ 18, n0, _DARI, - {_sSI: _cDARR, _smit: None}, + {_sSI: _cDARR, _smith: None}, (_aRI, _aRV, _cT), ( (AGENT_RUNTIME_ID, 9), @@ -4160,7 +4464,7 @@ 18, n0, _DARO, - {_sSI: _cDARRo, _smith: None}, + {_sSI: _cDARRo, _smithy: None}, (_st, _aRI, _aRV), ((AGENT_RUNTIME_STATUS, 1), (AGENT_RUNTIME_ID, 0), (AGENT_RUNTIME_VERSION, 0)), ) @@ -4170,7 +4474,7 @@ n0, _DAR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "DELETE", "uri": "/runtimes/{agentRuntimeId}/"} ) }, @@ -4189,7 +4493,7 @@ 18, n0, _GARI, - {_sSI: _cGARR, _smit: None}, + {_sSI: _cGARR, _smith: None}, (_aRI, _aRV), ((AGENT_RUNTIME_ID, 9), (AGENT_RUNTIME_VERSION, {_sQ: _ve})), ) @@ -4200,7 +4504,7 @@ 18, n0, _GARO, - {_sSI: _cGARRo, _smith: None}, + {_sSI: _cGARRo, _smithy: None}, ( _aRA, _aRN, @@ -4212,6 +4516,7 @@ _nC, _st, _lC, + _hC, _fR, _d, _wID, @@ -4224,6 +4529,8 @@ _fC, _cPC, _pV, + _aP, + _rC, ), ( (AGENT_RUNTIME_ARN, 1), @@ -4236,6 +4543,7 @@ (NETWORK_CONFIGURATION, 0), (AGENT_RUNTIME_STATUS, 1), (LIFECYCLE_CONFIGURATION, 1), + (RUNTIME_HOOKS_CONFIGURATION, 0), (3, 0), (DESCRIPTION, 0), (WORKLOAD_IDENTITY_DETAILS, 0), @@ -4248,6 +4556,8 @@ (FILESYSTEM_CONFIGURATIONS, 0), (CAPACITY_PROVIDER_CONFIGURATION, 0), (PLATFORM_VERSION, 0), + (ALLOWED_PORTS, 0), + (RESOURCE_CONFIGURATIONS, 0), ), ) @@ -4256,7 +4566,7 @@ n0, _GAR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/runtimes/{agentRuntimeId}/"} ) }, @@ -4275,7 +4585,7 @@ 18, n0, _LARI, - {_sSI: _cLARR, _smit: None}, + {_sSI: _cLARR, _smith: None}, (_mR, _nT), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -4303,7 +4613,7 @@ 18, n0, _LARO, - {_sSI: _cLARRo, _smith: None}, + {_sSI: _cLARRo, _smithy: None}, (_aR, _nT), ((AGENT_RUNTIMES, 1), (NEXT_TOKEN, 0)), ) @@ -4312,7 +4622,7 @@ 23, n0, _LAR, - {_smithy: MappingProxyType({"code": 200, "method": "POST", "uri": "/runtimes/"})}, + {_smithya: MappingProxyType({"code": 200, "method": "POST", "uri": "/runtimes/"})}, LIST_AGENT_RUNTIMES_INPUT, LIST_AGENT_RUNTIMES_OUTPUT, ( @@ -4327,7 +4637,7 @@ 18, n0, _LARVI, - {_sSI: _cLARVR, _smit: None}, + {_sSI: _cLARVR, _smith: None}, (_aRI, _mR, _nT), ((AGENT_RUNTIME_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -4336,7 +4646,7 @@ 18, n0, _LARVO, - {_sSI: _cLARVRo, _smith: None}, + {_sSI: _cLARVRo, _smithy: None}, (_aR, _nT), ((AGENT_RUNTIMES, 1), (NEXT_TOKEN, 0)), ) @@ -4346,7 +4656,7 @@ n0, _LARV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "POST", @@ -4369,8 +4679,27 @@ 18, n0, _UARI, - {_sSI: _cUARR, _smit: None}, - (_aRI, _aRAg, _rA, _nC, _d, _aCu, _rHC, _pC, _lC, _mC, _eV, _fC, _cPC, _pV, _cT), + {_sSI: _cUARR, _smith: None}, + ( + _aRI, + _aRAg, + _rA, + _nC, + _d, + _aCu, + _rHC, + _pC, + _lC, + _hC, + _mC, + _eV, + _fC, + _cPC, + _pV, + _aP, + _rC, + _cT, + ), ( (AGENT_RUNTIME_ID, 9), (AGENT_RUNTIME_ARTIFACT, 1), @@ -4381,11 +4710,14 @@ (REQUEST_HEADER_CONFIGURATION, 0), (PROTOCOL_CONFIGURATION, 0), (LIFECYCLE_CONFIGURATION, 0), + (RUNTIME_HOOKS_CONFIGURATION, 0), (RUNTIME_METADATA_CONFIGURATION, 0), (ENVIRONMENT_VARIABLES_MAP, 0), (FILESYSTEM_CONFIGURATIONS, 0), (CAPACITY_PROVIDER_CONFIGURATION, 0), (PLATFORM_VERSION, 0), + (ALLOWED_PORTS, 0), + (RESOURCE_CONFIGURATIONS, 0), (CLIENT_TOKEN, 2), ), ) @@ -4394,7 +4726,7 @@ 18, n0, _UARO, - {_sSI: _cUARRo, _smith: None}, + {_sSI: _cUARRo, _smithy: None}, (_aRA, _aRI, _wID, _aRV, _cA, _lUA, _st), ( (AGENT_RUNTIME_ARN, 1), @@ -4412,7 +4744,7 @@ n0, _UAR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "PUT", "uri": "/runtimes/{agentRuntimeId}/"} ) }, @@ -4463,7 +4795,7 @@ n0, _ASD, 0, - (_sM, _sD), + (_sMk, _sD), ((SKILL_MD_DEFINITION, 0), (SKILL_DEFINITION, 0)), ) @@ -4554,11 +4886,11 @@ 18, n0, _CAKCPI, - {_sSI: _cCAKCPR, _smit: None}, + {_sSI: _cCAKCPR, _smith: None}, (_n, _aK, _aKSC, _aKSS, _t), ( (CREDENTIAL_PROVIDER_NAME, 1), - (DEFAULT_API_KEY_TYPE, {_smithya: _v_}), + (DEFAULT_API_KEY_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), (TAGS_MAP, 0), @@ -4573,7 +4905,7 @@ 18, n0, _CAKCPO, - {_sSI: _cCAKCPRo, _smith: None}, + {_sSI: _cCAKCPRo, _smithy: None}, (_aKSA, _aKSJK, _aKSS, _n, _cPAr), ( (SECRET, 1), @@ -4611,7 +4943,7 @@ n0, _CAKCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 201, "uri": "/identities/CreateApiKeyCredentialProvider", @@ -4640,7 +4972,7 @@ 18, n0, _DAKCPI, - {_sSI: _cDAKCPR, _smit: None}, + {_sSI: _cDAKCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -4649,7 +4981,7 @@ 18, n0, _DAKCPO, - {_sSI: _cDAKCPRo, _smith: None}, + {_sSI: _cDAKCPRo, _smithy: None}, ) DELETE_API_KEY_CREDENTIAL_PROVIDER: StaticOperationSchema = ( @@ -4657,7 +4989,7 @@ n0, _DAKCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 204, "uri": "/identities/DeleteApiKeyCredentialProvider", @@ -4681,7 +5013,7 @@ 18, n0, _GAKCPI, - {_sSI: _cGAKCPR, _smit: None}, + {_sSI: _cGAKCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -4690,7 +5022,7 @@ 18, n0, _GAKCPO, - {_sSI: _cGAKCPRo, _smith: None}, + {_sSI: _cGAKCPRo, _smithy: None}, (_aKSA, _aKSJK, _aKSS, _n, _cPAr, _cTr, _lUT), ( (SECRET, 1), @@ -4708,7 +5040,7 @@ n0, _GAKCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/GetApiKeyCredentialProvider", "method": "POST"} ) }, @@ -4729,9 +5061,9 @@ 18, n0, _LAKCPI, - {_sSI: _cLAKCPR, _smit: None}, + {_sSI: _cLAKCPR, _smith: None}, (_nT, _mR), - ((3, 0), (MAX_RESULTS, {_smithya: 10})), + ((3, 0), (MAX_RESULTS, {_smi: 10})), ) API_KEY_CREDENTIAL_PROVIDER_ITEM: StaticSchema = ( @@ -4761,7 +5093,7 @@ 18, n0, _LAKCPO, - {_sSI: _cLAKCPRo, _smith: None}, + {_sSI: _cLAKCPRo, _smithy: None}, (_cP, _nT), ((API_KEY_CREDENTIAL_PROVIDERS, 1), (3, 0)), ) @@ -4771,7 +5103,7 @@ n0, _LAKCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/ListApiKeyCredentialProviders", "method": "POST"} ) }, @@ -4791,11 +5123,11 @@ 18, n0, _UAKCPI, - {_sSI: _cUAKCPR, _smit: None}, + {_sSI: _cUAKCPR, _smith: None}, (_n, _aK, _aKSC, _aKSS), ( (CREDENTIAL_PROVIDER_NAME, 1), - (DEFAULT_API_KEY_TYPE, {_smithya: _v_}), + (DEFAULT_API_KEY_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -4805,7 +5137,7 @@ 18, n0, _UAKCPO, - {_sSI: _cUAKCPRo, _smith: None}, + {_sSI: _cUAKCPRo, _smithy: None}, (_aKSA, _aKSJK, _aKSS, _n, _cPAr, _cTr, _lUT), ( (SECRET, 1), @@ -4823,7 +5155,7 @@ n0, _UAKCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/UpdateApiKeyCredentialProvider", "method": "POST"} ) }, @@ -4851,7 +5183,7 @@ 18, n0, _CBPI, - {_sSI: _cCBPR, _smit: None}, + {_sSI: _cCBPR, _smith: None}, (_n, _d, _cT, _t), ((BROWSER_PROFILE_NAME, 1), (DESCRIPTION, 0), (CLIENT_TOKEN, 2), (TAGS_MAP, 0)), ) @@ -4876,7 +5208,7 @@ 18, n0, _CBPO, - {_sSI: _cCBPRo, _smith: None}, + {_sSI: _cCBPRo, _smithy: None}, (_pI, _pA, _cA, _st), ( (BROWSER_PROFILE_ID, 1), @@ -4891,7 +5223,7 @@ n0, _CBP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "PUT", "uri": "/browser-profiles"} ) }, @@ -4911,7 +5243,7 @@ 18, n0, _DBPI, - {_sSI: _cDBPR, _smit: None}, + {_sSI: _cDBPR, _smith: None}, (_pI, _cT), ((BROWSER_PROFILE_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -4920,7 +5252,7 @@ 18, n0, _DBPO, - {_sSI: _cDBPRo, _smith: None}, + {_sSI: _cDBPRo, _smithy: None}, (_pI, _pA, _st, _lUA, _lSA), ( (BROWSER_PROFILE_ID, 1), @@ -4936,7 +5268,7 @@ n0, _DBP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "DELETE", "uri": "/browser-profiles/{profileId}"} ) }, @@ -4956,7 +5288,7 @@ 18, n0, _GBPI, - {_sSI: _cGBPR, _smit: None}, + {_sSI: _cGBPR, _smith: None}, (_pI,), ((BROWSER_PROFILE_ID, 9),), ) @@ -4969,7 +5301,7 @@ 18, n0, _GBPO, - {_sSI: _cGBPRo, _smith: None}, + {_sSI: _cGBPRo, _smithy: None}, (_pI, _pA, _n, _d, _st, _cA, _lUA, _lSA, _lSBSI, _lSBI), ( (BROWSER_PROFILE_ID, 1), @@ -4990,7 +5322,7 @@ n0, _GBP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/browser-profiles/{profileId}"} ) }, @@ -5009,7 +5341,7 @@ 18, n0, _LBPI, - {_sSI: _cLBPR, _smit: None}, + {_sSI: _cLBPR, _smith: None}, (_mR, _nT, _n), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT}), (BROWSER_PROFILE_NAME, 0)), ) @@ -5047,7 +5379,7 @@ 18, n0, _LBPO, - {_sSI: _cLBPRo, _smith: None}, + {_sSI: _cLBPRo, _smithy: None}, (_pS, _nT), ((BROWSER_PROFILE_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -5057,7 +5389,7 @@ n0, _LBP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "POST", "uri": "/browser-profiles"} ) }, @@ -5077,7 +5409,7 @@ _BSCI, 0, (_en,), - ((2, {_smithya: False, _sm: None}),), + ((2, {_smi: False, _sm: None}),), ) TOOL_SECRET_ARN: StaticSchema = (3, n0, _TSA, 0) @@ -5096,7 +5428,7 @@ n0, _CL, 0, - (_sMe,), + (_sM,), ((SECRETS_MANAGER_LOCATION, 0),), ) @@ -5190,7 +5522,7 @@ _BNC, 0, (_nM, _vC), - ((BROWSER_NETWORK_MODE, {_smithya: _PUBLIC, _sm: None}), (VPC_CONFIG, 0)), + ((BROWSER_NETWORK_MODE, {_smi: _PUBLIC, _sm: None}), (VPC_CONFIG, 0)), ) RECORDING_CONFIG: StaticSchema = ( @@ -5199,14 +5531,14 @@ _RCec, 0, (_en, _sLo), - ((2, {_smithya: False}), (S3_LOCATION, 0)), + ((2, {_smi: False}), (S3_LOCATION, 0)), ) CREATE_BROWSER_INPUT: StaticSchema = ( 18, n0, _CBI, - {_sSI: _cCBR, _smit: None}, + {_sSI: _cCBR, _smith: None}, (_n, _d, _eRA, _nC, _re, _bS, _ePn, _ce, _fC, _cT, _t), ( (SANDBOX_NAME, 1), @@ -5245,7 +5577,7 @@ 18, n0, _CBO, - {_sSI: _cCBRo, _smith: None}, + {_sSI: _cCBRo, _smithy: None}, (_bI, _bAr, _cA, _st), ((BROWSER_ID, 1), (BROWSER_ARN, 1), (DATE_TIMESTAMP, 1), (BROWSER_STATUS, 1)), ) @@ -5254,7 +5586,7 @@ 23, n0, _CB, - {_smithy: MappingProxyType({"code": 202, "method": "PUT", "uri": "/browsers"})}, + {_smithya: MappingProxyType({"code": 202, "method": "PUT", "uri": "/browsers"})}, CREATE_BROWSER_INPUT, CREATE_BROWSER_OUTPUT, ( @@ -5271,7 +5603,7 @@ 18, n0, _DBI, - {_sSI: _cDBR, _smit: None}, + {_sSI: _cDBR, _smith: None}, (_bI, _cT), ((BROWSER_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -5280,7 +5612,7 @@ 18, n0, _DBO, - {_sSI: _cDBRo, _smith: None}, + {_sSI: _cDBRo, _smithy: None}, (_bI, _st, _lUA), ((BROWSER_ID, 1), (BROWSER_STATUS, 1), (DATE_TIMESTAMP, 1)), ) @@ -5290,7 +5622,7 @@ n0, _DB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "DELETE", "uri": "/browsers/{browserId}"} ) }, @@ -5311,7 +5643,7 @@ 18, n0, _GBI, - {_sSI: _cGBR, _smit: None}, + {_sSI: _cGBR, _smith: None}, (_bI,), ((BROWSER_ID, 9),), ) @@ -5322,14 +5654,14 @@ _BSCO, 0, (_en,), - ((2, {_smithya: False, _sm: None}),), + ((2, {_smi: False, _sm: None}),), ) GET_BROWSER_OUTPUT: StaticSchema = ( 18, n0, _GBO, - {_sSI: _cGBRo, _smith: None}, + {_sSI: _cGBRo, _smithy: None}, (_bI, _bAr, _n, _d, _eRA, _nC, _re, _bS, _ePn, _ce, _fC, _st, _fR, _cA, _lUA), ( (BROWSER_ID, 1), @@ -5355,7 +5687,7 @@ n0, _GB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/browsers/{browserId}"} ) }, @@ -5383,7 +5715,7 @@ 18, n0, _LBI, - {_sSI: _cLBR, _smit: None}, + {_sSI: _cLBR, _smith: None}, (_mR, _nT, _ty), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT}), (RESOURCE_TYPE, {_sQ: _ty})), ) @@ -5411,7 +5743,7 @@ 18, n0, _LBO, - {_sSI: _cLBRo, _smith: None}, + {_sSI: _cLBRo, _smithy: None}, (_bSr, _nT), ((BROWSER_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -5420,7 +5752,7 @@ 23, n0, _LB, - {_smithy: MappingProxyType({"code": 200, "method": "POST", "uri": "/browsers"})}, + {_smithya: MappingProxyType({"code": 200, "method": "POST", "uri": "/browsers"})}, LIST_BROWSERS_INPUT, LIST_BROWSERS_OUTPUT, ( @@ -5504,7 +5836,7 @@ 0, (_vT, _iop, _th, _enc, _kKI, _sIn, _vS, _vIR, _eCI), ( - (EBS_VOLUME_TYPE, {_smithya: _gp}), + (EBS_VOLUME_TYPE, {_smi: _gp}), (VOLUME_IOPS, 0), (VOLUME_THROUGHPUT, 0), (2, 0), @@ -5600,7 +5932,7 @@ n0, _LP, 0, - (_oS, _iR, _eVp, _mo, _lS, _cRS, _sKN, _iPA, _pT), + (_oS, _iR, _eVp, _mon, _lS, _cRS, _sKN, _iPA, _pT), ( (OPERATING_SYSTEM, 1), (INSTANCE_REQUIREMENTS, 1), @@ -5639,7 +5971,7 @@ 0, (_vT, _iop, _th, _enc, _kKI, _fSGB), ( - (EBS_VOLUME_TYPE, {_smithya: _gp}), + (EBS_VOLUME_TYPE, {_smi: _gp}), (VOLUME_IOPS, 0), (VOLUME_THROUGHPUT, 0), (2, 0), @@ -5659,7 +5991,7 @@ ( (VOLUME_NAME, 1), (VOLUME_SIZE_GI_B, 1), - (EBS_VOLUME_TYPE, {_smithya: _gp}), + (EBS_VOLUME_TYPE, {_smi: _gp}), (VOLUME_IOPS, 0), (VOLUME_THROUGHPUT, 0), (2, 0), @@ -5738,7 +6070,7 @@ 18, n0, _CCPI, - {_smit: None}, + {_smith: None}, (_n, _d, _pCe, _cT, _t, _cCom), ( (CAPACITY_PROVIDER_NAME, 1), @@ -5771,7 +6103,7 @@ 18, n0, _CCPO, - {_smith: None}, + {_smithy: None}, (_cPI, _cPA, _n, _st), ( (CAPACITY_PROVIDER_ID, 1), @@ -5795,7 +6127,7 @@ n0, _CCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "PUT", "uri": "/capacity-providers", "code": 202} ) }, @@ -5817,7 +6149,7 @@ 18, n0, _DCPI, - {_smit: None}, + {_smith: None}, (_cPI, _cT), ((CAPACITY_PROVIDER_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -5826,7 +6158,7 @@ 18, n0, _DCPO, - {_smith: None}, + {_smithy: None}, (_cPI, _st), ((CAPACITY_PROVIDER_ID, 1), (CAPACITY_PROVIDER_STATUS, 1)), ) @@ -5836,7 +6168,7 @@ n0, _DCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "DELETE", "uri": "/capacity-providers/{capacityProviderId}", @@ -5861,7 +6193,7 @@ 18, n0, _GCPI, - {_smit: None}, + {_smith: None}, (_cPI,), ((CAPACITY_PROVIDER_ID, 9),), ) @@ -5884,8 +6216,8 @@ 18, n0, _GCPO, - {_smith: None}, - (_cPI, _cPA, _n, _st, _d, _sC, _sRt, _pCe, _cCom, _cA, _lUA), + {_smithy: None}, + (_cPI, _cPA, _n, _st, _d, _sCt, _sRt, _pCe, _cCom, _cA, _lUA), ( (CAPACITY_PROVIDER_ID, 1), (CAPACITY_PROVIDER_ARN, 1), @@ -5906,7 +6238,7 @@ n0, _GCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/capacity-providers/{capacityProviderId}", @@ -5929,7 +6261,7 @@ 18, n0, _LARVBCPI, - {_smit: None}, + {_smith: None}, (_cPI, _mR, _nT), ((CAPACITY_PROVIDER_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -5938,7 +6270,7 @@ 18, n0, _LARVBCPO, - {_smith: None}, + {_smithy: None}, (_aR, _nT), ((AGENT_RUNTIME_VERSION_SUMMARY_LIST, 1), (3, 0)), ) @@ -5948,7 +6280,7 @@ n0, _LARVBCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/capacity-providers/{capacityProviderId}/runtime-versions", @@ -5970,7 +6302,7 @@ 18, n0, _LCPI, - {_smit: None}, + {_smith: None}, (_mR, _nT), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -6003,7 +6335,7 @@ 18, n0, _LCPO, - {_smith: None}, + {_smithy: None}, (_cPa, _nT), ((CAPACITY_PROVIDER_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -6013,7 +6345,7 @@ n0, _LCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/capacity-providers", "code": 200} ) }, @@ -6033,7 +6365,7 @@ 18, n0, _UCPI, - {_smit: None}, + {_smith: None}, (_cPI, _d, _cT), ((CAPACITY_PROVIDER_ID, 9), (UPDATED_DESCRIPTION, 0), (CLIENT_TOKEN, 2)), ) @@ -6042,7 +6374,7 @@ 18, n0, _UCPO, - {_smith: None}, + {_smithy: None}, (_cPI, _cPA, _n, _st, _cA, _lUA), ( (CAPACITY_PROVIDER_ID, 1), @@ -6059,7 +6391,7 @@ n0, _UCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "PUT", "uri": "/capacity-providers/{capacityProviderId}", @@ -6097,14 +6429,14 @@ _CINC, 0, (_nM, _vC), - ((CODE_INTERPRETER_NETWORK_MODE, {_smithya: _SANDBOX, _sm: None}), (VPC_CONFIG, 0)), + ((CODE_INTERPRETER_NETWORK_MODE, {_smi: _SANDBOX, _sm: None}), (VPC_CONFIG, 0)), ) CREATE_CODE_INTERPRETER_INPUT: StaticSchema = ( 18, n0, _CCII, - {_sSI: _cCCIR, _smit: None}, + {_sSI: _cCCIR, _smith: None}, (_n, _d, _eRA, _nC, _ce, _fC, _cT, _t), ( (SANDBOX_NAME, 1), @@ -6140,7 +6472,7 @@ 18, n0, _CCIO, - {_sSI: _cCCIRo, _smith: None}, + {_sSI: _cCCIRo, _smithy: None}, (_cII, _cIA, _cA, _st), ( (CODE_INTERPRETER_ID, 1), @@ -6155,7 +6487,7 @@ n0, _CCI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "PUT", "uri": "/code-interpreters"} ) }, @@ -6175,7 +6507,7 @@ 18, n0, _DCII, - {_sSI: _cDCIR, _smit: None}, + {_sSI: _cDCIR, _smith: None}, (_cII, _cT), ((CODE_INTERPRETER_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -6184,7 +6516,7 @@ 18, n0, _DCIO, - {_sSI: _cDCIRo, _smith: None}, + {_sSI: _cDCIRo, _smithy: None}, (_cII, _st, _lUA), ((CODE_INTERPRETER_ID, 1), (CODE_INTERPRETER_STATUS, 1), (DATE_TIMESTAMP, 1)), ) @@ -6194,7 +6526,7 @@ n0, _DCI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -6219,7 +6551,7 @@ 18, n0, _GCII, - {_sSI: _cGCIR, _smit: None}, + {_sSI: _cGCIR, _smith: None}, (_cII,), ((CODE_INTERPRETER_ID, 9),), ) @@ -6228,7 +6560,7 @@ 18, n0, _GCIO, - {_sSI: _cGCIRo, _smith: None}, + {_sSI: _cGCIRo, _smithy: None}, (_cII, _cIA, _n, _d, _eRA, _nC, _st, _ce, _fC, _fR, _cA, _lUA), ( (CODE_INTERPRETER_ID, 1), @@ -6251,7 +6583,7 @@ n0, _GCI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -6274,7 +6606,7 @@ 18, n0, _LCII, - {_sSI: _cLCIR, _smit: None}, + {_sSI: _cLCIR, _smith: None}, (_mR, _nT, _ty), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT}), (RESOURCE_TYPE, {_sQ: _ty})), ) @@ -6309,7 +6641,7 @@ 18, n0, _LCIO, - {_sSI: _cLCIRo, _smith: None}, + {_sSI: _cLCIRo, _smithy: None}, (_cIS, _nT), ((CODE_INTERPRETER_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -6319,7 +6651,7 @@ n0, _LCI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "POST", "uri": "/code-interpreters"} ) }, @@ -6362,7 +6694,7 @@ 18, n0, _CCBI, - {_sSI: _cCCBR, _smit: None}, + {_sSI: _cCCBR, _smith: None}, (_cT, _bN, _d, _com, _bNr, _cM, _cBr, _kKA, _t), ( (CLIENT_TOKEN, 2), @@ -6385,7 +6717,7 @@ 18, n0, _CCBO, - {_sSI: _cCCBRo, _smith: None}, + {_sSI: _cCCBRo, _smithy: None}, (_bA, _bIu, _vI, _cA), ( (CONFIGURATION_BUNDLE_ARN, 1), @@ -6400,7 +6732,7 @@ n0, _CCB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/configuration-bundles/create", "code": 201} ) }, @@ -6420,7 +6752,7 @@ 18, n0, _DCBI, - {_sSI: _cDCBR, _smit: None}, + {_sSI: _cDCBR, _smith: None}, (_bIu,), ((CONFIGURATION_BUNDLE_ID, 9),), ) @@ -6446,7 +6778,7 @@ 18, n0, _DCBO, - {_sSI: _cDCBRo, _smith: None}, + {_sSI: _cDCBRo, _smithy: None}, (_bA, _bIu, _st), ( (CONFIGURATION_BUNDLE_ARN, 1), @@ -6460,7 +6792,7 @@ n0, _DCB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "DELETE", "uri": "/configuration-bundles/{bundleId}", @@ -6484,7 +6816,7 @@ 18, n0, _GCBI, - {_sSI: _cGCBR, _smit: None}, + {_sSI: _cGCBR, _smith: None}, (_bIu, _bNr), ((CONFIGURATION_BUNDLE_ID, 9), (BRANCH_NAME, {_sQ: _bNr})), ) @@ -6516,7 +6848,7 @@ 18, n0, _GCBO, - {_sSI: _cGCBRo, _smith: None}, + {_sSI: _cGCBRo, _smithy: None}, (_bA, _bIu, _bN, _d, _vI, _com, _lM, _cA, _uA, _kKA), ( (CONFIGURATION_BUNDLE_ARN, 1), @@ -6537,7 +6869,7 @@ n0, _GCB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/configuration-bundles/{bundleId}"} ) }, @@ -6556,7 +6888,7 @@ 18, n0, _GCBVI, - {_sSI: _cGCBVR, _smit: None}, + {_sSI: _cGCBVR, _smith: None}, (_bIu, _vI), ((CONFIGURATION_BUNDLE_ID, 9), (CONFIGURATION_BUNDLE_VERSION, 9)), ) @@ -6565,7 +6897,7 @@ 18, n0, _GCBVO, - {_sSI: _cGCBVRo, _smith: None}, + {_sSI: _cGCBVRo, _smithy: None}, (_bA, _bIu, _bN, _d, _vI, _com, _lM, _cA, _vCA, _kKA), ( (CONFIGURATION_BUNDLE_ARN, 1), @@ -6586,7 +6918,7 @@ n0, _GCBV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/configuration-bundles/{bundleId}/versions/{versionId}", @@ -6608,7 +6940,7 @@ 18, n0, _LCBI, - {_sSI: _cLCBR, _smit: None}, + {_sSI: _cLCBR, _smith: None}, (_nT, _mR), ((3, {_sQ: _nT}), (7, {_sQ: _mR})), ) @@ -6641,8 +6973,8 @@ 18, n0, _LCBO, - {_sSI: _cLCBRo, _smith: None}, - (_bu, _nT), + {_sSI: _cLCBRo, _smithy: None}, + (_bun, _nT), ((CONFIGURATION_BUNDLE_SUMMARY_LIST, 1), (3, 0)), ) @@ -6650,7 +6982,7 @@ 23, n0, _LCB, - {_smithy: MappingProxyType({"method": "POST", "uri": "/configuration-bundles"})}, + {_smithya: MappingProxyType({"method": "POST", "uri": "/configuration-bundles"})}, LIST_CONFIGURATION_BUNDLES_INPUT, LIST_CONFIGURATION_BUNDLES_OUTPUT, ( @@ -6674,8 +7006,8 @@ 18, n0, _LCBVI, - {_sSI: _cLCBVR, _smit: None}, - (_bIu, _nT, _mR, _f), + {_sSI: _cLCBVR, _smith: None}, + (_bIu, _nT, _mR, _fi), ( (CONFIGURATION_BUNDLE_ID, 9), (3, {_sQ: _nT}), @@ -6712,7 +7044,7 @@ 18, n0, _LCBVO, - {_sSI: _cLCBVRo, _smith: None}, + {_sSI: _cLCBVRo, _smithy: None}, (_ver, _nT), ((CONFIGURATION_BUNDLE_VERSION_SUMMARY_LIST, 1), (3, 0)), ) @@ -6722,7 +7054,7 @@ n0, _LCBV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/configuration-bundles/{bundleId}/versions"} ) }, @@ -6741,7 +7073,7 @@ 18, n0, _UCBI, - {_sSI: _cUCBR, _smit: None}, + {_sSI: _cUCBR, _smith: None}, (_cT, _bIu, _bN, _d, _com, _pVI, _bNr, _cM, _cBr, _kKA), ( (CLIENT_TOKEN, 2), @@ -6761,7 +7093,7 @@ 18, n0, _UCBO, - {_sSI: _cUCBRo, _smith: None}, + {_sSI: _cUCBRo, _smithy: None}, (_bA, _bIu, _vI, _uA), ( (CONFIGURATION_BUNDLE_ARN, 1), @@ -6776,7 +7108,7 @@ n0, _UCB, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "PUT", "uri": "/configuration-bundles/{bundleId}"} ) }, @@ -6866,7 +7198,7 @@ 18, n0, _CCPIr, - {_sSI: _cCCPR, _smit: None}, + {_sSI: _cCCPR, _smith: None}, (_eRA, _iCd, _n, _sou, _d, _t), ( (EXECUTION_ROLE_ARN_TYPE, 1), @@ -6888,7 +7220,7 @@ 18, n0, _CCPOr, - {_sSI: _cCCPRo, _smith: None}, + {_sSI: _cCCPRo, _smithy: None}, (_sou, _cPAo, _cPIo, _cA, _d, _eRA, _iCd, _n, _pU, _st, _sRt, _uA), ( (CONSENT_PORTAL_SOURCES, 1), @@ -6911,7 +7243,7 @@ n0, _CCPr, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "uri": "/identities/CreateConsentPortal", "method": "POST"} ) }, @@ -6933,7 +7265,7 @@ 18, n0, _DCPIe, - {_sSI: _cDCPR, _smit: None}, + {_sSI: _cDCPR, _smith: None}, (_cPIon,), ((CONSENT_PORTAL_IDENTIFIER, 1),), ) @@ -6942,7 +7274,7 @@ 18, n0, _DCPOe, - {_sSI: _cDCPRo, _smith: None}, + {_sSI: _cDCPRo, _smithy: None}, ) DELETE_CONSENT_PORTAL: StaticOperationSchema = ( @@ -6950,7 +7282,7 @@ n0, _DCPe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 204, "uri": "/identities/DeleteConsentPortal", "method": "POST"} ) }, @@ -6971,7 +7303,7 @@ 18, n0, _GCPIe, - {_sSI: _cGCPR, _smit: None}, + {_sSI: _cGCPR, _smith: None}, (_cPIon,), ((CONSENT_PORTAL_IDENTIFIER, 1),), ) @@ -6980,7 +7312,7 @@ 18, n0, _GCPOe, - {_sSI: _cGCPRo, _smith: None}, + {_sSI: _cGCPRo, _smithy: None}, (_sou, _cPAo, _cPIo, _cA, _d, _eRA, _iCd, _n, _pU, _st, _sRt, _uA), ( (CONSENT_PORTAL_SOURCES, 1), @@ -7003,7 +7335,7 @@ n0, _GCPe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/GetConsentPortal", "method": "POST"} ) }, @@ -7023,7 +7355,7 @@ 18, n0, _LCPIi, - {_sSI: _cLCPR, _smit: None}, + {_sSI: _cLCPR, _smith: None}, (_mR, _nT), ((7, 0), (3, 0)), ) @@ -7060,7 +7392,7 @@ 18, n0, _LCPOi, - {_sSI: _cLCPRo, _smith: None}, + {_sSI: _cLCPRo, _smithy: None}, (_cPo, _nT), ((CONSENT_PORTAL_SUMMARIES, 1), (3, 0)), ) @@ -7070,7 +7402,7 @@ n0, _LCPi, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/ListConsentPortals", "method": "POST"} ) }, @@ -7089,7 +7421,7 @@ 18, n0, _UCPIp, - {_sSI: _cUCPR, _smit: None}, + {_sSI: _cUCPR, _smith: None}, (_cPIon, _eRA, _iCd, _d), ( (CONSENT_PORTAL_IDENTIFIER, 1), @@ -7103,7 +7435,7 @@ 18, n0, _UCPOp, - {_sSI: _cUCPRo, _smith: None}, + {_sSI: _cUCPRo, _smithy: None}, (_sou, _cPAo, _cPIo, _cA, _d, _eRA, _iCd, _n, _pU, _st, _sRt, _uA), ( (CONSENT_PORTAL_SOURCES, 1), @@ -7126,7 +7458,7 @@ n0, _UCPp, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "uri": "/identities/UpdateConsentPortal", "method": "POST"} ) }, @@ -7158,7 +7490,7 @@ 18, n0, _CDI, - {_sSI: _cCDR, _smit: None}, + {_sSI: _cCDR, _smith: None}, (_cT, _dNa, _d, _so, _sTc, _kKA, _t), ( (CLIENT_TOKEN, 2), @@ -7175,7 +7507,7 @@ 18, n0, _CDO, - {_sSI: _cCDRo, _smith: None}, + {_sSI: _cCDRo, _smithy: None}, (_dA, _dI, _st, _cA), ((DATASET_ARN, 1), (DATASET_ID, 1), (DATASET_STATUS, 1), (4, 1)), ) @@ -7184,7 +7516,7 @@ 23, n0, _CD, - {_smithy: MappingProxyType({"method": "POST", "uri": "/datasets", "code": 202})}, + {_smithya: MappingProxyType({"method": "POST", "uri": "/datasets", "code": 202})}, CREATE_DATASET_INPUT, CREATE_DATASET_OUTPUT, ( @@ -7201,7 +7533,7 @@ 18, n0, _CDVI, - {_sSI: _cCDVR, _smit: None}, + {_sSI: _cCDVR, _smith: None}, (_dI, _cT), ((DATASET_ID, 9), (CLIENT_TOKEN, 2)), ) @@ -7212,7 +7544,7 @@ 18, n0, _CDVO, - {_sSI: _cCDVRo, _smith: None}, + {_sSI: _cCDVRo, _smithy: None}, (_dA, _dI, _st, _dV, _cA), ( (DATASET_ARN, 1), @@ -7228,7 +7560,7 @@ n0, _CDV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/datasets/{datasetId}/versions", "code": 202} ) }, @@ -7249,7 +7581,7 @@ 18, n0, _DDI, - {_sSI: _cDDR, _smit: None}, + {_sSI: _cDDR, _smith: None}, (_dI, _dV), ((DATASET_ID, 9), (DATASET_VERSION, {_sQ: _dV})), ) @@ -7258,7 +7590,7 @@ 18, n0, _DDO, - {_sSI: _cDDRo, _smith: None}, + {_sSI: _cDDRo, _smithy: None}, (_dA, _dI, _st, _dV, _uA), ( (DATASET_ARN, 1), @@ -7274,7 +7606,7 @@ n0, _DD, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "DELETE", "uri": "/datasets/{datasetId}", "code": 202} ) }, @@ -7294,7 +7626,7 @@ 18, n0, _DDEI, - {_sSI: _cDDER, _smit: None}, + {_sSI: _cDDER, _smith: None}, (_dI, _cT, _eI), ((DATASET_ID, 9), (CLIENT_TOKEN, 2), (EXAMPLE_ID_LIST, 1)), ) @@ -7303,7 +7635,7 @@ 18, n0, _DDEO, - {_sSI: _cDDERo, _smith: None}, + {_sSI: _cDDERo, _smithy: None}, (_dA, _dI, _st, _dC, _uA), ((DATASET_ARN, 1), (DATASET_ID, 1), (DATASET_STATUS, 1), (8, 1), (4, 1)), ) @@ -7313,7 +7645,7 @@ n0, _DDE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/datasets/{datasetId}/examples/delete", @@ -7337,7 +7669,7 @@ 18, n0, _GDI, - {_sSI: _cGDR, _smit: None}, + {_sSI: _cGDR, _smith: None}, (_dI, _dV), ((DATASET_ID, 9), (DATASET_VERSION, {_sQ: _dV})), ) @@ -7357,7 +7689,7 @@ 18, n0, _GDO, - {_sSI: _cGDRo, _smith: None}, + {_sSI: _cGDRo, _smithy: None}, ( _dA, _dI, @@ -7400,7 +7732,7 @@ 23, n0, _GD, - {_smithy: MappingProxyType({"method": "GET", "uri": "/datasets/{datasetId}"})}, + {_smithya: MappingProxyType({"method": "GET", "uri": "/datasets/{datasetId}"})}, GET_DATASET_INPUT, GET_DATASET_OUTPUT, ( @@ -7417,7 +7749,7 @@ 18, n0, _LDEI, - {_sSI: _cLDER, _smit: None}, + {_sSI: _cLDER, _smith: None}, (_dI, _dV, _mR, _nT), ((DATASET_ID, 9), (DATASET_VERSION, {_sQ: _dV}), (7, {_sQ: _mR}), (3, {_sQ: _nT})), ) @@ -7426,8 +7758,8 @@ 18, n0, _LDEO, - {_sSI: _cLDERo, _smith: None}, - (_dA, _dI, _dV, _e, _nT), + {_sSI: _cLDERo, _smithy: None}, + (_dA, _dI, _dV, _ex, _nT), ( (DATASET_ARN, 1), (DATASET_ID, 1), @@ -7442,7 +7774,7 @@ n0, _LDE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/datasets/{datasetId}/examples"} ) }, @@ -7462,7 +7794,7 @@ 18, n0, _LDI, - {_sSI: _cLDR, _smit: None}, + {_sSI: _cLDR, _smith: None}, (_nT, _mR), ((3, {_sQ: _nT}), (7, {_sQ: _mR})), ) @@ -7493,7 +7825,7 @@ 18, n0, _LDO, - {_sSI: _cLDRo, _smith: None}, + {_sSI: _cLDRo, _smithy: None}, (_da, _nT), ((DATASET_SUMMARY_LIST, 1), (3, 0)), ) @@ -7502,7 +7834,7 @@ 23, n0, _LD, - {_smithy: MappingProxyType({"method": "GET", "uri": "/datasets"})}, + {_smithya: MappingProxyType({"method": "GET", "uri": "/datasets"})}, LIST_DATASETS_INPUT, LIST_DATASETS_OUTPUT, ( @@ -7517,7 +7849,7 @@ 18, n0, _LDVI, - {_sSI: _cLDVR, _smit: None}, + {_sSI: _cLDVR, _smith: None}, (_dI, _nT, _mR), ((DATASET_ID, 9), (3, {_sQ: _nT}), (7, {_sQ: _mR})), ) @@ -7544,7 +7876,7 @@ 18, n0, _LDVO, - {_sSI: _cLDVRo, _smith: None}, + {_sSI: _cLDVRo, _smithy: None}, (_ver, _nT), ((DATASET_VERSION_SUMMARY_LIST, 1), (3, 0)), ) @@ -7554,7 +7886,7 @@ n0, _LDV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/datasets/{datasetId}/versions"} ) }, @@ -7573,7 +7905,7 @@ 18, n0, _UDI, - {_sSI: _cUDR, _smit: None}, + {_sSI: _cUDR, _smith: None}, (_dI, _cT, _d), ((DATASET_ID, 9), (CLIENT_TOKEN, 2), (3, 0)), ) @@ -7582,7 +7914,7 @@ 18, n0, _UDO, - {_sSI: _cUDRo, _smith: None}, + {_sSI: _cUDRo, _smithy: None}, (_dA, _dI, _uA), ((DATASET_ARN, 1), (DATASET_ID, 1), (4, 1)), ) @@ -7592,7 +7924,7 @@ n0, _UDp, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "PUT", "uri": "/datasets/{datasetId}", "code": 200} ) }, @@ -7612,8 +7944,8 @@ 18, n0, _UDEI, - {_sSI: _cUDER, _smit: None}, - (_dI, _cT, _e), + {_sSI: _cUDER, _smith: None}, + (_dI, _cT, _ex), ((DATASET_ID, 9), (CLIENT_TOKEN, 2), (DATASET_EXAMPLE_LIST, 1)), ) @@ -7621,7 +7953,7 @@ 18, n0, _UDEO, - {_sSI: _cUDERo, _smith: None}, + {_sSI: _cUDERo, _smithy: None}, (_dA, _dI, _st, _uC, _uA), ((DATASET_ARN, 1), (DATASET_ID, 1), (DATASET_STATUS, 1), (8, 1), (4, 1)), ) @@ -7631,7 +7963,7 @@ n0, _UDE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/datasets/{datasetId}/examples/update", @@ -7656,7 +7988,7 @@ 18, n0, _DRPI, - {_sSI: _cDRPR, _smit: None}, + {_sSI: _cDRPR, _smith: None}, (_rAe,), ((BEDROCK_AGENTCORE_RESOURCE_ARN, 9),), ) @@ -7665,7 +7997,7 @@ 18, n0, _DRPO, - {_sSI: _cDRPRo, _smith: None}, + {_sSI: _cDRPRo, _smithy: None}, ) DELETE_RESOURCE_POLICY: StaticOperationSchema = ( @@ -7673,7 +8005,7 @@ n0, _DRP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 204, "method": "DELETE", "uri": "/resourcepolicy/{resourceArn}"} ) }, @@ -7792,6 +8124,10 @@ ((CATEGORICAL_SCALE_DEFINITION, 0),), ) +EVALUATION_DIMENSION_INSTRUCTION: StaticSchema = (3, n0, _EDI, 4) + +EVALUATION_DIMENSION_NAME: StaticSchema = (3, n0, _EDN, 0) + NUMERICAL_SCALE_DEFINITION: StaticSchema = ( 18, n0, @@ -7810,15 +8146,50 @@ ((NUMERICAL_SCALE_DEFINITION, 0),), ) -RATING_SCALE: StaticSchema = ( +DIMENSION_RATING_SCALE: StaticSchema = ( 19, n0, - _RS, + _DRS, 4, (_nu, _ca), ((NUMERICAL_SCALE_DEFINITIONS, 0), (CATEGORICAL_SCALE_DEFINITIONS, 0)), ) +EVALUATION_DIMENSION: StaticSchema = ( + 18, + n0, + _EDv, + 0, + (_dNi, _dIi, _dRS), + ( + (EVALUATION_DIMENSION_NAME, 1), + (EVALUATION_DIMENSION_INSTRUCTION, 1), + (DIMENSION_RATING_SCALE, 1), + ), +) + +EVALUATION_DIMENSIONS: StaticSchema = ( + 16, + n0, + _EDva, + 0, + (_mem,), + ((EVALUATION_DIMENSION, 0),), +) + +RATING_SCALE: StaticSchema = ( + 19, + n0, + _RS, + 4, + (_nu, _ca, _mD), + ( + (NUMERICAL_SCALE_DEFINITIONS, 0), + (CATEGORICAL_SCALE_DEFINITIONS, 0), + (EVALUATION_DIMENSIONS, 0), + ), +) + LLM_AS_A_JUDGE_EVALUATOR_CONFIG: StaticSchema = ( 18, n0, @@ -7856,7 +8227,7 @@ 18, n0, _CEI, - {_sSI: _cCER, _smit: None}, + {_sSI: _cCER, _smith: None}, (_cT, _eNv, _d, _eCv, _le, _kKA, _t), ( (CLIENT_TOKEN, 2), @@ -7891,7 +8262,7 @@ 18, n0, _CEO, - {_sSI: _cCERo, _smith: None}, + {_sSI: _cCERo, _smithy: None}, (_eA, _eIv, _cA, _st), ((CUSTOM_EVALUATOR_ARN, 1), (EVALUATOR_ID, 1), (4, 1), (EVALUATOR_STATUS, 1)), ) @@ -7901,7 +8272,7 @@ n0, _CEr, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/evaluators/create", "code": 202} ) }, @@ -7921,7 +8292,7 @@ 18, n0, _DEI, - {_sSI: _cDER, _smit: None}, + {_sSI: _cDER, _smith: None}, (_eIv,), ((EVALUATOR_ID, 9),), ) @@ -7932,7 +8303,7 @@ 18, n0, _DEO, - {_sSI: _cDERo, _smith: None}, + {_sSI: _cDERo, _smithy: None}, (_eA, _eIv, _st), ((EVALUATOR_ARN, 1), (EVALUATOR_ID, 1), (EVALUATOR_STATUS, 1)), ) @@ -7942,7 +8313,7 @@ n0, _DE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "DELETE", "uri": "/evaluators/{evaluatorId}", "code": 202} ) }, @@ -7971,7 +8342,7 @@ 18, n0, _GEI, - {_sSI: _cGER, _smit: None}, + {_sSI: _cGER, _smith: None}, (_eIv, _iD), ((EVALUATOR_ID, 9), (INCLUDED_DATA, {_sQ: _iD})), ) @@ -8006,7 +8377,7 @@ 18, n0, _GEO, - {_sSI: _cGERo, _smith: None}, + {_sSI: _cGERo, _smithy: None}, (_eA, _eIv, _eNv, _d, _eCv, _eT, _pr, _le, _st, _cA, _uA, _lFM, _kKA), ( (EVALUATOR_ARN, 1), @@ -8029,7 +8400,7 @@ 23, n0, _GE, - {_smithy: MappingProxyType({"method": "GET", "uri": "/evaluators/{evaluatorId}"})}, + {_smithya: MappingProxyType({"method": "GET", "uri": "/evaluators/{evaluatorId}"})}, GET_EVALUATOR_INPUT, GET_EVALUATOR_OUTPUT, ( @@ -8045,7 +8416,7 @@ 18, n0, _LEI, - {_sSI: _cLER, _smit: None}, + {_sSI: _cLER, _smith: None}, (_nT, _mR), ((3, {_sQ: _nT}), (7, {_sQ: _mR})), ) @@ -8085,7 +8456,7 @@ 18, n0, _LEO, - {_sSI: _cLERo, _smith: None}, + {_sSI: _cLERo, _smithy: None}, (_ev, _nT), ((EVALUATOR_SUMMARY_LIST, 1), (3, 0)), ) @@ -8094,7 +8465,7 @@ 23, n0, _LE, - {_smithy: MappingProxyType({"method": "POST", "uri": "/evaluators"})}, + {_smithya: MappingProxyType({"method": "POST", "uri": "/evaluators"})}, LIST_EVALUATORS_INPUT, LIST_EVALUATORS_OUTPUT, ( @@ -8109,7 +8480,7 @@ 18, n0, _UEI, - {_sSI: _cUER, _smit: None}, + {_sSI: _cUER, _smith: None}, (_cT, _eIv, _d, _eCv, _le, _kKA), ( (CLIENT_TOKEN, 2), @@ -8125,7 +8496,7 @@ 18, n0, _UEO, - {_sSI: _cUERo, _smith: None}, + {_sSI: _cUERo, _smithy: None}, (_eA, _eIv, _uA, _st), ((EVALUATOR_ARN, 1), (EVALUATOR_ID, 1), (4, 1), (EVALUATOR_STATUS, 1)), ) @@ -8135,7 +8506,7 @@ n0, _UEp, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "PUT", "uri": "/evaluators/{evaluatorId}", "code": 202} ) }, @@ -8189,7 +8560,7 @@ n0, _LEi, 0, - (_di, _req, _to, _conn), + (_di, _req, _tok, _conn), ((DIMENSIONS, 1), (RATE_CONFIGS, 0), (RATE_CONFIGS, 0), (RATE_CONFIGS, 0)), ) @@ -8224,7 +8595,7 @@ 18, n0, _BPGRLI, - {_sSI: _cBPGRLR, _smit: None}, + {_sSI: _cBPGRLR, _smith: None}, (_gI, _cT, _rL), ((GATEWAY_IDENTIFIER, 9), (CLIENT_TOKEN, 2), (BATCH_PUT_LIMIT_ENTRIES, 1)), ) @@ -8274,7 +8645,7 @@ 18, n0, _BPGRLO, - {_sSI: _cBPGRLRo, _smith: None}, + {_sSI: _cBPGRLRo, _smithy: None}, (_rL,), ((GATEWAY_RATE_LIMITS, 1),), ) @@ -8284,7 +8655,7 @@ n0, _BPGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "PUT", @@ -8309,7 +8680,7 @@ 18, n0, _CGRLI, - {_sSI: _cCGRLR, _smit: None}, + {_sSI: _cCGRLR, _smith: None}, (_gI, _cT, _rLI, _d, _dK, _ent), ( (GATEWAY_IDENTIFIER, 9), @@ -8325,7 +8696,7 @@ 18, n0, _CGRLO, - {_sSI: _cCGRLRo, _smith: None}, + {_sSI: _cCGRLRo, _smithy: None}, (_rLI, _gI, _d, _dK, _ent, _st, _cA, _uA), ( (GATEWAY_RATE_LIMIT_ID, 1), @@ -8344,7 +8715,7 @@ n0, _CGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 201, "method": "POST", @@ -8369,7 +8740,7 @@ 18, n0, _DGRLI, - {_sSI: _cDGRLR, _smit: None}, + {_sSI: _cDGRLR, _smith: None}, (_gI, _rLI), ((GATEWAY_IDENTIFIER, 9), (GATEWAY_RATE_LIMIT_ID, 9)), ) @@ -8378,7 +8749,7 @@ 18, n0, _DGRLO, - {_sSI: _cDGRLRo, _smith: None}, + {_sSI: _cDGRLRo, _smithy: None}, (_rLI, _st), ((GATEWAY_RATE_LIMIT_ID, 1), (GATEWAY_RATE_LIMIT_STATUS, 1)), ) @@ -8388,7 +8759,7 @@ n0, _DGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "DELETE", @@ -8412,7 +8783,7 @@ 18, n0, _GGRLI, - {_sSI: _cGGRLR, _smit: None}, + {_sSI: _cGGRLR, _smith: None}, (_gI, _rLI), ((GATEWAY_IDENTIFIER, 9), (GATEWAY_RATE_LIMIT_ID, 9)), ) @@ -8421,7 +8792,7 @@ 18, n0, _GGRLO, - {_sSI: _cGGRLRo, _smith: None}, + {_sSI: _cGGRLRo, _smithy: None}, (_rLI, _gI, _d, _dK, _ent, _st, _cA, _uA), ( (GATEWAY_RATE_LIMIT_ID, 1), @@ -8440,7 +8811,7 @@ n0, _GGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -8467,7 +8838,7 @@ 18, n0, _LGRLI, - {_sSI: _cLGRLR, _smit: None}, + {_sSI: _cLGRLR, _smith: None}, (_gI, _mR, _nT), ( (GATEWAY_IDENTIFIER, 9), @@ -8480,7 +8851,7 @@ 18, n0, _LGRLO, - {_sSI: _cLGRLRo, _smith: None}, + {_sSI: _cLGRLRo, _smithy: None}, (_rL, _nT), ((GATEWAY_RATE_LIMITS, 1), (GATEWAY_RATE_LIMIT_NEXT_TOKEN, 0)), ) @@ -8490,7 +8861,7 @@ n0, _LGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -8513,7 +8884,7 @@ 18, n0, _UGRLI, - {_sSI: _cUGRLR, _smit: None}, + {_sSI: _cUGRLR, _smith: None}, (_gI, _rLI, _d, _ent), ( (GATEWAY_IDENTIFIER, 9), @@ -8527,7 +8898,7 @@ 18, n0, _UGRLO, - {_sSI: _cUGRLRo, _smith: None}, + {_sSI: _cUGRLRo, _smithy: None}, (_rLI, _gI, _d, _dK, _ent, _st, _cA, _uA), ( (GATEWAY_RATE_LIMIT_ID, 1), @@ -8546,7 +8917,7 @@ n0, _UGRL, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "PATCH", @@ -8577,6 +8948,26 @@ GATEWAY_DESCRIPTION: StaticSchema = (3, n0, _GDa, 4) +PUBLIC_DOMAIN_NAME: StaticSchema = (3, n0, _PDN, 0) + +PUBLIC_DOMAIN_NAME_LIST: StaticSchema = ( + 16, + n0, + _PDNL, + 0, + (_mem,), + ((PUBLIC_DOMAIN_NAME, 0),), +) + +DOMAIN_OVERRIDE: StaticSchema = ( + 18, + n0, + _DO, + 0, + (_dD, _aD), + ((PUBLIC_DOMAIN_NAME, {_sN: _def, _sm: None}), (PUBLIC_DOMAIN_NAME_LIST, 0)), +) + EXCEPTION_LEVEL: StaticSchema = (14, n0, _ELx, 0, (_DEBUG,), ((-1, {_sVm: _DEBUG}),)) INTERCEPTOR_PAYLOAD_EXCLUSION: StaticSchema = ( @@ -8593,7 +8984,7 @@ n0, _IPES, 0, - (_fi,), + (_fie,), ((INTERCEPTOR_PAYLOAD_EXCLUSION, 0),), ) @@ -8611,7 +9002,7 @@ n0, _IPF, 0, - (_ex,), + (_exc,), ((INTERCEPTOR_PAYLOAD_EXCLUSION_SELECTOR_LIST, 1),), ) @@ -8702,7 +9093,7 @@ n0, _GPEC, 0, - (_a, _mod), + (_a, _mo), ((GATEWAY_POLICY_ENGINE_ARN, 1), (GATEWAY_POLICY_ENGINE_MODE, 1)), ) @@ -8714,7 +9105,7 @@ STREAMING_CONFIGURATION: StaticSchema = (18, n0, _SCt, 0, (_eRS,), ((2, 0),)) -MCP_VERSION: StaticSchema = (3, n0, _MV, {_smithya: _v__}) +MCP_VERSION: StaticSchema = (3, n0, _MV, {_smi: _v__}) MCP_SUPPORTED_VERSIONS: StaticSchema = (16, n0, _MSV, 0, (_mem,), ((MCP_VERSION, 0),)) @@ -8723,7 +9114,7 @@ n0, _MCPGC, 0, - (_sVu, _in, _sTe, _sCe, _sCt, _dMLTP), + (_sVu, _in, _sTe, _sCe, _sCtr, _dMLTP), ( (MCP_SUPPORTED_VERSIONS, 0), (MCP_INSTRUCTIONS, 0), @@ -8749,14 +9140,14 @@ 18, n0, _CGI, - {_sSI: _cCGR, _smit: None}, - (_n, _d, _cT, _rA, _pTr, _pC, _aT, _aCu, _kKA, _iCnt, _pEC, _eL, _t), + {_sSI: _cCGR, _smith: None}, + (_n, _d, _cT, _rA, _pTr, _pC, _aT, _aCu, _kKA, _iCnt, _pEC, _eL, _t, _dO), ( (GATEWAY_NAME, 1), (GATEWAY_DESCRIPTION, 0), (CLIENT_TOKEN, 2), (ROLE_ARN, 1), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), (GATEWAY_PROTOCOL_CONFIGURATION, 0), (AUTHORIZER_TYPE, 1), (AUTHORIZER_CONFIGURATION, 0), @@ -8765,6 +9156,7 @@ (GATEWAY_POLICY_ENGINE_CONFIGURATION, 0), (EXCEPTION_LEVEL, 0), (TAGS_MAP, 0), + (DOMAIN_OVERRIDE, 0), ), ) @@ -8829,7 +9221,7 @@ 18, n0, _CGO, - {_sSI: _cCGRo, _smith: None}, + {_sSI: _cCGRo, _smithy: None}, ( _gA, _gIa, @@ -8853,6 +9245,7 @@ _eL, _wAA, _wC, + _dO, ), ( (GATEWAY_ARN, 1), @@ -8865,7 +9258,7 @@ (GATEWAY_NAME, 1), (GATEWAY_DESCRIPTION, 0), (ROLE_ARN, 0), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), (GATEWAY_PROTOCOL_CONFIGURATION, 0), (AUTHORIZER_TYPE, 1), (AUTHORIZER_CONFIGURATION, 0), @@ -8877,6 +9270,7 @@ (EXCEPTION_LEVEL, 0), (WEB_ACL_ARN, 0), (WAF_CONFIGURATION, 0), + (DOMAIN_OVERRIDE, 0), ), ) @@ -8884,7 +9278,7 @@ 23, n0, _CG, - {_smithy: MappingProxyType({"code": 202, "method": "POST", "uri": "/gateways/"})}, + {_smithya: MappingProxyType({"code": 202, "method": "POST", "uri": "/gateways/"})}, CREATE_GATEWAY_INPUT, CREATE_GATEWAY_OUTPUT, ( @@ -8901,7 +9295,7 @@ 18, n0, _DGI, - {_sSI: _cDGR, _smit: None}, + {_sSI: _cDGR, _smith: None}, (_gI,), ((GATEWAY_IDENTIFIER, 9),), ) @@ -8910,7 +9304,7 @@ 18, n0, _DGO, - {_sSI: _cDGRo, _smith: None}, + {_sSI: _cDGRo, _smithy: None}, (_gIa, _st, _sRta), ((GATEWAY_ID, 1), (GATEWAY_STATUS, 1), (STATUS_REASONS, 0)), ) @@ -8920,7 +9314,7 @@ n0, _DG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "DELETE", "uri": "/gateways/{gatewayIdentifier}/"} ) }, @@ -8940,7 +9334,7 @@ 18, n0, _GGI, - {_sSI: _cGGR, _smit: None}, + {_sSI: _cGGR, _smith: None}, (_gI,), ((GATEWAY_IDENTIFIER, 9),), ) @@ -8949,7 +9343,7 @@ 18, n0, _GGO, - {_sSI: _cGGRo, _smith: None}, + {_sSI: _cGGRo, _smithy: None}, ( _gA, _gIa, @@ -8973,6 +9367,7 @@ _eL, _wAA, _wC, + _dO, ), ( (GATEWAY_ARN, 1), @@ -8985,7 +9380,7 @@ (GATEWAY_NAME, 1), (GATEWAY_DESCRIPTION, 0), (ROLE_ARN, 0), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), (GATEWAY_PROTOCOL_CONFIGURATION, 0), (AUTHORIZER_TYPE, 1), (AUTHORIZER_CONFIGURATION, 0), @@ -8997,6 +9392,7 @@ (EXCEPTION_LEVEL, 0), (WEB_ACL_ARN, 0), (WAF_CONFIGURATION, 0), + (DOMAIN_OVERRIDE, 0), ), ) @@ -9005,7 +9401,7 @@ n0, _GG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/gateways/{gatewayIdentifier}/"} ) }, @@ -9028,7 +9424,7 @@ 18, n0, _LGI, - {_sSI: _cLGR, _smit: None}, + {_sSI: _cLGR, _smith: None}, (_mR, _nT), ((GATEWAY_MAX_RESULTS, {_sQ: _mR}), (GATEWAY_NEXT_TOKEN, {_sQ: _nT})), ) @@ -9047,7 +9443,7 @@ (DATE_TIMESTAMP, 1), (DATE_TIMESTAMP, 1), (AUTHORIZER_TYPE, 1), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), ), ) @@ -9057,7 +9453,7 @@ 18, n0, _LGO, - {_sSI: _cLGRo, _smith: None}, + {_sSI: _cLGRo, _smithy: None}, (_it, _nT), ((GATEWAY_SUMMARIES, 1), (GATEWAY_NEXT_TOKEN, 0)), ) @@ -9066,7 +9462,7 @@ 23, n0, _LG, - {_smithy: MappingProxyType({"code": 200, "method": "GET", "uri": "/gateways/"})}, + {_smithya: MappingProxyType({"code": 200, "method": "GET", "uri": "/gateways/"})}, LIST_GATEWAYS_INPUT, LIST_GATEWAYS_OUTPUT, ( @@ -9081,14 +9477,14 @@ 18, n0, _UGI, - {_sSI: _cUGR, _smit: None}, - (_gI, _n, _d, _rA, _pTr, _pC, _aT, _aCu, _kKA, _cTC, _iCnt, _pEC, _eL, _wC), + {_sSI: _cUGR, _smith: None}, + (_gI, _n, _d, _rA, _pTr, _pC, _aT, _aCu, _kKA, _cTC, _iCnt, _pEC, _eL, _wC, _dO), ( (GATEWAY_IDENTIFIER, 9), (GATEWAY_NAME, 1), (GATEWAY_DESCRIPTION, 0), (ROLE_ARN, 1), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), (GATEWAY_PROTOCOL_CONFIGURATION, 0), (AUTHORIZER_TYPE, 1), (AUTHORIZER_CONFIGURATION, 0), @@ -9098,6 +9494,7 @@ (GATEWAY_POLICY_ENGINE_CONFIGURATION, 0), (EXCEPTION_LEVEL, 0), (WAF_CONFIGURATION, 0), + (DOMAIN_OVERRIDE, 0), ), ) @@ -9105,7 +9502,7 @@ 18, n0, _UGO, - {_sSI: _cUGRo, _smith: None}, + {_sSI: _cUGRo, _smithy: None}, ( _gA, _gIa, @@ -9129,6 +9526,7 @@ _eL, _wAA, _wC, + _dO, ), ( (GATEWAY_ARN, 1), @@ -9141,7 +9539,7 @@ (GATEWAY_NAME, 1), (GATEWAY_DESCRIPTION, 0), (ROLE_ARN, 0), - (GATEWAY_PROTOCOL_TYPE, {_smithya: _MCP}), + (GATEWAY_PROTOCOL_TYPE, {_smi: _MCP}), (GATEWAY_PROTOCOL_CONFIGURATION, 0), (AUTHORIZER_TYPE, 1), (AUTHORIZER_CONFIGURATION, 0), @@ -9153,6 +9551,7 @@ (EXCEPTION_LEVEL, 0), (WEB_ACL_ARN, 0), (WAF_CONFIGURATION, 0), + (DOMAIN_OVERRIDE, 0), ), ) @@ -9161,7 +9560,7 @@ n0, _UG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "PUT", "uri": "/gateways/{gatewayIdentifier}/"} ) }, @@ -9178,6 +9577,37 @@ ), ) +MATCH_OPERATOR: StaticSchema = ( + 14, + n0, + _MOa, + 0, + (_SE, _SLt), + ((-1, {_sVm: _SE}), (-1, {_sVm: _SLt})), +) + +MODEL_PATTERN: StaticSchema = (3, n0, _MPo, 0) + +MATCH_MODEL_ENTRY: StaticSchema = ( + 18, + n0, + _MME, + 0, + (_v, _op), + ((MODEL_PATTERN, 1), (MATCH_OPERATOR, {_smi: _SLt})), +) + +MATCH_MODEL_ENTRIES: StaticSchema = ( + 16, + n0, + _MMEa, + 0, + (_mem,), + ((MATCH_MODEL_ENTRY, 0),), +) + +MATCH_MODELS: StaticSchema = (18, n0, _MMa, 0, (_aO,), ((MATCH_MODEL_ENTRIES, 1),)) + MATCH_PATH_PATTERN: StaticSchema = (3, n0, _MPP, 0) MATCH_PATH_PATTERNS: StaticSchema = ( @@ -9236,8 +9666,8 @@ n0, _Co, 0, - (_mPa, _mPat), - ((MATCH_PRINCIPALS, 0), (MATCH_PATHS, 0)), + (_mPa, _mPat, _mM), + ((MATCH_PRINCIPALS, 0), (MATCH_PATHS, 0), (MATCH_MODELS, 0)), ) CONDITIONS: StaticSchema = (16, n0, _Con, 0, (_mem,), ((CONDITION, 0),)) @@ -9250,8 +9680,8 @@ 18, n0, _CGRI, - {_sSI: _cCGRR, _smit: None}, - (_gI, _cT, _pri, _cond, _ac, _d), + {_sSI: _cCGRR, _smith: None}, + (_gI, _cT, _pri, _cond, _act, _d), ( (GATEWAY_IDENTIFIER, 9), (CLIENT_TOKEN, 2), @@ -9284,8 +9714,8 @@ 18, n0, _CGRO, - {_sSI: _cCGRRo, _smith: None}, - (_rI, _gA, _pri, _cond, _ac, _d, _cA, _st, _sy), + {_sSI: _cCGRRo, _smithy: None}, + (_rI, _gA, _pri, _cond, _act, _d, _cA, _st, _sy), ( (GATEWAY_RULE_ID, 1), (GATEWAY_ARN, 1), @@ -9304,7 +9734,7 @@ n0, _CGR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "POST", @@ -9329,7 +9759,7 @@ 18, n0, _DGRI, - {_sSI: _cDGRR, _smit: None}, + {_sSI: _cDGRR, _smith: None}, (_gI, _rI), ((GATEWAY_IDENTIFIER, 9), (GATEWAY_RULE_ID, 9)), ) @@ -9338,7 +9768,7 @@ 18, n0, _DGRO, - {_sSI: _cDGRRo, _smith: None}, + {_sSI: _cDGRRo, _smithy: None}, (_rI, _st), ((GATEWAY_RULE_ID, 1), (GATEWAY_RULE_STATUS, 1)), ) @@ -9348,7 +9778,7 @@ n0, _DGR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -9372,7 +9802,7 @@ 18, n0, _GGRI, - {_sSI: _cGGRR, _smit: None}, + {_sSI: _cGGRR, _smith: None}, (_gI, _rI), ((GATEWAY_IDENTIFIER, 9), (GATEWAY_RULE_ID, 9)), ) @@ -9381,8 +9811,8 @@ 18, n0, _GGRO, - {_sSI: _cGGRRo, _smith: None}, - (_rI, _gA, _pri, _cond, _ac, _d, _cA, _st, _sy, _uA), + {_sSI: _cGGRRo, _smithy: None}, + (_rI, _gA, _pri, _cond, _act, _d, _cA, _st, _sy, _uA), ( (GATEWAY_RULE_ID, 1), (GATEWAY_ARN, 1), @@ -9402,7 +9832,7 @@ n0, _GGR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -9429,7 +9859,7 @@ 18, n0, _LGRI, - {_sSI: _cLGRR, _smit: None}, + {_sSI: _cLGRR, _smith: None}, (_gI, _mR, _nT), ( (GATEWAY_IDENTIFIER, 9), @@ -9443,7 +9873,7 @@ n0, _GRDa, 0, - (_rI, _gA, _pri, _cond, _ac, _d, _cA, _st, _sy, _uA), + (_rI, _gA, _pri, _cond, _act, _d, _cA, _st, _sy, _uA), ( (GATEWAY_RULE_ID, 1), (GATEWAY_ARN, 1), @@ -9464,7 +9894,7 @@ 18, n0, _LGRO, - {_sSI: _cLGRRo, _smith: None}, + {_sSI: _cLGRRo, _smithy: None}, (_gR, _nT), ((GATEWAY_RULES, 1), (GATEWAY_RULE_NEXT_TOKEN, 0)), ) @@ -9474,7 +9904,7 @@ n0, _LGR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/gateways/{gatewayIdentifier}/rules"} ) }, @@ -9493,8 +9923,8 @@ 18, n0, _UGRI, - {_sSI: _cUGRR, _smit: None}, - (_gI, _rI, _pri, _cond, _ac, _d), + {_sSI: _cUGRR, _smith: None}, + (_gI, _rI, _pri, _cond, _act, _d), ( (GATEWAY_IDENTIFIER, 9), (GATEWAY_RULE_ID, 9), @@ -9509,8 +9939,8 @@ 18, n0, _UGRO, - {_sSI: _cUGRRo, _smith: None}, - (_rI, _gA, _pri, _cond, _ac, _d, _cA, _st, _sy, _uA), + {_sSI: _cUGRRo, _smithy: None}, + (_rI, _gA, _pri, _cond, _act, _d, _cA, _st, _sy, _uA), ( (GATEWAY_RULE_ID, 1), (GATEWAY_ARN, 1), @@ -9530,7 +9960,7 @@ n0, _UGR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PATCH", @@ -9550,48 +9980,6 @@ ), ) -CERTIFICATE_BUCKET_OWNER_ACCOUNT_ID: StaticSchema = (3, n0, _CBOAI, 0) - -CERTIFICATE_S3_URI: StaticSchema = (3, n0, _CSU, 0) - -S3_CERTIFICATE_CONFIGURATION: StaticSchema = ( - 18, - n0, - _SCC, - 0, - (_u, _bOAI), - ((CERTIFICATE_S3_URI, 1), (CERTIFICATE_BUCKET_OWNER_ACCOUNT_ID, 0)), -) - -CERTIFICATE_SECRET_ARN: StaticSchema = (3, n0, _CSA, 0) - -SECRETS_MANAGER_CERTIFICATE_CONFIGURATION: StaticSchema = ( - 18, - n0, - _SMCC, - 0, - (_sA,), - ((CERTIFICATE_SECRET_ARN, 1),), -) - -CERTIFICATE_CONFIGURATION: StaticSchema = ( - 19, - n0, - _CCe, - 0, - (_s_, _sMe), - ((S3_CERTIFICATE_CONFIGURATION, 0), (SECRETS_MANAGER_CERTIFICATE_CONFIGURATION, 0)), -) - -CERTIFICATE_CONFIGURATION_LIST: StaticSchema = ( - 16, - n0, - _CCL, - 0, - (_mem,), - ((CERTIFICATE_CONFIGURATION, 0),), -) - API_KEY_CREDENTIAL_LOCATION: StaticSchema = ( 14, n0, @@ -9670,7 +10058,7 @@ (O_AUTH_CREDENTIAL_PROVIDER_ARN, 1), (O_AUTH_SCOPES, 1), (O_AUTH_CUSTOM_PARAMETERS, 0), - (O_AUTH_GRANT_TYPE, {_smithya: _CC_}), + (O_AUTH_GRANT_TYPE, {_smi: _CC_}), (O_AUTH_DEFAULT_RETURN_URL, 0), ), ) @@ -9804,7 +10192,7 @@ n0, _HCTC, 0, - (_so, _pa), + (_so, _par), ((HTTP_CONNECTOR_SOURCE, 1), (HTTP_CONNECTOR_PARAMETERS, 0)), ) @@ -9923,14 +10311,12 @@ _PP, 0, (_str, _sep), - ((2, {_smithya: False}), (3, {_smithya: _v___})), + ((2, {_smi: False}), (3, {_smi: _v___})), ) MODEL_MAPPING: StaticSchema = (18, n0, _MMo, 0, (_pP,), ((PROVIDER_PREFIX, 0),)) -MODEL_PATTERN: StaticSchema = (3, n0, _MPo, 0) - -MODEL_ENTRY: StaticSchema = (18, n0, _ME, 0, (_mode,), ((MODEL_PATTERN, 1),)) +MODEL_ENTRY: StaticSchema = (18, n0, _ME, 0, (_mod,), ((MODEL_PATTERN, 1),)) MODEL_ENTRIES: StaticSchema = (16, n0, _MEo, 0, (_mem,), ((MODEL_ENTRY, 0),)) @@ -9941,7 +10327,7 @@ n0, _IOC, 0, - (_pat, _pPr, _model), + (_pa, _pPr, _mode), ((INFERENCE_OPERATION_PATH, 1), (INFERENCE_OPERATION_PATH, 0), (MODEL_ENTRIES, 0)), ) @@ -9959,7 +10345,7 @@ n0, _IPTC, 0, - (_end, _mM, _ope), + (_end, _mMo, _ope), ( (PASSTHROUGH_ENDPOINT, 1), (MODEL_MAPPING, 0), @@ -10021,7 +10407,7 @@ n0, _AGTO, 0, - (_n, _d, _pat, _meth), + (_n, _d, _pa, _meth), ((3, 1), (3, 0), (3, 1), (REST_API_METHOD, 1)), ) @@ -10039,7 +10425,7 @@ n0, _AGTC, 0, - (_tO, _tF), + (_tOo, _tFo), ((API_GATEWAY_TOOL_OVERRIDES, 0), (API_GATEWAY_TOOL_FILTERS, 1)), ) @@ -10057,7 +10443,7 @@ n0, _CPO, 0, - (_pat, _d, _vi), + (_pa, _d, _vi), ((3, 1), (3, 0), (2, 0)), ) @@ -10252,7 +10638,7 @@ 18, n0, _DGTI, - {_sSI: _cDGTR, _smit: None}, + {_sSI: _cDGTR, _smith: None}, (_gI, _tI), ((GATEWAY_IDENTIFIER, 9), (TARGET_ID, 9)), ) @@ -10261,7 +10647,7 @@ 18, n0, _DGTO, - {_sSI: _cDGTRo, _smith: None}, + {_sSI: _cDGTRo, _smithy: None}, (_gA, _tI, _st, _sRta), ((GATEWAY_ARN, 1), (TARGET_ID, 1), (TARGET_STATUS, 1), (STATUS_REASONS, 0)), ) @@ -10271,7 +10657,7 @@ n0, _DGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -10295,7 +10681,7 @@ 18, n0, _GGTI, - {_sSI: _cGGTR, _smit: None}, + {_sSI: _cGGTR, _smith: None}, (_gI, _tI), ((GATEWAY_IDENTIFIER, 9), (TARGET_ID, 9)), ) @@ -10308,7 +10694,7 @@ 18, n0, _LGTI, - {_sSI: _cLGTR, _smit: None}, + {_sSI: _cLGTR, _smith: None}, (_gI, _mR, _nT), ( (GATEWAY_IDENTIFIER, 9), @@ -10342,7 +10728,7 @@ n0, _TSa, 0, - (_tI, _n, _st, _d, _cA, _uA, _rP, _lSAa, _aD, _tT, _lMi), + (_tI, _n, _st, _d, _cA, _uA, _rP, _lSAa, _aDu, _tT, _lMi), ( (TARGET_ID, 1), (TARGET_NAME, 1), @@ -10364,7 +10750,7 @@ 18, n0, _LGTO, - {_sSI: _cLGTRo, _smith: None}, + {_sSI: _cLGTRo, _smithy: None}, (_it, _nT), ((TARGET_SUMMARIES, 1), (TARGET_NEXT_TOKEN, 0)), ) @@ -10374,7 +10760,7 @@ n0, _LGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -10399,7 +10785,7 @@ 18, n0, _SGTI, - {_sSI: _cSGTR, _smit: None}, + {_sSI: _cSGTR, _smith: None}, (_gI, _tIL), ((GATEWAY_IDENTIFIER, 9), (TARGET_ID_LIST, 1)), ) @@ -10408,7 +10794,7 @@ 18, n0, _GRPI, - {_sSI: _cGRPR, _smit: None}, + {_sSI: _cGRPR, _smith: None}, (_rAe,), ((BEDROCK_AGENTCORE_RESOURCE_ARN, 9),), ) @@ -10419,8 +10805,8 @@ 18, n0, _GRPO, - {_sSI: _cGRPRo, _smith: None}, - (_po,), + {_sSI: _cGRPRo, _smithy: None}, + (_pol,), ((RESOURCE_POLICY_BODY, 0),), ) @@ -10429,7 +10815,7 @@ n0, _GRPe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/resourcepolicy/{resourceArn}"} ) }, @@ -10450,7 +10836,7 @@ 18, n0, _GTVI, - {_sSI: _cGTVR, _smit: None}, + {_sSI: _cGTVR, _smith: None}, (_tVI,), ((TOKEN_VAULT_ID_TYPE, 0),), ) @@ -10477,7 +10863,7 @@ 18, n0, _GTVO, - {_sSI: _cGTVRo, _smith: None}, + {_sSI: _cGTVRo, _smithy: None}, (_tVI, _kC, _lMD), ((TOKEN_VAULT_ID_TYPE, 1), (KMS_CONFIGURATION, 1), (4, 1)), ) @@ -10487,7 +10873,7 @@ n0, _GTV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/get-token-vault", "method": "POST"} ) }, @@ -10515,7 +10901,7 @@ 18, n0, _CHEI, - {_sSI: _cCHER, _smit: None}, + {_sSI: _cCHER, _smith: None}, (_hI, _eN, _tV, _d, _cT, _t), ( (HARNESS_ID, 9), @@ -10573,7 +10959,7 @@ 18, n0, _CHEO, - {_sSI: _cCHERo, _smith: None}, + {_sSI: _cCHERo, _smithy: None}, (_end,), ((HARNESS_ENDPOINT, 1),), ) @@ -10583,7 +10969,7 @@ n0, _CHE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 201, "method": "POST", "uri": "/harnesses/{harnessId}/endpoints"} ) }, @@ -10604,7 +10990,7 @@ 18, n0, _DHEI, - {_sSI: _cDHER, _smit: None}, + {_sSI: _cDHER, _smith: None}, (_hI, _eN, _cT), ( (HARNESS_ID, 9), @@ -10617,7 +11003,7 @@ 18, n0, _DHEO, - {_sSI: _cDHERo, _smith: None}, + {_sSI: _cDHERo, _smithy: None}, (_end,), ((HARNESS_ENDPOINT, 1),), ) @@ -10627,7 +11013,7 @@ n0, _DHE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "DELETE", @@ -10651,7 +11037,7 @@ 18, n0, _GHEI, - {_sSI: _cGHER, _smit: None}, + {_sSI: _cGHER, _smith: None}, (_hI, _eN), ((HARNESS_ID, 9), (HARNESS_ENDPOINT_NAME, 9)), ) @@ -10660,7 +11046,7 @@ 18, n0, _GHEO, - {_sSI: _cGHERo, _smith: None}, + {_sSI: _cGHERo, _smithy: None}, (_end,), ((HARNESS_ENDPOINT, 1),), ) @@ -10670,7 +11056,7 @@ n0, _GHE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -10693,7 +11079,7 @@ 18, n0, _LHEI, - {_sSI: _cLHER, _smit: None}, + {_sSI: _cLHER, _smith: None}, (_hI, _mR, _nT), ((HARNESS_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -10704,7 +11090,7 @@ 18, n0, _LHEO, - {_sSI: _cLHERo, _smith: None}, + {_sSI: _cLHERo, _smithy: None}, (_endp, _nT), ((HARNESS_ENDPOINTS, 1), (NEXT_TOKEN, 0)), ) @@ -10714,7 +11100,7 @@ n0, _LHE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/harnesses/{harnessId}/endpoints"} ) }, @@ -10733,7 +11119,7 @@ 18, n0, _UHEI, - {_sSI: _cUHER, _smit: None}, + {_sSI: _cUHER, _smith: None}, (_hI, _eN, _tV, _d, _cT), ( (HARNESS_ID, 9), @@ -10748,7 +11134,7 @@ 18, n0, _UHEO, - {_sSI: _cUHERo, _smith: None}, + {_sSI: _cUHERo, _smithy: None}, (_end,), ((HARNESS_ENDPOINT, 1),), ) @@ -10758,7 +11144,7 @@ n0, _UHE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "PATCH", @@ -10853,8 +11239,8 @@ (_a, _tSi, _fM), ( (HARNESS_LAMBDA_FUNCTION_ARN, 1), - (7, {_smithya: 60}), - (HARNESS_HOOK_FAILURE_MODE, {_smithya: _den}), + (7, {_smi: 60}), + (HARNESS_HOOK_FAILURE_MODE, {_smi: _den}), ), ) @@ -10959,7 +11345,7 @@ n0, _HACMC, 0, - (_a, _aIc, _mCe, _rC), + (_a, _aIc, _mCe, _rCe), ((MEMORY_ARN, 1), (3, 0), (7, 0), (HARNESS_AGENT_CORE_MEMORY_RETRIEVAL_CONFIGS, 0)), ) @@ -11035,7 +11421,7 @@ n0, _HBMC, 0, - (_mI, _mT, _te, _tP, _aF, _aP), + (_mI, _mT, _te, _tP, _aF, _aPd), ( (MODEL_ID, 1), (MAX_TOKENS, 0), @@ -11055,7 +11441,7 @@ n0, _HGMC, 0, - (_mI, _aKA, _mT, _te, _tP, _tK, _aP), + (_mI, _aKA, _mT, _te, _tP, _tK, _aPd), ( (MODEL_ID, 1), (API_KEY_ARN, 1), @@ -11074,7 +11460,7 @@ n0, _HLLMC, 0, - (_mI, _aKA, _aB, _mT, _te, _tP, _aP), + (_mI, _aKA, _aB, _mT, _te, _tP, _aPd), ( (MODEL_ID, 1), (API_KEY_ARN, 0), @@ -11102,7 +11488,7 @@ n0, _HOAMC, 0, - (_mI, _aKA, _aB, _mT, _te, _tP, _aF, _aP), + (_mI, _aKA, _aB, _mT, _te, _tP, _aF, _aPd), ( (MODEL_ID, 1), (API_KEY_ARN, 1), @@ -11145,7 +11531,7 @@ n0, _HSASS, 0, - (_path,), + (_pat,), ((HARNESS_AWS_SKILL_PATHS, 0),), ) @@ -11165,7 +11551,7 @@ n0, _HSGS, 0, - (_ur, _pat, _aut), + (_ur, _pa, _aut), ((HARNESS_SKILL_GIT_URL, 1), (3, 0), (HARNESS_SKILL_GIT_AUTH, 0)), ) @@ -11187,7 +11573,7 @@ n0, _HS, 0, - (_pat, _s_, _gi, _aSw), + (_pa, _s_, _gi, _aSw), ( (HARNESS_SKILL_PATH, 0), (HARNESS_SKILL_S3_SOURCE, 0), @@ -11282,6 +11668,15 @@ ((HTTP_HEADER_KEY, 0), (HTTP_HEADER_VALUE, 0)), ) +HARNESS_REMOTE_MCP_OUTBOUND_AUTH: StaticSchema = ( + 19, + n0, + _HRMOA, + 0, + (_aIw, _no), + ((IAM_CREDENTIAL_PROVIDER, 0), (-1, 0)), +) + HARNESS_REMOTE_MCP_URL: StaticSchema = (3, n0, _HRMU, 4) HARNESS_REMOTE_MCP_CONFIG: StaticSchema = ( @@ -11289,8 +11684,12 @@ n0, _HRMC, 0, - (_ur, _h), - ((HARNESS_REMOTE_MCP_URL, 1), (HTTP_HEADERS_MAP, 0)), + (_ur, _h, _oA), + ( + (HARNESS_REMOTE_MCP_URL, 1), + (HTTP_HEADERS_MAP, 0), + (HARNESS_REMOTE_MCP_OUTBOUND_AUTH, 0), + ), ) HARNESS_TOOL_CONFIGURATION: StaticSchema = ( @@ -11388,7 +11787,7 @@ 18, n0, _CHI, - {_sSI: _cCHR, _smit: None}, + {_sSI: _cCHR, _smith: None}, ( _hN, _cT, @@ -11397,7 +11796,7 @@ _eAn, _eV, _aCu, - _mode, + _mod, _sPy, _too, _sk, @@ -11491,7 +11890,7 @@ _eRA, _cA, _uA, - _mode, + _mod, _sPy, _too, _sk, @@ -11540,7 +11939,7 @@ 18, n0, _CHO, - {_sSI: _cCHRo, _smith: None}, + {_sSI: _cCHRo, _smithy: None}, (_ha,), ((HARNESS, 1),), ) @@ -11549,7 +11948,7 @@ 23, n0, _CH, - {_smithy: MappingProxyType({"code": 201, "method": "POST", "uri": "/harnesses"})}, + {_smithya: MappingProxyType({"code": 201, "method": "POST", "uri": "/harnesses"})}, CREATE_HARNESS_INPUT, CREATE_HARNESS_OUTPUT, ( @@ -11566,7 +11965,7 @@ 18, n0, _DHI, - {_sSI: _cDHR, _smit: None}, + {_sSI: _cDHR, _smith: None}, (_hI, _cT, _dMM), ((HARNESS_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None}), (2, {_sQ: _dMM})), ) @@ -11575,7 +11974,7 @@ 18, n0, _DHO, - {_sSI: _cDHRo, _smith: None}, + {_sSI: _cDHRo, _smithy: None}, (_ha,), ((HARNESS, 0),), ) @@ -11585,7 +11984,7 @@ n0, _DH, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "DELETE", "uri": "/harnesses/{harnessId}"} ) }, @@ -11605,7 +12004,7 @@ 18, n0, _GHI, - {_sSI: _cGHR, _smit: None}, + {_sSI: _cGHR, _smith: None}, (_hI, _hV), ((HARNESS_ID, 9), (HARNESS_VERSION, {_sQ: _hV})), ) @@ -11614,7 +12013,7 @@ 18, n0, _GHO, - {_sSI: _cGHRo, _smith: None}, + {_sSI: _cGHRo, _smithy: None}, (_ha,), ((HARNESS, 1),), ) @@ -11624,7 +12023,7 @@ n0, _GH, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/harnesses/{harnessId}"} ) }, @@ -11643,7 +12042,7 @@ 18, n0, _LHI, - {_sSI: _cLHR, _smit: None}, + {_sSI: _cLHR, _smith: None}, (_mR, _nT), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -11671,7 +12070,7 @@ 18, n0, _LHO, - {_sSI: _cLHRo, _smith: None}, + {_sSI: _cLHRo, _smithy: None}, (_har, _nT), ((HARNESS_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -11679,8 +12078,8 @@ LIST_HARNESSES: StaticOperationSchema = ( 23, n0, - _LH, - {_smithy: MappingProxyType({"code": 200, "method": "GET", "uri": "/harnesses"})}, + _LHi, + {_smithya: MappingProxyType({"code": 200, "method": "GET", "uri": "/harnesses"})}, LIST_HARNESSES_INPUT, LIST_HARNESSES_OUTPUT, ( @@ -11695,7 +12094,7 @@ 18, n0, _LHVI, - {_sSI: _cLHVR, _smit: None}, + {_sSI: _cLHVR, _smith: None}, (_hI, _mR, _nT), ((HARNESS_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -11731,7 +12130,7 @@ 18, n0, _LHVO, - {_sSI: _cLHVRo, _smith: None}, + {_sSI: _cLHVRo, _smithy: None}, (_hVa, _nT), ((HARNESS_VERSION_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -11741,7 +12140,7 @@ n0, _LHV, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/harnesses/{harnessId}/versions"} ) }, @@ -11787,7 +12186,7 @@ 18, n0, _UHI, - {_sSI: _cUHR, _smit: None}, + {_sSI: _cUHR, _smith: None}, ( _hI, _cT, @@ -11796,7 +12195,7 @@ _eAn, _eV, _aCu, - _mode, + _mod, _sPy, _too, _sk, @@ -11834,7 +12233,7 @@ 18, n0, _UHO, - {_sSI: _cUHRo, _smith: None}, + {_sSI: _cUHRo, _smithy: None}, (_ha,), ((HARNESS, 1),), ) @@ -11844,7 +12243,7 @@ n0, _UH, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "PATCH", "uri": "/harnesses/{harnessId}"} ) }, @@ -11867,7 +12266,7 @@ 18, n0, _LTFRI, - {_sSI: _cLTFRR, _smit: None}, + {_sSI: _cLTFRR, _smith: None}, (_rAe,), ((TAGGABLE_RESOURCES_ARN, 9),), ) @@ -11876,7 +12275,7 @@ 18, n0, _LTFRO, - {_sSI: _cLTFRRo, _smith: None}, + {_sSI: _cLTFRRo, _smithy: None}, (_t,), ((TAGS_MAP, 0),), ) @@ -11886,7 +12285,7 @@ n0, _LTFR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/tags/{resourceArn}"} ) }, @@ -12084,17 +12483,10 @@ _MBTI, 0, (_mCes,), - ((7, {_smithya: 6}),), + ((7, {_smi: 6}),), ) -TIME_BASED_TRIGGER_INPUT: StaticSchema = ( - 18, - n0, - _TBTI, - 0, - (_iST,), - ((7, {_smithya: 20}),), -) +TIME_BASED_TRIGGER_INPUT: StaticSchema = (18, n0, _TBTI, 0, (_iST,), ((7, {_smi: 20}),)) TOKEN_BASED_TRIGGER_INPUT: StaticSchema = ( 18, @@ -12102,7 +12494,7 @@ _TBTIo, 0, (_tC,), - ((7, {_smithya: 5000}),), + ((7, {_smi: 5000}),), ) TRIGGER_CONDITION_INPUT: StaticSchema = ( @@ -12136,7 +12528,7 @@ ( (TRIGGER_CONDITION_INPUT_LIST, 0), (INVOCATION_CONFIGURATION_INPUT, 1), - (7, {_smithya: 4}), + (7, {_smi: 4}), ), ) @@ -12235,12 +12627,32 @@ NAME: StaticSchema = (3, n0, _Nam, 0) +RECORD_EXPIRY_ACTION: StaticSchema = ( + 14, + n0, + _REA, + 0, + (_REMOVE,), + ((-1, {_sVm: _REMOVE}),), +) + +RECORD_EXPIRY_DURATION_DAYS: StaticSchema = (7, n0, _REDD, 0) + +RECORD_EXPIRY_SPECIFICATION: StaticSchema = ( + 19, + n0, + _RES, + 0, + (_rEDD, _ac), + ((RECORD_EXPIRY_DURATION_DAYS, 0), (RECORD_EXPIRY_ACTION, 0)), +) + CUSTOM_MEMORY_STRATEGY_INPUT: StaticSchema = ( 18, n0, _CMSI, 0, - (_n, _d, _na, _nTa, _con, _mRS), + (_n, _d, _na, _nTa, _con, _mRS, _rES), ( (NAME, 1), (DESCRIPTION, 0), @@ -12248,6 +12660,7 @@ (NAMESPACES_LIST, 0), (CUSTOM_CONFIGURATION_INPUT, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -12265,7 +12678,7 @@ n0, _EMSI, 0, - (_n, _d, _na, _nTa, _rCe, _mRS), + (_n, _d, _na, _nTa, _rCef, _mRS, _rES), ( (NAME, 1), (DESCRIPTION, 0), @@ -12273,6 +12686,7 @@ (NAMESPACES_LIST, 0), (EPISODIC_REFLECTION_CONFIGURATION_INPUT, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -12281,13 +12695,14 @@ n0, _SMSI, 0, - (_n, _d, _na, _nTa, _mRS), + (_n, _d, _na, _nTa, _mRS, _rES), ( (NAME, 1), (DESCRIPTION, 0), (NAMESPACES_LIST, 0), (NAMESPACES_LIST, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -12296,13 +12711,14 @@ n0, _SMSIu, 0, - (_n, _d, _na, _nTa, _mRS), + (_n, _d, _na, _nTa, _mRS, _rES), ( (NAME, 1), (DESCRIPTION, 0), (NAMESPACES_LIST, 0), (NAMESPACES_LIST, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -12311,13 +12727,14 @@ n0, _UPMSI, 0, - (_n, _d, _na, _nTa, _mRS), + (_n, _d, _na, _nTa, _mRS, _rES), ( (NAME, 1), (DESCRIPTION, 0), (NAMESPACES_LIST, 0), (NAMESPACES_LIST, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -12404,7 +12821,7 @@ _CCont, 0, (_ty, _le), - ((CONTENT_TYPE, 1), (CONTENT_LEVEL, {_smithya: _MO})), + ((CONTENT_TYPE, 1), (CONTENT_LEVEL, {_smi: _MO})), ) CONTENT_CONFIGURATION_LIST: StaticSchema = ( @@ -12455,8 +12872,8 @@ CREATE_MEMORY_INPUT: StaticSchema = ( 18, n0, - _CMI, - {_smit: None}, + _CMIr, + {_smith: None}, (_cT, _n, _d, _eKA, _mERA, _eED, _mSe, _iK, _nK, _sDR, _t), ( (NON_EMPTY_STRING, 2), @@ -12748,7 +13165,7 @@ n0, _MSem, 0, - (_sIt, _n, _d, _con, _ty, _na, _nTa, _cA, _uA, _st, _mRS), + (_sIt, _n, _d, _con, _ty, _na, _nTa, _cA, _uA, _st, _mRS, _rEDD), ( (MEMORY_STRATEGY_ID, 1), (NAME, 1), @@ -12761,6 +13178,7 @@ (4, 0), (MEMORY_STRATEGY_STATUS, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_DURATION_DAYS, 0), ), ) @@ -12820,7 +13238,7 @@ 18, n0, _CMO, - {_smith: None}, + {_smithy: None}, (_memo,), ((MEMORY, 0),), ) @@ -12834,7 +13252,7 @@ n0, _CM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "POST", "uri": "/memories/create"} ) }, @@ -12855,7 +13273,7 @@ 18, n0, _DMI, - {_smit: None}, + {_smith: None}, (_cT, _mIe), ((NON_EMPTY_STRING, {_sQ: _cT, _sT: None}), (MEMORY_ID, 9)), ) @@ -12864,7 +13282,7 @@ 18, n0, _DMO, - {_smith: None}, + {_smithy: None}, (_mIe, _st), ((MEMORY_ID, 1), (MEMORY_STATUS, 0)), ) @@ -12874,7 +13292,7 @@ n0, _DM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "DELETE", "uri": "/memories/{memoryId}/delete"} ) }, @@ -12903,16 +13321,16 @@ 18, n0, _GMI, - {_smit: None}, + {_smith: None}, (_mIe, _vie), - ((MEMORY_ID, 9), (MEMORY_VIEW, {_smithya: _fu, _sQ: _vie})), + ((MEMORY_ID, 9), (MEMORY_VIEW, {_smi: _fu, _sQ: _vie})), ) GET_MEMORY_OUTPUT: StaticSchema = ( 18, n0, _GMO, - {_smith: None}, + {_smithy: None}, (_memo,), ((MEMORY, 1),), ) @@ -12922,7 +13340,7 @@ n0, _GM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/memories/{memoryId}/details"} ) }, @@ -12941,9 +13359,9 @@ 18, n0, _LMI, - {_smit: None}, + {_smith: None}, (_mR, _nT), - ((7, {_smithya: 100}), (3, 0)), + ((7, {_smi: 100}), (3, 0)), ) MEMORY_SUMMARY: StaticSchema = ( @@ -12961,7 +13379,7 @@ 18, n0, _LMO, - {_smith: None}, + {_smithy: None}, (_memor, _nT), ((MEMORY_SUMMARY_LIST, 1), (3, 0)), ) @@ -12970,7 +13388,7 @@ 23, n0, _LMi, - {_smithy: MappingProxyType({"method": "POST", "uri": "/memories/"})}, + {_smithya: MappingProxyType({"method": "POST", "uri": "/memories/"})}, LIST_MEMORIES_INPUT, LIST_MEMORIES_OUTPUT, ( @@ -13100,7 +13518,7 @@ n0, _MMSI, 0, - (_mSI, _d, _na, _nTa, _con, _mRS), + (_mSI, _d, _na, _nTa, _con, _mRS, _rES), ( (3, 1), (DESCRIPTION, 0), @@ -13108,6 +13526,7 @@ (NAMESPACES_LIST, 0), (MODIFY_STRATEGY_CONFIGURATION, 0), (MEMORY_RECORD_SCHEMA, 0), + (RECORD_EXPIRY_SPECIFICATION, 0), ), ) @@ -13137,7 +13556,7 @@ 18, n0, _UMI, - {_smit: None}, + {_smith: None}, (_cT, _mIe, _d, _eED, _mERA, _mSe, _aIK, _nK, _sDR), ( (NON_EMPTY_STRING, 2), @@ -13156,7 +13575,7 @@ 18, n0, _UMO, - {_smith: None}, + {_smithy: None}, (_memo,), ((MEMORY, 0),), ) @@ -13166,7 +13585,7 @@ n0, _UM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "PUT", "uri": "/memories/{memoryId}/update"} ) }, @@ -13207,7 +13626,7 @@ _ZO, _TO, _SOp, - _DO, + _DOr, _NO, _HO, _CAO, @@ -13234,7 +13653,7 @@ (-1, {_sVm: _ZO}), (-1, {_sVm: _TO}), (-1, {_sVm: _SOp}), - (-1, {_sVm: _DO}), + (-1, {_sVm: _DOr}), (-1, {_sVm: _NO}), (-1, {_sVm: _HO}), (-1, {_sVm: _CAO}), @@ -13256,7 +13675,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13329,6 +13748,24 @@ ((-1, {_sVm: _TE_}), (-1, {_sVm: _JAG})), ) +ON_BEHALF_OF_CLIENT_AUTHENTICATION_METHOD: StaticSchema = ( + 14, + n0, + _OBOCAM, + 0, + (_NC_,), + ((-1, {_sVm: _NC_}),), +) + +ON_BEHALF_OF_AUTHENTICATION_CONFIG: StaticSchema = ( + 18, + n0, + _OBOAC, + 0, + (_cAM,), + ((ON_BEHALF_OF_CLIENT_AUTHENTICATION_METHOD, 1),), +) + SCOPE_TYPE: StaticSchema = (3, n0, _STco, 0) SCOPES_LIST_TYPE: StaticSchema = (16, n0, _SLT, 0, (_mem,), ((SCOPE_TYPE, 0),)) @@ -13347,10 +13784,11 @@ n0, _OBOTECT, 0, - (_gT, _tEGTC), + (_gT, _tEGTC, _oBOAC), ( (ON_BEHALF_OF_TOKEN_EXCHANGE_GRANT_TYPE_TYPE, 1), (TOKEN_EXCHANGE_GRANT_TYPE_CONFIG_TYPE, 0), + (ON_BEHALF_OF_AUTHENTICATION_CONFIG, 0), ), ) @@ -13393,11 +13831,11 @@ n0, _COPCI, 0, - (_oD, _cIl, _cS, _cSC, _cSS, _oBOTEC, _cAM, _pKJC, _pE, _pEO), + (_oD, _cIl, _cS, _cSC, _cSS, _oBOTEC, _cAM, _pKJC, _pE, _pEO, _cCe), ( (OAUTH2_DISCOVERY, 1), - (DEFAULT_CLIENT_ID_TYPE, {_smithya: _v_}), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_ID_TYPE, {_smi: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), (ON_BEHALF_OF_TOKEN_EXCHANGE_CONFIG_TYPE, 0), @@ -13405,6 +13843,7 @@ (PRIVATE_KEY_JWT_CONFIG, 0), (PRIVATE_ENDPOINT, 0), (PRIVATE_ENDPOINT_OVERRIDES, 0), + (CERTIFICATE_CONFIGURATION_LIST, 0), ), ) @@ -13416,7 +13855,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13430,7 +13869,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13444,7 +13883,7 @@ (_cIl, _cS, _cSC, _cSS, _is, _aE, _tE), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), (ISSUER_URL_TYPE, 0), @@ -13461,7 +13900,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13477,7 +13916,7 @@ (_cIl, _cS, _cSC, _cSS, _tIe), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), (TENANT_ID_TYPE, 0), @@ -13492,7 +13931,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13506,7 +13945,7 @@ (_cIl, _cS, _cSC, _cSS), ( (CLIENT_ID_TYPE, 1), - (DEFAULT_CLIENT_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_CLIENT_SECRET_TYPE, {_smi: _v_}), (SECRET_REFERENCE, 0), (SECRET_SOURCE_TYPE, 0), ), @@ -13535,7 +13974,7 @@ 18, n0, _COCPI, - {_sSI: _cCOCPR, _smit: None}, + {_sSI: _cCOCPR, _smith: None}, (_n, _cPVr, _oPCI, _t), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -13561,7 +14000,7 @@ n0, _COPCO, 0, - (_oD, _cIl, _oBOTEC, _cAM, _pE, _pEO, _pKJC), + (_oD, _cIl, _oBOTEC, _cAM, _pE, _pEO, _cCe, _pKJC), ( (OAUTH2_DISCOVERY, 1), (CLIENT_ID_TYPE, 0), @@ -13569,6 +14008,7 @@ (CLIENT_AUTHENTICATION_METHOD_TYPE, 0), (PRIVATE_ENDPOINT, 0), (PRIVATE_ENDPOINT_OVERRIDES, 0), + (CERTIFICATE_CONFIGURATION_LIST, 0), (PRIVATE_KEY_JWT_CONFIG, 0), ), ) @@ -13676,7 +14116,7 @@ 18, n0, _COCPO, - {_sSI: _cCOCPRo, _smith: None}, + {_sSI: _cCOCPRo, _smithy: None}, (_cSA, _cSJK, _cSS, _n, _cPAr, _cUa, _oPCO, _st), ( (SECRET, 1), @@ -13695,7 +14135,7 @@ n0, _COCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 201, "uri": "/identities/CreateOauth2CredentialProvider", @@ -13724,7 +14164,7 @@ 18, n0, _DOCPI, - {_sSI: _cDOCPR, _smit: None}, + {_sSI: _cDOCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -13733,7 +14173,7 @@ 18, n0, _DOCPO, - {_sSI: _cDOCPRo, _smith: None}, + {_sSI: _cDOCPRo, _smithy: None}, ) DELETE_OAUTH2_CREDENTIAL_PROVIDER: StaticOperationSchema = ( @@ -13741,7 +14181,7 @@ n0, _DOCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 204, "uri": "/identities/DeleteOauth2CredentialProvider", @@ -13766,7 +14206,7 @@ 18, n0, _GOCPI, - {_sSI: _cGOCPR, _smit: None}, + {_sSI: _cGOCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -13775,7 +14215,7 @@ 18, n0, _GOCPO, - {_sSI: _cGOCPRo, _smith: None}, + {_sSI: _cGOCPRo, _smithy: None}, (_cSA, _cSJK, _cSS, _n, _cPAr, _cPVr, _cUa, _oPCO, _cTr, _lUT, _st, _fR), ( (SECRET, 1), @@ -13798,7 +14238,7 @@ n0, _GOCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/GetOauth2CredentialProvider", "method": "POST"} ) }, @@ -13819,9 +14259,9 @@ 18, n0, _LOCPI, - {_sSI: _cLOCPR, _smit: None}, + {_sSI: _cLOCPR, _smith: None}, (_nT, _mR), - ((3, 0), (7, {_smithya: 10})), + ((3, 0), (7, {_smi: 10})), ) OAUTH2_CREDENTIAL_PROVIDER_ITEM: StaticSchema = ( @@ -13852,7 +14292,7 @@ 18, n0, _LOCPO, - {_sSI: _cLOCPRo, _smith: None}, + {_sSI: _cLOCPRo, _smithy: None}, (_cP, _nT), ((OAUTH2_CREDENTIAL_PROVIDERS, 1), (3, 0)), ) @@ -13862,7 +14302,7 @@ n0, _LOCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/ListOauth2CredentialProviders", "method": "POST"} ) }, @@ -13882,7 +14322,7 @@ 18, n0, _UOCPI, - {_sSI: _cUOCPR, _smit: None}, + {_sSI: _cUOCPR, _smith: None}, (_n, _cPVr, _oPCI), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -13895,7 +14335,7 @@ 18, n0, _UOCPO, - {_sSI: _cUOCPRo, _smith: None}, + {_sSI: _cUOCPRo, _smithy: None}, (_cSA, _cSJK, _cSS, _n, _cPVr, _cPAr, _cUa, _oPCO, _cTr, _lUT, _st), ( (SECRET, 1), @@ -13917,7 +14357,7 @@ n0, _UOCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/UpdateOauth2CredentialProvider", "method": "POST"} ) }, @@ -13960,7 +14400,7 @@ n0, _CCl, 0, - (_fr,), + (_fre,), ((CLUSTERING_FREQUENCY_LIST, 1),), ) @@ -13988,9 +14428,9 @@ n0, _CWLIC, 0, - (_lGN, _lGNP, _sN), + (_lGN, _lGNP, _sNe), ( - (LOG_GROUP_NAMES_LIST, {_smithya: ()}), + (LOG_GROUP_NAMES_LIST, {_smi: ()}), (LOG_GROUP_NAME_PREFIX_LIST, 0), (SERVICE_NAMES_LIST, 1), ), @@ -14039,9 +14479,9 @@ 0, (_lGNo, _mN, _rDe), ( - (OPTIONAL_LOG_GROUP_NAME, {_smithya: _v_}), + (OPTIONAL_LOG_GROUP_NAME, {_smi: _v_}), (METRICS_NAMESPACE, 0), - (RESULT_DESTINATION, {_smithya: _DLG}), + (RESULT_DESTINATION, {_smi: _DLG}), ), ) @@ -14059,7 +14499,7 @@ n0, _FOi, 0, - (_EQUALS, _NE, _GT, _LT, _GTOE, _LTOE, _CONTAINS, _NC_), + (_EQUALS, _NE, _GT, _LT, _GTOE, _LTOE, _CONTAINS, _NC__), ( (-1, {_sVm: _E}), (-1, {_sVm: _NEo}), @@ -14084,7 +14524,7 @@ FILTER: StaticSchema = ( 18, n0, - _F, + _Fi, 0, (_k, _op, _v), ((3, 1), (FILTER_OPERATOR, 1), (FILTER_VALUE, 1)), @@ -14111,7 +14551,7 @@ 18, n0, _COECI, - {_sSI: _cCOECR, _smit: None}, + {_sSI: _cCOECR, _smith: None}, (_cT, _oECN, _d, _rul, _dSC, _ev, _ins, _cCl, _oC, _eERA, _eOC, _t), ( (CLIENT_TOKEN, 2), @@ -14163,7 +14603,7 @@ 18, n0, _COECO, - {_sSI: _cCOECRo, _smith: None}, + {_sSI: _cCOECRo, _smithy: None}, (_oECA, _oECI, _cA, _oC, _st, _eS, _fR), ( (ONLINE_EVALUATION_CONFIG_ARN, 1), @@ -14181,7 +14621,7 @@ n0, _COEC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/online-evaluation-configs/create", "code": 202} ) }, @@ -14201,7 +14641,7 @@ 18, n0, _DOECI, - {_sSI: _cDOECR, _smit: None}, + {_sSI: _cDOECR, _smith: None}, (_oECI,), ((ONLINE_EVALUATION_CONFIG_ID, 9),), ) @@ -14210,7 +14650,7 @@ 18, n0, _DOECO, - {_sSI: _cDOECRo, _smith: None}, + {_sSI: _cDOECRo, _smithy: None}, (_oECA, _oECI, _st), ( (ONLINE_EVALUATION_CONFIG_ARN, 1), @@ -14224,7 +14664,7 @@ n0, _DOEC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "DELETE", "uri": "/online-evaluation-configs/{onlineEvaluationConfigId}", @@ -14248,7 +14688,7 @@ 18, n0, _GOECI, - {_sSI: _cGOECR, _smit: None}, + {_sSI: _cGOECR, _smith: None}, (_oECI,), ((ONLINE_EVALUATION_CONFIG_ID, 9),), ) @@ -14257,7 +14697,7 @@ 18, n0, _GOECO, - {_sSI: _cGOECRo, _smith: None}, + {_sSI: _cGOECRo, _smithy: None}, ( _oECA, _oECI, @@ -14283,7 +14723,7 @@ (EVALUATION_CONFIG_DESCRIPTION, 0), (RULE, 1), (DATA_SOURCE_CONFIG, 1), - (EVALUATOR_LIST, {_smithya: ()}), + (EVALUATOR_LIST, {_smi: ()}), (INSIGHT_LIST, 0), (CLUSTERING_CONFIG, 0), (OUTPUT_CONFIG, 0), @@ -14301,7 +14741,7 @@ n0, _GOEC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/online-evaluation-configs/{onlineEvaluationConfigId}", @@ -14323,7 +14763,7 @@ 18, n0, _LOECI, - {_sSI: _cLOECR, _smit: None}, + {_sSI: _cLOECR, _smith: None}, (_nT, _mR), ((3, {_sQ: _nT}), (7, {_sQ: _mR})), ) @@ -14362,7 +14802,7 @@ 18, n0, _LOECO, - {_sSI: _cLOECRo, _smith: None}, + {_sSI: _cLOECRo, _smithy: None}, (_oEC, _nT), ((ONLINE_EVALUATION_CONFIG_SUMMARY_LIST, 1), (3, 0)), ) @@ -14372,7 +14812,7 @@ n0, _LOEC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/online-evaluation-configs"} ) }, @@ -14390,7 +14830,7 @@ 18, n0, _UOECI, - {_sSI: _cUOECR, _smit: None}, + {_sSI: _cUOECR, _smith: None}, (_cT, _oECI, _d, _rul, _dSC, _ev, _ins, _cCl, _oC, _eERA, _eS), ( (CLIENT_TOKEN, 2), @@ -14411,7 +14851,7 @@ 18, n0, _UOECO, - {_sSI: _cUOECRo, _smith: None}, + {_sSI: _cUOECRo, _smithy: None}, (_oECA, _oECI, _uA, _st, _eS, _fR), ( (ONLINE_EVALUATION_CONFIG_ARN, 1), @@ -14428,7 +14868,7 @@ n0, _UOEC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "PUT", "uri": "/online-evaluation-configs/{onlineEvaluationConfigId}", @@ -14472,10 +14912,10 @@ (_aKI, _aKS, _aKSS, _aKSC, _wS, _wSS, _wSC), ( (COINBASE_CDP_API_KEY_ID_TYPE, 1), - (DEFAULT_COINBASE_CDP_API_KEY_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_COINBASE_CDP_API_KEY_SECRET_TYPE, {_smi: _v_}), (SECRET_SOURCE_TYPE, 0), (SECRET_REFERENCE, 0), - (DEFAULT_COINBASE_CDP_WALLET_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_COINBASE_CDP_WALLET_SECRET_TYPE, {_smi: _v_}), (SECRET_SOURCE_TYPE, 0), (SECRET_REFERENCE, 0), ), @@ -14497,10 +14937,10 @@ (_aIp, _aSp, _aSS, _aSC, _aPK, _aPKS, _aPKC, _aIu), ( (STRIPE_PRIVY_APP_ID_TYPE, 1), - (DEFAULT_STRIPE_PRIVY_APP_SECRET_TYPE, {_smithya: _v_}), + (DEFAULT_STRIPE_PRIVY_APP_SECRET_TYPE, {_smi: _v_}), (SECRET_SOURCE_TYPE, 0), (SECRET_REFERENCE, 0), - (DEFAULT_STRIPE_PRIVY_AUTHORIZATION_PRIVATE_KEY_TYPE, {_smithya: _v_}), + (DEFAULT_STRIPE_PRIVY_AUTHORIZATION_PRIVATE_KEY_TYPE, {_smi: _v_}), (SECRET_SOURCE_TYPE, 0), (SECRET_REFERENCE, 0), (STRIPE_PRIVY_AUTHORIZATION_ID_TYPE, 1), @@ -14520,7 +14960,7 @@ 18, n0, _CPCPI, - {_sSI: _cCPCPR, _smit: None}, + {_sSI: _cCPCPR, _smith: None}, (_n, _cPVr, _pCI, _t), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -14580,7 +15020,7 @@ 18, n0, _CPCPO, - {_sSI: _cCPCPRo, _smith: None}, + {_sSI: _cCPCPRo, _smithy: None}, (_n, _cPVr, _cPAr, _pCO), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -14595,7 +15035,7 @@ n0, _CPCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 201, "uri": "/identities/CreatePaymentCredentialProvider", @@ -14624,7 +15064,7 @@ 18, n0, _DPCPI, - {_sSI: _cDPCPR, _smit: None}, + {_sSI: _cDPCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -14633,7 +15073,7 @@ 18, n0, _DPCPO, - {_sSI: _cDPCPRo, _smith: None}, + {_sSI: _cDPCPRo, _smithy: None}, ) DELETE_PAYMENT_CREDENTIAL_PROVIDER: StaticOperationSchema = ( @@ -14641,7 +15081,7 @@ n0, _DPCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 204, "uri": "/identities/DeletePaymentCredentialProvider", @@ -14665,7 +15105,7 @@ 18, n0, _GPCPI, - {_sSI: _cGPCPR, _smit: None}, + {_sSI: _cGPCPR, _smith: None}, (_n,), ((CREDENTIAL_PROVIDER_NAME, 1),), ) @@ -14674,7 +15114,7 @@ 18, n0, _GPCPO, - {_sSI: _cGPCPRo, _smith: None}, + {_sSI: _cGPCPRo, _smithy: None}, (_n, _cPAr, _cPVr, _pCO, _cTr, _lUT, _t), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -14692,7 +15132,7 @@ n0, _GPCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/GetPaymentCredentialProvider", "method": "POST"} ) }, @@ -14713,9 +15153,9 @@ 18, n0, _LPCPI, - {_sSI: _cLPCPR, _smit: None}, + {_sSI: _cLPCPR, _smith: None}, (_nT, _mR), - ((3, 0), (7, {_smithya: 10})), + ((3, 0), (7, {_smi: 10})), ) PAYMENT_CREDENTIAL_PROVIDER_ITEM: StaticSchema = ( @@ -14746,7 +15186,7 @@ 18, n0, _LPCPO, - {_sSI: _cLPCPRo, _smith: None}, + {_sSI: _cLPCPRo, _smithy: None}, (_cP, _nT), ((PAYMENT_CREDENTIAL_PROVIDERS, 1), (3, 0)), ) @@ -14756,7 +15196,7 @@ n0, _LPCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/ListPaymentCredentialProviders", "method": "POST"} ) }, @@ -14776,7 +15216,7 @@ 18, n0, _UPCPI, - {_sSI: _cUPCPR, _smit: None}, + {_sSI: _cUPCPR, _smith: None}, (_n, _cPVr, _pCI), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -14789,7 +15229,7 @@ 18, n0, _UPCPO, - {_sSI: _cUPCPRo, _smith: None}, + {_sSI: _cUPCPRo, _smithy: None}, (_n, _cPVr, _cPAr, _pCO, _cTr, _lUT), ( (CREDENTIAL_PROVIDER_NAME, 1), @@ -14806,7 +15246,7 @@ n0, _UPCP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/UpdatePaymentCredentialProvider", "method": "POST"} ) }, @@ -14843,7 +15283,7 @@ 18, n0, _CPMI, - {_sSI: _cCPMR, _smit: None}, + {_sSI: _cCPMR, _smith: None}, (_n, _d, _aT, _aCu, _rA, _cT, _t, _kKA), ( (PAYMENT_MANAGER_NAME, 1), @@ -14882,7 +15322,7 @@ 18, n0, _CPMO, - {_sSI: _cCPMRo, _smith: None}, + {_sSI: _cCPMRo, _smithy: None}, (_pMA, _pMI, _n, _aT, _aCu, _rA, _wID, _cA, _st, _t, _kKA), ( (PAYMENT_MANAGER_ARN, 1), @@ -14904,7 +15344,7 @@ n0, _CPM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "POST", "uri": "/payments/managers"} ) }, @@ -14924,7 +15364,7 @@ 18, n0, _DPMI, - {_sSI: _cDPMR, _smit: None}, + {_sSI: _cDPMR, _smith: None}, (_pMI, _cT), ((PAYMENT_MANAGER_ID, 9), (CLIENT_TOKEN, {_sQ: _cT, _sT: None})), ) @@ -14933,7 +15373,7 @@ 18, n0, _DPMO, - {_sSI: _cDPMRo, _smith: None}, + {_sSI: _cDPMRo, _smithy: None}, (_st, _pMI), ((PAYMENT_MANAGER_STATUS, 1), (PAYMENT_MANAGER_ID, 0)), ) @@ -14943,7 +15383,7 @@ n0, _DPM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -14966,7 +15406,7 @@ 18, n0, _GPMI, - {_sSI: _cGPMR, _smit: None}, + {_sSI: _cGPMR, _smith: None}, (_pMI,), ((PAYMENT_MANAGER_ID, 9),), ) @@ -14975,7 +15415,7 @@ 18, n0, _GPMO, - {_sSI: _cGPMRo, _smith: None}, + {_sSI: _cGPMRo, _smithy: None}, (_pMA, _pMI, _n, _d, _aT, _aCu, _rA, _wID, _cA, _lUA, _st, _t, _kKA), ( (PAYMENT_MANAGER_ARN, 1), @@ -14999,7 +15439,7 @@ n0, _GPM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -15022,7 +15462,7 @@ 18, n0, _LPMI, - {_sSI: _cLPMR, _smit: None}, + {_sSI: _cLPMR, _smith: None}, (_mR, _nT), ((MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -15060,7 +15500,7 @@ 18, n0, _LPMO, - {_sSI: _cLPMRo, _smith: None}, + {_sSI: _cLPMRo, _smithy: None}, (_pM, _nT), ((PAYMENT_MANAGER_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -15070,7 +15510,7 @@ n0, _LPM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "POST", "uri": "/payments/managers-list"} ) }, @@ -15140,7 +15580,7 @@ 18, n0, _CPCI, - {_sSI: _cCPCR, _smit: None}, + {_sSI: _cCPCR, _smith: None}, (_pMI, _n, _d, _ty, _cPCr, _pMr, _cT), ( (PAYMENT_MANAGER_ID, 9), @@ -15196,7 +15636,7 @@ 18, n0, _CPCO, - {_sSI: _cCPCRo, _smith: None}, + {_sSI: _cCPCRo, _smithy: None}, (_pCIa, _pMI, _n, _ty, _cPCr, _cA, _st, _aU), ( (PAYMENT_CONNECTOR_ID, 1), @@ -15224,7 +15664,7 @@ n0, _CPCrea, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "POST", @@ -15250,7 +15690,7 @@ 18, n0, _DPCI, - {_sSI: _cDPCR, _smit: None}, + {_sSI: _cDPCR, _smith: None}, (_pMI, _pCIa, _cT), ( (PAYMENT_MANAGER_ID, 9), @@ -15263,7 +15703,7 @@ 18, n0, _DPCO, - {_sSI: _cDPCRo, _smith: None}, + {_sSI: _cDPCRo, _smithy: None}, (_st, _pCIa), ((PAYMENT_CONNECTOR_STATUS, 1), (PAYMENT_CONNECTOR_ID, 0)), ) @@ -15273,7 +15713,7 @@ n0, _DPC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "DELETE", @@ -15296,7 +15736,7 @@ 18, n0, _GPCI, - {_sSI: _cGPCR, _smit: None}, + {_sSI: _cGPCR, _smith: None}, (_pMI, _pCIa), ((PAYMENT_MANAGER_ID, 9), (PAYMENT_CONNECTOR_ID, 9)), ) @@ -15305,7 +15745,7 @@ 18, n0, _GPCO, - {_sSI: _cGPCRo, _smith: None}, + {_sSI: _cGPCRo, _smithy: None}, (_pCIa, _n, _d, _ty, _pMr, _cPCr, _cA, _lUA, _st, _aU, _cUA), ( (PAYMENT_CONNECTOR_ID, 1), @@ -15327,7 +15767,7 @@ n0, _GPCe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -15350,7 +15790,7 @@ 18, n0, _LPCI, - {_sSI: _cLPCR, _smit: None}, + {_sSI: _cLPCR, _smith: None}, (_pMI, _mR, _nT), ((PAYMENT_MANAGER_ID, 9), (MAX_RESULTS, {_sQ: _mR}), (NEXT_TOKEN, {_sQ: _nT})), ) @@ -15384,7 +15824,7 @@ 18, n0, _LPCO, - {_sSI: _cLPCRo, _smith: None}, + {_sSI: _cLPCRo, _smithy: None}, (_pCa, _nT), ((PAYMENT_CONNECTOR_SUMMARIES, 1), (NEXT_TOKEN, 0)), ) @@ -15394,7 +15834,7 @@ n0, _LPC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "POST", @@ -15452,7 +15892,7 @@ 18, n0, _RPCCI, - {_sSI: _cRPCCR, _smit: None}, + {_sSI: _cRPCCR, _smith: None}, (_pMI, _pCIa, _cTR, _cT), ( (PAYMENT_MANAGER_ID, 9), @@ -15466,7 +15906,7 @@ 18, n0, _RPCCO, - {_sSI: _cRPCCRo, _smith: None}, + {_sSI: _cRPCCRo, _smithy: None}, (_pCIa, _pMI, _lUA, _st), ( (PAYMENT_CONNECTOR_ID, 1), @@ -15481,7 +15921,7 @@ n0, _RPCC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "POST", @@ -15505,7 +15945,7 @@ 18, n0, _UPCI, - {_sSI: _cUPCR, _smit: None}, + {_sSI: _cUPCR, _smith: None}, (_pMI, _pCIa, _d, _ty, _cPCr, _cT), ( (PAYMENT_MANAGER_ID, 9), @@ -15521,7 +15961,7 @@ 18, n0, _UPCOp, - {_sSI: _cUPCRo, _smith: None}, + {_sSI: _cUPCRo, _smithy: None}, (_pCIa, _pMI, _n, _ty, _cPCr, _lUA, _st, _aU), ( (PAYMENT_CONNECTOR_ID, 1), @@ -15540,7 +15980,7 @@ n0, _UPC, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PATCH", @@ -15566,7 +16006,7 @@ 18, n0, _UPMI, - {_sSI: _cUPMR, _smit: None}, + {_sSI: _cUPMR, _smith: None}, (_pMI, _d, _aT, _aCu, _rA, _cT, _kKA), ( (PAYMENT_MANAGER_ID, 9), @@ -15583,7 +16023,7 @@ 18, n0, _UPMO, - {_sSI: _cUPMRo, _smith: None}, + {_sSI: _cUPMRo, _smithy: None}, (_pMA, _pMI, _n, _aT, _rA, _wID, _lUA, _st, _kKA), ( (PAYMENT_MANAGER_ARN, 1), @@ -15603,7 +16043,7 @@ n0, _UPM, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PATCH", @@ -15630,7 +16070,7 @@ 18, n0, _CPEI, - {_sSI: _cCPER, _smit: None}, + {_sSI: _cCPER, _smith: None}, (_n, _d, _cT, _eKA, _t), ( (POLICY_ENGINE_NAME, 1), @@ -15670,7 +16110,7 @@ 18, n0, _CPEO, - {_sSI: _cCPERo, _smith: None}, + {_sSI: _cCPERo, _smithy: None}, (_pEI, _n, _cA, _uA, _pEA, _st, _eKA, _d, _sRta), ( (RESOURCE_ID, 1), @@ -15690,7 +16130,7 @@ n0, _CPE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/policy-engines", "code": 202} ) }, @@ -15710,7 +16150,7 @@ 18, n0, _DPEI, - {_sSI: _cDPER, _smit: None}, + {_sSI: _cDPER, _smith: None}, (_pEI,), ((RESOURCE_ID, 9),), ) @@ -15719,7 +16159,7 @@ 18, n0, _DPEO, - {_sSI: _cDPERo, _smith: None}, + {_sSI: _cDPERo, _smithy: None}, (_pEI, _n, _cA, _uA, _pEA, _st, _eKA, _d, _sRta), ( (RESOURCE_ID, 1), @@ -15739,7 +16179,7 @@ n0, _DPE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "DELETE", "uri": "/policy-engines/{policyEngineId}", "code": 202} ) }, @@ -15759,7 +16199,7 @@ 18, n0, _GPEI, - {_sSI: _cGPER, _smit: None}, + {_sSI: _cGPER, _smith: None}, (_pEI,), ((RESOURCE_ID, 9),), ) @@ -15768,7 +16208,7 @@ 18, n0, _GPEO, - {_sSI: _cGPERo, _smith: None}, + {_sSI: _cGPERo, _smithy: None}, (_pEI, _n, _cA, _uA, _pEA, _st, _eKA, _d, _sRta), ( (RESOURCE_ID, 1), @@ -15788,7 +16228,7 @@ n0, _GPE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/policy-engines/{policyEngineId}", "code": 200} ) }, @@ -15807,7 +16247,7 @@ 18, n0, _GPESI, - {_sSI: _cGPESR, _smit: None}, + {_sSI: _cGPESR, _smith: None}, (_pEI,), ((RESOURCE_ID, 9),), ) @@ -15816,7 +16256,7 @@ 18, n0, _GPESO, - {_sSI: _cGPESRo, _smith: None}, + {_sSI: _cGPESRo, _smithy: None}, (_pEI, _n, _cA, _uA, _pEA, _st, _eKA), ( (RESOURCE_ID, 1), @@ -15834,7 +16274,7 @@ n0, _GPES, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engine-summaries/{policyEngineId}", @@ -15857,7 +16297,7 @@ 18, n0, _LPEI, - {_sSI: _cLPER, _smit: None}, + {_sSI: _cLPER, _smith: None}, (_nT, _mR), ((NEXT_TOKEN, {_sQ: _nT}), (MAX_RESULTS, {_sQ: _mR})), ) @@ -15887,7 +16327,7 @@ 18, n0, _LPEO, - {_sSI: _cLPERo, _smith: None}, + {_sSI: _cLPERo, _smithy: None}, (_pEo, _nT), ((POLICY_ENGINES, 1), (NEXT_TOKEN, 0)), ) @@ -15897,7 +16337,7 @@ n0, _LPE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/policy-engines", "code": 200} ) }, @@ -15915,7 +16355,7 @@ 18, n0, _LPESI, - {_sSI: _cLPESR, _smit: None}, + {_sSI: _cLPESR, _smith: None}, (_nT, _mR), ((NEXT_TOKEN, {_sQ: _nT}), (MAX_RESULTS, {_sQ: _mR})), ) @@ -15950,7 +16390,7 @@ 18, n0, _LPESO, - {_sSI: _cLPESRo, _smith: None}, + {_sSI: _cLPESRo, _smithy: None}, (_pEo, _nT), ((POLICY_ENGINE_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -15960,7 +16400,7 @@ n0, _LPES, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/policy-engine-summaries", "code": 200} ) }, @@ -15978,7 +16418,7 @@ 18, n0, _UPEI, - {_sSI: _cUPER, _smit: None}, + {_sSI: _cUPER, _smith: None}, (_pEI, _d), ((RESOURCE_ID, 9), (UPDATED_DESCRIPTION, 0)), ) @@ -15987,7 +16427,7 @@ 18, n0, _UPEOp, - {_sSI: _cUPERo, _smith: None}, + {_sSI: _cUPERo, _smithy: None}, (_pEI, _n, _cA, _uA, _pEA, _st, _eKA, _d, _sRta), ( (RESOURCE_ID, 1), @@ -16007,7 +16447,7 @@ n0, _UPE, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "PATCH", "uri": "/policy-engines/{policyEngineId}", "code": 202} ) }, @@ -16027,7 +16467,7 @@ 18, n0, _GPGI, - {_sSI: _cGPGR, _smit: None}, + {_sSI: _cGPGR, _smith: None}, (_pGI, _pEI), ((RESOURCE_ID, 9), (RESOURCE_ID, 9)), ) @@ -16056,7 +16496,7 @@ 18, n0, _GPGO, - {_sSI: _cGPGRo, _smith: None}, + {_sSI: _cGPGRo, _smithy: None}, (_pEI, _pGI, _n, _pGA, _resou, _cA, _uA, _st, _fin, _sRta), ( (RESOURCE_ID, 1), @@ -16077,7 +16517,7 @@ n0, _GPG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}", @@ -16099,7 +16539,7 @@ 18, n0, _GPGSI, - {_sSI: _cGPGSR, _smit: None}, + {_sSI: _cGPGSR, _smith: None}, (_pGI, _pEI), ((RESOURCE_ID, 9), (RESOURCE_ID, 9)), ) @@ -16108,7 +16548,7 @@ 18, n0, _GPGSO, - {_sSI: _cGPGSRo, _smith: None}, + {_sSI: _cGPGSRo, _smithy: None}, (_pEI, _pGI, _n, _pGA, _resou, _cA, _uA, _st, _fin), ( (RESOURCE_ID, 1), @@ -16128,7 +16568,7 @@ n0, _GPGS, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-generation-summaries/{policyGenerationId}", @@ -16151,7 +16591,7 @@ 18, n0, _LPGAI, - {_sSI: _cLPGAR, _smit: None}, + {_sSI: _cLPGAR, _smith: None}, (_pGI, _pEI, _nT, _mR), ( (RESOURCE_ID, 9), @@ -16181,14 +16621,14 @@ n0, _PDo, 0, - (_ced, _pG, _po), + (_ced, _pG, _pol), ((CEDAR_POLICY, 0), (POLICY_GENERATION_DETAILS, 0), (POLICY_STATEMENT, 0)), ) FINDING_TYPE: StaticSchema = ( 14, n0, - _FT, + _FTi, 0, (_VALID, _INVALID, _NT_, _AA__, _AN, _DA_, _DN_), ( @@ -16202,9 +16642,9 @@ ), ) -FINDING: StaticSchema = (18, n0, _Fi, 0, (_ty, _d), ((FINDING_TYPE, 0), (STRING, 0))) +FINDING: StaticSchema = (18, n0, _Fin, 0, (_ty, _d), ((FINDING_TYPE, 0), (STRING, 0))) -FINDINGS: StaticSchema = (16, n0, _Fin, 0, (_mem,), ((FINDING, 0),)) +FINDINGS: StaticSchema = (16, n0, _Find, 0, (_mem,), ((FINDING, 0),)) NATURAL_LANGUAGE: StaticSchema = (3, n0, _NLa, 0) @@ -16230,7 +16670,7 @@ 18, n0, _LPGAO, - {_sSI: _cLPGARo, _smith: None}, + {_sSI: _cLPGARo, _smithy: None}, (_pGAo, _nT), ((POLICY_GENERATION_ASSETS, 0), (NEXT_TOKEN, 0)), ) @@ -16240,7 +16680,7 @@ n0, _LPGA, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets", @@ -16262,7 +16702,7 @@ 18, n0, _LPGI, - {_sSI: _cLPGR, _smit: None}, + {_sSI: _cLPGR, _smith: None}, (_nT, _mR, _pEI), ((NEXT_TOKEN, {_sQ: _nT}), (MAX_RESULTS, {_sQ: _mR}), (RESOURCE_ID, 9)), ) @@ -16293,7 +16733,7 @@ 18, n0, _LPGO, - {_sSI: _cLPGRo, _smith: None}, + {_sSI: _cLPGRo, _smithy: None}, (_pGo, _nT), ((POLICY_GENERATIONS, 1), (NEXT_TOKEN, 0)), ) @@ -16303,7 +16743,7 @@ n0, _LPG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-generations", @@ -16325,7 +16765,7 @@ 18, n0, _LPGSI, - {_sSI: _cLPGSR, _smit: None}, + {_sSI: _cLPGSR, _smith: None}, (_nT, _mR, _pEI), ((NEXT_TOKEN, {_sQ: _nT}), (MAX_RESULTS, {_sQ: _mR}), (RESOURCE_ID, 9)), ) @@ -16362,7 +16802,7 @@ 18, n0, _LPGSO, - {_sSI: _cLPGSRo, _smith: None}, + {_sSI: _cLPGSRo, _smithy: None}, (_pGo, _nT), ((POLICY_GENERATION_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -16372,7 +16812,7 @@ n0, _LPGS, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-generation-summaries", @@ -16397,7 +16837,7 @@ 18, n0, _SPGI, - {_sSI: _cSPGR, _smit: None}, + {_sSI: _cSPGR, _smith: None}, (_pEI, _resou, _cont, _n, _cT), ( (RESOURCE_ID, 9), @@ -16412,7 +16852,7 @@ 18, n0, _SPGO, - {_sSI: _cSPGRo, _smith: None}, + {_sSI: _cSPGRo, _smithy: None}, (_pEI, _pGI, _n, _pGA, _resou, _cA, _uA, _st, _fin, _sRta), ( (RESOURCE_ID, 1), @@ -16433,7 +16873,7 @@ n0, _SPG, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/policy-engines/{policyEngineId}/policy-generations", @@ -16458,7 +16898,7 @@ 14, n0, _EM, - {_smithya: _ACTIVE}, + {_smi: _ACTIVE}, (_ACTIVE, _LO), ((-1, {_sVm: _ACTIVE}), (-1, {_sVm: _LO})), ) @@ -16469,7 +16909,7 @@ 14, n0, _PVM, - {_smithya: _FOAF}, + {_smi: _FOAF}, (_FOAF, _IAF), ((-1, {_sVm: _FOAF}), (-1, {_sVm: _IAF})), ) @@ -16478,14 +16918,14 @@ 18, n0, _CPIr, - {_sSI: _cCPR, _smit: None}, + {_sSI: _cCPR, _smith: None}, (_n, _de, _d, _vM, _eM, _pEI, _cT), ( (POLICY_NAME, 1), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), - (POLICY_VALIDATION_MODE, {_smithya: _FOAF}), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (POLICY_VALIDATION_MODE, {_smi: _FOAF}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (RESOURCE_ID, 9), (CLIENT_TOKEN, 2), ), @@ -16514,7 +16954,7 @@ 18, n0, _CPOr, - {_sSI: _cCPRo, _smith: None}, + {_sSI: _cCPRo, _smithy: None}, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM, _de, _d, _sRta), ( (RESOURCE_ID, 1), @@ -16524,7 +16964,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), (POLICY_STATUS_REASONS, 1), @@ -16536,7 +16976,7 @@ n0, _CPre, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/policy-engines/{policyEngineId}/policies", @@ -16561,7 +17001,7 @@ 18, n0, _DPI, - {_sSI: _cDPR, _smit: None}, + {_sSI: _cDPR, _smith: None}, (_pEI, _pIo), ((RESOURCE_ID, 9), (RESOURCE_ID, 9)), ) @@ -16570,7 +17010,7 @@ 18, n0, _DPO, - {_sSI: _cDPRo, _smith: None}, + {_sSI: _cDPRo, _smithy: None}, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM, _de, _d, _sRta), ( (RESOURCE_ID, 1), @@ -16580,7 +17020,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), (POLICY_STATUS_REASONS, 1), @@ -16592,7 +17032,7 @@ n0, _DP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "DELETE", "uri": "/policy-engines/{policyEngineId}/policies/{policyId}", @@ -16616,7 +17056,7 @@ 18, n0, _GPI, - {_sSI: _cGPR, _smit: None}, + {_sSI: _cGPR, _smith: None}, (_pEI, _pIo), ((RESOURCE_ID, 9), (RESOURCE_ID, 9)), ) @@ -16625,7 +17065,7 @@ 18, n0, _GPO, - {_sSI: _cGPRo, _smith: None}, + {_sSI: _cGPRo, _smithy: None}, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM, _de, _d, _sRta), ( (RESOURCE_ID, 1), @@ -16635,7 +17075,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), (POLICY_STATUS_REASONS, 1), @@ -16647,7 +17087,7 @@ n0, _GPe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policies/{policyId}", @@ -16670,7 +17110,7 @@ 18, n0, _GPSI, - {_sSI: _cGPSR, _smit: None}, + {_sSI: _cGPSR, _smith: None}, (_pEI, _pIo), ((RESOURCE_ID, 9), (RESOURCE_ID, 9)), ) @@ -16679,7 +17119,7 @@ 18, n0, _GPSO, - {_sSI: _cGPSRo, _smith: None}, + {_sSI: _cGPSRo, _smithy: None}, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM), ( (RESOURCE_ID, 1), @@ -16689,7 +17129,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), ), ) @@ -16698,7 +17138,7 @@ n0, _GPS, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-summaries/{policyId}", @@ -16721,7 +17161,7 @@ 18, n0, _LPI, - {_sSI: _cLPR, _smit: None}, + {_sSI: _cLPR, _smith: None}, (_nT, _mR, _pEI, _tRS), ( (NEXT_TOKEN, {_sQ: _nT}), @@ -16734,7 +17174,7 @@ POLICY: StaticSchema = ( 18, n0, - _Po, + _Pol, 0, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM, _de, _d, _sRta), ( @@ -16745,21 +17185,21 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), (POLICY_STATUS_REASONS, 1), ), ) -POLICIES: StaticSchema = (16, n0, _Pol, 0, (_mem,), ((POLICY, 0),)) +POLICIES: StaticSchema = (16, n0, _Poli, 0, (_mem,), ((POLICY, 0),)) LIST_POLICIES_OUTPUT: StaticSchema = ( 18, n0, _LPO, - {_sSI: _cLPRo, _smith: None}, - (_pol, _nT), + {_sSI: _cLPRo, _smithy: None}, + (_poli, _nT), ((POLICIES, 1), (NEXT_TOKEN, 0)), ) @@ -16768,7 +17208,7 @@ n0, _LPi, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policies", @@ -16791,7 +17231,7 @@ 18, n0, _LPSI, - {_sSI: _cLPSR, _smit: None}, + {_sSI: _cLPSR, _smith: None}, (_nT, _mR, _pEI, _tRS), ( (NEXT_TOKEN, {_sQ: _nT}), @@ -16815,7 +17255,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), ), ) @@ -16825,8 +17265,8 @@ 18, n0, _LPSO, - {_sSI: _cLPSRo, _smith: None}, - (_pol, _nT), + {_sSI: _cLPSRo, _smithy: None}, + (_poli, _nT), ((POLICY_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -16835,7 +17275,7 @@ n0, _LPS, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/policy-engines/{policyEngineId}/policy-summaries", @@ -16858,15 +17298,15 @@ 18, n0, _UPI, - {_sSI: _cUPR, _smit: None}, + {_sSI: _cUPR, _smith: None}, (_pEI, _pIo, _d, _de, _vM, _eM), ( (RESOURCE_ID, 9), (RESOURCE_ID, 9), (UPDATED_DESCRIPTION, 0), (POLICY_DEFINITION, 0), - (POLICY_VALIDATION_MODE, {_smithya: _FOAF}), - (ENFORCEMENT_MODE, {_smithya: None}), + (POLICY_VALIDATION_MODE, {_smi: _FOAF}), + (ENFORCEMENT_MODE, {_smi: None}), ), ) @@ -16874,7 +17314,7 @@ 18, n0, _UPOp, - {_sSI: _cUPRo, _smith: None}, + {_sSI: _cUPRo, _smithy: None}, (_pIo, _n, _pEI, _cA, _uA, _pAo, _st, _eM, _de, _d, _sRta), ( (RESOURCE_ID, 1), @@ -16884,7 +17324,7 @@ (DATE_TIMESTAMP, 1), (POLICY_ARN, 1), (POLICY_STATUS, 1), - (ENFORCEMENT_MODE, {_smithya: _ACTIVE}), + (ENFORCEMENT_MODE, {_smi: _ACTIVE}), (POLICY_DEFINITION, 1), (DESCRIPTION, 0), (POLICY_STATUS_REASONS, 1), @@ -16896,7 +17336,7 @@ n0, _UPp, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "PATCH", "uri": "/policy-engines/{policyEngineId}/policies/{policyId}", @@ -16921,8 +17361,8 @@ 18, n0, _PRPI, - {_sSI: _cPRPR, _smit: None}, - (_rAe, _po), + {_sSI: _cPRPR, _smith: None}, + (_rAe, _pol), ((BEDROCK_AGENTCORE_RESOURCE_ARN, 9), (RESOURCE_POLICY_BODY, 1)), ) @@ -16930,8 +17370,8 @@ 18, n0, _PRPO, - {_sSI: _cPRPRo, _smith: None}, - (_po,), + {_sSI: _cPRPRo, _smithy: None}, + (_pol,), ((RESOURCE_POLICY_BODY, 1),), ) @@ -16940,7 +17380,7 @@ n0, _PRP, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 201, "method": "PUT", "uri": "/resourcepolicy/{resourceArn}"} ) }, @@ -17125,7 +17565,7 @@ 18, n0, _CRRI, - {_sSI: _cCRRR, _smit: None}, + {_sSI: _cCRRR, _smith: None}, (_rIe, _n, _d, _dT, _des, _rVe, _sTy, _sCy, _cT), ( (REGISTRY_IDENTIFIER, 9), @@ -17165,7 +17605,7 @@ 18, n0, _CRRO, - {_sSI: _cCRRRo, _smith: None}, + {_sSI: _cCRRRo, _smithy: None}, (_rAec, _st), ((REGISTRY_RECORD_ARN, 1), (REGISTRY_RECORD_STATUS, 1)), ) @@ -17175,7 +17615,7 @@ n0, _CRR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "POST", "uri": "/registries/{registryId}/records", "code": 202} ) }, @@ -17198,7 +17638,7 @@ 18, n0, _DRRI, - {_sSI: _cDRRR, _smit: None}, + {_sSI: _cDRRR, _smith: None}, (_rIe, _rIec), ((REGISTRY_IDENTIFIER, 9), (RECORD_IDENTIFIER, 9)), ) @@ -17207,7 +17647,7 @@ 18, n0, _DRRO, - {_sSI: _cDRRRo, _smith: None}, + {_sSI: _cDRRRo, _smithy: None}, ) DELETE_REGISTRY_RECORD: StaticOperationSchema = ( @@ -17215,7 +17655,7 @@ n0, _DRR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "DELETE", "uri": "/registries/{registryId}/records/{recordId}", @@ -17239,7 +17679,7 @@ 18, n0, _GRRI, - {_sSI: _cGRRR, _smit: None}, + {_sSI: _cGRRR, _smith: None}, (_rIe, _rIec), ((REGISTRY_IDENTIFIER, 9), (RECORD_IDENTIFIER, 9)), ) @@ -17252,7 +17692,7 @@ 18, n0, _GRRO, - {_sSI: _cGRRRo, _smith: None}, + {_sSI: _cGRRRo, _smithy: None}, (_rAeg, _rAec, _rIec, _n, _d, _dT, _des, _rVe, _st, _cA, _uA, _sRt, _sTy, _sCy), ( (REGISTRY_ARN, 1), @@ -17277,7 +17717,7 @@ n0, _GRR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "GET", "uri": "/registries/{registryId}/records/{recordId}", @@ -17301,7 +17741,7 @@ 18, n0, _LRRI, - {_sSI: _cLRRR, _smit: None}, + {_sSI: _cLRRR, _smith: None}, (_rIe, _mR, _nT, _n, _st, _dT), ( (REGISTRY_IDENTIFIER, 9), @@ -17346,7 +17786,7 @@ 18, n0, _LRRO, - {_sSI: _cLRRRo, _smith: None}, + {_sSI: _cLRRRo, _smithy: None}, (_rR, _nT), ((REGISTRY_RECORD_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -17356,7 +17796,7 @@ n0, _LRR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"method": "GET", "uri": "/registries/{registryId}/records", "code": 200} ) }, @@ -17376,7 +17816,7 @@ 18, n0, _SRRFAI, - {_sSI: _cSRRFAR, _smit: None}, + {_sSI: _cSRRFAR, _smith: None}, (_rIe, _rIec), ((REGISTRY_IDENTIFIER, 9), (RECORD_IDENTIFIER, 9)), ) @@ -17385,7 +17825,7 @@ 18, n0, _SRRFAO, - {_sSI: _cSRRFARo, _smith: None}, + {_sSI: _cSRRFARo, _smithy: None}, (_rAeg, _rAec, _rIec, _st, _uA), ( (REGISTRY_ARN, 1), @@ -17401,7 +17841,7 @@ n0, _SRRFA, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "POST", "uri": "/registries/{registryId}/records/{recordId}/submit-for-approval", @@ -17446,7 +17886,7 @@ n0, _UASDF, 0, - (_sM, _sD), + (_sMk, _sD), ((UPDATED_SKILL_MD_DEFINITION, 0), (UPDATED_SKILL_DEFINITION, 0)), ) @@ -17549,7 +17989,7 @@ 18, n0, _URRI, - {_sSI: _cURRR, _smit: None}, + {_sSI: _cURRR, _smith: None}, (_rIe, _rIec, _n, _d, _dT, _des, _rVe, _sTy, _sCy, _tSr), ( (REGISTRY_IDENTIFIER, 9), @@ -17569,7 +18009,7 @@ 18, n0, _URRO, - {_sSI: _cURRRo, _smith: None}, + {_sSI: _cURRRo, _smithy: None}, (_rAeg, _rAec, _rIec, _n, _d, _dT, _des, _rVe, _st, _cA, _uA, _sRt, _sTy, _sCy), ( (REGISTRY_ARN, 1), @@ -17594,7 +18034,7 @@ n0, _URR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "PATCH", "uri": "/registries/{registryId}/records/{recordId}", @@ -17618,7 +18058,7 @@ 18, n0, _URRSI, - {_sSI: _cURRSR, _smit: None}, + {_sSI: _cURRSR, _smith: None}, (_rIe, _rIec, _st, _sRt), ( (REGISTRY_IDENTIFIER, 9), @@ -17632,7 +18072,7 @@ 18, n0, _URRSO, - {_sSI: _cURRSRo, _smith: None}, + {_sSI: _cURRSRo, _smithy: None}, (_rAeg, _rAec, _rIec, _st, _sRt, _uA), ( (REGISTRY_ARN, 1), @@ -17649,7 +18089,7 @@ n0, _URRS, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "method": "PATCH", "uri": "/registries/{registryId}/records/{recordId}/status", @@ -17669,14 +18109,7 @@ ), ) -APPROVAL_CONFIGURATION: StaticSchema = ( - 18, - n0, - _ACp, - 0, - (_aAu,), - ((2, {_smithya: False}),), -) +APPROVAL_CONFIGURATION: StaticSchema = (18, n0, _ACp, 0, (_aAu,), ((2, {_smi: False}),)) REGISTRY_AUTHORIZER_TYPE: StaticSchema = ( 14, @@ -17693,7 +18126,7 @@ 18, n0, _CRIr, - {_sSI: _cCRR, _smit: None}, + {_sSI: _cCRR, _smith: None}, (_n, _d, _aT, _aCu, _cT, _aCp), ( (REGISTRY_NAME, 1), @@ -17709,7 +18142,7 @@ 18, n0, _CROr, - {_sSI: _cCRRo, _smith: None}, + {_sSI: _cCRRo, _smithy: None}, (_rAeg,), ((REGISTRY_ARN, 1),), ) @@ -17718,7 +18151,7 @@ 23, n0, _CR, - {_smithy: MappingProxyType({"code": 202, "method": "POST", "uri": "/registries"})}, + {_smithya: MappingProxyType({"code": 202, "method": "POST", "uri": "/registries"})}, CREATE_REGISTRY_INPUT, CREATE_REGISTRY_OUTPUT, ( @@ -17735,7 +18168,7 @@ 18, n0, _DRI, - {_sSI: _cDRR, _smit: None}, + {_sSI: _cDRR, _smith: None}, (_rIe,), ((REGISTRY_IDENTIFIER, 9),), ) @@ -17761,7 +18194,7 @@ 18, n0, _DRO, - {_sSI: _cDRRo, _smith: None}, + {_sSI: _cDRRo, _smithy: None}, (_st,), ((REGISTRY_STATUS, 1),), ) @@ -17771,7 +18204,7 @@ n0, _DR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "DELETE", "uri": "/registries/{registryId}"} ) }, @@ -17791,7 +18224,7 @@ 18, n0, _GRIe, - {_sSI: _cGRR, _smit: None}, + {_sSI: _cGRR, _smith: None}, (_rIe,), ((REGISTRY_IDENTIFIER, 9),), ) @@ -17802,7 +18235,7 @@ 18, n0, _GRO, - {_sSI: _cGRRo, _smith: None}, + {_sSI: _cGRRo, _smithy: None}, (_n, _d, _rIe, _rAeg, _aT, _aCu, _aCp, _st, _sRt, _cA, _uA), ( (REGISTRY_NAME, 1), @@ -17824,7 +18257,7 @@ n0, _GRe, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 200, "method": "GET", "uri": "/registries/{registryId}"} ) }, @@ -17843,7 +18276,7 @@ 18, n0, _LRI, - {_sSI: _cLRR, _smit: None}, + {_sSI: _cLRR, _smith: None}, (_mR, _nT, _st, _aT), ( (MAX_RESULTS, {_sQ: _mR}), @@ -17885,7 +18318,7 @@ 18, n0, _LRO, - {_sSI: _cLRRo, _smith: None}, + {_sSI: _cLRRo, _smithy: None}, (_regi, _nT), ((REGISTRY_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), ) @@ -17894,7 +18327,7 @@ 23, n0, _LR, - {_smithy: MappingProxyType({"code": 200, "method": "GET", "uri": "/registries"})}, + {_smithya: MappingProxyType({"code": 200, "method": "GET", "uri": "/registries"})}, LIST_REGISTRIES_INPUT, LIST_REGISTRIES_OUTPUT, ( @@ -17918,7 +18351,7 @@ 18, n0, _URI, - {_sSI: _cURR, _smit: None}, + {_sSI: _cURR, _smith: None}, (_rIe, _n, _d, _aCu, _aCp), ( (REGISTRY_IDENTIFIER, 9), @@ -17933,7 +18366,7 @@ 18, n0, _URO, - {_sSI: _cURRo, _smith: None}, + {_sSI: _cURRo, _smithy: None}, (_n, _d, _rIe, _rAeg, _aT, _aCu, _aCp, _st, _sRt, _cA, _uA), ( (REGISTRY_NAME, 1), @@ -17955,7 +18388,7 @@ n0, _UR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 202, "method": "PATCH", "uri": "/registries/{registryId}"} ) }, @@ -17972,6 +18405,46 @@ ), ) +RESET_TOKEN_VAULT_KEY_MATERIAL_INPUT: StaticSchema = ( + 18, + n0, + _RTVKMI, + {_sSI: _cRTVKMR, _smith: None}, + (_tVI,), + ((TOKEN_VAULT_ID_TYPE, 1),), +) + +RESET_TOKEN_VAULT_KEY_MATERIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _RTVKMO, + {_sSI: _cRTVKMRo, _smithy: None}, + (_tVI, _kC, _lMD), + ((TOKEN_VAULT_ID_TYPE, 1), (KMS_CONFIGURATION, 1), (4, 1)), +) + +RESET_TOKEN_VAULT_KEY_MATERIAL: StaticOperationSchema = ( + 23, + n0, + _RTVKM, + { + _smithya: MappingProxyType( + {"uri": "/identities/reset-token-vault-key-material", "method": "POST"} + ) + }, + RESET_TOKEN_VAULT_KEY_MATERIAL_INPUT, + RESET_TOKEN_VAULT_KEY_MATERIAL_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + THROTTLING_EXCEPTION, + UNAUTHORIZED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + CONCURRENT_MODIFICATION_EXCEPTION: StaticSchema = ( 18, n0, @@ -17985,7 +18458,7 @@ 18, n0, _STVCMKI, - {_sSI: _cSTVCMKR, _smit: None}, + {_sSI: _cSTVCMKR, _smith: None}, (_tVI, _kC), ((TOKEN_VAULT_ID_TYPE, 0), (KMS_CONFIGURATION, 1)), ) @@ -17994,7 +18467,7 @@ 18, n0, _STVCMKO, - {_sSI: _cSTVCMKRo, _smith: None}, + {_sSI: _cSTVCMKRo, _smithy: None}, (_tVI, _kC, _lMD), ((TOKEN_VAULT_ID_TYPE, 1), (KMS_CONFIGURATION, 1), (4, 1)), ) @@ -18004,7 +18477,7 @@ n0, _STVCMK, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/set-token-vault-cmk", "method": "POST"} ) }, @@ -18013,6 +18486,7 @@ ( ACCESS_DENIED_EXCEPTION, CONCURRENT_MODIFICATION_EXCEPTION, + CONFLICT_EXCEPTION, INTERNAL_SERVER_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION, THROTTLING_EXCEPTION, @@ -18025,19 +18499,19 @@ 18, n0, _TRI, - {_sSI: _cTRR, _smit: None}, + {_sSI: _cTRR, _smith: None}, (_rAe, _t), ((TAGGABLE_RESOURCES_ARN, 9), (TAGS_MAP, 1)), ) -TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _cTRRo, _smith: None}) +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _cTRRo, _smithy: None}) TAG_RESOURCE: StaticOperationSchema = ( 23, n0, _TR, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 204, "method": "POST", "uri": "/tags/{resourceArn}"} ) }, @@ -18059,19 +18533,19 @@ 18, n0, _URIn, - {_sSI: _cURRom, _smit: None}, + {_sSI: _cURRom, _smith: None}, (_rAe, _tKa), ((TAGGABLE_RESOURCES_ARN, 9), (TAG_KEY_LIST, {_sQ: _tKa, _sm: None})), ) -UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _UROn, {_sSI: _cURRoma, _smith: None}) +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _UROn, {_sSI: _cURRoma, _smithy: None}) UNTAG_RESOURCE: StaticOperationSchema = ( 23, n0, _URn, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 204, "method": "DELETE", "uri": "/tags/{resourceArn}"} ) }, @@ -18101,7 +18575,7 @@ 18, n0, _CWII, - {_sSI: _cCWIR, _smit: None}, + {_sSI: _cCWIR, _smith: None}, (_n, _aRORU, _t), ( (WORKLOAD_IDENTITY_NAME_TYPE, 1), @@ -18116,7 +18590,7 @@ 18, n0, _CWIO, - {_sSI: _cCWIRo, _smith: None}, + {_sSI: _cCWIRo, _smithy: None}, (_n, _wIA, _aRORU), ( (WORKLOAD_IDENTITY_NAME_TYPE, 1), @@ -18130,7 +18604,7 @@ n0, _CWI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 201, "uri": "/identities/CreateWorkloadIdentity", "method": "POST"} ) }, @@ -18138,6 +18612,7 @@ CREATE_WORKLOAD_IDENTITY_OUTPUT, ( ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, INTERNAL_SERVER_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION, THROTTLING_EXCEPTION, @@ -18150,7 +18625,7 @@ 18, n0, _DWII, - {_sSI: _cDWIR, _smit: None}, + {_sSI: _cDWIR, _smith: None}, (_n,), ((WORKLOAD_IDENTITY_NAME_TYPE, 1),), ) @@ -18159,7 +18634,7 @@ 18, n0, _DWIO, - {_sSI: _cDWIRo, _smith: None}, + {_sSI: _cDWIRo, _smithy: None}, ) DELETE_WORKLOAD_IDENTITY: StaticOperationSchema = ( @@ -18167,7 +18642,7 @@ n0, _DWI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"code": 204, "uri": "/identities/DeleteWorkloadIdentity", "method": "POST"} ) }, @@ -18187,7 +18662,7 @@ 18, n0, _GWII, - {_sSI: _cGWIR, _smit: None}, + {_sSI: _cGWIR, _smith: None}, (_n,), ((WORKLOAD_IDENTITY_NAME_TYPE, 1),), ) @@ -18196,7 +18671,7 @@ 18, n0, _GWIO, - {_sSI: _cGWIRo, _smith: None}, + {_sSI: _cGWIRo, _smithy: None}, (_n, _wIA, _aRORU, _cTr, _lUT), ( (WORKLOAD_IDENTITY_NAME_TYPE, 1), @@ -18212,7 +18687,7 @@ n0, _GWI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/GetWorkloadIdentity", "method": "POST"} ) }, @@ -18232,9 +18707,9 @@ 18, n0, _LWII, - {_sSI: _cLWIR, _smit: None}, + {_sSI: _cLWIR, _smith: None}, (_nT, _mR), - ((3, 0), (7, {_smithya: 10})), + ((3, 0), (7, {_smi: 10})), ) WORKLOAD_IDENTITY_TYPE: StaticSchema = ( @@ -18259,7 +18734,7 @@ 18, n0, _LWIO, - {_sSI: _cLWIRo, _smith: None}, + {_sSI: _cLWIRo, _smithy: None}, (_wI, _nT), ((WORKLOAD_IDENTITY_LIST, 1), (3, 0)), ) @@ -18269,7 +18744,7 @@ n0, _LWI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/ListWorkloadIdentities", "method": "POST"} ) }, @@ -18289,7 +18764,7 @@ 18, n0, _UWII, - {_sSI: _cUWIR, _smit: None}, + {_sSI: _cUWIR, _smith: None}, (_n, _aRORU), ((WORKLOAD_IDENTITY_NAME_TYPE, 1), (RESOURCE_OAUTH2_RETURN_URL_LIST_TYPE, 0)), ) @@ -18298,7 +18773,7 @@ 18, n0, _UWIO, - {_sSI: _cUWIRo, _smith: None}, + {_sSI: _cUWIRo, _smithy: None}, (_n, _wIA, _aRORU, _cTr, _lUT), ( (WORKLOAD_IDENTITY_NAME_TYPE, 1), @@ -18314,7 +18789,7 @@ n0, _UWI, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( {"uri": "/identities/UpdateWorkloadIdentity", "method": "POST"} ) }, @@ -18322,6 +18797,7 @@ UPDATE_WORKLOAD_IDENTITY_OUTPUT, ( ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, INTERNAL_SERVER_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION, THROTTLING_EXCEPTION, @@ -18416,7 +18892,7 @@ 18, n0, _CGTI, - {_sSI: _cCGTR, _smit: None}, + {_sSI: _cCGTR, _smith: None}, (_gI, _n, _d, _cT, _tCa, _cPCr, _mC, _pE, _cCe), ( (GATEWAY_IDENTIFIER, 9), @@ -18435,7 +18911,7 @@ 18, n0, _CGTO, - {_sSI: _cCGTRo, _smith: None}, + {_sSI: _cCGTRo, _smithy: None}, ( _gA, _tI, @@ -18451,7 +18927,7 @@ _mC, _pE, _pEMR, - _aD, + _aDu, _pTr, _cCe, ), @@ -18496,7 +18972,7 @@ _mC, _pE, _pEMR, - _aD, + _aDu, _pTr, _cCe, ), @@ -18525,7 +19001,7 @@ 18, n0, _GGTO, - {_sSI: _cGGTRo, _smith: None}, + {_sSI: _cGGTRo, _smithy: None}, ( _gA, _tI, @@ -18541,7 +19017,7 @@ _mC, _pE, _pEMR, - _aD, + _aDu, _pTr, _cCe, ), @@ -18570,7 +19046,7 @@ 18, n0, _UGTI, - {_sSI: _cUGTR, _smit: None}, + {_sSI: _cUGTR, _smith: None}, (_gI, _tI, _n, _d, _tCa, _cPCr, _mC, _pE, _cCe), ( (GATEWAY_IDENTIFIER, 9), @@ -18589,7 +19065,7 @@ 18, n0, _UGTO, - {_sSI: _cUGTRo, _smith: None}, + {_sSI: _cUGTRo, _smithy: None}, ( _gA, _tI, @@ -18605,7 +19081,7 @@ _mC, _pE, _pEMR, - _aD, + _aDu, _pTr, _cCe, ), @@ -18635,7 +19111,7 @@ n0, _GGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 200, "method": "GET", @@ -18660,7 +19136,7 @@ 18, n0, _SGTO, - {_sSI: _cSGTRo, _smith: None}, + {_sSI: _cSGTRo, _smithy: None}, (_tar,), ((GATEWAY_TARGET_LIST, 0),), ) @@ -18670,7 +19146,7 @@ n0, _SGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PUT", @@ -18696,7 +19172,7 @@ n0, _CGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "POST", @@ -18722,7 +19198,7 @@ n0, _UGT, { - _smithy: MappingProxyType( + _smithya: MappingProxyType( { "code": 202, "method": "PUT", diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/client.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/client.py index 1b0df6b1..354c2799 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/client.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/client.py @@ -294,6 +294,8 @@ ListWorkloadIdentitiesOutput, PutResourcePolicyInput, PutResourcePolicyOutput, + ResetTokenVaultKeyMaterialInput, + ResetTokenVaultKeyMaterialOutput, RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, SetTokenVaultCMKInput, @@ -3449,6 +3451,46 @@ async def put_resource_policy( """ return await self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + async def reset_token_vault_key_material( + self, + input: ResetTokenVaultKeyMaterialInput, + plugins: list[Plugin] | None = None, + ) -> ResetTokenVaultKeyMaterialOutput: + """ + Resets the key material for a token vault whose customer managed KMS key + has been deleted, and re-encrypts the token vault with an Amazon Web + Services managed key so that you can use the token vault again. + + Warning: + This operation can't be undone. The reset permanently deletes the + OAuth2 access tokens and refresh tokens stored in the token vault, + including tokens obtained through all supported flows. After the reset, + your agents must complete these flows again to get new tokens, and for + user-delegated flows your users must authorize access again. The reset + doesn't delete your credential providers or their configuration. + + You can reset a token vault only if its customer managed key has been + deleted. If the key still exists, including when it's disabled or + scheduled for deletion, this operation returns a `ValidationException`. + To use the token vault again, enable the key or cancel its scheduled + deletion in KMS. To switch to a different key, use `SetTokenVaultCMK`. + + Args: + input: + An instance of `ResetTokenVaultKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetTokenVaultKeyMaterialOutput`. + """ + return await self._invoke( + input, _models.RESET_TOKEN_VAULT_KEY_MATERIAL, [], plugins + ) + async def rotate_payment_connector_credentials( self, input: RotatePaymentConnectorCredentialsInput, @@ -3861,6 +3903,11 @@ async def update_gateway( """ Updates an existing gateway. + Replaces the entire gateway configuration. Any optional field that you + omit, including fields in `protocolConfiguration`, is reset. For + information about retrieving the current configuration, see + [GetGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetGateway.html). + Args: input: An instance of `UpdateGatewayInput`. diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/config.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/config.py index bae760e6..5c771428 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/config.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/aio/config.py @@ -323,6 +323,8 @@ ListWorkloadIdentitiesOutput, PutResourcePolicyInput, PutResourcePolicyOutput, + ResetTokenVaultKeyMaterialInput, + ResetTokenVaultKeyMaterialOutput, RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, SetTokenVaultCMKInput, @@ -674,6 +676,9 @@ ListWorkloadIdentitiesInput, ListWorkloadIdentitiesOutput, Any, Any ], Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[ + ResetTokenVaultKeyMaterialInput, ResetTokenVaultKeyMaterialOutput, Any, Any + ], Interceptor[ RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/client.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/client.py index b43c7241..86128aa7 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/client.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/client.py @@ -294,6 +294,8 @@ ListWorkloadIdentitiesOutput, PutResourcePolicyInput, PutResourcePolicyOutput, + ResetTokenVaultKeyMaterialInput, + ResetTokenVaultKeyMaterialOutput, RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, SetTokenVaultCMKInput, @@ -3445,6 +3447,44 @@ def put_resource_policy( """ return self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + def reset_token_vault_key_material( + self, + input: ResetTokenVaultKeyMaterialInput, + plugins: list[Plugin] | None = None, + ) -> ResetTokenVaultKeyMaterialOutput: + """ + Resets the key material for a token vault whose customer managed KMS key + has been deleted, and re-encrypts the token vault with an Amazon Web + Services managed key so that you can use the token vault again. + + Warning: + This operation can't be undone. The reset permanently deletes the + OAuth2 access tokens and refresh tokens stored in the token vault, + including tokens obtained through all supported flows. After the reset, + your agents must complete these flows again to get new tokens, and for + user-delegated flows your users must authorize access again. The reset + doesn't delete your credential providers or their configuration. + + You can reset a token vault only if its customer managed key has been + deleted. If the key still exists, including when it's disabled or + scheduled for deletion, this operation returns a `ValidationException`. + To use the token vault again, enable the key or cancel its scheduled + deletion in KMS. To switch to a different key, use `SetTokenVaultCMK`. + + Args: + input: + An instance of `ResetTokenVaultKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetTokenVaultKeyMaterialOutput`. + """ + return self._invoke(input, _models.RESET_TOKEN_VAULT_KEY_MATERIAL, [], plugins) + def rotate_payment_connector_credentials( self, input: RotatePaymentConnectorCredentialsInput, @@ -3851,6 +3891,11 @@ def update_gateway( """ Updates an existing gateway. + Replaces the entire gateway configuration. Any optional field that you + omit, including fields in `protocolConfiguration`, is reset. For + information about retrieving the current configuration, see + [GetGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetGateway.html). + Args: input: An instance of `UpdateGatewayInput`. diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/config.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/config.py index 82c96614..fca4a883 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/config.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/config.py @@ -318,6 +318,8 @@ ListWorkloadIdentitiesOutput, PutResourcePolicyInput, PutResourcePolicyOutput, + ResetTokenVaultKeyMaterialInput, + ResetTokenVaultKeyMaterialOutput, RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, SetTokenVaultCMKInput, @@ -669,6 +671,9 @@ ListWorkloadIdentitiesInput, ListWorkloadIdentitiesOutput, Any, Any ], Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[ + ResetTokenVaultKeyMaterialInput, ResetTokenVaultKeyMaterialOutput, Any, Any + ], Interceptor[ RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.py b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.py index 9fb368c8..d2569676 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.py +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.py @@ -41,6 +41,10 @@ class ServiceError(ModeledError): "AgentRuntimeStatus": "AGENT_RUNTIME_STATUS", "AgentRuntimeVersionSummary": "AGENT_RUNTIME_VERSION_SUMMARY", "AgentSkillsDescriptor": "AGENT_SKILLS_DESCRIPTOR", + "AllowedPort": "ALLOWED_PORT", + "AllowedPortPort": "ALLOWED_PORT", + "AllowedPortPortRange": "ALLOWED_PORT", + "AllowedPortUnknown": "ALLOWED_PORT", "AllowedWorkloadConfiguration": "ALLOWED_WORKLOAD_CONFIGURATION", "ApiGatewayTargetConfiguration": "API_GATEWAY_TARGET_CONFIGURATION", "ApiGatewayToolConfiguration": "API_GATEWAY_TOOL_CONFIGURATION", @@ -77,6 +81,7 @@ class ServiceError(ModeledError): "BrowserSigningConfigOutput": "BROWSER_SIGNING_CONFIG_OUTPUT", "BrowserStatus": "BROWSER_STATUS", "BrowserSummary": "BROWSER_SUMMARY", + "BuildLifecycleHooks": "BUILD_LIFECYCLE_HOOKS", "CapacityProviderConfiguration": "CAPACITY_PROVIDER_CONFIGURATION", "CapacityProviderStatus": "CAPACITY_PROVIDER_STATUS", "CapacityProviderStatusCode": "CAPACITY_PROVIDER_STATUS_CODE", @@ -95,6 +100,8 @@ class ServiceError(ModeledError): "CertificateLocation": "CERTIFICATE_LOCATION", "CertificateLocationSecretsManager": "CERTIFICATE_LOCATION", "CertificateLocationUnknown": "CERTIFICATE_LOCATION", + "CircuitBreakerConfiguration": "CIRCUIT_BREAKER_CONFIGURATION", + "CircuitBreakerMode": "CIRCUIT_BREAKER_MODE", "ClaimMatchOperatorType": "CLAIM_MATCH_OPERATOR_TYPE", "ClaimMatchValueType": "CLAIM_MATCH_VALUE_TYPE", "ClaimMatchValueTypeMatchValueString": "CLAIM_MATCH_VALUE_TYPE", @@ -128,6 +135,7 @@ class ServiceError(ModeledError): "Condition": "CONDITION", "ConditionMatchPrincipals": "CONDITION", "ConditionMatchPaths": "CONDITION", + "ConditionMatchModels": "CONDITION", "ConditionUnknown": "CONDITION", "ConfigurationBundleAction": "CONFIGURATION_BUNDLE_ACTION", "ConfigurationBundleActionStaticOverride": "CONFIGURATION_BUNDLE_ACTION", @@ -348,6 +356,11 @@ class ServiceError(ModeledError): "DerivedEvaluatorConfig": "DERIVED_EVALUATOR_CONFIG", "Descriptors": "DESCRIPTORS", "DescriptorType": "DESCRIPTOR_TYPE", + "DimensionRatingScale": "DIMENSION_RATING_SCALE", + "DimensionRatingScaleNumerical": "DIMENSION_RATING_SCALE", + "DimensionRatingScaleCategorical": "DIMENSION_RATING_SCALE", + "DimensionRatingScaleUnknown": "DIMENSION_RATING_SCALE", + "DomainOverride": "DOMAIN_OVERRIDE", "DraftStatus": "DRAFT_STATUS", "EbsVolumeConfiguration": "EBS_VOLUME_CONFIGURATION", "EbsVolumeType": "EBS_VOLUME_TYPE", @@ -369,6 +382,7 @@ class ServiceError(ModeledError): "EpisodicReflectionConfiguration": "EPISODIC_REFLECTION_CONFIGURATION", "EpisodicReflectionConfigurationInput": "EPISODIC_REFLECTION_CONFIGURATION_INPUT", "EpisodicReflectionOverride": "EPISODIC_REFLECTION_OVERRIDE", + "EvaluationDimension": "EVALUATION_DIMENSION", "EvaluatorConfig": "EVALUATOR_CONFIG", "EvaluatorConfigLlmAsAJudge": "EVALUATOR_CONFIG", "EvaluatorConfigCodeBased": "EVALUATOR_CONFIG", @@ -393,6 +407,10 @@ class ServiceError(ModeledError): "ExtractionConfigurationCustomExtractionConfiguration": "EXTRACTION_CONFIGURATION", "ExtractionConfigurationUnknown": "EXTRACTION_CONFIGURATION", "ExtractionType": "EXTRACTION_TYPE", + "Fallback": "FALLBACK", + "FallbackError": "FALLBACK_ERROR", + "FallbackTarget": "FALLBACK_TARGET", + "FallbackTriggers": "FALLBACK_TRIGGERS", "FilesystemConfiguration": "FILESYSTEM_CONFIGURATION", "FilesystemConfigurationSessionStorage": "FILESYSTEM_CONFIGURATION", "FilesystemConfigurationS3FilesAccessPoint": "FILESYSTEM_CONFIGURATION", @@ -564,6 +582,10 @@ class ServiceError(ModeledError): "HarnessOpenAiApiFormat": "HARNESS_OPEN_AI_API_FORMAT", "HarnessOpenAiModelConfig": "HARNESS_OPEN_AI_MODEL_CONFIG", "HarnessRemoteMcpConfig": "HARNESS_REMOTE_MCP_CONFIG", + "HarnessRemoteMcpOutboundAuth": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthAwsIam": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthNone": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthUnknown": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", "HarnessSkill": "HARNESS_SKILL", "HarnessSkillPath": "HARNESS_SKILL", "HarnessSkillS3": "HARNESS_SKILL", @@ -601,6 +623,7 @@ class ServiceError(ModeledError): "HttpApiSchemaConfiguration": "HTTP_API_SCHEMA_CONFIGURATION", "HttpConnectorSource": "HTTP_CONNECTOR_SOURCE", "HttpConnectorTargetConfiguration": "HTTP_CONNECTOR_TARGET_CONFIGURATION", + "HttpPostLifecycleHookAction": "HTTP_POST_LIFECYCLE_HOOK_ACTION", "HttpTargetConfiguration": "HTTP_TARGET_CONFIGURATION", "HttpTargetConfigurationAgentcoreRuntime": "HTTP_TARGET_CONFIGURATION", "HttpTargetConfigurationPassthrough": "HTTP_TARGET_CONFIGURATION", @@ -651,6 +674,10 @@ class ServiceError(ModeledError): "LaunchTemplateSourceUnknown": "LAUNCH_TEMPLATE_SOURCE", "LicenseSpecification": "LICENSE_SPECIFICATION", "LifecycleConfiguration": "LIFECYCLE_CONFIGURATION", + "LifecycleHook": "LIFECYCLE_HOOK", + "LifecycleHookAction": "LIFECYCLE_HOOK_ACTION", + "LifecycleHookActionHttpPost": "LIFECYCLE_HOOK_ACTION", + "LifecycleHookActionUnknown": "LIFECYCLE_HOOK_ACTION", "LimitEntry": "LIMIT_ENTRY", "LinkedinOauth2ProviderConfigInput": "LINKEDIN_OAUTH2_PROVIDER_CONFIG_INPUT", "LinkedinOauth2ProviderConfigOutput": "LINKEDIN_OAUTH2_PROVIDER_CONFIG_OUTPUT", @@ -739,6 +766,9 @@ class ServiceError(ModeledError): "LlmExtractionConfig": "LLM_EXTRACTION_CONFIG", "ManagedResourceDetails": "MANAGED_RESOURCE_DETAILS", "ManagedVpcResource": "MANAGED_VPC_RESOURCE", + "MatchModelEntry": "MATCH_MODEL_ENTRY", + "MatchModels": "MATCH_MODELS", + "MatchOperator": "MATCH_OPERATOR", "MatchPaths": "MATCH_PATHS", "MatchPrincipalEntry": "MATCH_PRINCIPAL_ENTRY", "MatchPrincipalEntryIamPrincipal": "MATCH_PRINCIPAL_ENTRY", @@ -837,6 +867,8 @@ class ServiceError(ModeledError): "Oauth2ProviderConfigOutputUnknown": "OAUTH2_PROVIDER_CONFIG_OUTPUT", "OAuthCredentialProvider": "O_AUTH_CREDENTIAL_PROVIDER", "OAuthGrantType": "O_AUTH_GRANT_TYPE", + "OnBehalfOfAuthenticationConfig": "ON_BEHALF_OF_AUTHENTICATION_CONFIG", + "OnBehalfOfClientAuthenticationMethod": "ON_BEHALF_OF_CLIENT_AUTHENTICATION_METHOD", "OnBehalfOfTokenExchangeConfigType": "ON_BEHALF_OF_TOKEN_EXCHANGE_CONFIG_TYPE", "OnBehalfOfTokenExchangeGrantTypeType": "ON_BEHALF_OF_TOKEN_EXCHANGE_GRANT_TYPE_TYPE", "OnlineEvaluationConfigStatus": "ONLINE_EVALUATION_CONFIG_STATUS", @@ -886,6 +918,7 @@ class ServiceError(ModeledError): "PolicyStatus": "POLICY_STATUS", "PolicySummary": "POLICY_SUMMARY", "PolicyValidationMode": "POLICY_VALIDATION_MODE", + "PortRange": "PORT_RANGE", "PrincipalMatchOperator": "PRINCIPAL_MATCH_OPERATOR", "PrivateEndpoint": "PRIVATE_ENDPOINT", "PrivateEndpointSelfManagedLatticeResource": "PRIVATE_ENDPOINT", @@ -905,8 +938,14 @@ class ServiceError(ModeledError): "RatingScale": "RATING_SCALE", "RatingScaleNumerical": "RATING_SCALE", "RatingScaleCategorical": "RATING_SCALE", + "RatingScaleMultiDimensional": "RATING_SCALE", "RatingScaleUnknown": "RATING_SCALE", "ReasoningConfiguration": "REASONING_CONFIGURATION", + "RecordExpiryAction": "RECORD_EXPIRY_ACTION", + "RecordExpirySpecification": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationRecordExpiryDurationDays": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationAction": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationUnknown": "RECORD_EXPIRY_SPECIFICATION", "RecordingConfig": "RECORDING_CONFIG", "ReflectionConfiguration": "REFLECTION_CONFIGURATION", "ReflectionConfigurationCustomReflectionConfiguration": "REFLECTION_CONFIGURATION", @@ -929,9 +968,12 @@ class ServiceError(ModeledError): "RequestHeaderConfiguration": "REQUEST_HEADER_CONFIGURATION", "RequestHeaderConfigurationRequestHeaderAllowlist": "REQUEST_HEADER_CONFIGURATION", "RequestHeaderConfigurationUnknown": "REQUEST_HEADER_CONFIGURATION", + "ResetTokenVaultKeyMaterialInput": "RESET_TOKEN_VAULT_KEY_MATERIAL_INPUT", + "ResetTokenVaultKeyMaterialOutput": "RESET_TOKEN_VAULT_KEY_MATERIAL_OUTPUT", "Resource": "RESOURCE", "ResourceArn": "RESOURCE", "ResourceUnknown": "RESOURCE", + "ResourceConfiguration": "RESOURCE_CONFIGURATION", "ResourceLimitExceededException": "RESOURCE_LIMIT_EXCEEDED_EXCEPTION", "ResourceLocation": "RESOURCE_LOCATION", "ResourceLocationS3": "RESOURCE_LOCATION", @@ -949,6 +991,7 @@ class ServiceError(ModeledError): "RouteToTargetActionWeightedRoute": "ROUTE_TO_TARGET_ACTION", "RouteToTargetActionUnknown": "ROUTE_TO_TARGET_ACTION", "Rule": "RULE", + "RuntimeHooksConfiguration": "RUNTIME_HOOKS_CONFIGURATION", "RuntimeMetadataConfiguration": "RUNTIME_METADATA_CONFIGURATION", "RuntimeTargetConfiguration": "RUNTIME_TARGET_CONFIGURATION", "S3CertificateConfiguration": "S3_CERTIFICATE_CONFIGURATION", @@ -1184,6 +1227,7 @@ class ServiceError(ModeledError): "AgentRuntimeStatus", "AgentRuntimeVersionSummary", "AgentSkillsDescriptor", + "AllowedPort", "AllowedWorkloadConfiguration", "ApiGatewayTargetConfiguration", "ApiGatewayToolConfiguration", @@ -1213,6 +1257,7 @@ class ServiceError(ModeledError): "BrowserSigningConfigOutput", "BrowserStatus", "BrowserSummary", + "BuildLifecycleHooks", "CapacityProviderConfiguration", "CapacityProviderStatus", "CapacityProviderStatusCode", @@ -1226,6 +1271,8 @@ class ServiceError(ModeledError): "Certificate", "CertificateConfiguration", "CertificateLocation", + "CircuitBreakerConfiguration", + "CircuitBreakerMode", "ClaimMatchOperatorType", "ClaimMatchValueType", "ClientAuthenticationMethodType", @@ -1418,6 +1465,8 @@ class ServiceError(ModeledError): "DerivedEvaluatorConfig", "DescriptorType", "Descriptors", + "DimensionRatingScale", + "DomainOverride", "DraftStatus", "EbsVolumeConfiguration", "EbsVolumeType", @@ -1439,6 +1488,7 @@ class ServiceError(ModeledError): "EpisodicReflectionConfiguration", "EpisodicReflectionConfigurationInput", "EpisodicReflectionOverride", + "EvaluationDimension", "EvaluatorConfig", "EvaluatorLevel", "EvaluatorModelConfig", @@ -1450,6 +1500,10 @@ class ServiceError(ModeledError): "ExtractionConfig", "ExtractionConfiguration", "ExtractionType", + "Fallback", + "FallbackError", + "FallbackTarget", + "FallbackTriggers", "FilesystemConfiguration", "Filter", "FilterOperator", @@ -1582,6 +1636,7 @@ class ServiceError(ModeledError): "HarnessOpenAiApiFormat", "HarnessOpenAiModelConfig", "HarnessRemoteMcpConfig", + "HarnessRemoteMcpOutboundAuth", "HarnessSkill", "HarnessSkillAwsSkillsSource", "HarnessSkillGitAuth", @@ -1603,6 +1658,7 @@ class ServiceError(ModeledError): "HttpApiSchemaConfiguration", "HttpConnectorSource", "HttpConnectorTargetConfiguration", + "HttpPostLifecycleHookAction", "HttpTargetConfiguration", "IamCredentialProvider", "IamPrincipal", @@ -1640,6 +1696,8 @@ class ServiceError(ModeledError): "LaunchTemplateSource", "LicenseSpecification", "LifecycleConfiguration", + "LifecycleHook", + "LifecycleHookAction", "LimitEntry", "LinkedinOauth2ProviderConfigInput", "LinkedinOauth2ProviderConfigOutput", @@ -1729,6 +1787,9 @@ class ServiceError(ModeledError): "MCPGatewayConfiguration", "ManagedResourceDetails", "ManagedVpcResource", + "MatchModelEntry", + "MatchModels", + "MatchOperator", "MatchPaths", "MatchPrincipalEntry", "MatchPrincipals", @@ -1778,6 +1839,8 @@ class ServiceError(ModeledError): "Oauth2Discovery", "Oauth2ProviderConfigInput", "Oauth2ProviderConfigOutput", + "OnBehalfOfAuthenticationConfig", + "OnBehalfOfClientAuthenticationMethod", "OnBehalfOfTokenExchangeConfigType", "OnBehalfOfTokenExchangeGrantTypeType", "OnlineEvaluationConfigStatus", @@ -1817,6 +1880,7 @@ class ServiceError(ModeledError): "PolicyStatus", "PolicySummary", "PolicyValidationMode", + "PortRange", "PrincipalMatchOperator", "PrivateEndpoint", "PrivateEndpointOverride", @@ -1830,6 +1894,8 @@ class ServiceError(ModeledError): "RateConfig", "RatingScale", "ReasoningConfiguration", + "RecordExpiryAction", + "RecordExpirySpecification", "RecordingConfig", "ReflectionConfiguration", "RegistryAuthorizerType", @@ -1844,7 +1910,10 @@ class ServiceError(ModeledError): "RegistryStatus", "RegistrySummary", "RequestHeaderConfiguration", + "ResetTokenVaultKeyMaterialInput", + "ResetTokenVaultKeyMaterialOutput", "Resource", + "ResourceConfiguration", "ResourceLimitExceededException", "ResourceLocation", "ResourceNotFoundException", @@ -1857,6 +1926,7 @@ class ServiceError(ModeledError): "RotatePaymentConnectorCredentialsOutput", "RouteToTargetAction", "Rule", + "RuntimeHooksConfiguration", "RuntimeMetadataConfiguration", "RuntimeTargetConfiguration", "S3CertificateConfiguration", @@ -2190,6 +2260,7 @@ class ServiceError(ModeledError): "LIST_TAGS_FOR_RESOURCE", "LIST_WORKLOAD_IDENTITIES", "PUT_RESOURCE_POLICY", + "RESET_TOKEN_VAULT_KEY_MATERIAL", "ROTATE_PAYMENT_CONNECTOR_CREDENTIALS", "SET_TOKEN_VAULT_CMK", "START_POLICY_GENERATION", @@ -4300,11 +4371,26 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["RESET_TOKEN_VAULT_KEY_MATERIAL"] = ( + "RESET_TOKEN_VAULT_KEY_MATERIAL", + ( + "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException", + "com.amazonaws.bedrockagentcorecontrol#ConflictException", + "com.amazonaws.bedrockagentcorecontrol#InternalServerException", + "com.amazonaws.bedrockagentcorecontrol#ResourceNotFoundException", + "com.amazonaws.bedrockagentcorecontrol#ThrottlingException", + "com.amazonaws.bedrockagentcorecontrol#UnauthorizedException", + "com.amazonaws.bedrockagentcorecontrol#ValidationException", + ), + ("aws.auth#sigv4",), +) + _operation_data["SET_TOKEN_VAULT_CMK"] = ( "SET_TOKEN_VAULT_CMK", ( "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException", "com.amazonaws.bedrockagentcorecontrol#ConcurrentModificationException", + "com.amazonaws.bedrockagentcorecontrol#ConflictException", "com.amazonaws.bedrockagentcorecontrol#InternalServerException", "com.amazonaws.bedrockagentcorecontrol#ResourceNotFoundException", "com.amazonaws.bedrockagentcorecontrol#ThrottlingException", @@ -4343,6 +4429,7 @@ def __dir__(): "CREATE_WORKLOAD_IDENTITY", ( "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException", + "com.amazonaws.bedrockagentcorecontrol#ConflictException", "com.amazonaws.bedrockagentcorecontrol#InternalServerException", "com.amazonaws.bedrockagentcorecontrol#ResourceNotFoundException", "com.amazonaws.bedrockagentcorecontrol#ThrottlingException", @@ -4395,6 +4482,7 @@ def __dir__(): "UPDATE_WORKLOAD_IDENTITY", ( "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException", + "com.amazonaws.bedrockagentcorecontrol#ConflictException", "com.amazonaws.bedrockagentcorecontrol#InternalServerException", "com.amazonaws.bedrockagentcorecontrol#ResourceNotFoundException", "com.amazonaws.bedrockagentcorecontrol#ThrottlingException", diff --git a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.pyi b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.pyi index 5c330e1c..e7132762 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.pyi +++ b/clients/aws-sdk-bedrock-agentcore-control/src/aws_sdk_bedrock_agentcore_control/models.pyi @@ -300,6 +300,40 @@ class AgentSkillsDescriptor(_SerdeShape): skill_definition: SkillDefinition | None = ... """The structured skill definition with schema version and content.""" +@dataclass +class AllowedPortPort(_SerdeShape): + """A single port that is reachable through the runtime's session URL.""" + + value: int + +@dataclass +class AllowedPortPortRange(_SerdeShape): + """ + An inclusive range of ports that are reachable through the runtime's + session URL. + """ + + value: PortRange + +@dataclass +class AllowedPortUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +AllowedPort = Union[AllowedPortPort | AllowedPortPortRange | AllowedPortUnknown] +""" +A port or port range that is reachable through the runtime's session +URL. Specify exactly one of `port` or `portRange`. +""" + +class _AllowedPortDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> AllowedPort: ... + @dataclass(kw_only=True) class AllowedWorkloadConfiguration(_SerdeShape): """ @@ -813,6 +847,20 @@ class BrowserSummary(_SerdeShape): last_updated_at: datetime | None = ... """The timestamp when the browser was last updated.""" +@dataclass(kw_only=True) +class BuildLifecycleHooks(_SerdeShape): + """ + The lifecycle hooks that run when you create or update the AgentCore + Runtime, before any sessions are created. + """ + + warmup: LifecycleHook | None = ... + """ + The hook that warms up your agent before any sessions are created. Use + this hook to load the resources that your sessions need, such as models, + libraries, or caches. Your hook must complete within 120 seconds. + """ + @dataclass(kw_only=True) class CapacityProviderConfiguration(_SerdeShape): """ @@ -1026,12 +1074,12 @@ CertificateConfiguration = Union[ | CertificateConfigurationUnknown ] """ -A reference to a private certificate authority (CA) certificate that the -gateway uses to verify TLS connections to the target endpoint. Use this -when the target presents a certificate issued by a private CA that is -not trusted by default. Specify exactly one certificate source. The -configuration is a reference only and never contains the certificate -content. +A reference to a private certificate authority (CA) certificate that +AgentCore uses to verify TLS connections to an endpoint, such as a +gateway target or an identity provider, that presents a certificate +issued by a private CA that is not trusted by default. Specify exactly +one certificate source. The configuration is a reference only and never +contains the certificate content. """ class _CertificateConfigurationDeserializer: @@ -1063,6 +1111,23 @@ CertificateLocation = Union[ class _CertificateLocationDeserializer: def deserialize(self, deserializer: ShapeDeserializer) -> CertificateLocation: ... +@dataclass(kw_only=True) +class CircuitBreakerConfiguration(_SerdeShape): + """ + Specifies whether the circuit breaker monitors failures for the targets + in a fallback chain. + """ + + mode: str = ... + """ + Specifies whether you want the circuit breaker turned on. To turn it + off, set this value to `DISABLED`. The default is `ENABLED`. + """ + +class CircuitBreakerMode(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + class ClaimMatchOperatorType(UnknownEnumMixin, StrEnum): EQUALS = "EQUALS" CONTAINS = "CONTAINS" @@ -1499,6 +1564,12 @@ class ConditionMatchPaths(_SerdeShape): value: MatchPaths +@dataclass +class ConditionMatchModels(_SerdeShape): + """A condition that matches on the model requested in an inference request.""" + + value: MatchModels + @dataclass class ConditionUnknown(_SerdeShape): """ @@ -1509,10 +1580,15 @@ class ConditionUnknown(_SerdeShape): tag: str -Condition = Union[ConditionMatchPrincipals | ConditionMatchPaths | ConditionUnknown] +Condition = Union[ + ConditionMatchPrincipals + | ConditionMatchPaths + | ConditionMatchModels + | ConditionUnknown +] """ A condition that determines when a gateway rule applies. Conditions can -match on principals or request paths. +match on principals, request paths, or the requested model. """ class _ConditionDeserializer: @@ -1936,11 +2012,18 @@ class CreateAgentRuntimeInput(_SerdeShape): """ protocol_configuration: ProtocolConfiguration | None = ... """ - The protocol configuration for an agent runtime. This structure defines - how the agent runtime communicates with clients. + The protocol configuration for the AgentCore Runtime, including the + protocol, port, and path on which the agent server is available. """ lifecycle_configuration: LifecycleConfiguration | None = ... """The life cycle configuration for the AgentCore Runtime.""" + hooks_configuration: RuntimeHooksConfiguration | None = ... + """ + The lifecycle hooks configuration for the AgentCore Runtime. Use + lifecycle hooks to run actions in the agent's container at fixed points + in the runtime's lifecycle, such as warming up the agent before + sessions are created. + """ environment_variables: dict[str, str] | None = ... """Environment variables to set in the AgentCore Runtime environment.""" filesystem_configurations: list[FilesystemConfiguration] | None = ... @@ -1964,6 +2047,19 @@ class CreateAgentRuntimeInput(_SerdeShape): """ platform_version: str | None = ... """The version of the runtime platform to use for the AgentCore Runtime.""" + allowed_ports: list[AllowedPort] | None = ... + """ + The additional ports on the AgentCore Runtime that are reachable through + the runtime's session URL. Specify one to five non-overlapping entries, + each containing either a single port or an inclusive port range. Ports + must be between `8000` and `12000`, excluding the reserved port `8443`. + """ + resource_configurations: list[ResourceConfiguration] | None = ... + """ + The resource configurations for the AgentCore Runtime, such as the + minimum amount of memory to allocate to the runtime. You can specify at + most one resource configuration. + """ @dataclass(kw_only=True) class CreateAgentRuntimeOutput(_SerdeShape): @@ -2700,6 +2796,12 @@ class CreateGatewayInput(_SerdeShape): """ tags: dict[str, str] | None = ... """A map of key-value pairs to associate with the gateway as metadata tags.""" + domain_override: DomainOverride | None = ... + """ + The public domain names that the gateway advertises in its OAuth + discovery URLs instead of the inbound Host header. Specify this when + clients reach the gateway through your own proxy or custom domain. + """ @dataclass(kw_only=True) class CreateGatewayOutput(_SerdeShape): @@ -2770,6 +2872,11 @@ class CreateGatewayOutput(_SerdeShape): """ waf_configuration: WafConfiguration | None = ... """The Amazon Web Services WAF configuration for the gateway.""" + domain_override: DomainOverride | None = ... + """ + The public domain names that the gateway advertises in its OAuth + discovery URLs instead of the inbound Host header. + """ response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -3197,8 +3304,8 @@ class CreateMemoryInput(_SerdeShape): """ event_expiry_duration: int | None = ... """ - The duration after which memory events expire. Specified as an ISO 8601 - duration. + The number of days after which memory events expire, between 7 and 3650 + days. """ memory_strategies: list[MemoryStrategyInput] | None = ... """ @@ -3792,10 +3899,10 @@ class CreatePolicyInput(_SerdeShape): client_token: str | None = ... """ A unique, case-sensitive identifier to ensure the idempotency of the - request. The AWS SDK automatically generates this token, so you don't - need to provide it in most cases. If you retry a request with the same - client token, the service returns the same response without creating a - duplicate policy. + request. The Amazon Web Services SDK automatically generates this token, + so you don't need to provide it in most cases. If you retry a request + with the same client token, the service returns the same response + without creating a duplicate policy. """ @dataclass(kw_only=True) @@ -4558,6 +4665,16 @@ class CustomJWTAuthorizerConfiguration(_SerdeShape): The private endpoint overrides for the custom JWT authorizer configuration. """ + certificate_configurations: list[CertificateConfiguration] | None = ... + """ + The private certificate authority (CA) configurations for the identity + provider. Use this to have AgentCore Identity trust a private CA when + establishing TLS connections to identity provider endpoints. You can + specify only one certificate authority configuration in this list. + Provide the certificate by reference to an Amazon S3 object or an Amazon + Web Services Secrets Manager secret. You can use this only together with + `privateEndpoint`. + """ allowed_workload_configuration: AllowedWorkloadConfiguration | None = ... """ The configuration that restricts which workloads in the request's @@ -4586,6 +4703,14 @@ class CustomMemoryStrategyInput(_SerdeShape): """The configuration for the custom memory strategy.""" memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata fields on records generated by this strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) configuration for + memory records generated by this strategy. Set + `recordExpiryDurationDays` to the number of days after which records + expire. If not specified, records generated by this strategy do not + expire. + """ @dataclass(kw_only=True) class CustomOauth2ProviderConfigInput(_SerdeShape): @@ -4637,6 +4762,16 @@ class CustomOauth2ProviderConfigInput(_SerdeShape): The private endpoint overrides for the custom OAuth2 provider configuration. """ + certificate_configurations: list[CertificateConfiguration] | None = ... + """ + The private certificate authority (CA) configurations for the identity + provider. Use this to have AgentCore Identity trust a private CA when + establishing TLS connections to identity provider endpoints. You can + specify only one certificate authority configuration in this list. + Provide the certificate by reference to an Amazon S3 object or an Amazon + Web Services Secrets Manager secret. You can use this only together with + `privateEndpoint`. + """ @dataclass(kw_only=True) class CustomOauth2ProviderConfigOutput(_SerdeShape): @@ -4663,6 +4798,16 @@ class CustomOauth2ProviderConfigOutput(_SerdeShape): The private endpoint overrides for the custom OAuth2 provider configuration. """ + certificate_configurations: list[CertificateConfiguration] | None = ... + """ + The private certificate authority (CA) configurations for the identity + provider. Use this to have AgentCore Identity trust a private CA when + establishing TLS connections to identity provider endpoints. You can + specify only one certificate authority configuration in this list. + Provide the certificate by reference to an Amazon S3 object or an Amazon + Web Services Secrets Manager secret. You can use this only together with + `privateEndpoint`. + """ private_key_jwt_config: PrivateKeyJwtConfig | None = ... """ The configuration for private_key_jwt client authentication used by this @@ -5444,7 +5589,7 @@ class DeleteMemoryInput(_SerdeShape): """ A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a - unique AWS identifier. + unique Amazon Web Services identifier. """ memory_id: str | None = ... """The unique identifier of the memory to delete.""" @@ -5898,6 +6043,71 @@ class DescriptorType(UnknownEnumMixin, StrEnum): CUSTOM = "CUSTOM" AGENT_SKILLS = "AGENT_SKILLS" +@dataclass +class DimensionRatingScaleNumerical(_SerdeShape): + """ + The numerical rating scale with defined score values and descriptions + for quantitative evaluation of the dimension. + """ + + value: list[NumericalScaleDefinition] + +@dataclass +class DimensionRatingScaleCategorical(_SerdeShape): + """ + The categorical rating scale with named categories and definitions for + qualitative evaluation of the dimension. + """ + + value: list[CategoricalScaleDefinition] + +@dataclass +class DimensionRatingScaleUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +DimensionRatingScale = Union[ + DimensionRatingScaleNumerical + | DimensionRatingScaleCategorical + | DimensionRatingScaleUnknown +] +""" +The rating scale for one dimension of an LLM-as-a-judge evaluator, +supporting either a numerical or a categorical scale. +""" + +class _DimensionRatingScaleDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> DimensionRatingScale: ... + +@dataclass(kw_only=True) +class DomainOverride(_SerdeShape): + """ + The public domain names for a gateway that clients reach through your + own proxy or custom domain. When you configure a domain override, the + gateway advertises these domains instead of the inbound Host header in + the URLs that it returns for OAuth discovery, such as the protected + resource metadata and the `WWW-Authenticate` challenge. + """ + + default_domain: str + """ + The default public domain name for the gateway. The gateway advertises + this domain when a request doesn't select a specific domain. + """ + alternate_domains: list[str] | None = ... + """ + Additional public domain names for the gateway, up to 10. Don't repeat + the default domain or list a domain more than once. A request can select + one of these domains, or the default domain, with the + `x-amzn-bedrock-agentcore-gateway-domain` header. The gateway rejects a + request that selects a domain that isn't configured. + """ + class DraftStatus(UnknownEnumMixin, StrEnum): """Publish synchronization state of the DRAFT working copy.""" @@ -6200,6 +6410,14 @@ class EpisodicMemoryStrategyInput(_SerdeShape): """ memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata fields on records generated by this strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) configuration for + memory records generated by this strategy. Set + `recordExpiryDurationDays` to the number of days after which records + expire. If not specified, records generated by this strategy do not + expire. + """ @dataclass(kw_only=True) class EpisodicOverrideConfigurationInput(_SerdeShape): @@ -6363,6 +6581,31 @@ class EpisodicReflectionOverride(_SerdeShape): override. """ +@dataclass(kw_only=True) +class EvaluationDimension(_SerdeShape): + """ + A single dimension of an LLM-as-a-judge evaluator, defining what the + evaluator model should judge for that dimension and how it should be + scored. + """ + + dimension_name: str + """ + The name of the dimension. This name is unique within the evaluator and + identifies the dimension's results. + """ + dimension_instruction: str + """ + The instruction to the evaluator model for this dimension, describing + what the model should judge when scoring the dimension. + """ + dimension_rating_scale: DimensionRatingScale + """ + The rating scale for this dimension, which can be numerical or + categorical. A dimension's rating scale cannot itself be + multi-dimensional. + """ + @dataclass class EvaluatorConfigLlmAsAJudge(_SerdeShape): """ @@ -6607,6 +6850,148 @@ class ExtractionType(UnknownEnumMixin, StrEnum): LLM_INFERRED = "LLM_INFERRED" STRICTLY_CONSISTENT = "STRICTLY_CONSISTENT" +@dataclass(kw_only=True) +class Fallback(_SerdeShape): + """ + The fallback configuration for a route to an inference target. Defines + an ordered list of fallback targets to try when a request to the + route's target fails, and the conditions that trigger a fallback. A + fallback can occur only before the gateway sends the first byte of the + response to the caller. After a streaming response starts, the gateway + doesn't fall back. + """ + + trigger_on: FallbackTriggers | None = ... + """ + The status codes and errors from the route's target that cause the + gateway to send the request to the first fallback target. If you omit + `triggerOn`, the gateway falls back on `5XX` status codes and on the + `CONNECTION_ERROR`, `FIRST_BYTE_TIMEOUT`, and `UNROUTABLE` errors. If + you specify `triggerOn`, only the status codes and errors that you list + trigger a fallback. + """ + first_byte_timeout_milliseconds: int | None = ... + """ + The maximum time, in milliseconds, from sending the request to the + route's target until the first byte of the response body arrives. If + the time expires, the gateway abandons the request and treats it as a + `FIRST_BYTE_TIMEOUT` error. If you don't specify a value, no timeout is + enforced. + """ + circuit_breaker: CircuitBreakerConfiguration | None = ... + """ + Specifies whether the gateway temporarily stops sending your requests to + a failing target. The circuit breaker tracks each combination of target + and model separately. With the circuit breaker enabled, the gateway + skips one or more targets and models that fail repeatedly, and your + requests go to the next target in the chain. The gateway always tries + the last remaining target in the chain. The gateway enables the circuit + breaker by default. + """ + target_fallback: list[FallbackTarget] + """ + The ordered list of fallback targets. The gateway tries each target in + order until a response doesn't match that target's triggers, and + returns that response to the caller. If every target fails, the gateway + returns the last response. You can specify up to two fallback targets. + Each combination of target and model, including the route's target, can + appear only once. + """ + +class FallbackError(UnknownEnumMixin, StrEnum): + CONNECTION_ERROR = "CONNECTION_ERROR" + """ + The gateway could not establish a connection to the destination + (connection refused/reset, or connection timeout) --- the attempt never + reached the provider. Feeds the circuit breaker. + """ + FIRST_BYTE_TIMEOUT = "FIRST_BYTE_TIMEOUT" + """ + The destination accepted the connection but did not return the first + response byte within firstByteTimeoutMilliseconds; the attempt is + abandoned before any byte reaches the client. Feeds the circuit breaker. + """ + UNROUTABLE = "UNROUTABLE" + """ + Gateway-side: the target could not be routed to (target missing, or it + does not support the request's API path). Deterministic --- advances + the chain but does NOT feed the breaker. + """ + +@dataclass(kw_only=True) +class FallbackTarget(_SerdeShape): + """ + Specifies a target to send the request to when the previous target in + the fallback chain fails. Includes the target name, the model to send, + and the conditions that trigger a fallback from this target to the next + one. + """ + + target_name: str + """ + The name of the gateway target to fall back to. The target must be an + inference target. + """ + model: str | None = ... + """ + The model ID to send to this fallback target. If you don't specify a + model, the gateway sends the model from the original request. + """ + trigger_on: FallbackTriggers | None = ... + """ + The status codes and errors from this target that cause the gateway to + send the request to the next fallback target. This setting isn't + inherited from the route. If you omit it, the gateway uses the default + triggers: `5XX` status codes and the `CONNECTION_ERROR`, + `FIRST_BYTE_TIMEOUT`, and `UNROUTABLE` errors. + """ + first_byte_timeout_milliseconds: int | None = ... + """ + The maximum time, in milliseconds, from sending the request to this + target until the first byte of the response body arrives. This setting + isn't inherited from the route. If you don't specify a value, no + timeout is enforced. + """ + +@dataclass(kw_only=True) +class FallbackTriggers(_SerdeShape): + """ + The conditions that trigger a fallback to the next target. A fallback + occurs if the response matches any of the specified status codes or + errors. + """ + + status_codes: list[str] | None = ... + """ + The HTTP status codes returned by the target that trigger a fallback. + You can specify the following: + + - An exact status code -- A three-digit code, such as `429`. + + - A class of status codes -- The first digit followed by `XX`, such as + `5XX`, which matches every code from 500 to 599. + + Only 4XX and 5XX codes are supported. Throttling by the gateway itself + doesn't trigger a fallback. + """ + errors: list[str] | None = ... + """ + The errors that trigger a fallback. You can specify the following: + + - `CONNECTION_ERROR` -- The gateway couldn't connect to the target + because the connection was refused, reset, or timed out. The request + didn't reach the target. + + - `FIRST_BYTE_TIMEOUT` -- The target accepted the connection but didn't + return the first byte of the response within + `firstByteTimeoutMilliseconds`. The gateway abandons the request + before any of the response reaches you. + + - `UNROUTABLE` -- The gateway couldn't route the request to the target, + for example because the target doesn't exist or doesn't support the + request path. These errors don't count toward the circuit breaker. + """ + @dataclass class FilesystemConfigurationSessionStorage(_SerdeShape): """ @@ -7160,6 +7545,8 @@ class GetAgentRuntimeOutput(_SerdeShape): """The current status of the AgentCore Runtime.""" lifecycle_configuration: LifecycleConfiguration """The life cycle configuration for the AgentCore Runtime.""" + hooks_configuration: RuntimeHooksConfiguration | None = ... + """The lifecycle hooks configuration for the AgentCore Runtime.""" failure_reason: str | None = ... """The reason for failure if the AgentCore Runtime is in a failed state.""" description: str | None = ... @@ -7170,8 +7557,8 @@ class GetAgentRuntimeOutput(_SerdeShape): """The artifact of the AgentCore Runtime.""" protocol_configuration: ProtocolConfiguration | None = ... """ - The protocol configuration for an agent runtime. This structure defines - how the agent runtime communicates with clients. + The protocol configuration for the AgentCore Runtime, including the + protocol, port, and path on which the agent server is available. """ environment_variables: dict[str, str] | None = ... """Environment variables set in the AgentCore Runtime environment.""" @@ -7193,6 +7580,13 @@ class GetAgentRuntimeOutput(_SerdeShape): """The capacity provider configuration for the AgentCore Runtime.""" platform_version: str | None = ... """The version of the runtime platform used by the AgentCore Runtime.""" + allowed_ports: list[AllowedPort] | None = ... + """ + The additional ports on the AgentCore Runtime that are reachable through + the runtime's session URL. + """ + resource_configurations: list[ResourceConfiguration] | None = ... + """The resource configurations for the AgentCore Runtime.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -7838,6 +8232,11 @@ class GetGatewayOutput(_SerdeShape): """ waf_configuration: WafConfiguration | None = ... """The Amazon Web Services WAF configuration for the gateway.""" + domain_override: DomainOverride | None = ... + """ + The public domain names that the gateway advertises in its OAuth + discovery URLs instead of the inbound Host header. + """ response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -9177,10 +9576,10 @@ class HarnessAgentCoreRuntimeEnvironment(_SerdeShape): """The ID of the underlying AgentCore Runtime.""" lifecycle_configuration: LifecycleConfiguration """ - LifecycleConfiguration lets you manage the lifecycle of runtime sessions - and resources in AgentCore Runtime. This configuration helps optimize - resource utilization by automatically cleaning up idle sessions and - preventing long-running instances from consuming resources indefinitely. + The lifecycle configuration for the harness's runtime environment. For + a harness, `idleRuntimeSessionTimeout` and `maxLifetime` each accept a + value between 60 and 28800 seconds (8 hours), and + `idleRuntimeSessionTimeout` must be less than or equal to `maxLifetime`. """ network_configuration: NetworkConfiguration """SecurityConfig for the Agent.""" @@ -9193,10 +9592,11 @@ class HarnessAgentCoreRuntimeEnvironmentRequest(_SerdeShape): lifecycle_configuration: LifecycleConfiguration | None = ... """ - LifecycleConfiguration lets you manage the lifecycle of runtime sessions - and resources in AgentCore Runtime. This configuration helps optimize - resource utilization by automatically cleaning up idle sessions and - preventing long-running instances from consuming resources indefinitely. + The lifecycle configuration for the harness's runtime environment. For + a harness, `idleRuntimeSessionTimeout` and `maxLifetime` each accept a + value between 60 and 28800 seconds (8 hours), and + `idleRuntimeSessionTimeout` must be less than or equal to `maxLifetime`. + Values above 28800 seconds are rejected with a `ValidationException`. """ network_configuration: NetworkConfiguration | None = ... """SecurityConfig for the Agent.""" @@ -9398,7 +9798,13 @@ class HarnessGatewayOutboundAuthNone(_SerdeShape): @dataclass class HarnessGatewayOutboundAuthOauth(_SerdeShape): - """Use OAuth credentials for outbound authentication to the gateway.""" + """ + Use OAuth credentials for outbound authentication to the gateway. + + The `AUTHORIZATION_CODE` grant type is not supported for outbound + authentication from a harness to an AgentCore Gateway, even when + `defaultReturnUrl` is specified. + """ value: OAuthCredentialProvider @@ -9519,7 +9925,7 @@ class HarnessHookFailureMode(UnknownEnumMixin, StrEnum): @dataclass(kw_only=True) class HarnessHookLambdaTarget(_SerdeShape): - """The configuration for an AWS Lambda hook target.""" + """The configuration for an Amazon Web Services Lambda hook target.""" arn: str """The ARN of the Lambda function to invoke.""" @@ -9544,8 +9950,8 @@ class HarnessHookSnsTarget(_SerdeShape): @dataclass class HarnessHookTargetLambda(_SerdeShape): """ - A Lambda hook target that invokes an AWS Lambda function synchronously - and waits for its response. + A Lambda hook target that invokes an Amazon Web Services Lambda function + synchronously and waits for its response. """ value: HarnessHookLambdaTarget @@ -9647,8 +10053,8 @@ class HarnessManagedMemoryConfiguration(_SerdeShape): """Event retention in days. Defaults to 30.""" encryption_key_arn: str | None = ... """ - Customer-managed KMS key. Defaults to AWS-owned key. Not updatable after - creation. + Customer-managed KMS key. Defaults to Amazon Web Services-owned key. Not + updatable after creation. """ class HarnessManagedMemoryStrategyType(UnknownEnumMixin, StrEnum): @@ -9796,6 +10202,49 @@ class HarnessRemoteMcpConfig(_SerdeShape): """URL of the MCP endpoint.""" headers: dict[str, str] | None = ... """Custom headers to include when connecting to the remote MCP server.""" + outbound_auth: HarnessRemoteMcpOutboundAuth | None = ... + """ + How the harness authenticates to this MCP server. Defaults to no + authentication. + """ + +@dataclass +class HarnessRemoteMcpOutboundAuthAwsIam(_SerdeShape): + """ + Sign requests to the remote MCP server with Signature Version 4 (SigV4) + using the harness execution role. If you don't specify a Region, the + harness Region is used. + """ + + value: IamCredentialProvider + +@dataclass +class HarnessRemoteMcpOutboundAuthNone(_SerdeShape): + """No authentication.""" + + value: Unit + +@dataclass +class HarnessRemoteMcpOutboundAuthUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +HarnessRemoteMcpOutboundAuth = Union[ + HarnessRemoteMcpOutboundAuthAwsIam + | HarnessRemoteMcpOutboundAuthNone + | HarnessRemoteMcpOutboundAuthUnknown +] +"""Authentication method for calling a remote MCP server.""" + +class _HarnessRemoteMcpOutboundAuthDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> HarnessRemoteMcpOutboundAuth: ... @dataclass class HarnessSkillPath(_SerdeShape): @@ -9817,7 +10266,7 @@ class HarnessSkillGit(_SerdeShape): @dataclass class HarnessSkillAwsSkills(_SerdeShape): - """AWS Skills baked into the harness's underlying Runtime.""" + """Amazon Web Services Skills baked into the harness's underlying Runtime.""" value: HarnessSkillAwsSkillsSource @@ -9845,7 +10294,7 @@ class _HarnessSkillDeserializer: @dataclass(kw_only=True) class HarnessSkillAwsSkillsSource(_SerdeShape): - """Passed to show that AWS Skills should be included.""" + """Passed to show that Amazon Web Services Skills should be included.""" paths: list[str] | None = ... """ @@ -10152,6 +10601,28 @@ class HttpConnectorTargetConfiguration(_SerdeShape): runtime. """ +@dataclass(kw_only=True) +class HttpPostLifecycleHookAction(_SerdeShape): + """ + A lifecycle hook action that sends an HTTP `POST` request to the + agent's container. The path and port can't conflict with a path that + your agent already serves for AgentCore Runtime, such as the protocol's + invocation path or the health check path. + """ + + path: str + """ + The path in the agent's container that AgentCore Runtime sends the + `POST` request to. + """ + port: int | None = ... + """ + The port in the agent's container that AgentCore Runtime sends the + `POST` request to. If you don't specify a port, the default is the + runtime's server port: the port in the protocol configuration if one is + set, otherwise the protocol's default port. + """ + @dataclass class HttpTargetConfigurationAgentcoreRuntime(_SerdeShape): """ @@ -10806,6 +11277,49 @@ class LifecycleConfiguration(_SerdeShape): hours). """ +@dataclass(kw_only=True) +class LifecycleHook(_SerdeShape): + """ + A lifecycle hook, which defines the action that AgentCore Runtime runs + at a point in the runtime's lifecycle. + """ + + action: LifecycleHookAction + """ + The action that AgentCore Runtime runs for the hook. Specify exactly one + action. + """ + +@dataclass +class LifecycleHookActionHttpPost(_SerdeShape): + """ + Sends an HTTP `POST` request to your agent's container on the specified + port and path to run the hook. The hook succeeds if your container + returns a `2xx` response. The hook fails if your container returns any + other response or doesn't respond before the hook times out. + """ + + value: HttpPostLifecycleHookAction + +@dataclass +class LifecycleHookActionUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +LifecycleHookAction = Union[LifecycleHookActionHttpPost | LifecycleHookActionUnknown] +""" +The action that a lifecycle hook runs. Specify exactly one member. +Currently, `httpPost` is the only supported action. +""" + +class _LifecycleHookActionDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> LifecycleHookAction: ... + @dataclass(kw_only=True) class LimitEntry(_SerdeShape): """ @@ -12421,6 +12935,45 @@ class ManagedVpcResource(_SerdeShape): intermediate domain]. """ +@dataclass(kw_only=True) +class MatchModelEntry(_SerdeShape): + """ + A model ID or pattern to match against the requested model, and the + operator to use for the comparison. + """ + + value: str + """ + The model ID or pattern to match. With the `StringLike` operator, you + can use `*` and `?` as wildcards, for example `anthropic.claude-*`. + """ + operator: str = ... + """ + The operator to use when comparing the requested model to the value: + + - `StringEquals` -- Requires an exact match. + + - `StringLike` -- Supports wildcard patterns using `*` and `?`. This is + the default. + """ + +@dataclass(kw_only=True) +class MatchModels(_SerdeShape): + """ + A condition that matches inference requests based on the requested + model. + """ + + any_of: list[MatchModelEntry] + """ + A list of model entries. The condition is met if the requested model + matches any of the entries. + """ + +class MatchOperator(UnknownEnumMixin, StrEnum): + STRING_EQUALS = "StringEquals" + STRING_LIKE = "StringLike" + @dataclass(kw_only=True) class MatchPaths(_SerdeShape): """A condition that matches requests based on the request path.""" @@ -12522,11 +13075,13 @@ class MCPGatewayConfiguration(_SerdeShape): """ disable_mcp_list_tools_pagination: bool | None = ... """ - Specifies whether pagination is disabled for the Model Context Protocol - (MCP) `tools/list` operation. When set to `true`, the gateway returns - the complete list of tools in a single response without a pagination - cursor. When set to `false` or omitted, the gateway returns tools in - paginated responses. + Specifies whether the gateway disables pagination for the Model Context + Protocol (MCP) `tools/list` operation. When set to `true`, the gateway + returns the complete list of tools in a single response without a + pagination cursor. When set to `false` or omitted, the gateway returns + tools in paginated responses. For information about changing this value + on an existing gateway, see + [UpdateGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdateGateway.html). """ @dataclass(kw_only=True) @@ -12784,6 +13339,13 @@ class MemoryStrategy(_SerdeShape): """The current status of the memory strategy.""" memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata fields on records generated by this strategy.""" + record_expiry_duration_days: int | None = ... + """ + The effective record expiry (long-term memory time-to-live), in days, + for memory records generated by this strategy. New records expire this + many days after they are created. If not set, records generated by this + strategy do not expire. + """ @dataclass class MemoryStrategyInputSemanticMemoryStrategy(_SerdeShape): @@ -13092,6 +13654,15 @@ class ModifyMemoryStrategyInput(_SerdeShape): """The updated configuration for the memory strategy.""" memory_record_schema: MemoryRecordSchema | None = ... """Updated metadata schema for records generated by this strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + Updates or removes the record expiry (long-term memory time-to-live) for + this strategy. Set `recordExpiryDurationDays` to configure or update the + number of days after which records expire, or set `action` to `REMOVE` + to remove a previously configured time-to-live so that newer records no + longer expire. The change applies only to records created after the + update. + """ @dataclass class ModifyReflectionConfigurationEpisodicReflectionConfiguration(_SerdeShape): @@ -13534,6 +14105,23 @@ class OAuthGrantType(UnknownEnumMixin, StrEnum): AUTHORIZATION_CODE = "AUTHORIZATION_CODE" TOKEN_EXCHANGE = "TOKEN_EXCHANGE" +@dataclass(kw_only=True) +class OnBehalfOfAuthenticationConfig(_SerdeShape): + """ + Specifies the client authentication method to use for the on-behalf-of + token exchange. + """ + + client_authentication_method: str + """ + The client authentication method to use during the on-behalf-of token + exchange. The `NO_CLIENT` option omits the `clientId` and `clientSecret` + during the on-behalf-of token exchange with the identity provider. + """ + +class OnBehalfOfClientAuthenticationMethod(UnknownEnumMixin, StrEnum): + NO_CLIENT = "NO_CLIENT" + @dataclass(kw_only=True) class OnBehalfOfTokenExchangeConfigType(_SerdeShape): """Configuration for on-behalf-of token exchange.""" @@ -13542,6 +14130,14 @@ class OnBehalfOfTokenExchangeConfigType(_SerdeShape): """The grant type for the on-behalf-of token exchange.""" token_exchange_grant_type_config: TokenExchangeGrantTypeConfigType | None = ... """Configuration specific to the TOKEN_EXCHANGE grant type (RFC 8693).""" + on_behalf_of_authentication_config: OnBehalfOfAuthenticationConfig | None = ... + """ + Specify the client authentication configuration to use for the + on-behalf-of token exchange. With this configuration, you override the + provider level client authentication method for the on-behalf-of + exchange with the identity provider. If you don't specify this + configuration, we use the provider level client authentication method. + """ class OnBehalfOfTokenExchangeGrantTypeType(UnknownEnumMixin, StrEnum): TOKEN_EXCHANGE = "TOKEN_EXCHANGE" @@ -14406,6 +15002,18 @@ class PolicyValidationMode(UnknownEnumMixin, StrEnum): FAIL_ON_ANY_FINDINGS = "FAIL_ON_ANY_FINDINGS" IGNORE_ALL_FINDINGS = "IGNORE_ALL_FINDINGS" +@dataclass(kw_only=True) +class PortRange(_SerdeShape): + """ + An inclusive range of ports. The value of `from` must be less than or + equal to the value of `to`. + """ + + from_: int + """The first port in the inclusive range.""" + to: int + """The last port in the inclusive range.""" + class PrincipalMatchOperator(UnknownEnumMixin, StrEnum): STRING_EQUALS = "StringEquals" STRING_LIKE = "StringLike" @@ -14524,6 +15132,19 @@ class ProtocolConfiguration(_SerdeShape): The server protocol for the agent runtime. This field specifies which protocol the agent runtime uses to communicate with clients. """ + port: int | None = ... + """ + The port on which the agent server listens. The port must be between + `8000` and `12000`, excluding the reserved port `8443`. When this field + is omitted, the default is `8080` for `HTTP` and `AGUI`, `8000` for + `MCP`, and `9000` for `A2A`. + """ + path: str | None = ... + """ + The path on which the agent server accepts requests. The path must begin + with `/`. When this field is omitted, the default is `/invocations` for + `HTTP` and `AGUI`, `/mcp` for `MCP`, and `/` for `A2A`. + """ class Provider(UnknownEnumMixin, StrEnum): AWS = "AWS" @@ -14617,6 +15238,16 @@ class RatingScaleCategorical(_SerdeShape): value: list[CategoricalScaleDefinition] +@dataclass +class RatingScaleMultiDimensional(_SerdeShape): + """ + A list of dimensions that lets an LLM-as-a-judge evaluator score several + dimensions of the same target in a single evaluation. Each dimension has + its own instruction and rating scale, and produces its own result. + """ + + value: list[EvaluationDimension] + @dataclass class RatingScaleUnknown(_SerdeShape): """ @@ -14627,7 +15258,12 @@ class RatingScaleUnknown(_SerdeShape): tag: str -RatingScale = Union[RatingScaleNumerical | RatingScaleCategorical | RatingScaleUnknown] +RatingScale = Union[ + RatingScaleNumerical + | RatingScaleCategorical + | RatingScaleMultiDimensional + | RatingScaleUnknown +] """ The rating scale that defines how evaluators should score agent performance, supporting both numerical and categorical scales. @@ -14649,6 +15285,64 @@ class ReasoningConfiguration(_SerdeShape): response. For supported values, see the model provider's documentation. """ +class RecordExpiryAction(UnknownEnumMixin, StrEnum): + """ + The action to apply to a strategy's record expiry (long-term memory + time-to-live) configuration. `REMOVE` removes a previously configured + time-to-live; newer records no longer have a time-to-live set and do not + expire. + """ + + REMOVE = "REMOVE" + +@dataclass +class RecordExpirySpecificationRecordExpiryDurationDays(_SerdeShape): + """ + The duration, in days, after which memory records generated by this + strategy expire. The minimum is 31 days. + """ + + value: int + +@dataclass +class RecordExpirySpecificationAction(_SerdeShape): + """ + The action to apply to the existing record expiry (long-term memory + time-to-live) configuration. Set to `REMOVE` to remove a previously + configured time-to-live so that newer records no longer expire. This + value is not applicable on create paths. + """ + + value: str + +@dataclass +class RecordExpirySpecificationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +RecordExpirySpecification = Union[ + RecordExpirySpecificationRecordExpiryDurationDays + | RecordExpirySpecificationAction + | RecordExpirySpecificationUnknown +] +""" +Specifies the record expiry (long-term memory time-to-live) for a memory +strategy. Provide exactly one of `recordExpiryDurationDays` or `action`. +Set `recordExpiryDurationDays` to configure or update the time-to-live, +or set `action` to `REMOVE` to remove a previously configured +time-to-live. +""" + +class _RecordExpirySpecificationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> RecordExpirySpecification: ... + @dataclass(kw_only=True) class RecordingConfig(_SerdeShape): """ @@ -14941,6 +15635,37 @@ class _RequestHeaderConfigurationDeserializer: self, deserializer: ShapeDeserializer ) -> RequestHeaderConfiguration: ... +@dataclass(kw_only=True) +class ResetTokenVaultKeyMaterialInput(_SerdeShape): + """Dataclass for ResetTokenVaultKeyMaterialInput structure.""" + + token_vault_id: str | None = ... + """ + The unique identifier of the token vault to reset. To reset your + account's default token vault, specify `default`. + """ + +@dataclass(kw_only=True) +class ResetTokenVaultKeyMaterialOutput(_SerdeShape): + """Dataclass for ResetTokenVaultKeyMaterialOutput structure.""" + + token_vault_id: str + """The ID of the token vault.""" + kms_configuration: KmsConfiguration + """ + The KMS configuration for the token vault after the reset. The token + vault uses an Amazon Web Services managed key. + """ + last_modified_date: datetime + """The timestamp when the token vault was last modified.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass class ResourceArn(_SerdeShape): """ @@ -14971,6 +15696,16 @@ supported as resources for policy enforcement. class _ResourceDeserializer: def deserialize(self, deserializer: ShapeDeserializer) -> Resource: ... +@dataclass(kw_only=True) +class ResourceConfiguration(_SerdeShape): + """The resource configuration for an AgentCore Runtime.""" + + minimum_memory_in_mi_b: int + """ + The minimum amount of memory, in mebibytes, to allocate to the AgentCore + Runtime. + """ + @dataclass(kw_only=True) class ResourceLimitExceededException(ServiceError, _SerdeShape): """Exception thrown when a resource limit is exceeded.""" @@ -15215,6 +15950,19 @@ class Rule(_SerdeShape): when agent sessions are complete and ready for evaluation. """ +@dataclass(kw_only=True) +class RuntimeHooksConfiguration(_SerdeShape): + """ + The lifecycle hooks that AgentCore Runtime runs at fixed points in the + runtime's lifecycle. + """ + + build: BuildLifecycleHooks | None = ... + """ + The hooks that run when you create or update the AgentCore Runtime, + before any sessions are created. + """ + @dataclass(kw_only=True) class RuntimeMetadataConfiguration(_SerdeShape): """Configuration for microVM metadata service settings.""" @@ -15593,6 +16341,14 @@ class SemanticMemoryStrategyInput(_SerdeShape): """The namespaceTemplates associated with the semantic memory strategy.""" memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata on memory records generated by a strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) configuration for + memory records generated by this strategy. Set + `recordExpiryDurationDays` to the number of days after which records + expire. If not specified, records generated by this strategy do not + expire. + """ @dataclass(kw_only=True) class SemanticOverrideConfigurationInput(_SerdeShape): @@ -15835,10 +16591,10 @@ class StartPolicyGenerationInput(_SerdeShape): client_token: str | None = ... """ A unique, case-sensitive identifier to ensure the idempotency of the - request. The AWS SDK automatically generates this token, so you don't - need to provide it in most cases. If you retry a request with the same - client token, the service returns the same response without starting a - duplicate generation. + request. The Amazon Web Services SDK automatically generates this token, + so you don't need to provide it in most cases. If you retry a request + with the same client token, the service returns the same response + without starting a duplicate generation. """ @dataclass(kw_only=True) @@ -15909,6 +16665,17 @@ class StaticRoute(_SerdeShape): target_name: str """The name of the target to route requests to.""" + model: str | None = ... + """ + The model ID to send to the target. Supported only for inference + targets. If you don't specify a model, the gateway sends the model from + the original request. + """ + fallback: Fallback | None = ... + """ + The fallback configuration for this route. Supported only for inference + targets. + """ class Status(UnknownEnumMixin, StrEnum): CREATING = "CREATING" @@ -16187,6 +16954,14 @@ class SummaryMemoryStrategyInput(_SerdeShape): """The namespaceTemplates associated with the summary memory strategy.""" memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata fields on records generated by this strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) configuration for + memory records generated by this strategy. Set + `recordExpiryDurationDays` to the number of days after which records + expire. If not specified, records generated by this strategy do not + expire. + """ @dataclass(kw_only=True) class SummaryOverrideConfigurationInput(_SerdeShape): @@ -16388,12 +17163,23 @@ class TargetSummary(_SerdeShape): class TargetTrafficSplitEntry(_SerdeShape): """An entry in a target traffic split configuration.""" + target_name: str + """The name of the target to route traffic to.""" + model: str | None = ... + """ + The model ID to send to the target for this variant. Supported only for + inference targets. If you don't specify a model, the gateway sends the + model from the original request. + """ + fallback: Fallback | None = ... + """ + The fallback configuration for this variant. Supported only for + inference targets. + """ name: str """The name of this traffic split variant.""" weight: int """The percentage of traffic to route to this variant.""" - target_name: str - """The name of the target to route traffic to.""" description: str | None = ... """The description of this traffic split variant.""" metadata: dict[str, str] | None = ... @@ -16816,11 +17602,13 @@ class UpdateAgentRuntimeInput(_SerdeShape): """ protocol_configuration: ProtocolConfiguration | None = ... """ - The protocol configuration for an agent runtime. This structure defines - how the agent runtime communicates with clients. + The updated protocol configuration for the AgentCore Runtime, including + the protocol, port, and path on which the agent server is available. """ lifecycle_configuration: LifecycleConfiguration | None = ... """The updated life cycle configuration for the AgentCore Runtime.""" + hooks_configuration: RuntimeHooksConfiguration | None = ... + """The updated lifecycle hooks configuration for the AgentCore Runtime.""" metadata_configuration: RuntimeMetadataConfiguration | None = ... """ The updated configuration for microVM Metadata Service (MMDS) settings @@ -16843,6 +17631,19 @@ class UpdateAgentRuntimeInput(_SerdeShape): The updated version of the runtime platform to use for the AgentCore Runtime. """ + allowed_ports: list[AllowedPort] | None = ... + """ + The updated additional ports on the AgentCore Runtime that are reachable + through the runtime's session URL. Specify one to five non-overlapping + entries, each containing either a single port or an inclusive port + range. Ports must be between `8000` and `12000`, excluding the reserved + port `8443`. + """ + resource_configurations: list[ResourceConfiguration] | None = ... + """ + The updated resource configurations for the AgentCore Runtime. You can + specify at most one resource configuration. + """ client_token: str | None = ... """ A unique, case-sensitive identifier to ensure idempotency of the @@ -17541,6 +18342,12 @@ class UpdateGatewayInput(_SerdeShape): """ waf_configuration: WafConfiguration | None = ... """The updated Amazon Web Services WAF configuration for the gateway.""" + domain_override: DomainOverride | None = ... + """ + The updated public domain names that the gateway advertises in its OAuth + discovery URLs instead of the inbound Host header. Specify this when + clients reach the gateway through your own proxy or custom domain. + """ @dataclass(kw_only=True) class UpdateGatewayOutput(_SerdeShape): @@ -17608,6 +18415,11 @@ class UpdateGatewayOutput(_SerdeShape): """ waf_configuration: WafConfiguration | None = ... """The Amazon Web Services WAF configuration for the gateway.""" + domain_override: DomainOverride | None = ... + """ + The public domain names that the gateway advertises in its OAuth + discovery URLs instead of the inbound Host header. + """ response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -17982,7 +18794,7 @@ class UpdateMemoryInput(_SerdeShape): """ A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a - unique AWS identifier. + unique Amazon Web Services identifier. """ memory_id: str | None = ... """The unique identifier of the memory to update.""" @@ -17990,8 +18802,8 @@ class UpdateMemoryInput(_SerdeShape): """The updated description of the AgentCore Memory resource.""" event_expiry_duration: int | None = ... """ - The number of days after which memory events will expire, between 7 and - 365 days. + The number of days after which memory events expire, between 7 and 3650 + days. """ memory_execution_role_arn: str | None = ... """ @@ -18780,6 +19592,14 @@ class UserPreferenceMemoryStrategyInput(_SerdeShape): """ memory_record_schema: MemoryRecordSchema | None = ... """Schema for metadata fields on records generated by this strategy.""" + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) configuration for + memory records generated by this strategy. Set + `recordExpiryDurationDays` to the number of days after which records + expire. If not specified, records generated by this strategy do not + expire. + """ @dataclass(kw_only=True) class UserPreferenceOverrideConfigurationInput(_SerdeShape): @@ -19360,6 +20180,9 @@ LIST_WORKLOAD_IDENTITIES: APIOperation[ ListWorkloadIdentitiesInput, ListWorkloadIdentitiesOutput ] PUT_RESOURCE_POLICY: APIOperation[PutResourcePolicyInput, PutResourcePolicyOutput] +RESET_TOKEN_VAULT_KEY_MATERIAL: APIOperation[ + ResetTokenVaultKeyMaterialInput, ResetTokenVaultKeyMaterialOutput +] ROTATE_PAYMENT_CONNECTOR_CREDENTIALS: APIOperation[ RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput ] diff --git a/clients/aws-sdk-bedrock-agentcore-control/tests/_typecheck.py b/clients/aws-sdk-bedrock-agentcore-control/tests/_typecheck.py index ef70b368..4d9793a2 100644 --- a/clients/aws-sdk-bedrock-agentcore-control/tests/_typecheck.py +++ b/clients/aws-sdk-bedrock-agentcore-control/tests/_typecheck.py @@ -31,6 +31,7 @@ BrowserSigningConfigInput, BrowserSigningConfigOutput, BrowserSummary, + BuildLifecycleHooks, CapacityProviderConfiguration, CapacityProviderSummary, CapacityProviderVolumeConfiguration, @@ -39,6 +40,7 @@ CategoricalScaleDefinition, CedarPolicy, Certificate, + CircuitBreakerConfiguration, CloudWatchLogsInputConfig, CloudWatchOutputConfig, ClusteringConfig, @@ -192,6 +194,7 @@ DeleteWorkloadIdentityOutput, DerivedEvaluatorConfig, Descriptors, + DomainOverride, EbsVolumeConfiguration, Ec2Configuration, EfsAccessPointConfiguration, @@ -208,7 +211,11 @@ EpisodicReflectionConfiguration, EpisodicReflectionConfigurationInput, EpisodicReflectionOverride, + EvaluationDimension, EvaluatorSummary, + Fallback, + FallbackTarget, + FallbackTriggers, Filter, Finding, FromUrlSynchronizationConfiguration, @@ -331,6 +338,7 @@ HttpApiSchemaConfiguration, HttpConnectorSource, HttpConnectorTargetConfiguration, + HttpPostLifecycleHookAction, IamCredentialProvider, IamPrincipal, IncludedOauth2ProviderConfigInput, @@ -358,6 +366,7 @@ LaunchParameters, LicenseSpecification, LifecycleConfiguration, + LifecycleHook, LimitEntry, LinkedinOauth2ProviderConfigInput, LinkedinOauth2ProviderConfigOutput, @@ -446,6 +455,8 @@ MCPGatewayConfiguration, ManagedResourceDetails, ManagedVpcResource, + MatchModelEntry, + MatchModels, MatchPaths, MatchPrincipals, McpDescriptor, @@ -477,6 +488,7 @@ OAuthCredentialProvider, Oauth2AuthorizationServerMetadata, Oauth2CredentialProviderItem, + OnBehalfOfAuthenticationConfig, OnBehalfOfTokenExchangeConfigType, OnlineEvaluationConfigSummary, OpenResponsesEvaluatorModelConfig, @@ -496,6 +508,7 @@ PolicyGenerationSummary, PolicyStatement, PolicySummary, + PortRange, PrivateEndpointOverride, PrivateKeyJwtConfig, ProtocolConfiguration, @@ -510,10 +523,14 @@ RegistryRecordOAuthCredentialProvider, RegistryRecordSummary, RegistrySummary, + ResetTokenVaultKeyMaterialInput, + ResetTokenVaultKeyMaterialOutput, + ResourceConfiguration, RootVolumeConfiguration, RotatePaymentConnectorCredentialsInput, RotatePaymentConnectorCredentialsOutput, Rule, + RuntimeHooksConfiguration, RuntimeMetadataConfiguration, RuntimeTargetConfiguration, S3CertificateConfiguration, @@ -733,6 +750,7 @@ BrowserSigningConfigInput() BrowserSigningConfigOutput() BrowserSummary(browser_id=_, browser_arn=_, status=_, created_at=_) +BuildLifecycleHooks() CapacityProviderConfiguration() CapacityProviderSummary( capacity_provider_id=_, capacity_provider_arn=_, name=_, status=_, last_updated_at=_ @@ -743,6 +761,7 @@ CategoricalScaleDefinition(definition=_, label=_) CedarPolicy(statement=_) Certificate(location=_) +CircuitBreakerConfiguration() CloudWatchLogsInputConfig(service_names=_) CloudWatchOutputConfig() ClusteringConfig(frequencies=_) @@ -1049,6 +1068,7 @@ DeleteWorkloadIdentityOutput() DerivedEvaluatorConfig(base_evaluator_id=_, model_config=_) Descriptors() +DomainOverride(default_domain=_) EbsVolumeConfiguration(name=_, size_gi_b=_) Ec2Configuration(launch_template_source=_, vpc_configuration=_) EfsAccessPointConfiguration(access_point_arn=_, mount_path=_) @@ -1065,6 +1085,7 @@ EpisodicReflectionConfiguration() EpisodicReflectionConfigurationInput() EpisodicReflectionOverride(append_to_prompt=_, model_id=_) +EvaluationDimension(dimension_name=_, dimension_instruction=_, dimension_rating_scale=_) EvaluatorSummary( evaluator_arn=_, evaluator_id=_, @@ -1074,6 +1095,9 @@ created_at=_, updated_at=_, ) +Fallback(target_fallback=_) +FallbackTarget(target_name=_) +FallbackTriggers() Filter(key=_, operator=_, value=_) Finding() FromUrlSynchronizationConfiguration(url=_) @@ -1487,6 +1511,7 @@ HttpApiSchemaConfiguration(source=_) HttpConnectorSource(connector_id=_) HttpConnectorTargetConfiguration(source=_) +HttpPostLifecycleHookAction(path=_) IamCredentialProvider(service=_) IamPrincipal(arn=_) IncludedOauth2ProviderConfigInput(client_id=_) @@ -1514,6 +1539,7 @@ LaunchParameters(operating_system=_, instance_requirements=_) LicenseSpecification(license_configuration_arn=_) LifecycleConfiguration() +LifecycleHook(action=_) LimitEntry(dimensions=_) LinkedinOauth2ProviderConfigInput(client_id=_) LinkedinOauth2ProviderConfigOutput(oauth_discovery=_) @@ -1601,6 +1627,8 @@ LlmExtractionConfig(definition=_) ManagedResourceDetails() ManagedVpcResource(vpc_identifier=_, subnet_ids=_, endpoint_ip_address_type=_) +MatchModelEntry(value=_) +MatchModels(any_of=_) MatchPaths(any_of=_) MatchPrincipals(any_of=_) McpDescriptor() @@ -1641,6 +1669,7 @@ last_updated_time=_, ) OAuthCredentialProvider(provider_arn=_, scopes=_) +OnBehalfOfAuthenticationConfig(client_authentication_method=_) OnBehalfOfTokenExchangeConfigType(grant_type=_) OnlineEvaluationConfigSummary( online_evaluation_config_arn=_, @@ -1736,6 +1765,7 @@ policy_arn=_, status=_, ) +PortRange(from_=_, to=_) PrivateEndpointOverride(domain=_, private_endpoint=_) PrivateKeyJwtConfig() ProtocolConfiguration(server_protocol=_) @@ -1764,12 +1794,18 @@ RegistrySummary( name=_, registry_id=_, registry_arn=_, status=_, created_at=_, updated_at=_ ) +ResetTokenVaultKeyMaterialInput() +ResetTokenVaultKeyMaterialOutput( + token_vault_id=_, kms_configuration=_, last_modified_date=_ +) +ResourceConfiguration(minimum_memory_in_mi_b=_) RootVolumeConfiguration() RotatePaymentConnectorCredentialsInput() RotatePaymentConnectorCredentialsOutput( payment_connector_id=_, payment_manager_id=_, last_updated_at=_, status=_ ) Rule(sampling_config=_) +RuntimeHooksConfiguration() RuntimeMetadataConfiguration(require_mmdsv2=_) RuntimeTargetConfiguration(arn=_) S3CertificateConfiguration(uri=_) @@ -1845,7 +1881,7 @@ TagResourceInput() TagResourceOutput() TargetSummary(target_id=_, name=_, status=_, created_at=_, updated_at=_) -TargetTrafficSplitEntry(name=_, weight=_, target_name=_) +TargetTrafficSplitEntry(target_name=_, name=_, weight=_) TimeBasedTrigger() TimeBasedTriggerInput() TokenBasedTrigger() diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/_private/schemas.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/_private/schemas.py index 7025665e..8ee22c96 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/_private/schemas.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/_private/schemas.py @@ -251,6 +251,8 @@ _smithya = "smithy.api#streaming" _IARO = "InvokeAgentRuntimeOutput" _cIARRo = "com.amazonaws.bedrockagentcore#InvokeAgentRuntimeResponse" +_sEU = "sessionEndpointUrl" +_XABARSEU = "X-Amzn-Bedrock-AgentCore-Runtime-Session-Endpoint-Url" _res = "response" _smithyap = "smithy.api#default" _v = "" @@ -692,6 +694,7 @@ _eRI = "evaluationReferenceInputs" _EEC = "EvaluationErrorCode" _EEM = "EvaluationErrorMessage" +_EDN = "EvaluationDimensionName" _EA = "EvaluatorArn" _EN = "EvaluatorName" _EE = "EvaluationExplanation" @@ -703,6 +706,7 @@ _tT = "totalTokens" _ERC = "EvaluationResultContent" _eN = "evaluatorName" +_eDN = "evaluationDimensionName" _la = "label" _tU = "tokenUsage" _eMr = "errorMessage" @@ -788,6 +792,33 @@ _FCCL = "FailureCategoryClusterList" _FARC = "FailureAnalysisResultContent" _fa = "failures" +_ID = "InsightDescription" +_IN = "InsightName" +_RCEo = "RootCauseExplanation" +_RCN = "RootCauseName" +_FD = "FindingDescription" +_FTI = "FindingTargetId" +_FTT = "FindingTargetType" +_SI_ = "SPAN_ID" +_TI_ = "TRACE_ID" +_SN_ = "SPAN_NAME" +_SFe = "SessionFinding" +_tIa = "targetId" +_tTa = "targetType" +_SFL = "SessionFindingList" +_SS = "SampleSession" +_lSA = "lastSeenAt" +_fi = "findings" +_ISSL = "InsightSampleSessionList" +_SFu = "SuggestedFix" +_IRC = "InsightRootCause" +_sFu = "suggestedFix" +_sSa = "sampleSessions" +_IRCL = "InsightRootCauseList" +_IT = "InsightType" +_FAILURE = "FAILURE" +_IR = "InsightResult" +_IRL = "InsightResultList" _II = "InsightId" _I = "Insight" _iI = "insightId" @@ -821,6 +852,7 @@ _in = "insights" _dSC = "dataSourceConfig" _oC = "outputConfig" +_iR = "insightResults" _fAR = "failureAnalysisResult" _uIR = "userIntentResult" _eSR = "executionSummaryResult" @@ -981,7 +1013,7 @@ _reso = "resources" _au = "audiences" _AUT = "AuthorizationUrlType" -_SS = "SessionStatus" +_SSe = "SessionStatus" _GROTO = "GetResourceOauth2TokenOutput" _cGROTRo = "com.amazonaws.bedrockagentcore#GetResourceOauth2TokenResponse" _aU = "authorizationUrl" @@ -1076,7 +1108,7 @@ _pat = "paths" _cont = "content" _dPi = "directoryPath" -_tIa = "taskId" +_tIas = "taskId" _run = "runtime" _TNo = "ToolName" _EC_ = "EXECUTE_CODE" @@ -1266,6 +1298,10 @@ _HHK = "HttpHeaderKey" _HHV = "HttpHeaderValue" _HHM = "HttpHeadersMap" +_ICP = "IamCredentialProvider" +_ser = "service" +_reg = "region" +_HRMOA = "HarnessRemoteMcpOutboundAuth" _HRMU = "HarnessRemoteMcpUrl" _HRMC = "HarnessRemoteMcpConfig" _he = "headers" @@ -1383,8 +1419,36 @@ _IHO = "InvokeHarnessOutput" _cIHRo = "com.amazonaws.bedrockagentcore#InvokeHarnessResponse" _IH = "InvokeHarness" +_DN = "DomainName" +_DL = "DomainList" +_DFo = "DomainFilter" +_inc = "include" +_exc = "exclude" +_PDF = "PublishedDateFilter" +_pAu = "publishedAfter" +_pB = "publishedBefore" +_WSF = "WebSearchFilters" +_dF = "domainFilter" +_pDF = "publishedDateFilter" +_WSI = "WebSearchId" +_IWSI = "InvokeWebSearchInput" +_wSI = "webSearchId" +_sQe = "searchQuery" +_WSR = "WebSearchResult" +_tit = "title" +_pAub = "publishedAt" +_WSRL = "WebSearchResultList" +_IWSO = "InvokeWebSearchOutput" +_SUE = "ServiceUnavailableException" +_rAS = "retryAfterSeconds" +_IWS = "InvokeWebSearch" _MIe = "MemoryId" -_SSe = "SensitiveString" +_REA = "RecordExpiryAction" +_REMOVE = "REMOVE" +_REDD = "RecordExpiryDurationDays" +_RES = "RecordExpirySpecification" +_rEDD = "recordExpiryDurationDays" +_SSen = "SensitiveString" _MC = "MemoryContent" _MSIe = "MemoryStrategyId" _MK = "MetadataKey" @@ -1408,6 +1472,7 @@ _BCMRI = "BatchCreateMemoryRecordsInput" _mIe = "memoryId" _rec = "records" +_rES = "recordExpirySpecification" _MRI = "MemoryRecordId" _MRS = "MemoryRecordStatus" _SUCCEEDED = "SUCCEEDED" @@ -1477,6 +1542,7 @@ _GE = "GetEvent" _GMRI = "GetMemoryRecordInput" _MRe = "MemoryRecord" +_eAx = "expiresAt" _GMRO = "GetMemoryRecordOutput" _mRe = "memoryRecord" _GMR = "GetMemoryRecord" @@ -1488,7 +1554,7 @@ _so = "source" _cTo = "contentTimestamp" _IDO = "IngestDataOutput" -_ID = "IngestData" +_IDn = "IngestData" _PTag = "PaginationToken" _LAI = "ListActorsInput" _LAO = "ListActorsOutput" @@ -1512,7 +1578,7 @@ _eMve = "eventMetadata" _LEI = "ListEventsInput" _iP = "includePayloads" -_fi = "filter" +_fil = "filter" _ELv = "EventList" _LEO = "ListEventsOutput" _even = "events" @@ -1553,7 +1619,7 @@ _LMR = "ListMemoryRecords" _EFC = "EventFilterCondition" _HE = "HAS_EVENTS" -_SFe = "SessionFilter" +_SFes = "SessionFilter" _eF = "eventFilter" _LSI = "ListSessionsInput" _SSes = "SessionSummary" @@ -1562,7 +1628,6 @@ _sSess = "sessionSummaries" _LS = "ListSessions" _SCe = "SearchCriteria" -_sQe = "searchQuery" _RMRI = "RetrieveMemoryRecordsInput" _sCe = "searchCriteria" _RMRO = "RetrieveMemoryRecordsOutput" @@ -2292,9 +2357,10 @@ n0, _IARO, {_sSI: _cIARRo, _smith: None}, - (_rSI, _mSI, _mPV, _tI, _tP, _tS, _b, _cT, _res, _sC), + (_rSI, _sEU, _mSI, _mPV, _tI, _tP, _tS, _b, _cT, _res, _sC), ( (SESSION_ID, {_sH: _XABARSI}), + (3, {_sH: _XABARSEU}), (SESSION_ID, {_sH: _MSI}), (3, {_sH: _MPV}), (3, {_sH: _XATI}), @@ -4203,6 +4269,8 @@ EVALUATION_ERROR_MESSAGE: StaticSchema = (3, n0, _EEM, 0) +EVALUATION_DIMENSION_NAME: StaticSchema = (3, n0, _EDN, 0) + EVALUATOR_ARN: StaticSchema = (3, n0, _EA, 0) EVALUATOR_NAME: StaticSchema = (3, n0, _EN, 0) @@ -4227,11 +4295,12 @@ n0, _ERC, 0, - (_eA, _eI, _eN, _ex, _con, _va, _la, _tU, _eMr, _eCr, _iRIF), + (_eA, _eI, _eN, _eDN, _ex, _con, _va, _la, _tU, _eMr, _eCr, _iRIF), ( (EVALUATOR_ARN, 1), (EVALUATOR_ID, 1), (EVALUATOR_NAME, 1), + (EVALUATION_DIMENSION_NAME, 0), (EVALUATION_EXPLANATION, 0), (CONTEXT, 1), (10, 0), @@ -4473,8 +4542,8 @@ n0, _ESv, 0, - (_eI, _sta, _tEo, _tF), - ((3, 0), (EVALUATOR_STATISTICS, 0), (7, 0), (7, 0)), + (_eI, _eDN, _sta, _tEo, _tF), + ((3, 0), (3, 0), (EVALUATOR_STATISTICS, 0), (7, 0), (7, 0)), ) EVALUATOR_SUMMARY_LIST: StaticSchema = ( @@ -4607,6 +4676,109 @@ ((FAILURE_CATEGORY_CLUSTER_LIST, 1),), ) +INSIGHT_DESCRIPTION: StaticSchema = (3, n0, _ID, 4) + +INSIGHT_NAME: StaticSchema = (3, n0, _IN, 4) + +ROOT_CAUSE_EXPLANATION: StaticSchema = (3, n0, _RCEo, 4) + +ROOT_CAUSE_NAME: StaticSchema = (3, n0, _RCN, 4) + +FINDING_DESCRIPTION: StaticSchema = (3, n0, _FD, 4) + +FINDING_TARGET_ID: StaticSchema = (3, n0, _FTI, 0) + +FINDING_TARGET_TYPE: StaticSchema = ( + 14, + n0, + _FTT, + 0, + (_SI_, _TI_, _SN_), + ((-1, {_sVm: _SI_}), (-1, {_sVm: _TI_}), (-1, {_sVm: _SN_})), +) + +SESSION_FINDING: StaticSchema = ( + 18, + n0, + _SFe, + 0, + (_tIa, _tTa, _d, _ca, _co), + ( + (FINDING_TARGET_ID, 0), + (FINDING_TARGET_TYPE, 0), + (FINDING_DESCRIPTION, 1), + (3, 0), + (10, 0), + ), +) + +SESSION_FINDING_LIST: StaticSchema = (16, n0, _SFL, 0, (_m,), ((SESSION_FINDING, 0),)) + +SAMPLE_SESSION: StaticSchema = ( + 18, + n0, + _SS, + 0, + (_sIe, _lSA, _fi), + ((SESSION_ID, 1), (4, {_sF: _dt}), (SESSION_FINDING_LIST, 0)), +) + +INSIGHT_SAMPLE_SESSION_LIST: StaticSchema = ( + 16, + n0, + _ISSL, + 0, + (_m,), + ((SAMPLE_SESSION, 0),), +) + +SUGGESTED_FIX: StaticSchema = (3, n0, _SFu, 4) + +INSIGHT_ROOT_CAUSE: StaticSchema = ( + 18, + n0, + _IRC, + 0, + (_n, _ex, _aSC, _sFu, _sSa), + ( + (ROOT_CAUSE_NAME, 1), + (ROOT_CAUSE_EXPLANATION, 1), + (7, 0), + (SUGGESTED_FIX, 0), + (INSIGHT_SAMPLE_SESSION_LIST, 0), + ), +) + +INSIGHT_ROOT_CAUSE_LIST: StaticSchema = ( + 16, + n0, + _IRCL, + 0, + (_m,), + ((INSIGHT_ROOT_CAUSE, 0),), +) + +INSIGHT_TYPE: StaticSchema = (14, n0, _IT, 0, (_FAILURE,), ((-1, {_sVm: _FAILURE}),)) + +INSIGHT_RESULT: StaticSchema = ( + 18, + n0, + _IR, + 0, + (_ty, _n, _d, _cA, _aSC, _sSa, _rCo), + ( + (INSIGHT_TYPE, 1), + (INSIGHT_NAME, 1), + (INSIGHT_DESCRIPTION, 1), + (4, {_sF: _dt, _s: None}), + (7, 0), + (INSIGHT_SAMPLE_SESSION_LIST, 0), + (INSIGHT_ROOT_CAUSE_LIST, 0), + ), +) + +INSIGHT_RESULT_LIST: StaticSchema = (16, n0, _IRL, 0, (_m,), ((INSIGHT_RESULT, 0),)) + INSIGHT_ID: StaticSchema = (3, n0, _II, 0) INSIGHT: StaticSchema = (18, n0, _I, 0, (_iI,), ((INSIGHT_ID, 1),)) @@ -4716,6 +4888,7 @@ _dSC, _oC, _eRv, + _iR, _fAR, _uIR, _eSR, @@ -4735,6 +4908,7 @@ (DATA_SOURCE_CONFIG, 0), (OUTPUT_CONFIG, 0), (EVALUATION_JOB_RESULTS, 0), + (INSIGHT_RESULT_LIST, 0), (FAILURE_ANALYSIS_RESULT_CONTENT, 0), (USER_INTENT_CLUSTERING_RESULT_CONTENT, 0), (EXECUTION_SUMMARY_CLUSTERING_RESULT_CONTENT, 0), @@ -5637,7 +5811,7 @@ SESSION_STATUS: StaticSchema = ( 14, n0, - _SS, + _SSe, 0, (_IP, _FAILED), ((-1, {_sVm: _IP}), (-1, {_sVm: _FAILED})), @@ -5985,7 +6159,7 @@ n0, _TA, 0, - (_cod, _lan, _cCl, _com, _pa, _pat, _cont, _dPi, _tIa, _run), + (_cod, _lan, _cCl, _com, _pa, _pat, _cont, _dPi, _tIas, _run), ( (MAX_LEN_STRING, 0), (PROGRAMMING_LANGUAGE, 0), @@ -6103,7 +6277,7 @@ n0, _TRSC, 0, - (_tIa, _tSa, _std, _stde, _eC, _eTxe), + (_tIas, _tSa, _std, _stde, _eC, _eTxe), ((3, 0), (TASK_STATUS, 0), (3, 0), (3, 0), (7, 0), (10, 0)), ) @@ -6633,6 +6807,24 @@ ((HTTP_HEADER_KEY, 0), (HTTP_HEADER_VALUE, 0)), ) +IAM_CREDENTIAL_PROVIDER: StaticSchema = ( + 18, + n0, + _ICP, + 0, + (_ser, _reg), + ((3, 1), (3, 0)), +) + +HARNESS_REMOTE_MCP_OUTBOUND_AUTH: StaticSchema = ( + 19, + n0, + _HRMOA, + 0, + (_aIw, _non), + ((IAM_CREDENTIAL_PROVIDER, 0), (-1, 0)), +) + HARNESS_REMOTE_MCP_URL: StaticSchema = (3, n0, _HRMU, 4) HARNESS_REMOTE_MCP_CONFIG: StaticSchema = ( @@ -6640,8 +6832,12 @@ n0, _HRMC, 0, - (_url, _he), - ((HARNESS_REMOTE_MCP_URL, 1), (HTTP_HEADERS_MAP, 0)), + (_url, _he, _oA), + ( + (HARNESS_REMOTE_MCP_URL, 1), + (HTTP_HEADERS_MAP, 0), + (HARNESS_REMOTE_MCP_OUTBOUND_AUTH, 0), + ), ) HARNESS_TOOL_CONFIGURATION: StaticSchema = ( @@ -7018,9 +7214,128 @@ ), ) +DOMAIN_NAME: StaticSchema = (3, n0, _DN, 0) + +DOMAIN_LIST: StaticSchema = (16, n0, _DL, 0, (_m,), ((DOMAIN_NAME, 0),)) + +DOMAIN_FILTER: StaticSchema = ( + 18, + n0, + _DFo, + 0, + (_inc, _exc), + ((DOMAIN_LIST, 0), (DOMAIN_LIST, 0)), +) + +PUBLISHED_DATE_FILTER: StaticSchema = ( + 18, + n0, + _PDF, + 0, + (_pAu, _pB), + ((DATE_TIMESTAMP, 0), (DATE_TIMESTAMP, 0)), +) + +WEB_SEARCH_FILTERS: StaticSchema = ( + 18, + n0, + _WSF, + 0, + (_dF, _pDF), + ((DOMAIN_FILTER, 0), (PUBLISHED_DATE_FILTER, 0)), +) + +WEB_SEARCH_ID: StaticSchema = (3, n0, _WSI, 0) + +INVOKE_WEB_SEARCH_INPUT: StaticSchema = ( + 18, + n0, + _IWSI, + {_smit: None}, + (_wSI, _sQe, _mR, _f), + ((WEB_SEARCH_ID, 9), (3, 1), (7, 0), (WEB_SEARCH_FILTERS, 0)), +) + +WEB_SEARCH_RESULT: StaticSchema = ( + 18, + n0, + _WSR, + 0, + (_tit, _url, _te, _pAub), + ((3, 0), (3, 0), (3, 1), (DATE_TIMESTAMP, 0)), +) + +WEB_SEARCH_RESULT_LIST: StaticSchema = ( + 16, + n0, + _WSRL, + 0, + (_m,), + ((WEB_SEARCH_RESULT, 0),), +) + +INVOKE_WEB_SEARCH_OUTPUT: StaticSchema = ( + 18, + n0, + _IWSO, + {_smith: None}, + (_resul,), + ((WEB_SEARCH_RESULT_LIST, 1),), +) + +SERVICE_UNAVAILABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _SUE, + {_sm: _se, _sE: 503}, + (_mes, _rAS), + ((3, 1), (7, 0)), +) + +INVOKE_WEB_SEARCH: StaticOperationSchema = ( + 23, + n0, + _IWS, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/web-search/{webSearchId}/invoke", "code": 200} + ) + }, + INVOKE_WEB_SEARCH_INPUT, + INVOKE_WEB_SEARCH_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_UNAVAILABLE_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + MEMORY_ID: StaticSchema = (3, n0, _MIe, 0) -SENSITIVE_STRING: StaticSchema = (3, n0, _SSe, 4) +RECORD_EXPIRY_ACTION: StaticSchema = ( + 14, + n0, + _REA, + 0, + (_REMOVE,), + ((-1, {_sVm: _REMOVE}),), +) + +RECORD_EXPIRY_DURATION_DAYS: StaticSchema = (7, n0, _REDD, 0) + +RECORD_EXPIRY_SPECIFICATION: StaticSchema = ( + 19, + n0, + _RES, + 0, + (_rEDD, _ac), + ((RECORD_EXPIRY_DURATION_DAYS, 0), (RECORD_EXPIRY_ACTION, 0)), +) + +SENSITIVE_STRING: StaticSchema = (3, n0, _SSen, 4) MEMORY_CONTENT: StaticSchema = (19, n0, _MC, 0, (_te,), ((SENSITIVE_STRING, 0),)) @@ -7095,8 +7410,13 @@ n0, _BCMRI, {_smit: None}, - (_mIe, _rec, _cTl), - ((MEMORY_ID, 9), (MEMORY_RECORDS_CREATE_INPUT_LIST, 1), (3, 2)), + (_mIe, _rec, _cTl, _rES), + ( + (MEMORY_ID, 9), + (MEMORY_RECORDS_CREATE_INPUT_LIST, 1), + (3, 2), + (RECORD_EXPIRY_SPECIFICATION, 0), + ), ) MEMORY_RECORD_ID: StaticSchema = (3, n0, _MRI, 0) @@ -7274,8 +7594,12 @@ n0, _BUMRI, {_smit: None}, - (_mIe, _rec), - ((MEMORY_ID, 9), (MEMORY_RECORDS_UPDATE_INPUT_LIST, 1)), + (_mIe, _rec, _rES), + ( + (MEMORY_ID, 9), + (MEMORY_RECORDS_UPDATE_INPUT_LIST, 1), + (RECORD_EXPIRY_SPECIFICATION, 0), + ), ) BATCH_UPDATE_MEMORY_RECORDS_OUTPUT: StaticSchema = ( @@ -7613,14 +7937,16 @@ n0, _MRe, 0, - (_mRI, _cont, _mSIe, _na, _cA, _met), + (_mRI, _cont, _mSIe, _na, _cA, _tim, _met, _eAx), ( (MEMORY_RECORD_ID, 1), (MEMORY_CONTENT, 1), (MEMORY_STRATEGY_ID, 1), (NAMESPACES_LIST, 1), (4, 1), + (4, 0), (MEMORY_RECORD_METADATA_MAP, 0), + (4, 0), ), ) @@ -7717,7 +8043,7 @@ INGEST_DATA: StaticOperationSchema = ( 23, n0, - _ID, + _IDn, { _smithy: MappingProxyType( {"code": 202, "method": "POST", "uri": "/memories/{memoryId}/ingest"} @@ -7831,7 +8157,7 @@ n0, _LEI, {_smit: None}, - (_mIe, _sIe, _aI, _iP, _fi, _mR, _nT), + (_mIe, _sIe, _aI, _iP, _fil, _mR, _nT), ( (MEMORY_ID, 9), (SESSION_ID, 9), @@ -7902,7 +8228,7 @@ n0, _LMEJI, {_smit: None}, - (_mIe, _mR, _fi, _nT), + (_mIe, _mR, _fil, _nT), ( (MEMORY_ID, 9), (7, {_smithyap: 20}), @@ -8055,7 +8381,7 @@ n0, _MRSe, 0, - (_mRI, _cont, _mSIe, _na, _cA, _scor, _met), + (_mRI, _cont, _mSIe, _na, _cA, _scor, _tim, _met), ( (MEMORY_RECORD_ID, 1), (MEMORY_CONTENT, 1), @@ -8063,6 +8389,7 @@ (NAMESPACES_LIST, 1), (4, 1), (10, 0), + (4, 0), (MEMORY_RECORD_METADATA_MAP, 0), ), ) @@ -8109,14 +8436,21 @@ EVENT_FILTER_CONDITION: StaticSchema = (14, n0, _EFC, 0, (_HE,), ((-1, {_sVm: _HE}),)) -SESSION_FILTER: StaticSchema = (18, n0, _SFe, 0, (_eF,), ((EVENT_FILTER_CONDITION, 0),)) +SESSION_FILTER: StaticSchema = ( + 18, + n0, + _SFes, + 0, + (_eF,), + ((EVENT_FILTER_CONDITION, 0),), +) LIST_SESSIONS_INPUT: StaticSchema = ( 18, n0, _LSI, {_smit: None}, - (_mIe, _aI, _mR, _nT, _fi), + (_mIe, _aI, _mR, _nT, _fil), ( (MEMORY_ID, 9), (ACTOR_ID, 9), diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/client.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/client.py index 57d07e7b..3a732804 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/client.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/client.py @@ -109,6 +109,8 @@ InvokeAgentRuntimeOutput, InvokeBrowserInput, InvokeBrowserOutput, + InvokeWebSearchInput, + InvokeWebSearchOutput, ListABTestsInput, ListABTestsOutput, ListActorsInput, @@ -1179,6 +1181,33 @@ async def invoke_harness( _InvokeHarnessStreamOutputDeserializer().deserialize, ) + async def invoke_web_search( + self, input: InvokeWebSearchInput, plugins: list[Plugin] | None = None + ) -> InvokeWebSearchOutput: + """ + Searches the web and returns a ranked list of results. Each result + includes a text extract from the page. + + You can filter the results by domain and by publication date. + + To use this operation, you must have the + `bedrock-agentcore:InvokeWebSearch` permission on the resource + `arn:$${Partition}:bedrock-agentcore:$${Region}:aws:tool/web-search.v1`. + + Args: + input: + An instance of `InvokeWebSearchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `InvokeWebSearchOutput`. + """ + return await self._invoke(input, _models.INVOKE_WEB_SEARCH, [], plugins) + async def list_ab_tests( self, input: ListABTestsInput, plugins: list[Plugin] | None = None ) -> ListABTestsOutput: diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/config.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/config.py index 6a0ab1f8..dd68e7a7 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/config.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/aio/config.py @@ -129,6 +129,8 @@ InvokeCodeInterpreterOutput, InvokeHarnessInput, InvokeHarnessOutput, + InvokeWebSearchInput, + InvokeWebSearchOutput, ListABTestsInput, ListABTestsOutput, ListActorsInput, @@ -268,6 +270,7 @@ Interceptor[InvokeBrowserInput, InvokeBrowserOutput, Any, Any], Interceptor[InvokeCodeInterpreterInput, InvokeCodeInterpreterOutput, Any, Any], Interceptor[InvokeHarnessInput, InvokeHarnessOutput, Any, Any], + Interceptor[InvokeWebSearchInput, InvokeWebSearchOutput, Any, Any], Interceptor[ListABTestsInput, ListABTestsOutput, Any, Any], Interceptor[ListActorsInput, ListActorsOutput, Any, Any], Interceptor[ListBatchEvaluationsInput, ListBatchEvaluationsOutput, Any, Any], diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/client.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/client.py index 8115a499..3da3b19d 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/client.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/client.py @@ -94,6 +94,8 @@ InvokeAgentRuntimeOutput, InvokeBrowserInput, InvokeBrowserOutput, + InvokeWebSearchInput, + InvokeWebSearchOutput, ListABTestsInput, ListABTestsOutput, ListActorsInput, @@ -1037,6 +1039,33 @@ def invoke_browser( """ return self._invoke(input, _models.INVOKE_BROWSER, [], plugins) + def invoke_web_search( + self, input: InvokeWebSearchInput, plugins: list[Plugin] | None = None + ) -> InvokeWebSearchOutput: + """ + Searches the web and returns a ranked list of results. Each result + includes a text extract from the page. + + You can filter the results by domain and by publication date. + + To use this operation, you must have the + `bedrock-agentcore:InvokeWebSearch` permission on the resource + `arn:$${Partition}:bedrock-agentcore:$${Region}:aws:tool/web-search.v1`. + + Args: + input: + An instance of `InvokeWebSearchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `InvokeWebSearchOutput`. + """ + return self._invoke(input, _models.INVOKE_WEB_SEARCH, [], plugins) + def list_ab_tests( self, input: ListABTestsInput | None = None, plugins: list[Plugin] | None = None ) -> ListABTestsOutput: diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/config.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/config.py index 0ad6d28f..4e6795c6 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/config.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/config.py @@ -124,6 +124,8 @@ InvokeCodeInterpreterOutput, InvokeHarnessInput, InvokeHarnessOutput, + InvokeWebSearchInput, + InvokeWebSearchOutput, ListABTestsInput, ListABTestsOutput, ListActorsInput, @@ -263,6 +265,7 @@ Interceptor[InvokeBrowserInput, InvokeBrowserOutput, Any, Any], Interceptor[InvokeCodeInterpreterInput, InvokeCodeInterpreterOutput, Any, Any], Interceptor[InvokeHarnessInput, InvokeHarnessOutput, Any, Any], + Interceptor[InvokeWebSearchInput, InvokeWebSearchOutput, Any, Any], Interceptor[ListABTestsInput, ListABTestsOutput, Any, Any], Interceptor[ListActorsInput, ListActorsOutput, Any, Any], Interceptor[ListBatchEvaluationsInput, ListBatchEvaluationsOutput, Any, Any], diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.py b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.py index de74e036..aaac9ad8 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.py +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.py @@ -171,6 +171,7 @@ class ServiceError(ModeledError): "DeleteRecommendationOutput": "DELETE_RECOMMENDATION_OUTPUT", "Descriptors": "DESCRIPTORS", "DescriptorType": "DESCRIPTOR_TYPE", + "DomainFilter": "DOMAIN_FILTER", "DuplicateIdException": "DUPLICATE_ID_EXCEPTION", "EfsConfiguration": "EFS_CONFIGURATION", "EmbeddedCryptoWallet": "EMBEDDED_CRYPTO_WALLET", @@ -223,6 +224,7 @@ class ServiceError(ModeledError): "FilterValueDoubleValue": "FILTER_VALUE", "FilterValueBooleanValue": "FILTER_VALUE", "FilterValueUnknown": "FILTER_VALUE", + "FindingTargetType": "FINDING_TARGET_TYPE", "GatewayFilter": "GATEWAY_FILTER", "GetABTestInput": "GET_AB_TEST_INPUT", "GetABTestOutput": "GET_AB_TEST_OUTPUT", @@ -325,6 +327,10 @@ class ServiceError(ModeledError): "HarnessReasoningContentBlockDeltaUnknown": "HARNESS_REASONING_CONTENT_BLOCK_DELTA", "HarnessReasoningTextBlock": "HARNESS_REASONING_TEXT_BLOCK", "HarnessRemoteMcpConfig": "HARNESS_REMOTE_MCP_CONFIG", + "HarnessRemoteMcpOutboundAuth": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthAwsIam": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthNone": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", + "HarnessRemoteMcpOutboundAuthUnknown": "HARNESS_REMOTE_MCP_OUTBOUND_AUTH", "HarnessSkill": "HARNESS_SKILL", "HarnessSkillPath": "HARNESS_SKILL", "HarnessSkillS3": "HARNESS_SKILL", @@ -366,6 +372,7 @@ class ServiceError(ModeledError): "HarnessToolUseBlockStart": "HARNESS_TOOL_USE_BLOCK_START", "HarnessToolUseStatus": "HARNESS_TOOL_USE_STATUS", "HarnessToolUseType": "HARNESS_TOOL_USE_TYPE", + "IamCredentialProvider": "IAM_CREDENTIAL_PROVIDER", "IngestDataInput": "INGEST_DATA_INPUT", "IngestDataOutput": "INGEST_DATA_OUTPUT", "IngestPayloadType": "INGEST_PAYLOAD_TYPE", @@ -376,8 +383,11 @@ class ServiceError(ModeledError): "InlineMemoryContent": "INLINE_MEMORY_CONTENT", "InputContentBlock": "INPUT_CONTENT_BLOCK", "Insight": "INSIGHT", + "InsightResult": "INSIGHT_RESULT", + "InsightRootCause": "INSIGHT_ROOT_CAUSE", "InsightsFailureCategory": "INSIGHTS_FAILURE_CATEGORY", "InsightsFailureSignal": "INSIGHTS_FAILURE_SIGNAL", + "InsightType": "INSIGHT_TYPE", "InstrumentBalanceToken": "INSTRUMENT_BALANCE_TOKEN", "InternalServerException": "INTERNAL_SERVER_EXCEPTION", "InvalidInputException": "INVALID_INPUT_EXCEPTION", @@ -414,6 +424,8 @@ class ServiceError(ModeledError): "InvokeHarnessStreamOutputRuntimeClientError": "INVOKE_HARNESS_STREAM_OUTPUT", "InvokeHarnessStreamOutputHookEvent": "INVOKE_HARNESS_STREAM_OUTPUT", "InvokeHarnessStreamOutputUnknown": "INVOKE_HARNESS_STREAM_OUTPUT", + "InvokeWebSearchInput": "INVOKE_WEB_SEARCH_INPUT", + "InvokeWebSearchOutput": "INVOKE_WEB_SEARCH_OUTPUT", "KeyPressArguments": "KEY_PRESS_ARGUMENTS", "KeyPressResult": "KEY_PRESS_RESULT", "KeyShortcutArguments": "KEY_SHORTCUT_ARGUMENTS", @@ -562,6 +574,7 @@ class ServiceError(ModeledError): "ProxyCredentials": "PROXY_CREDENTIALS", "ProxyCredentialsBasicAuth": "PROXY_CREDENTIALS", "ProxyCredentialsUnknown": "PROXY_CREDENTIALS", + "PublishedDateFilter": "PUBLISHED_DATE_FILTER", "RecommendationConfig": "RECOMMENDATION_CONFIG", "RecommendationConfigSystemPromptRecommendationConfig": "RECOMMENDATION_CONFIG", "RecommendationConfigToolDescriptionRecommendationConfig": "RECOMMENDATION_CONFIG", @@ -576,6 +589,11 @@ class ServiceError(ModeledError): "RecommendationStatus": "RECOMMENDATION_STATUS", "RecommendationSummary": "RECOMMENDATION_SUMMARY", "RecommendationType": "RECOMMENDATION_TYPE", + "RecordExpiryAction": "RECORD_EXPIRY_ACTION", + "RecordExpirySpecification": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationRecordExpiryDurationDays": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationAction": "RECORD_EXPIRY_SPECIFICATION", + "RecordExpirySpecificationUnknown": "RECORD_EXPIRY_SPECIFICATION", "RegistryRecordStatus": "REGISTRY_RECORD_STATUS", "RegistryRecordSummary": "REGISTRY_RECORD_SUMMARY", "ResourceContent": "RESOURCE_CONTENT", @@ -597,6 +615,7 @@ class ServiceError(ModeledError): "RuntimeClientError": "RUNTIME_CLIENT_ERROR", "S3FilesConfiguration": "S3_FILES_CONFIGURATION", "S3Location": "S3_LOCATION", + "SampleSession": "SAMPLE_SESSION", "SaveBrowserSessionProfileInput": "SAVE_BROWSER_SESSION_PROFILE_INPUT", "SaveBrowserSessionProfileOutput": "SAVE_BROWSER_SESSION_PROFILE_OUTPUT", "ScreenshotArguments": "SCREENSHOT_ARGUMENTS", @@ -609,8 +628,10 @@ class ServiceError(ModeledError): "ServerDefinition": "SERVER_DEFINITION", "ServiceException": "SERVICE_EXCEPTION", "ServiceQuotaExceededException": "SERVICE_QUOTA_EXCEEDED_EXCEPTION", + "ServiceUnavailableException": "SERVICE_UNAVAILABLE_EXCEPTION", "SessionFilter": "SESSION_FILTER", "SessionFilterConfig": "SESSION_FILTER_CONFIG", + "SessionFinding": "SESSION_FINDING", "SessionLimits": "SESSION_LIMITS", "SessionMetadataShape": "SESSION_METADATA_SHAPE", "SessionStatus": "SESSION_STATUS", @@ -696,6 +717,8 @@ class ServiceError(ModeledError): "VariantConfiguration": "VARIANT_CONFIGURATION", "VariantResult": "VARIANT_RESULT", "ViewPort": "VIEW_PORT", + "WebSearchFilters": "WEB_SEARCH_FILTERS", + "WebSearchResult": "WEB_SEARCH_RESULT", }, shape_names=frozenset( { @@ -804,6 +827,7 @@ class ServiceError(ModeledError): "DeleteRecommendationOutput", "DescriptorType", "Descriptors", + "DomainFilter", "DuplicateIdException", "EfsConfiguration", "EmbeddedCryptoWallet", @@ -841,6 +865,7 @@ class ServiceError(ModeledError): "FailureSubCategoryCluster", "FilterInput", "FilterValue", + "FindingTargetType", "GatewayFilter", "GetABTestInput", "GetABTestOutput", @@ -909,6 +934,7 @@ class ServiceError(ModeledError): "HarnessReasoningContentBlockDelta", "HarnessReasoningTextBlock", "HarnessRemoteMcpConfig", + "HarnessRemoteMcpOutboundAuth", "HarnessSkill", "HarnessSkillAwsSkillsSource", "HarnessSkillGitAuth", @@ -931,6 +957,7 @@ class ServiceError(ModeledError): "HarnessToolUseBlockStart", "HarnessToolUseStatus", "HarnessToolUseType", + "IamCredentialProvider", "IngestDataInput", "IngestDataOutput", "IngestPayloadType", @@ -938,6 +965,9 @@ class ServiceError(ModeledError): "InlineMemoryContent", "InputContentBlock", "Insight", + "InsightResult", + "InsightRootCause", + "InsightType", "InsightsFailureCategory", "InsightsFailureSignal", "InstrumentBalanceToken", @@ -956,6 +986,8 @@ class ServiceError(ModeledError): "InvokeHarnessInput", "InvokeHarnessOutput", "InvokeHarnessStreamOutput", + "InvokeWebSearchInput", + "InvokeWebSearchOutput", "KeyPressArguments", "KeyPressResult", "KeyShortcutArguments", @@ -1054,6 +1086,7 @@ class ServiceError(ModeledError): "ProxyBypass", "ProxyConfiguration", "ProxyCredentials", + "PublishedDateFilter", "RecommendationConfig", "RecommendationEvaluationConfig", "RecommendationEvaluatorReference", @@ -1062,6 +1095,8 @@ class ServiceError(ModeledError): "RecommendationStatus", "RecommendationSummary", "RecommendationType", + "RecordExpiryAction", + "RecordExpirySpecification", "RegistryRecordStatus", "RegistryRecordSummary", "ResourceContent", @@ -1079,6 +1114,7 @@ class ServiceError(ModeledError): "RuntimeClientError", "S3FilesConfiguration", "S3Location", + "SampleSession", "SaveBrowserSessionProfileInput", "SaveBrowserSessionProfileOutput", "ScreenshotArguments", @@ -1091,8 +1127,10 @@ class ServiceError(ModeledError): "ServerDefinition", "ServiceException", "ServiceQuotaExceededException", + "ServiceUnavailableException", "SessionFilter", "SessionFilterConfig", + "SessionFinding", "SessionLimits", "SessionMetadataShape", "SessionStatus", @@ -1162,6 +1200,8 @@ class ServiceError(ModeledError): "VariantConfiguration", "VariantResult", "ViewPort", + "WebSearchFilters", + "WebSearchResult", } ), service_error="ServiceError", @@ -1209,6 +1249,7 @@ class ServiceError(ModeledError): "INVOKE_BROWSER", "INVOKE_CODE_INTERPRETER", "INVOKE_HARNESS", + "INVOKE_WEB_SEARCH", "LIST_AB_TESTS", "LIST_ACTORS", "LIST_BATCH_EVALUATIONS", @@ -1798,6 +1839,19 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["INVOKE_WEB_SEARCH"] = ( + "INVOKE_WEB_SEARCH", + ( + "com.amazonaws.bedrockagentcore#AccessDeniedException", + "com.amazonaws.bedrockagentcore#InternalServerException", + "com.amazonaws.bedrockagentcore#ResourceNotFoundException", + "com.amazonaws.bedrockagentcore#ServiceUnavailableException", + "com.amazonaws.bedrockagentcore#ThrottlingException", + "com.amazonaws.bedrockagentcore#ValidationException", + ), + ("aws.auth#sigv4",), +) + _operation_data["BATCH_CREATE_MEMORY_RECORDS"] = ( "BATCH_CREATE_MEMORY_RECORDS", ( diff --git a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.pyi b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.pyi index 00dbdd06..49ca3fe1 100644 --- a/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.pyi +++ b/clients/aws-sdk-bedrock-agentcore/src/aws_sdk_bedrock_agentcore/models.pyi @@ -339,6 +339,15 @@ class BatchCreateMemoryRecordsInput(_SerdeShape): A unique, case-sensitive identifier to ensure idempotent processing of the batch request. """ + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) applied to every + record created by this request. Set `recordExpiryDurationDays` to the + number of days after which the records expire. Only the expiry provided + here is applied; the records' strategy association has no effect on + their expiry. If you do not provide this value, the records do not + expire. The `REMOVE` action does not apply when creating records. + """ @dataclass(kw_only=True) class BatchCreateMemoryRecordsOutput(_SerdeShape): @@ -458,6 +467,29 @@ class BatchUpdateMemoryRecordsInput(_SerdeShape): A list of memory record update inputs to be processed in the batch operation. """ + record_expiry_specification: RecordExpirySpecification | None = ... + """ + The record expiry (long-term memory time-to-live) applied to every + record updated by this request. Set `recordExpiryDurationDays` to + configure or overwrite the number of days after which the records + expire, or set `action` to `REMOVE` to clear a previously configured + expiry so that the records no longer expire. + + When you do not provide this value, the service determines each + record's expiry from its current state: + + - If the record already has an expiry configured, the service resets and + reapplies the expiry based on the last applied + `recordExpiryDurationDays`. + + - If the record does not have an expiry configured, no expiry is applied + and the record remains non-expiring. This is the outcome regardless of + whether the record's strategy configures an expiry. + + Providing an explicit `recordExpiryDurationDays` always takes + precedence: it overwrites an existing expiry, or sets one on a record + that previously had none. + """ @dataclass(kw_only=True) class BatchUpdateMemoryRecordsOutput(_SerdeShape): @@ -2009,6 +2041,22 @@ class DescriptorType(UnknownEnumMixin, StrEnum): CUSTOM = "CUSTOM" AGENT_SKILLS = "AGENT_SKILLS" +@dataclass(kw_only=True) +class DomainFilter(_SerdeShape): + """ + The domains to include in or exclude from the results. A root domain + also matches its subdomains. For example, `example.com` also matches + `docs.example.com`. + """ + + include: list[str] | None = ... + """ + The domains to return results from. Results from other domains are not + returned. + """ + exclude: list[str] | None = ... + """The domains to never return results from.""" + @dataclass(kw_only=True) class DuplicateIdException(ServiceError, _SerdeShape): """ @@ -2299,6 +2347,13 @@ class EvaluationResultContent(_SerdeShape): \"Helpfulness\", \"Correctness\"); for custom evaluators, this is the user-defined name. """ + evaluation_dimension_name: str | None = ... + """ + The name of the dimension that this result scores. This field is set + only on results produced by an evaluator that uses a multi-dimensional + rating scale, where each dimension is scored independently. For + evaluators with a single rating scale, this field is absent. + """ explanation: str | None = ... """ The detailed explanation provided by the evaluator describing the @@ -2432,6 +2487,13 @@ class EvaluatorSummary(_SerdeShape): evaluator_id: str | None = ... """The unique identifier of the evaluator.""" + evaluation_dimension_name: str | None = ... + """ + The name of the dimension that this summary covers. This field is set + only for evaluators that use a multi-dimensional rating scale, where + each dimension is summarized separately. For single-scale evaluators, + this field is not set. + """ statistics: EvaluatorStatistics | None = ... """The aggregated statistics for this evaluator.""" total_evaluated: int | None = ... @@ -2753,6 +2815,16 @@ FilterValue = Union[ class _FilterValueDeserializer: def deserialize(self, deserializer: ShapeDeserializer) -> FilterValue: ... +class FindingTargetType(UnknownEnumMixin, StrEnum): + """ + The type of location in a session that a finding points to: a span ID, a + trace ID, or a span name. + """ + + SPAN_ID = "SPAN_ID" + TRACE_ID = "TRACE_ID" + SPAN_NAME = "SPAN_NAME" + @dataclass(kw_only=True) class GatewayFilter(_SerdeShape): """ @@ -2907,6 +2979,14 @@ class GetBatchEvaluationOutput(_SerdeShape): The aggregated evaluation results, including session completion counts and evaluator score summaries. """ + insight_results: list[InsightResult] | None = ... + """ + The insights generated when the batch evaluation includes the + `Builtin.FailureAnalysis` evaluator. Each insight groups related + failures found across the evaluated sessions. An empty list means that + no failures were found. If the analysis fails, this field is omitted and + `errorDetails` describes the error. + """ failure_analysis_result: FailureAnalysisResultContent | None = ... """ The failure analysis results from insights, containing categorized @@ -3776,7 +3856,13 @@ class HarnessGatewayOutboundAuthNone(_SerdeShape): @dataclass class HarnessGatewayOutboundAuthOauth(_SerdeShape): - """OAuth 2.0 authentication via AgentCore Identity.""" + """ + OAuth 2.0 authentication via AgentCore Identity. + + The `AUTHORIZATION_CODE` grant type is not supported for outbound + authentication from a harness to an AgentCore Gateway, even when + `defaultReturnUrl` is specified. + """ value: OAuthCredentialProvider @@ -4116,6 +4202,49 @@ class HarnessRemoteMcpConfig(_SerdeShape): """URL of the MCP endpoint.""" headers: dict[str, str] | None = ... """Custom headers to include when connecting to the remote MCP server.""" + outbound_auth: HarnessRemoteMcpOutboundAuth | None = ... + """ + How the harness authenticates to this MCP server. Defaults to no + authentication. + """ + +@dataclass +class HarnessRemoteMcpOutboundAuthAwsIam(_SerdeShape): + """ + Sign requests to the remote MCP server with Signature Version 4 (SigV4) + using the harness execution role. If you don't specify a Region, the + harness Region is used. + """ + + value: IamCredentialProvider + +@dataclass +class HarnessRemoteMcpOutboundAuthNone(_SerdeShape): + """No authentication.""" + + value: Unit + +@dataclass +class HarnessRemoteMcpOutboundAuthUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +HarnessRemoteMcpOutboundAuth = Union[ + HarnessRemoteMcpOutboundAuthAwsIam + | HarnessRemoteMcpOutboundAuthNone + | HarnessRemoteMcpOutboundAuthUnknown +] +"""Authentication method for calling a remote MCP server.""" + +class _HarnessRemoteMcpOutboundAuthDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> HarnessRemoteMcpOutboundAuth: ... @dataclass class HarnessSkillPath(_SerdeShape): @@ -4137,7 +4266,7 @@ class HarnessSkillGit(_SerdeShape): @dataclass class HarnessSkillAwsSkills(_SerdeShape): - """AWS Skills baked into the Harness's underlying Runtime.""" + """Amazon Web Services Skills baked into the Harness's underlying Runtime.""" value: HarnessSkillAwsSkillsSource @@ -4165,7 +4294,7 @@ class _HarnessSkillDeserializer: @dataclass(kw_only=True) class HarnessSkillAwsSkillsSource(_SerdeShape): - """Passed to show that AWS Skills should be included.""" + """Passed to show that Amazon Web Services Skills should be included.""" paths: list[str] | None = ... """ @@ -4488,6 +4617,26 @@ class HarnessToolUseType(UnknownEnumMixin, StrEnum): SERVER_TOOL_USE = "server_tool_use" MCP_TOOL_USE = "mcp_tool_use" +@dataclass(kw_only=True) +class IamCredentialProvider(_SerdeShape): + """ + An IAM credential provider for authenticating requests. This structure + contains the configuration for authenticating with a target endpoint + using IAM credentials and SigV4 signing. + """ + + service: str + """ + The name of the Amazon Web Services service used for SigV4 signing. This + value identifies the service to authenticate with when sending requests + to the target endpoint. + """ + region: str | None = ... + """ + The Amazon Web Services Region used for SigV4 signing. If not specified, + defaults to the Region of the resource that makes the request. + """ + @dataclass(kw_only=True) class IngestDataInput(_SerdeShape): """Dataclass for IngestDataInput structure.""" @@ -4626,6 +4775,56 @@ class Insight(_SerdeShape): insight_id: str """The unique identifier of the insight to run.""" +@dataclass(kw_only=True) +class InsightResult(_SerdeShape): + """ + An insight that groups related failures found across the sessions in a + batch evaluation. + """ + + type: str + """The type of insight. `FAILURE` indicates a group of related failures.""" + name: str + """ + A generated label for the insight. The name is not an identifier and can + differ between batch evaluations. + """ + description: str + """A description of the failure pattern that the insight represents.""" + created_at: datetime + """The timestamp when the insight was generated.""" + affected_session_count: int | None = ... + """The number of distinct sessions affected by the insight.""" + sample_sessions: list[SampleSession] | None = ... + """ + A sample of up to 10 sessions affected by the insight. Returned only + when the insight has no root causes. Otherwise, sample sessions are + returned for each root cause. + """ + root_causes: list[InsightRootCause] | None = ... + """The root causes identified for the insight.""" + +@dataclass(kw_only=True) +class InsightRootCause(_SerdeShape): + """A root cause that contributes to an insight.""" + + name: str + """A generated label for the root cause.""" + explanation: str + """ + An explanation of how the root cause leads to the failures in the + insight. + """ + affected_session_count: int | None = ... + """ + The number of distinct sessions affected by the root cause. A session + can be affected by more than one root cause of the same insight. + """ + suggested_fix: str | None = ... + """A suggested change to the agent that addresses the root cause.""" + sample_sessions: list[SampleSession] | None = ... + """A sample of up to 10 sessions affected by the root cause.""" + class InsightsFailureCategory(UnknownEnumMixin, StrEnum): """ Failure category taxonomy for agent session insights. Values must stay @@ -4701,6 +4900,11 @@ class InsightsFailureSignal(_SerdeShape): confidence: float """The confidence score of the failure detection.""" +class InsightType(UnknownEnumMixin, StrEnum): + """The type of insight.""" + + FAILURE = "FAILURE" + class InstrumentBalanceToken(UnknownEnumMixin, StrEnum): """ Supported tokens for instrument balance queries. Only tokens supported @@ -5042,6 +5246,14 @@ class InvokeAgentRuntimeOutput(_SerdeShape): runtime_session_id: str | None = ... """The identifier of the runtime session.""" + session_endpoint_url: str | None = ... + """ + The HTTPS endpoint that addresses this runtime session directly. This + value is returned only when the agent runtime is configured with allowed + ports and direct runtime access is available for the session. If this + value is not present, use `InvokeAgentRuntime` to communicate with the + session. + """ mcp_session_id: str | None = ... """The identifier of the MCP session.""" mcp_protocol_version: str | None = ... @@ -5360,6 +5572,36 @@ class _InvokeHarnessStreamOutputDeserializer: self, deserializer: ShapeDeserializer ) -> InvokeHarnessStreamOutput: ... +@dataclass(kw_only=True) +class InvokeWebSearchInput(_SerdeShape): + """Request for the `InvokeWebSearch` operation.""" + + web_search_id: str | None = ... + """ + The identifier of the web search tool to invoke. The Amazon Web + Services-managed web search tool is `web-search.v1`. + """ + search_query: str | None = ... + """The text to search for.""" + max_results: int | None = ... + """The maximum number of results to return. Defaults to 25.""" + filters: WebSearchFilters | None = ... + """The filters to apply to the search results.""" + +@dataclass(kw_only=True) +class InvokeWebSearchOutput(_SerdeShape): + """Response for the `InvokeWebSearch` operation.""" + + results: list[WebSearchResult] + """The search results, in ranked order.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class KeyPressArguments(_SerdeShape): """Arguments for a key press action.""" @@ -5892,9 +6134,9 @@ class ListMemoryRecordsInput(_SerdeShape): """ namespace: str | None = ... """ - The namespace prefix to filter memory records by. Returns all memory - records in namespaces that start with the provided prefix. Either - `namespace` or `namespacePath` is required. + The exact namespace to filter memory records by. Returns all memory + records that matches the provided namespace. Either `namespace` or + `namespacePath` is required. """ namespace_path: str | None = ... """ @@ -6198,8 +6440,24 @@ class MemoryRecord(_SerdeShape): """ created_at: datetime """The timestamp when the memory record was created.""" + timestamp: datetime | None = ... + """ + The timestamp based on which the memory record was ingested. This + reflects the time of the source content that the record was derived + from, which can differ from `createdAt`, the time the record itself was + written. + """ metadata: dict[str, MemoryRecordMetadataValue] | None = ... """A map of metadata key-value pairs associated with a memory record.""" + expires_at: datetime | None = ... + """ + The timestamp at which the memory record expires and becomes eligible + for deletion. This value is set when a record expiry (long-term memory + time-to-live) applies to the record, either from the strategy the record + belongs to or from a record expiry provided on the batch request that + created or updated it. If the record has no expiry configured, this + value is not present and the record does not expire. + """ @dataclass(kw_only=True) class MemoryRecordCreateInput(_SerdeShape): @@ -6396,6 +6654,13 @@ class MemoryRecordSummary(_SerdeShape): search result. Higher values indicate greater relevance to the search query. """ + timestamp: datetime | None = ... + """ + The timestamp based on which the memory record was ingested. This + reflects the time of the source content that the record was derived + from, which can differ from `createdAt`, the time the record itself was + written. + """ metadata: dict[str, MemoryRecordMetadataValue] | None = ... """A map of metadata key-value pairs associated with a memory record.""" @@ -7200,6 +7465,24 @@ Currently supports HTTP Basic Authentication (username and password). class _ProxyCredentialsDeserializer: def deserialize(self, deserializer: ShapeDeserializer) -> ProxyCredentials: ... +@dataclass(kw_only=True) +class PublishedDateFilter(_SerdeShape): + """ + A publication time range for the results. Both bounds are optional, and + both are inclusive. If `publishedAfter` is later than `publishedBefore`, + the request fails with a `ValidationException`. + """ + + published_after: datetime | None = ... + """The earliest publication time of the results, inclusive.""" + published_before: datetime | None = ... + """ + The latest publication time of the results, inclusive. A date without a + time, such as one passed to the AWS CLI, means midnight UTC. To include + a whole day, use the last second of that day, for example + `2026-01-31T23:59:59Z`. + """ + @dataclass class RecommendationConfigSystemPromptRecommendationConfig(_SerdeShape): """The configuration for a system prompt recommendation.""" @@ -7326,6 +7609,62 @@ class RecommendationType(UnknownEnumMixin, StrEnum): SYSTEM_PROMPT_RECOMMENDATION = "SYSTEM_PROMPT_RECOMMENDATION" TOOL_DESCRIPTION_RECOMMENDATION = "TOOL_DESCRIPTION_RECOMMENDATION" +class RecordExpiryAction(UnknownEnumMixin, StrEnum): + """ + The action to apply to an existing record expiry (long-term memory + time-to-live) configuration. `REMOVE` removes a previously configured + expiry so that the records no longer expire. + """ + + REMOVE = "REMOVE" + +@dataclass +class RecordExpirySpecificationRecordExpiryDurationDays(_SerdeShape): + """ + The duration, in days, after which the records in this request expire. + The minimum is 31 days. + """ + + value: int + +@dataclass +class RecordExpirySpecificationAction(_SerdeShape): + """ + The action to apply to the existing record expiry configuration. Set to + `REMOVE` to remove a previously configured expiry so that the records no + longer expire. This value does not apply when creating records. + """ + + value: str + +@dataclass +class RecordExpirySpecificationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +RecordExpirySpecification = Union[ + RecordExpirySpecificationRecordExpiryDurationDays + | RecordExpirySpecificationAction + | RecordExpirySpecificationUnknown +] +""" +Specifies the record expiry (long-term memory time-to-live) applied to +the records in a batch request. Provide exactly one of +`recordExpiryDurationDays` or `action`. Set `recordExpiryDurationDays` +to configure or update the expiry, or set `action` to `REMOVE` to remove +a previously configured expiry. +""" + +class _RecordExpirySpecificationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> RecordExpirySpecification: ... + class RegistryRecordStatus(UnknownEnumMixin, StrEnum): """The status of a registry record in its lifecycle.""" @@ -7469,9 +7808,9 @@ class RetrieveMemoryRecordsInput(_SerdeShape): """ namespace: str | None = ... """ - The namespace prefix to filter memory records by. Searches for memory - records in namespaces that start with the provided prefix. Either - `namespace` or `namespacePath` is required. + The exact namespace to filter memory records by. Searches for memory + records that matches the provided namespace value. Either `namespace` or + `namespacePath` is required. """ namespace_path: str | None = ... """ @@ -7639,6 +7978,26 @@ class S3Location(_SerdeShape): (Optional). """ +@dataclass(kw_only=True) +class SampleSession(_SerdeShape): + """ + A session affected by an insight or root cause. Use the session ID to + find the per-session evaluation results in CloudWatch Logs. + """ + + session_id: str + """The unique identifier of the session.""" + last_seen_at: datetime | None = ... + """ + The latest timestamp observed for the session in the batch evaluation + input. + """ + findings: list[SessionFinding] | None = ... + """ + The failures found in the session that belong to the insight or root + cause, up to 10. + """ + @dataclass(kw_only=True) class SaveBrowserSessionProfileInput(_SerdeShape): """Dataclass for SaveBrowserSessionProfileInput structure.""" @@ -7839,6 +8198,24 @@ class ServiceQuotaExceededException(ServiceError, _SerdeShape): optional. """ +@dataclass(kw_only=True) +class ServiceUnavailableException(ServiceError, _SerdeShape): + """ + The service can't handle the request right now. Retry the request. If + the response includes `retryAfterSeconds`, wait that many seconds before + you retry. + """ + + retry_after_seconds: int | None = ... + """The number of seconds to wait before you retry the request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class SessionFilter(_SerdeShape): """Contains filter criteria for listing sessions.""" @@ -7867,6 +8244,24 @@ class SessionFilterConfig(_SerdeShape): timestamp are included. """ +@dataclass(kw_only=True) +class SessionFinding(_SerdeShape): + """A failure found in a session.""" + + target_id: str | None = ... + """ + The identifier or name of the location in the session where the failure + was found, interpreted according to `targetType`. + """ + target_type: str | None = ... + """The type of location that `targetId` refers to.""" + description: str + """A description of the failure.""" + category: str | None = ... + """The category of the failure.""" + confidence: float | None = ... + """The confidence that the finding is a failure, from 0 to 1.""" + @dataclass(kw_only=True) class SessionLimits(_SerdeShape): """The spending limits configuration for a payment session.""" @@ -9282,6 +9677,31 @@ class ViewPort(_SerdeShape): pixels. """ +@dataclass(kw_only=True) +class WebSearchFilters(_SerdeShape): + """The filters to apply to a web search.""" + + domain_filter: DomainFilter | None = ... + """The domains to include in or exclude from the results.""" + published_date_filter: PublishedDateFilter | None = ... + """The publication time range of the results.""" + +@dataclass(kw_only=True) +class WebSearchResult(_SerdeShape): + """A web search result.""" + + title: str | None = ... + """The title of the page.""" + url: str | None = ... + """The URL of the page.""" + text: str + """A text extract from the page.""" + published_at: datetime | None = ... + """ + The time the page was published. This field is absent when the + publication time is not known. + """ + @dataclass(kw_only=True) class Unit(_SerdeShape): """Dataclass for Unit structure.""" @@ -9368,6 +9788,7 @@ INVOKE_CODE_INTERPRETER: APIOperation[ InvokeCodeInterpreterInput, InvokeCodeInterpreterOutput ] INVOKE_HARNESS: APIOperation[InvokeHarnessInput, InvokeHarnessOutput] +INVOKE_WEB_SEARCH: APIOperation[InvokeWebSearchInput, InvokeWebSearchOutput] LIST_AB_TESTS: APIOperation[ListABTestsInput, ListABTestsOutput] LIST_ACTORS: APIOperation[ListActorsInput, ListActorsOutput] LIST_BATCH_EVALUATIONS: APIOperation[ diff --git a/clients/aws-sdk-bedrock-agentcore/tests/_typecheck.py b/clients/aws-sdk-bedrock-agentcore/tests/_typecheck.py index d834d99b..a7a5285e 100644 --- a/clients/aws-sdk-bedrock-agentcore/tests/_typecheck.py +++ b/clients/aws-sdk-bedrock-agentcore/tests/_typecheck.py @@ -80,6 +80,7 @@ DeleteRecommendationInput, DeleteRecommendationOutput, Descriptors, + DomainFilter, EfsConfiguration, EmbeddedCryptoWallet, EvaluateInput, @@ -174,12 +175,15 @@ HarnessToolUseBlock, HarnessToolUseBlockDelta, HarnessToolUseBlockStart, + IamCredentialProvider, IngestDataInput, IngestDataOutput, InlineGroundTruth, InlineMemoryContent, InputContentBlock, Insight, + InsightResult, + InsightRootCause, InsightsFailureSignal, InvokeAgentRuntimeCommandInput, InvokeAgentRuntimeCommandOutput, @@ -192,6 +196,8 @@ InvokeCodeInterpreterOutput, InvokeHarnessInput, InvokeHarnessOutput, + InvokeWebSearchInput, + InvokeWebSearchOutput, KeyPressArguments, KeyPressResult, KeyShortcutArguments, @@ -259,6 +265,7 @@ ProcessPaymentOutput, ProxyBypass, ProxyConfiguration, + PublishedDateFilter, RecommendationEvaluationConfig, RecommendationEvaluatorReference, RecommendationResultConfigurationBundle, @@ -271,6 +278,7 @@ RootCauseCluster, S3FilesConfiguration, S3Location, + SampleSession, SaveBrowserSessionProfileInput, SaveBrowserSessionProfileOutput, ScreenshotArguments, @@ -282,6 +290,7 @@ ServerDefinition, SessionFilter, SessionFilterConfig, + SessionFinding, SessionLimits, SessionMetadataShape, SessionSummary, @@ -337,6 +346,8 @@ VariantConfiguration, VariantResult, ViewPort, + WebSearchFilters, + WebSearchResult, ) @@ -442,6 +453,7 @@ DeleteRecommendationInput() DeleteRecommendationOutput(recommendation_id=_, status=_) Descriptors() +DomainFilter() EfsConfiguration(access_point_arn=_, mount_path=_, file_system_arn=_) EmbeddedCryptoWallet(network=_, linked_accounts=_) EvaluateInput() @@ -570,12 +582,15 @@ HarnessToolUseBlock(name=_, tool_use_id=_, input=_) HarnessToolUseBlockDelta(input=_) HarnessToolUseBlockStart(tool_use_id=_, name=_) +IamCredentialProvider(service=_) IngestDataInput() IngestDataOutput(session_id=_) InlineGroundTruth() InlineMemoryContent(payload=_) InputContentBlock(path=_) Insight(insight_id=_) +InsightResult(type=_, name=_, description=_, created_at=_) +InsightRootCause(name=_, explanation=_) InsightsFailureSignal(category=_, evidence=_, confidence=_) InvokeAgentRuntimeCommandInput() InvokeAgentRuntimeCommandOutput(content_type=_) @@ -588,6 +603,8 @@ InvokeCodeInterpreterOutput() InvokeHarnessInput() InvokeHarnessOutput() +InvokeWebSearchInput() +InvokeWebSearchOutput(results=_) KeyPressArguments(key=_) KeyPressResult(status=_) KeyShortcutArguments(keys=_) @@ -702,6 +719,7 @@ ) ProxyBypass() ProxyConfiguration(proxies=_) +PublishedDateFilter() RecommendationEvaluationConfig(evaluators=_) RecommendationEvaluatorReference(evaluator_arn=_) RecommendationResultConfigurationBundle(bundle_arn=_, version_id=_) @@ -740,6 +758,7 @@ ) S3FilesConfiguration(access_point_arn=_, mount_path=_, file_system_arn=_) S3Location(bucket=_, prefix=_) +SampleSession(session_id=_) SaveBrowserSessionProfileInput() SaveBrowserSessionProfileOutput( profile_identifier=_, browser_identifier=_, session_id=_, last_updated_at=_ @@ -753,6 +772,7 @@ ServerDefinition() SessionFilter() SessionFilterConfig() +SessionFinding(description=_) SessionLimits(max_spend_amount=_) SessionMetadataShape(session_id=_) SessionSummary(session_id=_, actor_id=_, created_at=_) @@ -830,4 +850,6 @@ VariantConfiguration() VariantResult(variant_name=_, sample_size=_, mean=_, is_significant=_) ViewPort(width=_, height=_) +WebSearchFilters() +WebSearchResult(text=_) Unit() diff --git a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/_private/schemas.py b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/_private/schemas.py index 6ae8ef09..7f7a7d6c 100644 --- a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/_private/schemas.py +++ b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/_private/schemas.py @@ -1312,6 +1312,8 @@ _ac = "action" _ena = "enabled" _GCGFCu = "GuardrailContextualGroundingFiltersConfig" +_GCGTN = "GuardrailContextualGroundingTierName" +_GCGTC = "GuardrailContextualGroundingTierConfig" _GCGPC = "GuardrailContextualGroundingPolicyConfig" _GCRGPI = "GuardrailCrossRegionGuardrailProfileIdentifier" _GCRC = "GuardrailCrossRegionConfig" @@ -1421,6 +1423,7 @@ _ti = "tier" _GCGF = "GuardrailContextualGroundingFilter" _GCGFu = "GuardrailContextualGroundingFilters" +_GCGT = "GuardrailContextualGroundingTier" _GCGP = "GuardrailContextualGroundingPolicy" _GCRGPA = "GuardrailCrossRegionGuardrailProfileArn" _GCRGPIu = "GuardrailCrossRegionGuardrailProfileId" @@ -8177,13 +8180,34 @@ ((GUARDRAIL_CONTEXTUAL_GROUNDING_FILTER_CONFIG, 0),), ) +GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_NAME: StaticSchema = ( + 14, + n0, + _GCGTN, + 4, + (_CLASSIC, _STANDARD), + ((-1, {_sV: _CLASSIC}), (-1, {_sV: _STANDARD})), +) + +GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_CONFIG: StaticSchema = ( + 18, + n0, + _GCGTC, + 0, + (_tNi,), + ((GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_NAME, 1),), +) + GUARDRAIL_CONTEXTUAL_GROUNDING_POLICY_CONFIG: StaticSchema = ( 18, n0, _GCGPC, 0, - (_fC,), - ((GUARDRAIL_CONTEXTUAL_GROUNDING_FILTERS_CONFIG, 1),), + (_fC, _tCi), + ( + (GUARDRAIL_CONTEXTUAL_GROUNDING_FILTERS_CONFIG, 1), + (GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_CONFIG, 0), + ), ) GUARDRAIL_CROSS_REGION_GUARDRAIL_PROFILE_IDENTIFIER: StaticSchema = (3, n0, _GCRGPI, 0) @@ -8721,13 +8745,25 @@ ((GUARDRAIL_CONTEXTUAL_GROUNDING_FILTER, 0),), ) +GUARDRAIL_CONTEXTUAL_GROUNDING_TIER: StaticSchema = ( + 18, + n0, + _GCGT, + 0, + (_tNi,), + ((GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_NAME, 1),), +) + GUARDRAIL_CONTEXTUAL_GROUNDING_POLICY: StaticSchema = ( 18, n0, _GCGP, 0, - (_fi,), - ((GUARDRAIL_CONTEXTUAL_GROUNDING_FILTERS, 1),), + (_fi, _ti), + ( + (GUARDRAIL_CONTEXTUAL_GROUNDING_FILTERS, 1), + (GUARDRAIL_CONTEXTUAL_GROUNDING_TIER, 0), + ), ) GUARDRAIL_CROSS_REGION_GUARDRAIL_PROFILE_ARN: StaticSchema = (3, n0, _GCRGPA, 0) diff --git a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.py b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.py index 98b9c118..1bcabfda 100644 --- a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.py +++ b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.py @@ -427,6 +427,9 @@ class ServiceError(ModeledError): "GuardrailContextualGroundingFilterType": "GUARDRAIL_CONTEXTUAL_GROUNDING_FILTER_TYPE", "GuardrailContextualGroundingPolicy": "GUARDRAIL_CONTEXTUAL_GROUNDING_POLICY", "GuardrailContextualGroundingPolicyConfig": "GUARDRAIL_CONTEXTUAL_GROUNDING_POLICY_CONFIG", + "GuardrailContextualGroundingTier": "GUARDRAIL_CONTEXTUAL_GROUNDING_TIER", + "GuardrailContextualGroundingTierConfig": "GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_CONFIG", + "GuardrailContextualGroundingTierName": "GUARDRAIL_CONTEXTUAL_GROUNDING_TIER_NAME", "GuardrailCrossRegionConfig": "GUARDRAIL_CROSS_REGION_CONFIG", "GuardrailCrossRegionDetails": "GUARDRAIL_CROSS_REGION_DETAILS", "GuardrailFilterStrength": "GUARDRAIL_FILTER_STRENGTH", @@ -1027,6 +1030,9 @@ class ServiceError(ModeledError): "GuardrailContextualGroundingFilterType", "GuardrailContextualGroundingPolicy", "GuardrailContextualGroundingPolicyConfig", + "GuardrailContextualGroundingTier", + "GuardrailContextualGroundingTierConfig", + "GuardrailContextualGroundingTierName", "GuardrailCrossRegionConfig", "GuardrailCrossRegionDetails", "GuardrailFilterStrength", diff --git a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.pyi b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.pyi index 040d9605..095c1edd 100644 --- a/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.pyi +++ b/clients/aws-sdk-bedrock/src/aws_sdk_bedrock/models.pyi @@ -6869,6 +6869,8 @@ class GuardrailContextualGroundingPolicy(_SerdeShape): filters: list[GuardrailContextualGroundingFilter] """The filter details for the guardrails contextual grounding policy.""" + tier: GuardrailContextualGroundingTier | None = ... + """The tier that your guardrail uses for contextual grounding.""" @dataclass(kw_only=True) class GuardrailContextualGroundingPolicyConfig(_SerdeShape): @@ -6882,6 +6884,56 @@ class GuardrailContextualGroundingPolicyConfig(_SerdeShape): The filter configuration details for the guardrails contextual grounding policy. """ + tier_config: GuardrailContextualGroundingTierConfig | None = ... + """The tier that your guardrail uses for contextual grounding.""" + +@dataclass(kw_only=True) +class GuardrailContextualGroundingTier(_SerdeShape): + """ + Specifies the tier that your guardrail uses for contextual grounding + checks. + """ + + tier_name: str + """ + The tier that your guardrail uses for contextual grounding. Valid values + include: + + - `CLASSIC` tier -- Provides established contextual grounding + functionality supporting English, French, and Spanish languages. + + - `STANDARD` tier -- Provides a more robust solution than the `CLASSIC` + tier, with support for reasoning, conversational content and more + comprehensive language support. This tier requires that your guardrail + use [cross-Region + inference](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html). + """ + +@dataclass(kw_only=True) +class GuardrailContextualGroundingTierConfig(_SerdeShape): + """ + Specifies the tier that your guardrail uses for contextual grounding + checks. + """ + + tier_name: str + """ + The tier that your guardrail uses for contextual grounding. Valid values + include: + + - `CLASSIC` tier -- Provides established contextual grounding + functionality supporting English, French, and Spanish languages. + + - `STANDARD` tier -- Provides a more robust solution than the `CLASSIC` + tier, with support for reasoning, conversational content and more + comprehensive language support. This tier requires that your guardrail + use [cross-Region + inference](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html). + """ + +class GuardrailContextualGroundingTierName(UnknownEnumMixin, StrEnum): + CLASSIC = "CLASSIC" + STANDARD = "STANDARD" @dataclass(kw_only=True) class GuardrailCrossRegionConfig(_SerdeShape): diff --git a/clients/aws-sdk-bedrock/tests/_typecheck.py b/clients/aws-sdk-bedrock/tests/_typecheck.py index eed53611..3c12e14e 100644 --- a/clients/aws-sdk-bedrock/tests/_typecheck.py +++ b/clients/aws-sdk-bedrock/tests/_typecheck.py @@ -267,6 +267,8 @@ GuardrailContextualGroundingFilterConfig, GuardrailContextualGroundingPolicy, GuardrailContextualGroundingPolicyConfig, + GuardrailContextualGroundingTier, + GuardrailContextualGroundingTierConfig, GuardrailCrossRegionConfig, GuardrailCrossRegionDetails, GuardrailManagedWords, @@ -890,6 +892,8 @@ GuardrailContextualGroundingFilterConfig(type=_, threshold=_) GuardrailContextualGroundingPolicy(filters=_) GuardrailContextualGroundingPolicyConfig(filters_config=_) +GuardrailContextualGroundingTier(tier_name=_) +GuardrailContextualGroundingTierConfig(tier_name=_) GuardrailCrossRegionConfig(guardrail_profile_identifier=_) GuardrailCrossRegionDetails() GuardrailManagedWords(type=_) diff --git a/clients/aws-sdk-cloudformation/README.md b/clients/aws-sdk-cloudformation/README.md new file mode 100644 index 00000000..4367c5e7 --- /dev/null +++ b/clients/aws-sdk-cloudformation/README.md @@ -0,0 +1,30 @@ + + +## AWS CloudFormation Client + +aws_sdk_cloudformation client + +### Documentation + +CloudFormation allows you to create and manage Amazon Web Services +infrastructure deployments predictably and repeatedly. You can use +CloudFormation to leverage Amazon Web Services products, such as Amazon +Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple +Notification Service, Elastic Load Balancing, and Amazon EC2 Auto +Scaling to build highly reliable, highly scalable, cost-effective +applications without creating or configuring the underlying Amazon Web +Services infrastructure. + +With CloudFormation, you declare all your resources and dependencies in +a template file. The template defines a collection of resources as a +single unit called a stack. CloudFormation creates and deletes all +member resources of the stack together and manages all dependencies +between the resources for you. + +For more information about CloudFormation, see the [CloudFormation +product page](http://aws.amazon.com/cloudformation/). + +CloudFormation makes use of other Amazon Web Services products. If you +need additional technical information about a specific Amazon Web +Services product, you can find the product's technical documentation at +[docs.aws.amazon.com](https://docs.aws.amazon.com/). diff --git a/clients/aws-sdk-cloudformation/pyproject.toml b/clients/aws-sdk-cloudformation/pyproject.toml new file mode 100644 index 00000000..644dd01f --- /dev/null +++ b/clients/aws-sdk-cloudformation/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_cloudformation" +version = "0.12.0" +description = "aws_sdk_cloudformation client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_cloudformation"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/__init__.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/__init__.py new file mode 100644 index 00000000..aa4ec65e --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/__init__.py @@ -0,0 +1,34 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import CloudFormationClient + from .config import CloudFormationConfig + from .aio.client import AsyncCloudFormationClient + from .aio.config import AsyncCloudFormationConfig + +__all__ = [ + "CloudFormationClient", + "CloudFormationConfig", + "AsyncCloudFormationClient", + "AsyncCloudFormationConfig", +] + +_EXPORTS = { + "CloudFormationClient": ".client", + "CloudFormationConfig": ".config", + "AsyncCloudFormationClient": ".aio.client", + "AsyncCloudFormationConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/__init__.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/endpoints.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/endpoints.py new file mode 100644 index 00000000..d3243b1d --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/endpoints.py @@ -0,0 +1,63 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.cloudformation#CloudFormation.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 7: stringEquals(PartitionResult#name, "aws-us-gov") + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://cloudformation.{Region}.amazonaws.com", None, ()), # 6 + (6, "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 7 + (5, "FIPS is enabled but this partition does not support FIPS"), # 8 + (6, "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 + (5, "DualStack is enabled but this partition does not support DualStack"), # 10 + (6, "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 11 + (5, "Invalid Configuration: Missing Region"), # 12 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 13, 3, + 1, 4, 100_000_012, + 2, 5, 100_000_012, + 3, 8, 6, + 4, 7, 100_000_011, + 5, 100_000_009, 100_000_010, + 4, 11, 9, + 6, 10, 100_000_008, + 7, 100_000_006, 100_000_007, + 5, 12, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 14, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/schemas.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/schemas.py new file mode 100644 index 00000000..3d40b71d --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/_private/schemas.py @@ -0,0 +1,7956 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.cloudformation" +_ATAC = "AcceptTermsAndConditions" +_A = "Account" +_AFT = "AccountFilterType" +_NONE = "NONE" +_sV = "smithy.api#enumValue" +_INTERSECTION = "INTERSECTION" +_DIFFERENCE = "DIFFERENCE" +_UNION = "UNION" +_AGS = "AccountGateStatus" +_SUCCEEDED = "SUCCEEDED" +_FAILED = "FAILED" +_SKIPPED = "SKIPPED" +_AGSR = "AccountGateStatusReason" +_AGR = "AccountGateResult" +_S = "Status" +_SR = "StatusReason" +_LN = "LimitName" +_LV = "LimitValue" +_AL = "AccountLimit" +_N = "Name" +_V = "Value" +_ALL = "AccountLimitList" +_m = "member" +_ALc = "AccountList" +_AU = "AccountsUrl" +_AOAI = "ActivateOrganizationsAccessInput" +_s = "smithy.api#input" +_AOAO = "ActivateOrganizationsAccessOutput" +_sm = "smithy.api#output" +_EM = "ErrorMessage" +_IOE = "InvalidOperationException" +_smi = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_aQE = "aws.protocols#awsQueryError" +_M = "Message" +_ONFE = "OperationNotFoundException" +_AOA = "ActivateOrganizationsAccess" +_AUu = "AutoUpdate" +_RARN = "RoleARN2" +_LGN = "LogGroupName" +_LC = "LoggingConfig" +_LRA = "LogRoleArn" +_smit = "smithy.api#required" +_MV = "MajorVersion" +_TPTA = "ThirdPartyTypeArn" +_PI = "PublisherId" +_TPT = "ThirdPartyType" +_RESOURCE = "RESOURCE" +_MODULE = "MODULE" +_HOOK = "HOOK" +_TN = "TypeName" +_VB = "VersionBump" +_MAJOR = "MAJOR" +_MINOR = "MINOR" +_ATI = "ActivateTypeInput" +_T = "Type" +_PTA = "PublicTypeArn" +_TNA = "TypeNameAlias" +_ERA = "ExecutionRoleArn" +_PTAr = "PrivateTypeArn" +_ATO = "ActivateTypeOutput" +_Ar = "Arn" +_CFNRE = "CFNRegistryException" +_TNFE = "TypeNotFoundException" +_AT = "ActivateType" +_AC = "AfterContext" +_AV = "AfterValue" +_AVF = "AfterValueFrom" +_TEMPLATE = "TEMPLATE" +_AVl = "AllowedValue" +_AVll = "AllowedValues" +_AEE = "AlreadyExistsException" +_AN = "AnnotationName" +_ARL = "AnnotationRemediationLink" +_RMRM = "RemediationMessageRemediationMessage" +_ASL = "AnnotationSeverityLevel" +_INFORMATIONAL = "INFORMATIONAL" +_LOW = "LOW" +_MEDIUM = "MEDIUM" +_HIGH = "HIGH" +_CRITICAL = "CRITICAL" +_AS = "AnnotationStatus" +_PASSED = "PASSED" +_RMSM = "RemediationMessageStatusMessage" +_An = "Annotation" +_SM = "StatusMessage" +_RM = "RemediationMessage" +_RL = "RemediationLink" +_SL = "SeverityLevel" +_ALn = "AnnotationList" +_ACT = "AttributeChangeType" +_Ad = "Add" +_R = "Remove" +_Mo = "Modify" +_SWA = "SyncWithActual" +_SSARN = "StackSetARN" +_SSARNL = "StackSetARNList" +_ADN = "AutoDeploymentNullable" +_RSOARN = "RetainStacksOnAccountRemovalNullable" +_AD = "AutoDeployment" +_E = "Enabled" +_RSOAR = "RetainStacksOnAccountRemoval" +_DO = "DependsOn" +_TA = "TypeArn" +_TCA = "TypeConfigurationAlias" +_TCAy = "TypeConfigurationArn" +_TCI = "TypeConfigurationIdentifier" +_TCIy = "TypeConfigurationIdentifiers" +_BDTCI = "BatchDescribeTypeConfigurationsInput" +_EC = "ErrorCode" +_BDTCE = "BatchDescribeTypeConfigurationsError" +_BDTCEa = "BatchDescribeTypeConfigurationsErrors" +_TC = "TypeConfiguration" +_IDC = "IsDefaultConfiguration" +_Ti = "Timestamp" +_TCD = "TypeConfigurationDetails" +_Al = "Alias" +_C = "Configuration" +_LU = "LastUpdated" +_TCDL = "TypeConfigurationDetailsList" +_UTC = "UnprocessedTypeConfigurations" +_BDTCO = "BatchDescribeTypeConfigurationsOutput" +_Er = "Errors" +_TCy = "TypeConfigurations" +_TCNFE = "TypeConfigurationNotFoundException" +_BDTC = "BatchDescribeTypeConfigurations" +_BSOS = "BeaconStackOperationStatus" +_IP = "IN_PROGRESS" +_BC = "BeforeContext" +_BV = "BeforeValue" +_BVF = "BeforeValueFrom" +_PDS = "PREVIOUS_DEPLOYMENT_STATE" +_AS_ = "ACTUAL_STATE" +_BI = "BoxedInteger" +_BMR = "BoxedMaxResults" +_CA = "CallAs" +_SELF = "SELF" +_DA = "DELEGATED_ADMIN" +_CRT = "ClientRequestToken" +_SN = "StackName" +_CUSI = "CancelUpdateStackInput" +_CUSO = "CancelUpdateStackOutput" +_sSI = "smithy.synthetic#originalShapeId" +_sU = "smithy.api#Unit" +_TAEE = "TokenAlreadyExistsException" +_CUS = "CancelUpdateStack" +_Ca = "Capability" +_CI = "CAPABILITY_IAM" +_CNI = "CAPABILITY_NAMED_IAM" +_CAE = "CAPABILITY_AUTO_EXPAND" +_Cap = "Capabilities" +_CR = "CapabilitiesReason" +_Cat = "Category" +_REGISTERED = "REGISTERED" +_ACTIVATED = "ACTIVATED" +_TP = "THIRD_PARTY" +_AT_ = "AWS_TYPES" +_CE = "CausingEntity" +_HIC = "HookInvocationCount" +_CAh = "ChangeAction" +_I = "Import" +_D = "Dynamic" +_CSI = "ChangeSetId" +_CS = "ChangeSource" +_RR = "ResourceReference" +_PR = "ParameterReference" +_RA = "ResourceAttribute" +_DM = "DirectModification" +_Au = "Automatic" +_NM = "NoModification" +_ET = "EvaluationType" +_St = "Static" +_P = "Properties" +_Me = "Metadata" +_CP = "CreationPolicy" +_UP = "UpdatePolicy" +_DP = "DeletionPolicy" +_URP = "UpdateReplacePolicy" +_Ta = "Tags" +_RDAV = "ResourceDriftActualValue" +_RDPV = "ResourceDriftPreviousValue" +_LRD = "LiveResourceDrift" +_PV = "PreviousValue" +_AVc = "ActualValue" +_DDT = "DriftDetectionTimestamp" +_PN = "PropertyName" +_RPP = "ResourcePropertyPath" +_RRe = "RequiresRecreation" +_Ne = "Never" +_Co = "Conditionally" +_Alw = "Always" +_RTD = "ResourceTargetDefinition" +_At = "Attribute" +_Pa = "Path" +_Dr = "Drift" +_RCD = "ResourceChangeDetail" +_Tar = "Target" +_Ev = "Evaluation" +_RCDe = "ResourceChangeDetails" +_LRI = "LogicalResourceId" +_LIH = "LogicalIdHierarchy" +_TH = "TypeHierarchy" +_MI = "ModuleInfo" +_PRI = "PhysicalResourceId" +_PA = "PolicyAction" +_De = "Delete" +_Re = "Retain" +_Sn = "Snapshot" +_RAD = "ReplaceAndDelete" +_RAR = "ReplaceAndRetain" +_RAS = "ReplaceAndSnapshot" +_PDC = "PreviousDeploymentContext" +_Rep = "Replacement" +_Tr = "True" +_F = "False" +_Con = "Conditional" +_DIR = "DriftIgnoredReason" +_MBA = "MANAGED_BY_AWS" +_WOP = "WRITE_ONLY_PROPERTY" +_SP = "SENSITIVE_PROPERTY" +_RDIA = "ResourceDriftIgnoredAttribute" +_Rea = "Reason" +_RDIAe = "ResourceDriftIgnoredAttributes" +_SRDS = "StackResourceDriftStatus" +_IS = "IN_SYNC" +_MODIFIED = "MODIFIED" +_DELETED = "DELETED" +_NC = "NOT_CHECKED" +_UNKNOWN = "UNKNOWN" +_UNSUPPORTED = "UNSUPPORTED" +_RT = "ResourceType" +_Sc = "Scope" +_RC = "ResourceChange" +_Ac = "Action" +_RDS = "ResourceDriftStatus" +_Det = "Details" +_CT = "ChangeType" +_Res = "Resource" +_Ch = "Change" +_Cha = "Changes" +_HFM = "HookFailureMode" +_FAIL = "FAIL" +_WARN = "WARN" +_HIP = "HookInvocationPoint" +_PP = "PRE_PROVISION" +_HTTN = "HookTargetTypeName" +_CSHRTD = "ChangeSetHookResourceTargetDetails" +_RAe = "ResourceAction" +_HTT = "HookTargetType" +_CSHTD = "ChangeSetHookTargetDetails" +_TT = "TargetType" +_RTDe = "ResourceTargetDetails" +_HTCVI = "HookTypeConfigurationVersionId" +_HTN = "HookTypeName" +_HTVI = "HookTypeVersionId" +_CSH = "ChangeSetHook" +_IPn = "InvocationPoint" +_FM = "FailureMode" +_TVI = "TypeVersionId" +_TCVI = "TypeConfigurationVersionId" +_TD = "TargetDetails" +_CSHh = "ChangeSetHooks" +_CSHS = "ChangeSetHooksStatus" +_PLANNING = "PLANNING" +_PLANNED = "PLANNED" +_UNAVAILABLE = "UNAVAILABLE" +_CSN = "ChangeSetName" +_CSNOI = "ChangeSetNameOrId" +_CSNFE = "ChangeSetNotFoundException" +_CSS = "ChangeSetStatus" +_CP_ = "CREATE_PENDING" +_CIP = "CREATE_IN_PROGRESS" +_CC = "CREATE_COMPLETE" +_DP_ = "DELETE_PENDING" +_DIP = "DELETE_IN_PROGRESS" +_DC = "DELETE_COMPLETE" +_DF = "DELETE_FAILED" +_CSSR = "ChangeSetStatusReason" +_CTr = "CreationTime" +_Des = "Description" +_ES = "ExecutionStatus" +_AVAILABLE = "AVAILABLE" +_EIP = "EXECUTE_IN_PROGRESS" +_EC_ = "EXECUTE_COMPLETE" +_EF = "EXECUTE_FAILED" +_OBSOLETE = "OBSOLETE" +_IER = "ImportExistingResources" +_INS = "IncludeNestedStacks" +_SI = "StackId" +_CSSh = "ChangeSetSummary" +_PCSI = "ParentChangeSetId" +_RCSI = "RootChangeSetId" +_CSSha = "ChangeSetSummaries" +_CST = "ChangeSetType" +_CREATE = "CREATE" +_UPDATE = "UPDATE" +_IMPORT = "IMPORT" +_CTl = "ClientToken" +_FR = "ForceRollback" +_RTS = "ResourceToSkip" +_RTSe = "ResourcesToSkip" +_RARNo = "RoleARN" +_SNOI = "StackNameOrId" +_CURI = "ContinueUpdateRollbackInput" +_CURO = "ContinueUpdateRollbackOutput" +_CUR = "ContinueUpdateRollback" +_DR = "DisableRollback" +_DCM = "DeploymentConfigMode" +_STANDARD = "STANDARD" +_EXPRESS = "EXPRESS" +_DCe = "DeploymentConfig" +_Mod = "Mode" +_DMe = "DeploymentMode" +_RD = "REVERT_DRIFT" +_DV = "DisableValidation" +_NARN = "NotificationARN" +_NARNo = "NotificationARNs" +_OSF = "OnStackFailure" +_DN = "DO_NOTHING" +_ROLLBACK = "ROLLBACK" +_DELETE = "DELETE" +_PK = "ParameterKey" +_PVa = "ParameterValue" +_UPV = "UsePreviousValue" +_Par = "Parameter" +_RV = "ResolvedValue" +_Para = "Parameters" +_RIPK = "ResourceIdentifierPropertyKey" +_RIPV = "ResourceIdentifierPropertyValue" +_RIP = "ResourceIdentifierProperties" +_k = "key" +_v = "value" +_RTI = "ResourceToImport" +_RI = "ResourceIdentifier" +_RTIe = "ResourcesToImport" +_RTe = "ResourceTypes" +_MTIM = "MonitoringTimeInMinutes" +_RTo = "RollbackTrigger" +_RTol = "RollbackTriggers" +_RCo = "RollbackConfiguration" +_TK = "TagKey" +_TV = "TagValue" +_Tag = "Tag" +_K = "Key" +_TB = "TemplateBody" +_TURL = "TemplateURL" +_UPT = "UsePreviousTemplate" +_CCSI = "CreateChangeSetInput" +_CCSO = "CreateChangeSetOutput" +_Id = "Id" +_ICE = "InsufficientCapabilitiesException" +_LEE = "LimitExceededException" +_CCS = "CreateChangeSet" +_CRLEE = "ConcurrentResourcesLimitExceededException" +_GTN = "GeneratedTemplateName" +_RDe = "ResourceDefinition" +_RDes = "ResourceDefinitions" +_GTDP = "GeneratedTemplateDeletionPolicy" +_RETAIN = "RETAIN" +_GTURP = "GeneratedTemplateUpdateReplacePolicy" +_TCe = "TemplateConfiguration" +_CGTI = "CreateGeneratedTemplateInput" +_Reso = "Resources" +_GTI = "GeneratedTemplateId" +_CGTO = "CreateGeneratedTemplateOutput" +_CGT = "CreateGeneratedTemplate" +_ETP = "EnableTerminationProtection" +_OF = "OnFailure" +_REOC = "RetainExceptOnCreate" +_SPB = "StackPolicyBody" +_SPURL = "StackPolicyURL" +_TM = "TimeoutMinutes" +_CSIr = "CreateStackInput" +_TIM = "TimeoutInMinutes" +_OI = "OperationId" +_CSO = "CreateStackOutput" +_CSr = "CreateStack" +_OUI = "OrganizationalUnitId" +_OUIL = "OrganizationalUnitIdList" +_DT = "DeploymentTargets" +_Acc = "Accounts" +_OUIr = "OrganizationalUnitIds" +_CM = "ConcurrencyMode" +_SFT = "STRICT_FAILURE_TOLERANCE" +_SFT_ = "SOFT_FAILURE_TOLERANCE" +_FTC = "FailureToleranceCount" +_FTP = "FailureTolerancePercentage" +_MCC = "MaxConcurrentCount" +_MCP = "MaxConcurrentPercentage" +_RCT = "RegionConcurrencyType" +_SEQUENTIAL = "SEQUENTIAL" +_PARALLEL = "PARALLEL" +_Reg = "Region" +_RLe = "RegionList" +_SSOP = "StackSetOperationPreferences" +_RO = "RegionOrder" +_SSN = "StackSetName" +_CSII = "CreateStackInstancesInput" +_Regi = "Regions" +_PO = "ParameterOverrides" +_OP = "OperationPreferences" +_sT = "smithy.api#idempotencyToken" +_CSIO = "CreateStackInstancesOutput" +_OIAEE = "OperationIdAlreadyExistsException" +_OIPE = "OperationInProgressException" +_SSNFE = "StackSetNotFoundException" +_SRE = "StaleRequestException" +_CSIre = "CreateStackInstances" +_ESC = "EnableStackCreation" +_RLes = "ResourceLocation" +_RMe = "ResourceMapping" +_So = "Source" +_Dest = "Destination" +_RMes = "ResourceMappings" +_SD = "StackDefinition" +_SDt = "StackDefinitions" +_CSRI = "CreateStackRefactorInput" +_SRI = "StackRefactorId" +_CSRO = "CreateStackRefactorOutput" +_CSR = "CreateStackRefactor" +_CBME = "CreatedButModifiedException" +_ERN = "ExecutionRoleName" +_MEN = "ManagedExecutionNullable" +_ME = "ManagedExecution" +_Act = "Active" +_PM = "PermissionModels" +_SM_ = "SERVICE_MANAGED" +_SM__ = "SELF_MANAGED" +_CSSI = "CreateStackSetInput" +_ARARN = "AdministrationRoleARN" +_PMe = "PermissionModel" +_SSI = "StackSetId" +_CSSO = "CreateStackSetOutput" +_NAEE = "NameAlreadyExistsException" +_CSSr = "CreateStackSet" +_DOAI = "DeactivateOrganizationsAccessInput" +_DOAO = "DeactivateOrganizationsAccessOutput" +_DOA = "DeactivateOrganizationsAccess" +_DTI = "DeactivateTypeInput" +_DTO = "DeactivateTypeOutput" +_DTe = "DeactivateType" +_DCSI = "DeleteChangeSetInput" +_DCSO = "DeleteChangeSetOutput" +_ICSSE = "InvalidChangeSetStatusException" +_DCS = "DeleteChangeSet" +_DGTI = "DeleteGeneratedTemplateInput" +_DGTO = "DeleteGeneratedTemplateOutput" +_GTNFE = "GeneratedTemplateNotFoundException" +_DGT = "DeleteGeneratedTemplate" +_DMel = "DeletionMode" +_FDS = "FORCE_DELETE_STACK" +_RRet = "RetainResources" +_DSI = "DeleteStackInput" +_DSO = "DeleteStackOutput" +_DS = "DeleteStack" +_RS = "RetainStacks" +_DSII = "DeleteStackInstancesInput" +_DSIO = "DeleteStackInstancesOutput" +_DSIe = "DeleteStackInstances" +_DSSI = "DeleteStackSetInput" +_DSSO = "DeleteStackSetOutput" +_SSNEE = "StackSetNotEmptyException" +_DSS = "DeleteStackSet" +_RTeg = "RegistryType" +_DTIe = "DeregisterTypeInput" +_VI = "VersionId" +_DTOe = "DeregisterTypeOutput" +_DTer = "DeregisterType" +_NT = "NextToken" +_DALI = "DescribeAccountLimitsInput" +_DALO = "DescribeAccountLimitsOutput" +_ALcc = "AccountLimits" +_DAL = "DescribeAccountLimits" +_IPV = "IncludePropertyValues" +_DCSIe = "DescribeChangeSetInput" +_SDS = "StackDriftStatus" +_DRIFTED = "DRIFTED" +_DCSOe = "DescribeChangeSetOutput" +_DCSe = "DescribeChangeSet" +_DCSHI = "DescribeChangeSetHooksInput" +_DCSHO = "DescribeChangeSetHooksOutput" +_H = "Hooks" +_DCSH = "DescribeChangeSetHooks" +_FEF = "FailedEventsFilter" +_EFv = "EventFilter" +_FE = "FailedEvents" +_DEI = "DescribeEventsInput" +_Fi = "Filters" +_DSe = "DetailedStatus" +_CC_ = "CONFIGURATION_COMPLETE" +_VF = "VALIDATION_FAILED" +_EI = "EventId" +_ETv = "EventType" +_SE = "STACK_EVENT" +_PE = "PROGRESS_EVENT" +_VE = "VALIDATION_ERROR" +_PE_ = "PROVISIONING_ERROR" +_HIE = "HOOK_INVOCATION_ERROR" +_HS = "HookStatus" +_HIP_ = "HOOK_IN_PROGRESS" +_HCS = "HOOK_COMPLETE_SUCCEEDED" +_HCF = "HOOK_COMPLETE_FAILED" +_HF = "HOOK_FAILED" +_HSR = "HookStatusReason" +_HT = "HookType" +_OT = "OperationType" +_CS_ = "CREATE_STACK" +_US = "UPDATE_STACK" +_DS_ = "DELETE_STACK" +_CR_ = "CONTINUE_ROLLBACK" +_CC__ = "CREATE_CHANGESET" +_RP = "ResourceProperties" +_RSe = "ResourceStatus" +_CF = "CREATE_FAILED" +_DS__ = "DELETE_SKIPPED" +_UIP = "UPDATE_IN_PROGRESS" +_UF = "UPDATE_FAILED" +_UC = "UPDATE_COMPLETE" +_IF = "IMPORT_FAILED" +_IC = "IMPORT_COMPLETE" +_IIP = "IMPORT_IN_PROGRESS" +_IRIP = "IMPORT_ROLLBACK_IN_PROGRESS" +_IRF = "IMPORT_ROLLBACK_FAILED" +_IRC = "IMPORT_ROLLBACK_COMPLETE" +_EF_ = "EXPORT_FAILED" +_EC__ = "EXPORT_COMPLETE" +_EIP_ = "EXPORT_IN_PROGRESS" +_ERIP = "EXPORT_ROLLBACK_IN_PROGRESS" +_ERF = "EXPORT_ROLLBACK_FAILED" +_ERC = "EXPORT_ROLLBACK_COMPLETE" +_URIP = "UPDATE_ROLLBACK_IN_PROGRESS" +_URC = "UPDATE_ROLLBACK_COMPLETE" +_URF = "UPDATE_ROLLBACK_FAILED" +_RIP_ = "ROLLBACK_IN_PROGRESS" +_RC_ = "ROLLBACK_COMPLETE" +_RF = "ROLLBACK_FAILED" +_RSR = "ResourceStatusReason" +_VN = "ValidationName" +_VP = "ValidationPath" +_VS = "ValidationStatus" +_VSR = "ValidationStatusReason" +_OE = "OperationEvent" +_OS = "OperationStatus" +_ST = "StartTime" +_ETn = "EndTime" +_VFM = "ValidationFailureMode" +_OEp = "OperationEvents" +_DEO = "DescribeEventsOutput" +_DE = "DescribeEvents" +_DGTIe = "DescribeGeneratedTemplateInput" +_LUT = "LastUpdatedTime" +_RFe = "ResourcesFailed" +_RPe = "ResourcesPending" +_RPes = "ResourcesProcessing" +_RSes = "ResourcesSucceeded" +_TPe = "TemplateProgress" +_GTRS = "GeneratedTemplateResourceStatus" +_PENDING = "PENDING" +_COMPLETE = "COMPLETE" +_PD = "PropertyDescription" +_PPr = "PropertyPath" +_RPeq = "RequiredProperty" +_WP = "WarningProperty" +_Req = "Required" +_WPa = "WarningProperties" +_WT = "WarningType" +_MEP = "MUTUALLY_EXCLUSIVE_PROPERTIES" +_UP_ = "UNSUPPORTED_PROPERTIES" +_MET = "MUTUALLY_EXCLUSIVE_TYPES" +_EP = "EXCLUDED_PROPERTIES" +_ER = "EXCLUDED_RESOURCES" +_WD = "WarningDetail" +_WDa = "WarningDetails" +_RDeso = "ResourceDetail" +_W = "Warnings" +_RDesou = "ResourceDetails" +_GTS = "GeneratedTemplateStatus" +_UP__ = "UPDATE_PENDING" +_TSR = "TemplateStatusReason" +_TW = "TotalWarnings" +_DGTOe = "DescribeGeneratedTemplateOutput" +_Pr = "Progress" +_DGTe = "DescribeGeneratedTemplate" +_DOAIe = "DescribeOrganizationsAccessInput" +_OSr = "OrganizationStatus" +_ENABLED = "ENABLED" +_DISABLED = "DISABLED" +_DP__ = "DISABLED_PERMANENTLY" +_DOAOe = "DescribeOrganizationsAccessOutput" +_DOAe = "DescribeOrganizationsAccess" +_DPI = "DescribePublisherInput" +_IPd = "IdentityProvider" +_AM = "AWS_Marketplace" +_GH = "GitHub" +_B = "Bitbucket" +_PPu = "PublisherProfile" +_PS = "PublisherStatus" +_VERIFIED = "VERIFIED" +_UNVERIFIED = "UNVERIFIED" +_DPO = "DescribePublisherOutput" +_DPe = "DescribePublisher" +_RSI = "ResourceScanId" +_DRSI = "DescribeResourceScanInput" +_PC = "PercentageCompleted" +_RRes = "ResourcesRead" +_RSeso = "ResourcesScanned" +_RTF = "ResourceTypeFilter" +_RTFe = "ResourceTypeFilters" +_SF = "ScanFilter" +_Ty = "Types" +_SFc = "ScanFilters" +_RSS = "ResourceScanStatus" +_EXPIRED = "EXPIRED" +_RSSR = "ResourceScanStatusReason" +_DRSO = "DescribeResourceScanOutput" +_RSNFE = "ResourceScanNotFoundException" +_DRS = "DescribeResourceScan" +_SDDI = "StackDriftDetectionId" +_DSDDSI = "DescribeStackDriftDetectionStatusInput" +_SDDS = "StackDriftDetectionStatus" +_DIP_ = "DETECTION_IN_PROGRESS" +_DF_ = "DETECTION_FAILED" +_DC_ = "DETECTION_COMPLETE" +_SDDSR = "StackDriftDetectionStatusReason" +_DSDDSO = "DescribeStackDriftDetectionStatusOutput" +_DSet = "DetectionStatus" +_DSR = "DetectionStatusReason" +_DSRC = "DriftedStackResourceCount" +_DSDDS = "DescribeStackDriftDetectionStatus" +_DSEI = "DescribeStackEventsInput" +_HII = "HookInvocationId" +_SEt = "StackEvent" +_SEta = "StackEvents" +_DSEO = "DescribeStackEventsOutput" +_DSE = "DescribeStackEvents" +_DSIIe = "DescribeStackInstanceInput" +_SIA = "StackInstanceAccount" +_SIR = "StackInstanceRegion" +_SIDS = "StackInstanceDetailedStatus" +_RUNNING = "RUNNING" +_CANCELLED = "CANCELLED" +_INOPERABLE = "INOPERABLE" +_SSA = "SKIPPED_SUSPENDED_ACCOUNT" +_FI = "FAILED_IMPORT" +_SICS = "StackInstanceComprehensiveStatus" +_SIS = "StackInstanceStatus" +_CURRENT = "CURRENT" +_OUTDATED = "OUTDATED" +_SIt = "StackInstance" +_DSr = "DriftStatus" +_LDCT = "LastDriftCheckTimestamp" +_LOI = "LastOperationId" +_DSIOe = "DescribeStackInstanceOutput" +_SINFE = "StackInstanceNotFoundException" +_DSIes = "DescribeStackInstance" +_DSRI = "DescribeStackRefactorInput" +_SRES = "StackRefactorExecutionStatus" +_ESR = "ExecutionStatusReason" +_SIta = "StackIds" +_SRS = "StackRefactorStatus" +_SRSR = "StackRefactorStatusReason" +_DSRO = "DescribeStackRefactorOutput" +_SRNFE = "StackRefactorNotFoundException" +_DSRe = "DescribeStackRefactor" +_DSRIe = "DescribeStackResourceInput" +_SRDI = "StackResourceDriftInformation" +_LCT = "LastCheckTimestamp" +_SRD = "StackResourceDetail" +_LUTa = "LastUpdatedTimestamp" +_DI = "DriftInformation" +_DSROe = "DescribeStackResourceOutput" +_DSRes = "DescribeStackResource" +_SRDSF = "StackResourceDriftStatusFilters" +_DSRDI = "DescribeStackResourceDriftsInput" +_MR = "MaxResults" +_SRDSR = "StackResourceDriftStatusReason" +_PRICKVP = "PhysicalResourceIdContextKeyValuePair" +_PRIC = "PhysicalResourceIdContext" +_PVr = "PropertyValue" +_DTi = "DifferenceType" +_ADD = "ADD" +_REMOVE = "REMOVE" +_NE = "NOT_EQUAL" +_PDr = "PropertyDifference" +_EV = "ExpectedValue" +_PDro = "PropertyDifferences" +_SRDt = "StackResourceDrift" +_EPx = "ExpectedProperties" +_AP = "ActualProperties" +_DSRr = "DriftStatusReason" +_SRDta = "StackResourceDrifts" +_DSRDO = "DescribeStackResourceDriftsOutput" +_DSRD = "DescribeStackResourceDrifts" +_DSRIes = "DescribeStackResourcesInput" +_SRt = "StackResource" +_SRta = "StackResources" +_DSROes = "DescribeStackResourcesOutput" +_DSResc = "DescribeStackResources" +_DSIesc = "DescribeStacksInput" +_DTel = "DeletionTime" +_SDI = "StackDriftInformation" +_OEpe = "OperationEntry" +_LO = "LastOperations" +_EN = "ExportName" +_OK = "OutputKey" +_OV = "OutputValue" +_O = "Output" +_Ou = "Outputs" +_SS = "StackStatus" +_UCCIP = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" +_URCCIP = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS" +_RIP__ = "REVIEW_IN_PROGRESS" +_SSR = "StackStatusReason" +_Sta = "Stack" +_PIa = "ParentId" +_RIo = "RootId" +_Stac = "Stacks" +_DSOe = "DescribeStacksOutput" +_DSes = "DescribeStacks" +_DSSIe = "DescribeStackSetInput" +_SSDDS = "StackSetDriftDetectionStatus" +_COMPLETED = "COMPLETED" +_PS_ = "PARTIAL_SUCCESS" +_STOPPED = "STOPPED" +_DSIC = "DriftedStackInstancesCount" +_SSDS = "StackSetDriftStatus" +_FSIC = "FailedStackInstancesCount" +_IPSIC = "InProgressStackInstancesCount" +_ISSIC = "InSyncStackInstancesCount" +_TSIC = "TotalStackInstancesCount" +_SSDDD = "StackSetDriftDetectionDetails" +_DDS = "DriftDetectionStatus" +_SSS = "StackSetStatus" +_ACTIVE = "ACTIVE" +_SSt = "StackSet" +_DSSOe = "DescribeStackSetOutput" +_DSSe = "DescribeStackSet" +_DSSOI = "DescribeStackSetOperationInput" +_SSOA = "StackSetOperationAction" +_DD = "DETECT_DRIFT" +_RSN = "RetainStacksNullable" +_SSOS = "StackSetOperationStatus" +_STOPPING = "STOPPING" +_QUEUED = "QUEUED" +_SSOSD = "StackSetOperationStatusDetails" +_SSOSR = "StackSetOperationStatusReason" +_SSO = "StackSetOperation" +_CTre = "CreationTimestamp" +_ETnd = "EndTimestamp" +_SDta = "StatusDetails" +_DSSOO = "DescribeStackSetOperationOutput" +_DSSOes = "DescribeStackSetOperation" +_PVN = "PublicVersionNumber" +_DTIes = "DescribeTypeInput" +_CSo = "ConfigurationSchema" +_DSep = "DeprecatedStatus" +_LIVE = "LIVE" +_DEPRECATED = "DEPRECATED" +_OSU = "OptionalSecureUrl" +_IA = "IsActivated" +_IDV = "IsDefaultVersion" +_PT = "ProvisioningType" +_NP = "NON_PROVISIONABLE" +_IMMUTABLE = "IMMUTABLE" +_FM_ = "FULLY_MUTABLE" +_SMV = "SupportedMajorVersion" +_SMVu = "SupportedMajorVersions" +_RAT = "RequiredActivatedType" +_OTN = "OriginalTypeName" +_RATe = "RequiredActivatedTypes" +_TS = "TypeSchema" +_TTS = "TypeTestsStatus" +_NT_ = "NOT_TESTED" +_TTSD = "TypeTestsStatusDescription" +_Vi = "Visibility" +_PUBLIC = "PUBLIC" +_PRIVATE = "PRIVATE" +_DTOes = "DescribeTypeOutput" +_DVI = "DefaultVersionId" +_Sch = "Schema" +_SU = "SourceUrl" +_DU = "DocumentationUrl" +_TCi = "TimeCreated" +_OTA = "OriginalTypeArn" +_LPV = "LatestPublicVersion" +_DTes = "DescribeType" +_RTegi = "RegistrationToken" +_DTRI = "DescribeTypeRegistrationInput" +_RSeg = "RegistrationStatus" +_DTRO = "DescribeTypeRegistrationOutput" +_PSr = "ProgressStatus" +_TVA = "TypeVersionArn" +_DTR = "DescribeTypeRegistration" +_LRIo = "LogicalResourceIds" +_DSDI = "DetectStackDriftInput" +_DSDO = "DetectStackDriftOutput" +_DSD = "DetectStackDrift" +_DSRDIe = "DetectStackResourceDriftInput" +_DSRDOe = "DetectStackResourceDriftOutput" +_DSRDe = "DetectStackResourceDrift" +_SSNOI = "StackSetNameOrId" +_DSSDI = "DetectStackSetDriftInput" +_DSSDO = "DetectStackSetDriftOutput" +_DSSD = "DetectStackSetDrift" +_ETCI = "EstimateTemplateCostInput" +_U = "Url" +_ETCO = "EstimateTemplateCostOutput" +_ETC = "EstimateTemplateCost" +_ECSI = "ExecuteChangeSetInput" +_ECSO = "ExecuteChangeSetOutput" +_ECS = "ExecuteChangeSet" +_ESRI = "ExecuteStackRefactorInput" +_ESRO = "ExecuteStackRefactorOutput" +_ESRx = "ExecuteStackRefactor" +_TF = "TemplateFormat" +_JSON = "JSON" +_YAML = "YAML" +_GGTI = "GetGeneratedTemplateInput" +_Fo = "Format" +_GGTO = "GetGeneratedTemplateOutput" +_GGT = "GetGeneratedTemplate" +_GHRI = "GetHookResultInput" +_HRI = "HookResultId" +_HTA = "HookTargetAction" +_HTI = "HookTargetId" +_HTo = "HookTarget" +_TTN = "TargetTypeName" +_TI = "TargetId" +_HTAo = "HookTypeArn" +_GHRO = "GetHookResultOutput" +_IAn = "InvokedAt" +_Ann = "Annotations" +_HRNFE = "HookResultNotFoundException" +_GHR = "GetHookResult" +_GSPI = "GetStackPolicyInput" +_GSPO = "GetStackPolicyOutput" +_GSP = "GetStackPolicy" +_TSe = "TemplateStage" +_Or = "Original" +_Pro = "Processed" +_GTIe = "GetTemplateInput" +_SLt = "StageList" +_GTO = "GetTemplateOutput" +_SA = "StagesAvailable" +_GT = "GetTemplate" +_TURTAW = "TreatUnrecognizedResourceTypesAsWarnings" +_TSC = "TemplateSummaryConfig" +_GTSI = "GetTemplateSummaryInput" +_TNr = "TransformName" +_TL = "TransformsList" +_NEo = "NoEcho" +_PCa = "ParameterConstraints" +_PTa = "ParameterType" +_PDa = "ParameterDeclaration" +_DVe = "DefaultValue" +_PDar = "ParameterDeclarations" +_RIe = "ResourceIdentifiers" +_RIS = "ResourceIdentifierSummary" +_RISe = "ResourceIdentifierSummaries" +_Ve = "Version" +_URT = "UnrecognizedResourceTypes" +_GTSO = "GetTemplateSummaryOutput" +_DTec = "DeclaredTransforms" +_GTSe = "GetTemplateSummary" +_SIL = "StackIdList" +_SIU = "StackIdsUrl" +_ISTSSI = "ImportStacksToStackSetInput" +_ISTSSO = "ImportStacksToStackSetOutput" +_SNFE = "StackNotFoundException" +_ISTSS = "ImportStacksToStackSet" +_LCSI = "ListChangeSetsInput" +_LCSO = "ListChangeSetsOutput" +_Su = "Summaries" +_LCS = "ListChangeSets" +_LEI = "ListExportsInput" +_EVx = "ExportValue" +_Ex = "Export" +_ESI = "ExportingStackId" +_Exp = "Exports" +_LEO = "ListExportsOutput" +_LE = "ListExports" +_LGTI = "ListGeneratedTemplatesInput" +_NOR = "NumberOfResources" +_TSem = "TemplateSummary" +_TSemp = "TemplateSummaries" +_LGTO = "ListGeneratedTemplatesOutput" +_LGT = "ListGeneratedTemplates" +_LHRTT = "ListHookResultsTargetType" +_CS__ = "CHANGE_SET" +_STACK = "STACK" +_CC___ = "CLOUD_CONTROL" +_LHRI = "ListHookResultsInput" +_HRS = "HookResultSummary" +_HET = "HookExecutionTarget" +_HRSo = "HookResultSummaries" +_LHRO = "ListHookResultsOutput" +_HR = "HookResults" +_LHR = "ListHookResults" +_LII = "ListImportsInput" +_Im = "Imports" +_LIO = "ListImportsOutput" +_LI = "ListImports" +_JRIPK = "JazzResourceIdentifierPropertyKey" +_JRIPV = "JazzResourceIdentifierPropertyValue" +_JRIP = "JazzResourceIdentifierProperties" +_SRIc = "ScannedResourceIdentifier" +_SRIca = "ScannedResourceIdentifiers" +_LRSRRI = "ListResourceScanRelatedResourcesInput" +_MBS = "ManagedByStack" +_SRc = "ScannedResource" +_RRel = "RelatedResources" +_LRSRRO = "ListResourceScanRelatedResourcesOutput" +_RSIPE = "ResourceScanInProgressException" +_LRSRR = "ListResourceScanRelatedResources" +_RSMR = "ResourceScannerMaxResults" +_RTP = "ResourceTypePrefix" +_LRSRI = "ListResourceScanResourcesInput" +_SRca = "ScannedResources" +_LRSRO = "ListResourceScanResourcesOutput" +_LRSR = "ListResourceScanResources" +_STc = "ScanType" +_FULL = "FULL" +_PARTIAL = "PARTIAL" +_LRSI = "ListResourceScansInput" +_STF = "ScanTypeFilter" +_RSSe = "ResourceScanSummary" +_RSSes = "ResourceScanSummaries" +_LRSO = "ListResourceScansOutput" +_LRS = "ListResourceScans" +_LSIRDI = "ListStackInstanceResourceDriftsInput" +_SIRDS = "StackInstanceResourceDriftStatuses" +_SIRDSt = "StackInstanceResourceDriftsSummary" +_SIRDSta = "StackInstanceResourceDriftsSummaries" +_LSIRDO = "ListStackInstanceResourceDriftsOutput" +_LSIRD = "ListStackInstanceResourceDrifts" +_SIFN = "StackInstanceFilterName" +_DS___ = "DETAILED_STATUS" +_LOI_ = "LAST_OPERATION_ID" +_DS____ = "DRIFT_STATUS" +_SIFV = "StackInstanceFilterValues" +_SIF = "StackInstanceFilter" +_Va = "Values" +_SIFt = "StackInstanceFilters" +_LSII = "ListStackInstancesInput" +_SISt = "StackInstanceSummary" +_SISta = "StackInstanceSummaries" +_LSIO = "ListStackInstancesOutput" +_LSI = "ListStackInstances" +_LSRAI = "ListStackRefactorActionsInput" +_SRAT = "StackRefactorActionType" +_MOVE = "MOVE" +_SRDtac = "StackRefactorDetection" +_AUTO = "AUTO" +_MANUAL = "MANUAL" +_DRe = "DetectionReason" +_SRAE = "StackRefactorActionEntity" +_SRRI = "StackRefactorResourceIdentifier" +_SRTR = "StackRefactorTagResources" +_SRUR = "StackRefactorUntagResources" +_SRA = "StackRefactorAction" +_En = "Entity" +_Dete = "Detection" +_TR = "TagResources" +_UR = "UntagResources" +_SRAt = "StackRefactorActions" +_LSRAO = "ListStackRefactorActionsOutput" +_LSRA = "ListStackRefactorActions" +_SRESF = "StackRefactorExecutionStatusFilter" +_LSRI = "ListStackRefactorsInput" +_ESF = "ExecutionStatusFilter" +_SRSt = "StackRefactorSummary" +_SRSta = "StackRefactorSummaries" +_LSRO = "ListStackRefactorsOutput" +_LSR = "ListStackRefactors" +_LSRIi = "ListStackResourcesInput" +_SRDIS = "StackResourceDriftInformationSummary" +_SRStac = "StackResourceSummary" +_SRStack = "StackResourceSummaries" +_LSROi = "ListStackResourcesOutput" +_LSRi = "ListStackResources" +_SSF = "StackStatusFilter" +_LSIi = "ListStacksInput" +_SDIS = "StackDriftInformationSummary" +_TDe = "TemplateDescription" +_SSta = "StackSummary" +_SStac = "StackSummaries" +_LSO = "ListStacksOutput" +_LS = "ListStacks" +_LSSADTI = "ListStackSetAutoDeploymentTargetsInput" +_SSADTS = "StackSetAutoDeploymentTargetSummary" +_SSADTSt = "StackSetAutoDeploymentTargetSummaries" +_LSSADTO = "ListStackSetAutoDeploymentTargetsOutput" +_LSSADT = "ListStackSetAutoDeploymentTargets" +_ORFN = "OperationResultFilterName" +_ORS = "OPERATION_RESULT_STATUS" +_ORFV = "OperationResultFilterValues" +_ORF = "OperationResultFilter" +_ORFp = "OperationResultFilters" +_LSSORI = "ListStackSetOperationResultsInput" +_SSORS = "StackSetOperationResultStatus" +_SSORSt = "StackSetOperationResultSummary" +_SSORSta = "StackSetOperationResultSummaries" +_LSSORO = "ListStackSetOperationResultsOutput" +_LSSOR = "ListStackSetOperationResults" +_LSSOI = "ListStackSetOperationsInput" +_SSOSt = "StackSetOperationSummary" +_SSOSta = "StackSetOperationSummaries" +_LSSOO = "ListStackSetOperationsOutput" +_LSSO = "ListStackSetOperations" +_LSSI = "ListStackSetsInput" +_SSSt = "StackSetSummary" +_SSSta = "StackSetSummaries" +_LSSOi = "ListStackSetsOutput" +_LSS = "ListStackSets" +_LTRI = "ListTypeRegistrationsInput" +_RSF = "RegistrationStatusFilter" +_RTL = "RegistrationTokenList" +_LTRO = "ListTypeRegistrationsOutput" +_LTR = "ListTypeRegistrations" +_TNP = "TypeNamePrefix" +_TFy = "TypeFilters" +_LTI = "ListTypesInput" +_PNu = "PublisherName" +_TSy = "TypeSummary" +_PIu = "PublisherIdentity" +_TSyp = "TypeSummaries" +_LTO = "ListTypesOutput" +_LT = "ListTypes" +_LTVI = "ListTypeVersionsInput" +_TVS = "TypeVersionSummary" +_TVSy = "TypeVersionSummaries" +_LTVO = "ListTypeVersionsOutput" +_LTV = "ListTypeVersions" +_PTI = "PublishTypeInput" +_PTO = "PublishTypeOutput" +_PTu = "PublishType" +_ISTE = "InvalidStateTransitionException" +_OSCFE = "OperationStatusCheckFailedException" +_SUCCESS = "SUCCESS" +_HEC = "HandlerErrorCode" +_NU = "NotUpdatable" +_IR = "InvalidRequest" +_ADc = "AccessDenied" +_ICn = "InvalidCredentials" +_AE = "AlreadyExists" +_NF = "NotFound" +_RCe = "ResourceConflict" +_Th = "Throttling" +_SLE = "ServiceLimitExceeded" +_STe = "ServiceTimeout" +_NS = "NotStabilized" +_GSE = "GeneralServiceException" +_SIE = "ServiceInternalError" +_NFe = "NetworkFailure" +_IFn = "InternalFailure" +_ITC = "InvalidTypeConfiguration" +_HIF = "HandlerInternalFailure" +_NCo = "NonCompliant" +_Un = "Unknown" +_UT = "UnsupportedTarget" +_RMeso = "ResourceModel" +_RHPI = "RecordHandlerProgressInput" +_BT = "BearerToken" +_COS = "CurrentOperationStatus" +_RHPO = "RecordHandlerProgressOutput" +_RHP = "RecordHandlerProgress" +_CAo = "ConnectionArn" +_RPI = "RegisterPublisherInput" +_RPO = "RegisterPublisherOutput" +_RPeg = "RegisterPublisher" +_RTeq = "RequestToken" +_SUr = "S3Url" +_RTIeg = "RegisterTypeInput" +_SHP = "SchemaHandlerPackage" +_RTO = "RegisterTypeOutput" +_RTegis = "RegisterType" +_RSIo = "RollbackStackInput" +_RSO = "RollbackStackOutput" +_RSo = "RollbackStack" +_SSPI = "SetStackPolicyInput" +_SSPO = "SetStackPolicyOutput" +_SSP = "SetStackPolicy" +_STCI = "SetTypeConfigurationInput" +_CAon = "ConfigurationAlias" +_STCO = "SetTypeConfigurationOutput" +_CAonf = "ConfigurationArn" +_STC = "SetTypeConfiguration" +_STDVI = "SetTypeDefaultVersionInput" +_STDVO = "SetTypeDefaultVersionOutput" +_STDV = "SetTypeDefaultVersion" +_RSSeso = "ResourceSignalStatus" +_FAILURE = "FAILURE" +_RSUI = "ResourceSignalUniqueId" +_SRIi = "SignalResourceInput" +_UI = "UniqueId" +_SRO = "SignalResourceOutput" +_SRi = "SignalResource" +_RSLEE = "ResourceScanLimitExceededException" +_SRSI = "StartResourceScanInput" +_SRSO = "StartResourceScanOutput" +_SRStar = "StartResourceScan" +_SSSOI = "StopStackSetOperationInput" +_SSSOO = "StopStackSetOperationOutput" +_SSSO = "StopStackSetOperation" +_SB = "S3Bucket" +_TTI = "TestTypeInput" +_LDB = "LogDeliveryBucket" +_TTO = "TestTypeOutput" +_TTe = "TestType" +_RARe = "RefreshAllResources" +_JLRI = "JazzLogicalResourceIds" +_UGTI = "UpdateGeneratedTemplateInput" +_NGTN = "NewGeneratedTemplateName" +_AR = "AddResources" +_RRem = "RemoveResources" +_UGTO = "UpdateGeneratedTemplateOutput" +_UGT = "UpdateGeneratedTemplate" +_SPDUB = "StackPolicyDuringUpdateBody" +_SPDUURL = "StackPolicyDuringUpdateURL" +_USI = "UpdateStackInput" +_USO = "UpdateStackOutput" +_USp = "UpdateStack" +_USII = "UpdateStackInstancesInput" +_USIO = "UpdateStackInstancesOutput" +_USIp = "UpdateStackInstances" +_USSI = "UpdateStackSetInput" +_USSO = "UpdateStackSetOutput" +_USS = "UpdateStackSet" +_UTPI = "UpdateTerminationProtectionInput" +_UTPO = "UpdateTerminationProtectionOutput" +_UTP = "UpdateTerminationProtection" +_VTI = "ValidateTemplateInput" +_TPem = "TemplateParameter" +_TPemp = "TemplateParameters" +_VTO = "ValidateTemplateOutput" +_VT = "ValidateTemplate" +_CFl = "CloudFormation" +_a = "aws.auth#sigv4" +_aQ = "aws.protocols#awsQuery" +_aw = "aws.api#service" +_sN = "smithy.api#xmlNamespace" + +ACCEPT_TERMS_AND_CONDITIONS: StaticSchema = (2, n0, _ATAC, 0) + +ACCOUNT: StaticSchema = (3, n0, _A, 0) + +ACCOUNT_FILTER_TYPE: StaticSchema = ( + 14, + n0, + _AFT, + 0, + (_NONE, _INTERSECTION, _DIFFERENCE, _UNION), + ( + (-1, {_sV: _NONE}), + (-1, {_sV: _INTERSECTION}), + (-1, {_sV: _DIFFERENCE}), + (-1, {_sV: _UNION}), + ), +) + +ACCOUNT_GATE_STATUS: StaticSchema = ( + 14, + n0, + _AGS, + 0, + (_SUCCEEDED, _FAILED, _SKIPPED), + ((-1, {_sV: _SUCCEEDED}), (-1, {_sV: _FAILED}), (-1, {_sV: _SKIPPED})), +) + +ACCOUNT_GATE_STATUS_REASON: StaticSchema = (3, n0, _AGSR, 0) + +ACCOUNT_GATE_RESULT: StaticSchema = ( + 18, + n0, + _AGR, + 0, + (_S, _SR), + ((ACCOUNT_GATE_STATUS, 0), (ACCOUNT_GATE_STATUS_REASON, 0)), +) + +LIMIT_NAME: StaticSchema = (3, n0, _LN, 0) + +LIMIT_VALUE: StaticSchema = (7, n0, _LV, 0) + +ACCOUNT_LIMIT: StaticSchema = ( + 18, + n0, + _AL, + 0, + (_N, _V), + ((LIMIT_NAME, 0), (LIMIT_VALUE, 0)), +) + +ACCOUNT_LIMIT_LIST: StaticSchema = (16, n0, _ALL, 0, (_m,), ((ACCOUNT_LIMIT, 0),)) + +ACCOUNT_LIST: StaticSchema = (16, n0, _ALc, 0, (_m,), ((ACCOUNT, 0),)) + +ACCOUNTS_URL: StaticSchema = (3, n0, _AU, 0) + +ACTIVATE_ORGANIZATIONS_ACCESS_INPUT: StaticSchema = (18, n0, _AOAI, {_s: None}) + +ACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT: StaticSchema = (18, n0, _AOAO, {_sm: None}) + +ERROR_MESSAGE: StaticSchema = (3, n0, _EM, 0) + +INVALID_OPERATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _IOE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidOperationException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +OPERATION_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _ONFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "OperationNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +ACTIVATE_ORGANIZATIONS_ACCESS: StaticOperationSchema = ( + 23, + n0, + _AOA, + 0, + ACTIVATE_ORGANIZATIONS_ACCESS_INPUT, + ACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT, + (INVALID_OPERATION_EXCEPTION, OPERATION_NOT_FOUND_EXCEPTION), +) + +AUTO_UPDATE: StaticSchema = (2, n0, _AUu, 0) + +ROLE_ARN2: StaticSchema = (3, n0, _RARN, 0) + +LOG_GROUP_NAME: StaticSchema = (3, n0, _LGN, 0) + +LOGGING_CONFIG: StaticSchema = ( + 18, + n0, + _LC, + 0, + (_LRA, _LGN), + ((ROLE_ARN2, 1), (LOG_GROUP_NAME, 1)), +) + +MAJOR_VERSION: StaticSchema = (8, n0, _MV, 0) + +THIRD_PARTY_TYPE_ARN: StaticSchema = (3, n0, _TPTA, 0) + +PUBLISHER_ID: StaticSchema = (3, n0, _PI, 0) + +THIRD_PARTY_TYPE: StaticSchema = ( + 14, + n0, + _TPT, + 0, + (_RESOURCE, _MODULE, _HOOK), + ((-1, {_sV: _RESOURCE}), (-1, {_sV: _MODULE}), (-1, {_sV: _HOOK})), +) + +TYPE_NAME: StaticSchema = (3, n0, _TN, 0) + +VERSION_BUMP: StaticSchema = ( + 14, + n0, + _VB, + 0, + (_MAJOR, _MINOR), + ((-1, {_sV: _MAJOR}), (-1, {_sV: _MINOR})), +) + +ACTIVATE_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _ATI, + {_s: None}, + (_T, _PTA, _PI, _TN, _TNA, _AUu, _LC, _ERA, _VB, _MV), + ( + (THIRD_PARTY_TYPE, 0), + (THIRD_PARTY_TYPE_ARN, 0), + (PUBLISHER_ID, 0), + (TYPE_NAME, 0), + (TYPE_NAME, 0), + (AUTO_UPDATE, 0), + (LOGGING_CONFIG, 0), + (ROLE_ARN2, 0), + (VERSION_BUMP, 0), + (MAJOR_VERSION, 0), + ), +) + +PRIVATE_TYPE_ARN: StaticSchema = (3, n0, _PTAr, 0) + +ACTIVATE_TYPE_OUTPUT: StaticSchema = ( + 18, + n0, + _ATO, + {_sm: None}, + (_Ar,), + ((PRIVATE_TYPE_ARN, 0),), +) + +CFN_REGISTRY_EXCEPTION: StaticSchema = ( + 18, + n0, + _CFNRE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CFNRegistryException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +TYPE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _TNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "TypeNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +ACTIVATE_TYPE: StaticOperationSchema = ( + 23, + n0, + _AT, + 0, + ACTIVATE_TYPE_INPUT, + ACTIVATE_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +AFTER_CONTEXT: StaticSchema = (3, n0, _AC, 0) + +AFTER_VALUE: StaticSchema = (3, n0, _AV, 0) + +AFTER_VALUE_FROM: StaticSchema = ( + 14, + n0, + _AVF, + 0, + (_TEMPLATE,), + ((-1, {_sV: _TEMPLATE}),), +) + +ALLOWED_VALUE: StaticSchema = (3, n0, _AVl, 0) + +ALLOWED_VALUES: StaticSchema = (16, n0, _AVll, 0, (_m,), ((ALLOWED_VALUE, 0),)) + +ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _AEE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "AlreadyExistsException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +ANNOTATION_NAME: StaticSchema = (3, n0, _AN, 0) + +ANNOTATION_REMEDIATION_LINK: StaticSchema = (3, n0, _ARL, 0) + +REMEDIATION_MESSAGE_REMEDIATION_MESSAGE: StaticSchema = (3, n0, _RMRM, 0) + +ANNOTATION_SEVERITY_LEVEL: StaticSchema = ( + 14, + n0, + _ASL, + 0, + (_INFORMATIONAL, _LOW, _MEDIUM, _HIGH, _CRITICAL), + ( + (-1, {_sV: _INFORMATIONAL}), + (-1, {_sV: _LOW}), + (-1, {_sV: _MEDIUM}), + (-1, {_sV: _HIGH}), + (-1, {_sV: _CRITICAL}), + ), +) + +ANNOTATION_STATUS: StaticSchema = ( + 14, + n0, + _AS, + 0, + (_PASSED, _FAILED, _SKIPPED), + ((-1, {_sV: _PASSED}), (-1, {_sV: _FAILED}), (-1, {_sV: _SKIPPED})), +) + +REMEDIATION_MESSAGE_STATUS_MESSAGE: StaticSchema = (3, n0, _RMSM, 0) + +ANNOTATION: StaticSchema = ( + 18, + n0, + _An, + 0, + (_AN, _S, _SM, _RM, _RL, _SL), + ( + (ANNOTATION_NAME, 0), + (ANNOTATION_STATUS, 0), + (REMEDIATION_MESSAGE_STATUS_MESSAGE, 0), + (REMEDIATION_MESSAGE_REMEDIATION_MESSAGE, 0), + (ANNOTATION_REMEDIATION_LINK, 0), + (ANNOTATION_SEVERITY_LEVEL, 0), + ), +) + +ANNOTATION_LIST: StaticSchema = (16, n0, _ALn, 0, (_m,), ((ANNOTATION, 0),)) + +ARN: StaticSchema = (3, n0, _Ar, 0) + +ATTRIBUTE_CHANGE_TYPE: StaticSchema = ( + 14, + n0, + _ACT, + 0, + (_Ad, _R, _Mo, _SWA), + ((-1, {_sV: _Ad}), (-1, {_sV: _R}), (-1, {_sV: _Mo}), (-1, {_sV: _SWA})), +) + +STACK_SET_ARN: StaticSchema = (3, n0, _SSARN, 0) + +STACK_SET_ARN_LIST: StaticSchema = (16, n0, _SSARNL, 0, (_m,), ((STACK_SET_ARN, 0),)) + +AUTO_DEPLOYMENT_NULLABLE: StaticSchema = (2, n0, _ADN, 0) + +RETAIN_STACKS_ON_ACCOUNT_REMOVAL_NULLABLE: StaticSchema = (2, n0, _RSOARN, 0) + +AUTO_DEPLOYMENT: StaticSchema = ( + 18, + n0, + _AD, + 0, + (_E, _RSOAR, _DO), + ( + (AUTO_DEPLOYMENT_NULLABLE, 0), + (RETAIN_STACKS_ON_ACCOUNT_REMOVAL_NULLABLE, 0), + (STACK_SET_ARN_LIST, 0), + ), +) + +TYPE_ARN: StaticSchema = (3, n0, _TA, 0) + +TYPE_CONFIGURATION_ALIAS: StaticSchema = (3, n0, _TCA, 0) + +TYPE_CONFIGURATION_ARN: StaticSchema = (3, n0, _TCAy, 0) + +TYPE_CONFIGURATION_IDENTIFIER: StaticSchema = ( + 18, + n0, + _TCI, + 0, + (_TA, _TCA, _TCAy, _T, _TN), + ( + (TYPE_ARN, 0), + (TYPE_CONFIGURATION_ALIAS, 0), + (TYPE_CONFIGURATION_ARN, 0), + (THIRD_PARTY_TYPE, 0), + (TYPE_NAME, 0), + ), +) + +TYPE_CONFIGURATION_IDENTIFIERS: StaticSchema = ( + 16, + n0, + _TCIy, + 0, + (_m,), + ((TYPE_CONFIGURATION_IDENTIFIER, 0),), +) + +BATCH_DESCRIBE_TYPE_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _BDTCI, + {_s: None}, + (_TCIy,), + ((TYPE_CONFIGURATION_IDENTIFIERS, 1),), +) + +ERROR_CODE: StaticSchema = (3, n0, _EC, 0) + +BATCH_DESCRIBE_TYPE_CONFIGURATIONS_ERROR: StaticSchema = ( + 18, + n0, + _BDTCE, + 0, + (_EC, _EM, _TCI), + ((ERROR_CODE, 0), (ERROR_MESSAGE, 0), (TYPE_CONFIGURATION_IDENTIFIER, 0)), +) + +BATCH_DESCRIBE_TYPE_CONFIGURATIONS_ERRORS: StaticSchema = ( + 16, + n0, + _BDTCEa, + 0, + (_m,), + ((BATCH_DESCRIBE_TYPE_CONFIGURATIONS_ERROR, 0),), +) + +TYPE_CONFIGURATION: StaticSchema = (3, n0, _TC, 0) + +IS_DEFAULT_CONFIGURATION: StaticSchema = (2, n0, _IDC, 0) + +TIMESTAMP: StaticSchema = (4, n0, _Ti, 0) + +TYPE_CONFIGURATION_DETAILS: StaticSchema = ( + 18, + n0, + _TCD, + 0, + (_Ar, _Al, _C, _LU, _TA, _TN, _IDC), + ( + (TYPE_CONFIGURATION_ARN, 0), + (TYPE_CONFIGURATION_ALIAS, 0), + (TYPE_CONFIGURATION, 0), + (TIMESTAMP, 0), + (TYPE_ARN, 0), + (TYPE_NAME, 0), + (IS_DEFAULT_CONFIGURATION, 0), + ), +) + +TYPE_CONFIGURATION_DETAILS_LIST: StaticSchema = ( + 16, + n0, + _TCDL, + 0, + (_m,), + ((TYPE_CONFIGURATION_DETAILS, 0),), +) + +UNPROCESSED_TYPE_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _UTC, + 0, + (_m,), + ((TYPE_CONFIGURATION_IDENTIFIER, 0),), +) + +BATCH_DESCRIBE_TYPE_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _BDTCO, + {_sm: None}, + (_Er, _UTC, _TCy), + ( + (BATCH_DESCRIBE_TYPE_CONFIGURATIONS_ERRORS, 0), + (UNPROCESSED_TYPE_CONFIGURATIONS, 0), + (TYPE_CONFIGURATION_DETAILS_LIST, 0), + ), +) + +TYPE_CONFIGURATION_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _TCNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "TypeConfigurationNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +BATCH_DESCRIBE_TYPE_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _BDTC, + 0, + BATCH_DESCRIBE_TYPE_CONFIGURATIONS_INPUT, + BATCH_DESCRIBE_TYPE_CONFIGURATIONS_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_CONFIGURATION_NOT_FOUND_EXCEPTION), +) + +BEACON_STACK_OPERATION_STATUS: StaticSchema = ( + 14, + n0, + _BSOS, + 0, + (_IP, _SUCCEEDED, _FAILED), + ((-1, {_sV: _IP}), (-1, {_sV: _SUCCEEDED}), (-1, {_sV: _FAILED})), +) + +BEFORE_CONTEXT: StaticSchema = (3, n0, _BC, 0) + +BEFORE_VALUE: StaticSchema = (3, n0, _BV, 0) + +BEFORE_VALUE_FROM: StaticSchema = ( + 14, + n0, + _BVF, + 0, + (_PDS, _AS_), + ((-1, {_sV: _PDS}), (-1, {_sV: _AS_})), +) + +BOXED_INTEGER: StaticSchema = (7, n0, _BI, 0) + +BOXED_MAX_RESULTS: StaticSchema = (7, n0, _BMR, 0) + +CALL_AS: StaticSchema = ( + 14, + n0, + _CA, + 0, + (_SELF, _DA), + ((-1, {_sV: _SELF}), (-1, {_sV: _DA})), +) + +CLIENT_REQUEST_TOKEN: StaticSchema = (3, n0, _CRT, 0) + +STACK_NAME: StaticSchema = (3, n0, _SN, 0) + +CANCEL_UPDATE_STACK_INPUT: StaticSchema = ( + 18, + n0, + _CUSI, + {_s: None}, + (_SN, _CRT), + ((STACK_NAME, 1), (CLIENT_REQUEST_TOKEN, 0)), +) + +CANCEL_UPDATE_STACK_OUTPUT: StaticSchema = (18, n0, _CUSO, {_sSI: _sU, _sm: None}) + +TOKEN_ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _TAEE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "TokenAlreadyExistsException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +CANCEL_UPDATE_STACK: StaticOperationSchema = ( + 23, + n0, + _CUS, + 0, + CANCEL_UPDATE_STACK_INPUT, + CANCEL_UPDATE_STACK_OUTPUT, + (TOKEN_ALREADY_EXISTS_EXCEPTION,), +) + +CAPABILITY: StaticSchema = ( + 14, + n0, + _Ca, + 0, + (_CI, _CNI, _CAE), + ((-1, {_sV: _CI}), (-1, {_sV: _CNI}), (-1, {_sV: _CAE})), +) + +CAPABILITIES: StaticSchema = (16, n0, _Cap, 0, (_m,), ((CAPABILITY, 0),)) + +CAPABILITIES_REASON: StaticSchema = (3, n0, _CR, 0) + +CATEGORY: StaticSchema = ( + 14, + n0, + _Cat, + 0, + (_REGISTERED, _ACTIVATED, _TP, _AT_), + ( + (-1, {_sV: _REGISTERED}), + (-1, {_sV: _ACTIVATED}), + (-1, {_sV: _TP}), + (-1, {_sV: _AT_}), + ), +) + +CAUSING_ENTITY: StaticSchema = (3, n0, _CE, 0) + +HOOK_INVOCATION_COUNT: StaticSchema = (7, n0, _HIC, 0) + +CHANGE_ACTION: StaticSchema = ( + 14, + n0, + _CAh, + 0, + (_Ad, _Mo, _R, _I, _D, _SWA), + ( + (-1, {_sV: _Ad}), + (-1, {_sV: _Mo}), + (-1, {_sV: _R}), + (-1, {_sV: _I}), + (-1, {_sV: _D}), + (-1, {_sV: _SWA}), + ), +) + +CHANGE_SET_ID: StaticSchema = (3, n0, _CSI, 0) + +CHANGE_SOURCE: StaticSchema = ( + 14, + n0, + _CS, + 0, + (_RR, _PR, _RA, _DM, _Au, _NM), + ( + (-1, {_sV: _RR}), + (-1, {_sV: _PR}), + (-1, {_sV: _RA}), + (-1, {_sV: _DM}), + (-1, {_sV: _Au}), + (-1, {_sV: _NM}), + ), +) + +EVALUATION_TYPE: StaticSchema = ( + 14, + n0, + _ET, + 0, + (_St, _D), + ((-1, {_sV: _St}), (-1, {_sV: _D})), +) + +RESOURCE_ATTRIBUTE: StaticSchema = ( + 14, + n0, + _RA, + 0, + (_P, _Me, _CP, _UP, _DP, _URP, _Ta), + ( + (-1, {_sV: _P}), + (-1, {_sV: _Me}), + (-1, {_sV: _CP}), + (-1, {_sV: _UP}), + (-1, {_sV: _DP}), + (-1, {_sV: _URP}), + (-1, {_sV: _Ta}), + ), +) + +RESOURCE_DRIFT_ACTUAL_VALUE: StaticSchema = (3, n0, _RDAV, 0) + +RESOURCE_DRIFT_PREVIOUS_VALUE: StaticSchema = (3, n0, _RDPV, 0) + +LIVE_RESOURCE_DRIFT: StaticSchema = ( + 18, + n0, + _LRD, + 0, + (_PV, _AVc, _DDT), + ( + (RESOURCE_DRIFT_PREVIOUS_VALUE, 0), + (RESOURCE_DRIFT_ACTUAL_VALUE, 0), + (TIMESTAMP, 0), + ), +) + +PROPERTY_NAME: StaticSchema = (3, n0, _PN, 0) + +RESOURCE_PROPERTY_PATH: StaticSchema = (3, n0, _RPP, 0) + +REQUIRES_RECREATION: StaticSchema = ( + 14, + n0, + _RRe, + 0, + (_Ne, _Co, _Alw), + ((-1, {_sV: _Ne}), (-1, {_sV: _Co}), (-1, {_sV: _Alw})), +) + +RESOURCE_TARGET_DEFINITION: StaticSchema = ( + 18, + n0, + _RTD, + 0, + (_At, _N, _RRe, _Pa, _BV, _AV, _BVF, _AVF, _Dr, _ACT), + ( + (RESOURCE_ATTRIBUTE, 0), + (PROPERTY_NAME, 0), + (REQUIRES_RECREATION, 0), + (RESOURCE_PROPERTY_PATH, 0), + (BEFORE_VALUE, 0), + (AFTER_VALUE, 0), + (BEFORE_VALUE_FROM, 0), + (AFTER_VALUE_FROM, 0), + (LIVE_RESOURCE_DRIFT, 0), + (ATTRIBUTE_CHANGE_TYPE, 0), + ), +) + +RESOURCE_CHANGE_DETAIL: StaticSchema = ( + 18, + n0, + _RCD, + 0, + (_Tar, _Ev, _CS, _CE), + ( + (RESOURCE_TARGET_DEFINITION, 0), + (EVALUATION_TYPE, 0), + (CHANGE_SOURCE, 0), + (CAUSING_ENTITY, 0), + ), +) + +RESOURCE_CHANGE_DETAILS: StaticSchema = ( + 16, + n0, + _RCDe, + 0, + (_m,), + ((RESOURCE_CHANGE_DETAIL, 0),), +) + +LOGICAL_RESOURCE_ID: StaticSchema = (3, n0, _LRI, 0) + +LOGICAL_ID_HIERARCHY: StaticSchema = (3, n0, _LIH, 0) + +TYPE_HIERARCHY: StaticSchema = (3, n0, _TH, 0) + +MODULE_INFO: StaticSchema = ( + 18, + n0, + _MI, + 0, + (_TH, _LIH), + ((TYPE_HIERARCHY, 0), (LOGICAL_ID_HIERARCHY, 0)), +) + +PHYSICAL_RESOURCE_ID: StaticSchema = (3, n0, _PRI, 0) + +POLICY_ACTION: StaticSchema = ( + 14, + n0, + _PA, + 0, + (_De, _Re, _Sn, _RAD, _RAR, _RAS), + ( + (-1, {_sV: _De}), + (-1, {_sV: _Re}), + (-1, {_sV: _Sn}), + (-1, {_sV: _RAD}), + (-1, {_sV: _RAR}), + (-1, {_sV: _RAS}), + ), +) + +PREVIOUS_DEPLOYMENT_CONTEXT: StaticSchema = (3, n0, _PDC, 0) + +REPLACEMENT: StaticSchema = ( + 14, + n0, + _Rep, + 0, + (_Tr, _F, _Con), + ((-1, {_sV: _Tr}), (-1, {_sV: _F}), (-1, {_sV: _Con})), +) + +DRIFT_IGNORED_REASON: StaticSchema = ( + 14, + n0, + _DIR, + 0, + (_MBA, _WOP, _SP), + ((-1, {_sV: _MBA}), (-1, {_sV: _WOP}), (-1, {_sV: _SP})), +) + +RESOURCE_DRIFT_IGNORED_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _RDIA, + 0, + (_Pa, _Rea), + ((RESOURCE_PROPERTY_PATH, 0), (DRIFT_IGNORED_REASON, 0)), +) + +RESOURCE_DRIFT_IGNORED_ATTRIBUTES: StaticSchema = ( + 16, + n0, + _RDIAe, + 0, + (_m,), + ((RESOURCE_DRIFT_IGNORED_ATTRIBUTE, 0),), +) + +STACK_RESOURCE_DRIFT_STATUS: StaticSchema = ( + 14, + n0, + _SRDS, + 0, + (_IS, _MODIFIED, _DELETED, _NC, _UNKNOWN, _UNSUPPORTED), + ( + (-1, {_sV: _IS}), + (-1, {_sV: _MODIFIED}), + (-1, {_sV: _DELETED}), + (-1, {_sV: _NC}), + (-1, {_sV: _UNKNOWN}), + (-1, {_sV: _UNSUPPORTED}), + ), +) + +RESOURCE_TYPE: StaticSchema = (3, n0, _RT, 0) + +SCOPE: StaticSchema = (16, n0, _Sc, 0, (_m,), ((RESOURCE_ATTRIBUTE, 0),)) + +RESOURCE_CHANGE: StaticSchema = ( + 18, + n0, + _RC, + 0, + ( + _PA, + _Ac, + _LRI, + _PRI, + _RT, + _Rep, + _Sc, + _RDS, + _RDIAe, + _Det, + _CSI, + _MI, + _BC, + _AC, + _PDC, + ), + ( + (POLICY_ACTION, 0), + (CHANGE_ACTION, 0), + (LOGICAL_RESOURCE_ID, 0), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 0), + (REPLACEMENT, 0), + (SCOPE, 0), + (STACK_RESOURCE_DRIFT_STATUS, 0), + (RESOURCE_DRIFT_IGNORED_ATTRIBUTES, 0), + (RESOURCE_CHANGE_DETAILS, 0), + (CHANGE_SET_ID, 0), + (MODULE_INFO, 0), + (BEFORE_CONTEXT, 0), + (AFTER_CONTEXT, 0), + (PREVIOUS_DEPLOYMENT_CONTEXT, 0), + ), +) + +CHANGE_TYPE: StaticSchema = (14, n0, _CT, 0, (_Res,), ((-1, {_sV: _Res}),)) + +CHANGE: StaticSchema = ( + 18, + n0, + _Ch, + 0, + (_T, _HIC, _RC), + ((CHANGE_TYPE, 0), (HOOK_INVOCATION_COUNT, 0), (RESOURCE_CHANGE, 0)), +) + +CHANGES: StaticSchema = (16, n0, _Cha, 0, (_m,), ((CHANGE, 0),)) + +HOOK_FAILURE_MODE: StaticSchema = ( + 14, + n0, + _HFM, + 0, + (_FAIL, _WARN), + ((-1, {_sV: _FAIL}), (-1, {_sV: _WARN})), +) + +HOOK_INVOCATION_POINT: StaticSchema = (14, n0, _HIP, 0, (_PP,), ((-1, {_sV: _PP}),)) + +HOOK_TARGET_TYPE_NAME: StaticSchema = (3, n0, _HTTN, 0) + +CHANGE_SET_HOOK_RESOURCE_TARGET_DETAILS: StaticSchema = ( + 18, + n0, + _CSHRTD, + 0, + (_LRI, _RT, _RAe), + ((LOGICAL_RESOURCE_ID, 0), (HOOK_TARGET_TYPE_NAME, 0), (CHANGE_ACTION, 0)), +) + +HOOK_TARGET_TYPE: StaticSchema = ( + 14, + n0, + _HTT, + 0, + (_RESOURCE,), + ((-1, {_sV: _RESOURCE}),), +) + +CHANGE_SET_HOOK_TARGET_DETAILS: StaticSchema = ( + 18, + n0, + _CSHTD, + 0, + (_TT, _RTDe), + ((HOOK_TARGET_TYPE, 0), (CHANGE_SET_HOOK_RESOURCE_TARGET_DETAILS, 0)), +) + +HOOK_TYPE_CONFIGURATION_VERSION_ID: StaticSchema = (3, n0, _HTCVI, 0) + +HOOK_TYPE_NAME: StaticSchema = (3, n0, _HTN, 0) + +HOOK_TYPE_VERSION_ID: StaticSchema = (3, n0, _HTVI, 0) + +CHANGE_SET_HOOK: StaticSchema = ( + 18, + n0, + _CSH, + 0, + (_IPn, _FM, _TN, _TVI, _TCVI, _TD), + ( + (HOOK_INVOCATION_POINT, 0), + (HOOK_FAILURE_MODE, 0), + (HOOK_TYPE_NAME, 0), + (HOOK_TYPE_VERSION_ID, 0), + (HOOK_TYPE_CONFIGURATION_VERSION_ID, 0), + (CHANGE_SET_HOOK_TARGET_DETAILS, 0), + ), +) + +CHANGE_SET_HOOKS: StaticSchema = (16, n0, _CSHh, 0, (_m,), ((CHANGE_SET_HOOK, 0),)) + +CHANGE_SET_HOOKS_STATUS: StaticSchema = ( + 14, + n0, + _CSHS, + 0, + (_PLANNING, _PLANNED, _UNAVAILABLE), + ((-1, {_sV: _PLANNING}), (-1, {_sV: _PLANNED}), (-1, {_sV: _UNAVAILABLE})), +) + +CHANGE_SET_NAME: StaticSchema = (3, n0, _CSN, 0) + +CHANGE_SET_NAME_OR_ID: StaticSchema = (3, n0, _CSNOI, 0) + +CHANGE_SET_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _CSNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "ChangeSetNotFound", "httpResponseCode": 404}), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +CHANGE_SET_STATUS: StaticSchema = ( + 14, + n0, + _CSS, + 0, + (_CP_, _CIP, _CC, _DP_, _DIP, _DC, _DF, _FAILED), + ( + (-1, {_sV: _CP_}), + (-1, {_sV: _CIP}), + (-1, {_sV: _CC}), + (-1, {_sV: _DP_}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DC}), + (-1, {_sV: _DF}), + (-1, {_sV: _FAILED}), + ), +) + +CHANGE_SET_STATUS_REASON: StaticSchema = (3, n0, _CSSR, 0) + +CREATION_TIME: StaticSchema = (4, n0, _CTr, 0) + +DESCRIPTION: StaticSchema = (3, n0, _Des, 0) + +EXECUTION_STATUS: StaticSchema = ( + 14, + n0, + _ES, + 0, + (_UNAVAILABLE, _AVAILABLE, _EIP, _EC_, _EF, _OBSOLETE), + ( + (-1, {_sV: _UNAVAILABLE}), + (-1, {_sV: _AVAILABLE}), + (-1, {_sV: _EIP}), + (-1, {_sV: _EC_}), + (-1, {_sV: _EF}), + (-1, {_sV: _OBSOLETE}), + ), +) + +IMPORT_EXISTING_RESOURCES: StaticSchema = (2, n0, _IER, 0) + +INCLUDE_NESTED_STACKS: StaticSchema = (2, n0, _INS, 0) + +STACK_ID: StaticSchema = (3, n0, _SI, 0) + +CHANGE_SET_SUMMARY: StaticSchema = ( + 18, + n0, + _CSSh, + 0, + (_SI, _SN, _CSI, _CSN, _ES, _S, _SR, _CTr, _Des, _INS, _PCSI, _RCSI, _IER), + ( + (STACK_ID, 0), + (STACK_NAME, 0), + (CHANGE_SET_ID, 0), + (CHANGE_SET_NAME, 0), + (EXECUTION_STATUS, 0), + (CHANGE_SET_STATUS, 0), + (CHANGE_SET_STATUS_REASON, 0), + (CREATION_TIME, 0), + (DESCRIPTION, 0), + (INCLUDE_NESTED_STACKS, 0), + (CHANGE_SET_ID, 0), + (CHANGE_SET_ID, 0), + (IMPORT_EXISTING_RESOURCES, 0), + ), +) + +CHANGE_SET_SUMMARIES: StaticSchema = ( + 16, + n0, + _CSSha, + 0, + (_m,), + ((CHANGE_SET_SUMMARY, 0),), +) + +CHANGE_SET_TYPE: StaticSchema = ( + 14, + n0, + _CST, + 0, + (_CREATE, _UPDATE, _IMPORT), + ((-1, {_sV: _CREATE}), (-1, {_sV: _UPDATE}), (-1, {_sV: _IMPORT})), +) + +CLIENT_TOKEN: StaticSchema = (3, n0, _CTl, 0) + +FORCE_ROLLBACK: StaticSchema = (2, n0, _FR, 0) + +RESOURCE_TO_SKIP: StaticSchema = (3, n0, _RTS, 0) + +RESOURCES_TO_SKIP: StaticSchema = (16, n0, _RTSe, 0, (_m,), ((RESOURCE_TO_SKIP, 0),)) + +ROLE_ARN: StaticSchema = (3, n0, _RARNo, 0) + +STACK_NAME_OR_ID: StaticSchema = (3, n0, _SNOI, 0) + +CONTINUE_UPDATE_ROLLBACK_INPUT: StaticSchema = ( + 18, + n0, + _CURI, + {_s: None}, + (_SN, _RARNo, _RTSe, _CRT, _FR), + ( + (STACK_NAME_OR_ID, 1), + (ROLE_ARN, 0), + (RESOURCES_TO_SKIP, 0), + (CLIENT_REQUEST_TOKEN, 0), + (FORCE_ROLLBACK, 0), + ), +) + +CONTINUE_UPDATE_ROLLBACK_OUTPUT: StaticSchema = (18, n0, _CURO, {_sm: None}) + +CONTINUE_UPDATE_ROLLBACK: StaticOperationSchema = ( + 23, + n0, + _CUR, + 0, + CONTINUE_UPDATE_ROLLBACK_INPUT, + CONTINUE_UPDATE_ROLLBACK_OUTPUT, + (TOKEN_ALREADY_EXISTS_EXCEPTION,), +) + +DISABLE_ROLLBACK: StaticSchema = (2, n0, _DR, 0) + +DEPLOYMENT_CONFIG_MODE: StaticSchema = ( + 14, + n0, + _DCM, + 0, + (_STANDARD, _EXPRESS), + ((-1, {_sV: _STANDARD}), (-1, {_sV: _EXPRESS})), +) + +DEPLOYMENT_CONFIG: StaticSchema = ( + 18, + n0, + _DCe, + 0, + (_Mod, _DR), + ((DEPLOYMENT_CONFIG_MODE, 0), (DISABLE_ROLLBACK, 0)), +) + +DEPLOYMENT_MODE: StaticSchema = (14, n0, _DMe, 0, (_RD,), ((-1, {_sV: _RD}),)) + +DISABLE_VALIDATION: StaticSchema = (2, n0, _DV, 0) + +NOTIFICATION_ARN: StaticSchema = (3, n0, _NARN, 0) + +NOTIFICATION_AR_NS: StaticSchema = (16, n0, _NARNo, 0, (_m,), ((NOTIFICATION_ARN, 0),)) + +ON_STACK_FAILURE: StaticSchema = ( + 14, + n0, + _OSF, + 0, + (_DN, _ROLLBACK, _DELETE), + ((-1, {_sV: _DN}), (-1, {_sV: _ROLLBACK}), (-1, {_sV: _DELETE})), +) + +PARAMETER_KEY: StaticSchema = (3, n0, _PK, 0) + +PARAMETER_VALUE: StaticSchema = (3, n0, _PVa, 0) + +USE_PREVIOUS_VALUE: StaticSchema = (2, n0, _UPV, 0) + +PARAMETER: StaticSchema = ( + 18, + n0, + _Par, + 0, + (_PK, _PVa, _UPV, _RV), + ( + (PARAMETER_KEY, 0), + (PARAMETER_VALUE, 0), + (USE_PREVIOUS_VALUE, 0), + (PARAMETER_VALUE, 0), + ), +) + +PARAMETERS: StaticSchema = (16, n0, _Para, 0, (_m,), ((PARAMETER, 0),)) + +RESOURCE_IDENTIFIER_PROPERTY_KEY: StaticSchema = (3, n0, _RIPK, 0) + +RESOURCE_IDENTIFIER_PROPERTY_VALUE: StaticSchema = (3, n0, _RIPV, 0) + +RESOURCE_IDENTIFIER_PROPERTIES: StaticSchema = ( + 17, + n0, + _RIP, + 0, + (_k, _v), + ((RESOURCE_IDENTIFIER_PROPERTY_KEY, 0), (RESOURCE_IDENTIFIER_PROPERTY_VALUE, 0)), +) + +RESOURCE_TO_IMPORT: StaticSchema = ( + 18, + n0, + _RTI, + 0, + (_RT, _LRI, _RI), + ((RESOURCE_TYPE, 1), (LOGICAL_RESOURCE_ID, 1), (RESOURCE_IDENTIFIER_PROPERTIES, 1)), +) + +RESOURCES_TO_IMPORT: StaticSchema = ( + 16, + n0, + _RTIe, + 0, + (_m,), + ((RESOURCE_TO_IMPORT, 0),), +) + +RESOURCE_TYPES: StaticSchema = (16, n0, _RTe, 0, (_m,), ((RESOURCE_TYPE, 0),)) + +MONITORING_TIME_IN_MINUTES: StaticSchema = (7, n0, _MTIM, 0) + +TYPE: StaticSchema = (3, n0, _T, 0) + +ROLLBACK_TRIGGER: StaticSchema = (18, n0, _RTo, 0, (_Ar, _T), ((ARN, 1), (TYPE, 1))) + +ROLLBACK_TRIGGERS: StaticSchema = (16, n0, _RTol, 0, (_m,), ((ROLLBACK_TRIGGER, 0),)) + +ROLLBACK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RCo, + 0, + (_RTol, _MTIM), + ((ROLLBACK_TRIGGERS, 0), (MONITORING_TIME_IN_MINUTES, 0)), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG: StaticSchema = (18, n0, _Tag, 0, (_K, _V), ((TAG_KEY, 1), (TAG_VALUE, 1))) + +TAGS: StaticSchema = (16, n0, _Ta, 0, (_m,), ((TAG, 0),)) + +TEMPLATE_BODY: StaticSchema = (3, n0, _TB, 0) + +TEMPLATE_URL: StaticSchema = (3, n0, _TURL, 0) + +USE_PREVIOUS_TEMPLATE: StaticSchema = (2, n0, _UPT, 0) + +CREATE_CHANGE_SET_INPUT: StaticSchema = ( + 18, + n0, + _CCSI, + {_s: None}, + ( + _SN, + _TB, + _TURL, + _UPT, + _Para, + _Cap, + _RTe, + _RARNo, + _RCo, + _NARNo, + _Ta, + _CSN, + _CTl, + _Des, + _CST, + _RTIe, + _INS, + _OSF, + _IER, + _DMe, + _DCe, + _DV, + ), + ( + (STACK_NAME_OR_ID, 1), + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (USE_PREVIOUS_TEMPLATE, 0), + (PARAMETERS, 0), + (CAPABILITIES, 0), + (RESOURCE_TYPES, 0), + (ROLE_ARN, 0), + (ROLLBACK_CONFIGURATION, 0), + (NOTIFICATION_AR_NS, 0), + (TAGS, 0), + (CHANGE_SET_NAME, 1), + (CLIENT_TOKEN, 0), + (DESCRIPTION, 0), + (CHANGE_SET_TYPE, 0), + (RESOURCES_TO_IMPORT, 0), + (INCLUDE_NESTED_STACKS, 0), + (ON_STACK_FAILURE, 0), + (IMPORT_EXISTING_RESOURCES, 0), + (DEPLOYMENT_MODE, 0), + (DEPLOYMENT_CONFIG, 0), + (DISABLE_VALIDATION, 0), + ), +) + +CREATE_CHANGE_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _CCSO, + {_sm: None}, + (_Id, _SI), + ((CHANGE_SET_ID, 0), (STACK_ID, 0)), +) + +INSUFFICIENT_CAPABILITIES_EXCEPTION: StaticSchema = ( + 18, + n0, + _ICE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InsufficientCapabilitiesException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "LimitExceededException", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +CREATE_CHANGE_SET: StaticOperationSchema = ( + 23, + n0, + _CCS, + 0, + CREATE_CHANGE_SET_INPUT, + CREATE_CHANGE_SET_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + INSUFFICIENT_CAPABILITIES_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + ), +) + +CONCURRENT_RESOURCES_LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _CRLEE, + { + _smi: _c, + _sE: 429, + _aQE: MappingProxyType( + {"code": "ConcurrentResourcesLimitExceeded", "httpResponseCode": 429} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +GENERATED_TEMPLATE_NAME: StaticSchema = (3, n0, _GTN, 0) + +RESOURCE_DEFINITION: StaticSchema = ( + 18, + n0, + _RDe, + 0, + (_RT, _LRI, _RI), + ((RESOURCE_TYPE, 1), (LOGICAL_RESOURCE_ID, 0), (RESOURCE_IDENTIFIER_PROPERTIES, 1)), +) + +RESOURCE_DEFINITIONS: StaticSchema = ( + 16, + n0, + _RDes, + 0, + (_m,), + ((RESOURCE_DEFINITION, 0),), +) + +GENERATED_TEMPLATE_DELETION_POLICY: StaticSchema = ( + 14, + n0, + _GTDP, + 0, + (_DELETE, _RETAIN), + ((-1, {_sV: _DELETE}), (-1, {_sV: _RETAIN})), +) + +GENERATED_TEMPLATE_UPDATE_REPLACE_POLICY: StaticSchema = ( + 14, + n0, + _GTURP, + 0, + (_DELETE, _RETAIN), + ((-1, {_sV: _DELETE}), (-1, {_sV: _RETAIN})), +) + +TEMPLATE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TCe, + 0, + (_DP, _URP), + ( + (GENERATED_TEMPLATE_DELETION_POLICY, 0), + (GENERATED_TEMPLATE_UPDATE_REPLACE_POLICY, 0), + ), +) + +CREATE_GENERATED_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _CGTI, + {_s: None}, + (_Reso, _GTN, _SN, _TCe), + ( + (RESOURCE_DEFINITIONS, 0), + (GENERATED_TEMPLATE_NAME, 1), + (STACK_NAME, 0), + (TEMPLATE_CONFIGURATION, 0), + ), +) + +GENERATED_TEMPLATE_ID: StaticSchema = (3, n0, _GTI, 0) + +CREATE_GENERATED_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _CGTO, + {_sm: None}, + (_GTI,), + ((GENERATED_TEMPLATE_ID, 0),), +) + +CREATE_GENERATED_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _CGT, + 0, + CREATE_GENERATED_TEMPLATE_INPUT, + CREATE_GENERATED_TEMPLATE_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + CONCURRENT_RESOURCES_LIMIT_EXCEEDED_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + ), +) + +ENABLE_TERMINATION_PROTECTION: StaticSchema = (2, n0, _ETP, 0) + +ON_FAILURE: StaticSchema = ( + 14, + n0, + _OF, + 0, + (_DN, _ROLLBACK, _DELETE), + ((-1, {_sV: _DN}), (-1, {_sV: _ROLLBACK}), (-1, {_sV: _DELETE})), +) + +RETAIN_EXCEPT_ON_CREATE: StaticSchema = (2, n0, _REOC, 0) + +STACK_POLICY_BODY: StaticSchema = (3, n0, _SPB, 0) + +STACK_POLICY_URL: StaticSchema = (3, n0, _SPURL, 0) + +TIMEOUT_MINUTES: StaticSchema = (7, n0, _TM, 0) + +CREATE_STACK_INPUT: StaticSchema = ( + 18, + n0, + _CSIr, + {_s: None}, + ( + _SN, + _TB, + _TURL, + _Para, + _DR, + _RCo, + _TIM, + _NARNo, + _Cap, + _RTe, + _RARNo, + _OF, + _SPB, + _SPURL, + _Ta, + _CRT, + _ETP, + _REOC, + _DCe, + _DV, + ), + ( + (STACK_NAME, 1), + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (PARAMETERS, 0), + (DISABLE_ROLLBACK, 0), + (ROLLBACK_CONFIGURATION, 0), + (TIMEOUT_MINUTES, 0), + (NOTIFICATION_AR_NS, 0), + (CAPABILITIES, 0), + (RESOURCE_TYPES, 0), + (ROLE_ARN, 0), + (ON_FAILURE, 0), + (STACK_POLICY_BODY, 0), + (STACK_POLICY_URL, 0), + (TAGS, 0), + (CLIENT_REQUEST_TOKEN, 0), + (ENABLE_TERMINATION_PROTECTION, 0), + (RETAIN_EXCEPT_ON_CREATE, 0), + (DEPLOYMENT_CONFIG, 0), + (DISABLE_VALIDATION, 0), + ), +) + +OPERATION_ID: StaticSchema = (3, n0, _OI, 0) + +CREATE_STACK_OUTPUT: StaticSchema = ( + 18, + n0, + _CSO, + {_sm: None}, + (_SI, _OI), + ((STACK_ID, 0), (OPERATION_ID, 0)), +) + +CREATE_STACK: StaticOperationSchema = ( + 23, + n0, + _CSr, + 0, + CREATE_STACK_INPUT, + CREATE_STACK_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + INSUFFICIENT_CAPABILITIES_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + TOKEN_ALREADY_EXISTS_EXCEPTION, + ), +) + +ORGANIZATIONAL_UNIT_ID: StaticSchema = (3, n0, _OUI, 0) + +ORGANIZATIONAL_UNIT_ID_LIST: StaticSchema = ( + 16, + n0, + _OUIL, + 0, + (_m,), + ((ORGANIZATIONAL_UNIT_ID, 0),), +) + +DEPLOYMENT_TARGETS: StaticSchema = ( + 18, + n0, + _DT, + 0, + (_Acc, _AU, _OUIr, _AFT), + ( + (ACCOUNT_LIST, 0), + (ACCOUNTS_URL, 0), + (ORGANIZATIONAL_UNIT_ID_LIST, 0), + (ACCOUNT_FILTER_TYPE, 0), + ), +) + +CONCURRENCY_MODE: StaticSchema = ( + 14, + n0, + _CM, + 0, + (_SFT, _SFT_), + ((-1, {_sV: _SFT}), (-1, {_sV: _SFT_})), +) + +FAILURE_TOLERANCE_COUNT: StaticSchema = (7, n0, _FTC, 0) + +FAILURE_TOLERANCE_PERCENTAGE: StaticSchema = (7, n0, _FTP, 0) + +MAX_CONCURRENT_COUNT: StaticSchema = (7, n0, _MCC, 0) + +MAX_CONCURRENT_PERCENTAGE: StaticSchema = (7, n0, _MCP, 0) + +REGION_CONCURRENCY_TYPE: StaticSchema = ( + 14, + n0, + _RCT, + 0, + (_SEQUENTIAL, _PARALLEL), + ((-1, {_sV: _SEQUENTIAL}), (-1, {_sV: _PARALLEL})), +) + +REGION: StaticSchema = (3, n0, _Reg, 0) + +REGION_LIST: StaticSchema = (16, n0, _RLe, 0, (_m,), ((REGION, 0),)) + +STACK_SET_OPERATION_PREFERENCES: StaticSchema = ( + 18, + n0, + _SSOP, + 0, + (_RCT, _RO, _FTC, _FTP, _MCC, _MCP, _CM), + ( + (REGION_CONCURRENCY_TYPE, 0), + (REGION_LIST, 0), + (FAILURE_TOLERANCE_COUNT, 0), + (FAILURE_TOLERANCE_PERCENTAGE, 0), + (MAX_CONCURRENT_COUNT, 0), + (MAX_CONCURRENT_PERCENTAGE, 0), + (CONCURRENCY_MODE, 0), + ), +) + +STACK_SET_NAME: StaticSchema = (3, n0, _SSN, 0) + +CREATE_STACK_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _CSII, + {_s: None}, + (_SSN, _Acc, _DT, _Regi, _PO, _OP, _OI, _CA), + ( + (STACK_SET_NAME, 1), + (ACCOUNT_LIST, 0), + (DEPLOYMENT_TARGETS, 0), + (REGION_LIST, 1), + (PARAMETERS, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + (CLIENT_REQUEST_TOKEN, 2), + (CALL_AS, 0), + ), +) + +CREATE_STACK_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _CSIO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +OPERATION_ID_ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _OIAEE, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "OperationIdAlreadyExistsException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +OPERATION_IN_PROGRESS_EXCEPTION: StaticSchema = ( + 18, + n0, + _OIPE, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "OperationInProgressException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +STACK_SET_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SSNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "StackSetNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +STALE_REQUEST_EXCEPTION: StaticSchema = ( + 18, + n0, + _SRE, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "StaleRequestException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +CREATE_STACK_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _CSIre, + 0, + CREATE_STACK_INSTANCES_INPUT, + CREATE_STACK_INSTANCES_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + OPERATION_ID_ALREADY_EXISTS_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + STALE_REQUEST_EXCEPTION, + ), +) + +ENABLE_STACK_CREATION: StaticSchema = (2, n0, _ESC, 0) + +RESOURCE_LOCATION: StaticSchema = ( + 18, + n0, + _RLes, + 0, + (_SN, _LRI), + ((STACK_NAME, 1), (LOGICAL_RESOURCE_ID, 1)), +) + +RESOURCE_MAPPING: StaticSchema = ( + 18, + n0, + _RMe, + 0, + (_So, _Dest), + ((RESOURCE_LOCATION, 1), (RESOURCE_LOCATION, 1)), +) + +RESOURCE_MAPPINGS: StaticSchema = (16, n0, _RMes, 0, (_m,), ((RESOURCE_MAPPING, 0),)) + +STACK_DEFINITION: StaticSchema = ( + 18, + n0, + _SD, + 0, + (_SN, _TB, _TURL), + ((STACK_NAME, 0), (TEMPLATE_BODY, 0), (TEMPLATE_URL, 0)), +) + +STACK_DEFINITIONS: StaticSchema = (16, n0, _SDt, 0, (_m,), ((STACK_DEFINITION, 0),)) + +CREATE_STACK_REFACTOR_INPUT: StaticSchema = ( + 18, + n0, + _CSRI, + {_s: None}, + (_Des, _ESC, _RMes, _SDt), + ( + (DESCRIPTION, 0), + (ENABLE_STACK_CREATION, 0), + (RESOURCE_MAPPINGS, 0), + (STACK_DEFINITIONS, 1), + ), +) + +STACK_REFACTOR_ID: StaticSchema = (3, n0, _SRI, 0) + +CREATE_STACK_REFACTOR_OUTPUT: StaticSchema = ( + 18, + n0, + _CSRO, + {_sm: None}, + (_SRI,), + ((STACK_REFACTOR_ID, 1),), +) + +CREATE_STACK_REFACTOR: StaticOperationSchema = ( + 23, + n0, + _CSR, + 0, + CREATE_STACK_REFACTOR_INPUT, + CREATE_STACK_REFACTOR_OUTPUT, + (), +) + +CREATED_BUT_MODIFIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _CBME, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "CreatedButModifiedException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +EXECUTION_ROLE_NAME: StaticSchema = (3, n0, _ERN, 0) + +MANAGED_EXECUTION_NULLABLE: StaticSchema = (2, n0, _MEN, 0) + +MANAGED_EXECUTION: StaticSchema = ( + 18, + n0, + _ME, + 0, + (_Act,), + ((MANAGED_EXECUTION_NULLABLE, 0),), +) + +PERMISSION_MODELS: StaticSchema = ( + 14, + n0, + _PM, + 0, + (_SM_, _SM__), + ((-1, {_sV: _SM_}), (-1, {_sV: _SM__})), +) + +CREATE_STACK_SET_INPUT: StaticSchema = ( + 18, + n0, + _CSSI, + {_s: None}, + ( + _SSN, + _Des, + _TB, + _TURL, + _SI, + _Para, + _Cap, + _Ta, + _ARARN, + _ERN, + _PMe, + _AD, + _CA, + _CRT, + _ME, + ), + ( + (STACK_SET_NAME, 1), + (DESCRIPTION, 0), + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (STACK_ID, 0), + (PARAMETERS, 0), + (CAPABILITIES, 0), + (TAGS, 0), + (ROLE_ARN, 0), + (EXECUTION_ROLE_NAME, 0), + (PERMISSION_MODELS, 0), + (AUTO_DEPLOYMENT, 0), + (CALL_AS, 0), + (CLIENT_REQUEST_TOKEN, 2), + (MANAGED_EXECUTION, 0), + ), +) + +STACK_SET_ID: StaticSchema = (3, n0, _SSI, 0) + +CREATE_STACK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _CSSO, + {_sm: None}, + (_SSI,), + ((STACK_SET_ID, 0),), +) + +NAME_ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _NAEE, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "NameAlreadyExistsException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +CREATE_STACK_SET: StaticOperationSchema = ( + 23, + n0, + _CSSr, + 0, + CREATE_STACK_SET_INPUT, + CREATE_STACK_SET_OUTPUT, + ( + CREATED_BUT_MODIFIED_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NAME_ALREADY_EXISTS_EXCEPTION, + ), +) + +DEACTIVATE_ORGANIZATIONS_ACCESS_INPUT: StaticSchema = (18, n0, _DOAI, {_s: None}) + +DEACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT: StaticSchema = (18, n0, _DOAO, {_sm: None}) + +DEACTIVATE_ORGANIZATIONS_ACCESS: StaticOperationSchema = ( + 23, + n0, + _DOA, + 0, + DEACTIVATE_ORGANIZATIONS_ACCESS_INPUT, + DEACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT, + (INVALID_OPERATION_EXCEPTION, OPERATION_NOT_FOUND_EXCEPTION), +) + +DEACTIVATE_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _DTI, + {_s: None}, + (_TN, _T, _Ar), + ((TYPE_NAME, 0), (THIRD_PARTY_TYPE, 0), (PRIVATE_TYPE_ARN, 0)), +) + +DEACTIVATE_TYPE_OUTPUT: StaticSchema = (18, n0, _DTO, {_sm: None}) + +DEACTIVATE_TYPE: StaticOperationSchema = ( + 23, + n0, + _DTe, + 0, + DEACTIVATE_TYPE_INPUT, + DEACTIVATE_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +DELETE_CHANGE_SET_INPUT: StaticSchema = ( + 18, + n0, + _DCSI, + {_s: None}, + (_CSN, _SN), + ((CHANGE_SET_NAME_OR_ID, 1), (STACK_NAME_OR_ID, 0)), +) + +DELETE_CHANGE_SET_OUTPUT: StaticSchema = (18, n0, _DCSO, {_sm: None}) + +INVALID_CHANGE_SET_STATUS_EXCEPTION: StaticSchema = ( + 18, + n0, + _ICSSE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidChangeSetStatus", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DELETE_CHANGE_SET: StaticOperationSchema = ( + 23, + n0, + _DCS, + 0, + DELETE_CHANGE_SET_INPUT, + DELETE_CHANGE_SET_OUTPUT, + (INVALID_CHANGE_SET_STATUS_EXCEPTION,), +) + +DELETE_GENERATED_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _DGTI, + {_s: None}, + (_GTN,), + ((GENERATED_TEMPLATE_NAME, 1),), +) + +DELETE_GENERATED_TEMPLATE_OUTPUT: StaticSchema = (18, n0, _DGTO, {_sSI: _sU, _sm: None}) + +GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _GTNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "GeneratedTemplateNotFound", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DELETE_GENERATED_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _DGT, + 0, + DELETE_GENERATED_TEMPLATE_INPUT, + DELETE_GENERATED_TEMPLATE_OUTPUT, + ( + CONCURRENT_RESOURCES_LIMIT_EXCEEDED_EXCEPTION, + GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION, + ), +) + +DELETION_MODE: StaticSchema = ( + 14, + n0, + _DMel, + 0, + (_STANDARD, _FDS), + ((-1, {_sV: _STANDARD}), (-1, {_sV: _FDS})), +) + +RETAIN_RESOURCES: StaticSchema = (16, n0, _RRet, 0, (_m,), ((LOGICAL_RESOURCE_ID, 0),)) + +DELETE_STACK_INPUT: StaticSchema = ( + 18, + n0, + _DSI, + {_s: None}, + (_SN, _RRet, _RARNo, _CRT, _DMel, _DCe), + ( + (STACK_NAME, 1), + (RETAIN_RESOURCES, 0), + (ROLE_ARN, 0), + (CLIENT_REQUEST_TOKEN, 0), + (DELETION_MODE, 0), + (DEPLOYMENT_CONFIG, 0), + ), +) + +DELETE_STACK_OUTPUT: StaticSchema = (18, n0, _DSO, {_sSI: _sU, _sm: None}) + +DELETE_STACK: StaticOperationSchema = ( + 23, + n0, + _DS, + 0, + DELETE_STACK_INPUT, + DELETE_STACK_OUTPUT, + (TOKEN_ALREADY_EXISTS_EXCEPTION,), +) + +RETAIN_STACKS: StaticSchema = (2, n0, _RS, 0) + +DELETE_STACK_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DSII, + {_s: None}, + (_SSN, _Acc, _DT, _Regi, _OP, _RS, _OI, _CA), + ( + (STACK_SET_NAME, 1), + (ACCOUNT_LIST, 0), + (DEPLOYMENT_TARGETS, 0), + (REGION_LIST, 1), + (STACK_SET_OPERATION_PREFERENCES, 0), + (RETAIN_STACKS, 1), + (CLIENT_REQUEST_TOKEN, 2), + (CALL_AS, 0), + ), +) + +DELETE_STACK_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +DELETE_STACK_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DSIe, + 0, + DELETE_STACK_INSTANCES_INPUT, + DELETE_STACK_INSTANCES_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + OPERATION_ID_ALREADY_EXISTS_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + STALE_REQUEST_EXCEPTION, + ), +) + +DELETE_STACK_SET_INPUT: StaticSchema = ( + 18, + n0, + _DSSI, + {_s: None}, + (_SSN, _CA), + ((STACK_SET_NAME, 1), (CALL_AS, 0)), +) + +DELETE_STACK_SET_OUTPUT: StaticSchema = (18, n0, _DSSO, {_sm: None}) + +STACK_SET_NOT_EMPTY_EXCEPTION: StaticSchema = ( + 18, + n0, + _SSNEE, + { + _smi: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "StackSetNotEmptyException", "httpResponseCode": 409} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DELETE_STACK_SET: StaticOperationSchema = ( + 23, + n0, + _DSS, + 0, + DELETE_STACK_SET_INPUT, + DELETE_STACK_SET_OUTPUT, + (OPERATION_IN_PROGRESS_EXCEPTION, STACK_SET_NOT_EMPTY_EXCEPTION), +) + +REGISTRY_TYPE: StaticSchema = ( + 14, + n0, + _RTeg, + 0, + (_RESOURCE, _MODULE, _HOOK), + ((-1, {_sV: _RESOURCE}), (-1, {_sV: _MODULE}), (-1, {_sV: _HOOK})), +) + +TYPE_VERSION_ID: StaticSchema = (3, n0, _TVI, 0) + +DEREGISTER_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _DTIe, + {_s: None}, + (_Ar, _T, _TN, _VI), + ((PRIVATE_TYPE_ARN, 0), (REGISTRY_TYPE, 0), (TYPE_NAME, 0), (TYPE_VERSION_ID, 0)), +) + +DEREGISTER_TYPE_OUTPUT: StaticSchema = (18, n0, _DTOe, {_sm: None}) + +DEREGISTER_TYPE: StaticOperationSchema = ( + 23, + n0, + _DTer, + 0, + DEREGISTER_TYPE_INPUT, + DEREGISTER_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +NEXT_TOKEN: StaticSchema = (3, n0, _NT, 0) + +DESCRIBE_ACCOUNT_LIMITS_INPUT: StaticSchema = ( + 18, + n0, + _DALI, + {_s: None}, + (_NT,), + ((NEXT_TOKEN, 0),), +) + +DESCRIBE_ACCOUNT_LIMITS_OUTPUT: StaticSchema = ( + 18, + n0, + _DALO, + {_sm: None}, + (_ALcc, _NT), + ((ACCOUNT_LIMIT_LIST, 0), (NEXT_TOKEN, 0)), +) + +DESCRIBE_ACCOUNT_LIMITS: StaticOperationSchema = ( + 23, + n0, + _DAL, + 0, + DESCRIBE_ACCOUNT_LIMITS_INPUT, + DESCRIBE_ACCOUNT_LIMITS_OUTPUT, + (), +) + +INCLUDE_PROPERTY_VALUES: StaticSchema = (2, n0, _IPV, 0) + +DESCRIBE_CHANGE_SET_INPUT: StaticSchema = ( + 18, + n0, + _DCSIe, + {_s: None}, + (_CSN, _SN, _NT, _IPV), + ( + (CHANGE_SET_NAME_OR_ID, 1), + (STACK_NAME_OR_ID, 0), + (NEXT_TOKEN, 0), + (INCLUDE_PROPERTY_VALUES, 0), + ), +) + +STACK_DRIFT_STATUS: StaticSchema = ( + 14, + n0, + _SDS, + 0, + (_DRIFTED, _IS, _UNKNOWN, _NC), + ((-1, {_sV: _DRIFTED}), (-1, {_sV: _IS}), (-1, {_sV: _UNKNOWN}), (-1, {_sV: _NC})), +) + +DESCRIBE_CHANGE_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _DCSOe, + {_sm: None}, + ( + _CSN, + _CSI, + _SI, + _SN, + _Des, + _Para, + _CTr, + _ES, + _S, + _SR, + _SDS, + _NARNo, + _RCo, + _Cap, + _Ta, + _Cha, + _NT, + _INS, + _PCSI, + _RCSI, + _OSF, + _IER, + _DMe, + _DCe, + ), + ( + (CHANGE_SET_NAME, 0), + (CHANGE_SET_ID, 0), + (STACK_ID, 0), + (STACK_NAME, 0), + (DESCRIPTION, 0), + (PARAMETERS, 0), + (CREATION_TIME, 0), + (EXECUTION_STATUS, 0), + (CHANGE_SET_STATUS, 0), + (CHANGE_SET_STATUS_REASON, 0), + (STACK_DRIFT_STATUS, 0), + (NOTIFICATION_AR_NS, 0), + (ROLLBACK_CONFIGURATION, 0), + (CAPABILITIES, 0), + (TAGS, 0), + (CHANGES, 0), + (NEXT_TOKEN, 0), + (INCLUDE_NESTED_STACKS, 0), + (CHANGE_SET_ID, 0), + (CHANGE_SET_ID, 0), + (ON_STACK_FAILURE, 0), + (IMPORT_EXISTING_RESOURCES, 0), + (DEPLOYMENT_MODE, 0), + (DEPLOYMENT_CONFIG, 0), + ), +) + +DESCRIBE_CHANGE_SET: StaticOperationSchema = ( + 23, + n0, + _DCSe, + 0, + DESCRIBE_CHANGE_SET_INPUT, + DESCRIBE_CHANGE_SET_OUTPUT, + (CHANGE_SET_NOT_FOUND_EXCEPTION,), +) + +DESCRIBE_CHANGE_SET_HOOKS_INPUT: StaticSchema = ( + 18, + n0, + _DCSHI, + {_s: None}, + (_CSN, _SN, _NT, _LRI), + ( + (CHANGE_SET_NAME_OR_ID, 1), + (STACK_NAME_OR_ID, 0), + (NEXT_TOKEN, 0), + (LOGICAL_RESOURCE_ID, 0), + ), +) + +DESCRIBE_CHANGE_SET_HOOKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCSHO, + {_sm: None}, + (_CSI, _CSN, _H, _S, _NT, _SI, _SN), + ( + (CHANGE_SET_ID, 0), + (CHANGE_SET_NAME, 0), + (CHANGE_SET_HOOKS, 0), + (CHANGE_SET_HOOKS_STATUS, 0), + (NEXT_TOKEN, 0), + (STACK_ID, 0), + (STACK_NAME, 0), + ), +) + +DESCRIBE_CHANGE_SET_HOOKS: StaticOperationSchema = ( + 23, + n0, + _DCSH, + 0, + DESCRIBE_CHANGE_SET_HOOKS_INPUT, + DESCRIBE_CHANGE_SET_HOOKS_OUTPUT, + (CHANGE_SET_NOT_FOUND_EXCEPTION,), +) + +FAILED_EVENTS_FILTER: StaticSchema = (2, n0, _FEF, 0) + +EVENT_FILTER: StaticSchema = (18, n0, _EFv, 0, (_FE,), ((FAILED_EVENTS_FILTER, 0),)) + +DESCRIBE_EVENTS_INPUT: StaticSchema = ( + 18, + n0, + _DEI, + {_s: None}, + (_SN, _CSN, _OI, _Fi, _NT), + ( + (STACK_NAME_OR_ID, 0), + (CHANGE_SET_NAME_OR_ID, 0), + (OPERATION_ID, 0), + (EVENT_FILTER, 0), + (NEXT_TOKEN, 0), + ), +) + +DETAILED_STATUS: StaticSchema = ( + 14, + n0, + _DSe, + 0, + (_CC_, _VF), + ((-1, {_sV: _CC_}), (-1, {_sV: _VF})), +) + +EVENT_ID: StaticSchema = (3, n0, _EI, 0) + +EVENT_TYPE: StaticSchema = ( + 14, + n0, + _ETv, + 0, + (_SE, _PE, _VE, _PE_, _HIE), + ( + (-1, {_sV: _SE}), + (-1, {_sV: _PE}), + (-1, {_sV: _VE}), + (-1, {_sV: _PE_}), + (-1, {_sV: _HIE}), + ), +) + +HOOK_STATUS: StaticSchema = ( + 14, + n0, + _HS, + 0, + (_HIP_, _HCS, _HCF, _HF), + ((-1, {_sV: _HIP_}), (-1, {_sV: _HCS}), (-1, {_sV: _HCF}), (-1, {_sV: _HF})), +) + +HOOK_STATUS_REASON: StaticSchema = (3, n0, _HSR, 0) + +HOOK_TYPE: StaticSchema = (3, n0, _HT, 0) + +OPERATION_TYPE: StaticSchema = ( + 14, + n0, + _OT, + 0, + (_CS_, _US, _DS_, _CR_, _ROLLBACK, _CC__), + ( + (-1, {_sV: _CS_}), + (-1, {_sV: _US}), + (-1, {_sV: _DS_}), + (-1, {_sV: _CR_}), + (-1, {_sV: _ROLLBACK}), + (-1, {_sV: _CC__}), + ), +) + +RESOURCE_PROPERTIES: StaticSchema = (3, n0, _RP, 0) + +RESOURCE_STATUS: StaticSchema = ( + 14, + n0, + _RSe, + 0, + ( + _CIP, + _CF, + _CC, + _DIP, + _DF, + _DC, + _DS__, + _UIP, + _UF, + _UC, + _IF, + _IC, + _IIP, + _IRIP, + _IRF, + _IRC, + _EF_, + _EC__, + _EIP_, + _ERIP, + _ERF, + _ERC, + _URIP, + _URC, + _URF, + _RIP_, + _RC_, + _RF, + ), + ( + (-1, {_sV: _CIP}), + (-1, {_sV: _CF}), + (-1, {_sV: _CC}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DF}), + (-1, {_sV: _DC}), + (-1, {_sV: _DS__}), + (-1, {_sV: _UIP}), + (-1, {_sV: _UF}), + (-1, {_sV: _UC}), + (-1, {_sV: _IF}), + (-1, {_sV: _IC}), + (-1, {_sV: _IIP}), + (-1, {_sV: _IRIP}), + (-1, {_sV: _IRF}), + (-1, {_sV: _IRC}), + (-1, {_sV: _EF_}), + (-1, {_sV: _EC__}), + (-1, {_sV: _EIP_}), + (-1, {_sV: _ERIP}), + (-1, {_sV: _ERF}), + (-1, {_sV: _ERC}), + (-1, {_sV: _URIP}), + (-1, {_sV: _URC}), + (-1, {_sV: _URF}), + (-1, {_sV: _RIP_}), + (-1, {_sV: _RC_}), + (-1, {_sV: _RF}), + ), +) + +RESOURCE_STATUS_REASON: StaticSchema = (3, n0, _RSR, 0) + +VALIDATION_NAME: StaticSchema = (3, n0, _VN, 0) + +VALIDATION_PATH: StaticSchema = (3, n0, _VP, 0) + +VALIDATION_STATUS: StaticSchema = ( + 14, + n0, + _VS, + 0, + (_FAILED, _SKIPPED), + ((-1, {_sV: _FAILED}), (-1, {_sV: _SKIPPED})), +) + +VALIDATION_STATUS_REASON: StaticSchema = (3, n0, _VSR, 0) + +OPERATION_EVENT: StaticSchema = ( + 18, + n0, + _OE, + 0, + ( + _EI, + _SI, + _OI, + _OT, + _OS, + _ETv, + _LRI, + _PRI, + _RT, + _Ti, + _ST, + _ETn, + _RSe, + _RSR, + _RP, + _CRT, + _HT, + _HS, + _HSR, + _HIP, + _HFM, + _DSe, + _VFM, + _VN, + _VS, + _VSR, + _VP, + ), + ( + (EVENT_ID, 0), + (STACK_ID, 0), + (OPERATION_ID, 0), + (OPERATION_TYPE, 0), + (BEACON_STACK_OPERATION_STATUS, 0), + (EVENT_TYPE, 0), + (LOGICAL_RESOURCE_ID, 0), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (RESOURCE_STATUS, 0), + (RESOURCE_STATUS_REASON, 0), + (RESOURCE_PROPERTIES, 0), + (CLIENT_REQUEST_TOKEN, 0), + (HOOK_TYPE, 0), + (HOOK_STATUS, 0), + (HOOK_STATUS_REASON, 0), + (HOOK_INVOCATION_POINT, 0), + (HOOK_FAILURE_MODE, 0), + (DETAILED_STATUS, 0), + (HOOK_FAILURE_MODE, 0), + (VALIDATION_NAME, 0), + (VALIDATION_STATUS, 0), + (VALIDATION_STATUS_REASON, 0), + (VALIDATION_PATH, 0), + ), +) + +OPERATION_EVENTS: StaticSchema = (16, n0, _OEp, 0, (_m,), ((OPERATION_EVENT, 0),)) + +DESCRIBE_EVENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEO, + {_sm: None}, + (_OEp, _NT), + ((OPERATION_EVENTS, 0), (NEXT_TOKEN, 0)), +) + +DESCRIBE_EVENTS: StaticOperationSchema = ( + 23, + n0, + _DE, + 0, + DESCRIBE_EVENTS_INPUT, + DESCRIBE_EVENTS_OUTPUT, + (), +) + +DESCRIBE_GENERATED_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _DGTIe, + {_s: None}, + (_GTN,), + ((GENERATED_TEMPLATE_NAME, 1),), +) + +LAST_UPDATED_TIME: StaticSchema = (4, n0, _LUT, 0) + +RESOURCES_FAILED: StaticSchema = (7, n0, _RFe, 0) + +RESOURCES_PENDING: StaticSchema = (7, n0, _RPe, 0) + +RESOURCES_PROCESSING: StaticSchema = (7, n0, _RPes, 0) + +RESOURCES_SUCCEEDED: StaticSchema = (7, n0, _RSes, 0) + +TEMPLATE_PROGRESS: StaticSchema = ( + 18, + n0, + _TPe, + 0, + (_RSes, _RFe, _RPes, _RPe), + ( + (RESOURCES_SUCCEEDED, 0), + (RESOURCES_FAILED, 0), + (RESOURCES_PROCESSING, 0), + (RESOURCES_PENDING, 0), + ), +) + +GENERATED_TEMPLATE_RESOURCE_STATUS: StaticSchema = ( + 14, + n0, + _GTRS, + 0, + (_PENDING, _IP, _FAILED, _COMPLETE), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _IP}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _COMPLETE}), + ), +) + +PROPERTY_DESCRIPTION: StaticSchema = (3, n0, _PD, 0) + +PROPERTY_PATH: StaticSchema = (3, n0, _PPr, 0) + +REQUIRED_PROPERTY: StaticSchema = (2, n0, _RPeq, 0) + +WARNING_PROPERTY: StaticSchema = ( + 18, + n0, + _WP, + 0, + (_PPr, _Req, _Des), + ((PROPERTY_PATH, 0), (REQUIRED_PROPERTY, 0), (PROPERTY_DESCRIPTION, 0)), +) + +WARNING_PROPERTIES: StaticSchema = (16, n0, _WPa, 0, (_m,), ((WARNING_PROPERTY, 0),)) + +WARNING_TYPE: StaticSchema = ( + 14, + n0, + _WT, + 0, + (_MEP, _UP_, _MET, _EP, _ER), + ( + (-1, {_sV: _MEP}), + (-1, {_sV: _UP_}), + (-1, {_sV: _MET}), + (-1, {_sV: _EP}), + (-1, {_sV: _ER}), + ), +) + +WARNING_DETAIL: StaticSchema = ( + 18, + n0, + _WD, + 0, + (_T, _P), + ((WARNING_TYPE, 0), (WARNING_PROPERTIES, 0)), +) + +WARNING_DETAILS: StaticSchema = (16, n0, _WDa, 0, (_m,), ((WARNING_DETAIL, 0),)) + +RESOURCE_DETAIL: StaticSchema = ( + 18, + n0, + _RDeso, + 0, + (_RT, _LRI, _RI, _RSe, _RSR, _W), + ( + (RESOURCE_TYPE, 0), + (LOGICAL_RESOURCE_ID, 0), + (RESOURCE_IDENTIFIER_PROPERTIES, 0), + (GENERATED_TEMPLATE_RESOURCE_STATUS, 0), + (RESOURCE_STATUS_REASON, 0), + (WARNING_DETAILS, 0), + ), +) + +RESOURCE_DETAILS: StaticSchema = (16, n0, _RDesou, 0, (_m,), ((RESOURCE_DETAIL, 0),)) + +GENERATED_TEMPLATE_STATUS: StaticSchema = ( + 14, + n0, + _GTS, + 0, + (_CP_, _UP__, _DP_, _CIP, _UIP, _DIP, _FAILED, _COMPLETE), + ( + (-1, {_sV: _CP_}), + (-1, {_sV: _UP__}), + (-1, {_sV: _DP_}), + (-1, {_sV: _CIP}), + (-1, {_sV: _UIP}), + (-1, {_sV: _DIP}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _COMPLETE}), + ), +) + +TEMPLATE_STATUS_REASON: StaticSchema = (3, n0, _TSR, 0) + +TOTAL_WARNINGS: StaticSchema = (7, n0, _TW, 0) + +DESCRIBE_GENERATED_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DGTOe, + {_sm: None}, + (_GTI, _GTN, _Reso, _S, _SR, _CTr, _LUT, _Pr, _SI, _TCe, _TW), + ( + (GENERATED_TEMPLATE_ID, 0), + (GENERATED_TEMPLATE_NAME, 0), + (RESOURCE_DETAILS, 0), + (GENERATED_TEMPLATE_STATUS, 0), + (TEMPLATE_STATUS_REASON, 0), + (CREATION_TIME, 0), + (LAST_UPDATED_TIME, 0), + (TEMPLATE_PROGRESS, 0), + (STACK_ID, 0), + (TEMPLATE_CONFIGURATION, 0), + (TOTAL_WARNINGS, 0), + ), +) + +DESCRIBE_GENERATED_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _DGTe, + 0, + DESCRIBE_GENERATED_TEMPLATE_INPUT, + DESCRIBE_GENERATED_TEMPLATE_OUTPUT, + (GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION,), +) + +DESCRIBE_ORGANIZATIONS_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _DOAIe, + {_s: None}, + (_CA,), + ((CALL_AS, 0),), +) + +ORGANIZATION_STATUS: StaticSchema = ( + 14, + n0, + _OSr, + 0, + (_ENABLED, _DISABLED, _DP__), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED}), (-1, {_sV: _DP__})), +) + +DESCRIBE_ORGANIZATIONS_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _DOAOe, + {_sm: None}, + (_S,), + ((ORGANIZATION_STATUS, 0),), +) + +DESCRIBE_ORGANIZATIONS_ACCESS: StaticOperationSchema = ( + 23, + n0, + _DOAe, + 0, + DESCRIBE_ORGANIZATIONS_ACCESS_INPUT, + DESCRIBE_ORGANIZATIONS_ACCESS_OUTPUT, + (INVALID_OPERATION_EXCEPTION, OPERATION_NOT_FOUND_EXCEPTION), +) + +DESCRIBE_PUBLISHER_INPUT: StaticSchema = ( + 18, + n0, + _DPI, + {_s: None}, + (_PI,), + ((PUBLISHER_ID, 0),), +) + +IDENTITY_PROVIDER: StaticSchema = ( + 14, + n0, + _IPd, + 0, + (_AM, _GH, _B), + ((-1, {_sV: _AM}), (-1, {_sV: _GH}), (-1, {_sV: _B})), +) + +PUBLISHER_PROFILE: StaticSchema = (3, n0, _PPu, 0) + +PUBLISHER_STATUS: StaticSchema = ( + 14, + n0, + _PS, + 0, + (_VERIFIED, _UNVERIFIED), + ((-1, {_sV: _VERIFIED}), (-1, {_sV: _UNVERIFIED})), +) + +DESCRIBE_PUBLISHER_OUTPUT: StaticSchema = ( + 18, + n0, + _DPO, + {_sm: None}, + (_PI, _PS, _IPd, _PPu), + ( + (PUBLISHER_ID, 0), + (PUBLISHER_STATUS, 0), + (IDENTITY_PROVIDER, 0), + (PUBLISHER_PROFILE, 0), + ), +) + +DESCRIBE_PUBLISHER: StaticOperationSchema = ( + 23, + n0, + _DPe, + 0, + DESCRIBE_PUBLISHER_INPUT, + DESCRIBE_PUBLISHER_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +RESOURCE_SCAN_ID: StaticSchema = (3, n0, _RSI, 0) + +DESCRIBE_RESOURCE_SCAN_INPUT: StaticSchema = ( + 18, + n0, + _DRSI, + {_s: None}, + (_RSI,), + ((RESOURCE_SCAN_ID, 1),), +) + +PERCENTAGE_COMPLETED: StaticSchema = (10, n0, _PC, 0) + +RESOURCES_READ: StaticSchema = (7, n0, _RRes, 0) + +RESOURCES_SCANNED: StaticSchema = (7, n0, _RSeso, 0) + +RESOURCE_TYPE_FILTER: StaticSchema = (3, n0, _RTF, 0) + +RESOURCE_TYPE_FILTERS: StaticSchema = ( + 16, + n0, + _RTFe, + 0, + (_m,), + ((RESOURCE_TYPE_FILTER, 0),), +) + +SCAN_FILTER: StaticSchema = (18, n0, _SF, 0, (_Ty,), ((RESOURCE_TYPE_FILTERS, 0),)) + +SCAN_FILTERS: StaticSchema = (16, n0, _SFc, 0, (_m,), ((SCAN_FILTER, 0),)) + +RESOURCE_SCAN_STATUS: StaticSchema = ( + 14, + n0, + _RSS, + 0, + (_IP, _FAILED, _COMPLETE, _EXPIRED), + ( + (-1, {_sV: _IP}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _COMPLETE}), + (-1, {_sV: _EXPIRED}), + ), +) + +RESOURCE_SCAN_STATUS_REASON: StaticSchema = (3, n0, _RSSR, 0) + +DESCRIBE_RESOURCE_SCAN_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSO, + {_sm: None}, + (_RSI, _S, _SR, _ST, _ETn, _PC, _RTe, _RSeso, _RRes, _SFc), + ( + (RESOURCE_SCAN_ID, 0), + (RESOURCE_SCAN_STATUS, 0), + (RESOURCE_SCAN_STATUS_REASON, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (PERCENTAGE_COMPLETED, 0), + (RESOURCE_TYPES, 0), + (RESOURCES_SCANNED, 0), + (RESOURCES_READ, 0), + (SCAN_FILTERS, 0), + ), +) + +RESOURCE_SCAN_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RSNFE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ResourceScanNotFound", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DESCRIBE_RESOURCE_SCAN: StaticOperationSchema = ( + 23, + n0, + _DRS, + 0, + DESCRIBE_RESOURCE_SCAN_INPUT, + DESCRIBE_RESOURCE_SCAN_OUTPUT, + (RESOURCE_SCAN_NOT_FOUND_EXCEPTION,), +) + +STACK_DRIFT_DETECTION_ID: StaticSchema = (3, n0, _SDDI, 0) + +DESCRIBE_STACK_DRIFT_DETECTION_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DSDDSI, + {_s: None}, + (_SDDI,), + ((STACK_DRIFT_DETECTION_ID, 1),), +) + +STACK_DRIFT_DETECTION_STATUS: StaticSchema = ( + 14, + n0, + _SDDS, + 0, + (_DIP_, _DF_, _DC_), + ((-1, {_sV: _DIP_}), (-1, {_sV: _DF_}), (-1, {_sV: _DC_})), +) + +STACK_DRIFT_DETECTION_STATUS_REASON: StaticSchema = (3, n0, _SDDSR, 0) + +DESCRIBE_STACK_DRIFT_DETECTION_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDDSO, + {_sm: None}, + (_SI, _SDDI, _SDS, _DSet, _DSR, _DSRC, _Ti), + ( + (STACK_ID, 1), + (STACK_DRIFT_DETECTION_ID, 1), + (STACK_DRIFT_STATUS, 0), + (STACK_DRIFT_DETECTION_STATUS, 1), + (STACK_DRIFT_DETECTION_STATUS_REASON, 0), + (BOXED_INTEGER, 0), + (TIMESTAMP, 1), + ), +) + +DESCRIBE_STACK_DRIFT_DETECTION_STATUS: StaticOperationSchema = ( + 23, + n0, + _DSDDS, + 0, + DESCRIBE_STACK_DRIFT_DETECTION_STATUS_INPUT, + DESCRIBE_STACK_DRIFT_DETECTION_STATUS_OUTPUT, + (), +) + +DESCRIBE_STACK_EVENTS_INPUT: StaticSchema = ( + 18, + n0, + _DSEI, + {_s: None}, + (_SN, _NT), + ((STACK_NAME, 1), (NEXT_TOKEN, 0)), +) + +HOOK_INVOCATION_ID: StaticSchema = (3, n0, _HII, 0) + +STACK_EVENT: StaticSchema = ( + 18, + n0, + _SEt, + 0, + ( + _SI, + _EI, + _SN, + _OI, + _LRI, + _PRI, + _RT, + _Ti, + _RSe, + _RSR, + _RP, + _CRT, + _HT, + _HS, + _HSR, + _HIP, + _HII, + _HFM, + _DSe, + ), + ( + (STACK_ID, 1), + (EVENT_ID, 1), + (STACK_NAME, 1), + (OPERATION_ID, 0), + (LOGICAL_RESOURCE_ID, 0), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 0), + (TIMESTAMP, 1), + (RESOURCE_STATUS, 0), + (RESOURCE_STATUS_REASON, 0), + (RESOURCE_PROPERTIES, 0), + (CLIENT_REQUEST_TOKEN, 0), + (HOOK_TYPE, 0), + (HOOK_STATUS, 0), + (HOOK_STATUS_REASON, 0), + (HOOK_INVOCATION_POINT, 0), + (HOOK_INVOCATION_ID, 0), + (HOOK_FAILURE_MODE, 0), + (DETAILED_STATUS, 0), + ), +) + +STACK_EVENTS: StaticSchema = (16, n0, _SEta, 0, (_m,), ((STACK_EVENT, 0),)) + +DESCRIBE_STACK_EVENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSEO, + {_sm: None}, + (_SEta, _NT), + ((STACK_EVENTS, 0), (NEXT_TOKEN, 0)), +) + +DESCRIBE_STACK_EVENTS: StaticOperationSchema = ( + 23, + n0, + _DSE, + 0, + DESCRIBE_STACK_EVENTS_INPUT, + DESCRIBE_STACK_EVENTS_OUTPUT, + (), +) + +DESCRIBE_STACK_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _DSIIe, + {_s: None}, + (_SSN, _SIA, _SIR, _CA), + ((STACK_SET_NAME, 1), (ACCOUNT, 1), (REGION, 1), (CALL_AS, 0)), +) + +STACK_INSTANCE_DETAILED_STATUS: StaticSchema = ( + 14, + n0, + _SIDS, + 0, + (_PENDING, _RUNNING, _SUCCEEDED, _FAILED, _CANCELLED, _INOPERABLE, _SSA, _FI), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _RUNNING}), + (-1, {_sV: _SUCCEEDED}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _CANCELLED}), + (-1, {_sV: _INOPERABLE}), + (-1, {_sV: _SSA}), + (-1, {_sV: _FI}), + ), +) + +STACK_INSTANCE_COMPREHENSIVE_STATUS: StaticSchema = ( + 18, + n0, + _SICS, + 0, + (_DSe,), + ((STACK_INSTANCE_DETAILED_STATUS, 0),), +) + +STACK_INSTANCE_STATUS: StaticSchema = ( + 14, + n0, + _SIS, + 0, + (_CURRENT, _OUTDATED, _INOPERABLE), + ((-1, {_sV: _CURRENT}), (-1, {_sV: _OUTDATED}), (-1, {_sV: _INOPERABLE})), +) + +REASON: StaticSchema = (3, n0, _Rea, 0) + +STACK_INSTANCE: StaticSchema = ( + 18, + n0, + _SIt, + 0, + (_SSI, _Reg, _A, _SI, _PO, _S, _SIS, _SR, _OUI, _DSr, _LDCT, _LOI), + ( + (STACK_SET_ID, 0), + (REGION, 0), + (ACCOUNT, 0), + (STACK_ID, 0), + (PARAMETERS, 0), + (STACK_INSTANCE_STATUS, 0), + (STACK_INSTANCE_COMPREHENSIVE_STATUS, 0), + (REASON, 0), + (ORGANIZATIONAL_UNIT_ID, 0), + (STACK_DRIFT_STATUS, 0), + (TIMESTAMP, 0), + (CLIENT_REQUEST_TOKEN, 0), + ), +) + +DESCRIBE_STACK_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIOe, + {_sm: None}, + (_SIt,), + ((STACK_INSTANCE, 0),), +) + +STACK_INSTANCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SINFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "StackInstanceNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DESCRIBE_STACK_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _DSIes, + 0, + DESCRIBE_STACK_INSTANCE_INPUT, + DESCRIBE_STACK_INSTANCE_OUTPUT, + (STACK_INSTANCE_NOT_FOUND_EXCEPTION, STACK_SET_NOT_FOUND_EXCEPTION), +) + +DESCRIBE_STACK_REFACTOR_INPUT: StaticSchema = ( + 18, + n0, + _DSRI, + {_s: None}, + (_SRI,), + ((STACK_REFACTOR_ID, 1),), +) + +STACK_REFACTOR_EXECUTION_STATUS: StaticSchema = ( + 14, + n0, + _SRES, + 0, + (_UNAVAILABLE, _AVAILABLE, _OBSOLETE, _EIP, _EC_, _EF, _RIP_, _RC_, _RF), + ( + (-1, {_sV: _UNAVAILABLE}), + (-1, {_sV: _AVAILABLE}), + (-1, {_sV: _OBSOLETE}), + (-1, {_sV: _EIP}), + (-1, {_sV: _EC_}), + (-1, {_sV: _EF}), + (-1, {_sV: _RIP_}), + (-1, {_sV: _RC_}), + (-1, {_sV: _RF}), + ), +) + +EXECUTION_STATUS_REASON: StaticSchema = (3, n0, _ESR, 0) + +STACK_IDS: StaticSchema = (16, n0, _SIta, 0, (_m,), ((STACK_ID, 0),)) + +STACK_REFACTOR_STATUS: StaticSchema = ( + 14, + n0, + _SRS, + 0, + (_CIP, _CC, _CF, _DIP, _DC, _DF), + ( + (-1, {_sV: _CIP}), + (-1, {_sV: _CC}), + (-1, {_sV: _CF}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DC}), + (-1, {_sV: _DF}), + ), +) + +STACK_REFACTOR_STATUS_REASON: StaticSchema = (3, n0, _SRSR, 0) + +DESCRIBE_STACK_REFACTOR_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRO, + {_sm: None}, + (_Des, _SRI, _SIta, _ES, _ESR, _S, _SR), + ( + (DESCRIPTION, 0), + (STACK_REFACTOR_ID, 0), + (STACK_IDS, 0), + (STACK_REFACTOR_EXECUTION_STATUS, 0), + (EXECUTION_STATUS_REASON, 0), + (STACK_REFACTOR_STATUS, 0), + (STACK_REFACTOR_STATUS_REASON, 0), + ), +) + +STACK_REFACTOR_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SRNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "StackRefactorNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +DESCRIBE_STACK_REFACTOR: StaticOperationSchema = ( + 23, + n0, + _DSRe, + 0, + DESCRIBE_STACK_REFACTOR_INPUT, + DESCRIBE_STACK_REFACTOR_OUTPUT, + (STACK_REFACTOR_NOT_FOUND_EXCEPTION,), +) + +DESCRIBE_STACK_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _DSRIe, + {_s: None}, + (_SN, _LRI), + ((STACK_NAME, 1), (LOGICAL_RESOURCE_ID, 1)), +) + +STACK_RESOURCE_DRIFT_INFORMATION: StaticSchema = ( + 18, + n0, + _SRDI, + 0, + (_SRDS, _LCT), + ((STACK_RESOURCE_DRIFT_STATUS, 1), (TIMESTAMP, 0)), +) + +METADATA: StaticSchema = (3, n0, _Me, 0) + +STACK_RESOURCE_DETAIL: StaticSchema = ( + 18, + n0, + _SRD, + 0, + (_SN, _SI, _LRI, _PRI, _RT, _LUTa, _RSe, _RSR, _Des, _Me, _DI, _MI), + ( + (STACK_NAME, 0), + (STACK_ID, 0), + (LOGICAL_RESOURCE_ID, 1), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 1), + (TIMESTAMP, 1), + (RESOURCE_STATUS, 1), + (RESOURCE_STATUS_REASON, 0), + (DESCRIPTION, 0), + (METADATA, 0), + (STACK_RESOURCE_DRIFT_INFORMATION, 0), + (MODULE_INFO, 0), + ), +) + +DESCRIBE_STACK_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSROe, + {_sm: None}, + (_SRD,), + ((STACK_RESOURCE_DETAIL, 0),), +) + +DESCRIBE_STACK_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _DSRes, + 0, + DESCRIBE_STACK_RESOURCE_INPUT, + DESCRIBE_STACK_RESOURCE_OUTPUT, + (), +) + +STACK_RESOURCE_DRIFT_STATUS_FILTERS: StaticSchema = ( + 16, + n0, + _SRDSF, + 0, + (_m,), + ((STACK_RESOURCE_DRIFT_STATUS, 0),), +) + +DESCRIBE_STACK_RESOURCE_DRIFTS_INPUT: StaticSchema = ( + 18, + n0, + _DSRDI, + {_s: None}, + (_SN, _SRDSF, _NT, _MR), + ( + (STACK_NAME_OR_ID, 1), + (STACK_RESOURCE_DRIFT_STATUS_FILTERS, 0), + (NEXT_TOKEN, 0), + (BOXED_MAX_RESULTS, 0), + ), +) + +PROPERTIES: StaticSchema = (3, n0, _P, 0) + +STACK_RESOURCE_DRIFT_STATUS_REASON: StaticSchema = (3, n0, _SRDSR, 0) + +KEY: StaticSchema = (3, n0, _K, 0) + +VALUE: StaticSchema = (3, n0, _V, 0) + +PHYSICAL_RESOURCE_ID_CONTEXT_KEY_VALUE_PAIR: StaticSchema = ( + 18, + n0, + _PRICKVP, + 0, + (_K, _V), + ((KEY, 1), (VALUE, 1)), +) + +PHYSICAL_RESOURCE_ID_CONTEXT: StaticSchema = ( + 16, + n0, + _PRIC, + 0, + (_m,), + ((PHYSICAL_RESOURCE_ID_CONTEXT_KEY_VALUE_PAIR, 0),), +) + +PROPERTY_VALUE: StaticSchema = (3, n0, _PVr, 0) + +DIFFERENCE_TYPE: StaticSchema = ( + 14, + n0, + _DTi, + 0, + (_ADD, _REMOVE, _NE), + ((-1, {_sV: _ADD}), (-1, {_sV: _REMOVE}), (-1, {_sV: _NE})), +) + +PROPERTY_DIFFERENCE: StaticSchema = ( + 18, + n0, + _PDr, + 0, + (_PPr, _EV, _AVc, _DTi), + ( + (PROPERTY_PATH, 1), + (PROPERTY_VALUE, 1), + (PROPERTY_VALUE, 1), + (DIFFERENCE_TYPE, 1), + ), +) + +PROPERTY_DIFFERENCES: StaticSchema = ( + 16, + n0, + _PDro, + 0, + (_m,), + ((PROPERTY_DIFFERENCE, 0),), +) + +STACK_RESOURCE_DRIFT: StaticSchema = ( + 18, + n0, + _SRDt, + 0, + (_SI, _LRI, _PRI, _PRIC, _RT, _EPx, _AP, _PDro, _SRDS, _Ti, _MI, _DSRr), + ( + (STACK_ID, 1), + (LOGICAL_RESOURCE_ID, 1), + (PHYSICAL_RESOURCE_ID, 0), + (PHYSICAL_RESOURCE_ID_CONTEXT, 0), + (RESOURCE_TYPE, 1), + (PROPERTIES, 0), + (PROPERTIES, 0), + (PROPERTY_DIFFERENCES, 0), + (STACK_RESOURCE_DRIFT_STATUS, 1), + (TIMESTAMP, 1), + (MODULE_INFO, 0), + (STACK_RESOURCE_DRIFT_STATUS_REASON, 0), + ), +) + +STACK_RESOURCE_DRIFTS: StaticSchema = ( + 16, + n0, + _SRDta, + 0, + (_m,), + ((STACK_RESOURCE_DRIFT, 0),), +) + +DESCRIBE_STACK_RESOURCE_DRIFTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRDO, + {_sm: None}, + (_SRDta, _NT), + ((STACK_RESOURCE_DRIFTS, 1), (NEXT_TOKEN, 0)), +) + +DESCRIBE_STACK_RESOURCE_DRIFTS: StaticOperationSchema = ( + 23, + n0, + _DSRD, + 0, + DESCRIBE_STACK_RESOURCE_DRIFTS_INPUT, + DESCRIBE_STACK_RESOURCE_DRIFTS_OUTPUT, + (), +) + +DESCRIBE_STACK_RESOURCES_INPUT: StaticSchema = ( + 18, + n0, + _DSRIes, + {_s: None}, + (_SN, _LRI, _PRI), + ((STACK_NAME, 0), (LOGICAL_RESOURCE_ID, 0), (PHYSICAL_RESOURCE_ID, 0)), +) + +STACK_RESOURCE: StaticSchema = ( + 18, + n0, + _SRt, + 0, + (_SN, _SI, _LRI, _PRI, _RT, _Ti, _RSe, _RSR, _Des, _DI, _MI), + ( + (STACK_NAME, 0), + (STACK_ID, 0), + (LOGICAL_RESOURCE_ID, 1), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 1), + (TIMESTAMP, 1), + (RESOURCE_STATUS, 1), + (RESOURCE_STATUS_REASON, 0), + (DESCRIPTION, 0), + (STACK_RESOURCE_DRIFT_INFORMATION, 0), + (MODULE_INFO, 0), + ), +) + +STACK_RESOURCES: StaticSchema = (16, n0, _SRta, 0, (_m,), ((STACK_RESOURCE, 0),)) + +DESCRIBE_STACK_RESOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSROes, + {_sm: None}, + (_SRta,), + ((STACK_RESOURCES, 0),), +) + +DESCRIBE_STACK_RESOURCES: StaticOperationSchema = ( + 23, + n0, + _DSResc, + 0, + DESCRIBE_STACK_RESOURCES_INPUT, + DESCRIBE_STACK_RESOURCES_OUTPUT, + (), +) + +DESCRIBE_STACKS_INPUT: StaticSchema = ( + 18, + n0, + _DSIesc, + {_s: None}, + (_SN, _NT), + ((STACK_NAME, 0), (NEXT_TOKEN, 0)), +) + +DELETION_TIME: StaticSchema = (4, n0, _DTel, 0) + +STACK_DRIFT_INFORMATION: StaticSchema = ( + 18, + n0, + _SDI, + 0, + (_SDS, _LCT), + ((STACK_DRIFT_STATUS, 1), (TIMESTAMP, 0)), +) + +OPERATION_ENTRY: StaticSchema = ( + 18, + n0, + _OEpe, + 0, + (_OT, _OI), + ((OPERATION_TYPE, 0), (OPERATION_ID, 0)), +) + +LAST_OPERATIONS: StaticSchema = (16, n0, _LO, 0, (_m,), ((OPERATION_ENTRY, 0),)) + +EXPORT_NAME: StaticSchema = (3, n0, _EN, 0) + +OUTPUT_KEY: StaticSchema = (3, n0, _OK, 0) + +OUTPUT_VALUE: StaticSchema = (3, n0, _OV, 0) + +OUTPUT: StaticSchema = ( + 18, + n0, + _O, + 0, + (_OK, _OV, _Des, _EN), + ((OUTPUT_KEY, 0), (OUTPUT_VALUE, 0), (DESCRIPTION, 0), (EXPORT_NAME, 0)), +) + +OUTPUTS: StaticSchema = (16, n0, _Ou, 0, (_m,), ((OUTPUT, 0),)) + +STACK_STATUS: StaticSchema = ( + 14, + n0, + _SS, + 0, + ( + _CIP, + _CF, + _CC, + _RIP_, + _RF, + _RC_, + _DIP, + _DF, + _DC, + _UIP, + _UCCIP, + _UC, + _UF, + _URIP, + _URF, + _URCCIP, + _URC, + _RIP__, + _IIP, + _IC, + _IRIP, + _IRF, + _IRC, + ), + ( + (-1, {_sV: _CIP}), + (-1, {_sV: _CF}), + (-1, {_sV: _CC}), + (-1, {_sV: _RIP_}), + (-1, {_sV: _RF}), + (-1, {_sV: _RC_}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DF}), + (-1, {_sV: _DC}), + (-1, {_sV: _UIP}), + (-1, {_sV: _UCCIP}), + (-1, {_sV: _UC}), + (-1, {_sV: _UF}), + (-1, {_sV: _URIP}), + (-1, {_sV: _URF}), + (-1, {_sV: _URCCIP}), + (-1, {_sV: _URC}), + (-1, {_sV: _RIP__}), + (-1, {_sV: _IIP}), + (-1, {_sV: _IC}), + (-1, {_sV: _IRIP}), + (-1, {_sV: _IRF}), + (-1, {_sV: _IRC}), + ), +) + +STACK_STATUS_REASON: StaticSchema = (3, n0, _SSR, 0) + +STACK: StaticSchema = ( + 18, + n0, + _Sta, + 0, + ( + _SI, + _SN, + _CSI, + _Des, + _Para, + _CTr, + _DTel, + _LUT, + _RCo, + _SS, + _SSR, + _DR, + _DCe, + _NARNo, + _TIM, + _Cap, + _Ou, + _RARNo, + _Ta, + _ETP, + _PIa, + _RIo, + _DI, + _REOC, + _DMel, + _DSe, + _LO, + ), + ( + (STACK_ID, 0), + (STACK_NAME, 1), + (CHANGE_SET_ID, 0), + (DESCRIPTION, 0), + (PARAMETERS, 0), + (CREATION_TIME, 1), + (DELETION_TIME, 0), + (LAST_UPDATED_TIME, 0), + (ROLLBACK_CONFIGURATION, 0), + (STACK_STATUS, 1), + (STACK_STATUS_REASON, 0), + (DISABLE_ROLLBACK, 0), + (DEPLOYMENT_CONFIG, 0), + (NOTIFICATION_AR_NS, 0), + (TIMEOUT_MINUTES, 0), + (CAPABILITIES, 0), + (OUTPUTS, 0), + (ROLE_ARN, 0), + (TAGS, 0), + (ENABLE_TERMINATION_PROTECTION, 0), + (STACK_ID, 0), + (STACK_ID, 0), + (STACK_DRIFT_INFORMATION, 0), + (RETAIN_EXCEPT_ON_CREATE, 0), + (DELETION_MODE, 0), + (DETAILED_STATUS, 0), + (LAST_OPERATIONS, 0), + ), +) + +STACKS: StaticSchema = (16, n0, _Stac, 0, (_m,), ((STACK, 0),)) + +DESCRIBE_STACKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSOe, + {_sm: None}, + (_Stac, _NT), + ((STACKS, 0), (NEXT_TOKEN, 0)), +) + +DESCRIBE_STACKS: StaticOperationSchema = ( + 23, + n0, + _DSes, + 0, + DESCRIBE_STACKS_INPUT, + DESCRIBE_STACKS_OUTPUT, + (), +) + +DESCRIBE_STACK_SET_INPUT: StaticSchema = ( + 18, + n0, + _DSSIe, + {_s: None}, + (_SSN, _CA), + ((STACK_SET_NAME, 1), (CALL_AS, 0)), +) + +STACK_SET_DRIFT_DETECTION_STATUS: StaticSchema = ( + 14, + n0, + _SSDDS, + 0, + (_COMPLETED, _FAILED, _PS_, _IP, _STOPPED), + ( + (-1, {_sV: _COMPLETED}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _PS_}), + (-1, {_sV: _IP}), + (-1, {_sV: _STOPPED}), + ), +) + +DRIFTED_STACK_INSTANCES_COUNT: StaticSchema = (7, n0, _DSIC, 0) + +STACK_SET_DRIFT_STATUS: StaticSchema = ( + 14, + n0, + _SSDS, + 0, + (_DRIFTED, _IS, _NC), + ((-1, {_sV: _DRIFTED}), (-1, {_sV: _IS}), (-1, {_sV: _NC})), +) + +FAILED_STACK_INSTANCES_COUNT: StaticSchema = (7, n0, _FSIC, 0) + +IN_PROGRESS_STACK_INSTANCES_COUNT: StaticSchema = (7, n0, _IPSIC, 0) + +IN_SYNC_STACK_INSTANCES_COUNT: StaticSchema = (7, n0, _ISSIC, 0) + +TOTAL_STACK_INSTANCES_COUNT: StaticSchema = (7, n0, _TSIC, 0) + +STACK_SET_DRIFT_DETECTION_DETAILS: StaticSchema = ( + 18, + n0, + _SSDDD, + 0, + (_DSr, _DDS, _LDCT, _TSIC, _DSIC, _ISSIC, _IPSIC, _FSIC), + ( + (STACK_SET_DRIFT_STATUS, 0), + (STACK_SET_DRIFT_DETECTION_STATUS, 0), + (TIMESTAMP, 0), + (TOTAL_STACK_INSTANCES_COUNT, 0), + (DRIFTED_STACK_INSTANCES_COUNT, 0), + (IN_SYNC_STACK_INSTANCES_COUNT, 0), + (IN_PROGRESS_STACK_INSTANCES_COUNT, 0), + (FAILED_STACK_INSTANCES_COUNT, 0), + ), +) + +STACK_SET_STATUS: StaticSchema = ( + 14, + n0, + _SSS, + 0, + (_ACTIVE, _DELETED), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DELETED})), +) + +STACK_SET: StaticSchema = ( + 18, + n0, + _SSt, + 0, + ( + _SSN, + _SSI, + _Des, + _S, + _TB, + _Para, + _Cap, + _Ta, + _SSARN, + _ARARN, + _ERN, + _SSDDD, + _AD, + _PMe, + _OUIr, + _ME, + _Regi, + ), + ( + (STACK_SET_NAME, 0), + (STACK_SET_ID, 0), + (DESCRIPTION, 0), + (STACK_SET_STATUS, 0), + (TEMPLATE_BODY, 0), + (PARAMETERS, 0), + (CAPABILITIES, 0), + (TAGS, 0), + (STACK_SET_ARN, 0), + (ROLE_ARN, 0), + (EXECUTION_ROLE_NAME, 0), + (STACK_SET_DRIFT_DETECTION_DETAILS, 0), + (AUTO_DEPLOYMENT, 0), + (PERMISSION_MODELS, 0), + (ORGANIZATIONAL_UNIT_ID_LIST, 0), + (MANAGED_EXECUTION, 0), + (REGION_LIST, 0), + ), +) + +DESCRIBE_STACK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSOe, + {_sm: None}, + (_SSt,), + ((STACK_SET, 0),), +) + +DESCRIBE_STACK_SET: StaticOperationSchema = ( + 23, + n0, + _DSSe, + 0, + DESCRIBE_STACK_SET_INPUT, + DESCRIBE_STACK_SET_OUTPUT, + (STACK_SET_NOT_FOUND_EXCEPTION,), +) + +DESCRIBE_STACK_SET_OPERATION_INPUT: StaticSchema = ( + 18, + n0, + _DSSOI, + {_s: None}, + (_SSN, _OI, _CA), + ((STACK_SET_NAME, 1), (CLIENT_REQUEST_TOKEN, 1), (CALL_AS, 0)), +) + +STACK_SET_OPERATION_ACTION: StaticSchema = ( + 14, + n0, + _SSOA, + 0, + (_CREATE, _UPDATE, _DELETE, _DD), + ( + (-1, {_sV: _CREATE}), + (-1, {_sV: _UPDATE}), + (-1, {_sV: _DELETE}), + (-1, {_sV: _DD}), + ), +) + +RETAIN_STACKS_NULLABLE: StaticSchema = (2, n0, _RSN, 0) + +STACK_SET_OPERATION_STATUS: StaticSchema = ( + 14, + n0, + _SSOS, + 0, + (_RUNNING, _SUCCEEDED, _FAILED, _STOPPING, _STOPPED, _QUEUED), + ( + (-1, {_sV: _RUNNING}), + (-1, {_sV: _SUCCEEDED}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _STOPPING}), + (-1, {_sV: _STOPPED}), + (-1, {_sV: _QUEUED}), + ), +) + +STACK_SET_OPERATION_STATUS_DETAILS: StaticSchema = ( + 18, + n0, + _SSOSD, + 0, + (_FSIC,), + ((FAILED_STACK_INSTANCES_COUNT, 0),), +) + +STACK_SET_OPERATION_STATUS_REASON: StaticSchema = (3, n0, _SSOSR, 0) + +STACK_SET_OPERATION: StaticSchema = ( + 18, + n0, + _SSO, + 0, + (_OI, _SSI, _Ac, _S, _OP, _RS, _ARARN, _ERN, _CTre, _ETnd, _DT, _SSDDD, _SR, _SDta), + ( + (CLIENT_REQUEST_TOKEN, 0), + (STACK_SET_ID, 0), + (STACK_SET_OPERATION_ACTION, 0), + (STACK_SET_OPERATION_STATUS, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + (RETAIN_STACKS_NULLABLE, 0), + (ROLE_ARN, 0), + (EXECUTION_ROLE_NAME, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (DEPLOYMENT_TARGETS, 0), + (STACK_SET_DRIFT_DETECTION_DETAILS, 0), + (STACK_SET_OPERATION_STATUS_REASON, 0), + (STACK_SET_OPERATION_STATUS_DETAILS, 0), + ), +) + +DESCRIBE_STACK_SET_OPERATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSOO, + {_sm: None}, + (_SSO,), + ((STACK_SET_OPERATION, 0),), +) + +DESCRIBE_STACK_SET_OPERATION: StaticOperationSchema = ( + 23, + n0, + _DSSOes, + 0, + DESCRIBE_STACK_SET_OPERATION_INPUT, + DESCRIBE_STACK_SET_OPERATION_OUTPUT, + (OPERATION_NOT_FOUND_EXCEPTION, STACK_SET_NOT_FOUND_EXCEPTION), +) + +PUBLIC_VERSION_NUMBER: StaticSchema = (3, n0, _PVN, 0) + +DESCRIBE_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _DTIes, + {_s: None}, + (_T, _TN, _Ar, _VI, _PI, _PVN), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_ARN, 0), + (TYPE_VERSION_ID, 0), + (PUBLISHER_ID, 0), + (PUBLIC_VERSION_NUMBER, 0), + ), +) + +CONFIGURATION_SCHEMA: StaticSchema = (3, n0, _CSo, 0) + +DEPRECATED_STATUS: StaticSchema = ( + 14, + n0, + _DSep, + 0, + (_LIVE, _DEPRECATED), + ((-1, {_sV: _LIVE}), (-1, {_sV: _DEPRECATED})), +) + +OPTIONAL_SECURE_URL: StaticSchema = (3, n0, _OSU, 0) + +IS_ACTIVATED: StaticSchema = (2, n0, _IA, 0) + +IS_DEFAULT_VERSION: StaticSchema = (2, n0, _IDV, 0) + +PROVISIONING_TYPE: StaticSchema = ( + 14, + n0, + _PT, + 0, + (_NP, _IMMUTABLE, _FM_), + ((-1, {_sV: _NP}), (-1, {_sV: _IMMUTABLE}), (-1, {_sV: _FM_})), +) + +SUPPORTED_MAJOR_VERSION: StaticSchema = (7, n0, _SMV, 0) + +SUPPORTED_MAJOR_VERSIONS: StaticSchema = ( + 16, + n0, + _SMVu, + 0, + (_m,), + ((SUPPORTED_MAJOR_VERSION, 0),), +) + +REQUIRED_ACTIVATED_TYPE: StaticSchema = ( + 18, + n0, + _RAT, + 0, + (_TNA, _OTN, _PI, _SMVu), + ((TYPE_NAME, 0), (TYPE_NAME, 0), (PUBLISHER_ID, 0), (SUPPORTED_MAJOR_VERSIONS, 0)), +) + +REQUIRED_ACTIVATED_TYPES: StaticSchema = ( + 16, + n0, + _RATe, + 0, + (_m,), + ((REQUIRED_ACTIVATED_TYPE, 0),), +) + +TYPE_SCHEMA: StaticSchema = (3, n0, _TS, 0) + +TYPE_TESTS_STATUS: StaticSchema = ( + 14, + n0, + _TTS, + 0, + (_PASSED, _FAILED, _IP, _NT_), + ((-1, {_sV: _PASSED}), (-1, {_sV: _FAILED}), (-1, {_sV: _IP}), (-1, {_sV: _NT_})), +) + +TYPE_TESTS_STATUS_DESCRIPTION: StaticSchema = (3, n0, _TTSD, 0) + +VISIBILITY: StaticSchema = ( + 14, + n0, + _Vi, + 0, + (_PUBLIC, _PRIVATE), + ((-1, {_sV: _PUBLIC}), (-1, {_sV: _PRIVATE})), +) + +DESCRIBE_TYPE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTOes, + {_sm: None}, + ( + _Ar, + _T, + _TN, + _DVI, + _IDV, + _TTS, + _TTSD, + _Des, + _Sch, + _PT, + _DSep, + _LC, + _RATe, + _ERA, + _Vi, + _SU, + _DU, + _LU, + _TCi, + _CSo, + _PI, + _OTN, + _OTA, + _PVN, + _LPV, + _IA, + _AUu, + ), + ( + (TYPE_ARN, 0), + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_VERSION_ID, 0), + (IS_DEFAULT_VERSION, 0), + (TYPE_TESTS_STATUS, 0), + (TYPE_TESTS_STATUS_DESCRIPTION, 0), + (DESCRIPTION, 0), + (TYPE_SCHEMA, 0), + (PROVISIONING_TYPE, 0), + (DEPRECATED_STATUS, 0), + (LOGGING_CONFIG, 0), + (REQUIRED_ACTIVATED_TYPES, 0), + (ROLE_ARN2, 0), + (VISIBILITY, 0), + (OPTIONAL_SECURE_URL, 0), + (OPTIONAL_SECURE_URL, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (CONFIGURATION_SCHEMA, 0), + (PUBLISHER_ID, 0), + (TYPE_NAME, 0), + (TYPE_ARN, 0), + (PUBLIC_VERSION_NUMBER, 0), + (PUBLIC_VERSION_NUMBER, 0), + (IS_ACTIVATED, 0), + (AUTO_UPDATE, 0), + ), +) + +DESCRIBE_TYPE: StaticOperationSchema = ( + 23, + n0, + _DTes, + 0, + DESCRIBE_TYPE_INPUT, + DESCRIBE_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +REGISTRATION_TOKEN: StaticSchema = (3, n0, _RTegi, 0) + +DESCRIBE_TYPE_REGISTRATION_INPUT: StaticSchema = ( + 18, + n0, + _DTRI, + {_s: None}, + (_RTegi,), + ((REGISTRATION_TOKEN, 1),), +) + +REGISTRATION_STATUS: StaticSchema = ( + 14, + n0, + _RSeg, + 0, + (_COMPLETE, _IP, _FAILED), + ((-1, {_sV: _COMPLETE}), (-1, {_sV: _IP}), (-1, {_sV: _FAILED})), +) + +DESCRIBE_TYPE_REGISTRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DTRO, + {_sm: None}, + (_PSr, _Des, _TA, _TVA), + ((REGISTRATION_STATUS, 0), (DESCRIPTION, 0), (TYPE_ARN, 0), (TYPE_ARN, 0)), +) + +DESCRIBE_TYPE_REGISTRATION: StaticOperationSchema = ( + 23, + n0, + _DTR, + 0, + DESCRIBE_TYPE_REGISTRATION_INPUT, + DESCRIBE_TYPE_REGISTRATION_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +LOGICAL_RESOURCE_IDS: StaticSchema = ( + 16, + n0, + _LRIo, + 0, + (_m,), + ((LOGICAL_RESOURCE_ID, 0),), +) + +DETECT_STACK_DRIFT_INPUT: StaticSchema = ( + 18, + n0, + _DSDI, + {_s: None}, + (_SN, _LRIo), + ((STACK_NAME_OR_ID, 1), (LOGICAL_RESOURCE_IDS, 0)), +) + +DETECT_STACK_DRIFT_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDO, + {_sm: None}, + (_SDDI,), + ((STACK_DRIFT_DETECTION_ID, 1),), +) + +DETECT_STACK_DRIFT: StaticOperationSchema = ( + 23, + n0, + _DSD, + 0, + DETECT_STACK_DRIFT_INPUT, + DETECT_STACK_DRIFT_OUTPUT, + (), +) + +DETECT_STACK_RESOURCE_DRIFT_INPUT: StaticSchema = ( + 18, + n0, + _DSRDIe, + {_s: None}, + (_SN, _LRI), + ((STACK_NAME_OR_ID, 1), (LOGICAL_RESOURCE_ID, 1)), +) + +DETECT_STACK_RESOURCE_DRIFT_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRDOe, + {_sm: None}, + (_SRDt,), + ((STACK_RESOURCE_DRIFT, 1),), +) + +DETECT_STACK_RESOURCE_DRIFT: StaticOperationSchema = ( + 23, + n0, + _DSRDe, + 0, + DETECT_STACK_RESOURCE_DRIFT_INPUT, + DETECT_STACK_RESOURCE_DRIFT_OUTPUT, + (), +) + +STACK_SET_NAME_OR_ID: StaticSchema = (3, n0, _SSNOI, 0) + +DETECT_STACK_SET_DRIFT_INPUT: StaticSchema = ( + 18, + n0, + _DSSDI, + {_s: None}, + (_SSN, _OP, _OI, _CA), + ( + (STACK_SET_NAME_OR_ID, 1), + (STACK_SET_OPERATION_PREFERENCES, 0), + (CLIENT_REQUEST_TOKEN, 2), + (CALL_AS, 0), + ), +) + +DETECT_STACK_SET_DRIFT_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSDO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +DETECT_STACK_SET_DRIFT: StaticOperationSchema = ( + 23, + n0, + _DSSD, + 0, + DETECT_STACK_SET_DRIFT_INPUT, + DETECT_STACK_SET_DRIFT_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + ), +) + +ESTIMATE_TEMPLATE_COST_INPUT: StaticSchema = ( + 18, + n0, + _ETCI, + {_s: None}, + (_TB, _TURL, _Para), + ((TEMPLATE_BODY, 0), (TEMPLATE_URL, 0), (PARAMETERS, 0)), +) + +URL: StaticSchema = (3, n0, _U, 0) + +ESTIMATE_TEMPLATE_COST_OUTPUT: StaticSchema = ( + 18, + n0, + _ETCO, + {_sm: None}, + (_U,), + ((URL, 0),), +) + +ESTIMATE_TEMPLATE_COST: StaticOperationSchema = ( + 23, + n0, + _ETC, + 0, + ESTIMATE_TEMPLATE_COST_INPUT, + ESTIMATE_TEMPLATE_COST_OUTPUT, + (), +) + +EXECUTE_CHANGE_SET_INPUT: StaticSchema = ( + 18, + n0, + _ECSI, + {_s: None}, + (_CSN, _SN, _CRT, _DR, _REOC), + ( + (CHANGE_SET_NAME_OR_ID, 1), + (STACK_NAME_OR_ID, 0), + (CLIENT_REQUEST_TOKEN, 0), + (DISABLE_ROLLBACK, 0), + (RETAIN_EXCEPT_ON_CREATE, 0), + ), +) + +EXECUTE_CHANGE_SET_OUTPUT: StaticSchema = (18, n0, _ECSO, {_sm: None}) + +EXECUTE_CHANGE_SET: StaticOperationSchema = ( + 23, + n0, + _ECS, + 0, + EXECUTE_CHANGE_SET_INPUT, + EXECUTE_CHANGE_SET_OUTPUT, + ( + CHANGE_SET_NOT_FOUND_EXCEPTION, + INSUFFICIENT_CAPABILITIES_EXCEPTION, + INVALID_CHANGE_SET_STATUS_EXCEPTION, + TOKEN_ALREADY_EXISTS_EXCEPTION, + ), +) + +EXECUTE_STACK_REFACTOR_INPUT: StaticSchema = ( + 18, + n0, + _ESRI, + {_s: None}, + (_SRI,), + ((STACK_REFACTOR_ID, 1),), +) + +EXECUTE_STACK_REFACTOR_OUTPUT: StaticSchema = (18, n0, _ESRO, {_sSI: _sU, _sm: None}) + +EXECUTE_STACK_REFACTOR: StaticOperationSchema = ( + 23, + n0, + _ESRx, + 0, + EXECUTE_STACK_REFACTOR_INPUT, + EXECUTE_STACK_REFACTOR_OUTPUT, + (), +) + +TEMPLATE_FORMAT: StaticSchema = ( + 14, + n0, + _TF, + 0, + (_JSON, _YAML), + ((-1, {_sV: _JSON}), (-1, {_sV: _YAML})), +) + +GET_GENERATED_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _GGTI, + {_s: None}, + (_Fo, _GTN), + ((TEMPLATE_FORMAT, 0), (GENERATED_TEMPLATE_NAME, 1)), +) + +GET_GENERATED_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GGTO, + {_sm: None}, + (_S, _TB), + ((GENERATED_TEMPLATE_STATUS, 0), (TEMPLATE_BODY, 0)), +) + +GET_GENERATED_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _GGT, + 0, + GET_GENERATED_TEMPLATE_INPUT, + GET_GENERATED_TEMPLATE_OUTPUT, + (GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION,), +) + +GET_HOOK_RESULT_INPUT: StaticSchema = ( + 18, + n0, + _GHRI, + {_s: None}, + (_HRI,), + ((HOOK_INVOCATION_ID, 0),), +) + +HOOK_TARGET_ACTION: StaticSchema = ( + 14, + n0, + _HTA, + 0, + (_CREATE, _UPDATE, _DELETE, _IMPORT), + ( + (-1, {_sV: _CREATE}), + (-1, {_sV: _UPDATE}), + (-1, {_sV: _DELETE}), + (-1, {_sV: _IMPORT}), + ), +) + +HOOK_TARGET_ID: StaticSchema = (3, n0, _HTI, 0) + +HOOK_TARGET: StaticSchema = ( + 18, + n0, + _HTo, + 0, + (_TT, _TTN, _TI, _Ac), + ( + (HOOK_TARGET_TYPE, 1), + (HOOK_TARGET_TYPE_NAME, 1), + (HOOK_TARGET_ID, 1), + (HOOK_TARGET_ACTION, 1), + ), +) + +HOOK_TYPE_ARN: StaticSchema = (3, n0, _HTAo, 0) + +GET_HOOK_RESULT_OUTPUT: StaticSchema = ( + 18, + n0, + _GHRO, + {_sm: None}, + (_HRI, _IPn, _FM, _TN, _OTN, _TVI, _TCVI, _TA, _S, _HSR, _IAn, _Tar, _Ann), + ( + (HOOK_INVOCATION_ID, 0), + (HOOK_INVOCATION_POINT, 0), + (HOOK_FAILURE_MODE, 0), + (HOOK_TYPE_NAME, 0), + (HOOK_TYPE_NAME, 0), + (HOOK_TYPE_VERSION_ID, 0), + (HOOK_TYPE_CONFIGURATION_VERSION_ID, 0), + (HOOK_TYPE_ARN, 0), + (HOOK_STATUS, 0), + (HOOK_STATUS_REASON, 0), + (TIMESTAMP, 0), + (HOOK_TARGET, 0), + (ANNOTATION_LIST, 0), + ), +) + +HOOK_RESULT_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _HRNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "HookResultNotFound", "httpResponseCode": 404}), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +GET_HOOK_RESULT: StaticOperationSchema = ( + 23, + n0, + _GHR, + 0, + GET_HOOK_RESULT_INPUT, + GET_HOOK_RESULT_OUTPUT, + (HOOK_RESULT_NOT_FOUND_EXCEPTION,), +) + +GET_STACK_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GSPI, + {_s: None}, + (_SN,), + ((STACK_NAME, 1),), +) + +GET_STACK_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GSPO, + {_sm: None}, + (_SPB,), + ((STACK_POLICY_BODY, 0),), +) + +GET_STACK_POLICY: StaticOperationSchema = ( + 23, + n0, + _GSP, + 0, + GET_STACK_POLICY_INPUT, + GET_STACK_POLICY_OUTPUT, + (), +) + +TEMPLATE_STAGE: StaticSchema = ( + 14, + n0, + _TSe, + 0, + (_Or, _Pro), + ((-1, {_sV: _Or}), (-1, {_sV: _Pro})), +) + +GET_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _GTIe, + {_s: None}, + (_SN, _CSN, _TSe), + ((STACK_NAME, 0), (CHANGE_SET_NAME_OR_ID, 0), (TEMPLATE_STAGE, 0)), +) + +STAGE_LIST: StaticSchema = (16, n0, _SLt, 0, (_m,), ((TEMPLATE_STAGE, 0),)) + +GET_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GTO, + {_sm: None}, + (_TB, _SA), + ((TEMPLATE_BODY, 0), (STAGE_LIST, 0)), +) + +GET_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _GT, + 0, + GET_TEMPLATE_INPUT, + GET_TEMPLATE_OUTPUT, + (CHANGE_SET_NOT_FOUND_EXCEPTION,), +) + +TREAT_UNRECOGNIZED_RESOURCE_TYPES_AS_WARNINGS: StaticSchema = (2, n0, _TURTAW, 0) + +TEMPLATE_SUMMARY_CONFIG: StaticSchema = ( + 18, + n0, + _TSC, + 0, + (_TURTAW,), + ((TREAT_UNRECOGNIZED_RESOURCE_TYPES_AS_WARNINGS, 0),), +) + +GET_TEMPLATE_SUMMARY_INPUT: StaticSchema = ( + 18, + n0, + _GTSI, + {_s: None}, + (_TB, _TURL, _SN, _SSN, _CA, _TSC), + ( + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (STACK_NAME_OR_ID, 0), + (STACK_SET_NAME_OR_ID, 0), + (CALL_AS, 0), + (TEMPLATE_SUMMARY_CONFIG, 0), + ), +) + +TRANSFORM_NAME: StaticSchema = (3, n0, _TNr, 0) + +TRANSFORMS_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TRANSFORM_NAME, 0),)) + +NO_ECHO: StaticSchema = (2, n0, _NEo, 0) + +PARAMETER_CONSTRAINTS: StaticSchema = ( + 18, + n0, + _PCa, + 0, + (_AVll,), + ((ALLOWED_VALUES, 0),), +) + +PARAMETER_TYPE: StaticSchema = (3, n0, _PTa, 0) + +PARAMETER_DECLARATION: StaticSchema = ( + 18, + n0, + _PDa, + 0, + (_PK, _DVe, _PTa, _NEo, _Des, _PCa), + ( + (PARAMETER_KEY, 0), + (PARAMETER_VALUE, 0), + (PARAMETER_TYPE, 0), + (NO_ECHO, 0), + (DESCRIPTION, 0), + (PARAMETER_CONSTRAINTS, 0), + ), +) + +PARAMETER_DECLARATIONS: StaticSchema = ( + 16, + n0, + _PDar, + 0, + (_m,), + ((PARAMETER_DECLARATION, 0),), +) + +RESOURCE_IDENTIFIERS: StaticSchema = ( + 16, + n0, + _RIe, + 0, + (_m,), + ((RESOURCE_IDENTIFIER_PROPERTY_KEY, 0),), +) + +RESOURCE_IDENTIFIER_SUMMARY: StaticSchema = ( + 18, + n0, + _RIS, + 0, + (_RT, _LRIo, _RIe), + ((RESOURCE_TYPE, 0), (LOGICAL_RESOURCE_IDS, 0), (RESOURCE_IDENTIFIERS, 0)), +) + +RESOURCE_IDENTIFIER_SUMMARIES: StaticSchema = ( + 16, + n0, + _RISe, + 0, + (_m,), + ((RESOURCE_IDENTIFIER_SUMMARY, 0),), +) + +VERSION: StaticSchema = (3, n0, _Ve, 0) + +WARNINGS: StaticSchema = (18, n0, _W, 0, (_URT,), ((RESOURCE_TYPES, 0),)) + +GET_TEMPLATE_SUMMARY_OUTPUT: StaticSchema = ( + 18, + n0, + _GTSO, + {_sm: None}, + (_Para, _Des, _Cap, _CR, _RTe, _Ve, _Me, _DTec, _RISe, _W), + ( + (PARAMETER_DECLARATIONS, 0), + (DESCRIPTION, 0), + (CAPABILITIES, 0), + (CAPABILITIES_REASON, 0), + (RESOURCE_TYPES, 0), + (VERSION, 0), + (METADATA, 0), + (TRANSFORMS_LIST, 0), + (RESOURCE_IDENTIFIER_SUMMARIES, 0), + (WARNINGS, 0), + ), +) + +GET_TEMPLATE_SUMMARY: StaticOperationSchema = ( + 23, + n0, + _GTSe, + 0, + GET_TEMPLATE_SUMMARY_INPUT, + GET_TEMPLATE_SUMMARY_OUTPUT, + (STACK_SET_NOT_FOUND_EXCEPTION,), +) + +STACK_ID_LIST: StaticSchema = (16, n0, _SIL, 0, (_m,), ((STACK_ID, 0),)) + +STACK_IDS_URL: StaticSchema = (3, n0, _SIU, 0) + +IMPORT_STACKS_TO_STACK_SET_INPUT: StaticSchema = ( + 18, + n0, + _ISTSSI, + {_s: None}, + (_SSN, _SIta, _SIU, _OUIr, _OP, _OI, _CA), + ( + (STACK_SET_NAME_OR_ID, 1), + (STACK_ID_LIST, 0), + (STACK_IDS_URL, 0), + (ORGANIZATIONAL_UNIT_ID_LIST, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + (CLIENT_REQUEST_TOKEN, 2), + (CALL_AS, 0), + ), +) + +IMPORT_STACKS_TO_STACK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _ISTSSO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +STACK_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SNFE, + { + _smi: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "StackNotFoundException", "httpResponseCode": 404} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +IMPORT_STACKS_TO_STACK_SET: StaticOperationSchema = ( + 23, + n0, + _ISTSS, + 0, + IMPORT_STACKS_TO_STACK_SET_INPUT, + IMPORT_STACKS_TO_STACK_SET_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + OPERATION_ID_ALREADY_EXISTS_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_NOT_FOUND_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + STALE_REQUEST_EXCEPTION, + ), +) + +LIST_CHANGE_SETS_INPUT: StaticSchema = ( + 18, + n0, + _LCSI, + {_s: None}, + (_SN, _NT), + ((STACK_NAME_OR_ID, 1), (NEXT_TOKEN, 0)), +) + +LIST_CHANGE_SETS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCSO, + {_sm: None}, + (_Su, _NT), + ((CHANGE_SET_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_CHANGE_SETS: StaticOperationSchema = ( + 23, + n0, + _LCS, + 0, + LIST_CHANGE_SETS_INPUT, + LIST_CHANGE_SETS_OUTPUT, + (), +) + +LIST_EXPORTS_INPUT: StaticSchema = ( + 18, + n0, + _LEI, + {_s: None}, + (_NT,), + ((NEXT_TOKEN, 0),), +) + +EXPORT_VALUE: StaticSchema = (3, n0, _EVx, 0) + +EXPORT: StaticSchema = ( + 18, + n0, + _Ex, + 0, + (_ESI, _N, _V), + ((STACK_ID, 0), (EXPORT_NAME, 0), (EXPORT_VALUE, 0)), +) + +EXPORTS: StaticSchema = (16, n0, _Exp, 0, (_m,), ((EXPORT, 0),)) + +LIST_EXPORTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LEO, + {_sm: None}, + (_Exp, _NT), + ((EXPORTS, 0), (NEXT_TOKEN, 0)), +) + +LIST_EXPORTS: StaticOperationSchema = ( + 23, + n0, + _LE, + 0, + LIST_EXPORTS_INPUT, + LIST_EXPORTS_OUTPUT, + (), +) + +MAX_RESULTS: StaticSchema = (7, n0, _MR, 0) + +LIST_GENERATED_TEMPLATES_INPUT: StaticSchema = ( + 18, + n0, + _LGTI, + {_s: None}, + (_NT, _MR), + ((NEXT_TOKEN, 0), (MAX_RESULTS, 0)), +) + +NUMBER_OF_RESOURCES: StaticSchema = (7, n0, _NOR, 0) + +TEMPLATE_SUMMARY: StaticSchema = ( + 18, + n0, + _TSem, + 0, + (_GTI, _GTN, _S, _SR, _CTr, _LUT, _NOR), + ( + (GENERATED_TEMPLATE_ID, 0), + (GENERATED_TEMPLATE_NAME, 0), + (GENERATED_TEMPLATE_STATUS, 0), + (TEMPLATE_STATUS_REASON, 0), + (CREATION_TIME, 0), + (LAST_UPDATED_TIME, 0), + (NUMBER_OF_RESOURCES, 0), + ), +) + +TEMPLATE_SUMMARIES: StaticSchema = (16, n0, _TSemp, 0, (_m,), ((TEMPLATE_SUMMARY, 0),)) + +LIST_GENERATED_TEMPLATES_OUTPUT: StaticSchema = ( + 18, + n0, + _LGTO, + {_sm: None}, + (_Su, _NT), + ((TEMPLATE_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_GENERATED_TEMPLATES: StaticOperationSchema = ( + 23, + n0, + _LGT, + 0, + LIST_GENERATED_TEMPLATES_INPUT, + LIST_GENERATED_TEMPLATES_OUTPUT, + (), +) + +HOOK_RESULT_ID: StaticSchema = (3, n0, _HRI, 0) + +LIST_HOOK_RESULTS_TARGET_TYPE: StaticSchema = ( + 14, + n0, + _LHRTT, + 0, + (_CS__, _STACK, _RESOURCE, _CC___), + ( + (-1, {_sV: _CS__}), + (-1, {_sV: _STACK}), + (-1, {_sV: _RESOURCE}), + (-1, {_sV: _CC___}), + ), +) + +LIST_HOOK_RESULTS_INPUT: StaticSchema = ( + 18, + n0, + _LHRI, + {_s: None}, + (_TT, _TI, _TA, _S, _NT), + ( + (LIST_HOOK_RESULTS_TARGET_TYPE, 0), + (HOOK_RESULT_ID, 0), + (HOOK_TYPE_ARN, 0), + (HOOK_STATUS, 0), + (NEXT_TOKEN, 0), + ), +) + +HOOK_RESULT_SUMMARY: StaticSchema = ( + 18, + n0, + _HRS, + 0, + (_HRI, _IPn, _FM, _TN, _TVI, _TCVI, _S, _HSR, _IAn, _TT, _TI, _TA, _HET), + ( + (HOOK_INVOCATION_ID, 0), + (HOOK_INVOCATION_POINT, 0), + (HOOK_FAILURE_MODE, 0), + (HOOK_TYPE_NAME, 0), + (HOOK_TYPE_VERSION_ID, 0), + (HOOK_TYPE_CONFIGURATION_VERSION_ID, 0), + (HOOK_STATUS, 0), + (HOOK_STATUS_REASON, 0), + (TIMESTAMP, 0), + (LIST_HOOK_RESULTS_TARGET_TYPE, 0), + (HOOK_RESULT_ID, 0), + (HOOK_TYPE_ARN, 0), + (HOOK_RESULT_ID, 0), + ), +) + +HOOK_RESULT_SUMMARIES: StaticSchema = ( + 16, + n0, + _HRSo, + 0, + (_m,), + ((HOOK_RESULT_SUMMARY, 0),), +) + +LIST_HOOK_RESULTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LHRO, + {_sm: None}, + (_TT, _TI, _HR, _NT), + ( + (LIST_HOOK_RESULTS_TARGET_TYPE, 0), + (HOOK_RESULT_ID, 0), + (HOOK_RESULT_SUMMARIES, 0), + (NEXT_TOKEN, 0), + ), +) + +LIST_HOOK_RESULTS: StaticOperationSchema = ( + 23, + n0, + _LHR, + 0, + LIST_HOOK_RESULTS_INPUT, + LIST_HOOK_RESULTS_OUTPUT, + (HOOK_RESULT_NOT_FOUND_EXCEPTION,), +) + +LIST_IMPORTS_INPUT: StaticSchema = ( + 18, + n0, + _LII, + {_s: None}, + (_EN, _NT), + ((EXPORT_NAME, 1), (NEXT_TOKEN, 0)), +) + +IMPORTS: StaticSchema = (16, n0, _Im, 0, (_m,), ((STACK_NAME, 0),)) + +LIST_IMPORTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LIO, + {_sm: None}, + (_Im, _NT), + ((IMPORTS, 0), (NEXT_TOKEN, 0)), +) + +LIST_IMPORTS: StaticOperationSchema = ( + 23, + n0, + _LI, + 0, + LIST_IMPORTS_INPUT, + LIST_IMPORTS_OUTPUT, + (), +) + +JAZZ_RESOURCE_IDENTIFIER_PROPERTY_KEY: StaticSchema = (3, n0, _JRIPK, 0) + +JAZZ_RESOURCE_IDENTIFIER_PROPERTY_VALUE: StaticSchema = (3, n0, _JRIPV, 0) + +JAZZ_RESOURCE_IDENTIFIER_PROPERTIES: StaticSchema = ( + 17, + n0, + _JRIP, + 0, + (_k, _v), + ( + (JAZZ_RESOURCE_IDENTIFIER_PROPERTY_KEY, 0), + (JAZZ_RESOURCE_IDENTIFIER_PROPERTY_VALUE, 0), + ), +) + +SCANNED_RESOURCE_IDENTIFIER: StaticSchema = ( + 18, + n0, + _SRIc, + 0, + (_RT, _RI), + ((RESOURCE_TYPE, 1), (JAZZ_RESOURCE_IDENTIFIER_PROPERTIES, 1)), +) + +SCANNED_RESOURCE_IDENTIFIERS: StaticSchema = ( + 16, + n0, + _SRIca, + 0, + (_m,), + ((SCANNED_RESOURCE_IDENTIFIER, 0),), +) + +LIST_RESOURCE_SCAN_RELATED_RESOURCES_INPUT: StaticSchema = ( + 18, + n0, + _LRSRRI, + {_s: None}, + (_RSI, _Reso, _NT, _MR), + ( + (RESOURCE_SCAN_ID, 1), + (SCANNED_RESOURCE_IDENTIFIERS, 1), + (NEXT_TOKEN, 0), + (BOXED_MAX_RESULTS, 0), + ), +) + +MANAGED_BY_STACK: StaticSchema = (2, n0, _MBS, 0) + +SCANNED_RESOURCE: StaticSchema = ( + 18, + n0, + _SRc, + 0, + (_RT, _RI, _MBS), + ( + (RESOURCE_TYPE, 0), + (JAZZ_RESOURCE_IDENTIFIER_PROPERTIES, 0), + (MANAGED_BY_STACK, 0), + ), +) + +RELATED_RESOURCES: StaticSchema = (16, n0, _RRel, 0, (_m,), ((SCANNED_RESOURCE, 0),)) + +LIST_RESOURCE_SCAN_RELATED_RESOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _LRSRRO, + {_sm: None}, + (_RRel, _NT), + ((RELATED_RESOURCES, 0), (NEXT_TOKEN, 0)), +) + +RESOURCE_SCAN_IN_PROGRESS_EXCEPTION: StaticSchema = ( + 18, + n0, + _RSIPE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ResourceScanInProgress", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +LIST_RESOURCE_SCAN_RELATED_RESOURCES: StaticOperationSchema = ( + 23, + n0, + _LRSRR, + 0, + LIST_RESOURCE_SCAN_RELATED_RESOURCES_INPUT, + LIST_RESOURCE_SCAN_RELATED_RESOURCES_OUTPUT, + (RESOURCE_SCAN_IN_PROGRESS_EXCEPTION, RESOURCE_SCAN_NOT_FOUND_EXCEPTION), +) + +RESOURCE_SCANNER_MAX_RESULTS: StaticSchema = (7, n0, _RSMR, 0) + +RESOURCE_IDENTIFIER: StaticSchema = (3, n0, _RI, 0) + +RESOURCE_TYPE_PREFIX: StaticSchema = (3, n0, _RTP, 0) + +LIST_RESOURCE_SCAN_RESOURCES_INPUT: StaticSchema = ( + 18, + n0, + _LRSRI, + {_s: None}, + (_RSI, _RI, _RTP, _TK, _TV, _NT, _MR), + ( + (RESOURCE_SCAN_ID, 1), + (RESOURCE_IDENTIFIER, 0), + (RESOURCE_TYPE_PREFIX, 0), + (TAG_KEY, 0), + (TAG_VALUE, 0), + (NEXT_TOKEN, 0), + (RESOURCE_SCANNER_MAX_RESULTS, 0), + ), +) + +SCANNED_RESOURCES: StaticSchema = (16, n0, _SRca, 0, (_m,), ((SCANNED_RESOURCE, 0),)) + +LIST_RESOURCE_SCAN_RESOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _LRSRO, + {_sm: None}, + (_Reso, _NT), + ((SCANNED_RESOURCES, 0), (NEXT_TOKEN, 0)), +) + +LIST_RESOURCE_SCAN_RESOURCES: StaticOperationSchema = ( + 23, + n0, + _LRSR, + 0, + LIST_RESOURCE_SCAN_RESOURCES_INPUT, + LIST_RESOURCE_SCAN_RESOURCES_OUTPUT, + (RESOURCE_SCAN_IN_PROGRESS_EXCEPTION, RESOURCE_SCAN_NOT_FOUND_EXCEPTION), +) + +SCAN_TYPE: StaticSchema = ( + 14, + n0, + _STc, + 0, + (_FULL, _PARTIAL), + ((-1, {_sV: _FULL}), (-1, {_sV: _PARTIAL})), +) + +LIST_RESOURCE_SCANS_INPUT: StaticSchema = ( + 18, + n0, + _LRSI, + {_s: None}, + (_NT, _MR, _STF), + ((NEXT_TOKEN, 0), (RESOURCE_SCANNER_MAX_RESULTS, 0), (SCAN_TYPE, 0)), +) + +RESOURCE_SCAN_SUMMARY: StaticSchema = ( + 18, + n0, + _RSSe, + 0, + (_RSI, _S, _SR, _ST, _ETn, _PC, _STc), + ( + (RESOURCE_SCAN_ID, 0), + (RESOURCE_SCAN_STATUS, 0), + (RESOURCE_SCAN_STATUS_REASON, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (PERCENTAGE_COMPLETED, 0), + (SCAN_TYPE, 0), + ), +) + +RESOURCE_SCAN_SUMMARIES: StaticSchema = ( + 16, + n0, + _RSSes, + 0, + (_m,), + ((RESOURCE_SCAN_SUMMARY, 0),), +) + +LIST_RESOURCE_SCANS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRSO, + {_sm: None}, + (_RSSes, _NT), + ((RESOURCE_SCAN_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_RESOURCE_SCANS: StaticOperationSchema = ( + 23, + n0, + _LRS, + 0, + LIST_RESOURCE_SCANS_INPUT, + LIST_RESOURCE_SCANS_OUTPUT, + (), +) + +LIST_STACK_INSTANCE_RESOURCE_DRIFTS_INPUT: StaticSchema = ( + 18, + n0, + _LSIRDI, + {_s: None}, + (_SSN, _NT, _MR, _SIRDS, _SIA, _SIR, _OI, _CA), + ( + (STACK_SET_NAME_OR_ID, 1), + (NEXT_TOKEN, 0), + (MAX_RESULTS, 0), + (STACK_RESOURCE_DRIFT_STATUS_FILTERS, 0), + (ACCOUNT, 1), + (REGION, 1), + (CLIENT_REQUEST_TOKEN, 1), + (CALL_AS, 0), + ), +) + +STACK_INSTANCE_RESOURCE_DRIFTS_SUMMARY: StaticSchema = ( + 18, + n0, + _SIRDSt, + 0, + (_SI, _LRI, _PRI, _PRIC, _RT, _PDro, _SRDS, _Ti), + ( + (STACK_ID, 1), + (LOGICAL_RESOURCE_ID, 1), + (PHYSICAL_RESOURCE_ID, 0), + (PHYSICAL_RESOURCE_ID_CONTEXT, 0), + (RESOURCE_TYPE, 1), + (PROPERTY_DIFFERENCES, 0), + (STACK_RESOURCE_DRIFT_STATUS, 1), + (TIMESTAMP, 1), + ), +) + +STACK_INSTANCE_RESOURCE_DRIFTS_SUMMARIES: StaticSchema = ( + 16, + n0, + _SIRDSta, + 0, + (_m,), + ((STACK_INSTANCE_RESOURCE_DRIFTS_SUMMARY, 0),), +) + +LIST_STACK_INSTANCE_RESOURCE_DRIFTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSIRDO, + {_sm: None}, + (_Su, _NT), + ((STACK_INSTANCE_RESOURCE_DRIFTS_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_INSTANCE_RESOURCE_DRIFTS: StaticOperationSchema = ( + 23, + n0, + _LSIRD, + 0, + LIST_STACK_INSTANCE_RESOURCE_DRIFTS_INPUT, + LIST_STACK_INSTANCE_RESOURCE_DRIFTS_OUTPUT, + ( + OPERATION_NOT_FOUND_EXCEPTION, + STACK_INSTANCE_NOT_FOUND_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + ), +) + +STACK_INSTANCE_FILTER_NAME: StaticSchema = ( + 14, + n0, + _SIFN, + 0, + (_DS___, _LOI_, _DS____), + ((-1, {_sV: _DS___}), (-1, {_sV: _LOI_}), (-1, {_sV: _DS____})), +) + +STACK_INSTANCE_FILTER_VALUES: StaticSchema = (3, n0, _SIFV, 0) + +STACK_INSTANCE_FILTER: StaticSchema = ( + 18, + n0, + _SIF, + 0, + (_N, _Va), + ((STACK_INSTANCE_FILTER_NAME, 0), (STACK_INSTANCE_FILTER_VALUES, 0)), +) + +STACK_INSTANCE_FILTERS: StaticSchema = ( + 16, + n0, + _SIFt, + 0, + (_m,), + ((STACK_INSTANCE_FILTER, 0),), +) + +LIST_STACK_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _LSII, + {_s: None}, + (_SSN, _NT, _MR, _Fi, _SIA, _SIR, _CA), + ( + (STACK_SET_NAME, 1), + (NEXT_TOKEN, 0), + (MAX_RESULTS, 0), + (STACK_INSTANCE_FILTERS, 0), + (ACCOUNT, 0), + (REGION, 0), + (CALL_AS, 0), + ), +) + +STACK_INSTANCE_SUMMARY: StaticSchema = ( + 18, + n0, + _SISt, + 0, + (_SSI, _Reg, _A, _SI, _S, _SR, _SIS, _OUI, _DSr, _LDCT, _LOI), + ( + (STACK_SET_ID, 0), + (REGION, 0), + (ACCOUNT, 0), + (STACK_ID, 0), + (STACK_INSTANCE_STATUS, 0), + (REASON, 0), + (STACK_INSTANCE_COMPREHENSIVE_STATUS, 0), + (ORGANIZATIONAL_UNIT_ID, 0), + (STACK_DRIFT_STATUS, 0), + (TIMESTAMP, 0), + (CLIENT_REQUEST_TOKEN, 0), + ), +) + +STACK_INSTANCE_SUMMARIES: StaticSchema = ( + 16, + n0, + _SISta, + 0, + (_m,), + ((STACK_INSTANCE_SUMMARY, 0),), +) + +LIST_STACK_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _LSIO, + {_sm: None}, + (_Su, _NT), + ((STACK_INSTANCE_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _LSI, + 0, + LIST_STACK_INSTANCES_INPUT, + LIST_STACK_INSTANCES_OUTPUT, + (STACK_SET_NOT_FOUND_EXCEPTION,), +) + +LIST_STACK_REFACTOR_ACTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LSRAI, + {_s: None}, + (_SRI, _NT, _MR), + ((STACK_REFACTOR_ID, 1), (NEXT_TOKEN, 0), (MAX_RESULTS, 0)), +) + +STACK_REFACTOR_ACTION_TYPE: StaticSchema = ( + 14, + n0, + _SRAT, + 0, + (_MOVE, _CREATE), + ((-1, {_sV: _MOVE}), (-1, {_sV: _CREATE})), +) + +STACK_REFACTOR_DETECTION: StaticSchema = ( + 14, + n0, + _SRDtac, + 0, + (_AUTO, _MANUAL), + ((-1, {_sV: _AUTO}), (-1, {_sV: _MANUAL})), +) + +DETECTION_REASON: StaticSchema = (3, n0, _DRe, 0) + +STACK_REFACTOR_ACTION_ENTITY: StaticSchema = ( + 14, + n0, + _SRAE, + 0, + (_RESOURCE, _STACK), + ((-1, {_sV: _RESOURCE}), (-1, {_sV: _STACK})), +) + +STACK_REFACTOR_RESOURCE_IDENTIFIER: StaticSchema = (3, n0, _SRRI, 0) + +STACK_REFACTOR_TAG_RESOURCES: StaticSchema = (16, n0, _SRTR, 0, (_m,), ((TAG, 0),)) + +STACK_REFACTOR_UNTAG_RESOURCES: StaticSchema = ( + 16, + n0, + _SRUR, + 0, + (_m,), + ((TAG_KEY, 0),), +) + +STACK_REFACTOR_ACTION: StaticSchema = ( + 18, + n0, + _SRA, + 0, + (_Ac, _En, _PRI, _RI, _Des, _Dete, _DRe, _TR, _UR, _RMe), + ( + (STACK_REFACTOR_ACTION_TYPE, 0), + (STACK_REFACTOR_ACTION_ENTITY, 0), + (PHYSICAL_RESOURCE_ID, 0), + (STACK_REFACTOR_RESOURCE_IDENTIFIER, 0), + (DESCRIPTION, 0), + (STACK_REFACTOR_DETECTION, 0), + (DETECTION_REASON, 0), + (STACK_REFACTOR_TAG_RESOURCES, 0), + (STACK_REFACTOR_UNTAG_RESOURCES, 0), + (RESOURCE_MAPPING, 0), + ), +) + +STACK_REFACTOR_ACTIONS: StaticSchema = ( + 16, + n0, + _SRAt, + 0, + (_m,), + ((STACK_REFACTOR_ACTION, 0),), +) + +LIST_STACK_REFACTOR_ACTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSRAO, + {_sm: None}, + (_SRAt, _NT), + ((STACK_REFACTOR_ACTIONS, 1), (NEXT_TOKEN, 0)), +) + +LIST_STACK_REFACTOR_ACTIONS: StaticOperationSchema = ( + 23, + n0, + _LSRA, + 0, + LIST_STACK_REFACTOR_ACTIONS_INPUT, + LIST_STACK_REFACTOR_ACTIONS_OUTPUT, + (), +) + +STACK_REFACTOR_EXECUTION_STATUS_FILTER: StaticSchema = ( + 16, + n0, + _SRESF, + 0, + (_m,), + ((STACK_REFACTOR_EXECUTION_STATUS, 0),), +) + +LIST_STACK_REFACTORS_INPUT: StaticSchema = ( + 18, + n0, + _LSRI, + {_s: None}, + (_ESF, _NT, _MR), + ((STACK_REFACTOR_EXECUTION_STATUS_FILTER, 0), (NEXT_TOKEN, 0), (MAX_RESULTS, 0)), +) + +STACK_REFACTOR_SUMMARY: StaticSchema = ( + 18, + n0, + _SRSt, + 0, + (_SRI, _Des, _ES, _ESR, _S, _SR), + ( + (STACK_REFACTOR_ID, 0), + (DESCRIPTION, 0), + (STACK_REFACTOR_EXECUTION_STATUS, 0), + (EXECUTION_STATUS_REASON, 0), + (STACK_REFACTOR_STATUS, 0), + (STACK_REFACTOR_STATUS_REASON, 0), + ), +) + +STACK_REFACTOR_SUMMARIES: StaticSchema = ( + 16, + n0, + _SRSta, + 0, + (_m,), + ((STACK_REFACTOR_SUMMARY, 0),), +) + +LIST_STACK_REFACTORS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSRO, + {_sm: None}, + (_SRSta, _NT), + ((STACK_REFACTOR_SUMMARIES, 1), (NEXT_TOKEN, 0)), +) + +LIST_STACK_REFACTORS: StaticOperationSchema = ( + 23, + n0, + _LSR, + 0, + LIST_STACK_REFACTORS_INPUT, + LIST_STACK_REFACTORS_OUTPUT, + (), +) + +LIST_STACK_RESOURCES_INPUT: StaticSchema = ( + 18, + n0, + _LSRIi, + {_s: None}, + (_SN, _NT), + ((STACK_NAME, 1), (NEXT_TOKEN, 0)), +) + +STACK_RESOURCE_DRIFT_INFORMATION_SUMMARY: StaticSchema = ( + 18, + n0, + _SRDIS, + 0, + (_SRDS, _LCT), + ((STACK_RESOURCE_DRIFT_STATUS, 1), (TIMESTAMP, 0)), +) + +STACK_RESOURCE_SUMMARY: StaticSchema = ( + 18, + n0, + _SRStac, + 0, + (_LRI, _PRI, _RT, _LUTa, _RSe, _RSR, _DI, _MI), + ( + (LOGICAL_RESOURCE_ID, 1), + (PHYSICAL_RESOURCE_ID, 0), + (RESOURCE_TYPE, 1), + (TIMESTAMP, 1), + (RESOURCE_STATUS, 1), + (RESOURCE_STATUS_REASON, 0), + (STACK_RESOURCE_DRIFT_INFORMATION_SUMMARY, 0), + (MODULE_INFO, 0), + ), +) + +STACK_RESOURCE_SUMMARIES: StaticSchema = ( + 16, + n0, + _SRStack, + 0, + (_m,), + ((STACK_RESOURCE_SUMMARY, 0),), +) + +LIST_STACK_RESOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _LSROi, + {_sm: None}, + (_SRStack, _NT), + ((STACK_RESOURCE_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_RESOURCES: StaticOperationSchema = ( + 23, + n0, + _LSRi, + 0, + LIST_STACK_RESOURCES_INPUT, + LIST_STACK_RESOURCES_OUTPUT, + (), +) + +STACK_STATUS_FILTER: StaticSchema = (16, n0, _SSF, 0, (_m,), ((STACK_STATUS, 0),)) + +LIST_STACKS_INPUT: StaticSchema = ( + 18, + n0, + _LSIi, + {_s: None}, + (_NT, _SSF), + ((NEXT_TOKEN, 0), (STACK_STATUS_FILTER, 0)), +) + +STACK_DRIFT_INFORMATION_SUMMARY: StaticSchema = ( + 18, + n0, + _SDIS, + 0, + (_SDS, _LCT), + ((STACK_DRIFT_STATUS, 1), (TIMESTAMP, 0)), +) + +TEMPLATE_DESCRIPTION: StaticSchema = (3, n0, _TDe, 0) + +STACK_SUMMARY: StaticSchema = ( + 18, + n0, + _SSta, + 0, + (_SI, _SN, _TDe, _CTr, _LUT, _DTel, _SS, _SSR, _PIa, _RIo, _DI, _LO), + ( + (STACK_ID, 0), + (STACK_NAME, 1), + (TEMPLATE_DESCRIPTION, 0), + (CREATION_TIME, 1), + (LAST_UPDATED_TIME, 0), + (DELETION_TIME, 0), + (STACK_STATUS, 1), + (STACK_STATUS_REASON, 0), + (STACK_ID, 0), + (STACK_ID, 0), + (STACK_DRIFT_INFORMATION_SUMMARY, 0), + (LAST_OPERATIONS, 0), + ), +) + +STACK_SUMMARIES: StaticSchema = (16, n0, _SStac, 0, (_m,), ((STACK_SUMMARY, 0),)) + +LIST_STACKS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSO, + {_sm: None}, + (_SStac, _NT), + ((STACK_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACKS: StaticOperationSchema = ( + 23, + n0, + _LS, + 0, + LIST_STACKS_INPUT, + LIST_STACKS_OUTPUT, + (), +) + +LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _LSSADTI, + {_s: None}, + (_SSN, _NT, _MR, _CA), + ((STACK_SET_NAME_OR_ID, 1), (NEXT_TOKEN, 0), (MAX_RESULTS, 0), (CALL_AS, 0)), +) + +STACK_SET_AUTO_DEPLOYMENT_TARGET_SUMMARY: StaticSchema = ( + 18, + n0, + _SSADTS, + 0, + (_OUI, _Regi), + ((ORGANIZATIONAL_UNIT_ID, 0), (REGION_LIST, 0)), +) + +STACK_SET_AUTO_DEPLOYMENT_TARGET_SUMMARIES: StaticSchema = ( + 16, + n0, + _SSADTSt, + 0, + (_m,), + ((STACK_SET_AUTO_DEPLOYMENT_TARGET_SUMMARY, 0),), +) + +LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSADTO, + {_sm: None}, + (_Su, _NT), + ((STACK_SET_AUTO_DEPLOYMENT_TARGET_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS: StaticOperationSchema = ( + 23, + n0, + _LSSADT, + 0, + LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_INPUT, + LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_OUTPUT, + (STACK_SET_NOT_FOUND_EXCEPTION,), +) + +OPERATION_RESULT_FILTER_NAME: StaticSchema = ( + 14, + n0, + _ORFN, + 0, + (_ORS,), + ((-1, {_sV: _ORS}),), +) + +OPERATION_RESULT_FILTER_VALUES: StaticSchema = (3, n0, _ORFV, 0) + +OPERATION_RESULT_FILTER: StaticSchema = ( + 18, + n0, + _ORF, + 0, + (_N, _Va), + ((OPERATION_RESULT_FILTER_NAME, 0), (OPERATION_RESULT_FILTER_VALUES, 0)), +) + +OPERATION_RESULT_FILTERS: StaticSchema = ( + 16, + n0, + _ORFp, + 0, + (_m,), + ((OPERATION_RESULT_FILTER, 0),), +) + +LIST_STACK_SET_OPERATION_RESULTS_INPUT: StaticSchema = ( + 18, + n0, + _LSSORI, + {_s: None}, + (_SSN, _OI, _NT, _MR, _CA, _Fi), + ( + (STACK_SET_NAME, 1), + (CLIENT_REQUEST_TOKEN, 1), + (NEXT_TOKEN, 0), + (MAX_RESULTS, 0), + (CALL_AS, 0), + (OPERATION_RESULT_FILTERS, 0), + ), +) + +STACK_SET_OPERATION_RESULT_STATUS: StaticSchema = ( + 14, + n0, + _SSORS, + 0, + (_PENDING, _RUNNING, _SUCCEEDED, _FAILED, _CANCELLED), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _RUNNING}), + (-1, {_sV: _SUCCEEDED}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _CANCELLED}), + ), +) + +STACK_SET_OPERATION_RESULT_SUMMARY: StaticSchema = ( + 18, + n0, + _SSORSt, + 0, + (_A, _Reg, _S, _SR, _AGR, _OUI), + ( + (ACCOUNT, 0), + (REGION, 0), + (STACK_SET_OPERATION_RESULT_STATUS, 0), + (REASON, 0), + (ACCOUNT_GATE_RESULT, 0), + (ORGANIZATIONAL_UNIT_ID, 0), + ), +) + +STACK_SET_OPERATION_RESULT_SUMMARIES: StaticSchema = ( + 16, + n0, + _SSORSta, + 0, + (_m,), + ((STACK_SET_OPERATION_RESULT_SUMMARY, 0),), +) + +LIST_STACK_SET_OPERATION_RESULTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSORO, + {_sm: None}, + (_Su, _NT), + ((STACK_SET_OPERATION_RESULT_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_SET_OPERATION_RESULTS: StaticOperationSchema = ( + 23, + n0, + _LSSOR, + 0, + LIST_STACK_SET_OPERATION_RESULTS_INPUT, + LIST_STACK_SET_OPERATION_RESULTS_OUTPUT, + (OPERATION_NOT_FOUND_EXCEPTION, STACK_SET_NOT_FOUND_EXCEPTION), +) + +LIST_STACK_SET_OPERATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LSSOI, + {_s: None}, + (_SSN, _NT, _MR, _CA), + ((STACK_SET_NAME, 1), (NEXT_TOKEN, 0), (MAX_RESULTS, 0), (CALL_AS, 0)), +) + +STACK_SET_OPERATION_SUMMARY: StaticSchema = ( + 18, + n0, + _SSOSt, + 0, + (_OI, _Ac, _S, _CTre, _ETnd, _SR, _SDta, _OP), + ( + (CLIENT_REQUEST_TOKEN, 0), + (STACK_SET_OPERATION_ACTION, 0), + (STACK_SET_OPERATION_STATUS, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (STACK_SET_OPERATION_STATUS_REASON, 0), + (STACK_SET_OPERATION_STATUS_DETAILS, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + ), +) + +STACK_SET_OPERATION_SUMMARIES: StaticSchema = ( + 16, + n0, + _SSOSta, + 0, + (_m,), + ((STACK_SET_OPERATION_SUMMARY, 0),), +) + +LIST_STACK_SET_OPERATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSOO, + {_sm: None}, + (_Su, _NT), + ((STACK_SET_OPERATION_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_SET_OPERATIONS: StaticOperationSchema = ( + 23, + n0, + _LSSO, + 0, + LIST_STACK_SET_OPERATIONS_INPUT, + LIST_STACK_SET_OPERATIONS_OUTPUT, + (STACK_SET_NOT_FOUND_EXCEPTION,), +) + +LIST_STACK_SETS_INPUT: StaticSchema = ( + 18, + n0, + _LSSI, + {_s: None}, + (_NT, _MR, _S, _CA), + ((NEXT_TOKEN, 0), (MAX_RESULTS, 0), (STACK_SET_STATUS, 0), (CALL_AS, 0)), +) + +STACK_SET_SUMMARY: StaticSchema = ( + 18, + n0, + _SSSt, + 0, + (_SSN, _SSI, _Des, _S, _AD, _PMe, _DSr, _LDCT, _ME), + ( + (STACK_SET_NAME, 0), + (STACK_SET_ID, 0), + (DESCRIPTION, 0), + (STACK_SET_STATUS, 0), + (AUTO_DEPLOYMENT, 0), + (PERMISSION_MODELS, 0), + (STACK_DRIFT_STATUS, 0), + (TIMESTAMP, 0), + (MANAGED_EXECUTION, 0), + ), +) + +STACK_SET_SUMMARIES: StaticSchema = ( + 16, + n0, + _SSSta, + 0, + (_m,), + ((STACK_SET_SUMMARY, 0),), +) + +LIST_STACK_SETS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSOi, + {_sm: None}, + (_Su, _NT), + ((STACK_SET_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_STACK_SETS: StaticOperationSchema = ( + 23, + n0, + _LSS, + 0, + LIST_STACK_SETS_INPUT, + LIST_STACK_SETS_OUTPUT, + (), +) + +LIST_TYPE_REGISTRATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LTRI, + {_s: None}, + (_T, _TN, _TA, _RSF, _MR, _NT), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_ARN, 0), + (REGISTRATION_STATUS, 0), + (MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +REGISTRATION_TOKEN_LIST: StaticSchema = ( + 16, + n0, + _RTL, + 0, + (_m,), + ((REGISTRATION_TOKEN, 0),), +) + +LIST_TYPE_REGISTRATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LTRO, + {_sm: None}, + (_RTL, _NT), + ((REGISTRATION_TOKEN_LIST, 0), (NEXT_TOKEN, 0)), +) + +LIST_TYPE_REGISTRATIONS: StaticOperationSchema = ( + 23, + n0, + _LTR, + 0, + LIST_TYPE_REGISTRATIONS_INPUT, + LIST_TYPE_REGISTRATIONS_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +TYPE_NAME_PREFIX: StaticSchema = (3, n0, _TNP, 0) + +TYPE_FILTERS: StaticSchema = ( + 18, + n0, + _TFy, + 0, + (_Cat, _PI, _TNP), + ((CATEGORY, 0), (PUBLISHER_ID, 0), (TYPE_NAME_PREFIX, 0)), +) + +LIST_TYPES_INPUT: StaticSchema = ( + 18, + n0, + _LTI, + {_s: None}, + (_Vi, _PT, _DSep, _T, _Fi, _MR, _NT), + ( + (VISIBILITY, 0), + (PROVISIONING_TYPE, 0), + (DEPRECATED_STATUS, 0), + (REGISTRY_TYPE, 0), + (TYPE_FILTERS, 0), + (MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +PUBLISHER_NAME: StaticSchema = (3, n0, _PNu, 0) + +TYPE_SUMMARY: StaticSchema = ( + 18, + n0, + _TSy, + 0, + (_T, _TN, _DVI, _TA, _LU, _Des, _PI, _OTN, _PVN, _LPV, _PIu, _PNu, _IA), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_VERSION_ID, 0), + (TYPE_ARN, 0), + (TIMESTAMP, 0), + (DESCRIPTION, 0), + (PUBLISHER_ID, 0), + (TYPE_NAME, 0), + (PUBLIC_VERSION_NUMBER, 0), + (PUBLIC_VERSION_NUMBER, 0), + (IDENTITY_PROVIDER, 0), + (PUBLISHER_NAME, 0), + (IS_ACTIVATED, 0), + ), +) + +TYPE_SUMMARIES: StaticSchema = (16, n0, _TSyp, 0, (_m,), ((TYPE_SUMMARY, 0),)) + +LIST_TYPES_OUTPUT: StaticSchema = ( + 18, + n0, + _LTO, + {_sm: None}, + (_TSyp, _NT), + ((TYPE_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_TYPES: StaticOperationSchema = ( + 23, + n0, + _LT, + 0, + LIST_TYPES_INPUT, + LIST_TYPES_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +LIST_TYPE_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _LTVI, + {_s: None}, + (_T, _TN, _Ar, _MR, _NT, _DSep, _PI), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_ARN, 0), + (MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (DEPRECATED_STATUS, 0), + (PUBLISHER_ID, 0), + ), +) + +TYPE_VERSION_SUMMARY: StaticSchema = ( + 18, + n0, + _TVS, + 0, + (_T, _TN, _VI, _IDV, _Ar, _TCi, _Des, _PVN), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_VERSION_ID, 0), + (IS_DEFAULT_VERSION, 0), + (TYPE_ARN, 0), + (TIMESTAMP, 0), + (DESCRIPTION, 0), + (PUBLIC_VERSION_NUMBER, 0), + ), +) + +TYPE_VERSION_SUMMARIES: StaticSchema = ( + 16, + n0, + _TVSy, + 0, + (_m,), + ((TYPE_VERSION_SUMMARY, 0),), +) + +LIST_TYPE_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LTVO, + {_sm: None}, + (_TVSy, _NT), + ((TYPE_VERSION_SUMMARIES, 0), (NEXT_TOKEN, 0)), +) + +LIST_TYPE_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _LTV, + 0, + LIST_TYPE_VERSIONS_INPUT, + LIST_TYPE_VERSIONS_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +PUBLISH_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _PTI, + {_s: None}, + (_T, _Ar, _TN, _PVN), + ( + (THIRD_PARTY_TYPE, 0), + (PRIVATE_TYPE_ARN, 0), + (TYPE_NAME, 0), + (PUBLIC_VERSION_NUMBER, 0), + ), +) + +PUBLISH_TYPE_OUTPUT: StaticSchema = ( + 18, + n0, + _PTO, + {_sm: None}, + (_PTA,), + ((TYPE_ARN, 0),), +) + +PUBLISH_TYPE: StaticOperationSchema = ( + 23, + n0, + _PTu, + 0, + PUBLISH_TYPE_INPUT, + PUBLISH_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +INVALID_STATE_TRANSITION_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISTE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidStateTransition", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +OPERATION_STATUS_CHECK_FAILED_EXCEPTION: StaticSchema = ( + 18, + n0, + _OSCFE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ConditionalCheckFailed", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +OPERATION_STATUS: StaticSchema = ( + 14, + n0, + _OS, + 0, + (_PENDING, _IP, _SUCCESS, _FAILED), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _IP}), + (-1, {_sV: _SUCCESS}), + (-1, {_sV: _FAILED}), + ), +) + +HANDLER_ERROR_CODE: StaticSchema = ( + 14, + n0, + _HEC, + 0, + ( + _NU, + _IR, + _ADc, + _ICn, + _AE, + _NF, + _RCe, + _Th, + _SLE, + _STe, + _GSE, + _SIE, + _NFe, + _IFn, + _ITC, + _HIF, + _NCo, + _Un, + _UT, + ), + ( + (-1, {_sV: _NU}), + (-1, {_sV: _IR}), + (-1, {_sV: _ADc}), + (-1, {_sV: _ICn}), + (-1, {_sV: _AE}), + (-1, {_sV: _NF}), + (-1, {_sV: _RCe}), + (-1, {_sV: _Th}), + (-1, {_sV: _SLE}), + (-1, {_sV: _NS}), + (-1, {_sV: _GSE}), + (-1, {_sV: _SIE}), + (-1, {_sV: _NFe}), + (-1, {_sV: _IFn}), + (-1, {_sV: _ITC}), + (-1, {_sV: _HIF}), + (-1, {_sV: _NCo}), + (-1, {_sV: _Un}), + (-1, {_sV: _UT}), + ), +) + +RESOURCE_MODEL: StaticSchema = (3, n0, _RMeso, 0) + +STATUS_MESSAGE: StaticSchema = (3, n0, _SM, 0) + +RECORD_HANDLER_PROGRESS_INPUT: StaticSchema = ( + 18, + n0, + _RHPI, + {_s: None}, + (_BT, _OS, _COS, _SM, _EC, _RMeso, _CRT), + ( + (CLIENT_TOKEN, 1), + (OPERATION_STATUS, 1), + (OPERATION_STATUS, 0), + (STATUS_MESSAGE, 0), + (HANDLER_ERROR_CODE, 0), + (RESOURCE_MODEL, 0), + (CLIENT_REQUEST_TOKEN, 0), + ), +) + +RECORD_HANDLER_PROGRESS_OUTPUT: StaticSchema = (18, n0, _RHPO, {_sm: None}) + +RECORD_HANDLER_PROGRESS: StaticOperationSchema = ( + 23, + n0, + _RHP, + 0, + RECORD_HANDLER_PROGRESS_INPUT, + RECORD_HANDLER_PROGRESS_OUTPUT, + (INVALID_STATE_TRANSITION_EXCEPTION, OPERATION_STATUS_CHECK_FAILED_EXCEPTION), +) + +CONNECTION_ARN: StaticSchema = (3, n0, _CAo, 0) + +REGISTER_PUBLISHER_INPUT: StaticSchema = ( + 18, + n0, + _RPI, + {_s: None}, + (_ATAC, _CAo), + ((ACCEPT_TERMS_AND_CONDITIONS, 0), (CONNECTION_ARN, 0)), +) + +REGISTER_PUBLISHER_OUTPUT: StaticSchema = ( + 18, + n0, + _RPO, + {_sm: None}, + (_PI,), + ((PUBLISHER_ID, 0),), +) + +REGISTER_PUBLISHER: StaticOperationSchema = ( + 23, + n0, + _RPeg, + 0, + REGISTER_PUBLISHER_INPUT, + REGISTER_PUBLISHER_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +REQUEST_TOKEN: StaticSchema = (3, n0, _RTeq, 0) + +S3_URL: StaticSchema = (3, n0, _SUr, 0) + +REGISTER_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _RTIeg, + {_s: None}, + (_T, _TN, _SHP, _LC, _ERA, _CRT), + ( + (REGISTRY_TYPE, 0), + (TYPE_NAME, 1), + (S3_URL, 1), + (LOGGING_CONFIG, 0), + (ROLE_ARN2, 0), + (REQUEST_TOKEN, 0), + ), +) + +REGISTER_TYPE_OUTPUT: StaticSchema = ( + 18, + n0, + _RTO, + {_sm: None}, + (_RTegi,), + ((REGISTRATION_TOKEN, 0),), +) + +REGISTER_TYPE: StaticOperationSchema = ( + 23, + n0, + _RTegis, + 0, + REGISTER_TYPE_INPUT, + REGISTER_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION,), +) + +ROLLBACK_STACK_INPUT: StaticSchema = ( + 18, + n0, + _RSIo, + {_s: None}, + (_SN, _RARNo, _CRT, _REOC, _DCe), + ( + (STACK_NAME_OR_ID, 1), + (ROLE_ARN, 0), + (CLIENT_REQUEST_TOKEN, 0), + (RETAIN_EXCEPT_ON_CREATE, 0), + (DEPLOYMENT_CONFIG, 0), + ), +) + +ROLLBACK_STACK_OUTPUT: StaticSchema = ( + 18, + n0, + _RSO, + {_sm: None}, + (_SI, _OI), + ((STACK_ID, 0), (OPERATION_ID, 0)), +) + +ROLLBACK_STACK: StaticOperationSchema = ( + 23, + n0, + _RSo, + 0, + ROLLBACK_STACK_INPUT, + ROLLBACK_STACK_OUTPUT, + (TOKEN_ALREADY_EXISTS_EXCEPTION,), +) + +SET_STACK_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _SSPI, + {_s: None}, + (_SN, _SPB, _SPURL), + ((STACK_NAME, 1), (STACK_POLICY_BODY, 0), (STACK_POLICY_URL, 0)), +) + +SET_STACK_POLICY_OUTPUT: StaticSchema = (18, n0, _SSPO, {_sSI: _sU, _sm: None}) + +SET_STACK_POLICY: StaticOperationSchema = ( + 23, + n0, + _SSP, + 0, + SET_STACK_POLICY_INPUT, + SET_STACK_POLICY_OUTPUT, + (), +) + +SET_TYPE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _STCI, + {_s: None}, + (_TA, _C, _CAon, _TN, _T), + ( + (TYPE_ARN, 0), + (TYPE_CONFIGURATION, 1), + (TYPE_CONFIGURATION_ALIAS, 0), + (TYPE_NAME, 0), + (THIRD_PARTY_TYPE, 0), + ), +) + +SET_TYPE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _STCO, + {_sm: None}, + (_CAonf,), + ((TYPE_CONFIGURATION_ARN, 0),), +) + +SET_TYPE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _STC, + 0, + SET_TYPE_CONFIGURATION_INPUT, + SET_TYPE_CONFIGURATION_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +SET_TYPE_DEFAULT_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _STDVI, + {_s: None}, + (_Ar, _T, _TN, _VI), + ((PRIVATE_TYPE_ARN, 0), (REGISTRY_TYPE, 0), (TYPE_NAME, 0), (TYPE_VERSION_ID, 0)), +) + +SET_TYPE_DEFAULT_VERSION_OUTPUT: StaticSchema = (18, n0, _STDVO, {_sm: None}) + +SET_TYPE_DEFAULT_VERSION: StaticOperationSchema = ( + 23, + n0, + _STDV, + 0, + SET_TYPE_DEFAULT_VERSION_INPUT, + SET_TYPE_DEFAULT_VERSION_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +RESOURCE_SIGNAL_STATUS: StaticSchema = ( + 14, + n0, + _RSSeso, + 0, + (_SUCCESS, _FAILURE), + ((-1, {_sV: _SUCCESS}), (-1, {_sV: _FAILURE})), +) + +RESOURCE_SIGNAL_UNIQUE_ID: StaticSchema = (3, n0, _RSUI, 0) + +SIGNAL_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _SRIi, + {_s: None}, + (_SN, _LRI, _UI, _S), + ( + (STACK_NAME_OR_ID, 1), + (LOGICAL_RESOURCE_ID, 1), + (RESOURCE_SIGNAL_UNIQUE_ID, 1), + (RESOURCE_SIGNAL_STATUS, 1), + ), +) + +SIGNAL_RESOURCE_OUTPUT: StaticSchema = (18, n0, _SRO, {_sSI: _sU, _sm: None}) + +SIGNAL_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _SRi, + 0, + SIGNAL_RESOURCE_INPUT, + SIGNAL_RESOURCE_OUTPUT, + (), +) + +RESOURCE_SCAN_LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _RSLEE, + { + _smi: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ResourceScanLimitExceeded", "httpResponseCode": 400} + ), + }, + (_M,), + ((ERROR_MESSAGE, 0),), +) + +START_RESOURCE_SCAN_INPUT: StaticSchema = ( + 18, + n0, + _SRSI, + {_s: None}, + (_CRT, _SFc), + ((CLIENT_REQUEST_TOKEN, 0), (SCAN_FILTERS, 0)), +) + +START_RESOURCE_SCAN_OUTPUT: StaticSchema = ( + 18, + n0, + _SRSO, + {_sm: None}, + (_RSI,), + ((RESOURCE_SCAN_ID, 0),), +) + +START_RESOURCE_SCAN: StaticOperationSchema = ( + 23, + n0, + _SRStar, + 0, + START_RESOURCE_SCAN_INPUT, + START_RESOURCE_SCAN_OUTPUT, + (RESOURCE_SCAN_IN_PROGRESS_EXCEPTION, RESOURCE_SCAN_LIMIT_EXCEEDED_EXCEPTION), +) + +STOP_STACK_SET_OPERATION_INPUT: StaticSchema = ( + 18, + n0, + _SSSOI, + {_s: None}, + (_SSN, _OI, _CA), + ((STACK_SET_NAME, 1), (CLIENT_REQUEST_TOKEN, 1), (CALL_AS, 0)), +) + +STOP_STACK_SET_OPERATION_OUTPUT: StaticSchema = (18, n0, _SSSOO, {_sm: None}) + +STOP_STACK_SET_OPERATION: StaticOperationSchema = ( + 23, + n0, + _SSSO, + 0, + STOP_STACK_SET_OPERATION_INPUT, + STOP_STACK_SET_OPERATION_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + OPERATION_NOT_FOUND_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + ), +) + +S3_BUCKET: StaticSchema = (3, n0, _SB, 0) + +TEST_TYPE_INPUT: StaticSchema = ( + 18, + n0, + _TTI, + {_s: None}, + (_Ar, _T, _TN, _VI, _LDB), + ( + (TYPE_ARN, 0), + (THIRD_PARTY_TYPE, 0), + (TYPE_NAME, 0), + (TYPE_VERSION_ID, 0), + (S3_BUCKET, 0), + ), +) + +TEST_TYPE_OUTPUT: StaticSchema = (18, n0, _TTO, {_sm: None}, (_TVA,), ((TYPE_ARN, 0),)) + +TEST_TYPE: StaticOperationSchema = ( + 23, + n0, + _TTe, + 0, + TEST_TYPE_INPUT, + TEST_TYPE_OUTPUT, + (CFN_REGISTRY_EXCEPTION, TYPE_NOT_FOUND_EXCEPTION), +) + +REFRESH_ALL_RESOURCES: StaticSchema = (2, n0, _RARe, 0) + +JAZZ_LOGICAL_RESOURCE_IDS: StaticSchema = ( + 16, + n0, + _JLRI, + 0, + (_m,), + ((LOGICAL_RESOURCE_ID, 0),), +) + +UPDATE_GENERATED_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _UGTI, + {_s: None}, + (_GTN, _NGTN, _AR, _RRem, _RARe, _TCe), + ( + (GENERATED_TEMPLATE_NAME, 1), + (GENERATED_TEMPLATE_NAME, 0), + (RESOURCE_DEFINITIONS, 0), + (JAZZ_LOGICAL_RESOURCE_IDS, 0), + (REFRESH_ALL_RESOURCES, 0), + (TEMPLATE_CONFIGURATION, 0), + ), +) + +UPDATE_GENERATED_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _UGTO, + {_sm: None}, + (_GTI,), + ((GENERATED_TEMPLATE_ID, 0),), +) + +UPDATE_GENERATED_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _UGT, + 0, + UPDATE_GENERATED_TEMPLATE_INPUT, + UPDATE_GENERATED_TEMPLATE_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + ), +) + +STACK_POLICY_DURING_UPDATE_BODY: StaticSchema = (3, n0, _SPDUB, 0) + +STACK_POLICY_DURING_UPDATE_URL: StaticSchema = (3, n0, _SPDUURL, 0) + +UPDATE_STACK_INPUT: StaticSchema = ( + 18, + n0, + _USI, + {_s: None}, + ( + _SN, + _TB, + _TURL, + _UPT, + _SPDUB, + _SPDUURL, + _Para, + _Cap, + _RTe, + _RARNo, + _RCo, + _SPB, + _SPURL, + _NARNo, + _Ta, + _DR, + _CRT, + _REOC, + _DCe, + _DV, + ), + ( + (STACK_NAME, 1), + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (USE_PREVIOUS_TEMPLATE, 0), + (STACK_POLICY_DURING_UPDATE_BODY, 0), + (STACK_POLICY_DURING_UPDATE_URL, 0), + (PARAMETERS, 0), + (CAPABILITIES, 0), + (RESOURCE_TYPES, 0), + (ROLE_ARN, 0), + (ROLLBACK_CONFIGURATION, 0), + (STACK_POLICY_BODY, 0), + (STACK_POLICY_URL, 0), + (NOTIFICATION_AR_NS, 0), + (TAGS, 0), + (DISABLE_ROLLBACK, 0), + (CLIENT_REQUEST_TOKEN, 0), + (RETAIN_EXCEPT_ON_CREATE, 0), + (DEPLOYMENT_CONFIG, 0), + (DISABLE_VALIDATION, 0), + ), +) + +UPDATE_STACK_OUTPUT: StaticSchema = ( + 18, + n0, + _USO, + {_sm: None}, + (_SI, _OI), + ((STACK_ID, 0), (OPERATION_ID, 0)), +) + +UPDATE_STACK: StaticOperationSchema = ( + 23, + n0, + _USp, + 0, + UPDATE_STACK_INPUT, + UPDATE_STACK_OUTPUT, + (INSUFFICIENT_CAPABILITIES_EXCEPTION, TOKEN_ALREADY_EXISTS_EXCEPTION), +) + +UPDATE_STACK_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _USII, + {_s: None}, + (_SSN, _Acc, _DT, _Regi, _PO, _OP, _OI, _CA), + ( + (STACK_SET_NAME_OR_ID, 1), + (ACCOUNT_LIST, 0), + (DEPLOYMENT_TARGETS, 0), + (REGION_LIST, 1), + (PARAMETERS, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + (CLIENT_REQUEST_TOKEN, 2), + (CALL_AS, 0), + ), +) + +UPDATE_STACK_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _USIO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +UPDATE_STACK_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _USIp, + 0, + UPDATE_STACK_INSTANCES_INPUT, + UPDATE_STACK_INSTANCES_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + OPERATION_ID_ALREADY_EXISTS_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_INSTANCE_NOT_FOUND_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + STALE_REQUEST_EXCEPTION, + ), +) + +UPDATE_STACK_SET_INPUT: StaticSchema = ( + 18, + n0, + _USSI, + {_s: None}, + ( + _SSN, + _Des, + _TB, + _TURL, + _UPT, + _Para, + _Cap, + _Ta, + _OP, + _ARARN, + _ERN, + _DT, + _PMe, + _AD, + _OI, + _Acc, + _Regi, + _CA, + _ME, + ), + ( + (STACK_SET_NAME, 1), + (DESCRIPTION, 0), + (TEMPLATE_BODY, 0), + (TEMPLATE_URL, 0), + (USE_PREVIOUS_TEMPLATE, 0), + (PARAMETERS, 0), + (CAPABILITIES, 0), + (TAGS, 0), + (STACK_SET_OPERATION_PREFERENCES, 0), + (ROLE_ARN, 0), + (EXECUTION_ROLE_NAME, 0), + (DEPLOYMENT_TARGETS, 0), + (PERMISSION_MODELS, 0), + (AUTO_DEPLOYMENT, 0), + (CLIENT_REQUEST_TOKEN, 2), + (ACCOUNT_LIST, 0), + (REGION_LIST, 0), + (CALL_AS, 0), + (MANAGED_EXECUTION, 0), + ), +) + +UPDATE_STACK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _USSO, + {_sm: None}, + (_OI,), + ((CLIENT_REQUEST_TOKEN, 0),), +) + +UPDATE_STACK_SET: StaticOperationSchema = ( + 23, + n0, + _USS, + 0, + UPDATE_STACK_SET_INPUT, + UPDATE_STACK_SET_OUTPUT, + ( + INVALID_OPERATION_EXCEPTION, + OPERATION_ID_ALREADY_EXISTS_EXCEPTION, + OPERATION_IN_PROGRESS_EXCEPTION, + STACK_INSTANCE_NOT_FOUND_EXCEPTION, + STACK_SET_NOT_FOUND_EXCEPTION, + STALE_REQUEST_EXCEPTION, + ), +) + +UPDATE_TERMINATION_PROTECTION_INPUT: StaticSchema = ( + 18, + n0, + _UTPI, + {_s: None}, + (_ETP, _SN), + ((ENABLE_TERMINATION_PROTECTION, 1), (STACK_NAME_OR_ID, 1)), +) + +UPDATE_TERMINATION_PROTECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UTPO, + {_sm: None}, + (_SI,), + ((STACK_ID, 0),), +) + +UPDATE_TERMINATION_PROTECTION: StaticOperationSchema = ( + 23, + n0, + _UTP, + 0, + UPDATE_TERMINATION_PROTECTION_INPUT, + UPDATE_TERMINATION_PROTECTION_OUTPUT, + (), +) + +VALIDATE_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _VTI, + {_s: None}, + (_TB, _TURL), + ((TEMPLATE_BODY, 0), (TEMPLATE_URL, 0)), +) + +TEMPLATE_PARAMETER: StaticSchema = ( + 18, + n0, + _TPem, + 0, + (_PK, _DVe, _NEo, _Des), + ((PARAMETER_KEY, 0), (PARAMETER_VALUE, 0), (NO_ECHO, 0), (DESCRIPTION, 0)), +) + +TEMPLATE_PARAMETERS: StaticSchema = ( + 16, + n0, + _TPemp, + 0, + (_m,), + ((TEMPLATE_PARAMETER, 0),), +) + +VALIDATE_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _VTO, + {_sm: None}, + (_Para, _Des, _Cap, _CR, _DTec), + ( + (TEMPLATE_PARAMETERS, 0), + (DESCRIPTION, 0), + (CAPABILITIES, 0), + (CAPABILITIES_REASON, 0), + (TRANSFORMS_LIST, 0), + ), +) + +VALIDATE_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _VT, + 0, + VALIDATE_TEMPLATE_INPUT, + VALIDATE_TEMPLATE_OUTPUT, + (), +) + +CLOUD_FORMATION: StaticSchema = ( + 21, + n0, + _CFl, + { + _a: MappingProxyType({"name": "cloudformation"}), + _aQ: None, + _aw: MappingProxyType( + { + "sdkId": "CloudFormation", + "arnNamespace": "cloudformation", + "cloudFormationName": "CloudFormation", + "cloudTrailEventSource": "cloudformation.amazonaws.com", + "endpointPrefix": "cloudformation", + } + ), + _sN: MappingProxyType( + {"uri": "http://cloudformation.amazonaws.com/doc/2010-05-15/"} + ), + }, +) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/__init__.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/__init__.py new file mode 100644 index 00000000..351c2759 --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/__init__.py @@ -0,0 +1,22 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncCloudFormationClient + from .config import AsyncCloudFormationConfig + +__all__ = ["AsyncCloudFormationClient", "AsyncCloudFormationConfig"] + +_EXPORTS = { + "AsyncCloudFormationClient": ".client", + "AsyncCloudFormationConfig": ".config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/client.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/client.py new file mode 100644 index 00000000..6e982eac --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/client.py @@ -0,0 +1,2876 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncCloudFormationConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + ActivateTypeInput, + ActivateTypeOutput, + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + CancelUpdateStackInput, + CancelUpdateStackOutput, + ContinueUpdateRollbackInput, + ContinueUpdateRollbackOutput, + CreateChangeSetInput, + CreateChangeSetOutput, + CreateGeneratedTemplateInput, + CreateGeneratedTemplateOutput, + CreateStackInput, + CreateStackInstancesInput, + CreateStackInstancesOutput, + CreateStackOutput, + CreateStackRefactorInput, + CreateStackRefactorOutput, + CreateStackSetInput, + CreateStackSetOutput, + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + DeactivateTypeInput, + DeactivateTypeOutput, + DeleteChangeSetInput, + DeleteChangeSetOutput, + DeleteGeneratedTemplateInput, + DeleteGeneratedTemplateOutput, + DeleteStackInput, + DeleteStackInstancesInput, + DeleteStackInstancesOutput, + DeleteStackOutput, + DeleteStackSetInput, + DeleteStackSetOutput, + DeregisterTypeInput, + DeregisterTypeOutput, + DescribeAccountLimitsInput, + DescribeAccountLimitsOutput, + DescribeChangeSetHooksInput, + DescribeChangeSetHooksOutput, + DescribeChangeSetInput, + DescribeChangeSetOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeGeneratedTemplateInput, + DescribeGeneratedTemplateOutput, + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + DescribePublisherInput, + DescribePublisherOutput, + DescribeResourceScanInput, + DescribeResourceScanOutput, + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + DescribeStackEventsInput, + DescribeStackEventsOutput, + DescribeStackInstanceInput, + DescribeStackInstanceOutput, + DescribeStackRefactorInput, + DescribeStackRefactorOutput, + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + DescribeStackResourceInput, + DescribeStackResourceOutput, + DescribeStackResourcesInput, + DescribeStackResourcesOutput, + DescribeStackSetInput, + DescribeStackSetOperationInput, + DescribeStackSetOperationOutput, + DescribeStackSetOutput, + DescribeStacksInput, + DescribeStacksOutput, + DescribeTypeInput, + DescribeTypeOutput, + DescribeTypeRegistrationInput, + DescribeTypeRegistrationOutput, + DetectStackDriftInput, + DetectStackDriftOutput, + DetectStackResourceDriftInput, + DetectStackResourceDriftOutput, + DetectStackSetDriftInput, + DetectStackSetDriftOutput, + EstimateTemplateCostInput, + EstimateTemplateCostOutput, + ExecuteChangeSetInput, + ExecuteChangeSetOutput, + ExecuteStackRefactorInput, + ExecuteStackRefactorOutput, + GetGeneratedTemplateInput, + GetGeneratedTemplateOutput, + GetHookResultInput, + GetHookResultOutput, + GetStackPolicyInput, + GetStackPolicyOutput, + GetTemplateInput, + GetTemplateOutput, + GetTemplateSummaryInput, + GetTemplateSummaryOutput, + ImportStacksToStackSetInput, + ImportStacksToStackSetOutput, + ListChangeSetsInput, + ListChangeSetsOutput, + ListExportsInput, + ListExportsOutput, + ListGeneratedTemplatesInput, + ListGeneratedTemplatesOutput, + ListHookResultsInput, + ListHookResultsOutput, + ListImportsInput, + ListImportsOutput, + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + ListResourceScanResourcesInput, + ListResourceScanResourcesOutput, + ListResourceScansInput, + ListResourceScansOutput, + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + ListStackInstancesInput, + ListStackInstancesOutput, + ListStackRefactorActionsInput, + ListStackRefactorActionsOutput, + ListStackRefactorsInput, + ListStackRefactorsOutput, + ListStackResourcesInput, + ListStackResourcesOutput, + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + ListStackSetOperationsInput, + ListStackSetOperationsOutput, + ListStackSetsInput, + ListStackSetsOutput, + ListStacksInput, + ListStacksOutput, + ListTypeRegistrationsInput, + ListTypeRegistrationsOutput, + ListTypeVersionsInput, + ListTypeVersionsOutput, + ListTypesInput, + ListTypesOutput, + PublishTypeInput, + PublishTypeOutput, + RecordHandlerProgressInput, + RecordHandlerProgressOutput, + RegisterPublisherInput, + RegisterPublisherOutput, + RegisterTypeInput, + RegisterTypeOutput, + RollbackStackInput, + RollbackStackOutput, + SetStackPolicyInput, + SetStackPolicyOutput, + SetTypeConfigurationInput, + SetTypeConfigurationOutput, + SetTypeDefaultVersionInput, + SetTypeDefaultVersionOutput, + SignalResourceInput, + SignalResourceOutput, + StartResourceScanInput, + StartResourceScanOutput, + StopStackSetOperationInput, + StopStackSetOperationOutput, + TestTypeInput, + TestTypeOutput, + UpdateGeneratedTemplateInput, + UpdateGeneratedTemplateOutput, + UpdateStackInput, + UpdateStackInstancesInput, + UpdateStackInstancesOutput, + UpdateStackOutput, + UpdateStackSetInput, + UpdateStackSetOutput, + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + ValidateTemplateInput, + ValidateTemplateOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncCloudFormationClient(AsyncClient[AsyncCloudFormationConfig]): + """ + CloudFormation allows you to create and manage Amazon Web Services + infrastructure deployments predictably and repeatedly. You can use + CloudFormation to leverage Amazon Web Services products, such as Amazon + Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple + Notification Service, Elastic Load Balancing, and Amazon EC2 Auto + Scaling to build highly reliable, highly scalable, cost-effective + applications without creating or configuring the underlying Amazon Web + Services infrastructure. + + With CloudFormation, you declare all your resources and dependencies in + a template file. The template defines a collection of resources as a + single unit called a stack. CloudFormation creates and deletes all + member resources of the stack together and manages all dependencies + between the resources for you. + + For more information about CloudFormation, see the [CloudFormation + product page](http://aws.amazon.com/cloudformation/). + + CloudFormation makes use of other Amazon Web Services products. If you + need additional technical information about a specific Amazon Web + Services product, you can find the product's technical documentation at + [docs.aws.amazon.com](https://docs.aws.amazon.com/). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def activate_organizations_access( + self, + input: ActivateOrganizationsAccessInput, + plugins: list[Plugin] | None = None, + ) -> ActivateOrganizationsAccessOutput: + """ + Activate trusted access with Organizations. With trusted access between + StackSets and Organizations activated, the management account has + permissions to create and manage StackSets for your organization. + + Args: + input: + An instance of `ActivateOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ActivateOrganizationsAccessOutput`. + """ + return await self._invoke( + input, _models.ACTIVATE_ORGANIZATIONS_ACCESS, [], plugins + ) + + async def activate_type( + self, input: ActivateTypeInput, plugins: list[Plugin] | None = None + ) -> ActivateTypeOutput: + """ + Activates a public third-party extension, such as a resource or module, + to make it available for use in stack templates in your current account + and Region. It can also create CloudFormation Hooks, which allow you to + evaluate resource configurations before CloudFormation provisions them. + Hooks integrate with both CloudFormation and Cloud Control API + operations. + + After you activate an extension, you can use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) + to set specific properties for the extension. + + To see which extensions have been activated, use + [ListTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html). + To see configuration details for an extension, use + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + For more information, see [Activate a third-party public extension in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public-activate-extension.html) + in the *CloudFormation User Guide*. For information about creating + Hooks, see the [CloudFormation Hooks User + Guide](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html). + + Args: + input: + An instance of `ActivateTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ActivateTypeOutput`. + """ + return await self._invoke(input, _models.ACTIVATE_TYPE, [], plugins) + + async def batch_describe_type_configurations( + self, + input: BatchDescribeTypeConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> BatchDescribeTypeConfigurationsOutput: + """ + Returns configuration data for the specified CloudFormation extensions, + from the CloudFormation registry in your current account and Region. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `BatchDescribeTypeConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BatchDescribeTypeConfigurationsOutput`. + """ + return await self._invoke( + input, _models.BATCH_DESCRIBE_TYPE_CONFIGURATIONS, [], plugins + ) + + async def cancel_update_stack( + self, input: CancelUpdateStackInput, plugins: list[Plugin] | None = None + ) -> CancelUpdateStackOutput: + """ + Cancels an update on the specified stack. If the call completes + successfully, the stack rolls back the update and reverts to the + previous stack configuration. + + Note: + You can cancel only stacks that are in the `UPDATE_IN_PROGRESS` state. + + Args: + input: + An instance of `CancelUpdateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelUpdateStackOutput`. + """ + return await self._invoke(input, _models.CANCEL_UPDATE_STACK, [], plugins) + + async def continue_update_rollback( + self, input: ContinueUpdateRollbackInput, plugins: list[Plugin] | None = None + ) -> ContinueUpdateRollbackOutput: + """ + Continues rolling back a stack from `UPDATE_ROLLBACK_FAILED` to + `UPDATE_ROLLBACK_COMPLETE` state. Depending on the cause of the failure, + you can manually fix the error and continue the rollback. By continuing + the rollback, you can return your stack to a working state (the + `UPDATE_ROLLBACK_COMPLETE` state) and then try to update the stack + again. + + A stack enters the `UPDATE_ROLLBACK_FAILED` state when CloudFormation + can't roll back all changes after a failed stack update. For example, + this might occur when a stack attempts to roll back to an old database + that was deleted outside of CloudFormation. Because CloudFormation + doesn't know the instance was deleted, it assumes the instance still + exists and attempts to roll back to it, causing the update rollback to + fail. + + For more information, see [Continue rolling back an + update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) + in the *CloudFormation User Guide*. For information for troubleshooting + a failed update rollback, see [Update rollback + failed](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed). + + `ForceRollback` and `ResourcesToSkip` are mutually exclusive. For + details, see ContinueUpdateRollbackInput$$ForceRollback. + + Args: + input: + An instance of `ContinueUpdateRollbackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ContinueUpdateRollbackOutput`. + """ + return await self._invoke(input, _models.CONTINUE_UPDATE_ROLLBACK, [], plugins) + + async def create_change_set( + self, input: CreateChangeSetInput, plugins: list[Plugin] | None = None + ) -> CreateChangeSetOutput: + """ + Creates a list of changes that will be applied to a stack so that you + can review the changes before executing them. You can create a change + set for a stack that doesn't exist or an existing stack. If you create + a change set for a stack that doesn't exist, the change set shows all + of the resources that CloudFormation will create. If you create a change + set for an existing stack, CloudFormation compares the stack's + information with the information that you submit in the change set and + lists the differences. Use change sets to understand which resources + CloudFormation will create or change, and how it will change resources + in an existing stack, before you create or update a stack. + + To create a change set for a stack that doesn't exist, for the + `ChangeSetType` parameter, specify `CREATE`. To create a change set for + an existing stack, specify `UPDATE` for the `ChangeSetType` parameter. + To create a change set for an import operation, specify `IMPORT` for the + `ChangeSetType` parameter. After the `CreateChangeSet` call successfully + completes, CloudFormation starts creating the change set. To check the + status of the change set or to review it, use the DescribeChangeSet + action. + + When you are satisfied with the changes the change set will make, + execute the change set by using the ExecuteChangeSet action. + CloudFormation doesn't make changes until you execute the change set. + + To create a change set for the entire stack hierarchy, set + `IncludeNestedStacks` to `True`. + + Args: + input: + An instance of `CreateChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateChangeSetOutput`. + """ + return await self._invoke(input, _models.CREATE_CHANGE_SET, [], plugins) + + async def create_generated_template( + self, input: CreateGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> CreateGeneratedTemplateOutput: + """ + Creates a template from existing resources that are not already managed + with CloudFormation. You can check the status of the template generation + using the `DescribeGeneratedTemplate` API action. + + Args: + input: + An instance of `CreateGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGeneratedTemplateOutput`. + """ + return await self._invoke(input, _models.CREATE_GENERATED_TEMPLATE, [], plugins) + + async def create_stack( + self, input: CreateStackInput, plugins: list[Plugin] | None = None + ) -> CreateStackOutput: + """ + Creates a stack as specified in the template. After the call completes + successfully, the stack creation starts. You can check the status of the + stack through the DescribeStacks operation. + + For more information about creating a stack and monitoring stack + progress, see [Managing Amazon Web Services resources as a single unit + with CloudFormation + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `CreateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackOutput`. + """ + return await self._invoke(input, _models.CREATE_STACK, [], plugins) + + async def create_stack_instances( + self, input: CreateStackInstancesInput, plugins: list[Plugin] | None = None + ) -> CreateStackInstancesOutput: + """ + Creates stack instances for the specified accounts, within the specified + Amazon Web Services Regions. A stack instance refers to a stack in a + specific account and Region. You must specify at least one value for + either `Accounts` or `DeploymentTargets`, and you must specify at least + one value for `Regions`. + + Note: + The maximum number of organizational unit (OUs) supported by a + `CreateStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `CreateStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackInstancesOutput`. + """ + return await self._invoke(input, _models.CREATE_STACK_INSTANCES, [], plugins) + + async def create_stack_refactor( + self, input: CreateStackRefactorInput, plugins: list[Plugin] | None = None + ) -> CreateStackRefactorOutput: + """ + Creates a refactor across multiple stacks, with the list of stacks and + resources that are affected. + + Args: + input: + An instance of `CreateStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackRefactorOutput`. + """ + return await self._invoke(input, _models.CREATE_STACK_REFACTOR, [], plugins) + + async def create_stack_set( + self, input: CreateStackSetInput, plugins: list[Plugin] | None = None + ) -> CreateStackSetOutput: + """ + Creates a StackSet. + + Args: + input: + An instance of `CreateStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackSetOutput`. + """ + return await self._invoke(input, _models.CREATE_STACK_SET, [], plugins) + + async def deactivate_organizations_access( + self, + input: DeactivateOrganizationsAccessInput, + plugins: list[Plugin] | None = None, + ) -> DeactivateOrganizationsAccessOutput: + """ + Deactivates trusted access with Organizations. If trusted access is + deactivated, the management account does not have permissions to create + and manage service-managed StackSets for your organization. + + Args: + input: + An instance of `DeactivateOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateOrganizationsAccessOutput`. + """ + return await self._invoke( + input, _models.DEACTIVATE_ORGANIZATIONS_ACCESS, [], plugins + ) + + async def deactivate_type( + self, input: DeactivateTypeInput, plugins: list[Plugin] | None = None + ) -> DeactivateTypeOutput: + """ + Deactivates a public third-party extension, such as a resource or + module, or a CloudFormation Hook when you no longer use it. + + Deactivating an extension deletes the configuration details that are + associated with it. To temporarily disable a CloudFormation Hook + instead, you can use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html). + + Once deactivated, an extension can't be used in any CloudFormation + operation. This includes stack update operations where the stack + template includes the extension, even if no updates are being made to + the extension. In addition, deactivated extensions aren't automatically + updated if a new version of the extension is released. + + To see which extensions are currently activated, use + [ListTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html). + + Args: + input: + An instance of `DeactivateTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateTypeOutput`. + """ + return await self._invoke(input, _models.DEACTIVATE_TYPE, [], plugins) + + async def delete_change_set( + self, input: DeleteChangeSetInput, plugins: list[Plugin] | None = None + ) -> DeleteChangeSetOutput: + """ + Deletes the specified change set. Deleting change sets ensures that no + one executes the wrong change set. + + If the call successfully completes, CloudFormation successfully deleted + the change set. + + If `IncludeNestedStacks` specifies `True` during the creation of the + nested change set, then `DeleteChangeSet` will delete all change sets + that belong to the stacks hierarchy and will also delete all change sets + for nested stacks with the status of `REVIEW_IN_PROGRESS`. + + Args: + input: + An instance of `DeleteChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteChangeSetOutput`. + """ + return await self._invoke(input, _models.DELETE_CHANGE_SET, [], plugins) + + async def delete_generated_template( + self, input: DeleteGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> DeleteGeneratedTemplateOutput: + """ + Deleted a generated template. + + Args: + input: + An instance of `DeleteGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGeneratedTemplateOutput`. + """ + return await self._invoke(input, _models.DELETE_GENERATED_TEMPLATE, [], plugins) + + async def delete_stack( + self, input: DeleteStackInput, plugins: list[Plugin] | None = None + ) -> DeleteStackOutput: + """ + Deletes a specified stack. Once the call completes successfully, stack + deletion starts. Deleted stacks don't show up in the DescribeStacks + operation if the deletion has been completed successfully. + + For more information about deleting a stack, see [Delete a stack from + the CloudFormation + console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DeleteStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackOutput`. + """ + return await self._invoke(input, _models.DELETE_STACK, [], plugins) + + async def delete_stack_instances( + self, input: DeleteStackInstancesInput, plugins: list[Plugin] | None = None + ) -> DeleteStackInstancesOutput: + """ + Deletes stack instances for the specified accounts, in the specified + Amazon Web Services Regions. + + Note: + The maximum number of organizational unit (OUs) supported by a + `DeleteStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `DeleteStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackInstancesOutput`. + """ + return await self._invoke(input, _models.DELETE_STACK_INSTANCES, [], plugins) + + async def delete_stack_set( + self, input: DeleteStackSetInput, plugins: list[Plugin] | None = None + ) -> DeleteStackSetOutput: + """ + Deletes a StackSet. Before you can delete a StackSet, all its member + stack instances must be deleted. For more information about how to + complete this, see DeleteStackInstances. + + Args: + input: + An instance of `DeleteStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackSetOutput`. + """ + return await self._invoke(input, _models.DELETE_STACK_SET, [], plugins) + + async def deregister_type( + self, input: DeregisterTypeInput, plugins: list[Plugin] | None = None + ) -> DeregisterTypeOutput: + """ + Marks an extension or extension version as `DEPRECATED` in the + CloudFormation registry, removing it from active use. Deprecated + extensions or extension versions cannot be used in CloudFormation + operations. + + To deregister an entire extension, you must individually deregister all + active versions of that extension. If an extension has only a single + active version, deregistering that version results in the extension + itself being deregistered and marked as deprecated in the registry. + + You can't deregister the default version of an extension if there are + other active version of that extension. If you do deregister the default + version of an extension, the extension type itself is deregistered as + well and marked as deprecated. + + To view the deprecation status of an extension or extension version, use + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + For more information, see [Remove third-party private extensions from + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private-deregister-extension.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DeregisterTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTypeOutput`. + """ + return await self._invoke(input, _models.DEREGISTER_TYPE, [], plugins) + + async def describe_account_limits( + self, input: DescribeAccountLimitsInput, plugins: list[Plugin] | None = None + ) -> DescribeAccountLimitsOutput: + """ + Retrieves your account's CloudFormation limits, such as the maximum + number of stacks that you can create in your account. For more + information about account limits, see [Understand CloudFormation + quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeAccountLimitsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountLimitsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ACCOUNT_LIMITS, [], plugins) + + async def describe_change_set( + self, input: DescribeChangeSetInput, plugins: list[Plugin] | None = None + ) -> DescribeChangeSetOutput: + """ + Returns the inputs for the change set and a list of changes that + CloudFormation will make if you execute the change set. For more + information, see [Update CloudFormation stacks using change + sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChangeSetOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CHANGE_SET, [], plugins) + + async def describe_change_set_hooks( + self, input: DescribeChangeSetHooksInput, plugins: list[Plugin] | None = None + ) -> DescribeChangeSetHooksOutput: + """ + Returns Hook-related information for the change set and a list of + changes that CloudFormation makes when you run the change set. + + Args: + input: + An instance of `DescribeChangeSetHooksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChangeSetHooksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CHANGE_SET_HOOKS, [], plugins) + + async def describe_events( + self, input: DescribeEventsInput, plugins: list[Plugin] | None = None + ) -> DescribeEventsOutput: + """ + Returns CloudFormation events based on flexible query criteria. Groups + events by operation ID, enabling you to focus on individual stack + operations during deployment. + + An operation is any action performed on a stack, including stack + lifecycle actions (Create, Update, Delete, Rollback), change set + creation, nested stack creation, and automatic rollbacks triggered by + failures. Each operation has a unique identifier (Operation ID) and + represents a discrete change attempt on the stack. + + Returns different types of events including: + + - **Progress events** - Status updates during stack operation execution. + + - **Validation errors** - Failures from CloudFormation Early + Validations. + + - **Provisioning errors** - Resource creation and update failures. + + - **Hook invocation errors** - Failures from CloudFormation Hook during + stack operations. + + Note: + One of `ChangeSetName`, `OperationId` or `StackName` must be specified + as input. + + Args: + input: + An instance of `DescribeEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_EVENTS, [], plugins) + + async def describe_generated_template( + self, input: DescribeGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> DescribeGeneratedTemplateOutput: + """ + Describes a generated template. The output includes details about the + progress of the creation of a generated template started by a + `CreateGeneratedTemplate` API action or the update of a generated + template started with an `UpdateGeneratedTemplate` API action. + + Args: + input: + An instance of `DescribeGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGeneratedTemplateOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_GENERATED_TEMPLATE, [], plugins + ) + + async def describe_organizations_access( + self, + input: DescribeOrganizationsAccessInput, + plugins: list[Plugin] | None = None, + ) -> DescribeOrganizationsAccessOutput: + """ + Retrieves information about the account's `OrganizationAccess` status. + This API can be called either by the management account or the delegated + administrator by using the `CallAs` parameter. This API can also be + called without the `CallAs` parameter by the management account. + + Args: + input: + An instance of `DescribeOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOrganizationsAccessOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ORGANIZATIONS_ACCESS, [], plugins + ) + + async def describe_publisher( + self, input: DescribePublisherInput, plugins: list[Plugin] | None = None + ) -> DescribePublisherOutput: + """ + Returns information about a CloudFormation extension publisher. + + If you don't supply a `PublisherId`, and you have registered as an + extension publisher, `DescribePublisher` returns information about your + own publisher account. + + For more information about registering as a publisher, see: + + - [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html) + + - [Publishing extensions to make them available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) + in the *CloudFormation Command Line Interface (CLI) User Guide* + + Args: + input: + An instance of `DescribePublisherInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePublisherOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_PUBLISHER, [], plugins) + + async def describe_resource_scan( + self, input: DescribeResourceScanInput, plugins: list[Plugin] | None = None + ) -> DescribeResourceScanOutput: + """ + Describes details of a resource scan. + + Args: + input: + An instance of `DescribeResourceScanInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeResourceScanOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_RESOURCE_SCAN, [], plugins) + + async def describe_stack_drift_detection_status( + self, + input: DescribeStackDriftDetectionStatusInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStackDriftDetectionStatusOutput: + """ + Returns information about a stack drift detection operation. A stack + drift detection operation detects whether a stack's actual + configuration differs, or has *drifted*, from its expected + configuration, as defined in the stack template and any values specified + as template parameters. A stack is considered to have drifted if one or + more of its resources have drifted. For more information about stack and + resource drift, see [Detect unmanaged configuration changes to stacks + and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use DetectStackDrift to initiate a stack drift detection operation. + `DetectStackDrift` returns a `StackDriftDetectionId` you can use to + monitor the progress of the operation using + `DescribeStackDriftDetectionStatus`. Once the drift detection operation + has completed, use DescribeStackResourceDrifts to return drift + information about the stack and its resources. + + Args: + input: + An instance of `DescribeStackDriftDetectionStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackDriftDetectionStatusOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_STACK_DRIFT_DETECTION_STATUS, [], plugins + ) + + async def describe_stack_events( + self, input: DescribeStackEventsInput, plugins: list[Plugin] | None = None + ) -> DescribeStackEventsOutput: + """ + Returns all stack related events for a specified stack in reverse + chronological order. For more information about a stack's event + history, see [Understand CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + + Note: + You can list events for stacks that have failed to create or have been + deleted by specifying the unique stack identifier (stack ID). + + Args: + input: + An instance of `DescribeStackEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackEventsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_EVENTS, [], plugins) + + async def describe_stack_instance( + self, input: DescribeStackInstanceInput, plugins: list[Plugin] | None = None + ) -> DescribeStackInstanceOutput: + """ + Returns the stack instance that's associated with the specified + StackSet, Amazon Web Services account, and Amazon Web Services Region. + + For a list of stack instances that are associated with a specific + StackSet, use ListStackInstances. + + Args: + input: + An instance of `DescribeStackInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackInstanceOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_INSTANCE, [], plugins) + + async def describe_stack_refactor( + self, input: DescribeStackRefactorInput, plugins: list[Plugin] | None = None + ) -> DescribeStackRefactorOutput: + """ + Describes the stack refactor status. + + Args: + input: + An instance of `DescribeStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackRefactorOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_REFACTOR, [], plugins) + + async def describe_stack_resource( + self, input: DescribeStackResourceInput, plugins: list[Plugin] | None = None + ) -> DescribeStackResourceOutput: + """ + Returns a description of the specified resource in the specified stack. + + For deleted stacks, DescribeStackResource returns resource information + for up to 90 days after the stack has been deleted. + + Args: + input: + An instance of `DescribeStackResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourceOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_RESOURCE, [], plugins) + + async def describe_stack_resource_drifts( + self, + input: DescribeStackResourceDriftsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStackResourceDriftsOutput: + """ + Returns drift information for the resources that have been checked for + drift in the specified stack. This includes actual and expected + configuration values for resources where CloudFormation detects + configuration drift. + + For a given stack, there will be one `StackResourceDrift` for each stack + resource that has been checked for drift. Resources that haven't yet + been checked for drift aren't included. Resources that don't currently + support drift detection aren't checked, and so not included. For a list + of resources that support drift detection, see [Resource type support + for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + Use DetectStackResourceDrift to detect drift on individual resources, or + DetectStackDrift to detect drift on all supported resources for a given + stack. + + Args: + input: + An instance of `DescribeStackResourceDriftsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourceDriftsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_STACK_RESOURCE_DRIFTS, [], plugins + ) + + async def describe_stack_resources( + self, input: DescribeStackResourcesInput, plugins: list[Plugin] | None = None + ) -> DescribeStackResourcesOutput: + """ + Returns Amazon Web Services resource descriptions for running and + deleted stacks. If `StackName` is specified, all the associated + resources that are part of the stack are returned. If + `PhysicalResourceId` is specified, the associated resources of the stack + that the resource belongs to are returned. + + Note: + Only the first 100 resources will be returned. If your stack has more + resources than this, you should use `ListStackResources` instead. + + For deleted stacks, `DescribeStackResources` returns resource + information for up to 90 days after the stack has been deleted. + + You must specify either `StackName` or `PhysicalResourceId`, but not + both. In addition, you can specify `LogicalResourceId` to filter the + returned result. For more information about resources, the + `LogicalResourceId` and `PhysicalResourceId`, see the [CloudFormation + User + Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). + + Note: + A `ValidationError` is returned if you specify both `StackName` and + `PhysicalResourceId` in the same request. + + Args: + input: + An instance of `DescribeStackResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourcesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_RESOURCES, [], plugins) + + async def describe_stacks( + self, input: DescribeStacksInput, plugins: list[Plugin] | None = None + ) -> DescribeStacksOutput: + """ + Returns the description for the specified stack; if no stack name was + specified, then it returns the description for all the stacks created. + For more information about a stack's event history, see [Understand + CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + + Note: + If the stack doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `DescribeStacksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStacksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACKS, [], plugins) + + async def describe_stack_set( + self, input: DescribeStackSetInput, plugins: list[Plugin] | None = None + ) -> DescribeStackSetOutput: + """ + Returns the description of the specified StackSet. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + Args: + input: + An instance of `DescribeStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackSetOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STACK_SET, [], plugins) + + async def describe_stack_set_operation( + self, input: DescribeStackSetOperationInput, plugins: list[Plugin] | None = None + ) -> DescribeStackSetOperationOutput: + """ + Returns the description of the specified StackSet operation. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + Args: + input: + An instance of `DescribeStackSetOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackSetOperationOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_STACK_SET_OPERATION, [], plugins + ) + + async def describe_type( + self, input: DescribeTypeInput, plugins: list[Plugin] | None = None + ) -> DescribeTypeOutput: + """ + Returns detailed information about an extension from the CloudFormation + registry in your current account and Region. + + If you specify a `VersionId`, `DescribeType` returns information about + that specific extension version. Otherwise, it returns information about + the default extension version. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTypeOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TYPE, [], plugins) + + async def describe_type_registration( + self, input: DescribeTypeRegistrationInput, plugins: list[Plugin] | None = None + ) -> DescribeTypeRegistrationOutput: + """ + Returns information about an extension's registration, including its + current status and type and version identifiers. + + When you initiate a registration request using RegisterType, you can + then use DescribeTypeRegistration to monitor the progress of that + registration request. + + Once the registration request has completed, use DescribeType to return + detailed information about an extension. + + Args: + input: + An instance of `DescribeTypeRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTypeRegistrationOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TYPE_REGISTRATION, [], plugins + ) + + async def detect_stack_drift( + self, input: DetectStackDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackDriftOutput: + """ + Detects whether a stack's actual configuration differs, or has + *drifted*, from its expected configuration, as defined in the stack + template and any values specified as template parameters. For each + resource in the stack that supports drift detection, CloudFormation + compares the actual configuration of the resource with its expected + template configuration. Only resource properties explicitly defined in + the stack template are checked for drift. A stack is considered to have + drifted if one or more of its resources differ from their expected + template configurations. For more information, see [Detect unmanaged + configuration changes to stacks and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use `DetectStackDrift` to detect drift on all supported resources for a + given stack, or DetectStackResourceDrift to detect drift on individual + resources. + + For a list of stack resources that currently support drift detection, + see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + `DetectStackDrift` can take up to several minutes, depending on the + number of resources contained within the stack. Use + DescribeStackDriftDetectionStatus to monitor the progress of a detect + stack drift operation. Once the drift detection operation has completed, + use DescribeStackResourceDrifts to return drift information about the + stack and its resources. + + When detecting drift on a stack, CloudFormation doesn't detect drift on + any nested stacks belonging to that stack. Perform `DetectStackDrift` + directly on the nested stack itself. + + Args: + input: + An instance of `DetectStackDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackDriftOutput`. + """ + return await self._invoke(input, _models.DETECT_STACK_DRIFT, [], plugins) + + async def detect_stack_resource_drift( + self, input: DetectStackResourceDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackResourceDriftOutput: + """ + Returns information about whether a resource's actual configuration + differs, or has *drifted*, from its expected configuration, as defined + in the stack template and any values specified as template parameters. + This information includes actual and expected property values for + resources in which CloudFormation detects drift. Only resource + properties explicitly defined in the stack template are checked for + drift. For more information about stack and resource drift, see [Detect + unmanaged configuration changes to stacks and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use `DetectStackResourceDrift` to detect drift on individual resources, + or DetectStackDrift to detect drift on all resources in a given stack + that support drift detection. + + Resources that don't currently support drift detection can't be + checked. For a list of resources that support drift detection, see + [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + Args: + input: + An instance of `DetectStackResourceDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackResourceDriftOutput`. + """ + return await self._invoke( + input, _models.DETECT_STACK_RESOURCE_DRIFT, [], plugins + ) + + async def detect_stack_set_drift( + self, input: DetectStackSetDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackSetDriftOutput: + """ + Detect drift on a StackSet. When CloudFormation performs drift detection + on a StackSet, it performs drift detection on the stack associated with + each stack instance in the StackSet. For more information, see + [Performing drift detection on CloudFormation + StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html). + + `DetectStackSetDrift` returns the `OperationId` of the StackSet drift + detection operation. Use this operation id with + DescribeStackSetOperation to monitor the progress of the drift detection + operation. The drift detection operation may take some time, depending + on the number of stack instances included in the StackSet, in addition + to the number of resources included in each stack. + + Once the operation has completed, use the following actions to return + drift information: + + - Use DescribeStackSet to return detailed information about the stack + set, including detailed information about the last *completed* drift + operation performed on the StackSet. (Information about drift + operations that are in progress isn't included.) + + - Use ListStackInstances to return a list of stack instances belonging + to the StackSet, including the drift status and last drift time + checked of each instance. + + - Use DescribeStackInstance to return detailed information about a + specific stack instance, including its drift status and last drift + time checked. + + You can only run a single drift detection operation on a given StackSet + at one time. + + To stop a drift detection StackSet operation, use StopStackSetOperation. + + Args: + input: + An instance of `DetectStackSetDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackSetDriftOutput`. + """ + return await self._invoke(input, _models.DETECT_STACK_SET_DRIFT, [], plugins) + + async def estimate_template_cost( + self, input: EstimateTemplateCostInput, plugins: list[Plugin] | None = None + ) -> EstimateTemplateCostOutput: + """ + Returns the estimated monthly cost of a template. The return value is an + Amazon Web Services Simple Monthly Calculator URL with a query string + that describes the resources required to run the template. + + Args: + input: + An instance of `EstimateTemplateCostInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EstimateTemplateCostOutput`. + """ + return await self._invoke(input, _models.ESTIMATE_TEMPLATE_COST, [], plugins) + + async def execute_change_set( + self, input: ExecuteChangeSetInput, plugins: list[Plugin] | None = None + ) -> ExecuteChangeSetOutput: + """ + Updates a stack using the input information that was provided when the + specified change set was created. After the call successfully completes, + CloudFormation starts updating the stack. Use the DescribeStacks action + to view the status of the update. + + When you execute a change set, CloudFormation deletes all other change + sets associated with the stack because they aren't valid for the + updated stack. + + If a stack policy is associated with the stack, CloudFormation enforces + the policy during the update. You can't specify a temporary stack + policy that overrides the current policy. + + To create a change set for the entire stack hierarchy, + `IncludeNestedStacks` must have been set to `True`. + + Args: + input: + An instance of `ExecuteChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteChangeSetOutput`. + """ + return await self._invoke(input, _models.EXECUTE_CHANGE_SET, [], plugins) + + async def execute_stack_refactor( + self, input: ExecuteStackRefactorInput, plugins: list[Plugin] | None = None + ) -> ExecuteStackRefactorOutput: + """ + Executes the stack refactor operation. + + Args: + input: + An instance of `ExecuteStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteStackRefactorOutput`. + """ + return await self._invoke(input, _models.EXECUTE_STACK_REFACTOR, [], plugins) + + async def get_generated_template( + self, input: GetGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> GetGeneratedTemplateOutput: + """ + Retrieves a generated template. If the template is in an `InProgress` or + `Pending` status then the template returned will be the template when + the template was last in a `Complete` status. If the template has not + yet been in a `Complete` status then an empty template will be returned. + + Args: + input: + An instance of `GetGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGeneratedTemplateOutput`. + """ + return await self._invoke(input, _models.GET_GENERATED_TEMPLATE, [], plugins) + + async def get_hook_result( + self, input: GetHookResultInput, plugins: list[Plugin] | None = None + ) -> GetHookResultOutput: + """ + Retrieves detailed information and remediation guidance for a Hook + invocation result. + + If the Hook uses a KMS key to encrypt annotations, callers of the + `GetHookResult` operation must have `kms:Decrypt` permissions. For more + information, see [KMS key policy and permissions for encrypting + CloudFormation Hooks results at + rest](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-kms-key-policy.html) + in the *CloudFormation Hooks User Guide*. + + Args: + input: + An instance of `GetHookResultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHookResultOutput`. + """ + return await self._invoke(input, _models.GET_HOOK_RESULT, [], plugins) + + async def get_stack_policy( + self, input: GetStackPolicyInput, plugins: list[Plugin] | None = None + ) -> GetStackPolicyOutput: + """ + Returns the stack policy for a specified stack. If a stack doesn't have + a policy, a null value is returned. + + Args: + input: + An instance of `GetStackPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStackPolicyOutput`. + """ + return await self._invoke(input, _models.GET_STACK_POLICY, [], plugins) + + async def get_template( + self, input: GetTemplateInput, plugins: list[Plugin] | None = None + ) -> GetTemplateOutput: + """ + Returns the template body for a specified stack. You can get the + template for running or deleted stacks. + + For deleted stacks, `GetTemplate` returns the template for up to 90 days + after the stack has been deleted. + + Note: + If the template doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `GetTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTemplateOutput`. + """ + return await self._invoke(input, _models.GET_TEMPLATE, [], plugins) + + async def get_template_summary( + self, input: GetTemplateSummaryInput, plugins: list[Plugin] | None = None + ) -> GetTemplateSummaryOutput: + """ + Returns information about a new or existing template. The + `GetTemplateSummary` action is useful for viewing parameter information, + such as default parameter values and parameter types, before you create + or update a stack or StackSet. + + You can use the `GetTemplateSummary` action when you submit a template, + or you can get template information for a StackSet, or a running or + deleted stack. + + For deleted stacks, `GetTemplateSummary` returns the template + information for up to 90 days after the stack has been deleted. If the + template doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `GetTemplateSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTemplateSummaryOutput`. + """ + return await self._invoke(input, _models.GET_TEMPLATE_SUMMARY, [], plugins) + + async def import_stacks_to_stack_set( + self, input: ImportStacksToStackSetInput, plugins: list[Plugin] | None = None + ) -> ImportStacksToStackSetOutput: + """ + Import existing stacks into a new StackSets. Use the stack import + operation to import up to 10 stacks into a new StackSet in the same + account as the source stack or in a different administrator account and + Region, by specifying the stack ID of the stack you intend to import. + + Args: + input: + An instance of `ImportStacksToStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportStacksToStackSetOutput`. + """ + return await self._invoke( + input, _models.IMPORT_STACKS_TO_STACK_SET, [], plugins + ) + + async def list_change_sets( + self, input: ListChangeSetsInput, plugins: list[Plugin] | None = None + ) -> ListChangeSetsOutput: + """ + Returns the ID and status of each active change set for a stack. For + example, CloudFormation lists change sets that are in the + `CREATE_IN_PROGRESS` or `CREATE_PENDING` state. + + Args: + input: + An instance of `ListChangeSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListChangeSetsOutput`. + """ + return await self._invoke(input, _models.LIST_CHANGE_SETS, [], plugins) + + async def list_exports( + self, input: ListExportsInput, plugins: list[Plugin] | None = None + ) -> ListExportsOutput: + """ + Lists all exported output values in the account and Region in which you + call this action. Use this action to see the exported output values that + you can import into other stacks. To import values, use the + [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) + function. + + For more information, see [Get exported outputs from a deployed + CloudFormation + stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html). + + Args: + input: + An instance of `ListExportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListExportsOutput`. + """ + return await self._invoke(input, _models.LIST_EXPORTS, [], plugins) + + async def list_generated_templates( + self, input: ListGeneratedTemplatesInput, plugins: list[Plugin] | None = None + ) -> ListGeneratedTemplatesOutput: + """ + Lists your generated templates in this Region. + + Args: + input: + An instance of `ListGeneratedTemplatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGeneratedTemplatesOutput`. + """ + return await self._invoke(input, _models.LIST_GENERATED_TEMPLATES, [], plugins) + + async def list_hook_results( + self, input: ListHookResultsInput, plugins: list[Plugin] | None = None + ) -> ListHookResultsOutput: + """ + Returns summaries of invoked Hooks. For more information, see [View + invocation summaries for CloudFormation + Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-view-invocations.html) + in the *CloudFormation Hooks User Guide*. + + This operation supports the following parameter combinations: + + - No parameters: Returns all Hook invocation summaries. + + - `TypeArn` only: Returns summaries for a specific Hook. + + - `TypeArn` and `Status`: Returns summaries for a specific Hook filtered + by status. + + - `TargetId` and `TargetType`: Returns summaries for a specific Hook + invocation target. + + Args: + input: + An instance of `ListHookResultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListHookResultsOutput`. + """ + return await self._invoke(input, _models.LIST_HOOK_RESULTS, [], plugins) + + async def list_imports( + self, input: ListImportsInput, plugins: list[Plugin] | None = None + ) -> ListImportsOutput: + """ + Lists all stacks that are importing an exported output value. To modify + or remove an exported output value, first use this action to see which + stacks are using it. To see the exported output values in your account, + see ListExports. + + For more information about importing an exported output value, see the + [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) + function. + + Args: + input: + An instance of `ListImportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListImportsOutput`. + """ + return await self._invoke(input, _models.LIST_IMPORTS, [], plugins) + + async def list_resource_scan_related_resources( + self, + input: ListResourceScanRelatedResourcesInput, + plugins: list[Plugin] | None = None, + ) -> ListResourceScanRelatedResourcesOutput: + """ + Lists the related resources for a list of resources from a resource + scan. The response indicates whether each returned resource is already + managed by CloudFormation. + + Args: + input: + An instance of `ListResourceScanRelatedResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScanRelatedResourcesOutput`. + """ + return await self._invoke( + input, _models.LIST_RESOURCE_SCAN_RELATED_RESOURCES, [], plugins + ) + + async def list_resource_scan_resources( + self, input: ListResourceScanResourcesInput, plugins: list[Plugin] | None = None + ) -> ListResourceScanResourcesOutput: + """ + Lists the resources from a resource scan. The results can be filtered by + resource identifier, resource type prefix, tag key, and tag value. Only + resources that match all specified filters are returned. The response + indicates whether each returned resource is already managed by + CloudFormation. + + Args: + input: + An instance of `ListResourceScanResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScanResourcesOutput`. + """ + return await self._invoke( + input, _models.LIST_RESOURCE_SCAN_RESOURCES, [], plugins + ) + + async def list_resource_scans( + self, input: ListResourceScansInput, plugins: list[Plugin] | None = None + ) -> ListResourceScansOutput: + """ + List the resource scans from newest to oldest. By default it will return + up to 10 resource scans. + + Args: + input: + An instance of `ListResourceScansInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScansOutput`. + """ + return await self._invoke(input, _models.LIST_RESOURCE_SCANS, [], plugins) + + async def list_stack_instance_resource_drifts( + self, + input: ListStackInstanceResourceDriftsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackInstanceResourceDriftsOutput: + """ + Returns drift information for resources in a stack instance. + + Note: + `ListStackInstanceResourceDrifts` returns drift information for the most + recent drift detection operation. If an operation is in progress, it may + only return partial results. + + Args: + input: + An instance of `ListStackInstanceResourceDriftsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackInstanceResourceDriftsOutput`. + """ + return await self._invoke( + input, _models.LIST_STACK_INSTANCE_RESOURCE_DRIFTS, [], plugins + ) + + async def list_stack_instances( + self, input: ListStackInstancesInput, plugins: list[Plugin] | None = None + ) -> ListStackInstancesOutput: + """ + Returns summary information about stack instances that are associated + with the specified StackSet. You can filter for stack instances that are + associated with a specific Amazon Web Services account name or Region, + or that have a specific status. + + Args: + input: + An instance of `ListStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackInstancesOutput`. + """ + return await self._invoke(input, _models.LIST_STACK_INSTANCES, [], plugins) + + async def list_stack_refactor_actions( + self, input: ListStackRefactorActionsInput, plugins: list[Plugin] | None = None + ) -> ListStackRefactorActionsOutput: + """ + Lists the stack refactor actions that will be taken after calling the + ExecuteStackRefactor action. + + Args: + input: + An instance of `ListStackRefactorActionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackRefactorActionsOutput`. + """ + return await self._invoke( + input, _models.LIST_STACK_REFACTOR_ACTIONS, [], plugins + ) + + async def list_stack_refactors( + self, input: ListStackRefactorsInput, plugins: list[Plugin] | None = None + ) -> ListStackRefactorsOutput: + """ + Lists all account stack refactor operations and their statuses. + + Args: + input: + An instance of `ListStackRefactorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackRefactorsOutput`. + """ + return await self._invoke(input, _models.LIST_STACK_REFACTORS, [], plugins) + + async def list_stack_resources( + self, input: ListStackResourcesInput, plugins: list[Plugin] | None = None + ) -> ListStackResourcesOutput: + """ + Returns descriptions of all resources of the specified stack. + + For deleted stacks, ListStackResources returns resource information for + up to 90 days after the stack has been deleted. + + Args: + input: + An instance of `ListStackResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackResourcesOutput`. + """ + return await self._invoke(input, _models.LIST_STACK_RESOURCES, [], plugins) + + async def list_stacks( + self, input: ListStacksInput, plugins: list[Plugin] | None = None + ) -> ListStacksOutput: + """ + Returns the summary information for stacks whose status matches the + specified `StackStatusFilter`. Summary information for stacks that have + been deleted is kept for 90 days after the stack is deleted. If no + `StackStatusFilter` is specified, summary information for all stacks is + returned (including existing stacks and stacks that have been deleted). + + Args: + input: + An instance of `ListStacksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStacksOutput`. + """ + return await self._invoke(input, _models.LIST_STACKS, [], plugins) + + async def list_stack_set_auto_deployment_targets( + self, + input: ListStackSetAutoDeploymentTargetsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackSetAutoDeploymentTargetsOutput: + """ + Returns summary information about deployment targets for a StackSet. + + Args: + input: + An instance of `ListStackSetAutoDeploymentTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetAutoDeploymentTargetsOutput`. + """ + return await self._invoke( + input, _models.LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS, [], plugins + ) + + async def list_stack_set_operation_results( + self, + input: ListStackSetOperationResultsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackSetOperationResultsOutput: + """ + Returns summary information about the results of a StackSet operation. + + Note: + This API provides *eventually consistent* reads meaning it may take some + time but will eventually return the most up-to-date data. + + Args: + input: + An instance of `ListStackSetOperationResultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetOperationResultsOutput`. + """ + return await self._invoke( + input, _models.LIST_STACK_SET_OPERATION_RESULTS, [], plugins + ) + + async def list_stack_set_operations( + self, input: ListStackSetOperationsInput, plugins: list[Plugin] | None = None + ) -> ListStackSetOperationsOutput: + """ + Returns summary information about operations performed on a StackSet. + + Note: + This API provides *eventually consistent* reads meaning it may take some + time but will eventually return the most up-to-date data. + + Args: + input: + An instance of `ListStackSetOperationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetOperationsOutput`. + """ + return await self._invoke(input, _models.LIST_STACK_SET_OPERATIONS, [], plugins) + + async def list_stack_sets( + self, input: ListStackSetsInput, plugins: list[Plugin] | None = None + ) -> ListStackSetsOutput: + """ + Returns summary information about StackSets that are associated with the + user. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + - [Self-managed permissions] If you set the `CallAs` parameter to + `SELF` while signed in to your Amazon Web Services account, + `ListStackSets` returns all self-managed StackSets in your Amazon Web + Services account. + + - [Service-managed permissions] If you set the `CallAs` parameter to + `SELF` while signed in to the organization's management account, + `ListStackSets` returns all StackSets in the management account. + + - [Service-managed permissions] If you set the `CallAs` parameter to + `DELEGATED_ADMIN` while signed in to your member account, + `ListStackSets` returns all StackSets with service-managed permissions + in the management account. + + Args: + input: + An instance of `ListStackSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetsOutput`. + """ + return await self._invoke(input, _models.LIST_STACK_SETS, [], plugins) + + async def list_type_registrations( + self, input: ListTypeRegistrationsInput, plugins: list[Plugin] | None = None + ) -> ListTypeRegistrationsOutput: + """ + Returns a list of registration tokens for the specified extension(s). + + Args: + input: + An instance of `ListTypeRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypeRegistrationsOutput`. + """ + return await self._invoke(input, _models.LIST_TYPE_REGISTRATIONS, [], plugins) + + async def list_types( + self, input: ListTypesInput, plugins: list[Plugin] | None = None + ) -> ListTypesOutput: + """ + Returns summary information about all extensions, including your private + resource types, modules, and Hooks as well as all public extensions from + Amazon Web Services and third-party publishers. + + Args: + input: + An instance of `ListTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypesOutput`. + """ + return await self._invoke(input, _models.LIST_TYPES, [], plugins) + + async def list_type_versions( + self, input: ListTypeVersionsInput, plugins: list[Plugin] | None = None + ) -> ListTypeVersionsOutput: + """ + Returns summary information about the versions of an extension. + + Args: + input: + An instance of `ListTypeVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypeVersionsOutput`. + """ + return await self._invoke(input, _models.LIST_TYPE_VERSIONS, [], plugins) + + async def publish_type( + self, input: PublishTypeInput, plugins: list[Plugin] | None = None + ) -> PublishTypeOutput: + """ + Publishes the specified extension to the CloudFormation registry as a + public extension in this Region. Public extensions are available for use + by all CloudFormation users. For more information about publishing + extensions, see [Publishing extensions to make them available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + To publish an extension, you must be registered as a publisher with + CloudFormation. For more information, see + [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html). + + Args: + input: + An instance of `PublishTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishTypeOutput`. + """ + return await self._invoke(input, _models.PUBLISH_TYPE, [], plugins) + + async def record_handler_progress( + self, input: RecordHandlerProgressInput, plugins: list[Plugin] | None = None + ) -> RecordHandlerProgressOutput: + """ + Reports progress of a resource handler to CloudFormation. + + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + Don't use this API in your code. + + Args: + input: + An instance of `RecordHandlerProgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RecordHandlerProgressOutput`. + """ + return await self._invoke(input, _models.RECORD_HANDLER_PROGRESS, [], plugins) + + async def register_publisher( + self, input: RegisterPublisherInput, plugins: list[Plugin] | None = None + ) -> RegisterPublisherOutput: + """ + Registers your account as a publisher of public extensions in the + CloudFormation registry. Public extensions are available for use by all + CloudFormation users. This publisher ID applies to your account in all + Amazon Web Services Regions. + + For information about requirements for registering as a public extension + publisher, see [Prerequisite: Registering your account to publish + CloudFormation + extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + Args: + input: + An instance of `RegisterPublisherInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterPublisherOutput`. + """ + return await self._invoke(input, _models.REGISTER_PUBLISHER, [], plugins) + + async def register_type( + self, input: RegisterTypeInput, plugins: list[Plugin] | None = None + ) -> RegisterTypeOutput: + """ + Registers an extension with the CloudFormation service. Registering an + extension makes it available for use in CloudFormation templates in your + Amazon Web Services account, and includes: + + - Validating the extension schema. + + - Determining which handlers, if any, have been specified for the + extension. + + - Making the extension available for use in your account. + + For more information about how to develop extensions and ready them for + registration, see [Creating resource types using the CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + You can have a maximum of 50 resource extension versions registered at a + time. This maximum is per account and per Region. Use + [DeregisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html) + to deregister specific extension versions if necessary. + + Once you have initiated a registration request using RegisterType, you + can use DescribeTypeRegistration to monitor the progress of the + registration request. + + Once you have registered a private extension in your account and Region, + use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) + to specify configuration properties for the extension. For more + information, see [Edit configuration data for extensions in your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `RegisterTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTypeOutput`. + """ + return await self._invoke(input, _models.REGISTER_TYPE, [], plugins) + + async def rollback_stack( + self, input: RollbackStackInput, plugins: list[Plugin] | None = None + ) -> RollbackStackOutput: + """ + When specifying `RollbackStack`, you preserve the state of previously + provisioned resources when an operation fails. You can check the status + of the stack through the DescribeStacks operation. + + Rolls back the specified stack to the last known stable state from + `CREATE_FAILED` or `UPDATE_FAILED` stack statuses. + + This operation will delete a stack if it doesn't contain a last known + stable state. A last known stable state includes any status in a + `*_COMPLETE`. This includes the following stack statuses. + + - `CREATE_COMPLETE` + + - `UPDATE_COMPLETE` + + - `UPDATE_ROLLBACK_COMPLETE` + + - `IMPORT_COMPLETE` + + - `IMPORT_ROLLBACK_COMPLETE` + + Args: + input: + An instance of `RollbackStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RollbackStackOutput`. + """ + return await self._invoke(input, _models.ROLLBACK_STACK, [], plugins) + + async def set_stack_policy( + self, input: SetStackPolicyInput, plugins: list[Plugin] | None = None + ) -> SetStackPolicyOutput: + """ + Sets a stack policy for a specified stack. + + Args: + input: + An instance of `SetStackPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetStackPolicyOutput`. + """ + return await self._invoke(input, _models.SET_STACK_POLICY, [], plugins) + + async def set_type_configuration( + self, input: SetTypeConfigurationInput, plugins: list[Plugin] | None = None + ) -> SetTypeConfigurationOutput: + """ + Specifies the configuration data for a CloudFormation extension, such as + a resource or Hook, in the given account and Region. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + To view the current configuration data for an extension, refer to the + `ConfigurationSchema` element of + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + Warning: + It's strongly recommended that you use dynamic references to restrict + sensitive configuration definitions, such as third-party credentials. + For more information, see [Specify values stored in other services using + dynamic + references](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) + in the *CloudFormation User Guide*. + + For more information about setting the configuration data for resource + types, see [Defining the account-level configuration of an + extension](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration) + in the *CloudFormation Command Line Interface (CLI) User Guide*. For + more information about setting the configuration data for Hooks, see the + [CloudFormation Hooks User + Guide](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html). + + Args: + input: + An instance of `SetTypeConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetTypeConfigurationOutput`. + """ + return await self._invoke(input, _models.SET_TYPE_CONFIGURATION, [], plugins) + + async def set_type_default_version( + self, input: SetTypeDefaultVersionInput, plugins: list[Plugin] | None = None + ) -> SetTypeDefaultVersionOutput: + """ + Specify the default version of an extension. The default version of an + extension will be used in CloudFormation operations. + + Args: + input: + An instance of `SetTypeDefaultVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetTypeDefaultVersionOutput`. + """ + return await self._invoke(input, _models.SET_TYPE_DEFAULT_VERSION, [], plugins) + + async def signal_resource( + self, input: SignalResourceInput, plugins: list[Plugin] | None = None + ) -> SignalResourceOutput: + """ + Sends a signal to the specified resource with a success or failure + status. You can use the `SignalResource` operation in conjunction with a + creation policy or update policy. CloudFormation doesn't proceed with a + stack creation or update until resources receive the required number of + signals or the timeout period is exceeded. The `SignalResource` + operation is useful in cases where you want to send signals from + anywhere other than an Amazon EC2 instance. + + Args: + input: + An instance of `SignalResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SignalResourceOutput`. + """ + return await self._invoke(input, _models.SIGNAL_RESOURCE, [], plugins) + + async def start_resource_scan( + self, input: StartResourceScanInput, plugins: list[Plugin] | None = None + ) -> StartResourceScanOutput: + """ + Starts a scan of the resources in this account in this Region. You can + the status of a scan using the `ListResourceScans` API action. + + Args: + input: + An instance of `StartResourceScanInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartResourceScanOutput`. + """ + return await self._invoke(input, _models.START_RESOURCE_SCAN, [], plugins) + + async def stop_stack_set_operation( + self, input: StopStackSetOperationInput, plugins: list[Plugin] | None = None + ) -> StopStackSetOperationOutput: + """ + Stops an in-progress operation on a StackSet and its associated stack + instances. StackSets will cancel all the unstarted stack instance + deployments and wait for those are in-progress to complete. + + Args: + input: + An instance of `StopStackSetOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopStackSetOperationOutput`. + """ + return await self._invoke(input, _models.STOP_STACK_SET_OPERATION, [], plugins) + + async def test_type( + self, input: TestTypeInput, plugins: list[Plugin] | None = None + ) -> TestTypeOutput: + """ + Tests a registered extension to make sure it meets all necessary + requirements for being published in the CloudFormation registry. + + - For resource types, this includes passing all contracts tests defined + for the type. + + - For modules, this includes determining if the module's model meets + all necessary requirements. + + For more information, see [Testing your public extension before + publishing](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + If you don't specify a version, CloudFormation uses the default version + of the extension in your account and Region for testing. + + To perform testing, CloudFormation assumes the execution role specified + when the type was registered. For more information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + Once you've initiated testing on an extension using `TestType`, you can + pass the returned `TypeVersionArn` into + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html) + to monitor the current test status and test status description for the + extension. + + An extension must have a test status of `PASSED` before it can be + published. For more information, see [Publishing extensions to make them + available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + Args: + input: + An instance of `TestTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestTypeOutput`. + """ + return await self._invoke(input, _models.TEST_TYPE, [], plugins) + + async def update_generated_template( + self, input: UpdateGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> UpdateGeneratedTemplateOutput: + """ + Updates a generated template. This can be used to change the name, add + and remove resources, refresh resources, and change the `DeletionPolicy` + and `UpdateReplacePolicy` settings. You can check the status of the + update to the generated template using the `DescribeGeneratedTemplate` + API action. + + Args: + input: + An instance of `UpdateGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGeneratedTemplateOutput`. + """ + return await self._invoke(input, _models.UPDATE_GENERATED_TEMPLATE, [], plugins) + + async def update_stack( + self, input: UpdateStackInput, plugins: list[Plugin] | None = None + ) -> UpdateStackOutput: + """ + Updates a stack as specified in the template. After the call completes + successfully, the stack update starts. You can check the status of the + stack through the DescribeStacks action. + + To get a copy of the template for an existing stack, you can use the + GetTemplate action. + + For more information about updating a stack and monitoring the progress + of the update, see [Managing Amazon Web Services resources as a single + unit with CloudFormation + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `UpdateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackOutput`. + """ + return await self._invoke(input, _models.UPDATE_STACK, [], plugins) + + async def update_stack_instances( + self, input: UpdateStackInstancesInput, plugins: list[Plugin] | None = None + ) -> UpdateStackInstancesOutput: + """ + Updates the parameter values for stack instances for the specified + accounts, within the specified Amazon Web Services Regions. A stack + instance refers to a stack in a specific account and Region. + + You can only update stack instances in Amazon Web Services Regions and + accounts where they already exist; to create additional stack instances, + use + [CreateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html). + + During StackSet updates, any parameters overridden for a stack instance + aren't updated, but retain their overridden value. + + You can only update the parameter *values* that are specified in the + StackSet. To add or delete a parameter itself, use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update the StackSet template. If you add a parameter to a template, + before you can override the parameter value specified in the StackSet + you must first use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update all stack instances with the updated template and parameter + value specified in the StackSet. Once a stack instance has been updated + with the new parameter, you can then override the parameter value using + `UpdateStackInstances`. + + Note: + The maximum number of organizational unit (OUs) supported by a + `UpdateStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `UpdateStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackInstancesOutput`. + """ + return await self._invoke(input, _models.UPDATE_STACK_INSTANCES, [], plugins) + + async def update_stack_set( + self, input: UpdateStackSetInput, plugins: list[Plugin] | None = None + ) -> UpdateStackSetOutput: + """ + Updates the StackSet and associated stack instances in the specified + accounts and Amazon Web Services Regions. + + Even if the StackSet operation created by updating the StackSet fails + (completely or partially, below or above a specified failure tolerance), + the StackSet is updated with your changes. Subsequent + CreateStackInstances calls on the specified StackSet use the updated + StackSet. + + Note: + The maximum number of organizational unit (OUs) supported by a + `UpdateStackSet` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `UpdateStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackSetOutput`. + """ + return await self._invoke(input, _models.UPDATE_STACK_SET, [], plugins) + + async def update_termination_protection( + self, + input: UpdateTerminationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateTerminationProtectionOutput: + """ + Updates termination protection for the specified stack. If a user + attempts to delete a stack with termination protection enabled, the + operation fails and the stack remains unchanged. For more information, + see [Protect a CloudFormation stack from being + deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + in the *CloudFormation User Guide*. + + For [nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + termination protection is set on the root stack and can't be changed + directly on the nested stack. + + Args: + input: + An instance of `UpdateTerminationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTerminationProtectionOutput`. + """ + return await self._invoke( + input, _models.UPDATE_TERMINATION_PROTECTION, [], plugins + ) + + async def validate_template( + self, input: ValidateTemplateInput, plugins: list[Plugin] | None = None + ) -> ValidateTemplateOutput: + """ + Validates a specified template. CloudFormation first checks if the + template is valid JSON. If it isn't, CloudFormation checks if the + template is valid YAML. If both these checks fail, CloudFormation + returns a template validation error. + + Args: + input: + An instance of `ValidateTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ValidateTemplateOutput`. + """ + return await self._invoke(input, _models.VALIDATE_TEMPLATE, [], plugins) + + async def _new_config(self) -> AsyncCloudFormationConfig: + return await AsyncCloudFormationConfig.resolve() + + async def _post_setup(self, config: AsyncCloudFormationConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/config.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/config.py new file mode 100644 index 00000000..5eab63eb --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/config.py @@ -0,0 +1,582 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import CLOUD_FORMATION +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + ActivateTypeInput, + ActivateTypeOutput, + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + CancelUpdateStackInput, + CancelUpdateStackOutput, + ContinueUpdateRollbackInput, + ContinueUpdateRollbackOutput, + CreateChangeSetInput, + CreateChangeSetOutput, + CreateGeneratedTemplateInput, + CreateGeneratedTemplateOutput, + CreateStackInput, + CreateStackInstancesInput, + CreateStackInstancesOutput, + CreateStackOutput, + CreateStackRefactorInput, + CreateStackRefactorOutput, + CreateStackSetInput, + CreateStackSetOutput, + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + DeactivateTypeInput, + DeactivateTypeOutput, + DeleteChangeSetInput, + DeleteChangeSetOutput, + DeleteGeneratedTemplateInput, + DeleteGeneratedTemplateOutput, + DeleteStackInput, + DeleteStackInstancesInput, + DeleteStackInstancesOutput, + DeleteStackOutput, + DeleteStackSetInput, + DeleteStackSetOutput, + DeregisterTypeInput, + DeregisterTypeOutput, + DescribeAccountLimitsInput, + DescribeAccountLimitsOutput, + DescribeChangeSetHooksInput, + DescribeChangeSetHooksOutput, + DescribeChangeSetInput, + DescribeChangeSetOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeGeneratedTemplateInput, + DescribeGeneratedTemplateOutput, + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + DescribePublisherInput, + DescribePublisherOutput, + DescribeResourceScanInput, + DescribeResourceScanOutput, + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + DescribeStackEventsInput, + DescribeStackEventsOutput, + DescribeStackInstanceInput, + DescribeStackInstanceOutput, + DescribeStackRefactorInput, + DescribeStackRefactorOutput, + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + DescribeStackResourceInput, + DescribeStackResourceOutput, + DescribeStackResourcesInput, + DescribeStackResourcesOutput, + DescribeStackSetInput, + DescribeStackSetOperationInput, + DescribeStackSetOperationOutput, + DescribeStackSetOutput, + DescribeStacksInput, + DescribeStacksOutput, + DescribeTypeInput, + DescribeTypeOutput, + DescribeTypeRegistrationInput, + DescribeTypeRegistrationOutput, + DetectStackDriftInput, + DetectStackDriftOutput, + DetectStackResourceDriftInput, + DetectStackResourceDriftOutput, + DetectStackSetDriftInput, + DetectStackSetDriftOutput, + EstimateTemplateCostInput, + EstimateTemplateCostOutput, + ExecuteChangeSetInput, + ExecuteChangeSetOutput, + ExecuteStackRefactorInput, + ExecuteStackRefactorOutput, + GetGeneratedTemplateInput, + GetGeneratedTemplateOutput, + GetHookResultInput, + GetHookResultOutput, + GetStackPolicyInput, + GetStackPolicyOutput, + GetTemplateInput, + GetTemplateOutput, + GetTemplateSummaryInput, + GetTemplateSummaryOutput, + ImportStacksToStackSetInput, + ImportStacksToStackSetOutput, + ListChangeSetsInput, + ListChangeSetsOutput, + ListExportsInput, + ListExportsOutput, + ListGeneratedTemplatesInput, + ListGeneratedTemplatesOutput, + ListHookResultsInput, + ListHookResultsOutput, + ListImportsInput, + ListImportsOutput, + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + ListResourceScanResourcesInput, + ListResourceScanResourcesOutput, + ListResourceScansInput, + ListResourceScansOutput, + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + ListStackInstancesInput, + ListStackInstancesOutput, + ListStackRefactorActionsInput, + ListStackRefactorActionsOutput, + ListStackRefactorsInput, + ListStackRefactorsOutput, + ListStackResourcesInput, + ListStackResourcesOutput, + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + ListStackSetOperationsInput, + ListStackSetOperationsOutput, + ListStackSetsInput, + ListStackSetsOutput, + ListStacksInput, + ListStacksOutput, + ListTypeRegistrationsInput, + ListTypeRegistrationsOutput, + ListTypeVersionsInput, + ListTypeVersionsOutput, + ListTypesInput, + ListTypesOutput, + PublishTypeInput, + PublishTypeOutput, + RecordHandlerProgressInput, + RecordHandlerProgressOutput, + RegisterPublisherInput, + RegisterPublisherOutput, + RegisterTypeInput, + RegisterTypeOutput, + RollbackStackInput, + RollbackStackOutput, + SetStackPolicyInput, + SetStackPolicyOutput, + SetTypeConfigurationInput, + SetTypeConfigurationOutput, + SetTypeDefaultVersionInput, + SetTypeDefaultVersionOutput, + SignalResourceInput, + SignalResourceOutput, + StartResourceScanInput, + StartResourceScanOutput, + StopStackSetOperationInput, + StopStackSetOperationOutput, + TestTypeInput, + TestTypeOutput, + UpdateGeneratedTemplateInput, + UpdateGeneratedTemplateOutput, + UpdateStackInput, + UpdateStackInstancesInput, + UpdateStackInstancesOutput, + UpdateStackOutput, + UpdateStackSetInput, + UpdateStackSetOutput, + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + ValidateTemplateInput, + ValidateTemplateOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[ActivateTypeInput, ActivateTypeOutput, Any, Any], + Interceptor[ + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + Any, + Any, + ], + Interceptor[CancelUpdateStackInput, CancelUpdateStackOutput, Any, Any], + Interceptor[ + ContinueUpdateRollbackInput, ContinueUpdateRollbackOutput, Any, Any + ], + Interceptor[CreateChangeSetInput, CreateChangeSetOutput, Any, Any], + Interceptor[ + CreateGeneratedTemplateInput, CreateGeneratedTemplateOutput, Any, Any + ], + Interceptor[CreateStackInput, CreateStackOutput, Any, Any], + Interceptor[CreateStackInstancesInput, CreateStackInstancesOutput, Any, Any], + Interceptor[CreateStackRefactorInput, CreateStackRefactorOutput, Any, Any], + Interceptor[CreateStackSetInput, CreateStackSetOutput, Any, Any], + Interceptor[ + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[DeactivateTypeInput, DeactivateTypeOutput, Any, Any], + Interceptor[DeleteChangeSetInput, DeleteChangeSetOutput, Any, Any], + Interceptor[ + DeleteGeneratedTemplateInput, DeleteGeneratedTemplateOutput, Any, Any + ], + Interceptor[DeleteStackInput, DeleteStackOutput, Any, Any], + Interceptor[DeleteStackInstancesInput, DeleteStackInstancesOutput, Any, Any], + Interceptor[DeleteStackSetInput, DeleteStackSetOutput, Any, Any], + Interceptor[DeregisterTypeInput, DeregisterTypeOutput, Any, Any], + Interceptor[DescribeAccountLimitsInput, DescribeAccountLimitsOutput, Any, Any], + Interceptor[DescribeChangeSetInput, DescribeChangeSetOutput, Any, Any], + Interceptor[ + DescribeChangeSetHooksInput, DescribeChangeSetHooksOutput, Any, Any + ], + Interceptor[DescribeEventsInput, DescribeEventsOutput, Any, Any], + Interceptor[ + DescribeGeneratedTemplateInput, DescribeGeneratedTemplateOutput, Any, Any + ], + Interceptor[ + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[DescribePublisherInput, DescribePublisherOutput, Any, Any], + Interceptor[DescribeResourceScanInput, DescribeResourceScanOutput, Any, Any], + Interceptor[ + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + Any, + Any, + ], + Interceptor[DescribeStackEventsInput, DescribeStackEventsOutput, Any, Any], + Interceptor[DescribeStackInstanceInput, DescribeStackInstanceOutput, Any, Any], + Interceptor[DescribeStackRefactorInput, DescribeStackRefactorOutput, Any, Any], + Interceptor[DescribeStackResourceInput, DescribeStackResourceOutput, Any, Any], + Interceptor[ + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + Any, + Any, + ], + Interceptor[ + DescribeStackResourcesInput, DescribeStackResourcesOutput, Any, Any + ], + Interceptor[DescribeStacksInput, DescribeStacksOutput, Any, Any], + Interceptor[DescribeStackSetInput, DescribeStackSetOutput, Any, Any], + Interceptor[ + DescribeStackSetOperationInput, DescribeStackSetOperationOutput, Any, Any + ], + Interceptor[DescribeTypeInput, DescribeTypeOutput, Any, Any], + Interceptor[ + DescribeTypeRegistrationInput, DescribeTypeRegistrationOutput, Any, Any + ], + Interceptor[DetectStackDriftInput, DetectStackDriftOutput, Any, Any], + Interceptor[ + DetectStackResourceDriftInput, DetectStackResourceDriftOutput, Any, Any + ], + Interceptor[DetectStackSetDriftInput, DetectStackSetDriftOutput, Any, Any], + Interceptor[EstimateTemplateCostInput, EstimateTemplateCostOutput, Any, Any], + Interceptor[ExecuteChangeSetInput, ExecuteChangeSetOutput, Any, Any], + Interceptor[ExecuteStackRefactorInput, ExecuteStackRefactorOutput, Any, Any], + Interceptor[GetGeneratedTemplateInput, GetGeneratedTemplateOutput, Any, Any], + Interceptor[GetHookResultInput, GetHookResultOutput, Any, Any], + Interceptor[GetStackPolicyInput, GetStackPolicyOutput, Any, Any], + Interceptor[GetTemplateInput, GetTemplateOutput, Any, Any], + Interceptor[GetTemplateSummaryInput, GetTemplateSummaryOutput, Any, Any], + Interceptor[ + ImportStacksToStackSetInput, ImportStacksToStackSetOutput, Any, Any + ], + Interceptor[ListChangeSetsInput, ListChangeSetsOutput, Any, Any], + Interceptor[ListExportsInput, ListExportsOutput, Any, Any], + Interceptor[ + ListGeneratedTemplatesInput, ListGeneratedTemplatesOutput, Any, Any + ], + Interceptor[ListHookResultsInput, ListHookResultsOutput, Any, Any], + Interceptor[ListImportsInput, ListImportsOutput, Any, Any], + Interceptor[ + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + Any, + Any, + ], + Interceptor[ + ListResourceScanResourcesInput, ListResourceScanResourcesOutput, Any, Any + ], + Interceptor[ListResourceScansInput, ListResourceScansOutput, Any, Any], + Interceptor[ + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + Any, + Any, + ], + Interceptor[ListStackInstancesInput, ListStackInstancesOutput, Any, Any], + Interceptor[ + ListStackRefactorActionsInput, ListStackRefactorActionsOutput, Any, Any + ], + Interceptor[ListStackRefactorsInput, ListStackRefactorsOutput, Any, Any], + Interceptor[ListStackResourcesInput, ListStackResourcesOutput, Any, Any], + Interceptor[ListStacksInput, ListStacksOutput, Any, Any], + Interceptor[ + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + Any, + Any, + ], + Interceptor[ + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + Any, + Any, + ], + Interceptor[ + ListStackSetOperationsInput, ListStackSetOperationsOutput, Any, Any + ], + Interceptor[ListStackSetsInput, ListStackSetsOutput, Any, Any], + Interceptor[ListTypeRegistrationsInput, ListTypeRegistrationsOutput, Any, Any], + Interceptor[ListTypesInput, ListTypesOutput, Any, Any], + Interceptor[ListTypeVersionsInput, ListTypeVersionsOutput, Any, Any], + Interceptor[PublishTypeInput, PublishTypeOutput, Any, Any], + Interceptor[RecordHandlerProgressInput, RecordHandlerProgressOutput, Any, Any], + Interceptor[RegisterPublisherInput, RegisterPublisherOutput, Any, Any], + Interceptor[RegisterTypeInput, RegisterTypeOutput, Any, Any], + Interceptor[RollbackStackInput, RollbackStackOutput, Any, Any], + Interceptor[SetStackPolicyInput, SetStackPolicyOutput, Any, Any], + Interceptor[SetTypeConfigurationInput, SetTypeConfigurationOutput, Any, Any], + Interceptor[SetTypeDefaultVersionInput, SetTypeDefaultVersionOutput, Any, Any], + Interceptor[SignalResourceInput, SignalResourceOutput, Any, Any], + Interceptor[StartResourceScanInput, StartResourceScanOutput, Any, Any], + Interceptor[StopStackSetOperationInput, StopStackSetOperationOutput, Any, Any], + Interceptor[TestTypeInput, TestTypeOutput, Any, Any], + Interceptor[ + UpdateGeneratedTemplateInput, UpdateGeneratedTemplateOutput, Any, Any + ], + Interceptor[UpdateStackInput, UpdateStackOutput, Any, Any], + Interceptor[UpdateStackInstancesInput, UpdateStackInstancesOutput, Any, Any], + Interceptor[UpdateStackSetInput, UpdateStackSetOutput, Any, Any], + Interceptor[ + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + Any, + Any, + ], + Interceptor[ValidateTemplateInput, ValidateTemplateOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudformation", + service_target="CloudFormation", + version="2010-05-15", + service_schema=CLOUD_FORMATION, +) + + +class _AsyncCloudFormationConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncCloudFormationConfig(AsyncAwsConfig): + """CloudFormation configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("cloudformation").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme( + service="cloudformation" + ) + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncCloudFormationConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncCloudFormationConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/user_agent.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/user_agent.py new file mode 100644 index 00000000..8268cb43 --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncCloudFormationConfig + + +def aws_user_agent_plugin(config: AsyncCloudFormationConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFormation", + ) + ) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/auth.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/client.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/client.py new file mode 100644 index 00000000..f1484912 --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/client.py @@ -0,0 +1,2898 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import CloudFormationConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + ActivateTypeInput, + ActivateTypeOutput, + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + CancelUpdateStackInput, + CancelUpdateStackOutput, + ContinueUpdateRollbackInput, + ContinueUpdateRollbackOutput, + CreateChangeSetInput, + CreateChangeSetOutput, + CreateGeneratedTemplateInput, + CreateGeneratedTemplateOutput, + CreateStackInput, + CreateStackInstancesInput, + CreateStackInstancesOutput, + CreateStackOutput, + CreateStackRefactorInput, + CreateStackRefactorOutput, + CreateStackSetInput, + CreateStackSetOutput, + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + DeactivateTypeInput, + DeactivateTypeOutput, + DeleteChangeSetInput, + DeleteChangeSetOutput, + DeleteGeneratedTemplateInput, + DeleteGeneratedTemplateOutput, + DeleteStackInput, + DeleteStackInstancesInput, + DeleteStackInstancesOutput, + DeleteStackOutput, + DeleteStackSetInput, + DeleteStackSetOutput, + DeregisterTypeInput, + DeregisterTypeOutput, + DescribeAccountLimitsInput, + DescribeAccountLimitsOutput, + DescribeChangeSetHooksInput, + DescribeChangeSetHooksOutput, + DescribeChangeSetInput, + DescribeChangeSetOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeGeneratedTemplateInput, + DescribeGeneratedTemplateOutput, + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + DescribePublisherInput, + DescribePublisherOutput, + DescribeResourceScanInput, + DescribeResourceScanOutput, + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + DescribeStackEventsInput, + DescribeStackEventsOutput, + DescribeStackInstanceInput, + DescribeStackInstanceOutput, + DescribeStackRefactorInput, + DescribeStackRefactorOutput, + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + DescribeStackResourceInput, + DescribeStackResourceOutput, + DescribeStackResourcesInput, + DescribeStackResourcesOutput, + DescribeStackSetInput, + DescribeStackSetOperationInput, + DescribeStackSetOperationOutput, + DescribeStackSetOutput, + DescribeStacksInput, + DescribeStacksOutput, + DescribeTypeInput, + DescribeTypeOutput, + DescribeTypeRegistrationInput, + DescribeTypeRegistrationOutput, + DetectStackDriftInput, + DetectStackDriftOutput, + DetectStackResourceDriftInput, + DetectStackResourceDriftOutput, + DetectStackSetDriftInput, + DetectStackSetDriftOutput, + EstimateTemplateCostInput, + EstimateTemplateCostOutput, + ExecuteChangeSetInput, + ExecuteChangeSetOutput, + ExecuteStackRefactorInput, + ExecuteStackRefactorOutput, + GetGeneratedTemplateInput, + GetGeneratedTemplateOutput, + GetHookResultInput, + GetHookResultOutput, + GetStackPolicyInput, + GetStackPolicyOutput, + GetTemplateInput, + GetTemplateOutput, + GetTemplateSummaryInput, + GetTemplateSummaryOutput, + ImportStacksToStackSetInput, + ImportStacksToStackSetOutput, + ListChangeSetsInput, + ListChangeSetsOutput, + ListExportsInput, + ListExportsOutput, + ListGeneratedTemplatesInput, + ListGeneratedTemplatesOutput, + ListHookResultsInput, + ListHookResultsOutput, + ListImportsInput, + ListImportsOutput, + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + ListResourceScanResourcesInput, + ListResourceScanResourcesOutput, + ListResourceScansInput, + ListResourceScansOutput, + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + ListStackInstancesInput, + ListStackInstancesOutput, + ListStackRefactorActionsInput, + ListStackRefactorActionsOutput, + ListStackRefactorsInput, + ListStackRefactorsOutput, + ListStackResourcesInput, + ListStackResourcesOutput, + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + ListStackSetOperationsInput, + ListStackSetOperationsOutput, + ListStackSetsInput, + ListStackSetsOutput, + ListStacksInput, + ListStacksOutput, + ListTypeRegistrationsInput, + ListTypeRegistrationsOutput, + ListTypeVersionsInput, + ListTypeVersionsOutput, + ListTypesInput, + ListTypesOutput, + PublishTypeInput, + PublishTypeOutput, + RecordHandlerProgressInput, + RecordHandlerProgressOutput, + RegisterPublisherInput, + RegisterPublisherOutput, + RegisterTypeInput, + RegisterTypeOutput, + RollbackStackInput, + RollbackStackOutput, + SetStackPolicyInput, + SetStackPolicyOutput, + SetTypeConfigurationInput, + SetTypeConfigurationOutput, + SetTypeDefaultVersionInput, + SetTypeDefaultVersionOutput, + SignalResourceInput, + SignalResourceOutput, + StartResourceScanInput, + StartResourceScanOutput, + StopStackSetOperationInput, + StopStackSetOperationOutput, + TestTypeInput, + TestTypeOutput, + UpdateGeneratedTemplateInput, + UpdateGeneratedTemplateOutput, + UpdateStackInput, + UpdateStackInstancesInput, + UpdateStackInstancesOutput, + UpdateStackOutput, + UpdateStackSetInput, + UpdateStackSetOutput, + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + ValidateTemplateInput, + ValidateTemplateOutput, + ) + + +logger = logging.getLogger(__name__) + + +class CloudFormationClient(Client[CloudFormationConfig]): + """ + CloudFormation allows you to create and manage Amazon Web Services + infrastructure deployments predictably and repeatedly. You can use + CloudFormation to leverage Amazon Web Services products, such as Amazon + Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple + Notification Service, Elastic Load Balancing, and Amazon EC2 Auto + Scaling to build highly reliable, highly scalable, cost-effective + applications without creating or configuring the underlying Amazon Web + Services infrastructure. + + With CloudFormation, you declare all your resources and dependencies in + a template file. The template defines a collection of resources as a + single unit called a stack. CloudFormation creates and deletes all + member resources of the stack together and manages all dependencies + between the resources for you. + + For more information about CloudFormation, see the [CloudFormation + product page](http://aws.amazon.com/cloudformation/). + + CloudFormation makes use of other Amazon Web Services products. If you + need additional technical information about a specific Amazon Web + Services product, you can find the product's technical documentation at + [docs.aws.amazon.com](https://docs.aws.amazon.com/). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def activate_organizations_access( + self, + input: ActivateOrganizationsAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ActivateOrganizationsAccessOutput: + """ + Activate trusted access with Organizations. With trusted access between + StackSets and Organizations activated, the management account has + permissions to create and manage StackSets for your organization. + + Args: + input: + An instance of `ActivateOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ActivateOrganizationsAccessOutput`. + """ + return self._invoke(input, _models.ACTIVATE_ORGANIZATIONS_ACCESS, [], plugins) + + def activate_type( + self, + input: ActivateTypeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ActivateTypeOutput: + """ + Activates a public third-party extension, such as a resource or module, + to make it available for use in stack templates in your current account + and Region. It can also create CloudFormation Hooks, which allow you to + evaluate resource configurations before CloudFormation provisions them. + Hooks integrate with both CloudFormation and Cloud Control API + operations. + + After you activate an extension, you can use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) + to set specific properties for the extension. + + To see which extensions have been activated, use + [ListTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html). + To see configuration details for an extension, use + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + For more information, see [Activate a third-party public extension in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public-activate-extension.html) + in the *CloudFormation User Guide*. For information about creating + Hooks, see the [CloudFormation Hooks User + Guide](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html). + + Args: + input: + An instance of `ActivateTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ActivateTypeOutput`. + """ + return self._invoke(input, _models.ACTIVATE_TYPE, [], plugins) + + def batch_describe_type_configurations( + self, + input: BatchDescribeTypeConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> BatchDescribeTypeConfigurationsOutput: + """ + Returns configuration data for the specified CloudFormation extensions, + from the CloudFormation registry in your current account and Region. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `BatchDescribeTypeConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BatchDescribeTypeConfigurationsOutput`. + """ + return self._invoke( + input, _models.BATCH_DESCRIBE_TYPE_CONFIGURATIONS, [], plugins + ) + + def cancel_update_stack( + self, input: CancelUpdateStackInput, plugins: list[Plugin] | None = None + ) -> CancelUpdateStackOutput: + """ + Cancels an update on the specified stack. If the call completes + successfully, the stack rolls back the update and reverts to the + previous stack configuration. + + Note: + You can cancel only stacks that are in the `UPDATE_IN_PROGRESS` state. + + Args: + input: + An instance of `CancelUpdateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelUpdateStackOutput`. + """ + return self._invoke(input, _models.CANCEL_UPDATE_STACK, [], plugins) + + def continue_update_rollback( + self, input: ContinueUpdateRollbackInput, plugins: list[Plugin] | None = None + ) -> ContinueUpdateRollbackOutput: + """ + Continues rolling back a stack from `UPDATE_ROLLBACK_FAILED` to + `UPDATE_ROLLBACK_COMPLETE` state. Depending on the cause of the failure, + you can manually fix the error and continue the rollback. By continuing + the rollback, you can return your stack to a working state (the + `UPDATE_ROLLBACK_COMPLETE` state) and then try to update the stack + again. + + A stack enters the `UPDATE_ROLLBACK_FAILED` state when CloudFormation + can't roll back all changes after a failed stack update. For example, + this might occur when a stack attempts to roll back to an old database + that was deleted outside of CloudFormation. Because CloudFormation + doesn't know the instance was deleted, it assumes the instance still + exists and attempts to roll back to it, causing the update rollback to + fail. + + For more information, see [Continue rolling back an + update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) + in the *CloudFormation User Guide*. For information for troubleshooting + a failed update rollback, see [Update rollback + failed](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed). + + `ForceRollback` and `ResourcesToSkip` are mutually exclusive. For + details, see ContinueUpdateRollbackInput$$ForceRollback. + + Args: + input: + An instance of `ContinueUpdateRollbackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ContinueUpdateRollbackOutput`. + """ + return self._invoke(input, _models.CONTINUE_UPDATE_ROLLBACK, [], plugins) + + def create_change_set( + self, input: CreateChangeSetInput, plugins: list[Plugin] | None = None + ) -> CreateChangeSetOutput: + """ + Creates a list of changes that will be applied to a stack so that you + can review the changes before executing them. You can create a change + set for a stack that doesn't exist or an existing stack. If you create + a change set for a stack that doesn't exist, the change set shows all + of the resources that CloudFormation will create. If you create a change + set for an existing stack, CloudFormation compares the stack's + information with the information that you submit in the change set and + lists the differences. Use change sets to understand which resources + CloudFormation will create or change, and how it will change resources + in an existing stack, before you create or update a stack. + + To create a change set for a stack that doesn't exist, for the + `ChangeSetType` parameter, specify `CREATE`. To create a change set for + an existing stack, specify `UPDATE` for the `ChangeSetType` parameter. + To create a change set for an import operation, specify `IMPORT` for the + `ChangeSetType` parameter. After the `CreateChangeSet` call successfully + completes, CloudFormation starts creating the change set. To check the + status of the change set or to review it, use the DescribeChangeSet + action. + + When you are satisfied with the changes the change set will make, + execute the change set by using the ExecuteChangeSet action. + CloudFormation doesn't make changes until you execute the change set. + + To create a change set for the entire stack hierarchy, set + `IncludeNestedStacks` to `True`. + + Args: + input: + An instance of `CreateChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateChangeSetOutput`. + """ + return self._invoke(input, _models.CREATE_CHANGE_SET, [], plugins) + + def create_generated_template( + self, input: CreateGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> CreateGeneratedTemplateOutput: + """ + Creates a template from existing resources that are not already managed + with CloudFormation. You can check the status of the template generation + using the `DescribeGeneratedTemplate` API action. + + Args: + input: + An instance of `CreateGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGeneratedTemplateOutput`. + """ + return self._invoke(input, _models.CREATE_GENERATED_TEMPLATE, [], plugins) + + def create_stack( + self, input: CreateStackInput, plugins: list[Plugin] | None = None + ) -> CreateStackOutput: + """ + Creates a stack as specified in the template. After the call completes + successfully, the stack creation starts. You can check the status of the + stack through the DescribeStacks operation. + + For more information about creating a stack and monitoring stack + progress, see [Managing Amazon Web Services resources as a single unit + with CloudFormation + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `CreateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackOutput`. + """ + return self._invoke(input, _models.CREATE_STACK, [], plugins) + + def create_stack_instances( + self, input: CreateStackInstancesInput, plugins: list[Plugin] | None = None + ) -> CreateStackInstancesOutput: + """ + Creates stack instances for the specified accounts, within the specified + Amazon Web Services Regions. A stack instance refers to a stack in a + specific account and Region. You must specify at least one value for + either `Accounts` or `DeploymentTargets`, and you must specify at least + one value for `Regions`. + + Note: + The maximum number of organizational unit (OUs) supported by a + `CreateStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `CreateStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackInstancesOutput`. + """ + return self._invoke(input, _models.CREATE_STACK_INSTANCES, [], plugins) + + def create_stack_refactor( + self, input: CreateStackRefactorInput, plugins: list[Plugin] | None = None + ) -> CreateStackRefactorOutput: + """ + Creates a refactor across multiple stacks, with the list of stacks and + resources that are affected. + + Args: + input: + An instance of `CreateStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackRefactorOutput`. + """ + return self._invoke(input, _models.CREATE_STACK_REFACTOR, [], plugins) + + def create_stack_set( + self, input: CreateStackSetInput, plugins: list[Plugin] | None = None + ) -> CreateStackSetOutput: + """ + Creates a StackSet. + + Args: + input: + An instance of `CreateStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStackSetOutput`. + """ + return self._invoke(input, _models.CREATE_STACK_SET, [], plugins) + + def deactivate_organizations_access( + self, + input: DeactivateOrganizationsAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeactivateOrganizationsAccessOutput: + """ + Deactivates trusted access with Organizations. If trusted access is + deactivated, the management account does not have permissions to create + and manage service-managed StackSets for your organization. + + Args: + input: + An instance of `DeactivateOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateOrganizationsAccessOutput`. + """ + return self._invoke(input, _models.DEACTIVATE_ORGANIZATIONS_ACCESS, [], plugins) + + def deactivate_type( + self, + input: DeactivateTypeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeactivateTypeOutput: + """ + Deactivates a public third-party extension, such as a resource or + module, or a CloudFormation Hook when you no longer use it. + + Deactivating an extension deletes the configuration details that are + associated with it. To temporarily disable a CloudFormation Hook + instead, you can use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html). + + Once deactivated, an extension can't be used in any CloudFormation + operation. This includes stack update operations where the stack + template includes the extension, even if no updates are being made to + the extension. In addition, deactivated extensions aren't automatically + updated if a new version of the extension is released. + + To see which extensions are currently activated, use + [ListTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html). + + Args: + input: + An instance of `DeactivateTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateTypeOutput`. + """ + return self._invoke(input, _models.DEACTIVATE_TYPE, [], plugins) + + def delete_change_set( + self, input: DeleteChangeSetInput, plugins: list[Plugin] | None = None + ) -> DeleteChangeSetOutput: + """ + Deletes the specified change set. Deleting change sets ensures that no + one executes the wrong change set. + + If the call successfully completes, CloudFormation successfully deleted + the change set. + + If `IncludeNestedStacks` specifies `True` during the creation of the + nested change set, then `DeleteChangeSet` will delete all change sets + that belong to the stacks hierarchy and will also delete all change sets + for nested stacks with the status of `REVIEW_IN_PROGRESS`. + + Args: + input: + An instance of `DeleteChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteChangeSetOutput`. + """ + return self._invoke(input, _models.DELETE_CHANGE_SET, [], plugins) + + def delete_generated_template( + self, input: DeleteGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> DeleteGeneratedTemplateOutput: + """ + Deleted a generated template. + + Args: + input: + An instance of `DeleteGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGeneratedTemplateOutput`. + """ + return self._invoke(input, _models.DELETE_GENERATED_TEMPLATE, [], plugins) + + def delete_stack( + self, input: DeleteStackInput, plugins: list[Plugin] | None = None + ) -> DeleteStackOutput: + """ + Deletes a specified stack. Once the call completes successfully, stack + deletion starts. Deleted stacks don't show up in the DescribeStacks + operation if the deletion has been completed successfully. + + For more information about deleting a stack, see [Delete a stack from + the CloudFormation + console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DeleteStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackOutput`. + """ + return self._invoke(input, _models.DELETE_STACK, [], plugins) + + def delete_stack_instances( + self, input: DeleteStackInstancesInput, plugins: list[Plugin] | None = None + ) -> DeleteStackInstancesOutput: + """ + Deletes stack instances for the specified accounts, in the specified + Amazon Web Services Regions. + + Note: + The maximum number of organizational unit (OUs) supported by a + `DeleteStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `DeleteStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackInstancesOutput`. + """ + return self._invoke(input, _models.DELETE_STACK_INSTANCES, [], plugins) + + def delete_stack_set( + self, input: DeleteStackSetInput, plugins: list[Plugin] | None = None + ) -> DeleteStackSetOutput: + """ + Deletes a StackSet. Before you can delete a StackSet, all its member + stack instances must be deleted. For more information about how to + complete this, see DeleteStackInstances. + + Args: + input: + An instance of `DeleteStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStackSetOutput`. + """ + return self._invoke(input, _models.DELETE_STACK_SET, [], plugins) + + def deregister_type( + self, + input: DeregisterTypeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeregisterTypeOutput: + """ + Marks an extension or extension version as `DEPRECATED` in the + CloudFormation registry, removing it from active use. Deprecated + extensions or extension versions cannot be used in CloudFormation + operations. + + To deregister an entire extension, you must individually deregister all + active versions of that extension. If an extension has only a single + active version, deregistering that version results in the extension + itself being deregistered and marked as deprecated in the registry. + + You can't deregister the default version of an extension if there are + other active version of that extension. If you do deregister the default + version of an extension, the extension type itself is deregistered as + well and marked as deprecated. + + To view the deprecation status of an extension or extension version, use + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + For more information, see [Remove third-party private extensions from + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private-deregister-extension.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DeregisterTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTypeOutput`. + """ + return self._invoke(input, _models.DEREGISTER_TYPE, [], plugins) + + def describe_account_limits( + self, + input: DescribeAccountLimitsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountLimitsOutput: + """ + Retrieves your account's CloudFormation limits, such as the maximum + number of stacks that you can create in your account. For more + information about account limits, see [Understand CloudFormation + quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeAccountLimitsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountLimitsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACCOUNT_LIMITS, [], plugins) + + def describe_change_set( + self, input: DescribeChangeSetInput, plugins: list[Plugin] | None = None + ) -> DescribeChangeSetOutput: + """ + Returns the inputs for the change set and a list of changes that + CloudFormation will make if you execute the change set. For more + information, see [Update CloudFormation stacks using change + sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChangeSetOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CHANGE_SET, [], plugins) + + def describe_change_set_hooks( + self, input: DescribeChangeSetHooksInput, plugins: list[Plugin] | None = None + ) -> DescribeChangeSetHooksOutput: + """ + Returns Hook-related information for the change set and a list of + changes that CloudFormation makes when you run the change set. + + Args: + input: + An instance of `DescribeChangeSetHooksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChangeSetHooksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CHANGE_SET_HOOKS, [], plugins) + + def describe_events( + self, + input: DescribeEventsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeEventsOutput: + """ + Returns CloudFormation events based on flexible query criteria. Groups + events by operation ID, enabling you to focus on individual stack + operations during deployment. + + An operation is any action performed on a stack, including stack + lifecycle actions (Create, Update, Delete, Rollback), change set + creation, nested stack creation, and automatic rollbacks triggered by + failures. Each operation has a unique identifier (Operation ID) and + represents a discrete change attempt on the stack. + + Returns different types of events including: + + - **Progress events** - Status updates during stack operation execution. + + - **Validation errors** - Failures from CloudFormation Early + Validations. + + - **Provisioning errors** - Resource creation and update failures. + + - **Hook invocation errors** - Failures from CloudFormation Hook during + stack operations. + + Note: + One of `ChangeSetName`, `OperationId` or `StackName` must be specified + as input. + + Args: + input: + An instance of `DescribeEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EVENTS, [], plugins) + + def describe_generated_template( + self, input: DescribeGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> DescribeGeneratedTemplateOutput: + """ + Describes a generated template. The output includes details about the + progress of the creation of a generated template started by a + `CreateGeneratedTemplate` API action or the update of a generated + template started with an `UpdateGeneratedTemplate` API action. + + Args: + input: + An instance of `DescribeGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGeneratedTemplateOutput`. + """ + return self._invoke(input, _models.DESCRIBE_GENERATED_TEMPLATE, [], plugins) + + def describe_organizations_access( + self, + input: DescribeOrganizationsAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeOrganizationsAccessOutput: + """ + Retrieves information about the account's `OrganizationAccess` status. + This API can be called either by the management account or the delegated + administrator by using the `CallAs` parameter. This API can also be + called without the `CallAs` parameter by the management account. + + Args: + input: + An instance of `DescribeOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOrganizationsAccessOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ORGANIZATIONS_ACCESS, [], plugins) + + def describe_publisher( + self, + input: DescribePublisherInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePublisherOutput: + """ + Returns information about a CloudFormation extension publisher. + + If you don't supply a `PublisherId`, and you have registered as an + extension publisher, `DescribePublisher` returns information about your + own publisher account. + + For more information about registering as a publisher, see: + + - [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html) + + - [Publishing extensions to make them available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) + in the *CloudFormation Command Line Interface (CLI) User Guide* + + Args: + input: + An instance of `DescribePublisherInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePublisherOutput`. + """ + return self._invoke(input, _models.DESCRIBE_PUBLISHER, [], plugins) + + def describe_resource_scan( + self, input: DescribeResourceScanInput, plugins: list[Plugin] | None = None + ) -> DescribeResourceScanOutput: + """ + Describes details of a resource scan. + + Args: + input: + An instance of `DescribeResourceScanInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeResourceScanOutput`. + """ + return self._invoke(input, _models.DESCRIBE_RESOURCE_SCAN, [], plugins) + + def describe_stack_drift_detection_status( + self, + input: DescribeStackDriftDetectionStatusInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStackDriftDetectionStatusOutput: + """ + Returns information about a stack drift detection operation. A stack + drift detection operation detects whether a stack's actual + configuration differs, or has *drifted*, from its expected + configuration, as defined in the stack template and any values specified + as template parameters. A stack is considered to have drifted if one or + more of its resources have drifted. For more information about stack and + resource drift, see [Detect unmanaged configuration changes to stacks + and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use DetectStackDrift to initiate a stack drift detection operation. + `DetectStackDrift` returns a `StackDriftDetectionId` you can use to + monitor the progress of the operation using + `DescribeStackDriftDetectionStatus`. Once the drift detection operation + has completed, use DescribeStackResourceDrifts to return drift + information about the stack and its resources. + + Args: + input: + An instance of `DescribeStackDriftDetectionStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackDriftDetectionStatusOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_STACK_DRIFT_DETECTION_STATUS, [], plugins + ) + + def describe_stack_events( + self, input: DescribeStackEventsInput, plugins: list[Plugin] | None = None + ) -> DescribeStackEventsOutput: + """ + Returns all stack related events for a specified stack in reverse + chronological order. For more information about a stack's event + history, see [Understand CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + + Note: + You can list events for stacks that have failed to create or have been + deleted by specifying the unique stack identifier (stack ID). + + Args: + input: + An instance of `DescribeStackEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackEventsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_EVENTS, [], plugins) + + def describe_stack_instance( + self, input: DescribeStackInstanceInput, plugins: list[Plugin] | None = None + ) -> DescribeStackInstanceOutput: + """ + Returns the stack instance that's associated with the specified + StackSet, Amazon Web Services account, and Amazon Web Services Region. + + For a list of stack instances that are associated with a specific + StackSet, use ListStackInstances. + + Args: + input: + An instance of `DescribeStackInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackInstanceOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_INSTANCE, [], plugins) + + def describe_stack_refactor( + self, input: DescribeStackRefactorInput, plugins: list[Plugin] | None = None + ) -> DescribeStackRefactorOutput: + """ + Describes the stack refactor status. + + Args: + input: + An instance of `DescribeStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackRefactorOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_REFACTOR, [], plugins) + + def describe_stack_resource( + self, input: DescribeStackResourceInput, plugins: list[Plugin] | None = None + ) -> DescribeStackResourceOutput: + """ + Returns a description of the specified resource in the specified stack. + + For deleted stacks, DescribeStackResource returns resource information + for up to 90 days after the stack has been deleted. + + Args: + input: + An instance of `DescribeStackResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourceOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_RESOURCE, [], plugins) + + def describe_stack_resource_drifts( + self, + input: DescribeStackResourceDriftsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStackResourceDriftsOutput: + """ + Returns drift information for the resources that have been checked for + drift in the specified stack. This includes actual and expected + configuration values for resources where CloudFormation detects + configuration drift. + + For a given stack, there will be one `StackResourceDrift` for each stack + resource that has been checked for drift. Resources that haven't yet + been checked for drift aren't included. Resources that don't currently + support drift detection aren't checked, and so not included. For a list + of resources that support drift detection, see [Resource type support + for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + Use DetectStackResourceDrift to detect drift on individual resources, or + DetectStackDrift to detect drift on all supported resources for a given + stack. + + Args: + input: + An instance of `DescribeStackResourceDriftsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourceDriftsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_RESOURCE_DRIFTS, [], plugins) + + def describe_stack_resources( + self, + input: DescribeStackResourcesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStackResourcesOutput: + """ + Returns Amazon Web Services resource descriptions for running and + deleted stacks. If `StackName` is specified, all the associated + resources that are part of the stack are returned. If + `PhysicalResourceId` is specified, the associated resources of the stack + that the resource belongs to are returned. + + Note: + Only the first 100 resources will be returned. If your stack has more + resources than this, you should use `ListStackResources` instead. + + For deleted stacks, `DescribeStackResources` returns resource + information for up to 90 days after the stack has been deleted. + + You must specify either `StackName` or `PhysicalResourceId`, but not + both. In addition, you can specify `LogicalResourceId` to filter the + returned result. For more information about resources, the + `LogicalResourceId` and `PhysicalResourceId`, see the [CloudFormation + User + Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). + + Note: + A `ValidationError` is returned if you specify both `StackName` and + `PhysicalResourceId` in the same request. + + Args: + input: + An instance of `DescribeStackResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackResourcesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_RESOURCES, [], plugins) + + def describe_stacks( + self, + input: DescribeStacksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStacksOutput: + """ + Returns the description for the specified stack; if no stack name was + specified, then it returns the description for all the stacks created. + For more information about a stack's event history, see [Understand + CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + + Note: + If the stack doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `DescribeStacksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStacksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACKS, [], plugins) + + def describe_stack_set( + self, input: DescribeStackSetInput, plugins: list[Plugin] | None = None + ) -> DescribeStackSetOutput: + """ + Returns the description of the specified StackSet. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + Args: + input: + An instance of `DescribeStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackSetOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_SET, [], plugins) + + def describe_stack_set_operation( + self, input: DescribeStackSetOperationInput, plugins: list[Plugin] | None = None + ) -> DescribeStackSetOperationOutput: + """ + Returns the description of the specified StackSet operation. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + Args: + input: + An instance of `DescribeStackSetOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStackSetOperationOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STACK_SET_OPERATION, [], plugins) + + def describe_type( + self, + input: DescribeTypeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTypeOutput: + """ + Returns detailed information about an extension from the CloudFormation + registry in your current account and Region. + + If you specify a `VersionId`, `DescribeType` returns information about + that specific extension version. Otherwise, it returns information about + the default extension version. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `DescribeTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTypeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TYPE, [], plugins) + + def describe_type_registration( + self, input: DescribeTypeRegistrationInput, plugins: list[Plugin] | None = None + ) -> DescribeTypeRegistrationOutput: + """ + Returns information about an extension's registration, including its + current status and type and version identifiers. + + When you initiate a registration request using RegisterType, you can + then use DescribeTypeRegistration to monitor the progress of that + registration request. + + Once the registration request has completed, use DescribeType to return + detailed information about an extension. + + Args: + input: + An instance of `DescribeTypeRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTypeRegistrationOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TYPE_REGISTRATION, [], plugins) + + def detect_stack_drift( + self, input: DetectStackDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackDriftOutput: + """ + Detects whether a stack's actual configuration differs, or has + *drifted*, from its expected configuration, as defined in the stack + template and any values specified as template parameters. For each + resource in the stack that supports drift detection, CloudFormation + compares the actual configuration of the resource with its expected + template configuration. Only resource properties explicitly defined in + the stack template are checked for drift. A stack is considered to have + drifted if one or more of its resources differ from their expected + template configurations. For more information, see [Detect unmanaged + configuration changes to stacks and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use `DetectStackDrift` to detect drift on all supported resources for a + given stack, or DetectStackResourceDrift to detect drift on individual + resources. + + For a list of stack resources that currently support drift detection, + see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + `DetectStackDrift` can take up to several minutes, depending on the + number of resources contained within the stack. Use + DescribeStackDriftDetectionStatus to monitor the progress of a detect + stack drift operation. Once the drift detection operation has completed, + use DescribeStackResourceDrifts to return drift information about the + stack and its resources. + + When detecting drift on a stack, CloudFormation doesn't detect drift on + any nested stacks belonging to that stack. Perform `DetectStackDrift` + directly on the nested stack itself. + + Args: + input: + An instance of `DetectStackDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackDriftOutput`. + """ + return self._invoke(input, _models.DETECT_STACK_DRIFT, [], plugins) + + def detect_stack_resource_drift( + self, input: DetectStackResourceDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackResourceDriftOutput: + """ + Returns information about whether a resource's actual configuration + differs, or has *drifted*, from its expected configuration, as defined + in the stack template and any values specified as template parameters. + This information includes actual and expected property values for + resources in which CloudFormation detects drift. Only resource + properties explicitly defined in the stack template are checked for + drift. For more information about stack and resource drift, see [Detect + unmanaged configuration changes to stacks and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Use `DetectStackResourceDrift` to detect drift on individual resources, + or DetectStackDrift to detect drift on all resources in a given stack + that support drift detection. + + Resources that don't currently support drift detection can't be + checked. For a list of resources that support drift detection, see + [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + Args: + input: + An instance of `DetectStackResourceDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackResourceDriftOutput`. + """ + return self._invoke(input, _models.DETECT_STACK_RESOURCE_DRIFT, [], plugins) + + def detect_stack_set_drift( + self, input: DetectStackSetDriftInput, plugins: list[Plugin] | None = None + ) -> DetectStackSetDriftOutput: + """ + Detect drift on a StackSet. When CloudFormation performs drift detection + on a StackSet, it performs drift detection on the stack associated with + each stack instance in the StackSet. For more information, see + [Performing drift detection on CloudFormation + StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html). + + `DetectStackSetDrift` returns the `OperationId` of the StackSet drift + detection operation. Use this operation id with + DescribeStackSetOperation to monitor the progress of the drift detection + operation. The drift detection operation may take some time, depending + on the number of stack instances included in the StackSet, in addition + to the number of resources included in each stack. + + Once the operation has completed, use the following actions to return + drift information: + + - Use DescribeStackSet to return detailed information about the stack + set, including detailed information about the last *completed* drift + operation performed on the StackSet. (Information about drift + operations that are in progress isn't included.) + + - Use ListStackInstances to return a list of stack instances belonging + to the StackSet, including the drift status and last drift time + checked of each instance. + + - Use DescribeStackInstance to return detailed information about a + specific stack instance, including its drift status and last drift + time checked. + + You can only run a single drift detection operation on a given StackSet + at one time. + + To stop a drift detection StackSet operation, use StopStackSetOperation. + + Args: + input: + An instance of `DetectStackSetDriftInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetectStackSetDriftOutput`. + """ + return self._invoke(input, _models.DETECT_STACK_SET_DRIFT, [], plugins) + + def estimate_template_cost( + self, + input: EstimateTemplateCostInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EstimateTemplateCostOutput: + """ + Returns the estimated monthly cost of a template. The return value is an + Amazon Web Services Simple Monthly Calculator URL with a query string + that describes the resources required to run the template. + + Args: + input: + An instance of `EstimateTemplateCostInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EstimateTemplateCostOutput`. + """ + return self._invoke(input, _models.ESTIMATE_TEMPLATE_COST, [], plugins) + + def execute_change_set( + self, input: ExecuteChangeSetInput, plugins: list[Plugin] | None = None + ) -> ExecuteChangeSetOutput: + """ + Updates a stack using the input information that was provided when the + specified change set was created. After the call successfully completes, + CloudFormation starts updating the stack. Use the DescribeStacks action + to view the status of the update. + + When you execute a change set, CloudFormation deletes all other change + sets associated with the stack because they aren't valid for the + updated stack. + + If a stack policy is associated with the stack, CloudFormation enforces + the policy during the update. You can't specify a temporary stack + policy that overrides the current policy. + + To create a change set for the entire stack hierarchy, + `IncludeNestedStacks` must have been set to `True`. + + Args: + input: + An instance of `ExecuteChangeSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteChangeSetOutput`. + """ + return self._invoke(input, _models.EXECUTE_CHANGE_SET, [], plugins) + + def execute_stack_refactor( + self, input: ExecuteStackRefactorInput, plugins: list[Plugin] | None = None + ) -> ExecuteStackRefactorOutput: + """ + Executes the stack refactor operation. + + Args: + input: + An instance of `ExecuteStackRefactorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteStackRefactorOutput`. + """ + return self._invoke(input, _models.EXECUTE_STACK_REFACTOR, [], plugins) + + def get_generated_template( + self, input: GetGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> GetGeneratedTemplateOutput: + """ + Retrieves a generated template. If the template is in an `InProgress` or + `Pending` status then the template returned will be the template when + the template was last in a `Complete` status. If the template has not + yet been in a `Complete` status then an empty template will be returned. + + Args: + input: + An instance of `GetGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGeneratedTemplateOutput`. + """ + return self._invoke(input, _models.GET_GENERATED_TEMPLATE, [], plugins) + + def get_hook_result( + self, + input: GetHookResultInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetHookResultOutput: + """ + Retrieves detailed information and remediation guidance for a Hook + invocation result. + + If the Hook uses a KMS key to encrypt annotations, callers of the + `GetHookResult` operation must have `kms:Decrypt` permissions. For more + information, see [KMS key policy and permissions for encrypting + CloudFormation Hooks results at + rest](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-kms-key-policy.html) + in the *CloudFormation Hooks User Guide*. + + Args: + input: + An instance of `GetHookResultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHookResultOutput`. + """ + return self._invoke(input, _models.GET_HOOK_RESULT, [], plugins) + + def get_stack_policy( + self, input: GetStackPolicyInput, plugins: list[Plugin] | None = None + ) -> GetStackPolicyOutput: + """ + Returns the stack policy for a specified stack. If a stack doesn't have + a policy, a null value is returned. + + Args: + input: + An instance of `GetStackPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStackPolicyOutput`. + """ + return self._invoke(input, _models.GET_STACK_POLICY, [], plugins) + + def get_template( + self, input: GetTemplateInput | None = None, plugins: list[Plugin] | None = None + ) -> GetTemplateOutput: + """ + Returns the template body for a specified stack. You can get the + template for running or deleted stacks. + + For deleted stacks, `GetTemplate` returns the template for up to 90 days + after the stack has been deleted. + + Note: + If the template doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `GetTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTemplateOutput`. + """ + return self._invoke(input, _models.GET_TEMPLATE, [], plugins) + + def get_template_summary( + self, + input: GetTemplateSummaryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetTemplateSummaryOutput: + """ + Returns information about a new or existing template. The + `GetTemplateSummary` action is useful for viewing parameter information, + such as default parameter values and parameter types, before you create + or update a stack or StackSet. + + You can use the `GetTemplateSummary` action when you submit a template, + or you can get template information for a StackSet, or a running or + deleted stack. + + For deleted stacks, `GetTemplateSummary` returns the template + information for up to 90 days after the stack has been deleted. If the + template doesn't exist, a `ValidationError` is returned. + + Args: + input: + An instance of `GetTemplateSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTemplateSummaryOutput`. + """ + return self._invoke(input, _models.GET_TEMPLATE_SUMMARY, [], plugins) + + def import_stacks_to_stack_set( + self, input: ImportStacksToStackSetInput, plugins: list[Plugin] | None = None + ) -> ImportStacksToStackSetOutput: + """ + Import existing stacks into a new StackSets. Use the stack import + operation to import up to 10 stacks into a new StackSet in the same + account as the source stack or in a different administrator account and + Region, by specifying the stack ID of the stack you intend to import. + + Args: + input: + An instance of `ImportStacksToStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportStacksToStackSetOutput`. + """ + return self._invoke(input, _models.IMPORT_STACKS_TO_STACK_SET, [], plugins) + + def list_change_sets( + self, input: ListChangeSetsInput, plugins: list[Plugin] | None = None + ) -> ListChangeSetsOutput: + """ + Returns the ID and status of each active change set for a stack. For + example, CloudFormation lists change sets that are in the + `CREATE_IN_PROGRESS` or `CREATE_PENDING` state. + + Args: + input: + An instance of `ListChangeSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListChangeSetsOutput`. + """ + return self._invoke(input, _models.LIST_CHANGE_SETS, [], plugins) + + def list_exports( + self, input: ListExportsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListExportsOutput: + """ + Lists all exported output values in the account and Region in which you + call this action. Use this action to see the exported output values that + you can import into other stacks. To import values, use the + [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) + function. + + For more information, see [Get exported outputs from a deployed + CloudFormation + stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html). + + Args: + input: + An instance of `ListExportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListExportsOutput`. + """ + return self._invoke(input, _models.LIST_EXPORTS, [], plugins) + + def list_generated_templates( + self, + input: ListGeneratedTemplatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListGeneratedTemplatesOutput: + """ + Lists your generated templates in this Region. + + Args: + input: + An instance of `ListGeneratedTemplatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGeneratedTemplatesOutput`. + """ + return self._invoke(input, _models.LIST_GENERATED_TEMPLATES, [], plugins) + + def list_hook_results( + self, + input: ListHookResultsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListHookResultsOutput: + """ + Returns summaries of invoked Hooks. For more information, see [View + invocation summaries for CloudFormation + Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-view-invocations.html) + in the *CloudFormation Hooks User Guide*. + + This operation supports the following parameter combinations: + + - No parameters: Returns all Hook invocation summaries. + + - `TypeArn` only: Returns summaries for a specific Hook. + + - `TypeArn` and `Status`: Returns summaries for a specific Hook filtered + by status. + + - `TargetId` and `TargetType`: Returns summaries for a specific Hook + invocation target. + + Args: + input: + An instance of `ListHookResultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListHookResultsOutput`. + """ + return self._invoke(input, _models.LIST_HOOK_RESULTS, [], plugins) + + def list_imports( + self, input: ListImportsInput, plugins: list[Plugin] | None = None + ) -> ListImportsOutput: + """ + Lists all stacks that are importing an exported output value. To modify + or remove an exported output value, first use this action to see which + stacks are using it. To see the exported output values in your account, + see ListExports. + + For more information about importing an exported output value, see the + [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) + function. + + Args: + input: + An instance of `ListImportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListImportsOutput`. + """ + return self._invoke(input, _models.LIST_IMPORTS, [], plugins) + + def list_resource_scan_related_resources( + self, + input: ListResourceScanRelatedResourcesInput, + plugins: list[Plugin] | None = None, + ) -> ListResourceScanRelatedResourcesOutput: + """ + Lists the related resources for a list of resources from a resource + scan. The response indicates whether each returned resource is already + managed by CloudFormation. + + Args: + input: + An instance of `ListResourceScanRelatedResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScanRelatedResourcesOutput`. + """ + return self._invoke( + input, _models.LIST_RESOURCE_SCAN_RELATED_RESOURCES, [], plugins + ) + + def list_resource_scan_resources( + self, input: ListResourceScanResourcesInput, plugins: list[Plugin] | None = None + ) -> ListResourceScanResourcesOutput: + """ + Lists the resources from a resource scan. The results can be filtered by + resource identifier, resource type prefix, tag key, and tag value. Only + resources that match all specified filters are returned. The response + indicates whether each returned resource is already managed by + CloudFormation. + + Args: + input: + An instance of `ListResourceScanResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScanResourcesOutput`. + """ + return self._invoke(input, _models.LIST_RESOURCE_SCAN_RESOURCES, [], plugins) + + def list_resource_scans( + self, + input: ListResourceScansInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListResourceScansOutput: + """ + List the resource scans from newest to oldest. By default it will return + up to 10 resource scans. + + Args: + input: + An instance of `ListResourceScansInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceScansOutput`. + """ + return self._invoke(input, _models.LIST_RESOURCE_SCANS, [], plugins) + + def list_stack_instance_resource_drifts( + self, + input: ListStackInstanceResourceDriftsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackInstanceResourceDriftsOutput: + """ + Returns drift information for resources in a stack instance. + + Note: + `ListStackInstanceResourceDrifts` returns drift information for the most + recent drift detection operation. If an operation is in progress, it may + only return partial results. + + Args: + input: + An instance of `ListStackInstanceResourceDriftsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackInstanceResourceDriftsOutput`. + """ + return self._invoke( + input, _models.LIST_STACK_INSTANCE_RESOURCE_DRIFTS, [], plugins + ) + + def list_stack_instances( + self, input: ListStackInstancesInput, plugins: list[Plugin] | None = None + ) -> ListStackInstancesOutput: + """ + Returns summary information about stack instances that are associated + with the specified StackSet. You can filter for stack instances that are + associated with a specific Amazon Web Services account name or Region, + or that have a specific status. + + Args: + input: + An instance of `ListStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackInstancesOutput`. + """ + return self._invoke(input, _models.LIST_STACK_INSTANCES, [], plugins) + + def list_stack_refactor_actions( + self, input: ListStackRefactorActionsInput, plugins: list[Plugin] | None = None + ) -> ListStackRefactorActionsOutput: + """ + Lists the stack refactor actions that will be taken after calling the + ExecuteStackRefactor action. + + Args: + input: + An instance of `ListStackRefactorActionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackRefactorActionsOutput`. + """ + return self._invoke(input, _models.LIST_STACK_REFACTOR_ACTIONS, [], plugins) + + def list_stack_refactors( + self, + input: ListStackRefactorsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListStackRefactorsOutput: + """ + Lists all account stack refactor operations and their statuses. + + Args: + input: + An instance of `ListStackRefactorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackRefactorsOutput`. + """ + return self._invoke(input, _models.LIST_STACK_REFACTORS, [], plugins) + + def list_stack_resources( + self, input: ListStackResourcesInput, plugins: list[Plugin] | None = None + ) -> ListStackResourcesOutput: + """ + Returns descriptions of all resources of the specified stack. + + For deleted stacks, ListStackResources returns resource information for + up to 90 days after the stack has been deleted. + + Args: + input: + An instance of `ListStackResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackResourcesOutput`. + """ + return self._invoke(input, _models.LIST_STACK_RESOURCES, [], plugins) + + def list_stacks( + self, input: ListStacksInput | None = None, plugins: list[Plugin] | None = None + ) -> ListStacksOutput: + """ + Returns the summary information for stacks whose status matches the + specified `StackStatusFilter`. Summary information for stacks that have + been deleted is kept for 90 days after the stack is deleted. If no + `StackStatusFilter` is specified, summary information for all stacks is + returned (including existing stacks and stacks that have been deleted). + + Args: + input: + An instance of `ListStacksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStacksOutput`. + """ + return self._invoke(input, _models.LIST_STACKS, [], plugins) + + def list_stack_set_auto_deployment_targets( + self, + input: ListStackSetAutoDeploymentTargetsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackSetAutoDeploymentTargetsOutput: + """ + Returns summary information about deployment targets for a StackSet. + + Args: + input: + An instance of `ListStackSetAutoDeploymentTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetAutoDeploymentTargetsOutput`. + """ + return self._invoke( + input, _models.LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS, [], plugins + ) + + def list_stack_set_operation_results( + self, + input: ListStackSetOperationResultsInput, + plugins: list[Plugin] | None = None, + ) -> ListStackSetOperationResultsOutput: + """ + Returns summary information about the results of a StackSet operation. + + Note: + This API provides *eventually consistent* reads meaning it may take some + time but will eventually return the most up-to-date data. + + Args: + input: + An instance of `ListStackSetOperationResultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetOperationResultsOutput`. + """ + return self._invoke( + input, _models.LIST_STACK_SET_OPERATION_RESULTS, [], plugins + ) + + def list_stack_set_operations( + self, input: ListStackSetOperationsInput, plugins: list[Plugin] | None = None + ) -> ListStackSetOperationsOutput: + """ + Returns summary information about operations performed on a StackSet. + + Note: + This API provides *eventually consistent* reads meaning it may take some + time but will eventually return the most up-to-date data. + + Args: + input: + An instance of `ListStackSetOperationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetOperationsOutput`. + """ + return self._invoke(input, _models.LIST_STACK_SET_OPERATIONS, [], plugins) + + def list_stack_sets( + self, + input: ListStackSetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListStackSetsOutput: + """ + Returns summary information about StackSets that are associated with the + user. + + Note: + This API provides *strongly consistent* reads meaning it will always + return the most up-to-date data. + + - [Self-managed permissions] If you set the `CallAs` parameter to + `SELF` while signed in to your Amazon Web Services account, + `ListStackSets` returns all self-managed StackSets in your Amazon Web + Services account. + + - [Service-managed permissions] If you set the `CallAs` parameter to + `SELF` while signed in to the organization's management account, + `ListStackSets` returns all StackSets in the management account. + + - [Service-managed permissions] If you set the `CallAs` parameter to + `DELEGATED_ADMIN` while signed in to your member account, + `ListStackSets` returns all StackSets with service-managed permissions + in the management account. + + Args: + input: + An instance of `ListStackSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStackSetsOutput`. + """ + return self._invoke(input, _models.LIST_STACK_SETS, [], plugins) + + def list_type_registrations( + self, + input: ListTypeRegistrationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTypeRegistrationsOutput: + """ + Returns a list of registration tokens for the specified extension(s). + + Args: + input: + An instance of `ListTypeRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypeRegistrationsOutput`. + """ + return self._invoke(input, _models.LIST_TYPE_REGISTRATIONS, [], plugins) + + def list_types( + self, input: ListTypesInput | None = None, plugins: list[Plugin] | None = None + ) -> ListTypesOutput: + """ + Returns summary information about all extensions, including your private + resource types, modules, and Hooks as well as all public extensions from + Amazon Web Services and third-party publishers. + + Args: + input: + An instance of `ListTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypesOutput`. + """ + return self._invoke(input, _models.LIST_TYPES, [], plugins) + + def list_type_versions( + self, + input: ListTypeVersionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTypeVersionsOutput: + """ + Returns summary information about the versions of an extension. + + Args: + input: + An instance of `ListTypeVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTypeVersionsOutput`. + """ + return self._invoke(input, _models.LIST_TYPE_VERSIONS, [], plugins) + + def publish_type( + self, input: PublishTypeInput | None = None, plugins: list[Plugin] | None = None + ) -> PublishTypeOutput: + """ + Publishes the specified extension to the CloudFormation registry as a + public extension in this Region. Public extensions are available for use + by all CloudFormation users. For more information about publishing + extensions, see [Publishing extensions to make them available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + To publish an extension, you must be registered as a publisher with + CloudFormation. For more information, see + [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html). + + Args: + input: + An instance of `PublishTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishTypeOutput`. + """ + return self._invoke(input, _models.PUBLISH_TYPE, [], plugins) + + def record_handler_progress( + self, input: RecordHandlerProgressInput, plugins: list[Plugin] | None = None + ) -> RecordHandlerProgressOutput: + """ + Reports progress of a resource handler to CloudFormation. + + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + Don't use this API in your code. + + Args: + input: + An instance of `RecordHandlerProgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RecordHandlerProgressOutput`. + """ + return self._invoke(input, _models.RECORD_HANDLER_PROGRESS, [], plugins) + + def register_publisher( + self, + input: RegisterPublisherInput | None = None, + plugins: list[Plugin] | None = None, + ) -> RegisterPublisherOutput: + """ + Registers your account as a publisher of public extensions in the + CloudFormation registry. Public extensions are available for use by all + CloudFormation users. This publisher ID applies to your account in all + Amazon Web Services Regions. + + For information about requirements for registering as a public extension + publisher, see [Prerequisite: Registering your account to publish + CloudFormation + extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + Args: + input: + An instance of `RegisterPublisherInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterPublisherOutput`. + """ + return self._invoke(input, _models.REGISTER_PUBLISHER, [], plugins) + + def register_type( + self, input: RegisterTypeInput, plugins: list[Plugin] | None = None + ) -> RegisterTypeOutput: + """ + Registers an extension with the CloudFormation service. Registering an + extension makes it available for use in CloudFormation templates in your + Amazon Web Services account, and includes: + + - Validating the extension schema. + + - Determining which handlers, if any, have been specified for the + extension. + + - Making the extension available for use in your account. + + For more information about how to develop extensions and ready them for + registration, see [Creating resource types using the CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + You can have a maximum of 50 resource extension versions registered at a + time. This maximum is per account and per Region. Use + [DeregisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html) + to deregister specific extension versions if necessary. + + Once you have initiated a registration request using RegisterType, you + can use DescribeTypeRegistration to monitor the progress of the + registration request. + + Once you have registered a private extension in your account and Region, + use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) + to specify configuration properties for the extension. For more + information, see [Edit configuration data for extensions in your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `RegisterTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTypeOutput`. + """ + return self._invoke(input, _models.REGISTER_TYPE, [], plugins) + + def rollback_stack( + self, input: RollbackStackInput, plugins: list[Plugin] | None = None + ) -> RollbackStackOutput: + """ + When specifying `RollbackStack`, you preserve the state of previously + provisioned resources when an operation fails. You can check the status + of the stack through the DescribeStacks operation. + + Rolls back the specified stack to the last known stable state from + `CREATE_FAILED` or `UPDATE_FAILED` stack statuses. + + This operation will delete a stack if it doesn't contain a last known + stable state. A last known stable state includes any status in a + `*_COMPLETE`. This includes the following stack statuses. + + - `CREATE_COMPLETE` + + - `UPDATE_COMPLETE` + + - `UPDATE_ROLLBACK_COMPLETE` + + - `IMPORT_COMPLETE` + + - `IMPORT_ROLLBACK_COMPLETE` + + Args: + input: + An instance of `RollbackStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RollbackStackOutput`. + """ + return self._invoke(input, _models.ROLLBACK_STACK, [], plugins) + + def set_stack_policy( + self, input: SetStackPolicyInput, plugins: list[Plugin] | None = None + ) -> SetStackPolicyOutput: + """ + Sets a stack policy for a specified stack. + + Args: + input: + An instance of `SetStackPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetStackPolicyOutput`. + """ + return self._invoke(input, _models.SET_STACK_POLICY, [], plugins) + + def set_type_configuration( + self, input: SetTypeConfigurationInput, plugins: list[Plugin] | None = None + ) -> SetTypeConfigurationOutput: + """ + Specifies the configuration data for a CloudFormation extension, such as + a resource or Hook, in the given account and Region. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + + To view the current configuration data for an extension, refer to the + `ConfigurationSchema` element of + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + + Warning: + It's strongly recommended that you use dynamic references to restrict + sensitive configuration definitions, such as third-party credentials. + For more information, see [Specify values stored in other services using + dynamic + references](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) + in the *CloudFormation User Guide*. + + For more information about setting the configuration data for resource + types, see [Defining the account-level configuration of an + extension](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration) + in the *CloudFormation Command Line Interface (CLI) User Guide*. For + more information about setting the configuration data for Hooks, see the + [CloudFormation Hooks User + Guide](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html). + + Args: + input: + An instance of `SetTypeConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetTypeConfigurationOutput`. + """ + return self._invoke(input, _models.SET_TYPE_CONFIGURATION, [], plugins) + + def set_type_default_version( + self, + input: SetTypeDefaultVersionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> SetTypeDefaultVersionOutput: + """ + Specify the default version of an extension. The default version of an + extension will be used in CloudFormation operations. + + Args: + input: + An instance of `SetTypeDefaultVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetTypeDefaultVersionOutput`. + """ + return self._invoke(input, _models.SET_TYPE_DEFAULT_VERSION, [], plugins) + + def signal_resource( + self, input: SignalResourceInput, plugins: list[Plugin] | None = None + ) -> SignalResourceOutput: + """ + Sends a signal to the specified resource with a success or failure + status. You can use the `SignalResource` operation in conjunction with a + creation policy or update policy. CloudFormation doesn't proceed with a + stack creation or update until resources receive the required number of + signals or the timeout period is exceeded. The `SignalResource` + operation is useful in cases where you want to send signals from + anywhere other than an Amazon EC2 instance. + + Args: + input: + An instance of `SignalResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SignalResourceOutput`. + """ + return self._invoke(input, _models.SIGNAL_RESOURCE, [], plugins) + + def start_resource_scan( + self, + input: StartResourceScanInput | None = None, + plugins: list[Plugin] | None = None, + ) -> StartResourceScanOutput: + """ + Starts a scan of the resources in this account in this Region. You can + the status of a scan using the `ListResourceScans` API action. + + Args: + input: + An instance of `StartResourceScanInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartResourceScanOutput`. + """ + return self._invoke(input, _models.START_RESOURCE_SCAN, [], plugins) + + def stop_stack_set_operation( + self, input: StopStackSetOperationInput, plugins: list[Plugin] | None = None + ) -> StopStackSetOperationOutput: + """ + Stops an in-progress operation on a StackSet and its associated stack + instances. StackSets will cancel all the unstarted stack instance + deployments and wait for those are in-progress to complete. + + Args: + input: + An instance of `StopStackSetOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopStackSetOperationOutput`. + """ + return self._invoke(input, _models.STOP_STACK_SET_OPERATION, [], plugins) + + def test_type( + self, input: TestTypeInput | None = None, plugins: list[Plugin] | None = None + ) -> TestTypeOutput: + """ + Tests a registered extension to make sure it meets all necessary + requirements for being published in the CloudFormation registry. + + - For resource types, this includes passing all contracts tests defined + for the type. + + - For modules, this includes determining if the module's model meets + all necessary requirements. + + For more information, see [Testing your public extension before + publishing](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + If you don't specify a version, CloudFormation uses the default version + of the extension in your account and Region for testing. + + To perform testing, CloudFormation assumes the execution role specified + when the type was registered. For more information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + Once you've initiated testing on an extension using `TestType`, you can + pass the returned `TypeVersionArn` into + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html) + to monitor the current test status and test status description for the + extension. + + An extension must have a test status of `PASSED` before it can be + published. For more information, see [Publishing extensions to make them + available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + Args: + input: + An instance of `TestTypeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestTypeOutput`. + """ + return self._invoke(input, _models.TEST_TYPE, [], plugins) + + def update_generated_template( + self, input: UpdateGeneratedTemplateInput, plugins: list[Plugin] | None = None + ) -> UpdateGeneratedTemplateOutput: + """ + Updates a generated template. This can be used to change the name, add + and remove resources, refresh resources, and change the `DeletionPolicy` + and `UpdateReplacePolicy` settings. You can check the status of the + update to the generated template using the `DescribeGeneratedTemplate` + API action. + + Args: + input: + An instance of `UpdateGeneratedTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGeneratedTemplateOutput`. + """ + return self._invoke(input, _models.UPDATE_GENERATED_TEMPLATE, [], plugins) + + def update_stack( + self, input: UpdateStackInput, plugins: list[Plugin] | None = None + ) -> UpdateStackOutput: + """ + Updates a stack as specified in the template. After the call completes + successfully, the stack update starts. You can check the status of the + stack through the DescribeStacks action. + + To get a copy of the template for an existing stack, you can use the + GetTemplate action. + + For more information about updating a stack and monitoring the progress + of the update, see [Managing Amazon Web Services resources as a single + unit with CloudFormation + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) + in the *CloudFormation User Guide*. + + Args: + input: + An instance of `UpdateStackInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackOutput`. + """ + return self._invoke(input, _models.UPDATE_STACK, [], plugins) + + def update_stack_instances( + self, input: UpdateStackInstancesInput, plugins: list[Plugin] | None = None + ) -> UpdateStackInstancesOutput: + """ + Updates the parameter values for stack instances for the specified + accounts, within the specified Amazon Web Services Regions. A stack + instance refers to a stack in a specific account and Region. + + You can only update stack instances in Amazon Web Services Regions and + accounts where they already exist; to create additional stack instances, + use + [CreateStackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html). + + During StackSet updates, any parameters overridden for a stack instance + aren't updated, but retain their overridden value. + + You can only update the parameter *values* that are specified in the + StackSet. To add or delete a parameter itself, use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update the StackSet template. If you add a parameter to a template, + before you can override the parameter value specified in the StackSet + you must first use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update all stack instances with the updated template and parameter + value specified in the StackSet. Once a stack instance has been updated + with the new parameter, you can then override the parameter value using + `UpdateStackInstances`. + + Note: + The maximum number of organizational unit (OUs) supported by a + `UpdateStackInstances` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `UpdateStackInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackInstancesOutput`. + """ + return self._invoke(input, _models.UPDATE_STACK_INSTANCES, [], plugins) + + def update_stack_set( + self, input: UpdateStackSetInput, plugins: list[Plugin] | None = None + ) -> UpdateStackSetOutput: + """ + Updates the StackSet and associated stack instances in the specified + accounts and Amazon Web Services Regions. + + Even if the StackSet operation created by updating the StackSet fails + (completely or partially, below or above a specified failure tolerance), + the StackSet is updated with your changes. Subsequent + CreateStackInstances calls on the specified StackSet use the updated + StackSet. + + Note: + The maximum number of organizational unit (OUs) supported by a + `UpdateStackSet` operation is 50. + + If you need more than 50, consider the following options: + + - *Batch processing:* If you don't want to expose your OU hierarchy, + split up the operations into multiple calls with less than 50 OUs + each. + + - *Parent OU strategy:* If you don't mind exposing the OU hierarchy, + target a parent OU that contains all desired child OUs. + + Args: + input: + An instance of `UpdateStackSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStackSetOutput`. + """ + return self._invoke(input, _models.UPDATE_STACK_SET, [], plugins) + + def update_termination_protection( + self, + input: UpdateTerminationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateTerminationProtectionOutput: + """ + Updates termination protection for the specified stack. If a user + attempts to delete a stack with termination protection enabled, the + operation fails and the stack remains unchanged. For more information, + see [Protect a CloudFormation stack from being + deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + in the *CloudFormation User Guide*. + + For [nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + termination protection is set on the root stack and can't be changed + directly on the nested stack. + + Args: + input: + An instance of `UpdateTerminationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTerminationProtectionOutput`. + """ + return self._invoke(input, _models.UPDATE_TERMINATION_PROTECTION, [], plugins) + + def validate_template( + self, + input: ValidateTemplateInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ValidateTemplateOutput: + """ + Validates a specified template. CloudFormation first checks if the + template is valid JSON. If it isn't, CloudFormation checks if the + template is valid YAML. If both these checks fail, CloudFormation + returns a template validation error. + + Args: + input: + An instance of `ValidateTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ValidateTemplateOutput`. + """ + return self._invoke(input, _models.VALIDATE_TEMPLATE, [], plugins) + + def _new_config(self) -> CloudFormationConfig: + return CloudFormationConfig.resolve() + + def _post_setup(self, config: CloudFormationConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/config.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/config.py new file mode 100644 index 00000000..b03373ea --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/config.py @@ -0,0 +1,575 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import CLOUD_FORMATION +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + ActivateTypeInput, + ActivateTypeOutput, + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + CancelUpdateStackInput, + CancelUpdateStackOutput, + ContinueUpdateRollbackInput, + ContinueUpdateRollbackOutput, + CreateChangeSetInput, + CreateChangeSetOutput, + CreateGeneratedTemplateInput, + CreateGeneratedTemplateOutput, + CreateStackInput, + CreateStackInstancesInput, + CreateStackInstancesOutput, + CreateStackOutput, + CreateStackRefactorInput, + CreateStackRefactorOutput, + CreateStackSetInput, + CreateStackSetOutput, + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + DeactivateTypeInput, + DeactivateTypeOutput, + DeleteChangeSetInput, + DeleteChangeSetOutput, + DeleteGeneratedTemplateInput, + DeleteGeneratedTemplateOutput, + DeleteStackInput, + DeleteStackInstancesInput, + DeleteStackInstancesOutput, + DeleteStackOutput, + DeleteStackSetInput, + DeleteStackSetOutput, + DeregisterTypeInput, + DeregisterTypeOutput, + DescribeAccountLimitsInput, + DescribeAccountLimitsOutput, + DescribeChangeSetHooksInput, + DescribeChangeSetHooksOutput, + DescribeChangeSetInput, + DescribeChangeSetOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeGeneratedTemplateInput, + DescribeGeneratedTemplateOutput, + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + DescribePublisherInput, + DescribePublisherOutput, + DescribeResourceScanInput, + DescribeResourceScanOutput, + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + DescribeStackEventsInput, + DescribeStackEventsOutput, + DescribeStackInstanceInput, + DescribeStackInstanceOutput, + DescribeStackRefactorInput, + DescribeStackRefactorOutput, + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + DescribeStackResourceInput, + DescribeStackResourceOutput, + DescribeStackResourcesInput, + DescribeStackResourcesOutput, + DescribeStackSetInput, + DescribeStackSetOperationInput, + DescribeStackSetOperationOutput, + DescribeStackSetOutput, + DescribeStacksInput, + DescribeStacksOutput, + DescribeTypeInput, + DescribeTypeOutput, + DescribeTypeRegistrationInput, + DescribeTypeRegistrationOutput, + DetectStackDriftInput, + DetectStackDriftOutput, + DetectStackResourceDriftInput, + DetectStackResourceDriftOutput, + DetectStackSetDriftInput, + DetectStackSetDriftOutput, + EstimateTemplateCostInput, + EstimateTemplateCostOutput, + ExecuteChangeSetInput, + ExecuteChangeSetOutput, + ExecuteStackRefactorInput, + ExecuteStackRefactorOutput, + GetGeneratedTemplateInput, + GetGeneratedTemplateOutput, + GetHookResultInput, + GetHookResultOutput, + GetStackPolicyInput, + GetStackPolicyOutput, + GetTemplateInput, + GetTemplateOutput, + GetTemplateSummaryInput, + GetTemplateSummaryOutput, + ImportStacksToStackSetInput, + ImportStacksToStackSetOutput, + ListChangeSetsInput, + ListChangeSetsOutput, + ListExportsInput, + ListExportsOutput, + ListGeneratedTemplatesInput, + ListGeneratedTemplatesOutput, + ListHookResultsInput, + ListHookResultsOutput, + ListImportsInput, + ListImportsOutput, + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + ListResourceScanResourcesInput, + ListResourceScanResourcesOutput, + ListResourceScansInput, + ListResourceScansOutput, + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + ListStackInstancesInput, + ListStackInstancesOutput, + ListStackRefactorActionsInput, + ListStackRefactorActionsOutput, + ListStackRefactorsInput, + ListStackRefactorsOutput, + ListStackResourcesInput, + ListStackResourcesOutput, + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + ListStackSetOperationsInput, + ListStackSetOperationsOutput, + ListStackSetsInput, + ListStackSetsOutput, + ListStacksInput, + ListStacksOutput, + ListTypeRegistrationsInput, + ListTypeRegistrationsOutput, + ListTypeVersionsInput, + ListTypeVersionsOutput, + ListTypesInput, + ListTypesOutput, + PublishTypeInput, + PublishTypeOutput, + RecordHandlerProgressInput, + RecordHandlerProgressOutput, + RegisterPublisherInput, + RegisterPublisherOutput, + RegisterTypeInput, + RegisterTypeOutput, + RollbackStackInput, + RollbackStackOutput, + SetStackPolicyInput, + SetStackPolicyOutput, + SetTypeConfigurationInput, + SetTypeConfigurationOutput, + SetTypeDefaultVersionInput, + SetTypeDefaultVersionOutput, + SignalResourceInput, + SignalResourceOutput, + StartResourceScanInput, + StartResourceScanOutput, + StopStackSetOperationInput, + StopStackSetOperationOutput, + TestTypeInput, + TestTypeOutput, + UpdateGeneratedTemplateInput, + UpdateGeneratedTemplateOutput, + UpdateStackInput, + UpdateStackInstancesInput, + UpdateStackInstancesOutput, + UpdateStackOutput, + UpdateStackSetInput, + UpdateStackSetOutput, + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + ValidateTemplateInput, + ValidateTemplateOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[ActivateTypeInput, ActivateTypeOutput, Any, Any], + Interceptor[ + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + Any, + Any, + ], + Interceptor[CancelUpdateStackInput, CancelUpdateStackOutput, Any, Any], + Interceptor[ + ContinueUpdateRollbackInput, ContinueUpdateRollbackOutput, Any, Any + ], + Interceptor[CreateChangeSetInput, CreateChangeSetOutput, Any, Any], + Interceptor[ + CreateGeneratedTemplateInput, CreateGeneratedTemplateOutput, Any, Any + ], + Interceptor[CreateStackInput, CreateStackOutput, Any, Any], + Interceptor[CreateStackInstancesInput, CreateStackInstancesOutput, Any, Any], + Interceptor[CreateStackRefactorInput, CreateStackRefactorOutput, Any, Any], + Interceptor[CreateStackSetInput, CreateStackSetOutput, Any, Any], + Interceptor[ + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[DeactivateTypeInput, DeactivateTypeOutput, Any, Any], + Interceptor[DeleteChangeSetInput, DeleteChangeSetOutput, Any, Any], + Interceptor[ + DeleteGeneratedTemplateInput, DeleteGeneratedTemplateOutput, Any, Any + ], + Interceptor[DeleteStackInput, DeleteStackOutput, Any, Any], + Interceptor[DeleteStackInstancesInput, DeleteStackInstancesOutput, Any, Any], + Interceptor[DeleteStackSetInput, DeleteStackSetOutput, Any, Any], + Interceptor[DeregisterTypeInput, DeregisterTypeOutput, Any, Any], + Interceptor[DescribeAccountLimitsInput, DescribeAccountLimitsOutput, Any, Any], + Interceptor[DescribeChangeSetInput, DescribeChangeSetOutput, Any, Any], + Interceptor[ + DescribeChangeSetHooksInput, DescribeChangeSetHooksOutput, Any, Any + ], + Interceptor[DescribeEventsInput, DescribeEventsOutput, Any, Any], + Interceptor[ + DescribeGeneratedTemplateInput, DescribeGeneratedTemplateOutput, Any, Any + ], + Interceptor[ + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[DescribePublisherInput, DescribePublisherOutput, Any, Any], + Interceptor[DescribeResourceScanInput, DescribeResourceScanOutput, Any, Any], + Interceptor[ + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + Any, + Any, + ], + Interceptor[DescribeStackEventsInput, DescribeStackEventsOutput, Any, Any], + Interceptor[DescribeStackInstanceInput, DescribeStackInstanceOutput, Any, Any], + Interceptor[DescribeStackRefactorInput, DescribeStackRefactorOutput, Any, Any], + Interceptor[DescribeStackResourceInput, DescribeStackResourceOutput, Any, Any], + Interceptor[ + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + Any, + Any, + ], + Interceptor[ + DescribeStackResourcesInput, DescribeStackResourcesOutput, Any, Any + ], + Interceptor[DescribeStacksInput, DescribeStacksOutput, Any, Any], + Interceptor[DescribeStackSetInput, DescribeStackSetOutput, Any, Any], + Interceptor[ + DescribeStackSetOperationInput, DescribeStackSetOperationOutput, Any, Any + ], + Interceptor[DescribeTypeInput, DescribeTypeOutput, Any, Any], + Interceptor[ + DescribeTypeRegistrationInput, DescribeTypeRegistrationOutput, Any, Any + ], + Interceptor[DetectStackDriftInput, DetectStackDriftOutput, Any, Any], + Interceptor[ + DetectStackResourceDriftInput, DetectStackResourceDriftOutput, Any, Any + ], + Interceptor[DetectStackSetDriftInput, DetectStackSetDriftOutput, Any, Any], + Interceptor[EstimateTemplateCostInput, EstimateTemplateCostOutput, Any, Any], + Interceptor[ExecuteChangeSetInput, ExecuteChangeSetOutput, Any, Any], + Interceptor[ExecuteStackRefactorInput, ExecuteStackRefactorOutput, Any, Any], + Interceptor[GetGeneratedTemplateInput, GetGeneratedTemplateOutput, Any, Any], + Interceptor[GetHookResultInput, GetHookResultOutput, Any, Any], + Interceptor[GetStackPolicyInput, GetStackPolicyOutput, Any, Any], + Interceptor[GetTemplateInput, GetTemplateOutput, Any, Any], + Interceptor[GetTemplateSummaryInput, GetTemplateSummaryOutput, Any, Any], + Interceptor[ + ImportStacksToStackSetInput, ImportStacksToStackSetOutput, Any, Any + ], + Interceptor[ListChangeSetsInput, ListChangeSetsOutput, Any, Any], + Interceptor[ListExportsInput, ListExportsOutput, Any, Any], + Interceptor[ + ListGeneratedTemplatesInput, ListGeneratedTemplatesOutput, Any, Any + ], + Interceptor[ListHookResultsInput, ListHookResultsOutput, Any, Any], + Interceptor[ListImportsInput, ListImportsOutput, Any, Any], + Interceptor[ + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + Any, + Any, + ], + Interceptor[ + ListResourceScanResourcesInput, ListResourceScanResourcesOutput, Any, Any + ], + Interceptor[ListResourceScansInput, ListResourceScansOutput, Any, Any], + Interceptor[ + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + Any, + Any, + ], + Interceptor[ListStackInstancesInput, ListStackInstancesOutput, Any, Any], + Interceptor[ + ListStackRefactorActionsInput, ListStackRefactorActionsOutput, Any, Any + ], + Interceptor[ListStackRefactorsInput, ListStackRefactorsOutput, Any, Any], + Interceptor[ListStackResourcesInput, ListStackResourcesOutput, Any, Any], + Interceptor[ListStacksInput, ListStacksOutput, Any, Any], + Interceptor[ + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + Any, + Any, + ], + Interceptor[ + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + Any, + Any, + ], + Interceptor[ + ListStackSetOperationsInput, ListStackSetOperationsOutput, Any, Any + ], + Interceptor[ListStackSetsInput, ListStackSetsOutput, Any, Any], + Interceptor[ListTypeRegistrationsInput, ListTypeRegistrationsOutput, Any, Any], + Interceptor[ListTypesInput, ListTypesOutput, Any, Any], + Interceptor[ListTypeVersionsInput, ListTypeVersionsOutput, Any, Any], + Interceptor[PublishTypeInput, PublishTypeOutput, Any, Any], + Interceptor[RecordHandlerProgressInput, RecordHandlerProgressOutput, Any, Any], + Interceptor[RegisterPublisherInput, RegisterPublisherOutput, Any, Any], + Interceptor[RegisterTypeInput, RegisterTypeOutput, Any, Any], + Interceptor[RollbackStackInput, RollbackStackOutput, Any, Any], + Interceptor[SetStackPolicyInput, SetStackPolicyOutput, Any, Any], + Interceptor[SetTypeConfigurationInput, SetTypeConfigurationOutput, Any, Any], + Interceptor[SetTypeDefaultVersionInput, SetTypeDefaultVersionOutput, Any, Any], + Interceptor[SignalResourceInput, SignalResourceOutput, Any, Any], + Interceptor[StartResourceScanInput, StartResourceScanOutput, Any, Any], + Interceptor[StopStackSetOperationInput, StopStackSetOperationOutput, Any, Any], + Interceptor[TestTypeInput, TestTypeOutput, Any, Any], + Interceptor[ + UpdateGeneratedTemplateInput, UpdateGeneratedTemplateOutput, Any, Any + ], + Interceptor[UpdateStackInput, UpdateStackOutput, Any, Any], + Interceptor[UpdateStackInstancesInput, UpdateStackInstancesOutput, Any, Any], + Interceptor[UpdateStackSetInput, UpdateStackSetOutput, Any, Any], + Interceptor[ + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + Any, + Any, + ], + Interceptor[ValidateTemplateInput, ValidateTemplateOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudformation", + service_target="CloudFormation", + version="2010-05-15", + service_schema=CLOUD_FORMATION, +) + + +class _CloudFormationConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class CloudFormationConfig(AwsConfig): + """CloudFormation configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("cloudformation").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="cloudformation") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_CloudFormationConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[CloudFormationConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.py new file mode 100644 index 00000000..523334ee --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.py @@ -0,0 +1,1543 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccountFilterType": "ACCOUNT_FILTER_TYPE", + "AccountGateResult": "ACCOUNT_GATE_RESULT", + "AccountGateStatus": "ACCOUNT_GATE_STATUS", + "AccountLimit": "ACCOUNT_LIMIT", + "ActivateOrganizationsAccessInput": "ACTIVATE_ORGANIZATIONS_ACCESS_INPUT", + "ActivateOrganizationsAccessOutput": "ACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT", + "ActivateTypeInput": "ACTIVATE_TYPE_INPUT", + "ActivateTypeOutput": "ACTIVATE_TYPE_OUTPUT", + "AfterValueFrom": "AFTER_VALUE_FROM", + "AlreadyExistsException": "ALREADY_EXISTS_EXCEPTION", + "Annotation": "ANNOTATION", + "AnnotationSeverityLevel": "ANNOTATION_SEVERITY_LEVEL", + "AnnotationStatus": "ANNOTATION_STATUS", + "AttributeChangeType": "ATTRIBUTE_CHANGE_TYPE", + "AutoDeployment": "AUTO_DEPLOYMENT", + "BatchDescribeTypeConfigurationsError": "BATCH_DESCRIBE_TYPE_CONFIGURATIONS_ERROR", + "BatchDescribeTypeConfigurationsInput": "BATCH_DESCRIBE_TYPE_CONFIGURATIONS_INPUT", + "BatchDescribeTypeConfigurationsOutput": "BATCH_DESCRIBE_TYPE_CONFIGURATIONS_OUTPUT", + "BeaconStackOperationStatus": "BEACON_STACK_OPERATION_STATUS", + "BeforeValueFrom": "BEFORE_VALUE_FROM", + "CallAs": "CALL_AS", + "CancelUpdateStackInput": "CANCEL_UPDATE_STACK_INPUT", + "CancelUpdateStackOutput": "CANCEL_UPDATE_STACK_OUTPUT", + "Capability": "CAPABILITY", + "Category": "CATEGORY", + "CFNRegistryException": "CFN_REGISTRY_EXCEPTION", + "Change": "CHANGE", + "ChangeAction": "CHANGE_ACTION", + "ChangeSetHook": "CHANGE_SET_HOOK", + "ChangeSetHookResourceTargetDetails": "CHANGE_SET_HOOK_RESOURCE_TARGET_DETAILS", + "ChangeSetHooksStatus": "CHANGE_SET_HOOKS_STATUS", + "ChangeSetHookTargetDetails": "CHANGE_SET_HOOK_TARGET_DETAILS", + "ChangeSetNotFoundException": "CHANGE_SET_NOT_FOUND_EXCEPTION", + "ChangeSetStatus": "CHANGE_SET_STATUS", + "ChangeSetSummary": "CHANGE_SET_SUMMARY", + "ChangeSetType": "CHANGE_SET_TYPE", + "ChangeSource": "CHANGE_SOURCE", + "ChangeType": "CHANGE_TYPE", + "ConcurrencyMode": "CONCURRENCY_MODE", + "ConcurrentResourcesLimitExceededException": "CONCURRENT_RESOURCES_LIMIT_EXCEEDED_EXCEPTION", + "ContinueUpdateRollbackInput": "CONTINUE_UPDATE_ROLLBACK_INPUT", + "ContinueUpdateRollbackOutput": "CONTINUE_UPDATE_ROLLBACK_OUTPUT", + "CreateChangeSetInput": "CREATE_CHANGE_SET_INPUT", + "CreateChangeSetOutput": "CREATE_CHANGE_SET_OUTPUT", + "CreatedButModifiedException": "CREATED_BUT_MODIFIED_EXCEPTION", + "CreateGeneratedTemplateInput": "CREATE_GENERATED_TEMPLATE_INPUT", + "CreateGeneratedTemplateOutput": "CREATE_GENERATED_TEMPLATE_OUTPUT", + "CreateStackInput": "CREATE_STACK_INPUT", + "CreateStackInstancesInput": "CREATE_STACK_INSTANCES_INPUT", + "CreateStackInstancesOutput": "CREATE_STACK_INSTANCES_OUTPUT", + "CreateStackOutput": "CREATE_STACK_OUTPUT", + "CreateStackRefactorInput": "CREATE_STACK_REFACTOR_INPUT", + "CreateStackRefactorOutput": "CREATE_STACK_REFACTOR_OUTPUT", + "CreateStackSetInput": "CREATE_STACK_SET_INPUT", + "CreateStackSetOutput": "CREATE_STACK_SET_OUTPUT", + "DeactivateOrganizationsAccessInput": "DEACTIVATE_ORGANIZATIONS_ACCESS_INPUT", + "DeactivateOrganizationsAccessOutput": "DEACTIVATE_ORGANIZATIONS_ACCESS_OUTPUT", + "DeactivateTypeInput": "DEACTIVATE_TYPE_INPUT", + "DeactivateTypeOutput": "DEACTIVATE_TYPE_OUTPUT", + "DeleteChangeSetInput": "DELETE_CHANGE_SET_INPUT", + "DeleteChangeSetOutput": "DELETE_CHANGE_SET_OUTPUT", + "DeleteGeneratedTemplateInput": "DELETE_GENERATED_TEMPLATE_INPUT", + "DeleteGeneratedTemplateOutput": "DELETE_GENERATED_TEMPLATE_OUTPUT", + "DeleteStackInput": "DELETE_STACK_INPUT", + "DeleteStackInstancesInput": "DELETE_STACK_INSTANCES_INPUT", + "DeleteStackInstancesOutput": "DELETE_STACK_INSTANCES_OUTPUT", + "DeleteStackOutput": "DELETE_STACK_OUTPUT", + "DeleteStackSetInput": "DELETE_STACK_SET_INPUT", + "DeleteStackSetOutput": "DELETE_STACK_SET_OUTPUT", + "DeletionMode": "DELETION_MODE", + "DeploymentConfig": "DEPLOYMENT_CONFIG", + "DeploymentConfigMode": "DEPLOYMENT_CONFIG_MODE", + "DeploymentMode": "DEPLOYMENT_MODE", + "DeploymentTargets": "DEPLOYMENT_TARGETS", + "DeprecatedStatus": "DEPRECATED_STATUS", + "DeregisterTypeInput": "DEREGISTER_TYPE_INPUT", + "DeregisterTypeOutput": "DEREGISTER_TYPE_OUTPUT", + "DescribeAccountLimitsInput": "DESCRIBE_ACCOUNT_LIMITS_INPUT", + "DescribeAccountLimitsOutput": "DESCRIBE_ACCOUNT_LIMITS_OUTPUT", + "DescribeChangeSetHooksInput": "DESCRIBE_CHANGE_SET_HOOKS_INPUT", + "DescribeChangeSetHooksOutput": "DESCRIBE_CHANGE_SET_HOOKS_OUTPUT", + "DescribeChangeSetInput": "DESCRIBE_CHANGE_SET_INPUT", + "DescribeChangeSetOutput": "DESCRIBE_CHANGE_SET_OUTPUT", + "DescribeEventsInput": "DESCRIBE_EVENTS_INPUT", + "DescribeEventsOutput": "DESCRIBE_EVENTS_OUTPUT", + "DescribeGeneratedTemplateInput": "DESCRIBE_GENERATED_TEMPLATE_INPUT", + "DescribeGeneratedTemplateOutput": "DESCRIBE_GENERATED_TEMPLATE_OUTPUT", + "DescribeOrganizationsAccessInput": "DESCRIBE_ORGANIZATIONS_ACCESS_INPUT", + "DescribeOrganizationsAccessOutput": "DESCRIBE_ORGANIZATIONS_ACCESS_OUTPUT", + "DescribePublisherInput": "DESCRIBE_PUBLISHER_INPUT", + "DescribePublisherOutput": "DESCRIBE_PUBLISHER_OUTPUT", + "DescribeResourceScanInput": "DESCRIBE_RESOURCE_SCAN_INPUT", + "DescribeResourceScanOutput": "DESCRIBE_RESOURCE_SCAN_OUTPUT", + "DescribeStackDriftDetectionStatusInput": "DESCRIBE_STACK_DRIFT_DETECTION_STATUS_INPUT", + "DescribeStackDriftDetectionStatusOutput": "DESCRIBE_STACK_DRIFT_DETECTION_STATUS_OUTPUT", + "DescribeStackEventsInput": "DESCRIBE_STACK_EVENTS_INPUT", + "DescribeStackEventsOutput": "DESCRIBE_STACK_EVENTS_OUTPUT", + "DescribeStackInstanceInput": "DESCRIBE_STACK_INSTANCE_INPUT", + "DescribeStackInstanceOutput": "DESCRIBE_STACK_INSTANCE_OUTPUT", + "DescribeStackRefactorInput": "DESCRIBE_STACK_REFACTOR_INPUT", + "DescribeStackRefactorOutput": "DESCRIBE_STACK_REFACTOR_OUTPUT", + "DescribeStackResourceDriftsInput": "DESCRIBE_STACK_RESOURCE_DRIFTS_INPUT", + "DescribeStackResourceDriftsOutput": "DESCRIBE_STACK_RESOURCE_DRIFTS_OUTPUT", + "DescribeStackResourceInput": "DESCRIBE_STACK_RESOURCE_INPUT", + "DescribeStackResourceOutput": "DESCRIBE_STACK_RESOURCE_OUTPUT", + "DescribeStackResourcesInput": "DESCRIBE_STACK_RESOURCES_INPUT", + "DescribeStackResourcesOutput": "DESCRIBE_STACK_RESOURCES_OUTPUT", + "DescribeStackSetInput": "DESCRIBE_STACK_SET_INPUT", + "DescribeStackSetOperationInput": "DESCRIBE_STACK_SET_OPERATION_INPUT", + "DescribeStackSetOperationOutput": "DESCRIBE_STACK_SET_OPERATION_OUTPUT", + "DescribeStackSetOutput": "DESCRIBE_STACK_SET_OUTPUT", + "DescribeStacksInput": "DESCRIBE_STACKS_INPUT", + "DescribeStacksOutput": "DESCRIBE_STACKS_OUTPUT", + "DescribeTypeInput": "DESCRIBE_TYPE_INPUT", + "DescribeTypeOutput": "DESCRIBE_TYPE_OUTPUT", + "DescribeTypeRegistrationInput": "DESCRIBE_TYPE_REGISTRATION_INPUT", + "DescribeTypeRegistrationOutput": "DESCRIBE_TYPE_REGISTRATION_OUTPUT", + "DetailedStatus": "DETAILED_STATUS", + "DetectStackDriftInput": "DETECT_STACK_DRIFT_INPUT", + "DetectStackDriftOutput": "DETECT_STACK_DRIFT_OUTPUT", + "DetectStackResourceDriftInput": "DETECT_STACK_RESOURCE_DRIFT_INPUT", + "DetectStackResourceDriftOutput": "DETECT_STACK_RESOURCE_DRIFT_OUTPUT", + "DetectStackSetDriftInput": "DETECT_STACK_SET_DRIFT_INPUT", + "DetectStackSetDriftOutput": "DETECT_STACK_SET_DRIFT_OUTPUT", + "DifferenceType": "DIFFERENCE_TYPE", + "DriftIgnoredReason": "DRIFT_IGNORED_REASON", + "EstimateTemplateCostInput": "ESTIMATE_TEMPLATE_COST_INPUT", + "EstimateTemplateCostOutput": "ESTIMATE_TEMPLATE_COST_OUTPUT", + "EvaluationType": "EVALUATION_TYPE", + "EventFilter": "EVENT_FILTER", + "EventType": "EVENT_TYPE", + "ExecuteChangeSetInput": "EXECUTE_CHANGE_SET_INPUT", + "ExecuteChangeSetOutput": "EXECUTE_CHANGE_SET_OUTPUT", + "ExecuteStackRefactorInput": "EXECUTE_STACK_REFACTOR_INPUT", + "ExecuteStackRefactorOutput": "EXECUTE_STACK_REFACTOR_OUTPUT", + "ExecutionStatus": "EXECUTION_STATUS", + "Export": "EXPORT", + "GeneratedTemplateDeletionPolicy": "GENERATED_TEMPLATE_DELETION_POLICY", + "GeneratedTemplateNotFoundException": "GENERATED_TEMPLATE_NOT_FOUND_EXCEPTION", + "GeneratedTemplateResourceStatus": "GENERATED_TEMPLATE_RESOURCE_STATUS", + "GeneratedTemplateStatus": "GENERATED_TEMPLATE_STATUS", + "GeneratedTemplateUpdateReplacePolicy": "GENERATED_TEMPLATE_UPDATE_REPLACE_POLICY", + "GetGeneratedTemplateInput": "GET_GENERATED_TEMPLATE_INPUT", + "GetGeneratedTemplateOutput": "GET_GENERATED_TEMPLATE_OUTPUT", + "GetHookResultInput": "GET_HOOK_RESULT_INPUT", + "GetHookResultOutput": "GET_HOOK_RESULT_OUTPUT", + "GetStackPolicyInput": "GET_STACK_POLICY_INPUT", + "GetStackPolicyOutput": "GET_STACK_POLICY_OUTPUT", + "GetTemplateInput": "GET_TEMPLATE_INPUT", + "GetTemplateOutput": "GET_TEMPLATE_OUTPUT", + "GetTemplateSummaryInput": "GET_TEMPLATE_SUMMARY_INPUT", + "GetTemplateSummaryOutput": "GET_TEMPLATE_SUMMARY_OUTPUT", + "HandlerErrorCode": "HANDLER_ERROR_CODE", + "HookFailureMode": "HOOK_FAILURE_MODE", + "HookInvocationPoint": "HOOK_INVOCATION_POINT", + "HookResultNotFoundException": "HOOK_RESULT_NOT_FOUND_EXCEPTION", + "HookResultSummary": "HOOK_RESULT_SUMMARY", + "HookStatus": "HOOK_STATUS", + "HookTarget": "HOOK_TARGET", + "HookTargetAction": "HOOK_TARGET_ACTION", + "HookTargetType": "HOOK_TARGET_TYPE", + "IdentityProvider": "IDENTITY_PROVIDER", + "ImportStacksToStackSetInput": "IMPORT_STACKS_TO_STACK_SET_INPUT", + "ImportStacksToStackSetOutput": "IMPORT_STACKS_TO_STACK_SET_OUTPUT", + "InsufficientCapabilitiesException": "INSUFFICIENT_CAPABILITIES_EXCEPTION", + "InvalidChangeSetStatusException": "INVALID_CHANGE_SET_STATUS_EXCEPTION", + "InvalidOperationException": "INVALID_OPERATION_EXCEPTION", + "InvalidStateTransitionException": "INVALID_STATE_TRANSITION_EXCEPTION", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "ListChangeSetsInput": "LIST_CHANGE_SETS_INPUT", + "ListChangeSetsOutput": "LIST_CHANGE_SETS_OUTPUT", + "ListExportsInput": "LIST_EXPORTS_INPUT", + "ListExportsOutput": "LIST_EXPORTS_OUTPUT", + "ListGeneratedTemplatesInput": "LIST_GENERATED_TEMPLATES_INPUT", + "ListGeneratedTemplatesOutput": "LIST_GENERATED_TEMPLATES_OUTPUT", + "ListHookResultsInput": "LIST_HOOK_RESULTS_INPUT", + "ListHookResultsOutput": "LIST_HOOK_RESULTS_OUTPUT", + "ListHookResultsTargetType": "LIST_HOOK_RESULTS_TARGET_TYPE", + "ListImportsInput": "LIST_IMPORTS_INPUT", + "ListImportsOutput": "LIST_IMPORTS_OUTPUT", + "ListResourceScanRelatedResourcesInput": "LIST_RESOURCE_SCAN_RELATED_RESOURCES_INPUT", + "ListResourceScanRelatedResourcesOutput": "LIST_RESOURCE_SCAN_RELATED_RESOURCES_OUTPUT", + "ListResourceScanResourcesInput": "LIST_RESOURCE_SCAN_RESOURCES_INPUT", + "ListResourceScanResourcesOutput": "LIST_RESOURCE_SCAN_RESOURCES_OUTPUT", + "ListResourceScansInput": "LIST_RESOURCE_SCANS_INPUT", + "ListResourceScansOutput": "LIST_RESOURCE_SCANS_OUTPUT", + "ListStackInstanceResourceDriftsInput": "LIST_STACK_INSTANCE_RESOURCE_DRIFTS_INPUT", + "ListStackInstanceResourceDriftsOutput": "LIST_STACK_INSTANCE_RESOURCE_DRIFTS_OUTPUT", + "ListStackInstancesInput": "LIST_STACK_INSTANCES_INPUT", + "ListStackInstancesOutput": "LIST_STACK_INSTANCES_OUTPUT", + "ListStackRefactorActionsInput": "LIST_STACK_REFACTOR_ACTIONS_INPUT", + "ListStackRefactorActionsOutput": "LIST_STACK_REFACTOR_ACTIONS_OUTPUT", + "ListStackRefactorsInput": "LIST_STACK_REFACTORS_INPUT", + "ListStackRefactorsOutput": "LIST_STACK_REFACTORS_OUTPUT", + "ListStackResourcesInput": "LIST_STACK_RESOURCES_INPUT", + "ListStackResourcesOutput": "LIST_STACK_RESOURCES_OUTPUT", + "ListStackSetAutoDeploymentTargetsInput": "LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_INPUT", + "ListStackSetAutoDeploymentTargetsOutput": "LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS_OUTPUT", + "ListStackSetOperationResultsInput": "LIST_STACK_SET_OPERATION_RESULTS_INPUT", + "ListStackSetOperationResultsOutput": "LIST_STACK_SET_OPERATION_RESULTS_OUTPUT", + "ListStackSetOperationsInput": "LIST_STACK_SET_OPERATIONS_INPUT", + "ListStackSetOperationsOutput": "LIST_STACK_SET_OPERATIONS_OUTPUT", + "ListStackSetsInput": "LIST_STACK_SETS_INPUT", + "ListStackSetsOutput": "LIST_STACK_SETS_OUTPUT", + "ListStacksInput": "LIST_STACKS_INPUT", + "ListStacksOutput": "LIST_STACKS_OUTPUT", + "ListTypeRegistrationsInput": "LIST_TYPE_REGISTRATIONS_INPUT", + "ListTypeRegistrationsOutput": "LIST_TYPE_REGISTRATIONS_OUTPUT", + "ListTypesInput": "LIST_TYPES_INPUT", + "ListTypesOutput": "LIST_TYPES_OUTPUT", + "ListTypeVersionsInput": "LIST_TYPE_VERSIONS_INPUT", + "ListTypeVersionsOutput": "LIST_TYPE_VERSIONS_OUTPUT", + "LiveResourceDrift": "LIVE_RESOURCE_DRIFT", + "LoggingConfig": "LOGGING_CONFIG", + "ManagedExecution": "MANAGED_EXECUTION", + "ModuleInfo": "MODULE_INFO", + "NameAlreadyExistsException": "NAME_ALREADY_EXISTS_EXCEPTION", + "OnFailure": "ON_FAILURE", + "OnStackFailure": "ON_STACK_FAILURE", + "OperationEntry": "OPERATION_ENTRY", + "OperationEvent": "OPERATION_EVENT", + "OperationIdAlreadyExistsException": "OPERATION_ID_ALREADY_EXISTS_EXCEPTION", + "OperationInProgressException": "OPERATION_IN_PROGRESS_EXCEPTION", + "OperationNotFoundException": "OPERATION_NOT_FOUND_EXCEPTION", + "OperationResultFilter": "OPERATION_RESULT_FILTER", + "OperationResultFilterName": "OPERATION_RESULT_FILTER_NAME", + "OperationStatus": "OPERATION_STATUS", + "OperationStatusCheckFailedException": "OPERATION_STATUS_CHECK_FAILED_EXCEPTION", + "OperationType": "OPERATION_TYPE", + "OrganizationStatus": "ORGANIZATION_STATUS", + "Output": "OUTPUT", + "Parameter": "PARAMETER", + "ParameterConstraints": "PARAMETER_CONSTRAINTS", + "ParameterDeclaration": "PARAMETER_DECLARATION", + "PermissionModels": "PERMISSION_MODELS", + "PhysicalResourceIdContextKeyValuePair": "PHYSICAL_RESOURCE_ID_CONTEXT_KEY_VALUE_PAIR", + "PolicyAction": "POLICY_ACTION", + "PropertyDifference": "PROPERTY_DIFFERENCE", + "ProvisioningType": "PROVISIONING_TYPE", + "PublisherStatus": "PUBLISHER_STATUS", + "PublishTypeInput": "PUBLISH_TYPE_INPUT", + "PublishTypeOutput": "PUBLISH_TYPE_OUTPUT", + "RecordHandlerProgressInput": "RECORD_HANDLER_PROGRESS_INPUT", + "RecordHandlerProgressOutput": "RECORD_HANDLER_PROGRESS_OUTPUT", + "RegionConcurrencyType": "REGION_CONCURRENCY_TYPE", + "RegisterPublisherInput": "REGISTER_PUBLISHER_INPUT", + "RegisterPublisherOutput": "REGISTER_PUBLISHER_OUTPUT", + "RegisterTypeInput": "REGISTER_TYPE_INPUT", + "RegisterTypeOutput": "REGISTER_TYPE_OUTPUT", + "RegistrationStatus": "REGISTRATION_STATUS", + "RegistryType": "REGISTRY_TYPE", + "Replacement": "REPLACEMENT", + "RequiredActivatedType": "REQUIRED_ACTIVATED_TYPE", + "RequiresRecreation": "REQUIRES_RECREATION", + "ResourceAttribute": "RESOURCE_ATTRIBUTE", + "ResourceChange": "RESOURCE_CHANGE", + "ResourceChangeDetail": "RESOURCE_CHANGE_DETAIL", + "ResourceDefinition": "RESOURCE_DEFINITION", + "ResourceDetail": "RESOURCE_DETAIL", + "ResourceDriftIgnoredAttribute": "RESOURCE_DRIFT_IGNORED_ATTRIBUTE", + "ResourceIdentifierSummary": "RESOURCE_IDENTIFIER_SUMMARY", + "ResourceLocation": "RESOURCE_LOCATION", + "ResourceMapping": "RESOURCE_MAPPING", + "ResourceScanInProgressException": "RESOURCE_SCAN_IN_PROGRESS_EXCEPTION", + "ResourceScanLimitExceededException": "RESOURCE_SCAN_LIMIT_EXCEEDED_EXCEPTION", + "ResourceScanNotFoundException": "RESOURCE_SCAN_NOT_FOUND_EXCEPTION", + "ResourceScanStatus": "RESOURCE_SCAN_STATUS", + "ResourceScanSummary": "RESOURCE_SCAN_SUMMARY", + "ResourceSignalStatus": "RESOURCE_SIGNAL_STATUS", + "ResourceStatus": "RESOURCE_STATUS", + "ResourceTargetDefinition": "RESOURCE_TARGET_DEFINITION", + "ResourceToImport": "RESOURCE_TO_IMPORT", + "RollbackConfiguration": "ROLLBACK_CONFIGURATION", + "RollbackStackInput": "ROLLBACK_STACK_INPUT", + "RollbackStackOutput": "ROLLBACK_STACK_OUTPUT", + "RollbackTrigger": "ROLLBACK_TRIGGER", + "ScanFilter": "SCAN_FILTER", + "ScannedResource": "SCANNED_RESOURCE", + "ScannedResourceIdentifier": "SCANNED_RESOURCE_IDENTIFIER", + "ScanType": "SCAN_TYPE", + "SetStackPolicyInput": "SET_STACK_POLICY_INPUT", + "SetStackPolicyOutput": "SET_STACK_POLICY_OUTPUT", + "SetTypeConfigurationInput": "SET_TYPE_CONFIGURATION_INPUT", + "SetTypeConfigurationOutput": "SET_TYPE_CONFIGURATION_OUTPUT", + "SetTypeDefaultVersionInput": "SET_TYPE_DEFAULT_VERSION_INPUT", + "SetTypeDefaultVersionOutput": "SET_TYPE_DEFAULT_VERSION_OUTPUT", + "SignalResourceInput": "SIGNAL_RESOURCE_INPUT", + "SignalResourceOutput": "SIGNAL_RESOURCE_OUTPUT", + "Stack": "STACK", + "StackDefinition": "STACK_DEFINITION", + "StackDriftDetectionStatus": "STACK_DRIFT_DETECTION_STATUS", + "StackDriftInformation": "STACK_DRIFT_INFORMATION", + "StackDriftInformationSummary": "STACK_DRIFT_INFORMATION_SUMMARY", + "StackDriftStatus": "STACK_DRIFT_STATUS", + "StackEvent": "STACK_EVENT", + "StackInstance": "STACK_INSTANCE", + "StackInstanceComprehensiveStatus": "STACK_INSTANCE_COMPREHENSIVE_STATUS", + "StackInstanceDetailedStatus": "STACK_INSTANCE_DETAILED_STATUS", + "StackInstanceFilter": "STACK_INSTANCE_FILTER", + "StackInstanceFilterName": "STACK_INSTANCE_FILTER_NAME", + "StackInstanceNotFoundException": "STACK_INSTANCE_NOT_FOUND_EXCEPTION", + "StackInstanceResourceDriftsSummary": "STACK_INSTANCE_RESOURCE_DRIFTS_SUMMARY", + "StackInstanceStatus": "STACK_INSTANCE_STATUS", + "StackInstanceSummary": "STACK_INSTANCE_SUMMARY", + "StackNotFoundException": "STACK_NOT_FOUND_EXCEPTION", + "StackRefactorAction": "STACK_REFACTOR_ACTION", + "StackRefactorActionEntity": "STACK_REFACTOR_ACTION_ENTITY", + "StackRefactorActionType": "STACK_REFACTOR_ACTION_TYPE", + "StackRefactorDetection": "STACK_REFACTOR_DETECTION", + "StackRefactorExecutionStatus": "STACK_REFACTOR_EXECUTION_STATUS", + "StackRefactorNotFoundException": "STACK_REFACTOR_NOT_FOUND_EXCEPTION", + "StackRefactorStatus": "STACK_REFACTOR_STATUS", + "StackRefactorSummary": "STACK_REFACTOR_SUMMARY", + "StackResource": "STACK_RESOURCE", + "StackResourceDetail": "STACK_RESOURCE_DETAIL", + "StackResourceDrift": "STACK_RESOURCE_DRIFT", + "StackResourceDriftInformation": "STACK_RESOURCE_DRIFT_INFORMATION", + "StackResourceDriftInformationSummary": "STACK_RESOURCE_DRIFT_INFORMATION_SUMMARY", + "StackResourceDriftStatus": "STACK_RESOURCE_DRIFT_STATUS", + "StackResourceSummary": "STACK_RESOURCE_SUMMARY", + "StackSet": "STACK_SET", + "StackSetAutoDeploymentTargetSummary": "STACK_SET_AUTO_DEPLOYMENT_TARGET_SUMMARY", + "StackSetDriftDetectionDetails": "STACK_SET_DRIFT_DETECTION_DETAILS", + "StackSetDriftDetectionStatus": "STACK_SET_DRIFT_DETECTION_STATUS", + "StackSetDriftStatus": "STACK_SET_DRIFT_STATUS", + "StackSetNotEmptyException": "STACK_SET_NOT_EMPTY_EXCEPTION", + "StackSetNotFoundException": "STACK_SET_NOT_FOUND_EXCEPTION", + "StackSetOperation": "STACK_SET_OPERATION", + "StackSetOperationAction": "STACK_SET_OPERATION_ACTION", + "StackSetOperationPreferences": "STACK_SET_OPERATION_PREFERENCES", + "StackSetOperationResultStatus": "STACK_SET_OPERATION_RESULT_STATUS", + "StackSetOperationResultSummary": "STACK_SET_OPERATION_RESULT_SUMMARY", + "StackSetOperationStatus": "STACK_SET_OPERATION_STATUS", + "StackSetOperationStatusDetails": "STACK_SET_OPERATION_STATUS_DETAILS", + "StackSetOperationSummary": "STACK_SET_OPERATION_SUMMARY", + "StackSetStatus": "STACK_SET_STATUS", + "StackSetSummary": "STACK_SET_SUMMARY", + "StackStatus": "STACK_STATUS", + "StackSummary": "STACK_SUMMARY", + "StaleRequestException": "STALE_REQUEST_EXCEPTION", + "StartResourceScanInput": "START_RESOURCE_SCAN_INPUT", + "StartResourceScanOutput": "START_RESOURCE_SCAN_OUTPUT", + "StopStackSetOperationInput": "STOP_STACK_SET_OPERATION_INPUT", + "StopStackSetOperationOutput": "STOP_STACK_SET_OPERATION_OUTPUT", + "Tag": "TAG", + "TemplateConfiguration": "TEMPLATE_CONFIGURATION", + "TemplateFormat": "TEMPLATE_FORMAT", + "TemplateParameter": "TEMPLATE_PARAMETER", + "TemplateProgress": "TEMPLATE_PROGRESS", + "TemplateStage": "TEMPLATE_STAGE", + "TemplateSummary": "TEMPLATE_SUMMARY", + "TemplateSummaryConfig": "TEMPLATE_SUMMARY_CONFIG", + "TestTypeInput": "TEST_TYPE_INPUT", + "TestTypeOutput": "TEST_TYPE_OUTPUT", + "ThirdPartyType": "THIRD_PARTY_TYPE", + "TokenAlreadyExistsException": "TOKEN_ALREADY_EXISTS_EXCEPTION", + "TypeConfigurationDetails": "TYPE_CONFIGURATION_DETAILS", + "TypeConfigurationIdentifier": "TYPE_CONFIGURATION_IDENTIFIER", + "TypeConfigurationNotFoundException": "TYPE_CONFIGURATION_NOT_FOUND_EXCEPTION", + "TypeFilters": "TYPE_FILTERS", + "TypeNotFoundException": "TYPE_NOT_FOUND_EXCEPTION", + "TypeSummary": "TYPE_SUMMARY", + "TypeTestsStatus": "TYPE_TESTS_STATUS", + "TypeVersionSummary": "TYPE_VERSION_SUMMARY", + "UpdateGeneratedTemplateInput": "UPDATE_GENERATED_TEMPLATE_INPUT", + "UpdateGeneratedTemplateOutput": "UPDATE_GENERATED_TEMPLATE_OUTPUT", + "UpdateStackInput": "UPDATE_STACK_INPUT", + "UpdateStackInstancesInput": "UPDATE_STACK_INSTANCES_INPUT", + "UpdateStackInstancesOutput": "UPDATE_STACK_INSTANCES_OUTPUT", + "UpdateStackOutput": "UPDATE_STACK_OUTPUT", + "UpdateStackSetInput": "UPDATE_STACK_SET_INPUT", + "UpdateStackSetOutput": "UPDATE_STACK_SET_OUTPUT", + "UpdateTerminationProtectionInput": "UPDATE_TERMINATION_PROTECTION_INPUT", + "UpdateTerminationProtectionOutput": "UPDATE_TERMINATION_PROTECTION_OUTPUT", + "ValidateTemplateInput": "VALIDATE_TEMPLATE_INPUT", + "ValidateTemplateOutput": "VALIDATE_TEMPLATE_OUTPUT", + "ValidationStatus": "VALIDATION_STATUS", + "VersionBump": "VERSION_BUMP", + "Visibility": "VISIBILITY", + "WarningDetail": "WARNING_DETAIL", + "WarningProperty": "WARNING_PROPERTY", + "Warnings": "WARNINGS", + "WarningType": "WARNING_TYPE", + }, + shape_names=frozenset( + { + "AccountFilterType", + "AccountGateResult", + "AccountGateStatus", + "AccountLimit", + "ActivateOrganizationsAccessInput", + "ActivateOrganizationsAccessOutput", + "ActivateTypeInput", + "ActivateTypeOutput", + "AfterValueFrom", + "AlreadyExistsException", + "Annotation", + "AnnotationSeverityLevel", + "AnnotationStatus", + "AttributeChangeType", + "AutoDeployment", + "BatchDescribeTypeConfigurationsError", + "BatchDescribeTypeConfigurationsInput", + "BatchDescribeTypeConfigurationsOutput", + "BeaconStackOperationStatus", + "BeforeValueFrom", + "CFNRegistryException", + "CallAs", + "CancelUpdateStackInput", + "CancelUpdateStackOutput", + "Capability", + "Category", + "Change", + "ChangeAction", + "ChangeSetHook", + "ChangeSetHookResourceTargetDetails", + "ChangeSetHookTargetDetails", + "ChangeSetHooksStatus", + "ChangeSetNotFoundException", + "ChangeSetStatus", + "ChangeSetSummary", + "ChangeSetType", + "ChangeSource", + "ChangeType", + "ConcurrencyMode", + "ConcurrentResourcesLimitExceededException", + "ContinueUpdateRollbackInput", + "ContinueUpdateRollbackOutput", + "CreateChangeSetInput", + "CreateChangeSetOutput", + "CreateGeneratedTemplateInput", + "CreateGeneratedTemplateOutput", + "CreateStackInput", + "CreateStackInstancesInput", + "CreateStackInstancesOutput", + "CreateStackOutput", + "CreateStackRefactorInput", + "CreateStackRefactorOutput", + "CreateStackSetInput", + "CreateStackSetOutput", + "CreatedButModifiedException", + "DeactivateOrganizationsAccessInput", + "DeactivateOrganizationsAccessOutput", + "DeactivateTypeInput", + "DeactivateTypeOutput", + "DeleteChangeSetInput", + "DeleteChangeSetOutput", + "DeleteGeneratedTemplateInput", + "DeleteGeneratedTemplateOutput", + "DeleteStackInput", + "DeleteStackInstancesInput", + "DeleteStackInstancesOutput", + "DeleteStackOutput", + "DeleteStackSetInput", + "DeleteStackSetOutput", + "DeletionMode", + "DeploymentConfig", + "DeploymentConfigMode", + "DeploymentMode", + "DeploymentTargets", + "DeprecatedStatus", + "DeregisterTypeInput", + "DeregisterTypeOutput", + "DescribeAccountLimitsInput", + "DescribeAccountLimitsOutput", + "DescribeChangeSetHooksInput", + "DescribeChangeSetHooksOutput", + "DescribeChangeSetInput", + "DescribeChangeSetOutput", + "DescribeEventsInput", + "DescribeEventsOutput", + "DescribeGeneratedTemplateInput", + "DescribeGeneratedTemplateOutput", + "DescribeOrganizationsAccessInput", + "DescribeOrganizationsAccessOutput", + "DescribePublisherInput", + "DescribePublisherOutput", + "DescribeResourceScanInput", + "DescribeResourceScanOutput", + "DescribeStackDriftDetectionStatusInput", + "DescribeStackDriftDetectionStatusOutput", + "DescribeStackEventsInput", + "DescribeStackEventsOutput", + "DescribeStackInstanceInput", + "DescribeStackInstanceOutput", + "DescribeStackRefactorInput", + "DescribeStackRefactorOutput", + "DescribeStackResourceDriftsInput", + "DescribeStackResourceDriftsOutput", + "DescribeStackResourceInput", + "DescribeStackResourceOutput", + "DescribeStackResourcesInput", + "DescribeStackResourcesOutput", + "DescribeStackSetInput", + "DescribeStackSetOperationInput", + "DescribeStackSetOperationOutput", + "DescribeStackSetOutput", + "DescribeStacksInput", + "DescribeStacksOutput", + "DescribeTypeInput", + "DescribeTypeOutput", + "DescribeTypeRegistrationInput", + "DescribeTypeRegistrationOutput", + "DetailedStatus", + "DetectStackDriftInput", + "DetectStackDriftOutput", + "DetectStackResourceDriftInput", + "DetectStackResourceDriftOutput", + "DetectStackSetDriftInput", + "DetectStackSetDriftOutput", + "DifferenceType", + "DriftIgnoredReason", + "EstimateTemplateCostInput", + "EstimateTemplateCostOutput", + "EvaluationType", + "EventFilter", + "EventType", + "ExecuteChangeSetInput", + "ExecuteChangeSetOutput", + "ExecuteStackRefactorInput", + "ExecuteStackRefactorOutput", + "ExecutionStatus", + "Export", + "GeneratedTemplateDeletionPolicy", + "GeneratedTemplateNotFoundException", + "GeneratedTemplateResourceStatus", + "GeneratedTemplateStatus", + "GeneratedTemplateUpdateReplacePolicy", + "GetGeneratedTemplateInput", + "GetGeneratedTemplateOutput", + "GetHookResultInput", + "GetHookResultOutput", + "GetStackPolicyInput", + "GetStackPolicyOutput", + "GetTemplateInput", + "GetTemplateOutput", + "GetTemplateSummaryInput", + "GetTemplateSummaryOutput", + "HandlerErrorCode", + "HookFailureMode", + "HookInvocationPoint", + "HookResultNotFoundException", + "HookResultSummary", + "HookStatus", + "HookTarget", + "HookTargetAction", + "HookTargetType", + "IdentityProvider", + "ImportStacksToStackSetInput", + "ImportStacksToStackSetOutput", + "InsufficientCapabilitiesException", + "InvalidChangeSetStatusException", + "InvalidOperationException", + "InvalidStateTransitionException", + "LimitExceededException", + "ListChangeSetsInput", + "ListChangeSetsOutput", + "ListExportsInput", + "ListExportsOutput", + "ListGeneratedTemplatesInput", + "ListGeneratedTemplatesOutput", + "ListHookResultsInput", + "ListHookResultsOutput", + "ListHookResultsTargetType", + "ListImportsInput", + "ListImportsOutput", + "ListResourceScanRelatedResourcesInput", + "ListResourceScanRelatedResourcesOutput", + "ListResourceScanResourcesInput", + "ListResourceScanResourcesOutput", + "ListResourceScansInput", + "ListResourceScansOutput", + "ListStackInstanceResourceDriftsInput", + "ListStackInstanceResourceDriftsOutput", + "ListStackInstancesInput", + "ListStackInstancesOutput", + "ListStackRefactorActionsInput", + "ListStackRefactorActionsOutput", + "ListStackRefactorsInput", + "ListStackRefactorsOutput", + "ListStackResourcesInput", + "ListStackResourcesOutput", + "ListStackSetAutoDeploymentTargetsInput", + "ListStackSetAutoDeploymentTargetsOutput", + "ListStackSetOperationResultsInput", + "ListStackSetOperationResultsOutput", + "ListStackSetOperationsInput", + "ListStackSetOperationsOutput", + "ListStackSetsInput", + "ListStackSetsOutput", + "ListStacksInput", + "ListStacksOutput", + "ListTypeRegistrationsInput", + "ListTypeRegistrationsOutput", + "ListTypeVersionsInput", + "ListTypeVersionsOutput", + "ListTypesInput", + "ListTypesOutput", + "LiveResourceDrift", + "LoggingConfig", + "ManagedExecution", + "ModuleInfo", + "NameAlreadyExistsException", + "OnFailure", + "OnStackFailure", + "OperationEntry", + "OperationEvent", + "OperationIdAlreadyExistsException", + "OperationInProgressException", + "OperationNotFoundException", + "OperationResultFilter", + "OperationResultFilterName", + "OperationStatus", + "OperationStatusCheckFailedException", + "OperationType", + "OrganizationStatus", + "Output", + "Parameter", + "ParameterConstraints", + "ParameterDeclaration", + "PermissionModels", + "PhysicalResourceIdContextKeyValuePair", + "PolicyAction", + "PropertyDifference", + "ProvisioningType", + "PublishTypeInput", + "PublishTypeOutput", + "PublisherStatus", + "RecordHandlerProgressInput", + "RecordHandlerProgressOutput", + "RegionConcurrencyType", + "RegisterPublisherInput", + "RegisterPublisherOutput", + "RegisterTypeInput", + "RegisterTypeOutput", + "RegistrationStatus", + "RegistryType", + "Replacement", + "RequiredActivatedType", + "RequiresRecreation", + "ResourceAttribute", + "ResourceChange", + "ResourceChangeDetail", + "ResourceDefinition", + "ResourceDetail", + "ResourceDriftIgnoredAttribute", + "ResourceIdentifierSummary", + "ResourceLocation", + "ResourceMapping", + "ResourceScanInProgressException", + "ResourceScanLimitExceededException", + "ResourceScanNotFoundException", + "ResourceScanStatus", + "ResourceScanSummary", + "ResourceSignalStatus", + "ResourceStatus", + "ResourceTargetDefinition", + "ResourceToImport", + "RollbackConfiguration", + "RollbackStackInput", + "RollbackStackOutput", + "RollbackTrigger", + "ScanFilter", + "ScanType", + "ScannedResource", + "ScannedResourceIdentifier", + "SetStackPolicyInput", + "SetStackPolicyOutput", + "SetTypeConfigurationInput", + "SetTypeConfigurationOutput", + "SetTypeDefaultVersionInput", + "SetTypeDefaultVersionOutput", + "SignalResourceInput", + "SignalResourceOutput", + "Stack", + "StackDefinition", + "StackDriftDetectionStatus", + "StackDriftInformation", + "StackDriftInformationSummary", + "StackDriftStatus", + "StackEvent", + "StackInstance", + "StackInstanceComprehensiveStatus", + "StackInstanceDetailedStatus", + "StackInstanceFilter", + "StackInstanceFilterName", + "StackInstanceNotFoundException", + "StackInstanceResourceDriftsSummary", + "StackInstanceStatus", + "StackInstanceSummary", + "StackNotFoundException", + "StackRefactorAction", + "StackRefactorActionEntity", + "StackRefactorActionType", + "StackRefactorDetection", + "StackRefactorExecutionStatus", + "StackRefactorNotFoundException", + "StackRefactorStatus", + "StackRefactorSummary", + "StackResource", + "StackResourceDetail", + "StackResourceDrift", + "StackResourceDriftInformation", + "StackResourceDriftInformationSummary", + "StackResourceDriftStatus", + "StackResourceSummary", + "StackSet", + "StackSetAutoDeploymentTargetSummary", + "StackSetDriftDetectionDetails", + "StackSetDriftDetectionStatus", + "StackSetDriftStatus", + "StackSetNotEmptyException", + "StackSetNotFoundException", + "StackSetOperation", + "StackSetOperationAction", + "StackSetOperationPreferences", + "StackSetOperationResultStatus", + "StackSetOperationResultSummary", + "StackSetOperationStatus", + "StackSetOperationStatusDetails", + "StackSetOperationSummary", + "StackSetStatus", + "StackSetSummary", + "StackStatus", + "StackSummary", + "StaleRequestException", + "StartResourceScanInput", + "StartResourceScanOutput", + "StopStackSetOperationInput", + "StopStackSetOperationOutput", + "Tag", + "TemplateConfiguration", + "TemplateFormat", + "TemplateParameter", + "TemplateProgress", + "TemplateStage", + "TemplateSummary", + "TemplateSummaryConfig", + "TestTypeInput", + "TestTypeOutput", + "ThirdPartyType", + "TokenAlreadyExistsException", + "TypeConfigurationDetails", + "TypeConfigurationIdentifier", + "TypeConfigurationNotFoundException", + "TypeFilters", + "TypeNotFoundException", + "TypeSummary", + "TypeTestsStatus", + "TypeVersionSummary", + "UpdateGeneratedTemplateInput", + "UpdateGeneratedTemplateOutput", + "UpdateStackInput", + "UpdateStackInstancesInput", + "UpdateStackInstancesOutput", + "UpdateStackOutput", + "UpdateStackSetInput", + "UpdateStackSetOutput", + "UpdateTerminationProtectionInput", + "UpdateTerminationProtectionOutput", + "ValidateTemplateInput", + "ValidateTemplateOutput", + "ValidationStatus", + "VersionBump", + "Visibility", + "WarningDetail", + "WarningProperty", + "WarningType", + "Warnings", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ACTIVATE_ORGANIZATIONS_ACCESS", + "ACTIVATE_TYPE", + "BATCH_DESCRIBE_TYPE_CONFIGURATIONS", + "CANCEL_UPDATE_STACK", + "CONTINUE_UPDATE_ROLLBACK", + "CREATE_CHANGE_SET", + "CREATE_GENERATED_TEMPLATE", + "CREATE_STACK", + "CREATE_STACK_INSTANCES", + "CREATE_STACK_REFACTOR", + "CREATE_STACK_SET", + "DEACTIVATE_ORGANIZATIONS_ACCESS", + "DEACTIVATE_TYPE", + "DELETE_CHANGE_SET", + "DELETE_GENERATED_TEMPLATE", + "DELETE_STACK", + "DELETE_STACK_INSTANCES", + "DELETE_STACK_SET", + "DEREGISTER_TYPE", + "DESCRIBE_ACCOUNT_LIMITS", + "DESCRIBE_CHANGE_SET", + "DESCRIBE_CHANGE_SET_HOOKS", + "DESCRIBE_EVENTS", + "DESCRIBE_GENERATED_TEMPLATE", + "DESCRIBE_ORGANIZATIONS_ACCESS", + "DESCRIBE_PUBLISHER", + "DESCRIBE_RESOURCE_SCAN", + "DESCRIBE_STACK_DRIFT_DETECTION_STATUS", + "DESCRIBE_STACK_EVENTS", + "DESCRIBE_STACK_INSTANCE", + "DESCRIBE_STACK_REFACTOR", + "DESCRIBE_STACK_RESOURCE", + "DESCRIBE_STACK_RESOURCE_DRIFTS", + "DESCRIBE_STACK_RESOURCES", + "DESCRIBE_STACKS", + "DESCRIBE_STACK_SET", + "DESCRIBE_STACK_SET_OPERATION", + "DESCRIBE_TYPE", + "DESCRIBE_TYPE_REGISTRATION", + "DETECT_STACK_DRIFT", + "DETECT_STACK_RESOURCE_DRIFT", + "DETECT_STACK_SET_DRIFT", + "ESTIMATE_TEMPLATE_COST", + "EXECUTE_CHANGE_SET", + "EXECUTE_STACK_REFACTOR", + "GET_GENERATED_TEMPLATE", + "GET_HOOK_RESULT", + "GET_STACK_POLICY", + "GET_TEMPLATE", + "GET_TEMPLATE_SUMMARY", + "IMPORT_STACKS_TO_STACK_SET", + "LIST_CHANGE_SETS", + "LIST_EXPORTS", + "LIST_GENERATED_TEMPLATES", + "LIST_HOOK_RESULTS", + "LIST_IMPORTS", + "LIST_RESOURCE_SCAN_RELATED_RESOURCES", + "LIST_RESOURCE_SCAN_RESOURCES", + "LIST_RESOURCE_SCANS", + "LIST_STACK_INSTANCE_RESOURCE_DRIFTS", + "LIST_STACK_INSTANCES", + "LIST_STACK_REFACTOR_ACTIONS", + "LIST_STACK_REFACTORS", + "LIST_STACK_RESOURCES", + "LIST_STACKS", + "LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS", + "LIST_STACK_SET_OPERATION_RESULTS", + "LIST_STACK_SET_OPERATIONS", + "LIST_STACK_SETS", + "LIST_TYPE_REGISTRATIONS", + "LIST_TYPES", + "LIST_TYPE_VERSIONS", + "PUBLISH_TYPE", + "RECORD_HANDLER_PROGRESS", + "REGISTER_PUBLISHER", + "REGISTER_TYPE", + "ROLLBACK_STACK", + "SET_STACK_POLICY", + "SET_TYPE_CONFIGURATION", + "SET_TYPE_DEFAULT_VERSION", + "SIGNAL_RESOURCE", + "START_RESOURCE_SCAN", + "STOP_STACK_SET_OPERATION", + "TEST_TYPE", + "UPDATE_GENERATED_TEMPLATE", + "UPDATE_STACK", + "UPDATE_STACK_INSTANCES", + "UPDATE_STACK_SET", + "UPDATE_TERMINATION_PROTECTION", + "VALIDATE_TEMPLATE", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ACTIVATE_ORGANIZATIONS_ACCESS"] = ( + "ACTIVATE_ORGANIZATIONS_ACCESS", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ACTIVATE_TYPE"] = ( + "ACTIVATE_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["BATCH_DESCRIBE_TYPE_CONFIGURATIONS"] = ( + "BATCH_DESCRIBE_TYPE_CONFIGURATIONS", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeConfigurationNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_UPDATE_STACK"] = ( + "CANCEL_UPDATE_STACK", + ("com.amazonaws.cloudformation#TokenAlreadyExistsException",), + ("aws.auth#sigv4",), +) + +_operation_data["CONTINUE_UPDATE_ROLLBACK"] = ( + "CONTINUE_UPDATE_ROLLBACK", + ("com.amazonaws.cloudformation#TokenAlreadyExistsException",), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CHANGE_SET"] = ( + "CREATE_CHANGE_SET", + ( + "com.amazonaws.cloudformation#AlreadyExistsException", + "com.amazonaws.cloudformation#InsufficientCapabilitiesException", + "com.amazonaws.cloudformation#LimitExceededException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_GENERATED_TEMPLATE"] = ( + "CREATE_GENERATED_TEMPLATE", + ( + "com.amazonaws.cloudformation#AlreadyExistsException", + "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException", + "com.amazonaws.cloudformation#LimitExceededException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STACK"] = ( + "CREATE_STACK", + ( + "com.amazonaws.cloudformation#AlreadyExistsException", + "com.amazonaws.cloudformation#InsufficientCapabilitiesException", + "com.amazonaws.cloudformation#LimitExceededException", + "com.amazonaws.cloudformation#TokenAlreadyExistsException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STACK_INSTANCES"] = ( + "CREATE_STACK_INSTANCES", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#LimitExceededException", + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + "com.amazonaws.cloudformation#StaleRequestException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STACK_REFACTOR"] = ( + "CREATE_STACK_REFACTOR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STACK_SET"] = ( + "CREATE_STACK_SET", + ( + "com.amazonaws.cloudformation#CreatedButModifiedException", + "com.amazonaws.cloudformation#LimitExceededException", + "com.amazonaws.cloudformation#NameAlreadyExistsException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEACTIVATE_ORGANIZATIONS_ACCESS"] = ( + "DEACTIVATE_ORGANIZATIONS_ACCESS", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEACTIVATE_TYPE"] = ( + "DEACTIVATE_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CHANGE_SET"] = ( + "DELETE_CHANGE_SET", + ("com.amazonaws.cloudformation#InvalidChangeSetStatusException",), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_GENERATED_TEMPLATE"] = ( + "DELETE_GENERATED_TEMPLATE", + ( + "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException", + "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_STACK"] = ( + "DELETE_STACK", + ("com.amazonaws.cloudformation#TokenAlreadyExistsException",), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_STACK_INSTANCES"] = ( + "DELETE_STACK_INSTANCES", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + "com.amazonaws.cloudformation#StaleRequestException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_STACK_SET"] = ( + "DELETE_STACK_SET", + ( + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackSetNotEmptyException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_TYPE"] = ( + "DEREGISTER_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACCOUNT_LIMITS"] = ( + "DESCRIBE_ACCOUNT_LIMITS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CHANGE_SET"] = ( + "DESCRIBE_CHANGE_SET", + ("com.amazonaws.cloudformation#ChangeSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CHANGE_SET_HOOKS"] = ( + "DESCRIBE_CHANGE_SET_HOOKS", + ("com.amazonaws.cloudformation#ChangeSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EVENTS"] = ("DESCRIBE_EVENTS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_GENERATED_TEMPLATE"] = ( + "DESCRIBE_GENERATED_TEMPLATE", + ("com.amazonaws.cloudformation#GeneratedTemplateNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ORGANIZATIONS_ACCESS"] = ( + "DESCRIBE_ORGANIZATIONS_ACCESS", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PUBLISHER"] = ( + "DESCRIBE_PUBLISHER", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESOURCE_SCAN"] = ( + "DESCRIBE_RESOURCE_SCAN", + ("com.amazonaws.cloudformation#ResourceScanNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_DRIFT_DETECTION_STATUS"] = ( + "DESCRIBE_STACK_DRIFT_DETECTION_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_EVENTS"] = ( + "DESCRIBE_STACK_EVENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_INSTANCE"] = ( + "DESCRIBE_STACK_INSTANCE", + ( + "com.amazonaws.cloudformation#StackInstanceNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_REFACTOR"] = ( + "DESCRIBE_STACK_REFACTOR", + ("com.amazonaws.cloudformation#StackRefactorNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_RESOURCE"] = ( + "DESCRIBE_STACK_RESOURCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_RESOURCE_DRIFTS"] = ( + "DESCRIBE_STACK_RESOURCE_DRIFTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_RESOURCES"] = ( + "DESCRIBE_STACK_RESOURCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACKS"] = ("DESCRIBE_STACKS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_STACK_SET"] = ( + "DESCRIBE_STACK_SET", + ("com.amazonaws.cloudformation#StackSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STACK_SET_OPERATION"] = ( + "DESCRIBE_STACK_SET_OPERATION", + ( + "com.amazonaws.cloudformation#OperationNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TYPE"] = ( + "DESCRIBE_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TYPE_REGISTRATION"] = ( + "DESCRIBE_TYPE_REGISTRATION", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["DETECT_STACK_DRIFT"] = ("DETECT_STACK_DRIFT", (), ("aws.auth#sigv4",)) + +_operation_data["DETECT_STACK_RESOURCE_DRIFT"] = ( + "DETECT_STACK_RESOURCE_DRIFT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETECT_STACK_SET_DRIFT"] = ( + "DETECT_STACK_SET_DRIFT", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ESTIMATE_TEMPLATE_COST"] = ( + "ESTIMATE_TEMPLATE_COST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["EXECUTE_CHANGE_SET"] = ( + "EXECUTE_CHANGE_SET", + ( + "com.amazonaws.cloudformation#ChangeSetNotFoundException", + "com.amazonaws.cloudformation#InsufficientCapabilitiesException", + "com.amazonaws.cloudformation#InvalidChangeSetStatusException", + "com.amazonaws.cloudformation#TokenAlreadyExistsException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["EXECUTE_STACK_REFACTOR"] = ( + "EXECUTE_STACK_REFACTOR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_GENERATED_TEMPLATE"] = ( + "GET_GENERATED_TEMPLATE", + ("com.amazonaws.cloudformation#GeneratedTemplateNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_HOOK_RESULT"] = ( + "GET_HOOK_RESULT", + ("com.amazonaws.cloudformation#HookResultNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_STACK_POLICY"] = ("GET_STACK_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["GET_TEMPLATE"] = ( + "GET_TEMPLATE", + ("com.amazonaws.cloudformation#ChangeSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TEMPLATE_SUMMARY"] = ( + "GET_TEMPLATE_SUMMARY", + ("com.amazonaws.cloudformation#StackSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["IMPORT_STACKS_TO_STACK_SET"] = ( + "IMPORT_STACKS_TO_STACK_SET", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#LimitExceededException", + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + "com.amazonaws.cloudformation#StaleRequestException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CHANGE_SETS"] = ("LIST_CHANGE_SETS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_EXPORTS"] = ("LIST_EXPORTS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_GENERATED_TEMPLATES"] = ( + "LIST_GENERATED_TEMPLATES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_HOOK_RESULTS"] = ( + "LIST_HOOK_RESULTS", + ("com.amazonaws.cloudformation#HookResultNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_IMPORTS"] = ("LIST_IMPORTS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_RESOURCE_SCAN_RELATED_RESOURCES"] = ( + "LIST_RESOURCE_SCAN_RELATED_RESOURCES", + ( + "com.amazonaws.cloudformation#ResourceScanInProgressException", + "com.amazonaws.cloudformation#ResourceScanNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RESOURCE_SCAN_RESOURCES"] = ( + "LIST_RESOURCE_SCAN_RESOURCES", + ( + "com.amazonaws.cloudformation#ResourceScanInProgressException", + "com.amazonaws.cloudformation#ResourceScanNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RESOURCE_SCANS"] = ( + "LIST_RESOURCE_SCANS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_INSTANCE_RESOURCE_DRIFTS"] = ( + "LIST_STACK_INSTANCE_RESOURCE_DRIFTS", + ( + "com.amazonaws.cloudformation#OperationNotFoundException", + "com.amazonaws.cloudformation#StackInstanceNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_INSTANCES"] = ( + "LIST_STACK_INSTANCES", + ("com.amazonaws.cloudformation#StackSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_REFACTOR_ACTIONS"] = ( + "LIST_STACK_REFACTOR_ACTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_REFACTORS"] = ( + "LIST_STACK_REFACTORS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_RESOURCES"] = ( + "LIST_STACK_RESOURCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACKS"] = ("LIST_STACKS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS"] = ( + "LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS", + ("com.amazonaws.cloudformation#StackSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_SET_OPERATION_RESULTS"] = ( + "LIST_STACK_SET_OPERATION_RESULTS", + ( + "com.amazonaws.cloudformation#OperationNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_SET_OPERATIONS"] = ( + "LIST_STACK_SET_OPERATIONS", + ("com.amazonaws.cloudformation#StackSetNotFoundException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STACK_SETS"] = ("LIST_STACK_SETS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_TYPE_REGISTRATIONS"] = ( + "LIST_TYPE_REGISTRATIONS", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TYPES"] = ( + "LIST_TYPES", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TYPE_VERSIONS"] = ( + "LIST_TYPE_VERSIONS", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["PUBLISH_TYPE"] = ( + "PUBLISH_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RECORD_HANDLER_PROGRESS"] = ( + "RECORD_HANDLER_PROGRESS", + ( + "com.amazonaws.cloudformation#InvalidStateTransitionException", + "com.amazonaws.cloudformation#OperationStatusCheckFailedException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_PUBLISHER"] = ( + "REGISTER_PUBLISHER", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_TYPE"] = ( + "REGISTER_TYPE", + ("com.amazonaws.cloudformation#CFNRegistryException",), + ("aws.auth#sigv4",), +) + +_operation_data["ROLLBACK_STACK"] = ( + "ROLLBACK_STACK", + ("com.amazonaws.cloudformation#TokenAlreadyExistsException",), + ("aws.auth#sigv4",), +) + +_operation_data["SET_STACK_POLICY"] = ("SET_STACK_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["SET_TYPE_CONFIGURATION"] = ( + "SET_TYPE_CONFIGURATION", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SET_TYPE_DEFAULT_VERSION"] = ( + "SET_TYPE_DEFAULT_VERSION", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SIGNAL_RESOURCE"] = ("SIGNAL_RESOURCE", (), ("aws.auth#sigv4",)) + +_operation_data["START_RESOURCE_SCAN"] = ( + "START_RESOURCE_SCAN", + ( + "com.amazonaws.cloudformation#ResourceScanInProgressException", + "com.amazonaws.cloudformation#ResourceScanLimitExceededException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_STACK_SET_OPERATION"] = ( + "STOP_STACK_SET_OPERATION", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TEST_TYPE"] = ( + "TEST_TYPE", + ( + "com.amazonaws.cloudformation#CFNRegistryException", + "com.amazonaws.cloudformation#TypeNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_GENERATED_TEMPLATE"] = ( + "UPDATE_GENERATED_TEMPLATE", + ( + "com.amazonaws.cloudformation#AlreadyExistsException", + "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException", + "com.amazonaws.cloudformation#LimitExceededException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STACK"] = ( + "UPDATE_STACK", + ( + "com.amazonaws.cloudformation#InsufficientCapabilitiesException", + "com.amazonaws.cloudformation#TokenAlreadyExistsException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STACK_INSTANCES"] = ( + "UPDATE_STACK_INSTANCES", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackInstanceNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + "com.amazonaws.cloudformation#StaleRequestException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STACK_SET"] = ( + "UPDATE_STACK_SET", + ( + "com.amazonaws.cloudformation#InvalidOperationException", + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException", + "com.amazonaws.cloudformation#OperationInProgressException", + "com.amazonaws.cloudformation#StackInstanceNotFoundException", + "com.amazonaws.cloudformation#StackSetNotFoundException", + "com.amazonaws.cloudformation#StaleRequestException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_TERMINATION_PROTECTION"] = ( + "UPDATE_TERMINATION_PROTECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["VALIDATE_TEMPLATE"] = ("VALIDATE_TEMPLATE", (), ("aws.auth#sigv4",)) diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.pyi b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.pyi new file mode 100644 index 00000000..f42a9a2b --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/models.pyi @@ -0,0 +1,11350 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +class AccountFilterType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + INTERSECTION = "INTERSECTION" + DIFFERENCE = "DIFFERENCE" + UNION = "UNION" + +@dataclass(kw_only=True) +class AccountGateResult(_SerdeShape): + """ + Structure that contains the results of the account gate function which + CloudFormation invokes, if present, before proceeding with a StackSet + operation in an account and Region. + + For each account and Region, CloudFormation lets you specify a Lambda + function that encapsulates any requirements that must be met before + CloudFormation can proceed with a StackSet operation in that account and + Region. CloudFormation invokes the function each time a StackSet + operation is requested for that account and Region; if the function + returns `FAILED`, CloudFormation cancels the operation in that account + and Region, and sets the StackSet operation result status for that + account and Region to `FAILED`. + + For more information, see [Prevent failed StackSets deployments using + target account + gates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html) + in the *CloudFormation User Guide*. + """ + + status: str | None = ... + """ + The status of the account gate function. + + - `SUCCEEDED`: The account gate function has determined that the account + and Region passes any requirements for a StackSet operation to occur. + CloudFormation proceeds with the stack operation in that account and + Region. + + - `FAILED`: The account gate function has determined that the account + and Region doesn't meet the requirements for a StackSet operation to + occur. CloudFormation cancels the StackSet operation in that account + and Region, and sets the StackSet operation result status for that + account and Region to `FAILED`. + + - `SKIPPED`: CloudFormation has skipped calling the account gate + function for this account and Region, for one of the following + reasons: + + - An account gate function hasn't been specified for the account and + Region. CloudFormation proceeds with the StackSet operation in this + account and Region. + + - The `AWSCloudFormationStackSetExecutionRole` of the administration + account lacks permissions to invoke the function. CloudFormation + proceeds with the StackSet operation in this account and Region. + + - Either no action is necessary, or no action is possible, on the + stack. CloudFormation skips the StackSet operation in this account + and Region. + """ + status_reason: str | None = ... + """ + The reason for the account gate status assigned to this account and + Region for the StackSet operation. + """ + +class AccountGateStatus(UnknownEnumMixin, StrEnum): + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + SKIPPED = "SKIPPED" + +@dataclass(kw_only=True) +class AccountLimit(_SerdeShape): + """ + Describes the current CloudFormation limits for your account. + + CloudFormation has the following limits per account: + + - Number of concurrent resources + + - Number of stacks + + - Number of stack outputs + + For more information, see [Understand CloudFormation + quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) + in the *CloudFormation User Guide*. + """ + + name: str | None = ... + """ + The name of the account limit. + + Values: `ConcurrentResourcesLimit` | `StackLimit` | + `StackOutputsLimit` + """ + value: int | None = ... + """The value that's associated with the account limit name.""" + +@dataclass(kw_only=True) +class ActivateOrganizationsAccessInput(_SerdeShape): + """Dataclass for ActivateOrganizationsAccessInput structure.""" + +@dataclass(kw_only=True) +class ActivateOrganizationsAccessOutput(_SerdeShape): + """Dataclass for ActivateOrganizationsAccessOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ActivateTypeInput(_SerdeShape): + """Dataclass for ActivateTypeInput structure.""" + + type: str | None = ... + """ + The extension type. + + Conditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, + and `PublisherId`. + """ + public_type_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the public extension. + + Conditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, + and `PublisherId`. + """ + publisher_id: str | None = ... + """ + The ID of the extension publisher. + + Conditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, + and `PublisherId`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, + and `PublisherId`. + """ + type_name_alias: str | None = ... + """ + An alias to assign to the public extension in this account and Region. + If you specify an alias for the extension, CloudFormation treats the + alias as the extension type name within this account and Region. You + must use the alias to refer to the extension in your templates, API + calls, and CloudFormation console. + + An extension alias must be unique within a given account and Region. You + can activate the same public resource multiple times in the same account + and Region, using different type name aliases. + """ + auto_update: bool | None = ... + """ + Whether to automatically update the extension in this account and Region + when a new *minor* version is published by the extension publisher. + Major versions released by the publisher must be manually updated. + + The default is `true`. + """ + logging_config: LoggingConfig | None = ... + """Contains logging configuration information for an extension.""" + execution_role_arn: str | None = ... + """The name of the IAM execution role to use to activate the extension.""" + version_bump: str | None = ... + """ + Manually updates a previously-activated type to a new major or minor + version, if available. You can also use this parameter to update the + value of `AutoUpdate`. + + - `MAJOR`: CloudFormation updates the extension to the newest major + version, if one is available. + + - `MINOR`: CloudFormation updates the extension to the newest minor + version, if one is available. + """ + major_version: int | None = ... + """ + The major version of this extension you want to activate, if multiple + major versions are available. The default is the latest major version. + CloudFormation uses the latest available *minor* version of the major + version selected. + + You can specify `MajorVersion` or `VersionBump`, but not both. + """ + +@dataclass(kw_only=True) +class ActivateTypeOutput(_SerdeShape): + """Dataclass for ActivateTypeOutput structure.""" + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the activated extension in this + account and Region. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AfterValueFrom(UnknownEnumMixin, StrEnum): + TEMPLATE = "TEMPLATE" + +@dataclass(kw_only=True) +class AlreadyExistsException(ServiceError, _SerdeShape): + """The resource with the name requested already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Annotation(_SerdeShape): + """ + The `Annotation` data type. + + A `GetHookResult` call returns detailed information and remediation + guidance from Control Tower, Guard, Lambda, or custom Hooks for a Hook + invocation result. + """ + + annotation_name: str | None = ... + """ + An identifier for the evaluation logic that was used when invoking the + Hook. For Control Tower, this is the control ID. For Guard, this is the + rule ID. For Lambda and custom Hooks, this is a user-defined identifier. + """ + status: str | None = ... + """The status of the Hook invocation from the downstream service.""" + status_message: str | None = ... + """ + The explanation for the specific status assigned to this Hook + invocation. For example, \"Bucket does not block public access\". + """ + remediation_message: str | None = ... + """ + Suggests what to change if your Hook returns a `FAILED` status. For + example, \"Block public access to the bucket\". + """ + remediation_link: str | None = ... + """A URL that you can access for additional remediation guidance.""" + severity_level: str | None = ... + """The relative risk associated with any violations of this type.""" + +class AnnotationSeverityLevel(UnknownEnumMixin, StrEnum): + INFORMATIONAL = "INFORMATIONAL" + LOW = "LOW" + MEDIUM = "MEDIUM" + HIGH = "HIGH" + CRITICAL = "CRITICAL" + +class AnnotationStatus(UnknownEnumMixin, StrEnum): + PASSED = "PASSED" + FAILED = "FAILED" + SKIPPED = "SKIPPED" + +class AttributeChangeType(UnknownEnumMixin, StrEnum): + ADD = "Add" + REMOVE = "Remove" + MODIFY = "Modify" + SYNC_WITH_ACTUAL = "SyncWithActual" + +@dataclass(kw_only=True) +class AutoDeployment(_SerdeShape): + """ + Describes whether StackSets automatically deploys to Organizations + accounts that are added to a target organization or organizational unit + (OU). For more information, see [Enable or disable automatic deployments + for StackSets in + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-manage-auto-deployment.html) + in the *CloudFormation User Guide*. + """ + + enabled: bool | None = ... + """ + If set to `true`, StackSets automatically deploys additional stack + instances to Organizations accounts that are added to a target + organization or organizational unit (OU) in the specified Regions. If an + account is removed from a target organization or OU, StackSets deletes + stack instances from the account in the specified Regions. + """ + retain_stacks_on_account_removal: bool | None = ... + """ + If set to `true`, stack resources are retained when an account is + removed from a target organization or OU. If set to `false`, stack + resources are deleted. Specify only if `Enabled` is set to `True`. + """ + depends_on: list[str] | None = ... + """ + A list of StackSet ARNs that this StackSet depends on for + auto-deployment operations. When auto-deployment is triggered, + operations will be sequenced to ensure all dependencies complete + successfully before this StackSet's operation begins. + """ + +@dataclass(kw_only=True) +class BatchDescribeTypeConfigurationsError(_SerdeShape): + """ + Detailed information concerning an error generated during the setting of + configuration data for a CloudFormation extension. + """ + + error_code: str | None = ... + """The error code.""" + error_message: str | None = ... + """The error message.""" + type_configuration_identifier: TypeConfigurationIdentifier | None = ... + """ + Identifying information for the configuration of a CloudFormation + extension. + """ + +@dataclass(kw_only=True) +class BatchDescribeTypeConfigurationsInput(_SerdeShape): + """Dataclass for BatchDescribeTypeConfigurationsInput structure.""" + + type_configuration_identifiers: list[TypeConfigurationIdentifier] | None = ... + """The list of identifiers for the desired extension configurations.""" + +@dataclass(kw_only=True) +class BatchDescribeTypeConfigurationsOutput(_SerdeShape): + """Dataclass for BatchDescribeTypeConfigurationsOutput structure.""" + + errors: list[BatchDescribeTypeConfigurationsError] | None = ... + """ + A list of information concerning any errors generated during the setting + of the specified configurations. + """ + unprocessed_type_configurations: list[TypeConfigurationIdentifier] | None = ... + """ + A list of any of the specified extension configurations that + CloudFormation could not process for any reason. + """ + type_configurations: list[TypeConfigurationDetails] | None = ... + """ + A list of any of the specified extension configurations from the + CloudFormation registry. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class BeaconStackOperationStatus(UnknownEnumMixin, StrEnum): + IN_PROGRESS = "IN_PROGRESS" + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + +class BeforeValueFrom(UnknownEnumMixin, StrEnum): + PREVIOUS_DEPLOYMENT_STATE = "PREVIOUS_DEPLOYMENT_STATE" + ACTUAL_STATE = "ACTUAL_STATE" + +class CallAs(UnknownEnumMixin, StrEnum): + SELF = "SELF" + DELEGATED_ADMIN = "DELEGATED_ADMIN" + +@dataclass(kw_only=True) +class CancelUpdateStackInput(_SerdeShape): + """The input for the CancelUpdateStack action.""" + + stack_name: str | None = ... + """ + Note: + If you don't pass a parameter to `StackName`, the API returns a + response that describes all resources in the account. + + The IAM policy below can be added to IAM policies when you want to limit + resource-level permissions and avoid returning a response when no + parameter is sent in the request: + + `{ "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "cloudformation:DescribeStacks", "NotResource": "arn:aws:cloudformation:*:*:stack/*/*" }] }` + + The name or the unique stack ID that's associated with the stack. + """ + client_request_token: str | None = ... + """ + A unique identifier for this `CancelUpdateStack` request. Specify this + token if you plan to retry requests so that CloudFormation knows that + you're not attempting to cancel an update on a stack with the same + name. You might retry `CancelUpdateStack` requests to ensure that + CloudFormation successfully received them. + """ + +@dataclass(kw_only=True) +class CancelUpdateStackOutput(_SerdeShape): + """Dataclass for CancelUpdateStackOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class Capability(UnknownEnumMixin, StrEnum): + CAPABILITY_IAM = "CAPABILITY_IAM" + CAPABILITY_NAMED_IAM = "CAPABILITY_NAMED_IAM" + CAPABILITY_AUTO_EXPAND = "CAPABILITY_AUTO_EXPAND" + +class Category(UnknownEnumMixin, StrEnum): + REGISTERED = "REGISTERED" + ACTIVATED = "ACTIVATED" + THIRD_PARTY = "THIRD_PARTY" + AWS_TYPES = "AWS_TYPES" + +@dataclass(kw_only=True) +class CFNRegistryException(ServiceError, _SerdeShape): + """An error occurred during a CloudFormation registry operation.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Change(_SerdeShape): + """ + The `Change` structure describes the changes CloudFormation will perform + if you execute the change set. + """ + + type: str | None = ... + """ + The type of entity that CloudFormation changes. + + - `Resource` This change is for a resource. + """ + hook_invocation_count: int | None = ... + """ + Is either `null`, if no Hooks invoke for the resource, or contains the + number of Hooks that will invoke for the resource. + """ + resource_change: ResourceChange | None = ... + """ + A `ResourceChange` structure that describes the resource and action that + CloudFormation will perform. + """ + +class ChangeAction(UnknownEnumMixin, StrEnum): + ADD = "Add" + MODIFY = "Modify" + REMOVE = "Remove" + IMPORT_ = "Import" + DYNAMIC = "Dynamic" + SYNC_WITH_ACTUAL = "SyncWithActual" + +@dataclass(kw_only=True) +class ChangeSetHook(_SerdeShape): + """Specifies the resource, the Hook, and the Hook version to be invoked.""" + + invocation_point: str | None = ... + """ + The specific point in the provisioning process where the Hook is + invoked. + """ + failure_mode: str | None = ... + """ + Specify the Hook failure mode for non-compliant resources in the + followings ways. + + - `FAIL` Stops provisioning resources. + + - `WARN` Allows provisioning to continue with a warning message. + """ + type_name: str | None = ... + """ + The unique name for your Hook. Specifies a three-part namespace for your + Hook, with a recommended pattern of `Organization::Service::Hook`. + + Note: + The following organization namespaces are reserved and can't be used in + your Hook type names: + + - `Alexa` + + - `AMZN` + + - `Amazon` + + - `ASK` + + - `AWS` + + - `Custom` + + - `Dev` + """ + type_version_id: str | None = ... + """The version ID of the type specified.""" + type_configuration_version_id: str | None = ... + """The version ID of the type configuration.""" + target_details: ChangeSetHookTargetDetails | None = ... + """Specifies details about the target that the Hook will run against.""" + +@dataclass(kw_only=True) +class ChangeSetHookResourceTargetDetails(_SerdeShape): + """Specifies `RESOURCE` type target details for activated Hooks.""" + + logical_resource_id: str | None = ... + """The resource's logical ID, which is defined in the stack's template.""" + resource_type: str | None = ... + """The type of CloudFormation resource, such as `AWS::S3::Bucket`.""" + resource_action: str | None = ... + """Specifies the action of the resource.""" + +class ChangeSetHooksStatus(UnknownEnumMixin, StrEnum): + PLANNING = "PLANNING" + PLANNED = "PLANNED" + UNAVAILABLE = "UNAVAILABLE" + +@dataclass(kw_only=True) +class ChangeSetHookTargetDetails(_SerdeShape): + """Specifies target details for an activated Hook.""" + + target_type: str | None = ... + """The Hook target type.""" + resource_target_details: ChangeSetHookResourceTargetDetails | None = ... + """Required if `TargetType` is `RESOURCE`.""" + +@dataclass(kw_only=True) +class ChangeSetNotFoundException(ServiceError, _SerdeShape): + """ + The specified change set name or ID doesn't exit. To view valid change + sets for a stack, use the `ListChangeSets` operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ChangeSetStatus(UnknownEnumMixin, StrEnum): + CREATE_PENDING = "CREATE_PENDING" + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + CREATE_COMPLETE = "CREATE_COMPLETE" + DELETE_PENDING = "DELETE_PENDING" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETE_COMPLETE = "DELETE_COMPLETE" + DELETE_FAILED = "DELETE_FAILED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class ChangeSetSummary(_SerdeShape): + """ + The `ChangeSetSummary` structure describes a change set, its status, and + the stack with which it's associated. + """ + + stack_id: str | None = ... + """The ID of the stack with which the change set is associated.""" + stack_name: str | None = ... + """The name of the stack with which the change set is associated.""" + change_set_id: str | None = ... + """The ID of the change set.""" + change_set_name: str | None = ... + """The name of the change set.""" + execution_status: str | None = ... + """ + If the change set execution status is `AVAILABLE`, you can execute the + change set. If you can't execute the change set, the status indicates + why. For example, a change set might be in an `UNAVAILABLE` state + because CloudFormation is still creating it or in an `OBSOLETE` state + because the stack was already updated. + """ + status: str | None = ... + """ + The state of the change set, such as `CREATE_PENDING`, + `CREATE_COMPLETE`, or `FAILED`. + """ + status_reason: str | None = ... + """ + A description of the change set's status. For example, if your change + set is in the `FAILED` state, CloudFormation shows the error message. + """ + creation_time: datetime | None = ... + """The start time when the change set was created, in UTC.""" + description: str | None = ... + """Descriptive information about the change set.""" + include_nested_stacks: bool | None = ... + """ + Specifies the current setting of `IncludeNestedStacks` for the change + set. + """ + parent_change_set_id: str | None = ... + """The parent change set ID.""" + root_change_set_id: str | None = ... + """The root change set ID.""" + import_existing_resources: bool | None = ... + """Indicates if the change set imports resources that already exist.""" + +class ChangeSetType(UnknownEnumMixin, StrEnum): + CREATE = "CREATE" + UPDATE = "UPDATE" + IMPORT_ = "IMPORT" + +class ChangeSource(UnknownEnumMixin, StrEnum): + RESOURCE_REFERENCE = "ResourceReference" + PARAMETER_REFERENCE = "ParameterReference" + RESOURCE_ATTRIBUTE = "ResourceAttribute" + DIRECT_MODIFICATION = "DirectModification" + AUTOMATIC = "Automatic" + NO_MODIFICATION = "NoModification" + +class ChangeType(UnknownEnumMixin, StrEnum): + RESOURCE = "Resource" + +class ConcurrencyMode(UnknownEnumMixin, StrEnum): + STRICT_FAILURE_TOLERANCE = "STRICT_FAILURE_TOLERANCE" + SOFT_FAILURE_TOLERANCE = "SOFT_FAILURE_TOLERANCE" + +@dataclass(kw_only=True) +class ConcurrentResourcesLimitExceededException(ServiceError, _SerdeShape): + """ + No more than 5 generated templates can be in an `InProgress` or + `Pending` status at one time. This error is also returned if a generated + template that is in an `InProgress` or `Pending` status is attempted to + be updated or deleted. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ContinueUpdateRollbackInput(_SerdeShape): + """The input for the ContinueUpdateRollback action.""" + + stack_name: str | None = ... + """ + The name or the unique ID of the stack that you want to continue rolling + back. + + Note: + Don't specify the name of a nested stack (a stack that was created by + using the `AWS::CloudFormation::Stack` resource). Instead, use this + operation on the parent stack (the stack that contains the + `AWS::CloudFormation::Stack` resource). + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes to roll back the stack. CloudFormation uses the role's + credentials to make calls on your behalf. CloudFormation always uses + this role for all future operations on the stack. Provided that users + have permission to operate on the stack, CloudFormation uses this role + even if the users don't have permission to pass it. Ensure that the + role grants least permission. + + If you don't specify a value, CloudFormation uses the role that was + previously associated with the stack. If no role is available, + CloudFormation uses a temporary session that's generated from your user + credentials. + """ + resources_to_skip: list[str] | None = ... + """ + A list of the logical IDs of the resources that CloudFormation skips + during the continue update rollback operation. You can specify only + resources that are in the `UPDATE_FAILED` state because a rollback + failed. You can't specify resources that are in the `UPDATE_FAILED` + state for other reasons, for example, because an update was canceled. To + check why a resource update failed, use the DescribeStackResources + action, and view the resource status reason. + + Warning: + Specify this property to skip rolling back resources that CloudFormation + can't successfully roll back. We recommend that you + [troubleshoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) + resources before skipping them. CloudFormation sets the status of the + specified resources to `UPDATE_COMPLETE` and continues to roll back the + stack. After the rollback is complete, the state of the skipped + resources will be inconsistent with the state of the resources in the + stack template. Before performing another stack update, you must update + the stack or resources to be consistent with each other. If you don't, + subsequent stack updates might fail, and the stack will become + unrecoverable. + + Specify the minimum number of resources required to successfully roll + back your stack. For example, a failed resource update might cause + dependent resources to fail. In this case, it might not be necessary to + skip the dependent resources. + + To skip resources that are part of nested stacks, use the following + format: `NestedStackName.ResourceLogicalID`. If you want to specify the + logical ID of a stack resource (`Type: AWS::CloudFormation::Stack`) in + the `ResourcesToSkip` list, then its corresponding embedded stack must + be in one of the following states: `DELETE_IN_PROGRESS`, + `DELETE_COMPLETE`, or `DELETE_FAILED`. + + Note: + Don't confuse a child stack's name with its corresponding logical ID + defined in the parent stack. For an example of a continue update + rollback operation with nested stacks, see [Continue rolling back from + failed nested stack + updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks). + """ + client_request_token: str | None = ... + """ + A unique identifier for this `ContinueUpdateRollback` request. Specify + this token if you plan to retry requests so that CloudFormation knows + that you're not attempting to continue the rollback to a stack with the + same name. You might retry `ContinueUpdateRollback` requests to ensure + that CloudFormation successfully received them. + """ + force_rollback: bool | None = ... + """ + Specifies whether CloudFormation forces the rollback to continue by + skipping resources currently in the `UPDATE_FAILED` state. Use this + instead of listing each resource individually in `ResourcesToSkip`. Only + resources that entered the `UPDATE_FAILED` state because a rollback + failed are skipped. If you don't specify a value, the default is + `false` and CloudFormation doesn't skip any resources. + + `ForceRollback` and `ResourcesToSkip` are mutually exclusive. Specifying + both in the same request returns a validation error. + + Warning: + We recommend that you + [troubleshoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) + resources before skipping them. CloudFormation sets the status of the + skipped resources to `UPDATE_COMPLETE` and continues to roll back the + stack, including resources in nested stacks. After the rollback + completes, the skipped resources no longer match the resources in the + stack template. Before performing another stack update, you must update + the stack or resources to be consistent with each other. If you don't, + subsequent stack updates might fail, and the stack will become + unrecoverable. + + Drift detection reports skipped resources as `NOT_CHECKED`. For + guidance, see [Continue rolling back an + update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ContinueUpdateRollbackOutput(_SerdeShape): + """The output for a ContinueUpdateRollback operation.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateChangeSetInput(_SerdeShape): + """The input for the CreateChangeSet action.""" + + stack_name: str | None = ... + """ + The name or the unique ID of the stack for which you are creating a + change set. CloudFormation generates the change set by comparing this + stack's information with the information that you submit, such as a + modified template or different parameter input values. + """ + template_body: str | None = ... + """ + A structure that contains the body of the revised template, with a + minimum length of 1 byte and a maximum length of 51,200 bytes. + CloudFormation generates the change set by comparing this template with + the template of the stack that you specified. + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + template_url: str | None = ... + """ + The URL of the file that contains the revised template. The URL must + point to a template (max size: 1 MB) that's located in an Amazon S3 + bucket or a Systems Manager document. CloudFormation generates the + change set by comparing this template with the stack that you specified. + The location for an Amazon S3 bucket must start with `https://`. URLs + from S3 static websites are not supported. + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + use_previous_template: bool | None = ... + """ + Whether to reuse the template that's associated with the stack to + create the change set. + + When using templates with the `AWS::LanguageExtensions` transform, + provide the template instead of using `UsePreviousTemplate` to ensure + new parameter values and Systems Manager parameter updates are applied + correctly. For more information, see [AWS::LanguageExtensions + transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/transform-aws-languageextensions.html). + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + parameters: list[Parameter] | None = ... + """ + A list of `Parameter` structures that specify input parameters for the + change set. For more information, see the Parameter data type. + """ + capabilities: list[str] | None = ... + """ + In some cases, you must explicitly acknowledge that your stack template + contains certain capabilities in order for CloudFormation to create the + stack. + + - `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM` + + Some stack templates might include resources that can affect + permissions in your Amazon Web Services account, for example, by + creating new IAM users. For those stacks, you must explicitly + acknowledge this by specifying one of these capabilities. + + The following IAM resources require you to specify either the + `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability. + + - If you have IAM resources, you can specify either capability. + + - If you have IAM resources with custom names, you *must* specify + `CAPABILITY_NAMED_IAM`. + + - If you don't specify either of these capabilities, CloudFormation + returns an `InsufficientCapabilities` error. + + If your stack template contains these resources, we suggest that you + review all permissions associated with them and edit their permissions + if necessary. + + - [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html) + + - [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html) + + - [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html) + + - [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-managedpolicy.html) + + - [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html) + + - [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html) + + - [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) + + - [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html) + + For more information, see [Acknowledging IAM resources in + CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + + - `CAPABILITY_AUTO_EXPAND` + + Some template contain macros. Macros perform custom processing on + templates; this can include simple actions like find-and-replace + operations, all the way to extensive transformations of entire + templates. Because of this, users typically create a change set from + the processed template, so that they can review the changes resulting + from the macros before actually creating the stack. If your stack + template contains one or more macros, and you choose to create a stack + directly from the processed template, without first reviewing the + resulting changes in a change set, you must acknowledge this + capability. This includes the + [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html) + and + [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) + transforms, which are macros hosted by CloudFormation. + + Note: + This capacity doesn't apply to creating change sets, and specifying + it when creating change sets has no effect. + + If you want to create a stack from a stack template that contains + macros *and* nested stacks, you must create or update the stack + directly from the template using the CreateStack or UpdateStack + action, and specifying this capability. + + For more information about macros, see [Perform custom processing on + CloudFormation templates with template + macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + resource_types: list[str] | None = ... + """ + Specifies which resource types you can work with, such as + `AWS::EC2::Instance` or `Custom::MyCustomInstance`. + + If the list of resource types doesn't include a resource type that + you're updating, the stack update fails. By default, CloudFormation + grants permissions to all resource types. IAM uses this parameter for + condition keys in IAM policies for CloudFormation. For more information, + see [Control CloudFormation access with Identity and Access + Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html) + in the *CloudFormation User Guide*. + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes when executing the change set. CloudFormation uses the role's + credentials to make calls on your behalf. CloudFormation uses this role + for all future operations on the stack. Provided that users have + permission to operate on the stack, CloudFormation uses this role even + if the users don't have permission to pass it. Ensure that the role + grants least permission. + + If you don't specify a value, CloudFormation uses the role that was + previously associated with the stack. If no role is available, + CloudFormation uses a temporary session that is generated from your user + credentials. + """ + rollback_configuration: RollbackConfiguration | None = ... + """ + The rollback triggers for CloudFormation to monitor during stack + creation and updating operations, and for the specified monitoring + period afterwards. + """ + notification_ar_ns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of Amazon SNS topics that + CloudFormation associates with the stack. To remove all associated + notification topics, specify an empty list. + """ + tags: list[Tag] | None = ... + """ + Key-value pairs to associate with this stack. CloudFormation also + propagates these tags to resources in the stack. You can specify a + maximum of 50 tags. + """ + change_set_name: str | None = ... + """ + The name of the change set. The name must be unique among all change + sets that are associated with the specified stack. + + A change set name can contain only alphanumeric, case sensitive + characters, and hyphens. It must start with an alphabetical character + and can't exceed 128 characters. + """ + client_token: str | None = ... + """ + A unique identifier for this `CreateChangeSet` request. Specify this + token if you plan to retry requests so that CloudFormation knows that + you're not attempting to create another change set with the same name. + You might retry `CreateChangeSet` requests to ensure that CloudFormation + successfully received them. + """ + description: str | None = ... + """A description to help you identify this change set.""" + change_set_type: str | None = ... + """ + The type of change set operation. To create a change set for a new + stack, specify `CREATE`. To create a change set for an existing stack, + specify `UPDATE`. To create a change set for an import operation, + specify `IMPORT`. + + If you create a change set for a new stack, CloudFormation creates a + stack with a unique stack ID, but no template or resources. The stack + will be in the `REVIEW_IN_PROGRESS` state until you execute the change + set. + + By default, CloudFormation specifies `UPDATE`. You can't use the + `UPDATE` type to create a change set for a new stack or the `CREATE` + type to create a change set for an existing stack. + """ + resources_to_import: list[ResourceToImport] | None = ... + """The resources to import into your stack.""" + include_nested_stacks: bool | None = ... + """ + Creates a change set for the all nested stacks specified in the + template. The default behavior of this action is set to `False`. To + include nested sets in a change set, specify `True`. + """ + on_stack_failure: str | None = ... + """ + Determines what action will be taken if stack creation fails. If this + parameter is specified, the `DisableRollback` parameter to the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation must not be specified. This must be one of these values: + + - `DELETE` - Deletes the change set if the stack creation fails. This is + only valid when the `ChangeSetType` parameter is set to `CREATE`. If + the deletion of the stack fails, the status of the stack is + `DELETE_FAILED`. + + - `DO_NOTHING` - if the stack creation fails, do nothing. This is + equivalent to specifying `true` for the `DisableRollback` parameter to + the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation. + + - `ROLLBACK` - if the stack creation fails, roll back the stack. This is + equivalent to specifying `false` for the `DisableRollback` parameter + to the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation. + + For nested stacks, when the `OnStackFailure` parameter is set to + `DELETE` for the change set for the parent stack, any failure in a child + stack will cause the parent stack creation to fail and all stacks to be + deleted. + """ + import_existing_resources: bool | None = ... + """ + Indicates if the change set auto-imports resources that already exist. + For more information, see [Import Amazon Web Services resources into a + CloudFormation stack + automatically](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/import-resources-automatically.html) + in the *CloudFormation User Guide*. + + Note: + This parameter can only import resources that have custom names in + templates. For more information, see [name + type](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-name.html) + in the *CloudFormation User Guide*. To import resources that do not + accept custom names, such as EC2 instances, use the `ResourcesToImport` + parameter instead. + """ + deployment_mode: str | None = ... + """ + Determines how CloudFormation handles configuration drift during + deployment. + + - `REVERT_DRIFT` -- Creates a drift-aware change set that brings actual + resource states in line with template definitions. Provides a + three-way comparison between actual state, previous deployment state, + and desired state. + + For more information, see [Using drift-aware change + sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/drift-aware-change-sets.html) + in the *CloudFormation User Guide*. + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for this stack operation, including the + deployment mode. + """ + disable_validation: bool | None = ... + """ + Set to `true` to disable pre-deployment validations in changeset or + stack operations. + + Default: `false` + """ + +@dataclass(kw_only=True) +class CreateChangeSetOutput(_SerdeShape): + """The output for the CreateChangeSet action.""" + + id: str | None = ... + """The Amazon Resource Name (ARN) of the change set.""" + stack_id: str | None = ... + """The unique ID of the stack.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatedButModifiedException(ServiceError, _SerdeShape): + """The specified resource exists, but has been changed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateGeneratedTemplateInput(_SerdeShape): + """Dataclass for CreateGeneratedTemplateInput structure.""" + + resources: list[ResourceDefinition] | None = ... + """ + An optional list of resources to be included in the generated template. + + If no resources are specified,the template will be created without any + resources. Resources can be added to the template using the + `UpdateGeneratedTemplate` API action. + """ + generated_template_name: str | None = ... + """The name assigned to the generated template.""" + stack_name: str | None = ... + """ + An optional name or ARN of a stack to use as the base stack for the + generated template. + """ + template_configuration: TemplateConfiguration | None = ... + """ + The configuration details of the generated template, including the + `DeletionPolicy` and `UpdateReplacePolicy`. + """ + +@dataclass(kw_only=True) +class CreateGeneratedTemplateOutput(_SerdeShape): + """Dataclass for CreateGeneratedTemplateOutput structure.""" + + generated_template_id: str | None = ... + """The ID of the generated template.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStackInput(_SerdeShape): + """The input for CreateStack action.""" + + stack_name: str | None = ... + """ + The name that's associated with the stack. The name must be unique in + the Region in which you are creating the stack. + + Note: + A stack name can contain only alphanumeric characters (case sensitive) + and hyphens. It must start with an alphabetical character and can't be + longer than 128 characters. + """ + template_body: str | None = ... + """ + Structure that contains the template body with a minimum length of 1 + byte and a maximum length of 51,200 bytes. + + Conditional: You must specify either `TemplateBody` or `TemplateURL`, + but not both. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template (max size: 1 MB) that's located in an Amazon S3 bucket or a + Systems Manager document. The location for an Amazon S3 bucket must + start with `https://`. URLs from S3 static websites are not supported. + + Conditional: You must specify either the `TemplateBody` or the + `TemplateURL` parameter, but not both. + """ + parameters: list[Parameter] | None = ... + """ + A list of `Parameter` structures that specify input parameters for the + stack. For more information, see the + [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html) + data type. + """ + disable_rollback: bool | None = ... + """ + Set to `true` to disable rollback of the stack if stack creation failed. + You can specify either `DisableRollback` or `OnFailure`, but not both. + + Default: `false` + """ + rollback_configuration: RollbackConfiguration | None = ... + """ + The rollback triggers for CloudFormation to monitor during stack + creation and updating operations, and for the specified monitoring + period afterwards. + """ + timeout_in_minutes: int | None = ... + """ + The amount of time that can pass before the stack status becomes + `CREATE_FAILED`; if `DisableRollback` is not set or is set to `false`, + the stack will be rolled back. + """ + notification_ar_ns: list[str] | None = ... + """ + The Amazon SNS topic ARNs to publish stack related events. You can find + your Amazon SNS topic ARNs using the Amazon SNS console or your Command + Line Interface (CLI). + """ + capabilities: list[str] | None = ... + """ + In some cases, you must explicitly acknowledge that your stack template + contains certain capabilities in order for CloudFormation to create the + stack. + + - `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM` + + Some stack templates might include resources that can affect + permissions in your Amazon Web Services account; for example, by + creating new IAM users. For those stacks, you must explicitly + acknowledge this by specifying one of these capabilities. + + The following IAM resources require you to specify either the + `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability. + + - If you have IAM resources, you can specify either capability. + + - If you have IAM resources with custom names, you *must* specify + `CAPABILITY_NAMED_IAM`. + + - If you don't specify either of these capabilities, CloudFormation + returns an `InsufficientCapabilities` error. + + If your stack template contains these resources, we recommend that you + review all permissions associated with them and edit their permissions + if necessary. + + - [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html) + + - [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html) + + - [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html) + + - [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-managedpolicy.html) + + - [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html) + + - [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html) + + - [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) + + - [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html) + + For more information, see [Acknowledging IAM resources in + CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + + - `CAPABILITY_AUTO_EXPAND` + + Some template contain macros. Macros perform custom processing on + templates; this can include simple actions like find-and-replace + operations, all the way to extensive transformations of entire + templates. Because of this, users typically create a change set from + the processed template, so that they can review the changes resulting + from the macros before actually creating the stack. If your stack + template contains one or more macros, and you choose to create a stack + directly from the processed template, without first reviewing the + resulting changes in a change set, you must acknowledge this + capability. This includes the + [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html) + and + [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) + transforms, which are macros hosted by CloudFormation. + + If you want to create a stack from a stack template that contains + macros *and* nested stacks, you must create the stack directly from + the template using this capability. + + Warning: + You should only create stacks directly from a stack template that + contains macros if you know what processing the macro performs. + + Each macro relies on an underlying Lambda service function for + processing stack templates. Be aware that the Lambda function owner + can update the function operation without CloudFormation being + notified. + + For more information, see [Perform custom processing on CloudFormation + templates with template + macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + resource_types: list[str] | None = ... + """ + Specifies which resource types you can work with, such as + `AWS::EC2::Instance` or `Custom::MyCustomInstance`. + + If the list of resource types doesn't include a resource that you're + creating, the stack creation fails. By default, CloudFormation grants + permissions to all resource types. IAM uses this parameter for + CloudFormation-specific condition keys in IAM policies. For more + information, see [Control CloudFormation access with Identity and Access + Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html). + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes to create the stack. CloudFormation uses the role's credentials + to make calls on your behalf. CloudFormation always uses this role for + all future operations on the stack. Provided that users have permission + to operate on the stack, CloudFormation uses this role even if the users + don't have permission to pass it. Ensure that the role grants least + privilege. + + If you don't specify a value, CloudFormation uses the role that was + previously associated with the stack. If no role is available, + CloudFormation uses a temporary session that's generated from your user + credentials. + """ + on_failure: str | None = ... + """ + Determines what action will be taken if stack creation fails. This must + be one of: `DO_NOTHING`, `ROLLBACK`, or `DELETE`. You can specify either + `OnFailure` or `DisableRollback`, but not both. + + Note: + Although the default setting is `ROLLBACK`, there is one exception. This + exception occurs when a StackSet attempts to deploy a stack instance and + the stack instance fails to create successfully. In this case, the + `CreateStack` call overrides the default setting and sets the value of + `OnFailure` to `DELETE`. + + Default: `ROLLBACK` + """ + stack_policy_body: str | None = ... + """ + Structure that contains the stack policy body. For more information, see + [Prevent updates to stack + resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) + in the *CloudFormation User Guide*. You can specify either the + `StackPolicyBody` or the `StackPolicyURL` parameter, but not both. + """ + stack_policy_url: str | None = ... + """ + Location of a file that contains the stack policy. The URL must point to + a policy (maximum size: 16 KB) located in an S3 bucket in the same + Region as the stack. The location for an Amazon S3 bucket must start + with `https://`. URLs from S3 static websites are not supported. + + You can specify either the `StackPolicyBody` or the `StackPolicyURL` + parameter, but not both. + """ + tags: list[Tag] | None = ... + """ + Key-value pairs to associate with this stack. CloudFormation also + propagates these tags to the resources created in the stack. A maximum + number of 50 tags can be specified. + """ + client_request_token: str | None = ... + """ + A unique identifier for this `CreateStack` request. Specify this token + if you plan to retry requests so that CloudFormation knows that you're + not attempting to create a stack with the same name. You might retry + `CreateStack` requests to ensure that CloudFormation successfully + received them. + + All events initiated by a given stack operation are assigned the same + client request token, which you can use to track operations. For + example, if you execute a `CreateStack` operation with the token + `token1`, then all the `StackEvents` generated by that operation will + have `ClientRequestToken` set as `token1`. + + In the console, stack operations display the client request token on the + Events tab. Stack operations that are initiated from the console use the + token format *Console-StackOperation-ID*, which helps you easily + identify the stack operation . For example, if you create a stack using + the console, each stack event would be assigned the same token in the + following format: + `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`. + """ + enable_termination_protection: bool | None = ... + """ + Whether to enable termination protection on the specified stack. If a + user attempts to delete a stack with termination protection enabled, the + operation fails and the stack remains unchanged. For more information, + see [Protect CloudFormation stacks from being + deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + in the *CloudFormation User Guide*. Termination protection is + deactivated on stacks by default. + + For [nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + termination protection is set on the root stack and can't be changed + directly on the nested stack. + """ + retain_except_on_create: bool | None = ... + """ + When set to `true`, newly created resources are deleted when the + operation rolls back. This includes newly created resources marked with + a deletion policy of `Retain`. + + Default: `false` + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for this stack operation, including the + deployment mode. + """ + disable_validation: bool | None = ... + """ + Set to `true` to disable pre-deployment validations in changeset or + stack operations. + + Default: `false` + """ + +@dataclass(kw_only=True) +class CreateStackInstancesInput(_SerdeShape): + """Dataclass for CreateStackInstancesInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to create stack + instances from. + """ + accounts: list[str] | None = ... + """ + [Self-managed permissions] The account IDs of one or more Amazon Web + Services accounts that you want to create stack instances in the + specified Region(s) for. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + deployment_targets: DeploymentTargets | None = ... + """ + [Service-managed permissions] The Organizations accounts in which to + create stack instances in the specified Amazon Web Services Regions. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + regions: list[str] | None = ... + """ + The names of one or more Amazon Web Services Regions where you want to + create stack instances using the specified Amazon Web Services accounts. + """ + parameter_overrides: list[Parameter] | None = ... + """ + A list of StackSet parameters whose values you want to override in the + selected stack instances. + + Any overridden parameter values will be applied to all stack instances + in the specified accounts and Amazon Web Services Regions. When + specifying parameters and their values, be aware of how CloudFormation + sets parameter values during stack instance operations: + + - To override the current value for a parameter, include the parameter + and specify its value. + + - To leave an overridden parameter set to its present value, include the + parameter and specify `UsePreviousValue` as `true`. (You can't + specify both a value and set `UsePreviousValue` to `true`.) + + - To set an overridden parameter back to the value specified in the + StackSet, specify a parameter list but don't include the parameter in + the list. + + - To leave all parameters set to their present values, don't specify + this property at all. + + During StackSet updates, any parameter values overridden for a stack + instance aren't updated, but retain their overridden value. + + You can only override the parameter *values* that are specified in the + StackSet; to add or delete a parameter itself, use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update the StackSet template. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """Preferences for how CloudFormation performs this StackSet operation.""" + operation_id: str | None = ... + """ + The unique identifier for this StackSet operation. + + The operation ID also functions as an idempotency token, to ensure that + CloudFormation performs the StackSet operation only once, even if you + retry the request multiple times. You might retry StackSet operation + requests to ensure that CloudFormation successfully received them. + + If you don't specify an operation ID, the SDK generates one + automatically. + + Repeating this StackSet operation with a new operation ID retries all + stack instances whose status is `OUTDATED`. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class CreateStackInstancesOutput(_SerdeShape): + """Dataclass for CreateStackInstancesOutput structure.""" + + operation_id: str | None = ... + """The unique identifier for this StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStackOutput(_SerdeShape): + """The output for a CreateStack action.""" + + stack_id: str | None = ... + """Unique identifier of the stack.""" + operation_id: str | None = ... + """ + A unique identifier for this stack operation that can be used to track + the operation's progress and events. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStackRefactorInput(_SerdeShape): + """Dataclass for CreateStackRefactorInput structure.""" + + description: str | None = ... + """A description to help you identify the stack refactor.""" + enable_stack_creation: bool | None = ... + """Determines if a new stack is created with the refactor.""" + resource_mappings: list[ResourceMapping] | None = ... + """ + The mappings for the stack resource `Source` and stack resource + `Destination`. + """ + stack_definitions: list[StackDefinition] | None = ... + """The stacks being refactored.""" + +@dataclass(kw_only=True) +class CreateStackRefactorOutput(_SerdeShape): + """Dataclass for CreateStackRefactorOutput structure.""" + + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStackSetInput(_SerdeShape): + """Dataclass for CreateStackSetInput structure.""" + + stack_set_name: str | None = ... + """ + The name to associate with the StackSet. The name must be unique in the + Region where you create your StackSet. + + Note: + A stack name can contain only alphanumeric characters (case-sensitive) + and hyphens. It must start with an alphabetic character and can't be + longer than 128 characters. + """ + description: str | None = ... + """ + A description of the StackSet. You can use the description to identify + the StackSet's purpose or other important information. + """ + template_body: str | None = ... + """ + The structure that contains the template body, with a minimum length of + 1 byte and a maximum length of 51,200 bytes. + + Conditional: You must specify either the `TemplateBody` or the + `TemplateURL` parameter, but not both. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template (maximum size: 1 MB) that's located in an Amazon S3 bucket + or a Systems Manager document. The location for an Amazon S3 bucket must + start with `https://`. S3 static website URLs are not supported. + + Conditional: You must specify either the `TemplateBody` or the + `TemplateURL` parameter, but not both. + """ + stack_id: str | None = ... + """ + The stack ID you are importing into a new StackSet. Specify the Amazon + Resource Name (ARN) of the stack. + """ + parameters: list[Parameter] | None = ... + """The input parameters for the StackSet template.""" + capabilities: list[str] | None = ... + """ + In some cases, you must explicitly acknowledge that your StackSet + template contains certain capabilities in order for CloudFormation to + create the StackSet and related stack instances. + + - `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM` + + Some stack templates might include resources that can affect + permissions in your Amazon Web Services account; for example, by + creating new IAM users. For those StackSets, you must explicitly + acknowledge this by specifying one of these capabilities. + + The following IAM resources require you to specify either the + `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability. + + - If you have IAM resources, you can specify either capability. + + - If you have IAM resources with custom names, you *must* specify + `CAPABILITY_NAMED_IAM`. + + - If you don't specify either of these capabilities, CloudFormation + returns an `InsufficientCapabilities` error. + + If your stack template contains these resources, we recommend that you + review all permissions associated with them and edit their permissions + if necessary. + + - [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html) + + - [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html) + + - [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html) + + - [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html) + + - [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html) + + - [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) + + - [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html) + + For more information, see [Acknowledging IAM resources in + CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + + - `CAPABILITY_AUTO_EXPAND` + + Some templates reference macros. If your StackSet template references + one or more macros, you must create the StackSet directly from the + processed template, without first reviewing the resulting changes in a + change set. To create the StackSet directly, you must acknowledge this + capability. For more information, see [Perform custom processing on + CloudFormation templates with template + macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + + Warning: + StackSets with service-managed permissions don't currently support + the use of macros in templates. (This includes the + [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html) + and + [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) + transforms, which are macros hosted by CloudFormation.) Even if you + specify this capability for a StackSet with service-managed + permissions, if you reference a macro in your template the StackSet + operation will fail. + """ + tags: list[Tag] | None = ... + """ + The key-value pairs to associate with this StackSet and the stacks + created from it. CloudFormation also propagates these tags to supported + resources that are created in the stacks. A maximum number of 50 tags + can be specified. + + If you specify tags as part of a `CreateStackSet` action, CloudFormation + checks to see if you have the required IAM permission to tag resources. + If you don't, the entire `CreateStackSet` action fails with an + `access denied` error, and the StackSet is not created. + """ + administration_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to use to create this + StackSet. + + Specify an IAM role only if you are using customized administrator roles + to control which users or groups can manage specific StackSets within + the same administrator account. For more information, see [Grant + self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) + in the *CloudFormation User Guide*. + + Valid only if the permissions model is `SELF_MANAGED`. + """ + execution_role_name: str | None = ... + """ + The name of the IAM execution role to use to create the StackSet. If you + do not specify an execution role, CloudFormation uses the + `AWSCloudFormationStackSetExecutionRole` role for the StackSet + operation. + + Specify an IAM role only if you are using customized execution roles to + control which stack resources users and groups can include in their + StackSets. + + Valid only if the permissions model is `SELF_MANAGED`. + """ + permission_model: str | None = ... + """ + Describes how the IAM roles required for StackSet operations are + created. By default, `SELF-MANAGED` is specified. + + - With `self-managed` permissions, you must create the administrator and + execution roles required to deploy to target accounts. For more + information, see [Grant self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html). + + - With `service-managed` permissions, StackSets automatically creates + the IAM roles required to deploy to accounts managed by Organizations. + For more information, see [Activate trusted access for StackSets with + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html). + """ + auto_deployment: AutoDeployment | None = ... + """ + Describes whether StackSets automatically deploys to Organizations + accounts that are added to the target organization or organizational + unit (OU). For more information, see [Enable or disable automatic + deployments for StackSets in + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-manage-auto-deployment.html) + in the *CloudFormation User Guide*. + + Required if the permissions model is `SERVICE_MANAGED`. (Not used with + self-managed permissions.) + """ + call_as: str | None = ... + """ + Specifies whether you are acting as an account administrator in the + organization's management account or as a delegated administrator in a + member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - To create a StackSet with service-managed permissions while signed in + to the management account, specify `SELF`. + + - To create a StackSet with service-managed permissions while signed in + to a delegated administrator account, specify `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + admin in the management account. For more information, see [Register a + delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + + StackSets with service-managed permissions are created in the management + account, including StackSets that are created by delegated + administrators. + + Valid only if the permissions model is `SERVICE_MANAGED`. + """ + client_request_token: str | None = ... + """ + A unique identifier for this `CreateStackSet` request. Specify this + token if you plan to retry requests so that CloudFormation knows that + you're not attempting to create another StackSet with the same name. + You might retry `CreateStackSet` requests to ensure that CloudFormation + successfully received them. + + If you don't specify an operation ID, the SDK generates one + automatically. + """ + managed_execution: ManagedExecution | None = ... + """ + Describes whether CloudFormation performs non-conflicting operations + concurrently and queues conflicting operations. + """ + +@dataclass(kw_only=True) +class CreateStackSetOutput(_SerdeShape): + """Dataclass for CreateStackSetOutput structure.""" + + stack_set_id: str | None = ... + """The ID of the StackSet that you're creating.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeactivateOrganizationsAccessInput(_SerdeShape): + """Dataclass for DeactivateOrganizationsAccessInput structure.""" + +@dataclass(kw_only=True) +class DeactivateOrganizationsAccessOutput(_SerdeShape): + """Dataclass for DeactivateOrganizationsAccessOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeactivateTypeInput(_SerdeShape): + """Dataclass for DeactivateTypeInput structure.""" + + type_name: str | None = ... + """ + The type name of the extension in this account and Region. If you + specified a type name alias when enabling the extension, use the type + name alias. + + Conditional: You must specify either `Arn`, or `TypeName` and `Type`. + """ + type: str | None = ... + """ + The extension type. + + Conditional: You must specify either `Arn`, or `TypeName` and `Type`. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the extension in this account and + Region. + + Conditional: You must specify either `Arn`, or `TypeName` and `Type`. + """ + +@dataclass(kw_only=True) +class DeactivateTypeOutput(_SerdeShape): + """Dataclass for DeactivateTypeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteChangeSetInput(_SerdeShape): + """The input for the DeleteChangeSet action.""" + + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the change set that you want + to delete. + """ + stack_name: str | None = ... + """ + If you specified the name of a change set to delete, specify the stack + name or Amazon Resource Name (ARN) that's associated with it. + """ + +@dataclass(kw_only=True) +class DeleteChangeSetOutput(_SerdeShape): + """The output for the DeleteChangeSet action.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteGeneratedTemplateInput(_SerdeShape): + """Dataclass for DeleteGeneratedTemplateInput structure.""" + + generated_template_name: str | None = ... + """The name or Amazon Resource Name (ARN) of a generated template.""" + +@dataclass(kw_only=True) +class DeleteGeneratedTemplateOutput(_SerdeShape): + """Dataclass for DeleteGeneratedTemplateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteStackInput(_SerdeShape): + """The input for DeleteStack action.""" + + stack_name: str | None = ... + """The name or the unique stack ID that's associated with the stack.""" + retain_resources: list[str] | None = ... + """ + For stacks in the `DELETE_FAILED` state, a list of resource logical IDs + that are associated with the resources you want to retain. During + deletion, CloudFormation deletes the stack but doesn't delete the + retained resources. + + Retaining resources is useful when you can't delete a resource, such as + a non-empty S3 bucket, but you want to delete the stack. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes to delete the stack. CloudFormation uses the role's credentials + to make calls on your behalf. + + If you don't specify a value, CloudFormation uses the role that was + previously associated with the stack. If no role is available, + CloudFormation uses a temporary session that's generated from your user + credentials. + """ + client_request_token: str | None = ... + """ + A unique identifier for this `DeleteStack` request. Specify this token + if you plan to retry requests so that CloudFormation knows that you're + not attempting to delete a stack with the same name. You might retry + `DeleteStack` requests to ensure that CloudFormation successfully + received them. + + All events initiated by a given stack operation are assigned the same + client request token, which you can use to track operations. For + example, if you execute a `CreateStack` operation with the token + `token1`, then all the `StackEvents` generated by that operation will + have `ClientRequestToken` set as `token1`. + + In the console, stack operations display the client request token on the + Events tab. Stack operations that are initiated from the console use the + token format *Console-StackOperation-ID*, which helps you easily + identify the stack operation . For example, if you create a stack using + the console, each stack event would be assigned the same token in the + following format: + `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`. + """ + deletion_mode: str | None = ... + """ + Specifies the deletion mode for the stack. Possible values are: + + - `STANDARD` - Use the standard behavior. Specifying this value is the + same as not specifying this parameter. + + - `FORCE_DELETE_STACK` - Delete the stack if it's stuck in a + `DELETE_FAILED` state due to resource deletion failure. + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for this stack operation, including the + deployment mode. + """ + +@dataclass(kw_only=True) +class DeleteStackInstancesInput(_SerdeShape): + """Dataclass for DeleteStackInstancesInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to delete stack + instances for. + """ + accounts: list[str] | None = ... + """ + [Self-managed permissions] The account IDs of the Amazon Web Services + accounts that you want to delete stack instances for. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + deployment_targets: DeploymentTargets | None = ... + """ + [Service-managed permissions] The Organizations accounts from which to + delete stack instances. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + regions: list[str] | None = ... + """ + The Amazon Web Services Regions where you want to delete StackSet + instances. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """Preferences for how CloudFormation performs this StackSet operation.""" + retain_stacks: bool | None = ... + """ + Removes the stack instances from the specified StackSet, but doesn't + delete the stacks. You can't reassociate a retained stack or add an + existing, saved stack to a new stack set. + + For more information, see [StackSet operation + options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + """ + operation_id: str | None = ... + """ + The unique identifier for this StackSet operation. + + If you don't specify an operation ID, the SDK generates one + automatically. + + The operation ID also functions as an idempotency token, to ensure that + CloudFormation performs the StackSet operation only once, even if you + retry the request multiple times. You can retry StackSet operation + requests to ensure that CloudFormation successfully received them. + + Repeating this StackSet operation with a new operation ID retries all + stack instances whose status is `OUTDATED`. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DeleteStackInstancesOutput(_SerdeShape): + """Dataclass for DeleteStackInstancesOutput structure.""" + + operation_id: str | None = ... + """The unique identifier for this StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteStackOutput(_SerdeShape): + """Dataclass for DeleteStackOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteStackSetInput(_SerdeShape): + """Dataclass for DeleteStackSetInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you're deleting. You can + obtain this value by running ListStackSets. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DeleteStackSetOutput(_SerdeShape): + """Dataclass for DeleteStackSetOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DeletionMode(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + FORCE_DELETE_STACK = "FORCE_DELETE_STACK" + +@dataclass(kw_only=True) +class DeploymentConfig(_SerdeShape): + """ + The deployment configuration for a stack operation, including the + deployment mode. + """ + + mode: str | None = ... + """ + Specifies the deployment mode for the stack operation. Possible values + are: + + - `STANDARD` - Use the standard deployment behavior, ensuring resources + are ready to serve traffic before completing the operation. This is + the default. You do not need to specify this value explicitly. + + - `EXPRESS` - Complete the stack operation when resource configuration + is applied, without waiting for resources to become ready to serve + traffic. Resources continue becoming ready in the background. + """ + disable_rollback: bool | None = ... + """ + Specifies whether to disable rollback of the stack if the stack + operation fails. + + Default: `false` + """ + +class DeploymentConfigMode(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + EXPRESS = "EXPRESS" + +class DeploymentMode(UnknownEnumMixin, StrEnum): + REVERT_DRIFT = "REVERT_DRIFT" + +@dataclass(kw_only=True) +class DeploymentTargets(_SerdeShape): + """ + Specifies the Organizations accounts where you want to create, update, + or delete stack instances. You can target either your entire + organization or specific accounts using organizational units (OUs) and + account filter options. + + CloudFormation doesn't deploy stack instances to the organization + management account, even if the organization management account is in + your organization or in an OU in your organization. + + When performing create operations, if you specify both + `OrganizationalUnitIds` and `Accounts`, you must also specify the + `AccountFilterType` property. + """ + + accounts: list[str] | None = ... + """ + The Amazon Web Services account IDs where you want to perform stack + operations. How these accounts are used depends on the + `AccountFilterType` property. + + If you have many account numbers, you can provide those accounts using + the `AccountsUrl` property instead. + """ + accounts_url: str | None = ... + """ + The Amazon S3 URL path to a file that contains a list of Amazon Web + Services account IDs. The file format must be either `.csv` or `.txt`, + and the data can be comma-separated or new-line-separated. There is + currently a 10MB limit for the data (approximately 800,000 accounts). + + This property serves the same purpose as `Accounts` but allows you to + specify a large number of accounts. + """ + organizational_unit_ids: list[str] | None = ... + """ + The organization root ID or organizational unit (OU) IDs where you want + to perform stack operations. CloudFormation will perform operations on + accounts within these OUs and their child OUs. + """ + account_filter_type: str | None = ... + """ + Refines which accounts will have stack operations performed on them by + specifying how to use the `Accounts` and `OrganizationalUnitIds` + properties together. + + The following values determine how CloudFormation selects target + accounts: + + - `INTERSECTION`: Performs stack operations only on specific individual + accounts within the selected OUs. Only accounts that are both + specified in the `Accounts` property and belong to the specified OUs + will be targeted. + + - `DIFFERENCE`: Performs stack operations on all accounts in the + selected OUs except for specific accounts listed in the `Accounts` + property. This enables you to exclude certain accounts within an OU, + such as suspended accounts. + + - `UNION`: Performs stack operations on the specified OUs plus + additional individual accounts listed in the `Accounts` property. This + is the default value if `AccountFilterType` is not provided. This lets + you target an entire OU and individual accounts from a different OU in + one request. Note that `UNION` is not supported for + `CreateStackInstances` operations. + + - `NONE`: Performs stack operations on all accounts in the specified + organizational units (OUs). + """ + +class DeprecatedStatus(UnknownEnumMixin, StrEnum): + LIVE = "LIVE" + DEPRECATED = "DEPRECATED" + +@dataclass(kw_only=True) +class DeregisterTypeInput(_SerdeShape): + """Dataclass for DeregisterTypeInput structure.""" + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type: str | None = ... + """ + The kind of extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + version_id: str | None = ... + """ + The ID of a specific version of the extension. The version ID is the + value at the end of the Amazon Resource Name (ARN) assigned to the + extension version when it is registered. + """ + +@dataclass(kw_only=True) +class DeregisterTypeOutput(_SerdeShape): + """Dataclass for DeregisterTypeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAccountLimitsInput(_SerdeShape): + """The input for the DescribeAccountLimits action.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class DescribeAccountLimitsOutput(_SerdeShape): + """The output for the DescribeAccountLimits action.""" + + account_limits: list[AccountLimit] | None = ... + """ + An account limit structure that contain a list of CloudFormation account + limits and their values. + """ + next_token: str | None = ... + """ + If the output exceeds 1 MB in size, a string that identifies the next + page of limits. If no additional page exists, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeChangeSetHooksInput(_SerdeShape): + """Dataclass for DescribeChangeSetHooksInput structure.""" + + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the change set that you want + to describe. + """ + stack_name: str | None = ... + """ + If you specified the name of a change set, specify the stack name or + stack ID (ARN) of the change set you want to describe. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + logical_resource_id: str | None = ... + """ + If specified, lists only the Hooks related to the specified + `LogicalResourceId`. + """ + +@dataclass(kw_only=True) +class DescribeChangeSetHooksOutput(_SerdeShape): + """Dataclass for DescribeChangeSetHooksOutput structure.""" + + change_set_id: str | None = ... + """The change set identifier (stack ID).""" + change_set_name: str | None = ... + """The change set name.""" + hooks: list[ChangeSetHook] | None = ... + """List of Hook objects.""" + status: str | None = ... + """Provides the status of the change set Hook.""" + next_token: str | None = ... + """Pagination token, `null` or empty if no more results.""" + stack_id: str | None = ... + """The stack identifier (stack ID).""" + stack_name: str | None = ... + """The stack name.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeChangeSetInput(_SerdeShape): + """The input for the DescribeChangeSet action.""" + + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the change set that you want + to describe. + """ + stack_name: str | None = ... + """ + If you specified the name of a change set, specify the stack name or ID + (ARN) of the change set you want to describe. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + include_property_values: bool | None = ... + """ + If `true`, the returned changes include detailed changes in the property + values. + """ + +@dataclass(kw_only=True) +class DescribeChangeSetOutput(_SerdeShape): + """The output for the DescribeChangeSet action.""" + + change_set_name: str | None = ... + """The name of the change set.""" + change_set_id: str | None = ... + """The Amazon Resource Name (ARN) of the change set.""" + stack_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the stack that's associated with the + change set. + """ + stack_name: str | None = ... + """The name of the stack that's associated with the change set.""" + description: str | None = ... + """Information about the change set.""" + parameters: list[Parameter] | None = ... + """ + A list of `Parameter` structures that describes the input parameters and + their values used to create the change set. For more information, see + the + [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html) + data type. + """ + creation_time: datetime | None = ... + """The start time when the change set was created, in UTC.""" + execution_status: str | None = ... + """ + If the change set execution status is `AVAILABLE`, you can execute the + change set. If you can't execute the change set, the status indicates + why. For example, a change set might be in an `UNAVAILABLE` state + because CloudFormation is still creating it or in an `OBSOLETE` state + because the stack was already updated. + """ + status: str | None = ... + """ + The current status of the change set, such as `CREATE_PENDING`, + `CREATE_COMPLETE`, or `FAILED`. + """ + status_reason: str | None = ... + """ + A description of the change set's status. For example, if your attempt + to create a change set failed, CloudFormation shows the error message. + """ + stack_drift_status: str | None = ... + """ + The drift status of the stack when the change set was created. Valid + values: + + - `DRIFTED` -- The stack has drifted from its last deployment. + + - `IN_SYNC` -- The stack is in sync with its last deployment. + + - `NOT_CHECKED` -- CloudFormation doesn't currently return this value. + + - `UNKNOWN` -- The drift status could not be determined. + + Only present for drift-aware change sets. + """ + notification_ar_ns: list[str] | None = ... + """ + The ARNs of the Amazon SNS topics that will be associated with the stack + if you execute the change set. + """ + rollback_configuration: RollbackConfiguration | None = ... + """ + The rollback triggers for CloudFormation to monitor during stack + creation and updating operations, and for the specified monitoring + period afterwards. + """ + capabilities: list[str] | None = ... + """ + If you execute the change set, the list of capabilities that were + explicitly acknowledged when the change set was created. + """ + tags: list[Tag] | None = ... + """ + If you execute the change set, the tags that will be associated with the + stack. + """ + changes: list[Change] | None = ... + """ + A list of `Change` structures that describes the resources + CloudFormation changes if you execute the change set. + """ + next_token: str | None = ... + """ + If the output exceeds 1 MB, a string that identifies the next page of + changes. If there is no additional page, this value is null. + """ + include_nested_stacks: bool | None = ... + """Verifies if `IncludeNestedStacks` is set to `True`.""" + parent_change_set_id: str | None = ... + """ + Specifies the change set ID of the parent change set in the current + nested change set hierarchy. + """ + root_change_set_id: str | None = ... + """ + Specifies the change set ID of the root change set in the current nested + change set hierarchy. + """ + on_stack_failure: str | None = ... + """ + Determines what action will be taken if stack creation fails. When this + parameter is specified, the `DisableRollback` parameter to the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation must not be specified. This must be one of these values: + + - `DELETE` - Deletes the change set if the stack creation fails. This is + only valid when the `ChangeSetType` parameter is set to `CREATE`. If + the deletion of the stack fails, the status of the stack is + `DELETE_FAILED`. + + - `DO_NOTHING` - if the stack creation fails, do nothing. This is + equivalent to specifying `true` for the `DisableRollback` parameter to + the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation. + + - `ROLLBACK` - if the stack creation fails, roll back the stack. This is + equivalent to specifying `false` for the `DisableRollback` parameter + to the + [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) + API operation. + """ + import_existing_resources: bool | None = ... + """ + Indicates if the change set imports resources that already exist. + + Note: + This parameter can only import resources that have [custom + names](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-name.html) + in templates. To import resources that do not accept custom names, such + as EC2 instances, use the [resource + import](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html) + feature instead. + """ + deployment_mode: str | None = ... + """ + The deployment mode specified when the change set was created. Valid + value is `REVERT_DRIFT`. Only present for drift-aware change sets. + """ + deployment_config: DeploymentConfig | None = ... + """The deployment configuration specified when the change set was created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEventsInput(_SerdeShape): + """Dataclass for DescribeEventsInput structure.""" + + stack_name: str | None = ... + """ + The name or unique stack ID for which you want to retrieve events. If + you specified the name of a change set, specify the stack name or ID + (ARN) of the change set you want to describe. + """ + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the change set for which you + want to retrieve events. + """ + operation_id: str | None = ... + """ + The unique identifier of the operation for which you want to retrieve + events. + """ + filters: EventFilter | None = ... + """Filters to apply when retrieving events.""" + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class DescribeEventsOutput(_SerdeShape): + """Dataclass for DescribeEventsOutput structure.""" + + operation_events: list[OperationEvent] | None = ... + """A list of operation events that match the specified criteria.""" + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `DescribeEvents` again and assign that token to the request object's + `NextToken` parameter. If the request returns all results, `NextToken` + is set to `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeGeneratedTemplateInput(_SerdeShape): + """Dataclass for DescribeGeneratedTemplateInput structure.""" + + generated_template_name: str | None = ... + """The name or Amazon Resource Name (ARN) of a generated template.""" + +@dataclass(kw_only=True) +class DescribeGeneratedTemplateOutput(_SerdeShape): + """Dataclass for DescribeGeneratedTemplateOutput structure.""" + + generated_template_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the generated template. The format is + `arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}`. + For example, + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:generatedtemplate/`*`2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc`*` `. + """ + generated_template_name: str | None = ... + """The name of the generated template.""" + resources: list[ResourceDetail] | None = ... + """ + A list of objects describing the details of the resources in the + template generation. + """ + status: str | None = ... + """ + The status of the template generation. Supported values are: + + - `CreatePending` - the creation of the template is pending. + + - `CreateInProgress` - the creation of the template is in progress. + + - `DeletePending` - the deletion of the template is pending. + + - `DeleteInProgress` - the deletion of the template is in progress. + + - `UpdatePending` - the update of the template is pending. + + - `UpdateInProgress` - the update of the template is in progress. + + - `Failed` - the template operation failed. + + - `Complete` - the template operation is complete. + """ + status_reason: str | None = ... + """ + The reason for the current template generation status. This will provide + more details if a failure happened. + """ + creation_time: datetime | None = ... + """The time the generated template was created.""" + last_updated_time: datetime | None = ... + """The time the generated template was last updated.""" + progress: TemplateProgress | None = ... + """An object describing the progress of the template generation.""" + stack_id: str | None = ... + """ + The stack ARN of the base stack if a base stack was provided when + generating the template. + """ + template_configuration: TemplateConfiguration | None = ... + """ + The configuration details of the generated template, including the + `DeletionPolicy` and `UpdateReplacePolicy`. + """ + total_warnings: int | None = ... + """ + The number of warnings generated for this template. The warnings are + found in the details of each of the resources in the template. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeOrganizationsAccessInput(_SerdeShape): + """Dataclass for DescribeOrganizationsAccessInput structure.""" + + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DescribeOrganizationsAccessOutput(_SerdeShape): + """Dataclass for DescribeOrganizationsAccessOutput structure.""" + + status: str | None = ... + """Presents the status of the `OrganizationAccess`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePublisherInput(_SerdeShape): + """Dataclass for DescribePublisherInput structure.""" + + publisher_id: str | None = ... + """ + The ID of the extension publisher. + + If you don't supply a `PublisherId`, and you have registered as an + extension publisher, `DescribePublisher` returns information about your + own publisher account. + """ + +@dataclass(kw_only=True) +class DescribePublisherOutput(_SerdeShape): + """Dataclass for DescribePublisherOutput structure.""" + + publisher_id: str | None = ... + """The ID of the extension publisher.""" + publisher_status: str | None = ... + """ + Whether the publisher is verified. Currently, all registered publishers + are verified. + """ + identity_provider: str | None = ... + """ + The type of account used as the identity provider when registering this + publisher with CloudFormation. + """ + publisher_profile: str | None = ... + """The URL to the publisher's profile with the identity provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeResourceScanInput(_SerdeShape): + """Dataclass for DescribeResourceScanInput structure.""" + + resource_scan_id: str | None = ... + """The Amazon Resource Name (ARN) of the resource scan.""" + +@dataclass(kw_only=True) +class DescribeResourceScanOutput(_SerdeShape): + """Dataclass for DescribeResourceScanOutput structure.""" + + resource_scan_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource scan. The format is + `arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}`. + An example is + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:resourceScan/`*`f5b490f7-7ed4-428a-aa06-31ff25db0772`*` `. + """ + status: str | None = ... + """ + Status of the resource scan. + + IN_PROGRESS + + : The resource scan is still in progress. + + COMPLETE + + : The resource scan is complete. + + EXPIRED + + : The resource scan has expired. + + FAILED + + : The resource scan has failed. + """ + status_reason: str | None = ... + """ + The reason for the resource scan status, providing more information if a + failure happened. + """ + start_time: datetime | None = ... + """The time that the resource scan was started.""" + end_time: datetime | None = ... + """The time that the resource scan was finished.""" + percentage_completed: float | None = ... + """The percentage of the resource scan that has been completed.""" + resource_types: list[str] | None = ... + """ + The list of resource types for the specified scan. Resource types are + only available for scans with a `Status` set to `COMPLETE` or `FAILED `. + """ + resources_scanned: int | None = ... + """ + The number of resources that were listed. This is only available for + scans with a `Status` set to `COMPLETE`, `EXPIRED`, or `FAILED `. + """ + resources_read: int | None = ... + """ + The number of resources that were read. This is only available for scans + with a `Status` set to `COMPLETE`, `EXPIRED`, or `FAILED`. + + Note: + This field may be 0 if the resource scan failed with a + `ResourceScanLimitExceededException`. + """ + scan_filters: list[ScanFilter] | None = ... + """The scan filters that were used.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackDriftDetectionStatusInput(_SerdeShape): + """Dataclass for DescribeStackDriftDetectionStatusInput structure.""" + + stack_drift_detection_id: str | None = ... + """ + The ID of the drift detection results of this operation. + + CloudFormation generates new results, with a new drift detection ID, + each time this operation is run. However, the number of drift results + CloudFormation retains for any given stack, and for how long, may vary. + """ + +@dataclass(kw_only=True) +class DescribeStackDriftDetectionStatusOutput(_SerdeShape): + """Dataclass for DescribeStackDriftDetectionStatusOutput structure.""" + + stack_id: str | None = ... + """The ID of the stack.""" + stack_drift_detection_id: str | None = ... + """ + The ID of the drift detection results of this operation. + + CloudFormation generates new results, with a new drift detection ID, + each time this operation is run. However, the number of reports + CloudFormation retains for any given stack, and for how long, may vary. + """ + stack_drift_status: str | None = ... + """ + Status of the stack's actual configuration compared to its expected + configuration. + + - `DRIFTED`: The stack differs from its expected template configuration. + A stack is considered to have drifted if one or more of its resources + have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the stack differs + from its expected template configuration. + + - `IN_SYNC`: The stack's actual configuration matches its expected + template configuration. + + - `UNKNOWN`: CloudFormation could not run drift detection for a resource + in the stack. See the `DetectionStatusReason` for details. + """ + detection_status: str | None = ... + """ + The status of the stack drift detection operation. + + - `DETECTION_COMPLETE`: The stack drift detection operation has + successfully completed for all resources in the stack that support + drift detection. (Resources that don't currently support stack + detection remain unchecked.) + + If you specified logical resource IDs for CloudFormation to use as a + filter for the stack drift detection operation, only the resources + with those logical IDs are checked for drift. + + - `DETECTION_FAILED`: The stack drift detection operation has failed for + at least one resource in the stack. Results will be available for + resources on which CloudFormation successfully completed drift + detection. + + - `DETECTION_IN_PROGRESS`: The stack drift detection operation is + currently in progress. + """ + detection_status_reason: str | None = ... + """The reason the stack drift detection operation has its current status.""" + drifted_stack_resource_count: int | None = ... + """ + Total number of stack resources that have drifted. This is NULL until + the drift detection operation reaches a status of `DETECTION_COMPLETE`. + This value will be 0 for stacks whose drift status is `IN_SYNC`. + """ + timestamp: datetime | None = ... + """Time at which the stack drift detection operation was initiated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackEventsInput(_SerdeShape): + """The input for DescribeStackEvents action.""" + + stack_name: str | None = ... + """ + The name or the unique stack ID that's associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class DescribeStackEventsOutput(_SerdeShape): + """The output for a DescribeStackEvents action.""" + + stack_events: list[StackEvent] | None = ... + """A list of `StackEvents` structures.""" + next_token: str | None = ... + """ + If the output exceeds 1 MB in size, a string that identifies the next + page of events. If no additional page exists, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackInstanceInput(_SerdeShape): + """Dataclass for DescribeStackInstanceInput structure.""" + + stack_set_name: str | None = ... + """ + The name or the unique stack ID of the StackSet that you want to get + stack instance information for. + """ + stack_instance_account: str | None = ... + """ + The ID of an Amazon Web Services account that's associated with this + stack instance. + """ + stack_instance_region: str | None = ... + """The name of a Region that's associated with this stack instance.""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DescribeStackInstanceOutput(_SerdeShape): + """Dataclass for DescribeStackInstanceOutput structure.""" + + stack_instance: StackInstance | None = ... + """The stack instance that matches the specified request parameters.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackRefactorInput(_SerdeShape): + """Dataclass for DescribeStackRefactorInput structure.""" + + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + +@dataclass(kw_only=True) +class DescribeStackRefactorOutput(_SerdeShape): + """Dataclass for DescribeStackRefactorOutput structure.""" + + description: str | None = ... + """A description to help you identify the refactor.""" + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + stack_ids: list[str] | None = ... + """The unique ID for each stack.""" + execution_status: str | None = ... + """ + The stack refactor execution operation status that's provided after + calling the ExecuteStackRefactor action. + """ + execution_status_reason: str | None = ... + """A detailed explanation for the stack refactor `ExecutionStatus`.""" + status: str | None = ... + """ + The stack refactor operation status that's provided after calling the + CreateStackRefactor action. + """ + status_reason: str | None = ... + """A detailed explanation for the stack refactor operation `Status`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackResourceDriftsInput(_SerdeShape): + """Dataclass for DescribeStackResourceDriftsInput structure.""" + + stack_name: str | None = ... + """The name of the stack for which you want drift information.""" + stack_resource_drift_status_filters: list[str] | None = ... + """ + The resource drift status values to use as filters for the resource + drift results returned. + + - `DELETED`: The resource differs from its expected template + configuration in that the resource has been deleted. + + - `MODIFIED`: One or more resource properties differ from their expected + template values. + + - `IN_SYNC`: The resource's actual configuration matches its expected + template configuration. + + - `NOT_CHECKED`: CloudFormation doesn't currently return this value. + + - `UNKNOWN`: CloudFormation could not run drift detection for the + resource. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + +@dataclass(kw_only=True) +class DescribeStackResourceDriftsOutput(_SerdeShape): + """Dataclass for DescribeStackResourceDriftsOutput structure.""" + + stack_resource_drifts: list[StackResourceDrift] | None = ... + """ + Drift information for the resources that have been checked for drift in + the specified stack. This includes actual and expected configuration + values for resources where CloudFormation detects drift. + + For a given stack, there will be one `StackResourceDrift` for each stack + resource that has been checked for drift. Resources that haven't yet + been checked for drift aren't included. Resources that do not currently + support drift detection aren't checked, and so not included. For a list + of resources that support drift detection, see [Resource type support + for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `DescribeStackResourceDrifts` again and assign that token to the request + object's `NextToken` parameter. If the request returns all results, + `NextToken` is set to `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackResourceInput(_SerdeShape): + """The input for DescribeStackResource action.""" + + stack_name: str | None = ... + """ + The name or the unique stack ID that's associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + """ + logical_resource_id: str | None = ... + """The logical name of the resource as specified in the template.""" + +@dataclass(kw_only=True) +class DescribeStackResourceOutput(_SerdeShape): + """The output for a DescribeStackResource action.""" + + stack_resource_detail: StackResourceDetail | None = ... + """ + A `StackResourceDetail` structure that contains the description of the + specified resource in the specified stack. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackResourcesInput(_SerdeShape): + """The input for DescribeStackResources action.""" + + stack_name: str | None = ... + """ + The name or the unique stack ID that is associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + + Required: Conditional. If you don't specify `StackName`, you must + specify `PhysicalResourceId`. + """ + logical_resource_id: str | None = ... + """The logical name of the resource as specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource supported by CloudFormation. + + For example, for an Amazon Elastic Compute Cloud (EC2) instance, + `PhysicalResourceId` corresponds to the `InstanceId`. You can pass the + EC2 `InstanceId` to `DescribeStackResources` to find which stack the + instance belongs to and what other resources are part of the stack. + + Required: Conditional. If you don't specify `PhysicalResourceId`, you + must specify `StackName`. + """ + +@dataclass(kw_only=True) +class DescribeStackResourcesOutput(_SerdeShape): + """The output for a DescribeStackResources action.""" + + stack_resources: list[StackResource] | None = ... + """A list of `StackResource` structures.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackSetInput(_SerdeShape): + """Dataclass for DescribeStackSetInput structure.""" + + stack_set_name: str | None = ... + """The name or unique ID of the StackSet whose description you want.""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DescribeStackSetOperationInput(_SerdeShape): + """Dataclass for DescribeStackSetOperationInput structure.""" + + stack_set_name: str | None = ... + """The name or the unique stack ID of the StackSet for the stack operation.""" + operation_id: str | None = ... + """The unique ID of the StackSet operation.""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DescribeStackSetOperationOutput(_SerdeShape): + """Dataclass for DescribeStackSetOperationOutput structure.""" + + stack_set_operation: StackSetOperation | None = ... + """The specified StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStackSetOutput(_SerdeShape): + """Dataclass for DescribeStackSetOutput structure.""" + + stack_set: StackSet | None = ... + """The specified StackSet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStacksInput(_SerdeShape): + """The input for DescribeStacks action.""" + + stack_name: str | None = ... + """ + Note: + If you don't pass a parameter to `StackName`, the API returns a + response that describes all resources in the account, which can impact + performance. This requires `ListStacks` and `DescribeStacks` + permissions. + + Consider using the ListStacks API if you're not passing a parameter to + `StackName`. + + The IAM policy below can be added to IAM policies when you want to limit + resource-level permissions and avoid returning a response when no + parameter is sent in the request: + + { \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Deny\", + \"Action\": \"cloudformation:DescribeStacks\", \"NotResource\": + \"arn:aws:cloudformation:*:*:stack/*/*\" }] } + + The name or the unique stack ID that's associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class DescribeStacksOutput(_SerdeShape): + """The output for a DescribeStacks action.""" + + stacks: list[Stack] | None = ... + """A list of stack structures.""" + next_token: str | None = ... + """ + If the output exceeds 1 MB in size, a string that identifies the next + page of stacks. If no additional page exists, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTypeInput(_SerdeShape): + """Dataclass for DescribeTypeInput structure.""" + + type: str | None = ... + """ + The kind of extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + version_id: str | None = ... + """ + The ID of a specific version of the extension. The version ID is the + value at the end of the Amazon Resource Name (ARN) assigned to the + extension version when it is registered. + + If you specify a `VersionId`, `DescribeType` returns information about + that specific extension version. Otherwise, it returns information about + the default extension version. + """ + publisher_id: str | None = ... + """ + The publisher ID of the extension publisher. + + Extensions provided by Amazon Web Services are not assigned a publisher + ID. + """ + public_version_number: str | None = ... + """The version number of a public third-party extension.""" + +@dataclass(kw_only=True) +class DescribeTypeOutput(_SerdeShape): + """Dataclass for DescribeTypeOutput structure.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the extension.""" + type: str | None = ... + """The kind of extension.""" + type_name: str | None = ... + """ + The name of the extension. + + If the extension is a public third-party type you have activated with a + type name alias, CloudFormation returns the type name alias. For more + information, see + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html). + """ + default_version_id: str | None = ... + """ + The ID of the default version of the extension. The default version is + used when the extension version isn't specified. + + This applies only to private extensions you have registered in your + account. For public extensions, both those provided by Amazon Web + Services and published by third parties, CloudFormation returns `null`. + For more information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + To set the default version of an extension, use SetTypeDefaultVersion. + """ + is_default_version: bool | None = ... + """ + Whether the specified extension version is set as the default version. + + This applies only to private extensions you have registered in your + account, and extensions published by Amazon Web Services. For public + third-party extensions, whether they are activated in your account, + CloudFormation returns `null`. + """ + type_tests_status: str | None = ... + """ + The contract test status of the registered extension version. To return + the extension test status of a specific extension version, you must + specify `VersionId`. + + This applies only to registered private extension versions. + CloudFormation doesn't return this information for public extensions, + whether they are activated in your account. + + - `PASSED`: The extension has passed all its contract tests. + + An extension must have a test status of `PASSED` before it can be + published. For more information, see [Publishing extensions to make + them available for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + - `FAILED`: The extension has failed one or more contract tests. + + - `IN_PROGRESS`: Contract tests are currently being performed on the + extension. + + - `NOT_TESTED`: Contract tests haven't been performed on the extension. + """ + type_tests_status_description: str | None = ... + """ + The description of the test status. To return the extension test status + of a specific extension version, you must specify `VersionId`. + + This applies only to registered private extension versions. + CloudFormation doesn't return this information for public extensions, + whether they are activated in your account. + """ + description: str | None = ... + """The description of the extension.""" + schema: str | None = ... + """ + The schema that defines the extension. + + For more information, see [Resource type + schema](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html) + in the *CloudFormation Command Line Interface (CLI) User Guide* and the + [CloudFormation Hooks User + Guide](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html). + """ + provisioning_type: str | None = ... + """ + For resource type extensions, the provisioning behavior of the resource + type. CloudFormation determines the provisioning type during + registration, based on the types of handlers in the schema handler + package submitted. + + Valid values include: + + - `FULLY_MUTABLE`: The resource type includes an update handler to + process updates to the type during stack update operations. + + - `IMMUTABLE`: The resource type doesn't include an update handler, so + the type can't be updated and must instead be replaced during stack + update operations. + + - `NON_PROVISIONABLE`: The resource type doesn't include all the + following handlers, and therefore can't actually be provisioned. + + - create + + - read + + - delete + """ + deprecated_status: str | None = ... + """ + The deprecation status of the extension version. + + Valid values include: + + - `LIVE`: The extension is activated or registered and can be used in + CloudFormation operations, dependent on its provisioning behavior and + visibility scope. + + - `DEPRECATED`: The extension has been deactivated or deregistered and + can no longer be used in CloudFormation operations. + + For public third-party extensions, CloudFormation returns `null`. + """ + logging_config: LoggingConfig | None = ... + """ + Contains logging configuration information for private extensions. This + applies only to private extensions you have registered in your account. + For public extensions, both those provided by Amazon Web Services and + published by third parties, CloudFormation returns `null`. For more + information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + """ + required_activated_types: list[RequiredActivatedType] | None = ... + """ + For extensions that are modules, the public third-party extensions that + must be activated in your account in order for the module itself to be + activated. + """ + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM execution role used to + register the extension. This applies only to private extensions you have + registered in your account. For more information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + If the registered extension calls any Amazon Web Services APIs, you must + create an *[IAM execution + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* + that includes the necessary permissions to call those Amazon Web + Services APIs, and provision that execution role in your account. + CloudFormation then assumes that execution role to provide your + extension with the appropriate credentials. + """ + visibility: str | None = ... + """ + The scope at which the extension is visible and usable in CloudFormation + operations. + + Valid values include: + + - `PRIVATE`: The extension is only visible and usable within the account + in which it is registered. CloudFormation marks any extensions you + register as `PRIVATE`. + + - `PUBLIC`: The extension is publicly visible and usable within any + Amazon Web Services account. + """ + source_url: str | None = ... + """The URL of the source code for the extension.""" + documentation_url: str | None = ... + """The URL of a page providing detailed documentation for this extension.""" + last_updated: datetime | None = ... + """ + When the specified extension version was registered. This applies only + to: + + - Private extensions you have registered in your account. For more + information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + - Public extensions you have activated in your account with auto-update + specified. For more information, see + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html). + """ + time_created: datetime | None = ... + """ + When the specified private extension version was registered or activated + in your account. + """ + configuration_schema: str | None = ... + """ + A JSON string that represent the current configuration data for the + extension in this account and Region. + + To set the configuration data for an extension, use + [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html). + """ + publisher_id: str | None = ... + """ + The publisher ID of the extension publisher. + + This applies only to public third-party extensions. For private + registered extensions, and extensions provided by Amazon Web Services, + CloudFormation returns `null`. + """ + original_type_name: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the type name of the public extension. + + If you specified a `TypeNameAlias` when enabling the extension in this + account and Region, CloudFormation treats that alias as the extension's + type name within the account and Region, not the type name of the public + extension. For more information, see [Use aliases to refer to + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) + in the *CloudFormation User Guide*. + """ + original_type_arn: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the Amazon Resource Name (ARN) of the public extension. + """ + public_version_number: str | None = ... + """ + The version number of a public third-party extension. + + This applies only if you specify a public extension you have activated + in your account, or specify a public extension without specifying a + version. For all other extensions, CloudFormation returns `null`. + """ + latest_public_version: str | None = ... + """ + The latest version of a public extension *that is available* for use. + + This only applies if you specify a public extension, and you don't + specify a version. For all other requests, CloudFormation returns + `null`. + """ + is_activated: bool | None = ... + """ + Whether the extension is activated in the account and Region. + + This only applies to public third-party extensions. For all other + extensions, CloudFormation returns `null`. + """ + auto_update: bool | None = ... + """ + Whether CloudFormation automatically updates the extension in this + account and Region when a new *minor* version is published by the + extension publisher. Major versions released by the publisher must be + manually updated. For more information, see [Automatically use new + versions of + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) + in the *CloudFormation User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTypeRegistrationInput(_SerdeShape): + """Dataclass for DescribeTypeRegistrationInput structure.""" + + registration_token: str | None = ... + """ + The identifier for this registration request. + + This registration token is generated by CloudFormation when you initiate + a registration request using RegisterType. + """ + +@dataclass(kw_only=True) +class DescribeTypeRegistrationOutput(_SerdeShape): + """Dataclass for DescribeTypeRegistrationOutput structure.""" + + progress_status: str | None = ... + """The current status of the extension registration request.""" + description: str | None = ... + """The description of the extension registration request.""" + type_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension being registered. + + For registration requests with a `ProgressStatus` of other than + `COMPLETE`, this will be `null`. + """ + type_version_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of this specific version of the extension + being registered. + + For registration requests with a `ProgressStatus` of other than + `COMPLETE`, this will be `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DetailedStatus(UnknownEnumMixin, StrEnum): + CONFIGURATION_COMPLETE = "CONFIGURATION_COMPLETE" + VALIDATION_FAILED = "VALIDATION_FAILED" + +@dataclass(kw_only=True) +class DetectStackDriftInput(_SerdeShape): + """Dataclass for DetectStackDriftInput structure.""" + + stack_name: str | None = ... + """The name of the stack for which you want to detect drift.""" + logical_resource_ids: list[str] | None = ... + """The logical names of any resources you want to use as filters.""" + +@dataclass(kw_only=True) +class DetectStackDriftOutput(_SerdeShape): + """Dataclass for DetectStackDriftOutput structure.""" + + stack_drift_detection_id: str | None = ... + """ + The ID of the drift detection results of this operation. + + CloudFormation generates new results, with a new drift detection ID, + each time this operation is run. However, the number of drift results + CloudFormation retains for any given stack, and for how long, may vary. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetectStackResourceDriftInput(_SerdeShape): + """Dataclass for DetectStackResourceDriftInput structure.""" + + stack_name: str | None = ... + """The name of the stack to which the resource belongs.""" + logical_resource_id: str | None = ... + """The logical name of the resource for which to return drift information.""" + +@dataclass(kw_only=True) +class DetectStackResourceDriftOutput(_SerdeShape): + """Dataclass for DetectStackResourceDriftOutput structure.""" + + stack_resource_drift: StackResourceDrift | None = ... + """ + Information about whether the resource's actual configuration has + drifted from its expected template configuration, including actual and + expected property values and any differences detected. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetectStackSetDriftInput(_SerdeShape): + """Dataclass for DetectStackSetDriftInput structure.""" + + stack_set_name: str | None = ... + """ + The name of the StackSet on which to perform the drift detection + operation. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """ + The user-specified preferences for how CloudFormation performs a + StackSet operation. + + For more information about maximum concurrent accounts and failure + tolerance, see [StackSet operation + options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + """ + operation_id: str | None = ... + """*The ID of the StackSet operation.*""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class DetectStackSetDriftOutput(_SerdeShape): + """Dataclass for DetectStackSetDriftOutput structure.""" + + operation_id: str | None = ... + """ + The ID of the drift detection StackSet operation. + + You can use this operation ID with DescribeStackSetOperation to monitor + the progress of the drift detection operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DifferenceType(UnknownEnumMixin, StrEnum): + ADD = "ADD" + REMOVE = "REMOVE" + NOT_EQUAL = "NOT_EQUAL" + +class DriftIgnoredReason(UnknownEnumMixin, StrEnum): + MANAGED_BY_AWS = "MANAGED_BY_AWS" + WRITE_ONLY_PROPERTY = "WRITE_ONLY_PROPERTY" + SENSITIVE_PROPERTY = "SENSITIVE_PROPERTY" + +@dataclass(kw_only=True) +class EstimateTemplateCostInput(_SerdeShape): + """The input for an EstimateTemplateCost action.""" + + template_body: str | None = ... + """ + Structure that contains the template body with a minimum length of 1 + byte and a maximum length of 51,200 bytes. + + Conditional: You must pass `TemplateBody` or `TemplateURL`. If both are + passed, only `TemplateBody` is used. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template that's located in an Amazon S3 bucket or a Systems Manager + document. The location for an Amazon S3 bucket must start with + `https://`. URLs from S3 static websites are not supported. + + Conditional: You must pass `TemplateURL` or `TemplateBody`. If both are + passed, only `TemplateBody` is used. + """ + parameters: list[Parameter] | None = ... + """A list of `Parameter` structures that specify input parameters.""" + +@dataclass(kw_only=True) +class EstimateTemplateCostOutput(_SerdeShape): + """The output for a EstimateTemplateCost action.""" + + url: str | None = ... + """ + An Amazon Web Services Simple Monthly Calculator URL with a query string + that describes the resources required to run the template. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EvaluationType(UnknownEnumMixin, StrEnum): + STATIC = "Static" + DYNAMIC = "Dynamic" + +@dataclass(kw_only=True) +class EventFilter(_SerdeShape): + """Event filter allows you to focus on specific events in an operation.""" + + failed_events: bool | None = ... + """ + When set to true, only returns failed events within the operation. This + helps quickly identify root causes for a failed operation. + """ + +class EventType(UnknownEnumMixin, StrEnum): + STACK_EVENT = "STACK_EVENT" + PROGRESS_EVENT = "PROGRESS_EVENT" + VALIDATION_ERROR = "VALIDATION_ERROR" + PROVISIONING_ERROR = "PROVISIONING_ERROR" + HOOK_INVOCATION_ERROR = "HOOK_INVOCATION_ERROR" + +@dataclass(kw_only=True) +class ExecuteChangeSetInput(_SerdeShape): + """The input for the ExecuteChangeSet action.""" + + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the change set that you want + use to update the specified stack. + """ + stack_name: str | None = ... + """ + If you specified the name of a change set, specify the stack name or + Amazon Resource Name (ARN) that's associated with the change set you + want to execute. + """ + client_request_token: str | None = ... + """ + A unique identifier for this `ExecuteChangeSet` request. Specify this + token if you plan to retry requests so that CloudFormation knows that + you're not attempting to execute a change set to update a stack with + the same name. You might retry `ExecuteChangeSet` requests to ensure + that CloudFormation successfully received them. + """ + disable_rollback: bool | None = ... + """ + Preserves the state of previously provisioned resources when an + operation fails. This parameter can't be specified when the + `OnStackFailure` parameter to the + [CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html) + API operation was specified. + + - `True` - if the stack creation fails, do nothing. This is equivalent + to specifying `DO_NOTHING` for the `OnStackFailure` parameter to the + [CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html) + API operation. + + - `False` - if the stack creation fails, roll back the stack. This is + equivalent to specifying `ROLLBACK` for the `OnStackFailure` parameter + to the + [CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html) + API operation. + + Default: `True` + """ + retain_except_on_create: bool | None = ... + """ + When set to `true`, newly created resources are deleted when the + operation rolls back. This includes newly created resources marked with + a deletion policy of `Retain`. + + Default: `false` + """ + +@dataclass(kw_only=True) +class ExecuteChangeSetOutput(_SerdeShape): + """The output for the ExecuteChangeSet action.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExecuteStackRefactorInput(_SerdeShape): + """Dataclass for ExecuteStackRefactorInput structure.""" + + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + +@dataclass(kw_only=True) +class ExecuteStackRefactorOutput(_SerdeShape): + """Dataclass for ExecuteStackRefactorOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ExecutionStatus(UnknownEnumMixin, StrEnum): + UNAVAILABLE = "UNAVAILABLE" + AVAILABLE = "AVAILABLE" + EXECUTE_IN_PROGRESS = "EXECUTE_IN_PROGRESS" + EXECUTE_COMPLETE = "EXECUTE_COMPLETE" + EXECUTE_FAILED = "EXECUTE_FAILED" + OBSOLETE = "OBSOLETE" + +@dataclass(kw_only=True) +class Export(_SerdeShape): + """ + The `Export` structure describes the exported output values for a stack. + + For more information, see [Get exported outputs from a deployed + CloudFormation + stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html). + """ + + exporting_stack_id: str | None = ... + """The stack that contains the exported output name and value.""" + name: str | None = ... + """ + The name of exported output value. Use this name and the + `Fn::ImportValue` function to import the associated value into other + stacks. The name is defined in the `Export` field in the associated + stack's `Outputs` section. + """ + value: str | None = ... + """ + The value of the exported output, such as a resource physical ID. This + value is defined in the `Export` field in the associated stack's + `Outputs` section. + """ + +class GeneratedTemplateDeletionPolicy(UnknownEnumMixin, StrEnum): + DELETE = "DELETE" + RETAIN = "RETAIN" + +@dataclass(kw_only=True) +class GeneratedTemplateNotFoundException(ServiceError, _SerdeShape): + """The generated template was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class GeneratedTemplateResourceStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + IN_PROGRESS = "IN_PROGRESS" + FAILED = "FAILED" + COMPLETE = "COMPLETE" + +class GeneratedTemplateStatus(UnknownEnumMixin, StrEnum): + CREATE_PENDING = "CREATE_PENDING" + UPDATE_PENDING = "UPDATE_PENDING" + DELETE_PENDING = "DELETE_PENDING" + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + FAILED = "FAILED" + COMPLETE = "COMPLETE" + +class GeneratedTemplateUpdateReplacePolicy(UnknownEnumMixin, StrEnum): + DELETE = "DELETE" + RETAIN = "RETAIN" + +@dataclass(kw_only=True) +class GetGeneratedTemplateInput(_SerdeShape): + """Dataclass for GetGeneratedTemplateInput structure.""" + + format: str | None = ... + """ + The language to use to retrieve for the generated template. Supported + values are: + + - `JSON` + + - `YAML` + """ + generated_template_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the generated template. The + format is + `arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}`. + For example, + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:generatedtemplate/`*`2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc`*` `. + """ + +@dataclass(kw_only=True) +class GetGeneratedTemplateOutput(_SerdeShape): + """Dataclass for GetGeneratedTemplateOutput structure.""" + + status: str | None = ... + """ + The status of the template generation. Supported values are: + + - `CreatePending` - the creation of the template is pending. + + - `CreateInProgress` - the creation of the template is in progress. + + - `DeletePending` - the deletion of the template is pending. + + - `DeleteInProgress` - the deletion of the template is in progress. + + - `UpdatePending` - the update of the template is pending. + + - `UpdateInProgress` - the update of the template is in progress. + + - `Failed` - the template operation failed. + + - `Complete` - the template operation is complete. + """ + template_body: str | None = ... + """ + The template body of the generated template, in the language specified + by the `Language` parameter. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetHookResultInput(_SerdeShape): + """Dataclass for GetHookResultInput structure.""" + + hook_result_id: str | None = ... + """ + The unique identifier (ID) of the Hook invocation result that you want + details about. You can get the ID from the + [ListHookResults](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListHookResults.html) + operation. + """ + +@dataclass(kw_only=True) +class GetHookResultOutput(_SerdeShape): + """Dataclass for GetHookResultOutput structure.""" + + hook_result_id: str | None = ... + """The unique identifier of the Hook result.""" + invocation_point: str | None = ... + """ + The specific point in the provisioning process where the Hook is + invoked. + """ + failure_mode: str | None = ... + """The failure mode of the invocation.""" + type_name: str | None = ... + """The name of the Hook that was invoked.""" + original_type_name: str | None = ... + """ + The original public type name of the Hook when an alias is used. + + For example, if you activate `AWS::Hooks::GuardHook` with alias + `MyCompany::Custom::GuardHook`, then `TypeName` will be + `MyCompany::Custom::GuardHook` and `OriginalTypeName` will be + `AWS::Hooks::GuardHook`. + """ + type_version_id: str | None = ... + """The version identifier of the Hook that was invoked.""" + type_configuration_version_id: str | None = ... + """ + The version identifier of the Hook configuration data that was used + during invocation. + """ + type_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Hook.""" + status: str | None = ... + """ + The status of the Hook invocation. The following statuses are possible: + + - `HOOK_IN_PROGRESS`: The Hook is currently running. + + - `HOOK_COMPLETE_SUCCEEDED`: The Hook completed successfully. + + - `HOOK_COMPLETE_FAILED`: The Hook completed but failed validation. + + - `HOOK_FAILED`: The Hook encountered an error during execution. + """ + hook_status_reason: str | None = ... + """ + A message that provides additional details about the Hook invocation + status. + """ + invoked_at: datetime | None = ... + """The timestamp when the Hook was invoked.""" + target: HookTarget | None = ... + """Information about the target of the Hook invocation.""" + annotations: list[Annotation] | None = ... + """ + A list of objects with additional information and guidance that can help + you resolve a failed Hook invocation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetStackPolicyInput(_SerdeShape): + """The input for the GetStackPolicy action.""" + + stack_name: str | None = ... + """ + The name or unique stack ID that's associated with the stack whose + policy you want to get. + """ + +@dataclass(kw_only=True) +class GetStackPolicyOutput(_SerdeShape): + """The output for the GetStackPolicy action.""" + + stack_policy_body: str | None = ... + """ + Structure that contains the stack policy body. For more information, see + [Prevent updates to stack + resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) + in the *CloudFormation User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTemplateInput(_SerdeShape): + """The input for a GetTemplate action.""" + + stack_name: str | None = ... + """ + The name or the unique stack ID that's associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + """ + change_set_name: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a change set for which + CloudFormation returns the associated template. If you specify a name, + you must also specify the `StackName`. + """ + template_stage: str | None = ... + """ + For templates that include transforms, the stage of the template that + CloudFormation returns. To get the user-submitted template, specify + `Original`. To get the template after CloudFormation has processed all + transforms, specify `Processed`. + + If the template doesn't include transforms, `Original` and `Processed` + return the same template. By default, CloudFormation specifies + `Processed`. + """ + +@dataclass(kw_only=True) +class GetTemplateOutput(_SerdeShape): + """The output for GetTemplate action.""" + + template_body: str | None = ... + """ + Structure that contains the template body. + + CloudFormation returns the same template that was used when the stack + was created. + """ + stages_available: list[str] | None = ... + """ + The stage of the template that you can retrieve. For stacks, the + `Original` and `Processed` templates are always available. For change + sets, the `Original` template is always available. After CloudFormation + finishes creating the change set, the `Processed` template becomes + available. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTemplateSummaryInput(_SerdeShape): + """The input for the GetTemplateSummary action.""" + + template_body: str | None = ... + """ + Structure that contains the template body with a minimum length of 1 + byte and a maximum length of 51,200 bytes. + + Conditional: You must specify only one of the following parameters: + `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template (max size: 1 MB) that's located in an Amazon S3 bucket or a + Systems Manager document. The location for an Amazon S3 bucket must + start with `https://`. + + Conditional: You must specify only one of the following parameters: + `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`. + """ + stack_name: str | None = ... + """ + The name or the stack ID that's associated with the stack, which + aren't always interchangeable. For running stacks, you can specify + either the stack's name or its unique stack ID. For deleted stack, you + must specify the unique stack ID. + + Conditional: You must specify only one of the following parameters: + `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`. + """ + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet from which the stack was created. + + Conditional: You must specify only one of the following parameters: + `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + template_summary_config: TemplateSummaryConfig | None = ... + """Specifies options for the `GetTemplateSummary` API action.""" + +@dataclass(kw_only=True) +class GetTemplateSummaryOutput(_SerdeShape): + """The output for the GetTemplateSummary action.""" + + parameters: list[ParameterDeclaration] | None = ... + """ + A list of parameter declarations that describe various properties for + each parameter. + """ + description: str | None = ... + """The value that's defined in the `Description` property of the template.""" + capabilities: list[str] | None = ... + """ + The capabilities found within the template. If your template contains + IAM resources, you must specify the `CAPABILITY_IAM` or + `CAPABILITY_NAMED_IAM` value for this parameter when you use the + CreateStack or UpdateStack actions with your template; otherwise, those + actions return an `InsufficientCapabilities` error. + + For more information, see [Acknowledging IAM resources in CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + """ + capabilities_reason: str | None = ... + """ + The list of resources that generated the values in the `Capabilities` + response element. + """ + resource_types: list[str] | None = ... + """ + A list of all the template resource types that are defined in the + template, such as `AWS::EC2::Instance`, `AWS::Dynamo::Table`, and + `Custom::MyCustomInstance`. + """ + version: str | None = ... + """ + The Amazon Web Services template format version, which identifies the + capabilities of the template. + """ + metadata: str | None = ... + """The value that's defined for the `Metadata` property of the template.""" + declared_transforms: list[str] | None = ... + """A list of the transforms that are declared in the template.""" + resource_identifier_summaries: list[ResourceIdentifierSummary] | None = ... + """ + A list of resource identifier summaries that describe the target + resources of an import operation and the properties you can provide + during the import to identify the target resources. For example, + `BucketName` is a possible identifier property for an `AWS::S3::Bucket` + resource. + """ + warnings: Warnings | None = ... + """An object that contains any warnings returned.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class HandlerErrorCode(UnknownEnumMixin, StrEnum): + NOT_UPDATABLE = "NotUpdatable" + INVALID_REQUEST = "InvalidRequest" + ACCESS_DENIED = "AccessDenied" + INVALID_CREDENTIALS = "InvalidCredentials" + ALREADY_EXISTS = "AlreadyExists" + NOT_FOUND = "NotFound" + RESOURCE_CONFLICT = "ResourceConflict" + THROTTLING = "Throttling" + SERVICE_LIMIT_EXCEEDED = "ServiceLimitExceeded" + SERVICE_TIMEOUT = "NotStabilized" + GENERAL_SERVICE_EXCEPTION = "GeneralServiceException" + SERVICE_INTERNAL_ERROR = "ServiceInternalError" + NETWORK_FAILURE = "NetworkFailure" + INTERNAL_FAILURE = "InternalFailure" + INVALID_TYPE_CONFIGURATION = "InvalidTypeConfiguration" + HANDLER_INTERNAL_FAILURE = "HandlerInternalFailure" + NON_COMPLIANT = "NonCompliant" + UNKNOWN = "Unknown" + UNSUPPORTED_TARGET = "UnsupportedTarget" + +class HookFailureMode(UnknownEnumMixin, StrEnum): + FAIL = "FAIL" + WARN = "WARN" + +class HookInvocationPoint(UnknownEnumMixin, StrEnum): + PRE_PROVISION = "PRE_PROVISION" + +@dataclass(kw_only=True) +class HookResultNotFoundException(ServiceError, _SerdeShape): + """The specified target doesn't have any requested Hook invocations.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class HookResultSummary(_SerdeShape): + """A `ListHookResults` call returns a summary of a Hook invocation.""" + + hook_result_id: str | None = ... + """The unique identifier for this Hook invocation result.""" + invocation_point: str | None = ... + """ + The specific point in the provisioning process where the Hook is + invoked. + """ + failure_mode: str | None = ... + """The failure mode of the invocation.""" + type_name: str | None = ... + """The name of the Hook that was invoked.""" + type_version_id: str | None = ... + """The version of the Hook that was invoked.""" + type_configuration_version_id: str | None = ... + """The version of the Hook configuration.""" + status: str | None = ... + """ + The status of the Hook invocation. The following statuses are possible: + + - `HOOK_IN_PROGRESS`: The Hook is currently running. + + - `HOOK_COMPLETE_SUCCEEDED`: The Hook completed successfully. + + - `HOOK_COMPLETE_FAILED`: The Hook completed but failed validation. + + - `HOOK_FAILED`: The Hook encountered an error during execution. + """ + hook_status_reason: str | None = ... + """ + A description of the Hook results status. For example, if the Hook + result is in a failed state, this may contain additional information for + the failed state. + """ + invoked_at: datetime | None = ... + """ + The timestamp when the Hook was invoked. + + Only shown in responses when the request does not specify `TargetType` + and `TargetId` filters. + """ + target_type: str | None = ... + """The target type that the Hook was invoked against.""" + target_id: str | None = ... + """The unique identifier of the Hook invocation target.""" + type_arn: str | None = ... + """The ARN of the Hook that was invoked.""" + hook_execution_target: str | None = ... + """ + The Amazon Resource Name (ARN) of the target stack or request token of + the Cloud Control API operation. + + Only shown in responses when the request does not specify `TargetType` + and `TargetId` filters. + """ + +class HookStatus(UnknownEnumMixin, StrEnum): + HOOK_IN_PROGRESS = "HOOK_IN_PROGRESS" + HOOK_COMPLETE_SUCCEEDED = "HOOK_COMPLETE_SUCCEEDED" + HOOK_COMPLETE_FAILED = "HOOK_COMPLETE_FAILED" + HOOK_FAILED = "HOOK_FAILED" + +@dataclass(kw_only=True) +class HookTarget(_SerdeShape): + """The `HookTarget` data type.""" + + target_type: str | None = ... + """The target type.""" + target_type_name: str | None = ... + """The target name, for example, `AWS::S3::Bucket`.""" + target_id: str | None = ... + """The unique identifier of the Hook invocation target.""" + action: str | None = ... + """The action that invoked the Hook.""" + +class HookTargetAction(UnknownEnumMixin, StrEnum): + CREATE = "CREATE" + UPDATE = "UPDATE" + DELETE = "DELETE" + IMPORT_ = "IMPORT" + +class HookTargetType(UnknownEnumMixin, StrEnum): + RESOURCE = "RESOURCE" + +class IdentityProvider(UnknownEnumMixin, StrEnum): + AWS_MARKETPLACE = "AWS_Marketplace" + GIT_HUB = "GitHub" + BITBUCKET = "Bitbucket" + +@dataclass(kw_only=True) +class ImportStacksToStackSetInput(_SerdeShape): + """Dataclass for ImportStacksToStackSetInput structure.""" + + stack_set_name: str | None = ... + """ + The name of the StackSet. The name must be unique in the Region where + you create your StackSet. + """ + stack_ids: list[str] | None = ... + """ + The IDs of the stacks you are importing into a StackSet. You import up + to 10 stacks per StackSet at a time. + + Specify either `StackIds` or `StackIdsUrl`. + """ + stack_ids_url: str | None = ... + """ + The Amazon S3 URL which contains list of stack ids to be inputted. + + Specify either `StackIds` or `StackIdsUrl`. + """ + organizational_unit_ids: list[str] | None = ... + """ + The list of OU ID's to which the imported stacks must be mapped as + deployment targets. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """ + The user-specified preferences for how CloudFormation performs a + StackSet operation. + + For more information about maximum concurrent accounts and failure + tolerance, see [StackSet operation + options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + """ + operation_id: str | None = ... + """A unique, user defined, identifier for the StackSet operation.""" + call_as: str | None = ... + """ + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - For service managed StackSets, specify `DELEGATED_ADMIN`. + """ + +@dataclass(kw_only=True) +class ImportStacksToStackSetOutput(_SerdeShape): + """Dataclass for ImportStacksToStackSetOutput structure.""" + + operation_id: str | None = ... + """The unique identifier for the StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InsufficientCapabilitiesException(ServiceError, _SerdeShape): + """ + The template contains resources with capabilities that weren't + specified in the Capabilities parameter. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidChangeSetStatusException(ServiceError, _SerdeShape): + """ + The specified change set can't be used to update the stack. For + example, the change set status might be `CREATE_IN_PROGRESS`, or the + stack status might be `UPDATE_IN_PROGRESS`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOperationException(ServiceError, _SerdeShape): + """The specified operation isn't valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidStateTransitionException(ServiceError, _SerdeShape): + """ + Error reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + CloudFormation doesn't return this error to users. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """ + The quota for the resource has already been reached. + + For information about resource and stack limitations, see + [CloudFormation + quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) + in the *CloudFormation User Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListChangeSetsInput(_SerdeShape): + """The input for the ListChangeSets action.""" + + stack_name: str | None = ... + """ + The name or the Amazon Resource Name (ARN) of the stack for which you + want to list change sets. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListChangeSetsOutput(_SerdeShape): + """The output for the ListChangeSets action.""" + + summaries: list[ChangeSetSummary] | None = ... + """ + A list of `ChangeSetSummary` structures that provides the ID and status + of each change set for the specified stack. + """ + next_token: str | None = ... + """ + If the output exceeds 1 MB, a string that identifies the next page of + change sets. If there is no additional page, this value is `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListExportsInput(_SerdeShape): + """Dataclass for ListExportsInput structure.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListExportsOutput(_SerdeShape): + """Dataclass for ListExportsOutput structure.""" + + exports: list[Export] | None = ... + """The output for the ListExports action.""" + next_token: str | None = ... + """ + If the output exceeds 100 exported output values, a string that + identifies the next page of exports. If there is no additional page, + this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGeneratedTemplatesInput(_SerdeShape): + """Dataclass for ListGeneratedTemplatesInput structure.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + If the number of available results exceeds this maximum, the response + includes a `NextToken` value that you can use for the `NextToken` + parameter to get the next set of results. By default the + `ListGeneratedTemplates` API action will return at most 50 results in + each response. The maximum value is 100. + """ + +@dataclass(kw_only=True) +class ListGeneratedTemplatesOutput(_SerdeShape): + """Dataclass for ListGeneratedTemplatesOutput structure.""" + + summaries: list[TemplateSummary] | None = ... + """A list of summaries of the generated templates.""" + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `ListGeneratedTemplates` again and use that value for the `NextToken` + parameter. If the request returns all results, `NextToken` is set to an + empty string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListHookResultsInput(_SerdeShape): + """Dataclass for ListHookResultsInput structure.""" + + target_type: str | None = ... + """ + Filters results by target type. Currently, only `CHANGE_SET` and + `CLOUD_CONTROL` are supported filter options. + + Required when `TargetId` is specified and cannot be used otherwise. + """ + target_id: str | None = ... + """ + Filters results by the unique identifier of the target the Hook was + invoked against. + + For change sets, this is the change set ARN. When the target is a Cloud + Control API operation, this value must be the `HookRequestToken` + returned by the Cloud Control API request. For more information on the + `HookRequestToken`, see + [ProgressEvent](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_ProgressEvent.html). + + Required when `TargetType` is specified and cannot be used otherwise. + """ + type_arn: str | None = ... + """ + Filters results by the ARN of the Hook. Can be used alone or in + combination with `Status`. + """ + status: str | None = ... + """ + Filters results by the status of Hook invocations. Can only be used in + combination with `TypeArn`. Valid values are: + + - `HOOK_IN_PROGRESS`: The Hook is currently running. + + - `HOOK_COMPLETE_SUCCEEDED`: The Hook completed successfully. + + - `HOOK_COMPLETE_FAILED`: The Hook completed but failed validation. + + - `HOOK_FAILED`: The Hook encountered an error during execution. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListHookResultsOutput(_SerdeShape): + """Dataclass for ListHookResultsOutput structure.""" + + target_type: str | None = ... + """The target type.""" + target_id: str | None = ... + """The unique identifier of the Hook invocation target.""" + hook_results: list[HookResultSummary] | None = ... + """ + A list of `HookResultSummary` structures that provides the status and + Hook status reason for each Hook invocation for the specified target. + """ + next_token: str | None = ... + """Pagination token, `null` or empty if no more results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ListHookResultsTargetType(UnknownEnumMixin, StrEnum): + CHANGE_SET = "CHANGE_SET" + STACK = "STACK" + RESOURCE = "RESOURCE" + CLOUD_CONTROL = "CLOUD_CONTROL" + +@dataclass(kw_only=True) +class ListImportsInput(_SerdeShape): + """Dataclass for ListImportsInput structure.""" + + export_name: str | None = ... + """ + The name of the exported output value. CloudFormation returns the stack + names that are importing this value. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListImportsOutput(_SerdeShape): + """Dataclass for ListImportsOutput structure.""" + + imports: list[str] | None = ... + """ + A list of stack names that are importing the specified exported output + value. + """ + next_token: str | None = ... + """ + A string that identifies the next page of exports. If there is no + additional page, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListResourceScanRelatedResourcesInput(_SerdeShape): + """Dataclass for ListResourceScanRelatedResourcesInput structure.""" + + resource_scan_id: str | None = ... + """The Amazon Resource Name (ARN) of the resource scan.""" + resources: list[ScannedResourceIdentifier] | None = ... + """ + The list of resources for which you want to get the related resources. + Up to 100 resources can be provided. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + If the number of available results exceeds this maximum, the response + includes a `NextToken` value that you can use for the `NextToken` + parameter to get the next set of results. By default the + `ListResourceScanRelatedResources` API action will return up to 100 + results in each response. The maximum value is 100. + """ + +@dataclass(kw_only=True) +class ListResourceScanRelatedResourcesOutput(_SerdeShape): + """Dataclass for ListResourceScanRelatedResourcesOutput structure.""" + + related_resources: list[ScannedResource] | None = ... + """ + List of up to `MaxResults` resources in the specified resource scan + related to the specified resources. + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `ListResourceScanRelatedResources` again and use that value for the + `NextToken` parameter. If the request returns all results, `NextToken` + is set to an empty string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListResourceScanResourcesInput(_SerdeShape): + """Dataclass for ListResourceScanResourcesInput structure.""" + + resource_scan_id: str | None = ... + """The Amazon Resource Name (ARN) of the resource scan.""" + resource_identifier: str | None = ... + """ + If specified, the returned resources will have the specified resource + identifier (or one of them in the case where the resource has multiple + identifiers). + """ + resource_type_prefix: str | None = ... + """ + If specified, the returned resources will be of any of the resource + types with the specified prefix. + """ + tag_key: str | None = ... + """If specified, the returned resources will have a matching tag key.""" + tag_value: str | None = ... + """If specified, the returned resources will have a matching tag value.""" + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + If the number of available results exceeds this maximum, the response + includes a `NextToken` value that you can use for the `NextToken` + parameter to get the next set of results. By default the + `ListResourceScanResources` API action will return at most 100 results + in each response. The maximum value is 100. + """ + +@dataclass(kw_only=True) +class ListResourceScanResourcesOutput(_SerdeShape): + """Dataclass for ListResourceScanResourcesOutput structure.""" + + resources: list[ScannedResource] | None = ... + """ + List of up to `MaxResults` resources in the specified resource scan that + match all of the specified filters. + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `ListResourceScanResources` again and use that value for the `NextToken` + parameter. If the request returns all results, `NextToken` is set to an + empty string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListResourceScansInput(_SerdeShape): + """Dataclass for ListResourceScansInput structure.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + If the number of available results exceeds this maximum, the response + includes a `NextToken` value that you can use for the `NextToken` + parameter to get the next set of results. The default value is 10. The + maximum value is 100. + """ + scan_type_filter: str | None = ... + """ + The scan type that you want to get summary information about. The + default is `FULL`. + """ + +@dataclass(kw_only=True) +class ListResourceScansOutput(_SerdeShape): + """Dataclass for ListResourceScansOutput structure.""" + + resource_scan_summaries: list[ResourceScanSummary] | None = ... + """The list of scans returned.""" + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `ListResourceScans` again and use that value for the `NextToken` + parameter. If the request returns all results, `NextToken` is set to an + empty string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackInstanceResourceDriftsInput(_SerdeShape): + """Dataclass for ListStackInstanceResourceDriftsInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to list drifted + resources for. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + stack_instance_resource_drift_statuses: list[str] | None = ... + """ + The resource drift status of the stack instance. + + - `DELETED`: The resource differs from its expected template + configuration in that the resource has been deleted. + + - `MODIFIED`: One or more resource properties differ from their expected + template values. + + - `IN_SYNC`: The resource's actual configuration matches its expected + template configuration. + + - `NOT_CHECKED`: CloudFormation doesn't currently return this value. + """ + stack_instance_account: str | None = ... + """ + The name of the Amazon Web Services account that you want to list + resource drifts for. + """ + stack_instance_region: str | None = ... + """The name of the Region where you want to list resource drifts.""" + operation_id: str | None = ... + """The unique ID of the drift operation.""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ListStackInstanceResourceDriftsOutput(_SerdeShape): + """Dataclass for ListStackInstanceResourceDriftsOutput structure.""" + + summaries: list[StackInstanceResourceDriftsSummary] | None = ... + """ + A list of `StackInstanceResourceDriftsSummary` structures that contain + information about the specified stack instances. + """ + next_token: str | None = ... + """ + If the previous paginated request didn't return all of the remaining + results, the response object's `NextToken` parameter value is set to a + token. To retrieve the next set of results, call this action again and + assign that token to the request object's `NextToken` parameter. If + there are no remaining results, the previous response object's + `NextToken` parameter is set to `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackInstancesInput(_SerdeShape): + """Dataclass for ListStackInstancesInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to list stack + instances for. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + filters: list[StackInstanceFilter] | None = ... + """The filter to apply to stack instances""" + stack_instance_account: str | None = ... + """ + The name of the Amazon Web Services account that you want to list stack + instances for. + """ + stack_instance_region: str | None = ... + """The name of the Region where you want to list stack instances.""" + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ListStackInstancesOutput(_SerdeShape): + """Dataclass for ListStackInstancesOutput structure.""" + + summaries: list[StackInstanceSummary] | None = ... + """ + A list of `StackInstanceSummary` structures that contain information + about the specified stack instances. + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + `ListStackInstances` again and assign that token to the request + object's `NextToken` parameter. If the request returns all results, + `NextToken` is set to `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackRefactorActionsInput(_SerdeShape): + """Dataclass for ListStackRefactorActionsInput structure.""" + + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + +@dataclass(kw_only=True) +class ListStackRefactorActionsOutput(_SerdeShape): + """Dataclass for ListStackRefactorActionsOutput structure.""" + + stack_refactor_actions: list[StackRefactorAction] | None = ... + """The stack refactor actions.""" + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call this action + again and assign that token to the request object's `NextToken` + parameter. If the request returns all results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackRefactorsInput(_SerdeShape): + """Dataclass for ListStackRefactorsInput structure.""" + + execution_status_filter: list[str] | None = ... + """ + Execution status to use as a filter. Specify one or more execution + status codes to list only stack refactors with the specified execution + status codes. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + +@dataclass(kw_only=True) +class ListStackRefactorsOutput(_SerdeShape): + """Dataclass for ListStackRefactorsOutput structure.""" + + stack_refactor_summaries: list[StackRefactorSummary] | None = ... + """ + Provides a summary of a stack refactor, including the following: + + - `StackRefactorId` + + - `Status` + + - `StatusReason` + + - `ExecutionStatus` + + - `ExecutionStatusReason` + + - `Description` + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call this action + again and assign that token to the request object's `NextToken` + parameter. If the request returns all results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackResourcesInput(_SerdeShape): + """The input for the ListStackResource action.""" + + stack_name: str | None = ... + """ + The name or the unique stack ID that is associated with the stack, which + aren't always interchangeable: + + - Running stacks: You can specify either the stack's name or its unique + stack ID. + + - Deleted stacks: You must specify the unique stack ID. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListStackResourcesOutput(_SerdeShape): + """The output for a ListStackResources action.""" + + stack_resource_summaries: list[StackResourceSummary] | None = ... + """A list of `StackResourceSummary` structures.""" + next_token: str | None = ... + """ + If the output exceeds 1 MB, a string that identifies the next page of + stack resources. If no additional page exists, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackSetAutoDeploymentTargetsInput(_SerdeShape): + """Dataclass for ListStackSetAutoDeploymentTargetsInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to get automatic + deployment targets for. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + call_as: str | None = ... + """ + Specifies whether you are acting as an account administrator in the + organization's management account or as a delegated administrator in a + member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ListStackSetAutoDeploymentTargetsOutput(_SerdeShape): + """Dataclass for ListStackSetAutoDeploymentTargetsOutput structure.""" + + summaries: list[StackSetAutoDeploymentTargetSummary] | None = ... + """An array of summaries of the deployment targets for the StackSet.""" + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call + [ListStackSetAutoDeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStackSetAutoDeploymentTargets.html) + again and use that value for the `NextToken` parameter. If the request + returns all results, `NextToken` is set to an empty string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackSetOperationResultsInput(_SerdeShape): + """Dataclass for ListStackSetOperationResultsInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to get operation + results for. + """ + operation_id: str | None = ... + """The ID of the StackSet operation.""" + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + filters: list[OperationResultFilter] | None = ... + """The filter to apply to operation results.""" + +@dataclass(kw_only=True) +class ListStackSetOperationResultsOutput(_SerdeShape): + """Dataclass for ListStackSetOperationResultsOutput structure.""" + + summaries: list[StackSetOperationResultSummary] | None = ... + """ + A list of `StackSetOperationResultSummary` structures that contain + information about the specified operation results, for accounts and + Amazon Web Services Regions that are included in the operation. + """ + next_token: str | None = ... + """ + If the request doesn't return all results, `NextToken` is set to a + token. To retrieve the next set of results, call `ListOperationResults` + again and assign that token to the request object's `NextToken` + parameter. If there are no remaining results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackSetOperationsInput(_SerdeShape): + """Dataclass for ListStackSetOperationsInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to get operation + summaries for. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ListStackSetOperationsOutput(_SerdeShape): + """Dataclass for ListStackSetOperationsOutput structure.""" + + summaries: list[StackSetOperationSummary] | None = ... + """ + A list of `StackSetOperationSummary` structures that contain summary + information about operations for the specified StackSet. + """ + next_token: str | None = ... + """ + If the request doesn't return all results, `NextToken` is set to a + token. To retrieve the next set of results, call `ListOperationResults` + again and assign that token to the request object's `NextToken` + parameter. If there are no remaining results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStackSetsInput(_SerdeShape): + """Dataclass for ListStackSetsInput structure.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + status: str | None = ... + """ + The status of the StackSets that you want to get summary information + about. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the management account or as a delegated + administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ListStackSetsOutput(_SerdeShape): + """Dataclass for ListStackSetsOutput structure.""" + + summaries: list[StackSetSummary] | None = ... + """ + A list of `StackSetSummary` structures that contain information about + the user's StackSets. + """ + next_token: str | None = ... + """ + If the request doesn't return all of the remaining results, `NextToken` + is set to a token. To retrieve the next set of results, call + `ListStackInstances` again and assign that token to the request + object's `NextToken` parameter. If the request returns all results, + `NextToken` is set to `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStacksInput(_SerdeShape): + """The input for ListStacks action.""" + + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + stack_status_filter: list[str] | None = ... + """ + Stack status to use as a filter. Specify one or more stack status codes + to list only stacks with the specified status codes. For a complete list + of stack status codes, see the `StackStatus` parameter of the Stack data + type. + """ + +@dataclass(kw_only=True) +class ListStacksOutput(_SerdeShape): + """The output for ListStacks action.""" + + stack_summaries: list[StackSummary] | None = ... + """ + A list of `StackSummary` structures that contains information about the + specified stacks. + """ + next_token: str | None = ... + """ + If the output exceeds 1 MB in size, a string that identifies the next + page of stacks. If no additional page exists, this value is null. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTypeRegistrationsInput(_SerdeShape): + """Dataclass for ListTypeRegistrationsInput structure.""" + + type: str | None = ... + """ + The kind of extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + registration_status_filter: str | None = ... + """ + The current status of the extension registration request. + + The default is `IN_PROGRESS`. + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListTypeRegistrationsOutput(_SerdeShape): + """Dataclass for ListTypeRegistrationsOutput structure.""" + + registration_token_list: list[str] | None = ... + """ + A list of extension registration tokens. + + Use DescribeTypeRegistration to return detailed information about a type + registration request. + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call this action + again and assign that token to the request object's `NextToken` + parameter. If the request returns all results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTypesInput(_SerdeShape): + """Dataclass for ListTypesInput structure.""" + + visibility: str | None = ... + """ + The scope at which the extensions are visible and usable in + CloudFormation operations. + + Valid values include: + + - `PRIVATE`: Extensions that are visible and usable within this account + and Region. This includes: + + - Private extensions you have registered in this account and Region. + + - Public extensions that you have activated in this account and + Region. + + - `PUBLIC`: Extensions that are publicly visible and available to be + activated within any Amazon Web Services account. This includes + extensions from Amazon Web Services and third-party publishers. + + The default is `PRIVATE`. + """ + provisioning_type: str | None = ... + """ + For resource types, the provisioning behavior of the resource type. + CloudFormation determines the provisioning type during registration, + based on the types of handlers in the schema handler package submitted. + + Valid values include: + + - `FULLY_MUTABLE`: The resource type includes an update handler to + process updates to the type during stack update operations. + + - `IMMUTABLE`: The resource type doesn't include an update handler, so + the type can't be updated and must instead be replaced during stack + update operations. + + - `NON_PROVISIONABLE`: The resource type doesn't include create, read, + and delete handlers, and therefore can't actually be provisioned. + + The default is `FULLY_MUTABLE`. + """ + deprecated_status: str | None = ... + """ + The deprecation status of the extension that you want to get summary + information about. + + Valid values include: + + - `LIVE`: The extension is registered for use in CloudFormation + operations. + + - `DEPRECATED`: The extension has been deregistered and can no longer be + used in CloudFormation operations. + """ + type: str | None = ... + """The type of extension.""" + filters: TypeFilters | None = ... + """ + Filter criteria to use in determining which extensions to return. + + Filters must be compatible with `Visibility` to return valid results. + For example, specifying `AWS_TYPES` for `Category` and `PRIVATE` for + `Visibility` returns an empty list of types, but specifying `PUBLIC` for + `Visibility` returns the desired list. + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + +@dataclass(kw_only=True) +class ListTypesOutput(_SerdeShape): + """Dataclass for ListTypesOutput structure.""" + + type_summaries: list[TypeSummary] | None = ... + """ + A list of `TypeSummary` structures that contain information about the + specified extensions. + """ + next_token: str | None = ... + """ + If the request doesn't return all the remaining results, `NextToken` is + set to a token. To retrieve the next set of results, call this action + again and assign that token to the request object's `NextToken` + parameter. If the request returns all results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTypeVersionsInput(_SerdeShape): + """Dataclass for ListTypeVersionsInput structure.""" + + type: str | None = ... + """ + The kind of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_name: str | None = ... + """ + The name of the extension for which you want version summary + information. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension for which you want + version summary information. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + max_results: int | None = ... + """ + The maximum number of results to be returned with a single call. If the + number of available results exceeds this maximum, the response includes + a `NextToken` value that you can assign to the `NextToken` request + parameter to get the next set of results. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a previous call.) + """ + deprecated_status: str | None = ... + """ + The deprecation status of the extension versions that you want to get + summary information about. + + Valid values include: + + - `LIVE`: The extension version is registered and can be used in + CloudFormation operations, dependent on its provisioning behavior and + visibility scope. + + - `DEPRECATED`: The extension version has been deregistered and can no + longer be used in CloudFormation operations. + + The default is `LIVE`. + """ + publisher_id: str | None = ... + """ + The publisher ID of the extension publisher. + + Extensions published by Amazon aren't assigned a publisher ID. + """ + +@dataclass(kw_only=True) +class ListTypeVersionsOutput(_SerdeShape): + """Dataclass for ListTypeVersionsOutput structure.""" + + type_version_summaries: list[TypeVersionSummary] | None = ... + """ + A list of `TypeVersionSummary` structures that contain information about + the specified extension's versions. + """ + next_token: str | None = ... + """ + If the request doesn't return all of the remaining results, `NextToken` + is set to a token. To retrieve the next set of results, call this action + again and assign that token to the request object's `NextToken` + parameter. If the request returns all results, `NextToken` is set to + `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LiveResourceDrift(_SerdeShape): + """ + Contains drift information for a resource property, including actual + value, previous deployment value, and drift detection timestamp. + """ + + previous_value: str | None = ... + """The configuration value from the previous CloudFormation deployment.""" + actual_value: str | None = ... + """The current live configuration value of the resource property.""" + drift_detection_timestamp: datetime | None = ... + """The timestamp when drift was detected for this resource property.""" + +@dataclass(kw_only=True) +class LoggingConfig(_SerdeShape): + """Contains logging configuration information for an extension.""" + + log_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the role that CloudFormation should + assume when sending log entries to CloudWatch Logs. + """ + log_group_name: str | None = ... + """ + The Amazon CloudWatch Logs group to which CloudFormation sends error + logging information when invoking the extension's handlers. + """ + +@dataclass(kw_only=True) +class ManagedExecution(_SerdeShape): + """ + Describes whether StackSets performs non-conflicting operations + concurrently and queues conflicting operations. + """ + + active: bool | None = ... + """ + When `true`, CloudFormation performs non-conflicting operations + concurrently and queues conflicting operations. After conflicting + operations finish, CloudFormation starts queued operations in request + order. + + Note: + If there are already running or queued operations, CloudFormation queues + all incoming operations even if they are non-conflicting. + + You can't modify your StackSet's execution configuration while there + are running or queued operations for that StackSet. + + When `false` (default), StackSets performs one operation at a time in + request order. + """ + +@dataclass(kw_only=True) +class ModuleInfo(_SerdeShape): + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + + For more information about modules, see [Create reusable resource + configurations that can be included across templates with CloudFormation + modules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html) + in the *CloudFormation User Guide*. + """ + + type_hierarchy: str | None = ... + """ + A concatenated list of the module type or types that contains the + resource. Module types are listed starting with the inner-most nested + module, and separated by `/`. + + In the following example, the resource was created from a module of type + `AWS::First::Example::MODULE`, that's nested inside a parent module of + type `AWS::Second::Example::MODULE`. + + `AWS::First::Example::MODULE/AWS::Second::Example::MODULE` + """ + logical_id_hierarchy: str | None = ... + """ + A concatenated list of the logical IDs of the module or modules that + contains the resource. Modules are listed starting with the inner-most + nested module, and separated by `/`. + + In the following example, the resource was created from a module, + `moduleA`, that's nested inside a parent module, `moduleB`. + + `moduleA/moduleB` + + For more information, see [Reference module resources in CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/module-ref-resources.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class NameAlreadyExistsException(ServiceError, _SerdeShape): + """The specified name is already in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class OnFailure(UnknownEnumMixin, StrEnum): + DO_NOTHING = "DO_NOTHING" + ROLLBACK = "ROLLBACK" + DELETE = "DELETE" + +class OnStackFailure(UnknownEnumMixin, StrEnum): + DO_NOTHING = "DO_NOTHING" + ROLLBACK = "ROLLBACK" + DELETE = "DELETE" + +@dataclass(kw_only=True) +class OperationEntry(_SerdeShape): + """Contains information about a CloudFormation operation.""" + + operation_type: str | None = ... + """The type of operation.""" + operation_id: str | None = ... + """The unique identifier for the operation.""" + +@dataclass(kw_only=True) +class OperationEvent(_SerdeShape): + """ + Contains detailed information about an event that occurred during a + CloudFormation operation. + """ + + event_id: str | None = ... + """A unique identifier for this event.""" + stack_id: str | None = ... + """The unique ID name of the instance of the stack.""" + operation_id: str | None = ... + """The unique identifier of the operation this event belongs to.""" + operation_type: str | None = ... + """The type of operation.""" + operation_status: str | None = ... + """The current status of the operation.""" + event_type: str | None = ... + """The type of event.""" + logical_resource_id: str | None = ... + """The logical name of the resource as specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource. + """ + resource_type: str | None = ... + """Type of resource.""" + timestamp: datetime | None = ... + """Time the status was updated.""" + start_time: datetime | None = ... + """The time when the event started.""" + end_time: datetime | None = ... + """The time when the event ended.""" + resource_status: str | None = ... + """Current status of the resource.""" + resource_status_reason: str | None = ... + """Success or failure message associated with the resource.""" + resource_properties: str | None = ... + """The properties used to create the resource.""" + client_request_token: str | None = ... + """A unique identifier for the request that initiated this operation.""" + hook_type: str | None = ... + """The type name of the Hook that was invoked.""" + hook_status: str | None = ... + """The status of the Hook invocation.""" + hook_status_reason: str | None = ... + """Additional information about the Hook status.""" + hook_invocation_point: str | None = ... + """The point in the operation lifecycle when the Hook was invoked.""" + hook_failure_mode: str | None = ... + """Specifies how Hook failures are handled.""" + detailed_status: str | None = ... + """Additional status information about the operation.""" + validation_failure_mode: str | None = ... + """Specifies how validation failures are handled.""" + validation_name: str | None = ... + """The name of the validation that was performed.""" + validation_status: str | None = ... + """The status of the validation.""" + validation_status_reason: str | None = ... + """Additional information about the validation status.""" + validation_path: str | None = ... + """The path within the resource where the validation was applied.""" + +@dataclass(kw_only=True) +class OperationIdAlreadyExistsException(ServiceError, _SerdeShape): + """The specified operation ID already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OperationInProgressException(ServiceError, _SerdeShape): + """ + Another operation is currently in progress for this StackSet. Only one + operation can be performed for a stack set at a given time. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OperationNotFoundException(ServiceError, _SerdeShape): + """The specified ID refers to an operation that doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OperationResultFilter(_SerdeShape): + """The status that operation results are filtered by.""" + + name: str | None = ... + """The type of filter to apply.""" + values: str | None = ... + """The value to filter by.""" + +class OperationResultFilterName(UnknownEnumMixin, StrEnum): + OPERATION_RESULT_STATUS = "OPERATION_RESULT_STATUS" + +class OperationStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + IN_PROGRESS = "IN_PROGRESS" + SUCCESS = "SUCCESS" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class OperationStatusCheckFailedException(ServiceError, _SerdeShape): + """ + Error reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + CloudFormation doesn't return this error to users. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class OperationType(UnknownEnumMixin, StrEnum): + CREATE_STACK = "CREATE_STACK" + UPDATE_STACK = "UPDATE_STACK" + DELETE_STACK = "DELETE_STACK" + CONTINUE_ROLLBACK = "CONTINUE_ROLLBACK" + ROLLBACK = "ROLLBACK" + CREATE_CHANGESET = "CREATE_CHANGESET" + +class OrganizationStatus(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + DISABLED_PERMANENTLY = "DISABLED_PERMANENTLY" + +@dataclass(kw_only=True) +class Output(_SerdeShape): + """The `Output` data type.""" + + output_key: str | None = ... + """The key associated with the output.""" + output_value: str | None = ... + """The value associated with the output.""" + description: str | None = ... + """User defined description associated with the output.""" + export_name: str | None = ... + """The name of the export associated with the output.""" + +@dataclass(kw_only=True) +class Parameter(_SerdeShape): + """The `Parameter` data type.""" + + parameter_key: str | None = ... + """ + The key associated with the parameter. If you don't specify a key and + value for a particular parameter, CloudFormation uses the default value + that's specified in your template. + """ + parameter_value: str | None = ... + """The input value associated with the parameter.""" + use_previous_value: bool | None = ... + """ + During a stack update, use the existing parameter value that the stack + is using for a given parameter key. If you specify `true`, do not + specify a parameter value. + """ + resolved_value: str | None = ... + """ + Read-only. The value that corresponds to a Systems Manager parameter + key. This field is returned only for Systems Manager parameter types in + the template. For more information, see [Specify existing resources at + runtime with CloudFormation-supplied parameter + types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-supplied-parameter-types.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class ParameterConstraints(_SerdeShape): + """ + A set of criteria that CloudFormation uses to validate parameter values. + Although other constraints might be defined in the stack template, + CloudFormation returns only the `AllowedValues` property. + """ + + allowed_values: list[str] | None = ... + """A list of values that are permitted for a parameter.""" + +@dataclass(kw_only=True) +class ParameterDeclaration(_SerdeShape): + """The `ParameterDeclaration` data type.""" + + parameter_key: str | None = ... + """The name that's associated with the parameter.""" + default_value: str | None = ... + """The default value of the parameter.""" + parameter_type: str | None = ... + """The type of parameter.""" + no_echo: bool | None = ... + """ + Flag that indicates whether the parameter value is shown as plain text + in logs and in the Amazon Web Services Management Console. + """ + description: str | None = ... + """The description that's associate with the parameter.""" + parameter_constraints: ParameterConstraints | None = ... + """The criteria that CloudFormation uses to validate parameter values.""" + +class PermissionModels(UnknownEnumMixin, StrEnum): + SERVICE_MANAGED = "SERVICE_MANAGED" + SELF_MANAGED = "SELF_MANAGED" + +@dataclass(kw_only=True) +class PhysicalResourceIdContextKeyValuePair(_SerdeShape): + """ + Context information that enables CloudFormation to uniquely identify a + resource. CloudFormation uses context key-value pairs in cases where a + resource's logical and physical IDs aren't enough to uniquely identify + that resource. Each context key-value pair specifies a resource that + contains the targeted resource. + """ + + key: str | None = ... + """The resource context key.""" + value: str | None = ... + """The resource context value.""" + +class PolicyAction(UnknownEnumMixin, StrEnum): + DELETE = "Delete" + RETAIN = "Retain" + SNAPSHOT = "Snapshot" + REPLACE_AND_DELETE = "ReplaceAndDelete" + REPLACE_AND_RETAIN = "ReplaceAndRetain" + REPLACE_AND_SNAPSHOT = "ReplaceAndSnapshot" + +@dataclass(kw_only=True) +class PropertyDifference(_SerdeShape): + """ + Information about a resource property whose actual value differs from + its expected value, as defined in the stack template and any values + specified as template parameters. These will be present only for + resources whose `StackResourceDriftStatus` is `MODIFIED`. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + + property_path: str | None = ... + """The fully-qualified path to the resource property.""" + expected_value: str | None = ... + """ + The expected property value of the resource property, as defined in the + stack template and any values specified as template parameters. + """ + actual_value: str | None = ... + """The actual property value of the resource property.""" + difference_type: str | None = ... + """ + The type of property difference. + + - `ADD`: A value has been added to a resource property that's an array + or list data type. + + - `REMOVE`: The property has been removed from the current resource + configuration. + + - `NOT_EQUAL`: The current property value differs from its expected + value (as defined in the stack template and any values specified as + template parameters). + """ + +class ProvisioningType(UnknownEnumMixin, StrEnum): + NON_PROVISIONABLE = "NON_PROVISIONABLE" + IMMUTABLE = "IMMUTABLE" + FULLY_MUTABLE = "FULLY_MUTABLE" + +class PublisherStatus(UnknownEnumMixin, StrEnum): + VERIFIED = "VERIFIED" + UNVERIFIED = "UNVERIFIED" + +@dataclass(kw_only=True) +class PublishTypeInput(_SerdeShape): + """Dataclass for PublishTypeInput structure.""" + + type: str | None = ... + """ + The type of the extension. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + public_version_number: str | None = ... + """ + The version number to assign to this version of the extension. + + Use the following format, and adhere to semantic versioning when + assigning a version number to your extension: + + `MAJOR.MINOR.PATCH` + + For more information, see [Semantic Versioning + 2.0.0](https://semver.org/). + + If you don't specify a version number, CloudFormation increments the + version number by one minor version release. + + You cannot specify a version number the first time you publish a type. + CloudFormation automatically sets the first version number to be + `1.0.0`. + """ + +@dataclass(kw_only=True) +class PublishTypeOutput(_SerdeShape): + """Dataclass for PublishTypeOutput structure.""" + + public_type_arn: str | None = ... + """ + The Amazon Resource Name (ARN) assigned to the public extension upon + publication. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RecordHandlerProgressInput(_SerdeShape): + """Dataclass for RecordHandlerProgressInput structure.""" + + bearer_token: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + operation_status: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + current_operation_status: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + status_message: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + error_code: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + resource_model: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + client_request_token: str | None = ... + """ + Reserved for use by the [CloudFormation + CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html). + """ + +@dataclass(kw_only=True) +class RecordHandlerProgressOutput(_SerdeShape): + """Dataclass for RecordHandlerProgressOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RegionConcurrencyType(UnknownEnumMixin, StrEnum): + SEQUENTIAL = "SEQUENTIAL" + PARALLEL = "PARALLEL" + +@dataclass(kw_only=True) +class RegisterPublisherInput(_SerdeShape): + """Dataclass for RegisterPublisherInput structure.""" + + accept_terms_and_conditions: bool | None = ... + """ + Whether you accept the [Terms and + Conditions](https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) + for publishing extensions in the CloudFormation registry. You must + accept the terms and conditions in order to register to publish public + extensions to the CloudFormation registry. + + The default is `false`. + """ + connection_arn: str | None = ... + """ + If you are using a Bitbucket or GitHub account for identity + verification, the Amazon Resource Name (ARN) for your connection to that + account. + + For more information, see [Prerequisite: Registering your account to + publish CloudFormation + extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + +@dataclass(kw_only=True) +class RegisterPublisherOutput(_SerdeShape): + """Dataclass for RegisterPublisherOutput structure.""" + + publisher_id: str | None = ... + """ + The ID assigned this account by CloudFormation for publishing + extensions. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterTypeInput(_SerdeShape): + """Dataclass for RegisterTypeInput structure.""" + + type: str | None = ... + """The kind of extension.""" + type_name: str | None = ... + """ + The name of the extension being registered. + + We suggest that extension names adhere to the following patterns: + + - For resource types, `company_or_organization::service::type`. + + - For modules, `company_or_organization::service::type::MODULE`. + + - For Hooks, `MyCompany::Testing::MyTestHook`. + + Note: + The following organization namespaces are reserved and can't be used in + your extension names: + + - `Alexa` + + - `AMZN` + + - `Amazon` + + - `AWS` + + - `Custom` + + - `Dev` + """ + schema_handler_package: str | None = ... + """ + A URL to the S3 bucket that contains the extension project package that + contains the necessary files for the extension you want to register. + + For information about generating a schema handler package for the + extension you want to register, see + [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + + Note: + The user registering the extension must be able to access the package in + the S3 bucket. That's, the user needs to have + [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + permissions for the schema handler package. For more information, see + [Actions, Resources, and Condition Keys for Amazon + S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) + in the *Identity and Access Management User Guide*. + """ + logging_config: LoggingConfig | None = ... + """Specifies logging configuration information for an extension.""" + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role for CloudFormation to + assume when invoking the extension. + + For CloudFormation to assume the specified execution role, the role must + contain a trust relationship with the CloudFormation service principal + (`resources.cloudformation.amazonaws.com`). For more information about + adding trust relationships, see [Modifying a role trust + policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy) + in the *Identity and Access Management User Guide*. + + If your extension calls Amazon Web Services APIs in any of its handlers, + you must create an *[IAM execution + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* + that includes the necessary permissions to call those Amazon Web + Services APIs, and provision that execution role in your account. When + CloudFormation needs to invoke the resource type handler, CloudFormation + assumes this execution role to create a temporary session token, which + it then passes to the resource type handler, thereby supplying your + resource type with the appropriate credentials. + """ + client_request_token: str | None = ... + """ + A unique identifier that acts as an idempotency key for this + registration request. Specifying a client request token prevents + CloudFormation from generating more than one version of an extension + from the same registration request, even if the request is submitted + multiple times. + """ + +@dataclass(kw_only=True) +class RegisterTypeOutput(_SerdeShape): + """Dataclass for RegisterTypeOutput structure.""" + + registration_token: str | None = ... + """ + The identifier for this registration request. + + Use this registration token when calling DescribeTypeRegistration, which + returns information about the status and IDs of the extension + registration. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RegistrationStatus(UnknownEnumMixin, StrEnum): + COMPLETE = "COMPLETE" + IN_PROGRESS = "IN_PROGRESS" + FAILED = "FAILED" + +class RegistryType(UnknownEnumMixin, StrEnum): + RESOURCE = "RESOURCE" + MODULE = "MODULE" + HOOK = "HOOK" + +class Replacement(UnknownEnumMixin, StrEnum): + TRUE = "True" + FALSE = "False" + CONDITIONAL = "Conditional" + +@dataclass(kw_only=True) +class RequiredActivatedType(_SerdeShape): + """ + For extensions that are modules, a public third-party extension that + must be activated in your account in order for the module itself to be + activated. + + For more information, see [Requirements for activating third-party + public + modules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/module-versioning.html#requirements-for-modules) + in the *CloudFormation User Guide*. + """ + + type_name_alias: str | None = ... + """ + An alias assigned to the public extension, in this account and Region. + If you specify an alias for the extension, CloudFormation treats the + alias as the extension type name within this account and Region. You + must use the alias to refer to the extension in your templates, API + calls, and CloudFormation console. + """ + original_type_name: str | None = ... + """ + The type name of the public extension. + + If you specified a `TypeNameAlias` when enabling the extension in this + account and Region, CloudFormation treats that alias as the extension's + type name within the account and Region, not the type name of the public + extension. For more information, see [Use aliases to refer to + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) + in the *CloudFormation User Guide*. + """ + publisher_id: str | None = ... + """The publisher ID of the extension publisher.""" + supported_major_versions: list[int] | None = ... + """ + A list of the major versions of the extension type that the macro + supports. + """ + +class RequiresRecreation(UnknownEnumMixin, StrEnum): + NEVER = "Never" + CONDITIONALLY = "Conditionally" + ALWAYS = "Always" + +class ResourceAttribute(UnknownEnumMixin, StrEnum): + PROPERTIES = "Properties" + METADATA = "Metadata" + CREATION_POLICY = "CreationPolicy" + UPDATE_POLICY = "UpdatePolicy" + DELETION_POLICY = "DeletionPolicy" + UPDATE_REPLACE_POLICY = "UpdateReplacePolicy" + TAGS = "Tags" + +@dataclass(kw_only=True) +class ResourceChange(_SerdeShape): + """ + The `ResourceChange` structure describes the resource and the action + that CloudFormation will perform on it if you execute this change set. + """ + + policy_action: str | None = ... + """ + The action that will be taken on the physical resource when the change + set is executed. + + - `Delete` The resource will be deleted. + + - `Retain` The resource will be retained. + + - `Snapshot` The resource will have a snapshot taken. + + - `ReplaceAndDelete` The resource will be replaced and then deleted. + + - `ReplaceAndRetain` The resource will be replaced and then retained. + + - `ReplaceAndSnapshot` The resource will be replaced and then have a + snapshot taken. + """ + action: str | None = ... + """ + The action that CloudFormation takes on the resource, such as `Add` + (adds a new resource), `Modify` (changes a resource), `Remove` (deletes + a resource), `Import` (imports a resource), `Dynamic` (exact action for + the resource can't be determined), or `SyncWithActual` (resource will + not be changed, only CloudFormation metadata will change). + """ + logical_resource_id: str | None = ... + """The resource's logical ID, which is defined in the stack's template.""" + physical_resource_id: str | None = ... + """ + The resource's physical ID (resource name). Resources that you are + adding don't have physical IDs because they haven't been created. + """ + resource_type: str | None = ... + """The type of CloudFormation resource, such as `AWS::S3::Bucket`.""" + replacement: str | None = ... + """ + For the `Modify` action, indicates whether CloudFormation will replace + the resource by creating a new one and deleting the old one. This value + depends on the value of the `RequiresRecreation` property in the + `ResourceTargetDefinition` structure. For example, if the + `RequiresRecreation` field is `Always` and the `Evaluation` field is + `Static`, `Replacement` is `True`. If the `RequiresRecreation` field is + `Always` and the `Evaluation` field is `Dynamic`, `Replacement` is + `Conditional`. + + If you have multiple changes with different `RequiresRecreation` values, + the `Replacement` value depends on the change with the most impact. A + `RequiresRecreation` value of `Always` has the most impact, followed by + `Conditional`, and then `Never`. + """ + scope: list[str] | None = ... + """ + For the `Modify` action, indicates which resource attribute is + triggering this update, such as a change in the resource attribute's + `Metadata`, `Properties`, or `Tags`. + """ + resource_drift_status: str | None = ... + """ + The drift status of the resource. Valid values: + + - `IN_SYNC` -- The resource matches its template definition. + + - `MODIFIED` -- Resource properties were modified outside + CloudFormation. + + - `DELETED` -- The resource was deleted outside CloudFormation. + + - `NOT_CHECKED` -- CloudFormation doesn't currently return this value. + + - `UNKNOWN` -- Drift status could not be determined. + + - `UNSUPPORTED` -- Resource type does not support actual state + comparison. + + Only present for drift-aware change sets. + """ + resource_drift_ignored_attributes: list[ResourceDriftIgnoredAttribute] | None = ... + """List of resource attributes for which drift was ignored.""" + details: list[ResourceChangeDetail] | None = ... + """ + For the `Modify` action, a list of `ResourceChangeDetail` structures + that describes the changes that CloudFormation will make to the + resource. + """ + change_set_id: str | None = ... + """The change set ID of the nested change set.""" + module_info: ModuleInfo | None = ... + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + """ + before_context: str | None = ... + """ + An encoded JSON string that contains the context of the resource before + the change is executed. + """ + after_context: str | None = ... + """ + An encoded JSON string that contains the context of the resource after + the change is executed. + """ + previous_deployment_context: str | None = ... + """ + Information about the resource's state from the previous CloudFormation + deployment. + """ + +@dataclass(kw_only=True) +class ResourceChangeDetail(_SerdeShape): + """ + For a resource with `Modify` as the action, the `ResourceChange` + structure describes the changes CloudFormation will make to that + resource. + """ + + target: ResourceTargetDefinition | None = ... + """ + A `ResourceTargetDefinition` structure that describes the field that + CloudFormation will change and whether the resource will be recreated. + """ + evaluation: str | None = ... + """ + Indicates whether CloudFormation can determine the target value, and + whether the target value will change before you execute a change set. + + For `Static` evaluations, CloudFormation can determine that the target + value will change, and its value. For example, if you directly modify + the `InstanceType` property of an EC2 instance, CloudFormation knows + that this property value will change, and its value, so this is a + `Static` evaluation. + + For `Dynamic` evaluations, can't determine the target value because it + depends on the result of an intrinsic function, such as a `Ref` or + `Fn::GetAtt` intrinsic function, when the stack is updated. For example, + if your template includes a reference to a resource that's + conditionally recreated, the value of the reference (the physical ID of + the resource) might change, depending on if the resource is recreated. + If the resource is recreated, it will have a new physical ID, so all + references to that resource will also be updated. + """ + change_source: str | None = ... + """ + The group to which the `CausingEntity` value belongs. There are five + entity groups: + + - `ResourceReference` entities are `Ref` intrinsic functions that refer + to resources in the template, such as + `{ "Ref" : "MyEC2InstanceResource" }`. + + - `ParameterReference` entities are `Ref` intrinsic functions that get + template parameter values, such as + `{ "Ref" : "MyPasswordParameter" }`. + + - `ResourceAttribute` entities are `Fn::GetAtt` intrinsic functions that + get resource attribute values, such as + `{ "Fn::GetAtt" : [ "MyEC2InstanceResource", "PublicDnsName" ] }`. + + - `DirectModification` entities are changes that are made directly to + the template. + + - `Automatic` entities are `AWS::CloudFormation::Stack` resource types, + which are also known as nested stacks. If you made no changes to the + `AWS::CloudFormation::Stack` resource, CloudFormation sets the + `ChangeSource` to `Automatic` because the nested stack's template + might have changed. Changes to a nested stack's template aren't + visible to CloudFormation until you run an update on the parent stack. + + - `NoModification` entities are changes made to the template that + matches the actual state of the resource. + """ + causing_entity: str | None = ... + """ + The identity of the entity that triggered this change. This entity is a + member of the group that's specified by the `ChangeSource` field. For + example, if you modified the value of the `KeyPairName` parameter, the + `CausingEntity` is the name of the parameter (`KeyPairName`). + + If the `ChangeSource` value is `DirectModification`, no value is given + for `CausingEntity`. + """ + +@dataclass(kw_only=True) +class ResourceDefinition(_SerdeShape): + """ + A resource included in a generated template. This data type is used with + the `CreateGeneratedTemplate` and `UpdateGeneratedTemplate` API actions. + """ + + resource_type: str | None = ... + """ + The type of the resource, such as `AWS::DynamoDB::Table`. For the list + of supported resources, see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + in the *CloudFormation User Guide* + """ + logical_resource_id: str | None = ... + """The logical resource id for this resource in the generated template.""" + resource_identifier: dict[str, str] | None = ... + """ + A list of up to 256 key-value pairs that identifies the scanned + resource. The key is the name of one of the primary identifiers for the + resource. (Primary identifiers are specified in the `primaryIdentifier` + list in the resource schema.) The value is the value of that primary + identifier. For example, for a `AWS::DynamoDB::Table` resource, the + primary identifiers is `TableName` so the key-value pair could be + `"TableName": "MyDDBTable"`. For more information, see + [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + +@dataclass(kw_only=True) +class ResourceDetail(_SerdeShape): + """Details about a resource in a generated template""" + + resource_type: str | None = ... + """ + The type of the resource, such as `AWS::DynamoDB::Table`. For the list + of supported resources, see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + In the *CloudFormation User Guide* + """ + logical_resource_id: str | None = ... + """The logical id for this resource in the final generated template.""" + resource_identifier: dict[str, str] | None = ... + """ + A list of up to 256 key-value pairs that identifies the resource in the + generated template. The key is the name of one of the primary + identifiers for the resource. (Primary identifiers are specified in the + `primaryIdentifier` list in the resource schema.) The value is the value + of that primary identifier. For example, for a `AWS::DynamoDB::Table` + resource, the primary identifiers is `TableName` so the key-value pair + could be `"TableName": "MyDDBTable"`. For more information, see + [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + resource_status: str | None = ... + """ + Status of the processing of a resource in a generated template. + + InProgress + + : The resource processing is still in progress. + + Complete + + : The resource processing is complete. + + Pending + + : The resource processing is pending. + + Failed + + : The resource processing has failed. + """ + resource_status_reason: str | None = ... + """ + The reason for the resource detail, providing more information if a + failure happened. + """ + warnings: list[WarningDetail] | None = ... + """The warnings generated for this resource.""" + +@dataclass(kw_only=True) +class ResourceDriftIgnoredAttribute(_SerdeShape): + """The `ResourceDriftIgnoredAttribute` data type.""" + + path: str | None = ... + """Path of the resource attribute for which drift was ignored.""" + reason: str | None = ... + """ + Reason why drift was ignored for the attribute, can have 3 possible + values: + + - `WRITE_ONLY_PROPERTY` -- Property is not included in read response for + the resource's live state. + + - `MANAGED_BY_AWS` -- Property is managed by an Amazon Web Services + service and is expected to be dynamically modified. + + - `SENSITIVE_PROPERTY` -- Property has a sensitive value, such as an + Amazon Web Services Secrets Manager value. + """ + +@dataclass(kw_only=True) +class ResourceIdentifierSummary(_SerdeShape): + """ + Describes the target resources of a specific type in your import + template (for example, all `AWS::S3::Bucket` resources) and the + properties you can provide during the import to identify resources of + that type. + """ + + resource_type: str | None = ... + """ + The template resource type of the target resources, such as + `AWS::S3::Bucket`. + """ + logical_resource_ids: list[str] | None = ... + """ + The logical IDs of the target resources of the specified `ResourceType`, + as defined in the import template. + """ + resource_identifiers: list[str] | None = ... + """ + The resource properties you can provide during the import to identify + your target resources. For example, `BucketName` is a possible + identifier property for `AWS::S3::Bucket` resources. + """ + +@dataclass(kw_only=True) +class ResourceLocation(_SerdeShape): + """The location of the resource in a stack template.""" + + stack_name: str | None = ... + """The name associated with the stack.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + +@dataclass(kw_only=True) +class ResourceMapping(_SerdeShape): + """ + Specifies the current source of the resource and the destination of + where it will be moved to. + """ + + source: ResourceLocation | None = ... + """ + The source stack `StackName` and `LogicalResourceId` for the resource + being refactored. + """ + destination: ResourceLocation | None = ... + """ + The destination stack `StackName` and `LogicalResourceId` for the + resource being refactored. + """ + +@dataclass(kw_only=True) +class ResourceScanInProgressException(ServiceError, _SerdeShape): + """ + A resource scan is currently in progress. Only one can be run at a time + for an account in a Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceScanLimitExceededException(ServiceError, _SerdeShape): + """ + The limit on resource scans has been exceeded. Reasons include: + + - Exceeded the daily quota for resource scans. + + - A resource scan recently failed. You must wait 10 minutes before + starting a new resource scan. + + - The last resource scan failed after exceeding 100,000 resources. When + this happens, you must wait 24 hours before starting a new resource + scan. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceScanNotFoundException(ServiceError, _SerdeShape): + """The resource scan was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ResourceScanStatus(UnknownEnumMixin, StrEnum): + IN_PROGRESS = "IN_PROGRESS" + FAILED = "FAILED" + COMPLETE = "COMPLETE" + EXPIRED = "EXPIRED" + +@dataclass(kw_only=True) +class ResourceScanSummary(_SerdeShape): + """ + A summary of the resource scan. This is returned by the + `ListResourceScan` API action. + """ + + resource_scan_id: str | None = ... + """The Amazon Resource Name (ARN) of the resource scan.""" + status: str | None = ... + """ + Status of the resource scan. + + IN_PROGRESS + + : The resource scan is still in progress. + + COMPLETE + + : The resource scan is complete. + + EXPIRED + + : The resource scan has expired. + + FAILED + + : The resource scan has failed. + """ + status_reason: str | None = ... + """ + The reason for the resource scan status, providing more information if a + failure happened. + """ + start_time: datetime | None = ... + """The time that the resource scan was started.""" + end_time: datetime | None = ... + """The time that the resource scan was finished.""" + percentage_completed: float | None = ... + """The percentage of the resource scan that has been completed.""" + scan_type: str | None = ... + """The scan type that has been completed.""" + +class ResourceSignalStatus(UnknownEnumMixin, StrEnum): + SUCCESS = "SUCCESS" + FAILURE = "FAILURE" + +class ResourceStatus(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + CREATE_FAILED = "CREATE_FAILED" + CREATE_COMPLETE = "CREATE_COMPLETE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETE_FAILED = "DELETE_FAILED" + DELETE_COMPLETE = "DELETE_COMPLETE" + DELETE_SKIPPED = "DELETE_SKIPPED" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + UPDATE_FAILED = "UPDATE_FAILED" + UPDATE_COMPLETE = "UPDATE_COMPLETE" + IMPORT_FAILED = "IMPORT_FAILED" + IMPORT_COMPLETE = "IMPORT_COMPLETE" + IMPORT_IN_PROGRESS = "IMPORT_IN_PROGRESS" + IMPORT_ROLLBACK_IN_PROGRESS = "IMPORT_ROLLBACK_IN_PROGRESS" + IMPORT_ROLLBACK_FAILED = "IMPORT_ROLLBACK_FAILED" + IMPORT_ROLLBACK_COMPLETE = "IMPORT_ROLLBACK_COMPLETE" + EXPORT_FAILED = "EXPORT_FAILED" + EXPORT_COMPLETE = "EXPORT_COMPLETE" + EXPORT_IN_PROGRESS = "EXPORT_IN_PROGRESS" + EXPORT_ROLLBACK_IN_PROGRESS = "EXPORT_ROLLBACK_IN_PROGRESS" + EXPORT_ROLLBACK_FAILED = "EXPORT_ROLLBACK_FAILED" + EXPORT_ROLLBACK_COMPLETE = "EXPORT_ROLLBACK_COMPLETE" + UPDATE_ROLLBACK_IN_PROGRESS = "UPDATE_ROLLBACK_IN_PROGRESS" + UPDATE_ROLLBACK_COMPLETE = "UPDATE_ROLLBACK_COMPLETE" + UPDATE_ROLLBACK_FAILED = "UPDATE_ROLLBACK_FAILED" + ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS" + ROLLBACK_COMPLETE = "ROLLBACK_COMPLETE" + ROLLBACK_FAILED = "ROLLBACK_FAILED" + +@dataclass(kw_only=True) +class ResourceTargetDefinition(_SerdeShape): + """ + The field that CloudFormation will change, such as the name of a + resource's property, and whether the resource will be recreated. + """ + + attribute: str | None = ... + """ + Indicates which resource attribute is triggering this update, such as a + change in the resource attribute's `Metadata`, `Properties`, or `Tags`. + """ + name: str | None = ... + """ + If the `Attribute` value is `Properties`, the name of the property. For + all other attributes, the value is null. + """ + requires_recreation: str | None = ... + """ + If the `Attribute` value is `Properties`, indicates whether a change to + this property causes the resource to be recreated. The value can be + `Never`, `Always`, or `Conditionally`. To determine the conditions for a + `Conditionally` recreation, see the update behavior for that property in + the [Amazon Web Services resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*. + """ + path: str | None = ... + """The property path of the property.""" + before_value: str | None = ... + """ + The value of the property before the change is executed. Large values + can be truncated. + """ + after_value: str | None = ... + """ + The value of the property after the change is executed. Large values can + be truncated. + """ + before_value_from: str | None = ... + """ + Indicates the source of the before value. Valid values: + + - `ACTUAL_STATE` -- The before value represents current actual state. + + - `PREVIOUS_DEPLOYMENT_STATE` -- The before value represents the + previous CloudFormation deployment state. + + Only present for drift-aware change sets. + """ + after_value_from: str | None = ... + """ + Indicates the source of the after value. Valid value: + + - `TEMPLATE` -- The after value comes from the new template. + + Only present for drift-aware change sets. + """ + drift: LiveResourceDrift | None = ... + """ + Detailed drift information for the resource property, including actual + values, previous deployment values, and drift detection timestamps. + """ + attribute_change_type: str | None = ... + """ + The type of change to be made to the property if the change is executed. + + - `Add` The item will be added. + + - `Remove` The item will be removed. + + - `Modify` The item will be modified. + + - `SyncWithActual` The drift status of this item will be reset but the + item will not be modified. + """ + +@dataclass(kw_only=True) +class ResourceToImport(_SerdeShape): + """Describes the target resource of an import operation.""" + + resource_type: str | None = ... + """ + The type of resource to import into your stack, such as + `AWS::S3::Bucket`. For a list of supported resource types, see [Resource + type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + in the *CloudFormation User Guide*. + """ + logical_resource_id: str | None = ... + """The logical ID of the target resource as specified in the template.""" + resource_identifier: dict[str, str] | None = ... + """ + A key-value pair that identifies the target resource. The key is an + identifier property (for example, `BucketName` for `AWS::S3::Bucket` + resources) and the value is the actual property value (for example, + `MyS3Bucket`). + """ + +@dataclass(kw_only=True) +class RollbackConfiguration(_SerdeShape): + """ + Structure that contains the rollback triggers for CloudFormation to + monitor during stack creation and updating operations, and for the + specified monitoring period afterwards. + + Rollback triggers enable you to have CloudFormation monitor the state of + your application during stack creation and updating, and to roll back + that operation if the application breaches the threshold of any of the + alarms you've specified. For more information, see [Roll back your + CloudFormation stack on alarm breach with rollback + triggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html). + """ + + rollback_triggers: list[RollbackTrigger] | None = ... + """ + The triggers to monitor during stack creation or update actions. + + By default, CloudFormation saves the rollback triggers specified for a + stack and applies them to any subsequent update operations for the + stack, unless you specify otherwise. If you do specify rollback triggers + for this parameter, those triggers replace any list of triggers + previously specified for the stack. This means: + + - To use the rollback triggers previously specified for this stack, if + any, don't specify this parameter. + + - To specify new or updated rollback triggers, you must specify *all* + the triggers that you want used for this stack, even triggers you've + specified before (for example, when creating the stack or during a + previous stack update). Any triggers that you don't include in the + updated list of triggers are no longer applied to the stack. + + - To remove all currently specified triggers, specify an empty list for + this parameter. + + If a specified trigger is missing, the entire stack operation fails and + is rolled back. + """ + monitoring_time_in_minutes: int | None = ... + """ + The amount of time, in minutes, during which CloudFormation should + monitor all the rollback triggers after the stack creation or update + operation deploys all necessary resources. + + The default is 0 minutes. + + If you specify a monitoring period but don't specify any rollback + triggers, CloudFormation still waits the specified period of time before + cleaning up old resources after update operations. You can use this + monitoring period to perform any manual stack validation desired, and + manually cancel the stack creation or update (using + [CancelUpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html), + for example) as necessary. + + If you specify 0 for this parameter, CloudFormation still monitors the + specified rollback triggers during stack creation and update operations. + Then, for update operations, it begins disposing of old resources + immediately once the operation completes. + """ + +@dataclass(kw_only=True) +class RollbackStackInput(_SerdeShape): + """Dataclass for RollbackStackInput structure.""" + + stack_name: str | None = ... + """The name that's associated with the stack.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes to rollback the stack. + """ + client_request_token: str | None = ... + """A unique identifier for this `RollbackStack` request.""" + retain_except_on_create: bool | None = ... + """ + When set to `true`, newly created resources are deleted when the + operation rolls back. This includes newly created resources marked with + a deletion policy of `Retain`. + + Default: `false` + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for this stack operation, including the + deployment mode. + """ + +@dataclass(kw_only=True) +class RollbackStackOutput(_SerdeShape): + """Dataclass for RollbackStackOutput structure.""" + + stack_id: str | None = ... + """Unique identifier of the stack.""" + operation_id: str | None = ... + """ + A unique identifier for this rollback operation that can be used to + track the operation's progress and events. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RollbackTrigger(_SerdeShape): + """ + A rollback trigger CloudFormation monitors during creation and updating + of stacks. If any of the alarms you specify goes to ALARM state during + the stack operation or within the specified monitoring period + afterwards, CloudFormation rolls back the entire stack operation. + """ + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the rollback trigger. + + If a specified trigger is missing, the entire stack operation fails and + is rolled back. + """ + type: str | None = ... + """ + The resource type of the rollback trigger. Specify either + [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudwatch-alarm.html) + or + [AWS::CloudWatch::CompositeAlarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudwatch-compositealarm.html) + resource types. + """ + +@dataclass(kw_only=True) +class ScanFilter(_SerdeShape): + """A filter that is used to specify which resource types to scan.""" + + types: list[str] | None = ... + """ + An array of strings where each string represents an Amazon Web Services + resource type you want to scan. Each string defines the resource type + using the format `AWS::ServiceName::ResourceType`, for example, + `AWS::DynamoDB::Table`. For the full list of supported resource types, + see the [Resource type + support](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + table in the *CloudFormation User Guide*. + + To scan all resource types within a service, you can use a wildcard, + represented by an asterisk (`*`). You can place an asterisk at only the + end of the string, for example, `AWS::S3::*`. + """ + +@dataclass(kw_only=True) +class ScannedResource(_SerdeShape): + """ + A scanned resource returned by `ListResourceScanResources` or + `ListResourceScanRelatedResources`. + """ + + resource_type: str | None = ... + """ + The type of the resource, such as `AWS::DynamoDB::Table`. For the list + of supported resources, see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + In the *CloudFormation User Guide* + """ + resource_identifier: dict[str, str] | None = ... + """ + A list of up to 256 key-value pairs that identifies for the scanned + resource. The key is the name of one of the primary identifiers for the + resource. (Primary identifiers are specified in the `primaryIdentifier` + list in the resource schema.) The value is the value of that primary + identifier. For example, for a `AWS::DynamoDB::Table` resource, the + primary identifiers is `TableName` so the key-value pair could be + `"TableName": "MyDDBTable"`. For more information, see + [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + managed_by_stack: bool | None = ... + """If `true`, the resource is managed by a CloudFormation stack.""" + +@dataclass(kw_only=True) +class ScannedResourceIdentifier(_SerdeShape): + """ + Identifies a scanned resource. This is used with the + `ListResourceScanRelatedResources` API action. + """ + + resource_type: str | None = ... + """ + The type of the resource, such as `AWS::DynamoDB::Table`. For the list + of supported resources, see [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) + In the *CloudFormation User Guide*. + """ + resource_identifier: dict[str, str] | None = ... + """ + A list of up to 256 key-value pairs that identifies the scanned + resource. The key is the name of one of the primary identifiers for the + resource. (Primary identifiers are specified in the `primaryIdentifier` + list in the resource schema.) The value is the value of that primary + identifier. For example, for a `AWS::DynamoDB::Table` resource, the + primary identifiers is `TableName` so the key-value pair could be + `"TableName": "MyDDBTable"`. For more information, see + [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + +class ScanType(UnknownEnumMixin, StrEnum): + FULL = "FULL" + PARTIAL = "PARTIAL" + +@dataclass(kw_only=True) +class SetStackPolicyInput(_SerdeShape): + """The input for the SetStackPolicy action.""" + + stack_name: str | None = ... + """The name or unique stack ID that you want to associate a policy with.""" + stack_policy_body: str | None = ... + """ + Structure that contains the stack policy body. For more information, see + [Prevent updates to stack + resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) + in the *CloudFormation User Guide*. You can specify either the + `StackPolicyBody` or the `StackPolicyURL` parameter, but not both. + """ + stack_policy_url: str | None = ... + """ + Location of a file that contains the stack policy. The URL must point to + a policy (maximum size: 16 KB) located in an Amazon S3 bucket in the + same Amazon Web Services Region as the stack. The location for an Amazon + S3 bucket must start with `https://`. URLs from S3 static websites are + not supported. + + You can specify either the `StackPolicyBody` or the `StackPolicyURL` + parameter, but not both. + """ + +@dataclass(kw_only=True) +class SetStackPolicyOutput(_SerdeShape): + """Dataclass for SetStackPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SetTypeConfigurationInput(_SerdeShape): + """Dataclass for SetTypeConfigurationInput structure.""" + + type_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the extension in this account and + Region. + + For public extensions, this will be the ARN assigned when you call the + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html) + API operation in this account and Region. For private extensions, this + will be the ARN assigned when you call the + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html) + API operation in this account and Region. + + Do not include the extension versions suffix at the end of the ARN. You + can set the configuration for an extension, but not for a specific + extension version. + """ + configuration: str | None = ... + """ + The configuration data for the extension in this account and Region. + + The configuration data must be formatted as JSON and validate against + the extension's schema returned in the `Schema` response element of + [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). + """ + configuration_alias: str | None = ... + """ + An alias by which to refer to this extension configuration data. + + Conditional: Specifying a configuration alias is required when setting a + configuration for a resource type extension. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify `ConfigurationArn`, or `Type` and + `TypeName`. + """ + type: str | None = ... + """ + The type of extension. + + Conditional: You must specify `ConfigurationArn`, or `Type` and + `TypeName`. + """ + +@dataclass(kw_only=True) +class SetTypeConfigurationOutput(_SerdeShape): + """Dataclass for SetTypeConfigurationOutput structure.""" + + configuration_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the configuration data in this + account and Region. + + Conditional: You must specify `ConfigurationArn`, or `Type` and + `TypeName`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SetTypeDefaultVersionInput(_SerdeShape): + """Dataclass for SetTypeDefaultVersionInput structure.""" + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension for which you want + version summary information. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type: str | None = ... + """ + The kind of extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + type_name: str | None = ... + """ + The name of the extension. + + Conditional: You must specify either `TypeName` and `Type`, or `Arn`. + """ + version_id: str | None = ... + """ + The ID of a specific version of the extension. The version ID is the + value at the end of the Amazon Resource Name (ARN) assigned to the + extension version when it is registered. + """ + +@dataclass(kw_only=True) +class SetTypeDefaultVersionOutput(_SerdeShape): + """Dataclass for SetTypeDefaultVersionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SignalResourceInput(_SerdeShape): + """The input for the SignalResource action.""" + + stack_name: str | None = ... + """ + The stack name or unique stack ID that includes the resource that you + want to signal. + """ + logical_resource_id: str | None = ... + """ + The logical ID of the resource that you want to signal. The logical ID + is the name of the resource that given in the template. + """ + unique_id: str | None = ... + """ + A unique ID of the signal. When you signal Amazon EC2 instances or Auto + Scaling groups, specify the instance ID that you are signaling as the + unique ID. If you send multiple signals to a single resource (such as + signaling a wait condition), each signal requires a different unique ID. + """ + status: str | None = ... + """ + The status of the signal, which is either success or failure. A failure + signal causes CloudFormation to immediately fail the stack creation or + update. + """ + +@dataclass(kw_only=True) +class SignalResourceOutput(_SerdeShape): + """Dataclass for SignalResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Stack(_SerdeShape): + """The `Stack` data type.""" + + stack_id: str | None = ... + """Unique identifier of the stack.""" + stack_name: str | None = ... + """The name associated with the stack.""" + change_set_id: str | None = ... + """The unique ID of the change set.""" + description: str | None = ... + """A user-defined description associated with the stack.""" + parameters: list[Parameter] | None = ... + """A list of `Parameter` structures.""" + creation_time: datetime | None = ... + """The time at which the stack was created.""" + deletion_time: datetime | None = ... + """The time the stack was deleted.""" + last_updated_time: datetime | None = ... + """ + The time the stack was last updated. This field will only be returned if + the stack has been updated at least once. + """ + rollback_configuration: RollbackConfiguration | None = ... + """ + The rollback triggers for CloudFormation to monitor during stack + creation and updating operations, and for the specified monitoring + period afterwards. + """ + stack_status: str | None = ... + """Current status of the stack.""" + stack_status_reason: str | None = ... + """Success/failure message associated with the stack status.""" + disable_rollback: bool | None = ... + """ + Boolean to enable or disable rollback on stack creation failures: + + - `true`: disable rollback. + + - `false`: enable rollback. + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for the stack, including the deployment + mode used for stack operations. + """ + notification_ar_ns: list[str] | None = ... + """ + Amazon SNS topic Amazon Resource Names (ARNs) to which stack related + events are published. + """ + timeout_in_minutes: int | None = ... + """The amount of time within which stack creation should complete.""" + capabilities: list[str] | None = ... + """The capabilities allowed in the stack.""" + outputs: list[Output] | None = ... + """A list of output structures.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that's associated with + the stack. During a stack operation, CloudFormation uses this role's + credentials to make calls on your behalf. + """ + tags: list[Tag] | None = ... + """A list of `Tag`s that specify information about the stack.""" + enable_termination_protection: bool | None = ... + """ + Whether termination protection is enabled for the stack. + + For [nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), + termination protection is set on the root stack and can't be changed + directly on the nested stack. For more information, see [Protect a + CloudFormation stack from being + deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) + in the *CloudFormation User Guide*. + """ + parent_id: str | None = ... + """ + For nested stacks, the stack ID of the direct parent of this stack. For + the first level of nested stacks, the root stack is also the parent + stack. + + For more information, see [Nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + in the *CloudFormation User Guide*. + """ + root_id: str | None = ... + """ + For nested stacks, the stack ID of the top-level stack to which the + nested stack ultimately belongs. + + For more information, see [Nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + in the *CloudFormation User Guide*. + """ + drift_information: StackDriftInformation | None = ... + """ + Information about whether a stack's actual configuration differs, or + has *drifted*, from its expected configuration, as defined in the stack + template and any values specified as template parameters. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + retain_except_on_create: bool | None = ... + """ + When set to `true`, newly created resources are deleted when the + operation rolls back. This includes newly created resources marked with + a deletion policy of `Retain`. + + Default: `false` + """ + deletion_mode: str | None = ... + """ + Specifies the deletion mode for the stack. Possible values are: + + - `STANDARD` - Use the standard behavior. Specifying this value is the + same as not specifying this parameter. + + - `FORCE_DELETE_STACK` - Delete the stack if it's stuck in a + `DELETE_FAILED` state due to resource deletion failure. + """ + detailed_status: str | None = ... + """ + The detailed status of the resource or stack. If + `CONFIGURATION_COMPLETE` is present, the resource or resource + configuration phase has completed and the stabilization of the resources + is in progress. The StackSets `CONFIGURATION_COMPLETE` when all of the + resources in the stack have reached that event. For more information, + see [Understand CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + """ + last_operations: list[OperationEntry] | None = ... + """Information about the most recent operations performed on this stack.""" + +@dataclass(kw_only=True) +class StackDefinition(_SerdeShape): + """Describes the stack and the template used by the stack.""" + + stack_name: str | None = ... + """The name associated with the stack.""" + template_body: str | None = ... + """The file path for the stack template file.""" + template_url: str | None = ... + """The desired final state of the stack template.""" + +class StackDriftDetectionStatus(UnknownEnumMixin, StrEnum): + DETECTION_IN_PROGRESS = "DETECTION_IN_PROGRESS" + DETECTION_FAILED = "DETECTION_FAILED" + DETECTION_COMPLETE = "DETECTION_COMPLETE" + +@dataclass(kw_only=True) +class StackDriftInformation(_SerdeShape): + """ + Contains information about whether the stack's actual configuration + differs, or has *drifted*, from its expected configuration, as defined + in the stack template and any values specified as template parameters. A + stack is considered to have drifted if one or more of its resources have + drifted. + """ + + stack_drift_status: str | None = ... + """ + Status of the stack's actual configuration compared to its expected + template configuration. + + - `DRIFTED`: The stack differs from its expected template configuration. + A stack is considered to have drifted if one or more of its resources + have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the stack differs + from its expected template configuration. + + - `IN_SYNC`: The stack's actual configuration matches its expected + template configuration. + + - `UNKNOWN`: CloudFormation could not run drift detection for a resource + in the stack. + """ + last_check_timestamp: datetime | None = ... + """ + Most recent time when a drift detection operation was initiated on the + stack, or any of its individual resources that support drift detection. + """ + +@dataclass(kw_only=True) +class StackDriftInformationSummary(_SerdeShape): + """ + Contains information about whether the stack's actual configuration + differs, or has *drifted*, from its expected configuration, as defined + in the stack template and any values specified as template parameters. A + stack is considered to have drifted if one or more of its resources have + drifted. + """ + + stack_drift_status: str | None = ... + """ + Status of the stack's actual configuration compared to its expected + template configuration. + + - `DRIFTED`: The stack differs from its expected template configuration. + A stack is considered to have drifted if one or more of its resources + have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the stack differs + from its expected template configuration. + + - `IN_SYNC`: The stack's actual configuration matches its expected + template configuration. + + - `UNKNOWN`: CloudFormation could not run drift detection for a resource + in the stack. + """ + last_check_timestamp: datetime | None = ... + """ + Most recent time when a drift detection operation was initiated on the + stack, or any of its individual resources that support drift detection. + """ + +class StackDriftStatus(UnknownEnumMixin, StrEnum): + DRIFTED = "DRIFTED" + IN_SYNC = "IN_SYNC" + UNKNOWN = "UNKNOWN" + NOT_CHECKED = "NOT_CHECKED" + +@dataclass(kw_only=True) +class StackEvent(_SerdeShape): + """The `StackEvent` data type.""" + + stack_id: str | None = ... + """The unique ID name of the instance of the stack.""" + event_id: str | None = ... + """The unique identifier of this event.""" + stack_name: str | None = ... + """The name associated with a stack.""" + operation_id: str | None = ... + """The unique identifier of the operation that generated this stack event.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier associated with the physical instance of + the resource. + """ + resource_type: str | None = ... + """ + Type of resource. For more information, see [Amazon Web Services + resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*. + """ + timestamp: datetime | None = ... + """Time the status was updated.""" + resource_status: str | None = ... + """Current status of the resource.""" + resource_status_reason: str | None = ... + """Success/failure message associated with the resource.""" + resource_properties: str | None = ... + """BLOB of the properties used to create the resource.""" + client_request_token: str | None = ... + """ + The token passed to the operation that generated this event. + + All events triggered by a given stack operation are assigned the same + client request token, which you can use to track operations. For + example, if you execute a `CreateStack` operation with the token + `token1`, then all the `StackEvents` generated by that operation will + have `ClientRequestToken` set as `token1`. + + In the console, stack operations display the client request token on the + Events tab. Stack operations that are initiated from the console use the + token format *Console-StackOperation-ID*, which helps you easily + identify the stack operation . For example, if you create a stack using + the console, each stack event would be assigned the same token in the + following format: + `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`. + """ + hook_type: str | None = ... + """The name of the Hook.""" + hook_status: str | None = ... + """Provides the status of the change set Hook.""" + hook_status_reason: str | None = ... + """Provides the reason for the Hook status.""" + hook_invocation_point: str | None = ... + """ + The specific point in the provisioning process where the Hook is + invoked. + """ + hook_invocation_id: str | None = ... + """The unique identifier of the Hook invocation.""" + hook_failure_mode: str | None = ... + """ + Specify the Hook failure mode for non-compliant resources in the + followings ways. + + - `FAIL` Stops provisioning resources. + + - `WARN` Allows provisioning to continue with a warning message. + """ + detailed_status: str | None = ... + """ + An optional field that contains information about the detailed status of + the stack event. + + - `CONFIGURATION_COMPLETE` - all of the resources in the stack have + reached that event. For more information, see [Understand + CloudFormation stack creation + events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) + in the *CloudFormation User Guide*. + + + + - `VALIDATION_FAILED` - template validation failed because of invalid + properties in the template. The `ResourceStatusReason` field shows + what properties are defined incorrectly. + """ + +@dataclass(kw_only=True) +class StackInstance(_SerdeShape): + """ + A CloudFormation stack, in a specific account and Region, that's part + of a StackSet operation. A stack instance is a reference to an attempted + or actual stack in a given account within a given Region. A stack + instance can exist without a stack---for example, if the stack couldn't + be created for some reason. A stack instance is associated with only one + StackSet. Each stack instance contains the ID of its associated + StackSet, in addition to the ID of the actual stack and the stack + status. + """ + + stack_set_id: str | None = ... + """ + The name or unique ID of the StackSet that the stack instance is + associated with. + """ + region: str | None = ... + """ + The name of the Amazon Web Services Region that the stack instance is + associated with. + """ + account: str | None = ... + """ + [Self-managed permissions] The name of the Amazon Web Services account + that the stack instance is associated with. + """ + stack_id: str | None = ... + """The ID of the stack instance.""" + parameter_overrides: list[Parameter] | None = ... + """ + A list of parameters from the StackSet template whose values have been + overridden in this stack instance. + """ + status: str | None = ... + """ + The status of the stack instance, in terms of its synchronization with + its associated stack set. + + - `INOPERABLE`: A `DeleteStackInstances` operation has failed and left + the stack in an unstable state. Stacks in this state are excluded from + further `UpdateStackSet` operations. You might need to perform a + `DeleteStackInstances` operation, with `RetainStacks` set to `true`, + to delete the stack instance, and then delete the stack manually. + `INOPERABLE` can be returned here when the cause is a failed import. + If it's due to a failed import, the operation can be retried once the + failures are fixed. To see if this is due to a failed import, look at + the `DetailedStatus` member in the `StackInstanceSummary` member that + is a peer to this `Status` member. + + - `OUTDATED`: The stack isn't currently up to date with the StackSet + because: + + - The associated stack failed during a `CreateStackSet` or + `UpdateStackSet` operation. + + - The stack was part of a `CreateStackSet` or `UpdateStackSet` + operation that failed or was stopped before the stack was created or + updated. + + - `CURRENT`: The stack is currently up to date with the StackSet. + """ + stack_instance_status: StackInstanceComprehensiveStatus | None = ... + """The detailed status of the stack instance.""" + status_reason: str | None = ... + """ + The explanation for the specific status code that's assigned to this + stack instance. + """ + organizational_unit_id: str | None = ... + """ + [Service-managed permissions] The organization root ID or + organizational unit (OU) IDs that you specified for + [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). + """ + drift_status: str | None = ... + """ + Status of the stack instance's actual configuration compared to the + expected template and parameter configuration of the StackSet it belongs + to. + + - `DRIFTED`: The stack differs from the expected template and parameter + configuration of the StackSet it belongs to. A stack instance is + considered to have drifted if one or more of the resources in the + associated stack have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the stack instance + differs from its expected StackSet configuration. + + - `IN_SYNC`: The stack instance's actual configuration matches its + expected StackSset configuration. + + - `UNKNOWN`: This value is reserved for future use. + """ + last_drift_check_timestamp: datetime | None = ... + """ + Most recent time when CloudFormation performed a drift detection + operation on the stack instance. This value will be `NULL` for any stack + instance that drift detection hasn't yet been performed on. + """ + last_operation_id: str | None = ... + """ + The last unique ID of a StackSet operation performed on a stack + instance. + """ + +@dataclass(kw_only=True) +class StackInstanceComprehensiveStatus(_SerdeShape): + """The detailed status of the stack instance.""" + + detailed_status: str | None = ... + """ + - `CANCELLED`: The operation in the specified account and Region has + been canceled. This is either because a user has stopped the StackSet + operation, or because the failure tolerance of the StackSet operation + has been exceeded. + + - `FAILED`: The operation in the specified account and Region failed. If + the StackSet operation fails in enough accounts within a Region, the + failure tolerance for the StackSet operation as a whole might be + exceeded. + + - `FAILED_IMPORT`: The import of the stack instance in the specified + account and Region failed and left the stack in an unstable state. + Once the issues causing the failure are fixed, the import operation + can be retried. If enough StackSet operations fail in enough accounts + within a Region, the failure tolerance for the StackSet operation as a + whole might be exceeded. + + - `INOPERABLE`: A `DeleteStackInstances` operation has failed and left + the stack in an unstable state. Stacks in this state are excluded from + further `UpdateStackSet` operations. You might need to perform a + `DeleteStackInstances` operation, with `RetainStacks` set to `true`, + to delete the stack instance, and then delete the stack manually. + + - `PENDING`: The operation in the specified account and Region has yet + to start. + + - `RUNNING`: The operation in the specified account and Region is + currently in progress. + + - `SKIPPED_SUSPENDED_ACCOUNT`: The operation in the specified account + and Region has been skipped because the account was suspended at the + time of the operation. + + - `SUCCEEDED`: The operation in the specified account and Region + completed successfully. + """ + +class StackInstanceDetailedStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + RUNNING = "RUNNING" + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + CANCELLED = "CANCELLED" + INOPERABLE = "INOPERABLE" + SKIPPED_SUSPENDED_ACCOUNT = "SKIPPED_SUSPENDED_ACCOUNT" + FAILED_IMPORT = "FAILED_IMPORT" + +@dataclass(kw_only=True) +class StackInstanceFilter(_SerdeShape): + """The filter to apply to stack instances""" + + name: str | None = ... + """The type of filter to apply.""" + values: str | None = ... + """The status to filter by.""" + +class StackInstanceFilterName(UnknownEnumMixin, StrEnum): + DETAILED_STATUS = "DETAILED_STATUS" + LAST_OPERATION_ID = "LAST_OPERATION_ID" + DRIFT_STATUS = "DRIFT_STATUS" + +@dataclass(kw_only=True) +class StackInstanceNotFoundException(ServiceError, _SerdeShape): + """The specified stack instance doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StackInstanceResourceDriftsSummary(_SerdeShape): + """ + The structure containing summary information about resource drifts for a + stack instance. + """ + + stack_id: str | None = ... + """The ID of the stack instance.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource supported by CloudFormation. + """ + physical_resource_id_context: ( + list[PhysicalResourceIdContextKeyValuePair] | None + ) = ... + """ + Context information that enables CloudFormation to uniquely identify a + resource. CloudFormation uses context key-value pairs in cases where a + resource's logical and physical IDs aren't enough to uniquely identify + that resource. Each context key-value pair specifies a unique resource + that contains the targeted resource. + """ + resource_type: str | None = ... + """ + Type of resource. For more information, see [Amazon Web Services + resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*. + """ + property_differences: list[PropertyDifference] | None = ... + """ + Status of the actual configuration of the resource compared to its + expected configuration. These will be present only for resources whose + `StackInstanceResourceDriftStatus` is `MODIFIED`. + """ + stack_resource_drift_status: str | None = ... + """ + The drift status of the resource in a stack instance. + + - `DELETED`: The resource differs from its expected template + configuration in that the resource has been deleted. + + - `MODIFIED`: One or more resource properties differ from their expected + template values. + + - `IN_SYNC`: The resource's actual configuration matches its expected + template configuration. + + - `NOT_CHECKED`: CloudFormation doesn't currently return this value. + """ + timestamp: datetime | None = ... + """ + Time at which the stack instance drift detection operation was + initiated. + """ + +class StackInstanceStatus(UnknownEnumMixin, StrEnum): + CURRENT = "CURRENT" + OUTDATED = "OUTDATED" + INOPERABLE = "INOPERABLE" + +@dataclass(kw_only=True) +class StackInstanceSummary(_SerdeShape): + """The structure that contains summary information about a stack instance.""" + + stack_set_id: str | None = ... + """ + The name or unique ID of the StackSet that the stack instance is + associated with. + """ + region: str | None = ... + """ + The name of the Amazon Web Services Region that the stack instance is + associated with. + """ + account: str | None = ... + """ + [Self-managed permissions] The name of the Amazon Web Services account + that the stack instance is associated with. + """ + stack_id: str | None = ... + """The ID of the stack instance.""" + status: str | None = ... + """ + The status of the stack instance, in terms of its synchronization with + its associated stack set. + + - `INOPERABLE`: A `DeleteStackInstances` operation has failed and left + the stack in an unstable state. Stacks in this state are excluded from + further `UpdateStackSet` operations. You might need to perform a + `DeleteStackInstances` operation, with `RetainStacks` set to `true`, + to delete the stack instance, and then delete the stack manually. + `INOPERABLE` can be returned here when the cause is a failed import. + If it's due to a failed import, the operation can be retried once the + failures are fixed. To see if this is due to a failed import, call the + DescribeStackInstance API operation, look at the `DetailedStatus` + member returned in the `StackInstanceSummary` member. + + - `OUTDATED`: The stack isn't currently up to date with the StackSet + because: + + - The associated stack failed during a `CreateStackSet` or + `UpdateStackSet` operation. + + - The stack was part of a `CreateStackSet` or `UpdateStackSet` + operation that failed or was stopped before the stack was created or + updated. + + - `CURRENT`: The stack is currently up to date with the StackSet. + """ + status_reason: str | None = ... + """ + The explanation for the specific status code assigned to this stack + instance. + """ + stack_instance_status: StackInstanceComprehensiveStatus | None = ... + """The detailed status of the stack instance.""" + organizational_unit_id: str | None = ... + """ + [Service-managed permissions] The organization root ID or + organizational unit (OU) IDs that you specified for + [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). + """ + drift_status: str | None = ... + """ + Status of the stack instance's actual configuration compared to the + expected template and parameter configuration of the StackSet it belongs + to. + + - `DRIFTED`: The stack differs from the expected template and parameter + configuration of the StackSet it belongs to. A stack instance is + considered to have drifted if one or more of the resources in the + associated stack have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the stack instance + differs from its expected StackSet configuration. + + - `IN_SYNC`: The stack instance's actual configuration matches its + expected StackSet configuration. + + - `UNKNOWN`: This value is reserved for future use. + """ + last_drift_check_timestamp: datetime | None = ... + """ + Most recent time when CloudFormation performed a drift detection + operation on the stack instance. This value will be `NULL` for any stack + instance that drift detection hasn't yet been performed on. + """ + last_operation_id: str | None = ... + """ + The last unique ID of a StackSet operation performed on a stack + instance. + """ + +@dataclass(kw_only=True) +class StackNotFoundException(ServiceError, _SerdeShape): + """ + The specified stack ARN doesn't exist or stack doesn't exist + corresponding to the ARN in input. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StackRefactorAction(_SerdeShape): + """ + Describes the stack and the action that CloudFormation will perform on + it if you execute the stack refactor. + """ + + action: str | None = ... + """The action that CloudFormation takes on the stack.""" + entity: str | None = ... + """ + The type that will be evaluated in the `StackRefactorAction`. The + following are potential `Entity` types: + + - `Stack` + + - `Resource` + """ + physical_resource_id: str | None = ... + """ + The name or unique identifier associated with the physical instance of + the resource. + """ + resource_identifier: str | None = ... + """ + A key-value pair that identifies the target resource. The key is an + identifier property (for example, `BucketName` for `AWS::S3::Bucket` + resources) and the value is the actual property value (for example, + `MyS3Bucket`). + """ + description: str | None = ... + """A description to help you identify the refactor.""" + detection: str | None = ... + """ + The detection type is one of the following: + + - Auto: CloudFormation figured out the mapping on its own. + + - Manual: The customer provided the mapping in the `ResourceMapping` + parameter. + """ + detection_reason: str | None = ... + """The description of the detection type.""" + tag_resources: list[Tag] | None = ... + """Assigns one or more tags to specified resources.""" + untag_resources: list[str] | None = ... + """Removes one or more tags to specified resources.""" + resource_mapping: ResourceMapping | None = ... + """ + The mapping for the stack resource `Source` and stack resource + `Destination`. + """ + +class StackRefactorActionEntity(UnknownEnumMixin, StrEnum): + RESOURCE = "RESOURCE" + STACK = "STACK" + +class StackRefactorActionType(UnknownEnumMixin, StrEnum): + MOVE = "MOVE" + CREATE = "CREATE" + +class StackRefactorDetection(UnknownEnumMixin, StrEnum): + AUTO = "AUTO" + MANUAL = "MANUAL" + +class StackRefactorExecutionStatus(UnknownEnumMixin, StrEnum): + UNAVAILABLE = "UNAVAILABLE" + AVAILABLE = "AVAILABLE" + OBSOLETE = "OBSOLETE" + EXECUTE_IN_PROGRESS = "EXECUTE_IN_PROGRESS" + EXECUTE_COMPLETE = "EXECUTE_COMPLETE" + EXECUTE_FAILED = "EXECUTE_FAILED" + ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS" + ROLLBACK_COMPLETE = "ROLLBACK_COMPLETE" + ROLLBACK_FAILED = "ROLLBACK_FAILED" + +@dataclass(kw_only=True) +class StackRefactorNotFoundException(ServiceError, _SerdeShape): + """The specified stack refactor can't be found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class StackRefactorStatus(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + CREATE_COMPLETE = "CREATE_COMPLETE" + CREATE_FAILED = "CREATE_FAILED" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETE_COMPLETE = "DELETE_COMPLETE" + DELETE_FAILED = "DELETE_FAILED" + +@dataclass(kw_only=True) +class StackRefactorSummary(_SerdeShape): + """The summary of a stack refactor operation.""" + + stack_refactor_id: str | None = ... + """ + The ID associated with the stack refactor created from the + CreateStackRefactor action. + """ + description: str | None = ... + """A description to help you identify the refactor.""" + execution_status: str | None = ... + """ + The operation status that's provided after calling the + ExecuteStackRefactor action. + """ + execution_status_reason: str | None = ... + """A detailed explanation for the stack refactor `ExecutionStatus`.""" + status: str | None = ... + """ + The stack refactor operation status that's provided after calling the + CreateStackRefactor action. + """ + status_reason: str | None = ... + """A detailed explanation for the stack refactor `Status`.""" + +@dataclass(kw_only=True) +class StackResource(_SerdeShape): + """The `StackResource` data type.""" + + stack_name: str | None = ... + """The name associated with the stack.""" + stack_id: str | None = ... + """Unique identifier of the stack.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource supported by CloudFormation. + """ + resource_type: str | None = ... + """ + Type of resource. For more information, see [Amazon Web Services + resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*. + """ + timestamp: datetime | None = ... + """Time the status was updated.""" + resource_status: str | None = ... + """Current status of the resource.""" + resource_status_reason: str | None = ... + """Success/failure message associated with the resource.""" + description: str | None = ... + """User defined description associated with the resource.""" + drift_information: StackResourceDriftInformation | None = ... + """ + Information about whether the resource's actual configuration differs, + or has *drifted*, from its expected configuration, as defined in the + stack template and any values specified as template parameters. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + module_info: ModuleInfo | None = ... + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + """ + +@dataclass(kw_only=True) +class StackResourceDetail(_SerdeShape): + """Contains detailed information about the specified stack resource.""" + + stack_name: str | None = ... + """The name associated with the stack.""" + stack_id: str | None = ... + """Unique identifier of the stack.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource supported by CloudFormation. + """ + resource_type: str | None = ... + """ + Type of resource. For more information, see [Amazon Web Services + resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*. + """ + last_updated_timestamp: datetime | None = ... + """Time the status was updated.""" + resource_status: str | None = ... + """Current status of the resource.""" + resource_status_reason: str | None = ... + """Success/failure message associated with the resource.""" + description: str | None = ... + """User defined description associated with the resource.""" + metadata: str | None = ... + """ + The content of the `Metadata` attribute declared for the resource. For + more information, see [Metadata + attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html) + in the *CloudFormation User Guide*. + """ + drift_information: StackResourceDriftInformation | None = ... + """ + Information about whether the resource's actual configuration differs, + or has *drifted*, from its expected configuration, as defined in the + stack template and any values specified as template parameters. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + module_info: ModuleInfo | None = ... + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + """ + +@dataclass(kw_only=True) +class StackResourceDrift(_SerdeShape): + """ + Contains the drift information for a resource that has been checked for + drift. This includes actual and expected property values for resources + in which CloudFormation has detected drift. Only resource properties + explicitly defined in the stack template are checked for drift. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + + Resources that don't currently support drift detection can't be + checked. For a list of resources that support drift detection, see + [Resource type support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + Use DetectStackResourceDrift to detect drift on individual resources, or + DetectStackDrift to detect drift on all resources in a given stack that + support drift detection. + """ + + stack_id: str | None = ... + """The ID of the stack.""" + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of a resource supported by CloudFormation. + """ + physical_resource_id_context: ( + list[PhysicalResourceIdContextKeyValuePair] | None + ) = ... + """ + Context information that enables CloudFormation to uniquely identify a + resource. CloudFormation uses context key-value pairs in cases where a + resource's logical and physical IDs aren't enough to uniquely identify + that resource. Each context key-value pair specifies a unique resource + that contains the targeted resource. + """ + resource_type: str | None = ... + """The type of the resource.""" + expected_properties: str | None = ... + """ + A JSON structure that contains the expected property values of the stack + resource, as defined in the stack template and any values specified as + template parameters. + + For resources whose `StackResourceDriftStatus` is `DELETED`, this + structure will not be present. + """ + actual_properties: str | None = ... + """ + A JSON structure that contains the actual property values of the stack + resource. + + For resources whose `StackResourceDriftStatus` is `DELETED`, this + structure will not be present. + """ + property_differences: list[PropertyDifference] | None = ... + """ + A collection of the resource properties whose actual values differ from + their expected values. These will be present only for resources whose + `StackResourceDriftStatus` is `MODIFIED`. + """ + stack_resource_drift_status: str | None = ... + """ + Status of the resource's actual configuration compared to its expected + configuration. + + - `DELETED`: The resource differs from its expected template + configuration because the resource has been deleted. + + - `MODIFIED`: One or more resource properties differ from their expected + values (as defined in the stack template and any values specified as + template parameters). + + - `IN_SYNC`: The resource's actual configuration matches its expected + template configuration. + + - `NOT_CHECKED`: CloudFormation does not currently return this value. + + - `UNKNOWN`: CloudFormation could not run drift detection for the + resource. See the `DriftStatusReason` for details. + """ + timestamp: datetime | None = ... + """ + Time at which CloudFormation performed drift detection on the stack + resource. + """ + module_info: ModuleInfo | None = ... + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + """ + drift_status_reason: str | None = ... + """The reason for the drift status.""" + +@dataclass(kw_only=True) +class StackResourceDriftInformation(_SerdeShape): + """ + Contains information about whether the resource's actual configuration + differs, or has *drifted*, from its expected configuration. + """ + + stack_resource_drift_status: str | None = ... + """ + Status of the resource's actual configuration compared to its expected + configuration + + - `DELETED`: The resource differs from its expected configuration in + that it has been deleted. + + - `MODIFIED`: The resource differs from its expected configuration. + + - `NOT_CHECKED`: CloudFormation has not checked if the resource differs + from its expected configuration. + + Any resources that do not currently support drift detection have a + status of `NOT_CHECKED`. For more information, see [Resource type + support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + + - `IN_SYNC`: The resource's actual configuration matches its expected + configuration. + """ + last_check_timestamp: datetime | None = ... + """ + When CloudFormation last checked if the resource had drifted from its + expected configuration. + """ + +@dataclass(kw_only=True) +class StackResourceDriftInformationSummary(_SerdeShape): + """ + Summarizes information about whether the resource's actual + configuration differs, or has *drifted*, from its expected + configuration. + """ + + stack_resource_drift_status: str | None = ... + """ + Status of the resource's actual configuration compared to its expected + configuration. + + - `DELETED`: The resource differs from its expected configuration in + that it has been deleted. + + - `MODIFIED`: The resource differs from its expected configuration. + + - `NOT_CHECKED`: CloudFormation hasn't checked if the resource differs + from its expected configuration. + + Any resources that don't currently support drift detection have a + status of `NOT_CHECKED`. For more information, see [Resource type + support for imports and drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). + If you performed a ContinueUpdateRollback operation on a stack, + resources skipped using `ResourcesToSkip` or `ForceRollback` also have + a status of `NOT_CHECKED`. To detect whether a skipped resource + actually differs from the template, run DetectStackResourceDrift. For + more information about skipping resources during rollback operations, + see [Continue rolling back an + update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) + in the *CloudFormation User Guide*. + + - `IN_SYNC`: The resource's actual configuration matches its expected + configuration. + """ + last_check_timestamp: datetime | None = ... + """ + When CloudFormation last checked if the resource had drifted from its + expected configuration. + """ + +class StackResourceDriftStatus(UnknownEnumMixin, StrEnum): + IN_SYNC = "IN_SYNC" + MODIFIED = "MODIFIED" + DELETED = "DELETED" + NOT_CHECKED = "NOT_CHECKED" + UNKNOWN = "UNKNOWN" + UNSUPPORTED = "UNSUPPORTED" + +@dataclass(kw_only=True) +class StackResourceSummary(_SerdeShape): + """Contains high-level information about the specified stack resource.""" + + logical_resource_id: str | None = ... + """The logical name of the resource specified in the template.""" + physical_resource_id: str | None = ... + """ + The name or unique identifier that corresponds to a physical instance ID + of the resource. + """ + resource_type: str | None = ... + """ + Type of resource. (For more information, see [Amazon Web Services + resource and property types + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + in the *CloudFormation User Guide*.) + """ + last_updated_timestamp: datetime | None = ... + """Time the status was updated.""" + resource_status: str | None = ... + """Current status of the resource.""" + resource_status_reason: str | None = ... + """Success/failure message associated with the resource.""" + drift_information: StackResourceDriftInformationSummary | None = ... + """ + Information about whether the resource's actual configuration differs, + or has *drifted*, from its expected configuration, as defined in the + stack template and any values specified as template parameters. For more + information, see [Detect unmanaged configuration changes to stacks and + resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + module_info: ModuleInfo | None = ... + """ + Contains information about the module from which the resource was + created, if the resource was created from a module included in the stack + template. + """ + +@dataclass(kw_only=True) +class StackSet(_SerdeShape): + """ + A structure that contains information about a StackSet. With StackSets, + you can provision stacks across Amazon Web Services accounts and Regions + from a single CloudFormation template. Each stack is based on the same + CloudFormation template, but you can customize individual stacks using + parameters. + """ + + stack_set_name: str | None = ... + """The name that's associated with the StackSet.""" + stack_set_id: str | None = ... + """The ID of the StackSet.""" + description: str | None = ... + """ + A description of the StackSet that you specify when the StackSet is + created or updated. + """ + status: str | None = ... + """The status of the StackSet.""" + template_body: str | None = ... + """ + The structure that contains the body of the template that was used to + create or update the StackSet. + """ + parameters: list[Parameter] | None = ... + """A list of input parameters for a StackSet.""" + capabilities: list[str] | None = ... + """ + The capabilities that are allowed in the StackSet. Some StackSet + templates might include resources that can affect permissions in your + Amazon Web Services account---for example, by creating new Identity and + Access Management (IAM) users. For more information, see [Acknowledging + IAM resources in CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + """ + tags: list[Tag] | None = ... + """ + A list of tags that specify information about the StackSet. A maximum + number of 50 tags can be specified. + """ + stack_set_arn: str | None = ... + """The Amazon Resource Name (ARN) of the StackSet.""" + administration_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role used to create or update + the stack set. + + Use customized administrator roles to control which users or groups can + manage specific StackSets within the same administrator account. For + more information, see [Prerequisites for using CloudFormation + StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) + in the *CloudFormation User Guide*. + """ + execution_role_name: str | None = ... + """ + The name of the IAM execution role used to create or update the + StackSet. + + Use customized execution roles to control which stack resources users + and groups can include in their StackSets. + """ + stack_set_drift_detection_details: StackSetDriftDetectionDetails | None = ... + """ + Detailed information about the drift status of the StackSet. + + For StackSets, contains information about the last *completed* drift + operation performed on the StackSet. Information about drift operations + currently in progress isn't included. + """ + auto_deployment: AutoDeployment | None = ... + """ + Describes whether StackSets automatically deploys to Organizations + accounts that are added to a target organization or organizational unit + (OU). Valid only if the StackSet uses service-managed permissions. + """ + permission_model: str | None = ... + """ + Describes how the IAM roles required for StackSet operations are + created. + + - With `self-managed` permissions, you must create the administrator and + execution roles required to deploy to target accounts. For more + information, see [Grant self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html). + + - With `service-managed` permissions, StackSets automatically creates + the IAM roles required to deploy to accounts managed by Organizations. + For more information, see [Activate trusted access for StackSets with + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html). + """ + organizational_unit_ids: list[str] | None = ... + """ + [Service-managed permissions] The organization root ID or + organizational unit (OU) IDs that you specified for + [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). + """ + managed_execution: ManagedExecution | None = ... + """ + Describes whether StackSets performs non-conflicting operations + concurrently and queues conflicting operations. + """ + regions: list[str] | None = ... + """ + Returns a list of all Amazon Web Services Regions the given StackSet has + stack instances deployed in. The Amazon Web Services Regions list output + is in no particular order. + """ + +@dataclass(kw_only=True) +class StackSetAutoDeploymentTargetSummary(_SerdeShape): + """ + One of the targets for the StackSet. Returned by the + [ListStackSetAutoDeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStackSetAutoDeploymentTargets.html) + API operation. + """ + + organizational_unit_id: str | None = ... + """ + The organization root ID or organizational unit (OU) IDs where the + StackSet is targeted. + """ + regions: list[str] | None = ... + """The list of Regions targeted for this organization or OU.""" + +@dataclass(kw_only=True) +class StackSetDriftDetectionDetails(_SerdeShape): + """ + Detailed information about the drift status of the StackSet. + + For StackSets, contains information about the last *completed* drift + operation performed on the StackSet. Information about drift operations + in-progress isn't included. + + For StackSet operations, includes information about drift operations + currently being performed on the StackSet. + + For more information, see [Performing drift detection on CloudFormation + StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html) + in the *CloudFormation User Guide*. + """ + + drift_status: str | None = ... + """ + Status of the StackSet's actual configuration compared to its expected + template and parameter configuration. + + - `DRIFTED`: One or more of the stack instances belonging to the + StackSet differs from the expected template and parameter + configuration. A stack instance is considered to have drifted if one + or more of the resources in the associated stack have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked the StackSet for drift. + + - `IN_SYNC`: All of the stack instances belonging to the StackSet stack + match the expected template and parameter configuration. + """ + drift_detection_status: str | None = ... + """ + The status of the StackSet drift detection operation. + + - `COMPLETED`: The drift detection operation completed without failing + on any stack instances. + + - `FAILED`: The drift detection operation exceeded the specified failure + tolerance. + + - `PARTIAL_SUCCESS`: The drift detection operation completed without + exceeding the failure tolerance for the operation. + + - `IN_PROGRESS`: The drift detection operation is currently being + performed. + + - `STOPPED`: The user has canceled the drift detection operation. + """ + last_drift_check_timestamp: datetime | None = ... + """ + Most recent time when CloudFormation performed a drift detection + operation on the StackSet. This value will be `NULL` for any StackSet + that drift detection hasn't yet been performed on. + """ + total_stack_instances_count: int | None = ... + """ + The total number of stack instances belonging to this StackSet. + + The total number of stack instances is equal to the total of: + + - Stack instances that match the StackSet configuration. + + - Stack instances that have drifted from the StackSet configuration. + + - Stack instances where the drift detection operation has failed. + + - Stack instances currently being checked for drift. + """ + drifted_stack_instances_count: int | None = ... + """ + The number of stack instances that have drifted from the expected + template and parameter configuration of the StackSet. A stack instance + is considered to have drifted if one or more of the resources in the + associated stack don't match their expected configuration. + """ + in_sync_stack_instances_count: int | None = ... + """ + The number of stack instances which match the expected template and + parameter configuration of the StackSet. + """ + in_progress_stack_instances_count: int | None = ... + """ + The number of stack instances that are currently being checked for + drift. + """ + failed_stack_instances_count: int | None = ... + """ + The number of stack instances for which the drift detection operation + failed. + """ + +class StackSetDriftDetectionStatus(UnknownEnumMixin, StrEnum): + COMPLETED = "COMPLETED" + FAILED = "FAILED" + PARTIAL_SUCCESS = "PARTIAL_SUCCESS" + IN_PROGRESS = "IN_PROGRESS" + STOPPED = "STOPPED" + +class StackSetDriftStatus(UnknownEnumMixin, StrEnum): + DRIFTED = "DRIFTED" + IN_SYNC = "IN_SYNC" + NOT_CHECKED = "NOT_CHECKED" + +@dataclass(kw_only=True) +class StackSetNotEmptyException(ServiceError, _SerdeShape): + """ + You can't yet delete this StackSet, because it still contains one or + more stack instances. Delete all stack instances from the StackSet + before deleting the StackSet. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StackSetNotFoundException(ServiceError, _SerdeShape): + """The specified StackSet doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StackSetOperation(_SerdeShape): + """The structure that contains information about a StackSet operation.""" + + operation_id: str | None = ... + """The unique ID of a StackSet operation.""" + stack_set_id: str | None = ... + """The ID of the StackSet.""" + action: str | None = ... + """ + The type of StackSet operation: `CREATE`, `UPDATE`, or `DELETE`. Create + and delete operations affect only the specified stack instances that are + associated with the specified StackSet. Update operations affect both + the StackSet itself, in addition to *all* associated stack instances. + """ + status: str | None = ... + """ + The status of the operation. + + - `FAILED`: The operation exceeded the specified failure tolerance. The + failure tolerance value that you've set for an operation is applied + for each Region during stack create and update operations. If the + number of failed stacks within a Region exceeds the failure tolerance, + the status of the operation in the Region is set to `FAILED`. This in + turn sets the status of the operation as a whole to `FAILED`, and + CloudFormation cancels the operation in any remaining Regions. + + - `QUEUED`: [Service-managed permissions] For automatic deployments + that require a sequence of operations, the operation is queued to be + performed. For more information, see the [StackSets status + codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes) + in the *CloudFormation User Guide*. + + - `RUNNING`: The operation is currently being performed. + + - `STOPPED`: The user has canceled the operation. + + - `STOPPING`: The operation is in the process of stopping, at user + request. + + - `SUCCEEDED`: The operation completed creating or updating all the + specified stacks without exceeding the failure tolerance for the + operation. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """The preferences for how CloudFormation performs this StackSet operation.""" + retain_stacks: bool | None = ... + """ + For StackSet operations of action type `DELETE`, specifies whether to + remove the stack instances from the specified StackSet, but doesn't + delete the stacks. You can't re-associate a retained stack, or add an + existing, saved stack to a new StackSet. + """ + administration_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role used to perform this + StackSet operation. + + Use customized administrator roles to control which users or groups can + manage specific StackSets within the same administrator account. For + more information, see [Grant self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) + in the *CloudFormation User Guide*. + """ + execution_role_name: str | None = ... + """ + The name of the IAM execution role used to create or update the + StackSet. + + Use customized execution roles to control which stack resources users + and groups can include in their StackSets. + """ + creation_timestamp: datetime | None = ... + """ + The time at which the operation was initiated. Note that the creation + times for the stack set operation might differ from the creation time of + the individual stacks themselves. This is because CloudFormation needs + to perform preparatory work for the operation, such as dispatching the + work to the requested Regions, before actually creating the first + stacks. + """ + end_timestamp: datetime | None = ... + """ + The time at which the StackSet operation ended, across all accounts and + Regions specified. Note that this doesn't necessarily mean that the + StackSet operation was successful, or even attempted, in each account or + Region. + """ + deployment_targets: DeploymentTargets | None = ... + """ + The Organizations accounts affected by the stack operation. Valid only + if the StackSet uses service-managed permissions. + """ + stack_set_drift_detection_details: StackSetDriftDetectionDetails | None = ... + """ + Detailed information about the drift status of the StackSet. This + includes information about drift operations currently being performed on + the StackSet. + + This information will only be present for StackSet operations whose + `Action` type is `DETECT_DRIFT`. + + For more information, see [Performing drift detection on CloudFormation + StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html) + in the *CloudFormation User Guide*. + """ + status_reason: str | None = ... + """The status of the operation in details.""" + status_details: StackSetOperationStatusDetails | None = ... + """Detailed information about the StackSet operation.""" + +class StackSetOperationAction(UnknownEnumMixin, StrEnum): + CREATE = "CREATE" + UPDATE = "UPDATE" + DELETE = "DELETE" + DETECT_DRIFT = "DETECT_DRIFT" + +@dataclass(kw_only=True) +class StackSetOperationPreferences(_SerdeShape): + """ + The user-specified preferences for how CloudFormation performs a + StackSet operation. + + For more information about maximum concurrent accounts and failure + tolerance, see [StackSet operation + options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + + Note: + `StackSetOperationPreferences` don't apply to `AutoDeployment`, even if + it's enabled. + """ + + region_concurrency_type: str | None = ... + """ + The concurrency type of deploying StackSets operations in Regions, could + be in parallel or one Region at a time. + """ + region_order: list[str] | None = ... + """The order of the Regions where you want to perform the stack operation.""" + failure_tolerance_count: int | None = ... + """ + The number of accounts per Region this operation can fail in before + CloudFormation stops the operation in that Region. If the operation is + stopped in a Region, CloudFormation doesn't attempt the operation in + any subsequent Regions. + + You can specify either `FailureToleranceCount` or + `FailureTolerancePercentage`, but not both. + + By default, `0` is specified. + """ + failure_tolerance_percentage: int | None = ... + """ + The percentage of accounts per Region this stack operation can fail in + before CloudFormation stops the operation in that Region. If the + operation is stopped in a Region, CloudFormation doesn't attempt the + operation in any subsequent Regions. + + When calculating the number of accounts based on the specified + percentage, CloudFormation rounds *down* to the next whole number. + + You can specify either `FailureToleranceCount` or + `FailureTolerancePercentage`, but not both. + + By default, `0` is specified. + """ + max_concurrent_count: int | None = ... + """ + The maximum number of accounts in which to perform this operation at one + time. This can depend on the value of `FailureToleranceCount` depending + on your `ConcurrencyMode`. `MaxConcurrentCount` is at most one more than + the `FailureToleranceCount` if you're using `STRICT_FAILURE_TOLERANCE`. + + Note that this setting lets you specify the *maximum* for operations. + For large deployments, under certain circumstances the actual number of + accounts acted upon concurrently may be lower due to service throttling. + + You can specify either `MaxConcurrentCount` or + `MaxConcurrentPercentage`, but not both. + + By default, `1` is specified. + """ + max_concurrent_percentage: int | None = ... + """ + The maximum percentage of accounts in which to perform this operation at + one time. + + When calculating the number of accounts based on the specified + percentage, CloudFormation rounds down to the next whole number. This is + true except in cases where rounding down would result is zero. In this + case, CloudFormation sets the number as one instead. + + Note that this setting lets you specify the *maximum* for operations. + For large deployments, under certain circumstances the actual number of + accounts acted upon concurrently may be lower due to service throttling. + + You can specify either `MaxConcurrentCount` or + `MaxConcurrentPercentage`, but not both. + + By default, `1` is specified. + """ + concurrency_mode: str | None = ... + """ + Specifies how the concurrency level behaves during the operation + execution. + + - `STRICT_FAILURE_TOLERANCE`: This option dynamically lowers the + concurrency level to ensure the number of failed accounts never + exceeds the value of `FailureToleranceCount` +1. The initial actual + concurrency is set to the lower of either the value of the + `MaxConcurrentCount`, or the value of `FailureToleranceCount` +1. The + actual concurrency is then reduced proportionally by the number of + failures. This is the default behavior. + + If failure tolerance or Maximum concurrent accounts are set to + percentages, the behavior is similar. + + - `SOFT_FAILURE_TOLERANCE`: This option decouples + `FailureToleranceCount` from the actual concurrency. This allows + StackSet operations to run at the concurrency level set by the + `MaxConcurrentCount` value, or `MaxConcurrentPercentage`, regardless + of the number of failures. + """ + +class StackSetOperationResultStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + RUNNING = "RUNNING" + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + CANCELLED = "CANCELLED" + +@dataclass(kw_only=True) +class StackSetOperationResultSummary(_SerdeShape): + """ + The structure that contains information about a specified operation's + results for a given account in a given Region. + """ + + account: str | None = ... + """ + [Self-managed permissions] The name of the Amazon Web Services account + for this operation result. + """ + region: str | None = ... + """The name of the Amazon Web Services Region for this operation result.""" + status: str | None = ... + """ + The result status of the StackSet operation for the given account in the + given Region. + + - `CANCELLED`: The operation in the specified account and Region has + been canceled. This is either because a user has stopped the StackSet + operation, or because the failure tolerance of the StackSet operation + has been exceeded. + + - `FAILED`: The operation in the specified account and Region failed. + + If the StackSet operation fails in enough accounts within a Region, + the failure tolerance for the StackSet operation as a whole might be + exceeded. + + - `RUNNING`: The operation in the specified account and Region is + currently in progress. + + - `PENDING`: The operation in the specified account and Region has yet + to start. + + - `SUCCEEDED`: The operation in the specified account and Region + completed successfully. + """ + status_reason: str | None = ... + """The reason for the assigned result status.""" + account_gate_result: AccountGateResult | None = ... + """ + The results of the account gate function CloudFormation invokes, if + present, before proceeding with StackSet operations in an account. + """ + organizational_unit_id: str | None = ... + """ + [Service-managed permissions] The organization root ID or + organizational unit (OU) IDs that you specified for + [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). + """ + +class StackSetOperationStatus(UnknownEnumMixin, StrEnum): + RUNNING = "RUNNING" + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + STOPPING = "STOPPING" + STOPPED = "STOPPED" + QUEUED = "QUEUED" + +@dataclass(kw_only=True) +class StackSetOperationStatusDetails(_SerdeShape): + """Detailed information about the StackSet operation.""" + + failed_stack_instances_count: int | None = ... + """The number of stack instances for which the StackSet operation failed.""" + +@dataclass(kw_only=True) +class StackSetOperationSummary(_SerdeShape): + """ + The structures that contain summary information about the specified + operation. + """ + + operation_id: str | None = ... + """The unique ID of the StackSet operation.""" + action: str | None = ... + """ + The type of operation: `CREATE`, `UPDATE`, or `DELETE`. Create and + delete operations affect only the specified stack instances that are + associated with the specified StackSet. Update operations affect both + the StackSet itself and *all* associated StackSet instances. + """ + status: str | None = ... + """ + The overall status of the operation. + + - `FAILED`: The operation exceeded the specified failure tolerance. The + failure tolerance value that you've set for an operation is applied + for each Region during stack create and update operations. If the + number of failed stacks within a Region exceeds the failure tolerance, + the status of the operation in the Region is set to `FAILED`. This in + turn sets the status of the operation as a whole to `FAILED`, and + CloudFormation cancels the operation in any remaining Regions. + + - `QUEUED`: [Service-managed permissions] For automatic deployments + that require a sequence of operations, the operation is queued to be + performed. For more information, see the [StackSet status + codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes) + in the *CloudFormation User Guide*. + + - `RUNNING`: The operation is currently being performed. + + - `STOPPED`: The user has canceled the operation. + + - `STOPPING`: The operation is in the process of stopping, at user + request. + + - `SUCCEEDED`: The operation completed creating or updating all the + specified stacks without exceeding the failure tolerance for the + operation. + """ + creation_timestamp: datetime | None = ... + """ + The time at which the operation was initiated. Note that the creation + times for the StackSet operation might differ from the creation time of + the individual stacks themselves. This is because CloudFormation needs + to perform preparatory work for the operation, such as dispatching the + work to the requested Regions, before actually creating the first + stacks. + """ + end_timestamp: datetime | None = ... + """ + The time at which the StackSet operation ended, across all accounts and + Regions specified. Note that this doesn't necessarily mean that the + StackSet operation was successful, or even attempted, in each account or + Region. + """ + status_reason: str | None = ... + """The status of the operation in details.""" + status_details: StackSetOperationStatusDetails | None = ... + """Detailed information about the StackSet operation.""" + operation_preferences: StackSetOperationPreferences | None = ... + """ + The user-specified preferences for how CloudFormation performs a + StackSet operation. + + For more information about maximum concurrent accounts and failure + tolerance, see [StackSet operation + options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + """ + +class StackSetStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DELETED = "DELETED" + +@dataclass(kw_only=True) +class StackSetSummary(_SerdeShape): + """ + The structures that contain summary information about the specified + StackSet. + """ + + stack_set_name: str | None = ... + """The name of the StackSet.""" + stack_set_id: str | None = ... + """The ID of the StackSet.""" + description: str | None = ... + """ + A description of the StackSet that you specify when the StackSet is + created or updated. + """ + status: str | None = ... + """The status of the StackSet.""" + auto_deployment: AutoDeployment | None = ... + """ + [Service-managed permissions] Describes whether StackSets + automatically deploys to Organizations accounts that are added to a + target organizational unit (OU). + """ + permission_model: str | None = ... + """ + Describes how the IAM roles required for StackSet operations are + created. + + - With `self-managed` permissions, you must create the administrator and + execution roles required to deploy to target accounts. For more + information, see [Grant self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html). + + - With `service-managed` permissions, StackSets automatically creates + the IAM roles required to deploy to accounts managed by Organizations. + For more information, see [Activate trusted access for StackSets with + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html). + """ + drift_status: str | None = ... + """ + Status of the StackSet's actual configuration compared to its expected + template and parameter configuration. + + - `DRIFTED`: One or more of the stack instances belonging to the + StackSet differs from the expected template and parameter + configuration. A stack instance is considered to have drifted if one + or more of the resources in the associated stack have drifted. + + - `NOT_CHECKED`: CloudFormation hasn't checked the StackSet for drift. + + - `IN_SYNC`: All the stack instances belonging to the StackSet match the + expected template and parameter configuration. + + - `UNKNOWN`: This value is reserved for future use. + """ + last_drift_check_timestamp: datetime | None = ... + """ + Most recent time when CloudFormation performed a drift detection + operation on the StackSet. This value will be `NULL` for any StackSet + that drift detection hasn't yet been performed on. + """ + managed_execution: ManagedExecution | None = ... + """ + Describes whether StackSets performs non-conflicting operations + concurrently and queues conflicting operations. + """ + +class StackStatus(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + CREATE_FAILED = "CREATE_FAILED" + CREATE_COMPLETE = "CREATE_COMPLETE" + ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS" + ROLLBACK_FAILED = "ROLLBACK_FAILED" + ROLLBACK_COMPLETE = "ROLLBACK_COMPLETE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETE_FAILED = "DELETE_FAILED" + DELETE_COMPLETE = "DELETE_COMPLETE" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + UPDATE_COMPLETE_CLEANUP_IN_PROGRESS = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" + UPDATE_COMPLETE = "UPDATE_COMPLETE" + UPDATE_FAILED = "UPDATE_FAILED" + UPDATE_ROLLBACK_IN_PROGRESS = "UPDATE_ROLLBACK_IN_PROGRESS" + UPDATE_ROLLBACK_FAILED = "UPDATE_ROLLBACK_FAILED" + UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS = ( + "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS" + ) + UPDATE_ROLLBACK_COMPLETE = "UPDATE_ROLLBACK_COMPLETE" + REVIEW_IN_PROGRESS = "REVIEW_IN_PROGRESS" + IMPORT_IN_PROGRESS = "IMPORT_IN_PROGRESS" + IMPORT_COMPLETE = "IMPORT_COMPLETE" + IMPORT_ROLLBACK_IN_PROGRESS = "IMPORT_ROLLBACK_IN_PROGRESS" + IMPORT_ROLLBACK_FAILED = "IMPORT_ROLLBACK_FAILED" + IMPORT_ROLLBACK_COMPLETE = "IMPORT_ROLLBACK_COMPLETE" + +@dataclass(kw_only=True) +class StackSummary(_SerdeShape): + """The `StackSummary` Data Type""" + + stack_id: str | None = ... + """Unique stack identifier.""" + stack_name: str | None = ... + """The name associated with the stack.""" + template_description: str | None = ... + """The template description of the template used to create the stack.""" + creation_time: datetime | None = ... + """The time the stack was created.""" + last_updated_time: datetime | None = ... + """ + The time the stack was last updated. This field will only be returned if + the stack has been updated at least once. + """ + deletion_time: datetime | None = ... + """The time the stack was deleted.""" + stack_status: str | None = ... + """The current status of the stack.""" + stack_status_reason: str | None = ... + """Success/Failure message associated with the stack status.""" + parent_id: str | None = ... + """ + For nested stacks, the stack ID of the direct parent of this stack. For + the first level of nested stacks, the root stack is also the parent + stack. + + For more information, see [Nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + in the *CloudFormation User Guide*. + """ + root_id: str | None = ... + """ + For nested stacks, the stack ID of the top-level stack to which the + nested stack ultimately belongs. + + For more information, see [Nested + stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) + in the *CloudFormation User Guide*. + """ + drift_information: StackDriftInformationSummary | None = ... + """ + Summarizes information about whether a stack's actual configuration + differs, or has *drifted*, from its expected configuration, as defined + in the stack template and any values specified as template parameters. + For more information, see [Detect unmanaged configuration changes to + stacks and resources with drift + detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + """ + last_operations: list[OperationEntry] | None = ... + """Information about the most recent operations performed on this stack.""" + +@dataclass(kw_only=True) +class StaleRequestException(ServiceError, _SerdeShape): + """ + Another operation has been performed on this StackSet since the + specified operation was performed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartResourceScanInput(_SerdeShape): + """Dataclass for StartResourceScanInput structure.""" + + client_request_token: str | None = ... + """ + A unique identifier for this `StartResourceScan` request. Specify this + token if you plan to retry requests so that CloudFormation knows that + you're not attempting to start a new resource scan. + """ + scan_filters: list[ScanFilter] | None = ... + """The scan filters to use.""" + +@dataclass(kw_only=True) +class StartResourceScanOutput(_SerdeShape): + """Dataclass for StartResourceScanOutput structure.""" + + resource_scan_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource scan. The format is + `arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}`. + An example is + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:resourceScan/`*`f5b490f7-7ed4-428a-aa06-31ff25db0772`*` `. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopStackSetOperationInput(_SerdeShape): + """Dataclass for StopStackSetOperationInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet that you want to stop the + operation for. + """ + operation_id: str | None = ... + """The ID of the stack operation.""" + call_as: str | None = ... + """ + Specifies whether you are acting as an account administrator in the + organization's management account or as a delegated administrator in a + member account. Valid only if the StackSet uses service-managed + permissions. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class StopStackSetOperationOutput(_SerdeShape): + """Dataclass for StopStackSetOperationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + The Tag type enables you to specify a key-value pair that can be used to + store information about an CloudFormation stack. + """ + + key: str | None = ... + """ + A string used to identify this tag. You can specify a maximum of 128 + characters for a tag key. Tags owned by Amazon Web Services have the + reserved prefix: `aws:`. + """ + value: str | None = ... + """ + A string that contains the value for this tag. You can specify a maximum + of 256 characters for a tag value. + """ + +@dataclass(kw_only=True) +class TemplateConfiguration(_SerdeShape): + """The configuration details of a generated template.""" + + deletion_policy: str | None = ... + """ + The `DeletionPolicy` assigned to resources in the generated template. + Supported values are: + + - `DELETE` - delete all resources when the stack is deleted. + + - `RETAIN` - retain all resources when the stack is deleted. + + For more information, see [DeletionPolicy + attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) + in the *CloudFormation User Guide*. + """ + update_replace_policy: str | None = ... + """ + The `UpdateReplacePolicy` assigned to resources in the generated + template. Supported values are: + + - `DELETE` - delete all resources when the resource is replaced during + an update operation. + + - `RETAIN` - retain all resources when the resource is replaced during + an update operation. + + For more information, see [UpdateReplacePolicy + attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html) + in the *CloudFormation User Guide*. + """ + +class TemplateFormat(UnknownEnumMixin, StrEnum): + JSON = "JSON" + YAML = "YAML" + +@dataclass(kw_only=True) +class TemplateParameter(_SerdeShape): + """The `TemplateParameter` data type.""" + + parameter_key: str | None = ... + """The name associated with the parameter.""" + default_value: str | None = ... + """The default value associated with the parameter.""" + no_echo: bool | None = ... + """ + Flag indicating whether the parameter should be displayed as plain text + in logs and UIs. + """ + description: str | None = ... + """User defined description associated with the parameter.""" + +@dataclass(kw_only=True) +class TemplateProgress(_SerdeShape): + """A summary of the progress of the template generation.""" + + resources_succeeded: int | None = ... + """The number of resources that succeeded the template generation.""" + resources_failed: int | None = ... + """The number of resources that failed the template generation.""" + resources_processing: int | None = ... + """The number of resources that are in-process for the template generation.""" + resources_pending: int | None = ... + """The number of resources that are still pending the template generation.""" + +class TemplateStage(UnknownEnumMixin, StrEnum): + ORIGINAL = "Original" + PROCESSED = "Processed" + +@dataclass(kw_only=True) +class TemplateSummary(_SerdeShape): + """The summary of a generated template.""" + + generated_template_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the generated template. The format is + `arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}`. + For example, + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:generatedtemplate/`*`2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc`*` `. + """ + generated_template_name: str | None = ... + """The name of the generated template.""" + status: str | None = ... + """ + The status of the template generation. Supported values are: + + - `CreatePending` - the creation of the template is pending. + + - `CreateInProgress` - the creation of the template is in progress. + + - `DeletePending` - the deletion of the template is pending. + + - `DeleteInProgress` - the deletion of the template is in progress. + + - `UpdatePending` - the update of the template is pending. + + - `UpdateInProgress` - the update of the template is in progress. + + - `Failed` - the template operation failed. + + - `Complete` - the template operation is complete. + """ + status_reason: str | None = ... + """ + The reason for the current template generation status. This will provide + more details if a failure happened. + """ + creation_time: datetime | None = ... + """The time the generated template was created.""" + last_updated_time: datetime | None = ... + """The time the generated template was last updated.""" + number_of_resources: int | None = ... + """ + The number of resources in the generated template. This is a total of + resources in pending, in-progress, completed, and failed states. + """ + +@dataclass(kw_only=True) +class TemplateSummaryConfig(_SerdeShape): + """Options for the `GetTemplateSummary` API action.""" + + treat_unrecognized_resource_types_as_warnings: bool | None = ... + """ + If set to `True`, any unrecognized resource types generate warnings and + not an error. Any unrecognized resource types are returned in the + `Warnings` output parameter. + """ + +@dataclass(kw_only=True) +class TestTypeInput(_SerdeShape): + """Dataclass for TestTypeInput structure.""" + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the extension. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + type: str | None = ... + """ + The type of the extension to test. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + type_name: str | None = ... + """ + The name of the extension to test. + + Conditional: You must specify `Arn`, or `TypeName` and `Type`. + """ + version_id: str | None = ... + """ + The version of the extension to test. + + You can specify the version id with either `Arn`, or with `TypeName` and + `Type`. + + If you don't specify a version, CloudFormation uses the default version + of the extension in this account and Region for testing. + """ + log_delivery_bucket: str | None = ... + """ + The S3 bucket to which CloudFormation delivers the contract test + execution logs. + + CloudFormation delivers the logs by the time contract testing has + completed and the extension has been assigned a test type status of + `PASSED` or `FAILED`. + + The user calling `TestType` must be able to access items in the + specified S3 bucket. Specifically, the user needs the following + permissions: + + - `GetObject` + + - `PutObject` + + For more information, see [Actions, Resources, and Condition Keys for + Amazon + S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) + in the *Identity and Access Management User Guide*. + """ + +@dataclass(kw_only=True) +class TestTypeOutput(_SerdeShape): + """Dataclass for TestTypeOutput structure.""" + + type_version_arn: str | None = ... + """The Amazon Resource Name (ARN) of the extension.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ThirdPartyType(UnknownEnumMixin, StrEnum): + RESOURCE = "RESOURCE" + MODULE = "MODULE" + HOOK = "HOOK" + +@dataclass(kw_only=True) +class TokenAlreadyExistsException(ServiceError, _SerdeShape): + """A client request token already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TypeConfigurationDetails(_SerdeShape): + """ + Detailed information concerning the specification of a CloudFormation + extension in a given account and Region. + + For more information, see [Edit configuration data for extensions in + your + account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) + in the *CloudFormation User Guide*. + """ + + arn: str | None = ... + """The ARN for the configuration data, in this account and Region.""" + alias: str | None = ... + """ + The alias specified for this configuration, if one was specified when + the configuration was set. + """ + configuration: str | None = ... + """ + A JSON string specifying the configuration data for the extension, in + this account and Region. + + If a configuration hasn't been set for a specified extension, + CloudFormation returns `{}`. + """ + last_updated: datetime | None = ... + """ + When the configuration data was last updated for this extension. + + If a configuration hasn't been set for a specified extension, + CloudFormation returns `null`. + """ + type_arn: str | None = ... + """ + The ARN for the extension, in this account and Region. + + For public extensions, this will be the ARN assigned when you call the + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html) + API operation in this account and Region. For private extensions, this + will be the ARN assigned when you call the + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html) + API operation in this account and Region. + """ + type_name: str | None = ... + """The name of the extension.""" + is_default_configuration: bool | None = ... + """ + Whether this configuration data is the default configuration for the + extension. + """ + +@dataclass(kw_only=True) +class TypeConfigurationIdentifier(_SerdeShape): + """ + Identifying information for the configuration of a CloudFormation + extension. + """ + + type_arn: str | None = ... + """ + The ARN for the extension, in this account and Region. + + For public extensions, this will be the ARN assigned when you call the + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html) + API operation in this account and Region. For private extensions, this + will be the ARN assigned when you call the + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html) + API operation in this account and Region. + """ + type_configuration_alias: str | None = ... + """ + The alias specified for this configuration, if one was specified when + the configuration was set. + """ + type_configuration_arn: str | None = ... + """The ARN for the configuration, in this account and Region.""" + type: str | None = ... + """The type of extension.""" + type_name: str | None = ... + """The name of the extension type to which this configuration applies.""" + +@dataclass(kw_only=True) +class TypeConfigurationNotFoundException(ServiceError, _SerdeShape): + """The specified extension configuration can't be found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TypeFilters(_SerdeShape): + """Filter criteria to use in determining which extensions to return.""" + + category: str | None = ... + """ + The category of extensions to return. + + - `REGISTERED`: Private extensions that have been registered for this + account and Region. + + - `ACTIVATED`: Public extensions that have been activated for this + account and Region. + + - `THIRD_PARTY`: Extensions available for use from publishers other than + Amazon. This includes: + + - Private extensions registered in the account. + + - Public extensions from publishers other than Amazon, whether + activated or not. + + - `AWS_TYPES`: Extensions available for use from Amazon. + """ + publisher_id: str | None = ... + """ + The id of the publisher of the extension. + + Extensions published by Amazon aren't assigned a publisher ID. Use the + `AWS_TYPES` category to specify a list of types published by Amazon. + """ + type_name_prefix: str | None = ... + """A prefix to use as a filter for results.""" + +@dataclass(kw_only=True) +class TypeNotFoundException(ServiceError, _SerdeShape): + """The specified extension doesn't exist in the CloudFormation registry.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TypeSummary(_SerdeShape): + """ + Contains summary information about the specified CloudFormation + extension. + """ + + type: str | None = ... + """The kind of extension.""" + type_name: str | None = ... + """ + The name of the extension. + + If you specified a `TypeNameAlias` when you call the + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html) + API operation in your account and Region, CloudFormation considers that + alias as the type name. + """ + default_version_id: str | None = ... + """ + The ID of the default version of the extension. The default version is + used when the extension version isn't specified. + + This applies only to private extensions you have registered in your + account. For public extensions, both those provided by Amazon and + published by third parties, CloudFormation returns `null`. For more + information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + To set the default version of an extension, use SetTypeDefaultVersion. + """ + type_arn: str | None = ... + """The ARN of the extension.""" + last_updated: datetime | None = ... + """ + When the specified extension version was registered. This applies only + to: + + - Private extensions you have registered in your account. For more + information, see + [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). + + - Public extensions you have activated in your account with auto-update + specified. For more information, see + [ActivateType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html). + + For all other extension types, CloudFormation returns `null`. + """ + description: str | None = ... + """The description of the extension.""" + publisher_id: str | None = ... + """ + The ID of the extension publisher, if the extension is published by a + third party. Extensions published by Amazon don't return a publisher + ID. + """ + original_type_name: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the type name of the public extension. + + If you specified a `TypeNameAlias` when enabling the extension in this + account and Region, CloudFormation treats that alias as the extension's + type name within the account and Region, not the type name of the public + extension. For more information, see [Use aliases to refer to + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) + in the *CloudFormation User Guide*. + """ + public_version_number: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the version of the public extension to be used for + CloudFormation operations in this account and Region. + + How you specified `AutoUpdate` when enabling the extension affects + whether CloudFormation automatically updates the extension in this + account and Region when a new version is released. For more information, + see [Automatically use new versions of + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) + in the *CloudFormation User Guide*. + """ + latest_public_version: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the latest version of the public extension *that is available*. + For any extensions other than activated third-party extensions, + CloudFormation returns `null`. + + How you specified `AutoUpdate` when enabling the extension affects + whether CloudFormation automatically updates the extension in this + account and Region when a new version is released. For more information, + see [Automatically use new versions of + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) + in the *CloudFormation User Guide*. + """ + publisher_identity: str | None = ... + """ + The service used to verify the publisher identity. + + For more information, see [Publishing extensions to make them available + for public + use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) + in the *CloudFormation Command Line Interface (CLI) User Guide*. + """ + publisher_name: str | None = ... + """ + The publisher name, as defined in the public profile for that publisher + in the service used to verify the publisher identity. + """ + is_activated: bool | None = ... + """ + Whether the extension is activated for this account and Region. + + This applies only to third-party public extensions. Extensions published + by Amazon are activated by default. + """ + +class TypeTestsStatus(UnknownEnumMixin, StrEnum): + PASSED = "PASSED" + FAILED = "FAILED" + IN_PROGRESS = "IN_PROGRESS" + NOT_TESTED = "NOT_TESTED" + +@dataclass(kw_only=True) +class TypeVersionSummary(_SerdeShape): + """ + Contains summary information about a specific version of a + CloudFormation extension. + """ + + type: str | None = ... + """The kind of extension.""" + type_name: str | None = ... + """The name of the extension.""" + version_id: str | None = ... + """ + The ID of a specific version of the extension. The version ID is the + value at the end of the ARN assigned to the extension version when it's + registered. + """ + is_default_version: bool | None = ... + """ + Whether the specified extension version is set as the default version. + + This applies only to private extensions you have registered in your + account, and extensions published by Amazon. For public third-party + extensions, CloudFormation returns `null`. + """ + arn: str | None = ... + """The ARN of the extension version.""" + time_created: datetime | None = ... + """When the version was registered.""" + description: str | None = ... + """The description of the extension version.""" + public_version_number: str | None = ... + """ + For public extensions that have been activated for this account and + Region, the version of the public extension to be used for + CloudFormation operations in this account and Region. For any extensions + other than activated third-party extensions, CloudFormation returns + `null`. + + How you specified `AutoUpdate` when enabling the extension affects + whether CloudFormation automatically updates the extension in this + account and Region when a new version is released. For more information, + see [Automatically use new versions of + extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class UpdateGeneratedTemplateInput(_SerdeShape): + """Dataclass for UpdateGeneratedTemplateInput structure.""" + + generated_template_name: str | None = ... + """The name or Amazon Resource Name (ARN) of a generated template.""" + new_generated_template_name: str | None = ... + """An optional new name to assign to the generated template.""" + add_resources: list[ResourceDefinition] | None = ... + """An optional list of resources to be added to the generated template.""" + remove_resources: list[str] | None = ... + """ + A list of logical ids for resources to remove from the generated + template. + """ + refresh_all_resources: bool | None = ... + """ + If `true`, update the resource properties in the generated template with + their current live state. This feature is useful when the resource + properties in your generated a template does not reflect the live state + of the resource properties. This happens when a user update the resource + properties after generating a template. + """ + template_configuration: TemplateConfiguration | None = ... + """ + The configuration details of the generated template, including the + `DeletionPolicy` and `UpdateReplacePolicy`. + """ + +@dataclass(kw_only=True) +class UpdateGeneratedTemplateOutput(_SerdeShape): + """Dataclass for UpdateGeneratedTemplateOutput structure.""" + + generated_template_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the generated template. The format is + `arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}`. + For example, + `arn:aws:cloudformation:`*`us-east-1`*`:`*`123456789012`*`:generatedtemplate/`*`2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc`*` `. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStackInput(_SerdeShape): + """The input for an UpdateStack action.""" + + stack_name: str | None = ... + """The name or unique stack ID of the stack to update.""" + template_body: str | None = ... + """ + Structure that contains the template body with a minimum length of 1 + byte and a maximum length of 51,200 bytes. + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template that's located in an Amazon S3 bucket or a Systems Manager + document. The location for an Amazon S3 bucket must start with + `https://`. + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + use_previous_template: bool | None = ... + """ + Reuse the existing template that is associated with the stack that you + are updating. + + When using templates with the `AWS::LanguageExtensions` transform, + provide the template instead of using `UsePreviousTemplate` to ensure + new parameter values and Systems Manager parameter updates are applied + correctly. For more information, see [AWS::LanguageExtensions + transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/transform-aws-languageextensions.html). + + Conditional: You must specify only one of the following parameters: + `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to + `true`. + """ + stack_policy_during_update_body: str | None = ... + """ + Structure that contains the temporary overriding stack policy body. You + can specify either the `StackPolicyDuringUpdateBody` or the + `StackPolicyDuringUpdateURL` parameter, but not both. + + If you want to update protected resources, specify a temporary + overriding stack policy during this update. If you don't specify a + stack policy, the current policy that is associated with the stack will + be used. + """ + stack_policy_during_update_url: str | None = ... + """ + Location of a file that contains the temporary overriding stack policy. + The URL must point to a policy (max size: 16KB) located in an S3 bucket + in the same Region as the stack. The location for an Amazon S3 bucket + must start with `https://`. URLs from S3 static websites are not + supported. + + You can specify either the `StackPolicyDuringUpdateBody` or the + `StackPolicyDuringUpdateURL` parameter, but not both. + + If you want to update protected resources, specify a temporary + overriding stack policy during this update. If you don't specify a + stack policy, the current policy that is associated with the stack will + be used. + """ + parameters: list[Parameter] | None = ... + """ + A list of `Parameter` structures that specify input parameters for the + stack. For more information, see the + [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html) + data type. + """ + capabilities: list[str] | None = ... + """ + In some cases, you must explicitly acknowledge that your stack template + contains certain capabilities in order for CloudFormation to update the + stack. + + - `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM` + + Some stack templates might include resources that can affect + permissions in your Amazon Web Services account, for example, by + creating new IAM users. For those stacks, you must explicitly + acknowledge this by specifying one of these capabilities. + + The following IAM resources require you to specify either the + `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability. + + - If you have IAM resources, you can specify either capability. + + - If you have IAM resources with custom names, you *must* specify + `CAPABILITY_NAMED_IAM`. + + - If you don't specify either of these capabilities, CloudFormation + returns an `InsufficientCapabilities` error. + + If your stack template contains these resources, we suggest that you + review all permissions associated with them and edit their permissions + if necessary. + + - [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html) + + - [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html) + + - [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html) + + - [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-managedpolicy.html) + + - [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html) + + - [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html) + + - [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) + + - [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html) + + For more information, see [Acknowledging IAM resources in + CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + + - `CAPABILITY_AUTO_EXPAND` + + Some template contain macros. Macros perform custom processing on + templates; this can include simple actions like find-and-replace + operations, all the way to extensive transformations of entire + templates. Because of this, users typically create a change set from + the processed template, so that they can review the changes resulting + from the macros before actually updating the stack. If your stack + template contains one or more macros, and you choose to update a stack + directly from the processed template, without first reviewing the + resulting changes in a change set, you must acknowledge this + capability. This includes the + [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html) + and + [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) + transforms, which are macros hosted by CloudFormation. + + If you want to update a stack from a stack template that contains + macros *and* nested stacks, you must update the stack directly from + the template using this capability. + + Warning: + You should only update stacks directly from a stack template that + contains macros if you know what processing the macro performs. + + Each macro relies on an underlying Lambda service function for + processing stack templates. Be aware that the Lambda function owner + can update the function operation without CloudFormation being + notified. + + For more information, see [Perform custom processing on CloudFormation + templates with template + macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + resource_types: list[str] | None = ... + """ + Specifies which resource types you can work with, such as + `AWS::EC2::Instance` or `Custom::MyCustomInstance`. + + If the list of resource types doesn't include a resource that you're + updating, the stack update fails. By default, CloudFormation grants + permissions to all resource types. IAM uses this parameter for + CloudFormation-specific condition keys in IAM policies. For more + information, see [Control CloudFormation access with Identity and Access + Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html). + + Note: + Only one of the `Capabilities` and `ResourceType` parameters can be + specified. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of an IAM role that CloudFormation + assumes to update the stack. CloudFormation uses the role's credentials + to make calls on your behalf. CloudFormation always uses this role for + all future operations on the stack. Provided that users have permission + to operate on the stack, CloudFormation uses this role even if the users + don't have permission to pass it. Ensure that the role grants least + privilege. + + If you don't specify a value, CloudFormation uses the role that was + previously associated with the stack. If no role is available, + CloudFormation uses a temporary session that is generated from your user + credentials. + """ + rollback_configuration: RollbackConfiguration | None = ... + """ + The rollback triggers for CloudFormation to monitor during stack + creation and updating operations, and for the specified monitoring + period afterwards. + """ + stack_policy_body: str | None = ... + """ + Structure that contains a new stack policy body. You can specify either + the `StackPolicyBody` or the `StackPolicyURL` parameter, but not both. + + You might update the stack policy, for example, in order to protect a + new resource that you created during a stack update. If you don't + specify a stack policy, the current policy that is associated with the + stack is unchanged. + """ + stack_policy_url: str | None = ... + """ + Location of a file that contains the updated stack policy. The URL must + point to a policy (max size: 16KB) located in an S3 bucket in the same + Region as the stack. The location for an Amazon S3 bucket must start + with `https://`. URLs from S3 static websites are not supported. + + You can specify either the `StackPolicyBody` or the `StackPolicyURL` + parameter, but not both. + + You might update the stack policy, for example, in order to protect a + new resource that you created during a stack update. If you don't + specify a stack policy, the current policy that is associated with the + stack is unchanged. + """ + notification_ar_ns: list[str] | None = ... + """ + Amazon Simple Notification Service topic Amazon Resource Names (ARNs) + that CloudFormation associates with the stack. Specify an empty list to + remove all notification topics. + """ + tags: list[Tag] | None = ... + """ + Key-value pairs to associate with this stack. CloudFormation also + propagates these tags to supported resources in the stack. You can + specify a maximum number of 50 tags. + + If you don't specify this parameter, CloudFormation doesn't modify the + stack's tags. If you specify an empty value, CloudFormation removes all + associated tags. + """ + disable_rollback: bool | None = ... + """ + Preserve the state of previously provisioned resources when an operation + fails. + + Default: `False` + """ + client_request_token: str | None = ... + """ + A unique identifier for this `UpdateStack` request. Specify this token + if you plan to retry requests so that CloudFormation knows that you're + not attempting to update a stack with the same name. You might retry + `UpdateStack` requests to ensure that CloudFormation successfully + received them. + + All events triggered by a given stack operation are assigned the same + client request token, which you can use to track operations. For + example, if you execute a `CreateStack` operation with the token + `token1`, then all the `StackEvents` generated by that operation will + have `ClientRequestToken` set as `token1`. + + In the console, stack operations display the client request token on the + Events tab. Stack operations that are initiated from the console use the + token format *Console-StackOperation-ID*, which helps you easily + identify the stack operation . For example, if you create a stack using + the console, each stack event would be assigned the same token in the + following format: + `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`. + """ + retain_except_on_create: bool | None = ... + """ + When set to `true`, newly created resources are deleted when the + operation rolls back. This includes newly created resources marked with + a deletion policy of `Retain`. + + Default: `false` + """ + deployment_config: DeploymentConfig | None = ... + """ + The deployment configuration for this stack operation, including the + deployment mode. + """ + disable_validation: bool | None = ... + """ + Set to `true` to disable pre-deployment validations in changeset or + stack operations. + + Default: `false` + """ + +@dataclass(kw_only=True) +class UpdateStackInstancesInput(_SerdeShape): + """Dataclass for UpdateStackInstancesInput structure.""" + + stack_set_name: str | None = ... + """ + The name or unique ID of the StackSet associated with the stack + instances. + """ + accounts: list[str] | None = ... + """ + [Self-managed permissions] The account IDs of one or more Amazon Web + Services accounts in which you want to update parameter values for stack + instances. The overridden parameter values will be applied to all stack + instances in the specified accounts and Amazon Web Services Regions. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + deployment_targets: DeploymentTargets | None = ... + """ + [Service-managed permissions] The Organizations accounts in which you + want to update parameter values for stack instances. If your update + targets OUs, the overridden parameter values only apply to the accounts + that are currently in the target OUs and their child OUs. Accounts added + to the target OUs and their child OUs in the future won't use the + overridden values. + + You can specify `Accounts` or `DeploymentTargets`, but not both. + """ + regions: list[str] | None = ... + """ + The names of one or more Amazon Web Services Regions in which you want + to update parameter values for stack instances. The overridden parameter + values will be applied to all stack instances in the specified accounts + and Amazon Web Services Regions. + """ + parameter_overrides: list[Parameter] | None = ... + """ + A list of input parameters whose values you want to update for the + specified stack instances. + + Any overridden parameter values will be applied to all stack instances + in the specified accounts and Amazon Web Services Regions. When + specifying parameters and their values, be aware of how CloudFormation + sets parameter values during stack instance update operations: + + - To override the current value for a parameter, include the parameter + and specify its value. + + - To leave an overridden parameter set to its present value, include the + parameter and specify `UsePreviousValue` as `true`. (You can't + specify both a value and set `UsePreviousValue` to `true`.) + + - To set an overridden parameter back to the value specified in the + StackSet, specify a parameter list but don't include the parameter in + the list. + + - To leave all parameters set to their present values, don't specify + this property at all. + + During StackSet updates, any parameter values overridden for a stack + instance aren't updated, but retain their overridden value. + + You can only override the parameter *values* that are specified in the + StackSet. To add or delete a parameter itself, use `UpdateStackSet` to + update the StackSet template. If you add a parameter to a template, + before you can override the parameter value specified in the StackSet + you must first use + [UpdateStackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html) + to update all stack instances with the updated template and parameter + value specified in the StackSet. Once a stack instance has been updated + with the new parameter, you can then override the parameter value using + `UpdateStackInstances`. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """Preferences for how CloudFormation performs this StackSet operation.""" + operation_id: str | None = ... + """ + The unique identifier for this StackSet operation. + + The operation ID also functions as an idempotency token, to ensure that + CloudFormation performs the StackSet operation only once, even if you + retry the request multiple times. You might retry StackSet operation + requests to ensure that CloudFormation successfully received them. + + If you don't specify an operation ID, the SDK generates one + automatically. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + +@dataclass(kw_only=True) +class UpdateStackInstancesOutput(_SerdeShape): + """Dataclass for UpdateStackInstancesOutput structure.""" + + operation_id: str | None = ... + """The unique identifier for this StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStackOutput(_SerdeShape): + """The output for an UpdateStack action.""" + + stack_id: str | None = ... + """Unique identifier of the stack.""" + operation_id: str | None = ... + """ + A unique identifier for this update operation that can be used to track + the operation's progress and events. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStackSetInput(_SerdeShape): + """Dataclass for UpdateStackSetInput structure.""" + + stack_set_name: str | None = ... + """The name or unique ID of the StackSet that you want to update.""" + description: str | None = ... + """A brief description of updates that you are making.""" + template_body: str | None = ... + """ + The structure that contains the template body, with a minimum length of + 1 byte and a maximum length of 51,200 bytes. + + Conditional: You must specify only one of the following parameters: + `TemplateBody` or `TemplateURL`---or set `UsePreviousTemplate` to true. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template (maximum size: 1 MB) that is located in an Amazon S3 bucket + or a Systems Manager document. The location for an Amazon S3 bucket must + start with `https://`. S3 static website URLs are not supported. + + Conditional: You must specify only one of the following parameters: + `TemplateBody` or `TemplateURL`---or set `UsePreviousTemplate` to true. + """ + use_previous_template: bool | None = ... + """ + Use the existing template that's associated with the StackSet that + you're updating. + + Conditional: You must specify only one of the following parameters: + `TemplateBody` or `TemplateURL`---or set `UsePreviousTemplate` to true. + """ + parameters: list[Parameter] | None = ... + """A list of input parameters for the StackSet template.""" + capabilities: list[str] | None = ... + """ + In some cases, you must explicitly acknowledge that your stack template + contains certain capabilities in order for CloudFormation to update the + StackSet and its associated stack instances. + + - `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM` + + Some stack templates might include resources that can affect + permissions in your Amazon Web Services account, for example, by + creating new IAM users. For those stacks sets, you must explicitly + acknowledge this by specifying one of these capabilities. + + The following IAM resources require you to specify either the + `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability. + + - If you have IAM resources, you can specify either capability. + + - If you have IAM resources with custom names, you *must* specify + `CAPABILITY_NAMED_IAM`. + + - If you don't specify either of these capabilities, CloudFormation + returns an `InsufficientCapabilities` error. + + If your stack template contains these resources, we recommend that you + review all permissions associated with them and edit their permissions + if necessary. + + - [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html) + + - [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html) + + - [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html) + + - [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html) + + - [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html) + + - [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) + + - [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html) + + For more information, see [Acknowledging IAM resources in + CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + + - `CAPABILITY_AUTO_EXPAND` + + Some templates reference macros. If your StackSet template references + one or more macros, you must update the StackSet directly from the + processed template, without first reviewing the resulting changes in a + change set. To update the StackSet directly, you must acknowledge this + capability. For more information, see [Perform custom processing on + CloudFormation templates with template + macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + + Warning: + StackSets with service-managed permissions do not currently support + the use of macros in templates. (This includes the + [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html) + and + [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) + transforms, which are macros hosted by CloudFormation.) Even if you + specify this capability for a StackSet with service-managed + permissions, if you reference a macro in your template the StackSet + operation will fail. + """ + tags: list[Tag] | None = ... + """ + The key-value pairs to associate with this StackSet and the stacks + created from it. CloudFormation also propagates these tags to supported + resources that are created in the stacks. You can specify a maximum + number of 50 tags. + + If you specify tags for this parameter, those tags replace any list of + tags that are currently associated with this StackSet. This means: + + - If you don't specify this parameter, CloudFormation doesn't modify + the stack's tags. + + - If you specify *any* tags using this parameter, you must specify *all* + the tags that you want associated with this StackSet, even tags + you've specified before (for example, when creating the StackSet or + during a previous update of the StackSet.). Any tags that you don't + include in the updated list of tags are removed from the StackSet, and + therefore from the stacks and resources as well. + + - If you specify an empty value, CloudFormation removes all currently + associated tags. + + If you specify new tags as part of an `UpdateStackSet` action, + CloudFormation checks to see if you have the required IAM permission to + tag resources. If you omit tags that are currently associated with the + StackSet from the list of tags you specify, CloudFormation assumes that + you want to remove those tags from the StackSet, and checks to see if + you have permission to untag resources. If you don't have the necessary + permission(s), the entire `UpdateStackSet` action fails with an + `access denied` error, and the StackSet is not updated. + """ + operation_preferences: StackSetOperationPreferences | None = ... + """Preferences for how CloudFormation performs this StackSet operation.""" + administration_role_arn: str | None = ... + """ + [Self-managed permissions] The Amazon Resource Name (ARN) of the IAM + role to use to update this StackSet. + + Specify an IAM role only if you are using customized administrator roles + to control which users or groups can manage specific StackSets within + the same administrator account. For more information, see [Grant + self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) + in the *CloudFormation User Guide*. + + If you specified a customized administrator role when you created the + StackSet, you must specify a customized administrator role, even if it + is the same customized administrator role used with this StackSet + previously. + """ + execution_role_name: str | None = ... + """ + [Self-managed permissions] The name of the IAM execution role to use + to update the stack set. If you do not specify an execution role, + CloudFormation uses the `AWSCloudFormationStackSetExecutionRole` role + for the StackSet operation. + + Specify an IAM role only if you are using customized execution roles to + control which stack resources users and groups can include in their + StackSets. + + If you specify a customized execution role, CloudFormation uses that + role to update the stack. If you do not specify a customized execution + role, CloudFormation performs the update using the role previously + associated with the StackSet, so long as you have permissions to perform + operations on the StackSet. + """ + deployment_targets: DeploymentTargets | None = ... + """ + [Service-managed permissions] The Organizations accounts in which to + update associated stack instances. + + To update all the stack instances associated with this StackSet, do not + specify `DeploymentTargets` or `Regions`. + + If the StackSet update includes changes to the template (that is, if + `TemplateBody` or `TemplateURL` is specified), or the `Parameters`, + CloudFormation marks all stack instances with a status of `OUTDATED` + prior to updating the stack instances in the specified accounts and + Amazon Web Services Regions. If the StackSet update doesn't include + changes to the template or parameters, CloudFormation updates the stack + instances in the specified accounts and Regions, while leaving all other + stack instances with their existing stack instance status. + """ + permission_model: str | None = ... + """ + Describes how the IAM roles required for StackSet operations are + created. You cannot modify `PermissionModel` if there are stack + instances associated with your stack set. + + - With `self-managed` permissions, you must create the administrator and + execution roles required to deploy to target accounts. For more + information, see [Grant self-managed + permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html). + + - With `service-managed` permissions, StackSets automatically creates + the IAM roles required to deploy to accounts managed by Organizations. + For more information, see [Activate trusted access for StackSets with + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html). + """ + auto_deployment: AutoDeployment | None = ... + """ + [Service-managed permissions] Describes whether StackSets + automatically deploys to Organizations accounts that are added to a + target organization or organizational unit (OU). For more information, + see [Enable or disable automatic deployments for StackSets in + Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-manage-auto-deployment.html) + in the *CloudFormation User Guide*. + + If you specify `AutoDeployment`, don't specify `DeploymentTargets` or + `Regions`. + """ + operation_id: str | None = ... + """ + The unique ID for this StackSet operation. + + The operation ID also functions as an idempotency token, to ensure that + CloudFormation performs the StackSet operation only once, even if you + retry the request multiple times. You might retry StackSet operation + requests to ensure that CloudFormation successfully received them. + + If you don't specify an operation ID, CloudFormation generates one + automatically. + + Repeating this StackSet operation with a new operation ID retries all + stack instances whose status is `OUTDATED`. + """ + accounts: list[str] | None = ... + """ + [Self-managed permissions] The accounts in which to update associated + stack instances. If you specify accounts, you must also specify the + Amazon Web Services Regions in which to update StackSet instances. + + To update *all* the stack instances associated with this StackSet, + don't specify the `Accounts` or `Regions` properties. + + If the StackSet update includes changes to the template (that is, if the + `TemplateBody` or `TemplateURL` properties are specified), or the + `Parameters` property, CloudFormation marks all stack instances with a + status of `OUTDATED` prior to updating the stack instances in the + specified accounts and Amazon Web Services Regions. If the StackSet + update does not include changes to the template or parameters, + CloudFormation updates the stack instances in the specified accounts and + Amazon Web Services Regions, while leaving all other stack instances + with their existing stack instance status. + """ + regions: list[str] | None = ... + """ + The Amazon Web Services Regions in which to update associated stack + instances. If you specify Regions, you must also specify accounts in + which to update StackSet instances. + + To update *all* the stack instances associated with this StackSet, do + not specify the `Accounts` or `Regions` properties. + + If the StackSet update includes changes to the template (that is, if the + `TemplateBody` or `TemplateURL` properties are specified), or the + `Parameters` property, CloudFormation marks all stack instances with a + status of `OUTDATED` prior to updating the stack instances in the + specified accounts and Regions. If the StackSet update does not include + changes to the template or parameters, CloudFormation updates the stack + instances in the specified accounts and Regions, while leaving all other + stack instances with their existing stack instance status. + """ + call_as: str | None = ... + """ + [Service-managed permissions] Specifies whether you are acting as an + account administrator in the organization's management account or as a + delegated administrator in a member account. + + By default, `SELF` is specified. Use `SELF` for StackSets with + self-managed permissions. + + - If you are signed in to the management account, specify `SELF`. + + - If you are signed in to a delegated administrator account, specify + `DELEGATED_ADMIN`. + + Your Amazon Web Services account must be registered as a delegated + administrator in the management account. For more information, see + [Register a delegated + administrator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) + in the *CloudFormation User Guide*. + """ + managed_execution: ManagedExecution | None = ... + """ + Describes whether CloudFormation performs non-conflicting operations + concurrently and queues conflicting operations. + """ + +@dataclass(kw_only=True) +class UpdateStackSetOutput(_SerdeShape): + """Dataclass for UpdateStackSetOutput structure.""" + + operation_id: str | None = ... + """The unique ID for this StackSet operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateTerminationProtectionInput(_SerdeShape): + """Dataclass for UpdateTerminationProtectionInput structure.""" + + enable_termination_protection: bool | None = ... + """Whether to enable termination protection on the specified stack.""" + stack_name: str | None = ... + """ + The name or unique ID of the stack for which you want to set termination + protection. + """ + +@dataclass(kw_only=True) +class UpdateTerminationProtectionOutput(_SerdeShape): + """Dataclass for UpdateTerminationProtectionOutput structure.""" + + stack_id: str | None = ... + """The unique ID of the stack.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ValidateTemplateInput(_SerdeShape): + """The input for ValidateTemplate action.""" + + template_body: str | None = ... + """ + Structure that contains the template body with a minimum length of 1 + byte and a maximum length of 51,200 bytes. + + Conditional: You must pass `TemplateURL` or `TemplateBody`. If both are + passed, only `TemplateBody` is used. + """ + template_url: str | None = ... + """ + The URL of a file that contains the template body. The URL must point to + a template (max size: 1 MB) that is located in an Amazon S3 bucket or a + Systems Manager document. The location for an Amazon S3 bucket must + start with `https://`. + + Conditional: You must pass `TemplateURL` or `TemplateBody`. If both are + passed, only `TemplateBody` is used. + """ + +@dataclass(kw_only=True) +class ValidateTemplateOutput(_SerdeShape): + """The output for ValidateTemplate action.""" + + parameters: list[TemplateParameter] | None = ... + """A list of `TemplateParameter` structures.""" + description: str | None = ... + """The description found within the template.""" + capabilities: list[str] | None = ... + """ + The capabilities found within the template. If your template contains + IAM resources, you must specify the CAPABILITY_IAM or + CAPABILITY_NAMED_IAM value for this parameter when you use the + CreateStack or UpdateStack actions with your template; otherwise, those + actions return an InsufficientCapabilities error. + + For more information, see [Acknowledging IAM resources in CloudFormation + templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities). + """ + capabilities_reason: str | None = ... + """ + The list of resources that generated the values in the `Capabilities` + response element. + """ + declared_transforms: list[str] | None = ... + """A list of the transforms that are declared in the template.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ValidationStatus(UnknownEnumMixin, StrEnum): + FAILED = "FAILED" + SKIPPED = "SKIPPED" + +class VersionBump(UnknownEnumMixin, StrEnum): + MAJOR = "MAJOR" + MINOR = "MINOR" + +class Visibility(UnknownEnumMixin, StrEnum): + PUBLIC = "PUBLIC" + PRIVATE = "PRIVATE" + +@dataclass(kw_only=True) +class WarningDetail(_SerdeShape): + """ + The warnings generated for a specific resource for this generated + template. + """ + + type: str | None = ... + """ + The type of this warning. For more information, see [Resolve write-only + properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-write-only-properties.html) + in the *CloudFormation User Guide*. + + - `MUTUALLY_EXCLUSIVE_PROPERTIES` - The resource requires + mutually-exclusive write-only properties. The IaC generator selects + one set of mutually exclusive properties and converts the included + properties into parameters. The parameter names have a suffix `OneOf` + and the parameter descriptions indicate that the corresponding + property can be replaced with other exclusive properties. + + - `UNSUPPORTED_PROPERTIES` - Unsupported properties are present in the + resource. One example of unsupported properties would be a required + write-only property that is an array, because a parameter cannot be an + array. Another example is an optional write-only property. + + - `MUTUALLY_EXCLUSIVE_TYPES` - One or more required write-only + properties are found in the resource, and the type of that property + can be any of several types. + + Note: + Currently the resource and property reference documentation does not + indicate if a property uses a type of `oneOf` or `anyOf`. You need to + look at the resource provider schema. + """ + properties: list[WarningProperty] | None = ... + """The properties of the resource that are impacted by this warning.""" + +@dataclass(kw_only=True) +class WarningProperty(_SerdeShape): + """A specific property that is impacted by a warning.""" + + property_path: str | None = ... + """ + The path of the property. For example, if this is for the `S3Bucket` + member of the `Code` property, the property path would be + `Code/S3Bucket`. + """ + required: bool | None = ... + """If `true`, the specified property is required.""" + description: str | None = ... + """The description of the property from the resource provider schema.""" + +@dataclass(kw_only=True) +class Warnings(_SerdeShape): + """Contains any warnings returned by the `GetTemplateSummary` API action.""" + + unrecognized_resource_types: list[str] | None = ... + """ + A list of all of the unrecognized resource types. This is only returned + if the `TemplateSummaryConfig` parameter has the + `TreatUnrecognizedResourceTypesAsWarning` configuration set to `True`. + """ + +class WarningType(UnknownEnumMixin, StrEnum): + MUTUALLY_EXCLUSIVE_PROPERTIES = "MUTUALLY_EXCLUSIVE_PROPERTIES" + UNSUPPORTED_PROPERTIES = "UNSUPPORTED_PROPERTIES" + MUTUALLY_EXCLUSIVE_TYPES = "MUTUALLY_EXCLUSIVE_TYPES" + EXCLUDED_PROPERTIES = "EXCLUDED_PROPERTIES" + EXCLUDED_RESOURCES = "EXCLUDED_RESOURCES" + +ACTIVATE_ORGANIZATIONS_ACCESS: APIOperation[ + ActivateOrganizationsAccessInput, ActivateOrganizationsAccessOutput +] +ACTIVATE_TYPE: APIOperation[ActivateTypeInput, ActivateTypeOutput] +BATCH_DESCRIBE_TYPE_CONFIGURATIONS: APIOperation[ + BatchDescribeTypeConfigurationsInput, BatchDescribeTypeConfigurationsOutput +] +CANCEL_UPDATE_STACK: APIOperation[CancelUpdateStackInput, CancelUpdateStackOutput] +CONTINUE_UPDATE_ROLLBACK: APIOperation[ + ContinueUpdateRollbackInput, ContinueUpdateRollbackOutput +] +CREATE_CHANGE_SET: APIOperation[CreateChangeSetInput, CreateChangeSetOutput] +CREATE_GENERATED_TEMPLATE: APIOperation[ + CreateGeneratedTemplateInput, CreateGeneratedTemplateOutput +] +CREATE_STACK: APIOperation[CreateStackInput, CreateStackOutput] +CREATE_STACK_INSTANCES: APIOperation[ + CreateStackInstancesInput, CreateStackInstancesOutput +] +CREATE_STACK_REFACTOR: APIOperation[CreateStackRefactorInput, CreateStackRefactorOutput] +CREATE_STACK_SET: APIOperation[CreateStackSetInput, CreateStackSetOutput] +DEACTIVATE_ORGANIZATIONS_ACCESS: APIOperation[ + DeactivateOrganizationsAccessInput, DeactivateOrganizationsAccessOutput +] +DEACTIVATE_TYPE: APIOperation[DeactivateTypeInput, DeactivateTypeOutput] +DELETE_CHANGE_SET: APIOperation[DeleteChangeSetInput, DeleteChangeSetOutput] +DELETE_GENERATED_TEMPLATE: APIOperation[ + DeleteGeneratedTemplateInput, DeleteGeneratedTemplateOutput +] +DELETE_STACK: APIOperation[DeleteStackInput, DeleteStackOutput] +DELETE_STACK_INSTANCES: APIOperation[ + DeleteStackInstancesInput, DeleteStackInstancesOutput +] +DELETE_STACK_SET: APIOperation[DeleteStackSetInput, DeleteStackSetOutput] +DEREGISTER_TYPE: APIOperation[DeregisterTypeInput, DeregisterTypeOutput] +DESCRIBE_ACCOUNT_LIMITS: APIOperation[ + DescribeAccountLimitsInput, DescribeAccountLimitsOutput +] +DESCRIBE_CHANGE_SET: APIOperation[DescribeChangeSetInput, DescribeChangeSetOutput] +DESCRIBE_CHANGE_SET_HOOKS: APIOperation[ + DescribeChangeSetHooksInput, DescribeChangeSetHooksOutput +] +DESCRIBE_EVENTS: APIOperation[DescribeEventsInput, DescribeEventsOutput] +DESCRIBE_GENERATED_TEMPLATE: APIOperation[ + DescribeGeneratedTemplateInput, DescribeGeneratedTemplateOutput +] +DESCRIBE_ORGANIZATIONS_ACCESS: APIOperation[ + DescribeOrganizationsAccessInput, DescribeOrganizationsAccessOutput +] +DESCRIBE_PUBLISHER: APIOperation[DescribePublisherInput, DescribePublisherOutput] +DESCRIBE_RESOURCE_SCAN: APIOperation[ + DescribeResourceScanInput, DescribeResourceScanOutput +] +DESCRIBE_STACK_DRIFT_DETECTION_STATUS: APIOperation[ + DescribeStackDriftDetectionStatusInput, DescribeStackDriftDetectionStatusOutput +] +DESCRIBE_STACK_EVENTS: APIOperation[DescribeStackEventsInput, DescribeStackEventsOutput] +DESCRIBE_STACK_INSTANCE: APIOperation[ + DescribeStackInstanceInput, DescribeStackInstanceOutput +] +DESCRIBE_STACK_REFACTOR: APIOperation[ + DescribeStackRefactorInput, DescribeStackRefactorOutput +] +DESCRIBE_STACK_RESOURCE: APIOperation[ + DescribeStackResourceInput, DescribeStackResourceOutput +] +DESCRIBE_STACK_RESOURCE_DRIFTS: APIOperation[ + DescribeStackResourceDriftsInput, DescribeStackResourceDriftsOutput +] +DESCRIBE_STACK_RESOURCES: APIOperation[ + DescribeStackResourcesInput, DescribeStackResourcesOutput +] +DESCRIBE_STACKS: APIOperation[DescribeStacksInput, DescribeStacksOutput] +DESCRIBE_STACK_SET: APIOperation[DescribeStackSetInput, DescribeStackSetOutput] +DESCRIBE_STACK_SET_OPERATION: APIOperation[ + DescribeStackSetOperationInput, DescribeStackSetOperationOutput +] +DESCRIBE_TYPE: APIOperation[DescribeTypeInput, DescribeTypeOutput] +DESCRIBE_TYPE_REGISTRATION: APIOperation[ + DescribeTypeRegistrationInput, DescribeTypeRegistrationOutput +] +DETECT_STACK_DRIFT: APIOperation[DetectStackDriftInput, DetectStackDriftOutput] +DETECT_STACK_RESOURCE_DRIFT: APIOperation[ + DetectStackResourceDriftInput, DetectStackResourceDriftOutput +] +DETECT_STACK_SET_DRIFT: APIOperation[ + DetectStackSetDriftInput, DetectStackSetDriftOutput +] +ESTIMATE_TEMPLATE_COST: APIOperation[ + EstimateTemplateCostInput, EstimateTemplateCostOutput +] +EXECUTE_CHANGE_SET: APIOperation[ExecuteChangeSetInput, ExecuteChangeSetOutput] +EXECUTE_STACK_REFACTOR: APIOperation[ + ExecuteStackRefactorInput, ExecuteStackRefactorOutput +] +GET_GENERATED_TEMPLATE: APIOperation[ + GetGeneratedTemplateInput, GetGeneratedTemplateOutput +] +GET_HOOK_RESULT: APIOperation[GetHookResultInput, GetHookResultOutput] +GET_STACK_POLICY: APIOperation[GetStackPolicyInput, GetStackPolicyOutput] +GET_TEMPLATE: APIOperation[GetTemplateInput, GetTemplateOutput] +GET_TEMPLATE_SUMMARY: APIOperation[GetTemplateSummaryInput, GetTemplateSummaryOutput] +IMPORT_STACKS_TO_STACK_SET: APIOperation[ + ImportStacksToStackSetInput, ImportStacksToStackSetOutput +] +LIST_CHANGE_SETS: APIOperation[ListChangeSetsInput, ListChangeSetsOutput] +LIST_EXPORTS: APIOperation[ListExportsInput, ListExportsOutput] +LIST_GENERATED_TEMPLATES: APIOperation[ + ListGeneratedTemplatesInput, ListGeneratedTemplatesOutput +] +LIST_HOOK_RESULTS: APIOperation[ListHookResultsInput, ListHookResultsOutput] +LIST_IMPORTS: APIOperation[ListImportsInput, ListImportsOutput] +LIST_RESOURCE_SCAN_RELATED_RESOURCES: APIOperation[ + ListResourceScanRelatedResourcesInput, ListResourceScanRelatedResourcesOutput +] +LIST_RESOURCE_SCAN_RESOURCES: APIOperation[ + ListResourceScanResourcesInput, ListResourceScanResourcesOutput +] +LIST_RESOURCE_SCANS: APIOperation[ListResourceScansInput, ListResourceScansOutput] +LIST_STACK_INSTANCE_RESOURCE_DRIFTS: APIOperation[ + ListStackInstanceResourceDriftsInput, ListStackInstanceResourceDriftsOutput +] +LIST_STACK_INSTANCES: APIOperation[ListStackInstancesInput, ListStackInstancesOutput] +LIST_STACK_REFACTOR_ACTIONS: APIOperation[ + ListStackRefactorActionsInput, ListStackRefactorActionsOutput +] +LIST_STACK_REFACTORS: APIOperation[ListStackRefactorsInput, ListStackRefactorsOutput] +LIST_STACK_RESOURCES: APIOperation[ListStackResourcesInput, ListStackResourcesOutput] +LIST_STACKS: APIOperation[ListStacksInput, ListStacksOutput] +LIST_STACK_SET_AUTO_DEPLOYMENT_TARGETS: APIOperation[ + ListStackSetAutoDeploymentTargetsInput, ListStackSetAutoDeploymentTargetsOutput +] +LIST_STACK_SET_OPERATION_RESULTS: APIOperation[ + ListStackSetOperationResultsInput, ListStackSetOperationResultsOutput +] +LIST_STACK_SET_OPERATIONS: APIOperation[ + ListStackSetOperationsInput, ListStackSetOperationsOutput +] +LIST_STACK_SETS: APIOperation[ListStackSetsInput, ListStackSetsOutput] +LIST_TYPE_REGISTRATIONS: APIOperation[ + ListTypeRegistrationsInput, ListTypeRegistrationsOutput +] +LIST_TYPES: APIOperation[ListTypesInput, ListTypesOutput] +LIST_TYPE_VERSIONS: APIOperation[ListTypeVersionsInput, ListTypeVersionsOutput] +PUBLISH_TYPE: APIOperation[PublishTypeInput, PublishTypeOutput] +RECORD_HANDLER_PROGRESS: APIOperation[ + RecordHandlerProgressInput, RecordHandlerProgressOutput +] +REGISTER_PUBLISHER: APIOperation[RegisterPublisherInput, RegisterPublisherOutput] +REGISTER_TYPE: APIOperation[RegisterTypeInput, RegisterTypeOutput] +ROLLBACK_STACK: APIOperation[RollbackStackInput, RollbackStackOutput] +SET_STACK_POLICY: APIOperation[SetStackPolicyInput, SetStackPolicyOutput] +SET_TYPE_CONFIGURATION: APIOperation[ + SetTypeConfigurationInput, SetTypeConfigurationOutput +] +SET_TYPE_DEFAULT_VERSION: APIOperation[ + SetTypeDefaultVersionInput, SetTypeDefaultVersionOutput +] +SIGNAL_RESOURCE: APIOperation[SignalResourceInput, SignalResourceOutput] +START_RESOURCE_SCAN: APIOperation[StartResourceScanInput, StartResourceScanOutput] +STOP_STACK_SET_OPERATION: APIOperation[ + StopStackSetOperationInput, StopStackSetOperationOutput +] +TEST_TYPE: APIOperation[TestTypeInput, TestTypeOutput] +UPDATE_GENERATED_TEMPLATE: APIOperation[ + UpdateGeneratedTemplateInput, UpdateGeneratedTemplateOutput +] +UPDATE_STACK: APIOperation[UpdateStackInput, UpdateStackOutput] +UPDATE_STACK_INSTANCES: APIOperation[ + UpdateStackInstancesInput, UpdateStackInstancesOutput +] +UPDATE_STACK_SET: APIOperation[UpdateStackSetInput, UpdateStackSetOutput] +UPDATE_TERMINATION_PROTECTION: APIOperation[ + UpdateTerminationProtectionInput, UpdateTerminationProtectionOutput +] +VALIDATE_TEMPLATE: APIOperation[ValidateTemplateInput, ValidateTemplateOutput] diff --git a/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/user_agent.py b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/user_agent.py new file mode 100644 index 00000000..55b65c78 --- /dev/null +++ b/clients/aws-sdk-cloudformation/src/aws_sdk_cloudformation/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import CloudFormationConfig + + +def aws_user_agent_plugin(config: CloudFormationConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFormation", + ) + ) diff --git a/clients/aws-sdk-cloudformation/tests/__init__.py b/clients/aws-sdk-cloudformation/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudformation/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudformation/tests/_typecheck.py b/clients/aws-sdk-cloudformation/tests/_typecheck.py new file mode 100644 index 00000000..5c617d96 --- /dev/null +++ b/clients/aws-sdk-cloudformation/tests/_typecheck.py @@ -0,0 +1,549 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_cloudformation.models import ( + AccountGateResult, + AccountLimit, + ActivateOrganizationsAccessInput, + ActivateOrganizationsAccessOutput, + ActivateTypeInput, + ActivateTypeOutput, + Annotation, + AutoDeployment, + BatchDescribeTypeConfigurationsError, + BatchDescribeTypeConfigurationsInput, + BatchDescribeTypeConfigurationsOutput, + CancelUpdateStackInput, + CancelUpdateStackOutput, + Change, + ChangeSetHook, + ChangeSetHookResourceTargetDetails, + ChangeSetHookTargetDetails, + ChangeSetSummary, + ContinueUpdateRollbackInput, + ContinueUpdateRollbackOutput, + CreateChangeSetInput, + CreateChangeSetOutput, + CreateGeneratedTemplateInput, + CreateGeneratedTemplateOutput, + CreateStackInput, + CreateStackInstancesInput, + CreateStackInstancesOutput, + CreateStackOutput, + CreateStackRefactorInput, + CreateStackRefactorOutput, + CreateStackSetInput, + CreateStackSetOutput, + DeactivateOrganizationsAccessInput, + DeactivateOrganizationsAccessOutput, + DeactivateTypeInput, + DeactivateTypeOutput, + DeleteChangeSetInput, + DeleteChangeSetOutput, + DeleteGeneratedTemplateInput, + DeleteGeneratedTemplateOutput, + DeleteStackInput, + DeleteStackInstancesInput, + DeleteStackInstancesOutput, + DeleteStackOutput, + DeleteStackSetInput, + DeleteStackSetOutput, + DeploymentConfig, + DeploymentTargets, + DeregisterTypeInput, + DeregisterTypeOutput, + DescribeAccountLimitsInput, + DescribeAccountLimitsOutput, + DescribeChangeSetHooksInput, + DescribeChangeSetHooksOutput, + DescribeChangeSetInput, + DescribeChangeSetOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeGeneratedTemplateInput, + DescribeGeneratedTemplateOutput, + DescribeOrganizationsAccessInput, + DescribeOrganizationsAccessOutput, + DescribePublisherInput, + DescribePublisherOutput, + DescribeResourceScanInput, + DescribeResourceScanOutput, + DescribeStackDriftDetectionStatusInput, + DescribeStackDriftDetectionStatusOutput, + DescribeStackEventsInput, + DescribeStackEventsOutput, + DescribeStackInstanceInput, + DescribeStackInstanceOutput, + DescribeStackRefactorInput, + DescribeStackRefactorOutput, + DescribeStackResourceDriftsInput, + DescribeStackResourceDriftsOutput, + DescribeStackResourceInput, + DescribeStackResourceOutput, + DescribeStackResourcesInput, + DescribeStackResourcesOutput, + DescribeStackSetInput, + DescribeStackSetOperationInput, + DescribeStackSetOperationOutput, + DescribeStackSetOutput, + DescribeStacksInput, + DescribeStacksOutput, + DescribeTypeInput, + DescribeTypeOutput, + DescribeTypeRegistrationInput, + DescribeTypeRegistrationOutput, + DetectStackDriftInput, + DetectStackDriftOutput, + DetectStackResourceDriftInput, + DetectStackResourceDriftOutput, + DetectStackSetDriftInput, + DetectStackSetDriftOutput, + EstimateTemplateCostInput, + EstimateTemplateCostOutput, + EventFilter, + ExecuteChangeSetInput, + ExecuteChangeSetOutput, + ExecuteStackRefactorInput, + ExecuteStackRefactorOutput, + Export, + GetGeneratedTemplateInput, + GetGeneratedTemplateOutput, + GetHookResultInput, + GetHookResultOutput, + GetStackPolicyInput, + GetStackPolicyOutput, + GetTemplateInput, + GetTemplateOutput, + GetTemplateSummaryInput, + GetTemplateSummaryOutput, + HookResultSummary, + HookTarget, + ImportStacksToStackSetInput, + ImportStacksToStackSetOutput, + ListChangeSetsInput, + ListChangeSetsOutput, + ListExportsInput, + ListExportsOutput, + ListGeneratedTemplatesInput, + ListGeneratedTemplatesOutput, + ListHookResultsInput, + ListHookResultsOutput, + ListImportsInput, + ListImportsOutput, + ListResourceScanRelatedResourcesInput, + ListResourceScanRelatedResourcesOutput, + ListResourceScanResourcesInput, + ListResourceScanResourcesOutput, + ListResourceScansInput, + ListResourceScansOutput, + ListStackInstanceResourceDriftsInput, + ListStackInstanceResourceDriftsOutput, + ListStackInstancesInput, + ListStackInstancesOutput, + ListStackRefactorActionsInput, + ListStackRefactorActionsOutput, + ListStackRefactorsInput, + ListStackRefactorsOutput, + ListStackResourcesInput, + ListStackResourcesOutput, + ListStackSetAutoDeploymentTargetsInput, + ListStackSetAutoDeploymentTargetsOutput, + ListStackSetOperationResultsInput, + ListStackSetOperationResultsOutput, + ListStackSetOperationsInput, + ListStackSetOperationsOutput, + ListStackSetsInput, + ListStackSetsOutput, + ListStacksInput, + ListStacksOutput, + ListTypeRegistrationsInput, + ListTypeRegistrationsOutput, + ListTypeVersionsInput, + ListTypeVersionsOutput, + ListTypesInput, + ListTypesOutput, + LiveResourceDrift, + LoggingConfig, + ManagedExecution, + ModuleInfo, + OperationEntry, + OperationEvent, + OperationResultFilter, + Output, + Parameter, + ParameterConstraints, + ParameterDeclaration, + PhysicalResourceIdContextKeyValuePair, + PropertyDifference, + PublishTypeInput, + PublishTypeOutput, + RecordHandlerProgressInput, + RecordHandlerProgressOutput, + RegisterPublisherInput, + RegisterPublisherOutput, + RegisterTypeInput, + RegisterTypeOutput, + RequiredActivatedType, + ResourceChange, + ResourceChangeDetail, + ResourceDefinition, + ResourceDetail, + ResourceDriftIgnoredAttribute, + ResourceIdentifierSummary, + ResourceLocation, + ResourceMapping, + ResourceScanSummary, + ResourceTargetDefinition, + ResourceToImport, + RollbackConfiguration, + RollbackStackInput, + RollbackStackOutput, + RollbackTrigger, + ScanFilter, + ScannedResource, + ScannedResourceIdentifier, + SetStackPolicyInput, + SetStackPolicyOutput, + SetTypeConfigurationInput, + SetTypeConfigurationOutput, + SetTypeDefaultVersionInput, + SetTypeDefaultVersionOutput, + SignalResourceInput, + SignalResourceOutput, + Stack, + StackDefinition, + StackDriftInformation, + StackDriftInformationSummary, + StackEvent, + StackInstance, + StackInstanceComprehensiveStatus, + StackInstanceFilter, + StackInstanceResourceDriftsSummary, + StackInstanceSummary, + StackRefactorAction, + StackRefactorSummary, + StackResource, + StackResourceDetail, + StackResourceDrift, + StackResourceDriftInformation, + StackResourceDriftInformationSummary, + StackResourceSummary, + StackSet, + StackSetAutoDeploymentTargetSummary, + StackSetDriftDetectionDetails, + StackSetOperation, + StackSetOperationPreferences, + StackSetOperationResultSummary, + StackSetOperationStatusDetails, + StackSetOperationSummary, + StackSetSummary, + StackSummary, + StartResourceScanInput, + StartResourceScanOutput, + StopStackSetOperationInput, + StopStackSetOperationOutput, + Tag, + TemplateConfiguration, + TemplateParameter, + TemplateProgress, + TemplateSummary, + TemplateSummaryConfig, + TestTypeInput, + TestTypeOutput, + TypeConfigurationDetails, + TypeConfigurationIdentifier, + TypeFilters, + TypeSummary, + TypeVersionSummary, + UpdateGeneratedTemplateInput, + UpdateGeneratedTemplateOutput, + UpdateStackInput, + UpdateStackInstancesInput, + UpdateStackInstancesOutput, + UpdateStackOutput, + UpdateStackSetInput, + UpdateStackSetOutput, + UpdateTerminationProtectionInput, + UpdateTerminationProtectionOutput, + ValidateTemplateInput, + ValidateTemplateOutput, + WarningDetail, + WarningProperty, + Warnings, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AccountGateResult() +AccountLimit() +ActivateOrganizationsAccessInput() +ActivateOrganizationsAccessOutput() +ActivateTypeInput() +ActivateTypeOutput() +Annotation() +AutoDeployment() +BatchDescribeTypeConfigurationsError() +BatchDescribeTypeConfigurationsInput() +BatchDescribeTypeConfigurationsOutput() +CancelUpdateStackInput() +CancelUpdateStackOutput() +Change() +ChangeSetHook() +ChangeSetHookResourceTargetDetails() +ChangeSetHookTargetDetails() +ChangeSetSummary() +ContinueUpdateRollbackInput() +ContinueUpdateRollbackOutput() +CreateChangeSetInput() +CreateChangeSetOutput() +CreateGeneratedTemplateInput() +CreateGeneratedTemplateOutput() +CreateStackInput() +CreateStackInstancesInput() +CreateStackInstancesOutput() +CreateStackOutput() +CreateStackRefactorInput() +CreateStackRefactorOutput() +CreateStackSetInput() +CreateStackSetOutput() +DeactivateOrganizationsAccessInput() +DeactivateOrganizationsAccessOutput() +DeactivateTypeInput() +DeactivateTypeOutput() +DeleteChangeSetInput() +DeleteChangeSetOutput() +DeleteGeneratedTemplateInput() +DeleteGeneratedTemplateOutput() +DeleteStackInput() +DeleteStackInstancesInput() +DeleteStackInstancesOutput() +DeleteStackOutput() +DeleteStackSetInput() +DeleteStackSetOutput() +DeploymentConfig() +DeploymentTargets() +DeregisterTypeInput() +DeregisterTypeOutput() +DescribeAccountLimitsInput() +DescribeAccountLimitsOutput() +DescribeChangeSetHooksInput() +DescribeChangeSetHooksOutput() +DescribeChangeSetInput() +DescribeChangeSetOutput() +DescribeEventsInput() +DescribeEventsOutput() +DescribeGeneratedTemplateInput() +DescribeGeneratedTemplateOutput() +DescribeOrganizationsAccessInput() +DescribeOrganizationsAccessOutput() +DescribePublisherInput() +DescribePublisherOutput() +DescribeResourceScanInput() +DescribeResourceScanOutput() +DescribeStackDriftDetectionStatusInput() +DescribeStackDriftDetectionStatusOutput() +DescribeStackEventsInput() +DescribeStackEventsOutput() +DescribeStackInstanceInput() +DescribeStackInstanceOutput() +DescribeStackRefactorInput() +DescribeStackRefactorOutput() +DescribeStackResourceDriftsInput() +DescribeStackResourceDriftsOutput() +DescribeStackResourceInput() +DescribeStackResourceOutput() +DescribeStackResourcesInput() +DescribeStackResourcesOutput() +DescribeStackSetInput() +DescribeStackSetOperationInput() +DescribeStackSetOperationOutput() +DescribeStackSetOutput() +DescribeStacksInput() +DescribeStacksOutput() +DescribeTypeInput() +DescribeTypeOutput() +DescribeTypeRegistrationInput() +DescribeTypeRegistrationOutput() +DetectStackDriftInput() +DetectStackDriftOutput() +DetectStackResourceDriftInput() +DetectStackResourceDriftOutput() +DetectStackSetDriftInput() +DetectStackSetDriftOutput() +EstimateTemplateCostInput() +EstimateTemplateCostOutput() +EventFilter() +ExecuteChangeSetInput() +ExecuteChangeSetOutput() +ExecuteStackRefactorInput() +ExecuteStackRefactorOutput() +Export() +GetGeneratedTemplateInput() +GetGeneratedTemplateOutput() +GetHookResultInput() +GetHookResultOutput() +GetStackPolicyInput() +GetStackPolicyOutput() +GetTemplateInput() +GetTemplateOutput() +GetTemplateSummaryInput() +GetTemplateSummaryOutput() +HookResultSummary() +HookTarget() +ImportStacksToStackSetInput() +ImportStacksToStackSetOutput() +ListChangeSetsInput() +ListChangeSetsOutput() +ListExportsInput() +ListExportsOutput() +ListGeneratedTemplatesInput() +ListGeneratedTemplatesOutput() +ListHookResultsInput() +ListHookResultsOutput() +ListImportsInput() +ListImportsOutput() +ListResourceScanRelatedResourcesInput() +ListResourceScanRelatedResourcesOutput() +ListResourceScanResourcesInput() +ListResourceScanResourcesOutput() +ListResourceScansInput() +ListResourceScansOutput() +ListStackInstanceResourceDriftsInput() +ListStackInstanceResourceDriftsOutput() +ListStackInstancesInput() +ListStackInstancesOutput() +ListStackRefactorActionsInput() +ListStackRefactorActionsOutput() +ListStackRefactorsInput() +ListStackRefactorsOutput() +ListStackResourcesInput() +ListStackResourcesOutput() +ListStackSetAutoDeploymentTargetsInput() +ListStackSetAutoDeploymentTargetsOutput() +ListStackSetOperationResultsInput() +ListStackSetOperationResultsOutput() +ListStackSetOperationsInput() +ListStackSetOperationsOutput() +ListStackSetsInput() +ListStackSetsOutput() +ListStacksInput() +ListStacksOutput() +ListTypeRegistrationsInput() +ListTypeRegistrationsOutput() +ListTypesInput() +ListTypesOutput() +ListTypeVersionsInput() +ListTypeVersionsOutput() +LiveResourceDrift() +LoggingConfig() +ManagedExecution() +ModuleInfo() +OperationEntry() +OperationEvent() +OperationResultFilter() +Output() +Parameter() +ParameterConstraints() +ParameterDeclaration() +PhysicalResourceIdContextKeyValuePair() +PropertyDifference() +PublishTypeInput() +PublishTypeOutput() +RecordHandlerProgressInput() +RecordHandlerProgressOutput() +RegisterPublisherInput() +RegisterPublisherOutput() +RegisterTypeInput() +RegisterTypeOutput() +RequiredActivatedType() +ResourceChange() +ResourceChangeDetail() +ResourceDefinition() +ResourceDetail() +ResourceDriftIgnoredAttribute() +ResourceIdentifierSummary() +ResourceLocation() +ResourceMapping() +ResourceScanSummary() +ResourceTargetDefinition() +ResourceToImport() +RollbackConfiguration() +RollbackStackInput() +RollbackStackOutput() +RollbackTrigger() +ScanFilter() +ScannedResource() +ScannedResourceIdentifier() +SetStackPolicyInput() +SetStackPolicyOutput() +SetTypeConfigurationInput() +SetTypeConfigurationOutput() +SetTypeDefaultVersionInput() +SetTypeDefaultVersionOutput() +SignalResourceInput() +SignalResourceOutput() +Stack() +StackDefinition() +StackDriftInformation() +StackDriftInformationSummary() +StackEvent() +StackInstance() +StackInstanceComprehensiveStatus() +StackInstanceFilter() +StackInstanceResourceDriftsSummary() +StackInstanceSummary() +StackRefactorAction() +StackRefactorSummary() +StackResource() +StackResourceDetail() +StackResourceDrift() +StackResourceDriftInformation() +StackResourceDriftInformationSummary() +StackResourceSummary() +StackSet() +StackSetAutoDeploymentTargetSummary() +StackSetDriftDetectionDetails() +StackSetOperation() +StackSetOperationPreferences() +StackSetOperationResultSummary() +StackSetOperationStatusDetails() +StackSetOperationSummary() +StackSetSummary() +StackSummary() +StartResourceScanInput() +StartResourceScanOutput() +StopStackSetOperationInput() +StopStackSetOperationOutput() +Tag() +TemplateConfiguration() +TemplateParameter() +TemplateProgress() +TemplateSummary() +TemplateSummaryConfig() +TestTypeInput() +TestTypeOutput() +TypeConfigurationDetails() +TypeConfigurationIdentifier() +TypeFilters() +TypeSummary() +TypeVersionSummary() +UpdateGeneratedTemplateInput() +UpdateGeneratedTemplateOutput() +UpdateStackInput() +UpdateStackInstancesInput() +UpdateStackInstancesOutput() +UpdateStackOutput() +UpdateStackSetInput() +UpdateStackSetOutput() +UpdateTerminationProtectionInput() +UpdateTerminationProtectionOutput() +ValidateTemplateInput() +ValidateTemplateOutput() +WarningDetail() +WarningProperty() +Warnings() diff --git a/clients/aws-sdk-cloudformation/tests/test_awsquery_protocol.py b/clients/aws-sdk-cloudformation/tests/test_awsquery_protocol.py new file mode 100644 index 00000000..cf658e36 --- /dev/null +++ b/clients/aws-sdk-cloudformation/tests/test_awsquery_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_cloudformation.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-cloudformation/tests/test_endpoints.py b/clients/aws-sdk-cloudformation/tests/test_endpoints.py new file mode 100644 index 00000000..f6883697 --- /dev/null +++ b/clients/aws-sdk-cloudformation/tests/test_endpoints.py @@ -0,0 +1,350 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_cloudformation.aio.client import AsyncCloudFormationClient +from aws_sdk_cloudformation.aio.config import AsyncCloudFormationConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.cloudformation#CloudFormation. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncCloudFormationConfig: + return await AsyncCloudFormationConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncCloudFormationClient: + return AsyncCloudFormationClient( + config=await _config(**config, interceptors=[capture]) + ) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://cloudformation-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://cloudformation.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudformation-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudformation-fips.cn-north-1.amazonaws.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudformation.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://cloudformation-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://cloudformation.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://cloudformation.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudformation-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-cloudformation/tests/test_model_conformance.py b/clients/aws-sdk-cloudformation/tests/test_model_conformance.py new file mode 100644 index 00000000..876f22bc --- /dev/null +++ b/clients/aws-sdk-cloudformation/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_cloudformation import models as _models +from aws_sdk_cloudformation._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/README.md b/clients/aws-sdk-cloudfront-keyvaluestore/README.md new file mode 100644 index 00000000..45c38342 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/README.md @@ -0,0 +1,10 @@ + + +## Amazon CloudFront KeyValueStore Client + +aws_sdk_cloudfront_keyvaluestore client + +### Documentation + +Amazon CloudFront KeyValueStore Service to View and Update Data in a KVS +Resource diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/pyproject.toml b/clients/aws-sdk-cloudfront-keyvaluestore/pyproject.toml new file mode 100644 index 00000000..eb717a6a --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_cloudfront_keyvaluestore" +version = "0.12.0" +description = "aws_sdk_cloudfront_keyvaluestore client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_cloudfront_keyvaluestore"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/__init__.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/__init__.py new file mode 100644 index 00000000..7cc77451 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/__init__.py @@ -0,0 +1,34 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import CloudFrontKeyValueStoreClient + from .config import CloudFrontKeyValueStoreConfig + from .aio.client import AsyncCloudFrontKeyValueStoreClient + from .aio.config import AsyncCloudFrontKeyValueStoreConfig + +__all__ = [ + "CloudFrontKeyValueStoreClient", + "CloudFrontKeyValueStoreConfig", + "AsyncCloudFrontKeyValueStoreClient", + "AsyncCloudFrontKeyValueStoreConfig", +] + +_EXPORTS = { + "CloudFrontKeyValueStoreClient": ".client", + "CloudFrontKeyValueStoreConfig": ".config", + "AsyncCloudFrontKeyValueStoreClient": ".aio.client", + "AsyncCloudFrontKeyValueStoreConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/__init__.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/endpoints.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/endpoints.py new file mode 100644 index 00000000..328a9b4a --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/endpoints.py @@ -0,0 +1,70 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.cloudfrontkeyvaluestore#CloudFrontKeyValueStore.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("KvsARN", "string", False, None, None, None), + ("Region", "string", False, None, "AWS::Region", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.parseArn", "aws.partition", "booleanEquals", "isSet", "parseURL", "stringEquals"), + conditions=( + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 0: booleanEquals(UseFIPS, true) + ((2, "isSet", (0, "KvsARN")), None), # 1: isSet(KvsARN) + ((2, "aws.parseArn", (0, "KvsARN")), "parsedArn"), # 2: parsedArn = aws.parseArn(KvsARN) + ((2, "stringEquals", (1, (0, "parsedArn"), "service"), "cloudfront"), None), # 3: stringEquals(parsedArn#service, "cloudfront") + ((2, "stringEquals", (1, (0, "parsedArn"), "region"), ""), None), # 4: stringEquals(parsedArn#region, "") + ((1, (0, "parsedArn"), "resourceId[0]"), "arnType"), # 5: arnType = parsedArn#resourceId[0] + ((2, "stringEquals", (0, "arnType"), ""), None), # 6: stringEquals(arnType, "") + ((2, "stringEquals", (0, "arnType"), "key-value-store"), None), # 7: stringEquals(arnType, "key-value-store") + ((2, "stringEquals", (1, (0, "parsedArn"), "partition"), "aws"), None), # 8: stringEquals(parsedArn#partition, "aws") + ((2, "isSet", (0, "Region")), None), # 9: isSet(Region) + ((2, "aws.partition", (0, "Region")), "partitionResult"), # 10: partitionResult = aws.partition(Region) + ((2, "stringEquals", (1, (0, "parsedArn"), "partition"), (1, (0, "partitionResult"), "name")), None), # 11: stringEquals(parsedArn#partition, partitionResult#name) + ((2, "isSet", (0, "Endpoint")), None), # 12: isSet(Endpoint) + ((2, "parseURL", (0, "Endpoint")), "url"), # 13: url = parseURL(Endpoint) + ), + results=( + None, # 0: no match + (6, "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("name", "signingName", "signingRegionSet"), "sigv4a", "cloudfront-keyvaluestore", (3, "*")))), ()), # 1 + (5, "Provided endpoint is not a valid URL"), # 2 + (6, "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingName", "signingRegionSet"), "sigv4a", "cloudfront-keyvaluestore", (3, "*")))), ()), # 3 + (5, "Client was configured for partition `{partitionResult#name}` but Kvs ARN has `{parsedArn#partition}`"), # 4 + (5, "CloudFront-KeyValueStore is not supported in partition `{parsedArn#partition}`"), # 5 + (5, "ARN resource type is invalid. Expected `key-value-store`, found: `{arnType}`"), # 6 + (5, "No resource type found in the KVS ARN. Resource type must be `key-value-store`."), # 7 + (5, "Provided ARN must be a global resource ARN. Found: `{parsedArn#region}`"), # 8 + (5, "Provided ARN is not a valid CloudFront Service ARN. Found: `{parsedArn#service}`"), # 9 + (5, "KVS ARN must be a valid ARN"), # 10 + (5, "KVS ARN must be provided to use this service"), # 11 + (5, "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore."), # 12 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 100_000_012, 3, + 1, 4, 100_000_011, + 2, 5, 100_000_010, + 3, 6, 100_000_009, + 4, 7, 100_000_008, + 5, 8, 100_000_007, + 6, 100_000_007, 9, + 7, 10, 100_000_006, + 8, 11, 100_000_005, + 9, 12, 14, + 10, 13, 14, + 11, 14, 100_000_004, + 12, 15, 100_000_003, + 13, 100_000_001, 100_000_002, + ), +) +# fmt: on diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/schemas.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/schemas.py new file mode 100644 index 00000000..0811dc6d --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/_private/schemas.py @@ -0,0 +1,472 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.cloudfrontkeyvaluestore" +_ADE = "AccessDeniedException" +_s = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_M = "Message" +_CE = "ConflictException" +_E = "Etag" +_K = "Key" +_KARN = "KvsARN" +_DKI = "DeleteKeyInput" +_sSI = "smithy.synthetic#originalShapeId" +_cDKR = "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequest" +_sm = "smithy.api#input" +_sP = "smithy.rules#contextParam" +_smi = "smithy.api#required" +_sL = "smithy.api#httpLabel" +_IM = "IfMatch" +_sH = "smithy.api#httpHeader" +_IM_ = "If-Match" +_DKO = "DeleteKeyOutput" +_cDKRo = "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyResponse" +_smit = "smithy.api#output" +_IC = "ItemCount" +_TSIB = "TotalSizeInBytes" +_ET = "ETag" +_ISE = "InternalServerException" +_se = "server" +_RNFE = "ResourceNotFoundException" +_SQEE = "ServiceQuotaExceededException" +_VE = "ValidationException" +_DK = "DeleteKey" +_smith = "smithy.api#http" +_DKVSI = "DescribeKeyValueStoreInput" +_cDKVSR = "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreRequest" +_DKVSO = "DescribeKeyValueStoreOutput" +_cDKVSRo = "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreResponse" +_C = "Created" +_LM = "LastModified" +_S = "Status" +_FR = "FailureReason" +_DKVS = "DescribeKeyValueStore" +_GKI = "GetKeyInput" +_cGKR = "com.amazonaws.cloudfrontkeyvaluestore#GetKeyRequest" +_V = "Value" +_smithy = "smithy.api#sensitive" +_GKO = "GetKeyOutput" +_cGKRo = "com.amazonaws.cloudfrontkeyvaluestore#GetKeyResponse" +_GK = "GetKey" +_LKI = "ListKeysInput" +_cLKR = "com.amazonaws.cloudfrontkeyvaluestore#ListKeysRequest" +_NT = "NextToken" +_sQ = "smithy.api#httpQuery" +_MR = "MaxResults" +_smithya = "smithy.api#default" +_LKRLI = "ListKeysResponseListItem" +_LKRL = "ListKeysResponseList" +_m = "member" +_LKO = "ListKeysOutput" +_cLKRo = "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponse" +_I = "Items" +_LK = "ListKeys" +_PKI = "PutKeyInput" +_cPKR = "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequest" +_PKO = "PutKeyOutput" +_cPKRo = "com.amazonaws.cloudfrontkeyvaluestore#PutKeyResponse" +_PK = "PutKey" +_DKRLI = "DeleteKeyRequestListItem" +_DKRL = "DeleteKeyRequestsList" +_PKRLI = "PutKeyRequestListItem" +_PKRL = "PutKeyRequestsList" +_UKI = "UpdateKeysInput" +_cUKR = "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysRequest" +_P = "Puts" +_D = "Deletes" +_UKO = "UpdateKeysOutput" +_cUKRo = "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysResponse" +_UK = "UpdateKeys" +_CFKVS = "CloudFrontKeyValueStore" +_a = "aws.auth#sigv4" +_aw = "aws.api#service" +_aJ = "aws.protocols#restJson1" + +ACCESS_DENIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _ADE, + {_s: _c, _sE: 403}, + (_M,), + ((3, 0),), +) + +CONFLICT_EXCEPTION: StaticSchema = (18, n0, _CE, {_s: _c, _sE: 409}, (_M,), ((3, 0),)) + +ETAG: StaticSchema = (3, n0, _E, 0) + +KEY: StaticSchema = (3, n0, _K, 0) + +KVS_ARN: StaticSchema = (3, n0, _KARN, 0) + +DELETE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DKI, + {_sSI: _cDKR, _sm: None}, + (_KARN, _K, _IM), + ( + (KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}), + (KEY, 9), + (ETAG, {_sH: _IM_, _smi: None}), + ), +) + +DELETE_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _DKO, + {_sSI: _cDKRo, _smit: None}, + (_IC, _TSIB, _ET), + ((7, 1), (8, 1), (ETAG, {_sH: _ET, _smi: None})), +) + +INTERNAL_SERVER_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISE, + {_s: _se, _sE: 500}, + (_M,), + ((3, 0),), +) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_s: _c, _sE: 404}, + (_M,), + ((3, 0),), +) + +SERVICE_QUOTA_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _SQEE, + {_s: _c, _sE: 402}, + (_M,), + ((3, 0),), +) + +VALIDATION_EXCEPTION: StaticSchema = (18, n0, _VE, {_s: _c, _sE: 400}, (_M,), ((3, 0),)) + +DELETE_KEY: StaticOperationSchema = ( + 23, + n0, + _DK, + { + _smith: MappingProxyType( + { + "code": 200, + "method": "DELETE", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}", + } + ) + }, + DELETE_KEY_INPUT, + DELETE_KEY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_KEY_VALUE_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DKVSI, + {_sSI: _cDKVSR, _sm: None}, + (_KARN,), + ((KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}),), +) + +DESCRIBE_KEY_VALUE_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _DKVSO, + {_sSI: _cDKVSRo, _smit: None}, + (_IC, _TSIB, _KARN, _C, _ET, _LM, _S, _FR), + ( + (7, 1), + (8, 1), + (KVS_ARN, 1), + (4, 1), + (ETAG, {_sH: _ET, _smi: None}), + (4, 0), + (3, 0), + (3, 0), + ), +) + +DESCRIBE_KEY_VALUE_STORE: StaticOperationSchema = ( + 23, + n0, + _DKVS, + { + _smith: MappingProxyType( + {"code": 200, "method": "GET", "uri": "/key-value-stores/{KvsARN}"} + ) + }, + DESCRIBE_KEY_VALUE_STORE_INPUT, + DESCRIBE_KEY_VALUE_STORE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +GET_KEY_INPUT: StaticSchema = ( + 18, + n0, + _GKI, + {_sSI: _cGKR, _sm: None}, + (_KARN, _K), + ( + (KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}), + (KEY, 9), + ), +) + +VALUE: StaticSchema = (3, n0, _V, 4) + +GET_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _GKO, + {_sSI: _cGKRo, _smit: None}, + (_K, _V, _IC, _TSIB), + ((KEY, 1), (VALUE, 1), (7, 1), (8, 1)), +) + +GET_KEY: StaticOperationSchema = ( + 23, + n0, + _GK, + { + _smith: MappingProxyType( + { + "code": 200, + "method": "GET", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}", + } + ) + }, + GET_KEY_INPUT, + GET_KEY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +LIST_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _LKI, + {_sSI: _cLKR, _sm: None}, + (_KARN, _NT, _MR), + ( + (KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}), + (3, {_sQ: _NT}), + (7, {_smithya: 10, _sQ: _MR}), + ), +) + +LIST_KEYS_RESPONSE_LIST_ITEM: StaticSchema = ( + 18, + n0, + _LKRLI, + 0, + (_K, _V), + ((KEY, 1), (VALUE, 1)), +) + +LIST_KEYS_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _LKRL, + 0, + (_m,), + ((LIST_KEYS_RESPONSE_LIST_ITEM, 0),), +) + +LIST_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LKO, + {_sSI: _cLKRo, _smit: None}, + (_NT, _I), + ((3, 0), (LIST_KEYS_RESPONSE_LIST, 0)), +) + +LIST_KEYS: StaticOperationSchema = ( + 23, + n0, + _LK, + { + _smith: MappingProxyType( + {"code": 200, "method": "GET", "uri": "/key-value-stores/{KvsARN}/keys"} + ) + }, + LIST_KEYS_INPUT, + LIST_KEYS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +PUT_KEY_INPUT: StaticSchema = ( + 18, + n0, + _PKI, + {_sSI: _cPKR, _sm: None}, + (_K, _V, _KARN, _IM), + ( + (KEY, 9), + (VALUE, 1), + (KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}), + (ETAG, {_sH: _IM_, _smi: None}), + ), +) + +PUT_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _PKO, + {_sSI: _cPKRo, _smit: None}, + (_IC, _TSIB, _ET), + ((7, 1), (8, 1), (ETAG, {_sH: _ET, _smi: None})), +) + +PUT_KEY: StaticOperationSchema = ( + 23, + n0, + _PK, + { + _smith: MappingProxyType( + { + "code": 200, + "method": "PUT", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}", + } + ) + }, + PUT_KEY_INPUT, + PUT_KEY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DELETE_KEY_REQUEST_LIST_ITEM: StaticSchema = (18, n0, _DKRLI, 0, (_K,), ((KEY, 1),)) + +DELETE_KEY_REQUESTS_LIST: StaticSchema = ( + 16, + n0, + _DKRL, + 0, + (_m,), + ((DELETE_KEY_REQUEST_LIST_ITEM, 0),), +) + +PUT_KEY_REQUEST_LIST_ITEM: StaticSchema = ( + 18, + n0, + _PKRLI, + 0, + (_K, _V), + ((KEY, 1), (VALUE, 1)), +) + +PUT_KEY_REQUESTS_LIST: StaticSchema = ( + 16, + n0, + _PKRL, + 0, + (_m,), + ((PUT_KEY_REQUEST_LIST_ITEM, 0),), +) + +UPDATE_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _UKI, + {_sSI: _cUKR, _sm: None}, + (_KARN, _IM, _P, _D), + ( + (KVS_ARN, {_sP: MappingProxyType({"name": "KvsARN"}), _smi: None, _sL: None}), + (ETAG, {_sH: _IM_, _smi: None}), + (PUT_KEY_REQUESTS_LIST, 0), + (DELETE_KEY_REQUESTS_LIST, 0), + ), +) + +UPDATE_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _UKO, + {_sSI: _cUKRo, _smit: None}, + (_IC, _TSIB, _ET), + ((7, 1), (8, 1), (ETAG, {_sH: _ET, _smi: None})), +) + +UPDATE_KEYS: StaticOperationSchema = ( + 23, + n0, + _UK, + { + _smith: MappingProxyType( + {"code": 200, "method": "POST", "uri": "/key-value-stores/{KvsARN}/keys"} + ) + }, + UPDATE_KEYS_INPUT, + UPDATE_KEYS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CONFLICT_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_QUOTA_EXCEEDED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +CLOUD_FRONT_KEY_VALUE_STORE: StaticSchema = ( + 21, + n0, + _CFKVS, + { + _a: MappingProxyType({"name": "cloudfront-keyvaluestore"}), + _aw: MappingProxyType( + { + "sdkId": "CloudFront KeyValueStore", + "arnNamespace": "key-value-store", + "endpointPrefix": "cloudfront-keyvaluestore", + } + ), + _aJ: None, + }, +) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/__init__.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/__init__.py new file mode 100644 index 00000000..d8a5982f --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/__init__.py @@ -0,0 +1,22 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncCloudFrontKeyValueStoreClient + from .config import AsyncCloudFrontKeyValueStoreConfig + +__all__ = ["AsyncCloudFrontKeyValueStoreClient", "AsyncCloudFrontKeyValueStoreConfig"] + +_EXPORTS = { + "AsyncCloudFrontKeyValueStoreClient": ".client", + "AsyncCloudFrontKeyValueStoreConfig": ".config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/client.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/client.py new file mode 100644 index 00000000..4b4bb536 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/client.py @@ -0,0 +1,190 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncCloudFrontKeyValueStoreConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + DeleteKeyInput, + DeleteKeyOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + GetKeyInput, + GetKeyOutput, + ListKeysInput, + ListKeysOutput, + PutKeyInput, + PutKeyOutput, + UpdateKeysInput, + UpdateKeysOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncCloudFrontKeyValueStoreClient( + AsyncClient[AsyncCloudFrontKeyValueStoreConfig] +): + """ + Amazon CloudFront KeyValueStore Service to View and Update Data in a KVS + Resource + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def delete_key( + self, input: DeleteKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyOutput: + """ + Deletes the key value pair specified by the key. + + Args: + input: + An instance of `DeleteKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyOutput`. + """ + return await self._invoke(input, _models.DELETE_KEY, [], plugins) + + async def describe_key_value_store( + self, input: DescribeKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyValueStoreOutput: + """ + Returns metadata information about Key Value Store. + + Args: + input: + An instance of `DescribeKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyValueStoreOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_KEY_VALUE_STORE, [], plugins) + + async def get_key( + self, input: GetKeyInput, plugins: list[Plugin] | None = None + ) -> GetKeyOutput: + """ + Returns a key value pair. + + Args: + input: + An instance of `GetKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyOutput`. + """ + return await self._invoke(input, _models.GET_KEY, [], plugins) + + async def list_keys( + self, input: ListKeysInput, plugins: list[Plugin] | None = None + ) -> ListKeysOutput: + """ + Returns a list of key value pairs. + + Args: + input: + An instance of `ListKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeysOutput`. + """ + return await self._invoke(input, _models.LIST_KEYS, [], plugins) + + async def put_key( + self, input: PutKeyInput, plugins: list[Plugin] | None = None + ) -> PutKeyOutput: + """ + Creates a new key value pair or replaces the value of an existing key. + + Args: + input: + An instance of `PutKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutKeyOutput`. + """ + return await self._invoke(input, _models.PUT_KEY, [], plugins) + + async def update_keys( + self, input: UpdateKeysInput, plugins: list[Plugin] | None = None + ) -> UpdateKeysOutput: + """ + Puts or Deletes multiple key value pairs in a single, all-or-nothing + operation. + + Args: + input: + An instance of `UpdateKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeysOutput`. + """ + return await self._invoke(input, _models.UPDATE_KEYS, [], plugins) + + async def _new_config(self) -> AsyncCloudFrontKeyValueStoreConfig: + return await AsyncCloudFrontKeyValueStoreConfig.resolve() + + async def _post_setup(self, config: AsyncCloudFrontKeyValueStoreConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/config.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/config.py new file mode 100644 index 00000000..9fc4aa66 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/config.py @@ -0,0 +1,236 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncRestJsonClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import CLOUD_FRONT_KEY_VALUE_STORE +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + DeleteKeyInput, + DeleteKeyOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + GetKeyInput, + GetKeyOutput, + ListKeysInput, + ListKeysOutput, + PutKeyInput, + PutKeyOutput, + UpdateKeysInput, + UpdateKeysOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[DeleteKeyInput, DeleteKeyOutput, Any, Any], + Interceptor[DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput, Any, Any], + Interceptor[GetKeyInput, GetKeyOutput, Any, Any], + Interceptor[ListKeysInput, ListKeysOutput, Any, Any], + Interceptor[PutKeyInput, PutKeyOutput, Any, Any], + Interceptor[UpdateKeysInput, UpdateKeysOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudfrontkeyvaluestore", + service_target="CloudFrontKeyValueStore", + service_schema=CLOUD_FRONT_KEY_VALUE_STORE, +) + + +class _AsyncCloudFrontKeyValueStoreConfigOverrides( + AsyncAwsConfigOverrides, total=False +): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncCloudFrontKeyValueStoreConfig(AsyncAwsConfig): + """CloudFront KeyValueStore configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, + resolver=EndpointUriResolver("cloudfront_keyvaluestore").program, + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncRestJsonClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme( + service="cloudfront-keyvaluestore" + ) + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncCloudFrontKeyValueStoreConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncCloudFrontKeyValueStoreConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/user_agent.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/user_agent.py new file mode 100644 index 00000000..108ecae0 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncCloudFrontKeyValueStoreConfig + + +def aws_user_agent_plugin(config: AsyncCloudFrontKeyValueStoreConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFront_KeyValueStore", + ) + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/auth.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/client.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/client.py new file mode 100644 index 00000000..a33f1f80 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/client.py @@ -0,0 +1,188 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import CloudFrontKeyValueStoreConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + DeleteKeyInput, + DeleteKeyOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + GetKeyInput, + GetKeyOutput, + ListKeysInput, + ListKeysOutput, + PutKeyInput, + PutKeyOutput, + UpdateKeysInput, + UpdateKeysOutput, + ) + + +logger = logging.getLogger(__name__) + + +class CloudFrontKeyValueStoreClient(Client[CloudFrontKeyValueStoreConfig]): + """ + Amazon CloudFront KeyValueStore Service to View and Update Data in a KVS + Resource + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def delete_key( + self, input: DeleteKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyOutput: + """ + Deletes the key value pair specified by the key. + + Args: + input: + An instance of `DeleteKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyOutput`. + """ + return self._invoke(input, _models.DELETE_KEY, [], plugins) + + def describe_key_value_store( + self, input: DescribeKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyValueStoreOutput: + """ + Returns metadata information about Key Value Store. + + Args: + input: + An instance of `DescribeKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyValueStoreOutput`. + """ + return self._invoke(input, _models.DESCRIBE_KEY_VALUE_STORE, [], plugins) + + def get_key( + self, input: GetKeyInput, plugins: list[Plugin] | None = None + ) -> GetKeyOutput: + """ + Returns a key value pair. + + Args: + input: + An instance of `GetKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyOutput`. + """ + return self._invoke(input, _models.GET_KEY, [], plugins) + + def list_keys( + self, input: ListKeysInput, plugins: list[Plugin] | None = None + ) -> ListKeysOutput: + """ + Returns a list of key value pairs. + + Args: + input: + An instance of `ListKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeysOutput`. + """ + return self._invoke(input, _models.LIST_KEYS, [], plugins) + + def put_key( + self, input: PutKeyInput, plugins: list[Plugin] | None = None + ) -> PutKeyOutput: + """ + Creates a new key value pair or replaces the value of an existing key. + + Args: + input: + An instance of `PutKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutKeyOutput`. + """ + return self._invoke(input, _models.PUT_KEY, [], plugins) + + def update_keys( + self, input: UpdateKeysInput, plugins: list[Plugin] | None = None + ) -> UpdateKeysOutput: + """ + Puts or Deletes multiple key value pairs in a single, all-or-nothing + operation. + + Args: + input: + An instance of `UpdateKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeysOutput`. + """ + return self._invoke(input, _models.UPDATE_KEYS, [], plugins) + + def _new_config(self) -> CloudFrontKeyValueStoreConfig: + return CloudFrontKeyValueStoreConfig.resolve() + + def _post_setup(self, config: CloudFrontKeyValueStoreConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/config.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/config.py new file mode 100644 index 00000000..b0180f09 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/config.py @@ -0,0 +1,229 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import RestJsonClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import CLOUD_FRONT_KEY_VALUE_STORE +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + DeleteKeyInput, + DeleteKeyOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + GetKeyInput, + GetKeyOutput, + ListKeysInput, + ListKeysOutput, + PutKeyInput, + PutKeyOutput, + UpdateKeysInput, + UpdateKeysOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[DeleteKeyInput, DeleteKeyOutput, Any, Any], + Interceptor[DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput, Any, Any], + Interceptor[GetKeyInput, GetKeyOutput, Any, Any], + Interceptor[ListKeysInput, ListKeysOutput, Any, Any], + Interceptor[PutKeyInput, PutKeyOutput, Any, Any], + Interceptor[UpdateKeysInput, UpdateKeysOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudfrontkeyvaluestore", + service_target="CloudFrontKeyValueStore", + service_schema=CLOUD_FRONT_KEY_VALUE_STORE, +) + + +class _CloudFrontKeyValueStoreConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class CloudFrontKeyValueStoreConfig(AwsConfig): + """CloudFront KeyValueStore configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, + resolver=EndpointUriResolver("cloudfront_keyvaluestore").program, + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: RestJsonClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme( + service="cloudfront-keyvaluestore" + ) + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_CloudFrontKeyValueStoreConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[CloudFrontKeyValueStoreConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.py new file mode 100644 index 00000000..dfd58cbe --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.py @@ -0,0 +1,177 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccessDeniedException": "ACCESS_DENIED_EXCEPTION", + "ConflictException": "CONFLICT_EXCEPTION", + "DeleteKeyInput": "DELETE_KEY_INPUT", + "DeleteKeyOutput": "DELETE_KEY_OUTPUT", + "DeleteKeyRequestListItem": "DELETE_KEY_REQUEST_LIST_ITEM", + "DescribeKeyValueStoreInput": "DESCRIBE_KEY_VALUE_STORE_INPUT", + "DescribeKeyValueStoreOutput": "DESCRIBE_KEY_VALUE_STORE_OUTPUT", + "GetKeyInput": "GET_KEY_INPUT", + "GetKeyOutput": "GET_KEY_OUTPUT", + "InternalServerException": "INTERNAL_SERVER_EXCEPTION", + "ListKeysInput": "LIST_KEYS_INPUT", + "ListKeysOutput": "LIST_KEYS_OUTPUT", + "ListKeysResponseListItem": "LIST_KEYS_RESPONSE_LIST_ITEM", + "PutKeyInput": "PUT_KEY_INPUT", + "PutKeyOutput": "PUT_KEY_OUTPUT", + "PutKeyRequestListItem": "PUT_KEY_REQUEST_LIST_ITEM", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "ServiceQuotaExceededException": "SERVICE_QUOTA_EXCEEDED_EXCEPTION", + "UpdateKeysInput": "UPDATE_KEYS_INPUT", + "UpdateKeysOutput": "UPDATE_KEYS_OUTPUT", + "ValidationException": "VALIDATION_EXCEPTION", + }, + shape_names=frozenset( + { + "AccessDeniedException", + "ConflictException", + "DeleteKeyInput", + "DeleteKeyOutput", + "DeleteKeyRequestListItem", + "DescribeKeyValueStoreInput", + "DescribeKeyValueStoreOutput", + "GetKeyInput", + "GetKeyOutput", + "InternalServerException", + "ListKeysInput", + "ListKeysOutput", + "ListKeysResponseListItem", + "PutKeyInput", + "PutKeyOutput", + "PutKeyRequestListItem", + "ResourceNotFoundException", + "ServiceQuotaExceededException", + "UpdateKeysInput", + "UpdateKeysOutput", + "ValidationException", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "DELETE_KEY", + "DESCRIBE_KEY_VALUE_STORE", + "GET_KEY", + "LIST_KEYS", + "PUT_KEY", + "UPDATE_KEYS", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["DELETE_KEY"] = ( + "DELETE_KEY", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException", + "com.amazonaws.cloudfrontkeyvaluestore#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_KEY_VALUE_STORE"] = ( + "DESCRIBE_KEY_VALUE_STORE", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY"] = ( + "GET_KEY", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEYS"] = ( + "LIST_KEYS", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + "com.amazonaws.cloudfrontkeyvaluestore#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_KEY"] = ( + "PUT_KEY", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException", + "com.amazonaws.cloudfrontkeyvaluestore#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_KEYS"] = ( + "UPDATE_KEYS", + ( + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException", + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException", + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException", + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException", + "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException", + "com.amazonaws.cloudfrontkeyvaluestore#ValidationException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.pyi b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.pyi new file mode 100644 index 00000000..65637fcd --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/models.pyi @@ -0,0 +1,354 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from typing import Self + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AccessDeniedException(ServiceError, _SerdeShape): + """Access denied.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConflictException(ServiceError, _SerdeShape): + """Resource is not in expected state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteKeyInput(_SerdeShape): + """Dataclass for DeleteKeyInput structure.""" + + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + key: str | None = ... + """The key to delete.""" + if_match: str | None = ... + """ + The current version (ETag) of the Key Value Store that you are deleting + keys from, which you can get using DescribeKeyValueStore. + """ + +@dataclass(kw_only=True) +class DeleteKeyOutput(_SerdeShape): + """Metadata information about a Key Value Store.""" + + item_count: int + """ + Number of key value pairs in the Key Value Store after the successful + delete. + """ + total_size_in_bytes: int + """Total size of the Key Value Store after the successful delete, in bytes.""" + e_tag: str + """ + The current version identifier of the Key Value Store after the + successful delete. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteKeyRequestListItem(_SerdeShape): + """List item for keys to delete.""" + + key: str + """The key of the key value pair to be deleted.""" + +@dataclass(kw_only=True) +class DescribeKeyValueStoreInput(_SerdeShape): + """Dataclass for DescribeKeyValueStoreInput structure.""" + + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + +@dataclass(kw_only=True) +class DescribeKeyValueStoreOutput(_SerdeShape): + """Metadata information about a Key Value Store.""" + + item_count: int + """Number of key value pairs in the Key Value Store.""" + total_size_in_bytes: int + """Total size of the Key Value Store in bytes.""" + kvs_arn: str + """The Amazon Resource Name (ARN) of the Key Value Store.""" + created: datetime + """Date and time when the Key Value Store was created.""" + e_tag: str + """The version identifier for the current version of the Key Value Store.""" + last_modified: datetime | None = ... + """ + Date and time when the key value pairs in the Key Value Store was last + modified. + """ + status: str | None = ... + """The current status of the Key Value Store.""" + failure_reason: str | None = ... + """The reason for Key Value Store creation failure.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyInput(_SerdeShape): + """Dataclass for GetKeyInput structure.""" + + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + key: str | None = ... + """The key to get.""" + +@dataclass(kw_only=True) +class GetKeyOutput(_SerdeShape): + """A key value pair.""" + + key: str + """The key of the key value pair.""" + value: str + """The value of the key value pair.""" + item_count: int + """Number of key value pairs in the Key Value Store.""" + total_size_in_bytes: int + """Total size of the Key Value Store in bytes.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InternalServerException(ServiceError, _SerdeShape): + """Internal server error.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeysInput(_SerdeShape): + """Dataclass for ListKeysInput structure.""" + + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + next_token: str | None = ... + """ + If nextToken is returned in the response, there are more results + available. Make the next call using the returned token to retrieve the + next page. + """ + max_results: int = ... + """ + Maximum number of results that are returned per call. The default is 10 + and maximum allowed page is 50. + """ + +@dataclass(kw_only=True) +class ListKeysOutput(_SerdeShape): + """Dataclass for ListKeysOutput structure.""" + + next_token: str | None = ... + """ + If nextToken is returned in the response, there are more results + available. Make the next call using the returned token to retrieve the + next page. + """ + items: list[ListKeysResponseListItem] | None = ... + """Key value pairs""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeysResponseListItem(_SerdeShape): + """A key value pair.""" + + key: str + """The key of the key value pair.""" + value: str + """The value of the key value pair.""" + +@dataclass(kw_only=True) +class PutKeyInput(_SerdeShape): + """A key value pair.""" + + key: str | None = ... + """The key to put.""" + value: str | None = ... + """The value to put.""" + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + if_match: str | None = ... + """ + The current version (ETag) of the Key Value Store that you are putting + keys into, which you can get using DescribeKeyValueStore. + """ + +@dataclass(kw_only=True) +class PutKeyOutput(_SerdeShape): + """Metadata information about a Key Value Store.""" + + item_count: int + """ + Number of key value pairs in the Key Value Store after the successful + put. + """ + total_size_in_bytes: int + """Total size of the Key Value Store after the successful put, in bytes.""" + e_tag: str + """ + The current version identifier of the Key Value Store after the + successful put. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutKeyRequestListItem(_SerdeShape): + """List item for key value pair to put.""" + + key: str + """The key of the key value pair list item to put.""" + value: str + """The value for the key value pair to put.""" + +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """Resource was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceQuotaExceededException(ServiceError, _SerdeShape): + """Limit exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateKeysInput(_SerdeShape): + """Dataclass for UpdateKeysInput structure.""" + + kvs_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Key Value Store.""" + if_match: str | None = ... + """ + The current version (ETag) of the Key Value Store that you are updating + keys of, which you can get using DescribeKeyValueStore. + """ + puts: list[PutKeyRequestListItem] | None = ... + """List of key value pairs to put.""" + deletes: list[DeleteKeyRequestListItem] | None = ... + """List of keys to delete.""" + +@dataclass(kw_only=True) +class UpdateKeysOutput(_SerdeShape): + """Metadata information about a Key Value Store.""" + + item_count: int + """ + Number of key value pairs in the Key Value Store after the successful + update. + """ + total_size_in_bytes: int + """Total size of the Key Value Store after the successful update, in bytes.""" + e_tag: str + """ + The current version identifier of the Key Value Store after the + successful update. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ValidationException(ServiceError, _SerdeShape): + """Validation failed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +DELETE_KEY: APIOperation[DeleteKeyInput, DeleteKeyOutput] +DESCRIBE_KEY_VALUE_STORE: APIOperation[ + DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput +] +GET_KEY: APIOperation[GetKeyInput, GetKeyOutput] +LIST_KEYS: APIOperation[ListKeysInput, ListKeysOutput] +PUT_KEY: APIOperation[PutKeyInput, PutKeyOutput] +UPDATE_KEYS: APIOperation[UpdateKeysInput, UpdateKeysOutput] diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/user_agent.py b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/user_agent.py new file mode 100644 index 00000000..8289828a --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/src/aws_sdk_cloudfront_keyvaluestore/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import CloudFrontKeyValueStoreConfig + + +def aws_user_agent_plugin(config: CloudFrontKeyValueStoreConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFront_KeyValueStore", + ) + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/tests/__init__.py b/clients/aws-sdk-cloudfront-keyvaluestore/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/tests/_typecheck.py b/clients/aws-sdk-cloudfront-keyvaluestore/tests/_typecheck.py new file mode 100644 index 00000000..7a34146a --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/tests/_typecheck.py @@ -0,0 +1,45 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_cloudfront_keyvaluestore.models import ( + DeleteKeyInput, + DeleteKeyOutput, + DeleteKeyRequestListItem, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + GetKeyInput, + GetKeyOutput, + ListKeysInput, + ListKeysOutput, + ListKeysResponseListItem, + PutKeyInput, + PutKeyOutput, + PutKeyRequestListItem, + UpdateKeysInput, + UpdateKeysOutput, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +DeleteKeyInput() +DeleteKeyOutput(item_count=_, total_size_in_bytes=_, e_tag=_) +DeleteKeyRequestListItem(key=_) +DescribeKeyValueStoreInput() +DescribeKeyValueStoreOutput( + item_count=_, total_size_in_bytes=_, kvs_arn=_, created=_, e_tag=_ +) +GetKeyInput() +GetKeyOutput(key=_, value=_, item_count=_, total_size_in_bytes=_) +ListKeysInput() +ListKeysOutput() +ListKeysResponseListItem(key=_, value=_) +PutKeyInput() +PutKeyOutput(item_count=_, total_size_in_bytes=_, e_tag=_) +PutKeyRequestListItem(key=_, value=_) +UpdateKeysInput() +UpdateKeysOutput(item_count=_, total_size_in_bytes=_, e_tag=_) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_endpoints.py b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_endpoints.py new file mode 100644 index 00000000..d7fd169c --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_endpoints.py @@ -0,0 +1,251 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_cloudfront_keyvaluestore.aio.client import ( + AsyncCloudFrontKeyValueStoreClient, +) +from aws_sdk_cloudfront_keyvaluestore.aio.config import ( + AsyncCloudFrontKeyValueStoreConfig, +) + + +# Endpoint tests from the endpointTests trait of com.amazonaws.cloudfrontkeyvaluestore#CloudFrontKeyValueStore. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncCloudFrontKeyValueStoreConfig: + return await AsyncCloudFrontKeyValueStoreConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncCloudFrontKeyValueStoreClient: + return AsyncCloudFrontKeyValueStoreClient( + config=await _config(**config, interceptors=[capture]) + ) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"UseFIPS": True}, + { + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore." + }, + id="FIPS should error", + ), + param( + {}, + {"error": "KVS ARN must be provided to use this service"}, + id="KVS ARN must be provided to use this service", + ), + param( + {"KvsARN": "not-a-valid-arn"}, + {"error": "KVS ARN must be a valid ARN"}, + id="KVS ARN must be a valid ARN", + ), + param( + { + "KvsARN": "arn:aws:notcloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + { + "error": "Provided ARN is not a valid CloudFront Service ARN. Found: `notcloudfront`" + }, + id="Provided ARN was not a valid CloudFront Service ARN. Found: `notcloudfront`", + ), + param( + { + "KvsARN": "arn:aws:cloudfront:us-west-2:123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + {"error": "Provided ARN must be a global resource ARN. Found: `us-west-2`"}, + id="Provided ARN must be a global resource ARN. Found: `us-west-2`", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:some-other-resource-type/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + { + "error": "ARN resource type is invalid. Expected `key-value-store`, found: `some-other-resource-type`" + }, + id="ARN resource type is invalid. Expected `key-value-store`, found: `some-other-resource-type`", + ), + param( + { + "KvsARN": "arn:aws-cn:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + {"error": "CloudFront-KeyValueStore is not supported in partition `aws-cn`"}, + id="CloudFront-KeyValueStore is not supported in partition `aws-cn`", + ), + param( + { + "KvsARN": "arn:aws-us-gov:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + { + "error": "CloudFront-KeyValueStore is not supported in partition `aws-us-gov`" + }, + id="CloudFront-KeyValueStore is not supported in partition `aws-us-gov`", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + }, + { + "endpoint": { + "url": "https://123456789012.cloudfront-kvs.global.api.aws", + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": ["*"], + } + ] + }, + } + }, + id="Valid account based endpoint", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-west-2", + }, + { + "endpoint": { + "url": "https://123456789012.cloudfront-kvs.global.api.aws", + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": ["*"], + } + ] + }, + } + }, + id="Valid account based endpoint, with SDK region", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "cn-north-1", + }, + {"error": "Client was configured for partition `aws-cn` but Kvs ARN has `aws`"}, + id="Valid ARN, different partition, should error", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-east-1", + "UseFIPS": True, + }, + { + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore." + }, + id="Valid account based endpoint with FIPS, should error", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-east-1", + "Endpoint": "https://my-override.example.com", + }, + { + "endpoint": { + "url": "https://123456789012.my-override.example.com", + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": ["*"], + } + ] + }, + } + }, + id="Custom sdk endpoint override", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Endpoint": "http://my-override.example.com/custom-path", + }, + { + "endpoint": { + "url": "http://123456789012.my-override.example.com/custom-path", + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": ["*"], + } + ] + }, + } + }, + id="Custom sdk endpoint override with path and http", + ), + param( + { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-gov-east-1", + "Endpoint": "https://my-override.example.com", + }, + { + "error": "Client was configured for partition `aws-us-gov` but Kvs ARN has `aws`" + }, + id="Custom override with different partition should error", + ), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_model_conformance.py b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_model_conformance.py new file mode 100644 index 00000000..a2e78fed --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_cloudfront_keyvaluestore import models as _models +from aws_sdk_cloudfront_keyvaluestore._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_restjson_protocol.py b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_restjson_protocol.py new file mode 100644 index 00000000..2e50935f --- /dev/null +++ b/clients/aws-sdk-cloudfront-keyvaluestore/tests/test_restjson_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_cloudfront_keyvaluestore.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-cloudfront/README.md b/clients/aws-sdk-cloudfront/README.md new file mode 100644 index 00000000..e8f6f1ba --- /dev/null +++ b/clients/aws-sdk-cloudfront/README.md @@ -0,0 +1,13 @@ + + +## Amazon CloudFront Client + +aws_sdk_cloudfront client + +### Documentation + +This is the *Amazon CloudFront API Reference*. This guide is for +developers who need detailed information about CloudFront API actions, +data types, and errors. For detailed information about CloudFront +features, see the [Amazon CloudFront Developer +Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). diff --git a/clients/aws-sdk-cloudfront/pyproject.toml b/clients/aws-sdk-cloudfront/pyproject.toml new file mode 100644 index 00000000..f3d44379 --- /dev/null +++ b/clients/aws-sdk-cloudfront/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_cloudfront" +version = "0.12.0" +description = "aws_sdk_cloudfront client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_cloudfront"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/__init__.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/__init__.py new file mode 100644 index 00000000..d9edf6b7 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/__init__.py @@ -0,0 +1,34 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import CloudFrontClient + from .config import CloudFrontConfig + from .aio.client import AsyncCloudFrontClient + from .aio.config import AsyncCloudFrontConfig + +__all__ = [ + "CloudFrontClient", + "CloudFrontConfig", + "AsyncCloudFrontClient", + "AsyncCloudFrontConfig", +] + +_EXPORTS = { + "CloudFrontClient": ".client", + "CloudFrontConfig": ".config", + "AsyncCloudFrontClient": ".aio.client", + "AsyncCloudFrontConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/__init__.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/endpoints.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/endpoints.py new file mode 100644 index 00000000..9e71c0ad --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/endpoints.py @@ -0,0 +1,70 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.cloudfront#Cloudfront2020_05_31.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ("Region", "string", False, None, "AWS::Region", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws"), None), # 5: stringEquals(PartitionResult#name, "aws") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-cn"), None), # 6: stringEquals(PartitionResult#name, "aws-cn") + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 7: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 8: booleanEquals(PartitionResult#supportsFIPS, true) + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://cloudfront.global.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 4 + (6, "https://cloudfront-fips.global.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 5 + (6, "https://cloudfront.cn-northwest-1.amazonaws.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-northwest-1"))), ()), # 6 + (6, "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-northwest-1"))), ()), # 7 + (6, "https://cloudfront-fips.{PartitionResult#dualStackDnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 8 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 9 + (6, "https://cloudfront-fips.{PartitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 10 + (5, "FIPS is enabled but this partition does not support FIPS"), # 11 + (6, "https://cloudfront.{PartitionResult#dualStackDnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 12 + (5, "DualStack is enabled but this partition does not support DualStack"), # 13 + (6, "https://cloudfront.{PartitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 14 + (5, "Invalid Configuration: Missing Region"), # 15 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 16, 3, + 1, 4, 100_000_015, + 2, 5, 100_000_015, + 3, 10, 6, + 4, 8, 7, + 6, 100_000_006, 100_000_014, + 5, 100_000_004, 9, + 7, 100_000_012, 100_000_013, + 4, 13, 11, + 6, 100_000_007, 12, + 8, 100_000_010, 100_000_011, + 5, 100_000_005, 14, + 7, 15, 100_000_009, + 8, 100_000_008, 100_000_009, + 3, 100_000_001, 17, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/schemas.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/schemas.py new file mode 100644 index 00000000..30fe2429 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/_private/schemas.py @@ -0,0 +1,13245 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.cloudfront" +_s = "string" +_ACAHL = "AccessControlAllowHeadersList" +_m = "member" +_sN = "smithy.api#xmlName" +_H = "Header" +_RHPACAMV = "ResponseHeadersPolicyAccessControlAllowMethodsValues" +_GET = "GET" +_sV = "smithy.api#enumValue" +_POST = "POST" +_OPTIONS = "OPTIONS" +_PUT = "PUT" +_DELETE = "DELETE" +_PATCH = "PATCH" +_HEAD = "HEAD" +_ALL = "ALL" +_ACAML = "AccessControlAllowMethodsList" +_M = "Method" +_ACAOL = "AccessControlAllowOriginsList" +_O = "Origin" +_ACEHL = "AccessControlExposeHeadersList" +_AD = "AccessDenied" +_sm = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_Me = "Message" +_b = "boolean" +_KPIL = "KeyPairIdList" +_KPI = "KeyPairId" +_i = "integer" +_KPIe = "KeyPairIds" +_Q = "Quantity" +_smi = "smithy.api#required" +_I = "Items" +_KGKPI = "KGKeyPairIds" +_KGI = "KeyGroupId" +_KGKPIL = "KGKeyPairIdsList" +_KG = "KeyGroup" +_ATKG = "ActiveTrustedKeyGroups" +_E = "Enabled" +_S = "Signer" +_AAN = "AwsAccountNumber" +_SL = "SignerList" +_ATS = "ActiveTrustedSigners" +_AL = "AliasList" +_CNAME = "CNAME" +_A = "Aliases" +_ICPRS = "ICPRecordalStatus" +_APPROVED = "APPROVED" +_SUSPENDED = "SUSPENDED" +_PENDING = "PENDING" +_AICPR = "AliasICPRecordal" +_AICPRl = "AliasICPRecordals" +_aS = "aliasString" +_ML = "MethodsList" +_CM = "CachedMethods" +_AM = "AllowedMethods" +_AI = "AnycastIps" +_AIn = "AnycastIp" +_IAT = "IpAddressType" +_Ip = "Ipv4" +_ip = "ipv4" +_Ipv = "Ipv6" +_ipv = "ipv6" +_DS = "DualStack" +_d = "dualstack" +_ICS = "IpamCidrStatus" +_P = "Provisioned" +_p = "provisioned" +_FP = "FailedProvision" +_fp = "failed-provision" +_Pr = "Provisioning" +_pr = "provisioning" +_D = "Deprovisioned" +_de = "deprovisioned" +_FD = "FailedDeprovision" +_fd = "failed-deprovision" +_De = "Deprovisioning" +_dep = "deprovisioning" +_Ad = "Advertised" +_a = "advertised" +_FA = "FailedAdvertise" +_fa = "failed-advertise" +_Adv = "Advertising" +_ad = "advertising" +_W = "Withdrawn" +_w = "withdrawn" +_FW = "FailedWithdraw" +_fw = "failed-withdraw" +_Wi = "Withdrawing" +_wi = "withdrawing" +_ICC = "IpamCidrConfig" +_C = "Cidr" +_IPA = "IpamPoolArn" +_St = "Status" +_ICCL = "IpamCidrConfigList" +_IC = "IpamConfig" +_ICCp = "IpamCidrConfigs" +_t = "timestamp" +_AILN = "AnycastIpListName" +_AIL = "AnycastIpList" +_Id = "Id" +_N = "Name" +_Ar = "Arn" +_ICp = "IpCount" +_LMT = "LastModifiedTime" +_AILS = "AnycastIpListSummary" +_ET = "ETag" +_AILSn = "AnycastIpListSummaries" +_AILC = "AnycastIpListCollection" +_Ma = "Marker" +_NM = "NextMarker" +_MI = "MaxItems" +_IT = "IsTruncated" +_AAI = "AssociateAliasInput" +_sSI = "smithy.synthetic#originalShapeId" +_cAAR = "com.amazonaws.cloudfront#AssociateAliasRequest" +_smit = "smithy.api#input" +_TDI = "TargetDistributionId" +_sL = "smithy.api#httpLabel" +_Al = "Alias" +_sQ = "smithy.api#httpQuery" +_AAO = "AssociateAliasOutput" +_sU = "smithy.api#Unit" +_smith = "smithy.api#output" +_IU = "IllegalUpdate" +_IA = "InvalidArgument" +_NSD = "NoSuchDistribution" +_TMDCNAME = "TooManyDistributionCNAMEs" +_AA = "AssociateAlias" +_smithy = "smithy.api#http" +_ADTWACLI = "AssociateDistributionTenantWebACLInput" +_cADTWACLR = "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLRequest" +_WACLA = "WebACLArn" +_IM = "IfMatch" +_sH = "smithy.api#httpHeader" +_IM_ = "If-Match" +_ADTWACLO = "AssociateDistributionTenantWebACLOutput" +_cADTWACLRo = "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLResult" +_ELE = "EntityLimitExceeded" +_ENF = "EntityNotFound" +_IIMV = "InvalidIfMatchVersion" +_PF = "PreconditionFailed" +_ADTWACL = "AssociateDistributionTenantWebACL" +_ADWACLI = "AssociateDistributionWebACLInput" +_cADWACLR = "com.amazonaws.cloudfront#AssociateDistributionWebACLRequest" +_ADWACLO = "AssociateDistributionWebACLOutput" +_cADWACLRo = "com.amazonaws.cloudfront#AssociateDistributionWebACLResult" +_ADWACL = "AssociateDistributionWebACL" +_AANL = "AwsAccountNumberList" +_BTL = "BatchTooLarge" +_CCBSL = "CaCertificatesBundleS3Location" +_B = "Bucket" +_K = "Key" +_R = "Region" +_V = "Version" +_CCBS = "CaCertificatesBundleSource" +_l = "long" +_IS = "ItemSelection" +_n = "none" +_wh = "whitelist" +_al = "all" +_CNL = "CookieNameList" +_CN = "CookieNames" +_CP = "CookiePreference" +_F = "Forward" +_WN = "WhitelistedNames" +_HL = "HeaderList" +_He = "Headers" +_QSCKL = "QueryStringCacheKeysList" +_QSCK = "QueryStringCacheKeys" +_FV = "ForwardedValues" +_QS = "QueryString" +_Co = "Cookies" +_ETv = "EventType" +_vr = "viewer_request" +_vr_ = "viewer-request" +_vr__ = "viewer_response" +_vr___ = "viewer-response" +_or = "origin_request" +_or_ = "origin-request" +_or__ = "origin_response" +_or___ = "origin-response" +_FARN = "FunctionARN" +_FAu = "FunctionAssociation" +_FAL = "FunctionAssociationList" +_FAun = "FunctionAssociations" +_GC = "GrpcConfig" +_LFARN = "LambdaFunctionARN" +_LFA = "LambdaFunctionAssociation" +_IB = "IncludeBody" +_LFAL = "LambdaFunctionAssociationList" +_LFAa = "LambdaFunctionAssociations" +_TKGIL = "TrustedKeyGroupIdList" +_TKG = "TrustedKeyGroups" +_TS = "TrustedSigners" +_VPP = "ViewerProtocolPolicy" +_aa = "allow_all" +_aa_ = "allow-all" +_ho = "https_only" +_ho_ = "https-only" +_rth = "redirect_to_https" +_rth_ = "redirect-to-https" +_CB = "CacheBehavior" +_PP = "PathPattern" +_TOI = "TargetOriginId" +_SS = "SmoothStreaming" +_Com = "Compress" +_FLEI = "FieldLevelEncryptionId" +_RLCA = "RealtimeLogConfigArn" +_CPI = "CachePolicyId" +_ORPI = "OriginRequestPolicyId" +_RHPI = "ResponseHeadersPolicyId" +_MTTL = "MinTTL" +_DTTL = "DefaultTTL" +_MTTLa = "MaxTTL" +_CBL = "CacheBehaviorList" +_CBa = "CacheBehaviors" +_CPCB = "CachePolicyCookieBehavior" +_aE = "allExcept" +_CPCC = "CachePolicyCookiesConfig" +_CBo = "CookieBehavior" +_CPHB = "CachePolicyHeaderBehavior" +_CPHC = "CachePolicyHeadersConfig" +_HB = "HeaderBehavior" +_CPQSB = "CachePolicyQueryStringBehavior" +_QSNL = "QueryStringNamesList" +_QSN = "QueryStringNames" +_CPQSC = "CachePolicyQueryStringsConfig" +_QSB = "QueryStringBehavior" +_QSu = "QueryStrings" +_PICKAFTO = "ParametersInCacheKeyAndForwardedToOrigin" +_EAEG = "EnableAcceptEncodingGzip" +_EAEB = "EnableAcceptEncodingBrotli" +_HC = "HeadersConfig" +_CC = "CookiesConfig" +_QSC = "QueryStringsConfig" +_CPC = "CachePolicyConfig" +_Comm = "Comment" +_CPa = "CachePolicy" +_CPAE = "CachePolicyAlreadyExists" +_CPIU = "CachePolicyInUse" +_CPT = "CachePolicyType" +_ma = "managed" +_cu = "custom" +_CPS = "CachePolicySummary" +_T = "Type" +_CPSL = "CachePolicySummaryList" +_CPL = "CachePolicyList" +_CTC = "CacheTagConfig" +_HN = "HeaderName" +_CCIPKF = "CannotChangeImmutablePublicKeyFields" +_CDEWIU = "CannotDeleteEntityWhileInUse" +_CUEWIU = "CannotUpdateEntityWhileInUse" +_Ce = "Certificate" +_CS = "CertificateSource" +_cl = "cloudfront" +_ia = "iam" +_ac = "acm" +_CTLP = "CertificateTransparencyLoggingPreference" +_e = "enabled" +_Di = "Disabled" +_di = "disabled" +_CNAMEAE = "CNAMEAlreadyExists" +_CDI = "CopyDistributionInput" +_cCDR = "com.amazonaws.cloudfront#CopyDistributionRequest" +_PDI = "PrimaryDistributionId" +_Sta = "Staging" +_CR = "CallerReference" +_CT = "CommentType" +_smithya = "smithy.api#sensitive" +_RI = "ResourceId" +_CFA = "ConnectionFunctionAssociation" +_CMo = "ConnectionMode" +_Dir = "Direct" +_dir = "direct" +_TO = "TenantOnly" +_to = "tenant-only" +_CER = "CustomErrorResponse" +_EC = "ErrorCode" +_RPP = "ResponsePagePath" +_RC = "ResponseCode" +_ECMTTL = "ErrorCachingMinTTL" +_CERL = "CustomErrorResponseList" +_CERu = "CustomErrorResponses" +_DCB = "DefaultCacheBehavior" +_HV = "HttpVersion" +_h = "http1_1" +_ht = "http1.1" +_htt = "http2" +_http = "http3" +_httpa = "http2and3" +_LC = "LoggingConfig" +_smithyap = "smithy.api#default" +_ICn = "IncludeCookies" +_v = "" +_Pre = "Prefix" +_SCL = "StatusCodeList" +_SC = "StatusCode" +_SCt = "StatusCodes" +_OGFC = "OriginGroupFailoverCriteria" +_OGM = "OriginGroupMember" +_OI = "OriginId" +_OGML = "OriginGroupMemberList" +_OGMr = "OriginGroupMembers" +_OGSC = "OriginGroupSelectionCriteria" +_Def = "Default" +_def = "default" +_MQB = "MediaQualityBased" +_mqb = "media-quality-based" +_OG = "OriginGroup" +_FC = "FailoverCriteria" +_Mem = "Members" +_SCe = "SelectionCriteria" +_OGL = "OriginGroupList" +_OGr = "OriginGroups" +_sST = "sensitiveStringType" +_OCH = "OriginCustomHeader" +_HVe = "HeaderValue" +_OCHL = "OriginCustomHeadersList" +_CH = "CustomHeaders" +_OMC = "OriginMtlsConfig" +_CCA = "ClientCertificateArn" +_OPP = "OriginProtocolPolicy" +_ho__ = "http_only" +_ho___ = "http-only" +_mv = "match_viewer" +_mv_ = "match-viewer" +_SP = "SslProtocol" +_SSL = "SSLv3" +_TLS = "TLSv1" +_T_ = "TLSv1_1" +_TLSv = "TLSv1.1" +_T__ = "TLSv1_2" +_TLSv_ = "TLSv1.2" +_SPL = "SslProtocolsList" +_OSP = "OriginSslProtocols" +_COC = "CustomOriginConfig" +_HTTPP = "HTTPPort" +_HTTPSP = "HTTPSPort" +_ORT = "OriginReadTimeout" +_OKT = "OriginKeepaliveTimeout" +_OSR = "OriginShieldRegion" +_OS = "OriginShield" +_SOC = "S3OriginConfig" +_OAI = "OriginAccessIdentity" +_VOC = "VpcOriginConfig" +_VOI = "VpcOriginId" +_OAIw = "OwnerAccountId" +_DN = "DomainName" +_OP = "OriginPath" +_CA = "ConnectionAttempts" +_CTo = "ConnectionTimeout" +_RCT = "ResponseCompletionTimeout" +_OACI = "OriginAccessControlId" +_OL = "OriginList" +_Or = "Origins" +_PC = "PriceClass" +_P_ = "PriceClass_100" +_P__ = "PriceClass_200" +_PA = "PriceClass_All" +_No = "None" +_LL = "LocationList" +_L = "Location" +_GRT = "GeoRestrictionType" +_bl = "blacklist" +_GR = "GeoRestriction" +_RT = "RestrictionType" +_Re = "Restrictions" +_PV = "ParameterValue" +_SSC = "StringSchemaConfig" +_DV = "DefaultValue" +_Req = "Required" +_PDS = "ParameterDefinitionSchema" +_SSt = "StringSchema" +_PN = "ParameterName" +_PD = "ParameterDefinition" +_Defi = "Definition" +_PDa = "ParameterDefinitions" +_TC = "TenantConfig" +_SCI = "ServerCertificateId" +_MPV = "MinimumProtocolVersion" +_T___ = "TLSv1_2016" +_T____ = "TLSv1_1_2016" +_T_____ = "TLSv1.1_2016" +_T______ = "TLSv1_2_2018" +_T_______ = "TLSv1.2_2018" +_T________ = "TLSv1_2_2019" +_T_________ = "TLSv1.2_2019" +_T__________ = "TLSv1_2_2021" +_T___________ = "TLSv1.2_2021" +_T____________ = "TLSv1_3_2025" +_T_____________ = "TLSv1.3_2025" +_T______________ = "TLSv1_2_2025" +_T_______________ = "TLSv1.2_2025" +_SSLSM = "SSLSupportMethod" +_so = "sni_only" +_so_ = "sni-only" +_vi = "vip" +_si = "static_ip" +_si_ = "static-ip" +_VC = "ViewerCertificate" +_CFDC = "CloudFrontDefaultCertificate" +_IAMCI = "IAMCertificateId" +_ACMCA = "ACMCertificateArn" +_VMM = "ViewerMtlsMode" +_r = "required" +_Op = "Optional" +_o = "optional" +_Pa = "Passthrough" +_pa = "passthrough" +_TSC = "TrustStoreConfig" +_TSI = "TrustStoreId" +_ATSCN = "AdvertiseTrustStoreCaNames" +_ICE = "IgnoreCertificateExpiry" +_VMC = "ViewerMtlsConfig" +_Mo = "Mode" +_DC = "DistributionConfig" +_DRO = "DefaultRootObject" +_Lo = "Logging" +_WACLI = "WebACLId" +_IIPVE = "IsIPV6Enabled" +_CDPI = "ContinuousDeploymentPolicyId" +_AILI = "AnycastIpListId" +_Dis = "Distribution" +_ARN = "ARN" +_IPIB = "InProgressInvalidationBatches" +_CDO = "CopyDistributionOutput" +_cCDRo = "com.amazonaws.cloudfront#CopyDistributionResult" +_sP = "smithy.api#httpPayload" +_DAE = "DistributionAlreadyExists" +_IFLECAWCB = "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" +_IQ = "InconsistentQuantities" +_IDRO = "InvalidDefaultRootObject" +_IEC = "InvalidErrorCode" +_IFC = "InvalidForwardCookies" +_IFA = "InvalidFunctionAssociation" +_IGRP = "InvalidGeoRestrictionParameter" +_IHFSO = "InvalidHeadersForS3Origin" +_ILFA = "InvalidLambdaFunctionAssociation" +_ILC = "InvalidLocationCode" +_IMPV = "InvalidMinimumProtocolVersion" +_IO = "InvalidOrigin" +_IOAC = "InvalidOriginAccessControl" +_IOAI = "InvalidOriginAccessIdentity" +_IOKT = "InvalidOriginKeepaliveTimeout" +_IORT = "InvalidOriginReadTimeout" +_IPS = "InvalidProtocolSettings" +_IQSP = "InvalidQueryStringParameters" +_IRP = "InvalidRelativePath" +_IRPn = "InvalidRequiredProtocol" +_IRC = "InvalidResponseCode" +_ITTLO = "InvalidTTLOrder" +_IVC = "InvalidViewerCertificate" +_IWACLI = "InvalidWebACLId" +_MB = "MissingBody" +_NSCP = "NoSuchCachePolicy" +_NSFLEC = "NoSuchFieldLevelEncryptionConfig" +_NSO = "NoSuchOrigin" +_NSORP = "NoSuchOriginRequestPolicy" +_NSRLC = "NoSuchRealtimeLogConfig" +_NSRHP = "NoSuchResponseHeadersPolicy" +_RLCOM = "RealtimeLogConfigOwnerMismatch" +_TMCB = "TooManyCacheBehaviors" +_TMC = "TooManyCertificates" +_TMCNIWL = "TooManyCookieNamesInWhiteList" +_TMD = "TooManyDistributions" +_TMDATCP = "TooManyDistributionsAssociatedToCachePolicy" +_TMDATFLEC = "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" +_TMDATKG = "TooManyDistributionsAssociatedToKeyGroup" +_TMDATOAC = "TooManyDistributionsAssociatedToOriginAccessControl" +_TMDATORP = "TooManyDistributionsAssociatedToOriginRequestPolicy" +_TMDATRHP = "TooManyDistributionsAssociatedToResponseHeadersPolicy" +_TMDWFA = "TooManyDistributionsWithFunctionAssociations" +_TMDWLA = "TooManyDistributionsWithLambdaAssociations" +_TMDWSFARN = "TooManyDistributionsWithSingleFunctionARN" +_TMFA = "TooManyFunctionAssociations" +_TMHIFV = "TooManyHeadersInForwardedValues" +_TMKGATD = "TooManyKeyGroupsAssociatedToDistribution" +_TMLFA = "TooManyLambdaFunctionAssociations" +_TMOCH = "TooManyOriginCustomHeaders" +_TMOGPD = "TooManyOriginGroupsPerDistribution" +_TMO = "TooManyOrigins" +_TMQSP = "TooManyQueryStringParameters" +_TMTS = "TooManyTrustedSigners" +_TKGDNE = "TrustedKeyGroupDoesNotExist" +_TSDNE = "TrustedSignerDoesNotExist" +_CD = "CopyDistribution" +_TK = "TagKey" +_TV = "TagValue" +_Ta = "Tag" +_Va = "Value" +_TL = "TagList" +_Tag = "Tags" +_CAILI = "CreateAnycastIpListInput" +_cCAILR = "com.amazonaws.cloudfront#CreateAnycastIpListRequest" +_CAILO = "CreateAnycastIpListOutput" +_cCAILRo = "com.amazonaws.cloudfront#CreateAnycastIpListResult" +_EAE = "EntityAlreadyExists" +_ITn = "InvalidTagging" +_UO = "UnsupportedOperation" +_CAIL = "CreateAnycastIpList" +_CCPI = "CreateCachePolicyInput" +_cCCPR = "com.amazonaws.cloudfront#CreateCachePolicyRequest" +_CCPO = "CreateCachePolicyOutput" +_cCCPRo = "com.amazonaws.cloudfront#CreateCachePolicyResult" +_TMCP = "TooManyCachePolicies" +_TMCICP = "TooManyCookiesInCachePolicy" +_TMHICP = "TooManyHeadersInCachePolicy" +_TMQSICP = "TooManyQueryStringsInCachePolicy" +_CCP = "CreateCachePolicy" +_CFOAIAE = "CloudFrontOriginAccessIdentityAlreadyExists" +_CFOAIC = "CloudFrontOriginAccessIdentityConfig" +_CCFOAII = "CreateCloudFrontOriginAccessIdentityInput" +_cCCFOAIR = "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityRequest" +_CFOAI = "CloudFrontOriginAccessIdentity" +_SCUI = "S3CanonicalUserId" +_CCFOAIO = "CreateCloudFrontOriginAccessIdentityOutput" +_cCCFOAIRo = "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityResult" +_TMCFOAI = "TooManyCloudFrontOriginAccessIdentities" +_CCFOAI = "CreateCloudFrontOriginAccessIdentity" +_FB = "FunctionBlob" +_KVSARN = "KeyValueStoreARN" +_KVSA = "KeyValueStoreAssociation" +_KVSAL = "KeyValueStoreAssociationList" +_KVSAe = "KeyValueStoreAssociations" +_FR = "FunctionRuntime" +_cj = "cloudfront_js_1_0" +_cj_ = "cloudfront-js-1.0" +_cj__ = "cloudfront_js_2_0" +_cj___ = "cloudfront-js-2.0" +_FCu = "FunctionConfig" +_Ru = "Runtime" +_FN = "FunctionName" +_CCFI = "CreateConnectionFunctionInput" +_cCCFR = "com.amazonaws.cloudfront#CreateConnectionFunctionRequest" +_CFC = "ConnectionFunctionConfig" +_CFCo = "ConnectionFunctionCode" +_FS = "FunctionStage" +_DEVELOPMENT = "DEVELOPMENT" +_LIVE = "LIVE" +_CFS = "ConnectionFunctionSummary" +_CFAo = "ConnectionFunctionArn" +_Stag = "Stage" +_CTr = "CreatedTime" +_CCFO = "CreateConnectionFunctionOutput" +_cCCFRo = "com.amazonaws.cloudfront#CreateConnectionFunctionResult" +_ESLE = "EntitySizeLimitExceeded" +_CCF = "CreateConnectionFunction" +_CCGI = "CreateConnectionGroupInput" +_cCCGR = "com.amazonaws.cloudfront#CreateConnectionGroupRequest" +_IE = "Ipv6Enabled" +_CG = "ConnectionGroup" +_RE = "RoutingEndpoint" +_ID = "IsDefault" +_CCGO = "CreateConnectionGroupOutput" +_cCCGRo = "com.amazonaws.cloudfront#CreateConnectionGroupResult" +_CCG = "CreateConnectionGroup" +_CDPAE = "ContinuousDeploymentPolicyAlreadyExists" +_SDDNL = "StagingDistributionDnsNameList" +_DNn = "DnsName" +_SDDN = "StagingDistributionDnsNames" +_CDSHC = "ContinuousDeploymentSingleHeaderConfig" +_SSCe = "SessionStickinessConfig" +_ITTL = "IdleTTL" +_MTTLax = "MaximumTTL" +_f = "float" +_CDSWC = "ContinuousDeploymentSingleWeightConfig" +_We = "Weight" +_CDPT = "ContinuousDeploymentPolicyType" +_SW = "SingleWeight" +_SH = "SingleHeader" +_TCr = "TrafficConfig" +_SWC = "SingleWeightConfig" +_SHC = "SingleHeaderConfig" +_CDPC = "ContinuousDeploymentPolicyConfig" +_CCDPI = "CreateContinuousDeploymentPolicyInput" +_cCCDPR = "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyRequest" +_CDP = "ContinuousDeploymentPolicy" +_CCDPO = "CreateContinuousDeploymentPolicyOutput" +_cCCDPRo = "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyResult" +_SDIU = "StagingDistributionInUse" +_TMCDP = "TooManyContinuousDeploymentPolicies" +_CCDP = "CreateContinuousDeploymentPolicy" +_CDPIU = "ContinuousDeploymentPolicyInUse" +_CDIr = "CreateDistributionInput" +_cCDRom = "com.amazonaws.cloudfront#CreateDistributionRequest" +_CDOr = "CreateDistributionOutput" +_cCDRoma = "com.amazonaws.cloudfront#CreateDistributionResult" +_IOACl = "IllegalOriginAccessConfiguration" +_IDNFOAC = "InvalidDomainNameForOriginAccessControl" +_NSCDP = "NoSuchContinuousDeploymentPolicy" +_CDr = "CreateDistribution" +_GRC = "GeoRestrictionCustomization" +_Loc = "Locations" +_CAT = "CustomizationActionType" +_ov = "override" +_dis = "disable" +_WAC = "WebAclCustomization" +_Ac = "Action" +_Cu = "Customizations" +_WA = "WebAcl" +_GRe = "GeoRestrictions" +_DI = "DomainItem" +_Do = "Domain" +_DL = "DomainList" +_VTH = "ValidationTokenHost" +_CF = "CloudFront" +_SHe = "SelfHosted" +_sh = "self-hosted" +_MCR = "ManagedCertificateRequest" +_PDN = "PrimaryDomainName" +_Par = "Parameter" +_Para = "Parameters" +_CDTI = "CreateDistributionTenantInput" +_cCDTR = "com.amazonaws.cloudfront#CreateDistributionTenantRequest" +_DIi = "DistributionId" +_Dom = "Domains" +_CGI = "ConnectionGroupId" +_DSo = "DomainStatus" +_Act = "Active" +_act = "active" +_In = "Inactive" +_in = "inactive" +_DR = "DomainResult" +_DRL = "DomainResultList" +_DT = "DistributionTenant" +_CDTO = "CreateDistributionTenantOutput" +_cCDTRo = "com.amazonaws.cloudfront#CreateDistributionTenantResult" +_IAn = "InvalidAssociation" +_CDT = "CreateDistributionTenant" +_DCWT = "DistributionConfigWithTags" +_CDWTI = "CreateDistributionWithTagsInput" +_cCDWTR = "com.amazonaws.cloudfront#CreateDistributionWithTagsRequest" +_CDWTO = "CreateDistributionWithTagsOutput" +_cCDWTRo = "com.amazonaws.cloudfront#CreateDistributionWithTagsResult" +_CDWT = "CreateDistributionWithTags" +_Fo = "Format" +_URLE = "URLEncoded" +_CTP = "ContentTypeProfile" +_PI = "ProfileId" +_CTon = "ContentType" +_CTPL = "ContentTypeProfileList" +_CTPo = "ContentTypeProfiles" +_CTPC = "ContentTypeProfileConfig" +_FWCTIU = "ForwardWhenContentTypeIsUnknown" +_QAP = "QueryArgProfile" +_QA = "QueryArg" +_QAPL = "QueryArgProfileList" +_QAPu = "QueryArgProfiles" +_QAPC = "QueryArgProfileConfig" +_FWQAPIU = "ForwardWhenQueryArgProfileIsUnknown" +_FLEC = "FieldLevelEncryptionConfig" +_CFLECI = "CreateFieldLevelEncryptionConfigInput" +_cCFLECR = "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigRequest" +_FLE = "FieldLevelEncryption" +_CFLECO = "CreateFieldLevelEncryptionConfigOutput" +_cCFLECRo = "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigResult" +_FLECAE = "FieldLevelEncryptionConfigAlreadyExists" +_NSFLEP = "NoSuchFieldLevelEncryptionProfile" +_QAPE = "QueryArgProfileEmpty" +_TMFLEC = "TooManyFieldLevelEncryptionConfigs" +_TMFLECTP = "TooManyFieldLevelEncryptionContentTypeProfiles" +_TMFLEQAP = "TooManyFieldLevelEncryptionQueryArgProfiles" +_CFLEC = "CreateFieldLevelEncryptionConfig" +_FPL = "FieldPatternList" +_FPi = "FieldPattern" +_FPie = "FieldPatterns" +_EE = "EncryptionEntity" +_PKI = "PublicKeyId" +_PIr = "ProviderId" +_EEL = "EncryptionEntityList" +_EEn = "EncryptionEntities" +_FLEPC = "FieldLevelEncryptionProfileConfig" +_CFLEPI = "CreateFieldLevelEncryptionProfileInput" +_cCFLEPR = "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileRequest" +_FLEP = "FieldLevelEncryptionProfile" +_CFLEPO = "CreateFieldLevelEncryptionProfileOutput" +_cCFLEPRo = "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileResult" +_FLEPAE = "FieldLevelEncryptionProfileAlreadyExists" +_FLEPSE = "FieldLevelEncryptionProfileSizeExceeded" +_NSPK = "NoSuchPublicKey" +_TMFLEEE = "TooManyFieldLevelEncryptionEncryptionEntities" +_TMFLEFP = "TooManyFieldLevelEncryptionFieldPatterns" +_TMFLEP = "TooManyFieldLevelEncryptionProfiles" +_CFLEP = "CreateFieldLevelEncryptionProfile" +_CFI = "CreateFunctionInput" +_cCFR = "com.amazonaws.cloudfront#CreateFunctionRequest" +_FCun = "FunctionCode" +_FM = "FunctionMetadata" +_FSu = "FunctionSummary" +_CFO = "CreateFunctionOutput" +_cCFRo = "com.amazonaws.cloudfront#CreateFunctionResult" +_FAE = "FunctionAlreadyExists" +_FSLE = "FunctionSizeLimitExceeded" +_TMF = "TooManyFunctions" +_CFr = "CreateFunction" +_PL = "PathList" +_Pat = "Path" +_Path = "Paths" +_IBn = "InvalidationBatch" +_CII = "CreateInvalidationInput" +_cCIR = "com.amazonaws.cloudfront#CreateInvalidationRequest" +_Inv = "Invalidation" +_CTre = "CreateTime" +_CIO = "CreateInvalidationOutput" +_cCIRo = "com.amazonaws.cloudfront#CreateInvalidationResult" +_TMIIP = "TooManyInvalidationsInProgress" +_CI = "CreateInvalidation" +_CIFDTI = "CreateInvalidationForDistributionTenantInput" +_cCIFDTR = "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantRequest" +_CIFDTO = "CreateInvalidationForDistributionTenantOutput" +_cCIFDTRo = "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantResult" +_CIFDT = "CreateInvalidationForDistributionTenant" +_PKIL = "PublicKeyIdList" +_PK = "PublicKey" +_KGC = "KeyGroupConfig" +_CKGI = "CreateKeyGroupInput" +_cCKGR = "com.amazonaws.cloudfront#CreateKeyGroupRequest" +_CKGO = "CreateKeyGroupOutput" +_cCKGRo = "com.amazonaws.cloudfront#CreateKeyGroupResult" +_KGAE = "KeyGroupAlreadyExists" +_TMKG = "TooManyKeyGroups" +_TMPKIKG = "TooManyPublicKeysInKeyGroup" +_CKG = "CreateKeyGroup" +_KVSC = "KeyValueStoreComment" +_IST = "ImportSourceType" +_S_ = "S3" +_ISm = "ImportSource" +_ST = "SourceType" +_SARN = "SourceARN" +_KVSN = "KeyValueStoreName" +_CKVSI = "CreateKeyValueStoreInput" +_cCKVSR = "com.amazonaws.cloudfront#CreateKeyValueStoreRequest" +_KVS = "KeyValueStore" +_CKVSO = "CreateKeyValueStoreOutput" +_cCKVSRo = "com.amazonaws.cloudfront#CreateKeyValueStoreResult" +_CKVS = "CreateKeyValueStore" +_RMSS = "RealtimeMetricsSubscriptionStatus" +_RMSC = "RealtimeMetricsSubscriptionConfig" +_MS = "MonitoringSubscription" +_CMSI = "CreateMonitoringSubscriptionInput" +_cCMSR = "com.amazonaws.cloudfront#CreateMonitoringSubscriptionRequest" +_CMSO = "CreateMonitoringSubscriptionOutput" +_cCMSRo = "com.amazonaws.cloudfront#CreateMonitoringSubscriptionResult" +_MSAE = "MonitoringSubscriptionAlreadyExists" +_CMS = "CreateMonitoringSubscription" +_OACOT = "OriginAccessControlOriginTypes" +_s_ = "s3" +_me = "mediastore" +_med = "mediapackagev2" +_la = "lambda" +_OACSB = "OriginAccessControlSigningBehaviors" +_ne = "never" +_alw = "always" +_no = "no_override" +_no_ = "no-override" +_aaa = "always_amz_auth" +_aaa_ = "always-amz-auth" +_OACSP = "OriginAccessControlSigningProtocols" +_sig = "sigv4" +_sigv = "sigv4a" +_OACC = "OriginAccessControlConfig" +_Des = "Description" +_SPi = "SigningProtocol" +_SB = "SigningBehavior" +_OACOTr = "OriginAccessControlOriginType" +_COACI = "CreateOriginAccessControlInput" +_cCOACR = "com.amazonaws.cloudfront#CreateOriginAccessControlRequest" +_OAC = "OriginAccessControl" +_COACO = "CreateOriginAccessControlOutput" +_cCOACRo = "com.amazonaws.cloudfront#CreateOriginAccessControlResult" +_OACAE = "OriginAccessControlAlreadyExists" +_TMOAC = "TooManyOriginAccessControls" +_COAC = "CreateOriginAccessControl" +_ORPCB = "OriginRequestPolicyCookieBehavior" +_ORPCC = "OriginRequestPolicyCookiesConfig" +_ORPHB = "OriginRequestPolicyHeaderBehavior" +_aV = "allViewer" +_aVAWCF = "allViewerAndWhitelistCloudFront" +_ORPHC = "OriginRequestPolicyHeadersConfig" +_ORPQSB = "OriginRequestPolicyQueryStringBehavior" +_ORPQSC = "OriginRequestPolicyQueryStringsConfig" +_ORPC = "OriginRequestPolicyConfig" +_CORPI = "CreateOriginRequestPolicyInput" +_cCORPR = "com.amazonaws.cloudfront#CreateOriginRequestPolicyRequest" +_ORP = "OriginRequestPolicy" +_CORPO = "CreateOriginRequestPolicyOutput" +_cCORPRo = "com.amazonaws.cloudfront#CreateOriginRequestPolicyResult" +_ORPAE = "OriginRequestPolicyAlreadyExists" +_TMCIORP = "TooManyCookiesInOriginRequestPolicy" +_TMHIORP = "TooManyHeadersInOriginRequestPolicy" +_TMORP = "TooManyOriginRequestPolicies" +_TMQSIORP = "TooManyQueryStringsInOriginRequestPolicy" +_CORP = "CreateOriginRequestPolicy" +_PKC = "PublicKeyConfig" +_EK = "EncodedKey" +_CPKI = "CreatePublicKeyInput" +_cCPKR = "com.amazonaws.cloudfront#CreatePublicKeyRequest" +_CPKO = "CreatePublicKeyOutput" +_cCPKRo = "com.amazonaws.cloudfront#CreatePublicKeyResult" +_PKAE = "PublicKeyAlreadyExists" +_TMPK = "TooManyPublicKeys" +_CPK = "CreatePublicKey" +_KSC = "KinesisStreamConfig" +_RARN = "RoleARN" +_SARNt = "StreamARN" +_EP = "EndPoint" +_STt = "StreamType" +_EPL = "EndPointList" +_FL = "FieldList" +_Fi = "Field" +_CRLCI = "CreateRealtimeLogConfigInput" +_cCRLCR = "com.amazonaws.cloudfront#CreateRealtimeLogConfigRequest" +_EPn = "EndPoints" +_Fie = "Fields" +_SR = "SamplingRate" +_RLC = "RealtimeLogConfig" +_CRLCO = "CreateRealtimeLogConfigOutput" +_cCRLCRo = "com.amazonaws.cloudfront#CreateRealtimeLogConfigResult" +_RLCAE = "RealtimeLogConfigAlreadyExists" +_TMRLC = "TooManyRealtimeLogConfigs" +_CRLC = "CreateRealtimeLogConfig" +_RHPACAH = "ResponseHeadersPolicyAccessControlAllowHeaders" +_RHPACAM = "ResponseHeadersPolicyAccessControlAllowMethods" +_RHPACAO = "ResponseHeadersPolicyAccessControlAllowOrigins" +_RHPACEH = "ResponseHeadersPolicyAccessControlExposeHeaders" +_RHPCC = "ResponseHeadersPolicyCorsConfig" +_ACAO = "AccessControlAllowOrigins" +_ACAH = "AccessControlAllowHeaders" +_ACAM = "AccessControlAllowMethods" +_ACAC = "AccessControlAllowCredentials" +_ACEH = "AccessControlExposeHeaders" +_ACMAS = "AccessControlMaxAgeSec" +_OO = "OriginOverride" +_RHPCH = "ResponseHeadersPolicyCustomHeader" +_Ov = "Override" +_RHPCHL = "ResponseHeadersPolicyCustomHeaderList" +_RHPCHC = "ResponseHeadersPolicyCustomHeadersConfig" +_RHPRH = "ResponseHeadersPolicyRemoveHeader" +_RHPRHL = "ResponseHeadersPolicyRemoveHeaderList" +_RHPRHC = "ResponseHeadersPolicyRemoveHeadersConfig" +_RHPCSP = "ResponseHeadersPolicyContentSecurityPolicy" +_CSP = "ContentSecurityPolicy" +_RHPCTO = "ResponseHeadersPolicyContentTypeOptions" +_FOL = "FrameOptionsList" +_DENY = "DENY" +_SAMEORIGIN = "SAMEORIGIN" +_RHPFO = "ResponseHeadersPolicyFrameOptions" +_FO = "FrameOption" +_RPL = "ReferrerPolicyList" +_nr = "no_referrer" +_nr_ = "no-referrer" +_nrwd = "no_referrer_when_downgrade" +_nrwd_ = "no-referrer-when-downgrade" +_ori = "origin" +_owco = "origin_when_cross_origin" +_owco_ = "origin-when-cross-origin" +_so__ = "same_origin" +_so___ = "same-origin" +_so____ = "strict_origin" +_so_____ = "strict-origin" +_sowco = "strict_origin_when_cross_origin" +_sowco_ = "strict-origin-when-cross-origin" +_uu = "unsafe_url" +_uu_ = "unsafe-url" +_RHPRP = "ResponseHeadersPolicyReferrerPolicy" +_RP = "ReferrerPolicy" +_RHPSTS = "ResponseHeadersPolicyStrictTransportSecurity" +_ISn = "IncludeSubdomains" +_Prel = "Preload" +_RHPXSSP = "ResponseHeadersPolicyXSSProtection" +_Pro = "Protection" +_MBo = "ModeBlock" +_RU = "ReportUri" +_RHPSHC = "ResponseHeadersPolicySecurityHeadersConfig" +_XSSP = "XSSProtection" +_FOr = "FrameOptions" +_CTO = "ContentTypeOptions" +_STS = "StrictTransportSecurity" +_RHPSTHC = "ResponseHeadersPolicyServerTimingHeadersConfig" +_RHPC = "ResponseHeadersPolicyConfig" +_CCo = "CorsConfig" +_SHCe = "SecurityHeadersConfig" +_STHC = "ServerTimingHeadersConfig" +_CHC = "CustomHeadersConfig" +_RHC = "RemoveHeadersConfig" +_CRHPI = "CreateResponseHeadersPolicyInput" +_cCRHPR = "com.amazonaws.cloudfront#CreateResponseHeadersPolicyRequest" +_RHP = "ResponseHeadersPolicy" +_CRHPO = "CreateResponseHeadersPolicyOutput" +_cCRHPRo = "com.amazonaws.cloudfront#CreateResponseHeadersPolicyResult" +_RHPAE = "ResponseHeadersPolicyAlreadyExists" +_TLCSPIRHP = "TooLongCSPInResponseHeadersPolicy" +_TMCHIRHP = "TooManyCustomHeadersInResponseHeadersPolicy" +_TMRHIRHP = "TooManyRemoveHeadersInResponseHeadersPolicy" +_TMRHP = "TooManyResponseHeadersPolicies" +_CRHP = "CreateResponseHeadersPolicy" +_SLC = "StreamingLoggingConfig" +_SO = "S3Origin" +_SDC = "StreamingDistributionConfig" +_CSDI = "CreateStreamingDistributionInput" +_cCSDR = "com.amazonaws.cloudfront#CreateStreamingDistributionRequest" +_SD = "StreamingDistribution" +_CSDO = "CreateStreamingDistributionOutput" +_cCSDRo = "com.amazonaws.cloudfront#CreateStreamingDistributionResult" +_SDAE = "StreamingDistributionAlreadyExists" +_TMSDCNAME = "TooManyStreamingDistributionCNAMEs" +_TMSD = "TooManyStreamingDistributions" +_CSD = "CreateStreamingDistribution" +_SDCWT = "StreamingDistributionConfigWithTags" +_CSDWTI = "CreateStreamingDistributionWithTagsInput" +_cCSDWTR = "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsRequest" +_CSDWTO = "CreateStreamingDistributionWithTagsOutput" +_cCSDWTRo = "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsResult" +_CSDWT = "CreateStreamingDistributionWithTags" +_CTSI = "CreateTrustStoreInput" +_cCTSR = "com.amazonaws.cloudfront#CreateTrustStoreRequest" +_UCCOCSPE = "UseClientCertificateOCSPEndpoint" +_TSS = "TrustStoreStatus" +_Pe = "Pending" +_pe = "pending" +_Fa = "Failed" +_fai = "failed" +_TSr = "TrustStore" +_NOCC = "NumberOfCaCertificates" +_Rea = "Reason" +_CTSO = "CreateTrustStoreOutput" +_cCTSRo = "com.amazonaws.cloudfront#CreateTrustStoreResult" +_CTS = "CreateTrustStore" +_VIAT = "VpcIpAddressType" +_VOEC = "VpcOriginEndpointConfig" +_CVOI = "CreateVpcOriginInput" +_cCVOR = "com.amazonaws.cloudfront#CreateVpcOriginRequest" +_VO = "VpcOrigin" +_AIc = "AccountId" +_CVOO = "CreateVpcOriginOutput" +_cCVORo = "com.amazonaws.cloudfront#CreateVpcOriginResult" +_CVO = "CreateVpcOrigin" +_DAILI = "DeleteAnycastIpListInput" +_cDAILR = "com.amazonaws.cloudfront#DeleteAnycastIpListRequest" +_DAILO = "DeleteAnycastIpListOutput" +_IDl = "IllegalDelete" +_DAIL = "DeleteAnycastIpList" +_DCPI = "DeleteCachePolicyInput" +_cDCPR = "com.amazonaws.cloudfront#DeleteCachePolicyRequest" +_DCPO = "DeleteCachePolicyOutput" +_DCP = "DeleteCachePolicy" +_CFOAIIU = "CloudFrontOriginAccessIdentityInUse" +_DCFOAII = "DeleteCloudFrontOriginAccessIdentityInput" +_cDCFOAIR = "com.amazonaws.cloudfront#DeleteCloudFrontOriginAccessIdentityRequest" +_DCFOAIO = "DeleteCloudFrontOriginAccessIdentityOutput" +_NSCFOAI = "NoSuchCloudFrontOriginAccessIdentity" +_DCFOAI = "DeleteCloudFrontOriginAccessIdentity" +_DCFI = "DeleteConnectionFunctionInput" +_cDCFR = "com.amazonaws.cloudfront#DeleteConnectionFunctionRequest" +_DCFO = "DeleteConnectionFunctionOutput" +_DCF = "DeleteConnectionFunction" +_DCGI = "DeleteConnectionGroupInput" +_cDCGR = "com.amazonaws.cloudfront#DeleteConnectionGroupRequest" +_DCGO = "DeleteConnectionGroupOutput" +_RND = "ResourceNotDisabled" +_DCG = "DeleteConnectionGroup" +_DCDPI = "DeleteContinuousDeploymentPolicyInput" +_cDCDPR = "com.amazonaws.cloudfront#DeleteContinuousDeploymentPolicyRequest" +_DCDPO = "DeleteContinuousDeploymentPolicyOutput" +_DCDP = "DeleteContinuousDeploymentPolicy" +_DDI = "DeleteDistributionInput" +_cDDR = "com.amazonaws.cloudfront#DeleteDistributionRequest" +_DDO = "DeleteDistributionOutput" +_DND = "DistributionNotDisabled" +_RIU = "ResourceInUse" +_DD = "DeleteDistribution" +_DDTI = "DeleteDistributionTenantInput" +_cDDTR = "com.amazonaws.cloudfront#DeleteDistributionTenantRequest" +_DDTO = "DeleteDistributionTenantOutput" +_DDT = "DeleteDistributionTenant" +_DFLECI = "DeleteFieldLevelEncryptionConfigInput" +_cDFLECR = "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionConfigRequest" +_DFLECO = "DeleteFieldLevelEncryptionConfigOutput" +_FLECIU = "FieldLevelEncryptionConfigInUse" +_DFLEC = "DeleteFieldLevelEncryptionConfig" +_DFLEPI = "DeleteFieldLevelEncryptionProfileInput" +_cDFLEPR = "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionProfileRequest" +_DFLEPO = "DeleteFieldLevelEncryptionProfileOutput" +_FLEPIU = "FieldLevelEncryptionProfileInUse" +_DFLEP = "DeleteFieldLevelEncryptionProfile" +_DFI = "DeleteFunctionInput" +_cDFR = "com.amazonaws.cloudfront#DeleteFunctionRequest" +_DFO = "DeleteFunctionOutput" +_FIU = "FunctionInUse" +_NSFE = "NoSuchFunctionExists" +_DF = "DeleteFunction" +_DKGI = "DeleteKeyGroupInput" +_cDKGR = "com.amazonaws.cloudfront#DeleteKeyGroupRequest" +_DKGO = "DeleteKeyGroupOutput" +_NSR = "NoSuchResource" +_DKG = "DeleteKeyGroup" +_DKVSI = "DeleteKeyValueStoreInput" +_cDKVSR = "com.amazonaws.cloudfront#DeleteKeyValueStoreRequest" +_DKVSO = "DeleteKeyValueStoreOutput" +_DKVS = "DeleteKeyValueStore" +_DMSI = "DeleteMonitoringSubscriptionInput" +_cDMSR = "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionRequest" +_DMSO = "DeleteMonitoringSubscriptionOutput" +_cDMSRo = "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionResult" +_NSMS = "NoSuchMonitoringSubscription" +_DMS = "DeleteMonitoringSubscription" +_DOACI = "DeleteOriginAccessControlInput" +_cDOACR = "com.amazonaws.cloudfront#DeleteOriginAccessControlRequest" +_DOACO = "DeleteOriginAccessControlOutput" +_NSOAC = "NoSuchOriginAccessControl" +_OACIU = "OriginAccessControlInUse" +_DOAC = "DeleteOriginAccessControl" +_DORPI = "DeleteOriginRequestPolicyInput" +_cDORPR = "com.amazonaws.cloudfront#DeleteOriginRequestPolicyRequest" +_DORPO = "DeleteOriginRequestPolicyOutput" +_ORPIU = "OriginRequestPolicyInUse" +_DORP = "DeleteOriginRequestPolicy" +_DPKI = "DeletePublicKeyInput" +_cDPKR = "com.amazonaws.cloudfront#DeletePublicKeyRequest" +_DPKO = "DeletePublicKeyOutput" +_PKIU = "PublicKeyInUse" +_DPK = "DeletePublicKey" +_DRLCI = "DeleteRealtimeLogConfigInput" +_cDRLCR = "com.amazonaws.cloudfront#DeleteRealtimeLogConfigRequest" +_DRLCO = "DeleteRealtimeLogConfigOutput" +_RLCIU = "RealtimeLogConfigInUse" +_DRLC = "DeleteRealtimeLogConfig" +_DRPI = "DeleteResourcePolicyInput" +_cDRPR = "com.amazonaws.cloudfront#DeleteResourcePolicyRequest" +_RA = "ResourceArn" +_DRPO = "DeleteResourcePolicyOutput" +_DRP = "DeleteResourcePolicy" +_DRHPI = "DeleteResponseHeadersPolicyInput" +_cDRHPR = "com.amazonaws.cloudfront#DeleteResponseHeadersPolicyRequest" +_DRHPO = "DeleteResponseHeadersPolicyOutput" +_RHPIU = "ResponseHeadersPolicyInUse" +_DRHP = "DeleteResponseHeadersPolicy" +_DSDI = "DeleteStreamingDistributionInput" +_cDSDR = "com.amazonaws.cloudfront#DeleteStreamingDistributionRequest" +_DSDO = "DeleteStreamingDistributionOutput" +_NSSD = "NoSuchStreamingDistribution" +_SDND = "StreamingDistributionNotDisabled" +_DSD = "DeleteStreamingDistribution" +_DTSI = "DeleteTrustStoreInput" +_cDTSR = "com.amazonaws.cloudfront#DeleteTrustStoreRequest" +_DTSO = "DeleteTrustStoreOutput" +_DTS = "DeleteTrustStore" +_DVOI = "DeleteVpcOriginInput" +_cDVOR = "com.amazonaws.cloudfront#DeleteVpcOriginRequest" +_DVOO = "DeleteVpcOriginOutput" +_cDVORo = "com.amazonaws.cloudfront#DeleteVpcOriginResult" +_DVO = "DeleteVpcOrigin" +_DCFIe = "DescribeConnectionFunctionInput" +_cDCFRo = "com.amazonaws.cloudfront#DescribeConnectionFunctionRequest" +_Ide = "Identifier" +_DCFOe = "DescribeConnectionFunctionOutput" +_cDCFRom = "com.amazonaws.cloudfront#DescribeConnectionFunctionResult" +_DCFe = "DescribeConnectionFunction" +_DFIe = "DescribeFunctionInput" +_cDFRo = "com.amazonaws.cloudfront#DescribeFunctionRequest" +_DFOe = "DescribeFunctionOutput" +_cDFRom = "com.amazonaws.cloudfront#DescribeFunctionResult" +_DFe = "DescribeFunction" +_DKVSIe = "DescribeKeyValueStoreInput" +_cDKVSRo = "com.amazonaws.cloudfront#DescribeKeyValueStoreRequest" +_DKVSOe = "DescribeKeyValueStoreOutput" +_cDKVSRom = "com.amazonaws.cloudfront#DescribeKeyValueStoreResult" +_DKVSe = "DescribeKeyValueStore" +_DDTWACLI = "DisassociateDistributionTenantWebACLInput" +_cDDTWACLR = "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLRequest" +_DDTWACLO = "DisassociateDistributionTenantWebACLOutput" +_cDDTWACLRo = "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLResult" +_DDTWACL = "DisassociateDistributionTenantWebACL" +_DDWACLI = "DisassociateDistributionWebACLInput" +_cDDWACLR = "com.amazonaws.cloudfront#DisassociateDistributionWebACLRequest" +_DDWACLO = "DisassociateDistributionWebACLOutput" +_cDDWACLRo = "com.amazonaws.cloudfront#DisassociateDistributionWebACLResult" +_DDWACL = "DisassociateDistributionWebACL" +_GAILI = "GetAnycastIpListInput" +_cGAILR = "com.amazonaws.cloudfront#GetAnycastIpListRequest" +_GAILO = "GetAnycastIpListOutput" +_cGAILRo = "com.amazonaws.cloudfront#GetAnycastIpListResult" +_GAIL = "GetAnycastIpList" +_GCPI = "GetCachePolicyInput" +_cGCPR = "com.amazonaws.cloudfront#GetCachePolicyRequest" +_GCPO = "GetCachePolicyOutput" +_cGCPRo = "com.amazonaws.cloudfront#GetCachePolicyResult" +_GCP = "GetCachePolicy" +_GCPCI = "GetCachePolicyConfigInput" +_cGCPCR = "com.amazonaws.cloudfront#GetCachePolicyConfigRequest" +_GCPCO = "GetCachePolicyConfigOutput" +_cGCPCRo = "com.amazonaws.cloudfront#GetCachePolicyConfigResult" +_GCPC = "GetCachePolicyConfig" +_GCFOAII = "GetCloudFrontOriginAccessIdentityInput" +_cGCFOAIR = "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityRequest" +_GCFOAIO = "GetCloudFrontOriginAccessIdentityOutput" +_cGCFOAIRo = "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityResult" +_GCFOAI = "GetCloudFrontOriginAccessIdentity" +_GCFOAICI = "GetCloudFrontOriginAccessIdentityConfigInput" +_cGCFOAICR = "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigRequest" +_GCFOAICO = "GetCloudFrontOriginAccessIdentityConfigOutput" +_cGCFOAICRo = "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigResult" +_GCFOAIC = "GetCloudFrontOriginAccessIdentityConfig" +_GCFI = "GetConnectionFunctionInput" +_cGCFR = "com.amazonaws.cloudfront#GetConnectionFunctionRequest" +_GCFO = "GetConnectionFunctionOutput" +_cGCFRo = "com.amazonaws.cloudfront#GetConnectionFunctionResult" +_CT_ = "Content-Type" +_GCF = "GetConnectionFunction" +_GCGI = "GetConnectionGroupInput" +_cGCGR = "com.amazonaws.cloudfront#GetConnectionGroupRequest" +_GCGO = "GetConnectionGroupOutput" +_cGCGRo = "com.amazonaws.cloudfront#GetConnectionGroupResult" +_GCG = "GetConnectionGroup" +_GCGBREI = "GetConnectionGroupByRoutingEndpointInput" +_cGCGBRER = "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointRequest" +_GCGBREO = "GetConnectionGroupByRoutingEndpointOutput" +_cGCGBRERo = "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointResult" +_GCGBRE = "GetConnectionGroupByRoutingEndpoint" +_GCDPI = "GetContinuousDeploymentPolicyInput" +_cGCDPR = "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyRequest" +_GCDPO = "GetContinuousDeploymentPolicyOutput" +_cGCDPRo = "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyResult" +_GCDP = "GetContinuousDeploymentPolicy" +_GCDPCI = "GetContinuousDeploymentPolicyConfigInput" +_cGCDPCR = "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigRequest" +_GCDPCO = "GetContinuousDeploymentPolicyConfigOutput" +_cGCDPCRo = "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigResult" +_GCDPC = "GetContinuousDeploymentPolicyConfig" +_GDI = "GetDistributionInput" +_cGDR = "com.amazonaws.cloudfront#GetDistributionRequest" +_GDO = "GetDistributionOutput" +_cGDRo = "com.amazonaws.cloudfront#GetDistributionResult" +_GD = "GetDistribution" +_GDCI = "GetDistributionConfigInput" +_cGDCR = "com.amazonaws.cloudfront#GetDistributionConfigRequest" +_GDCO = "GetDistributionConfigOutput" +_cGDCRo = "com.amazonaws.cloudfront#GetDistributionConfigResult" +_GDC = "GetDistributionConfig" +_GDTI = "GetDistributionTenantInput" +_cGDTR = "com.amazonaws.cloudfront#GetDistributionTenantRequest" +_GDTO = "GetDistributionTenantOutput" +_cGDTRo = "com.amazonaws.cloudfront#GetDistributionTenantResult" +_GDT = "GetDistributionTenant" +_GDTBDI = "GetDistributionTenantByDomainInput" +_cGDTBDR = "com.amazonaws.cloudfront#GetDistributionTenantByDomainRequest" +_do = "domain" +_GDTBDO = "GetDistributionTenantByDomainOutput" +_cGDTBDRo = "com.amazonaws.cloudfront#GetDistributionTenantByDomainResult" +_GDTBD = "GetDistributionTenantByDomain" +_GFLEI = "GetFieldLevelEncryptionInput" +_cGFLER = "com.amazonaws.cloudfront#GetFieldLevelEncryptionRequest" +_GFLEO = "GetFieldLevelEncryptionOutput" +_cGFLERo = "com.amazonaws.cloudfront#GetFieldLevelEncryptionResult" +_GFLE = "GetFieldLevelEncryption" +_GFLECI = "GetFieldLevelEncryptionConfigInput" +_cGFLECR = "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigRequest" +_GFLECO = "GetFieldLevelEncryptionConfigOutput" +_cGFLECRo = "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigResult" +_GFLEC = "GetFieldLevelEncryptionConfig" +_GFLEPI = "GetFieldLevelEncryptionProfileInput" +_cGFLEPR = "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileRequest" +_GFLEPO = "GetFieldLevelEncryptionProfileOutput" +_cGFLEPRo = "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileResult" +_GFLEP = "GetFieldLevelEncryptionProfile" +_GFLEPCI = "GetFieldLevelEncryptionProfileConfigInput" +_cGFLEPCR = "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigRequest" +_GFLEPCO = "GetFieldLevelEncryptionProfileConfigOutput" +_cGFLEPCRo = "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigResult" +_GFLEPC = "GetFieldLevelEncryptionProfileConfig" +_GFI = "GetFunctionInput" +_cGFR = "com.amazonaws.cloudfront#GetFunctionRequest" +_GFO = "GetFunctionOutput" +_cGFRo = "com.amazonaws.cloudfront#GetFunctionResult" +_GF = "GetFunction" +_GII = "GetInvalidationInput" +_cGIR = "com.amazonaws.cloudfront#GetInvalidationRequest" +_GIO = "GetInvalidationOutput" +_cGIRo = "com.amazonaws.cloudfront#GetInvalidationResult" +_NSI = "NoSuchInvalidation" +_GI = "GetInvalidation" +_GIFDTI = "GetInvalidationForDistributionTenantInput" +_cGIFDTR = "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantRequest" +_DTI = "DistributionTenantId" +_GIFDTO = "GetInvalidationForDistributionTenantOutput" +_cGIFDTRo = "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantResult" +_GIFDT = "GetInvalidationForDistributionTenant" +_GKGI = "GetKeyGroupInput" +_cGKGR = "com.amazonaws.cloudfront#GetKeyGroupRequest" +_GKGO = "GetKeyGroupOutput" +_cGKGRo = "com.amazonaws.cloudfront#GetKeyGroupResult" +_GKG = "GetKeyGroup" +_GKGCI = "GetKeyGroupConfigInput" +_cGKGCR = "com.amazonaws.cloudfront#GetKeyGroupConfigRequest" +_GKGCO = "GetKeyGroupConfigOutput" +_cGKGCRo = "com.amazonaws.cloudfront#GetKeyGroupConfigResult" +_GKGC = "GetKeyGroupConfig" +_GMCDI = "GetManagedCertificateDetailsInput" +_cGMCDR = "com.amazonaws.cloudfront#GetManagedCertificateDetailsRequest" +_MCS = "ManagedCertificateStatus" +_PVe = "PendingValidation" +_pv = "pending-validation" +_Is = "Issued" +_is = "issued" +_Ex = "Expired" +_ex = "expired" +_VTO = "ValidationTimedOut" +_vto = "validation-timed-out" +_Rev = "Revoked" +_re = "revoked" +_VTD = "ValidationTokenDetail" +_RTe = "RedirectTo" +_RF = "RedirectFrom" +_VTDL = "ValidationTokenDetailList" +_MCD = "ManagedCertificateDetails" +_CAe = "CertificateArn" +_CSe = "CertificateStatus" +_VTDa = "ValidationTokenDetails" +_GMCDO = "GetManagedCertificateDetailsOutput" +_cGMCDRo = "com.amazonaws.cloudfront#GetManagedCertificateDetailsResult" +_GMCD = "GetManagedCertificateDetails" +_GMSI = "GetMonitoringSubscriptionInput" +_cGMSR = "com.amazonaws.cloudfront#GetMonitoringSubscriptionRequest" +_GMSO = "GetMonitoringSubscriptionOutput" +_cGMSRo = "com.amazonaws.cloudfront#GetMonitoringSubscriptionResult" +_GMS = "GetMonitoringSubscription" +_GOACI = "GetOriginAccessControlInput" +_cGOACR = "com.amazonaws.cloudfront#GetOriginAccessControlRequest" +_GOACO = "GetOriginAccessControlOutput" +_cGOACRo = "com.amazonaws.cloudfront#GetOriginAccessControlResult" +_GOAC = "GetOriginAccessControl" +_GOACCI = "GetOriginAccessControlConfigInput" +_cGOACCR = "com.amazonaws.cloudfront#GetOriginAccessControlConfigRequest" +_GOACCO = "GetOriginAccessControlConfigOutput" +_cGOACCRo = "com.amazonaws.cloudfront#GetOriginAccessControlConfigResult" +_GOACC = "GetOriginAccessControlConfig" +_GORPI = "GetOriginRequestPolicyInput" +_cGORPR = "com.amazonaws.cloudfront#GetOriginRequestPolicyRequest" +_GORPO = "GetOriginRequestPolicyOutput" +_cGORPRo = "com.amazonaws.cloudfront#GetOriginRequestPolicyResult" +_GORP = "GetOriginRequestPolicy" +_GORPCI = "GetOriginRequestPolicyConfigInput" +_cGORPCR = "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigRequest" +_GORPCO = "GetOriginRequestPolicyConfigOutput" +_cGORPCRo = "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigResult" +_GORPC = "GetOriginRequestPolicyConfig" +_GPKI = "GetPublicKeyInput" +_cGPKR = "com.amazonaws.cloudfront#GetPublicKeyRequest" +_GPKO = "GetPublicKeyOutput" +_cGPKRo = "com.amazonaws.cloudfront#GetPublicKeyResult" +_GPK = "GetPublicKey" +_GPKCI = "GetPublicKeyConfigInput" +_cGPKCR = "com.amazonaws.cloudfront#GetPublicKeyConfigRequest" +_GPKCO = "GetPublicKeyConfigOutput" +_cGPKCRo = "com.amazonaws.cloudfront#GetPublicKeyConfigResult" +_GPKC = "GetPublicKeyConfig" +_GRLCI = "GetRealtimeLogConfigInput" +_cGRLCR = "com.amazonaws.cloudfront#GetRealtimeLogConfigRequest" +_GRLCO = "GetRealtimeLogConfigOutput" +_cGRLCRo = "com.amazonaws.cloudfront#GetRealtimeLogConfigResult" +_GRLC = "GetRealtimeLogConfig" +_GRPI = "GetResourcePolicyInput" +_cGRPR = "com.amazonaws.cloudfront#GetResourcePolicyRequest" +_GRPO = "GetResourcePolicyOutput" +_cGRPRo = "com.amazonaws.cloudfront#GetResourcePolicyResult" +_PDo = "PolicyDocument" +_GRP = "GetResourcePolicy" +_GRHPI = "GetResponseHeadersPolicyInput" +_cGRHPR = "com.amazonaws.cloudfront#GetResponseHeadersPolicyRequest" +_GRHPO = "GetResponseHeadersPolicyOutput" +_cGRHPRo = "com.amazonaws.cloudfront#GetResponseHeadersPolicyResult" +_GRHP = "GetResponseHeadersPolicy" +_GRHPCI = "GetResponseHeadersPolicyConfigInput" +_cGRHPCR = "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigRequest" +_GRHPCO = "GetResponseHeadersPolicyConfigOutput" +_cGRHPCRo = "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigResult" +_GRHPC = "GetResponseHeadersPolicyConfig" +_GSDI = "GetStreamingDistributionInput" +_cGSDR = "com.amazonaws.cloudfront#GetStreamingDistributionRequest" +_GSDO = "GetStreamingDistributionOutput" +_cGSDRo = "com.amazonaws.cloudfront#GetStreamingDistributionResult" +_GSD = "GetStreamingDistribution" +_GSDCI = "GetStreamingDistributionConfigInput" +_cGSDCR = "com.amazonaws.cloudfront#GetStreamingDistributionConfigRequest" +_GSDCO = "GetStreamingDistributionConfigOutput" +_cGSDCRo = "com.amazonaws.cloudfront#GetStreamingDistributionConfigResult" +_GSDC = "GetStreamingDistributionConfig" +_GTSI = "GetTrustStoreInput" +_cGTSR = "com.amazonaws.cloudfront#GetTrustStoreRequest" +_GTSO = "GetTrustStoreOutput" +_cGTSRo = "com.amazonaws.cloudfront#GetTrustStoreResult" +_GTS = "GetTrustStore" +_GVOI = "GetVpcOriginInput" +_cGVOR = "com.amazonaws.cloudfront#GetVpcOriginRequest" +_GVOO = "GetVpcOriginOutput" +_cGVORo = "com.amazonaws.cloudfront#GetVpcOriginResult" +_GVO = "GetVpcOrigin" +_LAILI = "ListAnycastIpListsInput" +_cLAILR = "com.amazonaws.cloudfront#ListAnycastIpListsRequest" +_LAILO = "ListAnycastIpListsOutput" +_cLAILRo = "com.amazonaws.cloudfront#ListAnycastIpListsResult" +_AILn = "AnycastIpLists" +_LAIL = "ListAnycastIpLists" +_LCPI = "ListCachePoliciesInput" +_cLCPR = "com.amazonaws.cloudfront#ListCachePoliciesRequest" +_LCPO = "ListCachePoliciesOutput" +_cLCPRo = "com.amazonaws.cloudfront#ListCachePoliciesResult" +_LCP = "ListCachePolicies" +_LCFOAII = "ListCloudFrontOriginAccessIdentitiesInput" +_cLCFOAIR = "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesRequest" +_CFOAIS = "CloudFrontOriginAccessIdentitySummary" +_CFOAISL = "CloudFrontOriginAccessIdentitySummaryList" +_CFOAIL = "CloudFrontOriginAccessIdentityList" +_LCFOAIO = "ListCloudFrontOriginAccessIdentitiesOutput" +_cLCFOAIRo = "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesResult" +_LCFOAI = "ListCloudFrontOriginAccessIdentities" +_dIS = "distributionIdString" +_lCAMII = "listConflictingAliasesMaxItemsInteger" +_LCAI = "ListConflictingAliasesInput" +_cLCAR = "com.amazonaws.cloudfront#ListConflictingAliasesRequest" +_CAo = "ConflictingAlias" +_CAon = "ConflictingAliases" +_CAL = "ConflictingAliasesList" +_LCAO = "ListConflictingAliasesOutput" +_cLCARo = "com.amazonaws.cloudfront#ListConflictingAliasesResult" +_LCA = "ListConflictingAliases" +_LCFI = "ListConnectionFunctionsInput" +_cLCFR = "com.amazonaws.cloudfront#ListConnectionFunctionsRequest" +_CFSL = "ConnectionFunctionSummaryList" +_LCFO = "ListConnectionFunctionsOutput" +_cLCFRo = "com.amazonaws.cloudfront#ListConnectionFunctionsResult" +_CFo = "ConnectionFunctions" +_LCF = "ListConnectionFunctions" +_CGAF = "ConnectionGroupAssociationFilter" +_LCGI = "ListConnectionGroupsInput" +_cLCGR = "com.amazonaws.cloudfront#ListConnectionGroupsRequest" +_AF = "AssociationFilter" +_CGS = "ConnectionGroupSummary" +_CGSL = "ConnectionGroupSummaryList" +_LCGO = "ListConnectionGroupsOutput" +_cLCGRo = "com.amazonaws.cloudfront#ListConnectionGroupsResult" +_CGo = "ConnectionGroups" +_LCG = "ListConnectionGroups" +_LCDPI = "ListContinuousDeploymentPoliciesInput" +_cLCDPR = "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesRequest" +_CDPS = "ContinuousDeploymentPolicySummary" +_CDPSL = "ContinuousDeploymentPolicySummaryList" +_CDPL = "ContinuousDeploymentPolicyList" +_LCDPO = "ListContinuousDeploymentPoliciesOutput" +_cLCDPRo = "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesResult" +_LCDP = "ListContinuousDeploymentPolicies" +_LDI = "ListDistributionsInput" +_cLDR = "com.amazonaws.cloudfront#ListDistributionsRequest" +_DSi = "DistributionSummary" +_DSL = "DistributionSummaryList" +_DLi = "DistributionList" +_LDO = "ListDistributionsOutput" +_cLDRo = "com.amazonaws.cloudfront#ListDistributionsResult" +_LD = "ListDistributions" +_LDBAILII = "ListDistributionsByAnycastIpListIdInput" +_cLDBAILIR = "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdRequest" +_LDBAILIO = "ListDistributionsByAnycastIpListIdOutput" +_cLDBAILIRo = "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdResult" +_LDBAILI = "ListDistributionsByAnycastIpListId" +_LDBCPII = "ListDistributionsByCachePolicyIdInput" +_cLDBCPIR = "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdRequest" +_DILS = "DistributionIdListSummary" +_DIL = "DistributionIdList" +_LDBCPIO = "ListDistributionsByCachePolicyIdOutput" +_cLDBCPIRo = "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdResult" +_LDBCPI = "ListDistributionsByCachePolicyId" +_LDBCFI = "ListDistributionsByConnectionFunctionInput" +_cLDBCFR = "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionRequest" +_CFIo = "ConnectionFunctionIdentifier" +_LDBCFO = "ListDistributionsByConnectionFunctionOutput" +_cLDBCFRo = "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionResult" +_LDBCF = "ListDistributionsByConnectionFunction" +_LDBCMI = "ListDistributionsByConnectionModeInput" +_cLDBCMR = "com.amazonaws.cloudfront#ListDistributionsByConnectionModeRequest" +_LDBCMO = "ListDistributionsByConnectionModeOutput" +_cLDBCMRo = "com.amazonaws.cloudfront#ListDistributionsByConnectionModeResult" +_LDBCM = "ListDistributionsByConnectionMode" +_LDBKGI = "ListDistributionsByKeyGroupInput" +_cLDBKGR = "com.amazonaws.cloudfront#ListDistributionsByKeyGroupRequest" +_LDBKGO = "ListDistributionsByKeyGroupOutput" +_cLDBKGRo = "com.amazonaws.cloudfront#ListDistributionsByKeyGroupResult" +_LDBKG = "ListDistributionsByKeyGroup" +_LDBORPII = "ListDistributionsByOriginRequestPolicyIdInput" +_cLDBORPIR = "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdRequest" +_LDBORPIO = "ListDistributionsByOriginRequestPolicyIdOutput" +_cLDBORPIRo = "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdResult" +_LDBORPI = "ListDistributionsByOriginRequestPolicyId" +_LDBORI = "ListDistributionsByOwnedResourceInput" +_cLDBORR = "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceRequest" +_DIO = "DistributionIdOwner" +_DIOIL = "DistributionIdOwnerItemList" +_DIOL = "DistributionIdOwnerList" +_LDBORO = "ListDistributionsByOwnedResourceOutput" +_cLDBORRo = "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceResult" +_LDBOR = "ListDistributionsByOwnedResource" +_LDBRLCI = "ListDistributionsByRealtimeLogConfigInput" +_cLDBRLCR = "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigRequest" +_RLCN = "RealtimeLogConfigName" +_LDBRLCO = "ListDistributionsByRealtimeLogConfigOutput" +_cLDBRLCRo = "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigResult" +_LDBRLC = "ListDistributionsByRealtimeLogConfig" +_LDBRHPII = "ListDistributionsByResponseHeadersPolicyIdInput" +_cLDBRHPIR = ( + "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdRequest" +) +_LDBRHPIO = "ListDistributionsByResponseHeadersPolicyIdOutput" +_cLDBRHPIRo = ( + "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdResult" +) +_LDBRHPI = "ListDistributionsByResponseHeadersPolicyId" +_LDBTSI = "ListDistributionsByTrustStoreInput" +_cLDBTSR = "com.amazonaws.cloudfront#ListDistributionsByTrustStoreRequest" +_TSIr = "TrustStoreIdentifier" +_LDBTSO = "ListDistributionsByTrustStoreOutput" +_cLDBTSRo = "com.amazonaws.cloudfront#ListDistributionsByTrustStoreResult" +_LDBTS = "ListDistributionsByTrustStore" +_LDBVOII = "ListDistributionsByVpcOriginIdInput" +_cLDBVOIR = "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdRequest" +_LDBVOIO = "ListDistributionsByVpcOriginIdOutput" +_cLDBVOIRo = "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdResult" +_LDBVOI = "ListDistributionsByVpcOriginId" +_LDBWACLII = "ListDistributionsByWebACLIdInput" +_cLDBWACLIR = "com.amazonaws.cloudfront#ListDistributionsByWebACLIdRequest" +_LDBWACLIO = "ListDistributionsByWebACLIdOutput" +_cLDBWACLIRo = "com.amazonaws.cloudfront#ListDistributionsByWebACLIdResult" +_LDBWACLI = "ListDistributionsByWebACLId" +_DTAF = "DistributionTenantAssociationFilter" +_LDTI = "ListDistributionTenantsInput" +_cLDTR = "com.amazonaws.cloudfront#ListDistributionTenantsRequest" +_DTSi = "DistributionTenantSummary" +_DTL = "DistributionTenantList" +_LDTO = "ListDistributionTenantsOutput" +_cLDTRo = "com.amazonaws.cloudfront#ListDistributionTenantsResult" +_LDT = "ListDistributionTenants" +_LDTBCI = "ListDistributionTenantsByCustomizationInput" +_cLDTBCR = "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationRequest" +_LDTBCO = "ListDistributionTenantsByCustomizationOutput" +_cLDTBCRo = "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationResult" +_LDTBC = "ListDistributionTenantsByCustomization" +_DRI = "DistributionResourceId" +_LDCI = "ListDomainConflictsInput" +_cLDCR = "com.amazonaws.cloudfront#ListDomainConflictsRequest" +_DCVR = "DomainControlValidationResource" +_DRT = "DistributionResourceType" +_dist = "distribution" +_dt = "distribution-tenant" +_DCo = "DomainConflict" +_RTes = "ResourceType" +_DCL = "DomainConflictsList" +_DCom = "DomainConflicts" +_LDCO = "ListDomainConflictsOutput" +_cLDCRo = "com.amazonaws.cloudfront#ListDomainConflictsResult" +_LDC = "ListDomainConflicts" +_LFLECI = "ListFieldLevelEncryptionConfigsInput" +_cLFLECR = "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsRequest" +_FLES = "FieldLevelEncryptionSummary" +_FLESL = "FieldLevelEncryptionSummaryList" +_FLEL = "FieldLevelEncryptionList" +_LFLECO = "ListFieldLevelEncryptionConfigsOutput" +_cLFLECRo = "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsResult" +_LFLEC = "ListFieldLevelEncryptionConfigs" +_LFLEPI = "ListFieldLevelEncryptionProfilesInput" +_cLFLEPR = "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesRequest" +_FLEPS = "FieldLevelEncryptionProfileSummary" +_FLEPSL = "FieldLevelEncryptionProfileSummaryList" +_FLEPL = "FieldLevelEncryptionProfileList" +_LFLEPO = "ListFieldLevelEncryptionProfilesOutput" +_cLFLEPRo = "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesResult" +_LFLEP = "ListFieldLevelEncryptionProfiles" +_LFI = "ListFunctionsInput" +_cLFR = "com.amazonaws.cloudfront#ListFunctionsRequest" +_FSL = "FunctionSummaryList" +_FLu = "FunctionList" +_LFO = "ListFunctionsOutput" +_cLFRo = "com.amazonaws.cloudfront#ListFunctionsResult" +_LF = "ListFunctions" +_LII = "ListInvalidationsInput" +_cLIR = "com.amazonaws.cloudfront#ListInvalidationsRequest" +_ISnv = "InvalidationSummary" +_ISL = "InvalidationSummaryList" +_IL = "InvalidationList" +_LIO = "ListInvalidationsOutput" +_cLIRo = "com.amazonaws.cloudfront#ListInvalidationsResult" +_LI = "ListInvalidations" +_LIFDTI = "ListInvalidationsForDistributionTenantInput" +_cLIFDTR = "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantRequest" +_LIFDTO = "ListInvalidationsForDistributionTenantOutput" +_cLIFDTRo = "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantResult" +_LIFDT = "ListInvalidationsForDistributionTenant" +_LKGI = "ListKeyGroupsInput" +_cLKGR = "com.amazonaws.cloudfront#ListKeyGroupsRequest" +_KGS = "KeyGroupSummary" +_KGSL = "KeyGroupSummaryList" +_KGL = "KeyGroupList" +_LKGO = "ListKeyGroupsOutput" +_cLKGRo = "com.amazonaws.cloudfront#ListKeyGroupsResult" +_LKG = "ListKeyGroups" +_LKVSI = "ListKeyValueStoresInput" +_cLKVSR = "com.amazonaws.cloudfront#ListKeyValueStoresRequest" +_KVSSL = "KeyValueStoreSummaryList" +_KVSL = "KeyValueStoreList" +_LKVSO = "ListKeyValueStoresOutput" +_cLKVSRo = "com.amazonaws.cloudfront#ListKeyValueStoresResult" +_LKVS = "ListKeyValueStores" +_LOACI = "ListOriginAccessControlsInput" +_cLOACR = "com.amazonaws.cloudfront#ListOriginAccessControlsRequest" +_OACS = "OriginAccessControlSummary" +_OACSL = "OriginAccessControlSummaryList" +_OACL = "OriginAccessControlList" +_LOACO = "ListOriginAccessControlsOutput" +_cLOACRo = "com.amazonaws.cloudfront#ListOriginAccessControlsResult" +_LOAC = "ListOriginAccessControls" +_ORPT = "OriginRequestPolicyType" +_LORPI = "ListOriginRequestPoliciesInput" +_cLORPR = "com.amazonaws.cloudfront#ListOriginRequestPoliciesRequest" +_ORPS = "OriginRequestPolicySummary" +_ORPSL = "OriginRequestPolicySummaryList" +_ORPL = "OriginRequestPolicyList" +_LORPO = "ListOriginRequestPoliciesOutput" +_cLORPRo = "com.amazonaws.cloudfront#ListOriginRequestPoliciesResult" +_LORP = "ListOriginRequestPolicies" +_LPKI = "ListPublicKeysInput" +_cLPKR = "com.amazonaws.cloudfront#ListPublicKeysRequest" +_PKS = "PublicKeySummary" +_PKSL = "PublicKeySummaryList" +_PKL = "PublicKeyList" +_LPKO = "ListPublicKeysOutput" +_cLPKRo = "com.amazonaws.cloudfront#ListPublicKeysResult" +_LPK = "ListPublicKeys" +_LRLCI = "ListRealtimeLogConfigsInput" +_cLRLCR = "com.amazonaws.cloudfront#ListRealtimeLogConfigsRequest" +_RLCL = "RealtimeLogConfigList" +_RLCe = "RealtimeLogConfigs" +_LRLCO = "ListRealtimeLogConfigsOutput" +_cLRLCRo = "com.amazonaws.cloudfront#ListRealtimeLogConfigsResult" +_LRLC = "ListRealtimeLogConfigs" +_RHPT = "ResponseHeadersPolicyType" +_LRHPI = "ListResponseHeadersPoliciesInput" +_cLRHPR = "com.amazonaws.cloudfront#ListResponseHeadersPoliciesRequest" +_RHPS = "ResponseHeadersPolicySummary" +_RHPSL = "ResponseHeadersPolicySummaryList" +_RHPL = "ResponseHeadersPolicyList" +_LRHPO = "ListResponseHeadersPoliciesOutput" +_cLRHPRo = "com.amazonaws.cloudfront#ListResponseHeadersPoliciesResult" +_LRHP = "ListResponseHeadersPolicies" +_LSDI = "ListStreamingDistributionsInput" +_cLSDR = "com.amazonaws.cloudfront#ListStreamingDistributionsRequest" +_SDS = "StreamingDistributionSummary" +_SDSL = "StreamingDistributionSummaryList" +_SDL = "StreamingDistributionList" +_LSDO = "ListStreamingDistributionsOutput" +_cLSDRo = "com.amazonaws.cloudfront#ListStreamingDistributionsResult" +_LSD = "ListStreamingDistributions" +_RARNe = "ResourceARN" +_LTFRI = "ListTagsForResourceInput" +_cLTFRR = "com.amazonaws.cloudfront#ListTagsForResourceRequest" +_Res = "Resource" +_LTFRO = "ListTagsForResourceOutput" +_cLTFRRo = "com.amazonaws.cloudfront#ListTagsForResourceResult" +_LTFR = "ListTagsForResource" +_LTSI = "ListTrustStoresInput" +_cLTSR = "com.amazonaws.cloudfront#ListTrustStoresRequest" +_TSSr = "TrustStoreSummary" +_TSL = "TrustStoreList" +_LTSO = "ListTrustStoresOutput" +_cLTSRo = "com.amazonaws.cloudfront#ListTrustStoresResult" +_LTS = "ListTrustStores" +_LVOI = "ListVpcOriginsInput" +_cLVOR = "com.amazonaws.cloudfront#ListVpcOriginsRequest" +_VOS = "VpcOriginSummary" +_OEA = "OriginEndpointArn" +_VOSL = "VpcOriginSummaryList" +_VOL = "VpcOriginList" +_LVOO = "ListVpcOriginsOutput" +_cLVORo = "com.amazonaws.cloudfront#ListVpcOriginsResult" +_LVO = "ListVpcOrigins" +_PCFI = "PublishConnectionFunctionInput" +_cPCFR = "com.amazonaws.cloudfront#PublishConnectionFunctionRequest" +_PCFO = "PublishConnectionFunctionOutput" +_cPCFRo = "com.amazonaws.cloudfront#PublishConnectionFunctionResult" +_PCF = "PublishConnectionFunction" +_PFI = "PublishFunctionInput" +_cPFR = "com.amazonaws.cloudfront#PublishFunctionRequest" +_PFO = "PublishFunctionOutput" +_cPFRo = "com.amazonaws.cloudfront#PublishFunctionResult" +_PFu = "PublishFunction" +_PRPI = "PutResourcePolicyInput" +_cPRPR = "com.amazonaws.cloudfront#PutResourcePolicyRequest" +_PRPO = "PutResourcePolicyOutput" +_cPRPRo = "com.amazonaws.cloudfront#PutResourcePolicyResult" +_PRP = "PutResourcePolicy" +_TRI = "TagResourceInput" +_cTRR = "com.amazonaws.cloudfront#TagResourceRequest" +_TRO = "TagResourceOutput" +_TR = "TagResource" +_FEO = "FunctionEventObject" +_TCFI = "TestConnectionFunctionInput" +_cTCFR = "com.amazonaws.cloudfront#TestConnectionFunctionRequest" +_CO = "ConnectionObject" +_FELL = "FunctionExecutionLogList" +_CFTR = "ConnectionFunctionTestResult" +_CU = "ComputeUtilization" +_CFEL = "ConnectionFunctionExecutionLogs" +_CFEM = "ConnectionFunctionErrorMessage" +_CFOo = "ConnectionFunctionOutput" +_TCFO = "TestConnectionFunctionOutput" +_cTCFRo = "com.amazonaws.cloudfront#TestConnectionFunctionResult" +_TFF = "TestFunctionFailed" +_se = "server" +_TCF = "TestConnectionFunction" +_TFI = "TestFunctionInput" +_cTFR = "com.amazonaws.cloudfront#TestFunctionRequest" +_EO = "EventObject" +_TRe = "TestResult" +_FEL = "FunctionExecutionLogs" +_FEM = "FunctionErrorMessage" +_FOu = "FunctionOutput" +_TFO = "TestFunctionOutput" +_cTFRo = "com.amazonaws.cloudfront#TestFunctionResult" +_TF = "TestFunction" +_TKL = "TagKeyList" +_TKa = "TagKeys" +_URI = "UntagResourceInput" +_cURR = "com.amazonaws.cloudfront#UntagResourceRequest" +_URO = "UntagResourceOutput" +_UR = "UntagResource" +_UAILI = "UpdateAnycastIpListInput" +_cUAILR = "com.amazonaws.cloudfront#UpdateAnycastIpListRequest" +_UAILO = "UpdateAnycastIpListOutput" +_cUAILRo = "com.amazonaws.cloudfront#UpdateAnycastIpListResult" +_UAIL = "UpdateAnycastIpList" +_UCPI = "UpdateCachePolicyInput" +_cUCPR = "com.amazonaws.cloudfront#UpdateCachePolicyRequest" +_UCPO = "UpdateCachePolicyOutput" +_cUCPRo = "com.amazonaws.cloudfront#UpdateCachePolicyResult" +_UCP = "UpdateCachePolicy" +_UCFOAII = "UpdateCloudFrontOriginAccessIdentityInput" +_cUCFOAIR = "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityRequest" +_UCFOAIO = "UpdateCloudFrontOriginAccessIdentityOutput" +_cUCFOAIRo = "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityResult" +_UCFOAI = "UpdateCloudFrontOriginAccessIdentity" +_UCFI = "UpdateConnectionFunctionInput" +_cUCFR = "com.amazonaws.cloudfront#UpdateConnectionFunctionRequest" +_UCFO = "UpdateConnectionFunctionOutput" +_cUCFRo = "com.amazonaws.cloudfront#UpdateConnectionFunctionResult" +_UCF = "UpdateConnectionFunction" +_UCGI = "UpdateConnectionGroupInput" +_cUCGR = "com.amazonaws.cloudfront#UpdateConnectionGroupRequest" +_UCGO = "UpdateConnectionGroupOutput" +_cUCGRo = "com.amazonaws.cloudfront#UpdateConnectionGroupResult" +_UCG = "UpdateConnectionGroup" +_UCDPI = "UpdateContinuousDeploymentPolicyInput" +_cUCDPR = "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyRequest" +_UCDPO = "UpdateContinuousDeploymentPolicyOutput" +_cUCDPRo = "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyResult" +_UCDP = "UpdateContinuousDeploymentPolicy" +_UDI = "UpdateDistributionInput" +_cUDR = "com.amazonaws.cloudfront#UpdateDistributionRequest" +_UDO = "UpdateDistributionOutput" +_cUDRo = "com.amazonaws.cloudfront#UpdateDistributionResult" +_UD = "UpdateDistribution" +_UDTI = "UpdateDistributionTenantInput" +_cUDTR = "com.amazonaws.cloudfront#UpdateDistributionTenantRequest" +_UDTO = "UpdateDistributionTenantOutput" +_cUDTRo = "com.amazonaws.cloudfront#UpdateDistributionTenantResult" +_UDT = "UpdateDistributionTenant" +_UDWSCI = "UpdateDistributionWithStagingConfigInput" +_cUDWSCR = "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigRequest" +_SDI = "StagingDistributionId" +_UDWSCO = "UpdateDistributionWithStagingConfigOutput" +_cUDWSCRo = "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigResult" +_UDWSC = "UpdateDistributionWithStagingConfig" +_UDAI = "UpdateDomainAssociationInput" +_cUDAR = "com.amazonaws.cloudfront#UpdateDomainAssociationRequest" +_TRa = "TargetResource" +_UDAO = "UpdateDomainAssociationOutput" +_cUDARo = "com.amazonaws.cloudfront#UpdateDomainAssociationResult" +_UDA = "UpdateDomainAssociation" +_UFLECI = "UpdateFieldLevelEncryptionConfigInput" +_cUFLECR = "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigRequest" +_UFLECO = "UpdateFieldLevelEncryptionConfigOutput" +_cUFLECRo = "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigResult" +_UFLEC = "UpdateFieldLevelEncryptionConfig" +_UFLEPI = "UpdateFieldLevelEncryptionProfileInput" +_cUFLEPR = "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileRequest" +_UFLEPO = "UpdateFieldLevelEncryptionProfileOutput" +_cUFLEPRo = "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileResult" +_UFLEP = "UpdateFieldLevelEncryptionProfile" +_UFI = "UpdateFunctionInput" +_cUFR = "com.amazonaws.cloudfront#UpdateFunctionRequest" +_UFO = "UpdateFunctionOutput" +_cUFRo = "com.amazonaws.cloudfront#UpdateFunctionResult" +_ETt = "ETtag" +_UF = "UpdateFunction" +_UKGI = "UpdateKeyGroupInput" +_cUKGR = "com.amazonaws.cloudfront#UpdateKeyGroupRequest" +_UKGO = "UpdateKeyGroupOutput" +_cUKGRo = "com.amazonaws.cloudfront#UpdateKeyGroupResult" +_UKG = "UpdateKeyGroup" +_UKVSI = "UpdateKeyValueStoreInput" +_cUKVSR = "com.amazonaws.cloudfront#UpdateKeyValueStoreRequest" +_UKVSO = "UpdateKeyValueStoreOutput" +_cUKVSRo = "com.amazonaws.cloudfront#UpdateKeyValueStoreResult" +_UKVS = "UpdateKeyValueStore" +_UOACI = "UpdateOriginAccessControlInput" +_cUOACR = "com.amazonaws.cloudfront#UpdateOriginAccessControlRequest" +_UOACO = "UpdateOriginAccessControlOutput" +_cUOACRo = "com.amazonaws.cloudfront#UpdateOriginAccessControlResult" +_UOAC = "UpdateOriginAccessControl" +_UORPI = "UpdateOriginRequestPolicyInput" +_cUORPR = "com.amazonaws.cloudfront#UpdateOriginRequestPolicyRequest" +_UORPO = "UpdateOriginRequestPolicyOutput" +_cUORPRo = "com.amazonaws.cloudfront#UpdateOriginRequestPolicyResult" +_UORP = "UpdateOriginRequestPolicy" +_UPKI = "UpdatePublicKeyInput" +_cUPKR = "com.amazonaws.cloudfront#UpdatePublicKeyRequest" +_UPKO = "UpdatePublicKeyOutput" +_cUPKRo = "com.amazonaws.cloudfront#UpdatePublicKeyResult" +_UPK = "UpdatePublicKey" +_URLCI = "UpdateRealtimeLogConfigInput" +_cURLCR = "com.amazonaws.cloudfront#UpdateRealtimeLogConfigRequest" +_URLCO = "UpdateRealtimeLogConfigOutput" +_cURLCRo = "com.amazonaws.cloudfront#UpdateRealtimeLogConfigResult" +_URLC = "UpdateRealtimeLogConfig" +_URHPI = "UpdateResponseHeadersPolicyInput" +_cURHPR = "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyRequest" +_URHPO = "UpdateResponseHeadersPolicyOutput" +_cURHPRo = "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyResult" +_URHP = "UpdateResponseHeadersPolicy" +_USDI = "UpdateStreamingDistributionInput" +_cUSDR = "com.amazonaws.cloudfront#UpdateStreamingDistributionRequest" +_USDO = "UpdateStreamingDistributionOutput" +_cUSDRo = "com.amazonaws.cloudfront#UpdateStreamingDistributionResult" +_USD = "UpdateStreamingDistribution" +_UTSI = "UpdateTrustStoreInput" +_cUTSR = "com.amazonaws.cloudfront#UpdateTrustStoreRequest" +_UTSO = "UpdateTrustStoreOutput" +_cUTSRo = "com.amazonaws.cloudfront#UpdateTrustStoreResult" +_UTS = "UpdateTrustStore" +_UVOI = "UpdateVpcOriginInput" +_cUVOR = "com.amazonaws.cloudfront#UpdateVpcOriginRequest" +_UVOO = "UpdateVpcOriginOutput" +_cUVORo = "com.amazonaws.cloudfront#UpdateVpcOriginResult" +_UVO = "UpdateVpcOrigin" +_VDCI = "VerifyDnsConfigurationInput" +_cVDCR = "com.amazonaws.cloudfront#VerifyDnsConfigurationRequest" +_DCS = "DnsConfigurationStatus" +_Val = "Valid" +_vc = "valid-configuration" +_Inva = "Invalid" +_ic = "invalid-configuration" +_U = "Unknown" +_uc = "unknown-configuration" +_DCn = "DnsConfiguration" +_DCLn = "DnsConfigurationList" +_VDCO = "VerifyDnsConfigurationOutput" +_cVDCRo = "com.amazonaws.cloudfront#VerifyDnsConfigurationResult" +_VDC = "VerifyDnsConfiguration" +_C_ = "Cloudfront2020_05_31" +_aw = "aws.auth#sigv4" +_aX = "aws.protocols#restXml" +_aws = "aws.api#service" +_sNm = "smithy.api#xmlNamespace" + +STRING: StaticSchema = (3, n0, _s, 0) + +ACCESS_CONTROL_ALLOW_HEADERS_LIST: StaticSchema = ( + 16, + n0, + _ACAHL, + 0, + (_m,), + ((STRING, {_sN: _H}),), +) + +RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS_VALUES: StaticSchema = ( + 14, + n0, + _RHPACAMV, + 0, + (_GET, _POST, _OPTIONS, _PUT, _DELETE, _PATCH, _HEAD, _ALL), + ( + (-1, {_sV: _GET}), + (-1, {_sV: _POST}), + (-1, {_sV: _OPTIONS}), + (-1, {_sV: _PUT}), + (-1, {_sV: _DELETE}), + (-1, {_sV: _PATCH}), + (-1, {_sV: _HEAD}), + (-1, {_sV: _ALL}), + ), +) + +ACCESS_CONTROL_ALLOW_METHODS_LIST: StaticSchema = ( + 16, + n0, + _ACAML, + 0, + (_m,), + ((RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS_VALUES, {_sN: _M}),), +) + +ACCESS_CONTROL_ALLOW_ORIGINS_LIST: StaticSchema = ( + 16, + n0, + _ACAOL, + 0, + (_m,), + ((STRING, {_sN: _O}),), +) + +ACCESS_CONTROL_EXPOSE_HEADERS_LIST: StaticSchema = ( + 16, + n0, + _ACEHL, + 0, + (_m,), + ((STRING, {_sN: _H}),), +) + +ACCESS_DENIED: StaticSchema = (18, n0, _AD, {_sm: _c, _sE: 403}, (_Me,), ((STRING, 0),)) + +BOOLEAN: StaticSchema = (2, n0, _b, 0) + +KEY_PAIR_ID_LIST: StaticSchema = (16, n0, _KPIL, 0, (_m,), ((STRING, {_sN: _KPI}),)) + +INTEGER: StaticSchema = (7, n0, _i, 0) + +KEY_PAIR_IDS: StaticSchema = ( + 18, + n0, + _KPIe, + 0, + (_Q, _I), + ((INTEGER, 1), (KEY_PAIR_ID_LIST, 0)), +) + +KG_KEY_PAIR_IDS: StaticSchema = ( + 18, + n0, + _KGKPI, + 0, + (_KGI, _KPIe), + ((STRING, 0), (KEY_PAIR_IDS, 0)), +) + +KG_KEY_PAIR_IDS_LIST: StaticSchema = ( + 16, + n0, + _KGKPIL, + 0, + (_m,), + ((KG_KEY_PAIR_IDS, {_sN: _KG}),), +) + +ACTIVE_TRUSTED_KEY_GROUPS: StaticSchema = ( + 18, + n0, + _ATKG, + 0, + (_E, _Q, _I), + ((BOOLEAN, 1), (INTEGER, 1), (KG_KEY_PAIR_IDS_LIST, 0)), +) + +SIGNER: StaticSchema = (18, n0, _S, 0, (_AAN, _KPIe), ((STRING, 0), (KEY_PAIR_IDS, 0))) + +SIGNER_LIST: StaticSchema = (16, n0, _SL, 0, (_m,), ((SIGNER, {_sN: _S}),)) + +ACTIVE_TRUSTED_SIGNERS: StaticSchema = ( + 18, + n0, + _ATS, + 0, + (_E, _Q, _I), + ((BOOLEAN, 1), (INTEGER, 1), (SIGNER_LIST, 0)), +) + +ALIAS_LIST: StaticSchema = (16, n0, _AL, 0, (_m,), ((STRING, {_sN: _CNAME}),)) + +ALIASES: StaticSchema = (18, n0, _A, 0, (_Q, _I), ((INTEGER, 1), (ALIAS_LIST, 0))) + +ICP_RECORDAL_STATUS: StaticSchema = ( + 14, + n0, + _ICPRS, + 0, + (_APPROVED, _SUSPENDED, _PENDING), + ((-1, {_sV: _APPROVED}), (-1, {_sV: _SUSPENDED}), (-1, {_sV: _PENDING})), +) + +ALIAS_ICP_RECORDAL: StaticSchema = ( + 18, + n0, + _AICPR, + 0, + (_CNAME, _ICPRS), + ((STRING, 0), (ICP_RECORDAL_STATUS, 0)), +) + +ALIAS_ICP_RECORDALS: StaticSchema = ( + 16, + n0, + _AICPRl, + 0, + (_m,), + ((ALIAS_ICP_RECORDAL, {_sN: _AICPR}),), +) + +ALIAS_STRING: StaticSchema = (3, n0, _aS, 0) + +METHOD: StaticSchema = ( + 14, + n0, + _M, + 0, + (_GET, _HEAD, _POST, _PUT, _PATCH, _OPTIONS, _DELETE), + ( + (-1, {_sV: _GET}), + (-1, {_sV: _HEAD}), + (-1, {_sV: _POST}), + (-1, {_sV: _PUT}), + (-1, {_sV: _PATCH}), + (-1, {_sV: _OPTIONS}), + (-1, {_sV: _DELETE}), + ), +) + +METHODS_LIST: StaticSchema = (16, n0, _ML, 0, (_m,), ((METHOD, {_sN: _M}),)) + +CACHED_METHODS: StaticSchema = ( + 18, + n0, + _CM, + 0, + (_Q, _I), + ((INTEGER, 1), (METHODS_LIST, 1)), +) + +ALLOWED_METHODS: StaticSchema = ( + 18, + n0, + _AM, + 0, + (_Q, _I, _CM), + ((INTEGER, 1), (METHODS_LIST, 1), (CACHED_METHODS, 0)), +) + +ANYCAST_IPS: StaticSchema = (16, n0, _AI, 0, (_m,), ((STRING, {_sN: _AIn}),)) + +IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _IAT, + 0, + (_Ip, _Ipv, _DS), + ((-1, {_sV: _ip}), (-1, {_sV: _ipv}), (-1, {_sV: _d})), +) + +IPAM_CIDR_STATUS: StaticSchema = ( + 14, + n0, + _ICS, + 0, + (_P, _FP, _Pr, _D, _FD, _De, _Ad, _FA, _Adv, _W, _FW, _Wi), + ( + (-1, {_sV: _p}), + (-1, {_sV: _fp}), + (-1, {_sV: _pr}), + (-1, {_sV: _de}), + (-1, {_sV: _fd}), + (-1, {_sV: _dep}), + (-1, {_sV: _a}), + (-1, {_sV: _fa}), + (-1, {_sV: _ad}), + (-1, {_sV: _w}), + (-1, {_sV: _fw}), + (-1, {_sV: _wi}), + ), +) + +IPAM_CIDR_CONFIG: StaticSchema = ( + 18, + n0, + _ICC, + 0, + (_C, _IPA, _AIn, _St), + ((STRING, 1), (STRING, 1), (STRING, 0), (IPAM_CIDR_STATUS, 0)), +) + +IPAM_CIDR_CONFIG_LIST: StaticSchema = ( + 16, + n0, + _ICCL, + 0, + (_m,), + ((IPAM_CIDR_CONFIG, {_sN: _ICC}),), +) + +IPAM_CONFIG: StaticSchema = ( + 18, + n0, + _IC, + 0, + (_Q, _ICCp), + ((INTEGER, 1), (IPAM_CIDR_CONFIG_LIST, 1)), +) + +TIMESTAMP: StaticSchema = (4, n0, _t, 0) + +ANYCAST_IP_LIST_NAME: StaticSchema = (3, n0, _AILN, 0) + +ANYCAST_IP_LIST: StaticSchema = ( + 18, + n0, + _AIL, + 0, + (_Id, _N, _St, _Ar, _IAT, _IC, _AI, _ICp, _LMT), + ( + (STRING, 1), + (ANYCAST_IP_LIST_NAME, 1), + (STRING, 1), + (STRING, 1), + (IP_ADDRESS_TYPE, 0), + (IPAM_CONFIG, 0), + (ANYCAST_IPS, 1), + (INTEGER, 1), + (TIMESTAMP, 1), + ), +) + +ANYCAST_IP_LIST_SUMMARY: StaticSchema = ( + 18, + n0, + _AILS, + 0, + (_Id, _N, _St, _Ar, _ICp, _LMT, _IAT, _ET, _IC), + ( + (STRING, 1), + (ANYCAST_IP_LIST_NAME, 1), + (STRING, 1), + (STRING, 1), + (INTEGER, 1), + (TIMESTAMP, 1), + (IP_ADDRESS_TYPE, 0), + (STRING, 0), + (IPAM_CONFIG, 0), + ), +) + +ANYCAST_IP_LIST_SUMMARIES: StaticSchema = ( + 16, + n0, + _AILSn, + 0, + (_m,), + ((ANYCAST_IP_LIST_SUMMARY, {_sN: _AILS}),), +) + +ANYCAST_IP_LIST_COLLECTION: StaticSchema = ( + 18, + n0, + _AILC, + 0, + (_I, _Ma, _NM, _MI, _IT, _Q), + ( + (ANYCAST_IP_LIST_SUMMARIES, 0), + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + ), +) + +ASSOCIATE_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _AAI, + {_sSI: _cAAR, _smit: None}, + (_TDI, _Al), + ((STRING, 9), (STRING, {_sQ: _Al, _smi: None})), +) + +ASSOCIATE_ALIAS_OUTPUT: StaticSchema = (18, n0, _AAO, {_sSI: _sU, _smith: None}) + +ILLEGAL_UPDATE: StaticSchema = ( + 18, + n0, + _IU, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ARGUMENT: StaticSchema = ( + 18, + n0, + _IA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_DISTRIBUTION: StaticSchema = ( + 18, + n0, + _NSD, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTION_CNAM_ES: StaticSchema = ( + 18, + n0, + _TMDCNAME, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +ASSOCIATE_ALIAS: StaticOperationSchema = ( + 23, + n0, + _AA, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution/{TargetDistributionId}/associate-alias", + "code": 200, + } + ) + }, + ASSOCIATE_ALIAS_INPUT, + ASSOCIATE_ALIAS_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INVALID_ARGUMENT, + NO_SUCH_DISTRIBUTION, + TOO_MANY_DISTRIBUTION_CNAM_ES, + ), +) + +ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT: StaticSchema = ( + 18, + n0, + _ADTWACLI, + {_sSI: _cADTWACLR, _smit: None}, + (_Id, _WACLA, _IM), + ((STRING, 9), (STRING, 1), (STRING, {_sH: _IM_})), +) + +ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _ADTWACLO, + {_sSI: _cADTWACLRo, _smith: None}, + (_Id, _WACLA, _ET), + ((STRING, 0), (STRING, 0), (STRING, {_sH: _ET})), +) + +ENTITY_LIMIT_EXCEEDED: StaticSchema = ( + 18, + n0, + _ELE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +ENTITY_NOT_FOUND: StaticSchema = ( + 18, + n0, + _ENF, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +INVALID_IF_MATCH_VERSION: StaticSchema = ( + 18, + n0, + _IIMV, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +PRECONDITION_FAILED: StaticSchema = ( + 18, + n0, + _PF, + {_sm: _c, _sE: 412}, + (_Me,), + ((STRING, 0),), +) + +ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL: StaticOperationSchema = ( + 23, + n0, + _ADTWACL, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}/associate-web-acl", + "code": 200, + } + ) + }, + ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT, + ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +ASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT: StaticSchema = ( + 18, + n0, + _ADWACLI, + {_sSI: _cADWACLR, _smit: None}, + (_Id, _WACLA, _IM), + ((STRING, 9), (STRING, 1), (STRING, {_sH: _IM_})), +) + +ASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _ADWACLO, + {_sSI: _cADWACLRo, _smith: None}, + (_Id, _WACLA, _ET), + ((STRING, 0), (STRING, 0), (STRING, {_sH: _ET})), +) + +ASSOCIATE_DISTRIBUTION_WEB_ACL: StaticOperationSchema = ( + 23, + n0, + _ADWACL, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/associate-web-acl", + "code": 200, + } + ) + }, + ASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT, + ASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +AWS_ACCOUNT_NUMBER_LIST: StaticSchema = ( + 16, + n0, + _AANL, + 0, + (_m,), + ((STRING, {_sN: _AAN}),), +) + +BATCH_TOO_LARGE: StaticSchema = ( + 18, + n0, + _BTL, + {_sm: _c, _sE: 413}, + (_Me,), + ((STRING, 0),), +) + +CA_CERTIFICATES_BUNDLE_S3_LOCATION: StaticSchema = ( + 18, + n0, + _CCBSL, + 0, + (_B, _K, _R, _V), + ((STRING, 1), (STRING, 1), (STRING, 1), (STRING, 0)), +) + +CA_CERTIFICATES_BUNDLE_SOURCE: StaticSchema = ( + 19, + n0, + _CCBS, + 0, + (_CCBSL,), + ((CA_CERTIFICATES_BUNDLE_S3_LOCATION, 0),), +) + +LONG: StaticSchema = (8, n0, _l, 0) + +ITEM_SELECTION: StaticSchema = ( + 14, + n0, + _IS, + 0, + (_n, _wh, _al), + ((-1, {_sV: _n}), (-1, {_sV: _wh}), (-1, {_sV: _al})), +) + +COOKIE_NAME_LIST: StaticSchema = (16, n0, _CNL, 0, (_m,), ((STRING, {_sN: _N}),)) + +COOKIE_NAMES: StaticSchema = ( + 18, + n0, + _CN, + 0, + (_Q, _I), + ((INTEGER, 1), (COOKIE_NAME_LIST, 0)), +) + +COOKIE_PREFERENCE: StaticSchema = ( + 18, + n0, + _CP, + 0, + (_F, _WN), + ((ITEM_SELECTION, 1), (COOKIE_NAMES, 0)), +) + +HEADER_LIST: StaticSchema = (16, n0, _HL, 0, (_m,), ((STRING, {_sN: _N}),)) + +HEADERS: StaticSchema = (18, n0, _He, 0, (_Q, _I), ((INTEGER, 1), (HEADER_LIST, 0))) + +QUERY_STRING_CACHE_KEYS_LIST: StaticSchema = ( + 16, + n0, + _QSCKL, + 0, + (_m,), + ((STRING, {_sN: _N}),), +) + +QUERY_STRING_CACHE_KEYS: StaticSchema = ( + 18, + n0, + _QSCK, + 0, + (_Q, _I), + ((INTEGER, 1), (QUERY_STRING_CACHE_KEYS_LIST, 0)), +) + +FORWARDED_VALUES: StaticSchema = ( + 18, + n0, + _FV, + 0, + (_QS, _Co, _He, _QSCK), + ((BOOLEAN, 1), (COOKIE_PREFERENCE, 1), (HEADERS, 0), (QUERY_STRING_CACHE_KEYS, 0)), +) + +EVENT_TYPE: StaticSchema = ( + 14, + n0, + _ETv, + 0, + (_vr, _vr__, _or, _or__), + ((-1, {_sV: _vr_}), (-1, {_sV: _vr___}), (-1, {_sV: _or_}), (-1, {_sV: _or___})), +) + +FUNCTION_ARN: StaticSchema = (3, n0, _FARN, 0) + +FUNCTION_ASSOCIATION: StaticSchema = ( + 18, + n0, + _FAu, + 0, + (_FARN, _ETv), + ((FUNCTION_ARN, 1), (EVENT_TYPE, 1)), +) + +FUNCTION_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _FAL, + 0, + (_m,), + ((FUNCTION_ASSOCIATION, {_sN: _FAu}),), +) + +FUNCTION_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _FAun, + 0, + (_Q, _I), + ((INTEGER, 1), (FUNCTION_ASSOCIATION_LIST, 0)), +) + +GRPC_CONFIG: StaticSchema = (18, n0, _GC, 0, (_E,), ((BOOLEAN, 1),)) + +LAMBDA_FUNCTION_ARN: StaticSchema = (3, n0, _LFARN, 0) + +LAMBDA_FUNCTION_ASSOCIATION: StaticSchema = ( + 18, + n0, + _LFA, + 0, + (_LFARN, _ETv, _IB), + ((LAMBDA_FUNCTION_ARN, 1), (EVENT_TYPE, 1), (BOOLEAN, 0)), +) + +LAMBDA_FUNCTION_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _LFAL, + 0, + (_m,), + ((LAMBDA_FUNCTION_ASSOCIATION, {_sN: _LFA}),), +) + +LAMBDA_FUNCTION_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _LFAa, + 0, + (_Q, _I), + ((INTEGER, 1), (LAMBDA_FUNCTION_ASSOCIATION_LIST, 0)), +) + +TRUSTED_KEY_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _TKGIL, + 0, + (_m,), + ((STRING, {_sN: _KG}),), +) + +TRUSTED_KEY_GROUPS: StaticSchema = ( + 18, + n0, + _TKG, + 0, + (_E, _Q, _I), + ((BOOLEAN, 1), (INTEGER, 1), (TRUSTED_KEY_GROUP_ID_LIST, 0)), +) + +TRUSTED_SIGNERS: StaticSchema = ( + 18, + n0, + _TS, + 0, + (_E, _Q, _I), + ((BOOLEAN, 1), (INTEGER, 1), (AWS_ACCOUNT_NUMBER_LIST, 0)), +) + +VIEWER_PROTOCOL_POLICY: StaticSchema = ( + 14, + n0, + _VPP, + 0, + (_aa, _ho, _rth), + ((-1, {_sV: _aa_}), (-1, {_sV: _ho_}), (-1, {_sV: _rth_})), +) + +CACHE_BEHAVIOR: StaticSchema = ( + 18, + n0, + _CB, + 0, + ( + _PP, + _TOI, + _TS, + _TKG, + _VPP, + _AM, + _SS, + _Com, + _LFAa, + _FAun, + _FLEI, + _RLCA, + _CPI, + _ORPI, + _RHPI, + _GC, + _FV, + _MTTL, + _DTTL, + _MTTLa, + ), + ( + (STRING, 1), + (STRING, 1), + (TRUSTED_SIGNERS, 0), + (TRUSTED_KEY_GROUPS, 0), + (VIEWER_PROTOCOL_POLICY, 1), + (ALLOWED_METHODS, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (LAMBDA_FUNCTION_ASSOCIATIONS, 0), + (FUNCTION_ASSOCIATIONS, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GRPC_CONFIG, 0), + (FORWARDED_VALUES, 0), + (LONG, 0), + (LONG, 0), + (LONG, 0), + ), +) + +CACHE_BEHAVIOR_LIST: StaticSchema = ( + 16, + n0, + _CBL, + 0, + (_m,), + ((CACHE_BEHAVIOR, {_sN: _CB}),), +) + +CACHE_BEHAVIORS: StaticSchema = ( + 18, + n0, + _CBa, + 0, + (_Q, _I), + ((INTEGER, 1), (CACHE_BEHAVIOR_LIST, 0)), +) + +CACHE_POLICY_COOKIE_BEHAVIOR: StaticSchema = ( + 14, + n0, + _CPCB, + 0, + (_n, _wh, _aE, _al), + ((-1, {_sV: _n}), (-1, {_sV: _wh}), (-1, {_sV: _aE}), (-1, {_sV: _al})), +) + +CACHE_POLICY_COOKIES_CONFIG: StaticSchema = ( + 18, + n0, + _CPCC, + 0, + (_CBo, _Co), + ((CACHE_POLICY_COOKIE_BEHAVIOR, 1), (COOKIE_NAMES, 0)), +) + +CACHE_POLICY_HEADER_BEHAVIOR: StaticSchema = ( + 14, + n0, + _CPHB, + 0, + (_n, _wh), + ((-1, {_sV: _n}), (-1, {_sV: _wh})), +) + +CACHE_POLICY_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _CPHC, + 0, + (_HB, _He), + ((CACHE_POLICY_HEADER_BEHAVIOR, 1), (HEADERS, 0)), +) + +CACHE_POLICY_QUERY_STRING_BEHAVIOR: StaticSchema = ( + 14, + n0, + _CPQSB, + 0, + (_n, _wh, _aE, _al), + ((-1, {_sV: _n}), (-1, {_sV: _wh}), (-1, {_sV: _aE}), (-1, {_sV: _al})), +) + +QUERY_STRING_NAMES_LIST: StaticSchema = ( + 16, + n0, + _QSNL, + 0, + (_m,), + ((STRING, {_sN: _N}),), +) + +QUERY_STRING_NAMES: StaticSchema = ( + 18, + n0, + _QSN, + 0, + (_Q, _I), + ((INTEGER, 1), (QUERY_STRING_NAMES_LIST, 0)), +) + +CACHE_POLICY_QUERY_STRINGS_CONFIG: StaticSchema = ( + 18, + n0, + _CPQSC, + 0, + (_QSB, _QSu), + ((CACHE_POLICY_QUERY_STRING_BEHAVIOR, 1), (QUERY_STRING_NAMES, 0)), +) + +PARAMETERS_IN_CACHE_KEY_AND_FORWARDED_TO_ORIGIN: StaticSchema = ( + 18, + n0, + _PICKAFTO, + 0, + (_EAEG, _EAEB, _HC, _CC, _QSC), + ( + (BOOLEAN, 1), + (BOOLEAN, 0), + (CACHE_POLICY_HEADERS_CONFIG, 1), + (CACHE_POLICY_COOKIES_CONFIG, 1), + (CACHE_POLICY_QUERY_STRINGS_CONFIG, 1), + ), +) + +CACHE_POLICY_CONFIG: StaticSchema = ( + 18, + n0, + _CPC, + 0, + (_Comm, _N, _DTTL, _MTTLa, _MTTL, _PICKAFTO), + ( + (STRING, 0), + (STRING, 1), + (LONG, 0), + (LONG, 0), + (LONG, 1), + (PARAMETERS_IN_CACHE_KEY_AND_FORWARDED_TO_ORIGIN, 0), + ), +) + +CACHE_POLICY: StaticSchema = ( + 18, + n0, + _CPa, + 0, + (_Id, _LMT, _CPC), + ((STRING, 1), (TIMESTAMP, 1), (CACHE_POLICY_CONFIG, 1)), +) + +CACHE_POLICY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _CPAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CACHE_POLICY_IN_USE: StaticSchema = ( + 18, + n0, + _CPIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CACHE_POLICY_TYPE: StaticSchema = ( + 14, + n0, + _CPT, + 0, + (_ma, _cu), + ((-1, {_sV: _ma}), (-1, {_sV: _cu})), +) + +CACHE_POLICY_SUMMARY: StaticSchema = ( + 18, + n0, + _CPS, + 0, + (_T, _CPa), + ((CACHE_POLICY_TYPE, 1), (CACHE_POLICY, 1)), +) + +CACHE_POLICY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CPSL, + 0, + (_m,), + ((CACHE_POLICY_SUMMARY, {_sN: _CPS}),), +) + +CACHE_POLICY_LIST: StaticSchema = ( + 18, + n0, + _CPL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (CACHE_POLICY_SUMMARY_LIST, 0)), +) + +CACHE_TAG_CONFIG: StaticSchema = (18, n0, _CTC, 0, (_HN,), ((STRING, 1),)) + +CANNOT_CHANGE_IMMUTABLE_PUBLIC_KEY_FIELDS: StaticSchema = ( + 18, + n0, + _CCIPKF, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CANNOT_DELETE_ENTITY_WHILE_IN_USE: StaticSchema = ( + 18, + n0, + _CDEWIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CANNOT_UPDATE_ENTITY_WHILE_IN_USE: StaticSchema = ( + 18, + n0, + _CUEWIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CERTIFICATE: StaticSchema = (18, n0, _Ce, 0, (_Ar,), ((STRING, 1),)) + +CERTIFICATE_SOURCE: StaticSchema = ( + 14, + n0, + _CS, + 0, + (_cl, _ia, _ac), + ((-1, {_sV: _cl}), (-1, {_sV: _ia}), (-1, {_sV: _ac})), +) + +CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE: StaticSchema = ( + 14, + n0, + _CTLP, + 0, + (_E, _Di), + ((-1, {_sV: _e}), (-1, {_sV: _di})), +) + +CNAME_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _CNAMEAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +COPY_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _CDI, + {_sSI: _cCDR, _smit: None}, + (_PDI, _Sta, _IM, _CR, _E), + ( + (STRING, 9), + (BOOLEAN, {_sH: _Sta}), + (STRING, {_sH: _IM_}), + (STRING, 1), + (BOOLEAN, 0), + ), +) + +COMMENT_TYPE: StaticSchema = (3, n0, _CT, 4) + +RESOURCE_ID: StaticSchema = (3, n0, _RI, 0) + +CONNECTION_FUNCTION_ASSOCIATION: StaticSchema = ( + 18, + n0, + _CFA, + 0, + (_Id,), + ((RESOURCE_ID, 1),), +) + +CONNECTION_MODE: StaticSchema = ( + 14, + n0, + _CMo, + 0, + (_Dir, _TO), + ((-1, {_sV: _dir}), (-1, {_sV: _to})), +) + +CUSTOM_ERROR_RESPONSE: StaticSchema = ( + 18, + n0, + _CER, + 0, + (_EC, _RPP, _RC, _ECMTTL), + ((INTEGER, 1), (STRING, 0), (STRING, 0), (LONG, 0)), +) + +CUSTOM_ERROR_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _CERL, + 0, + (_m,), + ((CUSTOM_ERROR_RESPONSE, {_sN: _CER}),), +) + +CUSTOM_ERROR_RESPONSES: StaticSchema = ( + 18, + n0, + _CERu, + 0, + (_Q, _I), + ((INTEGER, 1), (CUSTOM_ERROR_RESPONSE_LIST, 0)), +) + +DEFAULT_CACHE_BEHAVIOR: StaticSchema = ( + 18, + n0, + _DCB, + 0, + ( + _TOI, + _TS, + _TKG, + _VPP, + _AM, + _SS, + _Com, + _LFAa, + _FAun, + _FLEI, + _RLCA, + _CPI, + _ORPI, + _RHPI, + _GC, + _FV, + _MTTL, + _DTTL, + _MTTLa, + ), + ( + (STRING, 1), + (TRUSTED_SIGNERS, 0), + (TRUSTED_KEY_GROUPS, 0), + (VIEWER_PROTOCOL_POLICY, 1), + (ALLOWED_METHODS, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (LAMBDA_FUNCTION_ASSOCIATIONS, 0), + (FUNCTION_ASSOCIATIONS, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GRPC_CONFIG, 0), + (FORWARDED_VALUES, 0), + (LONG, 0), + (LONG, 0), + (LONG, 0), + ), +) + +HTTP_VERSION: StaticSchema = ( + 14, + n0, + _HV, + 0, + (_h, _htt, _http, _httpa), + ((-1, {_sV: _ht}), (-1, {_sV: _htt}), (-1, {_sV: _http}), (-1, {_sV: _httpa})), +) + +LOGGING_CONFIG: StaticSchema = ( + 18, + n0, + _LC, + 0, + (_E, _ICn, _B, _Pre), + ( + (BOOLEAN, {_smithyap: False}), + (BOOLEAN, {_smithyap: False}), + (STRING, {_smithyap: _v}), + (STRING, {_smithyap: _v}), + ), +) + +STATUS_CODE_LIST: StaticSchema = (16, n0, _SCL, 0, (_m,), ((INTEGER, {_sN: _SC}),)) + +STATUS_CODES: StaticSchema = ( + 18, + n0, + _SCt, + 0, + (_Q, _I), + ((INTEGER, 1), (STATUS_CODE_LIST, 1)), +) + +ORIGIN_GROUP_FAILOVER_CRITERIA: StaticSchema = ( + 18, + n0, + _OGFC, + 0, + (_SCt,), + ((STATUS_CODES, 1),), +) + +ORIGIN_GROUP_MEMBER: StaticSchema = (18, n0, _OGM, 0, (_OI,), ((STRING, 1),)) + +ORIGIN_GROUP_MEMBER_LIST: StaticSchema = ( + 16, + n0, + _OGML, + 0, + (_m,), + ((ORIGIN_GROUP_MEMBER, {_sN: _OGM}),), +) + +ORIGIN_GROUP_MEMBERS: StaticSchema = ( + 18, + n0, + _OGMr, + 0, + (_Q, _I), + ((INTEGER, 1), (ORIGIN_GROUP_MEMBER_LIST, 1)), +) + +ORIGIN_GROUP_SELECTION_CRITERIA: StaticSchema = ( + 14, + n0, + _OGSC, + 0, + (_Def, _MQB), + ((-1, {_sV: _def}), (-1, {_sV: _mqb})), +) + +ORIGIN_GROUP: StaticSchema = ( + 18, + n0, + _OG, + 0, + (_Id, _FC, _Mem, _SCe), + ( + (STRING, 1), + (ORIGIN_GROUP_FAILOVER_CRITERIA, 1), + (ORIGIN_GROUP_MEMBERS, 1), + (ORIGIN_GROUP_SELECTION_CRITERIA, 0), + ), +) + +ORIGIN_GROUP_LIST: StaticSchema = ( + 16, + n0, + _OGL, + 0, + (_m,), + ((ORIGIN_GROUP, {_sN: _OG}),), +) + +ORIGIN_GROUPS: StaticSchema = ( + 18, + n0, + _OGr, + 0, + (_Q, _I), + ((INTEGER, 1), (ORIGIN_GROUP_LIST, 0)), +) + +SENSITIVE_STRING_TYPE: StaticSchema = (3, n0, _sST, 4) + +ORIGIN_CUSTOM_HEADER: StaticSchema = ( + 18, + n0, + _OCH, + 0, + (_HN, _HVe), + ((STRING, 1), (SENSITIVE_STRING_TYPE, 1)), +) + +ORIGIN_CUSTOM_HEADERS_LIST: StaticSchema = ( + 16, + n0, + _OCHL, + 0, + (_m,), + ((ORIGIN_CUSTOM_HEADER, {_sN: _OCH}),), +) + +CUSTOM_HEADERS: StaticSchema = ( + 18, + n0, + _CH, + 0, + (_Q, _I), + ((INTEGER, 1), (ORIGIN_CUSTOM_HEADERS_LIST, 0)), +) + +ORIGIN_MTLS_CONFIG: StaticSchema = (18, n0, _OMC, 0, (_CCA,), ((STRING, 1),)) + +ORIGIN_PROTOCOL_POLICY: StaticSchema = ( + 14, + n0, + _OPP, + 0, + (_ho__, _mv, _ho), + ((-1, {_sV: _ho___}), (-1, {_sV: _mv_}), (-1, {_sV: _ho_})), +) + +SSL_PROTOCOL: StaticSchema = ( + 14, + n0, + _SP, + 0, + (_SSL, _TLS, _T_, _T__), + ((-1, {_sV: _SSL}), (-1, {_sV: _TLS}), (-1, {_sV: _TLSv}), (-1, {_sV: _TLSv_})), +) + +SSL_PROTOCOLS_LIST: StaticSchema = ( + 16, + n0, + _SPL, + 0, + (_m,), + ((SSL_PROTOCOL, {_sN: _SP}),), +) + +ORIGIN_SSL_PROTOCOLS: StaticSchema = ( + 18, + n0, + _OSP, + 0, + (_Q, _I), + ((INTEGER, 1), (SSL_PROTOCOLS_LIST, 1)), +) + +CUSTOM_ORIGIN_CONFIG: StaticSchema = ( + 18, + n0, + _COC, + 0, + (_HTTPP, _HTTPSP, _OPP, _OSP, _ORT, _OKT, _IAT, _OMC), + ( + (INTEGER, 1), + (INTEGER, 1), + (ORIGIN_PROTOCOL_POLICY, 1), + (ORIGIN_SSL_PROTOCOLS, 0), + (INTEGER, 0), + (INTEGER, 0), + (IP_ADDRESS_TYPE, 0), + (ORIGIN_MTLS_CONFIG, 0), + ), +) + +ORIGIN_SHIELD_REGION: StaticSchema = (3, n0, _OSR, 0) + +ORIGIN_SHIELD: StaticSchema = ( + 18, + n0, + _OS, + 0, + (_E, _OSR), + ((BOOLEAN, 1), (ORIGIN_SHIELD_REGION, 0)), +) + +S3_ORIGIN_CONFIG: StaticSchema = ( + 18, + n0, + _SOC, + 0, + (_OAI, _ORT), + ((STRING, {_smithyap: _v, _smi: None}), (INTEGER, 0)), +) + +VPC_ORIGIN_CONFIG: StaticSchema = ( + 18, + n0, + _VOC, + 0, + (_VOI, _OAIw, _ORT, _OKT), + ((STRING, 1), (STRING, 0), (INTEGER, 0), (INTEGER, 0)), +) + +ORIGIN: StaticSchema = ( + 18, + n0, + _O, + 0, + (_Id, _DN, _OP, _CH, _SOC, _COC, _VOC, _CA, _CTo, _RCT, _OS, _OACI), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (CUSTOM_HEADERS, 0), + (S3_ORIGIN_CONFIG, 0), + (CUSTOM_ORIGIN_CONFIG, 0), + (VPC_ORIGIN_CONFIG, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (ORIGIN_SHIELD, 0), + (STRING, 0), + ), +) + +ORIGIN_LIST: StaticSchema = (16, n0, _OL, 0, (_m,), ((ORIGIN, {_sN: _O}),)) + +ORIGINS: StaticSchema = (18, n0, _Or, 0, (_Q, _I), ((INTEGER, 1), (ORIGIN_LIST, 1))) + +PRICE_CLASS: StaticSchema = ( + 14, + n0, + _PC, + 0, + (_P_, _P__, _PA, _No), + ((-1, {_sV: _P_}), (-1, {_sV: _P__}), (-1, {_sV: _PA}), (-1, {_sV: _No})), +) + +LOCATION_LIST: StaticSchema = (16, n0, _LL, 0, (_m,), ((STRING, {_sN: _L}),)) + +GEO_RESTRICTION_TYPE: StaticSchema = ( + 14, + n0, + _GRT, + 0, + (_bl, _wh, _n), + ((-1, {_sV: _bl}), (-1, {_sV: _wh}), (-1, {_sV: _n})), +) + +GEO_RESTRICTION: StaticSchema = ( + 18, + n0, + _GR, + 0, + (_RT, _Q, _I), + ((GEO_RESTRICTION_TYPE, 1), (INTEGER, 1), (LOCATION_LIST, 0)), +) + +RESTRICTIONS: StaticSchema = (18, n0, _Re, 0, (_GR,), ((GEO_RESTRICTION, 1),)) + +PARAMETER_VALUE: StaticSchema = (3, n0, _PV, 0) + +STRING_SCHEMA_CONFIG: StaticSchema = ( + 18, + n0, + _SSC, + 0, + (_Comm, _DV, _Req), + ((SENSITIVE_STRING_TYPE, 0), (PARAMETER_VALUE, 0), (BOOLEAN, 1)), +) + +PARAMETER_DEFINITION_SCHEMA: StaticSchema = ( + 18, + n0, + _PDS, + 0, + (_SSt,), + ((STRING_SCHEMA_CONFIG, 0),), +) + +PARAMETER_NAME: StaticSchema = (3, n0, _PN, 0) + +PARAMETER_DEFINITION: StaticSchema = ( + 18, + n0, + _PD, + 0, + (_N, _Defi), + ((PARAMETER_NAME, 1), (PARAMETER_DEFINITION_SCHEMA, 1)), +) + +PARAMETER_DEFINITIONS: StaticSchema = ( + 16, + n0, + _PDa, + 0, + (_m,), + ((PARAMETER_DEFINITION, 0),), +) + +TENANT_CONFIG: StaticSchema = (18, n0, _TC, 0, (_PDa,), ((PARAMETER_DEFINITIONS, 0),)) + +SERVER_CERTIFICATE_ID: StaticSchema = (3, n0, _SCI, 0) + +MINIMUM_PROTOCOL_VERSION: StaticSchema = ( + 14, + n0, + _MPV, + 0, + ( + _SSL, + _TLS, + _T___, + _T____, + _T______, + _T________, + _T__________, + _T____________, + _T______________, + ), + ( + (-1, {_sV: _SSL}), + (-1, {_sV: _TLS}), + (-1, {_sV: _T___}), + (-1, {_sV: _T_____}), + (-1, {_sV: _T_______}), + (-1, {_sV: _T_________}), + (-1, {_sV: _T___________}), + (-1, {_sV: _T_____________}), + (-1, {_sV: _T_______________}), + ), +) + +SSL_SUPPORT_METHOD: StaticSchema = ( + 14, + n0, + _SSLSM, + 0, + (_so, _vi, _si), + ((-1, {_sV: _so_}), (-1, {_sV: _vi}), (-1, {_sV: _si_})), +) + +VIEWER_CERTIFICATE: StaticSchema = ( + 18, + n0, + _VC, + 0, + (_CFDC, _IAMCI, _ACMCA, _SSLSM, _MPV, _Ce, _CS), + ( + (BOOLEAN, 0), + (SERVER_CERTIFICATE_ID, 0), + (STRING, 0), + (SSL_SUPPORT_METHOD, 0), + (MINIMUM_PROTOCOL_VERSION, 0), + (STRING, 0), + (CERTIFICATE_SOURCE, 0), + ), +) + +VIEWER_MTLS_MODE: StaticSchema = ( + 14, + n0, + _VMM, + 0, + (_Req, _Op, _Pa), + ((-1, {_sV: _r}), (-1, {_sV: _o}), (-1, {_sV: _pa})), +) + +TRUST_STORE_CONFIG: StaticSchema = ( + 18, + n0, + _TSC, + 0, + (_TSI, _ATSCN, _ICE), + ((STRING, 1), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +VIEWER_MTLS_CONFIG: StaticSchema = ( + 18, + n0, + _VMC, + 0, + (_Mo, _TSC), + ((VIEWER_MTLS_MODE, {_smithyap: _r}), (TRUST_STORE_CONFIG, 0)), +) + +DISTRIBUTION_CONFIG: StaticSchema = ( + 18, + n0, + _DC, + 0, + ( + _CR, + _A, + _DRO, + _Or, + _OGr, + _DCB, + _CBa, + _CERu, + _Comm, + _Lo, + _PC, + _E, + _VC, + _Re, + _WACLI, + _HV, + _IIPVE, + _CDPI, + _Sta, + _AILI, + _TC, + _CMo, + _VMC, + _CFA, + _CTC, + ), + ( + (STRING, 1), + (ALIASES, 0), + (STRING, 0), + (ORIGINS, 1), + (ORIGIN_GROUPS, 0), + (DEFAULT_CACHE_BEHAVIOR, 1), + (CACHE_BEHAVIORS, 0), + (CUSTOM_ERROR_RESPONSES, 0), + (COMMENT_TYPE, 1), + (LOGGING_CONFIG, 0), + (PRICE_CLASS, 0), + (BOOLEAN, 1), + (VIEWER_CERTIFICATE, 0), + (RESTRICTIONS, 0), + (STRING, 0), + (HTTP_VERSION, 0), + (BOOLEAN, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (TENANT_CONFIG, 0), + (CONNECTION_MODE, 0), + (VIEWER_MTLS_CONFIG, 0), + (CONNECTION_FUNCTION_ASSOCIATION, 0), + (CACHE_TAG_CONFIG, 0), + ), +) + +DISTRIBUTION: StaticSchema = ( + 18, + n0, + _Dis, + 0, + (_Id, _ARN, _St, _LMT, _IPIB, _DN, _ATS, _ATKG, _DC, _AICPRl), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TIMESTAMP, 1), + (INTEGER, 1), + (STRING, 1), + (ACTIVE_TRUSTED_SIGNERS, 0), + (ACTIVE_TRUSTED_KEY_GROUPS, 0), + (DISTRIBUTION_CONFIG, 1), + (ALIAS_ICP_RECORDALS, 0), + ), +) + +COPY_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CDO, + {_sSI: _cCDRo, _smith: None}, + (_Dis, _L, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +DISTRIBUTION_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _DAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR: StaticSchema = ( + 18, + n0, + _IFLECAWCB, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INCONSISTENT_QUANTITIES: StaticSchema = ( + 18, + n0, + _IQ, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_DEFAULT_ROOT_OBJECT: StaticSchema = ( + 18, + n0, + _IDRO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ERROR_CODE: StaticSchema = ( + 18, + n0, + _IEC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_FORWARD_COOKIES: StaticSchema = ( + 18, + n0, + _IFC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_FUNCTION_ASSOCIATION: StaticSchema = ( + 18, + n0, + _IFA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_GEO_RESTRICTION_PARAMETER: StaticSchema = ( + 18, + n0, + _IGRP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_HEADERS_FOR_S3_ORIGIN: StaticSchema = ( + 18, + n0, + _IHFSO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_LAMBDA_FUNCTION_ASSOCIATION: StaticSchema = ( + 18, + n0, + _ILFA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_LOCATION_CODE: StaticSchema = ( + 18, + n0, + _ILC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_MINIMUM_PROTOCOL_VERSION: StaticSchema = ( + 18, + n0, + _IMPV, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ORIGIN: StaticSchema = ( + 18, + n0, + _IO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ORIGIN_ACCESS_CONTROL: StaticSchema = ( + 18, + n0, + _IOAC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ORIGIN_ACCESS_IDENTITY: StaticSchema = ( + 18, + n0, + _IOAI, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ORIGIN_KEEPALIVE_TIMEOUT: StaticSchema = ( + 18, + n0, + _IOKT, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_ORIGIN_READ_TIMEOUT: StaticSchema = ( + 18, + n0, + _IORT, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_PROTOCOL_SETTINGS: StaticSchema = ( + 18, + n0, + _IPS, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_QUERY_STRING_PARAMETERS: StaticSchema = ( + 18, + n0, + _IQSP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_RELATIVE_PATH: StaticSchema = ( + 18, + n0, + _IRP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_REQUIRED_PROTOCOL: StaticSchema = ( + 18, + n0, + _IRPn, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_RESPONSE_CODE: StaticSchema = ( + 18, + n0, + _IRC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_TTL_ORDER: StaticSchema = ( + 18, + n0, + _ITTLO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_VIEWER_CERTIFICATE: StaticSchema = ( + 18, + n0, + _IVC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_WEB_ACL_ID: StaticSchema = ( + 18, + n0, + _IWACLI, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +MISSING_BODY: StaticSchema = (18, n0, _MB, {_sm: _c, _sE: 400}, (_Me,), ((STRING, 0),)) + +NO_SUCH_CACHE_POLICY: StaticSchema = ( + 18, + n0, + _NSCP, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticSchema = ( + 18, + n0, + _NSFLEC, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_ORIGIN: StaticSchema = ( + 18, + n0, + _NSO, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _NSORP, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_REALTIME_LOG_CONFIG: StaticSchema = ( + 18, + n0, + _NSRLC, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _NSRHP, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +REALTIME_LOG_CONFIG_OWNER_MISMATCH: StaticSchema = ( + 18, + n0, + _RLCOM, + {_sm: _c, _sE: 401}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_CACHE_BEHAVIORS: StaticSchema = ( + 18, + n0, + _TMCB, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_CERTIFICATES: StaticSchema = ( + 18, + n0, + _TMC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST: StaticSchema = ( + 18, + n0, + _TMCNIWL, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS: StaticSchema = ( + 18, + n0, + _TMD, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY: StaticSchema = ( + 18, + n0, + _TMDATCP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticSchema = ( + 18, + n0, + _TMDATFLEC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP: StaticSchema = ( + 18, + n0, + _TMDATKG, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL: StaticSchema = ( + 18, + n0, + _TMDATOAC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _TMDATORP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _TMDATRHP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _TMDWFA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _TMDWLA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN: StaticSchema = ( + 18, + n0, + _TMDWSFARN, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FUNCTION_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _TMFA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_HEADERS_IN_FORWARDED_VALUES: StaticSchema = ( + 18, + n0, + _TMHIFV, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION: StaticSchema = ( + 18, + n0, + _TMKGATD, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _TMLFA, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_ORIGIN_CUSTOM_HEADERS: StaticSchema = ( + 18, + n0, + _TMOCH, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION: StaticSchema = ( + 18, + n0, + _TMOGPD, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_ORIGINS: StaticSchema = ( + 18, + n0, + _TMO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_QUERY_STRING_PARAMETERS: StaticSchema = ( + 18, + n0, + _TMQSP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_TRUSTED_SIGNERS: StaticSchema = ( + 18, + n0, + _TMTS, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TRUSTED_KEY_GROUP_DOES_NOT_EXIST: StaticSchema = ( + 18, + n0, + _TKGDNE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TRUSTED_SIGNER_DOES_NOT_EXIST: StaticSchema = ( + 18, + n0, + _TSDNE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +COPY_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _CD, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distribution/{PrimaryDistributionId}/copy", + "code": 201, + } + ) + }, + COPY_DISTRIBUTION_INPUT, + COPY_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + DISTRIBUTION_ALREADY_EXISTS, + ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_DEFAULT_ROOT_OBJECT, + INVALID_ERROR_CODE, + INVALID_FORWARD_COOKIES, + INVALID_FUNCTION_ASSOCIATION, + INVALID_GEO_RESTRICTION_PARAMETER, + INVALID_HEADERS_FOR_S3_ORIGIN, + INVALID_IF_MATCH_VERSION, + INVALID_LAMBDA_FUNCTION_ASSOCIATION, + INVALID_LOCATION_CODE, + INVALID_MINIMUM_PROTOCOL_VERSION, + INVALID_ORIGIN, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_ORIGIN_KEEPALIVE_TIMEOUT, + INVALID_ORIGIN_READ_TIMEOUT, + INVALID_PROTOCOL_SETTINGS, + INVALID_QUERY_STRING_PARAMETERS, + INVALID_RELATIVE_PATH, + INVALID_REQUIRED_PROTOCOL, + INVALID_RESPONSE_CODE, + INVALID_TTL_ORDER, + INVALID_VIEWER_CERTIFICATE, + INVALID_WEB_ACL_ID, + MISSING_BODY, + NO_SUCH_CACHE_POLICY, + NO_SUCH_DISTRIBUTION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_ORIGIN, + NO_SUCH_ORIGIN_REQUEST_POLICY, + NO_SUCH_REALTIME_LOG_CONFIG, + NO_SUCH_RESPONSE_HEADERS_POLICY, + PRECONDITION_FAILED, + REALTIME_LOG_CONFIG_OWNER_MISMATCH, + TOO_MANY_CACHE_BEHAVIORS, + TOO_MANY_CERTIFICATES, + TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST, + TOO_MANY_DISTRIBUTION_CNAM_ES, + TOO_MANY_DISTRIBUTIONS, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY, + TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN, + TOO_MANY_FUNCTION_ASSOCIATIONS, + TOO_MANY_HEADERS_IN_FORWARDED_VALUES, + TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION, + TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS, + TOO_MANY_ORIGIN_CUSTOM_HEADERS, + TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION, + TOO_MANY_ORIGINS, + TOO_MANY_QUERY_STRING_PARAMETERS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_KEY_GROUP_DOES_NOT_EXIST, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG: StaticSchema = (18, n0, _Ta, 0, (_K, _Va), ((TAG_KEY, 1), (TAG_VALUE, 0))) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TAG, {_sN: _Ta}),)) + +TAGS: StaticSchema = (18, n0, _Tag, 0, (_I,), ((TAG_LIST, 0),)) + +CREATE_ANYCAST_IP_LIST_INPUT: StaticSchema = ( + 18, + n0, + _CAILI, + {_sSI: _cCAILR, _smit: None}, + (_N, _ICp, _Tag, _IAT, _ICCp), + ( + (ANYCAST_IP_LIST_NAME, 1), + (INTEGER, 1), + (TAGS, 0), + (IP_ADDRESS_TYPE, 0), + (IPAM_CIDR_CONFIG_LIST, 0), + ), +) + +CREATE_ANYCAST_IP_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _CAILO, + {_sSI: _cCAILRo, _smith: None}, + (_AIL, _ET), + ((ANYCAST_IP_LIST, 16), (STRING, {_sH: _ET})), +) + +ENTITY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _EAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +INVALID_TAGGING: StaticSchema = ( + 18, + n0, + _ITn, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +UNSUPPORTED_OPERATION: StaticSchema = ( + 18, + n0, + _UO, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_ANYCAST_IP_LIST: StaticOperationSchema = ( + 23, + n0, + _CAIL, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/anycast-ip-list", "code": 202} + ) + }, + CREATE_ANYCAST_IP_LIST_INPUT, + CREATE_ANYCAST_IP_LIST_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + INVALID_TAGGING, + UNSUPPORTED_OPERATION, + ), +) + +CREATE_CACHE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CCPI, + {_sSI: _cCCPR, _smit: None}, + (_CPC,), + ((CACHE_POLICY_CONFIG, {_sN: _CPC, _smi: None, _sP: None}),), +) + +CREATE_CACHE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CCPO, + {_sSI: _cCCPRo, _smith: None}, + (_CPa, _L, _ET), + ((CACHE_POLICY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +TOO_MANY_CACHE_POLICIES: StaticSchema = ( + 18, + n0, + _TMCP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_COOKIES_IN_CACHE_POLICY: StaticSchema = ( + 18, + n0, + _TMCICP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_HEADERS_IN_CACHE_POLICY: StaticSchema = ( + 18, + n0, + _TMHICP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_QUERY_STRINGS_IN_CACHE_POLICY: StaticSchema = ( + 18, + n0, + _TMQSICP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_CACHE_POLICY: StaticOperationSchema = ( + 23, + n0, + _CCP, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/cache-policy", "code": 201} + ) + }, + CREATE_CACHE_POLICY_INPUT, + CREATE_CACHE_POLICY_OUTPUT, + ( + ACCESS_DENIED, + CACHE_POLICY_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + TOO_MANY_CACHE_POLICIES, + TOO_MANY_COOKIES_IN_CACHE_POLICY, + TOO_MANY_HEADERS_IN_CACHE_POLICY, + TOO_MANY_QUERY_STRINGS_IN_CACHE_POLICY, + ), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _CFOAIAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG: StaticSchema = ( + 18, + n0, + _CFOAIC, + 0, + (_CR, _Comm), + ((STRING, 1), (STRING, 1)), +) + +CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT: StaticSchema = ( + 18, + n0, + _CCFOAII, + {_sSI: _cCCFOAIR, _smit: None}, + (_CFOAIC,), + ( + ( + CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, + {_sN: _CFOAIC, _smi: None, _sP: None}, + ), + ), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticSchema = ( + 18, + n0, + _CFOAI, + 0, + (_Id, _SCUI, _CFOAIC), + ((STRING, 1), (STRING, 1), (CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, 0)), +) + +CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT: StaticSchema = ( + 18, + n0, + _CCFOAIO, + {_sSI: _cCCFOAIRo, _smith: None}, + (_CFOAI, _L, _ET), + ( + (CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, 16), + (STRING, {_sH: _L}), + (STRING, {_sH: _ET}), + ), +) + +TOO_MANY_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES: StaticSchema = ( + 18, + n0, + _TMCFOAI, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticOperationSchema = ( + 23, + n0, + _CCFOAI, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/origin-access-identity/cloudfront", + "code": 201, + } + ) + }, + CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT, + CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT, + ( + CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + MISSING_BODY, + TOO_MANY_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES, + ), +) + +FUNCTION_BLOB: StaticSchema = (1, n0, _FB, 4) + +KEY_VALUE_STORE_ARN: StaticSchema = (3, n0, _KVSARN, 0) + +KEY_VALUE_STORE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _KVSA, + 0, + (_KVSARN,), + ((KEY_VALUE_STORE_ARN, 1),), +) + +KEY_VALUE_STORE_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _KVSAL, + 0, + (_m,), + ((KEY_VALUE_STORE_ASSOCIATION, {_sN: _KVSA}),), +) + +KEY_VALUE_STORE_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _KVSAe, + 0, + (_Q, _I), + ((INTEGER, 1), (KEY_VALUE_STORE_ASSOCIATION_LIST, 0)), +) + +FUNCTION_RUNTIME: StaticSchema = ( + 14, + n0, + _FR, + 0, + (_cj, _cj__), + ((-1, {_sV: _cj_}), (-1, {_sV: _cj___})), +) + +FUNCTION_CONFIG: StaticSchema = ( + 18, + n0, + _FCu, + 0, + (_Comm, _Ru, _KVSAe), + ((STRING, 1), (FUNCTION_RUNTIME, 1), (KEY_VALUE_STORE_ASSOCIATIONS, 0)), +) + +FUNCTION_NAME: StaticSchema = (3, n0, _FN, 0) + +CREATE_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _CCFI, + {_sSI: _cCCFR, _smit: None}, + (_N, _CFC, _CFCo, _Tag), + ((FUNCTION_NAME, 1), (FUNCTION_CONFIG, 1), (FUNCTION_BLOB, 1), (TAGS, 0)), +) + +FUNCTION_STAGE: StaticSchema = ( + 14, + n0, + _FS, + 0, + (_DEVELOPMENT, _LIVE), + ((-1, {_sV: _DEVELOPMENT}), (-1, {_sV: _LIVE})), +) + +CONNECTION_FUNCTION_SUMMARY: StaticSchema = ( + 18, + n0, + _CFS, + 0, + (_N, _Id, _CFC, _CFAo, _St, _Stag, _CTr, _LMT), + ( + (FUNCTION_NAME, 1), + (RESOURCE_ID, 1), + (FUNCTION_CONFIG, 1), + (STRING, 1), + (STRING, 1), + (FUNCTION_STAGE, 1), + (TIMESTAMP, 1), + (TIMESTAMP, 1), + ), +) + +CREATE_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CCFO, + {_sSI: _cCCFRo, _smith: None}, + (_CFS, _L, _ET), + ((CONNECTION_FUNCTION_SUMMARY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +ENTITY_SIZE_LIMIT_EXCEEDED: StaticSchema = ( + 18, + n0, + _ESLE, + {_sm: _c, _sE: 413}, + (_Me,), + ((STRING, 0),), +) + +CREATE_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _CCF, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/connection-function", "code": 201} + ) + }, + CREATE_CONNECTION_FUNCTION_INPUT, + CREATE_CONNECTION_FUNCTION_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_SIZE_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + INVALID_TAGGING, + UNSUPPORTED_OPERATION, + ), +) + +CREATE_CONNECTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CCGI, + {_sSI: _cCCGR, _smit: None}, + (_N, _IE, _Tag, _AILI, _E), + ((STRING, 1), (BOOLEAN, 0), (TAGS, 0), (STRING, 0), (BOOLEAN, 0)), +) + +CONNECTION_GROUP: StaticSchema = ( + 18, + n0, + _CG, + 0, + (_Id, _N, _Ar, _CTr, _LMT, _Tag, _IE, _RE, _AILI, _St, _E, _ID), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TAGS, 0), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +CREATE_CONNECTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CCGO, + {_sSI: _cCCGRo, _smith: None}, + (_CG, _ET), + ((CONNECTION_GROUP, 16), (STRING, {_sH: _ET})), +) + +CREATE_CONNECTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _CCG, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/connection-group", "code": 201} + ) + }, + CREATE_CONNECTION_GROUP_INPUT, + CREATE_CONNECTION_GROUP_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_TAGGING, + ), +) + +CONTINUOUS_DEPLOYMENT_POLICY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _CDPAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +STAGING_DISTRIBUTION_DNS_NAME_LIST: StaticSchema = ( + 16, + n0, + _SDDNL, + 0, + (_m,), + ((STRING, {_sN: _DNn}),), +) + +STAGING_DISTRIBUTION_DNS_NAMES: StaticSchema = ( + 18, + n0, + _SDDN, + 0, + (_Q, _I), + ((INTEGER, 1), (STAGING_DISTRIBUTION_DNS_NAME_LIST, 0)), +) + +CONTINUOUS_DEPLOYMENT_SINGLE_HEADER_CONFIG: StaticSchema = ( + 18, + n0, + _CDSHC, + 0, + (_H, _Va), + ((STRING, 1), (STRING, 1)), +) + +SESSION_STICKINESS_CONFIG: StaticSchema = ( + 18, + n0, + _SSCe, + 0, + (_ITTL, _MTTLax), + ((INTEGER, 1), (INTEGER, 1)), +) + +FLOAT: StaticSchema = (9, n0, _f, 0) + +CONTINUOUS_DEPLOYMENT_SINGLE_WEIGHT_CONFIG: StaticSchema = ( + 18, + n0, + _CDSWC, + 0, + (_We, _SSCe), + ((FLOAT, 1), (SESSION_STICKINESS_CONFIG, 0)), +) + +CONTINUOUS_DEPLOYMENT_POLICY_TYPE: StaticSchema = ( + 14, + n0, + _CDPT, + 0, + (_SW, _SH), + ((-1, {_sV: _SW}), (-1, {_sV: _SH})), +) + +TRAFFIC_CONFIG: StaticSchema = ( + 18, + n0, + _TCr, + 0, + (_SWC, _SHC, _T), + ( + (CONTINUOUS_DEPLOYMENT_SINGLE_WEIGHT_CONFIG, 0), + (CONTINUOUS_DEPLOYMENT_SINGLE_HEADER_CONFIG, 0), + (CONTINUOUS_DEPLOYMENT_POLICY_TYPE, 1), + ), +) + +CONTINUOUS_DEPLOYMENT_POLICY_CONFIG: StaticSchema = ( + 18, + n0, + _CDPC, + 0, + (_SDDN, _E, _TCr), + ((STAGING_DISTRIBUTION_DNS_NAMES, 1), (BOOLEAN, 1), (TRAFFIC_CONFIG, 0)), +) + +CREATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CCDPI, + {_sSI: _cCCDPR, _smit: None}, + (_CDPC,), + ((CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, {_sN: _CDPC, _smi: None, _sP: None}),), +) + +CONTINUOUS_DEPLOYMENT_POLICY: StaticSchema = ( + 18, + n0, + _CDP, + 0, + (_Id, _LMT, _CDPC), + ((STRING, 1), (TIMESTAMP, 1), (CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, 1)), +) + +CREATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CCDPO, + {_sSI: _cCCDPRo, _smith: None}, + (_CDP, _L, _ET), + ((CONTINUOUS_DEPLOYMENT_POLICY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +STAGING_DISTRIBUTION_IN_USE: StaticSchema = ( + 18, + n0, + _SDIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_CONTINUOUS_DEPLOYMENT_POLICIES: StaticSchema = ( + 18, + n0, + _TMCDP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_CONTINUOUS_DEPLOYMENT_POLICY: StaticOperationSchema = ( + 23, + n0, + _CCDP, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/continuous-deployment-policy", + "code": 201, + } + ) + }, + CREATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT, + CREATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT, + ( + ACCESS_DENIED, + CONTINUOUS_DEPLOYMENT_POLICY_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + STAGING_DISTRIBUTION_IN_USE, + TOO_MANY_CONTINUOUS_DEPLOYMENT_POLICIES, + ), +) + +CONTINUOUS_DEPLOYMENT_POLICY_IN_USE: StaticSchema = ( + 18, + n0, + _CDPIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CREATE_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _CDIr, + {_sSI: _cCDRom, _smit: None}, + (_DC,), + ((DISTRIBUTION_CONFIG, {_sN: _DC, _smi: None, _sP: None}),), +) + +CREATE_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CDOr, + {_sSI: _cCDRoma, _smith: None}, + (_Dis, _L, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +ILLEGAL_ORIGIN_ACCESS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _IOACl, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +INVALID_DOMAIN_NAME_FOR_ORIGIN_ACCESS_CONTROL: StaticSchema = ( + 18, + n0, + _IDNFOAC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY: StaticSchema = ( + 18, + n0, + _NSCDP, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +CREATE_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _CDr, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/distribution", "code": 201} + ) + }, + CREATE_DISTRIBUTION_INPUT, + CREATE_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + CONTINUOUS_DEPLOYMENT_POLICY_IN_USE, + DISTRIBUTION_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR, + ILLEGAL_ORIGIN_ACCESS_CONFIGURATION, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_DEFAULT_ROOT_OBJECT, + INVALID_DOMAIN_NAME_FOR_ORIGIN_ACCESS_CONTROL, + INVALID_ERROR_CODE, + INVALID_FORWARD_COOKIES, + INVALID_FUNCTION_ASSOCIATION, + INVALID_GEO_RESTRICTION_PARAMETER, + INVALID_HEADERS_FOR_S3_ORIGIN, + INVALID_LAMBDA_FUNCTION_ASSOCIATION, + INVALID_LOCATION_CODE, + INVALID_MINIMUM_PROTOCOL_VERSION, + INVALID_ORIGIN, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_ORIGIN_KEEPALIVE_TIMEOUT, + INVALID_ORIGIN_READ_TIMEOUT, + INVALID_PROTOCOL_SETTINGS, + INVALID_QUERY_STRING_PARAMETERS, + INVALID_RELATIVE_PATH, + INVALID_REQUIRED_PROTOCOL, + INVALID_RESPONSE_CODE, + INVALID_TTL_ORDER, + INVALID_VIEWER_CERTIFICATE, + INVALID_WEB_ACL_ID, + MISSING_BODY, + NO_SUCH_CACHE_POLICY, + NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_ORIGIN, + NO_SUCH_ORIGIN_REQUEST_POLICY, + NO_SUCH_REALTIME_LOG_CONFIG, + NO_SUCH_RESPONSE_HEADERS_POLICY, + REALTIME_LOG_CONFIG_OWNER_MISMATCH, + TOO_MANY_CACHE_BEHAVIORS, + TOO_MANY_CERTIFICATES, + TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST, + TOO_MANY_DISTRIBUTION_CNAM_ES, + TOO_MANY_DISTRIBUTIONS, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY, + TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN, + TOO_MANY_FUNCTION_ASSOCIATIONS, + TOO_MANY_HEADERS_IN_FORWARDED_VALUES, + TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION, + TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS, + TOO_MANY_ORIGIN_CUSTOM_HEADERS, + TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION, + TOO_MANY_ORIGINS, + TOO_MANY_QUERY_STRING_PARAMETERS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_KEY_GROUP_DOES_NOT_EXIST, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +GEO_RESTRICTION_CUSTOMIZATION: StaticSchema = ( + 18, + n0, + _GRC, + 0, + (_RT, _Loc), + ((GEO_RESTRICTION_TYPE, 1), (LOCATION_LIST, 0)), +) + +CUSTOMIZATION_ACTION_TYPE: StaticSchema = ( + 14, + n0, + _CAT, + 0, + (_ov, _dis), + ((-1, {_sV: _ov}), (-1, {_sV: _dis})), +) + +WEB_ACL_CUSTOMIZATION: StaticSchema = ( + 18, + n0, + _WAC, + 0, + (_Ac, _Ar), + ((CUSTOMIZATION_ACTION_TYPE, 1), (STRING, 0)), +) + +CUSTOMIZATIONS: StaticSchema = ( + 18, + n0, + _Cu, + 0, + (_WA, _Ce, _GRe), + ((WEB_ACL_CUSTOMIZATION, 0), (CERTIFICATE, 0), (GEO_RESTRICTION_CUSTOMIZATION, 0)), +) + +DOMAIN_ITEM: StaticSchema = (18, n0, _DI, 0, (_Do,), ((STRING, 1),)) + +DOMAIN_LIST: StaticSchema = (16, n0, _DL, 0, (_m,), ((DOMAIN_ITEM, 0),)) + +VALIDATION_TOKEN_HOST: StaticSchema = ( + 14, + n0, + _VTH, + 0, + (_CF, _SHe), + ((-1, {_sV: _cl}), (-1, {_sV: _sh})), +) + +MANAGED_CERTIFICATE_REQUEST: StaticSchema = ( + 18, + n0, + _MCR, + 0, + (_VTH, _PDN, _CTLP), + ( + (VALIDATION_TOKEN_HOST, 1), + (STRING, 0), + (CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE, 0), + ), +) + +PARAMETER: StaticSchema = ( + 18, + n0, + _Par, + 0, + (_N, _Va), + ((PARAMETER_NAME, 1), (PARAMETER_VALUE, 1)), +) + +PARAMETERS: StaticSchema = (16, n0, _Para, 0, (_m,), ((PARAMETER, 0),)) + +CREATE_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _CDTI, + {_sSI: _cCDTR, _smit: None}, + (_DIi, _N, _Dom, _Tag, _Cu, _Para, _CGI, _MCR, _E), + ( + (STRING, 1), + (STRING, 1), + (DOMAIN_LIST, 1), + (TAGS, 0), + (CUSTOMIZATIONS, 0), + (PARAMETERS, 0), + (STRING, 0), + (MANAGED_CERTIFICATE_REQUEST, 0), + (BOOLEAN, 0), + ), +) + +DOMAIN_STATUS: StaticSchema = ( + 14, + n0, + _DSo, + 0, + (_Act, _In), + ((-1, {_sV: _act}), (-1, {_sV: _in})), +) + +DOMAIN_RESULT: StaticSchema = ( + 18, + n0, + _DR, + 0, + (_Do, _St), + ((STRING, 1), (DOMAIN_STATUS, 0)), +) + +DOMAIN_RESULT_LIST: StaticSchema = (16, n0, _DRL, 0, (_m,), ((DOMAIN_RESULT, 0),)) + +DISTRIBUTION_TENANT: StaticSchema = ( + 18, + n0, + _DT, + 0, + (_Id, _DIi, _N, _Ar, _Dom, _Tag, _Cu, _Para, _CGI, _CTr, _LMT, _E, _St), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DOMAIN_RESULT_LIST, 0), + (TAGS, 0), + (CUSTOMIZATIONS, 0), + (PARAMETERS, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +CREATE_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDTO, + {_sSI: _cCDTRo, _smith: None}, + (_DT, _ET), + ((DISTRIBUTION_TENANT, 16), (STRING, {_sH: _ET})), +) + +INVALID_ASSOCIATION: StaticSchema = ( + 18, + n0, + _IAn, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CREATE_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _CDT, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/distribution-tenant", "code": 201} + ) + }, + CREATE_DISTRIBUTION_TENANT_INPUT, + CREATE_DISTRIBUTION_TENANT_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_ASSOCIATION, + INVALID_TAGGING, + ), +) + +DISTRIBUTION_CONFIG_WITH_TAGS: StaticSchema = ( + 18, + n0, + _DCWT, + 0, + (_DC, _Tag), + ((DISTRIBUTION_CONFIG, 1), (TAGS, 1)), +) + +CREATE_DISTRIBUTION_WITH_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _CDWTI, + {_sSI: _cCDWTR, _smit: None}, + (_DCWT,), + ((DISTRIBUTION_CONFIG_WITH_TAGS, {_sN: _DCWT, _smi: None, _sP: None}),), +) + +CREATE_DISTRIBUTION_WITH_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _CDWTO, + {_sSI: _cCDWTRo, _smith: None}, + (_Dis, _L, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +CREATE_DISTRIBUTION_WITH_TAGS: StaticOperationSchema = ( + 23, + n0, + _CDWT, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/distribution?WithTags", "code": 201} + ) + }, + CREATE_DISTRIBUTION_WITH_TAGS_INPUT, + CREATE_DISTRIBUTION_WITH_TAGS_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + CONTINUOUS_DEPLOYMENT_POLICY_IN_USE, + DISTRIBUTION_ALREADY_EXISTS, + ENTITY_NOT_FOUND, + ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR, + ILLEGAL_ORIGIN_ACCESS_CONFIGURATION, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_DEFAULT_ROOT_OBJECT, + INVALID_DOMAIN_NAME_FOR_ORIGIN_ACCESS_CONTROL, + INVALID_ERROR_CODE, + INVALID_FORWARD_COOKIES, + INVALID_FUNCTION_ASSOCIATION, + INVALID_GEO_RESTRICTION_PARAMETER, + INVALID_HEADERS_FOR_S3_ORIGIN, + INVALID_LAMBDA_FUNCTION_ASSOCIATION, + INVALID_LOCATION_CODE, + INVALID_MINIMUM_PROTOCOL_VERSION, + INVALID_ORIGIN, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_ORIGIN_KEEPALIVE_TIMEOUT, + INVALID_ORIGIN_READ_TIMEOUT, + INVALID_PROTOCOL_SETTINGS, + INVALID_QUERY_STRING_PARAMETERS, + INVALID_RELATIVE_PATH, + INVALID_REQUIRED_PROTOCOL, + INVALID_RESPONSE_CODE, + INVALID_TAGGING, + INVALID_TTL_ORDER, + INVALID_VIEWER_CERTIFICATE, + INVALID_WEB_ACL_ID, + MISSING_BODY, + NO_SUCH_CACHE_POLICY, + NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_ORIGIN, + NO_SUCH_ORIGIN_REQUEST_POLICY, + NO_SUCH_REALTIME_LOG_CONFIG, + NO_SUCH_RESPONSE_HEADERS_POLICY, + REALTIME_LOG_CONFIG_OWNER_MISMATCH, + TOO_MANY_CACHE_BEHAVIORS, + TOO_MANY_CERTIFICATES, + TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST, + TOO_MANY_DISTRIBUTION_CNAM_ES, + TOO_MANY_DISTRIBUTIONS, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY, + TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN, + TOO_MANY_FUNCTION_ASSOCIATIONS, + TOO_MANY_HEADERS_IN_FORWARDED_VALUES, + TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION, + TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS, + TOO_MANY_ORIGIN_CUSTOM_HEADERS, + TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION, + TOO_MANY_ORIGINS, + TOO_MANY_QUERY_STRING_PARAMETERS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_KEY_GROUP_DOES_NOT_EXIST, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +FORMAT: StaticSchema = (14, n0, _Fo, 0, (_URLE,), ((-1, {_sV: _URLE}),)) + +CONTENT_TYPE_PROFILE: StaticSchema = ( + 18, + n0, + _CTP, + 0, + (_Fo, _PI, _CTon), + ((FORMAT, 1), (STRING, 0), (STRING, 1)), +) + +CONTENT_TYPE_PROFILE_LIST: StaticSchema = ( + 16, + n0, + _CTPL, + 0, + (_m,), + ((CONTENT_TYPE_PROFILE, {_sN: _CTP}),), +) + +CONTENT_TYPE_PROFILES: StaticSchema = ( + 18, + n0, + _CTPo, + 0, + (_Q, _I), + ((INTEGER, 1), (CONTENT_TYPE_PROFILE_LIST, 0)), +) + +CONTENT_TYPE_PROFILE_CONFIG: StaticSchema = ( + 18, + n0, + _CTPC, + 0, + (_FWCTIU, _CTPo), + ((BOOLEAN, 1), (CONTENT_TYPE_PROFILES, 0)), +) + +QUERY_ARG_PROFILE: StaticSchema = ( + 18, + n0, + _QAP, + 0, + (_QA, _PI), + ((STRING, 1), (STRING, 1)), +) + +QUERY_ARG_PROFILE_LIST: StaticSchema = ( + 16, + n0, + _QAPL, + 0, + (_m,), + ((QUERY_ARG_PROFILE, {_sN: _QAP}),), +) + +QUERY_ARG_PROFILES: StaticSchema = ( + 18, + n0, + _QAPu, + 0, + (_Q, _I), + ((INTEGER, 1), (QUERY_ARG_PROFILE_LIST, 0)), +) + +QUERY_ARG_PROFILE_CONFIG: StaticSchema = ( + 18, + n0, + _QAPC, + 0, + (_FWQAPIU, _QAPu), + ((BOOLEAN, 1), (QUERY_ARG_PROFILES, 0)), +) + +FIELD_LEVEL_ENCRYPTION_CONFIG: StaticSchema = ( + 18, + n0, + _FLEC, + 0, + (_CR, _Comm, _QAPC, _CTPC), + ( + (STRING, 1), + (STRING, 0), + (QUERY_ARG_PROFILE_CONFIG, 0), + (CONTENT_TYPE_PROFILE_CONFIG, 0), + ), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _CFLECI, + {_sSI: _cCFLECR, _smit: None}, + (_FLEC,), + ((FIELD_LEVEL_ENCRYPTION_CONFIG, {_sN: _FLEC, _smi: None, _sP: None}),), +) + +FIELD_LEVEL_ENCRYPTION: StaticSchema = ( + 18, + n0, + _FLE, + 0, + (_Id, _LMT, _FLEC), + ((STRING, 1), (TIMESTAMP, 1), (FIELD_LEVEL_ENCRYPTION_CONFIG, 1)), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _CFLECO, + {_sSI: _cCFLECRo, _smith: None}, + (_FLE, _L, _ET), + ((FIELD_LEVEL_ENCRYPTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +FIELD_LEVEL_ENCRYPTION_CONFIG_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _FLECAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE: StaticSchema = ( + 18, + n0, + _NSFLEP, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +QUERY_ARG_PROFILE_EMPTY: StaticSchema = ( + 18, + n0, + _QAPE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONFIGS: StaticSchema = ( + 18, + n0, + _TMFLEC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONTENT_TYPE_PROFILES: StaticSchema = ( + 18, + n0, + _TMFLECTP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_QUERY_ARG_PROFILES: StaticSchema = ( + 18, + n0, + _TMFLEQAP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _CFLEC, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/field-level-encryption", "code": 201} + ) + }, + CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT, + CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT, + ( + FIELD_LEVEL_ENCRYPTION_CONFIG_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE, + QUERY_ARG_PROFILE_EMPTY, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONFIGS, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONTENT_TYPE_PROFILES, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_QUERY_ARG_PROFILES, + ), +) + +FIELD_PATTERN_LIST: StaticSchema = (16, n0, _FPL, 0, (_m,), ((STRING, {_sN: _FPi}),)) + +FIELD_PATTERNS: StaticSchema = ( + 18, + n0, + _FPie, + 0, + (_Q, _I), + ((INTEGER, 1), (FIELD_PATTERN_LIST, 0)), +) + +ENCRYPTION_ENTITY: StaticSchema = ( + 18, + n0, + _EE, + 0, + (_PKI, _PIr, _FPie), + ((STRING, 1), (STRING, 1), (FIELD_PATTERNS, 1)), +) + +ENCRYPTION_ENTITY_LIST: StaticSchema = ( + 16, + n0, + _EEL, + 0, + (_m,), + ((ENCRYPTION_ENTITY, {_sN: _EE}),), +) + +ENCRYPTION_ENTITIES: StaticSchema = ( + 18, + n0, + _EEn, + 0, + (_Q, _I), + ((INTEGER, 1), (ENCRYPTION_ENTITY_LIST, 0)), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG: StaticSchema = ( + 18, + n0, + _FLEPC, + 0, + (_N, _CR, _Comm, _EEn), + ((STRING, 1), (STRING, 1), (STRING, 0), (ENCRYPTION_ENTITIES, 1)), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _CFLEPI, + {_sSI: _cCFLEPR, _smit: None}, + (_FLEPC,), + ((FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, {_sN: _FLEPC, _smi: None, _sP: None}),), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE: StaticSchema = ( + 18, + n0, + _FLEP, + 0, + (_Id, _LMT, _FLEPC), + ((STRING, 1), (TIMESTAMP, 1), (FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, 1)), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _CFLEPO, + {_sSI: _cCFLEPRo, _smith: None}, + (_FLEP, _L, _ET), + ((FIELD_LEVEL_ENCRYPTION_PROFILE, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _FLEPAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_SIZE_EXCEEDED: StaticSchema = ( + 18, + n0, + _FLEPSE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_PUBLIC_KEY: StaticSchema = ( + 18, + n0, + _NSPK, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_ENCRYPTION_ENTITIES: StaticSchema = ( + 18, + n0, + _TMFLEEE, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_FIELD_PATTERNS: StaticSchema = ( + 18, + n0, + _TMFLEFP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FIELD_LEVEL_ENCRYPTION_PROFILES: StaticSchema = ( + 18, + n0, + _TMFLEP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE: StaticOperationSchema = ( + 23, + n0, + _CFLEP, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/field-level-encryption-profile", + "code": 201, + } + ) + }, + CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT, + CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT, + ( + FIELD_LEVEL_ENCRYPTION_PROFILE_ALREADY_EXISTS, + FIELD_LEVEL_ENCRYPTION_PROFILE_SIZE_EXCEEDED, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + NO_SUCH_PUBLIC_KEY, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_ENCRYPTION_ENTITIES, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_FIELD_PATTERNS, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_PROFILES, + ), +) + +CREATE_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _CFI, + {_sSI: _cCFR, _smit: None}, + (_N, _FCu, _FCun, _Tag), + ((FUNCTION_NAME, 1), (FUNCTION_CONFIG, 1), (FUNCTION_BLOB, 1), (TAGS, 0)), +) + +FUNCTION_METADATA: StaticSchema = ( + 18, + n0, + _FM, + 0, + (_FARN, _Stag, _CTr, _LMT), + ((STRING, 1), (FUNCTION_STAGE, 0), (TIMESTAMP, 0), (TIMESTAMP, 1)), +) + +FUNCTION_SUMMARY: StaticSchema = ( + 18, + n0, + _FSu, + 0, + (_N, _St, _FCu, _FM), + ((FUNCTION_NAME, 1), (STRING, 0), (FUNCTION_CONFIG, 1), (FUNCTION_METADATA, 1)), +) + +CREATE_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CFO, + {_sSI: _cCFRo, _smith: None}, + (_FSu, _L, _ET), + ((FUNCTION_SUMMARY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +FUNCTION_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _FAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +FUNCTION_SIZE_LIMIT_EXCEEDED: StaticSchema = ( + 18, + n0, + _FSLE, + {_sm: _c, _sE: 413}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_FUNCTIONS: StaticSchema = ( + 18, + n0, + _TMF, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _CFr, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/function", "code": 201} + ) + }, + CREATE_FUNCTION_INPUT, + CREATE_FUNCTION_OUTPUT, + ( + FUNCTION_ALREADY_EXISTS, + FUNCTION_SIZE_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + TOO_MANY_FUNCTIONS, + UNSUPPORTED_OPERATION, + ), +) + +PATH_LIST: StaticSchema = (16, n0, _PL, 0, (_m,), ((STRING, {_sN: _Pat}),)) + +PATHS: StaticSchema = (18, n0, _Path, 0, (_Q, _I), ((INTEGER, 1), (PATH_LIST, 0))) + +INVALIDATION_BATCH: StaticSchema = ( + 18, + n0, + _IBn, + 0, + (_Path, _CR), + ((PATHS, 1), (STRING, 1)), +) + +CREATE_INVALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _CII, + {_sSI: _cCIR, _smit: None}, + (_DIi, _IBn), + ((STRING, 9), (INVALIDATION_BATCH, {_sN: _IBn, _smi: None, _sP: None})), +) + +INVALIDATION: StaticSchema = ( + 18, + n0, + _Inv, + 0, + (_Id, _St, _CTre, _IBn), + ((STRING, 1), (STRING, 1), (TIMESTAMP, 1), (INVALIDATION_BATCH, 1)), +) + +CREATE_INVALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CIO, + {_sSI: _cCIRo, _smith: None}, + (_L, _Inv), + ((STRING, {_sH: _L}), (INVALIDATION, 16)), +) + +TOO_MANY_INVALIDATIONS_IN_PROGRESS: StaticSchema = ( + 18, + n0, + _TMIIP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_INVALIDATION: StaticOperationSchema = ( + 23, + n0, + _CI, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation", + "code": 201, + } + ) + }, + CREATE_INVALIDATION_INPUT, + CREATE_INVALIDATION_OUTPUT, + ( + ACCESS_DENIED, + BATCH_TOO_LARGE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + MISSING_BODY, + NO_SUCH_DISTRIBUTION, + TOO_MANY_INVALIDATIONS_IN_PROGRESS, + ), +) + +CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _CIFDTI, + {_sSI: _cCIFDTR, _smit: None}, + (_Id, _IBn), + ((STRING, 9), (INVALIDATION_BATCH, {_sN: _IBn, _smi: None, _sP: None})), +) + +CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _CIFDTO, + {_sSI: _cCIFDTRo, _smith: None}, + (_L, _Inv), + ((STRING, {_sH: _L}), (INVALIDATION, 16)), +) + +CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _CIFDT, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distribution-tenant/{Id}/invalidation", + "code": 201, + } + ) + }, + CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT, + CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT, + ( + ACCESS_DENIED, + BATCH_TOO_LARGE, + ENTITY_NOT_FOUND, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + MISSING_BODY, + TOO_MANY_INVALIDATIONS_IN_PROGRESS, + ), +) + +PUBLIC_KEY_ID_LIST: StaticSchema = (16, n0, _PKIL, 0, (_m,), ((STRING, {_sN: _PK}),)) + +KEY_GROUP_CONFIG: StaticSchema = ( + 18, + n0, + _KGC, + 0, + (_N, _I, _Comm), + ((STRING, 1), (PUBLIC_KEY_ID_LIST, 1), (STRING, 0)), +) + +CREATE_KEY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CKGI, + {_sSI: _cCKGR, _smit: None}, + (_KGC,), + ((KEY_GROUP_CONFIG, {_sN: _KGC, _smi: None, _sP: None}),), +) + +KEY_GROUP: StaticSchema = ( + 18, + n0, + _KG, + 0, + (_Id, _LMT, _KGC), + ((STRING, 1), (TIMESTAMP, 1), (KEY_GROUP_CONFIG, 1)), +) + +CREATE_KEY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CKGO, + {_sSI: _cCKGRo, _smith: None}, + (_KG, _L, _ET), + ((KEY_GROUP, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +KEY_GROUP_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _KGAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_KEY_GROUPS: StaticSchema = ( + 18, + n0, + _TMKG, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_PUBLIC_KEYS_IN_KEY_GROUP: StaticSchema = ( + 18, + n0, + _TMPKIKG, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_KEY_GROUP: StaticOperationSchema = ( + 23, + n0, + _CKG, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/key-group", "code": 201} + ) + }, + CREATE_KEY_GROUP_INPUT, + CREATE_KEY_GROUP_OUTPUT, + ( + INVALID_ARGUMENT, + KEY_GROUP_ALREADY_EXISTS, + TOO_MANY_KEY_GROUPS, + TOO_MANY_PUBLIC_KEYS_IN_KEY_GROUP, + ), +) + +KEY_VALUE_STORE_COMMENT: StaticSchema = (3, n0, _KVSC, 0) + +IMPORT_SOURCE_TYPE: StaticSchema = (14, n0, _IST, 0, (_S_,), ((-1, {_sV: _S_}),)) + +IMPORT_SOURCE: StaticSchema = ( + 18, + n0, + _ISm, + 0, + (_ST, _SARN), + ((IMPORT_SOURCE_TYPE, 1), (STRING, 1)), +) + +KEY_VALUE_STORE_NAME: StaticSchema = (3, n0, _KVSN, 0) + +CREATE_KEY_VALUE_STORE_INPUT: StaticSchema = ( + 18, + n0, + _CKVSI, + {_sSI: _cCKVSR, _smit: None}, + (_N, _Comm, _ISm, _Tag), + ( + (KEY_VALUE_STORE_NAME, 1), + (KEY_VALUE_STORE_COMMENT, 0), + (IMPORT_SOURCE, 0), + (TAGS, 0), + ), +) + +KEY_VALUE_STORE: StaticSchema = ( + 18, + n0, + _KVS, + 0, + (_N, _Id, _Comm, _ARN, _St, _LMT), + ((STRING, 1), (STRING, 1), (STRING, 1), (STRING, 1), (STRING, 0), (TIMESTAMP, 1)), +) + +CREATE_KEY_VALUE_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _CKVSO, + {_sSI: _cCKVSRo, _smith: None}, + (_KVS, _ET, _L), + ((KEY_VALUE_STORE, 16), (STRING, {_sH: _ET}), (STRING, {_sH: _L})), +) + +CREATE_KEY_VALUE_STORE: StaticOperationSchema = ( + 23, + n0, + _CKVS, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/key-value-store", "code": 201} + ) + }, + CREATE_KEY_VALUE_STORE_INPUT, + CREATE_KEY_VALUE_STORE_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_SIZE_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + UNSUPPORTED_OPERATION, + ), +) + +REALTIME_METRICS_SUBSCRIPTION_STATUS: StaticSchema = ( + 14, + n0, + _RMSS, + 0, + (_E, _Di), + ((-1, {_sV: _E}), (-1, {_sV: _Di})), +) + +REALTIME_METRICS_SUBSCRIPTION_CONFIG: StaticSchema = ( + 18, + n0, + _RMSC, + 0, + (_RMSS,), + ((REALTIME_METRICS_SUBSCRIPTION_STATUS, 1),), +) + +MONITORING_SUBSCRIPTION: StaticSchema = ( + 18, + n0, + _MS, + 0, + (_RMSC,), + ((REALTIME_METRICS_SUBSCRIPTION_CONFIG, 0),), +) + +CREATE_MONITORING_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _CMSI, + {_sSI: _cCMSR, _smit: None}, + (_DIi, _MS), + ((STRING, 9), (MONITORING_SUBSCRIPTION, {_sN: _MS, _smi: None, _sP: None})), +) + +CREATE_MONITORING_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CMSO, + {_sSI: _cCMSRo, _smith: None}, + (_MS,), + ((MONITORING_SUBSCRIPTION, 16),), +) + +MONITORING_SUBSCRIPTION_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _MSAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +CREATE_MONITORING_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _CMS, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200, + } + ) + }, + CREATE_MONITORING_SUBSCRIPTION_INPUT, + CREATE_MONITORING_SUBSCRIPTION_OUTPUT, + ( + ACCESS_DENIED, + MONITORING_SUBSCRIPTION_ALREADY_EXISTS, + NO_SUCH_DISTRIBUTION, + UNSUPPORTED_OPERATION, + ), +) + +ORIGIN_ACCESS_CONTROL_ORIGIN_TYPES: StaticSchema = ( + 14, + n0, + _OACOT, + 0, + (_s_, _me, _med, _la), + ((-1, {_sV: _s_}), (-1, {_sV: _me}), (-1, {_sV: _med}), (-1, {_sV: _la})), +) + +ORIGIN_ACCESS_CONTROL_SIGNING_BEHAVIORS: StaticSchema = ( + 14, + n0, + _OACSB, + 0, + (_ne, _alw, _no, _aaa), + ((-1, {_sV: _ne}), (-1, {_sV: _alw}), (-1, {_sV: _no_}), (-1, {_sV: _aaa_})), +) + +ORIGIN_ACCESS_CONTROL_SIGNING_PROTOCOLS: StaticSchema = ( + 14, + n0, + _OACSP, + 0, + (_sig, _sigv), + ((-1, {_sV: _sig}), (-1, {_sV: _sigv})), +) + +ORIGIN_ACCESS_CONTROL_CONFIG: StaticSchema = ( + 18, + n0, + _OACC, + 0, + (_N, _Des, _SPi, _SB, _OACOTr), + ( + (STRING, 1), + (STRING, 0), + (ORIGIN_ACCESS_CONTROL_SIGNING_PROTOCOLS, 1), + (ORIGIN_ACCESS_CONTROL_SIGNING_BEHAVIORS, 1), + (ORIGIN_ACCESS_CONTROL_ORIGIN_TYPES, 1), + ), +) + +CREATE_ORIGIN_ACCESS_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _COACI, + {_sSI: _cCOACR, _smit: None}, + (_OACC,), + ((ORIGIN_ACCESS_CONTROL_CONFIG, {_sN: _OACC, _smi: None, _sP: None}),), +) + +ORIGIN_ACCESS_CONTROL: StaticSchema = ( + 18, + n0, + _OAC, + 0, + (_Id, _OACC), + ((STRING, 1), (ORIGIN_ACCESS_CONTROL_CONFIG, 0)), +) + +CREATE_ORIGIN_ACCESS_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _COACO, + {_sSI: _cCOACRo, _smith: None}, + (_OAC, _L, _ET), + ((ORIGIN_ACCESS_CONTROL, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +ORIGIN_ACCESS_CONTROL_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _OACAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_ORIGIN_ACCESS_CONTROLS: StaticSchema = ( + 18, + n0, + _TMOAC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_ORIGIN_ACCESS_CONTROL: StaticOperationSchema = ( + 23, + n0, + _COAC, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/origin-access-control", "code": 201} + ) + }, + CREATE_ORIGIN_ACCESS_CONTROL_INPUT, + CREATE_ORIGIN_ACCESS_CONTROL_OUTPUT, + ( + INVALID_ARGUMENT, + ORIGIN_ACCESS_CONTROL_ALREADY_EXISTS, + TOO_MANY_ORIGIN_ACCESS_CONTROLS, + ), +) + +ORIGIN_REQUEST_POLICY_COOKIE_BEHAVIOR: StaticSchema = ( + 14, + n0, + _ORPCB, + 0, + (_n, _wh, _al, _aE), + ((-1, {_sV: _n}), (-1, {_sV: _wh}), (-1, {_sV: _al}), (-1, {_sV: _aE})), +) + +ORIGIN_REQUEST_POLICY_COOKIES_CONFIG: StaticSchema = ( + 18, + n0, + _ORPCC, + 0, + (_CBo, _Co), + ((ORIGIN_REQUEST_POLICY_COOKIE_BEHAVIOR, 1), (COOKIE_NAMES, 0)), +) + +ORIGIN_REQUEST_POLICY_HEADER_BEHAVIOR: StaticSchema = ( + 14, + n0, + _ORPHB, + 0, + (_n, _wh, _aV, _aVAWCF, _aE), + ( + (-1, {_sV: _n}), + (-1, {_sV: _wh}), + (-1, {_sV: _aV}), + (-1, {_sV: _aVAWCF}), + (-1, {_sV: _aE}), + ), +) + +ORIGIN_REQUEST_POLICY_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _ORPHC, + 0, + (_HB, _He), + ((ORIGIN_REQUEST_POLICY_HEADER_BEHAVIOR, 1), (HEADERS, 0)), +) + +ORIGIN_REQUEST_POLICY_QUERY_STRING_BEHAVIOR: StaticSchema = ( + 14, + n0, + _ORPQSB, + 0, + (_n, _wh, _al, _aE), + ((-1, {_sV: _n}), (-1, {_sV: _wh}), (-1, {_sV: _al}), (-1, {_sV: _aE})), +) + +ORIGIN_REQUEST_POLICY_QUERY_STRINGS_CONFIG: StaticSchema = ( + 18, + n0, + _ORPQSC, + 0, + (_QSB, _QSu), + ((ORIGIN_REQUEST_POLICY_QUERY_STRING_BEHAVIOR, 1), (QUERY_STRING_NAMES, 0)), +) + +ORIGIN_REQUEST_POLICY_CONFIG: StaticSchema = ( + 18, + n0, + _ORPC, + 0, + (_Comm, _N, _HC, _CC, _QSC), + ( + (STRING, 0), + (STRING, 1), + (ORIGIN_REQUEST_POLICY_HEADERS_CONFIG, 1), + (ORIGIN_REQUEST_POLICY_COOKIES_CONFIG, 1), + (ORIGIN_REQUEST_POLICY_QUERY_STRINGS_CONFIG, 1), + ), +) + +CREATE_ORIGIN_REQUEST_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CORPI, + {_sSI: _cCORPR, _smit: None}, + (_ORPC,), + ((ORIGIN_REQUEST_POLICY_CONFIG, {_sN: _ORPC, _smi: None, _sP: None}),), +) + +ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _ORP, + 0, + (_Id, _LMT, _ORPC), + ((STRING, 1), (TIMESTAMP, 1), (ORIGIN_REQUEST_POLICY_CONFIG, 1)), +) + +CREATE_ORIGIN_REQUEST_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CORPO, + {_sSI: _cCORPRo, _smith: None}, + (_ORP, _L, _ET), + ((ORIGIN_REQUEST_POLICY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +ORIGIN_REQUEST_POLICY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _ORPAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_COOKIES_IN_ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _TMCIORP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_HEADERS_IN_ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _TMHIORP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_ORIGIN_REQUEST_POLICIES: StaticSchema = ( + 18, + n0, + _TMORP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_QUERY_STRINGS_IN_ORIGIN_REQUEST_POLICY: StaticSchema = ( + 18, + n0, + _TMQSIORP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_ORIGIN_REQUEST_POLICY: StaticOperationSchema = ( + 23, + n0, + _CORP, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/origin-request-policy", "code": 201} + ) + }, + CREATE_ORIGIN_REQUEST_POLICY_INPUT, + CREATE_ORIGIN_REQUEST_POLICY_OUTPUT, + ( + ACCESS_DENIED, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + ORIGIN_REQUEST_POLICY_ALREADY_EXISTS, + TOO_MANY_COOKIES_IN_ORIGIN_REQUEST_POLICY, + TOO_MANY_HEADERS_IN_ORIGIN_REQUEST_POLICY, + TOO_MANY_ORIGIN_REQUEST_POLICIES, + TOO_MANY_QUERY_STRINGS_IN_ORIGIN_REQUEST_POLICY, + ), +) + +PUBLIC_KEY_CONFIG: StaticSchema = ( + 18, + n0, + _PKC, + 0, + (_CR, _N, _EK, _Comm), + ((STRING, 1), (STRING, 1), (STRING, 1), (STRING, 0)), +) + +CREATE_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _CPKI, + {_sSI: _cCPKR, _smit: None}, + (_PKC,), + ((PUBLIC_KEY_CONFIG, {_sN: _PKC, _smi: None, _sP: None}),), +) + +PUBLIC_KEY: StaticSchema = ( + 18, + n0, + _PK, + 0, + (_Id, _CTr, _PKC), + ((STRING, 1), (TIMESTAMP, 1), (PUBLIC_KEY_CONFIG, 1)), +) + +CREATE_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _CPKO, + {_sSI: _cCPKRo, _smith: None}, + (_PK, _L, _ET), + ((PUBLIC_KEY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +PUBLIC_KEY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _PKAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_PUBLIC_KEYS: StaticSchema = ( + 18, + n0, + _TMPK, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _CPK, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/public-key", "code": 201} + ) + }, + CREATE_PUBLIC_KEY_INPUT, + CREATE_PUBLIC_KEY_OUTPUT, + (INVALID_ARGUMENT, PUBLIC_KEY_ALREADY_EXISTS, TOO_MANY_PUBLIC_KEYS), +) + +KINESIS_STREAM_CONFIG: StaticSchema = ( + 18, + n0, + _KSC, + 0, + (_RARN, _SARNt), + ((STRING, 1), (STRING, 1)), +) + +END_POINT: StaticSchema = ( + 18, + n0, + _EP, + 0, + (_STt, _KSC), + ((STRING, 1), (KINESIS_STREAM_CONFIG, 0)), +) + +END_POINT_LIST: StaticSchema = (16, n0, _EPL, 0, (_m,), ((END_POINT, 0),)) + +FIELD_LIST: StaticSchema = (16, n0, _FL, 0, (_m,), ((STRING, {_sN: _Fi}),)) + +CREATE_REALTIME_LOG_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _CRLCI, + {_sSI: _cCRLCR, _smit: None}, + (_EPn, _Fie, _N, _SR), + ((END_POINT_LIST, 1), (FIELD_LIST, 1), (STRING, 1), (LONG, 1)), +) + +REALTIME_LOG_CONFIG: StaticSchema = ( + 18, + n0, + _RLC, + 0, + (_ARN, _N, _SR, _EPn, _Fie), + ((STRING, 1), (STRING, 1), (LONG, 1), (END_POINT_LIST, 1), (FIELD_LIST, 1)), +) + +CREATE_REALTIME_LOG_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _CRLCO, + {_sSI: _cCRLCRo, _smith: None}, + (_RLC,), + ((REALTIME_LOG_CONFIG, 0),), +) + +REALTIME_LOG_CONFIG_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _RLCAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_REALTIME_LOG_CONFIGS: StaticSchema = ( + 18, + n0, + _TMRLC, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_REALTIME_LOG_CONFIG: StaticOperationSchema = ( + 23, + n0, + _CRLC, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/realtime-log-config", "code": 201} + ) + }, + CREATE_REALTIME_LOG_CONFIG_INPUT, + CREATE_REALTIME_LOG_CONFIG_OUTPUT, + ( + ACCESS_DENIED, + INVALID_ARGUMENT, + REALTIME_LOG_CONFIG_ALREADY_EXISTS, + TOO_MANY_REALTIME_LOG_CONFIGS, + ), +) + +RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_HEADERS: StaticSchema = ( + 18, + n0, + _RHPACAH, + 0, + (_Q, _I), + ((INTEGER, 1), (ACCESS_CONTROL_ALLOW_HEADERS_LIST, 1)), +) + +RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS: StaticSchema = ( + 18, + n0, + _RHPACAM, + 0, + (_Q, _I), + ((INTEGER, 1), (ACCESS_CONTROL_ALLOW_METHODS_LIST, 1)), +) + +RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_ORIGINS: StaticSchema = ( + 18, + n0, + _RHPACAO, + 0, + (_Q, _I), + ((INTEGER, 1), (ACCESS_CONTROL_ALLOW_ORIGINS_LIST, 1)), +) + +RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_EXPOSE_HEADERS: StaticSchema = ( + 18, + n0, + _RHPACEH, + 0, + (_Q, _I), + ((INTEGER, 1), (ACCESS_CONTROL_EXPOSE_HEADERS_LIST, 0)), +) + +RESPONSE_HEADERS_POLICY_CORS_CONFIG: StaticSchema = ( + 18, + n0, + _RHPCC, + 0, + (_ACAO, _ACAH, _ACAM, _ACAC, _ACEH, _ACMAS, _OO), + ( + (RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_ORIGINS, 1), + (RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_HEADERS, 1), + (RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS, 1), + (BOOLEAN, 1), + (RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_EXPOSE_HEADERS, 0), + (INTEGER, 0), + (BOOLEAN, 1), + ), +) + +RESPONSE_HEADERS_POLICY_CUSTOM_HEADER: StaticSchema = ( + 18, + n0, + _RHPCH, + 0, + (_H, _Va, _Ov), + ((STRING, 1), (STRING, 1), (BOOLEAN, 1)), +) + +RESPONSE_HEADERS_POLICY_CUSTOM_HEADER_LIST: StaticSchema = ( + 16, + n0, + _RHPCHL, + 0, + (_m,), + ((RESPONSE_HEADERS_POLICY_CUSTOM_HEADER, {_sN: _RHPCH}),), +) + +RESPONSE_HEADERS_POLICY_CUSTOM_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _RHPCHC, + 0, + (_Q, _I), + ((INTEGER, 1), (RESPONSE_HEADERS_POLICY_CUSTOM_HEADER_LIST, 0)), +) + +RESPONSE_HEADERS_POLICY_REMOVE_HEADER: StaticSchema = ( + 18, + n0, + _RHPRH, + 0, + (_H,), + ((STRING, 1),), +) + +RESPONSE_HEADERS_POLICY_REMOVE_HEADER_LIST: StaticSchema = ( + 16, + n0, + _RHPRHL, + 0, + (_m,), + ((RESPONSE_HEADERS_POLICY_REMOVE_HEADER, {_sN: _RHPRH}),), +) + +RESPONSE_HEADERS_POLICY_REMOVE_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _RHPRHC, + 0, + (_Q, _I), + ((INTEGER, 1), (RESPONSE_HEADERS_POLICY_REMOVE_HEADER_LIST, 0)), +) + +RESPONSE_HEADERS_POLICY_CONTENT_SECURITY_POLICY: StaticSchema = ( + 18, + n0, + _RHPCSP, + 0, + (_Ov, _CSP), + ((BOOLEAN, 1), (STRING, 1)), +) + +RESPONSE_HEADERS_POLICY_CONTENT_TYPE_OPTIONS: StaticSchema = ( + 18, + n0, + _RHPCTO, + 0, + (_Ov,), + ((BOOLEAN, 1),), +) + +FRAME_OPTIONS_LIST: StaticSchema = ( + 14, + n0, + _FOL, + 0, + (_DENY, _SAMEORIGIN), + ((-1, {_sV: _DENY}), (-1, {_sV: _SAMEORIGIN})), +) + +RESPONSE_HEADERS_POLICY_FRAME_OPTIONS: StaticSchema = ( + 18, + n0, + _RHPFO, + 0, + (_Ov, _FO), + ((BOOLEAN, 1), (FRAME_OPTIONS_LIST, 1)), +) + +REFERRER_POLICY_LIST: StaticSchema = ( + 14, + n0, + _RPL, + 0, + (_nr, _nrwd, _ori, _owco, _so__, _so____, _sowco, _uu), + ( + (-1, {_sV: _nr_}), + (-1, {_sV: _nrwd_}), + (-1, {_sV: _ori}), + (-1, {_sV: _owco_}), + (-1, {_sV: _so___}), + (-1, {_sV: _so_____}), + (-1, {_sV: _sowco_}), + (-1, {_sV: _uu_}), + ), +) + +RESPONSE_HEADERS_POLICY_REFERRER_POLICY: StaticSchema = ( + 18, + n0, + _RHPRP, + 0, + (_Ov, _RP), + ((BOOLEAN, 1), (REFERRER_POLICY_LIST, 1)), +) + +RESPONSE_HEADERS_POLICY_STRICT_TRANSPORT_SECURITY: StaticSchema = ( + 18, + n0, + _RHPSTS, + 0, + (_Ov, _ISn, _Prel, _ACMAS), + ((BOOLEAN, 1), (BOOLEAN, 0), (BOOLEAN, 0), (INTEGER, 1)), +) + +RESPONSE_HEADERS_POLICY_XSS_PROTECTION: StaticSchema = ( + 18, + n0, + _RHPXSSP, + 0, + (_Ov, _Pro, _MBo, _RU), + ((BOOLEAN, 1), (BOOLEAN, 1), (BOOLEAN, 0), (STRING, 0)), +) + +RESPONSE_HEADERS_POLICY_SECURITY_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _RHPSHC, + 0, + (_XSSP, _FOr, _RP, _CSP, _CTO, _STS), + ( + (RESPONSE_HEADERS_POLICY_XSS_PROTECTION, 0), + (RESPONSE_HEADERS_POLICY_FRAME_OPTIONS, 0), + (RESPONSE_HEADERS_POLICY_REFERRER_POLICY, 0), + (RESPONSE_HEADERS_POLICY_CONTENT_SECURITY_POLICY, 0), + (RESPONSE_HEADERS_POLICY_CONTENT_TYPE_OPTIONS, 0), + (RESPONSE_HEADERS_POLICY_STRICT_TRANSPORT_SECURITY, 0), + ), +) + +SAMPLING_RATE: StaticSchema = (10, n0, _SR, 0) + +RESPONSE_HEADERS_POLICY_SERVER_TIMING_HEADERS_CONFIG: StaticSchema = ( + 18, + n0, + _RHPSTHC, + 0, + (_E, _SR), + ((BOOLEAN, 1), (SAMPLING_RATE, 0)), +) + +RESPONSE_HEADERS_POLICY_CONFIG: StaticSchema = ( + 18, + n0, + _RHPC, + 0, + (_Comm, _N, _CCo, _SHCe, _STHC, _CHC, _RHC), + ( + (STRING, 0), + (STRING, 1), + (RESPONSE_HEADERS_POLICY_CORS_CONFIG, 0), + (RESPONSE_HEADERS_POLICY_SECURITY_HEADERS_CONFIG, 0), + (RESPONSE_HEADERS_POLICY_SERVER_TIMING_HEADERS_CONFIG, 0), + (RESPONSE_HEADERS_POLICY_CUSTOM_HEADERS_CONFIG, 0), + (RESPONSE_HEADERS_POLICY_REMOVE_HEADERS_CONFIG, 0), + ), +) + +CREATE_RESPONSE_HEADERS_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CRHPI, + {_sSI: _cCRHPR, _smit: None}, + (_RHPC,), + ((RESPONSE_HEADERS_POLICY_CONFIG, {_sN: _RHPC, _smi: None, _sP: None}),), +) + +RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _RHP, + 0, + (_Id, _LMT, _RHPC), + ((STRING, 1), (TIMESTAMP, 1), (RESPONSE_HEADERS_POLICY_CONFIG, 1)), +) + +CREATE_RESPONSE_HEADERS_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CRHPO, + {_sSI: _cCRHPRo, _smith: None}, + (_RHP, _L, _ET), + ((RESPONSE_HEADERS_POLICY, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +RESPONSE_HEADERS_POLICY_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _RHPAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_LONG_CSP_IN_RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _TLCSPIRHP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_CUSTOM_HEADERS_IN_RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _TMCHIRHP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_REMOVE_HEADERS_IN_RESPONSE_HEADERS_POLICY: StaticSchema = ( + 18, + n0, + _TMRHIRHP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_RESPONSE_HEADERS_POLICIES: StaticSchema = ( + 18, + n0, + _TMRHP, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_RESPONSE_HEADERS_POLICY: StaticOperationSchema = ( + 23, + n0, + _CRHP, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/response-headers-policy", + "code": 201, + } + ) + }, + CREATE_RESPONSE_HEADERS_POLICY_INPUT, + CREATE_RESPONSE_HEADERS_POLICY_OUTPUT, + ( + ACCESS_DENIED, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + RESPONSE_HEADERS_POLICY_ALREADY_EXISTS, + TOO_LONG_CSP_IN_RESPONSE_HEADERS_POLICY, + TOO_MANY_CUSTOM_HEADERS_IN_RESPONSE_HEADERS_POLICY, + TOO_MANY_REMOVE_HEADERS_IN_RESPONSE_HEADERS_POLICY, + TOO_MANY_RESPONSE_HEADERS_POLICIES, + ), +) + +STREAMING_LOGGING_CONFIG: StaticSchema = ( + 18, + n0, + _SLC, + 0, + (_E, _B, _Pre), + ((BOOLEAN, 1), (STRING, 1), (STRING, 1)), +) + +S3_ORIGIN: StaticSchema = (18, n0, _SO, 0, (_DN, _OAI), ((STRING, 1), (STRING, 1))) + +STREAMING_DISTRIBUTION_CONFIG: StaticSchema = ( + 18, + n0, + _SDC, + 0, + (_CR, _SO, _A, _Comm, _Lo, _TS, _PC, _E), + ( + (STRING, 1), + (S3_ORIGIN, 1), + (ALIASES, 0), + (STRING, 1), + (STREAMING_LOGGING_CONFIG, 0), + (TRUSTED_SIGNERS, 1), + (PRICE_CLASS, 0), + (BOOLEAN, 1), + ), +) + +CREATE_STREAMING_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _CSDI, + {_sSI: _cCSDR, _smit: None}, + (_SDC,), + ((STREAMING_DISTRIBUTION_CONFIG, {_sN: _SDC, _smi: None, _sP: None}),), +) + +STREAMING_DISTRIBUTION: StaticSchema = ( + 18, + n0, + _SD, + 0, + (_Id, _ARN, _St, _LMT, _DN, _ATS, _SDC), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TIMESTAMP, 0), + (STRING, 1), + (ACTIVE_TRUSTED_SIGNERS, 1), + (STREAMING_DISTRIBUTION_CONFIG, 1), + ), +) + +CREATE_STREAMING_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CSDO, + {_sSI: _cCSDRo, _smith: None}, + (_SD, _L, _ET), + ((STREAMING_DISTRIBUTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +STREAMING_DISTRIBUTION_ALREADY_EXISTS: StaticSchema = ( + 18, + n0, + _SDAE, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_STREAMING_DISTRIBUTION_CNAM_ES: StaticSchema = ( + 18, + n0, + _TMSDCNAME, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +TOO_MANY_STREAMING_DISTRIBUTIONS: StaticSchema = ( + 18, + n0, + _TMSD, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +CREATE_STREAMING_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _CSD, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/streaming-distribution", "code": 201} + ) + }, + CREATE_STREAMING_DISTRIBUTION_INPUT, + CREATE_STREAMING_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_ORIGIN, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + MISSING_BODY, + STREAMING_DISTRIBUTION_ALREADY_EXISTS, + TOO_MANY_STREAMING_DISTRIBUTION_CNAM_ES, + TOO_MANY_STREAMING_DISTRIBUTIONS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +STREAMING_DISTRIBUTION_CONFIG_WITH_TAGS: StaticSchema = ( + 18, + n0, + _SDCWT, + 0, + (_SDC, _Tag), + ((STREAMING_DISTRIBUTION_CONFIG, 1), (TAGS, 1)), +) + +CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _CSDWTI, + {_sSI: _cCSDWTR, _smit: None}, + (_SDCWT,), + ((STREAMING_DISTRIBUTION_CONFIG_WITH_TAGS, {_sN: _SDCWT, _smi: None, _sP: None}),), +) + +CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _CSDWTO, + {_sSI: _cCSDWTRo, _smith: None}, + (_SD, _L, _ET), + ((STREAMING_DISTRIBUTION, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +CREATE_STREAMING_DISTRIBUTION_WITH_TAGS: StaticOperationSchema = ( + 23, + n0, + _CSDWT, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/streaming-distribution?WithTags", + "code": 201, + } + ) + }, + CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_INPUT, + CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_ORIGIN, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_TAGGING, + MISSING_BODY, + STREAMING_DISTRIBUTION_ALREADY_EXISTS, + TOO_MANY_STREAMING_DISTRIBUTION_CNAM_ES, + TOO_MANY_STREAMING_DISTRIBUTIONS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +CREATE_TRUST_STORE_INPUT: StaticSchema = ( + 18, + n0, + _CTSI, + {_sSI: _cCTSR, _smit: None}, + (_N, _CCBS, _UCCOCSPE, _Tag), + ((STRING, 1), (CA_CERTIFICATES_BUNDLE_SOURCE, 1), (BOOLEAN, 0), (TAGS, 0)), +) + +TRUST_STORE_STATUS: StaticSchema = ( + 14, + n0, + _TSS, + 0, + (_Pe, _Act, _Fa), + ((-1, {_sV: _pe}), (-1, {_sV: _act}), (-1, {_sV: _fai})), +) + +TRUST_STORE: StaticSchema = ( + 18, + n0, + _TSr, + 0, + (_Id, _Ar, _N, _St, _NOCC, _LMT, _Rea, _UCCOCSPE), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TRUST_STORE_STATUS, 0), + (INTEGER, 0), + (TIMESTAMP, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +CREATE_TRUST_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTSO, + {_sSI: _cCTSRo, _smith: None}, + (_TSr, _ET), + ((TRUST_STORE, 16), (STRING, {_sH: _ET})), +) + +CREATE_TRUST_STORE: StaticOperationSchema = ( + 23, + n0, + _CTS, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/trust-store", "code": 201} + ) + }, + CREATE_TRUST_STORE_INPUT, + CREATE_TRUST_STORE_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_TAGGING, + ), +) + +VPC_IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _VIAT, + 0, + (_Ip, _DS), + ((-1, {_sV: _ip}), (-1, {_sV: _d})), +) + +VPC_ORIGIN_ENDPOINT_CONFIG: StaticSchema = ( + 18, + n0, + _VOEC, + 0, + (_N, _Ar, _HTTPP, _HTTPSP, _OPP, _OSP, _IAT), + ( + (STRING, 1), + (STRING, 1), + (INTEGER, 1), + (INTEGER, 1), + (ORIGIN_PROTOCOL_POLICY, 1), + (ORIGIN_SSL_PROTOCOLS, 0), + (VPC_IP_ADDRESS_TYPE, 0), + ), +) + +CREATE_VPC_ORIGIN_INPUT: StaticSchema = ( + 18, + n0, + _CVOI, + {_sSI: _cCVOR, _smit: None}, + (_VOEC, _Tag), + ((VPC_ORIGIN_ENDPOINT_CONFIG, 1), (TAGS, 0)), +) + +VPC_ORIGIN: StaticSchema = ( + 18, + n0, + _VO, + 0, + (_Id, _Ar, _AIc, _St, _CTr, _LMT, _VOEC), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (TIMESTAMP, 1), + (TIMESTAMP, 1), + (VPC_ORIGIN_ENDPOINT_CONFIG, 1), + ), +) + +CREATE_VPC_ORIGIN_OUTPUT: StaticSchema = ( + 18, + n0, + _CVOO, + {_sSI: _cCVORo, _smith: None}, + (_VO, _L, _ET), + ((VPC_ORIGIN, 16), (STRING, {_sH: _L}), (STRING, {_sH: _ET})), +) + +CREATE_VPC_ORIGIN: StaticOperationSchema = ( + 23, + n0, + _CVO, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/vpc-origin", "code": 202} + ) + }, + CREATE_VPC_ORIGIN_INPUT, + CREATE_VPC_ORIGIN_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_TAGGING, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_ANYCAST_IP_LIST_INPUT: StaticSchema = ( + 18, + n0, + _DAILI, + {_sSI: _cDAILR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_ANYCAST_IP_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _DAILO, + {_sSI: _sU, _smith: None}, +) + +ILLEGAL_DELETE: StaticSchema = ( + 18, + n0, + _IDl, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +DELETE_ANYCAST_IP_LIST: StaticOperationSchema = ( + 23, + n0, + _DAIL, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/anycast-ip-list/{Id}", "code": 204} + ) + }, + DELETE_ANYCAST_IP_LIST_INPUT, + DELETE_ANYCAST_IP_LIST_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + ILLEGAL_DELETE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_CACHE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DCPI, + {_sSI: _cDCPR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_CACHE_POLICY_OUTPUT: StaticSchema = (18, n0, _DCPO, {_sSI: _sU, _smith: None}) + +DELETE_CACHE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DCP, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/cache-policy/{Id}", "code": 204} + ) + }, + DELETE_CACHE_POLICY_INPUT, + DELETE_CACHE_POLICY_OUTPUT, + ( + ACCESS_DENIED, + CACHE_POLICY_IN_USE, + ILLEGAL_DELETE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_CACHE_POLICY, + PRECONDITION_FAILED, + ), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_IN_USE: StaticSchema = ( + 18, + n0, + _CFOAIIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT: StaticSchema = ( + 18, + n0, + _DCFOAII, + {_sSI: _cDCFOAIR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCFOAIO, + {_sSI: _sU, _smith: None}, +) + +NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticSchema = ( + 18, + n0, + _NSCFOAI, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticOperationSchema = ( + 23, + n0, + _DCFOAI, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}", + "code": 204, + } + ) + }, + DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT, + DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT, + ( + ACCESS_DENIED, + CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_IN_USE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, + PRECONDITION_FAILED, + ), +) + +DELETE_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _DCFI, + {_sSI: _cDCFR, _smit: None}, + (_Id, _IM), + ((RESOURCE_ID, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DCFO, + {_sSI: _sU, _smith: None}, +) + +DELETE_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _DCF, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/connection-function/{Id}", + "code": 204, + } + ) + }, + DELETE_CONNECTION_FUNCTION_INPUT, + DELETE_CONNECTION_FUNCTION_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_CONNECTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DCGI, + {_sSI: _cDCGR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_CONNECTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DCGO, + {_sSI: _sU, _smith: None}, +) + +RESOURCE_NOT_DISABLED: StaticSchema = ( + 18, + n0, + _RND, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_CONNECTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _DCG, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/connection-group/{Id}", + "code": 204, + } + ) + }, + DELETE_CONNECTION_GROUP_INPUT, + DELETE_CONNECTION_GROUP_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + RESOURCE_NOT_DISABLED, + ), +) + +DELETE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DCDPI, + {_sSI: _cDCDPR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCDPO, + {_sSI: _sU, _smith: None}, +) + +DELETE_CONTINUOUS_DEPLOYMENT_POLICY: StaticOperationSchema = ( + 23, + n0, + _DCDP, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 204, + } + ) + }, + DELETE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT, + DELETE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT, + ( + ACCESS_DENIED, + CONTINUOUS_DEPLOYMENT_POLICY_IN_USE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY, + PRECONDITION_FAILED, + ), +) + +DELETE_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _DDI, + {_sSI: _cDDR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_DISTRIBUTION_OUTPUT: StaticSchema = (18, n0, _DDO, {_sSI: _sU, _smith: None}) + +DISTRIBUTION_NOT_DISABLED: StaticSchema = ( + 18, + n0, + _DND, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +RESOURCE_IN_USE: StaticSchema = ( + 18, + n0, + _RIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _DD, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/distribution/{Id}", "code": 204} + ) + }, + DELETE_DISTRIBUTION_INPUT, + DELETE_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + DISTRIBUTION_NOT_DISABLED, + INVALID_IF_MATCH_VERSION, + NO_SUCH_DISTRIBUTION, + PRECONDITION_FAILED, + RESOURCE_IN_USE, + ), +) + +DELETE_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _DDTI, + {_sSI: _cDDTR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _DDTO, + {_sSI: _sU, _smith: None}, +) + +DELETE_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _DDT, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/distribution-tenant/{Id}", + "code": 204, + } + ) + }, + DELETE_DISTRIBUTION_TENANT_INPUT, + DELETE_DISTRIBUTION_TENANT_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + RESOURCE_NOT_DISABLED, + ), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _DFLECI, + {_sSI: _cDFLECR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLECO, + {_sSI: _sU, _smith: None}, +) + +FIELD_LEVEL_ENCRYPTION_CONFIG_IN_USE: StaticSchema = ( + 18, + n0, + _FLECIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _DFLEC, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/field-level-encryption/{Id}", + "code": 204, + } + ) + }, + DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT, + DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT, + ( + ACCESS_DENIED, + FIELD_LEVEL_ENCRYPTION_CONFIG_IN_USE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + PRECONDITION_FAILED, + ), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _DFLEPI, + {_sSI: _cDFLEPR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLEPO, + {_sSI: _sU, _smith: None}, +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_IN_USE: StaticSchema = ( + 18, + n0, + _FLEPIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE: StaticOperationSchema = ( + 23, + n0, + _DFLEP, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}", + "code": 204, + } + ) + }, + DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT, + DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT, + ( + ACCESS_DENIED, + FIELD_LEVEL_ENCRYPTION_PROFILE_IN_USE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE, + PRECONDITION_FAILED, + ), +) + +DELETE_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _DFI, + {_sSI: _cDFR, _smit: None}, + (_N, _IM), + ((FUNCTION_NAME, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_FUNCTION_OUTPUT: StaticSchema = (18, n0, _DFO, {_sSI: _sU, _smith: None}) + +FUNCTION_IN_USE: StaticSchema = ( + 18, + n0, + _FIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +NO_SUCH_FUNCTION_EXISTS: StaticSchema = ( + 18, + n0, + _NSFE, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +DELETE_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _DF, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/function/{Name}", "code": 204} + ) + }, + DELETE_FUNCTION_INPUT, + DELETE_FUNCTION_OUTPUT, + ( + FUNCTION_IN_USE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FUNCTION_EXISTS, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_KEY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DKGI, + {_sSI: _cDKGR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_KEY_GROUP_OUTPUT: StaticSchema = (18, n0, _DKGO, {_sSI: _sU, _smith: None}) + +NO_SUCH_RESOURCE: StaticSchema = ( + 18, + n0, + _NSR, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +DELETE_KEY_GROUP: StaticOperationSchema = ( + 23, + n0, + _DKG, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/key-group/{Id}", "code": 204} + ) + }, + DELETE_KEY_GROUP_INPUT, + DELETE_KEY_GROUP_OUTPUT, + (INVALID_IF_MATCH_VERSION, NO_SUCH_RESOURCE, PRECONDITION_FAILED, RESOURCE_IN_USE), +) + +DELETE_KEY_VALUE_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DKVSI, + {_sSI: _cDKVSR, _smit: None}, + (_N, _IM), + ((KEY_VALUE_STORE_NAME, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_KEY_VALUE_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _DKVSO, + {_sSI: _sU, _smith: None}, +) + +DELETE_KEY_VALUE_STORE: StaticOperationSchema = ( + 23, + n0, + _DKVS, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/key-value-store/{Name}", + "code": 204, + } + ) + }, + DELETE_KEY_VALUE_STORE_INPUT, + DELETE_KEY_VALUE_STORE_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_MONITORING_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _DMSI, + {_sSI: _cDMSR, _smit: None}, + (_DIi,), + ((STRING, 9),), +) + +DELETE_MONITORING_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DMSO, + {_sSI: _cDMSRo, _smith: None}, +) + +NO_SUCH_MONITORING_SUBSCRIPTION: StaticSchema = ( + 18, + n0, + _NSMS, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +DELETE_MONITORING_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _DMS, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200, + } + ) + }, + DELETE_MONITORING_SUBSCRIPTION_INPUT, + DELETE_MONITORING_SUBSCRIPTION_OUTPUT, + ( + ACCESS_DENIED, + NO_SUCH_DISTRIBUTION, + NO_SUCH_MONITORING_SUBSCRIPTION, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_ORIGIN_ACCESS_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _DOACI, + {_sSI: _cDOACR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_ORIGIN_ACCESS_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _DOACO, + {_sSI: _sU, _smith: None}, +) + +NO_SUCH_ORIGIN_ACCESS_CONTROL: StaticSchema = ( + 18, + n0, + _NSOAC, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +ORIGIN_ACCESS_CONTROL_IN_USE: StaticSchema = ( + 18, + n0, + _OACIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_ORIGIN_ACCESS_CONTROL: StaticOperationSchema = ( + 23, + n0, + _DOAC, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/origin-access-control/{Id}", + "code": 204, + } + ) + }, + DELETE_ORIGIN_ACCESS_CONTROL_INPUT, + DELETE_ORIGIN_ACCESS_CONTROL_OUTPUT, + ( + ACCESS_DENIED, + INVALID_IF_MATCH_VERSION, + NO_SUCH_ORIGIN_ACCESS_CONTROL, + ORIGIN_ACCESS_CONTROL_IN_USE, + PRECONDITION_FAILED, + ), +) + +DELETE_ORIGIN_REQUEST_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DORPI, + {_sSI: _cDORPR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_ORIGIN_REQUEST_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DORPO, + {_sSI: _sU, _smith: None}, +) + +ORIGIN_REQUEST_POLICY_IN_USE: StaticSchema = ( + 18, + n0, + _ORPIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_ORIGIN_REQUEST_POLICY: StaticOperationSchema = ( + 23, + n0, + _DORP, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 204, + } + ) + }, + DELETE_ORIGIN_REQUEST_POLICY_INPUT, + DELETE_ORIGIN_REQUEST_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_DELETE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_ORIGIN_REQUEST_POLICY, + ORIGIN_REQUEST_POLICY_IN_USE, + PRECONDITION_FAILED, + ), +) + +DELETE_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DPKI, + {_sSI: _cDPKR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_PUBLIC_KEY_OUTPUT: StaticSchema = (18, n0, _DPKO, {_sSI: _sU, _smith: None}) + +PUBLIC_KEY_IN_USE: StaticSchema = ( + 18, + n0, + _PKIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _DPK, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/public-key/{Id}", "code": 204} + ) + }, + DELETE_PUBLIC_KEY_INPUT, + DELETE_PUBLIC_KEY_OUTPUT, + ( + ACCESS_DENIED, + INVALID_IF_MATCH_VERSION, + NO_SUCH_PUBLIC_KEY, + PRECONDITION_FAILED, + PUBLIC_KEY_IN_USE, + ), +) + +DELETE_REALTIME_LOG_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _DRLCI, + {_sSI: _cDRLCR, _smit: None}, + (_N, _ARN), + ((STRING, 0), (STRING, 0)), +) + +DELETE_REALTIME_LOG_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _DRLCO, + {_sSI: _sU, _smith: None}, +) + +REALTIME_LOG_CONFIG_IN_USE: StaticSchema = ( + 18, + n0, + _RLCIU, + {_sm: _c, _sE: 400}, + (_Me,), + ((STRING, 0),), +) + +DELETE_REALTIME_LOG_CONFIG: StaticOperationSchema = ( + 23, + n0, + _DRLC, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/delete-realtime-log-config", + "code": 204, + } + ) + }, + DELETE_REALTIME_LOG_CONFIG_INPUT, + DELETE_REALTIME_LOG_CONFIG_OUTPUT, + ( + ACCESS_DENIED, + INVALID_ARGUMENT, + NO_SUCH_REALTIME_LOG_CONFIG, + REALTIME_LOG_CONFIG_IN_USE, + ), +) + +DELETE_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DRPI, + {_sSI: _cDRPR, _smit: None}, + (_RA,), + ((STRING, 1),), +) + +DELETE_RESOURCE_POLICY_OUTPUT: StaticSchema = (18, n0, _DRPO, {_sSI: _sU, _smith: None}) + +DELETE_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DRP, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/delete-resource-policy", "code": 200} + ) + }, + DELETE_RESOURCE_POLICY_INPUT, + DELETE_RESOURCE_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + ILLEGAL_DELETE, + INVALID_ARGUMENT, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DELETE_RESPONSE_HEADERS_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DRHPI, + {_sSI: _cDRHPR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_RESPONSE_HEADERS_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DRHPO, + {_sSI: _sU, _smith: None}, +) + +RESPONSE_HEADERS_POLICY_IN_USE: StaticSchema = ( + 18, + n0, + _RHPIU, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_RESPONSE_HEADERS_POLICY: StaticOperationSchema = ( + 23, + n0, + _DRHP, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 204, + } + ) + }, + DELETE_RESPONSE_HEADERS_POLICY_INPUT, + DELETE_RESPONSE_HEADERS_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_DELETE, + INVALID_IF_MATCH_VERSION, + NO_SUCH_RESPONSE_HEADERS_POLICY, + PRECONDITION_FAILED, + RESPONSE_HEADERS_POLICY_IN_USE, + ), +) + +DELETE_STREAMING_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _DSDI, + {_sSI: _cDSDR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DELETE_STREAMING_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDO, + {_sSI: _sU, _smith: None}, +) + +NO_SUCH_STREAMING_DISTRIBUTION: StaticSchema = ( + 18, + n0, + _NSSD, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +STREAMING_DISTRIBUTION_NOT_DISABLED: StaticSchema = ( + 18, + n0, + _SDND, + {_sm: _c, _sE: 409}, + (_Me,), + ((STRING, 0),), +) + +DELETE_STREAMING_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _DSD, + { + _smithy: MappingProxyType( + { + "method": "DELETE", + "uri": "/2020-05-31/streaming-distribution/{Id}", + "code": 204, + } + ) + }, + DELETE_STREAMING_DISTRIBUTION_INPUT, + DELETE_STREAMING_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + INVALID_IF_MATCH_VERSION, + NO_SUCH_STREAMING_DISTRIBUTION, + PRECONDITION_FAILED, + STREAMING_DISTRIBUTION_NOT_DISABLED, + ), +) + +DELETE_TRUST_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DTSI, + {_sSI: _cDTSR, _smit: None}, + (_Id, _IM), + ((RESOURCE_ID, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_TRUST_STORE_OUTPUT: StaticSchema = (18, n0, _DTSO, {_sSI: _sU, _smith: None}) + +DELETE_TRUST_STORE: StaticOperationSchema = ( + 23, + n0, + _DTS, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/trust-store/{Id}", "code": 204} + ) + }, + DELETE_TRUST_STORE_INPUT, + DELETE_TRUST_STORE_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +DELETE_VPC_ORIGIN_INPUT: StaticSchema = ( + 18, + n0, + _DVOI, + {_sSI: _cDVOR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +DELETE_VPC_ORIGIN_OUTPUT: StaticSchema = ( + 18, + n0, + _DVOO, + {_sSI: _cDVORo, _smith: None}, + (_VO, _ET), + ((VPC_ORIGIN, 16), (STRING, {_sH: _ET})), +) + +DELETE_VPC_ORIGIN: StaticOperationSchema = ( + 23, + n0, + _DVO, + { + _smithy: MappingProxyType( + {"method": "DELETE", "uri": "/2020-05-31/vpc-origin/{Id}", "code": 202} + ) + }, + DELETE_VPC_ORIGIN_INPUT, + DELETE_VPC_ORIGIN_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_DELETE_ENTITY_WHILE_IN_USE, + ENTITY_NOT_FOUND, + ILLEGAL_DELETE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +DESCRIBE_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _DCFIe, + {_sSI: _cDCFRo, _smit: None}, + (_Ide, _Stag), + ((STRING, 9), (FUNCTION_STAGE, {_sQ: _Stag})), +) + +DESCRIBE_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DCFOe, + {_sSI: _cDCFRom, _smith: None}, + (_CFS, _ET), + ((CONNECTION_FUNCTION_SUMMARY, 16), (STRING, {_sH: _ET})), +) + +DESCRIBE_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _DCFe, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/connection-function/{Identifier}/describe", + "code": 200, + } + ) + }, + DESCRIBE_CONNECTION_FUNCTION_INPUT, + DESCRIBE_CONNECTION_FUNCTION_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +DESCRIBE_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _DFIe, + {_sSI: _cDFRo, _smit: None}, + (_N, _Stag), + ((FUNCTION_NAME, 9), (FUNCTION_STAGE, {_sQ: _Stag})), +) + +DESCRIBE_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DFOe, + {_sSI: _cDFRom, _smith: None}, + (_FSu, _ET), + ((FUNCTION_SUMMARY, 16), (STRING, {_sH: _ET})), +) + +DESCRIBE_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _DFe, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/function/{Name}/describe", + "code": 200, + } + ) + }, + DESCRIBE_FUNCTION_INPUT, + DESCRIBE_FUNCTION_OUTPUT, + (NO_SUCH_FUNCTION_EXISTS, UNSUPPORTED_OPERATION), +) + +DESCRIBE_KEY_VALUE_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DKVSIe, + {_sSI: _cDKVSRo, _smit: None}, + (_N,), + ((KEY_VALUE_STORE_NAME, 9),), +) + +DESCRIBE_KEY_VALUE_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _DKVSOe, + {_sSI: _cDKVSRom, _smith: None}, + (_KVS, _ET), + ((KEY_VALUE_STORE, 16), (STRING, {_sH: _ET})), +) + +DESCRIBE_KEY_VALUE_STORE: StaticOperationSchema = ( + 23, + n0, + _DKVSe, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/key-value-store/{Name}", "code": 200} + ) + }, + DESCRIBE_KEY_VALUE_STORE_INPUT, + DESCRIBE_KEY_VALUE_STORE_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT: StaticSchema = ( + 18, + n0, + _DDTWACLI, + {_sSI: _cDDTWACLR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _DDTWACLO, + {_sSI: _cDDTWACLRo, _smith: None}, + (_Id, _ET), + ((STRING, 0), (STRING, {_sH: _ET})), +) + +DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL: StaticOperationSchema = ( + 23, + n0, + _DDTWACL, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}/disassociate-web-acl", + "code": 200, + } + ) + }, + DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT, + DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +DISASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT: StaticSchema = ( + 18, + n0, + _DDWACLI, + {_sSI: _cDDWACLR, _smit: None}, + (_Id, _IM), + ((STRING, 9), (STRING, {_sH: _IM_})), +) + +DISASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _DDWACLO, + {_sSI: _cDDWACLRo, _smith: None}, + (_Id, _ET), + ((STRING, 0), (STRING, {_sH: _ET})), +) + +DISASSOCIATE_DISTRIBUTION_WEB_ACL: StaticOperationSchema = ( + 23, + n0, + _DDWACL, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/disassociate-web-acl", + "code": 200, + } + ) + }, + DISASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT, + DISASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +GET_ANYCAST_IP_LIST_INPUT: StaticSchema = ( + 18, + n0, + _GAILI, + {_sSI: _cGAILR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_ANYCAST_IP_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _GAILO, + {_sSI: _cGAILRo, _smith: None}, + (_AIL, _ET), + ((ANYCAST_IP_LIST, 16), (STRING, {_sH: _ET})), +) + +GET_ANYCAST_IP_LIST: StaticOperationSchema = ( + 23, + n0, + _GAIL, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/anycast-ip-list/{Id}", "code": 200} + ) + }, + GET_ANYCAST_IP_LIST_INPUT, + GET_ANYCAST_IP_LIST_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +GET_CACHE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GCPI, + {_sSI: _cGCPR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CACHE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCPO, + {_sSI: _cGCPRo, _smith: None}, + (_CPa, _ET), + ((CACHE_POLICY, 16), (STRING, {_sH: _ET})), +) + +GET_CACHE_POLICY: StaticOperationSchema = ( + 23, + n0, + _GCP, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/cache-policy/{Id}", "code": 200} + ) + }, + GET_CACHE_POLICY_INPUT, + GET_CACHE_POLICY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CACHE_POLICY), +) + +GET_CACHE_POLICY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GCPCI, + {_sSI: _cGCPCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CACHE_POLICY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GCPCO, + {_sSI: _cGCPCRo, _smith: None}, + (_CPC, _ET), + ((CACHE_POLICY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_CACHE_POLICY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GCPC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/cache-policy/{Id}/config", + "code": 200, + } + ) + }, + GET_CACHE_POLICY_CONFIG_INPUT, + GET_CACHE_POLICY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CACHE_POLICY), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT: StaticSchema = ( + 18, + n0, + _GCFOAII, + {_sSI: _cGCFOAIR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCFOAIO, + {_sSI: _cGCFOAIRo, _smith: None}, + (_CFOAI, _ET), + ((CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, 16), (STRING, {_sH: _ET})), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticOperationSchema = ( + 23, + n0, + _GCFOAI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}", + "code": 200, + } + ) + }, + GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT, + GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GCFOAICI, + {_sSI: _cGCFOAICR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GCFOAICO, + {_sSI: _cGCFOAICRo, _smith: None}, + (_CFOAIC, _ET), + ((CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GCFOAIC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}/config", + "code": 200, + } + ) + }, + GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_INPUT, + GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY), +) + +GET_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _GCFI, + {_sSI: _cGCFR, _smit: None}, + (_Ide, _Stag), + ((STRING, 9), (FUNCTION_STAGE, {_sQ: _Stag})), +) + +GET_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GCFO, + {_sSI: _cGCFRo, _smith: None}, + (_CFCo, _ET, _CTon), + ((FUNCTION_BLOB, 16), (STRING, {_sH: _ET}), (STRING, {_sH: _CT_})), +) + +GET_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _GCF, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/connection-function/{Identifier}", + "code": 200, + } + ) + }, + GET_CONNECTION_FUNCTION_INPUT, + GET_CONNECTION_FUNCTION_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, UNSUPPORTED_OPERATION), +) + +GET_CONNECTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _GCGI, + {_sSI: _cGCGR, _smit: None}, + (_Ide,), + ((STRING, 9),), +) + +GET_CONNECTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _GCGO, + {_sSI: _cGCGRo, _smith: None}, + (_CG, _ET), + ((CONNECTION_GROUP, 16), (STRING, {_sH: _ET})), +) + +GET_CONNECTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _GCG, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/connection-group/{Identifier}", + "code": 200, + } + ) + }, + GET_CONNECTION_GROUP_INPUT, + GET_CONNECTION_GROUP_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND), +) + +GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _GCGBREI, + {_sSI: _cGCGBRER, _smit: None}, + (_RE,), + ((STRING, {_sQ: _RE, _smi: None}),), +) + +GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _GCGBREO, + {_sSI: _cGCGBRERo, _smith: None}, + (_CG, _ET), + ((CONNECTION_GROUP, 16), (STRING, {_sH: _ET})), +) + +GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _GCGBRE, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/connection-group", "code": 200} + ) + }, + GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_INPUT, + GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GCDPI, + {_sSI: _cGCDPR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCDPO, + {_sSI: _cGCDPRo, _smith: None}, + (_CDP, _ET), + ((CONTINUOUS_DEPLOYMENT_POLICY, 16), (STRING, {_sH: _ET})), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY: StaticOperationSchema = ( + 23, + n0, + _GCDP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 200, + } + ) + }, + GET_CONTINUOUS_DEPLOYMENT_POLICY_INPUT, + GET_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GCDPCI, + {_sSI: _cGCDPCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GCDPCO, + {_sSI: _cGCDPCRo, _smith: None}, + (_CDPC, _ET), + ((CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GCDPC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}/config", + "code": 200, + } + ) + }, + GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_INPUT, + GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY), +) + +GET_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _GDI, + {_sSI: _cGDR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GDO, + {_sSI: _cGDRo, _smith: None}, + (_Dis, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _ET})), +) + +GET_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _GD, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/distribution/{Id}", "code": 200} + ) + }, + GET_DISTRIBUTION_INPUT, + GET_DISTRIBUTION_OUTPUT, + (ACCESS_DENIED, NO_SUCH_DISTRIBUTION), +) + +GET_DISTRIBUTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GDCI, + {_sSI: _cGDCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_DISTRIBUTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GDCO, + {_sSI: _cGDCRo, _smith: None}, + (_DC, _ET), + ((DISTRIBUTION_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_DISTRIBUTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GDC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution/{Id}/config", + "code": 200, + } + ) + }, + GET_DISTRIBUTION_CONFIG_INPUT, + GET_DISTRIBUTION_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_DISTRIBUTION), +) + +GET_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _GDTI, + {_sSI: _cGDTR, _smit: None}, + (_Ide,), + ((STRING, 9),), +) + +GET_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _GDTO, + {_sSI: _cGDTRo, _smith: None}, + (_DT, _ET), + ((DISTRIBUTION_TENANT, 16), (STRING, {_sH: _ET})), +) + +GET_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _GDT, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{Identifier}", + "code": 200, + } + ) + }, + GET_DISTRIBUTION_TENANT_INPUT, + GET_DISTRIBUTION_TENANT_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND), +) + +GET_DISTRIBUTION_TENANT_BY_DOMAIN_INPUT: StaticSchema = ( + 18, + n0, + _GDTBDI, + {_sSI: _cGDTBDR, _smit: None}, + (_Do,), + ((STRING, {_sQ: _do, _smi: None}),), +) + +GET_DISTRIBUTION_TENANT_BY_DOMAIN_OUTPUT: StaticSchema = ( + 18, + n0, + _GDTBDO, + {_sSI: _cGDTBDRo, _smith: None}, + (_DT, _ET), + ((DISTRIBUTION_TENANT, 16), (STRING, {_sH: _ET})), +) + +GET_DISTRIBUTION_TENANT_BY_DOMAIN: StaticOperationSchema = ( + 23, + n0, + _GDTBD, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/distribution-tenant", "code": 200} + ) + }, + GET_DISTRIBUTION_TENANT_BY_DOMAIN_INPUT, + GET_DISTRIBUTION_TENANT_BY_DOMAIN_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND), +) + +GET_FIELD_LEVEL_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _GFLEI, + {_sSI: _cGFLER, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_FIELD_LEVEL_ENCRYPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GFLEO, + {_sSI: _cGFLERo, _smith: None}, + (_FLE, _ET), + ((FIELD_LEVEL_ENCRYPTION, 16), (STRING, {_sH: _ET})), +) + +GET_FIELD_LEVEL_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _GFLE, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption/{Id}", + "code": 200, + } + ) + }, + GET_FIELD_LEVEL_ENCRYPTION_INPUT, + GET_FIELD_LEVEL_ENCRYPTION_OUTPUT, + (ACCESS_DENIED, NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG), +) + +GET_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GFLECI, + {_sSI: _cGFLECR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GFLECO, + {_sSI: _cGFLECRo, _smith: None}, + (_FLEC, _ET), + ((FIELD_LEVEL_ENCRYPTION_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GFLEC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption/{Id}/config", + "code": 200, + } + ) + }, + GET_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT, + GET_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _GFLEPI, + {_sSI: _cGFLEPR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _GFLEPO, + {_sSI: _cGFLEPRo, _smith: None}, + (_FLEP, _ET), + ((FIELD_LEVEL_ENCRYPTION_PROFILE, 16), (STRING, {_sH: _ET})), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE: StaticOperationSchema = ( + 23, + n0, + _GFLEP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}", + "code": 200, + } + ) + }, + GET_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT, + GET_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT, + (ACCESS_DENIED, NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GFLEPCI, + {_sSI: _cGFLEPCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GFLEPCO, + {_sSI: _cGFLEPCRo, _smith: None}, + (_FLEPC, _ET), + ((FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GFLEPC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}/config", + "code": 200, + } + ) + }, + GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_INPUT, + GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE), +) + +GET_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _GFI, + {_sSI: _cGFR, _smit: None}, + (_N, _Stag), + ((FUNCTION_NAME, 9), (FUNCTION_STAGE, {_sQ: _Stag})), +) + +GET_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GFO, + {_sSI: _cGFRo, _smith: None}, + (_FCun, _ET, _CTon), + ((FUNCTION_BLOB, 16), (STRING, {_sH: _ET}), (STRING, {_sH: _CT_})), +) + +GET_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _GF, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/function/{Name}", "code": 200} + ) + }, + GET_FUNCTION_INPUT, + GET_FUNCTION_OUTPUT, + (NO_SUCH_FUNCTION_EXISTS, UNSUPPORTED_OPERATION), +) + +GET_INVALIDATION_INPUT: StaticSchema = ( + 18, + n0, + _GII, + {_sSI: _cGIR, _smit: None}, + (_DIi, _Id), + ((STRING, 9), (STRING, 9)), +) + +GET_INVALIDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GIO, + {_sSI: _cGIRo, _smith: None}, + (_Inv,), + ((INVALIDATION, 16),), +) + +NO_SUCH_INVALIDATION: StaticSchema = ( + 18, + n0, + _NSI, + {_sm: _c, _sE: 404}, + (_Me,), + ((STRING, 0),), +) + +GET_INVALIDATION: StaticOperationSchema = ( + 23, + n0, + _GI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation/{Id}", + "code": 200, + } + ) + }, + GET_INVALIDATION_INPUT, + GET_INVALIDATION_OUTPUT, + (ACCESS_DENIED, NO_SUCH_DISTRIBUTION, NO_SUCH_INVALIDATION), +) + +GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _GIFDTI, + {_sSI: _cGIFDTR, _smit: None}, + (_DTI, _Id), + ((STRING, 9), (STRING, 9)), +) + +GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _GIFDTO, + {_sSI: _cGIFDTRo, _smith: None}, + (_Inv,), + ((INVALIDATION, 16),), +) + +GET_INVALIDATION_FOR_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _GIFDT, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{DistributionTenantId}/invalidation/{Id}", + "code": 200, + } + ) + }, + GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT, + GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, NO_SUCH_INVALIDATION), +) + +GET_KEY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _GKGI, + {_sSI: _cGKGR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_KEY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _GKGO, + {_sSI: _cGKGRo, _smith: None}, + (_KG, _ET), + ((KEY_GROUP, 16), (STRING, {_sH: _ET})), +) + +GET_KEY_GROUP: StaticOperationSchema = ( + 23, + n0, + _GKG, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/key-group/{Id}", "code": 200} + ) + }, + GET_KEY_GROUP_INPUT, + GET_KEY_GROUP_OUTPUT, + (NO_SUCH_RESOURCE,), +) + +GET_KEY_GROUP_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GKGCI, + {_sSI: _cGKGCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_KEY_GROUP_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GKGCO, + {_sSI: _cGKGCRo, _smith: None}, + (_KGC, _ET), + ((KEY_GROUP_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_KEY_GROUP_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GKGC, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/key-group/{Id}/config", "code": 200} + ) + }, + GET_KEY_GROUP_CONFIG_INPUT, + GET_KEY_GROUP_CONFIG_OUTPUT, + (NO_SUCH_RESOURCE,), +) + +GET_MANAGED_CERTIFICATE_DETAILS_INPUT: StaticSchema = ( + 18, + n0, + _GMCDI, + {_sSI: _cGMCDR, _smit: None}, + (_Ide,), + ((STRING, 9),), +) + +MANAGED_CERTIFICATE_STATUS: StaticSchema = ( + 14, + n0, + _MCS, + 0, + (_PVe, _Is, _In, _Ex, _VTO, _Rev, _Fa), + ( + (-1, {_sV: _pv}), + (-1, {_sV: _is}), + (-1, {_sV: _in}), + (-1, {_sV: _ex}), + (-1, {_sV: _vto}), + (-1, {_sV: _re}), + (-1, {_sV: _fai}), + ), +) + +VALIDATION_TOKEN_DETAIL: StaticSchema = ( + 18, + n0, + _VTD, + 0, + (_Do, _RTe, _RF), + ((STRING, 1), (STRING, 0), (STRING, 0)), +) + +VALIDATION_TOKEN_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _VTDL, + 0, + (_m,), + ((VALIDATION_TOKEN_DETAIL, 0),), +) + +MANAGED_CERTIFICATE_DETAILS: StaticSchema = ( + 18, + n0, + _MCD, + 0, + (_CAe, _CSe, _VTH, _VTDa), + ( + (STRING, 0), + (MANAGED_CERTIFICATE_STATUS, 0), + (VALIDATION_TOKEN_HOST, 0), + (VALIDATION_TOKEN_DETAIL_LIST, 0), + ), +) + +GET_MANAGED_CERTIFICATE_DETAILS_OUTPUT: StaticSchema = ( + 18, + n0, + _GMCDO, + {_sSI: _cGMCDRo, _smith: None}, + (_MCD,), + ((MANAGED_CERTIFICATE_DETAILS, 16),), +) + +GET_MANAGED_CERTIFICATE_DETAILS: StaticOperationSchema = ( + 23, + n0, + _GMCD, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/managed-certificate/{Identifier}", + "code": 200, + } + ) + }, + GET_MANAGED_CERTIFICATE_DETAILS_INPUT, + GET_MANAGED_CERTIFICATE_DETAILS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND), +) + +GET_MONITORING_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _GMSI, + {_sSI: _cGMSR, _smit: None}, + (_DIi,), + ((STRING, 9),), +) + +GET_MONITORING_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GMSO, + {_sSI: _cGMSRo, _smith: None}, + (_MS,), + ((MONITORING_SUBSCRIPTION, 16),), +) + +GET_MONITORING_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _GMS, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200, + } + ) + }, + GET_MONITORING_SUBSCRIPTION_INPUT, + GET_MONITORING_SUBSCRIPTION_OUTPUT, + ( + ACCESS_DENIED, + NO_SUCH_DISTRIBUTION, + NO_SUCH_MONITORING_SUBSCRIPTION, + UNSUPPORTED_OPERATION, + ), +) + +GET_ORIGIN_ACCESS_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _GOACI, + {_sSI: _cGOACR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_ORIGIN_ACCESS_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _GOACO, + {_sSI: _cGOACRo, _smith: None}, + (_OAC, _ET), + ((ORIGIN_ACCESS_CONTROL, 16), (STRING, {_sH: _ET})), +) + +GET_ORIGIN_ACCESS_CONTROL: StaticOperationSchema = ( + 23, + n0, + _GOAC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-access-control/{Id}", + "code": 200, + } + ) + }, + GET_ORIGIN_ACCESS_CONTROL_INPUT, + GET_ORIGIN_ACCESS_CONTROL_OUTPUT, + (ACCESS_DENIED, NO_SUCH_ORIGIN_ACCESS_CONTROL), +) + +GET_ORIGIN_ACCESS_CONTROL_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GOACCI, + {_sSI: _cGOACCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_ORIGIN_ACCESS_CONTROL_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GOACCO, + {_sSI: _cGOACCRo, _smith: None}, + (_OACC, _ET), + ((ORIGIN_ACCESS_CONTROL_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_ORIGIN_ACCESS_CONTROL_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GOACC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-access-control/{Id}/config", + "code": 200, + } + ) + }, + GET_ORIGIN_ACCESS_CONTROL_CONFIG_INPUT, + GET_ORIGIN_ACCESS_CONTROL_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_ORIGIN_ACCESS_CONTROL), +) + +GET_ORIGIN_REQUEST_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GORPI, + {_sSI: _cGORPR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_ORIGIN_REQUEST_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GORPO, + {_sSI: _cGORPRo, _smith: None}, + (_ORP, _ET), + ((ORIGIN_REQUEST_POLICY, 16), (STRING, {_sH: _ET})), +) + +GET_ORIGIN_REQUEST_POLICY: StaticOperationSchema = ( + 23, + n0, + _GORP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 200, + } + ) + }, + GET_ORIGIN_REQUEST_POLICY_INPUT, + GET_ORIGIN_REQUEST_POLICY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_ORIGIN_REQUEST_POLICY), +) + +GET_ORIGIN_REQUEST_POLICY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GORPCI, + {_sSI: _cGORPCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_ORIGIN_REQUEST_POLICY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GORPCO, + {_sSI: _cGORPCRo, _smith: None}, + (_ORPC, _ET), + ((ORIGIN_REQUEST_POLICY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_ORIGIN_REQUEST_POLICY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GORPC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-request-policy/{Id}/config", + "code": 200, + } + ) + }, + GET_ORIGIN_REQUEST_POLICY_CONFIG_INPUT, + GET_ORIGIN_REQUEST_POLICY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_ORIGIN_REQUEST_POLICY), +) + +GET_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _GPKI, + {_sSI: _cGPKR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _GPKO, + {_sSI: _cGPKRo, _smith: None}, + (_PK, _ET), + ((PUBLIC_KEY, 16), (STRING, {_sH: _ET})), +) + +GET_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _GPK, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/public-key/{Id}", "code": 200} + ) + }, + GET_PUBLIC_KEY_INPUT, + GET_PUBLIC_KEY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_PUBLIC_KEY), +) + +GET_PUBLIC_KEY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GPKCI, + {_sSI: _cGPKCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_PUBLIC_KEY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GPKCO, + {_sSI: _cGPKCRo, _smith: None}, + (_PKC, _ET), + ((PUBLIC_KEY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_PUBLIC_KEY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GPKC, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/public-key/{Id}/config", "code": 200} + ) + }, + GET_PUBLIC_KEY_CONFIG_INPUT, + GET_PUBLIC_KEY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_PUBLIC_KEY), +) + +GET_REALTIME_LOG_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GRLCI, + {_sSI: _cGRLCR, _smit: None}, + (_N, _ARN), + ((STRING, 0), (STRING, 0)), +) + +GET_REALTIME_LOG_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GRLCO, + {_sSI: _cGRLCRo, _smith: None}, + (_RLC,), + ((REALTIME_LOG_CONFIG, 0),), +) + +GET_REALTIME_LOG_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GRLC, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/get-realtime-log-config", + "code": 200, + } + ) + }, + GET_REALTIME_LOG_CONFIG_INPUT, + GET_REALTIME_LOG_CONFIG_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_REALTIME_LOG_CONFIG), +) + +GET_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GRPI, + {_sSI: _cGRPR, _smit: None}, + (_RA,), + ((STRING, 1),), +) + +GET_RESOURCE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GRPO, + {_sSI: _cGRPRo, _smith: None}, + (_RA, _PDo), + ((STRING, 0), (STRING, 0)), +) + +GET_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _GRP, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/get-resource-policy", "code": 200} + ) + }, + GET_RESOURCE_POLICY_INPUT, + GET_RESOURCE_POLICY_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +GET_RESPONSE_HEADERS_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GRHPI, + {_sSI: _cGRHPR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_RESPONSE_HEADERS_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GRHPO, + {_sSI: _cGRHPRo, _smith: None}, + (_RHP, _ET), + ((RESPONSE_HEADERS_POLICY, 16), (STRING, {_sH: _ET})), +) + +GET_RESPONSE_HEADERS_POLICY: StaticOperationSchema = ( + 23, + n0, + _GRHP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 200, + } + ) + }, + GET_RESPONSE_HEADERS_POLICY_INPUT, + GET_RESPONSE_HEADERS_POLICY_OUTPUT, + (ACCESS_DENIED, NO_SUCH_RESPONSE_HEADERS_POLICY), +) + +GET_RESPONSE_HEADERS_POLICY_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GRHPCI, + {_sSI: _cGRHPCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_RESPONSE_HEADERS_POLICY_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GRHPCO, + {_sSI: _cGRHPCRo, _smith: None}, + (_RHPC, _ET), + ((RESPONSE_HEADERS_POLICY_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_RESPONSE_HEADERS_POLICY_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GRHPC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/response-headers-policy/{Id}/config", + "code": 200, + } + ) + }, + GET_RESPONSE_HEADERS_POLICY_CONFIG_INPUT, + GET_RESPONSE_HEADERS_POLICY_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_RESPONSE_HEADERS_POLICY), +) + +GET_STREAMING_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _GSDI, + {_sSI: _cGSDR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_STREAMING_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GSDO, + {_sSI: _cGSDRo, _smith: None}, + (_SD, _ET), + ((STREAMING_DISTRIBUTION, 16), (STRING, {_sH: _ET})), +) + +GET_STREAMING_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _GSD, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/streaming-distribution/{Id}", + "code": 200, + } + ) + }, + GET_STREAMING_DISTRIBUTION_INPUT, + GET_STREAMING_DISTRIBUTION_OUTPUT, + (ACCESS_DENIED, NO_SUCH_STREAMING_DISTRIBUTION), +) + +GET_STREAMING_DISTRIBUTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _GSDCI, + {_sSI: _cGSDCR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_STREAMING_DISTRIBUTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _GSDCO, + {_sSI: _cGSDCRo, _smith: None}, + (_SDC, _ET), + ((STREAMING_DISTRIBUTION_CONFIG, 16), (STRING, {_sH: _ET})), +) + +GET_STREAMING_DISTRIBUTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _GSDC, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/streaming-distribution/{Id}/config", + "code": 200, + } + ) + }, + GET_STREAMING_DISTRIBUTION_CONFIG_INPUT, + GET_STREAMING_DISTRIBUTION_CONFIG_OUTPUT, + (ACCESS_DENIED, NO_SUCH_STREAMING_DISTRIBUTION), +) + +GET_TRUST_STORE_INPUT: StaticSchema = ( + 18, + n0, + _GTSI, + {_sSI: _cGTSR, _smit: None}, + (_Ide,), + ((STRING, 9),), +) + +GET_TRUST_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _GTSO, + {_sSI: _cGTSRo, _smith: None}, + (_TSr, _ET), + ((TRUST_STORE, 16), (STRING, {_sH: _ET})), +) + +GET_TRUST_STORE: StaticOperationSchema = ( + 23, + n0, + _GTS, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/trust-store/{Identifier}", + "code": 200, + } + ) + }, + GET_TRUST_STORE_INPUT, + GET_TRUST_STORE_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +GET_VPC_ORIGIN_INPUT: StaticSchema = ( + 18, + n0, + _GVOI, + {_sSI: _cGVOR, _smit: None}, + (_Id,), + ((STRING, 9),), +) + +GET_VPC_ORIGIN_OUTPUT: StaticSchema = ( + 18, + n0, + _GVOO, + {_sSI: _cGVORo, _smith: None}, + (_VO, _ET), + ((VPC_ORIGIN, 16), (STRING, {_sH: _ET})), +) + +GET_VPC_ORIGIN: StaticOperationSchema = ( + 23, + n0, + _GVO, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/vpc-origin/{Id}", "code": 200} + ) + }, + GET_VPC_ORIGIN_INPUT, + GET_VPC_ORIGIN_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_ANYCAST_IP_LISTS_INPUT: StaticSchema = ( + 18, + n0, + _LAILI, + {_sSI: _cLAILR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +LIST_ANYCAST_IP_LISTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LAILO, + {_sSI: _cLAILRo, _smith: None}, + (_AILn,), + ((ANYCAST_IP_LIST_COLLECTION, {_sN: _AILC, _sP: None}),), +) + +LIST_ANYCAST_IP_LISTS: StaticOperationSchema = ( + 23, + n0, + _LAIL, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/anycast-ip-list", "code": 200} + ) + }, + LIST_ANYCAST_IP_LISTS_INPUT, + LIST_ANYCAST_IP_LISTS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_CACHE_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LCPI, + {_sSI: _cLCPR, _smit: None}, + (_T, _Ma, _MI), + ((CACHE_POLICY_TYPE, {_sQ: _T}), (STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +LIST_CACHE_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCPO, + {_sSI: _cLCPRo, _smith: None}, + (_CPL,), + ((CACHE_POLICY_LIST, 16),), +) + +LIST_CACHE_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LCP, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/cache-policy", "code": 200} + ) + }, + LIST_CACHE_POLICIES_INPUT, + LIST_CACHE_POLICIES_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_CACHE_POLICY), +) + +LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_INPUT: StaticSchema = ( + 18, + n0, + _LCFOAII, + {_sSI: _cLCFOAIR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_SUMMARY: StaticSchema = ( + 18, + n0, + _CFOAIS, + 0, + (_Id, _SCUI, _Comm), + ((STRING, 1), (STRING, 1), (STRING, 1)), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CFOAISL, + 0, + (_m,), + ((CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_SUMMARY, {_sN: _CFOAIS}),), +) + +CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_LIST: StaticSchema = ( + 18, + n0, + _CFOAIL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_SUMMARY_LIST, 0), + ), +) + +LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCFOAIO, + {_sSI: _cLCFOAIRo, _smith: None}, + (_CFOAIL,), + ((CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_LIST, 16),), +) + +LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES: StaticOperationSchema = ( + 23, + n0, + _LCFOAI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront", + "code": 200, + } + ) + }, + LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_INPUT, + LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_OUTPUT, + (INVALID_ARGUMENT,), +) + +DISTRIBUTION_ID_STRING: StaticSchema = (3, n0, _dIS, 0) + +LIST_CONFLICTING_ALIASES_MAX_ITEMS_INTEGER: StaticSchema = (7, n0, _lCAMII, 0) + +LIST_CONFLICTING_ALIASES_INPUT: StaticSchema = ( + 18, + n0, + _LCAI, + {_sSI: _cLCAR, _smit: None}, + (_DIi, _Al, _Ma, _MI), + ( + (DISTRIBUTION_ID_STRING, {_sQ: _DIi, _smi: None}), + (ALIAS_STRING, {_sQ: _Al, _smi: None}), + (STRING, {_sQ: _Ma}), + (LIST_CONFLICTING_ALIASES_MAX_ITEMS_INTEGER, {_sQ: _MI}), + ), +) + +CONFLICTING_ALIAS: StaticSchema = ( + 18, + n0, + _CAo, + 0, + (_Al, _DIi, _AIc), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +CONFLICTING_ALIASES: StaticSchema = ( + 16, + n0, + _CAon, + 0, + (_m,), + ((CONFLICTING_ALIAS, {_sN: _CAo}),), +) + +CONFLICTING_ALIASES_LIST: StaticSchema = ( + 18, + n0, + _CAL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 0), (INTEGER, 0), (CONFLICTING_ALIASES, 0)), +) + +LIST_CONFLICTING_ALIASES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCAO, + {_sSI: _cLCARo, _smith: None}, + (_CAL,), + ((CONFLICTING_ALIASES_LIST, 16),), +) + +LIST_CONFLICTING_ALIASES: StaticOperationSchema = ( + 23, + n0, + _LCA, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/conflicting-alias", "code": 200} + ) + }, + LIST_CONFLICTING_ALIASES_INPUT, + LIST_CONFLICTING_ALIASES_OUTPUT, + (INVALID_ARGUMENT, NO_SUCH_DISTRIBUTION), +) + +LIST_CONNECTION_FUNCTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LCFI, + {_sSI: _cLCFR, _smit: None}, + (_Ma, _MI, _Stag), + ((STRING, 0), (INTEGER, 0), (FUNCTION_STAGE, 0)), +) + +CONNECTION_FUNCTION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CFSL, + 0, + (_m,), + ((CONNECTION_FUNCTION_SUMMARY, {_sN: _CFS}),), +) + +LIST_CONNECTION_FUNCTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCFO, + {_sSI: _cLCFRo, _smith: None}, + (_NM, _CFo), + ((STRING, 0), (CONNECTION_FUNCTION_SUMMARY_LIST, 0)), +) + +LIST_CONNECTION_FUNCTIONS: StaticOperationSchema = ( + 23, + n0, + _LCF, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/connection-functions", "code": 200} + ) + }, + LIST_CONNECTION_FUNCTIONS_INPUT, + LIST_CONNECTION_FUNCTIONS_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +CONNECTION_GROUP_ASSOCIATION_FILTER: StaticSchema = ( + 18, + n0, + _CGAF, + 0, + (_AILI,), + ((STRING, 0),), +) + +LIST_CONNECTION_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _LCGI, + {_sSI: _cLCGR, _smit: None}, + (_AF, _Ma, _MI), + ((CONNECTION_GROUP_ASSOCIATION_FILTER, 0), (STRING, 0), (INTEGER, 0)), +) + +CONNECTION_GROUP_SUMMARY: StaticSchema = ( + 18, + n0, + _CGS, + 0, + (_Id, _N, _Ar, _RE, _CTr, _LMT, _ET, _AILI, _E, _St, _ID), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TIMESTAMP, 1), + (TIMESTAMP, 1), + (STRING, 1), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +CONNECTION_GROUP_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CGSL, + 0, + (_m,), + ((CONNECTION_GROUP_SUMMARY, {_sN: _CGS}),), +) + +LIST_CONNECTION_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCGO, + {_sSI: _cLCGRo, _smith: None}, + (_NM, _CGo), + ((STRING, 0), (CONNECTION_GROUP_SUMMARY_LIST, 0)), +) + +LIST_CONNECTION_GROUPS: StaticOperationSchema = ( + 23, + n0, + _LCG, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/connection-groups", "code": 200} + ) + }, + LIST_CONNECTION_GROUPS_INPUT, + LIST_CONNECTION_GROUPS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_CONTINUOUS_DEPLOYMENT_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LCDPI, + {_sSI: _cLCDPR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +CONTINUOUS_DEPLOYMENT_POLICY_SUMMARY: StaticSchema = ( + 18, + n0, + _CDPS, + 0, + (_CDP,), + ((CONTINUOUS_DEPLOYMENT_POLICY, 1),), +) + +CONTINUOUS_DEPLOYMENT_POLICY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _CDPSL, + 0, + (_m,), + ((CONTINUOUS_DEPLOYMENT_POLICY_SUMMARY, {_sN: _CDPS}),), +) + +CONTINUOUS_DEPLOYMENT_POLICY_LIST: StaticSchema = ( + 18, + n0, + _CDPL, + 0, + (_NM, _MI, _Q, _I), + ( + (STRING, 0), + (INTEGER, 1), + (INTEGER, 1), + (CONTINUOUS_DEPLOYMENT_POLICY_SUMMARY_LIST, 0), + ), +) + +LIST_CONTINUOUS_DEPLOYMENT_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCDPO, + {_sSI: _cLCDPRo, _smith: None}, + (_CDPL,), + ((CONTINUOUS_DEPLOYMENT_POLICY_LIST, 16),), +) + +LIST_CONTINUOUS_DEPLOYMENT_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LCDP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy", + "code": 200, + } + ) + }, + LIST_CONTINUOUS_DEPLOYMENT_POLICIES_INPUT, + LIST_CONTINUOUS_DEPLOYMENT_POLICIES_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY), +) + +LIST_DISTRIBUTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LDI, + {_sSI: _cLDR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +DISTRIBUTION_SUMMARY: StaticSchema = ( + 18, + n0, + _DSi, + 0, + ( + _Id, + _ARN, + _ET, + _St, + _LMT, + _DN, + _A, + _Or, + _OGr, + _DCB, + _CBa, + _CERu, + _Comm, + _PC, + _E, + _VC, + _Re, + _WACLI, + _HV, + _IIPVE, + _AICPRl, + _Sta, + _CMo, + _AILI, + _VMC, + _CFA, + ), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (TIMESTAMP, 1), + (STRING, 1), + (ALIASES, 1), + (ORIGINS, 1), + (ORIGIN_GROUPS, 0), + (DEFAULT_CACHE_BEHAVIOR, 1), + (CACHE_BEHAVIORS, 1), + (CUSTOM_ERROR_RESPONSES, 1), + (SENSITIVE_STRING_TYPE, 1), + (PRICE_CLASS, 1), + (BOOLEAN, 1), + (VIEWER_CERTIFICATE, 1), + (RESTRICTIONS, 1), + (STRING, 1), + (HTTP_VERSION, 1), + (BOOLEAN, 1), + (ALIAS_ICP_RECORDALS, 0), + (BOOLEAN, 1), + (CONNECTION_MODE, 0), + (STRING, 0), + (VIEWER_MTLS_CONFIG, 0), + (CONNECTION_FUNCTION_ASSOCIATION, 0), + ), +) + +DISTRIBUTION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _DSL, + 0, + (_m,), + ((DISTRIBUTION_SUMMARY, {_sN: _DSi}),), +) + +DISTRIBUTION_LIST: StaticSchema = ( + 18, + n0, + _DLi, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (DISTRIBUTION_SUMMARY_LIST, 0), + ), +) + +LIST_DISTRIBUTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDO, + {_sSI: _cLDRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS: StaticOperationSchema = ( + 23, + n0, + _LD, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/distribution", "code": 200} + ) + }, + LIST_DISTRIBUTIONS_INPUT, + LIST_DISTRIBUTIONS_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBAILII, + {_sSI: _cLDBAILIR, _smit: None}, + (_Ma, _MI, _AILI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBAILIO, + {_sSI: _cLDBAILIRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID: StaticOperationSchema = ( + 23, + n0, + _LDBAILI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByAnycastIpListId/{AnycastIpListId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_INPUT, + LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBCPII, + {_sSI: _cLDBCPIR, _smit: None}, + (_Ma, _MI, _CPI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +DISTRIBUTION_ID_LIST_SUMMARY: StaticSchema = ( + 16, + n0, + _DILS, + 0, + (_m,), + ((STRING, {_sN: _DIi}),), +) + +DISTRIBUTION_ID_LIST: StaticSchema = ( + 18, + n0, + _DIL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (DISTRIBUTION_ID_LIST_SUMMARY, 0), + ), +) + +LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBCPIO, + {_sSI: _cLDBCPIRo, _smith: None}, + (_DIL,), + ((DISTRIBUTION_ID_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID: StaticOperationSchema = ( + 23, + n0, + _LDBCPI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByCachePolicyId/{CachePolicyId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_INPUT, + LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_CACHE_POLICY), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _LDBCFI, + {_sSI: _cLDBCFR, _smit: None}, + (_Ma, _MI, _CFIo), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, {_sQ: _CFIo, _smi: None})), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBCFO, + {_sSI: _cLDBCFRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _LDBCF, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByConnectionFunction", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_INPUT, + LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_INPUT: StaticSchema = ( + 18, + n0, + _LDBCMI, + {_sSI: _cLDBCMR, _smit: None}, + (_Ma, _MI, _CMo), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (CONNECTION_MODE, 9)), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBCMO, + {_sSI: _cLDBCMRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_CONNECTION_MODE: StaticOperationSchema = ( + 23, + n0, + _LDBCM, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByConnectionMode/{ConnectionMode}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_INPUT, + LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT), +) + +LIST_DISTRIBUTIONS_BY_KEY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _LDBKGI, + {_sSI: _cLDBKGR, _smit: None}, + (_Ma, _MI, _KGI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_KEY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBKGO, + {_sSI: _cLDBKGRo, _smith: None}, + (_DIL,), + ((DISTRIBUTION_ID_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_KEY_GROUP: StaticOperationSchema = ( + 23, + n0, + _LDBKG, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByKeyGroupId/{KeyGroupId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_KEY_GROUP_INPUT, + LIST_DISTRIBUTIONS_BY_KEY_GROUP_OUTPUT, + (INVALID_ARGUMENT, NO_SUCH_RESOURCE), +) + +LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBORPII, + {_sSI: _cLDBORPIR, _smit: None}, + (_Ma, _MI, _ORPI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBORPIO, + {_sSI: _cLDBORPIRo, _smith: None}, + (_DIL,), + ((DISTRIBUTION_ID_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID: StaticOperationSchema = ( + 23, + n0, + _LDBORPI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByOriginRequestPolicyId/{OriginRequestPolicyId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_INPUT, + LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_ORIGIN_REQUEST_POLICY), +) + +LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LDBORI, + {_sSI: _cLDBORR, _smit: None}, + (_RA, _Ma, _MI), + ((STRING, 9), (STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +DISTRIBUTION_ID_OWNER: StaticSchema = ( + 18, + n0, + _DIO, + 0, + (_DIi, _OAIw), + ((STRING, 1), (STRING, 1)), +) + +DISTRIBUTION_ID_OWNER_ITEM_LIST: StaticSchema = ( + 16, + n0, + _DIOIL, + 0, + (_m,), + ((DISTRIBUTION_ID_OWNER, {_sN: _DIO}),), +) + +DISTRIBUTION_ID_OWNER_LIST: StaticSchema = ( + 18, + n0, + _DIOL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (DISTRIBUTION_ID_OWNER_ITEM_LIST, 0), + ), +) + +LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBORO, + {_sSI: _cLDBORRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_ID_OWNER_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LDBOR, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByOwnedResource/{ResourceArn}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_INPUT, + LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _LDBRLCI, + {_sSI: _cLDBRLCR, _smit: None}, + (_Ma, _MI, _RLCN, _RLCA), + ((STRING, 0), (INTEGER, 0), (STRING, 0), (STRING, 0)), +) + +LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBRLCO, + {_sSI: _cLDBRLCRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG: StaticOperationSchema = ( + 23, + n0, + _LDBRLC, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distributionsByRealtimeLogConfig", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_INPUT, + LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBRHPII, + {_sSI: _cLDBRHPIR, _smit: None}, + (_Ma, _MI, _RHPI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBRHPIO, + {_sSI: _cLDBRHPIRo, _smith: None}, + (_DIL,), + ((DISTRIBUTION_ID_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID: StaticOperationSchema = ( + 23, + n0, + _LDBRHPI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByResponseHeadersPolicyId/{ResponseHeadersPolicyId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_INPUT, + LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_RESPONSE_HEADERS_POLICY), +) + +LIST_DISTRIBUTIONS_BY_TRUST_STORE_INPUT: StaticSchema = ( + 18, + n0, + _LDBTSI, + {_sSI: _cLDBTSR, _smit: None}, + (_TSIr, _Ma, _MI), + ((STRING, {_sQ: _TSIr, _smi: None}), (STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +LIST_DISTRIBUTIONS_BY_TRUST_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBTSO, + {_sSI: _cLDBTSRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_TRUST_STORE: StaticOperationSchema = ( + 23, + n0, + _LDBTS, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByTrustStore", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_TRUST_STORE_INPUT, + LIST_DISTRIBUTIONS_BY_TRUST_STORE_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBVOII, + {_sSI: _cLDBVOIR, _smit: None}, + (_Ma, _MI, _VOI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBVOIO, + {_sSI: _cLDBVOIRo, _smith: None}, + (_DIL,), + ((DISTRIBUTION_ID_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID: StaticOperationSchema = ( + 23, + n0, + _LDBVOI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByVpcOriginId/{VpcOriginId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_INPUT, + LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_INPUT: StaticSchema = ( + 18, + n0, + _LDBWACLII, + {_sSI: _cLDBWACLIR, _smit: None}, + (_Ma, _MI, _WACLI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, 9)), +) + +LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBWACLIO, + {_sSI: _cLDBWACLIRo, _smith: None}, + (_DLi,), + ((DISTRIBUTION_LIST, 16),), +) + +LIST_DISTRIBUTIONS_BY_WEB_ACL_ID: StaticOperationSchema = ( + 23, + n0, + _LDBWACLI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distributionsByWebACLId/{WebACLId}", + "code": 200, + } + ) + }, + LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_INPUT, + LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_OUTPUT, + (INVALID_ARGUMENT, INVALID_WEB_ACL_ID), +) + +DISTRIBUTION_TENANT_ASSOCIATION_FILTER: StaticSchema = ( + 18, + n0, + _DTAF, + 0, + (_DIi, _CGI), + ((STRING, 0), (STRING, 0)), +) + +LIST_DISTRIBUTION_TENANTS_INPUT: StaticSchema = ( + 18, + n0, + _LDTI, + {_sSI: _cLDTR, _smit: None}, + (_AF, _Ma, _MI), + ((DISTRIBUTION_TENANT_ASSOCIATION_FILTER, 0), (STRING, 0), (INTEGER, 0)), +) + +DISTRIBUTION_TENANT_SUMMARY: StaticSchema = ( + 18, + n0, + _DTSi, + 0, + (_Id, _DIi, _N, _Ar, _Dom, _CGI, _Cu, _CTr, _LMT, _ET, _E, _St), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (DOMAIN_RESULT_LIST, 1), + (STRING, 0), + (CUSTOMIZATIONS, 0), + (TIMESTAMP, 1), + (TIMESTAMP, 1), + (STRING, 1), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +DISTRIBUTION_TENANT_LIST: StaticSchema = ( + 16, + n0, + _DTL, + 0, + (_m,), + ((DISTRIBUTION_TENANT_SUMMARY, {_sN: _DTSi}),), +) + +LIST_DISTRIBUTION_TENANTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDTO, + {_sSI: _cLDTRo, _smith: None}, + (_NM, _DTL), + ((STRING, 0), (DISTRIBUTION_TENANT_LIST, 0)), +) + +LIST_DISTRIBUTION_TENANTS: StaticOperationSchema = ( + 23, + n0, + _LDT, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/distribution-tenants", "code": 200} + ) + }, + LIST_DISTRIBUTION_TENANTS_INPUT, + LIST_DISTRIBUTION_TENANTS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_INPUT: StaticSchema = ( + 18, + n0, + _LDTBCI, + {_sSI: _cLDTBCR, _smit: None}, + (_WACLA, _CAe, _Ma, _MI), + ((STRING, 0), (STRING, 0), (STRING, 0), (INTEGER, 0)), +) + +LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_OUTPUT: StaticSchema = ( + 18, + n0, + _LDTBCO, + {_sSI: _cLDTBCRo, _smith: None}, + (_NM, _DTL), + ((STRING, 0), (DISTRIBUTION_TENANT_LIST, 0)), +) + +LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION: StaticOperationSchema = ( + 23, + n0, + _LDTBC, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/distribution-tenants-by-customization", + "code": 200, + } + ) + }, + LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_INPUT, + LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +DISTRIBUTION_RESOURCE_ID: StaticSchema = ( + 18, + n0, + _DRI, + 0, + (_DIi, _DTI), + ((STRING, 0), (STRING, 0)), +) + +LIST_DOMAIN_CONFLICTS_INPUT: StaticSchema = ( + 18, + n0, + _LDCI, + {_sSI: _cLDCR, _smit: None}, + (_Do, _DCVR, _MI, _Ma), + ((STRING, 1), (DISTRIBUTION_RESOURCE_ID, 1), (INTEGER, 0), (STRING, 0)), +) + +DISTRIBUTION_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _DRT, + 0, + (_Dis, _DT), + ((-1, {_sV: _dist}), (-1, {_sV: _dt})), +) + +DOMAIN_CONFLICT: StaticSchema = ( + 18, + n0, + _DCo, + 0, + (_Do, _RTes, _RI, _AIc), + ((STRING, 1), (DISTRIBUTION_RESOURCE_TYPE, 1), (STRING, 1), (STRING, 1)), +) + +DOMAIN_CONFLICTS_LIST: StaticSchema = ( + 16, + n0, + _DCL, + 0, + (_m,), + ((DOMAIN_CONFLICT, {_sN: _DCom}),), +) + +LIST_DOMAIN_CONFLICTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDCO, + {_sSI: _cLDCRo, _smith: None}, + (_DCom, _NM), + ((DOMAIN_CONFLICTS_LIST, 0), (STRING, 0)), +) + +LIST_DOMAIN_CONFLICTS: StaticOperationSchema = ( + 23, + n0, + _LDC, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/domain-conflicts", "code": 200} + ) + }, + LIST_DOMAIN_CONFLICTS_INPUT, + LIST_DOMAIN_CONFLICTS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_INPUT: StaticSchema = ( + 18, + n0, + _LFLECI, + {_sSI: _cLFLECR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +FIELD_LEVEL_ENCRYPTION_SUMMARY: StaticSchema = ( + 18, + n0, + _FLES, + 0, + (_Id, _LMT, _Comm, _QAPC, _CTPC), + ( + (STRING, 1), + (TIMESTAMP, 1), + (STRING, 0), + (QUERY_ARG_PROFILE_CONFIG, 0), + (CONTENT_TYPE_PROFILE_CONFIG, 0), + ), +) + +FIELD_LEVEL_ENCRYPTION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _FLESL, + 0, + (_m,), + ((FIELD_LEVEL_ENCRYPTION_SUMMARY, {_sN: _FLES}),), +) + +FIELD_LEVEL_ENCRYPTION_LIST: StaticSchema = ( + 18, + n0, + _FLEL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (FIELD_LEVEL_ENCRYPTION_SUMMARY_LIST, 0)), +) + +LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LFLECO, + {_sSI: _cLFLECRo, _smith: None}, + (_FLEL,), + ((FIELD_LEVEL_ENCRYPTION_LIST, 16),), +) + +LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS: StaticOperationSchema = ( + 23, + n0, + _LFLEC, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/field-level-encryption", "code": 200} + ) + }, + LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_INPUT, + LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_INPUT: StaticSchema = ( + 18, + n0, + _LFLEPI, + {_sSI: _cLFLEPR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_SUMMARY: StaticSchema = ( + 18, + n0, + _FLEPS, + 0, + (_Id, _LMT, _N, _EEn, _Comm), + ((STRING, 1), (TIMESTAMP, 1), (STRING, 1), (ENCRYPTION_ENTITIES, 1), (STRING, 0)), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _FLEPSL, + 0, + (_m,), + ((FIELD_LEVEL_ENCRYPTION_PROFILE_SUMMARY, {_sN: _FLEPS}),), +) + +FIELD_LEVEL_ENCRYPTION_PROFILE_LIST: StaticSchema = ( + 18, + n0, + _FLEPL, + 0, + (_NM, _MI, _Q, _I), + ( + (STRING, 0), + (INTEGER, 1), + (INTEGER, 1), + (FIELD_LEVEL_ENCRYPTION_PROFILE_SUMMARY_LIST, 0), + ), +) + +LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_OUTPUT: StaticSchema = ( + 18, + n0, + _LFLEPO, + {_sSI: _cLFLEPRo, _smith: None}, + (_FLEPL,), + ((FIELD_LEVEL_ENCRYPTION_PROFILE_LIST, 16),), +) + +LIST_FIELD_LEVEL_ENCRYPTION_PROFILES: StaticOperationSchema = ( + 23, + n0, + _LFLEP, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile", + "code": 200, + } + ) + }, + LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_INPUT, + LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_FUNCTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LFI, + {_sSI: _cLFR, _smit: None}, + (_Ma, _MI, _Stag), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (FUNCTION_STAGE, {_sQ: _Stag})), +) + +FUNCTION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _FSL, + 0, + (_m,), + ((FUNCTION_SUMMARY, {_sN: _FSu}),), +) + +FUNCTION_LIST: StaticSchema = ( + 18, + n0, + _FLu, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (FUNCTION_SUMMARY_LIST, 0)), +) + +LIST_FUNCTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LFO, + {_sSI: _cLFRo, _smith: None}, + (_FLu,), + ((FUNCTION_LIST, 16),), +) + +LIST_FUNCTIONS: StaticOperationSchema = ( + 23, + n0, + _LF, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/function", "code": 200} + ) + }, + LIST_FUNCTIONS_INPUT, + LIST_FUNCTIONS_OUTPUT, + (INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_INVALIDATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LII, + {_sSI: _cLIR, _smit: None}, + (_DIi, _Ma, _MI), + ((STRING, 9), (STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +INVALIDATION_SUMMARY: StaticSchema = ( + 18, + n0, + _ISnv, + 0, + (_Id, _CTre, _St), + ((STRING, 1), (TIMESTAMP, 1), (STRING, 1)), +) + +INVALIDATION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _ISL, + 0, + (_m,), + ((INVALIDATION_SUMMARY, {_sN: _ISnv}),), +) + +INVALIDATION_LIST: StaticSchema = ( + 18, + n0, + _IL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (INVALIDATION_SUMMARY_LIST, 0), + ), +) + +LIST_INVALIDATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LIO, + {_sSI: _cLIRo, _smith: None}, + (_IL,), + ((INVALIDATION_LIST, 16),), +) + +LIST_INVALIDATIONS: StaticOperationSchema = ( + 23, + n0, + _LI, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation", + "code": 200, + } + ) + }, + LIST_INVALIDATIONS_INPUT, + LIST_INVALIDATIONS_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_DISTRIBUTION), +) + +LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _LIFDTI, + {_sSI: _cLIFDTR, _smit: None}, + (_Id, _Ma, _MI), + ((STRING, 9), (STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _LIFDTO, + {_sSI: _cLIFDTRo, _smith: None}, + (_IL,), + ((INVALIDATION_LIST, 16),), +) + +LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _LIFDT, + { + _smithy: MappingProxyType( + { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{Id}/invalidation", + "code": 200, + } + ) + }, + LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_INPUT, + LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_KEY_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _LKGI, + {_sSI: _cLKGR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +KEY_GROUP_SUMMARY: StaticSchema = (18, n0, _KGS, 0, (_KG,), ((KEY_GROUP, 1),)) + +KEY_GROUP_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _KGSL, + 0, + (_m,), + ((KEY_GROUP_SUMMARY, {_sN: _KGS}),), +) + +KEY_GROUP_LIST: StaticSchema = ( + 18, + n0, + _KGL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (KEY_GROUP_SUMMARY_LIST, 0)), +) + +LIST_KEY_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _LKGO, + {_sSI: _cLKGRo, _smith: None}, + (_KGL,), + ((KEY_GROUP_LIST, 16),), +) + +LIST_KEY_GROUPS: StaticOperationSchema = ( + 23, + n0, + _LKG, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/key-group", "code": 200} + ) + }, + LIST_KEY_GROUPS_INPUT, + LIST_KEY_GROUPS_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_KEY_VALUE_STORES_INPUT: StaticSchema = ( + 18, + n0, + _LKVSI, + {_sSI: _cLKVSR, _smit: None}, + (_Ma, _MI, _St), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI}), (STRING, {_sQ: _St})), +) + +KEY_VALUE_STORE_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _KVSSL, + 0, + (_m,), + ((KEY_VALUE_STORE, {_sN: _KVS}),), +) + +KEY_VALUE_STORE_LIST: StaticSchema = ( + 18, + n0, + _KVSL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (KEY_VALUE_STORE_SUMMARY_LIST, 0)), +) + +LIST_KEY_VALUE_STORES_OUTPUT: StaticSchema = ( + 18, + n0, + _LKVSO, + {_sSI: _cLKVSRo, _smith: None}, + (_KVSL,), + ((KEY_VALUE_STORE_LIST, 16),), +) + +LIST_KEY_VALUE_STORES: StaticOperationSchema = ( + 23, + n0, + _LKVS, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/key-value-store", "code": 200} + ) + }, + LIST_KEY_VALUE_STORES_INPUT, + LIST_KEY_VALUE_STORES_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +LIST_ORIGIN_ACCESS_CONTROLS_INPUT: StaticSchema = ( + 18, + n0, + _LOACI, + {_sSI: _cLOACR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +ORIGIN_ACCESS_CONTROL_SUMMARY: StaticSchema = ( + 18, + n0, + _OACS, + 0, + (_Id, _Des, _N, _SPi, _SB, _OACOTr), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (ORIGIN_ACCESS_CONTROL_SIGNING_PROTOCOLS, 1), + (ORIGIN_ACCESS_CONTROL_SIGNING_BEHAVIORS, 1), + (ORIGIN_ACCESS_CONTROL_ORIGIN_TYPES, 1), + ), +) + +ORIGIN_ACCESS_CONTROL_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _OACSL, + 0, + (_m,), + ((ORIGIN_ACCESS_CONTROL_SUMMARY, {_sN: _OACS}),), +) + +ORIGIN_ACCESS_CONTROL_LIST: StaticSchema = ( + 18, + n0, + _OACL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (ORIGIN_ACCESS_CONTROL_SUMMARY_LIST, 0), + ), +) + +LIST_ORIGIN_ACCESS_CONTROLS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOACO, + {_sSI: _cLOACRo, _smith: None}, + (_OACL,), + ((ORIGIN_ACCESS_CONTROL_LIST, 16),), +) + +LIST_ORIGIN_ACCESS_CONTROLS: StaticOperationSchema = ( + 23, + n0, + _LOAC, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/origin-access-control", "code": 200} + ) + }, + LIST_ORIGIN_ACCESS_CONTROLS_INPUT, + LIST_ORIGIN_ACCESS_CONTROLS_OUTPUT, + (INVALID_ARGUMENT,), +) + +ORIGIN_REQUEST_POLICY_TYPE: StaticSchema = ( + 14, + n0, + _ORPT, + 0, + (_ma, _cu), + ((-1, {_sV: _ma}), (-1, {_sV: _cu})), +) + +LIST_ORIGIN_REQUEST_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LORPI, + {_sSI: _cLORPR, _smit: None}, + (_T, _Ma, _MI), + ( + (ORIGIN_REQUEST_POLICY_TYPE, {_sQ: _T}), + (STRING, {_sQ: _Ma}), + (INTEGER, {_sQ: _MI}), + ), +) + +ORIGIN_REQUEST_POLICY_SUMMARY: StaticSchema = ( + 18, + n0, + _ORPS, + 0, + (_T, _ORP), + ((ORIGIN_REQUEST_POLICY_TYPE, 1), (ORIGIN_REQUEST_POLICY, 1)), +) + +ORIGIN_REQUEST_POLICY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _ORPSL, + 0, + (_m,), + ((ORIGIN_REQUEST_POLICY_SUMMARY, {_sN: _ORPS}),), +) + +ORIGIN_REQUEST_POLICY_LIST: StaticSchema = ( + 18, + n0, + _ORPL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (ORIGIN_REQUEST_POLICY_SUMMARY_LIST, 0)), +) + +LIST_ORIGIN_REQUEST_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LORPO, + {_sSI: _cLORPRo, _smith: None}, + (_ORPL,), + ((ORIGIN_REQUEST_POLICY_LIST, 16),), +) + +LIST_ORIGIN_REQUEST_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LORP, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/origin-request-policy", "code": 200} + ) + }, + LIST_ORIGIN_REQUEST_POLICIES_INPUT, + LIST_ORIGIN_REQUEST_POLICIES_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_ORIGIN_REQUEST_POLICY), +) + +LIST_PUBLIC_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _LPKI, + {_sSI: _cLPKR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +PUBLIC_KEY_SUMMARY: StaticSchema = ( + 18, + n0, + _PKS, + 0, + (_Id, _N, _CTr, _EK, _Comm), + ((STRING, 1), (STRING, 1), (TIMESTAMP, 1), (STRING, 1), (STRING, 0)), +) + +PUBLIC_KEY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _PKSL, + 0, + (_m,), + ((PUBLIC_KEY_SUMMARY, {_sN: _PKS}),), +) + +PUBLIC_KEY_LIST: StaticSchema = ( + 18, + n0, + _PKL, + 0, + (_NM, _MI, _Q, _I), + ((STRING, 0), (INTEGER, 1), (INTEGER, 1), (PUBLIC_KEY_SUMMARY_LIST, 0)), +) + +LIST_PUBLIC_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LPKO, + {_sSI: _cLPKRo, _smith: None}, + (_PKL,), + ((PUBLIC_KEY_LIST, 16),), +) + +LIST_PUBLIC_KEYS: StaticOperationSchema = ( + 23, + n0, + _LPK, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/public-key", "code": 200} + ) + }, + LIST_PUBLIC_KEYS_INPUT, + LIST_PUBLIC_KEYS_OUTPUT, + (INVALID_ARGUMENT,), +) + +LIST_REALTIME_LOG_CONFIGS_INPUT: StaticSchema = ( + 18, + n0, + _LRLCI, + {_sSI: _cLRLCR, _smit: None}, + (_MI, _Ma), + ((INTEGER, {_sQ: _MI}), (STRING, {_sQ: _Ma})), +) + +REALTIME_LOG_CONFIG_LIST: StaticSchema = ( + 16, + n0, + _RLCL, + 0, + (_m,), + ((REALTIME_LOG_CONFIG, 0),), +) + +REALTIME_LOG_CONFIGS: StaticSchema = ( + 18, + n0, + _RLCe, + 0, + (_MI, _I, _IT, _Ma, _NM), + ( + (INTEGER, 1), + (REALTIME_LOG_CONFIG_LIST, 0), + (BOOLEAN, 1), + (STRING, 1), + (STRING, 0), + ), +) + +LIST_REALTIME_LOG_CONFIGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRLCO, + {_sSI: _cLRLCRo, _smith: None}, + (_RLCe,), + ((REALTIME_LOG_CONFIGS, 16),), +) + +LIST_REALTIME_LOG_CONFIGS: StaticOperationSchema = ( + 23, + n0, + _LRLC, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/realtime-log-config", "code": 200} + ) + }, + LIST_REALTIME_LOG_CONFIGS_INPUT, + LIST_REALTIME_LOG_CONFIGS_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_REALTIME_LOG_CONFIG), +) + +RESPONSE_HEADERS_POLICY_TYPE: StaticSchema = ( + 14, + n0, + _RHPT, + 0, + (_ma, _cu), + ((-1, {_sV: _ma}), (-1, {_sV: _cu})), +) + +LIST_RESPONSE_HEADERS_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LRHPI, + {_sSI: _cLRHPR, _smit: None}, + (_T, _Ma, _MI), + ( + (RESPONSE_HEADERS_POLICY_TYPE, {_sQ: _T}), + (STRING, {_sQ: _Ma}), + (INTEGER, {_sQ: _MI}), + ), +) + +RESPONSE_HEADERS_POLICY_SUMMARY: StaticSchema = ( + 18, + n0, + _RHPS, + 0, + (_T, _RHP), + ((RESPONSE_HEADERS_POLICY_TYPE, 1), (RESPONSE_HEADERS_POLICY, 1)), +) + +RESPONSE_HEADERS_POLICY_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _RHPSL, + 0, + (_m,), + ((RESPONSE_HEADERS_POLICY_SUMMARY, {_sN: _RHPS}),), +) + +RESPONSE_HEADERS_POLICY_LIST: StaticSchema = ( + 18, + n0, + _RHPL, + 0, + (_NM, _MI, _Q, _I), + ( + (STRING, 0), + (INTEGER, 1), + (INTEGER, 1), + (RESPONSE_HEADERS_POLICY_SUMMARY_LIST, 0), + ), +) + +LIST_RESPONSE_HEADERS_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LRHPO, + {_sSI: _cLRHPRo, _smith: None}, + (_RHPL,), + ((RESPONSE_HEADERS_POLICY_LIST, 16),), +) + +LIST_RESPONSE_HEADERS_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LRHP, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/response-headers-policy", "code": 200} + ) + }, + LIST_RESPONSE_HEADERS_POLICIES_INPUT, + LIST_RESPONSE_HEADERS_POLICIES_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_RESPONSE_HEADERS_POLICY), +) + +LIST_STREAMING_DISTRIBUTIONS_INPUT: StaticSchema = ( + 18, + n0, + _LSDI, + {_sSI: _cLSDR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +STREAMING_DISTRIBUTION_SUMMARY: StaticSchema = ( + 18, + n0, + _SDS, + 0, + (_Id, _ARN, _St, _LMT, _DN, _SO, _A, _TS, _Comm, _PC, _E), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TIMESTAMP, 1), + (STRING, 1), + (S3_ORIGIN, 1), + (ALIASES, 1), + (TRUSTED_SIGNERS, 1), + (STRING, 1), + (PRICE_CLASS, 1), + (BOOLEAN, 1), + ), +) + +STREAMING_DISTRIBUTION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _SDSL, + 0, + (_m,), + ((STREAMING_DISTRIBUTION_SUMMARY, {_sN: _SDS}),), +) + +STREAMING_DISTRIBUTION_LIST: StaticSchema = ( + 18, + n0, + _SDL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (STREAMING_DISTRIBUTION_SUMMARY_LIST, 0), + ), +) + +LIST_STREAMING_DISTRIBUTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSDO, + {_sSI: _cLSDRo, _smith: None}, + (_SDL,), + ((STREAMING_DISTRIBUTION_LIST, 16),), +) + +LIST_STREAMING_DISTRIBUTIONS: StaticOperationSchema = ( + 23, + n0, + _LSD, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/streaming-distribution", "code": 200} + ) + }, + LIST_STREAMING_DISTRIBUTIONS_INPUT, + LIST_STREAMING_DISTRIBUTIONS_OUTPUT, + (INVALID_ARGUMENT,), +) + +RESOURCE_ARN: StaticSchema = (3, n0, _RARNe, 0) + +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sSI: _cLTFRR, _smit: None}, + (_Res,), + ((RESOURCE_ARN, {_sQ: _Res, _smi: None}),), +) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_sSI: _cLTFRRo, _smith: None}, + (_Tag,), + ((TAGS, 17),), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/tagging", "code": 200} + ) + }, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, INVALID_TAGGING, NO_SUCH_RESOURCE), +) + +LIST_TRUST_STORES_INPUT: StaticSchema = ( + 18, + n0, + _LTSI, + {_sSI: _cLTSR, _smit: None}, + (_Ma, _MI), + ((STRING, 0), (INTEGER, 0)), +) + +TRUST_STORE_SUMMARY: StaticSchema = ( + 18, + n0, + _TSSr, + 0, + (_Id, _Ar, _N, _St, _NOCC, _LMT, _Rea, _ET), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TRUST_STORE_STATUS, 1), + (INTEGER, 1), + (TIMESTAMP, 1), + (STRING, 0), + (STRING, 1), + ), +) + +TRUST_STORE_LIST: StaticSchema = ( + 16, + n0, + _TSL, + 0, + (_m,), + ((TRUST_STORE_SUMMARY, {_sN: _TSSr}),), +) + +LIST_TRUST_STORES_OUTPUT: StaticSchema = ( + 18, + n0, + _LTSO, + {_sSI: _cLTSRo, _smith: None}, + (_NM, _TSL), + ((STRING, 0), (TRUST_STORE_LIST, 0)), +) + +LIST_TRUST_STORES: StaticOperationSchema = ( + 23, + n0, + _LTS, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/trust-stores", "code": 200} + ) + }, + LIST_TRUST_STORES_INPUT, + LIST_TRUST_STORES_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +LIST_VPC_ORIGINS_INPUT: StaticSchema = ( + 18, + n0, + _LVOI, + {_sSI: _cLVOR, _smit: None}, + (_Ma, _MI), + ((STRING, {_sQ: _Ma}), (INTEGER, {_sQ: _MI})), +) + +VPC_ORIGIN_SUMMARY: StaticSchema = ( + 18, + n0, + _VOS, + 0, + (_Id, _N, _St, _CTr, _LMT, _Ar, _AIc, _OEA, _IAT), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (TIMESTAMP, 1), + (TIMESTAMP, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (VPC_IP_ADDRESS_TYPE, 0), + ), +) + +VPC_ORIGIN_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _VOSL, + 0, + (_m,), + ((VPC_ORIGIN_SUMMARY, {_sN: _VOS}),), +) + +VPC_ORIGIN_LIST: StaticSchema = ( + 18, + n0, + _VOL, + 0, + (_Ma, _NM, _MI, _IT, _Q, _I), + ( + (STRING, 1), + (STRING, 0), + (INTEGER, 1), + (BOOLEAN, 1), + (INTEGER, 1), + (VPC_ORIGIN_SUMMARY_LIST, 0), + ), +) + +LIST_VPC_ORIGINS_OUTPUT: StaticSchema = ( + 18, + n0, + _LVOO, + {_sSI: _cLVORo, _smith: None}, + (_VOL,), + ((VPC_ORIGIN_LIST, 16),), +) + +LIST_VPC_ORIGINS: StaticOperationSchema = ( + 23, + n0, + _LVO, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/2020-05-31/vpc-origin", "code": 200} + ) + }, + LIST_VPC_ORIGINS_INPUT, + LIST_VPC_ORIGINS_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT, UNSUPPORTED_OPERATION), +) + +PUBLISH_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _PCFI, + {_sSI: _cPCFR, _smit: None}, + (_Id, _IM), + ((RESOURCE_ID, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +PUBLISH_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _PCFO, + {_sSI: _cPCFRo, _smith: None}, + (_CFS,), + ((CONNECTION_FUNCTION_SUMMARY, 16),), +) + +PUBLISH_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _PCF, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/connection-function/{Id}/publish", + "code": 200, + } + ) + }, + PUBLISH_CONNECTION_FUNCTION_INPUT, + PUBLISH_CONNECTION_FUNCTION_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +PUBLISH_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _PFI, + {_sSI: _cPFR, _smit: None}, + (_N, _IM), + ((FUNCTION_NAME, 9), (STRING, {_sH: _IM_, _smi: None})), +) + +PUBLISH_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _PFO, + {_sSI: _cPFRo, _smith: None}, + (_FSu,), + ((FUNCTION_SUMMARY, 16),), +) + +PUBLISH_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _PFu, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/function/{Name}/publish", + "code": 200, + } + ) + }, + PUBLISH_FUNCTION_INPUT, + PUBLISH_FUNCTION_OUTPUT, + ( + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FUNCTION_EXISTS, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +PUT_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PRPI, + {_sSI: _cPRPR, _smit: None}, + (_RA, _PDo), + ((STRING, 1), (STRING, 1)), +) + +PUT_RESOURCE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _PRPO, + {_sSI: _cPRPRo, _smith: None}, + (_RA,), + ((STRING, 0),), +) + +PUT_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _PRP, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/put-resource-policy", "code": 200} + ) + }, + PUT_RESOURCE_POLICY_INPUT, + PUT_RESOURCE_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + ILLEGAL_UPDATE, + INVALID_ARGUMENT, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sSI: _cTRR, _smit: None}, + (_Res, _Tag), + ( + (RESOURCE_ARN, {_sQ: _Res, _smi: None}), + (TAGS, {_sN: _Tag, _smi: None, _sP: None}), + ), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _sU, _smith: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TR, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/tagging?Operation=Tag", "code": 204} + ) + }, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, INVALID_TAGGING, NO_SUCH_RESOURCE), +) + +FUNCTION_EVENT_OBJECT: StaticSchema = (1, n0, _FEO, 4) + +TEST_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _TCFI, + {_sSI: _cTCFR, _smit: None}, + (_Id, _IM, _Stag, _CO), + ( + (RESOURCE_ID, 9), + (STRING, {_sH: _IM_, _smi: None}), + (FUNCTION_STAGE, 0), + (FUNCTION_EVENT_OBJECT, 1), + ), +) + +FUNCTION_EXECUTION_LOG_LIST: StaticSchema = (16, n0, _FELL, 4, (_m,), ((STRING, 0),)) + +CONNECTION_FUNCTION_TEST_RESULT: StaticSchema = ( + 18, + n0, + _CFTR, + 0, + (_CFS, _CU, _CFEL, _CFEM, _CFOo), + ( + (CONNECTION_FUNCTION_SUMMARY, 0), + (STRING, 0), + (FUNCTION_EXECUTION_LOG_LIST, 0), + (SENSITIVE_STRING_TYPE, 0), + (SENSITIVE_STRING_TYPE, 0), + ), +) + +TEST_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _TCFO, + {_sSI: _cTCFRo, _smith: None}, + (_CFTR,), + ((CONNECTION_FUNCTION_TEST_RESULT, 16),), +) + +TEST_FUNCTION_FAILED: StaticSchema = ( + 18, + n0, + _TFF, + {_sm: _se, _sE: 500}, + (_Me,), + ((STRING, 0),), +) + +TEST_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _TCF, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/connection-function/{Id}/test", + "code": 200, + } + ) + }, + TEST_CONNECTION_FUNCTION_INPUT, + TEST_CONNECTION_FUNCTION_OUTPUT, + ( + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + TEST_FUNCTION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +TEST_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _TFI, + {_sSI: _cTFR, _smit: None}, + (_N, _IM, _Stag, _EO), + ( + (FUNCTION_NAME, 9), + (STRING, {_sH: _IM_, _smi: None}), + (FUNCTION_STAGE, 0), + (FUNCTION_EVENT_OBJECT, 1), + ), +) + +TEST_RESULT: StaticSchema = ( + 18, + n0, + _TRe, + 0, + (_FSu, _CU, _FEL, _FEM, _FOu), + ( + (FUNCTION_SUMMARY, 0), + (STRING, 0), + (FUNCTION_EXECUTION_LOG_LIST, 0), + (SENSITIVE_STRING_TYPE, 0), + (SENSITIVE_STRING_TYPE, 0), + ), +) + +TEST_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _TFO, + {_sSI: _cTFRo, _smith: None}, + (_TRe,), + ((TEST_RESULT, 16),), +) + +TEST_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _TF, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/function/{Name}/test", "code": 200} + ) + }, + TEST_FUNCTION_INPUT, + TEST_FUNCTION_OUTPUT, + ( + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FUNCTION_EXISTS, + TEST_FUNCTION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_m,), ((TAG_KEY, {_sN: _K}),)) + +TAG_KEYS: StaticSchema = (18, n0, _TKa, 0, (_I,), ((TAG_KEY_LIST, 0),)) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sSI: _cURR, _smit: None}, + (_Res, _TKa), + ( + (RESOURCE_ARN, {_sQ: _Res, _smi: None}), + (TAG_KEYS, {_sN: _TKa, _smi: None, _sP: None}), + ), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _sU, _smith: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/tagging?Operation=Untag", + "code": 204, + } + ) + }, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, INVALID_TAGGING, NO_SUCH_RESOURCE), +) + +UPDATE_ANYCAST_IP_LIST_INPUT: StaticSchema = ( + 18, + n0, + _UAILI, + {_sSI: _cUAILR, _smit: None}, + (_Id, _IAT, _ICCp, _IM), + ( + (STRING, 9), + (IP_ADDRESS_TYPE, 0), + (IPAM_CIDR_CONFIG_LIST, 0), + (STRING, {_sH: _IM_, _smi: None}), + ), +) + +UPDATE_ANYCAST_IP_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _UAILO, + {_sSI: _cUAILRo, _smith: None}, + (_AIL, _ET), + ((ANYCAST_IP_LIST, 16), (STRING, {_sH: _ET})), +) + +UPDATE_ANYCAST_IP_LIST: StaticOperationSchema = ( + 23, + n0, + _UAIL, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/anycast-ip-list/{Id}", "code": 200} + ) + }, + UPDATE_ANYCAST_IP_LIST_INPUT, + UPDATE_ANYCAST_IP_LIST_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +UPDATE_CACHE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UCPI, + {_sSI: _cUCPR, _smit: None}, + (_CPC, _Id, _IM), + ( + (CACHE_POLICY_CONFIG, {_sN: _CPC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_CACHE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _UCPO, + {_sSI: _cUCPRo, _smith: None}, + (_CPa, _ET), + ((CACHE_POLICY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_CACHE_POLICY: StaticOperationSchema = ( + 23, + n0, + _UCP, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/cache-policy/{Id}", "code": 200} + ) + }, + UPDATE_CACHE_POLICY_INPUT, + UPDATE_CACHE_POLICY_OUTPUT, + ( + ACCESS_DENIED, + CACHE_POLICY_ALREADY_EXISTS, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_CACHE_POLICY, + PRECONDITION_FAILED, + TOO_MANY_COOKIES_IN_CACHE_POLICY, + TOO_MANY_HEADERS_IN_CACHE_POLICY, + TOO_MANY_QUERY_STRINGS_IN_CACHE_POLICY, + ), +) + +UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT: StaticSchema = ( + 18, + n0, + _UCFOAII, + {_sSI: _cUCFOAIR, _smit: None}, + (_CFOAIC, _Id, _IM), + ( + ( + CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, + {_sN: _CFOAIC, _smi: None, _sP: None}, + ), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT: StaticSchema = ( + 18, + n0, + _UCFOAIO, + {_sSI: _cUCFOAIRo, _smith: None}, + (_CFOAI, _ET), + ((CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: StaticOperationSchema = ( + 23, + n0, + _UCFOAI, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT, + UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + MISSING_BODY, + NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, + PRECONDITION_FAILED, + ), +) + +UPDATE_CONNECTION_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _UCFI, + {_sSI: _cUCFR, _smit: None}, + (_Id, _IM, _CFC, _CFCo), + ( + (RESOURCE_ID, 9), + (STRING, {_sH: _IM_, _smi: None}), + (FUNCTION_CONFIG, 1), + (FUNCTION_BLOB, 1), + ), +) + +UPDATE_CONNECTION_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UCFO, + {_sSI: _cUCFRo, _smith: None}, + (_CFS, _ET), + ((CONNECTION_FUNCTION_SUMMARY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_CONNECTION_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _UCF, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/connection-function/{Id}", + "code": 200, + } + ) + }, + UPDATE_CONNECTION_FUNCTION_INPUT, + UPDATE_CONNECTION_FUNCTION_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + ENTITY_SIZE_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +UPDATE_CONNECTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _UCGI, + {_sSI: _cUCGR, _smit: None}, + (_Id, _IE, _IM, _AILI, _E), + ( + (STRING, 9), + (BOOLEAN, 0), + (STRING, {_sH: _IM_, _smi: None}), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +UPDATE_CONNECTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _UCGO, + {_sSI: _cUCGRo, _smith: None}, + (_CG, _ET), + ((CONNECTION_GROUP, 16), (STRING, {_sH: _ET})), +) + +UPDATE_CONNECTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _UCG, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/connection-group/{Id}", "code": 200} + ) + }, + UPDATE_CONNECTION_GROUP_INPUT, + UPDATE_CONNECTION_GROUP_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + RESOURCE_IN_USE, + ), +) + +UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UCDPI, + {_sSI: _cUCDPR, _smit: None}, + (_CDPC, _Id, _IM), + ( + (CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, {_sN: _CDPC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _UCDPO, + {_sSI: _cUCDPRo, _smith: None}, + (_CDP, _ET), + ((CONTINUOUS_DEPLOYMENT_POLICY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_CONTINUOUS_DEPLOYMENT_POLICY: StaticOperationSchema = ( + 23, + n0, + _UCDP, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 200, + } + ) + }, + UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT, + UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT, + ( + ACCESS_DENIED, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY, + PRECONDITION_FAILED, + STAGING_DISTRIBUTION_IN_USE, + ), +) + +UPDATE_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _UDI, + {_sSI: _cUDR, _smit: None}, + (_DC, _Id, _IM), + ( + (DISTRIBUTION_CONFIG, {_sN: _DC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UDO, + {_sSI: _cUDRo, _smith: None}, + (_Dis, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _ET})), +) + +UPDATE_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _UD, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_DISTRIBUTION_INPUT, + UPDATE_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + CONTINUOUS_DEPLOYMENT_POLICY_IN_USE, + ENTITY_NOT_FOUND, + ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR, + ILLEGAL_ORIGIN_ACCESS_CONFIGURATION, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_DEFAULT_ROOT_OBJECT, + INVALID_DOMAIN_NAME_FOR_ORIGIN_ACCESS_CONTROL, + INVALID_ERROR_CODE, + INVALID_FORWARD_COOKIES, + INVALID_FUNCTION_ASSOCIATION, + INVALID_GEO_RESTRICTION_PARAMETER, + INVALID_HEADERS_FOR_S3_ORIGIN, + INVALID_IF_MATCH_VERSION, + INVALID_LAMBDA_FUNCTION_ASSOCIATION, + INVALID_LOCATION_CODE, + INVALID_MINIMUM_PROTOCOL_VERSION, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_ORIGIN_KEEPALIVE_TIMEOUT, + INVALID_ORIGIN_READ_TIMEOUT, + INVALID_QUERY_STRING_PARAMETERS, + INVALID_RELATIVE_PATH, + INVALID_REQUIRED_PROTOCOL, + INVALID_RESPONSE_CODE, + INVALID_TTL_ORDER, + INVALID_VIEWER_CERTIFICATE, + INVALID_WEB_ACL_ID, + MISSING_BODY, + NO_SUCH_CACHE_POLICY, + NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY, + NO_SUCH_DISTRIBUTION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_ORIGIN, + NO_SUCH_ORIGIN_REQUEST_POLICY, + NO_SUCH_REALTIME_LOG_CONFIG, + NO_SUCH_RESPONSE_HEADERS_POLICY, + PRECONDITION_FAILED, + REALTIME_LOG_CONFIG_OWNER_MISMATCH, + STAGING_DISTRIBUTION_IN_USE, + TOO_MANY_CACHE_BEHAVIORS, + TOO_MANY_CERTIFICATES, + TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST, + TOO_MANY_DISTRIBUTION_CNAM_ES, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY, + TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN, + TOO_MANY_FUNCTION_ASSOCIATIONS, + TOO_MANY_HEADERS_IN_FORWARDED_VALUES, + TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION, + TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS, + TOO_MANY_ORIGIN_CUSTOM_HEADERS, + TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION, + TOO_MANY_ORIGINS, + TOO_MANY_QUERY_STRING_PARAMETERS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_KEY_GROUP_DOES_NOT_EXIST, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +UPDATE_DISTRIBUTION_TENANT_INPUT: StaticSchema = ( + 18, + n0, + _UDTI, + {_sSI: _cUDTR, _smit: None}, + (_Id, _DIi, _Dom, _Cu, _Para, _CGI, _IM, _MCR, _E), + ( + (STRING, 9), + (STRING, 0), + (DOMAIN_LIST, 0), + (CUSTOMIZATIONS, 0), + (PARAMETERS, 0), + (STRING, 0), + (STRING, {_sH: _IM_, _smi: None}), + (MANAGED_CERTIFICATE_REQUEST, 0), + (BOOLEAN, 0), + ), +) + +UPDATE_DISTRIBUTION_TENANT_OUTPUT: StaticSchema = ( + 18, + n0, + _UDTO, + {_sSI: _cUDTRo, _smith: None}, + (_DT, _ET), + ((DISTRIBUTION_TENANT, 16), (STRING, {_sH: _ET})), +) + +UPDATE_DISTRIBUTION_TENANT: StaticOperationSchema = ( + 23, + n0, + _UDT, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}", + "code": 200, + } + ) + }, + UPDATE_DISTRIBUTION_TENANT_INPUT, + UPDATE_DISTRIBUTION_TENANT_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_ASSOCIATION, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _UDWSCI, + {_sSI: _cUDWSCR, _smit: None}, + (_Id, _SDI, _IM), + ((STRING, 9), (STRING, {_sQ: _SDI}), (STRING, {_sH: _IM_})), +) + +UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _UDWSCO, + {_sSI: _cUDWSCRo, _smith: None}, + (_Dis, _ET), + ((DISTRIBUTION, 16), (STRING, {_sH: _ET})), +) + +UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG: StaticOperationSchema = ( + 23, + n0, + _UDWSC, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/promote-staging-config", + "code": 200, + } + ) + }, + UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_INPUT, + UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_DEFAULT_ROOT_OBJECT, + INVALID_ERROR_CODE, + INVALID_FORWARD_COOKIES, + INVALID_FUNCTION_ASSOCIATION, + INVALID_GEO_RESTRICTION_PARAMETER, + INVALID_HEADERS_FOR_S3_ORIGIN, + INVALID_IF_MATCH_VERSION, + INVALID_LAMBDA_FUNCTION_ASSOCIATION, + INVALID_LOCATION_CODE, + INVALID_MINIMUM_PROTOCOL_VERSION, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + INVALID_ORIGIN_KEEPALIVE_TIMEOUT, + INVALID_ORIGIN_READ_TIMEOUT, + INVALID_QUERY_STRING_PARAMETERS, + INVALID_RELATIVE_PATH, + INVALID_REQUIRED_PROTOCOL, + INVALID_RESPONSE_CODE, + INVALID_TTL_ORDER, + INVALID_VIEWER_CERTIFICATE, + INVALID_WEB_ACL_ID, + MISSING_BODY, + NO_SUCH_CACHE_POLICY, + NO_SUCH_DISTRIBUTION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_ORIGIN, + NO_SUCH_ORIGIN_REQUEST_POLICY, + NO_SUCH_REALTIME_LOG_CONFIG, + NO_SUCH_RESPONSE_HEADERS_POLICY, + PRECONDITION_FAILED, + REALTIME_LOG_CONFIG_OWNER_MISMATCH, + TOO_MANY_CACHE_BEHAVIORS, + TOO_MANY_CERTIFICATES, + TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST, + TOO_MANY_DISTRIBUTION_CNAM_ES, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY, + TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY, + TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS, + TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN, + TOO_MANY_FUNCTION_ASSOCIATIONS, + TOO_MANY_HEADERS_IN_FORWARDED_VALUES, + TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION, + TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS, + TOO_MANY_ORIGIN_CUSTOM_HEADERS, + TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION, + TOO_MANY_ORIGINS, + TOO_MANY_QUERY_STRING_PARAMETERS, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_KEY_GROUP_DOES_NOT_EXIST, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +UPDATE_DOMAIN_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _UDAI, + {_sSI: _cUDAR, _smit: None}, + (_Do, _TRa, _IM), + ((STRING, 1), (DISTRIBUTION_RESOURCE_ID, 1), (STRING, {_sH: _IM_})), +) + +UPDATE_DOMAIN_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UDAO, + {_sSI: _cUDARo, _smith: None}, + (_Do, _RI, _ET), + ((STRING, 0), (STRING, 0), (STRING, {_sH: _ET})), +) + +UPDATE_DOMAIN_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _UDA, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/2020-05-31/domain-association", "code": 200} + ) + }, + UPDATE_DOMAIN_ASSOCIATION_INPUT, + UPDATE_DOMAIN_ASSOCIATION_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + ILLEGAL_UPDATE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _UFLECI, + {_sSI: _cUFLECR, _smit: None}, + (_FLEC, _Id, _IM), + ( + (FIELD_LEVEL_ENCRYPTION_CONFIG, {_sN: _FLEC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _UFLECO, + {_sSI: _cUFLECRo, _smith: None}, + (_FLE, _ET), + ((FIELD_LEVEL_ENCRYPTION, 16), (STRING, {_sH: _ET})), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG: StaticOperationSchema = ( + 23, + n0, + _UFLEC, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/field-level-encryption/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT, + UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE, + PRECONDITION_FAILED, + QUERY_ARG_PROFILE_EMPTY, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONTENT_TYPE_PROFILES, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_QUERY_ARG_PROFILES, + ), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _UFLEPI, + {_sSI: _cUFLEPR, _smit: None}, + (_FLEPC, _Id, _IM), + ( + (FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, {_sN: _FLEPC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _UFLEPO, + {_sSI: _cUFLEPRo, _smith: None}, + (_FLEP, _ET), + ((FIELD_LEVEL_ENCRYPTION_PROFILE, 16), (STRING, {_sH: _ET})), +) + +UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE: StaticOperationSchema = ( + 23, + n0, + _UFLEP, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT, + UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT, + ( + ACCESS_DENIED, + FIELD_LEVEL_ENCRYPTION_PROFILE_ALREADY_EXISTS, + FIELD_LEVEL_ENCRYPTION_PROFILE_SIZE_EXCEEDED, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE, + NO_SUCH_PUBLIC_KEY, + PRECONDITION_FAILED, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_ENCRYPTION_ENTITIES, + TOO_MANY_FIELD_LEVEL_ENCRYPTION_FIELD_PATTERNS, + ), +) + +UPDATE_FUNCTION_INPUT: StaticSchema = ( + 18, + n0, + _UFI, + {_sSI: _cUFR, _smit: None}, + (_N, _IM, _FCu, _FCun), + ( + (FUNCTION_NAME, 9), + (STRING, {_sH: _IM_, _smi: None}), + (FUNCTION_CONFIG, 1), + (FUNCTION_BLOB, 1), + ), +) + +UPDATE_FUNCTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UFO, + {_sSI: _cUFRo, _smith: None}, + (_FSu, _ET), + ((FUNCTION_SUMMARY, 16), (STRING, {_sH: _ETt})), +) + +UPDATE_FUNCTION: StaticOperationSchema = ( + 23, + n0, + _UF, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/function/{Name}", "code": 200} + ) + }, + UPDATE_FUNCTION_INPUT, + UPDATE_FUNCTION_OUTPUT, + ( + FUNCTION_SIZE_LIMIT_EXCEEDED, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_FUNCTION_EXISTS, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +UPDATE_KEY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _UKGI, + {_sSI: _cUKGR, _smit: None}, + (_KGC, _Id, _IM), + ( + (KEY_GROUP_CONFIG, {_sN: _KGC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_KEY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _UKGO, + {_sSI: _cUKGRo, _smith: None}, + (_KG, _ET), + ((KEY_GROUP, 16), (STRING, {_sH: _ET})), +) + +UPDATE_KEY_GROUP: StaticOperationSchema = ( + 23, + n0, + _UKG, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/key-group/{Id}", "code": 200} + ) + }, + UPDATE_KEY_GROUP_INPUT, + UPDATE_KEY_GROUP_OUTPUT, + ( + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + KEY_GROUP_ALREADY_EXISTS, + NO_SUCH_RESOURCE, + PRECONDITION_FAILED, + TOO_MANY_PUBLIC_KEYS_IN_KEY_GROUP, + ), +) + +UPDATE_KEY_VALUE_STORE_INPUT: StaticSchema = ( + 18, + n0, + _UKVSI, + {_sSI: _cUKVSR, _smit: None}, + (_N, _Comm, _IM), + ( + (KEY_VALUE_STORE_NAME, 9), + (KEY_VALUE_STORE_COMMENT, 1), + (STRING, {_sH: _IM_, _smi: None}), + ), +) + +UPDATE_KEY_VALUE_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _UKVSO, + {_sSI: _cUKVSRo, _smith: None}, + (_KVS, _ET), + ((KEY_VALUE_STORE, 16), (STRING, {_sH: _ET})), +) + +UPDATE_KEY_VALUE_STORE: StaticOperationSchema = ( + 23, + n0, + _UKVS, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/key-value-store/{Name}", "code": 200} + ) + }, + UPDATE_KEY_VALUE_STORE_INPUT, + UPDATE_KEY_VALUE_STORE_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +UPDATE_ORIGIN_ACCESS_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _UOACI, + {_sSI: _cUOACR, _smit: None}, + (_OACC, _Id, _IM), + ( + (ORIGIN_ACCESS_CONTROL_CONFIG, {_sN: _OACC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_ORIGIN_ACCESS_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _UOACO, + {_sSI: _cUOACRo, _smith: None}, + (_OAC, _ET), + ((ORIGIN_ACCESS_CONTROL, 16), (STRING, {_sH: _ET})), +) + +UPDATE_ORIGIN_ACCESS_CONTROL: StaticOperationSchema = ( + 23, + n0, + _UOAC, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/origin-access-control/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_ORIGIN_ACCESS_CONTROL_INPUT, + UPDATE_ORIGIN_ACCESS_CONTROL_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_ORIGIN_ACCESS_CONTROL, + ORIGIN_ACCESS_CONTROL_ALREADY_EXISTS, + PRECONDITION_FAILED, + ), +) + +UPDATE_ORIGIN_REQUEST_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UORPI, + {_sSI: _cUORPR, _smit: None}, + (_ORPC, _Id, _IM), + ( + (ORIGIN_REQUEST_POLICY_CONFIG, {_sN: _ORPC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_ORIGIN_REQUEST_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _UORPO, + {_sSI: _cUORPRo, _smith: None}, + (_ORP, _ET), + ((ORIGIN_REQUEST_POLICY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_ORIGIN_REQUEST_POLICY: StaticOperationSchema = ( + 23, + n0, + _UORP, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 200, + } + ) + }, + UPDATE_ORIGIN_REQUEST_POLICY_INPUT, + UPDATE_ORIGIN_REQUEST_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_ORIGIN_REQUEST_POLICY, + ORIGIN_REQUEST_POLICY_ALREADY_EXISTS, + PRECONDITION_FAILED, + TOO_MANY_COOKIES_IN_ORIGIN_REQUEST_POLICY, + TOO_MANY_HEADERS_IN_ORIGIN_REQUEST_POLICY, + TOO_MANY_QUERY_STRINGS_IN_ORIGIN_REQUEST_POLICY, + ), +) + +UPDATE_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _UPKI, + {_sSI: _cUPKR, _smit: None}, + (_PKC, _Id, _IM), + ( + (PUBLIC_KEY_CONFIG, {_sN: _PKC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _UPKO, + {_sSI: _cUPKRo, _smith: None}, + (_PK, _ET), + ((PUBLIC_KEY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _UPK, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/public-key/{Id}/config", "code": 200} + ) + }, + UPDATE_PUBLIC_KEY_INPUT, + UPDATE_PUBLIC_KEY_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_CHANGE_IMMUTABLE_PUBLIC_KEY_FIELDS, + ILLEGAL_UPDATE, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_PUBLIC_KEY, + PRECONDITION_FAILED, + ), +) + +UPDATE_REALTIME_LOG_CONFIG_INPUT: StaticSchema = ( + 18, + n0, + _URLCI, + {_sSI: _cURLCR, _smit: None}, + (_EPn, _Fie, _N, _ARN, _SR), + ((END_POINT_LIST, 0), (FIELD_LIST, 0), (STRING, 0), (STRING, 0), (LONG, 0)), +) + +UPDATE_REALTIME_LOG_CONFIG_OUTPUT: StaticSchema = ( + 18, + n0, + _URLCO, + {_sSI: _cURLCRo, _smith: None}, + (_RLC,), + ((REALTIME_LOG_CONFIG, 0),), +) + +UPDATE_REALTIME_LOG_CONFIG: StaticOperationSchema = ( + 23, + n0, + _URLC, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/realtime-log-config", "code": 200} + ) + }, + UPDATE_REALTIME_LOG_CONFIG_INPUT, + UPDATE_REALTIME_LOG_CONFIG_OUTPUT, + (ACCESS_DENIED, INVALID_ARGUMENT, NO_SUCH_REALTIME_LOG_CONFIG), +) + +UPDATE_RESPONSE_HEADERS_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _URHPI, + {_sSI: _cURHPR, _smit: None}, + (_RHPC, _Id, _IM), + ( + (RESPONSE_HEADERS_POLICY_CONFIG, {_sN: _RHPC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_RESPONSE_HEADERS_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _URHPO, + {_sSI: _cURHPRo, _smith: None}, + (_RHP, _ET), + ((RESPONSE_HEADERS_POLICY, 16), (STRING, {_sH: _ET})), +) + +UPDATE_RESPONSE_HEADERS_POLICY: StaticOperationSchema = ( + 23, + n0, + _URHP, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 200, + } + ) + }, + UPDATE_RESPONSE_HEADERS_POLICY_INPUT, + UPDATE_RESPONSE_HEADERS_POLICY_OUTPUT, + ( + ACCESS_DENIED, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + NO_SUCH_RESPONSE_HEADERS_POLICY, + PRECONDITION_FAILED, + RESPONSE_HEADERS_POLICY_ALREADY_EXISTS, + TOO_LONG_CSP_IN_RESPONSE_HEADERS_POLICY, + TOO_MANY_CUSTOM_HEADERS_IN_RESPONSE_HEADERS_POLICY, + TOO_MANY_REMOVE_HEADERS_IN_RESPONSE_HEADERS_POLICY, + ), +) + +UPDATE_STREAMING_DISTRIBUTION_INPUT: StaticSchema = ( + 18, + n0, + _USDI, + {_sSI: _cUSDR, _smit: None}, + (_SDC, _Id, _IM), + ( + (STREAMING_DISTRIBUTION_CONFIG, {_sN: _SDC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_}), + ), +) + +UPDATE_STREAMING_DISTRIBUTION_OUTPUT: StaticSchema = ( + 18, + n0, + _USDO, + {_sSI: _cUSDRo, _smith: None}, + (_SD, _ET), + ((STREAMING_DISTRIBUTION, 16), (STRING, {_sH: _ET})), +) + +UPDATE_STREAMING_DISTRIBUTION: StaticOperationSchema = ( + 23, + n0, + _USD, + { + _smithy: MappingProxyType( + { + "method": "PUT", + "uri": "/2020-05-31/streaming-distribution/{Id}/config", + "code": 200, + } + ) + }, + UPDATE_STREAMING_DISTRIBUTION_INPUT, + UPDATE_STREAMING_DISTRIBUTION_OUTPUT, + ( + ACCESS_DENIED, + CNAME_ALREADY_EXISTS, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + INVALID_ORIGIN_ACCESS_CONTROL, + INVALID_ORIGIN_ACCESS_IDENTITY, + MISSING_BODY, + NO_SUCH_STREAMING_DISTRIBUTION, + PRECONDITION_FAILED, + TOO_MANY_STREAMING_DISTRIBUTION_CNAM_ES, + TOO_MANY_TRUSTED_SIGNERS, + TRUSTED_SIGNER_DOES_NOT_EXIST, + ), +) + +UPDATE_TRUST_STORE_INPUT: StaticSchema = ( + 18, + n0, + _UTSI, + {_sSI: _cUTSR, _smit: None}, + (_Id, _CCBS, _UCCOCSPE, _IM), + ( + (RESOURCE_ID, 9), + (CA_CERTIFICATES_BUNDLE_SOURCE, 16), + (BOOLEAN, {_sH: _UCCOCSPE}), + (STRING, {_sH: _IM_, _smi: None}), + ), +) + +UPDATE_TRUST_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _UTSO, + {_sSI: _cUTSRo, _smith: None}, + (_TSr, _ET), + ((TRUST_STORE, 16), (STRING, {_sH: _ET})), +) + +UPDATE_TRUST_STORE: StaticOperationSchema = ( + 23, + n0, + _UTS, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/trust-store/{Id}", "code": 200} + ) + }, + UPDATE_TRUST_STORE_INPUT, + UPDATE_TRUST_STORE_OUTPUT, + ( + ACCESS_DENIED, + ENTITY_NOT_FOUND, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + ), +) + +UPDATE_VPC_ORIGIN_INPUT: StaticSchema = ( + 18, + n0, + _UVOI, + {_sSI: _cUVOR, _smit: None}, + (_VOEC, _Id, _IM), + ( + (VPC_ORIGIN_ENDPOINT_CONFIG, {_sN: _VOEC, _smi: None, _sP: None}), + (STRING, 9), + (STRING, {_sH: _IM_, _smi: None}), + ), +) + +UPDATE_VPC_ORIGIN_OUTPUT: StaticSchema = ( + 18, + n0, + _UVOO, + {_sSI: _cUVORo, _smith: None}, + (_VO, _ET), + ((VPC_ORIGIN, 16), (STRING, {_sH: _ET})), +) + +UPDATE_VPC_ORIGIN: StaticOperationSchema = ( + 23, + n0, + _UVO, + { + _smithy: MappingProxyType( + {"method": "PUT", "uri": "/2020-05-31/vpc-origin/{Id}", "code": 202} + ) + }, + UPDATE_VPC_ORIGIN_INPUT, + UPDATE_VPC_ORIGIN_OUTPUT, + ( + ACCESS_DENIED, + CANNOT_UPDATE_ENTITY_WHILE_IN_USE, + ENTITY_ALREADY_EXISTS, + ENTITY_LIMIT_EXCEEDED, + ENTITY_NOT_FOUND, + ILLEGAL_UPDATE, + INCONSISTENT_QUANTITIES, + INVALID_ARGUMENT, + INVALID_IF_MATCH_VERSION, + PRECONDITION_FAILED, + UNSUPPORTED_OPERATION, + ), +) + +VERIFY_DNS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _VDCI, + {_sSI: _cVDCR, _smit: None}, + (_Do, _Ide), + ((STRING, 0), (STRING, 1)), +) + +DNS_CONFIGURATION_STATUS: StaticSchema = ( + 14, + n0, + _DCS, + 0, + (_Val, _Inva, _U), + ((-1, {_sV: _vc}), (-1, {_sV: _ic}), (-1, {_sV: _uc})), +) + +DNS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DCn, + 0, + (_Do, _St, _Rea), + ((STRING, 1), (DNS_CONFIGURATION_STATUS, 1), (STRING, 0)), +) + +DNS_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _DCLn, + 0, + (_m,), + ((DNS_CONFIGURATION, {_sN: _DCn}),), +) + +VERIFY_DNS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _VDCO, + {_sSI: _cVDCRo, _smith: None}, + (_DCLn,), + ((DNS_CONFIGURATION_LIST, 0),), +) + +VERIFY_DNS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _VDC, + { + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/2020-05-31/verify-dns-configuration", + "code": 200, + } + ) + }, + VERIFY_DNS_CONFIGURATION_INPUT, + VERIFY_DNS_CONFIGURATION_OUTPUT, + (ACCESS_DENIED, ENTITY_NOT_FOUND, INVALID_ARGUMENT), +) + +CLOUDFRONT2020_05_31: StaticSchema = ( + 21, + n0, + _C_, + { + _aw: MappingProxyType({"name": "cloudfront"}), + _aX: None, + _aws: MappingProxyType( + { + "sdkId": "CloudFront", + "arnNamespace": "cloudfront", + "cloudFormationName": "CloudFront", + "cloudTrailEventSource": "cloudfront.amazonaws.com", + "endpointPrefix": "cloudfront", + } + ), + _sNm: MappingProxyType( + {"uri": "http://cloudfront.amazonaws.com/doc/2020-05-31/"} + ), + }, +) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/__init__.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/__init__.py new file mode 100644 index 00000000..1304e1f3 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncCloudFrontClient + from .config import AsyncCloudFrontConfig + +__all__ = ["AsyncCloudFrontClient", "AsyncCloudFrontConfig"] + +_EXPORTS = {"AsyncCloudFrontClient": ".client", "AsyncCloudFrontConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/client.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/client.py new file mode 100644 index 00000000..f565c459 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/client.py @@ -0,0 +1,4851 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncCloudFrontConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AssociateAliasInput, + AssociateAliasOutput, + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + CopyDistributionInput, + CopyDistributionOutput, + CreateAnycastIpListInput, + CreateAnycastIpListOutput, + CreateCachePolicyInput, + CreateCachePolicyOutput, + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + CreateConnectionFunctionInput, + CreateConnectionFunctionOutput, + CreateConnectionGroupInput, + CreateConnectionGroupOutput, + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + CreateDistributionInput, + CreateDistributionOutput, + CreateDistributionTenantInput, + CreateDistributionTenantOutput, + CreateDistributionWithTagsInput, + CreateDistributionWithTagsOutput, + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + CreateFunctionInput, + CreateFunctionOutput, + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + CreateInvalidationInput, + CreateInvalidationOutput, + CreateKeyGroupInput, + CreateKeyGroupOutput, + CreateKeyValueStoreInput, + CreateKeyValueStoreOutput, + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + CreateOriginAccessControlInput, + CreateOriginAccessControlOutput, + CreateOriginRequestPolicyInput, + CreateOriginRequestPolicyOutput, + CreatePublicKeyInput, + CreatePublicKeyOutput, + CreateRealtimeLogConfigInput, + CreateRealtimeLogConfigOutput, + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + CreateTrustStoreInput, + CreateTrustStoreOutput, + CreateVpcOriginInput, + CreateVpcOriginOutput, + DeleteAnycastIpListInput, + DeleteAnycastIpListOutput, + DeleteCachePolicyInput, + DeleteCachePolicyOutput, + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + DeleteConnectionFunctionInput, + DeleteConnectionFunctionOutput, + DeleteConnectionGroupInput, + DeleteConnectionGroupOutput, + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + DeleteDistributionInput, + DeleteDistributionOutput, + DeleteDistributionTenantInput, + DeleteDistributionTenantOutput, + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + DeleteFunctionInput, + DeleteFunctionOutput, + DeleteKeyGroupInput, + DeleteKeyGroupOutput, + DeleteKeyValueStoreInput, + DeleteKeyValueStoreOutput, + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + DeleteOriginAccessControlInput, + DeleteOriginAccessControlOutput, + DeleteOriginRequestPolicyInput, + DeleteOriginRequestPolicyOutput, + DeletePublicKeyInput, + DeletePublicKeyOutput, + DeleteRealtimeLogConfigInput, + DeleteRealtimeLogConfigOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + DeleteTrustStoreInput, + DeleteTrustStoreOutput, + DeleteVpcOriginInput, + DeleteVpcOriginOutput, + DescribeConnectionFunctionInput, + DescribeConnectionFunctionOutput, + DescribeFunctionInput, + DescribeFunctionOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + GetAnycastIpListInput, + GetAnycastIpListOutput, + GetCachePolicyConfigInput, + GetCachePolicyConfigOutput, + GetCachePolicyInput, + GetCachePolicyOutput, + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + GetConnectionFunctionInput, + GetConnectionFunctionOutput, + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + GetConnectionGroupInput, + GetConnectionGroupOutput, + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + GetDistributionConfigInput, + GetDistributionConfigOutput, + GetDistributionInput, + GetDistributionOutput, + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + GetDistributionTenantInput, + GetDistributionTenantOutput, + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + GetFieldLevelEncryptionInput, + GetFieldLevelEncryptionOutput, + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + GetFunctionInput, + GetFunctionOutput, + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + GetInvalidationInput, + GetInvalidationOutput, + GetKeyGroupConfigInput, + GetKeyGroupConfigOutput, + GetKeyGroupInput, + GetKeyGroupOutput, + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + GetMonitoringSubscriptionInput, + GetMonitoringSubscriptionOutput, + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + GetOriginAccessControlInput, + GetOriginAccessControlOutput, + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + GetOriginRequestPolicyInput, + GetOriginRequestPolicyOutput, + GetPublicKeyConfigInput, + GetPublicKeyConfigOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GetRealtimeLogConfigInput, + GetRealtimeLogConfigOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + GetResponseHeadersPolicyInput, + GetResponseHeadersPolicyOutput, + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + GetStreamingDistributionInput, + GetStreamingDistributionOutput, + GetTrustStoreInput, + GetTrustStoreOutput, + GetVpcOriginInput, + GetVpcOriginOutput, + ListAnycastIpListsInput, + ListAnycastIpListsOutput, + ListCachePoliciesInput, + ListCachePoliciesOutput, + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + ListConflictingAliasesInput, + ListConflictingAliasesOutput, + ListConnectionFunctionsInput, + ListConnectionFunctionsOutput, + ListConnectionGroupsInput, + ListConnectionGroupsOutput, + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + ListDistributionTenantsInput, + ListDistributionTenantsOutput, + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + ListDistributionsInput, + ListDistributionsOutput, + ListDomainConflictsInput, + ListDomainConflictsOutput, + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + ListFunctionsInput, + ListFunctionsOutput, + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + ListInvalidationsInput, + ListInvalidationsOutput, + ListKeyGroupsInput, + ListKeyGroupsOutput, + ListKeyValueStoresInput, + ListKeyValueStoresOutput, + ListOriginAccessControlsInput, + ListOriginAccessControlsOutput, + ListOriginRequestPoliciesInput, + ListOriginRequestPoliciesOutput, + ListPublicKeysInput, + ListPublicKeysOutput, + ListRealtimeLogConfigsInput, + ListRealtimeLogConfigsOutput, + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + ListStreamingDistributionsInput, + ListStreamingDistributionsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTrustStoresInput, + ListTrustStoresOutput, + ListVpcOriginsInput, + ListVpcOriginsOutput, + PublishConnectionFunctionInput, + PublishConnectionFunctionOutput, + PublishFunctionInput, + PublishFunctionOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + TagResourceInput, + TagResourceOutput, + TestConnectionFunctionInput, + TestConnectionFunctionOutput, + TestFunctionInput, + TestFunctionOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAnycastIpListInput, + UpdateAnycastIpListOutput, + UpdateCachePolicyInput, + UpdateCachePolicyOutput, + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + UpdateConnectionFunctionInput, + UpdateConnectionFunctionOutput, + UpdateConnectionGroupInput, + UpdateConnectionGroupOutput, + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + UpdateDistributionInput, + UpdateDistributionOutput, + UpdateDistributionTenantInput, + UpdateDistributionTenantOutput, + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + UpdateDomainAssociationInput, + UpdateDomainAssociationOutput, + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + UpdateFunctionInput, + UpdateFunctionOutput, + UpdateKeyGroupInput, + UpdateKeyGroupOutput, + UpdateKeyValueStoreInput, + UpdateKeyValueStoreOutput, + UpdateOriginAccessControlInput, + UpdateOriginAccessControlOutput, + UpdateOriginRequestPolicyInput, + UpdateOriginRequestPolicyOutput, + UpdatePublicKeyInput, + UpdatePublicKeyOutput, + UpdateRealtimeLogConfigInput, + UpdateRealtimeLogConfigOutput, + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + UpdateTrustStoreInput, + UpdateTrustStoreOutput, + UpdateVpcOriginInput, + UpdateVpcOriginOutput, + VerifyDnsConfigurationInput, + VerifyDnsConfigurationOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncCloudFrontClient(AsyncClient[AsyncCloudFrontConfig]): + """ + This is the *Amazon CloudFront API Reference*. This guide is for + developers who need detailed information about CloudFront API actions, + data types, and errors. For detailed information about CloudFront + features, see the [Amazon CloudFront Developer + Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def associate_alias( + self, input: AssociateAliasInput, plugins: list[Plugin] | None = None + ) -> AssociateAliasOutput: + """ + Note: + The `AssociateAlias` API operation only supports standard distributions. + To move domains between distribution tenants and/or standard + distributions, we recommend that you use the + [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) + API operation instead. + + Associates an alias with a CloudFront standard distribution. An alias is + commonly known as a custom domain or vanity domain. It can also be + called a CNAME or alternate domain name. + + With this operation, you can move an alias that's already used for a + standard distribution to a different standard distribution. This + prevents the downtime that could occur if you first remove the alias + from one standard distribution and then separately add the alias to + another standard distribution. + + To use this operation, specify the alias and the ID of the target + standard distribution. + + For more information, including how to set up the target standard + distribution, prerequisites that you must complete, and other + restrictions, see [Moving an alternate domain name to a different + standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `AssociateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateAliasOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_ALIAS, [], plugins) + + async def associate_distribution_tenant_web_acl( + self, + input: AssociateDistributionTenantWebACLInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDistributionTenantWebACLOutput: + """ + Associates the WAF web ACL with a distribution tenant. + + Args: + input: + An instance of `AssociateDistributionTenantWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDistributionTenantWebACLOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL, [], plugins + ) + + async def associate_distribution_web_acl( + self, + input: AssociateDistributionWebACLInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDistributionWebACLOutput: + """ + Associates the WAF web ACL with a distribution. + + Args: + input: + An instance of `AssociateDistributionWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDistributionWebACLOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_DISTRIBUTION_WEB_ACL, [], plugins + ) + + async def copy_distribution( + self, input: CopyDistributionInput, plugins: list[Plugin] | None = None + ) -> CopyDistributionOutput: + """ + Creates a staging distribution using the configuration of the provided + primary distribution. A staging distribution is a copy of an existing + distribution (called the primary distribution) that you can use in a + continuous deployment workflow. + + After you create a staging distribution, you can use + `UpdateDistribution` to modify the staging distribution's + configuration. Then you can use `CreateContinuousDeploymentPolicy` to + incrementally move traffic to the staging distribution. + + This API operation requires the following IAM permissions: + + - [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html) + + - [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) + + - [CopyDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CopyDistribution.html) + + Args: + input: + An instance of `CopyDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDistributionOutput`. + """ + return await self._invoke(input, _models.COPY_DISTRIBUTION, [], plugins) + + async def create_anycast_ip_list( + self, input: CreateAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> CreateAnycastIpListOutput: + """ + Creates an Anycast static IP list. + + Args: + input: + An instance of `CreateAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAnycastIpListOutput`. + """ + return await self._invoke(input, _models.CREATE_ANYCAST_IP_LIST, [], plugins) + + async def create_cache_policy( + self, input: CreateCachePolicyInput, plugins: list[Plugin] | None = None + ) -> CreateCachePolicyOutput: + """ + Creates a cache policy. + + After you create a cache policy, you can attach it to one or more cache + behaviors. When it's attached to a cache behavior, the cache policy + determines the following: + + - The values that CloudFront includes in the *cache key*. These values + can include HTTP headers, cookies, and URL query strings. CloudFront + uses the cache key to find an object in its cache that it can return + to the viewer. + + - The default, minimum, and maximum time to live (TTL) values that you + want objects to stay in the CloudFront cache. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content + for at least the duration specified in the cache policy's minimum + TTL, even if the `Cache-Control: no-cache`, `no-store`, or `private` + directives are present in the origin headers. + + The headers, cookies, and query strings that are included in the cache + key are also included in requests that CloudFront sends to the origin. + CloudFront sends a request when it can't find an object in its cache + that matches the request's cache key. If you want to send values to the + origin but *not* include them in the cache key, use + `OriginRequestPolicy`. + + For more information about cache policies, see [Controlling the cache + key](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCachePolicyOutput`. + """ + return await self._invoke(input, _models.CREATE_CACHE_POLICY, [], plugins) + + async def create_cloud_front_origin_access_identity( + self, + input: CreateCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> CreateCloudFrontOriginAccessIdentityOutput: + """ + Creates a new origin access identity. If you're using Amazon S3 for + your origin, you can use an origin access identity to require users to + access your content using a CloudFront URL instead of the Amazon S3 URL. + For more information about how to use origin access identities, see + [Serving Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCloudFrontOriginAccessIdentityOutput`. + """ + return await self._invoke( + input, _models.CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + async def create_connection_function( + self, input: CreateConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> CreateConnectionFunctionOutput: + """ + Creates a connection function. + + Args: + input: + An instance of `CreateConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.CREATE_CONNECTION_FUNCTION, [], plugins + ) + + async def create_connection_group( + self, input: CreateConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> CreateConnectionGroupOutput: + """ + Creates a connection group. + + Args: + input: + An instance of `CreateConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateConnectionGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_CONNECTION_GROUP, [], plugins) + + async def create_continuous_deployment_policy( + self, + input: CreateContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateContinuousDeploymentPolicyOutput: + """ + Creates a continuous deployment policy that distributes traffic for a + custom domain name to two different CloudFront distributions. + + To use a continuous deployment policy, first use `CopyDistribution` to + create a staging distribution, then use `UpdateDistribution` to modify + the staging distribution's configuration. + + After you create and update a staging distribution, you can use a + continuous deployment policy to incrementally move traffic to the + staging distribution. This workflow enables you to test changes to a + distribution's configuration before moving all of your domain's + production traffic to the new configuration. + + Args: + input: + An instance of `CreateContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateContinuousDeploymentPolicyOutput`. + """ + return await self._invoke( + input, _models.CREATE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + async def create_distribution( + self, input: CreateDistributionInput, plugins: list[Plugin] | None = None + ) -> CreateDistributionOutput: + """ + Creates a CloudFront distribution. + + Args: + input: + An instance of `CreateDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionOutput`. + """ + return await self._invoke(input, _models.CREATE_DISTRIBUTION, [], plugins) + + async def create_distribution_tenant( + self, input: CreateDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> CreateDistributionTenantOutput: + """ + Creates a distribution tenant. + + Args: + input: + An instance of `CreateDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.CREATE_DISTRIBUTION_TENANT, [], plugins + ) + + async def create_distribution_with_tags( + self, + input: CreateDistributionWithTagsInput, + plugins: list[Plugin] | None = None, + ) -> CreateDistributionWithTagsOutput: + """ + Create a new distribution with tags. This API operation requires the + following IAM permissions: + + - [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) + + - [TagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_TagResource.html) + + Args: + input: + An instance of `CreateDistributionWithTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionWithTagsOutput`. + """ + return await self._invoke( + input, _models.CREATE_DISTRIBUTION_WITH_TAGS, [], plugins + ) + + async def create_field_level_encryption_config( + self, + input: CreateFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> CreateFieldLevelEncryptionConfigOutput: + """ + Create a new field-level encryption configuration. + + Args: + input: + An instance of `CreateFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFieldLevelEncryptionConfigOutput`. + """ + return await self._invoke( + input, _models.CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + async def create_field_level_encryption_profile( + self, + input: CreateFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> CreateFieldLevelEncryptionProfileOutput: + """ + Create a field-level encryption profile. + + Args: + input: + An instance of `CreateFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFieldLevelEncryptionProfileOutput`. + """ + return await self._invoke( + input, _models.CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + async def create_function( + self, input: CreateFunctionInput, plugins: list[Plugin] | None = None + ) -> CreateFunctionOutput: + """ + Creates a CloudFront function. + + To create a function, you provide the function code and some + configuration information about the function. The response contains an + Amazon Resource Name (ARN) that uniquely identifies the function. + + When you create a function, it's in the `DEVELOPMENT` stage. In this + stage, you can test the function with `TestFunction`, and update it with + `UpdateFunction`. + + When you're ready to use your function with a CloudFront distribution, + use `PublishFunction` to copy the function from the `DEVELOPMENT` stage + to `LIVE`. When it's live, you can attach the function to a + distribution's cache behavior, using the function's ARN. + + Args: + input: + An instance of `CreateFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFunctionOutput`. + """ + return await self._invoke(input, _models.CREATE_FUNCTION, [], plugins) + + async def create_invalidation( + self, input: CreateInvalidationInput, plugins: list[Plugin] | None = None + ) -> CreateInvalidationOutput: + """ + Create a new invalidation. For more information, see [Invalidating + files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateInvalidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInvalidationOutput`. + """ + return await self._invoke(input, _models.CREATE_INVALIDATION, [], plugins) + + async def create_invalidation_for_distribution_tenant( + self, + input: CreateInvalidationForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> CreateInvalidationForDistributionTenantOutput: + """ + Creates an invalidation for a distribution tenant. For more information, + see [Invalidating + files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateInvalidationForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInvalidationForDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + async def create_key_group( + self, input: CreateKeyGroupInput, plugins: list[Plugin] | None = None + ) -> CreateKeyGroupOutput: + """ + Creates a key group that you can use with [CloudFront signed URLs and + signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). + + To create a key group, you must specify at least one public key for the + key group. After you create a key group, you can reference it from one + or more cache behaviors. When you reference a key group in a cache + behavior, CloudFront requires signed URLs or signed cookies for all + requests that match the cache behavior. The URLs or cookies must be + signed with a private key whose corresponding public key is in the key + group. The signed URL or cookie contains information about which public + key CloudFront should use to verify the signature. For more information, + see [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_KEY_GROUP, [], plugins) + + async def create_key_value_store( + self, input: CreateKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> CreateKeyValueStoreOutput: + """ + Specifies the key value store resource to add to your account. In your + account, the key value store names must be unique. You can also import + key value store data in JSON format from an S3 bucket by providing a + valid `ImportSource` that you own. + + Args: + input: + An instance of `CreateKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyValueStoreOutput`. + """ + return await self._invoke(input, _models.CREATE_KEY_VALUE_STORE, [], plugins) + + async def create_monitoring_subscription( + self, + input: CreateMonitoringSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> CreateMonitoringSubscriptionOutput: + """ + Enables or disables additional Amazon CloudWatch metrics for the + specified CloudFront distribution. The additional metrics incur an + additional cost. + + For more information, see [Viewing additional CloudFront distribution + metrics](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMonitoringSubscriptionOutput`. + """ + return await self._invoke( + input, _models.CREATE_MONITORING_SUBSCRIPTION, [], plugins + ) + + async def create_origin_access_control( + self, input: CreateOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> CreateOriginAccessControlOutput: + """ + Creates a new origin access control in CloudFront. After you create an + origin access control, you can add it to an origin in a CloudFront + distribution so that CloudFront sends authenticated (signed) requests to + the origin. + + This makes it possible to block public access to the origin, allowing + viewers (users) to access the origin's content only through CloudFront. + + For more information about using a CloudFront origin access control, see + [Restricting access to an Amazon Web Services + origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOriginAccessControlOutput`. + """ + return await self._invoke( + input, _models.CREATE_ORIGIN_ACCESS_CONTROL, [], plugins + ) + + async def create_origin_request_policy( + self, input: CreateOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> CreateOriginRequestPolicyOutput: + """ + Creates an origin request policy. + + After you create an origin request policy, you can attach it to one or + more cache behaviors. When it's attached to a cache behavior, the + origin request policy determines the values that CloudFront includes in + requests that it sends to the origin. Each request that CloudFront sends + to the origin includes the following: + + - The request body and the URL path (without the domain name) from the + viewer request. + + - The headers that CloudFront automatically includes in every origin + request, including `Host`, `User-Agent`, and `X-Amz-Cf-Id`. + + - All HTTP headers, cookies, and URL query strings that are specified in + the cache policy or the origin request policy. These can include items + from the viewer request and, in the case of headers, additional ones + that are added by CloudFront. + + CloudFront sends a request when it can't find a valid object in its + cache that matches the request. If you want to send values to the origin + and also include them in the cache key, use `CachePolicy`. + + For more information about origin request policies, see [Controlling + origin + requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOriginRequestPolicyOutput`. + """ + return await self._invoke( + input, _models.CREATE_ORIGIN_REQUEST_POLICY, [], plugins + ) + + async def create_public_key( + self, input: CreatePublicKeyInput, plugins: list[Plugin] | None = None + ) -> CreatePublicKeyOutput: + """ + Uploads a public key to CloudFront that you can use with [signed URLs + and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + + Args: + input: + An instance of `CreatePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePublicKeyOutput`. + """ + return await self._invoke(input, _models.CREATE_PUBLIC_KEY, [], plugins) + + async def create_realtime_log_config( + self, input: CreateRealtimeLogConfigInput, plugins: list[Plugin] | None = None + ) -> CreateRealtimeLogConfigOutput: + """ + Creates a real-time log configuration. + + After you create a real-time log configuration, you can attach it to one + or more cache behaviors to send real-time log data to the specified + Amazon Kinesis data stream. + + For more information about real-time log configurations, see [Real-time + logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRealtimeLogConfigOutput`. + """ + return await self._invoke( + input, _models.CREATE_REALTIME_LOG_CONFIG, [], plugins + ) + + async def create_response_headers_policy( + self, + input: CreateResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateResponseHeadersPolicyOutput: + """ + Creates a response headers policy. + + A response headers policy contains information about a set of HTTP + headers. To create a response headers policy, you provide some metadata + about the policy and a set of configurations that specify the headers. + + After you create a response headers policy, you can use its ID to attach + it to one or more cache behaviors in a CloudFront distribution. When + it's attached to a cache behavior, the response headers policy affects + the HTTP headers that CloudFront includes in HTTP responses to requests + that match the cache behavior. CloudFront adds or removes response + headers according to the configuration of the response headers policy. + + For more information, see [Adding or removing HTTP headers in CloudFront + responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateResponseHeadersPolicyOutput`. + """ + return await self._invoke( + input, _models.CREATE_RESPONSE_HEADERS_POLICY, [], plugins + ) + + async def create_streaming_distribution( + self, + input: CreateStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> CreateStreamingDistributionOutput: + """ + This API is deprecated. Amazon CloudFront is deprecating real-time + messaging protocol (RTMP) distributions on December 31, 2020. For more + information, [read the + announcement](http://forums.aws.amazon.com/ann.jspa?annID=7356) on the + Amazon CloudFront discussion forum. + + Args: + input: + An instance of `CreateStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamingDistributionOutput`. + """ + return await self._invoke( + input, _models.CREATE_STREAMING_DISTRIBUTION, [], plugins + ) + + async def create_streaming_distribution_with_tags( + self, + input: CreateStreamingDistributionWithTagsInput, + plugins: list[Plugin] | None = None, + ) -> CreateStreamingDistributionWithTagsOutput: + """ + This API is deprecated. Amazon CloudFront is deprecating real-time + messaging protocol (RTMP) distributions on December 31, 2020. For more + information, [read the + announcement](http://forums.aws.amazon.com/ann.jspa?annID=7356) on the + Amazon CloudFront discussion forum. + + Args: + input: + An instance of `CreateStreamingDistributionWithTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamingDistributionWithTagsOutput`. + """ + return await self._invoke( + input, _models.CREATE_STREAMING_DISTRIBUTION_WITH_TAGS, [], plugins + ) + + async def create_trust_store( + self, input: CreateTrustStoreInput, plugins: list[Plugin] | None = None + ) -> CreateTrustStoreOutput: + """ + Creates a trust store. + + Args: + input: + An instance of `CreateTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrustStoreOutput`. + """ + return await self._invoke(input, _models.CREATE_TRUST_STORE, [], plugins) + + async def create_vpc_origin( + self, input: CreateVpcOriginInput, plugins: list[Plugin] | None = None + ) -> CreateVpcOriginOutput: + """ + Create an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `CreateVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcOriginOutput`. + """ + return await self._invoke(input, _models.CREATE_VPC_ORIGIN, [], plugins) + + async def delete_anycast_ip_list( + self, input: DeleteAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> DeleteAnycastIpListOutput: + """ + Deletes an Anycast static IP list. + + Args: + input: + An instance of `DeleteAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAnycastIpListOutput`. + """ + return await self._invoke(input, _models.DELETE_ANYCAST_IP_LIST, [], plugins) + + async def delete_cache_policy( + self, input: DeleteCachePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteCachePolicyOutput: + """ + Deletes a cache policy. + + You cannot delete a cache policy if it's attached to a cache behavior. + First update your distributions to remove the cache policy from all + cache behaviors, then delete the cache policy. + + To delete a cache policy, you must provide the policy's identifier and + version. To get these values, you can use `ListCachePolicies` or + `GetCachePolicy`. + + Args: + input: + An instance of `DeleteCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCachePolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_CACHE_POLICY, [], plugins) + + async def delete_cloud_front_origin_access_identity( + self, + input: DeleteCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCloudFrontOriginAccessIdentityOutput: + """ + Delete an origin access identity. + + Args: + input: + An instance of `DeleteCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCloudFrontOriginAccessIdentityOutput`. + """ + return await self._invoke( + input, _models.DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + async def delete_connection_function( + self, input: DeleteConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> DeleteConnectionFunctionOutput: + """ + Deletes a connection function. + + Args: + input: + An instance of `DeleteConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.DELETE_CONNECTION_FUNCTION, [], plugins + ) + + async def delete_connection_group( + self, input: DeleteConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteConnectionGroupOutput: + """ + Deletes a connection group. + + Args: + input: + An instance of `DeleteConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteConnectionGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_CONNECTION_GROUP, [], plugins) + + async def delete_continuous_deployment_policy( + self, + input: DeleteContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteContinuousDeploymentPolicyOutput: + """ + Deletes a continuous deployment policy. + + You cannot delete a continuous deployment policy that's attached to a + primary distribution. First update your distribution to remove the + continuous deployment policy, then you can delete the policy. + + Args: + input: + An instance of `DeleteContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteContinuousDeploymentPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + async def delete_distribution( + self, input: DeleteDistributionInput, plugins: list[Plugin] | None = None + ) -> DeleteDistributionOutput: + """ + Delete a distribution. + + Warning: + Before you can delete a distribution, you must disable it, which + requires permission to update the distribution. Once deleted, a + distribution cannot be recovered. + + Args: + input: + An instance of `DeleteDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDistributionOutput`. + """ + return await self._invoke(input, _models.DELETE_DISTRIBUTION, [], plugins) + + async def delete_distribution_tenant( + self, input: DeleteDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> DeleteDistributionTenantOutput: + """ + Deletes a distribution tenant. If you use this API operation to delete a + distribution tenant that is currently enabled, the request will fail. + + To delete a distribution tenant, you must first disable the distribution + tenant by using the `UpdateDistributionTenant` API operation. + + Args: + input: + An instance of `DeleteDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.DELETE_DISTRIBUTION_TENANT, [], plugins + ) + + async def delete_field_level_encryption_config( + self, + input: DeleteFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> DeleteFieldLevelEncryptionConfigOutput: + """ + Remove a field-level encryption configuration. + + Args: + input: + An instance of `DeleteFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFieldLevelEncryptionConfigOutput`. + """ + return await self._invoke( + input, _models.DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + async def delete_field_level_encryption_profile( + self, + input: DeleteFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> DeleteFieldLevelEncryptionProfileOutput: + """ + Remove a field-level encryption profile. + + Args: + input: + An instance of `DeleteFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFieldLevelEncryptionProfileOutput`. + """ + return await self._invoke( + input, _models.DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + async def delete_function( + self, input: DeleteFunctionInput, plugins: list[Plugin] | None = None + ) -> DeleteFunctionOutput: + """ + Deletes a CloudFront function. + + You cannot delete a function if it's associated with a cache behavior. + First, update your distributions to remove the function association from + all cache behaviors, then delete the function. + + To delete a function, you must provide the function's name and version + (`ETag` value). To get these values, you can use `ListFunctions` and + `DescribeFunction`. + + Args: + input: + An instance of `DeleteFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFunctionOutput`. + """ + return await self._invoke(input, _models.DELETE_FUNCTION, [], plugins) + + async def delete_key_group( + self, input: DeleteKeyGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyGroupOutput: + """ + Deletes a key group. + + You cannot delete a key group that is referenced in a cache behavior. + First update your distributions to remove the key group from all cache + behaviors, then delete the key group. + + To delete a key group, you must provide the key group's identifier and + version. To get these values, use `ListKeyGroups` followed by + `GetKeyGroup` or `GetKeyGroupConfig`. + + Args: + input: + An instance of `DeleteKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_KEY_GROUP, [], plugins) + + async def delete_key_value_store( + self, input: DeleteKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyValueStoreOutput: + """ + Specifies the key value store to delete. + + Args: + input: + An instance of `DeleteKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyValueStoreOutput`. + """ + return await self._invoke(input, _models.DELETE_KEY_VALUE_STORE, [], plugins) + + async def delete_monitoring_subscription( + self, + input: DeleteMonitoringSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteMonitoringSubscriptionOutput: + """ + Disables additional CloudWatch metrics for the specified CloudFront + distribution. + + Args: + input: + An instance of `DeleteMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteMonitoringSubscriptionOutput`. + """ + return await self._invoke( + input, _models.DELETE_MONITORING_SUBSCRIPTION, [], plugins + ) + + async def delete_origin_access_control( + self, input: DeleteOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> DeleteOriginAccessControlOutput: + """ + Deletes a CloudFront origin access control. + + You cannot delete an origin access control if it's in use. First, + update all distributions to remove the origin access control from all + origins, then delete the origin access control. + + Args: + input: + An instance of `DeleteOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOriginAccessControlOutput`. + """ + return await self._invoke( + input, _models.DELETE_ORIGIN_ACCESS_CONTROL, [], plugins + ) + + async def delete_origin_request_policy( + self, input: DeleteOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteOriginRequestPolicyOutput: + """ + Deletes an origin request policy. + + You cannot delete an origin request policy if it's attached to any + cache behaviors. First update your distributions to remove the origin + request policy from all cache behaviors, then delete the origin request + policy. + + To delete an origin request policy, you must provide the policy's + identifier and version. To get the identifier, you can use + `ListOriginRequestPolicies` or `GetOriginRequestPolicy`. + + Args: + input: + An instance of `DeleteOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOriginRequestPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_ORIGIN_REQUEST_POLICY, [], plugins + ) + + async def delete_public_key( + self, input: DeletePublicKeyInput, plugins: list[Plugin] | None = None + ) -> DeletePublicKeyOutput: + """ + Remove a public key you previously added to CloudFront. + + Args: + input: + An instance of `DeletePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicKeyOutput`. + """ + return await self._invoke(input, _models.DELETE_PUBLIC_KEY, [], plugins) + + async def delete_realtime_log_config( + self, input: DeleteRealtimeLogConfigInput, plugins: list[Plugin] | None = None + ) -> DeleteRealtimeLogConfigOutput: + """ + Deletes a real-time log configuration. + + You cannot delete a real-time log configuration if it's attached to a + cache behavior. First update your distributions to remove the real-time + log configuration from all cache behaviors, then delete the real-time + log configuration. + + To delete a real-time log configuration, you can provide the + configuration's name or its Amazon Resource Name (ARN). You must + provide at least one. If you provide both, CloudFront uses the name to + identify the real-time log configuration to delete. + + Args: + input: + An instance of `DeleteRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRealtimeLogConfigOutput`. + """ + return await self._invoke( + input, _models.DELETE_REALTIME_LOG_CONFIG, [], plugins + ) + + async def delete_resource_policy( + self, input: DeleteResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteResourcePolicyOutput: + """ + Deletes the resource policy attached to the CloudFront resource. + + Args: + input: + An instance of `DeleteResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResourcePolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + + async def delete_response_headers_policy( + self, + input: DeleteResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteResponseHeadersPolicyOutput: + """ + Deletes a response headers policy. + + You cannot delete a response headers policy if it's attached to a cache + behavior. First update your distributions to remove the response headers + policy from all cache behaviors, then delete the response headers + policy. + + To delete a response headers policy, you must provide the policy's + identifier and version. To get these values, you can use + `ListResponseHeadersPolicies` or `GetResponseHeadersPolicy`. + + Args: + input: + An instance of `DeleteResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResponseHeadersPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_RESPONSE_HEADERS_POLICY, [], plugins + ) + + async def delete_streaming_distribution( + self, + input: DeleteStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteStreamingDistributionOutput: + """ + Delete a streaming distribution. To delete an RTMP distribution using + the CloudFront API, perform the following steps. + + **To delete an RTMP distribution using the CloudFront API**: + + 1. Disable the RTMP distribution. + + 2. Submit a `GET Streaming Distribution Config` request to get the + current configuration and the `Etag` header for the distribution. + + 3. Update the XML document that was returned in the response to your + `GET Streaming Distribution Config` request to change the value of + `Enabled` to `false`. + + 4. Submit a `PUT Streaming Distribution Config` request to update the + configuration for your distribution. In the request body, include + the XML document that you updated in Step 3. Then set the value of + the HTTP `If-Match` header to the value of the `ETag` header that + CloudFront returned when you submitted the + `GET Streaming Distribution Config` request in Step 2. + + 5. Review the response to the `PUT Streaming Distribution Config` + request to confirm that the distribution was successfully disabled. + + 6. Submit a `GET Streaming Distribution Config` request to confirm that + your changes have propagated. When propagation is complete, the + value of `Status` is `Deployed`. + + 7. Submit a `DELETE Streaming Distribution` request. Set the value of + the HTTP `If-Match` header to the value of the `ETag` header that + CloudFront returned when you submitted the + `GET Streaming Distribution Config` request in Step 2. + + 8. Review the response to your `DELETE Streaming Distribution` request + to confirm that the distribution was successfully deleted. + + For information about deleting a distribution using the CloudFront + console, see [Deleting a + Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `DeleteStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStreamingDistributionOutput`. + """ + return await self._invoke( + input, _models.DELETE_STREAMING_DISTRIBUTION, [], plugins + ) + + async def delete_trust_store( + self, input: DeleteTrustStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteTrustStoreOutput: + """ + Deletes a trust store. + + Args: + input: + An instance of `DeleteTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrustStoreOutput`. + """ + return await self._invoke(input, _models.DELETE_TRUST_STORE, [], plugins) + + async def delete_vpc_origin( + self, input: DeleteVpcOriginInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcOriginOutput: + """ + Delete an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `DeleteVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcOriginOutput`. + """ + return await self._invoke(input, _models.DELETE_VPC_ORIGIN, [], plugins) + + async def describe_connection_function( + self, + input: DescribeConnectionFunctionInput, + plugins: list[Plugin] | None = None, + ) -> DescribeConnectionFunctionOutput: + """ + Describes a connection function. + + Args: + input: + An instance of `DescribeConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CONNECTION_FUNCTION, [], plugins + ) + + async def describe_function( + self, input: DescribeFunctionInput, plugins: list[Plugin] | None = None + ) -> DescribeFunctionOutput: + """ + Gets configuration information and metadata about a CloudFront function, + but not the function's code. To get a function's code, use + `GetFunction`. + + To get configuration information and metadata about a function, you must + provide the function's name and stage. To get these values, you can use + `ListFunctions`. + + Args: + input: + An instance of `DescribeFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFunctionOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FUNCTION, [], plugins) + + async def describe_key_value_store( + self, input: DescribeKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyValueStoreOutput: + """ + Specifies the key value store and its configuration. + + Args: + input: + An instance of `DescribeKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyValueStoreOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_KEY_VALUE_STORE, [], plugins) + + async def disassociate_distribution_tenant_web_acl( + self, + input: DisassociateDistributionTenantWebACLInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateDistributionTenantWebACLOutput: + """ + Disassociates a distribution tenant from the WAF web ACL. + + Args: + input: + An instance of `DisassociateDistributionTenantWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateDistributionTenantWebACLOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL, [], plugins + ) + + async def disassociate_distribution_web_acl( + self, + input: DisassociateDistributionWebACLInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateDistributionWebACLOutput: + """ + Disassociates a distribution from the WAF web ACL. + + Args: + input: + An instance of `DisassociateDistributionWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateDistributionWebACLOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_DISTRIBUTION_WEB_ACL, [], plugins + ) + + async def get_anycast_ip_list( + self, input: GetAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> GetAnycastIpListOutput: + """ + Gets an Anycast static IP list. + + Args: + input: + An instance of `GetAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAnycastIpListOutput`. + """ + return await self._invoke(input, _models.GET_ANYCAST_IP_LIST, [], plugins) + + async def get_cache_policy( + self, input: GetCachePolicyInput, plugins: list[Plugin] | None = None + ) -> GetCachePolicyOutput: + """ + Gets a cache policy, including the following metadata: + + - The policy's identifier. + + - The date and time when the policy was last modified. + + To get a cache policy, you must provide the policy's identifier. If the + cache policy is attached to a distribution's cache behavior, you can + get the policy's identifier using `ListDistributions` or + `GetDistribution`. If the cache policy is not attached to a cache + behavior, you can get the identifier using `ListCachePolicies`. + + Args: + input: + An instance of `GetCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCachePolicyOutput`. + """ + return await self._invoke(input, _models.GET_CACHE_POLICY, [], plugins) + + async def get_cache_policy_config( + self, input: GetCachePolicyConfigInput, plugins: list[Plugin] | None = None + ) -> GetCachePolicyConfigOutput: + """ + Gets a cache policy configuration. + + To get a cache policy configuration, you must provide the policy's + identifier. If the cache policy is attached to a distribution's cache + behavior, you can get the policy's identifier using `ListDistributions` + or `GetDistribution`. If the cache policy is not attached to a cache + behavior, you can get the identifier using `ListCachePolicies`. + + Args: + input: + An instance of `GetCachePolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCachePolicyConfigOutput`. + """ + return await self._invoke(input, _models.GET_CACHE_POLICY_CONFIG, [], plugins) + + async def get_cloud_front_origin_access_identity( + self, + input: GetCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> GetCloudFrontOriginAccessIdentityOutput: + """ + Get the information about an origin access identity. + + Args: + input: + An instance of `GetCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCloudFrontOriginAccessIdentityOutput`. + """ + return await self._invoke( + input, _models.GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + async def get_cloud_front_origin_access_identity_config( + self, + input: GetCloudFrontOriginAccessIdentityConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetCloudFrontOriginAccessIdentityConfigOutput: + """ + Get the configuration information about an origin access identity. + + Args: + input: + An instance of `GetCloudFrontOriginAccessIdentityConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCloudFrontOriginAccessIdentityConfigOutput`. + """ + return await self._invoke( + input, _models.GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, [], plugins + ) + + async def get_connection_function( + self, input: GetConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> GetConnectionFunctionOutput: + """ + Gets a connection function. + + Args: + input: + An instance of `GetConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionFunctionOutput`. + """ + return await self._invoke(input, _models.GET_CONNECTION_FUNCTION, [], plugins) + + async def get_connection_group( + self, input: GetConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> GetConnectionGroupOutput: + """ + Gets information about a connection group. + + Args: + input: + An instance of `GetConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionGroupOutput`. + """ + return await self._invoke(input, _models.GET_CONNECTION_GROUP, [], plugins) + + async def get_connection_group_by_routing_endpoint( + self, + input: GetConnectionGroupByRoutingEndpointInput, + plugins: list[Plugin] | None = None, + ) -> GetConnectionGroupByRoutingEndpointOutput: + """ + Gets information about a connection group by using the endpoint that you + specify. + + Args: + input: + An instance of `GetConnectionGroupByRoutingEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionGroupByRoutingEndpointOutput`. + """ + return await self._invoke( + input, _models.GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT, [], plugins + ) + + async def get_continuous_deployment_policy( + self, + input: GetContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContinuousDeploymentPolicyOutput: + """ + Gets a continuous deployment policy, including metadata (the policy's + identifier and the date and time when the policy was last modified). + + Args: + input: + An instance of `GetContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContinuousDeploymentPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + async def get_continuous_deployment_policy_config( + self, + input: GetContinuousDeploymentPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetContinuousDeploymentPolicyConfigOutput: + """ + Gets configuration information about a continuous deployment policy. + + Args: + input: + An instance of `GetContinuousDeploymentPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContinuousDeploymentPolicyConfigOutput`. + """ + return await self._invoke( + input, _models.GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, [], plugins + ) + + async def get_distribution( + self, input: GetDistributionInput, plugins: list[Plugin] | None = None + ) -> GetDistributionOutput: + """ + Get the information about a distribution. + + Args: + input: + An instance of `GetDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionOutput`. + """ + return await self._invoke(input, _models.GET_DISTRIBUTION, [], plugins) + + async def get_distribution_config( + self, input: GetDistributionConfigInput, plugins: list[Plugin] | None = None + ) -> GetDistributionConfigOutput: + """ + Get the configuration information about a distribution. + + Args: + input: + An instance of `GetDistributionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionConfigOutput`. + """ + return await self._invoke(input, _models.GET_DISTRIBUTION_CONFIG, [], plugins) + + async def get_distribution_tenant( + self, input: GetDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> GetDistributionTenantOutput: + """ + Gets information about a distribution tenant. + + Args: + input: + An instance of `GetDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionTenantOutput`. + """ + return await self._invoke(input, _models.GET_DISTRIBUTION_TENANT, [], plugins) + + async def get_distribution_tenant_by_domain( + self, + input: GetDistributionTenantByDomainInput, + plugins: list[Plugin] | None = None, + ) -> GetDistributionTenantByDomainOutput: + """ + Gets information about a distribution tenant by the associated domain. + + Args: + input: + An instance of `GetDistributionTenantByDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionTenantByDomainOutput`. + """ + return await self._invoke( + input, _models.GET_DISTRIBUTION_TENANT_BY_DOMAIN, [], plugins + ) + + async def get_field_level_encryption( + self, input: GetFieldLevelEncryptionInput, plugins: list[Plugin] | None = None + ) -> GetFieldLevelEncryptionOutput: + """ + Get the field-level encryption configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionOutput`. + """ + return await self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION, [], plugins + ) + + async def get_field_level_encryption_config( + self, + input: GetFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionConfigOutput: + """ + Get the field-level encryption configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionConfigOutput`. + """ + return await self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + async def get_field_level_encryption_profile( + self, + input: GetFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionProfileOutput: + """ + Get the field-level encryption profile information. + + Args: + input: + An instance of `GetFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionProfileOutput`. + """ + return await self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + async def get_field_level_encryption_profile_config( + self, + input: GetFieldLevelEncryptionProfileConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionProfileConfigOutput: + """ + Get the field-level encryption profile configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionProfileConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionProfileConfigOutput`. + """ + return await self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, [], plugins + ) + + async def get_function( + self, input: GetFunctionInput, plugins: list[Plugin] | None = None + ) -> GetFunctionOutput: + """ + Gets the code of a CloudFront function. To get configuration information + and metadata about a function, use `DescribeFunction`. + + To get a function's code, you must provide the function's name and + stage. To get these values, you can use `ListFunctions`. + + Args: + input: + An instance of `GetFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFunctionOutput`. + """ + return await self._invoke(input, _models.GET_FUNCTION, [], plugins) + + async def get_invalidation( + self, input: GetInvalidationInput, plugins: list[Plugin] | None = None + ) -> GetInvalidationOutput: + """ + Get the information about an invalidation. + + Args: + input: + An instance of `GetInvalidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInvalidationOutput`. + """ + return await self._invoke(input, _models.GET_INVALIDATION, [], plugins) + + async def get_invalidation_for_distribution_tenant( + self, + input: GetInvalidationForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> GetInvalidationForDistributionTenantOutput: + """ + Gets information about a specific invalidation for a distribution + tenant. + + Args: + input: + An instance of `GetInvalidationForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInvalidationForDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.GET_INVALIDATION_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + async def get_key_group( + self, input: GetKeyGroupInput, plugins: list[Plugin] | None = None + ) -> GetKeyGroupOutput: + """ + Gets a key group, including the date and time when the key group was + last modified. + + To get a key group, you must provide the key group's identifier. If the + key group is referenced in a distribution's cache behavior, you can get + the key group's identifier using `ListDistributions` or + `GetDistribution`. If the key group is not referenced in a cache + behavior, you can get the identifier using `ListKeyGroups`. + + Args: + input: + An instance of `GetKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyGroupOutput`. + """ + return await self._invoke(input, _models.GET_KEY_GROUP, [], plugins) + + async def get_key_group_config( + self, input: GetKeyGroupConfigInput, plugins: list[Plugin] | None = None + ) -> GetKeyGroupConfigOutput: + """ + Gets a key group configuration. + + To get a key group configuration, you must provide the key group's + identifier. If the key group is referenced in a distribution's cache + behavior, you can get the key group's identifier using + `ListDistributions` or `GetDistribution`. If the key group is not + referenced in a cache behavior, you can get the identifier using + `ListKeyGroups`. + + Args: + input: + An instance of `GetKeyGroupConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyGroupConfigOutput`. + """ + return await self._invoke(input, _models.GET_KEY_GROUP_CONFIG, [], plugins) + + async def get_managed_certificate_details( + self, + input: GetManagedCertificateDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedCertificateDetailsOutput: + """ + Gets details about the CloudFront managed ACM certificate. + + Args: + input: + An instance of `GetManagedCertificateDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedCertificateDetailsOutput`. + """ + return await self._invoke( + input, _models.GET_MANAGED_CERTIFICATE_DETAILS, [], plugins + ) + + async def get_monitoring_subscription( + self, input: GetMonitoringSubscriptionInput, plugins: list[Plugin] | None = None + ) -> GetMonitoringSubscriptionOutput: + """ + Gets information about whether additional CloudWatch metrics are enabled + for the specified CloudFront distribution. + + Args: + input: + An instance of `GetMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetMonitoringSubscriptionOutput`. + """ + return await self._invoke( + input, _models.GET_MONITORING_SUBSCRIPTION, [], plugins + ) + + async def get_origin_access_control( + self, input: GetOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> GetOriginAccessControlOutput: + """ + Gets a CloudFront origin access control, including its unique + identifier. + + Args: + input: + An instance of `GetOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginAccessControlOutput`. + """ + return await self._invoke(input, _models.GET_ORIGIN_ACCESS_CONTROL, [], plugins) + + async def get_origin_access_control_config( + self, + input: GetOriginAccessControlConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetOriginAccessControlConfigOutput: + """ + Gets a CloudFront origin access control configuration. + + Args: + input: + An instance of `GetOriginAccessControlConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginAccessControlConfigOutput`. + """ + return await self._invoke( + input, _models.GET_ORIGIN_ACCESS_CONTROL_CONFIG, [], plugins + ) + + async def get_origin_request_policy( + self, input: GetOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> GetOriginRequestPolicyOutput: + """ + Gets an origin request policy, including the following metadata: + + - The policy's identifier. + + - The date and time when the policy was last modified. + + To get an origin request policy, you must provide the policy's + identifier. If the origin request policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the origin request + policy is not attached to a cache behavior, you can get the identifier + using `ListOriginRequestPolicies`. + + Args: + input: + An instance of `GetOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginRequestPolicyOutput`. + """ + return await self._invoke(input, _models.GET_ORIGIN_REQUEST_POLICY, [], plugins) + + async def get_origin_request_policy_config( + self, + input: GetOriginRequestPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetOriginRequestPolicyConfigOutput: + """ + Gets an origin request policy configuration. + + To get an origin request policy configuration, you must provide the + policy's identifier. If the origin request policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the origin request + policy is not attached to a cache behavior, you can get the identifier + using `ListOriginRequestPolicies`. + + Args: + input: + An instance of `GetOriginRequestPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginRequestPolicyConfigOutput`. + """ + return await self._invoke( + input, _models.GET_ORIGIN_REQUEST_POLICY_CONFIG, [], plugins + ) + + async def get_public_key( + self, input: GetPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyOutput: + """ + Gets a public key. + + Args: + input: + An instance of `GetPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyOutput`. + """ + return await self._invoke(input, _models.GET_PUBLIC_KEY, [], plugins) + + async def get_public_key_config( + self, input: GetPublicKeyConfigInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyConfigOutput: + """ + Gets a public key configuration. + + Args: + input: + An instance of `GetPublicKeyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyConfigOutput`. + """ + return await self._invoke(input, _models.GET_PUBLIC_KEY_CONFIG, [], plugins) + + async def get_realtime_log_config( + self, input: GetRealtimeLogConfigInput, plugins: list[Plugin] | None = None + ) -> GetRealtimeLogConfigOutput: + """ + Gets a real-time log configuration. + + To get a real-time log configuration, you can provide the + configuration's name or its Amazon Resource Name (ARN). You must + provide at least one. If you provide both, CloudFront uses the name to + identify the real-time log configuration to get. + + Args: + input: + An instance of `GetRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRealtimeLogConfigOutput`. + """ + return await self._invoke(input, _models.GET_REALTIME_LOG_CONFIG, [], plugins) + + async def get_resource_policy( + self, input: GetResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> GetResourcePolicyOutput: + """ + Retrieves the resource policy for the specified CloudFront resource that + you own and have shared. + + Args: + input: + An instance of `GetResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResourcePolicyOutput`. + """ + return await self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + + async def get_response_headers_policy( + self, input: GetResponseHeadersPolicyInput, plugins: list[Plugin] | None = None + ) -> GetResponseHeadersPolicyOutput: + """ + Gets a response headers policy, including metadata (the policy's + identifier and the date and time when the policy was last modified). + + To get a response headers policy, you must provide the policy's + identifier. If the response headers policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the response headers + policy is not attached to a cache behavior, you can get the identifier + using `ListResponseHeadersPolicies`. + + Args: + input: + An instance of `GetResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResponseHeadersPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_RESPONSE_HEADERS_POLICY, [], plugins + ) + + async def get_response_headers_policy_config( + self, + input: GetResponseHeadersPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetResponseHeadersPolicyConfigOutput: + """ + Gets a response headers policy configuration. + + To get a response headers policy configuration, you must provide the + policy's identifier. If the response headers policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the response headers + policy is not attached to a cache behavior, you can get the identifier + using `ListResponseHeadersPolicies`. + + Args: + input: + An instance of `GetResponseHeadersPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResponseHeadersPolicyConfigOutput`. + """ + return await self._invoke( + input, _models.GET_RESPONSE_HEADERS_POLICY_CONFIG, [], plugins + ) + + async def get_streaming_distribution( + self, input: GetStreamingDistributionInput, plugins: list[Plugin] | None = None + ) -> GetStreamingDistributionOutput: + """ + Gets information about a specified RTMP distribution, including the + distribution configuration. + + Args: + input: + An instance of `GetStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStreamingDistributionOutput`. + """ + return await self._invoke( + input, _models.GET_STREAMING_DISTRIBUTION, [], plugins + ) + + async def get_streaming_distribution_config( + self, + input: GetStreamingDistributionConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetStreamingDistributionConfigOutput: + """ + Get the configuration information about a streaming distribution. + + Args: + input: + An instance of `GetStreamingDistributionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStreamingDistributionConfigOutput`. + """ + return await self._invoke( + input, _models.GET_STREAMING_DISTRIBUTION_CONFIG, [], plugins + ) + + async def get_trust_store( + self, input: GetTrustStoreInput, plugins: list[Plugin] | None = None + ) -> GetTrustStoreOutput: + """ + Gets a trust store. + + Args: + input: + An instance of `GetTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTrustStoreOutput`. + """ + return await self._invoke(input, _models.GET_TRUST_STORE, [], plugins) + + async def get_vpc_origin( + self, input: GetVpcOriginInput, plugins: list[Plugin] | None = None + ) -> GetVpcOriginOutput: + """ + Get the details of an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `GetVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpcOriginOutput`. + """ + return await self._invoke(input, _models.GET_VPC_ORIGIN, [], plugins) + + async def list_anycast_ip_lists( + self, input: ListAnycastIpListsInput, plugins: list[Plugin] | None = None + ) -> ListAnycastIpListsOutput: + """ + Lists your Anycast static IP lists. + + Args: + input: + An instance of `ListAnycastIpListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAnycastIpListsOutput`. + """ + return await self._invoke(input, _models.LIST_ANYCAST_IP_LISTS, [], plugins) + + async def list_cache_policies( + self, input: ListCachePoliciesInput, plugins: list[Plugin] | None = None + ) -> ListCachePoliciesOutput: + """ + Gets a list of cache policies. + + You can optionally apply a filter to return only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListCachePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCachePoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_CACHE_POLICIES, [], plugins) + + async def list_cloud_front_origin_access_identities( + self, + input: ListCloudFrontOriginAccessIdentitiesInput, + plugins: list[Plugin] | None = None, + ) -> ListCloudFrontOriginAccessIdentitiesOutput: + """ + Lists origin access identities. + + Args: + input: + An instance of `ListCloudFrontOriginAccessIdentitiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCloudFrontOriginAccessIdentitiesOutput`. + """ + return await self._invoke( + input, _models.LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES, [], plugins + ) + + async def list_conflicting_aliases( + self, input: ListConflictingAliasesInput, plugins: list[Plugin] | None = None + ) -> ListConflictingAliasesOutput: + """ + Note: + The `ListConflictingAliases` API operation only supports standard + distributions. To list domain conflicts for both standard distributions + and distribution tenants, we recommend that you use the + [ListDomainConflicts](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDomainConflicts.html) + API operation instead. + + Gets a list of aliases that conflict or overlap with the provided alias, + and the associated CloudFront standard distribution and Amazon Web + Services accounts for each conflicting alias. An alias is commonly known + as a custom domain or vanity domain. It can also be called a CNAME or + alternate domain name. + + In the returned list, the standard distribution and account IDs are + partially hidden, which allows you to identify the standard distribution + and accounts that you own, and helps to protect the information of ones + that you don't own. + + Use this operation to find aliases that are in use in CloudFront that + conflict or overlap with the provided alias. For example, if you provide + `www.example.com` as input, the returned list can include + `www.example.com` and the overlapping wildcard alternate domain name + (`*.example.com`), if they exist. If you provide `*.example.com` as + input, the returned list can include `*.example.com` and any alternate + domain names covered by that wildcard (for example, `www.example.com`, + `test.example.com`, `dev.example.com`, and so on), if they exist. + + To list conflicting aliases, specify the alias to search and the ID of a + standard distribution in your account that has an attached TLS + certificate that includes the provided alias. For more information, + including how to set up the standard distribution and certificate, see + [Moving an alternate domain name to a different standard distribution or + distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListConflictingAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConflictingAliasesOutput`. + """ + return await self._invoke(input, _models.LIST_CONFLICTING_ALIASES, [], plugins) + + async def list_connection_functions( + self, input: ListConnectionFunctionsInput, plugins: list[Plugin] | None = None + ) -> ListConnectionFunctionsOutput: + """ + Lists connection functions. + + Args: + input: + An instance of `ListConnectionFunctionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConnectionFunctionsOutput`. + """ + return await self._invoke(input, _models.LIST_CONNECTION_FUNCTIONS, [], plugins) + + async def list_connection_groups( + self, input: ListConnectionGroupsInput, plugins: list[Plugin] | None = None + ) -> ListConnectionGroupsOutput: + """ + Lists the connection groups in your Amazon Web Services account. + + Args: + input: + An instance of `ListConnectionGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConnectionGroupsOutput`. + """ + return await self._invoke(input, _models.LIST_CONNECTION_GROUPS, [], plugins) + + async def list_continuous_deployment_policies( + self, + input: ListContinuousDeploymentPoliciesInput, + plugins: list[Plugin] | None = None, + ) -> ListContinuousDeploymentPoliciesOutput: + """ + Gets a list of the continuous deployment policies in your Amazon Web + Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListContinuousDeploymentPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListContinuousDeploymentPoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_CONTINUOUS_DEPLOYMENT_POLICIES, [], plugins + ) + + async def list_distributions( + self, input: ListDistributionsInput, plugins: list[Plugin] | None = None + ) -> ListDistributionsOutput: + """ + List CloudFront distributions. + + Args: + input: + An instance of `ListDistributionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsOutput`. + """ + return await self._invoke(input, _models.LIST_DISTRIBUTIONS, [], plugins) + + async def list_distributions_by_anycast_ip_list_id( + self, + input: ListDistributionsByAnycastIpListIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByAnycastIpListIdOutput: + """ + Lists the distributions in your account that are associated with the + specified `AnycastIpListId`. + + Args: + input: + An instance of `ListDistributionsByAnycastIpListIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByAnycastIpListIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID, [], plugins + ) + + async def list_distributions_by_cache_policy_id( + self, + input: ListDistributionsByCachePolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByCachePolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified cache policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByCachePolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByCachePolicyIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID, [], plugins + ) + + async def list_distributions_by_connection_function( + self, + input: ListDistributionsByConnectionFunctionInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByConnectionFunctionOutput: + """ + Lists distributions by connection function. + + Args: + input: + An instance of `ListDistributionsByConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION, [], plugins + ) + + async def list_distributions_by_connection_mode( + self, + input: ListDistributionsByConnectionModeInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByConnectionModeOutput: + """ + Lists the distributions by the connection mode that you specify. + + Args: + input: + An instance of `ListDistributionsByConnectionModeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByConnectionModeOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CONNECTION_MODE, [], plugins + ) + + async def list_distributions_by_key_group( + self, + input: ListDistributionsByKeyGroupInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByKeyGroupOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that references the specified key group. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByKeyGroupOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_KEY_GROUP, [], plugins + ) + + async def list_distributions_by_origin_request_policy_id( + self, + input: ListDistributionsByOriginRequestPolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByOriginRequestPolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified origin request policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByOriginRequestPolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByOriginRequestPolicyIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID, [], plugins + ) + + async def list_distributions_by_owned_resource( + self, + input: ListDistributionsByOwnedResourceInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByOwnedResourceOutput: + """ + Lists the CloudFront distributions that are associated with the + specified resource that you own. + + Args: + input: + An instance of `ListDistributionsByOwnedResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByOwnedResourceOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE, [], plugins + ) + + async def list_distributions_by_realtime_log_config( + self, + input: ListDistributionsByRealtimeLogConfigInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByRealtimeLogConfigOutput: + """ + Gets a list of distributions that have a cache behavior that's + associated with the specified real-time log configuration. + + You can specify the real-time log configuration by its name or its + Amazon Resource Name (ARN). You must provide at least one. If you + provide both, CloudFront uses the name to identify the real-time log + configuration to list distributions for. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByRealtimeLogConfigOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG, [], plugins + ) + + async def list_distributions_by_response_headers_policy_id( + self, + input: ListDistributionsByResponseHeadersPolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByResponseHeadersPolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified response headers policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByResponseHeadersPolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByResponseHeadersPolicyIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID, [], plugins + ) + + async def list_distributions_by_trust_store( + self, + input: ListDistributionsByTrustStoreInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByTrustStoreOutput: + """ + Lists distributions by trust store. + + Args: + input: + An instance of `ListDistributionsByTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByTrustStoreOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_TRUST_STORE, [], plugins + ) + + async def list_distributions_by_vpc_origin_id( + self, + input: ListDistributionsByVpcOriginIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByVpcOriginIdOutput: + """ + List CloudFront distributions by their VPC origin ID. + + Args: + input: + An instance of `ListDistributionsByVpcOriginIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByVpcOriginIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID, [], plugins + ) + + async def list_distributions_by_web_acl_id( + self, + input: ListDistributionsByWebACLIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByWebACLIdOutput: + """ + List the distributions that are associated with a specified WAF web ACL. + + Args: + input: + An instance of `ListDistributionsByWebACLIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByWebACLIdOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_WEB_ACL_ID, [], plugins + ) + + async def list_distribution_tenants( + self, input: ListDistributionTenantsInput, plugins: list[Plugin] | None = None + ) -> ListDistributionTenantsOutput: + """ + Lists the distribution tenants in your Amazon Web Services account. + + Args: + input: + An instance of `ListDistributionTenantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionTenantsOutput`. + """ + return await self._invoke(input, _models.LIST_DISTRIBUTION_TENANTS, [], plugins) + + async def list_distribution_tenants_by_customization( + self, + input: ListDistributionTenantsByCustomizationInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionTenantsByCustomizationOutput: + """ + Lists distribution tenants by the customization that you specify. + + You must specify either the `CertificateArn` parameter or `WebACLArn` + parameter, but not both in the same request. + + Args: + input: + An instance of `ListDistributionTenantsByCustomizationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionTenantsByCustomizationOutput`. + """ + return await self._invoke( + input, _models.LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION, [], plugins + ) + + async def list_domain_conflicts( + self, input: ListDomainConflictsInput, plugins: list[Plugin] | None = None + ) -> ListDomainConflictsOutput: + """ + Note: + We recommend that you use the `ListDomainConflicts` API operation to + check for domain conflicts, as it supports both standard distributions + and distribution tenants. + [ListConflictingAliases](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConflictingAliases.html) + performs similar checks but only supports standard distributions. + + Lists existing domain associations that conflict with the domain that + you specify. + + You can use this API operation to identify potential domain conflicts + when moving domains between standard distributions and/or distribution + tenants. Domain conflicts must be resolved first before they can be + moved. + + For example, if you provide `www.example.com` as input, the returned + list can include `www.example.com` and the overlapping wildcard + alternate domain name (`*.example.com`), if they exist. If you provide + `*.example.com` as input, the returned list can include `*.example.com` + and any alternate domain names covered by that wildcard (for example, + `www.example.com`, `test.example.com`, `dev.example.com`, and so on), if + they exist. + + To list conflicting domains, specify the following: + + - The domain to search for + + - The ID of a standard distribution or distribution tenant in your + account that has an attached TLS certificate, which covers the + specified domain + + For more information, including how to set up the standard distribution + or distribution tenant, and the certificate, see [Moving an alternate + domain name to a different standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDomainConflictsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDomainConflictsOutput`. + """ + return await self._invoke(input, _models.LIST_DOMAIN_CONFLICTS, [], plugins) + + async def list_field_level_encryption_configs( + self, + input: ListFieldLevelEncryptionConfigsInput, + plugins: list[Plugin] | None = None, + ) -> ListFieldLevelEncryptionConfigsOutput: + """ + List all field-level encryption configurations that have been created in + CloudFront for this account. + + Args: + input: + An instance of `ListFieldLevelEncryptionConfigsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFieldLevelEncryptionConfigsOutput`. + """ + return await self._invoke( + input, _models.LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS, [], plugins + ) + + async def list_field_level_encryption_profiles( + self, + input: ListFieldLevelEncryptionProfilesInput, + plugins: list[Plugin] | None = None, + ) -> ListFieldLevelEncryptionProfilesOutput: + """ + Request a list of field-level encryption profiles that have been created + in CloudFront for this account. + + Args: + input: + An instance of `ListFieldLevelEncryptionProfilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFieldLevelEncryptionProfilesOutput`. + """ + return await self._invoke( + input, _models.LIST_FIELD_LEVEL_ENCRYPTION_PROFILES, [], plugins + ) + + async def list_functions( + self, input: ListFunctionsInput, plugins: list[Plugin] | None = None + ) -> ListFunctionsOutput: + """ + Gets a list of all CloudFront functions in your Amazon Web Services + account. + + You can optionally apply a filter to return only the functions that are + in the specified stage, either `DEVELOPMENT` or `LIVE`. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListFunctionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFunctionsOutput`. + """ + return await self._invoke(input, _models.LIST_FUNCTIONS, [], plugins) + + async def list_invalidations( + self, input: ListInvalidationsInput, plugins: list[Plugin] | None = None + ) -> ListInvalidationsOutput: + """ + Lists invalidation batches. + + Args: + input: + An instance of `ListInvalidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInvalidationsOutput`. + """ + return await self._invoke(input, _models.LIST_INVALIDATIONS, [], plugins) + + async def list_invalidations_for_distribution_tenant( + self, + input: ListInvalidationsForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> ListInvalidationsForDistributionTenantOutput: + """ + Lists the invalidations for a distribution tenant. + + Args: + input: + An instance of `ListInvalidationsForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInvalidationsForDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + async def list_key_groups( + self, input: ListKeyGroupsInput, plugins: list[Plugin] | None = None + ) -> ListKeyGroupsOutput: + """ + Gets a list of key groups. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListKeyGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyGroupsOutput`. + """ + return await self._invoke(input, _models.LIST_KEY_GROUPS, [], plugins) + + async def list_key_value_stores( + self, input: ListKeyValueStoresInput, plugins: list[Plugin] | None = None + ) -> ListKeyValueStoresOutput: + """ + Specifies the key value stores to list. + + Args: + input: + An instance of `ListKeyValueStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyValueStoresOutput`. + """ + return await self._invoke(input, _models.LIST_KEY_VALUE_STORES, [], plugins) + + async def list_origin_access_controls( + self, input: ListOriginAccessControlsInput, plugins: list[Plugin] | None = None + ) -> ListOriginAccessControlsOutput: + """ + Gets the list of CloudFront origin access controls (OACs) in this Amazon + Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send another request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the next request. + + Note: + If you're not using origin access controls for your Amazon Web Services + account, the `ListOriginAccessControls` operation doesn't return the + `Items` element in the response. + + Args: + input: + An instance of `ListOriginAccessControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOriginAccessControlsOutput`. + """ + return await self._invoke( + input, _models.LIST_ORIGIN_ACCESS_CONTROLS, [], plugins + ) + + async def list_origin_request_policies( + self, input: ListOriginRequestPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListOriginRequestPoliciesOutput: + """ + Gets a list of origin request policies. + + You can optionally apply a filter to return only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListOriginRequestPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOriginRequestPoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_ORIGIN_REQUEST_POLICIES, [], plugins + ) + + async def list_public_keys( + self, input: ListPublicKeysInput, plugins: list[Plugin] | None = None + ) -> ListPublicKeysOutput: + """ + List all public keys that have been added to CloudFront for this + account. + + Args: + input: + An instance of `ListPublicKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPublicKeysOutput`. + """ + return await self._invoke(input, _models.LIST_PUBLIC_KEYS, [], plugins) + + async def list_realtime_log_configs( + self, input: ListRealtimeLogConfigsInput, plugins: list[Plugin] | None = None + ) -> ListRealtimeLogConfigsOutput: + """ + Gets a list of real-time log configurations. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListRealtimeLogConfigsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRealtimeLogConfigsOutput`. + """ + return await self._invoke(input, _models.LIST_REALTIME_LOG_CONFIGS, [], plugins) + + async def list_response_headers_policies( + self, + input: ListResponseHeadersPoliciesInput, + plugins: list[Plugin] | None = None, + ) -> ListResponseHeadersPoliciesOutput: + """ + Gets a list of response headers policies. + + You can optionally apply a filter to get only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListResponseHeadersPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResponseHeadersPoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_RESPONSE_HEADERS_POLICIES, [], plugins + ) + + async def list_streaming_distributions( + self, + input: ListStreamingDistributionsInput, + plugins: list[Plugin] | None = None, + ) -> ListStreamingDistributionsOutput: + """ + List streaming distributions. + + Args: + input: + An instance of `ListStreamingDistributionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamingDistributionsOutput`. + """ + return await self._invoke( + input, _models.LIST_STREAMING_DISTRIBUTIONS, [], plugins + ) + + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List tags for a CloudFront resource. For more information, see [Tagging + a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + async def list_trust_stores( + self, input: ListTrustStoresInput, plugins: list[Plugin] | None = None + ) -> ListTrustStoresOutput: + """ + Lists trust stores. + + Args: + input: + An instance of `ListTrustStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTrustStoresOutput`. + """ + return await self._invoke(input, _models.LIST_TRUST_STORES, [], plugins) + + async def list_vpc_origins( + self, input: ListVpcOriginsInput, plugins: list[Plugin] | None = None + ) -> ListVpcOriginsOutput: + """ + List the CloudFront VPC origins in your account. + + Args: + input: + An instance of `ListVpcOriginsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVpcOriginsOutput`. + """ + return await self._invoke(input, _models.LIST_VPC_ORIGINS, [], plugins) + + async def publish_connection_function( + self, input: PublishConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> PublishConnectionFunctionOutput: + """ + Publishes a connection function. + + Args: + input: + An instance of `PublishConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.PUBLISH_CONNECTION_FUNCTION, [], plugins + ) + + async def publish_function( + self, input: PublishFunctionInput, plugins: list[Plugin] | None = None + ) -> PublishFunctionOutput: + """ + Publishes a CloudFront function by copying the function code from the + `DEVELOPMENT` stage to `LIVE`. This automatically updates all cache + behaviors that are using this function to use the newly published copy + in the `LIVE` stage. + + When a function is published to the `LIVE` stage, you can attach the + function to a distribution's cache behavior, using the function's + Amazon Resource Name (ARN). + + To publish a function, you must provide the function's name and version + (`ETag` value). To get these values, you can use `ListFunctions` and + `DescribeFunction`. + + Args: + input: + An instance of `PublishFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishFunctionOutput`. + """ + return await self._invoke(input, _models.PUBLISH_FUNCTION, [], plugins) + + async def put_resource_policy( + self, input: PutResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> PutResourcePolicyOutput: + """ + Creates a resource control policy for a given CloudFront resource. + + Args: + input: + An instance of `PutResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutResourcePolicyOutput`. + """ + return await self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Add tags to a CloudFront resource. For more information, see [Tagging a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def test_connection_function( + self, input: TestConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> TestConnectionFunctionOutput: + """ + Tests a connection function. + + Args: + input: + An instance of `TestConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestConnectionFunctionOutput`. + """ + return await self._invoke(input, _models.TEST_CONNECTION_FUNCTION, [], plugins) + + async def test_function( + self, input: TestFunctionInput, plugins: list[Plugin] | None = None + ) -> TestFunctionOutput: + """ + Tests a CloudFront function. + + To test a function, you provide an *event object* that represents an + HTTP request or response that your CloudFront distribution could receive + in production. CloudFront runs the function, passing it the event object + that you provided, and returns the function's result (the modified + event object) in the response. The response also contains function logs + and error messages, if any exist. For more information about testing + functions, see [Testing + functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function) + in the *Amazon CloudFront Developer Guide*. + + To test a function, you provide the function's name and version (`ETag` + value) along with the event object. To get the function's name and + version, you can use `ListFunctions` and `DescribeFunction`. + + Args: + input: + An instance of `TestFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestFunctionOutput`. + """ + return await self._invoke(input, _models.TEST_FUNCTION, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Remove tags from a CloudFront resource. For more information, see + [Tagging a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + async def update_anycast_ip_list( + self, input: UpdateAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> UpdateAnycastIpListOutput: + """ + Updates an Anycast static IP list. + + Args: + input: + An instance of `UpdateAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAnycastIpListOutput`. + """ + return await self._invoke(input, _models.UPDATE_ANYCAST_IP_LIST, [], plugins) + + async def update_cache_policy( + self, input: UpdateCachePolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateCachePolicyOutput: + """ + Updates a cache policy configuration. + + When you update a cache policy configuration, all the fields are updated + with the values provided in the request. You cannot update some fields + independent of others. To update a cache policy configuration: + + 1. Use `GetCachePolicyConfig` to get the current configuration. + + 2. Locally modify the fields in the cache policy configuration that you + want to update. + + 3. Call `UpdateCachePolicy` by providing the entire cache policy + configuration, including the fields that you modified and those that + you didn't. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content for + at least the duration specified in the cache policy's minimum TTL, even + if the `Cache-Control: no-cache`, `no-store`, or `private` directives + are present in the origin headers. + + Args: + input: + An instance of `UpdateCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCachePolicyOutput`. + """ + return await self._invoke(input, _models.UPDATE_CACHE_POLICY, [], plugins) + + async def update_cloud_front_origin_access_identity( + self, + input: UpdateCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> UpdateCloudFrontOriginAccessIdentityOutput: + """ + Update an origin access identity. + + Args: + input: + An instance of `UpdateCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCloudFrontOriginAccessIdentityOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + async def update_connection_function( + self, input: UpdateConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> UpdateConnectionFunctionOutput: + """ + Updates a connection function. + + Args: + input: + An instance of `UpdateConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateConnectionFunctionOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CONNECTION_FUNCTION, [], plugins + ) + + async def update_connection_group( + self, input: UpdateConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateConnectionGroupOutput: + """ + Updates a connection group. + + Args: + input: + An instance of `UpdateConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateConnectionGroupOutput`. + """ + return await self._invoke(input, _models.UPDATE_CONNECTION_GROUP, [], plugins) + + async def update_continuous_deployment_policy( + self, + input: UpdateContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateContinuousDeploymentPolicyOutput: + """ + Updates a continuous deployment policy. You can update a continuous + deployment policy to enable or disable it, to change the percentage of + traffic that it sends to the staging distribution, or to change the + staging distribution that it sends traffic to. + + When you update a continuous deployment policy configuration, all the + fields are updated with the values that are provided in the request. You + cannot update some fields independent of others. To update a continuous + deployment policy configuration: + + 1. Use `GetContinuousDeploymentPolicyConfig` to get the current + configuration. + + 2. Locally modify the fields in the continuous deployment policy + configuration that you want to update. + + 3. Use `UpdateContinuousDeploymentPolicy`, providing the entire + continuous deployment policy configuration, including the fields + that you modified and those that you didn't. + + Args: + input: + An instance of `UpdateContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContinuousDeploymentPolicyOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + async def update_distribution( + self, input: UpdateDistributionInput, plugins: list[Plugin] | None = None + ) -> UpdateDistributionOutput: + """ + Updates the configuration for a CloudFront distribution. + + The update process includes getting the current distribution + configuration, updating it to make your changes, and then submitting an + `UpdateDistribution` request to make the updates. + + **To update a web distribution using the CloudFront API** + + 1. Use `GetDistributionConfig` to get the current configuration, + including the version identifier (`ETag`). + + 2. Update the distribution configuration that was returned in the + response. Note the following important requirements and + restrictions: + + - You must copy the `ETag` field value from the response. (You'll + use it for the `IfMatch` parameter in your request.) Then, remove + the `ETag` field from the distribution configuration. + + - You can't change the value of `CallerReference`. + + 3. Submit an `UpdateDistribution` request, providing the updated + distribution configuration. The new configuration replaces the + existing configuration. The values that you specify in an + `UpdateDistribution` request are not merged into your existing + configuration. Make sure to include all fields: the ones that you + modified and also the ones that you didn't. + + Args: + input: + An instance of `UpdateDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionOutput`. + """ + return await self._invoke(input, _models.UPDATE_DISTRIBUTION, [], plugins) + + async def update_distribution_tenant( + self, input: UpdateDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> UpdateDistributionTenantOutput: + """ + Updates a distribution tenant. + + Args: + input: + An instance of `UpdateDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionTenantOutput`. + """ + return await self._invoke( + input, _models.UPDATE_DISTRIBUTION_TENANT, [], plugins + ) + + async def update_distribution_with_staging_config( + self, + input: UpdateDistributionWithStagingConfigInput, + plugins: list[Plugin] | None = None, + ) -> UpdateDistributionWithStagingConfigOutput: + """ + Copies the staging distribution's configuration to its corresponding + primary distribution. The primary distribution retains its `Aliases` + (also known as alternate domain names or CNAMEs) and + `ContinuousDeploymentPolicyId` value, but otherwise its configuration is + overwritten to match the staging distribution. + + You can use this operation in a continuous deployment workflow after you + have tested configuration changes on the staging distribution. After + using a continuous deployment policy to move a portion of your domain + name's traffic to the staging distribution and verifying that it works + as intended, you can use this operation to copy the staging + distribution's configuration to the primary distribution. This action + will disable the continuous deployment policy and move your domain's + traffic back to the primary distribution. + + This API operation requires the following IAM permissions: + + - [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html) + + - [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) + + Args: + input: + An instance of `UpdateDistributionWithStagingConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionWithStagingConfigOutput`. + """ + return await self._invoke( + input, _models.UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG, [], plugins + ) + + async def update_domain_association( + self, input: UpdateDomainAssociationInput, plugins: list[Plugin] | None = None + ) -> UpdateDomainAssociationOutput: + """ + Note: + We recommend that you use the `UpdateDomainAssociation` API operation to + move a domain association, as it supports both standard distributions + and distribution tenants. + [AssociateAlias](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_AssociateAlias.html) + performs similar checks but only supports standard distributions. + + Moves a domain from its current standard distribution or distribution + tenant to another one. + + You must first disable the source distribution (standard distribution or + distribution tenant) and then separately call this operation to move the + domain to another target distribution (standard distribution or + distribution tenant). + + To use this operation, specify the domain and the ID of the target + resource (standard distribution or distribution tenant). For more + information, including how to set up the target resource, prerequisites + that you must complete, and other restrictions, see [Moving an alternate + domain name to a different standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `UpdateDomainAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDomainAssociationOutput`. + """ + return await self._invoke(input, _models.UPDATE_DOMAIN_ASSOCIATION, [], plugins) + + async def update_field_level_encryption_config( + self, + input: UpdateFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> UpdateFieldLevelEncryptionConfigOutput: + """ + Update a field-level encryption configuration. + + Args: + input: + An instance of `UpdateFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFieldLevelEncryptionConfigOutput`. + """ + return await self._invoke( + input, _models.UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + async def update_field_level_encryption_profile( + self, + input: UpdateFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> UpdateFieldLevelEncryptionProfileOutput: + """ + Update a field-level encryption profile. + + Args: + input: + An instance of `UpdateFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFieldLevelEncryptionProfileOutput`. + """ + return await self._invoke( + input, _models.UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + async def update_function( + self, input: UpdateFunctionInput, plugins: list[Plugin] | None = None + ) -> UpdateFunctionOutput: + """ + Updates a CloudFront function. + + You can update a function's code or the comment that describes the + function. You cannot update a function's name. + + To update a function, you provide the function's name and version + (`ETag` value) along with the updated function code. To get the name and + version, you can use `ListFunctions` and `DescribeFunction`. + + Args: + input: + An instance of `UpdateFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFunctionOutput`. + """ + return await self._invoke(input, _models.UPDATE_FUNCTION, [], plugins) + + async def update_key_group( + self, input: UpdateKeyGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyGroupOutput: + """ + Updates a key group. + + When you update a key group, all the fields are updated with the values + provided in the request. You cannot update some fields independent of + others. To update a key group: + + 1. Get the current key group with `GetKeyGroup` or `GetKeyGroupConfig`. + + 2. Locally modify the fields in the key group that you want to update. + For example, add or remove public key IDs. + + 3. Call `UpdateKeyGroup` with the entire key group object, including + the fields that you modified and those that you didn't. + + Args: + input: + An instance of `UpdateKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyGroupOutput`. + """ + return await self._invoke(input, _models.UPDATE_KEY_GROUP, [], plugins) + + async def update_key_value_store( + self, input: UpdateKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyValueStoreOutput: + """ + Specifies the key value store to update. + + Args: + input: + An instance of `UpdateKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyValueStoreOutput`. + """ + return await self._invoke(input, _models.UPDATE_KEY_VALUE_STORE, [], plugins) + + async def update_origin_access_control( + self, input: UpdateOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> UpdateOriginAccessControlOutput: + """ + Updates a CloudFront origin access control. + + Args: + input: + An instance of `UpdateOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOriginAccessControlOutput`. + """ + return await self._invoke( + input, _models.UPDATE_ORIGIN_ACCESS_CONTROL, [], plugins + ) + + async def update_origin_request_policy( + self, input: UpdateOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateOriginRequestPolicyOutput: + """ + Updates an origin request policy configuration. + + When you update an origin request policy configuration, all the fields + are updated with the values provided in the request. You cannot update + some fields independent of others. To update an origin request policy + configuration: + + 1. Use `GetOriginRequestPolicyConfig` to get the current configuration. + + 2. Locally modify the fields in the origin request policy configuration + that you want to update. + + 3. Call `UpdateOriginRequestPolicy` by providing the entire origin + request policy configuration, including the fields that you modified + and those that you didn't. + + Args: + input: + An instance of `UpdateOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOriginRequestPolicyOutput`. + """ + return await self._invoke( + input, _models.UPDATE_ORIGIN_REQUEST_POLICY, [], plugins + ) + + async def update_public_key( + self, input: UpdatePublicKeyInput, plugins: list[Plugin] | None = None + ) -> UpdatePublicKeyOutput: + """ + Update public key information. Note that the only value you can change + is the comment. + + Args: + input: + An instance of `UpdatePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdatePublicKeyOutput`. + """ + return await self._invoke(input, _models.UPDATE_PUBLIC_KEY, [], plugins) + + async def update_realtime_log_config( + self, input: UpdateRealtimeLogConfigInput, plugins: list[Plugin] | None = None + ) -> UpdateRealtimeLogConfigOutput: + """ + Updates a real-time log configuration. + + When you update a real-time log configuration, all the parameters are + updated with the values provided in the request. You cannot update some + parameters independent of others. To update a real-time log + configuration: + + 1. Call `GetRealtimeLogConfig` to get the current real-time log + configuration. + + 2. Locally modify the parameters in the real-time log configuration + that you want to update. + + 3. Call this API (`UpdateRealtimeLogConfig`) by providing the entire + real-time log configuration, including the parameters that you + modified and those that you didn't. + + You cannot update a real-time log configuration's `Name` or `ARN`. + + Args: + input: + An instance of `UpdateRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRealtimeLogConfigOutput`. + """ + return await self._invoke( + input, _models.UPDATE_REALTIME_LOG_CONFIG, [], plugins + ) + + async def update_response_headers_policy( + self, + input: UpdateResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateResponseHeadersPolicyOutput: + """ + Updates a response headers policy. + + When you update a response headers policy, the entire policy is + replaced. You cannot update some policy fields independent of others. To + update a response headers policy configuration: + + 1. Use `GetResponseHeadersPolicyConfig` to get the current policy's + configuration. + + 2. Modify the fields in the response headers policy configuration that + you want to update. + + 3. Call `UpdateResponseHeadersPolicy`, providing the entire response + headers policy configuration, including the fields that you modified + and those that you didn't. + + Args: + input: + An instance of `UpdateResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateResponseHeadersPolicyOutput`. + """ + return await self._invoke( + input, _models.UPDATE_RESPONSE_HEADERS_POLICY, [], plugins + ) + + async def update_streaming_distribution( + self, + input: UpdateStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamingDistributionOutput: + """ + Update a streaming distribution. + + Args: + input: + An instance of `UpdateStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamingDistributionOutput`. + """ + return await self._invoke( + input, _models.UPDATE_STREAMING_DISTRIBUTION, [], plugins + ) + + async def update_trust_store( + self, input: UpdateTrustStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateTrustStoreOutput: + """ + Updates a trust store. + + Args: + input: + An instance of `UpdateTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTrustStoreOutput`. + """ + return await self._invoke(input, _models.UPDATE_TRUST_STORE, [], plugins) + + async def update_vpc_origin( + self, input: UpdateVpcOriginInput, plugins: list[Plugin] | None = None + ) -> UpdateVpcOriginOutput: + """ + Update an Amazon CloudFront VPC origin in your account. + + Args: + input: + An instance of `UpdateVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateVpcOriginOutput`. + """ + return await self._invoke(input, _models.UPDATE_VPC_ORIGIN, [], plugins) + + async def verify_dns_configuration( + self, input: VerifyDnsConfigurationInput, plugins: list[Plugin] | None = None + ) -> VerifyDnsConfigurationOutput: + """ + Verify the DNS configuration for your domain names. This API operation + checks whether your domain name points to the correct routing endpoint + of the connection group, such as d111111abcdef8.cloudfront.net. You can + use this API operation to troubleshoot and resolve DNS configuration + issues. + + Args: + input: + An instance of `VerifyDnsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyDnsConfigurationOutput`. + """ + return await self._invoke(input, _models.VERIFY_DNS_CONFIGURATION, [], plugins) + + async def _new_config(self) -> AsyncCloudFrontConfig: + return await AsyncCloudFrontConfig.resolve() + + async def _post_setup(self, config: AsyncCloudFrontConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/config.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/config.py new file mode 100644 index 00000000..3a40bee3 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/config.py @@ -0,0 +1,1099 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncRestXmlClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import CLOUDFRONT2020_05_31 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AssociateAliasInput, + AssociateAliasOutput, + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + CopyDistributionInput, + CopyDistributionOutput, + CreateAnycastIpListInput, + CreateAnycastIpListOutput, + CreateCachePolicyInput, + CreateCachePolicyOutput, + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + CreateConnectionFunctionInput, + CreateConnectionFunctionOutput, + CreateConnectionGroupInput, + CreateConnectionGroupOutput, + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + CreateDistributionInput, + CreateDistributionOutput, + CreateDistributionTenantInput, + CreateDistributionTenantOutput, + CreateDistributionWithTagsInput, + CreateDistributionWithTagsOutput, + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + CreateFunctionInput, + CreateFunctionOutput, + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + CreateInvalidationInput, + CreateInvalidationOutput, + CreateKeyGroupInput, + CreateKeyGroupOutput, + CreateKeyValueStoreInput, + CreateKeyValueStoreOutput, + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + CreateOriginAccessControlInput, + CreateOriginAccessControlOutput, + CreateOriginRequestPolicyInput, + CreateOriginRequestPolicyOutput, + CreatePublicKeyInput, + CreatePublicKeyOutput, + CreateRealtimeLogConfigInput, + CreateRealtimeLogConfigOutput, + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + CreateTrustStoreInput, + CreateTrustStoreOutput, + CreateVpcOriginInput, + CreateVpcOriginOutput, + DeleteAnycastIpListInput, + DeleteAnycastIpListOutput, + DeleteCachePolicyInput, + DeleteCachePolicyOutput, + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + DeleteConnectionFunctionInput, + DeleteConnectionFunctionOutput, + DeleteConnectionGroupInput, + DeleteConnectionGroupOutput, + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + DeleteDistributionInput, + DeleteDistributionOutput, + DeleteDistributionTenantInput, + DeleteDistributionTenantOutput, + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + DeleteFunctionInput, + DeleteFunctionOutput, + DeleteKeyGroupInput, + DeleteKeyGroupOutput, + DeleteKeyValueStoreInput, + DeleteKeyValueStoreOutput, + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + DeleteOriginAccessControlInput, + DeleteOriginAccessControlOutput, + DeleteOriginRequestPolicyInput, + DeleteOriginRequestPolicyOutput, + DeletePublicKeyInput, + DeletePublicKeyOutput, + DeleteRealtimeLogConfigInput, + DeleteRealtimeLogConfigOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + DeleteTrustStoreInput, + DeleteTrustStoreOutput, + DeleteVpcOriginInput, + DeleteVpcOriginOutput, + DescribeConnectionFunctionInput, + DescribeConnectionFunctionOutput, + DescribeFunctionInput, + DescribeFunctionOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + GetAnycastIpListInput, + GetAnycastIpListOutput, + GetCachePolicyConfigInput, + GetCachePolicyConfigOutput, + GetCachePolicyInput, + GetCachePolicyOutput, + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + GetConnectionFunctionInput, + GetConnectionFunctionOutput, + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + GetConnectionGroupInput, + GetConnectionGroupOutput, + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + GetDistributionConfigInput, + GetDistributionConfigOutput, + GetDistributionInput, + GetDistributionOutput, + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + GetDistributionTenantInput, + GetDistributionTenantOutput, + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + GetFieldLevelEncryptionInput, + GetFieldLevelEncryptionOutput, + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + GetFunctionInput, + GetFunctionOutput, + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + GetInvalidationInput, + GetInvalidationOutput, + GetKeyGroupConfigInput, + GetKeyGroupConfigOutput, + GetKeyGroupInput, + GetKeyGroupOutput, + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + GetMonitoringSubscriptionInput, + GetMonitoringSubscriptionOutput, + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + GetOriginAccessControlInput, + GetOriginAccessControlOutput, + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + GetOriginRequestPolicyInput, + GetOriginRequestPolicyOutput, + GetPublicKeyConfigInput, + GetPublicKeyConfigOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GetRealtimeLogConfigInput, + GetRealtimeLogConfigOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + GetResponseHeadersPolicyInput, + GetResponseHeadersPolicyOutput, + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + GetStreamingDistributionInput, + GetStreamingDistributionOutput, + GetTrustStoreInput, + GetTrustStoreOutput, + GetVpcOriginInput, + GetVpcOriginOutput, + ListAnycastIpListsInput, + ListAnycastIpListsOutput, + ListCachePoliciesInput, + ListCachePoliciesOutput, + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + ListConflictingAliasesInput, + ListConflictingAliasesOutput, + ListConnectionFunctionsInput, + ListConnectionFunctionsOutput, + ListConnectionGroupsInput, + ListConnectionGroupsOutput, + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + ListDistributionTenantsInput, + ListDistributionTenantsOutput, + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + ListDistributionsInput, + ListDistributionsOutput, + ListDomainConflictsInput, + ListDomainConflictsOutput, + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + ListFunctionsInput, + ListFunctionsOutput, + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + ListInvalidationsInput, + ListInvalidationsOutput, + ListKeyGroupsInput, + ListKeyGroupsOutput, + ListKeyValueStoresInput, + ListKeyValueStoresOutput, + ListOriginAccessControlsInput, + ListOriginAccessControlsOutput, + ListOriginRequestPoliciesInput, + ListOriginRequestPoliciesOutput, + ListPublicKeysInput, + ListPublicKeysOutput, + ListRealtimeLogConfigsInput, + ListRealtimeLogConfigsOutput, + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + ListStreamingDistributionsInput, + ListStreamingDistributionsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTrustStoresInput, + ListTrustStoresOutput, + ListVpcOriginsInput, + ListVpcOriginsOutput, + PublishConnectionFunctionInput, + PublishConnectionFunctionOutput, + PublishFunctionInput, + PublishFunctionOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + TagResourceInput, + TagResourceOutput, + TestConnectionFunctionInput, + TestConnectionFunctionOutput, + TestFunctionInput, + TestFunctionOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAnycastIpListInput, + UpdateAnycastIpListOutput, + UpdateCachePolicyInput, + UpdateCachePolicyOutput, + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + UpdateConnectionFunctionInput, + UpdateConnectionFunctionOutput, + UpdateConnectionGroupInput, + UpdateConnectionGroupOutput, + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + UpdateDistributionInput, + UpdateDistributionOutput, + UpdateDistributionTenantInput, + UpdateDistributionTenantOutput, + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + UpdateDomainAssociationInput, + UpdateDomainAssociationOutput, + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + UpdateFunctionInput, + UpdateFunctionOutput, + UpdateKeyGroupInput, + UpdateKeyGroupOutput, + UpdateKeyValueStoreInput, + UpdateKeyValueStoreOutput, + UpdateOriginAccessControlInput, + UpdateOriginAccessControlOutput, + UpdateOriginRequestPolicyInput, + UpdateOriginRequestPolicyOutput, + UpdatePublicKeyInput, + UpdatePublicKeyOutput, + UpdateRealtimeLogConfigInput, + UpdateRealtimeLogConfigOutput, + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + UpdateTrustStoreInput, + UpdateTrustStoreOutput, + UpdateVpcOriginInput, + UpdateVpcOriginOutput, + VerifyDnsConfigurationInput, + VerifyDnsConfigurationOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AssociateAliasInput, AssociateAliasOutput, Any, Any], + Interceptor[ + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + Any, + Any, + ], + Interceptor[ + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + Any, + Any, + ], + Interceptor[CopyDistributionInput, CopyDistributionOutput, Any, Any], + Interceptor[CreateAnycastIpListInput, CreateAnycastIpListOutput, Any, Any], + Interceptor[CreateCachePolicyInput, CreateCachePolicyOutput, Any, Any], + Interceptor[ + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + CreateConnectionFunctionInput, CreateConnectionFunctionOutput, Any, Any + ], + Interceptor[CreateConnectionGroupInput, CreateConnectionGroupOutput, Any, Any], + Interceptor[ + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[CreateDistributionInput, CreateDistributionOutput, Any, Any], + Interceptor[ + CreateDistributionTenantInput, CreateDistributionTenantOutput, Any, Any + ], + Interceptor[ + CreateDistributionWithTagsInput, CreateDistributionWithTagsOutput, Any, Any + ], + Interceptor[ + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[CreateFunctionInput, CreateFunctionOutput, Any, Any], + Interceptor[CreateInvalidationInput, CreateInvalidationOutput, Any, Any], + Interceptor[ + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[CreateKeyGroupInput, CreateKeyGroupOutput, Any, Any], + Interceptor[CreateKeyValueStoreInput, CreateKeyValueStoreOutput, Any, Any], + Interceptor[ + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + CreateOriginAccessControlInput, CreateOriginAccessControlOutput, Any, Any + ], + Interceptor[ + CreateOriginRequestPolicyInput, CreateOriginRequestPolicyOutput, Any, Any + ], + Interceptor[CreatePublicKeyInput, CreatePublicKeyOutput, Any, Any], + Interceptor[ + CreateRealtimeLogConfigInput, CreateRealtimeLogConfigOutput, Any, Any + ], + Interceptor[ + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[ + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + Any, + Any, + ], + Interceptor[CreateTrustStoreInput, CreateTrustStoreOutput, Any, Any], + Interceptor[CreateVpcOriginInput, CreateVpcOriginOutput, Any, Any], + Interceptor[DeleteAnycastIpListInput, DeleteAnycastIpListOutput, Any, Any], + Interceptor[DeleteCachePolicyInput, DeleteCachePolicyOutput, Any, Any], + Interceptor[ + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + DeleteConnectionFunctionInput, DeleteConnectionFunctionOutput, Any, Any + ], + Interceptor[DeleteConnectionGroupInput, DeleteConnectionGroupOutput, Any, Any], + Interceptor[ + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteDistributionInput, DeleteDistributionOutput, Any, Any], + Interceptor[ + DeleteDistributionTenantInput, DeleteDistributionTenantOutput, Any, Any + ], + Interceptor[ + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[DeleteFunctionInput, DeleteFunctionOutput, Any, Any], + Interceptor[DeleteKeyGroupInput, DeleteKeyGroupOutput, Any, Any], + Interceptor[DeleteKeyValueStoreInput, DeleteKeyValueStoreOutput, Any, Any], + Interceptor[ + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DeleteOriginAccessControlInput, DeleteOriginAccessControlOutput, Any, Any + ], + Interceptor[ + DeleteOriginRequestPolicyInput, DeleteOriginRequestPolicyOutput, Any, Any + ], + Interceptor[DeletePublicKeyInput, DeletePublicKeyOutput, Any, Any], + Interceptor[ + DeleteRealtimeLogConfigInput, DeleteRealtimeLogConfigOutput, Any, Any + ], + Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[ + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[DeleteTrustStoreInput, DeleteTrustStoreOutput, Any, Any], + Interceptor[DeleteVpcOriginInput, DeleteVpcOriginOutput, Any, Any], + Interceptor[ + DescribeConnectionFunctionInput, DescribeConnectionFunctionOutput, Any, Any + ], + Interceptor[DescribeFunctionInput, DescribeFunctionOutput, Any, Any], + Interceptor[DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput, Any, Any], + Interceptor[ + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + Any, + Any, + ], + Interceptor[ + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + Any, + Any, + ], + Interceptor[GetAnycastIpListInput, GetAnycastIpListOutput, Any, Any], + Interceptor[GetCachePolicyInput, GetCachePolicyOutput, Any, Any], + Interceptor[GetCachePolicyConfigInput, GetCachePolicyConfigOutput, Any, Any], + Interceptor[ + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + Any, + Any, + ], + Interceptor[GetConnectionFunctionInput, GetConnectionFunctionOutput, Any, Any], + Interceptor[GetConnectionGroupInput, GetConnectionGroupOutput, Any, Any], + Interceptor[ + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + Any, + Any, + ], + Interceptor[ + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + Any, + Any, + ], + Interceptor[GetDistributionInput, GetDistributionOutput, Any, Any], + Interceptor[GetDistributionConfigInput, GetDistributionConfigOutput, Any, Any], + Interceptor[GetDistributionTenantInput, GetDistributionTenantOutput, Any, Any], + Interceptor[ + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionInput, GetFieldLevelEncryptionOutput, Any, Any + ], + Interceptor[ + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + Any, + Any, + ], + Interceptor[GetFunctionInput, GetFunctionOutput, Any, Any], + Interceptor[GetInvalidationInput, GetInvalidationOutput, Any, Any], + Interceptor[ + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[GetKeyGroupInput, GetKeyGroupOutput, Any, Any], + Interceptor[GetKeyGroupConfigInput, GetKeyGroupConfigOutput, Any, Any], + Interceptor[ + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetMonitoringSubscriptionInput, GetMonitoringSubscriptionOutput, Any, Any + ], + Interceptor[ + GetOriginAccessControlInput, GetOriginAccessControlOutput, Any, Any + ], + Interceptor[ + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + Any, + Any, + ], + Interceptor[ + GetOriginRequestPolicyInput, GetOriginRequestPolicyOutput, Any, Any + ], + Interceptor[ + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + Any, + Any, + ], + Interceptor[GetPublicKeyInput, GetPublicKeyOutput, Any, Any], + Interceptor[GetPublicKeyConfigInput, GetPublicKeyConfigOutput, Any, Any], + Interceptor[GetRealtimeLogConfigInput, GetRealtimeLogConfigOutput, Any, Any], + Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[ + GetResponseHeadersPolicyInput, GetResponseHeadersPolicyOutput, Any, Any + ], + Interceptor[ + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + Any, + Any, + ], + Interceptor[ + GetStreamingDistributionInput, GetStreamingDistributionOutput, Any, Any + ], + Interceptor[ + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + Any, + Any, + ], + Interceptor[GetTrustStoreInput, GetTrustStoreOutput, Any, Any], + Interceptor[GetVpcOriginInput, GetVpcOriginOutput, Any, Any], + Interceptor[ListAnycastIpListsInput, ListAnycastIpListsOutput, Any, Any], + Interceptor[ListCachePoliciesInput, ListCachePoliciesOutput, Any, Any], + Interceptor[ + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + Any, + Any, + ], + Interceptor[ + ListConflictingAliasesInput, ListConflictingAliasesOutput, Any, Any + ], + Interceptor[ + ListConnectionFunctionsInput, ListConnectionFunctionsOutput, Any, Any + ], + Interceptor[ListConnectionGroupsInput, ListConnectionGroupsOutput, Any, Any], + Interceptor[ + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + Any, + Any, + ], + Interceptor[ListDistributionsInput, ListDistributionsOutput, Any, Any], + Interceptor[ + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionTenantsInput, ListDistributionTenantsOutput, Any, Any + ], + Interceptor[ + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + Any, + Any, + ], + Interceptor[ListDomainConflictsInput, ListDomainConflictsOutput, Any, Any], + Interceptor[ + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + Any, + Any, + ], + Interceptor[ + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + Any, + Any, + ], + Interceptor[ListFunctionsInput, ListFunctionsOutput, Any, Any], + Interceptor[ListInvalidationsInput, ListInvalidationsOutput, Any, Any], + Interceptor[ + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[ListKeyGroupsInput, ListKeyGroupsOutput, Any, Any], + Interceptor[ListKeyValueStoresInput, ListKeyValueStoresOutput, Any, Any], + Interceptor[ + ListOriginAccessControlsInput, ListOriginAccessControlsOutput, Any, Any + ], + Interceptor[ + ListOriginRequestPoliciesInput, ListOriginRequestPoliciesOutput, Any, Any + ], + Interceptor[ListPublicKeysInput, ListPublicKeysOutput, Any, Any], + Interceptor[ + ListRealtimeLogConfigsInput, ListRealtimeLogConfigsOutput, Any, Any + ], + Interceptor[ + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + Any, + Any, + ], + Interceptor[ + ListStreamingDistributionsInput, ListStreamingDistributionsOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ListTrustStoresInput, ListTrustStoresOutput, Any, Any], + Interceptor[ListVpcOriginsInput, ListVpcOriginsOutput, Any, Any], + Interceptor[ + PublishConnectionFunctionInput, PublishConnectionFunctionOutput, Any, Any + ], + Interceptor[PublishFunctionInput, PublishFunctionOutput, Any, Any], + Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[ + TestConnectionFunctionInput, TestConnectionFunctionOutput, Any, Any + ], + Interceptor[TestFunctionInput, TestFunctionOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAnycastIpListInput, UpdateAnycastIpListOutput, Any, Any], + Interceptor[UpdateCachePolicyInput, UpdateCachePolicyOutput, Any, Any], + Interceptor[ + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + UpdateConnectionFunctionInput, UpdateConnectionFunctionOutput, Any, Any + ], + Interceptor[UpdateConnectionGroupInput, UpdateConnectionGroupOutput, Any, Any], + Interceptor[ + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[UpdateDistributionInput, UpdateDistributionOutput, Any, Any], + Interceptor[ + UpdateDistributionTenantInput, UpdateDistributionTenantOutput, Any, Any + ], + Interceptor[ + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + Any, + Any, + ], + Interceptor[ + UpdateDomainAssociationInput, UpdateDomainAssociationOutput, Any, Any + ], + Interceptor[ + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[UpdateFunctionInput, UpdateFunctionOutput, Any, Any], + Interceptor[UpdateKeyGroupInput, UpdateKeyGroupOutput, Any, Any], + Interceptor[UpdateKeyValueStoreInput, UpdateKeyValueStoreOutput, Any, Any], + Interceptor[ + UpdateOriginAccessControlInput, UpdateOriginAccessControlOutput, Any, Any + ], + Interceptor[ + UpdateOriginRequestPolicyInput, UpdateOriginRequestPolicyOutput, Any, Any + ], + Interceptor[UpdatePublicKeyInput, UpdatePublicKeyOutput, Any, Any], + Interceptor[ + UpdateRealtimeLogConfigInput, UpdateRealtimeLogConfigOutput, Any, Any + ], + Interceptor[ + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[UpdateTrustStoreInput, UpdateTrustStoreOutput, Any, Any], + Interceptor[UpdateVpcOriginInput, UpdateVpcOriginOutput, Any, Any], + Interceptor[ + VerifyDnsConfigurationInput, VerifyDnsConfigurationOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudfront", + service_target="Cloudfront2020_05_31", + xml_namespace="http://cloudfront.amazonaws.com/doc/2020-05-31/", + service_schema=CLOUDFRONT2020_05_31, +) + + +class _AsyncCloudFrontConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncCloudFrontConfig(AsyncAwsConfig): + """CloudFront configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("cloudfront").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncRestXmlClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="cloudfront") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncCloudFrontConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncCloudFrontConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/user_agent.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/user_agent.py new file mode 100644 index 00000000..469d901c --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncCloudFrontConfig + + +def aws_user_agent_plugin(config: AsyncCloudFrontConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFront", + ) + ) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/auth.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/client.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/client.py new file mode 100644 index 00000000..a7a05a33 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/client.py @@ -0,0 +1,4813 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import CloudFrontConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AssociateAliasInput, + AssociateAliasOutput, + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + CopyDistributionInput, + CopyDistributionOutput, + CreateAnycastIpListInput, + CreateAnycastIpListOutput, + CreateCachePolicyInput, + CreateCachePolicyOutput, + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + CreateConnectionFunctionInput, + CreateConnectionFunctionOutput, + CreateConnectionGroupInput, + CreateConnectionGroupOutput, + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + CreateDistributionInput, + CreateDistributionOutput, + CreateDistributionTenantInput, + CreateDistributionTenantOutput, + CreateDistributionWithTagsInput, + CreateDistributionWithTagsOutput, + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + CreateFunctionInput, + CreateFunctionOutput, + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + CreateInvalidationInput, + CreateInvalidationOutput, + CreateKeyGroupInput, + CreateKeyGroupOutput, + CreateKeyValueStoreInput, + CreateKeyValueStoreOutput, + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + CreateOriginAccessControlInput, + CreateOriginAccessControlOutput, + CreateOriginRequestPolicyInput, + CreateOriginRequestPolicyOutput, + CreatePublicKeyInput, + CreatePublicKeyOutput, + CreateRealtimeLogConfigInput, + CreateRealtimeLogConfigOutput, + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + CreateTrustStoreInput, + CreateTrustStoreOutput, + CreateVpcOriginInput, + CreateVpcOriginOutput, + DeleteAnycastIpListInput, + DeleteAnycastIpListOutput, + DeleteCachePolicyInput, + DeleteCachePolicyOutput, + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + DeleteConnectionFunctionInput, + DeleteConnectionFunctionOutput, + DeleteConnectionGroupInput, + DeleteConnectionGroupOutput, + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + DeleteDistributionInput, + DeleteDistributionOutput, + DeleteDistributionTenantInput, + DeleteDistributionTenantOutput, + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + DeleteFunctionInput, + DeleteFunctionOutput, + DeleteKeyGroupInput, + DeleteKeyGroupOutput, + DeleteKeyValueStoreInput, + DeleteKeyValueStoreOutput, + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + DeleteOriginAccessControlInput, + DeleteOriginAccessControlOutput, + DeleteOriginRequestPolicyInput, + DeleteOriginRequestPolicyOutput, + DeletePublicKeyInput, + DeletePublicKeyOutput, + DeleteRealtimeLogConfigInput, + DeleteRealtimeLogConfigOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + DeleteTrustStoreInput, + DeleteTrustStoreOutput, + DeleteVpcOriginInput, + DeleteVpcOriginOutput, + DescribeConnectionFunctionInput, + DescribeConnectionFunctionOutput, + DescribeFunctionInput, + DescribeFunctionOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + GetAnycastIpListInput, + GetAnycastIpListOutput, + GetCachePolicyConfigInput, + GetCachePolicyConfigOutput, + GetCachePolicyInput, + GetCachePolicyOutput, + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + GetConnectionFunctionInput, + GetConnectionFunctionOutput, + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + GetConnectionGroupInput, + GetConnectionGroupOutput, + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + GetDistributionConfigInput, + GetDistributionConfigOutput, + GetDistributionInput, + GetDistributionOutput, + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + GetDistributionTenantInput, + GetDistributionTenantOutput, + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + GetFieldLevelEncryptionInput, + GetFieldLevelEncryptionOutput, + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + GetFunctionInput, + GetFunctionOutput, + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + GetInvalidationInput, + GetInvalidationOutput, + GetKeyGroupConfigInput, + GetKeyGroupConfigOutput, + GetKeyGroupInput, + GetKeyGroupOutput, + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + GetMonitoringSubscriptionInput, + GetMonitoringSubscriptionOutput, + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + GetOriginAccessControlInput, + GetOriginAccessControlOutput, + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + GetOriginRequestPolicyInput, + GetOriginRequestPolicyOutput, + GetPublicKeyConfigInput, + GetPublicKeyConfigOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GetRealtimeLogConfigInput, + GetRealtimeLogConfigOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + GetResponseHeadersPolicyInput, + GetResponseHeadersPolicyOutput, + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + GetStreamingDistributionInput, + GetStreamingDistributionOutput, + GetTrustStoreInput, + GetTrustStoreOutput, + GetVpcOriginInput, + GetVpcOriginOutput, + ListAnycastIpListsInput, + ListAnycastIpListsOutput, + ListCachePoliciesInput, + ListCachePoliciesOutput, + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + ListConflictingAliasesInput, + ListConflictingAliasesOutput, + ListConnectionFunctionsInput, + ListConnectionFunctionsOutput, + ListConnectionGroupsInput, + ListConnectionGroupsOutput, + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + ListDistributionTenantsInput, + ListDistributionTenantsOutput, + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + ListDistributionsInput, + ListDistributionsOutput, + ListDomainConflictsInput, + ListDomainConflictsOutput, + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + ListFunctionsInput, + ListFunctionsOutput, + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + ListInvalidationsInput, + ListInvalidationsOutput, + ListKeyGroupsInput, + ListKeyGroupsOutput, + ListKeyValueStoresInput, + ListKeyValueStoresOutput, + ListOriginAccessControlsInput, + ListOriginAccessControlsOutput, + ListOriginRequestPoliciesInput, + ListOriginRequestPoliciesOutput, + ListPublicKeysInput, + ListPublicKeysOutput, + ListRealtimeLogConfigsInput, + ListRealtimeLogConfigsOutput, + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + ListStreamingDistributionsInput, + ListStreamingDistributionsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTrustStoresInput, + ListTrustStoresOutput, + ListVpcOriginsInput, + ListVpcOriginsOutput, + PublishConnectionFunctionInput, + PublishConnectionFunctionOutput, + PublishFunctionInput, + PublishFunctionOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + TagResourceInput, + TagResourceOutput, + TestConnectionFunctionInput, + TestConnectionFunctionOutput, + TestFunctionInput, + TestFunctionOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAnycastIpListInput, + UpdateAnycastIpListOutput, + UpdateCachePolicyInput, + UpdateCachePolicyOutput, + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + UpdateConnectionFunctionInput, + UpdateConnectionFunctionOutput, + UpdateConnectionGroupInput, + UpdateConnectionGroupOutput, + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + UpdateDistributionInput, + UpdateDistributionOutput, + UpdateDistributionTenantInput, + UpdateDistributionTenantOutput, + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + UpdateDomainAssociationInput, + UpdateDomainAssociationOutput, + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + UpdateFunctionInput, + UpdateFunctionOutput, + UpdateKeyGroupInput, + UpdateKeyGroupOutput, + UpdateKeyValueStoreInput, + UpdateKeyValueStoreOutput, + UpdateOriginAccessControlInput, + UpdateOriginAccessControlOutput, + UpdateOriginRequestPolicyInput, + UpdateOriginRequestPolicyOutput, + UpdatePublicKeyInput, + UpdatePublicKeyOutput, + UpdateRealtimeLogConfigInput, + UpdateRealtimeLogConfigOutput, + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + UpdateTrustStoreInput, + UpdateTrustStoreOutput, + UpdateVpcOriginInput, + UpdateVpcOriginOutput, + VerifyDnsConfigurationInput, + VerifyDnsConfigurationOutput, + ) + + +logger = logging.getLogger(__name__) + + +class CloudFrontClient(Client[CloudFrontConfig]): + """ + This is the *Amazon CloudFront API Reference*. This guide is for + developers who need detailed information about CloudFront API actions, + data types, and errors. For detailed information about CloudFront + features, see the [Amazon CloudFront Developer + Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def associate_alias( + self, input: AssociateAliasInput, plugins: list[Plugin] | None = None + ) -> AssociateAliasOutput: + """ + Note: + The `AssociateAlias` API operation only supports standard distributions. + To move domains between distribution tenants and/or standard + distributions, we recommend that you use the + [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) + API operation instead. + + Associates an alias with a CloudFront standard distribution. An alias is + commonly known as a custom domain or vanity domain. It can also be + called a CNAME or alternate domain name. + + With this operation, you can move an alias that's already used for a + standard distribution to a different standard distribution. This + prevents the downtime that could occur if you first remove the alias + from one standard distribution and then separately add the alias to + another standard distribution. + + To use this operation, specify the alias and the ID of the target + standard distribution. + + For more information, including how to set up the target standard + distribution, prerequisites that you must complete, and other + restrictions, see [Moving an alternate domain name to a different + standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `AssociateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateAliasOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_ALIAS, [], plugins) + + def associate_distribution_tenant_web_acl( + self, + input: AssociateDistributionTenantWebACLInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDistributionTenantWebACLOutput: + """ + Associates the WAF web ACL with a distribution tenant. + + Args: + input: + An instance of `AssociateDistributionTenantWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDistributionTenantWebACLOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL, [], plugins + ) + + def associate_distribution_web_acl( + self, + input: AssociateDistributionWebACLInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDistributionWebACLOutput: + """ + Associates the WAF web ACL with a distribution. + + Args: + input: + An instance of `AssociateDistributionWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDistributionWebACLOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_DISTRIBUTION_WEB_ACL, [], plugins) + + def copy_distribution( + self, input: CopyDistributionInput, plugins: list[Plugin] | None = None + ) -> CopyDistributionOutput: + """ + Creates a staging distribution using the configuration of the provided + primary distribution. A staging distribution is a copy of an existing + distribution (called the primary distribution) that you can use in a + continuous deployment workflow. + + After you create a staging distribution, you can use + `UpdateDistribution` to modify the staging distribution's + configuration. Then you can use `CreateContinuousDeploymentPolicy` to + incrementally move traffic to the staging distribution. + + This API operation requires the following IAM permissions: + + - [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html) + + - [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) + + - [CopyDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CopyDistribution.html) + + Args: + input: + An instance of `CopyDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDistributionOutput`. + """ + return self._invoke(input, _models.COPY_DISTRIBUTION, [], plugins) + + def create_anycast_ip_list( + self, input: CreateAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> CreateAnycastIpListOutput: + """ + Creates an Anycast static IP list. + + Args: + input: + An instance of `CreateAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAnycastIpListOutput`. + """ + return self._invoke(input, _models.CREATE_ANYCAST_IP_LIST, [], plugins) + + def create_cache_policy( + self, input: CreateCachePolicyInput, plugins: list[Plugin] | None = None + ) -> CreateCachePolicyOutput: + """ + Creates a cache policy. + + After you create a cache policy, you can attach it to one or more cache + behaviors. When it's attached to a cache behavior, the cache policy + determines the following: + + - The values that CloudFront includes in the *cache key*. These values + can include HTTP headers, cookies, and URL query strings. CloudFront + uses the cache key to find an object in its cache that it can return + to the viewer. + + - The default, minimum, and maximum time to live (TTL) values that you + want objects to stay in the CloudFront cache. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content + for at least the duration specified in the cache policy's minimum + TTL, even if the `Cache-Control: no-cache`, `no-store`, or `private` + directives are present in the origin headers. + + The headers, cookies, and query strings that are included in the cache + key are also included in requests that CloudFront sends to the origin. + CloudFront sends a request when it can't find an object in its cache + that matches the request's cache key. If you want to send values to the + origin but *not* include them in the cache key, use + `OriginRequestPolicy`. + + For more information about cache policies, see [Controlling the cache + key](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCachePolicyOutput`. + """ + return self._invoke(input, _models.CREATE_CACHE_POLICY, [], plugins) + + def create_cloud_front_origin_access_identity( + self, + input: CreateCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> CreateCloudFrontOriginAccessIdentityOutput: + """ + Creates a new origin access identity. If you're using Amazon S3 for + your origin, you can use an origin access identity to require users to + access your content using a CloudFront URL instead of the Amazon S3 URL. + For more information about how to use origin access identities, see + [Serving Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCloudFrontOriginAccessIdentityOutput`. + """ + return self._invoke( + input, _models.CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + def create_connection_function( + self, input: CreateConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> CreateConnectionFunctionOutput: + """ + Creates a connection function. + + Args: + input: + An instance of `CreateConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateConnectionFunctionOutput`. + """ + return self._invoke(input, _models.CREATE_CONNECTION_FUNCTION, [], plugins) + + def create_connection_group( + self, input: CreateConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> CreateConnectionGroupOutput: + """ + Creates a connection group. + + Args: + input: + An instance of `CreateConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateConnectionGroupOutput`. + """ + return self._invoke(input, _models.CREATE_CONNECTION_GROUP, [], plugins) + + def create_continuous_deployment_policy( + self, + input: CreateContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateContinuousDeploymentPolicyOutput: + """ + Creates a continuous deployment policy that distributes traffic for a + custom domain name to two different CloudFront distributions. + + To use a continuous deployment policy, first use `CopyDistribution` to + create a staging distribution, then use `UpdateDistribution` to modify + the staging distribution's configuration. + + After you create and update a staging distribution, you can use a + continuous deployment policy to incrementally move traffic to the + staging distribution. This workflow enables you to test changes to a + distribution's configuration before moving all of your domain's + production traffic to the new configuration. + + Args: + input: + An instance of `CreateContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateContinuousDeploymentPolicyOutput`. + """ + return self._invoke( + input, _models.CREATE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + def create_distribution( + self, input: CreateDistributionInput, plugins: list[Plugin] | None = None + ) -> CreateDistributionOutput: + """ + Creates a CloudFront distribution. + + Args: + input: + An instance of `CreateDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionOutput`. + """ + return self._invoke(input, _models.CREATE_DISTRIBUTION, [], plugins) + + def create_distribution_tenant( + self, input: CreateDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> CreateDistributionTenantOutput: + """ + Creates a distribution tenant. + + Args: + input: + An instance of `CreateDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionTenantOutput`. + """ + return self._invoke(input, _models.CREATE_DISTRIBUTION_TENANT, [], plugins) + + def create_distribution_with_tags( + self, + input: CreateDistributionWithTagsInput, + plugins: list[Plugin] | None = None, + ) -> CreateDistributionWithTagsOutput: + """ + Create a new distribution with tags. This API operation requires the + following IAM permissions: + + - [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) + + - [TagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_TagResource.html) + + Args: + input: + An instance of `CreateDistributionWithTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDistributionWithTagsOutput`. + """ + return self._invoke(input, _models.CREATE_DISTRIBUTION_WITH_TAGS, [], plugins) + + def create_field_level_encryption_config( + self, + input: CreateFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> CreateFieldLevelEncryptionConfigOutput: + """ + Create a new field-level encryption configuration. + + Args: + input: + An instance of `CreateFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFieldLevelEncryptionConfigOutput`. + """ + return self._invoke( + input, _models.CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + def create_field_level_encryption_profile( + self, + input: CreateFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> CreateFieldLevelEncryptionProfileOutput: + """ + Create a field-level encryption profile. + + Args: + input: + An instance of `CreateFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFieldLevelEncryptionProfileOutput`. + """ + return self._invoke( + input, _models.CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + def create_function( + self, input: CreateFunctionInput, plugins: list[Plugin] | None = None + ) -> CreateFunctionOutput: + """ + Creates a CloudFront function. + + To create a function, you provide the function code and some + configuration information about the function. The response contains an + Amazon Resource Name (ARN) that uniquely identifies the function. + + When you create a function, it's in the `DEVELOPMENT` stage. In this + stage, you can test the function with `TestFunction`, and update it with + `UpdateFunction`. + + When you're ready to use your function with a CloudFront distribution, + use `PublishFunction` to copy the function from the `DEVELOPMENT` stage + to `LIVE`. When it's live, you can attach the function to a + distribution's cache behavior, using the function's ARN. + + Args: + input: + An instance of `CreateFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFunctionOutput`. + """ + return self._invoke(input, _models.CREATE_FUNCTION, [], plugins) + + def create_invalidation( + self, input: CreateInvalidationInput, plugins: list[Plugin] | None = None + ) -> CreateInvalidationOutput: + """ + Create a new invalidation. For more information, see [Invalidating + files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateInvalidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInvalidationOutput`. + """ + return self._invoke(input, _models.CREATE_INVALIDATION, [], plugins) + + def create_invalidation_for_distribution_tenant( + self, + input: CreateInvalidationForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> CreateInvalidationForDistributionTenantOutput: + """ + Creates an invalidation for a distribution tenant. For more information, + see [Invalidating + files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateInvalidationForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInvalidationForDistributionTenantOutput`. + """ + return self._invoke( + input, _models.CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + def create_key_group( + self, input: CreateKeyGroupInput, plugins: list[Plugin] | None = None + ) -> CreateKeyGroupOutput: + """ + Creates a key group that you can use with [CloudFront signed URLs and + signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). + + To create a key group, you must specify at least one public key for the + key group. After you create a key group, you can reference it from one + or more cache behaviors. When you reference a key group in a cache + behavior, CloudFront requires signed URLs or signed cookies for all + requests that match the cache behavior. The URLs or cookies must be + signed with a private key whose corresponding public key is in the key + group. The signed URL or cookie contains information about which public + key CloudFront should use to verify the signature. For more information, + see [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyGroupOutput`. + """ + return self._invoke(input, _models.CREATE_KEY_GROUP, [], plugins) + + def create_key_value_store( + self, input: CreateKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> CreateKeyValueStoreOutput: + """ + Specifies the key value store resource to add to your account. In your + account, the key value store names must be unique. You can also import + key value store data in JSON format from an S3 bucket by providing a + valid `ImportSource` that you own. + + Args: + input: + An instance of `CreateKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyValueStoreOutput`. + """ + return self._invoke(input, _models.CREATE_KEY_VALUE_STORE, [], plugins) + + def create_monitoring_subscription( + self, + input: CreateMonitoringSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> CreateMonitoringSubscriptionOutput: + """ + Enables or disables additional Amazon CloudWatch metrics for the + specified CloudFront distribution. The additional metrics incur an + additional cost. + + For more information, see [Viewing additional CloudFront distribution + metrics](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMonitoringSubscriptionOutput`. + """ + return self._invoke(input, _models.CREATE_MONITORING_SUBSCRIPTION, [], plugins) + + def create_origin_access_control( + self, input: CreateOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> CreateOriginAccessControlOutput: + """ + Creates a new origin access control in CloudFront. After you create an + origin access control, you can add it to an origin in a CloudFront + distribution so that CloudFront sends authenticated (signed) requests to + the origin. + + This makes it possible to block public access to the origin, allowing + viewers (users) to access the origin's content only through CloudFront. + + For more information about using a CloudFront origin access control, see + [Restricting access to an Amazon Web Services + origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOriginAccessControlOutput`. + """ + return self._invoke(input, _models.CREATE_ORIGIN_ACCESS_CONTROL, [], plugins) + + def create_origin_request_policy( + self, input: CreateOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> CreateOriginRequestPolicyOutput: + """ + Creates an origin request policy. + + After you create an origin request policy, you can attach it to one or + more cache behaviors. When it's attached to a cache behavior, the + origin request policy determines the values that CloudFront includes in + requests that it sends to the origin. Each request that CloudFront sends + to the origin includes the following: + + - The request body and the URL path (without the domain name) from the + viewer request. + + - The headers that CloudFront automatically includes in every origin + request, including `Host`, `User-Agent`, and `X-Amz-Cf-Id`. + + - All HTTP headers, cookies, and URL query strings that are specified in + the cache policy or the origin request policy. These can include items + from the viewer request and, in the case of headers, additional ones + that are added by CloudFront. + + CloudFront sends a request when it can't find a valid object in its + cache that matches the request. If you want to send values to the origin + and also include them in the cache key, use `CachePolicy`. + + For more information about origin request policies, see [Controlling + origin + requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOriginRequestPolicyOutput`. + """ + return self._invoke(input, _models.CREATE_ORIGIN_REQUEST_POLICY, [], plugins) + + def create_public_key( + self, input: CreatePublicKeyInput, plugins: list[Plugin] | None = None + ) -> CreatePublicKeyOutput: + """ + Uploads a public key to CloudFront that you can use with [signed URLs + and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + + Args: + input: + An instance of `CreatePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePublicKeyOutput`. + """ + return self._invoke(input, _models.CREATE_PUBLIC_KEY, [], plugins) + + def create_realtime_log_config( + self, input: CreateRealtimeLogConfigInput, plugins: list[Plugin] | None = None + ) -> CreateRealtimeLogConfigOutput: + """ + Creates a real-time log configuration. + + After you create a real-time log configuration, you can attach it to one + or more cache behaviors to send real-time log data to the specified + Amazon Kinesis data stream. + + For more information about real-time log configurations, see [Real-time + logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRealtimeLogConfigOutput`. + """ + return self._invoke(input, _models.CREATE_REALTIME_LOG_CONFIG, [], plugins) + + def create_response_headers_policy( + self, + input: CreateResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateResponseHeadersPolicyOutput: + """ + Creates a response headers policy. + + A response headers policy contains information about a set of HTTP + headers. To create a response headers policy, you provide some metadata + about the policy and a set of configurations that specify the headers. + + After you create a response headers policy, you can use its ID to attach + it to one or more cache behaviors in a CloudFront distribution. When + it's attached to a cache behavior, the response headers policy affects + the HTTP headers that CloudFront includes in HTTP responses to requests + that match the cache behavior. CloudFront adds or removes response + headers according to the configuration of the response headers policy. + + For more information, see [Adding or removing HTTP headers in CloudFront + responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `CreateResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateResponseHeadersPolicyOutput`. + """ + return self._invoke(input, _models.CREATE_RESPONSE_HEADERS_POLICY, [], plugins) + + def create_streaming_distribution( + self, + input: CreateStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> CreateStreamingDistributionOutput: + """ + This API is deprecated. Amazon CloudFront is deprecating real-time + messaging protocol (RTMP) distributions on December 31, 2020. For more + information, [read the + announcement](http://forums.aws.amazon.com/ann.jspa?annID=7356) on the + Amazon CloudFront discussion forum. + + Args: + input: + An instance of `CreateStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamingDistributionOutput`. + """ + return self._invoke(input, _models.CREATE_STREAMING_DISTRIBUTION, [], plugins) + + def create_streaming_distribution_with_tags( + self, + input: CreateStreamingDistributionWithTagsInput, + plugins: list[Plugin] | None = None, + ) -> CreateStreamingDistributionWithTagsOutput: + """ + This API is deprecated. Amazon CloudFront is deprecating real-time + messaging protocol (RTMP) distributions on December 31, 2020. For more + information, [read the + announcement](http://forums.aws.amazon.com/ann.jspa?annID=7356) on the + Amazon CloudFront discussion forum. + + Args: + input: + An instance of `CreateStreamingDistributionWithTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamingDistributionWithTagsOutput`. + """ + return self._invoke( + input, _models.CREATE_STREAMING_DISTRIBUTION_WITH_TAGS, [], plugins + ) + + def create_trust_store( + self, input: CreateTrustStoreInput, plugins: list[Plugin] | None = None + ) -> CreateTrustStoreOutput: + """ + Creates a trust store. + + Args: + input: + An instance of `CreateTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrustStoreOutput`. + """ + return self._invoke(input, _models.CREATE_TRUST_STORE, [], plugins) + + def create_vpc_origin( + self, input: CreateVpcOriginInput, plugins: list[Plugin] | None = None + ) -> CreateVpcOriginOutput: + """ + Create an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `CreateVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcOriginOutput`. + """ + return self._invoke(input, _models.CREATE_VPC_ORIGIN, [], plugins) + + def delete_anycast_ip_list( + self, input: DeleteAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> DeleteAnycastIpListOutput: + """ + Deletes an Anycast static IP list. + + Args: + input: + An instance of `DeleteAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAnycastIpListOutput`. + """ + return self._invoke(input, _models.DELETE_ANYCAST_IP_LIST, [], plugins) + + def delete_cache_policy( + self, input: DeleteCachePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteCachePolicyOutput: + """ + Deletes a cache policy. + + You cannot delete a cache policy if it's attached to a cache behavior. + First update your distributions to remove the cache policy from all + cache behaviors, then delete the cache policy. + + To delete a cache policy, you must provide the policy's identifier and + version. To get these values, you can use `ListCachePolicies` or + `GetCachePolicy`. + + Args: + input: + An instance of `DeleteCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCachePolicyOutput`. + """ + return self._invoke(input, _models.DELETE_CACHE_POLICY, [], plugins) + + def delete_cloud_front_origin_access_identity( + self, + input: DeleteCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCloudFrontOriginAccessIdentityOutput: + """ + Delete an origin access identity. + + Args: + input: + An instance of `DeleteCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCloudFrontOriginAccessIdentityOutput`. + """ + return self._invoke( + input, _models.DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + def delete_connection_function( + self, input: DeleteConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> DeleteConnectionFunctionOutput: + """ + Deletes a connection function. + + Args: + input: + An instance of `DeleteConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteConnectionFunctionOutput`. + """ + return self._invoke(input, _models.DELETE_CONNECTION_FUNCTION, [], plugins) + + def delete_connection_group( + self, input: DeleteConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteConnectionGroupOutput: + """ + Deletes a connection group. + + Args: + input: + An instance of `DeleteConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteConnectionGroupOutput`. + """ + return self._invoke(input, _models.DELETE_CONNECTION_GROUP, [], plugins) + + def delete_continuous_deployment_policy( + self, + input: DeleteContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteContinuousDeploymentPolicyOutput: + """ + Deletes a continuous deployment policy. + + You cannot delete a continuous deployment policy that's attached to a + primary distribution. First update your distribution to remove the + continuous deployment policy, then you can delete the policy. + + Args: + input: + An instance of `DeleteContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteContinuousDeploymentPolicyOutput`. + """ + return self._invoke( + input, _models.DELETE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + def delete_distribution( + self, input: DeleteDistributionInput, plugins: list[Plugin] | None = None + ) -> DeleteDistributionOutput: + """ + Delete a distribution. + + Warning: + Before you can delete a distribution, you must disable it, which + requires permission to update the distribution. Once deleted, a + distribution cannot be recovered. + + Args: + input: + An instance of `DeleteDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDistributionOutput`. + """ + return self._invoke(input, _models.DELETE_DISTRIBUTION, [], plugins) + + def delete_distribution_tenant( + self, input: DeleteDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> DeleteDistributionTenantOutput: + """ + Deletes a distribution tenant. If you use this API operation to delete a + distribution tenant that is currently enabled, the request will fail. + + To delete a distribution tenant, you must first disable the distribution + tenant by using the `UpdateDistributionTenant` API operation. + + Args: + input: + An instance of `DeleteDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDistributionTenantOutput`. + """ + return self._invoke(input, _models.DELETE_DISTRIBUTION_TENANT, [], plugins) + + def delete_field_level_encryption_config( + self, + input: DeleteFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> DeleteFieldLevelEncryptionConfigOutput: + """ + Remove a field-level encryption configuration. + + Args: + input: + An instance of `DeleteFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFieldLevelEncryptionConfigOutput`. + """ + return self._invoke( + input, _models.DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + def delete_field_level_encryption_profile( + self, + input: DeleteFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> DeleteFieldLevelEncryptionProfileOutput: + """ + Remove a field-level encryption profile. + + Args: + input: + An instance of `DeleteFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFieldLevelEncryptionProfileOutput`. + """ + return self._invoke( + input, _models.DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + def delete_function( + self, input: DeleteFunctionInput, plugins: list[Plugin] | None = None + ) -> DeleteFunctionOutput: + """ + Deletes a CloudFront function. + + You cannot delete a function if it's associated with a cache behavior. + First, update your distributions to remove the function association from + all cache behaviors, then delete the function. + + To delete a function, you must provide the function's name and version + (`ETag` value). To get these values, you can use `ListFunctions` and + `DescribeFunction`. + + Args: + input: + An instance of `DeleteFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFunctionOutput`. + """ + return self._invoke(input, _models.DELETE_FUNCTION, [], plugins) + + def delete_key_group( + self, input: DeleteKeyGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyGroupOutput: + """ + Deletes a key group. + + You cannot delete a key group that is referenced in a cache behavior. + First update your distributions to remove the key group from all cache + behaviors, then delete the key group. + + To delete a key group, you must provide the key group's identifier and + version. To get these values, use `ListKeyGroups` followed by + `GetKeyGroup` or `GetKeyGroupConfig`. + + Args: + input: + An instance of `DeleteKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyGroupOutput`. + """ + return self._invoke(input, _models.DELETE_KEY_GROUP, [], plugins) + + def delete_key_value_store( + self, input: DeleteKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyValueStoreOutput: + """ + Specifies the key value store to delete. + + Args: + input: + An instance of `DeleteKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyValueStoreOutput`. + """ + return self._invoke(input, _models.DELETE_KEY_VALUE_STORE, [], plugins) + + def delete_monitoring_subscription( + self, + input: DeleteMonitoringSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteMonitoringSubscriptionOutput: + """ + Disables additional CloudWatch metrics for the specified CloudFront + distribution. + + Args: + input: + An instance of `DeleteMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteMonitoringSubscriptionOutput`. + """ + return self._invoke(input, _models.DELETE_MONITORING_SUBSCRIPTION, [], plugins) + + def delete_origin_access_control( + self, input: DeleteOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> DeleteOriginAccessControlOutput: + """ + Deletes a CloudFront origin access control. + + You cannot delete an origin access control if it's in use. First, + update all distributions to remove the origin access control from all + origins, then delete the origin access control. + + Args: + input: + An instance of `DeleteOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOriginAccessControlOutput`. + """ + return self._invoke(input, _models.DELETE_ORIGIN_ACCESS_CONTROL, [], plugins) + + def delete_origin_request_policy( + self, input: DeleteOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteOriginRequestPolicyOutput: + """ + Deletes an origin request policy. + + You cannot delete an origin request policy if it's attached to any + cache behaviors. First update your distributions to remove the origin + request policy from all cache behaviors, then delete the origin request + policy. + + To delete an origin request policy, you must provide the policy's + identifier and version. To get the identifier, you can use + `ListOriginRequestPolicies` or `GetOriginRequestPolicy`. + + Args: + input: + An instance of `DeleteOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOriginRequestPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_ORIGIN_REQUEST_POLICY, [], plugins) + + def delete_public_key( + self, input: DeletePublicKeyInput, plugins: list[Plugin] | None = None + ) -> DeletePublicKeyOutput: + """ + Remove a public key you previously added to CloudFront. + + Args: + input: + An instance of `DeletePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicKeyOutput`. + """ + return self._invoke(input, _models.DELETE_PUBLIC_KEY, [], plugins) + + def delete_realtime_log_config( + self, + input: DeleteRealtimeLogConfigInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteRealtimeLogConfigOutput: + """ + Deletes a real-time log configuration. + + You cannot delete a real-time log configuration if it's attached to a + cache behavior. First update your distributions to remove the real-time + log configuration from all cache behaviors, then delete the real-time + log configuration. + + To delete a real-time log configuration, you can provide the + configuration's name or its Amazon Resource Name (ARN). You must + provide at least one. If you provide both, CloudFront uses the name to + identify the real-time log configuration to delete. + + Args: + input: + An instance of `DeleteRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRealtimeLogConfigOutput`. + """ + return self._invoke(input, _models.DELETE_REALTIME_LOG_CONFIG, [], plugins) + + def delete_resource_policy( + self, input: DeleteResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteResourcePolicyOutput: + """ + Deletes the resource policy attached to the CloudFront resource. + + Args: + input: + An instance of `DeleteResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResourcePolicyOutput`. + """ + return self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + + def delete_response_headers_policy( + self, + input: DeleteResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteResponseHeadersPolicyOutput: + """ + Deletes a response headers policy. + + You cannot delete a response headers policy if it's attached to a cache + behavior. First update your distributions to remove the response headers + policy from all cache behaviors, then delete the response headers + policy. + + To delete a response headers policy, you must provide the policy's + identifier and version. To get these values, you can use + `ListResponseHeadersPolicies` or `GetResponseHeadersPolicy`. + + Args: + input: + An instance of `DeleteResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResponseHeadersPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_RESPONSE_HEADERS_POLICY, [], plugins) + + def delete_streaming_distribution( + self, + input: DeleteStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteStreamingDistributionOutput: + """ + Delete a streaming distribution. To delete an RTMP distribution using + the CloudFront API, perform the following steps. + + **To delete an RTMP distribution using the CloudFront API**: + + 1. Disable the RTMP distribution. + + 2. Submit a `GET Streaming Distribution Config` request to get the + current configuration and the `Etag` header for the distribution. + + 3. Update the XML document that was returned in the response to your + `GET Streaming Distribution Config` request to change the value of + `Enabled` to `false`. + + 4. Submit a `PUT Streaming Distribution Config` request to update the + configuration for your distribution. In the request body, include + the XML document that you updated in Step 3. Then set the value of + the HTTP `If-Match` header to the value of the `ETag` header that + CloudFront returned when you submitted the + `GET Streaming Distribution Config` request in Step 2. + + 5. Review the response to the `PUT Streaming Distribution Config` + request to confirm that the distribution was successfully disabled. + + 6. Submit a `GET Streaming Distribution Config` request to confirm that + your changes have propagated. When propagation is complete, the + value of `Status` is `Deployed`. + + 7. Submit a `DELETE Streaming Distribution` request. Set the value of + the HTTP `If-Match` header to the value of the `ETag` header that + CloudFront returned when you submitted the + `GET Streaming Distribution Config` request in Step 2. + + 8. Review the response to your `DELETE Streaming Distribution` request + to confirm that the distribution was successfully deleted. + + For information about deleting a distribution using the CloudFront + console, see [Deleting a + Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `DeleteStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStreamingDistributionOutput`. + """ + return self._invoke(input, _models.DELETE_STREAMING_DISTRIBUTION, [], plugins) + + def delete_trust_store( + self, input: DeleteTrustStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteTrustStoreOutput: + """ + Deletes a trust store. + + Args: + input: + An instance of `DeleteTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrustStoreOutput`. + """ + return self._invoke(input, _models.DELETE_TRUST_STORE, [], plugins) + + def delete_vpc_origin( + self, input: DeleteVpcOriginInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcOriginOutput: + """ + Delete an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `DeleteVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcOriginOutput`. + """ + return self._invoke(input, _models.DELETE_VPC_ORIGIN, [], plugins) + + def describe_connection_function( + self, + input: DescribeConnectionFunctionInput, + plugins: list[Plugin] | None = None, + ) -> DescribeConnectionFunctionOutput: + """ + Describes a connection function. + + Args: + input: + An instance of `DescribeConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeConnectionFunctionOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CONNECTION_FUNCTION, [], plugins) + + def describe_function( + self, input: DescribeFunctionInput, plugins: list[Plugin] | None = None + ) -> DescribeFunctionOutput: + """ + Gets configuration information and metadata about a CloudFront function, + but not the function's code. To get a function's code, use + `GetFunction`. + + To get configuration information and metadata about a function, you must + provide the function's name and stage. To get these values, you can use + `ListFunctions`. + + Args: + input: + An instance of `DescribeFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFunctionOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FUNCTION, [], plugins) + + def describe_key_value_store( + self, input: DescribeKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyValueStoreOutput: + """ + Specifies the key value store and its configuration. + + Args: + input: + An instance of `DescribeKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyValueStoreOutput`. + """ + return self._invoke(input, _models.DESCRIBE_KEY_VALUE_STORE, [], plugins) + + def disassociate_distribution_tenant_web_acl( + self, + input: DisassociateDistributionTenantWebACLInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateDistributionTenantWebACLOutput: + """ + Disassociates a distribution tenant from the WAF web ACL. + + Args: + input: + An instance of `DisassociateDistributionTenantWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateDistributionTenantWebACLOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL, [], plugins + ) + + def disassociate_distribution_web_acl( + self, + input: DisassociateDistributionWebACLInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateDistributionWebACLOutput: + """ + Disassociates a distribution from the WAF web ACL. + + Args: + input: + An instance of `DisassociateDistributionWebACLInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateDistributionWebACLOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_DISTRIBUTION_WEB_ACL, [], plugins + ) + + def get_anycast_ip_list( + self, input: GetAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> GetAnycastIpListOutput: + """ + Gets an Anycast static IP list. + + Args: + input: + An instance of `GetAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAnycastIpListOutput`. + """ + return self._invoke(input, _models.GET_ANYCAST_IP_LIST, [], plugins) + + def get_cache_policy( + self, input: GetCachePolicyInput, plugins: list[Plugin] | None = None + ) -> GetCachePolicyOutput: + """ + Gets a cache policy, including the following metadata: + + - The policy's identifier. + + - The date and time when the policy was last modified. + + To get a cache policy, you must provide the policy's identifier. If the + cache policy is attached to a distribution's cache behavior, you can + get the policy's identifier using `ListDistributions` or + `GetDistribution`. If the cache policy is not attached to a cache + behavior, you can get the identifier using `ListCachePolicies`. + + Args: + input: + An instance of `GetCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCachePolicyOutput`. + """ + return self._invoke(input, _models.GET_CACHE_POLICY, [], plugins) + + def get_cache_policy_config( + self, input: GetCachePolicyConfigInput, plugins: list[Plugin] | None = None + ) -> GetCachePolicyConfigOutput: + """ + Gets a cache policy configuration. + + To get a cache policy configuration, you must provide the policy's + identifier. If the cache policy is attached to a distribution's cache + behavior, you can get the policy's identifier using `ListDistributions` + or `GetDistribution`. If the cache policy is not attached to a cache + behavior, you can get the identifier using `ListCachePolicies`. + + Args: + input: + An instance of `GetCachePolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCachePolicyConfigOutput`. + """ + return self._invoke(input, _models.GET_CACHE_POLICY_CONFIG, [], plugins) + + def get_cloud_front_origin_access_identity( + self, + input: GetCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> GetCloudFrontOriginAccessIdentityOutput: + """ + Get the information about an origin access identity. + + Args: + input: + An instance of `GetCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCloudFrontOriginAccessIdentityOutput`. + """ + return self._invoke( + input, _models.GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + def get_cloud_front_origin_access_identity_config( + self, + input: GetCloudFrontOriginAccessIdentityConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetCloudFrontOriginAccessIdentityConfigOutput: + """ + Get the configuration information about an origin access identity. + + Args: + input: + An instance of `GetCloudFrontOriginAccessIdentityConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCloudFrontOriginAccessIdentityConfigOutput`. + """ + return self._invoke( + input, _models.GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG, [], plugins + ) + + def get_connection_function( + self, input: GetConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> GetConnectionFunctionOutput: + """ + Gets a connection function. + + Args: + input: + An instance of `GetConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionFunctionOutput`. + """ + return self._invoke(input, _models.GET_CONNECTION_FUNCTION, [], plugins) + + def get_connection_group( + self, input: GetConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> GetConnectionGroupOutput: + """ + Gets information about a connection group. + + Args: + input: + An instance of `GetConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionGroupOutput`. + """ + return self._invoke(input, _models.GET_CONNECTION_GROUP, [], plugins) + + def get_connection_group_by_routing_endpoint( + self, + input: GetConnectionGroupByRoutingEndpointInput, + plugins: list[Plugin] | None = None, + ) -> GetConnectionGroupByRoutingEndpointOutput: + """ + Gets information about a connection group by using the endpoint that you + specify. + + Args: + input: + An instance of `GetConnectionGroupByRoutingEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConnectionGroupByRoutingEndpointOutput`. + """ + return self._invoke( + input, _models.GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT, [], plugins + ) + + def get_continuous_deployment_policy( + self, + input: GetContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContinuousDeploymentPolicyOutput: + """ + Gets a continuous deployment policy, including metadata (the policy's + identifier and the date and time when the policy was last modified). + + Args: + input: + An instance of `GetContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContinuousDeploymentPolicyOutput`. + """ + return self._invoke( + input, _models.GET_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + def get_continuous_deployment_policy_config( + self, + input: GetContinuousDeploymentPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetContinuousDeploymentPolicyConfigOutput: + """ + Gets configuration information about a continuous deployment policy. + + Args: + input: + An instance of `GetContinuousDeploymentPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContinuousDeploymentPolicyConfigOutput`. + """ + return self._invoke( + input, _models.GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG, [], plugins + ) + + def get_distribution( + self, input: GetDistributionInput, plugins: list[Plugin] | None = None + ) -> GetDistributionOutput: + """ + Get the information about a distribution. + + Args: + input: + An instance of `GetDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionOutput`. + """ + return self._invoke(input, _models.GET_DISTRIBUTION, [], plugins) + + def get_distribution_config( + self, input: GetDistributionConfigInput, plugins: list[Plugin] | None = None + ) -> GetDistributionConfigOutput: + """ + Get the configuration information about a distribution. + + Args: + input: + An instance of `GetDistributionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionConfigOutput`. + """ + return self._invoke(input, _models.GET_DISTRIBUTION_CONFIG, [], plugins) + + def get_distribution_tenant( + self, input: GetDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> GetDistributionTenantOutput: + """ + Gets information about a distribution tenant. + + Args: + input: + An instance of `GetDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionTenantOutput`. + """ + return self._invoke(input, _models.GET_DISTRIBUTION_TENANT, [], plugins) + + def get_distribution_tenant_by_domain( + self, + input: GetDistributionTenantByDomainInput, + plugins: list[Plugin] | None = None, + ) -> GetDistributionTenantByDomainOutput: + """ + Gets information about a distribution tenant by the associated domain. + + Args: + input: + An instance of `GetDistributionTenantByDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDistributionTenantByDomainOutput`. + """ + return self._invoke( + input, _models.GET_DISTRIBUTION_TENANT_BY_DOMAIN, [], plugins + ) + + def get_field_level_encryption( + self, input: GetFieldLevelEncryptionInput, plugins: list[Plugin] | None = None + ) -> GetFieldLevelEncryptionOutput: + """ + Get the field-level encryption configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionOutput`. + """ + return self._invoke(input, _models.GET_FIELD_LEVEL_ENCRYPTION, [], plugins) + + def get_field_level_encryption_config( + self, + input: GetFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionConfigOutput: + """ + Get the field-level encryption configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionConfigOutput`. + """ + return self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + def get_field_level_encryption_profile( + self, + input: GetFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionProfileOutput: + """ + Get the field-level encryption profile information. + + Args: + input: + An instance of `GetFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionProfileOutput`. + """ + return self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + def get_field_level_encryption_profile_config( + self, + input: GetFieldLevelEncryptionProfileConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetFieldLevelEncryptionProfileConfigOutput: + """ + Get the field-level encryption profile configuration information. + + Args: + input: + An instance of `GetFieldLevelEncryptionProfileConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFieldLevelEncryptionProfileConfigOutput`. + """ + return self._invoke( + input, _models.GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG, [], plugins + ) + + def get_function( + self, input: GetFunctionInput, plugins: list[Plugin] | None = None + ) -> GetFunctionOutput: + """ + Gets the code of a CloudFront function. To get configuration information + and metadata about a function, use `DescribeFunction`. + + To get a function's code, you must provide the function's name and + stage. To get these values, you can use `ListFunctions`. + + Args: + input: + An instance of `GetFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFunctionOutput`. + """ + return self._invoke(input, _models.GET_FUNCTION, [], plugins) + + def get_invalidation( + self, input: GetInvalidationInput, plugins: list[Plugin] | None = None + ) -> GetInvalidationOutput: + """ + Get the information about an invalidation. + + Args: + input: + An instance of `GetInvalidationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInvalidationOutput`. + """ + return self._invoke(input, _models.GET_INVALIDATION, [], plugins) + + def get_invalidation_for_distribution_tenant( + self, + input: GetInvalidationForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> GetInvalidationForDistributionTenantOutput: + """ + Gets information about a specific invalidation for a distribution + tenant. + + Args: + input: + An instance of `GetInvalidationForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInvalidationForDistributionTenantOutput`. + """ + return self._invoke( + input, _models.GET_INVALIDATION_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + def get_key_group( + self, input: GetKeyGroupInput, plugins: list[Plugin] | None = None + ) -> GetKeyGroupOutput: + """ + Gets a key group, including the date and time when the key group was + last modified. + + To get a key group, you must provide the key group's identifier. If the + key group is referenced in a distribution's cache behavior, you can get + the key group's identifier using `ListDistributions` or + `GetDistribution`. If the key group is not referenced in a cache + behavior, you can get the identifier using `ListKeyGroups`. + + Args: + input: + An instance of `GetKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyGroupOutput`. + """ + return self._invoke(input, _models.GET_KEY_GROUP, [], plugins) + + def get_key_group_config( + self, input: GetKeyGroupConfigInput, plugins: list[Plugin] | None = None + ) -> GetKeyGroupConfigOutput: + """ + Gets a key group configuration. + + To get a key group configuration, you must provide the key group's + identifier. If the key group is referenced in a distribution's cache + behavior, you can get the key group's identifier using + `ListDistributions` or `GetDistribution`. If the key group is not + referenced in a cache behavior, you can get the identifier using + `ListKeyGroups`. + + Args: + input: + An instance of `GetKeyGroupConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyGroupConfigOutput`. + """ + return self._invoke(input, _models.GET_KEY_GROUP_CONFIG, [], plugins) + + def get_managed_certificate_details( + self, + input: GetManagedCertificateDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedCertificateDetailsOutput: + """ + Gets details about the CloudFront managed ACM certificate. + + Args: + input: + An instance of `GetManagedCertificateDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedCertificateDetailsOutput`. + """ + return self._invoke(input, _models.GET_MANAGED_CERTIFICATE_DETAILS, [], plugins) + + def get_monitoring_subscription( + self, input: GetMonitoringSubscriptionInput, plugins: list[Plugin] | None = None + ) -> GetMonitoringSubscriptionOutput: + """ + Gets information about whether additional CloudWatch metrics are enabled + for the specified CloudFront distribution. + + Args: + input: + An instance of `GetMonitoringSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetMonitoringSubscriptionOutput`. + """ + return self._invoke(input, _models.GET_MONITORING_SUBSCRIPTION, [], plugins) + + def get_origin_access_control( + self, input: GetOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> GetOriginAccessControlOutput: + """ + Gets a CloudFront origin access control, including its unique + identifier. + + Args: + input: + An instance of `GetOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginAccessControlOutput`. + """ + return self._invoke(input, _models.GET_ORIGIN_ACCESS_CONTROL, [], plugins) + + def get_origin_access_control_config( + self, + input: GetOriginAccessControlConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetOriginAccessControlConfigOutput: + """ + Gets a CloudFront origin access control configuration. + + Args: + input: + An instance of `GetOriginAccessControlConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginAccessControlConfigOutput`. + """ + return self._invoke( + input, _models.GET_ORIGIN_ACCESS_CONTROL_CONFIG, [], plugins + ) + + def get_origin_request_policy( + self, input: GetOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> GetOriginRequestPolicyOutput: + """ + Gets an origin request policy, including the following metadata: + + - The policy's identifier. + + - The date and time when the policy was last modified. + + To get an origin request policy, you must provide the policy's + identifier. If the origin request policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the origin request + policy is not attached to a cache behavior, you can get the identifier + using `ListOriginRequestPolicies`. + + Args: + input: + An instance of `GetOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginRequestPolicyOutput`. + """ + return self._invoke(input, _models.GET_ORIGIN_REQUEST_POLICY, [], plugins) + + def get_origin_request_policy_config( + self, + input: GetOriginRequestPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetOriginRequestPolicyConfigOutput: + """ + Gets an origin request policy configuration. + + To get an origin request policy configuration, you must provide the + policy's identifier. If the origin request policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the origin request + policy is not attached to a cache behavior, you can get the identifier + using `ListOriginRequestPolicies`. + + Args: + input: + An instance of `GetOriginRequestPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOriginRequestPolicyConfigOutput`. + """ + return self._invoke( + input, _models.GET_ORIGIN_REQUEST_POLICY_CONFIG, [], plugins + ) + + def get_public_key( + self, input: GetPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyOutput: + """ + Gets a public key. + + Args: + input: + An instance of `GetPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyOutput`. + """ + return self._invoke(input, _models.GET_PUBLIC_KEY, [], plugins) + + def get_public_key_config( + self, input: GetPublicKeyConfigInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyConfigOutput: + """ + Gets a public key configuration. + + Args: + input: + An instance of `GetPublicKeyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyConfigOutput`. + """ + return self._invoke(input, _models.GET_PUBLIC_KEY_CONFIG, [], plugins) + + def get_realtime_log_config( + self, + input: GetRealtimeLogConfigInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetRealtimeLogConfigOutput: + """ + Gets a real-time log configuration. + + To get a real-time log configuration, you can provide the + configuration's name or its Amazon Resource Name (ARN). You must + provide at least one. If you provide both, CloudFront uses the name to + identify the real-time log configuration to get. + + Args: + input: + An instance of `GetRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRealtimeLogConfigOutput`. + """ + return self._invoke(input, _models.GET_REALTIME_LOG_CONFIG, [], plugins) + + def get_resource_policy( + self, input: GetResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> GetResourcePolicyOutput: + """ + Retrieves the resource policy for the specified CloudFront resource that + you own and have shared. + + Args: + input: + An instance of `GetResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResourcePolicyOutput`. + """ + return self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + + def get_response_headers_policy( + self, input: GetResponseHeadersPolicyInput, plugins: list[Plugin] | None = None + ) -> GetResponseHeadersPolicyOutput: + """ + Gets a response headers policy, including metadata (the policy's + identifier and the date and time when the policy was last modified). + + To get a response headers policy, you must provide the policy's + identifier. If the response headers policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the response headers + policy is not attached to a cache behavior, you can get the identifier + using `ListResponseHeadersPolicies`. + + Args: + input: + An instance of `GetResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResponseHeadersPolicyOutput`. + """ + return self._invoke(input, _models.GET_RESPONSE_HEADERS_POLICY, [], plugins) + + def get_response_headers_policy_config( + self, + input: GetResponseHeadersPolicyConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetResponseHeadersPolicyConfigOutput: + """ + Gets a response headers policy configuration. + + To get a response headers policy configuration, you must provide the + policy's identifier. If the response headers policy is attached to a + distribution's cache behavior, you can get the policy's identifier + using `ListDistributions` or `GetDistribution`. If the response headers + policy is not attached to a cache behavior, you can get the identifier + using `ListResponseHeadersPolicies`. + + Args: + input: + An instance of `GetResponseHeadersPolicyConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResponseHeadersPolicyConfigOutput`. + """ + return self._invoke( + input, _models.GET_RESPONSE_HEADERS_POLICY_CONFIG, [], plugins + ) + + def get_streaming_distribution( + self, input: GetStreamingDistributionInput, plugins: list[Plugin] | None = None + ) -> GetStreamingDistributionOutput: + """ + Gets information about a specified RTMP distribution, including the + distribution configuration. + + Args: + input: + An instance of `GetStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStreamingDistributionOutput`. + """ + return self._invoke(input, _models.GET_STREAMING_DISTRIBUTION, [], plugins) + + def get_streaming_distribution_config( + self, + input: GetStreamingDistributionConfigInput, + plugins: list[Plugin] | None = None, + ) -> GetStreamingDistributionConfigOutput: + """ + Get the configuration information about a streaming distribution. + + Args: + input: + An instance of `GetStreamingDistributionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetStreamingDistributionConfigOutput`. + """ + return self._invoke( + input, _models.GET_STREAMING_DISTRIBUTION_CONFIG, [], plugins + ) + + def get_trust_store( + self, input: GetTrustStoreInput, plugins: list[Plugin] | None = None + ) -> GetTrustStoreOutput: + """ + Gets a trust store. + + Args: + input: + An instance of `GetTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTrustStoreOutput`. + """ + return self._invoke(input, _models.GET_TRUST_STORE, [], plugins) + + def get_vpc_origin( + self, input: GetVpcOriginInput, plugins: list[Plugin] | None = None + ) -> GetVpcOriginOutput: + """ + Get the details of an Amazon CloudFront VPC origin. + + Args: + input: + An instance of `GetVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpcOriginOutput`. + """ + return self._invoke(input, _models.GET_VPC_ORIGIN, [], plugins) + + def list_anycast_ip_lists( + self, + input: ListAnycastIpListsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListAnycastIpListsOutput: + """ + Lists your Anycast static IP lists. + + Args: + input: + An instance of `ListAnycastIpListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAnycastIpListsOutput`. + """ + return self._invoke(input, _models.LIST_ANYCAST_IP_LISTS, [], plugins) + + def list_cache_policies( + self, + input: ListCachePoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListCachePoliciesOutput: + """ + Gets a list of cache policies. + + You can optionally apply a filter to return only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListCachePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCachePoliciesOutput`. + """ + return self._invoke(input, _models.LIST_CACHE_POLICIES, [], plugins) + + def list_cloud_front_origin_access_identities( + self, + input: ListCloudFrontOriginAccessIdentitiesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListCloudFrontOriginAccessIdentitiesOutput: + """ + Lists origin access identities. + + Args: + input: + An instance of `ListCloudFrontOriginAccessIdentitiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListCloudFrontOriginAccessIdentitiesOutput`. + """ + return self._invoke( + input, _models.LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES, [], plugins + ) + + def list_conflicting_aliases( + self, input: ListConflictingAliasesInput, plugins: list[Plugin] | None = None + ) -> ListConflictingAliasesOutput: + """ + Note: + The `ListConflictingAliases` API operation only supports standard + distributions. To list domain conflicts for both standard distributions + and distribution tenants, we recommend that you use the + [ListDomainConflicts](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDomainConflicts.html) + API operation instead. + + Gets a list of aliases that conflict or overlap with the provided alias, + and the associated CloudFront standard distribution and Amazon Web + Services accounts for each conflicting alias. An alias is commonly known + as a custom domain or vanity domain. It can also be called a CNAME or + alternate domain name. + + In the returned list, the standard distribution and account IDs are + partially hidden, which allows you to identify the standard distribution + and accounts that you own, and helps to protect the information of ones + that you don't own. + + Use this operation to find aliases that are in use in CloudFront that + conflict or overlap with the provided alias. For example, if you provide + `www.example.com` as input, the returned list can include + `www.example.com` and the overlapping wildcard alternate domain name + (`*.example.com`), if they exist. If you provide `*.example.com` as + input, the returned list can include `*.example.com` and any alternate + domain names covered by that wildcard (for example, `www.example.com`, + `test.example.com`, `dev.example.com`, and so on), if they exist. + + To list conflicting aliases, specify the alias to search and the ID of a + standard distribution in your account that has an attached TLS + certificate that includes the provided alias. For more information, + including how to set up the standard distribution and certificate, see + [Moving an alternate domain name to a different standard distribution or + distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListConflictingAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConflictingAliasesOutput`. + """ + return self._invoke(input, _models.LIST_CONFLICTING_ALIASES, [], plugins) + + def list_connection_functions( + self, + input: ListConnectionFunctionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListConnectionFunctionsOutput: + """ + Lists connection functions. + + Args: + input: + An instance of `ListConnectionFunctionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConnectionFunctionsOutput`. + """ + return self._invoke(input, _models.LIST_CONNECTION_FUNCTIONS, [], plugins) + + def list_connection_groups( + self, + input: ListConnectionGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListConnectionGroupsOutput: + """ + Lists the connection groups in your Amazon Web Services account. + + Args: + input: + An instance of `ListConnectionGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListConnectionGroupsOutput`. + """ + return self._invoke(input, _models.LIST_CONNECTION_GROUPS, [], plugins) + + def list_continuous_deployment_policies( + self, + input: ListContinuousDeploymentPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListContinuousDeploymentPoliciesOutput: + """ + Gets a list of the continuous deployment policies in your Amazon Web + Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListContinuousDeploymentPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListContinuousDeploymentPoliciesOutput`. + """ + return self._invoke( + input, _models.LIST_CONTINUOUS_DEPLOYMENT_POLICIES, [], plugins + ) + + def list_distributions( + self, + input: ListDistributionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsOutput: + """ + List CloudFront distributions. + + Args: + input: + An instance of `ListDistributionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsOutput`. + """ + return self._invoke(input, _models.LIST_DISTRIBUTIONS, [], plugins) + + def list_distributions_by_anycast_ip_list_id( + self, + input: ListDistributionsByAnycastIpListIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByAnycastIpListIdOutput: + """ + Lists the distributions in your account that are associated with the + specified `AnycastIpListId`. + + Args: + input: + An instance of `ListDistributionsByAnycastIpListIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByAnycastIpListIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID, [], plugins + ) + + def list_distributions_by_cache_policy_id( + self, + input: ListDistributionsByCachePolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByCachePolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified cache policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByCachePolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByCachePolicyIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID, [], plugins + ) + + def list_distributions_by_connection_function( + self, + input: ListDistributionsByConnectionFunctionInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByConnectionFunctionOutput: + """ + Lists distributions by connection function. + + Args: + input: + An instance of `ListDistributionsByConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByConnectionFunctionOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION, [], plugins + ) + + def list_distributions_by_connection_mode( + self, + input: ListDistributionsByConnectionModeInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByConnectionModeOutput: + """ + Lists the distributions by the connection mode that you specify. + + Args: + input: + An instance of `ListDistributionsByConnectionModeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByConnectionModeOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_CONNECTION_MODE, [], plugins + ) + + def list_distributions_by_key_group( + self, + input: ListDistributionsByKeyGroupInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByKeyGroupOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that references the specified key group. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByKeyGroupOutput`. + """ + return self._invoke(input, _models.LIST_DISTRIBUTIONS_BY_KEY_GROUP, [], plugins) + + def list_distributions_by_origin_request_policy_id( + self, + input: ListDistributionsByOriginRequestPolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByOriginRequestPolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified origin request policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByOriginRequestPolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByOriginRequestPolicyIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID, [], plugins + ) + + def list_distributions_by_owned_resource( + self, + input: ListDistributionsByOwnedResourceInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByOwnedResourceOutput: + """ + Lists the CloudFront distributions that are associated with the + specified resource that you own. + + Args: + input: + An instance of `ListDistributionsByOwnedResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByOwnedResourceOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE, [], plugins + ) + + def list_distributions_by_realtime_log_config( + self, + input: ListDistributionsByRealtimeLogConfigInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByRealtimeLogConfigOutput: + """ + Gets a list of distributions that have a cache behavior that's + associated with the specified real-time log configuration. + + You can specify the real-time log configuration by its name or its + Amazon Resource Name (ARN). You must provide at least one. If you + provide both, CloudFront uses the name to identify the real-time log + configuration to list distributions for. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByRealtimeLogConfigOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG, [], plugins + ) + + def list_distributions_by_response_headers_policy_id( + self, + input: ListDistributionsByResponseHeadersPolicyIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByResponseHeadersPolicyIdOutput: + """ + Gets a list of distribution IDs for distributions that have a cache + behavior that's associated with the specified response headers policy. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDistributionsByResponseHeadersPolicyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByResponseHeadersPolicyIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID, [], plugins + ) + + def list_distributions_by_trust_store( + self, + input: ListDistributionsByTrustStoreInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByTrustStoreOutput: + """ + Lists distributions by trust store. + + Args: + input: + An instance of `ListDistributionsByTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByTrustStoreOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_TRUST_STORE, [], plugins + ) + + def list_distributions_by_vpc_origin_id( + self, + input: ListDistributionsByVpcOriginIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByVpcOriginIdOutput: + """ + List CloudFront distributions by their VPC origin ID. + + Args: + input: + An instance of `ListDistributionsByVpcOriginIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByVpcOriginIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID, [], plugins + ) + + def list_distributions_by_web_acl_id( + self, + input: ListDistributionsByWebACLIdInput, + plugins: list[Plugin] | None = None, + ) -> ListDistributionsByWebACLIdOutput: + """ + List the distributions that are associated with a specified WAF web ACL. + + Args: + input: + An instance of `ListDistributionsByWebACLIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionsByWebACLIdOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTIONS_BY_WEB_ACL_ID, [], plugins + ) + + def list_distribution_tenants( + self, + input: ListDistributionTenantsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDistributionTenantsOutput: + """ + Lists the distribution tenants in your Amazon Web Services account. + + Args: + input: + An instance of `ListDistributionTenantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionTenantsOutput`. + """ + return self._invoke(input, _models.LIST_DISTRIBUTION_TENANTS, [], plugins) + + def list_distribution_tenants_by_customization( + self, + input: ListDistributionTenantsByCustomizationInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDistributionTenantsByCustomizationOutput: + """ + Lists distribution tenants by the customization that you specify. + + You must specify either the `CertificateArn` parameter or `WebACLArn` + parameter, but not both in the same request. + + Args: + input: + An instance of `ListDistributionTenantsByCustomizationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDistributionTenantsByCustomizationOutput`. + """ + return self._invoke( + input, _models.LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION, [], plugins + ) + + def list_domain_conflicts( + self, input: ListDomainConflictsInput, plugins: list[Plugin] | None = None + ) -> ListDomainConflictsOutput: + """ + Note: + We recommend that you use the `ListDomainConflicts` API operation to + check for domain conflicts, as it supports both standard distributions + and distribution tenants. + [ListConflictingAliases](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConflictingAliases.html) + performs similar checks but only supports standard distributions. + + Lists existing domain associations that conflict with the domain that + you specify. + + You can use this API operation to identify potential domain conflicts + when moving domains between standard distributions and/or distribution + tenants. Domain conflicts must be resolved first before they can be + moved. + + For example, if you provide `www.example.com` as input, the returned + list can include `www.example.com` and the overlapping wildcard + alternate domain name (`*.example.com`), if they exist. If you provide + `*.example.com` as input, the returned list can include `*.example.com` + and any alternate domain names covered by that wildcard (for example, + `www.example.com`, `test.example.com`, `dev.example.com`, and so on), if + they exist. + + To list conflicting domains, specify the following: + + - The domain to search for + + - The ID of a standard distribution or distribution tenant in your + account that has an attached TLS certificate, which covers the + specified domain + + For more information, including how to set up the standard distribution + or distribution tenant, and the certificate, see [Moving an alternate + domain name to a different standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListDomainConflictsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDomainConflictsOutput`. + """ + return self._invoke(input, _models.LIST_DOMAIN_CONFLICTS, [], plugins) + + def list_field_level_encryption_configs( + self, + input: ListFieldLevelEncryptionConfigsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListFieldLevelEncryptionConfigsOutput: + """ + List all field-level encryption configurations that have been created in + CloudFront for this account. + + Args: + input: + An instance of `ListFieldLevelEncryptionConfigsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFieldLevelEncryptionConfigsOutput`. + """ + return self._invoke( + input, _models.LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS, [], plugins + ) + + def list_field_level_encryption_profiles( + self, + input: ListFieldLevelEncryptionProfilesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListFieldLevelEncryptionProfilesOutput: + """ + Request a list of field-level encryption profiles that have been created + in CloudFront for this account. + + Args: + input: + An instance of `ListFieldLevelEncryptionProfilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFieldLevelEncryptionProfilesOutput`. + """ + return self._invoke( + input, _models.LIST_FIELD_LEVEL_ENCRYPTION_PROFILES, [], plugins + ) + + def list_functions( + self, + input: ListFunctionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListFunctionsOutput: + """ + Gets a list of all CloudFront functions in your Amazon Web Services + account. + + You can optionally apply a filter to return only the functions that are + in the specified stage, either `DEVELOPMENT` or `LIVE`. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListFunctionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListFunctionsOutput`. + """ + return self._invoke(input, _models.LIST_FUNCTIONS, [], plugins) + + def list_invalidations( + self, input: ListInvalidationsInput, plugins: list[Plugin] | None = None + ) -> ListInvalidationsOutput: + """ + Lists invalidation batches. + + Args: + input: + An instance of `ListInvalidationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInvalidationsOutput`. + """ + return self._invoke(input, _models.LIST_INVALIDATIONS, [], plugins) + + def list_invalidations_for_distribution_tenant( + self, + input: ListInvalidationsForDistributionTenantInput, + plugins: list[Plugin] | None = None, + ) -> ListInvalidationsForDistributionTenantOutput: + """ + Lists the invalidations for a distribution tenant. + + Args: + input: + An instance of `ListInvalidationsForDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInvalidationsForDistributionTenantOutput`. + """ + return self._invoke( + input, _models.LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT, [], plugins + ) + + def list_key_groups( + self, + input: ListKeyGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListKeyGroupsOutput: + """ + Gets a list of key groups. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListKeyGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyGroupsOutput`. + """ + return self._invoke(input, _models.LIST_KEY_GROUPS, [], plugins) + + def list_key_value_stores( + self, + input: ListKeyValueStoresInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListKeyValueStoresOutput: + """ + Specifies the key value stores to list. + + Args: + input: + An instance of `ListKeyValueStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyValueStoresOutput`. + """ + return self._invoke(input, _models.LIST_KEY_VALUE_STORES, [], plugins) + + def list_origin_access_controls( + self, + input: ListOriginAccessControlsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListOriginAccessControlsOutput: + """ + Gets the list of CloudFront origin access controls (OACs) in this Amazon + Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send another request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the next request. + + Note: + If you're not using origin access controls for your Amazon Web Services + account, the `ListOriginAccessControls` operation doesn't return the + `Items` element in the response. + + Args: + input: + An instance of `ListOriginAccessControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOriginAccessControlsOutput`. + """ + return self._invoke(input, _models.LIST_ORIGIN_ACCESS_CONTROLS, [], plugins) + + def list_origin_request_policies( + self, + input: ListOriginRequestPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListOriginRequestPoliciesOutput: + """ + Gets a list of origin request policies. + + You can optionally apply a filter to return only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListOriginRequestPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOriginRequestPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_ORIGIN_REQUEST_POLICIES, [], plugins) + + def list_public_keys( + self, + input: ListPublicKeysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListPublicKeysOutput: + """ + List all public keys that have been added to CloudFront for this + account. + + Args: + input: + An instance of `ListPublicKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPublicKeysOutput`. + """ + return self._invoke(input, _models.LIST_PUBLIC_KEYS, [], plugins) + + def list_realtime_log_configs( + self, + input: ListRealtimeLogConfigsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListRealtimeLogConfigsOutput: + """ + Gets a list of real-time log configurations. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListRealtimeLogConfigsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRealtimeLogConfigsOutput`. + """ + return self._invoke(input, _models.LIST_REALTIME_LOG_CONFIGS, [], plugins) + + def list_response_headers_policies( + self, + input: ListResponseHeadersPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListResponseHeadersPoliciesOutput: + """ + Gets a list of response headers policies. + + You can optionally apply a filter to get only the managed policies + created by Amazon Web Services, or only the custom policies created in + your Amazon Web Services account. + + You can optionally specify the maximum number of items to receive in the + response. If the total number of items in the list exceeds the maximum + that you specify, or the default maximum, the response is paginated. To + get the next page of items, send a subsequent request that specifies the + `NextMarker` value from the current response as the `Marker` value in + the subsequent request. + + Args: + input: + An instance of `ListResponseHeadersPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResponseHeadersPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_RESPONSE_HEADERS_POLICIES, [], plugins) + + def list_streaming_distributions( + self, + input: ListStreamingDistributionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListStreamingDistributionsOutput: + """ + List streaming distributions. + + Args: + input: + An instance of `ListStreamingDistributionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamingDistributionsOutput`. + """ + return self._invoke(input, _models.LIST_STREAMING_DISTRIBUTIONS, [], plugins) + + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List tags for a CloudFront resource. For more information, see [Tagging + a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + def list_trust_stores( + self, + input: ListTrustStoresInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTrustStoresOutput: + """ + Lists trust stores. + + Args: + input: + An instance of `ListTrustStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTrustStoresOutput`. + """ + return self._invoke(input, _models.LIST_TRUST_STORES, [], plugins) + + def list_vpc_origins( + self, + input: ListVpcOriginsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListVpcOriginsOutput: + """ + List the CloudFront VPC origins in your account. + + Args: + input: + An instance of `ListVpcOriginsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVpcOriginsOutput`. + """ + return self._invoke(input, _models.LIST_VPC_ORIGINS, [], plugins) + + def publish_connection_function( + self, input: PublishConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> PublishConnectionFunctionOutput: + """ + Publishes a connection function. + + Args: + input: + An instance of `PublishConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishConnectionFunctionOutput`. + """ + return self._invoke(input, _models.PUBLISH_CONNECTION_FUNCTION, [], plugins) + + def publish_function( + self, input: PublishFunctionInput, plugins: list[Plugin] | None = None + ) -> PublishFunctionOutput: + """ + Publishes a CloudFront function by copying the function code from the + `DEVELOPMENT` stage to `LIVE`. This automatically updates all cache + behaviors that are using this function to use the newly published copy + in the `LIVE` stage. + + When a function is published to the `LIVE` stage, you can attach the + function to a distribution's cache behavior, using the function's + Amazon Resource Name (ARN). + + To publish a function, you must provide the function's name and version + (`ETag` value). To get these values, you can use `ListFunctions` and + `DescribeFunction`. + + Args: + input: + An instance of `PublishFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PublishFunctionOutput`. + """ + return self._invoke(input, _models.PUBLISH_FUNCTION, [], plugins) + + def put_resource_policy( + self, input: PutResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> PutResourcePolicyOutput: + """ + Creates a resource control policy for a given CloudFront resource. + + Args: + input: + An instance of `PutResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutResourcePolicyOutput`. + """ + return self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Add tags to a CloudFront resource. For more information, see [Tagging a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def test_connection_function( + self, input: TestConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> TestConnectionFunctionOutput: + """ + Tests a connection function. + + Args: + input: + An instance of `TestConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestConnectionFunctionOutput`. + """ + return self._invoke(input, _models.TEST_CONNECTION_FUNCTION, [], plugins) + + def test_function( + self, input: TestFunctionInput, plugins: list[Plugin] | None = None + ) -> TestFunctionOutput: + """ + Tests a CloudFront function. + + To test a function, you provide an *event object* that represents an + HTTP request or response that your CloudFront distribution could receive + in production. CloudFront runs the function, passing it the event object + that you provided, and returns the function's result (the modified + event object) in the response. The response also contains function logs + and error messages, if any exist. For more information about testing + functions, see [Testing + functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function) + in the *Amazon CloudFront Developer Guide*. + + To test a function, you provide the function's name and version (`ETag` + value) along with the event object. To get the function's name and + version, you can use `ListFunctions` and `DescribeFunction`. + + Args: + input: + An instance of `TestFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TestFunctionOutput`. + """ + return self._invoke(input, _models.TEST_FUNCTION, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Remove tags from a CloudFront resource. For more information, see + [Tagging a + distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/tagging.html) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + def update_anycast_ip_list( + self, input: UpdateAnycastIpListInput, plugins: list[Plugin] | None = None + ) -> UpdateAnycastIpListOutput: + """ + Updates an Anycast static IP list. + + Args: + input: + An instance of `UpdateAnycastIpListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAnycastIpListOutput`. + """ + return self._invoke(input, _models.UPDATE_ANYCAST_IP_LIST, [], plugins) + + def update_cache_policy( + self, input: UpdateCachePolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateCachePolicyOutput: + """ + Updates a cache policy configuration. + + When you update a cache policy configuration, all the fields are updated + with the values provided in the request. You cannot update some fields + independent of others. To update a cache policy configuration: + + 1. Use `GetCachePolicyConfig` to get the current configuration. + + 2. Locally modify the fields in the cache policy configuration that you + want to update. + + 3. Call `UpdateCachePolicy` by providing the entire cache policy + configuration, including the fields that you modified and those that + you didn't. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content for + at least the duration specified in the cache policy's minimum TTL, even + if the `Cache-Control: no-cache`, `no-store`, or `private` directives + are present in the origin headers. + + Args: + input: + An instance of `UpdateCachePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCachePolicyOutput`. + """ + return self._invoke(input, _models.UPDATE_CACHE_POLICY, [], plugins) + + def update_cloud_front_origin_access_identity( + self, + input: UpdateCloudFrontOriginAccessIdentityInput, + plugins: list[Plugin] | None = None, + ) -> UpdateCloudFrontOriginAccessIdentityOutput: + """ + Update an origin access identity. + + Args: + input: + An instance of `UpdateCloudFrontOriginAccessIdentityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCloudFrontOriginAccessIdentityOutput`. + """ + return self._invoke( + input, _models.UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY, [], plugins + ) + + def update_connection_function( + self, input: UpdateConnectionFunctionInput, plugins: list[Plugin] | None = None + ) -> UpdateConnectionFunctionOutput: + """ + Updates a connection function. + + Args: + input: + An instance of `UpdateConnectionFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateConnectionFunctionOutput`. + """ + return self._invoke(input, _models.UPDATE_CONNECTION_FUNCTION, [], plugins) + + def update_connection_group( + self, input: UpdateConnectionGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateConnectionGroupOutput: + """ + Updates a connection group. + + Args: + input: + An instance of `UpdateConnectionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateConnectionGroupOutput`. + """ + return self._invoke(input, _models.UPDATE_CONNECTION_GROUP, [], plugins) + + def update_continuous_deployment_policy( + self, + input: UpdateContinuousDeploymentPolicyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateContinuousDeploymentPolicyOutput: + """ + Updates a continuous deployment policy. You can update a continuous + deployment policy to enable or disable it, to change the percentage of + traffic that it sends to the staging distribution, or to change the + staging distribution that it sends traffic to. + + When you update a continuous deployment policy configuration, all the + fields are updated with the values that are provided in the request. You + cannot update some fields independent of others. To update a continuous + deployment policy configuration: + + 1. Use `GetContinuousDeploymentPolicyConfig` to get the current + configuration. + + 2. Locally modify the fields in the continuous deployment policy + configuration that you want to update. + + 3. Use `UpdateContinuousDeploymentPolicy`, providing the entire + continuous deployment policy configuration, including the fields + that you modified and those that you didn't. + + Args: + input: + An instance of `UpdateContinuousDeploymentPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContinuousDeploymentPolicyOutput`. + """ + return self._invoke( + input, _models.UPDATE_CONTINUOUS_DEPLOYMENT_POLICY, [], plugins + ) + + def update_distribution( + self, input: UpdateDistributionInput, plugins: list[Plugin] | None = None + ) -> UpdateDistributionOutput: + """ + Updates the configuration for a CloudFront distribution. + + The update process includes getting the current distribution + configuration, updating it to make your changes, and then submitting an + `UpdateDistribution` request to make the updates. + + **To update a web distribution using the CloudFront API** + + 1. Use `GetDistributionConfig` to get the current configuration, + including the version identifier (`ETag`). + + 2. Update the distribution configuration that was returned in the + response. Note the following important requirements and + restrictions: + + - You must copy the `ETag` field value from the response. (You'll + use it for the `IfMatch` parameter in your request.) Then, remove + the `ETag` field from the distribution configuration. + + - You can't change the value of `CallerReference`. + + 3. Submit an `UpdateDistribution` request, providing the updated + distribution configuration. The new configuration replaces the + existing configuration. The values that you specify in an + `UpdateDistribution` request are not merged into your existing + configuration. Make sure to include all fields: the ones that you + modified and also the ones that you didn't. + + Args: + input: + An instance of `UpdateDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionOutput`. + """ + return self._invoke(input, _models.UPDATE_DISTRIBUTION, [], plugins) + + def update_distribution_tenant( + self, input: UpdateDistributionTenantInput, plugins: list[Plugin] | None = None + ) -> UpdateDistributionTenantOutput: + """ + Updates a distribution tenant. + + Args: + input: + An instance of `UpdateDistributionTenantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionTenantOutput`. + """ + return self._invoke(input, _models.UPDATE_DISTRIBUTION_TENANT, [], plugins) + + def update_distribution_with_staging_config( + self, + input: UpdateDistributionWithStagingConfigInput, + plugins: list[Plugin] | None = None, + ) -> UpdateDistributionWithStagingConfigOutput: + """ + Copies the staging distribution's configuration to its corresponding + primary distribution. The primary distribution retains its `Aliases` + (also known as alternate domain names or CNAMEs) and + `ContinuousDeploymentPolicyId` value, but otherwise its configuration is + overwritten to match the staging distribution. + + You can use this operation in a continuous deployment workflow after you + have tested configuration changes on the staging distribution. After + using a continuous deployment policy to move a portion of your domain + name's traffic to the staging distribution and verifying that it works + as intended, you can use this operation to copy the staging + distribution's configuration to the primary distribution. This action + will disable the continuous deployment policy and move your domain's + traffic back to the primary distribution. + + This API operation requires the following IAM permissions: + + - [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html) + + - [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) + + Args: + input: + An instance of `UpdateDistributionWithStagingConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDistributionWithStagingConfigOutput`. + """ + return self._invoke( + input, _models.UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG, [], plugins + ) + + def update_domain_association( + self, input: UpdateDomainAssociationInput, plugins: list[Plugin] | None = None + ) -> UpdateDomainAssociationOutput: + """ + Note: + We recommend that you use the `UpdateDomainAssociation` API operation to + move a domain association, as it supports both standard distributions + and distribution tenants. + [AssociateAlias](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_AssociateAlias.html) + performs similar checks but only supports standard distributions. + + Moves a domain from its current standard distribution or distribution + tenant to another one. + + You must first disable the source distribution (standard distribution or + distribution tenant) and then separately call this operation to move the + domain to another target distribution (standard distribution or + distribution tenant). + + To use this operation, specify the domain and the ID of the target + resource (standard distribution or distribution tenant). For more + information, including how to set up the target resource, prerequisites + that you must complete, and other restrictions, see [Moving an alternate + domain name to a different standard distribution or distribution + tenant](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move) + in the *Amazon CloudFront Developer Guide*. + + Args: + input: + An instance of `UpdateDomainAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDomainAssociationOutput`. + """ + return self._invoke(input, _models.UPDATE_DOMAIN_ASSOCIATION, [], plugins) + + def update_field_level_encryption_config( + self, + input: UpdateFieldLevelEncryptionConfigInput, + plugins: list[Plugin] | None = None, + ) -> UpdateFieldLevelEncryptionConfigOutput: + """ + Update a field-level encryption configuration. + + Args: + input: + An instance of `UpdateFieldLevelEncryptionConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFieldLevelEncryptionConfigOutput`. + """ + return self._invoke( + input, _models.UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG, [], plugins + ) + + def update_field_level_encryption_profile( + self, + input: UpdateFieldLevelEncryptionProfileInput, + plugins: list[Plugin] | None = None, + ) -> UpdateFieldLevelEncryptionProfileOutput: + """ + Update a field-level encryption profile. + + Args: + input: + An instance of `UpdateFieldLevelEncryptionProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFieldLevelEncryptionProfileOutput`. + """ + return self._invoke( + input, _models.UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE, [], plugins + ) + + def update_function( + self, input: UpdateFunctionInput, plugins: list[Plugin] | None = None + ) -> UpdateFunctionOutput: + """ + Updates a CloudFront function. + + You can update a function's code or the comment that describes the + function. You cannot update a function's name. + + To update a function, you provide the function's name and version + (`ETag` value) along with the updated function code. To get the name and + version, you can use `ListFunctions` and `DescribeFunction`. + + Args: + input: + An instance of `UpdateFunctionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateFunctionOutput`. + """ + return self._invoke(input, _models.UPDATE_FUNCTION, [], plugins) + + def update_key_group( + self, input: UpdateKeyGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyGroupOutput: + """ + Updates a key group. + + When you update a key group, all the fields are updated with the values + provided in the request. You cannot update some fields independent of + others. To update a key group: + + 1. Get the current key group with `GetKeyGroup` or `GetKeyGroupConfig`. + + 2. Locally modify the fields in the key group that you want to update. + For example, add or remove public key IDs. + + 3. Call `UpdateKeyGroup` with the entire key group object, including + the fields that you modified and those that you didn't. + + Args: + input: + An instance of `UpdateKeyGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyGroupOutput`. + """ + return self._invoke(input, _models.UPDATE_KEY_GROUP, [], plugins) + + def update_key_value_store( + self, input: UpdateKeyValueStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyValueStoreOutput: + """ + Specifies the key value store to update. + + Args: + input: + An instance of `UpdateKeyValueStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyValueStoreOutput`. + """ + return self._invoke(input, _models.UPDATE_KEY_VALUE_STORE, [], plugins) + + def update_origin_access_control( + self, input: UpdateOriginAccessControlInput, plugins: list[Plugin] | None = None + ) -> UpdateOriginAccessControlOutput: + """ + Updates a CloudFront origin access control. + + Args: + input: + An instance of `UpdateOriginAccessControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOriginAccessControlOutput`. + """ + return self._invoke(input, _models.UPDATE_ORIGIN_ACCESS_CONTROL, [], plugins) + + def update_origin_request_policy( + self, input: UpdateOriginRequestPolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateOriginRequestPolicyOutput: + """ + Updates an origin request policy configuration. + + When you update an origin request policy configuration, all the fields + are updated with the values provided in the request. You cannot update + some fields independent of others. To update an origin request policy + configuration: + + 1. Use `GetOriginRequestPolicyConfig` to get the current configuration. + + 2. Locally modify the fields in the origin request policy configuration + that you want to update. + + 3. Call `UpdateOriginRequestPolicy` by providing the entire origin + request policy configuration, including the fields that you modified + and those that you didn't. + + Args: + input: + An instance of `UpdateOriginRequestPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOriginRequestPolicyOutput`. + """ + return self._invoke(input, _models.UPDATE_ORIGIN_REQUEST_POLICY, [], plugins) + + def update_public_key( + self, input: UpdatePublicKeyInput, plugins: list[Plugin] | None = None + ) -> UpdatePublicKeyOutput: + """ + Update public key information. Note that the only value you can change + is the comment. + + Args: + input: + An instance of `UpdatePublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdatePublicKeyOutput`. + """ + return self._invoke(input, _models.UPDATE_PUBLIC_KEY, [], plugins) + + def update_realtime_log_config( + self, + input: UpdateRealtimeLogConfigInput | None = None, + plugins: list[Plugin] | None = None, + ) -> UpdateRealtimeLogConfigOutput: + """ + Updates a real-time log configuration. + + When you update a real-time log configuration, all the parameters are + updated with the values provided in the request. You cannot update some + parameters independent of others. To update a real-time log + configuration: + + 1. Call `GetRealtimeLogConfig` to get the current real-time log + configuration. + + 2. Locally modify the parameters in the real-time log configuration + that you want to update. + + 3. Call this API (`UpdateRealtimeLogConfig`) by providing the entire + real-time log configuration, including the parameters that you + modified and those that you didn't. + + You cannot update a real-time log configuration's `Name` or `ARN`. + + Args: + input: + An instance of `UpdateRealtimeLogConfigInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRealtimeLogConfigOutput`. + """ + return self._invoke(input, _models.UPDATE_REALTIME_LOG_CONFIG, [], plugins) + + def update_response_headers_policy( + self, + input: UpdateResponseHeadersPolicyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateResponseHeadersPolicyOutput: + """ + Updates a response headers policy. + + When you update a response headers policy, the entire policy is + replaced. You cannot update some policy fields independent of others. To + update a response headers policy configuration: + + 1. Use `GetResponseHeadersPolicyConfig` to get the current policy's + configuration. + + 2. Modify the fields in the response headers policy configuration that + you want to update. + + 3. Call `UpdateResponseHeadersPolicy`, providing the entire response + headers policy configuration, including the fields that you modified + and those that you didn't. + + Args: + input: + An instance of `UpdateResponseHeadersPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateResponseHeadersPolicyOutput`. + """ + return self._invoke(input, _models.UPDATE_RESPONSE_HEADERS_POLICY, [], plugins) + + def update_streaming_distribution( + self, + input: UpdateStreamingDistributionInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamingDistributionOutput: + """ + Update a streaming distribution. + + Args: + input: + An instance of `UpdateStreamingDistributionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamingDistributionOutput`. + """ + return self._invoke(input, _models.UPDATE_STREAMING_DISTRIBUTION, [], plugins) + + def update_trust_store( + self, input: UpdateTrustStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateTrustStoreOutput: + """ + Updates a trust store. + + Args: + input: + An instance of `UpdateTrustStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTrustStoreOutput`. + """ + return self._invoke(input, _models.UPDATE_TRUST_STORE, [], plugins) + + def update_vpc_origin( + self, input: UpdateVpcOriginInput, plugins: list[Plugin] | None = None + ) -> UpdateVpcOriginOutput: + """ + Update an Amazon CloudFront VPC origin in your account. + + Args: + input: + An instance of `UpdateVpcOriginInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateVpcOriginOutput`. + """ + return self._invoke(input, _models.UPDATE_VPC_ORIGIN, [], plugins) + + def verify_dns_configuration( + self, input: VerifyDnsConfigurationInput, plugins: list[Plugin] | None = None + ) -> VerifyDnsConfigurationOutput: + """ + Verify the DNS configuration for your domain names. This API operation + checks whether your domain name points to the correct routing endpoint + of the connection group, such as d111111abcdef8.cloudfront.net. You can + use this API operation to troubleshoot and resolve DNS configuration + issues. + + Args: + input: + An instance of `VerifyDnsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyDnsConfigurationOutput`. + """ + return self._invoke(input, _models.VERIFY_DNS_CONFIGURATION, [], plugins) + + def _new_config(self) -> CloudFrontConfig: + return CloudFrontConfig.resolve() + + def _post_setup(self, config: CloudFrontConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/config.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/config.py new file mode 100644 index 00000000..e4abacff --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/config.py @@ -0,0 +1,1094 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import RestXmlClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import CLOUDFRONT2020_05_31 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AssociateAliasInput, + AssociateAliasOutput, + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + CopyDistributionInput, + CopyDistributionOutput, + CreateAnycastIpListInput, + CreateAnycastIpListOutput, + CreateCachePolicyInput, + CreateCachePolicyOutput, + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + CreateConnectionFunctionInput, + CreateConnectionFunctionOutput, + CreateConnectionGroupInput, + CreateConnectionGroupOutput, + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + CreateDistributionInput, + CreateDistributionOutput, + CreateDistributionTenantInput, + CreateDistributionTenantOutput, + CreateDistributionWithTagsInput, + CreateDistributionWithTagsOutput, + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + CreateFunctionInput, + CreateFunctionOutput, + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + CreateInvalidationInput, + CreateInvalidationOutput, + CreateKeyGroupInput, + CreateKeyGroupOutput, + CreateKeyValueStoreInput, + CreateKeyValueStoreOutput, + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + CreateOriginAccessControlInput, + CreateOriginAccessControlOutput, + CreateOriginRequestPolicyInput, + CreateOriginRequestPolicyOutput, + CreatePublicKeyInput, + CreatePublicKeyOutput, + CreateRealtimeLogConfigInput, + CreateRealtimeLogConfigOutput, + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + CreateTrustStoreInput, + CreateTrustStoreOutput, + CreateVpcOriginInput, + CreateVpcOriginOutput, + DeleteAnycastIpListInput, + DeleteAnycastIpListOutput, + DeleteCachePolicyInput, + DeleteCachePolicyOutput, + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + DeleteConnectionFunctionInput, + DeleteConnectionFunctionOutput, + DeleteConnectionGroupInput, + DeleteConnectionGroupOutput, + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + DeleteDistributionInput, + DeleteDistributionOutput, + DeleteDistributionTenantInput, + DeleteDistributionTenantOutput, + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + DeleteFunctionInput, + DeleteFunctionOutput, + DeleteKeyGroupInput, + DeleteKeyGroupOutput, + DeleteKeyValueStoreInput, + DeleteKeyValueStoreOutput, + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + DeleteOriginAccessControlInput, + DeleteOriginAccessControlOutput, + DeleteOriginRequestPolicyInput, + DeleteOriginRequestPolicyOutput, + DeletePublicKeyInput, + DeletePublicKeyOutput, + DeleteRealtimeLogConfigInput, + DeleteRealtimeLogConfigOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + DeleteTrustStoreInput, + DeleteTrustStoreOutput, + DeleteVpcOriginInput, + DeleteVpcOriginOutput, + DescribeConnectionFunctionInput, + DescribeConnectionFunctionOutput, + DescribeFunctionInput, + DescribeFunctionOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + GetAnycastIpListInput, + GetAnycastIpListOutput, + GetCachePolicyConfigInput, + GetCachePolicyConfigOutput, + GetCachePolicyInput, + GetCachePolicyOutput, + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + GetConnectionFunctionInput, + GetConnectionFunctionOutput, + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + GetConnectionGroupInput, + GetConnectionGroupOutput, + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + GetDistributionConfigInput, + GetDistributionConfigOutput, + GetDistributionInput, + GetDistributionOutput, + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + GetDistributionTenantInput, + GetDistributionTenantOutput, + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + GetFieldLevelEncryptionInput, + GetFieldLevelEncryptionOutput, + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + GetFunctionInput, + GetFunctionOutput, + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + GetInvalidationInput, + GetInvalidationOutput, + GetKeyGroupConfigInput, + GetKeyGroupConfigOutput, + GetKeyGroupInput, + GetKeyGroupOutput, + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + GetMonitoringSubscriptionInput, + GetMonitoringSubscriptionOutput, + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + GetOriginAccessControlInput, + GetOriginAccessControlOutput, + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + GetOriginRequestPolicyInput, + GetOriginRequestPolicyOutput, + GetPublicKeyConfigInput, + GetPublicKeyConfigOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GetRealtimeLogConfigInput, + GetRealtimeLogConfigOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + GetResponseHeadersPolicyInput, + GetResponseHeadersPolicyOutput, + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + GetStreamingDistributionInput, + GetStreamingDistributionOutput, + GetTrustStoreInput, + GetTrustStoreOutput, + GetVpcOriginInput, + GetVpcOriginOutput, + ListAnycastIpListsInput, + ListAnycastIpListsOutput, + ListCachePoliciesInput, + ListCachePoliciesOutput, + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + ListConflictingAliasesInput, + ListConflictingAliasesOutput, + ListConnectionFunctionsInput, + ListConnectionFunctionsOutput, + ListConnectionGroupsInput, + ListConnectionGroupsOutput, + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + ListDistributionTenantsInput, + ListDistributionTenantsOutput, + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + ListDistributionsInput, + ListDistributionsOutput, + ListDomainConflictsInput, + ListDomainConflictsOutput, + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + ListFunctionsInput, + ListFunctionsOutput, + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + ListInvalidationsInput, + ListInvalidationsOutput, + ListKeyGroupsInput, + ListKeyGroupsOutput, + ListKeyValueStoresInput, + ListKeyValueStoresOutput, + ListOriginAccessControlsInput, + ListOriginAccessControlsOutput, + ListOriginRequestPoliciesInput, + ListOriginRequestPoliciesOutput, + ListPublicKeysInput, + ListPublicKeysOutput, + ListRealtimeLogConfigsInput, + ListRealtimeLogConfigsOutput, + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + ListStreamingDistributionsInput, + ListStreamingDistributionsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTrustStoresInput, + ListTrustStoresOutput, + ListVpcOriginsInput, + ListVpcOriginsOutput, + PublishConnectionFunctionInput, + PublishConnectionFunctionOutput, + PublishFunctionInput, + PublishFunctionOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + TagResourceInput, + TagResourceOutput, + TestConnectionFunctionInput, + TestConnectionFunctionOutput, + TestFunctionInput, + TestFunctionOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAnycastIpListInput, + UpdateAnycastIpListOutput, + UpdateCachePolicyInput, + UpdateCachePolicyOutput, + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + UpdateConnectionFunctionInput, + UpdateConnectionFunctionOutput, + UpdateConnectionGroupInput, + UpdateConnectionGroupOutput, + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + UpdateDistributionInput, + UpdateDistributionOutput, + UpdateDistributionTenantInput, + UpdateDistributionTenantOutput, + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + UpdateDomainAssociationInput, + UpdateDomainAssociationOutput, + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + UpdateFunctionInput, + UpdateFunctionOutput, + UpdateKeyGroupInput, + UpdateKeyGroupOutput, + UpdateKeyValueStoreInput, + UpdateKeyValueStoreOutput, + UpdateOriginAccessControlInput, + UpdateOriginAccessControlOutput, + UpdateOriginRequestPolicyInput, + UpdateOriginRequestPolicyOutput, + UpdatePublicKeyInput, + UpdatePublicKeyOutput, + UpdateRealtimeLogConfigInput, + UpdateRealtimeLogConfigOutput, + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + UpdateTrustStoreInput, + UpdateTrustStoreOutput, + UpdateVpcOriginInput, + UpdateVpcOriginOutput, + VerifyDnsConfigurationInput, + VerifyDnsConfigurationOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AssociateAliasInput, AssociateAliasOutput, Any, Any], + Interceptor[ + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + Any, + Any, + ], + Interceptor[ + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + Any, + Any, + ], + Interceptor[CopyDistributionInput, CopyDistributionOutput, Any, Any], + Interceptor[CreateAnycastIpListInput, CreateAnycastIpListOutput, Any, Any], + Interceptor[CreateCachePolicyInput, CreateCachePolicyOutput, Any, Any], + Interceptor[ + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + CreateConnectionFunctionInput, CreateConnectionFunctionOutput, Any, Any + ], + Interceptor[CreateConnectionGroupInput, CreateConnectionGroupOutput, Any, Any], + Interceptor[ + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[CreateDistributionInput, CreateDistributionOutput, Any, Any], + Interceptor[ + CreateDistributionTenantInput, CreateDistributionTenantOutput, Any, Any + ], + Interceptor[ + CreateDistributionWithTagsInput, CreateDistributionWithTagsOutput, Any, Any + ], + Interceptor[ + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[CreateFunctionInput, CreateFunctionOutput, Any, Any], + Interceptor[CreateInvalidationInput, CreateInvalidationOutput, Any, Any], + Interceptor[ + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[CreateKeyGroupInput, CreateKeyGroupOutput, Any, Any], + Interceptor[CreateKeyValueStoreInput, CreateKeyValueStoreOutput, Any, Any], + Interceptor[ + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + CreateOriginAccessControlInput, CreateOriginAccessControlOutput, Any, Any + ], + Interceptor[ + CreateOriginRequestPolicyInput, CreateOriginRequestPolicyOutput, Any, Any + ], + Interceptor[CreatePublicKeyInput, CreatePublicKeyOutput, Any, Any], + Interceptor[ + CreateRealtimeLogConfigInput, CreateRealtimeLogConfigOutput, Any, Any + ], + Interceptor[ + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[ + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + Any, + Any, + ], + Interceptor[CreateTrustStoreInput, CreateTrustStoreOutput, Any, Any], + Interceptor[CreateVpcOriginInput, CreateVpcOriginOutput, Any, Any], + Interceptor[DeleteAnycastIpListInput, DeleteAnycastIpListOutput, Any, Any], + Interceptor[DeleteCachePolicyInput, DeleteCachePolicyOutput, Any, Any], + Interceptor[ + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + DeleteConnectionFunctionInput, DeleteConnectionFunctionOutput, Any, Any + ], + Interceptor[DeleteConnectionGroupInput, DeleteConnectionGroupOutput, Any, Any], + Interceptor[ + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteDistributionInput, DeleteDistributionOutput, Any, Any], + Interceptor[ + DeleteDistributionTenantInput, DeleteDistributionTenantOutput, Any, Any + ], + Interceptor[ + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[DeleteFunctionInput, DeleteFunctionOutput, Any, Any], + Interceptor[DeleteKeyGroupInput, DeleteKeyGroupOutput, Any, Any], + Interceptor[DeleteKeyValueStoreInput, DeleteKeyValueStoreOutput, Any, Any], + Interceptor[ + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DeleteOriginAccessControlInput, DeleteOriginAccessControlOutput, Any, Any + ], + Interceptor[ + DeleteOriginRequestPolicyInput, DeleteOriginRequestPolicyOutput, Any, Any + ], + Interceptor[DeletePublicKeyInput, DeletePublicKeyOutput, Any, Any], + Interceptor[ + DeleteRealtimeLogConfigInput, DeleteRealtimeLogConfigOutput, Any, Any + ], + Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[ + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[DeleteTrustStoreInput, DeleteTrustStoreOutput, Any, Any], + Interceptor[DeleteVpcOriginInput, DeleteVpcOriginOutput, Any, Any], + Interceptor[ + DescribeConnectionFunctionInput, DescribeConnectionFunctionOutput, Any, Any + ], + Interceptor[DescribeFunctionInput, DescribeFunctionOutput, Any, Any], + Interceptor[DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput, Any, Any], + Interceptor[ + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + Any, + Any, + ], + Interceptor[ + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + Any, + Any, + ], + Interceptor[GetAnycastIpListInput, GetAnycastIpListOutput, Any, Any], + Interceptor[GetCachePolicyInput, GetCachePolicyOutput, Any, Any], + Interceptor[GetCachePolicyConfigInput, GetCachePolicyConfigOutput, Any, Any], + Interceptor[ + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + Any, + Any, + ], + Interceptor[GetConnectionFunctionInput, GetConnectionFunctionOutput, Any, Any], + Interceptor[GetConnectionGroupInput, GetConnectionGroupOutput, Any, Any], + Interceptor[ + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + Any, + Any, + ], + Interceptor[ + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + Any, + Any, + ], + Interceptor[GetDistributionInput, GetDistributionOutput, Any, Any], + Interceptor[GetDistributionConfigInput, GetDistributionConfigOutput, Any, Any], + Interceptor[GetDistributionTenantInput, GetDistributionTenantOutput, Any, Any], + Interceptor[ + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionInput, GetFieldLevelEncryptionOutput, Any, Any + ], + Interceptor[ + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[ + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + Any, + Any, + ], + Interceptor[GetFunctionInput, GetFunctionOutput, Any, Any], + Interceptor[GetInvalidationInput, GetInvalidationOutput, Any, Any], + Interceptor[ + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[GetKeyGroupInput, GetKeyGroupOutput, Any, Any], + Interceptor[GetKeyGroupConfigInput, GetKeyGroupConfigOutput, Any, Any], + Interceptor[ + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetMonitoringSubscriptionInput, GetMonitoringSubscriptionOutput, Any, Any + ], + Interceptor[ + GetOriginAccessControlInput, GetOriginAccessControlOutput, Any, Any + ], + Interceptor[ + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + Any, + Any, + ], + Interceptor[ + GetOriginRequestPolicyInput, GetOriginRequestPolicyOutput, Any, Any + ], + Interceptor[ + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + Any, + Any, + ], + Interceptor[GetPublicKeyInput, GetPublicKeyOutput, Any, Any], + Interceptor[GetPublicKeyConfigInput, GetPublicKeyConfigOutput, Any, Any], + Interceptor[GetRealtimeLogConfigInput, GetRealtimeLogConfigOutput, Any, Any], + Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[ + GetResponseHeadersPolicyInput, GetResponseHeadersPolicyOutput, Any, Any + ], + Interceptor[ + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + Any, + Any, + ], + Interceptor[ + GetStreamingDistributionInput, GetStreamingDistributionOutput, Any, Any + ], + Interceptor[ + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + Any, + Any, + ], + Interceptor[GetTrustStoreInput, GetTrustStoreOutput, Any, Any], + Interceptor[GetVpcOriginInput, GetVpcOriginOutput, Any, Any], + Interceptor[ListAnycastIpListsInput, ListAnycastIpListsOutput, Any, Any], + Interceptor[ListCachePoliciesInput, ListCachePoliciesOutput, Any, Any], + Interceptor[ + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + Any, + Any, + ], + Interceptor[ + ListConflictingAliasesInput, ListConflictingAliasesOutput, Any, Any + ], + Interceptor[ + ListConnectionFunctionsInput, ListConnectionFunctionsOutput, Any, Any + ], + Interceptor[ListConnectionGroupsInput, ListConnectionGroupsOutput, Any, Any], + Interceptor[ + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + Any, + Any, + ], + Interceptor[ListDistributionsInput, ListDistributionsOutput, Any, Any], + Interceptor[ + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + Any, + Any, + ], + Interceptor[ + ListDistributionTenantsInput, ListDistributionTenantsOutput, Any, Any + ], + Interceptor[ + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + Any, + Any, + ], + Interceptor[ListDomainConflictsInput, ListDomainConflictsOutput, Any, Any], + Interceptor[ + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + Any, + Any, + ], + Interceptor[ + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + Any, + Any, + ], + Interceptor[ListFunctionsInput, ListFunctionsOutput, Any, Any], + Interceptor[ListInvalidationsInput, ListInvalidationsOutput, Any, Any], + Interceptor[ + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + Any, + Any, + ], + Interceptor[ListKeyGroupsInput, ListKeyGroupsOutput, Any, Any], + Interceptor[ListKeyValueStoresInput, ListKeyValueStoresOutput, Any, Any], + Interceptor[ + ListOriginAccessControlsInput, ListOriginAccessControlsOutput, Any, Any + ], + Interceptor[ + ListOriginRequestPoliciesInput, ListOriginRequestPoliciesOutput, Any, Any + ], + Interceptor[ListPublicKeysInput, ListPublicKeysOutput, Any, Any], + Interceptor[ + ListRealtimeLogConfigsInput, ListRealtimeLogConfigsOutput, Any, Any + ], + Interceptor[ + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + Any, + Any, + ], + Interceptor[ + ListStreamingDistributionsInput, ListStreamingDistributionsOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ListTrustStoresInput, ListTrustStoresOutput, Any, Any], + Interceptor[ListVpcOriginsInput, ListVpcOriginsOutput, Any, Any], + Interceptor[ + PublishConnectionFunctionInput, PublishConnectionFunctionOutput, Any, Any + ], + Interceptor[PublishFunctionInput, PublishFunctionOutput, Any, Any], + Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[ + TestConnectionFunctionInput, TestConnectionFunctionOutput, Any, Any + ], + Interceptor[TestFunctionInput, TestFunctionOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAnycastIpListInput, UpdateAnycastIpListOutput, Any, Any], + Interceptor[UpdateCachePolicyInput, UpdateCachePolicyOutput, Any, Any], + Interceptor[ + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + Any, + Any, + ], + Interceptor[ + UpdateConnectionFunctionInput, UpdateConnectionFunctionOutput, Any, Any + ], + Interceptor[UpdateConnectionGroupInput, UpdateConnectionGroupOutput, Any, Any], + Interceptor[ + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + Any, + Any, + ], + Interceptor[UpdateDistributionInput, UpdateDistributionOutput, Any, Any], + Interceptor[ + UpdateDistributionTenantInput, UpdateDistributionTenantOutput, Any, Any + ], + Interceptor[ + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + Any, + Any, + ], + Interceptor[ + UpdateDomainAssociationInput, UpdateDomainAssociationOutput, Any, Any + ], + Interceptor[ + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + Any, + Any, + ], + Interceptor[ + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + Any, + Any, + ], + Interceptor[UpdateFunctionInput, UpdateFunctionOutput, Any, Any], + Interceptor[UpdateKeyGroupInput, UpdateKeyGroupOutput, Any, Any], + Interceptor[UpdateKeyValueStoreInput, UpdateKeyValueStoreOutput, Any, Any], + Interceptor[ + UpdateOriginAccessControlInput, UpdateOriginAccessControlOutput, Any, Any + ], + Interceptor[ + UpdateOriginRequestPolicyInput, UpdateOriginRequestPolicyOutput, Any, Any + ], + Interceptor[UpdatePublicKeyInput, UpdatePublicKeyOutput, Any, Any], + Interceptor[ + UpdateRealtimeLogConfigInput, UpdateRealtimeLogConfigOutput, Any, Any + ], + Interceptor[ + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + Any, + Any, + ], + Interceptor[ + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + Any, + Any, + ], + Interceptor[UpdateTrustStoreInput, UpdateTrustStoreOutput, Any, Any], + Interceptor[UpdateVpcOriginInput, UpdateVpcOriginOutput, Any, Any], + Interceptor[ + VerifyDnsConfigurationInput, VerifyDnsConfigurationOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.cloudfront", + service_target="Cloudfront2020_05_31", + xml_namespace="http://cloudfront.amazonaws.com/doc/2020-05-31/", + service_schema=CLOUDFRONT2020_05_31, +) + + +class _CloudFrontConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class CloudFrontConfig(AwsConfig): + """CloudFront configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("cloudfront").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: RestXmlClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="cloudfront") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_CloudFrontConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[CloudFrontConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.py new file mode 100644 index 00000000..ce932a2a --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.py @@ -0,0 +1,3911 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccessDenied": "ACCESS_DENIED", + "ActiveTrustedKeyGroups": "ACTIVE_TRUSTED_KEY_GROUPS", + "ActiveTrustedSigners": "ACTIVE_TRUSTED_SIGNERS", + "Aliases": "ALIASES", + "AliasICPRecordal": "ALIAS_ICP_RECORDAL", + "AllowedMethods": "ALLOWED_METHODS", + "AnycastIpList": "ANYCAST_IP_LIST", + "AnycastIpListCollection": "ANYCAST_IP_LIST_COLLECTION", + "AnycastIpListSummary": "ANYCAST_IP_LIST_SUMMARY", + "AssociateAliasInput": "ASSOCIATE_ALIAS_INPUT", + "AssociateAliasOutput": "ASSOCIATE_ALIAS_OUTPUT", + "AssociateDistributionTenantWebACLInput": "ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT", + "AssociateDistributionTenantWebACLOutput": "ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT", + "AssociateDistributionWebACLInput": "ASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT", + "AssociateDistributionWebACLOutput": "ASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT", + "BatchTooLarge": "BATCH_TOO_LARGE", + "CaCertificatesBundleS3Location": "CA_CERTIFICATES_BUNDLE_S3_LOCATION", + "CaCertificatesBundleSource": "CA_CERTIFICATES_BUNDLE_SOURCE", + "CaCertificatesBundleSourceCaCertificatesBundleS3Location": "CA_CERTIFICATES_BUNDLE_SOURCE", + "CaCertificatesBundleSourceUnknown": "CA_CERTIFICATES_BUNDLE_SOURCE", + "CacheBehavior": "CACHE_BEHAVIOR", + "CacheBehaviors": "CACHE_BEHAVIORS", + "CachedMethods": "CACHED_METHODS", + "CachePolicy": "CACHE_POLICY", + "CachePolicyAlreadyExists": "CACHE_POLICY_ALREADY_EXISTS", + "CachePolicyConfig": "CACHE_POLICY_CONFIG", + "CachePolicyCookieBehavior": "CACHE_POLICY_COOKIE_BEHAVIOR", + "CachePolicyCookiesConfig": "CACHE_POLICY_COOKIES_CONFIG", + "CachePolicyHeaderBehavior": "CACHE_POLICY_HEADER_BEHAVIOR", + "CachePolicyHeadersConfig": "CACHE_POLICY_HEADERS_CONFIG", + "CachePolicyInUse": "CACHE_POLICY_IN_USE", + "CachePolicyList": "CACHE_POLICY_LIST", + "CachePolicyQueryStringBehavior": "CACHE_POLICY_QUERY_STRING_BEHAVIOR", + "CachePolicyQueryStringsConfig": "CACHE_POLICY_QUERY_STRINGS_CONFIG", + "CachePolicySummary": "CACHE_POLICY_SUMMARY", + "CachePolicyType": "CACHE_POLICY_TYPE", + "CacheTagConfig": "CACHE_TAG_CONFIG", + "CannotChangeImmutablePublicKeyFields": "CANNOT_CHANGE_IMMUTABLE_PUBLIC_KEY_FIELDS", + "CannotDeleteEntityWhileInUse": "CANNOT_DELETE_ENTITY_WHILE_IN_USE", + "CannotUpdateEntityWhileInUse": "CANNOT_UPDATE_ENTITY_WHILE_IN_USE", + "Certificate": "CERTIFICATE", + "CertificateSource": "CERTIFICATE_SOURCE", + "CertificateTransparencyLoggingPreference": "CERTIFICATE_TRANSPARENCY_LOGGING_PREFERENCE", + "CloudFrontOriginAccessIdentity": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "CloudFrontOriginAccessIdentityAlreadyExists": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_ALREADY_EXISTS", + "CloudFrontOriginAccessIdentityConfig": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG", + "CloudFrontOriginAccessIdentityInUse": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_IN_USE", + "CloudFrontOriginAccessIdentityList": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_LIST", + "CloudFrontOriginAccessIdentitySummary": "CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_SUMMARY", + "CNAMEAlreadyExists": "CNAME_ALREADY_EXISTS", + "ConflictingAlias": "CONFLICTING_ALIAS", + "ConflictingAliasesList": "CONFLICTING_ALIASES_LIST", + "ConnectionFunctionAssociation": "CONNECTION_FUNCTION_ASSOCIATION", + "ConnectionFunctionSummary": "CONNECTION_FUNCTION_SUMMARY", + "ConnectionFunctionTestResult": "CONNECTION_FUNCTION_TEST_RESULT", + "ConnectionGroup": "CONNECTION_GROUP", + "ConnectionGroupAssociationFilter": "CONNECTION_GROUP_ASSOCIATION_FILTER", + "ConnectionGroupSummary": "CONNECTION_GROUP_SUMMARY", + "ConnectionMode": "CONNECTION_MODE", + "ContentTypeProfile": "CONTENT_TYPE_PROFILE", + "ContentTypeProfileConfig": "CONTENT_TYPE_PROFILE_CONFIG", + "ContentTypeProfiles": "CONTENT_TYPE_PROFILES", + "ContinuousDeploymentPolicy": "CONTINUOUS_DEPLOYMENT_POLICY", + "ContinuousDeploymentPolicyAlreadyExists": "CONTINUOUS_DEPLOYMENT_POLICY_ALREADY_EXISTS", + "ContinuousDeploymentPolicyConfig": "CONTINUOUS_DEPLOYMENT_POLICY_CONFIG", + "ContinuousDeploymentPolicyInUse": "CONTINUOUS_DEPLOYMENT_POLICY_IN_USE", + "ContinuousDeploymentPolicyList": "CONTINUOUS_DEPLOYMENT_POLICY_LIST", + "ContinuousDeploymentPolicySummary": "CONTINUOUS_DEPLOYMENT_POLICY_SUMMARY", + "ContinuousDeploymentPolicyType": "CONTINUOUS_DEPLOYMENT_POLICY_TYPE", + "ContinuousDeploymentSingleHeaderConfig": "CONTINUOUS_DEPLOYMENT_SINGLE_HEADER_CONFIG", + "ContinuousDeploymentSingleWeightConfig": "CONTINUOUS_DEPLOYMENT_SINGLE_WEIGHT_CONFIG", + "CookieNames": "COOKIE_NAMES", + "CookiePreference": "COOKIE_PREFERENCE", + "CopyDistributionInput": "COPY_DISTRIBUTION_INPUT", + "CopyDistributionOutput": "COPY_DISTRIBUTION_OUTPUT", + "CreateAnycastIpListInput": "CREATE_ANYCAST_IP_LIST_INPUT", + "CreateAnycastIpListOutput": "CREATE_ANYCAST_IP_LIST_OUTPUT", + "CreateCachePolicyInput": "CREATE_CACHE_POLICY_INPUT", + "CreateCachePolicyOutput": "CREATE_CACHE_POLICY_OUTPUT", + "CreateCloudFrontOriginAccessIdentityInput": "CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT", + "CreateCloudFrontOriginAccessIdentityOutput": "CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT", + "CreateConnectionFunctionInput": "CREATE_CONNECTION_FUNCTION_INPUT", + "CreateConnectionFunctionOutput": "CREATE_CONNECTION_FUNCTION_OUTPUT", + "CreateConnectionGroupInput": "CREATE_CONNECTION_GROUP_INPUT", + "CreateConnectionGroupOutput": "CREATE_CONNECTION_GROUP_OUTPUT", + "CreateContinuousDeploymentPolicyInput": "CREATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT", + "CreateContinuousDeploymentPolicyOutput": "CREATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT", + "CreateDistributionInput": "CREATE_DISTRIBUTION_INPUT", + "CreateDistributionOutput": "CREATE_DISTRIBUTION_OUTPUT", + "CreateDistributionTenantInput": "CREATE_DISTRIBUTION_TENANT_INPUT", + "CreateDistributionTenantOutput": "CREATE_DISTRIBUTION_TENANT_OUTPUT", + "CreateDistributionWithTagsInput": "CREATE_DISTRIBUTION_WITH_TAGS_INPUT", + "CreateDistributionWithTagsOutput": "CREATE_DISTRIBUTION_WITH_TAGS_OUTPUT", + "CreateFieldLevelEncryptionConfigInput": "CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT", + "CreateFieldLevelEncryptionConfigOutput": "CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT", + "CreateFieldLevelEncryptionProfileInput": "CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT", + "CreateFieldLevelEncryptionProfileOutput": "CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT", + "CreateFunctionInput": "CREATE_FUNCTION_INPUT", + "CreateFunctionOutput": "CREATE_FUNCTION_OUTPUT", + "CreateInvalidationForDistributionTenantInput": "CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT", + "CreateInvalidationForDistributionTenantOutput": "CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT", + "CreateInvalidationInput": "CREATE_INVALIDATION_INPUT", + "CreateInvalidationOutput": "CREATE_INVALIDATION_OUTPUT", + "CreateKeyGroupInput": "CREATE_KEY_GROUP_INPUT", + "CreateKeyGroupOutput": "CREATE_KEY_GROUP_OUTPUT", + "CreateKeyValueStoreInput": "CREATE_KEY_VALUE_STORE_INPUT", + "CreateKeyValueStoreOutput": "CREATE_KEY_VALUE_STORE_OUTPUT", + "CreateMonitoringSubscriptionInput": "CREATE_MONITORING_SUBSCRIPTION_INPUT", + "CreateMonitoringSubscriptionOutput": "CREATE_MONITORING_SUBSCRIPTION_OUTPUT", + "CreateOriginAccessControlInput": "CREATE_ORIGIN_ACCESS_CONTROL_INPUT", + "CreateOriginAccessControlOutput": "CREATE_ORIGIN_ACCESS_CONTROL_OUTPUT", + "CreateOriginRequestPolicyInput": "CREATE_ORIGIN_REQUEST_POLICY_INPUT", + "CreateOriginRequestPolicyOutput": "CREATE_ORIGIN_REQUEST_POLICY_OUTPUT", + "CreatePublicKeyInput": "CREATE_PUBLIC_KEY_INPUT", + "CreatePublicKeyOutput": "CREATE_PUBLIC_KEY_OUTPUT", + "CreateRealtimeLogConfigInput": "CREATE_REALTIME_LOG_CONFIG_INPUT", + "CreateRealtimeLogConfigOutput": "CREATE_REALTIME_LOG_CONFIG_OUTPUT", + "CreateResponseHeadersPolicyInput": "CREATE_RESPONSE_HEADERS_POLICY_INPUT", + "CreateResponseHeadersPolicyOutput": "CREATE_RESPONSE_HEADERS_POLICY_OUTPUT", + "CreateStreamingDistributionInput": "CREATE_STREAMING_DISTRIBUTION_INPUT", + "CreateStreamingDistributionOutput": "CREATE_STREAMING_DISTRIBUTION_OUTPUT", + "CreateStreamingDistributionWithTagsInput": "CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_INPUT", + "CreateStreamingDistributionWithTagsOutput": "CREATE_STREAMING_DISTRIBUTION_WITH_TAGS_OUTPUT", + "CreateTrustStoreInput": "CREATE_TRUST_STORE_INPUT", + "CreateTrustStoreOutput": "CREATE_TRUST_STORE_OUTPUT", + "CreateVpcOriginInput": "CREATE_VPC_ORIGIN_INPUT", + "CreateVpcOriginOutput": "CREATE_VPC_ORIGIN_OUTPUT", + "CustomErrorResponse": "CUSTOM_ERROR_RESPONSE", + "CustomErrorResponses": "CUSTOM_ERROR_RESPONSES", + "CustomHeaders": "CUSTOM_HEADERS", + "CustomizationActionType": "CUSTOMIZATION_ACTION_TYPE", + "Customizations": "CUSTOMIZATIONS", + "CustomOriginConfig": "CUSTOM_ORIGIN_CONFIG", + "DefaultCacheBehavior": "DEFAULT_CACHE_BEHAVIOR", + "DeleteAnycastIpListInput": "DELETE_ANYCAST_IP_LIST_INPUT", + "DeleteAnycastIpListOutput": "DELETE_ANYCAST_IP_LIST_OUTPUT", + "DeleteCachePolicyInput": "DELETE_CACHE_POLICY_INPUT", + "DeleteCachePolicyOutput": "DELETE_CACHE_POLICY_OUTPUT", + "DeleteCloudFrontOriginAccessIdentityInput": "DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT", + "DeleteCloudFrontOriginAccessIdentityOutput": "DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT", + "DeleteConnectionFunctionInput": "DELETE_CONNECTION_FUNCTION_INPUT", + "DeleteConnectionFunctionOutput": "DELETE_CONNECTION_FUNCTION_OUTPUT", + "DeleteConnectionGroupInput": "DELETE_CONNECTION_GROUP_INPUT", + "DeleteConnectionGroupOutput": "DELETE_CONNECTION_GROUP_OUTPUT", + "DeleteContinuousDeploymentPolicyInput": "DELETE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT", + "DeleteContinuousDeploymentPolicyOutput": "DELETE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT", + "DeleteDistributionInput": "DELETE_DISTRIBUTION_INPUT", + "DeleteDistributionOutput": "DELETE_DISTRIBUTION_OUTPUT", + "DeleteDistributionTenantInput": "DELETE_DISTRIBUTION_TENANT_INPUT", + "DeleteDistributionTenantOutput": "DELETE_DISTRIBUTION_TENANT_OUTPUT", + "DeleteFieldLevelEncryptionConfigInput": "DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT", + "DeleteFieldLevelEncryptionConfigOutput": "DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT", + "DeleteFieldLevelEncryptionProfileInput": "DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT", + "DeleteFieldLevelEncryptionProfileOutput": "DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT", + "DeleteFunctionInput": "DELETE_FUNCTION_INPUT", + "DeleteFunctionOutput": "DELETE_FUNCTION_OUTPUT", + "DeleteKeyGroupInput": "DELETE_KEY_GROUP_INPUT", + "DeleteKeyGroupOutput": "DELETE_KEY_GROUP_OUTPUT", + "DeleteKeyValueStoreInput": "DELETE_KEY_VALUE_STORE_INPUT", + "DeleteKeyValueStoreOutput": "DELETE_KEY_VALUE_STORE_OUTPUT", + "DeleteMonitoringSubscriptionInput": "DELETE_MONITORING_SUBSCRIPTION_INPUT", + "DeleteMonitoringSubscriptionOutput": "DELETE_MONITORING_SUBSCRIPTION_OUTPUT", + "DeleteOriginAccessControlInput": "DELETE_ORIGIN_ACCESS_CONTROL_INPUT", + "DeleteOriginAccessControlOutput": "DELETE_ORIGIN_ACCESS_CONTROL_OUTPUT", + "DeleteOriginRequestPolicyInput": "DELETE_ORIGIN_REQUEST_POLICY_INPUT", + "DeleteOriginRequestPolicyOutput": "DELETE_ORIGIN_REQUEST_POLICY_OUTPUT", + "DeletePublicKeyInput": "DELETE_PUBLIC_KEY_INPUT", + "DeletePublicKeyOutput": "DELETE_PUBLIC_KEY_OUTPUT", + "DeleteRealtimeLogConfigInput": "DELETE_REALTIME_LOG_CONFIG_INPUT", + "DeleteRealtimeLogConfigOutput": "DELETE_REALTIME_LOG_CONFIG_OUTPUT", + "DeleteResourcePolicyInput": "DELETE_RESOURCE_POLICY_INPUT", + "DeleteResourcePolicyOutput": "DELETE_RESOURCE_POLICY_OUTPUT", + "DeleteResponseHeadersPolicyInput": "DELETE_RESPONSE_HEADERS_POLICY_INPUT", + "DeleteResponseHeadersPolicyOutput": "DELETE_RESPONSE_HEADERS_POLICY_OUTPUT", + "DeleteStreamingDistributionInput": "DELETE_STREAMING_DISTRIBUTION_INPUT", + "DeleteStreamingDistributionOutput": "DELETE_STREAMING_DISTRIBUTION_OUTPUT", + "DeleteTrustStoreInput": "DELETE_TRUST_STORE_INPUT", + "DeleteTrustStoreOutput": "DELETE_TRUST_STORE_OUTPUT", + "DeleteVpcOriginInput": "DELETE_VPC_ORIGIN_INPUT", + "DeleteVpcOriginOutput": "DELETE_VPC_ORIGIN_OUTPUT", + "DescribeConnectionFunctionInput": "DESCRIBE_CONNECTION_FUNCTION_INPUT", + "DescribeConnectionFunctionOutput": "DESCRIBE_CONNECTION_FUNCTION_OUTPUT", + "DescribeFunctionInput": "DESCRIBE_FUNCTION_INPUT", + "DescribeFunctionOutput": "DESCRIBE_FUNCTION_OUTPUT", + "DescribeKeyValueStoreInput": "DESCRIBE_KEY_VALUE_STORE_INPUT", + "DescribeKeyValueStoreOutput": "DESCRIBE_KEY_VALUE_STORE_OUTPUT", + "DisassociateDistributionTenantWebACLInput": "DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_INPUT", + "DisassociateDistributionTenantWebACLOutput": "DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL_OUTPUT", + "DisassociateDistributionWebACLInput": "DISASSOCIATE_DISTRIBUTION_WEB_ACL_INPUT", + "DisassociateDistributionWebACLOutput": "DISASSOCIATE_DISTRIBUTION_WEB_ACL_OUTPUT", + "Distribution": "DISTRIBUTION", + "DistributionAlreadyExists": "DISTRIBUTION_ALREADY_EXISTS", + "DistributionConfig": "DISTRIBUTION_CONFIG", + "DistributionConfigWithTags": "DISTRIBUTION_CONFIG_WITH_TAGS", + "DistributionIdList": "DISTRIBUTION_ID_LIST", + "DistributionIdOwner": "DISTRIBUTION_ID_OWNER", + "DistributionIdOwnerList": "DISTRIBUTION_ID_OWNER_LIST", + "DistributionList": "DISTRIBUTION_LIST", + "DistributionNotDisabled": "DISTRIBUTION_NOT_DISABLED", + "DistributionResourceId": "DISTRIBUTION_RESOURCE_ID", + "DistributionResourceType": "DISTRIBUTION_RESOURCE_TYPE", + "DistributionSummary": "DISTRIBUTION_SUMMARY", + "DistributionTenant": "DISTRIBUTION_TENANT", + "DistributionTenantAssociationFilter": "DISTRIBUTION_TENANT_ASSOCIATION_FILTER", + "DistributionTenantSummary": "DISTRIBUTION_TENANT_SUMMARY", + "DnsConfiguration": "DNS_CONFIGURATION", + "DnsConfigurationStatus": "DNS_CONFIGURATION_STATUS", + "DomainConflict": "DOMAIN_CONFLICT", + "DomainItem": "DOMAIN_ITEM", + "DomainResult": "DOMAIN_RESULT", + "DomainStatus": "DOMAIN_STATUS", + "EncryptionEntities": "ENCRYPTION_ENTITIES", + "EncryptionEntity": "ENCRYPTION_ENTITY", + "EndPoint": "END_POINT", + "EntityAlreadyExists": "ENTITY_ALREADY_EXISTS", + "EntityLimitExceeded": "ENTITY_LIMIT_EXCEEDED", + "EntityNotFound": "ENTITY_NOT_FOUND", + "EntitySizeLimitExceeded": "ENTITY_SIZE_LIMIT_EXCEEDED", + "EventType": "EVENT_TYPE", + "FieldLevelEncryption": "FIELD_LEVEL_ENCRYPTION", + "FieldLevelEncryptionConfig": "FIELD_LEVEL_ENCRYPTION_CONFIG", + "FieldLevelEncryptionConfigAlreadyExists": "FIELD_LEVEL_ENCRYPTION_CONFIG_ALREADY_EXISTS", + "FieldLevelEncryptionConfigInUse": "FIELD_LEVEL_ENCRYPTION_CONFIG_IN_USE", + "FieldLevelEncryptionList": "FIELD_LEVEL_ENCRYPTION_LIST", + "FieldLevelEncryptionProfile": "FIELD_LEVEL_ENCRYPTION_PROFILE", + "FieldLevelEncryptionProfileAlreadyExists": "FIELD_LEVEL_ENCRYPTION_PROFILE_ALREADY_EXISTS", + "FieldLevelEncryptionProfileConfig": "FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG", + "FieldLevelEncryptionProfileInUse": "FIELD_LEVEL_ENCRYPTION_PROFILE_IN_USE", + "FieldLevelEncryptionProfileList": "FIELD_LEVEL_ENCRYPTION_PROFILE_LIST", + "FieldLevelEncryptionProfileSizeExceeded": "FIELD_LEVEL_ENCRYPTION_PROFILE_SIZE_EXCEEDED", + "FieldLevelEncryptionProfileSummary": "FIELD_LEVEL_ENCRYPTION_PROFILE_SUMMARY", + "FieldLevelEncryptionSummary": "FIELD_LEVEL_ENCRYPTION_SUMMARY", + "FieldPatterns": "FIELD_PATTERNS", + "Format": "FORMAT", + "ForwardedValues": "FORWARDED_VALUES", + "FrameOptionsList": "FRAME_OPTIONS_LIST", + "FunctionAlreadyExists": "FUNCTION_ALREADY_EXISTS", + "FunctionAssociation": "FUNCTION_ASSOCIATION", + "FunctionAssociations": "FUNCTION_ASSOCIATIONS", + "FunctionConfig": "FUNCTION_CONFIG", + "FunctionInUse": "FUNCTION_IN_USE", + "FunctionList": "FUNCTION_LIST", + "FunctionMetadata": "FUNCTION_METADATA", + "FunctionRuntime": "FUNCTION_RUNTIME", + "FunctionSizeLimitExceeded": "FUNCTION_SIZE_LIMIT_EXCEEDED", + "FunctionStage": "FUNCTION_STAGE", + "FunctionSummary": "FUNCTION_SUMMARY", + "GeoRestriction": "GEO_RESTRICTION", + "GeoRestrictionCustomization": "GEO_RESTRICTION_CUSTOMIZATION", + "GeoRestrictionType": "GEO_RESTRICTION_TYPE", + "GetAnycastIpListInput": "GET_ANYCAST_IP_LIST_INPUT", + "GetAnycastIpListOutput": "GET_ANYCAST_IP_LIST_OUTPUT", + "GetCachePolicyConfigInput": "GET_CACHE_POLICY_CONFIG_INPUT", + "GetCachePolicyConfigOutput": "GET_CACHE_POLICY_CONFIG_OUTPUT", + "GetCachePolicyInput": "GET_CACHE_POLICY_INPUT", + "GetCachePolicyOutput": "GET_CACHE_POLICY_OUTPUT", + "GetCloudFrontOriginAccessIdentityConfigInput": "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_INPUT", + "GetCloudFrontOriginAccessIdentityConfigOutput": "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG_OUTPUT", + "GetCloudFrontOriginAccessIdentityInput": "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT", + "GetCloudFrontOriginAccessIdentityOutput": "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT", + "GetConnectionFunctionInput": "GET_CONNECTION_FUNCTION_INPUT", + "GetConnectionFunctionOutput": "GET_CONNECTION_FUNCTION_OUTPUT", + "GetConnectionGroupByRoutingEndpointInput": "GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_INPUT", + "GetConnectionGroupByRoutingEndpointOutput": "GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT_OUTPUT", + "GetConnectionGroupInput": "GET_CONNECTION_GROUP_INPUT", + "GetConnectionGroupOutput": "GET_CONNECTION_GROUP_OUTPUT", + "GetContinuousDeploymentPolicyConfigInput": "GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_INPUT", + "GetContinuousDeploymentPolicyConfigOutput": "GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG_OUTPUT", + "GetContinuousDeploymentPolicyInput": "GET_CONTINUOUS_DEPLOYMENT_POLICY_INPUT", + "GetContinuousDeploymentPolicyOutput": "GET_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT", + "GetDistributionConfigInput": "GET_DISTRIBUTION_CONFIG_INPUT", + "GetDistributionConfigOutput": "GET_DISTRIBUTION_CONFIG_OUTPUT", + "GetDistributionInput": "GET_DISTRIBUTION_INPUT", + "GetDistributionOutput": "GET_DISTRIBUTION_OUTPUT", + "GetDistributionTenantByDomainInput": "GET_DISTRIBUTION_TENANT_BY_DOMAIN_INPUT", + "GetDistributionTenantByDomainOutput": "GET_DISTRIBUTION_TENANT_BY_DOMAIN_OUTPUT", + "GetDistributionTenantInput": "GET_DISTRIBUTION_TENANT_INPUT", + "GetDistributionTenantOutput": "GET_DISTRIBUTION_TENANT_OUTPUT", + "GetFieldLevelEncryptionConfigInput": "GET_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT", + "GetFieldLevelEncryptionConfigOutput": "GET_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT", + "GetFieldLevelEncryptionInput": "GET_FIELD_LEVEL_ENCRYPTION_INPUT", + "GetFieldLevelEncryptionOutput": "GET_FIELD_LEVEL_ENCRYPTION_OUTPUT", + "GetFieldLevelEncryptionProfileConfigInput": "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_INPUT", + "GetFieldLevelEncryptionProfileConfigOutput": "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG_OUTPUT", + "GetFieldLevelEncryptionProfileInput": "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT", + "GetFieldLevelEncryptionProfileOutput": "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT", + "GetFunctionInput": "GET_FUNCTION_INPUT", + "GetFunctionOutput": "GET_FUNCTION_OUTPUT", + "GetInvalidationForDistributionTenantInput": "GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_INPUT", + "GetInvalidationForDistributionTenantOutput": "GET_INVALIDATION_FOR_DISTRIBUTION_TENANT_OUTPUT", + "GetInvalidationInput": "GET_INVALIDATION_INPUT", + "GetInvalidationOutput": "GET_INVALIDATION_OUTPUT", + "GetKeyGroupConfigInput": "GET_KEY_GROUP_CONFIG_INPUT", + "GetKeyGroupConfigOutput": "GET_KEY_GROUP_CONFIG_OUTPUT", + "GetKeyGroupInput": "GET_KEY_GROUP_INPUT", + "GetKeyGroupOutput": "GET_KEY_GROUP_OUTPUT", + "GetManagedCertificateDetailsInput": "GET_MANAGED_CERTIFICATE_DETAILS_INPUT", + "GetManagedCertificateDetailsOutput": "GET_MANAGED_CERTIFICATE_DETAILS_OUTPUT", + "GetMonitoringSubscriptionInput": "GET_MONITORING_SUBSCRIPTION_INPUT", + "GetMonitoringSubscriptionOutput": "GET_MONITORING_SUBSCRIPTION_OUTPUT", + "GetOriginAccessControlConfigInput": "GET_ORIGIN_ACCESS_CONTROL_CONFIG_INPUT", + "GetOriginAccessControlConfigOutput": "GET_ORIGIN_ACCESS_CONTROL_CONFIG_OUTPUT", + "GetOriginAccessControlInput": "GET_ORIGIN_ACCESS_CONTROL_INPUT", + "GetOriginAccessControlOutput": "GET_ORIGIN_ACCESS_CONTROL_OUTPUT", + "GetOriginRequestPolicyConfigInput": "GET_ORIGIN_REQUEST_POLICY_CONFIG_INPUT", + "GetOriginRequestPolicyConfigOutput": "GET_ORIGIN_REQUEST_POLICY_CONFIG_OUTPUT", + "GetOriginRequestPolicyInput": "GET_ORIGIN_REQUEST_POLICY_INPUT", + "GetOriginRequestPolicyOutput": "GET_ORIGIN_REQUEST_POLICY_OUTPUT", + "GetPublicKeyConfigInput": "GET_PUBLIC_KEY_CONFIG_INPUT", + "GetPublicKeyConfigOutput": "GET_PUBLIC_KEY_CONFIG_OUTPUT", + "GetPublicKeyInput": "GET_PUBLIC_KEY_INPUT", + "GetPublicKeyOutput": "GET_PUBLIC_KEY_OUTPUT", + "GetRealtimeLogConfigInput": "GET_REALTIME_LOG_CONFIG_INPUT", + "GetRealtimeLogConfigOutput": "GET_REALTIME_LOG_CONFIG_OUTPUT", + "GetResourcePolicyInput": "GET_RESOURCE_POLICY_INPUT", + "GetResourcePolicyOutput": "GET_RESOURCE_POLICY_OUTPUT", + "GetResponseHeadersPolicyConfigInput": "GET_RESPONSE_HEADERS_POLICY_CONFIG_INPUT", + "GetResponseHeadersPolicyConfigOutput": "GET_RESPONSE_HEADERS_POLICY_CONFIG_OUTPUT", + "GetResponseHeadersPolicyInput": "GET_RESPONSE_HEADERS_POLICY_INPUT", + "GetResponseHeadersPolicyOutput": "GET_RESPONSE_HEADERS_POLICY_OUTPUT", + "GetStreamingDistributionConfigInput": "GET_STREAMING_DISTRIBUTION_CONFIG_INPUT", + "GetStreamingDistributionConfigOutput": "GET_STREAMING_DISTRIBUTION_CONFIG_OUTPUT", + "GetStreamingDistributionInput": "GET_STREAMING_DISTRIBUTION_INPUT", + "GetStreamingDistributionOutput": "GET_STREAMING_DISTRIBUTION_OUTPUT", + "GetTrustStoreInput": "GET_TRUST_STORE_INPUT", + "GetTrustStoreOutput": "GET_TRUST_STORE_OUTPUT", + "GetVpcOriginInput": "GET_VPC_ORIGIN_INPUT", + "GetVpcOriginOutput": "GET_VPC_ORIGIN_OUTPUT", + "GrpcConfig": "GRPC_CONFIG", + "Headers": "HEADERS", + "HttpVersion": "HTTP_VERSION", + "ICPRecordalStatus": "ICP_RECORDAL_STATUS", + "IllegalDelete": "ILLEGAL_DELETE", + "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior": "ILLEGAL_FIELD_LEVEL_ENCRYPTION_CONFIG_ASSOCIATION_WITH_CACHE_BEHAVIOR", + "IllegalOriginAccessConfiguration": "ILLEGAL_ORIGIN_ACCESS_CONFIGURATION", + "IllegalUpdate": "ILLEGAL_UPDATE", + "ImportSource": "IMPORT_SOURCE", + "ImportSourceType": "IMPORT_SOURCE_TYPE", + "InconsistentQuantities": "INCONSISTENT_QUANTITIES", + "InvalidArgument": "INVALID_ARGUMENT", + "InvalidAssociation": "INVALID_ASSOCIATION", + "Invalidation": "INVALIDATION", + "InvalidationBatch": "INVALIDATION_BATCH", + "InvalidationList": "INVALIDATION_LIST", + "InvalidationSummary": "INVALIDATION_SUMMARY", + "InvalidDefaultRootObject": "INVALID_DEFAULT_ROOT_OBJECT", + "InvalidDomainNameForOriginAccessControl": "INVALID_DOMAIN_NAME_FOR_ORIGIN_ACCESS_CONTROL", + "InvalidErrorCode": "INVALID_ERROR_CODE", + "InvalidForwardCookies": "INVALID_FORWARD_COOKIES", + "InvalidFunctionAssociation": "INVALID_FUNCTION_ASSOCIATION", + "InvalidGeoRestrictionParameter": "INVALID_GEO_RESTRICTION_PARAMETER", + "InvalidHeadersForS3Origin": "INVALID_HEADERS_FOR_S3_ORIGIN", + "InvalidIfMatchVersion": "INVALID_IF_MATCH_VERSION", + "InvalidLambdaFunctionAssociation": "INVALID_LAMBDA_FUNCTION_ASSOCIATION", + "InvalidLocationCode": "INVALID_LOCATION_CODE", + "InvalidMinimumProtocolVersion": "INVALID_MINIMUM_PROTOCOL_VERSION", + "InvalidOrigin": "INVALID_ORIGIN", + "InvalidOriginAccessControl": "INVALID_ORIGIN_ACCESS_CONTROL", + "InvalidOriginAccessIdentity": "INVALID_ORIGIN_ACCESS_IDENTITY", + "InvalidOriginKeepaliveTimeout": "INVALID_ORIGIN_KEEPALIVE_TIMEOUT", + "InvalidOriginReadTimeout": "INVALID_ORIGIN_READ_TIMEOUT", + "InvalidProtocolSettings": "INVALID_PROTOCOL_SETTINGS", + "InvalidQueryStringParameters": "INVALID_QUERY_STRING_PARAMETERS", + "InvalidRelativePath": "INVALID_RELATIVE_PATH", + "InvalidRequiredProtocol": "INVALID_REQUIRED_PROTOCOL", + "InvalidResponseCode": "INVALID_RESPONSE_CODE", + "InvalidTagging": "INVALID_TAGGING", + "InvalidTTLOrder": "INVALID_TTL_ORDER", + "InvalidViewerCertificate": "INVALID_VIEWER_CERTIFICATE", + "InvalidWebACLId": "INVALID_WEB_ACL_ID", + "IpAddressType": "IP_ADDRESS_TYPE", + "IpamCidrConfig": "IPAM_CIDR_CONFIG", + "IpamCidrStatus": "IPAM_CIDR_STATUS", + "IpamConfig": "IPAM_CONFIG", + "ItemSelection": "ITEM_SELECTION", + "KeyGroup": "KEY_GROUP", + "KeyGroupAlreadyExists": "KEY_GROUP_ALREADY_EXISTS", + "KeyGroupConfig": "KEY_GROUP_CONFIG", + "KeyGroupList": "KEY_GROUP_LIST", + "KeyGroupSummary": "KEY_GROUP_SUMMARY", + "KeyPairIds": "KEY_PAIR_IDS", + "KeyValueStore": "KEY_VALUE_STORE", + "KeyValueStoreAssociation": "KEY_VALUE_STORE_ASSOCIATION", + "KeyValueStoreAssociations": "KEY_VALUE_STORE_ASSOCIATIONS", + "KeyValueStoreList": "KEY_VALUE_STORE_LIST", + "KGKeyPairIds": "KG_KEY_PAIR_IDS", + "KinesisStreamConfig": "KINESIS_STREAM_CONFIG", + "LambdaFunctionAssociation": "LAMBDA_FUNCTION_ASSOCIATION", + "LambdaFunctionAssociations": "LAMBDA_FUNCTION_ASSOCIATIONS", + "ListAnycastIpListsInput": "LIST_ANYCAST_IP_LISTS_INPUT", + "ListAnycastIpListsOutput": "LIST_ANYCAST_IP_LISTS_OUTPUT", + "ListCachePoliciesInput": "LIST_CACHE_POLICIES_INPUT", + "ListCachePoliciesOutput": "LIST_CACHE_POLICIES_OUTPUT", + "ListCloudFrontOriginAccessIdentitiesInput": "LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_INPUT", + "ListCloudFrontOriginAccessIdentitiesOutput": "LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES_OUTPUT", + "ListConflictingAliasesInput": "LIST_CONFLICTING_ALIASES_INPUT", + "ListConflictingAliasesOutput": "LIST_CONFLICTING_ALIASES_OUTPUT", + "ListConnectionFunctionsInput": "LIST_CONNECTION_FUNCTIONS_INPUT", + "ListConnectionFunctionsOutput": "LIST_CONNECTION_FUNCTIONS_OUTPUT", + "ListConnectionGroupsInput": "LIST_CONNECTION_GROUPS_INPUT", + "ListConnectionGroupsOutput": "LIST_CONNECTION_GROUPS_OUTPUT", + "ListContinuousDeploymentPoliciesInput": "LIST_CONTINUOUS_DEPLOYMENT_POLICIES_INPUT", + "ListContinuousDeploymentPoliciesOutput": "LIST_CONTINUOUS_DEPLOYMENT_POLICIES_OUTPUT", + "ListDistributionsByAnycastIpListIdInput": "LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_INPUT", + "ListDistributionsByAnycastIpListIdOutput": "LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID_OUTPUT", + "ListDistributionsByCachePolicyIdInput": "LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_INPUT", + "ListDistributionsByCachePolicyIdOutput": "LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID_OUTPUT", + "ListDistributionsByConnectionFunctionInput": "LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_INPUT", + "ListDistributionsByConnectionFunctionOutput": "LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION_OUTPUT", + "ListDistributionsByConnectionModeInput": "LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_INPUT", + "ListDistributionsByConnectionModeOutput": "LIST_DISTRIBUTIONS_BY_CONNECTION_MODE_OUTPUT", + "ListDistributionsByKeyGroupInput": "LIST_DISTRIBUTIONS_BY_KEY_GROUP_INPUT", + "ListDistributionsByKeyGroupOutput": "LIST_DISTRIBUTIONS_BY_KEY_GROUP_OUTPUT", + "ListDistributionsByOriginRequestPolicyIdInput": "LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_INPUT", + "ListDistributionsByOriginRequestPolicyIdOutput": "LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID_OUTPUT", + "ListDistributionsByOwnedResourceInput": "LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_INPUT", + "ListDistributionsByOwnedResourceOutput": "LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE_OUTPUT", + "ListDistributionsByRealtimeLogConfigInput": "LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_INPUT", + "ListDistributionsByRealtimeLogConfigOutput": "LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG_OUTPUT", + "ListDistributionsByResponseHeadersPolicyIdInput": "LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_INPUT", + "ListDistributionsByResponseHeadersPolicyIdOutput": "LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID_OUTPUT", + "ListDistributionsByTrustStoreInput": "LIST_DISTRIBUTIONS_BY_TRUST_STORE_INPUT", + "ListDistributionsByTrustStoreOutput": "LIST_DISTRIBUTIONS_BY_TRUST_STORE_OUTPUT", + "ListDistributionsByVpcOriginIdInput": "LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_INPUT", + "ListDistributionsByVpcOriginIdOutput": "LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID_OUTPUT", + "ListDistributionsByWebACLIdInput": "LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_INPUT", + "ListDistributionsByWebACLIdOutput": "LIST_DISTRIBUTIONS_BY_WEB_ACL_ID_OUTPUT", + "ListDistributionsInput": "LIST_DISTRIBUTIONS_INPUT", + "ListDistributionsOutput": "LIST_DISTRIBUTIONS_OUTPUT", + "ListDistributionTenantsByCustomizationInput": "LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_INPUT", + "ListDistributionTenantsByCustomizationOutput": "LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION_OUTPUT", + "ListDistributionTenantsInput": "LIST_DISTRIBUTION_TENANTS_INPUT", + "ListDistributionTenantsOutput": "LIST_DISTRIBUTION_TENANTS_OUTPUT", + "ListDomainConflictsInput": "LIST_DOMAIN_CONFLICTS_INPUT", + "ListDomainConflictsOutput": "LIST_DOMAIN_CONFLICTS_OUTPUT", + "ListFieldLevelEncryptionConfigsInput": "LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_INPUT", + "ListFieldLevelEncryptionConfigsOutput": "LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS_OUTPUT", + "ListFieldLevelEncryptionProfilesInput": "LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_INPUT", + "ListFieldLevelEncryptionProfilesOutput": "LIST_FIELD_LEVEL_ENCRYPTION_PROFILES_OUTPUT", + "ListFunctionsInput": "LIST_FUNCTIONS_INPUT", + "ListFunctionsOutput": "LIST_FUNCTIONS_OUTPUT", + "ListInvalidationsForDistributionTenantInput": "LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_INPUT", + "ListInvalidationsForDistributionTenantOutput": "LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT_OUTPUT", + "ListInvalidationsInput": "LIST_INVALIDATIONS_INPUT", + "ListInvalidationsOutput": "LIST_INVALIDATIONS_OUTPUT", + "ListKeyGroupsInput": "LIST_KEY_GROUPS_INPUT", + "ListKeyGroupsOutput": "LIST_KEY_GROUPS_OUTPUT", + "ListKeyValueStoresInput": "LIST_KEY_VALUE_STORES_INPUT", + "ListKeyValueStoresOutput": "LIST_KEY_VALUE_STORES_OUTPUT", + "ListOriginAccessControlsInput": "LIST_ORIGIN_ACCESS_CONTROLS_INPUT", + "ListOriginAccessControlsOutput": "LIST_ORIGIN_ACCESS_CONTROLS_OUTPUT", + "ListOriginRequestPoliciesInput": "LIST_ORIGIN_REQUEST_POLICIES_INPUT", + "ListOriginRequestPoliciesOutput": "LIST_ORIGIN_REQUEST_POLICIES_OUTPUT", + "ListPublicKeysInput": "LIST_PUBLIC_KEYS_INPUT", + "ListPublicKeysOutput": "LIST_PUBLIC_KEYS_OUTPUT", + "ListRealtimeLogConfigsInput": "LIST_REALTIME_LOG_CONFIGS_INPUT", + "ListRealtimeLogConfigsOutput": "LIST_REALTIME_LOG_CONFIGS_OUTPUT", + "ListResponseHeadersPoliciesInput": "LIST_RESPONSE_HEADERS_POLICIES_INPUT", + "ListResponseHeadersPoliciesOutput": "LIST_RESPONSE_HEADERS_POLICIES_OUTPUT", + "ListStreamingDistributionsInput": "LIST_STREAMING_DISTRIBUTIONS_INPUT", + "ListStreamingDistributionsOutput": "LIST_STREAMING_DISTRIBUTIONS_OUTPUT", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", + "ListTrustStoresInput": "LIST_TRUST_STORES_INPUT", + "ListTrustStoresOutput": "LIST_TRUST_STORES_OUTPUT", + "ListVpcOriginsInput": "LIST_VPC_ORIGINS_INPUT", + "ListVpcOriginsOutput": "LIST_VPC_ORIGINS_OUTPUT", + "LoggingConfig": "LOGGING_CONFIG", + "ManagedCertificateDetails": "MANAGED_CERTIFICATE_DETAILS", + "ManagedCertificateRequest": "MANAGED_CERTIFICATE_REQUEST", + "ManagedCertificateStatus": "MANAGED_CERTIFICATE_STATUS", + "Method": "METHOD", + "MinimumProtocolVersion": "MINIMUM_PROTOCOL_VERSION", + "MissingBody": "MISSING_BODY", + "MonitoringSubscription": "MONITORING_SUBSCRIPTION", + "MonitoringSubscriptionAlreadyExists": "MONITORING_SUBSCRIPTION_ALREADY_EXISTS", + "NoSuchCachePolicy": "NO_SUCH_CACHE_POLICY", + "NoSuchCloudFrontOriginAccessIdentity": "NO_SUCH_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "NoSuchContinuousDeploymentPolicy": "NO_SUCH_CONTINUOUS_DEPLOYMENT_POLICY", + "NoSuchDistribution": "NO_SUCH_DISTRIBUTION", + "NoSuchFieldLevelEncryptionConfig": "NO_SUCH_FIELD_LEVEL_ENCRYPTION_CONFIG", + "NoSuchFieldLevelEncryptionProfile": "NO_SUCH_FIELD_LEVEL_ENCRYPTION_PROFILE", + "NoSuchFunctionExists": "NO_SUCH_FUNCTION_EXISTS", + "NoSuchInvalidation": "NO_SUCH_INVALIDATION", + "NoSuchMonitoringSubscription": "NO_SUCH_MONITORING_SUBSCRIPTION", + "NoSuchOrigin": "NO_SUCH_ORIGIN", + "NoSuchOriginAccessControl": "NO_SUCH_ORIGIN_ACCESS_CONTROL", + "NoSuchOriginRequestPolicy": "NO_SUCH_ORIGIN_REQUEST_POLICY", + "NoSuchPublicKey": "NO_SUCH_PUBLIC_KEY", + "NoSuchRealtimeLogConfig": "NO_SUCH_REALTIME_LOG_CONFIG", + "NoSuchResource": "NO_SUCH_RESOURCE", + "NoSuchResponseHeadersPolicy": "NO_SUCH_RESPONSE_HEADERS_POLICY", + "NoSuchStreamingDistribution": "NO_SUCH_STREAMING_DISTRIBUTION", + "Origin": "ORIGIN", + "OriginAccessControl": "ORIGIN_ACCESS_CONTROL", + "OriginAccessControlAlreadyExists": "ORIGIN_ACCESS_CONTROL_ALREADY_EXISTS", + "OriginAccessControlConfig": "ORIGIN_ACCESS_CONTROL_CONFIG", + "OriginAccessControlInUse": "ORIGIN_ACCESS_CONTROL_IN_USE", + "OriginAccessControlList": "ORIGIN_ACCESS_CONTROL_LIST", + "OriginAccessControlOriginTypes": "ORIGIN_ACCESS_CONTROL_ORIGIN_TYPES", + "OriginAccessControlSigningBehaviors": "ORIGIN_ACCESS_CONTROL_SIGNING_BEHAVIORS", + "OriginAccessControlSigningProtocols": "ORIGIN_ACCESS_CONTROL_SIGNING_PROTOCOLS", + "OriginAccessControlSummary": "ORIGIN_ACCESS_CONTROL_SUMMARY", + "OriginCustomHeader": "ORIGIN_CUSTOM_HEADER", + "OriginGroup": "ORIGIN_GROUP", + "OriginGroupFailoverCriteria": "ORIGIN_GROUP_FAILOVER_CRITERIA", + "OriginGroupMember": "ORIGIN_GROUP_MEMBER", + "OriginGroupMembers": "ORIGIN_GROUP_MEMBERS", + "OriginGroups": "ORIGIN_GROUPS", + "OriginGroupSelectionCriteria": "ORIGIN_GROUP_SELECTION_CRITERIA", + "OriginMtlsConfig": "ORIGIN_MTLS_CONFIG", + "OriginProtocolPolicy": "ORIGIN_PROTOCOL_POLICY", + "OriginRequestPolicy": "ORIGIN_REQUEST_POLICY", + "OriginRequestPolicyAlreadyExists": "ORIGIN_REQUEST_POLICY_ALREADY_EXISTS", + "OriginRequestPolicyConfig": "ORIGIN_REQUEST_POLICY_CONFIG", + "OriginRequestPolicyCookieBehavior": "ORIGIN_REQUEST_POLICY_COOKIE_BEHAVIOR", + "OriginRequestPolicyCookiesConfig": "ORIGIN_REQUEST_POLICY_COOKIES_CONFIG", + "OriginRequestPolicyHeaderBehavior": "ORIGIN_REQUEST_POLICY_HEADER_BEHAVIOR", + "OriginRequestPolicyHeadersConfig": "ORIGIN_REQUEST_POLICY_HEADERS_CONFIG", + "OriginRequestPolicyInUse": "ORIGIN_REQUEST_POLICY_IN_USE", + "OriginRequestPolicyList": "ORIGIN_REQUEST_POLICY_LIST", + "OriginRequestPolicyQueryStringBehavior": "ORIGIN_REQUEST_POLICY_QUERY_STRING_BEHAVIOR", + "OriginRequestPolicyQueryStringsConfig": "ORIGIN_REQUEST_POLICY_QUERY_STRINGS_CONFIG", + "OriginRequestPolicySummary": "ORIGIN_REQUEST_POLICY_SUMMARY", + "OriginRequestPolicyType": "ORIGIN_REQUEST_POLICY_TYPE", + "Origins": "ORIGINS", + "OriginShield": "ORIGIN_SHIELD", + "OriginSslProtocols": "ORIGIN_SSL_PROTOCOLS", + "Parameter": "PARAMETER", + "ParameterDefinition": "PARAMETER_DEFINITION", + "ParameterDefinitionSchema": "PARAMETER_DEFINITION_SCHEMA", + "ParametersInCacheKeyAndForwardedToOrigin": "PARAMETERS_IN_CACHE_KEY_AND_FORWARDED_TO_ORIGIN", + "Paths": "PATHS", + "PreconditionFailed": "PRECONDITION_FAILED", + "PriceClass": "PRICE_CLASS", + "PublicKey": "PUBLIC_KEY", + "PublicKeyAlreadyExists": "PUBLIC_KEY_ALREADY_EXISTS", + "PublicKeyConfig": "PUBLIC_KEY_CONFIG", + "PublicKeyInUse": "PUBLIC_KEY_IN_USE", + "PublicKeyList": "PUBLIC_KEY_LIST", + "PublicKeySummary": "PUBLIC_KEY_SUMMARY", + "PublishConnectionFunctionInput": "PUBLISH_CONNECTION_FUNCTION_INPUT", + "PublishConnectionFunctionOutput": "PUBLISH_CONNECTION_FUNCTION_OUTPUT", + "PublishFunctionInput": "PUBLISH_FUNCTION_INPUT", + "PublishFunctionOutput": "PUBLISH_FUNCTION_OUTPUT", + "PutResourcePolicyInput": "PUT_RESOURCE_POLICY_INPUT", + "PutResourcePolicyOutput": "PUT_RESOURCE_POLICY_OUTPUT", + "QueryArgProfile": "QUERY_ARG_PROFILE", + "QueryArgProfileConfig": "QUERY_ARG_PROFILE_CONFIG", + "QueryArgProfileEmpty": "QUERY_ARG_PROFILE_EMPTY", + "QueryArgProfiles": "QUERY_ARG_PROFILES", + "QueryStringCacheKeys": "QUERY_STRING_CACHE_KEYS", + "QueryStringNames": "QUERY_STRING_NAMES", + "RealtimeLogConfig": "REALTIME_LOG_CONFIG", + "RealtimeLogConfigAlreadyExists": "REALTIME_LOG_CONFIG_ALREADY_EXISTS", + "RealtimeLogConfigInUse": "REALTIME_LOG_CONFIG_IN_USE", + "RealtimeLogConfigOwnerMismatch": "REALTIME_LOG_CONFIG_OWNER_MISMATCH", + "RealtimeLogConfigs": "REALTIME_LOG_CONFIGS", + "RealtimeMetricsSubscriptionConfig": "REALTIME_METRICS_SUBSCRIPTION_CONFIG", + "RealtimeMetricsSubscriptionStatus": "REALTIME_METRICS_SUBSCRIPTION_STATUS", + "ReferrerPolicyList": "REFERRER_POLICY_LIST", + "ResourceInUse": "RESOURCE_IN_USE", + "ResourceNotDisabled": "RESOURCE_NOT_DISABLED", + "ResponseHeadersPolicy": "RESPONSE_HEADERS_POLICY", + "ResponseHeadersPolicyAccessControlAllowHeaders": "RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_HEADERS", + "ResponseHeadersPolicyAccessControlAllowMethods": "RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS", + "ResponseHeadersPolicyAccessControlAllowMethodsValues": "RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_METHODS_VALUES", + "ResponseHeadersPolicyAccessControlAllowOrigins": "RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_ALLOW_ORIGINS", + "ResponseHeadersPolicyAccessControlExposeHeaders": "RESPONSE_HEADERS_POLICY_ACCESS_CONTROL_EXPOSE_HEADERS", + "ResponseHeadersPolicyAlreadyExists": "RESPONSE_HEADERS_POLICY_ALREADY_EXISTS", + "ResponseHeadersPolicyConfig": "RESPONSE_HEADERS_POLICY_CONFIG", + "ResponseHeadersPolicyContentSecurityPolicy": "RESPONSE_HEADERS_POLICY_CONTENT_SECURITY_POLICY", + "ResponseHeadersPolicyContentTypeOptions": "RESPONSE_HEADERS_POLICY_CONTENT_TYPE_OPTIONS", + "ResponseHeadersPolicyCorsConfig": "RESPONSE_HEADERS_POLICY_CORS_CONFIG", + "ResponseHeadersPolicyCustomHeader": "RESPONSE_HEADERS_POLICY_CUSTOM_HEADER", + "ResponseHeadersPolicyCustomHeadersConfig": "RESPONSE_HEADERS_POLICY_CUSTOM_HEADERS_CONFIG", + "ResponseHeadersPolicyFrameOptions": "RESPONSE_HEADERS_POLICY_FRAME_OPTIONS", + "ResponseHeadersPolicyInUse": "RESPONSE_HEADERS_POLICY_IN_USE", + "ResponseHeadersPolicyList": "RESPONSE_HEADERS_POLICY_LIST", + "ResponseHeadersPolicyReferrerPolicy": "RESPONSE_HEADERS_POLICY_REFERRER_POLICY", + "ResponseHeadersPolicyRemoveHeader": "RESPONSE_HEADERS_POLICY_REMOVE_HEADER", + "ResponseHeadersPolicyRemoveHeadersConfig": "RESPONSE_HEADERS_POLICY_REMOVE_HEADERS_CONFIG", + "ResponseHeadersPolicySecurityHeadersConfig": "RESPONSE_HEADERS_POLICY_SECURITY_HEADERS_CONFIG", + "ResponseHeadersPolicyServerTimingHeadersConfig": "RESPONSE_HEADERS_POLICY_SERVER_TIMING_HEADERS_CONFIG", + "ResponseHeadersPolicyStrictTransportSecurity": "RESPONSE_HEADERS_POLICY_STRICT_TRANSPORT_SECURITY", + "ResponseHeadersPolicySummary": "RESPONSE_HEADERS_POLICY_SUMMARY", + "ResponseHeadersPolicyType": "RESPONSE_HEADERS_POLICY_TYPE", + "ResponseHeadersPolicyXSSProtection": "RESPONSE_HEADERS_POLICY_XSS_PROTECTION", + "Restrictions": "RESTRICTIONS", + "S3Origin": "S3_ORIGIN", + "S3OriginConfig": "S3_ORIGIN_CONFIG", + "SessionStickinessConfig": "SESSION_STICKINESS_CONFIG", + "Signer": "SIGNER", + "SslProtocol": "SSL_PROTOCOL", + "SSLSupportMethod": "SSL_SUPPORT_METHOD", + "StagingDistributionDnsNames": "STAGING_DISTRIBUTION_DNS_NAMES", + "StagingDistributionInUse": "STAGING_DISTRIBUTION_IN_USE", + "StatusCodes": "STATUS_CODES", + "StreamingDistribution": "STREAMING_DISTRIBUTION", + "StreamingDistributionAlreadyExists": "STREAMING_DISTRIBUTION_ALREADY_EXISTS", + "StreamingDistributionConfig": "STREAMING_DISTRIBUTION_CONFIG", + "StreamingDistributionConfigWithTags": "STREAMING_DISTRIBUTION_CONFIG_WITH_TAGS", + "StreamingDistributionList": "STREAMING_DISTRIBUTION_LIST", + "StreamingDistributionNotDisabled": "STREAMING_DISTRIBUTION_NOT_DISABLED", + "StreamingDistributionSummary": "STREAMING_DISTRIBUTION_SUMMARY", + "StreamingLoggingConfig": "STREAMING_LOGGING_CONFIG", + "StringSchemaConfig": "STRING_SCHEMA_CONFIG", + "Tag": "TAG", + "TagKeys": "TAG_KEYS", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", + "Tags": "TAGS", + "TenantConfig": "TENANT_CONFIG", + "TestConnectionFunctionInput": "TEST_CONNECTION_FUNCTION_INPUT", + "TestConnectionFunctionOutput": "TEST_CONNECTION_FUNCTION_OUTPUT", + "TestFunctionFailed": "TEST_FUNCTION_FAILED", + "TestFunctionInput": "TEST_FUNCTION_INPUT", + "TestFunctionOutput": "TEST_FUNCTION_OUTPUT", + "TestResult": "TEST_RESULT", + "TooLongCSPInResponseHeadersPolicy": "TOO_LONG_CSP_IN_RESPONSE_HEADERS_POLICY", + "TooManyCacheBehaviors": "TOO_MANY_CACHE_BEHAVIORS", + "TooManyCachePolicies": "TOO_MANY_CACHE_POLICIES", + "TooManyCertificates": "TOO_MANY_CERTIFICATES", + "TooManyCloudFrontOriginAccessIdentities": "TOO_MANY_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES", + "TooManyContinuousDeploymentPolicies": "TOO_MANY_CONTINUOUS_DEPLOYMENT_POLICIES", + "TooManyCookieNamesInWhiteList": "TOO_MANY_COOKIE_NAMES_IN_WHITE_LIST", + "TooManyCookiesInCachePolicy": "TOO_MANY_COOKIES_IN_CACHE_POLICY", + "TooManyCookiesInOriginRequestPolicy": "TOO_MANY_COOKIES_IN_ORIGIN_REQUEST_POLICY", + "TooManyCustomHeadersInResponseHeadersPolicy": "TOO_MANY_CUSTOM_HEADERS_IN_RESPONSE_HEADERS_POLICY", + "TooManyDistributionCNAMEs": "TOO_MANY_DISTRIBUTION_CNAM_ES", + "TooManyDistributions": "TOO_MANY_DISTRIBUTIONS", + "TooManyDistributionsAssociatedToCachePolicy": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_CACHE_POLICY", + "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_FIELD_LEVEL_ENCRYPTION_CONFIG", + "TooManyDistributionsAssociatedToKeyGroup": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_KEY_GROUP", + "TooManyDistributionsAssociatedToOriginAccessControl": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_ACCESS_CONTROL", + "TooManyDistributionsAssociatedToOriginRequestPolicy": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_ORIGIN_REQUEST_POLICY", + "TooManyDistributionsAssociatedToResponseHeadersPolicy": "TOO_MANY_DISTRIBUTIONS_ASSOCIATED_TO_RESPONSE_HEADERS_POLICY", + "TooManyDistributionsWithFunctionAssociations": "TOO_MANY_DISTRIBUTIONS_WITH_FUNCTION_ASSOCIATIONS", + "TooManyDistributionsWithLambdaAssociations": "TOO_MANY_DISTRIBUTIONS_WITH_LAMBDA_ASSOCIATIONS", + "TooManyDistributionsWithSingleFunctionARN": "TOO_MANY_DISTRIBUTIONS_WITH_SINGLE_FUNCTION_ARN", + "TooManyFieldLevelEncryptionConfigs": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONFIGS", + "TooManyFieldLevelEncryptionContentTypeProfiles": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_CONTENT_TYPE_PROFILES", + "TooManyFieldLevelEncryptionEncryptionEntities": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_ENCRYPTION_ENTITIES", + "TooManyFieldLevelEncryptionFieldPatterns": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_FIELD_PATTERNS", + "TooManyFieldLevelEncryptionProfiles": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_PROFILES", + "TooManyFieldLevelEncryptionQueryArgProfiles": "TOO_MANY_FIELD_LEVEL_ENCRYPTION_QUERY_ARG_PROFILES", + "TooManyFunctionAssociations": "TOO_MANY_FUNCTION_ASSOCIATIONS", + "TooManyFunctions": "TOO_MANY_FUNCTIONS", + "TooManyHeadersInCachePolicy": "TOO_MANY_HEADERS_IN_CACHE_POLICY", + "TooManyHeadersInForwardedValues": "TOO_MANY_HEADERS_IN_FORWARDED_VALUES", + "TooManyHeadersInOriginRequestPolicy": "TOO_MANY_HEADERS_IN_ORIGIN_REQUEST_POLICY", + "TooManyInvalidationsInProgress": "TOO_MANY_INVALIDATIONS_IN_PROGRESS", + "TooManyKeyGroups": "TOO_MANY_KEY_GROUPS", + "TooManyKeyGroupsAssociatedToDistribution": "TOO_MANY_KEY_GROUPS_ASSOCIATED_TO_DISTRIBUTION", + "TooManyLambdaFunctionAssociations": "TOO_MANY_LAMBDA_FUNCTION_ASSOCIATIONS", + "TooManyOriginAccessControls": "TOO_MANY_ORIGIN_ACCESS_CONTROLS", + "TooManyOriginCustomHeaders": "TOO_MANY_ORIGIN_CUSTOM_HEADERS", + "TooManyOriginGroupsPerDistribution": "TOO_MANY_ORIGIN_GROUPS_PER_DISTRIBUTION", + "TooManyOriginRequestPolicies": "TOO_MANY_ORIGIN_REQUEST_POLICIES", + "TooManyOrigins": "TOO_MANY_ORIGINS", + "TooManyPublicKeys": "TOO_MANY_PUBLIC_KEYS", + "TooManyPublicKeysInKeyGroup": "TOO_MANY_PUBLIC_KEYS_IN_KEY_GROUP", + "TooManyQueryStringParameters": "TOO_MANY_QUERY_STRING_PARAMETERS", + "TooManyQueryStringsInCachePolicy": "TOO_MANY_QUERY_STRINGS_IN_CACHE_POLICY", + "TooManyQueryStringsInOriginRequestPolicy": "TOO_MANY_QUERY_STRINGS_IN_ORIGIN_REQUEST_POLICY", + "TooManyRealtimeLogConfigs": "TOO_MANY_REALTIME_LOG_CONFIGS", + "TooManyRemoveHeadersInResponseHeadersPolicy": "TOO_MANY_REMOVE_HEADERS_IN_RESPONSE_HEADERS_POLICY", + "TooManyResponseHeadersPolicies": "TOO_MANY_RESPONSE_HEADERS_POLICIES", + "TooManyStreamingDistributionCNAMEs": "TOO_MANY_STREAMING_DISTRIBUTION_CNAM_ES", + "TooManyStreamingDistributions": "TOO_MANY_STREAMING_DISTRIBUTIONS", + "TooManyTrustedSigners": "TOO_MANY_TRUSTED_SIGNERS", + "TrafficConfig": "TRAFFIC_CONFIG", + "TrustedKeyGroupDoesNotExist": "TRUSTED_KEY_GROUP_DOES_NOT_EXIST", + "TrustedKeyGroups": "TRUSTED_KEY_GROUPS", + "TrustedSignerDoesNotExist": "TRUSTED_SIGNER_DOES_NOT_EXIST", + "TrustedSigners": "TRUSTED_SIGNERS", + "TrustStore": "TRUST_STORE", + "TrustStoreConfig": "TRUST_STORE_CONFIG", + "TrustStoreStatus": "TRUST_STORE_STATUS", + "TrustStoreSummary": "TRUST_STORE_SUMMARY", + "UnsupportedOperation": "UNSUPPORTED_OPERATION", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", + "UpdateAnycastIpListInput": "UPDATE_ANYCAST_IP_LIST_INPUT", + "UpdateAnycastIpListOutput": "UPDATE_ANYCAST_IP_LIST_OUTPUT", + "UpdateCachePolicyInput": "UPDATE_CACHE_POLICY_INPUT", + "UpdateCachePolicyOutput": "UPDATE_CACHE_POLICY_OUTPUT", + "UpdateCloudFrontOriginAccessIdentityInput": "UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_INPUT", + "UpdateCloudFrontOriginAccessIdentityOutput": "UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_OUTPUT", + "UpdateConnectionFunctionInput": "UPDATE_CONNECTION_FUNCTION_INPUT", + "UpdateConnectionFunctionOutput": "UPDATE_CONNECTION_FUNCTION_OUTPUT", + "UpdateConnectionGroupInput": "UPDATE_CONNECTION_GROUP_INPUT", + "UpdateConnectionGroupOutput": "UPDATE_CONNECTION_GROUP_OUTPUT", + "UpdateContinuousDeploymentPolicyInput": "UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_INPUT", + "UpdateContinuousDeploymentPolicyOutput": "UPDATE_CONTINUOUS_DEPLOYMENT_POLICY_OUTPUT", + "UpdateDistributionInput": "UPDATE_DISTRIBUTION_INPUT", + "UpdateDistributionOutput": "UPDATE_DISTRIBUTION_OUTPUT", + "UpdateDistributionTenantInput": "UPDATE_DISTRIBUTION_TENANT_INPUT", + "UpdateDistributionTenantOutput": "UPDATE_DISTRIBUTION_TENANT_OUTPUT", + "UpdateDistributionWithStagingConfigInput": "UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_INPUT", + "UpdateDistributionWithStagingConfigOutput": "UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG_OUTPUT", + "UpdateDomainAssociationInput": "UPDATE_DOMAIN_ASSOCIATION_INPUT", + "UpdateDomainAssociationOutput": "UPDATE_DOMAIN_ASSOCIATION_OUTPUT", + "UpdateFieldLevelEncryptionConfigInput": "UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_INPUT", + "UpdateFieldLevelEncryptionConfigOutput": "UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG_OUTPUT", + "UpdateFieldLevelEncryptionProfileInput": "UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_INPUT", + "UpdateFieldLevelEncryptionProfileOutput": "UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE_OUTPUT", + "UpdateFunctionInput": "UPDATE_FUNCTION_INPUT", + "UpdateFunctionOutput": "UPDATE_FUNCTION_OUTPUT", + "UpdateKeyGroupInput": "UPDATE_KEY_GROUP_INPUT", + "UpdateKeyGroupOutput": "UPDATE_KEY_GROUP_OUTPUT", + "UpdateKeyValueStoreInput": "UPDATE_KEY_VALUE_STORE_INPUT", + "UpdateKeyValueStoreOutput": "UPDATE_KEY_VALUE_STORE_OUTPUT", + "UpdateOriginAccessControlInput": "UPDATE_ORIGIN_ACCESS_CONTROL_INPUT", + "UpdateOriginAccessControlOutput": "UPDATE_ORIGIN_ACCESS_CONTROL_OUTPUT", + "UpdateOriginRequestPolicyInput": "UPDATE_ORIGIN_REQUEST_POLICY_INPUT", + "UpdateOriginRequestPolicyOutput": "UPDATE_ORIGIN_REQUEST_POLICY_OUTPUT", + "UpdatePublicKeyInput": "UPDATE_PUBLIC_KEY_INPUT", + "UpdatePublicKeyOutput": "UPDATE_PUBLIC_KEY_OUTPUT", + "UpdateRealtimeLogConfigInput": "UPDATE_REALTIME_LOG_CONFIG_INPUT", + "UpdateRealtimeLogConfigOutput": "UPDATE_REALTIME_LOG_CONFIG_OUTPUT", + "UpdateResponseHeadersPolicyInput": "UPDATE_RESPONSE_HEADERS_POLICY_INPUT", + "UpdateResponseHeadersPolicyOutput": "UPDATE_RESPONSE_HEADERS_POLICY_OUTPUT", + "UpdateStreamingDistributionInput": "UPDATE_STREAMING_DISTRIBUTION_INPUT", + "UpdateStreamingDistributionOutput": "UPDATE_STREAMING_DISTRIBUTION_OUTPUT", + "UpdateTrustStoreInput": "UPDATE_TRUST_STORE_INPUT", + "UpdateTrustStoreOutput": "UPDATE_TRUST_STORE_OUTPUT", + "UpdateVpcOriginInput": "UPDATE_VPC_ORIGIN_INPUT", + "UpdateVpcOriginOutput": "UPDATE_VPC_ORIGIN_OUTPUT", + "ValidationTokenDetail": "VALIDATION_TOKEN_DETAIL", + "ValidationTokenHost": "VALIDATION_TOKEN_HOST", + "VerifyDnsConfigurationInput": "VERIFY_DNS_CONFIGURATION_INPUT", + "VerifyDnsConfigurationOutput": "VERIFY_DNS_CONFIGURATION_OUTPUT", + "ViewerCertificate": "VIEWER_CERTIFICATE", + "ViewerMtlsConfig": "VIEWER_MTLS_CONFIG", + "ViewerMtlsMode": "VIEWER_MTLS_MODE", + "ViewerProtocolPolicy": "VIEWER_PROTOCOL_POLICY", + "VpcIpAddressType": "VPC_IP_ADDRESS_TYPE", + "VpcOrigin": "VPC_ORIGIN", + "VpcOriginConfig": "VPC_ORIGIN_CONFIG", + "VpcOriginEndpointConfig": "VPC_ORIGIN_ENDPOINT_CONFIG", + "VpcOriginList": "VPC_ORIGIN_LIST", + "VpcOriginSummary": "VPC_ORIGIN_SUMMARY", + "WebAclCustomization": "WEB_ACL_CUSTOMIZATION", + }, + shape_names=frozenset( + { + "AccessDenied", + "ActiveTrustedKeyGroups", + "ActiveTrustedSigners", + "AliasICPRecordal", + "Aliases", + "AllowedMethods", + "AnycastIpList", + "AnycastIpListCollection", + "AnycastIpListSummary", + "AssociateAliasInput", + "AssociateAliasOutput", + "AssociateDistributionTenantWebACLInput", + "AssociateDistributionTenantWebACLOutput", + "AssociateDistributionWebACLInput", + "AssociateDistributionWebACLOutput", + "BatchTooLarge", + "CNAMEAlreadyExists", + "CaCertificatesBundleS3Location", + "CaCertificatesBundleSource", + "CacheBehavior", + "CacheBehaviors", + "CachePolicy", + "CachePolicyAlreadyExists", + "CachePolicyConfig", + "CachePolicyCookieBehavior", + "CachePolicyCookiesConfig", + "CachePolicyHeaderBehavior", + "CachePolicyHeadersConfig", + "CachePolicyInUse", + "CachePolicyList", + "CachePolicyQueryStringBehavior", + "CachePolicyQueryStringsConfig", + "CachePolicySummary", + "CachePolicyType", + "CacheTagConfig", + "CachedMethods", + "CannotChangeImmutablePublicKeyFields", + "CannotDeleteEntityWhileInUse", + "CannotUpdateEntityWhileInUse", + "Certificate", + "CertificateSource", + "CertificateTransparencyLoggingPreference", + "CloudFrontOriginAccessIdentity", + "CloudFrontOriginAccessIdentityAlreadyExists", + "CloudFrontOriginAccessIdentityConfig", + "CloudFrontOriginAccessIdentityInUse", + "CloudFrontOriginAccessIdentityList", + "CloudFrontOriginAccessIdentitySummary", + "ConflictingAlias", + "ConflictingAliasesList", + "ConnectionFunctionAssociation", + "ConnectionFunctionSummary", + "ConnectionFunctionTestResult", + "ConnectionGroup", + "ConnectionGroupAssociationFilter", + "ConnectionGroupSummary", + "ConnectionMode", + "ContentTypeProfile", + "ContentTypeProfileConfig", + "ContentTypeProfiles", + "ContinuousDeploymentPolicy", + "ContinuousDeploymentPolicyAlreadyExists", + "ContinuousDeploymentPolicyConfig", + "ContinuousDeploymentPolicyInUse", + "ContinuousDeploymentPolicyList", + "ContinuousDeploymentPolicySummary", + "ContinuousDeploymentPolicyType", + "ContinuousDeploymentSingleHeaderConfig", + "ContinuousDeploymentSingleWeightConfig", + "CookieNames", + "CookiePreference", + "CopyDistributionInput", + "CopyDistributionOutput", + "CreateAnycastIpListInput", + "CreateAnycastIpListOutput", + "CreateCachePolicyInput", + "CreateCachePolicyOutput", + "CreateCloudFrontOriginAccessIdentityInput", + "CreateCloudFrontOriginAccessIdentityOutput", + "CreateConnectionFunctionInput", + "CreateConnectionFunctionOutput", + "CreateConnectionGroupInput", + "CreateConnectionGroupOutput", + "CreateContinuousDeploymentPolicyInput", + "CreateContinuousDeploymentPolicyOutput", + "CreateDistributionInput", + "CreateDistributionOutput", + "CreateDistributionTenantInput", + "CreateDistributionTenantOutput", + "CreateDistributionWithTagsInput", + "CreateDistributionWithTagsOutput", + "CreateFieldLevelEncryptionConfigInput", + "CreateFieldLevelEncryptionConfigOutput", + "CreateFieldLevelEncryptionProfileInput", + "CreateFieldLevelEncryptionProfileOutput", + "CreateFunctionInput", + "CreateFunctionOutput", + "CreateInvalidationForDistributionTenantInput", + "CreateInvalidationForDistributionTenantOutput", + "CreateInvalidationInput", + "CreateInvalidationOutput", + "CreateKeyGroupInput", + "CreateKeyGroupOutput", + "CreateKeyValueStoreInput", + "CreateKeyValueStoreOutput", + "CreateMonitoringSubscriptionInput", + "CreateMonitoringSubscriptionOutput", + "CreateOriginAccessControlInput", + "CreateOriginAccessControlOutput", + "CreateOriginRequestPolicyInput", + "CreateOriginRequestPolicyOutput", + "CreatePublicKeyInput", + "CreatePublicKeyOutput", + "CreateRealtimeLogConfigInput", + "CreateRealtimeLogConfigOutput", + "CreateResponseHeadersPolicyInput", + "CreateResponseHeadersPolicyOutput", + "CreateStreamingDistributionInput", + "CreateStreamingDistributionOutput", + "CreateStreamingDistributionWithTagsInput", + "CreateStreamingDistributionWithTagsOutput", + "CreateTrustStoreInput", + "CreateTrustStoreOutput", + "CreateVpcOriginInput", + "CreateVpcOriginOutput", + "CustomErrorResponse", + "CustomErrorResponses", + "CustomHeaders", + "CustomOriginConfig", + "CustomizationActionType", + "Customizations", + "DefaultCacheBehavior", + "DeleteAnycastIpListInput", + "DeleteAnycastIpListOutput", + "DeleteCachePolicyInput", + "DeleteCachePolicyOutput", + "DeleteCloudFrontOriginAccessIdentityInput", + "DeleteCloudFrontOriginAccessIdentityOutput", + "DeleteConnectionFunctionInput", + "DeleteConnectionFunctionOutput", + "DeleteConnectionGroupInput", + "DeleteConnectionGroupOutput", + "DeleteContinuousDeploymentPolicyInput", + "DeleteContinuousDeploymentPolicyOutput", + "DeleteDistributionInput", + "DeleteDistributionOutput", + "DeleteDistributionTenantInput", + "DeleteDistributionTenantOutput", + "DeleteFieldLevelEncryptionConfigInput", + "DeleteFieldLevelEncryptionConfigOutput", + "DeleteFieldLevelEncryptionProfileInput", + "DeleteFieldLevelEncryptionProfileOutput", + "DeleteFunctionInput", + "DeleteFunctionOutput", + "DeleteKeyGroupInput", + "DeleteKeyGroupOutput", + "DeleteKeyValueStoreInput", + "DeleteKeyValueStoreOutput", + "DeleteMonitoringSubscriptionInput", + "DeleteMonitoringSubscriptionOutput", + "DeleteOriginAccessControlInput", + "DeleteOriginAccessControlOutput", + "DeleteOriginRequestPolicyInput", + "DeleteOriginRequestPolicyOutput", + "DeletePublicKeyInput", + "DeletePublicKeyOutput", + "DeleteRealtimeLogConfigInput", + "DeleteRealtimeLogConfigOutput", + "DeleteResourcePolicyInput", + "DeleteResourcePolicyOutput", + "DeleteResponseHeadersPolicyInput", + "DeleteResponseHeadersPolicyOutput", + "DeleteStreamingDistributionInput", + "DeleteStreamingDistributionOutput", + "DeleteTrustStoreInput", + "DeleteTrustStoreOutput", + "DeleteVpcOriginInput", + "DeleteVpcOriginOutput", + "DescribeConnectionFunctionInput", + "DescribeConnectionFunctionOutput", + "DescribeFunctionInput", + "DescribeFunctionOutput", + "DescribeKeyValueStoreInput", + "DescribeKeyValueStoreOutput", + "DisassociateDistributionTenantWebACLInput", + "DisassociateDistributionTenantWebACLOutput", + "DisassociateDistributionWebACLInput", + "DisassociateDistributionWebACLOutput", + "Distribution", + "DistributionAlreadyExists", + "DistributionConfig", + "DistributionConfigWithTags", + "DistributionIdList", + "DistributionIdOwner", + "DistributionIdOwnerList", + "DistributionList", + "DistributionNotDisabled", + "DistributionResourceId", + "DistributionResourceType", + "DistributionSummary", + "DistributionTenant", + "DistributionTenantAssociationFilter", + "DistributionTenantSummary", + "DnsConfiguration", + "DnsConfigurationStatus", + "DomainConflict", + "DomainItem", + "DomainResult", + "DomainStatus", + "EncryptionEntities", + "EncryptionEntity", + "EndPoint", + "EntityAlreadyExists", + "EntityLimitExceeded", + "EntityNotFound", + "EntitySizeLimitExceeded", + "EventType", + "FieldLevelEncryption", + "FieldLevelEncryptionConfig", + "FieldLevelEncryptionConfigAlreadyExists", + "FieldLevelEncryptionConfigInUse", + "FieldLevelEncryptionList", + "FieldLevelEncryptionProfile", + "FieldLevelEncryptionProfileAlreadyExists", + "FieldLevelEncryptionProfileConfig", + "FieldLevelEncryptionProfileInUse", + "FieldLevelEncryptionProfileList", + "FieldLevelEncryptionProfileSizeExceeded", + "FieldLevelEncryptionProfileSummary", + "FieldLevelEncryptionSummary", + "FieldPatterns", + "Format", + "ForwardedValues", + "FrameOptionsList", + "FunctionAlreadyExists", + "FunctionAssociation", + "FunctionAssociations", + "FunctionConfig", + "FunctionInUse", + "FunctionList", + "FunctionMetadata", + "FunctionRuntime", + "FunctionSizeLimitExceeded", + "FunctionStage", + "FunctionSummary", + "GeoRestriction", + "GeoRestrictionCustomization", + "GeoRestrictionType", + "GetAnycastIpListInput", + "GetAnycastIpListOutput", + "GetCachePolicyConfigInput", + "GetCachePolicyConfigOutput", + "GetCachePolicyInput", + "GetCachePolicyOutput", + "GetCloudFrontOriginAccessIdentityConfigInput", + "GetCloudFrontOriginAccessIdentityConfigOutput", + "GetCloudFrontOriginAccessIdentityInput", + "GetCloudFrontOriginAccessIdentityOutput", + "GetConnectionFunctionInput", + "GetConnectionFunctionOutput", + "GetConnectionGroupByRoutingEndpointInput", + "GetConnectionGroupByRoutingEndpointOutput", + "GetConnectionGroupInput", + "GetConnectionGroupOutput", + "GetContinuousDeploymentPolicyConfigInput", + "GetContinuousDeploymentPolicyConfigOutput", + "GetContinuousDeploymentPolicyInput", + "GetContinuousDeploymentPolicyOutput", + "GetDistributionConfigInput", + "GetDistributionConfigOutput", + "GetDistributionInput", + "GetDistributionOutput", + "GetDistributionTenantByDomainInput", + "GetDistributionTenantByDomainOutput", + "GetDistributionTenantInput", + "GetDistributionTenantOutput", + "GetFieldLevelEncryptionConfigInput", + "GetFieldLevelEncryptionConfigOutput", + "GetFieldLevelEncryptionInput", + "GetFieldLevelEncryptionOutput", + "GetFieldLevelEncryptionProfileConfigInput", + "GetFieldLevelEncryptionProfileConfigOutput", + "GetFieldLevelEncryptionProfileInput", + "GetFieldLevelEncryptionProfileOutput", + "GetFunctionInput", + "GetFunctionOutput", + "GetInvalidationForDistributionTenantInput", + "GetInvalidationForDistributionTenantOutput", + "GetInvalidationInput", + "GetInvalidationOutput", + "GetKeyGroupConfigInput", + "GetKeyGroupConfigOutput", + "GetKeyGroupInput", + "GetKeyGroupOutput", + "GetManagedCertificateDetailsInput", + "GetManagedCertificateDetailsOutput", + "GetMonitoringSubscriptionInput", + "GetMonitoringSubscriptionOutput", + "GetOriginAccessControlConfigInput", + "GetOriginAccessControlConfigOutput", + "GetOriginAccessControlInput", + "GetOriginAccessControlOutput", + "GetOriginRequestPolicyConfigInput", + "GetOriginRequestPolicyConfigOutput", + "GetOriginRequestPolicyInput", + "GetOriginRequestPolicyOutput", + "GetPublicKeyConfigInput", + "GetPublicKeyConfigOutput", + "GetPublicKeyInput", + "GetPublicKeyOutput", + "GetRealtimeLogConfigInput", + "GetRealtimeLogConfigOutput", + "GetResourcePolicyInput", + "GetResourcePolicyOutput", + "GetResponseHeadersPolicyConfigInput", + "GetResponseHeadersPolicyConfigOutput", + "GetResponseHeadersPolicyInput", + "GetResponseHeadersPolicyOutput", + "GetStreamingDistributionConfigInput", + "GetStreamingDistributionConfigOutput", + "GetStreamingDistributionInput", + "GetStreamingDistributionOutput", + "GetTrustStoreInput", + "GetTrustStoreOutput", + "GetVpcOriginInput", + "GetVpcOriginOutput", + "GrpcConfig", + "Headers", + "HttpVersion", + "ICPRecordalStatus", + "IllegalDelete", + "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "IllegalOriginAccessConfiguration", + "IllegalUpdate", + "ImportSource", + "ImportSourceType", + "InconsistentQuantities", + "InvalidArgument", + "InvalidAssociation", + "InvalidDefaultRootObject", + "InvalidDomainNameForOriginAccessControl", + "InvalidErrorCode", + "InvalidForwardCookies", + "InvalidFunctionAssociation", + "InvalidGeoRestrictionParameter", + "InvalidHeadersForS3Origin", + "InvalidIfMatchVersion", + "InvalidLambdaFunctionAssociation", + "InvalidLocationCode", + "InvalidMinimumProtocolVersion", + "InvalidOrigin", + "InvalidOriginAccessControl", + "InvalidOriginAccessIdentity", + "InvalidOriginKeepaliveTimeout", + "InvalidOriginReadTimeout", + "InvalidProtocolSettings", + "InvalidQueryStringParameters", + "InvalidRelativePath", + "InvalidRequiredProtocol", + "InvalidResponseCode", + "InvalidTTLOrder", + "InvalidTagging", + "InvalidViewerCertificate", + "InvalidWebACLId", + "Invalidation", + "InvalidationBatch", + "InvalidationList", + "InvalidationSummary", + "IpAddressType", + "IpamCidrConfig", + "IpamCidrStatus", + "IpamConfig", + "ItemSelection", + "KGKeyPairIds", + "KeyGroup", + "KeyGroupAlreadyExists", + "KeyGroupConfig", + "KeyGroupList", + "KeyGroupSummary", + "KeyPairIds", + "KeyValueStore", + "KeyValueStoreAssociation", + "KeyValueStoreAssociations", + "KeyValueStoreList", + "KinesisStreamConfig", + "LambdaFunctionAssociation", + "LambdaFunctionAssociations", + "ListAnycastIpListsInput", + "ListAnycastIpListsOutput", + "ListCachePoliciesInput", + "ListCachePoliciesOutput", + "ListCloudFrontOriginAccessIdentitiesInput", + "ListCloudFrontOriginAccessIdentitiesOutput", + "ListConflictingAliasesInput", + "ListConflictingAliasesOutput", + "ListConnectionFunctionsInput", + "ListConnectionFunctionsOutput", + "ListConnectionGroupsInput", + "ListConnectionGroupsOutput", + "ListContinuousDeploymentPoliciesInput", + "ListContinuousDeploymentPoliciesOutput", + "ListDistributionTenantsByCustomizationInput", + "ListDistributionTenantsByCustomizationOutput", + "ListDistributionTenantsInput", + "ListDistributionTenantsOutput", + "ListDistributionsByAnycastIpListIdInput", + "ListDistributionsByAnycastIpListIdOutput", + "ListDistributionsByCachePolicyIdInput", + "ListDistributionsByCachePolicyIdOutput", + "ListDistributionsByConnectionFunctionInput", + "ListDistributionsByConnectionFunctionOutput", + "ListDistributionsByConnectionModeInput", + "ListDistributionsByConnectionModeOutput", + "ListDistributionsByKeyGroupInput", + "ListDistributionsByKeyGroupOutput", + "ListDistributionsByOriginRequestPolicyIdInput", + "ListDistributionsByOriginRequestPolicyIdOutput", + "ListDistributionsByOwnedResourceInput", + "ListDistributionsByOwnedResourceOutput", + "ListDistributionsByRealtimeLogConfigInput", + "ListDistributionsByRealtimeLogConfigOutput", + "ListDistributionsByResponseHeadersPolicyIdInput", + "ListDistributionsByResponseHeadersPolicyIdOutput", + "ListDistributionsByTrustStoreInput", + "ListDistributionsByTrustStoreOutput", + "ListDistributionsByVpcOriginIdInput", + "ListDistributionsByVpcOriginIdOutput", + "ListDistributionsByWebACLIdInput", + "ListDistributionsByWebACLIdOutput", + "ListDistributionsInput", + "ListDistributionsOutput", + "ListDomainConflictsInput", + "ListDomainConflictsOutput", + "ListFieldLevelEncryptionConfigsInput", + "ListFieldLevelEncryptionConfigsOutput", + "ListFieldLevelEncryptionProfilesInput", + "ListFieldLevelEncryptionProfilesOutput", + "ListFunctionsInput", + "ListFunctionsOutput", + "ListInvalidationsForDistributionTenantInput", + "ListInvalidationsForDistributionTenantOutput", + "ListInvalidationsInput", + "ListInvalidationsOutput", + "ListKeyGroupsInput", + "ListKeyGroupsOutput", + "ListKeyValueStoresInput", + "ListKeyValueStoresOutput", + "ListOriginAccessControlsInput", + "ListOriginAccessControlsOutput", + "ListOriginRequestPoliciesInput", + "ListOriginRequestPoliciesOutput", + "ListPublicKeysInput", + "ListPublicKeysOutput", + "ListRealtimeLogConfigsInput", + "ListRealtimeLogConfigsOutput", + "ListResponseHeadersPoliciesInput", + "ListResponseHeadersPoliciesOutput", + "ListStreamingDistributionsInput", + "ListStreamingDistributionsOutput", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", + "ListTrustStoresInput", + "ListTrustStoresOutput", + "ListVpcOriginsInput", + "ListVpcOriginsOutput", + "LoggingConfig", + "ManagedCertificateDetails", + "ManagedCertificateRequest", + "ManagedCertificateStatus", + "Method", + "MinimumProtocolVersion", + "MissingBody", + "MonitoringSubscription", + "MonitoringSubscriptionAlreadyExists", + "NoSuchCachePolicy", + "NoSuchCloudFrontOriginAccessIdentity", + "NoSuchContinuousDeploymentPolicy", + "NoSuchDistribution", + "NoSuchFieldLevelEncryptionConfig", + "NoSuchFieldLevelEncryptionProfile", + "NoSuchFunctionExists", + "NoSuchInvalidation", + "NoSuchMonitoringSubscription", + "NoSuchOrigin", + "NoSuchOriginAccessControl", + "NoSuchOriginRequestPolicy", + "NoSuchPublicKey", + "NoSuchRealtimeLogConfig", + "NoSuchResource", + "NoSuchResponseHeadersPolicy", + "NoSuchStreamingDistribution", + "Origin", + "OriginAccessControl", + "OriginAccessControlAlreadyExists", + "OriginAccessControlConfig", + "OriginAccessControlInUse", + "OriginAccessControlList", + "OriginAccessControlOriginTypes", + "OriginAccessControlSigningBehaviors", + "OriginAccessControlSigningProtocols", + "OriginAccessControlSummary", + "OriginCustomHeader", + "OriginGroup", + "OriginGroupFailoverCriteria", + "OriginGroupMember", + "OriginGroupMembers", + "OriginGroupSelectionCriteria", + "OriginGroups", + "OriginMtlsConfig", + "OriginProtocolPolicy", + "OriginRequestPolicy", + "OriginRequestPolicyAlreadyExists", + "OriginRequestPolicyConfig", + "OriginRequestPolicyCookieBehavior", + "OriginRequestPolicyCookiesConfig", + "OriginRequestPolicyHeaderBehavior", + "OriginRequestPolicyHeadersConfig", + "OriginRequestPolicyInUse", + "OriginRequestPolicyList", + "OriginRequestPolicyQueryStringBehavior", + "OriginRequestPolicyQueryStringsConfig", + "OriginRequestPolicySummary", + "OriginRequestPolicyType", + "OriginShield", + "OriginSslProtocols", + "Origins", + "Parameter", + "ParameterDefinition", + "ParameterDefinitionSchema", + "ParametersInCacheKeyAndForwardedToOrigin", + "Paths", + "PreconditionFailed", + "PriceClass", + "PublicKey", + "PublicKeyAlreadyExists", + "PublicKeyConfig", + "PublicKeyInUse", + "PublicKeyList", + "PublicKeySummary", + "PublishConnectionFunctionInput", + "PublishConnectionFunctionOutput", + "PublishFunctionInput", + "PublishFunctionOutput", + "PutResourcePolicyInput", + "PutResourcePolicyOutput", + "QueryArgProfile", + "QueryArgProfileConfig", + "QueryArgProfileEmpty", + "QueryArgProfiles", + "QueryStringCacheKeys", + "QueryStringNames", + "RealtimeLogConfig", + "RealtimeLogConfigAlreadyExists", + "RealtimeLogConfigInUse", + "RealtimeLogConfigOwnerMismatch", + "RealtimeLogConfigs", + "RealtimeMetricsSubscriptionConfig", + "RealtimeMetricsSubscriptionStatus", + "ReferrerPolicyList", + "ResourceInUse", + "ResourceNotDisabled", + "ResponseHeadersPolicy", + "ResponseHeadersPolicyAccessControlAllowHeaders", + "ResponseHeadersPolicyAccessControlAllowMethods", + "ResponseHeadersPolicyAccessControlAllowMethodsValues", + "ResponseHeadersPolicyAccessControlAllowOrigins", + "ResponseHeadersPolicyAccessControlExposeHeaders", + "ResponseHeadersPolicyAlreadyExists", + "ResponseHeadersPolicyConfig", + "ResponseHeadersPolicyContentSecurityPolicy", + "ResponseHeadersPolicyContentTypeOptions", + "ResponseHeadersPolicyCorsConfig", + "ResponseHeadersPolicyCustomHeader", + "ResponseHeadersPolicyCustomHeadersConfig", + "ResponseHeadersPolicyFrameOptions", + "ResponseHeadersPolicyInUse", + "ResponseHeadersPolicyList", + "ResponseHeadersPolicyReferrerPolicy", + "ResponseHeadersPolicyRemoveHeader", + "ResponseHeadersPolicyRemoveHeadersConfig", + "ResponseHeadersPolicySecurityHeadersConfig", + "ResponseHeadersPolicyServerTimingHeadersConfig", + "ResponseHeadersPolicyStrictTransportSecurity", + "ResponseHeadersPolicySummary", + "ResponseHeadersPolicyType", + "ResponseHeadersPolicyXSSProtection", + "Restrictions", + "S3Origin", + "S3OriginConfig", + "SSLSupportMethod", + "SessionStickinessConfig", + "Signer", + "SslProtocol", + "StagingDistributionDnsNames", + "StagingDistributionInUse", + "StatusCodes", + "StreamingDistribution", + "StreamingDistributionAlreadyExists", + "StreamingDistributionConfig", + "StreamingDistributionConfigWithTags", + "StreamingDistributionList", + "StreamingDistributionNotDisabled", + "StreamingDistributionSummary", + "StreamingLoggingConfig", + "StringSchemaConfig", + "Tag", + "TagKeys", + "TagResourceInput", + "TagResourceOutput", + "Tags", + "TenantConfig", + "TestConnectionFunctionInput", + "TestConnectionFunctionOutput", + "TestFunctionFailed", + "TestFunctionInput", + "TestFunctionOutput", + "TestResult", + "TooLongCSPInResponseHeadersPolicy", + "TooManyCacheBehaviors", + "TooManyCachePolicies", + "TooManyCertificates", + "TooManyCloudFrontOriginAccessIdentities", + "TooManyContinuousDeploymentPolicies", + "TooManyCookieNamesInWhiteList", + "TooManyCookiesInCachePolicy", + "TooManyCookiesInOriginRequestPolicy", + "TooManyCustomHeadersInResponseHeadersPolicy", + "TooManyDistributionCNAMEs", + "TooManyDistributions", + "TooManyDistributionsAssociatedToCachePolicy", + "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "TooManyDistributionsAssociatedToKeyGroup", + "TooManyDistributionsAssociatedToOriginAccessControl", + "TooManyDistributionsAssociatedToOriginRequestPolicy", + "TooManyDistributionsAssociatedToResponseHeadersPolicy", + "TooManyDistributionsWithFunctionAssociations", + "TooManyDistributionsWithLambdaAssociations", + "TooManyDistributionsWithSingleFunctionARN", + "TooManyFieldLevelEncryptionConfigs", + "TooManyFieldLevelEncryptionContentTypeProfiles", + "TooManyFieldLevelEncryptionEncryptionEntities", + "TooManyFieldLevelEncryptionFieldPatterns", + "TooManyFieldLevelEncryptionProfiles", + "TooManyFieldLevelEncryptionQueryArgProfiles", + "TooManyFunctionAssociations", + "TooManyFunctions", + "TooManyHeadersInCachePolicy", + "TooManyHeadersInForwardedValues", + "TooManyHeadersInOriginRequestPolicy", + "TooManyInvalidationsInProgress", + "TooManyKeyGroups", + "TooManyKeyGroupsAssociatedToDistribution", + "TooManyLambdaFunctionAssociations", + "TooManyOriginAccessControls", + "TooManyOriginCustomHeaders", + "TooManyOriginGroupsPerDistribution", + "TooManyOriginRequestPolicies", + "TooManyOrigins", + "TooManyPublicKeys", + "TooManyPublicKeysInKeyGroup", + "TooManyQueryStringParameters", + "TooManyQueryStringsInCachePolicy", + "TooManyQueryStringsInOriginRequestPolicy", + "TooManyRealtimeLogConfigs", + "TooManyRemoveHeadersInResponseHeadersPolicy", + "TooManyResponseHeadersPolicies", + "TooManyStreamingDistributionCNAMEs", + "TooManyStreamingDistributions", + "TooManyTrustedSigners", + "TrafficConfig", + "TrustStore", + "TrustStoreConfig", + "TrustStoreStatus", + "TrustStoreSummary", + "TrustedKeyGroupDoesNotExist", + "TrustedKeyGroups", + "TrustedSignerDoesNotExist", + "TrustedSigners", + "UnsupportedOperation", + "UntagResourceInput", + "UntagResourceOutput", + "UpdateAnycastIpListInput", + "UpdateAnycastIpListOutput", + "UpdateCachePolicyInput", + "UpdateCachePolicyOutput", + "UpdateCloudFrontOriginAccessIdentityInput", + "UpdateCloudFrontOriginAccessIdentityOutput", + "UpdateConnectionFunctionInput", + "UpdateConnectionFunctionOutput", + "UpdateConnectionGroupInput", + "UpdateConnectionGroupOutput", + "UpdateContinuousDeploymentPolicyInput", + "UpdateContinuousDeploymentPolicyOutput", + "UpdateDistributionInput", + "UpdateDistributionOutput", + "UpdateDistributionTenantInput", + "UpdateDistributionTenantOutput", + "UpdateDistributionWithStagingConfigInput", + "UpdateDistributionWithStagingConfigOutput", + "UpdateDomainAssociationInput", + "UpdateDomainAssociationOutput", + "UpdateFieldLevelEncryptionConfigInput", + "UpdateFieldLevelEncryptionConfigOutput", + "UpdateFieldLevelEncryptionProfileInput", + "UpdateFieldLevelEncryptionProfileOutput", + "UpdateFunctionInput", + "UpdateFunctionOutput", + "UpdateKeyGroupInput", + "UpdateKeyGroupOutput", + "UpdateKeyValueStoreInput", + "UpdateKeyValueStoreOutput", + "UpdateOriginAccessControlInput", + "UpdateOriginAccessControlOutput", + "UpdateOriginRequestPolicyInput", + "UpdateOriginRequestPolicyOutput", + "UpdatePublicKeyInput", + "UpdatePublicKeyOutput", + "UpdateRealtimeLogConfigInput", + "UpdateRealtimeLogConfigOutput", + "UpdateResponseHeadersPolicyInput", + "UpdateResponseHeadersPolicyOutput", + "UpdateStreamingDistributionInput", + "UpdateStreamingDistributionOutput", + "UpdateTrustStoreInput", + "UpdateTrustStoreOutput", + "UpdateVpcOriginInput", + "UpdateVpcOriginOutput", + "ValidationTokenDetail", + "ValidationTokenHost", + "VerifyDnsConfigurationInput", + "VerifyDnsConfigurationOutput", + "ViewerCertificate", + "ViewerMtlsConfig", + "ViewerMtlsMode", + "ViewerProtocolPolicy", + "VpcIpAddressType", + "VpcOrigin", + "VpcOriginConfig", + "VpcOriginEndpointConfig", + "VpcOriginList", + "VpcOriginSummary", + "WebAclCustomization", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ASSOCIATE_ALIAS", + "ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL", + "ASSOCIATE_DISTRIBUTION_WEB_ACL", + "COPY_DISTRIBUTION", + "CREATE_ANYCAST_IP_LIST", + "CREATE_CACHE_POLICY", + "CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "CREATE_CONNECTION_FUNCTION", + "CREATE_CONNECTION_GROUP", + "CREATE_CONTINUOUS_DEPLOYMENT_POLICY", + "CREATE_DISTRIBUTION", + "CREATE_DISTRIBUTION_TENANT", + "CREATE_DISTRIBUTION_WITH_TAGS", + "CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG", + "CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE", + "CREATE_FUNCTION", + "CREATE_INVALIDATION", + "CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT", + "CREATE_KEY_GROUP", + "CREATE_KEY_VALUE_STORE", + "CREATE_MONITORING_SUBSCRIPTION", + "CREATE_ORIGIN_ACCESS_CONTROL", + "CREATE_ORIGIN_REQUEST_POLICY", + "CREATE_PUBLIC_KEY", + "CREATE_REALTIME_LOG_CONFIG", + "CREATE_RESPONSE_HEADERS_POLICY", + "CREATE_STREAMING_DISTRIBUTION", + "CREATE_STREAMING_DISTRIBUTION_WITH_TAGS", + "CREATE_TRUST_STORE", + "CREATE_VPC_ORIGIN", + "DELETE_ANYCAST_IP_LIST", + "DELETE_CACHE_POLICY", + "DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "DELETE_CONNECTION_FUNCTION", + "DELETE_CONNECTION_GROUP", + "DELETE_CONTINUOUS_DEPLOYMENT_POLICY", + "DELETE_DISTRIBUTION", + "DELETE_DISTRIBUTION_TENANT", + "DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG", + "DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE", + "DELETE_FUNCTION", + "DELETE_KEY_GROUP", + "DELETE_KEY_VALUE_STORE", + "DELETE_MONITORING_SUBSCRIPTION", + "DELETE_ORIGIN_ACCESS_CONTROL", + "DELETE_ORIGIN_REQUEST_POLICY", + "DELETE_PUBLIC_KEY", + "DELETE_REALTIME_LOG_CONFIG", + "DELETE_RESOURCE_POLICY", + "DELETE_RESPONSE_HEADERS_POLICY", + "DELETE_STREAMING_DISTRIBUTION", + "DELETE_TRUST_STORE", + "DELETE_VPC_ORIGIN", + "DESCRIBE_CONNECTION_FUNCTION", + "DESCRIBE_FUNCTION", + "DESCRIBE_KEY_VALUE_STORE", + "DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL", + "DISASSOCIATE_DISTRIBUTION_WEB_ACL", + "GET_ANYCAST_IP_LIST", + "GET_CACHE_POLICY", + "GET_CACHE_POLICY_CONFIG", + "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG", + "GET_CONNECTION_FUNCTION", + "GET_CONNECTION_GROUP", + "GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT", + "GET_CONTINUOUS_DEPLOYMENT_POLICY", + "GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG", + "GET_DISTRIBUTION", + "GET_DISTRIBUTION_CONFIG", + "GET_DISTRIBUTION_TENANT", + "GET_DISTRIBUTION_TENANT_BY_DOMAIN", + "GET_FIELD_LEVEL_ENCRYPTION", + "GET_FIELD_LEVEL_ENCRYPTION_CONFIG", + "GET_FIELD_LEVEL_ENCRYPTION_PROFILE", + "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG", + "GET_FUNCTION", + "GET_INVALIDATION", + "GET_INVALIDATION_FOR_DISTRIBUTION_TENANT", + "GET_KEY_GROUP", + "GET_KEY_GROUP_CONFIG", + "GET_MANAGED_CERTIFICATE_DETAILS", + "GET_MONITORING_SUBSCRIPTION", + "GET_ORIGIN_ACCESS_CONTROL", + "GET_ORIGIN_ACCESS_CONTROL_CONFIG", + "GET_ORIGIN_REQUEST_POLICY", + "GET_ORIGIN_REQUEST_POLICY_CONFIG", + "GET_PUBLIC_KEY", + "GET_PUBLIC_KEY_CONFIG", + "GET_REALTIME_LOG_CONFIG", + "GET_RESOURCE_POLICY", + "GET_RESPONSE_HEADERS_POLICY", + "GET_RESPONSE_HEADERS_POLICY_CONFIG", + "GET_STREAMING_DISTRIBUTION", + "GET_STREAMING_DISTRIBUTION_CONFIG", + "GET_TRUST_STORE", + "GET_VPC_ORIGIN", + "LIST_ANYCAST_IP_LISTS", + "LIST_CACHE_POLICIES", + "LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES", + "LIST_CONFLICTING_ALIASES", + "LIST_CONNECTION_FUNCTIONS", + "LIST_CONNECTION_GROUPS", + "LIST_CONTINUOUS_DEPLOYMENT_POLICIES", + "LIST_DISTRIBUTIONS", + "LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID", + "LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID", + "LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION", + "LIST_DISTRIBUTIONS_BY_CONNECTION_MODE", + "LIST_DISTRIBUTIONS_BY_KEY_GROUP", + "LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID", + "LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE", + "LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG", + "LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID", + "LIST_DISTRIBUTIONS_BY_TRUST_STORE", + "LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID", + "LIST_DISTRIBUTIONS_BY_WEB_ACL_ID", + "LIST_DISTRIBUTION_TENANTS", + "LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION", + "LIST_DOMAIN_CONFLICTS", + "LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS", + "LIST_FIELD_LEVEL_ENCRYPTION_PROFILES", + "LIST_FUNCTIONS", + "LIST_INVALIDATIONS", + "LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT", + "LIST_KEY_GROUPS", + "LIST_KEY_VALUE_STORES", + "LIST_ORIGIN_ACCESS_CONTROLS", + "LIST_ORIGIN_REQUEST_POLICIES", + "LIST_PUBLIC_KEYS", + "LIST_REALTIME_LOG_CONFIGS", + "LIST_RESPONSE_HEADERS_POLICIES", + "LIST_STREAMING_DISTRIBUTIONS", + "LIST_TAGS_FOR_RESOURCE", + "LIST_TRUST_STORES", + "LIST_VPC_ORIGINS", + "PUBLISH_CONNECTION_FUNCTION", + "PUBLISH_FUNCTION", + "PUT_RESOURCE_POLICY", + "TAG_RESOURCE", + "TEST_CONNECTION_FUNCTION", + "TEST_FUNCTION", + "UNTAG_RESOURCE", + "UPDATE_ANYCAST_IP_LIST", + "UPDATE_CACHE_POLICY", + "UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + "UPDATE_CONNECTION_FUNCTION", + "UPDATE_CONNECTION_GROUP", + "UPDATE_CONTINUOUS_DEPLOYMENT_POLICY", + "UPDATE_DISTRIBUTION", + "UPDATE_DISTRIBUTION_TENANT", + "UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG", + "UPDATE_DOMAIN_ASSOCIATION", + "UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG", + "UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE", + "UPDATE_FUNCTION", + "UPDATE_KEY_GROUP", + "UPDATE_KEY_VALUE_STORE", + "UPDATE_ORIGIN_ACCESS_CONTROL", + "UPDATE_ORIGIN_REQUEST_POLICY", + "UPDATE_PUBLIC_KEY", + "UPDATE_REALTIME_LOG_CONFIG", + "UPDATE_RESPONSE_HEADERS_POLICY", + "UPDATE_STREAMING_DISTRIBUTION", + "UPDATE_TRUST_STORE", + "UPDATE_VPC_ORIGIN", + "VERIFY_DNS_CONFIGURATION", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ASSOCIATE_ALIAS"] = ( + "ASSOCIATE_ALIAS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL"] = ( + "ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_DISTRIBUTION_WEB_ACL"] = ( + "ASSOCIATE_DISTRIBUTION_WEB_ACL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_DISTRIBUTION"] = ( + "COPY_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#DistributionAlreadyExists", + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidDefaultRootObject", + "com.amazonaws.cloudfront#InvalidErrorCode", + "com.amazonaws.cloudfront#InvalidForwardCookies", + "com.amazonaws.cloudfront#InvalidFunctionAssociation", + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter", + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation", + "com.amazonaws.cloudfront#InvalidLocationCode", + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion", + "com.amazonaws.cloudfront#InvalidOrigin", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout", + "com.amazonaws.cloudfront#InvalidOriginReadTimeout", + "com.amazonaws.cloudfront#InvalidProtocolSettings", + "com.amazonaws.cloudfront#InvalidQueryStringParameters", + "com.amazonaws.cloudfront#InvalidRelativePath", + "com.amazonaws.cloudfront#InvalidRequiredProtocol", + "com.amazonaws.cloudfront#InvalidResponseCode", + "com.amazonaws.cloudfront#InvalidTTLOrder", + "com.amazonaws.cloudfront#InvalidViewerCertificate", + "com.amazonaws.cloudfront#InvalidWebACLId", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchOrigin", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch", + "com.amazonaws.cloudfront#TooManyCacheBehaviors", + "com.amazonaws.cloudfront#TooManyCertificates", + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyDistributions", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN", + "com.amazonaws.cloudfront#TooManyFunctionAssociations", + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues", + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution", + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations", + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders", + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution", + "com.amazonaws.cloudfront#TooManyOrigins", + "com.amazonaws.cloudfront#TooManyQueryStringParameters", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ANYCAST_IP_LIST"] = ( + "CREATE_ANYCAST_IP_LIST", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CACHE_POLICY"] = ( + "CREATE_CACHE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CachePolicyAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#TooManyCachePolicies", + "com.amazonaws.cloudfront#TooManyCookiesInCachePolicy", + "com.amazonaws.cloudfront#TooManyHeadersInCachePolicy", + "com.amazonaws.cloudfront#TooManyQueryStringsInCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY"] = ( + "CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + ( + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#TooManyCloudFrontOriginAccessIdentities", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CONNECTION_FUNCTION"] = ( + "CREATE_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntitySizeLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CONNECTION_GROUP"] = ( + "CREATE_CONNECTION_GROUP", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CONTINUOUS_DEPLOYMENT_POLICY"] = ( + "CREATE_CONTINUOUS_DEPLOYMENT_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#StagingDistributionInUse", + "com.amazonaws.cloudfront#TooManyContinuousDeploymentPolicies", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DISTRIBUTION"] = ( + "CREATE_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse", + "com.amazonaws.cloudfront#DistributionAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidDefaultRootObject", + "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl", + "com.amazonaws.cloudfront#InvalidErrorCode", + "com.amazonaws.cloudfront#InvalidForwardCookies", + "com.amazonaws.cloudfront#InvalidFunctionAssociation", + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter", + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin", + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation", + "com.amazonaws.cloudfront#InvalidLocationCode", + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion", + "com.amazonaws.cloudfront#InvalidOrigin", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout", + "com.amazonaws.cloudfront#InvalidOriginReadTimeout", + "com.amazonaws.cloudfront#InvalidProtocolSettings", + "com.amazonaws.cloudfront#InvalidQueryStringParameters", + "com.amazonaws.cloudfront#InvalidRelativePath", + "com.amazonaws.cloudfront#InvalidRequiredProtocol", + "com.amazonaws.cloudfront#InvalidResponseCode", + "com.amazonaws.cloudfront#InvalidTTLOrder", + "com.amazonaws.cloudfront#InvalidViewerCertificate", + "com.amazonaws.cloudfront#InvalidWebACLId", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchOrigin", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch", + "com.amazonaws.cloudfront#TooManyCacheBehaviors", + "com.amazonaws.cloudfront#TooManyCertificates", + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyDistributions", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN", + "com.amazonaws.cloudfront#TooManyFunctionAssociations", + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues", + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution", + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations", + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders", + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution", + "com.amazonaws.cloudfront#TooManyOrigins", + "com.amazonaws.cloudfront#TooManyQueryStringParameters", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DISTRIBUTION_TENANT"] = ( + "CREATE_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidAssociation", + "com.amazonaws.cloudfront#InvalidTagging", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DISTRIBUTION_WITH_TAGS"] = ( + "CREATE_DISTRIBUTION_WITH_TAGS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse", + "com.amazonaws.cloudfront#DistributionAlreadyExists", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidDefaultRootObject", + "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl", + "com.amazonaws.cloudfront#InvalidErrorCode", + "com.amazonaws.cloudfront#InvalidForwardCookies", + "com.amazonaws.cloudfront#InvalidFunctionAssociation", + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter", + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin", + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation", + "com.amazonaws.cloudfront#InvalidLocationCode", + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion", + "com.amazonaws.cloudfront#InvalidOrigin", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout", + "com.amazonaws.cloudfront#InvalidOriginReadTimeout", + "com.amazonaws.cloudfront#InvalidProtocolSettings", + "com.amazonaws.cloudfront#InvalidQueryStringParameters", + "com.amazonaws.cloudfront#InvalidRelativePath", + "com.amazonaws.cloudfront#InvalidRequiredProtocol", + "com.amazonaws.cloudfront#InvalidResponseCode", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#InvalidTTLOrder", + "com.amazonaws.cloudfront#InvalidViewerCertificate", + "com.amazonaws.cloudfront#InvalidWebACLId", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchOrigin", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch", + "com.amazonaws.cloudfront#TooManyCacheBehaviors", + "com.amazonaws.cloudfront#TooManyCertificates", + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyDistributions", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN", + "com.amazonaws.cloudfront#TooManyFunctionAssociations", + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues", + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution", + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations", + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders", + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution", + "com.amazonaws.cloudfront#TooManyOrigins", + "com.amazonaws.cloudfront#TooManyQueryStringParameters", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG"] = ( + "CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG", + ( + "com.amazonaws.cloudfront#FieldLevelEncryptionConfigAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + "com.amazonaws.cloudfront#QueryArgProfileEmpty", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionConfigs", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionContentTypeProfiles", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionQueryArgProfiles", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE"] = ( + "CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE", + ( + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileAlreadyExists", + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSizeExceeded", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchPublicKey", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionEncryptionEntities", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionFieldPatterns", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionProfiles", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_FUNCTION"] = ( + "CREATE_FUNCTION", + ( + "com.amazonaws.cloudfront#FunctionAlreadyExists", + "com.amazonaws.cloudfront#FunctionSizeLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#TooManyFunctions", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INVALIDATION"] = ( + "CREATE_INVALIDATION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#BatchTooLarge", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#TooManyInvalidationsInProgress", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT"] = ( + "CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#BatchTooLarge", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#TooManyInvalidationsInProgress", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_KEY_GROUP"] = ( + "CREATE_KEY_GROUP", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#KeyGroupAlreadyExists", + "com.amazonaws.cloudfront#TooManyKeyGroups", + "com.amazonaws.cloudfront#TooManyPublicKeysInKeyGroup", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_KEY_VALUE_STORE"] = ( + "CREATE_KEY_VALUE_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntitySizeLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_MONITORING_SUBSCRIPTION"] = ( + "CREATE_MONITORING_SUBSCRIPTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#MonitoringSubscriptionAlreadyExists", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ORIGIN_ACCESS_CONTROL"] = ( + "CREATE_ORIGIN_ACCESS_CONTROL", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#OriginAccessControlAlreadyExists", + "com.amazonaws.cloudfront#TooManyOriginAccessControls", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ORIGIN_REQUEST_POLICY"] = ( + "CREATE_ORIGIN_REQUEST_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#OriginRequestPolicyAlreadyExists", + "com.amazonaws.cloudfront#TooManyCookiesInOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyHeadersInOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyOriginRequestPolicies", + "com.amazonaws.cloudfront#TooManyQueryStringsInOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_PUBLIC_KEY"] = ( + "CREATE_PUBLIC_KEY", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#PublicKeyAlreadyExists", + "com.amazonaws.cloudfront#TooManyPublicKeys", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_REALTIME_LOG_CONFIG"] = ( + "CREATE_REALTIME_LOG_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#RealtimeLogConfigAlreadyExists", + "com.amazonaws.cloudfront#TooManyRealtimeLogConfigs", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_RESPONSE_HEADERS_POLICY"] = ( + "CREATE_RESPONSE_HEADERS_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#ResponseHeadersPolicyAlreadyExists", + "com.amazonaws.cloudfront#TooLongCSPInResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyCustomHeadersInResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyRemoveHeadersInResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyResponseHeadersPolicies", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STREAMING_DISTRIBUTION"] = ( + "CREATE_STREAMING_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidOrigin", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#StreamingDistributionAlreadyExists", + "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyStreamingDistributions", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STREAMING_DISTRIBUTION_WITH_TAGS"] = ( + "CREATE_STREAMING_DISTRIBUTION_WITH_TAGS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidOrigin", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#StreamingDistributionAlreadyExists", + "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyStreamingDistributions", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRUST_STORE"] = ( + "CREATE_TRUST_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_ORIGIN"] = ( + "CREATE_VPC_ORIGIN", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ANYCAST_IP_LIST"] = ( + "DELETE_ANYCAST_IP_LIST", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CACHE_POLICY"] = ( + "DELETE_CACHE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CachePolicyInUse", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY"] = ( + "DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityInUse", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CONNECTION_FUNCTION"] = ( + "DELETE_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CONNECTION_GROUP"] = ( + "DELETE_CONNECTION_GROUP", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResourceNotDisabled", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CONTINUOUS_DEPLOYMENT_POLICY"] = ( + "DELETE_CONTINUOUS_DEPLOYMENT_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DISTRIBUTION"] = ( + "DELETE_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#DistributionNotDisabled", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResourceInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DISTRIBUTION_TENANT"] = ( + "DELETE_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResourceNotDisabled", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG"] = ( + "DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#FieldLevelEncryptionConfigInUse", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE"] = ( + "DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileInUse", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_FUNCTION"] = ( + "DELETE_FUNCTION", + ( + "com.amazonaws.cloudfront#FunctionInUse", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_KEY_GROUP"] = ( + "DELETE_KEY_GROUP", + ( + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchResource", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResourceInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_KEY_VALUE_STORE"] = ( + "DELETE_KEY_VALUE_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_MONITORING_SUBSCRIPTION"] = ( + "DELETE_MONITORING_SUBSCRIPTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchMonitoringSubscription", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ORIGIN_ACCESS_CONTROL"] = ( + "DELETE_ORIGIN_ACCESS_CONTROL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchOriginAccessControl", + "com.amazonaws.cloudfront#OriginAccessControlInUse", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ORIGIN_REQUEST_POLICY"] = ( + "DELETE_ORIGIN_REQUEST_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#OriginRequestPolicyInUse", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_PUBLIC_KEY"] = ( + "DELETE_PUBLIC_KEY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchPublicKey", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#PublicKeyInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_REALTIME_LOG_CONFIG"] = ( + "DELETE_REALTIME_LOG_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#RealtimeLogConfigInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_RESOURCE_POLICY"] = ( + "DELETE_RESOURCE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_RESPONSE_HEADERS_POLICY"] = ( + "DELETE_RESPONSE_HEADERS_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResponseHeadersPolicyInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_STREAMING_DISTRIBUTION"] = ( + "DELETE_STREAMING_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchStreamingDistribution", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#StreamingDistributionNotDisabled", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRUST_STORE"] = ( + "DELETE_TRUST_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_ORIGIN"] = ( + "DELETE_VPC_ORIGIN", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalDelete", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CONNECTION_FUNCTION"] = ( + "DESCRIBE_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FUNCTION"] = ( + "DESCRIBE_FUNCTION", + ( + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_KEY_VALUE_STORE"] = ( + "DESCRIBE_KEY_VALUE_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL"] = ( + "DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_DISTRIBUTION_WEB_ACL"] = ( + "DISASSOCIATE_DISTRIBUTION_WEB_ACL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ANYCAST_IP_LIST"] = ( + "GET_ANYCAST_IP_LIST", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CACHE_POLICY"] = ( + "GET_CACHE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CACHE_POLICY_CONFIG"] = ( + "GET_CACHE_POLICY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY"] = ( + "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG"] = ( + "GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONNECTION_FUNCTION"] = ( + "GET_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONNECTION_GROUP"] = ( + "GET_CONNECTION_GROUP", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT"] = ( + "GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONTINUOUS_DEPLOYMENT_POLICY"] = ( + "GET_CONTINUOUS_DEPLOYMENT_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG"] = ( + "GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DISTRIBUTION"] = ( + "GET_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DISTRIBUTION_CONFIG"] = ( + "GET_DISTRIBUTION_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DISTRIBUTION_TENANT"] = ( + "GET_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DISTRIBUTION_TENANT_BY_DOMAIN"] = ( + "GET_DISTRIBUTION_TENANT_BY_DOMAIN", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FIELD_LEVEL_ENCRYPTION"] = ( + "GET_FIELD_LEVEL_ENCRYPTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FIELD_LEVEL_ENCRYPTION_CONFIG"] = ( + "GET_FIELD_LEVEL_ENCRYPTION_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FIELD_LEVEL_ENCRYPTION_PROFILE"] = ( + "GET_FIELD_LEVEL_ENCRYPTION_PROFILE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG"] = ( + "GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FUNCTION"] = ( + "GET_FUNCTION", + ( + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INVALIDATION"] = ( + "GET_INVALIDATION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchInvalidation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INVALIDATION_FOR_DISTRIBUTION_TENANT"] = ( + "GET_INVALIDATION_FOR_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#NoSuchInvalidation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY_GROUP"] = ( + "GET_KEY_GROUP", + ("com.amazonaws.cloudfront#NoSuchResource",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY_GROUP_CONFIG"] = ( + "GET_KEY_GROUP_CONFIG", + ("com.amazonaws.cloudfront#NoSuchResource",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MANAGED_CERTIFICATE_DETAILS"] = ( + "GET_MANAGED_CERTIFICATE_DETAILS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MONITORING_SUBSCRIPTION"] = ( + "GET_MONITORING_SUBSCRIPTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchMonitoringSubscription", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ORIGIN_ACCESS_CONTROL"] = ( + "GET_ORIGIN_ACCESS_CONTROL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchOriginAccessControl", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ORIGIN_ACCESS_CONTROL_CONFIG"] = ( + "GET_ORIGIN_ACCESS_CONTROL_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchOriginAccessControl", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ORIGIN_REQUEST_POLICY"] = ( + "GET_ORIGIN_REQUEST_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ORIGIN_REQUEST_POLICY_CONFIG"] = ( + "GET_ORIGIN_REQUEST_POLICY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_PUBLIC_KEY"] = ( + "GET_PUBLIC_KEY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchPublicKey", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_PUBLIC_KEY_CONFIG"] = ( + "GET_PUBLIC_KEY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchPublicKey", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_REALTIME_LOG_CONFIG"] = ( + "GET_REALTIME_LOG_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RESOURCE_POLICY"] = ( + "GET_RESOURCE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RESPONSE_HEADERS_POLICY"] = ( + "GET_RESPONSE_HEADERS_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RESPONSE_HEADERS_POLICY_CONFIG"] = ( + "GET_RESPONSE_HEADERS_POLICY_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_STREAMING_DISTRIBUTION"] = ( + "GET_STREAMING_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchStreamingDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_STREAMING_DISTRIBUTION_CONFIG"] = ( + "GET_STREAMING_DISTRIBUTION_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#NoSuchStreamingDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRUST_STORE"] = ( + "GET_TRUST_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VPC_ORIGIN"] = ( + "GET_VPC_ORIGIN", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ANYCAST_IP_LISTS"] = ( + "LIST_ANYCAST_IP_LISTS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CACHE_POLICIES"] = ( + "LIST_CACHE_POLICIES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES"] = ( + "LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CONFLICTING_ALIASES"] = ( + "LIST_CONFLICTING_ALIASES", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CONNECTION_FUNCTIONS"] = ( + "LIST_CONNECTION_FUNCTIONS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CONNECTION_GROUPS"] = ( + "LIST_CONNECTION_GROUPS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CONTINUOUS_DEPLOYMENT_POLICIES"] = ( + "LIST_CONTINUOUS_DEPLOYMENT_POLICIES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS"] = ( + "LIST_DISTRIBUTIONS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID"] = ( + "LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID"] = ( + "LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION"] = ( + "LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_CONNECTION_MODE"] = ( + "LIST_DISTRIBUTIONS_BY_CONNECTION_MODE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_KEY_GROUP"] = ( + "LIST_DISTRIBUTIONS_BY_KEY_GROUP", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchResource", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID"] = ( + "LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE"] = ( + "LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG"] = ( + "LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID"] = ( + "LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_TRUST_STORE"] = ( + "LIST_DISTRIBUTIONS_BY_TRUST_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID"] = ( + "LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTIONS_BY_WEB_ACL_ID"] = ( + "LIST_DISTRIBUTIONS_BY_WEB_ACL_ID", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidWebACLId", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTION_TENANTS"] = ( + "LIST_DISTRIBUTION_TENANTS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION"] = ( + "LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DOMAIN_CONFLICTS"] = ( + "LIST_DOMAIN_CONFLICTS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS"] = ( + "LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_FIELD_LEVEL_ENCRYPTION_PROFILES"] = ( + "LIST_FIELD_LEVEL_ENCRYPTION_PROFILES", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_FUNCTIONS"] = ( + "LIST_FUNCTIONS", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_INVALIDATIONS"] = ( + "LIST_INVALIDATIONS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchDistribution", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT"] = ( + "LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEY_GROUPS"] = ( + "LIST_KEY_GROUPS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEY_VALUE_STORES"] = ( + "LIST_KEY_VALUE_STORES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ORIGIN_ACCESS_CONTROLS"] = ( + "LIST_ORIGIN_ACCESS_CONTROLS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ORIGIN_REQUEST_POLICIES"] = ( + "LIST_ORIGIN_REQUEST_POLICIES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_PUBLIC_KEYS"] = ( + "LIST_PUBLIC_KEYS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_REALTIME_LOG_CONFIGS"] = ( + "LIST_REALTIME_LOG_CONFIGS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RESPONSE_HEADERS_POLICIES"] = ( + "LIST_RESPONSE_HEADERS_POLICIES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STREAMING_DISTRIBUTIONS"] = ( + "LIST_STREAMING_DISTRIBUTIONS", + ("com.amazonaws.cloudfront#InvalidArgument",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#NoSuchResource", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TRUST_STORES"] = ( + "LIST_TRUST_STORES", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_VPC_ORIGINS"] = ( + "LIST_VPC_ORIGINS", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUBLISH_CONNECTION_FUNCTION"] = ( + "PUBLISH_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUBLISH_FUNCTION"] = ( + "PUBLISH_FUNCTION", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_RESOURCE_POLICY"] = ( + "PUT_RESOURCE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#NoSuchResource", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TEST_CONNECTION_FUNCTION"] = ( + "TEST_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TestFunctionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TEST_FUNCTION"] = ( + "TEST_FUNCTION", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#TestFunctionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidTagging", + "com.amazonaws.cloudfront#NoSuchResource", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ANYCAST_IP_LIST"] = ( + "UPDATE_ANYCAST_IP_LIST", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CACHE_POLICY"] = ( + "UPDATE_CACHE_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CachePolicyAlreadyExists", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TooManyCookiesInCachePolicy", + "com.amazonaws.cloudfront#TooManyHeadersInCachePolicy", + "com.amazonaws.cloudfront#TooManyQueryStringsInCachePolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY"] = ( + "UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CONNECTION_FUNCTION"] = ( + "UPDATE_CONNECTION_FUNCTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#EntitySizeLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CONNECTION_GROUP"] = ( + "UPDATE_CONNECTION_GROUP", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResourceInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CONTINUOUS_DEPLOYMENT_POLICY"] = ( + "UPDATE_CONTINUOUS_DEPLOYMENT_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#StagingDistributionInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DISTRIBUTION"] = ( + "UPDATE_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidDefaultRootObject", + "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl", + "com.amazonaws.cloudfront#InvalidErrorCode", + "com.amazonaws.cloudfront#InvalidForwardCookies", + "com.amazonaws.cloudfront#InvalidFunctionAssociation", + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter", + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation", + "com.amazonaws.cloudfront#InvalidLocationCode", + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout", + "com.amazonaws.cloudfront#InvalidOriginReadTimeout", + "com.amazonaws.cloudfront#InvalidQueryStringParameters", + "com.amazonaws.cloudfront#InvalidRelativePath", + "com.amazonaws.cloudfront#InvalidRequiredProtocol", + "com.amazonaws.cloudfront#InvalidResponseCode", + "com.amazonaws.cloudfront#InvalidTTLOrder", + "com.amazonaws.cloudfront#InvalidViewerCertificate", + "com.amazonaws.cloudfront#InvalidWebACLId", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchOrigin", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch", + "com.amazonaws.cloudfront#StagingDistributionInUse", + "com.amazonaws.cloudfront#TooManyCacheBehaviors", + "com.amazonaws.cloudfront#TooManyCertificates", + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN", + "com.amazonaws.cloudfront#TooManyFunctionAssociations", + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues", + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution", + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations", + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders", + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution", + "com.amazonaws.cloudfront#TooManyOrigins", + "com.amazonaws.cloudfront#TooManyQueryStringParameters", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DISTRIBUTION_TENANT"] = ( + "UPDATE_DISTRIBUTION_TENANT", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidAssociation", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG"] = ( + "UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidDefaultRootObject", + "com.amazonaws.cloudfront#InvalidErrorCode", + "com.amazonaws.cloudfront#InvalidForwardCookies", + "com.amazonaws.cloudfront#InvalidFunctionAssociation", + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter", + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation", + "com.amazonaws.cloudfront#InvalidLocationCode", + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout", + "com.amazonaws.cloudfront#InvalidOriginReadTimeout", + "com.amazonaws.cloudfront#InvalidQueryStringParameters", + "com.amazonaws.cloudfront#InvalidRelativePath", + "com.amazonaws.cloudfront#InvalidRequiredProtocol", + "com.amazonaws.cloudfront#InvalidResponseCode", + "com.amazonaws.cloudfront#InvalidTTLOrder", + "com.amazonaws.cloudfront#InvalidViewerCertificate", + "com.amazonaws.cloudfront#InvalidWebACLId", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchCachePolicy", + "com.amazonaws.cloudfront#NoSuchDistribution", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchOrigin", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch", + "com.amazonaws.cloudfront#TooManyCacheBehaviors", + "com.amazonaws.cloudfront#TooManyCertificates", + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList", + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations", + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN", + "com.amazonaws.cloudfront#TooManyFunctionAssociations", + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues", + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution", + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations", + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders", + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution", + "com.amazonaws.cloudfront#TooManyOrigins", + "com.amazonaws.cloudfront#TooManyQueryStringParameters", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DOMAIN_ASSOCIATION"] = ( + "UPDATE_DOMAIN_ASSOCIATION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG"] = ( + "UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#QueryArgProfileEmpty", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionContentTypeProfiles", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionQueryArgProfiles", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE"] = ( + "UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileAlreadyExists", + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSizeExceeded", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile", + "com.amazonaws.cloudfront#NoSuchPublicKey", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionEncryptionEntities", + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionFieldPatterns", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_FUNCTION"] = ( + "UPDATE_FUNCTION", + ( + "com.amazonaws.cloudfront#FunctionSizeLimitExceeded", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchFunctionExists", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_KEY_GROUP"] = ( + "UPDATE_KEY_GROUP", + ( + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#KeyGroupAlreadyExists", + "com.amazonaws.cloudfront#NoSuchResource", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TooManyPublicKeysInKeyGroup", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_KEY_VALUE_STORE"] = ( + "UPDATE_KEY_VALUE_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ORIGIN_ACCESS_CONTROL"] = ( + "UPDATE_ORIGIN_ACCESS_CONTROL", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchOriginAccessControl", + "com.amazonaws.cloudfront#OriginAccessControlAlreadyExists", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ORIGIN_REQUEST_POLICY"] = ( + "UPDATE_ORIGIN_REQUEST_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy", + "com.amazonaws.cloudfront#OriginRequestPolicyAlreadyExists", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TooManyCookiesInOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyHeadersInOriginRequestPolicy", + "com.amazonaws.cloudfront#TooManyQueryStringsInOriginRequestPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_PUBLIC_KEY"] = ( + "UPDATE_PUBLIC_KEY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotChangeImmutablePublicKeyFields", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchPublicKey", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_REALTIME_LOG_CONFIG"] = ( + "UPDATE_REALTIME_LOG_CONFIG", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_RESPONSE_HEADERS_POLICY"] = ( + "UPDATE_RESPONSE_HEADERS_POLICY", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#ResponseHeadersPolicyAlreadyExists", + "com.amazonaws.cloudfront#TooLongCSPInResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyCustomHeadersInResponseHeadersPolicy", + "com.amazonaws.cloudfront#TooManyRemoveHeadersInResponseHeadersPolicy", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STREAMING_DISTRIBUTION"] = ( + "UPDATE_STREAMING_DISTRIBUTION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CNAMEAlreadyExists", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#InvalidOriginAccessControl", + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity", + "com.amazonaws.cloudfront#MissingBody", + "com.amazonaws.cloudfront#NoSuchStreamingDistribution", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs", + "com.amazonaws.cloudfront#TooManyTrustedSigners", + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_TRUST_STORE"] = ( + "UPDATE_TRUST_STORE", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_VPC_ORIGIN"] = ( + "UPDATE_VPC_ORIGIN", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#CannotUpdateEntityWhileInUse", + "com.amazonaws.cloudfront#EntityAlreadyExists", + "com.amazonaws.cloudfront#EntityLimitExceeded", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#IllegalUpdate", + "com.amazonaws.cloudfront#InconsistentQuantities", + "com.amazonaws.cloudfront#InvalidArgument", + "com.amazonaws.cloudfront#InvalidIfMatchVersion", + "com.amazonaws.cloudfront#PreconditionFailed", + "com.amazonaws.cloudfront#UnsupportedOperation", + ), + ("aws.auth#sigv4",), +) + +_operation_data["VERIFY_DNS_CONFIGURATION"] = ( + "VERIFY_DNS_CONFIGURATION", + ( + "com.amazonaws.cloudfront#AccessDenied", + "com.amazonaws.cloudfront#EntityNotFound", + "com.amazonaws.cloudfront#InvalidArgument", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.pyi b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.pyi new file mode 100644 index 00000000..a1fedab1 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/models.pyi @@ -0,0 +1,14588 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AccessDenied(ServiceError, _SerdeShape): + """Access denied.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ActiveTrustedKeyGroups(_SerdeShape): + """ + A list of key groups, and the public keys in each key group, that + CloudFront can use to verify the signatures of signed URLs and signed + cookies. + """ + + enabled: bool + """ + This field is `true` if any of the key groups have public keys that + CloudFront can use to verify the signatures of signed URLs and signed + cookies. If not, this field is `false`. + """ + quantity: int + """The number of key groups in the list.""" + items: list[KGKeyPairIds] | None = ... + """ + A list of key groups, including the identifiers of the public keys in + each key group that CloudFront can use to verify the signatures of + signed URLs and signed cookies. + """ + +@dataclass(kw_only=True) +class ActiveTrustedSigners(_SerdeShape): + """ + A list of Amazon Web Services accounts and the active CloudFront key + pairs in each account that CloudFront can use to verify the signatures + of signed URLs and signed cookies. + """ + + enabled: bool + """ + This field is `true` if any of the Amazon Web Services accounts in the + list are configured as trusted signers. If not, this field is `false`. + """ + quantity: int + """The number of Amazon Web Services accounts in the list.""" + items: list[Signer] | None = ... + """ + A list of Amazon Web Services accounts and the identifiers of active + CloudFront key pairs in each account that CloudFront can use to verify + the signatures of signed URLs and signed cookies. + """ + +@dataclass(kw_only=True) +class Aliases(_SerdeShape): + """ + A complex type that contains information about CNAMEs (alternate domain + names), if any, for this distribution. + """ + + quantity: int + """ + The number of CNAME aliases, if any, that you want to associate with + this distribution. + """ + items: list[str] | None = ... + """ + A complex type that contains the CNAME aliases, if any, that you want to + associate with this distribution. + """ + +@dataclass(kw_only=True) +class AliasICPRecordal(_SerdeShape): + """ + Amazon Web Services services in China customers must file for an + Internet Content Provider (ICP) recordal if they want to serve content + publicly on an alternate domain name, also known as a CNAME, that + they've added to CloudFront. AliasICPRecordal provides the ICP recordal + status for CNAMEs associated with distributions. The status is returned + in the CloudFront response; you can't configure it yourself. + + For more information about ICP recordals, see [Signup, Accounts, and + Credentials](https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html) + in *Getting Started with Amazon Web Services services in China*. + """ + + cname: str | None = ... + """A domain name associated with a distribution.""" + icp_recordal_status: str | None = ... + """ + The Internet Content Provider (ICP) recordal status for a CNAME. The + ICPRecordalStatus is set to APPROVED for all CNAMEs (aliases) in Amazon + Web Services Regions outside of China. + + The status values returned are the following: + + - **APPROVED** indicates that the associated CNAME has a valid ICP + recordal number. Multiple CNAMEs can be associated with a + distribution, and CNAMEs can correspond to different ICP recordals. To + be marked as APPROVED, that is, valid to use with the China Regions, a + CNAME must have one ICP recordal number associated with it. + + - **SUSPENDED** indicates that the associated CNAME does not have a + valid ICP recordal number. + + - **PENDING** indicates that CloudFront can't determine the ICP + recordal status of the CNAME associated with the distribution because + there was an error in trying to determine the status. You can try + again to see if the error is resolved in which case CloudFront returns + an APPROVED or SUSPENDED status. + """ + +@dataclass(kw_only=True) +class AllowedMethods(_SerdeShape): + """ + A complex type that controls which HTTP methods CloudFront processes and + forwards to your Amazon S3 bucket or your custom origin. There are three + choices: + + - CloudFront forwards only `GET` and `HEAD` requests. + + - CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests. + + - CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and + `DELETE` requests. + + If you pick the third choice, you may need to restrict access to your + Amazon S3 bucket or to your custom origin so users can't perform + operations that you don't want them to. For example, you might not want + users to have permissions to delete objects from your origin. + """ + + quantity: int + """ + The number of HTTP methods that you want CloudFront to forward to your + origin. Valid values are 2 (for `GET` and `HEAD` requests), 3 (for + `GET`, `HEAD`, and `OPTIONS` requests) and 7 (for + `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests). + """ + items: list[str] + """ + A complex type that contains the HTTP methods that you want CloudFront + to process and forward to your origin. + """ + cached_methods: CachedMethods | None = ... + """ + A complex type that controls whether CloudFront caches the response to + requests using the specified HTTP methods. There are two choices: + + - CloudFront caches responses to `GET` and `HEAD` requests. + + - CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to + forward Access-Control-Request-Method, Access-Control-Request-Headers, + and Origin headers for the responses to be cached correctly. + """ + +@dataclass(kw_only=True) +class AnycastIpList(_SerdeShape): + """ + An Anycast static IP list. For more information, see [Request Anycast + static IPs to use for + allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) + in the *Amazon CloudFront Developer Guide*. + """ + + id: str + """The ID of the Anycast static IP list.""" + name: str + """The name of the Anycast static IP list.""" + status: str + """ + The status of the Anycast static IP list. Valid values: `Deployed`, + `Deploying`, or `Failed`. + """ + arn: str + """The Amazon Resource Name (ARN) of the Anycast static IP list.""" + ip_address_type: str | None = ... + """The IP address type for the Anycast static IP list.""" + ipam_config: IpamConfig | None = ... + """ + The IPAM configuration for the Anycast static IP list, that contains the + quantity and list of IPAM CIDR configurations. + """ + anycast_ips: list[str] + """ + The static IP addresses that are allocated to the Anycast static IP + list. + """ + ip_count: int + """The number of IP addresses in the Anycast static IP list.""" + last_modified_time: datetime + """The last time the Anycast static IP list was modified.""" + +@dataclass(kw_only=True) +class AnycastIpListCollection(_SerdeShape): + """The Anycast static IP list collection.""" + + items: list[AnycastIpListSummary] | None = ... + """ + Items in the Anycast static IP list collection. Each item is of the + AnycastIpListSummary structure type. + """ + marker: str + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + next_marker: str | None = ... + """ + Indicates the next page of the Anycast static IP list collection. To get + the next page of the list, use this value in the `Marker` field of your + request. + """ + max_items: int + """ + The maximum number of Anycast static IP list collections that you want + returned in the response. + """ + is_truncated: bool + """ + If there are more items in the list collection than are in this + response, this value is `true`. + """ + quantity: int + """The quantity of Anycast static IP lists in the collection.""" + +@dataclass(kw_only=True) +class AnycastIpListSummary(_SerdeShape): + """ + An abbreviated version of the AnycastIpList structure. Omits the + allocated static IP addresses (AnycastIpList$AnycastIps). + """ + + id: str + """The ID of the Anycast static IP list.""" + name: str + """The name of the Anycast static IP list.""" + status: str + """ + The deployment status of the Anycast static IP list. Valid values: + Deployed, Deploying, or Failed. + """ + arn: str + """The Amazon Resource Name (ARN) of the Anycast static IP list.""" + ip_count: int + """The number of IP addresses in the Anycast static IP list.""" + last_modified_time: datetime + """The last time the Anycast static IP list was modified.""" + ip_address_type: str | None = ... + """The IP address type for the Anycast static IP list.""" + e_tag: str | None = ... + """The current version (ETag value) of the Anycast static IP list.""" + ipam_config: IpamConfig | None = ... + """ + The IPAM configuration for the Anycast static IP list, that contains the + quantity and list of IPAM CIDR configurations. + """ + +@dataclass(kw_only=True) +class AssociateAliasInput(_SerdeShape): + """Dataclass for AssociateAliasInput structure.""" + + target_distribution_id: str | None = ... + """ + The ID of the standard distribution that you're associating the alias + with. + """ + alias: str | None = ... + """ + The alias (also known as a CNAME) to add to the target standard + distribution. + """ + +@dataclass(kw_only=True) +class AssociateAliasOutput(_SerdeShape): + """Dataclass for AssociateAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateDistributionTenantWebACLInput(_SerdeShape): + """Dataclass for AssociateDistributionTenantWebACLInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + web_acl_arn: str | None = ... + """The Amazon Resource Name (ARN) of the WAF web ACL to associate.""" + if_match: str | None = ... + """ + The current `ETag` of the distribution tenant. This value is returned in + the response of the `GetDistributionTenant` API operation. + """ + +@dataclass(kw_only=True) +class AssociateDistributionTenantWebACLOutput(_SerdeShape): + """Dataclass for AssociateDistributionTenantWebACLOutput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + web_acl_arn: str | None = ... + """ + The ARN of the WAF web ACL that you associated with the distribution + tenant. + """ + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateDistributionWebACLInput(_SerdeShape): + """Dataclass for AssociateDistributionWebACLInput structure.""" + + id: str | None = ... + """The ID of the distribution.""" + web_acl_arn: str | None = ... + """The Amazon Resource Name (ARN) of the WAF web ACL to associate.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + distribution that you're associating with the WAF web ACL. + """ + +@dataclass(kw_only=True) +class AssociateDistributionWebACLOutput(_SerdeShape): + """Dataclass for AssociateDistributionWebACLOutput structure.""" + + id: str | None = ... + """The ID of the distribution.""" + web_acl_arn: str | None = ... + """The ARN of the WAF web ACL that you associated with the distribution.""" + e_tag: str | None = ... + """The current version of the distribution.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BatchTooLarge(ServiceError, _SerdeShape): + """Invalidation batch specified is too large.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CaCertificatesBundleS3Location(_SerdeShape): + """The CA certificates bundle location in Amazon S3.""" + + bucket: str + """The S3 bucket.""" + key: str + """The location's key.""" + region: str + """The location's Region.""" + version: str | None = ... + """The location's version.""" + +@dataclass +class CaCertificatesBundleSourceCaCertificatesBundleS3Location(_SerdeShape): + """The CA certificates bundle location in Amazon S3.""" + + value: CaCertificatesBundleS3Location + +@dataclass +class CaCertificatesBundleSourceUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +CaCertificatesBundleSource = Union[ + CaCertificatesBundleSourceCaCertificatesBundleS3Location + | CaCertificatesBundleSourceUnknown +] +"""A CA certificates bundle source.""" + +class _CaCertificatesBundleSourceDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> CaCertificatesBundleSource: ... + +@dataclass(kw_only=True) +class CacheBehavior(_SerdeShape): + """ + A complex type that describes how CloudFront processes requests. + + You must create at least as many cache behaviors (including the default + cache behavior) as you have origins if you want CloudFront to serve + objects from all of the origins. Each cache behavior specifies the one + origin from which you want CloudFront to get objects. If you have two + origins and only the default cache behavior, the default cache behavior + will cause CloudFront to get objects from one of the origins, but the + other origin is never used. + + For the current quota (formerly known as limit) on the number of cache + behaviors that you can add to a distribution, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + in the *Amazon CloudFront Developer Guide*. + + If you don't want to specify any cache behaviors, include only an empty + `CacheBehaviors` element. Don't specify an empty individual + `CacheBehavior` element, because this is invalid. For more information, + see + [CacheBehaviors](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CacheBehaviors.html). + + To delete all cache behaviors in an existing distribution, update the + distribution configuration and include only an empty `CacheBehaviors` + element. + + To add, change, or remove one or more cache behaviors, update the + distribution configuration and specify all of the cache behaviors that + you want to include in the updated distribution. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content for + at least the duration specified in the cache policy's minimum TTL, even + if the `Cache-Control: no-cache`, `no-store`, or `private` directives + are present in the origin headers. + + For more information about cache behaviors, see [Cache Behavior + Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) + in the *Amazon CloudFront Developer Guide*. + """ + + path_pattern: str + """ + The pattern (for example, `images/*.jpg`) that specifies which requests + to apply the behavior to. When CloudFront receives a viewer request, the + requested path is compared with path patterns in the order in which + cache behaviors are listed in the distribution. + + Note: + You can optionally include a slash (`/`) at the beginning of the path + pattern. For example, `/images/*.jpg`. CloudFront behavior is the same + with or without the leading `/`. + + The path pattern for the default cache behavior is `*` and cannot be + changed. If the request for an object does not match the path pattern + for any cache behaviors, CloudFront applies the behavior in the default + cache behavior. + + For more information, see [Path + Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) + in the *Amazon CloudFront Developer Guide*. + """ + target_origin_id: str + """ + The value of `ID` for the origin that you want CloudFront to route + requests to when they match this cache behavior. + """ + trusted_signers: TrustedSigners | None = ... + """ + Warning: + We recommend using `TrustedKeyGroups` instead of `TrustedSigners`. + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A list of Amazon Web Services account IDs whose public keys CloudFront + can use to validate signed URLs or signed cookies. + + When a cache behavior contains trusted signers, CloudFront requires + signed URLs or signed cookies for all requests that match the cache + behavior. The URLs or cookies must be signed with the private key of a + CloudFront key pair in the trusted signer's Amazon Web Services + account. The signed URL or cookie contains information about which + public key CloudFront should use to verify the signature. For more + information, see [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + trusted_key_groups: TrustedKeyGroups | None = ... + """ + A list of key groups that CloudFront can use to validate signed URLs or + signed cookies. + + When a cache behavior contains trusted key groups, CloudFront requires + signed URLs or signed cookies for all requests that match the cache + behavior. The URLs or cookies must be signed with a private key whose + corresponding public key is in the key group. The signed URL or cookie + contains information about which public key CloudFront should use to + verify the signature. For more information, see [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + viewer_protocol_policy: str + """ + The protocol that viewers can use to access the files in the origin + specified by `TargetOriginId` when a request matches the path pattern in + `PathPattern`. You can specify the following options: + + - `allow-all`: Viewers can use HTTP or HTTPS. + + - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront + returns an HTTP status code of 301 (Moved Permanently) to the viewer + along with the HTTPS URL. The viewer then resubmits the request using + the new URL. + + - `https-only`: If a viewer sends an HTTP request, CloudFront returns an + HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring + HTTPS Between Viewers and + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) + in the *Amazon CloudFront Developer Guide*. + + Note: + The only way to guarantee that viewers retrieve an object that was + fetched from the origin using HTTPS is never to use any other protocol + to fetch the object. If you have recently changed from HTTP to HTTPS, we + recommend that you clear your objects' cache because cached objects are + protocol agnostic. That means that an edge location will return an + object from the cache regardless of whether the current request protocol + matches the protocol used previously. For more information, see + [Managing Cache + Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + allowed_methods: AllowedMethods | None = ... + """ + A complex type that controls which HTTP methods CloudFront processes and + forwards to your Amazon S3 bucket or your custom origin. There are three + choices: + + - CloudFront forwards only `GET` and `HEAD` requests. + + - CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests. + + - CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and + `DELETE` requests. + + If you pick the third choice, you may need to restrict access to your + Amazon S3 bucket or to your custom origin so users can't perform + operations that you don't want them to. For example, you might not want + users to have permissions to delete objects from your origin. + """ + smooth_streaming: bool | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + Indicates whether you want to distribute media files in the Microsoft + Smooth Streaming format using the origin that is associated with this + cache behavior. If so, specify `true`; if not, specify `false`. If you + specify `true` for `SmoothStreaming`, you can still distribute other + content using this cache behavior if the content matches the value of + `PathPattern`. + """ + compress: bool | None = ... + """ + Whether you want CloudFront to automatically compress certain files for + this cache behavior. If so, specify true; if not, specify false. For + more information, see [Serving Compressed + Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) + in the *Amazon CloudFront Developer Guide*. + """ + lambda_function_associations: LambdaFunctionAssociations | None = ... + """ + A complex type that contains zero or more Lambda@Edge function + associations for a cache behavior. + """ + function_associations: FunctionAssociations | None = ... + """ + A list of CloudFront functions that are associated with this cache + behavior. CloudFront functions must be published to the `LIVE` stage to + associate them with a cache behavior. + """ + field_level_encryption_id: str | None = ... + """ + The value of `ID` for the field-level encryption configuration that you + want CloudFront to use for encrypting specific fields of data for this + cache behavior. + """ + realtime_log_config_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the real-time log configuration that + is attached to this cache behavior. For more information, see [Real-time + logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) + in the *Amazon CloudFront Developer Guide*. + """ + cache_policy_id: str | None = ... + """ + The unique identifier of the cache policy that is attached to this cache + behavior. For more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + A `CacheBehavior` must include either a `CachePolicyId` or + `ForwardedValues`. We recommend that you use a `CachePolicyId`. + """ + origin_request_policy_id: str | None = ... + """ + The unique identifier of the origin request policy that is attached to + this cache behavior. For more information, see [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + or [Using the managed origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) + in the *Amazon CloudFront Developer Guide*. + """ + response_headers_policy_id: str | None = ... + """The identifier for a response headers policy.""" + grpc_config: GrpcConfig | None = ... + """The gRPC configuration for your cache behavior.""" + forwarded_values: ForwardedValues | None = ... + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. For more information, see + [Working with + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) + in the *Amazon CloudFront Developer Guide*. + + If you want to include values in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + If you want to send values to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + or [Using the managed origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) + in the *Amazon CloudFront Developer Guide*. + + A `CacheBehavior` must include either a `CachePolicyId` or + `ForwardedValues`. We recommend that you use a `CachePolicyId`. + + A complex type that specifies how CloudFront handles query strings, + cookies, and HTTP headers. + """ + min_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `MinTTL` field + in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The minimum amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. For more information, see + [Managing How Long Content Stays in an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + + You must specify `0` for `MinTTL` if you configure CloudFront to forward + all headers to your origin (under `Headers`, if you specify `1` for + `Quantity` and `*` for `Name`). + """ + default_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `DefaultTTL` + field in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The default amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. The value that you + specify applies only when your origin does not add HTTP headers such as + `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to + objects. For more information, see [Managing How Long Content Stays in + an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + max_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `MaxTTL` field + in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The maximum amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. The value that you + specify applies only when your origin adds HTTP headers such as + `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to + objects. For more information, see [Managing How Long Content Stays in + an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class CacheBehaviors(_SerdeShape): + """A complex type that contains zero or more `CacheBehavior` elements.""" + + quantity: int + """The number of cache behaviors for this distribution.""" + items: list[CacheBehavior] | None = ... + """ + Optional: A complex type that contains cache behaviors for this + distribution. If `Quantity` is `0`, you can omit `Items`. + """ + +@dataclass(kw_only=True) +class CachedMethods(_SerdeShape): + """ + A complex type that controls whether CloudFront caches the response to + requests using the specified HTTP methods. There are two choices: + + - CloudFront caches responses to `GET` and `HEAD` requests. + + - CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to + forward Access-Control-Request-Method, Access-Control-Request-Headers, + and Origin headers for the responses to be cached correctly. + """ + + quantity: int + """ + The number of HTTP methods for which you want CloudFront to cache + responses. Valid values are `2` (for caching responses to `GET` and + `HEAD` requests) and `3` (for caching responses to `GET`, `HEAD`, and + `OPTIONS` requests). + """ + items: list[str] + """ + A complex type that contains the HTTP methods that you want CloudFront + to cache responses to. Valid values for `CachedMethods` include `GET`, + `HEAD`, and `OPTIONS`, depending on which caching option you choose. For + more information, see the preceding section. + """ + +@dataclass(kw_only=True) +class CachePolicy(_SerdeShape): + """ + A cache policy. + + When it's attached to a cache behavior, the cache policy determines the + following: + + - The values that CloudFront includes in the cache key. These values can + include HTTP headers, cookies, and URL query strings. CloudFront uses + the cache key to find an object in its cache that it can return to the + viewer. + + - The default, minimum, and maximum time to live (TTL) values that you + want objects to stay in the CloudFront cache. + + The headers, cookies, and query strings that are included in the cache + key are also included in requests that CloudFront sends to the origin. + CloudFront sends a request when it can't find a valid object in its + cache that matches the request's cache key. If you want to send values + to the origin but *not* include them in the cache key, use + `OriginRequestPolicy`. + """ + + id: str + """The unique identifier for the cache policy.""" + last_modified_time: datetime + """The date and time when the cache policy was last modified.""" + cache_policy_config: CachePolicyConfig + """The cache policy configuration.""" + +@dataclass(kw_only=True) +class CachePolicyAlreadyExists(ServiceError, _SerdeShape): + """ + A cache policy with this name already exists. You must provide a unique + name. To modify an existing cache policy, use `UpdateCachePolicy`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CachePolicyConfig(_SerdeShape): + """ + A cache policy configuration. + + This configuration determines the following: + + - The values that CloudFront includes in the cache key. These values can + include HTTP headers, cookies, and URL query strings. CloudFront uses + the cache key to find an object in its cache that it can return to the + viewer. + + - The default, minimum, and maximum time to live (TTL) values that you + want objects to stay in the CloudFront cache. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content + for at least the duration specified in the cache policy's minimum + TTL, even if the `Cache-Control: no-cache`, `no-store`, or `private` + directives are present in the origin headers. + + The headers, cookies, and query strings that are included in the cache + key are also included in requests that CloudFront sends to the origin. + CloudFront sends a request when it can't find a valid object in its + cache that matches the request's cache key. If you want to send values + to the origin but *not* include them in the cache key, use + `OriginRequestPolicy`. + """ + + comment: str | None = ... + """ + A comment to describe the cache policy. The comment cannot be longer + than 128 characters. + """ + name: str + """A unique name to identify the cache policy.""" + default_ttl: int | None = ... + """ + The default amount of time, in seconds, that you want objects to stay in + the CloudFront cache before CloudFront sends another request to the + origin to see if the object has been updated. CloudFront uses this value + as the object's time to live (TTL) only when the origin does *not* send + `Cache-Control` or `Expires` headers with the object. For more + information, see [Managing How Long Content Stays in an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + + The default value for this field is 86400 seconds (one day). If the + value of `MinTTL` is more than 86400 seconds, then the default value for + this field is the same as the value of `MinTTL`. + """ + max_ttl: int | None = ... + """ + The maximum amount of time, in seconds, that objects stay in the + CloudFront cache before CloudFront sends another request to the origin + to see if the object has been updated. CloudFront uses this value only + when the origin sends `Cache-Control` or `Expires` headers with the + object. For more information, see [Managing How Long Content Stays in an + Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + + The default value for this field is 31536000 seconds (one year). If the + value of `MinTTL` or `DefaultTTL` is more than 31536000 seconds, then + the default value for this field is the same as the value of + `DefaultTTL`. + """ + min_ttl: int + """ + The minimum amount of time, in seconds, that you want objects to stay in + the CloudFront cache before CloudFront sends another request to the + origin to see if the object has been updated. For more information, see + [Managing How Long Content Stays in an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + parameters_in_cache_key_and_forwarded_to_origin: ( + ParametersInCacheKeyAndForwardedToOrigin | None + ) = ... + """ + The HTTP headers, cookies, and URL query strings to include in the cache + key. The values included in the cache key are also included in requests + that CloudFront sends to the origin. + """ + +class CachePolicyCookieBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL_EXCEPT = "allExcept" + ALL = "all" + +@dataclass(kw_only=True) +class CachePolicyCookiesConfig(_SerdeShape): + """ + An object that determines whether any cookies in viewer requests (and if + so, which cookies) are included in the cache key and in requests that + CloudFront sends to the origin. + """ + + cookie_behavior: str + """ + Determines whether any cookies in viewer requests are included in the + cache key and in requests that CloudFront sends to the origin. Valid + values are: + + - `none` -- No cookies in viewer requests are included in the cache key + or in requests that CloudFront sends to the origin. Even when this + field is set to `none`, any cookies that are listed in an + `OriginRequestPolicy` *are* included in origin requests. + + - `whitelist` -- Only the cookies in viewer requests that are listed in + the `CookieNames` type are included in the cache key and in requests + that CloudFront sends to the origin. + + - `allExcept` -- All cookies in viewer requests are included in the + cache key and in requests that CloudFront sends to the origin, + ***except*** for those that are listed in the `CookieNames` type, + which are not included. + + - `all` -- All cookies in viewer requests are included in the cache key + and in requests that CloudFront sends to the origin. + """ + cookies: CookieNames | None = ... + """Contains a list of cookie names.""" + +class CachePolicyHeaderBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + +@dataclass(kw_only=True) +class CachePolicyHeadersConfig(_SerdeShape): + """ + An object that determines whether any HTTP headers (and if so, which + headers) are included in the cache key and in requests that CloudFront + sends to the origin. + """ + + header_behavior: str + """ + Determines whether any HTTP headers are included in the cache key and in + requests that CloudFront sends to the origin. Valid values are: + + - `none` -- No HTTP headers are included in the cache key or in requests + that CloudFront sends to the origin. Even when this field is set to + `none`, any headers that are listed in an `OriginRequestPolicy` *are* + included in origin requests. + + - `whitelist` -- Only the HTTP headers that are listed in the `Headers` + type are included in the cache key and in requests that CloudFront + sends to the origin. + """ + headers: Headers | None = ... + """Contains a list of HTTP header names.""" + +@dataclass(kw_only=True) +class CachePolicyInUse(ServiceError, _SerdeShape): + """ + Cannot delete the cache policy because it is attached to one or more + cache behaviors. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CachePolicyList(_SerdeShape): + """A list of cache policies.""" + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing cache + policies where you left off. + """ + max_items: int + """The maximum number of cache policies requested.""" + quantity: int + """The total number of cache policies returned in the response.""" + items: list[CachePolicySummary] | None = ... + """Contains the cache policies in the list.""" + +class CachePolicyQueryStringBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL_EXCEPT = "allExcept" + ALL = "all" + +@dataclass(kw_only=True) +class CachePolicyQueryStringsConfig(_SerdeShape): + """ + An object that determines whether any URL query strings in viewer + requests (and if so, which query strings) are included in the cache key + and in requests that CloudFront sends to the origin. + """ + + query_string_behavior: str + """ + Determines whether any URL query strings in viewer requests are included + in the cache key and in requests that CloudFront sends to the origin. + Valid values are: + + - `none` -- No query strings in viewer requests are included in the + cache key or in requests that CloudFront sends to the origin. Even + when this field is set to `none`, any query strings that are listed in + an `OriginRequestPolicy` *are* included in origin requests. + + - `whitelist` -- Only the query strings in viewer requests that are + listed in the `QueryStringNames` type are included in the cache key + and in requests that CloudFront sends to the origin. + + - `allExcept` -- All query strings in viewer requests are included in + the cache key and in requests that CloudFront sends to the origin, + ***except*** those that are listed in the `QueryStringNames` type, + which are not included. + + - `all` -- All query strings in viewer requests are included in the + cache key and in requests that CloudFront sends to the origin. + """ + query_strings: QueryStringNames | None = ... + """ + Contains the specific query strings in viewer requests that either + ***are*** or ***are not*** included in the cache key and in requests + that CloudFront sends to the origin. The behavior depends on whether the + `QueryStringBehavior` field in the `CachePolicyQueryStringsConfig` type + is set to `whitelist` (the listed query strings ***are*** included) or + `allExcept` (the listed query strings ***are not*** included, but all + other query strings are). + """ + +@dataclass(kw_only=True) +class CachePolicySummary(_SerdeShape): + """Contains a cache policy.""" + + type: str + """ + The type of cache policy, either `managed` (created by Amazon Web + Services) or `custom` (created in this Amazon Web Services account). + """ + cache_policy: CachePolicy + """The cache policy.""" + +class CachePolicyType(UnknownEnumMixin, StrEnum): + MANAGED = "managed" + CUSTOM = "custom" + +@dataclass(kw_only=True) +class CacheTagConfig(_SerdeShape): + """ + A complex type that specifies the HTTP header name from which CloudFront + extracts cache tags from origin responses. When you add `CacheTagConfig` + to a distribution, CloudFront reads the specified header from origin + responses, parses the comma-separated tag values, and stores them with + the cached object. You can then invalidate cached objects by tag using + the `CreateInvalidation` API. + """ + + header_name: str + """ + The name of the HTTP header that your origin includes in responses. + CloudFront uses this header to extract cache tags. The header value must + contain comma-separated tag values (for example, + `product:electronics, category:tv, brand:example`). + """ + +@dataclass(kw_only=True) +class CannotChangeImmutablePublicKeyFields(ServiceError, _SerdeShape): + """You can't change the value of a public key.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CannotDeleteEntityWhileInUse(ServiceError, _SerdeShape): + """The entity cannot be deleted while it is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CannotUpdateEntityWhileInUse(ServiceError, _SerdeShape): + """The entity cannot be updated while it is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Certificate(_SerdeShape): + """ + The Certificate Manager (ACM) certificate associated with your + distribution. + """ + + arn: str + """The Amazon Resource Name (ARN) of the ACM certificate.""" + +class CertificateSource(UnknownEnumMixin, StrEnum): + CLOUDFRONT = "cloudfront" + IAM = "iam" + ACM = "acm" + +class CertificateTransparencyLoggingPreference(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentity(_SerdeShape): + """CloudFront origin access identity.""" + + id: str + """The ID for the origin access identity, for example, `E74FTE3AJFJ256A`.""" + s3_canonical_user_id: str + """ + The Amazon S3 canonical user ID for the origin access identity, used + when giving the origin access identity read permission to an object in + Amazon S3. + """ + cloud_front_origin_access_identity_config: ( + CloudFrontOriginAccessIdentityConfig | None + ) = ... + """The current configuration information for the identity.""" + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentityAlreadyExists(ServiceError, _SerdeShape): + """ + If the `CallerReference` is a value you already sent in a previous + request to create an identity but the content of the + `CloudFrontOriginAccessIdentityConfig` is different from the original + request, CloudFront returns a + `CloudFrontOriginAccessIdentityAlreadyExists` error. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentityConfig(_SerdeShape): + """ + Origin access identity configuration. Send a `GET` request to the + `/`*`CloudFront API version`*`/CloudFront/identity ID/config` resource. + """ + + caller_reference: str + """ + A unique value (for example, a date-time stamp) that ensures that the + request can't be replayed. + + If the value of `CallerReference` is new (regardless of the content of + the `CloudFrontOriginAccessIdentityConfig` object), a new origin access + identity is created. + + If the `CallerReference` is a value already sent in a previous identity + request, and the content of the `CloudFrontOriginAccessIdentityConfig` + is identical to the original request (ignoring white space), the + response includes the same information returned to the original request. + + If the `CallerReference` is a value you already sent in a previous + request to create an identity, but the content of the + `CloudFrontOriginAccessIdentityConfig` is different from the original + request, CloudFront returns a + `CloudFrontOriginAccessIdentityAlreadyExists` error. + """ + comment: str + """ + A comment to describe the origin access identity. The comment cannot be + longer than 128 characters. + """ + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentityInUse(ServiceError, _SerdeShape): + """The Origin Access Identity specified is already in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentityList(_SerdeShape): + """ + Lists the origin access identities for CloudFront.Send a `GET` request + to the `/`*`CloudFront API version`*`/origin-access-identity/cloudfront` + resource. The response includes a `CloudFrontOriginAccessIdentityList` + element with zero or more `CloudFrontOriginAccessIdentitySummary` child + elements. By default, your entire list of origin access identities is + returned in one single page. If the list is long, you can paginate it + using the `MaxItems` and `Marker` parameters. + """ + + marker: str + """ + Use this when paginating results to indicate where to begin in your list + of origin access identities. The results include identities in the list + that occur after the marker. To get the next page of results, set the + `Marker` to the value of the `NextMarker` from the current page's + response (which is also the ID of the last identity on that page). + """ + next_marker: str | None = ... + """ + If `IsTruncated` is `true`, this element is present and contains the + value you can use for the `Marker` request parameter to continue listing + your origin access identities where they left off. + """ + max_items: int + """ + The maximum number of origin access identities you want in the response + body. + """ + is_truncated: bool + """ + A flag that indicates whether more origin access identities remain to be + listed. If your results were truncated, you can make a follow-up + pagination request using the `Marker` request parameter to retrieve more + items in the list. + """ + quantity: int + """ + The number of CloudFront origin access identities that were created by + the current Amazon Web Services account. + """ + items: list[CloudFrontOriginAccessIdentitySummary] | None = ... + """ + A complex type that contains one `CloudFrontOriginAccessIdentitySummary` + element for each origin access identity that was created by the current + Amazon Web Services account. + """ + +@dataclass(kw_only=True) +class CloudFrontOriginAccessIdentitySummary(_SerdeShape): + """Summary of the information about a CloudFront origin access identity.""" + + id: str + """The ID for the origin access identity. For example: `E74FTE3AJFJ256A`.""" + s3_canonical_user_id: str + """ + The Amazon S3 canonical user ID for the origin access identity, which + you use when giving the origin access identity read permission to an + object in Amazon S3. + """ + comment: str + """ + The comment for this origin access identity, as originally specified + when created. + """ + +@dataclass(kw_only=True) +class CNAMEAlreadyExists(ServiceError, _SerdeShape): + """The CNAME specified is already defined for CloudFront.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConflictingAlias(_SerdeShape): + """ + An alias (also called a CNAME) and the CloudFront standard distribution + and Amazon Web Services account ID that it's associated with. The + standard distribution and account IDs are partially hidden, which allows + you to identify the standard distributions and accounts that you own, + and helps to protect the information of ones that you don't own. + """ + + alias: str | None = ... + """An alias (also called a CNAME).""" + distribution_id: str | None = ... + """ + The (partially hidden) ID of the CloudFront standard distribution + associated with the alias. + """ + account_id: str | None = ... + """ + The (partially hidden) ID of the Amazon Web Services account that owns + the standard distribution that's associated with the alias. + """ + +@dataclass(kw_only=True) +class ConflictingAliasesList(_SerdeShape): + """ + A list of aliases (also called CNAMEs) and the CloudFront standard + distributions and Amazon Web Services accounts that they are associated + with. In the list, the standard distribution and account IDs are + partially hidden, which allows you to identify the standard + distributions and accounts that you own, but helps to protect the + information of ones that you don't own. + """ + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing conflicting + aliases where you left off. + """ + max_items: int | None = ... + """The maximum number of conflicting aliases requested.""" + quantity: int | None = ... + """The number of conflicting aliases returned in the response.""" + items: list[ConflictingAlias] | None = ... + """Contains the conflicting aliases in the list.""" + +@dataclass(kw_only=True) +class ConnectionFunctionAssociation(_SerdeShape): + """A connection function association.""" + + id: str + """The association's ID.""" + +@dataclass(kw_only=True) +class ConnectionFunctionSummary(_SerdeShape): + """A connection function summary.""" + + name: str + """The connection function name.""" + id: str + """The connection function ID.""" + connection_function_config: FunctionConfig + """Contains configuration information about a CloudFront function.""" + connection_function_arn: str + """The connection function Amazon Resource Name (ARN).""" + status: str + """The connection function status.""" + stage: str + """The connection function stage.""" + created_time: datetime + """The connection function created time.""" + last_modified_time: datetime + """The connection function last modified time.""" + +@dataclass(kw_only=True) +class ConnectionFunctionTestResult(_SerdeShape): + """A connection function test result.""" + + connection_function_summary: ConnectionFunctionSummary | None = ... + """The connection function summary.""" + compute_utilization: str | None = ... + """The connection function compute utilization.""" + connection_function_execution_logs: list[str] | None = ... + """The connection function execution logs.""" + connection_function_error_message: str | None = ... + """The connection function error message.""" + connection_function_output: str | None = ... + """The connection function output.""" + +@dataclass(kw_only=True) +class ConnectionGroup(_SerdeShape): + """ + The connection group for your distribution tenants. When you first + create a distribution tenant and you don't specify a connection group, + CloudFront will automatically create a default connection group for you. + When you create a new distribution tenant and don't specify a + connection group, the default one will be associated with your + distribution tenant. + """ + + id: str | None = ... + """The ID of the connection group.""" + name: str | None = ... + """The name of the connection group.""" + arn: str | None = ... + """The Amazon Resource Name (ARN) of the connection group.""" + created_time: datetime | None = ... + """The date and time when the connection group was created.""" + last_modified_time: datetime | None = ... + """The date and time when the connection group was updated.""" + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + ipv6_enabled: bool | None = ... + """IPv6 is enabled for the connection group.""" + routing_endpoint: str | None = ... + """ + The routing endpoint (also known as the DNS name) that is assigned to + the connection group, such as d111111abcdef8.cloudfront.net. + """ + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + status: str | None = ... + """The status of the connection group.""" + enabled: bool | None = ... + """Whether the connection group is enabled.""" + is_default: bool | None = ... + """ + Whether the connection group is the default connection group for the + distribution tenants. + """ + +@dataclass(kw_only=True) +class ConnectionGroupAssociationFilter(_SerdeShape): + """ + Contains information about what CloudFront resources your connection + groups are associated with. + """ + + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + +@dataclass(kw_only=True) +class ConnectionGroupSummary(_SerdeShape): + """A summary that contains details about your connection groups.""" + + id: str + """The ID of the connection group.""" + name: str + """The name of the connection group.""" + arn: str + """The Amazon Resource Name (ARN) of the connection group.""" + routing_endpoint: str + """ + The routing endpoint (also known as the DNS name) that is assigned to + the connection group, such as d111111abcdef8.cloudfront.net. + """ + created_time: datetime + """The date and time when the connection group was created.""" + last_modified_time: datetime + """The date and time when the connection group was updated.""" + e_tag: str + """The current version of the connection group.""" + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + enabled: bool | None = ... + """Whether the connection group is enabled""" + status: str | None = ... + """The status of the connection group.""" + is_default: bool | None = ... + """ + Whether the connection group is the default connection group for the + distribution tenants. + """ + +class ConnectionMode(UnknownEnumMixin, StrEnum): + DIRECT = "direct" + TENANT_ONLY = "tenant-only" + +@dataclass(kw_only=True) +class ContentTypeProfile(_SerdeShape): + """A field-level encryption content type profile.""" + + format: str + """The format for a field-level encryption content type-profile mapping.""" + profile_id: str | None = ... + """ + The profile ID for a field-level encryption content type-profile + mapping. + """ + content_type: str + """ + The content type for a field-level encryption content type-profile + mapping. + """ + +@dataclass(kw_only=True) +class ContentTypeProfileConfig(_SerdeShape): + """ + The configuration for a field-level encryption content type-profile + mapping. + """ + + forward_when_content_type_is_unknown: bool + """ + The setting in a field-level encryption content type-profile mapping + that specifies what to do when an unknown content type is provided for + the profile. If true, content is forwarded without being encrypted when + the content type is unknown. If false (the default), an error is + returned when the content type is unknown. + """ + content_type_profiles: ContentTypeProfiles | None = ... + """The configuration for a field-level encryption content type-profile.""" + +@dataclass(kw_only=True) +class ContentTypeProfiles(_SerdeShape): + """Field-level encryption content type-profile.""" + + quantity: int + """The number of field-level encryption content type-profile mappings.""" + items: list[ContentTypeProfile] | None = ... + """Items in a field-level encryption content type-profile mapping.""" + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicy(_SerdeShape): + """A continuous deployment policy.""" + + id: str + """The identifier of the continuous deployment policy.""" + last_modified_time: datetime + """The date and time the continuous deployment policy was last modified.""" + continuous_deployment_policy_config: ContinuousDeploymentPolicyConfig + """Contains the configuration for a continuous deployment policy.""" + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicyAlreadyExists(ServiceError, _SerdeShape): + """A continuous deployment policy with this configuration already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicyConfig(_SerdeShape): + """Contains the configuration for a continuous deployment policy.""" + + staging_distribution_dns_names: StagingDistributionDnsNames + """ + The CloudFront domain name of the staging distribution. For example: + `d111111abcdef8.cloudfront.net`. + """ + enabled: bool + """ + A Boolean that indicates whether this continuous deployment policy is + enabled (in effect). When this value is `true`, this policy is enabled + and in effect. When this value is `false`, this policy is not enabled + and has no effect. + """ + traffic_config: TrafficConfig | None = ... + """ + Contains the parameters for routing production traffic from your primary + to staging distributions. + """ + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicyInUse(ServiceError, _SerdeShape): + """ + You cannot delete a continuous deployment policy that is associated with + a primary distribution. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicyList(_SerdeShape): + """Contains a list of continuous deployment policies.""" + + next_marker: str | None = ... + """ + Indicates the next page of continuous deployment policies. To get the + next page of the list, use this value in the `Marker` field of your + request. + """ + max_items: int + """ + The maximum number of continuous deployment policies that were specified + in your request. + """ + quantity: int + """ + The total number of continuous deployment policies in your Amazon Web + Services account, regardless of the `MaxItems` value. + """ + items: list[ContinuousDeploymentPolicySummary] | None = ... + """A list of continuous deployment policy items.""" + +@dataclass(kw_only=True) +class ContinuousDeploymentPolicySummary(_SerdeShape): + """A summary of the information about your continuous deployment policies.""" + + continuous_deployment_policy: ContinuousDeploymentPolicy + """The continuous deployment policy.""" + +class ContinuousDeploymentPolicyType(UnknownEnumMixin, StrEnum): + SINGLE_WEIGHT = "SingleWeight" + SINGLE_HEADER = "SingleHeader" + +@dataclass(kw_only=True) +class ContinuousDeploymentSingleHeaderConfig(_SerdeShape): + """ + This configuration determines which HTTP requests are sent to the + staging distribution. If the HTTP request contains a header and value + that matches what you specify here, the request is sent to the staging + distribution. Otherwise the request is sent to the primary distribution. + """ + + header: str + """ + The request header name that you want CloudFront to send to your staging + distribution. The header must contain the prefix `aws-cf-cd-`. + """ + value: str + """The request header value.""" + +@dataclass(kw_only=True) +class ContinuousDeploymentSingleWeightConfig(_SerdeShape): + """Contains the percentage of traffic to send to a staging distribution.""" + + weight: float + """ + The percentage of traffic to send to a staging distribution, expressed + as a decimal number between 0 and 0.15. For example, a value of 0.10 + means 10% of traffic is sent to the staging distribution. + """ + session_stickiness_config: SessionStickinessConfig | None = ... + """ + Session stickiness provides the ability to define multiple requests from + a single viewer as a single session. This prevents the potentially + inconsistent experience of sending some of a given user's requests to + your staging distribution, while others are sent to your primary + distribution. Define the session duration using TTL values. + """ + +@dataclass(kw_only=True) +class CookieNames(_SerdeShape): + """Contains a list of cookie names.""" + + quantity: int + """The number of cookie names in the `Items` list.""" + items: list[str] | None = ... + """A list of cookie names.""" + +@dataclass(kw_only=True) +class CookiePreference(_SerdeShape): + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include cookies in the cache key, use `CookiesConfig` in + a cache policy. See `CachePolicy`. + + If you want to send cookies to the origin but not include them in the + cache key, use `CookiesConfig` in an origin request policy. See + `OriginRequestPolicy`. + + A complex type that specifies whether you want CloudFront to forward + cookies to the origin and, if so, which ones. For more information about + forwarding cookies to the origin, see [Caching Content Based on + Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) + in the *Amazon CloudFront Developer Guide*. + """ + + forward: str + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include cookies in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send cookies to the origin but not include them in the + cache key, use origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + Specifies which cookies to forward to the origin for this cache + behavior: all, none, or the list of cookies specified in the + `WhitelistedNames` complex type. + + Amazon S3 doesn't process cookies. When the cache behavior is + forwarding requests to an Amazon S3 origin, specify none for the + `Forward` element. + """ + whitelisted_names: CookieNames | None = ... + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include cookies in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send cookies to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + Required if you specify `whitelist` for the value of `Forward`. A + complex type that specifies how many different cookies you want + CloudFront to forward to the origin for this cache behavior and, if you + want to forward selected cookies, the names of those cookies. + + If you specify `all` or `none` for the value of `Forward`, omit + `WhitelistedNames`. If you change the value of `Forward` from + `whitelist` to `all` or `none` and you don't delete the + `WhitelistedNames` element and its child elements, CloudFront deletes + them automatically. + + For the current limit on the number of cookie names that you can + whitelist for each cache behavior, see [CloudFront + Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) + in the *Amazon Web Services General Reference*. + """ + +@dataclass(kw_only=True) +class CopyDistributionInput(_SerdeShape): + """Dataclass for CopyDistributionInput structure.""" + + primary_distribution_id: str | None = ... + """ + The identifier of the primary distribution whose configuration you are + copying. To get a distribution ID, use `ListDistributions`. + """ + staging: bool | None = ... + """ + The type of distribution that your primary distribution will be copied + to. The only valid value is `True`, indicating that you are copying to a + staging distribution. + """ + if_match: str | None = ... + """ + The version identifier of the primary distribution whose configuration + you are copying. This is the `ETag` value returned in the response to + `GetDistribution` and `GetDistributionConfig`. + """ + caller_reference: str | None = ... + """ + A value that uniquely identifies a request to create a resource. This + helps to prevent CloudFront from creating a duplicate resource if you + accidentally resubmit an identical request. + """ + enabled: bool | None = ... + """ + A Boolean flag to specify the state of the staging distribution when + it's created. When you set this value to `True`, the staging + distribution is enabled. When you set this value to `False`, the staging + distribution is disabled. + + If you omit this field, the default value is `True`. + """ + +@dataclass(kw_only=True) +class CopyDistributionOutput(_SerdeShape): + """Dataclass for CopyDistributionOutput structure.""" + + distribution: Distribution | None = ... + """ + A distribution tells CloudFront where you want content to be delivered + from, and the details about how to track and manage content delivery. + """ + location: str | None = ... + """The URL of the staging distribution.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the staging + distribution. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateAnycastIpListInput(_SerdeShape): + """Dataclass for CreateAnycastIpListInput structure.""" + + name: str | None = ... + """Name of the Anycast static IP list.""" + ip_count: int | None = ... + """ + The number of static IP addresses that are allocated to the Anycast + static IP list. Valid values: 21 or 3. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + ip_address_type: str | None = ... + """ + The IP address type for the Anycast static IP list. You can specify one + of the following options: + + - `ipv4` only + + - `ipv6` only + + - `dualstack` - Allocate a list of both IPv4 and IPv6 addresses + """ + ipam_cidr_configs: list[IpamCidrConfig] | None = ... + """ + A list of IPAM CIDR configurations that specify the IP address ranges + and IPAM pool settings for creating the Anycast static IP list. + """ + +@dataclass(kw_only=True) +class CreateAnycastIpListOutput(_SerdeShape): + """Dataclass for CreateAnycastIpListOutput structure.""" + + anycast_ip_list: AnycastIpList | None = ... + """ + A response structure that includes the version identifier (ETag) and the + created AnycastIpList structure. + """ + e_tag: str | None = ... + """ + The version identifier for the current version of the Anycast static IP + list. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCachePolicyInput(_SerdeShape): + """Dataclass for CreateCachePolicyInput structure.""" + + cache_policy_config: CachePolicyConfig | None = ... + """A cache policy configuration.""" + +@dataclass(kw_only=True) +class CreateCachePolicyOutput(_SerdeShape): + """Dataclass for CreateCachePolicyOutput structure.""" + + cache_policy: CachePolicy | None = ... + """A cache policy.""" + location: str | None = ... + """The fully qualified URI of the cache policy just created.""" + e_tag: str | None = ... + """The current version of the cache policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCloudFrontOriginAccessIdentityInput(_SerdeShape): + """ + The request to create a new origin access identity (OAI). An origin + access identity is a special CloudFront user that you can associate with + Amazon S3 origins, so that you can secure all or just some of your + Amazon S3 content. For more information, see [Restricting Access to + Amazon S3 Content by Using an Origin Access + Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) + in the *Amazon CloudFront Developer Guide*. + """ + + cloud_front_origin_access_identity_config: ( + CloudFrontOriginAccessIdentityConfig | None + ) = ... + """The current configuration information for the identity.""" + +@dataclass(kw_only=True) +class CreateCloudFrontOriginAccessIdentityOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + cloud_front_origin_access_identity: CloudFrontOriginAccessIdentity | None = ... + """The origin access identity's information.""" + location: str | None = ... + """The fully qualified URI of the new origin access identity just created.""" + e_tag: str | None = ... + """The current version of the origin access identity created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateConnectionFunctionInput(_SerdeShape): + """Dataclass for CreateConnectionFunctionInput structure.""" + + name: str | None = ... + """A name for the connection function.""" + connection_function_config: FunctionConfig | None = ... + """Contains configuration information about a CloudFront function.""" + connection_function_code: bytes | None = ... + """The code for the connection function.""" + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class CreateConnectionFunctionOutput(_SerdeShape): + """Dataclass for CreateConnectionFunctionOutput structure.""" + + connection_function_summary: ConnectionFunctionSummary | None = ... + """The summary for the connection function.""" + location: str | None = ... + """The location of the connection function.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the connection + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateConnectionGroupInput(_SerdeShape): + """Dataclass for CreateConnectionGroupInput structure.""" + + name: str | None = ... + """ + The name of the connection group. Enter a friendly identifier that is + unique within your Amazon Web Services account. This name can't be + updated after you create the connection group. + """ + ipv6_enabled: bool | None = ... + """ + Enable IPv6 for the connection group. The default is `true`. For more + information, see [Enable + IPv6](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesEnableIPv6) + in the *Amazon CloudFront Developer Guide*. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + enabled: bool | None = ... + """Enable the connection group.""" + +@dataclass(kw_only=True) +class CreateConnectionGroupOutput(_SerdeShape): + """Dataclass for CreateConnectionGroupOutput structure.""" + + connection_group: ConnectionGroup | None = ... + """The connection group that you created.""" + e_tag: str | None = ... + """The current version of the connection group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateContinuousDeploymentPolicyInput(_SerdeShape): + """Dataclass for CreateContinuousDeploymentPolicyInput structure.""" + + continuous_deployment_policy_config: ContinuousDeploymentPolicyConfig | None = ... + """Contains the configuration for a continuous deployment policy.""" + +@dataclass(kw_only=True) +class CreateContinuousDeploymentPolicyOutput(_SerdeShape): + """Dataclass for CreateContinuousDeploymentPolicyOutput structure.""" + + continuous_deployment_policy: ContinuousDeploymentPolicy | None = ... + """A continuous deployment policy.""" + location: str | None = ... + """The location of the continuous deployment policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the continuous + deployment policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDistributionInput(_SerdeShape): + """The request to create a new distribution.""" + + distribution_config: DistributionConfig | None = ... + """The distribution's configuration information.""" + +@dataclass(kw_only=True) +class CreateDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution: Distribution | None = ... + """The distribution's information.""" + location: str | None = ... + """The fully qualified URI of the new distribution resource just created.""" + e_tag: str | None = ... + """The current version of the distribution created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDistributionTenantInput(_SerdeShape): + """Dataclass for CreateDistributionTenantInput structure.""" + + distribution_id: str | None = ... + """ + The ID of the multi-tenant distribution to use for creating the + distribution tenant. + """ + name: str | None = ... + """ + The name of the distribution tenant. Enter a friendly identifier that is + unique within your Amazon Web Services account. This name can't be + updated after you create the distribution tenant. + """ + domains: list[DomainItem] | None = ... + """ + The domains associated with the distribution tenant. You must specify at + least one domain in the request. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + customizations: Customizations | None = ... + """ + Customizations for the distribution tenant. For each distribution + tenant, you can specify the geographic restrictions, and the Amazon + Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are + specific values that you can override or disable from the multi-tenant + distribution that was used to create the distribution tenant. + """ + parameters: list[Parameter] | None = ... + """ + A list of parameter values to add to the resource. A parameter is + specified as a key-value pair. A valid parameter value must exist for + any parameter that is marked as required in the multi-tenant + distribution. + """ + connection_group_id: str | None = ... + """ + The ID of the connection group to associate with the distribution + tenant. + """ + managed_certificate_request: ManagedCertificateRequest | None = ... + """The configuration for the CloudFront managed ACM certificate request.""" + enabled: bool | None = ... + """ + Indicates whether the distribution tenant should be enabled when + created. If the distribution tenant is disabled, the distribution tenant + won't serve traffic. + """ + +@dataclass(kw_only=True) +class CreateDistributionTenantOutput(_SerdeShape): + """Dataclass for CreateDistributionTenantOutput structure.""" + + distribution_tenant: DistributionTenant | None = ... + """The distribution tenant that you created.""" + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDistributionWithTagsInput(_SerdeShape): + """The request to create a new distribution with tags.""" + + distribution_config_with_tags: DistributionConfigWithTags | None = ... + """The distribution's configuration information.""" + +@dataclass(kw_only=True) +class CreateDistributionWithTagsOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution: Distribution | None = ... + """The distribution's information.""" + location: str | None = ... + """The fully qualified URI of the new distribution resource just created.""" + e_tag: str | None = ... + """The current version of the distribution created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFieldLevelEncryptionConfigInput(_SerdeShape): + """Dataclass for CreateFieldLevelEncryptionConfigInput structure.""" + + field_level_encryption_config: FieldLevelEncryptionConfig | None = ... + """The request to create a new field-level encryption configuration.""" + +@dataclass(kw_only=True) +class CreateFieldLevelEncryptionConfigOutput(_SerdeShape): + """Dataclass for CreateFieldLevelEncryptionConfigOutput structure.""" + + field_level_encryption: FieldLevelEncryption | None = ... + """Returned when you create a new field-level encryption configuration.""" + location: str | None = ... + """The fully qualified URI of the new configuration resource just created.""" + e_tag: str | None = ... + """ + The current version of the field level encryption configuration. For + example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFieldLevelEncryptionProfileInput(_SerdeShape): + """Dataclass for CreateFieldLevelEncryptionProfileInput structure.""" + + field_level_encryption_profile_config: ( + FieldLevelEncryptionProfileConfig | None + ) = ... + """The request to create a field-level encryption profile.""" + +@dataclass(kw_only=True) +class CreateFieldLevelEncryptionProfileOutput(_SerdeShape): + """Dataclass for CreateFieldLevelEncryptionProfileOutput structure.""" + + field_level_encryption_profile: FieldLevelEncryptionProfile | None = ... + """Returned when you create a new field-level encryption profile.""" + location: str | None = ... + """The fully qualified URI of the new profile resource just created.""" + e_tag: str | None = ... + """ + The current version of the field level encryption profile. For example: + `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFunctionInput(_SerdeShape): + """Dataclass for CreateFunctionInput structure.""" + + name: str | None = ... + """A name to identify the function.""" + function_config: FunctionConfig | None = ... + """ + Configuration information about the function, including an optional + comment and the function's runtime. + """ + function_code: bytes | None = ... + """ + The function code. For more information about writing a CloudFront + function, see [Writing function code for CloudFront + Functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html) + in the *Amazon CloudFront Developer Guide*. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class CreateFunctionOutput(_SerdeShape): + """Dataclass for CreateFunctionOutput structure.""" + + function_summary: FunctionSummary | None = ... + """ + Contains configuration information and metadata about a CloudFront + function. + """ + location: str | None = ... + """ + The URL of the CloudFront function. Use the URL to manage the function + with the CloudFront API. + """ + e_tag: str | None = ... + """ + The version identifier for the current version of the CloudFront + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInvalidationForDistributionTenantInput(_SerdeShape): + """Dataclass for CreateInvalidationForDistributionTenantInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + invalidation_batch: InvalidationBatch | None = ... + """An invalidation batch.""" + +@dataclass(kw_only=True) +class CreateInvalidationForDistributionTenantOutput(_SerdeShape): + """Dataclass for CreateInvalidationForDistributionTenantOutput structure.""" + + location: str | None = ... + """The location for the invalidation.""" + invalidation: Invalidation | None = ... + """An invalidation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInvalidationInput(_SerdeShape): + """The request to create an invalidation.""" + + distribution_id: str | None = ... + """The distribution's id.""" + invalidation_batch: InvalidationBatch | None = ... + """The batch information for the invalidation.""" + +@dataclass(kw_only=True) +class CreateInvalidationOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + location: str | None = ... + """ + The fully qualified URI of the distribution and invalidation batch + request, including the `Invalidation ID`. + """ + invalidation: Invalidation | None = ... + """The invalidation's information.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateKeyGroupInput(_SerdeShape): + """Dataclass for CreateKeyGroupInput structure.""" + + key_group_config: KeyGroupConfig | None = ... + """A key group configuration.""" + +@dataclass(kw_only=True) +class CreateKeyGroupOutput(_SerdeShape): + """Dataclass for CreateKeyGroupOutput structure.""" + + key_group: KeyGroup | None = ... + """The key group that was just created.""" + location: str | None = ... + """The URL of the key group.""" + e_tag: str | None = ... + """The identifier for this version of the key group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateKeyValueStoreInput(_SerdeShape): + """Dataclass for CreateKeyValueStoreInput structure.""" + + name: str | None = ... + """ + The name of the key value store. The minimum length is 1 character and + the maximum length is 64 characters. + """ + comment: str | None = ... + """The comment of the key value store.""" + import_source: ImportSource | None = ... + """ + The S3 bucket that provides the source for the import. The source must + be in a valid JSON format. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class CreateKeyValueStoreOutput(_SerdeShape): + """Dataclass for CreateKeyValueStoreOutput structure.""" + + key_value_store: KeyValueStore | None = ... + """The resulting key value store.""" + e_tag: str | None = ... + """The `ETag` in the resulting key value store.""" + location: str | None = ... + """The location of the resulting key value store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateMonitoringSubscriptionInput(_SerdeShape): + """Dataclass for CreateMonitoringSubscriptionInput structure.""" + + distribution_id: str | None = ... + """The ID of the distribution that you are enabling metrics for.""" + monitoring_subscription: MonitoringSubscription | None = ... + """ + A monitoring subscription. This structure contains information about + whether additional CloudWatch metrics are enabled for a given CloudFront + distribution. + """ + +@dataclass(kw_only=True) +class CreateMonitoringSubscriptionOutput(_SerdeShape): + """Dataclass for CreateMonitoringSubscriptionOutput structure.""" + + monitoring_subscription: MonitoringSubscription | None = ... + """ + A monitoring subscription. This structure contains information about + whether additional CloudWatch metrics are enabled for a given CloudFront + distribution. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateOriginAccessControlInput(_SerdeShape): + """Dataclass for CreateOriginAccessControlInput structure.""" + + origin_access_control_config: OriginAccessControlConfig | None = ... + """Contains the origin access control.""" + +@dataclass(kw_only=True) +class CreateOriginAccessControlOutput(_SerdeShape): + """Dataclass for CreateOriginAccessControlOutput structure.""" + + origin_access_control: OriginAccessControl | None = ... + """Contains an origin access control.""" + location: str | None = ... + """The URL of the origin access control.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the origin access + control. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateOriginRequestPolicyInput(_SerdeShape): + """Dataclass for CreateOriginRequestPolicyInput structure.""" + + origin_request_policy_config: OriginRequestPolicyConfig | None = ... + """An origin request policy configuration.""" + +@dataclass(kw_only=True) +class CreateOriginRequestPolicyOutput(_SerdeShape): + """Dataclass for CreateOriginRequestPolicyOutput structure.""" + + origin_request_policy: OriginRequestPolicy | None = ... + """An origin request policy.""" + location: str | None = ... + """The fully qualified URI of the origin request policy just created.""" + e_tag: str | None = ... + """The current version of the origin request policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatePublicKeyInput(_SerdeShape): + """Dataclass for CreatePublicKeyInput structure.""" + + public_key_config: PublicKeyConfig | None = ... + """A CloudFront public key configuration.""" + +@dataclass(kw_only=True) +class CreatePublicKeyOutput(_SerdeShape): + """Dataclass for CreatePublicKeyOutput structure.""" + + public_key: PublicKey | None = ... + """The public key.""" + location: str | None = ... + """The URL of the public key.""" + e_tag: str | None = ... + """The identifier for this version of the public key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRealtimeLogConfigInput(_SerdeShape): + """Dataclass for CreateRealtimeLogConfigInput structure.""" + + end_points: list[EndPoint] | None = ... + """ + Contains information about the Amazon Kinesis data stream where you are + sending real-time log data. + """ + fields: list[str] | None = ... + """ + A list of fields to include in each real-time log record. + + For more information about fields, see [Real-time log configuration + fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) + in the *Amazon CloudFront Developer Guide*. + """ + name: str | None = ... + """A unique name to identify this real-time log configuration.""" + sampling_rate: int | None = ... + """ + The sampling rate for this real-time log configuration. You can specify + a whole number between 1 and 100 (inclusive) to determine the percentage + of viewer requests that are represented in the real-time log data. + """ + +@dataclass(kw_only=True) +class CreateRealtimeLogConfigOutput(_SerdeShape): + """Dataclass for CreateRealtimeLogConfigOutput structure.""" + + realtime_log_config: RealtimeLogConfig | None = ... + """A real-time log configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateResponseHeadersPolicyInput(_SerdeShape): + """Dataclass for CreateResponseHeadersPolicyInput structure.""" + + response_headers_policy_config: ResponseHeadersPolicyConfig | None = ... + """ + Contains metadata about the response headers policy, and a set of + configurations that specify the HTTP headers. + """ + +@dataclass(kw_only=True) +class CreateResponseHeadersPolicyOutput(_SerdeShape): + """Dataclass for CreateResponseHeadersPolicyOutput structure.""" + + response_headers_policy: ResponseHeadersPolicy | None = ... + """Contains a response headers policy.""" + location: str | None = ... + """The URL of the response headers policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the response headers + policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStreamingDistributionInput(_SerdeShape): + """The request to create a new streaming distribution.""" + + streaming_distribution_config: StreamingDistributionConfig | None = ... + """The streaming distribution's configuration information.""" + +@dataclass(kw_only=True) +class CreateStreamingDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution: StreamingDistribution | None = ... + """The streaming distribution's information.""" + location: str | None = ... + """ + The fully qualified URI of the new streaming distribution resource just + created. + """ + e_tag: str | None = ... + """The current version of the streaming distribution created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStreamingDistributionWithTagsInput(_SerdeShape): + """The request to create a new streaming distribution with tags.""" + + streaming_distribution_config_with_tags: ( + StreamingDistributionConfigWithTags | None + ) = ... + """The streaming distribution's configuration information.""" + +@dataclass(kw_only=True) +class CreateStreamingDistributionWithTagsOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution: StreamingDistribution | None = ... + """The streaming distribution's information.""" + location: str | None = ... + """ + The fully qualified URI of the new streaming distribution resource just + created. + """ + e_tag: str | None = ... + """The current version of the distribution created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTrustStoreInput(_SerdeShape): + """Dataclass for CreateTrustStoreInput structure.""" + + name: str | None = ... + """A name for the trust store.""" + ca_certificates_bundle_source: CaCertificatesBundleSource | None = ... + """The CA certificates bundle source for the trust store.""" + use_client_certificate_ocsp_endpoint: bool | None = ... + """ + A Boolean that determines whether to use the CA certificate's OCSP + endpoint to check certificate revocation status. + """ + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class CreateTrustStoreOutput(_SerdeShape): + """Dataclass for CreateTrustStoreOutput structure.""" + + trust_store: TrustStore | None = ... + """The trust store.""" + e_tag: str | None = ... + """The version identifier for the current version of the trust store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcOriginInput(_SerdeShape): + """Dataclass for CreateVpcOriginInput structure.""" + + vpc_origin_endpoint_config: VpcOriginEndpointConfig | None = ... + """The VPC origin endpoint configuration.""" + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class CreateVpcOriginOutput(_SerdeShape): + """Dataclass for CreateVpcOriginOutput structure.""" + + vpc_origin: VpcOrigin | None = ... + """The VPC origin.""" + location: str | None = ... + """The VPC origin location.""" + e_tag: str | None = ... + """The VPC origin ETag.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomErrorResponse(_SerdeShape): + """ + A complex type that controls: + + - Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range + with custom error messages before returning the response to the + viewer. + + - How long CloudFront caches HTTP status codes in the 4xx and 5xx range. + + For more information about custom error pages, see [Customizing Error + Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) + in the *Amazon CloudFront Developer Guide*. + """ + + error_code: int + """ + The HTTP status code for which you want to specify a custom error page + and/or a caching duration. + """ + response_page_path: str | None = ... + """ + The path to the custom error page that you want CloudFront to return to + a viewer when your origin returns the HTTP status code specified by + `ErrorCode`, for example, `/4xx-errors/403-forbidden.html`. If you want + to store your objects and your custom error pages in different + locations, your distribution must include a cache behavior for which the + following is true: + + - The value of `PathPattern` matches the path to your custom error + messages. For example, suppose you saved custom error pages for 4xx + errors in an Amazon S3 bucket in a directory named `/4xx-errors`. Your + distribution must include a cache behavior for which the path pattern + routes requests for your custom error pages to that location, for + example, `/4xx-errors/*`. + + - The value of `TargetOriginId` specifies the value of the `ID` element + for the origin that contains your custom error pages. + + If you specify a value for `ResponsePagePath`, you must also specify a + value for `ResponseCode`. + + We recommend that you store custom error pages in an Amazon S3 bucket. + If you store custom error pages on an HTTP server and the server starts + to return 5xx errors, CloudFront can't get the files that you want to + return to viewers because the origin server is unavailable. + """ + response_code: str | None = ... + """ + The HTTP status code that you want CloudFront to return to the viewer + along with the custom error page. There are a variety of reasons that + you might want CloudFront to return a status code different from the + status code that your origin returned to CloudFront, for example: + + - Some Internet devices (some firewalls and corporate proxies, for + example) intercept HTTP 4xx and 5xx and prevent the response from + being returned to the viewer. If you substitute `200`, the response + typically won't be intercepted. + + - If you don't care about distinguishing among different client errors + or server errors, you can specify `400` or `500` as the `ResponseCode` + for all 4xx or 5xx errors. + + - You might want to return a `200` status code (OK) and static website + so your customers don't know that your website is down. + + If you specify a value for `ResponseCode`, you must also specify a value + for `ResponsePagePath`. + """ + error_caching_min_ttl: int | None = ... + """ + The minimum amount of time, in seconds, that you want CloudFront to + cache the HTTP status code specified in `ErrorCode`. When this time + period has elapsed, CloudFront queries your origin to see whether the + problem that caused the error has been resolved and the requested object + is now available. + + For more information, see [Customizing Error + Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class CustomErrorResponses(_SerdeShape): + """ + A complex type that controls: + + - Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range + with custom error messages before returning the response to the + viewer. + + - How long CloudFront caches HTTP status codes in the 4xx and 5xx range. + + For more information about custom error pages, see [Customizing Error + Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) + in the *Amazon CloudFront Developer Guide*. + """ + + quantity: int + """ + The number of HTTP status codes for which you want to specify a custom + error page and/or a caching duration. If `Quantity` is `0`, you can omit + `Items`. + """ + items: list[CustomErrorResponse] | None = ... + """ + A complex type that contains a `CustomErrorResponse` element for each + HTTP status code for which you want to specify a custom error page + and/or a caching duration. + """ + +@dataclass(kw_only=True) +class CustomHeaders(_SerdeShape): + """A complex type that contains the list of Custom Headers for each origin.""" + + quantity: int + """The number of custom headers, if any, for this distribution.""" + items: list[OriginCustomHeader] | None = ... + """ + **Optional**: A list that contains one `OriginCustomHeader` element for + each custom header that you want CloudFront to forward to the origin. If + Quantity is `0`, omit `Items`. + """ + +class CustomizationActionType(UnknownEnumMixin, StrEnum): + OVERRIDE = "override" + DISABLE = "disable" + +@dataclass(kw_only=True) +class Customizations(_SerdeShape): + """ + Customizations for the distribution tenant. For each distribution + tenant, you can specify the geographic restrictions, and the Amazon + Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are + specific values that you can override or disable from the multi-tenant + distribution that was used to create the distribution tenant. + """ + + web_acl: WebAclCustomization | None = ... + """The WAF web ACL.""" + certificate: Certificate | None = ... + """The Certificate Manager (ACM) certificate.""" + geo_restrictions: GeoRestrictionCustomization | None = ... + """The geographic restrictions.""" + +@dataclass(kw_only=True) +class CustomOriginConfig(_SerdeShape): + """ + A custom origin. A custom origin is any origin that is *not* an Amazon + S3 bucket, with one exception. An Amazon S3 bucket that is [configured + with static website + hosting](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) + *is* a custom origin. + """ + + http_port: int + """ + The HTTP port that CloudFront uses to connect to the origin. Specify the + HTTP port that the origin listens on. + """ + https_port: int + """ + The HTTPS port that CloudFront uses to connect to the origin. Specify + the HTTPS port that the origin listens on. + """ + origin_protocol_policy: str + """ + Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect + to the origin. Valid values are: + + - `http-only` -- CloudFront always uses HTTP to connect to the origin. + + - `match-viewer` -- CloudFront connects to the origin using the same + protocol that the viewer used to connect to CloudFront. + + - `https-only` -- CloudFront always uses HTTPS to connect to the origin. + """ + origin_ssl_protocols: OriginSslProtocols | None = ... + """ + Specifies the minimum SSL/TLS protocol that CloudFront uses when + connecting to your origin over HTTPS. Valid values include `SSLv3`, + `TLSv1`, `TLSv1.1`, and `TLSv1.2`. + + For more information, see [Minimum Origin SSL + Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginSSLProtocols) + in the *Amazon CloudFront Developer Guide*. + """ + origin_read_timeout: int | None = ... + """ + Specifies how long, in seconds, CloudFront waits for a response from the + origin. This is also known as the *origin response timeout*. The minimum + timeout is 1 second, the maximum is 120 seconds, and the default (if you + don't specify otherwise) is 30 seconds. + + For more information, see [Response + timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) + in the *Amazon CloudFront Developer Guide*. + """ + origin_keepalive_timeout: int | None = ... + """ + Specifies how long, in seconds, CloudFront persists its connection to + the origin. The minimum timeout is 1 second, the maximum is 120 seconds, + and the default (if you don't specify otherwise) is 5 seconds. + + For more information, see [Keep-alive timeout (custom origins + only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginKeepaliveTimeout) + in the *Amazon CloudFront Developer Guide*. + """ + ip_address_type: str | None = ... + """ + Specifies which IP protocol CloudFront uses when connecting to your + origin. If your origin uses both IPv4 and IPv6 protocols, you can choose + `dualstack` to help optimize reliability. + """ + origin_mtls_config: OriginMtlsConfig | None = ... + """ + Configures mutual TLS authentication between CloudFront and your origin + server. + """ + +@dataclass(kw_only=True) +class DefaultCacheBehavior(_SerdeShape): + """ + A complex type that describes the default cache behavior if you don't + specify a `CacheBehavior` element or if request URLs don't match any of + the values of `PathPattern` in `CacheBehavior` elements. You must create + exactly one default cache behavior. + + Warning: + If your minimum TTL is greater than 0, CloudFront will cache content for + at least the duration specified in the cache policy's minimum TTL, even + if the `Cache-Control: no-cache`, `no-store`, or `private` directives + are present in the origin headers. + """ + + target_origin_id: str + """ + The value of `ID` for the origin that you want CloudFront to route + requests to when they use the default cache behavior. + """ + trusted_signers: TrustedSigners | None = ... + """ + Warning: + We recommend using `TrustedKeyGroups` instead of `TrustedSigners`. + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A list of Amazon Web Services account IDs whose public keys CloudFront + can use to validate signed URLs or signed cookies. + + When a cache behavior contains trusted signers, CloudFront requires + signed URLs or signed cookies for all requests that match the cache + behavior. The URLs or cookies must be signed with the private key of a + CloudFront key pair in a trusted signer's Amazon Web Services account. + The signed URL or cookie contains information about which public key + CloudFront should use to verify the signature. For more information, see + [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + trusted_key_groups: TrustedKeyGroups | None = ... + """ + A list of key groups that CloudFront can use to validate signed URLs or + signed cookies. + + When a cache behavior contains trusted key groups, CloudFront requires + signed URLs or signed cookies for all requests that match the cache + behavior. The URLs or cookies must be signed with a private key whose + corresponding public key is in the key group. The signed URL or cookie + contains information about which public key CloudFront should use to + verify the signature. For more information, see [Serving private + content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + viewer_protocol_policy: str + """ + The protocol that viewers can use to access the files in the origin + specified by `TargetOriginId` when a request matches the path pattern in + `PathPattern`. You can specify the following options: + + - `allow-all`: Viewers can use HTTP or HTTPS. + + - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront + returns an HTTP status code of 301 (Moved Permanently) to the viewer + along with the HTTPS URL. The viewer then resubmits the request using + the new URL. + + - `https-only`: If a viewer sends an HTTP request, CloudFront returns an + HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring + HTTPS Between Viewers and + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) + in the *Amazon CloudFront Developer Guide*. + + Note: + The only way to guarantee that viewers retrieve an object that was + fetched from the origin using HTTPS is never to use any other protocol + to fetch the object. If you have recently changed from HTTP to HTTPS, we + recommend that you clear your objects' cache because cached objects are + protocol agnostic. That means that an edge location will return an + object from the cache regardless of whether the current request protocol + matches the protocol used previously. For more information, see + [Managing Cache + Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + allowed_methods: AllowedMethods | None = ... + """ + A complex type that controls which HTTP methods CloudFront processes and + forwards to your Amazon S3 bucket or your custom origin. There are three + choices: + + - CloudFront forwards only `GET` and `HEAD` requests. + + - CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests. + + - CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and + `DELETE` requests. + + If you pick the third choice, you may need to restrict access to your + Amazon S3 bucket or to your custom origin so users can't perform + operations that you don't want them to. For example, you might not want + users to have permissions to delete objects from your origin. + """ + smooth_streaming: bool | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + Indicates whether you want to distribute media files in the Microsoft + Smooth Streaming format using the origin that is associated with this + cache behavior. If so, specify `true`; if not, specify `false`. If you + specify `true` for `SmoothStreaming`, you can still distribute other + content using this cache behavior if the content matches the value of + `PathPattern`. + """ + compress: bool | None = ... + """ + Whether you want CloudFront to automatically compress certain files for + this cache behavior. If so, specify `true`; if not, specify `false`. For + more information, see [Serving Compressed + Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) + in the *Amazon CloudFront Developer Guide*. + """ + lambda_function_associations: LambdaFunctionAssociations | None = ... + """ + A complex type that contains zero or more Lambda@Edge function + associations for a cache behavior. + """ + function_associations: FunctionAssociations | None = ... + """ + A list of CloudFront functions that are associated with this cache + behavior. Your functions must be published to the `LIVE` stage to + associate them with a cache behavior. + """ + field_level_encryption_id: str | None = ... + """ + The value of `ID` for the field-level encryption configuration that you + want CloudFront to use for encrypting specific fields of data for the + default cache behavior. + """ + realtime_log_config_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the real-time log configuration that + is attached to this cache behavior. For more information, see [Real-time + logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) + in the *Amazon CloudFront Developer Guide*. + """ + cache_policy_id: str | None = ... + """ + The unique identifier of the cache policy that is attached to the + default cache behavior. For more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + A `DefaultCacheBehavior` must include either a `CachePolicyId` or + `ForwardedValues`. We recommend that you use a `CachePolicyId`. + """ + origin_request_policy_id: str | None = ... + """ + The unique identifier of the origin request policy that is attached to + the default cache behavior. For more information, see [Creating origin + request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + or [Using the managed origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) + in the *Amazon CloudFront Developer Guide*. + """ + response_headers_policy_id: str | None = ... + """The identifier for a response headers policy.""" + grpc_config: GrpcConfig | None = ... + """The gRPC configuration for your cache behavior.""" + forwarded_values: ForwardedValues | None = ... + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. For more information, see + [Working with + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) + in the *Amazon CloudFront Developer Guide*. + + If you want to include values in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + If you want to send values to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + or [Using the managed origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) + in the *Amazon CloudFront Developer Guide*. + + A `DefaultCacheBehavior` must include either a `CachePolicyId` or + `ForwardedValues`. We recommend that you use a `CachePolicyId`. + + A complex type that specifies how CloudFront handles query strings, + cookies, and HTTP headers. + """ + min_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `MinTTL` field + in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The minimum amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. For more information, see + [Managing How Long Content Stays in an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + + You must specify `0` for `MinTTL` if you configure CloudFront to forward + all headers to your origin (under `Headers`, if you specify `1` for + `Quantity` and `*` for `Name`). + """ + default_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `DefaultTTL` + field in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The default amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. The value that you + specify applies only when your origin does not add HTTP headers such as + `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to + objects. For more information, see [Managing How Long Content Stays in + an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + max_ttl: int | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use the `MaxTTL` field + in a cache policy instead of this field. For more information, see + [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + or [Using the managed cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) + in the *Amazon CloudFront Developer Guide*. + + The maximum amount of time that you want objects to stay in CloudFront + caches before CloudFront forwards another request to your origin to + determine whether the object has been updated. The value that you + specify applies only when your origin adds HTTP headers such as + `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to + objects. For more information, see [Managing How Long Content Stays in + an Edge Cache + (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class DeleteAnycastIpListInput(_SerdeShape): + """Dataclass for DeleteAnycastIpListInput structure.""" + + id: str | None = ... + """The ID of the Anycast static IP list.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the Anycast static IP list that + you are deleting. + """ + +@dataclass(kw_only=True) +class DeleteAnycastIpListOutput(_SerdeShape): + """Dataclass for DeleteAnycastIpListOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCachePolicyInput(_SerdeShape): + """Dataclass for DeleteCachePolicyInput structure.""" + + id: str | None = ... + """ + The unique identifier for the cache policy that you are deleting. To get + the identifier, you can use `ListCachePolicies`. + """ + if_match: str | None = ... + """ + The version of the cache policy that you are deleting. The version is + the cache policy's `ETag` value, which you can get using + `ListCachePolicies`, `GetCachePolicy`, or `GetCachePolicyConfig`. + """ + +@dataclass(kw_only=True) +class DeleteCachePolicyOutput(_SerdeShape): + """Dataclass for DeleteCachePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCloudFrontOriginAccessIdentityInput(_SerdeShape): + """Deletes a origin access identity.""" + + id: str | None = ... + """The origin access identity's ID.""" + if_match: str | None = ... + """ + The value of the `ETag` header you received from a previous `GET` or + `PUT` request. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeleteCloudFrontOriginAccessIdentityOutput(_SerdeShape): + """Dataclass for DeleteCloudFrontOriginAccessIdentityOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteConnectionFunctionInput(_SerdeShape): + """Dataclass for DeleteConnectionFunctionInput structure.""" + + id: str | None = ... + """The connection function's ID.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the connection function you are + deleting. + """ + +@dataclass(kw_only=True) +class DeleteConnectionFunctionOutput(_SerdeShape): + """Dataclass for DeleteConnectionFunctionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteConnectionGroupInput(_SerdeShape): + """Dataclass for DeleteConnectionGroupInput structure.""" + + id: str | None = ... + """The ID of the connection group to delete.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + connection group to delete. + """ + +@dataclass(kw_only=True) +class DeleteConnectionGroupOutput(_SerdeShape): + """Dataclass for DeleteConnectionGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteContinuousDeploymentPolicyInput(_SerdeShape): + """Dataclass for DeleteContinuousDeploymentPolicyInput structure.""" + + id: str | None = ... + """ + The identifier of the continuous deployment policy that you are + deleting. + """ + if_match: str | None = ... + """ + The current version (`ETag` value) of the continuous deployment policy + that you are deleting. + """ + +@dataclass(kw_only=True) +class DeleteContinuousDeploymentPolicyOutput(_SerdeShape): + """Dataclass for DeleteContinuousDeploymentPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDistributionInput(_SerdeShape): + """ + This action deletes a web distribution. To delete a web distribution + using the CloudFront API, perform the following steps. + + **To delete a web distribution using the CloudFront API:** + + 1. Disable the web distribution + + 2. Submit a `GET Distribution Config` request to get the current + configuration and the `Etag` header for the distribution. + + 3. Update the XML document that was returned in the response to your + `GET Distribution Config` request to change the value of `Enabled` + to `false`. + + 4. Submit a `PUT Distribution Config` request to update the + configuration for your distribution. In the request body, include + the XML document that you updated in Step 3. Set the value of the + HTTP `If-Match` header to the value of the `ETag` header that + CloudFront returned when you submitted the `GET Distribution Config` + request in Step 2. + + 5. Review the response to the `PUT Distribution Config` request to + confirm that the distribution was successfully disabled. + + 6. Submit a `GET Distribution` request to confirm that your changes + have propagated. When propagation is complete, the value of `Status` + is `Deployed`. + + 7. Submit a `DELETE Distribution` request. Set the value of the HTTP + `If-Match` header to the value of the `ETag` header that CloudFront + returned when you submitted the `GET Distribution Config` request in + Step 6. + + 8. Review the response to your `DELETE Distribution` request to confirm + that the distribution was successfully deleted. + + For information about deleting a distribution using the CloudFront + console, see [Deleting a + Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html) + in the *Amazon CloudFront Developer Guide*. + """ + + id: str | None = ... + """The distribution ID.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when you disabled the + distribution. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeleteDistributionOutput(_SerdeShape): + """Dataclass for DeleteDistributionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDistributionTenantInput(_SerdeShape): + """Dataclass for DeleteDistributionTenantInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant to delete.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + distribution tenant. This value is returned in the response of the + `GetDistributionTenant` API operation. + """ + +@dataclass(kw_only=True) +class DeleteDistributionTenantOutput(_SerdeShape): + """Dataclass for DeleteDistributionTenantOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFieldLevelEncryptionConfigInput(_SerdeShape): + """Dataclass for DeleteFieldLevelEncryptionConfigInput structure.""" + + id: str | None = ... + """The ID of the configuration you want to delete from CloudFront.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + configuration identity to delete. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeleteFieldLevelEncryptionConfigOutput(_SerdeShape): + """Dataclass for DeleteFieldLevelEncryptionConfigOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFieldLevelEncryptionProfileInput(_SerdeShape): + """Dataclass for DeleteFieldLevelEncryptionProfileInput structure.""" + + id: str | None = ... + """Request the ID of the profile you want to delete from CloudFront.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + profile to delete. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeleteFieldLevelEncryptionProfileOutput(_SerdeShape): + """Dataclass for DeleteFieldLevelEncryptionProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFunctionInput(_SerdeShape): + """Dataclass for DeleteFunctionInput structure.""" + + name: str | None = ... + """The name of the function that you are deleting.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the function that you are + deleting, which you can get using `DescribeFunction`. + """ + +@dataclass(kw_only=True) +class DeleteFunctionOutput(_SerdeShape): + """Dataclass for DeleteFunctionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteKeyGroupInput(_SerdeShape): + """Dataclass for DeleteKeyGroupInput structure.""" + + id: str | None = ... + """ + The identifier of the key group that you are deleting. To get the + identifier, use `ListKeyGroups`. + """ + if_match: str | None = ... + """ + The version of the key group that you are deleting. The version is the + key group's `ETag` value. To get the `ETag`, use `GetKeyGroup` or + `GetKeyGroupConfig`. + """ + +@dataclass(kw_only=True) +class DeleteKeyGroupOutput(_SerdeShape): + """Dataclass for DeleteKeyGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteKeyValueStoreInput(_SerdeShape): + """Dataclass for DeleteKeyValueStoreInput structure.""" + + name: str | None = ... + """The name of the key value store.""" + if_match: str | None = ... + """The key value store to delete, if a match occurs.""" + +@dataclass(kw_only=True) +class DeleteKeyValueStoreOutput(_SerdeShape): + """Dataclass for DeleteKeyValueStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteMonitoringSubscriptionInput(_SerdeShape): + """Dataclass for DeleteMonitoringSubscriptionInput structure.""" + + distribution_id: str | None = ... + """The ID of the distribution that you are disabling metrics for.""" + +@dataclass(kw_only=True) +class DeleteMonitoringSubscriptionOutput(_SerdeShape): + """Dataclass for DeleteMonitoringSubscriptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteOriginAccessControlInput(_SerdeShape): + """Dataclass for DeleteOriginAccessControlInput structure.""" + + id: str | None = ... + """ + The unique identifier of the origin access control that you are + deleting. + """ + if_match: str | None = ... + """ + The current version (`ETag` value) of the origin access control that you + are deleting. + """ + +@dataclass(kw_only=True) +class DeleteOriginAccessControlOutput(_SerdeShape): + """Dataclass for DeleteOriginAccessControlOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteOriginRequestPolicyInput(_SerdeShape): + """Dataclass for DeleteOriginRequestPolicyInput structure.""" + + id: str | None = ... + """ + The unique identifier for the origin request policy that you are + deleting. To get the identifier, you can use + `ListOriginRequestPolicies`. + """ + if_match: str | None = ... + """ + The version of the origin request policy that you are deleting. The + version is the origin request policy's `ETag` value, which you can get + using `ListOriginRequestPolicies`, `GetOriginRequestPolicy`, or + `GetOriginRequestPolicyConfig`. + """ + +@dataclass(kw_only=True) +class DeleteOriginRequestPolicyOutput(_SerdeShape): + """Dataclass for DeleteOriginRequestPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePublicKeyInput(_SerdeShape): + """Dataclass for DeletePublicKeyInput structure.""" + + id: str | None = ... + """The ID of the public key you want to remove from CloudFront.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + public key identity to delete. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeletePublicKeyOutput(_SerdeShape): + """Dataclass for DeletePublicKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRealtimeLogConfigInput(_SerdeShape): + """Dataclass for DeleteRealtimeLogConfigInput structure.""" + + name: str | None = ... + """The name of the real-time log configuration to delete.""" + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the real-time log configuration to + delete. + """ + +@dataclass(kw_only=True) +class DeleteRealtimeLogConfigOutput(_SerdeShape): + """Dataclass for DeleteRealtimeLogConfigOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteResourcePolicyInput(_SerdeShape): + """Dataclass for DeleteResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudFront resource for which the + resource policy should be deleted. + """ + +@dataclass(kw_only=True) +class DeleteResourcePolicyOutput(_SerdeShape): + """Dataclass for DeleteResourcePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteResponseHeadersPolicyInput(_SerdeShape): + """Dataclass for DeleteResponseHeadersPolicyInput structure.""" + + id: str | None = ... + """ + The identifier for the response headers policy that you are deleting. + + To get the identifier, you can use `ListResponseHeadersPolicies`. + """ + if_match: str | None = ... + """ + The version of the response headers policy that you are deleting. + + The version is the response headers policy's `ETag` value, which you + can get using `ListResponseHeadersPolicies`, `GetResponseHeadersPolicy`, + or `GetResponseHeadersPolicyConfig`. + """ + +@dataclass(kw_only=True) +class DeleteResponseHeadersPolicyOutput(_SerdeShape): + """Dataclass for DeleteResponseHeadersPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteStreamingDistributionInput(_SerdeShape): + """The request to delete a streaming distribution.""" + + id: str | None = ... + """The distribution ID.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when you disabled the + streaming distribution. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class DeleteStreamingDistributionOutput(_SerdeShape): + """Dataclass for DeleteStreamingDistributionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTrustStoreInput(_SerdeShape): + """Dataclass for DeleteTrustStoreInput structure.""" + + id: str | None = ... + """The trust store's ID.""" + if_match: str | None = ... + """The current version (`ETag` value) of the trust store you are deleting.""" + +@dataclass(kw_only=True) +class DeleteTrustStoreOutput(_SerdeShape): + """Dataclass for DeleteTrustStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcOriginInput(_SerdeShape): + """Dataclass for DeleteVpcOriginInput structure.""" + + id: str | None = ... + """The VPC origin ID.""" + if_match: str | None = ... + """ + The version identifier of the VPC origin to delete. This is the `ETag` + value returned in the response to GetVpcOrigin. + """ + +@dataclass(kw_only=True) +class DeleteVpcOriginOutput(_SerdeShape): + """Dataclass for DeleteVpcOriginOutput structure.""" + + vpc_origin: VpcOrigin | None = ... + """The VPC origin.""" + e_tag: str | None = ... + """The VPC origin ETag.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeConnectionFunctionInput(_SerdeShape): + """Dataclass for DescribeConnectionFunctionInput structure.""" + + identifier: str | None = ... + """The connection function's identifier.""" + stage: str | None = ... + """The connection function's stage.""" + +@dataclass(kw_only=True) +class DescribeConnectionFunctionOutput(_SerdeShape): + """Dataclass for DescribeConnectionFunctionOutput structure.""" + + connection_function_summary: ConnectionFunctionSummary | None = ... + """The connection function's summary.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the connection + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFunctionInput(_SerdeShape): + """Dataclass for DescribeFunctionInput structure.""" + + name: str | None = ... + """The name of the function that you are getting information about.""" + stage: str | None = ... + """The function's stage, either `DEVELOPMENT` or `LIVE`.""" + +@dataclass(kw_only=True) +class DescribeFunctionOutput(_SerdeShape): + """Dataclass for DescribeFunctionOutput structure.""" + + function_summary: FunctionSummary | None = ... + """ + Contains configuration information and metadata about a CloudFront + function. + """ + e_tag: str | None = ... + """ + The version identifier for the current version of the CloudFront + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeKeyValueStoreInput(_SerdeShape): + """Dataclass for DescribeKeyValueStoreInput structure.""" + + name: str | None = ... + """The name of the key value store.""" + +@dataclass(kw_only=True) +class DescribeKeyValueStoreOutput(_SerdeShape): + """Dataclass for DescribeKeyValueStoreOutput structure.""" + + key_value_store: KeyValueStore | None = ... + """The resulting key value store.""" + e_tag: str | None = ... + """The `ETag` of the resulting key value store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateDistributionTenantWebACLInput(_SerdeShape): + """Dataclass for DisassociateDistributionTenantWebACLInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + if_match: str | None = ... + """ + The current version of the distribution tenant that you're + disassociating from the WAF web ACL. This is the `ETag` value returned + in the response to the `GetDistributionTenant` API operation. + """ + +@dataclass(kw_only=True) +class DisassociateDistributionTenantWebACLOutput(_SerdeShape): + """Dataclass for DisassociateDistributionTenantWebACLOutput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateDistributionWebACLInput(_SerdeShape): + """Dataclass for DisassociateDistributionWebACLInput structure.""" + + id: str | None = ... + """The ID of the distribution.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + distribution that you're disassociating from the WAF web ACL. + """ + +@dataclass(kw_only=True) +class DisassociateDistributionWebACLOutput(_SerdeShape): + """Dataclass for DisassociateDistributionWebACLOutput structure.""" + + id: str | None = ... + """The ID of the distribution.""" + e_tag: str | None = ... + """The current version of the distribution.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Distribution(_SerdeShape): + """ + A distribution tells CloudFront where you want content to be delivered + from, and the details about how to track and manage content delivery. + """ + + id: str + """The distribution's identifier. For example: `E1U5RQF7T870K0`.""" + arn: str + """The distribution's Amazon Resource Name (ARN).""" + status: str + """ + The distribution's status. When the status is `Deployed`, the + distribution's information is fully propagated to all CloudFront edge + locations. + """ + last_modified_time: datetime + """The date and time when the distribution was last modified.""" + in_progress_invalidation_batches: int + """The number of invalidation batches currently in progress.""" + domain_name: str + """ + The distribution's CloudFront domain name. For example: + `d111111abcdef8.cloudfront.net`. + """ + active_trusted_signers: ActiveTrustedSigners | None = ... + """ + Warning: + We recommend using `TrustedKeyGroups` instead of `TrustedSigners`. + + This field contains a list of Amazon Web Services account IDs and the + active CloudFront key pairs in each account that CloudFront can use to + verify the signatures of signed URLs or signed cookies. + """ + active_trusted_key_groups: ActiveTrustedKeyGroups | None = ... + """ + This field contains a list of key groups and the public keys in each key + group that CloudFront can use to verify the signatures of signed URLs or + signed cookies. + """ + distribution_config: DistributionConfig + """The distribution's configuration.""" + alias_icp_recordals: list[AliasICPRecordal] | None = ... + """ + Amazon Web Services services in China customers must file for an + Internet Content Provider (ICP) recordal if they want to serve content + publicly on an alternate domain name, also known as a CNAME, that + they've added to CloudFront. AliasICPRecordal provides the ICP recordal + status for CNAMEs associated with distributions. + + For more information about ICP recordals, see [Signup, Accounts, and + Credentials](https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html) + in *Getting Started with Amazon Web Services services in China*. + """ + +@dataclass(kw_only=True) +class DistributionAlreadyExists(ServiceError, _SerdeShape): + """ + The caller reference you attempted to create the distribution with is + associated with another distribution. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DistributionConfig(_SerdeShape): + """A distribution configuration.""" + + caller_reference: str + """ + A unique value (for example, a date-time stamp) that ensures that the + request can't be replayed. + + If the value of `CallerReference` is new (regardless of the content of + the `DistributionConfig` object), CloudFront creates a new distribution. + + If `CallerReference` is a value that you already sent in a previous + request to create a distribution, CloudFront returns a + `DistributionAlreadyExists` error. + """ + aliases: Aliases | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A complex type that contains information about CNAMEs (alternate domain + names), if any, for this distribution. + """ + default_root_object: str | None = ... + """ + When a viewer requests the root URL for your distribution, the default + root object is the object that you want CloudFront to request from your + origin. For example, if your root URL is `https://www.example.com`, you + can specify CloudFront to return the `index.html` file as the default + root object. You can specify a default root object so that viewers see a + specific file or object, instead of another object in your distribution + (for example, `https://www.example.com/product-description.html`). A + default root object avoids exposing the contents of your distribution. + + You can specify the object name or a path to the object name (for + example, `index.html` or `exampleFolderName/index.html`). Your string + can't begin with a forward slash (`/`). Only specify the object name or + the path to the object. + + If you don't want to specify a default root object when you create a + distribution, include an empty `DefaultRootObject` element. + + To delete the default root object from an existing distribution, update + the distribution configuration and include an empty `DefaultRootObject` + element. + + To replace the default root object, update the distribution + configuration and specify the new object. + + For more information about the default root object, see [Specify a + default root + object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) + in the *Amazon CloudFront Developer Guide*. + """ + origins: Origins + """ + A complex type that contains information about origins for this + distribution. + """ + origin_groups: OriginGroups | None = ... + """ + A complex type that contains information about origin groups for this + distribution. + """ + default_cache_behavior: DefaultCacheBehavior + """ + A complex type that describes the default cache behavior if you don't + specify a `CacheBehavior` element or if files don't match any of the + values of `PathPattern` in `CacheBehavior` elements. You must create + exactly one default cache behavior. + """ + cache_behaviors: CacheBehaviors | None = ... + """A complex type that contains zero or more `CacheBehavior` elements.""" + custom_error_responses: CustomErrorResponses | None = ... + """ + A complex type that controls the following: + + - Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range + with custom error messages before returning the response to the + viewer. + + - How long CloudFront caches HTTP status codes in the 4xx and 5xx range. + + For more information about custom error pages, see [Customizing Error + Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) + in the *Amazon CloudFront Developer Guide*. + """ + comment: str + """ + A comment to describe the distribution. The comment cannot be longer + than 128 characters. + """ + logging: LoggingConfig | None = ... + """ + A complex type that controls whether access logs are written for the + distribution. + + For more information about logging, see [Access + Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) + in the *Amazon CloudFront Developer Guide*. + """ + price_class: str | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + The price class that corresponds with the maximum price that you want to + pay for CloudFront service. If you specify `PriceClass_All`, CloudFront + responds to requests for your objects from all CloudFront edge + locations. + + If you specify a price class other than `PriceClass_All`, CloudFront + serves your objects from the CloudFront edge location that has the + lowest latency among the edge locations in your price class. Viewers who + are in or near regions that are excluded from your specified price class + may encounter slower performance. + + For more information about price classes, see [Choosing the Price Class + for a CloudFront + Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) + in the *Amazon CloudFront Developer Guide*. For information about + CloudFront pricing, including how price classes (such as Price Class + 100) map to CloudFront regions, see [Amazon CloudFront + Pricing](http://aws.amazon.com/cloudfront/pricing/). + """ + enabled: bool + """From this field, you can enable or disable the selected distribution.""" + viewer_certificate: ViewerCertificate | None = ... + """ + A complex type that determines the distribution's SSL/TLS configuration + for communicating with viewers. + """ + restrictions: Restrictions | None = ... + """ + A complex type that identifies ways in which you want to restrict + distribution of your content. + """ + web_acl_id: str | None = ... + """ + Note: + Multi-tenant distributions only support WAF V2 web ACLs. + + A unique identifier that specifies the WAF web ACL, if any, to associate + with this distribution. To specify a web ACL created using the latest + version of WAF, use the ACL ARN, for example + `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`. + To specify a web ACL created using WAF Classic, use the ACL ID, for + example `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`. + + WAF is a web application firewall that lets you monitor the HTTP and + HTTPS requests that are forwarded to CloudFront, and lets you control + access to your content. Based on conditions that you specify, such as + the IP addresses that requests originate from or the values of query + strings, CloudFront responds to requests either with the requested + content or with an HTTP 403 status code (Forbidden). You can also + configure CloudFront to return a custom error page when a request is + blocked. For more information about WAF, see the [WAF Developer + Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). + """ + http_version: str | None = ... + """ + (Optional) Specify the HTTP version(s) that you want viewers to use to + communicate with CloudFront. The default value for new web distributions + is `http2`. Viewers that don't support HTTP/2 automatically use an + earlier HTTP version. + + For viewers and CloudFront to use HTTP/2, viewers must support TLSv1.2 + or later, and must support Server Name Indication (SNI). + + For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 + and Server Name Indication (SNI). CloudFront supports HTTP/3 connection + migration to allow the viewer to switch networks without losing + connection. For more information about connection migration, see + [Connection + Migration](https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) + at RFC 9000. For more information about supported TLSv1.3 ciphers, see + [Supported protocols and ciphers between viewers and + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). + """ + is_ipv6_enabled: bool | None = ... + """ + Note: + To use this field for a multi-tenant distribution, use a connection + group instead. For more information, see + [ConnectionGroup](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ConnectionGroup.html). + + If you want CloudFront to respond to IPv6 DNS requests with an IPv6 + address for your distribution, specify `true`. If you specify `false`, + CloudFront responds to IPv6 DNS requests with the DNS response code + `NOERROR` and with no IP addresses. This allows viewers to submit a + second request, for an IPv4 address for your distribution. + + In general, you should enable IPv6 if you have users on IPv6 networks + who want to access your content. However, if you're using signed URLs + or signed cookies to restrict access to your content, and if you're + using a custom policy that includes the `IpAddress` parameter to + restrict the IP addresses that can access your content, don't enable + IPv6. If you want to restrict access to some content by IP address and + not restrict access to other content (or restrict access but not by IP + address), you can create two distributions. For more information, see + [Creating a Signed URL Using a Custom + Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) + in the *Amazon CloudFront Developer Guide*. + + If you're using an Route 53 Amazon Web Services Integration alias + resource record set to route traffic to your CloudFront distribution, + you need to create a second alias resource record set when both of the + following are true: + + - You enable IPv6 for the distribution + + - You're using alternate domain names in the URLs for your objects + + For more information, see [Routing Traffic to an Amazon CloudFront Web + Distribution by Using Your Domain + Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) + in the *Route 53 Amazon Web Services Integration Developer Guide*. + + If you created a CNAME resource record set, either with Route 53 Amazon + Web Services Integration or with another DNS service, you don't need to + make any changes. A CNAME record will route traffic to your distribution + regardless of the IP address format of the viewer request. + """ + continuous_deployment_policy_id: str | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + The identifier of a continuous deployment policy. For more information, + see `CreateContinuousDeploymentPolicy`. + """ + staging: bool | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A Boolean that indicates whether this is a staging distribution. When + this value is `true`, this is a staging distribution. When this value is + `false`, this is not a staging distribution. + """ + anycast_ip_list_id: str | None = ... + """ + Note: + To use this field for a multi-tenant distribution, use a connection + group instead. For more information, see + [ConnectionGroup](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ConnectionGroup.html). + + ID of the Anycast static IP list that is associated with the + distribution. + """ + tenant_config: TenantConfig | None = ... + """ + Note: + This field only supports multi-tenant distributions. You can't specify + this field for standard distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A distribution tenant configuration. + """ + connection_mode: str | None = ... + """ + This field specifies whether the connection mode is through a standard + distribution (direct) or a multi-tenant distribution with distribution + tenants (tenant-only). + """ + viewer_mtls_config: ViewerMtlsConfig | None = ... + """The distribution's viewer mTLS configuration.""" + connection_function_association: ConnectionFunctionAssociation | None = ... + """The distribution's connection function association.""" + cache_tag_config: CacheTagConfig | None = ... + """ + Configuration for cache tag extraction from origin responses. When + specified, CloudFront reads the header named in `HeaderName` from origin + responses and stores the comma-separated values as cache tags on the + object. + + Distributions without `CacheTagConfig` do not extract tags. When + `CacheTagConfig` is removed from a distribution via + `UpdateDistribution`, CloudFront stops extracting tags from origin + responses. + + Note: + Changing the `HeaderName` on an existing distribution does not + retroactively affect previously cached objects. Tag-based invalidations + will not apply to objects already cached using a previous header. To + ensure tag invalidations function after updating the header name, use + path-based invalidations to recache all objects that use cache tags. + """ + +@dataclass(kw_only=True) +class DistributionConfigWithTags(_SerdeShape): + """ + A distribution Configuration and a list of tags to be associated with + the distribution. + """ + + distribution_config: DistributionConfig + """A distribution configuration.""" + tags: Tags + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class DistributionIdList(_SerdeShape): + """A list of distribution IDs.""" + + marker: str + """The value provided in the `Marker` request field.""" + next_marker: str | None = ... + """ + Contains the value that you should use in the `Marker` field of a + subsequent request to continue listing distribution IDs where you left + off. + """ + max_items: int + """The maximum number of distribution IDs requested.""" + is_truncated: bool + """ + A flag that indicates whether more distribution IDs remain to be listed. + If your results were truncated, you can make a subsequent request using + the `Marker` request field to retrieve more distribution IDs in the + list. + """ + quantity: int + """The total number of distribution IDs returned in the response.""" + items: list[str] | None = ... + """Contains the distribution IDs in the list.""" + +@dataclass(kw_only=True) +class DistributionIdOwner(_SerdeShape): + """ + A structure that pairs a CloudFront distribution ID with its owning + Amazon Web Services account ID. + """ + + distribution_id: str + """The ID of the distribution.""" + owner_account_id: str + """The ID of the Amazon Web Services account that owns the distribution.""" + +@dataclass(kw_only=True) +class DistributionIdOwnerList(_SerdeShape): + """ + The list of distribution IDs and the Amazon Web Services accounts that + they belong to. + """ + + marker: str + """ + Use this field when paginating results to indicate where to begin in + your list of `DistributionIdOwner` objects. The response includes + distributions in the list that occur after the marker. To get the next + page of the list, set this field's value to the value of `NextMarker` + from the current page's response. + """ + next_marker: str | None = ... + """ + A token used for pagination of results returned in the response. You can + use the token from the previous request to define where the current + request should begin. + """ + max_items: int + """The maximum number of `DistributionIdOwner` objects to return.""" + is_truncated: bool + """ + A flag that indicates whether more `DistributionIdOwner` objects remain + to be listed. If your results were truncated, you can make a follow-up + pagination request using the `Marker` request parameter to retrieve more + results in the list. + """ + quantity: int + """ + Specifies the actual number of `DistributionIdOwner` objects included in + the list for the current page. + """ + items: list[DistributionIdOwner] | None = ... + """The number of `DistributionIdOwner` objects.""" + +@dataclass(kw_only=True) +class DistributionList(_SerdeShape): + """A distribution list.""" + + marker: str + """The value you provided for the `Marker` request parameter.""" + next_marker: str | None = ... + """ + If `IsTruncated` is `true`, this element is present and contains the + value you can use for the `Marker` request parameter to continue listing + your distributions where they left off. + """ + max_items: int + """The value you provided for the `MaxItems` request parameter.""" + is_truncated: bool + """ + A flag that indicates whether more distributions remain to be listed. If + your results were truncated, you can make a follow-up pagination request + using the `Marker` request parameter to retrieve more distributions in + the list. + """ + quantity: int + """ + The number of distributions that were created by the current Amazon Web + Services account. + """ + items: list[DistributionSummary] | None = ... + """ + A complex type that contains one `DistributionSummary` element for each + distribution that was created by the current Amazon Web Services + account. + """ + +@dataclass(kw_only=True) +class DistributionNotDisabled(ServiceError, _SerdeShape): + """ + The specified CloudFront distribution is not disabled. You must disable + the distribution before you can delete it. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DistributionResourceId(_SerdeShape): + """The IDs for the distribution resources.""" + + distribution_id: str | None = ... + """The ID of the multi-tenant distribution.""" + distribution_tenant_id: str | None = ... + """The ID of the distribution tenant.""" + +class DistributionResourceType(UnknownEnumMixin, StrEnum): + DISTRIBUTION = "distribution" + DISTRIBUTION_TENANT = "distribution-tenant" + +@dataclass(kw_only=True) +class DistributionSummary(_SerdeShape): + """A summary of the information about a CloudFront distribution.""" + + id: str + """The identifier for the distribution. For example: `EDFDVBD632BHDS5`.""" + arn: str + """ + The ARN (Amazon Resource Name) for the distribution. For example: + `arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5`, where + `123456789012` is your Amazon Web Services account ID. + """ + e_tag: str | None = ... + """The current version of the distribution.""" + status: str + """ + The current status of the distribution. When the status is `Deployed`, + the distribution's information is propagated to all CloudFront edge + locations. + """ + last_modified_time: datetime + """The date and time the distribution was last modified.""" + domain_name: str + """ + The domain name that corresponds to the distribution, for example, + `d111111abcdef8.cloudfront.net`. + """ + aliases: Aliases + """ + A complex type that contains information about CNAMEs (alternate domain + names), if any, for this distribution. + """ + origins: Origins + """ + A complex type that contains information about origins for this + distribution. + """ + origin_groups: OriginGroups | None = ... + """ + A complex type that contains information about origin groups for this + distribution. + """ + default_cache_behavior: DefaultCacheBehavior + """ + A complex type that describes the default cache behavior if you don't + specify a `CacheBehavior` element or if files don't match any of the + values of `PathPattern` in `CacheBehavior` elements. You must create + exactly one default cache behavior. + """ + cache_behaviors: CacheBehaviors + """A complex type that contains zero or more `CacheBehavior` elements.""" + custom_error_responses: CustomErrorResponses + """ + A complex type that contains zero or more `CustomErrorResponses` + elements. + """ + comment: str + """The comment originally specified when this distribution was created.""" + price_class: str + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + A complex type that contains information about price class for this + streaming distribution. + """ + enabled: bool + """Whether the distribution is enabled to accept user requests for content.""" + viewer_certificate: ViewerCertificate + """ + A complex type that determines the distribution's SSL/TLS configuration + for communicating with viewers. + """ + restrictions: Restrictions + """ + A complex type that identifies ways in which you want to restrict + distribution of your content. + """ + web_acl_id: str + """The Web ACL Id (if any) associated with the distribution.""" + http_version: str + """ + Specify the maximum HTTP version that you want viewers to use to + communicate with CloudFront. The default value for new web distributions + is `http2`. Viewers that don't support `HTTP/2` will automatically use + an earlier version. + """ + is_ipv6_enabled: bool + """ + Whether CloudFront responds to IPv6 DNS requests with an IPv6 address + for your distribution. + """ + alias_icp_recordals: list[AliasICPRecordal] | None = ... + """ + Amazon Web Services services in China customers must file for an + Internet Content Provider (ICP) recordal if they want to serve content + publicly on an alternate domain name, also known as a CNAME, that + they've added to CloudFront. AliasICPRecordal provides the ICP recordal + status for CNAMEs associated with distributions. + + For more information about ICP recordals, see [Signup, Accounts, and + Credentials](https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html) + in *Getting Started with Amazon Web Services services in China*. + """ + staging: bool + """ + A Boolean that indicates whether this is a staging distribution. When + this value is `true`, this is a staging distribution. When this value is + `false`, this is not a staging distribution. + """ + connection_mode: str | None = ... + """ + This field specifies whether the connection mode is through a standard + distribution (direct) or a multi-tenant distribution with distribution + tenants (tenant-only). + """ + anycast_ip_list_id: str | None = ... + """ + ID of the Anycast static IP list that is associated with the + distribution. + """ + viewer_mtls_config: ViewerMtlsConfig | None = ... + """The distribution's viewer mTLS configuration.""" + connection_function_association: ConnectionFunctionAssociation | None = ... + """The distribution's connection function association.""" + +@dataclass(kw_only=True) +class DistributionTenant(_SerdeShape): + """The distribution tenant.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + distribution_id: str | None = ... + """The ID of the multi-tenant distribution.""" + name: str | None = ... + """The name of the distribution tenant.""" + arn: str | None = ... + """The Amazon Resource Name (ARN) of the distribution tenant.""" + domains: list[DomainResult] | None = ... + """The domains associated with the distribution tenant.""" + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + customizations: Customizations | None = ... + """ + Customizations for the distribution tenant. For each distribution + tenant, you can specify the geographic restrictions, and the Amazon + Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are + specific values that you can override or disable from the multi-tenant + distribution that was used to create the distribution tenant. + """ + parameters: list[Parameter] | None = ... + """ + A list of parameter values to add to the resource. A parameter is + specified as a key-value pair. A valid parameter value must exist for + any parameter that is marked as required in the multi-tenant + distribution. + """ + connection_group_id: str | None = ... + """ + The ID of the connection group for the distribution tenant. If you + don't specify a connection group, CloudFront uses the default + connection group. + """ + created_time: datetime | None = ... + """The date and time when the distribution tenant was created.""" + last_modified_time: datetime | None = ... + """The date and time when the distribution tenant was updated.""" + enabled: bool | None = ... + """ + Indicates whether the distribution tenant is in an enabled state. If + disabled, the distribution tenant won't serve traffic. + """ + status: str | None = ... + """The status of the distribution tenant.""" + +@dataclass(kw_only=True) +class DistributionTenantAssociationFilter(_SerdeShape): + """Filter by the associated distribution ID or connection group ID.""" + + distribution_id: str | None = ... + """ + The distribution ID to filter by. You can find distribution tenants + associated with a specific distribution. + """ + connection_group_id: str | None = ... + """ + The ID of the connection group to filter by. You can find distribution + tenants associated with a specific connection group. + """ + +@dataclass(kw_only=True) +class DistributionTenantSummary(_SerdeShape): + """A summary of the information about a distribution tenant.""" + + id: str + """The ID of the distribution tenant.""" + distribution_id: str + """ + The identifier for the multi-tenant distribution. For example: + `EDFDVBD632BHDS5`. + """ + name: str + """The name of the distribution tenant.""" + arn: str + """The Amazon Resource Name (ARN) of the distribution tenant.""" + domains: list[DomainResult] + """The domains associated with the distribution tenant.""" + connection_group_id: str | None = ... + """ + The ID of the connection group ID for the distribution tenant. If you + don't specify a connection group, CloudFront uses the default + connection group. + """ + customizations: Customizations | None = ... + """ + Customizations for the distribution tenant. For each distribution + tenant, you can specify the geographic restrictions, and the Amazon + Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are + specific values that you can override or disable from the multi-tenant + distribution that was used to create the distribution tenant. + """ + created_time: datetime + """The date and time when the distribution tenant was created.""" + last_modified_time: datetime + """The date and time when the distribution tenant was updated.""" + e_tag: str + """The current version of the distribution tenant.""" + enabled: bool | None = ... + """ + Indicates whether the distribution tenants are in an enabled state. If + disabled, the distribution tenant won't service traffic. + """ + status: str | None = ... + """The status of the distribution tenant.""" + +@dataclass(kw_only=True) +class DnsConfiguration(_SerdeShape): + """The DNS configuration for your domain names.""" + + domain: str + """The domain name that you're verifying.""" + status: str + """ + The status of your domain name. + + - `valid-configuration`: The domain name is correctly configured and + points to the correct routing endpoint of the connection group. + + - `invalid-configuration`: There is either a missing DNS record or the + DNS record exists but it's using an incorrect routing endpoint. + Update the DNS record to point to the correct routing endpoint. + + - `unknown-configuration`: CloudFront can't validate your DNS + configuration. This status can appear if CloudFront can't verify the + DNS record, or the DNS lookup request failed or timed out. + """ + reason: str | None = ... + """Explains the status of the DNS configuration.""" + +class DnsConfigurationStatus(UnknownEnumMixin, StrEnum): + VALID = "valid-configuration" + INVALID = "invalid-configuration" + UNKNOWN = "unknown-configuration" + +@dataclass(kw_only=True) +class DomainConflict(_SerdeShape): + """ + Contains information about the domain conflict. Use this information to + determine the affected domain, the related resource, and the affected + Amazon Web Services account. + """ + + domain: str + """The domain used to find existing conflicts for domain configurations.""" + resource_type: str + """The CloudFront resource type that has a domain conflict.""" + resource_id: str + """The ID of the resource that has a domain conflict.""" + account_id: str + """The ID of the Amazon Web Services account for the domain conflict.""" + +@dataclass(kw_only=True) +class DomainItem(_SerdeShape): + """The domain for the specified distribution tenant.""" + + domain: str + """The domain name.""" + +@dataclass(kw_only=True) +class DomainResult(_SerdeShape): + """The details about the domain result.""" + + domain: str + """The specified domain.""" + status: str | None = ... + """Whether the domain is active or inactive.""" + +class DomainStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + INACTIVE = "inactive" + +@dataclass(kw_only=True) +class EncryptionEntities(_SerdeShape): + """ + Complex data type for field-level encryption profiles that includes all + of the encryption entities. + """ + + quantity: int + """ + Number of field pattern items in a field-level encryption content + type-profile mapping. + """ + items: list[EncryptionEntity] | None = ... + """ + An array of field patterns in a field-level encryption content + type-profile mapping. + """ + +@dataclass(kw_only=True) +class EncryptionEntity(_SerdeShape): + """ + Complex data type for field-level encryption profiles that includes the + encryption key and field pattern specifications. + """ + + public_key_id: str + """ + The public key associated with a set of field-level encryption patterns, + to be used when encrypting the fields that match the patterns. + """ + provider_id: str + """ + The provider associated with the public key being used for encryption. + This value must also be provided with the private key for applications + to be able to decrypt data. + """ + field_patterns: FieldPatterns + """ + Field patterns in a field-level encryption content type profile specify + the fields that you want to be encrypted. You can provide the full field + name, or any beginning characters followed by a wildcard (*). You + can't overlap field patterns. For example, you can't have both ABC* + and AB*. Note that field patterns are case-sensitive. + """ + +@dataclass(kw_only=True) +class EndPoint(_SerdeShape): + """ + Contains information about the Amazon Kinesis data stream where you're + sending real-time log data in a real-time log configuration. + """ + + stream_type: str + """ + The type of data stream where you are sending real-time log data. The + only valid value is `Kinesis`. + """ + kinesis_stream_config: KinesisStreamConfig | None = ... + """ + Contains information about the Amazon Kinesis data stream where you are + sending real-time log data in a real-time log configuration. + """ + +@dataclass(kw_only=True) +class EntityAlreadyExists(ServiceError, _SerdeShape): + """The entity already exists. You must provide a unique entity.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EntityLimitExceeded(ServiceError, _SerdeShape): + """The entity limit has been exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EntityNotFound(ServiceError, _SerdeShape): + """The entity was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EntitySizeLimitExceeded(ServiceError, _SerdeShape): + """The entity size limit was exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EventType(UnknownEnumMixin, StrEnum): + VIEWER_REQUEST = "viewer-request" + VIEWER_RESPONSE = "viewer-response" + ORIGIN_REQUEST = "origin-request" + ORIGIN_RESPONSE = "origin-response" + +@dataclass(kw_only=True) +class FieldLevelEncryption(_SerdeShape): + """ + A complex data type that includes the profile configurations and other + options specified for field-level encryption. + """ + + id: str + """ + The configuration ID for a field-level encryption configuration which + includes a set of profiles that specify certain selected data fields to + be encrypted by specific public keys. + """ + last_modified_time: datetime + """The last time the field-level encryption configuration was changed.""" + field_level_encryption_config: FieldLevelEncryptionConfig + """ + A complex data type that includes the profile configurations specified + for field-level encryption. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionConfig(_SerdeShape): + """ + A complex data type that includes the profile configurations specified + for field-level encryption. + """ + + caller_reference: str + """A unique number that ensures the request can't be replayed.""" + comment: str | None = ... + """ + An optional comment about the configuration. The comment cannot be + longer than 128 characters. + """ + query_arg_profile_config: QueryArgProfileConfig | None = ... + """ + A complex data type that specifies when to forward content if a profile + isn't found and the profile that can be provided as a query argument in + a request. + """ + content_type_profile_config: ContentTypeProfileConfig | None = ... + """ + A complex data type that specifies when to forward content if a content + type isn't recognized and profiles to use as by default in a request if + a query argument doesn't specify a profile to use. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionConfigAlreadyExists(ServiceError, _SerdeShape): + """The specified configuration for field-level encryption already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionConfigInUse(ServiceError, _SerdeShape): + """The specified configuration for field-level encryption is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionList(_SerdeShape): + """List of field-level encryption configurations.""" + + next_marker: str | None = ... + """ + If there are more elements to be listed, this element is present and + contains the value that you can use for the `Marker` request parameter + to continue listing your configurations where you left off. + """ + max_items: int + """The maximum number of elements you want in the response body.""" + quantity: int + """The number of field-level encryption items.""" + items: list[FieldLevelEncryptionSummary] | None = ... + """An array of field-level encryption items.""" + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfile(_SerdeShape): + """A complex data type for field-level encryption profiles.""" + + id: str + """ + The ID for a field-level encryption profile configuration which includes + a set of profiles that specify certain selected data fields to be + encrypted by specific public keys. + """ + last_modified_time: datetime + """The last time the field-level encryption profile was updated.""" + field_level_encryption_profile_config: FieldLevelEncryptionProfileConfig + """ + A complex data type that includes the profile name and the encryption + entities for the field-level encryption profile. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileAlreadyExists(ServiceError, _SerdeShape): + """The specified profile for field-level encryption already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileConfig(_SerdeShape): + """A complex data type of profiles for the field-level encryption.""" + + name: str + """Profile name for the field-level encryption profile.""" + caller_reference: str + """A unique number that ensures that the request can't be replayed.""" + comment: str | None = ... + """ + An optional comment for the field-level encryption profile. The comment + cannot be longer than 128 characters. + """ + encryption_entities: EncryptionEntities + """ + A complex data type of encryption entities for the field-level + encryption profile that include the public key ID, provider, and field + patterns for specifying which fields to encrypt with this key. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileInUse(ServiceError, _SerdeShape): + """The specified profile for field-level encryption is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileList(_SerdeShape): + """List of field-level encryption profiles.""" + + next_marker: str | None = ... + """ + If there are more elements to be listed, this element is present and + contains the value that you can use for the `Marker` request parameter + to continue listing your profiles where you left off. + """ + max_items: int + """ + The maximum number of field-level encryption profiles you want in the + response body. + """ + quantity: int + """The number of field-level encryption profiles.""" + items: list[FieldLevelEncryptionProfileSummary] | None = ... + """The field-level encryption profile items.""" + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileSizeExceeded(ServiceError, _SerdeShape): + """The maximum size of a profile for field-level encryption was exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionProfileSummary(_SerdeShape): + """The field-level encryption profile summary.""" + + id: str + """ID for the field-level encryption profile summary.""" + last_modified_time: datetime + """ + The time when the field-level encryption profile summary was last + updated. + """ + name: str + """Name for the field-level encryption profile summary.""" + encryption_entities: EncryptionEntities + """ + A complex data type of encryption entities for the field-level + encryption profile that include the public key ID, provider, and field + patterns for specifying which fields to encrypt with this key. + """ + comment: str | None = ... + """ + An optional comment for the field-level encryption profile summary. The + comment cannot be longer than 128 characters. + """ + +@dataclass(kw_only=True) +class FieldLevelEncryptionSummary(_SerdeShape): + """A summary of a field-level encryption item.""" + + id: str + """The unique ID of a field-level encryption item.""" + last_modified_time: datetime + """ + The last time that the summary of field-level encryption items was + modified. + """ + comment: str | None = ... + """ + An optional comment about the field-level encryption item. The comment + cannot be longer than 128 characters. + """ + query_arg_profile_config: QueryArgProfileConfig | None = ... + """A summary of a query argument-profile mapping.""" + content_type_profile_config: ContentTypeProfileConfig | None = ... + """A summary of a content type-profile mapping.""" + +@dataclass(kw_only=True) +class FieldPatterns(_SerdeShape): + """ + A complex data type that includes the field patterns to match for + field-level encryption. + """ + + quantity: int + """The number of field-level encryption field patterns.""" + items: list[str] | None = ... + """An array of the field-level encryption field patterns.""" + +class Format(UnknownEnumMixin, StrEnum): + URL_ENCODED = "URLEncoded" + +@dataclass(kw_only=True) +class ForwardedValues(_SerdeShape): + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include values in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send values to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + A complex type that specifies how CloudFront handles query strings, + cookies, and HTTP headers. + """ + + query_string: bool + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include query strings in the cache key, use a cache + policy. For more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send query strings to the origin but not include them in + the cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + Indicates whether you want CloudFront to forward query strings to the + origin that is associated with this cache behavior and cache based on + the query string parameters. CloudFront behavior depends on the value of + `QueryString` and on the values that you specify for + `QueryStringCacheKeys`, if any: + + If you specify true for `QueryString` and you don't specify any values + for `QueryStringCacheKeys`, CloudFront forwards all query string + parameters to the origin and caches based on all query string + parameters. Depending on how many query string parameters and values you + have, this can adversely affect performance because CloudFront must + forward more requests to the origin. + + If you specify true for `QueryString` and you specify one or more values + for `QueryStringCacheKeys`, CloudFront forwards all query string + parameters to the origin, but it only caches based on the query string + parameters that you specify. + + If you specify false for `QueryString`, CloudFront doesn't forward any + query string parameters to the origin, and doesn't cache based on query + string parameters. + + For more information, see [Configuring CloudFront to Cache Based on + Query String + Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) + in the *Amazon CloudFront Developer Guide*. + """ + cookies: CookiePreference + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include cookies in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send cookies to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + A complex type that specifies whether you want CloudFront to forward + cookies to the origin and, if so, which ones. For more information about + forwarding cookies to the origin, see [How CloudFront Forwards, Caches, + and Logs + Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) + in the *Amazon CloudFront Developer Guide*. + """ + headers: Headers | None = ... + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include headers in the cache key, use a cache policy. For + more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send headers to the origin but not include them in the + cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + A complex type that specifies the `Headers`, if any, that you want + CloudFront to forward to the origin for this cache behavior (whitelisted + headers). For the headers that you specify, CloudFront also caches + separate versions of a specified object that is based on the header + values in viewer requests. + + For more information, see [Caching Content Based on Request + Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) + in the *Amazon CloudFront Developer Guide*. + """ + query_string_cache_keys: QueryStringCacheKeys | None = ... + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include query strings in the cache key, use a cache + policy. For more information, see [Creating cache + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) + in the *Amazon CloudFront Developer Guide*. + + If you want to send query strings to the origin but not include them in + the cache key, use an origin request policy. For more information, see + [Creating origin request + policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) + in the *Amazon CloudFront Developer Guide*. + + A complex type that contains information about the query string + parameters that you want CloudFront to use for caching for this cache + behavior. + """ + +class FrameOptionsList(UnknownEnumMixin, StrEnum): + DENY = "DENY" + SAMEORIGIN = "SAMEORIGIN" + +@dataclass(kw_only=True) +class FunctionAlreadyExists(ServiceError, _SerdeShape): + """ + A function with the same name already exists in this Amazon Web Services + account. To create a function, you must provide a unique name. To update + an existing function, use `UpdateFunction`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FunctionAssociation(_SerdeShape): + """ + A CloudFront function that is associated with a cache behavior in a + CloudFront distribution. + """ + + function_arn: str + """The Amazon Resource Name (ARN) of the function.""" + event_type: str + """ + The event type of the function, either `viewer-request` or + `viewer-response`. You cannot use origin-facing event types + (`origin-request` and `origin-response`) with a CloudFront function. + """ + +@dataclass(kw_only=True) +class FunctionAssociations(_SerdeShape): + """ + A list of CloudFront functions that are associated with a cache behavior + in a CloudFront distribution. Your functions must be published to the + `LIVE` stage to associate them with a cache behavior. + """ + + quantity: int + """The number of CloudFront functions in the list.""" + items: list[FunctionAssociation] | None = ... + """ + The CloudFront functions that are associated with a cache behavior in a + CloudFront distribution. Your functions must be published to the `LIVE` + stage to associate them with a cache behavior. + """ + +@dataclass(kw_only=True) +class FunctionConfig(_SerdeShape): + """Contains configuration information about a CloudFront function.""" + + comment: str + """A comment to describe the function.""" + runtime: str + """The function's runtime environment version.""" + key_value_store_associations: KeyValueStoreAssociations | None = ... + """The configuration for the key value store associations.""" + +@dataclass(kw_only=True) +class FunctionInUse(ServiceError, _SerdeShape): + """ + Cannot delete the function because it's attached to one or more cache + behaviors. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FunctionList(_SerdeShape): + """A list of CloudFront functions.""" + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing functions + where you left off. + """ + max_items: int + """The maximum number of functions requested.""" + quantity: int + """The number of functions returned in the response.""" + items: list[FunctionSummary] | None = ... + """Contains the functions in the list.""" + +@dataclass(kw_only=True) +class FunctionMetadata(_SerdeShape): + """Contains metadata about a CloudFront function.""" + + function_arn: str + """ + The Amazon Resource Name (ARN) of the function. The ARN uniquely + identifies the function. + """ + stage: str | None = ... + """ + The stage that the function is in, either `DEVELOPMENT` or `LIVE`. + + When a function is in the `DEVELOPMENT` stage, you can test the function + with `TestFunction`, and update it with `UpdateFunction`. + + When a function is in the `LIVE` stage, you can attach the function to a + distribution's cache behavior, using the function's ARN. + """ + created_time: datetime | None = ... + """The date and time when the function was created.""" + last_modified_time: datetime + """The date and time when the function was most recently updated.""" + +class FunctionRuntime(UnknownEnumMixin, StrEnum): + CLOUDFRONT_JS_1_0 = "cloudfront-js-1.0" + CLOUDFRONT_JS_2_0 = "cloudfront-js-2.0" + +@dataclass(kw_only=True) +class FunctionSizeLimitExceeded(ServiceError, _SerdeShape): + """ + The function is too large. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class FunctionStage(UnknownEnumMixin, StrEnum): + DEVELOPMENT = "DEVELOPMENT" + LIVE = "LIVE" + +@dataclass(kw_only=True) +class FunctionSummary(_SerdeShape): + """ + Contains configuration information and metadata about a CloudFront + function. + """ + + name: str + """The name of the CloudFront function.""" + status: str | None = ... + """The status of the CloudFront function.""" + function_config: FunctionConfig + """Contains configuration information about a CloudFront function.""" + function_metadata: FunctionMetadata + """Contains metadata about a CloudFront function.""" + +@dataclass(kw_only=True) +class GeoRestriction(_SerdeShape): + """ + A complex type that controls the countries in which your content is + distributed. CloudFront determines the location of your users using + `MaxMind` GeoIP databases. + """ + + restriction_type: str + """ + The method that you want to use to restrict distribution of your content + by country: + + - `none`: No geo restriction is enabled, meaning access to content is + not restricted by client geo location. + + - `blacklist`: The `Location` elements specify the countries in which + you don't want CloudFront to distribute your content. + + - `whitelist`: The `Location` elements specify the countries in which + you want CloudFront to distribute your content. + """ + quantity: int + """ + When geo restriction is `enabled`, this is the number of countries in + your `whitelist` or `blacklist`. Otherwise, when it is not enabled, + `Quantity` is `0`, and you can omit `Items`. + """ + items: list[str] | None = ... + """ + A complex type that contains a `Location` element for each country in + which you want CloudFront either to distribute your content + (`whitelist`) or not distribute your content (`blacklist`). + + The `Location` element is a two-letter, uppercase country code for a + country that you want to include in your `blacklist` or `whitelist`. + Include one `Location` element for each country. + + CloudFront and `MaxMind` both use `ISO 3166` country codes. For the + current list of countries and the corresponding codes, see + `ISO 3166-1-alpha-2` code on the *International Organization for + Standardization* website. You can also refer to the country list on the + CloudFront console, which includes both country names and codes. + """ + +@dataclass(kw_only=True) +class GeoRestrictionCustomization(_SerdeShape): + """ + The customizations that you specified for the distribution tenant for + geographic restrictions. + """ + + restriction_type: str + """ + The method that you want to use to restrict distribution of your content + by country: + + - `none`: No geographic restriction is enabled, meaning access to + content is not restricted by client geo location. + + - `blacklist`: The `Location` elements specify the countries in which + you don't want CloudFront to distribute your content. + + - `whitelist`: The `Location` elements specify the countries in which + you want CloudFront to distribute your content. + """ + locations: list[str] | None = ... + """The locations for geographic restrictions.""" + +class GeoRestrictionType(UnknownEnumMixin, StrEnum): + BLACKLIST = "blacklist" + WHITELIST = "whitelist" + NONE = "none" + +@dataclass(kw_only=True) +class GetAnycastIpListInput(_SerdeShape): + """Dataclass for GetAnycastIpListInput structure.""" + + id: str | None = ... + """The ID of the Anycast static IP list.""" + +@dataclass(kw_only=True) +class GetAnycastIpListOutput(_SerdeShape): + """Dataclass for GetAnycastIpListOutput structure.""" + + anycast_ip_list: AnycastIpList | None = ... + """The Anycast static IP list details.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the Anycast static IP + list. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCachePolicyConfigInput(_SerdeShape): + """Dataclass for GetCachePolicyConfigInput structure.""" + + id: str | None = ... + """ + The unique identifier for the cache policy. If the cache policy is + attached to a distribution's cache behavior, you can get the policy's + identifier using `ListDistributions` or `GetDistribution`. If the cache + policy is not attached to a cache behavior, you can get the identifier + using `ListCachePolicies`. + """ + +@dataclass(kw_only=True) +class GetCachePolicyConfigOutput(_SerdeShape): + """Dataclass for GetCachePolicyConfigOutput structure.""" + + cache_policy_config: CachePolicyConfig | None = ... + """The cache policy configuration.""" + e_tag: str | None = ... + """The current version of the cache policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCachePolicyInput(_SerdeShape): + """Dataclass for GetCachePolicyInput structure.""" + + id: str | None = ... + """ + The unique identifier for the cache policy. If the cache policy is + attached to a distribution's cache behavior, you can get the policy's + identifier using `ListDistributions` or `GetDistribution`. If the cache + policy is not attached to a cache behavior, you can get the identifier + using `ListCachePolicies`. + """ + +@dataclass(kw_only=True) +class GetCachePolicyOutput(_SerdeShape): + """Dataclass for GetCachePolicyOutput structure.""" + + cache_policy: CachePolicy | None = ... + """The cache policy.""" + e_tag: str | None = ... + """The current version of the cache policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCloudFrontOriginAccessIdentityConfigInput(_SerdeShape): + """ + The origin access identity's configuration information. For more + information, see + [CloudFrontOriginAccessIdentityConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CloudFrontOriginAccessIdentityConfig.html). + """ + + id: str | None = ... + """The identity's ID.""" + +@dataclass(kw_only=True) +class GetCloudFrontOriginAccessIdentityConfigOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + cloud_front_origin_access_identity_config: ( + CloudFrontOriginAccessIdentityConfig | None + ) = ... + """The origin access identity's configuration information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCloudFrontOriginAccessIdentityInput(_SerdeShape): + """The request to get an origin access identity's information.""" + + id: str | None = ... + """The identity's ID.""" + +@dataclass(kw_only=True) +class GetCloudFrontOriginAccessIdentityOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + cloud_front_origin_access_identity: CloudFrontOriginAccessIdentity | None = ... + """The origin access identity's information.""" + e_tag: str | None = ... + """ + The current version of the origin access identity's information. For + example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetConnectionFunctionInput(_SerdeShape): + """Dataclass for GetConnectionFunctionInput structure.""" + + identifier: str | None = ... + """The connection function's identifier.""" + stage: str | None = ... + """The connection function's stage.""" + +@dataclass(kw_only=True) +class GetConnectionFunctionOutput(_SerdeShape): + """Dataclass for GetConnectionFunctionOutput structure.""" + + connection_function_code: bytes | None = ... + """The connection function's code.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the connection + function. + """ + content_type: str | None = ... + """The connection function's content type.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetConnectionGroupByRoutingEndpointInput(_SerdeShape): + """Dataclass for GetConnectionGroupByRoutingEndpointInput structure.""" + + routing_endpoint: str | None = ... + """ + The routing endpoint for the target connection group, such as + d111111abcdef8.cloudfront.net. + """ + +@dataclass(kw_only=True) +class GetConnectionGroupByRoutingEndpointOutput(_SerdeShape): + """Dataclass for GetConnectionGroupByRoutingEndpointOutput structure.""" + + connection_group: ConnectionGroup | None = ... + """ + The connection group for your distribution tenants. When you first + create a distribution tenant and you don't specify a connection group, + CloudFront will automatically create a default connection group for you. + When you create a new distribution tenant and don't specify a + connection group, the default one will be associated with your + distribution tenant. + """ + e_tag: str | None = ... + """The current version of the connection group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetConnectionGroupInput(_SerdeShape): + """Dataclass for GetConnectionGroupInput structure.""" + + identifier: str | None = ... + """The ID, name, or Amazon Resource Name (ARN) of the connection group.""" + +@dataclass(kw_only=True) +class GetConnectionGroupOutput(_SerdeShape): + """Dataclass for GetConnectionGroupOutput structure.""" + + connection_group: ConnectionGroup | None = ... + """The connection group that you retrieved.""" + e_tag: str | None = ... + """The current version of the connection group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetContinuousDeploymentPolicyConfigInput(_SerdeShape): + """Dataclass for GetContinuousDeploymentPolicyConfigInput structure.""" + + id: str | None = ... + """ + The identifier of the continuous deployment policy whose configuration + you are getting. + """ + +@dataclass(kw_only=True) +class GetContinuousDeploymentPolicyConfigOutput(_SerdeShape): + """Dataclass for GetContinuousDeploymentPolicyConfigOutput structure.""" + + continuous_deployment_policy_config: ContinuousDeploymentPolicyConfig | None = ... + """Contains the configuration for a continuous deployment policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the continuous + deployment policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetContinuousDeploymentPolicyInput(_SerdeShape): + """Dataclass for GetContinuousDeploymentPolicyInput structure.""" + + id: str | None = ... + """The identifier of the continuous deployment policy that you are getting.""" + +@dataclass(kw_only=True) +class GetContinuousDeploymentPolicyOutput(_SerdeShape): + """Dataclass for GetContinuousDeploymentPolicyOutput structure.""" + + continuous_deployment_policy: ContinuousDeploymentPolicy | None = ... + """A continuous deployment policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the continuous + deployment policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDistributionConfigInput(_SerdeShape): + """The request to get a distribution configuration.""" + + id: str | None = ... + """ + The distribution's ID. If the ID is empty, an empty distribution + configuration is returned. + """ + +@dataclass(kw_only=True) +class GetDistributionConfigOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution_config: DistributionConfig | None = ... + """The distribution's configuration information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDistributionInput(_SerdeShape): + """The request to get a distribution's information.""" + + id: str | None = ... + """ + The distribution's ID. If the ID is empty, an empty distribution + configuration is returned. + """ + +@dataclass(kw_only=True) +class GetDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution: Distribution | None = ... + """The distribution's information.""" + e_tag: str | None = ... + """ + The current version of the distribution's information. For example: + `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDistributionTenantByDomainInput(_SerdeShape): + """Dataclass for GetDistributionTenantByDomainInput structure.""" + + domain: str | None = ... + """A domain name associated with the target distribution tenant.""" + +@dataclass(kw_only=True) +class GetDistributionTenantByDomainOutput(_SerdeShape): + """Dataclass for GetDistributionTenantByDomainOutput structure.""" + + distribution_tenant: DistributionTenant | None = ... + """The distribution tenant.""" + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDistributionTenantInput(_SerdeShape): + """Dataclass for GetDistributionTenantInput structure.""" + + identifier: str | None = ... + """ + The identifier of the distribution tenant. You can specify the ARN, ID, + or name of the distribution tenant. + """ + +@dataclass(kw_only=True) +class GetDistributionTenantOutput(_SerdeShape): + """Dataclass for GetDistributionTenantOutput structure.""" + + distribution_tenant: DistributionTenant | None = ... + """The distribution tenant that you retrieved.""" + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionConfigInput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionConfigInput structure.""" + + id: str | None = ... + """Request the ID for the field-level encryption configuration information.""" + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionConfigOutput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionConfigOutput structure.""" + + field_level_encryption_config: FieldLevelEncryptionConfig | None = ... + """Return the field-level encryption configuration information.""" + e_tag: str | None = ... + """ + The current version of the field level encryption configuration. For + example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionInput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionInput structure.""" + + id: str | None = ... + """Request the ID for the field-level encryption configuration information.""" + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionOutput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionOutput structure.""" + + field_level_encryption: FieldLevelEncryption | None = ... + """Return the field-level encryption configuration information.""" + e_tag: str | None = ... + """ + The current version of the field level encryption configuration. For + example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionProfileConfigInput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionProfileConfigInput structure.""" + + id: str | None = ... + """ + Get the ID for the field-level encryption profile configuration + information. + """ + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionProfileConfigOutput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionProfileConfigOutput structure.""" + + field_level_encryption_profile_config: ( + FieldLevelEncryptionProfileConfig | None + ) = ... + """Return the field-level encryption profile configuration information.""" + e_tag: str | None = ... + """ + The current version of the field-level encryption profile configuration + result. For example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionProfileInput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionProfileInput structure.""" + + id: str | None = ... + """Get the ID for the field-level encryption profile information.""" + +@dataclass(kw_only=True) +class GetFieldLevelEncryptionProfileOutput(_SerdeShape): + """Dataclass for GetFieldLevelEncryptionProfileOutput structure.""" + + field_level_encryption_profile: FieldLevelEncryptionProfile | None = ... + """Return the field-level encryption profile information.""" + e_tag: str | None = ... + """ + The current version of the field level encryption profile. For example: + `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFunctionInput(_SerdeShape): + """Dataclass for GetFunctionInput structure.""" + + name: str | None = ... + """The name of the function whose code you are getting.""" + stage: str | None = ... + """The function's stage, either `DEVELOPMENT` or `LIVE`.""" + +@dataclass(kw_only=True) +class GetFunctionOutput(_SerdeShape): + """Dataclass for GetFunctionOutput structure.""" + + function_code: bytes | None = ... + """The function code of a CloudFront function.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the CloudFront + function. + """ + content_type: str | None = ... + """The content type (media type) of the response.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInvalidationForDistributionTenantInput(_SerdeShape): + """Dataclass for GetInvalidationForDistributionTenantInput structure.""" + + distribution_tenant_id: str | None = ... + """The ID of the distribution tenant.""" + id: str | None = ... + """The ID of the invalidation to retrieve.""" + +@dataclass(kw_only=True) +class GetInvalidationForDistributionTenantOutput(_SerdeShape): + """Dataclass for GetInvalidationForDistributionTenantOutput structure.""" + + invalidation: Invalidation | None = ... + """An invalidation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInvalidationInput(_SerdeShape): + """The request to get an invalidation's information.""" + + distribution_id: str | None = ... + """The distribution's ID.""" + id: str | None = ... + """ + The identifier for the invalidation request, for example, + `IDFDVBD632BHDS5`. + """ + +@dataclass(kw_only=True) +class GetInvalidationOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + invalidation: Invalidation | None = ... + """ + The invalidation's information. For more information, see [Invalidation + Complex + Type](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/InvalidationDatatype.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyGroupConfigInput(_SerdeShape): + """Dataclass for GetKeyGroupConfigInput structure.""" + + id: str | None = ... + """ + The identifier of the key group whose configuration you are getting. To + get the identifier, use `ListKeyGroups`. + """ + +@dataclass(kw_only=True) +class GetKeyGroupConfigOutput(_SerdeShape): + """Dataclass for GetKeyGroupConfigOutput structure.""" + + key_group_config: KeyGroupConfig | None = ... + """The key group configuration.""" + e_tag: str | None = ... + """The identifier for this version of the key group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyGroupInput(_SerdeShape): + """Dataclass for GetKeyGroupInput structure.""" + + id: str | None = ... + """ + The identifier of the key group that you are getting. To get the + identifier, use `ListKeyGroups`. + """ + +@dataclass(kw_only=True) +class GetKeyGroupOutput(_SerdeShape): + """Dataclass for GetKeyGroupOutput structure.""" + + key_group: KeyGroup | None = ... + """The key group.""" + e_tag: str | None = ... + """The identifier for this version of the key group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetManagedCertificateDetailsInput(_SerdeShape): + """Dataclass for GetManagedCertificateDetailsInput structure.""" + + identifier: str | None = ... + """ + The identifier of the distribution tenant. You can specify the ARN, ID, + or name of the distribution tenant. + """ + +@dataclass(kw_only=True) +class GetManagedCertificateDetailsOutput(_SerdeShape): + """Dataclass for GetManagedCertificateDetailsOutput structure.""" + + managed_certificate_details: ManagedCertificateDetails | None = ... + """Contains details about the CloudFront managed ACM certificate.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetMonitoringSubscriptionInput(_SerdeShape): + """Dataclass for GetMonitoringSubscriptionInput structure.""" + + distribution_id: str | None = ... + """The ID of the distribution that you are getting metrics information for.""" + +@dataclass(kw_only=True) +class GetMonitoringSubscriptionOutput(_SerdeShape): + """Dataclass for GetMonitoringSubscriptionOutput structure.""" + + monitoring_subscription: MonitoringSubscription | None = ... + """ + A monitoring subscription. This structure contains information about + whether additional CloudWatch metrics are enabled for a given CloudFront + distribution. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOriginAccessControlConfigInput(_SerdeShape): + """Dataclass for GetOriginAccessControlConfigInput structure.""" + + id: str | None = ... + """The unique identifier of the origin access control.""" + +@dataclass(kw_only=True) +class GetOriginAccessControlConfigOutput(_SerdeShape): + """Dataclass for GetOriginAccessControlConfigOutput structure.""" + + origin_access_control_config: OriginAccessControlConfig | None = ... + """Contains an origin access control configuration.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the origin access + control. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOriginAccessControlInput(_SerdeShape): + """Dataclass for GetOriginAccessControlInput structure.""" + + id: str | None = ... + """The unique identifier of the origin access control.""" + +@dataclass(kw_only=True) +class GetOriginAccessControlOutput(_SerdeShape): + """Dataclass for GetOriginAccessControlOutput structure.""" + + origin_access_control: OriginAccessControl | None = ... + """Contains an origin access control, including its unique identifier.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the origin access + control. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOriginRequestPolicyConfigInput(_SerdeShape): + """Dataclass for GetOriginRequestPolicyConfigInput structure.""" + + id: str | None = ... + """ + The unique identifier for the origin request policy. If the origin + request policy is attached to a distribution's cache behavior, you can + get the policy's identifier using `ListDistributions` or + `GetDistribution`. If the origin request policy is not attached to a + cache behavior, you can get the identifier using + `ListOriginRequestPolicies`. + """ + +@dataclass(kw_only=True) +class GetOriginRequestPolicyConfigOutput(_SerdeShape): + """Dataclass for GetOriginRequestPolicyConfigOutput structure.""" + + origin_request_policy_config: OriginRequestPolicyConfig | None = ... + """The origin request policy configuration.""" + e_tag: str | None = ... + """The current version of the origin request policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOriginRequestPolicyInput(_SerdeShape): + """Dataclass for GetOriginRequestPolicyInput structure.""" + + id: str | None = ... + """ + The unique identifier for the origin request policy. If the origin + request policy is attached to a distribution's cache behavior, you can + get the policy's identifier using `ListDistributions` or + `GetDistribution`. If the origin request policy is not attached to a + cache behavior, you can get the identifier using + `ListOriginRequestPolicies`. + """ + +@dataclass(kw_only=True) +class GetOriginRequestPolicyOutput(_SerdeShape): + """Dataclass for GetOriginRequestPolicyOutput structure.""" + + origin_request_policy: OriginRequestPolicy | None = ... + """The origin request policy.""" + e_tag: str | None = ... + """The current version of the origin request policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPublicKeyConfigInput(_SerdeShape): + """Dataclass for GetPublicKeyConfigInput structure.""" + + id: str | None = ... + """The identifier of the public key whose configuration you are getting.""" + +@dataclass(kw_only=True) +class GetPublicKeyConfigOutput(_SerdeShape): + """Dataclass for GetPublicKeyConfigOutput structure.""" + + public_key_config: PublicKeyConfig | None = ... + """A public key configuration.""" + e_tag: str | None = ... + """The identifier for this version of the public key configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPublicKeyInput(_SerdeShape): + """Dataclass for GetPublicKeyInput structure.""" + + id: str | None = ... + """The identifier of the public key you are getting.""" + +@dataclass(kw_only=True) +class GetPublicKeyOutput(_SerdeShape): + """Dataclass for GetPublicKeyOutput structure.""" + + public_key: PublicKey | None = ... + """The public key.""" + e_tag: str | None = ... + """The identifier for this version of the public key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRealtimeLogConfigInput(_SerdeShape): + """Dataclass for GetRealtimeLogConfigInput structure.""" + + name: str | None = ... + """The name of the real-time log configuration to get.""" + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the real-time log configuration to + get. + """ + +@dataclass(kw_only=True) +class GetRealtimeLogConfigOutput(_SerdeShape): + """Dataclass for GetRealtimeLogConfigOutput structure.""" + + realtime_log_config: RealtimeLogConfig | None = ... + """A real-time log configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetResourcePolicyInput(_SerdeShape): + """Dataclass for GetResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudFront resource that is + associated with the resource policy. + """ + +@dataclass(kw_only=True) +class GetResourcePolicyOutput(_SerdeShape): + """Dataclass for GetResourcePolicyOutput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudFront resource that is + associated with the resource policy. + """ + policy_document: str | None = ... + """The resource policy in JSON format.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetResponseHeadersPolicyConfigInput(_SerdeShape): + """Dataclass for GetResponseHeadersPolicyConfigInput structure.""" + + id: str | None = ... + """ + The identifier for the response headers policy. + + If the response headers policy is attached to a distribution's cache + behavior, you can get the policy's identifier using `ListDistributions` + or `GetDistribution`. If the response headers policy is not attached to + a cache behavior, you can get the identifier using + `ListResponseHeadersPolicies`. + """ + +@dataclass(kw_only=True) +class GetResponseHeadersPolicyConfigOutput(_SerdeShape): + """Dataclass for GetResponseHeadersPolicyConfigOutput structure.""" + + response_headers_policy_config: ResponseHeadersPolicyConfig | None = ... + """Contains a response headers policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the response headers + policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetResponseHeadersPolicyInput(_SerdeShape): + """Dataclass for GetResponseHeadersPolicyInput structure.""" + + id: str | None = ... + """ + The identifier for the response headers policy. + + If the response headers policy is attached to a distribution's cache + behavior, you can get the policy's identifier using `ListDistributions` + or `GetDistribution`. If the response headers policy is not attached to + a cache behavior, you can get the identifier using + `ListResponseHeadersPolicies`. + """ + +@dataclass(kw_only=True) +class GetResponseHeadersPolicyOutput(_SerdeShape): + """Dataclass for GetResponseHeadersPolicyOutput structure.""" + + response_headers_policy: ResponseHeadersPolicy | None = ... + """Contains a response headers policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the response headers + policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetStreamingDistributionConfigInput(_SerdeShape): + """To request to get a streaming distribution configuration.""" + + id: str | None = ... + """The streaming distribution's ID.""" + +@dataclass(kw_only=True) +class GetStreamingDistributionConfigOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution_config: StreamingDistributionConfig | None = ... + """The streaming distribution's configuration information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetStreamingDistributionInput(_SerdeShape): + """The request to get a streaming distribution's information.""" + + id: str | None = ... + """The streaming distribution's ID.""" + +@dataclass(kw_only=True) +class GetStreamingDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution: StreamingDistribution | None = ... + """The streaming distribution's information.""" + e_tag: str | None = ... + """ + The current version of the streaming distribution's information. For + example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTrustStoreInput(_SerdeShape): + """Dataclass for GetTrustStoreInput structure.""" + + identifier: str | None = ... + """The trust store's identifier.""" + +@dataclass(kw_only=True) +class GetTrustStoreOutput(_SerdeShape): + """Dataclass for GetTrustStoreOutput structure.""" + + trust_store: TrustStore | None = ... + """The trust store.""" + e_tag: str | None = ... + """The version identifier for the current version of the trust store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVpcOriginInput(_SerdeShape): + """Dataclass for GetVpcOriginInput structure.""" + + id: str | None = ... + """The VPC origin ID.""" + +@dataclass(kw_only=True) +class GetVpcOriginOutput(_SerdeShape): + """Dataclass for GetVpcOriginOutput structure.""" + + vpc_origin: VpcOrigin | None = ... + """The VPC origin.""" + e_tag: str | None = ... + """The VPC origin ETag.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GrpcConfig(_SerdeShape): + """ + Amazon CloudFront supports gRPC, an open-source remote procedure call + (RPC) framework built on HTTP/2. gRPC offers bi-directional streaming + and binary protocol that buffers payloads, making it suitable for + applications that require low latency communications. + + To enable your distribution to handle gRPC requests, you must include + HTTP/2 as one of the supported `HTTP` versions and allow `HTTP` methods, + including `POST`. + + For more information, see [Using gRPC with CloudFront + distributions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-using-grpc.html) + in the *Amazon CloudFront Developer Guide*. + """ + + enabled: bool + """ + Enables your CloudFront distribution to receive gRPC requests and to + proxy them directly to your origins. + """ + +@dataclass(kw_only=True) +class Headers(_SerdeShape): + """Contains a list of HTTP header names.""" + + quantity: int + """The number of header names in the `Items` list.""" + items: list[str] | None = ... + """A list of HTTP header names.""" + +class HttpVersion(UnknownEnumMixin, StrEnum): + HTTP1_1 = "http1.1" + HTTP2 = "http2" + HTTP3 = "http3" + HTTP2AND3 = "http2and3" + +class ICPRecordalStatus(UnknownEnumMixin, StrEnum): + APPROVED = "APPROVED" + SUSPENDED = "SUSPENDED" + PENDING = "PENDING" + +@dataclass(kw_only=True) +class IllegalDelete(ServiceError, _SerdeShape): + """Deletion is not allowed for this entity.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior( + ServiceError, _SerdeShape +): + """ + The specified configuration for field-level encryption can't be + associated with the specified cache behavior. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IllegalOriginAccessConfiguration(ServiceError, _SerdeShape): + """ + An origin cannot contain both an origin access control (OAC) and an + origin access identity (OAI). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IllegalUpdate(ServiceError, _SerdeShape): + """The update contains modifications that are not allowed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportSource(_SerdeShape): + """The import source for the key value store.""" + + source_type: str + """The source type of the import source for the key value store.""" + source_arn: str + """ + The Amazon Resource Name (ARN) of the import source for the key value + store. + """ + +class ImportSourceType(UnknownEnumMixin, StrEnum): + S3 = "S3" + +@dataclass(kw_only=True) +class InconsistentQuantities(ServiceError, _SerdeShape): + """The value of `Quantity` and the size of `Items` don't match.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidArgument(ServiceError, _SerdeShape): + """An argument is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidAssociation(ServiceError, _SerdeShape): + """The specified CloudFront resource can't be associated.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Invalidation(_SerdeShape): + """An invalidation.""" + + id: str + """ + The identifier for the invalidation request. For example: + `IDFDVBD632BHDS5`. + """ + status: str + """ + The status of the invalidation request. When the invalidation batch is + finished, the status is `Completed`. + """ + create_time: datetime + """The date and time the invalidation request was first made.""" + invalidation_batch: InvalidationBatch + """The current invalidation information for the batch request.""" + +@dataclass(kw_only=True) +class InvalidationBatch(_SerdeShape): + """An invalidation batch.""" + + paths: Paths + """ + A complex type that contains information about the objects that you want + to invalidate. For more information, see [Specifying the Objects to + Invalidate](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects) + in the *Amazon CloudFront Developer Guide*. + """ + caller_reference: str + """ + A value that you specify to uniquely identify an invalidation request. + CloudFront uses the value to prevent you from accidentally resubmitting + an identical request. Whenever you create a new invalidation request, + you must specify a new value for `CallerReference` and change other + values in the request as applicable. One way to ensure that the value of + `CallerReference` is unique is to use a `timestamp`, for example, + `20120301090000`. + + If you make a second invalidation request with the same value for + `CallerReference`, and if the rest of the request is the same, + CloudFront doesn't create a new invalidation request. Instead, + CloudFront returns information about the invalidation request that you + previously created with the same `CallerReference`. + + If `CallerReference` is a value you already sent in a previous + invalidation batch request but the content of any `Path` is different + from the original request, CloudFront returns an + `InvalidationBatchAlreadyExists` error. + """ + +@dataclass(kw_only=True) +class InvalidationList(_SerdeShape): + """ + The `InvalidationList` complex type describes the list of invalidation + objects. For more information about invalidation, see [Invalidating + Objects (Web Distributions + Only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + """ + + marker: str + """The value that you provided for the `Marker` request parameter.""" + next_marker: str | None = ... + """ + If `IsTruncated` is `true`, this element is present and contains the + value that you can use for the `Marker` request parameter to continue + listing your invalidation batches where they left off. + """ + max_items: int + """The value that you provided for the `MaxItems` request parameter.""" + is_truncated: bool + """ + A flag that indicates whether more invalidation batch requests remain to + be listed. If your results were truncated, you can make a follow-up + pagination request using the `Marker` request parameter to retrieve more + invalidation batches in the list. + """ + quantity: int + """ + The number of invalidation batches that were created by the current + Amazon Web Services account. + """ + items: list[InvalidationSummary] | None = ... + """ + A complex type that contains one `InvalidationSummary` element for each + invalidation batch created by the current Amazon Web Services account. + """ + +@dataclass(kw_only=True) +class InvalidationSummary(_SerdeShape): + """A summary of an invalidation request.""" + + id: str + """The unique ID for an invalidation request.""" + create_time: datetime + """The time that an invalidation request was created.""" + status: str + """The status of an invalidation request.""" + +@dataclass(kw_only=True) +class InvalidDefaultRootObject(ServiceError, _SerdeShape): + """ + The default root object file name is too big or contains an invalid + character. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDomainNameForOriginAccessControl(ServiceError, _SerdeShape): + """ + An origin access control is associated with an origin whose domain name + is not supported. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidErrorCode(ServiceError, _SerdeShape): + """An invalid error code was specified.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidForwardCookies(ServiceError, _SerdeShape): + """ + Your request contains forward cookies option which doesn't match with + the expectation for the `whitelisted` list of cookie names. Either list + of cookie names has been specified when not allowed or list of cookie + names is missing when expected. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidFunctionAssociation(ServiceError, _SerdeShape): + """A CloudFront function association is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidGeoRestrictionParameter(ServiceError, _SerdeShape): + """The specified geo restriction parameter is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidHeadersForS3Origin(ServiceError, _SerdeShape): + """The headers specified are not valid for an Amazon S3 origin.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidIfMatchVersion(ServiceError, _SerdeShape): + """The `If-Match` version is missing or not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidLambdaFunctionAssociation(ServiceError, _SerdeShape): + """The specified Lambda@Edge function association is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidLocationCode(ServiceError, _SerdeShape): + """The location code specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidMinimumProtocolVersion(ServiceError, _SerdeShape): + """The minimum protocol version specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOrigin(ServiceError, _SerdeShape): + """ + The Amazon S3 origin server specified does not refer to a valid Amazon + S3 bucket. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOriginAccessControl(ServiceError, _SerdeShape): + """The origin access control is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOriginAccessIdentity(ServiceError, _SerdeShape): + """The origin access identity is not valid or doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOriginKeepaliveTimeout(ServiceError, _SerdeShape): + """The keep alive timeout specified for the origin is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOriginReadTimeout(ServiceError, _SerdeShape): + """The read timeout specified for the origin is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidProtocolSettings(ServiceError, _SerdeShape): + """ + You cannot specify SSLv3 as the minimum protocol version if you only + want to support only clients that support Server Name Indication (SNI). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidQueryStringParameters(ServiceError, _SerdeShape): + """The query string parameters specified are not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidRelativePath(ServiceError, _SerdeShape): + """ + The relative path is too big, is not URL-encoded, or does not begin with + a slash (/). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidRequiredProtocol(ServiceError, _SerdeShape): + """ + This operation requires the HTTPS protocol. Ensure that you specify the + HTTPS protocol in your request, or omit the `RequiredProtocols` element + from your distribution configuration. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidResponseCode(ServiceError, _SerdeShape): + """A response code is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidTagging(ServiceError, _SerdeShape): + """The tagging specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidTTLOrder(ServiceError, _SerdeShape): + """The TTL order specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidViewerCertificate(ServiceError, _SerdeShape): + """A viewer certificate specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidWebACLId(ServiceError, _SerdeShape): + """ + A web ACL ID specified is not valid. To specify a web ACL created using + the latest version of WAF, use the ACL ARN, for example + `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`. + To specify a web ACL created using WAF Classic, use the ACL ID, for + example `473e64fd-f30b-4765-81a0-62ad96dd167a`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class IpAddressType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + DUAL_STACK = "dualstack" + +@dataclass(kw_only=True) +class IpamCidrConfig(_SerdeShape): + """ + Configuration for an IPAM CIDR that defines a specific IP address range, + IPAM pool, and associated Anycast IP address. + """ + + cidr: str + """ + The CIDR that specifies the IP address range for this IPAM + configuration. + """ + ipam_pool_arn: str + """ + The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is + assigned to. + """ + anycast_ip: str | None = ... + """ + The specified Anycast IP address allocated from the IPAM pool for this + CIDR configuration. + """ + status: str | None = ... + """The current status of the IPAM CIDR configuration.""" + +class IpamCidrStatus(UnknownEnumMixin, StrEnum): + PROVISIONED = "provisioned" + FAILED_PROVISION = "failed-provision" + PROVISIONING = "provisioning" + DEPROVISIONED = "deprovisioned" + FAILED_DEPROVISION = "failed-deprovision" + DEPROVISIONING = "deprovisioning" + ADVERTISED = "advertised" + FAILED_ADVERTISE = "failed-advertise" + ADVERTISING = "advertising" + WITHDRAWN = "withdrawn" + FAILED_WITHDRAW = "failed-withdraw" + WITHDRAWING = "withdrawing" + +@dataclass(kw_only=True) +class IpamConfig(_SerdeShape): + """ + The configuration IPAM settings that includes the quantity of CIDR + configurations and the list of IPAM CIDR configurations. + """ + + quantity: int + """The number of IPAM CIDR configurations in the `IpamCidrConfigs` list.""" + ipam_cidr_configs: list[IpamCidrConfig] + """ + A list of IPAM CIDR configurations that define the IP address ranges, + IPAM pools, and associated Anycast IP addresses. + """ + +class ItemSelection(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL = "all" + +@dataclass(kw_only=True) +class KeyGroup(_SerdeShape): + """ + A key group. + + A key group contains a list of public keys that you can use with + [CloudFront signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). + """ + + id: str + """The identifier for the key group.""" + last_modified_time: datetime + """The date and time when the key group was last modified.""" + key_group_config: KeyGroupConfig + """The key group configuration.""" + +@dataclass(kw_only=True) +class KeyGroupAlreadyExists(ServiceError, _SerdeShape): + """ + A key group with this name already exists. You must provide a unique + name. To modify an existing key group, use `UpdateKeyGroup`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KeyGroupConfig(_SerdeShape): + """ + A key group configuration. + + A key group contains a list of public keys that you can use with + [CloudFront signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html). + """ + + name: str + """A name to identify the key group.""" + items: list[str] + """A list of the identifiers of the public keys in the key group.""" + comment: str | None = ... + """ + A comment to describe the key group. The comment cannot be longer than + 128 characters. + """ + +@dataclass(kw_only=True) +class KeyGroupList(_SerdeShape): + """A list of key groups.""" + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing key groups. + """ + max_items: int + """The maximum number of key groups requested.""" + quantity: int + """The number of key groups returned in the response.""" + items: list[KeyGroupSummary] | None = ... + """A list of key groups.""" + +@dataclass(kw_only=True) +class KeyGroupSummary(_SerdeShape): + """Contains information about a key group.""" + + key_group: KeyGroup + """A key group.""" + +@dataclass(kw_only=True) +class KeyPairIds(_SerdeShape): + """A list of CloudFront key pair identifiers.""" + + quantity: int + """The number of key pair identifiers in the list.""" + items: list[str] | None = ... + """A list of CloudFront key pair identifiers.""" + +@dataclass(kw_only=True) +class KeyValueStore(_SerdeShape): + """ + The key value store. Use this to separate data from function code, + allowing you to update data without having to publish a new version of a + function. The key value store holds keys and their corresponding values. + """ + + name: str + """The name of the key value store.""" + id: str + """The unique Id for the key value store.""" + comment: str + """A comment for the key value store.""" + arn: str + """The Amazon Resource Name (ARN) of the key value store.""" + status: str | None = ... + """The status of the key value store.""" + last_modified_time: datetime + """The last-modified time of the key value store.""" + +@dataclass(kw_only=True) +class KeyValueStoreAssociation(_SerdeShape): + """The key value store association.""" + + key_value_store_arn: str + """The Amazon Resource Name (ARN) of the key value store association.""" + +@dataclass(kw_only=True) +class KeyValueStoreAssociations(_SerdeShape): + """The key value store associations.""" + + quantity: int + """The quantity of key value store associations.""" + items: list[KeyValueStoreAssociation] | None = ... + """The items of the key value store association.""" + +@dataclass(kw_only=True) +class KeyValueStoreList(_SerdeShape): + """The key value store list.""" + + next_marker: str | None = ... + """The next marker associated with the key value store list.""" + max_items: int + """The maximum number of items in the key value store list.""" + quantity: int + """The quantity of the key value store list.""" + items: list[KeyValueStore] | None = ... + """The items of the key value store list.""" + +@dataclass(kw_only=True) +class KGKeyPairIds(_SerdeShape): + """ + A list of identifiers for the public keys that CloudFront can use to + verify the signatures of signed URLs and signed cookies. + """ + + key_group_id: str | None = ... + """The identifier of the key group that contains the public keys.""" + key_pair_ids: KeyPairIds | None = ... + """A list of CloudFront key pair identifiers.""" + +@dataclass(kw_only=True) +class KinesisStreamConfig(_SerdeShape): + """ + Contains information about the Amazon Kinesis data stream where you are + sending real-time log data. + """ + + role_arn: str + """ + The Amazon Resource Name (ARN) of an Identity and Access Management + (IAM) role that CloudFront can use to send real-time log data to your + Kinesis data stream. + + For more information the IAM role, see [Real-time log configuration IAM + role](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) + in the *Amazon CloudFront Developer Guide*. + """ + stream_arn: str + """ + The Amazon Resource Name (ARN) of the Kinesis data stream where you are + sending real-time log data. + """ + +@dataclass(kw_only=True) +class LambdaFunctionAssociation(_SerdeShape): + """A complex type that contains a Lambda@Edge function association.""" + + lambda_function_arn: str + """ + The ARN of the Lambda@Edge function. You must specify the ARN of a + function version; you can't specify an alias or $LATEST. + """ + event_type: str + """ + Specifies the event type that triggers a Lambda@Edge function + invocation. You can specify the following values: + + - `viewer-request`: The function executes when CloudFront receives a + request from a viewer and before it checks to see whether the + requested object is in the edge cache. + + - `origin-request`: The function executes only when CloudFront sends a + request to your origin. When the requested object is in the edge + cache, the function doesn't execute. + + - `origin-response`: The function executes after CloudFront receives a + response from the origin and before it caches the object in the + response. When the requested object is in the edge cache, the function + doesn't execute. + + - `viewer-response`: The function executes before CloudFront returns the + requested object to the viewer. The function executes regardless of + whether the object was already in the edge cache. + + If the origin returns an HTTP status code other than HTTP 200 (OK), + the function doesn't execute. + """ + include_body: bool | None = ... + """ + A flag that allows a Lambda@Edge function to have read access to the + body content. For more information, see [Accessing the Request Body by + Choosing the Include Body + Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) + in the Amazon CloudFront Developer Guide. + """ + +@dataclass(kw_only=True) +class LambdaFunctionAssociations(_SerdeShape): + """ + A complex type that specifies a list of Lambda@Edge functions + associations for a cache behavior. + + If you want to invoke one or more Lambda@Edge functions triggered by + requests that match the `PathPattern` of the cache behavior, specify the + applicable values for `Quantity` and `Items`. Note that there can be up + to 4 `LambdaFunctionAssociation` items in this list (one for each + possible value of `EventType`) and each `EventType` can be associated + with only one function. + + If you don't want to invoke any Lambda@Edge functions for the requests + that match `PathPattern`, specify `0` for `Quantity` and omit `Items`. + """ + + quantity: int + """The number of Lambda@Edge function associations for this cache behavior.""" + items: list[LambdaFunctionAssociation] | None = ... + """ + **Optional**: A complex type that contains `LambdaFunctionAssociation` + items for this cache behavior. If `Quantity` is `0`, you can omit + `Items`. + """ + +@dataclass(kw_only=True) +class ListAnycastIpListsInput(_SerdeShape): + """Dataclass for ListAnycastIpListsInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of Anycast static IP lists that you want returned in + the response. + """ + +@dataclass(kw_only=True) +class ListAnycastIpListsOutput(_SerdeShape): + """Dataclass for ListAnycastIpListsOutput structure.""" + + anycast_ip_lists: AnycastIpListCollection | None = ... + """Root level tag for the `AnycastIpLists` parameters.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListCachePoliciesInput(_SerdeShape): + """Dataclass for ListCachePoliciesInput structure.""" + + type: str | None = ... + """ + A filter to return only the specified kinds of cache policies. Valid + values are: + + - `managed` -- Returns only the managed policies created by Amazon Web + Services. + + - `custom` -- Returns only the custom policies created in your Amazon + Web Services account. + """ + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of cache policies. The response includes cache policies in the + list that occur after the marker. To get the next page of the list, set + this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of cache policies that you want in the response.""" + +@dataclass(kw_only=True) +class ListCachePoliciesOutput(_SerdeShape): + """Dataclass for ListCachePoliciesOutput structure.""" + + cache_policy_list: CachePolicyList | None = ... + """A list of cache policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListCloudFrontOriginAccessIdentitiesInput(_SerdeShape): + """The request to list origin access identities.""" + + marker: str | None = ... + """ + Use this when paginating results to indicate where to begin in your list + of origin access identities. The results include identities in the list + that occur after the marker. To get the next page of results, set the + `Marker` to the value of the `NextMarker` from the current page's + response (which is also the ID of the last identity on that page). + """ + max_items: int | None = ... + """ + The maximum number of origin access identities you want in the response + body. + """ + +@dataclass(kw_only=True) +class ListCloudFrontOriginAccessIdentitiesOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + cloud_front_origin_access_identity_list: ( + CloudFrontOriginAccessIdentityList | None + ) = ... + """The `CloudFrontOriginAccessIdentityList` type.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListConflictingAliasesInput(_SerdeShape): + """Dataclass for ListConflictingAliasesInput structure.""" + + distribution_id: str | None = ... + """ + The ID of a standard distribution in your account that has an attached + TLS certificate that includes the provided alias. + """ + alias: str | None = ... + """The alias (also called a CNAME) to search for conflicting aliases.""" + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in the + list of conflicting aliases. The response includes conflicting aliases + in the list that occur after the marker. To get the next page of the + list, set this field's value to the value of `NextMarker` from the + current page's response. + """ + max_items: int | None = ... + """The maximum number of conflicting aliases that you want in the response.""" + +@dataclass(kw_only=True) +class ListConflictingAliasesOutput(_SerdeShape): + """Dataclass for ListConflictingAliasesOutput structure.""" + + conflicting_aliases_list: ConflictingAliasesList | None = ... + """A list of conflicting aliases.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListConnectionFunctionsInput(_SerdeShape): + """Dataclass for ListConnectionFunctionsInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of connection functions that you want returned in the + response. + """ + stage: str | None = ... + """The connection function's stage.""" + +@dataclass(kw_only=True) +class ListConnectionFunctionsOutput(_SerdeShape): + """Dataclass for ListConnectionFunctionsOutput structure.""" + + next_marker: str | None = ... + """ + Indicates the next page of connection functions. To get the next page of + the list, use this value in the `Marker` field of your request. + """ + connection_functions: list[ConnectionFunctionSummary] | None = ... + """A list of connection functions.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListConnectionGroupsInput(_SerdeShape): + """Dataclass for ListConnectionGroupsInput structure.""" + + association_filter: ConnectionGroupAssociationFilter | None = ... + """Filter by associated Anycast IP list ID.""" + marker: str | None = ... + """The marker for the next set of connection groups to retrieve.""" + max_items: int | None = ... + """The maximum number of connection groups to return.""" + +@dataclass(kw_only=True) +class ListConnectionGroupsOutput(_SerdeShape): + """Dataclass for ListConnectionGroupsOutput structure.""" + + next_marker: str | None = ... + """ + A token used for pagination of results returned in the response. You can + use the token from the previous request to define where the current + request should begin. + """ + connection_groups: list[ConnectionGroupSummary] | None = ... + """The list of connection groups that you retrieved.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListContinuousDeploymentPoliciesInput(_SerdeShape): + """Dataclass for ListContinuousDeploymentPoliciesInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of continuous deployment policies. The response includes + policies in the list that occur after the marker. To get the next page + of the list, set this field's value to the value of `NextMarker` from + the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of continuous deployment policies that you want + returned in the response. + """ + +@dataclass(kw_only=True) +class ListContinuousDeploymentPoliciesOutput(_SerdeShape): + """Dataclass for ListContinuousDeploymentPoliciesOutput structure.""" + + continuous_deployment_policy_list: ContinuousDeploymentPolicyList | None = ... + """A list of continuous deployment policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByAnycastIpListIdInput(_SerdeShape): + """Dataclass for ListDistributionsByAnycastIpListIdInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of distributions that you want returned in the + response. + """ + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + +@dataclass(kw_only=True) +class ListDistributionsByAnycastIpListIdOutput(_SerdeShape): + """Dataclass for ListDistributionsByAnycastIpListIdOutput structure.""" + + distribution_list: DistributionList | None = ... + """A distribution list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByCachePolicyIdInput(_SerdeShape): + """Dataclass for ListDistributionsByCachePolicyIdInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distribution IDs. The response includes distribution IDs in + the list that occur after the marker. To get the next page of the list, + set this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of distribution IDs that you want in the response.""" + cache_policy_id: str | None = ... + """ + The ID of the cache policy whose associated distribution IDs you want to + list. + """ + +@dataclass(kw_only=True) +class ListDistributionsByCachePolicyIdOutput(_SerdeShape): + """Dataclass for ListDistributionsByCachePolicyIdOutput structure.""" + + distribution_id_list: DistributionIdList | None = ... + """A list of distribution IDs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByConnectionFunctionInput(_SerdeShape): + """Dataclass for ListDistributionsByConnectionFunctionInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of distributions that you want returned in the + response. + """ + connection_function_identifier: str | None = ... + """The distributions by connection function identifier.""" + +@dataclass(kw_only=True) +class ListDistributionsByConnectionFunctionOutput(_SerdeShape): + """Dataclass for ListDistributionsByConnectionFunctionOutput structure.""" + + distribution_list: DistributionList | None = ... + """A distribution list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByConnectionModeInput(_SerdeShape): + """Dataclass for ListDistributionsByConnectionModeInput structure.""" + + marker: str | None = ... + """The marker for the next set of distributions to retrieve.""" + max_items: int | None = ... + """The maximum number of distributions to return.""" + connection_mode: str | None = ... + """ + This field specifies whether the connection mode is through a standard + distribution (direct) or a multi-tenant distribution with distribution + tenants (tenant-only). + """ + +@dataclass(kw_only=True) +class ListDistributionsByConnectionModeOutput(_SerdeShape): + """Dataclass for ListDistributionsByConnectionModeOutput structure.""" + + distribution_list: DistributionList | None = ... + """A distribution list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByKeyGroupInput(_SerdeShape): + """Dataclass for ListDistributionsByKeyGroupInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distribution IDs. The response includes distribution IDs in + the list that occur after the marker. To get the next page of the list, + set this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of distribution IDs that you want in the response.""" + key_group_id: str | None = ... + """ + The ID of the key group whose associated distribution IDs you are + listing. + """ + +@dataclass(kw_only=True) +class ListDistributionsByKeyGroupOutput(_SerdeShape): + """Dataclass for ListDistributionsByKeyGroupOutput structure.""" + + distribution_id_list: DistributionIdList | None = ... + """A list of distribution IDs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByOriginRequestPolicyIdInput(_SerdeShape): + """Dataclass for ListDistributionsByOriginRequestPolicyIdInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distribution IDs. The response includes distribution IDs in + the list that occur after the marker. To get the next page of the list, + set this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of distribution IDs that you want in the response.""" + origin_request_policy_id: str | None = ... + """ + The ID of the origin request policy whose associated distribution IDs + you want to list. + """ + +@dataclass(kw_only=True) +class ListDistributionsByOriginRequestPolicyIdOutput(_SerdeShape): + """Dataclass for ListDistributionsByOriginRequestPolicyIdOutput structure.""" + + distribution_id_list: DistributionIdList | None = ... + """A list of distribution IDs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByOwnedResourceInput(_SerdeShape): + """Dataclass for ListDistributionsByOwnedResourceInput structure.""" + + resource_arn: str | None = ... + """ + The ARN of the CloudFront resource that you've shared with other Amazon + Web Services accounts. + """ + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distributions. The response includes distributions in the + list that occur after the marker. To get the next page of the list, set + this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of distributions to return.""" + +@dataclass(kw_only=True) +class ListDistributionsByOwnedResourceOutput(_SerdeShape): + """Dataclass for ListDistributionsByOwnedResourceOutput structure.""" + + distribution_list: DistributionIdOwnerList | None = ... + """The list of distributions that are using the shared resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByRealtimeLogConfigInput(_SerdeShape): + """Dataclass for ListDistributionsByRealtimeLogConfigInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distributions. The response includes distributions in the + list that occur after the marker. To get the next page of the list, set + this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """The maximum number of distributions that you want in the response.""" + realtime_log_config_name: str | None = ... + """ + The name of the real-time log configuration whose associated + distributions you want to list. + """ + realtime_log_config_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the real-time log configuration whose + associated distributions you want to list. + """ + +@dataclass(kw_only=True) +class ListDistributionsByRealtimeLogConfigOutput(_SerdeShape): + """Dataclass for ListDistributionsByRealtimeLogConfigOutput structure.""" + + distribution_list: DistributionList | None = ... + """A distribution list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByResponseHeadersPolicyIdInput(_SerdeShape): + """Dataclass for ListDistributionsByResponseHeadersPolicyIdInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of distribution IDs. The response includes distribution IDs in + the list that occur after the marker. To get the next page of the list, + set this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """ + The maximum number of distribution IDs that you want to get in the + response. + """ + response_headers_policy_id: str | None = ... + """ + The ID of the response headers policy whose associated distribution IDs + you want to list. + """ + +@dataclass(kw_only=True) +class ListDistributionsByResponseHeadersPolicyIdOutput(_SerdeShape): + """ + Dataclass for ListDistributionsByResponseHeadersPolicyIdOutput + structure. + """ + + distribution_id_list: DistributionIdList | None = ... + """A list of distribution IDs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByTrustStoreInput(_SerdeShape): + """Dataclass for ListDistributionsByTrustStoreInput structure.""" + + trust_store_identifier: str | None = ... + """The distributions by trust store identifier.""" + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of distributions that you want returned in the + response. + """ + +@dataclass(kw_only=True) +class ListDistributionsByTrustStoreOutput(_SerdeShape): + """Dataclass for ListDistributionsByTrustStoreOutput structure.""" + + distribution_list: DistributionList | None = ... + """A distribution list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByVpcOriginIdInput(_SerdeShape): + """Dataclass for ListDistributionsByVpcOriginIdInput structure.""" + + marker: str | None = ... + """The marker associated with the VPC origin distributions list.""" + max_items: int | None = ... + """The maximum number of items included in the list.""" + vpc_origin_id: str | None = ... + """The VPC origin ID.""" + +@dataclass(kw_only=True) +class ListDistributionsByVpcOriginIdOutput(_SerdeShape): + """Dataclass for ListDistributionsByVpcOriginIdOutput structure.""" + + distribution_id_list: DistributionIdList | None = ... + """A list of distribution IDs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsByWebACLIdInput(_SerdeShape): + """ + The request to list distributions that are associated with a specified + WAF web ACL. + """ + + marker: str | None = ... + """ + Use `Marker` and `MaxItems` to control pagination of results. If you + have more than `MaxItems` distributions that satisfy the request, the + response includes a `NextMarker` element. To get the next page of + results, submit another request. For the value of `Marker`, specify the + value of `NextMarker` from the last response. (For the first request, + omit `Marker`.) + """ + max_items: int | None = ... + """ + The maximum number of distributions that you want CloudFront to return + in the response body. The maximum and default values are both 100. + """ + web_acl_id: str | None = ... + """ + The ID of the WAF web ACL that you want to list the associated + distributions. If you specify \"null\" for the ID, the request returns a + list of the distributions that aren't associated with a web ACL. + + For WAFV2, this is the ARN of the web ACL, such as + `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`. + + For WAF Classic, this is the ID of the web ACL, such as + `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`. + """ + +@dataclass(kw_only=True) +class ListDistributionsByWebACLIdOutput(_SerdeShape): + """ + The response to a request to list the distributions that are associated + with a specified WAF web ACL. + """ + + distribution_list: DistributionList | None = ... + """The `DistributionList` type.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionsInput(_SerdeShape): + """The request to list your distributions.""" + + marker: str | None = ... + """ + Use this when paginating results to indicate where to begin in your list + of distributions. The results include distributions in the list that + occur after the marker. To get the next page of results, set the + `Marker` to the value of the `NextMarker` from the current page's + response (which is also the ID of the last distribution on that page). + """ + max_items: int | None = ... + """The maximum number of distributions you want in the response body.""" + +@dataclass(kw_only=True) +class ListDistributionsOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution_list: DistributionList | None = ... + """The `DistributionList` type.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionTenantsByCustomizationInput(_SerdeShape): + """Dataclass for ListDistributionTenantsByCustomizationInput structure.""" + + web_acl_arn: str | None = ... + """Filter by the ARN of the associated WAF web ACL.""" + certificate_arn: str | None = ... + """Filter by the ARN of the associated ACM certificate.""" + marker: str | None = ... + """The marker for the next set of results.""" + max_items: int | None = ... + """ + The maximum number of distribution tenants to return by the specified + customization. + """ + +@dataclass(kw_only=True) +class ListDistributionTenantsByCustomizationOutput(_SerdeShape): + """Dataclass for ListDistributionTenantsByCustomizationOutput structure.""" + + next_marker: str | None = ... + """ + A token used for pagination of results returned in the response. You can + use the token from the previous request to define where the current + request should begin. + """ + distribution_tenant_list: list[DistributionTenantSummary] | None = ... + """A list of distribution tenants with the specified customization.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDistributionTenantsInput(_SerdeShape): + """Dataclass for ListDistributionTenantsInput structure.""" + + association_filter: DistributionTenantAssociationFilter | None = ... + """Filter by the associated distribution ID or connection group ID.""" + marker: str | None = ... + """The marker for the next set of results.""" + max_items: int | None = ... + """The maximum number of distribution tenants to return.""" + +@dataclass(kw_only=True) +class ListDistributionTenantsOutput(_SerdeShape): + """Dataclass for ListDistributionTenantsOutput structure.""" + + next_marker: str | None = ... + """ + A token used for pagination of results returned in the response. You can + use the token from the previous request to define where the current + request should begin. + """ + distribution_tenant_list: list[DistributionTenantSummary] | None = ... + """The list of distribution tenants that you retrieved.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDomainConflictsInput(_SerdeShape): + """Dataclass for ListDomainConflictsInput structure.""" + + domain: str | None = ... + """The domain to check for conflicts.""" + domain_control_validation_resource: DistributionResourceId | None = ... + """ + The distribution resource identifier. This can be the standard + distribution or distribution tenant that has a valid certificate, which + covers the domain that you specify. + """ + max_items: int | None = ... + """The maximum number of domain conflicts to return.""" + marker: str | None = ... + """The marker for the next set of domain conflicts.""" + +@dataclass(kw_only=True) +class ListDomainConflictsOutput(_SerdeShape): + """Dataclass for ListDomainConflictsOutput structure.""" + + domain_conflicts: list[DomainConflict] | None = ... + """Contains details about the domain conflicts.""" + next_marker: str | None = ... + """ + A token used for pagination of results returned in the response. You can + use the token from the previous request to define where the current + request should begin. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListFieldLevelEncryptionConfigsInput(_SerdeShape): + """Dataclass for ListFieldLevelEncryptionConfigsInput structure.""" + + marker: str | None = ... + """ + Use this when paginating results to indicate where to begin in your list + of configurations. The results include configurations in the list that + occur after the marker. To get the next page of results, set the + `Marker` to the value of the `NextMarker` from the current page's + response (which is also the ID of the last configuration on that page). + """ + max_items: int | None = ... + """ + The maximum number of field-level encryption configurations you want in + the response body. + """ + +@dataclass(kw_only=True) +class ListFieldLevelEncryptionConfigsOutput(_SerdeShape): + """Dataclass for ListFieldLevelEncryptionConfigsOutput structure.""" + + field_level_encryption_list: FieldLevelEncryptionList | None = ... + """ + Returns a list of all field-level encryption configurations that have + been created in CloudFront for this account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListFieldLevelEncryptionProfilesInput(_SerdeShape): + """Dataclass for ListFieldLevelEncryptionProfilesInput structure.""" + + marker: str | None = ... + """ + Use this when paginating results to indicate where to begin in your list + of profiles. The results include profiles in the list that occur after + the marker. To get the next page of results, set the `Marker` to the + value of the `NextMarker` from the current page's response (which is + also the ID of the last profile on that page). + """ + max_items: int | None = ... + """ + The maximum number of field-level encryption profiles you want in the + response body. + """ + +@dataclass(kw_only=True) +class ListFieldLevelEncryptionProfilesOutput(_SerdeShape): + """Dataclass for ListFieldLevelEncryptionProfilesOutput structure.""" + + field_level_encryption_profile_list: FieldLevelEncryptionProfileList | None = ... + """ + Returns a list of the field-level encryption profiles that have been + created in CloudFront for this account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListFunctionsInput(_SerdeShape): + """Dataclass for ListFunctionsInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of functions. The response includes functions in the list that + occur after the marker. To get the next page of the list, set this + field's value to the value of `NextMarker` from the current page's + response. + """ + max_items: int | None = ... + """The maximum number of functions that you want in the response.""" + stage: str | None = ... + """ + An optional filter to return only the functions that are in the + specified stage, either `DEVELOPMENT` or `LIVE`. + """ + +@dataclass(kw_only=True) +class ListFunctionsOutput(_SerdeShape): + """Dataclass for ListFunctionsOutput structure.""" + + function_list: FunctionList | None = ... + """A list of CloudFront functions.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListInvalidationsForDistributionTenantInput(_SerdeShape): + """Dataclass for ListInvalidationsForDistributionTenantInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + marker: str | None = ... + """ + Use this parameter when paginating results to indicate where to begin in + your list of invalidation batches. Because the results are returned in + decreasing order from most recent to oldest, the most recent results are + on the first page, the second page will contain earlier results, and so + on. To get the next page of results, set `Marker` to the value of the + `NextMarker` from the current page's response. This value is the same + as the ID of the last invalidation batch on that page. + """ + max_items: int | None = ... + """ + The maximum number of invalidations to return for the distribution + tenant. + """ + +@dataclass(kw_only=True) +class ListInvalidationsForDistributionTenantOutput(_SerdeShape): + """Dataclass for ListInvalidationsForDistributionTenantOutput structure.""" + + invalidation_list: InvalidationList | None = ... + """ + The `InvalidationList` complex type describes the list of invalidation + objects. For more information about invalidation, see [Invalidating + Objects (Web Distributions + Only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) + in the *Amazon CloudFront Developer Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListInvalidationsInput(_SerdeShape): + """The request to list invalidations.""" + + distribution_id: str | None = ... + """The distribution's ID.""" + marker: str | None = ... + """ + Use this parameter when paginating results to indicate where to begin in + your list of invalidation batches. Because the results are returned in + decreasing order from most recent to oldest, the most recent results are + on the first page, the second page will contain earlier results, and so + on. To get the next page of results, set `Marker` to the value of the + `NextMarker` from the current page's response. This value is the same + as the ID of the last invalidation batch on that page. + """ + max_items: int | None = ... + """ + The maximum number of invalidation batches that you want in the response + body. + """ + +@dataclass(kw_only=True) +class ListInvalidationsOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + invalidation_list: InvalidationList | None = ... + """Information about invalidation batches.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeyGroupsInput(_SerdeShape): + """Dataclass for ListKeyGroupsInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of key groups. The response includes key groups in the list + that occur after the marker. To get the next page of the list, set this + field's value to the value of `NextMarker` from the current page's + response. + """ + max_items: int | None = ... + """The maximum number of key groups that you want in the response.""" + +@dataclass(kw_only=True) +class ListKeyGroupsOutput(_SerdeShape): + """Dataclass for ListKeyGroupsOutput structure.""" + + key_group_list: KeyGroupList | None = ... + """A list of key groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeyValueStoresInput(_SerdeShape): + """Dataclass for ListKeyValueStoresInput structure.""" + + marker: str | None = ... + """The marker associated with the key value stores list.""" + max_items: int | None = ... + """The maximum number of items in the key value stores list.""" + status: str | None = ... + """The status of the request for the key value stores list.""" + +@dataclass(kw_only=True) +class ListKeyValueStoresOutput(_SerdeShape): + """Dataclass for ListKeyValueStoresOutput structure.""" + + key_value_store_list: KeyValueStoreList | None = ... + """The resulting key value stores list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListOriginAccessControlsInput(_SerdeShape): + """Dataclass for ListOriginAccessControlsInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of origin access controls. The response includes the items in + the list that occur after the marker. To get the next page of the list, + set this field's value to the value of `NextMarker` from the current + page's response. + """ + max_items: int | None = ... + """ + The maximum number of origin access controls that you want in the + response. + """ + +@dataclass(kw_only=True) +class ListOriginAccessControlsOutput(_SerdeShape): + """Dataclass for ListOriginAccessControlsOutput structure.""" + + origin_access_control_list: OriginAccessControlList | None = ... + """A list of origin access controls.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListOriginRequestPoliciesInput(_SerdeShape): + """Dataclass for ListOriginRequestPoliciesInput structure.""" + + type: str | None = ... + """ + A filter to return only the specified kinds of origin request policies. + Valid values are: + + - `managed` -- Returns only the managed policies created by Amazon Web + Services. + + - `custom` -- Returns only the custom policies created in your Amazon + Web Services account. + """ + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of origin request policies. The response includes origin + request policies in the list that occur after the marker. To get the + next page of the list, set this field's value to the value of + `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of origin request policies that you want in the + response. + """ + +@dataclass(kw_only=True) +class ListOriginRequestPoliciesOutput(_SerdeShape): + """Dataclass for ListOriginRequestPoliciesOutput structure.""" + + origin_request_policy_list: OriginRequestPolicyList | None = ... + """A list of origin request policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPublicKeysInput(_SerdeShape): + """Dataclass for ListPublicKeysInput structure.""" + + marker: str | None = ... + """ + Use this when paginating results to indicate where to begin in your list + of public keys. The results include public keys in the list that occur + after the marker. To get the next page of results, set the `Marker` to + the value of the `NextMarker` from the current page's response (which + is also the ID of the last public key on that page). + """ + max_items: int | None = ... + """The maximum number of public keys you want in the response body.""" + +@dataclass(kw_only=True) +class ListPublicKeysOutput(_SerdeShape): + """Dataclass for ListPublicKeysOutput structure.""" + + public_key_list: PublicKeyList | None = ... + """ + Returns a list of all public keys that have been added to CloudFront for + this account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRealtimeLogConfigsInput(_SerdeShape): + """Dataclass for ListRealtimeLogConfigsInput structure.""" + + max_items: int | None = ... + """ + The maximum number of real-time log configurations that you want in the + response. + """ + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of real-time log configurations. The response includes + real-time log configurations in the list that occur after the marker. To + get the next page of the list, set this field's value to the value of + `NextMarker` from the current page's response. + """ + +@dataclass(kw_only=True) +class ListRealtimeLogConfigsOutput(_SerdeShape): + """Dataclass for ListRealtimeLogConfigsOutput structure.""" + + realtime_log_configs: RealtimeLogConfigs | None = ... + """A list of real-time log configurations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListResponseHeadersPoliciesInput(_SerdeShape): + """Dataclass for ListResponseHeadersPoliciesInput structure.""" + + type: str | None = ... + """ + A filter to get only the specified kind of response headers policies. + Valid values are: + + - `managed` -- Gets only the managed policies created by Amazon Web + Services. + + - `custom` -- Gets only the custom policies created in your Amazon Web + Services account. + """ + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list of response headers policies. The response includes response + headers policies in the list that occur after the marker. To get the + next page of the list, set this field's value to the value of + `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of response headers policies that you want to get in + the response. + """ + +@dataclass(kw_only=True) +class ListResponseHeadersPoliciesOutput(_SerdeShape): + """Dataclass for ListResponseHeadersPoliciesOutput structure.""" + + response_headers_policy_list: ResponseHeadersPolicyList | None = ... + """A list of response headers policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStreamingDistributionsInput(_SerdeShape): + """The request to list your streaming distributions.""" + + marker: str | None = ... + """The value that you provided for the `Marker` request parameter.""" + max_items: int | None = ... + """The value that you provided for the `MaxItems` request parameter.""" + +@dataclass(kw_only=True) +class ListStreamingDistributionsOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution_list: StreamingDistributionList | None = ... + """The `StreamingDistributionList` type.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """The request to list tags for a CloudFront resource.""" + + resource: str | None = ... + """An ARN of a CloudFront resource.""" + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + tags: Tags + """A complex type that contains zero or more `Tag` elements.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTrustStoresInput(_SerdeShape): + """Dataclass for ListTrustStoresInput structure.""" + + marker: str | None = ... + """ + Use this field when paginating results to indicate where to begin in + your list. The response includes items in the list that occur after the + marker. To get the next page of the list, set this field's value to the + value of `NextMarker` from the current page's response. + """ + max_items: int | None = ... + """ + The maximum number of trust stores that you want returned in the + response. + """ + +@dataclass(kw_only=True) +class ListTrustStoresOutput(_SerdeShape): + """Dataclass for ListTrustStoresOutput structure.""" + + next_marker: str | None = ... + """ + Indicates the next page of trust stores. To get the next page of the + list, use this value in the `Marker` field of your request. + """ + trust_store_list: list[TrustStoreSummary] | None = ... + """The trust store list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListVpcOriginsInput(_SerdeShape): + """Dataclass for ListVpcOriginsInput structure.""" + + marker: str | None = ... + """The marker associated with the VPC origins list.""" + max_items: int | None = ... + """The maximum number of items included in the list.""" + +@dataclass(kw_only=True) +class ListVpcOriginsOutput(_SerdeShape): + """Dataclass for ListVpcOriginsOutput structure.""" + + vpc_origin_list: VpcOriginList | None = ... + """List of VPC origins.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LoggingConfig(_SerdeShape): + """ + A complex type that specifies whether access logs are written for the + distribution. + + Note: + If you already enabled standard logging (legacy) and you want to enable + standard logging (v2) to send your access logs to Amazon S3, we + recommend that you specify a *different* Amazon S3 bucket or use a + *separate path* in the same bucket (for example, use a log prefix or + partitioning). This helps you keep track of which log files are + associated with which logging subscription and prevents log files from + overwriting each other. For more information, see [Standard logging + (access + logs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) + in the *Amazon CloudFront Developer Guide*. + """ + + enabled: bool = ... + """ + Specifies whether you want CloudFront to save access logs to an Amazon + S3 bucket. If you don't want to enable logging when you create a + distribution or if you want to disable logging for an existing + distribution, specify `false` for `Enabled`, and specify empty `Bucket` + and `Prefix` elements. If you specify `false` for `Enabled` but you + specify values for `Bucket` and `prefix`, the values are automatically + deleted. + """ + include_cookies: bool = ... + """ + Specifies whether you want CloudFront to include cookies in access logs, + specify `true` for `IncludeCookies`. If you choose to include cookies in + logs, CloudFront logs all cookies regardless of how you configure the + cache behaviors for this distribution. If you don't want to include + cookies when you create a distribution or if you want to disable include + cookies for an existing distribution, specify `false` for + `IncludeCookies`. + """ + bucket: str = ... + """ + The Amazon S3 bucket to store the access logs in, for example, + `amzn-s3-demo-bucket.s3.amazonaws.com`. + """ + prefix: str = ... + """ + An optional string that you want CloudFront to prefix to the access log + `filenames` for this distribution, for example, `myprefix/`. If you want + to enable logging, but you don't want to specify a prefix, you still + must include an empty `Prefix` element in the `Logging` element. + """ + +@dataclass(kw_only=True) +class ManagedCertificateDetails(_SerdeShape): + """Contains details about the CloudFront managed ACM certificate.""" + + certificate_arn: str | None = ... + """The ARN of the CloudFront managed ACM certificate.""" + certificate_status: str | None = ... + """ + The status of the CloudFront managed ACM certificate. + + Note: + Your distribution tenant will be updated with the latest certificate + status. When calling the + [UpdateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionTenant.html) + operation, use the latest value for the `ETag`. + """ + validation_token_host: str | None = ... + """ + Contains details about the validation token host of the specified + CloudFront managed ACM certificate. + + - For `cloudfront`, CloudFront will automatically serve the validation + token. Choose this mode if you can point the domain's DNS to + CloudFront immediately. + + - For `self-hosted`, you serve the validation token from your existing + infrastructure. Choose this mode when you need to maintain current + traffic flow while your certificate is being issued. You can place the + validation token at the well-known path on your existing web server, + wait for ACM to validate and issue the certificate, and then update + your DNS to point to CloudFront. + + Note: + This setting only affects the initial certificate request. Once the DNS + points to CloudFront, all future certificate renewals are automatically + handled through CloudFront. + """ + validation_token_details: list[ValidationTokenDetail] | None = ... + """ + Contains details about the validation token of the specified CloudFront + managed ACM certificate. + """ + +@dataclass(kw_only=True) +class ManagedCertificateRequest(_SerdeShape): + """ + An object that represents the request for the Amazon CloudFront managed + ACM certificate. + """ + + validation_token_host: str + """ + Specify how the HTTP validation token will be served when requesting the + CloudFront managed ACM certificate. + + - For `cloudfront`, CloudFront will automatically serve the validation + token. Choose this mode if you can point the domain's DNS to + CloudFront immediately. + + - For `self-hosted`, you serve the validation token from your existing + infrastructure. Choose this mode when you need to maintain current + traffic flow while your certificate is being issued. You can place the + validation token at the well-known path on your existing web server, + wait for ACM to validate and issue the certificate, and then update + your DNS to point to CloudFront. + """ + primary_domain_name: str | None = ... + """ + The primary domain name associated with the CloudFront managed ACM + certificate. + """ + certificate_transparency_logging_preference: str | None = ... + """ + You can opt out of certificate transparency logging by specifying the + `disabled` option. Opt in by specifying `enabled`. For more information, + see [Certificate Transparency + Logging](https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency) + in the *Certificate Manager User Guide*. + """ + +class ManagedCertificateStatus(UnknownEnumMixin, StrEnum): + PENDING_VALIDATION = "pending-validation" + ISSUED = "issued" + INACTIVE = "inactive" + EXPIRED = "expired" + VALIDATION_TIMED_OUT = "validation-timed-out" + REVOKED = "revoked" + FAILED = "failed" + +class Method(UnknownEnumMixin, StrEnum): + GET = "GET" + HEAD = "HEAD" + POST = "POST" + PUT = "PUT" + PATCH = "PATCH" + OPTIONS = "OPTIONS" + DELETE = "DELETE" + +class MinimumProtocolVersion(UnknownEnumMixin, StrEnum): + SS_LV3 = "SSLv3" + TL_SV1 = "TLSv1" + TL_SV1_2016 = "TLSv1_2016" + TL_SV1_1_2016 = "TLSv1.1_2016" + TL_SV1_2_2018 = "TLSv1.2_2018" + TL_SV1_2_2019 = "TLSv1.2_2019" + TL_SV1_2_2021 = "TLSv1.2_2021" + TL_SV1_3_2025 = "TLSv1.3_2025" + TL_SV1_2_2025 = "TLSv1.2_2025" + +@dataclass(kw_only=True) +class MissingBody(ServiceError, _SerdeShape): + """ + This operation requires a body. Ensure that the body is present and the + `Content-Type` header is set. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MonitoringSubscription(_SerdeShape): + """ + A monitoring subscription. This structure contains information about + whether additional CloudWatch metrics are enabled for a given CloudFront + distribution. + """ + + realtime_metrics_subscription_config: RealtimeMetricsSubscriptionConfig | None = ... + """A subscription configuration for additional CloudWatch metrics.""" + +@dataclass(kw_only=True) +class MonitoringSubscriptionAlreadyExists(ServiceError, _SerdeShape): + """A monitoring subscription already exists for the specified distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchCachePolicy(ServiceError, _SerdeShape): + """The cache policy does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchCloudFrontOriginAccessIdentity(ServiceError, _SerdeShape): + """The specified origin access identity does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchContinuousDeploymentPolicy(ServiceError, _SerdeShape): + """The continuous deployment policy doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchDistribution(ServiceError, _SerdeShape): + """The specified distribution does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchFieldLevelEncryptionConfig(ServiceError, _SerdeShape): + """The specified configuration for field-level encryption doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchFieldLevelEncryptionProfile(ServiceError, _SerdeShape): + """The specified profile for field-level encryption doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchFunctionExists(ServiceError, _SerdeShape): + """The function does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchInvalidation(ServiceError, _SerdeShape): + """The specified invalidation does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchMonitoringSubscription(ServiceError, _SerdeShape): + """A monitoring subscription does not exist for the specified distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchOrigin(ServiceError, _SerdeShape): + """No origin exists with the specified `Origin Id`.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchOriginAccessControl(ServiceError, _SerdeShape): + """The origin access control does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchOriginRequestPolicy(ServiceError, _SerdeShape): + """The origin request policy does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchPublicKey(ServiceError, _SerdeShape): + """The specified public key doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchRealtimeLogConfig(ServiceError, _SerdeShape): + """The real-time log configuration does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchResource(ServiceError, _SerdeShape): + """A resource that was specified is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchResponseHeadersPolicy(ServiceError, _SerdeShape): + """The response headers policy does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchStreamingDistribution(ServiceError, _SerdeShape): + """The specified streaming distribution does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Origin(_SerdeShape): + """ + An origin. + + An origin is the location where content is stored, and from which + CloudFront gets content to serve to viewers. To specify an origin: + + - Use `S3OriginConfig` to specify an Amazon S3 bucket that is not + configured with static website hosting. + + - Use `VpcOriginConfig` to specify a VPC origin. + + - Use `CustomOriginConfig` to specify all other kinds of origins, + including: + + - An Amazon S3 bucket that is configured with static website hosting + + - An Elastic Load Balancing load balancer + + - An Elemental MediaPackage endpoint + + - An Elemental MediaStore container + + - Any other HTTP server, running on an Amazon EC2 instance or any + other kind of host + + For the current maximum number of origins that you can specify per + distribution, see [General Quotas on Web + Distributions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html#limits-web-distributions) + in the *Amazon CloudFront Developer Guide* (quotas were formerly + referred to as limits). + """ + + id: str + """ + A unique identifier for the origin. This value must be unique within the + distribution. + + Use this value to specify the `TargetOriginId` in a `CacheBehavior` or + `DefaultCacheBehavior`. + """ + domain_name: str + """ + The domain name for the origin. + + For more information, see [Origin Domain + Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) + in the *Amazon CloudFront Developer Guide*. + """ + origin_path: str | None = ... + """ + An optional path that CloudFront appends to the origin domain name when + CloudFront requests content from the origin. + + For more information, see [Origin + Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) + in the *Amazon CloudFront Developer Guide*. + """ + custom_headers: CustomHeaders | None = ... + """ + A list of HTTP header names and values that CloudFront adds to the + requests that it sends to the origin. + + For more information, see [Adding Custom Headers to Origin + Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) + in the *Amazon CloudFront Developer Guide*. + """ + s3_origin_config: S3OriginConfig | None = ... + """ + Use this type to specify an origin that is an Amazon S3 bucket that is + not configured with static website hosting. To specify any other type of + origin, including an Amazon S3 bucket that is configured with static + website hosting, use the `CustomOriginConfig` type instead. + """ + custom_origin_config: CustomOriginConfig | None = ... + """ + Use this type to specify an origin that is not an Amazon S3 bucket, with + one exception. If the Amazon S3 bucket is configured with static website + hosting, use this type. If the Amazon S3 bucket is not configured with + static website hosting, use the `S3OriginConfig` type instead. + """ + vpc_origin_config: VpcOriginConfig | None = ... + """The VPC origin configuration.""" + connection_attempts: int | None = ... + """ + The number of times that CloudFront attempts to connect to the origin. + The minimum number is 1, the maximum is 3, and the default (if you + don't specify otherwise) is 3. + + For a custom origin (including an Amazon S3 bucket that's configured + with static website hosting), this value also specifies the number of + times that CloudFront attempts to get a response from the origin, in the + case of an [Origin Response + Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout). + + For more information, see [Origin Connection + Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) + in the *Amazon CloudFront Developer Guide*. + """ + connection_timeout: int | None = ... + """ + The number of seconds that CloudFront waits when trying to establish a + connection to the origin. The minimum timeout is 1 second, the maximum + is 10 seconds, and the default (if you don't specify otherwise) is 10 + seconds. + + For more information, see [Origin Connection + Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) + in the *Amazon CloudFront Developer Guide*. + """ + response_completion_timeout: int | None = ... + """ + The time (in seconds) that a request from CloudFront to the origin can + stay open and wait for a response. If the complete response isn't + received from the origin by this time, CloudFront ends the connection. + + The value for `ResponseCompletionTimeout` must be equal to or greater + than the value for `OriginReadTimeout`. If you don't set a value for + `ResponseCompletionTimeout`, CloudFront doesn't enforce a maximum + value. + + For more information, see [Response completion + timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#response-completion-timeout) + in the *Amazon CloudFront Developer Guide*. + """ + origin_shield: OriginShield | None = ... + """ + CloudFront Origin Shield. Using Origin Shield can help reduce the load + on your origin. + + For more information, see [Using Origin + Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) + in the *Amazon CloudFront Developer Guide*. + """ + origin_access_control_id: str | None = ... + """ + The unique identifier of an origin access control for this origin. + + For more information, see [Restricting access to an Amazon S3 + origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class OriginAccessControl(_SerdeShape): + """A CloudFront origin access control, including its unique identifier.""" + + id: str + """The unique identifier of the origin access control.""" + origin_access_control_config: OriginAccessControlConfig | None = ... + """The origin access control.""" + +@dataclass(kw_only=True) +class OriginAccessControlAlreadyExists(ServiceError, _SerdeShape): + """An origin access control with the specified parameters already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OriginAccessControlConfig(_SerdeShape): + """A CloudFront origin access control configuration.""" + + name: str + """ + A name to identify the origin access control. You can specify up to 64 + characters. + """ + description: str | None = ... + """A description of the origin access control.""" + signing_protocol: str + """ + The signing protocol of the origin access control, which determines how + CloudFront signs (authenticates) requests. The only valid values are + `sigv4` and `sigv4a`. + """ + signing_behavior: str + """ + Specifies which requests CloudFront signs (adds authentication + information to). Specify `always` for the most common use case. For more + information, see [origin access control advanced + settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#oac-advanced-settings) + in the *Amazon CloudFront Developer Guide*. + + This field can have one of the following values: + + - `always` -- CloudFront signs all origin requests, overwriting the + `Authorization` header from the viewer request if one exists. + + - `never` -- CloudFront doesn't sign any origin requests. This value + turns off origin access control for all origins in all distributions + that use this origin access control. + + - `no-override` -- If the viewer request doesn't contain the + `Authorization` header, then CloudFront signs the origin request. If + the viewer request contains the `Authorization` header, then + CloudFront doesn't sign the origin request and instead passes along + the `Authorization` header from the viewer request. **WARNING: To pass + along the `Authorization` header from the viewer request, you *must* + add the `Authorization` header to a [cache + policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html) + for all cache behaviors that use origins associated with this origin + access control.** + + - `always-amz-auth` -- CloudFront signs all origin requests with Amazon + authentication headers. If the viewer request contains the + `Authorization` header, then CloudFront also forwards that header to + the origin. This value is only valid with Lambda-Web origins. + **WARNING: To forward the `Authorization` header from the viewer + request, you *must* add the `Authorization` header to a [cache + policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html) + for all cache behaviors that use origins associated with this origin + access control.** + """ + origin_access_control_origin_type: str + """The type of origin that this origin access control is for.""" + +@dataclass(kw_only=True) +class OriginAccessControlInUse(ServiceError, _SerdeShape): + """ + Cannot delete the origin access control because it's in use by one or + more distributions. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OriginAccessControlList(_SerdeShape): + """A list of CloudFront origin access controls.""" + + marker: str + """The value of the `Marker` field that was provided in the request.""" + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value to use in the `Marker` field + of another request to continue listing origin access controls. + """ + max_items: int + """The maximum number of origin access controls requested.""" + is_truncated: bool + """ + If there are more items in the list than are in this response, this + value is `true`. + """ + quantity: int + """The number of origin access controls returned in the response.""" + items: list[OriginAccessControlSummary] | None = ... + """Contains the origin access controls in the list.""" + +class OriginAccessControlOriginTypes(UnknownEnumMixin, StrEnum): + S3 = "s3" + MEDIASTORE = "mediastore" + MEDIAPACKAGEV2 = "mediapackagev2" + LAMBDA_ = "lambda" + +class OriginAccessControlSigningBehaviors(UnknownEnumMixin, StrEnum): + NEVER = "never" + ALWAYS = "always" + NO_OVERRIDE = "no-override" + ALWAYS_AMZ_AUTH = "always-amz-auth" + +class OriginAccessControlSigningProtocols(UnknownEnumMixin, StrEnum): + SIGV4 = "sigv4" + SIGV4A = "sigv4a" + +@dataclass(kw_only=True) +class OriginAccessControlSummary(_SerdeShape): + """A CloudFront origin access control.""" + + id: str + """The unique identifier of the origin access control.""" + description: str + """A description of the origin access control.""" + name: str + """A unique name that identifies the origin access control.""" + signing_protocol: str + """ + The signing protocol of the origin access control. The signing protocol + determines how CloudFront signs (authenticates) requests. The only valid + values are `sigv4` and `sigv4a`. + """ + signing_behavior: str + """ + A value that specifies which requests CloudFront signs (adds + authentication information to). This field can have one of the following + values: + + - `never` -- CloudFront doesn't sign any origin requests. + + - `always` -- CloudFront signs all origin requests, overwriting the + `Authorization` header from the viewer request if necessary. + + - `no-override` -- If the viewer request doesn't contain the + `Authorization` header, CloudFront signs the origin request. If the + viewer request contains the `Authorization` header, CloudFront + doesn't sign the origin request, but instead passes along the + `Authorization` header that it received in the viewer request. + + - `always-amz-auth` -- CloudFront signs all origin requests with Amazon + authentication headers, and forwards the viewer's `Authorization` + header to the origin if one is present. This value is only valid with + Lambda-Web origins. + """ + origin_access_control_origin_type: str + """The type of origin that this origin access control is for.""" + +@dataclass(kw_only=True) +class OriginCustomHeader(_SerdeShape): + """ + A complex type that contains `HeaderName` and `HeaderValue` elements, if + any, for this distribution. + """ + + header_name: str + """ + The name of a header that you want CloudFront to send to your origin. + For more information, see [Adding Custom Headers to Origin + Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) + in the *Amazon CloudFront Developer Guide*. + """ + header_value: str + """The value for the header that you specified in the `HeaderName` field.""" + +@dataclass(kw_only=True) +class OriginGroup(_SerdeShape): + """ + An origin group includes two origins (a primary origin and a secondary + origin to failover to) and a failover criteria that you specify. You + create an origin group to support origin failover in CloudFront. When + you create or update a distribution, you can specify the origin group + instead of a single origin, and CloudFront will failover from the + primary origin to the secondary origin under the failover conditions + that you've chosen. + + Optionally, you can choose selection criteria for your origin group to + specify how your origins are selected when your distribution routes + viewer requests. + """ + + id: str + """The origin group's ID.""" + failover_criteria: OriginGroupFailoverCriteria + """ + A complex type that contains information about the failover criteria for + an origin group. + """ + members: OriginGroupMembers + """ + A complex type that contains information about the origins in an origin + group. + """ + selection_criteria: str | None = ... + """ + The selection criteria for the origin group. For more information, see + [Create an origin + group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class OriginGroupFailoverCriteria(_SerdeShape): + """ + A complex data type that includes information about the failover + criteria for an origin group, including the status codes for which + CloudFront will failover from the primary origin to the second origin. + """ + + status_codes: StatusCodes + """ + The status codes that, when returned from the primary origin, will + trigger CloudFront to failover to the second origin. + """ + +@dataclass(kw_only=True) +class OriginGroupMember(_SerdeShape): + """An origin in an origin group.""" + + origin_id: str + """The ID for an origin in an origin group.""" + +@dataclass(kw_only=True) +class OriginGroupMembers(_SerdeShape): + """A complex data type for the origins included in an origin group.""" + + quantity: int + """The number of origins in an origin group.""" + items: list[OriginGroupMember] + """Items (origins) in an origin group.""" + +@dataclass(kw_only=True) +class OriginGroups(_SerdeShape): + """A complex data type for the origin groups specified for a distribution.""" + + quantity: int + """The number of origin groups.""" + items: list[OriginGroup] | None = ... + """The items (origin groups) in a distribution.""" + +class OriginGroupSelectionCriteria(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + MEDIA_QUALITY_BASED = "media-quality-based" + +@dataclass(kw_only=True) +class OriginMtlsConfig(_SerdeShape): + """ + Configures mutual TLS authentication between CloudFront and your origin + server. + """ + + client_certificate_arn: str + """ + The Amazon Resource Name (ARN) of the client certificate stored in + Amazon Web Services Certificate Manager (ACM) that CloudFront uses to + authenticate with your origin using Mutual TLS. + """ + +class OriginProtocolPolicy(UnknownEnumMixin, StrEnum): + HTTP_ONLY = "http-only" + MATCH_VIEWER = "match-viewer" + HTTPS_ONLY = "https-only" + +@dataclass(kw_only=True) +class OriginRequestPolicy(_SerdeShape): + """ + An origin request policy. + + When it's attached to a cache behavior, the origin request policy + determines the values that CloudFront includes in requests that it sends + to the origin. Each request that CloudFront sends to the origin includes + the following: + + - The request body and the URL path (without the domain name) from the + viewer request. + + - The headers that CloudFront automatically includes in every origin + request, including `Host`, `User-Agent`, and `X-Amz-Cf-Id`. + + - All HTTP headers, cookies, and URL query strings that are specified in + the cache policy or the origin request policy. These can include items + from the viewer request and, in the case of headers, additional ones + that are added by CloudFront. + + CloudFront sends a request when it can't find an object in its cache + that matches the request. If you want to send values to the origin and + also include them in the cache key, use `CachePolicy`. + """ + + id: str + """The unique identifier for the origin request policy.""" + last_modified_time: datetime + """The date and time when the origin request policy was last modified.""" + origin_request_policy_config: OriginRequestPolicyConfig + """The origin request policy configuration.""" + +@dataclass(kw_only=True) +class OriginRequestPolicyAlreadyExists(ServiceError, _SerdeShape): + """ + An origin request policy with this name already exists. You must provide + a unique name. To modify an existing origin request policy, use + `UpdateOriginRequestPolicy`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OriginRequestPolicyConfig(_SerdeShape): + """ + An origin request policy configuration. + + This configuration determines the values that CloudFront includes in + requests that it sends to the origin. Each request that CloudFront sends + to the origin includes the following: + + - The request body and the URL path (without the domain name) from the + viewer request. + + - The headers that CloudFront automatically includes in every origin + request, including `Host`, `User-Agent`, and `X-Amz-Cf-Id`. + + - All HTTP headers, cookies, and URL query strings that are specified in + the cache policy or the origin request policy. These can include items + from the viewer request and, in the case of headers, additional ones + that are added by CloudFront. + + CloudFront sends a request when it can't find an object in its cache + that matches the request. If you want to send values to the origin and + also include them in the cache key, use `CachePolicy`. + """ + + comment: str | None = ... + """ + A comment to describe the origin request policy. The comment cannot be + longer than 128 characters. + """ + name: str + """A unique name to identify the origin request policy.""" + headers_config: OriginRequestPolicyHeadersConfig + """ + The HTTP headers to include in origin requests. These can include + headers from viewer requests and additional headers added by CloudFront. + """ + cookies_config: OriginRequestPolicyCookiesConfig + """The cookies from viewer requests to include in origin requests.""" + query_strings_config: OriginRequestPolicyQueryStringsConfig + """ + The URL query strings from viewer requests to include in origin + requests. + """ + +class OriginRequestPolicyCookieBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL = "all" + ALL_EXCEPT = "allExcept" + +@dataclass(kw_only=True) +class OriginRequestPolicyCookiesConfig(_SerdeShape): + """ + An object that determines whether any cookies in viewer requests (and if + so, which cookies) are included in requests that CloudFront sends to the + origin. + """ + + cookie_behavior: str + """ + Determines whether cookies in viewer requests are included in requests + that CloudFront sends to the origin. Valid values are: + + - `none` -- No cookies in viewer requests are included in requests that + CloudFront sends to the origin. Even when this field is set to `none`, + any cookies that are listed in a `CachePolicy` *are* included in + origin requests. + + - `whitelist` -- Only the cookies in viewer requests that are listed in + the `CookieNames` type are included in requests that CloudFront sends + to the origin. + + - `all` -- All cookies in viewer requests are included in requests that + CloudFront sends to the origin. + + - `allExcept` -- All cookies in viewer requests are included in requests + that CloudFront sends to the origin, ***except*** for those listed in + the `CookieNames` type, which are not included. + """ + cookies: CookieNames | None = ... + """Contains a list of cookie names.""" + +class OriginRequestPolicyHeaderBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL_VIEWER = "allViewer" + ALL_VIEWER_AND_WHITELIST_CLOUD_FRONT = "allViewerAndWhitelistCloudFront" + ALL_EXCEPT = "allExcept" + +@dataclass(kw_only=True) +class OriginRequestPolicyHeadersConfig(_SerdeShape): + """ + An object that determines whether any HTTP headers (and if so, which + headers) are included in requests that CloudFront sends to the origin. + """ + + header_behavior: str + """ + Determines whether any HTTP headers are included in requests that + CloudFront sends to the origin. Valid values are: + + - `none` -- No HTTP headers in viewer requests are included in requests + that CloudFront sends to the origin. Even when this field is set to + `none`, any headers that are listed in a `CachePolicy` *are* included + in origin requests. + + - `whitelist` -- Only the HTTP headers that are listed in the `Headers` + type are included in requests that CloudFront sends to the origin. + + - `allViewer` -- All HTTP headers in viewer requests are included in + requests that CloudFront sends to the origin. + + - `allViewerAndWhitelistCloudFront` -- All HTTP headers in viewer + requests and the additional CloudFront headers that are listed in the + `Headers` type are included in requests that CloudFront sends to the + origin. The additional headers are added by CloudFront. + + - `allExcept` -- All HTTP headers in viewer requests are included in + requests that CloudFront sends to the origin, ***except*** for those + listed in the `Headers` type, which are not included. + """ + headers: Headers | None = ... + """Contains a list of HTTP header names.""" + +@dataclass(kw_only=True) +class OriginRequestPolicyInUse(ServiceError, _SerdeShape): + """ + Cannot delete the origin request policy because it is attached to one or + more cache behaviors. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OriginRequestPolicyList(_SerdeShape): + """A list of origin request policies.""" + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing origin + request policies where you left off. + """ + max_items: int + """The maximum number of origin request policies requested.""" + quantity: int + """The total number of origin request policies returned in the response.""" + items: list[OriginRequestPolicySummary] | None = ... + """Contains the origin request policies in the list.""" + +class OriginRequestPolicyQueryStringBehavior(UnknownEnumMixin, StrEnum): + NONE = "none" + WHITELIST = "whitelist" + ALL = "all" + ALL_EXCEPT = "allExcept" + +@dataclass(kw_only=True) +class OriginRequestPolicyQueryStringsConfig(_SerdeShape): + """ + An object that determines whether any URL query strings in viewer + requests (and if so, which query strings) are included in requests that + CloudFront sends to the origin. + """ + + query_string_behavior: str + """ + Determines whether any URL query strings in viewer requests are included + in requests that CloudFront sends to the origin. Valid values are: + + - `none` -- No query strings in viewer requests are included in requests + that CloudFront sends to the origin. Even when this field is set to + `none`, any query strings that are listed in a `CachePolicy` *are* + included in origin requests. + + - `whitelist` -- Only the query strings in viewer requests that are + listed in the `QueryStringNames` type are included in requests that + CloudFront sends to the origin. + + - `all` -- All query strings in viewer requests are included in requests + that CloudFront sends to the origin. + + - `allExcept` -- All query strings in viewer requests are included in + requests that CloudFront sends to the origin, ***except*** for those + listed in the `QueryStringNames` type, which are not included. + """ + query_strings: QueryStringNames | None = ... + """ + Contains the specific query strings in viewer requests that either + ***are*** or ***are not*** included in requests that CloudFront sends to + the origin. The behavior depends on whether the `QueryStringBehavior` + field in the `OriginRequestPolicyQueryStringsConfig` type is set to + `whitelist` (the listed query strings ***are*** included) or `allExcept` + (the listed query strings ***are not*** included, but all other query + strings are). + """ + +@dataclass(kw_only=True) +class OriginRequestPolicySummary(_SerdeShape): + """Contains an origin request policy.""" + + type: str + """ + The type of origin request policy, either `managed` (created by Amazon + Web Services) or `custom` (created in this Amazon Web Services account). + """ + origin_request_policy: OriginRequestPolicy + """The origin request policy.""" + +class OriginRequestPolicyType(UnknownEnumMixin, StrEnum): + MANAGED = "managed" + CUSTOM = "custom" + +@dataclass(kw_only=True) +class Origins(_SerdeShape): + """Contains information about the origins for this distribution.""" + + quantity: int + """The number of origins for this distribution.""" + items: list[Origin] + """A list of origins.""" + +@dataclass(kw_only=True) +class OriginShield(_SerdeShape): + """ + CloudFront Origin Shield. + + Using Origin Shield can help reduce the load on your origin. For more + information, see [Using Origin + Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) + in the *Amazon CloudFront Developer Guide*. + """ + + enabled: bool + """ + A flag that specifies whether Origin Shield is enabled. + + When it's enabled, CloudFront routes all requests through Origin + Shield, which can help protect your origin. When it's disabled, + CloudFront might send requests directly to your origin from multiple + edge locations or regional edge caches. + """ + origin_shield_region: str | None = ... + """ + The Amazon Web Services Region for Origin Shield. + + Specify the Amazon Web Services Region that has the lowest latency to + your origin. To specify a region, use the region code, not the region + name. For example, specify the US East (Ohio) region as `us-east-2`. + + When you enable CloudFront Origin Shield, you must specify the Amazon + Web Services Region for Origin Shield. For the list of Amazon Web + Services Regions that you can specify, and for help choosing the best + Region for your origin, see [Choosing the Amazon Web Services Region for + Origin + Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class OriginSslProtocols(_SerdeShape): + """ + A complex type that contains information about the SSL/TLS protocols + that CloudFront can use when establishing an HTTPS connection with your + origin. + """ + + quantity: int + """ + The number of SSL/TLS protocols that you want to allow CloudFront to use + when establishing an HTTPS connection with this origin. + """ + items: list[str] + """A list that contains allowed SSL/TLS protocols for this distribution.""" + +@dataclass(kw_only=True) +class Parameter(_SerdeShape): + """ + A list of parameter values to add to the resource. A parameter is + specified as a key-value pair. A valid parameter value must exist for + any parameter that is marked as required in the multi-tenant + distribution. + """ + + name: str + """The parameter name.""" + value: str + """The parameter value.""" + +@dataclass(kw_only=True) +class ParameterDefinition(_SerdeShape): + """ + A list of parameter values to add to the resource. A parameter is + specified as a key-value pair. A valid parameter value must exist for + any parameter that is marked as required in the multi-tenant + distribution. + """ + + name: str + """The name of the parameter.""" + definition: ParameterDefinitionSchema + """The value that you assigned to the parameter.""" + +@dataclass(kw_only=True) +class ParameterDefinitionSchema(_SerdeShape): + """An object that contains information about the parameter definition.""" + + string_schema: StringSchemaConfig | None = ... + """An object that contains information about the string schema.""" + +@dataclass(kw_only=True) +class ParametersInCacheKeyAndForwardedToOrigin(_SerdeShape): + """ + This object determines the values that CloudFront includes in the cache + key. These values can include HTTP headers, cookies, and URL query + strings. CloudFront uses the cache key to find an object in its cache + that it can return to the viewer. + + The headers, cookies, and query strings that are included in the cache + key are also included in requests that CloudFront sends to the origin. + CloudFront sends a request when it can't find an object in its cache + that matches the request's cache key. If you want to send values to the + origin but *not* include them in the cache key, use + `OriginRequestPolicy`. + """ + + enable_accept_encoding_gzip: bool + """ + A flag that can affect whether the `Accept-Encoding` HTTP header is + included in the cache key and included in requests that CloudFront sends + to the origin. + + This field is related to the `EnableAcceptEncodingBrotli` field. If one + or both of these fields is `true` *and* the viewer request includes the + `Accept-Encoding` header, then CloudFront does the following: + + - Normalizes the value of the viewer's `Accept-Encoding` header + + - Includes the normalized header in the cache key + + - Includes the normalized header in the request to the origin, if a + request is necessary + + For more information, see [Compression + support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) + in the *Amazon CloudFront Developer Guide*. + + If you set this value to `true`, and this cache behavior also has an + origin request policy attached, do not include the `Accept-Encoding` + header in the origin request policy. CloudFront always includes the + `Accept-Encoding` header in origin requests when the value of this field + is `true`, so including this header in an origin request policy has no + effect. + + If both of these fields are `false`, then CloudFront treats the + `Accept-Encoding` header the same as any other HTTP header in the viewer + request. By default, it's not included in the cache key and it's not + included in origin requests. In this case, you can manually add + `Accept-Encoding` to the headers whitelist like any other HTTP header. + """ + enable_accept_encoding_brotli: bool | None = ... + """ + A flag that can affect whether the `Accept-Encoding` HTTP header is + included in the cache key and included in requests that CloudFront sends + to the origin. + + This field is related to the `EnableAcceptEncodingGzip` field. If one or + both of these fields is `true` *and* the viewer request includes the + `Accept-Encoding` header, then CloudFront does the following: + + - Normalizes the value of the viewer's `Accept-Encoding` header + + - Includes the normalized header in the cache key + + - Includes the normalized header in the request to the origin, if a + request is necessary + + For more information, see [Compression + support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) + in the *Amazon CloudFront Developer Guide*. + + If you set this value to `true`, and this cache behavior also has an + origin request policy attached, do not include the `Accept-Encoding` + header in the origin request policy. CloudFront always includes the + `Accept-Encoding` header in origin requests when the value of this field + is `true`, so including this header in an origin request policy has no + effect. + + If both of these fields are `false`, then CloudFront treats the + `Accept-Encoding` header the same as any other HTTP header in the viewer + request. By default, it's not included in the cache key and it's not + included in origin requests. In this case, you can manually add + `Accept-Encoding` to the headers whitelist like any other HTTP header. + """ + headers_config: CachePolicyHeadersConfig + """ + An object that determines whether any HTTP headers (and if so, which + headers) are included in the cache key and in requests that CloudFront + sends to the origin. + """ + cookies_config: CachePolicyCookiesConfig + """ + An object that determines whether any cookies in viewer requests (and if + so, which cookies) are included in the cache key and in requests that + CloudFront sends to the origin. + """ + query_strings_config: CachePolicyQueryStringsConfig + """ + An object that determines whether any URL query strings in viewer + requests (and if so, which query strings) are included in the cache key + and in requests that CloudFront sends to the origin. + """ + +@dataclass(kw_only=True) +class Paths(_SerdeShape): + """ + A complex type that contains information about the objects that you want + to invalidate. For more information, see [Specifying the Objects to + Invalidate](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects) + in the *Amazon CloudFront Developer Guide*. + """ + + quantity: int + """ + The number of invalidation paths specified for the objects that you want + to invalidate. + """ + items: list[str] | None = ... + """ + A complex type that contains a list of the paths that you want to + invalidate. + """ + +@dataclass(kw_only=True) +class PreconditionFailed(ServiceError, _SerdeShape): + """ + The precondition in one or more of the request fields evaluated to + `false`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class PriceClass(UnknownEnumMixin, StrEnum): + PRICE_CLASS_100 = "PriceClass_100" + PRICE_CLASS_200 = "PriceClass_200" + PRICE_CLASS_ALL = "PriceClass_All" + NONE = "None" + +@dataclass(kw_only=True) +class PublicKey(_SerdeShape): + """ + A public key that you can use with [signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + + CloudFront supports signed URLs and signed cookies with RSA 2048 or + ECDSA 256 key signatures. Field-level encryption is only compatible with + RSA 2048 key signatures. + """ + + id: str + """The identifier of the public key.""" + created_time: datetime + """The date and time when the public key was uploaded.""" + public_key_config: PublicKeyConfig + """ + Configuration information about a public key that you can use with + [signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + """ + +@dataclass(kw_only=True) +class PublicKeyAlreadyExists(ServiceError, _SerdeShape): + """The specified public key already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PublicKeyConfig(_SerdeShape): + """ + Configuration information about a public key that you can use with + [signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + + CloudFront supports signed URLs and signed cookies with RSA 2048 or + ECDSA 256 key signatures. Field-level encryption is only compatible with + RSA 2048 key signatures. + """ + + caller_reference: str + """ + A string included in the request to help make sure that the request + can't be replayed. + """ + name: str + """A name to help identify the public key.""" + encoded_key: str + """ + The public key that you can use with [signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + """ + comment: str | None = ... + """ + A comment to describe the public key. The comment cannot be longer than + 128 characters. + """ + +@dataclass(kw_only=True) +class PublicKeyInUse(ServiceError, _SerdeShape): + """The specified public key is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PublicKeyList(_SerdeShape): + """ + A list of public keys that you can use with [signed URLs and signed + cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), + or with [field-level + encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). + """ + + next_marker: str | None = ... + """ + If there are more elements to be listed, this element is present and + contains the value that you can use for the `Marker` request parameter + to continue listing your public keys where you left off. + """ + max_items: int + """The maximum number of public keys you want in the response.""" + quantity: int + """The number of public keys in the list.""" + items: list[PublicKeySummary] | None = ... + """A list of public keys.""" + +@dataclass(kw_only=True) +class PublicKeySummary(_SerdeShape): + """Contains information about a public key.""" + + id: str + """The identifier of the public key.""" + name: str + """A name to help identify the public key.""" + created_time: datetime + """The date and time when the public key was uploaded.""" + encoded_key: str + """The public key.""" + comment: str | None = ... + """ + A comment to describe the public key. The comment cannot be longer than + 128 characters. + """ + +@dataclass(kw_only=True) +class PublishConnectionFunctionInput(_SerdeShape): + """Dataclass for PublishConnectionFunctionInput structure.""" + + id: str | None = ... + """The connection function ID.""" + if_match: str | None = ... + """The current version (`ETag` value) of the connection function.""" + +@dataclass(kw_only=True) +class PublishConnectionFunctionOutput(_SerdeShape): + """Dataclass for PublishConnectionFunctionOutput structure.""" + + connection_function_summary: ConnectionFunctionSummary | None = ... + """The connection function summary.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PublishFunctionInput(_SerdeShape): + """Dataclass for PublishFunctionInput structure.""" + + name: str | None = ... + """The name of the function that you are publishing.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the function that you are + publishing, which you can get using `DescribeFunction`. + """ + +@dataclass(kw_only=True) +class PublishFunctionOutput(_SerdeShape): + """Dataclass for PublishFunctionOutput structure.""" + + function_summary: FunctionSummary | None = ... + """ + Contains configuration information and metadata about a CloudFront + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutResourcePolicyInput(_SerdeShape): + """Dataclass for PutResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudFront resource for which the + policy is being created. + """ + policy_document: str | None = ... + """The JSON-formatted resource policy to create.""" + +@dataclass(kw_only=True) +class PutResourcePolicyOutput(_SerdeShape): + """Dataclass for PutResourcePolicyOutput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudFront resource for which the + policy was created. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class QueryArgProfile(_SerdeShape): + """Query argument-profile mapping for field-level encryption.""" + + query_arg: str + """ + Query argument for field-level encryption query argument-profile + mapping. + """ + profile_id: str + """ + ID of profile to use for field-level encryption query argument-profile + mapping + """ + +@dataclass(kw_only=True) +class QueryArgProfileConfig(_SerdeShape): + """ + Configuration for query argument-profile mapping for field-level + encryption. + """ + + forward_when_query_arg_profile_is_unknown: bool + """ + Flag to set if you want a request to be forwarded to the origin even if + the profile specified by the field-level encryption query argument, + fle-profile, is unknown. + """ + query_arg_profiles: QueryArgProfiles | None = ... + """ + Profiles specified for query argument-profile mapping for field-level + encryption. + """ + +@dataclass(kw_only=True) +class QueryArgProfileEmpty(ServiceError, _SerdeShape): + """No profile specified for the field-level encryption query argument.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class QueryArgProfiles(_SerdeShape): + """Query argument-profile mapping for field-level encryption.""" + + quantity: int + """ + Number of profiles for query argument-profile mapping for field-level + encryption. + """ + items: list[QueryArgProfile] | None = ... + """ + Number of items for query argument-profile mapping for field-level + encryption. + """ + +@dataclass(kw_only=True) +class QueryStringCacheKeys(_SerdeShape): + """ + This field is deprecated. We recommend that you use a cache policy or an + origin request policy instead of this field. + + If you want to include query strings in the cache key, use + `QueryStringsConfig` in a cache policy. See `CachePolicy`. + + If you want to send query strings to the origin but not include them in + the cache key, use `QueryStringsConfig` in an origin request policy. See + `OriginRequestPolicy`. + + A complex type that contains information about the query string + parameters that you want CloudFront to use for caching for a cache + behavior. + """ + + quantity: int + """ + The number of `whitelisted` query string parameters for a cache + behavior. + """ + items: list[str] | None = ... + """ + A list that contains the query string parameters that you want + CloudFront to use as a basis for caching for a cache behavior. If + `Quantity` is 0, you can omit `Items`. + """ + +@dataclass(kw_only=True) +class QueryStringNames(_SerdeShape): + """Contains a list of query string names.""" + + quantity: int + """The number of query string names in the `Items` list.""" + items: list[str] | None = ... + """A list of query string names.""" + +@dataclass(kw_only=True) +class RealtimeLogConfig(_SerdeShape): + """A real-time log configuration.""" + + arn: str + """The Amazon Resource Name (ARN) of this real-time log configuration.""" + name: str + """The unique name of this real-time log configuration.""" + sampling_rate: int + """ + The sampling rate for this real-time log configuration. The sampling + rate determines the percentage of viewer requests that are represented + in the real-time log data. The sampling rate is an integer between 1 and + 100, inclusive. + """ + end_points: list[EndPoint] + """ + Contains information about the Amazon Kinesis data stream where you are + sending real-time log data for this real-time log configuration. + """ + fields: list[str] + """ + A list of fields that are included in each real-time log record. In an + API response, the fields are provided in the same order in which they + are sent to the Amazon Kinesis data stream. + + For more information about fields, see [Real-time log configuration + fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class RealtimeLogConfigAlreadyExists(ServiceError, _SerdeShape): + """ + A real-time log configuration with this name already exists. You must + provide a unique name. To modify an existing real-time log + configuration, use `UpdateRealtimeLogConfig`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RealtimeLogConfigInUse(ServiceError, _SerdeShape): + """ + Cannot delete the real-time log configuration because it is attached to + one or more cache behaviors. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RealtimeLogConfigOwnerMismatch(ServiceError, _SerdeShape): + """ + The specified real-time log configuration belongs to a different Amazon + Web Services account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RealtimeLogConfigs(_SerdeShape): + """A list of real-time log configurations.""" + + max_items: int + """The maximum number of real-time log configurations requested.""" + items: list[RealtimeLogConfig] | None = ... + """Contains the list of real-time log configurations.""" + is_truncated: bool + """ + A flag that indicates whether there are more real-time log + configurations than are contained in this list. + """ + marker: str + """ + This parameter indicates where this list of real-time log configurations + begins. This list includes real-time log configurations that occur after + the marker. + """ + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing real-time log + configurations where you left off. + """ + +@dataclass(kw_only=True) +class RealtimeMetricsSubscriptionConfig(_SerdeShape): + """A subscription configuration for additional CloudWatch metrics.""" + + realtime_metrics_subscription_status: str + """ + A flag that indicates whether additional CloudWatch metrics are enabled + for a given CloudFront distribution. + """ + +class RealtimeMetricsSubscriptionStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class ReferrerPolicyList(UnknownEnumMixin, StrEnum): + NO_REFERRER = "no-referrer" + NO_REFERRER_WHEN_DOWNGRADE = "no-referrer-when-downgrade" + ORIGIN = "origin" + ORIGIN_WHEN_CROSS_ORIGIN = "origin-when-cross-origin" + SAME_ORIGIN = "same-origin" + STRICT_ORIGIN = "strict-origin" + STRICT_ORIGIN_WHEN_CROSS_ORIGIN = "strict-origin-when-cross-origin" + UNSAFE_URL = "unsafe-url" + +@dataclass(kw_only=True) +class ResourceInUse(ServiceError, _SerdeShape): + """Cannot delete this resource because it is in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceNotDisabled(ServiceError, _SerdeShape): + """The specified CloudFront resource hasn't been disabled yet.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicy(_SerdeShape): + """ + A response headers policy. + + A response headers policy contains information about a set of HTTP + response headers. + + After you create a response headers policy, you can use its ID to attach + it to one or more cache behaviors in a CloudFront distribution. When + it's attached to a cache behavior, the response headers policy affects + the HTTP headers that CloudFront includes in HTTP responses to requests + that match the cache behavior. CloudFront adds or removes response + headers according to the configuration of the response headers policy. + + For more information, see [Adding or removing HTTP headers in CloudFront + responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) + in the *Amazon CloudFront Developer Guide*. + """ + + id: str + """The identifier for the response headers policy.""" + last_modified_time: datetime + """The date and time when the response headers policy was last modified.""" + response_headers_policy_config: ResponseHeadersPolicyConfig + """A response headers policy configuration.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyAccessControlAllowHeaders(_SerdeShape): + """ + A list of HTTP header names that CloudFront includes as values for the + `Access-Control-Allow-Headers` HTTP response header. + + For more information about the `Access-Control-Allow-Headers` HTTP + response header, see + [Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) + in the MDN Web Docs. + """ + + quantity: int + """The number of HTTP header names in the list.""" + items: list[str] + """The list of HTTP header names. You can specify `*` to allow all headers.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyAccessControlAllowMethods(_SerdeShape): + """ + A list of HTTP methods that CloudFront includes as values for the + `Access-Control-Allow-Methods` HTTP response header. + + For more information about the `Access-Control-Allow-Methods` HTTP + response header, see + [Access-Control-Allow-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) + in the MDN Web Docs. + """ + + quantity: int + """The number of HTTP methods in the list.""" + items: list[str] + """ + The list of HTTP methods. Valid values are: + + - `GET` + + - `DELETE` + + - `HEAD` + + - `OPTIONS` + + - `PATCH` + + - `POST` + + - `PUT` + + - `ALL` + + `ALL` is a special value that includes all of the listed HTTP methods. + """ + +class ResponseHeadersPolicyAccessControlAllowMethodsValues(UnknownEnumMixin, StrEnum): + GET = "GET" + POST = "POST" + OPTIONS = "OPTIONS" + PUT = "PUT" + DELETE = "DELETE" + PATCH = "PATCH" + HEAD = "HEAD" + ALL = "ALL" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyAccessControlAllowOrigins(_SerdeShape): + """ + A list of origins (domain names) that CloudFront can use as the value + for the `Access-Control-Allow-Origin` HTTP response header. + + For more information about the `Access-Control-Allow-Origin` HTTP + response header, see + [Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) + in the MDN Web Docs. + """ + + quantity: int + """The number of origins in the list.""" + items: list[str] + """ + The list of origins (domain names). You can specify `*` to allow all + origins. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyAccessControlExposeHeaders(_SerdeShape): + """ + A list of HTTP headers that CloudFront includes as values for the + `Access-Control-Expose-Headers` HTTP response header. + + For more information about the `Access-Control-Expose-Headers` HTTP + response header, see + [Access-Control-Expose-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) + in the MDN Web Docs. + """ + + quantity: int + """The number of HTTP headers in the list.""" + items: list[str] | None = ... + """The list of HTTP headers. You can specify `*` to expose all headers.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyAlreadyExists(ServiceError, _SerdeShape): + """ + A response headers policy with this name already exists. You must + provide a unique name. To modify an existing response headers policy, + use `UpdateResponseHeadersPolicy`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyConfig(_SerdeShape): + """ + A response headers policy configuration. + + A response headers policy configuration contains metadata about the + response headers policy, and configurations for sets of HTTP response + headers. + """ + + comment: str | None = ... + """ + A comment to describe the response headers policy. + + The comment cannot be longer than 128 characters. + """ + name: str + """ + A name to identify the response headers policy. + + The name must be unique for response headers policies in this Amazon Web + Services account. + """ + cors_config: ResponseHeadersPolicyCorsConfig | None = ... + """ + A configuration for a set of HTTP response headers that are used for + cross-origin resource sharing (CORS). + """ + security_headers_config: ResponseHeadersPolicySecurityHeadersConfig | None = ... + """A configuration for a set of security-related HTTP response headers.""" + server_timing_headers_config: ( + ResponseHeadersPolicyServerTimingHeadersConfig | None + ) = ... + """ + A configuration for enabling the `Server-Timing` header in HTTP + responses sent from CloudFront. + """ + custom_headers_config: ResponseHeadersPolicyCustomHeadersConfig | None = ... + """A configuration for a set of custom HTTP response headers.""" + remove_headers_config: ResponseHeadersPolicyRemoveHeadersConfig | None = ... + """ + A configuration for a set of HTTP headers to remove from the HTTP + response. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyContentSecurityPolicy(_SerdeShape): + """ + The policy directives and their values that CloudFront includes as + values for the `Content-Security-Policy` HTTP response header. + + For more information about the `Content-Security-Policy` HTTP response + header, see + [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `Content-Security-Policy` HTTP response header received from the origin + with the one specified in this response headers policy. + """ + content_security_policy: str + """ + The policy directives and their values that CloudFront includes as + values for the `Content-Security-Policy` HTTP response header. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyContentTypeOptions(_SerdeShape): + """ + Determines whether CloudFront includes the `X-Content-Type-Options` HTTP + response header with its value set to `nosniff`. + + For more information about the `X-Content-Type-Options` HTTP response + header, see + [X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `X-Content-Type-Options` HTTP response header received from the origin + with the one specified in this response headers policy. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyCorsConfig(_SerdeShape): + """ + A configuration for a set of HTTP response headers that are used for + cross-origin resource sharing (CORS). CloudFront adds these headers to + HTTP responses that it sends for CORS requests that match a cache + behavior associated with this response headers policy. + + For more information about CORS, see [Cross-Origin Resource Sharing + (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) in the + MDN Web Docs. + """ + + access_control_allow_origins: ResponseHeadersPolicyAccessControlAllowOrigins + """ + A list of origins (domain names) that CloudFront can use as the value + for the `Access-Control-Allow-Origin` HTTP response header. + + For more information about the `Access-Control-Allow-Origin` HTTP + response header, see + [Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) + in the MDN Web Docs. + """ + access_control_allow_headers: ResponseHeadersPolicyAccessControlAllowHeaders + """ + A list of HTTP header names that CloudFront includes as values for the + `Access-Control-Allow-Headers` HTTP response header. + + For more information about the `Access-Control-Allow-Headers` HTTP + response header, see + [Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) + in the MDN Web Docs. + """ + access_control_allow_methods: ResponseHeadersPolicyAccessControlAllowMethods + """ + A list of HTTP methods that CloudFront includes as values for the + `Access-Control-Allow-Methods` HTTP response header. + + For more information about the `Access-Control-Allow-Methods` HTTP + response header, see + [Access-Control-Allow-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) + in the MDN Web Docs. + """ + access_control_allow_credentials: bool + """ + A Boolean that CloudFront uses as the value for the + `Access-Control-Allow-Credentials` HTTP response header. + + For more information about the `Access-Control-Allow-Credentials` HTTP + response header, see + [Access-Control-Allow-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) + in the MDN Web Docs. + """ + access_control_expose_headers: ( + ResponseHeadersPolicyAccessControlExposeHeaders | None + ) = ... + """ + A list of HTTP headers that CloudFront includes as values for the + `Access-Control-Expose-Headers` HTTP response header. + + For more information about the `Access-Control-Expose-Headers` HTTP + response header, see + [Access-Control-Expose-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) + in the MDN Web Docs. + """ + access_control_max_age_sec: int | None = ... + """ + A number that CloudFront uses as the value for the + `Access-Control-Max-Age` HTTP response header. + + For more information about the `Access-Control-Max-Age` HTTP response + header, see + [Access-Control-Max-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) + in the MDN Web Docs. + """ + origin_override: bool + """ + A Boolean that determines whether CloudFront overrides HTTP response + headers received from the origin with the ones specified in this + response headers policy. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyCustomHeader(_SerdeShape): + """ + An HTTP response header name and its value. CloudFront includes this + header in HTTP responses that it sends for requests that match a cache + behavior that's associated with this response headers policy. + """ + + header: str + """The HTTP response header name.""" + value: str + """The value for the HTTP response header.""" + override: bool + """ + A Boolean that determines whether CloudFront overrides a response header + with the same name received from the origin with the header specified + here. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyCustomHeadersConfig(_SerdeShape): + """ + A list of HTTP response header names and their values. CloudFront + includes these headers in HTTP responses that it sends for requests that + match a cache behavior that's associated with this response headers + policy. + """ + + quantity: int + """The number of HTTP response headers in the list.""" + items: list[ResponseHeadersPolicyCustomHeader] | None = ... + """The list of HTTP response headers and their values.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyFrameOptions(_SerdeShape): + """ + Determines whether CloudFront includes the `X-Frame-Options` HTTP + response header and the header's value. + + For more information about the `X-Frame-Options` HTTP response header, + see + [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `X-Frame-Options` HTTP response header received from the origin with the + one specified in this response headers policy. + """ + frame_option: str + """ + The value of the `X-Frame-Options` HTTP response header. Valid values + are `DENY` and `SAMEORIGIN`. + + For more information about these values, see + [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) + in the MDN Web Docs. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyInUse(ServiceError, _SerdeShape): + """ + Cannot delete the response headers policy because it is attached to one + or more cache behaviors in a CloudFront distribution. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyList(_SerdeShape): + """A list of response headers policies.""" + + next_marker: str | None = ... + """ + If there are more items in the list than are in this response, this + element is present. It contains the value that you should use in the + `Marker` field of a subsequent request to continue listing response + headers policies where you left off. + """ + max_items: int + """The maximum number of response headers policies requested.""" + quantity: int + """The number of response headers policies returned.""" + items: list[ResponseHeadersPolicySummary] | None = ... + """The response headers policies in the list.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyReferrerPolicy(_SerdeShape): + """ + Determines whether CloudFront includes the `Referrer-Policy` HTTP + response header and the header's value. + + For more information about the `Referrer-Policy` HTTP response header, + see + [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `Referrer-Policy` HTTP response header received from the origin with the + one specified in this response headers policy. + """ + referrer_policy: str + """ + The value of the `Referrer-Policy` HTTP response header. Valid values + are: + + - `no-referrer` + + - `no-referrer-when-downgrade` + + - `origin` + + - `origin-when-cross-origin` + + - `same-origin` + + - `strict-origin` + + - `strict-origin-when-cross-origin` + + - `unsafe-url` + + For more information about these values, see + [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) + in the MDN Web Docs. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyRemoveHeader(_SerdeShape): + """ + The name of an HTTP header that CloudFront removes from HTTP responses + to requests that match the cache behavior that this response headers + policy is attached to. + """ + + header: str + """The HTTP header name.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyRemoveHeadersConfig(_SerdeShape): + """ + A list of HTTP header names that CloudFront removes from HTTP responses + to requests that match the cache behavior that this response headers + policy is attached to. + """ + + quantity: int + """The number of HTTP header names in the list.""" + items: list[ResponseHeadersPolicyRemoveHeader] | None = ... + """The list of HTTP header names.""" + +@dataclass(kw_only=True) +class ResponseHeadersPolicySecurityHeadersConfig(_SerdeShape): + """ + A configuration for a set of security-related HTTP response headers. + CloudFront adds these headers to HTTP responses that it sends for + requests that match a cache behavior associated with this response + headers policy. + """ + + xss_protection: ResponseHeadersPolicyXSSProtection | None = ... + """ + Determines whether CloudFront includes the `X-XSS-Protection` HTTP + response header and the header's value. + + For more information about the `X-XSS-Protection` HTTP response header, + see + [X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) + in the MDN Web Docs. + """ + frame_options: ResponseHeadersPolicyFrameOptions | None = ... + """ + Determines whether CloudFront includes the `X-Frame-Options` HTTP + response header and the header's value. + + For more information about the `X-Frame-Options` HTTP response header, + see + [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) + in the MDN Web Docs. + """ + referrer_policy: ResponseHeadersPolicyReferrerPolicy | None = ... + """ + Determines whether CloudFront includes the `Referrer-Policy` HTTP + response header and the header's value. + + For more information about the `Referrer-Policy` HTTP response header, + see + [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) + in the MDN Web Docs. + """ + content_security_policy: ResponseHeadersPolicyContentSecurityPolicy | None = ... + """ + The policy directives and their values that CloudFront includes as + values for the `Content-Security-Policy` HTTP response header. + + For more information about the `Content-Security-Policy` HTTP response + header, see + [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) + in the MDN Web Docs. + """ + content_type_options: ResponseHeadersPolicyContentTypeOptions | None = ... + """ + Determines whether CloudFront includes the `X-Content-Type-Options` HTTP + response header with its value set to `nosniff`. + + For more information about the `X-Content-Type-Options` HTTP response + header, see + [X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) + in the MDN Web Docs. + """ + strict_transport_security: ResponseHeadersPolicyStrictTransportSecurity | None = ... + """ + Determines whether CloudFront includes the `Strict-Transport-Security` + HTTP response header and the header's value. + + For more information about the `Strict-Transport-Security` HTTP response + header, see [Security + headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html#understanding-response-headers-policies-security) + in the *Amazon CloudFront Developer Guide* and + [Strict-Transport-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) + in the MDN Web Docs. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyServerTimingHeadersConfig(_SerdeShape): + """ + A configuration for enabling the `Server-Timing` header in HTTP + responses sent from CloudFront. CloudFront adds this header to HTTP + responses that it sends in response to requests that match a cache + behavior that's associated with this response headers policy. + + You can use the `Server-Timing` header to view metrics that can help you + gain insights about the behavior and performance of CloudFront. For + example, you can see which cache layer served a cache hit, or the first + byte latency from the origin when there was a cache miss. You can use + the metrics in the `Server-Timing` header to troubleshoot issues or test + the efficiency of your CloudFront configuration. For more information, + see [Server-Timing + header](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html#server-timing-header) + in the *Amazon CloudFront Developer Guide*. + """ + + enabled: bool + """ + A Boolean that determines whether CloudFront adds the `Server-Timing` + header to HTTP responses that it sends in response to requests that + match a cache behavior that's associated with this response headers + policy. + """ + sampling_rate: float | None = ... + """ + A number 0--100 (inclusive) that specifies the percentage of responses + that you want CloudFront to add the `Server-Timing` header to. When you + set the sampling rate to 100, CloudFront adds the `Server-Timing` header + to the HTTP response for every request that matches the cache behavior + that this response headers policy is attached to. When you set it to 50, + CloudFront adds the header to 50% of the responses for requests that + match the cache behavior. You can set the sampling rate to any number + 0--100 with up to four decimal places. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicyStrictTransportSecurity(_SerdeShape): + """ + Determines whether CloudFront includes the `Strict-Transport-Security` + HTTP response header and the header's value. + + For more information about the `Strict-Transport-Security` HTTP response + header, see + [Strict-Transport-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `Strict-Transport-Security` HTTP response header received from the + origin with the one specified in this response headers policy. + """ + include_subdomains: bool | None = ... + """ + A Boolean that determines whether CloudFront includes the + `includeSubDomains` directive in the `Strict-Transport-Security` HTTP + response header. + """ + preload: bool | None = ... + """ + A Boolean that determines whether CloudFront includes the `preload` + directive in the `Strict-Transport-Security` HTTP response header. + """ + access_control_max_age_sec: int + """ + A number that CloudFront uses as the value for the `max-age` directive + in the `Strict-Transport-Security` HTTP response header. + """ + +@dataclass(kw_only=True) +class ResponseHeadersPolicySummary(_SerdeShape): + """Contains a response headers policy.""" + + type: str + """ + The type of response headers policy, either `managed` (created by Amazon + Web Services) or `custom` (created in this Amazon Web Services account). + """ + response_headers_policy: ResponseHeadersPolicy + """The response headers policy.""" + +class ResponseHeadersPolicyType(UnknownEnumMixin, StrEnum): + MANAGED = "managed" + CUSTOM = "custom" + +@dataclass(kw_only=True) +class ResponseHeadersPolicyXSSProtection(_SerdeShape): + """ + Determines whether CloudFront includes the `X-XSS-Protection` HTTP + response header and the header's value. + + For more information about the `X-XSS-Protection` HTTP response header, + see + [X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) + in the MDN Web Docs. + """ + + override: bool + """ + A Boolean that determines whether CloudFront overrides the + `X-XSS-Protection` HTTP response header received from the origin with + the one specified in this response headers policy. + """ + protection: bool + """ + A Boolean that determines the value of the `X-XSS-Protection` HTTP + response header. When this setting is `true`, the value of the + `X-XSS-Protection` header is `1`. When this setting is `false`, the + value of the `X-XSS-Protection` header is `0`. + + For more information about these settings, see + [X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) + in the MDN Web Docs. + """ + mode_block: bool | None = ... + """ + A Boolean that determines whether CloudFront includes the `mode=block` + directive in the `X-XSS-Protection` header. + + For more information about this directive, see + [X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) + in the MDN Web Docs. + """ + report_uri: str | None = ... + """ + A reporting URI, which CloudFront uses as the value of the `report` + directive in the `X-XSS-Protection` header. + + You cannot specify a `ReportUri` when `ModeBlock` is `true`. + + For more information about using a reporting URL, see + [X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) + in the MDN Web Docs. + """ + +@dataclass(kw_only=True) +class Restrictions(_SerdeShape): + """ + A complex type that identifies ways in which you want to restrict + distribution of your content. + """ + + geo_restriction: GeoRestriction + """ + A complex type that controls the countries in which your content is + distributed. CloudFront determines the location of your users using + `MaxMind` GeoIP databases. + """ + +@dataclass(kw_only=True) +class S3Origin(_SerdeShape): + """ + A complex type that contains information about the Amazon S3 bucket from + which you want CloudFront to get your media files for distribution. + """ + + domain_name: str + """The DNS name of the Amazon S3 origin.""" + origin_access_identity: str + """ + The CloudFront origin access identity to associate with the + distribution. Use an origin access identity to configure the + distribution so that end users can only access objects in an Amazon S3 + bucket through CloudFront. + + If you want end users to be able to access objects using either the + CloudFront URL or the Amazon S3 URL, specify an empty + `OriginAccessIdentity` element. + + To delete the origin access identity from an existing distribution, + update the distribution configuration and include an empty + `OriginAccessIdentity` element. + + To replace the origin access identity, update the distribution + configuration and specify the new origin access identity. + + For more information, see [Using an Origin Access Identity to Restrict + Access to Your Amazon S3 + Content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class S3OriginConfig(_SerdeShape): + """ + A complex type that contains information about the Amazon S3 origin. If + the origin is a custom origin or an S3 bucket that is configured as a + website endpoint, use the `CustomOriginConfig` element instead. + """ + + origin_access_identity: str = ... + """ + Note: + If you're using origin access control (OAC) instead of origin access + identity, specify an empty `OriginAccessIdentity` element. For more + information, see [Restricting access to an Amazon Web + Services](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html) + in the *Amazon CloudFront Developer Guide*. + + The CloudFront origin access identity to associate with the origin. Use + an origin access identity to configure the origin so that viewers can + *only* access objects in an Amazon S3 bucket through CloudFront. The + format of the value is: + + `origin-access-identity/cloudfront/ID-of-origin-access-identity` + + The ` `*`ID-of-origin-access-identity`*` ` is the value that CloudFront + returned in the `ID` element when you created the origin access + identity. + + If you want viewers to be able to access objects using either the + CloudFront URL or the Amazon S3 URL, specify an empty + `OriginAccessIdentity` element. + + To delete the origin access identity from an existing distribution, + update the distribution configuration and include an empty + `OriginAccessIdentity` element. + + To replace the origin access identity, update the distribution + configuration and specify the new origin access identity. + + For more information about the origin access identity, see [Serving + Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + origin_read_timeout: int | None = ... + """ + Specifies how long, in seconds, CloudFront waits for a response from the + origin. This is also known as the *origin response timeout*. The minimum + timeout is 1 second, the maximum is 120 seconds, and the default (if you + don't specify otherwise) is 30 seconds. + + For more information, see [Response + timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class SessionStickinessConfig(_SerdeShape): + """ + Session stickiness provides the ability to define multiple requests from + a single viewer as a single session. This prevents the potentially + inconsistent experience of sending some of a given user's requests to + your staging distribution, while others are sent to your primary + distribution. Define the session duration using TTL values. + """ + + idle_ttl: int + """ + The amount of time after which you want sessions to cease if no requests + are received. Allowed values are 300--3600 seconds (5--60 minutes). + + The value must be less than or equal to `MaximumTTL`. + """ + maximum_ttl: int + """ + The maximum amount of time to consider requests from the viewer as being + part of the same session. Allowed values are 300--3600 seconds (5--60 + minutes). + + The value must be greater than or equal to `IdleTTL`. + """ + +@dataclass(kw_only=True) +class Signer(_SerdeShape): + """ + A list of Amazon Web Services accounts and the active CloudFront key + pairs in each account that CloudFront can use to verify the signatures + of signed URLs and signed cookies. + """ + + aws_account_number: str | None = ... + """ + An Amazon Web Services account number that contains active CloudFront + key pairs that CloudFront can use to verify the signatures of signed + URLs and signed cookies. If the Amazon Web Services account that owns + the key pairs is the same account that owns the CloudFront distribution, + the value of this field is `self`. + """ + key_pair_ids: KeyPairIds | None = ... + """A list of CloudFront key pair identifiers.""" + +class SslProtocol(UnknownEnumMixin, StrEnum): + SS_LV3 = "SSLv3" + TL_SV1 = "TLSv1" + TL_SV1_1 = "TLSv1.1" + TL_SV1_2 = "TLSv1.2" + +class SSLSupportMethod(UnknownEnumMixin, StrEnum): + SNI_ONLY = "sni-only" + VIP = "vip" + STATIC_IP = "static-ip" + +@dataclass(kw_only=True) +class StagingDistributionDnsNames(_SerdeShape): + """The CloudFront domain name of the staging distribution.""" + + quantity: int + """The number of CloudFront domain names in your staging distribution.""" + items: list[str] | None = ... + """The CloudFront domain name of the staging distribution.""" + +@dataclass(kw_only=True) +class StagingDistributionInUse(ServiceError, _SerdeShape): + """ + A continuous deployment policy for this staging distribution already + exists. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StatusCodes(_SerdeShape): + """ + A complex data type for the status codes that you specify that, when + returned by a primary origin, trigger CloudFront to failover to a second + origin. + """ + + quantity: int + """The number of status codes.""" + items: list[int] + """The items (status codes) for an origin group.""" + +@dataclass(kw_only=True) +class StreamingDistribution(_SerdeShape): + """ + A streaming distribution tells CloudFront where you want RTMP content to + be delivered from, and the details about how to track and manage content + delivery. + """ + + id: str + """ + The identifier for the RTMP distribution. For example: + `EGTXBD79EXAMPLE`. + """ + arn: str + """ + The ARN (Amazon Resource Name) for the distribution. For example: + `arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5`, where + `123456789012` is your Amazon Web Services account ID. + """ + status: str + """ + The current status of the RTMP distribution. When the status is + `Deployed`, the distribution's information is propagated to all + CloudFront edge locations. + """ + last_modified_time: datetime | None = ... + """The date and time that the distribution was last modified.""" + domain_name: str + """ + The domain name that corresponds to the streaming distribution, for + example, `s5c39gqb8ow64r.cloudfront.net`. + """ + active_trusted_signers: ActiveTrustedSigners + """ + A complex type that lists the Amazon Web Services accounts, if any, that + you included in the `TrustedSigners` complex type for this distribution. + These are the accounts that you want to allow to create signed URLs for + private content. + + The `Signer` complex type lists the Amazon Web Services account number + of the trusted signer or `self` if the signer is the Amazon Web Services + account that created the distribution. The `Signer` element also + includes the IDs of any active CloudFront key pairs that are associated + with the trusted signer's Amazon Web Services account. If no + `KeyPairId` element appears for a `Signer`, that signer can't create + signed URLs. + + For more information, see [Serving Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + streaming_distribution_config: StreamingDistributionConfig + """The current configuration information for the RTMP distribution.""" + +@dataclass(kw_only=True) +class StreamingDistributionAlreadyExists(ServiceError, _SerdeShape): + """ + The caller reference you attempted to create the streaming distribution + with is associated with another distribution + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StreamingDistributionConfig(_SerdeShape): + """The RTMP distribution's configuration information.""" + + caller_reference: str + """ + A unique value (for example, a date-time stamp) that ensures that the + request can't be replayed. + + If the value of `CallerReference` is new (regardless of the content of + the `StreamingDistributionConfig` object), CloudFront creates a new + distribution. + + If `CallerReference` is a value that you already sent in a previous + request to create a distribution, CloudFront returns a + `DistributionAlreadyExists` error. + """ + s3_origin: S3Origin + """ + A complex type that contains information about the Amazon S3 bucket from + which you want CloudFront to get your media files for distribution. + """ + aliases: Aliases | None = ... + """ + A complex type that contains information about CNAMEs (alternate domain + names), if any, for this streaming distribution. + """ + comment: str + """Any comments you want to include about the streaming distribution.""" + logging: StreamingLoggingConfig | None = ... + """ + A complex type that controls whether access logs are written for the + streaming distribution. + """ + trusted_signers: TrustedSigners + """ + A complex type that specifies any Amazon Web Services accounts that you + want to permit to create signed URLs for private content. If you want + the distribution to use signed URLs, include this element; if you want + the distribution to use public URLs, remove this element. For more + information, see [Serving Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + price_class: str | None = ... + """ + A complex type that contains information about price class for this + streaming distribution. + """ + enabled: bool + """ + Whether the streaming distribution is enabled to accept user requests + for content. + """ + +@dataclass(kw_only=True) +class StreamingDistributionConfigWithTags(_SerdeShape): + """ + A streaming distribution Configuration and a list of tags to be + associated with the streaming distribution. + """ + + streaming_distribution_config: StreamingDistributionConfig + """A streaming distribution Configuration.""" + tags: Tags + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class StreamingDistributionList(_SerdeShape): + """A streaming distribution list.""" + + marker: str + """The value you provided for the `Marker` request parameter.""" + next_marker: str | None = ... + """ + If `IsTruncated` is `true`, this element is present and contains the + value you can use for the `Marker` request parameter to continue listing + your RTMP distributions where they left off. + """ + max_items: int + """The value you provided for the `MaxItems` request parameter.""" + is_truncated: bool + """ + A flag that indicates whether more streaming distributions remain to be + listed. If your results were truncated, you can make a follow-up + pagination request using the `Marker` request parameter to retrieve more + distributions in the list. + """ + quantity: int + """ + The number of streaming distributions that were created by the current + Amazon Web Services account. + """ + items: list[StreamingDistributionSummary] | None = ... + """ + A complex type that contains one `StreamingDistributionSummary` element + for each distribution that was created by the current Amazon Web + Services account. + """ + +@dataclass(kw_only=True) +class StreamingDistributionNotDisabled(ServiceError, _SerdeShape): + """ + The specified CloudFront distribution is not disabled. You must disable + the distribution before you can delete it. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StreamingDistributionSummary(_SerdeShape): + """A summary of the information for a CloudFront streaming distribution.""" + + id: str + """The identifier for the distribution, for example, `EDFDVBD632BHDS5`.""" + arn: str + """ + The ARN (Amazon Resource Name) for the streaming distribution. For + example: + `arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5`, + where `123456789012` is your Amazon Web Services account ID. + """ + status: str + """ + Indicates the current status of the distribution. When the status is + `Deployed`, the distribution's information is fully propagated + throughout the Amazon CloudFront system. + """ + last_modified_time: datetime + """The date and time the distribution was last modified.""" + domain_name: str + """ + The domain name corresponding to the distribution, for example, + `d111111abcdef8.cloudfront.net`. + """ + s3_origin: S3Origin + """ + A complex type that contains information about the Amazon S3 bucket from + which you want CloudFront to get your media files for distribution. + """ + aliases: Aliases + """ + A complex type that contains information about CNAMEs (alternate domain + names), if any, for this streaming distribution. + """ + trusted_signers: TrustedSigners + """ + A complex type that specifies the Amazon Web Services accounts, if any, + that you want to allow to create signed URLs for private content. If you + want to require signed URLs in requests for objects in the target origin + that match the `PathPattern` for this cache behavior, specify `true` for + `Enabled`, and specify the applicable values for `Quantity` and + `Items`.If you don't want to require signed URLs in requests for + objects that match `PathPattern`, specify `false` for `Enabled` and `0` + for `Quantity`. Omit `Items`. To add, change, or remove one or more + trusted signers, change `Enabled` to `true` (if it's currently + `false`), change `Quantity` as applicable, and specify all of the + trusted signers that you want to include in the updated distribution. + + For more information, see [Serving Private Content through + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) + in the *Amazon CloudFront Developer Guide*. + """ + comment: str + """The comment originally specified when this distribution was created.""" + price_class: str + """ + A complex type that contains information about price class for this + streaming distribution. + """ + enabled: bool + """ + Whether the distribution is enabled to accept end user requests for + content. + """ + +@dataclass(kw_only=True) +class StreamingLoggingConfig(_SerdeShape): + """ + A complex type that controls whether access logs are written for this + streaming distribution. + """ + + enabled: bool + """ + Specifies whether you want CloudFront to save access logs to an Amazon + S3 bucket. If you don't want to enable logging when you create a + streaming distribution or if you want to disable logging for an existing + streaming distribution, specify `false` for `Enabled`, and specify + `empty Bucket` and `Prefix` elements. If you specify `false` for + `Enabled` but you specify values for `Bucket` and `Prefix`, the values + are automatically deleted. + """ + bucket: str + """ + The Amazon S3 bucket to store the access logs in, for example, + `amzn-s3-demo-bucket.s3.amazonaws.com`. + """ + prefix: str + """ + An optional string that you want CloudFront to prefix to the access log + filenames for this streaming distribution, for example, `myprefix/`. If + you want to enable logging, but you don't want to specify a prefix, you + still must include an empty `Prefix` element in the `Logging` element. + """ + +@dataclass(kw_only=True) +class StringSchemaConfig(_SerdeShape): + """The configuration for a string schema.""" + + comment: str | None = ... + """A comment to describe the parameter.""" + default_value: str | None = ... + """The default value of the parameter.""" + required: bool + """Whether the defined parameter is required.""" + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """A complex type that contains `Tag` key and `Tag` value.""" + + key: str + """ + A string that contains `Tag` key. + + The string length should be between 1 and 128 characters. Valid + characters include `a-z`, `A-Z`, `0-9`, space, and the special + characters `_ - . : / = + @`. + """ + value: str | None = ... + """ + A string that contains an optional `Tag` value. + + The string length should be between 0 and 256 characters. Valid + characters include `a-z`, `A-Z`, `0-9`, space, and the special + characters `_ - . : / = + @`. + """ + +@dataclass(kw_only=True) +class TagKeys(_SerdeShape): + """A complex type that contains zero or more `Tag` elements.""" + + items: list[str] | None = ... + """A complex type that contains `Tag` key elements.""" + +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """The request to add tags to a CloudFront resource.""" + + resource: str | None = ... + """An ARN of a CloudFront resource.""" + tags: Tags | None = ... + """A complex type that contains zero or more `Tag` elements.""" + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Tags(_SerdeShape): + """A complex type that contains zero or more `Tag` elements.""" + + items: list[Tag] | None = ... + """A complex type that contains `Tag` elements.""" + +@dataclass(kw_only=True) +class TenantConfig(_SerdeShape): + """ + Note: + This field only supports multi-tenant distributions. You can't specify + this field for standard distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + The configuration for a distribution tenant. + """ + + parameter_definitions: list[ParameterDefinition] | None = ... + """The parameters that you specify for a distribution tenant.""" + +@dataclass(kw_only=True) +class TestConnectionFunctionInput(_SerdeShape): + """Dataclass for TestConnectionFunctionInput structure.""" + + id: str | None = ... + """The connection function ID.""" + if_match: str | None = ... + """The current version (`ETag` value) of the connection function.""" + stage: str | None = ... + """The connection function stage.""" + connection_object: bytes | None = ... + """The connection object.""" + +@dataclass(kw_only=True) +class TestConnectionFunctionOutput(_SerdeShape): + """Dataclass for TestConnectionFunctionOutput structure.""" + + connection_function_test_result: ConnectionFunctionTestResult | None = ... + """The connection function test result.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TestFunctionFailed(ServiceError, _SerdeShape): + """The CloudFront function failed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TestFunctionInput(_SerdeShape): + """Dataclass for TestFunctionInput structure.""" + + name: str | None = ... + """The name of the function that you are testing.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the function that you are testing, + which you can get using `DescribeFunction`. + """ + stage: str | None = ... + """ + The stage of the function that you are testing, either `DEVELOPMENT` or + `LIVE`. + """ + event_object: bytes | None = ... + """ + The event object to test the function with. For more information about + the structure of the event object, see [Testing + functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class TestFunctionOutput(_SerdeShape): + """Dataclass for TestFunctionOutput structure.""" + + test_result: TestResult | None = ... + """ + An object that represents the result of running the function with the + provided event object. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TestResult(_SerdeShape): + """ + Contains the result of testing a CloudFront function with + `TestFunction`. + """ + + function_summary: FunctionSummary | None = ... + """ + Contains configuration information and metadata about the CloudFront + function that was tested. + """ + compute_utilization: str | None = ... + """ + The amount of time that the function took to run as a percentage of the + maximum allowed time. For example, a compute utilization of 35 means + that the function completed in 35% of the maximum allowed time. + """ + function_execution_logs: list[str] | None = ... + """ + Contains the log lines that the function wrote (if any) when running the + test. + """ + function_error_message: str | None = ... + """ + If the result of testing the function was an error, this field contains + the error message. + """ + function_output: str | None = ... + """ + The event object returned by the function. For more information about + the structure of the event object, see [Event object + structure](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-event-structure.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class TooLongCSPInResponseHeadersPolicy(ServiceError, _SerdeShape): + """ + The length of the `Content-Security-Policy` header value in the response + headers policy exceeds the maximum. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCacheBehaviors(ServiceError, _SerdeShape): + """You cannot create more cache behaviors for the distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCachePolicies(ServiceError, _SerdeShape): + """ + You have reached the maximum number of cache policies for this Amazon + Web Services account. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCertificates(ServiceError, _SerdeShape): + """You cannot create anymore custom SSL/TLS certificates.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCloudFrontOriginAccessIdentities(ServiceError, _SerdeShape): + """ + Processing your request would cause you to exceed the maximum number of + origin access identities allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyContinuousDeploymentPolicies(ServiceError, _SerdeShape): + """ + You have reached the maximum number of continuous deployment policies + for this Amazon Web Services account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCookieNamesInWhiteList(ServiceError, _SerdeShape): + """ + Your request contains more cookie names in the whitelist than are + allowed per cache behavior. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCookiesInCachePolicy(ServiceError, _SerdeShape): + """ + The number of cookies in the cache policy exceeds the maximum. For more + information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCookiesInOriginRequestPolicy(ServiceError, _SerdeShape): + """ + The number of cookies in the origin request policy exceeds the maximum. + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyCustomHeadersInResponseHeadersPolicy(ServiceError, _SerdeShape): + """ + The number of custom headers in the response headers policy exceeds the + maximum. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionCNAMEs(ServiceError, _SerdeShape): + """Your request contains more CNAMEs than are allowed per distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributions(ServiceError, _SerdeShape): + """ + Processing your request would cause you to exceed the maximum number of + distributions allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToCachePolicy(ServiceError, _SerdeShape): + """ + The maximum number of distributions have been associated with the + specified cache policy. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToFieldLevelEncryptionConfig( + ServiceError, _SerdeShape +): + """ + The maximum number of distributions have been associated with the + specified configuration for field-level encryption. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToKeyGroup(ServiceError, _SerdeShape): + """ + The number of distributions that reference this key group is more than + the maximum allowed. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToOriginAccessControl(ServiceError, _SerdeShape): + """ + The maximum number of distributions have been associated with the + specified origin access control. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToOriginRequestPolicy(ServiceError, _SerdeShape): + """ + The maximum number of distributions have been associated with the + specified origin request policy. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsAssociatedToResponseHeadersPolicy(ServiceError, _SerdeShape): + """ + The maximum number of distributions have been associated with the + specified response headers policy. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsWithFunctionAssociations(ServiceError, _SerdeShape): + """ + You have reached the maximum number of distributions that are associated + with a CloudFront function. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsWithLambdaAssociations(ServiceError, _SerdeShape): + """ + Processing your request would cause the maximum number of distributions + with Lambda@Edge function associations per owner to be exceeded. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyDistributionsWithSingleFunctionARN(ServiceError, _SerdeShape): + """ + The maximum number of distributions have been associated with the + specified Lambda@Edge function. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionConfigs(ServiceError, _SerdeShape): + """ + The maximum number of configurations for field-level encryption have + been created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionContentTypeProfiles(ServiceError, _SerdeShape): + """ + The maximum number of content type profiles for field-level encryption + have been created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionEncryptionEntities(ServiceError, _SerdeShape): + """ + The maximum number of encryption entities for field-level encryption + have been created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionFieldPatterns(ServiceError, _SerdeShape): + """ + The maximum number of field patterns for field-level encryption have + been created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionProfiles(ServiceError, _SerdeShape): + """ + The maximum number of profiles for field-level encryption have been + created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFieldLevelEncryptionQueryArgProfiles(ServiceError, _SerdeShape): + """ + The maximum number of query arg profiles for field-level encryption have + been created. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFunctionAssociations(ServiceError, _SerdeShape): + """ + You have reached the maximum number of CloudFront function associations + for this distribution. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyFunctions(ServiceError, _SerdeShape): + """ + You have reached the maximum number of CloudFront functions for this + Amazon Web Services account. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyHeadersInCachePolicy(ServiceError, _SerdeShape): + """ + The number of headers in the cache policy exceeds the maximum. For more + information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyHeadersInForwardedValues(ServiceError, _SerdeShape): + """Your request contains too many headers in forwarded values.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyHeadersInOriginRequestPolicy(ServiceError, _SerdeShape): + """ + The number of headers in the origin request policy exceeds the maximum. + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyInvalidationsInProgress(ServiceError, _SerdeShape): + """ + You have exceeded the maximum number of allowable InProgress + invalidation batch requests, or invalidation objects. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyKeyGroups(ServiceError, _SerdeShape): + """ + You have reached the maximum number of key groups for this Amazon Web + Services account. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyKeyGroupsAssociatedToDistribution(ServiceError, _SerdeShape): + """ + The number of key groups referenced by this distribution is more than + the maximum allowed. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyLambdaFunctionAssociations(ServiceError, _SerdeShape): + """ + Your request contains more Lambda@Edge function associations than are + allowed per distribution. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyOriginAccessControls(ServiceError, _SerdeShape): + """ + The number of origin access controls in your Amazon Web Services account + exceeds the maximum allowed. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyOriginCustomHeaders(ServiceError, _SerdeShape): + """Your request contains too many origin custom headers.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyOriginGroupsPerDistribution(ServiceError, _SerdeShape): + """ + Processing your request would cause you to exceed the maximum number of + origin groups allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyOriginRequestPolicies(ServiceError, _SerdeShape): + """ + You have reached the maximum number of origin request policies for this + Amazon Web Services account. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyOrigins(ServiceError, _SerdeShape): + """You cannot create more origins for the distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyPublicKeys(ServiceError, _SerdeShape): + """ + The maximum number of public keys for field-level encryption have been + created. To create a new public key, delete one of the existing keys. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyPublicKeysInKeyGroup(ServiceError, _SerdeShape): + """ + The number of public keys in this key group is more than the maximum + allowed. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyQueryStringParameters(ServiceError, _SerdeShape): + """Your request contains too many query string parameters.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyQueryStringsInCachePolicy(ServiceError, _SerdeShape): + """ + The number of query strings in the cache policy exceeds the maximum. For + more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyQueryStringsInOriginRequestPolicy(ServiceError, _SerdeShape): + """ + The number of query strings in the origin request policy exceeds the + maximum. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyRealtimeLogConfigs(ServiceError, _SerdeShape): + """ + You have reached the maximum number of real-time log configurations for + this Amazon Web Services account. For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyRemoveHeadersInResponseHeadersPolicy(ServiceError, _SerdeShape): + """ + The number of headers in `RemoveHeadersConfig` in the response headers + policy exceeds the maximum. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyResponseHeadersPolicies(ServiceError, _SerdeShape): + """ + You have reached the maximum number of response headers policies for + this Amazon Web Services account. + + For more information, see + [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) + (formerly known as limits) in the *Amazon CloudFront Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyStreamingDistributionCNAMEs(ServiceError, _SerdeShape): + """Your request contains more CNAMEs than are allowed per distribution.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyStreamingDistributions(ServiceError, _SerdeShape): + """ + Processing your request would cause you to exceed the maximum number of + streaming distributions allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TooManyTrustedSigners(ServiceError, _SerdeShape): + """ + Your request contains more trusted signers than are allowed per + distribution. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TrafficConfig(_SerdeShape): + """The traffic configuration of your continuous deployment.""" + + single_weight_config: ContinuousDeploymentSingleWeightConfig | None = ... + """Contains the percentage of traffic to send to the staging distribution.""" + single_header_config: ContinuousDeploymentSingleHeaderConfig | None = ... + """Determines which HTTP requests are sent to the staging distribution.""" + type: str + """The type of traffic configuration.""" + +@dataclass(kw_only=True) +class TrustedKeyGroupDoesNotExist(ServiceError, _SerdeShape): + """The specified key group does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TrustedKeyGroups(_SerdeShape): + """ + A list of key groups whose public keys CloudFront can use to verify the + signatures of signed URLs and signed cookies. + """ + + enabled: bool + """ + This field is `true` if any of the key groups in the list have public + keys that CloudFront can use to verify the signatures of signed URLs and + signed cookies. If not, this field is `false`. + """ + quantity: int + """The number of key groups in the list.""" + items: list[str] | None = ... + """A list of key groups identifiers.""" + +@dataclass(kw_only=True) +class TrustedSignerDoesNotExist(ServiceError, _SerdeShape): + """One or more of your trusted signers don't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TrustedSigners(_SerdeShape): + """ + A list of Amazon Web Services accounts whose public keys CloudFront can + use to verify the signatures of signed URLs and signed cookies. + """ + + enabled: bool + """ + This field is `true` if any of the Amazon Web Services accounts in the + list are configured as trusted signers. If not, this field is `false`. + """ + quantity: int + """The number of Amazon Web Services accounts in the list.""" + items: list[str] | None = ... + """A list of Amazon Web Services account identifiers.""" + +@dataclass(kw_only=True) +class TrustStore(_SerdeShape): + """A trust store.""" + + id: str | None = ... + """The trust store's ID.""" + arn: str | None = ... + """The trust store's Amazon Resource Name (ARN).""" + name: str | None = ... + """The trust store's name.""" + status: str | None = ... + """The trust store's status.""" + number_of_ca_certificates: int | None = ... + """The trust store's number of CA certificates.""" + last_modified_time: datetime | None = ... + """The trust store's last modified time.""" + reason: str | None = ... + """The trust store's reason.""" + use_client_certificate_ocsp_endpoint: bool | None = ... + """ + A Boolean that determines whether the trust store uses the CA + certificate's OCSP endpoint to check certificate revocation status. + """ + +@dataclass(kw_only=True) +class TrustStoreConfig(_SerdeShape): + """A trust store configuration.""" + + trust_store_id: str + """The trust store ID.""" + advertise_trust_store_ca_names: bool | None = ... + """The configuration to use to advertise trust store CA names.""" + ignore_certificate_expiry: bool | None = ... + """The configuration to use to ignore certificate expiration.""" + +class TrustStoreStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + FAILED = "failed" + +@dataclass(kw_only=True) +class TrustStoreSummary(_SerdeShape): + """A trust store summary.""" + + id: str + """The trust store's ID.""" + arn: str + """The trust store's Amazon Resource Name (ARN).""" + name: str + """The trust store's name.""" + status: str + """The trust store's status.""" + number_of_ca_certificates: int + """The trust store's number of CA certificates.""" + last_modified_time: datetime + """The trust store's last modified time.""" + reason: str | None = ... + """The trust store's reason.""" + e_tag: str + """The version identifier for the current version of the trust store.""" + +@dataclass(kw_only=True) +class UnsupportedOperation(ServiceError, _SerdeShape): + """This operation is not supported in this Amazon Web Services Region.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """The request to remove tags from a CloudFront resource.""" + + resource: str | None = ... + """An ARN of a CloudFront resource.""" + tag_keys: TagKeys | None = ... + """A complex type that contains zero or more `Tag` key elements.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAnycastIpListInput(_SerdeShape): + """Dataclass for UpdateAnycastIpListInput structure.""" + + id: str | None = ... + """The ID of the Anycast static IP list.""" + ip_address_type: str | None = ... + """ + The IP address type for the Anycast static IP list. You can specify one + of the following options: + + - `ipv4` only + + - `ipv6` only + + - `dualstack` - Allocate a list of both IPv4 and IPv6 addresses + """ + ipam_cidr_configs: list[IpamCidrConfig] | None = ... + """ + A list of IPAM CIDR configurations that specify the IP address ranges + and IPAM pool settings for updating the Anycast static IP list. + """ + if_match: str | None = ... + """ + The current version (ETag value) of the Anycast static IP list that you + are updating. + """ + +@dataclass(kw_only=True) +class UpdateAnycastIpListOutput(_SerdeShape): + """Dataclass for UpdateAnycastIpListOutput structure.""" + + anycast_ip_list: AnycastIpList | None = ... + """ + An Anycast static IP list. For more information, see [Request Anycast + static IPs to use for + allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) + in the *Amazon CloudFront Developer Guide*. + """ + e_tag: str | None = ... + """The current version of the Anycast static IP list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCachePolicyInput(_SerdeShape): + """Dataclass for UpdateCachePolicyInput structure.""" + + cache_policy_config: CachePolicyConfig | None = ... + """A cache policy configuration.""" + id: str | None = ... + """ + The unique identifier for the cache policy that you are updating. The + identifier is returned in a cache behavior's `CachePolicyId` field in + the response to `GetDistributionConfig`. + """ + if_match: str | None = ... + """ + The version of the cache policy that you are updating. The version is + returned in the cache policy's `ETag` field in the response to + `GetCachePolicyConfig`. + """ + +@dataclass(kw_only=True) +class UpdateCachePolicyOutput(_SerdeShape): + """Dataclass for UpdateCachePolicyOutput structure.""" + + cache_policy: CachePolicy | None = ... + """A cache policy.""" + e_tag: str | None = ... + """The current version of the cache policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCloudFrontOriginAccessIdentityInput(_SerdeShape): + """The request to update an origin access identity.""" + + cloud_front_origin_access_identity_config: ( + CloudFrontOriginAccessIdentityConfig | None + ) = ... + """The identity's configuration information.""" + id: str | None = ... + """The identity's id.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + identity's configuration. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdateCloudFrontOriginAccessIdentityOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + cloud_front_origin_access_identity: CloudFrontOriginAccessIdentity | None = ... + """The origin access identity's information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateConnectionFunctionInput(_SerdeShape): + """Dataclass for UpdateConnectionFunctionInput structure.""" + + id: str | None = ... + """The connection function ID.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the connection function you are + updating. + """ + connection_function_config: FunctionConfig | None = ... + """Contains configuration information about a CloudFront function.""" + connection_function_code: bytes | None = ... + """The connection function code.""" + +@dataclass(kw_only=True) +class UpdateConnectionFunctionOutput(_SerdeShape): + """Dataclass for UpdateConnectionFunctionOutput structure.""" + + connection_function_summary: ConnectionFunctionSummary | None = ... + """The connection function summary.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the connection + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateConnectionGroupInput(_SerdeShape): + """Dataclass for UpdateConnectionGroupInput structure.""" + + id: str | None = ... + """The ID of the connection group.""" + ipv6_enabled: bool | None = ... + """ + Enable IPv6 for the connection group. For more information, see [Enable + IPv6](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesEnableIPv6) + in the *Amazon CloudFront Developer Guide*. + """ + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + connection group that you're updating. + """ + anycast_ip_list_id: str | None = ... + """The ID of the Anycast static IP list.""" + enabled: bool | None = ... + """Whether the connection group is enabled.""" + +@dataclass(kw_only=True) +class UpdateConnectionGroupOutput(_SerdeShape): + """Dataclass for UpdateConnectionGroupOutput structure.""" + + connection_group: ConnectionGroup | None = ... + """The connection group that you updated.""" + e_tag: str | None = ... + """The current version of the connection group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateContinuousDeploymentPolicyInput(_SerdeShape): + """Dataclass for UpdateContinuousDeploymentPolicyInput structure.""" + + continuous_deployment_policy_config: ContinuousDeploymentPolicyConfig | None = ... + """The continuous deployment policy configuration.""" + id: str | None = ... + """ + The identifier of the continuous deployment policy that you are + updating. + """ + if_match: str | None = ... + """ + The current version (`ETag` value) of the continuous deployment policy + that you are updating. + """ + +@dataclass(kw_only=True) +class UpdateContinuousDeploymentPolicyOutput(_SerdeShape): + """Dataclass for UpdateContinuousDeploymentPolicyOutput structure.""" + + continuous_deployment_policy: ContinuousDeploymentPolicy | None = ... + """A continuous deployment policy.""" + e_tag: str | None = ... + """ + The version identifier for the current version of the continuous + deployment policy. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDistributionInput(_SerdeShape): + """The request to update a distribution.""" + + distribution_config: DistributionConfig | None = ... + """The distribution's configuration information.""" + id: str | None = ... + """The distribution's id.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + distribution's configuration. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdateDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + distribution: Distribution | None = ... + """The distribution's information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDistributionTenantInput(_SerdeShape): + """Dataclass for UpdateDistributionTenantInput structure.""" + + id: str | None = ... + """The ID of the distribution tenant.""" + distribution_id: str | None = ... + """The ID for the multi-tenant distribution.""" + domains: list[DomainItem] | None = ... + """ + The domains to update for the distribution tenant. A domain object can + contain only a domain property. You must specify at least one domain. + Each distribution tenant can have up to 5 domains. + """ + customizations: Customizations | None = ... + """ + Customizations for the distribution tenant. For each distribution + tenant, you can specify the geographic restrictions, and the Amazon + Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are + specific values that you can override or disable from the multi-tenant + distribution that was used to create the distribution tenant. + """ + parameters: list[Parameter] | None = ... + """ + A list of parameter values to add to the resource. A parameter is + specified as a key-value pair. A valid parameter value must exist for + any parameter that is marked as required in the multi-tenant + distribution. + """ + connection_group_id: str | None = ... + """The ID of the target connection group.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + distribution tenant to update. This value is returned in the response of + the `GetDistributionTenant` API operation. + """ + managed_certificate_request: ManagedCertificateRequest | None = ... + """An object that contains the CloudFront managed ACM certificate request.""" + enabled: bool | None = ... + """ + Indicates whether the distribution tenant should be updated to an + enabled state. If you update the distribution tenant and it's not + enabled, the distribution tenant won't serve traffic. + """ + +@dataclass(kw_only=True) +class UpdateDistributionTenantOutput(_SerdeShape): + """Dataclass for UpdateDistributionTenantOutput structure.""" + + distribution_tenant: DistributionTenant | None = ... + """The distribution tenant that you're updating.""" + e_tag: str | None = ... + """The current version of the distribution tenant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDistributionWithStagingConfigInput(_SerdeShape): + """Dataclass for UpdateDistributionWithStagingConfigInput structure.""" + + id: str | None = ... + """ + The identifier of the primary distribution to which you are copying a + staging distribution's configuration. + """ + staging_distribution_id: str | None = ... + """ + The identifier of the staging distribution whose configuration you are + copying to the primary distribution. + """ + if_match: str | None = ... + """ + The current versions (`ETag` values) of both primary and staging + distributions. Provide these in the following format: + + `, ` + """ + +@dataclass(kw_only=True) +class UpdateDistributionWithStagingConfigOutput(_SerdeShape): + """Dataclass for UpdateDistributionWithStagingConfigOutput structure.""" + + distribution: Distribution | None = ... + """ + A distribution tells CloudFront where you want content to be delivered + from, and the details about how to track and manage content delivery. + """ + e_tag: str | None = ... + """The current version of the primary distribution (after it's updated).""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDomainAssociationInput(_SerdeShape): + """Dataclass for UpdateDomainAssociationInput structure.""" + + domain: str | None = ... + """The domain to update.""" + target_resource: DistributionResourceId | None = ... + """ + The target standard distribution or distribution tenant resource for the + domain. You can specify either `DistributionId` or + `DistributionTenantId`, but not both. + """ + if_match: str | None = ... + """ + The value of the `ETag` identifier for the standard distribution or + distribution tenant that will be associated with the domain. + """ + +@dataclass(kw_only=True) +class UpdateDomainAssociationOutput(_SerdeShape): + """Dataclass for UpdateDomainAssociationOutput structure.""" + + domain: str | None = ... + """The domain that you're moving.""" + resource_id: str | None = ... + """The intended destination for the domain.""" + e_tag: str | None = ... + """ + The current version of the target standard distribution or distribution + tenant that was associated with the domain. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateFieldLevelEncryptionConfigInput(_SerdeShape): + """Dataclass for UpdateFieldLevelEncryptionConfigInput structure.""" + + field_level_encryption_config: FieldLevelEncryptionConfig | None = ... + """Request to update a field-level encryption configuration.""" + id: str | None = ... + """The ID of the configuration you want to update.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + configuration identity to update. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdateFieldLevelEncryptionConfigOutput(_SerdeShape): + """Dataclass for UpdateFieldLevelEncryptionConfigOutput structure.""" + + field_level_encryption: FieldLevelEncryption | None = ... + """Return the results of updating the configuration.""" + e_tag: str | None = ... + """ + The value of the `ETag` header that you received when updating the + configuration. For example: `E2QWRUHAPOMQZL`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateFieldLevelEncryptionProfileInput(_SerdeShape): + """Dataclass for UpdateFieldLevelEncryptionProfileInput structure.""" + + field_level_encryption_profile_config: ( + FieldLevelEncryptionProfileConfig | None + ) = ... + """Request to update a field-level encryption profile.""" + id: str | None = ... + """The ID of the field-level encryption profile request.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + profile identity to update. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdateFieldLevelEncryptionProfileOutput(_SerdeShape): + """Dataclass for UpdateFieldLevelEncryptionProfileOutput structure.""" + + field_level_encryption_profile: FieldLevelEncryptionProfile | None = ... + """Return the results of updating the profile.""" + e_tag: str | None = ... + """The result of the field-level encryption profile request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateFunctionInput(_SerdeShape): + """Dataclass for UpdateFunctionInput structure.""" + + name: str | None = ... + """The name of the function that you are updating.""" + if_match: str | None = ... + """ + The current version (`ETag` value) of the function that you are + updating, which you can get using `DescribeFunction`. + """ + function_config: FunctionConfig | None = ... + """Configuration information about the function.""" + function_code: bytes | None = ... + """ + The function code. For more information about writing a CloudFront + function, see [Writing function code for CloudFront + Functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class UpdateFunctionOutput(_SerdeShape): + """Dataclass for UpdateFunctionOutput structure.""" + + function_summary: FunctionSummary | None = ... + """ + Contains configuration information and metadata about a CloudFront + function. + """ + e_tag: str | None = ... + """ + The version identifier for the current version of the CloudFront + function. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateKeyGroupInput(_SerdeShape): + """Dataclass for UpdateKeyGroupInput structure.""" + + key_group_config: KeyGroupConfig | None = ... + """The key group configuration.""" + id: str | None = ... + """The identifier of the key group that you are updating.""" + if_match: str | None = ... + """ + The version of the key group that you are updating. The version is the + key group's `ETag` value. + """ + +@dataclass(kw_only=True) +class UpdateKeyGroupOutput(_SerdeShape): + """Dataclass for UpdateKeyGroupOutput structure.""" + + key_group: KeyGroup | None = ... + """The key group that was just updated.""" + e_tag: str | None = ... + """The identifier for this version of the key group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateKeyValueStoreInput(_SerdeShape): + """Dataclass for UpdateKeyValueStoreInput structure.""" + + name: str | None = ... + """The name of the key value store to update.""" + comment: str | None = ... + """The comment of the key value store to update.""" + if_match: str | None = ... + """The key value store to update, if a match occurs.""" + +@dataclass(kw_only=True) +class UpdateKeyValueStoreOutput(_SerdeShape): + """Dataclass for UpdateKeyValueStoreOutput structure.""" + + key_value_store: KeyValueStore | None = ... + """The resulting key value store to update.""" + e_tag: str | None = ... + """The `ETag` of the resulting key value store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateOriginAccessControlInput(_SerdeShape): + """Dataclass for UpdateOriginAccessControlInput structure.""" + + origin_access_control_config: OriginAccessControlConfig | None = ... + """An origin access control.""" + id: str | None = ... + """ + The unique identifier of the origin access control that you are + updating. + """ + if_match: str | None = ... + """ + The current version (`ETag` value) of the origin access control that you + are updating. + """ + +@dataclass(kw_only=True) +class UpdateOriginAccessControlOutput(_SerdeShape): + """Dataclass for UpdateOriginAccessControlOutput structure.""" + + origin_access_control: OriginAccessControl | None = ... + """The origin access control after it has been updated.""" + e_tag: str | None = ... + """The new version of the origin access control after it has been updated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateOriginRequestPolicyInput(_SerdeShape): + """Dataclass for UpdateOriginRequestPolicyInput structure.""" + + origin_request_policy_config: OriginRequestPolicyConfig | None = ... + """An origin request policy configuration.""" + id: str | None = ... + """ + The unique identifier for the origin request policy that you are + updating. The identifier is returned in a cache behavior's + `OriginRequestPolicyId` field in the response to + `GetDistributionConfig`. + """ + if_match: str | None = ... + """ + The version of the origin request policy that you are updating. The + version is returned in the origin request policy's `ETag` field in the + response to `GetOriginRequestPolicyConfig`. + """ + +@dataclass(kw_only=True) +class UpdateOriginRequestPolicyOutput(_SerdeShape): + """Dataclass for UpdateOriginRequestPolicyOutput structure.""" + + origin_request_policy: OriginRequestPolicy | None = ... + """An origin request policy.""" + e_tag: str | None = ... + """The current version of the origin request policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdatePublicKeyInput(_SerdeShape): + """Dataclass for UpdatePublicKeyInput structure.""" + + public_key_config: PublicKeyConfig | None = ... + """A public key configuration.""" + id: str | None = ... + """The identifier of the public key that you are updating.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + public key to update. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdatePublicKeyOutput(_SerdeShape): + """Dataclass for UpdatePublicKeyOutput structure.""" + + public_key: PublicKey | None = ... + """The public key.""" + e_tag: str | None = ... + """The identifier of the current version of the public key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateRealtimeLogConfigInput(_SerdeShape): + """Dataclass for UpdateRealtimeLogConfigInput structure.""" + + end_points: list[EndPoint] | None = ... + """ + Contains information about the Amazon Kinesis data stream where you are + sending real-time log data. + """ + fields: list[str] | None = ... + """ + A list of fields to include in each real-time log record. + + For more information about fields, see [Real-time log configuration + fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) + in the *Amazon CloudFront Developer Guide*. + """ + name: str | None = ... + """The name for this real-time log configuration.""" + arn: str | None = ... + """The Amazon Resource Name (ARN) for this real-time log configuration.""" + sampling_rate: int | None = ... + """ + The sampling rate for this real-time log configuration. The sampling + rate determines the percentage of viewer requests that are represented + in the real-time log data. You must provide an integer between 1 and + 100, inclusive. + """ + +@dataclass(kw_only=True) +class UpdateRealtimeLogConfigOutput(_SerdeShape): + """Dataclass for UpdateRealtimeLogConfigOutput structure.""" + + realtime_log_config: RealtimeLogConfig | None = ... + """A real-time log configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateResponseHeadersPolicyInput(_SerdeShape): + """Dataclass for UpdateResponseHeadersPolicyInput structure.""" + + response_headers_policy_config: ResponseHeadersPolicyConfig | None = ... + """A response headers policy configuration.""" + id: str | None = ... + """The identifier for the response headers policy that you are updating.""" + if_match: str | None = ... + """ + The version of the response headers policy that you are updating. + + The version is returned in the cache policy's `ETag` field in the + response to `GetResponseHeadersPolicyConfig`. + """ + +@dataclass(kw_only=True) +class UpdateResponseHeadersPolicyOutput(_SerdeShape): + """Dataclass for UpdateResponseHeadersPolicyOutput structure.""" + + response_headers_policy: ResponseHeadersPolicy | None = ... + """A response headers policy.""" + e_tag: str | None = ... + """The current version of the response headers policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStreamingDistributionInput(_SerdeShape): + """The request to update a streaming distribution.""" + + streaming_distribution_config: StreamingDistributionConfig | None = ... + """The streaming distribution's configuration information.""" + id: str | None = ... + """The streaming distribution's id.""" + if_match: str | None = ... + """ + The value of the `ETag` header that you received when retrieving the + streaming distribution's configuration. For example: `E2QWRUHAPOMQZL`. + """ + +@dataclass(kw_only=True) +class UpdateStreamingDistributionOutput(_SerdeShape): + """The returned result of the corresponding request.""" + + streaming_distribution: StreamingDistribution | None = ... + """The streaming distribution's information.""" + e_tag: str | None = ... + """The current version of the configuration. For example: `E2QWRUHAPOMQZL`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateTrustStoreInput(_SerdeShape): + """Dataclass for UpdateTrustStoreInput structure.""" + + id: str | None = ... + """The trust store ID.""" + ca_certificates_bundle_source: CaCertificatesBundleSource | None = ... + """The CA certificates bundle source.""" + use_client_certificate_ocsp_endpoint: bool | None = ... + """ + A Boolean that determines whether to use the CA certificate's OCSP + endpoint to check certificate revocation status. + """ + if_match: str | None = ... + """The current version (`ETag` value) of the trust store you are updating.""" + +@dataclass(kw_only=True) +class UpdateTrustStoreOutput(_SerdeShape): + """Dataclass for UpdateTrustStoreOutput structure.""" + + trust_store: TrustStore | None = ... + """The trust store.""" + e_tag: str | None = ... + """The version identifier for the current version of the trust store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateVpcOriginInput(_SerdeShape): + """Dataclass for UpdateVpcOriginInput structure.""" + + vpc_origin_endpoint_config: VpcOriginEndpointConfig | None = ... + """The VPC origin endpoint configuration.""" + id: str | None = ... + """The VPC origin ID.""" + if_match: str | None = ... + """The VPC origin to update, if a match occurs.""" + +@dataclass(kw_only=True) +class UpdateVpcOriginOutput(_SerdeShape): + """Dataclass for UpdateVpcOriginOutput structure.""" + + vpc_origin: VpcOrigin | None = ... + """The VPC origin.""" + e_tag: str | None = ... + """The VPC origin ETag.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ValidationTokenDetail(_SerdeShape): + """Contains details about the validation token.""" + + domain: str + """The domain name.""" + redirect_to: str | None = ... + """The domain to redirect to.""" + redirect_from: str | None = ... + """The domain to redirect from.""" + +class ValidationTokenHost(UnknownEnumMixin, StrEnum): + CLOUD_FRONT = "cloudfront" + SELF_HOSTED = "self-hosted" + +@dataclass(kw_only=True) +class VerifyDnsConfigurationInput(_SerdeShape): + """Dataclass for VerifyDnsConfigurationInput structure.""" + + domain: str | None = ... + """The domain name that you're verifying.""" + identifier: str | None = ... + """ + The identifier of the distribution tenant. You can specify the ARN, ID, + or name of the distribution tenant. + """ + +@dataclass(kw_only=True) +class VerifyDnsConfigurationOutput(_SerdeShape): + """Dataclass for VerifyDnsConfigurationOutput structure.""" + + dns_configuration_list: list[DnsConfiguration] | None = ... + """ + The list of domain names, their statuses, and a description of each + status. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ViewerCertificate(_SerdeShape): + """ + A complex type that determines the distribution's SSL/TLS configuration + for communicating with viewers. + + If the distribution doesn't use `Aliases` (also known as alternate + domain names or CNAMEs)---that is, if the distribution uses the + CloudFront domain name such as `d111111abcdef8.cloudfront.net`---set + `CloudFrontDefaultCertificate` to `true` and leave all other fields + empty. + + If the distribution uses `Aliases` (alternate domain names or CNAMEs), + use the fields in this type to specify the following settings: + + - Which viewers the distribution accepts HTTPS connections from: only + viewers that support [server name indication + (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) + (recommended), or all viewers including those that don't support SNI. + + - To accept HTTPS connections from only viewers that support SNI, set + `SSLSupportMethod` to `sni-only`. This is recommended. Most browsers + and clients support SNI. + + - To accept HTTPS connections from all viewers, including those that + don't support SNI, set `SSLSupportMethod` to `vip`. This is not + recommended, and results in additional monthly charges from + CloudFront. + + - The minimum SSL/TLS protocol version that the distribution can use to + communicate with viewers. To specify a minimum version, choose a value + for `MinimumProtocolVersion`. For more information, see [Security + Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) + in the *Amazon CloudFront Developer Guide*. + + - The location of the SSL/TLS certificate, [Certificate Manager + (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) + (recommended) or [Identity and Access Management + (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). + You specify the location by setting a value in one of the following + fields (not both): + + - `ACMCertificateArn` + + - `IAMCertificateId` + + All distributions support HTTPS connections from viewers. To require + viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use + `ViewerProtocolPolicy` in the `CacheBehavior` or `DefaultCacheBehavior`. + To specify how CloudFront should use SSL/TLS to communicate with your + custom origin, use `CustomOriginConfig`. + + For more information, see [Using HTTPS with + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) + and [Using Alternate Domain Names and + HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) + in the *Amazon CloudFront Developer Guide*. + """ + + cloud_front_default_certificate: bool | None = ... + """ + If the distribution uses the CloudFront domain name such as + `d111111abcdef8.cloudfront.net`, set this field to `true`. + + If the distribution uses `Aliases` (alternate domain names or CNAMEs), + set this field to `false` and specify values for the following fields: + + - `ACMCertificateArn` or `IAMCertificateId` (specify a value for one, + not both) + + - `MinimumProtocolVersion` + + - `SSLSupportMethod` + """ + iam_certificate_id: str | None = ... + """ + Note: + This field only supports standard distributions. You can't specify this + field for multi-tenant distributions. For more information, see + [Unsupported features for SaaS Manager for Amazon + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html#unsupported-saas) + in the *Amazon CloudFront Developer Guide*. + + If the distribution uses `Aliases` (alternate domain names or CNAMEs) + and the SSL/TLS certificate is stored in [Identity and Access Management + (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), + provide the ID of the IAM certificate. + + If you specify an IAM certificate ID, you must also specify values for + `MinimumProtocolVersion` and `SSLSupportMethod`. + """ + acm_certificate_arn: str | None = ... + """ + If the distribution uses `Aliases` (alternate domain names or CNAMEs) + and the SSL/TLS certificate is stored in [Certificate Manager + (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), + provide the Amazon Resource Name (ARN) of the ACM certificate. + CloudFront only supports ACM certificates in the US East (N. Virginia) + Region (`us-east-1`). + + If you specify an ACM certificate ARN, you must also specify values for + `MinimumProtocolVersion` and `SSLSupportMethod`. + """ + ssl_support_method: str | None = ... + """ + If the distribution uses `Aliases` (alternate domain names or CNAMEs), + specify which viewers the distribution accepts HTTPS connections from. + + - `sni-only` -- The distribution accepts HTTPS connections from only + viewers that support [server name indication + (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication). This is + recommended. Most browsers and clients support SNI. + + - `vip` -- The distribution accepts HTTPS connections from all viewers + including those that don't support SNI. This is not recommended, and + results in additional monthly charges from CloudFront. + + - `static-ip` - Do not specify this value unless your distribution has + been enabled for this feature by the CloudFront team. If you have a + use case that requires static IP addresses for a distribution, contact + CloudFront through the [Amazon Web ServicesSupport + Center](https://console.aws.amazon.com/support/home). + + If the distribution uses the CloudFront domain name such as + `d111111abcdef8.cloudfront.net`, don't set a value for this field. + """ + minimum_protocol_version: str | None = ... + """ + If the distribution uses `Aliases` (alternate domain names or CNAMEs), + specify the security policy that you want CloudFront to use for HTTPS + connections with viewers. The security policy determines two settings: + + - The minimum SSL/TLS protocol that CloudFront can use to communicate + with viewers. + + - The ciphers that CloudFront can use to encrypt the content that it + returns to viewers. + + For more information, see [Security + Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) + and [Supported Protocols and Ciphers Between Viewers and + CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) + in the *Amazon CloudFront Developer Guide*. + + Note: + On the CloudFront console, this setting is called **Security Policy**. + + When you're using SNI only (you set `SSLSupportMethod` to `sni-only`), + you must specify `TLSv1` or higher. + + If the distribution uses the CloudFront domain name such as + `d111111abcdef8.cloudfront.net` (you set `CloudFrontDefaultCertificate` + to `true`), CloudFront automatically sets the security policy to `TLSv1` + regardless of the value that you set here. + """ + certificate: str | None = ... + """ + This field is deprecated. Use one of the following fields instead: + + - `ACMCertificateArn` + + - `IAMCertificateId` + + - `CloudFrontDefaultCertificate` + """ + certificate_source: str | None = ... + """ + This field is deprecated. Use one of the following fields instead: + + - `ACMCertificateArn` + + - `IAMCertificateId` + + - `CloudFrontDefaultCertificate` + """ + +@dataclass(kw_only=True) +class ViewerMtlsConfig(_SerdeShape): + """A viewer mTLS configuration.""" + + mode: str = ... + """The viewer mTLS mode.""" + trust_store_config: TrustStoreConfig | None = ... + """ + The trust store configuration associated with the viewer mTLS + configuration. + """ + +class ViewerMtlsMode(UnknownEnumMixin, StrEnum): + REQUIRED = "required" + OPTIONAL = "optional" + PASSTHROUGH = "passthrough" + +class ViewerProtocolPolicy(UnknownEnumMixin, StrEnum): + ALLOW_ALL = "allow-all" + HTTPS_ONLY = "https-only" + REDIRECT_TO_HTTPS = "redirect-to-https" + +class VpcIpAddressType(UnknownEnumMixin, StrEnum): + """ + IP address type supported for VPC Origins. IPv6-only is not supported + for VPC Origins. + """ + + IPV4 = "ipv4" + DUAL_STACK = "dualstack" + +@dataclass(kw_only=True) +class VpcOrigin(_SerdeShape): + """An Amazon CloudFront VPC origin.""" + + id: str + """The VPC origin ID.""" + arn: str + """The VPC origin ARN.""" + account_id: str | None = ... + """ + The account ID of the Amazon Web Services account that owns the VPC + origin. + """ + status: str + """The VPC origin status.""" + created_time: datetime + """The VPC origin created time.""" + last_modified_time: datetime + """The VPC origin last modified time.""" + vpc_origin_endpoint_config: VpcOriginEndpointConfig + """The VPC origin endpoint configuration.""" + +@dataclass(kw_only=True) +class VpcOriginConfig(_SerdeShape): + """An Amazon CloudFront VPC origin configuration.""" + + vpc_origin_id: str + """The VPC origin ID.""" + owner_account_id: str | None = ... + """ + The account ID of the Amazon Web Services account that owns the VPC + origin. + """ + origin_read_timeout: int | None = ... + """ + Specifies how long, in seconds, CloudFront waits for a response from the + origin. This is also known as the *origin response timeout*. The minimum + timeout is 1 second, the maximum is 120 seconds, and the default (if you + don't specify otherwise) is 30 seconds. + + For more information, see [Response + timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) + in the *Amazon CloudFront Developer Guide*. + """ + origin_keepalive_timeout: int | None = ... + """ + Specifies how long, in seconds, CloudFront persists its connection to + the origin. The minimum timeout is 1 second, the maximum is 120 seconds, + and the default (if you don't specify otherwise) is 5 seconds. + + For more information, see [Keep-alive timeout (custom origins + only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginKeepaliveTimeout) + in the *Amazon CloudFront Developer Guide*. + """ + +@dataclass(kw_only=True) +class VpcOriginEndpointConfig(_SerdeShape): + """An Amazon CloudFront VPC origin endpoint configuration.""" + + name: str + """The name of the CloudFront VPC origin endpoint configuration.""" + arn: str + """The ARN of the CloudFront VPC origin endpoint configuration.""" + http_port: int + """ + The HTTP port for the CloudFront VPC origin endpoint configuration. The + default value is `80`. + """ + https_port: int + """ + The HTTPS port of the CloudFront VPC origin endpoint configuration. The + default value is `443`. + """ + origin_protocol_policy: str + """ + The origin protocol policy for the CloudFront VPC origin endpoint + configuration. + """ + origin_ssl_protocols: OriginSslProtocols | None = ... + """ + A complex type that contains information about the SSL/TLS protocols + that CloudFront can use when establishing an HTTPS connection with your + origin. + """ + ip_address_type: str | None = ... + """ + The IP address type of the CloudFront VPC origin endpoint configuration. + Valid values are `ipv4` and `dualstack`. IPv6-only is not supported for + VPC origins. + """ + +@dataclass(kw_only=True) +class VpcOriginList(_SerdeShape): + """A list of CloudFront VPC origins.""" + + marker: str + """The marker associated with the VPC origins list.""" + next_marker: str | None = ... + """The next marker associated with the VPC origins list.""" + max_items: int + """The maximum number of items included in the list.""" + is_truncated: bool + """ + A flag that indicates whether more VPC origins remain to be listed. If + your results were truncated, you can make a follow-up pagination request + using the `Marker` request parameter to retrieve more VPC origins in the + list. + """ + quantity: int + """The number of VPC origins in the list.""" + items: list[VpcOriginSummary] | None = ... + """The items of the VPC origins list.""" + +@dataclass(kw_only=True) +class VpcOriginSummary(_SerdeShape): + """A summary of the CloudFront VPC origin.""" + + id: str + """The VPC origin summary ID.""" + name: str + """The VPC origin summary name.""" + status: str + """The VPC origin summary status.""" + created_time: datetime + """The VPC origin summary created time.""" + last_modified_time: datetime + """The VPC origin summary last modified time.""" + arn: str + """The VPC origin summary ARN.""" + account_id: str | None = ... + """ + The account ID of the Amazon Web Services account that owns the VPC + origin. + """ + origin_endpoint_arn: str + """The VPC origin summary origin endpoint ARN.""" + ip_address_type: str | None = ... + """ + The IP address type of the CloudFront VPC origin. Valid values are + `ipv4` and `dualstack`. IPv6-only is not supported for VPC origins. + """ + +@dataclass(kw_only=True) +class WebAclCustomization(_SerdeShape): + """The WAF web ACL customization specified for the distribution tenant.""" + + action: str + """ + The action for the WAF web ACL customization. You can specify `override` + to specify a separate WAF web ACL for the distribution tenant. If you + specify `disable`, the distribution tenant won't have WAF web ACL + protections and won't inherit from the multi-tenant distribution. + """ + arn: str | None = ... + """The Amazon Resource Name (ARN) of the WAF web ACL.""" + +ASSOCIATE_ALIAS: APIOperation[AssociateAliasInput, AssociateAliasOutput] +ASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL: APIOperation[ + AssociateDistributionTenantWebACLInput, AssociateDistributionTenantWebACLOutput +] +ASSOCIATE_DISTRIBUTION_WEB_ACL: APIOperation[ + AssociateDistributionWebACLInput, AssociateDistributionWebACLOutput +] +COPY_DISTRIBUTION: APIOperation[CopyDistributionInput, CopyDistributionOutput] +CREATE_ANYCAST_IP_LIST: APIOperation[ + CreateAnycastIpListInput, CreateAnycastIpListOutput +] +CREATE_CACHE_POLICY: APIOperation[CreateCachePolicyInput, CreateCachePolicyOutput] +CREATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: APIOperation[ + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, +] +CREATE_CONNECTION_FUNCTION: APIOperation[ + CreateConnectionFunctionInput, CreateConnectionFunctionOutput +] +CREATE_CONNECTION_GROUP: APIOperation[ + CreateConnectionGroupInput, CreateConnectionGroupOutput +] +CREATE_CONTINUOUS_DEPLOYMENT_POLICY: APIOperation[ + CreateContinuousDeploymentPolicyInput, CreateContinuousDeploymentPolicyOutput +] +CREATE_DISTRIBUTION: APIOperation[CreateDistributionInput, CreateDistributionOutput] +CREATE_DISTRIBUTION_TENANT: APIOperation[ + CreateDistributionTenantInput, CreateDistributionTenantOutput +] +CREATE_DISTRIBUTION_WITH_TAGS: APIOperation[ + CreateDistributionWithTagsInput, CreateDistributionWithTagsOutput +] +CREATE_FIELD_LEVEL_ENCRYPTION_CONFIG: APIOperation[ + CreateFieldLevelEncryptionConfigInput, CreateFieldLevelEncryptionConfigOutput +] +CREATE_FIELD_LEVEL_ENCRYPTION_PROFILE: APIOperation[ + CreateFieldLevelEncryptionProfileInput, CreateFieldLevelEncryptionProfileOutput +] +CREATE_FUNCTION: APIOperation[CreateFunctionInput, CreateFunctionOutput] +CREATE_INVALIDATION: APIOperation[CreateInvalidationInput, CreateInvalidationOutput] +CREATE_INVALIDATION_FOR_DISTRIBUTION_TENANT: APIOperation[ + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, +] +CREATE_KEY_GROUP: APIOperation[CreateKeyGroupInput, CreateKeyGroupOutput] +CREATE_KEY_VALUE_STORE: APIOperation[ + CreateKeyValueStoreInput, CreateKeyValueStoreOutput +] +CREATE_MONITORING_SUBSCRIPTION: APIOperation[ + CreateMonitoringSubscriptionInput, CreateMonitoringSubscriptionOutput +] +CREATE_ORIGIN_ACCESS_CONTROL: APIOperation[ + CreateOriginAccessControlInput, CreateOriginAccessControlOutput +] +CREATE_ORIGIN_REQUEST_POLICY: APIOperation[ + CreateOriginRequestPolicyInput, CreateOriginRequestPolicyOutput +] +CREATE_PUBLIC_KEY: APIOperation[CreatePublicKeyInput, CreatePublicKeyOutput] +CREATE_REALTIME_LOG_CONFIG: APIOperation[ + CreateRealtimeLogConfigInput, CreateRealtimeLogConfigOutput +] +CREATE_RESPONSE_HEADERS_POLICY: APIOperation[ + CreateResponseHeadersPolicyInput, CreateResponseHeadersPolicyOutput +] +CREATE_STREAMING_DISTRIBUTION: APIOperation[ + CreateStreamingDistributionInput, CreateStreamingDistributionOutput +] +CREATE_STREAMING_DISTRIBUTION_WITH_TAGS: APIOperation[ + CreateStreamingDistributionWithTagsInput, CreateStreamingDistributionWithTagsOutput +] +CREATE_TRUST_STORE: APIOperation[CreateTrustStoreInput, CreateTrustStoreOutput] +CREATE_VPC_ORIGIN: APIOperation[CreateVpcOriginInput, CreateVpcOriginOutput] +DELETE_ANYCAST_IP_LIST: APIOperation[ + DeleteAnycastIpListInput, DeleteAnycastIpListOutput +] +DELETE_CACHE_POLICY: APIOperation[DeleteCachePolicyInput, DeleteCachePolicyOutput] +DELETE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: APIOperation[ + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, +] +DELETE_CONNECTION_FUNCTION: APIOperation[ + DeleteConnectionFunctionInput, DeleteConnectionFunctionOutput +] +DELETE_CONNECTION_GROUP: APIOperation[ + DeleteConnectionGroupInput, DeleteConnectionGroupOutput +] +DELETE_CONTINUOUS_DEPLOYMENT_POLICY: APIOperation[ + DeleteContinuousDeploymentPolicyInput, DeleteContinuousDeploymentPolicyOutput +] +DELETE_DISTRIBUTION: APIOperation[DeleteDistributionInput, DeleteDistributionOutput] +DELETE_DISTRIBUTION_TENANT: APIOperation[ + DeleteDistributionTenantInput, DeleteDistributionTenantOutput +] +DELETE_FIELD_LEVEL_ENCRYPTION_CONFIG: APIOperation[ + DeleteFieldLevelEncryptionConfigInput, DeleteFieldLevelEncryptionConfigOutput +] +DELETE_FIELD_LEVEL_ENCRYPTION_PROFILE: APIOperation[ + DeleteFieldLevelEncryptionProfileInput, DeleteFieldLevelEncryptionProfileOutput +] +DELETE_FUNCTION: APIOperation[DeleteFunctionInput, DeleteFunctionOutput] +DELETE_KEY_GROUP: APIOperation[DeleteKeyGroupInput, DeleteKeyGroupOutput] +DELETE_KEY_VALUE_STORE: APIOperation[ + DeleteKeyValueStoreInput, DeleteKeyValueStoreOutput +] +DELETE_MONITORING_SUBSCRIPTION: APIOperation[ + DeleteMonitoringSubscriptionInput, DeleteMonitoringSubscriptionOutput +] +DELETE_ORIGIN_ACCESS_CONTROL: APIOperation[ + DeleteOriginAccessControlInput, DeleteOriginAccessControlOutput +] +DELETE_ORIGIN_REQUEST_POLICY: APIOperation[ + DeleteOriginRequestPolicyInput, DeleteOriginRequestPolicyOutput +] +DELETE_PUBLIC_KEY: APIOperation[DeletePublicKeyInput, DeletePublicKeyOutput] +DELETE_REALTIME_LOG_CONFIG: APIOperation[ + DeleteRealtimeLogConfigInput, DeleteRealtimeLogConfigOutput +] +DELETE_RESOURCE_POLICY: APIOperation[ + DeleteResourcePolicyInput, DeleteResourcePolicyOutput +] +DELETE_RESPONSE_HEADERS_POLICY: APIOperation[ + DeleteResponseHeadersPolicyInput, DeleteResponseHeadersPolicyOutput +] +DELETE_STREAMING_DISTRIBUTION: APIOperation[ + DeleteStreamingDistributionInput, DeleteStreamingDistributionOutput +] +DELETE_TRUST_STORE: APIOperation[DeleteTrustStoreInput, DeleteTrustStoreOutput] +DELETE_VPC_ORIGIN: APIOperation[DeleteVpcOriginInput, DeleteVpcOriginOutput] +DESCRIBE_CONNECTION_FUNCTION: APIOperation[ + DescribeConnectionFunctionInput, DescribeConnectionFunctionOutput +] +DESCRIBE_FUNCTION: APIOperation[DescribeFunctionInput, DescribeFunctionOutput] +DESCRIBE_KEY_VALUE_STORE: APIOperation[ + DescribeKeyValueStoreInput, DescribeKeyValueStoreOutput +] +DISASSOCIATE_DISTRIBUTION_TENANT_WEB_ACL: APIOperation[ + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, +] +DISASSOCIATE_DISTRIBUTION_WEB_ACL: APIOperation[ + DisassociateDistributionWebACLInput, DisassociateDistributionWebACLOutput +] +GET_ANYCAST_IP_LIST: APIOperation[GetAnycastIpListInput, GetAnycastIpListOutput] +GET_CACHE_POLICY: APIOperation[GetCachePolicyInput, GetCachePolicyOutput] +GET_CACHE_POLICY_CONFIG: APIOperation[ + GetCachePolicyConfigInput, GetCachePolicyConfigOutput +] +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: APIOperation[ + GetCloudFrontOriginAccessIdentityInput, GetCloudFrontOriginAccessIdentityOutput +] +GET_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY_CONFIG: APIOperation[ + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, +] +GET_CONNECTION_FUNCTION: APIOperation[ + GetConnectionFunctionInput, GetConnectionFunctionOutput +] +GET_CONNECTION_GROUP: APIOperation[GetConnectionGroupInput, GetConnectionGroupOutput] +GET_CONNECTION_GROUP_BY_ROUTING_ENDPOINT: APIOperation[ + GetConnectionGroupByRoutingEndpointInput, GetConnectionGroupByRoutingEndpointOutput +] +GET_CONTINUOUS_DEPLOYMENT_POLICY: APIOperation[ + GetContinuousDeploymentPolicyInput, GetContinuousDeploymentPolicyOutput +] +GET_CONTINUOUS_DEPLOYMENT_POLICY_CONFIG: APIOperation[ + GetContinuousDeploymentPolicyConfigInput, GetContinuousDeploymentPolicyConfigOutput +] +GET_DISTRIBUTION: APIOperation[GetDistributionInput, GetDistributionOutput] +GET_DISTRIBUTION_CONFIG: APIOperation[ + GetDistributionConfigInput, GetDistributionConfigOutput +] +GET_DISTRIBUTION_TENANT: APIOperation[ + GetDistributionTenantInput, GetDistributionTenantOutput +] +GET_DISTRIBUTION_TENANT_BY_DOMAIN: APIOperation[ + GetDistributionTenantByDomainInput, GetDistributionTenantByDomainOutput +] +GET_FIELD_LEVEL_ENCRYPTION: APIOperation[ + GetFieldLevelEncryptionInput, GetFieldLevelEncryptionOutput +] +GET_FIELD_LEVEL_ENCRYPTION_CONFIG: APIOperation[ + GetFieldLevelEncryptionConfigInput, GetFieldLevelEncryptionConfigOutput +] +GET_FIELD_LEVEL_ENCRYPTION_PROFILE: APIOperation[ + GetFieldLevelEncryptionProfileInput, GetFieldLevelEncryptionProfileOutput +] +GET_FIELD_LEVEL_ENCRYPTION_PROFILE_CONFIG: APIOperation[ + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, +] +GET_FUNCTION: APIOperation[GetFunctionInput, GetFunctionOutput] +GET_INVALIDATION: APIOperation[GetInvalidationInput, GetInvalidationOutput] +GET_INVALIDATION_FOR_DISTRIBUTION_TENANT: APIOperation[ + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, +] +GET_KEY_GROUP: APIOperation[GetKeyGroupInput, GetKeyGroupOutput] +GET_KEY_GROUP_CONFIG: APIOperation[GetKeyGroupConfigInput, GetKeyGroupConfigOutput] +GET_MANAGED_CERTIFICATE_DETAILS: APIOperation[ + GetManagedCertificateDetailsInput, GetManagedCertificateDetailsOutput +] +GET_MONITORING_SUBSCRIPTION: APIOperation[ + GetMonitoringSubscriptionInput, GetMonitoringSubscriptionOutput +] +GET_ORIGIN_ACCESS_CONTROL: APIOperation[ + GetOriginAccessControlInput, GetOriginAccessControlOutput +] +GET_ORIGIN_ACCESS_CONTROL_CONFIG: APIOperation[ + GetOriginAccessControlConfigInput, GetOriginAccessControlConfigOutput +] +GET_ORIGIN_REQUEST_POLICY: APIOperation[ + GetOriginRequestPolicyInput, GetOriginRequestPolicyOutput +] +GET_ORIGIN_REQUEST_POLICY_CONFIG: APIOperation[ + GetOriginRequestPolicyConfigInput, GetOriginRequestPolicyConfigOutput +] +GET_PUBLIC_KEY: APIOperation[GetPublicKeyInput, GetPublicKeyOutput] +GET_PUBLIC_KEY_CONFIG: APIOperation[GetPublicKeyConfigInput, GetPublicKeyConfigOutput] +GET_REALTIME_LOG_CONFIG: APIOperation[ + GetRealtimeLogConfigInput, GetRealtimeLogConfigOutput +] +GET_RESOURCE_POLICY: APIOperation[GetResourcePolicyInput, GetResourcePolicyOutput] +GET_RESPONSE_HEADERS_POLICY: APIOperation[ + GetResponseHeadersPolicyInput, GetResponseHeadersPolicyOutput +] +GET_RESPONSE_HEADERS_POLICY_CONFIG: APIOperation[ + GetResponseHeadersPolicyConfigInput, GetResponseHeadersPolicyConfigOutput +] +GET_STREAMING_DISTRIBUTION: APIOperation[ + GetStreamingDistributionInput, GetStreamingDistributionOutput +] +GET_STREAMING_DISTRIBUTION_CONFIG: APIOperation[ + GetStreamingDistributionConfigInput, GetStreamingDistributionConfigOutput +] +GET_TRUST_STORE: APIOperation[GetTrustStoreInput, GetTrustStoreOutput] +GET_VPC_ORIGIN: APIOperation[GetVpcOriginInput, GetVpcOriginOutput] +LIST_ANYCAST_IP_LISTS: APIOperation[ListAnycastIpListsInput, ListAnycastIpListsOutput] +LIST_CACHE_POLICIES: APIOperation[ListCachePoliciesInput, ListCachePoliciesOutput] +LIST_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITIES: APIOperation[ + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, +] +LIST_CONFLICTING_ALIASES: APIOperation[ + ListConflictingAliasesInput, ListConflictingAliasesOutput +] +LIST_CONNECTION_FUNCTIONS: APIOperation[ + ListConnectionFunctionsInput, ListConnectionFunctionsOutput +] +LIST_CONNECTION_GROUPS: APIOperation[ + ListConnectionGroupsInput, ListConnectionGroupsOutput +] +LIST_CONTINUOUS_DEPLOYMENT_POLICIES: APIOperation[ + ListContinuousDeploymentPoliciesInput, ListContinuousDeploymentPoliciesOutput +] +LIST_DISTRIBUTIONS: APIOperation[ListDistributionsInput, ListDistributionsOutput] +LIST_DISTRIBUTIONS_BY_ANYCAST_IP_LIST_ID: APIOperation[ + ListDistributionsByAnycastIpListIdInput, ListDistributionsByAnycastIpListIdOutput +] +LIST_DISTRIBUTIONS_BY_CACHE_POLICY_ID: APIOperation[ + ListDistributionsByCachePolicyIdInput, ListDistributionsByCachePolicyIdOutput +] +LIST_DISTRIBUTIONS_BY_CONNECTION_FUNCTION: APIOperation[ + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, +] +LIST_DISTRIBUTIONS_BY_CONNECTION_MODE: APIOperation[ + ListDistributionsByConnectionModeInput, ListDistributionsByConnectionModeOutput +] +LIST_DISTRIBUTIONS_BY_KEY_GROUP: APIOperation[ + ListDistributionsByKeyGroupInput, ListDistributionsByKeyGroupOutput +] +LIST_DISTRIBUTIONS_BY_ORIGIN_REQUEST_POLICY_ID: APIOperation[ + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, +] +LIST_DISTRIBUTIONS_BY_OWNED_RESOURCE: APIOperation[ + ListDistributionsByOwnedResourceInput, ListDistributionsByOwnedResourceOutput +] +LIST_DISTRIBUTIONS_BY_REALTIME_LOG_CONFIG: APIOperation[ + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, +] +LIST_DISTRIBUTIONS_BY_RESPONSE_HEADERS_POLICY_ID: APIOperation[ + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, +] +LIST_DISTRIBUTIONS_BY_TRUST_STORE: APIOperation[ + ListDistributionsByTrustStoreInput, ListDistributionsByTrustStoreOutput +] +LIST_DISTRIBUTIONS_BY_VPC_ORIGIN_ID: APIOperation[ + ListDistributionsByVpcOriginIdInput, ListDistributionsByVpcOriginIdOutput +] +LIST_DISTRIBUTIONS_BY_WEB_ACL_ID: APIOperation[ + ListDistributionsByWebACLIdInput, ListDistributionsByWebACLIdOutput +] +LIST_DISTRIBUTION_TENANTS: APIOperation[ + ListDistributionTenantsInput, ListDistributionTenantsOutput +] +LIST_DISTRIBUTION_TENANTS_BY_CUSTOMIZATION: APIOperation[ + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, +] +LIST_DOMAIN_CONFLICTS: APIOperation[ListDomainConflictsInput, ListDomainConflictsOutput] +LIST_FIELD_LEVEL_ENCRYPTION_CONFIGS: APIOperation[ + ListFieldLevelEncryptionConfigsInput, ListFieldLevelEncryptionConfigsOutput +] +LIST_FIELD_LEVEL_ENCRYPTION_PROFILES: APIOperation[ + ListFieldLevelEncryptionProfilesInput, ListFieldLevelEncryptionProfilesOutput +] +LIST_FUNCTIONS: APIOperation[ListFunctionsInput, ListFunctionsOutput] +LIST_INVALIDATIONS: APIOperation[ListInvalidationsInput, ListInvalidationsOutput] +LIST_INVALIDATIONS_FOR_DISTRIBUTION_TENANT: APIOperation[ + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, +] +LIST_KEY_GROUPS: APIOperation[ListKeyGroupsInput, ListKeyGroupsOutput] +LIST_KEY_VALUE_STORES: APIOperation[ListKeyValueStoresInput, ListKeyValueStoresOutput] +LIST_ORIGIN_ACCESS_CONTROLS: APIOperation[ + ListOriginAccessControlsInput, ListOriginAccessControlsOutput +] +LIST_ORIGIN_REQUEST_POLICIES: APIOperation[ + ListOriginRequestPoliciesInput, ListOriginRequestPoliciesOutput +] +LIST_PUBLIC_KEYS: APIOperation[ListPublicKeysInput, ListPublicKeysOutput] +LIST_REALTIME_LOG_CONFIGS: APIOperation[ + ListRealtimeLogConfigsInput, ListRealtimeLogConfigsOutput +] +LIST_RESPONSE_HEADERS_POLICIES: APIOperation[ + ListResponseHeadersPoliciesInput, ListResponseHeadersPoliciesOutput +] +LIST_STREAMING_DISTRIBUTIONS: APIOperation[ + ListStreamingDistributionsInput, ListStreamingDistributionsOutput +] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] +LIST_TRUST_STORES: APIOperation[ListTrustStoresInput, ListTrustStoresOutput] +LIST_VPC_ORIGINS: APIOperation[ListVpcOriginsInput, ListVpcOriginsOutput] +PUBLISH_CONNECTION_FUNCTION: APIOperation[ + PublishConnectionFunctionInput, PublishConnectionFunctionOutput +] +PUBLISH_FUNCTION: APIOperation[PublishFunctionInput, PublishFunctionOutput] +PUT_RESOURCE_POLICY: APIOperation[PutResourcePolicyInput, PutResourcePolicyOutput] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +TEST_CONNECTION_FUNCTION: APIOperation[ + TestConnectionFunctionInput, TestConnectionFunctionOutput +] +TEST_FUNCTION: APIOperation[TestFunctionInput, TestFunctionOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] +UPDATE_ANYCAST_IP_LIST: APIOperation[ + UpdateAnycastIpListInput, UpdateAnycastIpListOutput +] +UPDATE_CACHE_POLICY: APIOperation[UpdateCachePolicyInput, UpdateCachePolicyOutput] +UPDATE_CLOUD_FRONT_ORIGIN_ACCESS_IDENTITY: APIOperation[ + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, +] +UPDATE_CONNECTION_FUNCTION: APIOperation[ + UpdateConnectionFunctionInput, UpdateConnectionFunctionOutput +] +UPDATE_CONNECTION_GROUP: APIOperation[ + UpdateConnectionGroupInput, UpdateConnectionGroupOutput +] +UPDATE_CONTINUOUS_DEPLOYMENT_POLICY: APIOperation[ + UpdateContinuousDeploymentPolicyInput, UpdateContinuousDeploymentPolicyOutput +] +UPDATE_DISTRIBUTION: APIOperation[UpdateDistributionInput, UpdateDistributionOutput] +UPDATE_DISTRIBUTION_TENANT: APIOperation[ + UpdateDistributionTenantInput, UpdateDistributionTenantOutput +] +UPDATE_DISTRIBUTION_WITH_STAGING_CONFIG: APIOperation[ + UpdateDistributionWithStagingConfigInput, UpdateDistributionWithStagingConfigOutput +] +UPDATE_DOMAIN_ASSOCIATION: APIOperation[ + UpdateDomainAssociationInput, UpdateDomainAssociationOutput +] +UPDATE_FIELD_LEVEL_ENCRYPTION_CONFIG: APIOperation[ + UpdateFieldLevelEncryptionConfigInput, UpdateFieldLevelEncryptionConfigOutput +] +UPDATE_FIELD_LEVEL_ENCRYPTION_PROFILE: APIOperation[ + UpdateFieldLevelEncryptionProfileInput, UpdateFieldLevelEncryptionProfileOutput +] +UPDATE_FUNCTION: APIOperation[UpdateFunctionInput, UpdateFunctionOutput] +UPDATE_KEY_GROUP: APIOperation[UpdateKeyGroupInput, UpdateKeyGroupOutput] +UPDATE_KEY_VALUE_STORE: APIOperation[ + UpdateKeyValueStoreInput, UpdateKeyValueStoreOutput +] +UPDATE_ORIGIN_ACCESS_CONTROL: APIOperation[ + UpdateOriginAccessControlInput, UpdateOriginAccessControlOutput +] +UPDATE_ORIGIN_REQUEST_POLICY: APIOperation[ + UpdateOriginRequestPolicyInput, UpdateOriginRequestPolicyOutput +] +UPDATE_PUBLIC_KEY: APIOperation[UpdatePublicKeyInput, UpdatePublicKeyOutput] +UPDATE_REALTIME_LOG_CONFIG: APIOperation[ + UpdateRealtimeLogConfigInput, UpdateRealtimeLogConfigOutput +] +UPDATE_RESPONSE_HEADERS_POLICY: APIOperation[ + UpdateResponseHeadersPolicyInput, UpdateResponseHeadersPolicyOutput +] +UPDATE_STREAMING_DISTRIBUTION: APIOperation[ + UpdateStreamingDistributionInput, UpdateStreamingDistributionOutput +] +UPDATE_TRUST_STORE: APIOperation[UpdateTrustStoreInput, UpdateTrustStoreOutput] +UPDATE_VPC_ORIGIN: APIOperation[UpdateVpcOriginInput, UpdateVpcOriginOutput] +VERIFY_DNS_CONFIGURATION: APIOperation[ + VerifyDnsConfigurationInput, VerifyDnsConfigurationOutput +] diff --git a/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/user_agent.py b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/user_agent.py new file mode 100644 index 00000000..deae8996 --- /dev/null +++ b/clients/aws-sdk-cloudfront/src/aws_sdk_cloudfront/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import CloudFrontConfig + + +def aws_user_agent_plugin(config: CloudFrontConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="CloudFront", + ) + ) diff --git a/clients/aws-sdk-cloudfront/tests/__init__.py b/clients/aws-sdk-cloudfront/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-cloudfront/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-cloudfront/tests/_typecheck.py b/clients/aws-sdk-cloudfront/tests/_typecheck.py new file mode 100644 index 00000000..ce6bf2f4 --- /dev/null +++ b/clients/aws-sdk-cloudfront/tests/_typecheck.py @@ -0,0 +1,1227 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_cloudfront.models import ( + ActiveTrustedKeyGroups, + ActiveTrustedSigners, + AliasICPRecordal, + Aliases, + AllowedMethods, + AnycastIpList, + AnycastIpListCollection, + AnycastIpListSummary, + AssociateAliasInput, + AssociateAliasOutput, + AssociateDistributionTenantWebACLInput, + AssociateDistributionTenantWebACLOutput, + AssociateDistributionWebACLInput, + AssociateDistributionWebACLOutput, + CaCertificatesBundleS3Location, + CacheBehavior, + CacheBehaviors, + CachePolicy, + CachePolicyConfig, + CachePolicyCookiesConfig, + CachePolicyHeadersConfig, + CachePolicyList, + CachePolicyQueryStringsConfig, + CachePolicySummary, + CacheTagConfig, + CachedMethods, + Certificate, + CloudFrontOriginAccessIdentity, + CloudFrontOriginAccessIdentityConfig, + CloudFrontOriginAccessIdentityList, + CloudFrontOriginAccessIdentitySummary, + ConflictingAlias, + ConflictingAliasesList, + ConnectionFunctionAssociation, + ConnectionFunctionSummary, + ConnectionFunctionTestResult, + ConnectionGroup, + ConnectionGroupAssociationFilter, + ConnectionGroupSummary, + ContentTypeProfile, + ContentTypeProfileConfig, + ContentTypeProfiles, + ContinuousDeploymentPolicy, + ContinuousDeploymentPolicyConfig, + ContinuousDeploymentPolicyList, + ContinuousDeploymentPolicySummary, + ContinuousDeploymentSingleHeaderConfig, + ContinuousDeploymentSingleWeightConfig, + CookieNames, + CookiePreference, + CopyDistributionInput, + CopyDistributionOutput, + CreateAnycastIpListInput, + CreateAnycastIpListOutput, + CreateCachePolicyInput, + CreateCachePolicyOutput, + CreateCloudFrontOriginAccessIdentityInput, + CreateCloudFrontOriginAccessIdentityOutput, + CreateConnectionFunctionInput, + CreateConnectionFunctionOutput, + CreateConnectionGroupInput, + CreateConnectionGroupOutput, + CreateContinuousDeploymentPolicyInput, + CreateContinuousDeploymentPolicyOutput, + CreateDistributionInput, + CreateDistributionOutput, + CreateDistributionTenantInput, + CreateDistributionTenantOutput, + CreateDistributionWithTagsInput, + CreateDistributionWithTagsOutput, + CreateFieldLevelEncryptionConfigInput, + CreateFieldLevelEncryptionConfigOutput, + CreateFieldLevelEncryptionProfileInput, + CreateFieldLevelEncryptionProfileOutput, + CreateFunctionInput, + CreateFunctionOutput, + CreateInvalidationForDistributionTenantInput, + CreateInvalidationForDistributionTenantOutput, + CreateInvalidationInput, + CreateInvalidationOutput, + CreateKeyGroupInput, + CreateKeyGroupOutput, + CreateKeyValueStoreInput, + CreateKeyValueStoreOutput, + CreateMonitoringSubscriptionInput, + CreateMonitoringSubscriptionOutput, + CreateOriginAccessControlInput, + CreateOriginAccessControlOutput, + CreateOriginRequestPolicyInput, + CreateOriginRequestPolicyOutput, + CreatePublicKeyInput, + CreatePublicKeyOutput, + CreateRealtimeLogConfigInput, + CreateRealtimeLogConfigOutput, + CreateResponseHeadersPolicyInput, + CreateResponseHeadersPolicyOutput, + CreateStreamingDistributionInput, + CreateStreamingDistributionOutput, + CreateStreamingDistributionWithTagsInput, + CreateStreamingDistributionWithTagsOutput, + CreateTrustStoreInput, + CreateTrustStoreOutput, + CreateVpcOriginInput, + CreateVpcOriginOutput, + CustomErrorResponse, + CustomErrorResponses, + CustomHeaders, + CustomOriginConfig, + Customizations, + DefaultCacheBehavior, + DeleteAnycastIpListInput, + DeleteAnycastIpListOutput, + DeleteCachePolicyInput, + DeleteCachePolicyOutput, + DeleteCloudFrontOriginAccessIdentityInput, + DeleteCloudFrontOriginAccessIdentityOutput, + DeleteConnectionFunctionInput, + DeleteConnectionFunctionOutput, + DeleteConnectionGroupInput, + DeleteConnectionGroupOutput, + DeleteContinuousDeploymentPolicyInput, + DeleteContinuousDeploymentPolicyOutput, + DeleteDistributionInput, + DeleteDistributionOutput, + DeleteDistributionTenantInput, + DeleteDistributionTenantOutput, + DeleteFieldLevelEncryptionConfigInput, + DeleteFieldLevelEncryptionConfigOutput, + DeleteFieldLevelEncryptionProfileInput, + DeleteFieldLevelEncryptionProfileOutput, + DeleteFunctionInput, + DeleteFunctionOutput, + DeleteKeyGroupInput, + DeleteKeyGroupOutput, + DeleteKeyValueStoreInput, + DeleteKeyValueStoreOutput, + DeleteMonitoringSubscriptionInput, + DeleteMonitoringSubscriptionOutput, + DeleteOriginAccessControlInput, + DeleteOriginAccessControlOutput, + DeleteOriginRequestPolicyInput, + DeleteOriginRequestPolicyOutput, + DeletePublicKeyInput, + DeletePublicKeyOutput, + DeleteRealtimeLogConfigInput, + DeleteRealtimeLogConfigOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteResponseHeadersPolicyInput, + DeleteResponseHeadersPolicyOutput, + DeleteStreamingDistributionInput, + DeleteStreamingDistributionOutput, + DeleteTrustStoreInput, + DeleteTrustStoreOutput, + DeleteVpcOriginInput, + DeleteVpcOriginOutput, + DescribeConnectionFunctionInput, + DescribeConnectionFunctionOutput, + DescribeFunctionInput, + DescribeFunctionOutput, + DescribeKeyValueStoreInput, + DescribeKeyValueStoreOutput, + DisassociateDistributionTenantWebACLInput, + DisassociateDistributionTenantWebACLOutput, + DisassociateDistributionWebACLInput, + DisassociateDistributionWebACLOutput, + Distribution, + DistributionConfig, + DistributionConfigWithTags, + DistributionIdList, + DistributionIdOwner, + DistributionIdOwnerList, + DistributionList, + DistributionResourceId, + DistributionSummary, + DistributionTenant, + DistributionTenantAssociationFilter, + DistributionTenantSummary, + DnsConfiguration, + DomainConflict, + DomainItem, + DomainResult, + EncryptionEntities, + EncryptionEntity, + EndPoint, + FieldLevelEncryption, + FieldLevelEncryptionConfig, + FieldLevelEncryptionList, + FieldLevelEncryptionProfile, + FieldLevelEncryptionProfileConfig, + FieldLevelEncryptionProfileList, + FieldLevelEncryptionProfileSummary, + FieldLevelEncryptionSummary, + FieldPatterns, + ForwardedValues, + FunctionAssociation, + FunctionAssociations, + FunctionConfig, + FunctionList, + FunctionMetadata, + FunctionSummary, + GeoRestriction, + GeoRestrictionCustomization, + GetAnycastIpListInput, + GetAnycastIpListOutput, + GetCachePolicyConfigInput, + GetCachePolicyConfigOutput, + GetCachePolicyInput, + GetCachePolicyOutput, + GetCloudFrontOriginAccessIdentityConfigInput, + GetCloudFrontOriginAccessIdentityConfigOutput, + GetCloudFrontOriginAccessIdentityInput, + GetCloudFrontOriginAccessIdentityOutput, + GetConnectionFunctionInput, + GetConnectionFunctionOutput, + GetConnectionGroupByRoutingEndpointInput, + GetConnectionGroupByRoutingEndpointOutput, + GetConnectionGroupInput, + GetConnectionGroupOutput, + GetContinuousDeploymentPolicyConfigInput, + GetContinuousDeploymentPolicyConfigOutput, + GetContinuousDeploymentPolicyInput, + GetContinuousDeploymentPolicyOutput, + GetDistributionConfigInput, + GetDistributionConfigOutput, + GetDistributionInput, + GetDistributionOutput, + GetDistributionTenantByDomainInput, + GetDistributionTenantByDomainOutput, + GetDistributionTenantInput, + GetDistributionTenantOutput, + GetFieldLevelEncryptionConfigInput, + GetFieldLevelEncryptionConfigOutput, + GetFieldLevelEncryptionInput, + GetFieldLevelEncryptionOutput, + GetFieldLevelEncryptionProfileConfigInput, + GetFieldLevelEncryptionProfileConfigOutput, + GetFieldLevelEncryptionProfileInput, + GetFieldLevelEncryptionProfileOutput, + GetFunctionInput, + GetFunctionOutput, + GetInvalidationForDistributionTenantInput, + GetInvalidationForDistributionTenantOutput, + GetInvalidationInput, + GetInvalidationOutput, + GetKeyGroupConfigInput, + GetKeyGroupConfigOutput, + GetKeyGroupInput, + GetKeyGroupOutput, + GetManagedCertificateDetailsInput, + GetManagedCertificateDetailsOutput, + GetMonitoringSubscriptionInput, + GetMonitoringSubscriptionOutput, + GetOriginAccessControlConfigInput, + GetOriginAccessControlConfigOutput, + GetOriginAccessControlInput, + GetOriginAccessControlOutput, + GetOriginRequestPolicyConfigInput, + GetOriginRequestPolicyConfigOutput, + GetOriginRequestPolicyInput, + GetOriginRequestPolicyOutput, + GetPublicKeyConfigInput, + GetPublicKeyConfigOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GetRealtimeLogConfigInput, + GetRealtimeLogConfigOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetResponseHeadersPolicyConfigInput, + GetResponseHeadersPolicyConfigOutput, + GetResponseHeadersPolicyInput, + GetResponseHeadersPolicyOutput, + GetStreamingDistributionConfigInput, + GetStreamingDistributionConfigOutput, + GetStreamingDistributionInput, + GetStreamingDistributionOutput, + GetTrustStoreInput, + GetTrustStoreOutput, + GetVpcOriginInput, + GetVpcOriginOutput, + GrpcConfig, + Headers, + ImportSource, + Invalidation, + InvalidationBatch, + InvalidationList, + InvalidationSummary, + IpamCidrConfig, + IpamConfig, + KGKeyPairIds, + KeyGroup, + KeyGroupConfig, + KeyGroupList, + KeyGroupSummary, + KeyPairIds, + KeyValueStore, + KeyValueStoreAssociation, + KeyValueStoreAssociations, + KeyValueStoreList, + KinesisStreamConfig, + LambdaFunctionAssociation, + LambdaFunctionAssociations, + ListAnycastIpListsInput, + ListAnycastIpListsOutput, + ListCachePoliciesInput, + ListCachePoliciesOutput, + ListCloudFrontOriginAccessIdentitiesInput, + ListCloudFrontOriginAccessIdentitiesOutput, + ListConflictingAliasesInput, + ListConflictingAliasesOutput, + ListConnectionFunctionsInput, + ListConnectionFunctionsOutput, + ListConnectionGroupsInput, + ListConnectionGroupsOutput, + ListContinuousDeploymentPoliciesInput, + ListContinuousDeploymentPoliciesOutput, + ListDistributionTenantsByCustomizationInput, + ListDistributionTenantsByCustomizationOutput, + ListDistributionTenantsInput, + ListDistributionTenantsOutput, + ListDistributionsByAnycastIpListIdInput, + ListDistributionsByAnycastIpListIdOutput, + ListDistributionsByCachePolicyIdInput, + ListDistributionsByCachePolicyIdOutput, + ListDistributionsByConnectionFunctionInput, + ListDistributionsByConnectionFunctionOutput, + ListDistributionsByConnectionModeInput, + ListDistributionsByConnectionModeOutput, + ListDistributionsByKeyGroupInput, + ListDistributionsByKeyGroupOutput, + ListDistributionsByOriginRequestPolicyIdInput, + ListDistributionsByOriginRequestPolicyIdOutput, + ListDistributionsByOwnedResourceInput, + ListDistributionsByOwnedResourceOutput, + ListDistributionsByRealtimeLogConfigInput, + ListDistributionsByRealtimeLogConfigOutput, + ListDistributionsByResponseHeadersPolicyIdInput, + ListDistributionsByResponseHeadersPolicyIdOutput, + ListDistributionsByTrustStoreInput, + ListDistributionsByTrustStoreOutput, + ListDistributionsByVpcOriginIdInput, + ListDistributionsByVpcOriginIdOutput, + ListDistributionsByWebACLIdInput, + ListDistributionsByWebACLIdOutput, + ListDistributionsInput, + ListDistributionsOutput, + ListDomainConflictsInput, + ListDomainConflictsOutput, + ListFieldLevelEncryptionConfigsInput, + ListFieldLevelEncryptionConfigsOutput, + ListFieldLevelEncryptionProfilesInput, + ListFieldLevelEncryptionProfilesOutput, + ListFunctionsInput, + ListFunctionsOutput, + ListInvalidationsForDistributionTenantInput, + ListInvalidationsForDistributionTenantOutput, + ListInvalidationsInput, + ListInvalidationsOutput, + ListKeyGroupsInput, + ListKeyGroupsOutput, + ListKeyValueStoresInput, + ListKeyValueStoresOutput, + ListOriginAccessControlsInput, + ListOriginAccessControlsOutput, + ListOriginRequestPoliciesInput, + ListOriginRequestPoliciesOutput, + ListPublicKeysInput, + ListPublicKeysOutput, + ListRealtimeLogConfigsInput, + ListRealtimeLogConfigsOutput, + ListResponseHeadersPoliciesInput, + ListResponseHeadersPoliciesOutput, + ListStreamingDistributionsInput, + ListStreamingDistributionsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTrustStoresInput, + ListTrustStoresOutput, + ListVpcOriginsInput, + ListVpcOriginsOutput, + LoggingConfig, + ManagedCertificateDetails, + ManagedCertificateRequest, + MonitoringSubscription, + Origin, + OriginAccessControl, + OriginAccessControlConfig, + OriginAccessControlList, + OriginAccessControlSummary, + OriginCustomHeader, + OriginGroup, + OriginGroupFailoverCriteria, + OriginGroupMember, + OriginGroupMembers, + OriginGroups, + OriginMtlsConfig, + OriginRequestPolicy, + OriginRequestPolicyConfig, + OriginRequestPolicyCookiesConfig, + OriginRequestPolicyHeadersConfig, + OriginRequestPolicyList, + OriginRequestPolicyQueryStringsConfig, + OriginRequestPolicySummary, + OriginShield, + OriginSslProtocols, + Origins, + Parameter, + ParameterDefinition, + ParameterDefinitionSchema, + ParametersInCacheKeyAndForwardedToOrigin, + Paths, + PublicKey, + PublicKeyConfig, + PublicKeyList, + PublicKeySummary, + PublishConnectionFunctionInput, + PublishConnectionFunctionOutput, + PublishFunctionInput, + PublishFunctionOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + QueryArgProfile, + QueryArgProfileConfig, + QueryArgProfiles, + QueryStringCacheKeys, + QueryStringNames, + RealtimeLogConfig, + RealtimeLogConfigs, + RealtimeMetricsSubscriptionConfig, + ResponseHeadersPolicy, + ResponseHeadersPolicyAccessControlAllowHeaders, + ResponseHeadersPolicyAccessControlAllowMethods, + ResponseHeadersPolicyAccessControlAllowOrigins, + ResponseHeadersPolicyAccessControlExposeHeaders, + ResponseHeadersPolicyConfig, + ResponseHeadersPolicyContentSecurityPolicy, + ResponseHeadersPolicyContentTypeOptions, + ResponseHeadersPolicyCorsConfig, + ResponseHeadersPolicyCustomHeader, + ResponseHeadersPolicyCustomHeadersConfig, + ResponseHeadersPolicyFrameOptions, + ResponseHeadersPolicyList, + ResponseHeadersPolicyReferrerPolicy, + ResponseHeadersPolicyRemoveHeader, + ResponseHeadersPolicyRemoveHeadersConfig, + ResponseHeadersPolicySecurityHeadersConfig, + ResponseHeadersPolicyServerTimingHeadersConfig, + ResponseHeadersPolicyStrictTransportSecurity, + ResponseHeadersPolicySummary, + ResponseHeadersPolicyXSSProtection, + Restrictions, + S3Origin, + S3OriginConfig, + SessionStickinessConfig, + Signer, + StagingDistributionDnsNames, + StatusCodes, + StreamingDistribution, + StreamingDistributionConfig, + StreamingDistributionConfigWithTags, + StreamingDistributionList, + StreamingDistributionSummary, + StreamingLoggingConfig, + StringSchemaConfig, + Tag, + TagKeys, + TagResourceInput, + TagResourceOutput, + Tags, + TenantConfig, + TestConnectionFunctionInput, + TestConnectionFunctionOutput, + TestFunctionInput, + TestFunctionOutput, + TestResult, + TrafficConfig, + TrustStore, + TrustStoreConfig, + TrustStoreSummary, + TrustedKeyGroups, + TrustedSigners, + UntagResourceInput, + UntagResourceOutput, + UpdateAnycastIpListInput, + UpdateAnycastIpListOutput, + UpdateCachePolicyInput, + UpdateCachePolicyOutput, + UpdateCloudFrontOriginAccessIdentityInput, + UpdateCloudFrontOriginAccessIdentityOutput, + UpdateConnectionFunctionInput, + UpdateConnectionFunctionOutput, + UpdateConnectionGroupInput, + UpdateConnectionGroupOutput, + UpdateContinuousDeploymentPolicyInput, + UpdateContinuousDeploymentPolicyOutput, + UpdateDistributionInput, + UpdateDistributionOutput, + UpdateDistributionTenantInput, + UpdateDistributionTenantOutput, + UpdateDistributionWithStagingConfigInput, + UpdateDistributionWithStagingConfigOutput, + UpdateDomainAssociationInput, + UpdateDomainAssociationOutput, + UpdateFieldLevelEncryptionConfigInput, + UpdateFieldLevelEncryptionConfigOutput, + UpdateFieldLevelEncryptionProfileInput, + UpdateFieldLevelEncryptionProfileOutput, + UpdateFunctionInput, + UpdateFunctionOutput, + UpdateKeyGroupInput, + UpdateKeyGroupOutput, + UpdateKeyValueStoreInput, + UpdateKeyValueStoreOutput, + UpdateOriginAccessControlInput, + UpdateOriginAccessControlOutput, + UpdateOriginRequestPolicyInput, + UpdateOriginRequestPolicyOutput, + UpdatePublicKeyInput, + UpdatePublicKeyOutput, + UpdateRealtimeLogConfigInput, + UpdateRealtimeLogConfigOutput, + UpdateResponseHeadersPolicyInput, + UpdateResponseHeadersPolicyOutput, + UpdateStreamingDistributionInput, + UpdateStreamingDistributionOutput, + UpdateTrustStoreInput, + UpdateTrustStoreOutput, + UpdateVpcOriginInput, + UpdateVpcOriginOutput, + ValidationTokenDetail, + VerifyDnsConfigurationInput, + VerifyDnsConfigurationOutput, + ViewerCertificate, + ViewerMtlsConfig, + VpcOrigin, + VpcOriginConfig, + VpcOriginEndpointConfig, + VpcOriginList, + VpcOriginSummary, + WebAclCustomization, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +ActiveTrustedKeyGroups(enabled=_, quantity=_) +ActiveTrustedSigners(enabled=_, quantity=_) +Aliases(quantity=_) +AliasICPRecordal() +AllowedMethods(quantity=_, items=_) +AnycastIpList( + id=_, name=_, status=_, arn=_, anycast_ips=_, ip_count=_, last_modified_time=_ +) +AnycastIpListCollection(marker=_, max_items=_, is_truncated=_, quantity=_) +AnycastIpListSummary(id=_, name=_, status=_, arn=_, ip_count=_, last_modified_time=_) +AssociateAliasInput() +AssociateAliasOutput() +AssociateDistributionTenantWebACLInput() +AssociateDistributionTenantWebACLOutput() +AssociateDistributionWebACLInput() +AssociateDistributionWebACLOutput() +CaCertificatesBundleS3Location(bucket=_, key=_, region=_) +CacheBehavior(path_pattern=_, target_origin_id=_, viewer_protocol_policy=_) +CacheBehaviors(quantity=_) +CachedMethods(quantity=_, items=_) +CachePolicy(id=_, last_modified_time=_, cache_policy_config=_) +CachePolicyConfig(name=_, min_ttl=_) +CachePolicyCookiesConfig(cookie_behavior=_) +CachePolicyHeadersConfig(header_behavior=_) +CachePolicyList(max_items=_, quantity=_) +CachePolicyQueryStringsConfig(query_string_behavior=_) +CachePolicySummary(type=_, cache_policy=_) +CacheTagConfig(header_name=_) +Certificate(arn=_) +CloudFrontOriginAccessIdentity(id=_, s3_canonical_user_id=_) +CloudFrontOriginAccessIdentityConfig(caller_reference=_, comment=_) +CloudFrontOriginAccessIdentityList(marker=_, max_items=_, is_truncated=_, quantity=_) +CloudFrontOriginAccessIdentitySummary(id=_, s3_canonical_user_id=_, comment=_) +ConflictingAlias() +ConflictingAliasesList() +ConnectionFunctionAssociation(id=_) +ConnectionFunctionSummary( + name=_, + id=_, + connection_function_config=_, + connection_function_arn=_, + status=_, + stage=_, + created_time=_, + last_modified_time=_, +) +ConnectionFunctionTestResult() +ConnectionGroup() +ConnectionGroupAssociationFilter() +ConnectionGroupSummary( + id=_, + name=_, + arn=_, + routing_endpoint=_, + created_time=_, + last_modified_time=_, + e_tag=_, +) +ContentTypeProfile(format=_, content_type=_) +ContentTypeProfileConfig(forward_when_content_type_is_unknown=_) +ContentTypeProfiles(quantity=_) +ContinuousDeploymentPolicy( + id=_, last_modified_time=_, continuous_deployment_policy_config=_ +) +ContinuousDeploymentPolicyConfig(staging_distribution_dns_names=_, enabled=_) +ContinuousDeploymentPolicyList(max_items=_, quantity=_) +ContinuousDeploymentPolicySummary(continuous_deployment_policy=_) +ContinuousDeploymentSingleHeaderConfig(header=_, value=_) +ContinuousDeploymentSingleWeightConfig(weight=_) +CookieNames(quantity=_) +CookiePreference(forward=_) +CopyDistributionInput() +CopyDistributionOutput() +CreateAnycastIpListInput() +CreateAnycastIpListOutput() +CreateCachePolicyInput() +CreateCachePolicyOutput() +CreateCloudFrontOriginAccessIdentityInput() +CreateCloudFrontOriginAccessIdentityOutput() +CreateConnectionFunctionInput() +CreateConnectionFunctionOutput() +CreateConnectionGroupInput() +CreateConnectionGroupOutput() +CreateContinuousDeploymentPolicyInput() +CreateContinuousDeploymentPolicyOutput() +CreateDistributionInput() +CreateDistributionOutput() +CreateDistributionTenantInput() +CreateDistributionTenantOutput() +CreateDistributionWithTagsInput() +CreateDistributionWithTagsOutput() +CreateFieldLevelEncryptionConfigInput() +CreateFieldLevelEncryptionConfigOutput() +CreateFieldLevelEncryptionProfileInput() +CreateFieldLevelEncryptionProfileOutput() +CreateFunctionInput() +CreateFunctionOutput() +CreateInvalidationForDistributionTenantInput() +CreateInvalidationForDistributionTenantOutput() +CreateInvalidationInput() +CreateInvalidationOutput() +CreateKeyGroupInput() +CreateKeyGroupOutput() +CreateKeyValueStoreInput() +CreateKeyValueStoreOutput() +CreateMonitoringSubscriptionInput() +CreateMonitoringSubscriptionOutput() +CreateOriginAccessControlInput() +CreateOriginAccessControlOutput() +CreateOriginRequestPolicyInput() +CreateOriginRequestPolicyOutput() +CreatePublicKeyInput() +CreatePublicKeyOutput() +CreateRealtimeLogConfigInput() +CreateRealtimeLogConfigOutput() +CreateResponseHeadersPolicyInput() +CreateResponseHeadersPolicyOutput() +CreateStreamingDistributionInput() +CreateStreamingDistributionOutput() +CreateStreamingDistributionWithTagsInput() +CreateStreamingDistributionWithTagsOutput() +CreateTrustStoreInput() +CreateTrustStoreOutput() +CreateVpcOriginInput() +CreateVpcOriginOutput() +CustomErrorResponse(error_code=_) +CustomErrorResponses(quantity=_) +CustomHeaders(quantity=_) +Customizations() +CustomOriginConfig(http_port=_, https_port=_, origin_protocol_policy=_) +DefaultCacheBehavior(target_origin_id=_, viewer_protocol_policy=_) +DeleteAnycastIpListInput() +DeleteAnycastIpListOutput() +DeleteCachePolicyInput() +DeleteCachePolicyOutput() +DeleteCloudFrontOriginAccessIdentityInput() +DeleteCloudFrontOriginAccessIdentityOutput() +DeleteConnectionFunctionInput() +DeleteConnectionFunctionOutput() +DeleteConnectionGroupInput() +DeleteConnectionGroupOutput() +DeleteContinuousDeploymentPolicyInput() +DeleteContinuousDeploymentPolicyOutput() +DeleteDistributionInput() +DeleteDistributionOutput() +DeleteDistributionTenantInput() +DeleteDistributionTenantOutput() +DeleteFieldLevelEncryptionConfigInput() +DeleteFieldLevelEncryptionConfigOutput() +DeleteFieldLevelEncryptionProfileInput() +DeleteFieldLevelEncryptionProfileOutput() +DeleteFunctionInput() +DeleteFunctionOutput() +DeleteKeyGroupInput() +DeleteKeyGroupOutput() +DeleteKeyValueStoreInput() +DeleteKeyValueStoreOutput() +DeleteMonitoringSubscriptionInput() +DeleteMonitoringSubscriptionOutput() +DeleteOriginAccessControlInput() +DeleteOriginAccessControlOutput() +DeleteOriginRequestPolicyInput() +DeleteOriginRequestPolicyOutput() +DeletePublicKeyInput() +DeletePublicKeyOutput() +DeleteRealtimeLogConfigInput() +DeleteRealtimeLogConfigOutput() +DeleteResourcePolicyInput() +DeleteResourcePolicyOutput() +DeleteResponseHeadersPolicyInput() +DeleteResponseHeadersPolicyOutput() +DeleteStreamingDistributionInput() +DeleteStreamingDistributionOutput() +DeleteTrustStoreInput() +DeleteTrustStoreOutput() +DeleteVpcOriginInput() +DeleteVpcOriginOutput() +DescribeConnectionFunctionInput() +DescribeConnectionFunctionOutput() +DescribeFunctionInput() +DescribeFunctionOutput() +DescribeKeyValueStoreInput() +DescribeKeyValueStoreOutput() +DisassociateDistributionTenantWebACLInput() +DisassociateDistributionTenantWebACLOutput() +DisassociateDistributionWebACLInput() +DisassociateDistributionWebACLOutput() +Distribution( + id=_, + arn=_, + status=_, + last_modified_time=_, + in_progress_invalidation_batches=_, + domain_name=_, + distribution_config=_, +) +DistributionConfig( + caller_reference=_, origins=_, default_cache_behavior=_, comment=_, enabled=_ +) +DistributionConfigWithTags(distribution_config=_, tags=_) +DistributionIdList(marker=_, max_items=_, is_truncated=_, quantity=_) +DistributionIdOwner(distribution_id=_, owner_account_id=_) +DistributionIdOwnerList(marker=_, max_items=_, is_truncated=_, quantity=_) +DistributionList(marker=_, max_items=_, is_truncated=_, quantity=_) +DistributionResourceId() +DistributionSummary( + id=_, + arn=_, + status=_, + last_modified_time=_, + domain_name=_, + aliases=_, + origins=_, + default_cache_behavior=_, + cache_behaviors=_, + custom_error_responses=_, + comment=_, + price_class=_, + enabled=_, + viewer_certificate=_, + restrictions=_, + web_acl_id=_, + http_version=_, + is_ipv6_enabled=_, + staging=_, +) +DistributionTenant() +DistributionTenantAssociationFilter() +DistributionTenantSummary( + id=_, + distribution_id=_, + name=_, + arn=_, + domains=_, + created_time=_, + last_modified_time=_, + e_tag=_, +) +DnsConfiguration(domain=_, status=_) +DomainConflict(domain=_, resource_type=_, resource_id=_, account_id=_) +DomainItem(domain=_) +DomainResult(domain=_) +EncryptionEntities(quantity=_) +EncryptionEntity(public_key_id=_, provider_id=_, field_patterns=_) +EndPoint(stream_type=_) +FieldLevelEncryption(id=_, last_modified_time=_, field_level_encryption_config=_) +FieldLevelEncryptionConfig(caller_reference=_) +FieldLevelEncryptionList(max_items=_, quantity=_) +FieldLevelEncryptionProfile( + id=_, last_modified_time=_, field_level_encryption_profile_config=_ +) +FieldLevelEncryptionProfileConfig(name=_, caller_reference=_, encryption_entities=_) +FieldLevelEncryptionProfileList(max_items=_, quantity=_) +FieldLevelEncryptionProfileSummary( + id=_, last_modified_time=_, name=_, encryption_entities=_ +) +FieldLevelEncryptionSummary(id=_, last_modified_time=_) +FieldPatterns(quantity=_) +ForwardedValues(query_string=_, cookies=_) +FunctionAssociation(function_arn=_, event_type=_) +FunctionAssociations(quantity=_) +FunctionConfig(comment=_, runtime=_) +FunctionList(max_items=_, quantity=_) +FunctionMetadata(function_arn=_, last_modified_time=_) +FunctionSummary(name=_, function_config=_, function_metadata=_) +GeoRestriction(restriction_type=_, quantity=_) +GeoRestrictionCustomization(restriction_type=_) +GetAnycastIpListInput() +GetAnycastIpListOutput() +GetCachePolicyConfigInput() +GetCachePolicyConfigOutput() +GetCachePolicyInput() +GetCachePolicyOutput() +GetCloudFrontOriginAccessIdentityConfigInput() +GetCloudFrontOriginAccessIdentityConfigOutput() +GetCloudFrontOriginAccessIdentityInput() +GetCloudFrontOriginAccessIdentityOutput() +GetConnectionFunctionInput() +GetConnectionFunctionOutput() +GetConnectionGroupByRoutingEndpointInput() +GetConnectionGroupByRoutingEndpointOutput() +GetConnectionGroupInput() +GetConnectionGroupOutput() +GetContinuousDeploymentPolicyConfigInput() +GetContinuousDeploymentPolicyConfigOutput() +GetContinuousDeploymentPolicyInput() +GetContinuousDeploymentPolicyOutput() +GetDistributionConfigInput() +GetDistributionConfigOutput() +GetDistributionInput() +GetDistributionOutput() +GetDistributionTenantByDomainInput() +GetDistributionTenantByDomainOutput() +GetDistributionTenantInput() +GetDistributionTenantOutput() +GetFieldLevelEncryptionConfigInput() +GetFieldLevelEncryptionConfigOutput() +GetFieldLevelEncryptionInput() +GetFieldLevelEncryptionOutput() +GetFieldLevelEncryptionProfileConfigInput() +GetFieldLevelEncryptionProfileConfigOutput() +GetFieldLevelEncryptionProfileInput() +GetFieldLevelEncryptionProfileOutput() +GetFunctionInput() +GetFunctionOutput() +GetInvalidationForDistributionTenantInput() +GetInvalidationForDistributionTenantOutput() +GetInvalidationInput() +GetInvalidationOutput() +GetKeyGroupConfigInput() +GetKeyGroupConfigOutput() +GetKeyGroupInput() +GetKeyGroupOutput() +GetManagedCertificateDetailsInput() +GetManagedCertificateDetailsOutput() +GetMonitoringSubscriptionInput() +GetMonitoringSubscriptionOutput() +GetOriginAccessControlConfigInput() +GetOriginAccessControlConfigOutput() +GetOriginAccessControlInput() +GetOriginAccessControlOutput() +GetOriginRequestPolicyConfigInput() +GetOriginRequestPolicyConfigOutput() +GetOriginRequestPolicyInput() +GetOriginRequestPolicyOutput() +GetPublicKeyConfigInput() +GetPublicKeyConfigOutput() +GetPublicKeyInput() +GetPublicKeyOutput() +GetRealtimeLogConfigInput() +GetRealtimeLogConfigOutput() +GetResourcePolicyInput() +GetResourcePolicyOutput() +GetResponseHeadersPolicyConfigInput() +GetResponseHeadersPolicyConfigOutput() +GetResponseHeadersPolicyInput() +GetResponseHeadersPolicyOutput() +GetStreamingDistributionConfigInput() +GetStreamingDistributionConfigOutput() +GetStreamingDistributionInput() +GetStreamingDistributionOutput() +GetTrustStoreInput() +GetTrustStoreOutput() +GetVpcOriginInput() +GetVpcOriginOutput() +GrpcConfig(enabled=_) +Headers(quantity=_) +ImportSource(source_type=_, source_arn=_) +Invalidation(id=_, status=_, create_time=_, invalidation_batch=_) +InvalidationBatch(paths=_, caller_reference=_) +InvalidationList(marker=_, max_items=_, is_truncated=_, quantity=_) +InvalidationSummary(id=_, create_time=_, status=_) +IpamCidrConfig(cidr=_, ipam_pool_arn=_) +IpamConfig(quantity=_, ipam_cidr_configs=_) +KeyGroup(id=_, last_modified_time=_, key_group_config=_) +KeyGroupConfig(name=_, items=_) +KeyGroupList(max_items=_, quantity=_) +KeyGroupSummary(key_group=_) +KeyPairIds(quantity=_) +KeyValueStore(name=_, id=_, comment=_, arn=_, last_modified_time=_) +KeyValueStoreAssociation(key_value_store_arn=_) +KeyValueStoreAssociations(quantity=_) +KeyValueStoreList(max_items=_, quantity=_) +KGKeyPairIds() +KinesisStreamConfig(role_arn=_, stream_arn=_) +LambdaFunctionAssociation(lambda_function_arn=_, event_type=_) +LambdaFunctionAssociations(quantity=_) +ListAnycastIpListsInput() +ListAnycastIpListsOutput() +ListCachePoliciesInput() +ListCachePoliciesOutput() +ListCloudFrontOriginAccessIdentitiesInput() +ListCloudFrontOriginAccessIdentitiesOutput() +ListConflictingAliasesInput() +ListConflictingAliasesOutput() +ListConnectionFunctionsInput() +ListConnectionFunctionsOutput() +ListConnectionGroupsInput() +ListConnectionGroupsOutput() +ListContinuousDeploymentPoliciesInput() +ListContinuousDeploymentPoliciesOutput() +ListDistributionsByAnycastIpListIdInput() +ListDistributionsByAnycastIpListIdOutput() +ListDistributionsByCachePolicyIdInput() +ListDistributionsByCachePolicyIdOutput() +ListDistributionsByConnectionFunctionInput() +ListDistributionsByConnectionFunctionOutput() +ListDistributionsByConnectionModeInput() +ListDistributionsByConnectionModeOutput() +ListDistributionsByKeyGroupInput() +ListDistributionsByKeyGroupOutput() +ListDistributionsByOriginRequestPolicyIdInput() +ListDistributionsByOriginRequestPolicyIdOutput() +ListDistributionsByOwnedResourceInput() +ListDistributionsByOwnedResourceOutput() +ListDistributionsByRealtimeLogConfigInput() +ListDistributionsByRealtimeLogConfigOutput() +ListDistributionsByResponseHeadersPolicyIdInput() +ListDistributionsByResponseHeadersPolicyIdOutput() +ListDistributionsByTrustStoreInput() +ListDistributionsByTrustStoreOutput() +ListDistributionsByVpcOriginIdInput() +ListDistributionsByVpcOriginIdOutput() +ListDistributionsByWebACLIdInput() +ListDistributionsByWebACLIdOutput() +ListDistributionsInput() +ListDistributionsOutput() +ListDistributionTenantsByCustomizationInput() +ListDistributionTenantsByCustomizationOutput() +ListDistributionTenantsInput() +ListDistributionTenantsOutput() +ListDomainConflictsInput() +ListDomainConflictsOutput() +ListFieldLevelEncryptionConfigsInput() +ListFieldLevelEncryptionConfigsOutput() +ListFieldLevelEncryptionProfilesInput() +ListFieldLevelEncryptionProfilesOutput() +ListFunctionsInput() +ListFunctionsOutput() +ListInvalidationsForDistributionTenantInput() +ListInvalidationsForDistributionTenantOutput() +ListInvalidationsInput() +ListInvalidationsOutput() +ListKeyGroupsInput() +ListKeyGroupsOutput() +ListKeyValueStoresInput() +ListKeyValueStoresOutput() +ListOriginAccessControlsInput() +ListOriginAccessControlsOutput() +ListOriginRequestPoliciesInput() +ListOriginRequestPoliciesOutput() +ListPublicKeysInput() +ListPublicKeysOutput() +ListRealtimeLogConfigsInput() +ListRealtimeLogConfigsOutput() +ListResponseHeadersPoliciesInput() +ListResponseHeadersPoliciesOutput() +ListStreamingDistributionsInput() +ListStreamingDistributionsOutput() +ListTagsForResourceInput() +ListTagsForResourceOutput(tags=_) +ListTrustStoresInput() +ListTrustStoresOutput() +ListVpcOriginsInput() +ListVpcOriginsOutput() +LoggingConfig() +ManagedCertificateDetails() +ManagedCertificateRequest(validation_token_host=_) +MonitoringSubscription() +Origin(id=_, domain_name=_) +OriginAccessControl(id=_) +OriginAccessControlConfig( + name=_, signing_protocol=_, signing_behavior=_, origin_access_control_origin_type=_ +) +OriginAccessControlList(marker=_, max_items=_, is_truncated=_, quantity=_) +OriginAccessControlSummary( + id=_, + description=_, + name=_, + signing_protocol=_, + signing_behavior=_, + origin_access_control_origin_type=_, +) +OriginCustomHeader(header_name=_, header_value=_) +OriginGroup(id=_, failover_criteria=_, members=_) +OriginGroupFailoverCriteria(status_codes=_) +OriginGroupMember(origin_id=_) +OriginGroupMembers(quantity=_, items=_) +OriginGroups(quantity=_) +OriginMtlsConfig(client_certificate_arn=_) +OriginRequestPolicy(id=_, last_modified_time=_, origin_request_policy_config=_) +OriginRequestPolicyConfig( + name=_, headers_config=_, cookies_config=_, query_strings_config=_ +) +OriginRequestPolicyCookiesConfig(cookie_behavior=_) +OriginRequestPolicyHeadersConfig(header_behavior=_) +OriginRequestPolicyList(max_items=_, quantity=_) +OriginRequestPolicyQueryStringsConfig(query_string_behavior=_) +OriginRequestPolicySummary(type=_, origin_request_policy=_) +Origins(quantity=_, items=_) +OriginShield(enabled=_) +OriginSslProtocols(quantity=_, items=_) +Parameter(name=_, value=_) +ParameterDefinition(name=_, definition=_) +ParameterDefinitionSchema() +ParametersInCacheKeyAndForwardedToOrigin( + enable_accept_encoding_gzip=_, + headers_config=_, + cookies_config=_, + query_strings_config=_, +) +Paths(quantity=_) +PublicKey(id=_, created_time=_, public_key_config=_) +PublicKeyConfig(caller_reference=_, name=_, encoded_key=_) +PublicKeyList(max_items=_, quantity=_) +PublicKeySummary(id=_, name=_, created_time=_, encoded_key=_) +PublishConnectionFunctionInput() +PublishConnectionFunctionOutput() +PublishFunctionInput() +PublishFunctionOutput() +PutResourcePolicyInput() +PutResourcePolicyOutput() +QueryArgProfile(query_arg=_, profile_id=_) +QueryArgProfileConfig(forward_when_query_arg_profile_is_unknown=_) +QueryArgProfiles(quantity=_) +QueryStringCacheKeys(quantity=_) +QueryStringNames(quantity=_) +RealtimeLogConfig(arn=_, name=_, sampling_rate=_, end_points=_, fields=_) +RealtimeLogConfigs(max_items=_, is_truncated=_, marker=_) +RealtimeMetricsSubscriptionConfig(realtime_metrics_subscription_status=_) +ResponseHeadersPolicy(id=_, last_modified_time=_, response_headers_policy_config=_) +ResponseHeadersPolicyAccessControlAllowHeaders(quantity=_, items=_) +ResponseHeadersPolicyAccessControlAllowMethods(quantity=_, items=_) +ResponseHeadersPolicyAccessControlAllowOrigins(quantity=_, items=_) +ResponseHeadersPolicyAccessControlExposeHeaders(quantity=_) +ResponseHeadersPolicyConfig(name=_) +ResponseHeadersPolicyContentSecurityPolicy(override=_, content_security_policy=_) +ResponseHeadersPolicyContentTypeOptions(override=_) +ResponseHeadersPolicyCorsConfig( + access_control_allow_origins=_, + access_control_allow_headers=_, + access_control_allow_methods=_, + access_control_allow_credentials=_, + origin_override=_, +) +ResponseHeadersPolicyCustomHeader(header=_, value=_, override=_) +ResponseHeadersPolicyCustomHeadersConfig(quantity=_) +ResponseHeadersPolicyFrameOptions(override=_, frame_option=_) +ResponseHeadersPolicyList(max_items=_, quantity=_) +ResponseHeadersPolicyReferrerPolicy(override=_, referrer_policy=_) +ResponseHeadersPolicyRemoveHeader(header=_) +ResponseHeadersPolicyRemoveHeadersConfig(quantity=_) +ResponseHeadersPolicySecurityHeadersConfig() +ResponseHeadersPolicyServerTimingHeadersConfig(enabled=_) +ResponseHeadersPolicyStrictTransportSecurity(override=_, access_control_max_age_sec=_) +ResponseHeadersPolicySummary(type=_, response_headers_policy=_) +ResponseHeadersPolicyXSSProtection(override=_, protection=_) +Restrictions(geo_restriction=_) +S3Origin(domain_name=_, origin_access_identity=_) +S3OriginConfig() +SessionStickinessConfig(idle_ttl=_, maximum_ttl=_) +Signer() +StagingDistributionDnsNames(quantity=_) +StatusCodes(quantity=_, items=_) +StreamingDistribution( + id=_, + arn=_, + status=_, + domain_name=_, + active_trusted_signers=_, + streaming_distribution_config=_, +) +StreamingDistributionConfig( + caller_reference=_, s3_origin=_, comment=_, trusted_signers=_, enabled=_ +) +StreamingDistributionConfigWithTags(streaming_distribution_config=_, tags=_) +StreamingDistributionList(marker=_, max_items=_, is_truncated=_, quantity=_) +StreamingDistributionSummary( + id=_, + arn=_, + status=_, + last_modified_time=_, + domain_name=_, + s3_origin=_, + aliases=_, + trusted_signers=_, + comment=_, + price_class=_, + enabled=_, +) +StreamingLoggingConfig(enabled=_, bucket=_, prefix=_) +StringSchemaConfig(required=_) +Tag(key=_) +TagKeys() +TagResourceInput() +TagResourceOutput() +Tags() +TenantConfig() +TestConnectionFunctionInput() +TestConnectionFunctionOutput() +TestFunctionInput() +TestFunctionOutput() +TestResult() +TrafficConfig(type=_) +TrustedKeyGroups(enabled=_, quantity=_) +TrustedSigners(enabled=_, quantity=_) +TrustStore() +TrustStoreConfig(trust_store_id=_) +TrustStoreSummary( + id=_, + arn=_, + name=_, + status=_, + number_of_ca_certificates=_, + last_modified_time=_, + e_tag=_, +) +UntagResourceInput() +UntagResourceOutput() +UpdateAnycastIpListInput() +UpdateAnycastIpListOutput() +UpdateCachePolicyInput() +UpdateCachePolicyOutput() +UpdateCloudFrontOriginAccessIdentityInput() +UpdateCloudFrontOriginAccessIdentityOutput() +UpdateConnectionFunctionInput() +UpdateConnectionFunctionOutput() +UpdateConnectionGroupInput() +UpdateConnectionGroupOutput() +UpdateContinuousDeploymentPolicyInput() +UpdateContinuousDeploymentPolicyOutput() +UpdateDistributionInput() +UpdateDistributionOutput() +UpdateDistributionTenantInput() +UpdateDistributionTenantOutput() +UpdateDistributionWithStagingConfigInput() +UpdateDistributionWithStagingConfigOutput() +UpdateDomainAssociationInput() +UpdateDomainAssociationOutput() +UpdateFieldLevelEncryptionConfigInput() +UpdateFieldLevelEncryptionConfigOutput() +UpdateFieldLevelEncryptionProfileInput() +UpdateFieldLevelEncryptionProfileOutput() +UpdateFunctionInput() +UpdateFunctionOutput() +UpdateKeyGroupInput() +UpdateKeyGroupOutput() +UpdateKeyValueStoreInput() +UpdateKeyValueStoreOutput() +UpdateOriginAccessControlInput() +UpdateOriginAccessControlOutput() +UpdateOriginRequestPolicyInput() +UpdateOriginRequestPolicyOutput() +UpdatePublicKeyInput() +UpdatePublicKeyOutput() +UpdateRealtimeLogConfigInput() +UpdateRealtimeLogConfigOutput() +UpdateResponseHeadersPolicyInput() +UpdateResponseHeadersPolicyOutput() +UpdateStreamingDistributionInput() +UpdateStreamingDistributionOutput() +UpdateTrustStoreInput() +UpdateTrustStoreOutput() +UpdateVpcOriginInput() +UpdateVpcOriginOutput() +ValidationTokenDetail(domain=_) +VerifyDnsConfigurationInput() +VerifyDnsConfigurationOutput() +ViewerCertificate() +ViewerMtlsConfig() +VpcOrigin( + id=_, + arn=_, + status=_, + created_time=_, + last_modified_time=_, + vpc_origin_endpoint_config=_, +) +VpcOriginConfig(vpc_origin_id=_) +VpcOriginEndpointConfig( + name=_, arn=_, http_port=_, https_port=_, origin_protocol_policy=_ +) +VpcOriginList(marker=_, max_items=_, is_truncated=_, quantity=_) +VpcOriginSummary( + id=_, + name=_, + status=_, + created_time=_, + last_modified_time=_, + arn=_, + origin_endpoint_arn=_, +) +WebAclCustomization(action=_) diff --git a/clients/aws-sdk-cloudfront/tests/test_endpoints.py b/clients/aws-sdk-cloudfront/tests/test_endpoints.py new file mode 100644 index 00000000..967679ca --- /dev/null +++ b/clients/aws-sdk-cloudfront/tests/test_endpoints.py @@ -0,0 +1,380 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_cloudfront.aio.client import AsyncCloudFrontClient +from aws_sdk_cloudfront.aio.config import AsyncCloudFrontConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.cloudfront#Cloudfront2020_05_31. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncCloudFrontConfig: + return await AsyncCloudFrontConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncCloudFrontClient: + return AsyncCloudFrontClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Endpoint": "https://example.com", "UseFIPS": False}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled", + ), + param( + {"Endpoint": "https://example.com", "UseFIPS": True}, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled", + ), + param( + {"Endpoint": "https://example.com", "UseFIPS": False, "UseDualStack": True}, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront-fips.global.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront.global.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront-fips.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "cn-northwest-1"} + ] + }, + } + }, + id="For region cn-northwest-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "cn-northwest-1"} + ] + }, + } + }, + id="For region cn-northwest-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "cn-northwest-1"} + ] + }, + } + }, + id="For region cn-northwest-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "cn-northwest-1"} + ] + }, + } + }, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eusc-de-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.amazonaws.eu", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eusc-de-east-1"} + ] + }, + } + }, + id="For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eusc-de-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.amazonaws.eu", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eusc-de-east-1"} + ] + }, + } + }, + id="For region eusc-de-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.c2s.ic.gov", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-iso-east-1"}] + }, + } + }, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.c2s.ic.gov", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-iso-east-1"}] + }, + } + }, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isob-east-1"} + ] + }, + } + }, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isob-east-1"} + ] + }, + } + }, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-isoe-west-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eu-isoe-west-1"} + ] + }, + } + }, + id="For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-isoe-west-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eu-isoe-west-1"} + ] + }, + } + }, + id="For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isof-south-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isof-south-1"} + ] + }, + } + }, + id="For region us-isof-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isof-south-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isof-south-1"} + ] + }, + } + }, + id="For region us-isof-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront-fips.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront-fips.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://cloudfront.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-cloudfront/tests/test_model_conformance.py b/clients/aws-sdk-cloudfront/tests/test_model_conformance.py new file mode 100644 index 00000000..f4e72fc5 --- /dev/null +++ b/clients/aws-sdk-cloudfront/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_cloudfront import models as _models +from aws_sdk_cloudfront._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-cloudfront/tests/test_restxml_protocol.py b/clients/aws-sdk-cloudfront/tests/test_restxml_protocol.py new file mode 100644 index 00000000..6413623d --- /dev/null +++ b/clients/aws-sdk-cloudfront/tests/test_restxml_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_cloudfront.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/endpoints.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/endpoints.py index 7a6e0b0e..125dd89a 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/endpoints.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/endpoints.py @@ -33,26 +33,30 @@ ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 9: booleanEquals(PartitionResult#supportsDualStack, true) ((2, "stringEquals", "search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", (1, (0, "parsedEndpoint"), "authority")), None), # 10: stringEquals("search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", parsedEndpoint#authority) ((2, "isSet", (0, "AccountIdEndpointMode")), None), # 11: isSet(AccountIdEndpointMode) - ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws"), None), # 12: stringEquals(PartitionResult#name, "aws") - ((2, "stringEquals", (0, "AccountIdEndpointMode"), "disabled"), None), # 13: stringEquals(AccountIdEndpointMode, "disabled") - ((2, "isSet", (0, "ResourceArn")), None), # 14: isSet(ResourceArn) - ((2, "aws.parseArn", (0, "ResourceArn")), "ParsedArn_ssa_2"), # 15: ParsedArn_ssa_2 = aws.parseArn(ResourceArn) - ((2, "stringEquals", (1, (0, "ParsedArn_ssa_2"), "region"), (0, "Region")), None), # 16: stringEquals(ParsedArn_ssa_2#region, Region) - ((2, "stringEquals", (1, (0, "ParsedArn_ssa_2"), "service"), "dynamodb"), None), # 17: stringEquals(ParsedArn_ssa_2#service, "dynamodb") - ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_2"), "region"), False), None), # 18: isValidHostLabel(ParsedArn_ssa_2#region, false) - ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_2"), "accountId"), False), None), # 19: isValidHostLabel(ParsedArn_ssa_2#accountId, false) - ((2, "isSet", (0, "ResourceArnList")), None), # 20: isSet(ResourceArnList) - ((1, (0, "ResourceArnList"), "[0]"), "FirstArn"), # 21: FirstArn = ResourceArnList#[0] - ((2, "aws.parseArn", (0, "FirstArn")), "ParsedArn_ssa_1"), # 22: ParsedArn_ssa_1 = aws.parseArn(FirstArn) - ((2, "stringEquals", (1, (0, "ParsedArn_ssa_1"), "region"), (0, "Region")), None), # 23: stringEquals(ParsedArn_ssa_1#region, Region) - ((2, "stringEquals", (1, (0, "ParsedArn_ssa_1"), "service"), "dynamodb"), None), # 24: stringEquals(ParsedArn_ssa_1#service, "dynamodb") - ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_1"), "accountId"), False), None), # 25: isValidHostLabel(ParsedArn_ssa_1#accountId, false) - ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_1"), "region"), False), None), # 26: isValidHostLabel(ParsedArn_ssa_1#region, false) - ((2, "isSet", (0, "AccountId")), None), # 27: isSet(AccountId) - ((2, "stringEquals", (0, "AccountIdEndpointMode"), "required"), None), # 28: stringEquals(AccountIdEndpointMode, "required") - ((2, "isValidHostLabel", (0, "AccountId"), False), None), # 29: isValidHostLabel(AccountId, false) - ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 30: stringEquals(PartitionResult#name, "aws-us-gov") - ((2, "booleanEquals", (2, "coalesce", (0, "IsSearchOperation"), False), True), None), # 31: booleanEquals(coalesce(IsSearchOperation, false), true) + ((2, "stringEquals", (0, "Region"), "us-gov-east-1"), None), # 12: stringEquals(Region, "us-gov-east-1") + ((2, "stringEquals", (0, "Region"), "cn-north-1"), None), # 13: stringEquals(Region, "cn-north-1") + ((2, "stringEquals", (0, "Region"), "cn-northwest-1"), None), # 14: stringEquals(Region, "cn-northwest-1") + ((2, "stringEquals", (0, "Region"), "us-gov-west-1"), None), # 15: stringEquals(Region, "us-gov-west-1") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws"), None), # 16: stringEquals(PartitionResult#name, "aws") + ((2, "stringEquals", (0, "AccountIdEndpointMode"), "disabled"), None), # 17: stringEquals(AccountIdEndpointMode, "disabled") + ((2, "isSet", (0, "ResourceArn")), None), # 18: isSet(ResourceArn) + ((2, "aws.parseArn", (0, "ResourceArn")), "ParsedArn_ssa_2"), # 19: ParsedArn_ssa_2 = aws.parseArn(ResourceArn) + ((2, "stringEquals", (1, (0, "ParsedArn_ssa_2"), "service"), "dynamodb"), None), # 20: stringEquals(ParsedArn_ssa_2#service, "dynamodb") + ((2, "stringEquals", (1, (0, "ParsedArn_ssa_2"), "region"), (0, "Region")), None), # 21: stringEquals(ParsedArn_ssa_2#region, Region) + ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_2"), "accountId"), False), None), # 22: isValidHostLabel(ParsedArn_ssa_2#accountId, false) + ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_2"), "region"), False), None), # 23: isValidHostLabel(ParsedArn_ssa_2#region, false) + ((2, "isSet", (0, "ResourceArnList")), None), # 24: isSet(ResourceArnList) + ((1, (0, "ResourceArnList"), "[0]"), "FirstArn"), # 25: FirstArn = ResourceArnList#[0] + ((2, "aws.parseArn", (0, "FirstArn")), "ParsedArn_ssa_1"), # 26: ParsedArn_ssa_1 = aws.parseArn(FirstArn) + ((2, "stringEquals", (1, (0, "ParsedArn_ssa_1"), "region"), (0, "Region")), None), # 27: stringEquals(ParsedArn_ssa_1#region, Region) + ((2, "stringEquals", (1, (0, "ParsedArn_ssa_1"), "service"), "dynamodb"), None), # 28: stringEquals(ParsedArn_ssa_1#service, "dynamodb") + ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_1"), "accountId"), False), None), # 29: isValidHostLabel(ParsedArn_ssa_1#accountId, false) + ((2, "isValidHostLabel", (1, (0, "ParsedArn_ssa_1"), "region"), False), None), # 30: isValidHostLabel(ParsedArn_ssa_1#region, false) + ((2, "isSet", (0, "AccountId")), None), # 31: isSet(AccountId) + ((2, "stringEquals", (0, "AccountIdEndpointMode"), "required"), None), # 32: stringEquals(AccountIdEndpointMode, "required") + ((2, "isValidHostLabel", (0, "AccountId"), False), None), # 33: isValidHostLabel(AccountId, false) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 34: stringEquals(PartitionResult#name, "aws-us-gov") + ((2, "booleanEquals", (2, "coalesce", (0, "IsSearchOperation"), False), True), None), # 35: booleanEquals(coalesce(IsSearchOperation, false), true) ), results=( None, # 0: no match @@ -62,7 +66,7 @@ (6, "{Endpoint}", None, ()), # 4 (5, "Invalid Configuration: FIPS and local endpoint are not supported"), # 5 (5, "Invalid Configuration: Dualstack and local endpoint are not supported"), # 6 - (6, "http://localhost:8000", (4, ("authSchemes",), (3, (4, ("signingRegion", "signingName", "name"), "us-east-1", "dynamodb", "sigv4"))), ()), # 7 + (6, "http://localhost:8000", (4, ("authSchemes",), (3, (4, ("name", "signingName", "signingRegion"), "sigv4", "dynamodb", "us-east-1"))), ()), # 7 (5, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"), # 8 (6, "https://search-dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 (6, "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 10 @@ -72,17 +76,17 @@ (6, "https://search-dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 14 (6, "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 15 (5, "FIPS is enabled but this partition does not support FIPS"), # 16 - (6, "https://{ParsedArn_ssa_2#accountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 17 - (6, "https://{ParsedArn_ssa_2#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 18 - (6, "https://{ParsedArn_ssa_1#accountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 19 - (6, "https://{ParsedArn_ssa_1#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 20 - (6, "https://{AccountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 21 - (6, "https://{AccountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 22 - (5, "Credentials-sourced account ID parameter is invalid"), # 23 - (5, "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded"), # 24 - (5, "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition"), # 25 - (6, "https://search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 26 - (6, "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 27 + (5, "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region"), # 17 + (6, "https://search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 18 + (6, "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 19 + (6, "https://{ParsedArn_ssa_2#accountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 20 + (6, "https://{ParsedArn_ssa_2#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 21 + (6, "https://{ParsedArn_ssa_1#accountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 22 + (6, "https://{ParsedArn_ssa_1#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 23 + (6, "https://{AccountId}.search-ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 24 + (6, "https://{AccountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 25 + (5, "Credentials-sourced account ID parameter is invalid"), # 26 + (5, "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded"), # 27 (5, "DualStack is enabled but this partition does not support DualStack"), # 28 (6, "https://{ParsedArn_ssa_2#accountId}.search-ddb.{Region}.{PartitionResult#dnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 29 (6, "https://{ParsedArn_ssa_2#accountId}.ddb.{Region}.{PartitionResult#dnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 30 @@ -101,82 +105,90 @@ 1, 4, 100_000_035, 2, 100_000_001, 5, 3, 100_000_002, 100_000_004, - 1, 77, 7, - 2, 61, 8, - 3, 34, 9, + 1, 85, 7, + 2, 69, 8, + 3, 38, 9, 4, 10, 100_000_035, 5, 100_000_007, 11, - 11, 12, 69, - 12, 14, 13, - 28, 100_000_025, 69, - 13, 33, 15, - 14, 16, 21, - 15, 17, 21, - 16, 18, 21, - 17, 19, 21, - 18, 20, 21, - 19, 32, 21, - 20, 22, 28, - 21, 23, 28, - 22, 24, 28, - 23, 25, 28, - 24, 26, 28, - 25, 27, 28, - 26, 31, 28, - 27, 29, 33, - 29, 30, 100_000_023, - 31, 100_000_033, 100_000_034, - 31, 100_000_031, 100_000_032, - 31, 100_000_029, 100_000_030, - 28, 100_000_024, 69, - 4, 35, 100_000_035, - 5, 100_000_006, 36, - 9, 37, 100_000_028, - 11, 38, 60, - 12, 40, 39, - 28, 100_000_025, 60, - 13, 59, 41, - 14, 42, 47, - 15, 43, 47, - 16, 44, 47, - 17, 45, 47, - 18, 46, 47, - 19, 58, 47, - 20, 48, 54, - 21, 49, 54, - 22, 50, 54, - 23, 51, 54, - 24, 52, 54, - 25, 53, 54, - 26, 57, 54, - 27, 55, 59, - 29, 56, 100_000_023, - 31, 100_000_021, 100_000_022, - 31, 100_000_019, 100_000_020, - 31, 100_000_017, 100_000_018, - 28, 100_000_024, 60, - 31, 100_000_026, 100_000_027, - 3, 70, 62, - 4, 63, 100_000_035, - 5, 100_000_005, 64, - 6, 65, 100_000_016, - 11, 66, 67, - 28, 100_000_008, 67, - 30, 69, 68, - 31, 100_000_014, 100_000_015, - 31, 100_000_012, 100_000_013, + 11, 12, 77, + 12, 18, 13, + 13, 18, 14, + 14, 18, 15, + 15, 18, 16, + 16, 18, 17, + 32, 100_000_017, 77, + 17, 37, 19, + 18, 20, 25, + 19, 21, 25, + 20, 22, 25, + 21, 23, 25, + 22, 24, 25, + 23, 36, 25, + 24, 26, 32, + 25, 27, 32, + 26, 28, 32, + 27, 29, 32, + 28, 30, 32, + 29, 31, 32, + 30, 35, 32, + 31, 33, 37, + 33, 34, 100_000_026, + 35, 100_000_033, 100_000_034, + 35, 100_000_031, 100_000_032, + 35, 100_000_029, 100_000_030, + 32, 100_000_027, 77, + 4, 39, 100_000_035, + 5, 100_000_006, 40, + 9, 41, 100_000_028, + 11, 42, 68, + 12, 48, 43, + 13, 48, 44, + 14, 48, 45, + 15, 48, 46, + 16, 48, 47, + 32, 100_000_017, 68, + 17, 67, 49, + 18, 50, 55, + 19, 51, 55, + 20, 52, 55, + 21, 53, 55, + 22, 54, 55, + 23, 66, 55, + 24, 56, 62, + 25, 57, 62, + 26, 58, 62, + 27, 59, 62, + 28, 60, 62, + 29, 61, 62, + 30, 65, 62, + 31, 63, 67, + 33, 64, 100_000_026, + 35, 100_000_024, 100_000_025, + 35, 100_000_022, 100_000_023, + 35, 100_000_020, 100_000_021, + 32, 100_000_027, 68, + 35, 100_000_018, 100_000_019, + 3, 78, 70, 4, 71, 100_000_035, 5, 100_000_005, 72, - 6, 73, 100_000_011, - 9, 74, 100_000_011, - 11, 75, 76, - 28, 100_000_008, 76, - 31, 100_000_009, 100_000_010, - 2, 100_000_001, 78, - 3, 100_000_002, 79, - 4, 80, 100_000_004, - 7, 81, 100_000_004, - 8, 100_000_003, 82, + 6, 73, 100_000_016, + 11, 74, 75, + 32, 100_000_008, 75, + 34, 77, 76, + 35, 100_000_014, 100_000_015, + 35, 100_000_012, 100_000_013, + 4, 79, 100_000_035, + 5, 100_000_005, 80, + 6, 81, 100_000_011, + 9, 82, 100_000_011, + 11, 83, 84, + 32, 100_000_008, 84, + 35, 100_000_009, 100_000_010, + 2, 100_000_001, 86, + 3, 100_000_002, 87, + 4, 88, 100_000_004, + 7, 89, 100_000_004, + 8, 100_000_003, 90, 10, 100_000_003, 100_000_004, ), ) diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/schemas.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/schemas.py index fbe0cef7..2f4090b3 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/schemas.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/_private/schemas.py @@ -226,9 +226,76 @@ _BSBi = "BilledSizeBytes" _BMS = "BillingModeSummary" _LUTPPRDT = "LastUpdateToPayPerRequestDateTime" +_BOA = "BulkOperationArn" +_NNLO = "NonNegativeLongObject" +_BOB = "BulkOperationBytes" +_BPB = "BulkPutBytes" +_BOS = "BulkOperationStatus" +_IP = "IN_PROGRESS" +_COMPLETED = "COMPLETED" +_CWE = "COMPLETED_WITH_ERRORS" +_CANCELLING = "CANCELLING" +_CANCELLED = "CANCELLED" +_FAILED = "FAILED" +_SIBBM = "SecondaryIndexesBulkBytesMap" +_BOVB = "BulkOperationVectorBytes" +_BPVB = "BulkPutVectorBytes" +_VIBVBM = "VectorIndexesBulkVectorBytesMap" +_BOU = "BulkOperationUsage" +_BOUM = "BulkOperationUsageMultiple" +_CT = "ClientToken" +_BOET = "BulkOperationEndTime" +_BOIC = "BulkOperationItemCount" +_smi = "smithy.api#default" +_FC = "FailureCode" +_FM = "FailureMessage" +_ICT = "InputCompressionType" +_GZIP = "GZIP" +_ZSTD = "ZSTD" +_BOIF = "BulkOperationInputFormat" +_DJ = "DYNAMODB_JSON" +_ION = "ION" +_SB = "S3Bucket" +_SBO = "S3BucketOwner" +_SPr = "S3Prefix" +_ISC = "InputS3Configuration" +_SKP = "S3KeyPrefix" +_IFn = "InputFormat" +_BOMWRU = "BulkOperationMaxWriteRequestUnits" +_OTE = "OutputTypeEnum" +_ERROR = "ERROR" +_CCF_ = "CONDITION_CHECK_FAILURE" +_OTL = "OutputTypeList" +_SSA = "S3SseAlgorithm" +_SSKKI = "S3SseKmsKeyId" +_OSC = "OutputS3Configuration" +_OT = "OutputType" +_BOPT = "BulkOperationPerformanceTier" +_STANDARD = "STANDARD" +_ACCELERATED = "ACCELERATED" +_PIB = "ProcessedInputBytes" +_BOST = "BulkOperationStartTime" +_BOTD = "BulkOperationTableDetail" +_BOTDu = "BulkOperationTableDetails" +_TIB = "TotalInputBytes" +_BOD = "BulkOperationDescription" +_TD = "TableDetails" +_ST = "StartTime" +_ET = "EndTime" +_PIC = "ProcessedItemCount" +_FIC = "FailedItemCount" +_PTe = "PerformanceTier" +_BONT = "BulkOperationNextToken" +_BOSu = "BulkOperationSummary" +_BOSL = "BulkOperationsSummaryList" +_CBOI = "CancelBulkOperationInput" +_smit = "smithy.api#input" +_sP = "smithy.rules#contextParam" +_CBOO = "CancelBulkOperationOutput" +_smith = "smithy.api#output" +_CBO = "CancelBulkOperation" _Co = "Code" _CRT = "ClientRequestToken" -_CT = "ClientToken" _CWLGA = "CloudWatchLogGroupArn" _CO = "ComparisonOperator" _EQ = "EQ" @@ -250,7 +317,6 @@ _CE = "ConditionExpression" _EAVV = "ExpressionAttributeValueVariable" _CRSRA = "ConfirmRemoveSelfResourceAccess" -_smi = "smithy.api#default" _CBS = "ContinuousBackupsStatus" _PITRS = "PointInTimeRecoveryStatus" _RPID = "RecoveryPeriodInDays" @@ -268,14 +334,10 @@ _CIR = "ContributorInsightsRule" _CIRL = "ContributorInsightsRuleList" _CIS = "ContributorInsightsStatus" -_FAILED = "FAILED" _CISo = "ContributorInsightsSummary" _CISon = "ContributorInsightsSummaries" _CBI = "CreateBackupInput" -_smit = "smithy.api#input" -_sP = "smithy.rules#contextParam" -_CBO = "CreateBackupOutput" -_smith = "smithy.api#output" +_CBOr = "CreateBackupOutput" _LEE = "LimitExceededException" _TIUE = "TableInUseException" _TNFE = "TableNotFoundException" @@ -313,7 +375,6 @@ _RSD = "ReplicaStatusDescription" _RSPP = "ReplicaStatusPercentProgress" _TCa = "TableClass" -_STANDARD = "STANDARD" _SIA = "STANDARD_INFREQUENT_ACCESS" _TCS = "TableClassSummary" _LUDT = "LastUpdateDateTime" @@ -356,7 +417,7 @@ _CTI = "CreateTableInput" _Tag = "Tags" _GTSA = "GlobalTableSourceArn" -_NNLO = "NonNegativeLongObject" +_DPEi = "DisassociationProtectionEnabled" _PTD = "ProvisionedThroughputDescription" _LIDT = "LastIncreaseDateTime" _LDDT = "LastDecreaseDateTime" @@ -381,7 +442,7 @@ _RDT = "RestoreDateTime" _VID = "VectorIndexDescription" _VIDL = "VectorIndexDescriptionList" -_TD = "TableDescription" +_TDa = "TableDescription" _LSL = "LatestStreamLabel" _LSA = "LatestStreamArn" _GTV = "GlobalTableVersion" @@ -425,6 +486,9 @@ _DBIe = "DescribeBackupInput" _DBOe = "DescribeBackupOutput" _DBe = "DescribeBackup" +_DBOI = "DescribeBulkOperationInput" +_DBOO = "DescribeBulkOperationOutput" +_DBOes = "DescribeBulkOperation" _DCBI = "DescribeContinuousBackupsInput" _DCBO = "DescribeContinuousBackupsOutput" _DCB = "DescribeContinuousBackups" @@ -449,28 +513,17 @@ _DEIe = "DescribeExportInput" _EET = "ExportEndTime" _EF = "ExportFormat" -_DJ = "DYNAMODB_JSON" -_ION = "ION" _EMx = "ExportManifest" _ES = "ExportStatus" -_IP = "IN_PROGRESS" -_COMPLETED = "COMPLETED" -_ET = "ExportTime" -_ETx = "ExportType" +_ETx = "ExportTime" +_ETxp = "ExportType" _FE_ = "FULL_EXPORT" _IE = "INCREMENTAL_EXPORT" -_FC = "FailureCode" -_FM = "FailureMessage" _KE = "KeyExpression" _EFT = "ExportFromTime" _ETT = "ExportToTime" _EVT = "ExportViewType" _IES = "IncrementalExportSpecification" -_SB = "S3Bucket" -_SBO = "S3BucketOwner" -_SPr = "S3Prefix" -_SSA = "S3SseAlgorithm" -_SSKKI = "S3SseKmsKeyId" _EST = "ExportStartTime" _ENFE = "ExportNotFoundException" _DGTI = "DescribeGlobalTableInput" @@ -501,23 +554,13 @@ _EC = "ErrorCount" _IIC = "ImportedItemCount" _ISm = "ImportStatus" -_CANCELLING = "CANCELLING" -_CANCELLED = "CANCELLED" -_ICT = "InputCompressionType" -_GZIP = "GZIP" -_ZSTD = "ZSTD" -_IFn = "InputFormat" _CSV = "CSV" _IFO = "InputFormatOptions" _Cs = "Csv" -_PIC = "ProcessedItemCount" _SBS = "S3BucketSource" -_SKP = "S3KeyPrefix" _IST = "ImportStartTime" _TCP = "TableCreationParameters" _ITD = "ImportTableDescription" -_ST = "StartTime" -_ETn = "EndTime" _PSB = "ProcessedSizeBytes" _DIO = "DescribeImportOutput" _INFE = "ImportNotFoundException" @@ -557,6 +600,9 @@ _DKSDOi = "DisableKinesisStreamingDestinationOutput" _cKSDO = "com.amazonaws.dynamodb#KinesisStreamingDestinationOutput" _DKSDi = "DisableKinesisStreamingDestination" +_DM = "DisassociationMode" +_WFR = "WAIT_FOR_REPLICATION" +_DRGMAi = "DisassociateReplicationGroupMemberAction" _DIE = "DuplicateItemException" _EKSDI = "EnableKinesisStreamingDestinationInput" _EKSDO = "EnableKinesisStreamingDestinationOutput" @@ -586,11 +632,15 @@ _LBO = "ListBackupsOutput" _LEBA = "LastEvaluatedBackupArn" _LB = "ListBackups" +_LBOML = "ListBulkOperationsMaxLimit" +_LBOI = "ListBulkOperationsInput" +_MR = "MaxResults" +_NT = "NextToken" +_LBOO = "ListBulkOperationsOutput" +_LBOi = "ListBulkOperations" _LCIL = "ListContributorInsightsLimit" _NTS = "NextTokenString" _LCII = "ListContributorInsightsInput" -_NT = "NextToken" -_MR = "MaxResults" _LCIO = "ListContributorInsightsOutput" _LCI = "ListContributorInsights" _LEML = "ListExportsMaxLimit" @@ -658,6 +708,9 @@ _STS = "ScanTotalSegments" _TKI = "TopKInteger" _SN = "ScoreNumber" +_SBPII = "StartBulkPutItemsInput" +_SBPIO = "StartBulkPutItemsOutput" +_SBPI = "StartBulkPutItems" _TRI = "TagResourceInput" _TRO = "TagResourceOutput" _sU = "smithy.api#Unit" @@ -715,6 +768,7 @@ _GTWGUL = "GlobalTableWitnessGroupUpdateList" _URGMA = "UpdateReplicationGroupMemberAction" _RGU = "ReplicationGroupUpdate" +_Dis = "Disassociate" _RGUL = "ReplicationGroupUpdateList" _VIU = "VectorIndexUpdate" _VIUL = "VectorIndexUpdateList" @@ -1761,12 +1815,311 @@ ((BILLING_MODE, 0), (DATE, 0)), ) -CODE: StaticSchema = (3, n0, _Co, 0) +BULK_OPERATION_ARN: StaticSchema = (3, n0, _BOA, 0) -CLIENT_REQUEST_TOKEN: StaticSchema = (3, n0, _CRT, 0) +NON_NEGATIVE_LONG_OBJECT: StaticSchema = (8, n0, _NNLO, 0) + +BULK_OPERATION_BYTES: StaticSchema = ( + 18, + n0, + _BOB, + 0, + (_BPB,), + ((NON_NEGATIVE_LONG_OBJECT, 0),), +) + +BULK_OPERATION_STATUS: StaticSchema = ( + 14, + n0, + _BOS, + 0, + (_IP, _COMPLETED, _CWE, _CANCELLING, _CANCELLED, _FAILED), + ( + (-1, {_sV: _IP}), + (-1, {_sV: _COMPLETED}), + (-1, {_sV: _CWE}), + (-1, {_sV: _CANCELLING}), + (-1, {_sV: _CANCELLED}), + (-1, {_sV: _FAILED}), + ), +) + +SECONDARY_INDEXES_BULK_BYTES_MAP: StaticSchema = ( + 17, + n0, + _SIBBM, + 0, + (_k, _v), + ((INDEX_NAME, 0), (BULK_OPERATION_BYTES, 0)), +) + +BULK_OPERATION_VECTOR_BYTES: StaticSchema = ( + 18, + n0, + _BOVB, + 0, + (_BPVB,), + ((NON_NEGATIVE_LONG_OBJECT, 0),), +) + +VECTOR_INDEXES_BULK_VECTOR_BYTES_MAP: StaticSchema = ( + 17, + n0, + _VIBVBM, + 0, + (_k, _v), + ((INDEX_NAME, 0), (BULK_OPERATION_VECTOR_BYTES, 0)), +) + +BULK_OPERATION_USAGE: StaticSchema = ( + 18, + n0, + _BOU, + 0, + (_TN, _BPB, _T, _LSI, _GSI, _VI), + ( + (TABLE_ARN, 0), + (NON_NEGATIVE_LONG_OBJECT, 0), + (BULK_OPERATION_BYTES, 0), + (SECONDARY_INDEXES_BULK_BYTES_MAP, 0), + (SECONDARY_INDEXES_BULK_BYTES_MAP, 0), + (VECTOR_INDEXES_BULK_VECTOR_BYTES_MAP, 0), + ), +) + +BULK_OPERATION_USAGE_MULTIPLE: StaticSchema = ( + 16, + n0, + _BOUM, + 0, + (_m,), + ((BULK_OPERATION_USAGE, 0),), +) CLIENT_TOKEN: StaticSchema = (3, n0, _CT, 0) +BULK_OPERATION_END_TIME: StaticSchema = (4, n0, _BOET, 0) + +BULK_OPERATION_ITEM_COUNT: StaticSchema = (8, n0, _BOIC, {_smi: 0}) + +FAILURE_CODE: StaticSchema = (3, n0, _FC, 0) + +FAILURE_MESSAGE: StaticSchema = (3, n0, _FM, 0) + +INPUT_COMPRESSION_TYPE: StaticSchema = ( + 14, + n0, + _ICT, + 0, + (_GZIP, _ZSTD, _NONE), + ((-1, {_sV: _GZIP}), (-1, {_sV: _ZSTD}), (-1, {_sV: _NONE})), +) + +BULK_OPERATION_INPUT_FORMAT: StaticSchema = ( + 14, + n0, + _BOIF, + 0, + (_DJ, _ION), + ((-1, {_sV: _DJ}), (-1, {_sV: _ION})), +) + +S3_BUCKET: StaticSchema = (3, n0, _SB, 0) + +S3_BUCKET_OWNER: StaticSchema = (3, n0, _SBO, 0) + +S3_PREFIX: StaticSchema = (3, n0, _SPr, 0) + +INPUT_S3_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ISC, + 0, + (_SBO, _SB, _SKP, _IFn, _ICT), + ( + (S3_BUCKET_OWNER, 0), + (S3_BUCKET, 1), + (S3_PREFIX, 0), + (BULK_OPERATION_INPUT_FORMAT, 1), + (INPUT_COMPRESSION_TYPE, 0), + ), +) + +BULK_OPERATION_MAX_WRITE_REQUEST_UNITS: StaticSchema = (8, n0, _BOMWRU, 0) + +OUTPUT_TYPE_ENUM: StaticSchema = ( + 14, + n0, + _OTE, + 0, + (_ERROR, _CCF_), + ((-1, {_sV: _ERROR}), (-1, {_sV: _CCF_})), +) + +OUTPUT_TYPE_LIST: StaticSchema = (16, n0, _OTL, 0, (_m,), ((OUTPUT_TYPE_ENUM, 0),)) + +S3_SSE_ALGORITHM: StaticSchema = ( + 14, + n0, + _SSA, + 0, + (_AES, _KMS), + ((-1, {_sV: _AES}), (-1, {_sV: _KMS})), +) + +S3_SSE_KMS_KEY_ID: StaticSchema = (3, n0, _SSKKI, 0) + +OUTPUT_S3_CONFIGURATION: StaticSchema = ( + 18, + n0, + _OSC, + 0, + (_SBO, _SB, _SKP, _SSA, _SSKKI, _OT), + ( + (S3_BUCKET_OWNER, 0), + (S3_BUCKET, 0), + (S3_PREFIX, 0), + (S3_SSE_ALGORITHM, 0), + (S3_SSE_KMS_KEY_ID, 0), + (OUTPUT_TYPE_LIST, 1), + ), +) + +BULK_OPERATION_PERFORMANCE_TIER: StaticSchema = ( + 14, + n0, + _BOPT, + 0, + (_STANDARD, _ACCELERATED), + ((-1, {_sV: _STANDARD}), (-1, {_sV: _ACCELERATED})), +) + +PROCESSED_INPUT_BYTES: StaticSchema = (8, n0, _PIB, 0) + +BULK_OPERATION_START_TIME: StaticSchema = (4, n0, _BOST, 0) + +BULK_OPERATION_TABLE_DETAIL: StaticSchema = ( + 18, + n0, + _BOTD, + 0, + (_TN, _TI), + ((TABLE_ARN, 0), (TABLE_ID, 0)), +) + +BULK_OPERATION_TABLE_DETAILS: StaticSchema = ( + 16, + n0, + _BOTDu, + 0, + (_m,), + ((BULK_OPERATION_TABLE_DETAIL, 0),), +) + +TOTAL_INPUT_BYTES: StaticSchema = (8, n0, _TIB, 0) + +BULK_OPERATION_DESCRIPTION: StaticSchema = ( + 18, + n0, + _BOD, + 0, + ( + _BOA, + _BOS, + _TD, + _CT, + _ISC, + _OSC, + _ST, + _ET, + _PIC, + _PIB, + _TIB, + _BOU, + _FIC, + _FC, + _FM, + _MWRU, + _PTe, + ), + ( + (BULK_OPERATION_ARN, 0), + (BULK_OPERATION_STATUS, 0), + (BULK_OPERATION_TABLE_DETAILS, 0), + (CLIENT_TOKEN, 0), + (INPUT_S3_CONFIGURATION, 0), + (OUTPUT_S3_CONFIGURATION, 0), + (BULK_OPERATION_START_TIME, 0), + (BULK_OPERATION_END_TIME, 0), + (BULK_OPERATION_ITEM_COUNT, {_smi: 0}), + (PROCESSED_INPUT_BYTES, 0), + (TOTAL_INPUT_BYTES, 0), + (BULK_OPERATION_USAGE_MULTIPLE, 0), + (BULK_OPERATION_ITEM_COUNT, {_smi: 0}), + (FAILURE_CODE, 0), + (FAILURE_MESSAGE, 0), + (BULK_OPERATION_MAX_WRITE_REQUEST_UNITS, 0), + (BULK_OPERATION_PERFORMANCE_TIER, 0), + ), +) + +BULK_OPERATION_NEXT_TOKEN: StaticSchema = (3, n0, _BONT, 0) + +BULK_OPERATION_SUMMARY: StaticSchema = ( + 18, + n0, + _BOSu, + 0, + (_BOA, _BOS, _ST, _ET), + ( + (BULK_OPERATION_ARN, 1), + (BULK_OPERATION_STATUS, 1), + (BULK_OPERATION_START_TIME, 1), + (BULK_OPERATION_END_TIME, 0), + ), +) + +BULK_OPERATIONS_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _BOSL, + 0, + (_m,), + ((BULK_OPERATION_SUMMARY, 0),), +) + +CANCEL_BULK_OPERATION_INPUT: StaticSchema = ( + 18, + n0, + _CBOI, + {_smit: None}, + (_BOA,), + ((BULK_OPERATION_ARN, {_sP: MappingProxyType({"name": "ResourceArn"}), _s: None}),), +) + +CANCEL_BULK_OPERATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CBOO, + {_smith: None}, + (_BOA, _BOS), + ((BULK_OPERATION_ARN, 1), (BULK_OPERATION_STATUS, 1)), +) + +CANCEL_BULK_OPERATION: StaticOperationSchema = ( + 23, + n0, + _CBO, + 0, + CANCEL_BULK_OPERATION_INPUT, + CANCEL_BULK_OPERATION_OUTPUT, + (INVALID_ENDPOINT_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION), +) + +CODE: StaticSchema = (3, n0, _Co, 0) + +CLIENT_REQUEST_TOKEN: StaticSchema = (3, n0, _CRT, 0) + CLOUD_WATCH_LOG_GROUP_ARN: StaticSchema = (3, n0, _CWLGA, 0) COMPARISON_OPERATOR: StaticSchema = ( @@ -1941,7 +2294,7 @@ CREATE_BACKUP_OUTPUT: StaticSchema = ( 18, n0, - _CBO, + _CBOr, {_smith: None}, (_BD,), ((BACKUP_DETAILS, 0),), @@ -2474,7 +2827,7 @@ ), ) -NON_NEGATIVE_LONG_OBJECT: StaticSchema = (8, n0, _NNLO, 0) +DISASSOCIATION_PROTECTION_ENABLED: StaticSchema = (2, n0, _DPEi, 0) PROVISIONED_THROUGHPUT_DESCRIPTION: StaticSchema = ( 18, @@ -2628,7 +2981,7 @@ TABLE_DESCRIPTION: StaticSchema = ( 18, n0, - _TD, + _TDa, 0, ( _ADt, @@ -2656,6 +3009,7 @@ _AS, _TCS, _DPE, + _DPEi, _ODT, _WT, _MRC, @@ -2687,6 +3041,7 @@ (ARCHIVAL_SUMMARY, 0), (TABLE_CLASS_SUMMARY, 0), (DELETION_PROTECTION_ENABLED, 0), + (DISASSOCIATION_PROTECTION_ENABLED, 0), (ON_DEMAND_THROUGHPUT, 0), (TABLE_WARM_THROUGHPUT_DESCRIPTION, 0), (MULTI_REGION_CONSISTENCY, 0), @@ -2699,7 +3054,7 @@ n0, _CTO, {_smith: None}, - (_TD,), + (_TDa,), ((TABLE_DESCRIPTION, 0),), ) @@ -2913,7 +3268,7 @@ n0, _DTO, {_smith: None}, - (_TD,), + (_TDa,), ((TABLE_DESCRIPTION, 0),), ) @@ -2970,6 +3325,34 @@ (BACKUP_NOT_FOUND_EXCEPTION, INTERNAL_SERVER_ERROR, INVALID_ENDPOINT_EXCEPTION), ) +DESCRIBE_BULK_OPERATION_INPUT: StaticSchema = ( + 18, + n0, + _DBOI, + {_smit: None}, + (_BOA,), + ((BULK_OPERATION_ARN, {_sP: MappingProxyType({"name": "ResourceArn"}), _s: None}),), +) + +DESCRIBE_BULK_OPERATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBOO, + {_smith: None}, + (_BOD,), + ((BULK_OPERATION_DESCRIPTION, 1),), +) + +DESCRIBE_BULK_OPERATION: StaticOperationSchema = ( + 23, + n0, + _DBOes, + 0, + DESCRIBE_BULK_OPERATION_INPUT, + DESCRIBE_BULK_OPERATION_OUTPUT, + (INVALID_ENDPOINT_EXCEPTION, RESOURCE_NOT_FOUND_EXCEPTION), +) + DESCRIBE_CONTINUOUS_BACKUPS_INPUT: StaticSchema = ( 18, n0, @@ -3119,21 +3502,17 @@ ((-1, {_sV: _IP}), (-1, {_sV: _COMPLETED}), (-1, {_sV: _FAILED})), ) -EXPORT_TIME: StaticSchema = (4, n0, _ET, 0) +EXPORT_TIME: StaticSchema = (4, n0, _ETx, 0) EXPORT_TYPE: StaticSchema = ( 14, n0, - _ETx, + _ETxp, 0, (_FE_, _IE), ((-1, {_sV: _FE_}), (-1, {_sV: _IE})), ) -FAILURE_CODE: StaticSchema = (3, n0, _FC, 0) - -FAILURE_MESSAGE: StaticSchema = (3, n0, _FM, 0) - KEY_EXPRESSION: StaticSchema = (3, n0, _KE, 0) EXPORT_FROM_TIME: StaticSchema = (4, n0, _EFT, 0) @@ -3158,23 +3537,6 @@ ((EXPORT_FROM_TIME, 0), (EXPORT_TO_TIME, 0), (EXPORT_VIEW_TYPE, 0)), ) -S3_BUCKET: StaticSchema = (3, n0, _SB, 0) - -S3_BUCKET_OWNER: StaticSchema = (3, n0, _SBO, 0) - -S3_PREFIX: StaticSchema = (3, n0, _SPr, 0) - -S3_SSE_ALGORITHM: StaticSchema = ( - 14, - n0, - _SSA, - 0, - (_AES, _KMS), - ((-1, {_sV: _AES}), (-1, {_sV: _KMS})), -) - -S3_SSE_KMS_KEY_ID: StaticSchema = (3, n0, _SSKKI, 0) - EXPORT_START_TIME: StaticSchema = (4, n0, _EST, 0) EXPORT_NOT_FOUND_EXCEPTION: StaticSchema = ( @@ -3344,15 +3706,6 @@ ), ) -INPUT_COMPRESSION_TYPE: StaticSchema = ( - 14, - n0, - _ICT, - 0, - (_GZIP, _ZSTD, _NONE), - ((-1, {_sV: _GZIP}), (-1, {_sV: _ZSTD}), (-1, {_sV: _NONE})), -) - INPUT_FORMAT: StaticSchema = ( 14, n0, @@ -3415,7 +3768,7 @@ _ICT, _TCP, _ST, - _ETn, + _ET, _PSB, _PIC, _IIC, @@ -3758,6 +4111,17 @@ ), ) +DISASSOCIATION_MODE: StaticSchema = (14, n0, _DM, 0, (_WFR,), ((-1, {_sV: _WFR}),)) + +DISASSOCIATE_REPLICATION_GROUP_MEMBER_ACTION: StaticSchema = ( + 18, + n0, + _DRGMAi, + 0, + (_RN, _DM), + ((REGION_NAME, 1), (DISASSOCIATION_MODE, 1)), +) + DUPLICATE_ITEM_EXCEPTION: StaticSchema = ( 18, n0, @@ -3988,6 +4352,36 @@ (INTERNAL_SERVER_ERROR, INVALID_ENDPOINT_EXCEPTION), ) +LIST_BULK_OPERATIONS_MAX_LIMIT: StaticSchema = (7, n0, _LBOML, 0) + +LIST_BULK_OPERATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LBOI, + {_smit: None}, + (_MR, _NT), + ((LIST_BULK_OPERATIONS_MAX_LIMIT, 0), (BULK_OPERATION_NEXT_TOKEN, 0)), +) + +LIST_BULK_OPERATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBOO, + {_smith: None}, + (_BOSL, _NT), + ((BULK_OPERATIONS_SUMMARY_LIST, 0), (BULK_OPERATION_NEXT_TOKEN, 0)), +) + +LIST_BULK_OPERATIONS: StaticOperationSchema = ( + 23, + n0, + _LBOi, + 0, + LIST_BULK_OPERATIONS_INPUT, + LIST_BULK_OPERATIONS_OUTPUT, + (INVALID_ENDPOINT_EXCEPTION,), +) + LIST_CONTRIBUTOR_INSIGHTS_LIMIT: StaticSchema = (7, n0, _LCIL, {_smi: 0}) NEXT_TOKEN_STRING: StaticSchema = (3, n0, _NTS, 0) @@ -4046,7 +4440,7 @@ n0, _ESx, 0, - (_EA, _ES, _ETx), + (_EA, _ES, _ETxp), ((EXPORT_ARN, 0), (EXPORT_STATUS, 0), (EXPORT_TYPE, 0)), ) @@ -4132,7 +4526,7 @@ n0, _ISmp, 0, - (_IAm, _ISm, _TA, _SBS, _CWLGA, _IFn, _ST, _ETn), + (_IAm, _ISm, _TA, _SBS, _CWLGA, _IFn, _ST, _ET), ( (IMPORT_ARN, 0), (IMPORT_STATUS, 0), @@ -4310,7 +4704,7 @@ n0, _RTFBO, {_smith: None}, - (_TD,), + (_TDa,), ((TABLE_DESCRIPTION, 0),), ) @@ -4377,7 +4771,7 @@ n0, _RTTPITO, {_smith: None}, - (_TD,), + (_TDa,), ((TABLE_DESCRIPTION, 0),), ) @@ -4408,6 +4802,47 @@ SCORE_NUMBER: StaticSchema = (10, n0, _SN, {_smi: 0}) +START_BULK_PUT_ITEMS_INPUT: StaticSchema = ( + 18, + n0, + _SBPII, + {_smit: None}, + (_CT, _ISC, _OSC, _TN, _MWRU, _PTe), + ( + (CLIENT_TOKEN, 2), + (INPUT_S3_CONFIGURATION, 1), + (OUTPUT_S3_CONFIGURATION, 1), + (TABLE_ARN, {_sP: MappingProxyType({"name": "ResourceArn"}), _s: None}), + (BULK_OPERATION_MAX_WRITE_REQUEST_UNITS, 0), + (BULK_OPERATION_PERFORMANCE_TIER, 0), + ), +) + +START_BULK_PUT_ITEMS_OUTPUT: StaticSchema = ( + 18, + n0, + _SBPIO, + {_smith: None}, + (_BOD,), + ((BULK_OPERATION_DESCRIPTION, 1),), +) + +START_BULK_PUT_ITEMS: StaticOperationSchema = ( + 23, + n0, + _SBPI, + 0, + START_BULK_PUT_ITEMS_INPUT, + START_BULK_PUT_ITEMS_OUTPUT, + ( + IDEMPOTENT_PARAMETER_MISMATCH_EXCEPTION, + INVALID_ENDPOINT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + TAG_RESOURCE_INPUT: StaticSchema = ( 18, n0, @@ -4870,11 +5305,12 @@ n0, _RGU, 0, - (_Cr, _U, _Del), + (_Cr, _U, _Del, _Dis), ( (CREATE_REPLICATION_GROUP_MEMBER_ACTION, 0), (UPDATE_REPLICATION_GROUP_MEMBER_ACTION, 0), (DELETE_REPLICATION_GROUP_MEMBER_ACTION, 0), + (DISASSOCIATE_REPLICATION_GROUP_MEMBER_ACTION, 0), ), ) @@ -4926,6 +5362,7 @@ _ODT, _WT, _GTSRM, + _DPEi, _VIUe, ), ( @@ -4944,6 +5381,7 @@ (ON_DEMAND_THROUGHPUT, 0), (WARM_THROUGHPUT, 0), (GLOBAL_TABLE_SETTINGS_REPLICATION_MODE, 0), + (DISASSOCIATION_PROTECTION_ENABLED, 0), (VECTOR_INDEX_UPDATE_LIST, 0), ), ) @@ -4953,7 +5391,7 @@ n0, _UTO, {_smith: None}, - (_TD,), + (_TDa,), ((TABLE_DESCRIPTION, 0),), ) @@ -5421,11 +5859,11 @@ _EA, _ES, _ST, - _ETn, + _ET, _EMx, _TA, _TI, - _ET, + _ETx, _CT, _SB, _SBO, @@ -5437,7 +5875,7 @@ _EF, _BSBi, _IC, - _ETx, + _ETxp, _IES, _FS, ), @@ -5472,7 +5910,7 @@ n0, _ETTPITI, {_smit: None}, - (_TA, _ET, _CT, _SB, _SBO, _SPr, _SSA, _SSKKI, _EF, _ETx, _IES, _FS), + (_TA, _ETx, _CT, _SB, _SBO, _SPr, _SSA, _SSKKI, _EF, _ETxp, _IES, _FS), ( (TABLE_ARN, {_sP: MappingProxyType({"name": "ResourceArn"}), _s: None}), (EXPORT_TIME, 0), diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/client.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/client.py index 04f75542..f83ce5aa 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/client.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/client.py @@ -27,6 +27,8 @@ BatchGetItemOutput, BatchWriteItemInput, BatchWriteItemOutput, + CancelBulkOperationInput, + CancelBulkOperationOutput, CreateBackupInput, CreateBackupOutput, CreateGlobalTableInput, @@ -43,6 +45,8 @@ DeleteTableOutput, DescribeBackupInput, DescribeBackupOutput, + DescribeBulkOperationInput, + DescribeBulkOperationOutput, DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, DescribeContributorInsightsInput, @@ -85,6 +89,8 @@ ImportTableOutput, ListBackupsInput, ListBackupsOutput, + ListBulkOperationsInput, + ListBulkOperationsOutput, ListContributorInsightsInput, ListContributorInsightsOutput, ListExportsInput, @@ -111,6 +117,8 @@ ScanOutput, SearchVectorsInput, SearchVectorsOutput, + StartBulkPutItemsInput, + StartBulkPutItemsOutput, TagResourceInput, TagResourceOutput, TransactGetItemsInput, @@ -400,6 +408,29 @@ async def batch_write_item( """ return await self._invoke(input, _models.BATCH_WRITE_ITEM, [], plugins) + async def cancel_bulk_operation( + self, input: CancelBulkOperationInput, plugins: list[Plugin] | None = None + ) -> CancelBulkOperationOutput: + """ + Cancels an in-progress bulk operation asynchronously. Cancellation + doesn't remove items that the operation has already written. Use + `DescribeBulkOperation` to monitor the operation until it reaches a + terminal status. + + Args: + input: + An instance of `CancelBulkOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelBulkOperationOutput`. + """ + return await self._invoke(input, _models.CANCEL_BULK_OPERATION, [], plugins) + async def create_backup( self, input: CreateBackupInput, plugins: list[Plugin] | None = None ) -> CreateBackupOutput: @@ -722,6 +753,26 @@ async def describe_backup( """ return await self._invoke(input, _models.DESCRIBE_BACKUP, [], plugins) + async def describe_bulk_operation( + self, input: DescribeBulkOperationInput, plugins: list[Plugin] | None = None + ) -> DescribeBulkOperationOutput: + """ + Describes the specified bulk operation. + + Args: + input: + An instance of `DescribeBulkOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBulkOperationOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_BULK_OPERATION, [], plugins) + async def describe_continuous_backups( self, input: DescribeContinuousBackupsInput, plugins: list[Plugin] | None = None ) -> DescribeContinuousBackupsOutput: @@ -1376,6 +1427,29 @@ async def list_backups( """ return await self._invoke(input, _models.LIST_BACKUPS, [], plugins) + async def list_bulk_operations( + self, input: ListBulkOperationsInput, plugins: list[Plugin] | None = None + ) -> ListBulkOperationsOutput: + """ + Lists bulk operations that started within the past 90 days for the + current Amazon Web Services account and Amazon Web Services Region, with + the most recent operations first. Results are paginated. Use the + `NextToken` parameter to retrieve additional results. + + Args: + input: + An instance of `ListBulkOperationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBulkOperationsOutput`. + """ + return await self._invoke(input, _models.LIST_BULK_OPERATIONS, [], plugins) + async def list_contributor_insights( self, input: ListContributorInsightsInput, plugins: list[Plugin] | None = None ) -> ListContributorInsightsOutput: @@ -1895,6 +1969,28 @@ async def search_vectors( """ return await self._invoke(input, _models.SEARCH_VECTORS, [], plugins) + async def start_bulk_put_items( + self, input: StartBulkPutItemsInput, plugins: list[Plugin] | None = None + ) -> StartBulkPutItemsOutput: + """ + Starts an asynchronous bulk operation that reads items from Amazon S3 + and writes them to an existing DynamoDB table, so you can efficiently + load or migrate large datasets. + + Args: + input: + An instance of `StartBulkPutItemsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartBulkPutItemsOutput`. + """ + return await self._invoke(input, _models.START_BULK_PUT_ITEMS, [], plugins) + async def tag_resource( self, input: TagResourceInput, plugins: list[Plugin] | None = None ) -> TagResourceOutput: @@ -2301,7 +2397,8 @@ async def update_table( ) -> UpdateTableOutput: """ Modifies the provisioned throughput settings, global secondary indexes, - or DynamoDB Streams settings for a given table. + DynamoDB Streams settings, or global table replica settings for a given + table. You can only perform one of the following operations at once: @@ -2313,11 +2410,35 @@ async def update_table( begins backfilling, you can use `UpdateTable` to perform other operations. + - Enable or disable disassociation protection for the local global table + replica. + + - Disassociate the local global table replica and keep it as a + standalone regional table. The `Disassociate` action must be the only + replica update in the request. If the request includes any other + update, `UpdateTable` fails with a `ValidationException` and the + disassociation does not start. + `UpdateTable` is an asynchronous operation; while it's executing, the table status changes from `ACTIVE` to `UPDATING`. While it's - `UPDATING`, you can't issue another `UpdateTable` request. When the - table returns to the `ACTIVE` state, the `UpdateTable` operation is - complete. + `UPDATING`, you can't issue another `UpdateTable` request. Use + `DescribeTable` to monitor the table's status. + + To use this operation to disassociate a local replica, you must have the + `dynamodb:UpdateTable` and `dynamodb:DisassociateTableReplica` IAM + permissions on the local replica. Send disassociation and disassociation + protection requests to the replica's Region using credentials for the + account that owns the replica. For prerequisites and the procedure, see + [Disassociating a global table + replica](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables-disassociate.html) + in the *Amazon DynamoDB Developer Guide*. + + To confirm successful disassociation, call `DescribeTable` in the + replica's Region and verify that `TableStatus` is `ACTIVE` and + `Replicas` is absent or empty. If `TableStatus` returns to `ACTIVE` but + the response still includes a `Replicas` list, the disassociation did + not complete. Check `ReplicaStatus` for a replication-permission or + encryption-access problem, resolve it, and retry. Args: input: diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/config.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/config.py index cd0c8058..29cf4de0 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/config.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/aio/config.py @@ -57,6 +57,8 @@ BatchGetItemOutput, BatchWriteItemInput, BatchWriteItemOutput, + CancelBulkOperationInput, + CancelBulkOperationOutput, CreateBackupInput, CreateBackupOutput, CreateGlobalTableInput, @@ -73,6 +75,8 @@ DeleteTableOutput, DescribeBackupInput, DescribeBackupOutput, + DescribeBulkOperationInput, + DescribeBulkOperationOutput, DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, DescribeContributorInsightsInput, @@ -115,6 +119,8 @@ ImportTableOutput, ListBackupsInput, ListBackupsOutput, + ListBulkOperationsInput, + ListBulkOperationsOutput, ListContributorInsightsInput, ListContributorInsightsOutput, ListExportsInput, @@ -141,6 +147,8 @@ ScanOutput, SearchVectorsInput, SearchVectorsOutput, + StartBulkPutItemsInput, + StartBulkPutItemsOutput, TagResourceInput, TagResourceOutput, TransactGetItemsInput, @@ -173,6 +181,7 @@ Interceptor[BatchExecuteStatementInput, BatchExecuteStatementOutput, Any, Any], Interceptor[BatchGetItemInput, BatchGetItemOutput, Any, Any], Interceptor[BatchWriteItemInput, BatchWriteItemOutput, Any, Any], + Interceptor[CancelBulkOperationInput, CancelBulkOperationOutput, Any, Any], Interceptor[CreateBackupInput, CreateBackupOutput, Any, Any], Interceptor[CreateGlobalTableInput, CreateGlobalTableOutput, Any, Any], Interceptor[CreateTableInput, CreateTableOutput, Any, Any], @@ -181,6 +190,7 @@ Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], Interceptor[DeleteTableInput, DeleteTableOutput, Any, Any], Interceptor[DescribeBackupInput, DescribeBackupOutput, Any, Any], + Interceptor[DescribeBulkOperationInput, DescribeBulkOperationOutput, Any, Any], Interceptor[ DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, Any, Any ], @@ -236,6 +246,7 @@ Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], Interceptor[ImportTableInput, ImportTableOutput, Any, Any], Interceptor[ListBackupsInput, ListBackupsOutput, Any, Any], + Interceptor[ListBulkOperationsInput, ListBulkOperationsOutput, Any, Any], Interceptor[ ListContributorInsightsInput, ListContributorInsightsOutput, Any, Any ], @@ -255,6 +266,7 @@ ], Interceptor[ScanInput, ScanOutput, Any, Any], Interceptor[SearchVectorsInput, SearchVectorsOutput, Any, Any], + Interceptor[StartBulkPutItemsInput, StartBulkPutItemsOutput, Any, Any], Interceptor[TagResourceInput, TagResourceOutput, Any, Any], Interceptor[TransactGetItemsInput, TransactGetItemsOutput, Any, Any], Interceptor[TransactWriteItemsInput, TransactWriteItemsOutput, Any, Any], diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/client.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/client.py index ee3e451d..b5d3acb5 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/client.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/client.py @@ -27,6 +27,8 @@ BatchGetItemOutput, BatchWriteItemInput, BatchWriteItemOutput, + CancelBulkOperationInput, + CancelBulkOperationOutput, CreateBackupInput, CreateBackupOutput, CreateGlobalTableInput, @@ -43,6 +45,8 @@ DeleteTableOutput, DescribeBackupInput, DescribeBackupOutput, + DescribeBulkOperationInput, + DescribeBulkOperationOutput, DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, DescribeContributorInsightsInput, @@ -85,6 +89,8 @@ ImportTableOutput, ListBackupsInput, ListBackupsOutput, + ListBulkOperationsInput, + ListBulkOperationsOutput, ListContributorInsightsInput, ListContributorInsightsOutput, ListExportsInput, @@ -111,6 +117,8 @@ ScanOutput, SearchVectorsInput, SearchVectorsOutput, + StartBulkPutItemsInput, + StartBulkPutItemsOutput, TagResourceInput, TagResourceOutput, TransactGetItemsInput, @@ -400,6 +408,29 @@ def batch_write_item( """ return self._invoke(input, _models.BATCH_WRITE_ITEM, [], plugins) + def cancel_bulk_operation( + self, input: CancelBulkOperationInput, plugins: list[Plugin] | None = None + ) -> CancelBulkOperationOutput: + """ + Cancels an in-progress bulk operation asynchronously. Cancellation + doesn't remove items that the operation has already written. Use + `DescribeBulkOperation` to monitor the operation until it reaches a + terminal status. + + Args: + input: + An instance of `CancelBulkOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelBulkOperationOutput`. + """ + return self._invoke(input, _models.CANCEL_BULK_OPERATION, [], plugins) + def create_backup( self, input: CreateBackupInput, plugins: list[Plugin] | None = None ) -> CreateBackupOutput: @@ -722,6 +753,26 @@ def describe_backup( """ return self._invoke(input, _models.DESCRIBE_BACKUP, [], plugins) + def describe_bulk_operation( + self, input: DescribeBulkOperationInput, plugins: list[Plugin] | None = None + ) -> DescribeBulkOperationOutput: + """ + Describes the specified bulk operation. + + Args: + input: + An instance of `DescribeBulkOperationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBulkOperationOutput`. + """ + return self._invoke(input, _models.DESCRIBE_BULK_OPERATION, [], plugins) + def describe_continuous_backups( self, input: DescribeContinuousBackupsInput, plugins: list[Plugin] | None = None ) -> DescribeContinuousBackupsOutput: @@ -1372,6 +1423,31 @@ def list_backups( """ return self._invoke(input, _models.LIST_BACKUPS, [], plugins) + def list_bulk_operations( + self, + input: ListBulkOperationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListBulkOperationsOutput: + """ + Lists bulk operations that started within the past 90 days for the + current Amazon Web Services account and Amazon Web Services Region, with + the most recent operations first. Results are paginated. Use the + `NextToken` parameter to retrieve additional results. + + Args: + input: + An instance of `ListBulkOperationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBulkOperationsOutput`. + """ + return self._invoke(input, _models.LIST_BULK_OPERATIONS, [], plugins) + def list_contributor_insights( self, input: ListContributorInsightsInput | None = None, @@ -1891,6 +1967,28 @@ def search_vectors( """ return self._invoke(input, _models.SEARCH_VECTORS, [], plugins) + def start_bulk_put_items( + self, input: StartBulkPutItemsInput, plugins: list[Plugin] | None = None + ) -> StartBulkPutItemsOutput: + """ + Starts an asynchronous bulk operation that reads items from Amazon S3 + and writes them to an existing DynamoDB table, so you can efficiently + load or migrate large datasets. + + Args: + input: + An instance of `StartBulkPutItemsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartBulkPutItemsOutput`. + """ + return self._invoke(input, _models.START_BULK_PUT_ITEMS, [], plugins) + def tag_resource( self, input: TagResourceInput, plugins: list[Plugin] | None = None ) -> TagResourceOutput: @@ -2293,7 +2391,8 @@ def update_table( ) -> UpdateTableOutput: """ Modifies the provisioned throughput settings, global secondary indexes, - or DynamoDB Streams settings for a given table. + DynamoDB Streams settings, or global table replica settings for a given + table. You can only perform one of the following operations at once: @@ -2305,11 +2404,35 @@ def update_table( begins backfilling, you can use `UpdateTable` to perform other operations. + - Enable or disable disassociation protection for the local global table + replica. + + - Disassociate the local global table replica and keep it as a + standalone regional table. The `Disassociate` action must be the only + replica update in the request. If the request includes any other + update, `UpdateTable` fails with a `ValidationException` and the + disassociation does not start. + `UpdateTable` is an asynchronous operation; while it's executing, the table status changes from `ACTIVE` to `UPDATING`. While it's - `UPDATING`, you can't issue another `UpdateTable` request. When the - table returns to the `ACTIVE` state, the `UpdateTable` operation is - complete. + `UPDATING`, you can't issue another `UpdateTable` request. Use + `DescribeTable` to monitor the table's status. + + To use this operation to disassociate a local replica, you must have the + `dynamodb:UpdateTable` and `dynamodb:DisassociateTableReplica` IAM + permissions on the local replica. Send disassociation and disassociation + protection requests to the replica's Region using credentials for the + account that owns the replica. For prerequisites and the procedure, see + [Disassociating a global table + replica](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables-disassociate.html) + in the *Amazon DynamoDB Developer Guide*. + + To confirm successful disassociation, call `DescribeTable` in the + replica's Region and verify that `TableStatus` is `ACTIVE` and + `Replicas` is absent or empty. If `TableStatus` returns to `ACTIVE` but + the response still includes a `Replicas` list, the disassociation did + not complete. Check `ReplicaStatus` for a replication-permission or + encryption-access problem, resolve it, and retry. Args: input: diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/config.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/config.py index 921d1664..a51c7edb 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/config.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/config.py @@ -52,6 +52,8 @@ BatchGetItemOutput, BatchWriteItemInput, BatchWriteItemOutput, + CancelBulkOperationInput, + CancelBulkOperationOutput, CreateBackupInput, CreateBackupOutput, CreateGlobalTableInput, @@ -68,6 +70,8 @@ DeleteTableOutput, DescribeBackupInput, DescribeBackupOutput, + DescribeBulkOperationInput, + DescribeBulkOperationOutput, DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, DescribeContributorInsightsInput, @@ -110,6 +114,8 @@ ImportTableOutput, ListBackupsInput, ListBackupsOutput, + ListBulkOperationsInput, + ListBulkOperationsOutput, ListContributorInsightsInput, ListContributorInsightsOutput, ListExportsInput, @@ -136,6 +142,8 @@ ScanOutput, SearchVectorsInput, SearchVectorsOutput, + StartBulkPutItemsInput, + StartBulkPutItemsOutput, TagResourceInput, TagResourceOutput, TransactGetItemsInput, @@ -168,6 +176,7 @@ Interceptor[BatchExecuteStatementInput, BatchExecuteStatementOutput, Any, Any], Interceptor[BatchGetItemInput, BatchGetItemOutput, Any, Any], Interceptor[BatchWriteItemInput, BatchWriteItemOutput, Any, Any], + Interceptor[CancelBulkOperationInput, CancelBulkOperationOutput, Any, Any], Interceptor[CreateBackupInput, CreateBackupOutput, Any, Any], Interceptor[CreateGlobalTableInput, CreateGlobalTableOutput, Any, Any], Interceptor[CreateTableInput, CreateTableOutput, Any, Any], @@ -176,6 +185,7 @@ Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], Interceptor[DeleteTableInput, DeleteTableOutput, Any, Any], Interceptor[DescribeBackupInput, DescribeBackupOutput, Any, Any], + Interceptor[DescribeBulkOperationInput, DescribeBulkOperationOutput, Any, Any], Interceptor[ DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, Any, Any ], @@ -231,6 +241,7 @@ Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], Interceptor[ImportTableInput, ImportTableOutput, Any, Any], Interceptor[ListBackupsInput, ListBackupsOutput, Any, Any], + Interceptor[ListBulkOperationsInput, ListBulkOperationsOutput, Any, Any], Interceptor[ ListContributorInsightsInput, ListContributorInsightsOutput, Any, Any ], @@ -250,6 +261,7 @@ ], Interceptor[ScanInput, ScanOutput, Any, Any], Interceptor[SearchVectorsInput, SearchVectorsOutput, Any, Any], + Interceptor[StartBulkPutItemsInput, StartBulkPutItemsOutput, Any, Any], Interceptor[TagResourceInput, TagResourceOutput, Any, Any], Interceptor[TransactGetItemsInput, TransactGetItemsOutput, Any, Any], Interceptor[TransactWriteItemsInput, TransactWriteItemsOutput, Any, Any], diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.py b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.py index d1b8b3f8..4bfa66a8 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.py +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.py @@ -63,6 +63,17 @@ class ServiceError(ModeledError): "BatchWriteItemOutput": "BATCH_WRITE_ITEM_OUTPUT", "BillingMode": "BILLING_MODE", "BillingModeSummary": "BILLING_MODE_SUMMARY", + "BulkOperationBytes": "BULK_OPERATION_BYTES", + "BulkOperationDescription": "BULK_OPERATION_DESCRIPTION", + "BulkOperationInputFormat": "BULK_OPERATION_INPUT_FORMAT", + "BulkOperationPerformanceTier": "BULK_OPERATION_PERFORMANCE_TIER", + "BulkOperationStatus": "BULK_OPERATION_STATUS", + "BulkOperationSummary": "BULK_OPERATION_SUMMARY", + "BulkOperationTableDetail": "BULK_OPERATION_TABLE_DETAIL", + "BulkOperationUsage": "BULK_OPERATION_USAGE", + "BulkOperationVectorBytes": "BULK_OPERATION_VECTOR_BYTES", + "CancelBulkOperationInput": "CANCEL_BULK_OPERATION_INPUT", + "CancelBulkOperationOutput": "CANCEL_BULK_OPERATION_OUTPUT", "CancellationReason": "CANCELLATION_REASON", "Capacity": "CAPACITY", "ComparisonOperator": "COMPARISON_OPERATOR", @@ -107,6 +118,8 @@ class ServiceError(ModeledError): "DeleteVectorIndexAction": "DELETE_VECTOR_INDEX_ACTION", "DescribeBackupInput": "DESCRIBE_BACKUP_INPUT", "DescribeBackupOutput": "DESCRIBE_BACKUP_OUTPUT", + "DescribeBulkOperationInput": "DESCRIBE_BULK_OPERATION_INPUT", + "DescribeBulkOperationOutput": "DESCRIBE_BULK_OPERATION_OUTPUT", "DescribeContinuousBackupsInput": "DESCRIBE_CONTINUOUS_BACKUPS_INPUT", "DescribeContinuousBackupsOutput": "DESCRIBE_CONTINUOUS_BACKUPS_OUTPUT", "DescribeContributorInsightsInput": "DESCRIBE_CONTRIBUTOR_INSIGHTS_INPUT", @@ -134,6 +147,8 @@ class ServiceError(ModeledError): "DestinationStatus": "DESTINATION_STATUS", "DisableKinesisStreamingDestinationInput": "DISABLE_KINESIS_STREAMING_DESTINATION_INPUT", "DisableKinesisStreamingDestinationOutput": "DISABLE_KINESIS_STREAMING_DESTINATION_OUTPUT", + "DisassociateReplicationGroupMemberAction": "DISASSOCIATE_REPLICATION_GROUP_MEMBER_ACTION", + "DisassociationMode": "DISASSOCIATION_MODE", "DuplicateItemException": "DUPLICATE_ITEM_EXCEPTION", "EnableKinesisStreamingConfiguration": "ENABLE_KINESIS_STREAMING_CONFIGURATION", "EnableKinesisStreamingDestinationInput": "ENABLE_KINESIS_STREAMING_DESTINATION_INPUT", @@ -190,6 +205,7 @@ class ServiceError(ModeledError): "InputCompressionType": "INPUT_COMPRESSION_TYPE", "InputFormat": "INPUT_FORMAT", "InputFormatOptions": "INPUT_FORMAT_OPTIONS", + "InputS3Configuration": "INPUT_S3_CONFIGURATION", "InternalServerError": "INTERNAL_SERVER_ERROR", "InvalidEndpointException": "INVALID_ENDPOINT_EXCEPTION", "InvalidExportTimeException": "INVALID_EXPORT_TIME_EXCEPTION", @@ -204,6 +220,8 @@ class ServiceError(ModeledError): "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", "ListBackupsInput": "LIST_BACKUPS_INPUT", "ListBackupsOutput": "LIST_BACKUPS_OUTPUT", + "ListBulkOperationsInput": "LIST_BULK_OPERATIONS_INPUT", + "ListBulkOperationsOutput": "LIST_BULK_OPERATIONS_OUTPUT", "ListContributorInsightsInput": "LIST_CONTRIBUTOR_INSIGHTS_INPUT", "ListContributorInsightsOutput": "LIST_CONTRIBUTOR_INSIGHTS_OUTPUT", "ListExportsInput": "LIST_EXPORTS_INPUT", @@ -222,6 +240,8 @@ class ServiceError(ModeledError): "MultiRegionConsistency": "MULTI_REGION_CONSISTENCY", "OnDemandThroughput": "ON_DEMAND_THROUGHPUT", "OnDemandThroughputOverride": "ON_DEMAND_THROUGHPUT_OVERRIDE", + "OutputS3Configuration": "OUTPUT_S3_CONFIGURATION", + "OutputTypeEnum": "OUTPUT_TYPE_ENUM", "ParameterizedStatement": "PARAMETERIZED_STATEMENT", "PointInTimeRecoveryDescription": "POINT_IN_TIME_RECOVERY_DESCRIPTION", "PointInTimeRecoverySpecification": "POINT_IN_TIME_RECOVERY_SPECIFICATION", @@ -289,6 +309,8 @@ class ServiceError(ModeledError): "SSESpecification": "SSE_SPECIFICATION", "SSEStatus": "SSE_STATUS", "SSEType": "SSE_TYPE", + "StartBulkPutItemsInput": "START_BULK_PUT_ITEMS_INPUT", + "StartBulkPutItemsOutput": "START_BULK_PUT_ITEMS_OUTPUT", "StreamSpecification": "STREAM_SPECIFICATION", "StreamViewType": "STREAM_VIEW_TYPE", "TableAlreadyExistsException": "TABLE_ALREADY_EXISTS_EXCEPTION", @@ -387,6 +409,17 @@ class ServiceError(ModeledError): "BatchWriteItemOutput", "BillingMode", "BillingModeSummary", + "BulkOperationBytes", + "BulkOperationDescription", + "BulkOperationInputFormat", + "BulkOperationPerformanceTier", + "BulkOperationStatus", + "BulkOperationSummary", + "BulkOperationTableDetail", + "BulkOperationUsage", + "BulkOperationVectorBytes", + "CancelBulkOperationInput", + "CancelBulkOperationOutput", "CancellationReason", "Capacity", "ComparisonOperator", @@ -431,6 +464,8 @@ class ServiceError(ModeledError): "DeleteVectorIndexAction", "DescribeBackupInput", "DescribeBackupOutput", + "DescribeBulkOperationInput", + "DescribeBulkOperationOutput", "DescribeContinuousBackupsInput", "DescribeContinuousBackupsOutput", "DescribeContributorInsightsInput", @@ -458,6 +493,8 @@ class ServiceError(ModeledError): "DestinationStatus", "DisableKinesisStreamingDestinationInput", "DisableKinesisStreamingDestinationOutput", + "DisassociateReplicationGroupMemberAction", + "DisassociationMode", "DuplicateItemException", "EnableKinesisStreamingConfiguration", "EnableKinesisStreamingDestinationInput", @@ -514,6 +551,7 @@ class ServiceError(ModeledError): "InputCompressionType", "InputFormat", "InputFormatOptions", + "InputS3Configuration", "InternalServerError", "InvalidEndpointException", "InvalidExportTimeException", @@ -528,6 +566,8 @@ class ServiceError(ModeledError): "LimitExceededException", "ListBackupsInput", "ListBackupsOutput", + "ListBulkOperationsInput", + "ListBulkOperationsOutput", "ListContributorInsightsInput", "ListContributorInsightsOutput", "ListExportsInput", @@ -546,6 +586,8 @@ class ServiceError(ModeledError): "MultiRegionConsistency", "OnDemandThroughput", "OnDemandThroughputOverride", + "OutputS3Configuration", + "OutputTypeEnum", "ParameterizedStatement", "PointInTimeRecoveryDescription", "PointInTimeRecoverySpecification", @@ -613,6 +655,8 @@ class ServiceError(ModeledError): "Select", "SourceTableDetails", "SourceTableFeatureDetails", + "StartBulkPutItemsInput", + "StartBulkPutItemsOutput", "StreamSpecification", "StreamViewType", "TableAlreadyExistsException", @@ -686,6 +730,7 @@ class ServiceError(ModeledError): "BATCH_EXECUTE_STATEMENT", "BATCH_GET_ITEM", "BATCH_WRITE_ITEM", + "CANCEL_BULK_OPERATION", "CREATE_BACKUP", "CREATE_GLOBAL_TABLE", "CREATE_TABLE", @@ -694,6 +739,7 @@ class ServiceError(ModeledError): "DELETE_RESOURCE_POLICY", "DELETE_TABLE", "DESCRIBE_BACKUP", + "DESCRIBE_BULK_OPERATION", "DESCRIBE_CONTINUOUS_BACKUPS", "DESCRIBE_CONTRIBUTOR_INSIGHTS", "DESCRIBE_ENDPOINTS", @@ -715,6 +761,7 @@ class ServiceError(ModeledError): "GET_RESOURCE_POLICY", "IMPORT_TABLE", "LIST_BACKUPS", + "LIST_BULK_OPERATIONS", "LIST_CONTRIBUTOR_INSIGHTS", "LIST_EXPORTS", "LIST_GLOBAL_TABLES", @@ -728,6 +775,7 @@ class ServiceError(ModeledError): "RESTORE_TABLE_TO_POINT_IN_TIME", "SCAN", "SEARCH_VECTORS", + "START_BULK_PUT_ITEMS", "TAG_RESOURCE", "TRANSACT_GET_ITEMS", "TRANSACT_WRITE_ITEMS", @@ -766,6 +814,15 @@ def __dir__(): return sorted({*globals(), *_operation_names}) +_operation_data["CANCEL_BULK_OPERATION"] = ( + "CANCEL_BULK_OPERATION", + ( + "com.amazonaws.dynamodb#InvalidEndpointException", + "com.amazonaws.dynamodb#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + _operation_data["CREATE_BACKUP"] = ( "CREATE_BACKUP", ( @@ -850,6 +907,15 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["DESCRIBE_BULK_OPERATION"] = ( + "DESCRIBE_BULK_OPERATION", + ( + "com.amazonaws.dynamodb#InvalidEndpointException", + "com.amazonaws.dynamodb#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + _operation_data["DESCRIBE_CONTINUOUS_BACKUPS"] = ( "DESCRIBE_CONTINUOUS_BACKUPS", ( @@ -999,6 +1065,12 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["LIST_BULK_OPERATIONS"] = ( + "LIST_BULK_OPERATIONS", + ("com.amazonaws.dynamodb#InvalidEndpointException",), + ("aws.auth#sigv4",), +) + _operation_data["LIST_CONTRIBUTOR_INSIGHTS"] = ( "LIST_CONTRIBUTOR_INSIGHTS", ( @@ -1093,6 +1165,18 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["START_BULK_PUT_ITEMS"] = ( + "START_BULK_PUT_ITEMS", + ( + "com.amazonaws.dynamodb#IdempotentParameterMismatchException", + "com.amazonaws.dynamodb#InvalidEndpointException", + "com.amazonaws.dynamodb#LimitExceededException", + "com.amazonaws.dynamodb#ResourceInUseException", + "com.amazonaws.dynamodb#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + _operation_data["TAG_RESOURCE"] = ( "TAG_RESOURCE", ( diff --git a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.pyi b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.pyi index 5e7041d7..622d589f 100644 --- a/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.pyi +++ b/clients/aws-sdk-dynamodb/src/aws_sdk_dynamodb/models.pyi @@ -1053,6 +1053,238 @@ class BillingModeSummary(_SerdeShape): read/write capacity mode. """ +@dataclass(kw_only=True) +class BulkOperationBytes(_SerdeShape): + """Contains the bulk put bytes used during a bulk operation.""" + + bulk_put_bytes: int | None = ... + """The number of bulk put bytes.""" + +@dataclass(kw_only=True) +class BulkOperationDescription(_SerdeShape): + """Contains detailed information about a bulk operation.""" + + bulk_operation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the bulk operation.""" + bulk_operation_status: str | None = ... + """ + The current status of the bulk operation can be one of the following + values: + + IN_PROGRESS + + : DynamoDB is processing the input. + + COMPLETED + + : The bulk operation finished without parsing or validation errors. + Condition-check failures do not cause the operation to complete with + errors. + + COMPLETED_WITH_ERRORS + + : The bulk operation finished, but DynamoDB couldn't process at least + one input item because of a parsing or validation error. When you + enable `ERROR` output, DynamoDB writes the details to the configured + Amazon S3 output location. + + CANCELLING + + : DynamoDB accepted a cancellation request and is stopping the + operation. + + CANCELLED + + : DynamoDB stopped the operation after a cancellation request. + + FAILED + + : The bulk operation failed. DynamoDB might write some items before the + operation reaches this status. See + [FailureCode](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BulkOperationDescription.html#DDB-Type-BulkOperationDescription-FailureCode) + and + [FailureMessage](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BulkOperationDescription.html#DDB-Type-BulkOperationDescription-FailureMessage) + for details. + """ + table_details: list[BulkOperationTableDetail] | None = ... + """ + A list containing identifying information for the table targeted by the + bulk operation. + """ + client_token: str | None = ... + """The idempotency token associated with the start request.""" + input_s3_configuration: InputS3Configuration | None = ... + """The Amazon S3 input configuration associated with the bulk operation.""" + output_s3_configuration: OutputS3Configuration | None = ... + """The Amazon S3 output configuration associated with the bulk operation.""" + start_time: datetime | None = ... + """The time when DynamoDB accepted the start request.""" + end_time: datetime | None = ... + """ + The time when the operation reached a terminal status. DynamoDB omits + this value while the operation remains in progress. + """ + processed_item_count: int = ... + """ + The number of input items that DynamoDB has processed. This count + includes successful writes, parsing or validation failures, and + condition-check failures. + """ + processed_input_bytes: int | None = ... + """ + The number of bytes that DynamoDB has read from the Amazon S3 input + objects. + """ + total_input_bytes: int | None = ... + """ + The total size, in bytes, of the Amazon S3 input objects. DynamoDB omits + this value until the initial input-size calculation completes. + """ + bulk_operation_usage: list[BulkOperationUsage] | None = ... + """Usage information for the table and its indexes.""" + failed_item_count: int = ... + """ + The number of processed input items that failed because of parsing or + validation errors. This count is included in `ProcessedItemCount`. + Condition-check failures do not increase this count. + """ + failure_code: str | None = ... + """ + A code that identifies why the bulk operation failed or was cancelled. + DynamoDB returns this value only when `BulkOperationStatus` is `FAILED` + or `CANCELLED`. + """ + failure_message: str | None = ... + """ + A message that describes why the bulk operation failed or was cancelled. + DynamoDB returns this value only when `BulkOperationStatus` is `FAILED` + or `CANCELLED`. + """ + max_write_request_units: int | None = ... + """The maximum write request unit rate configured for the bulk operation.""" + performance_tier: str | None = ... + """ + The performance tier selected for the bulk operation. Valid values are + `STANDARD` and `ACCELERATED`. If the start request omitted this value, + DynamoDB uses `STANDARD`. + """ + +class BulkOperationInputFormat(UnknownEnumMixin, StrEnum): + DYNAMODB_JSON = "DYNAMODB_JSON" + ION = "ION" + +class BulkOperationPerformanceTier(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + ACCELERATED = "ACCELERATED" + +class BulkOperationStatus(UnknownEnumMixin, StrEnum): + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + COMPLETED_WITH_ERRORS = "COMPLETED_WITH_ERRORS" + CANCELLING = "CANCELLING" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class BulkOperationSummary(_SerdeShape): + """Contains summary information about a bulk operation.""" + + bulk_operation_arn: str + """The Amazon Resource Name (ARN) of the bulk operation.""" + bulk_operation_status: str + """The current status of the bulk operation.""" + start_time: datetime + """The time when DynamoDB accepted the start request.""" + end_time: datetime | None = ... + """ + The time when the operation reached a terminal status. DynamoDB omits + this value while the operation remains in progress. + """ + +@dataclass(kw_only=True) +class BulkOperationTableDetail(_SerdeShape): + """ + Contains identifying information for a table associated with a bulk + operation. + """ + + table_name: str | None = ... + """The name or ARN of the table associated with the bulk operation.""" + table_id: str | None = ... + """The unique identifier of the table associated with the bulk operation.""" + +@dataclass(kw_only=True) +class BulkOperationUsage(_SerdeShape): + """ + Contains the bytes used during a bulk operation, including a breakdown + for the table and its indexes. + """ + + table_name: str | None = ... + """The name or ARN of the table associated with the reported usage.""" + bulk_put_bytes: int | None = ... + """ + The total number of bulk put bytes used by the operation. This value + excludes bulk put vector bytes. + """ + table: BulkOperationBytes | None = ... + """The number of bulk put bytes for the table, excluding its indexes.""" + local_secondary_indexes: dict[str, BulkOperationBytes] | None = ... + """ + The bulk put bytes used on each local secondary index affected by the + operation, keyed by index name. + """ + global_secondary_indexes: dict[str, BulkOperationBytes] | None = ... + """ + The bulk put bytes used on each global secondary index affected by the + operation, keyed by index name. + """ + vector_indexes: dict[str, BulkOperationVectorBytes] | None = ... + """ + The bulk put vector bytes used on each vector index affected by the + operation, keyed by index name. + """ + +@dataclass(kw_only=True) +class BulkOperationVectorBytes(_SerdeShape): + """ + Contains the bulk put vector bytes used by a vector index during a bulk + operation. + """ + + bulk_put_vector_bytes: int | None = ... + """The number of bulk put vector bytes used on the vector index.""" + +@dataclass(kw_only=True) +class CancelBulkOperationInput(_SerdeShape): + """Dataclass for CancelBulkOperationInput structure.""" + + bulk_operation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the bulk operation to cancel.""" + +@dataclass(kw_only=True) +class CancelBulkOperationOutput(_SerdeShape): + """Dataclass for CancelBulkOperationOutput structure.""" + + bulk_operation_arn: str + """ + The Amazon Resource Name (ARN) of the bulk operation for which DynamoDB + accepted the cancellation request. + """ + bulk_operation_status: str + """ + The status returned after DynamoDB accepts the cancellation request. + This value is `CANCELLING`. Use `DescribeBulkOperation` to determine + when the operation reaches `CANCELLED`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class CancellationReason(_SerdeShape): """ @@ -2386,6 +2618,27 @@ class DescribeBackupOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class DescribeBulkOperationInput(_SerdeShape): + """Dataclass for DescribeBulkOperationInput structure.""" + + bulk_operation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the bulk operation to describe.""" + +@dataclass(kw_only=True) +class DescribeBulkOperationOutput(_SerdeShape): + """Dataclass for DescribeBulkOperationOutput structure.""" + + bulk_operation_description: BulkOperationDescription + """Contains detailed information about the bulk operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class DescribeContinuousBackupsInput(_SerdeShape): """Dataclass for DescribeContinuousBackupsInput structure.""" @@ -2774,6 +3027,46 @@ class DisableKinesisStreamingDestinationOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class DisassociateReplicationGroupMemberAction(_SerdeShape): + """ + The parameters for disassociating the local replica from a global table + using Version 2019.11.21 with multi-Region eventual consistency (MREC). + + After disassociation completes, the replica remains a standalone + regional table that keeps its data, indexes, and table settings. + + For request requirements, see + [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html). + For prerequisites, the protection update, and completion checks, see + [Disassociating a global table + replica](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables-disassociate.html) + in the *Amazon DynamoDB Developer Guide*. + """ + + region_name: str + """ + The Region of the replica to disassociate. Set this value to the Region + where you send the `UpdateTable` request. You must use credentials for + the account that owns the replica. + """ + disassociation_mode: str + """ + The mode for handling pending replication before disassociation + completes. You must specify `WAIT_FOR_REPLICATION`. For more + information, see [Disassociating a global table + replica](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables-disassociate.html) + in the *Amazon DynamoDB Developer Guide*. + """ + +class DisassociationMode(UnknownEnumMixin, StrEnum): + """ + Specifies how pending replication is handled before a replica is + disassociated. `WAIT_FOR_REPLICATION` is the only supported value. + """ + + WAIT_FOR_REPLICATION = "WAIT_FOR_REPLICATION" + @dataclass(kw_only=True) class DuplicateItemException(ServiceError, _SerdeShape): """ @@ -4421,6 +4714,41 @@ class InputFormatOptions(_SerdeShape): Delimiter and HeaderList. """ +@dataclass(kw_only=True) +class InputS3Configuration(_SerdeShape): + """ + Contains the Amazon S3 location and format settings for bulk operation + input. The `S3Bucket` and `InputFormat` fields are required. + """ + + s3_bucket_owner: str | None = ... + """ + The Amazon Web Services account ID of the input bucket owner. If you + omit this value, DynamoDB uses the Amazon Web Services account ID of the + requester. + + Note: + `S3BucketOwner` is required when the bucket is owned by another Amazon + Web Services account. + """ + s3_bucket: str + """The name of the Amazon S3 bucket that contains the input objects.""" + s3_key_prefix: str | None = ... + """ + An optional key prefix that limits the input to matching objects in the + Amazon S3 bucket. + """ + input_format: str + """ + The format of the input objects. `DYNAMODB_JSON` uses JSON Lines, with + one JSON record per line. `ION` uses a sequence of Ion structs. + """ + input_compression_type: str | None = ... + """ + The compression type of the input objects. Valid values are `GZIP`, + `ZSTD`, and `NONE`. If you don't specify a value, DynamoDB uses `NONE`. + """ + @dataclass(kw_only=True) class InternalServerError(ServiceError, _SerdeShape): """An error occurred on the server side.""" @@ -4779,6 +5107,45 @@ class ListBackupsOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class ListBulkOperationsInput(_SerdeShape): + """Dataclass for ListBulkOperationsInput structure.""" + + max_results: int | None = ... + """ + The maximum number of bulk operation summaries to return in one page. If + you don't specify a value, DynamoDB uses 10. + """ + next_token: str | None = ... + """ + An optional string that, if supplied, must be copied from the output of + a previous call to `ListBulkOperations`. When provided in this manner, + the API fetches the next page of results. + """ + +@dataclass(kw_only=True) +class ListBulkOperationsOutput(_SerdeShape): + """Dataclass for ListBulkOperationsOutput structure.""" + + bulk_operations_summary_list: list[BulkOperationSummary] | None = ... + """ + A list of bulk operation summaries for the current Amazon Web Services + account and Amazon Web Services Region. + """ + next_token: str | None = ... + """ + If this value is returned, there are additional results to be displayed. + To retrieve them, call `ListBulkOperations` again, with `NextToken` set + to this value. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class ListContributorInsightsInput(_SerdeShape): """Dataclass for ListContributorInsightsInput structure.""" @@ -5161,6 +5528,62 @@ class OnDemandThroughputOverride(_SerdeShape): max_read_request_units: int | None = ... """Maximum number of read request units for the specified replica table.""" +@dataclass(kw_only=True) +class OutputS3Configuration(_SerdeShape): + """ + Contains the Amazon S3 location, encryption settings, and output types + for a bulk operation. The `S3Bucket` and `OutputType` fields are + required. + """ + + s3_bucket_owner: str | None = ... + """ + The Amazon Web Services account ID of the output bucket owner. If you + omit this value, DynamoDB uses the Amazon Web Services account ID of the + requester. + + Note: + `S3BucketOwner` is required when the bucket is owned by another Amazon + Web Services account. + """ + s3_bucket: str | None = ... + """The name of the Amazon S3 bucket where DynamoDB writes output records.""" + s3_key_prefix: str | None = ... + """An optional key prefix under which DynamoDB writes the output records.""" + s3_sse_algorithm: str | None = ... + """ + The server-side encryption algorithm for the output objects. Valid + values are `AES256` and `KMS`. If you don't specify a value, Amazon S3 + applies the destination bucket's default encryption settings. + """ + s3_sse_kms_key_id: str | None = ... + """ + The identifier of the KMS key that encrypts the output objects. Specify + this value when `S3SseAlgorithm` is `KMS`. Don't specify it when the + algorithm is `AES256`. + """ + output_type: list[str] + """ + The following values describe the types of output that DynamoDB writes + for individual input items. Include one or both values. + + ERROR + + : Reports input records or input objects that DynamoDB couldn't + process. This includes malformed input and item validation failures, + such as a missing or incorrectly typed primary key attribute or an + item that exceeds a DynamoDB limit. + + CONDITION_CHECK_FAILURE + + : Reports the attempted item and, when present, the existing item for a + write whose condition expression evaluates to false. + """ + +class OutputTypeEnum(UnknownEnumMixin, StrEnum): + ERROR = "ERROR" + CONDITION_CHECK_FAILURE = "CONDITION_CHECK_FAILURE" + @dataclass(kw_only=True) class ParameterizedStatement(_SerdeShape): """Represents a PartiQL statement that uses parameters.""" @@ -6678,6 +7101,13 @@ class ReplicationGroupUpdate(_SerdeShape): `DeleteTableReplica` action in the destination Region, deleting the replica and all if its items in the destination Region. + - The local replica to be disassociated from a global table and retained + as a standalone regional table. + + Each `ReplicationGroupUpdate` contains exactly one action. A + `Disassociate` action must be the only replica update in the request; + including other updates causes the request to fail. + Note: When you manually remove a table or global table replica, you do not automatically remove any associated scalable targets, scaling policies, @@ -6690,6 +7120,11 @@ class ReplicationGroupUpdate(_SerdeShape): """The parameters required for updating a replica for the table.""" delete: DeleteReplicationGroupMemberAction | None = ... """The parameters required for deleting a replica for the table.""" + disassociate: DisassociateReplicationGroupMemberAction | None = ... + """ + The parameters for disassociating the local replica from the global + table and retaining it as a standalone regional table. + """ @dataclass(kw_only=True) class ReplicaUpdate(_SerdeShape): @@ -7431,10 +7866,9 @@ class SearchVectorsInput(_SerdeShape): expression can reference attributes defined in the vector index search schema, including `HASH` and `INLINE_FILTER` key elements. - Only the equality operator (`=`) is supported for `HASH` attributes. - Comparison and range operators are supported for `INLINE_FILTER` - attributes. Only top-level attributes from the search schema can be - referenced. + The `HASH` and `INLINE_FILTER` attributes support only the equality + operator (`=`). You can reference only top-level attributes from the + search schema. """ top_k: int | None = ... """The number of most similar results to return.""" @@ -7619,6 +8053,61 @@ class SSEType(UnknownEnumMixin, StrEnum): AES256 = "AES256" KMS = "KMS" +@dataclass(kw_only=True) +class StartBulkPutItemsInput(_SerdeShape): + """Dataclass for StartBulkPutItemsInput structure.""" + + client_token: str | None = ... + """ + A unique, case-sensitive identifier that ensures the bulk operation + starts no more than one time. During the 8 hours after the initial + request, repeated requests that use the same token and parameters return + the same bulk operation. If a request reuses the token with different + parameters, DynamoDB returns an `IdempotentParameterMismatchException`. + If you omit the token, an Amazon Web Services SDK automatically + generates one. + """ + input_s3_configuration: InputS3Configuration | None = ... + """ + The Amazon S3 location, data format, and compression settings for the + input objects. + """ + output_s3_configuration: OutputS3Configuration | None = ... + """ + The Amazon S3 location, encryption settings, and output types for the + bulk operation. + """ + table_name: str | None = ... + """The name or ARN of the existing DynamoDB table that receives the items.""" + max_write_request_units: int | None = ... + """ + The maximum rate, in write request units per second, at which the bulk + operation attempts to write. The value must be at least 1,024. With this + setting, you limit only the bulk operation; the table's provisioned or + on-demand capacity settings don't change. The actual write rate can be + lower. + """ + performance_tier: str | None = ... + """ + The performance tier for the bulk operation. Valid values are `STANDARD` + and `ACCELERATED`. If you don't specify a value, the operation uses + `STANDARD`. + """ + +@dataclass(kw_only=True) +class StartBulkPutItemsOutput(_SerdeShape): + """Dataclass for StartBulkPutItemsOutput structure.""" + + bulk_operation_description: BulkOperationDescription + """Contains detailed information about a bulk operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class StreamSpecification(_SerdeShape): """Represents the DynamoDB Streams configuration for a table in DynamoDB.""" @@ -8008,7 +8497,12 @@ class TableDescription(_SerdeShape): in use, if the table is replicated across Amazon Web Services Regions. """ replicas: list[ReplicaDescription] | None = ... - """Represents replicas of the table.""" + """ + Represents replicas of the table. + + After a successful disassociation, this list is absent or empty. To + confirm disassociation, also verify that `TableStatus` is `ACTIVE`. + """ global_table_witnesses: list[GlobalTableWitnessDescription] | None = ... """ The witness Region and its current status in the MRSC global table. Only @@ -8045,6 +8539,12 @@ class TableDescription(_SerdeShape): Indicates whether deletion protection is enabled (true) or disabled (false) on the table. """ + disassociation_protection_enabled: bool | None = ... + """ + Specifies whether disassociation protection is enabled (`true`) or + disabled (`false`) for the local global table replica. Protection is + enabled by default. + """ on_demand_throughput: OnDemandThroughput | None = ... """ The maximum number of read and write units for the specified on-demand @@ -9474,8 +9974,8 @@ class UpdateTableInput(_SerdeShape): """The new server-side encryption settings for the specified table.""" replica_updates: list[ReplicationGroupUpdate] | None = ... """ - A list of replica update actions (create, delete, or update) for the - table. + A list of replica update actions (create, delete, update, or + disassociate) for the table. """ table_class: str | None = ... """ @@ -9553,6 +10053,19 @@ class UpdateTableInput(_SerdeShape): replication needs to be defined to ENABLED again in order to create a Multi-Account Global Table using this table. """ + disassociation_protection_enabled: bool | None = ... + """ + Specifies whether disassociation protection is enabled (`true`) or + disabled (`false`) for the local replica of a multi-Region eventual + consistency (MREC) global table using Version 2019.11.21. + + Disassociation protection is enabled by default. If you omit this + parameter, the existing setting is unchanged. This setting is + independent of `DeletionProtectionEnabled`. + + You can't combine this change with any other change in the same + `UpdateTable` request. + """ vector_index_updates: list[VectorIndexUpdate] | None = ... """ A list of vector indexes to be added to or removed from the table. You @@ -9851,6 +10364,7 @@ BATCH_EXECUTE_STATEMENT: APIOperation[ ] BATCH_GET_ITEM: APIOperation[BatchGetItemInput, BatchGetItemOutput] BATCH_WRITE_ITEM: APIOperation[BatchWriteItemInput, BatchWriteItemOutput] +CANCEL_BULK_OPERATION: APIOperation[CancelBulkOperationInput, CancelBulkOperationOutput] CREATE_BACKUP: APIOperation[CreateBackupInput, CreateBackupOutput] CREATE_GLOBAL_TABLE: APIOperation[CreateGlobalTableInput, CreateGlobalTableOutput] CREATE_TABLE: APIOperation[CreateTableInput, CreateTableOutput] @@ -9861,6 +10375,9 @@ DELETE_RESOURCE_POLICY: APIOperation[ ] DELETE_TABLE: APIOperation[DeleteTableInput, DeleteTableOutput] DESCRIBE_BACKUP: APIOperation[DescribeBackupInput, DescribeBackupOutput] +DESCRIBE_BULK_OPERATION: APIOperation[ + DescribeBulkOperationInput, DescribeBulkOperationOutput +] DESCRIBE_CONTINUOUS_BACKUPS: APIOperation[ DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput ] @@ -9898,6 +10415,7 @@ GET_ITEM: APIOperation[GetItemInput, GetItemOutput] GET_RESOURCE_POLICY: APIOperation[GetResourcePolicyInput, GetResourcePolicyOutput] IMPORT_TABLE: APIOperation[ImportTableInput, ImportTableOutput] LIST_BACKUPS: APIOperation[ListBackupsInput, ListBackupsOutput] +LIST_BULK_OPERATIONS: APIOperation[ListBulkOperationsInput, ListBulkOperationsOutput] LIST_CONTRIBUTOR_INSIGHTS: APIOperation[ ListContributorInsightsInput, ListContributorInsightsOutput ] @@ -9917,6 +10435,7 @@ RESTORE_TABLE_TO_POINT_IN_TIME: APIOperation[ ] SCAN: APIOperation[ScanInput, ScanOutput] SEARCH_VECTORS: APIOperation[SearchVectorsInput, SearchVectorsOutput] +START_BULK_PUT_ITEMS: APIOperation[StartBulkPutItemsInput, StartBulkPutItemsOutput] TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] TRANSACT_GET_ITEMS: APIOperation[TransactGetItemsInput, TransactGetItemsOutput] TRANSACT_WRITE_ITEMS: APIOperation[TransactWriteItemsInput, TransactWriteItemsOutput] diff --git a/clients/aws-sdk-dynamodb/tests/_typecheck.py b/clients/aws-sdk-dynamodb/tests/_typecheck.py index fd133af4..0fef49a0 100644 --- a/clients/aws-sdk-dynamodb/tests/_typecheck.py +++ b/clients/aws-sdk-dynamodb/tests/_typecheck.py @@ -25,6 +25,14 @@ BatchWriteItemInput, BatchWriteItemOutput, BillingModeSummary, + BulkOperationBytes, + BulkOperationDescription, + BulkOperationSummary, + BulkOperationTableDetail, + BulkOperationUsage, + BulkOperationVectorBytes, + CancelBulkOperationInput, + CancelBulkOperationOutput, CancellationReason, Capacity, Condition, @@ -61,6 +69,8 @@ DeleteVectorIndexAction, DescribeBackupInput, DescribeBackupOutput, + DescribeBulkOperationInput, + DescribeBulkOperationOutput, DescribeContinuousBackupsInput, DescribeContinuousBackupsOutput, DescribeContributorInsightsInput, @@ -87,6 +97,7 @@ DescribeTimeToLiveOutput, DisableKinesisStreamingDestinationInput, DisableKinesisStreamingDestinationOutput, + DisassociateReplicationGroupMemberAction, EnableKinesisStreamingConfiguration, EnableKinesisStreamingDestinationInput, EnableKinesisStreamingDestinationOutput, @@ -124,6 +135,7 @@ ImportTableOutput, IncrementalExportSpecification, InputFormatOptions, + InputS3Configuration, ItemCollectionMetrics, ItemResponse, KeySchemaElement, @@ -131,6 +143,8 @@ KinesisDataStreamDestination, ListBackupsInput, ListBackupsOutput, + ListBulkOperationsInput, + ListBulkOperationsOutput, ListContributorInsightsInput, ListContributorInsightsOutput, ListExportsInput, @@ -148,6 +162,7 @@ LocalSecondaryIndexInfo, OnDemandThroughput, OnDemandThroughputOverride, + OutputS3Configuration, ParameterizedStatement, PointInTimeRecoveryDescription, PointInTimeRecoverySpecification, @@ -193,6 +208,8 @@ SearchVectorsOutput, SourceTableDetails, SourceTableFeatureDetails, + StartBulkPutItemsInput, + StartBulkPutItemsOutput, StreamSpecification, TableAutoScalingDescription, TableClassSummary, @@ -279,6 +296,14 @@ BatchWriteItemInput() BatchWriteItemOutput() BillingModeSummary() +BulkOperationBytes() +BulkOperationDescription() +BulkOperationSummary(bulk_operation_arn=_, bulk_operation_status=_, start_time=_) +BulkOperationTableDetail() +BulkOperationUsage() +BulkOperationVectorBytes() +CancelBulkOperationInput() +CancelBulkOperationOutput(bulk_operation_arn=_, bulk_operation_status=_) CancellationReason() Capacity() Condition(comparison_operator=_) @@ -317,6 +342,8 @@ DeleteVectorIndexAction(index_name=_) DescribeBackupInput() DescribeBackupOutput() +DescribeBulkOperationInput() +DescribeBulkOperationOutput(bulk_operation_description=_) DescribeContinuousBackupsInput() DescribeContinuousBackupsOutput() DescribeContributorInsightsInput() @@ -343,6 +370,7 @@ DescribeTimeToLiveOutput() DisableKinesisStreamingDestinationInput() DisableKinesisStreamingDestinationOutput() +DisassociateReplicationGroupMemberAction(region_name=_, disassociation_mode=_) EnableKinesisStreamingConfiguration() EnableKinesisStreamingDestinationInput() EnableKinesisStreamingDestinationOutput() @@ -380,6 +408,7 @@ ImportTableOutput(import_table_description=_) IncrementalExportSpecification() InputFormatOptions() +InputS3Configuration(s3_bucket=_, input_format=_) ItemCollectionMetrics() ItemResponse() KeysAndAttributes(keys=_) @@ -387,6 +416,8 @@ KinesisDataStreamDestination() ListBackupsInput() ListBackupsOutput() +ListBulkOperationsInput() +ListBulkOperationsOutput() ListContributorInsightsInput() ListContributorInsightsOutput() ListExportsInput() @@ -404,6 +435,7 @@ LocalSecondaryIndexInfo() OnDemandThroughput() OnDemandThroughputOverride() +OutputS3Configuration(output_type=_) ParameterizedStatement(statement=_) PointInTimeRecoveryDescription() PointInTimeRecoverySpecification(point_in_time_recovery_enabled=_) @@ -455,6 +487,8 @@ SourceTableFeatureDetails() SSEDescription() SSESpecification() +StartBulkPutItemsInput() +StartBulkPutItemsOutput(bulk_operation_description=_) StreamSpecification(stream_enabled=_) TableAutoScalingDescription() TableClassSummary() diff --git a/clients/aws-sdk-dynamodb/tests/test_endpoints.py b/clients/aws-sdk-dynamodb/tests/test_endpoints.py index e50779ec..25cab591 100644 --- a/clients/aws-sdk-dynamodb/tests/test_endpoints.py +++ b/clients/aws-sdk-dynamodb/tests/test_endpoints.py @@ -366,9565 +366,5384 @@ async def _client( param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, "Endpoint": "https://example.com", }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", - "Endpoint": "https://example.com", - }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "Endpoint": "https://example.com", }, { "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, "Endpoint": "https://example.com", }, {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, "Endpoint": "https://example.com", }, {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, "Endpoint": "https://example.com", }, {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, "Endpoint": "https://example.com", }, {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://dynamodb.us-east-1.api.aws", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, + id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" + } + }, + id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Endpoint": "https://dynamodb.eu-west-1.api.aws", + "Region": "eu-west-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Endpoint": "https://dynamodb.us-west-2.api.aws", + "Region": "us-west-2", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, AccountIdEndpointMode=preferred}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://dynamodb.us-east-1.api.aws/", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, AccountIdEndpointMode=preferred}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, + }, + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + ), + param( + { "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + ), + param( + {"UseFIPS": False, "UseDualStack": False}, + {"error": "Invalid Configuration: Missing Region"}, + id="{UseFIPS=false, UseDualStack=false}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "ResourceArn": "arn:aws:dynamodb:us-east-1:not_an_account:table/table_name", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:not_an_account:table/table_name}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "AccountId": "111111111111", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "AccountId": "", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [], + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, + "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com", - }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "UseDualStack": True, + }, + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + ), + param( + { "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com", - }, - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "AccountId": "111111111111", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "ResourceArnList": [], "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, + "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", - }, - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "UseDualStack": False, }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", + "UseDualStack": True, + }, + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + ), + param( + { "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, }, + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + ), + param( { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, }, + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + ), + param( + { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, + }, + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + id="{Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + }, + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "ResourceArnList": [], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=local}", + id="{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", - }, + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + ), + param( + { + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + }, + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "us-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.us-new-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local}", + id="{Region=us-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "endpoint": { + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": False, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", + ), + param( + { "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "disabled", - "Region": "local", - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=local}", + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": False, + "UseDualStack": False, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "required", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "local", }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": False, + "UseDualStack": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", + "endpoint": { + "url": "https://111111111111.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", - }, - { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", - ), - param( - { "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://222222222222.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://333333333333.ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "AccountId": "111111111111", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", - }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", - ), - param( - { "UseFIPS": True, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local", }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": True, + "UseDualStack": True, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], + "Region": "cn-north-1", "AccountIdEndpointMode": "required", - "Region": "local", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "cn-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "local", - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=local}", + {"endpoint": {"url": "https://dynamodb.cn-new-1.amazonaws.com.cn"}}, + id="{Region=cn-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "endpoint": { + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, }, { "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws", + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, { "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "url": "https://111111111111.ddb.us-gov-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "url": "https://222222222222.ddb.us-gov-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "url": "https://333333333333.ddb.us-gov-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, }, + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "UseFIPS": True, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, }, - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": True, + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseDualStack": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseDualStack": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, - "UseDualStack": True, + "UseDualStack": False, + }, + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseDualStack": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + ), + param( { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, { "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", }, { "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-gov-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", }, { "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws", + "url": "https://222222222222.ddb.us-gov-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, }, { "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "url": "https://333333333333.ddb.us-gov-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, }, { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=us-east-1}", + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "us-gov-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", }, - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-gov-new-1.amazonaws.com"}}, + id="{Region=us-gov-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": True, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", }, + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + ), + param( { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": False, }, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseDualStack": True, }, + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", + ), + param( { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - }, - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", }, + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", + "UseDualStack": True, }, + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + ), + param( { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": True, + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, "UseDualStack": True, + }, + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + ), + param( + { "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, }, + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", }, + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", }, + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + ), + param( { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=cn-north-1}", - ), - param( - { - "UseFIPS": False, + "UseFIPS": True, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, }, { "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", }, { "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { + "Region": "us-iso-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb.us-iso-new-1.c2s.ic.gov"}}, + id="{Region=us-iso-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": True, + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseDualStack": True, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + "Endpoint": "https://example.com", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "disabled", + "Endpoint": "https://dynamodb.us-east-1.api.aws", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "disabled", + "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, + id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" + } + }, + id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "Endpoint": "https://dynamodb.eu-west-1.api.aws", + "Region": "eu-west-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "Endpoint": "https://dynamodb.us-west-2.api.aws", + "Region": "us-west-2", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "Endpoint": "https://dynamodb.us-east-1.api.aws/", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, } }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { + "Region": "local", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, { - "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { - "UseFIPS": False, + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"UseFIPS": False, "UseDualStack": False, "IsSearchOperation": True}, + {"error": "Invalid Configuration: Missing Region"}, + id="{UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "ResourceArn": "arn:aws:dynamodb:us-east-1:not_an_account:table/table_name", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:not_an_account:table/table_name, IsSearchOperation=true}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://111111111111.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - }, - {"endpoint": {"url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { "UseFIPS": False, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://222222222222.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, + "AccountId": "111111111111", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - ), - param( { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "Region": "us-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-new-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{Region=us-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": ["arn:aws:s3:us-east-1:333333333333:stream/testStream"], + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - ), - param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "endpoint": { + "url": "https://222222222222.search-ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": False, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": False, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb-fips.us-gov-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "endpoint": { + "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": True, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - ), - param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "endpoint": { + "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "IsSearchOperation": True, }, - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "AccountId": "111111111111", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, - id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", - "Region": "us-gov-east-1", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, - id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( - {"Endpoint": "https://dynamodb.us-east-1.api.aws", "Region": "us-east-1"}, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1}", - ), - param( { - "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", - "Region": "us-east-1", + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, - id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "Region": "us-east-1", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, { "endpoint": { - "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, } }, - id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( - {"Endpoint": "https://dynamodb.eu-west-1.api.aws", "Region": "eu-west-1"}, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, }, - id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1}", - ), - param( - {"Endpoint": "https://dynamodb.us-west-2.api.aws", "Region": "us-west-2"}, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2}", + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( - {"Endpoint": "https://dynamodb.us-east-1.api.aws/", "Region": "us-east-1"}, { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": True, + "IsSearchOperation": True, + }, + { + "endpoint": { + "url": "https://222222222222.search-ddb.cn-north-1.api.amazonwebservices.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + ), + param( + { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": True, + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "Region": "cn-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.cn-new-1.amazonaws.com.cn"}}, + id="{Region=cn-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": True, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": True, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": False, "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, + "Region": "us-gov-new-1", + "AccountIdEndpointMode": "preferred", "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseFIPS": False, + "UseDualStack": False, "IsSearchOperation": True, }, + {"endpoint": {"url": "https://search-dynamodb.us-gov-new-1.amazonaws.com"}}, + id="{Region=us-gov-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + ), + param( { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": False, + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, "UseDualStack": False, + "IsSearchOperation": True, + }, + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + ), + param( + { "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": False, + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": True, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", + "UseDualStack": True, "IsSearchOperation": True, }, - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": True, "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": True, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": True, + "UseDualStack": True, "IsSearchOperation": True, }, { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "local", "IsSearchOperation": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": False, + "UseDualStack": False, "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": False, "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": True, }, { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, - "UseDualStack": False, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, + "UseDualStack": False, "IsSearchOperation": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": True, }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "UseFIPS": False, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": True, "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": True, }, { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { + "Region": "us-iso-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - {"error": "Invalid Configuration: FIPS and local endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb-fips.us-gov-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": True, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": True, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "UseFIPS": False, - "UseDualStack": False, - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", - "Region": "cn-north-1", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", - "Region": "us-gov-east-1", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.us-east-1.api.aws", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, - id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "endpoint": { - "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" - } - }, - id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.eu-west-1.api.aws", - "Region": "eu-west-1", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.us-west-2.api.aws", - "Region": "us-west-2", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, IsSearchOperation=true}", - ), - param( - { - "Endpoint": "https://dynamodb.us-east-1.api.aws/", - "Region": "us-east-1", - "IsSearchOperation": True, - }, - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, IsSearchOperation=true}", - ), -] - - -@mark.parametrize(("params", "expect"), RULES_CASES) -async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: - check_rules_case( - await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS - ) - - -CLIENT_CASES = [ - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "endpoint": { - "url": "https://222222222222.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "UseDualStack": False, + "IsSearchOperation": True, }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-new-1.c2s.ic.gov"}}, + id="{Region=us-iso-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) + + +CLIENT_CASES = [ param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", ) - } - ), + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", ) - } - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + ), + "account_id_endpoint_mode": "preferred", }, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": False, + "use_fips_endpoint": True, "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } + ), + "account_id_endpoint_mode": "preferred", }, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", ) - } - ), - { - "endpoint": { - "url": "https://333333333333.ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } + ), + "account_id_endpoint_mode": "disabled", }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -9932,19 +5751,20 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( @@ -9953,112 +5773,98 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "account_id_endpoint_mode": "disabled", }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1}", - ), - param( - { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), + AsyncDynamoDBClient.list_tables, + ListTablesInput(), { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", ) - } - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + ), + "account_id_endpoint_mode": "required", }, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", ), param( { + "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": True, @@ -10069,17 +5875,17 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", ), param( { - "region": "us-east-1", - "use_fips_endpoint": True, + "region": "local", + "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( @@ -10088,18 +5894,31 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-east-1", + "region": "local", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, + "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -10111,12 +5930,25 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-east-1", + "region": "local", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -10126,12 +5958,25 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { @@ -10145,18 +5990,17 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } - ), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { @@ -10170,103 +6014,66 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( { - "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name" ), {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream" ), {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" - ), - {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.batch_get_item, BatchGetItemInput( @@ -10276,33 +6083,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - ), - param( { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", - }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, } - ), - {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.batch_get_item, BatchGetItemInput( @@ -10312,32 +6113,33 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.batch_get_item, - BatchGetItemInput( - request_items={ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( - keys=[{"pk": AttributeValueS(value="value")}] - ) - } + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream" ), {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -10349,21 +6151,38 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + ), + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": True, "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.batch_get_item, @@ -10374,74 +6193,51 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - ), - param( - { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - ), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "preferred", }, @@ -10453,14 +6249,14 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", ), param( { - "region": "us-iso-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -10472,21 +6268,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "region": "us-iso-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + ), + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.batch_get_item, @@ -10497,12 +6300,31 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", ), param( { - "region": "us-iso-east-1", + "region": "us-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -10512,61 +6334,61 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-iso-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-iso-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-iso-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream" ), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-iso-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.batch_get_item, BatchGetItemInput( @@ -10576,31 +6398,12 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - ), - param( - { - "region": "us-gov-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", - }, - AsyncDynamoDBClient.list_tables, - ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-gov-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -10610,7 +6413,7 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.batch_get_item, BatchGetItemInput( @@ -10620,76 +6423,113 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "us-gov-east-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream" + ), + {"endpoint": {"url": "https://dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.list_tables, ListTablesInput(), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "region": "us-gov-east-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "region": "us-gov-east-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.describe_table, - DescribeTableInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", ), param( { - "region": "us-gov-east-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.describe_table, DescribeTableInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream" + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { - "region": "us-gov-east-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.batch_get_item, BatchGetItemInput( @@ -10699,12 +6539,11 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ) } ), - {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": True, @@ -10715,57 +6554,50 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, + "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -10773,27 +6605,20 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), + AsyncDynamoDBClient.list_tables, + ListTablesInput(), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, @@ -10801,242 +6626,204 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="111111111111", + account_id="", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": False, @@ -11047,273 +6834,230 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": True, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": False, + "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", "region": "us-east-1", "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "endpoint": { + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "cn-north-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" ), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, + "region": "cn-north-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -11323,84 +7067,61 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ), "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "endpoint": { + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, + "region": "cn-north-1", + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), + "use_dualstack_endpoint": False, "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -11410,210 +7131,231 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "endpoint": { + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-gov-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-gov-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } + ), + { + "endpoint": { + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + "region": "us-gov-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", - "use_fips_endpoint": True, + "region": "us-gov-east-1", + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.us-gov-east-1.amazonaws.com"}}, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-gov-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), + AsyncDynamoDBClient.list_tables, + ListTablesInput(), { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-iso-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "endpoint_uri": "https://example.com", - "region": "us-east-1", + "region": "us-iso-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), - {"endpoint": {"url": "https://example.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "local", + "region": "us-iso-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -11623,86 +7365,120 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" ), + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + ), + param( { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } + ), + {"endpoint": {"url": "https://dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "local", + "region": "us-iso-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="test-table", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, + AsyncDynamoDBClient.list_tables, + ListTablesInput(), + { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" + }, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", + }, + AsyncDynamoDBClient.describe_table, + DescribeTableInput( + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" + ), + { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" + }, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + ), + param( + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", + }, + AsyncDynamoDBClient.batch_get_item, + BatchGetItemInput( + request_items={ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": KeysAndAttributes( + keys=[{"pk": AttributeValueS(value="value")}] + ) + } ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11711,32 +7487,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11746,31 +7517,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11779,27 +7547,22 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -11813,25 +7576,13 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -11854,32 +7605,20 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), "account_id_endpoint_mode": "disabled", @@ -11896,31 +7635,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11929,32 +7665,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11963,32 +7694,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -11996,29 +7722,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> AttributeValueN(value="3.0"), ], top_k=10, - ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + ), + {"endpoint": {"url": "https://example.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", + "endpoint_uri": "https://example.com", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12032,25 +7753,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( @@ -12072,32 +7783,20 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, + "endpoint_uri": "https://example.com", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), "account_id_endpoint_mode": "required", @@ -12113,32 +7812,18 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "endpoint_uri": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "region": "cn-north-1", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12148,31 +7833,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "endpoint_uri": "https://dynamodb.us-gov-east-1.api.aws", + "region": "us-gov-east-1", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12182,31 +7855,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "endpoint_uri": "https://dynamodb.us-east-1.api.aws", + "region": "us-east-1", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12216,27 +7877,35 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "local", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "endpoint_uri": "https://111111111111.ddb.us-east-1.api.aws", + "region": "us-east-1", + "account_id_endpoint_mode": "preferred", + }, + AsyncDynamoDBClient.search_vectors, + SearchVectorsInput( + table_name="test-table", + index_name="test-index", + search_vector=[ + AttributeValueN(value="1.0"), + AttributeValueN(value="2.0"), + AttributeValueN(value="3.0"), + ], + top_k=10, + ), + {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, + id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", + ), + param( + { + "endpoint_uri": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", + "region": "us-east-1", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12251,32 +7920,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ), { "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1", - } - ] - }, + "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" } }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), + "endpoint_uri": "https://dynamodb.eu-west-1.api.aws", + "region": "eu-west-1", "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -12290,21 +7942,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), + "endpoint_uri": "https://dynamodb.us-west-2.api.aws", + "region": "us-west-2", "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -12318,21 +7964,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { + "endpoint_uri": "https://dynamodb.us-east-1.api.aws/", "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -12347,16 +7987,13 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", ), param( { - "region": "us-east-1", + "region": "local", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( @@ -12381,25 +8018,33 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ), { "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-east-1", + "region": "local", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12412,19 +8057,39 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "preferred", + "region": "local", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12433,19 +8098,32 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": False, "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="arn:aws:dynamodb:us-east-1:not_an_account:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12454,19 +8132,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:not_an_account:table/table_name, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, + "use_dualstack_endpoint": False, "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12475,24 +8153,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12503,22 +8183,29 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ), { "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12527,8 +8214,8 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { @@ -12539,7 +8226,7 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12548,8 +8235,13 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { @@ -12560,7 +8252,7 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12570,25 +8262,18 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12597,28 +8282,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12627,10 +8303,8 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { @@ -12644,7 +8318,7 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12663,25 +8337,18 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12692,25 +8359,25 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ), { "endpoint": { - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", + "url": "https://222222222222.search-ddb.us-east-1.api.aws", "properties": {"metricValues": ["O"]}, } }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": False, + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12723,38 +8390,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"error": "Credentials-sourced account ID parameter is invalid"}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - ), - param( - { - "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", - }, - AsyncDynamoDBClient.search_vectors, - SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - index_name="test-index", - search_vector=[ - AttributeValueN(value="1.0"), - AttributeValueN(value="2.0"), - AttributeValueN(value="3.0"), - ], - top_k=10, - ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12767,21 +8411,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": False, + "use_fips_endpoint": True, "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "required", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12790,20 +8439,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.api.aws", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12816,24 +8460,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", - "properties": {"metricValues": ["O"]}, - } - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12842,21 +8481,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12865,17 +8509,22 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="", + ) + ), + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -12888,28 +8537,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12918,28 +8558,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12948,21 +8579,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12971,21 +8600,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -12994,21 +8621,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13017,21 +8649,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "required", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13040,16 +8670,14 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": True, - "use_dualstack_endpoint": True, + "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", @@ -13070,26 +8698,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13099,12 +8720,12 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": False, + "use_fips_endpoint": True, "use_dualstack_endpoint": True, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( @@ -13126,22 +8747,36 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "disabled", + }, + AsyncDynamoDBClient.search_vectors, + SearchVectorsInput( + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + index_name="test-index", + search_vector=[ + AttributeValueN(value="1.0"), + AttributeValueN(value="2.0"), + AttributeValueN(value="3.0"), + ], + top_k=10, + ), + {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13154,8 +8789,10 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { @@ -13166,10 +8803,10 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13182,19 +8819,31 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13203,15 +8852,15 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.api.aws"}}, - id="{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + {"error": "Credentials-sourced account ID parameter is invalid"}, + id="{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", - "use_fips_endpoint": True, + "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13224,19 +8873,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb-fips.us-east-1.amazonaws.com"}}, - id="{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": True, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="arn:aws:dynamodb:af-south-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13245,19 +8899,21 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.api.aws"}}, - id="{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="arn:aws:s3:us-east-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13266,19 +8922,21 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="arn:aws:s3:af-south-1:222222222222:stream/testStream", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13287,19 +8945,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13308,19 +8975,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { "region": "us-east-1", "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13329,13 +9001,18 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( @@ -13344,7 +9021,7 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13357,26 +9034,21 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, + "region": "us-east-1", + "use_fips_endpoint": True, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13385,19 +9057,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13406,19 +9087,21 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", - "use_fips_endpoint": False, - "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13427,19 +9110,28 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + id="{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", ), param( { - "region": "cn-north-1", + "region": "us-new-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13448,14 +9140,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-new-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{Region=us-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -13469,26 +9173,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="111111111111", - ) - ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13497,22 +9199,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( AWSCredentialsIdentity( access_key_id="test-access-key-id", secret_access_key="test-secret-access-key", - account_id="", + account_id="111111111111", ) ), - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13525,19 +9232,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13546,19 +9253,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn"}}, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13567,19 +9281,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-north-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13588,14 +9307,26 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "region": "us-iso-east-1", + "region": "cn-new-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, @@ -13609,8 +9340,8 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.cn-new-1.amazonaws.com.cn"}}, + id="{Region=cn-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { @@ -13637,26 +9368,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( - AWSCredentialsIdentity( - access_key_id="test-access-key-id", - secret_access_key="test-secret-access-key", - account_id="", - ) - ), "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13665,19 +9394,31 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13687,18 +9428,18 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13708,18 +9449,25 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="arn:aws:s3:us-west-2:222222222222:stream/testStream", + table_name="test-table", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13728,19 +9476,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { "region": "us-gov-east-1", "use_fips_endpoint": False, "use_dualstack_endpoint": False, - "account_id_endpoint_mode": "preferred", + "account_id_endpoint_mode": "required", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13749,13 +9502,27 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://search-dynamodb.us-gov-east-1.amazonaws.com"}}, - id="{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + { + "endpoint": { + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "endpoint_uri": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", - "region": "cn-north-1", + "region": "us-gov-new-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13768,15 +9535,22 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-gov-new-1.amazonaws.com"}}, + id="{Region=us-gov-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "endpoint_uri": "https://dynamodb.us-gov-east-1.api.aws", - "region": "us-gov-east-1", + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13789,16 +9563,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( - {"endpoint_uri": "https://dynamodb.us-east-1.api.aws", "region": "us-east-1"}, + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "preferred", + }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13807,15 +9584,22 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "endpoint_uri": "https://111111111111.ddb.us-east-1.api.aws", - "region": "us-east-1", + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( @@ -13828,17 +9612,19 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - {"endpoint": {"url": "https://111111111111.ddb.us-east-1.api.aws"}}, - id="{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( { - "endpoint_uri": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "region": "us-east-1", + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "disabled", }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13847,15 +9633,23 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "endpoint": { - "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" - } - }, - id="{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov"}}, + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( - {"endpoint_uri": "https://dynamodb.eu-west-1.api.aws", "region": "eu-west-1"}, + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "required", + }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( table_name="test-table", @@ -13868,15 +9662,20 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, IsSearchOperation=true}", + id="{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( - {"endpoint_uri": "https://dynamodb.us-west-2.api.aws", "region": "us-west-2"}, + { + "region": "us-iso-east-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "account_id_endpoint_mode": "required", + }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( - table_name="test-table", + table_name="arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", index_name="test-index", search_vector=[ AttributeValueN(value="1.0"), @@ -13886,12 +9685,24 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> top_k=10, ), { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - id="{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, IsSearchOperation=true}", + id="{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), param( - {"endpoint_uri": "https://dynamodb.us-east-1.api.aws/", "region": "us-east-1"}, + { + "region": "us-iso-new-1", + "use_fips_endpoint": False, + "use_dualstack_endpoint": False, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="111111111111", + ) + ), + "account_id_endpoint_mode": "preferred", + }, AsyncDynamoDBClient.search_vectors, SearchVectorsInput( table_name="test-table", @@ -13903,10 +9714,8 @@ async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> ], top_k=10, ), - { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - id="{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, IsSearchOperation=true}", + {"endpoint": {"url": "https://search-dynamodb.us-iso-new-1.c2s.ic.gov"}}, + id="{Region=us-iso-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", ), ] diff --git a/clients/aws-sdk-ec2/README.md b/clients/aws-sdk-ec2/README.md new file mode 100644 index 00000000..41db48b8 --- /dev/null +++ b/clients/aws-sdk-ec2/README.md @@ -0,0 +1,46 @@ + + +## Amazon Elastic Compute Cloud Client + +aws_sdk_ec2 client + +### Documentation + +This is the *Amazon EC2 API Reference*. It provides descriptions, API +request parameters, and the XML response for each of the Amazon EC2 +Query API actions. Note that the Amazon EC2 API includes actions for +Amazon EC2 plus additional services, such as Amazon EBS and Amazon VPC. + +**Learn more** + +- To learn about using the Query API, see [Using the API for Amazon + EC2](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-low-level-api.html). + +- To learn about the permissions required to call an Amazon EC2 API + action, see [Actions, resources, and condition keys for Amazon + EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). + +- To get the list of API actions by service and resource, see [Actions + by + service](https://docs.aws.amazon.com/ec2/latest/devguide/OperationList-query.html). + +- To get the alphabetical list of API actions, see . + +- To get descriptions of the API error codes, see [Error codes for the + Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/errors-overview.html). + +Alternatively, use one of the following methods to access the Amazon EC2 +API, instead of using the Query API directly: + +- [Amazon Web Services CLI Command Reference - ec2 + commands](https://docs.aws.amazon.com/cli/latest/reference/ec2/) + +- [CloudFormation - Amazon EC2 resource type + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_EC2.html) + +- [Amazon Web Services Tools for PowerShell Cmdlet Reference - Amazon + EC2 + cmdlets](https://docs.aws.amazon.com/powershell/v5/reference/items/EC2_cmdlets.html) + +- [Amazon Web Services SDKs](https://builder.aws.com/build/tools) diff --git a/clients/aws-sdk-ec2/pyproject.toml b/clients/aws-sdk-ec2/pyproject.toml new file mode 100644 index 00000000..366e6c5c --- /dev/null +++ b/clients/aws-sdk-ec2/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_ec2" +version = "0.12.0" +description = "aws_sdk_ec2 client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_ec2"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/__init__.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/__init__.py new file mode 100644 index 00000000..eb89d3ea --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import EC2Client + from .config import EC2Config + from .aio.client import AsyncEC2Client + from .aio.config import AsyncEC2Config + +__all__ = ["EC2Client", "EC2Config", "AsyncEC2Client", "AsyncEC2Config"] + +_EXPORTS = { + "EC2Client": ".client", + "EC2Config": ".config", + "AsyncEC2Client": ".aio.client", + "AsyncEC2Config": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/__init__.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/endpoints.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/endpoints.py new file mode 100644 index 00000000..a7ea47a0 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/endpoints.py @@ -0,0 +1,63 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.ec2#AmazonEC2.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 7: stringEquals(PartitionResult#name, "aws-us-gov") + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://ec2.{Region}.amazonaws.com", None, ()), # 6 + (6, "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 7 + (5, "FIPS is enabled but this partition does not support FIPS"), # 8 + (6, "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 + (5, "DualStack is enabled but this partition does not support DualStack"), # 10 + (6, "https://ec2.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 11 + (5, "Invalid Configuration: Missing Region"), # 12 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 13, 3, + 1, 4, 100_000_012, + 2, 5, 100_000_012, + 3, 8, 6, + 4, 7, 100_000_011, + 5, 100_000_009, 100_000_010, + 4, 11, 9, + 6, 10, 100_000_008, + 7, 100_000_006, 100_000_007, + 5, 12, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 14, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/schemas.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/schemas.py new file mode 100644 index 00000000..c35c6bb5 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/_private/schemas.py @@ -0,0 +1,75787 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.ec2" +_I = "Integer" +_AC = "AcceleratorCount" +_M = "Min" +_aQN = "aws.protocols#ec2QueryName" +_sN = "smithy.api#xmlName" +_m = "min" +_Ma = "Max" +_ma = "max" +_ACR = "AcceleratorCountRequest" +_AM = "AcceleratorManufacturer" +_AWS = "AMAZON_WEB_SERVICES" +_sV = "smithy.api#enumValue" +_aws = "amazon-web-services" +_AMD = "AMD" +_a = "amd" +_NVIDIA = "NVIDIA" +_n = "nvidia" +_XILINX = "XILINX" +_x = "xilinx" +_HABANA = "HABANA" +_h = "habana" +_AMS = "AcceleratorManufacturerSet" +_me = "member" +_i = "item" +_AN = "AcceleratorName" +_A = "A100" +_a_ = "a100" +_INFERENTIA = "INFERENTIA" +_in = "inferentia" +_K = "K520" +_k = "k520" +_K_ = "K80" +_k_ = "k80" +_M_ = "M60" +_m_ = "m60" +_RPV = "RADEON_PRO_V520" +_rpv = "radeon-pro-v520" +_T = "T4" +_t = "t4" +_VUP = "VU9P" +_v = "vu9p" +_V = "V100" +_v_ = "v100" +_AG = "A10G" +_ag = "a10g" +_H = "H100" +_h_ = "h100" +_TG = "T4G" +_tg = "t4g" +_LS = "L40S" +_l = "l40s" +_L = "L4" +_l_ = "l4" +_GH = "GAUDI_HL_205" +_gh = "gaudi-hl-205" +_INFERENTIA_ = "INFERENTIA2" +_inf = "inferentia2" +_TRAINIUM = "TRAINIUM" +_tr = "trainium" +_TRAINIUM_ = "TRAINIUM2" +_tra = "trainium2" +_U = "U30" +_u = "u30" +_ANS = "AcceleratorNameSet" +_ATMMB = "AcceleratorTotalMemoryMiB" +_ATMMBR = "AcceleratorTotalMemoryMiBRequest" +_AT = "AcceleratorType" +_GPU = "GPU" +_g = "gpu" +_FPGA = "FPGA" +_f = "fpga" +_INFERENCE = "INFERENCE" +_infe = "inference" +_MEDIA = "MEDIA" +_med = "media" +_ATS = "AcceleratorTypeSet" +_S = "String" +_B = "Boolean" +_RT = "ResourceType" +_cr = "capacity_reservation" +_cr_ = "capacity-reservation" +_cve = "client_vpn_endpoint" +_cve_ = "client-vpn-endpoint" +_cg = "customer_gateway" +_cg_ = "customer-gateway" +_cg__ = "carrier_gateway" +_cg___ = "carrier-gateway" +_cp = "coip_pool" +_cp_ = "coip-pool" +_dpr = "declarative_policies_report" +_dpr_ = "declarative-policies-report" +_dh = "dedicated_host" +_dh_ = "dedicated-host" +_do = "dhcp_options" +_do_ = "dhcp-options" +_eoig = "egress_only_internet_gateway" +_eoig_ = "egress-only-internet-gateway" +_ei = "elastic_ip" +_ei_ = "elastic-ip" +_eg = "elastic_gpu" +_eg_ = "elastic-gpu" +_eit = "export_image_task" +_eit_ = "export-image-task" +_eit__ = "export_instance_task" +_eit___ = "export-instance-task" +_fl = "fleet" +_fi = "fpga_image" +_fi_ = "fpga-image" +_hr = "host_reservation" +_hr_ = "host-reservation" +_im = "image" +_iur = "image_usage_report" +_iur_ = "image-usage-report" +_iit = "import_image_task" +_iit_ = "import-image-task" +_ist = "import_snapshot_task" +_ist_ = "import-snapshot-task" +_ins = "instance" +_iew = "instance_event_window" +_iew_ = "instance-event-window" +_ig = "internet_gateway" +_ig_ = "internet-gateway" +_ip = "ipam" +_ip_ = "ipam_pool" +_ip__ = "ipam-pool" +_is = "ipam_scope" +_is_ = "ipam-scope" +_ie = "ipv4pool_ec2" +_ie_ = "ipv4pool-ec2" +_ie__ = "ipv6pool_ec2" +_ie___ = "ipv6pool-ec2" +_kp = "key_pair" +_kp_ = "key-pair" +_lt = "launch_template" +_lt_ = "launch-template" +_lg = "local_gateway" +_lg_ = "local-gateway" +_lgrt = "local_gateway_route_table" +_lgrt_ = "local-gateway-route-table" +_lgvi = "local_gateway_virtual_interface" +_lgvi_ = "local-gateway-virtual-interface" +_lgvig = "local_gateway_virtual_interface_group" +_lgvig_ = "local-gateway-virtual-interface-group" +_lgrtva = "local_gateway_route_table_vpc_association" +_lgrtva_ = "local-gateway-route-table-vpc-association" +_lgrtviga = "local_gateway_route_table_virtual_interface_group_association" +_lgrtviga_ = "local-gateway-route-table-virtual-interface-group-association" +_na = "natgateway" +_na_ = "network_acl" +_na__ = "network-acl" +_ni = "network_interface" +_ni_ = "network-interface" +_nia = "network_insights_analysis" +_nia_ = "network-insights-analysis" +_nip = "network_insights_path" +_nip_ = "network-insights-path" +_nias = "network_insights_access_scope" +_nias_ = "network-insights-access-scope" +_niasa = "network_insights_access_scope_analysis" +_niasa_ = "network-insights-access-scope-analysis" +_ol = "outpost_lag" +_ol_ = "outpost-lag" +_pg = "placement_group" +_pg_ = "placement-group" +_pl = "prefix_list" +_pl_ = "prefix-list" +_rrvt = "replace_root_volume_task" +_rrvt_ = "replace-root-volume-task" +_ri = "reserved_instances" +_ri_ = "reserved-instances" +_rt = "route_table" +_rt_ = "route-table" +_sg = "security_group" +_sg_ = "security-group" +_sgr = "security_group_rule" +_sgr_ = "security-group-rule" +_slvi = "service_link_virtual_interface" +_slvi_ = "service-link-virtual-interface" +_s = "snapshot" +_sfr = "spot_fleet_request" +_sfr_ = "spot-fleet-request" +_sir = "spot_instances_request" +_sir_ = "spot-instances-request" +_su = "subnet" +_scr = "subnet_cidr_reservation" +_scr_ = "subnet-cidr-reservation" +_tmf = "traffic_mirror_filter" +_tmf_ = "traffic-mirror-filter" +_tms = "traffic_mirror_session" +_tms_ = "traffic-mirror-session" +_tmt = "traffic_mirror_target" +_tmt_ = "traffic-mirror-target" +_tg_ = "transit_gateway" +_tg__ = "transit-gateway" +_tga = "transit_gateway_attachment" +_tga_ = "transit-gateway-attachment" +_tgcp = "transit_gateway_connect_peer" +_tgcp_ = "transit-gateway-connect-peer" +_tgmd = "transit_gateway_multicast_domain" +_tgmd_ = "transit-gateway-multicast-domain" +_tgpt = "transit_gateway_policy_table" +_tgpt_ = "transit-gateway-policy-table" +_tgmp = "transit_gateway_metering_policy" +_tgmp_ = "transit-gateway-metering-policy" +_tgrt = "transit_gateway_route_table" +_tgrt_ = "transit-gateway-route-table" +_tgrta = "transit_gateway_route_table_announcement" +_tgrta_ = "transit-gateway-route-table-announcement" +_vo = "volume" +_vp = "vpc" +_ve = "vpc_endpoint" +_ve_ = "vpc-endpoint" +_vec = "vpc_endpoint_connection" +_vec_ = "vpc-endpoint-connection" +_ves = "vpc_endpoint_service" +_ves_ = "vpc-endpoint-service" +_vesp = "vpc_endpoint_service_permission" +_vesp_ = "vpc-endpoint-service-permission" +_vpc = "vpc_peering_connection" +_vpc_ = "vpc-peering-connection" +_vc = "vpn_connection" +_vc_ = "vpn-connection" +_vg = "vpn_gateway" +_vg_ = "vpn-gateway" +_vfl = "vpc_flow_log" +_vfl_ = "vpc-flow-log" +_crf = "capacity_reservation_fleet" +_crf_ = "capacity-reservation-fleet" +_tmfr = "traffic_mirror_filter_rule" +_tmfr_ = "traffic-mirror-filter-rule" +_vecdt = "vpc_endpoint_connection_device_type" +_vecdt_ = "vpc-endpoint-connection-device-type" +_vai = "verified_access_instance" +_vai_ = "verified-access-instance" +_vag = "verified_access_group" +_vag_ = "verified-access-group" +_vae = "verified_access_endpoint" +_vae_ = "verified-access-endpoint" +_vap = "verified_access_policy" +_vap_ = "verified-access-policy" +_vatp = "verified_access_trust_provider" +_vatp_ = "verified-access-trust-provider" +_vcdt = "vpn_connection_device_type" +_vcdt_ = "vpn-connection-device-type" +_vbpae = "vpc_block_public_access_exclusion" +_vbpae_ = "vpc-block-public-access-exclusion" +_vec__ = "vpc_encryption_control" +_vec___ = "vpc-encryption-control" +_rs = "route_server" +_rs_ = "route-server" +_rse = "route_server_endpoint" +_rse_ = "route-server-endpoint" +_rsp = "route_server_peer" +_rsp_ = "route-server-peer" +_ird = "ipam_resource_discovery" +_ird_ = "ipam-resource-discovery" +_irda = "ipam_resource_discovery_association" +_irda_ = "ipam-resource-discovery-association" +_ice = "instance_connect_endpoint" +_ice_ = "instance-connect-endpoint" +_vaet = "verified_access_endpoint_target" +_vaet_ = "verified-access-endpoint-target" +_iervt = "ipam_external_resource_verification_token" +_iervt_ = "ipam-external-resource-verification-token" +_cb = "capacity_block" +_cb_ = "capacity-block" +_mmt = "mac_modification_task" +_mmt_ = "mac-modification-task" +_iplr = "ipam_prefix_list_resolver" +_iplr_ = "ipam-prefix-list-resolver" +_ip___ = "ipam_policy" +_ip____ = "ipam-policy" +_iplrt = "ipam_prefix_list_resolver_target" +_iplrt_ = "ipam-prefix-list-resolver-target" +_iira = "ipam_internet_registry_association" +_iira_ = "ipam-internet-registry-association" +_si = "secondary_interface" +_si_ = "secondary-interface" +_sn = "secondary_network" +_sn_ = "secondary-network" +_ss = "secondary_subnet" +_ss_ = "secondary-subnet" +_cmde = "capacity_manager_data_export" +_cmde_ = "capacity-manager-data-export" +_vc__ = "vpn_concentrator" +_vc___ = "vpn-concentrator" +_ipa = "ipam_pool_allocation" +_ipa_ = "ipam-pool-allocation" +_crcq = "capacity_reservation_cancellation_quote" +_crcq_ = "capacity-reservation-cancellation-quote" +_asc = "application_status_check" +_asc_ = "application-status-check" +_crmq = "capacity_reservation_modification_quote" +_crmq_ = "capacity-reservation-modification-quote" +_Ta = "Tag" +_Ke = "Key" +_ke = "key" +_Va = "Value" +_va = "value" +_TL = "TagList" +_TS = "TagSpecification" +_rT = "resourceType" +_Tag = "Tags" +_TSL = "TagSpecificationList" +_AATI = "AcceptAddressTransferInput" +_sSI = "smithy.synthetic#originalShapeId" +_cAATR = "com.amazonaws.ec2#AcceptAddressTransferRequest" +_sm = "smithy.api#input" +_Ad = "Address" +_smi = "smithy.api#required" +_TSa = "TagSpecifications" +_DR = "DryRun" +_ATSd = "AddressTransferStatus" +_p = "pending" +_d = "disabled" +_ac = "accepted" +_MDT = "MillisecondDateTime" +_ATd = "AddressTransfer" +_PI = "PublicIp" +_pI = "publicIp" +_AI = "AllocationId" +_aI = "allocationId" +_TAI = "TransferAccountId" +_tAI = "transferAccountId" +_TOET = "TransferOfferExpirationTimestamp" +_tOET = "transferOfferExpirationTimestamp" +_TOAT = "TransferOfferAcceptedTimestamp" +_tOAT = "transferOfferAcceptedTimestamp" +_aTS = "addressTransferStatus" +_AATO = "AcceptAddressTransferOutput" +_cAATRo = "com.amazonaws.ec2#AcceptAddressTransferResult" +_smit = "smithy.api#output" +_aT = "addressTransfer" +_AAT = "AcceptAddressTransfer" +_CRI = "CapacityReservationId" +_ACRBOI = "AcceptCapacityReservationBillingOwnershipInput" +_cACRBOR = "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipRequest" +_ACRBOO = "AcceptCapacityReservationBillingOwnershipOutput" +_cACRBORo = "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipResult" +_R = "Return" +_r = "return" +_ACRBO = "AcceptCapacityReservationBillingOwnership" +_RI = "ReservationId" +_RIIS = "ReservedInstanceIdSet" +_RII = "ReservedInstanceId" +_RIOI = "ReservedInstancesOfferingId" +_TCR = "TargetConfigurationRequest" +_IC = "InstanceCount" +_OI = "OfferingId" +_TCRS = "TargetConfigurationRequestSet" +_ARIEQI = "AcceptReservedInstancesExchangeQuoteInput" +_cARIEQR = "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteRequest" +_RIIe = "ReservedInstanceIds" +_TC = "TargetConfigurations" +_TCa = "TargetConfiguration" +_ARIEQO = "AcceptReservedInstancesExchangeQuoteOutput" +_cARIEQRo = "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteResult" +_EI = "ExchangeId" +_eI = "exchangeId" +_ARIEQ = "AcceptReservedInstancesExchangeQuote" +_TGAI = "TransitGatewayAttachmentId" +_ATGCVAI = "AcceptTransitGatewayClientVpnAttachmentInput" +_cATGCVAR = "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentRequest" +_CVEI = "ClientVpnEndpointId" +_TGAST = "TransitGatewayAttachmentStatusType" +_pa = "pending_acceptance" +_pa_ = "pending-acceptance" +_re = "rejected" +_av = "available" +_de = "deleting" +_del = "deleted" +_TGI = "TransitGatewayId" +_TGCVA = "TransitGatewayClientVpnAttachment" +_tGAI = "transitGatewayAttachmentId" +_tGI = "transitGatewayId" +_cVEI = "clientVpnEndpointId" +_CVOI = "ClientVpnOwnerId" +_cVOI = "clientVpnOwnerId" +_St = "State" +_st = "state" +_CT = "CreationTime" +_cT = "creationTime" +_ATGCVAO = "AcceptTransitGatewayClientVpnAttachmentOutput" +_cATGCVARo = "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentResult" +_tGCVA = "transitGatewayClientVpnAttachment" +_ATGCVA = "AcceptTransitGatewayClientVpnAttachment" +_VSL = "ValueStringList" +_TGMDI = "TransitGatewayMulticastDomainId" +_ATGMDAI = "AcceptTransitGatewayMulticastDomainAssociationsInput" +_cATGMDAR = "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsRequest" +_SI = "SubnetIds" +_TGART = "TransitGatewayAttachmentResourceType" +_vpn = "vpn" +_dcg = "direct_connect_gateway" +_dcg_ = "direct-connect-gateway" +_c = "connect" +_pe = "peering" +_tp = "tgw_peering" +_tp_ = "tgw-peering" +_nf = "network_function" +_nf_ = "network-function" +_cv = "client_vpn" +_cv_ = "client-vpn" +_TGMDAS = "TransitGatewayMulitcastDomainAssociationState" +_pA = "pendingAcceptance" +_as = "associating" +_ass = "associated" +_di = "disassociating" +_dis = "disassociated" +_fa = "failed" +_SA = "SubnetAssociation" +_SIu = "SubnetId" +_sI = "subnetId" +_SAL = "SubnetAssociationList" +_TGMDA = "TransitGatewayMulticastDomainAssociations" +_tGMDI = "transitGatewayMulticastDomainId" +_RIe = "ResourceId" +_rI = "resourceId" +_ROI = "ResourceOwnerId" +_rOI = "resourceOwnerId" +_Su = "Subnets" +_sub = "subnets" +_ATGMDAO = "AcceptTransitGatewayMulticastDomainAssociationsOutput" +_cATGMDARo = "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsResult" +_As = "Associations" +_asso = "associations" +_ATGMDA = "AcceptTransitGatewayMulticastDomainAssociations" +_ATGPAI = "AcceptTransitGatewayPeeringAttachmentInput" +_cATGPAR = "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentRequest" +_PTI = "PeeringTgwInfo" +_CNI = "CoreNetworkId" +_cNI = "coreNetworkId" +_OIw = "OwnerId" +_oI = "ownerId" +_Re = "Region" +_reg = "region" +_DT = "DateTime" +_DRV = "DynamicRoutingValue" +_e = "enable" +_disa = "disable" +_TGPAO = "TransitGatewayPeeringAttachmentOptions" +_DRy = "DynamicRouting" +_dR = "dynamicRouting" +_TGAS = "TransitGatewayAttachmentState" +_ini = "initiating" +_iR = "initiatingRequest" +_rB = "rollingBack" +_mo = "modifying" +_rej = "rejecting" +_fai = "failing" +_PAS = "PeeringAttachmentStatus" +_C = "Code" +_co = "code" +_Me = "Message" +_mes = "message" +_TGPA = "TransitGatewayPeeringAttachment" +_ATGAI = "AccepterTransitGatewayAttachmentId" +_aTGAI = "accepterTransitGatewayAttachmentId" +_RTI = "RequesterTgwInfo" +_rTI = "requesterTgwInfo" +_ATI = "AccepterTgwInfo" +_aTI = "accepterTgwInfo" +_O = "Options" +_o = "options" +_Sta = "Status" +_sta = "status" +_TSag = "TagSet" +_tS = "tagSet" +_ATGPAO = "AcceptTransitGatewayPeeringAttachmentOutput" +_cATGPARo = "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentResult" +_tGPA = "transitGatewayPeeringAttachment" +_ATGPA = "AcceptTransitGatewayPeeringAttachment" +_ATGVAI = "AcceptTransitGatewayVpcAttachmentInput" +_cATGVAR = "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentRequest" +_AMSV = "ApplianceModeSupportValue" +_DSV = "DnsSupportValue" +_ISV = "Ipv6SupportValue" +_SGRSV = "SecurityGroupReferencingSupportValue" +_TGVAO = "TransitGatewayVpcAttachmentOptions" +_DS = "DnsSupport" +_dS = "dnsSupport" +_SGRS = "SecurityGroupReferencingSupport" +_sGRS = "securityGroupReferencingSupport" +_IS = "Ipv6Support" +_iS = "ipv6Support" +_AMSp = "ApplianceModeSupport" +_aMS = "applianceModeSupport" +_TGVA = "TransitGatewayVpcAttachment" +_VI = "VpcId" +_vI = "vpcId" +_VOI = "VpcOwnerId" +_vOI = "vpcOwnerId" +_sIu = "subnetIds" +_ATGVAO = "AcceptTransitGatewayVpcAttachmentOutput" +_cATGVARo = "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentResult" +_tGVA = "transitGatewayVpcAttachment" +_ATGVA = "AcceptTransitGatewayVpcAttachment" +_VESI = "VpcEndpointServiceId" +_VEI = "VpcEndpointId" +_VEIL = "VpcEndpointIdList" +_AVECI = "AcceptVpcEndpointConnectionsInput" +_cAVECR = "com.amazonaws.ec2#AcceptVpcEndpointConnectionsRequest" +_SIe = "ServiceId" +_VEIp = "VpcEndpointIds" +_UIE = "UnsuccessfulItemError" +_UI = "UnsuccessfulItem" +_E = "Error" +_er = "error" +_UIS = "UnsuccessfulItemSet" +_AVECO = "AcceptVpcEndpointConnectionsOutput" +_cAVECRo = "com.amazonaws.ec2#AcceptVpcEndpointConnectionsResult" +_Un = "Unsuccessful" +_un = "unsuccessful" +_AVEC = "AcceptVpcEndpointConnections" +_VPCIWR = "VpcPeeringConnectionIdWithResolver" +_AVPCI = "AcceptVpcPeeringConnectionInput" +_cAVPCR = "com.amazonaws.ec2#AcceptVpcPeeringConnectionRequest" +_dRr = "dryRun" +_VPCI = "VpcPeeringConnectionId" +_vPCI = "vpcPeeringConnectionId" +_CB = "CidrBlock" +_cB = "cidrBlock" +_CBS = "CidrBlockSet" +_ICB = "Ipv6CidrBlock" +_iCB = "ipv6CidrBlock" +_ICBS = "Ipv6CidrBlockSet" +_VPCOD = "VpcPeeringConnectionOptionsDescription" +_ADRFRV = "AllowDnsResolutionFromRemoteVpc" +_aDRFRV = "allowDnsResolutionFromRemoteVpc" +_AEFLCLTRV = "AllowEgressFromLocalClassicLinkToRemoteVpc" +_aEFLCLTRV = "allowEgressFromLocalClassicLinkToRemoteVpc" +_AEFLVTRCL = "AllowEgressFromLocalVpcToRemoteClassicLink" +_aEFLVTRCL = "allowEgressFromLocalVpcToRemoteClassicLink" +_VPCVI = "VpcPeeringConnectionVpcInfo" +_iCBS = "ipv6CidrBlockSet" +_cBS = "cidrBlockSet" +_PO = "PeeringOptions" +_pO = "peeringOptions" +_VPCSRC = "VpcPeeringConnectionStateReasonCode" +_ir = "initiating_request" +_ir_ = "initiating-request" +_act = "active" +_ex = "expired" +_pr = "provisioning" +_VPCSR = "VpcPeeringConnectionStateReason" +_VPC = "VpcPeeringConnection" +_AVI = "AccepterVpcInfo" +_aVI = "accepterVpcInfo" +_ET = "ExpirationTime" +_eT = "expirationTime" +_RVI = "RequesterVpcInfo" +_rVI = "requesterVpcInfo" +_AVPCO = "AcceptVpcPeeringConnectionOutput" +_cAVPCRo = "com.amazonaws.ec2#AcceptVpcPeeringConnectionResult" +_vPC = "vpcPeeringConnection" +_AVPC = "AcceptVpcPeeringConnection" +_PR = "PortRange" +_F = "From" +_fr = "from" +_To = "To" +_to = "to" +_AAR = "AnalysisAclRule" +_Ci = "Cidr" +_ci = "cidr" +_Eg = "Egress" +_egr = "egress" +_pR = "portRange" +_P = "Protocol" +_pro = "protocol" +_RA = "RuleAction" +_rA = "ruleAction" +_RN = "RuleNumber" +_rN = "ruleNumber" +_ACn = "AnalysisComponent" +_Id = "Id" +_id = "id" +_Ar = "Arn" +_ar = "arn" +_N = "Name" +_nam = "name" +_ACL = "AnalysisComponentList" +_RAe = "ResourceArn" +_SL = "StringList" +_RO = "RuleOption" +_Key = "Keyword" +_key = "keyword" +_Se = "Settings" +_SS = "SettingSet" +_sS = "settingSet" +_ROL = "RuleOptionList" +_RGROP = "RuleGroupRuleOptionsPair" +_RGA = "RuleGroupArn" +_rGA = "ruleGroupArn" +_ROu = "RuleOptions" +_ROS = "RuleOptionSet" +_rOS = "ruleOptionSet" +_RGROPL = "RuleGroupRuleOptionsPairList" +_RGTP = "RuleGroupTypePair" +_RGT = "RuleGroupType" +_rGT = "ruleGroupType" +_RGTPL = "RuleGroupTypePairList" +_AD = "AdditionalDetail" +_ADT = "AdditionalDetailType" +_aDT = "additionalDetailType" +_Co = "Component" +_com = "component" +_VES = "VpcEndpointService" +_vES = "vpcEndpointService" +_RGTPu = "RuleGroupTypePairs" +_RGTPS = "RuleGroupTypePairSet" +_rGTPS = "ruleGroupTypePairSet" +_RGROPu = "RuleGroupRuleOptionsPairs" +_RGROPS = "RuleGroupRuleOptionsPairSet" +_rGROPS = "ruleGroupRuleOptionsPairSet" +_SN = "ServiceName" +_sNe = "serviceName" +_LB = "LoadBalancers" +_LBS = "LoadBalancerSet" +_lBS = "loadBalancerSet" +_ADL = "AdditionalDetailList" +_IA = "IpAddress" +_IAL = "IpAddressList" +_Po = "Port" +_ALBL = "AnalysisLoadBalancerListener" +_LBP = "LoadBalancerPort" +_lBP = "loadBalancerPort" +_IP = "InstancePort" +_iP = "instancePort" +_CA = "ComponentAccount" +_CR = "ComponentRegion" +_PRL = "PortRangeList" +_FSR = "FirewallStatefulRule" +_So = "Sources" +_SSo = "SourceSet" +_sSo = "sourceSet" +_D = "Destinations" +_DSe = "DestinationSet" +_dSe = "destinationSet" +_SP = "SourcePorts" +_SPS = "SourcePortSet" +_sPS = "sourcePortSet" +_DP = "DestinationPorts" +_DPS = "DestinationPortSet" +_dPS = "destinationPortSet" +_Di = "Direction" +_dir = "direction" +_Pr = "Priority" +_PIr = "ProtocolInt" +_PIL = "ProtocolIntList" +_FSRi = "FirewallStatelessRule" +_Pro = "Protocols" +_PS = "ProtocolSet" +_pS = "protocolSet" +_pri = "priority" +_ALBT = "AnalysisLoadBalancerTarget" +_ad = "address" +_AZ = "AvailabilityZone" +_aZ = "availabilityZone" +_AZI = "AvailabilityZoneId" +_aZI = "availabilityZoneId" +_In = "Instance" +_po = "port" +_ARTR = "AnalysisRouteTableRoute" +_DC = "DestinationCidr" +_dC = "destinationCidr" +_DPLI = "DestinationPrefixListId" +_dPLI = "destinationPrefixListId" +_EOIGI = "EgressOnlyInternetGatewayId" +_eOIGI = "egressOnlyInternetGatewayId" +_GI = "GatewayId" +_gI = "gatewayId" +_II = "InstanceId" +_iI = "instanceId" +_NGI = "NatGatewayId" +_nGI = "natGatewayId" +_NII = "NetworkInterfaceId" +_nII = "networkInterfaceId" +_Or = "Origin" +_or = "origin" +_CGI = "CarrierGatewayId" +_cGI = "carrierGatewayId" +_CNA = "CoreNetworkArn" +_cNA = "coreNetworkArn" +_LGI = "LocalGatewayId" +_lGI = "localGatewayId" +_ASGR = "AnalysisSecurityGroupRule" +_SGI = "SecurityGroupId" +_sGI = "securityGroupId" +_PLI = "PrefixListId" +_pLI = "prefixListId" +_ATGPTE = "AnalysisTransitGatewayPolicyTableEntry" +_SC = "SourceCidr" +_sC = "sourceCidr" +_SPR = "SourcePortRange" +_sPR = "sourcePortRange" +_DPR = "DestinationPortRange" +_dPR = "destinationPortRange" +_TRTI = "TargetRouteTableId" +_tRTI = "targetRouteTableId" +_TGRTR = "TransitGatewayRouteTableRoute" +_ROo = "RouteOrigin" +_rO = "routeOrigin" +_AIt = "AttachmentId" +_aIt = "attachmentId" +_Ex = "Explanation" +_Ac = "Acl" +_acl = "acl" +_AR = "AclRule" +_aR = "aclRule" +_Add = "Addresses" +_AS = "AddressSet" +_aS = "addressSet" +_ATt = "AttachedTo" +_aTt = "attachedTo" +_AZv = "AvailabilityZones" +_AZS = "AvailabilityZoneSet" +_aZS = "availabilityZoneSet" +_AZIv = "AvailabilityZoneIds" +_AZIS = "AvailabilityZoneIdSet" +_aZIS = "availabilityZoneIdSet" +_Cid = "Cidrs" +_CS = "CidrSet" +_cS = "cidrSet" +_CG = "CustomerGateway" +_cG = "customerGateway" +_De = "Destination" +_des = "destination" +_DV = "DestinationVpc" +_dV = "destinationVpc" +_EC = "ExplanationCode" +_eC = "explanationCode" +_IRT = "IngressRouteTable" +_iRT = "ingressRouteTable" +_IG = "InternetGateway" +_iG = "internetGateway" +_LBA = "LoadBalancerArn" +_lBA = "loadBalancerArn" +_CLBL = "ClassicLoadBalancerListener" +_cLBL = "classicLoadBalancerListener" +_LBLP = "LoadBalancerListenerPort" +_lBLP = "loadBalancerListenerPort" +_LBT = "LoadBalancerTarget" +_lBT = "loadBalancerTarget" +_LBTG = "LoadBalancerTargetGroup" +_lBTG = "loadBalancerTargetGroup" +_LBTGo = "LoadBalancerTargetGroups" +_LBTGS = "LoadBalancerTargetGroupSet" +_lBTGS = "loadBalancerTargetGroupSet" +_LBTP = "LoadBalancerTargetPort" +_lBTP = "loadBalancerTargetPort" +_ELBL = "ElasticLoadBalancerListener" +_eLBL = "elasticLoadBalancerListener" +_MC = "MissingComponent" +_mC = "missingComponent" +_NG = "NatGateway" +_nG = "natGateway" +_NI = "NetworkInterface" +_nI = "networkInterface" +_PF = "PacketField" +_pF = "packetField" +_PRo = "PortRanges" +_PRS = "PortRangeSet" +_pRS = "portRangeSet" +_PL = "PrefixList" +_pL = "prefixList" +_RTR = "RouteTableRoute" +_rTR = "routeTableRoute" +_RTo = "RouteTable" +_rTo = "routeTable" +_SG = "SecurityGroup" +_sG = "securityGroup" +_SGR = "SecurityGroupRule" +_sGR = "securityGroupRule" +_SGe = "SecurityGroups" +_SGS = "SecurityGroupSet" +_sGS = "securityGroupSet" +_SV = "SourceVpc" +_sVo = "sourceVpc" +_Sub = "Subnet" +_SRT = "SubnetRouteTable" +_sRT = "subnetRouteTable" +_Vp = "Vpc" +_VE = "VpcEndpoint" +_vE = "vpcEndpoint" +_VC = "VpnConnection" +_vC = "vpnConnection" +_VG = "VpnGateway" +_vG = "vpnGateway" +_TGr = "TransitGateway" +_tG = "transitGateway" +_TGRT = "TransitGatewayRouteTable" +_tGRT = "transitGatewayRouteTable" +_tGRTR = "transitGatewayRouteTableRoute" +_TGPT = "TransitGatewayPolicyTable" +_tGPT = "transitGatewayPolicyTable" +_TGPTE = "TransitGatewayPolicyTableEntry" +_tGPTE = "transitGatewayPolicyTableEntry" +_TGA = "TransitGatewayAttachment" +_tGA = "transitGatewayAttachment" +_cA = "componentAccount" +_cR = "componentRegion" +_fSR = "firewallStatelessRule" +_fSRi = "firewallStatefulRule" +_EL = "ExplanationList" +_APH = "AnalysisPacketHeader" +_DA = "DestinationAddresses" +_DAS = "DestinationAddressSet" +_dAS = "destinationAddressSet" +_DPRe = "DestinationPortRanges" +_DPRS = "DestinationPortRangeSet" +_dPRS = "destinationPortRangeSet" +_SAo = "SourceAddresses" +_SAS = "SourceAddressSet" +_sAS = "sourceAddressSet" +_SPRo = "SourcePortRanges" +_SPRS = "SourcePortRangeSet" +_sPRS = "sourcePortRangeSet" +_PC = "PathComponent" +_SNe = "SequenceNumber" +_sNeq = "sequenceNumber" +_OH = "OutboundHeader" +_oH = "outboundHeader" +_IH = "InboundHeader" +_iH = "inboundHeader" +_ADd = "AdditionalDetails" +_ADS = "AdditionalDetailSet" +_aDS = "additionalDetailSet" +_Exp = "Explanations" +_ES = "ExplanationSet" +_eS = "explanationSet" +_PCL = "PathComponentList" +_NIASAI = "NetworkInsightsAccessScopeAnalysisId" +_NIASI = "NetworkInsightsAccessScopeId" +_ASAF = "AccessScopeAnalysisFinding" +_nIASAI = "networkInsightsAccessScopeAnalysisId" +_nIASI = "networkInsightsAccessScopeId" +_FI = "FindingId" +_fI = "findingId" +_FC = "FindingComponents" +_FCS = "FindingComponentSet" +_fCS = "findingComponentSet" +_ASAFL = "AccessScopeAnalysisFindingList" +_tc = "tcp" +_ud = "udp" +_PLr = "ProtocolList" +_PHS = "PacketHeaderStatement" +_SPL = "SourcePrefixLists" +_SPLS = "SourcePrefixListSet" +_sPLS = "sourcePrefixListSet" +_DPL = "DestinationPrefixLists" +_DPLS = "DestinationPrefixListSet" +_dPLS = "destinationPrefixListSet" +_RS = "ResourceStatement" +_Res = "Resources" +_RSe = "ResourceSet" +_rS = "resourceSet" +_RTe = "ResourceTypes" +_RTS = "ResourceTypeSet" +_rTS = "resourceTypeSet" +_PSa = "PathStatement" +_pHS = "packetHeaderStatement" +_rSe = "resourceStatement" +_TRS = "ThroughResourcesStatement" +_TRSL = "ThroughResourcesStatementList" +_ASP = "AccessScopePath" +_Sou = "Source" +_so = "source" +_TR = "ThroughResources" +_TRSh = "ThroughResourceSet" +_tRS = "throughResourceSet" +_ASPL = "AccessScopePathList" +_PHSR = "PacketHeaderStatementRequest" +_SAou = "SourceAddress" +_DAe = "DestinationAddress" +_SPo = "SourcePort" +_DPe = "DestinationPort" +_SPLo = "SourcePrefixList" +_DPLe = "DestinationPrefixList" +_RSR = "ResourceStatementRequest" +_Reso = "Resource" +_PSR = "PathStatementRequest" +_TRSR = "ThroughResourcesStatementRequest" +_TRSRL = "ThroughResourcesStatementRequestList" +_ASPR = "AccessScopePathRequest" +_TRh = "ThroughResource" +_ASPLR = "AccessScopePathListRequest" +_AAV = "AccountAttributeValue" +_AV = "AttributeValue" +_aV = "attributeValue" +_AAVL = "AccountAttributeValueList" +_AA = "AccountAttribute" +_ANt = "AttributeName" +_aN = "attributeName" +_AVt = "AttributeValues" +_AVS = "AttributeValueSet" +_aVS = "attributeValueSet" +_AAL = "AccountAttributeList" +_AAN = "AccountAttributeName" +_sp = "supported_platforms" +_sp_ = "supported-platforms" +_dv = "default_vpc" +_dv_ = "default-vpc" +_AANSL = "AccountAttributeNameStringList" +_AID = "AccountID" +_VECES = "VpcEncryptionControlExclusionState" +_en = "enabling" +_ena = "enabled" +_disab = "disabling" +_AVECE = "AccountVpcEncryptionControlExclusions" +_EOIG = "EgressOnlyInternetGateway" +_eOIG = "egressOnlyInternetGateway" +_VPG = "VirtualPrivateGateway" +_vPG = "virtualPrivateGateway" +_VP = "VpcPeering" +_vP = "vpcPeering" +_La = "Lambda" +_la = "lambda" +_VL = "VpcLattice" +_vL = "vpcLattice" +_EFS = "ElasticFileSystem" +_eFS = "elasticFileSystem" +_MB = "ManagedBy" +_acc = "account" +_dp = "declarative_policy" +_dp_ = "declarative-policy" +_AVECM = "AccountVpcEncryptionControlMode" +_unm = "unmanaged" +_am = "attempt_monitor" +_am_ = "attempt-monitor" +_ae = "attempt_enforce" +_ae_ = "attempt-enforce" +_AVECS = "AccountVpcEncryptionControlState" +_ds = "default_state" +_ds_ = "default-state" +_tip = "transitions_in_progress" +_tip_ = "transitions-in-progress" +_tps = "transitions_partially_successful" +_tps_ = "transitions-partially-successful" +_ts = "transitions_successful" +_ts_ = "transitions-successful" +_tf = "transitions_failed" +_tf_ = "transitions-failed" +_AVECc = "AccountVpcEncryptionControl" +_Mo = "Mode" +_mod = "mode" +_Exc = "Exclusions" +_exc = "exclusions" +_mB = "managedBy" +_LUT = "LastUpdateTimestamp" +_lUT = "lastUpdateTimestamp" +_IHS = "InstanceHealthStatus" +_HS = "HEALTHY_STATUS" +_he = "healthy" +_US = "UNHEALTHY_STATUS" +_unh = "unhealthy" +_AIc = "ActiveInstance" +_IT = "InstanceType" +_iT = "instanceType" +_SIRI = "SpotInstanceRequestId" +_sIRI = "spotInstanceRequestId" +_IHn = "InstanceHealth" +_iHn = "instanceHealth" +_AIS = "ActiveInstanceSet" +_VTPS = "VpnTunnelProvisioningStatus" +_AVTS = "ActiveVpnTunnelStatus" +_PEA = "Phase1EncryptionAlgorithm" +_pEA = "phase1EncryptionAlgorithm" +_PEAh = "Phase2EncryptionAlgorithm" +_pEAh = "phase2EncryptionAlgorithm" +_PIA = "Phase1IntegrityAlgorithm" +_pIA = "phase1IntegrityAlgorithm" +_PIAh = "Phase2IntegrityAlgorithm" +_pIAh = "phase2IntegrityAlgorithm" +_PDHG = "Phase1DHGroup" +_pDHG = "phase1DHGroup" +_PDHGh = "Phase2DHGroup" +_pDHGh = "phase2DHGroup" +_IV = "IkeVersion" +_iV = "ikeVersion" +_PSr = "ProvisioningStatus" +_pSr = "provisioningStatus" +_PSRr = "ProvisioningStatusReason" +_pSR = "provisioningStatusReason" +_ASc = "ActivityStatus" +_ERROR = "ERROR" +_PF_ = "PENDING_FULFILLMENT" +_pf = "pending_fulfillment" +_PT = "PENDING_TERMINATION" +_pt = "pending_termination" +_FULFILLED = "FULFILLED" +_fu = "fulfilled" +_PTr = "PrincipalType" +_Al = "All" +_Ser = "Service" +_OU = "OrganizationUnit" +_Acc = "Account" +_Us = "User" +_Ro = "Role" +_AP = "AddedPrincipal" +_pT = "principalType" +_Pri = "Principal" +_prin = "principal" +_SPI = "ServicePermissionId" +_sPI = "servicePermissionId" +_sIe = "serviceId" +_APS = "AddedPrincipalSet" +_AIOR = "AddIpamOperatingRegion" +_RNe = "RegionName" +_AIORS = "AddIpamOperatingRegionSet" +_AIOUE = "AddIpamOrganizationalUnitExclusion" +_OEP = "OrganizationsEntityPath" +_AIOUES = "AddIpamOrganizationalUnitExclusionSet" +_AFNI = "AdditionalFlexibleNetworkInterfaces" +_APLE = "AddPrefixListEntry" +_Des = "Description" +_APLEd = "AddPrefixListEntries" +_DTo = "DomainType" +_stan = "standard" +_SM = "ServiceManaged" +_al = "alb" +_nl = "nlb" +_rn = "rnat" +_rd = "rds" +_AIs = "AssociationId" +_aIs = "associationId" +_Do = "Domain" +_dom = "domain" +_NIOI = "NetworkInterfaceOwnerId" +_nIOI = "networkInterfaceOwnerId" +_PIAr = "PrivateIpAddress" +_pIAr = "privateIpAddress" +_PIP = "PublicIpv4Pool" +_pIP = "publicIpv4Pool" +_NBG = "NetworkBorderGroup" +_nBG = "networkBorderGroup" +_COI = "CustomerOwnedIp" +_cOI = "customerOwnedIp" +_COIP = "CustomerOwnedIpv4Pool" +_cOIP = "customerOwnedIpv4Pool" +_CI = "CarrierIp" +_cI = "carrierIp" +_sM = "serviceManaged" +_PUS = "PtrUpdateStatus" +_Rea = "Reason" +_rea = "reason" +_PIAu = "PublicIpAddress" +_AAd = "AddressAttribute" +_PRt = "PtrRecord" +_pRt = "ptrRecord" +_PRU = "PtrRecordUpdate" +_pRU = "ptrRecordUpdate" +_AANd = "AddressAttributeName" +_dn = "domain_name" +_dn_ = "domain-name" +_AF = "AddressFamily" +_ipv = "ipv4" +_ipv_ = "ipv6" +_AL = "AddressList" +_AMR = "AddressMaxResults" +_ATL = "AddressTransferList" +_ABCI = "AdvertiseByoipCidrInput" +_cABCR = "com.amazonaws.ec2#AdvertiseByoipCidrRequest" +_Asn = "Asn" +_AAS = "AsnAssociationState" +_fd = "failed_disassociation" +_fd_ = "failed-disassociation" +_fa_ = "failed_association" +_fa__ = "failed-association" +_pd = "pending_disassociation" +_pd_ = "pending-disassociation" +_pa__ = "pending_association" +_pa___ = "pending-association" +_AAs = "AsnAssociation" +_asn = "asn" +_SMt = "StatusMessage" +_sMt = "statusMessage" +_AASs = "AsnAssociationSet" +_IPI = "IpamPoolId" +_BCS = "ByoipCidrState" +_adv = "advertised" +_dep = "deprovisioned" +_fd__ = "failed_deprovision" +_fd___ = "failed-deprovision" +_fp = "failed_provision" +_fp_ = "failed-provision" +_pa____ = "pending_advertising" +_pa_____ = "pending-advertising" +_pd__ = "pending_deprovision" +_pd___ = "pending-deprovision" +_pp = "pending_provision" +_pp_ = "pending-provision" +_pw = "pending_withdrawal" +_pw_ = "pending-withdrawal" +_prov = "provisioned" +_pnpa = "provisioned_not_publicly_advertisable" +_pnpa_ = "provisioned-not-publicly-advertisable" +_BC = "ByoipCidr" +_desc = "description" +_AAsn = "AsnAssociations" +_aAS = "asnAssociationSet" +_ATdv = "AdvertisementType" +_aTd = "advertisementType" +_PIo = "PoolId" +_pIo = "poolId" +_iPI = "ipamPoolId" +_ABCO = "AdvertiseByoipCidrOutput" +_cABCRo = "com.amazonaws.ec2#AdvertiseByoipCidrResult" +_bC = "byoipCidr" +_ABC = "AdvertiseByoipCidr" +_Af = "Affinity" +_def = "default" +_ho = "host" +_ASE = "AggregationStatusEnum" +_INCLUDED = "INCLUDED" +_inc = "included" +_EXCLUDED = "EXCLUDED" +_excl = "excluded" +_IPEI = "Ipv4PoolEc2Id" +_AAI = "AllocateAddressInput" +_cAAR = "com.amazonaws.ec2#AllocateAddressRequest" +_AAO = "AllocateAddressOutput" +_cAARo = "com.amazonaws.ec2#AllocateAddressResult" +_AAl = "AllocateAddress" +_AIss = "AssetId" +_AIL = "AssetIdList" +_APu = "AutoPlacement" +_on = "on" +_of = "off" +_AZN = "AvailabilityZoneName" +_ASS = "AmdSevSnp" +_HCOR = "HostCpuOptionsRequest" +_HM = "HostMaintenance" +_HR = "HostRecovery" +_AHI = "AllocateHostsInput" +_cAHR = "com.amazonaws.ec2#AllocateHostsRequest" +_IF = "InstanceFamily" +_OA = "OutpostArn" +_AIsse = "AssetIds" +_CO = "CpuOptions" +_aP = "autoPlacement" +_CTl = "ClientToken" +_cTl = "clientToken" +_Q = "Quantity" +_q = "quantity" +_RHIL = "ResponseHostIdList" +_AHO = "AllocateHostsOutput" +_cAHRo = "com.amazonaws.ec2#AllocateHostsResult" +_HI = "HostIds" +_HIS = "HostIdSet" +_hIS = "hostIdSet" +_AH = "AllocateHosts" +_IPAAC = "IpamPoolAllocationAllowedCidrs" +_IPADC = "IpamPoolAllocationDisallowedCidrs" +_AIPCI = "AllocateIpamPoolCidrInput" +_cAIPCR = "com.amazonaws.ec2#AllocateIpamPoolCidrRequest" +_NL = "NetmaskLength" +_sT = "smithy.api#idempotencyToken" +_PNC = "PreviewNextCidr" +_ACl = "AllowedCidrs" +_ACll = "AllowedCidr" +_DCi = "DisallowedCidrs" +_DCis = "DisallowedCidr" +_IPAI = "IpamPoolAllocationId" +_IPART = "IpamPoolAllocationResourceType" +_epip = "ec2_public_ipv4_pool" +_epip_ = "ec2-public-ipv4-pool" +_cu = "custom" +_eip = "eip" +_ail = "anycast_ip_list" +_ail_ = "anycast-ip-list" +_IPA = "IpamPoolAllocation" +_iPAI = "ipamPoolAllocationId" +_RR = "ResourceRegion" +_rR = "resourceRegion" +_ROe = "ResourceOwner" +_rOe = "resourceOwner" +_AIPCO = "AllocateIpamPoolCidrOutput" +_cAIPCRo = "com.amazonaws.ec2#AllocateIpamPoolCidrResult" +_iPA = "ipamPoolAllocation" +_AIPC = "AllocateIpamPoolCidr" +_AILl = "AllocationIdList" +_AIl = "AllocationIds" +_ASl = "AllocationState" +_ua = "under_assessment" +_ua_ = "under-assessment" +_pf_ = "permanent_failure" +_pf__ = "permanent-failure" +_rel = "released" +_rpf = "released_permanent_failure" +_rpf_ = "released-permanent-failure" +_con = "configuring" +_ASll = "AllocationStrategy" +_LP = "LOWEST_PRICE" +_lP = "lowestPrice" +_DIVERSIFIED = "DIVERSIFIED" +_div = "diversified" +_CO_ = "CAPACITY_OPTIMIZED" +_cO = "capacityOptimized" +_COP = "CAPACITY_OPTIMIZED_PRIORITIZED" +_cOP = "capacityOptimizedPrioritized" +_PCO = "PRICE_CAPACITY_OPTIMIZED" +_pCO = "priceCapacityOptimized" +_ATl = "AllocationType" +_us = "used" +_fut = "future" +_ca = "cancelling" +_AISDS = "AllowedImagesSettingsDisabledState" +_AISES = "AllowedImagesSettingsEnabledState" +_am__ = "audit_mode" +_am___ = "audit-mode" +_AIT = "AllowedInstanceType" +_AITS = "AllowedInstanceTypeSet" +_APl = "AllowedPrincipal" +_APSl = "AllowedPrincipalSet" +_AMIT = "AllowsMultipleInstanceTypes" +_APHl = "AlternatePathHint" +_CIo = "ComponentId" +_cIo = "componentId" +_CAo = "ComponentArn" +_cAo = "componentArn" +_APHL = "AlternatePathHintList" +_CVSGIS = "ClientVpnSecurityGroupIdSet" +_ASGTCVTNI = "ApplySecurityGroupsToClientVpnTargetNetworkInput" +_cASGTCVTNR = "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkRequest" +_SGIe = "SecurityGroupIds" +_ASGTCVTNO = "ApplySecurityGroupsToClientVpnTargetNetworkOutput" +_cASGTCVTNRo = "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkResult" +_sGIe = "securityGroupIds" +_ASGTCVTN = "ApplySecurityGroupsToClientVpnTargetNetwork" +_IALp = "Ipv6AddressList" +_IPL = "IpPrefixList" +_AIAI = "AssignIpv6AddressesInput" +_cAIAR = "com.amazonaws.ec2#AssignIpv6AddressesRequest" +_IPC = "Ipv6PrefixCount" +_IPp = "Ipv6Prefixes" +_IPpv = "Ipv6Prefix" +_IAp = "Ipv6Addresses" +_iA = "ipv6Addresses" +_IAC = "Ipv6AddressCount" +_iAC = "ipv6AddressCount" +_AIAO = "AssignIpv6AddressesOutput" +_cAIARo = "com.amazonaws.ec2#AssignIpv6AddressesResult" +_AIA = "AssignedIpv6Addresses" +_aIA = "assignedIpv6Addresses" +_AIP = "AssignedIpv6Prefixes" +_AIPS = "AssignedIpv6PrefixSet" +_aIPS = "assignedIpv6PrefixSet" +_AIAs = "AssignIpv6Addresses" +_PIASL = "PrivateIpAddressStringList" +_APIAI = "AssignPrivateIpAddressesInput" +_cAPIAR = "com.amazonaws.ec2#AssignPrivateIpAddressesRequest" +_IPpvr = "Ipv4Prefixes" +_IPpvre = "Ipv4Prefix" +_IPCp = "Ipv4PrefixCount" +_PIAri = "PrivateIpAddresses" +_SPIAC = "SecondaryPrivateIpAddressCount" +_sPIAC = "secondaryPrivateIpAddressCount" +_ARl = "AllowReassignment" +_aRl = "allowReassignment" +_IPS = "Ipv4PrefixSpecification" +_iPp = "ipv4Prefix" +_IPLp = "Ipv4PrefixesList" +_APIA = "AssignedPrivateIpAddress" +_APIAL = "AssignedPrivateIpAddressList" +_APIAO = "AssignPrivateIpAddressesOutput" +_cAPIARo = "com.amazonaws.ec2#AssignPrivateIpAddressesResult" +_APIAs = "AssignedPrivateIpAddresses" +_APIAS = "AssignedPrivateIpAddressesSet" +_aPIAS = "assignedPrivateIpAddressesSet" +_AIPs = "AssignedIpv4Prefixes" +_AIPSs = "AssignedIpv4PrefixSet" +_aIPSs = "assignedIpv4PrefixSet" +_APIAss = "AssignPrivateIpAddresses" +_PIAC = "PrivateIpAddressCount" +_IL = "IpList" +_APNGAI = "AssignPrivateNatGatewayAddressInput" +_cAPNGAR = "com.amazonaws.ec2#AssignPrivateNatGatewayAddressRequest" +_NGAS = "NatGatewayAddressStatus" +_ASSIGNING = "ASSIGNING" +_assi = "assigning" +_UNASSIGNING = "UNASSIGNING" +_una = "unassigning" +_ASSOCIATING = "ASSOCIATING" +_DISASSOCIATING = "DISASSOCIATING" +_SUCCEEDED = "SUCCEEDED" +_suc = "succeeded" +_FAILED = "FAILED" +_NGA = "NatGatewayAddress" +_PIri = "PrivateIp" +_pIr = "privateIp" +_IPs = "IsPrimary" +_iPs = "isPrimary" +_FM = "FailureMessage" +_fM = "failureMessage" +_NGAL = "NatGatewayAddressList" +_APNGAO = "AssignPrivateNatGatewayAddressOutput" +_cAPNGARo = "com.amazonaws.ec2#AssignPrivateNatGatewayAddressResult" +_NGAa = "NatGatewayAddresses" +_NGASa = "NatGatewayAddressSet" +_nGAS = "natGatewayAddressSet" +_APNGA = "AssignPrivateNatGatewayAddress" +_EAPI = "EipAllocationPublicIp" +_AAIs = "AssociateAddressInput" +_cAARom = "com.amazonaws.ec2#AssociateAddressRequest" +_ARll = "AllowReassociation" +_aRll = "allowReassociation" +_AAOs = "AssociateAddressOutput" +_cAARoma = "com.amazonaws.ec2#AssociateAddressResult" +_AAss = "AssociateAddress" +_ASCI = "ApplicationStatusCheckId" +_IIL = "InstanceIdList" +_CTKVRP = "CustomTagKeyValueRequestPair" +_CKVPRS = "CustomKeyValuePairRequestSet" +_AASCI = "AssociateApplicationStatusCheckInput" +_cAASCR = "com.amazonaws.ec2#AssociateApplicationStatusCheckRequest" +_TTA = "TargetTagAssociations" +_TTAa = "TargetTagAssociation" +_IIn = "InstanceIds" +_SARO = "SuccessfulAssociationResponseObject" +_aSCI = "applicationStatusCheckId" +_ATs = "AssociationType" +_aTs = "associationType" +_AVs = "AssociationValue" +_aVs = "associationValue" +_SARS = "SuccessfulAssociationResponseSet" +_UARO = "UnsuccessfulAssociationResponseObject" +_UARS = "UnsuccessfulAssociationResponseSet" +_AASCO = "AssociateApplicationStatusCheckOutput" +_cAASCRo = "com.amazonaws.ec2#AssociateApplicationStatusCheckResult" +_SR = "SuccessfulResults" +_SRS = "SuccessfulResultSet" +_sRS = "successfulResultSet" +_UR = "UnsuccessfulResults" +_URS = "UnsuccessfulResultSet" +_uRS = "unsuccessfulResultSet" +_AASC = "AssociateApplicationStatusCheck" +_ACRBOIs = "AssociateCapacityReservationBillingOwnerInput" +_cACRBORom = "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerRequest" +_URBOI = "UnusedReservationBillingOwnerId" +_ACRBOOs = "AssociateCapacityReservationBillingOwnerOutput" +_cACRBORoma = "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerResult" +_ACRBOs = "AssociateCapacityReservationBillingOwner" +_ACVTNI = "AssociateClientVpnTargetNetworkInput" +_cACVTNR = "com.amazonaws.ec2#AssociateClientVpnTargetNetworkRequest" +_ASC = "AssociationStatusCode" +_af = "association_failed" +_af_ = "association-failed" +_ASs = "AssociationStatus" +_ACVTNO = "AssociateClientVpnTargetNetworkOutput" +_cACVTNRo = "com.amazonaws.ec2#AssociateClientVpnTargetNetworkResult" +_ACVTN = "AssociateClientVpnTargetNetwork" +_DDOI = "DefaultingDhcpOptionsId" +_ADOI = "AssociateDhcpOptionsInput" +_cADOR = "com.amazonaws.ec2#AssociateDhcpOptionsRequest" +_DOI = "DhcpOptionsId" +_ADOO = "AssociateDhcpOptionsOutput" +_sU = "smithy.api#Unit" +_ADO = "AssociateDhcpOptions" +_CIe = "CertificateId" +_RIo = "RoleId" +_AECIRI = "AssociateEnclaveCertificateIamRoleInput" +_cAECIRR = "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleRequest" +_CAe = "CertificateArn" +_RAo = "RoleArn" +_AECIRO = "AssociateEnclaveCertificateIamRoleOutput" +_cAECIRRo = "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleResult" +_CSBN = "CertificateS3BucketName" +_cSBN = "certificateS3BucketName" +_CSOK = "CertificateS3ObjectKey" +_cSOK = "certificateS3ObjectKey" +_EKKI = "EncryptionKmsKeyId" +_eKKI = "encryptionKmsKeyId" +_AECIR = "AssociateEnclaveCertificateIamRole" +_IIPS = "IamInstanceProfileSpecification" +_AIIPI = "AssociateIamInstanceProfileInput" +_cAIIPR = "com.amazonaws.ec2#AssociateIamInstanceProfileRequest" +_IIP = "IamInstanceProfile" +_IIPAS = "IamInstanceProfileAssociationState" +_ASSOCIATED = "ASSOCIATED" +_DISASSOCIATED = "DISASSOCIATED" +_IIPA = "IamInstanceProfileAssociation" +_iIP = "iamInstanceProfile" +_Ti = "Timestamp" +_ti = "timestamp" +_AIIPO = "AssociateIamInstanceProfileOutput" +_cAIIPRo = "com.amazonaws.ec2#AssociateIamInstanceProfileResult" +_iIPA = "iamInstanceProfileAssociation" +_AIIP = "AssociateIamInstanceProfile" +_DHI = "DedicatedHostId" +_DHIL = "DedicatedHostIdList" +_IEWAR = "InstanceEventWindowAssociationRequest" +_ITn = "InstanceTags" +_ITns = "InstanceTag" +_DHIe = "DedicatedHostIds" +_IEWI = "InstanceEventWindowId" +_AIEWI = "AssociateInstanceEventWindowInput" +_cAIEWR = "com.amazonaws.ec2#AssociateInstanceEventWindowRequest" +_ATss = "AssociationTarget" +_IEWAT = "InstanceEventWindowAssociationTarget" +_IIS = "InstanceIdSet" +_iIS = "instanceIdSet" +_DHIS = "DedicatedHostIdSet" +_dHIS = "dedicatedHostIdSet" +_IEWCE = "InstanceEventWindowCronExpression" +_IEWS = "InstanceEventWindowState" +_cre = "creating" +_Ho = "Hour" +_WD = "WeekDay" +_sun = "sunday" +_mon = "monday" +_tu = "tuesday" +_w = "wednesday" +_th = "thursday" +_fri = "friday" +_sa = "saturday" +_IEWTR = "InstanceEventWindowTimeRange" +_SWD = "StartWeekDay" +_sWD = "startWeekDay" +_SH = "StartHour" +_sH = "startHour" +_EWD = "EndWeekDay" +_eWD = "endWeekDay" +_EH = "EndHour" +_eH = "endHour" +_IEWTRL = "InstanceEventWindowTimeRangeList" +_IEW = "InstanceEventWindow" +_iEWI = "instanceEventWindowId" +_TRi = "TimeRanges" +_TRSi = "TimeRangeSet" +_tRSi = "timeRangeSet" +_CE = "CronExpression" +_cE = "cronExpression" +_aTss = "associationTarget" +_AIEWO = "AssociateInstanceEventWindowOutput" +_cAIEWRo = "com.amazonaws.ec2#AssociateInstanceEventWindowResult" +_iEW = "instanceEventWindow" +_AIEW = "AssociateInstanceEventWindow" +_AIBI = "AssociateIpamByoasnInput" +_cAIBR = "com.amazonaws.ec2#AssociateIpamByoasnRequest" +_AIBO = "AssociateIpamByoasnOutput" +_cAIBRo = "com.amazonaws.ec2#AssociateIpamByoasnResult" +_aA = "asnAssociation" +_AIB = "AssociateIpamByoasn" +_IIp = "IpamId" +_IRDI = "IpamResourceDiscoveryId" +_AIRDI = "AssociateIpamResourceDiscoveryInput" +_cAIRDR = "com.amazonaws.ec2#AssociateIpamResourceDiscoveryRequest" +_IRDAI = "IpamResourceDiscoveryAssociationId" +_IARDS = "IpamAssociatedResourceDiscoveryStatus" +_ACTIVE = "ACTIVE" +_NF = "NOT_FOUND" +_nf__ = "not-found" +_IRDAS = "IpamResourceDiscoveryAssociationState" +_AIP_ = "ASSOCIATE_IN_PROGRESS" +_aip = "associate-in-progress" +_AC_ = "ASSOCIATE_COMPLETE" +_ac_ = "associate-complete" +_AF_ = "ASSOCIATE_FAILED" +_af__ = "associate-failed" +_DIP = "DISASSOCIATE_IN_PROGRESS" +_dip = "disassociate-in-progress" +_DC_ = "DISASSOCIATE_COMPLETE" +_dc = "disassociate-complete" +_DF = "DISASSOCIATE_FAILED" +_df = "disassociate-failed" +_IIP_ = "ISOLATE_IN_PROGRESS" +_iip = "isolate-in-progress" +_IC_ = "ISOLATE_COMPLETE" +_ic = "isolate-complete" +_RIP = "RESTORE_IN_PROGRESS" +_rip = "restore-in-progress" +_IRDA = "IpamResourceDiscoveryAssociation" +_iRDAI = "ipamResourceDiscoveryAssociationId" +_IRDAA = "IpamResourceDiscoveryAssociationArn" +_iRDAA = "ipamResourceDiscoveryAssociationArn" +_iRDI = "ipamResourceDiscoveryId" +_iIp = "ipamId" +_IApa = "IpamArn" +_iAp = "ipamArn" +_IR = "IpamRegion" +_iRp = "ipamRegion" +_ID = "IsDefault" +_iD = "isDefault" +_RDS = "ResourceDiscoveryStatus" +_rDS = "resourceDiscoveryStatus" +_AIRDO = "AssociateIpamResourceDiscoveryOutput" +_cAIRDRo = "com.amazonaws.ec2#AssociateIpamResourceDiscoveryResult" +_iRDA = "ipamResourceDiscoveryAssociation" +_AIRD = "AssociateIpamResourceDiscovery" +_ANGAI = "AssociateNatGatewayAddressInput" +_cANGAR = "com.amazonaws.ec2#AssociateNatGatewayAddressRequest" +_ANGAO = "AssociateNatGatewayAddressOutput" +_cANGARo = "com.amazonaws.ec2#AssociateNatGatewayAddressResult" +_ANGA = "AssociateNatGatewayAddress" +_RSI = "RouteServerId" +_ARSI = "AssociateRouteServerInput" +_cARSR = "com.amazonaws.ec2#AssociateRouteServerRequest" +_RSAS = "RouteServerAssociationState" +_RSA = "RouteServerAssociation" +_rSI = "routeServerId" +_ARSO = "AssociateRouteServerOutput" +_cARSRo = "com.amazonaws.ec2#AssociateRouteServerResult" +_rSA = "routeServerAssociation" +_ARS = "AssociateRouteServer" +_RGI = "RouteGatewayId" +_RTIo = "RouteTableId" +_ARTI = "AssociateRouteTableInput" +_cARTR = "com.amazonaws.ec2#AssociateRouteTableRequest" +_rTIo = "routeTableId" +_RTASC = "RouteTableAssociationStateCode" +_RTAS = "RouteTableAssociationState" +_ARTO = "AssociateRouteTableOutput" +_cARTRo = "com.amazonaws.ec2#AssociateRouteTableResult" +_ASss = "AssociationState" +_aSs = "associationState" +_ART = "AssociateRouteTable" +_ASGVI = "AssociateSecurityGroupVpcInput" +_cASGVR = "com.amazonaws.ec2#AssociateSecurityGroupVpcRequest" +_GIr = "GroupId" +_SGVAS = "SecurityGroupVpcAssociationState" +_df_ = "disassociation_failed" +_df__ = "disassociation-failed" +_ASGVO = "AssociateSecurityGroupVpcOutput" +_cASGVRo = "com.amazonaws.ec2#AssociateSecurityGroupVpcResult" +_ASGV = "AssociateSecurityGroupVpc" +_ASCBI = "AssociateSubnetCidrBlockInput" +_cASCBR = "com.amazonaws.ec2#AssociateSubnetCidrBlockRequest" +_IIPI = "Ipv6IpamPoolId" +_INL = "Ipv6NetmaskLength" +_SCAI = "SubnetCidrAssociationId" +_ISp = "IpSource" +_ama = "amazon" +_b = "byoip" +_no = "none" +_IAA = "Ipv6AddressAttribute" +_pu = "public" +_priv = "private" +_SCBSC = "SubnetCidrBlockStateCode" +_SCBS = "SubnetCidrBlockState" +_SICBA = "SubnetIpv6CidrBlockAssociation" +_ICBSp = "Ipv6CidrBlockState" +_iCBSp = "ipv6CidrBlockState" +_iAA = "ipv6AddressAttribute" +_iSp = "ipSource" +_ASCBO = "AssociateSubnetCidrBlockOutput" +_cASCBRo = "com.amazonaws.ec2#AssociateSubnetCidrBlockResult" +_ICBA = "Ipv6CidrBlockAssociation" +_iCBA = "ipv6CidrBlockAssociation" +_ASCB = "AssociateSubnetCidrBlock" +_TGSIL = "TransitGatewaySubnetIdList" +_ATGMDI = "AssociateTransitGatewayMulticastDomainInput" +_cATGMDR = "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainRequest" +_ATGMDO = "AssociateTransitGatewayMulticastDomainOutput" +_cATGMDRo = "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainResult" +_ATGMD = "AssociateTransitGatewayMulticastDomain" +_TGPTI = "TransitGatewayPolicyTableId" +_ATGPTI = "AssociateTransitGatewayPolicyTableInput" +_cATGPTR = "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableRequest" +_TGASr = "TransitGatewayAssociationState" +_TGPTA = "TransitGatewayPolicyTableAssociation" +_tGPTI = "transitGatewayPolicyTableId" +_ATGPTO = "AssociateTransitGatewayPolicyTableOutput" +_cATGPTRo = "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableResult" +_Ass = "Association" +_assoc = "association" +_ATGPT = "AssociateTransitGatewayPolicyTable" +_TGRTI = "TransitGatewayRouteTableId" +_ATGRTI = "AssociateTransitGatewayRouteTableInput" +_cATGRTR = "com.amazonaws.ec2#AssociateTransitGatewayRouteTableRequest" +_TGAr = "TransitGatewayAssociation" +_tGRTI = "transitGatewayRouteTableId" +_ATGRTO = "AssociateTransitGatewayRouteTableOutput" +_cATGRTRo = "com.amazonaws.ec2#AssociateTransitGatewayRouteTableResult" +_ATGRT = "AssociateTransitGatewayRouteTable" +_ATII = "AssociateTrunkInterfaceInput" +_cATIR = "com.amazonaws.ec2#AssociateTrunkInterfaceRequest" +_BII = "BranchInterfaceId" +_TII = "TrunkInterfaceId" +_VIl = "VlanId" +_GK = "GreKey" +_TIAI = "TrunkInterfaceAssociationId" +_IPT = "InterfaceProtocolType" +_VLAN = "VLAN" +_GRE = "GRE" +_TIA = "TrunkInterfaceAssociation" +_bII = "branchInterfaceId" +_tII = "trunkInterfaceId" +_IPn = "InterfaceProtocol" +_iPn = "interfaceProtocol" +_vIl = "vlanId" +_gK = "greKey" +_ATIO = "AssociateTrunkInterfaceOutput" +_cATIRo = "com.amazonaws.ec2#AssociateTrunkInterfaceResult" +_IAn = "InterfaceAssociation" +_iAn = "interfaceAssociation" +_ATIs = "AssociateTrunkInterface" +_IPEIp = "Ipv6PoolEc2Id" +_AVCBI = "AssociateVpcCidrBlockInput" +_cAVCBR = "com.amazonaws.ec2#AssociateVpcCidrBlockRequest" +_ICBNBG = "Ipv6CidrBlockNetworkBorderGroup" +_IPpvo = "Ipv6Pool" +_IIPIp = "Ipv4IpamPoolId" +_INLp = "Ipv4NetmaskLength" +_APICB = "AmazonProvidedIpv6CidrBlock" +_aPICB = "amazonProvidedIpv6CidrBlock" +_VCBSC = "VpcCidrBlockStateCode" +_VCBS = "VpcCidrBlockState" +_VCBA = "VpcCidrBlockAssociation" +_CBSi = "CidrBlockState" +_cBSi = "cidrBlockState" +_VICBA = "VpcIpv6CidrBlockAssociation" +_iPpv = "ipv6Pool" +_AVCBO = "AssociateVpcCidrBlockOutput" +_cAVCBRo = "com.amazonaws.ec2#AssociateVpcCidrBlockResult" +_CBA = "CidrBlockAssociation" +_cBA = "cidrBlockAssociation" +_AVCB = "AssociateVpcCidrBlock" +_GISL = "GroupIdStringList" +_gIr = "groupId" +_ACLVI = "AttachClassicLinkVpcInput" +_cACLVR = "com.amazonaws.ec2#AttachClassicLinkVpcRequest" +_G = "Groups" +_ACLVO = "AttachClassicLinkVpcOutput" +_cACLVRo = "com.amazonaws.ec2#AttachClassicLinkVpcResult" +_ACLV = "AttachClassicLinkVpc" +_IIm = "ImageId" +_IWNR = "ImageWatermarkNameRequest" +_AIWI = "AttachImageWatermarkInput" +_cAIWR = "com.amazonaws.ec2#AttachImageWatermarkRequest" +_WN = "WatermarkName" +_AIWO = "AttachImageWatermarkOutput" +_cAIWRo = "com.amazonaws.ec2#AttachImageWatermarkResult" +_WK = "WatermarkKey" +_wK = "watermarkKey" +_AIW = "AttachImageWatermark" +_IGI = "InternetGatewayId" +_AIGI = "AttachInternetGatewayInput" +_cAIGR = "com.amazonaws.ec2#AttachInternetGatewayRequest" +_iGI = "internetGatewayId" +_AIGO = "AttachInternetGatewayOutput" +_AIG = "AttachInternetGateway" +_ESUS = "EnaSrdUdpSpecification" +_ESUE = "EnaSrdUdpEnabled" +_ESS = "EnaSrdSpecification" +_ESE = "EnaSrdEnabled" +_ANII = "AttachNetworkInterfaceInput" +_cANIR = "com.amazonaws.ec2#AttachNetworkInterfaceRequest" +_NCI = "NetworkCardIndex" +_EQC = "EnaQueueCount" +_DI = "DeviceIndex" +_dI = "deviceIndex" +_ANIO = "AttachNetworkInterfaceOutput" +_cANIRo = "com.amazonaws.ec2#AttachNetworkInterfaceResult" +_nCI = "networkCardIndex" +_ANI = "AttachNetworkInterface" +_VAII = "VerifiedAccessInstanceId" +_VATPI = "VerifiedAccessTrustProviderId" +_AVATPI = "AttachVerifiedAccessTrustProviderInput" +_cAVATPR = "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderRequest" +_VAICSD = "VerifiedAccessInstanceCustomSubDomain" +_SD = "SubDomain" +_sD = "subDomain" +_Na = "Nameservers" +_NS = "NameserverSet" +_nS = "nameserverSet" +_DTPT = "DeviceTrustProviderType" +_j = "jamf" +_cro = "crowdstrike" +_ju = "jumpcloud" +_TPT = "TrustProviderType" +_use = "user" +_dev = "device" +_UTPT = "UserTrustProviderType" +_iic = "iam_identity_center" +_iic_ = "iam-identity-center" +_oi = "oidc" +_VATPC = "VerifiedAccessTrustProviderCondensed" +_vATPI = "verifiedAccessTrustProviderId" +_tPT = "trustProviderType" +_uTPT = "userTrustProviderType" +_dTPT = "deviceTrustProviderType" +_VATPCL = "VerifiedAccessTrustProviderCondensedList" +_VAI = "VerifiedAccessInstance" +_vAII = "verifiedAccessInstanceId" +_VATP = "VerifiedAccessTrustProviders" +_VATPS = "VerifiedAccessTrustProviderSet" +_vATPS = "verifiedAccessTrustProviderSet" +_LUTa = "LastUpdatedTime" +_lUTa = "lastUpdatedTime" +_FE = "FipsEnabled" +_fE = "fipsEnabled" +_CECSD = "CidrEndpointsCustomSubDomain" +_cECSD = "cidrEndpointsCustomSubDomain" +_DO = "DeviceOptions" +_TI = "TenantId" +_tI = "tenantId" +_PSKU = "PublicSigningKeyUrl" +_pSKU = "publicSigningKeyUrl" +_NAOO = "NativeApplicationOidcOptions" +_PSKE = "PublicSigningKeyEndpoint" +_pSKE = "publicSigningKeyEndpoint" +_Is = "Issuer" +_iss = "issuer" +_AE = "AuthorizationEndpoint" +_aE = "authorizationEndpoint" +_TE = "TokenEndpoint" +_tE = "tokenEndpoint" +_UIEs = "UserInfoEndpoint" +_uIE = "userInfoEndpoint" +_CIl = "ClientId" +_cIl = "clientId" +_Sc = "Scope" +_sc = "scope" +_CST = "ClientSecretType" +_smith = "smithy.api#sensitive" +_OO = "OidcOptions" +_CSl = "ClientSecret" +_cSl = "clientSecret" +_KKA = "KmsKeyArn" +_VASSR = "VerifiedAccessSseSpecificationResponse" +_CMKE = "CustomerManagedKeyEnabled" +_cMKE = "customerManagedKeyEnabled" +_kKA = "kmsKeyArn" +_VATPe = "VerifiedAccessTrustProvider" +_oO = "oidcOptions" +_dO = "deviceOptions" +_PRN = "PolicyReferenceName" +_pRN = "policyReferenceName" +_SSs = "SseSpecification" +_sSs = "sseSpecification" +_nAOO = "nativeApplicationOidcOptions" +_AVATPO = "AttachVerifiedAccessTrustProviderOutput" +_cAVATPRo = "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderResult" +_vATP = "verifiedAccessTrustProvider" +_vAI = "verifiedAccessInstance" +_AVATP = "AttachVerifiedAccessTrustProvider" +_BI = "BoxedInteger" +_VIo = "VolumeId" +_AVIt = "AttachVolumeInput" +_cAVR = "com.amazonaws.ec2#AttachVolumeRequest" +_Dev = "Device" +_ECI = "EbsCardIndex" +_VAS = "VolumeAttachmentState" +_at = "attaching" +_att = "attached" +_det = "detaching" +_deta = "detached" +_bu = "busy" +_AVO = "AttachVolumeOutput" +_cVA = "com.amazonaws.ec2#VolumeAttachment" +_DOT = "DeleteOnTermination" +_dOT = "deleteOnTermination" +_ARs = "AssociatedResource" +_aRs = "associatedResource" +_IOS = "InstanceOwningService" +_iOS = "instanceOwningService" +_eCI = "ebsCardIndex" +_vIo = "volumeId" +_ATtt = "AttachTime" +_aTtt = "attachTime" +_AVtt = "AttachVolume" +_VGI = "VpnGatewayId" +_AVGI = "AttachVpnGatewayInput" +_cAVGR = "com.amazonaws.ec2#AttachVpnGatewayRequest" +_ASt = "AttachmentStatus" +_VA = "VpcAttachment" +_AVGO = "AttachVpnGatewayOutput" +_cAVGRo = "com.amazonaws.ec2#AttachVpnGatewayResult" +_At = "Attachment" +_atta = "attachment" +_AVG = "AttachVpnGateway" +_ACVII = "AuthorizeClientVpnIngressInput" +_cACVIR = "com.amazonaws.ec2#AuthorizeClientVpnIngressRequest" +_TNC = "TargetNetworkCidr" +_AGI = "AccessGroupId" +_AAG = "AuthorizeAllGroups" +_CVARSC = "ClientVpnAuthorizationRuleStatusCode" +_au = "authorizing" +_rev = "revoking" +_CVARS = "ClientVpnAuthorizationRuleStatus" +_ACVIO = "AuthorizeClientVpnIngressOutput" +_cACVIRo = "com.amazonaws.ec2#AuthorizeClientVpnIngressResult" +_ACVI = "AuthorizeClientVpnIngress" +_IRp = "IpRange" +_CIi = "CidrIp" +_cIi = "cidrIp" +_IRL = "IpRangeList" +_IRpv = "Ipv6Range" +_CIid = "CidrIpv6" +_cIid = "cidrIpv6" +_IRLp = "Ipv6RangeList" +_PLIL = "PrefixListIdList" +_UIGP = "UserIdGroupPair" +_UIs = "UserId" +_uI = "userId" +_GN = "GroupName" +_gN = "groupName" +_PSe = "PeeringStatus" +_pSe = "peeringStatus" +_UIGPL = "UserIdGroupPairList" +_IPpe = "IpPermission" +_IPpr = "IpProtocol" +_iPpr = "ipProtocol" +_FP = "FromPort" +_fP = "fromPort" +_TP = "ToPort" +_tP = "toPort" +_UIGPs = "UserIdGroupPairs" +_gr = "groups" +_IRpa = "IpRanges" +_iRpa = "ipRanges" +_IRpva = "Ipv6Ranges" +_iRpv = "ipv6Ranges" +_PLIr = "PrefixListIds" +_pLIr = "prefixListIds" +_IPLpe = "IpPermissionList" +_ASGEI = "AuthorizeSecurityGroupEgressInput" +_cASGER = "com.amazonaws.ec2#AuthorizeSecurityGroupEgressRequest" +_SSGN = "SourceSecurityGroupName" +_sSGN = "sourceSecurityGroupName" +_SSGOI = "SourceSecurityGroupOwnerId" +_sSGOI = "sourceSecurityGroupOwnerId" +_IPper = "IpPermissions" +_iPpe = "ipPermissions" +_PLRI = "PrefixListResourceId" +_RSG = "ReferencedSecurityGroup" +_SGRI = "SecurityGroupRuleId" +_sGRI = "securityGroupRuleId" +_GOI = "GroupOwnerId" +_gOI = "groupOwnerId" +_IE = "IsEgress" +_iE = "isEgress" +_CIidr = "CidrIpv4" +_cIidr = "cidrIpv4" +_RGIe = "ReferencedGroupInfo" +_rGI = "referencedGroupInfo" +_SGRA = "SecurityGroupRuleArn" +_sGRA = "securityGroupRuleArn" +_SGRL = "SecurityGroupRuleList" +_ASGEO = "AuthorizeSecurityGroupEgressOutput" +_cASGERo = "com.amazonaws.ec2#AuthorizeSecurityGroupEgressResult" +_SGRe = "SecurityGroupRules" +_SGRSe = "SecurityGroupRuleSet" +_sGRSe = "securityGroupRuleSet" +_ASGE = "AuthorizeSecurityGroupEgress" +_SGN = "SecurityGroupName" +_ASGII = "AuthorizeSecurityGroupIngressInput" +_cASGIR = "com.amazonaws.ec2#AuthorizeSecurityGroupIngressRequest" +_ASGIO = "AuthorizeSecurityGroupIngressOutput" +_cASGIRo = "com.amazonaws.ec2#AuthorizeSecurityGroupIngressResult" +_ASGI = "AuthorizeSecurityGroupIngress" +_BB = "BoxedBoolean" +_IIRAI = "IpamInternetRegistryAssociationId" +_BMIRPRI = "BatchModifyIpamRoutingPolicyRegistrationsInput" +_cBMIRPRR = "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsRequest" +_DJ = "DeltaJson" +_Fo = "Force" +_IRPRDS = "IpamRoutingPolicyRegistrationDeltaState" +_pub = "published" +_IRPRD = "IpamRoutingPolicyRegistrationDelta" +_DIe = "DeltaId" +_dIe = "deltaId" +_dJ = "deltaJson" +_SMta = "StateMessage" +_sMta = "stateMessage" +_BMIRPRO = "BatchModifyIpamRoutingPolicyRegistrationsOutput" +_cBMIRPRRo = "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsResult" +_iRPRD = "ipamRoutingPolicyRegistrationDelta" +_BMIRPR = "BatchModifyIpamRoutingPolicyRegistrations" +_SB = "SecureBlob" +_SSUPS = "S3StorageUploadPolicySignature" +_SSt = "S3Storage" +_AWSAKI = "AWSAccessKeyId" +_Bu = "Bucket" +_buc = "bucket" +_Pre = "Prefix" +_pre = "prefix" +_UP = "UploadPolicy" +_uP = "uploadPolicy" +_UPS = "UploadPolicySignature" +_uPS = "uploadPolicySignature" +_Sto = "Storage" +_S_ = "S3" +_BIIu = "BundleInstanceInput" +_cBIR = "com.amazonaws.ec2#BundleInstanceRequest" +_BTE = "BundleTaskError" +_BTS = "BundleTaskState" +_wfs = "waiting_for_shutdown" +_wfs_ = "waiting-for-shutdown" +_bun = "bundling" +_sto = "storing" +_comp = "complete" +_BT = "BundleTask" +_BIu = "BundleId" +_bI = "bundleId" +_ST = "StartTime" +_sTt = "startTime" +_UT = "UpdateTime" +_uT = "updateTime" +_stor = "storage" +_Prog = "Progress" +_prog = "progress" +_BIO = "BundleInstanceOutput" +_cBIRo = "com.amazonaws.ec2#BundleInstanceResult" +_BIT = "BundleInstanceTask" +_bIT = "bundleInstanceTask" +_BIun = "BundleInstance" +_CBTI = "CancelBundleTaskInput" +_cCBTR = "com.amazonaws.ec2#CancelBundleTaskRequest" +_CBTO = "CancelBundleTaskOutput" +_cCBTRo = "com.amazonaws.ec2#CancelBundleTaskResult" +_CBT = "CancelBundleTask" +_ACC = "ApplyCancellationCharges" +_CWD = "COMMITMENT_WIND_DOWN" +_cwd = "commitment-wind-down" +_CRCQI = "CapacityReservationCancellationQuoteId" +_CCRI = "CancelCapacityReservationInput" +_cCCRR = "com.amazonaws.ec2#CancelCapacityReservationRequest" +_QI = "QuoteId" +_CCRO = "CancelCapacityReservationOutput" +_cCCRRo = "com.amazonaws.ec2#CancelCapacityReservationResult" +_CCR = "CancelCapacityReservation" +_CRFI = "CapacityReservationFleetId" +_CRFIS = "CapacityReservationFleetIdSet" +_CCRFI = "CancelCapacityReservationFleetsInput" +_cCCRFR = "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest" +_CRFIa = "CapacityReservationFleetIds" +_CCRFEC = "CancelCapacityReservationFleetErrorCode" +_CCRFEM = "CancelCapacityReservationFleetErrorMessage" +_CCRFE = "CancelCapacityReservationFleetError" +_FCRFCR = "FailedCapacityReservationFleetCancellationResult" +_cRFI = "capacityReservationFleetId" +_cCRFE = "cancelCapacityReservationFleetError" +_FCRFCRS = "FailedCapacityReservationFleetCancellationResultSet" +_CRFS = "CapacityReservationFleetState" +_SUBMITTED = "SUBMITTED" +_subm = "submitted" +_MODIFYING = "MODIFYING" +_PF__ = "PARTIALLY_FULFILLED" +_pf___ = "partially_fulfilled" +_EXPIRING = "EXPIRING" +_exp = "expiring" +_EXPIRED = "EXPIRED" +_CANCELLING = "CANCELLING" +_CANCELLED = "CANCELLED" +_can = "cancelled" +_CRFCS = "CapacityReservationFleetCancellationState" +_CFS = "CurrentFleetState" +_cFS = "currentFleetState" +_PFS = "PreviousFleetState" +_pFS = "previousFleetState" +_CRFCSS = "CapacityReservationFleetCancellationStateSet" +_CCRFO = "CancelCapacityReservationFleetsOutput" +_cCCRFRo = "com.amazonaws.ec2#CancelCapacityReservationFleetsResult" +_SFC = "SuccessfulFleetCancellations" +_SFCS = "SuccessfulFleetCancellationSet" +_sFCS = "successfulFleetCancellationSet" +_FFC = "FailedFleetCancellations" +_FFCS = "FailedFleetCancellationSet" +_fFCS = "failedFleetCancellationSet" +_CCRF = "CancelCapacityReservationFleets" +_CTI = "ConversionTaskId" +_CCTI = "CancelConversionTaskInput" +_cCCR = "com.amazonaws.ec2#CancelConversionRequest" +_cTI = "conversionTaskId" +_RM = "ReasonMessage" +_rM = "reasonMessage" +_CCTO = "CancelConversionTaskOutput" +_CCT = "CancelConversionTask" +_DPRI = "DeclarativePoliciesReportId" +_CDPRI = "CancelDeclarativePoliciesReportInput" +_cCDPRR = "com.amazonaws.ec2#CancelDeclarativePoliciesReportRequest" +_RIep = "ReportId" +_CDPRO = "CancelDeclarativePoliciesReportOutput" +_cCDPRRo = "com.amazonaws.ec2#CancelDeclarativePoliciesReportResult" +_CDPR = "CancelDeclarativePoliciesReport" +_EVTI = "ExportVmTaskId" +_CETI = "CancelExportTaskInput" +_cCETR = "com.amazonaws.ec2#CancelExportTaskRequest" +_ETI = "ExportTaskId" +_eTI = "exportTaskId" +_CETO = "CancelExportTaskOutput" +_CET = "CancelExportTask" +_CILPI = "CancelImageLaunchPermissionInput" +_cCILPR = "com.amazonaws.ec2#CancelImageLaunchPermissionRequest" +_CILPO = "CancelImageLaunchPermissionOutput" +_cCILPRo = "com.amazonaws.ec2#CancelImageLaunchPermissionResult" +_CILP = "CancelImageLaunchPermission" +_ITI = "ImportTaskId" +_CITI = "CancelImportTaskInput" +_cCITR = "com.amazonaws.ec2#CancelImportTaskRequest" +_CRa = "CancelReason" +_CITO = "CancelImportTaskOutput" +_cCITRo = "com.amazonaws.ec2#CancelImportTaskResult" +_iTI = "importTaskId" +_PSre = "PreviousState" +_pSre = "previousState" +_CIT = "CancelImportTask" +_RILI = "ReservedInstancesListingId" +_CRILI = "CancelReservedInstancesListingInput" +_cCRILR = "com.amazonaws.ec2#CancelReservedInstancesListingRequest" +_rILI = "reservedInstancesListingId" +_LSi = "ListingState" +_sol = "sold" +_iC = "instanceCount" +_ICL = "InstanceCountList" +_CCV = "CurrencyCodeValues" +_USD = "USD" +_Dou = "Double" +_Lo = "Long" +_PSri = "PriceSchedule" +_Act = "Active" +_CC = "CurrencyCode" +_cC = "currencyCode" +_Pric = "Price" +_pric = "price" +_Te = "Term" +_te = "term" +_PSL = "PriceScheduleList" +_LSis = "ListingStatus" +_cl = "closed" +_RIL = "ReservedInstancesListing" +_CD = "CreateDate" +_cD = "createDate" +_ICn = "InstanceCounts" +_iCn = "instanceCounts" +_PSric = "PriceSchedules" +_pSri = "priceSchedules" +_RIIes = "ReservedInstancesId" +_rII = "reservedInstancesId" +_UD = "UpdateDate" +_uD = "updateDate" +_RILL = "ReservedInstancesListingList" +_CRILO = "CancelReservedInstancesListingOutput" +_cCRILRo = "com.amazonaws.ec2#CancelReservedInstancesListingResult" +_RILe = "ReservedInstancesListings" +_RILS = "ReservedInstancesListingsSet" +_rILS = "reservedInstancesListingsSet" +_CRIL = "CancelReservedInstancesListing" +_SFRI = "SpotFleetRequestId" +_SFRIL = "SpotFleetRequestIdList" +_CSFRI = "CancelSpotFleetRequestsInput" +_cCSFRR = "com.amazonaws.ec2#CancelSpotFleetRequestsRequest" +_SFRIp = "SpotFleetRequestIds" +_sFRI = "spotFleetRequestId" +_TIe = "TerminateInstances" +_tIe = "terminateInstances" +_BS = "BatchState" +_CR_ = "CANCELLED_RUNNING" +_cr__ = "cancelled_running" +_CTI_ = "CANCELLED_TERMINATING_INSTANCES" +_ct = "cancelled_terminating" +_CSFRSI = "CancelSpotFleetRequestsSuccessItem" +_CSFRS = "CurrentSpotFleetRequestState" +_cSFRS = "currentSpotFleetRequestState" +_PSFRS = "PreviousSpotFleetRequestState" +_pSFRS = "previousSpotFleetRequestState" +_CSFRSS = "CancelSpotFleetRequestsSuccessSet" +_CBEC = "CancelBatchErrorCode" +_FRIDNE = "FLEET_REQUEST_ID_DOES_NOT_EXIST" +_fRIDNE = "fleetRequestIdDoesNotExist" +_FRIM = "FLEET_REQUEST_ID_MALFORMED" +_fRIM = "fleetRequestIdMalformed" +_FRNICS = "FLEET_REQUEST_NOT_IN_CANCELLABLE_STATE" +_fRNICS = "fleetRequestNotInCancellableState" +_UE = "UNEXPECTED_ERROR" +_uE = "unexpectedError" +_CSFRE = "CancelSpotFleetRequestsError" +_CSFREI = "CancelSpotFleetRequestsErrorItem" +_CSFRES = "CancelSpotFleetRequestsErrorSet" +_CSFRO = "CancelSpotFleetRequestsOutput" +_cCSFRRo = "com.amazonaws.ec2#CancelSpotFleetRequestsResponse" +_SFR = "SuccessfulFleetRequests" +_SFRS = "SuccessfulFleetRequestSet" +_sFRS = "successfulFleetRequestSet" +_UFR = "UnsuccessfulFleetRequests" +_UFRS = "UnsuccessfulFleetRequestSet" +_uFRS = "unsuccessfulFleetRequestSet" +_CSFR = "CancelSpotFleetRequests" +_SIRIL = "SpotInstanceRequestIdList" +_CSIRI = "CancelSpotInstanceRequestsInput" +_cCSIRR = "com.amazonaws.ec2#CancelSpotInstanceRequestsRequest" +_SIRIp = "SpotInstanceRequestIds" +_CSIRS = "CancelSpotInstanceRequestState" +_op = "open" +_compl = "completed" +_CSIR = "CancelledSpotInstanceRequest" +_CSIRL = "CancelledSpotInstanceRequestList" +_CSIRO = "CancelSpotInstanceRequestsOutput" +_cCSIRRo = "com.amazonaws.ec2#CancelSpotInstanceRequestsResult" +_CSIRa = "CancelledSpotInstanceRequests" +_SIRS = "SpotInstanceRequestSet" +_sIRS = "spotInstanceRequestSet" +_CSIRan = "CancelSpotInstanceRequests" +_CPII = "ConfirmProductInstanceInput" +_cCPIR = "com.amazonaws.ec2#ConfirmProductInstanceRequest" +_PCr = "ProductCode" +_CPIO = "ConfirmProductInstanceOutput" +_cCPIRo = "com.amazonaws.ec2#ConfirmProductInstanceResult" +_CPI = "ConfirmProductInstance" +_CFII = "CopyFpgaImageInput" +_cCFIR = "com.amazonaws.ec2#CopyFpgaImageRequest" +_SFII = "SourceFpgaImageId" +_SRo = "SourceRegion" +_CFIO = "CopyFpgaImageOutput" +_cCFIRo = "com.amazonaws.ec2#CopyFpgaImageResult" +_FII = "FpgaImageId" +_fII = "fpgaImageId" +_CFI = "CopyFpgaImage" +_CICT = "CopyImageClientToken" +_IDR = "ImageDescriptionRequest" +_KKI = "KmsKeyId" +_INR = "ImageNameRequest" +_CII = "CopyImageInput" +_cCIR = "com.amazonaws.ec2#CopyImageRequest" +_En = "Encrypted" +_enc = "encrypted" +_kKI = "kmsKeyId" +_SII = "SourceImageId" +_DOA = "DestinationOutpostArn" +_CITo = "CopyImageTags" +_SCCDM = "SnapshotCopyCompletionDurationMinutes" +_DAZ = "DestinationAvailabilityZone" +_DAZI = "DestinationAvailabilityZoneId" +_CIO = "CopyImageOutput" +_cCIRo = "com.amazonaws.ec2#CopyImageResult" +_iIm = "imageId" +_CIop = "CopyImage" +_SCDMR = "SnapshotCompletionDurationMinutesRequest" +_CSRPSU = "CopySnapshotRequestPSU" +_CSI = "CopySnapshotInput" +_cCSR = "com.amazonaws.ec2#CopySnapshotRequest" +_DRe = "DestinationRegion" +_dRe = "destinationRegion" +_PU = "PresignedUrl" +_pU = "presignedUrl" +_SSI = "SourceSnapshotId" +_CDM = "CompletionDurationMinutes" +_CSO = "CopySnapshotOutput" +_cCSRo = "com.amazonaws.ec2#CopySnapshotResult" +_SIn = "SnapshotId" +_sIn = "snapshotId" +_CSo = "CopySnapshot" +_VT = "VolumeType" +_io = "io1" +_io_ = "io2" +_gp = "gp2" +_sc_ = "sc1" +_st_ = "st1" +_gp_ = "gp3" +_CVI = "CopyVolumesInput" +_cCVR = "com.amazonaws.ec2#CopyVolumesRequest" +_SVI = "SourceVolumeId" +_Io = "Iops" +_Si = "Size" +_MAE = "MultiAttachEnabled" +_Th = "Throughput" +_VAo = "VolumeAttachment" +_VAL = "VolumeAttachmentList" +_OR = "OperatorResponse" +_Man = "Managed" +_man = "managed" +_HBD = "HiddenByDefault" +_hBD = "hiddenByDefault" +_SSET = "SSEType" +_se = "sse_ebs" +_se_ = "sse-ebs" +_sk = "sse_kms" +_sk_ = "sse-kms" +_VS = "VolumeState" +_iu = "in_use" +_iu_ = "in-use" +_Vo = "Volume" +_oA = "outpostArn" +_sVI = "sourceVolumeId" +_iop = "iops" +_vT = "volumeType" +_FR = "FastRestored" +_fR = "fastRestored" +_mAE = "multiAttachEnabled" +_thr = "throughput" +_STs = "SseType" +_sTs = "sseType" +_Op = "Operator" +_ope = "operator" +_VIR = "VolumeInitializationRate" +_vIR = "volumeInitializationRate" +_VAol = "VolumeArn" +_vA = "volumeArn" +_siz = "size" +_CTr = "CreateTime" +_cTr = "createTime" +_Att = "Attachments" +_AStt = "AttachmentSet" +_aSt = "attachmentSet" +_VLo = "VolumeList" +_CVO = "CopyVolumesOutput" +_cCVRo = "com.amazonaws.ec2#CopyVolumesResult" +_Vol = "Volumes" +_VSo = "VolumeSet" +_vS = "volumeSet" +_CV = "CopyVolumes" +_HCPDRO = "HealthCheckPathDestinationRequestObject" +_HCPDRS = "HealthCheckPathDestinationRequestSet" +_HCPSRO = "HealthCheckPathSourceRequestObject" +_HCPRO = "HealthCheckPathRequestObject" +_HCPRL = "HealthCheckPathRequestList" +_IGPS = "InitializationGracePeriodSeconds" +_ISE = "IpScopeEnum" +_PRIVATE = "PRIVATE" +_IVE = "IpVersionEnum" +_IPV = "IPV4" +_IPV_ = "IPV6" +_PN = "PortNumber" +_NPE = "NetworkProtocolEnum" +_HTTP = "HTTP" +_ht = "http" +_HTTPS = "HTTPS" +_htt = "https" +_CASCI = "CreateApplicationStatusCheckInput" +_cCASCR = "com.amazonaws.ec2#CreateApplicationStatusCheckRequest" +_HCP = "HealthCheckPaths" +_HCPe = "HealthCheckPath" +_Ag = "Aggregation" +_Pa = "Path" +_IVp = "IpVersion" +_ISpc = "IpScope" +_Int = "Interval" +_Tim = "Timeout" +_FT = "FailureThreshold" +_STu = "SuccessThreshold" +_SCM = "StatusCodeMatcher" +_HCPDROe = "HealthCheckPathDestinationResponseObject" +_HCPDRL = "HealthCheckPathDestinationResponseList" +_HCPSROe = "HealthCheckPathSourceResponseObject" +_HCPROe = "HealthCheckPathResponseObject" +_HCPRLe = "HealthCheckPathResponseList" +_CTKVRPu = "CustomTagKeyValueResponsePair" +_CKVPRSu = "CustomKeyValuePairResponseSet" +_ASCRO = "ApplicationStatusCheckResponseObject" +_agg = "aggregation" +_HCPS = "HealthCheckPathSet" +_hCPS = "healthCheckPathSet" +_pat = "path" +_iVp = "ipVersion" +_iSpc = "ipScope" +_int = "interval" +_tim = "timeout" +_fT = "failureThreshold" +_sTu = "successThreshold" +_sCM = "statusCodeMatcher" +_iGPS = "initializationGracePeriodSeconds" +_LUA = "LastUpdatedAt" +_lUA = "lastUpdatedAt" +_TTAS = "TargetTagAssociationSet" +_tTAS = "targetTagAssociationSet" +_MT = "ModifyTime" +_mT = "modifyTime" +_DTe = "DeletionTime" +_dT = "deletionTime" +_CASCO = "CreateApplicationStatusCheckOutput" +_cCASCRo = "com.amazonaws.ec2#CreateApplicationStatusCheckResult" +_ASCp = "ApplicationStatusCheck" +_aSC = "applicationStatusCheck" +_CASC = "CreateApplicationStatusCheck" +_OF = "OutputFormat" +_CSV = "CSV" +_cs = "csv" +_PARQUET = "PARQUET" +_par = "parquet" +_Sch = "Schedule" +_HOURLY = "HOURLY" +_hou = "hourly" +_CCMDEI = "CreateCapacityManagerDataExportInput" +_cCCMDER = "com.amazonaws.ec2#CreateCapacityManagerDataExportRequest" +_SBN = "S3BucketName" +_SBP = "S3BucketPrefix" +_CMDEI = "CapacityManagerDataExportId" +_CCMDEO = "CreateCapacityManagerDataExportOutput" +_cCCMDERo = "com.amazonaws.ec2#CreateCapacityManagerDataExportResult" +_cMDEI = "capacityManagerDataExportId" +_CCMDE = "CreateCapacityManagerDataExport" +_CRCD = "CapacityReservationCommitmentDuration" +_CRDP = "CapacityReservationDeliveryPreference" +_FIXED = "FIXED" +_fix = "fixed" +_INCREMENTAL = "INCREMENTAL" +_incr = "incremental" +_EDT = "EndDateType" +_unl = "unlimited" +_li = "limited" +_IMC = "InstanceMatchCriteria" +_ta = "targeted" +_CRIP = "CapacityReservationInstancePlatform" +_LU = "LINUX_UNIX" +_LUNIX = "Linux/UNIX" +_RHEL = "RED_HAT_ENTERPRISE_LINUX" +_RHEL_ = "Red Hat Enterprise Linux" +_SL_ = "SUSE_LINUX" +_SL__ = "SUSE Linux" +_WINDOWS = "WINDOWS" +_W = "Windows" +_WWSS = "WINDOWS_WITH_SQL_SERVER" +_WwSS = "Windows with SQL Server" +_WWSSE = "WINDOWS_WITH_SQL_SERVER_ENTERPRISE" +_WwSSE = "Windows with SQL Server Enterprise" +_WWSSS = "WINDOWS_WITH_SQL_SERVER_STANDARD" +_WwSSS = "Windows with SQL Server Standard" +_WWSSW = "WINDOWS_WITH_SQL_SERVER_WEB" +_WwSSW = "Windows with SQL Server Web" +_LWSSS = "LINUX_WITH_SQL_SERVER_STANDARD" +_LwSSS = "Linux with SQL Server Standard" +_LWSSW = "LINUX_WITH_SQL_SERVER_WEB" +_LwSSW = "Linux with SQL Server Web" +_LWSSE = "LINUX_WITH_SQL_SERVER_ENTERPRISE" +_LwSSE = "Linux with SQL Server Enterprise" +_RWSSS = "RHEL_WITH_SQL_SERVER_STANDARD" +_RwSSS = "RHEL with SQL Server Standard" +_RWSSE = "RHEL_WITH_SQL_SERVER_ENTERPRISE" +_RwSSE = "RHEL with SQL Server Enterprise" +_RWSSW = "RHEL_WITH_SQL_SERVER_WEB" +_RwSSW = "RHEL with SQL Server Web" +_RWH = "RHEL_WITH_HA" +_RwH = "RHEL with HA" +_RWHASSS = "RHEL_WITH_HA_AND_SQL_SERVER_STANDARD" +_RwHaSSS = "RHEL with HA and SQL Server Standard" +_RWHASSE = "RHEL_WITH_HA_AND_SQL_SERVER_ENTERPRISE" +_RwHaSSE = "RHEL with HA and SQL Server Enterprise" +_UPL = "UBUNTU_PRO_LINUX" +_UP_ = "Ubuntu Pro" +_PGA = "PlacementGroupArn" +_CRT = "CapacityReservationTenancy" +_ded = "dedicated" +_CCRIr = "CreateCapacityReservationInput" +_cCCRRom = "com.amazonaws.ec2#CreateCapacityReservationRequest" +_IPns = "InstancePlatform" +_Ten = "Tenancy" +_EO = "EbsOptimized" +_ESp = "EphemeralStorage" +_ED = "EndDate" +_SDt = "StartDate" +_CDo = "CommitmentDuration" +_DPel = "DeliveryPreference" +_BL = "BoxedLong" +_CRAD = "CapacityReservationAdjustmentDetails" +_sDt = "startDate" +_eD = "endDate" +_CED = "CommitmentEndDate" +_cED = "commitmentEndDate" +_eDT = "endDateType" +_cDo = "commitmentDuration" +_CRAS = "CapacityReservationAdjustmentStatus" +_req = "requested" +_ap = "applied" +_CAME = "CapacityAllocationMetadataEntry" +_CAML = "CapacityAllocationMetadataList" +_CAa = "CapacityAllocation" +_aTl = "allocationType" +_Cou = "Count" +_cou = "count" +_AMl = "AllocationMetadata" +_AML = "AllocationMetadataList" +_aML = "allocationMetadataList" +_CAap = "CapacityAllocations" +_CBI = "CapacityBlockId" +_CRCI = "CapacityReservationCommitmentInfo" +_CIC = "CommittedInstanceCount" +_cIC = "committedInstanceCount" +_ITnt = "InterruptionType" +_adh = "adhoc" +_ICRAS = "InterruptibleCapacityReservationAllocationStatus" +_up = "updating" +_canc = "canceling" +_cance = "canceled" +_ZSP = "ZeroSizePreference" +_ret = "retain" +_ICA = "InterruptibleCapacityAllocation" +_TIC = "TargetInstanceCount" +_tIC = "targetInstanceCount" +_ICRI = "InterruptibleCapacityReservationId" +_iCRI = "interruptibleCapacityReservationId" +_iTn = "interruptionType" +_zSP = "zeroSizePreference" +_IInt = "InterruptionInfo" +_SCRI = "SourceCapacityReservationId" +_sCRI = "sourceCapacityReservationId" +_CRLS = "CapacityReservationLaunchStatus" +_LAUNCHABLE = "LAUNCHABLE" +_lau = "launchable" +_UNLAUNCHABLE = "UNLAUNCHABLE" +_unla = "unlaunchable" +_CRTa = "CapacityReservationType" +_DEFAULT = "DEFAULT" +_CB_ = "CAPACITY_BLOCK" +_CRS = "CapacityReservationState" +_sch = "scheduled" +_pp__ = "payment_pending" +_pp___ = "payment-pending" +_pf____ = "payment_failed" +_pf_____ = "payment-failed" +_asse = "assessing" +_dela = "delayed" +_uns = "unsupported" +_unav = "unavailable" +_CRap = "CapacityReservation" +_cRI = "capacityReservationId" +_CRA = "CapacityReservationArn" +_cRA = "capacityReservationArn" +_iPns = "instancePlatform" +_ten = "tenancy" +_TICo = "TotalInstanceCount" +_tICo = "totalInstanceCount" +_AIC = "AvailableInstanceCount" +_aIC = "availableInstanceCount" +_eO = "ebsOptimized" +_eSp = "ephemeralStorage" +_iMC = "instanceMatchCriteria" +_pGA = "placementGroupArn" +_CAS = "CapacityAllocationSet" +_cAS = "capacityAllocationSet" +_RTes = "ReservationType" +_rTe = "reservationType" +_uRBOI = "unusedReservationBillingOwnerId" +_CIom = "CommitmentInfo" +_cIom = "commitmentInfo" +_dP = "deliveryPreference" +_cBI = "capacityBlockId" +_Inte = "Interruptible" +_inte = "interruptible" +_iCA = "interruptibleCapacityAllocation" +_iIn = "interruptionInfo" +_ASd = "AdjustmentStatus" +_aSd = "adjustmentStatus" +_ADdj = "AdjustmentDetails" +_aD = "adjustmentDetails" +_OSD = "OriginalStartDate" +_oSD = "originalStartDate" +_LSa = "LaunchStatus" +_lS = "launchStatus" +_CCROr = "CreateCapacityReservationOutput" +_cCCRRoma = "com.amazonaws.ec2#CreateCapacityReservationResult" +_cRa = "capacityReservation" +_CCRr = "CreateCapacityReservation" +_CCRBSI = "CreateCapacityReservationBySplittingInput" +_cCCRBSR = "com.amazonaws.ec2#CreateCapacityReservationBySplittingRequest" +_CCRBSO = "CreateCapacityReservationBySplittingOutput" +_cCCRBSRo = "com.amazonaws.ec2#CreateCapacityReservationBySplittingResult" +_SCR = "SourceCapacityReservation" +_sCR = "sourceCapacityReservation" +_DCR = "DestinationCapacityReservation" +_dCR = "destinationCapacityReservation" +_CCRBS = "CreateCapacityReservationBySplitting" +_CCRCQI = "CreateCapacityReservationCancellationQuoteInput" +_cCCRCQR = "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteRequest" +_CTa = "CancellationTerms" +_CTan = "CancellationType" +_cTa = "cancellationType" +_RSes = "ReservationState" +_rSes = "reservationState" +_CCDH = "ChargeCommitmentDurationHours" +_cCDH = "chargeCommitmentDurationHours" +_CEDh = "ChargeEndDate" +_cEDh = "chargeEndDate" +_CTS = "CancellationTermsSet" +_CRC = "CapacityReservationConfiguration" +_CRCQS = "CapacityReservationCancellationQuoteState" +_CRCQ = "CapacityReservationCancellationQuote" +_cRCQI = "capacityReservationCancellationQuoteId" +_QS = "QuoteState" +_qS = "quoteState" +_CCu = "CurrentConfiguration" +_cCu = "currentConfiguration" +_CTSa = "CancellationTermSet" +_cTS = "cancellationTermSet" +_CCRCQO = "CreateCapacityReservationCancellationQuoteOutput" +_cCCRCQRo = "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteResult" +_cRCQ = "capacityReservationCancellationQuote" +_CCRCQ = "CreateCapacityReservationCancellationQuote" +_CCRDCQI = "CreateCapacityReservationDateChangeQuoteInput" +_cCCRDCQR = "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteRequest" +_NSD = "NewStartDate" +_CRMQI = "CapacityReservationModificationQuoteId" +_MQCC = "ModificationQuoteCurrentConfiguration" +_MRU = "ModificationReservationUpdate" +_NCED = "NewCommitmentEndDate" +_nCED = "newCommitmentEndDate" +_nSD = "newStartDate" +_NCD = "NewCommitmentDuration" +_nCD = "newCommitmentDuration" +_MTo = "ModificationTerms" +_RU = "ReservationUpdate" +_rU = "reservationUpdate" +_CRMQS = "CapacityReservationModificationQuoteState" +_CRMQ = "CapacityReservationModificationQuote" +_cRMQI = "capacityReservationModificationQuoteId" +_mTo = "modificationTerms" +_CCRDCQO = "CreateCapacityReservationDateChangeQuoteOutput" +_cCCRDCQRo = "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteResult" +_cRMQ = "capacityReservationModificationQuote" +_CCRDCQ = "CreateCapacityReservationDateChangeQuote" +_FIMC = "FleetInstanceMatchCriteria" +_BM = "BareMetal" +_REQUIRED = "REQUIRED" +_requ = "required" +_BEBMR = "BaselineEbsBandwidthMbpsRequest" +_PFRR = "PerformanceFactorReferenceRequest" +_PFRSR = "PerformanceFactorReferenceSetRequest" +_CPFR = "CpuPerformanceFactorRequest" +_Ref = "References" +_Refe = "Reference" +_BPFR = "BaselinePerformanceFactorsRequest" +_Cp = "Cpu" +_BP = "BurstablePerformance" +_CM = "CpuManufacturer" +_INTEL = "INTEL" +_intel = "intel" +_APPLE = "APPLE" +_app = "apple" +_CMS = "CpuManufacturerSet" +_EIT = "ExcludedInstanceType" +_EITS = "ExcludedInstanceTypeSet" +_IGn = "InstanceGeneration" +_CURRENT = "CURRENT" +_cur = "current" +_PREVIOUS = "PREVIOUS" +_prev = "previous" +_IGS = "InstanceGenerationSet" +_LSo = "LocalStorage" +_LST = "LocalStorageType" +_HDD = "HDD" +_hd = "hdd" +_SSD = "SSD" +_ssd = "ssd" +_LSTS = "LocalStorageTypeSet" +_MGBPVCR = "MemoryGiBPerVCpuRequest" +_MMBR = "MemoryMiBRequest" +_NBGR = "NetworkBandwidthGbpsRequest" +_NICR = "NetworkInterfaceCountRequest" +_TLSGBR = "TotalLocalStorageGBRequest" +_VCCRR = "VCpuCountRangeRequest" +_IRR = "InstanceRequirementsRequest" +_VCC = "VCpuCount" +_MMB = "MemoryMiB" +_CMp = "CpuManufacturers" +_MGBPVC = "MemoryGiBPerVCpu" +_EITx = "ExcludedInstanceTypes" +_IGns = "InstanceGenerations" +_SMPPOLP = "SpotMaxPricePercentageOverLowestPrice" +_ODMPPOLP = "OnDemandMaxPricePercentageOverLowestPrice" +_RHS = "RequireHibernateSupport" +_NIC = "NetworkInterfaceCount" +_LSTo = "LocalStorageTypes" +_TLSGB = "TotalLocalStorageGB" +_BEBM = "BaselineEbsBandwidthMbps" +_ATc = "AcceleratorTypes" +_AMc = "AcceleratorManufacturers" +_ANc = "AcceleratorNames" +_NBGe = "NetworkBandwidthGbps" +_AITl = "AllowedInstanceTypes" +_MSPAPOOODP = "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" +_BPF = "BaselinePerformanceFactors" +_REIT = "RequireEncryptionInTransit" +_am____ = "a1_medium" +_ame = "a1.medium" +_al_ = "a1_large" +_ala = "a1.large" +_ax = "a1_xlarge" +_axl = "a1.xlarge" +_a__ = "a1_2xlarge" +_axla = "a1.2xlarge" +_a___ = "a1_4xlarge" +_axlar = "a1.4xlarge" +_am_____ = "a1_metal" +_amet = "a1.metal" +_cm = "c1_medium" +_cme = "c1.medium" +_cx = "c1_xlarge" +_cxl = "c1.xlarge" +_cl_ = "c3_large" +_cla = "c3.large" +_cx_ = "c3_xlarge" +_cxla = "c3.xlarge" +_c_ = "c3_2xlarge" +_cxlar = "c3.2xlarge" +_c__ = "c3_4xlarge" +_cxlarg = "c3.4xlarge" +_c___ = "c3_8xlarge" +_cxlarge = "c3.8xlarge" +_cl__ = "c4_large" +_clar = "c4.large" +_cx__ = "c4_xlarge" +_cxlarge_ = "c4.xlarge" +_c____ = "c4_2xlarge" +_cxlarge__ = "c4.2xlarge" +_c_____ = "c4_4xlarge" +_cxlarge___ = "c4.4xlarge" +_c______ = "c4_8xlarge" +_cxlarge____ = "c4.8xlarge" +_cl___ = "c5_large" +_clarg = "c5.large" +_cx___ = "c5_xlarge" +_cxlarge_____ = "c5.xlarge" +_c_______ = "c5_2xlarge" +_cxlarge______ = "c5.2xlarge" +_c________ = "c5_4xlarge" +_cxlarge_______ = "c5.4xlarge" +_c_________ = "c5_9xlarge" +_cxlarge________ = "c5.9xlarge" +_c__________ = "c5_12xlarge" +_cxlarge_________ = "c5.12xlarge" +_c___________ = "c5_18xlarge" +_cxlarge__________ = "c5.18xlarge" +_c____________ = "c5_24xlarge" +_cxlarge___________ = "c5.24xlarge" +_cm_ = "c5_metal" +_cmet = "c5.metal" +_cl____ = "c5a_large" +_cal = "c5a.large" +_cx____ = "c5a_xlarge" +_cax = "c5a.xlarge" +_c_____________ = "c5a_2xlarge" +_caxl = "c5a.2xlarge" +_c______________ = "c5a_4xlarge" +_caxla = "c5a.4xlarge" +_c_______________ = "c5a_8xlarge" +_caxlar = "c5a.8xlarge" +_c________________ = "c5a_12xlarge" +_caxlarg = "c5a.12xlarge" +_c_________________ = "c5a_16xlarge" +_caxlarge = "c5a.16xlarge" +_c__________________ = "c5a_24xlarge" +_caxlarge_ = "c5a.24xlarge" +_cl_____ = "c5ad_large" +_cad = "c5ad.large" +_cx_____ = "c5ad_xlarge" +_cadx = "c5ad.xlarge" +_c___________________ = "c5ad_2xlarge" +_cadxl = "c5ad.2xlarge" +_c____________________ = "c5ad_4xlarge" +_cadxla = "c5ad.4xlarge" +_c_____________________ = "c5ad_8xlarge" +_cadxlar = "c5ad.8xlarge" +_c______________________ = "c5ad_12xlarge" +_cadxlarg = "c5ad.12xlarge" +_c_______________________ = "c5ad_16xlarge" +_cadxlarge = "c5ad.16xlarge" +_c________________________ = "c5ad_24xlarge" +_cadxlarge_ = "c5ad.24xlarge" +_cl______ = "c5d_large" +_cd = "c5d.large" +_cx______ = "c5d_xlarge" +_cdx = "c5d.xlarge" +_c_________________________ = "c5d_2xlarge" +_cdxl = "c5d.2xlarge" +_c__________________________ = "c5d_4xlarge" +_cdxla = "c5d.4xlarge" +_c___________________________ = "c5d_9xlarge" +_cdxlar = "c5d.9xlarge" +_c____________________________ = "c5d_12xlarge" +_cdxlarg = "c5d.12xlarge" +_c_____________________________ = "c5d_18xlarge" +_cdxlarge = "c5d.18xlarge" +_c______________________________ = "c5d_24xlarge" +_cdxlarge_ = "c5d.24xlarge" +_cm__ = "c5d_metal" +_cdm = "c5d.metal" +_cl_______ = "c5n_large" +_cn = "c5n.large" +_cx_______ = "c5n_xlarge" +_cnx = "c5n.xlarge" +_c_______________________________ = "c5n_2xlarge" +_cnxl = "c5n.2xlarge" +_c________________________________ = "c5n_4xlarge" +_cnxla = "c5n.4xlarge" +_c_________________________________ = "c5n_9xlarge" +_cnxlar = "c5n.9xlarge" +_c__________________________________ = "c5n_18xlarge" +_cnxlarg = "c5n.18xlarge" +_cm___ = "c5n_metal" +_cnm = "c5n.metal" +_cm____ = "c6g_medium" +_cgm = "c6g.medium" +_cl________ = "c6g_large" +_cgl = "c6g.large" +_cx________ = "c6g_xlarge" +_cgx = "c6g.xlarge" +_c___________________________________ = "c6g_2xlarge" +_cgxl = "c6g.2xlarge" +_c____________________________________ = "c6g_4xlarge" +_cgxla = "c6g.4xlarge" +_c_____________________________________ = "c6g_8xlarge" +_cgxlar = "c6g.8xlarge" +_c______________________________________ = "c6g_12xlarge" +_cgxlarg = "c6g.12xlarge" +_c_______________________________________ = "c6g_16xlarge" +_cgxlarge = "c6g.16xlarge" +_cm_____ = "c6g_metal" +_cgme = "c6g.metal" +_cm______ = "c6gd_medium" +_cgd = "c6gd.medium" +_cl_________ = "c6gd_large" +_cgdl = "c6gd.large" +_cx_________ = "c6gd_xlarge" +_cgdx = "c6gd.xlarge" +_c________________________________________ = "c6gd_2xlarge" +_cgdxl = "c6gd.2xlarge" +_c_________________________________________ = "c6gd_4xlarge" +_cgdxla = "c6gd.4xlarge" +_c__________________________________________ = "c6gd_8xlarge" +_cgdxlar = "c6gd.8xlarge" +_c___________________________________________ = "c6gd_12xlarge" +_cgdxlarg = "c6gd.12xlarge" +_c____________________________________________ = "c6gd_16xlarge" +_cgdxlarge = "c6gd.16xlarge" +_cm_______ = "c6gd_metal" +_cgdm = "c6gd.metal" +_cm________ = "c6gn_medium" +_cgn = "c6gn.medium" +_cl__________ = "c6gn_large" +_cgnl = "c6gn.large" +_cx__________ = "c6gn_xlarge" +_cgnx = "c6gn.xlarge" +_c_____________________________________________ = "c6gn_2xlarge" +_cgnxl = "c6gn.2xlarge" +_c______________________________________________ = "c6gn_4xlarge" +_cgnxla = "c6gn.4xlarge" +_c_______________________________________________ = "c6gn_8xlarge" +_cgnxlar = "c6gn.8xlarge" +_c________________________________________________ = "c6gn_12xlarge" +_cgnxlarg = "c6gn.12xlarge" +_c_________________________________________________ = "c6gn_16xlarge" +_cgnxlarge = "c6gn.16xlarge" +_cl___________ = "c6i_large" +_cil = "c6i.large" +_cx___________ = "c6i_xlarge" +_cix = "c6i.xlarge" +_c__________________________________________________ = "c6i_2xlarge" +_cixl = "c6i.2xlarge" +_c___________________________________________________ = "c6i_4xlarge" +_cixla = "c6i.4xlarge" +_c____________________________________________________ = "c6i_8xlarge" +_cixlar = "c6i.8xlarge" +_c_____________________________________________________ = "c6i_12xlarge" +_cixlarg = "c6i.12xlarge" +_c______________________________________________________ = "c6i_16xlarge" +_cixlarge = "c6i.16xlarge" +_c_______________________________________________________ = "c6i_24xlarge" +_cixlarge_ = "c6i.24xlarge" +_c________________________________________________________ = "c6i_32xlarge" +_cixlarge__ = "c6i.32xlarge" +_cm_________ = "c6i_metal" +_cim = "c6i.metal" +_c_________________________________________________________ = "cc1_4xlarge" +_cc = "cc1.4xlarge" +_c__________________________________________________________ = "cc2_8xlarge" +_ccx = "cc2.8xlarge" +_c___________________________________________________________ = "cg1_4xlarge" +_cgxlarge_ = "cg1.4xlarge" +_c____________________________________________________________ = "cr1_8xlarge" +_crx = "cr1.8xlarge" +_dx = "d2_xlarge" +_dxl = "d2.xlarge" +_d_ = "d2_2xlarge" +_dxla = "d2.2xlarge" +_d__ = "d2_4xlarge" +_dxlar = "d2.4xlarge" +_d___ = "d2_8xlarge" +_dxlarg = "d2.8xlarge" +_dx_ = "d3_xlarge" +_dxlarge = "d3.xlarge" +_d____ = "d3_2xlarge" +_dxlarge_ = "d3.2xlarge" +_d_____ = "d3_4xlarge" +_dxlarge__ = "d3.4xlarge" +_d______ = "d3_8xlarge" +_dxlarge___ = "d3.8xlarge" +_dx__ = "d3en_xlarge" +_den = "d3en.xlarge" +_d_______ = "d3en_2xlarge" +_denx = "d3en.2xlarge" +_d________ = "d3en_4xlarge" +_denxl = "d3en.4xlarge" +_d_________ = "d3en_6xlarge" +_denxla = "d3en.6xlarge" +_d__________ = "d3en_8xlarge" +_denxlar = "d3en.8xlarge" +_d___________ = "d3en_12xlarge" +_denxlarg = "d3en.12xlarge" +_d____________ = "dl1_24xlarge" +_dl = "dl1.24xlarge" +_f_ = "f1_2xlarge" +_fx = "f1.2xlarge" +_f__ = "f1_4xlarge" +_fxl = "f1.4xlarge" +_f___ = "f1_16xlarge" +_fxla = "f1.16xlarge" +_g_ = "g2_2xlarge" +_gx = "g2.2xlarge" +_g__ = "g2_8xlarge" +_gxl = "g2.8xlarge" +_g___ = "g3_4xlarge" +_gxla = "g3.4xlarge" +_g____ = "g3_8xlarge" +_gxlar = "g3.8xlarge" +_g_____ = "g3_16xlarge" +_gxlarg = "g3.16xlarge" +_gx_ = "g3s_xlarge" +_gs = "g3s.xlarge" +_gx__ = "g4ad_xlarge" +_ga = "g4ad.xlarge" +_g______ = "g4ad_2xlarge" +_gad = "g4ad.2xlarge" +_g_______ = "g4ad_4xlarge" +_gadx = "g4ad.4xlarge" +_g________ = "g4ad_8xlarge" +_gadxl = "g4ad.8xlarge" +_g_________ = "g4ad_16xlarge" +_gadxla = "g4ad.16xlarge" +_gx___ = "g4dn_xlarge" +_gd = "g4dn.xlarge" +_g__________ = "g4dn_2xlarge" +_gdn = "g4dn.2xlarge" +_g___________ = "g4dn_4xlarge" +_gdnx = "g4dn.4xlarge" +_g____________ = "g4dn_8xlarge" +_gdnxl = "g4dn.8xlarge" +_g_____________ = "g4dn_12xlarge" +_gdnxla = "g4dn.12xlarge" +_g______________ = "g4dn_16xlarge" +_gdnxlar = "g4dn.16xlarge" +_gm = "g4dn_metal" +_gdnm = "g4dn.metal" +_gx____ = "g5_xlarge" +_gxlarge = "g5.xlarge" +_g_______________ = "g5_2xlarge" +_gxlarge_ = "g5.2xlarge" +_g________________ = "g5_4xlarge" +_gxlarge__ = "g5.4xlarge" +_g_________________ = "g5_8xlarge" +_gxlarge___ = "g5.8xlarge" +_g__________________ = "g5_12xlarge" +_gxlarge____ = "g5.12xlarge" +_g___________________ = "g5_16xlarge" +_gxlarge_____ = "g5.16xlarge" +_g____________________ = "g5_24xlarge" +_gxlarge______ = "g5.24xlarge" +_g_____________________ = "g5_48xlarge" +_gxlarge_______ = "g5.48xlarge" +_gx_____ = "g5g_xlarge" +_gg = "g5g.xlarge" +_g______________________ = "g5g_2xlarge" +_ggx = "g5g.2xlarge" +_g_______________________ = "g5g_4xlarge" +_ggxl = "g5g.4xlarge" +_g________________________ = "g5g_8xlarge" +_ggxla = "g5g.8xlarge" +_g_________________________ = "g5g_16xlarge" +_ggxlar = "g5g.16xlarge" +_gm_ = "g5g_metal" +_ggm = "g5g.metal" +_h__ = "hi1_4xlarge" +_hi = "hi1.4xlarge" +_h___ = "hpc6a_48xlarge" +_hp = "hpc6a.48xlarge" +_h____ = "hs1_8xlarge" +_hs = "hs1.8xlarge" +_h_____ = "h1_2xlarge" +_hx = "h1.2xlarge" +_h______ = "h1_4xlarge" +_hxl = "h1.4xlarge" +_h_______ = "h1_8xlarge" +_hxla = "h1.8xlarge" +_h________ = "h1_16xlarge" +_hxlar = "h1.16xlarge" +_ix = "i2_xlarge" +_ixl = "i2.xlarge" +_i_ = "i2_2xlarge" +_ixla = "i2.2xlarge" +_i__ = "i2_4xlarge" +_ixlar = "i2.4xlarge" +_i___ = "i2_8xlarge" +_ixlarg = "i2.8xlarge" +_il = "i3_large" +_ila = "i3.large" +_ix_ = "i3_xlarge" +_ixlarge = "i3.xlarge" +_i____ = "i3_2xlarge" +_ixlarge_ = "i3.2xlarge" +_i_____ = "i3_4xlarge" +_ixlarge__ = "i3.4xlarge" +_i______ = "i3_8xlarge" +_ixlarge___ = "i3.8xlarge" +_i_______ = "i3_16xlarge" +_ixlarge____ = "i3.16xlarge" +_im_ = "i3_metal" +_ime = "i3.metal" +_il_ = "i3en_large" +_ien = "i3en.large" +_ix__ = "i3en_xlarge" +_ienx = "i3en.xlarge" +_i________ = "i3en_2xlarge" +_ienxl = "i3en.2xlarge" +_i_________ = "i3en_3xlarge" +_ienxla = "i3en.3xlarge" +_i__________ = "i3en_6xlarge" +_ienxlar = "i3en.6xlarge" +_i___________ = "i3en_12xlarge" +_ienxlarg = "i3en.12xlarge" +_i____________ = "i3en_24xlarge" +_ienxlarge = "i3en.24xlarge" +_im__ = "i3en_metal" +_ienm = "i3en.metal" +_il__ = "im4gn_large" +_img = "im4gn.large" +_ix___ = "im4gn_xlarge" +_imgn = "im4gn.xlarge" +_i_____________ = "im4gn_2xlarge" +_imgnx = "im4gn.2xlarge" +_i______________ = "im4gn_4xlarge" +_imgnxl = "im4gn.4xlarge" +_i_______________ = "im4gn_8xlarge" +_imgnxla = "im4gn.8xlarge" +_i________________ = "im4gn_16xlarge" +_imgnxlar = "im4gn.16xlarge" +_ix____ = "inf1_xlarge" +_infx = "inf1.xlarge" +_i_________________ = "inf1_2xlarge" +_infxl = "inf1.2xlarge" +_i__________________ = "inf1_6xlarge" +_infxla = "inf1.6xlarge" +_i___________________ = "inf1_24xlarge" +_infxlar = "inf1.24xlarge" +_im___ = "is4gen_medium" +_isg = "is4gen.medium" +_il___ = "is4gen_large" +_isge = "is4gen.large" +_ix_____ = "is4gen_xlarge" +_isgen = "is4gen.xlarge" +_i____________________ = "is4gen_2xlarge" +_isgenx = "is4gen.2xlarge" +_i_____________________ = "is4gen_4xlarge" +_isgenxl = "is4gen.4xlarge" +_i______________________ = "is4gen_8xlarge" +_isgenxla = "is4gen.8xlarge" +_ms = "m1_small" +_msm = "m1.small" +_mm = "m1_medium" +_mme = "m1.medium" +_ml = "m1_large" +_mla = "m1.large" +_mx = "m1_xlarge" +_mxl = "m1.xlarge" +_mx_ = "m2_xlarge" +_mxla = "m2.xlarge" +_m__ = "m2_2xlarge" +_mxlar = "m2.2xlarge" +_m___ = "m2_4xlarge" +_mxlarg = "m2.4xlarge" +_mm_ = "m3_medium" +_mmed = "m3.medium" +_ml_ = "m3_large" +_mlar = "m3.large" +_mx__ = "m3_xlarge" +_mxlarge = "m3.xlarge" +_m____ = "m3_2xlarge" +_mxlarge_ = "m3.2xlarge" +_ml__ = "m4_large" +_mlarg = "m4.large" +_mx___ = "m4_xlarge" +_mxlarge__ = "m4.xlarge" +_m_____ = "m4_2xlarge" +_mxlarge___ = "m4.2xlarge" +_m______ = "m4_4xlarge" +_mxlarge____ = "m4.4xlarge" +_m_______ = "m4_10xlarge" +_mxlarge_____ = "m4.10xlarge" +_m________ = "m4_16xlarge" +_mxlarge______ = "m4.16xlarge" +_ml___ = "m5_large" +_mlarge = "m5.large" +_mx____ = "m5_xlarge" +_mxlarge_______ = "m5.xlarge" +_m_________ = "m5_2xlarge" +_mxlarge________ = "m5.2xlarge" +_m__________ = "m5_4xlarge" +_mxlarge_________ = "m5.4xlarge" +_m___________ = "m5_8xlarge" +_mxlarge__________ = "m5.8xlarge" +_m____________ = "m5_12xlarge" +_mxlarge___________ = "m5.12xlarge" +_m_____________ = "m5_16xlarge" +_mxlarge____________ = "m5.16xlarge" +_m______________ = "m5_24xlarge" +_mxlarge_____________ = "m5.24xlarge" +_mm__ = "m5_metal" +_mmet = "m5.metal" +_ml____ = "m5a_large" +_mal = "m5a.large" +_mx_____ = "m5a_xlarge" +_max = "m5a.xlarge" +_m_______________ = "m5a_2xlarge" +_maxl = "m5a.2xlarge" +_m________________ = "m5a_4xlarge" +_maxla = "m5a.4xlarge" +_m_________________ = "m5a_8xlarge" +_maxlar = "m5a.8xlarge" +_m__________________ = "m5a_12xlarge" +_maxlarg = "m5a.12xlarge" +_m___________________ = "m5a_16xlarge" +_maxlarge = "m5a.16xlarge" +_m____________________ = "m5a_24xlarge" +_maxlarge_ = "m5a.24xlarge" +_ml_____ = "m5ad_large" +_mad = "m5ad.large" +_mx______ = "m5ad_xlarge" +_madx = "m5ad.xlarge" +_m_____________________ = "m5ad_2xlarge" +_madxl = "m5ad.2xlarge" +_m______________________ = "m5ad_4xlarge" +_madxla = "m5ad.4xlarge" +_m_______________________ = "m5ad_8xlarge" +_madxlar = "m5ad.8xlarge" +_m________________________ = "m5ad_12xlarge" +_madxlarg = "m5ad.12xlarge" +_m_________________________ = "m5ad_16xlarge" +_madxlarge = "m5ad.16xlarge" +_m__________________________ = "m5ad_24xlarge" +_madxlarge_ = "m5ad.24xlarge" +_ml______ = "m5d_large" +_md = "m5d.large" +_mx_______ = "m5d_xlarge" +_mdx = "m5d.xlarge" +_m___________________________ = "m5d_2xlarge" +_mdxl = "m5d.2xlarge" +_m____________________________ = "m5d_4xlarge" +_mdxla = "m5d.4xlarge" +_m_____________________________ = "m5d_8xlarge" +_mdxlar = "m5d.8xlarge" +_m______________________________ = "m5d_12xlarge" +_mdxlarg = "m5d.12xlarge" +_m_______________________________ = "m5d_16xlarge" +_mdxlarge = "m5d.16xlarge" +_m________________________________ = "m5d_24xlarge" +_mdxlarge_ = "m5d.24xlarge" +_mm___ = "m5d_metal" +_mdm = "m5d.metal" +_ml_______ = "m5dn_large" +_mdn = "m5dn.large" +_mx________ = "m5dn_xlarge" +_mdnx = "m5dn.xlarge" +_m_________________________________ = "m5dn_2xlarge" +_mdnxl = "m5dn.2xlarge" +_m__________________________________ = "m5dn_4xlarge" +_mdnxla = "m5dn.4xlarge" +_m___________________________________ = "m5dn_8xlarge" +_mdnxlar = "m5dn.8xlarge" +_m____________________________________ = "m5dn_12xlarge" +_mdnxlarg = "m5dn.12xlarge" +_m_____________________________________ = "m5dn_16xlarge" +_mdnxlarge = "m5dn.16xlarge" +_m______________________________________ = "m5dn_24xlarge" +_mdnxlarge_ = "m5dn.24xlarge" +_mm____ = "m5dn_metal" +_mdnm = "m5dn.metal" +_ml________ = "m5n_large" +_mn = "m5n.large" +_mx_________ = "m5n_xlarge" +_mnx = "m5n.xlarge" +_m_______________________________________ = "m5n_2xlarge" +_mnxl = "m5n.2xlarge" +_m________________________________________ = "m5n_4xlarge" +_mnxla = "m5n.4xlarge" +_m_________________________________________ = "m5n_8xlarge" +_mnxlar = "m5n.8xlarge" +_m__________________________________________ = "m5n_12xlarge" +_mnxlarg = "m5n.12xlarge" +_m___________________________________________ = "m5n_16xlarge" +_mnxlarge = "m5n.16xlarge" +_m____________________________________________ = "m5n_24xlarge" +_mnxlarge_ = "m5n.24xlarge" +_mm_____ = "m5n_metal" +_mnm = "m5n.metal" +_ml_________ = "m5zn_large" +_mz = "m5zn.large" +_mx__________ = "m5zn_xlarge" +_mzn = "m5zn.xlarge" +_m_____________________________________________ = "m5zn_2xlarge" +_mznx = "m5zn.2xlarge" +_m______________________________________________ = "m5zn_3xlarge" +_mznxl = "m5zn.3xlarge" +_m_______________________________________________ = "m5zn_6xlarge" +_mznxla = "m5zn.6xlarge" +_m________________________________________________ = "m5zn_12xlarge" +_mznxlar = "m5zn.12xlarge" +_mm______ = "m5zn_metal" +_mznm = "m5zn.metal" +_ml__________ = "m6a_large" +_mala = "m6a.large" +_mx___________ = "m6a_xlarge" +_maxlarge__ = "m6a.xlarge" +_m_________________________________________________ = "m6a_2xlarge" +_maxlarge___ = "m6a.2xlarge" +_m__________________________________________________ = "m6a_4xlarge" +_maxlarge____ = "m6a.4xlarge" +_m___________________________________________________ = "m6a_8xlarge" +_maxlarge_____ = "m6a.8xlarge" +_m____________________________________________________ = "m6a_12xlarge" +_maxlarge______ = "m6a.12xlarge" +_m_____________________________________________________ = "m6a_16xlarge" +_maxlarge_______ = "m6a.16xlarge" +_m______________________________________________________ = "m6a_24xlarge" +_maxlarge________ = "m6a.24xlarge" +_m_______________________________________________________ = "m6a_32xlarge" +_maxlarge_________ = "m6a.32xlarge" +_m________________________________________________________ = "m6a_48xlarge" +_maxlarge__________ = "m6a.48xlarge" +_mm_______ = "m6g_metal" +_mg = "m6g.metal" +_mm________ = "m6g_medium" +_mgm = "m6g.medium" +_ml___________ = "m6g_large" +_mgl = "m6g.large" +_mx____________ = "m6g_xlarge" +_mgx = "m6g.xlarge" +_m_________________________________________________________ = "m6g_2xlarge" +_mgxl = "m6g.2xlarge" +_m__________________________________________________________ = "m6g_4xlarge" +_mgxla = "m6g.4xlarge" +_m___________________________________________________________ = "m6g_8xlarge" +_mgxlar = "m6g.8xlarge" +_m____________________________________________________________ = "m6g_12xlarge" +_mgxlarg = "m6g.12xlarge" +_m_____________________________________________________________ = "m6g_16xlarge" +_mgxlarge = "m6g.16xlarge" +_mm_________ = "m6gd_metal" +_mgd = "m6gd.metal" +_mm__________ = "m6gd_medium" +_mgdm = "m6gd.medium" +_ml____________ = "m6gd_large" +_mgdl = "m6gd.large" +_mx_____________ = "m6gd_xlarge" +_mgdx = "m6gd.xlarge" +_m______________________________________________________________ = "m6gd_2xlarge" +_mgdxl = "m6gd.2xlarge" +_m_______________________________________________________________ = "m6gd_4xlarge" +_mgdxla = "m6gd.4xlarge" +_m________________________________________________________________ = "m6gd_8xlarge" +_mgdxlar = "m6gd.8xlarge" +_m_________________________________________________________________ = "m6gd_12xlarge" +_mgdxlarg = "m6gd.12xlarge" +_m__________________________________________________________________ = "m6gd_16xlarge" +_mgdxlarge = "m6gd.16xlarge" +_ml_____________ = "m6i_large" +_mi = "m6i.large" +_mx______________ = "m6i_xlarge" +_mix = "m6i.xlarge" +_m___________________________________________________________________ = "m6i_2xlarge" +_mixl = "m6i.2xlarge" +_m____________________________________________________________________ = "m6i_4xlarge" +_mixla = "m6i.4xlarge" +_m_____________________________________________________________________ = "m6i_8xlarge" +_mixlar = "m6i.8xlarge" +_m______________________________________________________________________ = ( + "m6i_12xlarge" +) +_mixlarg = "m6i.12xlarge" +_m_______________________________________________________________________ = ( + "m6i_16xlarge" +) +_mixlarge = "m6i.16xlarge" +_m________________________________________________________________________ = ( + "m6i_24xlarge" +) +_mixlarge_ = "m6i.24xlarge" +_m_________________________________________________________________________ = ( + "m6i_32xlarge" +) +_mixlarge__ = "m6i.32xlarge" +_mm___________ = "m6i_metal" +_mim = "m6i.metal" +_mm____________ = "mac1_metal" +_mac = "mac1.metal" +_px = "p2_xlarge" +_pxl = "p2.xlarge" +_p_ = "p2_8xlarge" +_pxla = "p2.8xlarge" +_p__ = "p2_16xlarge" +_pxlar = "p2.16xlarge" +_p___ = "p3_2xlarge" +_pxlarg = "p3.2xlarge" +_p____ = "p3_8xlarge" +_pxlarge = "p3.8xlarge" +_p_____ = "p3_16xlarge" +_pxlarge_ = "p3.16xlarge" +_p______ = "p3dn_24xlarge" +_pdn = "p3dn.24xlarge" +_p_______ = "p4d_24xlarge" +_pdx = "p4d.24xlarge" +_rl = "r3_large" +_rla = "r3.large" +_rx = "r3_xlarge" +_rxl = "r3.xlarge" +_r_ = "r3_2xlarge" +_rxla = "r3.2xlarge" +_r__ = "r3_4xlarge" +_rxlar = "r3.4xlarge" +_r___ = "r3_8xlarge" +_rxlarg = "r3.8xlarge" +_rl_ = "r4_large" +_rlar = "r4.large" +_rx_ = "r4_xlarge" +_rxlarge = "r4.xlarge" +_r____ = "r4_2xlarge" +_rxlarge_ = "r4.2xlarge" +_r_____ = "r4_4xlarge" +_rxlarge__ = "r4.4xlarge" +_r______ = "r4_8xlarge" +_rxlarge___ = "r4.8xlarge" +_r_______ = "r4_16xlarge" +_rxlarge____ = "r4.16xlarge" +_rl__ = "r5_large" +_rlarg = "r5.large" +_rx__ = "r5_xlarge" +_rxlarge_____ = "r5.xlarge" +_r________ = "r5_2xlarge" +_rxlarge______ = "r5.2xlarge" +_r_________ = "r5_4xlarge" +_rxlarge_______ = "r5.4xlarge" +_r__________ = "r5_8xlarge" +_rxlarge________ = "r5.8xlarge" +_r___________ = "r5_12xlarge" +_rxlarge_________ = "r5.12xlarge" +_r____________ = "r5_16xlarge" +_rxlarge__________ = "r5.16xlarge" +_r_____________ = "r5_24xlarge" +_rxlarge___________ = "r5.24xlarge" +_rm = "r5_metal" +_rme = "r5.metal" +_rl___ = "r5a_large" +_ra = "r5a.large" +_rx___ = "r5a_xlarge" +_rax = "r5a.xlarge" +_r______________ = "r5a_2xlarge" +_raxl = "r5a.2xlarge" +_r_______________ = "r5a_4xlarge" +_raxla = "r5a.4xlarge" +_r________________ = "r5a_8xlarge" +_raxlar = "r5a.8xlarge" +_r_________________ = "r5a_12xlarge" +_raxlarg = "r5a.12xlarge" +_r__________________ = "r5a_16xlarge" +_raxlarge = "r5a.16xlarge" +_r___________________ = "r5a_24xlarge" +_raxlarge_ = "r5a.24xlarge" +_rl____ = "r5ad_large" +_rad = "r5ad.large" +_rx____ = "r5ad_xlarge" +_radx = "r5ad.xlarge" +_r____________________ = "r5ad_2xlarge" +_radxl = "r5ad.2xlarge" +_r_____________________ = "r5ad_4xlarge" +_radxla = "r5ad.4xlarge" +_r______________________ = "r5ad_8xlarge" +_radxlar = "r5ad.8xlarge" +_r_______________________ = "r5ad_12xlarge" +_radxlarg = "r5ad.12xlarge" +_r________________________ = "r5ad_16xlarge" +_radxlarge = "r5ad.16xlarge" +_r_________________________ = "r5ad_24xlarge" +_radxlarge_ = "r5ad.24xlarge" +_rl_____ = "r5b_large" +_rb = "r5b.large" +_rx_____ = "r5b_xlarge" +_rbx = "r5b.xlarge" +_r__________________________ = "r5b_2xlarge" +_rbxl = "r5b.2xlarge" +_r___________________________ = "r5b_4xlarge" +_rbxla = "r5b.4xlarge" +_r____________________________ = "r5b_8xlarge" +_rbxlar = "r5b.8xlarge" +_r_____________________________ = "r5b_12xlarge" +_rbxlarg = "r5b.12xlarge" +_r______________________________ = "r5b_16xlarge" +_rbxlarge = "r5b.16xlarge" +_r_______________________________ = "r5b_24xlarge" +_rbxlarge_ = "r5b.24xlarge" +_rm_ = "r5b_metal" +_rbm = "r5b.metal" +_rl______ = "r5d_large" +_rdl = "r5d.large" +_rx______ = "r5d_xlarge" +_rdx = "r5d.xlarge" +_r________________________________ = "r5d_2xlarge" +_rdxl = "r5d.2xlarge" +_r_________________________________ = "r5d_4xlarge" +_rdxla = "r5d.4xlarge" +_r__________________________________ = "r5d_8xlarge" +_rdxlar = "r5d.8xlarge" +_r___________________________________ = "r5d_12xlarge" +_rdxlarg = "r5d.12xlarge" +_r____________________________________ = "r5d_16xlarge" +_rdxlarge = "r5d.16xlarge" +_r_____________________________________ = "r5d_24xlarge" +_rdxlarge_ = "r5d.24xlarge" +_rm__ = "r5d_metal" +_rdm = "r5d.metal" +_rl_______ = "r5dn_large" +_rdn = "r5dn.large" +_rx_______ = "r5dn_xlarge" +_rdnx = "r5dn.xlarge" +_r______________________________________ = "r5dn_2xlarge" +_rdnxl = "r5dn.2xlarge" +_r_______________________________________ = "r5dn_4xlarge" +_rdnxla = "r5dn.4xlarge" +_r________________________________________ = "r5dn_8xlarge" +_rdnxlar = "r5dn.8xlarge" +_r_________________________________________ = "r5dn_12xlarge" +_rdnxlarg = "r5dn.12xlarge" +_r__________________________________________ = "r5dn_16xlarge" +_rdnxlarge = "r5dn.16xlarge" +_r___________________________________________ = "r5dn_24xlarge" +_rdnxlarge_ = "r5dn.24xlarge" +_rm___ = "r5dn_metal" +_rdnm = "r5dn.metal" +_rl________ = "r5n_large" +_rnl = "r5n.large" +_rx________ = "r5n_xlarge" +_rnx = "r5n.xlarge" +_r____________________________________________ = "r5n_2xlarge" +_rnxl = "r5n.2xlarge" +_r_____________________________________________ = "r5n_4xlarge" +_rnxla = "r5n.4xlarge" +_r______________________________________________ = "r5n_8xlarge" +_rnxlar = "r5n.8xlarge" +_r_______________________________________________ = "r5n_12xlarge" +_rnxlarg = "r5n.12xlarge" +_r________________________________________________ = "r5n_16xlarge" +_rnxlarge = "r5n.16xlarge" +_r_________________________________________________ = "r5n_24xlarge" +_rnxlarge_ = "r5n.24xlarge" +_rm____ = "r5n_metal" +_rnm = "r5n.metal" +_rm_____ = "r6g_medium" +_rg = "r6g.medium" +_rl_________ = "r6g_large" +_rgl = "r6g.large" +_rx_________ = "r6g_xlarge" +_rgx = "r6g.xlarge" +_r__________________________________________________ = "r6g_2xlarge" +_rgxl = "r6g.2xlarge" +_r___________________________________________________ = "r6g_4xlarge" +_rgxla = "r6g.4xlarge" +_r____________________________________________________ = "r6g_8xlarge" +_rgxlar = "r6g.8xlarge" +_r_____________________________________________________ = "r6g_12xlarge" +_rgxlarg = "r6g.12xlarge" +_r______________________________________________________ = "r6g_16xlarge" +_rgxlarge = "r6g.16xlarge" +_rm______ = "r6g_metal" +_rgm = "r6g.metal" +_rm_______ = "r6gd_medium" +_rgd = "r6gd.medium" +_rl__________ = "r6gd_large" +_rgdl = "r6gd.large" +_rx__________ = "r6gd_xlarge" +_rgdx = "r6gd.xlarge" +_r_______________________________________________________ = "r6gd_2xlarge" +_rgdxl = "r6gd.2xlarge" +_r________________________________________________________ = "r6gd_4xlarge" +_rgdxla = "r6gd.4xlarge" +_r_________________________________________________________ = "r6gd_8xlarge" +_rgdxlar = "r6gd.8xlarge" +_r__________________________________________________________ = "r6gd_12xlarge" +_rgdxlarg = "r6gd.12xlarge" +_r___________________________________________________________ = "r6gd_16xlarge" +_rgdxlarge = "r6gd.16xlarge" +_rm________ = "r6gd_metal" +_rgdm = "r6gd.metal" +_rl___________ = "r6i_large" +_ril = "r6i.large" +_rx___________ = "r6i_xlarge" +_rix = "r6i.xlarge" +_r____________________________________________________________ = "r6i_2xlarge" +_rixl = "r6i.2xlarge" +_r_____________________________________________________________ = "r6i_4xlarge" +_rixla = "r6i.4xlarge" +_r______________________________________________________________ = "r6i_8xlarge" +_rixlar = "r6i.8xlarge" +_r_______________________________________________________________ = "r6i_12xlarge" +_rixlarg = "r6i.12xlarge" +_r________________________________________________________________ = "r6i_16xlarge" +_rixlarge = "r6i.16xlarge" +_r_________________________________________________________________ = "r6i_24xlarge" +_rixlarge_ = "r6i.24xlarge" +_r__________________________________________________________________ = "r6i_32xlarge" +_rixlarge__ = "r6i.32xlarge" +_rm_________ = "r6i_metal" +_rim = "r6i.metal" +_tm = "t1_micro" +_tmi = "t1.micro" +_tn = "t2_nano" +_tna = "t2.nano" +_tm_ = "t2_micro" +_tmic = "t2.micro" +_ts__ = "t2_small" +_tsm = "t2.small" +_tm__ = "t2_medium" +_tme = "t2.medium" +_tl = "t2_large" +_tla = "t2.large" +_tx = "t2_xlarge" +_txl = "t2.xlarge" +_t_ = "t2_2xlarge" +_txla = "t2.2xlarge" +_tn_ = "t3_nano" +_tnan = "t3.nano" +_tm___ = "t3_micro" +_tmicr = "t3.micro" +_ts___ = "t3_small" +_tsma = "t3.small" +_tm____ = "t3_medium" +_tmed = "t3.medium" +_tl_ = "t3_large" +_tlar = "t3.large" +_tx_ = "t3_xlarge" +_txlar = "t3.xlarge" +_t__ = "t3_2xlarge" +_txlarg = "t3.2xlarge" +_tn__ = "t3a_nano" +_tan = "t3a.nano" +_tm_____ = "t3a_micro" +_tam = "t3a.micro" +_ts____ = "t3a_small" +_tas = "t3a.small" +_tm______ = "t3a_medium" +_tame = "t3a.medium" +_tl__ = "t3a_large" +_tal = "t3a.large" +_tx__ = "t3a_xlarge" +_tax = "t3a.xlarge" +_t___ = "t3a_2xlarge" +_taxl = "t3a.2xlarge" +_tn___ = "t4g_nano" +_tgn = "t4g.nano" +_tm_______ = "t4g_micro" +_tgm = "t4g.micro" +_ts_____ = "t4g_small" +_tgs = "t4g.small" +_tm________ = "t4g_medium" +_tgme = "t4g.medium" +_tl___ = "t4g_large" +_tgl = "t4g.large" +_tx___ = "t4g_xlarge" +_tgx = "t4g.xlarge" +_t____ = "t4g_2xlarge" +_tgxl = "t4g.2xlarge" +_u_ = "u_6tb1_56xlarge" +_u__ = "u-6tb1.56xlarge" +_u___ = "u_6tb1_112xlarge" +_u____ = "u-6tb1.112xlarge" +_u_____ = "u_9tb1_112xlarge" +_u______ = "u-9tb1.112xlarge" +_u_______ = "u_12tb1_112xlarge" +_u________ = "u-12tb1.112xlarge" +_um = "u_6tb1_metal" +_u_________ = "u-6tb1.metal" +_um_ = "u_9tb1_metal" +_u__________ = "u-9tb1.metal" +_um__ = "u_12tb1_metal" +_u___________ = "u-12tb1.metal" +_um___ = "u_18tb1_metal" +_u____________ = "u-18tb1.metal" +_um____ = "u_24tb1_metal" +_u_____________ = "u-24tb1.metal" +_v__ = "vt1_3xlarge" +_vt = "vt1.3xlarge" +_v___ = "vt1_6xlarge" +_vtx = "vt1.6xlarge" +_v____ = "vt1_24xlarge" +_vtxl = "vt1.24xlarge" +_x_ = "x1_16xlarge" +_xx = "x1.16xlarge" +_x__ = "x1_32xlarge" +_xxl = "x1.32xlarge" +_xx_ = "x1e_xlarge" +_xe = "x1e.xlarge" +_x___ = "x1e_2xlarge" +_xex = "x1e.2xlarge" +_x____ = "x1e_4xlarge" +_xexl = "x1e.4xlarge" +_x_____ = "x1e_8xlarge" +_xexla = "x1e.8xlarge" +_x______ = "x1e_16xlarge" +_xexlar = "x1e.16xlarge" +_x_______ = "x1e_32xlarge" +_xexlarg = "x1e.32xlarge" +_x________ = "x2iezn_2xlarge" +_xi = "x2iezn.2xlarge" +_x_________ = "x2iezn_4xlarge" +_xie = "x2iezn.4xlarge" +_x__________ = "x2iezn_6xlarge" +_xiez = "x2iezn.6xlarge" +_x___________ = "x2iezn_8xlarge" +_xiezn = "x2iezn.8xlarge" +_x____________ = "x2iezn_12xlarge" +_xieznx = "x2iezn.12xlarge" +_xm = "x2iezn_metal" +_xieznm = "x2iezn.metal" +_xm_ = "x2gd_medium" +_xg = "x2gd.medium" +_xl = "x2gd_large" +_xgd = "x2gd.large" +_xx__ = "x2gd_xlarge" +_xgdx = "x2gd.xlarge" +_x_____________ = "x2gd_2xlarge" +_xgdxl = "x2gd.2xlarge" +_x______________ = "x2gd_4xlarge" +_xgdxla = "x2gd.4xlarge" +_x_______________ = "x2gd_8xlarge" +_xgdxlar = "x2gd.8xlarge" +_x________________ = "x2gd_12xlarge" +_xgdxlarg = "x2gd.12xlarge" +_x_________________ = "x2gd_16xlarge" +_xgdxlarge = "x2gd.16xlarge" +_xm__ = "x2gd_metal" +_xgdm = "x2gd.metal" +_zl = "z1d_large" +_z = "z1d.large" +_zx = "z1d_xlarge" +_zd = "z1d.xlarge" +_z_ = "z1d_2xlarge" +_zdx = "z1d.2xlarge" +_z__ = "z1d_3xlarge" +_zdxl = "z1d.3xlarge" +_z___ = "z1d_6xlarge" +_zdxla = "z1d.6xlarge" +_z____ = "z1d_12xlarge" +_zdxlar = "z1d.12xlarge" +_zm = "z1d_metal" +_zdm = "z1d.metal" +_x__________________ = "x2idn_16xlarge" +_xid = "x2idn.16xlarge" +_x___________________ = "x2idn_24xlarge" +_xidn = "x2idn.24xlarge" +_x____________________ = "x2idn_32xlarge" +_xidnx = "x2idn.32xlarge" +_xx___ = "x2iedn_xlarge" +_xied = "x2iedn.xlarge" +_x_____________________ = "x2iedn_2xlarge" +_xiedn = "x2iedn.2xlarge" +_x______________________ = "x2iedn_4xlarge" +_xiednx = "x2iedn.4xlarge" +_x_______________________ = "x2iedn_8xlarge" +_xiednxl = "x2iedn.8xlarge" +_x________________________ = "x2iedn_16xlarge" +_xiednxla = "x2iedn.16xlarge" +_x_________________________ = "x2iedn_24xlarge" +_xiednxlar = "x2iedn.24xlarge" +_x__________________________ = "x2iedn_32xlarge" +_xiednxlarg = "x2iedn.32xlarge" +_cl____________ = "c6a_large" +_cala = "c6a.large" +_cx____________ = "c6a_xlarge" +_caxlarge__ = "c6a.xlarge" +_c_____________________________________________________________ = "c6a_2xlarge" +_caxlarge___ = "c6a.2xlarge" +_c______________________________________________________________ = "c6a_4xlarge" +_caxlarge____ = "c6a.4xlarge" +_c_______________________________________________________________ = "c6a_8xlarge" +_caxlarge_____ = "c6a.8xlarge" +_c________________________________________________________________ = "c6a_12xlarge" +_caxlarge______ = "c6a.12xlarge" +_c_________________________________________________________________ = "c6a_16xlarge" +_caxlarge_______ = "c6a.16xlarge" +_c__________________________________________________________________ = "c6a_24xlarge" +_caxlarge________ = "c6a.24xlarge" +_c___________________________________________________________________ = "c6a_32xlarge" +_caxlarge_________ = "c6a.32xlarge" +_c____________________________________________________________________ = "c6a_48xlarge" +_caxlarge__________ = "c6a.48xlarge" +_cm__________ = "c6a_metal" +_cam = "c6a.metal" +_mm_____________ = "m6a_metal" +_mam = "m6a.metal" +_il____ = "i4i_large" +_ii = "i4i.large" +_ix______ = "i4i_xlarge" +_iix = "i4i.xlarge" +_i_______________________ = "i4i_2xlarge" +_iixl = "i4i.2xlarge" +_i________________________ = "i4i_4xlarge" +_iixla = "i4i.4xlarge" +_i_________________________ = "i4i_8xlarge" +_iixlar = "i4i.8xlarge" +_i__________________________ = "i4i_16xlarge" +_iixlarg = "i4i.16xlarge" +_i___________________________ = "i4i_32xlarge" +_iixlarge = "i4i.32xlarge" +_im____ = "i4i_metal" +_iim = "i4i.metal" +_xm___ = "x2idn_metal" +_xidnm = "x2idn.metal" +_xm____ = "x2iedn_metal" +_xiednm = "x2iedn.metal" +_cm___________ = "c7g_medium" +_cgmed = "c7g.medium" +_cl_____________ = "c7g_large" +_cgla = "c7g.large" +_cx_____________ = "c7g_xlarge" +_cgxlarge__ = "c7g.xlarge" +_c_____________________________________________________________________ = "c7g_2xlarge" +_cgxlarge___ = "c7g.2xlarge" +_c______________________________________________________________________ = "c7g_4xlarge" +_cgxlarge____ = "c7g.4xlarge" +_c_______________________________________________________________________ = ( + "c7g_8xlarge" +) +_cgxlarge_____ = "c7g.8xlarge" +_c________________________________________________________________________ = ( + "c7g_12xlarge" +) +_cgxlarge______ = "c7g.12xlarge" +_c_________________________________________________________________________ = ( + "c7g_16xlarge" +) +_cgxlarge_______ = "c7g.16xlarge" +_mm______________ = "mac2_metal" +_macm = "mac2.metal" +_cl______________ = "c6id_large" +_cid = "c6id.large" +_cx______________ = "c6id_xlarge" +_cidx = "c6id.xlarge" +_c__________________________________________________________________________ = ( + "c6id_2xlarge" +) +_cidxl = "c6id.2xlarge" +_c___________________________________________________________________________ = ( + "c6id_4xlarge" +) +_cidxla = "c6id.4xlarge" +_c____________________________________________________________________________ = ( + "c6id_8xlarge" +) +_cidxlar = "c6id.8xlarge" +_c_____________________________________________________________________________ = ( + "c6id_12xlarge" +) +_cidxlarg = "c6id.12xlarge" +_c______________________________________________________________________________ = ( + "c6id_16xlarge" +) +_cidxlarge = "c6id.16xlarge" +_c_______________________________________________________________________________ = ( + "c6id_24xlarge" +) +_cidxlarge_ = "c6id.24xlarge" +_c________________________________________________________________________________ = ( + "c6id_32xlarge" +) +_cidxlarge__ = "c6id.32xlarge" +_cm____________ = "c6id_metal" +_cidm = "c6id.metal" +_ml______________ = "m6id_large" +_mid = "m6id.large" +_mx_______________ = "m6id_xlarge" +_midx = "m6id.xlarge" +_m__________________________________________________________________________ = ( + "m6id_2xlarge" +) +_midxl = "m6id.2xlarge" +_m___________________________________________________________________________ = ( + "m6id_4xlarge" +) +_midxla = "m6id.4xlarge" +_m____________________________________________________________________________ = ( + "m6id_8xlarge" +) +_midxlar = "m6id.8xlarge" +_m_____________________________________________________________________________ = ( + "m6id_12xlarge" +) +_midxlarg = "m6id.12xlarge" +_m______________________________________________________________________________ = ( + "m6id_16xlarge" +) +_midxlarge = "m6id.16xlarge" +_m_______________________________________________________________________________ = ( + "m6id_24xlarge" +) +_midxlarge_ = "m6id.24xlarge" +_m________________________________________________________________________________ = ( + "m6id_32xlarge" +) +_midxlarge__ = "m6id.32xlarge" +_mm_______________ = "m6id_metal" +_midm = "m6id.metal" +_rl____________ = "r6id_large" +_rid = "r6id.large" +_rx____________ = "r6id_xlarge" +_ridx = "r6id.xlarge" +_r___________________________________________________________________ = "r6id_2xlarge" +_ridxl = "r6id.2xlarge" +_r____________________________________________________________________ = "r6id_4xlarge" +_ridxla = "r6id.4xlarge" +_r_____________________________________________________________________ = "r6id_8xlarge" +_ridxlar = "r6id.8xlarge" +_r______________________________________________________________________ = ( + "r6id_12xlarge" +) +_ridxlarg = "r6id.12xlarge" +_r_______________________________________________________________________ = ( + "r6id_16xlarge" +) +_ridxlarge = "r6id.16xlarge" +_r________________________________________________________________________ = ( + "r6id_24xlarge" +) +_ridxlarge_ = "r6id.24xlarge" +_r_________________________________________________________________________ = ( + "r6id_32xlarge" +) +_ridxlarge__ = "r6id.32xlarge" +_rm__________ = "r6id_metal" +_ridm = "r6id.metal" +_rl_____________ = "r6a_large" +_ral = "r6a.large" +_rx_____________ = "r6a_xlarge" +_raxlarge__ = "r6a.xlarge" +_r__________________________________________________________________________ = ( + "r6a_2xlarge" +) +_raxlarge___ = "r6a.2xlarge" +_r___________________________________________________________________________ = ( + "r6a_4xlarge" +) +_raxlarge____ = "r6a.4xlarge" +_r____________________________________________________________________________ = ( + "r6a_8xlarge" +) +_raxlarge_____ = "r6a.8xlarge" +_r_____________________________________________________________________________ = ( + "r6a_12xlarge" +) +_raxlarge______ = "r6a.12xlarge" +_r______________________________________________________________________________ = ( + "r6a_16xlarge" +) +_raxlarge_______ = "r6a.16xlarge" +_r_______________________________________________________________________________ = ( + "r6a_24xlarge" +) +_raxlarge________ = "r6a.24xlarge" +_r________________________________________________________________________________ = ( + "r6a_32xlarge" +) +_raxlarge_________ = "r6a.32xlarge" +_r_________________________________________________________________________________ = ( + "r6a_48xlarge" +) +_raxlarge__________ = "r6a.48xlarge" +_rm___________ = "r6a_metal" +_ram = "r6a.metal" +_p________ = "p4de_24xlarge" +_pde = "p4de.24xlarge" +_u______________ = "u_3tb1_56xlarge" +_u_______________ = "u-3tb1.56xlarge" +_u________________ = "u_18tb1_112xlarge" +_u_________________ = "u-18tb1.112xlarge" +_u__________________ = "u_24tb1_112xlarge" +_u___________________ = "u-24tb1.112xlarge" +_t_____ = "trn1_2xlarge" +_trn = "trn1.2xlarge" +_t______ = "trn1_32xlarge" +_trnx = "trn1.32xlarge" +_h_________ = "hpc6id_32xlarge" +_hpc = "hpc6id.32xlarge" +_cl_______________ = "c6in_large" +_cin = "c6in.large" +_cx_______________ = "c6in_xlarge" +_cinx = "c6in.xlarge" +_c_________________________________________________________________________________ = ( + "c6in_2xlarge" +) +_cinxl = "c6in.2xlarge" +_c__________________________________________________________________________________ = ( + "c6in_4xlarge" +) +_cinxla = "c6in.4xlarge" +_c___________________________________________________________________________________ = "c6in_8xlarge" +_cinxlar = "c6in.8xlarge" +_c____________________________________________________________________________________ = "c6in_12xlarge" +_cinxlarg = "c6in.12xlarge" +_c_____________________________________________________________________________________ = "c6in_16xlarge" +_cinxlarge = "c6in.16xlarge" +_c______________________________________________________________________________________ = "c6in_24xlarge" +_cinxlarge_ = "c6in.24xlarge" +_c_______________________________________________________________________________________ = "c6in_32xlarge" +_cinxlarge__ = "c6in.32xlarge" +_ml_______________ = "m6in_large" +_min = "m6in.large" +_mx________________ = "m6in_xlarge" +_minx = "m6in.xlarge" +_m_________________________________________________________________________________ = ( + "m6in_2xlarge" +) +_minxl = "m6in.2xlarge" +_m__________________________________________________________________________________ = ( + "m6in_4xlarge" +) +_minxla = "m6in.4xlarge" +_m___________________________________________________________________________________ = "m6in_8xlarge" +_minxlar = "m6in.8xlarge" +_m____________________________________________________________________________________ = "m6in_12xlarge" +_minxlarg = "m6in.12xlarge" +_m_____________________________________________________________________________________ = "m6in_16xlarge" +_minxlarge = "m6in.16xlarge" +_m______________________________________________________________________________________ = "m6in_24xlarge" +_minxlarge_ = "m6in.24xlarge" +_m_______________________________________________________________________________________ = "m6in_32xlarge" +_minxlarge__ = "m6in.32xlarge" +_ml________________ = "m6idn_large" +_midn = "m6idn.large" +_mx_________________ = "m6idn_xlarge" +_midnx = "m6idn.xlarge" +_m________________________________________________________________________________________ = "m6idn_2xlarge" +_midnxl = "m6idn.2xlarge" +_m_________________________________________________________________________________________ = "m6idn_4xlarge" +_midnxla = "m6idn.4xlarge" +_m__________________________________________________________________________________________ = "m6idn_8xlarge" +_midnxlar = "m6idn.8xlarge" +_m___________________________________________________________________________________________ = "m6idn_12xlarge" +_midnxlarg = "m6idn.12xlarge" +_m____________________________________________________________________________________________ = "m6idn_16xlarge" +_midnxlarge = "m6idn.16xlarge" +_m_____________________________________________________________________________________________ = "m6idn_24xlarge" +_midnxlarge_ = "m6idn.24xlarge" +_m______________________________________________________________________________________________ = "m6idn_32xlarge" +_midnxlarge__ = "m6idn.32xlarge" +_rl______________ = "r6in_large" +_rin = "r6in.large" +_rx______________ = "r6in_xlarge" +_rinx = "r6in.xlarge" +_r__________________________________________________________________________________ = ( + "r6in_2xlarge" +) +_rinxl = "r6in.2xlarge" +_r___________________________________________________________________________________ = "r6in_4xlarge" +_rinxla = "r6in.4xlarge" +_r____________________________________________________________________________________ = "r6in_8xlarge" +_rinxlar = "r6in.8xlarge" +_r_____________________________________________________________________________________ = "r6in_12xlarge" +_rinxlarg = "r6in.12xlarge" +_r______________________________________________________________________________________ = "r6in_16xlarge" +_rinxlarge = "r6in.16xlarge" +_r_______________________________________________________________________________________ = "r6in_24xlarge" +_rinxlarge_ = "r6in.24xlarge" +_r________________________________________________________________________________________ = "r6in_32xlarge" +_rinxlarge__ = "r6in.32xlarge" +_rl_______________ = "r6idn_large" +_ridn = "r6idn.large" +_rx_______________ = "r6idn_xlarge" +_ridnx = "r6idn.xlarge" +_r_________________________________________________________________________________________ = "r6idn_2xlarge" +_ridnxl = "r6idn.2xlarge" +_r__________________________________________________________________________________________ = "r6idn_4xlarge" +_ridnxla = "r6idn.4xlarge" +_r___________________________________________________________________________________________ = "r6idn_8xlarge" +_ridnxlar = "r6idn.8xlarge" +_r____________________________________________________________________________________________ = "r6idn_12xlarge" +_ridnxlarg = "r6idn.12xlarge" +_r_____________________________________________________________________________________________ = "r6idn_16xlarge" +_ridnxlarge = "r6idn.16xlarge" +_r______________________________________________________________________________________________ = "r6idn_24xlarge" +_ridnxlarge_ = "r6idn.24xlarge" +_r_______________________________________________________________________________________________ = "r6idn_32xlarge" +_ridnxlarge__ = "r6idn.32xlarge" +_cm_____________ = "c7g_metal" +_cgmet = "c7g.metal" +_mm________________ = "m7g_medium" +_mgme = "m7g.medium" +_ml_________________ = "m7g_large" +_mgla = "m7g.large" +_mx__________________ = "m7g_xlarge" +_mgxlarge_ = "m7g.xlarge" +_m_______________________________________________________________________________________________ = "m7g_2xlarge" +_mgxlarge__ = "m7g.2xlarge" +_m________________________________________________________________________________________________ = "m7g_4xlarge" +_mgxlarge___ = "m7g.4xlarge" +_m_________________________________________________________________________________________________ = "m7g_8xlarge" +_mgxlarge____ = "m7g.8xlarge" +_m__________________________________________________________________________________________________ = "m7g_12xlarge" +_mgxlarge_____ = "m7g.12xlarge" +_m___________________________________________________________________________________________________ = "m7g_16xlarge" +_mgxlarge______ = "m7g.16xlarge" +_mm_________________ = "m7g_metal" +_mgmet = "m7g.metal" +_rm____________ = "r7g_medium" +_rgme = "r7g.medium" +_rl________________ = "r7g_large" +_rgla = "r7g.large" +_rx________________ = "r7g_xlarge" +_rgxlarge_ = "r7g.xlarge" +_r________________________________________________________________________________________________ = "r7g_2xlarge" +_rgxlarge__ = "r7g.2xlarge" +_r_________________________________________________________________________________________________ = "r7g_4xlarge" +_rgxlarge___ = "r7g.4xlarge" +_r__________________________________________________________________________________________________ = "r7g_8xlarge" +_rgxlarge____ = "r7g.8xlarge" +_r___________________________________________________________________________________________________ = "r7g_12xlarge" +_rgxlarge_____ = "r7g.12xlarge" +_r____________________________________________________________________________________________________ = "r7g_16xlarge" +_rgxlarge______ = "r7g.16xlarge" +_rm_____________ = "r7g_metal" +_rgmet = "r7g.metal" +_cm______________ = "c6in_metal" +_cinm = "c6in.metal" +_mm__________________ = "m6in_metal" +_minm = "m6in.metal" +_mm___________________ = "m6idn_metal" +_midnm = "m6idn.metal" +_rm______________ = "r6in_metal" +_rinm = "r6in.metal" +_rm_______________ = "r6idn_metal" +_ridnm = "r6idn.metal" +_ix_______ = "inf2_xlarge" +_infxlarg = "inf2.xlarge" +_i____________________________ = "inf2_8xlarge" +_infxlarge = "inf2.8xlarge" +_i_____________________________ = "inf2_24xlarge" +_infxlarge_ = "inf2.24xlarge" +_i______________________________ = "inf2_48xlarge" +_infxlarge__ = "inf2.48xlarge" +_t_______ = "trn1n_32xlarge" +_trnn = "trn1n.32xlarge" +_il_____ = "i4g_large" +_igl = "i4g.large" +_ix________ = "i4g_xlarge" +_igx = "i4g.xlarge" +_i_______________________________ = "i4g_2xlarge" +_igxl = "i4g.2xlarge" +_i________________________________ = "i4g_4xlarge" +_igxla = "i4g.4xlarge" +_i_________________________________ = "i4g_8xlarge" +_igxlar = "i4g.8xlarge" +_i__________________________________ = "i4g_16xlarge" +_igxlarg = "i4g.16xlarge" +_h__________ = "hpc7g_4xlarge" +_hpcg = "hpc7g.4xlarge" +_h___________ = "hpc7g_8xlarge" +_hpcgx = "hpc7g.8xlarge" +_h____________ = "hpc7g_16xlarge" +_hpcgxl = "hpc7g.16xlarge" +_cm_______________ = "c7gn_medium" +_cgnm = "c7gn.medium" +_cl________________ = "c7gn_large" +_cgnla = "c7gn.large" +_cx________________ = "c7gn_xlarge" +_cgnxlarge_ = "c7gn.xlarge" +_c________________________________________________________________________________________ = "c7gn_2xlarge" +_cgnxlarge__ = "c7gn.2xlarge" +_c_________________________________________________________________________________________ = "c7gn_4xlarge" +_cgnxlarge___ = "c7gn.4xlarge" +_c__________________________________________________________________________________________ = "c7gn_8xlarge" +_cgnxlarge____ = "c7gn.8xlarge" +_c___________________________________________________________________________________________ = "c7gn_12xlarge" +_cgnxlarge_____ = "c7gn.12xlarge" +_c____________________________________________________________________________________________ = "c7gn_16xlarge" +_cgnxlarge______ = "c7gn.16xlarge" +_p_________ = "p5_48xlarge" +_pxlarge__ = "p5.48xlarge" +_ml__________________ = "m7i_large" +_mil = "m7i.large" +_mx___________________ = "m7i_xlarge" +_mixlarge___ = "m7i.xlarge" +_m____________________________________________________________________________________________________ = "m7i_2xlarge" +_mixlarge____ = "m7i.2xlarge" +_m_____________________________________________________________________________________________________ = "m7i_4xlarge" +_mixlarge_____ = "m7i.4xlarge" +_m______________________________________________________________________________________________________ = "m7i_8xlarge" +_mixlarge______ = "m7i.8xlarge" +_m_______________________________________________________________________________________________________ = "m7i_12xlarge" +_mixlarge_______ = "m7i.12xlarge" +_m________________________________________________________________________________________________________ = "m7i_16xlarge" +_mixlarge________ = "m7i.16xlarge" +_m_________________________________________________________________________________________________________ = "m7i_24xlarge" +_mixlarge_________ = "m7i.24xlarge" +_m__________________________________________________________________________________________________________ = "m7i_48xlarge" +_mixlarge__________ = "m7i.48xlarge" +_mfl = "m7i_flex_large" +_mf = "m7i-flex.large" +_mfx = "m7i_flex_xlarge" +_mf_ = "m7i-flex.xlarge" +_mf__ = "m7i_flex_2xlarge" +_mf___ = "m7i-flex.2xlarge" +_mf____ = "m7i_flex_4xlarge" +_mf_____ = "m7i-flex.4xlarge" +_mf______ = "m7i_flex_8xlarge" +_mf_______ = "m7i-flex.8xlarge" +_mm____________________ = "m7a_medium" +_mame = "m7a.medium" +_ml___________________ = "m7a_large" +_malar = "m7a.large" +_mx____________________ = "m7a_xlarge" +_maxlarge___________ = "m7a.xlarge" +_m___________________________________________________________________________________________________________ = "m7a_2xlarge" +_maxlarge____________ = "m7a.2xlarge" +_m____________________________________________________________________________________________________________ = "m7a_4xlarge" +_maxlarge_____________ = "m7a.4xlarge" +_m_____________________________________________________________________________________________________________ = "m7a_8xlarge" +_maxlarge______________ = "m7a.8xlarge" +_m______________________________________________________________________________________________________________ = "m7a_12xlarge" +_maxlarge_______________ = "m7a.12xlarge" +_m_______________________________________________________________________________________________________________ = "m7a_16xlarge" +_maxlarge________________ = "m7a.16xlarge" +_m________________________________________________________________________________________________________________ = "m7a_24xlarge" +_maxlarge_________________ = "m7a.24xlarge" +_m_________________________________________________________________________________________________________________ = "m7a_32xlarge" +_maxlarge__________________ = "m7a.32xlarge" +_m__________________________________________________________________________________________________________________ = "m7a_48xlarge" +_maxlarge___________________ = "m7a.48xlarge" +_mm_____________________ = "m7a_metal_48xl" +_m___________________________________________________________________________________________________________________ = "m7a.metal-48xl" +_h_____________ = "hpc7a_12xlarge" +_hpca = "hpc7a.12xlarge" +_h______________ = "hpc7a_24xlarge" +_hpcax = "hpc7a.24xlarge" +_h_______________ = "hpc7a_48xlarge" +_hpcaxl = "hpc7a.48xlarge" +_h________________ = "hpc7a_96xlarge" +_hpcaxla = "hpc7a.96xlarge" +_cm________________ = "c7gd_medium" +_cgdme = "c7gd.medium" +_cl_________________ = "c7gd_large" +_cgdla = "c7gd.large" +_cx_________________ = "c7gd_xlarge" +_cgdxlarge_ = "c7gd.xlarge" +_c_____________________________________________________________________________________________ = "c7gd_2xlarge" +_cgdxlarge__ = "c7gd.2xlarge" +_c______________________________________________________________________________________________ = "c7gd_4xlarge" +_cgdxlarge___ = "c7gd.4xlarge" +_c_______________________________________________________________________________________________ = "c7gd_8xlarge" +_cgdxlarge____ = "c7gd.8xlarge" +_c________________________________________________________________________________________________ = "c7gd_12xlarge" +_cgdxlarge_____ = "c7gd.12xlarge" +_c_________________________________________________________________________________________________ = "c7gd_16xlarge" +_cgdxlarge______ = "c7gd.16xlarge" +_mm______________________ = "m7gd_medium" +_mgdme = "m7gd.medium" +_ml____________________ = "m7gd_large" +_mgdla = "m7gd.large" +_mx_____________________ = "m7gd_xlarge" +_mgdxlarge_ = "m7gd.xlarge" +_m____________________________________________________________________________________________________________________ = "m7gd_2xlarge" +_mgdxlarge__ = "m7gd.2xlarge" +_m_____________________________________________________________________________________________________________________ = "m7gd_4xlarge" +_mgdxlarge___ = "m7gd.4xlarge" +_m______________________________________________________________________________________________________________________ = "m7gd_8xlarge" +_mgdxlarge____ = "m7gd.8xlarge" +_m_______________________________________________________________________________________________________________________ = "m7gd_12xlarge" +_mgdxlarge_____ = "m7gd.12xlarge" +_m________________________________________________________________________________________________________________________ = "m7gd_16xlarge" +_mgdxlarge______ = "m7gd.16xlarge" +_rm________________ = "r7gd_medium" +_rgdme = "r7gd.medium" +_rl_________________ = "r7gd_large" +_rgdla = "r7gd.large" +_rx_________________ = "r7gd_xlarge" +_rgdxlarge_ = "r7gd.xlarge" +_r_____________________________________________________________________________________________________ = "r7gd_2xlarge" +_rgdxlarge__ = "r7gd.2xlarge" +_r______________________________________________________________________________________________________ = "r7gd_4xlarge" +_rgdxlarge___ = "r7gd.4xlarge" +_r_______________________________________________________________________________________________________ = "r7gd_8xlarge" +_rgdxlarge____ = "r7gd.8xlarge" +_r________________________________________________________________________________________________________ = "r7gd_12xlarge" +_rgdxlarge_____ = "r7gd.12xlarge" +_r_________________________________________________________________________________________________________ = "r7gd_16xlarge" +_rgdxlarge______ = "r7gd.16xlarge" +_rm_________________ = "r7a_medium" +_rame = "r7a.medium" +_rl__________________ = "r7a_large" +_rala = "r7a.large" +_rx__________________ = "r7a_xlarge" +_raxlarge___________ = "r7a.xlarge" +_r__________________________________________________________________________________________________________ = "r7a_2xlarge" +_raxlarge____________ = "r7a.2xlarge" +_r___________________________________________________________________________________________________________ = "r7a_4xlarge" +_raxlarge_____________ = "r7a.4xlarge" +_r____________________________________________________________________________________________________________ = "r7a_8xlarge" +_raxlarge______________ = "r7a.8xlarge" +_r_____________________________________________________________________________________________________________ = "r7a_12xlarge" +_raxlarge_______________ = "r7a.12xlarge" +_r______________________________________________________________________________________________________________ = "r7a_16xlarge" +_raxlarge________________ = "r7a.16xlarge" +_r_______________________________________________________________________________________________________________ = "r7a_24xlarge" +_raxlarge_________________ = "r7a.24xlarge" +_r________________________________________________________________________________________________________________ = "r7a_32xlarge" +_raxlarge__________________ = "r7a.32xlarge" +_r_________________________________________________________________________________________________________________ = "r7a_48xlarge" +_raxlarge___________________ = "r7a.48xlarge" +_cl__________________ = "c7i_large" +_cila = "c7i.large" +_cx__________________ = "c7i_xlarge" +_cixlarge___ = "c7i.xlarge" +_c__________________________________________________________________________________________________ = "c7i_2xlarge" +_cixlarge____ = "c7i.2xlarge" +_c___________________________________________________________________________________________________ = "c7i_4xlarge" +_cixlarge_____ = "c7i.4xlarge" +_c____________________________________________________________________________________________________ = "c7i_8xlarge" +_cixlarge______ = "c7i.8xlarge" +_c_____________________________________________________________________________________________________ = "c7i_12xlarge" +_cixlarge_______ = "c7i.12xlarge" +_c______________________________________________________________________________________________________ = "c7i_16xlarge" +_cixlarge________ = "c7i.16xlarge" +_c_______________________________________________________________________________________________________ = "c7i_24xlarge" +_cixlarge_________ = "c7i.24xlarge" +_c________________________________________________________________________________________________________ = "c7i_48xlarge" +_cixlarge__________ = "c7i.48xlarge" +_mmm = "mac2_m2pro_metal" +_mm_______________________ = "mac2-m2pro.metal" +_rl___________________ = "r7iz_large" +_riz = "r7iz.large" +_rx___________________ = "r7iz_xlarge" +_rizx = "r7iz.xlarge" +_r__________________________________________________________________________________________________________________ = "r7iz_2xlarge" +_rizxl = "r7iz.2xlarge" +_r___________________________________________________________________________________________________________________ = "r7iz_4xlarge" +_rizxla = "r7iz.4xlarge" +_r____________________________________________________________________________________________________________________ = "r7iz_8xlarge" +_rizxlar = "r7iz.8xlarge" +_r_____________________________________________________________________________________________________________________ = "r7iz_12xlarge" +_rizxlarg = "r7iz.12xlarge" +_r______________________________________________________________________________________________________________________ = "r7iz_16xlarge" +_rizxlarge = "r7iz.16xlarge" +_r_______________________________________________________________________________________________________________________ = "r7iz_32xlarge" +_rizxlarge_ = "r7iz.32xlarge" +_cm_________________ = "c7a_medium" +_came = "c7a.medium" +_cl___________________ = "c7a_large" +_calar = "c7a.large" +_cx___________________ = "c7a_xlarge" +_caxlarge___________ = "c7a.xlarge" +_c_________________________________________________________________________________________________________ = "c7a_2xlarge" +_caxlarge____________ = "c7a.2xlarge" +_c__________________________________________________________________________________________________________ = "c7a_4xlarge" +_caxlarge_____________ = "c7a.4xlarge" +_c___________________________________________________________________________________________________________ = "c7a_8xlarge" +_caxlarge______________ = "c7a.8xlarge" +_c____________________________________________________________________________________________________________ = "c7a_12xlarge" +_caxlarge_______________ = "c7a.12xlarge" +_c_____________________________________________________________________________________________________________ = "c7a_16xlarge" +_caxlarge________________ = "c7a.16xlarge" +_c______________________________________________________________________________________________________________ = "c7a_24xlarge" +_caxlarge_________________ = "c7a.24xlarge" +_c_______________________________________________________________________________________________________________ = "c7a_32xlarge" +_caxlarge__________________ = "c7a.32xlarge" +_c________________________________________________________________________________________________________________ = "c7a_48xlarge" +_caxlarge___________________ = "c7a.48xlarge" +_cm__________________ = "c7a_metal_48xl" +_c_________________________________________________________________________________________________________________ = "c7a.metal-48xl" +_rm__________________ = "r7a_metal_48xl" +_r________________________________________________________________________________________________________________________ = "r7a.metal-48xl" +_rl____________________ = "r7i_large" +_rila = "r7i.large" +_rx____________________ = "r7i_xlarge" +_rixlarge___ = "r7i.xlarge" +_r_________________________________________________________________________________________________________________________ = "r7i_2xlarge" +_rixlarge____ = "r7i.2xlarge" +_r__________________________________________________________________________________________________________________________ = "r7i_4xlarge" +_rixlarge_____ = "r7i.4xlarge" +_r___________________________________________________________________________________________________________________________ = "r7i_8xlarge" +_rixlarge______ = "r7i.8xlarge" +_r____________________________________________________________________________________________________________________________ = "r7i_12xlarge" +_rixlarge_______ = "r7i.12xlarge" +_r_____________________________________________________________________________________________________________________________ = "r7i_16xlarge" +_rixlarge________ = "r7i.16xlarge" +_r______________________________________________________________________________________________________________________________ = "r7i_24xlarge" +_rixlarge_________ = "r7i.24xlarge" +_r_______________________________________________________________________________________________________________________________ = "r7i_48xlarge" +_rixlarge__________ = "r7i.48xlarge" +_d_____________ = "dl2q_24xlarge" +_dlq = "dl2q.24xlarge" +_mmm_ = "mac2_m2_metal" +_mm________________________ = "mac2-m2.metal" +_i___________________________________ = "i4i_12xlarge" +_iixlarge_ = "i4i.12xlarge" +_i____________________________________ = "i4i_24xlarge" +_iixlarge__ = "i4i.24xlarge" +_cm___________________ = "c7i_metal_24xl" +_c__________________________________________________________________________________________________________________ = "c7i.metal-24xl" +_cm____________________ = "c7i_metal_48xl" +_c___________________________________________________________________________________________________________________ = "c7i.metal-48xl" +_mm_________________________ = "m7i_metal_24xl" +_m_________________________________________________________________________________________________________________________ = "m7i.metal-24xl" +_mm__________________________ = "m7i_metal_48xl" +_m__________________________________________________________________________________________________________________________ = "m7i.metal-48xl" +_rm___________________ = "r7i_metal_24xl" +_r________________________________________________________________________________________________________________________________ = "r7i.metal-24xl" +_rm____________________ = "r7i_metal_48xl" +_r_________________________________________________________________________________________________________________________________ = "r7i.metal-48xl" +_rm_____________________ = "r7iz_metal_16xl" +_r__________________________________________________________________________________________________________________________________ = "r7iz.metal-16xl" +_rm______________________ = "r7iz_metal_32xl" +_r___________________________________________________________________________________________________________________________________ = "r7iz.metal-32xl" +_cm_____________________ = "c7gd_metal" +_cgdmet = "c7gd.metal" +_mm___________________________ = "m7gd_metal" +_mgdmet = "m7gd.metal" +_rm_______________________ = "r7gd_metal" +_rgdmet = "r7gd.metal" +_gx______ = "g6_xlarge" +_gxlarge________ = "g6.xlarge" +_g__________________________ = "g6_2xlarge" +_gxlarge_________ = "g6.2xlarge" +_g___________________________ = "g6_4xlarge" +_gxlarge__________ = "g6.4xlarge" +_g____________________________ = "g6_8xlarge" +_gxlarge___________ = "g6.8xlarge" +_g_____________________________ = "g6_12xlarge" +_gxlarge____________ = "g6.12xlarge" +_g______________________________ = "g6_16xlarge" +_gxlarge_____________ = "g6.16xlarge" +_g_______________________________ = "g6_24xlarge" +_gxlarge______________ = "g6.24xlarge" +_g________________________________ = "g6_48xlarge" +_gxlarge_______________ = "g6.48xlarge" +_g_________________________________ = "gr6_4xlarge" +_grx = "gr6.4xlarge" +_g__________________________________ = "gr6_8xlarge" +_grxl = "gr6.8xlarge" +_cfl = "c7i_flex_large" +_cf = "c7i-flex.large" +_cfx = "c7i_flex_xlarge" +_cf_ = "c7i-flex.xlarge" +_cf__ = "c7i_flex_2xlarge" +_cf___ = "c7i-flex.2xlarge" +_cf____ = "c7i_flex_4xlarge" +_cf_____ = "c7i-flex.4xlarge" +_cf______ = "c7i_flex_8xlarge" +_cf_______ = "c7i-flex.8xlarge" +_u____________________ = "u7i_12tb_224xlarge" +_u_____________________ = "u7i-12tb.224xlarge" +_u______________________ = "u7in_16tb_224xlarge" +_u_______________________ = "u7in-16tb.224xlarge" +_u________________________ = "u7in_24tb_224xlarge" +_u_________________________ = "u7in-24tb.224xlarge" +_u__________________________ = "u7in_32tb_224xlarge" +_u___________________________ = "u7in-32tb.224xlarge" +_u____________________________ = "u7ib_12tb_224xlarge" +_u_____________________________ = "u7ib-12tb.224xlarge" +_cm______________________ = "c7gn_metal" +_cgnme = "c7gn.metal" +_rm________________________ = "r8g_medium" +_rgmed = "r8g.medium" +_rl_____________________ = "r8g_large" +_rglar = "r8g.large" +_rx_____________________ = "r8g_xlarge" +_rgxlarge_______ = "r8g.xlarge" +_r____________________________________________________________________________________________________________________________________ = "r8g_2xlarge" +_rgxlarge________ = "r8g.2xlarge" +_r_____________________________________________________________________________________________________________________________________ = "r8g_4xlarge" +_rgxlarge_________ = "r8g.4xlarge" +_r______________________________________________________________________________________________________________________________________ = "r8g_8xlarge" +_rgxlarge__________ = "r8g.8xlarge" +_r_______________________________________________________________________________________________________________________________________ = "r8g_12xlarge" +_rgxlarge___________ = "r8g.12xlarge" +_r________________________________________________________________________________________________________________________________________ = "r8g_16xlarge" +_rgxlarge____________ = "r8g.16xlarge" +_r_________________________________________________________________________________________________________________________________________ = "r8g_24xlarge" +_rgxlarge_____________ = "r8g.24xlarge" +_r__________________________________________________________________________________________________________________________________________ = "r8g_48xlarge" +_rgxlarge______________ = "r8g.48xlarge" +_rm_________________________ = "r8g_metal_24xl" +_r___________________________________________________________________________________________________________________________________________ = "r8g.metal-24xl" +_rm__________________________ = "r8g_metal_48xl" +_r____________________________________________________________________________________________________________________________________________ = "r8g.metal-48xl" +_mmm__ = "mac2_m1ultra_metal" +_mm____________________________ = "mac2-m1ultra.metal" +_gx_______ = "g6e_xlarge" +_ge = "g6e.xlarge" +_g___________________________________ = "g6e_2xlarge" +_gex = "g6e.2xlarge" +_g____________________________________ = "g6e_4xlarge" +_gexl = "g6e.4xlarge" +_g_____________________________________ = "g6e_8xlarge" +_gexla = "g6e.8xlarge" +_g______________________________________ = "g6e_12xlarge" +_gexlar = "g6e.12xlarge" +_g_______________________________________ = "g6e_16xlarge" +_gexlarg = "g6e.16xlarge" +_g________________________________________ = "g6e_24xlarge" +_gexlarge = "g6e.24xlarge" +_g_________________________________________ = "g6e_48xlarge" +_gexlarge_ = "g6e.48xlarge" +_cm_______________________ = "c8g_medium" +_cgmedi = "c8g.medium" +_cl____________________ = "c8g_large" +_cglar = "c8g.large" +_cx____________________ = "c8g_xlarge" +_cgxlarge________ = "c8g.xlarge" +_c____________________________________________________________________________________________________________________ = "c8g_2xlarge" +_cgxlarge_________ = "c8g.2xlarge" +_c_____________________________________________________________________________________________________________________ = "c8g_4xlarge" +_cgxlarge__________ = "c8g.4xlarge" +_c______________________________________________________________________________________________________________________ = "c8g_8xlarge" +_cgxlarge___________ = "c8g.8xlarge" +_c_______________________________________________________________________________________________________________________ = "c8g_12xlarge" +_cgxlarge____________ = "c8g.12xlarge" +_c________________________________________________________________________________________________________________________ = "c8g_16xlarge" +_cgxlarge_____________ = "c8g.16xlarge" +_c_________________________________________________________________________________________________________________________ = "c8g_24xlarge" +_cgxlarge______________ = "c8g.24xlarge" +_c__________________________________________________________________________________________________________________________ = "c8g_48xlarge" +_cgxlarge_______________ = "c8g.48xlarge" +_cm________________________ = "c8g_metal_24xl" +_c___________________________________________________________________________________________________________________________ = "c8g.metal-24xl" +_cm_________________________ = "c8g_metal_48xl" +_c____________________________________________________________________________________________________________________________ = "c8g.metal-48xl" +_mm_____________________________ = "m8g_medium" +_mgmed = "m8g.medium" +_ml_____________________ = "m8g_large" +_mglar = "m8g.large" +_mx______________________ = "m8g_xlarge" +_mgxlarge_______ = "m8g.xlarge" +_m___________________________________________________________________________________________________________________________ = "m8g_2xlarge" +_mgxlarge________ = "m8g.2xlarge" +_m____________________________________________________________________________________________________________________________ = "m8g_4xlarge" +_mgxlarge_________ = "m8g.4xlarge" +_m_____________________________________________________________________________________________________________________________ = "m8g_8xlarge" +_mgxlarge__________ = "m8g.8xlarge" +_m______________________________________________________________________________________________________________________________ = "m8g_12xlarge" +_mgxlarge___________ = "m8g.12xlarge" +_m_______________________________________________________________________________________________________________________________ = "m8g_16xlarge" +_mgxlarge____________ = "m8g.16xlarge" +_m________________________________________________________________________________________________________________________________ = "m8g_24xlarge" +_mgxlarge_____________ = "m8g.24xlarge" +_m_________________________________________________________________________________________________________________________________ = "m8g_48xlarge" +_mgxlarge______________ = "m8g.48xlarge" +_mm______________________________ = "m8g_metal_24xl" +_m__________________________________________________________________________________________________________________________________ = "m8g.metal-24xl" +_mm_______________________________ = "m8g_metal_48xl" +_m___________________________________________________________________________________________________________________________________ = "m8g.metal-48xl" +_xm_____ = "x8g_medium" +_xgm = "x8g.medium" +_xl_ = "x8g_large" +_xgl = "x8g.large" +_xx____ = "x8g_xlarge" +_xgx = "x8g.xlarge" +_x___________________________ = "x8g_2xlarge" +_xgxl = "x8g.2xlarge" +_x____________________________ = "x8g_4xlarge" +_xgxla = "x8g.4xlarge" +_x_____________________________ = "x8g_8xlarge" +_xgxlar = "x8g.8xlarge" +_x______________________________ = "x8g_12xlarge" +_xgxlarg = "x8g.12xlarge" +_x_______________________________ = "x8g_16xlarge" +_xgxlarge = "x8g.16xlarge" +_x________________________________ = "x8g_24xlarge" +_xgxlarge_ = "x8g.24xlarge" +_x_________________________________ = "x8g_48xlarge" +_xgxlarge__ = "x8g.48xlarge" +_xm______ = "x8g_metal_24xl" +_x__________________________________ = "x8g.metal-24xl" +_xm_______ = "x8g_metal_48xl" +_x___________________________________ = "x8g.metal-48xl" +_il______ = "i7ie_large" +_iie = "i7ie.large" +_ix_________ = "i7ie_xlarge" +_iiex = "i7ie.xlarge" +_i_____________________________________ = "i7ie_2xlarge" +_iiexl = "i7ie.2xlarge" +_i______________________________________ = "i7ie_3xlarge" +_iiexla = "i7ie.3xlarge" +_i_______________________________________ = "i7ie_6xlarge" +_iiexlar = "i7ie.6xlarge" +_i________________________________________ = "i7ie_12xlarge" +_iiexlarg = "i7ie.12xlarge" +_i_________________________________________ = "i7ie_18xlarge" +_iiexlarge = "i7ie.18xlarge" +_i__________________________________________ = "i7ie_24xlarge" +_iiexlarge_ = "i7ie.24xlarge" +_i___________________________________________ = "i7ie_48xlarge" +_iiexlarge__ = "i7ie.48xlarge" +_il_______ = "i8g_large" +_igla = "i8g.large" +_ix__________ = "i8g_xlarge" +_igxlarge = "i8g.xlarge" +_i____________________________________________ = "i8g_2xlarge" +_igxlarge_ = "i8g.2xlarge" +_i_____________________________________________ = "i8g_4xlarge" +_igxlarge__ = "i8g.4xlarge" +_i______________________________________________ = "i8g_8xlarge" +_igxlarge___ = "i8g.8xlarge" +_i_______________________________________________ = "i8g_12xlarge" +_igxlarge____ = "i8g.12xlarge" +_i________________________________________________ = "i8g_16xlarge" +_igxlarge_____ = "i8g.16xlarge" +_i_________________________________________________ = "i8g_24xlarge" +_igxlarge______ = "i8g.24xlarge" +_im_____ = "i8g_metal_24xl" +_i__________________________________________________ = "i8g.metal-24xl" +_u______________________________ = "u7i_6tb_112xlarge" +_u_______________________________ = "u7i-6tb.112xlarge" +_u________________________________ = "u7i_8tb_112xlarge" +_u_________________________________ = "u7i-8tb.112xlarge" +_u__________________________________ = "u7inh_32tb_480xlarge" +_u___________________________________ = "u7inh-32tb.480xlarge" +_p__________ = "p5e_48xlarge" +_pex = "p5e.48xlarge" +_p___________ = "p5en_48xlarge" +_pen = "p5en.48xlarge" +_f____ = "f2_12xlarge" +_fxlar = "f2.12xlarge" +_f_____ = "f2_48xlarge" +_fxlarg = "f2.48xlarge" +_t________ = "trn2_48xlarge" +_trnxl = "trn2.48xlarge" +_cf________ = "c7i_flex_12xlarge" +_cf_________ = "c7i-flex.12xlarge" +_cf__________ = "c7i_flex_16xlarge" +_cf___________ = "c7i-flex.16xlarge" +_mf________ = "m7i_flex_12xlarge" +_mf_________ = "m7i-flex.12xlarge" +_mf__________ = "m7i_flex_16xlarge" +_mf___________ = "m7i-flex.16xlarge" +_im______ = "i7ie_metal_24xl" +_i___________________________________________________ = "i7ie.metal-24xl" +_im_______ = "i7ie_metal_48xl" +_i____________________________________________________ = "i7ie.metal-48xl" +_i_____________________________________________________ = "i8g_48xlarge" +_igxlarge_______ = "i8g.48xlarge" +_cm__________________________ = "c8gd_medium" +_cgdmed = "c8gd.medium" +_cl_____________________ = "c8gd_large" +_cgdlar = "c8gd.large" +_cx_____________________ = "c8gd_xlarge" +_cgdxlarge_______ = "c8gd.xlarge" +_c_____________________________________________________________________________________________________________________________ = "c8gd_2xlarge" +_cgdxlarge________ = "c8gd.2xlarge" +_c______________________________________________________________________________________________________________________________ = "c8gd_4xlarge" +_cgdxlarge_________ = "c8gd.4xlarge" +_c_______________________________________________________________________________________________________________________________ = "c8gd_8xlarge" +_cgdxlarge__________ = "c8gd.8xlarge" +_c________________________________________________________________________________________________________________________________ = "c8gd_12xlarge" +_cgdxlarge___________ = "c8gd.12xlarge" +_c_________________________________________________________________________________________________________________________________ = "c8gd_16xlarge" +_cgdxlarge____________ = "c8gd.16xlarge" +_c__________________________________________________________________________________________________________________________________ = "c8gd_24xlarge" +_cgdxlarge_____________ = "c8gd.24xlarge" +_c___________________________________________________________________________________________________________________________________ = "c8gd_48xlarge" +_cgdxlarge______________ = "c8gd.48xlarge" +_cm___________________________ = "c8gd_metal_24xl" +_c____________________________________________________________________________________________________________________________________ = "c8gd.metal-24xl" +_cm____________________________ = "c8gd_metal_48xl" +_c_____________________________________________________________________________________________________________________________________ = "c8gd.metal-48xl" +_il________ = "i7i_large" +_iil = "i7i.large" +_ix___________ = "i7i_xlarge" +_iixlarge___ = "i7i.xlarge" +_i______________________________________________________ = "i7i_2xlarge" +_iixlarge____ = "i7i.2xlarge" +_i_______________________________________________________ = "i7i_4xlarge" +_iixlarge_____ = "i7i.4xlarge" +_i________________________________________________________ = "i7i_8xlarge" +_iixlarge______ = "i7i.8xlarge" +_i_________________________________________________________ = "i7i_12xlarge" +_iixlarge_______ = "i7i.12xlarge" +_i__________________________________________________________ = "i7i_16xlarge" +_iixlarge________ = "i7i.16xlarge" +_i___________________________________________________________ = "i7i_24xlarge" +_iixlarge_________ = "i7i.24xlarge" +_i____________________________________________________________ = "i7i_48xlarge" +_iixlarge__________ = "i7i.48xlarge" +_im________ = "i7i_metal_24xl" +_i_____________________________________________________________ = "i7i.metal-24xl" +_im_________ = "i7i_metal_48xl" +_i______________________________________________________________ = "i7i.metal-48xl" +_pb = "p6_b200_48xlarge" +_pb_ = "p6-b200.48xlarge" +_mm________________________________ = "m8gd_medium" +_mgdmed = "m8gd.medium" +_ml______________________ = "m8gd_large" +_mgdlar = "m8gd.large" +_mx_______________________ = "m8gd_xlarge" +_mgdxlarge_______ = "m8gd.xlarge" +_m____________________________________________________________________________________________________________________________________ = "m8gd_2xlarge" +_mgdxlarge________ = "m8gd.2xlarge" +_m_____________________________________________________________________________________________________________________________________ = "m8gd_4xlarge" +_mgdxlarge_________ = "m8gd.4xlarge" +_m______________________________________________________________________________________________________________________________________ = "m8gd_8xlarge" +_mgdxlarge__________ = "m8gd.8xlarge" +_m_______________________________________________________________________________________________________________________________________ = "m8gd_12xlarge" +_mgdxlarge___________ = "m8gd.12xlarge" +_m________________________________________________________________________________________________________________________________________ = "m8gd_16xlarge" +_mgdxlarge____________ = "m8gd.16xlarge" +_m_________________________________________________________________________________________________________________________________________ = "m8gd_24xlarge" +_mgdxlarge_____________ = "m8gd.24xlarge" +_m__________________________________________________________________________________________________________________________________________ = "m8gd_48xlarge" +_mgdxlarge______________ = "m8gd.48xlarge" +_mm_________________________________ = "m8gd_metal_24xl" +_m___________________________________________________________________________________________________________________________________________ = "m8gd.metal-24xl" +_mm__________________________________ = "m8gd_metal_48xl" +_m____________________________________________________________________________________________________________________________________________ = "m8gd.metal-48xl" +_rm___________________________ = "r8gd_medium" +_rgdmed = "r8gd.medium" +_rl______________________ = "r8gd_large" +_rgdlar = "r8gd.large" +_rx______________________ = "r8gd_xlarge" +_rgdxlarge_______ = "r8gd.xlarge" +_r_____________________________________________________________________________________________________________________________________________ = "r8gd_2xlarge" +_rgdxlarge________ = "r8gd.2xlarge" +_r______________________________________________________________________________________________________________________________________________ = "r8gd_4xlarge" +_rgdxlarge_________ = "r8gd.4xlarge" +_r_______________________________________________________________________________________________________________________________________________ = "r8gd_8xlarge" +_rgdxlarge__________ = "r8gd.8xlarge" +_r________________________________________________________________________________________________________________________________________________ = "r8gd_12xlarge" +_rgdxlarge___________ = "r8gd.12xlarge" +_r_________________________________________________________________________________________________________________________________________________ = "r8gd_16xlarge" +_rgdxlarge____________ = "r8gd.16xlarge" +_r__________________________________________________________________________________________________________________________________________________ = "r8gd_24xlarge" +_rgdxlarge_____________ = "r8gd.24xlarge" +_r___________________________________________________________________________________________________________________________________________________ = "r8gd_48xlarge" +_rgdxlarge______________ = "r8gd.48xlarge" +_rm____________________________ = "r8gd_metal_24xl" +_r____________________________________________________________________________________________________________________________________________________ = "r8gd.metal-24xl" +_rm_____________________________ = "r8gd_metal_48xl" +_r_____________________________________________________________________________________________________________________________________________________ = "r8gd.metal-48xl" +_cm_____________________________ = "c8gn_medium" +_cgnmed = "c8gn.medium" +_cl______________________ = "c8gn_large" +_cgnlar = "c8gn.large" +_cx______________________ = "c8gn_xlarge" +_cgnxlarge_______ = "c8gn.xlarge" +_c______________________________________________________________________________________________________________________________________ = "c8gn_2xlarge" +_cgnxlarge________ = "c8gn.2xlarge" +_c_______________________________________________________________________________________________________________________________________ = "c8gn_4xlarge" +_cgnxlarge_________ = "c8gn.4xlarge" +_c________________________________________________________________________________________________________________________________________ = "c8gn_8xlarge" +_cgnxlarge__________ = "c8gn.8xlarge" +_c_________________________________________________________________________________________________________________________________________ = "c8gn_12xlarge" +_cgnxlarge___________ = "c8gn.12xlarge" +_c__________________________________________________________________________________________________________________________________________ = "c8gn_16xlarge" +_cgnxlarge____________ = "c8gn.16xlarge" +_c___________________________________________________________________________________________________________________________________________ = "c8gn_24xlarge" +_cgnxlarge_____________ = "c8gn.24xlarge" +_c____________________________________________________________________________________________________________________________________________ = "c8gn_48xlarge" +_cgnxlarge______________ = "c8gn.48xlarge" +_cm______________________________ = "c8gn_metal_24xl" +_c_____________________________________________________________________________________________________________________________________________ = "c8gn.metal-24xl" +_cm_______________________________ = "c8gn_metal_48xl" +_c______________________________________________________________________________________________________________________________________________ = "c8gn.metal-48xl" +_f______ = "f2_6xlarge" +_fxlarge = "f2.6xlarge" +_pg__ = "p6e_gb200_36xlarge" +_pg___ = "p6e-gb200.36xlarge" +_gl = "g6f_large" +_gf = "g6f.large" +_gx________ = "g6f_xlarge" +_gfx = "g6f.xlarge" +_g__________________________________________ = "g6f_2xlarge" +_gfxl = "g6f.2xlarge" +_g___________________________________________ = "g6f_4xlarge" +_gfxla = "g6f.4xlarge" +_g____________________________________________ = "gr6f_4xlarge" +_grf = "gr6f.4xlarge" +_p____________ = "p5_4xlarge" +_pxlarge___ = "p5.4xlarge" +_rl_______________________ = "r8i_large" +_rilar = "r8i.large" +_rx_______________________ = "r8i_xlarge" +_rixlarge___________ = "r8i.xlarge" +_r______________________________________________________________________________________________________________________________________________________ = "r8i_2xlarge" +_rixlarge____________ = "r8i.2xlarge" +_r_______________________________________________________________________________________________________________________________________________________ = "r8i_4xlarge" +_rixlarge_____________ = "r8i.4xlarge" +_r________________________________________________________________________________________________________________________________________________________ = "r8i_8xlarge" +_rixlarge______________ = "r8i.8xlarge" +_r_________________________________________________________________________________________________________________________________________________________ = "r8i_12xlarge" +_rixlarge_______________ = "r8i.12xlarge" +_r__________________________________________________________________________________________________________________________________________________________ = "r8i_16xlarge" +_rixlarge________________ = "r8i.16xlarge" +_r___________________________________________________________________________________________________________________________________________________________ = "r8i_24xlarge" +_rixlarge_________________ = "r8i.24xlarge" +_r____________________________________________________________________________________________________________________________________________________________ = "r8i_32xlarge" +_rixlarge__________________ = "r8i.32xlarge" +_r_____________________________________________________________________________________________________________________________________________________________ = "r8i_48xlarge" +_rixlarge___________________ = "r8i.48xlarge" +_r______________________________________________________________________________________________________________________________________________________________ = "r8i_96xlarge" +_rixlarge____________________ = "r8i.96xlarge" +_rm______________________________ = "r8i_metal_48xl" +_r_______________________________________________________________________________________________________________________________________________________________ = "r8i.metal-48xl" +_rm_______________________________ = "r8i_metal_96xl" +_r________________________________________________________________________________________________________________________________________________________________ = "r8i.metal-96xl" +_rfl = "r8i_flex_large" +_rf = "r8i-flex.large" +_rfx = "r8i_flex_xlarge" +_rf_ = "r8i-flex.xlarge" +_rf__ = "r8i_flex_2xlarge" +_rf___ = "r8i-flex.2xlarge" +_rf____ = "r8i_flex_4xlarge" +_rf_____ = "r8i-flex.4xlarge" +_rf______ = "r8i_flex_8xlarge" +_rf_______ = "r8i-flex.8xlarge" +_rf________ = "r8i_flex_12xlarge" +_rf_________ = "r8i-flex.12xlarge" +_rf__________ = "r8i_flex_16xlarge" +_rf___________ = "r8i-flex.16xlarge" +_ml_______________________ = "m8i_large" +_mila = "m8i.large" +_mx________________________ = "m8i_xlarge" +_mixlarge___________ = "m8i.xlarge" +_m_____________________________________________________________________________________________________________________________________________ = "m8i_2xlarge" +_mixlarge____________ = "m8i.2xlarge" +_m______________________________________________________________________________________________________________________________________________ = "m8i_4xlarge" +_mixlarge_____________ = "m8i.4xlarge" +_m_______________________________________________________________________________________________________________________________________________ = "m8i_8xlarge" +_mixlarge______________ = "m8i.8xlarge" +_m________________________________________________________________________________________________________________________________________________ = "m8i_12xlarge" +_mixlarge_______________ = "m8i.12xlarge" +_m_________________________________________________________________________________________________________________________________________________ = "m8i_16xlarge" +_mixlarge________________ = "m8i.16xlarge" +_m__________________________________________________________________________________________________________________________________________________ = "m8i_24xlarge" +_mixlarge_________________ = "m8i.24xlarge" +_m___________________________________________________________________________________________________________________________________________________ = "m8i_32xlarge" +_mixlarge__________________ = "m8i.32xlarge" +_m____________________________________________________________________________________________________________________________________________________ = "m8i_48xlarge" +_mixlarge___________________ = "m8i.48xlarge" +_m_____________________________________________________________________________________________________________________________________________________ = "m8i_96xlarge" +_mixlarge____________________ = "m8i.96xlarge" +_mm___________________________________ = "m8i_metal_48xl" +_m______________________________________________________________________________________________________________________________________________________ = "m8i.metal-48xl" +_mm____________________________________ = "m8i_metal_96xl" +_m_______________________________________________________________________________________________________________________________________________________ = "m8i.metal-96xl" +_mfl_ = "m8i_flex_large" +_mf____________ = "m8i-flex.large" +_mfx_ = "m8i_flex_xlarge" +_mf_____________ = "m8i-flex.xlarge" +_mf______________ = "m8i_flex_2xlarge" +_mf_______________ = "m8i-flex.2xlarge" +_mf________________ = "m8i_flex_4xlarge" +_mf_________________ = "m8i-flex.4xlarge" +_mf__________________ = "m8i_flex_8xlarge" +_mf___________________ = "m8i-flex.8xlarge" +_mf____________________ = "m8i_flex_12xlarge" +_mf_____________________ = "m8i-flex.12xlarge" +_mf______________________ = "m8i_flex_16xlarge" +_mf_______________________ = "m8i-flex.16xlarge" +_il_________ = "i8ge_large" +_ige = "i8ge.large" +_ix____________ = "i8ge_xlarge" +_igex = "i8ge.xlarge" +_i_______________________________________________________________ = "i8ge_2xlarge" +_igexl = "i8ge.2xlarge" +_i________________________________________________________________ = "i8ge_3xlarge" +_igexla = "i8ge.3xlarge" +_i_________________________________________________________________ = "i8ge_6xlarge" +_igexlar = "i8ge.6xlarge" +_i__________________________________________________________________ = "i8ge_12xlarge" +_igexlarg = "i8ge.12xlarge" +_i___________________________________________________________________ = "i8ge_18xlarge" +_igexlarge = "i8ge.18xlarge" +_i____________________________________________________________________ = "i8ge_24xlarge" +_igexlarge_ = "i8ge.24xlarge" +_i_____________________________________________________________________ = ( + "i8ge_48xlarge" +) +_igexlarge__ = "i8ge.48xlarge" +_im__________ = "i8ge_metal_24xl" +_i______________________________________________________________________ = ( + "i8ge.metal-24xl" +) +_im___________ = "i8ge_metal_48xl" +_i_______________________________________________________________________ = ( + "i8ge.metal-48xl" +) +_mmm___ = "mac_m4_metal" +_mm_____________________________________ = "mac-m4.metal" +_mmm____ = "mac_m4pro_metal" +_mm______________________________________ = "mac-m4pro.metal" +_rm________________________________ = "r8gn_medium" +_rgn = "r8gn.medium" +_rl________________________ = "r8gn_large" +_rgnl = "r8gn.large" +_rx________________________ = "r8gn_xlarge" +_rgnx = "r8gn.xlarge" +_r_________________________________________________________________________________________________________________________________________________________________ = "r8gn_2xlarge" +_rgnxl = "r8gn.2xlarge" +_r__________________________________________________________________________________________________________________________________________________________________ = "r8gn_4xlarge" +_rgnxla = "r8gn.4xlarge" +_r___________________________________________________________________________________________________________________________________________________________________ = "r8gn_8xlarge" +_rgnxlar = "r8gn.8xlarge" +_r____________________________________________________________________________________________________________________________________________________________________ = "r8gn_12xlarge" +_rgnxlarg = "r8gn.12xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________ = "r8gn_16xlarge" +_rgnxlarge = "r8gn.16xlarge" +_r______________________________________________________________________________________________________________________________________________________________________ = "r8gn_24xlarge" +_rgnxlarge_ = "r8gn.24xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________ = "r8gn_48xlarge" +_rgnxlarge__ = "r8gn.48xlarge" +_rm_________________________________ = "r8gn_metal_24xl" +_r________________________________________________________________________________________________________________________________________________________________________ = "r8gn.metal-24xl" +_rm__________________________________ = "r8gn_metal_48xl" +_r_________________________________________________________________________________________________________________________________________________________________________ = "r8gn.metal-48xl" +_cl_______________________ = "c8i_large" +_cilar = "c8i.large" +_cx_______________________ = "c8i_xlarge" +_cixlarge___________ = "c8i.xlarge" +_c_______________________________________________________________________________________________________________________________________________ = "c8i_2xlarge" +_cixlarge____________ = "c8i.2xlarge" +_c________________________________________________________________________________________________________________________________________________ = "c8i_4xlarge" +_cixlarge_____________ = "c8i.4xlarge" +_c_________________________________________________________________________________________________________________________________________________ = "c8i_8xlarge" +_cixlarge______________ = "c8i.8xlarge" +_c__________________________________________________________________________________________________________________________________________________ = "c8i_12xlarge" +_cixlarge_______________ = "c8i.12xlarge" +_c___________________________________________________________________________________________________________________________________________________ = "c8i_16xlarge" +_cixlarge________________ = "c8i.16xlarge" +_c____________________________________________________________________________________________________________________________________________________ = "c8i_24xlarge" +_cixlarge_________________ = "c8i.24xlarge" +_c_____________________________________________________________________________________________________________________________________________________ = "c8i_32xlarge" +_cixlarge__________________ = "c8i.32xlarge" +_c______________________________________________________________________________________________________________________________________________________ = "c8i_48xlarge" +_cixlarge___________________ = "c8i.48xlarge" +_c_______________________________________________________________________________________________________________________________________________________ = "c8i_96xlarge" +_cixlarge____________________ = "c8i.96xlarge" +_cm________________________________ = "c8i_metal_48xl" +_c________________________________________________________________________________________________________________________________________________________ = "c8i.metal-48xl" +_cm_________________________________ = "c8i_metal_96xl" +_c_________________________________________________________________________________________________________________________________________________________ = "c8i.metal-96xl" +_cfl_ = "c8i_flex_large" +_cf____________ = "c8i-flex.large" +_cfx_ = "c8i_flex_xlarge" +_cf_____________ = "c8i-flex.xlarge" +_cf______________ = "c8i_flex_2xlarge" +_cf_______________ = "c8i-flex.2xlarge" +_cf________________ = "c8i_flex_4xlarge" +_cf_________________ = "c8i-flex.4xlarge" +_cf__________________ = "c8i_flex_8xlarge" +_cf___________________ = "c8i-flex.8xlarge" +_cf____________________ = "c8i_flex_12xlarge" +_cf_____________________ = "c8i-flex.12xlarge" +_cf______________________ = "c8i_flex_16xlarge" +_cf_______________________ = "c8i-flex.16xlarge" +_rm___________________________________ = "r8gb_medium" +_rgb = "r8gb.medium" +_rl_________________________ = "r8gb_large" +_rgbl = "r8gb.large" +_rx_________________________ = "r8gb_xlarge" +_rgbx = "r8gb.xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________ = "r8gb_2xlarge" +_rgbxl = "r8gb.2xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________ = "r8gb_4xlarge" +_rgbxla = "r8gb.4xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________ = "r8gb_8xlarge" +_rgbxlar = "r8gb.8xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________ = "r8gb_12xlarge" +_rgbxlarg = "r8gb.12xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________ = "r8gb_16xlarge" +_rgbxlarge = "r8gb.16xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________ = "r8gb_24xlarge" +_rgbxlarge_ = "r8gb.24xlarge" +_rm____________________________________ = "r8gb_metal_24xl" +_r________________________________________________________________________________________________________________________________________________________________________________ = "r8gb.metal-24xl" +_mm_______________________________________ = "m8a_medium" +_mamed = "m8a.medium" +_ml________________________ = "m8a_large" +_malarg = "m8a.large" +_mx_________________________ = "m8a_xlarge" +_maxlarge____________________ = "m8a.xlarge" +_m________________________________________________________________________________________________________________________________________________________ = "m8a_2xlarge" +_maxlarge_____________________ = "m8a.2xlarge" +_m_________________________________________________________________________________________________________________________________________________________ = "m8a_4xlarge" +_maxlarge______________________ = "m8a.4xlarge" +_m__________________________________________________________________________________________________________________________________________________________ = "m8a_8xlarge" +_maxlarge_______________________ = "m8a.8xlarge" +_m___________________________________________________________________________________________________________________________________________________________ = "m8a_12xlarge" +_maxlarge________________________ = "m8a.12xlarge" +_m____________________________________________________________________________________________________________________________________________________________ = "m8a_16xlarge" +_maxlarge_________________________ = "m8a.16xlarge" +_m_____________________________________________________________________________________________________________________________________________________________ = "m8a_24xlarge" +_maxlarge__________________________ = "m8a.24xlarge" +_m______________________________________________________________________________________________________________________________________________________________ = "m8a_48xlarge" +_maxlarge___________________________ = "m8a.48xlarge" +_mm________________________________________ = "m8a_metal_24xl" +_m_______________________________________________________________________________________________________________________________________________________________ = "m8a.metal-24xl" +_mm_________________________________________ = "m8a_metal_48xl" +_m________________________________________________________________________________________________________________________________________________________________ = "m8a.metal-48xl" +_t_________ = "trn2_3xlarge" +_trnxla = "trn2.3xlarge" +_rm_____________________________________ = "r8a_medium" +_ramed = "r8a.medium" +_rl__________________________ = "r8a_large" +_ralar = "r8a.large" +_rx__________________________ = "r8a_xlarge" +_raxlarge____________________ = "r8a.xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________ = "r8a_2xlarge" +_raxlarge_____________________ = "r8a.2xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________ = "r8a_4xlarge" +_raxlarge______________________ = "r8a.4xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________ = "r8a_8xlarge" +_raxlarge_______________________ = "r8a.8xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________ = "r8a_12xlarge" +_raxlarge________________________ = "r8a.12xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________ = "r8a_16xlarge" +_raxlarge_________________________ = "r8a.16xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________ = "r8a_24xlarge" +_raxlarge__________________________ = "r8a.24xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________ = "r8a_48xlarge" +_raxlarge___________________________ = "r8a.48xlarge" +_rm______________________________________ = "r8a_metal_24xl" +_r________________________________________________________________________________________________________________________________________________________________________________________ = "r8a.metal-24xl" +_rm_______________________________________ = "r8a_metal_48xl" +_r_________________________________________________________________________________________________________________________________________________________________________________________ = "r8a.metal-48xl" +_pb__ = "p6_b300_48xlarge" +_pb___ = "p6-b300.48xlarge" +_cm__________________________________ = "c8a_medium" +_camed = "c8a.medium" +_cl________________________ = "c8a_large" +_calarg = "c8a.large" +_cx________________________ = "c8a_xlarge" +_caxlarge____________________ = "c8a.xlarge" +_c__________________________________________________________________________________________________________________________________________________________ = "c8a_2xlarge" +_caxlarge_____________________ = "c8a.2xlarge" +_c___________________________________________________________________________________________________________________________________________________________ = "c8a_4xlarge" +_caxlarge______________________ = "c8a.4xlarge" +_c____________________________________________________________________________________________________________________________________________________________ = "c8a_8xlarge" +_caxlarge_______________________ = "c8a.8xlarge" +_c_____________________________________________________________________________________________________________________________________________________________ = "c8a_12xlarge" +_caxlarge________________________ = "c8a.12xlarge" +_c______________________________________________________________________________________________________________________________________________________________ = "c8a_16xlarge" +_caxlarge_________________________ = "c8a.16xlarge" +_c_______________________________________________________________________________________________________________________________________________________________ = "c8a_24xlarge" +_caxlarge__________________________ = "c8a.24xlarge" +_c________________________________________________________________________________________________________________________________________________________________ = "c8a_48xlarge" +_caxlarge___________________________ = "c8a.48xlarge" +_cm___________________________________ = "c8a_metal_24xl" +_c_________________________________________________________________________________________________________________________________________________________________ = "c8a.metal-24xl" +_cm____________________________________ = "c8a_metal_48xl" +_c__________________________________________________________________________________________________________________________________________________________________ = "c8a.metal-48xl" +_c___________________________________________________________________________________________________________________________________________________________________ = "c8gb_12xlarge" +_cgb = "c8gb.12xlarge" +_c____________________________________________________________________________________________________________________________________________________________________ = "c8gb_16xlarge" +_cgbx = "c8gb.16xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________ = "c8gb_24xlarge" +_cgbxl = "c8gb.24xlarge" +_c______________________________________________________________________________________________________________________________________________________________________ = "c8gb_2xlarge" +_cgbxla = "c8gb.2xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________ = "c8gb_4xlarge" +_cgbxlar = "c8gb.4xlarge" +_c________________________________________________________________________________________________________________________________________________________________________ = "c8gb_8xlarge" +_cgbxlarg = "c8gb.8xlarge" +_cl_________________________ = "c8gb_large" +_cgbl = "c8gb.large" +_cm_____________________________________ = "c8gb_medium" +_cgbm = "c8gb.medium" +_cm______________________________________ = "c8gb_metal_24xl" +_c_________________________________________________________________________________________________________________________________________________________________________ = "c8gb.metal-24xl" +_cx_________________________ = "c8gb_xlarge" +_cgbxlarge = "c8gb.xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________ = "c8gb_48xlarge" +_cgbxlarge_ = "c8gb.48xlarge" +_cm_______________________________________ = "c8gb_metal_48xl" +_c___________________________________________________________________________________________________________________________________________________________________________ = "c8gb.metal-48xl" +_m_________________________________________________________________________________________________________________________________________________________________ = "m8gb_12xlarge" +_mgb = "m8gb.12xlarge" +_m__________________________________________________________________________________________________________________________________________________________________ = "m8gb_16xlarge" +_mgbx = "m8gb.16xlarge" +_m___________________________________________________________________________________________________________________________________________________________________ = "m8gb_24xlarge" +_mgbxl = "m8gb.24xlarge" +_m____________________________________________________________________________________________________________________________________________________________________ = "m8gb_2xlarge" +_mgbxla = "m8gb.2xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________ = "m8gb_4xlarge" +_mgbxlar = "m8gb.4xlarge" +_m______________________________________________________________________________________________________________________________________________________________________ = "m8gb_8xlarge" +_mgbxlarg = "m8gb.8xlarge" +_ml_________________________ = "m8gb_large" +_mgbl = "m8gb.large" +_mm__________________________________________ = "m8gb_medium" +_mgbm = "m8gb.medium" +_mx__________________________ = "m8gb_xlarge" +_mgbxlarge = "m8gb.xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________ = "m8gb_48xlarge" +_mgbxlarge_ = "m8gb.48xlarge" +_mm___________________________________________ = "m8gb_metal_24xl" +_m________________________________________________________________________________________________________________________________________________________________________ = "m8gb.metal-24xl" +_mm____________________________________________ = "m8gb_metal_48xl" +_m_________________________________________________________________________________________________________________________________________________________________________ = "m8gb.metal-48xl" +_m__________________________________________________________________________________________________________________________________________________________________________ = "m8gn_12xlarge" +_mgn = "m8gn.12xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________ = "m8gn_16xlarge" +_mgnx = "m8gn.16xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________ = "m8gn_24xlarge" +_mgnxl = "m8gn.24xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________ = "m8gn_2xlarge" +_mgnxla = "m8gn.2xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________ = "m8gn_48xlarge" +_mgnxlar = "m8gn.48xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________ = "m8gn_4xlarge" +_mgnxlarg = "m8gn.4xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________ = "m8gn_8xlarge" +_mgnxlarge = "m8gn.8xlarge" +_ml__________________________ = "m8gn_large" +_mgnl = "m8gn.large" +_mm_____________________________________________ = "m8gn_medium" +_mgnm = "m8gn.medium" +_mx___________________________ = "m8gn_xlarge" +_mgnxlarge_ = "m8gn.xlarge" +_mm______________________________________________ = "m8gn_metal_24xl" +_m_________________________________________________________________________________________________________________________________________________________________________________ = "m8gn.metal-24xl" +_mm_______________________________________________ = "m8gn_metal_48xl" +_m__________________________________________________________________________________________________________________________________________________________________________________ = "m8gn.metal-48xl" +_x____________________________________ = "x8aedz_12xlarge" +_xa = "x8aedz.12xlarge" +_x_____________________________________ = "x8aedz_24xlarge" +_xae = "x8aedz.24xlarge" +_x______________________________________ = "x8aedz_3xlarge" +_xaed = "x8aedz.3xlarge" +_x_______________________________________ = "x8aedz_6xlarge" +_xaedz = "x8aedz.6xlarge" +_xl__ = "x8aedz_large" +_xaedzl = "x8aedz.large" +_xm________ = "x8aedz_metal_12xl" +_x________________________________________ = "x8aedz.metal-12xl" +_xm_________ = "x8aedz_metal_24xl" +_x_________________________________________ = "x8aedz.metal-24xl" +_xx_____ = "x8aedz_xlarge" +_xaedzx = "x8aedz.xlarge" +_mm________________________________________________ = "m8azn_medium" +_maz = "m8azn.medium" +_ml___________________________ = "m8azn_large" +_mazn = "m8azn.large" +_mx____________________________ = "m8azn_xlarge" +_maznx = "m8azn.xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________ = "m8azn_3xlarge" +_maznxl = "m8azn.3xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________ = "m8azn_6xlarge" +_maznxla = "m8azn.6xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________ = "m8azn_12xlarge" +_maznxlar = "m8azn.12xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________ = "m8azn_24xlarge" +_maznxlarg = "m8azn.24xlarge" +_mm_________________________________________________ = "m8azn_metal_12xl" +_m_______________________________________________________________________________________________________________________________________________________________________________________ = "m8azn.metal-12xl" +_mm__________________________________________________ = "m8azn_metal_24xl" +_m________________________________________________________________________________________________________________________________________________________________________________________ = "m8azn.metal-24xl" +_xl___ = "x8i_large" +_xil = "x8i.large" +_xx______ = "x8i_xlarge" +_xix = "x8i.xlarge" +_x__________________________________________ = "x8i_2xlarge" +_xixl = "x8i.2xlarge" +_x___________________________________________ = "x8i_4xlarge" +_xixla = "x8i.4xlarge" +_x____________________________________________ = "x8i_8xlarge" +_xixlar = "x8i.8xlarge" +_x_____________________________________________ = "x8i_12xlarge" +_xixlarg = "x8i.12xlarge" +_x______________________________________________ = "x8i_16xlarge" +_xixlarge = "x8i.16xlarge" +_x_______________________________________________ = "x8i_24xlarge" +_xixlarge_ = "x8i.24xlarge" +_x________________________________________________ = "x8i_32xlarge" +_xixlarge__ = "x8i.32xlarge" +_x_________________________________________________ = "x8i_48xlarge" +_xixlarge___ = "x8i.48xlarge" +_x__________________________________________________ = "x8i_64xlarge" +_xixlarge____ = "x8i.64xlarge" +_x___________________________________________________ = "x8i_96xlarge" +_xixlarge_____ = "x8i.96xlarge" +_xm__________ = "x8i_metal_48xl" +_x____________________________________________________ = "x8i.metal-48xl" +_xm___________ = "x8i_metal_96xl" +_x_____________________________________________________ = "x8i.metal-96xl" +_mmm_____ = "mac_m4max_metal" +_mm___________________________________________________ = "mac-m4max.metal" +_g_____________________________________________ = "g7e_2xlarge" +_gexlarge__ = "g7e.2xlarge" +_g______________________________________________ = "g7e_4xlarge" +_gexlarge___ = "g7e.4xlarge" +_g_______________________________________________ = "g7e_8xlarge" +_gexlarge____ = "g7e.8xlarge" +_g________________________________________________ = "g7e_12xlarge" +_gexlarge_____ = "g7e.12xlarge" +_g_________________________________________________ = "g7e_24xlarge" +_gexlarge______ = "g7e.24xlarge" +_g__________________________________________________ = "g7e_48xlarge" +_gexlarge_______ = "g7e.48xlarge" +_rl___________________________ = "r8id_large" +_ridl = "r8id.large" +_rx___________________________ = "r8id_xlarge" +_ridxlarge___ = "r8id.xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_2xlarge" +_ridxlarge____ = "r8id.2xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_4xlarge" +_ridxlarge_____ = "r8id.4xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_8xlarge" +_ridxlarge______ = "r8id.8xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_12xlarge" +_ridxlarge_______ = "r8id.12xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_16xlarge" +_ridxlarge________ = "r8id.16xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_24xlarge" +_ridxlarge_________ = "r8id.24xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_32xlarge" +_ridxlarge__________ = "r8id.32xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_48xlarge" +_ridxlarge___________ = "r8id.48xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________ = "r8id_96xlarge" +_ridxlarge____________ = "r8id.96xlarge" +_rm________________________________________ = "r8id_metal_48xl" +_r___________________________________________________________________________________________________________________________________________________________________________________________________ = "r8id.metal-48xl" +_rm_________________________________________ = "r8id_metal_96xl" +_r____________________________________________________________________________________________________________________________________________________________________________________________________ = "r8id.metal-96xl" +_cl__________________________ = "c8id_large" +_cidl = "c8id.large" +_cx__________________________ = "c8id_xlarge" +_cidxlarge___ = "c8id.xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________ = "c8id_2xlarge" +_cidxlarge____ = "c8id.2xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________ = "c8id_4xlarge" +_cidxlarge_____ = "c8id.4xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________ = "c8id_8xlarge" +_cidxlarge______ = "c8id.8xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________ = "c8id_12xlarge" +_cidxlarge_______ = "c8id.12xlarge" +_c________________________________________________________________________________________________________________________________________________________________________________ = "c8id_16xlarge" +_cidxlarge________ = "c8id.16xlarge" +_c_________________________________________________________________________________________________________________________________________________________________________________ = "c8id_24xlarge" +_cidxlarge_________ = "c8id.24xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________ = "c8id_32xlarge" +_cidxlarge__________ = "c8id.32xlarge" +_c___________________________________________________________________________________________________________________________________________________________________________________ = "c8id_48xlarge" +_cidxlarge___________ = "c8id.48xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________________ = "c8id_96xlarge" +_cidxlarge____________ = "c8id.96xlarge" +_cm________________________________________ = "c8id_metal_48xl" +_c_____________________________________________________________________________________________________________________________________________________________________________________ = "c8id.metal-48xl" +_cm_________________________________________ = "c8id_metal_96xl" +_c______________________________________________________________________________________________________________________________________________________________________________________ = "c8id.metal-96xl" +_ml____________________________ = "m8id_large" +_midl = "m8id.large" +_mx_____________________________ = "m8id_xlarge" +_midxlarge___ = "m8id.xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_2xlarge" +_midxlarge____ = "m8id.2xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_4xlarge" +_midxlarge_____ = "m8id.4xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_8xlarge" +_midxlarge______ = "m8id.8xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_12xlarge" +_midxlarge_______ = "m8id.12xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_16xlarge" +_midxlarge________ = "m8id.16xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_24xlarge" +_midxlarge_________ = "m8id.24xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_32xlarge" +_midxlarge__________ = "m8id.32xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_48xlarge" +_midxlarge___________ = "m8id.48xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________ = "m8id_96xlarge" +_midxlarge____________ = "m8id.96xlarge" +_mm____________________________________________________ = "m8id_metal_48xl" +_m__________________________________________________________________________________________________________________________________________________________________________________________________ = "m8id.metal-48xl" +_mm_____________________________________________________ = "m8id_metal_96xl" +_m___________________________________________________________________________________________________________________________________________________________________________________________________ = "m8id.metal-96xl" +_h_________________ = "hpc8a_96xlarge" +_hpcaxlar = "hpc8a.96xlarge" +_cl___________________________ = "c8in_large" +_cinl = "c8in.large" +_cx___________________________ = "c8in_xlarge" +_cinxlarge___ = "c8in.xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________ = "c8in_2xlarge" +_cinxlarge____ = "c8in.2xlarge" +_c________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_4xlarge" +_cinxlarge_____ = "c8in.4xlarge" +_c_________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_8xlarge" +_cinxlarge______ = "c8in.8xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_12xlarge" +_cinxlarge_______ = "c8in.12xlarge" +_c___________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_16xlarge" +_cinxlarge________ = "c8in.16xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_24xlarge" +_cinxlarge_________ = "c8in.24xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_32xlarge" +_cinxlarge__________ = "c8in.32xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_48xlarge" +_cinxlarge___________ = "c8in.48xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________________ = "c8in_96xlarge" +_cinxlarge____________ = "c8in.96xlarge" +_cm__________________________________________ = "c8in_metal_48xl" +_c________________________________________________________________________________________________________________________________________________________________________________________________ = "c8in.metal-48xl" +_cm___________________________________________ = "c8in_metal_96xl" +_c_________________________________________________________________________________________________________________________________________________________________________________________________ = "c8in.metal-96xl" +_cl____________________________ = "c8ib_large" +_cib = "c8ib.large" +_cx____________________________ = "c8ib_xlarge" +_cibx = "c8ib.xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_2xlarge" +_cibxl = "c8ib.2xlarge" +_c___________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_4xlarge" +_cibxla = "c8ib.4xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_8xlarge" +_cibxlar = "c8ib.8xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_12xlarge" +_cibxlarg = "c8ib.12xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_16xlarge" +_cibxlarge = "c8ib.16xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_24xlarge" +_cibxlarge_ = "c8ib.24xlarge" +_c________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_32xlarge" +_cibxlarge__ = "c8ib.32xlarge" +_c_________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_48xlarge" +_cibxlarge___ = "c8ib.48xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib_96xlarge" +_cibxlarge____ = "c8ib.96xlarge" +_cm____________________________________________ = "c8ib_metal_48xl" +_c___________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib.metal-48xl" +_cm_____________________________________________ = "c8ib_metal_96xl" +_c____________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ib.metal-96xl" +_rl____________________________ = "r8in_large" +_rinl = "r8in.large" +_rx____________________________ = "r8in_xlarge" +_rinxlarge___ = "r8in.xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_2xlarge" +_rinxlarge____ = "r8in.2xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_4xlarge" +_rinxlarge_____ = "r8in.4xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_8xlarge" +_rinxlarge______ = "r8in.8xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_12xlarge" +_rinxlarge_______ = "r8in.12xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_16xlarge" +_rinxlarge________ = "r8in.16xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_24xlarge" +_rinxlarge_________ = "r8in.24xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_32xlarge" +_rinxlarge__________ = "r8in.32xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_48xlarge" +_rinxlarge___________ = "r8in.48xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in_96xlarge" +_rinxlarge____________ = "r8in.96xlarge" +_rl_____________________________ = "r8ib_large" +_rib = "r8ib.large" +_rx_____________________________ = "r8ib_xlarge" +_ribx = "r8ib.xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_2xlarge" +_ribxl = "r8ib.2xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_4xlarge" +_ribxla = "r8ib.4xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_8xlarge" +_ribxlar = "r8ib.8xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_12xlarge" +_ribxlarg = "r8ib.12xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_16xlarge" +_ribxlarge = "r8ib.16xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_24xlarge" +_ribxlarge_ = "r8ib.24xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_32xlarge" +_ribxlarge__ = "r8ib.32xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_48xlarge" +_ribxlarge___ = "r8ib.48xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib_96xlarge" +_ribxlarge____ = "r8ib.96xlarge" +_ml_____________________________ = "m8in_large" +_minl = "m8in.large" +_mx______________________________ = "m8in_xlarge" +_minxlarge___ = "m8in.xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_2xlarge" +_minxlarge____ = "m8in.2xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_4xlarge" +_minxlarge_____ = "m8in.4xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_8xlarge" +_minxlarge______ = "m8in.8xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_12xlarge" +_minxlarge_______ = "m8in.12xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_16xlarge" +_minxlarge________ = "m8in.16xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_24xlarge" +_minxlarge_________ = "m8in.24xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_32xlarge" +_minxlarge__________ = "m8in.32xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_48xlarge" +_minxlarge___________ = "m8in.48xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in_96xlarge" +_minxlarge____________ = "m8in.96xlarge" +_ml______________________________ = "m8ib_large" +_mib = "m8ib.large" +_mx_______________________________ = "m8ib_xlarge" +_mibx = "m8ib.xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_2xlarge" +_mibxl = "m8ib.2xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_4xlarge" +_mibxla = "m8ib.4xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_8xlarge" +_mibxlar = "m8ib.8xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_12xlarge" +_mibxlarg = "m8ib.12xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_16xlarge" +_mibxlarge = "m8ib.16xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_24xlarge" +_mibxlarge_ = "m8ib.24xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_32xlarge" +_mibxlarge__ = "m8ib.32xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_48xlarge" +_mibxlarge___ = "m8ib.48xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib_96xlarge" +_mibxlarge____ = "m8ib.96xlarge" +_ml_______________________________ = "m8ine_large" +_mine = "m8ine.large" +_mx________________________________ = "m8ine_xlarge" +_minex = "m8ine.xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ine_2xlarge" +_minexl = "m8ine.2xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ine_4xlarge" +_minexla = "m8ine.4xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ine_8xlarge" +_minexlar = "m8ine.8xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ine_12xlarge" +_minexlarg = "m8ine.12xlarge" +_cl_____________________________ = "c8ine_large" +_cine = "c8ine.large" +_cx_____________________________ = "c8ine_xlarge" +_cinex = "c8ine.xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ine_2xlarge" +_cinexl = "c8ine.2xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ine_4xlarge" +_cinexla = "c8ine.4xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ine_8xlarge" +_cinexlar = "c8ine.8xlarge" +_c________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c8ine_12xlarge" +_cinexlarg = "c8ine.12xlarge" +_ml________________________________ = "m8idn_large" +_midnl = "m8idn.large" +_mx_________________________________ = "m8idn_xlarge" +_midnxlarge___ = "m8idn.xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_2xlarge" +_midnxlarge____ = "m8idn.2xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_4xlarge" +_midnxlarge_____ = "m8idn.4xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_8xlarge" +_midnxlarge______ = "m8idn.8xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_12xlarge" +_midnxlarge_______ = "m8idn.12xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_16xlarge" +_midnxlarge________ = "m8idn.16xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_24xlarge" +_midnxlarge_________ = "m8idn.24xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_32xlarge" +_midnxlarge__________ = "m8idn.32xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_48xlarge" +_midnxlarge___________ = "m8idn.48xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn_96xlarge" +_midnxlarge____________ = "m8idn.96xlarge" +_rl______________________________ = "r8idn_large" +_ridnl = "r8idn.large" +_rx______________________________ = "r8idn_xlarge" +_ridnxlarge___ = "r8idn.xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_2xlarge" +_ridnxlarge____ = "r8idn.2xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_4xlarge" +_ridnxlarge_____ = "r8idn.4xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_8xlarge" +_ridnxlarge______ = "r8idn.8xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_12xlarge" +_ridnxlarge_______ = "r8idn.12xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_16xlarge" +_ridnxlarge________ = "r8idn.16xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_24xlarge" +_ridnxlarge_________ = "r8idn.24xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_32xlarge" +_ridnxlarge__________ = "r8idn.32xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_48xlarge" +_ridnxlarge___________ = "r8idn.48xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn_96xlarge" +_ridnxlarge____________ = "r8idn.96xlarge" +_ml_________________________________ = "m8idb_large" +_midb = "m8idb.large" +_mx__________________________________ = "m8idb_xlarge" +_midbx = "m8idb.xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_2xlarge" +_midbxl = "m8idb.2xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_4xlarge" +_midbxla = "m8idb.4xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_8xlarge" +_midbxlar = "m8idb.8xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_12xlarge" +_midbxlarg = "m8idb.12xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_16xlarge" +_midbxlarge = "m8idb.16xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_24xlarge" +_midbxlarge_ = "m8idb.24xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_32xlarge" +_midbxlarge__ = "m8idb.32xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_48xlarge" +_midbxlarge___ = "m8idb.48xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb_96xlarge" +_midbxlarge____ = "m8idb.96xlarge" +_rl_______________________________ = "r8idb_large" +_ridb = "r8idb.large" +_rx_______________________________ = "r8idb_xlarge" +_ridbx = "r8idb.xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_2xlarge" +_ridbxl = "r8idb.2xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_4xlarge" +_ridbxla = "r8idb.4xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_8xlarge" +_ridbxlar = "r8idb.8xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_12xlarge" +_ridbxlarg = "r8idb.12xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_16xlarge" +_ridbxlarge = "r8idb.16xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_24xlarge" +_ridbxlarge_ = "r8idb.24xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_32xlarge" +_ridbxlarge__ = "r8idb.32xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_48xlarge" +_ridbxlarge___ = "r8idb.48xlarge" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb_96xlarge" +_ridbxlarge____ = "r8idb.96xlarge" +_mmm______ = "mac_m3ultra_metal" +_mm______________________________________________________ = "mac-m3ultra.metal" +_ml__________________________________ = "m9g_large" +_mglarg = "m9g.large" +_mx___________________________________ = "m9g_xlarge" +_mgxlarge_______________ = "m9g.xlarge" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_2xlarge" +_mgxlarge________________ = "m9g.2xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_4xlarge" +_mgxlarge_________________ = "m9g.4xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_8xlarge" +_mgxlarge__________________ = "m9g.8xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_12xlarge" +_mgxlarge___________________ = "m9g.12xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_16xlarge" +_mgxlarge____________________ = "m9g.16xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_24xlarge" +_mgxlarge_____________________ = "m9g.24xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g_48xlarge" +_mgxlarge______________________ = "m9g.48xlarge" +_mm_______________________________________________________ = "m9g_metal_24xl" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g.metal-24xl" +_mm________________________________________________________ = "m9g_metal_48xl" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9g.metal-48xl" +_ml___________________________________ = "m9gd_large" +_mgdlarg = "m9gd.large" +_mx____________________________________ = "m9gd_xlarge" +_mgdxlarge_______________ = "m9gd.xlarge" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_2xlarge" +_mgdxlarge________________ = "m9gd.2xlarge" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_4xlarge" +_mgdxlarge_________________ = "m9gd.4xlarge" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_8xlarge" +_mgdxlarge__________________ = "m9gd.8xlarge" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_12xlarge" +_mgdxlarge___________________ = "m9gd.12xlarge" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_16xlarge" +_mgdxlarge____________________ = "m9gd.16xlarge" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_24xlarge" +_mgdxlarge_____________________ = "m9gd.24xlarge" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd_48xlarge" +_mgdxlarge______________________ = "m9gd.48xlarge" +_mm_________________________________________________________ = "m9gd_metal_24xl" +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd.metal-24xl" +_mm__________________________________________________________ = "m9gd_metal_48xl" +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m9gd.metal-48xl" +_rm__________________________________________ = "r8in_metal_48xl" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in.metal-48xl" +_rm___________________________________________ = "r8in_metal_96xl" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8in.metal-96xl" +_rm____________________________________________ = "r8ib_metal_48xl" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib.metal-48xl" +_rm_____________________________________________ = "r8ib_metal_96xl" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8ib.metal-96xl" +_rm______________________________________________ = "r8idn_metal_48xl" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn.metal-48xl" +_rm_______________________________________________ = "r8idn_metal_96xl" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idn.metal-96xl" +_rm________________________________________________ = "r8idb_metal_48xl" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb.metal-48xl" +_rm_________________________________________________ = "r8idb_metal_96xl" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8idb.metal-96xl" +_mm___________________________________________________________ = "m8in_metal_48xl" +_m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in.metal-48xl" +_mm____________________________________________________________ = "m8in_metal_96xl" +_m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8in.metal-96xl" +_mm_____________________________________________________________ = "m8ib_metal_48xl" +_m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib.metal-48xl" +_mm______________________________________________________________ = "m8ib_metal_96xl" +_m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8ib.metal-96xl" +_mm_______________________________________________________________ = "m8idn_metal_48xl" +_m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn.metal-48xl" +_mm________________________________________________________________ = "m8idn_metal_96xl" +_m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idn.metal-96xl" +_mm_________________________________________________________________ = ( + "m8idb_metal_48xl" +) +_m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb.metal-48xl" +_mm__________________________________________________________________ = ( + "m8idb_metal_96xl" +) +_m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "m8idb.metal-96xl" +_g___________________________________________________ = "g7_2xlarge" +_gxlarge________________ = "g7.2xlarge" +_g____________________________________________________ = "g7_4xlarge" +_gxlarge_________________ = "g7.4xlarge" +_g_____________________________________________________ = "g7_8xlarge" +_gxlarge__________________ = "g7.8xlarge" +_g______________________________________________________ = "g7_12xlarge" +_gxlarge___________________ = "g7.12xlarge" +_g_______________________________________________________ = "g7_24xlarge" +_gxlarge____________________ = "g7.24xlarge" +_g________________________________________________________ = "g7_48xlarge" +_gxlarge_____________________ = "g7.48xlarge" +_cm______________________________________________ = "c9g_medium" +_cgmediu = "c9g.medium" +_cl______________________________ = "c9g_large" +_cglarg = "c9g.large" +_cx______________________________ = "c9g_xlarge" +_cgxlarge________________ = "c9g.xlarge" +_c_________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_2xlarge" +_cgxlarge_________________ = "c9g.2xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_4xlarge" +_cgxlarge__________________ = "c9g.4xlarge" +_c___________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_8xlarge" +_cgxlarge___________________ = "c9g.8xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_12xlarge" +_cgxlarge____________________ = "c9g.12xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_16xlarge" +_cgxlarge_____________________ = "c9g.16xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_24xlarge" +_cgxlarge______________________ = "c9g.24xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g_48xlarge" +_cgxlarge_______________________ = "c9g.48xlarge" +_cm_______________________________________________ = "c9g_metal_48xl" +_c________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9g.metal-48xl" +_cm________________________________________________ = "c9gd_medium" +_cgdmedi = "c9gd.medium" +_cl_______________________________ = "c9gd_large" +_cgdlarg = "c9gd.large" +_cx_______________________________ = "c9gd_xlarge" +_cgdxlarge_______________ = "c9gd.xlarge" +_c_________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_2xlarge" +_cgdxlarge________________ = "c9gd.2xlarge" +_c__________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_4xlarge" +_cgdxlarge_________________ = "c9gd.4xlarge" +_c___________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_8xlarge" +_cgdxlarge__________________ = "c9gd.8xlarge" +_c____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_12xlarge" +_cgdxlarge___________________ = "c9gd.12xlarge" +_c_____________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_16xlarge" +_cgdxlarge____________________ = "c9gd.16xlarge" +_c______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_24xlarge" +_cgdxlarge_____________________ = "c9gd.24xlarge" +_c_______________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd_48xlarge" +_cgdxlarge______________________ = "c9gd.48xlarge" +_cm_________________________________________________ = "c9gd_metal_48xl" +_c________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "c9gd.metal-48xl" +_rm__________________________________________________ = "r9g_medium" +_rgmedi = "r9g.medium" +_rl________________________________ = "r9g_large" +_rglarg = "r9g.large" +_rx________________________________ = "r9g_xlarge" +_rgxlarge_______________ = "r9g.xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_2xlarge" +_rgxlarge________________ = "r9g.2xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_4xlarge" +_rgxlarge_________________ = "r9g.4xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_8xlarge" +_rgxlarge__________________ = "r9g.8xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_12xlarge" +_rgxlarge___________________ = "r9g.12xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_16xlarge" +_rgxlarge____________________ = "r9g.16xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_24xlarge" +_rgxlarge_____________________ = "r9g.24xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g_48xlarge" +_rgxlarge______________________ = "r9g.48xlarge" +_rm___________________________________________________ = "r9g_metal_48xl" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9g.metal-48xl" +_rm____________________________________________________ = "r9gd_medium" +_rgdmedi = "r9gd.medium" +_rl_________________________________ = "r9gd_large" +_rgdlarg = "r9gd.large" +_rx_________________________________ = "r9gd_xlarge" +_rgdxlarge_______________ = "r9gd.xlarge" +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_2xlarge" +_rgdxlarge________________ = "r9gd.2xlarge" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_4xlarge" +_rgdxlarge_________________ = "r9gd.4xlarge" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_8xlarge" +_rgdxlarge__________________ = "r9gd.8xlarge" +_r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_12xlarge" +_rgdxlarge___________________ = "r9gd.12xlarge" +_r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_16xlarge" +_rgdxlarge____________________ = "r9gd.16xlarge" +_r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_24xlarge" +_rgdxlarge_____________________ = "r9gd.24xlarge" +_r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd_48xlarge" +_rgdxlarge______________________ = "r9gd.48xlarge" +_rm_____________________________________________________ = "r9gd_metal_48xl" +_r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r9gd.metal-48xl" +_mm___________________________________________________________________ = "m9g_medium" +_mgmedi = "m9g.medium" +_tn____ = "t8i_nano" +_tin = "t8i.nano" +_tm_________ = "t8i_micro" +_timi = "t8i.micro" +_ts______ = "t8i_small" +_tis = "t8i.small" +_tm__________ = "t8i_medium" +_time = "t8i.medium" +_im____________ = "i8g_metal_48xl" +_i________________________________________________________________________ = ( + "i8g.metal-48xl" +) +_r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8gb_48xlarge" +_rgbxlarge__ = "r8gb.48xlarge" +_rm______________________________________________________ = "r8gb_metal_48xl" +_r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "r8gb.metal-48xl" +_mm____________________________________________________________________ = "m9gd_medium" +_mgdmedi = "m9gd.medium" +_t__________ = "trn2u_48xlarge" +_trnu = "trn2u.48xlarge" +_IWC = "IntegerWithConstraints" +_DWC = "DoubleWithConstraints" +_RFIS = "ReservationFleetInstanceSpecification" +_We = "Weight" +_RFISL = "ReservationFleetInstanceSpecificationList" +_FCRT = "FleetCapacityReservationTenancy" +_CCRFIr = "CreateCapacityReservationFleetInput" +_cCCRFRom = "com.amazonaws.ec2#CreateCapacityReservationFleetRequest" +_ITS = "InstanceTypeSpecifications" +_ITSn = "InstanceTypeSpecification" +_IRn = "InstanceRequirements" +_TTC = "TotalTargetCapacity" +_FCR = "FleetCapacityReservation" +_FCu = "FulfilledCapacity" +_fC = "fulfilledCapacity" +_we = "weight" +_FCRS = "FleetCapacityReservationSet" +_CCRFOr = "CreateCapacityReservationFleetOutput" +_cCCRFRoma = "com.amazonaws.ec2#CreateCapacityReservationFleetResult" +_tTC = "totalTargetCapacity" +_TFC = "TotalFulfilledCapacity" +_tFC = "totalFulfilledCapacity" +_aSl = "allocationStrategy" +_FCRl = "FleetCapacityReservations" +_fCRS = "fleetCapacityReservationSet" +_CCRFr = "CreateCapacityReservationFleet" +_CCGI = "CreateCarrierGatewayInput" +_cCCGR = "com.amazonaws.ec2#CreateCarrierGatewayRequest" +_CGS = "CarrierGatewayState" +_CGa = "CarrierGateway" +_CCGO = "CreateCarrierGatewayOutput" +_cCCGRo = "com.amazonaws.ec2#CreateCarrierGatewayResult" +_cGa = "carrierGateway" +_CCG = "CreateCarrierGateway" +_DSAR = "DirectoryServiceAuthenticationRequest" +_DIi = "DirectoryId" +_FAR = "FederatedAuthenticationRequest" +_SAMLPA = "SAMLProviderArn" +_SSSAMLPA = "SelfServiceSAMLProviderArn" +_CAR = "CertificateAuthenticationRequest" +_CRCCA = "ClientRootCertificateChainArn" +_CVAT = "ClientVpnAuthenticationType" +_ca_ = "certificate_authentication" +_ca__ = "certificate-authentication" +_dsa = "directory_service_authentication" +_dsa_ = "directory-service-authentication" +_fa___ = "federated_authentication" +_fa____ = "federated-authentication" +_CVAR = "ClientVpnAuthenticationRequest" +_Ty = "Type" +_ADc = "ActiveDirectory" +_MA = "MutualAuthentication" +_FA = "FederatedAuthentication" +_CVARL = "ClientVpnAuthenticationRequestList" +_CCO = "ClientConnectOptions" +_Ena = "Enabled" +_LFA = "LambdaFunctionArn" +_CLBO = "ClientLoginBannerOptions" +_BTa = "BannerText" +_CREO = "ClientRouteEnforcementOptions" +_Enf = "Enforced" +_CLO = "ConnectionLogOptions" +_CLG = "CloudwatchLogGroup" +_CLS = "CloudwatchLogStream" +_IAPC = "IncludeAuthorizationPolicyContext" +_CVDTPT = "ClientVpnDeviceTrustProviderType" +_CVTPR = "ClientVpnTrustProviderRequest" +_CVTPRL = "ClientVpnTrustProviderRequestList" +_DPO = "DevicePostureOptions" +_TPr = "TrustProviders" +_TPru = "TrustProvider" +_EIAT = "EndpointIpAddressType" +_ds__ = "dual_stack" +_ds___ = "dual-stack" +_SSP = "SelfServicePortal" +_TIAT = "TrafficIpAddressType" +_CVAZIS = "ClientVpnAvailabilityZoneIdSet" +_CVAZS = "ClientVpnAvailabilityZoneSet" +_TGCIS = "TransitGatewayConfigurationInputStructure" +_TPra = "TransportProtocol" +_CCVEI = "CreateClientVpnEndpointInput" +_cCCVER = "com.amazonaws.ec2#CreateClientVpnEndpointRequest" +_CCB = "ClientCidrBlock" +_SCA = "ServerCertificateArn" +_AO = "AuthenticationOptions" +_Au = "Authentication" +_DSn = "DnsServers" +_VPp = "VpnPort" +_STp = "SplitTunnel" +_STH = "SessionTimeoutHours" +_DOST = "DisconnectOnSessionTimeout" +_TGC = "TransitGatewayConfiguration" +_CVESC = "ClientVpnEndpointStatusCode" +_pa______ = "pending_associate" +_pa_______ = "pending-associate" +_CVES = "ClientVpnEndpointStatus" +_CCVEO = "CreateClientVpnEndpointOutput" +_cCCVERo = "com.amazonaws.ec2#CreateClientVpnEndpointResult" +_DN = "DnsName" +_dN = "dnsName" +_CCVE = "CreateClientVpnEndpoint" +_CCVRI = "CreateClientVpnRouteInput" +_cCCVRR = "com.amazonaws.ec2#CreateClientVpnRouteRequest" +_DCB = "DestinationCidrBlock" +_TVSI = "TargetVpcSubnetId" +_CVRSC = "ClientVpnRouteStatusCode" +_CVRS = "ClientVpnRouteStatus" +_CCVRO = "CreateClientVpnRouteOutput" +_cCCVRRo = "com.amazonaws.ec2#CreateClientVpnRouteResult" +_CCVR = "CreateClientVpnRoute" +_IPCI = "Ipv4PoolCoipId" +_CCCI = "CreateCoipCidrInput" +_cCCCR = "com.amazonaws.ec2#CreateCoipCidrRequest" +_CPIo = "CoipPoolId" +_CCo = "CoipCidr" +_cPI = "coipPoolId" +_LGRTI = "LocalGatewayRouteTableId" +_lGRTI = "localGatewayRouteTableId" +_CCCO = "CreateCoipCidrOutput" +_cCCCRo = "com.amazonaws.ec2#CreateCoipCidrResult" +_cCo = "coipCidr" +_CCC = "CreateCoipCidr" +_LGRI = "LocalGatewayRoutetableId" +_CCPI = "CreateCoipPoolInput" +_cCCPR = "com.amazonaws.ec2#CreateCoipPoolRequest" +_CP = "CoipPool" +_PCo = "PoolCidrs" +_PCS = "PoolCidrSet" +_pCS = "poolCidrSet" +_PA = "PoolArn" +_pAo = "poolArn" +_CCPO = "CreateCoipPoolOutput" +_cCCPRo = "com.amazonaws.ec2#CreateCoipPoolResult" +_cP = "coipPool" +_CCP = "CreateCoipPool" +_GT = "GatewayType" +_i_________________________________________________________________________ = "ipsec_1" +_ips = "ipsec.1" +_CCGIr = "CreateCustomerGatewayInput" +_cCCGRom = "com.amazonaws.ec2#CreateCustomerGatewayRequest" +_BA = "BgpAsn" +_DNe = "DeviceName" +_BAE = "BgpAsnExtended" +_cAe = "certificateArn" +_dNe = "deviceName" +_bAE = "bgpAsnExtended" +_CGIu = "CustomerGatewayId" +_cGIu = "customerGatewayId" +_ty = "type" +_iApd = "ipAddress" +_bA = "bgpAsn" +_CCGOr = "CreateCustomerGatewayOutput" +_cCCGRoma = "com.amazonaws.ec2#CreateCustomerGatewayResult" +_CCGr = "CreateCustomerGateway" +_CDSI = "CreateDefaultSubnetInput" +_cCDSR = "com.amazonaws.ec2#CreateDefaultSubnetRequest" +_IN = "Ipv6Native" +_BPAM = "BlockPublicAccessMode" +_bb = "block_bidirectional" +_bb_ = "block-bidirectional" +_bi = "block_ingress" +_bi_ = "block-ingress" +_BPAS = "BlockPublicAccessStates" +_IGBM = "InternetGatewayBlockMode" +_iGBM = "internetGatewayBlockMode" +_SICBAS = "SubnetIpv6CidrBlockAssociationSet" +_HT = "HostnameType" +_in_ = "ip_name" +_in__ = "ip-name" +_rn_ = "resource_name" +_rn__ = "resource-name" +_PDNOOL = "PrivateDnsNameOptionsOnLaunch" +_hT = "hostnameType" +_ERNDAR = "EnableResourceNameDnsARecord" +_eRNDAR = "enableResourceNameDnsARecord" +_ERNDAAAAR = "EnableResourceNameDnsAAAARecord" +_eRNDAAAAR = "enableResourceNameDnsAAAARecord" +_SSu = "SubnetState" +_fic = "failed_insufficient_capacity" +_fic_ = "failed-insufficient-capacity" +_ELADI = "EnableLniAtDeviceIndex" +_eLADI = "enableLniAtDeviceIndex" +_MCOIOL = "MapCustomerOwnedIpOnLaunch" +_mCOIOL = "mapCustomerOwnedIpOnLaunch" +_AIAOC = "AssignIpv6AddressOnCreation" +_aIAOC = "assignIpv6AddressOnCreation" +_ICBAS = "Ipv6CidrBlockAssociationSet" +_iCBAS = "ipv6CidrBlockAssociationSet" +_SAu = "SubnetArn" +_sA = "subnetArn" +_EDn = "EnableDns64" +_eDn = "enableDns64" +_iN = "ipv6Native" +_pDNOOL = "privateDnsNameOptionsOnLaunch" +_bPAS = "blockPublicAccessStates" +_AIAC = "AvailableIpAddressCount" +_aIAC = "availableIpAddressCount" +_DFA = "DefaultForAz" +_dFA = "defaultForAz" +_MPIOL = "MapPublicIpOnLaunch" +_mPIOL = "mapPublicIpOnLaunch" +_CDSO = "CreateDefaultSubnetOutput" +_cCDSRo = "com.amazonaws.ec2#CreateDefaultSubnetResult" +_CDS = "CreateDefaultSubnet" +_CDVI = "CreateDefaultVpcInput" +_cCDVR = "com.amazonaws.ec2#CreateDefaultVpcRequest" +_VCBAS = "VpcCidrBlockAssociationSet" +_VECM = "VpcEncryptionControlMode" +_moni = "monitor" +_enf = "enforce" +_VECE = "VpcEncryptionControlExclusion" +_VECEp = "VpcEncryptionControlExclusions" +_VECS = "VpcEncryptionControlState" +_eip_ = "enforce_in_progress" +_eip__ = "enforce-in-progress" +_mip = "monitor_in_progress" +_mip_ = "monitor-in-progress" +_ef = "enforce_failed" +_ef_ = "enforce-failed" +_mf________________________ = "monitor_failed" +_mf_________________________ = "monitor-failed" +_df___ = "delete_failed" +_df____ = "delete-failed" +_VECI = "VpcEncryptionControlId" +_VEC = "VpcEncryptionControl" +_vECI = "vpcEncryptionControlId" +_RE = "ResourceExclusions" +_rE = "resourceExclusions" +_VICBAS = "VpcIpv6CidrBlockAssociationSet" +_VSp = "VpcState" +_ITnst = "InstanceTenancy" +_iTns = "instanceTenancy" +_CBAS = "CidrBlockAssociationSet" +_cBAS = "cidrBlockAssociationSet" +_ECn = "EncryptionControl" +_eCn = "encryptionControl" +_dOI = "dhcpOptionsId" +_CDVO = "CreateDefaultVpcOutput" +_cCDVRo = "com.amazonaws.ec2#CreateDefaultVpcResult" +_CDV = "CreateDefaultVpc" +_SMC = "SensitiveMacCredentials" +_CDMVOTI = "CreateDelegateMacVolumeOwnershipTaskInput" +_cCDMVOTR = "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskRequest" +_MCa = "MacCredentials" +_MMTI = "MacModificationTaskId" +_MSIPSS = "MacSystemIntegrityProtectionSettingStatus" +_MSIPC = "MacSystemIntegrityProtectionConfiguration" +_AIp = "AppleInternal" +_aIp = "appleInternal" +_BSa = "BaseSystem" +_bS = "baseSystem" +_DReb = "DebuggingRestrictions" +_dReb = "debuggingRestrictions" +_DTR = "DTraceRestrictions" +_dTR = "dTraceRestrictions" +_FPi = "FilesystemProtections" +_fPi = "filesystemProtections" +_KS = "KextSigning" +_kS = "kextSigning" +_NP = "NvramProtections" +_nP = "nvramProtections" +_MMTS = "MacModificationTaskState" +_succ = "successful" +_inp = "inprogress" +_ip_____ = "in-progress" +_MMTT = "MacModificationTaskType" +_SIPM = "SIPModification" +_sm_ = "sip-modification" +_VOD = "VolumeOwnershipDelegation" +_vod = "volume-ownership-delegation" +_MMT = "MacModificationTask" +_mMTI = "macModificationTaskId" +_MSIPCa = "MacSystemIntegrityProtectionConfig" +_mSIPC = "macSystemIntegrityProtectionConfig" +_TSas = "TaskState" +_tSa = "taskState" +_TT = "TaskType" +_tT = "taskType" +_CDMVOTO = "CreateDelegateMacVolumeOwnershipTaskOutput" +_cCDMVOTRo = "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskResult" +_mMT = "macModificationTask" +_CDMVOT = "CreateDelegateMacVolumeOwnershipTask" +_NDC = "NewDhcpConfiguration" +_Val = "Values" +_NDCL = "NewDhcpConfigurationList" +_CDOI = "CreateDhcpOptionsInput" +_cCDOR = "com.amazonaws.ec2#CreateDhcpOptionsRequest" +_DCh = "DhcpConfigurations" +_DChc = "DhcpConfiguration" +_dCh = "dhcpConfiguration" +_DCVL = "DhcpConfigurationValueList" +_VSa = "ValueSet" +_vSa = "valueSet" +_DCL = "DhcpConfigurationList" +_DOh = "DhcpOptions" +_DCS = "DhcpConfigurationSet" +_dCS = "dhcpConfigurationSet" +_CDOO = "CreateDhcpOptionsOutput" +_cCDORo = "com.amazonaws.ec2#CreateDhcpOptionsResult" +_dOh = "dhcpOptions" +_CDO = "CreateDhcpOptions" +_CEOIGI = "CreateEgressOnlyInternetGatewayInput" +_cCEOIGR = "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayRequest" +_IGA = "InternetGatewayAttachment" +_IGAL = "InternetGatewayAttachmentList" +_CEOIGO = "CreateEgressOnlyInternetGatewayOutput" +_cCEOIGRo = "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayResult" +_CEOIG = "CreateEgressOnlyInternetGateway" +_FECTP = "FleetExcessCapacityTerminationPolicy" +_NT = "NO_TERMINATION" +_nt = "no-termination" +_TERMINATION = "TERMINATION" +_ter = "termination" +_LTI = "LaunchTemplateId" +_LTN = "LaunchTemplateName" +_SUD = "SensitiveUserData" +_FLTSR = "FleetLaunchTemplateSpecificationRequest" +_Ve = "Version" +_LTSUD = "LaunchTemplateSpecificationUserData" +_FEBDR = "FleetEbsBlockDeviceRequest" +_VSol = "VolumeSize" +_FBDMR = "FleetBlockDeviceMappingRequest" +_VN = "VirtualName" +_Eb = "Ebs" +_ND = "NoDevice" +_FBDMRL = "FleetBlockDeviceMappingRequestList" +_BDM = "BlockDeviceMapping" +_FIIPSR = "FleetIamInstanceProfileSpecificationRequest" +_FIMES = "FleetInstanceMetadataEndpointState" +_DISABLED = "DISABLED" +_ENABLED = "ENABLED" +_FHTS = "FleetHttpTokensState" +_OPTIONAL = "OPTIONAL" +_opt = "optional" +_FIMOR = "FleetInstanceMetadataOptionsRequest" +_HTt = "HttpTokens" +_HPRHL = "HttpPutResponseHopLimit" +_HE = "HttpEndpoint" +_PGI = "PlacementGroupId" +_PGN = "PlacementGroupName" +_Pl = "Placement" +_aff = "affinity" +_PNa = "PartitionNumber" +_pN = "partitionNumber" +_HIo = "HostId" +_hI = "hostId" +_SDp = "SpreadDomain" +_sDp = "spreadDomain" +_HRGA = "HostResourceGroupArn" +_hRGA = "hostResourceGroupArn" +_FLTOR = "FleetLaunchTemplateOverridesRequest" +_MP = "MaxPrice" +_WC = "WeightedCapacity" +_KN = "KeyName" +_BDMl = "BlockDeviceMappings" +_MO = "MetadataOptions" +_FLTOLR = "FleetLaunchTemplateOverridesListRequest" +_FLTCR = "FleetLaunchTemplateConfigRequest" +_LTS = "LaunchTemplateSpecification" +_Ov = "Overrides" +_FLTCLR = "FleetLaunchTemplateConfigListRequest" +_FODAS = "FleetOnDemandAllocationStrategy" +_lp = "lowest-price" +_PRIORITIZED = "PRIORITIZED" +_prio = "prioritized" +_FCRUS = "FleetCapacityReservationUsageStrategy" +_UCRF = "USE_CAPACITY_RESERVATIONS_FIRST" +_ucrf = "use-capacity-reservations-first" +_CROR = "CapacityReservationOptionsRequest" +_USs = "UsageStrategy" +_ODOR = "OnDemandOptionsRequest" +_CRO = "CapacityReservationOptions" +_SIT = "SingleInstanceType" +_SAZ = "SingleAvailabilityZone" +_MTC = "MinTargetCapacity" +_MTP = "MaxTotalPrice" +_RCAS = "ReservedCapacityAllocationStrategy" +_CRIS = "CapacityReservationIdSet" +_RGN = "ResourceGroupName" +_CRRGAS = "CapacityReservationResourceGroupArnSet" +_FCRTR = "FleetCapacityReservationTargetRequest" +_CRIa = "CapacityReservationIds" +_CRRGA = "CapacityReservationResourceGroupArns" +_CRRGAa = "CapacityReservationResourceGroupArn" +_FRT = "FleetReservationType" +_ODCR = "ON_DEMAND_CAPACITY_RESERVATION" +_odcr = "on-demand-capacity-reservation" +_ICR = "INTERRUPTIBLE_CAPACITY_RESERVATION" +_icr = "interruptible-capacity-reservation" +_RTLR = "ReservationTypeListRequest" +_RCFMT = "ReservedCapacityFallbackMarketType" +_OD = "ON_DEMAND" +_od = "on-demand" +_RCFMTL = "ReservedCapacityFallbackMarketTypeList" +_RCFOR = "ReservedCapacityFallbackOptionsRequest" +_MTa = "MarketTypes" +_MTar = "MarketType" +_RCOR = "ReservedCapacityOptionsRequest" +_RTese = "ReservationTypes" +_CRTap = "CapacityReservationTarget" +_RCFO = "ReservedCapacityFallbackOptions" +_SASp = "SpotAllocationStrategy" +_co_ = "capacity-optimized" +_cop = "capacity-optimized-prioritized" +_pco = "price-capacity-optimized" +_SIIB = "SpotInstanceInterruptionBehavior" +_hib = "hibernate" +_stop = "stop" +_term = "terminate" +_FRS = "FleetReplacementStrategy" +_LAUNCH = "LAUNCH" +_laun = "launch" +_LBT_ = "LAUNCH_BEFORE_TERMINATE" +_lbt = "launch-before-terminate" +_FSCRR = "FleetSpotCapacityRebalanceRequest" +_RSep = "ReplacementStrategy" +_TD = "TerminationDelay" +_FSMSR = "FleetSpotMaintenanceStrategiesRequest" +_CRapa = "CapacityRebalance" +_SOR = "SpotOptionsRequest" +_MS = "MaintenanceStrategies" +_IIB = "InstanceInterruptionBehavior" +_IPTUC = "InstancePoolsToUseCount" +_DTCT = "DefaultTargetCapacityType" +_SPOT = "SPOT" +_spo = "spot" +_RC = "RESERVED_CAPACITY" +_rc = "reserved-capacity" +_TCUT = "TargetCapacityUnitType" +_VCPU = "VCPU" +_vcp = "vcpu" +_MM = "MEMORY_MIB" +_mm_____________________________________________________________________ = "memory-mib" +_UNITS = "UNITS" +_uni = "units" +_TCSR = "TargetCapacitySpecificationRequest" +_ODTC = "OnDemandTargetCapacity" +_STC = "SpotTargetCapacity" +_FTl = "FleetType" +_REQUEST = "REQUEST" +_reque = "request" +_MAINTAIN = "MAINTAIN" +_mai = "maintain" +_INSTANT = "INSTANT" +_inst = "instant" +_CFIr = "CreateFleetInput" +_cCFR = "com.amazonaws.ec2#CreateFleetRequest" +_SO = "SpotOptions" +_ODO = "OnDemandOptions" +_RCO = "ReservedCapacityOptions" +_ECTP = "ExcessCapacityTerminationPolicy" +_LTC = "LaunchTemplateConfigs" +_TCS = "TargetCapacitySpecification" +_TIWE = "TerminateInstancesWithExpiration" +_VF = "ValidFrom" +_VU = "ValidUntil" +_RUI = "ReplaceUnhealthyInstances" +_Con = "Context" +_FLTS = "FleetLaunchTemplateSpecification" +_lTI = "launchTemplateId" +_lTN = "launchTemplateName" +_ver = "version" +_EBDR = "EbsBlockDeviceResponse" +_vSo = "volumeSize" +_BDMR = "BlockDeviceMappingResponse" +_vN = "virtualName" +_eb = "ebs" +_nD = "noDevice" +_BDMRL = "BlockDeviceMappingResponseList" +_PFR = "PerformanceFactorReference" +_iF = "instanceFamily" +_PFRS = "PerformanceFactorReferenceSet" +_CPF = "CpuPerformanceFactor" +_RSef = "ReferenceSet" +_rSef = "referenceSet" +_cpu = "cpu" +_VCCR = "VCpuCountRange" +_vCC = "vCpuCount" +_mMB = "memoryMiB" +_cMS = "cpuManufacturerSet" +_mGBPVC = "memoryGiBPerVCpu" +_eITS = "excludedInstanceTypeSet" +_iGS = "instanceGenerationSet" +_sMPPOLP = "spotMaxPricePercentageOverLowestPrice" +_oDMPPOLP = "onDemandMaxPricePercentageOverLowestPrice" +_bM = "bareMetal" +_bP = "burstablePerformance" +_rHS = "requireHibernateSupport" +_nIC = "networkInterfaceCount" +_lSo = "localStorage" +_lSTS = "localStorageTypeSet" +_tLSGB = "totalLocalStorageGB" +_bEBM = "baselineEbsBandwidthMbps" +_aTSc = "acceleratorTypeSet" +_aC = "acceleratorCount" +_aMSc = "acceleratorManufacturerSet" +_aNS = "acceleratorNameSet" +_aTMMB = "acceleratorTotalMemoryMiB" +_nBGe = "networkBandwidthGbps" +_aITS = "allowedInstanceTypeSet" +_mSPAPOOODP = "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" +_bPF = "baselinePerformanceFactors" +_rEIT = "requireEncryptionInTransit" +_PRl = "PlacementResponse" +_FLTO = "FleetLaunchTemplateOverrides" +_mP = "maxPrice" +_wC = "weightedCapacity" +_pla = "placement" +_iRn = "instanceRequirements" +_BDMS = "BlockDeviceMappingSet" +_bDMS = "blockDeviceMappingSet" +_LTAOR = "LaunchTemplateAndOverridesResponse" +_lTS = "launchTemplateSpecification" +_ov = "overrides" +_ILn = "InstanceLifecycle" +_CFE = "CreateFleetError" +_LTAO = "LaunchTemplateAndOverrides" +_lTAO = "launchTemplateAndOverrides" +_Li = "Lifecycle" +_lif = "lifecycle" +_ECr = "ErrorCode" +_eCr = "errorCode" +_EM = "ErrorMessage" +_eM = "errorMessage" +_CFES = "CreateFleetErrorsSet" +_FIl = "FleetId" +_IISn = "InstanceIdsSet" +_PV = "PlatformValues" +_CFIre = "CreateFleetInstance" +_iIns = "instanceIds" +_Pla = "Platform" +_plat = "platform" +_CFIS = "CreateFleetInstancesSet" +_CFO = "CreateFleetOutput" +_cCFRo = "com.amazonaws.ec2#CreateFleetResult" +_fIl = "fleetId" +_Er = "Errors" +_ESr = "ErrorSet" +_eSr = "errorSet" +_Ins = "Instances" +_FIS = "FleetInstanceSet" +_fIS = "fleetInstanceSet" +_CF = "CreateFleet" +_DFF = "DestinationFileFormat" +_pt_ = "plain_text" +_pt__ = "plain-text" +_DOR = "DestinationOptionsRequest" +_FF = "FileFormat" +_HCPi = "HiveCompatiblePartitions" +_PHP = "PerHourPartition" +_LDT = "LogDestinationType" +_cwl = "cloud_watch_logs" +_cwl_ = "cloud-watch-logs" +_s_ = "s3" +_kdf = "kinesis_data_firehose" +_kdf_ = "kinesis-data-firehose" +_FLRI = "FlowLogResourceId" +_FLRIl = "FlowLogResourceIds" +_FLRT = "FlowLogsResourceType" +_VPC_ = "VPC" +_RNG = "RegionalNatGateway" +_CN = "CoreNetwork" +_CNE = "CoreNetworkEdge" +_CNAo = "CoreNetworkAttachment" +_TRT = "TaggableResourceType" +_asg = "auto_scaling_group" +_asg_ = "auto-scaling-group" +_TK = "TagKey" +_TKL = "TagKeyList" +_TFSR = "TagFieldSpecificationRequest" +_TKa = "TagKeys" +_TFSLR = "TagFieldSpecificationListRequest" +_TTr = "TrafficType" +_ACCEPT = "ACCEPT" +_REJECT = "REJECT" +_ALL = "ALL" +_CFLI = "CreateFlowLogsInput" +_cCFLR = "com.amazonaws.ec2#CreateFlowLogsRequest" +_DLPA = "DeliverLogsPermissionArn" +_DCAR = "DeliverCrossAccountRole" +_LGN = "LogGroupName" +_RIes = "ResourceIds" +_LD = "LogDestination" +_LF = "LogFormat" +_MAI = "MaxAggregationInterval" +_DOe = "DestinationOptions" +_TFS = "TagFieldSpecifications" +_TFSa = "TagFieldSpecification" +_CFLO = "CreateFlowLogsOutput" +_cCFLRo = "com.amazonaws.ec2#CreateFlowLogsResult" +_FLI = "FlowLogIds" +_FLIS = "FlowLogIdSet" +_fLIS = "flowLogIdSet" +_CFL = "CreateFlowLogs" +_SLt = "StorageLocation" +_CFIIr = "CreateFpgaImageInput" +_cCFIRom = "com.amazonaws.ec2#CreateFpgaImageRequest" +_ISL = "InputStorageLocation" +_LSL = "LogsStorageLocation" +_CFIOr = "CreateFpgaImageOutput" +_cCFIRoma = "com.amazonaws.ec2#CreateFpgaImageResult" +_FIGI = "FpgaImageGlobalId" +_fIGI = "fpgaImageGlobalId" +_CFIrea = "CreateFpgaImage" +_EBD = "EbsBlockDevice" +_BDMRLl = "BlockDeviceMappingRequestList" +_BMOV = "BootModeOverrideValues" +_ue = "uefi" +_SLE = "SnapshotLocationEnum" +_REGIONAL = "REGIONAL" +_regi = "regional" +_LOCAL = "LOCAL" +_lo = "local" +_CIIr = "CreateImageInput" +_cCIRom = "com.amazonaws.ec2#CreateImageRequest" +_SLn = "SnapshotLocation" +_BMO = "BootModeOverride" +_NR = "NoReboot" +_nR = "noReboot" +_bDM = "blockDeviceMapping" +_CIOr = "CreateImageOutput" +_cCIRoma = "com.amazonaws.ec2#CreateImageResult" +_CIr = "CreateImage" +_IURUISL = "ImageUsageReportUserIdStringList" +_CIURCT = "CreateImageUsageReportClientToken" +_IURTN = "ImageUsageResourceTypeName" +_IURTOV = "ImageUsageResourceTypeOptionValue" +_IURTOVL = "ImageUsageResourceTypeOptionValuesList" +_IURTOR = "ImageUsageResourceTypeOptionRequest" +_ON = "OptionName" +_OV = "OptionValues" +_OVp = "OptionValue" +_IURTORL = "ImageUsageResourceTypeOptionRequestList" +_IURTR = "ImageUsageResourceTypeRequest" +_RTO = "ResourceTypeOptions" +_RTOe = "ResourceTypeOption" +_IURTRL = "ImageUsageResourceTypeRequestList" +_CIURI = "CreateImageUsageReportInput" +_cCIURR = "com.amazonaws.ec2#CreateImageUsageReportRequest" +_AIcc = "AccountIds" +_AIcco = "AccountId" +_IURI = "ImageUsageReportId" +_CIURO = "CreateImageUsageReportOutput" +_cCIURRo = "com.amazonaws.ec2#CreateImageUsageReportResult" +_rIe = "reportId" +_CIUR = "CreateImageUsageReport" +_IAT = "IpAddressType" +_du = "dualstack" +_SGISLR = "SecurityGroupIdStringListRequest" +_CICEI = "CreateInstanceConnectEndpointInput" +_cCICER = "com.amazonaws.ec2#CreateInstanceConnectEndpointRequest" +_PCI = "PreserveClientIp" +_ICEI = "InstanceConnectEndpointId" +_NIIS = "NetworkInterfaceIdSet" +_ICEDN = "InstanceConnectEndpointDnsNames" +_FDN = "FipsDnsName" +_fDN = "fipsDnsName" +_ICEPDN = "InstanceConnectEndpointPublicDnsNames" +_Ip = "Ipv4" +_Du = "Dualstack" +_SGIS = "SecurityGroupIdSet" +_EICES = "Ec2InstanceConnectEndpointState" +_cip = "create_in_progress" +_cip_ = "create-in-progress" +_cc_ = "create_complete" +_cc__ = "create-complete" +_cf________________________ = "create_failed" +_cf_________________________ = "create-failed" +_dip_ = "delete_in_progress" +_dip__ = "delete-in-progress" +_dc_ = "delete_complete" +_dc__ = "delete-complete" +_uip = "update_in_progress" +_uip_ = "update-in-progress" +_uc = "update_complete" +_uc_ = "update-complete" +_uf = "update_failed" +_uf_ = "update-failed" +_EICE = "Ec2InstanceConnectEndpoint" +_iCEI = "instanceConnectEndpointId" +_ICEA = "InstanceConnectEndpointArn" +_iCEA = "instanceConnectEndpointArn" +_NIIe = "NetworkInterfaceIds" +_nIIS = "networkInterfaceIdSet" +_CAr = "CreatedAt" +_cAr = "createdAt" +_pCI = "preserveClientIp" +_sGIS = "securityGroupIdSet" +_iAT = "ipAddressType" +_PDN = "PublicDnsNames" +_pDN = "publicDnsNames" +_CICEO = "CreateInstanceConnectEndpointOutput" +_cCICERo = "com.amazonaws.ec2#CreateInstanceConnectEndpointResult" +_ICE = "InstanceConnectEndpoint" +_iCE = "instanceConnectEndpoint" +_CICE = "CreateInstanceConnectEndpoint" +_IEWTRR = "InstanceEventWindowTimeRangeRequest" +_IEWTRRS = "InstanceEventWindowTimeRangeRequestSet" +_CIEWI = "CreateInstanceEventWindowInput" +_cCIEWR = "com.amazonaws.ec2#CreateInstanceEventWindowRequest" +_TRim = "TimeRange" +_CIEWO = "CreateInstanceEventWindowOutput" +_cCIEWRo = "com.amazonaws.ec2#CreateInstanceEventWindowResult" +_CIEW = "CreateInstanceEventWindow" +_CFo = "ContainerFormat" +_ova = "ova" +_DIF = "DiskImageFormat" +_VMDK = "VMDK" +_RAW = "RAW" +_VHD = "VHD" +_ETSTS = "ExportToS3TaskSpecification" +_dIF = "diskImageFormat" +_cF = "containerFormat" +_SBu = "S3Bucket" +_sB = "s3Bucket" +_SPr = "S3Prefix" +_sP = "s3Prefix" +_EE = "ExportEnvironment" +_cit = "citrix" +_vm = "vmware" +_mic = "microsoft" +_CIETI = "CreateInstanceExportTaskInput" +_cCIETR = "com.amazonaws.ec2#CreateInstanceExportTaskRequest" +_TEa = "TargetEnvironment" +_tEa = "targetEnvironment" +_ETST = "ExportToS3Task" +_ETS = "ExportToS3" +_eTS = "exportToS3" +_SK = "S3Key" +_sK = "s3Key" +_IED = "InstanceExportDetails" +_ETSx = "ExportTaskState" +_ETx = "ExportTask" +_IEn = "InstanceExport" +_iEn = "instanceExport" +_CIETO = "CreateInstanceExportTaskOutput" +_cCIETRo = "com.amazonaws.ec2#CreateInstanceExportTaskResult" +_eTx = "exportTask" +_CIET = "CreateInstanceExportTask" +_CIGI = "CreateInternetGatewayInput" +_cCIGR = "com.amazonaws.ec2#CreateInternetGatewayRequest" +_CIGO = "CreateInternetGatewayOutput" +_cCIGRo = "com.amazonaws.ec2#CreateInternetGatewayResult" +_CIG = "CreateInternetGateway" +_CICRAI = "CreateInterruptibleCapacityReservationAllocationInput" +_cCICRAR = "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationRequest" +_CICRAO = "CreateInterruptibleCapacityReservationAllocationOutput" +_cCICRARo = "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationResult" +_CICRA = "CreateInterruptibleCapacityReservationAllocation" +_IMA = "IpamMeteredAccount" +_io__ = "ipam_owner" +_io___ = "ipam-owner" +_ro = "resource_owner" +_ro_ = "resource-owner" +_ITp = "IpamTier" +_fre = "free" +_adva = "advanced" +_CIIre = "CreateIpamInput" +_cCIRomam = "com.amazonaws.ec2#CreateIpamRequest" +_ORp = "OperatingRegions" +_ORpe = "OperatingRegion" +_Tie = "Tier" +_EPG = "EnablePrivateGua" +_MAe = "MeteredAccount" +_IOR = "IpamOperatingRegion" +_rNe = "regionName" +_IORS = "IpamOperatingRegionSet" +_ISI = "IpamScopeId" +_ISpa = "IpamState" +_mip__ = "modify_in_progress" +_mip___ = "modify-in-progress" +_mc = "modify_complete" +_mc_ = "modify-complete" +_mf__________________________ = "modify_failed" +_mf___________________________ = "modify-failed" +_iip_ = "isolate_in_progress" +_ic_ = "isolate_complete" +_rip_ = "restore_in_progress" +_Ipa = "Ipam" +_PDSI = "PublicDefaultScopeId" +_pDSI = "publicDefaultScopeId" +_PDSIr = "PrivateDefaultScopeId" +_pDSIr = "privateDefaultScopeId" +_SCc = "ScopeCount" +_sCc = "scopeCount" +_ORS = "OperatingRegionSet" +_oRS = "operatingRegionSet" +_DRDI = "DefaultResourceDiscoveryId" +_dRDI = "defaultResourceDiscoveryId" +_DRDAI = "DefaultResourceDiscoveryAssociationId" +_dRDAI = "defaultResourceDiscoveryAssociationId" +_RDAC = "ResourceDiscoveryAssociationCount" +_rDAC = "resourceDiscoveryAssociationCount" +_tie = "tier" +_ePG = "enablePrivateGua" +_mA = "meteredAccount" +_CIOre = "CreateIpamOutput" +_cCIRomama = "com.amazonaws.ec2#CreateIpamResult" +_CIre = "CreateIpam" +_CIERVTI = "CreateIpamExternalResourceVerificationTokenInput" +_cCIERVTR = "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenRequest" +_IERVTI = "IpamExternalResourceVerificationTokenId" +_IERVTS = "IpamExternalResourceVerificationTokenState" +_CIP = "CREATE_IN_PROGRESS" +_CC_ = "CREATE_COMPLETE" +_CF_ = "CREATE_FAILED" +_DIP_ = "DELETE_IN_PROGRESS" +_DC__ = "DELETE_COMPLETE" +_DF_ = "DELETE_FAILED" +_TSo = "TokenState" +_val = "valid" +_IERVT = "IpamExternalResourceVerificationToken" +_iERVTI = "ipamExternalResourceVerificationTokenId" +_IERVTA = "IpamExternalResourceVerificationTokenArn" +_iERVTA = "ipamExternalResourceVerificationTokenArn" +_TV = "TokenValue" +_tV = "tokenValue" +_TN = "TokenName" +_tN = "tokenName" +_NA = "NotAfter" +_nA = "notAfter" +_CIERVTO = "CreateIpamExternalResourceVerificationTokenOutput" +_cCIERVTRo = "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenResult" +_iERVT = "ipamExternalResourceVerificationToken" +_CIERVT = "CreateIpamExternalResourceVerificationToken" +_Ri = "Rir" +_ripe = "ripe" +_apn = "apnic" +_ari = "arin" +_lac = "lacnic" +_nic = "nicbr" +_CIIRAI = "CreateIpamInternetRegistryAssociationInput" +_cCIIRAR = "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationRequest" +_OHr = "OrganizationHandle" +_IIRAS = "IpamInternetRegistryAssociationState" +_pe_ = "pending_enable" +_pe__ = "pending-enable" +_eip___ = "enable_in_progress" +_eip____ = "enable-in-progress" +_ec = "enable_complete" +_ec_ = "enable-complete" +_ef__ = "enable_failed" +_ef___ = "enable-failed" +_dip___ = "disable_in_progress" +_dip____ = "disable-in-progress" +_dc___ = "disable_complete" +_dc____ = "disable-complete" +_df_____ = "disable_failed" +_df______ = "disable-failed" +_IIRA = "IpamInternetRegistryAssociation" +_iIRAI = "ipamInternetRegistryAssociationId" +_IIRAA = "IpamInternetRegistryAssociationArn" +_iIRAA = "ipamInternetRegistryAssociationArn" +_rir = "rir" +_oHr = "organizationHandle" +_CRX = "ChildRequestXml" +_cRX = "childRequestXml" +_CIIRAO = "CreateIpamInternetRegistryAssociationOutput" +_cCIIRARo = "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationResult" +_iIRA = "ipamInternetRegistryAssociation" +_CIIRA = "CreateIpamInternetRegistryAssociation" +_CIPI = "CreateIpamPolicyInput" +_cCIPR = "com.amazonaws.ec2#CreateIpamPolicyRequest" +_IPIp = "IpamPolicyId" +_IPSp = "IpamPolicyState" +_IPpa = "IpamPolicy" +_iPIp = "ipamPolicyId" +_IPAp = "IpamPolicyArn" +_iPAp = "ipamPolicyArn" +_IPR = "IpamPolicyRegion" +_iPR = "ipamPolicyRegion" +_CIPO = "CreateIpamPolicyOutput" +_cCIPRo = "com.amazonaws.ec2#CreateIpamPolicyResult" +_iPpa = "ipamPolicy" +_CIPr = "CreateIpamPolicy" +_INLpa = "IpamNetmaskLength" +_RIRT = "RequestIpamResourceTag" +_RIRTL = "RequestIpamResourceTagList" +_IPAS = "IpamPoolAwsService" +_ec__ = "ec2" +_gs_ = "global_services" +_gs__ = "global-services" +_IPPIS = "IpamPoolPublicIpSource" +_IPSRT = "IpamPoolSourceResourceType" +_IPSRR = "IpamPoolSourceResourceRequest" +_CIPIr = "CreateIpamPoolInput" +_cCIPRom = "com.amazonaws.ec2#CreateIpamPoolRequest" +_Loc = "Locale" +_SIPI = "SourceIpamPoolId" +_AIu = "AutoImport" +_PAu = "PubliclyAdvertisable" +_AMNL = "AllocationMinNetmaskLength" +_AMNLl = "AllocationMaxNetmaskLength" +_ADNL = "AllocationDefaultNetmaskLength" +_ARTl = "AllocationResourceTags" +_ARTll = "AllocationResourceTag" +_ASw = "AwsService" +_PIS = "PublicIpSource" +_SRou = "SourceResource" +_IRTp = "IpamResourceTag" +_IRTL = "IpamResourceTagList" +_IST = "IpamScopeType" +_IPSR = "IpamPoolSourceResource" +_IPSpa = "IpamPoolState" +_IPpam = "IpamPool" +_sIPI = "sourceIpamPoolId" +_IPApa = "IpamPoolArn" +_iPApa = "ipamPoolArn" +_ISA = "IpamScopeArn" +_iSA = "ipamScopeArn" +_iST = "ipamScopeType" +_loc = "locale" +_PD = "PoolDepth" +_pD = "poolDepth" +_aIu = "autoImport" +_pAu = "publiclyAdvertisable" +_aF = "addressFamily" +_aMNL = "allocationMinNetmaskLength" +_aMNLl = "allocationMaxNetmaskLength" +_aDNL = "allocationDefaultNetmaskLength" +_ARTS = "AllocationResourceTagSet" +_aRTS = "allocationResourceTagSet" +_aSw = "awsService" +_pIS = "publicIpSource" +_sR = "sourceResource" +_CIPOr = "CreateIpamPoolOutput" +_cCIPRoma = "com.amazonaws.ec2#CreateIpamPoolResult" +_iPpam = "ipamPool" +_CIPre = "CreateIpamPool" +_IPLRRCO = "IpamPrefixListResolverRuleConditionOperation" +_eq = "equals" +_ne = "not_equals" +_ne_ = "not-equals" +_so_ = "subnet_of" +_so__ = "subnet-of" +_IPLRRCR = "IpamPrefixListResolverRuleConditionRequest" +_Ope = "Operation" +_RTeso = "ResourceTag" +_IPLRRCRS = "IpamPrefixListResolverRuleConditionRequestSet" +_Cond = "Condition" +_IRTpa = "IpamResourceType" +_pip = "public_ipv4_pool" +_pip_ = "public-ipv4-pool" +_ip______ = "ipv6_pool" +_ip_______ = "ipv6-pool" +_eni = "eni" +_IPLRRT = "IpamPrefixListResolverRuleType" +_sc__ = "static_cidr" +_sc___ = "static-cidr" +_irc = "ipam_resource_cidr" +_irc_ = "ipam-resource-cidr" +_ipc = "ipam_pool_cidr" +_ipc_ = "ipam-pool-cidr" +_IPLRRR = "IpamPrefixListResolverRuleRequest" +_RTu = "RuleType" +_SCt = "StaticCidr" +_Condi = "Conditions" +_IPLRRRS = "IpamPrefixListResolverRuleRequestSet" +_Ru = "Rule" +_CIPLRI = "CreateIpamPrefixListResolverInput" +_cCIPLRR = "com.amazonaws.ec2#CreateIpamPrefixListResolverRequest" +_Rul = "Rules" +_IPLRI = "IpamPrefixListResolverId" +_IPLRVCS = "IpamPrefixListResolverVersionCreationStatus" +_succe = "success" +_fail = "failure" +_IPLRS = "IpamPrefixListResolverState" +_IPLR = "IpamPrefixListResolver" +_iPLRI = "ipamPrefixListResolverId" +_IPLRA = "IpamPrefixListResolverArn" +_iPLRA = "ipamPrefixListResolverArn" +_LVCS = "LastVersionCreationStatus" +_lVCS = "lastVersionCreationStatus" +_LVCSM = "LastVersionCreationStatusMessage" +_lVCSM = "lastVersionCreationStatusMessage" +_CIPLRO = "CreateIpamPrefixListResolverOutput" +_cCIPLRRo = "com.amazonaws.ec2#CreateIpamPrefixListResolverResult" +_iPLR = "ipamPrefixListResolver" +_CIPLR = "CreateIpamPrefixListResolver" +_CIPLRTI = "CreateIpamPrefixListResolverTargetInput" +_cCIPLRTR = "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetRequest" +_PLR = "PrefixListRegion" +_DVe = "DesiredVersion" +_TLV = "TrackLatestVersion" +_IPLRTI = "IpamPrefixListResolverTargetId" +_IPLRTS = "IpamPrefixListResolverTargetState" +_sip = "sync_in_progress" +_sip_ = "sync-in-progress" +_sc____ = "sync_complete" +_sc_____ = "sync-complete" +_sf = "sync_failed" +_sf_ = "sync-failed" +_IPLRT = "IpamPrefixListResolverTarget" +_iPLRTI = "ipamPrefixListResolverTargetId" +_IPLRTA = "IpamPrefixListResolverTargetArn" +_iPLRTA = "ipamPrefixListResolverTargetArn" +_pLR = "prefixListRegion" +_dVe = "desiredVersion" +_LSV = "LastSyncedVersion" +_lSV = "lastSyncedVersion" +_tLV = "trackLatestVersion" +_CIPLRTO = "CreateIpamPrefixListResolverTargetOutput" +_cCIPLRTRo = "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetResult" +_iPLRT = "ipamPrefixListResolverTarget" +_CIPLRT = "CreateIpamPrefixListResolverTarget" +_CIRDI = "CreateIpamResourceDiscoveryInput" +_cCIRDR = "com.amazonaws.ec2#CreateIpamResourceDiscoveryRequest" +_IOUE = "IpamOrganizationalUnitExclusion" +_oEP = "organizationsEntityPath" +_IOUES = "IpamOrganizationalUnitExclusionSet" +_IRDS = "IpamResourceDiscoveryState" +_MIP = "MODIFY_IN_PROGRESS" +_MC_ = "MODIFY_COMPLETE" +_MF = "MODIFY_FAILED" +_IRD = "IpamResourceDiscovery" +_IRDAp = "IpamResourceDiscoveryArn" +_iRDAp = "ipamResourceDiscoveryArn" +_IRDR = "IpamResourceDiscoveryRegion" +_iRDR = "ipamResourceDiscoveryRegion" +_OUE = "OrganizationalUnitExclusions" +_OUES = "OrganizationalUnitExclusionSet" +_oUES = "organizationalUnitExclusionSet" +_CIRDO = "CreateIpamResourceDiscoveryOutput" +_cCIRDRo = "com.amazonaws.ec2#CreateIpamResourceDiscoveryResult" +_iRD = "ipamResourceDiscovery" +_CIRD = "CreateIpamResourceDiscovery" +_ALs = "AsnList" +_IRPRML = "IpamRoutingPolicyRegistrationMaxLength" +_CIRPRI = "CreateIpamRoutingPolicyRegistrationInput" +_cCIRPRR = "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationRequest" +_Asns = "Asns" +_PMSA = "PermitMoreSpecificAnnouncements" +_ML = "MaxLength" +_CIRPRO = "CreateIpamRoutingPolicyRegistrationOutput" +_cCIRPRRo = "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationResult" +_CIRPR = "CreateIpamRoutingPolicyRegistration" +_ISEAT = "IpamScopeExternalAuthorityType" +_info = "infoblox" +_EAC = "ExternalAuthorityConfiguration" +_ERI = "ExternalResourceIdentifier" +_CISI = "CreateIpamScopeInput" +_cCISR = "com.amazonaws.ec2#CreateIpamScopeRequest" +_ISEAC = "IpamScopeExternalAuthorityConfiguration" +_eRI = "externalResourceIdentifier" +_ISS = "IpamScopeState" +_ISpam = "IpamScope" +_iSI = "ipamScopeId" +_PCoo = "PoolCount" +_pC = "poolCount" +_eAC = "externalAuthorityConfiguration" +_CISO = "CreateIpamScopeOutput" +_cCISRo = "com.amazonaws.ec2#CreateIpamScopeResult" +_iSpa = "ipamScope" +_CIS = "CreateIpamScope" +_KF = "KeyFormat" +_pem = "pem" +_ppk = "ppk" +_KT = "KeyType" +_rsa = "rsa" +_ed = "ed25519" +_CKPI = "CreateKeyPairInput" +_cCKPR = "com.amazonaws.ec2#CreateKeyPairRequest" +_CKPO = "CreateKeyPairOutput" +_cKP = "com.amazonaws.ec2#KeyPair" +_KPI = "KeyPairId" +_kPI = "keyPairId" +_kN = "keyName" +_KFe = "KeyFingerprint" +_kF = "keyFingerprint" +_KM = "KeyMaterial" +_kM = "keyMaterial" +_CKP = "CreateKeyPair" +_LTEBDR = "LaunchTemplateEbsBlockDeviceRequest" +_LTBDMR = "LaunchTemplateBlockDeviceMappingRequest" +_LTBDMRL = "LaunchTemplateBlockDeviceMappingRequestList" +_CRP = "CapacityReservationPreference" +_cro_ = "capacity_reservations_only" +_cro__ = "capacity-reservations-only" +_LTCRSR = "LaunchTemplateCapacityReservationSpecificationRequest" +_ASSS = "AmdSevSnpSpecification" +_NVS = "NestedVirtualizationSpecification" +_LTCOR = "LaunchTemplateCpuOptionsRequest" +_CCor = "CoreCount" +_TPC = "ThreadsPerCore" +_NV = "NestedVirtualization" +_CSR = "CreditSpecificationRequest" +_CCp = "CpuCredits" +_EGS = "ElasticGpuSpecification" +_EGSL = "ElasticGpuSpecificationList" +_LTEIAC = "LaunchTemplateElasticInferenceAcceleratorCount" +_LTEIA = "LaunchTemplateElasticInferenceAccelerator" +_LTEIAL = "LaunchTemplateElasticInferenceAcceleratorList" +_LTEOR = "LaunchTemplateEnclaveOptionsRequest" +_LTHOR = "LaunchTemplateHibernationOptionsRequest" +_Conf = "Configured" +_LTIIPSR = "LaunchTemplateIamInstanceProfileSpecificationRequest" +_SBh = "ShutdownBehavior" +_icr_ = "interruptible_capacity_reservation" +_od_ = "on_demand" +_SITp = "SpotInstanceType" +_ot = "one_time" +_ot_ = "one-time" +_per = "persistent" +_LTSMOR = "LaunchTemplateSpotMarketOptionsRequest" +_BDMlo = "BlockDurationMinutes" +_LTIMOR = "LaunchTemplateInstanceMarketOptionsRequest" +_KI = "KernelId" +_KPN = "KeyPairName" +_LTLCR = "LaunchTemplateLicenseConfigurationRequest" +_LCA = "LicenseConfigurationArn" +_LTLSLR = "LaunchTemplateLicenseSpecificationListRequest" +_LTARS = "LaunchTemplateAutoRecoveryState" +_LTIMORa = "LaunchTemplateInstanceMaintenanceOptionsRequest" +_ARu = "AutoRecovery" +_LTIMES = "LaunchTemplateInstanceMetadataEndpointState" +_LTIMPI = "LaunchTemplateInstanceMetadataProtocolIpv6" +_LTHTS = "LaunchTemplateHttpTokensState" +_LTIMTS = "LaunchTemplateInstanceMetadataTagsState" +_LTIMORau = "LaunchTemplateInstanceMetadataOptionsRequest" +_HPI = "HttpProtocolIpv6" +_IMT = "InstanceMetadataTags" +_LTMR = "LaunchTemplatesMonitoringRequest" +_CTSR = "ConnectionTrackingSpecificationRequest" +_TET = "TcpEstablishedTimeout" +_UST = "UdpStreamTimeout" +_UTd = "UdpTimeout" +_ESUSR = "EnaSrdUdpSpecificationRequest" +_ESSR = "EnaSrdSpecificationRequest" +_SGISL = "SecurityGroupIdStringList" +_IPSRp = "Ipv4PrefixSpecificationRequest" +_IPLpv = "Ipv4PrefixList" +_IIAR = "InstanceIpv6AddressRequest" +_IApv = "Ipv6Address" +_IIALR = "InstanceIpv6AddressListRequest" +_IIA = "InstanceIpv6Address" +_IPSRpv = "Ipv6PrefixSpecificationRequest" +_IPLpvr = "Ipv6PrefixList" +_PIAS = "PrivateIpAddressSpecification" +_Prim = "Primary" +_prim = "primary" +_PIASLr = "PrivateIpAddressSpecificationList" +_LTINISR = "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest" +_ACIA = "AssociateCarrierIpAddress" +_APIAsso = "AssociatePublicIpAddress" +_ITnte = "InterfaceType" +_PIrim = "PrimaryIpv6" +_CTSo = "ConnectionTrackingSpecification" +_LTINISRL = "LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList" +_INIS = "InstanceNetworkInterfaceSpecification" +_IBW = "InstanceBandwidthWeighting" +_V_ = "VPC_1" +_v_____ = "vpc-1" +_E_ = "EBS_1" +_e_ = "ebs-1" +_LTNPOR = "LaunchTemplateNetworkPerformanceOptionsRequest" +_BW = "BandwidthWeighting" +_ORper = "OperatorRequest" +_LTPR = "LaunchTemplatePlacementRequest" +_LTPDNOR = "LaunchTemplatePrivateDnsNameOptionsRequest" +_RIa = "RamdiskId" +_SITe = "SecondaryInterfaceType" +_SECONDARY = "SECONDARY" +_sec = "secondary" +_SIPIASR = "SecondaryInterfacePrivateIpAddressSpecificationRequest" +_SIPIASLR = "SecondaryInterfacePrivateIpAddressSpecificationListRequest" +_SIPIAS = "SecondaryInterfacePrivateIpAddressSpecification" +_SSIe = "SecondarySubnetId" +_LTISISR = "LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest" +_LTISISRL = "LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList" +_ISIS = "InstanceSecondaryInterfaceSpecification" +_SGSL = "SecurityGroupStringList" +_LTTSR = "LaunchTemplateTagSpecificationRequest" +_LTTSRL = "LaunchTemplateTagSpecificationRequestList" +_RLTD = "RequestLaunchTemplateData" +_NIe = "NetworkInterfaces" +_Mon = "Monitoring" +_RDI = "RamDiskId" +_DAT = "DisableApiTermination" +_IISB = "InstanceInitiatedShutdownBehavior" +_UDs = "UserData" +_EGSl = "ElasticGpuSpecifications" +_EIA = "ElasticInferenceAccelerators" +_EIAl = "ElasticInferenceAccelerator" +_IMO = "InstanceMarketOptions" +_CSr = "CreditSpecification" +_CRSa = "CapacityReservationSpecification" +_LSic = "LicenseSpecifications" +_LSice = "LicenseSpecification" +_HO = "HibernationOptions" +_EOn = "EnclaveOptions" +_PDNO = "PrivateDnsNameOptions" +_MOa = "MaintenanceOptions" +_DASi = "DisableApiStop" +_NPO = "NetworkPerformanceOptions" +_SIec = "SecondaryInterfaces" +_SIeco = "SecondaryInterface" +_VD = "VersionDescription" +_CLTI = "CreateLaunchTemplateInput" +_cCLTR = "com.amazonaws.ec2#CreateLaunchTemplateRequest" +_LTD = "LaunchTemplateData" +_LT = "LaunchTemplate" +_CBr = "CreatedBy" +_cBr = "createdBy" +_DVN = "DefaultVersionNumber" +_dVN = "defaultVersionNumber" +_LVN = "LatestVersionNumber" +_lVN = "latestVersionNumber" +_VEa = "ValidationError" +_VW = "ValidationWarning" +_CLTO = "CreateLaunchTemplateOutput" +_cCLTRo = "com.amazonaws.ec2#CreateLaunchTemplateResult" +_lT = "launchTemplate" +_Wa = "Warning" +_wa = "warning" +_CLT = "CreateLaunchTemplate" +_CLTVI = "CreateLaunchTemplateVersionInput" +_cCLTVR = "com.amazonaws.ec2#CreateLaunchTemplateVersionRequest" +_SVo = "SourceVersion" +_RAes = "ResolveAlias" +_LTEBD = "LaunchTemplateEbsBlockDevice" +_LTBDM = "LaunchTemplateBlockDeviceMapping" +_LTBDML = "LaunchTemplateBlockDeviceMappingList" +_CRTR = "CapacityReservationTargetResponse" +_cRRGA = "capacityReservationResourceGroupArn" +_LTCRSRa = "LaunchTemplateCapacityReservationSpecificationResponse" +_cRP = "capacityReservationPreference" +_cRT = "capacityReservationTarget" +_LTCO = "LaunchTemplateCpuOptions" +_cCor = "coreCount" +_tPC = "threadsPerCore" +_aSS = "amdSevSnp" +_nV = "nestedVirtualization" +_cCp = "cpuCredits" +_EGSR = "ElasticGpuSpecificationResponse" +_EGSRL = "ElasticGpuSpecificationResponseList" +_LTEIAR = "LaunchTemplateElasticInferenceAcceleratorResponse" +_LTEIARL = "LaunchTemplateElasticInferenceAcceleratorResponseList" +_LTEO = "LaunchTemplateEnclaveOptions" +_LTHO = "LaunchTemplateHibernationOptions" +_conf = "configured" +_LTIIPS = "LaunchTemplateIamInstanceProfileSpecification" +_LTSMO = "LaunchTemplateSpotMarketOptions" +_sIT = "spotInstanceType" +_bDMl = "blockDurationMinutes" +_vU = "validUntil" +_iIB = "instanceInterruptionBehavior" +_LTIMO = "LaunchTemplateInstanceMarketOptions" +_mTa = "marketType" +_sO = "spotOptions" +_LTLC = "LaunchTemplateLicenseConfiguration" +_lCA = "licenseConfigurationArn" +_LTLL = "LaunchTemplateLicenseList" +_LTIMOa = "LaunchTemplateInstanceMaintenanceOptions" +_aRu = "autoRecovery" +_LTIMOS = "LaunchTemplateInstanceMetadataOptionsState" +_LTIMOau = "LaunchTemplateInstanceMetadataOptions" +_hTt = "httpTokens" +_hPRHL = "httpPutResponseHopLimit" +_hE = "httpEndpoint" +_hPI = "httpProtocolIpv6" +_iMT = "instanceMetadataTags" +_LTM = "LaunchTemplatesMonitoring" +_tET = "tcpEstablishedTimeout" +_uTd = "udpTimeout" +_uST = "udpStreamTimeout" +_LTESUS = "LaunchTemplateEnaSrdUdpSpecification" +_eSUE = "enaSrdUdpEnabled" +_LTESS = "LaunchTemplateEnaSrdSpecification" +_eSE = "enaSrdEnabled" +_eSUS = "enaSrdUdpSpecification" +_IPSRpvr = "Ipv4PrefixSpecificationResponse" +_IPLRp = "Ipv4PrefixListResponse" +_iApv = "ipv6Address" +_IPIs = "IsPrimaryIpv6" +_iPIs = "isPrimaryIpv6" +_IIAL = "InstanceIpv6AddressList" +_IPSRpvre = "Ipv6PrefixSpecificationResponse" +_iPpvr = "ipv6Prefix" +_IPLRpv = "Ipv6PrefixListResponse" +_LTINIS = "LaunchTemplateInstanceNetworkInterfaceSpecification" +_aCIA = "associateCarrierIpAddress" +_aPIA = "associatePublicIpAddress" +_GS = "GroupSet" +_gS = "groupSet" +_iTnt = "interfaceType" +_IAS = "Ipv6AddressesSet" +_iAS = "ipv6AddressesSet" +_PIASr = "PrivateIpAddressesSet" +_pIAS = "privateIpAddressesSet" +_IPSpv = "Ipv4PrefixSet" +_iPS = "ipv4PrefixSet" +_iPC = "ipv4PrefixCount" +_IPSpvr = "Ipv6PrefixSet" +_iPSp = "ipv6PrefixSet" +_iPCp = "ipv6PrefixCount" +_pIri = "primaryIpv6" +_eSS = "enaSrdSpecification" +_cTSo = "connectionTrackingSpecification" +_eQC = "enaQueueCount" +_LTINISL = "LaunchTemplateInstanceNetworkInterfaceSpecificationList" +_LTNPO = "LaunchTemplateNetworkPerformanceOptions" +_bW = "bandwidthWeighting" +_LTP = "LaunchTemplatePlacement" +_LTPDNO = "LaunchTemplatePrivateDnsNameOptions" +_SIPIASL = "SecondaryInterfacePrivateIpAddressSpecificationList" +_LTISIS = "LaunchTemplateInstanceSecondaryInterfaceSpecification" +_pIAC = "privateIpAddressCount" +_sSIe = "secondarySubnetId" +_LTISISL = "LaunchTemplateInstanceSecondaryInterfaceSpecificationList" +_LTTS = "LaunchTemplateTagSpecification" +_LTTSL = "LaunchTemplateTagSpecificationList" +_RLTDe = "ResponseLaunchTemplateData" +_kI = "kernelId" +_NIS = "NetworkInterfaceSet" +_nIS = "networkInterfaceSet" +_monit = "monitoring" +_rDI = "ramDiskId" +_dAT = "disableApiTermination" +_iISB = "instanceInitiatedShutdownBehavior" +_uDs = "userData" +_TSS = "TagSpecificationSet" +_tSS = "tagSpecificationSet" +_EGSS = "ElasticGpuSpecificationSet" +_eGSS = "elasticGpuSpecificationSet" +_EIAS = "ElasticInferenceAcceleratorSet" +_eIAS = "elasticInferenceAcceleratorSet" +_iMO = "instanceMarketOptions" +_cSr = "creditSpecification" +_cOp = "cpuOptions" +_cRS = "capacityReservationSpecification" +_LSicen = "LicenseSet" +_lSi = "licenseSet" +_hO = "hibernationOptions" +_mO = "metadataOptions" +_eOn = "enclaveOptions" +_pDNO = "privateDnsNameOptions" +_mOa = "maintenanceOptions" +_dASi = "disableApiStop" +_nPO = "networkPerformanceOptions" +_SIS = "SecondaryInterfaceSet" +_sIS = "secondaryInterfaceSet" +_LTV = "LaunchTemplateVersion" +_VNe = "VersionNumber" +_vNe = "versionNumber" +_vD = "versionDescription" +_DVef = "DefaultVersion" +_dVef = "defaultVersion" +_lTD = "launchTemplateData" +_CLTVO = "CreateLaunchTemplateVersionOutput" +_cCLTVRo = "com.amazonaws.ec2#CreateLaunchTemplateVersionResult" +_lTV = "launchTemplateVersion" +_CLTV = "CreateLaunchTemplateVersion" +_LGVIGI = "LocalGatewayVirtualInterfaceGroupId" +_CLGRI = "CreateLocalGatewayRouteInput" +_cCLGRR = "com.amazonaws.ec2#CreateLocalGatewayRouteRequest" +_LGRS = "LocalGatewayRouteState" +_bl = "blackhole" +_LGRT = "LocalGatewayRouteType" +_stat = "static" +_prop = "propagated" +_LGR = "LocalGatewayRoute" +_dCB = "destinationCidrBlock" +_lGVIGI = "localGatewayVirtualInterfaceGroupId" +_LGRTA = "LocalGatewayRouteTableArn" +_lGRTA = "localGatewayRouteTableArn" +_CLGRO = "CreateLocalGatewayRouteOutput" +_cCLGRRo = "com.amazonaws.ec2#CreateLocalGatewayRouteResult" +_Rou = "Route" +_rou = "route" +_CLGR = "CreateLocalGatewayRoute" +_LGRTM = "LocalGatewayRouteTableMode" +_dvr = "direct_vpc_routing" +_dvr_ = "direct-vpc-routing" +_coi = "coip" +_CLGRTI = "CreateLocalGatewayRouteTableInput" +_cCLGRTR = "com.amazonaws.ec2#CreateLocalGatewayRouteTableRequest" +_SRt = "StateReason" +_LGRTo = "LocalGatewayRouteTable" +_sRt = "stateReason" +_CLGRTO = "CreateLocalGatewayRouteTableOutput" +_cCLGRTRo = "com.amazonaws.ec2#CreateLocalGatewayRouteTableResult" +_lGRT = "localGatewayRouteTable" +_CLGRT = "CreateLocalGatewayRouteTable" +_CLGRTVIGAI = "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput" +_cCLGRTVIGAR = "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest" +_LGRTVIGAI = "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId" +_LGRTVIGA = "LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +_lGRTVIGAI = "localGatewayRouteTableVirtualInterfaceGroupAssociationId" +_CLGRTVIGAO = "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput" +_cCLGRTVIGARo = "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult" +_lGRTVIGA = "localGatewayRouteTableVirtualInterfaceGroupAssociation" +_CLGRTVIGA = "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation" +_CLGRTVAI = "CreateLocalGatewayRouteTableVpcAssociationInput" +_cCLGRTVAR = "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationRequest" +_LGRTVAI = "LocalGatewayRouteTableVpcAssociationId" +_LGRTVA = "LocalGatewayRouteTableVpcAssociation" +_lGRTVAI = "localGatewayRouteTableVpcAssociationId" +_CLGRTVAO = "CreateLocalGatewayRouteTableVpcAssociationOutput" +_cCLGRTVARo = "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationResult" +_lGRTVA = "localGatewayRouteTableVpcAssociation" +_CLGRTVA = "CreateLocalGatewayRouteTableVpcAssociation" +_OLI = "OutpostLagId" +_CLGVII = "CreateLocalGatewayVirtualInterfaceInput" +_cCLGVIR = "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceRequest" +_Vl = "Vlan" +_LA = "LocalAddress" +_PAe = "PeerAddress" +_PBA = "PeerBgpAsn" +_PBAE = "PeerBgpAsnExtended" +_LGVICS = "LocalGatewayVirtualInterfaceConfigurationState" +_LGVII = "LocalGatewayVirtualInterfaceId" +_LGVI = "LocalGatewayVirtualInterface" +_lGVII = "localGatewayVirtualInterfaceId" +_LGVIA = "LocalGatewayVirtualInterfaceArn" +_lGVIA = "localGatewayVirtualInterfaceArn" +_oLI = "outpostLagId" +_vl = "vlan" +_lA = "localAddress" +_pAe = "peerAddress" +_LBAo = "LocalBgpAsn" +_lBAo = "localBgpAsn" +_pBA = "peerBgpAsn" +_pBAE = "peerBgpAsnExtended" +_CSon = "ConfigurationState" +_cSo = "configurationState" +_CLGVIO = "CreateLocalGatewayVirtualInterfaceOutput" +_cCLGVIRo = "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceResult" +_lGVI = "localGatewayVirtualInterface" +_CLGVI = "CreateLocalGatewayVirtualInterface" +_CLGVIGI = "CreateLocalGatewayVirtualInterfaceGroupInput" +_cCLGVIGR = "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupRequest" +_LBAE = "LocalBgpAsnExtended" +_LGVIGCS = "LocalGatewayVirtualInterfaceGroupConfigurationState" +_inco = "incomplete" +_LGVIIS = "LocalGatewayVirtualInterfaceIdSet" +_LGVIG = "LocalGatewayVirtualInterfaceGroup" +_LGVIIo = "LocalGatewayVirtualInterfaceIds" +_lGVIIS = "localGatewayVirtualInterfaceIdSet" +_lBAE = "localBgpAsnExtended" +_LGVIGA = "LocalGatewayVirtualInterfaceGroupArn" +_lGVIGA = "localGatewayVirtualInterfaceGroupArn" +_CLGVIGO = "CreateLocalGatewayVirtualInterfaceGroupOutput" +_cCLGVIGRo = "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupResult" +_lGVIG = "localGatewayVirtualInterfaceGroup" +_CLGVIG = "CreateLocalGatewayVirtualInterfaceGroup" +_MSIPCR = "MacSystemIntegrityProtectionConfigurationRequest" +_CMSIPMTI = "CreateMacSystemIntegrityProtectionModificationTaskInput" +_cCMSIPMTR = ( + "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskRequest" +) +_MSIPS = "MacSystemIntegrityProtectionStatus" +_CMSIPMTO = "CreateMacSystemIntegrityProtectionModificationTaskOutput" +_cCMSIPMTRo = ( + "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskResult" +) +_CMSIPMT = "CreateMacSystemIntegrityProtectionModificationTask" +_CMPLI = "CreateManagedPrefixListInput" +_cCMPLR = "com.amazonaws.ec2#CreateManagedPrefixListRequest" +_PLN = "PrefixListName" +_Ent = "Entries" +_Entr = "Entry" +_ME = "MaxEntries" +_PLS = "PrefixListState" +_rc_ = "restore_complete" +_rc__ = "restore-complete" +_rf____________ = "restore_failed" +_rf_____________ = "restore-failed" +_MPL = "ManagedPrefixList" +_PLA = "PrefixListArn" +_pLA = "prefixListArn" +_pLN = "prefixListName" +_mE = "maxEntries" +_IPLRSE = "IpamPrefixListResolverSyncEnabled" +_iPLRSE = "ipamPrefixListResolverSyncEnabled" +_CMPLO = "CreateManagedPrefixListOutput" +_cCMPLRo = "com.amazonaws.ec2#CreateManagedPrefixListResult" +_CMPL = "CreateManagedPrefixList" +_AMv = "AvailabilityMode" +_ZONAL = "ZONAL" +_zo = "zonal" +_AZA = "AvailabilityZoneAddress" +_AZAv = "AvailabilityZoneAddresses" +_CTo = "ConnectivityType" +_PUBLIC = "PUBLIC" +_CNGI = "CreateNatGatewayInput" +_cCNGR = "com.amazonaws.ec2#CreateNatGatewayRequest" +_SAI = "SecondaryAllocationIds" +_SAIe = "SecondaryAllocationId" +_SPIA = "SecondaryPrivateIpAddresses" +_SPIAe = "SecondaryPrivateIpAddress" +_NGASat = "NatGatewayApplianceState" +_ATTACHING = "ATTACHING" +_ATTACHED = "ATTACHED" +_DETACHING = "DETACHING" +_DETACHED = "DETACHED" +_AF__ = "ATTACH_FAILED" +_af___ = "attach-failed" +_DF__ = "DETACH_FAILED" +_df_______ = "detach-failed" +_NGAMS = "NatGatewayApplianceModifyState" +_COMPLETED = "COMPLETED" +_NGAT = "NatGatewayApplianceType" +_NFP = "NETWORK_FIREWALL_PROXY" +_nfp = "network-firewall-proxy" +_NGAA = "NatGatewayAttachedAppliance" +_AAp = "ApplianceArn" +_aAp = "applianceArn" +_vEI = "vpcEndpointId" +_AStta = "AttachmentState" +_aStt = "attachmentState" +_MSo = "ModificationState" +_mS = "modificationState" +_FCa = "FailureCode" +_fCa = "failureCode" +_NGAAL = "NatGatewayAttachedApplianceList" +_APZS = "AutoProvisionZonesState" +_ASIS = "AutoScalingIpsState" +_PB = "ProvisionedBandwidth" +_PTro = "ProvisionTime" +_pTr = "provisionTime" +_Prov = "Provisioned" +_RTeq = "RequestTime" +_rTeq = "requestTime" +_Req = "Requested" +_NGS = "NatGatewayState" +_PENDING = "PENDING" +_AVAILABLE = "AVAILABLE" +_DELETING = "DELETING" +_DELETED = "DELETED" +_DTel = "DeleteTime" +_dTe = "deleteTime" +_pB = "provisionedBandwidth" +_cTo = "connectivityType" +_aM = "availabilityMode" +_ASI = "AutoScalingIps" +_aSI = "autoScalingIps" +_APZ = "AutoProvisionZones" +_aPZ = "autoProvisionZones" +_AAt = "AttachedAppliances" +_AASt = "AttachedApplianceSet" +_aASt = "attachedApplianceSet" +_CNGO = "CreateNatGatewayOutput" +_cCNGRo = "com.amazonaws.ec2#CreateNatGatewayResult" +_CNG = "CreateNatGateway" +_CNAI = "CreateNetworkAclInput" +_cCNAR = "com.amazonaws.ec2#CreateNetworkAclRequest" +_NAA = "NetworkAclAssociation" +_NAAI = "NetworkAclAssociationId" +_nAAI = "networkAclAssociationId" +_NAI = "NetworkAclId" +_nAI = "networkAclId" +_NAAL = "NetworkAclAssociationList" +_ITC = "IcmpTypeCode" +_all = "allow" +_deny = "deny" +_NAE = "NetworkAclEntry" +_iTC = "icmpTypeCode" +_NAEL = "NetworkAclEntryList" +_NAe = "NetworkAcl" +_ASsso = "AssociationSet" +_aSss = "associationSet" +_ESn = "EntrySet" +_eSn = "entrySet" +_Def = "Default" +_CNAO = "CreateNetworkAclOutput" +_cCNARo = "com.amazonaws.ec2#CreateNetworkAclResult" +_nAe = "networkAcl" +_CNAr = "CreateNetworkAcl" +_CNAEI = "CreateNetworkAclEntryInput" +_cCNAER = "com.amazonaws.ec2#CreateNetworkAclEntryRequest" +_Ic = "Icmp" +_CNAEO = "CreateNetworkAclEntryOutput" +_CNAE = "CreateNetworkAclEntry" +_CNIASI = "CreateNetworkInsightsAccessScopeInput" +_cCNIASR = "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeRequest" +_MPa = "MatchPaths" +_MPat = "MatchPath" +_EP = "ExcludePaths" +_EPx = "ExcludePath" +_NIAS = "NetworkInsightsAccessScope" +_NIASA = "NetworkInsightsAccessScopeArn" +_nIASA = "networkInsightsAccessScopeArn" +_CDr = "CreatedDate" +_cDr = "createdDate" +_UDp = "UpdatedDate" +_uDp = "updatedDate" +_NIASC = "NetworkInsightsAccessScopeContent" +_MPS = "MatchPathSet" +_mPS = "matchPathSet" +_EPS = "ExcludePathSet" +_ePS = "excludePathSet" +_CNIASO = "CreateNetworkInsightsAccessScopeOutput" +_cCNIASRo = "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeResult" +_nIAS = "networkInsightsAccessScope" +_nIASC = "networkInsightsAccessScopeContent" +_CNIAS = "CreateNetworkInsightsAccessScope" +_NIRI = "NetworkInsightsResourceId" +_RFPR = "RequestFilterPortRange" +_PRF = "PathRequestFilter" +_CNIPI = "CreateNetworkInsightsPathInput" +_cCNIPR = "com.amazonaws.ec2#CreateNetworkInsightsPathRequest" +_SIo = "SourceIp" +_DIes = "DestinationIp" +_FAS = "FilterAtSource" +_FAD = "FilterAtDestination" +_FPR = "FilterPortRange" +_PFa = "PathFilter" +_sAo = "sourceAddress" +_dA = "destinationAddress" +_NIPI = "NetworkInsightsPathId" +_NIP = "NetworkInsightsPath" +_nIPI = "networkInsightsPathId" +_NIPA = "NetworkInsightsPathArn" +_nIPA = "networkInsightsPathArn" +_SAour = "SourceArn" +_sAou = "sourceArn" +_DAes = "DestinationArn" +_dAe = "destinationArn" +_sIo = "sourceIp" +_dIes = "destinationIp" +_dPe = "destinationPort" +_fAS = "filterAtSource" +_fAD = "filterAtDestination" +_CNIPO = "CreateNetworkInsightsPathOutput" +_cCNIPRo = "com.amazonaws.ec2#CreateNetworkInsightsPathResult" +_nIP = "networkInsightsPath" +_CNIP = "CreateNetworkInsightsPath" +_NICT = "NetworkInterfaceCreationType" +_efa = "efa" +_eo = "efa_only" +_eo_ = "efa-only" +_br = "branch" +_tru = "trunk" +_CNII = "CreateNetworkInterfaceInput" +_cCNIR = "com.amazonaws.ec2#CreateNetworkInterfaceRequest" +_EPI = "EnablePrimaryIpv6" +_pIAri = "privateIpAddresses" +_ASL = "AssociatedSubnetList" +_NIA = "NetworkInterfaceAssociation" +_IOI = "IpOwnerId" +_iOI = "ipOwnerId" +_PDNu = "PublicDnsName" +_pDNu = "publicDnsName" +_AESUS = "AttachmentEnaSrdUdpSpecification" +_AESS = "AttachmentEnaSrdSpecification" +_NIAe = "NetworkInterfaceAttachment" +_IOIn = "InstanceOwnerId" +_iOIn = "instanceOwnerId" +_CTC = "ConnectionTrackingConfiguration" +_GIro = "GroupIdentifier" +_GIL = "GroupIdentifierList" +_NIT = "NetworkInterfaceType" +_inter = "interface" +_lb = "load_balancer" +_nlb = "network_load_balancer" +_qu = "quicksight" +_gam = "global_accelerator_managed" +_agm = "api_gateway_managed" +_glb = "gateway_load_balancer" +_glbe = "gateway_load_balancer_endpoint" +_irm = "iot_rules_managed" +_accm = "aws_codestar_connections_managed" +_NIIA = "NetworkInterfaceIpv6Address" +_PIDN = "PublicIpv6DnsName" +_pIDN = "publicIpv6DnsName" +_NIIAL = "NetworkInterfaceIpv6AddressesList" +_IPSpvre = "Ipv6PrefixSpecification" +_IPLpvre = "Ipv6PrefixesList" +_NIPIA = "NetworkInterfacePrivateIpAddress" +_PDNr = "PrivateDnsName" +_pDNr = "privateDnsName" +_NIPIAL = "NetworkInterfacePrivateIpAddressList" +_PIDNO = "PublicIpDnsNameOptions" +_DHT = "DnsHostnameType" +_dHT = "dnsHostnameType" +_PIDNu = "PublicIpv4DnsName" +_pIDNu = "publicIpv4DnsName" +_PDSDN = "PublicDualStackDnsName" +_pDSDN = "publicDualStackDnsName" +_NISe = "NetworkInterfaceStatus" +_cTC = "connectionTrackingConfiguration" +_MAa = "MacAddress" +_mAa = "macAddress" +_pIDNO = "publicIpDnsNameOptions" +_RIeq = "RequesterId" +_rIeq = "requesterId" +_RMe = "RequesterManaged" +_rMe = "requesterManaged" +_SDC = "SourceDestCheck" +_sDC = "sourceDestCheck" +_DAIT = "DenyAllIgwTraffic" +_dAIT = "denyAllIgwTraffic" +_ASssoc = "AssociatedSubnets" +_ASSs = "AssociatedSubnetSet" +_aSSs = "associatedSubnetSet" +_CNIO = "CreateNetworkInterfaceOutput" +_cCNIRo = "com.amazonaws.ec2#CreateNetworkInterfaceResult" +_CNIr = "CreateNetworkInterface" +_IPTn = "InterfacePermissionType" +_IA_ = "INSTANCE_ATTACH" +_IA__ = "INSTANCE-ATTACH" +_EA = "EIP_ASSOCIATE" +_EA_ = "EIP-ASSOCIATE" +_CNIPIr = "CreateNetworkInterfacePermissionInput" +_cCNIPRom = "com.amazonaws.ec2#CreateNetworkInterfacePermissionRequest" +_AAIw = "AwsAccountId" +_Pe = "Permission" +_NIPSC = "NetworkInterfacePermissionStateCode" +_gra = "granted" +_revo = "revoked" +_NIPS = "NetworkInterfacePermissionState" +_NIPe = "NetworkInterfacePermission" +_NIPIe = "NetworkInterfacePermissionId" +_nIPIe = "networkInterfacePermissionId" +_aAI = "awsAccountId" +_perm = "permission" +_PSer = "PermissionState" +_pSer = "permissionState" +_CNIPOr = "CreateNetworkInterfacePermissionOutput" +_cCNIPRoma = "com.amazonaws.ec2#CreateNetworkInterfacePermissionResult" +_IPnt = "InterfacePermission" +_iPnt = "interfacePermission" +_CNIPr = "CreateNetworkInterfacePermission" +_SLp = "SpreadLevel" +_rac = "rack" +_PSl = "PlacementStrategy" +_clu = "cluster" +_spr = "spread" +_part = "partition" +_pt___ = "precision_time" +_pt____ = "precision-time" +_CPGI = "CreatePlacementGroupInput" +_cCPGR = "com.amazonaws.ec2#CreatePlacementGroupRequest" +_PCa = "PartitionCount" +_LGIi = "LinkedGroupId" +_PGIa = "ParentGroupId" +_Str = "Strategy" +_str = "strategy" +_PGS = "PlacementGroupState" +_PG = "PlacementGroup" +_pCa = "partitionCount" +_GA = "GroupArn" +_gA = "groupArn" +_sL = "spreadLevel" +_lGIi = "linkedGroupId" +_pGI = "parentGroupId" +_CPGO = "CreatePlacementGroupOutput" +_cCPGRo = "com.amazonaws.ec2#CreatePlacementGroupResult" +_pG = "placementGroup" +_CPG = "CreatePlacementGroup" +_CPIPI = "CreatePublicIpv4PoolInput" +_cCPIPR = "com.amazonaws.ec2#CreatePublicIpv4PoolRequest" +_CPIPO = "CreatePublicIpv4PoolOutput" +_cCPIPRo = "com.amazonaws.ec2#CreatePublicIpv4PoolResult" +_CPIP = "CreatePublicIpv4Pool" +_CRRVTI = "CreateReplaceRootVolumeTaskInput" +_cCRRVTR = "com.amazonaws.ec2#CreateReplaceRootVolumeTaskRequest" +_DRRV = "DeleteReplacedRootVolume" +_RRVTI = "ReplaceRootVolumeTaskId" +_RRVTS = "ReplaceRootVolumeTaskState" +_ip________ = "in_progress" +_fd____ = "failed_detached" +_fd_____ = "failed-detached" +_RRVT = "ReplaceRootVolumeTask" +_rRVTI = "replaceRootVolumeTaskId" +_CTom = "CompleteTime" +_cTom = "completeTime" +_dRRV = "deleteReplacedRootVolume" +_CRRVTO = "CreateReplaceRootVolumeTaskOutput" +_cCRRVTRo = "com.amazonaws.ec2#CreateReplaceRootVolumeTaskResult" +_rRVT = "replaceRootVolumeTask" +_CRRVT = "CreateReplaceRootVolumeTask" +_PSS = "PriceScheduleSpecification" +_PSSL = "PriceScheduleSpecificationList" +_CRILIr = "CreateReservedInstancesListingInput" +_cCRILRom = "com.amazonaws.ec2#CreateReservedInstancesListingRequest" +_CRILOr = "CreateReservedInstancesListingOutput" +_cCRILRoma = "com.amazonaws.ec2#CreateReservedInstancesListingResult" +_CRILr = "CreateReservedInstancesListing" +_CRITI = "CreateRestoreImageTaskInput" +_cCRITR = "com.amazonaws.ec2#CreateRestoreImageTaskRequest" +_OK = "ObjectKey" +_CRITO = "CreateRestoreImageTaskOutput" +_cCRITRo = "com.amazonaws.ec2#CreateRestoreImageTaskResult" +_CRIT = "CreateRestoreImageTask" +_ONA = "OdbNetworkArn" +_CRIr = "CreateRouteInput" +_cCRR = "com.amazonaws.ec2#CreateRouteRequest" +_DICB = "DestinationIpv6CidrBlock" +_dICB = "destinationIpv6CidrBlock" +_CROr = "CreateRouteOutput" +_cCRRo = "com.amazonaws.ec2#CreateRouteResult" +_CRr = "CreateRoute" +_RSPRA = "RouteServerPersistRoutesAction" +_ENABLE = "ENABLE" +_DISABLE = "DISABLE" +_RESET = "RESET" +_res = "reset" +_CRSI = "CreateRouteServerInput" +_cCRSR = "com.amazonaws.ec2#CreateRouteServerRequest" +_ASA = "AmazonSideAsn" +_PRe = "PersistRoutes" +_PRD = "PersistRoutesDuration" +_SNE = "SnsNotificationsEnabled" +_RSPRS = "RouteServerPersistRoutesState" +_ENABLING = "ENABLING" +_RESETTING = "RESETTING" +_rese = "resetting" +_DISABLING = "DISABLING" +_RSS = "RouteServerState" +_RSo = "RouteServer" +_aSA = "amazonSideAsn" +_PRSe = "PersistRoutesState" +_pRSe = "persistRoutesState" +_pRD = "persistRoutesDuration" +_sNE = "snsNotificationsEnabled" +_STA = "SnsTopicArn" +_sTA = "snsTopicArn" +_CRSO = "CreateRouteServerOutput" +_cCRSRo = "com.amazonaws.ec2#CreateRouteServerResult" +_rSo = "routeServer" +_CRSr = "CreateRouteServer" +_CRSEI = "CreateRouteServerEndpointInput" +_cCRSER = "com.amazonaws.ec2#CreateRouteServerEndpointRequest" +_RSEI = "RouteServerEndpointId" +_RSES = "RouteServerEndpointState" +_FAILING = "FAILING" +_RSE = "RouteServerEndpoint" +_rSEI = "routeServerEndpointId" +_EIn = "EniId" +_eIn = "eniId" +_EAn = "EniAddress" +_eA = "eniAddress" +_FRa = "FailureReason" +_fRa = "failureReason" +_CRSEO = "CreateRouteServerEndpointOutput" +_cCRSERo = "com.amazonaws.ec2#CreateRouteServerEndpointResult" +_rSE = "routeServerEndpoint" +_CRSE = "CreateRouteServerEndpoint" +_RSPLM = "RouteServerPeerLivenessMode" +_BFD = "BFD" +_bf = "bfd" +_BK = "BGP_KEEPALIVE" +_bk = "bgp-keepalive" +_RSBOR = "RouteServerBgpOptionsRequest" +_PAee = "PeerAsn" +_PLD = "PeerLivenessDetection" +_CRSPI = "CreateRouteServerPeerInput" +_cCRSPR = "com.amazonaws.ec2#CreateRouteServerPeerRequest" +_BO = "BgpOptions" +_RSBS = "RouteServerBfdState" +_UP__ = "UP" +_up_ = "up" +_DOWN = "DOWN" +_dow = "down" +_RSBSo = "RouteServerBfdStatus" +_RSBO = "RouteServerBgpOptions" +_pAee = "peerAsn" +_pLD = "peerLivenessDetection" +_RSBSou = "RouteServerBgpState" +_RSBSout = "RouteServerBgpStatus" +_RSPI = "RouteServerPeerId" +_RSPS = "RouteServerPeerState" +_RSP = "RouteServerPeer" +_rSPI = "routeServerPeerId" +_EEI = "EndpointEniId" +_eEI = "endpointEniId" +_EEA = "EndpointEniAddress" +_eEA = "endpointEniAddress" +_bO = "bgpOptions" +_BSg = "BgpStatus" +_bSg = "bgpStatus" +_BSf = "BfdStatus" +_bSf = "bfdStatus" +_CRSPO = "CreateRouteServerPeerOutput" +_cCRSPRo = "com.amazonaws.ec2#CreateRouteServerPeerResult" +_rSP = "routeServerPeer" +_CRSP = "CreateRouteServerPeer" +_CRTI = "CreateRouteTableInput" +_cCRTR = "com.amazonaws.ec2#CreateRouteTableRequest" +_RTA = "RouteTableAssociation" +_Mai = "Main" +_main = "main" +_RTAI = "RouteTableAssociationId" +_rTAI = "routeTableAssociationId" +_RTAL = "RouteTableAssociationList" +_PVr = "PropagatingVgw" +_PVL = "PropagatingVgwList" +_CRTr = "CreateRouteTable" +_EVRP = "EnableVgwRoutePropagation" +_Adv = "Advertisement" +_RSou = "RouteState" +_fil = "filtered" +_oNA = "odbNetworkArn" +_RL = "RouteList" +_PVro = "PropagatingVgws" +_PVS = "PropagatingVgwSet" +_pVS = "propagatingVgwSet" +_Rout = "Routes" +_RSout = "RouteSet" +_rSou = "routeSet" +_CRTO = "CreateRouteTableOutput" +_cCRTRo = "com.amazonaws.ec2#CreateRouteTableResult" +_SNT = "SecondaryNetworkType" +_rdma = "rdma" +_CSNI = "CreateSecondaryNetworkInput" +_cCSNR = "com.amazonaws.ec2#CreateSecondaryNetworkRequest" +_ICBp = "Ipv4CidrBlock" +_NTe = "NetworkType" +_SNCAI = "SecondaryNetworkCidrAssociationId" +_SNCBAS = "SecondaryNetworkCidrBlockAssociationState" +_SNICBA = "SecondaryNetworkIpv4CidrBlockAssociation" +_SNICBAL = "SecondaryNetworkIpv4CidrBlockAssociationList" +_SNI = "SecondaryNetworkId" +_SNS = "SecondaryNetworkState" +_SNec = "SecondaryNetwork" +_sNI = "secondaryNetworkId" +_SNA = "SecondaryNetworkArn" +_sNA = "secondaryNetworkArn" +_ICBAp = "Ipv4CidrBlockAssociations" +_ICBASp = "Ipv4CidrBlockAssociationSet" +_iCBASp = "ipv4CidrBlockAssociationSet" +_CSNO = "CreateSecondaryNetworkOutput" +_cCSNRo = "com.amazonaws.ec2#CreateSecondaryNetworkResult" +_sNec = "secondaryNetwork" +_CSN = "CreateSecondaryNetwork" +_CSSI = "CreateSecondarySubnetInput" +_cCSSR = "com.amazonaws.ec2#CreateSecondarySubnetRequest" +_SSCAI = "SecondarySubnetCidrAssociationId" +_SSCBAS = "SecondarySubnetCidrBlockAssociationState" +_SSICBA = "SecondarySubnetIpv4CidrBlockAssociation" +_SSICBAL = "SecondarySubnetIpv4CidrBlockAssociationList" +_SSS = "SecondarySubnetState" +_SSe = "SecondarySubnet" +_SSA = "SecondarySubnetArn" +_sSA = "secondarySubnetArn" +_sNT = "secondaryNetworkType" +_CSSO = "CreateSecondarySubnetOutput" +_cCSSRo = "com.amazonaws.ec2#CreateSecondarySubnetResult" +_sSe = "secondarySubnet" +_CSS = "CreateSecondarySubnet" +_CSGI = "CreateSecurityGroupInput" +_cCSGR = "com.amazonaws.ec2#CreateSecurityGroupRequest" +_GD = "GroupDescription" +_CSGO = "CreateSecurityGroupOutput" +_cCSGRo = "com.amazonaws.ec2#CreateSecurityGroupResult" +_SGA = "SecurityGroupArn" +_sGA = "securityGroupArn" +_CSG = "CreateSecurityGroup" +_CSIr = "CreateSnapshotInput" +_cCSRom = "com.amazonaws.ec2#CreateSnapshotRequest" +_Loca = "Location" +_SCDMRn = "SnapshotCompletionDurationMinutesResponse" +_SSn = "SnapshotState" +_rec = "recoverable" +_reco = "recovering" +_STt = "StorageTier" +_arc = "archive" +_TTra = "TransferType" +_tb = "time_based" +_tb_ = "time-based" +_CSOr = "CreateSnapshotOutput" +_cSom = "com.amazonaws.ec2#Snapshot" +_OAw = "OwnerAlias" +_oAw = "ownerAlias" +_sTto = "storageTier" +_RET = "RestoreExpiryTime" +_rET = "restoreExpiryTime" +_tTr = "transferType" +_cDM = "completionDurationMinutes" +_CTomp = "CompletionTime" +_cTomp = "completionTime" +_FSSIB = "FullSnapshotSizeInBytes" +_fSSIB = "fullSnapshotSizeInBytes" +_DEKI = "DataEncryptionKeyId" +_dEKI = "dataEncryptionKeyId" +_CSre = "CreateSnapshot" +_CTFS = "CopyTagsFromSource" +_VISL = "VolumeIdStringList" +_IIWVR = "InstanceIdWithVolumeResolver" +_ISn = "InstanceSpecification" +_EBV = "ExcludeBootVolume" +_EDVI = "ExcludeDataVolumeIds" +_EDVIx = "ExcludeDataVolumeId" +_CSIre = "CreateSnapshotsInput" +_cCSRoma = "com.amazonaws.ec2#CreateSnapshotsRequest" +_SIna = "SnapshotInfo" +_SSna = "SnapshotSet" +_CSOre = "CreateSnapshotsOutput" +_cCSRomam = "com.amazonaws.ec2#CreateSnapshotsResult" +_Sn = "Snapshots" +_sSn = "snapshotSet" +_CSrea = "CreateSnapshots" +_CSDSI = "CreateSpotDatafeedSubscriptionInput" +_cCSDSR = "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionRequest" +_SISF = "SpotInstanceStateFault" +_DSS = "DatafeedSubscriptionState" +_Ina = "Inactive" +_SDS = "SpotDatafeedSubscription" +_Fa = "Fault" +_fau = "fault" +_CSDSO = "CreateSpotDatafeedSubscriptionOutput" +_cCSDSRo = "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionResult" +_sDS = "spotDatafeedSubscription" +_CSDS = "CreateSpotDatafeedSubscription" +_SOT = "S3ObjectTag" +_SOTL = "S3ObjectTagList" +_CSITI = "CreateStoreImageTaskInput" +_cCSITR = "com.amazonaws.ec2#CreateStoreImageTaskRequest" +_SOTb = "S3ObjectTags" +_CSITO = "CreateStoreImageTaskOutput" +_cCSITRo = "com.amazonaws.ec2#CreateStoreImageTaskResult" +_oK = "objectKey" +_CSIT = "CreateStoreImageTask" +_CSIrea = "CreateSubnetInput" +_cCSRomama = "com.amazonaws.ec2#CreateSubnetRequest" +_CSOrea = "CreateSubnetOutput" +_cCSRomamaz = "com.amazonaws.ec2#CreateSubnetResult" +_CSreat = "CreateSubnet" +_SCRT = "SubnetCidrReservationType" +_expl = "explicit" +_CSCRI = "CreateSubnetCidrReservationInput" +_cCSCRR = "com.amazonaws.ec2#CreateSubnetCidrReservationRequest" +_SCRIu = "SubnetCidrReservationId" +_SCRu = "SubnetCidrReservation" +_sCRIu = "subnetCidrReservationId" +_CSCRO = "CreateSubnetCidrReservationOutput" +_cCSCRRo = "com.amazonaws.ec2#CreateSubnetCidrReservationResult" +_sCRu = "subnetCidrReservation" +_CSCR = "CreateSubnetCidrReservation" +_TRI = "TaggableResourceId" +_RILes = "ResourceIdList" +_CTIr = "CreateTagsInput" +_cCTR = "com.amazonaws.ec2#CreateTagsRequest" +_CTO = "CreateTagsOutput" +_CTre = "CreateTags" +_CTMFI = "CreateTrafficMirrorFilterInput" +_cCTMFR = "com.amazonaws.ec2#CreateTrafficMirrorFilterRequest" +_TMPR = "TrafficMirrorPortRange" +_TMRA = "TrafficMirrorRuleAction" +_acce = "accept" +_reje = "reject" +_TDr = "TrafficDirection" +_ing = "ingress" +_TMFR = "TrafficMirrorFilterRule" +_TMFRI = "TrafficMirrorFilterRuleId" +_tMFRI = "trafficMirrorFilterRuleId" +_TMFI = "TrafficMirrorFilterId" +_tMFI = "trafficMirrorFilterId" +_tD = "trafficDirection" +_SCB = "SourceCidrBlock" +_sCB = "sourceCidrBlock" +_TMFRL = "TrafficMirrorFilterRuleList" +_TMNS = "TrafficMirrorNetworkService" +_ad_ = "amazon_dns" +_ad__ = "amazon-dns" +_TMNSL = "TrafficMirrorNetworkServiceList" +_TMF = "TrafficMirrorFilter" +_IFR = "IngressFilterRules" +_IFRS = "IngressFilterRuleSet" +_iFRS = "ingressFilterRuleSet" +_EFR = "EgressFilterRules" +_EFRS = "EgressFilterRuleSet" +_eFRS = "egressFilterRuleSet" +_NSe = "NetworkServices" +_NSS = "NetworkServiceSet" +_nSS = "networkServiceSet" +_CTMFO = "CreateTrafficMirrorFilterOutput" +_cCTMFRo = "com.amazonaws.ec2#CreateTrafficMirrorFilterResult" +_tMF = "trafficMirrorFilter" +_CTMF = "CreateTrafficMirrorFilter" +_TMPRR = "TrafficMirrorPortRangeRequest" +_CTMFRI = "CreateTrafficMirrorFilterRuleInput" +_cCTMFRR = "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleRequest" +_CTMFRO = "CreateTrafficMirrorFilterRuleOutput" +_cCTMFRRo = "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleResult" +_tMFR = "trafficMirrorFilterRule" +_CTMFR = "CreateTrafficMirrorFilterRule" +_TMTI = "TrafficMirrorTargetId" +_CTMSI = "CreateTrafficMirrorSessionInput" +_cCTMSR = "com.amazonaws.ec2#CreateTrafficMirrorSessionRequest" +_PLa = "PacketLength" +_SNes = "SessionNumber" +_VNI = "VirtualNetworkId" +_TMS = "TrafficMirrorSession" +_TMSI = "TrafficMirrorSessionId" +_tMSI = "trafficMirrorSessionId" +_tMTI = "trafficMirrorTargetId" +_pLa = "packetLength" +_sNes = "sessionNumber" +_vNI = "virtualNetworkId" +_CTMSO = "CreateTrafficMirrorSessionOutput" +_cCTMSRo = "com.amazonaws.ec2#CreateTrafficMirrorSessionResult" +_tMS = "trafficMirrorSession" +_CTMS = "CreateTrafficMirrorSession" +_CTMTI = "CreateTrafficMirrorTargetInput" +_cCTMTR = "com.amazonaws.ec2#CreateTrafficMirrorTargetRequest" +_NLBA = "NetworkLoadBalancerArn" +_GLBEI = "GatewayLoadBalancerEndpointId" +_TMTT = "TrafficMirrorTargetType" +_nlb_ = "network-load-balancer" +_glbe_ = "gateway-load-balancer-endpoint" +_TMT = "TrafficMirrorTarget" +_nLBA = "networkLoadBalancerArn" +_gLBEI = "gatewayLoadBalancerEndpointId" +_CTMTO = "CreateTrafficMirrorTargetOutput" +_cCTMTRo = "com.amazonaws.ec2#CreateTrafficMirrorTargetResult" +_tMT = "trafficMirrorTarget" +_CTMT = "CreateTrafficMirrorTarget" +_AASAV = "AutoAcceptSharedAttachmentsValue" +_DRTAV = "DefaultRouteTableAssociationValue" +_DRTPV = "DefaultRouteTablePropagationValue" +_MSV = "MulticastSupportValue" +_TGCBSL = "TransitGatewayCidrBlockStringList" +_VESV = "VpnEcmpSupportValue" +_TGRO = "TransitGatewayRequestOptions" +_AASA = "AutoAcceptSharedAttachments" +_DRTA = "DefaultRouteTableAssociation" +_DRTP = "DefaultRouteTablePropagation" +_VESp = "VpnEcmpSupport" +_MSu = "MulticastSupport" +_TGCB = "TransitGatewayCidrBlocks" +_CTGI = "CreateTransitGatewayInput" +_cCTGR = "com.amazonaws.ec2#CreateTransitGatewayRequest" +_ESV = "EncryptionStateValue" +_ESnc = "EncryptionSupport" +_ESncr = "EncryptionState" +_eSnc = "encryptionState" +_TGO = "TransitGatewayOptions" +_tGCB = "transitGatewayCidrBlocks" +_aASA = "autoAcceptSharedAttachments" +_dRTA = "defaultRouteTableAssociation" +_ADRTI = "AssociationDefaultRouteTableId" +_aDRTI = "associationDefaultRouteTableId" +_dRTP = "defaultRouteTablePropagation" +_PDRTI = "PropagationDefaultRouteTableId" +_pDRTI = "propagationDefaultRouteTableId" +_vESp = "vpnEcmpSupport" +_mSu = "multicastSupport" +_eSncr = "encryptionSupport" +_TGS = "TransitGatewayState" +_TGAra = "TransitGatewayArn" +_tGAr = "transitGatewayArn" +_CTGO = "CreateTransitGatewayOutput" +_cCTGRo = "com.amazonaws.ec2#CreateTransitGatewayResult" +_CTG = "CreateTransitGateway" +_PVrot = "ProtocolValue" +_gre = "gre" +_CTGCRO = "CreateTransitGatewayConnectRequestOptions" +_CTGCI = "CreateTransitGatewayConnectInput" +_cCTGCR = "com.amazonaws.ec2#CreateTransitGatewayConnectRequest" +_TTGAI = "TransportTransitGatewayAttachmentId" +_TGCO = "TransitGatewayConnectOptions" +_TGCr = "TransitGatewayConnect" +_tTGAI = "transportTransitGatewayAttachmentId" +_CTGCO = "CreateTransitGatewayConnectOutput" +_cCTGCRo = "com.amazonaws.ec2#CreateTransitGatewayConnectResult" +_tGC = "transitGatewayConnect" +_CTGC = "CreateTransitGatewayConnect" +_TGCRBO = "TransitGatewayConnectRequestBgpOptions" +_ICBSL = "InsideCidrBlocksStringList" +_CTGCPI = "CreateTransitGatewayConnectPeerInput" +_cCTGCPR = "com.amazonaws.ec2#CreateTransitGatewayConnectPeerRequest" +_TGAran = "TransitGatewayAddress" +_ICBn = "InsideCidrBlocks" +_TGABC = "TransitGatewayAttachmentBgpConfiguration" +_TGArans = "TransitGatewayAsn" +_tGAra = "transitGatewayAsn" +_tGAran = "transitGatewayAddress" +_TGABCL = "TransitGatewayAttachmentBgpConfigurationList" +_TGCPC = "TransitGatewayConnectPeerConfiguration" +_iCBn = "insideCidrBlocks" +_BCg = "BgpConfigurations" +_bCg = "bgpConfigurations" +_TGCPS = "TransitGatewayConnectPeerState" +_TGCPI = "TransitGatewayConnectPeerId" +_TGCP = "TransitGatewayConnectPeer" +_tGCPI = "transitGatewayConnectPeerId" +_CPC = "ConnectPeerConfiguration" +_cPC = "connectPeerConfiguration" +_CTGCPO = "CreateTransitGatewayConnectPeerOutput" +_cCTGCPRo = "com.amazonaws.ec2#CreateTransitGatewayConnectPeerResult" +_tGCP = "transitGatewayConnectPeer" +_CTGCP = "CreateTransitGatewayConnectPeer" +_TGAISL = "TransitGatewayAttachmentIdStringList" +_CTGMPI = "CreateTransitGatewayMeteringPolicyInput" +_cCTGMPR = "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyRequest" +_MAIi = "MiddleboxAttachmentIds" +_MAIid = "MiddleboxAttachmentId" +_TGMPS = "TransitGatewayMeteringPolicyState" +_TGMPI = "TransitGatewayMeteringPolicyId" +_TGMP = "TransitGatewayMeteringPolicy" +_tGMPI = "transitGatewayMeteringPolicyId" +_MAIS = "MiddleboxAttachmentIdSet" +_mAIS = "middleboxAttachmentIdSet" +_UEA = "UpdateEffectiveAt" +_uEA = "updateEffectiveAt" +_CTGMPO = "CreateTransitGatewayMeteringPolicyOutput" +_cCTGMPRo = "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyResult" +_tGMP = "transitGatewayMeteringPolicy" +_CTGMP = "CreateTransitGatewayMeteringPolicy" +_TGMPT = "TransitGatewayMeteringPayerType" +_sao = "source_attachment_owner" +_sao_ = "source-attachment-owner" +_dao = "destination_attachment_owner" +_dao_ = "destination-attachment-owner" +_tgo = "transit_gateway_owner" +_tgo_ = "transit-gateway-owner" +_CTGMPEI = "CreateTransitGatewayMeteringPolicyEntryInput" +_cCTGMPER = "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryRequest" +_PRNo = "PolicyRuleNumber" +_STGAI = "SourceTransitGatewayAttachmentId" +_STGAT = "SourceTransitGatewayAttachmentType" +_DTGAI = "DestinationTransitGatewayAttachmentId" +_DTGAT = "DestinationTransitGatewayAttachmentType" +_TGMPR = "TransitGatewayMeteringPolicyRule" +_sTGAI = "sourceTransitGatewayAttachmentId" +_sTGAT = "sourceTransitGatewayAttachmentType" +_dTGAI = "destinationTransitGatewayAttachmentId" +_dTGAT = "destinationTransitGatewayAttachmentType" +_TGMPES = "TransitGatewayMeteringPolicyEntryState" +_TGMPE = "TransitGatewayMeteringPolicyEntry" +_pRNo = "policyRuleNumber" +_UA = "UpdatedAt" +_uA = "updatedAt" +_MPR = "MeteringPolicyRule" +_mPR = "meteringPolicyRule" +_CTGMPEO = "CreateTransitGatewayMeteringPolicyEntryOutput" +_cCTGMPERo = "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryResult" +_tGMPE = "transitGatewayMeteringPolicyEntry" +_CTGMPE = "CreateTransitGatewayMeteringPolicyEntry" +_AASAVu = "AutoAcceptSharedAssociationsValue" +_ISVg = "Igmpv2SupportValue" +_SSSV = "StaticSourcesSupportValue" +_CTGMDRO = "CreateTransitGatewayMulticastDomainRequestOptions" +_ISg = "Igmpv2Support" +_SSSt = "StaticSourcesSupport" +_AASAu = "AutoAcceptSharedAssociations" +_CTGMDI = "CreateTransitGatewayMulticastDomainInput" +_cCTGMDR = "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainRequest" +_TGMDO = "TransitGatewayMulticastDomainOptions" +_iSg = "igmpv2Support" +_sSS = "staticSourcesSupport" +_aASAu = "autoAcceptSharedAssociations" +_TGMDS = "TransitGatewayMulticastDomainState" +_TGMD = "TransitGatewayMulticastDomain" +_TGMDAr = "TransitGatewayMulticastDomainArn" +_tGMDA = "transitGatewayMulticastDomainArn" +_CTGMDO = "CreateTransitGatewayMulticastDomainOutput" +_cCTGMDRo = "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainResult" +_tGMD = "transitGatewayMulticastDomain" +_CTGMD = "CreateTransitGatewayMulticastDomain" +_CTGPARO = "CreateTransitGatewayPeeringAttachmentRequestOptions" +_TAGI = "TransitAssociationGatewayId" +_CTGPAI = "CreateTransitGatewayPeeringAttachmentInput" +_cCTGPAR = "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentRequest" +_PTGI = "PeerTransitGatewayId" +_PAI = "PeerAccountId" +_PRee = "PeerRegion" +_CTGPAO = "CreateTransitGatewayPeeringAttachmentOutput" +_cCTGPARo = "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentResult" +_CTGPA = "CreateTransitGatewayPeeringAttachment" +_CTGPTI = "CreateTransitGatewayPolicyTableInput" +_cCTGPTR = "com.amazonaws.ec2#CreateTransitGatewayPolicyTableRequest" +_TGPTS = "TransitGatewayPolicyTableState" +_CTGPTO = "CreateTransitGatewayPolicyTableOutput" +_cCTGPTRo = "com.amazonaws.ec2#CreateTransitGatewayPolicyTableResult" +_CTGPT = "CreateTransitGatewayPolicyTable" +_TGRPRMD = "TransitGatewayRequestPolicyRuleMetaData" +_MDK = "MetaDataKey" +_MDV = "MetaDataValue" +_TGRPR = "TransitGatewayRequestPolicyRule" +_MD = "MetaData" +_CTGPTEI = "CreateTransitGatewayPolicyTableEntryInput" +_cCTGPTER = "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryRequest" +_PRol = "PolicyRule" +_TGPRMD = "TransitGatewayPolicyRuleMetaData" +_mDK = "metaDataKey" +_mDV = "metaDataValue" +_TGPR = "TransitGatewayPolicyRule" +_mD = "metaData" +_TGPTES = "TransitGatewayPolicyTableEntryState" +_pRo = "policyRule" +_CTGPTEO = "CreateTransitGatewayPolicyTableEntryOutput" +_cCTGPTERo = "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryResult" +_CTGPTE = "CreateTransitGatewayPolicyTableEntry" +_CTGPLRI = "CreateTransitGatewayPrefixListReferenceInput" +_cCTGPLRR = "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceRequest" +_Bl = "Blackhole" +_TGPLRS = "TransitGatewayPrefixListReferenceState" +_TGPLA = "TransitGatewayPrefixListAttachment" +_TGPLR = "TransitGatewayPrefixListReference" +_PLOI = "PrefixListOwnerId" +_pLOI = "prefixListOwnerId" +_CTGPLRO = "CreateTransitGatewayPrefixListReferenceOutput" +_cCTGPLRRo = "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceResult" +_tGPLR = "transitGatewayPrefixListReference" +_CTGPLR = "CreateTransitGatewayPrefixListReference" +_CTGRI = "CreateTransitGatewayRouteInput" +_cCTGRR = "com.amazonaws.ec2#CreateTransitGatewayRouteRequest" +_TGRS = "TransitGatewayRouteState" +_TGRA = "TransitGatewayRouteAttachment" +_TGRAL = "TransitGatewayRouteAttachmentList" +_TGRTAI = "TransitGatewayRouteTableAnnouncementId" +_TGRTr = "TransitGatewayRouteType" +_sy = "system" +_TGR = "TransitGatewayRoute" +_tGRTAI = "transitGatewayRouteTableAnnouncementId" +_TGAransi = "TransitGatewayAttachments" +_tGArans = "transitGatewayAttachments" +_CTGRO = "CreateTransitGatewayRouteOutput" +_cCTGRRo = "com.amazonaws.ec2#CreateTransitGatewayRouteResult" +_CTGR = "CreateTransitGatewayRoute" +_CTGRTI = "CreateTransitGatewayRouteTableInput" +_cCTGRTR = "com.amazonaws.ec2#CreateTransitGatewayRouteTableRequest" +_TGRTS = "TransitGatewayRouteTableState" +_DART = "DefaultAssociationRouteTable" +_dART = "defaultAssociationRouteTable" +_DPRT = "DefaultPropagationRouteTable" +_dPRT = "defaultPropagationRouteTable" +_CTGRTO = "CreateTransitGatewayRouteTableOutput" +_cCTGRTRo = "com.amazonaws.ec2#CreateTransitGatewayRouteTableResult" +_CTGRT = "CreateTransitGatewayRouteTable" +_CTGRTAI = "CreateTransitGatewayRouteTableAnnouncementInput" +_cCTGRTAR = "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementRequest" +_PAIe = "PeeringAttachmentId" +_TGRTAD = "TransitGatewayRouteTableAnnouncementDirection" +_ou = "outgoing" +_incom = "incoming" +_TGRTAS = "TransitGatewayRouteTableAnnouncementState" +_TGRTA = "TransitGatewayRouteTableAnnouncement" +_pTGI = "peerTransitGatewayId" +_PCNI = "PeerCoreNetworkId" +_pCNI = "peerCoreNetworkId" +_pAI = "peeringAttachmentId" +_ADn = "AnnouncementDirection" +_aDn = "announcementDirection" +_CTGRTAO = "CreateTransitGatewayRouteTableAnnouncementOutput" +_cCTGRTARo = "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementResult" +_tGRTA = "transitGatewayRouteTableAnnouncement" +_CTGRTA = "CreateTransitGatewayRouteTableAnnouncement" +_CTGVARO = "CreateTransitGatewayVpcAttachmentRequestOptions" +_CTGVAI = "CreateTransitGatewayVpcAttachmentInput" +_cCTGVAR = "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentRequest" +_CTGVAO = "CreateTransitGatewayVpcAttachmentOutput" +_cCTGVARo = "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentResult" +_CTGVA = "CreateTransitGatewayVpcAttachment" +_VAEAT = "VerifiedAccessEndpointAttachmentType" +_VAEPN = "VerifiedAccessEndpointPortNumber" +_CVAEPR = "CreateVerifiedAccessEndpointPortRange" +_CVAEPRL = "CreateVerifiedAccessEndpointPortRangeList" +_VAEP = "VerifiedAccessEndpointProtocol" +_CVAESIL = "CreateVerifiedAccessEndpointSubnetIdList" +_CVAECO = "CreateVerifiedAccessEndpointCidrOptions" +_VAET = "VerifiedAccessEndpointType" +_lb_ = "load-balancer" +_CVAELBO = "CreateVerifiedAccessEndpointLoadBalancerOptions" +_CVAEEO = "CreateVerifiedAccessEndpointEniOptions" +_RDCA = "RdsDbClusterArn" +_RDIA = "RdsDbInstanceArn" +_RDPA = "RdsDbProxyArn" +_CVAERO = "CreateVerifiedAccessEndpointRdsOptions" +_REd = "RdsEndpoint" +_SGIL = "SecurityGroupIdList" +_VASSRe = "VerifiedAccessSseSpecificationRequest" +_VAGI = "VerifiedAccessGroupId" +_CVAEI = "CreateVerifiedAccessEndpointInput" +_cCVAER = "com.amazonaws.ec2#CreateVerifiedAccessEndpointRequest" +_ETn = "EndpointType" +_ATtta = "AttachmentType" +_DCA = "DomainCertificateArn" +_ADp = "ApplicationDomain" +_EDP = "EndpointDomainPrefix" +_LBO = "LoadBalancerOptions" +_NIO = "NetworkInterfaceOptions" +_PDo = "PolicyDocument" +_ROd = "RdsOptions" +_COi = "CidrOptions" +_VAEPR = "VerifiedAccessEndpointPortRange" +_VAEPRL = "VerifiedAccessEndpointPortRangeList" +_VAESIL = "VerifiedAccessEndpointSubnetIdList" +_VAECO = "VerifiedAccessEndpointCidrOptions" +_SISu = "SubnetIdSet" +_sISu = "subnetIdSet" +_VAELBO = "VerifiedAccessEndpointLoadBalancerOptions" +_VAEEO = "VerifiedAccessEndpointEniOptions" +_VAERO = "VerifiedAccessEndpointRdsOptions" +_rDIA = "rdsDbInstanceArn" +_rDCA = "rdsDbClusterArn" +_rDPA = "rdsDbProxyArn" +_rEd = "rdsEndpoint" +_VAESC = "VerifiedAccessEndpointStatusCode" +_VAES = "VerifiedAccessEndpointStatus" +_VAE = "VerifiedAccessEndpoint" +_vAGI = "verifiedAccessGroupId" +_VAEI = "VerifiedAccessEndpointId" +_vAEI = "verifiedAccessEndpointId" +_aDp = "applicationDomain" +_eTn = "endpointType" +_aTtta = "attachmentType" +_dCA = "domainCertificateArn" +_EDnd = "EndpointDomain" +_eDnd = "endpointDomain" +_DVD = "DeviceValidationDomain" +_dVD = "deviceValidationDomain" +_lBO = "loadBalancerOptions" +_nIO = "networkInterfaceOptions" +_rOd = "rdsOptions" +_cOi = "cidrOptions" +_CVAEO = "CreateVerifiedAccessEndpointOutput" +_cCVAERo = "com.amazonaws.ec2#CreateVerifiedAccessEndpointResult" +_vAE = "verifiedAccessEndpoint" +_CVAE = "CreateVerifiedAccessEndpoint" +_CVAGI = "CreateVerifiedAccessGroupInput" +_cCVAGR = "com.amazonaws.ec2#CreateVerifiedAccessGroupRequest" +_VAG = "VerifiedAccessGroup" +_Ow = "Owner" +_ow = "owner" +_VAGA = "VerifiedAccessGroupArn" +_vAGA = "verifiedAccessGroupArn" +_CVAGO = "CreateVerifiedAccessGroupOutput" +_cCVAGRo = "com.amazonaws.ec2#CreateVerifiedAccessGroupResult" +_vAG = "verifiedAccessGroup" +_CVAG = "CreateVerifiedAccessGroup" +_CVAII = "CreateVerifiedAccessInstanceInput" +_cCVAIR = "com.amazonaws.ec2#CreateVerifiedAccessInstanceRequest" +_FIPSE = "FIPSEnabled" +_CVAIO = "CreateVerifiedAccessInstanceOutput" +_cCVAIRo = "com.amazonaws.ec2#CreateVerifiedAccessInstanceResult" +_CVAI = "CreateVerifiedAccessInstance" +_CVATPDO = "CreateVerifiedAccessTrustProviderDeviceOptions" +_CVANAOO = "CreateVerifiedAccessNativeApplicationOidcOptions" +_CVATPOO = "CreateVerifiedAccessTrustProviderOidcOptions" +_CVATPI = "CreateVerifiedAccessTrustProviderInput" +_cCVATPR = "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderRequest" +_CVATPO = "CreateVerifiedAccessTrustProviderOutput" +_cCVATPRo = "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderResult" +_CVATP = "CreateVerifiedAccessTrustProvider" +_CVIr = "CreateVolumeInput" +_cCVRom = "com.amazonaws.ec2#CreateVolumeRequest" +_CVOr = "CreateVolumeOutput" +_cV = "com.amazonaws.ec2#Volume" +_CVr = "CreateVolume" +_VECESI = "VpcEncryptionControlExclusionStateInput" +_VECC = "VpcEncryptionControlConfiguration" +_IGE = "InternetGatewayExclusion" +_EOIGE = "EgressOnlyInternetGatewayExclusion" +_NGE = "NatGatewayExclusion" +_VPGE = "VirtualPrivateGatewayExclusion" +_VPE = "VpcPeeringExclusion" +_LE = "LambdaExclusion" +_VLE = "VpcLatticeExclusion" +_EFSE = "ElasticFileSystemExclusion" +_CVIre = "CreateVpcInput" +_cCVRoma = "com.amazonaws.ec2#CreateVpcRequest" +_CVOre = "CreateVpcOutput" +_cCVRomam = "com.amazonaws.ec2#CreateVpcResult" +_CVre = "CreateVpc" +_IGEM = "InternetGatewayExclusionMode" +_ab = "allow_bidirectional" +_ab_ = "allow-bidirectional" +_ae__ = "allow_egress" +_ae___ = "allow-egress" +_CVBPAEI = "CreateVpcBlockPublicAccessExclusionInput" +_cCVBPAER = "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionRequest" +_VBPAEI = "VpcBlockPublicAccessExclusionId" +_VBPAES = "VpcBlockPublicAccessExclusionState" +_VBPAE = "VpcBlockPublicAccessExclusion" +_EIx = "ExclusionId" +_eIx = "exclusionId" +_iGEM = "internetGatewayExclusionMode" +_rAe = "resourceArn" +_CTrea = "CreationTimestamp" +_cTre = "creationTimestamp" +_DTele = "DeletionTimestamp" +_dTel = "deletionTimestamp" +_CVBPAEO = "CreateVpcBlockPublicAccessExclusionOutput" +_cCVBPAERo = "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionResult" +_vBPAE = "vpcBlockPublicAccessExclusion" +_CVBPAE = "CreateVpcBlockPublicAccessExclusion" +_CVECI = "CreateVpcEncryptionControlInput" +_cCVECR = "com.amazonaws.ec2#CreateVpcEncryptionControlRequest" +_CVECO = "CreateVpcEncryptionControlOutput" +_cCVECRo = "com.amazonaws.ec2#CreateVpcEncryptionControlResult" +_vEC = "vpcEncryptionControl" +_CVEC = "CreateVpcEncryptionControl" +_DRIT = "DnsRecordIpType" +_sd = "service_defined" +_sd_ = "service-defined" +_PDSDS = "PrivateDnsSpecifiedDomainSet" +_DOS = "DnsOptionsSpecification" +_PDOFIRE = "PrivateDnsOnlyForInboundResolverEndpoint" +_PDP = "PrivateDnsPreference" +_PDSD = "PrivateDnsSpecifiedDomains" +_PDSDr = "PrivateDnsSpecifiedDomain" +_RCA = "ResourceConfigurationArn" +_VERTIL = "VpcEndpointRouteTableIdList" +_VESGIL = "VpcEndpointSecurityGroupIdList" +_SNAe = "ServiceNetworkArn" +_SCu = "SubnetConfiguration" +_Ipv = "Ipv6" +_SCL = "SubnetConfigurationsList" +_VESIL = "VpcEndpointSubnetIdList" +_VET = "VpcEndpointType" +_Inter = "Interface" +_Ga = "Gateway" +_GLB = "GatewayLoadBalancer" +_SNer = "ServiceNetwork" +_Tu = "Tunnel" +_CVEIr = "CreateVpcEndpointInput" +_cCVER = "com.amazonaws.ec2#CreateVpcEndpointRequest" +_RTIou = "RouteTableIds" +_DOn = "DnsOptions" +_PDE = "PrivateDnsEnabled" +_SCub = "SubnetConfigurations" +_SRe = "ServiceRegion" +_DE = "DnsEntry" +_HZI = "HostedZoneId" +_hZI = "hostedZoneId" +_DES = "DnsEntrySet" +_dRIT = "dnsRecordIpType" +_pDOFIRE = "privateDnsOnlyForInboundResolverEndpoint" +_pDP = "privateDnsPreference" +_pDSDS = "privateDnsSpecifiedDomainSet" +_SGIec = "SecurityGroupIdentifier" +_GIS = "GroupIdentifierSet" +_SIP = "SubnetIpPrefixes" +_IPpre = "IpPrefixes" +_IPSpr = "IpPrefixSet" +_iPSpr = "ipPrefixSet" +_SIPL = "SubnetIpPrefixesList" +_LEa = "LastError" +_PRT = "PayerResponsibilityType" +_VEA = "VpcEndpointAccount" +_vea = "vpc-endpoint-account" +_RGAe = "ResourceGatewayAccount" +_rga = "resource-gateway-account" +_VESA = "VpcEndpointServiceAccount" +_vesa = "vpc-endpoint-service-account" +_PRSa = "PayerResponsibilityScope" +_VECp = "VpcEndpointCharges" +_vec____ = "vpc-endpoint-charges" +_RGC = "ResourceGatewayCharges" +_rgc = "resource-gateway-charges" +_PRE = "PayerResponsibilityEntry" +_pRT = "payerResponsibilityType" +_PRSay = "PayerResponsibilitySet" +_PAen = "PendingAcceptance" +_Pen = "Pending" +_Av = "Available" +_Del = "Deleting" +_Dele = "Deleted" +_Rej = "Rejected" +_Fai = "Failed" +_Expi = "Expired" +_Par = "Partial" +_vET = "vpcEndpointType" +_pDo = "policyDocument" +_RTIS = "RouteTableIdSet" +_rTIS = "routeTableIdSet" +_dOn = "dnsOptions" +_pDE = "privateDnsEnabled" +_DEn = "DnsEntries" +_dES = "dnsEntrySet" +_lE = "lastError" +_sNAe = "serviceNetworkArn" +_rCA = "resourceConfigurationArn" +_sRe = "serviceRegion" +_PRa = "PayerResponsibilities" +_pRSa = "payerResponsibilitySet" +_CVEO = "CreateVpcEndpointOutput" +_cCVERo = "com.amazonaws.ec2#CreateVpcEndpointResult" +_CVE = "CreateVpcEndpoint" +_CVECNI = "CreateVpcEndpointConnectionNotificationInput" +_cCVECNR = "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationRequest" +_CNAon = "ConnectionNotificationArn" +_CEo = "ConnectionEvents" +_CNS = "ConnectionNotificationState" +_Dis = "Disabled" +_CNT = "ConnectionNotificationType" +_Top = "Topic" +_CNo = "ConnectionNotification" +_CNIo = "ConnectionNotificationId" +_cNIo = "connectionNotificationId" +_cNT = "connectionNotificationType" +_cNAo = "connectionNotificationArn" +_cEo = "connectionEvents" +_cNS = "connectionNotificationState" +_CVECNO = "CreateVpcEndpointConnectionNotificationOutput" +_cCVECNRo = "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationResult" +_cN = "connectionNotification" +_CVECN = "CreateVpcEndpointConnectionNotification" +_CVESCI = "CreateVpcEndpointServiceConfigurationInput" +_cCVESCR = "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationRequest" +_ARc = "AcceptanceRequired" +_NLBAe = "NetworkLoadBalancerArns" +_GLBA = "GatewayLoadBalancerArns" +_GLBAa = "GatewayLoadBalancerArn" +_SIAT = "SupportedIpAddressTypes" +_SIATu = "SupportedIpAddressType" +_SRu = "SupportedRegions" +_SRup = "SupportedRegion" +_PRay = "PayerResponsibility" +_SOe = "ServiceOwner" +_DNS = "DnsNameState" +_PVe = "PendingVerification" +_pV = "pendingVerification" +_Ver = "Verified" +_veri = "verified" +_PDNC = "PrivateDnsNameConfiguration" +_SSer = "ServiceState" +_STe = "ServiceType" +_STD = "ServiceTypeDetail" +_sTe = "serviceType" +_STDS = "ServiceTypeDetailSet" +_SCT = "ServiceConnectivityType" +_SRD = "SupportedRegionDetail" +_sSer = "serviceState" +_SRSu = "SupportedRegionSet" +_SCe = "ServiceConfiguration" +_aRc = "acceptanceRequired" +_MVE = "ManagesVpcEndpoints" +_mVE = "managesVpcEndpoints" +_NLBAS = "NetworkLoadBalancerArnSet" +_nLBAS = "networkLoadBalancerArnSet" +_GLBAS = "GatewayLoadBalancerArnSet" +_gLBAS = "gatewayLoadBalancerArnSet" +_SIATS = "SupportedIpAddressTypeSet" +_sIATS = "supportedIpAddressTypeSet" +_BEDN = "BaseEndpointDnsNames" +_BEDNS = "BaseEndpointDnsNameSet" +_bEDNS = "baseEndpointDnsNameSet" +_pDNC = "privateDnsNameConfiguration" +_pRa = "payerResponsibility" +_sRSu = "supportedRegionSet" +_RAE = "RemoteAccessEnabled" +_rAE = "remoteAccessEnabled" +_CVESCO = "CreateVpcEndpointServiceConfigurationOutput" +_cCVESCRo = "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationResult" +_sCe = "serviceConfiguration" +_CVESCr = "CreateVpcEndpointServiceConfiguration" +_CVPCI = "CreateVpcPeeringConnectionInput" +_cCVPCR = "com.amazonaws.ec2#CreateVpcPeeringConnectionRequest" +_PVI = "PeerVpcId" +_pVI = "peerVpcId" +_POI = "PeerOwnerId" +_pOI = "peerOwnerId" +_CVPCO = "CreateVpcPeeringConnectionOutput" +_cCVPCRo = "com.amazonaws.ec2#CreateVpcPeeringConnectionResult" +_CVPC = "CreateVpcPeeringConnection" +_VCT = "VpnConcentratorType" +_CVCI = "CreateVpnConcentratorInput" +_cCVCR = "com.amazonaws.ec2#CreateVpnConcentratorRequest" +_VCp = "VpnConcentrator" +_VCI = "VpnConcentratorId" +_vCI = "vpnConcentratorId" +_CVCO = "CreateVpnConcentratorOutput" +_cCVCRo = "com.amazonaws.ec2#CreateVpnConcentratorResult" +_vCp = "vpnConcentrator" +_CVC = "CreateVpnConcentrator" +_VTB = "VpnTunnelBandwidth" +_lar = "large" +_TIIV = "TunnelInsideIpVersion" +_IKEVRLV = "IKEVersionsRequestListValue" +_IKEVRL = "IKEVersionsRequestList" +_CWLGA = "CloudWatchLogGroupArn" +_CWLOS = "CloudWatchLogOptionsSpecification" +_LEo = "LogEnabled" +_LGA = "LogGroupArn" +_LOF = "LogOutputFormat" +_BLE = "BgpLogEnabled" +_BLGA = "BgpLogGroupArn" +_BLOF = "BgpLogOutputFormat" +_VTLOS = "VpnTunnelLogOptionsSpecification" +_CWLO = "CloudWatchLogOptions" +_PDHGNRLV = "Phase1DHGroupNumbersRequestListValue" +_PDHGNRL = "Phase1DHGroupNumbersRequestList" +_PEARLV = "Phase1EncryptionAlgorithmsRequestListValue" +_PEARL = "Phase1EncryptionAlgorithmsRequestList" +_PIARLV = "Phase1IntegrityAlgorithmsRequestListValue" +_PIARL = "Phase1IntegrityAlgorithmsRequestList" +_PDHGNRLVh = "Phase2DHGroupNumbersRequestListValue" +_PDHGNRLh = "Phase2DHGroupNumbersRequestList" +_PEARLVh = "Phase2EncryptionAlgorithmsRequestListValue" +_PEARLh = "Phase2EncryptionAlgorithmsRequestList" +_PIARLVh = "Phase2IntegrityAlgorithmsRequestListValue" +_PIARLh = "Phase2IntegrityAlgorithmsRequestList" +_pSK = "preSharedKey" +_VTOS = "VpnTunnelOptionsSpecification" +_TICu = "TunnelInsideCidr" +_TIIC = "TunnelInsideIpv6Cidr" +_PSK = "PreSharedKey" +_PLSh = "Phase1LifetimeSeconds" +_PLSha = "Phase2LifetimeSeconds" +_RMTS = "RekeyMarginTimeSeconds" +_RFP = "RekeyFuzzPercentage" +_RWS = "ReplayWindowSize" +_DPDTS = "DPDTimeoutSeconds" +_DPDTA = "DPDTimeoutAction" +_PEAha = "Phase1EncryptionAlgorithms" +_PEAhas = "Phase2EncryptionAlgorithms" +_PIAha = "Phase1IntegrityAlgorithms" +_PIAhas = "Phase2IntegrityAlgorithms" +_PDHGN = "Phase1DHGroupNumbers" +_PDHGNh = "Phase1DHGroupNumber" +_PDHGNha = "Phase2DHGroupNumbers" +_PDHGNhas = "Phase2DHGroupNumber" +_IKEV = "IKEVersions" +_IKEVe = "IKEVersion" +_SAt = "StartupAction" +_LO = "LogOptions" +_ETLC = "EnableTunnelLifecycleControl" +_VTOSL = "VpnTunnelOptionsSpecificationsList" +_VCOS = "VpnConnectionOptionsSpecification" +_EAna = "EnableAcceleration" +_TO = "TunnelOptions" +_LINC = "LocalIpv4NetworkCidr" +_RINC = "RemoteIpv4NetworkCidr" +_LINCo = "LocalIpv6NetworkCidr" +_RINCe = "RemoteIpv6NetworkCidr" +_OIAT = "OutsideIpAddressType" +_TB = "TunnelBandwidth" +_SRO = "StaticRoutesOnly" +_sRO = "staticRoutesOnly" +_CVCIr = "CreateVpnConnectionInput" +_cCVCRom = "com.amazonaws.ec2#CreateVpnConnectionRequest" +_PSKS = "PreSharedKeyStorage" +_cGC = "customerGatewayConfiguration" +_GAS = "GatewayAssociationState" +_na___ = "not_associated" +_na____ = "not-associated" +_IKEVLV = "IKEVersionsListValue" +_IKEVL = "IKEVersionsList" +_lEo = "logEnabled" +_lGA = "logGroupArn" +_lOF = "logOutputFormat" +_bLE = "bgpLogEnabled" +_bLGA = "bgpLogGroupArn" +_bLOF = "bgpLogOutputFormat" +_VTLO = "VpnTunnelLogOptions" +_cWLO = "cloudWatchLogOptions" +_PDHGNLV = "Phase1DHGroupNumbersListValue" +_PDHGNL = "Phase1DHGroupNumbersList" +_PEALV = "Phase1EncryptionAlgorithmsListValue" +_PEAL = "Phase1EncryptionAlgorithmsList" +_PIALV = "Phase1IntegrityAlgorithmsListValue" +_PIAL = "Phase1IntegrityAlgorithmsList" +_PDHGNLVh = "Phase2DHGroupNumbersListValue" +_PDHGNLh = "Phase2DHGroupNumbersList" +_PEALVh = "Phase2EncryptionAlgorithmsListValue" +_PEALh = "Phase2EncryptionAlgorithmsList" +_PIALVh = "Phase2IntegrityAlgorithmsListValue" +_PIALh = "Phase2IntegrityAlgorithmsList" +_TOu = "TunnelOption" +_OIA = "OutsideIpAddress" +_oIA = "outsideIpAddress" +_tICu = "tunnelInsideCidr" +_tIIC = "tunnelInsideIpv6Cidr" +_pLS = "phase1LifetimeSeconds" +_pLSh = "phase2LifetimeSeconds" +_rMTS = "rekeyMarginTimeSeconds" +_rFP = "rekeyFuzzPercentage" +_rWS = "replayWindowSize" +_DTS = "DpdTimeoutSeconds" +_dTS = "dpdTimeoutSeconds" +_DTA = "DpdTimeoutAction" +_dTA = "dpdTimeoutAction" +_PEAS = "Phase1EncryptionAlgorithmSet" +_pEAS = "phase1EncryptionAlgorithmSet" +_PEASh = "Phase2EncryptionAlgorithmSet" +_pEASh = "phase2EncryptionAlgorithmSet" +_PIASh = "Phase1IntegrityAlgorithmSet" +_pIASh = "phase1IntegrityAlgorithmSet" +_PIASha = "Phase2IntegrityAlgorithmSet" +_pIASha = "phase2IntegrityAlgorithmSet" +_PDHGNS = "Phase1DHGroupNumberSet" +_pDHGNS = "phase1DHGroupNumberSet" +_PDHGNSh = "Phase2DHGroupNumberSet" +_pDHGNSh = "phase2DHGroupNumberSet" +_IVk = "IkeVersions" +_IVS = "IkeVersionSet" +_iVS = "ikeVersionSet" +_sAt = "startupAction" +_lO = "logOptions" +_eTLC = "enableTunnelLifecycleControl" +_TOL = "TunnelOptionsList" +_VCO = "VpnConnectionOptions" +_eAn = "enableAcceleration" +_lINC = "localIpv4NetworkCidr" +_rINC = "remoteIpv4NetworkCidr" +_lINCo = "localIpv6NetworkCidr" +_rINCe = "remoteIpv6NetworkCidr" +_oIAT = "outsideIpAddressType" +_tIIV = "tunnelInsideIpVersion" +_TOS = "TunnelOptionSet" +_tOS = "tunnelOptionSet" +_tB = "tunnelBandwidth" +_VSRS = "VpnStaticRouteSource" +_Stat = "Static" +_VSpn = "VpnState" +_VSR = "VpnStaticRoute" +_VSRL = "VpnStaticRouteList" +_TSe = "TelemetryStatus" +_VTg = "VgwTelemetry" +_ARC = "AcceptedRouteCount" +_aRC = "acceptedRouteCount" +_LSC = "LastStatusChange" +_lSC = "lastStatusChange" +_VTL = "VgwTelemetryList" +_Ca = "Category" +_cat = "category" +_CNAA = "CoreNetworkAttachmentArn" +_cNAA = "coreNetworkAttachmentArn" +_gAS = "gatewayAssociationState" +_rout = "routes" +_vTg = "vgwTelemetry" +_PSKA = "PreSharedKeyArn" +_pSKA = "preSharedKeyArn" +_VCIp = "VpnConnectionId" +_vCIp = "vpnConnectionId" +_CGC = "CustomerGatewayConfiguration" +_vGI = "vpnGatewayId" +_CVCOr = "CreateVpnConnectionOutput" +_cCVCRoma = "com.amazonaws.ec2#CreateVpnConnectionResult" +_CVCr = "CreateVpnConnection" +_CVCRI = "CreateVpnConnectionRouteInput" +_cCVCRR = "com.amazonaws.ec2#CreateVpnConnectionRouteRequest" +_CVCRO = "CreateVpnConnectionRouteOutput" +_CVCR = "CreateVpnConnectionRoute" +_CVGI = "CreateVpnGatewayInput" +_cCVGR = "com.amazonaws.ec2#CreateVpnGatewayRequest" +_VALp = "VpcAttachmentList" +_VAp = "VpcAttachments" +_attac = "attachments" +_CVGO = "CreateVpnGatewayOutput" +_cCVGRo = "com.amazonaws.ec2#CreateVpnGatewayResult" +_CVG = "CreateVpnGateway" +_DASCI = "DeleteApplicationStatusCheckInput" +_cDASCR = "com.amazonaws.ec2#DeleteApplicationStatusCheckRequest" +_DASCO = "DeleteApplicationStatusCheckOutput" +_cDASCRo = "com.amazonaws.ec2#DeleteApplicationStatusCheckResult" +_DASC = "DeleteApplicationStatusCheck" +_DCMDEI = "DeleteCapacityManagerDataExportInput" +_cDCMDER = "com.amazonaws.ec2#DeleteCapacityManagerDataExportRequest" +_DCMDEO = "DeleteCapacityManagerDataExportOutput" +_cDCMDERo = "com.amazonaws.ec2#DeleteCapacityManagerDataExportResult" +_DCMDE = "DeleteCapacityManagerDataExport" +_DCGI = "DeleteCarrierGatewayInput" +_cDCGR = "com.amazonaws.ec2#DeleteCarrierGatewayRequest" +_DCGO = "DeleteCarrierGatewayOutput" +_cDCGRo = "com.amazonaws.ec2#DeleteCarrierGatewayResult" +_DCG = "DeleteCarrierGateway" +_DCVEI = "DeleteClientVpnEndpointInput" +_cDCVER = "com.amazonaws.ec2#DeleteClientVpnEndpointRequest" +_DCVEO = "DeleteClientVpnEndpointOutput" +_cDCVERo = "com.amazonaws.ec2#DeleteClientVpnEndpointResult" +_DCVE = "DeleteClientVpnEndpoint" +_DCVEAPI = "DeleteClientVpnEndpointAuthorizationPolicyInput" +_cDCVEAPR = "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyRequest" +_CVAPS = "ClientVpnAuthorizationPolicyStatus" +_DCVEAPO = "DeleteClientVpnEndpointAuthorizationPolicyOutput" +_cDCVEAPRo = "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyResult" +_DCVEAP = "DeleteClientVpnEndpointAuthorizationPolicy" +_DCVRI = "DeleteClientVpnRouteInput" +_cDCVRR = "com.amazonaws.ec2#DeleteClientVpnRouteRequest" +_DCVRO = "DeleteClientVpnRouteOutput" +_cDCVRRo = "com.amazonaws.ec2#DeleteClientVpnRouteResult" +_DCVR = "DeleteClientVpnRoute" +_DCCI = "DeleteCoipCidrInput" +_cDCCR = "com.amazonaws.ec2#DeleteCoipCidrRequest" +_DCCO = "DeleteCoipCidrOutput" +_cDCCRo = "com.amazonaws.ec2#DeleteCoipCidrResult" +_DCC = "DeleteCoipCidr" +_DCPI = "DeleteCoipPoolInput" +_cDCPR = "com.amazonaws.ec2#DeleteCoipPoolRequest" +_DCPO = "DeleteCoipPoolOutput" +_cDCPRo = "com.amazonaws.ec2#DeleteCoipPoolResult" +_DCP = "DeleteCoipPool" +_DCGIe = "DeleteCustomerGatewayInput" +_cDCGRom = "com.amazonaws.ec2#DeleteCustomerGatewayRequest" +_DCGOe = "DeleteCustomerGatewayOutput" +_DCGe = "DeleteCustomerGateway" +_DDOIe = "DeleteDhcpOptionsInput" +_cDDOR = "com.amazonaws.ec2#DeleteDhcpOptionsRequest" +_DDOO = "DeleteDhcpOptionsOutput" +_DDO = "DeleteDhcpOptions" +_DEOIGI = "DeleteEgressOnlyInternetGatewayInput" +_cDEOIGR = "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayRequest" +_DEOIGO = "DeleteEgressOnlyInternetGatewayOutput" +_cDEOIGRo = "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayResult" +_RCe = "ReturnCode" +_rC = "returnCode" +_DEOIG = "DeleteEgressOnlyInternetGateway" +_FISl = "FleetIdSet" +_DFI = "DeleteFleetsInput" +_cDFR = "com.amazonaws.ec2#DeleteFleetsRequest" +_FIle = "FleetIds" +_FSC = "FleetStateCode" +_DR_ = "DELETED_RUNNING" +_dr = "deleted_running" +_DTI = "DELETED_TERMINATING_INSTANCES" +_dt = "deleted_terminating" +_DFSI = "DeleteFleetSuccessItem" +_DFSS = "DeleteFleetSuccessSet" +_DFEC = "DeleteFleetErrorCode" +_FIDNE = "FLEET_ID_DOES_NOT_EXIST" +_fIDNE = "fleetIdDoesNotExist" +_FIM = "FLEET_ID_MALFORMED" +_fIM = "fleetIdMalformed" +_FNIDS = "FLEET_NOT_IN_DELETABLE_STATE" +_fNIDS = "fleetNotInDeletableState" +_DFE = "DeleteFleetError" +_DFEI = "DeleteFleetErrorItem" +_DFES = "DeleteFleetErrorSet" +_DFO = "DeleteFleetsOutput" +_cDFRo = "com.amazonaws.ec2#DeleteFleetsResult" +_SFD = "SuccessfulFleetDeletions" +_SFDS = "SuccessfulFleetDeletionSet" +_sFDS = "successfulFleetDeletionSet" +_UFD = "UnsuccessfulFleetDeletions" +_UFDS = "UnsuccessfulFleetDeletionSet" +_uFDS = "unsuccessfulFleetDeletionSet" +_DFe = "DeleteFleets" +_VFLI = "VpcFlowLogId" +_FLIL = "FlowLogIdList" +_DFLI = "DeleteFlowLogsInput" +_cDFLR = "com.amazonaws.ec2#DeleteFlowLogsRequest" +_FLIl = "FlowLogId" +_DFLO = "DeleteFlowLogsOutput" +_cDFLRo = "com.amazonaws.ec2#DeleteFlowLogsResult" +_DFL = "DeleteFlowLogs" +_DFII = "DeleteFpgaImageInput" +_cDFIR = "com.amazonaws.ec2#DeleteFpgaImageRequest" +_DFIO = "DeleteFpgaImageOutput" +_cDFIRo = "com.amazonaws.ec2#DeleteFpgaImageResult" +_DFIe = "DeleteFpgaImage" +_DIURI = "DeleteImageUsageReportInput" +_cDIURR = "com.amazonaws.ec2#DeleteImageUsageReportRequest" +_DIURO = "DeleteImageUsageReportOutput" +_cDIURRo = "com.amazonaws.ec2#DeleteImageUsageReportResult" +_DIUR = "DeleteImageUsageReport" +_DICEI = "DeleteInstanceConnectEndpointInput" +_cDICER = "com.amazonaws.ec2#DeleteInstanceConnectEndpointRequest" +_DICEO = "DeleteInstanceConnectEndpointOutput" +_cDICERo = "com.amazonaws.ec2#DeleteInstanceConnectEndpointResult" +_DICE = "DeleteInstanceConnectEndpoint" +_DIEWI = "DeleteInstanceEventWindowInput" +_cDIEWR = "com.amazonaws.ec2#DeleteInstanceEventWindowRequest" +_FD = "ForceDelete" +_IEWSC = "InstanceEventWindowStateChange" +_DIEWO = "DeleteInstanceEventWindowOutput" +_cDIEWRo = "com.amazonaws.ec2#DeleteInstanceEventWindowResult" +_iEWS = "instanceEventWindowState" +_DIEW = "DeleteInstanceEventWindow" +_DIGI = "DeleteInternetGatewayInput" +_cDIGR = "com.amazonaws.ec2#DeleteInternetGatewayRequest" +_DIGO = "DeleteInternetGatewayOutput" +_DIG = "DeleteInternetGateway" +_DII = "DeleteIpamInput" +_cDIR = "com.amazonaws.ec2#DeleteIpamRequest" +_Cas = "Cascade" +_DIO = "DeleteIpamOutput" +_cDIRo = "com.amazonaws.ec2#DeleteIpamResult" +_DIel = "DeleteIpam" +_DIERVTI = "DeleteIpamExternalResourceVerificationTokenInput" +_cDIERVTR = "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenRequest" +_DIERVTO = "DeleteIpamExternalResourceVerificationTokenOutput" +_cDIERVTRo = "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenResult" +_DIERVT = "DeleteIpamExternalResourceVerificationToken" +_DIIRAI = "DeleteIpamInternetRegistryAssociationInput" +_cDIIRAR = "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationRequest" +_DIIRAO = "DeleteIpamInternetRegistryAssociationOutput" +_cDIIRARo = "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationResult" +_DIIRA = "DeleteIpamInternetRegistryAssociation" +_DIPI = "DeleteIpamPolicyInput" +_cDIPR = "com.amazonaws.ec2#DeleteIpamPolicyRequest" +_DIPO = "DeleteIpamPolicyOutput" +_cDIPRo = "com.amazonaws.ec2#DeleteIpamPolicyResult" +_DIPe = "DeleteIpamPolicy" +_DIPIe = "DeleteIpamPoolInput" +_cDIPRom = "com.amazonaws.ec2#DeleteIpamPoolRequest" +_DIPOe = "DeleteIpamPoolOutput" +_cDIPRoma = "com.amazonaws.ec2#DeleteIpamPoolResult" +_DIPel = "DeleteIpamPool" +_DIPLRI = "DeleteIpamPrefixListResolverInput" +_cDIPLRR = "com.amazonaws.ec2#DeleteIpamPrefixListResolverRequest" +_DIPLRO = "DeleteIpamPrefixListResolverOutput" +_cDIPLRRo = "com.amazonaws.ec2#DeleteIpamPrefixListResolverResult" +_DIPLR = "DeleteIpamPrefixListResolver" +_DIPLRTI = "DeleteIpamPrefixListResolverTargetInput" +_cDIPLRTR = "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetRequest" +_DIPLRTO = "DeleteIpamPrefixListResolverTargetOutput" +_cDIPLRTRo = "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetResult" +_DIPLRT = "DeleteIpamPrefixListResolverTarget" +_DIRDI = "DeleteIpamResourceDiscoveryInput" +_cDIRDR = "com.amazonaws.ec2#DeleteIpamResourceDiscoveryRequest" +_DIRDO = "DeleteIpamResourceDiscoveryOutput" +_cDIRDRo = "com.amazonaws.ec2#DeleteIpamResourceDiscoveryResult" +_DIRD = "DeleteIpamResourceDiscovery" +_DIRPRI = "DeleteIpamRoutingPolicyRegistrationInput" +_cDIRPRR = "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationRequest" +_DIRPRO = "DeleteIpamRoutingPolicyRegistrationOutput" +_cDIRPRRo = "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationResult" +_DIRPR = "DeleteIpamRoutingPolicyRegistration" +_DISI = "DeleteIpamScopeInput" +_cDISR = "com.amazonaws.ec2#DeleteIpamScopeRequest" +_DISO = "DeleteIpamScopeOutput" +_cDISRo = "com.amazonaws.ec2#DeleteIpamScopeResult" +_DIS = "DeleteIpamScope" +_KPNWR = "KeyPairNameWithResolver" +_DKPI = "DeleteKeyPairInput" +_cDKPR = "com.amazonaws.ec2#DeleteKeyPairRequest" +_DKPO = "DeleteKeyPairOutput" +_cDKPRo = "com.amazonaws.ec2#DeleteKeyPairResult" +_DKP = "DeleteKeyPair" +_DLTI = "DeleteLaunchTemplateInput" +_cDLTR = "com.amazonaws.ec2#DeleteLaunchTemplateRequest" +_DLTO = "DeleteLaunchTemplateOutput" +_cDLTRo = "com.amazonaws.ec2#DeleteLaunchTemplateResult" +_DLT = "DeleteLaunchTemplate" +_VSLe = "VersionStringList" +_DLTVI = "DeleteLaunchTemplateVersionsInput" +_cDLTVR = "com.amazonaws.ec2#DeleteLaunchTemplateVersionsRequest" +_Vers = "Versions" +_DLTVRSI = "DeleteLaunchTemplateVersionsResponseSuccessItem" +_DLTVRSS = "DeleteLaunchTemplateVersionsResponseSuccessSet" +_LTEC = "LaunchTemplateErrorCode" +_LTIDNE = "LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST" +_lTIDNE = "launchTemplateIdDoesNotExist" +_LTIM = "LAUNCH_TEMPLATE_ID_MALFORMED" +_lTIM = "launchTemplateIdMalformed" +_LTNDNE = "LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST" +_lTNDNE = "launchTemplateNameDoesNotExist" +_LTNM = "LAUNCH_TEMPLATE_NAME_MALFORMED" +_lTNM = "launchTemplateNameMalformed" +_LTVDNE = "LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST" +_lTVDNE = "launchTemplateVersionDoesNotExist" +_REe = "ResponseError" +_DLTVREI = "DeleteLaunchTemplateVersionsResponseErrorItem" +_rEe = "responseError" +_DLTVRES = "DeleteLaunchTemplateVersionsResponseErrorSet" +_DLTVO = "DeleteLaunchTemplateVersionsOutput" +_cDLTVRo = "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResult" +_SDLTV = "SuccessfullyDeletedLaunchTemplateVersions" +_SDLTVS = "SuccessfullyDeletedLaunchTemplateVersionSet" +_sDLTVS = "successfullyDeletedLaunchTemplateVersionSet" +_UDLTV = "UnsuccessfullyDeletedLaunchTemplateVersions" +_UDLTVS = "UnsuccessfullyDeletedLaunchTemplateVersionSet" +_uDLTVS = "unsuccessfullyDeletedLaunchTemplateVersionSet" +_DLTV = "DeleteLaunchTemplateVersions" +_DLGRI = "DeleteLocalGatewayRouteInput" +_cDLGRR = "com.amazonaws.ec2#DeleteLocalGatewayRouteRequest" +_DLGRO = "DeleteLocalGatewayRouteOutput" +_cDLGRRo = "com.amazonaws.ec2#DeleteLocalGatewayRouteResult" +_DLGR = "DeleteLocalGatewayRoute" +_DLGRTI = "DeleteLocalGatewayRouteTableInput" +_cDLGRTR = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableRequest" +_DLGRTO = "DeleteLocalGatewayRouteTableOutput" +_cDLGRTRo = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableResult" +_DLGRT = "DeleteLocalGatewayRouteTable" +_DLGRTVIGAI = "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput" +_cDLGRTVIGAR = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest" +_DLGRTVIGAO = "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput" +_cDLGRTVIGARo = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult" +_DLGRTVIGA = "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation" +_DLGRTVAI = "DeleteLocalGatewayRouteTableVpcAssociationInput" +_cDLGRTVAR = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationRequest" +_DLGRTVAO = "DeleteLocalGatewayRouteTableVpcAssociationOutput" +_cDLGRTVARo = "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationResult" +_DLGRTVA = "DeleteLocalGatewayRouteTableVpcAssociation" +_DLGVII = "DeleteLocalGatewayVirtualInterfaceInput" +_cDLGVIR = "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceRequest" +_DLGVIO = "DeleteLocalGatewayVirtualInterfaceOutput" +_cDLGVIRo = "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceResult" +_DLGVI = "DeleteLocalGatewayVirtualInterface" +_DLGVIGI = "DeleteLocalGatewayVirtualInterfaceGroupInput" +_cDLGVIGR = "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupRequest" +_DLGVIGO = "DeleteLocalGatewayVirtualInterfaceGroupOutput" +_cDLGVIGRo = "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupResult" +_DLGVIG = "DeleteLocalGatewayVirtualInterfaceGroup" +_DMPLI = "DeleteManagedPrefixListInput" +_cDMPLR = "com.amazonaws.ec2#DeleteManagedPrefixListRequest" +_DMPLO = "DeleteManagedPrefixListOutput" +_cDMPLRo = "com.amazonaws.ec2#DeleteManagedPrefixListResult" +_DMPL = "DeleteManagedPrefixList" +_DNGI = "DeleteNatGatewayInput" +_cDNGR = "com.amazonaws.ec2#DeleteNatGatewayRequest" +_DNGO = "DeleteNatGatewayOutput" +_cDNGRo = "com.amazonaws.ec2#DeleteNatGatewayResult" +_DNG = "DeleteNatGateway" +_DNAI = "DeleteNetworkAclInput" +_cDNAR = "com.amazonaws.ec2#DeleteNetworkAclRequest" +_DNAO = "DeleteNetworkAclOutput" +_DNA = "DeleteNetworkAcl" +_DNAEI = "DeleteNetworkAclEntryInput" +_cDNAER = "com.amazonaws.ec2#DeleteNetworkAclEntryRequest" +_DNAEO = "DeleteNetworkAclEntryOutput" +_DNAE = "DeleteNetworkAclEntry" +_DNIASI = "DeleteNetworkInsightsAccessScopeInput" +_cDNIASR = "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeRequest" +_DNIASO = "DeleteNetworkInsightsAccessScopeOutput" +_cDNIASRo = "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeResult" +_DNIAS = "DeleteNetworkInsightsAccessScope" +_DNIASAI = "DeleteNetworkInsightsAccessScopeAnalysisInput" +_cDNIASAR = "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisRequest" +_DNIASAO = "DeleteNetworkInsightsAccessScopeAnalysisOutput" +_cDNIASARo = "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisResult" +_DNIASA = "DeleteNetworkInsightsAccessScopeAnalysis" +_NIAI = "NetworkInsightsAnalysisId" +_DNIAI = "DeleteNetworkInsightsAnalysisInput" +_cDNIAR = "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisRequest" +_DNIAO = "DeleteNetworkInsightsAnalysisOutput" +_cDNIARo = "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisResult" +_nIAI = "networkInsightsAnalysisId" +_DNIA = "DeleteNetworkInsightsAnalysis" +_DNIPI = "DeleteNetworkInsightsPathInput" +_cDNIPR = "com.amazonaws.ec2#DeleteNetworkInsightsPathRequest" +_DNIPO = "DeleteNetworkInsightsPathOutput" +_cDNIPRo = "com.amazonaws.ec2#DeleteNetworkInsightsPathResult" +_DNIP = "DeleteNetworkInsightsPath" +_DNII = "DeleteNetworkInterfaceInput" +_cDNIR = "com.amazonaws.ec2#DeleteNetworkInterfaceRequest" +_DNIO = "DeleteNetworkInterfaceOutput" +_DNI = "DeleteNetworkInterface" +_DNIPIe = "DeleteNetworkInterfacePermissionInput" +_cDNIPRom = "com.amazonaws.ec2#DeleteNetworkInterfacePermissionRequest" +_DNIPOe = "DeleteNetworkInterfacePermissionOutput" +_cDNIPRoma = "com.amazonaws.ec2#DeleteNetworkInterfacePermissionResult" +_DNIPe = "DeleteNetworkInterfacePermission" +_PGNWR = "PlacementGroupNameWithResolver" +_DPGI = "DeletePlacementGroupInput" +_cDPGR = "com.amazonaws.ec2#DeletePlacementGroupRequest" +_DPGO = "DeletePlacementGroupOutput" +_DPG = "DeletePlacementGroup" +_DPIPI = "DeletePublicIpv4PoolInput" +_cDPIPR = "com.amazonaws.ec2#DeletePublicIpv4PoolRequest" +_DPIPO = "DeletePublicIpv4PoolOutput" +_cDPIPRo = "com.amazonaws.ec2#DeletePublicIpv4PoolResult" +_RV = "ReturnValue" +_rV = "returnValue" +_DPIP = "DeletePublicIpv4Pool" +_DQRIIL = "DeleteQueuedReservedInstancesIdList" +_DQRII = "DeleteQueuedReservedInstancesInput" +_cDQRIR = "com.amazonaws.ec2#DeleteQueuedReservedInstancesRequest" +_RIIese = "ReservedInstancesIds" +_DQRIEC = "DeleteQueuedReservedInstancesErrorCode" +_RIII = "RESERVED_INSTANCES_ID_INVALID" +_riii = "reserved-instances-id-invalid" +_RINIQS = "RESERVED_INSTANCES_NOT_IN_QUEUED_STATE" +_riniqs = "reserved-instances-not-in-queued-state" +_ue_ = "unexpected-error" +_DQRIE = "DeleteQueuedReservedInstancesError" +_FQPD = "FailedQueuedPurchaseDeletion" +_FQPDS = "FailedQueuedPurchaseDeletionSet" +_SQPD = "SuccessfulQueuedPurchaseDeletion" +_SQPDS = "SuccessfulQueuedPurchaseDeletionSet" +_DQRIO = "DeleteQueuedReservedInstancesOutput" +_cDQRIRo = "com.amazonaws.ec2#DeleteQueuedReservedInstancesResult" +_SQPDu = "SuccessfulQueuedPurchaseDeletions" +_sQPDS = "successfulQueuedPurchaseDeletionSet" +_FQPDa = "FailedQueuedPurchaseDeletions" +_fQPDS = "failedQueuedPurchaseDeletionSet" +_DQRI = "DeleteQueuedReservedInstances" +_DRI = "DeleteRouteInput" +_cDRR = "com.amazonaws.ec2#DeleteRouteRequest" +_DRO = "DeleteRouteOutput" +_DRel = "DeleteRoute" +_DRSI = "DeleteRouteServerInput" +_cDRSR = "com.amazonaws.ec2#DeleteRouteServerRequest" +_DRSO = "DeleteRouteServerOutput" +_cDRSRo = "com.amazonaws.ec2#DeleteRouteServerResult" +_DRS = "DeleteRouteServer" +_DRSEI = "DeleteRouteServerEndpointInput" +_cDRSER = "com.amazonaws.ec2#DeleteRouteServerEndpointRequest" +_DRSEO = "DeleteRouteServerEndpointOutput" +_cDRSERo = "com.amazonaws.ec2#DeleteRouteServerEndpointResult" +_DRSE = "DeleteRouteServerEndpoint" +_DRSPI = "DeleteRouteServerPeerInput" +_cDRSPR = "com.amazonaws.ec2#DeleteRouteServerPeerRequest" +_DRSPO = "DeleteRouteServerPeerOutput" +_cDRSPRo = "com.amazonaws.ec2#DeleteRouteServerPeerResult" +_DRSP = "DeleteRouteServerPeer" +_DRTI = "DeleteRouteTableInput" +_cDRTR = "com.amazonaws.ec2#DeleteRouteTableRequest" +_DRTO = "DeleteRouteTableOutput" +_DRT = "DeleteRouteTable" +_DSNI = "DeleteSecondaryNetworkInput" +_cDSNR = "com.amazonaws.ec2#DeleteSecondaryNetworkRequest" +_DSNO = "DeleteSecondaryNetworkOutput" +_cDSNRo = "com.amazonaws.ec2#DeleteSecondaryNetworkResult" +_DSN = "DeleteSecondaryNetwork" +_DSSI = "DeleteSecondarySubnetInput" +_cDSSR = "com.amazonaws.ec2#DeleteSecondarySubnetRequest" +_DSSO = "DeleteSecondarySubnetOutput" +_cDSSRo = "com.amazonaws.ec2#DeleteSecondarySubnetResult" +_DSSe = "DeleteSecondarySubnet" +_DSGI = "DeleteSecurityGroupInput" +_cDSGR = "com.amazonaws.ec2#DeleteSecurityGroupRequest" +_DSGO = "DeleteSecurityGroupOutput" +_cDSGRo = "com.amazonaws.ec2#DeleteSecurityGroupResult" +_DSG = "DeleteSecurityGroup" +_DSI = "DeleteSnapshotInput" +_cDSR = "com.amazonaws.ec2#DeleteSnapshotRequest" +_DSO = "DeleteSnapshotOutput" +_DSel = "DeleteSnapshot" +_DSDSI = "DeleteSpotDatafeedSubscriptionInput" +_cDSDSR = "com.amazonaws.ec2#DeleteSpotDatafeedSubscriptionRequest" +_DSDSO = "DeleteSpotDatafeedSubscriptionOutput" +_DSDS = "DeleteSpotDatafeedSubscription" +_DSIe = "DeleteSubnetInput" +_cDSRo = "com.amazonaws.ec2#DeleteSubnetRequest" +_DSOe = "DeleteSubnetOutput" +_DSele = "DeleteSubnet" +_DSCRI = "DeleteSubnetCidrReservationInput" +_cDSCRR = "com.amazonaws.ec2#DeleteSubnetCidrReservationRequest" +_DSCRO = "DeleteSubnetCidrReservationOutput" +_cDSCRRo = "com.amazonaws.ec2#DeleteSubnetCidrReservationResult" +_DSCR = "DeletedSubnetCidrReservation" +_dSCR = "deletedSubnetCidrReservation" +_DSCRe = "DeleteSubnetCidrReservation" +_DTIe = "DeleteTagsInput" +_cDTR = "com.amazonaws.ec2#DeleteTagsRequest" +_tag = "tag" +_DTO = "DeleteTagsOutput" +_DTelet = "DeleteTags" +_DTMFI = "DeleteTrafficMirrorFilterInput" +_cDTMFR = "com.amazonaws.ec2#DeleteTrafficMirrorFilterRequest" +_DTMFO = "DeleteTrafficMirrorFilterOutput" +_cDTMFRo = "com.amazonaws.ec2#DeleteTrafficMirrorFilterResult" +_DTMF = "DeleteTrafficMirrorFilter" +_TMFRIWR = "TrafficMirrorFilterRuleIdWithResolver" +_DTMFRI = "DeleteTrafficMirrorFilterRuleInput" +_cDTMFRR = "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleRequest" +_DTMFRO = "DeleteTrafficMirrorFilterRuleOutput" +_cDTMFRRo = "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleResult" +_DTMFR = "DeleteTrafficMirrorFilterRule" +_DTMSI = "DeleteTrafficMirrorSessionInput" +_cDTMSR = "com.amazonaws.ec2#DeleteTrafficMirrorSessionRequest" +_DTMSO = "DeleteTrafficMirrorSessionOutput" +_cDTMSRo = "com.amazonaws.ec2#DeleteTrafficMirrorSessionResult" +_DTMS = "DeleteTrafficMirrorSession" +_DTMTI = "DeleteTrafficMirrorTargetInput" +_cDTMTR = "com.amazonaws.ec2#DeleteTrafficMirrorTargetRequest" +_DTMTO = "DeleteTrafficMirrorTargetOutput" +_cDTMTRo = "com.amazonaws.ec2#DeleteTrafficMirrorTargetResult" +_DTMT = "DeleteTrafficMirrorTarget" +_DTGI = "DeleteTransitGatewayInput" +_cDTGR = "com.amazonaws.ec2#DeleteTransitGatewayRequest" +_DTGO = "DeleteTransitGatewayOutput" +_cDTGRo = "com.amazonaws.ec2#DeleteTransitGatewayResult" +_DTG = "DeleteTransitGateway" +_DTGCVAI = "DeleteTransitGatewayClientVpnAttachmentInput" +_cDTGCVAR = "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentRequest" +_DTGCVAO = "DeleteTransitGatewayClientVpnAttachmentOutput" +_cDTGCVARo = "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentResult" +_DTGCVA = "DeleteTransitGatewayClientVpnAttachment" +_DTGCI = "DeleteTransitGatewayConnectInput" +_cDTGCR = "com.amazonaws.ec2#DeleteTransitGatewayConnectRequest" +_DTGCO = "DeleteTransitGatewayConnectOutput" +_cDTGCRo = "com.amazonaws.ec2#DeleteTransitGatewayConnectResult" +_DTGC = "DeleteTransitGatewayConnect" +_DTGCPI = "DeleteTransitGatewayConnectPeerInput" +_cDTGCPR = "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerRequest" +_DTGCPO = "DeleteTransitGatewayConnectPeerOutput" +_cDTGCPRo = "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerResult" +_DTGCP = "DeleteTransitGatewayConnectPeer" +_DTGMPI = "DeleteTransitGatewayMeteringPolicyInput" +_cDTGMPR = "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyRequest" +_DTGMPO = "DeleteTransitGatewayMeteringPolicyOutput" +_cDTGMPRo = "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyResult" +_DTGMP = "DeleteTransitGatewayMeteringPolicy" +_DTGMPEI = "DeleteTransitGatewayMeteringPolicyEntryInput" +_cDTGMPER = "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryRequest" +_DTGMPEO = "DeleteTransitGatewayMeteringPolicyEntryOutput" +_cDTGMPERo = "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryResult" +_DTGMPE = "DeleteTransitGatewayMeteringPolicyEntry" +_DTGMDI = "DeleteTransitGatewayMulticastDomainInput" +_cDTGMDR = "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainRequest" +_DTGMDO = "DeleteTransitGatewayMulticastDomainOutput" +_cDTGMDRo = "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainResult" +_DTGMD = "DeleteTransitGatewayMulticastDomain" +_DTGPAI = "DeleteTransitGatewayPeeringAttachmentInput" +_cDTGPAR = "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentRequest" +_DTGPAO = "DeleteTransitGatewayPeeringAttachmentOutput" +_cDTGPARo = "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentResult" +_DTGPA = "DeleteTransitGatewayPeeringAttachment" +_DTGPTI = "DeleteTransitGatewayPolicyTableInput" +_cDTGPTR = "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableRequest" +_DTGPTO = "DeleteTransitGatewayPolicyTableOutput" +_cDTGPTRo = "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableResult" +_DTGPT = "DeleteTransitGatewayPolicyTable" +_DTGPTEI = "DeleteTransitGatewayPolicyTableEntryInput" +_cDTGPTER = "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryRequest" +_DTGPTEO = "DeleteTransitGatewayPolicyTableEntryOutput" +_cDTGPTERo = "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryResult" +_DTGPTE = "DeleteTransitGatewayPolicyTableEntry" +_DTGPLRI = "DeleteTransitGatewayPrefixListReferenceInput" +_cDTGPLRR = "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceRequest" +_DTGPLRO = "DeleteTransitGatewayPrefixListReferenceOutput" +_cDTGPLRRo = "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceResult" +_DTGPLR = "DeleteTransitGatewayPrefixListReference" +_DTGRI = "DeleteTransitGatewayRouteInput" +_cDTGRR = "com.amazonaws.ec2#DeleteTransitGatewayRouteRequest" +_DTGRO = "DeleteTransitGatewayRouteOutput" +_cDTGRRo = "com.amazonaws.ec2#DeleteTransitGatewayRouteResult" +_DTGR = "DeleteTransitGatewayRoute" +_DTGRTI = "DeleteTransitGatewayRouteTableInput" +_cDTGRTR = "com.amazonaws.ec2#DeleteTransitGatewayRouteTableRequest" +_DTGRTO = "DeleteTransitGatewayRouteTableOutput" +_cDTGRTRo = "com.amazonaws.ec2#DeleteTransitGatewayRouteTableResult" +_DTGRT = "DeleteTransitGatewayRouteTable" +_DTGRTAI = "DeleteTransitGatewayRouteTableAnnouncementInput" +_cDTGRTAR = "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementRequest" +_DTGRTAO = "DeleteTransitGatewayRouteTableAnnouncementOutput" +_cDTGRTARo = "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementResult" +_DTGRTA = "DeleteTransitGatewayRouteTableAnnouncement" +_DTGVAI = "DeleteTransitGatewayVpcAttachmentInput" +_cDTGVAR = "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentRequest" +_DTGVAO = "DeleteTransitGatewayVpcAttachmentOutput" +_cDTGVARo = "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentResult" +_DTGVA = "DeleteTransitGatewayVpcAttachment" +_DVAEI = "DeleteVerifiedAccessEndpointInput" +_cDVAER = "com.amazonaws.ec2#DeleteVerifiedAccessEndpointRequest" +_DVAEO = "DeleteVerifiedAccessEndpointOutput" +_cDVAERo = "com.amazonaws.ec2#DeleteVerifiedAccessEndpointResult" +_DVAE = "DeleteVerifiedAccessEndpoint" +_DVAGI = "DeleteVerifiedAccessGroupInput" +_cDVAGR = "com.amazonaws.ec2#DeleteVerifiedAccessGroupRequest" +_DVAGO = "DeleteVerifiedAccessGroupOutput" +_cDVAGRo = "com.amazonaws.ec2#DeleteVerifiedAccessGroupResult" +_DVAG = "DeleteVerifiedAccessGroup" +_DVAII = "DeleteVerifiedAccessInstanceInput" +_cDVAIR = "com.amazonaws.ec2#DeleteVerifiedAccessInstanceRequest" +_DVAIO = "DeleteVerifiedAccessInstanceOutput" +_cDVAIRo = "com.amazonaws.ec2#DeleteVerifiedAccessInstanceResult" +_DVAI = "DeleteVerifiedAccessInstance" +_DVATPI = "DeleteVerifiedAccessTrustProviderInput" +_cDVATPR = "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderRequest" +_DVATPO = "DeleteVerifiedAccessTrustProviderOutput" +_cDVATPRo = "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderResult" +_DVATP = "DeleteVerifiedAccessTrustProvider" +_DVI = "DeleteVolumeInput" +_cDVR = "com.amazonaws.ec2#DeleteVolumeRequest" +_DVO = "DeleteVolumeOutput" +_DVel = "DeleteVolume" +_DVIe = "DeleteVpcInput" +_cDVRo = "com.amazonaws.ec2#DeleteVpcRequest" +_DVOe = "DeleteVpcOutput" +_DVele = "DeleteVpc" +_DVBPAEI = "DeleteVpcBlockPublicAccessExclusionInput" +_cDVBPAER = "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionRequest" +_DVBPAEO = "DeleteVpcBlockPublicAccessExclusionOutput" +_cDVBPAERo = "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionResult" +_DVBPAE = "DeleteVpcBlockPublicAccessExclusion" +_DVECI = "DeleteVpcEncryptionControlInput" +_cDVECR = "com.amazonaws.ec2#DeleteVpcEncryptionControlRequest" +_DVECO = "DeleteVpcEncryptionControlOutput" +_cDVECRo = "com.amazonaws.ec2#DeleteVpcEncryptionControlResult" +_DVEC = "DeleteVpcEncryptionControl" +_CNIL = "ConnectionNotificationIdsList" +_DVECNI = "DeleteVpcEndpointConnectionNotificationsInput" +_cDVECNR = "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsRequest" +_CNIon = "ConnectionNotificationIds" +_DVECNO = "DeleteVpcEndpointConnectionNotificationsOutput" +_cDVECNRo = "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsResult" +_DVECN = "DeleteVpcEndpointConnectionNotifications" +_DVEI = "DeleteVpcEndpointsInput" +_cDVER = "com.amazonaws.ec2#DeleteVpcEndpointsRequest" +_DVEO = "DeleteVpcEndpointsOutput" +_cDVERo = "com.amazonaws.ec2#DeleteVpcEndpointsResult" +_DVE = "DeleteVpcEndpoints" +_VESILp = "VpcEndpointServiceIdList" +_DVESCI = "DeleteVpcEndpointServiceConfigurationsInput" +_cDVESCR = "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsRequest" +_SIer = "ServiceIds" +_DVESCO = "DeleteVpcEndpointServiceConfigurationsOutput" +_cDVESCRo = "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsResult" +_DVESC = "DeleteVpcEndpointServiceConfigurations" +_DVPCI = "DeleteVpcPeeringConnectionInput" +_cDVPCR = "com.amazonaws.ec2#DeleteVpcPeeringConnectionRequest" +_DVPCO = "DeleteVpcPeeringConnectionOutput" +_cDVPCRo = "com.amazonaws.ec2#DeleteVpcPeeringConnectionResult" +_DVPC = "DeleteVpcPeeringConnection" +_DVCI = "DeleteVpnConcentratorInput" +_cDVCR = "com.amazonaws.ec2#DeleteVpnConcentratorRequest" +_DVCO = "DeleteVpnConcentratorOutput" +_cDVCRo = "com.amazonaws.ec2#DeleteVpnConcentratorResult" +_DVC = "DeleteVpnConcentrator" +_DVCIe = "DeleteVpnConnectionInput" +_cDVCRom = "com.amazonaws.ec2#DeleteVpnConnectionRequest" +_DVCOe = "DeleteVpnConnectionOutput" +_DVCe = "DeleteVpnConnection" +_DVCRI = "DeleteVpnConnectionRouteInput" +_cDVCRR = "com.amazonaws.ec2#DeleteVpnConnectionRouteRequest" +_DVCRO = "DeleteVpnConnectionRouteOutput" +_DVCR = "DeleteVpnConnectionRoute" +_DVGI = "DeleteVpnGatewayInput" +_cDVGR = "com.amazonaws.ec2#DeleteVpnGatewayRequest" +_DVGO = "DeleteVpnGatewayOutput" +_DVG = "DeleteVpnGateway" +_DBCI = "DeprovisionByoipCidrInput" +_cDBCR = "com.amazonaws.ec2#DeprovisionByoipCidrRequest" +_DBCO = "DeprovisionByoipCidrOutput" +_cDBCRo = "com.amazonaws.ec2#DeprovisionByoipCidrResult" +_DBC = "DeprovisionByoipCidr" +_DIBI = "DeprovisionIpamByoasnInput" +_cDIBR = "com.amazonaws.ec2#DeprovisionIpamByoasnRequest" +_ASsn = "AsnState" +_By = "Byoasn" +_DIBO = "DeprovisionIpamByoasnOutput" +_cDIBRo = "com.amazonaws.ec2#DeprovisionIpamByoasnResult" +_by = "byoasn" +_DIB = "DeprovisionIpamByoasn" +_DIPCI = "DeprovisionIpamPoolCidrInput" +_cDIPCR = "com.amazonaws.ec2#DeprovisionIpamPoolCidrRequest" +_IPCFC = "IpamPoolCidrFailureCode" +_cna = "cidr_not_available" +_cna_ = "cidr-not-available" +_le = "limit_exceeded" +_le_ = "limit-exceeded" +_IPCFR = "IpamPoolCidrFailureReason" +_IPCIp = "IpamPoolCidrId" +_IPCS = "IpamPoolCidrState" +_pi = "pending_import" +_pi_ = "pending-import" +_fi__ = "failed_import" +_fi___ = "failed-import" +_IPCpa = "IpamPoolCidr" +_iPCI = "ipamPoolCidrId" +_nL = "netmaskLength" +_DIPCO = "DeprovisionIpamPoolCidrOutput" +_cDIPCRo = "com.amazonaws.ec2#DeprovisionIpamPoolCidrResult" +_iPCpa = "ipamPoolCidr" +_DIPC = "DeprovisionIpamPoolCidr" +_DPIPCI = "DeprovisionPublicIpv4PoolCidrInput" +_cDPIPCR = "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrRequest" +_DASe = "DeprovisionedAddressSet" +_DPIPCO = "DeprovisionPublicIpv4PoolCidrOutput" +_cDPIPCRo = "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrResult" +_DAep = "DeprovisionedAddresses" +_dASe = "deprovisionedAddressSet" +_DPIPC = "DeprovisionPublicIpv4PoolCidr" +_DIIe = "DeregisterImageInput" +_cDIRom = "com.amazonaws.ec2#DeregisterImageRequest" +_DASel = "DeleteAssociatedSnapshots" +_SRC = "SnapshotReturnCodes" +_SUCCESS = "SUCCESS" +_WS = "WARN_SKIPPED" +_ski = "skipped" +_EMP = "ERROR_MISSING_PERMISSIONS" +_mp = "missing-permissions" +_ECIE = "ERROR_CODE_INTERNAL_ERROR" +_ie____ = "internal-error" +_ECCE = "ERROR_CODE_CLIENT_ERROR" +_ce = "client-error" +_DSRC = "DeleteSnapshotReturnCode" +_DSRS = "DeleteSnapshotResultSet" +_DIOe = "DeregisterImageOutput" +_cDIRoma = "com.amazonaws.ec2#DeregisterImageResult" +_DSR = "DeleteSnapshotResults" +_dSRS = "deleteSnapshotResultSet" +_DIer = "DeregisterImage" +_ITKS = "InstanceTagKeySet" +_DITAR = "DeregisterInstanceTagAttributeRequest" +_IATOI = "IncludeAllTagsOfInstance" +_ITK = "InstanceTagKeys" +_ITKn = "InstanceTagKey" +_DIENAI = "DeregisterInstanceEventNotificationAttributesInput" +_cDIENAR = "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesRequest" +_ITA = "InstanceTagAttribute" +_ITNA = "InstanceTagNotificationAttribute" +_iTKS = "instanceTagKeySet" +_iATOI = "includeAllTagsOfInstance" +_DIENAO = "DeregisterInstanceEventNotificationAttributesOutput" +_cDIENARo = "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesResult" +_iTA = "instanceTagAttribute" +_DIENA = "DeregisterInstanceEventNotificationAttributes" +_TGNIIL = "TransitGatewayNetworkInterfaceIdList" +_DTGMGMI = "DeregisterTransitGatewayMulticastGroupMembersInput" +_cDTGMGMR = "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersRequest" +_GIA = "GroupIpAddress" +_TGMDGM = "TransitGatewayMulticastDeregisteredGroupMembers" +_DNIIe = "DeregisteredNetworkInterfaceIds" +_dNII = "deregisteredNetworkInterfaceIds" +_gIA = "groupIpAddress" +_DTGMGMO = "DeregisterTransitGatewayMulticastGroupMembersOutput" +_cDTGMGMRo = "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersResult" +_DMGM = "DeregisteredMulticastGroupMembers" +_dMGM = "deregisteredMulticastGroupMembers" +_DTGMGM = "DeregisterTransitGatewayMulticastGroupMembers" +_DTGMGSI = "DeregisterTransitGatewayMulticastGroupSourcesInput" +_cDTGMGSR = "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesRequest" +_TGMDGS = "TransitGatewayMulticastDeregisteredGroupSources" +_DTGMGSO = "DeregisterTransitGatewayMulticastGroupSourcesOutput" +_cDTGMGSRo = "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesResult" +_DMGS = "DeregisteredMulticastGroupSources" +_dMGS = "deregisteredMulticastGroupSources" +_DTGMGS = "DeregisterTransitGatewayMulticastGroupSources" +_DAAI = "DescribeAccountAttributesInput" +_cDAAR = "com.amazonaws.ec2#DescribeAccountAttributesRequest" +_ANtt = "AttributeNames" +_DAAO = "DescribeAccountAttributesOutput" +_cDAARo = "com.amazonaws.ec2#DescribeAccountAttributesResult" +_AAc = "AccountAttributes" +_AASc = "AccountAttributeSet" +_aASc = "accountAttributeSet" +_DAA = "DescribeAccountAttributes" +_DAVECI = "DescribeAccountVpcEncryptionControlInput" +_cDAVECR = "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlRequest" +_DAVECO = "DescribeAccountVpcEncryptionControlOutput" +_cDAVECRo = "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlResult" +_aVEC = "accountVpcEncryptionControl" +_DAVEC = "DescribeAccountVpcEncryptionControl" +_Fi = "Filter" +_FL = "FilterList" +_PISL = "PublicIpStringList" +_DAI = "DescribeAddressesInput" +_cDAR = "com.amazonaws.ec2#DescribeAddressesRequest" +_PIu = "PublicIps" +_Fil = "Filters" +_DAO = "DescribeAddressesOutput" +_cDARo = "com.amazonaws.ec2#DescribeAddressesResult" +_ASdd = "AddressesSet" +_aSdd = "addressesSet" +_DAesc = "DescribeAddresses" +_NTex = "NextToken" +_DAAIe = "DescribeAddressesAttributeInput" +_cDAARom = "com.amazonaws.ec2#DescribeAddressesAttributeRequest" +_Attr = "Attribute" +_MR = "MaxResults" +_DAAOe = "DescribeAddressesAttributeOutput" +_cDAARoma = "com.amazonaws.ec2#DescribeAddressesAttributeResult" +_nT = "nextToken" +_DAAe = "DescribeAddressesAttribute" +_DATMR = "DescribeAddressTransfersMaxResults" +_DATI = "DescribeAddressTransfersInput" +_cDATR = "com.amazonaws.ec2#DescribeAddressTransfersRequest" +_DATO = "DescribeAddressTransfersOutput" +_cDATRo = "com.amazonaws.ec2#DescribeAddressTransfersResult" +_ATdd = "AddressTransfers" +_ATSdd = "AddressTransferSet" +_aTSd = "addressTransferSet" +_DATe = "DescribeAddressTransfers" +_DAIFI = "DescribeAggregateIdFormatInput" +_cDAIFR = "com.amazonaws.ec2#DescribeAggregateIdFormatRequest" +_IFd = "IdFormat" +_Dea = "Deadline" +_dea = "deadline" +_reso = "resource" +_ULI = "UseLongIds" +_uLI = "useLongIds" +_IFL = "IdFormatList" +_DAIFO = "DescribeAggregateIdFormatOutput" +_cDAIFRo = "com.amazonaws.ec2#DescribeAggregateIdFormatResult" +_ULIA = "UseLongIdsAggregated" +_uLIA = "useLongIdsAggregated" +_Statu = "Statuses" +_SSta = "StatusSet" +_sSt = "statusSet" +_DAIF = "DescribeAggregateIdFormat" +_DASMR = "DescribeApplicationStatusMaxResults" +_DASI = "DescribeApplicationStatusInput" +_cDASR = "com.amazonaws.ec2#DescribeApplicationStatusRequest" +_ASR = "ApplicationStatusReason" +_SCta = "StatusCode" +_sCt = "statusCode" +_ASCE = "ApplicationStatusCheckEnum" +_PASSED = "PASSED" +_pas = "passed" +_INITIALIZING = "INITIALIZING" +_init = "initializing" +_ID_ = "INSUFFICIENT_DATA" +_id_ = "insufficient-data" +_NA_ = "NOT_APPLICABLE" +_na_____ = "not-applicable" +_ASD = "ApplicationStatusDetail" +_CUT = "CheckUpdateTime" +_cUT = "checkUpdateTime" +_STS = "StatusTimeStamp" +_sTS = "statusTimeStamp" +_SStat = "StatusSince" +_sSta = "statusSince" +_ASDS = "ApplicationStatusDetailSet" +_ASEp = "ApplicationStatusEnum" +_OK_ = "OK" +_ok = "ok" +_IMPAIRED = "IMPAIRED" +_imp = "impaired" +_SUPPRESSED = "SUPPRESSED" +_sup = "suppressed" +_ASp = "ApplicationStatus" +_RAesu = "ResumeAt" +_rAes = "resumeAt" +_Det = "Details" +_DSet = "DetailSet" +_dSet = "detailSet" +_IASn = "InstanceApplicationStatus" +_aSp = "applicationStatus" +_IASS = "InstanceApplicationStatusSet" +_ASRT = "ApplicationStatusesResponseType" +_ISns = "InstanceSet" +_iSn = "instanceSet" +_DASO = "DescribeApplicationStatusOutput" +_cDASRo = "com.amazonaws.ec2#DescribeApplicationStatusResult" +_ASpp = "ApplicationStatuses" +_aSRT = "applicationStatusesResponseType" +_DASes = "DescribeApplicationStatus" +_ASCIL = "ApplicationStatusCheckIdList" +_DASCAMR = "DescribeApplicationStatusCheckAssociationsMaxResults" +_DASCAI = "DescribeApplicationStatusCheckAssociationsInput" +_cDASCAR = "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsRequest" +_ASCIp = "ApplicationStatusCheckIds" +_ATE = "AssociationTypeEnum" +_TAG = "TAG" +_II_ = "INSTANCE_ID" +_ii_ = "instance-id" +_ASCAO = "ApplicationStatusCheckAssociationObject" +_ASCAS = "ApplicationStatusCheckAssociationSet" +_DASCAO = "DescribeApplicationStatusCheckAssociationsOutput" +_cDASCARo = "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsResult" +_DASCA = "DescribeApplicationStatusCheckAssociations" +_DASCMR = "DescribeApplicationStatusChecksMaxResults" +_DASCIe = "DescribeApplicationStatusChecksInput" +_cDASCRom = "com.amazonaws.ec2#DescribeApplicationStatusChecksRequest" +_IAnc = "IncludeAll" +_ASCRS = "ApplicationStatusCheckResponseSet" +_DASCOe = "DescribeApplicationStatusChecksOutput" +_cDASCRoma = "com.amazonaws.ec2#DescribeApplicationStatusChecksResult" +_ASCpp = "ApplicationStatusChecks" +_ASCS = "ApplicationStatusCheckSet" +_aSCS = "applicationStatusCheckSet" +_DASCe = "DescribeApplicationStatusChecks" +_ZISL = "ZoneIdStringList" +_ZI = "ZoneId" +_ZNSL = "ZoneNameStringList" +_ZN = "ZoneName" +_DAZIe = "DescribeAvailabilityZonesInput" +_cDAZR = "com.amazonaws.ec2#DescribeAvailabilityZonesRequest" +_ZNo = "ZoneNames" +_ZIo = "ZoneIds" +_AAZ = "AllAvailabilityZones" +_AZG = "AvailabilityZoneGeography" +_AZGL = "AvailabilityZoneGeographyList" +_AZM = "AvailabilityZoneMessage" +_AZML = "AvailabilityZoneMessageList" +_AZOIS = "AvailabilityZoneOptInStatus" +_oinr = "opt_in_not_required" +_oinr_ = "opt-in-not-required" +_oi_ = "opted_in" +_oi__ = "opted-in" +_noi = "not_opted_in" +_noi_ = "not-opted-in" +_AZSv = "AvailabilityZoneState" +_infor = "information" +_cons = "constrained" +_AZSG = "AvailabilityZoneSubGeography" +_AZSGL = "AvailabilityZoneSubGeographyList" +_OIS = "OptInStatus" +_oIS = "optInStatus" +_Mes = "Messages" +_MSe = "MessageSet" +_mSe = "messageSet" +_zN = "zoneName" +_zI = "zoneId" +_ZT = "ZoneType" +_zT = "zoneType" +_PZN = "ParentZoneName" +_pZN = "parentZoneName" +_PZI = "ParentZoneId" +_pZI = "parentZoneId" +_GLN = "GroupLongName" +_gLN = "groupLongName" +_Ge = "Geography" +_GSe = "GeographySet" +_gSe = "geographySet" +_SGu = "SubGeography" +_SGSu = "SubGeographySet" +_sGSu = "subGeographySet" +_ZS = "ZoneState" +_zS = "zoneState" +_AZL = "AvailabilityZoneList" +_DAZO = "DescribeAvailabilityZonesOutput" +_cDAZRo = "com.amazonaws.ec2#DescribeAvailabilityZonesResult" +_AZIva = "AvailabilityZoneInfo" +_aZIv = "availabilityZoneInfo" +_DAZe = "DescribeAvailabilityZones" +_MRP = "MaxResultsParam" +_DANPMSI = "DescribeAwsNetworkPerformanceMetricSubscriptionsInput" +_cDANPMSR = "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsRequest" +_MTe = "MetricType" +_al__ = "aggregate_latency" +_al___ = "aggregate-latency" +_PTe = "PeriodType" +_fm = "five_minutes" +_fm_ = "five-minutes" +_fm__ = "fifteen_minutes" +_fm___ = "fifteen-minutes" +_oh = "one_hour" +_oh_ = "one-hour" +_th_ = "three_hours" +_th__ = "three-hours" +_od__ = "one_day" +_od___ = "one-day" +_ow_ = "one_week" +_ow__ = "one-week" +_STta = "StatisticType" +_p_____________ = "p50" +_Subs = "Subscription" +_Met = "Metric" +_met = "metric" +_Stati = "Statistic" +_stati = "statistic" +_Per = "Period" +_peri = "period" +_SLu = "SubscriptionList" +_DANPMSO = "DescribeAwsNetworkPerformanceMetricSubscriptionsOutput" +_cDANPMSRo = "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsResult" +_Subsc = "Subscriptions" +_SSub = "SubscriptionSet" +_sSu = "subscriptionSet" +_DANPMS = "DescribeAwsNetworkPerformanceMetricSubscriptions" +_BISL = "BundleIdStringList" +_DBTI = "DescribeBundleTasksInput" +_cDBTR = "com.amazonaws.ec2#DescribeBundleTasksRequest" +_BIund = "BundleIds" +_BTL = "BundleTaskList" +_DBTO = "DescribeBundleTasksOutput" +_cDBTRo = "com.amazonaws.ec2#DescribeBundleTasksResult" +_BTu = "BundleTasks" +_BITS = "BundleInstanceTasksSet" +_bITS = "bundleInstanceTasksSet" +_DBT = "DescribeBundleTasks" +_DBCMR = "DescribeByoipCidrsMaxResults" +_DBCIe = "DescribeByoipCidrsInput" +_cDBCRom = "com.amazonaws.ec2#DescribeByoipCidrsRequest" +_BCSy = "ByoipCidrSet" +_DBCOe = "DescribeByoipCidrsOutput" +_cDBCRoma = "com.amazonaws.ec2#DescribeByoipCidrsResult" +_BCy = "ByoipCidrs" +_bCS = "byoipCidrSet" +_DBCe = "DescribeByoipCidrs" +_DFCMR = "DescribeFutureCapacityMaxResults" +_DCBEHI = "DescribeCapacityBlockExtensionHistoryInput" +_cDCBEHR = "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryRequest" +_CBES = "CapacityBlockExtensionStatus" +_PP = "PAYMENT_PENDING" +_PF___ = "PAYMENT_FAILED" +_PS_ = "PAYMENT_SUCCEEDED" +_ps = "payment-succeeded" +_CBE = "CapacityBlockExtension" +_CBEOI = "CapacityBlockExtensionOfferingId" +_cBEOI = "capacityBlockExtensionOfferingId" +_CBEDH = "CapacityBlockExtensionDurationHours" +_cBEDH = "capacityBlockExtensionDurationHours" +_cBES = "capacityBlockExtensionStatus" +_CBEPD = "CapacityBlockExtensionPurchaseDate" +_cBEPD = "capacityBlockExtensionPurchaseDate" +_CBESD = "CapacityBlockExtensionStartDate" +_cBESD = "capacityBlockExtensionStartDate" +_CBEED = "CapacityBlockExtensionEndDate" +_cBEED = "capacityBlockExtensionEndDate" +_UF = "UpfrontFee" +_uF = "upfrontFee" +_CBESa = "CapacityBlockExtensionSet" +_DCBEHO = "DescribeCapacityBlockExtensionHistoryOutput" +_cDCBEHRo = "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryResult" +_CBEa = "CapacityBlockExtensions" +_cBESa = "capacityBlockExtensionSet" +_DCBEH = "DescribeCapacityBlockExtensionHistory" +_DCBEOMR = "DescribeCapacityBlockExtensionOfferingsMaxResults" +_DCBEOI = "DescribeCapacityBlockExtensionOfferingsInput" +_cDCBEOR = "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsRequest" +_CBEO = "CapacityBlockExtensionOffering" +_CBEOS = "CapacityBlockExtensionOfferingSet" +_DCBEOO = "DescribeCapacityBlockExtensionOfferingsOutput" +_cDCBEORo = "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsResult" +_CBEOa = "CapacityBlockExtensionOfferings" +_cBEOS = "capacityBlockExtensionOfferingSet" +_DCBEO = "DescribeCapacityBlockExtensionOfferings" +_DCBOMR = "DescribeCapacityBlockOfferingsMaxResults" +_DCBOI = "DescribeCapacityBlockOfferingsInput" +_cDCBOR = "com.amazonaws.ec2#DescribeCapacityBlockOfferingsRequest" +_SDR = "StartDateRange" +_EDR = "EndDateRange" +_CDH = "CapacityDurationHours" +_UTl = "UltraserverType" +_UC = "UltraserverCount" +_CBO = "CapacityBlockOffering" +_CBOI = "CapacityBlockOfferingId" +_cBOI = "capacityBlockOfferingId" +_CBDH = "CapacityBlockDurationHours" +_cBDH = "capacityBlockDurationHours" +_uTl = "ultraserverType" +_uC = "ultraserverCount" +_CBDM = "CapacityBlockDurationMinutes" +_cBDM = "capacityBlockDurationMinutes" +_CBOS = "CapacityBlockOfferingSet" +_DCBOO = "DescribeCapacityBlockOfferingsOutput" +_cDCBORo = "com.amazonaws.ec2#DescribeCapacityBlockOfferingsResult" +_CBOa = "CapacityBlockOfferings" +_cBOS = "capacityBlockOfferingSet" +_DCBO = "DescribeCapacityBlockOfferings" +_CBIa = "CapacityBlockIds" +_DCBMR = "DescribeCapacityBlocksMaxResults" +_DCBI = "DescribeCapacityBlocksInput" +_cDCBR = "com.amazonaws.ec2#DescribeCapacityBlocksRequest" +_CBRS = "CapacityBlockResourceState" +_CBa = "CapacityBlock" +_cRIS = "capacityReservationIdSet" +_CBSa = "CapacityBlockSet" +_DCBOe = "DescribeCapacityBlocksOutput" +_cDCBRo = "com.amazonaws.ec2#DescribeCapacityBlocksResult" +_CBap = "CapacityBlocks" +_cBSa = "capacityBlockSet" +_DCBe = "DescribeCapacityBlocks" +_DCBSMR = "DescribeCapacityBlockStatusMaxResults" +_DCBSI = "DescribeCapacityBlockStatusInput" +_cDCBSR = "com.amazonaws.ec2#DescribeCapacityBlockStatusRequest" +_CRSap = "CapacityReservationStatus" +_TCo = "TotalCapacity" +_tC = "totalCapacity" +_TAC = "TotalAvailableCapacity" +_tAC = "totalAvailableCapacity" +_TUC = "TotalUnavailableCapacity" +_tUC = "totalUnavailableCapacity" +_CRSS = "CapacityReservationStatusSet" +_CBIS = "CapacityBlockInterconnectStatus" +_id__ = "insufficient_data" +_CBSap = "CapacityBlockStatus" +_ISnt = "InterconnectStatus" +_iSnt = "interconnectStatus" +_CRSapa = "CapacityReservationStatuses" +_cRSS = "capacityReservationStatusSet" +_CBSS = "CapacityBlockStatusSet" +_DCBSO = "DescribeCapacityBlockStatusOutput" +_cDCBSRo = "com.amazonaws.ec2#DescribeCapacityBlockStatusResult" +_CBSapa = "CapacityBlockStatuses" +_cBSS = "capacityBlockStatusSet" +_DCBS = "DescribeCapacityBlockStatus" +_CMDEIS = "CapacityManagerDataExportIdSet" +_DCMDERMR = "DescribeCapacityManagerDataExportsRequestMaxResults" +_DCMDEIe = "DescribeCapacityManagerDataExportsInput" +_cDCMDERom = "com.amazonaws.ec2#DescribeCapacityManagerDataExportsRequest" +_CMDEIa = "CapacityManagerDataExportIds" +_CMDES = "CapacityManagerDataExportStatus" +_IP_ = "IN_PROGRESS" +_DELIVERED = "DELIVERED" +_deli = "delivered" +_CMDER = "CapacityManagerDataExportResponse" +_sBN = "s3BucketName" +_sBP = "s3BucketPrefix" +_sche = "schedule" +_oF = "outputFormat" +_LDS = "LatestDeliveryStatus" +_lDS = "latestDeliveryStatus" +_LDSM = "LatestDeliveryStatusMessage" +_lDSM = "latestDeliveryStatusMessage" +_LDSLU = "LatestDeliveryS3LocationUri" +_lDSLU = "latestDeliveryS3LocationUri" +_LDTa = "LatestDeliveryTime" +_lDT = "latestDeliveryTime" +_CMDERS = "CapacityManagerDataExportResponseSet" +_DCMDEOe = "DescribeCapacityManagerDataExportsOutput" +_cDCMDERoma = "com.amazonaws.ec2#DescribeCapacityManagerDataExportsResult" +_CMDE = "CapacityManagerDataExports" +_CMDESa = "CapacityManagerDataExportSet" +_cMDES = "capacityManagerDataExportSet" +_DCMDEe = "DescribeCapacityManagerDataExports" +_DCRBRRMR = "DescribeCapacityReservationBillingRequestsRequestMaxResults" +_CRal = "CallerRole" +_oo = "odcr_owner" +_oo_ = "odcr-owner" +_urbo = "unused_reservation_billing_owner" +_urbo_ = "unused-reservation-billing-owner" +_DCRBRI = "DescribeCapacityReservationBillingRequestsInput" +_cDCRBRR = "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsRequest" +_CRIap = "CapacityReservationInfo" +_CRBRS = "CapacityReservationBillingRequestStatus" +_CRBR = "CapacityReservationBillingRequest" +_RB = "RequestedBy" +_rBe = "requestedBy" +_LUTas = "LastUpdateTime" +_lUTas = "lastUpdateTime" +_cRIa = "capacityReservationInfo" +_CRBRSa = "CapacityReservationBillingRequestSet" +_DCRBRO = "DescribeCapacityReservationBillingRequestsOutput" +_cDCRBRRo = "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsResult" +_CRBRa = "CapacityReservationBillingRequests" +_cRBRS = "capacityReservationBillingRequestSet" +_DCRBR = "DescribeCapacityReservationBillingRequests" +_CRCQIS = "CapacityReservationCancellationQuoteIdSet" +_DCRCQRMR = "DescribeCapacityReservationCancellationQuotesRequestMaxResults" +_DCRCQI = "DescribeCapacityReservationCancellationQuotesInput" +_cDCRCQR = "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesRequest" +_CRCQIa = "CapacityReservationCancellationQuoteIds" +_CRCQRS = "CapacityReservationCancellationQuoteResponseSet" +_DCRCQO = "DescribeCapacityReservationCancellationQuotesOutput" +_cDCRCQRo = "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesResult" +_CRCQa = "CapacityReservationCancellationQuotes" +_CRCQSa = "CapacityReservationCancellationQuoteSet" +_cRCQS = "capacityReservationCancellationQuoteSet" +_DCRCQ = "DescribeCapacityReservationCancellationQuotes" +_CRMQIS = "CapacityReservationModificationQuoteIdSet" +_DCRDCQRMR = "DescribeCapacityReservationDateChangeQuotesRequestMaxResults" +_DCRDCQI = "DescribeCapacityReservationDateChangeQuotesInput" +_cDCRDCQR = "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesRequest" +_CRMQIa = "CapacityReservationModificationQuoteIds" +_CRMQRS = "CapacityReservationModificationQuoteResponseSet" +_DCRDCQO = "DescribeCapacityReservationDateChangeQuotesOutput" +_cDCRDCQRo = "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesResult" +_CRMQa = "CapacityReservationModificationQuotes" +_CRMQSa = "CapacityReservationModificationQuoteSet" +_cRMQS = "capacityReservationModificationQuoteSet" +_DCRDCQ = "DescribeCapacityReservationDateChangeQuotes" +_DCRFMR = "DescribeCapacityReservationFleetsMaxResults" +_DCRFI = "DescribeCapacityReservationFleetsInput" +_cDCRFR = "com.amazonaws.ec2#DescribeCapacityReservationFleetsRequest" +_CRF = "CapacityReservationFleet" +_CRFA = "CapacityReservationFleetArn" +_cRFA = "capacityReservationFleetArn" +_ITSS = "InstanceTypeSpecificationSet" +_iTSS = "instanceTypeSpecificationSet" +_CRFSa = "CapacityReservationFleetSet" +_DCRFO = "DescribeCapacityReservationFleetsOutput" +_cDCRFRo = "com.amazonaws.ec2#DescribeCapacityReservationFleetsResult" +_CRFa = "CapacityReservationFleets" +_cRFS = "capacityReservationFleetSet" +_DCRF = "DescribeCapacityReservationFleets" +_DCRMR = "DescribeCapacityReservationsMaxResults" +_DCRI = "DescribeCapacityReservationsInput" +_cDCRR = "com.amazonaws.ec2#DescribeCapacityReservationsRequest" +_CRSapac = "CapacityReservationSet" +_DCRO = "DescribeCapacityReservationsOutput" +_cDCRRo = "com.amazonaws.ec2#DescribeCapacityReservationsResult" +_CRapac = "CapacityReservations" +_cRSa = "capacityReservationSet" +_DCRe = "DescribeCapacityReservations" +_DCRTMR = "DescribeCapacityReservationTopologyMaxResults" +_DCRTI = "DescribeCapacityReservationTopologyInput" +_cDCRTR = "com.amazonaws.ec2#DescribeCapacityReservationTopologyRequest" +_NNS = "NetworkNodeSet" +_CRTapa = "CapacityReservationTopology" +_NN = "NetworkNodes" +_nNS = "networkNodeSet" +_CRTS = "CapacityReservationTopologySet" +_DCRTO = "DescribeCapacityReservationTopologyOutput" +_cDCRTRo = "com.amazonaws.ec2#DescribeCapacityReservationTopologyResult" +_DCRT = "DescribeCapacityReservationTopology" +_CGIS = "CarrierGatewayIdSet" +_CGMR = "CarrierGatewayMaxResults" +_DCGIes = "DescribeCarrierGatewaysInput" +_cDCGRoma = "com.amazonaws.ec2#DescribeCarrierGatewaysRequest" +_CGIa = "CarrierGatewayIds" +_CGSa = "CarrierGatewaySet" +_DCGOes = "DescribeCarrierGatewaysOutput" +_cDCGRomam = "com.amazonaws.ec2#DescribeCarrierGatewaysResult" +_CGar = "CarrierGateways" +_cGS = "carrierGatewaySet" +_DCGes = "DescribeCarrierGateways" +_IISL = "InstanceIdStringList" +_DCLIMR = "DescribeClassicLinkInstancesMaxResults" +_DCLII = "DescribeClassicLinkInstancesInput" +_cDCLIR = "com.amazonaws.ec2#DescribeClassicLinkInstancesRequest" +_mR = "maxResults" +_CLI = "ClassicLinkInstance" +_CLIL = "ClassicLinkInstanceList" +_DCLIO = "DescribeClassicLinkInstancesOutput" +_cDCLIRo = "com.amazonaws.ec2#DescribeClassicLinkInstancesResult" +_ISnst = "InstancesSet" +_iSns = "instancesSet" +_DCLI = "DescribeClassicLinkInstances" +_DCVARMR = "DescribeClientVpnAuthorizationRulesMaxResults" +_DCVARI = "DescribeClientVpnAuthorizationRulesInput" +_cDCVARR = "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesRequest" +_ARut = "AuthorizationRule" +_AAcc = "AccessAll" +_aAc = "accessAll" +_ARSu = "AuthorizationRuleSet" +_DCVARO = "DescribeClientVpnAuthorizationRulesOutput" +_cDCVARRo = "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesResult" +_ARuth = "AuthorizationRules" +_aRut = "authorizationRule" +_DCVAR = "DescribeClientVpnAuthorizationRules" +_DCVCMR = "DescribeClientVpnConnectionsMaxResults" +_DCVCI = "DescribeClientVpnConnectionsInput" +_cDCVCR = "com.amazonaws.ec2#DescribeClientVpnConnectionsRequest" +_CVCSC = "ClientVpnConnectionStatusCode" +_ftt = "failed_to_terminate" +_ftt_ = "failed-to-terminate" +_termi = "terminating" +_termin = "terminated" +_CVCS = "ClientVpnConnectionStatus" +_CVCl = "ClientVpnConnection" +_CIon = "ConnectionId" +_cIon = "connectionId" +_Use = "Username" +_user = "username" +_CETo = "ConnectionEstablishedTime" +_cET = "connectionEstablishedTime" +_IB = "IngressBytes" +_iB = "ingressBytes" +_EB = "EgressBytes" +_eB = "egressBytes" +_IPng = "IngressPackets" +_iPng = "ingressPackets" +_EPg = "EgressPackets" +_eP = "egressPackets" +_CIli = "ClientIp" +_cIli = "clientIp" +_CIA = "ClientIpv6Address" +_cIA = "clientIpv6Address" +_CNom = "CommonName" +_cNo = "commonName" +_CETon = "ConnectionEndTime" +_cETo = "connectionEndTime" +_PCSo = "PostureComplianceStatuses" +_PCSS = "PostureComplianceStatusSet" +_pCSS = "postureComplianceStatusSet" +_APLET = "AuthorizationPolicyLastEvaluatedTime" +_aPLET = "authorizationPolicyLastEvaluatedTime" +_CVCSl = "ClientVpnConnectionSet" +_DCVCO = "DescribeClientVpnConnectionsOutput" +_cDCVCRo = "com.amazonaws.ec2#DescribeClientVpnConnectionsResult" +_Conn = "Connections" +_conn = "connections" +_DCVC = "DescribeClientVpnConnections" +_CVEIL = "ClientVpnEndpointIdList" +_DCVEMR = "DescribeClientVpnEndpointMaxResults" +_DCVEIe = "DescribeClientVpnEndpointsInput" +_cDCVERom = "com.amazonaws.ec2#DescribeClientVpnEndpointsRequest" +_CVEIl = "ClientVpnEndpointIds" +_ANT = "AssociatedNetworkType" +_ATN = "AssociatedTargetNetwork" +_NIet = "NetworkId" +_nIe = "networkId" +_nTe = "networkType" +_ATNS = "AssociatedTargetNetworkSet" +_DSA = "DirectoryServiceAuthentication" +_dIi = "directoryId" +_SPA = "SamlProviderArn" +_sPA = "samlProviderArn" +_SSSPA = "SelfServiceSamlProviderArn" +_sSSPA = "selfServiceSamlProviderArn" +_CAer = "CertificateAuthentication" +_CRCC = "ClientRootCertificateChain" +_cRCC = "clientRootCertificateChain" +_CVA = "ClientVpnAuthentication" +_aDc = "activeDirectory" +_mAu = "mutualAuthentication" +_fA = "federatedAuthentication" +_CVAL = "ClientVpnAuthenticationList" +_CVEASC = "ClientVpnEndpointAttributeStatusCode" +_appl = "applying" +_CVEAS = "ClientVpnEndpointAttributeStatus" +_CCROl = "ClientConnectResponseOptions" +_lFA = "lambdaFunctionArn" +_CLBRO = "ClientLoginBannerResponseOptions" +_bT = "bannerText" +_CRERO = "ClientRouteEnforcementResponseOptions" +_enfo = "enforced" +_CLRO = "ConnectionLogResponseOptions" +_CVTP = "ClientVpnTrustProvider" +_CVTPS = "ClientVpnTrustProviderSet" +_DPRO = "DevicePostureResponseOptions" +_TPS = "TrustProviderSet" +_tPS = "trustProviderSet" +_TGCDES = "TransitGatewayConfigurationDescribeEndpointStructure" +_VPpn = "VpnProtocol" +_open = "openvpn" +_CVEl = "ClientVpnEndpoint" +_cCB = "clientCidrBlock" +_DSns = "DnsServer" +_dSn = "dnsServer" +_sTp = "splitTunnel" +_vPp = "vpnProtocol" +_tPr = "transportProtocol" +_vPpn = "vpnPort" +_ATNs = "AssociatedTargetNetworks" +_aTN = "associatedTargetNetwork" +_sCA = "serverCertificateArn" +_aO = "authenticationOptions" +_cLO = "connectionLogOptions" +_SSPU = "SelfServicePortalUrl" +_sSPU = "selfServicePortalUrl" +_cCO = "clientConnectOptions" +_sTH = "sessionTimeoutHours" +_cLBO = "clientLoginBannerOptions" +_cREO = "clientRouteEnforcementOptions" +_dOST = "disconnectOnSessionTimeout" +_eIAT = "endpointIpAddressType" +_tIAT = "trafficIpAddressType" +_tGCr = "transitGatewayConfiguration" +_dPO = "devicePostureOptions" +_ESnd = "EndpointSet" +_DCVEOe = "DescribeClientVpnEndpointsOutput" +_cDCVERoma = "com.amazonaws.ec2#DescribeClientVpnEndpointsResult" +_CVEli = "ClientVpnEndpoints" +_cVE = "clientVpnEndpoint" +_DCVEe = "DescribeClientVpnEndpoints" +_DCVRMR = "DescribeClientVpnRoutesMaxResults" +_DCVRIe = "DescribeClientVpnRoutesInput" +_cDCVRRom = "com.amazonaws.ec2#DescribeClientVpnRoutesRequest" +_CVR = "ClientVpnRoute" +_TSar = "TargetSubnet" +_tSar = "targetSubnet" +_CVRSl = "ClientVpnRouteSet" +_DCVROe = "DescribeClientVpnRoutesOutput" +_cDCVRRoma = "com.amazonaws.ec2#DescribeClientVpnRoutesResult" +_DCVRe = "DescribeClientVpnRoutes" +_DCVTNMR = "DescribeClientVpnTargetNetworksMaxResults" +_DCVTNI = "DescribeClientVpnTargetNetworksInput" +_cDCVTNR = "com.amazonaws.ec2#DescribeClientVpnTargetNetworksRequest" +_AIsso = "AssociationIds" +_TNa = "TargetNetwork" +_TNI = "TargetNetworkId" +_tNI = "targetNetworkId" +_sGe = "securityGroups" +_TNS = "TargetNetworkSet" +_DCVTNO = "DescribeClientVpnTargetNetworksOutput" +_cDCVTNRo = "com.amazonaws.ec2#DescribeClientVpnTargetNetworksResult" +_CVTN = "ClientVpnTargetNetworks" +_cVTN = "clientVpnTargetNetworks" +_DCVTN = "DescribeClientVpnTargetNetworks" +_CPMR = "CoipPoolMaxResults" +_CPIS = "CoipPoolIdSet" +_DCPIe = "DescribeCoipPoolsInput" +_cDCPRom = "com.amazonaws.ec2#DescribeCoipPoolsRequest" +_PIoo = "PoolIds" +_CPS = "CoipPoolSet" +_DCPOe = "DescribeCoipPoolsOutput" +_cDCPRoma = "com.amazonaws.ec2#DescribeCoipPoolsResult" +_CPo = "CoipPools" +_cPS = "coipPoolSet" +_DCPe = "DescribeCoipPools" +_CISL = "ConversionIdStringList" +_DCTI = "DescribeConversionTasksInput" +_cDCTR = "com.amazonaws.ec2#DescribeConversionTasksRequest" +_CTIo = "ConversionTaskIds" +_IMU = "ImportManifestUrl" +_DID = "DiskImageDescription" +_Ch = "Checksum" +_ch = "checksum" +_For = "Format" +_fo = "format" +_iMU = "importManifestUrl" +_DIVD = "DiskImageVolumeDescription" +_IIVDI = "ImportInstanceVolumeDetailItem" +_BCyt = "BytesConverted" +_bCy = "bytesConverted" +_Im = "Image" +_IIVDS = "ImportInstanceVolumeDetailSet" +_IITD = "ImportInstanceTaskDetails" +_vol = "volumes" +_IVTD = "ImportVolumeTaskDetails" +_CTSon = "ConversionTaskState" +_CTon = "ConversionTask" +_IImp = "ImportInstance" +_iImp = "importInstance" +_IVm = "ImportVolume" +_iVm = "importVolume" +_DCTL = "DescribeConversionTaskList" +_DCTO = "DescribeConversionTasksOutput" +_cDCTRo = "com.amazonaws.ec2#DescribeConversionTasksResult" +_CTonv = "ConversionTasks" +_cTon = "conversionTasks" +_DCT = "DescribeConversionTasks" +_CGISL = "CustomerGatewayIdStringList" +_DCGIesc = "DescribeCustomerGatewaysInput" +_cDCGRomama = "com.amazonaws.ec2#DescribeCustomerGatewaysRequest" +_CGIus = "CustomerGatewayIds" +_CGL = "CustomerGatewayList" +_DCGOesc = "DescribeCustomerGatewaysOutput" +_cDCGRomamaz = "com.amazonaws.ec2#DescribeCustomerGatewaysResult" +_CGu = "CustomerGateways" +_CGSu = "CustomerGatewaySet" +_cGSu = "customerGatewaySet" +_DCGesc = "DescribeCustomerGateways" +_DPMR = "DeclarativePoliciesMaxResults" +_DDPRI = "DescribeDeclarativePoliciesReportsInput" +_cDDPRR = "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsRequest" +_RIepo = "ReportIds" +_RSepo = "ReportState" +_ru = "running" +_DPRec = "DeclarativePoliciesReport" +_TIa = "TargetId" +_tIa = "targetId" +_ETnd = "EndTime" +_eTnd = "endTime" +_DPRL = "DeclarativePoliciesReportList" +_DDPRO = "DescribeDeclarativePoliciesReportsOutput" +_cDDPRRo = "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsResult" +_Rep = "Reports" +_RSepor = "ReportSet" +_rSep = "reportSet" +_DDPR = "DescribeDeclarativePoliciesReports" +_DOISL = "DhcpOptionsIdStringList" +_DDOMR = "DescribeDhcpOptionsMaxResults" +_DDOIes = "DescribeDhcpOptionsInput" +_cDDORo = "com.amazonaws.ec2#DescribeDhcpOptionsRequest" +_DOIh = "DhcpOptionsIds" +_DOL = "DhcpOptionsList" +_DDOOe = "DescribeDhcpOptionsOutput" +_cDDORom = "com.amazonaws.ec2#DescribeDhcpOptionsResult" +_DOSh = "DhcpOptionsSet" +_dOS = "dhcpOptionsSet" +_DDOe = "DescribeDhcpOptions" +_EOIGIL = "EgressOnlyInternetGatewayIdList" +_DEOIGMR = "DescribeEgressOnlyInternetGatewaysMaxResults" +_DEOIGIe = "DescribeEgressOnlyInternetGatewaysInput" +_cDEOIGRom = "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysRequest" +_EOIGIg = "EgressOnlyInternetGatewayIds" +_EOIGL = "EgressOnlyInternetGatewayList" +_DEOIGOe = "DescribeEgressOnlyInternetGatewaysOutput" +_cDEOIGRoma = "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysResult" +_EOIGg = "EgressOnlyInternetGateways" +_EOIGS = "EgressOnlyInternetGatewaySet" +_eOIGS = "egressOnlyInternetGatewaySet" +_DEOIGe = "DescribeEgressOnlyInternetGateways" +_EGI = "ElasticGpuId" +_EGIS = "ElasticGpuIdSet" +_DEGMR = "DescribeElasticGpusMaxResults" +_DEGI = "DescribeElasticGpusInput" +_cDEGR = "com.amazonaws.ec2#DescribeElasticGpusRequest" +_EGIl = "ElasticGpuIds" +_EGSla = "ElasticGpuStatus" +_Ok = "Ok" +_Imp = "Impaired" +_EGH = "ElasticGpuHealth" +_EGSlas = "ElasticGpuState" +_Atta = "Attached" +_EG = "ElasticGpus" +_eGI = "elasticGpuId" +_EGT = "ElasticGpuType" +_eGT = "elasticGpuType" +_eGH = "elasticGpuHealth" +_eGS = "elasticGpuState" +_EGSlast = "ElasticGpuSet" +_DEGO = "DescribeElasticGpusOutput" +_cDEGRo = "com.amazonaws.ec2#DescribeElasticGpusResult" +_eGSl = "elasticGpuSet" +_DEG = "DescribeElasticGpus" +_EITI = "ExportImageTaskId" +_EITIL = "ExportImageTaskIdList" +_DEITMR = "DescribeExportImageTasksMaxResults" +_DEITI = "DescribeExportImageTasksInput" +_cDEITR = "com.amazonaws.ec2#DescribeExportImageTasksRequest" +_EITIx = "ExportImageTaskIds" +_ETSL = "ExportTaskS3Location" +_EITxp = "ExportImageTask" +_eITI = "exportImageTaskId" +_SEL = "S3ExportLocation" +_sEL = "s3ExportLocation" +_EITL = "ExportImageTaskList" +_DEITO = "DescribeExportImageTasksOutput" +_cDEITRo = "com.amazonaws.ec2#DescribeExportImageTasksResult" +_EITxpo = "ExportImageTasks" +_EITSx = "ExportImageTaskSet" +_eITSx = "exportImageTaskSet" +_DEIT = "DescribeExportImageTasks" +_ETISL = "ExportTaskIdStringList" +_DETI = "DescribeExportTasksInput" +_cDETR = "com.amazonaws.ec2#DescribeExportTasksRequest" +_ETIx = "ExportTaskIds" +_ETL = "ExportTaskList" +_DETO = "DescribeExportTasksOutput" +_cDETRo = "com.amazonaws.ec2#DescribeExportTasksResult" +_ETxp = "ExportTasks" +_ETSxp = "ExportTaskSet" +_eTSx = "exportTaskSet" +_DET = "DescribeExportTasks" +_FLIIL = "FastLaunchImageIdList" +_DFLIRMR = "DescribeFastLaunchImagesRequestMaxResults" +_DFLII = "DescribeFastLaunchImagesInput" +_cDFLIR = "com.amazonaws.ec2#DescribeFastLaunchImagesRequest" +_IIma = "ImageIds" +_FLLTSR = "FastLaunchLaunchTemplateSpecificationResponse" +_FLRTa = "FastLaunchResourceType" +_SNAPSHOT = "SNAPSHOT" +_FLSCR = "FastLaunchSnapshotConfigurationResponse" +_TRC = "TargetResourceCount" +_tRC = "targetResourceCount" +_FLSC = "FastLaunchStateCode" +_ef____ = "enabling_failed" +_ef_____ = "enabling-failed" +_ef______ = "enabled_failed" +_ef_______ = "enabled-failed" +_df________ = "disabling_failed" +_df_________ = "disabling-failed" +_DFLISI = "DescribeFastLaunchImagesSuccessItem" +_SCn = "SnapshotConfiguration" +_sCn = "snapshotConfiguration" +_MPLa = "MaxParallelLaunches" +_mPL = "maxParallelLaunches" +_STR = "StateTransitionReason" +_sTR = "stateTransitionReason" +_STT = "StateTransitionTime" +_sTT = "stateTransitionTime" +_DFLISS = "DescribeFastLaunchImagesSuccessSet" +_DFLIO = "DescribeFastLaunchImagesOutput" +_cDFLIRo = "com.amazonaws.ec2#DescribeFastLaunchImagesResult" +_FLIa = "FastLaunchImages" +_FLISa = "FastLaunchImageSet" +_fLISa = "fastLaunchImageSet" +_DFLIe = "DescribeFastLaunchImages" +_DFSRMR = "DescribeFastSnapshotRestoresMaxResults" +_DFSRI = "DescribeFastSnapshotRestoresInput" +_cDFSRR = "com.amazonaws.ec2#DescribeFastSnapshotRestoresRequest" +_FSRSC = "FastSnapshotRestoreStateCode" +_opti = "optimizing" +_DFSRSI = "DescribeFastSnapshotRestoreSuccessItem" +_ETna = "EnablingTime" +_eTna = "enablingTime" +_OT = "OptimizingTime" +_oT = "optimizingTime" +_ETnab = "EnabledTime" +_eTnab = "enabledTime" +_DTi = "DisablingTime" +_dTi = "disablingTime" +_DTis = "DisabledTime" +_dTis = "disabledTime" +_DFSRSS = "DescribeFastSnapshotRestoreSuccessSet" +_DFSRO = "DescribeFastSnapshotRestoresOutput" +_cDFSRRo = "com.amazonaws.ec2#DescribeFastSnapshotRestoresResult" +_FSRa = "FastSnapshotRestores" +_FSRS = "FastSnapshotRestoreSet" +_fSRS = "fastSnapshotRestoreSet" +_DFSR = "DescribeFastSnapshotRestores" +_FET = "FleetEventType" +_IC__ = "INSTANCE_CHANGE" +_ic__ = "instance-change" +_FC_ = "FLEET_CHANGE" +_fc = "fleet-change" +_SE = "SERVICE_ERROR" +_se__ = "service-error" +_DFHI = "DescribeFleetHistoryInput" +_cDFHR = "com.amazonaws.ec2#DescribeFleetHistoryRequest" +_ETv = "EventType" +_EIv = "EventInformation" +_EDv = "EventDescription" +_eDv = "eventDescription" +_EST = "EventSubType" +_eST = "eventSubType" +_HRE = "HistoryRecordEntry" +_eIv = "eventInformation" +_eTv = "eventType" +_HRS = "HistoryRecordSet" +_DFHO = "DescribeFleetHistoryOutput" +_cDFHRo = "com.amazonaws.ec2#DescribeFleetHistoryResult" +_HRi = "HistoryRecords" +_hRS = "historyRecordSet" +_LET = "LastEvaluatedTime" +_lET = "lastEvaluatedTime" +_DFH = "DescribeFleetHistory" +_DFIIe = "DescribeFleetInstancesInput" +_cDFIRom = "com.amazonaws.ec2#DescribeFleetInstancesRequest" +_DFIOe = "DescribeFleetInstancesOutput" +_cDFIRoma = "com.amazonaws.ec2#DescribeFleetInstancesResult" +_AIct = "ActiveInstances" +_aIS = "activeInstanceSet" +_DFIes = "DescribeFleetInstances" +_DFIesc = "DescribeFleetsInput" +_cDFRom = "com.amazonaws.ec2#DescribeFleetsRequest" +_FASl = "FleetActivityStatus" +_DFEe = "DescribeFleetError" +_DFESe = "DescribeFleetsErrorSet" +_DFIescr = "DescribeFleetsInstances" +_DFIS = "DescribeFleetsInstancesSet" +_FLTOL = "FleetLaunchTemplateOverridesList" +_FLTC = "FleetLaunchTemplateConfig" +_FLTCL = "FleetLaunchTemplateConfigList" +_uS = "usageStrategy" +_cRO = "capacityReservationOptions" +_sITi = "singleInstanceType" +_sAZ = "singleAvailabilityZone" +_mTC = "minTargetCapacity" +_mTP = "maxTotalPrice" +_RTL = "ReservationTypeList" +_MTS = "MarketTypeSet" +_mTS = "marketTypeSet" +_RTSe = "ReservationTypeSet" +_rTSe = "reservationTypeSet" +_rCFO = "reservedCapacityFallbackOptions" +_FSCR = "FleetSpotCapacityRebalance" +_rSepl = "replacementStrategy" +_tDe = "terminationDelay" +_FSMS = "FleetSpotMaintenanceStrategies" +_cRap = "capacityRebalance" +_mSa = "maintenanceStrategies" +_iPTUC = "instancePoolsToUseCount" +_oDTC = "onDemandTargetCapacity" +_sTC = "spotTargetCapacity" +_dTCT = "defaultTargetCapacityType" +_tCUT = "targetCapacityUnitType" +_FDl = "FleetData" +_aSc = "activityStatus" +_FS = "FleetState" +_fS = "fleetState" +_eCTP = "excessCapacityTerminationPolicy" +_FODC = "FulfilledOnDemandCapacity" +_fODC = "fulfilledOnDemandCapacity" +_lTC = "launchTemplateConfigs" +_tCS = "targetCapacitySpecification" +_tIWE = "terminateInstancesWithExpiration" +_vF = "validFrom" +_rUI = "replaceUnhealthyInstances" +_oDO = "onDemandOptions" +_rCO = "reservedCapacityOptions" +_cont = "context" +_FSl = "FleetSet" +_DFOe = "DescribeFleetsOutput" +_cDFRoma = "com.amazonaws.ec2#DescribeFleetsResult" +_Fl = "Fleets" +_fSl = "fleetSet" +_DFes = "DescribeFleets" +_DFLIes = "DescribeFlowLogsInput" +_cDFLRom = "com.amazonaws.ec2#DescribeFlowLogsRequest" +_DORe = "DestinationOptionsResponse" +_fF = "fileFormat" +_hCP = "hiveCompatiblePartitions" +_pHP = "perHourPartition" +_TFSRa = "TagFieldSpecificationResponse" +_TKS = "TagKeySet" +_tKS = "tagKeySet" +_TFSLRa = "TagFieldSpecificationListResponse" +_FLl = "FlowLog" +_DLEM = "DeliverLogsErrorMessage" +_dLEM = "deliverLogsErrorMessage" +_dLPA = "deliverLogsPermissionArn" +_dCAR = "deliverCrossAccountRole" +_DLS = "DeliverLogsStatus" +_dLS = "deliverLogsStatus" +_fLI = "flowLogId" +_FLS = "FlowLogStatus" +_fLS = "flowLogStatus" +_lGN = "logGroupName" +_tTra = "trafficType" +_lDTo = "logDestinationType" +_lD = "logDestination" +_lF = "logFormat" +_mAI = "maxAggregationInterval" +_dOe = "destinationOptions" +_TFSS = "TagFieldSpecificationSet" +_tFSS = "tagFieldSpecificationSet" +_FLSl = "FlowLogSet" +_DFLOe = "DescribeFlowLogsOutput" +_cDFLRoma = "com.amazonaws.ec2#DescribeFlowLogsResult" +_FLlo = "FlowLogs" +_fLSl = "flowLogSet" +_DFLe = "DescribeFlowLogs" +_FIAN = "FpgaImageAttributeName" +_lPo = "loadPermission" +_pCr = "productCodes" +_DFIAI = "DescribeFpgaImageAttributeInput" +_cDFIAR = "com.amazonaws.ec2#DescribeFpgaImageAttributeRequest" +_PGe = "PermissionGroup" +_all_ = "all" +_LPo = "LoadPermission" +_Gr = "Group" +_gro = "group" +_LPL = "LoadPermissionList" +_PCV = "ProductCodeValues" +_devp = "devpay" +_mar = "marketplace" +_PCIr = "ProductCodeId" +_pCro = "productCode" +_PCT = "ProductCodeType" +_PCLr = "ProductCodeList" +_FIA = "FpgaImageAttribute" +_LPoa = "LoadPermissions" +_lPoa = "loadPermissions" +_PCro = "ProductCodes" +_DFIAO = "DescribeFpgaImageAttributeOutput" +_cDFIARo = "com.amazonaws.ec2#DescribeFpgaImageAttributeResult" +_fIA = "fpgaImageAttribute" +_DFIA = "DescribeFpgaImageAttribute" +_FIIL = "FpgaImageIdList" +_DFIMR = "DescribeFpgaImagesMaxResults" +_OSL = "OwnerStringList" +_DFIIes = "DescribeFpgaImagesInput" +_cDFIRomam = "com.amazonaws.ec2#DescribeFpgaImagesRequest" +_FIIp = "FpgaImageIds" +_Own = "Owners" +_ITL = "InstanceTypesList" +_PIc = "PciId" +_DIev = "DeviceId" +_VIe = "VendorId" +_SIub = "SubsystemId" +_SVIu = "SubsystemVendorId" +_FISC = "FpgaImageStateCode" +_FISp = "FpgaImageState" +_FIp = "FpgaImage" +_SVh = "ShellVersion" +_sVh = "shellVersion" +_pIc = "pciId" +_tags = "tags" +_Pu = "Public" +_DRSa = "DataRetentionSupport" +_dRS = "dataRetentionSupport" +_ITnsta = "InstanceTypes" +_iTnst = "instanceTypes" +_FIL = "FpgaImageList" +_DFIOes = "DescribeFpgaImagesOutput" +_cDFIRomama = "com.amazonaws.ec2#DescribeFpgaImagesResult" +_FIpg = "FpgaImages" +_FISpg = "FpgaImageSet" +_fISp = "fpgaImageSet" +_DFIescri = "DescribeFpgaImages" +_DHRMR = "DescribeHostReservationsMaxResults" +_DHROI = "DescribeHostReservationOfferingsInput" +_cDHROR = "com.amazonaws.ec2#DescribeHostReservationOfferingsRequest" +_MDa = "MaxDuration" +_MDi = "MinDuration" +_POa = "PaymentOption" +_AU = "ALL_UPFRONT" +_AUl = "AllUpfront" +_PU_ = "PARTIAL_UPFRONT" +_PUa = "PartialUpfront" +_NU = "NO_UPFRONT" +_NUo = "NoUpfront" +_HOo = "HostOffering" +_Dur = "Duration" +_dur = "duration" +_HP = "HourlyPrice" +_hP = "hourlyPrice" +_oIf = "offeringId" +_pOa = "paymentOption" +_UPp = "UpfrontPrice" +_uPp = "upfrontPrice" +_HOS = "HostOfferingSet" +_DHROO = "DescribeHostReservationOfferingsOutput" +_cDHRORo = "com.amazonaws.ec2#DescribeHostReservationOfferingsResult" +_OS = "OfferingSet" +_oS = "offeringSet" +_DHRO = "DescribeHostReservationOfferings" +_HRI = "HostReservationId" +_HRIS = "HostReservationIdSet" +_DHRI = "DescribeHostReservationsInput" +_cDHRR = "com.amazonaws.ec2#DescribeHostReservationsRequest" +_RHIS = "ResponseHostIdSet" +_SCHEDULED = "SCHEDULED" +_DELAYED = "DELAYED" +_UNSUPPORTED = "UNSUPPORTED" +_RETIRED = "RETIRED" +_reti = "retired" +_HRo = "HostReservation" +_End = "End" +_end = "end" +_hRI = "hostReservationId" +_Star = "Start" +_star = "start" +_HRSo = "HostReservationSet" +_DHROe = "DescribeHostReservationsOutput" +_cDHRRo = "com.amazonaws.ec2#DescribeHostReservationsResult" +_hRSo = "hostReservationSet" +_DHR = "DescribeHostReservations" +_RHILe = "RequestHostIdList" +_DHIes = "DescribeHostsInput" +_cDHR = "com.amazonaws.ec2#DescribeHostsRequest" +_filt = "filter" +_ICns = "InstanceCapacity" +_ACv = "AvailableCapacity" +_aCv = "availableCapacity" +_AICL = "AvailableInstanceCapacityList" +_AICv = "AvailableInstanceCapacity" +_aICv = "availableInstanceCapacity" +_AVC = "AvailableVCpus" +_aVC = "availableVCpus" +_HCO = "HostCpuOptions" +_HPo = "HostProperties" +_Cor = "Cores" +_cor = "cores" +_Soc = "Sockets" +_soc = "sockets" +_TVC = "TotalVCpus" +_tVC = "totalVCpus" +_HIos = "HostInstance" +_HIL = "HostInstanceList" +_Hos = "Host" +_hPo = "hostProperties" +_insta = "instances" +_ATll = "AllocationTime" +_aTll = "allocationTime" +_RTel = "ReleaseTime" +_rTel = "releaseTime" +_hR = "hostRecovery" +_aMIT = "allowsMultipleInstanceTypes" +_MOSLRG = "MemberOfServiceLinkedResourceGroup" +_mOSLRG = "memberOfServiceLinkedResourceGroup" +_hM = "hostMaintenance" +_aIss = "assetId" +_HL = "HostList" +_DHO = "DescribeHostsOutput" +_cDHRo = "com.amazonaws.ec2#DescribeHostsResult" +_Host = "Hosts" +_HSo = "HostSet" +_hS = "hostSet" +_DH = "DescribeHosts" +_IIPAI = "IamInstanceProfileAssociationId" +_AILs = "AssociationIdList" +_DIIPAMR = "DescribeIamInstanceProfileAssociationsMaxResults" +_DIIPAI = "DescribeIamInstanceProfileAssociationsInput" +_cDIIPAR = "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsRequest" +_IIPASa = "IamInstanceProfileAssociationSet" +_DIIPAO = "DescribeIamInstanceProfileAssociationsOutput" +_cDIIPARo = "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsResult" +_IIPAa = "IamInstanceProfileAssociations" +_iIPAS = "iamInstanceProfileAssociationSet" +_DIIPA = "DescribeIamInstanceProfileAssociations" +_DIIFI = "DescribeIdentityIdFormatInput" +_cDIIFR = "com.amazonaws.ec2#DescribeIdentityIdFormatRequest" +_PAr = "PrincipalArn" +_pAr = "principalArn" +_DIIFO = "DescribeIdentityIdFormatOutput" +_cDIIFRo = "com.amazonaws.ec2#DescribeIdentityIdFormatResult" +_DIIF = "DescribeIdentityIdFormat" +_DIFI = "DescribeIdFormatInput" +_cDIFR = "com.amazonaws.ec2#DescribeIdFormatRequest" +_DIFO = "DescribeIdFormatOutput" +_cDIFRo = "com.amazonaws.ec2#DescribeIdFormatResult" +_DIFe = "DescribeIdFormat" +_IAN = "ImageAttributeName" +_ker = "kernel" +_ramd = "ramdisk" +_lPa = "launchPermission" +_sNS = "sriovNetSupport" +_bMo = "bootMode" +_tSp = "tpmSupport" +_uDe = "uefiData" +_lLT = "lastLaunchedTime" +_iSm = "imdsSupport" +_dPer = "deregistrationProtection" +_DIAI = "DescribeImageAttributeInput" +_cDIAR = "com.amazonaws.ec2#DescribeImageAttributeRequest" +_BDML = "BlockDeviceMappingList" +_LPa = "LaunchPermission" +_OAr = "OrganizationArn" +_oAr = "organizationArn" +_OUA = "OrganizationalUnitArn" +_oUA = "organizationalUnitArn" +_LPLa = "LaunchPermissionList" +_DIAO = "DescribeImageAttributeOutput" +_cIAo = "com.amazonaws.ec2#ImageAttribute" +_Ker = "Kernel" +_Ra = "Ramdisk" +_SNSr = "SriovNetSupport" +_BMo = "BootMode" +_TSp = "TpmSupport" +_UDe = "UefiData" +_LLT = "LastLaunchedTime" +_ISm = "ImdsSupport" +_DPer = "DeregistrationProtection" +_LPau = "LaunchPermissions" +_DIA = "DescribeImageAttribute" +_DIRIISL = "DescribeImageReferencesImageIdStringList" +_DIRMR = "DescribeImageReferencesMaxResults" +_IRRT = "ImageReferenceResourceType" +_EI_ = "EC2_INSTANCE" +_eIc = "ec2:Instance" +_ELT = "EC2_LAUNCH_TEMPLATE" +_eLT = "ec2:LaunchTemplate" +_SP_ = "SSM_PARAMETER" +_sPs = "ssm:Parameter" +_IBIR = "IMAGE_BUILDER_IMAGE_RECIPE" +_iIR = "imagebuilder:ImageRecipe" +_IBCR = "IMAGE_BUILDER_CONTAINER_RECIPE" +_iCR = "imagebuilder:ContainerRecipe" +_IRON = "ImageReferenceOptionName" +_SN_ = "STATE_NAME" +_sn__ = "state-name" +_VD_ = "VERSION_DEPTH" +_vd = "version-depth" +_RTOV = "ResourceTypeOptionValue" +_RTOVL = "ResourceTypeOptionValuesList" +_RTOL = "ResourceTypeOptionList" +_RTRe = "ResourceTypeRequest" +_RTRL = "ResourceTypeRequestList" +_DIRI = "DescribeImageReferencesInput" +_cDIRR = "com.amazonaws.ec2#DescribeImageReferencesRequest" +_IART = "IncludeAllResourceTypes" +_IRm = "ImageReference" +_IRLm = "ImageReferenceList" +_DIRO = "DescribeImageReferencesOutput" +_cDIRRo = "com.amazonaws.ec2#DescribeImageReferencesResult" +_IRma = "ImageReferences" +_IRS = "ImageReferenceSet" +_iRS = "imageReferenceSet" +_DIR = "DescribeImageReferences" +_EBSL = "ExecutableByStringList" +_EBx = "ExecutableBy" +_IISLm = "ImageIdStringList" +_DIIes = "DescribeImagesInput" +_cDIRomam = "com.amazonaws.ec2#DescribeImagesRequest" +_EU = "ExecutableUsers" +_IDn = "IncludeDeprecated" +_IDnc = "IncludeDisabled" +_AVr = "ArchitectureValues" +_i__________________________________________________________________________ = "i386" +_x______________________________________________________ = "x86_64" +_arm = "arm64" +_xm____________ = "x86_64_mac" +_am______ = "arm64_mac" +_BMV = "BootModeValues" +_lb__ = "legacy_bios" +_lb___ = "legacy-bios" +_up__ = "uefi_preferred" +_up___ = "uefi-preferred" +_HTy = "HypervisorType" +_ovm = "ovm" +_xen = "xen" +_ITV = "ImageTypeValues" +_mach = "machine" +_IW = "ImageWatermark" +_SIR = "SourceImageRegion" +_sIR = "sourceImageRegion" +_sII = "sourceImageId" +_SICT = "SourceImageCreationTime" +_sICT = "sourceImageCreationTime" +_WCT = "WatermarkCreationTime" +_wCT = "watermarkCreationTime" +_IWL = "ImageWatermarkList" +_ISVm = "ImdsSupportValues" +_v______ = "v2_0" +_v_______ = "v2.0" +_ITIn = "InstanceTypeItem" +_SITS = "SupportedInstanceTypeSet" +_UITS = "UnsupportedInstanceTypeSet" +_SITu = "SupportedInstanceTypes" +_sITS = "supportedInstanceTypeSet" +_UIT = "UnsupportedInstanceTypes" +_uITS = "unsupportedInstanceTypeSet" +_DTev = "DeviceType" +_is__ = "instance_store" +_is___ = "instance-store" +_SLe = "SeverityLabel" +_inform = "informational" +_low = "low" +_medi = "medium" +_hig = "high" +_cri = "critical" +_SRc = "ScanResults" +_HFSL = "HighestFindingSeverityLabel" +_hFSL = "highestFindingSeverityLabel" +_FSD = "FindingScanDate" +_fSD = "findingScanDate" +_IFAS = "InformationalFixAvailableSince" +_iFAS = "informationalFixAvailableSince" +_LFAS = "LowFixAvailableSince" +_lFAS = "lowFixAvailableSince" +_MFAS = "MediumFixAvailableSince" +_mFAS = "mediumFixAvailableSince" +_HFAS = "HighFixAvailableSince" +_hFAS = "highFixAvailableSince" +_CFAS = "CriticalFixAvailableSince" +_cFAS = "criticalFixAvailableSince" +_ISma = "ImageState" +_inv = "invalid" +_der = "deregistered" +_tran = "transient" +_TSV = "TpmSupportValues" +_VTi = "VirtualizationType" +_hv = "hvm" +_para = "paravirtual" +_PDl = "PlatformDetails" +_pDl = "platformDetails" +_UO = "UsageOperation" +_uO = "usageOperation" +_ESna = "EnaSupport" +_eSna = "enaSupport" +_Hy = "Hypervisor" +_hy = "hypervisor" +_IOA = "ImageOwnerAlias" +_iOA = "imageOwnerAlias" +_RDN = "RootDeviceName" +_rDN = "rootDeviceName" +_RDT = "RootDeviceType" +_rDT = "rootDeviceType" +_vTi = "virtualizationType" +_DTep = "DeprecationTime" +_dTep = "deprecationTime" +_SIIo = "SourceInstanceId" +_sIIo = "sourceInstanceId" +_IAm = "ImageAllowed" +_iAm = "imageAllowed" +_FTE = "FreeTierEligible" +_fTE = "freeTierEligible" +_PSPN = "PublicSsmParameterName" +_pSPN = "publicSsmParameterName" +_IWm = "ImageWatermarks" +_IWS = "ImageWatermarkSet" +_iWS = "imageWatermarkSet" +_sRc = "scanResults" +_iTS = "instanceTypeSpecification" +_ILm = "ImageLocation" +_iL = "imageLocation" +_iSma = "imageState" +_IOIm = "ImageOwnerId" +_iOIm = "imageOwnerId" +_CDre = "CreationDate" +_cDre = "creationDate" +_IPsu = "IsPublic" +_iPsu = "isPublic" +_Arc = "Architecture" +_arch = "architecture" +_ITm = "ImageType" +_iTm = "imageType" +_rIa = "ramdiskId" +_ILma = "ImageList" +_DIOes = "DescribeImagesOutput" +_cDIRomama = "com.amazonaws.ec2#DescribeImagesResult" +_Ima = "Images" +_ISmag = "ImagesSet" +_iSmag = "imagesSet" +_DIesc = "DescribeImages" +_DIURIISL = "DescribeImageUsageReportsImageIdStringList" +_DIUREMR = "DescribeImageUsageReportEntriesMaxResults" +_IURISL = "ImageUsageReportIdStringList" +_DIUREI = "DescribeImageUsageReportEntriesInput" +_cDIURER = "com.amazonaws.ec2#DescribeImageUsageReportEntriesRequest" +_IURE = "ImageUsageReportEntry" +_UCs = "UsageCount" +_uCs = "usageCount" +_aIc = "accountId" +_RCT = "ReportCreationTime" +_rCT = "reportCreationTime" +_IUREL = "ImageUsageReportEntryList" +_DIUREO = "DescribeImageUsageReportEntriesOutput" +_cDIURERo = "com.amazonaws.ec2#DescribeImageUsageReportEntriesResult" +_IUREm = "ImageUsageReportEntries" +_IURES = "ImageUsageReportEntrySet" +_iURES = "imageUsageReportEntrySet" +_DIURE = "DescribeImageUsageReportEntries" +_DIURMR = "DescribeImageUsageReportsMaxResults" +_DIURIe = "DescribeImageUsageReportsInput" +_cDIURRom = "com.amazonaws.ec2#DescribeImageUsageReportsRequest" +_UIL = "UserIdList" +_IURTO = "ImageUsageResourceTypeOption" +_oN = "optionName" +_OVS = "OptionValueSet" +_oVS = "optionValueSet" +_IURTOL = "ImageUsageResourceTypeOptionList" +_IURT = "ImageUsageResourceType" +_RTOS = "ResourceTypeOptionSet" +_rTOS = "resourceTypeOptionSet" +_IURTL = "ImageUsageResourceTypeList" +_IURS = "ImageUsageReportState" +_IURSR = "ImageUsageReportStateReason" +_IUR = "ImageUsageReport" +_AISc = "AccountIdSet" +_aISc = "accountIdSet" +_IURL = "ImageUsageReportList" +_DIUROe = "DescribeImageUsageReportsOutput" +_cDIURRoma = "com.amazonaws.ec2#DescribeImageUsageReportsResult" +_IURm = "ImageUsageReports" +_IURSm = "ImageUsageReportSet" +_iURS = "imageUsageReportSet" +_DIURe = "DescribeImageUsageReports" +_IITI = "ImportImageTaskId" +_ITIL = "ImportTaskIdList" +_DIITI = "DescribeImportImageTasksInput" +_cDIITR = "com.amazonaws.ec2#DescribeImportImageTasksRequest" +_ITIm = "ImportTaskIds" +_IILCR = "ImportImageLicenseConfigurationResponse" +_IILSLR = "ImportImageLicenseSpecificationListResponse" +_SU = "SensitiveUrl" +_UBD = "UserBucketDetails" +_SDn = "SnapshotDetail" +_DISi = "DiskImageSize" +_dIS = "diskImageSize" +_Ur = "Url" +_ur = "url" +_UB = "UserBucket" +_uB = "userBucket" +_SDL = "SnapshotDetailList" +_IIT = "ImportImageTask" +_LTi = "LicenseType" +_lTi = "licenseType" +_SDna = "SnapshotDetails" +_SDSn = "SnapshotDetailSet" +_sDSn = "snapshotDetailSet" +_lSic = "licenseSpecifications" +_IITL = "ImportImageTaskList" +_DIITO = "DescribeImportImageTasksOutput" +_cDIITRo = "com.amazonaws.ec2#DescribeImportImageTasksResult" +_IITm = "ImportImageTasks" +_IITS = "ImportImageTaskSet" +_iITS = "importImageTaskSet" +_DIIT = "DescribeImportImageTasks" +_ISTI = "ImportSnapshotTaskId" +_ISTIL = "ImportSnapshotTaskIdList" +_DISTI = "DescribeImportSnapshotTasksInput" +_cDISTR = "com.amazonaws.ec2#DescribeImportSnapshotTasksRequest" +_STDn = "SnapshotTaskDetail" +_ISTm = "ImportSnapshotTask" +_sTD = "snapshotTaskDetail" +_ISTL = "ImportSnapshotTaskList" +_DISTO = "DescribeImportSnapshotTasksOutput" +_cDISTRo = "com.amazonaws.ec2#DescribeImportSnapshotTasksResult" +_ISTmp = "ImportSnapshotTasks" +_ISTS = "ImportSnapshotTaskSet" +_iSTS = "importSnapshotTaskSet" +_DIST = "DescribeImportSnapshotTasks" +_IANn = "InstanceAttributeName" +_DIAIe = "DescribeInstanceAttributeInput" +_cDIARo = "com.amazonaws.ec2#DescribeInstanceAttributeRequest" +_attr = "attribute" +_EIBD = "EbsInstanceBlockDevice" +_VOIo = "VolumeOwnerId" +_vOIo = "volumeOwnerId" +_IBDM = "InstanceBlockDeviceMapping" +_IBDML = "InstanceBlockDeviceMappingList" +_ABV = "AttributeBooleanValue" +_DIAOe = "DescribeInstanceAttributeOutput" +_cIAom = "com.amazonaws.ec2#InstanceAttribute" +_DIAe = "DescribeInstanceAttribute" +_ICEMR = "InstanceConnectEndpointMaxResults" +_DICEIe = "DescribeInstanceConnectEndpointsInput" +_cDICERom = "com.amazonaws.ec2#DescribeInstanceConnectEndpointsRequest" +_ICEIn = "InstanceConnectEndpointIds" +_ICES = "InstanceConnectEndpointSet" +_DICEOe = "DescribeInstanceConnectEndpointsOutput" +_cDICERoma = "com.amazonaws.ec2#DescribeInstanceConnectEndpointsResult" +_ICEn = "InstanceConnectEndpoints" +_iCES = "instanceConnectEndpointSet" +_DICEe = "DescribeInstanceConnectEndpoints" +_DICSMR = "DescribeInstanceCreditSpecificationsMaxResults" +_DICSI = "DescribeInstanceCreditSpecificationsInput" +_cDICSR = "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsRequest" +_ICS = "InstanceCreditSpecification" +_ICSL = "InstanceCreditSpecificationList" +_DICSO = "DescribeInstanceCreditSpecificationsOutput" +_cDICSRo = "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsResult" +_ICSn = "InstanceCreditSpecifications" +_ICSS = "InstanceCreditSpecificationSet" +_iCSS = "instanceCreditSpecificationSet" +_DICS = "DescribeInstanceCreditSpecifications" +_DIENAIe = "DescribeInstanceEventNotificationAttributesInput" +_cDIENARom = "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesRequest" +_DIENAOe = "DescribeInstanceEventNotificationAttributesOutput" +_cDIENARoma = "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesResult" +_DIENAe = "DescribeInstanceEventNotificationAttributes" +_IEWIS = "InstanceEventWindowIdSet" +_RRe = "ResultRange" +_DIEWIe = "DescribeInstanceEventWindowsInput" +_cDIEWRom = "com.amazonaws.ec2#DescribeInstanceEventWindowsRequest" +_IEWIn = "InstanceEventWindowIds" +_IEWSn = "InstanceEventWindowSet" +_DIEWOe = "DescribeInstanceEventWindowsOutput" +_cDIEWRoma = "com.amazonaws.ec2#DescribeInstanceEventWindowsResult" +_IEWn = "InstanceEventWindows" +_iEWSn = "instanceEventWindowSet" +_DIEWe = "DescribeInstanceEventWindows" +_DIIMMR = "DescribeInstanceImageMetadataMaxResults" +_DIIMI = "DescribeInstanceImageMetadataInput" +_cDIIMR = "com.amazonaws.ec2#DescribeInstanceImageMetadataRequest" +_IM = "ImageMetadata" +_ISN = "InstanceStateName" +_sd__ = "shutting_down" +_sd___ = "shutting-down" +_stopp = "stopping" +_stoppe = "stopped" +_ISnsta = "InstanceState" +_IIM = "InstanceImageMetadata" +_LTa = "LaunchTime" +_lTa = "launchTime" +_iSnst = "instanceState" +_iM = "imageMetadata" +_IIML = "InstanceImageMetadataList" +_DIIMO = "DescribeInstanceImageMetadataOutput" +_cDIIMRo = "com.amazonaws.ec2#DescribeInstanceImageMetadataResult" +_IIMS = "InstanceImageMetadataSet" +_iIMS = "instanceImageMetadataSet" +_DIIM = "DescribeInstanceImageMetadata" +_DIIesc = "DescribeInstancesInput" +_cDIRomamaz = "com.amazonaws.ec2#DescribeInstancesRequest" +_IMR = "IncludeManagedResources" +_CRSR = "CapacityReservationSpecificationResponse" +_IBMV = "InstanceBootModeValues" +_EGA = "ElasticGpuAssociation" +_EGAI = "ElasticGpuAssociationId" +_eGAI = "elasticGpuAssociationId" +_EGAS = "ElasticGpuAssociationState" +_eGAS = "elasticGpuAssociationState" +_EGAT = "ElasticGpuAssociationTime" +_eGAT = "elasticGpuAssociationTime" +_EGAL = "ElasticGpuAssociationList" +_EIAA = "ElasticInferenceAcceleratorAssociation" +_EIAAl = "ElasticInferenceAcceleratorArn" +_eIAA = "elasticInferenceAcceleratorArn" +_EIAAI = "ElasticInferenceAcceleratorAssociationId" +_eIAAI = "elasticInferenceAcceleratorAssociationId" +_EIAAS = "ElasticInferenceAcceleratorAssociationState" +_eIAAS = "elasticInferenceAcceleratorAssociationState" +_EIAAT = "ElasticInferenceAcceleratorAssociationTime" +_eIAAT = "elasticInferenceAcceleratorAssociationTime" +_EIAAL = "ElasticInferenceAcceleratorAssociationList" +_ILT = "InstanceLifecycleType" +_LC = "LicenseConfiguration" +_LL = "LicenseList" +_IARS = "InstanceAutoRecoveryState" +_IRMS = "InstanceRebootMigrationState" +_IMOn = "InstanceMaintenanceOptions" +_RMeb = "RebootMigration" +_rMeb = "rebootMigration" +_IMES = "InstanceMetadataEndpointState" +_IMPS = "InstanceMetadataProtocolState" +_HTS = "HttpTokensState" +_IMTS = "InstanceMetadataTagsState" +_IMOS = "InstanceMetadataOptionsState" +_IMOR = "InstanceMetadataOptionsResponse" +_MSon = "MonitoringState" +_INIA = "InstanceNetworkInterfaceAssociation" +_IAESUS = "InstanceAttachmentEnaSrdUdpSpecification" +_IAESS = "InstanceAttachmentEnaSrdSpecification" +_INIAn = "InstanceNetworkInterfaceAttachment" +_CTSRo = "ConnectionTrackingSpecificationResponse" +_IIPn = "InstanceIpv4Prefix" +_IIPL = "InstanceIpv4PrefixList" +_IIPns = "InstanceIpv6Prefix" +_IIPLn = "InstanceIpv6PrefixList" +_IPIA = "InstancePrivateIpAddress" +_IPIAL = "InstancePrivateIpAddressList" +_INI = "InstanceNetworkInterface" +_INIL = "InstanceNetworkInterfaceList" +_INPO = "InstanceNetworkPerformanceOptions" +_PDNOR = "PrivateDnsNameOptionsResponse" +_ISIA = "InstanceSecondaryInterfaceAttachment" +_ISIPIA = "InstanceSecondaryInterfacePrivateIpAddress" +_ISIPIAL = "InstanceSecondaryInterfacePrivateIpAddressList" +_SIIe = "SecondaryInterfaceId" +_SISe = "SecondaryInterfaceStatus" +_ISIn = "InstanceSecondaryInterface" +_sIIe = "secondaryInterfaceId" +_PIASri = "PrivateIpAddressSet" +_pIASr = "privateIpAddressSet" +_ISIL = "InstanceSecondaryInterfaceList" +_iLn = "instanceLifecycle" +_EGAl = "ElasticGpuAssociations" +_EGASl = "ElasticGpuAssociationSet" +_eGASl = "elasticGpuAssociationSet" +_EIAAla = "ElasticInferenceAcceleratorAssociations" +_EIAASl = "ElasticInferenceAcceleratorAssociationSet" +_eIAASl = "elasticInferenceAcceleratorAssociationSet" +_Lic = "Licenses" +_UOUT = "UsageOperationUpdateTime" +_uOUT = "usageOperationUpdateTime" +_CIBM = "CurrentInstanceBootMode" +_cIBM = "currentInstanceBootMode" +_ALI = "AmiLaunchIndex" +_aLI = "amiLaunchIndex" +_ILns = "InstanceList" +_Rese = "Reservation" +_rIes = "reservationId" +_RLe = "ReservationList" +_DIOesc = "DescribeInstancesOutput" +_cDIRomamazo = "com.amazonaws.ec2#DescribeInstancesResult" +_Reser = "Reservations" +_RSese = "ReservationSet" +_rSese = "reservationSet" +_DIescr = "DescribeInstances" +_DISHSRMRI = "DescribeInstanceSqlHaStatesRequestMaxResultsInteger" +_DISHHSI = "DescribeInstanceSqlHaHistoryStatesInput" +_cDISHHSR = "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesRequest" +_HSa = "HaStatus" +_proc = "processing" +_stand = "standby" +_SSLU = "SqlServerLicenseUsage" +_ful = "full" +_wai = "waived" +_RIeg = "RegisteredInstance" +_sSLU = "sqlServerLicenseUsage" +_hSa = "haStatus" +_PSro = "ProcessingStatus" +_pSro = "processingStatus" +_SSC = "SqlServerCredentials" +_sSC = "sqlServerCredentials" +_RILeg = "RegisteredInstanceList" +_DISHHSO = "DescribeInstanceSqlHaHistoryStatesOutput" +_cDISHHSRo = "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesResult" +_DISHHS = "DescribeInstanceSqlHaHistoryStates" +_DISHSI = "DescribeInstanceSqlHaStatesInput" +_cDISHSR = "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequest" +_DISHSO = "DescribeInstanceSqlHaStatesOutput" +_cDISHSRo = "com.amazonaws.ec2#DescribeInstanceSqlHaStatesResult" +_DISHS = "DescribeInstanceSqlHaStates" +_DISIe = "DescribeInstanceStatusInput" +_cDISRom = "com.amazonaws.ec2#DescribeInstanceStatusRequest" +_IAI = "IncludeAllInstances" +_iAI = "includeAllInstances" +_SSum = "SummaryStatus" +_na______ = "not_applicable" +_ASSp = "ApplicationStatusSummary" +_ISmp = "ImpairedSince" +_iSmp = "impairedSince" +_SNt = "StatusName" +_reac = "reachability" +_STtat = "StatusType" +_ESD = "EbsStatusDetails" +_ESDL = "EbsStatusDetailsList" +_ESSb = "EbsStatusSummary" +_detai = "details" +_ECv = "EventCode" +_ir__ = "instance_reboot" +_ir___ = "instance-reboot" +_sr = "system_reboot" +_sr_ = "system-reboot" +_sm__ = "system_maintenance" +_sm___ = "system-maintenance" +_ir____ = "instance_retirement" +_ir_____ = "instance-retirement" +_is____ = "instance_stop" +_is_____ = "instance-stop" +_IEI = "InstanceEventId" +_ISEn = "InstanceStatusEvent" +_iEI = "instanceEventId" +_NB = "NotBefore" +_nB = "notBefore" +_NBD = "NotBeforeDeadline" +_nBD = "notBeforeDeadline" +_ISEL = "InstanceStatusEventList" +_ISD = "InstanceStatusDetails" +_ISDL = "InstanceStatusDetailsList" +_ISSn = "InstanceStatusSummary" +_PSSe = "PerformanceStatusSummary" +_Rem = "Remediation" +_rem = "remediation" +_ISnstan = "InstanceStatus" +_Ev = "Events" +_ESv = "EventsSet" +_eSv = "eventsSet" +_iSnsta = "instanceStatus" +_SSy = "SystemStatus" +_sSy = "systemStatus" +_AES = "AttachedEbsStatus" +_aES = "attachedEbsStatus" +_PSerf = "PerformanceStatus" +_pSerf = "performanceStatus" +_ISLn = "InstanceStatusList" +_DISOe = "DescribeInstanceStatusOutput" +_cDISRoma = "com.amazonaws.ec2#DescribeInstanceStatusResult" +_ISnstanc = "InstanceStatuses" +_ISSns = "InstanceStatusSet" +_iSS = "instanceStatusSet" +_DISe = "DescribeInstanceStatus" +_DITGNS = "DescribeInstanceTopologyGroupNameSet" +_DITIIS = "DescribeInstanceTopologyInstanceIdSet" +_DITMR = "DescribeInstanceTopologyMaxResults" +_DITI = "DescribeInstanceTopologyInput" +_cDITR = "com.amazonaws.ec2#DescribeInstanceTopologyRequest" +_GNr = "GroupNames" +_NNL = "NetworkNodesList" +_ITnstan = "InstanceTopology" +_DITO = "DescribeInstanceTopologyOutput" +_cDITRo = "com.amazonaws.ec2#DescribeInstanceTopologyResult" +_DIT = "DescribeInstanceTopology" +_LTo = "LocationType" +_az = "availability_zone" +_az_ = "availability-zone" +_azi = "availability_zone_id" +_azi_ = "availability-zone-id" +_out = "outpost" +_DITOMR = "DITOMaxResults" +_DITOI = "DescribeInstanceTypeOfferingsInput" +_cDITOR = "com.amazonaws.ec2#DescribeInstanceTypeOfferingsRequest" +_ITO = "InstanceTypeOffering" +_lTo = "locationType" +_loca = "location" +_ITOL = "InstanceTypeOfferingsList" +_DITOO = "DescribeInstanceTypeOfferingsOutput" +_cDITORo = "com.amazonaws.ec2#DescribeInstanceTypeOfferingsResult" +_ITOn = "InstanceTypeOfferings" +_ITOS = "InstanceTypeOfferingSet" +_iTOS = "instanceTypeOfferingSet" +_DITOe = "DescribeInstanceTypeOfferings" +_IUIR = "IncludeUnsupportedInRegion" +_RITL = "RequestInstanceTypeList" +_DITMRa = "DITMaxResults" +_DITIe = "DescribeInstanceTypesInput" +_cDITRom = "com.amazonaws.ec2#DescribeInstanceTypesRequest" +_ARF = "AutoRecoveryFlag" +_BMF = "BareMetalFlag" +_BPFu = "BurstablePerformanceFlag" +_CGF = "CurrentGenerationFlag" +_DHF = "DedicatedHostFlag" +_ALT = "AttachmentLimitType" +_SHARED = "SHARED" +_sh = "shared" +_DEDICATED = "DEDICATED" +_BBIM = "BaselineBandwidthInMbps" +_BIa = "BaselineIops" +_BTIMB = "BaselineThroughputInMBps" +_MBIM = "MaximumBandwidthInMbps" +_MI = "MaximumIops" +_MTIMB = "MaximumThroughputInMBps" +_ECIb = "EbsCardInfo" +_bBIM = "baselineBandwidthInMbps" +_bTIMB = "baselineThroughputInMBps" +_bIa = "baselineIops" +_mBIM = "maximumBandwidthInMbps" +_mTIMB = "maximumThroughputInMBps" +_mI = "maximumIops" +_ECIL = "EbsCardInfoList" +_EOI = "EbsOptimizedInfo" +_EOS = "EbsOptimizedSupport" +_supp = "supported" +_EES = "EbsEncryptionSupport" +_MEA = "MaximumEbsAttachments" +_MEC = "MaximumEbsCards" +_ENS = "EbsNvmeSupport" +_SUPPORTED = "SUPPORTED" +_EIb = "EbsInfo" +_eOS = "ebsOptimizedSupport" +_eOI = "ebsOptimizedInfo" +_NSv = "NvmeSupport" +_nSv = "nvmeSupport" +_mEA = "maximumEbsAttachments" +_aLT = "attachmentLimitType" +_mEC = "maximumEbsCards" +_ECb = "EbsCards" +_ECS = "EbsCardSet" +_eCS = "ebsCardSet" +_FDC = "FpgaDeviceCount" +_FDMN = "FpgaDeviceManufacturerName" +_FDMS = "FpgaDeviceMemorySize" +_FDMI = "FpgaDeviceMemoryInfo" +_SIMB = "SizeInMiB" +_sIMB = "sizeInMiB" +_FDNp = "FpgaDeviceName" +_FDI = "FpgaDeviceInfo" +_Manu = "Manufacturer" +_manu = "manufacturer" +_MIe = "MemoryInfo" +_mIe = "memoryInfo" +_FDIL = "FpgaDeviceInfoList" +_tFM = "totalFpgaMemory" +_FIpga = "FpgaInfo" +_Fp = "Fpgas" +_fpg = "fpgas" +_TFMIMB = "TotalFpgaMemoryInMiB" +_tFMIMB = "totalFpgaMemoryInMiB" +_FTEF = "FreeTierEligibleFlag" +_GDC = "GpuDeviceCount" +_GPS = "GpuPartitionSize" +_LGC = "LogicalGpuCount" +_GDMN = "GpuDeviceManufacturerName" +_GDMS = "GpuDeviceMemorySize" +_GDMI = "GpuDeviceMemoryInfo" +_GDN = "GpuDeviceName" +_Wo = "Workload" +_WL = "WorkloadsList" +_GDI = "GpuDeviceInfo" +_lGC = "logicalGpuCount" +_gPS = "gpuPartitionSize" +_Wor = "Workloads" +_WSo = "WorkloadSet" +_wS = "workloadSet" +_GDIL = "GpuDeviceInfoList" +_tGM = "totalGpuMemory" +_GIp = "GpuInfo" +_Gp = "Gpus" +_gpu = "gpus" +_TGMIMB = "TotalGpuMemoryInMiB" +_tGMIMB = "totalGpuMemoryInMiB" +_HF = "HibernationFlag" +_ITH = "InstanceTypeHypervisor" +_NITRO = "NITRO" +_nit = "nitro" +_XEN = "XEN" +_IDC = "InferenceDeviceCount" +_IDMN = "InferenceDeviceManufacturerName" +_IDMS = "InferenceDeviceMemorySize" +_IDMI = "InferenceDeviceMemoryInfo" +_IDN = "InferenceDeviceName" +_IDI = "InferenceDeviceInfo" +_IDIL = "InferenceDeviceInfoList" +_tIM = "totalInferenceMemory" +_IAIn = "InferenceAcceleratorInfo" +_Acce = "Accelerators" +_accel = "accelerators" +_TIMIMB = "TotalInferenceMemoryInMiB" +_tIMIMB = "totalInferenceMemoryInMiB" +_DCisk = "DiskCount" +_DSi = "DiskSize" +_DTisk = "DiskType" +_DIis = "DiskInfo" +_SIGB = "SizeInGB" +_sIGB = "sizeInGB" +_DIL = "DiskInfoList" +_ISES = "InstanceStorageEncryptionSupport" +_ENSp = "EphemeralNvmeSupport" +_ISIns = "InstanceStorageInfo" +_TSIGB = "TotalSizeInGB" +_tSIGB = "totalSizeInGB" +_Disk = "Disks" +_disk = "disks" +_ISF = "InstanceStorageFlag" +_MDC = "MediaDeviceCount" +_MDMN = "MediaDeviceManufacturerName" +_MDMS = "MediaDeviceMemorySize" +_MDMI = "MediaDeviceMemoryInfo" +_MDN = "MediaDeviceName" +_MDI = "MediaDeviceInfo" +_MDIL = "MediaDeviceInfoList" +_TMM = "TotalMediaMemory" +_MAIe = "MediaAcceleratorInfo" +_TMMIMB = "TotalMediaMemoryInMiB" +_tMMIMB = "totalMediaMemoryInMiB" +_MSem = "MemorySize" +_BWT = "BandwidthWeightingType" +_BWTL = "BandwidthWeightingTypeList" +_DTET = "DefaultTcpEstablishedTimeout" +_DUST = "DefaultUdpStreamTimeout" +_DUT = "DefaultUdpTimeout" +_DCTC = "DefaultConnectionTrackingConfiguration" +_dTET = "defaultTcpEstablishedTimeout" +_dUT = "defaultUdpTimeout" +_dUST = "defaultUdpStreamTimeout" +_DNCI = "DefaultNetworkCardIndex" +_MEI = "MaximumEfaInterfaces" +_EIf = "EfaInfo" +_mEI = "maximumEfaInterfaces" +_ESF = "EfaSupportedFlag" +_ESSn = "EnaSrdSupported" +_EITSn = "EncryptionInTransitSupported" +_FEQS = "FlexibleEnaQueuesSupport" +_MIAPI = "MaxIpv4AddrPerInterface" +_IAPSI = "Ipv4AddressesPerSecondaryInterface" +_MIAPIa = "MaxIpv6AddrPerInterface" +_IFp = "Ipv6Flag" +_MNC = "MaximumNetworkCards" +_MNI = "MaxNetworkInterfaces" +_MSNI = "MaximumSecondaryNetworkInterfaces" +_BBIG = "BaselineBandwidthInGbps" +_DEQCPI = "DefaultEnaQueueCountPerInterface" +_NCIT = "NetworkCardInterfaceType" +_NCITL = "NetworkCardInterfaceTypeList" +_MEQC = "MaximumEnaQueueCount" +_MEQCPI = "MaximumEnaQueueCountPerInterface" +_NPe = "NetworkPerformance" +_PBIG = "PeakBandwidthInGbps" +_NCIe = "NetworkCardInfo" +_nPe = "networkPerformance" +_MNIa = "MaximumNetworkInterfaces" +_mNI = "maximumNetworkInterfaces" +_aFNI = "additionalFlexibleNetworkInterfaces" +_bBIG = "baselineBandwidthInGbps" +_pBIG = "peakBandwidthInGbps" +_dEQCPI = "defaultEnaQueueCountPerInterface" +_mEQC = "maximumEnaQueueCount" +_mEQCPI = "maximumEnaQueueCountPerInterface" +_ITnter = "InterfaceTypes" +_ITSnt = "InterfaceTypeSet" +_iTSn = "interfaceTypeSet" +_NCIL = "NetworkCardInfoList" +_SNSF = "SecondaryNetworkSupportedFlag" +_NIetw = "NetworkInfo" +_mNC = "maximumNetworkCards" +_dNCI = "defaultNetworkCardIndex" +_NC = "NetworkCards" +_nC = "networkCards" +_IAPI = "Ipv4AddressesPerInterface" +_iAPI = "ipv4AddressesPerInterface" +_IAPIp = "Ipv6AddressesPerInterface" +_iAPIp = "ipv6AddressesPerInterface" +_ISpv = "Ipv6Supported" +_iSpv = "ipv6Supported" +_ESf = "EfaSupported" +_eSf = "efaSupported" +_eIf = "efaInfo" +_eITSn = "encryptionInTransitSupported" +_eSSn = "enaSrdSupported" +_BWa = "BandwidthWeightings" +_bWa = "bandwidthWeightings" +_fEQS = "flexibleEnaQueuesSupport" +_SNSe = "SecondaryNetworkSupported" +_sNSe = "secondaryNetworkSupported" +_mSNI = "maximumSecondaryNetworkInterfaces" +_iAPSI = "ipv4AddressesPerSecondaryInterface" +_NDCC = "NeuronDeviceCoreCount" +_NDCV = "NeuronDeviceCoreVersion" +_NDCI = "NeuronDeviceCoreInfo" +_NDCe = "NeuronDeviceCount" +_NDMS = "NeuronDeviceMemorySize" +_NDMI = "NeuronDeviceMemoryInfo" +_NDN = "NeuronDeviceName" +_NDI = "NeuronDeviceInfo" +_CIor = "CoreInfo" +_cIor = "coreInfo" +_NDIL = "NeuronDeviceInfoList" +_TNM = "TotalNeuronMemory" +_NIeu = "NeuronInfo" +_NDe = "NeuronDevices" +_nDe = "neuronDevices" +_TNDMIMB = "TotalNeuronDeviceMemoryInMiB" +_tNDMIMB = "totalNeuronDeviceMemoryInMiB" +_NES = "NitroEnclavesSupport" +_NTSVT = "NitroTpmSupportedVersionType" +_NTSVL = "NitroTpmSupportedVersionsList" +_NTI = "NitroTpmInfo" +_SVu = "SupportedVersions" +_sVu = "supportedVersions" +_NTS = "NitroTpmSupport" +_PSh = "PhcSupport" +_PGSl = "PlacementGroupStrategy" +_PGSL = "PlacementGroupStrategyList" +_PGIl = "PlacementGroupInfo" +_SSup = "SupportedStrategies" +_sSup = "supportedStrategies" +_CMN = "CpuManufacturerName" +_ATr = "ArchitectureType" +_ATLr = "ArchitectureTypeList" +_SAPF = "SupportedAdditionalProcessorFeature" +_ASS_ = "AMD_SEV_SNP" +_ass_ = "amd-sev-snp" +_NV_ = "NESTED_VIRTUALIZATION" +_nv = "nested-virtualization" +_SAPFL = "SupportedAdditionalProcessorFeatureList" +_PSCS = "ProcessorSustainedClockSpeed" +_PIro = "ProcessorInfo" +_SAup = "SupportedArchitectures" +_sAu = "supportedArchitectures" +_SCSIG = "SustainedClockSpeedInGhz" +_sCSIG = "sustainedClockSpeedInGhz" +_SF = "SupportedFeatures" +_sF = "supportedFeatures" +_RMS = "RebootMigrationSupport" +_BMT = "BootModeType" +_BMTL = "BootModeTypeList" +_SIRu = "SupportedInRegion" +_RDTL = "RootDeviceTypeList" +_UCT = "UsageClassType" +_UCTL = "UsageClassTypeList" +_VTLi = "VirtualizationTypeList" +_CCL = "CoreCountList" +_TPCL = "ThreadsPerCoreList" +_VCIpu = "VCpuInfo" +_DVCef = "DefaultVCpus" +_dVC = "defaultVCpus" +_DCe = "DefaultCores" +_dCe = "defaultCores" +_DTPC = "DefaultThreadsPerCore" +_dTPC = "defaultThreadsPerCore" +_VCa = "ValidCores" +_vCa = "validCores" +_VTPC = "ValidThreadsPerCore" +_vTPC = "validThreadsPerCore" +_ITIns = "InstanceTypeInfo" +_CGur = "CurrentGeneration" +_cGu = "currentGeneration" +_SUC = "SupportedUsageClasses" +_sUC = "supportedUsageClasses" +_SRDT = "SupportedRootDeviceTypes" +_sRDT = "supportedRootDeviceTypes" +_SVT = "SupportedVirtualizationTypes" +_sVT = "supportedVirtualizationTypes" +_pIro = "processorInfo" +_vCIpu = "vCpuInfo" +_ISSnst = "InstanceStorageSupported" +_iSSn = "instanceStorageSupported" +_iSIn = "instanceStorageInfo" +_eIb = "ebsInfo" +_nIet = "networkInfo" +_gIp = "gpuInfo" +_fIp = "fpgaInfo" +_pGIl = "placementGroupInfo" +_iAIn = "inferenceAcceleratorInfo" +_HSi = "HibernationSupported" +_hSi = "hibernationSupported" +_BPS = "BurstablePerformanceSupported" +_bPS = "burstablePerformanceSupported" +_DHS = "DedicatedHostsSupported" +_dHS = "dedicatedHostsSupported" +_ARSut = "AutoRecoverySupported" +_aRS = "autoRecoverySupported" +_SBM = "SupportedBootModes" +_sBM = "supportedBootModes" +_nES = "nitroEnclavesSupport" +_nTS = "nitroTpmSupport" +_nTI = "nitroTpmInfo" +_mAIe = "mediaAcceleratorInfo" +_nIeu = "neuronInfo" +_pSh = "phcSupport" +_rMS = "rebootMigrationSupport" +_sIRu = "supportedInRegion" +_ITILn = "InstanceTypeInfoList" +_DITOes = "DescribeInstanceTypesOutput" +_cDITRoma = "com.amazonaws.ec2#DescribeInstanceTypesResult" +_ITSns = "InstanceTypeSet" +_iTSns = "instanceTypeSet" +_DITe = "DescribeInstanceTypes" +_IGIL = "InternetGatewayIdList" +_DIGMR = "DescribeInternetGatewaysMaxResults" +_DIGIe = "DescribeInternetGatewaysInput" +_cDIGRo = "com.amazonaws.ec2#DescribeInternetGatewaysRequest" +_IGIn = "InternetGatewayIds" +_IGL = "InternetGatewayList" +_DIGOe = "DescribeInternetGatewaysOutput" +_cDIGRom = "com.amazonaws.ec2#DescribeInternetGatewaysResult" +_IGnt = "InternetGateways" +_IGSn = "InternetGatewaySet" +_iGSn = "internetGatewaySet" +_DIGe = "DescribeInternetGateways" +_DIBMR = "DescribeIpamByoasnMaxResults" +_DIBIe = "DescribeIpamByoasnInput" +_cDIBRom = "com.amazonaws.ec2#DescribeIpamByoasnRequest" +_BSy = "ByoasnSet" +_DIBOe = "DescribeIpamByoasnOutput" +_cDIBRoma = "com.amazonaws.ec2#DescribeIpamByoasnResult" +_Byo = "Byoasns" +_bSy = "byoasnSet" +_DIBe = "DescribeIpamByoasn" +_IMRp = "IpamMaxResults" +_DIERVTIe = "DescribeIpamExternalResourceVerificationTokensInput" +_cDIERVTRom = "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensRequest" +_IERVTIp = "IpamExternalResourceVerificationTokenIds" +_IERVTSp = "IpamExternalResourceVerificationTokenSet" +_DIERVTOe = "DescribeIpamExternalResourceVerificationTokensOutput" +_cDIERVTRoma = "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensResult" +_IERVTp = "IpamExternalResourceVerificationTokens" +_iERVTS = "ipamExternalResourceVerificationTokenSet" +_DIERVTe = "DescribeIpamExternalResourceVerificationTokens" +_DIIRAIe = "DescribeIpamInternetRegistryAssociationsInput" +_cDIIRARom = "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsRequest" +_IIRAIp = "IpamInternetRegistryAssociationIds" +_IIRASp = "IpamInternetRegistryAssociationSet" +_DIIRAOe = "DescribeIpamInternetRegistryAssociationsOutput" +_cDIIRARoma = "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsResult" +_IIRAp = "IpamInternetRegistryAssociations" +_iIRAS = "ipamInternetRegistryAssociationSet" +_DIIRAe = "DescribeIpamInternetRegistryAssociations" +_DIPIes = "DescribeIpamPoliciesInput" +_cDIPRomam = "com.amazonaws.ec2#DescribeIpamPoliciesRequest" +_IPIpa = "IpamPolicyIds" +_IPSpam = "IpamPolicySet" +_DIPOes = "DescribeIpamPoliciesOutput" +_cDIPRomama = "com.amazonaws.ec2#DescribeIpamPoliciesResult" +_IPpamo = "IpamPolicies" +_iPSpa = "ipamPolicySet" +_DIPes = "DescribeIpamPolicies" +_DIPAMR = "DescribeIpamPoolAllocationsMaxResults" +_DIPAI = "DescribeIpamPoolAllocationsInput" +_cDIPAR = "com.amazonaws.ec2#DescribeIpamPoolAllocationsRequest" +_IPAIp = "IpamPoolAllocationIds" +_IPASp = "IpamPoolAllocationSet" +_DIPAO = "DescribeIpamPoolAllocationsOutput" +_cDIPARo = "com.amazonaws.ec2#DescribeIpamPoolAllocationsResult" +_IPApam = "IpamPoolAllocations" +_iPAS = "ipamPoolAllocationSet" +_DIPA = "DescribeIpamPoolAllocations" +_DIPIesc = "DescribeIpamPoolsInput" +_cDIPRomamaz = "com.amazonaws.ec2#DescribeIpamPoolsRequest" +_IPIpam = "IpamPoolIds" +_IPSpamo = "IpamPoolSet" +_DIPOesc = "DescribeIpamPoolsOutput" +_cDIPRomamazo = "com.amazonaws.ec2#DescribeIpamPoolsResult" +_IPpamoo = "IpamPools" +_iPSpam = "ipamPoolSet" +_DIPesc = "DescribeIpamPools" +_DIPLRIe = "DescribeIpamPrefixListResolversInput" +_cDIPLRRom = "com.amazonaws.ec2#DescribeIpamPrefixListResolversRequest" +_IPLRIp = "IpamPrefixListResolverIds" +_IPLRSp = "IpamPrefixListResolverSet" +_DIPLROe = "DescribeIpamPrefixListResolversOutput" +_cDIPLRRoma = "com.amazonaws.ec2#DescribeIpamPrefixListResolversResult" +_IPLRpa = "IpamPrefixListResolvers" +_iPLRS = "ipamPrefixListResolverSet" +_DIPLRe = "DescribeIpamPrefixListResolvers" +_DIPLRTIe = "DescribeIpamPrefixListResolverTargetsInput" +_cDIPLRTRom = "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsRequest" +_IPLRTIp = "IpamPrefixListResolverTargetIds" +_IPLRTSp = "IpamPrefixListResolverTargetSet" +_DIPLRTOe = "DescribeIpamPrefixListResolverTargetsOutput" +_cDIPLRTRoma = "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsResult" +_IPLRTp = "IpamPrefixListResolverTargets" +_iPLRTS = "ipamPrefixListResolverTargetSet" +_DIPLRTe = "DescribeIpamPrefixListResolverTargets" +_DIRDIe = "DescribeIpamResourceDiscoveriesInput" +_cDIRDRom = "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesRequest" +_IRDIp = "IpamResourceDiscoveryIds" +_IRDSp = "IpamResourceDiscoverySet" +_DIRDOe = "DescribeIpamResourceDiscoveriesOutput" +_cDIRDRoma = "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesResult" +_IRDp = "IpamResourceDiscoveries" +_iRDS = "ipamResourceDiscoverySet" +_DIRDe = "DescribeIpamResourceDiscoveries" +_DIRDAI = "DescribeIpamResourceDiscoveryAssociationsInput" +_cDIRDAR = "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsRequest" +_IRDAIp = "IpamResourceDiscoveryAssociationIds" +_IRDASp = "IpamResourceDiscoveryAssociationSet" +_DIRDAO = "DescribeIpamResourceDiscoveryAssociationsOutput" +_cDIRDARo = "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsResult" +_IRDApa = "IpamResourceDiscoveryAssociations" +_iRDAS = "ipamResourceDiscoveryAssociationSet" +_DIRDA = "DescribeIpamResourceDiscoveryAssociations" +_DIIescr = "DescribeIpamsInput" +_cDIRomamazon = "com.amazonaws.ec2#DescribeIpamsRequest" +_IIpa = "IpamIds" +_ISpame = "IpamSet" +_DIOescr = "DescribeIpamsOutput" +_cDIRomamazona = "com.amazonaws.ec2#DescribeIpamsResult" +_Ipam = "Ipams" +_iSpam = "ipamSet" +_DIescri = "DescribeIpams" +_DISIes = "DescribeIpamScopesInput" +_cDISRomam = "com.amazonaws.ec2#DescribeIpamScopesRequest" +_ISIp = "IpamScopeIds" +_ISSp = "IpamScopeSet" +_DISOes = "DescribeIpamScopesOutput" +_cDISRomama = "com.amazonaws.ec2#DescribeIpamScopesResult" +_ISpamc = "IpamScopes" +_iSSp = "ipamScopeSet" +_DISes = "DescribeIpamScopes" +_IPMR = "Ipv6PoolMaxResults" +_IPIL = "Ipv6PoolIdList" +_DIPIescr = "DescribeIpv6PoolsInput" +_cDIPRomamazon = "com.amazonaws.ec2#DescribeIpv6PoolsRequest" +_PCB = "PoolCidrBlock" +_pCB = "poolCidrBlock" +_PCBS = "PoolCidrBlocksSet" +_PCBo = "PoolCidrBlocks" +_PCBSo = "PoolCidrBlockSet" +_pCBS = "poolCidrBlockSet" +_IPSpvo = "Ipv6PoolSet" +_DIPOescr = "DescribeIpv6PoolsOutput" +_cDIPRomamazona = "com.amazonaws.ec2#DescribeIpv6PoolsResult" +_IPpvoo = "Ipv6Pools" +_iPSpv = "ipv6PoolSet" +_DIPescr = "DescribeIpv6Pools" +_KNSL = "KeyNameStringList" +_KPISL = "KeyPairIdStringList" +_DKPIe = "DescribeKeyPairsInput" +_cDKPRom = "com.amazonaws.ec2#DescribeKeyPairsRequest" +_KNe = "KeyNames" +_KPIe = "KeyPairIds" +_IPK = "IncludePublicKey" +_KPIey = "KeyPairInfo" +_kT = "keyType" +_PK = "PublicKey" +_pK = "publicKey" +_KPL = "KeyPairList" +_DKPOe = "DescribeKeyPairsOutput" +_cDKPRoma = "com.amazonaws.ec2#DescribeKeyPairsResult" +_KP = "KeyPairs" +_KSe = "KeySet" +_kSe = "keySet" +_DKPe = "DescribeKeyPairs" +_LTISL = "LaunchTemplateIdStringList" +_LTNSL = "LaunchTemplateNameStringList" +_DLTMR = "DescribeLaunchTemplatesMaxResults" +_DLTIe = "DescribeLaunchTemplatesInput" +_cDLTRom = "com.amazonaws.ec2#DescribeLaunchTemplatesRequest" +_LTIa = "LaunchTemplateIds" +_LTNa = "LaunchTemplateNames" +_LTSa = "LaunchTemplateSet" +_DLTOe = "DescribeLaunchTemplatesOutput" +_cDLTRoma = "com.amazonaws.ec2#DescribeLaunchTemplatesResult" +_LTau = "LaunchTemplates" +_lTau = "launchTemplates" +_DLTe = "DescribeLaunchTemplates" +_DLTVIe = "DescribeLaunchTemplateVersionsInput" +_cDLTVRom = "com.amazonaws.ec2#DescribeLaunchTemplateVersionsRequest" +_MV = "MinVersion" +_MVa = "MaxVersion" +_LTVS = "LaunchTemplateVersionSet" +_DLTVOe = "DescribeLaunchTemplateVersionsOutput" +_cDLTVRoma = "com.amazonaws.ec2#DescribeLaunchTemplateVersionsResult" +_LTVa = "LaunchTemplateVersions" +_lTVS = "launchTemplateVersionSet" +_DLTVe = "DescribeLaunchTemplateVersions" +_LGRTIS = "LocalGatewayRouteTableIdSet" +_LGMR = "LocalGatewayMaxResults" +_DLGRTIe = "DescribeLocalGatewayRouteTablesInput" +_cDLGRTRom = "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesRequest" +_LGRTIo = "LocalGatewayRouteTableIds" +_LGRTS = "LocalGatewayRouteTableSet" +_DLGRTOe = "DescribeLocalGatewayRouteTablesOutput" +_cDLGRTRoma = "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesResult" +_LGRToc = "LocalGatewayRouteTables" +_lGRTS = "localGatewayRouteTableSet" +_DLGRTe = "DescribeLocalGatewayRouteTables" +_LGRTVIGAIS = "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet" +_DLGRTVIGAIe = "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput" +_cDLGRTVIGARom = "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest" +_LGRTVIGAIo = "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds" +_LGRTVIGAS = "LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet" +_DLGRTVIGAOe = "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput" +_cDLGRTVIGARoma = "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult" +_LGRTVIGAo = "LocalGatewayRouteTableVirtualInterfaceGroupAssociations" +_lGRTVIGAS = "localGatewayRouteTableVirtualInterfaceGroupAssociationSet" +_DLGRTVIGAe = "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations" +_LGRTVAIS = "LocalGatewayRouteTableVpcAssociationIdSet" +_DLGRTVAIe = "DescribeLocalGatewayRouteTableVpcAssociationsInput" +_cDLGRTVARom = "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsRequest" +_LGRTVAIo = "LocalGatewayRouteTableVpcAssociationIds" +_LGRTVAS = "LocalGatewayRouteTableVpcAssociationSet" +_DLGRTVAOe = "DescribeLocalGatewayRouteTableVpcAssociationsOutput" +_cDLGRTVARoma = "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsResult" +_LGRTVAo = "LocalGatewayRouteTableVpcAssociations" +_lGRTVAS = "localGatewayRouteTableVpcAssociationSet" +_DLGRTVAe = "DescribeLocalGatewayRouteTableVpcAssociations" +_LGIS = "LocalGatewayIdSet" +_DLGI = "DescribeLocalGatewaysInput" +_cDLGR = "com.amazonaws.ec2#DescribeLocalGatewaysRequest" +_LGIo = "LocalGatewayIds" +_LG = "LocalGateway" +_LGS = "LocalGatewaySet" +_DLGO = "DescribeLocalGatewaysOutput" +_cDLGRo = "com.amazonaws.ec2#DescribeLocalGatewaysResult" +_LGo = "LocalGateways" +_lGS = "localGatewaySet" +_DLG = "DescribeLocalGateways" +_LGVIGIS = "LocalGatewayVirtualInterfaceGroupIdSet" +_DLGVIGIe = "DescribeLocalGatewayVirtualInterfaceGroupsInput" +_cDLGVIGRom = "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsRequest" +_LGVIGIo = "LocalGatewayVirtualInterfaceGroupIds" +_LGVIGS = "LocalGatewayVirtualInterfaceGroupSet" +_DLGVIGOe = "DescribeLocalGatewayVirtualInterfaceGroupsOutput" +_cDLGVIGRoma = "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsResult" +_LGVIGo = "LocalGatewayVirtualInterfaceGroups" +_lGVIGS = "localGatewayVirtualInterfaceGroupSet" +_DLGVIGe = "DescribeLocalGatewayVirtualInterfaceGroups" +_DLGVIIe = "DescribeLocalGatewayVirtualInterfacesInput" +_cDLGVIRom = "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesRequest" +_LGVIS = "LocalGatewayVirtualInterfaceSet" +_DLGVIOe = "DescribeLocalGatewayVirtualInterfacesOutput" +_cDLGVIRoma = "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesResult" +_LGVIo = "LocalGatewayVirtualInterfaces" +_lGVIS = "localGatewayVirtualInterfaceSet" +_DLGVIe = "DescribeLocalGatewayVirtualInterfaces" +_DLSMR = "DescribeLockedSnapshotsMaxResults" +_SISL = "SnapshotIdStringList" +_DLSI = "DescribeLockedSnapshotsInput" +_cDLSR = "com.amazonaws.ec2#DescribeLockedSnapshotsRequest" +_SInap = "SnapshotIds" +_COPRH = "CoolOffPeriodResponseHours" +_RPRD = "RetentionPeriodResponseDays" +_LSoc = "LockState" +_compli = "compliance" +_go = "governance" +_cc___ = "compliance_cooloff" +_cc____ = "compliance-cooloff" +_LSI = "LockedSnapshotsInfo" +_lSoc = "lockState" +_LDo = "LockDuration" +_lDo = "lockDuration" +_COPo = "CoolOffPeriod" +_cOPo = "coolOffPeriod" +_COPEO = "CoolOffPeriodExpiresOn" +_cOPEO = "coolOffPeriodExpiresOn" +_LCO = "LockCreatedOn" +_lCO = "lockCreatedOn" +_LDST = "LockDurationStartTime" +_lDST = "lockDurationStartTime" +_LEO = "LockExpiresOn" +_lEO = "lockExpiresOn" +_LSIL = "LockedSnapshotsInfoList" +_DLSO = "DescribeLockedSnapshotsOutput" +_cDLSRo = "com.amazonaws.ec2#DescribeLockedSnapshotsResult" +_DLSe = "DescribeLockedSnapshots" +_DMHRMR = "DescribeMacHostsRequestMaxResults" +_DMHI = "DescribeMacHostsInput" +_cDMHR = "com.amazonaws.ec2#DescribeMacHostsRequest" +_MOSVSL = "MacOSVersionStringList" +_MH = "MacHost" +_MOSLSV = "MacOSLatestSupportedVersions" +_MOSLSVS = "MacOSLatestSupportedVersionSet" +_mOSLSVS = "macOSLatestSupportedVersionSet" +_MHL = "MacHostList" +_DMHO = "DescribeMacHostsOutput" +_cDMHRo = "com.amazonaws.ec2#DescribeMacHostsResult" +_MHa = "MacHosts" +_MHS = "MacHostSet" +_mHS = "macHostSet" +_DMH = "DescribeMacHosts" +_MMTIL = "MacModificationTaskIdList" +_DMMTMR = "DescribeMacModificationTasksMaxResults" +_DMMTI = "DescribeMacModificationTasksInput" +_cDMMTR = "com.amazonaws.ec2#DescribeMacModificationTasksRequest" +_MMTIa = "MacModificationTaskIds" +_MMTL = "MacModificationTaskList" +_DMMTO = "DescribeMacModificationTasksOutput" +_cDMMTRo = "com.amazonaws.ec2#DescribeMacModificationTasksResult" +_MMTa = "MacModificationTasks" +_MMTSa = "MacModificationTaskSet" +_mMTS = "macModificationTaskSet" +_DMMT = "DescribeMacModificationTasks" +_PLMR = "PrefixListMaxResults" +_DMPLIe = "DescribeManagedPrefixListsInput" +_cDMPLRom = "com.amazonaws.ec2#DescribeManagedPrefixListsRequest" +_MPLS = "ManagedPrefixListSet" +_DMPLOe = "DescribeManagedPrefixListsOutput" +_cDMPLRoma = "com.amazonaws.ec2#DescribeManagedPrefixListsResult" +_PLre = "PrefixLists" +_PLSr = "PrefixListSet" +_pLSr = "prefixListSet" +_DMPLe = "DescribeManagedPrefixLists" +_DMAMR = "DescribeMovingAddressesMaxResults" +_DMAI = "DescribeMovingAddressesInput" +_cDMAR = "com.amazonaws.ec2#DescribeMovingAddressesRequest" +_MSov = "MoveStatus" +_mTV = "movingToVpc" +_rTC = "restoringToClassic" +_MAS = "MovingAddressStatus" +_mSo = "moveStatus" +_MASS = "MovingAddressStatusSet" +_DMAO = "DescribeMovingAddressesOutput" +_cDMARo = "com.amazonaws.ec2#DescribeMovingAddressesResult" +_MASo = "MovingAddressStatuses" +_mASS = "movingAddressStatusSet" +_DMA = "DescribeMovingAddresses" +_DNGMR = "DescribeNatGatewaysMaxResults" +_NGISL = "NatGatewayIdStringList" +_DNGIe = "DescribeNatGatewaysInput" +_cDNGRom = "com.amazonaws.ec2#DescribeNatGatewaysRequest" +_NGIa = "NatGatewayIds" +_NGL = "NatGatewayList" +_DNGOe = "DescribeNatGatewaysOutput" +_cDNGRoma = "com.amazonaws.ec2#DescribeNatGatewaysResult" +_NGa = "NatGateways" +_NGSa = "NatGatewaySet" +_nGS = "natGatewaySet" +_DNGe = "DescribeNatGateways" +_DNAMR = "DescribeNetworkAclsMaxResults" +_NAISL = "NetworkAclIdStringList" +_DNAIe = "DescribeNetworkAclsInput" +_cDNARo = "com.amazonaws.ec2#DescribeNetworkAclsRequest" +_NAIe = "NetworkAclIds" +_NAL = "NetworkAclList" +_DNAOe = "DescribeNetworkAclsOutput" +_cDNARom = "com.amazonaws.ec2#DescribeNetworkAclsResult" +_NAet = "NetworkAcls" +_NAS = "NetworkAclSet" +_nAS = "networkAclSet" +_DNAe = "DescribeNetworkAcls" +_NIMR = "NetworkInsightsMaxResults" +_NIASAIL = "NetworkInsightsAccessScopeAnalysisIdList" +_DNIASAIe = "DescribeNetworkInsightsAccessScopeAnalysesInput" +_cDNIASARom = "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesRequest" +_NIASAIe = "NetworkInsightsAccessScopeAnalysisIds" +_ASTB = "AnalysisStartTimeBegin" +_ASTE = "AnalysisStartTimeEnd" +_FFi = "FindingsFound" +_true = "true" +_fal = "false" +_unk = "unknown" +_ASn = "AnalysisStatus" +_NIASAe = "NetworkInsightsAccessScopeAnalysis" +_NIASAA = "NetworkInsightsAccessScopeAnalysisArn" +_nIASAA = "networkInsightsAccessScopeAnalysisArn" +_WM = "WarningMessage" +_wM = "warningMessage" +_fFi = "findingsFound" +_AEC = "AnalyzedEniCount" +_aEC = "analyzedEniCount" +_NIASAL = "NetworkInsightsAccessScopeAnalysisList" +_DNIASAOe = "DescribeNetworkInsightsAccessScopeAnalysesOutput" +_cDNIASARoma = "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesResult" +_NIASAet = "NetworkInsightsAccessScopeAnalyses" +_NIASAS = "NetworkInsightsAccessScopeAnalysisSet" +_nIASAS = "networkInsightsAccessScopeAnalysisSet" +_DNIASAe = "DescribeNetworkInsightsAccessScopeAnalyses" +_NIASIL = "NetworkInsightsAccessScopeIdList" +_DNIASIe = "DescribeNetworkInsightsAccessScopesInput" +_cDNIASRom = "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesRequest" +_NIASIe = "NetworkInsightsAccessScopeIds" +_NIASL = "NetworkInsightsAccessScopeList" +_DNIASOe = "DescribeNetworkInsightsAccessScopesOutput" +_cDNIASRoma = "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesResult" +_NIASe = "NetworkInsightsAccessScopes" +_NIASS = "NetworkInsightsAccessScopeSet" +_nIASS = "networkInsightsAccessScopeSet" +_DNIASe = "DescribeNetworkInsightsAccessScopes" +_NIAIL = "NetworkInsightsAnalysisIdList" +_DNIAIe = "DescribeNetworkInsightsAnalysesInput" +_cDNIARom = "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesRequest" +_NIAIe = "NetworkInsightsAnalysisIds" +_AST = "AnalysisStartTime" +_AET = "AnalysisEndTime" +_ALr = "ArnList" +_NIAet = "NetworkInsightsAnalysis" +_NIAA = "NetworkInsightsAnalysisArn" +_nIAA = "networkInsightsAnalysisArn" +_AAdd = "AdditionalAccounts" +_AASd = "AdditionalAccountSet" +_aASd = "additionalAccountSet" +_FIAi = "FilterInArns" +_FIAS = "FilterInArnSet" +_fIAS = "filterInArnSet" +_FOA = "FilterOutArns" +_FOAS = "FilterOutArnSet" +_fOAS = "filterOutArnSet" +_NPF = "NetworkPathFound" +_nPF = "networkPathFound" +_FPC = "ForwardPathComponents" +_FPCS = "ForwardPathComponentSet" +_fPCS = "forwardPathComponentSet" +_RPC = "ReturnPathComponents" +_RPCS = "ReturnPathComponentSet" +_rPCS = "returnPathComponentSet" +_APHlt = "AlternatePathHints" +_APHS = "AlternatePathHintSet" +_aPHS = "alternatePathHintSet" +_SAug = "SuggestedAccounts" +_SASu = "SuggestedAccountSet" +_sASu = "suggestedAccountSet" +_NIAL = "NetworkInsightsAnalysisList" +_DNIAOe = "DescribeNetworkInsightsAnalysesOutput" +_cDNIARoma = "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesResult" +_NIAetw = "NetworkInsightsAnalyses" +_NIASet = "NetworkInsightsAnalysisSet" +_nIASe = "networkInsightsAnalysisSet" +_DNIAe = "DescribeNetworkInsightsAnalyses" +_NIPIL = "NetworkInsightsPathIdList" +_DNIPIes = "DescribeNetworkInsightsPathsInput" +_cDNIPRomam = "com.amazonaws.ec2#DescribeNetworkInsightsPathsRequest" +_NIPIet = "NetworkInsightsPathIds" +_NIPL = "NetworkInsightsPathList" +_DNIPOes = "DescribeNetworkInsightsPathsOutput" +_cDNIPRomama = "com.amazonaws.ec2#DescribeNetworkInsightsPathsResult" +_NIPet = "NetworkInsightsPaths" +_NIPSe = "NetworkInsightsPathSet" +_nIPS = "networkInsightsPathSet" +_DNIPes = "DescribeNetworkInsightsPaths" +_NIAetwo = "NetworkInterfaceAttribute" +_DNIAIes = "DescribeNetworkInterfaceAttributeInput" +_cDNIARomam = "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeRequest" +_DNIAOes = "DescribeNetworkInterfaceAttributeOutput" +_cDNIARomama = "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeResult" +_DNIAes = "DescribeNetworkInterfaceAttribute" +_DNIPMR = "DescribeNetworkInterfacePermissionsMaxResults" +_NIPILe = "NetworkInterfacePermissionIdList" +_DNIPIesc = "DescribeNetworkInterfacePermissionsInput" +_cDNIPRomamaz = "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsRequest" +_NIPIetw = "NetworkInterfacePermissionIds" +_NIPLe = "NetworkInterfacePermissionList" +_DNIPOesc = "DescribeNetworkInterfacePermissionsOutput" +_cDNIPRomamazo = "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsResult" +_NIPetw = "NetworkInterfacePermissions" +_nIPe = "networkInterfacePermissions" +_DNIPesc = "DescribeNetworkInterfacePermissions" +_DNIMR = "DescribeNetworkInterfacesMaxResults" +_NIIL = "NetworkInterfaceIdList" +_DNIIes = "DescribeNetworkInterfacesInput" +_cDNIRo = "com.amazonaws.ec2#DescribeNetworkInterfacesRequest" +_NIL = "NetworkInterfaceList" +_DNIOe = "DescribeNetworkInterfacesOutput" +_cDNIRom = "com.amazonaws.ec2#DescribeNetworkInterfacesResult" +_DNIe = "DescribeNetworkInterfaces" +_OLMR = "OutpostLagMaxResults" +_OLIS = "OutpostLagIdSet" +_DOLI = "DescribeOutpostLagsInput" +_cDOLR = "com.amazonaws.ec2#DescribeOutpostLagsRequest" +_OLIu = "OutpostLagIds" +_SLVII = "ServiceLinkVirtualInterfaceId" +_SLVIIS = "ServiceLinkVirtualInterfaceIdSet" +_OL = "OutpostLag" +_SLVIIe = "ServiceLinkVirtualInterfaceIds" +_sLVIIS = "serviceLinkVirtualInterfaceIdSet" +_OLS = "OutpostLagSet" +_DOLO = "DescribeOutpostLagsOutput" +_cDOLRo = "com.amazonaws.ec2#DescribeOutpostLagsResult" +_OLu = "OutpostLags" +_oLS = "outpostLagSet" +_DOLe = "DescribeOutpostLags" +_PGISL = "PlacementGroupIdStringList" +_PGSLl = "PlacementGroupStringList" +_DPGIe = "DescribePlacementGroupsInput" +_cDPGRo = "com.amazonaws.ec2#DescribePlacementGroupsRequest" +_GIrou = "GroupIds" +_PGL = "PlacementGroupList" +_DPGOe = "DescribePlacementGroupsOutput" +_cDPGRom = "com.amazonaws.ec2#DescribePlacementGroupsResult" +_PGl = "PlacementGroups" +_PGSla = "PlacementGroupSet" +_pGS = "placementGroupSet" +_DPGe = "DescribePlacementGroups" +_PLRISL = "PrefixListResourceIdStringList" +_DPLIe = "DescribePrefixListsInput" +_cDPLR = "com.amazonaws.ec2#DescribePrefixListsRequest" +_DPLO = "DescribePrefixListsOutput" +_cDPLRo = "com.amazonaws.ec2#DescribePrefixListsResult" +_DPLes = "DescribePrefixLists" +_DPIFMR = "DescribePrincipalIdFormatMaxResults" +_RLes = "ResourceList" +_DPIFI = "DescribePrincipalIdFormatInput" +_cDPIFR = "com.amazonaws.ec2#DescribePrincipalIdFormatRequest" +_PIF = "PrincipalIdFormat" +_PIFL = "PrincipalIdFormatList" +_DPIFO = "DescribePrincipalIdFormatOutput" +_cDPIFRo = "com.amazonaws.ec2#DescribePrincipalIdFormatResult" +_Prin = "Principals" +_PSrin = "PrincipalSet" +_pSrin = "principalSet" +_DPIF = "DescribePrincipalIdFormat" +_PMR = "PoolMaxResults" +_PIPISL = "PublicIpv4PoolIdStringList" +_DPIPIe = "DescribePublicIpv4PoolsInput" +_cDPIPRom = "com.amazonaws.ec2#DescribePublicIpv4PoolsRequest" +_PIPR = "PublicIpv4PoolRange" +_FAi = "FirstAddress" +_fAi = "firstAddress" +_LAa = "LastAddress" +_lAa = "lastAddress" +_ACd = "AddressCount" +_aCd = "addressCount" +_AAC = "AvailableAddressCount" +_aAC = "availableAddressCount" +_PIPRS = "PublicIpv4PoolRangeSet" +_PAR = "PoolAddressRanges" +_PARS = "PoolAddressRangeSet" +_pARS = "poolAddressRangeSet" +_TACo = "TotalAddressCount" +_tACo = "totalAddressCount" +_TAAC = "TotalAvailableAddressCount" +_tAAC = "totalAvailableAddressCount" +_PIPS = "PublicIpv4PoolSet" +_DPIPOe = "DescribePublicIpv4PoolsOutput" +_cDPIPRoma = "com.amazonaws.ec2#DescribePublicIpv4PoolsResult" +_PIPu = "PublicIpv4Pools" +_pIPS = "publicIpv4PoolSet" +_DPIPe = "DescribePublicIpv4Pools" +_RNSL = "RegionNameStringList" +_DRIe = "DescribeRegionsInput" +_cDRRo = "com.amazonaws.ec2#DescribeRegionsRequest" +_RNeg = "RegionNames" +_ARlle = "AllRegions" +_RG = "RegionGeography" +_RGL = "RegionGeographyList" +_Endp = "Endpoint" +_REeg = "RegionEndpoint" +_rEeg = "regionEndpoint" +_RLeg = "RegionList" +_DROe = "DescribeRegionsOutput" +_cDRRom = "com.amazonaws.ec2#DescribeRegionsResult" +_Reg = "Regions" +_RIegi = "RegionInfo" +_rIeg = "regionInfo" +_DRes = "DescribeRegions" +_DRRVTMR = "DescribeReplaceRootVolumeTasksMaxResults" +_RRVTIe = "ReplaceRootVolumeTaskIds" +_DRRVTI = "DescribeReplaceRootVolumeTasksInput" +_cDRRVTR = "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksRequest" +_RRVTe = "ReplaceRootVolumeTasks" +_DRRVTO = "DescribeReplaceRootVolumeTasksOutput" +_cDRRVTRo = "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksResult" +_RRVTSe = "ReplaceRootVolumeTaskSet" +_rRVTS = "replaceRootVolumeTaskSet" +_DRRVT = "DescribeReplaceRootVolumeTasks" +_OCT = "OfferingClassType" +_STANDARD = "STANDARD" +_CONVERTIBLE = "CONVERTIBLE" +_conv = "convertible" +_OTV = "OfferingTypeValues" +_HU = "Heavy_Utilization" +_HU_ = "Heavy Utilization" +_MU = "Medium_Utilization" +_MU_ = "Medium Utilization" +_LU_ = "Light_Utilization" +_LU__ = "Light Utilization" +_NU_ = "No_Upfront" +_NU__ = "No Upfront" +_PU__ = "Partial_Upfront" +_PU___ = "Partial Upfront" +_AU_ = "All_Upfront" +_AU__ = "All Upfront" +_RIISL = "ReservedInstancesIdStringList" +_DRII = "DescribeReservedInstancesInput" +_cDRIR = "com.amazonaws.ec2#DescribeReservedInstancesRequest" +_OC = "OfferingClass" +_OTf = "OfferingType" +_oTf = "offeringType" +_Flo = "Float" +_RIPD = "RIProductDescription" +_LU___ = "Linux_UNIX" +_LUAV = "Linux_UNIX_Amazon_VPC_" +_LV = "Linux/UNIX (Amazon VPC)" +_WAV = "Windows_Amazon_VPC_" +_WV = "Windows (Amazon VPC)" +_RCF = "RecurringChargeFrequency" +_Hou = "Hourly" +_RCec = "RecurringCharge" +_Am = "Amount" +_amo = "amount" +_Fr = "Frequency" +_freq = "frequency" +_RCL = "RecurringChargesList" +_AZ_ = "AVAILABILITY_ZONE" +_AZ__ = "Availability Zone" +_RIS = "ReservedInstanceState" +_que = "queued" +_qd = "queued_deleted" +_qd_ = "queued-deleted" +_RIese = "ReservedInstances" +_oC = "offeringClass" +_RCecu = "RecurringCharges" +_rCe = "recurringCharges" +_UPs = "UsagePrice" +_uPs = "usagePrice" +_FPix = "FixedPrice" +_fPix = "fixedPrice" +_PDr = "ProductDescription" +_pDr = "productDescription" +_RILese = "ReservedInstancesList" +_DRIO = "DescribeReservedInstancesOutput" +_cDRIRo = "com.amazonaws.ec2#DescribeReservedInstancesResult" +_RISe = "ReservedInstancesSet" +_rIS = "reservedInstancesSet" +_DRIes = "DescribeReservedInstances" +_DRILI = "DescribeReservedInstancesListingsInput" +_cDRILR = "com.amazonaws.ec2#DescribeReservedInstancesListingsRequest" +_DRILO = "DescribeReservedInstancesListingsOutput" +_cDRILRo = "com.amazonaws.ec2#DescribeReservedInstancesListingsResult" +_DRIL = "DescribeReservedInstancesListings" +_RIMI = "ReservedInstancesModificationId" +_RIMISL = "ReservedInstancesModificationIdStringList" +_DRIMI = "DescribeReservedInstancesModificationsInput" +_cDRIMR = "com.amazonaws.ec2#DescribeReservedInstancesModificationsRequest" +_RIMIe = "ReservedInstancesModificationIds" +_RIC = "ReservedInstancesConfiguration" +_RIMR = "ReservedInstancesModificationResult" +_tCa = "targetConfiguration" +_RIMRL = "ReservedInstancesModificationResultList" +_RIIeser = "ReservedIntancesIds" +_RIM = "ReservedInstancesModification" +_EDf = "EffectiveDate" +_eDf = "effectiveDate" +_MRo = "ModificationResults" +_MRS = "ModificationResultSet" +_mRS = "modificationResultSet" +_rIMI = "reservedInstancesModificationId" +_RIML = "ReservedInstancesModificationList" +_DRIMO = "DescribeReservedInstancesModificationsOutput" +_cDRIMRo = "com.amazonaws.ec2#DescribeReservedInstancesModificationsResult" +_RIMe = "ReservedInstancesModifications" +_RIMS = "ReservedInstancesModificationsSet" +_rIMS = "reservedInstancesModificationsSet" +_DRIM = "DescribeReservedInstancesModifications" +_RIOISL = "ReservedInstancesOfferingIdStringList" +_DRIOI = "DescribeReservedInstancesOfferingsInput" +_cDRIOR = "com.amazonaws.ec2#DescribeReservedInstancesOfferingsRequest" +_IMn = "IncludeMarketplace" +_MIC = "MaxInstanceCount" +_RIOIe = "ReservedInstancesOfferingIds" +_PDri = "PricingDetail" +_PDL = "PricingDetailsList" +_RIO = "ReservedInstancesOffering" +_Mar = "Marketplace" +_PDric = "PricingDetails" +_PDS = "PricingDetailsSet" +_pDS = "pricingDetailsSet" +_rIOI = "reservedInstancesOfferingId" +_RIOL = "ReservedInstancesOfferingList" +_DRIOO = "DescribeReservedInstancesOfferingsOutput" +_cDRIORo = "com.amazonaws.ec2#DescribeReservedInstancesOfferingsResult" +_RIOe = "ReservedInstancesOfferings" +_RIOS = "ReservedInstancesOfferingsSet" +_rIOS = "reservedInstancesOfferingsSet" +_DRIOe = "DescribeReservedInstancesOfferings" +_RSMR = "RouteServerMaxResults" +_RSEIL = "RouteServerEndpointIdsList" +_DRSEIe = "DescribeRouteServerEndpointsInput" +_cDRSERom = "com.amazonaws.ec2#DescribeRouteServerEndpointsRequest" +_RSEIo = "RouteServerEndpointIds" +_RSEL = "RouteServerEndpointsList" +_DRSEOe = "DescribeRouteServerEndpointsOutput" +_cDRSERoma = "com.amazonaws.ec2#DescribeRouteServerEndpointsResult" +_RSEo = "RouteServerEndpoints" +_RSESo = "RouteServerEndpointSet" +_rSES = "routeServerEndpointSet" +_DRSEe = "DescribeRouteServerEndpoints" +_RSPIL = "RouteServerPeerIdsList" +_DRSPIe = "DescribeRouteServerPeersInput" +_cDRSPRom = "com.amazonaws.ec2#DescribeRouteServerPeersRequest" +_RSPIo = "RouteServerPeerIds" +_RSPL = "RouteServerPeersList" +_DRSPOe = "DescribeRouteServerPeersOutput" +_cDRSPRoma = "com.amazonaws.ec2#DescribeRouteServerPeersResult" +_RSPo = "RouteServerPeers" +_RSPSo = "RouteServerPeerSet" +_rSPS = "routeServerPeerSet" +_DRSPe = "DescribeRouteServerPeers" +_RSIL = "RouteServerIdsList" +_DRSIe = "DescribeRouteServersInput" +_cDRSRom = "com.amazonaws.ec2#DescribeRouteServersRequest" +_RSIo = "RouteServerIds" +_RSL = "RouteServersList" +_DRSOe = "DescribeRouteServersOutput" +_cDRSRoma = "com.amazonaws.ec2#DescribeRouteServersResult" +_RSoute = "RouteServers" +_RSSo = "RouteServerSet" +_rSS = "routeServerSet" +_DRSe = "DescribeRouteServers" +_DRTMR = "DescribeRouteTablesMaxResults" +_RTISL = "RouteTableIdStringList" +_DRTIe = "DescribeRouteTablesInput" +_cDRTRo = "com.amazonaws.ec2#DescribeRouteTablesRequest" +_RTLo = "RouteTableList" +_DRTOe = "DescribeRouteTablesOutput" +_cDRTRom = "com.amazonaws.ec2#DescribeRouteTablesResult" +_RTou = "RouteTables" +_RTSo = "RouteTableSet" +_rTSo = "routeTableSet" +_DRTe = "DescribeRouteTables" +_SDTRR = "SlotDateTimeRangeRequest" +_ETa = "EarliestTime" +_LTat = "LatestTime" +_DSIAMR = "DescribeScheduledInstanceAvailabilityMaxResults" +_ODRS = "OccurrenceDayRequestSet" +_ODc = "OccurenceDay" +_SIRR = "ScheduledInstanceRecurrenceRequest" +_ODcc = "OccurrenceDays" +_ODccu = "OccurrenceDay" +_ORTE = "OccurrenceRelativeToEnd" +_OUc = "OccurrenceUnit" +_DSIAI = "DescribeScheduledInstanceAvailabilityInput" +_cDSIAR = "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityRequest" +_FSSTR = "FirstSlotStartTimeRange" +_MSDIH = "MaxSlotDurationInHours" +_MSDIHi = "MinSlotDurationInHours" +_Rec = "Recurrence" +_ODS = "OccurrenceDaySet" +_SIRc = "ScheduledInstanceRecurrence" +_oDS = "occurrenceDaySet" +_oRTE = "occurrenceRelativeToEnd" +_oU = "occurrenceUnit" +_SIA = "ScheduledInstanceAvailability" +_FSST = "FirstSlotStartTime" +_fSST = "firstSlotStartTime" +_MTDID = "MaxTermDurationInDays" +_mTDID = "maxTermDurationInDays" +_MTDIDi = "MinTermDurationInDays" +_mTDIDi = "minTermDurationInDays" +_NPet = "NetworkPlatform" +_nPet = "networkPlatform" +_PTu = "PurchaseToken" +_pTu = "purchaseToken" +_recu = "recurrence" +_SDIH = "SlotDurationInHours" +_sDIH = "slotDurationInHours" +_TSIH = "TotalScheduledInstanceHours" +_tSIH = "totalScheduledInstanceHours" +_SIAS = "ScheduledInstanceAvailabilitySet" +_DSIAO = "DescribeScheduledInstanceAvailabilityOutput" +_cDSIARo = "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityResult" +_sIAS = "scheduledInstanceAvailabilitySet" +_DSIA = "DescribeScheduledInstanceAvailability" +_SIIc = "ScheduledInstanceId" +_SIIRS = "ScheduledInstanceIdRequestSet" +_SSTRR = "SlotStartTimeRangeRequest" +_DSII = "DescribeScheduledInstancesInput" +_cDSIR = "com.amazonaws.ec2#DescribeScheduledInstancesRequest" +_SIIch = "ScheduledInstanceIds" +_SSTR = "SlotStartTimeRange" +_SIc = "ScheduledInstance" +_NSST = "NextSlotStartTime" +_nSST = "nextSlotStartTime" +_PSET = "PreviousSlotEndTime" +_pSET = "previousSlotEndTime" +_sIIc = "scheduledInstanceId" +_TED = "TermEndDate" +_tED = "termEndDate" +_TSD = "TermStartDate" +_tSD = "termStartDate" +_SISc = "ScheduledInstanceSet" +_DSIO = "DescribeScheduledInstancesOutput" +_cDSIRo = "com.amazonaws.ec2#DescribeScheduledInstancesResult" +_sISc = "scheduledInstanceSet" +_DSIes = "DescribeScheduledInstances" +_DSIMR = "DescribeSecondaryInterfacesMaxResults" +_SIIL = "SecondaryInterfaceIdList" +_DSIIe = "DescribeSecondaryInterfacesInput" +_cDSIRom = "com.amazonaws.ec2#DescribeSecondaryInterfacesRequest" +_SIIec = "SecondaryInterfaceIds" +_SIAe = "SecondaryInterfaceAttachment" +_SIIA = "SecondaryInterfaceIpv4Address" +_SIIAL = "SecondaryInterfaceIpv4AddressList" +_PIAriv = "PrivateIpv4Addresses" +_PIASriv = "PrivateIpv4AddressSet" +_pIASri = "privateIpv4AddressSet" +_SIAec = "SecondaryInterfaceArn" +_sIA = "secondaryInterfaceArn" +_sITe = "secondaryInterfaceType" +_SIL = "SecondaryInterfaceList" +_DSIOe = "DescribeSecondaryInterfacesOutput" +_cDSIRoma = "com.amazonaws.ec2#DescribeSecondaryInterfacesResult" +_DSIesc = "DescribeSecondaryInterfaces" +_DSNMR = "DescribeSecondaryNetworksMaxResults" +_SNIL = "SecondaryNetworkIdList" +_DSNIe = "DescribeSecondaryNetworksInput" +_cDSNRom = "com.amazonaws.ec2#DescribeSecondaryNetworksRequest" +_SNIe = "SecondaryNetworkIds" +_SNL = "SecondaryNetworkList" +_DSNOe = "DescribeSecondaryNetworksOutput" +_cDSNRoma = "com.amazonaws.ec2#DescribeSecondaryNetworksResult" +_SNeco = "SecondaryNetworks" +_SNSec = "SecondaryNetworkSet" +_sNSec = "secondaryNetworkSet" +_DSNe = "DescribeSecondaryNetworks" +_DSSMR = "DescribeSecondarySubnetsMaxResults" +_SSIL = "SecondarySubnetIdList" +_DSSIe = "DescribeSecondarySubnetsInput" +_cDSSRom = "com.amazonaws.ec2#DescribeSecondarySubnetsRequest" +_SSIec = "SecondarySubnetIds" +_SSL = "SecondarySubnetList" +_DSSOe = "DescribeSecondarySubnetsOutput" +_cDSSRoma = "com.amazonaws.ec2#DescribeSecondarySubnetsResult" +_SSec = "SecondarySubnets" +_SSSe = "SecondarySubnetSet" +_sSSe = "secondarySubnetSet" +_DSSes = "DescribeSecondarySubnets" +_DSGRI = "DescribeSecurityGroupReferencesInput" +_cDSGRR = "com.amazonaws.ec2#DescribeSecurityGroupReferencesRequest" +_SGRec = "SecurityGroupReference" +_RVIe = "ReferencingVpcId" +_rVIe = "referencingVpcId" +_SGRecu = "SecurityGroupReferences" +_DSGRO = "DescribeSecurityGroupReferencesOutput" +_cDSGRRo = "com.amazonaws.ec2#DescribeSecurityGroupReferencesResult" +_SGRSec = "SecurityGroupReferenceSet" +_sGRSec = "securityGroupReferenceSet" +_DSGR = "DescribeSecurityGroupReferences" +_DSGRMR = "DescribeSecurityGroupRulesMaxResults" +_SGRIL = "SecurityGroupRuleIdList" +_DSGRIe = "DescribeSecurityGroupRulesInput" +_cDSGRRom = "com.amazonaws.ec2#DescribeSecurityGroupRulesRequest" +_SGRIe = "SecurityGroupRuleIds" +_DSGROe = "DescribeSecurityGroupRulesOutput" +_cDSGRRoma = "com.amazonaws.ec2#DescribeSecurityGroupRulesResult" +_DSGRe = "DescribeSecurityGroupRules" +_GNSL = "GroupNameStringList" +_DSGMR = "DescribeSecurityGroupsMaxResults" +_DSGIe = "DescribeSecurityGroupsInput" +_cDSGRom = "com.amazonaws.ec2#DescribeSecurityGroupsRequest" +_IPE = "IpPermissionsEgress" +_iPE = "ipPermissionsEgress" +_gD = "groupDescription" +_SGL = "SecurityGroupList" +_DSGOe = "DescribeSecurityGroupsOutput" +_cDSGRoma = "com.amazonaws.ec2#DescribeSecurityGroupsResult" +_SGIecu = "SecurityGroupInfo" +_sGIec = "securityGroupInfo" +_DSGe = "DescribeSecurityGroups" +_DSGVAMR = "DescribeSecurityGroupVpcAssociationsMaxResults" +_DSGVAI = "DescribeSecurityGroupVpcAssociationsInput" +_cDSGVAR = "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsRequest" +_SGVA = "SecurityGroupVpcAssociation" +_SGVAL = "SecurityGroupVpcAssociationList" +_DSGVAO = "DescribeSecurityGroupVpcAssociationsOutput" +_cDSGVARo = "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsResult" +_SGVAe = "SecurityGroupVpcAssociations" +_SGVASe = "SecurityGroupVpcAssociationSet" +_sGVAS = "securityGroupVpcAssociationSet" +_DSGVA = "DescribeSecurityGroupVpcAssociations" +_SLMR = "ServiceLinkMaxResults" +_DSLVII = "DescribeServiceLinkVirtualInterfacesInput" +_cDSLVIR = "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesRequest" +_SLVICS = "ServiceLinkVirtualInterfaceConfigurationState" +_SLVI = "ServiceLinkVirtualInterface" +_sLVII = "serviceLinkVirtualInterfaceId" +_SLVIA = "ServiceLinkVirtualInterfaceArn" +_sLVIA = "serviceLinkVirtualInterfaceArn" +_OIu = "OutpostId" +_oIu = "outpostId" +_SLVIS = "ServiceLinkVirtualInterfaceSet" +_DSLVIO = "DescribeServiceLinkVirtualInterfacesOutput" +_cDSLVIRo = "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesResult" +_SLVIe = "ServiceLinkVirtualInterfaces" +_sLVIS = "serviceLinkVirtualInterfaceSet" +_DSLVI = "DescribeServiceLinkVirtualInterfaces" +_SAN = "SnapshotAttributeName" +_cVP = "createVolumePermission" +_DSAI = "DescribeSnapshotAttributeInput" +_cDSAR = "com.amazonaws.ec2#DescribeSnapshotAttributeRequest" +_CVP = "CreateVolumePermission" +_CVPL = "CreateVolumePermissionList" +_DSAO = "DescribeSnapshotAttributeOutput" +_cDSARo = "com.amazonaws.ec2#DescribeSnapshotAttributeResult" +_CVPr = "CreateVolumePermissions" +_DSAe = "DescribeSnapshotAttribute" +_RBSL = "RestorableByStringList" +_DSIescr = "DescribeSnapshotsInput" +_cDSRom = "com.amazonaws.ec2#DescribeSnapshotsRequest" +_OIwn = "OwnerIds" +_RBUI = "RestorableByUserIds" +_RBe = "RestorableBy" +_Sna = "Snapshot" +_SLna = "SnapshotList" +_DSOes = "DescribeSnapshotsOutput" +_cDSRoma = "com.amazonaws.ec2#DescribeSnapshotsResult" +_DSes = "DescribeSnapshots" +_DSTSMR = "DescribeSnapshotTierStatusMaxResults" +_DSTSI = "DescribeSnapshotTierStatusInput" +_cDSTSR = "com.amazonaws.ec2#DescribeSnapshotTierStatusRequest" +_TOSi = "TieringOperationStatus" +_aip_ = "archival_in_progress" +_aip__ = "archival-in-progress" +_ac__ = "archival_completed" +_ac___ = "archival-completed" +_af____ = "archival_failed" +_af_____ = "archival-failed" +_trip = "temporary_restore_in_progress" +_trip_ = "temporary-restore-in-progress" +_trc = "temporary_restore_completed" +_trc_ = "temporary-restore-completed" +_trf = "temporary_restore_failed" +_trf_ = "temporary-restore-failed" +_prip = "permanent_restore_in_progress" +_prip_ = "permanent-restore-in-progress" +_prc = "permanent_restore_completed" +_prc_ = "permanent-restore-completed" +_prf = "permanent_restore_failed" +_prf_ = "permanent-restore-failed" +_STSn = "SnapshotTierStatus" +_LTST = "LastTieringStartTime" +_lTST = "lastTieringStartTime" +_LTPa = "LastTieringProgress" +_lTP = "lastTieringProgress" +_LTOS = "LastTieringOperationStatus" +_lTOS = "lastTieringOperationStatus" +_LTOSD = "LastTieringOperationStatusDetail" +_lTOSD = "lastTieringOperationStatusDetail" +_ACT = "ArchivalCompleteTime" +_aCT = "archivalCompleteTime" +_sTSS = "snapshotTierStatusSet" +_DSTSO = "DescribeSnapshotTierStatusOutput" +_cDSTSRo = "com.amazonaws.ec2#DescribeSnapshotTierStatusResult" +_STSna = "SnapshotTierStatuses" +_STSS = "SnapshotTierStatusSet" +_DSTS = "DescribeSnapshotTierStatus" +_DSDSIe = "DescribeSpotDatafeedSubscriptionInput" +_cDSDSRo = "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionRequest" +_DSDSOe = "DescribeSpotDatafeedSubscriptionOutput" +_cDSDSRom = "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionResult" +_DSDSe = "DescribeSpotDatafeedSubscription" +_DSFIMR = "DescribeSpotFleetInstancesMaxResults" +_DSFII = "DescribeSpotFleetInstancesInput" +_cDSFIR = "com.amazonaws.ec2#DescribeSpotFleetInstancesRequest" +_DSFIO = "DescribeSpotFleetInstancesOutput" +_cDSFIRo = "com.amazonaws.ec2#DescribeSpotFleetInstancesResponse" +_DSFI = "DescribeSpotFleetInstances" +_iCns = "instanceChange" +_BC_ = "BATCH_CHANGE" +_fRC = "fleetRequestChange" +_INFORMATION = "INFORMATION" +_DSFRHMR = "DescribeSpotFleetRequestHistoryMaxResults" +_DSFRHI = "DescribeSpotFleetRequestHistoryInput" +_cDSFRHR = "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryRequest" +_HRis = "HistoryRecord" +_DSFRHO = "DescribeSpotFleetRequestHistoryOutput" +_cDSFRHRo = "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryResponse" +_DSFRH = "DescribeSpotFleetRequestHistory" +_DSFRI = "DescribeSpotFleetRequestsInput" +_cDSFRR = "com.amazonaws.ec2#DescribeSpotFleetRequestsRequest" +_nTo = "noTermination" +_SFM = "SpotFleetMonitoring" +_INISL = "InstanceNetworkInterfaceSpecificationList" +_SPp = "SpotPlacement" +_SFTS = "SpotFleetTagSpecification" +_SFTSL = "SpotFleetTagSpecificationList" +_SFLS = "SpotFleetLaunchSpecification" +_ATddr = "AddressingType" +_aTdd = "addressingType" +_SPpo = "SpotPrice" +_sPp = "spotPrice" +_LSLa = "LaunchSpecsList" +_LTO = "LaunchTemplateOverrides" +_LTOL = "LaunchTemplateOverridesList" +_LTCa = "LaunchTemplateConfig" +_LTCL = "LaunchTemplateConfigList" +_CLB = "ClassicLoadBalancer" +_CLBl = "ClassicLoadBalancers" +_CLBC = "ClassicLoadBalancersConfig" +_cLB = "classicLoadBalancers" +_TGa = "TargetGroup" +_TGar = "TargetGroups" +_TGCa = "TargetGroupsConfig" +_tGa = "targetGroups" +_LBC = "LoadBalancersConfig" +_cLBC = "classicLoadBalancersConfig" +_tGCa = "targetGroupsConfig" +_ODAS = "OnDemandAllocationStrategy" +_SCRp = "SpotCapacityRebalance" +_SMS = "SpotMaintenanceStrategies" +_SFRCD = "SpotFleetRequestConfigData" +_oDAS = "onDemandAllocationStrategy" +_sMS = "spotMaintenanceStrategies" +_ODFC = "OnDemandFulfilledCapacity" +_oDFC = "onDemandFulfilledCapacity" +_IFRa = "IamFleetRole" +_iFR = "iamFleetRole" +_LSau = "LaunchSpecifications" +_lSa = "launchSpecifications" +_TCar = "TargetCapacity" +_tCar = "targetCapacity" +_ODMTP = "OnDemandMaxTotalPrice" +_oDMTP = "onDemandMaxTotalPrice" +_SMTP = "SpotMaxTotalPrice" +_sMTP = "spotMaxTotalPrice" +_lBC = "loadBalancersConfig" +_SFRC = "SpotFleetRequestConfig" +_sFRC = "spotFleetRequestConfig" +_SFRSp = "SpotFleetRequestState" +_sFRSp = "spotFleetRequestState" +_SFRCS = "SpotFleetRequestConfigSet" +_DSFRO = "DescribeSpotFleetRequestsOutput" +_cDSFRRo = "com.amazonaws.ec2#DescribeSpotFleetRequestsResponse" +_SFRCp = "SpotFleetRequestConfigs" +_sFRCS = "spotFleetRequestConfigSet" +_DSFR = "DescribeSpotFleetRequests" +_DSIRI = "DescribeSpotInstanceRequestsInput" +_cDSIRR = "com.amazonaws.ec2#DescribeSpotInstanceRequestsRequest" +_RIME = "RunInstancesMonitoringEnabled" +_LSaun = "LaunchSpecification" +_SISp = "SpotInstanceState" +_SISpo = "SpotInstanceStatus" +_SIRp = "SpotInstanceRequest" +_ABHP = "ActualBlockHourlyPrice" +_aBHP = "actualBlockHourlyPrice" +_AZGv = "AvailabilityZoneGroup" +_aZG = "availabilityZoneGroup" +_LGa = "LaunchGroup" +_lG = "launchGroup" +_lSau = "launchSpecification" +_LAZ = "LaunchedAvailabilityZone" +_lAZ = "launchedAvailabilityZone" +_LAZI = "LaunchedAvailabilityZoneId" +_lAZI = "launchedAvailabilityZoneId" +_SIRL = "SpotInstanceRequestList" +_DSIRO = "DescribeSpotInstanceRequestsOutput" +_cDSIRRo = "com.amazonaws.ec2#DescribeSpotInstanceRequestsResult" +_SIRpo = "SpotInstanceRequests" +_DSIR = "DescribeSpotInstanceRequests" +_ITLn = "InstanceTypeList" +_PDLr = "ProductDescriptionList" +_DSPHI = "DescribeSpotPriceHistoryInput" +_cDSPHR = "com.amazonaws.ec2#DescribeSpotPriceHistoryRequest" +_PDro = "ProductDescriptions" +_SPHL = "SpotPriceHistoryList" +_DSPHO = "DescribeSpotPriceHistoryOutput" +_cDSPHRo = "com.amazonaws.ec2#DescribeSpotPriceHistoryResult" +_SPH = "SpotPriceHistory" +_SPHS = "SpotPriceHistorySet" +_sPHS = "spotPriceHistorySet" +_DSPH = "DescribeSpotPriceHistory" +_DSSGMR = "DescribeStaleSecurityGroupsMaxResults" +_DSSGNT = "DescribeStaleSecurityGroupsNextToken" +_DSSGI = "DescribeStaleSecurityGroupsInput" +_cDSSGR = "com.amazonaws.ec2#DescribeStaleSecurityGroupsRequest" +_PLIS = "PrefixListIdSet" +_UIGPS = "UserIdGroupPairSet" +_SIPt = "StaleIpPermission" +_SIPS = "StaleIpPermissionSet" +_SSG = "StaleSecurityGroup" +_SIPta = "StaleIpPermissions" +_sIP = "staleIpPermissions" +_SIPE = "StaleIpPermissionsEgress" +_sIPE = "staleIpPermissionsEgress" +_SSGS = "StaleSecurityGroupSet" +_DSSGO = "DescribeStaleSecurityGroupsOutput" +_cDSSGRo = "com.amazonaws.ec2#DescribeStaleSecurityGroupsResult" +_sSGS = "staleSecurityGroupSet" +_DSSG = "DescribeStaleSecurityGroups" +_IILm = "ImageIdList" +_DSITRMR = "DescribeStoreImageTasksRequestMaxResults" +_DSITI = "DescribeStoreImageTasksInput" +_cDSITR = "com.amazonaws.ec2#DescribeStoreImageTasksRequest" +_SITR = "StoreImageTaskResult" +_AIm = "AmiId" +_aIm = "amiId" +_TST = "TaskStartTime" +_tST = "taskStartTime" +_SKo = "S3objectKey" +_sKo = "s3objectKey" +_PPr = "ProgressPercentage" +_pP = "progressPercentage" +_STSt = "StoreTaskState" +_sTSt = "storeTaskState" +_STFR = "StoreTaskFailureReason" +_sTFR = "storeTaskFailureReason" +_SITRS = "StoreImageTaskResultSet" +_DSITO = "DescribeStoreImageTasksOutput" +_cDSITRo = "com.amazonaws.ec2#DescribeStoreImageTasksResult" +_SITRt = "StoreImageTaskResults" +_sITRS = "storeImageTaskResultSet" +_DSIT = "DescribeStoreImageTasks" +_DSMR = "DescribeSubnetsMaxResults" +_SISLu = "SubnetIdStringList" +_DSIescri = "DescribeSubnetsInput" +_cDSRomam = "com.amazonaws.ec2#DescribeSubnetsRequest" +_SLub = "SubnetList" +_DSOesc = "DescribeSubnetsOutput" +_cDSRomama = "com.amazonaws.ec2#DescribeSubnetsResult" +_SSubn = "SubnetSet" +_sSub = "subnetSet" +_DSesc = "DescribeSubnets" +_DTIes = "DescribeTagsInput" +_cDTRo = "com.amazonaws.ec2#DescribeTagsRequest" +_TDa = "TagDescription" +_TDL = "TagDescriptionList" +_DTOe = "DescribeTagsOutput" +_cDTRom = "com.amazonaws.ec2#DescribeTagsResult" +_DTes = "DescribeTags" +_TMMR = "TrafficMirroringMaxResults" +_TMFRIL = "TrafficMirrorFilterRuleIdList" +_DTMFRIe = "DescribeTrafficMirrorFilterRulesInput" +_cDTMFRRom = "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesRequest" +_TMFRIr = "TrafficMirrorFilterRuleIds" +_TMFRS = "TrafficMirrorFilterRuleSet" +_DTMFROe = "DescribeTrafficMirrorFilterRulesOutput" +_cDTMFRRoma = "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesResult" +_TMFRr = "TrafficMirrorFilterRules" +_tMFRS = "trafficMirrorFilterRuleSet" +_DTMFRe = "DescribeTrafficMirrorFilterRules" +_TMFIL = "TrafficMirrorFilterIdList" +_DTMFIe = "DescribeTrafficMirrorFiltersInput" +_cDTMFRom = "com.amazonaws.ec2#DescribeTrafficMirrorFiltersRequest" +_TMFIr = "TrafficMirrorFilterIds" +_TMFS = "TrafficMirrorFilterSet" +_DTMFOe = "DescribeTrafficMirrorFiltersOutput" +_cDTMFRoma = "com.amazonaws.ec2#DescribeTrafficMirrorFiltersResult" +_TMFr = "TrafficMirrorFilters" +_tMFS = "trafficMirrorFilterSet" +_DTMFe = "DescribeTrafficMirrorFilters" +_TMSIL = "TrafficMirrorSessionIdList" +_DTMSIe = "DescribeTrafficMirrorSessionsInput" +_cDTMSRom = "com.amazonaws.ec2#DescribeTrafficMirrorSessionsRequest" +_TMSIr = "TrafficMirrorSessionIds" +_TMSS = "TrafficMirrorSessionSet" +_DTMSOe = "DescribeTrafficMirrorSessionsOutput" +_cDTMSRoma = "com.amazonaws.ec2#DescribeTrafficMirrorSessionsResult" +_TMSr = "TrafficMirrorSessions" +_tMSS = "trafficMirrorSessionSet" +_DTMSe = "DescribeTrafficMirrorSessions" +_TMTIL = "TrafficMirrorTargetIdList" +_DTMTIe = "DescribeTrafficMirrorTargetsInput" +_cDTMTRom = "com.amazonaws.ec2#DescribeTrafficMirrorTargetsRequest" +_TMTIr = "TrafficMirrorTargetIds" +_TMTS = "TrafficMirrorTargetSet" +_DTMTOe = "DescribeTrafficMirrorTargetsOutput" +_cDTMTRoma = "com.amazonaws.ec2#DescribeTrafficMirrorTargetsResult" +_TMTr = "TrafficMirrorTargets" +_tMTS = "trafficMirrorTargetSet" +_DTMTe = "DescribeTrafficMirrorTargets" +_TGMR = "TransitGatewayMaxResults" +_DTGAIe = "DescribeTransitGatewayAttachmentsInput" +_cDTGAR = "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsRequest" +_TGAIr = "TransitGatewayAttachmentIds" +_TGAA = "TransitGatewayAttachmentAssociation" +_TGANGSS = "TransitGatewayAttachmentNatGatewaySupportState" +_TGOI = "TransitGatewayOwnerId" +_tGOI = "transitGatewayOwnerId" +_NGSat = "NatGatewaySupport" +_nGSa = "natGatewaySupport" +_TGAL = "TransitGatewayAttachmentList" +_DTGAO = "DescribeTransitGatewayAttachmentsOutput" +_cDTGARo = "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsResult" +_DTGA = "DescribeTransitGatewayAttachments" +_TGCPISL = "TransitGatewayConnectPeerIdStringList" +_DTGCPIe = "DescribeTransitGatewayConnectPeersInput" +_cDTGCPRom = "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersRequest" +_TGCPIr = "TransitGatewayConnectPeerIds" +_TGCPL = "TransitGatewayConnectPeerList" +_DTGCPOe = "DescribeTransitGatewayConnectPeersOutput" +_cDTGCPRoma = "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersResult" +_TGCPr = "TransitGatewayConnectPeers" +_TGCPSr = "TransitGatewayConnectPeerSet" +_tGCPS = "transitGatewayConnectPeerSet" +_DTGCPe = "DescribeTransitGatewayConnectPeers" +_DTGCIe = "DescribeTransitGatewayConnectsInput" +_cDTGCRom = "com.amazonaws.ec2#DescribeTransitGatewayConnectsRequest" +_TGCL = "TransitGatewayConnectList" +_DTGCOe = "DescribeTransitGatewayConnectsOutput" +_cDTGCRoma = "com.amazonaws.ec2#DescribeTransitGatewayConnectsResult" +_TGCra = "TransitGatewayConnects" +_TGCS = "TransitGatewayConnectSet" +_tGCS = "transitGatewayConnectSet" +_DTGCe = "DescribeTransitGatewayConnects" +_TGMPISL = "TransitGatewayMeteringPolicyIdStringList" +_DTGMPIe = "DescribeTransitGatewayMeteringPoliciesInput" +_cDTGMPRom = "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesRequest" +_TGMPIr = "TransitGatewayMeteringPolicyIds" +_TGMPL = "TransitGatewayMeteringPolicyList" +_DTGMPOe = "DescribeTransitGatewayMeteringPoliciesOutput" +_cDTGMPRoma = "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesResult" +_TGMPr = "TransitGatewayMeteringPolicies" +_tGMPr = "transitGatewayMeteringPolicies" +_DTGMPe = "DescribeTransitGatewayMeteringPolicies" +_TGMDISL = "TransitGatewayMulticastDomainIdStringList" +_DTGMDIe = "DescribeTransitGatewayMulticastDomainsInput" +_cDTGMDRom = "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsRequest" +_TGMDIr = "TransitGatewayMulticastDomainIds" +_TGMDL = "TransitGatewayMulticastDomainList" +_DTGMDOe = "DescribeTransitGatewayMulticastDomainsOutput" +_cDTGMDRoma = "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsResult" +_TGMDr = "TransitGatewayMulticastDomains" +_tGMDr = "transitGatewayMulticastDomains" +_DTGMDe = "DescribeTransitGatewayMulticastDomains" +_DTGPAIe = "DescribeTransitGatewayPeeringAttachmentsInput" +_cDTGPARom = "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsRequest" +_TGPAL = "TransitGatewayPeeringAttachmentList" +_DTGPAOe = "DescribeTransitGatewayPeeringAttachmentsOutput" +_cDTGPARoma = "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsResult" +_TGPAr = "TransitGatewayPeeringAttachments" +_tGPAr = "transitGatewayPeeringAttachments" +_DTGPAe = "DescribeTransitGatewayPeeringAttachments" +_TGPTISL = "TransitGatewayPolicyTableIdStringList" +_DTGPTIe = "DescribeTransitGatewayPolicyTablesInput" +_cDTGPTRom = "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesRequest" +_TGPTIr = "TransitGatewayPolicyTableIds" +_TGPTL = "TransitGatewayPolicyTableList" +_DTGPTOe = "DescribeTransitGatewayPolicyTablesOutput" +_cDTGPTRoma = "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesResult" +_TGPTr = "TransitGatewayPolicyTables" +_tGPTr = "transitGatewayPolicyTables" +_DTGPTe = "DescribeTransitGatewayPolicyTables" +_TGRTAISL = "TransitGatewayRouteTableAnnouncementIdStringList" +_DTGRTAIe = "DescribeTransitGatewayRouteTableAnnouncementsInput" +_cDTGRTARom = "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsRequest" +_TGRTAIr = "TransitGatewayRouteTableAnnouncementIds" +_TGRTAL = "TransitGatewayRouteTableAnnouncementList" +_DTGRTAOe = "DescribeTransitGatewayRouteTableAnnouncementsOutput" +_cDTGRTARoma = "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsResult" +_TGRTAr = "TransitGatewayRouteTableAnnouncements" +_tGRTAr = "transitGatewayRouteTableAnnouncements" +_DTGRTAe = "DescribeTransitGatewayRouteTableAnnouncements" +_TGRTISL = "TransitGatewayRouteTableIdStringList" +_DTGRTIe = "DescribeTransitGatewayRouteTablesInput" +_cDTGRTRom = "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesRequest" +_TGRTIr = "TransitGatewayRouteTableIds" +_TGRTL = "TransitGatewayRouteTableList" +_DTGRTOe = "DescribeTransitGatewayRouteTablesOutput" +_cDTGRTRoma = "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesResult" +_TGRTra = "TransitGatewayRouteTables" +_tGRTr = "transitGatewayRouteTables" +_DTGRTe = "DescribeTransitGatewayRouteTables" +_TGISL = "TransitGatewayIdStringList" +_DTGIe = "DescribeTransitGatewaysInput" +_cDTGRom = "com.amazonaws.ec2#DescribeTransitGatewaysRequest" +_TGIr = "TransitGatewayIds" +_TGL = "TransitGatewayList" +_DTGOe = "DescribeTransitGatewaysOutput" +_cDTGRoma = "com.amazonaws.ec2#DescribeTransitGatewaysResult" +_TGra = "TransitGateways" +_TGSr = "TransitGatewaySet" +_tGS = "transitGatewaySet" +_DTGe = "DescribeTransitGateways" +_DTGVAIe = "DescribeTransitGatewayVpcAttachmentsInput" +_cDTGVARom = "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsRequest" +_TGVAL = "TransitGatewayVpcAttachmentList" +_DTGVAOe = "DescribeTransitGatewayVpcAttachmentsOutput" +_cDTGVARoma = "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsResult" +_TGVAr = "TransitGatewayVpcAttachments" +_tGVAr = "transitGatewayVpcAttachments" +_DTGVAe = "DescribeTransitGatewayVpcAttachments" +_TIAIL = "TrunkInterfaceAssociationIdList" +_DTIAMR = "DescribeTrunkInterfaceAssociationsMaxResults" +_DTIAI = "DescribeTrunkInterfaceAssociationsInput" +_cDTIAR = "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsRequest" +_TIAL = "TrunkInterfaceAssociationList" +_DTIAO = "DescribeTrunkInterfaceAssociationsOutput" +_cDTIARo = "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsResult" +_IAnt = "InterfaceAssociations" +_IASnt = "InterfaceAssociationSet" +_iASn = "interfaceAssociationSet" +_DTIA = "DescribeTrunkInterfaceAssociations" +_DVAEMR = "DescribeVerifiedAccessEndpointsMaxResults" +_VAEIL = "VerifiedAccessEndpointIdList" +_DVAEIe = "DescribeVerifiedAccessEndpointsInput" +_cDVAERom = "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsRequest" +_VAEIe = "VerifiedAccessEndpointIds" +_VAEL = "VerifiedAccessEndpointList" +_DVAEOe = "DescribeVerifiedAccessEndpointsOutput" +_cDVAERoma = "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsResult" +_VAEe = "VerifiedAccessEndpoints" +_VAESe = "VerifiedAccessEndpointSet" +_vAES = "verifiedAccessEndpointSet" +_DVAEe = "DescribeVerifiedAccessEndpoints" +_DVAGMR = "DescribeVerifiedAccessGroupMaxResults" +_VAGIL = "VerifiedAccessGroupIdList" +_DVAGIe = "DescribeVerifiedAccessGroupsInput" +_cDVAGRom = "com.amazonaws.ec2#DescribeVerifiedAccessGroupsRequest" +_VAGIe = "VerifiedAccessGroupIds" +_VAGL = "VerifiedAccessGroupList" +_DVAGOe = "DescribeVerifiedAccessGroupsOutput" +_cDVAGRoma = "com.amazonaws.ec2#DescribeVerifiedAccessGroupsResult" +_VAGe = "VerifiedAccessGroups" +_VAGS = "VerifiedAccessGroupSet" +_vAGS = "verifiedAccessGroupSet" +_DVAGe = "DescribeVerifiedAccessGroups" +_DVAILCMR = "DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults" +_VAIIL = "VerifiedAccessInstanceIdList" +_DVAILCI = "DescribeVerifiedAccessInstanceLoggingConfigurationsInput" +_cDVAILCR = ( + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsRequest" +) +_VAIIe = "VerifiedAccessInstanceIds" +_VALDSC = "VerifiedAccessLogDeliveryStatusCode" +_VALDS = "VerifiedAccessLogDeliveryStatus" +_VALCWLD = "VerifiedAccessLogCloudWatchLogsDestination" +_DSeli = "DeliveryStatus" +_dSel = "deliveryStatus" +_LGog = "LogGroup" +_lGo = "logGroup" +_VALKDFD = "VerifiedAccessLogKinesisDataFirehoseDestination" +_DSeliv = "DeliveryStream" +_dSeli = "deliveryStream" +_VALSD = "VerifiedAccessLogS3Destination" +_BN = "BucketName" +_bN = "bucketName" +_BOu = "BucketOwner" +_bOu = "bucketOwner" +_VALe = "VerifiedAccessLogs" +_CWL = "CloudWatchLogs" +_cWL = "cloudWatchLogs" +_KDF = "KinesisDataFirehose" +_kDF = "kinesisDataFirehose" +_LVo = "LogVersion" +_lV = "logVersion" +_ITCn = "IncludeTrustContext" +_iTCn = "includeTrustContext" +_VAILC = "VerifiedAccessInstanceLoggingConfiguration" +_ALc = "AccessLogs" +_aL = "accessLogs" +_VAILCL = "VerifiedAccessInstanceLoggingConfigurationList" +_DVAILCO = "DescribeVerifiedAccessInstanceLoggingConfigurationsOutput" +_cDVAILCRo = ( + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsResult" +) +_LCo = "LoggingConfigurations" +_LCS = "LoggingConfigurationSet" +_lCS = "loggingConfigurationSet" +_DVAILC = "DescribeVerifiedAccessInstanceLoggingConfigurations" +_DVAIMR = "DescribeVerifiedAccessInstancesMaxResults" +_DVAIIe = "DescribeVerifiedAccessInstancesInput" +_cDVAIRom = "com.amazonaws.ec2#DescribeVerifiedAccessInstancesRequest" +_VAIL = "VerifiedAccessInstanceList" +_DVAIOe = "DescribeVerifiedAccessInstancesOutput" +_cDVAIRoma = "com.amazonaws.ec2#DescribeVerifiedAccessInstancesResult" +_VAIe = "VerifiedAccessInstances" +_VAIS = "VerifiedAccessInstanceSet" +_vAIS = "verifiedAccessInstanceSet" +_DVAIe = "DescribeVerifiedAccessInstances" +_DVATPMR = "DescribeVerifiedAccessTrustProvidersMaxResults" +_VATPIL = "VerifiedAccessTrustProviderIdList" +_DVATPIe = "DescribeVerifiedAccessTrustProvidersInput" +_cDVATPRom = "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersRequest" +_VATPIe = "VerifiedAccessTrustProviderIds" +_VATPL = "VerifiedAccessTrustProviderList" +_DVATPOe = "DescribeVerifiedAccessTrustProvidersOutput" +_cDVATPRoma = "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersResult" +_DVATPe = "DescribeVerifiedAccessTrustProviders" +_VAN = "VolumeAttributeName" +_aEIO = "autoEnableIO" +_DVAIes = "DescribeVolumeAttributeInput" +_cDVAR = "com.amazonaws.ec2#DescribeVolumeAttributeRequest" +_DVAO = "DescribeVolumeAttributeOutput" +_cDVARo = "com.amazonaws.ec2#DescribeVolumeAttributeResult" +_AEIO = "AutoEnableIO" +_DVA = "DescribeVolumeAttribute" +_DVIes = "DescribeVolumesInput" +_cDVRom = "com.amazonaws.ec2#DescribeVolumesRequest" +_VIol = "VolumeIds" +_DVOes = "DescribeVolumesOutput" +_cDVRoma = "com.amazonaws.ec2#DescribeVolumesResult" +_DVes = "DescribeVolumes" +_DVMI = "DescribeVolumesModificationsInput" +_cDVMR = "com.amazonaws.ec2#DescribeVolumesModificationsRequest" +_VMS = "VolumeModificationState" +_VM = "VolumeModification" +_TSarg = "TargetSize" +_tSarg = "targetSize" +_TIar = "TargetIops" +_tIar = "targetIops" +_TVT = "TargetVolumeType" +_tVT = "targetVolumeType" +_TTa = "TargetThroughput" +_tTa = "targetThroughput" +_TMAE = "TargetMultiAttachEnabled" +_tMAE = "targetMultiAttachEnabled" +_OSr = "OriginalSize" +_oSr = "originalSize" +_OIr = "OriginalIops" +_oIr = "originalIops" +_OVT = "OriginalVolumeType" +_oVT = "originalVolumeType" +_OTr = "OriginalThroughput" +_oTr = "originalThroughput" +_OMAE = "OriginalMultiAttachEnabled" +_oMAE = "originalMultiAttachEnabled" +_VML = "VolumeModificationList" +_DVMO = "DescribeVolumesModificationsOutput" +_cDVMRo = "com.amazonaws.ec2#DescribeVolumesModificationsResult" +_VMo = "VolumesModifications" +_VMSo = "VolumeModificationSet" +_vMS = "volumeModificationSet" +_DVM = "DescribeVolumesModifications" +_DVSI = "DescribeVolumeStatusInput" +_cDVSR = "com.amazonaws.ec2#DescribeVolumeStatusRequest" +_VSA = "VolumeStatusAction" +_EIve = "EventId" +_eIve = "eventId" +_VSAL = "VolumeStatusActionsList" +_VSAS = "VolumeStatusAttachmentStatus" +_IPo = "IoPerformance" +_iPo = "ioPerformance" +_VSASL = "VolumeStatusAttachmentStatusList" +_VSE = "VolumeStatusEvent" +_VSEL = "VolumeStatusEventsList" +_ITni = "InitializationType" +_pr_ = "provisioned_rate" +_pr__ = "provisioned-rate" +_vc____ = "volume_copy" +_vc_____ = "volume-copy" +_ISDn = "InitializationStatusDetails" +_iTni = "initializationType" +_ETTCIS = "EstimatedTimeToCompleteInSeconds" +_eTTCIS = "estimatedTimeToCompleteInSeconds" +_VSN = "VolumeStatusName" +_ie_____ = "io_enabled" +_ie______ = "io-enabled" +_ip_________ = "io_performance" +_ip__________ = "io-performance" +_is______ = "initialization_state" +_is_______ = "initialization-state" +_VSD = "VolumeStatusDetails" +_VSDL = "VolumeStatusDetailsList" +_VSIS = "VolumeStatusInfoStatus" +_VSI = "VolumeStatusInfo" +_VSIo = "VolumeStatusItem" +_Acti = "Actions" +_ASct = "ActionsSet" +_aSct = "actionsSet" +_VSolu = "VolumeStatus" +_vSol = "volumeStatus" +_ASttac = "AttachmentStatuses" +_aStta = "attachmentStatuses" +_iSD = "initializationStatusDetails" +_VSLo = "VolumeStatusList" +_DVSO = "DescribeVolumeStatusOutput" +_cDVSRo = "com.amazonaws.ec2#DescribeVolumeStatusResult" +_VSolum = "VolumeStatuses" +_VSS = "VolumeStatusSet" +_vSS = "volumeStatusSet" +_DVS = "DescribeVolumeStatus" +_VANp = "VpcAttributeName" +_eDS = "enableDnsSupport" +_eDH = "enableDnsHostnames" +_eNAUM = "enableNetworkAddressUsageMetrics" +_DVAIesc = "DescribeVpcAttributeInput" +_cDVARom = "com.amazonaws.ec2#DescribeVpcAttributeRequest" +_DVAOe = "DescribeVpcAttributeOutput" +_cDVARoma = "com.amazonaws.ec2#DescribeVpcAttributeResult" +_EDH = "EnableDnsHostnames" +_EDS = "EnableDnsSupport" +_ENAUM = "EnableNetworkAddressUsageMetrics" +_DVAe = "DescribeVpcAttribute" +_VBPAEIL = "VpcBlockPublicAccessExclusionIdList" +_DVBPAEMR = "DescribeVpcBlockPublicAccessExclusionsMaxResults" +_DVBPAEIe = "DescribeVpcBlockPublicAccessExclusionsInput" +_cDVBPAERom = "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsRequest" +_EIxc = "ExclusionIds" +_VBPAEL = "VpcBlockPublicAccessExclusionList" +_DVBPAEOe = "DescribeVpcBlockPublicAccessExclusionsOutput" +_cDVBPAERoma = "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsResult" +_VBPAEp = "VpcBlockPublicAccessExclusions" +_VBPAESp = "VpcBlockPublicAccessExclusionSet" +_vBPAES = "vpcBlockPublicAccessExclusionSet" +_DVBPAEe = "DescribeVpcBlockPublicAccessExclusions" +_DVBPAOI = "DescribeVpcBlockPublicAccessOptionsInput" +_cDVBPAOR = "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsRequest" +_VBPAEA = "VpcBlockPublicAccessExclusionsAllowed" +_allo = "allowed" +_na_______ = "not_allowed" +_na________ = "not-allowed" +_VBPAS = "VpcBlockPublicAccessState" +_VBPAO = "VpcBlockPublicAccessOptions" +_ARw = "AwsRegion" +_aRw = "awsRegion" +_EAx = "ExclusionsAllowed" +_eAx = "exclusionsAllowed" +_DVBPAOO = "DescribeVpcBlockPublicAccessOptionsOutput" +_cDVBPAORo = "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsResult" +_vBPAO = "vpcBlockPublicAccessOptions" +_DVBPAO = "DescribeVpcBlockPublicAccessOptions" +_VCLIL = "VpcClassicLinkIdList" +_DVCLI = "DescribeVpcClassicLinkInput" +_cDVCLR = "com.amazonaws.ec2#DescribeVpcClassicLinkRequest" +_VIp = "VpcIds" +_VCL = "VpcClassicLink" +_CLE = "ClassicLinkEnabled" +_cLE = "classicLinkEnabled" +_VCLL = "VpcClassicLinkList" +_DVCLO = "DescribeVpcClassicLinkOutput" +_cDVCLRo = "com.amazonaws.ec2#DescribeVpcClassicLinkResult" +_Vpc = "Vpcs" +_VSpc = "VpcSet" +_vSp = "vpcSet" +_DVCL = "DescribeVpcClassicLink" +_DVCLDSMR = "DescribeVpcClassicLinkDnsSupportMaxResults" +_DVCLDSNT = "DescribeVpcClassicLinkDnsSupportNextToken" +_DVCLDSI = "DescribeVpcClassicLinkDnsSupportInput" +_cDVCLDSR = "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportRequest" +_CLDS = "ClassicLinkDnsSupport" +_CLDSl = "ClassicLinkDnsSupported" +_cLDS = "classicLinkDnsSupported" +_CLDSL = "ClassicLinkDnsSupportList" +_DVCLDSO = "DescribeVpcClassicLinkDnsSupportOutput" +_cDVCLDSRo = "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportResult" +_vpcs = "vpcs" +_DVCLDS = "DescribeVpcClassicLinkDnsSupport" +_DVECMR = "DescribeVpcEncryptionControlsMaxResults" +_VECIL = "VpcEncryptionControlIdList" +_VISLp = "VpcIdStringList" +_DVECIe = "DescribeVpcEncryptionControlsInput" +_cDVECRom = "com.amazonaws.ec2#DescribeVpcEncryptionControlsRequest" +_VECIp = "VpcEncryptionControlIds" +_VECL = "VpcEncryptionControlList" +_DVECOe = "DescribeVpcEncryptionControlsOutput" +_cDVECRoma = "com.amazonaws.ec2#DescribeVpcEncryptionControlsResult" +_VECpc = "VpcEncryptionControls" +_VECSp = "VpcEncryptionControlSet" +_vECS = "vpcEncryptionControlSet" +_DVECe = "DescribeVpcEncryptionControls" +_MRa = "MaxResults2" +_DVEAI = "DescribeVpcEndpointAssociationsInput" +_cDVEAR = "com.amazonaws.ec2#DescribeVpcEndpointAssociationsRequest" +_VEAp = "VpcEndpointAssociation" +_SNN = "ServiceNetworkName" +_sNN = "serviceNetworkName" +_ARA = "AssociatedResourceAccessibility" +_aRA = "associatedResourceAccessibility" +_dE = "dnsEntry" +_PDEr = "PrivateDnsEntry" +_pDEr = "privateDnsEntry" +_ARAs = "AssociatedResourceArn" +_aRAs = "associatedResourceArn" +_RCGA = "ResourceConfigurationGroupArn" +_rCGA = "resourceConfigurationGroupArn" +_VEAS = "VpcEndpointAssociationSet" +_DVEAO = "DescribeVpcEndpointAssociationsOutput" +_cDVEARo = "com.amazonaws.ec2#DescribeVpcEndpointAssociationsResult" +_VEApc = "VpcEndpointAssociations" +_vEAS = "vpcEndpointAssociationSet" +_DVEA = "DescribeVpcEndpointAssociations" +_DVECNIe = "DescribeVpcEndpointConnectionNotificationsInput" +_cDVECNRom = "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsRequest" +_CNSo = "ConnectionNotificationSet" +_DVECNOe = "DescribeVpcEndpointConnectionNotificationsOutput" +_cDVECNRoma = "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsResult" +_cNSo = "connectionNotificationSet" +_DVECNe = "DescribeVpcEndpointConnectionNotifications" +_DVECIes = "DescribeVpcEndpointConnectionsInput" +_cDVECRomam = "com.amazonaws.ec2#DescribeVpcEndpointConnectionsRequest" +_VECpcn = "VpcEndpointConnection" +_VEO = "VpcEndpointOwner" +_vEO = "vpcEndpointOwner" +_VESpc = "VpcEndpointState" +_vESpc = "vpcEndpointState" +_VECIpc = "VpcEndpointConnectionId" +_vECIp = "vpcEndpointConnectionId" +_VER = "VpcEndpointRegion" +_vER = "vpcEndpointRegion" +_VECSpc = "VpcEndpointConnectionSet" +_DVECOes = "DescribeVpcEndpointConnectionsOutput" +_cDVECRomama = "com.amazonaws.ec2#DescribeVpcEndpointConnectionsResult" +_VECpcnd = "VpcEndpointConnections" +_vECSp = "vpcEndpointConnectionSet" +_DVECes = "DescribeVpcEndpointConnections" +_DVEIe = "DescribeVpcEndpointsInput" +_cDVERom = "com.amazonaws.ec2#DescribeVpcEndpointsRequest" +_VESpcn = "VpcEndpointSet" +_DVEOe = "DescribeVpcEndpointsOutput" +_cDVERoma = "com.amazonaws.ec2#DescribeVpcEndpointsResult" +_VEp = "VpcEndpoints" +_vESpcn = "vpcEndpointSet" +_DVEe = "DescribeVpcEndpoints" +_DVESCIe = "DescribeVpcEndpointServiceConfigurationsInput" +_cDVESCRom = "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsRequest" +_SCS = "ServiceConfigurationSet" +_DVESCOe = "DescribeVpcEndpointServiceConfigurationsOutput" +_cDVESCRoma = "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsResult" +_SCer = "ServiceConfigurations" +_sCS = "serviceConfigurationSet" +_DVESCe = "DescribeVpcEndpointServiceConfigurations" +_DVESPI = "DescribeVpcEndpointServicePermissionsInput" +_cDVESPR = "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsRequest" +_DVESPO = "DescribeVpcEndpointServicePermissionsOutput" +_cDVESPRo = "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsResult" +_APll = "AllowedPrincipals" +_aPl = "allowedPrincipals" +_DVESP = "DescribeVpcEndpointServicePermissions" +_DVESI = "DescribeVpcEndpointServicesInput" +_cDVESR = "com.amazonaws.ec2#DescribeVpcEndpointServicesRequest" +_SNerv = "ServiceNames" +_SRer = "ServiceRegions" +_PDD = "PrivateDnsDetails" +_PDDS = "PrivateDnsDetailsSet" +_SDe = "ServiceDetail" +_PDNri = "PrivateDnsNames" +_PDNS = "PrivateDnsNameSet" +_pDNS = "privateDnsNameSet" +_VEPS = "VpcEndpointPolicySupported" +_vEPS = "vpcEndpointPolicySupported" +_PDNVS = "PrivateDnsNameVerificationState" +_pDNVS = "privateDnsNameVerificationState" +_SDSe = "ServiceDetailSet" +_DVESO = "DescribeVpcEndpointServicesOutput" +_cDVESRo = "com.amazonaws.ec2#DescribeVpcEndpointServicesResult" +_SNSer = "ServiceNameSet" +_sNSer = "serviceNameSet" +_SDer = "ServiceDetails" +_sDSe = "serviceDetailSet" +_DVES = "DescribeVpcEndpointServices" +_DVPCMR = "DescribeVpcPeeringConnectionsMaxResults" +_VPCIL = "VpcPeeringConnectionIdList" +_DVPCIe = "DescribeVpcPeeringConnectionsInput" +_cDVPCRom = "com.amazonaws.ec2#DescribeVpcPeeringConnectionsRequest" +_VPCIp = "VpcPeeringConnectionIds" +_VPCL = "VpcPeeringConnectionList" +_DVPCOe = "DescribeVpcPeeringConnectionsOutput" +_cDVPCRoma = "com.amazonaws.ec2#DescribeVpcPeeringConnectionsResult" +_VPCp = "VpcPeeringConnections" +_VPCS = "VpcPeeringConnectionSet" +_vPCS = "vpcPeeringConnectionSet" +_DVPCe = "DescribeVpcPeeringConnections" +_DVMR = "DescribeVpcsMaxResults" +_DVIesc = "DescribeVpcsInput" +_cDVRomam = "com.amazonaws.ec2#DescribeVpcsRequest" +_VLp = "VpcList" +_DVOesc = "DescribeVpcsOutput" +_cDVRomama = "com.amazonaws.ec2#DescribeVpcsResult" +_DVesc = "DescribeVpcs" +_GVCDMR = "GVCDMaxResults" +_VCISL = "VpnConcentratorIdStringList" +_DVCIes = "DescribeVpnConcentratorsInput" +_cDVCRoma = "com.amazonaws.ec2#DescribeVpnConcentratorsRequest" +_VCIpn = "VpnConcentratorIds" +_VCLp = "VpnConcentratorList" +_DVCOes = "DescribeVpnConcentratorsOutput" +_cDVCRomam = "com.amazonaws.ec2#DescribeVpnConcentratorsResult" +_VCpn = "VpnConcentrators" +_VCS = "VpnConcentratorSet" +_vCS = "vpnConcentratorSet" +_DVCes = "DescribeVpnConcentrators" +_VCISLp = "VpnConnectionIdStringList" +_DVCIesc = "DescribeVpnConnectionsInput" +_cDVCRomama = "com.amazonaws.ec2#DescribeVpnConnectionsRequest" +_VCIpno = "VpnConnectionIds" +_VCLpn = "VpnConnectionList" +_DVCOesc = "DescribeVpnConnectionsOutput" +_cDVCRomamaz = "com.amazonaws.ec2#DescribeVpnConnectionsResult" +_VCpno = "VpnConnections" +_VCSp = "VpnConnectionSet" +_vCSp = "vpnConnectionSet" +_DVCesc = "DescribeVpnConnections" +_VGISL = "VpnGatewayIdStringList" +_DVGIe = "DescribeVpnGatewaysInput" +_cDVGRo = "com.amazonaws.ec2#DescribeVpnGatewaysRequest" +_VGIp = "VpnGatewayIds" +_VGL = "VpnGatewayList" +_DVGOe = "DescribeVpnGatewaysOutput" +_cDVGRom = "com.amazonaws.ec2#DescribeVpnGatewaysResult" +_VGp = "VpnGateways" +_VGS = "VpnGatewaySet" +_vGS = "vpnGatewaySet" +_DVGe = "DescribeVpnGateways" +_DCLVI = "DetachClassicLinkVpcInput" +_cDCLVR = "com.amazonaws.ec2#DetachClassicLinkVpcRequest" +_DCLVO = "DetachClassicLinkVpcOutput" +_cDCLVRo = "com.amazonaws.ec2#DetachClassicLinkVpcResult" +_DCLV = "DetachClassicLinkVpc" +_DIWI = "DetachImageWatermarkInput" +_cDIWR = "com.amazonaws.ec2#DetachImageWatermarkRequest" +_DIWO = "DetachImageWatermarkOutput" +_cDIWRo = "com.amazonaws.ec2#DetachImageWatermarkResult" +_DIW = "DetachImageWatermark" +_DIGIet = "DetachInternetGatewayInput" +_cDIGRoma = "com.amazonaws.ec2#DetachInternetGatewayRequest" +_DIGOet = "DetachInternetGatewayOutput" +_DIGet = "DetachInternetGateway" +_NIAIet = "NetworkInterfaceAttachmentId" +_DNIIet = "DetachNetworkInterfaceInput" +_cDNIRoma = "com.amazonaws.ec2#DetachNetworkInterfaceRequest" +_for = "force" +_DNIOet = "DetachNetworkInterfaceOutput" +_DNIet = "DetachNetworkInterface" +_DVATPIet = "DetachVerifiedAccessTrustProviderInput" +_cDVATPRomam = "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderRequest" +_DVATPOet = "DetachVerifiedAccessTrustProviderOutput" +_cDVATPRomama = "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderResult" +_DVATPet = "DetachVerifiedAccessTrustProvider" +_IIFR = "InstanceIdForResolver" +_VIWR = "VolumeIdWithResolver" +_DVIet = "DetachVolumeInput" +_cDVRomamaz = "com.amazonaws.ec2#DetachVolumeRequest" +_DVOet = "DetachVolumeOutput" +_DVet = "DetachVolume" +_DVGIet = "DetachVpnGatewayInput" +_cDVGRoma = "com.amazonaws.ec2#DetachVpnGatewayRequest" +_DVGOet = "DetachVpnGatewayOutput" +_DVGet = "DetachVpnGateway" +_DATIi = "DisableAddressTransferInput" +_cDATRom = "com.amazonaws.ec2#DisableAddressTransferRequest" +_DATOi = "DisableAddressTransferOutput" +_cDATRoma = "com.amazonaws.ec2#DisableAddressTransferResult" +_DATi = "DisableAddressTransfer" +_DAISI = "DisableAllowedImagesSettingsInput" +_cDAISR = "com.amazonaws.ec2#DisableAllowedImagesSettingsRequest" +_DAISO = "DisableAllowedImagesSettingsOutput" +_cDAISRo = "com.amazonaws.ec2#DisableAllowedImagesSettingsResult" +_AISS = "AllowedImagesSettingsState" +_aISS = "allowedImagesSettingsState" +_DAIS = "DisableAllowedImagesSettings" +_DASCSI = "DisableApplicationStatusCheckSuppressionInput" +_cDASCSR = "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionRequest" +_SSRO = "SuccessfulSuppressionResponseObject" +_SAupp = "SuppressAt" +_sAup = "suppressAt" +_SSRS = "SuccessfulSuppressionResponseSet" +_USRO = "UnsuccessfulSuppressionResponseObject" +_USRS = "UnsuccessfulSuppressionResponseSet" +_DASCSO = "DisableApplicationStatusCheckSuppressionOutput" +_cDASCSRo = "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionResult" +_DASCS = "DisableApplicationStatusCheckSuppression" +_DANPMSIi = "DisableAwsNetworkPerformanceMetricSubscriptionInput" +_cDANPMSRom = "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionRequest" +_DANPMSOi = "DisableAwsNetworkPerformanceMetricSubscriptionOutput" +_cDANPMSRoma = "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionResult" +_Ou = "Output" +_outp = "output" +_DANPMSi = "DisableAwsNetworkPerformanceMetricSubscription" +_DCMI = "DisableCapacityManagerInput" +_cDCMR = "com.amazonaws.ec2#DisableCapacityManagerRequest" +_CMSa = "CapacityManagerStatus" +_DCMO = "DisableCapacityManagerOutput" +_cDCMRo = "com.amazonaws.ec2#DisableCapacityManagerResult" +_cMSa = "capacityManagerStatus" +_OArg = "OrganizationsAccess" +_oArg = "organizationsAccess" +_DCM = "DisableCapacityManager" +_DEEBDI = "DisableEbsEncryptionByDefaultInput" +_cDEEBDR = "com.amazonaws.ec2#DisableEbsEncryptionByDefaultRequest" +_DEEBDO = "DisableEbsEncryptionByDefaultOutput" +_cDEEBDRo = "com.amazonaws.ec2#DisableEbsEncryptionByDefaultResult" +_EEBD = "EbsEncryptionByDefault" +_eEBD = "ebsEncryptionByDefault" +_DEEBD = "DisableEbsEncryptionByDefault" +_DFLIi = "DisableFastLaunchInput" +_cDFLRomam = "com.amazonaws.ec2#DisableFastLaunchRequest" +_DFLOi = "DisableFastLaunchOutput" +_cDFLRomama = "com.amazonaws.ec2#DisableFastLaunchResult" +_DFLi = "DisableFastLaunch" +_AZISL = "AvailabilityZoneIdStringList" +_AZSL = "AvailabilityZoneStringList" +_DFSRIi = "DisableFastSnapshotRestoresInput" +_cDFSRRom = "com.amazonaws.ec2#DisableFastSnapshotRestoresRequest" +_SSIo = "SourceSnapshotIds" +_DFSRSIi = "DisableFastSnapshotRestoreSuccessItem" +_DFSRSSi = "DisableFastSnapshotRestoreSuccessSet" +_DFSRSE = "DisableFastSnapshotRestoreStateError" +_DFSRSEI = "DisableFastSnapshotRestoreStateErrorItem" +_DFSRSES = "DisableFastSnapshotRestoreStateErrorSet" +_DFSREI = "DisableFastSnapshotRestoreErrorItem" +_FSRSE = "FastSnapshotRestoreStateErrors" +_FSRSES = "FastSnapshotRestoreStateErrorSet" +_fSRSES = "fastSnapshotRestoreStateErrorSet" +_DFSRES = "DisableFastSnapshotRestoreErrorSet" +_DFSROi = "DisableFastSnapshotRestoresOutput" +_cDFSRRoma = "com.amazonaws.ec2#DisableFastSnapshotRestoresResult" +_Suc = "Successful" +_DFSRi = "DisableFastSnapshotRestores" +_DIIi = "DisableImageInput" +_cDIRomamazonaw = "com.amazonaws.ec2#DisableImageRequest" +_DIOi = "DisableImageOutput" +_cDIRomamazonaws = "com.amazonaws.ec2#DisableImageResult" +_DIisa = "DisableImage" +_DIBPAI = "DisableImageBlockPublicAccessInput" +_cDIBPAR = "com.amazonaws.ec2#DisableImageBlockPublicAccessRequest" +_IBPADS = "ImageBlockPublicAccessDisabledState" +_unb = "unblocked" +_DIBPAO = "DisableImageBlockPublicAccessOutput" +_cDIBPARo = "com.amazonaws.ec2#DisableImageBlockPublicAccessResult" +_IBPAS = "ImageBlockPublicAccessState" +_iBPAS = "imageBlockPublicAccessState" +_DIBPA = "DisableImageBlockPublicAccess" +_DIDI = "DisableImageDeprecationInput" +_cDIDR = "com.amazonaws.ec2#DisableImageDeprecationRequest" +_DIDO = "DisableImageDeprecationOutput" +_cDIDRo = "com.amazonaws.ec2#DisableImageDeprecationResult" +_DIDi = "DisableImageDeprecation" +_DIDPI = "DisableImageDeregistrationProtectionInput" +_cDIDPR = "com.amazonaws.ec2#DisableImageDeregistrationProtectionRequest" +_DIDPO = "DisableImageDeregistrationProtectionOutput" +_cDIDPRo = "com.amazonaws.ec2#DisableImageDeregistrationProtectionResult" +_DIDP = "DisableImageDeregistrationProtection" +_IIUSL = "InstanceIdUpdateStringList" +_DISHSDI = "DisableInstanceSqlHaStandbyDetectionsInput" +_cDISHSDR = "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsRequest" +_DISHSDO = "DisableInstanceSqlHaStandbyDetectionsOutput" +_cDISHSDRo = "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsResult" +_DISHSD = "DisableInstanceSqlHaStandbyDetections" +_DIOAAI = "DisableIpamOrganizationAdminAccountInput" +_cDIOAAR = "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountRequest" +_DAAIel = "DelegatedAdminAccountId" +_DIOAAO = "DisableIpamOrganizationAdminAccountOutput" +_cDIOAARo = "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountResult" +_Succ = "Success" +_DIOAA = "DisableIpamOrganizationAdminAccount" +_DIPIi = "DisableIpamPolicyInput" +_cDIPRomamazonaw = "com.amazonaws.ec2#DisableIpamPolicyRequest" +_OTI = "OrganizationTargetId" +_DIPOi = "DisableIpamPolicyOutput" +_cDIPRomamazonaws = "com.amazonaws.ec2#DisableIpamPolicyResult" +_DIPi = "DisableIpamPolicy" +_DRSPIi = "DisableRouteServerPropagationInput" +_cDRSPRomam = "com.amazonaws.ec2#DisableRouteServerPropagationRequest" +_RSPSou = "RouteServerPropagationState" +_RSPou = "RouteServerPropagation" +_DRSPOi = "DisableRouteServerPropagationOutput" +_cDRSPRomama = "com.amazonaws.ec2#DisableRouteServerPropagationResult" +_rSPo = "routeServerPropagation" +_DRSPi = "DisableRouteServerPropagation" +_DSCAI = "DisableSerialConsoleAccessInput" +_cDSCAR = "com.amazonaws.ec2#DisableSerialConsoleAccessRequest" +_DSCAO = "DisableSerialConsoleAccessOutput" +_cDSCARo = "com.amazonaws.ec2#DisableSerialConsoleAccessResult" +_SCAE = "SerialConsoleAccessEnabled" +_sCAE = "serialConsoleAccessEnabled" +_DSCA = "DisableSerialConsoleAccess" +_DSBPAI = "DisableSnapshotBlockPublicAccessInput" +_cDSBPAR = "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessRequest" +_SBPAS = "SnapshotBlockPublicAccessState" +_bas = "block_all_sharing" +_bas_ = "block-all-sharing" +_bns = "block_new_sharing" +_bns_ = "block-new-sharing" +_DSBPAO = "DisableSnapshotBlockPublicAccessOutput" +_cDSBPARo = "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessResult" +_DSBPA = "DisableSnapshotBlockPublicAccess" +_DTGRTPI = "DisableTransitGatewayRouteTablePropagationInput" +_cDTGRTPR = "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationRequest" +_TGPS = "TransitGatewayPropagationState" +_TGP = "TransitGatewayPropagation" +_DTGRTPO = "DisableTransitGatewayRouteTablePropagationOutput" +_cDTGRTPRo = "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationResult" +_Prop = "Propagation" +_propa = "propagation" +_DTGRTP = "DisableTransitGatewayRouteTablePropagation" +_DVRPI = "DisableVgwRoutePropagationInput" +_cDVRPR = "com.amazonaws.ec2#DisableVgwRoutePropagationRequest" +_DVRPO = "DisableVgwRoutePropagationOutput" +_DVRP = "DisableVgwRoutePropagation" +_DVCLIi = "DisableVpcClassicLinkInput" +_cDVCLRom = "com.amazonaws.ec2#DisableVpcClassicLinkRequest" +_DVCLOi = "DisableVpcClassicLinkOutput" +_cDVCLRoma = "com.amazonaws.ec2#DisableVpcClassicLinkResult" +_DVCLi = "DisableVpcClassicLink" +_DVCLDSIi = "DisableVpcClassicLinkDnsSupportInput" +_cDVCLDSRom = "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportRequest" +_DVCLDSOi = "DisableVpcClassicLinkDnsSupportOutput" +_cDVCLDSRoma = "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportResult" +_DVCLDSi = "DisableVpcClassicLinkDnsSupport" +_EIAI = "ElasticIpAssociationId" +_DAIi = "DisassociateAddressInput" +_cDARom = "com.amazonaws.ec2#DisassociateAddressRequest" +_DAOi = "DisassociateAddressOutput" +_DAi = "DisassociateAddress" +_DASCIi = "DisassociateApplicationStatusCheckInput" +_cDASCRomam = "com.amazonaws.ec2#DisassociateApplicationStatusCheckRequest" +_DASCOi = "DisassociateApplicationStatusCheckOutput" +_cDASCRomama = "com.amazonaws.ec2#DisassociateApplicationStatusCheckResult" +_DASCi = "DisassociateApplicationStatusCheck" +_DCRBOI = "DisassociateCapacityReservationBillingOwnerInput" +_cDCRBOR = "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerRequest" +_DCRBOO = "DisassociateCapacityReservationBillingOwnerOutput" +_cDCRBORo = "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerResult" +_DCRBO = "DisassociateCapacityReservationBillingOwner" +_DCVTNIi = "DisassociateClientVpnTargetNetworkInput" +_cDCVTNRom = "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkRequest" +_DCVTNOi = "DisassociateClientVpnTargetNetworkOutput" +_cDCVTNRoma = "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkResult" +_DCVTNi = "DisassociateClientVpnTargetNetwork" +_DECIRI = "DisassociateEnclaveCertificateIamRoleInput" +_cDECIRR = "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleRequest" +_DECIRO = "DisassociateEnclaveCertificateIamRoleOutput" +_cDECIRRo = "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleResult" +_DECIR = "DisassociateEnclaveCertificateIamRole" +_DIIPI = "DisassociateIamInstanceProfileInput" +_cDIIPR = "com.amazonaws.ec2#DisassociateIamInstanceProfileRequest" +_DIIPO = "DisassociateIamInstanceProfileOutput" +_cDIIPRo = "com.amazonaws.ec2#DisassociateIamInstanceProfileResult" +_DIIP = "DisassociateIamInstanceProfile" +_IEWDR = "InstanceEventWindowDisassociationRequest" +_DIEWIi = "DisassociateInstanceEventWindowInput" +_cDIEWRomam = "com.amazonaws.ec2#DisassociateInstanceEventWindowRequest" +_DIEWOi = "DisassociateInstanceEventWindowOutput" +_cDIEWRomama = "com.amazonaws.ec2#DisassociateInstanceEventWindowResult" +_DIEWi = "DisassociateInstanceEventWindow" +_DIBIi = "DisassociateIpamByoasnInput" +_cDIBRomam = "com.amazonaws.ec2#DisassociateIpamByoasnRequest" +_DIBOi = "DisassociateIpamByoasnOutput" +_cDIBRomama = "com.amazonaws.ec2#DisassociateIpamByoasnResult" +_DIBi = "DisassociateIpamByoasn" +_DIRDIi = "DisassociateIpamResourceDiscoveryInput" +_cDIRDRomam = "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryRequest" +_DIRDOi = "DisassociateIpamResourceDiscoveryOutput" +_cDIRDRomama = "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryResult" +_DIRDi = "DisassociateIpamResourceDiscovery" +_EAIL = "EipAssociationIdList" +_DSr = "DrainSeconds" +_DNGAI = "DisassociateNatGatewayAddressInput" +_cDNGAR = "com.amazonaws.ec2#DisassociateNatGatewayAddressRequest" +_MDDS = "MaxDrainDurationSeconds" +_DNGAO = "DisassociateNatGatewayAddressOutput" +_cDNGARo = "com.amazonaws.ec2#DisassociateNatGatewayAddressResult" +_DNGA = "DisassociateNatGatewayAddress" +_DRSIi = "DisassociateRouteServerInput" +_cDRSRomam = "com.amazonaws.ec2#DisassociateRouteServerRequest" +_DRSOi = "DisassociateRouteServerOutput" +_cDRSRomama = "com.amazonaws.ec2#DisassociateRouteServerResult" +_DRSi = "DisassociateRouteServer" +_DRTIi = "DisassociateRouteTableInput" +_cDRTRoma = "com.amazonaws.ec2#DisassociateRouteTableRequest" +_DRTOi = "DisassociateRouteTableOutput" +_DRTi = "DisassociateRouteTable" +_DSGVSGI = "DisassociateSecurityGroupVpcSecurityGroupId" +_DSGVI = "DisassociateSecurityGroupVpcInput" +_cDSGVR = "com.amazonaws.ec2#DisassociateSecurityGroupVpcRequest" +_DSGVO = "DisassociateSecurityGroupVpcOutput" +_cDSGVRo = "com.amazonaws.ec2#DisassociateSecurityGroupVpcResult" +_DSGV = "DisassociateSecurityGroupVpc" +_DSCBI = "DisassociateSubnetCidrBlockInput" +_cDSCBR = "com.amazonaws.ec2#DisassociateSubnetCidrBlockRequest" +_DSCBO = "DisassociateSubnetCidrBlockOutput" +_cDSCBRo = "com.amazonaws.ec2#DisassociateSubnetCidrBlockResult" +_DSCB = "DisassociateSubnetCidrBlock" +_DTGMDIi = "DisassociateTransitGatewayMulticastDomainInput" +_cDTGMDRomam = "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainRequest" +_DTGMDOi = "DisassociateTransitGatewayMulticastDomainOutput" +_cDTGMDRomama = "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainResult" +_DTGMDi = "DisassociateTransitGatewayMulticastDomain" +_DTGPTIi = "DisassociateTransitGatewayPolicyTableInput" +_cDTGPTRomam = "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableRequest" +_DTGPTOi = "DisassociateTransitGatewayPolicyTableOutput" +_cDTGPTRomama = "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableResult" +_DTGPTi = "DisassociateTransitGatewayPolicyTable" +_DTGRTIi = "DisassociateTransitGatewayRouteTableInput" +_cDTGRTRomam = "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableRequest" +_DTGRTOi = "DisassociateTransitGatewayRouteTableOutput" +_cDTGRTRomama = "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableResult" +_DTGRTi = "DisassociateTransitGatewayRouteTable" +_DTII = "DisassociateTrunkInterfaceInput" +_cDTIR = "com.amazonaws.ec2#DisassociateTrunkInterfaceRequest" +_DTIO = "DisassociateTrunkInterfaceOutput" +_cDTIRo = "com.amazonaws.ec2#DisassociateTrunkInterfaceResult" +_DTIi = "DisassociateTrunkInterface" +_VCAI = "VpcCidrAssociationId" +_DVCBI = "DisassociateVpcCidrBlockInput" +_cDVCBR = "com.amazonaws.ec2#DisassociateVpcCidrBlockRequest" +_DVCBO = "DisassociateVpcCidrBlockOutput" +_cDVCBRo = "com.amazonaws.ec2#DisassociateVpcCidrBlockResult" +_DVCB = "DisassociateVpcCidrBlock" +_EATI = "EnableAddressTransferInput" +_cEATR = "com.amazonaws.ec2#EnableAddressTransferRequest" +_EATO = "EnableAddressTransferOutput" +_cEATRo = "com.amazonaws.ec2#EnableAddressTransferResult" +_EAT = "EnableAddressTransfer" +_EAISI = "EnableAllowedImagesSettingsInput" +_cEAISR = "com.amazonaws.ec2#EnableAllowedImagesSettingsRequest" +_EAISO = "EnableAllowedImagesSettingsOutput" +_cEAISRo = "com.amazonaws.ec2#EnableAllowedImagesSettingsResult" +_EAIS = "EnableAllowedImagesSettings" +_EASCSI = "EnableApplicationStatusCheckSuppressionInput" +_cEASCSR = "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionRequest" +_DSu = "DurationSeconds" +_EASCSO = "EnableApplicationStatusCheckSuppressionOutput" +_cEASCSRo = "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionResult" +_EASCS = "EnableApplicationStatusCheckSuppression" +_EANPMSI = "EnableAwsNetworkPerformanceMetricSubscriptionInput" +_cEANPMSR = "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionRequest" +_EANPMSO = "EnableAwsNetworkPerformanceMetricSubscriptionOutput" +_cEANPMSRo = "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionResult" +_EANPMS = "EnableAwsNetworkPerformanceMetricSubscription" +_ECMI = "EnableCapacityManagerInput" +_cECMR = "com.amazonaws.ec2#EnableCapacityManagerRequest" +_ECMO = "EnableCapacityManagerOutput" +_cECMRo = "com.amazonaws.ec2#EnableCapacityManagerResult" +_ECM = "EnableCapacityManager" +_EEEBDI = "EnableEbsEncryptionByDefaultInput" +_cEEEBDR = "com.amazonaws.ec2#EnableEbsEncryptionByDefaultRequest" +_EEEBDO = "EnableEbsEncryptionByDefaultOutput" +_cEEEBDRo = "com.amazonaws.ec2#EnableEbsEncryptionByDefaultResult" +_EEEBD = "EnableEbsEncryptionByDefault" +_FLLTSRa = "FastLaunchLaunchTemplateSpecificationRequest" +_FLSCRa = "FastLaunchSnapshotConfigurationRequest" +_EFLI = "EnableFastLaunchInput" +_cEFLR = "com.amazonaws.ec2#EnableFastLaunchRequest" +_EFLO = "EnableFastLaunchOutput" +_cEFLRo = "com.amazonaws.ec2#EnableFastLaunchResult" +_EFL = "EnableFastLaunch" +_EFSRI = "EnableFastSnapshotRestoresInput" +_cEFSRR = "com.amazonaws.ec2#EnableFastSnapshotRestoresRequest" +_EFSRSI = "EnableFastSnapshotRestoreSuccessItem" +_EFSRSS = "EnableFastSnapshotRestoreSuccessSet" +_EFSRSE = "EnableFastSnapshotRestoreStateError" +_EFSRSEI = "EnableFastSnapshotRestoreStateErrorItem" +_EFSRSES = "EnableFastSnapshotRestoreStateErrorSet" +_EFSREI = "EnableFastSnapshotRestoreErrorItem" +_EFSRES = "EnableFastSnapshotRestoreErrorSet" +_EFSRO = "EnableFastSnapshotRestoresOutput" +_cEFSRRo = "com.amazonaws.ec2#EnableFastSnapshotRestoresResult" +_EFSR = "EnableFastSnapshotRestores" +_EII = "EnableImageInput" +_cEIR = "com.amazonaws.ec2#EnableImageRequest" +_EIO = "EnableImageOutput" +_cEIRo = "com.amazonaws.ec2#EnableImageResult" +_EIna = "EnableImage" +_IBPAES = "ImageBlockPublicAccessEnabledState" +_EIBPAI = "EnableImageBlockPublicAccessInput" +_cEIBPAR = "com.amazonaws.ec2#EnableImageBlockPublicAccessRequest" +_EIBPAO = "EnableImageBlockPublicAccessOutput" +_cEIBPARo = "com.amazonaws.ec2#EnableImageBlockPublicAccessResult" +_EIBPA = "EnableImageBlockPublicAccess" +_EIDI = "EnableImageDeprecationInput" +_cEIDR = "com.amazonaws.ec2#EnableImageDeprecationRequest" +_DAepr = "DeprecateAt" +_EIDO = "EnableImageDeprecationOutput" +_cEIDRo = "com.amazonaws.ec2#EnableImageDeprecationResult" +_EID = "EnableImageDeprecation" +_EIDPI = "EnableImageDeregistrationProtectionInput" +_cEIDPR = "com.amazonaws.ec2#EnableImageDeregistrationProtectionRequest" +_WCi = "WithCooldown" +_EIDPO = "EnableImageDeregistrationProtectionOutput" +_cEIDPRo = "com.amazonaws.ec2#EnableImageDeregistrationProtectionResult" +_EIDP = "EnableImageDeregistrationProtection" +_SAe = "SecretArn" +_EISHSDI = "EnableInstanceSqlHaStandbyDetectionsInput" +_cEISHSDR = "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsRequest" +_EISHSDO = "EnableInstanceSqlHaStandbyDetectionsOutput" +_cEISHSDRo = "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsResult" +_EISHSD = "EnableInstanceSqlHaStandbyDetections" +_EIIRAI = "EnableIpamInternetRegistryAssociationInput" +_cEIIRAR = "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationRequest" +_RVp = "RpkiVersion" +_SUe = "ServiceUri" +_CH = "ChildHandle" +_PH = "ParentHandle" +_PBT = "ParentBpkiTa" +_EIIRAO = "EnableIpamInternetRegistryAssociationOutput" +_cEIIRARo = "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationResult" +_EIIRA = "EnableIpamInternetRegistryAssociation" +_EIOAAI = "EnableIpamOrganizationAdminAccountInput" +_cEIOAAR = "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountRequest" +_EIOAAO = "EnableIpamOrganizationAdminAccountOutput" +_cEIOAARo = "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountResult" +_EIOAA = "EnableIpamOrganizationAdminAccount" +_EIPI = "EnableIpamPolicyInput" +_cEIPR = "com.amazonaws.ec2#EnableIpamPolicyRequest" +_EIPO = "EnableIpamPolicyOutput" +_cEIPRo = "com.amazonaws.ec2#EnableIpamPolicyResult" +_EIP = "EnableIpamPolicy" +_ERAOSI = "EnableReachabilityAnalyzerOrganizationSharingInput" +_cERAOSR = "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingRequest" +_ERAOSO = "EnableReachabilityAnalyzerOrganizationSharingOutput" +_cERAOSRo = "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingResult" +_ERAOS = "EnableReachabilityAnalyzerOrganizationSharing" +_ERSPI = "EnableRouteServerPropagationInput" +_cERSPR = "com.amazonaws.ec2#EnableRouteServerPropagationRequest" +_ERSPO = "EnableRouteServerPropagationOutput" +_cERSPRo = "com.amazonaws.ec2#EnableRouteServerPropagationResult" +_ERSP = "EnableRouteServerPropagation" +_ESCAI = "EnableSerialConsoleAccessInput" +_cESCAR = "com.amazonaws.ec2#EnableSerialConsoleAccessRequest" +_ESCAO = "EnableSerialConsoleAccessOutput" +_cESCARo = "com.amazonaws.ec2#EnableSerialConsoleAccessResult" +_ESCA = "EnableSerialConsoleAccess" +_ESBPAI = "EnableSnapshotBlockPublicAccessInput" +_cESBPAR = "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessRequest" +_ESBPAO = "EnableSnapshotBlockPublicAccessOutput" +_cESBPARo = "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessResult" +_ESBPA = "EnableSnapshotBlockPublicAccess" +_ETGRTPI = "EnableTransitGatewayRouteTablePropagationInput" +_cETGRTPR = "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationRequest" +_ETGRTPO = "EnableTransitGatewayRouteTablePropagationOutput" +_cETGRTPRo = "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationResult" +_ETGRTP = "EnableTransitGatewayRouteTablePropagation" +_EVRPI = "EnableVgwRoutePropagationInput" +_cEVRPR = "com.amazonaws.ec2#EnableVgwRoutePropagationRequest" +_EVRPO = "EnableVgwRoutePropagationOutput" +_EVIOI = "EnableVolumeIOInput" +_cEVIOR = "com.amazonaws.ec2#EnableVolumeIORequest" +_EVIOO = "EnableVolumeIOOutput" +_EVIO = "EnableVolumeIO" +_EVCLI = "EnableVpcClassicLinkInput" +_cEVCLR = "com.amazonaws.ec2#EnableVpcClassicLinkRequest" +_EVCLO = "EnableVpcClassicLinkOutput" +_cEVCLRo = "com.amazonaws.ec2#EnableVpcClassicLinkResult" +_EVCL = "EnableVpcClassicLink" +_EVCLDSI = "EnableVpcClassicLinkDnsSupportInput" +_cEVCLDSR = "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportRequest" +_EVCLDSO = "EnableVpcClassicLinkDnsSupportOutput" +_cEVCLDSRo = "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportResult" +_EVCLDS = "EnableVpcClassicLinkDnsSupport" +_ECVCCRLI = "ExportClientVpnClientCertificateRevocationListInput" +_cECVCCRLR = "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListRequest" +_CCRLSC = "ClientCertificateRevocationListStatusCode" +_CCRLS = "ClientCertificateRevocationListStatus" +_ECVCCRLO = "ExportClientVpnClientCertificateRevocationListOutput" +_cECVCCRLRo = "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListResult" +_CRL = "CertificateRevocationList" +_cRL = "certificateRevocationList" +_ECVCCRL = "ExportClientVpnClientCertificateRevocationList" +_ECVCCI = "ExportClientVpnClientConfigurationInput" +_cECVCCR = "com.amazonaws.ec2#ExportClientVpnClientConfigurationRequest" +_ECVCCO = "ExportClientVpnClientConfigurationOutput" +_cECVCCRo = "com.amazonaws.ec2#ExportClientVpnClientConfigurationResult" +_CCl = "ClientConfiguration" +_cCl = "clientConfiguration" +_ECVCC = "ExportClientVpnClientConfiguration" +_ETSLR = "ExportTaskS3LocationRequest" +_EIIx = "ExportImageInput" +_cEIRom = "com.amazonaws.ec2#ExportImageRequest" +_RNo = "RoleName" +_EIOx = "ExportImageOutput" +_cEIRoma = "com.amazonaws.ec2#ExportImageResult" +_rNo = "roleName" +_EIxp = "ExportImage" +_ETGRI = "ExportTransitGatewayRoutesInput" +_cETGRR = "com.amazonaws.ec2#ExportTransitGatewayRoutesRequest" +_ETGRO = "ExportTransitGatewayRoutesOutput" +_cETGRRo = "com.amazonaws.ec2#ExportTransitGatewayRoutesResult" +_SLo = "S3Location" +_sLo = "s3Location" +_ETGR = "ExportTransitGatewayRoutes" +_EVAICCI = "ExportVerifiedAccessInstanceClientConfigurationInput" +_cEVAICCR = "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationRequest" +_DTPTL = "DeviceTrustProviderTypeList" +_VAIOVCCR = "VerifiedAccessInstanceOpenVpnClientConfigurationRoute" +_VAIOVCCRL = "VerifiedAccessInstanceOpenVpnClientConfigurationRouteList" +_VAIOVCC = "VerifiedAccessInstanceOpenVpnClientConfiguration" +_Confi = "Config" +_confi = "config" +_VAIOVCCL = "VerifiedAccessInstanceOpenVpnClientConfigurationList" +_VAIUTPCC = "VerifiedAccessInstanceUserTrustProviderClientConfiguration" +_Sco = "Scopes" +_sco = "scopes" +_PE = "PkceEnabled" +_pE = "pkceEnabled" +_EVAICCO = "ExportVerifiedAccessInstanceClientConfigurationOutput" +_cEVAICCRo = "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationResult" +_DTP = "DeviceTrustProviders" +_DTPS = "DeviceTrustProviderSet" +_dTPS = "deviceTrustProviderSet" +_UTP = "UserTrustProvider" +_uTP = "userTrustProvider" +_OVC = "OpenVpnConfigurations" +_OVCS = "OpenVpnConfigurationSet" +_oVCS = "openVpnConfigurationSet" +_EVAICC = "ExportVerifiedAccessInstanceClientConfiguration" +_GAVTSI = "GetActiveVpnTunnelStatusInput" +_cGAVTSR = "com.amazonaws.ec2#GetActiveVpnTunnelStatusRequest" +_VTOIA = "VpnTunnelOutsideIpAddress" +_GAVTSO = "GetActiveVpnTunnelStatusOutput" +_cGAVTSRo = "com.amazonaws.ec2#GetActiveVpnTunnelStatusResult" +_aVTS = "activeVpnTunnelStatus" +_GAVTS = "GetActiveVpnTunnelStatus" +_GAISI = "GetAllowedImagesSettingsInput" +_cGAISR = "com.amazonaws.ec2#GetAllowedImagesSettingsRequest" +_MDSCV = "MaximumDaysSinceCreatedValue" +_CDC = "CreationDateCondition" +_MDSC = "MaximumDaysSinceCreated" +_mDSC = "maximumDaysSinceCreated" +_MDSDV = "MaximumDaysSinceDeprecatedValue" +_DTC = "DeprecationTimeCondition" +_MDSD = "MaximumDaysSinceDeprecated" +_mDSD = "maximumDaysSinceDeprecated" +_INm = "ImageName" +_INLm = "ImageNameList" +_IPm = "ImageProvider" +_IPLm = "ImageProviderList" +_IWFR = "ImageWatermarkFilterResponse" +_MDSSIC = "MaximumDaysSinceSourceImageCreated" +_mDSSIC = "maximumDaysSinceSourceImageCreated" +_MDSWC = "MaximumDaysSinceWatermarkCreated" +_mDSWC = "maximumDaysSinceWatermarkCreated" +_IWFRL = "ImageWatermarkFilterResponseList" +_MPC = "MarketplaceProductCode" +_MPCL = "MarketplaceProductCodeList" +_MDSFAV = "MaxDaysSinceFixAvailableValue" +_MDSLFSV = "MaxDaysSinceLastFindingScanValue" +_SRCc = "ScanResultCondition" +_MDSLFS = "MaxDaysSinceLastFindingScan" +_mDSLFS = "maxDaysSinceLastFindingScan" +_MSL = "MaximumSeverityLabel" +_mSL = "maximumSeverityLabel" +_MDSIFA = "MaxDaysSinceInformationalFixAvailable" +_mDSIFA = "maxDaysSinceInformationalFixAvailable" +_MDSLFA = "MaxDaysSinceLowFixAvailable" +_mDSLFA = "maxDaysSinceLowFixAvailable" +_MDSMFA = "MaxDaysSinceMediumFixAvailable" +_mDSMFA = "maxDaysSinceMediumFixAvailable" +_MDSHFA = "MaxDaysSinceHighFixAvailable" +_mDSHFA = "maxDaysSinceHighFixAvailable" +_MDSCFA = "MaxDaysSinceCriticalFixAvailable" +_mDSCFA = "maxDaysSinceCriticalFixAvailable" +_ICm = "ImageCriterion" +_IPma = "ImageProviders" +_IPSm = "ImageProviderSet" +_iPSm = "imageProviderSet" +_MPCa = "MarketplaceProductCodes" +_MPCS = "MarketplaceProductCodeSet" +_mPCS = "marketplaceProductCodeSet" +_INma = "ImageNames" +_INS = "ImageNameSet" +_iNS = "imageNameSet" +_dTC = "deprecationTimeCondition" +_cDC = "creationDateCondition" +_sRC = "scanResultCondition" +_ICLm = "ImageCriterionList" +_GAISO = "GetAllowedImagesSettingsOutput" +_cGAISRo = "com.amazonaws.ec2#GetAllowedImagesSettingsResult" +_ICma = "ImageCriteria" +_ICSm = "ImageCriterionSet" +_iCS = "imageCriterionSet" +_GAIS = "GetAllowedImagesSettings" +_GAECIRI = "GetAssociatedEnclaveCertificateIamRolesInput" +_cGAECIRR = "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesRequest" +_ARss = "AssociatedRole" +_ARAss = "AssociatedRoleArn" +_aRAss = "associatedRoleArn" +_ARL = "AssociatedRolesList" +_GAECIRO = "GetAssociatedEnclaveCertificateIamRolesOutput" +_cGAECIRRo = "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesResult" +_ARsso = "AssociatedRoles" +_ARSs = "AssociatedRoleSet" +_aRSs = "associatedRoleSet" +_GAECIR = "GetAssociatedEnclaveCertificateIamRoles" +_GAIPCI = "GetAssociatedIpv6PoolCidrsInput" +_cGAIPCR = "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsRequest" +_ICAp = "Ipv6CidrAssociation" +_ICp = "Ipv6Cidr" +_iCp = "ipv6Cidr" +_ICAS = "Ipv6CidrAssociationSet" +_GAIPCO = "GetAssociatedIpv6PoolCidrsOutput" +_cGAIPCRo = "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsResult" +_ICApv = "Ipv6CidrAssociations" +_iCAS = "ipv6CidrAssociationSet" +_GAIPC = "GetAssociatedIpv6PoolCidrs" +_DQ = "DataQuery" +_DQa = "DataQueries" +_GANPDI = "GetAwsNetworkPerformanceDataInput" +_cGANPDR = "com.amazonaws.ec2#GetAwsNetworkPerformanceDataRequest" +_MPe = "MetricPoint" +_MPet = "MetricPoints" +_DRa = "DataResponse" +_MPSe = "MetricPointSet" +_mPSe = "metricPointSet" +_DRat = "DataResponses" +_GANPDO = "GetAwsNetworkPerformanceDataOutput" +_cGANPDRo = "com.amazonaws.ec2#GetAwsNetworkPerformanceDataResult" +_DRSat = "DataResponseSet" +_dRSa = "dataResponseSet" +_GANPD = "GetAwsNetworkPerformanceData" +_GCMAI = "GetCapacityManagerAttributesInput" +_cGCMAR = "com.amazonaws.ec2#GetCapacityManagerAttributesRequest" +_ISng = "IngestionStatus" +_IIIP = "INITIAL_INGESTION_IN_PROGRESS" +_iiip = "initial-ingestion-in-progress" +_IC___ = "INGESTION_COMPLETE" +_ic___ = "ingestion-complete" +_IF_ = "INGESTION_FAILED" +_if = "ingestion-failed" +_GCMAO = "GetCapacityManagerAttributesOutput" +_cGCMARo = "com.amazonaws.ec2#GetCapacityManagerAttributesResult" +_DEC = "DataExportCount" +_dEC = "dataExportCount" +_iSng = "ingestionStatus" +_ISM = "IngestionStatusMessage" +_iSM = "ingestionStatusMessage" +_EDTa = "EarliestDatapointTimestamp" +_eDTa = "earliestDatapointTimestamp" +_LDTat = "LatestDatapointTimestamp" +_lDTa = "latestDatapointTimestamp" +_GCMA = "GetCapacityManagerAttributes" +_Com = "Comparison" +_EQUALS = "EQUALS" +_IN_ = "IN" +_in___ = "in" +_FBD = "FilterByDimension" +_RR_ = "RESOURCE_REGION" +_rr = "resource-region" +_AZI_ = "AVAILABILITY_ZONE_ID" +_AI_ = "ACCOUNT_ID" +_ai = "account-id" +_AN_ = "ACCOUNT_NAME" +_an = "account-name" +_IF__ = "INSTANCE_FAMILY" +_if_ = "instance-family" +_IT_ = "INSTANCE_TYPE" +_it = "instance-type" +_IP__ = "INSTANCE_PLATFORM" +_ip___________ = "instance-platform" +_RA_ = "RESERVATION_ARN" +_ra_ = "reservation-arn" +_RI_ = "RESERVATION_ID" +_ri__ = "reservation-id" +_RT_ = "RESERVATION_TYPE" +_rt__ = "reservation-type" +_RCT_ = "RESERVATION_CREATE_TIMESTAMP" +_rct = "reservation-create-timestamp" +_RST = "RESERVATION_START_TIMESTAMP" +_rst = "reservation-start-timestamp" +_RET_ = "RESERVATION_END_TIMESTAMP" +_ret_ = "reservation-end-timestamp" +_REDT = "RESERVATION_END_DATE_TYPE" +_redt = "reservation-end-date-type" +_TENANCY = "TENANCY" +_RS_ = "RESERVATION_STATE" +_rs__ = "reservation-state" +_RIMC = "RESERVATION_INSTANCE_MATCH_CRITERIA" +_rimc = "reservation-instance-match-criteria" +_RUFO = "RESERVATION_UNUSED_FINANCIAL_OWNER" +_rufo = "reservation-unused-financial-owner" +_CVo = "ConditionValue" +_CVL = "ConditionValueList" +_DCim = "DimensionCondition" +_Dim = "Dimension" +_CMC = "CapacityManagerCondition" +_CMCS = "CapacityManagerConditionSet" +_GB = "GroupBy" +_GBS = "GroupBySet" +_RTCHV = "RESERVATION_TOTAL_CAPACITY_HRS_VCPU" +_rtchv = "reservation-total-capacity-hrs-vcpu" +_RTCHI = "RESERVATION_TOTAL_CAPACITY_HRS_INST" +_rtchi = "reservation-total-capacity-hrs-inst" +_RMSV = "RESERVATION_MAX_SIZE_VCPU" +_rmsv = "reservation-max-size-vcpu" +_RMSI = "RESERVATION_MAX_SIZE_INST" +_rmsi = "reservation-max-size-inst" +_RMSV_ = "RESERVATION_MIN_SIZE_VCPU" +_rmsv_ = "reservation-min-size-vcpu" +_RMSI_ = "RESERVATION_MIN_SIZE_INST" +_rmsi_ = "reservation-min-size-inst" +_RUTCHV = "RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_VCPU" +_rutchv = "reservation-unused-total-capacity-hrs-vcpu" +_RUTCHI = "RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_INST" +_rutchi = "reservation-unused-total-capacity-hrs-inst" +_RUTEC = "RESERVATION_UNUSED_TOTAL_ESTIMATED_COST" +_rutec = "reservation-unused-total-estimated-cost" +_RMUSV = "RESERVATION_MAX_UNUSED_SIZE_VCPU" +_rmusv = "reservation-max-unused-size-vcpu" +_RMUSI = "RESERVATION_MAX_UNUSED_SIZE_INST" +_rmusi = "reservation-max-unused-size-inst" +_RMUSV_ = "RESERVATION_MIN_UNUSED_SIZE_VCPU" +_rmusv_ = "reservation-min-unused-size-vcpu" +_RMUSI_ = "RESERVATION_MIN_UNUSED_SIZE_INST" +_rmusi_ = "reservation-min-unused-size-inst" +_RMU = "RESERVATION_MAX_UTILIZATION" +_rmu = "reservation-max-utilization" +_RMU_ = "RESERVATION_MIN_UTILIZATION" +_rmu_ = "reservation-min-utilization" +_RAUV = "RESERVATION_AVG_UTILIZATION_VCPU" +_rauv = "reservation-avg-utilization-vcpu" +_RAUI = "RESERVATION_AVG_UTILIZATION_INST" +_raui = "reservation-avg-utilization-inst" +_RTC = "RESERVATION_TOTAL_COUNT" +_rtc = "reservation-total-count" +_RTEC = "RESERVATION_TOTAL_ESTIMATED_COST" +_rtec = "reservation-total-estimated-cost" +_RAFSV = "RESERVATION_AVG_FUTURE_SIZE_VCPU" +_rafsv = "reservation-avg-future-size-vcpu" +_RAFSI = "RESERVATION_AVG_FUTURE_SIZE_INST" +_rafsi = "reservation-avg-future-size-inst" +_RMFSV = "RESERVATION_MIN_FUTURE_SIZE_VCPU" +_rmfsv = "reservation-min-future-size-vcpu" +_RMFSI = "RESERVATION_MIN_FUTURE_SIZE_INST" +_rmfsi = "reservation-min-future-size-inst" +_RMFSV_ = "RESERVATION_MAX_FUTURE_SIZE_VCPU" +_rmfsv_ = "reservation-max-future-size-vcpu" +_RMFSI_ = "RESERVATION_MAX_FUTURE_SIZE_INST" +_rmfsi_ = "reservation-max-future-size-inst" +_RACSV = "RESERVATION_AVG_COMMITTED_SIZE_VCPU" +_racsv = "reservation-avg-committed-size-vcpu" +_RACSI = "RESERVATION_AVG_COMMITTED_SIZE_INST" +_racsi = "reservation-avg-committed-size-inst" +_RMCSV = "RESERVATION_MAX_COMMITTED_SIZE_VCPU" +_rmcsv = "reservation-max-committed-size-vcpu" +_RMCSI = "RESERVATION_MAX_COMMITTED_SIZE_INST" +_rmcsi = "reservation-max-committed-size-inst" +_RMCSV_ = "RESERVATION_MIN_COMMITTED_SIZE_VCPU" +_rmcsv_ = "reservation-min-committed-size-vcpu" +_RMCSI_ = "RESERVATION_MIN_COMMITTED_SIZE_INST" +_rmcsi_ = "reservation-min-committed-size-inst" +_RTUHV = "RESERVED_TOTAL_USAGE_HRS_VCPU" +_rtuhv = "reserved-total-usage-hrs-vcpu" +_RTUHI = "RESERVED_TOTAL_USAGE_HRS_INST" +_rtuhi = "reserved-total-usage-hrs-inst" +_RTEC_ = "RESERVED_TOTAL_ESTIMATED_COST" +_rtec_ = "reserved-total-estimated-cost" +_UTUHV = "UNRESERVED_TOTAL_USAGE_HRS_VCPU" +_utuhv = "unreserved-total-usage-hrs-vcpu" +_UTUHI = "UNRESERVED_TOTAL_USAGE_HRS_INST" +_utuhi = "unreserved-total-usage-hrs-inst" +_UTEC = "UNRESERVED_TOTAL_ESTIMATED_COST" +_utec = "unreserved-total-estimated-cost" +_STUHV = "SPOT_TOTAL_USAGE_HRS_VCPU" +_stuhv = "spot-total-usage-hrs-vcpu" +_STUHI = "SPOT_TOTAL_USAGE_HRS_INST" +_stuhi = "spot-total-usage-hrs-inst" +_STEC = "SPOT_TOTAL_ESTIMATED_COST" +_stec = "spot-total-estimated-cost" +_SARTBII = "SPOT_AVG_RUN_TIME_BEFORE_INTERRUPTION_INST" +_sartbii = "spot-avg-run-time-before-interruption-inst" +_SMRTBII = "SPOT_MAX_RUN_TIME_BEFORE_INTERRUPTION_INST" +_smrtbii = "spot-max-run-time-before-interruption-inst" +_SMRTBII_ = "SPOT_MIN_RUN_TIME_BEFORE_INTERRUPTION_INST" +_smrtbii_ = "spot-min-run-time-before-interruption-inst" +_STII = "SPOT_TOTAL_INTERRUPTIONS_INST" +_stii = "spot-total-interruptions-inst" +_STIV = "SPOT_TOTAL_INTERRUPTIONS_VCPU" +_stiv = "spot-total-interruptions-vcpu" +_STCI = "SPOT_TOTAL_COUNT_INST" +_stci = "spot-total-count-inst" +_STCV = "SPOT_TOTAL_COUNT_VCPU" +_stcv = "spot-total-count-vcpu" +_SIRI_ = "SPOT_INTERRUPTION_RATE_INST" +_siri = "spot-interruption-rate-inst" +_SIRV = "SPOT_INTERRUPTION_RATE_VCPU" +_sirv = "spot-interruption-rate-vcpu" +_CTRV = "CAPACITY_TOTAL_REQUESTED_VCPU" +_ctrv = "capacity-total-requested-vcpu" +_CTFV = "CAPACITY_TOTAL_FULFILLED_VCPU" +_ctfv = "capacity-total-fulfilled-vcpu" +_SCTRV = "SPOT_CAPACITY_TOTAL_REQUESTED_VCPU" +_sctrv = "spot-capacity-total-requested-vcpu" +_SCTFV = "SPOT_CAPACITY_TOTAL_FULFILLED_VCPU" +_sctfv = "spot-capacity-total-fulfilled-vcpu" +_CRFR = "CAPACITY_REQUEST_FULFILLMENT_RATE" +_crfr = "capacity-request-fulfillment-rate" +_AIACPRV = "AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU" +_aiacprv = "avg-inst-az-count-per-requested-vcpu" +_IAFR = "INST_AZ_FULFILLMENT_RATE" +_iafr = "inst-az-fulfillment-rate" +_SCRFR = "SPOT_CAPACITY_REQUEST_FULFILLMENT_RATE" +_scrfr = "spot-capacity-request-fulfillment-rate" +_SAIACPRV = "SPOT_AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU" +_saiacprv = "spot-avg-inst-az-count-per-requested-vcpu" +_SIAFR = "SPOT_INST_AZ_FULFILLMENT_RATE" +_siafr = "spot-inst-az-fulfillment-rate" +_MSet = "MetricSet" +_GCMMDI = "GetCapacityManagerMetricDataInput" +_cGCMMDR = "com.amazonaws.ec2#GetCapacityManagerMetricDataRequest" +_MN = "MetricNames" +_MNe = "MetricName" +_FB = "FilterBy" +_REDTe = "ReservationEndDateType" +_LIMITED = "LIMITED" +_UNLIMITED = "UNLIMITED" +_ODCR_ = "ODCR" +_odc = "odcr" +_CMTD = "CapacityManagerTagDimension" +_CMTDS = "CapacityManagerTagDimensionSet" +_CTap = "CapacityTenancy" +_CMD = "CapacityManagerDimension" +_ANcc = "AccountName" +_aNc = "accountName" +_RAese = "ReservationArn" +_rAese = "reservationArn" +_RCTe = "ReservationCreateTimestamp" +_rCTe = "reservationCreateTimestamp" +_RSTe = "ReservationStartTimestamp" +_rST = "reservationStartTimestamp" +_RETe = "ReservationEndTimestamp" +_rETe = "reservationEndTimestamp" +_rEDT = "reservationEndDateType" +_RIMCe = "ReservationInstanceMatchCriteria" +_rIMC = "reservationInstanceMatchCriteria" +_RUFOe = "ReservationUnusedFinancialOwner" +_rUFO = "reservationUnusedFinancialOwner" +_MVe = "MetricValue" +_MVS = "MetricValueSet" +_MDR = "MetricDataResult" +_dim = "dimension" +_MVet = "MetricValues" +_mVS = "metricValueSet" +_MDRS = "MetricDataResultSet" +_GCMMDO = "GetCapacityManagerMetricDataOutput" +_cGCMMDRo = "com.amazonaws.ec2#GetCapacityManagerMetricDataResult" +_MDRe = "MetricDataResults" +_mDRS = "metricDataResultSet" +_GCMMD = "GetCapacityManagerMetricData" +_GCMMDIe = "GetCapacityManagerMetricDimensionsInput" +_cGCMMDRom = "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsRequest" +_MDRSe = "MetricDimensionResultSet" +_GCMMDOe = "GetCapacityManagerMetricDimensionsOutput" +_cGCMMDRoma = "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsResult" +_MDRet = "MetricDimensionResults" +_mDRSe = "metricDimensionResultSet" +_GCMMDe = "GetCapacityManagerMetricDimensions" +_GCMMTKRMR = "GetCapacityManagerMonitoredTagKeysRequestMaxResults" +_GCMMTKI = "GetCapacityManagerMonitoredTagKeysInput" +_cGCMMTKR = "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysRequest" +_CMMTKS = "CapacityManagerMonitoredTagKeyStatus" +_ACTIVATING = "ACTIVATING" +_acti = "activating" +_ACTIVATED = "ACTIVATED" +_activ = "activated" +_DEACTIVATING = "DEACTIVATING" +_deac = "deactivating" +_SUSPENDED = "SUSPENDED" +_sus = "suspended" +_CMMTK = "CapacityManagerMonitoredTagKey" +_tK = "tagKey" +_CMP = "CapacityManagerProvided" +_cMP = "capacityManagerProvided" +_CMMTKL = "CapacityManagerMonitoredTagKeyList" +_GCMMTKO = "GetCapacityManagerMonitoredTagKeysOutput" +_cGCMMTKRo = "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysResult" +_CMTK = "CapacityManagerTagKeys" +_CMTKS = "CapacityManagerTagKeySet" +_cMTKS = "capacityManagerTagKeySet" +_GCMMTK = "GetCapacityManagerMonitoredTagKeys" +_CAapa = "CapacityAmount" +_CAZIL = "CapacityAvailabilityZoneIdList" +_CU = "CapacityUnit" +_VCPUS = "VCPUS" +_vcpu = "vcpus" +_INSTANCES = "INSTANCES" +_ATSr = "ArchitectureTypeSet" +_VTS = "VirtualizationTypeSet" +_IRWMR = "InstanceRequirementsWithMetadataRequest" +_ATrc = "ArchitectureTypes" +_VTir = "VirtualizationTypes" +_SITL = "SupportabilityInstanceTypeList" +_SMT = "SupportabilityMarketType" +_GCMSSI = "GetCapacityManagerSupportabilityScoresInput" +_cGCMSSR = "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresRequest" +_CAZI = "CapacityAvailabilityZoneIds" +_CAZIa = "CapacityAvailabilityZoneId" +_IRWM = "InstanceRequirementsWithMetadata" +_SSupp = "SupportabilityScore" +_HIGH = "HIGH" +_MEDIUM = "MEDIUM" +_LOW = "LOW" +_CMSS = "CapacityManagerSupportabilityScore" +_Scor = "Score" +_scor = "score" +_CMSSS = "CapacityManagerSupportabilityScoreSet" +_GCMSSO = "GetCapacityManagerSupportabilityScoresOutput" +_cGCMSSRo = "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresResult" +_ASg = "AggregateScore" +_aSg = "aggregateScore" +_CMSSa = "CapacityManagerSupportabilityScores" +_cMSSS = "capacityManagerSupportabilityScoreSet" +_GCMSS = "GetCapacityManagerSupportabilityScores" +_GCRURMR = "GetCapacityReservationUsageRequestMaxResults" +_GCRUI = "GetCapacityReservationUsageInput" +_cGCRUR = "com.amazonaws.ec2#GetCapacityReservationUsageRequest" +_IU = "InstanceUsage" +_UIC = "UsedInstanceCount" +_uIC = "usedInstanceCount" +_IUS = "InstanceUsageSet" +_GCRUO = "GetCapacityReservationUsageOutput" +_cGCRURo = "com.amazonaws.ec2#GetCapacityReservationUsageResult" +_IUn = "InstanceUsages" +_iUS = "instanceUsageSet" +_GCRU = "GetCapacityReservationUsage" +_GCVEAPI = "GetClientVpnEndpointAuthorizationPolicyInput" +_cGCVEAPR = "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyRequest" +_CVAPSM = "ClientVpnAuthorizationPolicyShadowMode" +_GCVEAPO = "GetClientVpnEndpointAuthorizationPolicyOutput" +_cGCVEAPRo = "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyResult" +_SMh = "ShadowMode" +_sMh = "shadowMode" +_GCVEAP = "GetClientVpnEndpointAuthorizationPolicy" +_GCPUI = "GetCoipPoolUsageInput" +_cGCPUR = "com.amazonaws.ec2#GetCoipPoolUsageRequest" +_CAU = "CoipAddressUsage" +_CIop_ = "CoIp" +_cIop = "coIp" +_CAUS = "CoipAddressUsageSet" +_GCPUO = "GetCoipPoolUsageOutput" +_cGCPURo = "com.amazonaws.ec2#GetCoipPoolUsageResult" +_CAUo = "CoipAddressUsages" +_cAUS = "coipAddressUsageSet" +_GCPU = "GetCoipPoolUsage" +_GCOI = "GetConsoleOutputInput" +_cGCOR = "com.amazonaws.ec2#GetConsoleOutputRequest" +_Lat = "Latest" +_GCOO = "GetConsoleOutputOutput" +_cGCORo = "com.amazonaws.ec2#GetConsoleOutputResult" +_GCO = "GetConsoleOutput" +_GCSI = "GetConsoleScreenshotInput" +_cGCSR = "com.amazonaws.ec2#GetConsoleScreenshotRequest" +_WU = "WakeUp" +_GCSO = "GetConsoleScreenshotOutput" +_cGCSRo = "com.amazonaws.ec2#GetConsoleScreenshotResult" +_IDm = "ImageData" +_iDm = "imageData" +_GCS = "GetConsoleScreenshot" +_GDPRSI = "GetDeclarativePoliciesReportSummaryInput" +_cGDPRSR = "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryRequest" +_RSeg = "RegionalSummary" +_NOMA = "NumberOfMatchedAccounts" +_nOMA = "numberOfMatchedAccounts" +_NOUA = "NumberOfUnmatchedAccounts" +_nOUA = "numberOfUnmatchedAccounts" +_RSLe = "RegionalSummaryList" +_ASttr = "AttributeSummary" +_MFV = "MostFrequentValue" +_mFV = "mostFrequentValue" +_RSegi = "RegionalSummaries" +_RSSe = "RegionalSummarySet" +_rSSe = "regionalSummarySet" +_ASLt = "AttributeSummaryList" +_GDPRSO = "GetDeclarativePoliciesReportSummaryOutput" +_cGDPRSRo = "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryResult" +_NOA = "NumberOfAccounts" +_nOA = "numberOfAccounts" +_NOFA = "NumberOfFailedAccounts" +_nOFA = "numberOfFailedAccounts" +_ASttri = "AttributeSummaries" +_ASSt = "AttributeSummarySet" +_aSSt = "attributeSummarySet" +_GDPRS = "GetDeclarativePoliciesReportSummary" +_USIF = "UnlimitedSupportedInstanceFamily" +_t___________ = "t2" +_t____________ = "t3" +_ta_ = "t3a" +_ti_ = "t8i" +_GDCSI = "GetDefaultCreditSpecificationInput" +_cGDCSR = "com.amazonaws.ec2#GetDefaultCreditSpecificationRequest" +_IFCS = "InstanceFamilyCreditSpecification" +_GDCSO = "GetDefaultCreditSpecificationOutput" +_cGDCSRo = "com.amazonaws.ec2#GetDefaultCreditSpecificationResult" +_iFCS = "instanceFamilyCreditSpecification" +_GDCS = "GetDefaultCreditSpecification" +_GEDKKII = "GetEbsDefaultKmsKeyIdInput" +_cGEDKKIR = "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdRequest" +_GEDKKIO = "GetEbsDefaultKmsKeyIdOutput" +_cGEDKKIRo = "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdResult" +_GEDKKI = "GetEbsDefaultKmsKeyId" +_GEEBDI = "GetEbsEncryptionByDefaultInput" +_cGEEBDR = "com.amazonaws.ec2#GetEbsEncryptionByDefaultRequest" +_GEEBDO = "GetEbsEncryptionByDefaultOutput" +_cGEEBDRo = "com.amazonaws.ec2#GetEbsEncryptionByDefaultResult" +_GEEBD = "GetEbsEncryptionByDefault" +_GEIPI = "GetEnabledIpamPolicyInput" +_cGEIPR = "com.amazonaws.ec2#GetEnabledIpamPolicyRequest" +_IPMB = "IpamPolicyManagedBy" +_dafi = "delegated_administrator_for_ipam" +_dafi_ = "delegated-administrator-for-ipam" +_GEIPO = "GetEnabledIpamPolicyOutput" +_cGEIPRo = "com.amazonaws.ec2#GetEnabledIpamPolicyResult" +_IPEp = "IpamPolicyEnabled" +_iPEp = "ipamPolicyEnabled" +_GEIP = "GetEnabledIpamPolicy" +_PLF = "PartitionLoadFrequency" +_NONE = "NONE" +_DAILY = "DAILY" +_da = "daily" +_WEEKLY = "WEEKLY" +_wee = "weekly" +_MONTHLY = "MONTHLY" +_mont = "monthly" +_AIth = "AthenaIntegration" +_IRSDA = "IntegrationResultS3DestinationArn" +_PSD = "PartitionStartDate" +_PED = "PartitionEndDate" +_AISt = "AthenaIntegrationsSet" +_ISnte = "IntegrateServices" +_AIthe = "AthenaIntegrations" +_GFLITI = "GetFlowLogsIntegrationTemplateInput" +_cGFLITR = "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateRequest" +_CDSDA = "ConfigDeliveryS3DestinationArn" +_ISnteg = "IntegrateService" +_GFLITO = "GetFlowLogsIntegrationTemplateOutput" +_cGFLITRo = "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateResult" +_Resu = "Result" +_resu = "result" +_GFLIT = "GetFlowLogsIntegrationTemplate" +_GGFCRRMR = "GetGroupsForCapacityReservationRequestMaxResults" +_GGFCRI = "GetGroupsForCapacityReservationInput" +_cGGFCRR = "com.amazonaws.ec2#GetGroupsForCapacityReservationRequest" +_CRG = "CapacityReservationGroup" +_CRGS = "CapacityReservationGroupSet" +_GGFCRO = "GetGroupsForCapacityReservationOutput" +_cGGFCRRo = "com.amazonaws.ec2#GetGroupsForCapacityReservationResult" +_CRGa = "CapacityReservationGroups" +_cRGS = "capacityReservationGroupSet" +_GGFCR = "GetGroupsForCapacityReservation" +_RHISe = "RequestHostIdSet" +_GHRPPI = "GetHostReservationPurchasePreviewInput" +_cGHRPPR = "com.amazonaws.ec2#GetHostReservationPurchasePreviewRequest" +_Pur = "Purchase" +_PSu = "PurchaseSet" +_GHRPPO = "GetHostReservationPurchasePreviewOutput" +_cGHRPPRo = "com.amazonaws.ec2#GetHostReservationPurchasePreviewResult" +_pur = "purchase" +_THP = "TotalHourlyPrice" +_tHP = "totalHourlyPrice" +_TUP = "TotalUpfrontPrice" +_tUP = "totalUpfrontPrice" +_GHRPP = "GetHostReservationPurchasePreview" +_GIAI = "GetImageAncestryInput" +_cGIAR = "com.amazonaws.ec2#GetImageAncestryRequest" +_IAE = "ImageAncestryEntry" +_IAEL = "ImageAncestryEntryList" +_GIAO = "GetImageAncestryOutput" +_cGIARo = "com.amazonaws.ec2#GetImageAncestryResult" +_IAEm = "ImageAncestryEntries" +_IAES = "ImageAncestryEntrySet" +_iAES = "imageAncestryEntrySet" +_GIAe = "GetImageAncestry" +_GIBPASI = "GetImageBlockPublicAccessStateInput" +_cGIBPASR = "com.amazonaws.ec2#GetImageBlockPublicAccessStateRequest" +_GIBPASO = "GetImageBlockPublicAccessStateOutput" +_cGIBPASRo = "com.amazonaws.ec2#GetImageBlockPublicAccessStateResult" +_GIBPAS = "GetImageBlockPublicAccessState" +_GIFMR = "GetImageFindingsMaxResults" +_GIFI = "GetImageFindingsInput" +_cGIFR = "com.amazonaws.ec2#GetImageFindingsRequest" +_IFPS = "ImageFindingPathSet" +_IFm = "ImageFinding" +_FAix = "FixAvailable" +_fAix = "fixAvailable" +_FOAi = "FirstObservedAt" +_fOA = "firstObservedAt" +_Tit = "Title" +_tit = "title" +_Pat = "Paths" +_PSat = "PathSet" +_pSa = "pathSet" +_sLe = "severityLabel" +_GIFES = "GetImageFindingsEntrySet" +_GIFO = "GetImageFindingsOutput" +_cGIFRo = "com.amazonaws.ec2#GetImageFindingsResult" +_IFma = "ImageFindings" +_IFS = "ImageFindingSet" +_iFS = "imageFindingSet" +_GIF = "GetImageFindings" +_GIMDI = "GetInstanceMetadataDefaultsInput" +_cGIMDR = "com.amazonaws.ec2#GetInstanceMetadataDefaultsRequest" +_HTES = "HttpTokensEnforcedState" +_IMDR = "InstanceMetadataDefaultsResponse" +_MEM = "ManagedExceptionMessage" +_mEM = "managedExceptionMessage" +_HTE = "HttpTokensEnforced" +_hTE = "httpTokensEnforced" +_GIMDO = "GetInstanceMetadataDefaultsOutput" +_cGIMDRo = "com.amazonaws.ec2#GetInstanceMetadataDefaultsResult" +_ALcc = "AccountLevel" +_aLc = "accountLevel" +_GIMD = "GetInstanceMetadataDefaults" +_EPKF = "EkPubKeyFormat" +_der_ = "der" +_tpm = "tpmt" +_EPKT = "EkPubKeyType" +_R_ = "RSA_2048" +_r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ = "rsa-2048" +_ESP = "ECC_SEC_P384" +_esp = "ecc-sec-p384" +_GITEPI = "GetInstanceTpmEkPubInput" +_cGITEPR = "com.amazonaws.ec2#GetInstanceTpmEkPubRequest" +_EPKV = "EkPubKeyValue" +_GITEPO = "GetInstanceTpmEkPubOutput" +_cGITEPRo = "com.amazonaws.ec2#GetInstanceTpmEkPubResult" +_kFe = "keyFormat" +_KV = "KeyValue" +_kV = "keyValue" +_GITEP = "GetInstanceTpmEkPub" +_GITFIRI = "GetInstanceTypesFromInstanceRequirementsInput" +_cGITFIRR = "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsRequest" +_ITIFIR = "InstanceTypeInfoFromInstanceRequirements" +_ITIFIRS = "InstanceTypeInfoFromInstanceRequirementsSet" +_GITFIRO = "GetInstanceTypesFromInstanceRequirementsOutput" +_cGITFIRRo = "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsResult" +_GITFIR = "GetInstanceTypesFromInstanceRequirements" +_GIUDI = "GetInstanceUefiDataInput" +_cGIUDR = "com.amazonaws.ec2#GetInstanceUefiDataRequest" +_SSen = "SensitiveString" +_GIUDO = "GetInstanceUefiDataOutput" +_cGIUDRo = "com.amazonaws.ec2#GetInstanceUefiDataResult" +_GIUD = "GetInstanceUefiData" +_IAHMR = "IpamAddressHistoryMaxResults" +_GIAHI = "GetIpamAddressHistoryInput" +_cGIAHR = "com.amazonaws.ec2#GetIpamAddressHistoryRequest" +_ICSp = "IpamComplianceStatus" +_complia = "compliant" +_non = "noncompliant" +_ign = "ignored" +_IOSp = "IpamOverlapStatus" +_ove = "overlapping" +_nono = "nonoverlapping" +_IAHRT = "IpamAddressHistoryResourceType" +_IAHR = "IpamAddressHistoryRecord" +_RCes = "ResourceCidr" +_rCes = "resourceCidr" +_RNes = "ResourceName" +_rNes = "resourceName" +_RCS = "ResourceComplianceStatus" +_rCS = "resourceComplianceStatus" +_ROSe = "ResourceOverlapStatus" +_rOSe = "resourceOverlapStatus" +_SST = "SampledStartTime" +_sST = "sampledStartTime" +_SET = "SampledEndTime" +_sET = "sampledEndTime" +_IAHRS = "IpamAddressHistoryRecordSet" +_GIAHO = "GetIpamAddressHistoryOutput" +_cGIAHRo = "com.amazonaws.ec2#GetIpamAddressHistoryResult" +_GIAH = "GetIpamAddressHistory" +_GIDAI = "GetIpamDiscoveredAccountsInput" +_cGIDAR = "com.amazonaws.ec2#GetIpamDiscoveredAccountsRequest" +_DRi = "DiscoveryRegion" +_IDFC = "IpamDiscoveryFailureCode" +_arf = "assume_role_failure" +_arf_ = "assume-role-failure" +_tf__ = "throttling_failure" +_tf___ = "throttling-failure" +_uf__ = "unauthorized_failure" +_uf___ = "unauthorized-failure" +_IDFR = "IpamDiscoveryFailureReason" +_IDA = "IpamDiscoveredAccount" +_dRi = "discoveryRegion" +_LADT = "LastAttemptedDiscoveryTime" +_lADT = "lastAttemptedDiscoveryTime" +_LSDT = "LastSuccessfulDiscoveryTime" +_lSDT = "lastSuccessfulDiscoveryTime" +_OUI = "OrganizationalUnitId" +_oUI = "organizationalUnitId" +_IDAS = "IpamDiscoveredAccountSet" +_GIDAO = "GetIpamDiscoveredAccountsOutput" +_cGIDARo = "com.amazonaws.ec2#GetIpamDiscoveredAccountsResult" +_IDAp = "IpamDiscoveredAccounts" +_iDAS = "ipamDiscoveredAccountSet" +_GIDA = "GetIpamDiscoveredAccounts" +_GIDPAI = "GetIpamDiscoveredPublicAddressesInput" +_cGIDPAR = "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesRequest" +_ARd = "AddressRegion" +_IPAT = "IpamPublicAddressType" +_SMI = "SERVICE_MANAGED_IP" +_smi_ = "service-managed-ip" +_SMB = "SERVICE_MANAGED_BYOIP" +_smb = "service-managed-byoip" +_AOE = "AMAZON_OWNED_EIP" +_aoe = "amazon-owned-eip" +_AOC = "AMAZON_OWNED_CONTIG" +_aoc = "amazon-owned-contig" +_BYOIP = "BYOIP" +_EPI_ = "EC2_PUBLIC_IP" +_epi = "ec2-public-ip" +_AILI = "ANYCAST_IP_LIST_IP" +_aili = "anycast-ip-list-ip" +_IPAAS = "IpamPublicAddressAssociationStatus" +_IPASG = "IpamPublicAddressSecurityGroup" +_IPASGL = "IpamPublicAddressSecurityGroupList" +_IPAASp = "IpamPublicAddressAwsService" +_NG_ = "NAT_GATEWAY" +_ng = "nat-gateway" +_DMS = "DMS" +_dms = "database-migration-service" +_REDSHIFT = "REDSHIFT" +_red = "redshift" +_ECS_ = "ECS" +_ecs = "elastic-container-service" +_RDS_ = "RDS" +_rds = "relational-database-service" +_SV_ = "S2S_VPN" +_stsv = "site-to-site-vpn" +_EL_ = "EC2_LB" +_AGA = "AGA" +_ga_ = "global-accelerator" +_CLOUDFRONT = "CLOUDFRONT" +_clo = "cloudfront" +_OTHER = "OTHER" +_oth = "other" +_IPATp = "IpamPublicAddressTag" +_IPATL = "IpamPublicAddressTagList" +_IPATpa = "IpamPublicAddressTags" +_ETi = "EipTags" +_ETSi = "EipTagSet" +_eTSi = "eipTagSet" +_IDPA = "IpamDiscoveredPublicAddress" +_aRd = "addressRegion" +_AOI = "AddressOwnerId" +_aOI = "addressOwnerId" +_AAId = "AddressAllocationId" +_aAId = "addressAllocationId" +_aSsso = "associationStatus" +_ATddre = "AddressType" +_aTddr = "addressType" +_ser = "service" +_SRerv = "ServiceResource" +_sRer = "serviceResource" +_PIPI = "PublicIpv4PoolId" +_pIPI = "publicIpv4PoolId" +_NID = "NetworkInterfaceDescription" +_nID = "networkInterfaceDescription" +_STa = "SampleTime" +_sTa = "sampleTime" +_IDPAS = "IpamDiscoveredPublicAddressSet" +_GIDPAO = "GetIpamDiscoveredPublicAddressesOutput" +_cGIDPARo = "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesResult" +_IDPAp = "IpamDiscoveredPublicAddresses" +_iDPAS = "ipamDiscoveredPublicAddressSet" +_OST = "OldestSampleTime" +_oST = "oldestSampleTime" +_GIDPA = "GetIpamDiscoveredPublicAddresses" +_GIDRCI = "GetIpamDiscoveredResourceCidrsInput" +_cGIDRCR = "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsRequest" +_IRCIS = "IpamResourceCidrIpSource" +_BD = "BoxedDouble" +_INIAS = "IpamNetworkInterfaceAttachmentStatus" +_IDRC = "IpamDiscoveredResourceCidr" +_RTesou = "ResourceTags" +_RTSes = "ResourceTagSet" +_rTSes = "resourceTagSet" +_IUp = "IpUsage" +_iU = "ipUsage" +_NIASetw = "NetworkInterfaceAttachmentStatus" +_nIASet = "networkInterfaceAttachmentStatus" +_IDRCS = "IpamDiscoveredResourceCidrSet" +_GIDRCO = "GetIpamDiscoveredResourceCidrsOutput" +_cGIDRCRo = "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsResult" +_IDRCp = "IpamDiscoveredResourceCidrs" +_iDRCS = "ipamDiscoveredResourceCidrSet" +_GIDRC = "GetIpamDiscoveredResourceCidrs" +_GIDRI = "GetIpamDiscoveredRoutesInput" +_cGIDRR = "com.amazonaws.ec2#GetIpamDiscoveredRoutesRequest" +_IBAT = "IpamByoipAdvertisementType" +_glo = "global" +_IBCS = "IpamByoipCidrState" +_IDRp = "IpamDiscoveredRoute" +_IDRS = "IpamDiscoveredRouteSet" +_GIDRO = "GetIpamDiscoveredRoutesOutput" +_cGIDRRo = "com.amazonaws.ec2#GetIpamDiscoveredRoutesResult" +_IDRpa = "IpamDiscoveredRoutes" +_iDRS = "ipamDiscoveredRouteSet" +_GIDR = "GetIpamDiscoveredRoutes" +_GIIRAAI = "GetIpamInternetRegistryAssociationAsnsInput" +_cGIIRAAR = "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsRequest" +_IIRAAp = "IpamInternetRegistryAssociationAsn" +_LOA = "LastObservedAt" +_lOA = "lastObservedAt" +_IIRAAS = "IpamInternetRegistryAssociationAsnSet" +_GIIRAAO = "GetIpamInternetRegistryAssociationAsnsOutput" +_cGIIRAARo = "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsResult" +_IIRAApa = "IpamInternetRegistryAssociationAsns" +_iIRAAS = "ipamInternetRegistryAssociationAsnSet" +_GIIRAA = "GetIpamInternetRegistryAssociationAsns" +_GIIRACI = "GetIpamInternetRegistryAssociationCidrsInput" +_cGIIRACR = "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsRequest" +_IIRAC = "IpamInternetRegistryAssociationCidr" +_IIRACS = "IpamInternetRegistryAssociationCidrSet" +_GIIRACO = "GetIpamInternetRegistryAssociationCidrsOutput" +_cGIIRACRo = "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsResult" +_IIRACp = "IpamInternetRegistryAssociationCidrs" +_iIRACS = "ipamInternetRegistryAssociationCidrSet" +_GIIRAC = "GetIpamInternetRegistryAssociationCidrs" +_IPRT = "IpamPolicyResourceType" +_GIPARI = "GetIpamPolicyAllocationRulesInput" +_cGIPARR = "com.amazonaws.ec2#GetIpamPolicyAllocationRulesRequest" +_IPAR = "IpamPolicyAllocationRule" +_IPARL = "IpamPolicyAllocationRuleList" +_IPD = "IpamPolicyDocument" +_ARllo = "AllocationRules" +_ARSl = "AllocationRuleSet" +_aRSl = "allocationRuleSet" +_IPDS = "IpamPolicyDocumentSet" +_GIPARO = "GetIpamPolicyAllocationRulesOutput" +_cGIPARRo = "com.amazonaws.ec2#GetIpamPolicyAllocationRulesResult" +_IPDp = "IpamPolicyDocuments" +_iPDS = "ipamPolicyDocumentSet" +_GIPAR = "GetIpamPolicyAllocationRules" +_GIPOTI = "GetIpamPolicyOrganizationTargetsInput" +_cGIPOTR = "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsRequest" +_IPOT = "IpamPolicyOrganizationTarget" +_oTI = "organizationTargetId" +_IPOTS = "IpamPolicyOrganizationTargetSet" +_GIPOTO = "GetIpamPolicyOrganizationTargetsOutput" +_cGIPOTRo = "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsResult" +_OTrg = "OrganizationTargets" +_OTS = "OrganizationTargetSet" +_oTS = "organizationTargetSet" +_GIPOT = "GetIpamPolicyOrganizationTargets" +_GIPAMR = "GetIpamPoolAllocationsMaxResults" +_GIPAI = "GetIpamPoolAllocationsInput" +_cGIPAR = "com.amazonaws.ec2#GetIpamPoolAllocationsRequest" +_GIPAO = "GetIpamPoolAllocationsOutput" +_cGIPARo = "com.amazonaws.ec2#GetIpamPoolAllocationsResult" +_GIPA = "GetIpamPoolAllocations" +_GIPCI = "GetIpamPoolCidrsInput" +_cGIPCR = "com.amazonaws.ec2#GetIpamPoolCidrsRequest" +_IPCSp = "IpamPoolCidrSet" +_GIPCO = "GetIpamPoolCidrsOutput" +_cGIPCRo = "com.amazonaws.ec2#GetIpamPoolCidrsResult" +_IPCpam = "IpamPoolCidrs" +_iPCS = "ipamPoolCidrSet" +_GIPC = "GetIpamPoolCidrs" +_GIPLRRI = "GetIpamPrefixListResolverRulesInput" +_cGIPLRRR = "com.amazonaws.ec2#GetIpamPrefixListResolverRulesRequest" +_IPLRRC = "IpamPrefixListResolverRuleCondition" +_oper = "operation" +_rTes = "resourceTag" +_IPLRRCS = "IpamPrefixListResolverRuleConditionSet" +_IPLRR = "IpamPrefixListResolverRule" +_rTu = "ruleType" +_sCta = "staticCidr" +_CSond = "ConditionSet" +_cSon = "conditionSet" +_IPLRRS = "IpamPrefixListResolverRuleSet" +_GIPLRRO = "GetIpamPrefixListResolverRulesOutput" +_cGIPLRRRo = "com.amazonaws.ec2#GetIpamPrefixListResolverRulesResult" +_RSu = "RuleSet" +_rSu = "ruleSet" +_GIPLRR = "GetIpamPrefixListResolverRules" +_GIPLRVEI = "GetIpamPrefixListResolverVersionEntriesInput" +_cGIPLRVER = "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesRequest" +_IPLRV = "IpamPrefixListResolverVersion" +_IPLRVE = "IpamPrefixListResolverVersionEntry" +_IPLRVES = "IpamPrefixListResolverVersionEntrySet" +_GIPLRVEO = "GetIpamPrefixListResolverVersionEntriesOutput" +_cGIPLRVERo = "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesResult" +_GIPLRVE = "GetIpamPrefixListResolverVersionEntries" +_IPLRVNS = "IpamPrefixListResolverVersionNumberSet" +_GIPLRVI = "GetIpamPrefixListResolverVersionsInput" +_cGIPLRVR = "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsRequest" +_IPLRVp = "IpamPrefixListResolverVersions" +_IPLRVS = "IpamPrefixListResolverVersionSet" +_GIPLRVO = "GetIpamPrefixListResolverVersionsOutput" +_cGIPLRVRo = "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsResult" +_iPLRVS = "ipamPrefixListResolverVersionSet" +_GIPLRV = "GetIpamPrefixListResolverVersions" +_GIRCI = "GetIpamResourceCidrsInput" +_cGIRCR = "com.amazonaws.ec2#GetIpamResourceCidrsRequest" +_IMS = "IpamManagementState" +_IRC = "IpamResourceCidr" +_CSom = "ComplianceStatus" +_cSomp = "complianceStatus" +_MSa = "ManagementState" +_mSan = "managementState" +_OSv = "OverlapStatus" +_oSv = "overlapStatus" +_IRCS = "IpamResourceCidrSet" +_GIRCO = "GetIpamResourceCidrsOutput" +_cGIRCRo = "com.amazonaws.ec2#GetIpamResourceCidrsResult" +_IRCp = "IpamResourceCidrs" +_iRCS = "ipamResourceCidrSet" +_GIRC = "GetIpamResourceCidrs" +_GIROAI = "GetIpamRouteOriginAuthorizationsInput" +_cGIROAR = "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsRequest" +_IROAI = "IpamRouteOriginAuthorizationInfo" +_mL = "maxLength" +_IROAIS = "IpamRouteOriginAuthorizationInfoSet" +_GIROAO = "GetIpamRouteOriginAuthorizationsOutput" +_cGIROARo = "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsResult" +_IROA = "IpamRouteOriginAuthorizations" +_IROAS = "IpamRouteOriginAuthorizationSet" +_iROAS = "ipamRouteOriginAuthorizationSet" +_GIROA = "GetIpamRouteOriginAuthorizations" +_GIRPFI = "GetIpamRouteProtectionFindingsInput" +_cGIRPFR = "com.amazonaws.ec2#GetIpamRouteProtectionFindingsRequest" +_IROAp = "IpamRouteOriginAuthorization" +_Mat = "Match" +_mat = "match" +_Expir = "Expiration" +_expi = "expiration" +_IRO = "IpamRouteOverlap" +_DAet = "DetectedAt" +_dAet = "detectedAt" +_IROS = "IpamRouteOverlapSet" +_IRSp = "IpamRpkiStatus" +_IRSpa = "IpamRpkiStrength" +_stri = "strict" +_permi = "permissive" +_IRPF = "IpamRouteProtectionFinding" +_RSp = "RpkiStatus" +_rSp = "rpkiStatus" +_RSpk = "RpkiStrength" +_rSpk = "rpkiStrength" +_Roa = "Roas" +_RSoa = "RoaSet" +_rSoa = "roaSet" +_ROou = "RouteOverlaps" +_ROSo = "RouteOverlapSet" +_rOSo = "routeOverlapSet" +_RSTo = "RoaSampleTime" +_rSTo = "roaSampleTime" +_IRPFS = "IpamRouteProtectionFindingSet" +_GIRPFO = "GetIpamRouteProtectionFindingsOutput" +_cGIRPFRo = "com.amazonaws.ec2#GetIpamRouteProtectionFindingsResult" +_RPF = "RouteProtectionFindings" +_RPFS = "RouteProtectionFindingSet" +_rPFS = "routeProtectionFindingSet" +_GIRPF = "GetIpamRouteProtectionFindings" +_COh = "ChronologicalOrder" +_forw = "forward" +_reve = "reverse" +_GIRPRDI = "GetIpamRoutingPolicyRegistrationDeltasInput" +_cGIRPRDR = "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasRequest" +_IRPRDSp = "IpamRoutingPolicyRegistrationDeltaSet" +_GIRPRDO = "GetIpamRoutingPolicyRegistrationDeltasOutput" +_cGIRPRDRo = "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasResult" +_IRPRDp = "IpamRoutingPolicyRegistrationDeltas" +_iRPRDS = "ipamRoutingPolicyRegistrationDeltaSet" +_GIRPRD = "GetIpamRoutingPolicyRegistrationDeltas" +_GIRPRI = "GetIpamRoutingPolicyRegistrationsInput" +_cGIRPRR = "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsRequest" +_IRPRS = "IpamRoutingPolicyRegistrationState" +_pa________ = "pending_activate" +_pa_________ = "pending-activate" +_af______ = "activate_failed" +_af_______ = "activate-failed" +_IRPR = "IpamRoutingPolicyRegistration" +_ASsne = "AsnSet" +_aSsn = "asnSet" +_pMSA = "permitMoreSpecificAnnouncements" +_LDI = "LatestDeltaId" +_lDI = "latestDeltaId" +_IRPRSp = "IpamRoutingPolicyRegistrationSet" +_GIRPRO = "GetIpamRoutingPolicyRegistrationsOutput" +_cGIRPRRo = "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsResult" +_IRPRp = "IpamRoutingPolicyRegistrations" +_iRPRS = "ipamRoutingPolicyRegistrationSet" +_GIRPR = "GetIpamRoutingPolicyRegistrations" +_GLTDI = "GetLaunchTemplateDataInput" +_cGLTDR = "com.amazonaws.ec2#GetLaunchTemplateDataRequest" +_GLTDO = "GetLaunchTemplateDataOutput" +_cGLTDRo = "com.amazonaws.ec2#GetLaunchTemplateDataResult" +_GLTD = "GetLaunchTemplateData" +_GMPLAMR = "GetManagedPrefixListAssociationsMaxResults" +_GMPLAI = "GetManagedPrefixListAssociationsInput" +_cGMPLAR = "com.amazonaws.ec2#GetManagedPrefixListAssociationsRequest" +_PLAr = "PrefixListAssociation" +_PLAS = "PrefixListAssociationSet" +_GMPLAO = "GetManagedPrefixListAssociationsOutput" +_cGMPLARo = "com.amazonaws.ec2#GetManagedPrefixListAssociationsResult" +_PLAre = "PrefixListAssociations" +_pLAS = "prefixListAssociationSet" +_GMPLA = "GetManagedPrefixListAssociations" +_GMPLEI = "GetManagedPrefixListEntriesInput" +_cGMPLER = "com.amazonaws.ec2#GetManagedPrefixListEntriesRequest" +_TVa = "TargetVersion" +_PLE = "PrefixListEntry" +_PLES = "PrefixListEntrySet" +_GMPLEO = "GetManagedPrefixListEntriesOutput" +_cGMPLERo = "com.amazonaws.ec2#GetManagedPrefixListEntriesResult" +_GMPLE = "GetManagedPrefixListEntries" +_GMRVI = "GetManagedResourceVisibilityInput" +_cGMRVR = "com.amazonaws.ec2#GetManagedResourceVisibilityRequest" +_MRDV = "ManagedResourceDefaultVisibility" +_hid = "hidden" +_vi = "visible" +_MRVS = "ManagedResourceVisibilitySettings" +_DVefa = "DefaultVisibility" +_dVefa = "defaultVisibility" +_GMRVO = "GetManagedResourceVisibilityOutput" +_cGMRVRo = "com.amazonaws.ec2#GetManagedResourceVisibilityResult" +_Vi = "Visibility" +_vis = "visibility" +_GMRV = "GetManagedResourceVisibility" +_GNIASAFMR = "GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults" +_GNIASAFI = "GetNetworkInsightsAccessScopeAnalysisFindingsInput" +_cGNIASAFR = "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsRequest" +_GNIASAFO = "GetNetworkInsightsAccessScopeAnalysisFindingsOutput" +_cGNIASAFRo = "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsResult" +_aSn = "analysisStatus" +_AFn = "AnalysisFindings" +_AFS = "AnalysisFindingSet" +_aFS = "analysisFindingSet" +_GNIASAF = "GetNetworkInsightsAccessScopeAnalysisFindings" +_GNIASCI = "GetNetworkInsightsAccessScopeContentInput" +_cGNIASCR = "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentRequest" +_GNIASCO = "GetNetworkInsightsAccessScopeContentOutput" +_cGNIASCRo = "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentResult" +_GNIASC = "GetNetworkInsightsAccessScopeContent" +_GPDI = "GetPasswordDataInput" +_cGPDR = "com.amazonaws.ec2#GetPasswordDataRequest" +_PDa = "PasswordData" +_GPDO = "GetPasswordDataOutput" +_cGPDRo = "com.amazonaws.ec2#GetPasswordDataResult" +_pDa = "passwordData" +_GPD = "GetPasswordData" +_GRIEQI = "GetReservedInstancesExchangeQuoteInput" +_cGRIEQR = "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteRequest" +_RVe = "ReservationValue" +_RTV = "RemainingTotalValue" +_rTV = "remainingTotalValue" +_RUV = "RemainingUpfrontValue" +_rUV = "remainingUpfrontValue" +_RIRV = "ReservedInstanceReservationValue" +_rVe = "reservationValue" +_rIIe = "reservedInstanceId" +_RIRVS = "ReservedInstanceReservationValueSet" +_TRV = "TargetReservationValue" +_TRVS = "TargetReservationValueSet" +_GRIEQO = "GetReservedInstancesExchangeQuoteOutput" +_cGRIEQRo = "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteResult" +_IVEs = "IsValidExchange" +_iVE = "isValidExchange" +_ORIWEA = "OutputReservedInstancesWillExpireAt" +_oRIWEA = "outputReservedInstancesWillExpireAt" +_PDay = "PaymentDue" +_pDay = "paymentDue" +_RIVR = "ReservedInstanceValueRollup" +_rIVR = "reservedInstanceValueRollup" +_RIVS = "ReservedInstanceValueSet" +_rIVS = "reservedInstanceValueSet" +_TCVR = "TargetConfigurationValueRollup" +_tCVR = "targetConfigurationValueRollup" +_TCVS = "TargetConfigurationValueSet" +_tCVS = "targetConfigurationValueSet" +_VFR = "ValidationFailureReason" +_vFR = "validationFailureReason" +_GRIEQ = "GetReservedInstancesExchangeQuote" +_GRSAI = "GetRouteServerAssociationsInput" +_cGRSAR = "com.amazonaws.ec2#GetRouteServerAssociationsRequest" +_RSAL = "RouteServerAssociationsList" +_GRSAO = "GetRouteServerAssociationsOutput" +_cGRSARo = "com.amazonaws.ec2#GetRouteServerAssociationsResult" +_RSAo = "RouteServerAssociations" +_RSASo = "RouteServerAssociationSet" +_rSAS = "routeServerAssociationSet" +_GRSA = "GetRouteServerAssociations" +_GRSPI = "GetRouteServerPropagationsInput" +_cGRSPR = "com.amazonaws.ec2#GetRouteServerPropagationsRequest" +_RSPLo = "RouteServerPropagationsList" +_GRSPO = "GetRouteServerPropagationsOutput" +_cGRSPRo = "com.amazonaws.ec2#GetRouteServerPropagationsResult" +_RSPout = "RouteServerPropagations" +_RSPSout = "RouteServerPropagationSet" +_rSPSo = "routeServerPropagationSet" +_GRSP = "GetRouteServerPropagations" +_GRSRDI = "GetRouteServerRoutingDatabaseInput" +_cGRSRDR = "com.amazonaws.ec2#GetRouteServerRoutingDatabaseRequest" +_APs = "AsPath" +_RSRIS = "RouteServerRouteInstallationStatus" +_INSTALLED = "INSTALLED" +_instal = "installed" +_REJECTED = "REJECTED" +_RSRID = "RouteServerRouteInstallationDetail" +_RISo = "RouteInstallationStatus" +_rISo = "routeInstallationStatus" +_RISR = "RouteInstallationStatusReason" +_rISR = "routeInstallationStatusReason" +_RSRIDo = "RouteServerRouteInstallationDetails" +_RSRS = "RouteServerRouteStatus" +_IR_ = "IN_RIB" +_ir______ = "in-rib" +_IF___ = "IN_FIB" +_if__ = "in-fib" +_RSRo = "RouteServerRoute" +_RID = "RouteInstallationDetails" +_RIDS = "RouteInstallationDetailSet" +_rIDS = "routeInstallationDetailSet" +_RSoutet = "RouteStatus" +_rSout = "routeStatus" +_APsa = "AsPaths" +_APSs = "AsPathSet" +_aPS = "asPathSet" +_Med = "Med" +_med_ = "med" +_NHI = "NextHopIp" +_nHI = "nextHopIp" +_RSRL = "RouteServerRouteList" +_GRSRDO = "GetRouteServerRoutingDatabaseOutput" +_cGRSRDRo = "com.amazonaws.ec2#GetRouteServerRoutingDatabaseResult" +_ARP = "AreRoutesPersisted" +_aRP = "areRoutesPersisted" +_GRSRD = "GetRouteServerRoutingDatabase" +_GSGFVRMR = "GetSecurityGroupsForVpcRequestMaxResults" +_GSGFVI = "GetSecurityGroupsForVpcInput" +_cGSGFVR = "com.amazonaws.ec2#GetSecurityGroupsForVpcRequest" +_SGFV = "SecurityGroupForVpc" +_PVIr = "PrimaryVpcId" +_pVIr = "primaryVpcId" +_SGFVL = "SecurityGroupForVpcList" +_GSGFVO = "GetSecurityGroupsForVpcOutput" +_cGSGFVRo = "com.amazonaws.ec2#GetSecurityGroupsForVpcResult" +_SGFVe = "SecurityGroupForVpcs" +_SGFVS = "SecurityGroupForVpcSet" +_sGFVS = "securityGroupForVpcSet" +_GSGFV = "GetSecurityGroupsForVpc" +_GSCASI = "GetSerialConsoleAccessStatusInput" +_cGSCASR = "com.amazonaws.ec2#GetSerialConsoleAccessStatusRequest" +_GSCASO = "GetSerialConsoleAccessStatusOutput" +_cGSCASRo = "com.amazonaws.ec2#GetSerialConsoleAccessStatusResult" +_GSCAS = "GetSerialConsoleAccessStatus" +_GSBPASI = "GetSnapshotBlockPublicAccessStateInput" +_cGSBPASR = "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateRequest" +_GSBPASO = "GetSnapshotBlockPublicAccessStateOutput" +_cGSBPASRo = "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateResult" +_GSBPAS = "GetSnapshotBlockPublicAccessState" +_SPSMR = "SpotPlacementScoresMaxResults" +_SPSTC = "SpotPlacementScoresTargetCapacity" +_GSPSI = "GetSpotPlacementScoresInput" +_cGSPSR = "com.amazonaws.ec2#GetSpotPlacementScoresRequest" +_ILZ = "IncludeLocalZones" +_SPSp = "SpotPlacementScore" +_SPSpo = "SpotPlacementScores" +_GSPSO = "GetSpotPlacementScoresOutput" +_cGSPSRo = "com.amazonaws.ec2#GetSpotPlacementScoresResult" +_SPSS = "SpotPlacementScoreSet" +_sPSS = "spotPlacementScoreSet" +_GSPS = "GetSpotPlacementScores" +_GSCRMR = "GetSubnetCidrReservationsMaxResults" +_GSCRI = "GetSubnetCidrReservationsInput" +_cGSCRR = "com.amazonaws.ec2#GetSubnetCidrReservationsRequest" +_SCRL = "SubnetCidrReservationList" +_GSCRO = "GetSubnetCidrReservationsOutput" +_cGSCRRo = "com.amazonaws.ec2#GetSubnetCidrReservationsResult" +_SICR = "SubnetIpv4CidrReservations" +_SICRS = "SubnetIpv4CidrReservationSet" +_sICRS = "subnetIpv4CidrReservationSet" +_SICRu = "SubnetIpv6CidrReservations" +_SICRSu = "SubnetIpv6CidrReservationSet" +_sICRSu = "subnetIpv6CidrReservationSet" +_GSCR = "GetSubnetCidrReservations" +_GTGANCI = "GetTransitGatewayAttachmentNatConfigurationInput" +_cGTGANCR = "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationRequest" +_TGNRS = "TransitGatewayNatRuleState" +_deact = "deactivated" +_TGNR = "TransitGatewayNatRule" +_MSC = "MatchSourceCidr" +_mSC = "matchSourceCidr" +_NCa = "NatCidr" +_nCa = "natCidr" +_TGNRL = "TransitGatewayNatRuleList" +_TGANSRSV = "TransitGatewayAttachmentNatSystemRouteSupportValue" +_GTGANCO = "GetTransitGatewayAttachmentNatConfigurationOutput" +_cGTGANCRo = "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationResult" +_NSRS = "NatSystemRouteSupport" +_nSRS = "natSystemRouteSupport" +_NGR = "NatGatewayRules" +_NGRS = "NatGatewayRuleSet" +_nGRS = "natGatewayRuleSet" +_GTGANC = "GetTransitGatewayAttachmentNatConfiguration" +_GTGAPI = "GetTransitGatewayAttachmentPropagationsInput" +_cGTGAPR = "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsRequest" +_TGAP = "TransitGatewayAttachmentPropagation" +_TGAPL = "TransitGatewayAttachmentPropagationList" +_GTGAPO = "GetTransitGatewayAttachmentPropagationsOutput" +_cGTGAPRo = "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsResult" +_TGAPr = "TransitGatewayAttachmentPropagations" +_tGAP = "transitGatewayAttachmentPropagations" +_GTGAP = "GetTransitGatewayAttachmentPropagations" +_GTGMPEI = "GetTransitGatewayMeteringPolicyEntriesInput" +_cGTGMPER = "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesRequest" +_TGMPEL = "TransitGatewayMeteringPolicyEntryList" +_GTGMPEO = "GetTransitGatewayMeteringPolicyEntriesOutput" +_cGTGMPERo = "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesResult" +_TGMPEr = "TransitGatewayMeteringPolicyEntries" +_tGMPEr = "transitGatewayMeteringPolicyEntries" +_GTGMPE = "GetTransitGatewayMeteringPolicyEntries" +_GTGMDAI = "GetTransitGatewayMulticastDomainAssociationsInput" +_cGTGMDAR = "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsRequest" +_TGMDAra = "TransitGatewayMulticastDomainAssociation" +_TGMDAL = "TransitGatewayMulticastDomainAssociationList" +_GTGMDAO = "GetTransitGatewayMulticastDomainAssociationsOutput" +_cGTGMDARo = "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsResult" +_MDA = "MulticastDomainAssociations" +_mDA = "multicastDomainAssociations" +_GTGMDA = "GetTransitGatewayMulticastDomainAssociations" +_GTGPTAI = "GetTransitGatewayPolicyTableAssociationsInput" +_cGTGPTAR = "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsRequest" +_TGPTAL = "TransitGatewayPolicyTableAssociationList" +_GTGPTAO = "GetTransitGatewayPolicyTableAssociationsOutput" +_cGTGPTARo = "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsResult" +_GTGPTA = "GetTransitGatewayPolicyTableAssociations" +_GTGPTEI = "GetTransitGatewayPolicyTableEntriesInput" +_cGTGPTER = "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesRequest" +_TGPTEL = "TransitGatewayPolicyTableEntryList" +_GTGPTEO = "GetTransitGatewayPolicyTableEntriesOutput" +_cGTGPTERo = "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesResult" +_TGPTEr = "TransitGatewayPolicyTableEntries" +_tGPTEr = "transitGatewayPolicyTableEntries" +_GTGPTE = "GetTransitGatewayPolicyTableEntries" +_GTGPLRI = "GetTransitGatewayPrefixListReferencesInput" +_cGTGPLRR = "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesRequest" +_TGPLRSr = "TransitGatewayPrefixListReferenceSet" +_GTGPLRO = "GetTransitGatewayPrefixListReferencesOutput" +_cGTGPLRRo = "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesResult" +_TGPLRr = "TransitGatewayPrefixListReferences" +_tGPLRS = "transitGatewayPrefixListReferenceSet" +_GTGPLR = "GetTransitGatewayPrefixListReferences" +_GTGRTAI = "GetTransitGatewayRouteTableAssociationsInput" +_cGTGRTAR = "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsRequest" +_TGRTAra = "TransitGatewayRouteTableAssociation" +_TGRTALr = "TransitGatewayRouteTableAssociationList" +_GTGRTAO = "GetTransitGatewayRouteTableAssociationsOutput" +_cGTGRTARo = "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsResult" +_GTGRTA = "GetTransitGatewayRouteTableAssociations" +_GTGRTPI = "GetTransitGatewayRouteTablePropagationsInput" +_cGTGRTPR = "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsRequest" +_TGRTP = "TransitGatewayRouteTablePropagation" +_TGRTPL = "TransitGatewayRouteTablePropagationList" +_GTGRTPO = "GetTransitGatewayRouteTablePropagationsOutput" +_cGTGRTPRo = "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsResult" +_TGRTPr = "TransitGatewayRouteTablePropagations" +_tGRTP = "transitGatewayRouteTablePropagations" +_GTGRTP = "GetTransitGatewayRouteTablePropagations" +_GVAEPI = "GetVerifiedAccessEndpointPolicyInput" +_cGVAEPR = "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyRequest" +_GVAEPO = "GetVerifiedAccessEndpointPolicyOutput" +_cGVAEPRo = "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyResult" +_PEo = "PolicyEnabled" +_pEo = "policyEnabled" +_GVAEP = "GetVerifiedAccessEndpointPolicy" +_GVAETMR = "GetVerifiedAccessEndpointTargetsMaxResults" +_GVAETI = "GetVerifiedAccessEndpointTargetsInput" +_cGVAETR = "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsRequest" +_VAETe = "VerifiedAccessEndpointTarget" +_VAETIA = "VerifiedAccessEndpointTargetIpAddress" +_vAETIA = "verifiedAccessEndpointTargetIpAddress" +_VAETD = "VerifiedAccessEndpointTargetDns" +_vAETD = "verifiedAccessEndpointTargetDns" +_VAETL = "VerifiedAccessEndpointTargetList" +_GVAETO = "GetVerifiedAccessEndpointTargetsOutput" +_cGVAETRo = "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsResult" +_VAETer = "VerifiedAccessEndpointTargets" +_VAETS = "VerifiedAccessEndpointTargetSet" +_vAETS = "verifiedAccessEndpointTargetSet" +_GVAET = "GetVerifiedAccessEndpointTargets" +_GVAGPI = "GetVerifiedAccessGroupPolicyInput" +_cGVAGPR = "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyRequest" +_GVAGPO = "GetVerifiedAccessGroupPolicyOutput" +_cGVAGPRo = "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyResult" +_GVAGP = "GetVerifiedAccessGroupPolicy" +_GVRBEEMR = "GetVpcResourcesBlockingEncryptionEnforcementMaxResults" +_GVRBEEI = "GetVpcResourcesBlockingEncryptionEnforcementInput" +_cGVRBEER = "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementRequest" +_VENCR = "VpcEncryptionNonCompliantResource" +_IEs = "IsExcludable" +_iEs = "isExcludable" +_VENCRL = "VpcEncryptionNonCompliantResourceList" +_GVRBEEO = "GetVpcResourcesBlockingEncryptionEnforcementOutput" +_cGVRBEERo = "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementResult" +_NCR = "NonCompliantResources" +_NCRS = "NonCompliantResourceSet" +_nCRS = "nonCompliantResourceSet" +_GVRBEE = "GetVpcResourcesBlockingEncryptionEnforcement" +_VCDTI = "VpnConnectionDeviceTypeId" +_GVCDSCI = "GetVpnConnectionDeviceSampleConfigurationInput" +_cGVCDSCR = "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationRequest" +_IKEVn = "InternetKeyExchangeVersion" +_STam = "SampleType" +_VCDSC = "VpnConnectionDeviceSampleConfiguration" +_GVCDSCO = "GetVpnConnectionDeviceSampleConfigurationOutput" +_cGVCDSCRo = "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationResult" +_vCDSC = "vpnConnectionDeviceSampleConfiguration" +_GVCDSC = "GetVpnConnectionDeviceSampleConfiguration" +_GVCDTI = "GetVpnConnectionDeviceTypesInput" +_cGVCDTR = "com.amazonaws.ec2#GetVpnConnectionDeviceTypesRequest" +_VCDT = "VpnConnectionDeviceType" +_vCDTI = "vpnConnectionDeviceTypeId" +_Ven = "Vendor" +_ven = "vendor" +_Sof = "Software" +_sof = "software" +_VCDTL = "VpnConnectionDeviceTypeList" +_GVCDTO = "GetVpnConnectionDeviceTypesOutput" +_cGVCDTRo = "com.amazonaws.ec2#GetVpnConnectionDeviceTypesResult" +_VCDTp = "VpnConnectionDeviceTypes" +_VCDTS = "VpnConnectionDeviceTypeSet" +_vCDTS = "vpnConnectionDeviceTypeSet" +_GVCDT = "GetVpnConnectionDeviceTypes" +_GVTRSI = "GetVpnTunnelReplacementStatusInput" +_cGVTRSR = "com.amazonaws.ec2#GetVpnTunnelReplacementStatusRequest" +_MDai = "MaintenanceDetails" +_PM = "PendingMaintenance" +_pM = "pendingMaintenance" +_MAAA = "MaintenanceAutoAppliedAfter" +_mAAA = "maintenanceAutoAppliedAfter" +_LMA = "LastMaintenanceApplied" +_lMA = "lastMaintenanceApplied" +_GVTRSO = "GetVpnTunnelReplacementStatusOutput" +_cGVTRSRo = "com.amazonaws.ec2#GetVpnTunnelReplacementStatusResult" +_vTOIA = "vpnTunnelOutsideIpAddress" +_mDa = "maintenanceDetails" +_GVTRS = "GetVpnTunnelReplacementStatus" +_ICVCCRLI = "ImportClientVpnClientCertificateRevocationListInput" +_cICVCCRLR = "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListRequest" +_ICVCCRLO = "ImportClientVpnClientCertificateRevocationListOutput" +_cICVCCRLRo = "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListResult" +_ICVCCRL = "ImportClientVpnClientCertificateRevocationList" +_CDl = "ClientData" +_Comm = "Comment" +_UEp = "UploadEnd" +_USp = "UploadSize" +_USpl = "UploadStart" +_IDCm = "ImageDiskContainer" +_IDCL = "ImageDiskContainerList" +_IILCRm = "ImportImageLicenseConfigurationRequest" +_IILSLRm = "ImportImageLicenseSpecificationListRequest" +_III = "ImportImageInput" +_cIIR = "com.amazonaws.ec2#ImportImageRequest" +_DCisko = "DiskContainers" +_DCiskon = "DiskContainer" +_IIO = "ImportImageOutput" +_cIIRo = "com.amazonaws.ec2#ImportImageResult" +_IImpo = "ImportImage" +_DIDis = "DiskImageDetail" +_Byt = "Bytes" +_byt = "bytes" +_VDo = "VolumeDetail" +_DIisk = "DiskImage" +_DILi = "DiskImageList" +_Da = "Data" +_dat = "data" +_IILS = "ImportInstanceLaunchSpecification" +_AId = "AdditionalInfo" +_aId = "additionalInfo" +_IIIm = "ImportInstanceInput" +_cIIRom = "com.amazonaws.ec2#ImportInstanceRequest" +_DIiskm = "DiskImages" +_dIis = "diskImage" +_IIOm = "ImportInstanceOutput" +_cIIRoma = "com.amazonaws.ec2#ImportInstanceResult" +_cTonv = "conversionTask" +_Blo = "Blob" +_IKPI = "ImportKeyPairInput" +_cIKPR = "com.amazonaws.ec2#ImportKeyPairRequest" +_PKM = "PublicKeyMaterial" +_pKM = "publicKeyMaterial" +_IKPO = "ImportKeyPairOutput" +_cIKPRo = "com.amazonaws.ec2#ImportKeyPairResult" +_IKP = "ImportKeyPair" +_SDCn = "SnapshotDiskContainer" +_ISIm = "ImportSnapshotInput" +_cISR = "com.amazonaws.ec2#ImportSnapshotRequest" +_ISO = "ImportSnapshotOutput" +_cISRo = "com.amazonaws.ec2#ImportSnapshotResult" +_ISmpo = "ImportSnapshot" +_IVI = "ImportVolumeInput" +_cIVR = "com.amazonaws.ec2#ImportVolumeRequest" +_IVO = "ImportVolumeOutput" +_cIVRo = "com.amazonaws.ec2#ImportVolumeResult" +_LIIRBMR = "ListImagesInRecycleBinMaxResults" +_LIIRBI = "ListImagesInRecycleBinInput" +_cLIIRBR = "com.amazonaws.ec2#ListImagesInRecycleBinRequest" +_IRBI = "ImageRecycleBinInfo" +_RBET = "RecycleBinEnterTime" +_rBET = "recycleBinEnterTime" +_RBETe = "RecycleBinExitTime" +_rBETe = "recycleBinExitTime" +_IRBIL = "ImageRecycleBinInfoList" +_LIIRBO = "ListImagesInRecycleBinOutput" +_cLIIRBRo = "com.amazonaws.ec2#ListImagesInRecycleBinResult" +_ISmage = "ImageSet" +_iSmage = "imageSet" +_LIIRB = "ListImagesInRecycleBin" +_LSIRBMR = "ListSnapshotsInRecycleBinMaxResults" +_LSIRBI = "ListSnapshotsInRecycleBinInput" +_cLSIRBR = "com.amazonaws.ec2#ListSnapshotsInRecycleBinRequest" +_SRBI = "SnapshotRecycleBinInfo" +_SRBIL = "SnapshotRecycleBinInfoList" +_LSIRBO = "ListSnapshotsInRecycleBinOutput" +_cLSIRBRo = "com.amazonaws.ec2#ListSnapshotsInRecycleBinResult" +_LSIRB = "ListSnapshotsInRecycleBin" +_LVIRBI = "ListVolumesInRecycleBinInput" +_cLVIRBR = "com.amazonaws.ec2#ListVolumesInRecycleBinRequest" +_VRBI = "VolumeRecycleBinInfo" +_VRBIL = "VolumeRecycleBinInfoList" +_LVIRBO = "ListVolumesInRecycleBinOutput" +_cLVIRBRo = "com.amazonaws.ec2#ListVolumesInRecycleBinResult" +_LVIRB = "ListVolumesInRecycleBin" +_COPRHo = "CoolOffPeriodRequestHours" +_RPRDe = "RetentionPeriodRequestDays" +_LM = "LockMode" +_LSIo = "LockSnapshotInput" +_cLSR = "com.amazonaws.ec2#LockSnapshotRequest" +_EDx = "ExpirationDate" +_LSO = "LockSnapshotOutput" +_cLSRo = "com.amazonaws.ec2#LockSnapshotResult" +_LSock = "LockSnapshot" +_MAVECI = "ModifyAccountVpcEncryptionControlInput" +_cMAVECR = "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlRequest" +_MAVECO = "ModifyAccountVpcEncryptionControlOutput" +_cMAVECRo = "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlResult" +_MAVEC = "ModifyAccountVpcEncryptionControl" +_MAAI = "ModifyAddressAttributeInput" +_cMAAR = "com.amazonaws.ec2#ModifyAddressAttributeRequest" +_DNo = "DomainName" +_MAAO = "ModifyAddressAttributeOutput" +_cMAARo = "com.amazonaws.ec2#ModifyAddressAttributeResult" +_MAA = "ModifyAddressAttribute" +_MASCI = "ModifyApplicationStatusCheckInput" +_cMASCR = "com.amazonaws.ec2#ModifyApplicationStatusCheckRequest" +_MASCO = "ModifyApplicationStatusCheckOutput" +_cMASCRo = "com.amazonaws.ec2#ModifyApplicationStatusCheckResult" +_MASC = "ModifyApplicationStatusCheck" +_MAZOIS = "ModifyAvailabilityZoneOptInStatus" +_MAZGI = "ModifyAvailabilityZoneGroupInput" +_cMAZGR = "com.amazonaws.ec2#ModifyAvailabilityZoneGroupRequest" +_MAZGO = "ModifyAvailabilityZoneGroupOutput" +_cMAZGRo = "com.amazonaws.ec2#ModifyAvailabilityZoneGroupResult" +_MAZG = "ModifyAvailabilityZoneGroup" +_MCRI = "ModifyCapacityReservationInput" +_cMCRR = "com.amazonaws.ec2#ModifyCapacityReservationRequest" +_Accep = "Accept" +_AMT = "AcceptModificationTerms" +_MCRO = "ModifyCapacityReservationOutput" +_cMCRRo = "com.amazonaws.ec2#ModifyCapacityReservationResult" +_MCR = "ModifyCapacityReservation" +_MCRFI = "ModifyCapacityReservationFleetInput" +_cMCRFR = "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest" +_RED = "RemoveEndDate" +_MCRFO = "ModifyCapacityReservationFleetOutput" +_cMCRFRo = "com.amazonaws.ec2#ModifyCapacityReservationFleetResult" +_MCRF = "ModifyCapacityReservationFleet" +_DSOMS = "DnsServersOptionsModifyStructure" +_CDSu = "CustomDnsServers" +_MCVEI = "ModifyClientVpnEndpointInput" +_cMCVER = "com.amazonaws.ec2#ModifyClientVpnEndpointRequest" +_MCVEO = "ModifyClientVpnEndpointOutput" +_cMCVERo = "com.amazonaws.ec2#ModifyClientVpnEndpointResult" +_MCVE = "ModifyClientVpnEndpoint" +_MCVEAPI = "ModifyClientVpnEndpointAuthorizationPolicyInput" +_cMCVEAPR = "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyRequest" +_MCVEAPO = "ModifyClientVpnEndpointAuthorizationPolicyOutput" +_cMCVEAPRo = "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyResult" +_MCVEAP = "ModifyClientVpnEndpointAuthorizationPolicy" +_MDCSI = "ModifyDefaultCreditSpecificationInput" +_cMDCSR = "com.amazonaws.ec2#ModifyDefaultCreditSpecificationRequest" +_MDCSO = "ModifyDefaultCreditSpecificationOutput" +_cMDCSRo = "com.amazonaws.ec2#ModifyDefaultCreditSpecificationResult" +_MDCS = "ModifyDefaultCreditSpecification" +_MEDKKII = "ModifyEbsDefaultKmsKeyIdInput" +_cMEDKKIR = "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdRequest" +_MEDKKIO = "ModifyEbsDefaultKmsKeyIdOutput" +_cMEDKKIRo = "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdResult" +_MEDKKI = "ModifyEbsDefaultKmsKeyId" +_MFI = "ModifyFleetInput" +_cMFR = "com.amazonaws.ec2#ModifyFleetRequest" +_MFO = "ModifyFleetOutput" +_cMFRo = "com.amazonaws.ec2#ModifyFleetResult" +_MFo = "ModifyFleet" +_LPR = "LoadPermissionRequest" +_LPLR = "LoadPermissionListRequest" +_LPM = "LoadPermissionModifications" +_Add_ = "Add" +_Remo = "Remove" +_OTp = "OperationType" +_add = "add" +_remo = "remove" +_PCSL = "ProductCodeStringList" +_UGSL = "UserGroupStringList" +_UG = "UserGroup" +_UISL = "UserIdStringList" +_MFIAI = "ModifyFpgaImageAttributeInput" +_cMFIAR = "com.amazonaws.ec2#ModifyFpgaImageAttributeRequest" +_UIse = "UserIds" +_UGs = "UserGroups" +_MFIAO = "ModifyFpgaImageAttributeOutput" +_cMFIARo = "com.amazonaws.ec2#ModifyFpgaImageAttributeResult" +_MFIA = "ModifyFpgaImageAttribute" +_MHI = "ModifyHostsInput" +_cMHR = "com.amazonaws.ec2#ModifyHostsRequest" +_UILn = "UnsuccessfulItemList" +_MHO = "ModifyHostsOutput" +_cMHRo = "com.amazonaws.ec2#ModifyHostsResult" +_MHo = "ModifyHosts" +_MIIFI = "ModifyIdentityIdFormatInput" +_cMIIFR = "com.amazonaws.ec2#ModifyIdentityIdFormatRequest" +_MIIFO = "ModifyIdentityIdFormatOutput" +_MIIF = "ModifyIdentityIdFormat" +_MIFI = "ModifyIdFormatInput" +_cMIFR = "com.amazonaws.ec2#ModifyIdFormatRequest" +_MIFO = "ModifyIdFormatOutput" +_MIF = "ModifyIdFormat" +_LPMa = "LaunchPermissionModifications" +_OUASL = "OrganizationalUnitArnStringList" +_OASL = "OrganizationArnStringList" +_MIAI = "ModifyImageAttributeInput" +_cMIAR = "com.amazonaws.ec2#ModifyImageAttributeRequest" +_OArga = "OrganizationArns" +_OUAr = "OrganizationalUnitArns" +_MIAO = "ModifyImageAttributeOutput" +_MIA = "ModifyImageAttribute" +_EIBDS = "EbsInstanceBlockDeviceSpecification" +_IBDMS = "InstanceBlockDeviceMappingSpecification" +_IBDMSL = "InstanceBlockDeviceMappingSpecificationList" +_EOR = "EnclaveOptionsRequest" +_SBAV = "SecureBlobAttributeValue" +_MIAV = "ModifyInstanceAttributeValue" +_MIAIo = "ModifyInstanceAttributeInput" +_cMIARo = "com.amazonaws.ec2#ModifyInstanceAttributeRequest" +_MIAOo = "ModifyInstanceAttributeOutput" +_MIAo = "ModifyInstanceAttribute" +_MICRAI = "ModifyInstanceCapacityReservationAttributesInput" +_cMICRAR = "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesRequest" +_MICRAO = "ModifyInstanceCapacityReservationAttributesOutput" +_cMICRARo = "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesResult" +_MICRA = "ModifyInstanceCapacityReservationAttributes" +_MICEI = "ModifyInstanceConnectEndpointInput" +_cMICER = "com.amazonaws.ec2#ModifyInstanceConnectEndpointRequest" +_MICEO = "ModifyInstanceConnectEndpointOutput" +_cMICERo = "com.amazonaws.ec2#ModifyInstanceConnectEndpointResult" +_MICE = "ModifyInstanceConnectEndpoint" +_MICOI = "ModifyInstanceCpuOptionsInput" +_cMICOR = "com.amazonaws.ec2#ModifyInstanceCpuOptionsRequest" +_MICOO = "ModifyInstanceCpuOptionsOutput" +_cMICORo = "com.amazonaws.ec2#ModifyInstanceCpuOptionsResult" +_MICO = "ModifyInstanceCpuOptions" +_ICSR = "InstanceCreditSpecificationRequest" +_ICSLR = "InstanceCreditSpecificationListRequest" +_MICSI = "ModifyInstanceCreditSpecificationInput" +_cMICSR = "com.amazonaws.ec2#ModifyInstanceCreditSpecificationRequest" +_SICSI = "SuccessfulInstanceCreditSpecificationItem" +_SICSS = "SuccessfulInstanceCreditSpecificationSet" +_UICSEC = "UnsuccessfulInstanceCreditSpecificationErrorCode" +_III_ = "INVALID_INSTANCE_ID" +_IIIDM = "InvalidInstanceID.Malformed" +_INF = "INSTANCE_NOT_FOUND" +_IIIDNF = "InvalidInstanceID.NotFound" +_IIS_ = "INCORRECT_INSTANCE_STATE" +_IISnc = "IncorrectInstanceState" +_ICSNS = "INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED" +_ICSNSn = "InstanceCreditSpecification.NotSupported" +_UICSIE = "UnsuccessfulInstanceCreditSpecificationItemError" +_UICSI = "UnsuccessfulInstanceCreditSpecificationItem" +_UICSS = "UnsuccessfulInstanceCreditSpecificationSet" +_MICSO = "ModifyInstanceCreditSpecificationOutput" +_cMICSRo = "com.amazonaws.ec2#ModifyInstanceCreditSpecificationResult" +_SICS = "SuccessfulInstanceCreditSpecifications" +_sICSS = "successfulInstanceCreditSpecificationSet" +_UICS = "UnsuccessfulInstanceCreditSpecifications" +_uICSS = "unsuccessfulInstanceCreditSpecificationSet" +_MICS = "ModifyInstanceCreditSpecification" +_MIESTI = "ModifyInstanceEventStartTimeInput" +_cMIESTR = "com.amazonaws.ec2#ModifyInstanceEventStartTimeRequest" +_MIESTO = "ModifyInstanceEventStartTimeOutput" +_cMIESTRo = "com.amazonaws.ec2#ModifyInstanceEventStartTimeResult" +_Eve = "Event" +_ev = "event" +_MIEST = "ModifyInstanceEventStartTime" +_MIEWI = "ModifyInstanceEventWindowInput" +_cMIEWR = "com.amazonaws.ec2#ModifyInstanceEventWindowRequest" +_MIEWO = "ModifyInstanceEventWindowOutput" +_cMIEWRo = "com.amazonaws.ec2#ModifyInstanceEventWindowResult" +_MIEW = "ModifyInstanceEventWindow" +_MIMOI = "ModifyInstanceMaintenanceOptionsInput" +_cMIMOR = "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsRequest" +_MIMOO = "ModifyInstanceMaintenanceOptionsOutput" +_cMIMORo = "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsResult" +_MIMO = "ModifyInstanceMaintenanceOptions" +_DIMES = "DefaultInstanceMetadataEndpointState" +_np = "no_preference" +_np_ = "no-preference" +_MDHTS = "MetadataDefaultHttpTokensState" +_DHTES = "DefaultHttpTokensEnforcedState" +_DIMTS = "DefaultInstanceMetadataTagsState" +_MIMDI = "ModifyInstanceMetadataDefaultsInput" +_cMIMDR = "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsRequest" +_MIMDO = "ModifyInstanceMetadataDefaultsOutput" +_cMIMDRo = "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsResult" +_MIMD = "ModifyInstanceMetadataDefaults" +_MIMOIo = "ModifyInstanceMetadataOptionsInput" +_cMIMORom = "com.amazonaws.ec2#ModifyInstanceMetadataOptionsRequest" +_MIMOOo = "ModifyInstanceMetadataOptionsOutput" +_cMIMORoma = "com.amazonaws.ec2#ModifyInstanceMetadataOptionsResult" +_IMOns = "InstanceMetadataOptions" +_iMOn = "instanceMetadataOptions" +_MIMOo = "ModifyInstanceMetadataOptions" +_MINPOI = "ModifyInstanceNetworkPerformanceOptionsInput" +_cMINPR = "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceRequest" +_MINPOO = "ModifyInstanceNetworkPerformanceOptionsOutput" +_cMINPRo = "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceResult" +_MINPO = "ModifyInstanceNetworkPerformanceOptions" +_HTo = "HostTenancy" +_MIPI = "ModifyInstancePlacementInput" +_cMIPR = "com.amazonaws.ec2#ModifyInstancePlacementRequest" +_MIPO = "ModifyInstancePlacementOutput" +_cMIPRo = "com.amazonaws.ec2#ModifyInstancePlacementResult" +_MIPo = "ModifyInstancePlacement" +_RIOR = "RemoveIpamOperatingRegion" +_RIORS = "RemoveIpamOperatingRegionSet" +_MII = "ModifyIpamInput" +_cMIR = "com.amazonaws.ec2#ModifyIpamRequest" +_AOR = "AddOperatingRegions" +_AORd = "AddOperatingRegion" +_ROR = "RemoveOperatingRegions" +_RORe = "RemoveOperatingRegion" +_MIO = "ModifyIpamOutput" +_cMIRo = "com.amazonaws.ec2#ModifyIpamResult" +_MIo = "ModifyIpam" +_IPARR = "IpamPolicyAllocationRuleRequest" +_IPARLR = "IpamPolicyAllocationRuleListRequest" +_MIPARI = "ModifyIpamPolicyAllocationRulesInput" +_cMIPARR = "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesRequest" +_ARlloc = "AllocationRule" +_MIPARO = "ModifyIpamPolicyAllocationRulesOutput" +_cMIPARRo = "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesResult" +_iPD = "ipamPolicyDocument" +_MIPAR = "ModifyIpamPolicyAllocationRules" +_MIPIo = "ModifyIpamPoolInput" +_cMIPRom = "com.amazonaws.ec2#ModifyIpamPoolRequest" +_CADNL = "ClearAllocationDefaultNetmaskLength" +_AART = "AddAllocationResourceTags" +_AARTd = "AddAllocationResourceTag" +_RART = "RemoveAllocationResourceTags" +_RARTe = "RemoveAllocationResourceTag" +_MIPOo = "ModifyIpamPoolOutput" +_cMIPRoma = "com.amazonaws.ec2#ModifyIpamPoolResult" +_MIPod = "ModifyIpamPool" +_MIPAI = "ModifyIpamPoolAllocationInput" +_cMIPAR = "com.amazonaws.ec2#ModifyIpamPoolAllocationRequest" +_MIPAO = "ModifyIpamPoolAllocationOutput" +_cMIPARo = "com.amazonaws.ec2#ModifyIpamPoolAllocationResult" +_MIPA = "ModifyIpamPoolAllocation" +_MIPLRI = "ModifyIpamPrefixListResolverInput" +_cMIPLRR = "com.amazonaws.ec2#ModifyIpamPrefixListResolverRequest" +_MIPLRO = "ModifyIpamPrefixListResolverOutput" +_cMIPLRRo = "com.amazonaws.ec2#ModifyIpamPrefixListResolverResult" +_MIPLR = "ModifyIpamPrefixListResolver" +_MIPLRTI = "ModifyIpamPrefixListResolverTargetInput" +_cMIPLRTR = "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetRequest" +_MIPLRTO = "ModifyIpamPrefixListResolverTargetOutput" +_cMIPLRTRo = "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetResult" +_MIPLRT = "ModifyIpamPrefixListResolverTarget" +_MIRCI = "ModifyIpamResourceCidrInput" +_cMIRCR = "com.amazonaws.ec2#ModifyIpamResourceCidrRequest" +_CISIu = "CurrentIpamScopeId" +_DISIest = "DestinationIpamScopeId" +_Moni = "Monitored" +_MIRCO = "ModifyIpamResourceCidrOutput" +_cMIRCRo = "com.amazonaws.ec2#ModifyIpamResourceCidrResult" +_iRC = "ipamResourceCidr" +_MIRC = "ModifyIpamResourceCidr" +_RIOUE = "RemoveIpamOrganizationalUnitExclusion" +_RIOUES = "RemoveIpamOrganizationalUnitExclusionSet" +_MIRDI = "ModifyIpamResourceDiscoveryInput" +_cMIRDR = "com.amazonaws.ec2#ModifyIpamResourceDiscoveryRequest" +_AOUE = "AddOrganizationalUnitExclusions" +_AOUEd = "AddOrganizationalUnitExclusion" +_ROUE = "RemoveOrganizationalUnitExclusions" +_ROUEe = "RemoveOrganizationalUnitExclusion" +_MIRDO = "ModifyIpamResourceDiscoveryOutput" +_cMIRDRo = "com.amazonaws.ec2#ModifyIpamResourceDiscoveryResult" +_MIRD = "ModifyIpamResourceDiscovery" +_MIRPRI = "ModifyIpamRoutingPolicyRegistrationInput" +_cMIRPRR = "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationRequest" +_MIRPRO = "ModifyIpamRoutingPolicyRegistrationOutput" +_cMIRPRRo = "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationResult" +_MIRPR = "ModifyIpamRoutingPolicyRegistration" +_MISI = "ModifyIpamScopeInput" +_cMISR = "com.amazonaws.ec2#ModifyIpamScopeRequest" +_REAC = "RemoveExternalAuthorityConfiguration" +_MISO = "ModifyIpamScopeOutput" +_cMISRo = "com.amazonaws.ec2#ModifyIpamScopeResult" +_MIS = "ModifyIpamScope" +_MLTI = "ModifyLaunchTemplateInput" +_cMLTR = "com.amazonaws.ec2#ModifyLaunchTemplateRequest" +_SDV = "SetDefaultVersion" +_MLTO = "ModifyLaunchTemplateOutput" +_cMLTRo = "com.amazonaws.ec2#ModifyLaunchTemplateResult" +_MLT = "ModifyLaunchTemplate" +_MLGRI = "ModifyLocalGatewayRouteInput" +_cMLGRR = "com.amazonaws.ec2#ModifyLocalGatewayRouteRequest" +_MLGRO = "ModifyLocalGatewayRouteOutput" +_cMLGRRo = "com.amazonaws.ec2#ModifyLocalGatewayRouteResult" +_MLGR = "ModifyLocalGatewayRoute" +_RPLE = "RemovePrefixListEntry" +_RPLEe = "RemovePrefixListEntries" +_MMPLI = "ModifyManagedPrefixListInput" +_cMMPLR = "com.amazonaws.ec2#ModifyManagedPrefixListRequest" +_CVu = "CurrentVersion" +_AEd = "AddEntries" +_AEdd = "AddEntry" +_REem = "RemoveEntries" +_REemo = "RemoveEntry" +_MMPLO = "ModifyManagedPrefixListOutput" +_cMMPLRo = "com.amazonaws.ec2#ModifyManagedPrefixListResult" +_MMPL = "ModifyManagedPrefixList" +_MMRVI = "ModifyManagedResourceVisibilityInput" +_cMMRVR = "com.amazonaws.ec2#ModifyManagedResourceVisibilityRequest" +_MMRVO = "ModifyManagedResourceVisibilityOutput" +_cMMRVRo = "com.amazonaws.ec2#ModifyManagedResourceVisibilityResult" +_MMRV = "ModifyManagedResourceVisibility" +_SILu = "SubnetIdList" +_ASIs = "AssociatedSubnetId" +_NIAC = "NetworkInterfaceAttachmentChanges" +_DEQC = "DefaultEnaQueueCount" +_MNIAI = "ModifyNetworkInterfaceAttributeInput" +_cMNIAR = "com.amazonaws.ec2#ModifyNetworkInterfaceAttributeRequest" +_ASIss = "AssociatedSubnetIds" +_MNIAO = "ModifyNetworkInterfaceAttributeOutput" +_MNIA = "ModifyNetworkInterfaceAttribute" +_MPDNOI = "ModifyPrivateDnsNameOptionsInput" +_cMPDNOR = "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsRequest" +_PDHT = "PrivateDnsHostnameType" +_MPDNOO = "ModifyPrivateDnsNameOptionsOutput" +_cMPDNORo = "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsResult" +_MPDNO = "ModifyPrivateDnsNameOptions" +_PIDO = "PublicIpDnsOption" +_pdsdn = "public_dual_stack_dns_name" +_pdsdn_ = "public-dual-stack-dns-name" +_pidn = "public_ipv4_dns_name" +_pidn_ = "public-ipv4-dns-name" +_pidn__ = "public_ipv6_dns_name" +_pidn___ = "public-ipv6-dns-name" +_MPIDNOI = "ModifyPublicIpDnsNameOptionsInput" +_cMPIDNOR = "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsRequest" +_MPIDNOO = "ModifyPublicIpDnsNameOptionsOutput" +_cMPIDNORo = "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsResult" +_MPIDNO = "ModifyPublicIpDnsNameOptions" +_RICL = "ReservedInstancesConfigurationList" +_MRII = "ModifyReservedInstancesInput" +_cMRIR = "com.amazonaws.ec2#ModifyReservedInstancesRequest" +_RICSIT = "ReservedInstancesConfigurationSetItemType" +_MRIO = "ModifyReservedInstancesOutput" +_cMRIRo = "com.amazonaws.ec2#ModifyReservedInstancesResult" +_MRI = "ModifyReservedInstances" +_MRSI = "ModifyRouteServerInput" +_cMRSR = "com.amazonaws.ec2#ModifyRouteServerRequest" +_MRSO = "ModifyRouteServerOutput" +_cMRSRo = "com.amazonaws.ec2#ModifyRouteServerResult" +_MRSo = "ModifyRouteServer" +_SGRR = "SecurityGroupRuleRequest" +_RGIef = "ReferencedGroupId" +_SGRU = "SecurityGroupRuleUpdate" +_SGRUL = "SecurityGroupRuleUpdateList" +_MSGRI = "ModifySecurityGroupRulesInput" +_cMSGRR = "com.amazonaws.ec2#ModifySecurityGroupRulesRequest" +_MSGRO = "ModifySecurityGroupRulesOutput" +_cMSGRRo = "com.amazonaws.ec2#ModifySecurityGroupRulesResult" +_MSGR = "ModifySecurityGroupRules" +_CVPM = "CreateVolumePermissionModifications" +_MSAI = "ModifySnapshotAttributeInput" +_cMSAR = "com.amazonaws.ec2#ModifySnapshotAttributeRequest" +_MSAO = "ModifySnapshotAttributeOutput" +_MSA = "ModifySnapshotAttribute" +_TSTa = "TargetStorageTier" +_MSTI = "ModifySnapshotTierInput" +_cMSTR = "com.amazonaws.ec2#ModifySnapshotTierRequest" +_MSTO = "ModifySnapshotTierOutput" +_cMSTRo = "com.amazonaws.ec2#ModifySnapshotTierResult" +_TSTi = "TieringStartTime" +_tSTi = "tieringStartTime" +_MST = "ModifySnapshotTier" +_MSFRI = "ModifySpotFleetRequestInput" +_cMSFRR = "com.amazonaws.ec2#ModifySpotFleetRequestRequest" +_MSFRO = "ModifySpotFleetRequestOutput" +_cMSFRRo = "com.amazonaws.ec2#ModifySpotFleetRequestResponse" +_MSFR = "ModifySpotFleetRequest" +_MSAIo = "ModifySubnetAttributeInput" +_cMSARo = "com.amazonaws.ec2#ModifySubnetAttributeRequest" +_PDHTOL = "PrivateDnsHostnameTypeOnLaunch" +_ERNDAROL = "EnableResourceNameDnsARecordOnLaunch" +_ERNDAAAAROL = "EnableResourceNameDnsAAAARecordOnLaunch" +_DLADI = "DisableLniAtDeviceIndex" +_MSAOo = "ModifySubnetAttributeOutput" +_MSAo = "ModifySubnetAttribute" +_MTMFNSI = "ModifyTrafficMirrorFilterNetworkServicesInput" +_cMTMFNSR = "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesRequest" +_ANSd = "AddNetworkServices" +_ANSdd = "AddNetworkService" +_RNS = "RemoveNetworkServices" +_RNSe = "RemoveNetworkService" +_MTMFNSO = "ModifyTrafficMirrorFilterNetworkServicesOutput" +_cMTMFNSRo = "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesResult" +_MTMFNS = "ModifyTrafficMirrorFilterNetworkServices" +_TMFRF = "TrafficMirrorFilterRuleField" +_dpr__ = "destination_port_range" +_dpr___ = "destination-port-range" +_spr_ = "source_port_range" +_spr__ = "source-port-range" +_TMFRFL = "TrafficMirrorFilterRuleFieldList" +_MTMFRI = "ModifyTrafficMirrorFilterRuleInput" +_cMTMFRR = "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleRequest" +_RF = "RemoveFields" +_RFe = "RemoveField" +_MTMFRO = "ModifyTrafficMirrorFilterRuleOutput" +_cMTMFRRo = "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleResult" +_MTMFR = "ModifyTrafficMirrorFilterRule" +_TMSF = "TrafficMirrorSessionField" +_pl__ = "packet_length" +_pl___ = "packet-length" +_vni = "virtual_network_id" +_vni_ = "virtual-network-id" +_TMSFL = "TrafficMirrorSessionFieldList" +_MTMSI = "ModifyTrafficMirrorSessionInput" +_cMTMSR = "com.amazonaws.ec2#ModifyTrafficMirrorSessionRequest" +_MTMSO = "ModifyTrafficMirrorSessionOutput" +_cMTMSRo = "com.amazonaws.ec2#ModifyTrafficMirrorSessionResult" +_MTMS = "ModifyTrafficMirrorSession" +_ESOV = "EncryptionSupportOptionValue" +_MTGO = "ModifyTransitGatewayOptions" +_ATGCB = "AddTransitGatewayCidrBlocks" +_RTGCB = "RemoveTransitGatewayCidrBlocks" +_MTGI = "ModifyTransitGatewayInput" +_cMTGR = "com.amazonaws.ec2#ModifyTransitGatewayRequest" +_MTGOo = "ModifyTransitGatewayOutput" +_cMTGRo = "com.amazonaws.ec2#ModifyTransitGatewayResult" +_MTG = "ModifyTransitGateway" +_TGNRR = "TransitGatewayNatRuleRequest" +_TGNRRL = "TransitGatewayNatRuleRequestList" +_TGANGSV = "TransitGatewayAttachmentNatGatewaySupportValue" +_MTGANCI = "ModifyTransitGatewayAttachmentNatConfigurationInput" +_cMTGANCR = "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationRequest" +_NGRa = "NatGatewayRule" +_RNGR = "ResetNatGatewayRules" +_MTGANCO = "ModifyTransitGatewayAttachmentNatConfigurationOutput" +_cMTGANCRo = "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationResult" +_MTGANC = "ModifyTransitGatewayAttachmentNatConfiguration" +_MTGMPI = "ModifyTransitGatewayMeteringPolicyInput" +_cMTGMPR = "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyRequest" +_AMAI = "AddMiddleboxAttachmentIds" +_AMAId = "AddMiddleboxAttachmentId" +_RMAI = "RemoveMiddleboxAttachmentIds" +_RMAIe = "RemoveMiddleboxAttachmentId" +_MTGMPO = "ModifyTransitGatewayMeteringPolicyOutput" +_cMTGMPRo = "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyResult" +_MTGMP = "ModifyTransitGatewayMeteringPolicy" +_MTGPTEI = "ModifyTransitGatewayPolicyTableEntryInput" +_cMTGPTER = "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryRequest" +_MTGPTEO = "ModifyTransitGatewayPolicyTableEntryOutput" +_cMTGPTERo = "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryResult" +_MTGPTE = "ModifyTransitGatewayPolicyTableEntry" +_MTGPLRI = "ModifyTransitGatewayPrefixListReferenceInput" +_cMTGPLRR = "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceRequest" +_MTGPLRO = "ModifyTransitGatewayPrefixListReferenceOutput" +_cMTGPLRRo = "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceResult" +_MTGPLR = "ModifyTransitGatewayPrefixListReference" +_MTGVARO = "ModifyTransitGatewayVpcAttachmentRequestOptions" +_MTGVAI = "ModifyTransitGatewayVpcAttachmentInput" +_cMTGVAR = "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentRequest" +_ASId = "AddSubnetIds" +_RSIe = "RemoveSubnetIds" +_MTGVAO = "ModifyTransitGatewayVpcAttachmentOutput" +_cMTGVARo = "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentResult" +_MTGVA = "ModifyTransitGatewayVpcAttachment" +_MVAEPR = "ModifyVerifiedAccessEndpointPortRange" +_MVAEPRL = "ModifyVerifiedAccessEndpointPortRangeList" +_MVAECO = "ModifyVerifiedAccessEndpointCidrOptions" +_MVAESIL = "ModifyVerifiedAccessEndpointSubnetIdList" +_MVAELBO = "ModifyVerifiedAccessEndpointLoadBalancerOptions" +_MVAEEO = "ModifyVerifiedAccessEndpointEniOptions" +_MVAERO = "ModifyVerifiedAccessEndpointRdsOptions" +_MVAEI = "ModifyVerifiedAccessEndpointInput" +_cMVAER = "com.amazonaws.ec2#ModifyVerifiedAccessEndpointRequest" +_MVAEO = "ModifyVerifiedAccessEndpointOutput" +_cMVAERo = "com.amazonaws.ec2#ModifyVerifiedAccessEndpointResult" +_MVAE = "ModifyVerifiedAccessEndpoint" +_MVAEPI = "ModifyVerifiedAccessEndpointPolicyInput" +_cMVAEPR = "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyRequest" +_MVAEPO = "ModifyVerifiedAccessEndpointPolicyOutput" +_cMVAEPRo = "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyResult" +_MVAEP = "ModifyVerifiedAccessEndpointPolicy" +_MVAGI = "ModifyVerifiedAccessGroupInput" +_cMVAGR = "com.amazonaws.ec2#ModifyVerifiedAccessGroupRequest" +_MVAGO = "ModifyVerifiedAccessGroupOutput" +_cMVAGRo = "com.amazonaws.ec2#ModifyVerifiedAccessGroupResult" +_MVAG = "ModifyVerifiedAccessGroup" +_MVAGPI = "ModifyVerifiedAccessGroupPolicyInput" +_cMVAGPR = "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyRequest" +_MVAGPO = "ModifyVerifiedAccessGroupPolicyOutput" +_cMVAGPRo = "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyResult" +_MVAGP = "ModifyVerifiedAccessGroupPolicy" +_MVAII = "ModifyVerifiedAccessInstanceInput" +_cMVAIR = "com.amazonaws.ec2#ModifyVerifiedAccessInstanceRequest" +_MVAIO = "ModifyVerifiedAccessInstanceOutput" +_cMVAIRo = "com.amazonaws.ec2#ModifyVerifiedAccessInstanceResult" +_MVAI = "ModifyVerifiedAccessInstance" +_VALCWLDO = "VerifiedAccessLogCloudWatchLogsDestinationOptions" +_VALKDFDO = "VerifiedAccessLogKinesisDataFirehoseDestinationOptions" +_VALSDO = "VerifiedAccessLogS3DestinationOptions" +_VALO = "VerifiedAccessLogOptions" +_MVAILCI = "ModifyVerifiedAccessInstanceLoggingConfigurationInput" +_cMVAILCR = "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationRequest" +_MVAILCO = "ModifyVerifiedAccessInstanceLoggingConfigurationOutput" +_cMVAILCRo = "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationResult" +_LCog = "LoggingConfiguration" +_lC = "loggingConfiguration" +_MVAILC = "ModifyVerifiedAccessInstanceLoggingConfiguration" +_MVATPDO = "ModifyVerifiedAccessTrustProviderDeviceOptions" +_MVANAOO = "ModifyVerifiedAccessNativeApplicationOidcOptions" +_MVATPOO = "ModifyVerifiedAccessTrustProviderOidcOptions" +_MVATPI = "ModifyVerifiedAccessTrustProviderInput" +_cMVATPR = "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderRequest" +_MVATPO = "ModifyVerifiedAccessTrustProviderOutput" +_cMVATPRo = "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderResult" +_MVATP = "ModifyVerifiedAccessTrustProvider" +_MVI = "ModifyVolumeInput" +_cMVR = "com.amazonaws.ec2#ModifyVolumeRequest" +_MVO = "ModifyVolumeOutput" +_cMVRo = "com.amazonaws.ec2#ModifyVolumeResult" +_vM = "volumeModification" +_MVo = "ModifyVolume" +_MVAIo = "ModifyVolumeAttributeInput" +_cMVAR = "com.amazonaws.ec2#ModifyVolumeAttributeRequest" +_MVAO = "ModifyVolumeAttributeOutput" +_MVA = "ModifyVolumeAttribute" +_MVAIod = "ModifyVpcAttributeInput" +_cMVARo = "com.amazonaws.ec2#ModifyVpcAttributeRequest" +_MVAOo = "ModifyVpcAttributeOutput" +_MVAo = "ModifyVpcAttribute" +_MVBPAEI = "ModifyVpcBlockPublicAccessExclusionInput" +_cMVBPAER = "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionRequest" +_MVBPAEO = "ModifyVpcBlockPublicAccessExclusionOutput" +_cMVBPAERo = "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionResult" +_MVBPAE = "ModifyVpcBlockPublicAccessExclusion" +_MVBPAOI = "ModifyVpcBlockPublicAccessOptionsInput" +_cMVBPAOR = "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsRequest" +_MVBPAOO = "ModifyVpcBlockPublicAccessOptionsOutput" +_cMVBPAORo = "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsResult" +_MVBPAO = "ModifyVpcBlockPublicAccessOptions" +_MVECI = "ModifyVpcEncryptionControlInput" +_cMVECR = "com.amazonaws.ec2#ModifyVpcEncryptionControlRequest" +_MVECO = "ModifyVpcEncryptionControlOutput" +_cMVECRo = "com.amazonaws.ec2#ModifyVpcEncryptionControlResult" +_MVEC = "ModifyVpcEncryptionControl" +_MVEI = "ModifyVpcEndpointInput" +_cMVER = "com.amazonaws.ec2#ModifyVpcEndpointRequest" +_RP = "ResetPolicy" +_ARTId = "AddRouteTableIds" +_ARTIdd = "AddRouteTableId" +_RRTI = "RemoveRouteTableIds" +_RRTIe = "RemoveRouteTableId" +_ASIdd = "AddSubnetId" +_RSIem = "RemoveSubnetId" +_ASGId = "AddSecurityGroupIds" +_ASGIdd = "AddSecurityGroupId" +_RSGI = "RemoveSecurityGroupIds" +_RSGIe = "RemoveSecurityGroupId" +_MVEO = "ModifyVpcEndpointOutput" +_cMVERo = "com.amazonaws.ec2#ModifyVpcEndpointResult" +_MVEo = "ModifyVpcEndpoint" +_MVECNI = "ModifyVpcEndpointConnectionNotificationInput" +_cMVECNR = "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationRequest" +_MVECNO = "ModifyVpcEndpointConnectionNotificationOutput" +_cMVECNRo = "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationResult" +_MVECN = "ModifyVpcEndpointConnectionNotification" +_MVEPRI = "ModifyVpcEndpointPayerResponsibilityInput" +_cMVEPRR = "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityRequest" +_MVEPRO = "ModifyVpcEndpointPayerResponsibilityOutput" +_cMVEPRRo = "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityResult" +_MVEPR = "ModifyVpcEndpointPayerResponsibility" +_MVESCI = "ModifyVpcEndpointServiceConfigurationInput" +_cMVESCR = "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationRequest" +_RPDN = "RemovePrivateDnsName" +_ANLBA = "AddNetworkLoadBalancerArns" +_ANLBAd = "AddNetworkLoadBalancerArn" +_RNLBA = "RemoveNetworkLoadBalancerArns" +_RNLBAe = "RemoveNetworkLoadBalancerArn" +_AGLBA = "AddGatewayLoadBalancerArns" +_AGLBAd = "AddGatewayLoadBalancerArn" +_RGLBA = "RemoveGatewayLoadBalancerArns" +_RGLBAe = "RemoveGatewayLoadBalancerArn" +_ASIAT = "AddSupportedIpAddressTypes" +_ASIATd = "AddSupportedIpAddressType" +_RSIAT = "RemoveSupportedIpAddressTypes" +_RSIATe = "RemoveSupportedIpAddressType" +_ASRd = "AddSupportedRegions" +_ASRdd = "AddSupportedRegion" +_RSRe = "RemoveSupportedRegions" +_RSRem = "RemoveSupportedRegion" +_MVESCO = "ModifyVpcEndpointServiceConfigurationOutput" +_cMVESCRo = "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationResult" +_MVESC = "ModifyVpcEndpointServiceConfiguration" +_MVESPRI = "ModifyVpcEndpointServicePayerResponsibilityInput" +_cMVESPRR = "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityRequest" +_MVESPRO = "ModifyVpcEndpointServicePayerResponsibilityOutput" +_cMVESPRRo = "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityResult" +_MVESPR = "ModifyVpcEndpointServicePayerResponsibility" +_MVESPI = "ModifyVpcEndpointServicePermissionsInput" +_cMVESPR = "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsRequest" +_AAP = "AddAllowedPrincipals" +_RAP = "RemoveAllowedPrincipals" +_MVESPO = "ModifyVpcEndpointServicePermissionsOutput" +_cMVESPRo = "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsResult" +_APd = "AddedPrincipals" +_aPSd = "addedPrincipalSet" +_MVESP = "ModifyVpcEndpointServicePermissions" +_PCOR = "PeeringConnectionOptionsRequest" +_MVPCOI = "ModifyVpcPeeringConnectionOptionsInput" +_cMVPCOR = "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsRequest" +_APCO = "AccepterPeeringConnectionOptions" +_RPCO = "RequesterPeeringConnectionOptions" +_PCOe = "PeeringConnectionOptions" +_MVPCOO = "ModifyVpcPeeringConnectionOptionsOutput" +_cMVPCORo = "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsResult" +_aPCO = "accepterPeeringConnectionOptions" +_rPCO = "requesterPeeringConnectionOptions" +_MVPCO = "ModifyVpcPeeringConnectionOptions" +_VTp = "VpcTenancy" +_MVTI = "ModifyVpcTenancyInput" +_cMVTR = "com.amazonaws.ec2#ModifyVpcTenancyRequest" +_MVTO = "ModifyVpcTenancyOutput" +_cMVTRo = "com.amazonaws.ec2#ModifyVpcTenancyResult" +_MVT = "ModifyVpcTenancy" +_MVCI = "ModifyVpnConnectionInput" +_cMVCR = "com.amazonaws.ec2#ModifyVpnConnectionRequest" +_MVCO = "ModifyVpnConnectionOutput" +_cMVCRo = "com.amazonaws.ec2#ModifyVpnConnectionResult" +_MVC = "ModifyVpnConnection" +_MVCOI = "ModifyVpnConnectionOptionsInput" +_cMVCOR = "com.amazonaws.ec2#ModifyVpnConnectionOptionsRequest" +_MVCOO = "ModifyVpnConnectionOptionsOutput" +_cMVCORo = "com.amazonaws.ec2#ModifyVpnConnectionOptionsResult" +_MVCOo = "ModifyVpnConnectionOptions" +_MVTCI = "ModifyVpnTunnelCertificateInput" +_cMVTCR = "com.amazonaws.ec2#ModifyVpnTunnelCertificateRequest" +_MVTCO = "ModifyVpnTunnelCertificateOutput" +_cMVTCRo = "com.amazonaws.ec2#ModifyVpnTunnelCertificateResult" +_MVTC = "ModifyVpnTunnelCertificate" +_MVTOS = "ModifyVpnTunnelOptionsSpecification" +_MVTOI = "ModifyVpnTunnelOptionsInput" +_cMVTOR = "com.amazonaws.ec2#ModifyVpnTunnelOptionsRequest" +_STRk = "SkipTunnelReplacement" +_MVTOO = "ModifyVpnTunnelOptionsOutput" +_cMVTORo = "com.amazonaws.ec2#ModifyVpnTunnelOptionsResult" +_MVTOo = "ModifyVpnTunnelOptions" +_MIIo = "MonitorInstancesInput" +_cMIRom = "com.amazonaws.ec2#MonitorInstancesRequest" +_IMns = "InstanceMonitoring" +_IML = "InstanceMonitoringList" +_MIOo = "MonitorInstancesOutput" +_cMIRoma = "com.amazonaws.ec2#MonitorInstancesResult" +_IMnst = "InstanceMonitorings" +_MIon = "MonitorInstances" +_MATVI = "MoveAddressToVpcInput" +_cMATVR = "com.amazonaws.ec2#MoveAddressToVpcRequest" +_mIP = "moveInProgress" +_MIPov = "MoveInProgress" +_iVn = "inVpc" +_IVn = "InVpc" +_iCnl = "inClassic" +_ICnl = "InClassic" +_MATVO = "MoveAddressToVpcOutput" +_cMATVRo = "com.amazonaws.ec2#MoveAddressToVpcResult" +_MATV = "MoveAddressToVpc" +_MBCTII = "MoveByoipCidrToIpamInput" +_cMBCTIR = "com.amazonaws.ec2#MoveByoipCidrToIpamRequest" +_IPO = "IpamPoolOwner" +_MBCTIO = "MoveByoipCidrToIpamOutput" +_cMBCTIRo = "com.amazonaws.ec2#MoveByoipCidrToIpamResult" +_MBCTI = "MoveByoipCidrToIpam" +_MCRII = "MoveCapacityReservationInstancesInput" +_cMCRIR = "com.amazonaws.ec2#MoveCapacityReservationInstancesRequest" +_DCRIe = "DestinationCapacityReservationId" +_MCRIO = "MoveCapacityReservationInstancesOutput" +_cMCRIRo = "com.amazonaws.ec2#MoveCapacityReservationInstancesResult" +_MCRIo = "MoveCapacityReservationInstances" +_CAC = "CidrAuthorizationContext" +_Sig = "Signature" +_PBCI = "ProvisionByoipCidrInput" +_cPBCR = "com.amazonaws.ec2#ProvisionByoipCidrRequest" +_PTS = "PoolTagSpecifications" +_PTSo = "PoolTagSpecification" +_MRu = "MultiRegion" +_PBCO = "ProvisionByoipCidrOutput" +_cPBCRo = "com.amazonaws.ec2#ProvisionByoipCidrResult" +_PBC = "ProvisionByoipCidr" +_AACs = "AsnAuthorizationContext" +_PIBI = "ProvisionIpamByoasnInput" +_cPIBR = "com.amazonaws.ec2#ProvisionIpamByoasnRequest" +_PIBO = "ProvisionIpamByoasnOutput" +_cPIBRo = "com.amazonaws.ec2#ProvisionIpamByoasnResult" +_PIB = "ProvisionIpamByoasn" +_ICAC = "IpamCidrAuthorizationContext" +_VMe = "VerificationMethod" +_rx__________________________________ = "remarks_x509" +_rx___________________________________ = "remarks-x509" +_dt_ = "dns_token" +_dt__ = "dns-token" +_PIPCI = "ProvisionIpamPoolCidrInput" +_cPIPCR = "com.amazonaws.ec2#ProvisionIpamPoolCidrRequest" +_PIPCO = "ProvisionIpamPoolCidrOutput" +_cPIPCRo = "com.amazonaws.ec2#ProvisionIpamPoolCidrResult" +_PIPC = "ProvisionIpamPoolCidr" +_PPIPCI = "ProvisionPublicIpv4PoolCidrInput" +_cPPIPCR = "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrRequest" +_PPIPCO = "ProvisionPublicIpv4PoolCidrOutput" +_cPPIPCRo = "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrResult" +_PARo = "PoolAddressRange" +_pAR = "poolAddressRange" +_PPIPC = "ProvisionPublicIpv4PoolCidr" +_PCBI = "PurchaseCapacityBlockInput" +_cPCBR = "com.amazonaws.ec2#PurchaseCapacityBlockRequest" +_PCBO = "PurchaseCapacityBlockOutput" +_cPCBRo = "com.amazonaws.ec2#PurchaseCapacityBlockResult" +_PCBu = "PurchaseCapacityBlock" +_PCBEI = "PurchaseCapacityBlockExtensionInput" +_cPCBER = "com.amazonaws.ec2#PurchaseCapacityBlockExtensionRequest" +_PCBEO = "PurchaseCapacityBlockExtensionOutput" +_cPCBERo = "com.amazonaws.ec2#PurchaseCapacityBlockExtensionResult" +_PCBE = "PurchaseCapacityBlockExtension" +_PHRI = "PurchaseHostReservationInput" +_cPHRR = "com.amazonaws.ec2#PurchaseHostReservationRequest" +_LPi = "LimitPrice" +_PHRO = "PurchaseHostReservationOutput" +_cPHRRo = "com.amazonaws.ec2#PurchaseHostReservationResult" +_PHR = "PurchaseHostReservation" +_RILP = "ReservedInstanceLimitPrice" +_PRIOI = "PurchaseReservedInstancesOfferingInput" +_cPRIOR = "com.amazonaws.ec2#PurchaseReservedInstancesOfferingRequest" +_PTur = "PurchaseTime" +_lPi = "limitPrice" +_PRIOO = "PurchaseReservedInstancesOfferingOutput" +_cPRIORo = "com.amazonaws.ec2#PurchaseReservedInstancesOfferingResult" +_PRIO = "PurchaseReservedInstancesOffering" +_PRu = "PurchaseRequest" +_PRSu = "PurchaseRequestSet" +_PSII = "PurchaseScheduledInstancesInput" +_cPSIR = "com.amazonaws.ec2#PurchaseScheduledInstancesRequest" +_PRur = "PurchaseRequests" +_PSIS = "PurchasedScheduledInstanceSet" +_PSIO = "PurchaseScheduledInstancesOutput" +_cPSIRo = "com.amazonaws.ec2#PurchaseScheduledInstancesResult" +_PSI = "PurchaseScheduledInstances" +_RIIeb = "RebootInstancesInput" +_cRIR = "com.amazonaws.ec2#RebootInstancesRequest" +_RIOeb = "RebootInstancesOutput" +_RIeb = "RebootInstances" +_BPL = "BillingProductList" +_IUDR = "ImageUefiDataRequest" +_RIIeg = "RegisterImageInput" +_cRIRo = "com.amazonaws.ec2#RegisterImageRequest" +_BPi = "BillingProducts" +_BPil = "BillingProduct" +_RIOeg = "RegisterImageOutput" +_cRIRom = "com.amazonaws.ec2#RegisterImageResult" +_RIegis = "RegisterImage" +_RITAR = "RegisterInstanceTagAttributeRequest" +_RIENAI = "RegisterInstanceEventNotificationAttributesInput" +_cRIENAR = "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesRequest" +_RIENAO = "RegisterInstanceEventNotificationAttributesOutput" +_cRIENARo = "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesResult" +_RIENA = "RegisterInstanceEventNotificationAttributes" +_RTGMGMI = "RegisterTransitGatewayMulticastGroupMembersInput" +_cRTGMGMR = "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersRequest" +_TGMRGM = "TransitGatewayMulticastRegisteredGroupMembers" +_RNII = "RegisteredNetworkInterfaceIds" +_rNII = "registeredNetworkInterfaceIds" +_RTGMGMO = "RegisterTransitGatewayMulticastGroupMembersOutput" +_cRTGMGMRo = "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersResult" +_RMGM = "RegisteredMulticastGroupMembers" +_rMGM = "registeredMulticastGroupMembers" +_RTGMGM = "RegisterTransitGatewayMulticastGroupMembers" +_RTGMGSI = "RegisterTransitGatewayMulticastGroupSourcesInput" +_cRTGMGSR = "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesRequest" +_TGMRGS = "TransitGatewayMulticastRegisteredGroupSources" +_RTGMGSO = "RegisterTransitGatewayMulticastGroupSourcesOutput" +_cRTGMGSRo = "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesResult" +_RMGS = "RegisteredMulticastGroupSources" +_rMGS = "registeredMulticastGroupSources" +_RTGMGS = "RegisterTransitGatewayMulticastGroupSources" +_RCRBOI = "RejectCapacityReservationBillingOwnershipInput" +_cRCRBOR = "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipRequest" +_RCRBOO = "RejectCapacityReservationBillingOwnershipOutput" +_cRCRBORo = "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipResult" +_RCRBO = "RejectCapacityReservationBillingOwnership" +_RTGCVAI = "RejectTransitGatewayClientVpnAttachmentInput" +_cRTGCVAR = "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentRequest" +_RTGCVAO = "RejectTransitGatewayClientVpnAttachmentOutput" +_cRTGCVARo = "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentResult" +_RTGCVA = "RejectTransitGatewayClientVpnAttachment" +_RTGMDAI = "RejectTransitGatewayMulticastDomainAssociationsInput" +_cRTGMDAR = "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsRequest" +_RTGMDAO = "RejectTransitGatewayMulticastDomainAssociationsOutput" +_cRTGMDARo = "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsResult" +_RTGMDA = "RejectTransitGatewayMulticastDomainAssociations" +_RTGPAI = "RejectTransitGatewayPeeringAttachmentInput" +_cRTGPAR = "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentRequest" +_RTGPAO = "RejectTransitGatewayPeeringAttachmentOutput" +_cRTGPARo = "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentResult" +_RTGPA = "RejectTransitGatewayPeeringAttachment" +_RTGVAI = "RejectTransitGatewayVpcAttachmentInput" +_cRTGVAR = "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentRequest" +_RTGVAO = "RejectTransitGatewayVpcAttachmentOutput" +_cRTGVARo = "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentResult" +_RTGVA = "RejectTransitGatewayVpcAttachment" +_RVECI = "RejectVpcEndpointConnectionsInput" +_cRVECR = "com.amazonaws.ec2#RejectVpcEndpointConnectionsRequest" +_RVECO = "RejectVpcEndpointConnectionsOutput" +_cRVECRo = "com.amazonaws.ec2#RejectVpcEndpointConnectionsResult" +_RVEC = "RejectVpcEndpointConnections" +_RVPCI = "RejectVpcPeeringConnectionInput" +_cRVPCR = "com.amazonaws.ec2#RejectVpcPeeringConnectionRequest" +_RVPCO = "RejectVpcPeeringConnectionOutput" +_cRVPCRo = "com.amazonaws.ec2#RejectVpcPeeringConnectionResult" +_RVPC = "RejectVpcPeeringConnection" +_RAI = "ReleaseAddressInput" +_cRAR = "com.amazonaws.ec2#ReleaseAddressRequest" +_RAO = "ReleaseAddressOutput" +_RAel = "ReleaseAddress" +_RHI = "ReleaseHostsInput" +_cRHR = "com.amazonaws.ec2#ReleaseHostsRequest" +_RHO = "ReleaseHostsOutput" +_cRHRo = "com.amazonaws.ec2#ReleaseHostsResult" +_RH = "ReleaseHosts" +_RIPAI = "ReleaseIpamPoolAllocationInput" +_cRIPAR = "com.amazonaws.ec2#ReleaseIpamPoolAllocationRequest" +_RIPAO = "ReleaseIpamPoolAllocationOutput" +_cRIPARo = "com.amazonaws.ec2#ReleaseIpamPoolAllocationResult" +_RIPA = "ReleaseIpamPoolAllocation" +_RIIPAI = "ReplaceIamInstanceProfileAssociationInput" +_cRIIPAR = "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationRequest" +_RIIPAO = "ReplaceIamInstanceProfileAssociationOutput" +_cRIIPARo = "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationResult" +_RIIPA = "ReplaceIamInstanceProfileAssociation" +_CDCR = "CreationDateConditionRequest" +_DTCR = "DeprecationTimeConditionRequest" +_INCR = "ImageNameCriteriaRequest" +_INCRL = "ImageNameCriteriaRequestList" +_IPRm = "ImageProviderRequest" +_IPRL = "ImageProviderRequestList" +_IWFRm = "ImageWatermarkFilterRequest" +_IWFRLm = "ImageWatermarkFilterRequestList" +_MPCR = "MarketplaceProductCodeRequest" +_MPCRL = "MarketplaceProductCodeRequestList" +_SRCR = "ScanResultConditionRequest" +_ICRm = "ImageCriterionRequest" +_ICRL = "ImageCriterionRequestList" +_RICIAISI = "ReplaceImageCriteriaInAllowedImagesSettingsInput" +_cRICIAISR = "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsRequest" +_RICIAISO = "ReplaceImageCriteriaInAllowedImagesSettingsOutput" +_cRICIAISRo = "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsResult" +_RICIAIS = "ReplaceImageCriteriaInAllowedImagesSettings" +_ITIR = "InstanceTypeItemRequest" +_SITRSu = "SupportedInstanceTypeRequestSet" +_It = "Item" +_UITRS = "UnsupportedInstanceTypeRequestSet" +_ITSR = "InstanceTypeSpecificationRequest" +_SITup = "SupportedInstanceType" +_UITn = "UnsupportedInstanceType" +_RIITSI = "ReplaceImageInstanceTypeSpecificationInput" +_cRIITSR = "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationRequest" +_RIITSO = "ReplaceImageInstanceTypeSpecificationOutput" +_cRIITSRo = "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationResult" +_RIITS = "ReplaceImageInstanceTypeSpecification" +_RNAAI = "ReplaceNetworkAclAssociationInput" +_cRNAAR = "com.amazonaws.ec2#ReplaceNetworkAclAssociationRequest" +_RNAAO = "ReplaceNetworkAclAssociationOutput" +_cRNAARo = "com.amazonaws.ec2#ReplaceNetworkAclAssociationResult" +_NAIew = "NewAssociationId" +_nAIe = "newAssociationId" +_RNAA = "ReplaceNetworkAclAssociation" +_RNAEI = "ReplaceNetworkAclEntryInput" +_cRNAER = "com.amazonaws.ec2#ReplaceNetworkAclEntryRequest" +_RNAEO = "ReplaceNetworkAclEntryOutput" +_RNAE = "ReplaceNetworkAclEntry" +_RRI = "ReplaceRouteInput" +_cRRR = "com.amazonaws.ec2#ReplaceRouteRequest" +_LToc = "LocalTarget" +_RRO = "ReplaceRouteOutput" +_RRep = "ReplaceRoute" +_RRTAI = "ReplaceRouteTableAssociationInput" +_cRRTAR = "com.amazonaws.ec2#ReplaceRouteTableAssociationRequest" +_RRTAO = "ReplaceRouteTableAssociationOutput" +_cRRTARo = "com.amazonaws.ec2#ReplaceRouteTableAssociationResult" +_RRTA = "ReplaceRouteTableAssociation" +_RTGRI = "ReplaceTransitGatewayRouteInput" +_cRTGRR = "com.amazonaws.ec2#ReplaceTransitGatewayRouteRequest" +_RTGRO = "ReplaceTransitGatewayRouteOutput" +_cRTGRRo = "com.amazonaws.ec2#ReplaceTransitGatewayRouteResult" +_RTGR = "ReplaceTransitGatewayRoute" +_RVTI = "ReplaceVpnTunnelInput" +_cRVTR = "com.amazonaws.ec2#ReplaceVpnTunnelRequest" +_APM = "ApplyPendingMaintenance" +_RVTO = "ReplaceVpnTunnelOutput" +_cRVTRo = "com.amazonaws.ec2#ReplaceVpnTunnelResult" +_RVT = "ReplaceVpnTunnel" +_RISRD = "ReportInstanceStatusRequestDescription" +_RIRC = "ReportInstanceReasonCodes" +_isis = "instance_stuck_in_state" +_isis_ = "instance-stuck-in-state" +_unr = "unresponsive" +_nac = "not_accepting_credentials" +_nac_ = "not-accepting-credentials" +_pna = "password_not_available" +_pna_ = "password-not-available" +_pn = "performance_network" +_pn_ = "performance-network" +_pis = "performance_instance_store" +_pis_ = "performance-instance-store" +_pev = "performance_ebs_volume" +_pev_ = "performance-ebs-volume" +_po_ = "performance_other" +_po__ = "performance-other" +_RCLe = "ReasonCodesList" +_RSTep = "ReportStatusType" +_RISI = "ReportInstanceStatusInput" +_cRISR = "com.amazonaws.ec2#ReportInstanceStatusRequest" +_RCea = "ReasonCodes" +_RCeas = "ReasonCode" +_rCea = "reasonCode" +_RISO = "ReportInstanceStatusOutput" +_RISep = "ReportInstanceStatus" +_RSFI = "RequestSpotFleetInput" +_cRSFR = "com.amazonaws.ec2#RequestSpotFleetRequest" +_RSFO = "RequestSpotFleetOutput" +_cRSFRo = "com.amazonaws.ec2#RequestSpotFleetResponse" +_RSF = "RequestSpotFleet" +_RSLSSGIL = "RequestSpotLaunchSpecificationSecurityGroupIdList" +_RSLSSGL = "RequestSpotLaunchSpecificationSecurityGroupList" +_RSLS = "RequestSpotLaunchSpecification" +_RSII = "RequestSpotInstancesInput" +_cRSIR = "com.amazonaws.ec2#RequestSpotInstancesRequest" +_RSIO = "RequestSpotInstancesOutput" +_cRSIRo = "com.amazonaws.ec2#RequestSpotInstancesResult" +_RSIeq = "RequestSpotInstances" +_RAAI = "ResetAddressAttributeInput" +_cRAAR = "com.amazonaws.ec2#ResetAddressAttributeRequest" +_RAAO = "ResetAddressAttributeOutput" +_cRAARo = "com.amazonaws.ec2#ResetAddressAttributeResult" +_RAA = "ResetAddressAttribute" +_REDKKII = "ResetEbsDefaultKmsKeyIdInput" +_cREDKKIR = "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdRequest" +_REDKKIO = "ResetEbsDefaultKmsKeyIdOutput" +_cREDKKIRo = "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdResult" +_REDKKI = "ResetEbsDefaultKmsKeyId" +_RFIAN = "ResetFpgaImageAttributeName" +_RFIAI = "ResetFpgaImageAttributeInput" +_cRFIAR = "com.amazonaws.ec2#ResetFpgaImageAttributeRequest" +_RFIAO = "ResetFpgaImageAttributeOutput" +_cRFIARo = "com.amazonaws.ec2#ResetFpgaImageAttributeResult" +_RFIA = "ResetFpgaImageAttribute" +_RIAN = "ResetImageAttributeName" +_RIAI = "ResetImageAttributeInput" +_cRIAR = "com.amazonaws.ec2#ResetImageAttributeRequest" +_RIAO = "ResetImageAttributeOutput" +_RIA = "ResetImageAttribute" +_RIAIe = "ResetInstanceAttributeInput" +_cRIARo = "com.amazonaws.ec2#ResetInstanceAttributeRequest" +_RIAOe = "ResetInstanceAttributeOutput" +_RIAe = "ResetInstanceAttribute" +_RNIAI = "ResetNetworkInterfaceAttributeInput" +_cRNIAR = "com.amazonaws.ec2#ResetNetworkInterfaceAttributeRequest" +_RNIAO = "ResetNetworkInterfaceAttributeOutput" +_RNIA = "ResetNetworkInterfaceAttribute" +_RSAI = "ResetSnapshotAttributeInput" +_cRSAR = "com.amazonaws.ec2#ResetSnapshotAttributeRequest" +_RSAO = "ResetSnapshotAttributeOutput" +_RSAe = "ResetSnapshotAttribute" +_RATCI = "RestoreAddressToClassicInput" +_cRATCR = "com.amazonaws.ec2#RestoreAddressToClassicRequest" +_RATCO = "RestoreAddressToClassicOutput" +_cRATCRo = "com.amazonaws.ec2#RestoreAddressToClassicResult" +_RATC = "RestoreAddressToClassic" +_RIFRBI = "RestoreImageFromRecycleBinInput" +_cRIFRBR = "com.amazonaws.ec2#RestoreImageFromRecycleBinRequest" +_RIFRBO = "RestoreImageFromRecycleBinOutput" +_cRIFRBRo = "com.amazonaws.ec2#RestoreImageFromRecycleBinResult" +_RIFRB = "RestoreImageFromRecycleBin" +_RMPLVI = "RestoreManagedPrefixListVersionInput" +_cRMPLVR = "com.amazonaws.ec2#RestoreManagedPrefixListVersionRequest" +_PVre = "PreviousVersion" +_RMPLVO = "RestoreManagedPrefixListVersionOutput" +_cRMPLVRo = "com.amazonaws.ec2#RestoreManagedPrefixListVersionResult" +_RMPLV = "RestoreManagedPrefixListVersion" +_RSFRBI = "RestoreSnapshotFromRecycleBinInput" +_cRSFRBR = "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinRequest" +_RSFRBO = "RestoreSnapshotFromRecycleBinOutput" +_cRSFRBRo = "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinResult" +_RSFRB = "RestoreSnapshotFromRecycleBin" +_RSTRTRD = "RestoreSnapshotTierRequestTemporaryRestoreDays" +_RSTI = "RestoreSnapshotTierInput" +_cRSTR = "com.amazonaws.ec2#RestoreSnapshotTierRequest" +_TRD = "TemporaryRestoreDays" +_PRer = "PermanentRestore" +_RSTO = "RestoreSnapshotTierOutput" +_cRSTRo = "com.amazonaws.ec2#RestoreSnapshotTierResult" +_RSTes = "RestoreStartTime" +_rSTe = "restoreStartTime" +_RD = "RestoreDuration" +_rD = "restoreDuration" +_IPRs = "IsPermanentRestore" +_iPRs = "isPermanentRestore" +_RSTest = "RestoreSnapshotTier" +_RVFRBI = "RestoreVolumeFromRecycleBinInput" +_cRVFRBR = "com.amazonaws.ec2#RestoreVolumeFromRecycleBinRequest" +_RVFRBO = "RestoreVolumeFromRecycleBinOutput" +_cRVFRBRo = "com.amazonaws.ec2#RestoreVolumeFromRecycleBinResult" +_RVFRB = "RestoreVolumeFromRecycleBin" +_RCVII = "RevokeClientVpnIngressInput" +_cRCVIR = "com.amazonaws.ec2#RevokeClientVpnIngressRequest" +_RAG = "RevokeAllGroups" +_RCVIO = "RevokeClientVpnIngressOutput" +_cRCVIRo = "com.amazonaws.ec2#RevokeClientVpnIngressResult" +_RCVI = "RevokeClientVpnIngress" +_RSGEI = "RevokeSecurityGroupEgressInput" +_cRSGER = "com.amazonaws.ec2#RevokeSecurityGroupEgressRequest" +_RSGR = "RevokedSecurityGroupRule" +_rGIe = "referencedGroupId" +_RSGRL = "RevokedSecurityGroupRuleList" +_RSGEO = "RevokeSecurityGroupEgressOutput" +_cRSGERo = "com.amazonaws.ec2#RevokeSecurityGroupEgressResult" +_UIP = "UnknownIpPermissions" +_UIPS = "UnknownIpPermissionSet" +_uIPS = "unknownIpPermissionSet" +_RSGRe = "RevokedSecurityGroupRules" +_RSGRS = "RevokedSecurityGroupRuleSet" +_rSGRS = "revokedSecurityGroupRuleSet" +_RSGE = "RevokeSecurityGroupEgress" +_RSGII = "RevokeSecurityGroupIngressInput" +_cRSGIR = "com.amazonaws.ec2#RevokeSecurityGroupIngressRequest" +_RSGIO = "RevokeSecurityGroupIngressOutput" +_cRSGIRo = "com.amazonaws.ec2#RevokeSecurityGroupIngressResult" +_RSGIev = "RevokeSecurityGroupIngress" +_COR = "CpuOptionsRequest" +_EIAC = "ElasticInferenceAcceleratorCount" +_HOR = "HibernationOptionsRequest" +_SMO = "SpotMarketOptions" +_IMORn = "InstanceMarketOptionsRequest" +_LCR = "LicenseConfigurationRequest" +_LSLR = "LicenseSpecificationListRequest" +_IMORns = "InstanceMaintenanceOptionsRequest" +_IMORnst = "InstanceMetadataOptionsRequest" +_INPOR = "InstanceNetworkPerformanceOptionsRequest" +_PDNORr = "PrivateDnsNameOptionsRequest" +_ISIPIAR = "InstanceSecondaryInterfacePrivateIpAddressRequest" +_ISIPIALR = "InstanceSecondaryInterfacePrivateIpAddressListRequest" +_ISISR = "InstanceSecondaryInterfaceSpecificationRequest" +_ISISLR = "InstanceSecondaryInterfaceSpecificationListRequest" +_RIUD = "RunInstancesUserData" +_RIIu = "RunInstancesInput" +_cRIRoma = "com.amazonaws.ec2#RunInstancesRequest" +_MCax = "MaxCount" +_MCi = "MinCount" +_RIOu = "RunInstancesOutput" +_cRo = "com.amazonaws.ec2#Reservation" +_RIu = "RunInstances" +_SIE = "ScheduledInstancesEbs" +_SIBDM = "ScheduledInstancesBlockDeviceMapping" +_SIBDMS = "ScheduledInstancesBlockDeviceMappingSet" +_SIIIP = "ScheduledInstancesIamInstanceProfile" +_SIM = "ScheduledInstancesMonitoring" +_SISGIS = "ScheduledInstancesSecurityGroupIdSet" +_SIIAc = "ScheduledInstancesIpv6Address" +_SIIALc = "ScheduledInstancesIpv6AddressList" +_SIPIAC = "ScheduledInstancesPrivateIpAddressConfig" +_PIACS = "PrivateIpAddressConfigSet" +_SINI = "ScheduledInstancesNetworkInterface" +_PIACr = "PrivateIpAddressConfigs" +_PIACri = "PrivateIpAddressConfig" +_SINIS = "ScheduledInstancesNetworkInterfaceSet" +_SIPc = "ScheduledInstancesPlacement" +_SILS = "ScheduledInstancesLaunchSpecification" +_RSIIu = "RunScheduledInstancesInput" +_cRSIRom = "com.amazonaws.ec2#RunScheduledInstancesRequest" +_RSIOu = "RunScheduledInstancesOutput" +_cRSIRoma = "com.amazonaws.ec2#RunScheduledInstancesResult" +_RSIu = "RunScheduledInstances" +_SLGRI = "SearchLocalGatewayRoutesInput" +_cSLGRR = "com.amazonaws.ec2#SearchLocalGatewayRoutesRequest" +_LGRL = "LocalGatewayRouteList" +_SLGRO = "SearchLocalGatewayRoutesOutput" +_cSLGRRo = "com.amazonaws.ec2#SearchLocalGatewayRoutesResult" +_SLGR = "SearchLocalGatewayRoutes" +_STGMGI = "SearchTransitGatewayMulticastGroupsInput" +_cSTGMGR = "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsRequest" +_MTem = "MembershipType" +_igm = "igmp" +_TGMG = "TransitGatewayMulticastGroup" +_GM = "GroupMember" +_gM = "groupMember" +_GSr = "GroupSource" +_gSr = "groupSource" +_MTemb = "MemberType" +_mTe = "memberType" +_STo = "SourceType" +_sTo = "sourceType" +_TGMGL = "TransitGatewayMulticastGroupList" +_STGMGO = "SearchTransitGatewayMulticastGroupsOutput" +_cSTGMGRo = "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsResult" +_MG = "MulticastGroups" +_mG = "multicastGroups" +_STGMG = "SearchTransitGatewayMulticastGroups" +_STGRI = "SearchTransitGatewayRoutesInput" +_cSTGRR = "com.amazonaws.ec2#SearchTransitGatewayRoutesRequest" +_TGRL = "TransitGatewayRouteList" +_STGRO = "SearchTransitGatewayRoutesOutput" +_cSTGRRo = "com.amazonaws.ec2#SearchTransitGatewayRoutesResult" +_ARAd = "AdditionalRoutesAvailable" +_aRAd = "additionalRoutesAvailable" +_STGR = "SearchTransitGatewayRoutes" +_SDII = "SendDiagnosticInterruptInput" +_cSDIR = "com.amazonaws.ec2#SendDiagnosticInterruptRequest" +_SDIO = "SendDiagnosticInterruptOutput" +_SDI = "SendDiagnosticInterrupt" +_SDPRI = "StartDeclarativePoliciesReportInput" +_cSDPRR = "com.amazonaws.ec2#StartDeclarativePoliciesReportRequest" +_SDPRO = "StartDeclarativePoliciesReportOutput" +_cSDPRRo = "com.amazonaws.ec2#StartDeclarativePoliciesReportResult" +_SDPR = "StartDeclarativePoliciesReport" +_SIIt = "StartInstancesInput" +_cSIR = "com.amazonaws.ec2#StartInstancesRequest" +_ISC = "InstanceStateChange" +_CSu = "CurrentState" +_cSu = "currentState" +_ISCL = "InstanceStateChangeList" +_SIO = "StartInstancesOutput" +_cSIRo = "com.amazonaws.ec2#StartInstancesResult" +_SIt = "StartingInstances" +_SIta = "StartInstances" +_SNIASAI = "StartNetworkInsightsAccessScopeAnalysisInput" +_cSNIASAR = "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisRequest" +_SNIASAO = "StartNetworkInsightsAccessScopeAnalysisOutput" +_cSNIASARo = "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisResult" +_nIASAe = "networkInsightsAccessScopeAnalysis" +_SNIASA = "StartNetworkInsightsAccessScopeAnalysis" +_SNIAI = "StartNetworkInsightsAnalysisInput" +_cSNIAR = "com.amazonaws.ec2#StartNetworkInsightsAnalysisRequest" +_AAddi = "AdditionalAccount" +_FIAil = "FilterInArn" +_FOAil = "FilterOutArn" +_SNIAO = "StartNetworkInsightsAnalysisOutput" +_cSNIARo = "com.amazonaws.ec2#StartNetworkInsightsAnalysisResult" +_nIA = "networkInsightsAnalysis" +_SNIA = "StartNetworkInsightsAnalysis" +_SVESPDVI = "StartVpcEndpointServicePrivateDnsVerificationInput" +_cSVESPDVR = "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationRequest" +_SVESPDVO = "StartVpcEndpointServicePrivateDnsVerificationOutput" +_cSVESPDVRo = "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationResult" +_SVESPDV = "StartVpcEndpointServicePrivateDnsVerification" +_SIIto = "StopInstancesInput" +_cSIRom = "com.amazonaws.ec2#StopInstancesRequest" +_Hi = "Hibernate" +_SOS = "SkipOsShutdown" +_SIOt = "StopInstancesOutput" +_cSIRoma = "com.amazonaws.ec2#StopInstancesResult" +_SIto = "StoppingInstances" +_SItop = "StopInstances" +_TCVCI = "TerminateClientVpnConnectionsInput" +_cTCVCR = "com.amazonaws.ec2#TerminateClientVpnConnectionsRequest" +_TCSe = "TerminateConnectionStatus" +_PSrev = "PreviousStatus" +_pSrev = "previousStatus" +_CSur = "CurrentStatus" +_cSur = "currentStatus" +_TCSS = "TerminateConnectionStatusSet" +_TCVCO = "TerminateClientVpnConnectionsOutput" +_cTCVCRo = "com.amazonaws.ec2#TerminateClientVpnConnectionsResult" +_CSonn = "ConnectionStatuses" +_cSonn = "connectionStatuses" +_TCVC = "TerminateClientVpnConnections" +_TIIe = "TerminateInstancesInput" +_cTIR = "com.amazonaws.ec2#TerminateInstancesRequest" +_TIO = "TerminateInstancesOutput" +_cTIRo = "com.amazonaws.ec2#TerminateInstancesResult" +_TIer = "TerminatingInstances" +_UIAI = "UnassignIpv6AddressesInput" +_cUIAR = "com.amazonaws.ec2#UnassignIpv6AddressesRequest" +_UIAO = "UnassignIpv6AddressesOutput" +_cUIARo = "com.amazonaws.ec2#UnassignIpv6AddressesResult" +_UIA = "UnassignedIpv6Addresses" +_uIA = "unassignedIpv6Addresses" +_UIPn = "UnassignedIpv6Prefixes" +_UIPSn = "UnassignedIpv6PrefixSet" +_uIPSn = "unassignedIpv6PrefixSet" +_UIAn = "UnassignIpv6Addresses" +_UPIAI = "UnassignPrivateIpAddressesInput" +_cUPIAR = "com.amazonaws.ec2#UnassignPrivateIpAddressesRequest" +_UPIAO = "UnassignPrivateIpAddressesOutput" +_UPIA = "UnassignPrivateIpAddresses" +_UPNGAI = "UnassignPrivateNatGatewayAddressInput" +_cUPNGAR = "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressRequest" +_UPNGAO = "UnassignPrivateNatGatewayAddressOutput" +_cUPNGARo = "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressResult" +_UPNGA = "UnassignPrivateNatGatewayAddress" +_USI = "UnlockSnapshotInput" +_cUSR = "com.amazonaws.ec2#UnlockSnapshotRequest" +_USO = "UnlockSnapshotOutput" +_cUSRo = "com.amazonaws.ec2#UnlockSnapshotResult" +_USn = "UnlockSnapshot" +_UII = "UnmonitorInstancesInput" +_cUIR = "com.amazonaws.ec2#UnmonitorInstancesRequest" +_UIO = "UnmonitorInstancesOutput" +_cUIRo = "com.amazonaws.ec2#UnmonitorInstancesResult" +_UIn = "UnmonitorInstances" +_UCMMTKI = "UpdateCapacityManagerMonitoredTagKeysInput" +_cUCMMTKR = "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysRequest" +_ATK = "ActivateTagKeys" +_ATKc = "ActivateTagKey" +_DTK = "DeactivateTagKeys" +_DTKe = "DeactivateTagKey" +_UCMMTKO = "UpdateCapacityManagerMonitoredTagKeysOutput" +_cUCMMTKRo = "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysResult" +_UCMMTK = "UpdateCapacityManagerMonitoredTagKeys" +_UCMOAI = "UpdateCapacityManagerOrganizationsAccessInput" +_cUCMOAR = "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessRequest" +_UCMOAO = "UpdateCapacityManagerOrganizationsAccessOutput" +_cUCMOARo = "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessResult" +_UCMOA = "UpdateCapacityManagerOrganizationsAccess" +_UICRAI = "UpdateInterruptibleCapacityReservationAllocationInput" +_cUICRAR = "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationRequest" +_UICRAO = "UpdateInterruptibleCapacityReservationAllocationOutput" +_cUICRARo = "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationResult" +_UICRA = "UpdateInterruptibleCapacityReservationAllocation" +_SGRD = "SecurityGroupRuleDescription" +_SGRDL = "SecurityGroupRuleDescriptionList" +_USGRDEI = "UpdateSecurityGroupRuleDescriptionsEgressInput" +_cUSGRDER = "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressRequest" +_SGRDe = "SecurityGroupRuleDescriptions" +_USGRDEO = "UpdateSecurityGroupRuleDescriptionsEgressOutput" +_cUSGRDERo = "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressResult" +_USGRDE = "UpdateSecurityGroupRuleDescriptionsEgress" +_USGRDII = "UpdateSecurityGroupRuleDescriptionsIngressInput" +_cUSGRDIR = "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressRequest" +_USGRDIO = "UpdateSecurityGroupRuleDescriptionsIngressOutput" +_cUSGRDIRo = "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressResult" +_USGRDI = "UpdateSecurityGroupRuleDescriptionsIngress" +_VSGQFII = "ValidateSecurityGroupQuotasForInterfaceInput" +_cVSGQFIR = "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceRequest" +_VSGQFIO = "ValidateSecurityGroupQuotasForInterfaceOutput" +_cVSGQFIRo = "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceResult" +_Vali = "Valid" +_VSGQFI = "ValidateSecurityGroupQuotasForInterface" +_WBCI = "WithdrawByoipCidrInput" +_cWBCR = "com.amazonaws.ec2#WithdrawByoipCidrRequest" +_WBCO = "WithdrawByoipCidrOutput" +_cWBCRo = "com.amazonaws.ec2#WithdrawByoipCidrResult" +_WBC = "WithdrawByoipCidr" +_AECm = "AmazonEC2" +_aw = "aws.auth#sigv4" +_aQ = "aws.protocols#ec2Query" +_awsa = "aws.api#service" +_sNm = "smithy.api#xmlNamespace" + +INTEGER: StaticSchema = (7, n0, _I, 0) + +ACCELERATOR_COUNT: StaticSchema = ( + 18, + n0, + _AC, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +ACCELERATOR_COUNT_REQUEST: StaticSchema = ( + 18, + n0, + _ACR, + 0, + (_M, _Ma), + ((INTEGER, 0), (INTEGER, 0)), +) + +ACCELERATOR_MANUFACTURER: StaticSchema = ( + 14, + n0, + _AM, + 0, + (_AWS, _AMD, _NVIDIA, _XILINX, _HABANA), + ( + (-1, {_sV: _aws}), + (-1, {_sV: _a}), + (-1, {_sV: _n}), + (-1, {_sV: _x}), + (-1, {_sV: _h}), + ), +) + +ACCELERATOR_MANUFACTURER_SET: StaticSchema = ( + 16, + n0, + _AMS, + 0, + (_me,), + ((ACCELERATOR_MANUFACTURER, {_sN: _i}),), +) + +ACCELERATOR_NAME: StaticSchema = ( + 14, + n0, + _AN, + 0, + ( + _A, + _INFERENTIA, + _K, + _K_, + _M_, + _RPV, + _T, + _VUP, + _V, + _AG, + _H, + _TG, + _LS, + _L, + _GH, + _INFERENTIA_, + _TRAINIUM, + _TRAINIUM_, + _U, + ), + ( + (-1, {_sV: _a_}), + (-1, {_sV: _in}), + (-1, {_sV: _k}), + (-1, {_sV: _k_}), + (-1, {_sV: _m_}), + (-1, {_sV: _rpv}), + (-1, {_sV: _t}), + (-1, {_sV: _v}), + (-1, {_sV: _v_}), + (-1, {_sV: _ag}), + (-1, {_sV: _h_}), + (-1, {_sV: _tg}), + (-1, {_sV: _l}), + (-1, {_sV: _l_}), + (-1, {_sV: _gh}), + (-1, {_sV: _inf}), + (-1, {_sV: _tr}), + (-1, {_sV: _tra}), + (-1, {_sV: _u}), + ), +) + +ACCELERATOR_NAME_SET: StaticSchema = ( + 16, + n0, + _ANS, + 0, + (_me,), + ((ACCELERATOR_NAME, {_sN: _i}),), +) + +ACCELERATOR_TOTAL_MEMORY_MI_B: StaticSchema = ( + 18, + n0, + _ATMMB, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST: StaticSchema = ( + 18, + n0, + _ATMMBR, + 0, + (_M, _Ma), + ((INTEGER, 0), (INTEGER, 0)), +) + +ACCELERATOR_TYPE: StaticSchema = ( + 14, + n0, + _AT, + 0, + (_GPU, _FPGA, _INFERENCE, _MEDIA), + ((-1, {_sV: _g}), (-1, {_sV: _f}), (-1, {_sV: _infe}), (-1, {_sV: _med})), +) + +ACCELERATOR_TYPE_SET: StaticSchema = ( + 16, + n0, + _ATS, + 0, + (_me,), + ((ACCELERATOR_TYPE, {_sN: _i}),), +) + +STRING: StaticSchema = (3, n0, _S, 0) + +BOOLEAN: StaticSchema = (2, n0, _B, 0) + +RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _RT, + 0, + ( + _cr, + _cve, + _cg, + _cg__, + _cp, + _dpr, + _dh, + _do, + _eoig, + _ei, + _eg, + _eit, + _eit__, + _fl, + _fi, + _hr, + _im, + _iur, + _iit, + _ist, + _ins, + _iew, + _ig, + _ip, + _ip_, + _is, + _ie, + _ie__, + _kp, + _lt, + _lg, + _lgrt, + _lgvi, + _lgvig, + _lgrtva, + _lgrtviga, + _na, + _na_, + _ni, + _nia, + _nip, + _nias, + _niasa, + _ol, + _pg, + _pl, + _rrvt, + _ri, + _rt, + _sg, + _sgr, + _slvi, + _s, + _sfr, + _sir, + _su, + _scr, + _tmf, + _tms, + _tmt, + _tg_, + _tga, + _tgcp, + _tgmd, + _tgpt, + _tgmp, + _tgrt, + _tgrta, + _vo, + _vp, + _ve, + _vec, + _ves, + _vesp, + _vpc, + _vc, + _vg, + _vfl, + _crf, + _tmfr, + _vecdt, + _vai, + _vag, + _vae, + _vap, + _vatp, + _vcdt, + _vbpae, + _vec__, + _rs, + _rse, + _rsp, + _ird, + _irda, + _ice, + _vaet, + _iervt, + _cb, + _mmt, + _iplr, + _ip___, + _iplrt, + _iira, + _si, + _sn, + _ss, + _cmde, + _vc__, + _ipa, + _crcq, + _asc, + _crmq, + ), + ( + (-1, {_sV: _cr_}), + (-1, {_sV: _cve_}), + (-1, {_sV: _cg_}), + (-1, {_sV: _cg___}), + (-1, {_sV: _cp_}), + (-1, {_sV: _dpr_}), + (-1, {_sV: _dh_}), + (-1, {_sV: _do_}), + (-1, {_sV: _eoig_}), + (-1, {_sV: _ei_}), + (-1, {_sV: _eg_}), + (-1, {_sV: _eit_}), + (-1, {_sV: _eit___}), + (-1, {_sV: _fl}), + (-1, {_sV: _fi_}), + (-1, {_sV: _hr_}), + (-1, {_sV: _im}), + (-1, {_sV: _iur_}), + (-1, {_sV: _iit_}), + (-1, {_sV: _ist_}), + (-1, {_sV: _ins}), + (-1, {_sV: _iew_}), + (-1, {_sV: _ig_}), + (-1, {_sV: _ip}), + (-1, {_sV: _ip__}), + (-1, {_sV: _is_}), + (-1, {_sV: _ie_}), + (-1, {_sV: _ie___}), + (-1, {_sV: _kp_}), + (-1, {_sV: _lt_}), + (-1, {_sV: _lg_}), + (-1, {_sV: _lgrt_}), + (-1, {_sV: _lgvi_}), + (-1, {_sV: _lgvig_}), + (-1, {_sV: _lgrtva_}), + (-1, {_sV: _lgrtviga_}), + (-1, {_sV: _na}), + (-1, {_sV: _na__}), + (-1, {_sV: _ni_}), + (-1, {_sV: _nia_}), + (-1, {_sV: _nip_}), + (-1, {_sV: _nias_}), + (-1, {_sV: _niasa_}), + (-1, {_sV: _ol_}), + (-1, {_sV: _pg_}), + (-1, {_sV: _pl_}), + (-1, {_sV: _rrvt_}), + (-1, {_sV: _ri_}), + (-1, {_sV: _rt_}), + (-1, {_sV: _sg_}), + (-1, {_sV: _sgr_}), + (-1, {_sV: _slvi_}), + (-1, {_sV: _s}), + (-1, {_sV: _sfr_}), + (-1, {_sV: _sir_}), + (-1, {_sV: _su}), + (-1, {_sV: _scr_}), + (-1, {_sV: _tmf_}), + (-1, {_sV: _tms_}), + (-1, {_sV: _tmt_}), + (-1, {_sV: _tg__}), + (-1, {_sV: _tga_}), + (-1, {_sV: _tgcp_}), + (-1, {_sV: _tgmd_}), + (-1, {_sV: _tgpt_}), + (-1, {_sV: _tgmp_}), + (-1, {_sV: _tgrt_}), + (-1, {_sV: _tgrta_}), + (-1, {_sV: _vo}), + (-1, {_sV: _vp}), + (-1, {_sV: _ve_}), + (-1, {_sV: _vec_}), + (-1, {_sV: _ves_}), + (-1, {_sV: _vesp_}), + (-1, {_sV: _vpc_}), + (-1, {_sV: _vc_}), + (-1, {_sV: _vg_}), + (-1, {_sV: _vfl_}), + (-1, {_sV: _crf_}), + (-1, {_sV: _tmfr_}), + (-1, {_sV: _vecdt_}), + (-1, {_sV: _vai_}), + (-1, {_sV: _vag_}), + (-1, {_sV: _vae_}), + (-1, {_sV: _vap_}), + (-1, {_sV: _vatp_}), + (-1, {_sV: _vcdt_}), + (-1, {_sV: _vbpae_}), + (-1, {_sV: _vec___}), + (-1, {_sV: _rs_}), + (-1, {_sV: _rse_}), + (-1, {_sV: _rsp_}), + (-1, {_sV: _ird_}), + (-1, {_sV: _irda_}), + (-1, {_sV: _ice_}), + (-1, {_sV: _vaet_}), + (-1, {_sV: _iervt_}), + (-1, {_sV: _cb_}), + (-1, {_sV: _mmt_}), + (-1, {_sV: _iplr_}), + (-1, {_sV: _ip____}), + (-1, {_sV: _iplrt_}), + (-1, {_sV: _iira_}), + (-1, {_sV: _si_}), + (-1, {_sV: _sn_}), + (-1, {_sV: _ss_}), + (-1, {_sV: _cmde_}), + (-1, {_sV: _vc___}), + (-1, {_sV: _ipa_}), + (-1, {_sV: _crcq_}), + (-1, {_sV: _asc_}), + (-1, {_sV: _crmq_}), + ), +) + +TAG: StaticSchema = ( + 18, + n0, + _Ta, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_me,), ((TAG, {_sN: _i}),)) + +TAG_SPECIFICATION: StaticSchema = ( + 18, + n0, + _TS, + 0, + (_RT, _Tag), + ((RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), (TAG_LIST, {_sN: _Ta})), +) + +TAG_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _TSL, + 0, + (_me,), + ((TAG_SPECIFICATION, {_sN: _i}),), +) + +ACCEPT_ADDRESS_TRANSFER_INPUT: StaticSchema = ( + 18, + n0, + _AATI, + {_sSI: _cAATR, _sm: None}, + (_Ad, _TSa, _DR), + ((STRING, 1), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (BOOLEAN, 0)), +) + +ADDRESS_TRANSFER_STATUS: StaticSchema = ( + 14, + n0, + _ATSd, + 0, + (_p, _d, _ac), + ((-1, {_sV: _p}), (-1, {_sV: _d}), (-1, {_sV: _ac})), +) + +MILLISECOND_DATE_TIME: StaticSchema = (4, n0, _MDT, 0) + +ADDRESS_TRANSFER: StaticSchema = ( + 18, + n0, + _ATd, + 0, + (_PI, _AI, _TAI, _TOET, _TOAT, _ATSd), + ( + (STRING, {_aQN: _PI, _sN: _pI}), + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _TAI, _sN: _tAI}), + (MILLISECOND_DATE_TIME, {_aQN: _TOET, _sN: _tOET}), + (MILLISECOND_DATE_TIME, {_aQN: _TOAT, _sN: _tOAT}), + (ADDRESS_TRANSFER_STATUS, {_aQN: _ATSd, _sN: _aTS}), + ), +) + +ACCEPT_ADDRESS_TRANSFER_OUTPUT: StaticSchema = ( + 18, + n0, + _AATO, + {_sSI: _cAATRo, _smit: None}, + (_ATd,), + ((ADDRESS_TRANSFER, {_aQN: _ATd, _sN: _aT}),), +) + +ACCEPT_ADDRESS_TRANSFER: StaticOperationSchema = ( + 23, + n0, + _AAT, + 0, + ACCEPT_ADDRESS_TRANSFER_INPUT, + ACCEPT_ADDRESS_TRANSFER_OUTPUT, + (), +) + +CAPACITY_RESERVATION_ID: StaticSchema = (3, n0, _CRI, 0) + +ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT: StaticSchema = ( + 18, + n0, + _ACRBOI, + {_sSI: _cACRBOR, _sm: None}, + (_DR, _CRI), + ((BOOLEAN, 0), (CAPACITY_RESERVATION_ID, 1)), +) + +ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT: StaticSchema = ( + 18, + n0, + _ACRBOO, + {_sSI: _cACRBORo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP: StaticOperationSchema = ( + 23, + n0, + _ACRBO, + 0, + ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT, + ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT, + (), +) + +RESERVATION_ID: StaticSchema = (3, n0, _RI, 0) + +RESERVED_INSTANCE_ID_SET: StaticSchema = ( + 16, + n0, + _RIIS, + 0, + (_me,), + ((RESERVATION_ID, {_sN: _RII}),), +) + +RESERVED_INSTANCES_OFFERING_ID: StaticSchema = (3, n0, _RIOI, 0) + +TARGET_CONFIGURATION_REQUEST: StaticSchema = ( + 18, + n0, + _TCR, + 0, + (_IC, _OI), + ((INTEGER, 0), (RESERVED_INSTANCES_OFFERING_ID, 1)), +) + +TARGET_CONFIGURATION_REQUEST_SET: StaticSchema = ( + 16, + n0, + _TCRS, + 0, + (_me,), + ((TARGET_CONFIGURATION_REQUEST, {_sN: _TCR}),), +) + +ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT: StaticSchema = ( + 18, + n0, + _ARIEQI, + {_sSI: _cARIEQR, _sm: None}, + (_DR, _RIIe, _TC), + ( + (BOOLEAN, 0), + (RESERVED_INSTANCE_ID_SET, {_sN: _RII, _smi: None}), + (TARGET_CONFIGURATION_REQUEST_SET, {_sN: _TCa}), + ), +) + +ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT: StaticSchema = ( + 18, + n0, + _ARIEQO, + {_sSI: _cARIEQRo, _smit: None}, + (_EI,), + ((STRING, {_aQN: _EI, _sN: _eI}),), +) + +ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE: StaticOperationSchema = ( + 23, + n0, + _ARIEQ, + 0, + ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT, + ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ATTACHMENT_ID: StaticSchema = (3, n0, _TGAI, 0) + +ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _ATGCVAI, + {_sSI: _cATGCVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +CLIENT_VPN_ENDPOINT_ID: StaticSchema = (3, n0, _CVEI, 0) + +TRANSIT_GATEWAY_ATTACHMENT_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _TGAST, + 0, + (_pa, _p, _re, _av, _de, _del), + ( + (-1, {_sV: _pa_}), + (-1, {_sV: _p}), + (-1, {_sV: _re}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +TRANSIT_GATEWAY_ID: StaticSchema = (3, n0, _TGI, 0) + +TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGCVA, + 0, + (_TGAI, _TGI, _CVEI, _CVOI, _St, _CT), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (CLIENT_VPN_ENDPOINT_ID, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _CVOI, _sN: _cVOI}), + (TRANSIT_GATEWAY_ATTACHMENT_STATUS_TYPE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _CT, _sN: _cT}), + ), +) + +ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGCVAO, + {_sSI: _cATGCVARo, _smit: None}, + (_TGCVA,), + ((TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, {_aQN: _TGCVA, _sN: _tGCVA}),), +) + +ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _ATGCVA, + 0, + ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT, + ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT, + (), +) + +VALUE_STRING_LIST: StaticSchema = (16, n0, _VSL, 0, (_me,), ((STRING, {_sN: _i}),)) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID: StaticSchema = (3, n0, _TGMDI, 0) + +ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _ATGMDAI, + {_sSI: _cATGMDAR, _sm: None}, + (_TGMDI, _TGAI, _SI, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 0), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (VALUE_STRING_LIST, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _TGART, + 0, + (_vp, _vpn, _vc__, _dcg, _c, _pe, _tp, _nf, _cv), + ( + (-1, {_sV: _vp}), + (-1, {_sV: _vpn}), + (-1, {_sV: _vc___}), + (-1, {_sV: _dcg_}), + (-1, {_sV: _c}), + (-1, {_sV: _pe}), + (-1, {_sV: _tp_}), + (-1, {_sV: _nf_}), + (-1, {_sV: _cv_}), + ), +) + +TRANSIT_GATEWAY_MULITCAST_DOMAIN_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _TGMDAS, + 0, + (_pA, _as, _ass, _di, _dis, _re, _fa), + ( + (-1, {_sV: _pA}), + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _re}), + (-1, {_sV: _fa}), + ), +) + +SUBNET_ASSOCIATION: StaticSchema = ( + 18, + n0, + _SA, + 0, + (_SIu, _St), + ( + (STRING, {_aQN: _SIu, _sN: _sI}), + (TRANSIT_GATEWAY_MULITCAST_DOMAIN_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +SUBNET_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _SAL, + 0, + (_me,), + ((SUBNET_ASSOCIATION, {_sN: _i}),), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: StaticSchema = ( + 18, + n0, + _TGMDA, + 0, + (_TGMDI, _TGAI, _RIe, _RT, _ROI, _Su), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (SUBNET_ASSOCIATION_LIST, {_aQN: _Su, _sN: _sub}), + ), +) + +ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGMDAO, + {_sSI: _cATGMDARo, _smit: None}, + (_As,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, {_aQN: _As, _sN: _asso}),), +) + +ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _ATGMDA, + 0, + ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT, + ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT, + (), +) + +ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _ATGPAI, + {_sSI: _cATGPAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +PEERING_TGW_INFO: StaticSchema = ( + 18, + n0, + _PTI, + 0, + (_TGI, _CNI, _OIw, _Re), + ( + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _CNI, _sN: _cNI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Re, _sN: _reg}), + ), +) + +DATE_TIME: StaticSchema = (4, n0, _DT, 0) + +DYNAMIC_ROUTING_VALUE: StaticSchema = ( + 14, + n0, + _DRV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +TRANSIT_GATEWAY_PEERING_ATTACHMENT_OPTIONS: StaticSchema = ( + 18, + n0, + _TGPAO, + 0, + (_DRy,), + ((DYNAMIC_ROUTING_VALUE, {_aQN: _DRy, _sN: _dR}),), +) + +TRANSIT_GATEWAY_ATTACHMENT_STATE: StaticSchema = ( + 14, + n0, + _TGAS, + 0, + (_ini, _iR, _pA, _rB, _p, _av, _mo, _de, _del, _fa, _re, _rej, _fai), + ( + (-1, {_sV: _ini}), + (-1, {_sV: _iR}), + (-1, {_sV: _pA}), + (-1, {_sV: _rB}), + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _mo}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _fa}), + (-1, {_sV: _re}), + (-1, {_sV: _rej}), + (-1, {_sV: _fai}), + ), +) + +PEERING_ATTACHMENT_STATUS: StaticSchema = ( + 18, + n0, + _PAS, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +TRANSIT_GATEWAY_PEERING_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGPA, + 0, + (_TGAI, _ATGAI, _RTI, _ATI, _O, _Sta, _St, _CT, _Tag), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _ATGAI, _sN: _aTGAI}), + (PEERING_TGW_INFO, {_aQN: _RTI, _sN: _rTI}), + (PEERING_TGW_INFO, {_aQN: _ATI, _sN: _aTI}), + (TRANSIT_GATEWAY_PEERING_ATTACHMENT_OPTIONS, {_aQN: _O, _sN: _o}), + (PEERING_ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + (TRANSIT_GATEWAY_ATTACHMENT_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGPAO, + {_sSI: _cATGPARo, _smit: None}, + (_TGPA,), + ((TRANSIT_GATEWAY_PEERING_ATTACHMENT, {_aQN: _TGPA, _sN: _tGPA}),), +) + +ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _ATGPA, + 0, + ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT, + ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT, + (), +) + +ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _ATGVAI, + {_sSI: _cATGVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +APPLIANCE_MODE_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _AMSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +DNS_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _DSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +IPV6_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _ISV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +SECURITY_GROUP_REFERENCING_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _SGRSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +TRANSIT_GATEWAY_VPC_ATTACHMENT_OPTIONS: StaticSchema = ( + 18, + n0, + _TGVAO, + 0, + (_DS, _SGRS, _IS, _AMSp), + ( + (DNS_SUPPORT_VALUE, {_aQN: _DS, _sN: _dS}), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, {_aQN: _SGRS, _sN: _sGRS}), + (IPV6_SUPPORT_VALUE, {_aQN: _IS, _sN: _iS}), + (APPLIANCE_MODE_SUPPORT_VALUE, {_aQN: _AMSp, _sN: _aMS}), + ), +) + +TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGVA, + 0, + (_TGAI, _TGI, _VI, _VOI, _St, _SI, _CT, _O, _Tag), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _VOI, _sN: _vOI}), + (TRANSIT_GATEWAY_ATTACHMENT_STATE, {_aQN: _St, _sN: _st}), + (VALUE_STRING_LIST, {_aQN: _SI, _sN: _sIu}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TRANSIT_GATEWAY_VPC_ATTACHMENT_OPTIONS, {_aQN: _O, _sN: _o}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGVAO, + {_sSI: _cATGVARo, _smit: None}, + (_TGVA,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_aQN: _TGVA, _sN: _tGVA}),), +) + +ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _ATGVA, + 0, + ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT, + ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT, + (), +) + +VPC_ENDPOINT_SERVICE_ID: StaticSchema = (3, n0, _VESI, 0) + +VPC_ENDPOINT_ID: StaticSchema = (3, n0, _VEI, 0) + +VPC_ENDPOINT_ID_LIST: StaticSchema = ( + 16, + n0, + _VEIL, + 0, + (_me,), + ((VPC_ENDPOINT_ID, {_sN: _i}),), +) + +ACCEPT_VPC_ENDPOINT_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _AVECI, + {_sSI: _cAVECR, _sm: None}, + (_DR, _SIe, _VEIp), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 1), + (VPC_ENDPOINT_ID_LIST, {_sN: _VEI, _smi: None}), + ), +) + +UNSUCCESSFUL_ITEM_ERROR: StaticSchema = ( + 18, + n0, + _UIE, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +UNSUCCESSFUL_ITEM: StaticSchema = ( + 18, + n0, + _UI, + 0, + (_E, _RIe), + ((UNSUCCESSFUL_ITEM_ERROR, {_aQN: _E, _sN: _er}), (STRING, {_aQN: _RIe, _sN: _rI})), +) + +UNSUCCESSFUL_ITEM_SET: StaticSchema = ( + 16, + n0, + _UIS, + 0, + (_me,), + ((UNSUCCESSFUL_ITEM, {_sN: _i}),), +) + +ACCEPT_VPC_ENDPOINT_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _AVECO, + {_sSI: _cAVECRo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +ACCEPT_VPC_ENDPOINT_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _AVEC, + 0, + ACCEPT_VPC_ENDPOINT_CONNECTIONS_INPUT, + ACCEPT_VPC_ENDPOINT_CONNECTIONS_OUTPUT, + (), +) + +VPC_PEERING_CONNECTION_ID_WITH_RESOLVER: StaticSchema = (3, n0, _VPCIWR, 0) + +ACCEPT_VPC_PEERING_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _AVPCI, + {_sSI: _cAVPCR, _sm: None}, + (_DR, _VPCI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ( + VPC_PEERING_CONNECTION_ID_WITH_RESOLVER, + {_aQN: _VPCI, _sN: _vPCI, _smi: None}, + ), + ), +) + +CIDR_BLOCK: StaticSchema = (18, n0, _CB, 0, (_CB,), ((STRING, {_aQN: _CB, _sN: _cB}),)) + +CIDR_BLOCK_SET: StaticSchema = (16, n0, _CBS, 0, (_me,), ((CIDR_BLOCK, {_sN: _i}),)) + +IPV6_CIDR_BLOCK: StaticSchema = ( + 18, + n0, + _ICB, + 0, + (_ICB,), + ((STRING, {_aQN: _ICB, _sN: _iCB}),), +) + +IPV6_CIDR_BLOCK_SET: StaticSchema = ( + 16, + n0, + _ICBS, + 0, + (_me,), + ((IPV6_CIDR_BLOCK, {_sN: _i}),), +) + +VPC_PEERING_CONNECTION_OPTIONS_DESCRIPTION: StaticSchema = ( + 18, + n0, + _VPCOD, + 0, + (_ADRFRV, _AEFLCLTRV, _AEFLVTRCL), + ( + (BOOLEAN, {_aQN: _ADRFRV, _sN: _aDRFRV}), + (BOOLEAN, {_aQN: _AEFLCLTRV, _sN: _aEFLCLTRV}), + (BOOLEAN, {_aQN: _AEFLVTRCL, _sN: _aEFLVTRCL}), + ), +) + +VPC_PEERING_CONNECTION_VPC_INFO: StaticSchema = ( + 18, + n0, + _VPCVI, + 0, + (_CB, _ICBS, _CBS, _OIw, _PO, _VI, _Re), + ( + (STRING, {_aQN: _CB, _sN: _cB}), + (IPV6_CIDR_BLOCK_SET, {_aQN: _ICBS, _sN: _iCBS}), + (CIDR_BLOCK_SET, {_aQN: _CBS, _sN: _cBS}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (VPC_PEERING_CONNECTION_OPTIONS_DESCRIPTION, {_aQN: _PO, _sN: _pO}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _Re, _sN: _reg}), + ), +) + +VPC_PEERING_CONNECTION_STATE_REASON_CODE: StaticSchema = ( + 14, + n0, + _VPCSRC, + 0, + (_ir, _pa, _act, _del, _re, _fa, _ex, _pr, _de), + ( + (-1, {_sV: _ir_}), + (-1, {_sV: _pa_}), + (-1, {_sV: _act}), + (-1, {_sV: _del}), + (-1, {_sV: _re}), + (-1, {_sV: _fa}), + (-1, {_sV: _ex}), + (-1, {_sV: _pr}), + (-1, {_sV: _de}), + ), +) + +VPC_PEERING_CONNECTION_STATE_REASON: StaticSchema = ( + 18, + n0, + _VPCSR, + 0, + (_C, _Me), + ( + (VPC_PEERING_CONNECTION_STATE_REASON_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +VPC_PEERING_CONNECTION: StaticSchema = ( + 18, + n0, + _VPC, + 0, + (_AVI, _ET, _RVI, _Sta, _Tag, _VPCI), + ( + (VPC_PEERING_CONNECTION_VPC_INFO, {_aQN: _AVI, _sN: _aVI}), + (DATE_TIME, {_aQN: _ET, _sN: _eT}), + (VPC_PEERING_CONNECTION_VPC_INFO, {_aQN: _RVI, _sN: _rVI}), + (VPC_PEERING_CONNECTION_STATE_REASON, {_aQN: _Sta, _sN: _sta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + ), +) + +ACCEPT_VPC_PEERING_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _AVPCO, + {_sSI: _cAVPCRo, _smit: None}, + (_VPC,), + ((VPC_PEERING_CONNECTION, {_aQN: _VPC, _sN: _vPC}),), +) + +ACCEPT_VPC_PEERING_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _AVPC, + 0, + ACCEPT_VPC_PEERING_CONNECTION_INPUT, + ACCEPT_VPC_PEERING_CONNECTION_OUTPUT, + (), +) + +PORT_RANGE: StaticSchema = ( + 18, + n0, + _PR, + 0, + (_F, _To), + ((INTEGER, {_aQN: _F, _sN: _fr}), (INTEGER, {_aQN: _To, _sN: _to})), +) + +ANALYSIS_ACL_RULE: StaticSchema = ( + 18, + n0, + _AAR, + 0, + (_Ci, _Eg, _PR, _P, _RA, _RN), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (BOOLEAN, {_aQN: _Eg, _sN: _egr}), + (PORT_RANGE, {_aQN: _PR, _sN: _pR}), + (STRING, {_aQN: _P, _sN: _pro}), + (STRING, {_aQN: _RA, _sN: _rA}), + (INTEGER, {_aQN: _RN, _sN: _rN}), + ), +) + +ANALYSIS_COMPONENT: StaticSchema = ( + 18, + n0, + _ACn, + 0, + (_Id, _Ar, _N), + ( + (STRING, {_aQN: _Id, _sN: _id}), + (STRING, {_aQN: _Ar, _sN: _ar}), + (STRING, {_aQN: _N, _sN: _nam}), + ), +) + +ANALYSIS_COMPONENT_LIST: StaticSchema = ( + 16, + n0, + _ACL, + 0, + (_me,), + ((ANALYSIS_COMPONENT, {_sN: _i}),), +) + +RESOURCE_ARN: StaticSchema = (3, n0, _RAe, 0) + +STRING_LIST: StaticSchema = (16, n0, _SL, 0, (_me,), ((STRING, {_sN: _i}),)) + +RULE_OPTION: StaticSchema = ( + 18, + n0, + _RO, + 0, + (_Key, _Se), + ((STRING, {_aQN: _Key, _sN: _key}), (STRING_LIST, {_aQN: _SS, _sN: _sS})), +) + +RULE_OPTION_LIST: StaticSchema = (16, n0, _ROL, 0, (_me,), ((RULE_OPTION, {_sN: _i}),)) + +RULE_GROUP_RULE_OPTIONS_PAIR: StaticSchema = ( + 18, + n0, + _RGROP, + 0, + (_RGA, _ROu), + ( + (RESOURCE_ARN, {_aQN: _RGA, _sN: _rGA}), + (RULE_OPTION_LIST, {_aQN: _ROS, _sN: _rOS}), + ), +) + +RULE_GROUP_RULE_OPTIONS_PAIR_LIST: StaticSchema = ( + 16, + n0, + _RGROPL, + 0, + (_me,), + ((RULE_GROUP_RULE_OPTIONS_PAIR, {_sN: _i}),), +) + +RULE_GROUP_TYPE_PAIR: StaticSchema = ( + 18, + n0, + _RGTP, + 0, + (_RGA, _RGT), + ((RESOURCE_ARN, {_aQN: _RGA, _sN: _rGA}), (STRING, {_aQN: _RGT, _sN: _rGT})), +) + +RULE_GROUP_TYPE_PAIR_LIST: StaticSchema = ( + 16, + n0, + _RGTPL, + 0, + (_me,), + ((RULE_GROUP_TYPE_PAIR, {_sN: _i}),), +) + +ADDITIONAL_DETAIL: StaticSchema = ( + 18, + n0, + _AD, + 0, + (_ADT, _Co, _VES, _ROu, _RGTPu, _RGROPu, _SN, _LB), + ( + (STRING, {_aQN: _ADT, _sN: _aDT}), + (ANALYSIS_COMPONENT, {_aQN: _Co, _sN: _com}), + (ANALYSIS_COMPONENT, {_aQN: _VES, _sN: _vES}), + (RULE_OPTION_LIST, {_aQN: _ROS, _sN: _rOS}), + (RULE_GROUP_TYPE_PAIR_LIST, {_aQN: _RGTPS, _sN: _rGTPS}), + (RULE_GROUP_RULE_OPTIONS_PAIR_LIST, {_aQN: _RGROPS, _sN: _rGROPS}), + (STRING, {_aQN: _SN, _sN: _sNe}), + (ANALYSIS_COMPONENT_LIST, {_aQN: _LBS, _sN: _lBS}), + ), +) + +ADDITIONAL_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _ADL, + 0, + (_me,), + ((ADDITIONAL_DETAIL, {_sN: _i}),), +) + +IP_ADDRESS: StaticSchema = (3, n0, _IA, 0) + +IP_ADDRESS_LIST: StaticSchema = (16, n0, _IAL, 0, (_me,), ((IP_ADDRESS, {_sN: _i}),)) + +PORT: StaticSchema = (7, n0, _Po, 0) + +ANALYSIS_LOAD_BALANCER_LISTENER: StaticSchema = ( + 18, + n0, + _ALBL, + 0, + (_LBP, _IP), + ((PORT, {_aQN: _LBP, _sN: _lBP}), (PORT, {_aQN: _IP, _sN: _iP})), +) + +COMPONENT_ACCOUNT: StaticSchema = (3, n0, _CA, 0) + +COMPONENT_REGION: StaticSchema = (3, n0, _CR, 0) + +PORT_RANGE_LIST: StaticSchema = (16, n0, _PRL, 0, (_me,), ((PORT_RANGE, {_sN: _i}),)) + +FIREWALL_STATEFUL_RULE: StaticSchema = ( + 18, + n0, + _FSR, + 0, + (_RGA, _So, _D, _SP, _DP, _P, _RA, _Di), + ( + (RESOURCE_ARN, {_aQN: _RGA, _sN: _rGA}), + (VALUE_STRING_LIST, {_aQN: _SSo, _sN: _sSo}), + (VALUE_STRING_LIST, {_aQN: _DSe, _sN: _dSe}), + (PORT_RANGE_LIST, {_aQN: _SPS, _sN: _sPS}), + (PORT_RANGE_LIST, {_aQN: _DPS, _sN: _dPS}), + (STRING, {_aQN: _P, _sN: _pro}), + (STRING, {_aQN: _RA, _sN: _rA}), + (STRING, {_aQN: _Di, _sN: _dir}), + ), +) + +PRIORITY: StaticSchema = (7, n0, _Pr, 0) + +PROTOCOL_INT: StaticSchema = (7, n0, _PIr, 0) + +PROTOCOL_INT_LIST: StaticSchema = ( + 16, + n0, + _PIL, + 0, + (_me,), + ((PROTOCOL_INT, {_sN: _i}),), +) + +FIREWALL_STATELESS_RULE: StaticSchema = ( + 18, + n0, + _FSRi, + 0, + (_RGA, _So, _D, _SP, _DP, _Pro, _RA, _Pr), + ( + (RESOURCE_ARN, {_aQN: _RGA, _sN: _rGA}), + (VALUE_STRING_LIST, {_aQN: _SSo, _sN: _sSo}), + (VALUE_STRING_LIST, {_aQN: _DSe, _sN: _dSe}), + (PORT_RANGE_LIST, {_aQN: _SPS, _sN: _sPS}), + (PORT_RANGE_LIST, {_aQN: _DPS, _sN: _dPS}), + (PROTOCOL_INT_LIST, {_aQN: _PS, _sN: _pS}), + (STRING, {_aQN: _RA, _sN: _rA}), + (PRIORITY, {_aQN: _Pr, _sN: _pri}), + ), +) + +ANALYSIS_LOAD_BALANCER_TARGET: StaticSchema = ( + 18, + n0, + _ALBT, + 0, + (_Ad, _AZ, _AZI, _In, _Po), + ( + (IP_ADDRESS, {_aQN: _Ad, _sN: _ad}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (ANALYSIS_COMPONENT, {_aQN: _In, _sN: _ins}), + (PORT, {_aQN: _Po, _sN: _po}), + ), +) + +ANALYSIS_ROUTE_TABLE_ROUTE: StaticSchema = ( + 18, + n0, + _ARTR, + 0, + (_DC, _DPLI, _EOIGI, _GI, _II, _NGI, _NII, _Or, _TGI, _VPCI, _St, _CGI, _CNA, _LGI), + ( + (STRING, {_aQN: _DC, _sN: _dC}), + (STRING, {_aQN: _DPLI, _sN: _dPLI}), + (STRING, {_aQN: _EOIGI, _sN: _eOIGI}), + (STRING, {_aQN: _GI, _sN: _gI}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _NGI, _sN: _nGI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _Or, _sN: _or}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + (STRING, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _CGI, _sN: _cGI}), + (RESOURCE_ARN, {_aQN: _CNA, _sN: _cNA}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + ), +) + +ANALYSIS_SECURITY_GROUP_RULE: StaticSchema = ( + 18, + n0, + _ASGR, + 0, + (_Ci, _Di, _SGI, _PR, _PLI, _P), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (STRING, {_aQN: _Di, _sN: _dir}), + (STRING, {_aQN: _SGI, _sN: _sGI}), + (PORT_RANGE, {_aQN: _PR, _sN: _pR}), + (STRING, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _P, _sN: _pro}), + ), +) + +ANALYSIS_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: StaticSchema = ( + 18, + n0, + _ATGPTE, + 0, + (_RN, _P, _SC, _DC, _SPR, _DPR, _TRTI), + ( + (INTEGER, {_aQN: _RN, _sN: _rN}), + (STRING, {_aQN: _P, _sN: _pro}), + (STRING, {_aQN: _SC, _sN: _sC}), + (STRING, {_aQN: _DC, _sN: _dC}), + (PORT_RANGE, {_aQN: _SPR, _sN: _sPR}), + (PORT_RANGE, {_aQN: _DPR, _sN: _dPR}), + (STRING, {_aQN: _TRTI, _sN: _tRTI}), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ROUTE: StaticSchema = ( + 18, + n0, + _TGRTR, + 0, + (_DC, _St, _ROo, _PLI, _AIt, _RIe, _RT), + ( + (STRING, {_aQN: _DC, _sN: _dC}), + (STRING, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _ROo, _sN: _rO}), + (STRING, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _AIt, _sN: _aIt}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _RT, _sN: _rT}), + ), +) + +EXPLANATION: StaticSchema = ( + 18, + n0, + _Ex, + 0, + ( + _Ac, + _AR, + _Ad, + _Add, + _ATt, + _AZv, + _AZIv, + _Cid, + _Co, + _CG, + _De, + _DV, + _Di, + _EC, + _IRT, + _IG, + _LBA, + _CLBL, + _LBLP, + _LBT, + _LBTG, + _LBTGo, + _LBTP, + _ELBL, + _MC, + _NG, + _NI, + _PF, + _VPC, + _Po, + _PRo, + _PL, + _Pro, + _RTR, + _RTo, + _SG, + _SGR, + _SGe, + _SV, + _St, + _Sub, + _SRT, + _Vp, + _VE, + _VC, + _VG, + _TGr, + _TGRT, + _TGRTR, + _TGPT, + _TGPTE, + _TGA, + _CA, + _CR, + _FSRi, + _FSR, + ), + ( + (ANALYSIS_COMPONENT, {_aQN: _Ac, _sN: _acl}), + (ANALYSIS_ACL_RULE, {_aQN: _AR, _sN: _aR}), + (IP_ADDRESS, {_aQN: _Ad, _sN: _ad}), + (IP_ADDRESS_LIST, {_aQN: _AS, _sN: _aS}), + (ANALYSIS_COMPONENT, {_aQN: _ATt, _sN: _aTt}), + (VALUE_STRING_LIST, {_aQN: _AZS, _sN: _aZS}), + (VALUE_STRING_LIST, {_aQN: _AZIS, _sN: _aZIS}), + (VALUE_STRING_LIST, {_aQN: _CS, _sN: _cS}), + (ANALYSIS_COMPONENT, {_aQN: _Co, _sN: _com}), + (ANALYSIS_COMPONENT, {_aQN: _CG, _sN: _cG}), + (ANALYSIS_COMPONENT, {_aQN: _De, _sN: _des}), + (ANALYSIS_COMPONENT, {_aQN: _DV, _sN: _dV}), + (STRING, {_aQN: _Di, _sN: _dir}), + (STRING, {_aQN: _EC, _sN: _eC}), + (ANALYSIS_COMPONENT, {_aQN: _IRT, _sN: _iRT}), + (ANALYSIS_COMPONENT, {_aQN: _IG, _sN: _iG}), + (RESOURCE_ARN, {_aQN: _LBA, _sN: _lBA}), + (ANALYSIS_LOAD_BALANCER_LISTENER, {_aQN: _CLBL, _sN: _cLBL}), + (PORT, {_aQN: _LBLP, _sN: _lBLP}), + (ANALYSIS_LOAD_BALANCER_TARGET, {_aQN: _LBT, _sN: _lBT}), + (ANALYSIS_COMPONENT, {_aQN: _LBTG, _sN: _lBTG}), + (ANALYSIS_COMPONENT_LIST, {_aQN: _LBTGS, _sN: _lBTGS}), + (PORT, {_aQN: _LBTP, _sN: _lBTP}), + (ANALYSIS_COMPONENT, {_aQN: _ELBL, _sN: _eLBL}), + (STRING, {_aQN: _MC, _sN: _mC}), + (ANALYSIS_COMPONENT, {_aQN: _NG, _sN: _nG}), + (ANALYSIS_COMPONENT, {_aQN: _NI, _sN: _nI}), + (STRING, {_aQN: _PF, _sN: _pF}), + (ANALYSIS_COMPONENT, {_aQN: _VPC, _sN: _vPC}), + (PORT, {_aQN: _Po, _sN: _po}), + (PORT_RANGE_LIST, {_aQN: _PRS, _sN: _pRS}), + (ANALYSIS_COMPONENT, {_aQN: _PL, _sN: _pL}), + (STRING_LIST, {_aQN: _PS, _sN: _pS}), + (ANALYSIS_ROUTE_TABLE_ROUTE, {_aQN: _RTR, _sN: _rTR}), + (ANALYSIS_COMPONENT, {_aQN: _RTo, _sN: _rTo}), + (ANALYSIS_COMPONENT, {_aQN: _SG, _sN: _sG}), + (ANALYSIS_SECURITY_GROUP_RULE, {_aQN: _SGR, _sN: _sGR}), + (ANALYSIS_COMPONENT_LIST, {_aQN: _SGS, _sN: _sGS}), + (ANALYSIS_COMPONENT, {_aQN: _SV, _sN: _sVo}), + (STRING, {_aQN: _St, _sN: _st}), + (ANALYSIS_COMPONENT, {_aQN: _Sub, _sN: _su}), + (ANALYSIS_COMPONENT, {_aQN: _SRT, _sN: _sRT}), + (ANALYSIS_COMPONENT, {_aQN: _Vp, _sN: _vp}), + (ANALYSIS_COMPONENT, {_aQN: _VE, _sN: _vE}), + (ANALYSIS_COMPONENT, {_aQN: _VC, _sN: _vC}), + (ANALYSIS_COMPONENT, {_aQN: _VG, _sN: _vG}), + (ANALYSIS_COMPONENT, {_aQN: _TGr, _sN: _tG}), + (ANALYSIS_COMPONENT, {_aQN: _TGRT, _sN: _tGRT}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ROUTE, {_aQN: _TGRTR, _sN: _tGRTR}), + (ANALYSIS_COMPONENT, {_aQN: _TGPT, _sN: _tGPT}), + (ANALYSIS_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_aQN: _TGPTE, _sN: _tGPTE}), + (ANALYSIS_COMPONENT, {_aQN: _TGA, _sN: _tGA}), + (COMPONENT_ACCOUNT, {_aQN: _CA, _sN: _cA}), + (COMPONENT_REGION, {_aQN: _CR, _sN: _cR}), + (FIREWALL_STATELESS_RULE, {_aQN: _FSRi, _sN: _fSR}), + (FIREWALL_STATEFUL_RULE, {_aQN: _FSR, _sN: _fSRi}), + ), +) + +EXPLANATION_LIST: StaticSchema = (16, n0, _EL, 0, (_me,), ((EXPLANATION, {_sN: _i}),)) + +ANALYSIS_PACKET_HEADER: StaticSchema = ( + 18, + n0, + _APH, + 0, + (_DA, _DPRe, _P, _SAo, _SPRo), + ( + (IP_ADDRESS_LIST, {_aQN: _DAS, _sN: _dAS}), + (PORT_RANGE_LIST, {_aQN: _DPRS, _sN: _dPRS}), + (STRING, {_aQN: _P, _sN: _pro}), + (IP_ADDRESS_LIST, {_aQN: _SAS, _sN: _sAS}), + (PORT_RANGE_LIST, {_aQN: _SPRS, _sN: _sPRS}), + ), +) + +PATH_COMPONENT: StaticSchema = ( + 18, + n0, + _PC, + 0, + ( + _SNe, + _AR, + _ATt, + _Co, + _DV, + _OH, + _IH, + _RTR, + _SGR, + _SV, + _Sub, + _Vp, + _ADd, + _TGr, + _TGRTR, + _TGPTE, + _Exp, + _ELBL, + _FSRi, + _FSR, + _SN, + ), + ( + (INTEGER, {_aQN: _SNe, _sN: _sNeq}), + (ANALYSIS_ACL_RULE, {_aQN: _AR, _sN: _aR}), + (ANALYSIS_COMPONENT, {_aQN: _ATt, _sN: _aTt}), + (ANALYSIS_COMPONENT, {_aQN: _Co, _sN: _com}), + (ANALYSIS_COMPONENT, {_aQN: _DV, _sN: _dV}), + (ANALYSIS_PACKET_HEADER, {_aQN: _OH, _sN: _oH}), + (ANALYSIS_PACKET_HEADER, {_aQN: _IH, _sN: _iH}), + (ANALYSIS_ROUTE_TABLE_ROUTE, {_aQN: _RTR, _sN: _rTR}), + (ANALYSIS_SECURITY_GROUP_RULE, {_aQN: _SGR, _sN: _sGR}), + (ANALYSIS_COMPONENT, {_aQN: _SV, _sN: _sVo}), + (ANALYSIS_COMPONENT, {_aQN: _Sub, _sN: _su}), + (ANALYSIS_COMPONENT, {_aQN: _Vp, _sN: _vp}), + (ADDITIONAL_DETAIL_LIST, {_aQN: _ADS, _sN: _aDS}), + (ANALYSIS_COMPONENT, {_aQN: _TGr, _sN: _tG}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ROUTE, {_aQN: _TGRTR, _sN: _tGRTR}), + (ANALYSIS_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_aQN: _TGPTE, _sN: _tGPTE}), + (EXPLANATION_LIST, {_aQN: _ES, _sN: _eS}), + (ANALYSIS_COMPONENT, {_aQN: _ELBL, _sN: _eLBL}), + (FIREWALL_STATELESS_RULE, {_aQN: _FSRi, _sN: _fSR}), + (FIREWALL_STATEFUL_RULE, {_aQN: _FSR, _sN: _fSRi}), + (STRING, {_aQN: _SN, _sN: _sNe}), + ), +) + +PATH_COMPONENT_LIST: StaticSchema = ( + 16, + n0, + _PCL, + 0, + (_me,), + ((PATH_COMPONENT, {_sN: _i}),), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID: StaticSchema = (3, n0, _NIASAI, 0) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ID: StaticSchema = (3, n0, _NIASI, 0) + +ACCESS_SCOPE_ANALYSIS_FINDING: StaticSchema = ( + 18, + n0, + _ASAF, + 0, + (_NIASAI, _NIASI, _FI, _FC), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, {_aQN: _NIASAI, _sN: _nIASAI}), + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_aQN: _NIASI, _sN: _nIASI}), + (STRING, {_aQN: _FI, _sN: _fI}), + (PATH_COMPONENT_LIST, {_aQN: _FCS, _sN: _fCS}), + ), +) + +ACCESS_SCOPE_ANALYSIS_FINDING_LIST: StaticSchema = ( + 16, + n0, + _ASAFL, + 0, + (_me,), + ((ACCESS_SCOPE_ANALYSIS_FINDING, {_sN: _i}),), +) + +PROTOCOL: StaticSchema = ( + 14, + n0, + _P, + 0, + (_tc, _ud), + ((-1, {_sV: _tc}), (-1, {_sV: _ud})), +) + +PROTOCOL_LIST: StaticSchema = (16, n0, _PLr, 0, (_me,), ((PROTOCOL, {_sN: _i}),)) + +PACKET_HEADER_STATEMENT: StaticSchema = ( + 18, + n0, + _PHS, + 0, + (_SAo, _DA, _SP, _DP, _SPL, _DPL, _Pro), + ( + (VALUE_STRING_LIST, {_aQN: _SAS, _sN: _sAS}), + (VALUE_STRING_LIST, {_aQN: _DAS, _sN: _dAS}), + (VALUE_STRING_LIST, {_aQN: _SPS, _sN: _sPS}), + (VALUE_STRING_LIST, {_aQN: _DPS, _sN: _dPS}), + (VALUE_STRING_LIST, {_aQN: _SPLS, _sN: _sPLS}), + (VALUE_STRING_LIST, {_aQN: _DPLS, _sN: _dPLS}), + (PROTOCOL_LIST, {_aQN: _PS, _sN: _pS}), + ), +) + +RESOURCE_STATEMENT: StaticSchema = ( + 18, + n0, + _RS, + 0, + (_Res, _RTe), + ( + (VALUE_STRING_LIST, {_aQN: _RSe, _sN: _rS}), + (VALUE_STRING_LIST, {_aQN: _RTS, _sN: _rTS}), + ), +) + +PATH_STATEMENT: StaticSchema = ( + 18, + n0, + _PSa, + 0, + (_PHS, _RS), + ( + (PACKET_HEADER_STATEMENT, {_aQN: _PHS, _sN: _pHS}), + (RESOURCE_STATEMENT, {_aQN: _RS, _sN: _rSe}), + ), +) + +THROUGH_RESOURCES_STATEMENT: StaticSchema = ( + 18, + n0, + _TRS, + 0, + (_RS,), + ((RESOURCE_STATEMENT, {_aQN: _RS, _sN: _rSe}),), +) + +THROUGH_RESOURCES_STATEMENT_LIST: StaticSchema = ( + 16, + n0, + _TRSL, + 0, + (_me,), + ((THROUGH_RESOURCES_STATEMENT, {_sN: _i}),), +) + +ACCESS_SCOPE_PATH: StaticSchema = ( + 18, + n0, + _ASP, + 0, + (_Sou, _De, _TR), + ( + (PATH_STATEMENT, {_aQN: _Sou, _sN: _so}), + (PATH_STATEMENT, {_aQN: _De, _sN: _des}), + (THROUGH_RESOURCES_STATEMENT_LIST, {_aQN: _TRSh, _sN: _tRS}), + ), +) + +ACCESS_SCOPE_PATH_LIST: StaticSchema = ( + 16, + n0, + _ASPL, + 0, + (_me,), + ((ACCESS_SCOPE_PATH, {_sN: _i}),), +) + +PACKET_HEADER_STATEMENT_REQUEST: StaticSchema = ( + 18, + n0, + _PHSR, + 0, + (_SAo, _DA, _SP, _DP, _SPL, _DPL, _Pro), + ( + (VALUE_STRING_LIST, {_sN: _SAou}), + (VALUE_STRING_LIST, {_sN: _DAe}), + (VALUE_STRING_LIST, {_sN: _SPo}), + (VALUE_STRING_LIST, {_sN: _DPe}), + (VALUE_STRING_LIST, {_sN: _SPLo}), + (VALUE_STRING_LIST, {_sN: _DPLe}), + (PROTOCOL_LIST, {_sN: _P}), + ), +) + +RESOURCE_STATEMENT_REQUEST: StaticSchema = ( + 18, + n0, + _RSR, + 0, + (_Res, _RTe), + ((VALUE_STRING_LIST, {_sN: _Reso}), (VALUE_STRING_LIST, {_sN: _RT})), +) + +PATH_STATEMENT_REQUEST: StaticSchema = ( + 18, + n0, + _PSR, + 0, + (_PHS, _RS), + ((PACKET_HEADER_STATEMENT_REQUEST, 0), (RESOURCE_STATEMENT_REQUEST, 0)), +) + +THROUGH_RESOURCES_STATEMENT_REQUEST: StaticSchema = ( + 18, + n0, + _TRSR, + 0, + (_RS,), + ((RESOURCE_STATEMENT_REQUEST, 0),), +) + +THROUGH_RESOURCES_STATEMENT_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _TRSRL, + 0, + (_me,), + ((THROUGH_RESOURCES_STATEMENT_REQUEST, {_sN: _i}),), +) + +ACCESS_SCOPE_PATH_REQUEST: StaticSchema = ( + 18, + n0, + _ASPR, + 0, + (_Sou, _De, _TR), + ( + (PATH_STATEMENT_REQUEST, 0), + (PATH_STATEMENT_REQUEST, 0), + (THROUGH_RESOURCES_STATEMENT_REQUEST_LIST, {_sN: _TRh}), + ), +) + +ACCESS_SCOPE_PATH_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _ASPLR, + 0, + (_me,), + ((ACCESS_SCOPE_PATH_REQUEST, {_sN: _i}),), +) + +ACCOUNT_ATTRIBUTE_VALUE: StaticSchema = ( + 18, + n0, + _AAV, + 0, + (_AV,), + ((STRING, {_aQN: _AV, _sN: _aV}),), +) + +ACCOUNT_ATTRIBUTE_VALUE_LIST: StaticSchema = ( + 16, + n0, + _AAVL, + 0, + (_me,), + ((ACCOUNT_ATTRIBUTE_VALUE, {_sN: _i}),), +) + +ACCOUNT_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _AA, + 0, + (_ANt, _AVt), + ( + (STRING, {_aQN: _ANt, _sN: _aN}), + (ACCOUNT_ATTRIBUTE_VALUE_LIST, {_aQN: _AVS, _sN: _aVS}), + ), +) + +ACCOUNT_ATTRIBUTE_LIST: StaticSchema = ( + 16, + n0, + _AAL, + 0, + (_me,), + ((ACCOUNT_ATTRIBUTE, {_sN: _i}),), +) + +ACCOUNT_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _AAN, + 0, + (_sp, _dv), + ((-1, {_sV: _sp_}), (-1, {_sV: _dv_})), +) + +ACCOUNT_ATTRIBUTE_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _AANSL, + 0, + (_me,), + ((ACCOUNT_ATTRIBUTE_NAME, {_sN: _aN}),), +) + +ACCOUNT_ID: StaticSchema = (3, n0, _AID, 0) + +VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE: StaticSchema = ( + 14, + n0, + _VECES, + 0, + (_en, _ena, _disab, _d), + ((-1, {_sV: _en}), (-1, {_sV: _ena}), (-1, {_sV: _disab}), (-1, {_sV: _d})), +) + +ACCOUNT_VPC_ENCRYPTION_CONTROL_EXCLUSIONS: StaticSchema = ( + 18, + n0, + _AVECE, + 0, + (_IG, _EOIG, _NG, _VPG, _VP, _La, _VL, _EFS), + ( + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _IG, _sN: _iG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _EOIG, _sN: _eOIG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _NG, _sN: _nG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _VPG, _sN: _vPG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _VP, _sN: _vP}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _La, _sN: _la}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _VL, _sN: _vL}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _EFS, _sN: _eFS}), + ), +) + +MANAGED_BY: StaticSchema = ( + 14, + n0, + _MB, + 0, + (_acc, _dp), + ((-1, {_sV: _acc}), (-1, {_sV: _dp_})), +) + +ACCOUNT_VPC_ENCRYPTION_CONTROL_MODE: StaticSchema = ( + 14, + n0, + _AVECM, + 0, + (_unm, _am, _ae), + ((-1, {_sV: _unm}), (-1, {_sV: _am_}), (-1, {_sV: _ae_})), +) + +ACCOUNT_VPC_ENCRYPTION_CONTROL_STATE: StaticSchema = ( + 14, + n0, + _AVECS, + 0, + (_ds, _tip, _tps, _ts, _tf), + ( + (-1, {_sV: _ds_}), + (-1, {_sV: _tip_}), + (-1, {_sV: _tps_}), + (-1, {_sV: _ts_}), + (-1, {_sV: _tf_}), + ), +) + +ACCOUNT_VPC_ENCRYPTION_CONTROL: StaticSchema = ( + 18, + n0, + _AVECc, + 0, + (_St, _Mo, _Exc, _MB, _LUT), + ( + (ACCOUNT_VPC_ENCRYPTION_CONTROL_STATE, {_aQN: _St, _sN: _st}), + (ACCOUNT_VPC_ENCRYPTION_CONTROL_MODE, {_aQN: _Mo, _sN: _mod}), + (ACCOUNT_VPC_ENCRYPTION_CONTROL_EXCLUSIONS, {_aQN: _Exc, _sN: _exc}), + (MANAGED_BY, {_aQN: _MB, _sN: _mB}), + (MILLISECOND_DATE_TIME, {_aQN: _LUT, _sN: _lUT}), + ), +) + +INSTANCE_HEALTH_STATUS: StaticSchema = ( + 14, + n0, + _IHS, + 0, + (_HS, _US), + ((-1, {_sV: _he}), (-1, {_sV: _unh})), +) + +ACTIVE_INSTANCE: StaticSchema = ( + 18, + n0, + _AIc, + 0, + (_II, _IT, _SIRI, _IHn), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _SIRI, _sN: _sIRI}), + (INSTANCE_HEALTH_STATUS, {_aQN: _IHn, _sN: _iHn}), + ), +) + +ACTIVE_INSTANCE_SET: StaticSchema = ( + 16, + n0, + _AIS, + 0, + (_me,), + ((ACTIVE_INSTANCE, {_sN: _i}),), +) + +VPN_TUNNEL_PROVISIONING_STATUS: StaticSchema = ( + 14, + n0, + _VTPS, + 0, + (_av, _p, _fa), + ((-1, {_sV: _av}), (-1, {_sV: _p}), (-1, {_sV: _fa})), +) + +ACTIVE_VPN_TUNNEL_STATUS: StaticSchema = ( + 18, + n0, + _AVTS, + 0, + (_PEA, _PEAh, _PIA, _PIAh, _PDHG, _PDHGh, _IV, _PSr, _PSRr), + ( + (STRING, {_aQN: _PEA, _sN: _pEA}), + (STRING, {_aQN: _PEAh, _sN: _pEAh}), + (STRING, {_aQN: _PIA, _sN: _pIA}), + (STRING, {_aQN: _PIAh, _sN: _pIAh}), + (INTEGER, {_aQN: _PDHG, _sN: _pDHG}), + (INTEGER, {_aQN: _PDHGh, _sN: _pDHGh}), + (STRING, {_aQN: _IV, _sN: _iV}), + (VPN_TUNNEL_PROVISIONING_STATUS, {_aQN: _PSr, _sN: _pSr}), + (STRING, {_aQN: _PSRr, _sN: _pSR}), + ), +) + +ACTIVITY_STATUS: StaticSchema = ( + 14, + n0, + _ASc, + 0, + (_ERROR, _PF_, _PT, _FULFILLED), + ((-1, {_sV: _er}), (-1, {_sV: _pf}), (-1, {_sV: _pt}), (-1, {_sV: _fu})), +) + +PRINCIPAL_TYPE: StaticSchema = ( + 14, + n0, + _PTr, + 0, + (_Al, _Ser, _OU, _Acc, _Us, _Ro), + ( + (-1, {_sV: _Al}), + (-1, {_sV: _Ser}), + (-1, {_sV: _OU}), + (-1, {_sV: _Acc}), + (-1, {_sV: _Us}), + (-1, {_sV: _Ro}), + ), +) + +ADDED_PRINCIPAL: StaticSchema = ( + 18, + n0, + _AP, + 0, + (_PTr, _Pri, _SPI, _SIe), + ( + (PRINCIPAL_TYPE, {_aQN: _PTr, _sN: _pT}), + (STRING, {_aQN: _Pri, _sN: _prin}), + (STRING, {_aQN: _SPI, _sN: _sPI}), + (STRING, {_aQN: _SIe, _sN: _sIe}), + ), +) + +ADDED_PRINCIPAL_SET: StaticSchema = ( + 16, + n0, + _APS, + 0, + (_me,), + ((ADDED_PRINCIPAL, {_sN: _i}),), +) + +ADD_IPAM_OPERATING_REGION: StaticSchema = (18, n0, _AIOR, 0, (_RNe,), ((STRING, 0),)) + +ADD_IPAM_OPERATING_REGION_SET: StaticSchema = ( + 16, + n0, + _AIORS, + 0, + (_me,), + ((ADD_IPAM_OPERATING_REGION, 0),), +) + +ADD_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION: StaticSchema = ( + 18, + n0, + _AIOUE, + 0, + (_OEP,), + ((STRING, 0),), +) + +ADD_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET: StaticSchema = ( + 16, + n0, + _AIOUES, + 0, + (_me,), + ((ADD_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION, 0),), +) + +ADDITIONAL_FLEXIBLE_NETWORK_INTERFACES: StaticSchema = (7, n0, _AFNI, 0) + +ADD_PREFIX_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _APLE, + 0, + (_Ci, _Des), + ((STRING, 1), (STRING, 0)), +) + +ADD_PREFIX_LIST_ENTRIES: StaticSchema = ( + 16, + n0, + _APLEd, + 0, + (_me,), + ((ADD_PREFIX_LIST_ENTRY, 0),), +) + +DOMAIN_TYPE: StaticSchema = ( + 14, + n0, + _DTo, + 0, + (_vp, _stan), + ((-1, {_sV: _vp}), (-1, {_sV: _stan})), +) + +SERVICE_MANAGED: StaticSchema = ( + 14, + n0, + _SM, + 0, + (_al, _nl, _rn, _rd), + ((-1, {_sV: _al}), (-1, {_sV: _nl}), (-1, {_sV: _rn}), (-1, {_sV: _rd})), +) + +ADDRESS: StaticSchema = ( + 18, + n0, + _Ad, + 0, + ( + _AI, + _AIs, + _Do, + _NII, + _NIOI, + _PIAr, + _Tag, + _PIP, + _NBG, + _COI, + _COIP, + _CI, + _SIu, + _SM, + _II, + _PI, + ), + ( + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _AIs, _sN: _aIs}), + (DOMAIN_TYPE, {_aQN: _Do, _sN: _dom}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _NIOI, _sN: _nIOI}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _PIP, _sN: _pIP}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _COI, _sN: _cOI}), + (STRING, {_aQN: _COIP, _sN: _cOIP}), + (STRING, {_aQN: _CI, _sN: _cI}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (SERVICE_MANAGED, {_aQN: _SM, _sN: _sM}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _PI, _sN: _pI}), + ), +) + +ALLOCATION_ID: StaticSchema = (3, n0, _AI, 0) + +PTR_UPDATE_STATUS: StaticSchema = ( + 18, + n0, + _PUS, + 0, + (_Va, _Sta, _Rea), + ( + (STRING, {_aQN: _Va, _sN: _va}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _Rea, _sN: _rea}), + ), +) + +PUBLIC_IP_ADDRESS: StaticSchema = (3, n0, _PIAu, 0) + +ADDRESS_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _AAd, + 0, + (_PI, _AI, _PRt, _PRU), + ( + (PUBLIC_IP_ADDRESS, {_aQN: _PI, _sN: _pI}), + (ALLOCATION_ID, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _PRt, _sN: _pRt}), + (PTR_UPDATE_STATUS, {_aQN: _PRU, _sN: _pRU}), + ), +) + +ADDRESS_ATTRIBUTE_NAME: StaticSchema = (14, n0, _AANd, 0, (_dn,), ((-1, {_sV: _dn_}),)) + +ADDRESS_FAMILY: StaticSchema = ( + 14, + n0, + _AF, + 0, + (_ipv, _ipv_), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_})), +) + +ADDRESS_LIST: StaticSchema = (16, n0, _AL, 0, (_me,), ((ADDRESS, {_sN: _i}),)) + +ADDRESS_MAX_RESULTS: StaticSchema = (7, n0, _AMR, 0) + +ADDRESS_SET: StaticSchema = (16, n0, _AS, 0, (_me,), ((ADDRESS_ATTRIBUTE, {_sN: _i}),)) + +ADDRESS_TRANSFER_LIST: StaticSchema = ( + 16, + n0, + _ATL, + 0, + (_me,), + ((ADDRESS_TRANSFER, {_sN: _i}),), +) + +ADVERTISE_BYOIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _ABCI, + {_sSI: _cABCR, _sm: None}, + (_Ci, _Asn, _DR, _NBG), + ((STRING, 1), (STRING, 0), (BOOLEAN, 0), (STRING, 0)), +) + +ASN_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _AAS, + 0, + (_dis, _fd, _fa_, _pd, _pa__, _ass), + ( + (-1, {_sV: _dis}), + (-1, {_sV: _fd_}), + (-1, {_sV: _fa__}), + (-1, {_sV: _pd_}), + (-1, {_sV: _pa___}), + (-1, {_sV: _ass}), + ), +) + +ASN_ASSOCIATION: StaticSchema = ( + 18, + n0, + _AAs, + 0, + (_Asn, _Ci, _SMt, _St), + ( + (STRING, {_aQN: _Asn, _sN: _asn}), + (STRING, {_aQN: _Ci, _sN: _ci}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (ASN_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +ASN_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _AASs, + 0, + (_me,), + ((ASN_ASSOCIATION, {_sN: _i}),), +) + +IPAM_POOL_ID: StaticSchema = (3, n0, _IPI, 0) + +BYOIP_CIDR_STATE: StaticSchema = ( + 14, + n0, + _BCS, + 0, + (_adv, _dep, _fd__, _fp, _pa____, _pd__, _pp, _pw, _prov, _pnpa), + ( + (-1, {_sV: _adv}), + (-1, {_sV: _dep}), + (-1, {_sV: _fd___}), + (-1, {_sV: _fp_}), + (-1, {_sV: _pa_____}), + (-1, {_sV: _pd___}), + (-1, {_sV: _pp_}), + (-1, {_sV: _pw_}), + (-1, {_sV: _prov}), + (-1, {_sV: _pnpa_}), + ), +) + +BYOIP_CIDR: StaticSchema = ( + 18, + n0, + _BC, + 0, + (_Ci, _Des, _AAsn, _SMt, _St, _NBG, _ATdv, _PIo, _IPI), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (STRING, {_aQN: _Des, _sN: _desc}), + (ASN_ASSOCIATION_SET, {_aQN: _AASs, _sN: _aAS}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (BYOIP_CIDR_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _ATdv, _sN: _aTd}), + (STRING, {_aQN: _PIo, _sN: _pIo}), + (IPAM_POOL_ID, {_aQN: _IPI, _sN: _iPI}), + ), +) + +ADVERTISE_BYOIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _ABCO, + {_sSI: _cABCRo, _smit: None}, + (_BC,), + ((BYOIP_CIDR, {_aQN: _BC, _sN: _bC}),), +) + +ADVERTISE_BYOIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _ABC, + 0, + ADVERTISE_BYOIP_CIDR_INPUT, + ADVERTISE_BYOIP_CIDR_OUTPUT, + (), +) + +AFFINITY: StaticSchema = ( + 14, + n0, + _Af, + 0, + (_def, _ho), + ((-1, {_sV: _def}), (-1, {_sV: _ho})), +) + +AGGREGATION_STATUS_ENUM: StaticSchema = ( + 14, + n0, + _ASE, + 0, + (_INCLUDED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _excl})), +) + +IPV4_POOL_EC2_ID: StaticSchema = (3, n0, _IPEI, 0) + +ALLOCATE_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _AAI, + {_sSI: _cAAR, _sm: None}, + (_Do, _Ad, _PIP, _NBG, _COIP, _TSa, _IPI, _DR), + ( + (DOMAIN_TYPE, 0), + (PUBLIC_IP_ADDRESS, 0), + (IPV4_POOL_EC2_ID, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (IPAM_POOL_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +ALLOCATE_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _AAO, + {_sSI: _cAARo, _smit: None}, + (_AI, _PIP, _NBG, _Do, _COI, _COIP, _CI, _PI), + ( + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _PIP, _sN: _pIP}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (DOMAIN_TYPE, {_aQN: _Do, _sN: _dom}), + (STRING, {_aQN: _COI, _sN: _cOI}), + (STRING, {_aQN: _COIP, _sN: _cOIP}), + (STRING, {_aQN: _CI, _sN: _cI}), + (STRING, {_aQN: _PI, _sN: _pI}), + ), +) + +ALLOCATE_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _AAl, + 0, + ALLOCATE_ADDRESS_INPUT, + ALLOCATE_ADDRESS_OUTPUT, + (), +) + +ASSET_ID: StaticSchema = (3, n0, _AIss, 0) + +ASSET_ID_LIST: StaticSchema = (16, n0, _AIL, 0, (_me,), ((ASSET_ID, 0),)) + +AUTO_PLACEMENT: StaticSchema = ( + 14, + n0, + _APu, + 0, + (_on, _of), + ((-1, {_sV: _on}), (-1, {_sV: _of})), +) + +AVAILABILITY_ZONE_NAME: StaticSchema = (3, n0, _AZN, 0) + +AVAILABILITY_ZONE_ID: StaticSchema = (3, n0, _AZI, 0) + +AMD_SEV_SNP: StaticSchema = ( + 14, + n0, + _ASS, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +HOST_CPU_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _HCOR, + 0, + (_ASS,), + ((AMD_SEV_SNP, 0),), +) + +HOST_MAINTENANCE: StaticSchema = ( + 14, + n0, + _HM, + 0, + (_on, _of), + ((-1, {_sV: _on}), (-1, {_sV: _of})), +) + +HOST_RECOVERY: StaticSchema = ( + 14, + n0, + _HR, + 0, + (_on, _of), + ((-1, {_sV: _on}), (-1, {_sV: _of})), +) + +ALLOCATE_HOSTS_INPUT: StaticSchema = ( + 18, + n0, + _AHI, + {_sSI: _cAHR, _sm: None}, + (_IF, _TSa, _HR, _OA, _HM, _AIsse, _AZI, _CO, _APu, _CTl, _IT, _Q, _AZ), + ( + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (HOST_RECOVERY, 0), + (STRING, 0), + (HOST_MAINTENANCE, 0), + (ASSET_ID_LIST, {_sN: _AIss}), + (AVAILABILITY_ZONE_ID, 0), + (HOST_CPU_OPTIONS_REQUEST, 0), + (AUTO_PLACEMENT, {_aQN: _APu, _sN: _aP}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _Q, _sN: _q}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + ), +) + +RESPONSE_HOST_ID_LIST: StaticSchema = (16, n0, _RHIL, 0, (_me,), ((STRING, {_sN: _i}),)) + +ALLOCATE_HOSTS_OUTPUT: StaticSchema = ( + 18, + n0, + _AHO, + {_sSI: _cAHRo, _smit: None}, + (_HI,), + ((RESPONSE_HOST_ID_LIST, {_aQN: _HIS, _sN: _hIS}),), +) + +ALLOCATE_HOSTS: StaticOperationSchema = ( + 23, + n0, + _AH, + 0, + ALLOCATE_HOSTS_INPUT, + ALLOCATE_HOSTS_OUTPUT, + (), +) + +IPAM_POOL_ALLOCATION_ALLOWED_CIDRS: StaticSchema = ( + 16, + n0, + _IPAAC, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +IPAM_POOL_ALLOCATION_DISALLOWED_CIDRS: StaticSchema = ( + 16, + n0, + _IPADC, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +ALLOCATE_IPAM_POOL_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _AIPCI, + {_sSI: _cAIPCR, _sm: None}, + (_DR, _IPI, _Ci, _NL, _CTl, _Des, _PNC, _ACl, _DCi, _TSa), + ( + (BOOLEAN, 0), + (IPAM_POOL_ID, 1), + (STRING, 0), + (INTEGER, 0), + (STRING, 2), + (STRING, 0), + (BOOLEAN, 0), + (IPAM_POOL_ALLOCATION_ALLOWED_CIDRS, {_sN: _ACll}), + (IPAM_POOL_ALLOCATION_DISALLOWED_CIDRS, {_sN: _DCis}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +IPAM_POOL_ALLOCATION_ID: StaticSchema = (3, n0, _IPAI, 0) + +IPAM_POOL_ALLOCATION_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IPART, + 0, + (_ip_, _vp, _epip, _cu, _su, _eip, _ail), + ( + (-1, {_sV: _ip__}), + (-1, {_sV: _vp}), + (-1, {_sV: _epip_}), + (-1, {_sV: _cu}), + (-1, {_sV: _su}), + (-1, {_sV: _eip}), + (-1, {_sV: _ail_}), + ), +) + +IPAM_POOL_ALLOCATION: StaticSchema = ( + 18, + n0, + _IPA, + 0, + (_Ci, _IPAI, _Des, _RIe, _RT, _RR, _ROe, _Tag), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (IPAM_POOL_ALLOCATION_ID, {_aQN: _IPAI, _sN: _iPAI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (IPAM_POOL_ALLOCATION_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _ROe, _sN: _rOe}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ALLOCATE_IPAM_POOL_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _AIPCO, + {_sSI: _cAIPCRo, _smit: None}, + (_IPA,), + ((IPAM_POOL_ALLOCATION, {_aQN: _IPA, _sN: _iPA}),), +) + +ALLOCATE_IPAM_POOL_CIDR: StaticOperationSchema = ( + 23, + n0, + _AIPC, + 0, + ALLOCATE_IPAM_POOL_CIDR_INPUT, + ALLOCATE_IPAM_POOL_CIDR_OUTPUT, + (), +) + +ALLOCATION_ID_LIST: StaticSchema = ( + 16, + n0, + _AILl, + 0, + (_me,), + ((ALLOCATION_ID, {_sN: _AI}),), +) + +ALLOCATION_IDS: StaticSchema = (16, n0, _AIl, 0, (_me,), ((ALLOCATION_ID, {_sN: _i}),)) + +ALLOCATION_STATE: StaticSchema = ( + 14, + n0, + _ASl, + 0, + (_av, _ua, _pf_, _rel, _rpf, _p, _con), + ( + (-1, {_sV: _av}), + (-1, {_sV: _ua_}), + (-1, {_sV: _pf__}), + (-1, {_sV: _rel}), + (-1, {_sV: _rpf_}), + (-1, {_sV: _p}), + (-1, {_sV: _con}), + ), +) + +ALLOCATION_STRATEGY: StaticSchema = ( + 14, + n0, + _ASll, + 0, + (_LP, _DIVERSIFIED, _CO_, _COP, _PCO), + ( + (-1, {_sV: _lP}), + (-1, {_sV: _div}), + (-1, {_sV: _cO}), + (-1, {_sV: _cOP}), + (-1, {_sV: _pCO}), + ), +) + +ALLOCATION_TYPE: StaticSchema = ( + 14, + n0, + _ATl, + 0, + (_us, _fut, _ca), + ((-1, {_sV: _us}), (-1, {_sV: _fut}), (-1, {_sV: _ca})), +) + +ALLOWED_IMAGES_SETTINGS_DISABLED_STATE: StaticSchema = ( + 14, + n0, + _AISDS, + 0, + (_d,), + ((-1, {_sV: _d}),), +) + +ALLOWED_IMAGES_SETTINGS_ENABLED_STATE: StaticSchema = ( + 14, + n0, + _AISES, + 0, + (_ena, _am__), + ((-1, {_sV: _ena}), (-1, {_sV: _am___})), +) + +ALLOWED_INSTANCE_TYPE: StaticSchema = (3, n0, _AIT, 0) + +ALLOWED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _AITS, + 0, + (_me,), + ((ALLOWED_INSTANCE_TYPE, {_sN: _i}),), +) + +ALLOWED_PRINCIPAL: StaticSchema = ( + 18, + n0, + _APl, + 0, + (_PTr, _Pri, _SPI, _Tag, _SIe), + ( + (PRINCIPAL_TYPE, {_aQN: _PTr, _sN: _pT}), + (STRING, {_aQN: _Pri, _sN: _prin}), + (STRING, {_aQN: _SPI, _sN: _sPI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _SIe, _sN: _sIe}), + ), +) + +ALLOWED_PRINCIPAL_SET: StaticSchema = ( + 16, + n0, + _APSl, + 0, + (_me,), + ((ALLOWED_PRINCIPAL, {_sN: _i}),), +) + +ALLOWS_MULTIPLE_INSTANCE_TYPES: StaticSchema = ( + 14, + n0, + _AMIT, + 0, + (_on, _of), + ((-1, {_sV: _on}), (-1, {_sV: _of})), +) + +ALTERNATE_PATH_HINT: StaticSchema = ( + 18, + n0, + _APHl, + 0, + (_CIo, _CAo), + ((STRING, {_aQN: _CIo, _sN: _cIo}), (STRING, {_aQN: _CAo, _sN: _cAo})), +) + +ALTERNATE_PATH_HINT_LIST: StaticSchema = ( + 16, + n0, + _APHL, + 0, + (_me,), + ((ALTERNATE_PATH_HINT, {_sN: _i}),), +) + +SECURITY_GROUP_ID: StaticSchema = (3, n0, _SGI, 0) + +CLIENT_VPN_SECURITY_GROUP_ID_SET: StaticSchema = ( + 16, + n0, + _CVSGIS, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _i}),), +) + +VPC_ID: StaticSchema = (3, n0, _VI, 0) + +APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_INPUT: StaticSchema = ( + 18, + n0, + _ASGTCVTNI, + {_sSI: _cASGTCVTNR, _sm: None}, + (_CVEI, _VI, _SGIe, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (VPC_ID, 1), + (CLIENT_VPN_SECURITY_GROUP_ID_SET, {_sN: _SGI, _smi: None}), + (BOOLEAN, 0), + ), +) + +APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_OUTPUT: StaticSchema = ( + 18, + n0, + _ASGTCVTNO, + {_sSI: _cASGTCVTNRo, _smit: None}, + (_SGIe,), + ((CLIENT_VPN_SECURITY_GROUP_ID_SET, {_aQN: _SGIe, _sN: _sGIe}),), +) + +APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK: StaticOperationSchema = ( + 23, + n0, + _ASGTCVTN, + 0, + APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_INPUT, + APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_OUTPUT, + (), +) + +IPV6_ADDRESS_LIST: StaticSchema = (16, n0, _IALp, 0, (_me,), ((STRING, {_sN: _i}),)) + +IP_PREFIX_LIST: StaticSchema = (16, n0, _IPL, 0, (_me,), ((STRING, {_sN: _i}),)) + +NETWORK_INTERFACE_ID: StaticSchema = (3, n0, _NII, 0) + +ASSIGN_IPV6_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _AIAI, + {_sSI: _cAIAR, _sm: None}, + (_IPC, _IPp, _NII, _IAp, _IAC), + ( + (INTEGER, 0), + (IP_PREFIX_LIST, {_sN: _IPpv}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (IPV6_ADDRESS_LIST, {_aQN: _IAp, _sN: _iA}), + (INTEGER, {_aQN: _IAC, _sN: _iAC}), + ), +) + +ASSIGN_IPV6_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _AIAO, + {_sSI: _cAIARo, _smit: None}, + (_AIA, _AIP, _NII), + ( + (IPV6_ADDRESS_LIST, {_aQN: _AIA, _sN: _aIA}), + (IP_PREFIX_LIST, {_aQN: _AIPS, _sN: _aIPS}), + (STRING, {_aQN: _NII, _sN: _nII}), + ), +) + +ASSIGN_IPV6_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _AIAs, + 0, + ASSIGN_IPV6_ADDRESSES_INPUT, + ASSIGN_IPV6_ADDRESSES_OUTPUT, + (), +) + +PRIVATE_IP_ADDRESS_STRING_LIST: StaticSchema = ( + 16, + n0, + _PIASL, + 0, + (_me,), + ((STRING, {_sN: _PIAr}),), +) + +ASSIGN_PRIVATE_IP_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _APIAI, + {_sSI: _cAPIAR, _sm: None}, + (_IPpvr, _IPCp, _NII, _PIAri, _SPIAC, _ARl), + ( + (IP_PREFIX_LIST, {_sN: _IPpvre}), + (INTEGER, 0), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (PRIVATE_IP_ADDRESS_STRING_LIST, {_aQN: _PIAr, _sN: _pIAr}), + (INTEGER, {_aQN: _SPIAC, _sN: _sPIAC}), + (BOOLEAN, {_aQN: _ARl, _sN: _aRl}), + ), +) + +IPV4_PREFIX_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IPS, + 0, + (_IPpvre,), + ((STRING, {_aQN: _IPpvre, _sN: _iPp}),), +) + +IPV4_PREFIXES_LIST: StaticSchema = ( + 16, + n0, + _IPLp, + 0, + (_me,), + ((IPV4_PREFIX_SPECIFICATION, {_sN: _i}),), +) + +ASSIGNED_PRIVATE_IP_ADDRESS: StaticSchema = ( + 18, + n0, + _APIA, + 0, + (_PIAr,), + ((STRING, {_aQN: _PIAr, _sN: _pIAr}),), +) + +ASSIGNED_PRIVATE_IP_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _APIAL, + 0, + (_me,), + ((ASSIGNED_PRIVATE_IP_ADDRESS, {_sN: _i}),), +) + +ASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _APIAO, + {_sSI: _cAPIARo, _smit: None}, + (_NII, _APIAs, _AIPs), + ( + (STRING, {_aQN: _NII, _sN: _nII}), + (ASSIGNED_PRIVATE_IP_ADDRESS_LIST, {_aQN: _APIAS, _sN: _aPIAS}), + (IPV4_PREFIXES_LIST, {_aQN: _AIPSs, _sN: _aIPSs}), + ), +) + +ASSIGN_PRIVATE_IP_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _APIAss, + 0, + ASSIGN_PRIVATE_IP_ADDRESSES_INPUT, + ASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT, + (), +) + +NAT_GATEWAY_ID: StaticSchema = (3, n0, _NGI, 0) + +PRIVATE_IP_ADDRESS_COUNT: StaticSchema = (7, n0, _PIAC, 0) + +IP_LIST: StaticSchema = (16, n0, _IL, 0, (_me,), ((STRING, {_sN: _i}),)) + +ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _APNGAI, + {_sSI: _cAPNGAR, _sm: None}, + (_NGI, _PIAri, _PIAC, _DR), + ( + (NAT_GATEWAY_ID, 1), + (IP_LIST, {_sN: _PIAr}), + (PRIVATE_IP_ADDRESS_COUNT, 0), + (BOOLEAN, 0), + ), +) + +NAT_GATEWAY_ADDRESS_STATUS: StaticSchema = ( + 14, + n0, + _NGAS, + 0, + (_ASSIGNING, _UNASSIGNING, _ASSOCIATING, _DISASSOCIATING, _SUCCEEDED, _FAILED), + ( + (-1, {_sV: _assi}), + (-1, {_sV: _una}), + (-1, {_sV: _as}), + (-1, {_sV: _di}), + (-1, {_sV: _suc}), + (-1, {_sV: _fa}), + ), +) + +NAT_GATEWAY_ADDRESS: StaticSchema = ( + 18, + n0, + _NGA, + 0, + (_AI, _NII, _PIri, _PI, _AIs, _IPs, _FM, _Sta, _AZ, _AZI), + ( + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _PIri, _sN: _pIr}), + (STRING, {_aQN: _PI, _sN: _pI}), + (STRING, {_aQN: _AIs, _sN: _aIs}), + (BOOLEAN, {_aQN: _IPs, _sN: _iPs}), + (STRING, {_aQN: _FM, _sN: _fM}), + (NAT_GATEWAY_ADDRESS_STATUS, {_aQN: _Sta, _sN: _sta}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + ), +) + +NAT_GATEWAY_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _NGAL, + 0, + (_me,), + ((NAT_GATEWAY_ADDRESS, {_sN: _i}),), +) + +ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _APNGAO, + {_sSI: _cAPNGARo, _smit: None}, + (_NGI, _NGAa), + ( + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + (NAT_GATEWAY_ADDRESS_LIST, {_aQN: _NGASa, _sN: _nGAS}), + ), +) + +ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _APNGA, + 0, + ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT, + ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT, + (), +) + +INSTANCE_ID: StaticSchema = (3, n0, _II, 0) + +EIP_ALLOCATION_PUBLIC_IP: StaticSchema = (3, n0, _EAPI, 0) + +ASSOCIATE_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _AAIs, + {_sSI: _cAARom, _sm: None}, + (_AI, _II, _PI, _DR, _NII, _PIAr, _ARll), + ( + (ALLOCATION_ID, 0), + (INSTANCE_ID, 0), + (EIP_ALLOCATION_PUBLIC_IP, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (BOOLEAN, {_aQN: _ARll, _sN: _aRll}), + ), +) + +ASSOCIATE_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _AAOs, + {_sSI: _cAARoma, _smit: None}, + (_AIs,), + ((STRING, {_aQN: _AIs, _sN: _aIs}),), +) + +ASSOCIATE_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _AAss, + 0, + ASSOCIATE_ADDRESS_INPUT, + ASSOCIATE_ADDRESS_OUTPUT, + (), +) + +APPLICATION_STATUS_CHECK_ID: StaticSchema = (3, n0, _ASCI, 0) + +INSTANCE_ID_LIST: StaticSchema = (16, n0, _IIL, 0, (_me,), ((INSTANCE_ID, {_sN: _i}),)) + +CUSTOM_TAG_KEY_VALUE_REQUEST_PAIR: StaticSchema = ( + 18, + n0, + _CTKVRP, + 0, + (_Ke, _Va), + ((STRING, 0), (STRING, 0)), +) + +CUSTOM_KEY_VALUE_PAIR_REQUEST_SET: StaticSchema = ( + 16, + n0, + _CKVPRS, + 0, + (_me,), + ((CUSTOM_TAG_KEY_VALUE_REQUEST_PAIR, {_sN: _i}),), +) + +ASSOCIATE_APPLICATION_STATUS_CHECK_INPUT: StaticSchema = ( + 18, + n0, + _AASCI, + {_sSI: _cAASCR, _sm: None}, + (_ASCI, _TTA, _IIn, _CTl, _DR), + ( + (APPLICATION_STATUS_CHECK_ID, 1), + (CUSTOM_KEY_VALUE_PAIR_REQUEST_SET, {_sN: _TTAa}), + (INSTANCE_ID_LIST, {_sN: _II}), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +SUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _SARO, + 0, + (_ASCI, _ATs, _AVs), + ( + (APPLICATION_STATUS_CHECK_ID, {_aQN: _ASCI, _sN: _aSCI}), + (STRING, {_aQN: _ATs, _sN: _aTs}), + (STRING, {_aQN: _AVs, _sN: _aVs}), + ), +) + +SUCCESSFUL_ASSOCIATION_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _SARS, + 0, + (_me,), + ((SUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT, {_sN: _i}),), +) + +UNSUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _UARO, + 0, + (_ASCI, _ATs, _AVs, _Rea), + ( + (APPLICATION_STATUS_CHECK_ID, {_aQN: _ASCI, _sN: _aSCI}), + (STRING, {_aQN: _ATs, _sN: _aTs}), + (STRING, {_aQN: _AVs, _sN: _aVs}), + (STRING, {_aQN: _Rea, _sN: _rea}), + ), +) + +UNSUCCESSFUL_ASSOCIATION_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _UARS, + 0, + (_me,), + ((UNSUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT, {_sN: _i}),), +) + +ASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT: StaticSchema = ( + 18, + n0, + _AASCO, + {_sSI: _cAASCRo, _smit: None}, + (_SR, _UR), + ( + (SUCCESSFUL_ASSOCIATION_RESPONSE_SET, {_aQN: _SRS, _sN: _sRS}), + (UNSUCCESSFUL_ASSOCIATION_RESPONSE_SET, {_aQN: _URS, _sN: _uRS}), + ), +) + +ASSOCIATE_APPLICATION_STATUS_CHECK: StaticOperationSchema = ( + 23, + n0, + _AASC, + 0, + ASSOCIATE_APPLICATION_STATUS_CHECK_INPUT, + ASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT, + (), +) + +ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT: StaticSchema = ( + 18, + n0, + _ACRBOIs, + {_sSI: _cACRBORom, _sm: None}, + (_DR, _CRI, _URBOI), + ((BOOLEAN, 0), (CAPACITY_RESERVATION_ID, 1), (ACCOUNT_ID, 1)), +) + +ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT: StaticSchema = ( + 18, + n0, + _ACRBOOs, + {_sSI: _cACRBORoma, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER: StaticOperationSchema = ( + 23, + n0, + _ACRBOs, + 0, + ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT, + ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT, + (), +) + +SUBNET_ID: StaticSchema = (3, n0, _SIu, 0) + +ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT: StaticSchema = ( + 18, + n0, + _ACVTNI, + {_sSI: _cACVTNR, _sm: None}, + (_CVEI, _SIu, _CTl, _DR, _AZ, _AZI), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (SUBNET_ID, 0), + (STRING, 2), + (BOOLEAN, 0), + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + ), +) + +ASSOCIATION_STATUS_CODE: StaticSchema = ( + 14, + n0, + _ASC, + 0, + (_as, _ass, _af, _di, _dis), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _af_}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + ), +) + +ASSOCIATION_STATUS: StaticSchema = ( + 18, + n0, + _ASs, + 0, + (_C, _Me), + ((ASSOCIATION_STATUS_CODE, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT: StaticSchema = ( + 18, + n0, + _ACVTNO, + {_sSI: _cACVTNRo, _smit: None}, + (_AIs, _Sta), + ((STRING, {_aQN: _AIs, _sN: _aIs}), (ASSOCIATION_STATUS, {_aQN: _Sta, _sN: _sta})), +) + +ASSOCIATE_CLIENT_VPN_TARGET_NETWORK: StaticOperationSchema = ( + 23, + n0, + _ACVTN, + 0, + ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT, + ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT, + (), +) + +DEFAULTING_DHCP_OPTIONS_ID: StaticSchema = (3, n0, _DDOI, 0) + +ASSOCIATE_DHCP_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _ADOI, + {_sSI: _cADOR, _sm: None}, + (_DOI, _VI, _DR), + ((DEFAULTING_DHCP_OPTIONS_ID, 1), (VPC_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +ASSOCIATE_DHCP_OPTIONS_OUTPUT: StaticSchema = (18, n0, _ADOO, {_sSI: _sU, _smit: None}) + +ASSOCIATE_DHCP_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _ADO, + 0, + ASSOCIATE_DHCP_OPTIONS_INPUT, + ASSOCIATE_DHCP_OPTIONS_OUTPUT, + (), +) + +CERTIFICATE_ID: StaticSchema = (3, n0, _CIe, 0) + +ROLE_ID: StaticSchema = (3, n0, _RIo, 0) + +ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _AECIRI, + {_sSI: _cAECIRR, _sm: None}, + (_CAe, _RAo, _DR), + ((CERTIFICATE_ID, 1), (ROLE_ID, 1), (BOOLEAN, 0)), +) + +ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _AECIRO, + {_sSI: _cAECIRRo, _smit: None}, + (_CSBN, _CSOK, _EKKI), + ( + (STRING, {_aQN: _CSBN, _sN: _cSBN}), + (STRING, {_aQN: _CSOK, _sN: _cSOK}), + (STRING, {_aQN: _EKKI, _sN: _eKKI}), + ), +) + +ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE: StaticOperationSchema = ( + 23, + n0, + _AECIR, + 0, + ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT, + ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT, + (), +) + +IAM_INSTANCE_PROFILE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IIPS, + 0, + (_Ar, _N), + ((STRING, {_aQN: _Ar, _sN: _ar}), (STRING, {_aQN: _N, _sN: _nam})), +) + +ASSOCIATE_IAM_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _AIIPI, + {_sSI: _cAIIPR, _sm: None}, + (_IIP, _II), + ((IAM_INSTANCE_PROFILE_SPECIFICATION, 1), (INSTANCE_ID, 1)), +) + +IAM_INSTANCE_PROFILE: StaticSchema = ( + 18, + n0, + _IIP, + 0, + (_Ar, _Id), + ((STRING, {_aQN: _Ar, _sN: _ar}), (STRING, {_aQN: _Id, _sN: _id})), +) + +IAM_INSTANCE_PROFILE_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _IIPAS, + 0, + (_ASSOCIATING, _ASSOCIATED, _DISASSOCIATING, _DISASSOCIATED), + ((-1, {_sV: _as}), (-1, {_sV: _ass}), (-1, {_sV: _di}), (-1, {_sV: _dis})), +) + +IAM_INSTANCE_PROFILE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _IIPA, + 0, + (_AIs, _II, _IIP, _St, _Ti), + ( + (STRING, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _II, _sN: _iI}), + (IAM_INSTANCE_PROFILE, {_aQN: _IIP, _sN: _iIP}), + (IAM_INSTANCE_PROFILE_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + ), +) + +ASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _AIIPO, + {_sSI: _cAIIPRo, _smit: None}, + (_IIPA,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION, {_aQN: _IIPA, _sN: _iIPA}),), +) + +ASSOCIATE_IAM_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _AIIP, + 0, + ASSOCIATE_IAM_INSTANCE_PROFILE_INPUT, + ASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT, + (), +) + +DEDICATED_HOST_ID: StaticSchema = (3, n0, _DHI, 0) + +DEDICATED_HOST_ID_LIST: StaticSchema = ( + 16, + n0, + _DHIL, + 0, + (_me,), + ((DEDICATED_HOST_ID, {_sN: _i}),), +) + +INSTANCE_EVENT_WINDOW_ASSOCIATION_REQUEST: StaticSchema = ( + 18, + n0, + _IEWAR, + 0, + (_IIn, _ITn, _DHIe), + ( + (INSTANCE_ID_LIST, {_sN: _II}), + (TAG_LIST, {_sN: _ITns}), + (DEDICATED_HOST_ID_LIST, {_sN: _DHI}), + ), +) + +INSTANCE_EVENT_WINDOW_ID: StaticSchema = (3, n0, _IEWI, 0) + +ASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT: StaticSchema = ( + 18, + n0, + _AIEWI, + {_sSI: _cAIEWR, _sm: None}, + (_DR, _IEWI, _ATss), + ( + (BOOLEAN, 0), + (INSTANCE_EVENT_WINDOW_ID, 1), + (INSTANCE_EVENT_WINDOW_ASSOCIATION_REQUEST, 1), + ), +) + +INSTANCE_EVENT_WINDOW_ASSOCIATION_TARGET: StaticSchema = ( + 18, + n0, + _IEWAT, + 0, + (_IIn, _Tag, _DHIe), + ( + (INSTANCE_ID_LIST, {_aQN: _IIS, _sN: _iIS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (DEDICATED_HOST_ID_LIST, {_aQN: _DHIS, _sN: _dHIS}), + ), +) + +INSTANCE_EVENT_WINDOW_CRON_EXPRESSION: StaticSchema = (3, n0, _IEWCE, 0) + +INSTANCE_EVENT_WINDOW_STATE: StaticSchema = ( + 14, + n0, + _IEWS, + 0, + (_cre, _de, _act, _del), + ((-1, {_sV: _cre}), (-1, {_sV: _de}), (-1, {_sV: _act}), (-1, {_sV: _del})), +) + +HOUR: StaticSchema = (7, n0, _Ho, 0) + +WEEK_DAY: StaticSchema = ( + 14, + n0, + _WD, + 0, + (_sun, _mon, _tu, _w, _th, _fri, _sa), + ( + (-1, {_sV: _sun}), + (-1, {_sV: _mon}), + (-1, {_sV: _tu}), + (-1, {_sV: _w}), + (-1, {_sV: _th}), + (-1, {_sV: _fri}), + (-1, {_sV: _sa}), + ), +) + +INSTANCE_EVENT_WINDOW_TIME_RANGE: StaticSchema = ( + 18, + n0, + _IEWTR, + 0, + (_SWD, _SH, _EWD, _EH), + ( + (WEEK_DAY, {_aQN: _SWD, _sN: _sWD}), + (HOUR, {_aQN: _SH, _sN: _sH}), + (WEEK_DAY, {_aQN: _EWD, _sN: _eWD}), + (HOUR, {_aQN: _EH, _sN: _eH}), + ), +) + +INSTANCE_EVENT_WINDOW_TIME_RANGE_LIST: StaticSchema = ( + 16, + n0, + _IEWTRL, + 0, + (_me,), + ((INSTANCE_EVENT_WINDOW_TIME_RANGE, {_sN: _i}),), +) + +INSTANCE_EVENT_WINDOW: StaticSchema = ( + 18, + n0, + _IEW, + 0, + (_IEWI, _TRi, _N, _CE, _ATss, _St, _Tag), + ( + (INSTANCE_EVENT_WINDOW_ID, {_aQN: _IEWI, _sN: _iEWI}), + (INSTANCE_EVENT_WINDOW_TIME_RANGE_LIST, {_aQN: _TRSi, _sN: _tRSi}), + (STRING, {_aQN: _N, _sN: _nam}), + (INSTANCE_EVENT_WINDOW_CRON_EXPRESSION, {_aQN: _CE, _sN: _cE}), + (INSTANCE_EVENT_WINDOW_ASSOCIATION_TARGET, {_aQN: _ATss, _sN: _aTss}), + (INSTANCE_EVENT_WINDOW_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT: StaticSchema = ( + 18, + n0, + _AIEWO, + {_sSI: _cAIEWRo, _smit: None}, + (_IEW,), + ((INSTANCE_EVENT_WINDOW, {_aQN: _IEW, _sN: _iEW}),), +) + +ASSOCIATE_INSTANCE_EVENT_WINDOW: StaticOperationSchema = ( + 23, + n0, + _AIEW, + 0, + ASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT, + ASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT, + (), +) + +ASSOCIATE_IPAM_BYOASN_INPUT: StaticSchema = ( + 18, + n0, + _AIBI, + {_sSI: _cAIBR, _sm: None}, + (_DR, _Asn, _Ci), + ((BOOLEAN, 0), (STRING, 1), (STRING, 1)), +) + +ASSOCIATE_IPAM_BYOASN_OUTPUT: StaticSchema = ( + 18, + n0, + _AIBO, + {_sSI: _cAIBRo, _smit: None}, + (_AAs,), + ((ASN_ASSOCIATION, {_aQN: _AAs, _sN: _aA}),), +) + +ASSOCIATE_IPAM_BYOASN: StaticOperationSchema = ( + 23, + n0, + _AIB, + 0, + ASSOCIATE_IPAM_BYOASN_INPUT, + ASSOCIATE_IPAM_BYOASN_OUTPUT, + (), +) + +IPAM_ID: StaticSchema = (3, n0, _IIp, 0) + +IPAM_RESOURCE_DISCOVERY_ID: StaticSchema = (3, n0, _IRDI, 0) + +ASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT: StaticSchema = ( + 18, + n0, + _AIRDI, + {_sSI: _cAIRDR, _sm: None}, + (_DR, _IIp, _IRDI, _TSa, _CTl), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + ), +) + +IPAM_RESOURCE_DISCOVERY_ASSOCIATION_ID: StaticSchema = (3, n0, _IRDAI, 0) + +IPAM_ASSOCIATED_RESOURCE_DISCOVERY_STATUS: StaticSchema = ( + 14, + n0, + _IARDS, + 0, + (_ACTIVE, _NF), + ((-1, {_sV: _act}), (-1, {_sV: _nf__})), +) + +IPAM_RESOURCE_DISCOVERY_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _IRDAS, + 0, + (_AIP_, _AC_, _AF_, _DIP, _DC_, _DF, _IIP_, _IC_, _RIP), + ( + (-1, {_sV: _aip}), + (-1, {_sV: _ac_}), + (-1, {_sV: _af__}), + (-1, {_sV: _dip}), + (-1, {_sV: _dc}), + (-1, {_sV: _df}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_RESOURCE_DISCOVERY_ASSOCIATION: StaticSchema = ( + 18, + n0, + _IRDA, + 0, + (_OIw, _IRDAI, _IRDAA, _IRDI, _IIp, _IApa, _IR, _ID, _RDS, _St, _Tag), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_RESOURCE_DISCOVERY_ASSOCIATION_ID, {_aQN: _IRDAI, _sN: _iRDAI}), + (STRING, {_aQN: _IRDAA, _sN: _iRDAA}), + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _IRDI, _sN: _iRDI}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (BOOLEAN, {_aQN: _ID, _sN: _iD}), + (IPAM_ASSOCIATED_RESOURCE_DISCOVERY_STATUS, {_aQN: _RDS, _sN: _rDS}), + (IPAM_RESOURCE_DISCOVERY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT: StaticSchema = ( + 18, + n0, + _AIRDO, + {_sSI: _cAIRDRo, _smit: None}, + (_IRDA,), + ((IPAM_RESOURCE_DISCOVERY_ASSOCIATION, {_aQN: _IRDA, _sN: _iRDA}),), +) + +ASSOCIATE_IPAM_RESOURCE_DISCOVERY: StaticOperationSchema = ( + 23, + n0, + _AIRD, + 0, + ASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT, + ASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT, + (), +) + +ASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _ANGAI, + {_sSI: _cANGAR, _sm: None}, + (_NGI, _AIl, _PIAri, _DR, _AZ, _AZI), + ( + (NAT_GATEWAY_ID, 1), + (ALLOCATION_ID_LIST, {_sN: _AI, _smi: None}), + (IP_LIST, {_sN: _PIAr}), + (BOOLEAN, 0), + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + ), +) + +ASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ANGAO, + {_sSI: _cANGARo, _smit: None}, + (_NGI, _NGAa), + ( + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + (NAT_GATEWAY_ADDRESS_LIST, {_aQN: _NGASa, _sN: _nGAS}), + ), +) + +ASSOCIATE_NAT_GATEWAY_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _ANGA, + 0, + ASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT, + ASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT, + (), +) + +ROUTE_SERVER_ID: StaticSchema = (3, n0, _RSI, 0) + +ASSOCIATE_ROUTE_SERVER_INPUT: StaticSchema = ( + 18, + n0, + _ARSI, + {_sSI: _cARSR, _sm: None}, + (_RSI, _VI, _DR), + ((ROUTE_SERVER_ID, 1), (VPC_ID, 1), (BOOLEAN, 0)), +) + +ROUTE_SERVER_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _RSAS, + 0, + (_ASSOCIATING, _ASSOCIATED, _DISASSOCIATING), + ((-1, {_sV: _as}), (-1, {_sV: _ass}), (-1, {_sV: _di})), +) + +ROUTE_SERVER_ASSOCIATION: StaticSchema = ( + 18, + n0, + _RSA, + 0, + (_RSI, _VI, _St), + ( + (ROUTE_SERVER_ID, {_aQN: _RSI, _sN: _rSI}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (ROUTE_SERVER_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +ASSOCIATE_ROUTE_SERVER_OUTPUT: StaticSchema = ( + 18, + n0, + _ARSO, + {_sSI: _cARSRo, _smit: None}, + (_RSA,), + ((ROUTE_SERVER_ASSOCIATION, {_aQN: _RSA, _sN: _rSA}),), +) + +ASSOCIATE_ROUTE_SERVER: StaticOperationSchema = ( + 23, + n0, + _ARS, + 0, + ASSOCIATE_ROUTE_SERVER_INPUT, + ASSOCIATE_ROUTE_SERVER_OUTPUT, + (), +) + +ROUTE_GATEWAY_ID: StaticSchema = (3, n0, _RGI, 0) + +ROUTE_TABLE_ID: StaticSchema = (3, n0, _RTIo, 0) + +ASSOCIATE_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _ARTI, + {_sSI: _cARTR, _sm: None}, + (_GI, _PIP, _DR, _SIu, _RTIo), + ( + (ROUTE_GATEWAY_ID, 0), + (IPV4_POOL_EC2_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + ), +) + +ROUTE_TABLE_ASSOCIATION_STATE_CODE: StaticSchema = ( + 14, + n0, + _RTASC, + 0, + (_as, _ass, _di, _dis, _fa), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _fa}), + ), +) + +ROUTE_TABLE_ASSOCIATION_STATE: StaticSchema = ( + 18, + n0, + _RTAS, + 0, + (_St, _SMt), + ( + (ROUTE_TABLE_ASSOCIATION_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + ), +) + +ASSOCIATE_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _ARTO, + {_sSI: _cARTRo, _smit: None}, + (_AIs, _ASss), + ( + (STRING, {_aQN: _AIs, _sN: _aIs}), + (ROUTE_TABLE_ASSOCIATION_STATE, {_aQN: _ASss, _sN: _aSs}), + ), +) + +ASSOCIATE_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _ART, + 0, + ASSOCIATE_ROUTE_TABLE_INPUT, + ASSOCIATE_ROUTE_TABLE_OUTPUT, + (), +) + +ASSOCIATE_SECURITY_GROUP_VPC_INPUT: StaticSchema = ( + 18, + n0, + _ASGVI, + {_sSI: _cASGVR, _sm: None}, + (_GIr, _VI, _DR), + ((SECURITY_GROUP_ID, 1), (VPC_ID, 1), (BOOLEAN, 0)), +) + +SECURITY_GROUP_VPC_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _SGVAS, + 0, + (_as, _ass, _af, _di, _dis, _df_), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _af_}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _df__}), + ), +) + +ASSOCIATE_SECURITY_GROUP_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _ASGVO, + {_sSI: _cASGVRo, _smit: None}, + (_St,), + ((SECURITY_GROUP_VPC_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}),), +) + +ASSOCIATE_SECURITY_GROUP_VPC: StaticOperationSchema = ( + 23, + n0, + _ASGV, + 0, + ASSOCIATE_SECURITY_GROUP_VPC_INPUT, + ASSOCIATE_SECURITY_GROUP_VPC_OUTPUT, + (), +) + +NETMASK_LENGTH: StaticSchema = (7, n0, _NL, 0) + +ASSOCIATE_SUBNET_CIDR_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _ASCBI, + {_sSI: _cASCBR, _sm: None}, + (_IIPI, _INL, _SIu, _ICB), + ( + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI, _smi: None}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + ), +) + +SUBNET_CIDR_ASSOCIATION_ID: StaticSchema = (3, n0, _SCAI, 0) + +IP_SOURCE: StaticSchema = ( + 14, + n0, + _ISp, + 0, + (_ama, _b, _no), + ((-1, {_sV: _ama}), (-1, {_sV: _b}), (-1, {_sV: _no})), +) + +IPV6_ADDRESS_ATTRIBUTE: StaticSchema = ( + 14, + n0, + _IAA, + 0, + (_pu, _priv), + ((-1, {_sV: _pu}), (-1, {_sV: _priv})), +) + +SUBNET_CIDR_BLOCK_STATE_CODE: StaticSchema = ( + 14, + n0, + _SCBSC, + 0, + (_as, _ass, _di, _dis, _fai, _fa), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _fai}), + (-1, {_sV: _fa}), + ), +) + +SUBNET_CIDR_BLOCK_STATE: StaticSchema = ( + 18, + n0, + _SCBS, + 0, + (_St, _SMt), + ( + (SUBNET_CIDR_BLOCK_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + ), +) + +SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION: StaticSchema = ( + 18, + n0, + _SICBA, + 0, + (_AIs, _ICB, _ICBSp, _IAA, _ISp), + ( + (SUBNET_CIDR_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + (SUBNET_CIDR_BLOCK_STATE, {_aQN: _ICBSp, _sN: _iCBSp}), + (IPV6_ADDRESS_ATTRIBUTE, {_aQN: _IAA, _sN: _iAA}), + (IP_SOURCE, {_aQN: _ISp, _sN: _iSp}), + ), +) + +ASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _ASCBO, + {_sSI: _cASCBRo, _smit: None}, + (_ICBA, _SIu), + ( + (SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION, {_aQN: _ICBA, _sN: _iCBA}), + (STRING, {_aQN: _SIu, _sN: _sI}), + ), +) + +ASSOCIATE_SUBNET_CIDR_BLOCK: StaticOperationSchema = ( + 23, + n0, + _ASCB, + 0, + ASSOCIATE_SUBNET_CIDR_BLOCK_INPUT, + ASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT, + (), +) + +TRANSIT_GATEWAY_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _TGSIL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT: StaticSchema = ( + 18, + n0, + _ATGMDI, + {_sSI: _cATGMDR, _sm: None}, + (_TGMDI, _TGAI, _SI, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (TRANSIT_GATEWAY_SUBNET_ID_LIST, 1), + (BOOLEAN, 0), + ), +) + +ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGMDO, + {_sSI: _cATGMDRo, _smit: None}, + (_As,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, {_aQN: _As, _sN: _asso}),), +) + +ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: StaticOperationSchema = ( + 23, + n0, + _ATGMD, + 0, + ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT, + ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT, + (), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ID: StaticSchema = (3, n0, _TGPTI, 0) + +ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _ATGPTI, + {_sSI: _cATGPTR, _sm: None}, + (_TGPTI, _TGAI, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _TGASr, + 0, + (_as, _ass, _di, _dis), + ((-1, {_sV: _as}), (-1, {_sV: _ass}), (-1, {_sV: _di}), (-1, {_sV: _dis})), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TGPTA, + 0, + (_TGPTI, _TGAI, _RIe, _RT, _St), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, {_aQN: _TGPTI, _sN: _tGPTI}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (TRANSIT_GATEWAY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGPTO, + {_sSI: _cATGPTRo, _smit: None}, + (_Ass,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}),), +) + +ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE: StaticOperationSchema = ( + 23, + n0, + _ATGPT, + 0, + ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT, + ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ID: StaticSchema = (3, n0, _TGRTI, 0) + +ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _ATGRTI, + {_sSI: _cATGRTR, _sm: None}, + (_TGRTI, _TGAI, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TGAr, + 0, + (_TGRTI, _TGAI, _RIe, _RT, _St), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, {_aQN: _TGRTI, _sN: _tGRTI}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (TRANSIT_GATEWAY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _ATGRTO, + {_sSI: _cATGRTRo, _smit: None}, + (_Ass,), + ((TRANSIT_GATEWAY_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}),), +) + +ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _ATGRT, + 0, + ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT, + ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +ASSOCIATE_TRUNK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _ATII, + {_sSI: _cATIR, _sm: None}, + (_BII, _TII, _VIl, _GK, _CTl, _DR), + ( + (NETWORK_INTERFACE_ID, 1), + (NETWORK_INTERFACE_ID, 1), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +TRUNK_INTERFACE_ASSOCIATION_ID: StaticSchema = (3, n0, _TIAI, 0) + +INTERFACE_PROTOCOL_TYPE: StaticSchema = ( + 14, + n0, + _IPT, + 0, + (_VLAN, _GRE), + ((-1, {_sV: _VLAN}), (-1, {_sV: _GRE})), +) + +TRUNK_INTERFACE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TIA, + 0, + (_AIs, _BII, _TII, _IPn, _VIl, _GK, _Tag), + ( + (TRUNK_INTERFACE_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _BII, _sN: _bII}), + (STRING, {_aQN: _TII, _sN: _tII}), + (INTERFACE_PROTOCOL_TYPE, {_aQN: _IPn, _sN: _iPn}), + (INTEGER, {_aQN: _VIl, _sN: _vIl}), + (INTEGER, {_aQN: _GK, _sN: _gK}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ASSOCIATE_TRUNK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _ATIO, + {_sSI: _cATIRo, _smit: None}, + (_IAn, _CTl), + ( + (TRUNK_INTERFACE_ASSOCIATION, {_aQN: _IAn, _sN: _iAn}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +ASSOCIATE_TRUNK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _ATIs, + 0, + ASSOCIATE_TRUNK_INTERFACE_INPUT, + ASSOCIATE_TRUNK_INTERFACE_OUTPUT, + (), +) + +IPV6_POOL_EC2_ID: StaticSchema = (3, n0, _IPEIp, 0) + +ASSOCIATE_VPC_CIDR_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _AVCBI, + {_sSI: _cAVCBR, _sm: None}, + (_CB, _ICBNBG, _IPpvo, _ICB, _IIPIp, _INLp, _IIPI, _INL, _VI, _APICB), + ( + (STRING, 0), + (STRING, 0), + (IPV6_POOL_EC2_ID, 0), + (STRING, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + (BOOLEAN, {_aQN: _APICB, _sN: _aPICB}), + ), +) + +VPC_CIDR_BLOCK_STATE_CODE: StaticSchema = ( + 14, + n0, + _VCBSC, + 0, + (_as, _ass, _di, _dis, _fai, _fa), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _fai}), + (-1, {_sV: _fa}), + ), +) + +VPC_CIDR_BLOCK_STATE: StaticSchema = ( + 18, + n0, + _VCBS, + 0, + (_St, _SMt), + ( + (VPC_CIDR_BLOCK_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + ), +) + +VPC_CIDR_BLOCK_ASSOCIATION: StaticSchema = ( + 18, + n0, + _VCBA, + 0, + (_AIs, _CB, _CBSi), + ( + (STRING, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _CB, _sN: _cB}), + (VPC_CIDR_BLOCK_STATE, {_aQN: _CBSi, _sN: _cBSi}), + ), +) + +VPC_IPV6_CIDR_BLOCK_ASSOCIATION: StaticSchema = ( + 18, + n0, + _VICBA, + 0, + (_AIs, _ICB, _ICBSp, _NBG, _IPpvo, _IAA, _ISp), + ( + (STRING, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + (VPC_CIDR_BLOCK_STATE, {_aQN: _ICBSp, _sN: _iCBSp}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _IPpvo, _sN: _iPpv}), + (IPV6_ADDRESS_ATTRIBUTE, {_aQN: _IAA, _sN: _iAA}), + (IP_SOURCE, {_aQN: _ISp, _sN: _iSp}), + ), +) + +ASSOCIATE_VPC_CIDR_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _AVCBO, + {_sSI: _cAVCBRo, _smit: None}, + (_ICBA, _CBA, _VI), + ( + (VPC_IPV6_CIDR_BLOCK_ASSOCIATION, {_aQN: _ICBA, _sN: _iCBA}), + (VPC_CIDR_BLOCK_ASSOCIATION, {_aQN: _CBA, _sN: _cBA}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +ASSOCIATE_VPC_CIDR_BLOCK: StaticOperationSchema = ( + 23, + n0, + _AVCB, + 0, + ASSOCIATE_VPC_CIDR_BLOCK_INPUT, + ASSOCIATE_VPC_CIDR_BLOCK_OUTPUT, + (), +) + +GROUP_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _GISL, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _gIr}),), +) + +ATTACH_CLASSIC_LINK_VPC_INPUT: StaticSchema = ( + 18, + n0, + _ACLVI, + {_sSI: _cACLVR, _sm: None}, + (_DR, _II, _VI, _G), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + (GROUP_ID_STRING_LIST, {_sN: _SGI, _smi: None}), + ), +) + +ATTACH_CLASSIC_LINK_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _ACLVO, + {_sSI: _cACLVRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ATTACH_CLASSIC_LINK_VPC: StaticOperationSchema = ( + 23, + n0, + _ACLV, + 0, + ATTACH_CLASSIC_LINK_VPC_INPUT, + ATTACH_CLASSIC_LINK_VPC_OUTPUT, + (), +) + +IMAGE_ID: StaticSchema = (3, n0, _IIm, 0) + +IMAGE_WATERMARK_NAME_REQUEST: StaticSchema = (3, n0, _IWNR, 0) + +ATTACH_IMAGE_WATERMARK_INPUT: StaticSchema = ( + 18, + n0, + _AIWI, + {_sSI: _cAIWR, _sm: None}, + (_IIm, _WN, _DR), + ((IMAGE_ID, 1), (IMAGE_WATERMARK_NAME_REQUEST, 1), (BOOLEAN, 0)), +) + +ATTACH_IMAGE_WATERMARK_OUTPUT: StaticSchema = ( + 18, + n0, + _AIWO, + {_sSI: _cAIWRo, _smit: None}, + (_WK,), + ((STRING, {_aQN: _WK, _sN: _wK}),), +) + +ATTACH_IMAGE_WATERMARK: StaticOperationSchema = ( + 23, + n0, + _AIW, + 0, + ATTACH_IMAGE_WATERMARK_INPUT, + ATTACH_IMAGE_WATERMARK_OUTPUT, + (), +) + +INTERNET_GATEWAY_ID: StaticSchema = (3, n0, _IGI, 0) + +ATTACH_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _AIGI, + {_sSI: _cAIGR, _sm: None}, + (_DR, _IGI, _VI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INTERNET_GATEWAY_ID, {_aQN: _IGI, _sN: _iGI, _smi: None}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + ), +) + +ATTACH_INTERNET_GATEWAY_OUTPUT: StaticSchema = (18, n0, _AIGO, {_sSI: _sU, _smit: None}) + +ATTACH_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _AIG, + 0, + ATTACH_INTERNET_GATEWAY_INPUT, + ATTACH_INTERNET_GATEWAY_OUTPUT, + (), +) + +ENA_SRD_UDP_SPECIFICATION: StaticSchema = (18, n0, _ESUS, 0, (_ESUE,), ((BOOLEAN, 0),)) + +ENA_SRD_SPECIFICATION: StaticSchema = ( + 18, + n0, + _ESS, + 0, + (_ESE, _ESUS), + ((BOOLEAN, 0), (ENA_SRD_UDP_SPECIFICATION, 0)), +) + +ATTACH_NETWORK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _ANII, + {_sSI: _cANIR, _sm: None}, + (_NCI, _ESS, _EQC, _DR, _NII, _II, _DI), + ( + (INTEGER, 0), + (ENA_SRD_SPECIFICATION, 0), + (INTEGER, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (INTEGER, {_aQN: _DI, _sN: _dI, _smi: None}), + ), +) + +ATTACH_NETWORK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _ANIO, + {_sSI: _cANIRo, _smit: None}, + (_AIt, _NCI), + ((STRING, {_aQN: _AIt, _sN: _aIt}), (INTEGER, {_aQN: _NCI, _sN: _nCI})), +) + +ATTACH_NETWORK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _ANI, + 0, + ATTACH_NETWORK_INTERFACE_INPUT, + ATTACH_NETWORK_INTERFACE_OUTPUT, + (), +) + +VERIFIED_ACCESS_INSTANCE_ID: StaticSchema = (3, n0, _VAII, 0) + +VERIFIED_ACCESS_TRUST_PROVIDER_ID: StaticSchema = (3, n0, _VATPI, 0) + +ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _AVATPI, + {_sSI: _cAVATPR, _sm: None}, + (_VAII, _VATPI, _CTl, _DR), + ( + (VERIFIED_ACCESS_INSTANCE_ID, 1), + (VERIFIED_ACCESS_TRUST_PROVIDER_ID, 1), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_INSTANCE_CUSTOM_SUB_DOMAIN: StaticSchema = ( + 18, + n0, + _VAICSD, + 0, + (_SD, _Na), + ((STRING, {_aQN: _SD, _sN: _sD}), (VALUE_STRING_LIST, {_aQN: _NS, _sN: _nS})), +) + +DEVICE_TRUST_PROVIDER_TYPE: StaticSchema = ( + 14, + n0, + _DTPT, + 0, + (_j, _cro, _ju), + ((-1, {_sV: _j}), (-1, {_sV: _cro}), (-1, {_sV: _ju})), +) + +TRUST_PROVIDER_TYPE: StaticSchema = ( + 14, + n0, + _TPT, + 0, + (_use, _dev), + ((-1, {_sV: _use}), (-1, {_sV: _dev})), +) + +USER_TRUST_PROVIDER_TYPE: StaticSchema = ( + 14, + n0, + _UTPT, + 0, + (_iic, _oi), + ((-1, {_sV: _iic_}), (-1, {_sV: _oi})), +) + +VERIFIED_ACCESS_TRUST_PROVIDER_CONDENSED: StaticSchema = ( + 18, + n0, + _VATPC, + 0, + (_VATPI, _Des, _TPT, _UTPT, _DTPT), + ( + (STRING, {_aQN: _VATPI, _sN: _vATPI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TRUST_PROVIDER_TYPE, {_aQN: _TPT, _sN: _tPT}), + (USER_TRUST_PROVIDER_TYPE, {_aQN: _UTPT, _sN: _uTPT}), + (DEVICE_TRUST_PROVIDER_TYPE, {_aQN: _DTPT, _sN: _dTPT}), + ), +) + +VERIFIED_ACCESS_TRUST_PROVIDER_CONDENSED_LIST: StaticSchema = ( + 16, + n0, + _VATPCL, + 0, + (_me,), + ((VERIFIED_ACCESS_TRUST_PROVIDER_CONDENSED, {_sN: _i}),), +) + +VERIFIED_ACCESS_INSTANCE: StaticSchema = ( + 18, + n0, + _VAI, + 0, + (_VAII, _Des, _VATP, _CT, _LUTa, _Tag, _FE, _CECSD), + ( + (STRING, {_aQN: _VAII, _sN: _vAII}), + (STRING, {_aQN: _Des, _sN: _desc}), + (VERIFIED_ACCESS_TRUST_PROVIDER_CONDENSED_LIST, {_aQN: _VATPS, _sN: _vATPS}), + (STRING, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _LUTa, _sN: _lUTa}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (BOOLEAN, {_aQN: _FE, _sN: _fE}), + (VERIFIED_ACCESS_INSTANCE_CUSTOM_SUB_DOMAIN, {_aQN: _CECSD, _sN: _cECSD}), + ), +) + +DEVICE_OPTIONS: StaticSchema = ( + 18, + n0, + _DO, + 0, + (_TI, _PSKU), + ((STRING, {_aQN: _TI, _sN: _tI}), (STRING, {_aQN: _PSKU, _sN: _pSKU})), +) + +NATIVE_APPLICATION_OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _NAOO, + 0, + (_PSKE, _Is, _AE, _TE, _UIEs, _CIl, _Sc), + ( + (STRING, {_aQN: _PSKE, _sN: _pSKE}), + (STRING, {_aQN: _Is, _sN: _iss}), + (STRING, {_aQN: _AE, _sN: _aE}), + (STRING, {_aQN: _TE, _sN: _tE}), + (STRING, {_aQN: _UIEs, _sN: _uIE}), + (STRING, {_aQN: _CIl, _sN: _cIl}), + (STRING, {_aQN: _Sc, _sN: _sc}), + ), +) + +CLIENT_SECRET_TYPE: StaticSchema = (3, n0, _CST, 4) + +OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _OO, + 0, + (_Is, _AE, _TE, _UIEs, _CIl, _CSl, _Sc), + ( + (STRING, {_aQN: _Is, _sN: _iss}), + (STRING, {_aQN: _AE, _sN: _aE}), + (STRING, {_aQN: _TE, _sN: _tE}), + (STRING, {_aQN: _UIEs, _sN: _uIE}), + (STRING, {_aQN: _CIl, _sN: _cIl}), + (CLIENT_SECRET_TYPE, {_aQN: _CSl, _sN: _cSl}), + (STRING, {_aQN: _Sc, _sN: _sc}), + ), +) + +KMS_KEY_ARN: StaticSchema = (3, n0, _KKA, 0) + +VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _VASSR, + 0, + (_CMKE, _KKA), + ((BOOLEAN, {_aQN: _CMKE, _sN: _cMKE}), (KMS_KEY_ARN, {_aQN: _KKA, _sN: _kKA})), +) + +VERIFIED_ACCESS_TRUST_PROVIDER: StaticSchema = ( + 18, + n0, + _VATPe, + 0, + (_VATPI, _Des, _TPT, _UTPT, _DTPT, _OO, _DO, _PRN, _CT, _LUTa, _Tag, _SSs, _NAOO), + ( + (STRING, {_aQN: _VATPI, _sN: _vATPI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TRUST_PROVIDER_TYPE, {_aQN: _TPT, _sN: _tPT}), + (USER_TRUST_PROVIDER_TYPE, {_aQN: _UTPT, _sN: _uTPT}), + (DEVICE_TRUST_PROVIDER_TYPE, {_aQN: _DTPT, _sN: _dTPT}), + (OIDC_OPTIONS, {_aQN: _OO, _sN: _oO}), + (DEVICE_OPTIONS, {_aQN: _DO, _sN: _dO}), + (STRING, {_aQN: _PRN, _sN: _pRN}), + (STRING, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _LUTa, _sN: _lUTa}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE, {_aQN: _SSs, _sN: _sSs}), + (NATIVE_APPLICATION_OIDC_OPTIONS, {_aQN: _NAOO, _sN: _nAOO}), + ), +) + +ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _AVATPO, + {_sSI: _cAVATPRo, _smit: None}, + (_VATPe, _VAI), + ( + (VERIFIED_ACCESS_TRUST_PROVIDER, {_aQN: _VATPe, _sN: _vATP}), + (VERIFIED_ACCESS_INSTANCE, {_aQN: _VAI, _sN: _vAI}), + ), +) + +ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _AVATP, + 0, + ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT, + ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT, + (), +) + +BOXED_INTEGER: StaticSchema = (7, n0, _BI, 0) + +VOLUME_ID: StaticSchema = (3, n0, _VIo, 0) + +ATTACH_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _AVIt, + {_sSI: _cAVR, _sm: None}, + (_Dev, _II, _VIo, _ECI, _DR), + ( + (STRING, 1), + (INSTANCE_ID, 1), + (VOLUME_ID, 1), + (BOXED_INTEGER, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +VOLUME_ATTACHMENT_STATE: StaticSchema = ( + 14, + n0, + _VAS, + 0, + (_at, _att, _det, _deta, _bu), + ( + (-1, {_sV: _at}), + (-1, {_sV: _att}), + (-1, {_sV: _det}), + (-1, {_sV: _deta}), + (-1, {_sV: _bu}), + ), +) + +ATTACH_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _AVO, + {_sSI: _cVA, _smit: None}, + (_DOT, _ARs, _IOS, _ECI, _VIo, _II, _Dev, _St, _ATtt), + ( + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (STRING, {_aQN: _ARs, _sN: _aRs}), + (STRING, {_aQN: _IOS, _sN: _iOS}), + (INTEGER, {_aQN: _ECI, _sN: _eCI}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _Dev, _sN: _dev}), + (VOLUME_ATTACHMENT_STATE, {_aQN: _Sta, _sN: _sta}), + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + ), +) + +ATTACH_VOLUME: StaticOperationSchema = ( + 23, + n0, + _AVtt, + 0, + ATTACH_VOLUME_INPUT, + ATTACH_VOLUME_OUTPUT, + (), +) + +VPN_GATEWAY_ID: StaticSchema = (3, n0, _VGI, 0) + +ATTACH_VPN_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _AVGI, + {_sSI: _cAVGR, _sm: None}, + (_VI, _VGI, _DR), + ((VPC_ID, 1), (VPN_GATEWAY_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +ATTACHMENT_STATUS: StaticSchema = ( + 14, + n0, + _ASt, + 0, + (_at, _att, _det, _deta), + ((-1, {_sV: _at}), (-1, {_sV: _att}), (-1, {_sV: _det}), (-1, {_sV: _deta})), +) + +VPC_ATTACHMENT: StaticSchema = ( + 18, + n0, + _VA, + 0, + (_VI, _St), + ((STRING, {_aQN: _VI, _sN: _vI}), (ATTACHMENT_STATUS, {_aQN: _St, _sN: _st})), +) + +ATTACH_VPN_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _AVGO, + {_sSI: _cAVGRo, _smit: None}, + (_VA,), + ((VPC_ATTACHMENT, {_aQN: _At, _sN: _atta}),), +) + +ATTACH_VPN_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _AVG, + 0, + ATTACH_VPN_GATEWAY_INPUT, + ATTACH_VPN_GATEWAY_OUTPUT, + (), +) + +AUTHORIZE_CLIENT_VPN_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _ACVII, + {_sSI: _cACVIR, _sm: None}, + (_CVEI, _TNC, _AGI, _AAG, _Des, _CTl, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (STRING, 1), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +CLIENT_VPN_AUTHORIZATION_RULE_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CVARSC, + 0, + (_au, _act, _fa, _rev), + ((-1, {_sV: _au}), (-1, {_sV: _act}), (-1, {_sV: _fa}), (-1, {_sV: _rev})), +) + +CLIENT_VPN_AUTHORIZATION_RULE_STATUS: StaticSchema = ( + 18, + n0, + _CVARS, + 0, + (_C, _Me), + ( + (CLIENT_VPN_AUTHORIZATION_RULE_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +AUTHORIZE_CLIENT_VPN_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ACVIO, + {_sSI: _cACVIRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_AUTHORIZATION_RULE_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +AUTHORIZE_CLIENT_VPN_INGRESS: StaticOperationSchema = ( + 23, + n0, + _ACVI, + 0, + AUTHORIZE_CLIENT_VPN_INGRESS_INPUT, + AUTHORIZE_CLIENT_VPN_INGRESS_OUTPUT, + (), +) + +IP_RANGE: StaticSchema = ( + 18, + n0, + _IRp, + 0, + (_Des, _CIi), + ((STRING, {_aQN: _Des, _sN: _desc}), (STRING, {_aQN: _CIi, _sN: _cIi})), +) + +IP_RANGE_LIST: StaticSchema = (16, n0, _IRL, 0, (_me,), ((IP_RANGE, {_sN: _i}),)) + +IPV6_RANGE: StaticSchema = ( + 18, + n0, + _IRpv, + 0, + (_Des, _CIid), + ((STRING, {_aQN: _Des, _sN: _desc}), (STRING, {_aQN: _CIid, _sN: _cIid})), +) + +IPV6_RANGE_LIST: StaticSchema = (16, n0, _IRLp, 0, (_me,), ((IPV6_RANGE, {_sN: _i}),)) + +PREFIX_LIST_ID: StaticSchema = ( + 18, + n0, + _PLI, + 0, + (_Des, _PLI), + ((STRING, {_aQN: _Des, _sN: _desc}), (STRING, {_aQN: _PLI, _sN: _pLI})), +) + +PREFIX_LIST_ID_LIST: StaticSchema = ( + 16, + n0, + _PLIL, + 0, + (_me,), + ((PREFIX_LIST_ID, {_sN: _i}),), +) + +USER_ID_GROUP_PAIR: StaticSchema = ( + 18, + n0, + _UIGP, + 0, + (_Des, _UIs, _GN, _GIr, _VI, _VPCI, _PSe), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _UIs, _sN: _uI}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STRING, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + (STRING, {_aQN: _PSe, _sN: _pSe}), + ), +) + +USER_ID_GROUP_PAIR_LIST: StaticSchema = ( + 16, + n0, + _UIGPL, + 0, + (_me,), + ((USER_ID_GROUP_PAIR, {_sN: _i}),), +) + +IP_PERMISSION: StaticSchema = ( + 18, + n0, + _IPpe, + 0, + (_IPpr, _FP, _TP, _UIGPs, _IRpa, _IRpva, _PLIr), + ( + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (INTEGER, {_aQN: _FP, _sN: _fP}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (USER_ID_GROUP_PAIR_LIST, {_aQN: _G, _sN: _gr}), + (IP_RANGE_LIST, {_aQN: _IRpa, _sN: _iRpa}), + (IPV6_RANGE_LIST, {_aQN: _IRpva, _sN: _iRpv}), + (PREFIX_LIST_ID_LIST, {_aQN: _PLIr, _sN: _pLIr}), + ), +) + +IP_PERMISSION_LIST: StaticSchema = ( + 16, + n0, + _IPLpe, + 0, + (_me,), + ((IP_PERMISSION, {_sN: _i}),), +) + +AUTHORIZE_SECURITY_GROUP_EGRESS_INPUT: StaticSchema = ( + 18, + n0, + _ASGEI, + {_sSI: _cASGER, _sm: None}, + (_TSa, _DR, _GIr, _SSGN, _SSGOI, _IPpr, _FP, _TP, _CIi, _IPper), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr, _smi: None}), + (STRING, {_aQN: _SSGN, _sN: _sSGN}), + (STRING, {_aQN: _SSGOI, _sN: _sSGOI}), + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (INTEGER, {_aQN: _FP, _sN: _fP}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (STRING, {_aQN: _CIi, _sN: _cIi}), + (IP_PERMISSION_LIST, {_aQN: _IPper, _sN: _iPpe}), + ), +) + +PREFIX_LIST_RESOURCE_ID: StaticSchema = (3, n0, _PLRI, 0) + +REFERENCED_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _RSG, + 0, + (_GIr, _PSe, _UIs, _VI, _VPCI), + ( + (STRING, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _PSe, _sN: _pSe}), + (STRING, {_aQN: _UIs, _sN: _uI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + ), +) + +SECURITY_GROUP_RULE_ID: StaticSchema = (3, n0, _SGRI, 0) + +SECURITY_GROUP_RULE: StaticSchema = ( + 18, + n0, + _SGR, + 0, + ( + _SGRI, + _GIr, + _GOI, + _IE, + _IPpr, + _FP, + _TP, + _CIidr, + _CIid, + _PLI, + _RGIe, + _Des, + _Tag, + _SGRA, + ), + ( + (SECURITY_GROUP_RULE_ID, {_aQN: _SGRI, _sN: _sGRI}), + (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _GOI, _sN: _gOI}), + (BOOLEAN, {_aQN: _IE, _sN: _iE}), + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (INTEGER, {_aQN: _FP, _sN: _fP}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (STRING, {_aQN: _CIidr, _sN: _cIidr}), + (STRING, {_aQN: _CIid, _sN: _cIid}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (REFERENCED_SECURITY_GROUP, {_aQN: _RGIe, _sN: _rGI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _SGRA, _sN: _sGRA}), + ), +) + +SECURITY_GROUP_RULE_LIST: StaticSchema = ( + 16, + n0, + _SGRL, + 0, + (_me,), + ((SECURITY_GROUP_RULE, {_sN: _i}),), +) + +AUTHORIZE_SECURITY_GROUP_EGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ASGEO, + {_sSI: _cASGERo, _smit: None}, + (_R, _SGRe), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (SECURITY_GROUP_RULE_LIST, {_aQN: _SGRSe, _sN: _sGRSe}), + ), +) + +AUTHORIZE_SECURITY_GROUP_EGRESS: StaticOperationSchema = ( + 23, + n0, + _ASGE, + 0, + AUTHORIZE_SECURITY_GROUP_EGRESS_INPUT, + AUTHORIZE_SECURITY_GROUP_EGRESS_OUTPUT, + (), +) + +SECURITY_GROUP_NAME: StaticSchema = (3, n0, _SGN, 0) + +AUTHORIZE_SECURITY_GROUP_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _ASGII, + {_sSI: _cASGIR, _sm: None}, + (_CIi, _FP, _GIr, _GN, _IPper, _IPpr, _SSGN, _SSGOI, _TP, _TSa, _DR), + ( + (STRING, 0), + (INTEGER, 0), + (SECURITY_GROUP_ID, 0), + (SECURITY_GROUP_NAME, 0), + (IP_PERMISSION_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +AUTHORIZE_SECURITY_GROUP_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ASGIO, + {_sSI: _cASGIRo, _smit: None}, + (_R, _SGRe), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (SECURITY_GROUP_RULE_LIST, {_aQN: _SGRSe, _sN: _sGRSe}), + ), +) + +AUTHORIZE_SECURITY_GROUP_INGRESS: StaticOperationSchema = ( + 23, + n0, + _ASGI, + 0, + AUTHORIZE_SECURITY_GROUP_INGRESS_INPUT, + AUTHORIZE_SECURITY_GROUP_INGRESS_OUTPUT, + (), +) + +BOXED_BOOLEAN: StaticSchema = (2, n0, _BB, 0) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_ID: StaticSchema = (3, n0, _IIRAI, 0) + +BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT: StaticSchema = ( + 18, + n0, + _BMIRPRI, + {_sSI: _cBMIRPRR, _sm: None}, + (_DR, _IIRAI, _DJ, _Fo, _CTl), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 1), + (BOXED_BOOLEAN, 0), + (STRING, 2), + ), +) + +IPAM_ROUTING_POLICY_REGISTRATION_DELTA_STATE: StaticSchema = ( + 14, + n0, + _IRPRDS, + 0, + (_p, _pub, _fa), + ((-1, {_sV: _p}), (-1, {_sV: _pub}), (-1, {_sV: _fa})), +) + +IPAM_ROUTING_POLICY_REGISTRATION_DELTA: StaticSchema = ( + 18, + n0, + _IRPRD, + 0, + (_DIe, _DJ, _St, _SMta), + ( + (STRING, {_aQN: _DIe, _sN: _dIe}), + (STRING, {_aQN: _DJ, _sN: _dJ}), + (IPAM_ROUTING_POLICY_REGISTRATION_DELTA_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + ), +) + +BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _BMIRPRO, + {_sSI: _cBMIRPRRo, _smit: None}, + (_IRPRD,), + ((IPAM_ROUTING_POLICY_REGISTRATION_DELTA, {_aQN: _IRPRD, _sN: _iRPRD}),), +) + +BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS: StaticOperationSchema = ( + 23, + n0, + _BMIRPR, + 0, + BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT, + BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT, + (), +) + +SECURE_BLOB: StaticSchema = (1, n0, _SB, 4) + +S3_STORAGE_UPLOAD_POLICY_SIGNATURE: StaticSchema = (3, n0, _SSUPS, 4) + +S3_STORAGE: StaticSchema = ( + 18, + n0, + _SSt, + 0, + (_AWSAKI, _Bu, _Pre, _UP, _UPS), + ( + (STRING, 0), + (STRING, {_aQN: _Bu, _sN: _buc}), + (STRING, {_aQN: _Pre, _sN: _pre}), + (SECURE_BLOB, {_aQN: _UP, _sN: _uP}), + (S3_STORAGE_UPLOAD_POLICY_SIGNATURE, {_aQN: _UPS, _sN: _uPS}), + ), +) + +STORAGE: StaticSchema = (18, n0, _Sto, 0, (_S_,), ((S3_STORAGE, {_sN: _S_}),)) + +BUNDLE_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _BIIu, + {_sSI: _cBIR, _sm: None}, + (_II, _Sto, _DR), + ((INSTANCE_ID, 1), (STORAGE, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +BUNDLE_TASK_ERROR: StaticSchema = ( + 18, + n0, + _BTE, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +BUNDLE_TASK_STATE: StaticSchema = ( + 14, + n0, + _BTS, + 0, + (_p, _wfs, _bun, _sto, _ca, _comp, _fa), + ( + (-1, {_sV: _p}), + (-1, {_sV: _wfs_}), + (-1, {_sV: _bun}), + (-1, {_sV: _sto}), + (-1, {_sV: _ca}), + (-1, {_sV: _comp}), + (-1, {_sV: _fa}), + ), +) + +BUNDLE_TASK: StaticSchema = ( + 18, + n0, + _BT, + 0, + (_II, _BIu, _St, _ST, _UT, _Sto, _Prog, _BTE), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _BIu, _sN: _bI}), + (BUNDLE_TASK_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (DATE_TIME, {_aQN: _UT, _sN: _uT}), + (STORAGE, {_aQN: _Sto, _sN: _stor}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (BUNDLE_TASK_ERROR, {_aQN: _E, _sN: _er}), + ), +) + +BUNDLE_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _BIO, + {_sSI: _cBIRo, _smit: None}, + (_BT,), + ((BUNDLE_TASK, {_aQN: _BIT, _sN: _bIT}),), +) + +BUNDLE_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _BIun, + 0, + BUNDLE_INSTANCE_INPUT, + BUNDLE_INSTANCE_OUTPUT, + (), +) + +BUNDLE_ID: StaticSchema = (3, n0, _BIu, 0) + +CANCEL_BUNDLE_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CBTI, + {_sSI: _cCBTR, _sm: None}, + (_BIu, _DR), + ((BUNDLE_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +CANCEL_BUNDLE_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CBTO, + {_sSI: _cCBTRo, _smit: None}, + (_BT,), + ((BUNDLE_TASK, {_aQN: _BIT, _sN: _bIT}),), +) + +CANCEL_BUNDLE_TASK: StaticOperationSchema = ( + 23, + n0, + _CBT, + 0, + CANCEL_BUNDLE_TASK_INPUT, + CANCEL_BUNDLE_TASK_OUTPUT, + (), +) + +APPLY_CANCELLATION_CHARGES: StaticSchema = ( + 14, + n0, + _ACC, + 0, + (_CWD,), + ((-1, {_sV: _cwd}),), +) + +CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID: StaticSchema = (3, n0, _CRCQI, 0) + +CANCEL_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _CCRI, + {_sSI: _cCCRR, _sm: None}, + (_CRI, _DR, _ACC, _QI), + ( + (CAPACITY_RESERVATION_ID, 1), + (BOOLEAN, 0), + (APPLY_CANCELLATION_CHARGES, 0), + (CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID, 0), + ), +) + +CANCEL_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRO, + {_sSI: _cCCRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +CANCEL_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _CCR, + 0, + CANCEL_CAPACITY_RESERVATION_INPUT, + CANCEL_CAPACITY_RESERVATION_OUTPUT, + (), +) + +CAPACITY_RESERVATION_FLEET_ID: StaticSchema = (3, n0, _CRFI, 0) + +CAPACITY_RESERVATION_FLEET_ID_SET: StaticSchema = ( + 16, + n0, + _CRFIS, + 0, + (_me,), + ((CAPACITY_RESERVATION_FLEET_ID, {_sN: _i}),), +) + +CANCEL_CAPACITY_RESERVATION_FLEETS_INPUT: StaticSchema = ( + 18, + n0, + _CCRFI, + {_sSI: _cCCRFR, _sm: None}, + (_DR, _CRFIa), + ((BOOLEAN, 0), (CAPACITY_RESERVATION_FLEET_ID_SET, {_sN: _CRFI, _smi: None})), +) + +CANCEL_CAPACITY_RESERVATION_FLEET_ERROR_CODE: StaticSchema = (3, n0, _CCRFEC, 0) + +CANCEL_CAPACITY_RESERVATION_FLEET_ERROR_MESSAGE: StaticSchema = (3, n0, _CCRFEM, 0) + +CANCEL_CAPACITY_RESERVATION_FLEET_ERROR: StaticSchema = ( + 18, + n0, + _CCRFE, + 0, + (_C, _Me), + ( + (CANCEL_CAPACITY_RESERVATION_FLEET_ERROR_CODE, {_aQN: _C, _sN: _co}), + (CANCEL_CAPACITY_RESERVATION_FLEET_ERROR_MESSAGE, {_aQN: _Me, _sN: _mes}), + ), +) + +FAILED_CAPACITY_RESERVATION_FLEET_CANCELLATION_RESULT: StaticSchema = ( + 18, + n0, + _FCRFCR, + 0, + (_CRFI, _CCRFE), + ( + (CAPACITY_RESERVATION_FLEET_ID, {_aQN: _CRFI, _sN: _cRFI}), + (CANCEL_CAPACITY_RESERVATION_FLEET_ERROR, {_aQN: _CCRFE, _sN: _cCRFE}), + ), +) + +FAILED_CAPACITY_RESERVATION_FLEET_CANCELLATION_RESULT_SET: StaticSchema = ( + 16, + n0, + _FCRFCRS, + 0, + (_me,), + ((FAILED_CAPACITY_RESERVATION_FLEET_CANCELLATION_RESULT, {_sN: _i}),), +) + +CAPACITY_RESERVATION_FLEET_STATE: StaticSchema = ( + 14, + n0, + _CRFS, + 0, + ( + _SUBMITTED, + _MODIFYING, + _ACTIVE, + _PF__, + _EXPIRING, + _EXPIRED, + _CANCELLING, + _CANCELLED, + _FAILED, + ), + ( + (-1, {_sV: _subm}), + (-1, {_sV: _mo}), + (-1, {_sV: _act}), + (-1, {_sV: _pf___}), + (-1, {_sV: _exp}), + (-1, {_sV: _ex}), + (-1, {_sV: _ca}), + (-1, {_sV: _can}), + (-1, {_sV: _fa}), + ), +) + +CAPACITY_RESERVATION_FLEET_CANCELLATION_STATE: StaticSchema = ( + 18, + n0, + _CRFCS, + 0, + (_CFS, _PFS, _CRFI), + ( + (CAPACITY_RESERVATION_FLEET_STATE, {_aQN: _CFS, _sN: _cFS}), + (CAPACITY_RESERVATION_FLEET_STATE, {_aQN: _PFS, _sN: _pFS}), + (CAPACITY_RESERVATION_FLEET_ID, {_aQN: _CRFI, _sN: _cRFI}), + ), +) + +CAPACITY_RESERVATION_FLEET_CANCELLATION_STATE_SET: StaticSchema = ( + 16, + n0, + _CRFCSS, + 0, + (_me,), + ((CAPACITY_RESERVATION_FLEET_CANCELLATION_STATE, {_sN: _i}),), +) + +CANCEL_CAPACITY_RESERVATION_FLEETS_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRFO, + {_sSI: _cCCRFRo, _smit: None}, + (_SFC, _FFC), + ( + (CAPACITY_RESERVATION_FLEET_CANCELLATION_STATE_SET, {_aQN: _SFCS, _sN: _sFCS}), + ( + FAILED_CAPACITY_RESERVATION_FLEET_CANCELLATION_RESULT_SET, + {_aQN: _FFCS, _sN: _fFCS}, + ), + ), +) + +CANCEL_CAPACITY_RESERVATION_FLEETS: StaticOperationSchema = ( + 23, + n0, + _CCRF, + 0, + CANCEL_CAPACITY_RESERVATION_FLEETS_INPUT, + CANCEL_CAPACITY_RESERVATION_FLEETS_OUTPUT, + (), +) + +CONVERSION_TASK_ID: StaticSchema = (3, n0, _CTI, 0) + +CANCEL_CONVERSION_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CCTI, + {_sSI: _cCCR, _sm: None}, + (_DR, _CTI, _RM), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (CONVERSION_TASK_ID, {_aQN: _CTI, _sN: _cTI, _smi: None}), + (STRING, {_aQN: _RM, _sN: _rM}), + ), +) + +CANCEL_CONVERSION_TASK_OUTPUT: StaticSchema = (18, n0, _CCTO, {_sSI: _sU, _smit: None}) + +CANCEL_CONVERSION_TASK: StaticOperationSchema = ( + 23, + n0, + _CCT, + 0, + CANCEL_CONVERSION_TASK_INPUT, + CANCEL_CONVERSION_TASK_OUTPUT, + (), +) + +DECLARATIVE_POLICIES_REPORT_ID: StaticSchema = (3, n0, _DPRI, 0) + +CANCEL_DECLARATIVE_POLICIES_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _CDPRI, + {_sSI: _cCDPRR, _sm: None}, + (_DR, _RIep), + ((BOOLEAN, 0), (DECLARATIVE_POLICIES_REPORT_ID, 1)), +) + +CANCEL_DECLARATIVE_POLICIES_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDPRO, + {_sSI: _cCDPRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +CANCEL_DECLARATIVE_POLICIES_REPORT: StaticOperationSchema = ( + 23, + n0, + _CDPR, + 0, + CANCEL_DECLARATIVE_POLICIES_REPORT_INPUT, + CANCEL_DECLARATIVE_POLICIES_REPORT_OUTPUT, + (), +) + +EXPORT_VM_TASK_ID: StaticSchema = (3, n0, _EVTI, 0) + +CANCEL_EXPORT_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CETI, + {_sSI: _cCETR, _sm: None}, + (_ETI,), + ((EXPORT_VM_TASK_ID, {_aQN: _ETI, _sN: _eTI, _smi: None}),), +) + +CANCEL_EXPORT_TASK_OUTPUT: StaticSchema = (18, n0, _CETO, {_sSI: _sU, _smit: None}) + +CANCEL_EXPORT_TASK: StaticOperationSchema = ( + 23, + n0, + _CET, + 0, + CANCEL_EXPORT_TASK_INPUT, + CANCEL_EXPORT_TASK_OUTPUT, + (), +) + +CANCEL_IMAGE_LAUNCH_PERMISSION_INPUT: StaticSchema = ( + 18, + n0, + _CILPI, + {_sSI: _cCILPR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +CANCEL_IMAGE_LAUNCH_PERMISSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CILPO, + {_sSI: _cCILPRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +CANCEL_IMAGE_LAUNCH_PERMISSION: StaticOperationSchema = ( + 23, + n0, + _CILP, + 0, + CANCEL_IMAGE_LAUNCH_PERMISSION_INPUT, + CANCEL_IMAGE_LAUNCH_PERMISSION_OUTPUT, + (), +) + +IMPORT_TASK_ID: StaticSchema = (3, n0, _ITI, 0) + +CANCEL_IMPORT_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CITI, + {_sSI: _cCITR, _sm: None}, + (_CRa, _DR, _ITI), + ((STRING, 0), (BOOLEAN, 0), (IMPORT_TASK_ID, 0)), +) + +CANCEL_IMPORT_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CITO, + {_sSI: _cCITRo, _smit: None}, + (_ITI, _PSre, _St), + ( + (STRING, {_aQN: _ITI, _sN: _iTI}), + (STRING, {_aQN: _PSre, _sN: _pSre}), + (STRING, {_aQN: _St, _sN: _st}), + ), +) + +CANCEL_IMPORT_TASK: StaticOperationSchema = ( + 23, + n0, + _CIT, + 0, + CANCEL_IMPORT_TASK_INPUT, + CANCEL_IMPORT_TASK_OUTPUT, + (), +) + +RESERVED_INSTANCES_LISTING_ID: StaticSchema = (3, n0, _RILI, 0) + +CANCEL_RESERVED_INSTANCES_LISTING_INPUT: StaticSchema = ( + 18, + n0, + _CRILI, + {_sSI: _cCRILR, _sm: None}, + (_RILI,), + ((RESERVED_INSTANCES_LISTING_ID, {_aQN: _RILI, _sN: _rILI, _smi: None}),), +) + +LISTING_STATE: StaticSchema = ( + 14, + n0, + _LSi, + 0, + (_av, _sol, _can, _p), + ((-1, {_sV: _av}), (-1, {_sV: _sol}), (-1, {_sV: _can}), (-1, {_sV: _p})), +) + +INSTANCE_COUNT: StaticSchema = ( + 18, + n0, + _IC, + 0, + (_IC, _St), + ((INTEGER, {_aQN: _IC, _sN: _iC}), (LISTING_STATE, {_aQN: _St, _sN: _st})), +) + +INSTANCE_COUNT_LIST: StaticSchema = ( + 16, + n0, + _ICL, + 0, + (_me,), + ((INSTANCE_COUNT, {_sN: _i}),), +) + +CURRENCY_CODE_VALUES: StaticSchema = (14, n0, _CCV, 0, (_USD,), ((-1, {_sV: _USD}),)) + +DOUBLE: StaticSchema = (10, n0, _Dou, 0) + +LONG: StaticSchema = (8, n0, _Lo, 0) + +PRICE_SCHEDULE: StaticSchema = ( + 18, + n0, + _PSri, + 0, + (_Act, _CC, _Pric, _Te), + ( + (BOOLEAN, {_aQN: _Act, _sN: _act}), + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (DOUBLE, {_aQN: _Pric, _sN: _pric}), + (LONG, {_aQN: _Te, _sN: _te}), + ), +) + +PRICE_SCHEDULE_LIST: StaticSchema = ( + 16, + n0, + _PSL, + 0, + (_me,), + ((PRICE_SCHEDULE, {_sN: _i}),), +) + +LISTING_STATUS: StaticSchema = ( + 14, + n0, + _LSis, + 0, + (_act, _p, _can, _cl), + ((-1, {_sV: _act}), (-1, {_sV: _p}), (-1, {_sV: _can}), (-1, {_sV: _cl})), +) + +RESERVED_INSTANCES_LISTING: StaticSchema = ( + 18, + n0, + _RIL, + 0, + (_CTl, _CD, _ICn, _PSric, _RIIes, _RILI, _Sta, _SMt, _Tag, _UD), + ( + (STRING, {_aQN: _CTl, _sN: _cTl}), + (DATE_TIME, {_aQN: _CD, _sN: _cD}), + (INSTANCE_COUNT_LIST, {_aQN: _ICn, _sN: _iCn}), + (PRICE_SCHEDULE_LIST, {_aQN: _PSric, _sN: _pSri}), + (STRING, {_aQN: _RIIes, _sN: _rII}), + (STRING, {_aQN: _RILI, _sN: _rILI}), + (LISTING_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (DATE_TIME, {_aQN: _UD, _sN: _uD}), + ), +) + +RESERVED_INSTANCES_LISTING_LIST: StaticSchema = ( + 16, + n0, + _RILL, + 0, + (_me,), + ((RESERVED_INSTANCES_LISTING, {_sN: _i}),), +) + +CANCEL_RESERVED_INSTANCES_LISTING_OUTPUT: StaticSchema = ( + 18, + n0, + _CRILO, + {_sSI: _cCRILRo, _smit: None}, + (_RILe,), + ((RESERVED_INSTANCES_LISTING_LIST, {_aQN: _RILS, _sN: _rILS}),), +) + +CANCEL_RESERVED_INSTANCES_LISTING: StaticOperationSchema = ( + 23, + n0, + _CRIL, + 0, + CANCEL_RESERVED_INSTANCES_LISTING_INPUT, + CANCEL_RESERVED_INSTANCES_LISTING_OUTPUT, + (), +) + +SPOT_FLEET_REQUEST_ID: StaticSchema = (3, n0, _SFRI, 0) + +SPOT_FLEET_REQUEST_ID_LIST: StaticSchema = ( + 16, + n0, + _SFRIL, + 0, + (_me,), + ((SPOT_FLEET_REQUEST_ID, {_sN: _i}),), +) + +CANCEL_SPOT_FLEET_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _CSFRI, + {_sSI: _cCSFRR, _sm: None}, + (_DR, _SFRIp, _TIe), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_FLEET_REQUEST_ID_LIST, {_aQN: _SFRI, _sN: _sFRI, _smi: None}), + (BOOLEAN, {_aQN: _TIe, _sN: _tIe, _smi: None}), + ), +) + +BATCH_STATE: StaticSchema = ( + 14, + n0, + _BS, + 0, + (_SUBMITTED, _ACTIVE, _CANCELLED, _FAILED, _CR_, _CTI_, _MODIFYING), + ( + (-1, {_sV: _subm}), + (-1, {_sV: _act}), + (-1, {_sV: _can}), + (-1, {_sV: _fa}), + (-1, {_sV: _cr__}), + (-1, {_sV: _ct}), + (-1, {_sV: _mo}), + ), +) + +CANCEL_SPOT_FLEET_REQUESTS_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _CSFRSI, + 0, + (_CSFRS, _PSFRS, _SFRI), + ( + (BATCH_STATE, {_aQN: _CSFRS, _sN: _cSFRS}), + (BATCH_STATE, {_aQN: _PSFRS, _sN: _pSFRS}), + (STRING, {_aQN: _SFRI, _sN: _sFRI}), + ), +) + +CANCEL_SPOT_FLEET_REQUESTS_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _CSFRSS, + 0, + (_me,), + ((CANCEL_SPOT_FLEET_REQUESTS_SUCCESS_ITEM, {_sN: _i}),), +) + +CANCEL_BATCH_ERROR_CODE: StaticSchema = ( + 14, + n0, + _CBEC, + 0, + (_FRIDNE, _FRIM, _FRNICS, _UE), + ((-1, {_sV: _fRIDNE}), (-1, {_sV: _fRIM}), (-1, {_sV: _fRNICS}), (-1, {_sV: _uE})), +) + +CANCEL_SPOT_FLEET_REQUESTS_ERROR: StaticSchema = ( + 18, + n0, + _CSFRE, + 0, + (_C, _Me), + ((CANCEL_BATCH_ERROR_CODE, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +CANCEL_SPOT_FLEET_REQUESTS_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _CSFREI, + 0, + (_E, _SFRI), + ( + (CANCEL_SPOT_FLEET_REQUESTS_ERROR, {_aQN: _E, _sN: _er}), + (STRING, {_aQN: _SFRI, _sN: _sFRI}), + ), +) + +CANCEL_SPOT_FLEET_REQUESTS_ERROR_SET: StaticSchema = ( + 16, + n0, + _CSFRES, + 0, + (_me,), + ((CANCEL_SPOT_FLEET_REQUESTS_ERROR_ITEM, {_sN: _i}),), +) + +CANCEL_SPOT_FLEET_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _CSFRO, + {_sSI: _cCSFRRo, _smit: None}, + (_SFR, _UFR), + ( + (CANCEL_SPOT_FLEET_REQUESTS_SUCCESS_SET, {_aQN: _SFRS, _sN: _sFRS}), + (CANCEL_SPOT_FLEET_REQUESTS_ERROR_SET, {_aQN: _UFRS, _sN: _uFRS}), + ), +) + +CANCEL_SPOT_FLEET_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _CSFR, + 0, + CANCEL_SPOT_FLEET_REQUESTS_INPUT, + CANCEL_SPOT_FLEET_REQUESTS_OUTPUT, + (), +) + +SPOT_INSTANCE_REQUEST_ID: StaticSchema = (3, n0, _SIRI, 0) + +SPOT_INSTANCE_REQUEST_ID_LIST: StaticSchema = ( + 16, + n0, + _SIRIL, + 0, + (_me,), + ((SPOT_INSTANCE_REQUEST_ID, {_sN: _SIRI}),), +) + +CANCEL_SPOT_INSTANCE_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _CSIRI, + {_sSI: _cCSIRR, _sm: None}, + (_DR, _SIRIp), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_INSTANCE_REQUEST_ID_LIST, {_sN: _SIRI, _smi: None}), + ), +) + +CANCEL_SPOT_INSTANCE_REQUEST_STATE: StaticSchema = ( + 14, + n0, + _CSIRS, + 0, + (_act, _op, _cl, _can, _compl), + ( + (-1, {_sV: _act}), + (-1, {_sV: _op}), + (-1, {_sV: _cl}), + (-1, {_sV: _can}), + (-1, {_sV: _compl}), + ), +) + +CANCELLED_SPOT_INSTANCE_REQUEST: StaticSchema = ( + 18, + n0, + _CSIR, + 0, + (_SIRI, _St), + ( + (STRING, {_aQN: _SIRI, _sN: _sIRI}), + (CANCEL_SPOT_INSTANCE_REQUEST_STATE, {_aQN: _St, _sN: _st}), + ), +) + +CANCELLED_SPOT_INSTANCE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _CSIRL, + 0, + (_me,), + ((CANCELLED_SPOT_INSTANCE_REQUEST, {_sN: _i}),), +) + +CANCEL_SPOT_INSTANCE_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _CSIRO, + {_sSI: _cCSIRRo, _smit: None}, + (_CSIRa,), + ((CANCELLED_SPOT_INSTANCE_REQUEST_LIST, {_aQN: _SIRS, _sN: _sIRS}),), +) + +CANCEL_SPOT_INSTANCE_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _CSIRan, + 0, + CANCEL_SPOT_INSTANCE_REQUESTS_INPUT, + CANCEL_SPOT_INSTANCE_REQUESTS_OUTPUT, + (), +) + +CONFIRM_PRODUCT_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _CPII, + {_sSI: _cCPIR, _sm: None}, + (_II, _PCr, _DR), + ((INSTANCE_ID, 1), (STRING, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +CONFIRM_PRODUCT_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _CPIO, + {_sSI: _cCPIRo, _smit: None}, + (_R, _OIw), + ((BOOLEAN, {_aQN: _R, _sN: _r}), (STRING, {_aQN: _OIw, _sN: _oI})), +) + +CONFIRM_PRODUCT_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _CPI, + 0, + CONFIRM_PRODUCT_INSTANCE_INPUT, + CONFIRM_PRODUCT_INSTANCE_OUTPUT, + (), +) + +COPY_FPGA_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _CFII, + {_sSI: _cCFIR, _sm: None}, + (_DR, _SFII, _Des, _N, _SRo, _CTl), + ((BOOLEAN, 0), (STRING, 1), (STRING, 0), (STRING, 0), (STRING, 1), (STRING, 0)), +) + +COPY_FPGA_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _CFIO, + {_sSI: _cCFIRo, _smit: None}, + (_FII,), + ((STRING, {_aQN: _FII, _sN: _fII}),), +) + +COPY_FPGA_IMAGE: StaticOperationSchema = ( + 23, + n0, + _CFI, + 0, + COPY_FPGA_IMAGE_INPUT, + COPY_FPGA_IMAGE_OUTPUT, + (), +) + +COPY_IMAGE_CLIENT_TOKEN: StaticSchema = (3, n0, _CICT, 0) + +IMAGE_DESCRIPTION_REQUEST: StaticSchema = (3, n0, _IDR, 0) + +KMS_KEY_ID: StaticSchema = (3, n0, _KKI, 0) + +IMAGE_NAME_REQUEST: StaticSchema = (3, n0, _INR, 0) + +COPY_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _CII, + {_sSI: _cCIR, _sm: None}, + ( + _CTl, + _Des, + _En, + _KKI, + _N, + _SII, + _SRo, + _DOA, + _CITo, + _TSa, + _SCCDM, + _DAZ, + _DAZI, + _DR, + ), + ( + (COPY_IMAGE_CLIENT_TOKEN, 2), + (IMAGE_DESCRIPTION_REQUEST, 0), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (KMS_KEY_ID, {_aQN: _KKI, _sN: _kKI}), + (IMAGE_NAME_REQUEST, 1), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (LONG, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +COPY_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _CIO, + {_sSI: _cCIRo, _smit: None}, + (_IIm,), + ((STRING, {_aQN: _IIm, _sN: _iIm}),), +) + +COPY_IMAGE: StaticOperationSchema = ( + 23, + n0, + _CIop, + 0, + COPY_IMAGE_INPUT, + COPY_IMAGE_OUTPUT, + (), +) + +SNAPSHOT_COMPLETION_DURATION_MINUTES_REQUEST: StaticSchema = (7, n0, _SCDMR, 0) + +COPY_SNAPSHOT_REQUEST_PSU: StaticSchema = (3, n0, _CSRPSU, 4) + +COPY_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CSI, + {_sSI: _cCSR, _sm: None}, + (_Des, _DOA, _DRe, _En, _KKI, _PU, _SRo, _SSI, _TSa, _CDM, _DAZ, _DR), + ( + (STRING, 0), + (STRING, 0), + (STRING, {_aQN: _DRe, _sN: _dRe}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (KMS_KEY_ID, {_aQN: _KKI, _sN: _kKI}), + (COPY_SNAPSHOT_REQUEST_PSU, {_aQN: _PU, _sN: _pU}), + (STRING, 1), + (STRING, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (SNAPSHOT_COMPLETION_DURATION_MINUTES_REQUEST, 0), + (STRING, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +COPY_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CSO, + {_sSI: _cCSRo, _smit: None}, + (_Tag, _SIn), + ((TAG_LIST, {_aQN: _TSag, _sN: _tS}), (STRING, {_aQN: _SIn, _sN: _sIn})), +) + +COPY_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CSo, + 0, + COPY_SNAPSHOT_INPUT, + COPY_SNAPSHOT_OUTPUT, + (), +) + +VOLUME_TYPE: StaticSchema = ( + 14, + n0, + _VT, + 0, + (_stan, _io, _io_, _gp, _sc_, _st_, _gp_), + ( + (-1, {_sV: _stan}), + (-1, {_sV: _io}), + (-1, {_sV: _io_}), + (-1, {_sV: _gp}), + (-1, {_sV: _sc_}), + (-1, {_sV: _st_}), + (-1, {_sV: _gp_}), + ), +) + +COPY_VOLUMES_INPUT: StaticSchema = ( + 18, + n0, + _CVI, + {_sSI: _cCVR, _sm: None}, + (_SVI, _Io, _Si, _VT, _DR, _TSa, _MAE, _Th, _CTl, _En, _KKI), + ( + (VOLUME_ID, 1), + (INTEGER, 0), + (INTEGER, 0), + (VOLUME_TYPE, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 2), + (BOOLEAN, 0), + (KMS_KEY_ID, 0), + ), +) + +VOLUME_ATTACHMENT: StaticSchema = ( + 18, + n0, + _VAo, + 0, + (_DOT, _ARs, _IOS, _ECI, _VIo, _II, _Dev, _St, _ATtt), + ( + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (STRING, {_aQN: _ARs, _sN: _aRs}), + (STRING, {_aQN: _IOS, _sN: _iOS}), + (INTEGER, {_aQN: _ECI, _sN: _eCI}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _Dev, _sN: _dev}), + (VOLUME_ATTACHMENT_STATE, {_aQN: _Sta, _sN: _sta}), + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + ), +) + +VOLUME_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _VAL, + 0, + (_me,), + ((VOLUME_ATTACHMENT, {_sN: _i}),), +) + +OPERATOR_RESPONSE: StaticSchema = ( + 18, + n0, + _OR, + 0, + (_Man, _Pri, _HBD), + ( + (BOOLEAN, {_aQN: _Man, _sN: _man}), + (STRING, {_aQN: _Pri, _sN: _prin}), + (BOOLEAN, {_aQN: _HBD, _sN: _hBD}), + ), +) + +SSE_TYPE: StaticSchema = ( + 14, + n0, + _SSET, + 0, + (_se, _sk, _no), + ((-1, {_sV: _se_}), (-1, {_sV: _sk_}), (-1, {_sV: _no})), +) + +VOLUME_STATE: StaticSchema = ( + 14, + n0, + _VS, + 0, + (_cre, _av, _iu, _de, _del, _er), + ( + (-1, {_sV: _cre}), + (-1, {_sV: _av}), + (-1, {_sV: _iu_}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _er}), + ), +) + +VOLUME: StaticSchema = ( + 18, + n0, + _Vo, + 0, + ( + _AZI, + _OA, + _SVI, + _Io, + _Tag, + _VT, + _FR, + _MAE, + _Th, + _STs, + _Op, + _VIR, + _VAol, + _OIw, + _VIo, + _Si, + _SIn, + _AZ, + _St, + _CTr, + _Att, + _En, + _KKI, + ), + ( + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _SVI, _sN: _sVI}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + (BOOLEAN, {_aQN: _FR, _sN: _fR}), + (BOOLEAN, {_aQN: _MAE, _sN: _mAE}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (INTEGER, {_aQN: _VIR, _sN: _vIR}), + (STRING, {_aQN: _VAol, _sN: _vA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (INTEGER, {_aQN: _Si, _sN: _siz}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (VOLUME_STATE, {_aQN: _Sta, _sN: _sta}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (VOLUME_ATTACHMENT_LIST, {_aQN: _AStt, _sN: _aSt}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + ), +) + +VOLUME_LIST: StaticSchema = (16, n0, _VLo, 0, (_me,), ((VOLUME, {_sN: _i}),)) + +COPY_VOLUMES_OUTPUT: StaticSchema = ( + 18, + n0, + _CVO, + {_sSI: _cCVRo, _smit: None}, + (_Vol,), + ((VOLUME_LIST, {_aQN: _VSo, _sN: _vS}),), +) + +COPY_VOLUMES: StaticOperationSchema = ( + 23, + n0, + _CV, + 0, + COPY_VOLUMES_INPUT, + COPY_VOLUMES_OUTPUT, + (), +) + +HEALTH_CHECK_PATH_DESTINATION_REQUEST_OBJECT: StaticSchema = ( + 18, + n0, + _HCPDRO, + 0, + (_SIu, _SGI), + ((SUBNET_ID, 0), (SECURITY_GROUP_ID, 0)), +) + +HEALTH_CHECK_PATH_DESTINATION_REQUEST_SET: StaticSchema = ( + 16, + n0, + _HCPDRS, + 0, + (_me,), + ((HEALTH_CHECK_PATH_DESTINATION_REQUEST_OBJECT, {_sN: _i}),), +) + +HEALTH_CHECK_PATH_SOURCE_REQUEST_OBJECT: StaticSchema = ( + 18, + n0, + _HCPSRO, + 0, + (_SIu, _SGI), + ((SUBNET_ID, 0), (SECURITY_GROUP_ID, 0)), +) + +HEALTH_CHECK_PATH_REQUEST_OBJECT: StaticSchema = ( + 18, + n0, + _HCPRO, + 0, + (_Sou, _D), + ( + (HEALTH_CHECK_PATH_SOURCE_REQUEST_OBJECT, 0), + (HEALTH_CHECK_PATH_DESTINATION_REQUEST_SET, {_sN: _De}), + ), +) + +HEALTH_CHECK_PATH_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _HCPRL, + 0, + (_me,), + ((HEALTH_CHECK_PATH_REQUEST_OBJECT, {_sN: _i}),), +) + +INITIALIZATION_GRACE_PERIOD_SECONDS: StaticSchema = (7, n0, _IGPS, 0) + +IP_SCOPE_ENUM: StaticSchema = (14, n0, _ISE, 0, (_PRIVATE,), ((-1, {_sV: _priv}),)) + +IP_VERSION_ENUM: StaticSchema = ( + 14, + n0, + _IVE, + 0, + (_IPV, _IPV_), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_})), +) + +PORT_NUMBER: StaticSchema = (7, n0, _PN, 0) + +NETWORK_PROTOCOL_ENUM: StaticSchema = ( + 14, + n0, + _NPE, + 0, + (_HTTP, _HTTPS), + ((-1, {_sV: _ht}), (-1, {_sV: _htt})), +) + +CREATE_APPLICATION_STATUS_CHECK_INPUT: StaticSchema = ( + 18, + n0, + _CASCI, + {_sSI: _cCASCR, _sm: None}, + ( + _HCP, + _Ag, + _P, + _Po, + _Pa, + _DI, + _IVp, + _ISpc, + _Int, + _Tim, + _FT, + _STu, + _SCM, + _IGPS, + _TSa, + _CTl, + _DR, + ), + ( + (HEALTH_CHECK_PATH_REQUEST_LIST, {_sN: _HCPe}), + (AGGREGATION_STATUS_ENUM, 0), + (NETWORK_PROTOCOL_ENUM, 1), + (PORT_NUMBER, 1), + (STRING, 0), + (INTEGER, 0), + (IP_VERSION_ENUM, 0), + (IP_SCOPE_ENUM, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (INITIALIZATION_GRACE_PERIOD_SECONDS, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +HEALTH_CHECK_PATH_DESTINATION_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _HCPDROe, + 0, + (_SIu, _SGI), + ((STRING, {_aQN: _SIu, _sN: _sI}), (STRING, {_aQN: _SGI, _sN: _sGI})), +) + +HEALTH_CHECK_PATH_DESTINATION_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _HCPDRL, + 0, + (_me,), + ((HEALTH_CHECK_PATH_DESTINATION_RESPONSE_OBJECT, {_sN: _i}),), +) + +HEALTH_CHECK_PATH_SOURCE_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _HCPSROe, + 0, + (_SIu, _SGI), + ((STRING, {_aQN: _SIu, _sN: _sI}), (STRING, {_aQN: _SGI, _sN: _sGI})), +) + +HEALTH_CHECK_PATH_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _HCPROe, + 0, + (_Sou, _D), + ( + (HEALTH_CHECK_PATH_SOURCE_RESPONSE_OBJECT, {_aQN: _Sou, _sN: _so}), + (HEALTH_CHECK_PATH_DESTINATION_RESPONSE_LIST, {_aQN: _DSe, _sN: _dSe}), + ), +) + +HEALTH_CHECK_PATH_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _HCPRLe, + 0, + (_me,), + ((HEALTH_CHECK_PATH_RESPONSE_OBJECT, {_sN: _i}),), +) + +CUSTOM_TAG_KEY_VALUE_RESPONSE_PAIR: StaticSchema = ( + 18, + n0, + _CTKVRPu, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +CUSTOM_KEY_VALUE_PAIR_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _CKVPRSu, + 0, + (_me,), + ((CUSTOM_TAG_KEY_VALUE_RESPONSE_PAIR, {_sN: _i}),), +) + +APPLICATION_STATUS_CHECK_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _ASCRO, + 0, + ( + _ASCI, + _Ag, + _HCP, + _P, + _Po, + _Pa, + _DI, + _IVp, + _ISpc, + _Int, + _Tim, + _FT, + _STu, + _SCM, + _IGPS, + _LUA, + _TTA, + _Tag, + _CT, + _MT, + _DTe, + ), + ( + (APPLICATION_STATUS_CHECK_ID, {_aQN: _ASCI, _sN: _aSCI}), + (AGGREGATION_STATUS_ENUM, {_aQN: _Ag, _sN: _agg}), + (HEALTH_CHECK_PATH_RESPONSE_LIST, {_aQN: _HCPS, _sN: _hCPS}), + (NETWORK_PROTOCOL_ENUM, {_aQN: _P, _sN: _pro}), + (INTEGER, {_aQN: _Po, _sN: _po}), + (STRING, {_aQN: _Pa, _sN: _pat}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (IP_VERSION_ENUM, {_aQN: _IVp, _sN: _iVp}), + (IP_SCOPE_ENUM, {_aQN: _ISpc, _sN: _iSpc}), + (INTEGER, {_aQN: _Int, _sN: _int}), + (INTEGER, {_aQN: _Tim, _sN: _tim}), + (INTEGER, {_aQN: _FT, _sN: _fT}), + (INTEGER, {_aQN: _STu, _sN: _sTu}), + (STRING, {_aQN: _SCM, _sN: _sCM}), + (INITIALIZATION_GRACE_PERIOD_SECONDS, {_aQN: _IGPS, _sN: _iGPS}), + (MILLISECOND_DATE_TIME, {_aQN: _LUA, _sN: _lUA}), + (CUSTOM_KEY_VALUE_PAIR_RESPONSE_SET, {_aQN: _TTAS, _sN: _tTAS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (MILLISECOND_DATE_TIME, {_aQN: _CT, _sN: _cT}), + (MILLISECOND_DATE_TIME, {_aQN: _MT, _sN: _mT}), + (MILLISECOND_DATE_TIME, {_aQN: _DTe, _sN: _dT}), + ), +) + +CREATE_APPLICATION_STATUS_CHECK_OUTPUT: StaticSchema = ( + 18, + n0, + _CASCO, + {_sSI: _cCASCRo, _smit: None}, + (_ASCp,), + ((APPLICATION_STATUS_CHECK_RESPONSE_OBJECT, {_aQN: _ASCp, _sN: _aSC}),), +) + +CREATE_APPLICATION_STATUS_CHECK: StaticOperationSchema = ( + 23, + n0, + _CASC, + 0, + CREATE_APPLICATION_STATUS_CHECK_INPUT, + CREATE_APPLICATION_STATUS_CHECK_OUTPUT, + (), +) + +OUTPUT_FORMAT: StaticSchema = ( + 14, + n0, + _OF, + 0, + (_CSV, _PARQUET), + ((-1, {_sV: _cs}), (-1, {_sV: _par})), +) + +SCHEDULE: StaticSchema = (14, n0, _Sch, 0, (_HOURLY,), ((-1, {_sV: _hou}),)) + +CREATE_CAPACITY_MANAGER_DATA_EXPORT_INPUT: StaticSchema = ( + 18, + n0, + _CCMDEI, + {_sSI: _cCCMDER, _sm: None}, + (_SBN, _SBP, _Sch, _OF, _CTl, _DR, _TSa), + ( + (STRING, 1), + (STRING, 0), + (SCHEDULE, 1), + (OUTPUT_FORMAT, 1), + (STRING, 2), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CAPACITY_MANAGER_DATA_EXPORT_ID: StaticSchema = (3, n0, _CMDEI, 0) + +CREATE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _CCMDEO, + {_sSI: _cCCMDERo, _smit: None}, + (_CMDEI,), + ((CAPACITY_MANAGER_DATA_EXPORT_ID, {_aQN: _CMDEI, _sN: _cMDEI}),), +) + +CREATE_CAPACITY_MANAGER_DATA_EXPORT: StaticOperationSchema = ( + 23, + n0, + _CCMDE, + 0, + CREATE_CAPACITY_MANAGER_DATA_EXPORT_INPUT, + CREATE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT, + (), +) + +CAPACITY_RESERVATION_COMMITMENT_DURATION: StaticSchema = (8, n0, _CRCD, 0) + +CAPACITY_RESERVATION_DELIVERY_PREFERENCE: StaticSchema = ( + 14, + n0, + _CRDP, + 0, + (_FIXED, _INCREMENTAL), + ((-1, {_sV: _fix}), (-1, {_sV: _incr})), +) + +END_DATE_TYPE: StaticSchema = ( + 14, + n0, + _EDT, + 0, + (_unl, _li), + ((-1, {_sV: _unl}), (-1, {_sV: _li})), +) + +INSTANCE_MATCH_CRITERIA: StaticSchema = ( + 14, + n0, + _IMC, + 0, + (_op, _ta), + ((-1, {_sV: _op}), (-1, {_sV: _ta})), +) + +CAPACITY_RESERVATION_INSTANCE_PLATFORM: StaticSchema = ( + 14, + n0, + _CRIP, + 0, + ( + _LU, + _RHEL, + _SL_, + _WINDOWS, + _WWSS, + _WWSSE, + _WWSSS, + _WWSSW, + _LWSSS, + _LWSSW, + _LWSSE, + _RWSSS, + _RWSSE, + _RWSSW, + _RWH, + _RWHASSS, + _RWHASSE, + _UPL, + ), + ( + (-1, {_sV: _LUNIX}), + (-1, {_sV: _RHEL_}), + (-1, {_sV: _SL__}), + (-1, {_sV: _W}), + (-1, {_sV: _WwSS}), + (-1, {_sV: _WwSSE}), + (-1, {_sV: _WwSSS}), + (-1, {_sV: _WwSSW}), + (-1, {_sV: _LwSSS}), + (-1, {_sV: _LwSSW}), + (-1, {_sV: _LwSSE}), + (-1, {_sV: _RwSSS}), + (-1, {_sV: _RwSSE}), + (-1, {_sV: _RwSSW}), + (-1, {_sV: _RwH}), + (-1, {_sV: _RwHaSSS}), + (-1, {_sV: _RwHaSSE}), + (-1, {_sV: _UP_}), + ), +) + +OUTPOST_ARN: StaticSchema = (3, n0, _OA, 0) + +PLACEMENT_GROUP_ARN: StaticSchema = (3, n0, _PGA, 0) + +CAPACITY_RESERVATION_TENANCY: StaticSchema = ( + 14, + n0, + _CRT, + 0, + (_def, _ded), + ((-1, {_sV: _def}), (-1, {_sV: _ded})), +) + +CREATE_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _CCRIr, + {_sSI: _cCCRRom, _sm: None}, + ( + _CTl, + _IT, + _IPns, + _AZ, + _AZI, + _Ten, + _IC, + _EO, + _ESp, + _ED, + _EDT, + _IMC, + _TSa, + _DR, + _OA, + _PGA, + _SDt, + _CDo, + _DPel, + ), + ( + (STRING, 0), + (STRING, 1), + (CAPACITY_RESERVATION_INSTANCE_PLATFORM, 1), + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + (CAPACITY_RESERVATION_TENANCY, 0), + (INTEGER, 1), + (BOOLEAN, 0), + (BOOLEAN, 0), + (DATE_TIME, 0), + (END_DATE_TYPE, 0), + (INSTANCE_MATCH_CRITERIA, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN, 0), + (OUTPOST_ARN, 0), + (PLACEMENT_GROUP_ARN, 0), + (MILLISECOND_DATE_TIME, 0), + (CAPACITY_RESERVATION_COMMITMENT_DURATION, 0), + (CAPACITY_RESERVATION_DELIVERY_PREFERENCE, 0), + ), +) + +BOXED_LONG: StaticSchema = (8, n0, _BL, 0) + +CAPACITY_RESERVATION_ADJUSTMENT_DETAILS: StaticSchema = ( + 18, + n0, + _CRAD, + 0, + (_SDt, _ED, _CED, _EDT, _CDo), + ( + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (MILLISECOND_DATE_TIME, {_aQN: _CED, _sN: _cED}), + (STRING, {_aQN: _EDT, _sN: _eDT}), + (BOXED_LONG, {_aQN: _CDo, _sN: _cDo}), + ), +) + +CAPACITY_RESERVATION_ADJUSTMENT_STATUS: StaticSchema = ( + 14, + n0, + _CRAS, + 0, + (_req, _ap, _re), + ((-1, {_sV: _req}), (-1, {_sV: _ap}), (-1, {_sV: _re})), +) + +CAPACITY_ALLOCATION_METADATA_ENTRY: StaticSchema = ( + 18, + n0, + _CAME, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +CAPACITY_ALLOCATION_METADATA_LIST: StaticSchema = ( + 16, + n0, + _CAML, + 0, + (_me,), + ((CAPACITY_ALLOCATION_METADATA_ENTRY, {_sN: _i}),), +) + +CAPACITY_ALLOCATION: StaticSchema = ( + 18, + n0, + _CAa, + 0, + (_ATl, _Cou, _AMl), + ( + (ALLOCATION_TYPE, {_aQN: _ATl, _sN: _aTl}), + (INTEGER, {_aQN: _Cou, _sN: _cou}), + (CAPACITY_ALLOCATION_METADATA_LIST, {_aQN: _AML, _sN: _aML}), + ), +) + +CAPACITY_ALLOCATIONS: StaticSchema = ( + 16, + n0, + _CAap, + 0, + (_me,), + ((CAPACITY_ALLOCATION, {_sN: _i}),), +) + +CAPACITY_BLOCK_ID: StaticSchema = (3, n0, _CBI, 0) + +CAPACITY_RESERVATION_COMMITMENT_INFO: StaticSchema = ( + 18, + n0, + _CRCI, + 0, + (_CIC, _CED, _CDo), + ( + (INTEGER, {_aQN: _CIC, _sN: _cIC}), + (MILLISECOND_DATE_TIME, {_aQN: _CED, _sN: _cED}), + (BOXED_LONG, {_aQN: _CDo, _sN: _cDo}), + ), +) + +INTERRUPTION_TYPE: StaticSchema = (14, n0, _ITnt, 0, (_adh,), ((-1, {_sV: _adh}),)) + +INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_STATUS: StaticSchema = ( + 14, + n0, + _ICRAS, + 0, + (_p, _act, _up, _canc, _cance, _fa), + ( + (-1, {_sV: _p}), + (-1, {_sV: _act}), + (-1, {_sV: _up}), + (-1, {_sV: _canc}), + (-1, {_sV: _cance}), + (-1, {_sV: _fa}), + ), +) + +ZERO_SIZE_PREFERENCE: StaticSchema = ( + 14, + n0, + _ZSP, + 0, + (_ret, _def), + ((-1, {_sV: _ret}), (-1, {_sV: _def})), +) + +INTERRUPTIBLE_CAPACITY_ALLOCATION: StaticSchema = ( + 18, + n0, + _ICA, + 0, + (_IC, _TIC, _Sta, _ICRI, _ITnt, _ZSP), + ( + (INTEGER, {_aQN: _IC, _sN: _iC}), + (INTEGER, {_aQN: _TIC, _sN: _tIC}), + (INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _ICRI, _sN: _iCRI}), + (INTERRUPTION_TYPE, {_aQN: _ITnt, _sN: _iTn}), + (ZERO_SIZE_PREFERENCE, {_aQN: _ZSP, _sN: _zSP}), + ), +) + +INTERRUPTION_INFO: StaticSchema = ( + 18, + n0, + _IInt, + 0, + (_SCRI, _ITnt), + ( + (STRING, {_aQN: _SCRI, _sN: _sCRI}), + (INTERRUPTION_TYPE, {_aQN: _ITnt, _sN: _iTn}), + ), +) + +CAPACITY_RESERVATION_LAUNCH_STATUS: StaticSchema = ( + 14, + n0, + _CRLS, + 0, + (_LAUNCHABLE, _UNLAUNCHABLE), + ((-1, {_sV: _lau}), (-1, {_sV: _unla})), +) + +CAPACITY_RESERVATION_TYPE: StaticSchema = ( + 14, + n0, + _CRTa, + 0, + (_DEFAULT, _CB_), + ((-1, {_sV: _def}), (-1, {_sV: _cb_})), +) + +CAPACITY_RESERVATION_STATE: StaticSchema = ( + 14, + n0, + _CRS, + 0, + (_act, _ex, _can, _p, _fa, _sch, _pp__, _pf____, _asse, _dela, _uns, _ca, _unav), + ( + (-1, {_sV: _act}), + (-1, {_sV: _ex}), + (-1, {_sV: _can}), + (-1, {_sV: _p}), + (-1, {_sV: _fa}), + (-1, {_sV: _sch}), + (-1, {_sV: _pp___}), + (-1, {_sV: _pf_____}), + (-1, {_sV: _asse}), + (-1, {_sV: _dela}), + (-1, {_sV: _uns}), + (-1, {_sV: _ca}), + (-1, {_sV: _unav}), + ), +) + +CAPACITY_RESERVATION: StaticSchema = ( + 18, + n0, + _CRap, + 0, + ( + _CRI, + _OIw, + _CRA, + _AZI, + _IT, + _IPns, + _AZ, + _Ten, + _TICo, + _AIC, + _EO, + _ESp, + _St, + _SDt, + _ED, + _EDT, + _IMC, + _CD, + _Tag, + _OA, + _CRFI, + _PGA, + _CAap, + _RTes, + _URBOI, + _CIom, + _DPel, + _CBI, + _Inte, + _ICA, + _IInt, + _ASd, + _ADdj, + _OSD, + _ZSP, + _LSa, + ), + ( + (STRING, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _CRA, _sN: _cRA}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (CAPACITY_RESERVATION_INSTANCE_PLATFORM, {_aQN: _IPns, _sN: _iPns}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (INTEGER, {_aQN: _TICo, _sN: _tICo}), + (INTEGER, {_aQN: _AIC, _sN: _aIC}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (BOOLEAN, {_aQN: _ESp, _sN: _eSp}), + (CAPACITY_RESERVATION_STATE, {_aQN: _St, _sN: _st}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (DATE_TIME, {_aQN: _ED, _sN: _eD}), + (END_DATE_TYPE, {_aQN: _EDT, _sN: _eDT}), + (INSTANCE_MATCH_CRITERIA, {_aQN: _IMC, _sN: _iMC}), + (DATE_TIME, {_aQN: _CD, _sN: _cD}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (OUTPOST_ARN, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _CRFI, _sN: _cRFI}), + (PLACEMENT_GROUP_ARN, {_aQN: _PGA, _sN: _pGA}), + (CAPACITY_ALLOCATIONS, {_aQN: _CAS, _sN: _cAS}), + (CAPACITY_RESERVATION_TYPE, {_aQN: _RTes, _sN: _rTe}), + (ACCOUNT_ID, {_aQN: _URBOI, _sN: _uRBOI}), + (CAPACITY_RESERVATION_COMMITMENT_INFO, {_aQN: _CIom, _sN: _cIom}), + (CAPACITY_RESERVATION_DELIVERY_PREFERENCE, {_aQN: _DPel, _sN: _dP}), + (CAPACITY_BLOCK_ID, {_aQN: _CBI, _sN: _cBI}), + (BOXED_BOOLEAN, {_aQN: _Inte, _sN: _inte}), + (INTERRUPTIBLE_CAPACITY_ALLOCATION, {_aQN: _ICA, _sN: _iCA}), + (INTERRUPTION_INFO, {_aQN: _IInt, _sN: _iIn}), + (CAPACITY_RESERVATION_ADJUSTMENT_STATUS, {_aQN: _ASd, _sN: _aSd}), + (CAPACITY_RESERVATION_ADJUSTMENT_DETAILS, {_aQN: _ADdj, _sN: _aD}), + (MILLISECOND_DATE_TIME, {_aQN: _OSD, _sN: _oSD}), + (ZERO_SIZE_PREFERENCE, {_aQN: _ZSP, _sN: _zSP}), + (CAPACITY_RESERVATION_LAUNCH_STATUS, {_aQN: _LSa, _sN: _lS}), + ), +) + +CREATE_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CCROr, + {_sSI: _cCCRRoma, _smit: None}, + (_CRap,), + ((CAPACITY_RESERVATION, {_aQN: _CRap, _sN: _cRa}),), +) + +CREATE_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _CCRr, + 0, + CREATE_CAPACITY_RESERVATION_INPUT, + CREATE_CAPACITY_RESERVATION_OUTPUT, + (), +) + +CREATE_CAPACITY_RESERVATION_BY_SPLITTING_INPUT: StaticSchema = ( + 18, + n0, + _CCRBSI, + {_sSI: _cCCRBSR, _sm: None}, + (_DR, _CTl, _SCRI, _IC, _TSa), + ( + (BOOLEAN, 0), + (STRING, 2), + (CAPACITY_RESERVATION_ID, 1), + (INTEGER, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CREATE_CAPACITY_RESERVATION_BY_SPLITTING_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRBSO, + {_sSI: _cCCRBSRo, _smit: None}, + (_SCR, _DCR, _IC), + ( + (CAPACITY_RESERVATION, {_aQN: _SCR, _sN: _sCR}), + (CAPACITY_RESERVATION, {_aQN: _DCR, _sN: _dCR}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + ), +) + +CREATE_CAPACITY_RESERVATION_BY_SPLITTING: StaticOperationSchema = ( + 23, + n0, + _CCRBS, + 0, + CREATE_CAPACITY_RESERVATION_BY_SPLITTING_INPUT, + CREATE_CAPACITY_RESERVATION_BY_SPLITTING_OUTPUT, + (), +) + +CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_INPUT: StaticSchema = ( + 18, + n0, + _CCRCQI, + {_sSI: _cCCRCQR, _sm: None}, + (_CRI, _CTl, _TSa, _DR), + ( + (CAPACITY_RESERVATION_ID, 1), + (STRING, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +CANCELLATION_TERMS: StaticSchema = ( + 18, + n0, + _CTa, + 0, + (_CTan, _RSes, _CIC, _CCDH, _CEDh), + ( + (APPLY_CANCELLATION_CHARGES, {_aQN: _CTan, _sN: _cTa}), + (STRING, {_aQN: _RSes, _sN: _rSes}), + (BOXED_INTEGER, {_aQN: _CIC, _sN: _cIC}), + (BOXED_LONG, {_aQN: _CCDH, _sN: _cCDH}), + (MILLISECOND_DATE_TIME, {_aQN: _CEDh, _sN: _cEDh}), + ), +) + +CANCELLATION_TERMS_SET: StaticSchema = ( + 16, + n0, + _CTS, + 0, + (_me,), + ((CANCELLATION_TERMS, {_sN: _i}),), +) + +CAPACITY_RESERVATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CRC, + 0, + (_IC, _RSes), + ((INTEGER, {_aQN: _IC, _sN: _iC}), (STRING, {_aQN: _RSes, _sN: _rSes})), +) + +CAPACITY_RESERVATION_CANCELLATION_QUOTE_STATE: StaticSchema = ( + 14, + n0, + _CRCQS, + 0, + (_p, _act, _ex), + ((-1, {_sV: _p}), (-1, {_sV: _act}), (-1, {_sV: _ex})), +) + +CAPACITY_RESERVATION_CANCELLATION_QUOTE: StaticSchema = ( + 18, + n0, + _CRCQ, + 0, + (_CRCQI, _CRI, _CTr, _ET, _QS, _CCu, _CTa, _Tag), + ( + (CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID, {_aQN: _CRCQI, _sN: _cRCQI}), + (CAPACITY_RESERVATION_ID, {_aQN: _CRI, _sN: _cRI}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (MILLISECOND_DATE_TIME, {_aQN: _ET, _sN: _eT}), + (CAPACITY_RESERVATION_CANCELLATION_QUOTE_STATE, {_aQN: _QS, _sN: _qS}), + (CAPACITY_RESERVATION_CONFIGURATION, {_aQN: _CCu, _sN: _cCu}), + (CANCELLATION_TERMS_SET, {_aQN: _CTSa, _sN: _cTS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRCQO, + {_sSI: _cCCRCQRo, _smit: None}, + (_CRCQ,), + ((CAPACITY_RESERVATION_CANCELLATION_QUOTE, {_aQN: _CRCQ, _sN: _cRCQ}),), +) + +CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE: StaticOperationSchema = ( + 23, + n0, + _CCRCQ, + 0, + CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_INPUT, + CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_OUTPUT, + (), +) + +CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_INPUT: StaticSchema = ( + 18, + n0, + _CCRDCQI, + {_sSI: _cCCRDCQR, _sm: None}, + (_CRI, _NSD, _CTl, _TSa, _DR), + ( + (CAPACITY_RESERVATION_ID, 1), + (MILLISECOND_DATE_TIME, 1), + (STRING, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID: StaticSchema = (3, n0, _CRMQI, 0) + +MODIFICATION_QUOTE_CURRENT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MQCC, + 0, + (_IC, _RSes, _SDt, _OSD), + ( + (INTEGER, {_aQN: _IC, _sN: _iC}), + (STRING, {_aQN: _RSes, _sN: _rSes}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _OSD, _sN: _oSD}), + ), +) + +MODIFICATION_RESERVATION_UPDATE: StaticSchema = ( + 18, + n0, + _MRU, + 0, + (_NCED, _NSD, _NCD), + ( + (MILLISECOND_DATE_TIME, {_aQN: _NCED, _sN: _nCED}), + (MILLISECOND_DATE_TIME, {_aQN: _NSD, _sN: _nSD}), + (BOXED_INTEGER, {_aQN: _NCD, _sN: _nCD}), + ), +) + +MODIFICATION_TERMS: StaticSchema = ( + 18, + n0, + _MTo, + 0, + (_RU,), + ((MODIFICATION_RESERVATION_UPDATE, {_aQN: _RU, _sN: _rU}),), +) + +CAPACITY_RESERVATION_MODIFICATION_QUOTE_STATE: StaticSchema = ( + 14, + n0, + _CRMQS, + 0, + (_act, _ex), + ((-1, {_sV: _act}), (-1, {_sV: _ex})), +) + +CAPACITY_RESERVATION_MODIFICATION_QUOTE: StaticSchema = ( + 18, + n0, + _CRMQ, + 0, + (_CRMQI, _CRI, _CTr, _ET, _QS, _CCu, _MTo, _Tag), + ( + (CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID, {_aQN: _CRMQI, _sN: _cRMQI}), + (CAPACITY_RESERVATION_ID, {_aQN: _CRI, _sN: _cRI}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (MILLISECOND_DATE_TIME, {_aQN: _ET, _sN: _eT}), + (CAPACITY_RESERVATION_MODIFICATION_QUOTE_STATE, {_aQN: _QS, _sN: _qS}), + (MODIFICATION_QUOTE_CURRENT_CONFIGURATION, {_aQN: _CCu, _sN: _cCu}), + (MODIFICATION_TERMS, {_aQN: _MTo, _sN: _mTo}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRDCQO, + {_sSI: _cCCRDCQRo, _smit: None}, + (_CRMQ,), + ((CAPACITY_RESERVATION_MODIFICATION_QUOTE, {_aQN: _CRMQ, _sN: _cRMQ}),), +) + +CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE: StaticOperationSchema = ( + 23, + n0, + _CCRDCQ, + 0, + CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_INPUT, + CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_OUTPUT, + (), +) + +FLEET_INSTANCE_MATCH_CRITERIA: StaticSchema = ( + 14, + n0, + _FIMC, + 0, + (_op,), + ((-1, {_sV: _op}),), +) + +BARE_METAL: StaticSchema = ( + 14, + n0, + _BM, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _requ}), (-1, {_sV: _excl})), +) + +BASELINE_EBS_BANDWIDTH_MBPS_REQUEST: StaticSchema = ( + 18, + n0, + _BEBMR, + 0, + (_M, _Ma), + ((INTEGER, 0), (INTEGER, 0)), +) + +PERFORMANCE_FACTOR_REFERENCE_REQUEST: StaticSchema = ( + 18, + n0, + _PFRR, + 0, + (_IF,), + ((STRING, 0),), +) + +PERFORMANCE_FACTOR_REFERENCE_SET_REQUEST: StaticSchema = ( + 16, + n0, + _PFRSR, + 0, + (_me,), + ((PERFORMANCE_FACTOR_REFERENCE_REQUEST, {_sN: _i}),), +) + +CPU_PERFORMANCE_FACTOR_REQUEST: StaticSchema = ( + 18, + n0, + _CPFR, + 0, + (_Ref,), + ((PERFORMANCE_FACTOR_REFERENCE_SET_REQUEST, {_sN: _Refe}),), +) + +BASELINE_PERFORMANCE_FACTORS_REQUEST: StaticSchema = ( + 18, + n0, + _BPFR, + 0, + (_Cp,), + ((CPU_PERFORMANCE_FACTOR_REQUEST, 0),), +) + +BURSTABLE_PERFORMANCE: StaticSchema = ( + 14, + n0, + _BP, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _requ}), (-1, {_sV: _excl})), +) + +CPU_MANUFACTURER: StaticSchema = ( + 14, + n0, + _CM, + 0, + (_INTEL, _AMD, _AWS, _APPLE), + ((-1, {_sV: _intel}), (-1, {_sV: _a}), (-1, {_sV: _aws}), (-1, {_sV: _app})), +) + +CPU_MANUFACTURER_SET: StaticSchema = ( + 16, + n0, + _CMS, + 0, + (_me,), + ((CPU_MANUFACTURER, {_sN: _i}),), +) + +EXCLUDED_INSTANCE_TYPE: StaticSchema = (3, n0, _EIT, 0) + +EXCLUDED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _EITS, + 0, + (_me,), + ((EXCLUDED_INSTANCE_TYPE, {_sN: _i}),), +) + +INSTANCE_GENERATION: StaticSchema = ( + 14, + n0, + _IGn, + 0, + (_CURRENT, _PREVIOUS), + ((-1, {_sV: _cur}), (-1, {_sV: _prev})), +) + +INSTANCE_GENERATION_SET: StaticSchema = ( + 16, + n0, + _IGS, + 0, + (_me,), + ((INSTANCE_GENERATION, {_sN: _i}),), +) + +LOCAL_STORAGE: StaticSchema = ( + 14, + n0, + _LSo, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _requ}), (-1, {_sV: _excl})), +) + +LOCAL_STORAGE_TYPE: StaticSchema = ( + 14, + n0, + _LST, + 0, + (_HDD, _SSD), + ((-1, {_sV: _hd}), (-1, {_sV: _ssd})), +) + +LOCAL_STORAGE_TYPE_SET: StaticSchema = ( + 16, + n0, + _LSTS, + 0, + (_me,), + ((LOCAL_STORAGE_TYPE, {_sN: _i}),), +) + +MEMORY_GI_B_PER_V_CPU_REQUEST: StaticSchema = ( + 18, + n0, + _MGBPVCR, + 0, + (_M, _Ma), + ((DOUBLE, 0), (DOUBLE, 0)), +) + +MEMORY_MI_B_REQUEST: StaticSchema = ( + 18, + n0, + _MMBR, + 0, + (_M, _Ma), + ((INTEGER, 1), (INTEGER, 0)), +) + +NETWORK_BANDWIDTH_GBPS_REQUEST: StaticSchema = ( + 18, + n0, + _NBGR, + 0, + (_M, _Ma), + ((DOUBLE, 0), (DOUBLE, 0)), +) + +NETWORK_INTERFACE_COUNT_REQUEST: StaticSchema = ( + 18, + n0, + _NICR, + 0, + (_M, _Ma), + ((INTEGER, 0), (INTEGER, 0)), +) + +TOTAL_LOCAL_STORAGE_GB_REQUEST: StaticSchema = ( + 18, + n0, + _TLSGBR, + 0, + (_M, _Ma), + ((DOUBLE, 0), (DOUBLE, 0)), +) + +V_CPU_COUNT_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _VCCRR, + 0, + (_M, _Ma), + ((INTEGER, 1), (INTEGER, 0)), +) + +INSTANCE_REQUIREMENTS_REQUEST: StaticSchema = ( + 18, + n0, + _IRR, + 0, + ( + _VCC, + _MMB, + _CMp, + _MGBPVC, + _EITx, + _IGns, + _SMPPOLP, + _ODMPPOLP, + _BM, + _BP, + _RHS, + _NIC, + _LSo, + _LSTo, + _TLSGB, + _BEBM, + _ATc, + _AC, + _AMc, + _ANc, + _ATMMB, + _NBGe, + _AITl, + _MSPAPOOODP, + _BPF, + _REIT, + ), + ( + (V_CPU_COUNT_RANGE_REQUEST, 1), + (MEMORY_MI_B_REQUEST, 1), + (CPU_MANUFACTURER_SET, {_sN: _CM}), + (MEMORY_GI_B_PER_V_CPU_REQUEST, 0), + (EXCLUDED_INSTANCE_TYPE_SET, {_sN: _EIT}), + (INSTANCE_GENERATION_SET, {_sN: _IGn}), + (INTEGER, 0), + (INTEGER, 0), + (BARE_METAL, 0), + (BURSTABLE_PERFORMANCE, 0), + (BOOLEAN, 0), + (NETWORK_INTERFACE_COUNT_REQUEST, 0), + (LOCAL_STORAGE, 0), + (LOCAL_STORAGE_TYPE_SET, {_sN: _LST}), + (TOTAL_LOCAL_STORAGE_GB_REQUEST, 0), + (BASELINE_EBS_BANDWIDTH_MBPS_REQUEST, 0), + (ACCELERATOR_TYPE_SET, {_sN: _AT}), + (ACCELERATOR_COUNT_REQUEST, 0), + (ACCELERATOR_MANUFACTURER_SET, {_sN: _AM}), + (ACCELERATOR_NAME_SET, {_sN: _AN}), + (ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST, 0), + (NETWORK_BANDWIDTH_GBPS_REQUEST, 0), + (ALLOWED_INSTANCE_TYPE_SET, {_sN: _AIT}), + (INTEGER, 0), + (BASELINE_PERFORMANCE_FACTORS_REQUEST, 0), + (BOOLEAN, 0), + ), +) + +INSTANCE_TYPE: StaticSchema = ( + 14, + n0, + _IT, + 0, + ( + _am____, + _al_, + _ax, + _a__, + _a___, + _am_____, + _cm, + _cx, + _cl_, + _cx_, + _c_, + _c__, + _c___, + _cl__, + _cx__, + _c____, + _c_____, + _c______, + _cl___, + _cx___, + _c_______, + _c________, + _c_________, + _c__________, + _c___________, + _c____________, + _cm_, + _cl____, + _cx____, + _c_____________, + _c______________, + _c_______________, + _c________________, + _c_________________, + _c__________________, + _cl_____, + _cx_____, + _c___________________, + _c____________________, + _c_____________________, + _c______________________, + _c_______________________, + _c________________________, + _cl______, + _cx______, + _c_________________________, + _c__________________________, + _c___________________________, + _c____________________________, + _c_____________________________, + _c______________________________, + _cm__, + _cl_______, + _cx_______, + _c_______________________________, + _c________________________________, + _c_________________________________, + _c__________________________________, + _cm___, + _cm____, + _cl________, + _cx________, + _c___________________________________, + _c____________________________________, + _c_____________________________________, + _c______________________________________, + _c_______________________________________, + _cm_____, + _cm______, + _cl_________, + _cx_________, + _c________________________________________, + _c_________________________________________, + _c__________________________________________, + _c___________________________________________, + _c____________________________________________, + _cm_______, + _cm________, + _cl__________, + _cx__________, + _c_____________________________________________, + _c______________________________________________, + _c_______________________________________________, + _c________________________________________________, + _c_________________________________________________, + _cl___________, + _cx___________, + _c__________________________________________________, + _c___________________________________________________, + _c____________________________________________________, + _c_____________________________________________________, + _c______________________________________________________, + _c_______________________________________________________, + _c________________________________________________________, + _cm_________, + _c_________________________________________________________, + _c__________________________________________________________, + _c___________________________________________________________, + _c____________________________________________________________, + _dx, + _d_, + _d__, + _d___, + _dx_, + _d____, + _d_____, + _d______, + _dx__, + _d_______, + _d________, + _d_________, + _d__________, + _d___________, + _d____________, + _f_, + _f__, + _f___, + _g_, + _g__, + _g___, + _g____, + _g_____, + _gx_, + _gx__, + _g______, + _g_______, + _g________, + _g_________, + _gx___, + _g__________, + _g___________, + _g____________, + _g_____________, + _g______________, + _gm, + _gx____, + _g_______________, + _g________________, + _g_________________, + _g__________________, + _g___________________, + _g____________________, + _g_____________________, + _gx_____, + _g______________________, + _g_______________________, + _g________________________, + _g_________________________, + _gm_, + _h__, + _h___, + _h____, + _h_____, + _h______, + _h_______, + _h________, + _ix, + _i_, + _i__, + _i___, + _il, + _ix_, + _i____, + _i_____, + _i______, + _i_______, + _im_, + _il_, + _ix__, + _i________, + _i_________, + _i__________, + _i___________, + _i____________, + _im__, + _il__, + _ix___, + _i_____________, + _i______________, + _i_______________, + _i________________, + _ix____, + _i_________________, + _i__________________, + _i___________________, + _im___, + _il___, + _ix_____, + _i____________________, + _i_____________________, + _i______________________, + _ms, + _mm, + _ml, + _mx, + _mx_, + _m__, + _m___, + _mm_, + _ml_, + _mx__, + _m____, + _ml__, + _mx___, + _m_____, + _m______, + _m_______, + _m________, + _ml___, + _mx____, + _m_________, + _m__________, + _m___________, + _m____________, + _m_____________, + _m______________, + _mm__, + _ml____, + _mx_____, + _m_______________, + _m________________, + _m_________________, + _m__________________, + _m___________________, + _m____________________, + _ml_____, + _mx______, + _m_____________________, + _m______________________, + _m_______________________, + _m________________________, + _m_________________________, + _m__________________________, + _ml______, + _mx_______, + _m___________________________, + _m____________________________, + _m_____________________________, + _m______________________________, + _m_______________________________, + _m________________________________, + _mm___, + _ml_______, + _mx________, + _m_________________________________, + _m__________________________________, + _m___________________________________, + _m____________________________________, + _m_____________________________________, + _m______________________________________, + _mm____, + _ml________, + _mx_________, + _m_______________________________________, + _m________________________________________, + _m_________________________________________, + _m__________________________________________, + _m___________________________________________, + _m____________________________________________, + _mm_____, + _ml_________, + _mx__________, + _m_____________________________________________, + _m______________________________________________, + _m_______________________________________________, + _m________________________________________________, + _mm______, + _ml__________, + _mx___________, + _m_________________________________________________, + _m__________________________________________________, + _m___________________________________________________, + _m____________________________________________________, + _m_____________________________________________________, + _m______________________________________________________, + _m_______________________________________________________, + _m________________________________________________________, + _mm_______, + _mm________, + _ml___________, + _mx____________, + _m_________________________________________________________, + _m__________________________________________________________, + _m___________________________________________________________, + _m____________________________________________________________, + _m_____________________________________________________________, + _mm_________, + _mm__________, + _ml____________, + _mx_____________, + _m______________________________________________________________, + _m_______________________________________________________________, + _m________________________________________________________________, + _m_________________________________________________________________, + _m__________________________________________________________________, + _ml_____________, + _mx______________, + _m___________________________________________________________________, + _m____________________________________________________________________, + _m_____________________________________________________________________, + _m______________________________________________________________________, + _m_______________________________________________________________________, + _m________________________________________________________________________, + _m_________________________________________________________________________, + _mm___________, + _mm____________, + _px, + _p_, + _p__, + _p___, + _p____, + _p_____, + _p______, + _p_______, + _rl, + _rx, + _r_, + _r__, + _r___, + _rl_, + _rx_, + _r____, + _r_____, + _r______, + _r_______, + _rl__, + _rx__, + _r________, + _r_________, + _r__________, + _r___________, + _r____________, + _r_____________, + _rm, + _rl___, + _rx___, + _r______________, + _r_______________, + _r________________, + _r_________________, + _r__________________, + _r___________________, + _rl____, + _rx____, + _r____________________, + _r_____________________, + _r______________________, + _r_______________________, + _r________________________, + _r_________________________, + _rl_____, + _rx_____, + _r__________________________, + _r___________________________, + _r____________________________, + _r_____________________________, + _r______________________________, + _r_______________________________, + _rm_, + _rl______, + _rx______, + _r________________________________, + _r_________________________________, + _r__________________________________, + _r___________________________________, + _r____________________________________, + _r_____________________________________, + _rm__, + _rl_______, + _rx_______, + _r______________________________________, + _r_______________________________________, + _r________________________________________, + _r_________________________________________, + _r__________________________________________, + _r___________________________________________, + _rm___, + _rl________, + _rx________, + _r____________________________________________, + _r_____________________________________________, + _r______________________________________________, + _r_______________________________________________, + _r________________________________________________, + _r_________________________________________________, + _rm____, + _rm_____, + _rl_________, + _rx_________, + _r__________________________________________________, + _r___________________________________________________, + _r____________________________________________________, + _r_____________________________________________________, + _r______________________________________________________, + _rm______, + _rm_______, + _rl__________, + _rx__________, + _r_______________________________________________________, + _r________________________________________________________, + _r_________________________________________________________, + _r__________________________________________________________, + _r___________________________________________________________, + _rm________, + _rl___________, + _rx___________, + _r____________________________________________________________, + _r_____________________________________________________________, + _r______________________________________________________________, + _r_______________________________________________________________, + _r________________________________________________________________, + _r_________________________________________________________________, + _r__________________________________________________________________, + _rm_________, + _tm, + _tn, + _tm_, + _ts__, + _tm__, + _tl, + _tx, + _t_, + _tn_, + _tm___, + _ts___, + _tm____, + _tl_, + _tx_, + _t__, + _tn__, + _tm_____, + _ts____, + _tm______, + _tl__, + _tx__, + _t___, + _tn___, + _tm_______, + _ts_____, + _tm________, + _tl___, + _tx___, + _t____, + _u_, + _u___, + _u_____, + _u_______, + _um, + _um_, + _um__, + _um___, + _um____, + _v__, + _v___, + _v____, + _x_, + _x__, + _xx_, + _x___, + _x____, + _x_____, + _x______, + _x_______, + _x________, + _x_________, + _x__________, + _x___________, + _x____________, + _xm, + _xm_, + _xl, + _xx__, + _x_____________, + _x______________, + _x_______________, + _x________________, + _x_________________, + _xm__, + _zl, + _zx, + _z_, + _z__, + _z___, + _z____, + _zm, + _x__________________, + _x___________________, + _x____________________, + _xx___, + _x_____________________, + _x______________________, + _x_______________________, + _x________________________, + _x_________________________, + _x__________________________, + _cl____________, + _cx____________, + _c_____________________________________________________________, + _c______________________________________________________________, + _c_______________________________________________________________, + _c________________________________________________________________, + _c_________________________________________________________________, + _c__________________________________________________________________, + _c___________________________________________________________________, + _c____________________________________________________________________, + _cm__________, + _mm_____________, + _il____, + _ix______, + _i_______________________, + _i________________________, + _i_________________________, + _i__________________________, + _i___________________________, + _im____, + _xm___, + _xm____, + _cm___________, + _cl_____________, + _cx_____________, + _c_____________________________________________________________________, + _c______________________________________________________________________, + _c_______________________________________________________________________, + _c________________________________________________________________________, + _c_________________________________________________________________________, + _mm______________, + _cl______________, + _cx______________, + _c__________________________________________________________________________, + _c___________________________________________________________________________, + _c____________________________________________________________________________, + _c_____________________________________________________________________________, + _c______________________________________________________________________________, + _c_______________________________________________________________________________, + _c________________________________________________________________________________, + _cm____________, + _ml______________, + _mx_______________, + _m__________________________________________________________________________, + _m___________________________________________________________________________, + _m____________________________________________________________________________, + _m_____________________________________________________________________________, + _m______________________________________________________________________________, + _m_______________________________________________________________________________, + _m________________________________________________________________________________, + _mm_______________, + _rl____________, + _rx____________, + _r___________________________________________________________________, + _r____________________________________________________________________, + _r_____________________________________________________________________, + _r______________________________________________________________________, + _r_______________________________________________________________________, + _r________________________________________________________________________, + _r_________________________________________________________________________, + _rm__________, + _rl_____________, + _rx_____________, + _r__________________________________________________________________________, + _r___________________________________________________________________________, + _r____________________________________________________________________________, + _r_____________________________________________________________________________, + _r______________________________________________________________________________, + _r_______________________________________________________________________________, + _r________________________________________________________________________________, + _r_________________________________________________________________________________, + _rm___________, + _p________, + _u______________, + _u________________, + _u__________________, + _t_____, + _t______, + _h_________, + _cl_______________, + _cx_______________, + _c_________________________________________________________________________________, + _c__________________________________________________________________________________, + _c___________________________________________________________________________________, + _c____________________________________________________________________________________, + _c_____________________________________________________________________________________, + _c______________________________________________________________________________________, + _c_______________________________________________________________________________________, + _ml_______________, + _mx________________, + _m_________________________________________________________________________________, + _m__________________________________________________________________________________, + _m___________________________________________________________________________________, + _m____________________________________________________________________________________, + _m_____________________________________________________________________________________, + _m______________________________________________________________________________________, + _m_______________________________________________________________________________________, + _ml________________, + _mx_________________, + _m________________________________________________________________________________________, + _m_________________________________________________________________________________________, + _m__________________________________________________________________________________________, + _m___________________________________________________________________________________________, + _m____________________________________________________________________________________________, + _m_____________________________________________________________________________________________, + _m______________________________________________________________________________________________, + _rl______________, + _rx______________, + _r__________________________________________________________________________________, + _r___________________________________________________________________________________, + _r____________________________________________________________________________________, + _r_____________________________________________________________________________________, + _r______________________________________________________________________________________, + _r_______________________________________________________________________________________, + _r________________________________________________________________________________________, + _rl_______________, + _rx_______________, + _r_________________________________________________________________________________________, + _r__________________________________________________________________________________________, + _r___________________________________________________________________________________________, + _r____________________________________________________________________________________________, + _r_____________________________________________________________________________________________, + _r______________________________________________________________________________________________, + _r_______________________________________________________________________________________________, + _cm_____________, + _mm________________, + _ml_________________, + _mx__________________, + _m_______________________________________________________________________________________________, + _m________________________________________________________________________________________________, + _m_________________________________________________________________________________________________, + _m__________________________________________________________________________________________________, + _m___________________________________________________________________________________________________, + _mm_________________, + _rm____________, + _rl________________, + _rx________________, + _r________________________________________________________________________________________________, + _r_________________________________________________________________________________________________, + _r__________________________________________________________________________________________________, + _r___________________________________________________________________________________________________, + _r____________________________________________________________________________________________________, + _rm_____________, + _cm______________, + _mm__________________, + _mm___________________, + _rm______________, + _rm_______________, + _ix_______, + _i____________________________, + _i_____________________________, + _i______________________________, + _t_______, + _il_____, + _ix________, + _i_______________________________, + _i________________________________, + _i_________________________________, + _i__________________________________, + _h__________, + _h___________, + _h____________, + _cm_______________, + _cl________________, + _cx________________, + _c________________________________________________________________________________________, + _c_________________________________________________________________________________________, + _c__________________________________________________________________________________________, + _c___________________________________________________________________________________________, + _c____________________________________________________________________________________________, + _p_________, + _ml__________________, + _mx___________________, + _m____________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________, + _m______________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________, + _m________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________, + _mfl, + _mfx, + _mf__, + _mf____, + _mf______, + _mm____________________, + _ml___________________, + _mx____________________, + _m___________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________, + _mm_____________________, + _h_____________, + _h______________, + _h_______________, + _h________________, + _cm________________, + _cl_________________, + _cx_________________, + _c_____________________________________________________________________________________________, + _c______________________________________________________________________________________________, + _c_______________________________________________________________________________________________, + _c________________________________________________________________________________________________, + _c_________________________________________________________________________________________________, + _mm______________________, + _ml____________________, + _mx_____________________, + _m____________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________, + _rm________________, + _rl_________________, + _rx_________________, + _r_____________________________________________________________________________________________________, + _r______________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________, + _r________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________, + _rm_________________, + _rl__________________, + _rx__________________, + _r__________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________, + _cl__________________, + _cx__________________, + _c__________________________________________________________________________________________________, + _c___________________________________________________________________________________________________, + _c____________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________, + _c______________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________, + _c________________________________________________________________________________________________________, + _mmm, + _rl___________________, + _rx___________________, + _r__________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________, + _cm_________________, + _cl___________________, + _cx___________________, + _c_________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________, + _cm__________________, + _rm__________________, + _rl____________________, + _rx____________________, + _r_________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________, + _d_____________, + _mmm_, + _i___________________________________, + _i____________________________________, + _cm___________________, + _cm____________________, + _mm_________________________, + _mm__________________________, + _rm___________________, + _rm____________________, + _rm_____________________, + _rm______________________, + _cm_____________________, + _mm___________________________, + _rm_______________________, + _gx______, + _g__________________________, + _g___________________________, + _g____________________________, + _g_____________________________, + _g______________________________, + _g_______________________________, + _g________________________________, + _g_________________________________, + _g__________________________________, + _cfl, + _cfx, + _cf__, + _cf____, + _cf______, + _u____________________, + _u______________________, + _u________________________, + _u__________________________, + _u____________________________, + _cm______________________, + _rm________________________, + _rl_____________________, + _rx_____________________, + _r____________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________, + _rm_________________________, + _rm__________________________, + _mmm__, + _gx_______, + _g___________________________________, + _g____________________________________, + _g_____________________________________, + _g______________________________________, + _g_______________________________________, + _g________________________________________, + _g_________________________________________, + _cm_______________________, + _cl____________________, + _cx____________________, + _c____________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________, + _cm________________________, + _cm_________________________, + _mm_____________________________, + _ml_____________________, + _mx______________________, + _m___________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________, + _mm______________________________, + _mm_______________________________, + _xm_____, + _xl_, + _xx____, + _x___________________________, + _x____________________________, + _x_____________________________, + _x______________________________, + _x_______________________________, + _x________________________________, + _x_________________________________, + _xm______, + _xm_______, + _il______, + _ix_________, + _i_____________________________________, + _i______________________________________, + _i_______________________________________, + _i________________________________________, + _i_________________________________________, + _i__________________________________________, + _i___________________________________________, + _il_______, + _ix__________, + _i____________________________________________, + _i_____________________________________________, + _i______________________________________________, + _i_______________________________________________, + _i________________________________________________, + _i_________________________________________________, + _im_____, + _u______________________________, + _u________________________________, + _u__________________________________, + _p__________, + _p___________, + _f____, + _f_____, + _t________, + _cf________, + _cf__________, + _mf________, + _mf__________, + _im______, + _im_______, + _i_____________________________________________________, + _cm__________________________, + _cl_____________________, + _cx_____________________, + _c_____________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________, + _cm___________________________, + _cm____________________________, + _il________, + _ix___________, + _i______________________________________________________, + _i_______________________________________________________, + _i________________________________________________________, + _i_________________________________________________________, + _i__________________________________________________________, + _i___________________________________________________________, + _i____________________________________________________________, + _im________, + _im_________, + _pb, + _mm________________________________, + _ml______________________, + _mx_______________________, + _m____________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________, + _mm_________________________________, + _mm__________________________________, + _rm___________________________, + _rl______________________, + _rx______________________, + _r_____________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________, + _rm____________________________, + _rm_____________________________, + _cm_____________________________, + _cl______________________, + _cx______________________, + _c______________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________, + _cm______________________________, + _cm_______________________________, + _f______, + _pg__, + _gl, + _gx________, + _g__________________________________________, + _g___________________________________________, + _g____________________________________________, + _p____________, + _rl_______________________, + _rx_______________________, + _r______________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________, + _rm______________________________, + _rm_______________________________, + _rfl, + _rfx, + _rf__, + _rf____, + _rf______, + _rf________, + _rf__________, + _ml_______________________, + _mx________________________, + _m_____________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________, + _mm___________________________________, + _mm____________________________________, + _mfl_, + _mfx_, + _mf______________, + _mf________________, + _mf__________________, + _mf____________________, + _mf______________________, + _il_________, + _ix____________, + _i_______________________________________________________________, + _i________________________________________________________________, + _i_________________________________________________________________, + _i__________________________________________________________________, + _i___________________________________________________________________, + _i____________________________________________________________________, + _i_____________________________________________________________________, + _im__________, + _im___________, + _mmm___, + _mmm____, + _rm________________________________, + _rl________________________, + _rx________________________, + _r_________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________, + _rm_________________________________, + _rm__________________________________, + _cl_______________________, + _cx_______________________, + _c_______________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________, + _cm________________________________, + _cm_________________________________, + _cfl_, + _cfx_, + _cf______________, + _cf________________, + _cf__________________, + _cf____________________, + _cf______________________, + _rm___________________________________, + _rl_________________________, + _rx_________________________, + _r__________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________, + _rm____________________________________, + _mm_______________________________________, + _ml________________________, + _mx_________________________, + _m________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________, + _mm________________________________________, + _mm_________________________________________, + _t_________, + _rm_____________________________________, + _rl__________________________, + _rx__________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________, + _rm______________________________________, + _rm_______________________________________, + _pb__, + _cm__________________________________, + _cl________________________, + _cx________________________, + _c__________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________, + _cm___________________________________, + _cm____________________________________, + _c___________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________________, + _cl_________________________, + _cm_____________________________________, + _cm______________________________________, + _cx_________________________, + _c__________________________________________________________________________________________________________________________________________________________________________, + _cm_______________________________________, + _m_________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________, + _ml_________________________, + _mm__________________________________________, + _mx__________________________, + _m_______________________________________________________________________________________________________________________________________________________________________, + _mm___________________________________________, + _mm____________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________, + _ml__________________________, + _mm_____________________________________________, + _mx___________________________, + _mm______________________________________________, + _mm_______________________________________________, + _x____________________________________, + _x_____________________________________, + _x______________________________________, + _x_______________________________________, + _xl__, + _xm________, + _xm_________, + _xx_____, + _mm________________________________________________, + _ml___________________________, + _mx____________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________, + _mm_________________________________________________, + _mm__________________________________________________, + _xl___, + _xx______, + _x__________________________________________, + _x___________________________________________, + _x____________________________________________, + _x_____________________________________________, + _x______________________________________________, + _x_______________________________________________, + _x________________________________________________, + _x_________________________________________________, + _x__________________________________________________, + _x___________________________________________________, + _xm__________, + _xm___________, + _mmm_____, + _g_____________________________________________, + _g______________________________________________, + _g_______________________________________________, + _g________________________________________________, + _g_________________________________________________, + _g__________________________________________________, + _rl___________________________, + _rx___________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________, + _rm________________________________________, + _rm_________________________________________, + _cl__________________________, + _cx__________________________, + _c____________________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________________________, + _cm________________________________________, + _cm_________________________________________, + _ml____________________________, + _mx_____________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________, + _mm____________________________________________________, + _mm_____________________________________________________, + _h_________________, + _cl___________________________, + _cx___________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________________, + _cm__________________________________________, + _cm___________________________________________, + _cl____________________________, + _cx____________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_________________________________________________________________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________________________________, + _cm____________________________________________, + _cm_____________________________________________, + _rl____________________________, + _rx____________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________, + _rl_____________________________, + _rx_____________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _ml_____________________________, + _mx______________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________________, + _ml______________________________, + _mx_______________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _ml_______________________________, + _mx________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _cl_____________________________, + _cx_____________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________________________________, + _c________________________________________________________________________________________________________________________________________________________________________________________________________________, + _ml________________________________, + _mx_________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _rl______________________________, + _rx______________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _ml_________________________________, + _mx__________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _rl_______________________________, + _rx_______________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _mmm______, + _ml__________________________________, + _mx___________________________________, + _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _mm_______________________________________________________, + _mm________________________________________________________, + _ml___________________________________, + _mx____________________________________, + _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _mm_________________________________________________________, + _mm__________________________________________________________, + _rm__________________________________________, + _rm___________________________________________, + _rm____________________________________________, + _rm_____________________________________________, + _rm______________________________________________, + _rm_______________________________________________, + _rm________________________________________________, + _rm_________________________________________________, + _mm___________________________________________________________, + _mm____________________________________________________________, + _mm_____________________________________________________________, + _mm______________________________________________________________, + _mm_______________________________________________________________, + _mm________________________________________________________________, + _mm_________________________________________________________________, + _mm__________________________________________________________________, + _g___________________________________________________, + _g____________________________________________________, + _g_____________________________________________________, + _g______________________________________________________, + _g_______________________________________________________, + _g________________________________________________________, + _cm______________________________________________, + _cl______________________________, + _cx______________________________, + _c_________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________________________________________, + _cm_______________________________________________, + _cm________________________________________________, + _cl_______________________________, + _cx_______________________________, + _c_________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c__________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c___________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_____________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _c_______________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _cm_________________________________________________, + _rm__________________________________________________, + _rl________________________________, + _rx________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _rm___________________________________________________, + _rm____________________________________________________, + _rl_________________________________, + _rx_________________________________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _rm_____________________________________________________, + _mm___________________________________________________________________, + _tn____, + _tm_________, + _ts______, + _tm__________, + _im____________, + _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________, + _rm______________________________________________________, + _mm____________________________________________________________________, + _t__________, + ), + ( + (-1, {_sV: _ame}), + (-1, {_sV: _ala}), + (-1, {_sV: _axl}), + (-1, {_sV: _axla}), + (-1, {_sV: _axlar}), + (-1, {_sV: _amet}), + (-1, {_sV: _cme}), + (-1, {_sV: _cxl}), + (-1, {_sV: _cla}), + (-1, {_sV: _cxla}), + (-1, {_sV: _cxlar}), + (-1, {_sV: _cxlarg}), + (-1, {_sV: _cxlarge}), + (-1, {_sV: _clar}), + (-1, {_sV: _cxlarge_}), + (-1, {_sV: _cxlarge__}), + (-1, {_sV: _cxlarge___}), + (-1, {_sV: _cxlarge____}), + (-1, {_sV: _clarg}), + (-1, {_sV: _cxlarge_____}), + (-1, {_sV: _cxlarge______}), + (-1, {_sV: _cxlarge_______}), + (-1, {_sV: _cxlarge________}), + (-1, {_sV: _cxlarge_________}), + (-1, {_sV: _cxlarge__________}), + (-1, {_sV: _cxlarge___________}), + (-1, {_sV: _cmet}), + (-1, {_sV: _cal}), + (-1, {_sV: _cax}), + (-1, {_sV: _caxl}), + (-1, {_sV: _caxla}), + (-1, {_sV: _caxlar}), + (-1, {_sV: _caxlarg}), + (-1, {_sV: _caxlarge}), + (-1, {_sV: _caxlarge_}), + (-1, {_sV: _cad}), + (-1, {_sV: _cadx}), + (-1, {_sV: _cadxl}), + (-1, {_sV: _cadxla}), + (-1, {_sV: _cadxlar}), + (-1, {_sV: _cadxlarg}), + (-1, {_sV: _cadxlarge}), + (-1, {_sV: _cadxlarge_}), + (-1, {_sV: _cd}), + (-1, {_sV: _cdx}), + (-1, {_sV: _cdxl}), + (-1, {_sV: _cdxla}), + (-1, {_sV: _cdxlar}), + (-1, {_sV: _cdxlarg}), + (-1, {_sV: _cdxlarge}), + (-1, {_sV: _cdxlarge_}), + (-1, {_sV: _cdm}), + (-1, {_sV: _cn}), + (-1, {_sV: _cnx}), + (-1, {_sV: _cnxl}), + (-1, {_sV: _cnxla}), + (-1, {_sV: _cnxlar}), + (-1, {_sV: _cnxlarg}), + (-1, {_sV: _cnm}), + (-1, {_sV: _cgm}), + (-1, {_sV: _cgl}), + (-1, {_sV: _cgx}), + (-1, {_sV: _cgxl}), + (-1, {_sV: _cgxla}), + (-1, {_sV: _cgxlar}), + (-1, {_sV: _cgxlarg}), + (-1, {_sV: _cgxlarge}), + (-1, {_sV: _cgme}), + (-1, {_sV: _cgd}), + (-1, {_sV: _cgdl}), + (-1, {_sV: _cgdx}), + (-1, {_sV: _cgdxl}), + (-1, {_sV: _cgdxla}), + (-1, {_sV: _cgdxlar}), + (-1, {_sV: _cgdxlarg}), + (-1, {_sV: _cgdxlarge}), + (-1, {_sV: _cgdm}), + (-1, {_sV: _cgn}), + (-1, {_sV: _cgnl}), + (-1, {_sV: _cgnx}), + (-1, {_sV: _cgnxl}), + (-1, {_sV: _cgnxla}), + (-1, {_sV: _cgnxlar}), + (-1, {_sV: _cgnxlarg}), + (-1, {_sV: _cgnxlarge}), + (-1, {_sV: _cil}), + (-1, {_sV: _cix}), + (-1, {_sV: _cixl}), + (-1, {_sV: _cixla}), + (-1, {_sV: _cixlar}), + (-1, {_sV: _cixlarg}), + (-1, {_sV: _cixlarge}), + (-1, {_sV: _cixlarge_}), + (-1, {_sV: _cixlarge__}), + (-1, {_sV: _cim}), + (-1, {_sV: _cc}), + (-1, {_sV: _ccx}), + (-1, {_sV: _cgxlarge_}), + (-1, {_sV: _crx}), + (-1, {_sV: _dxl}), + (-1, {_sV: _dxla}), + (-1, {_sV: _dxlar}), + (-1, {_sV: _dxlarg}), + (-1, {_sV: _dxlarge}), + (-1, {_sV: _dxlarge_}), + (-1, {_sV: _dxlarge__}), + (-1, {_sV: _dxlarge___}), + (-1, {_sV: _den}), + (-1, {_sV: _denx}), + (-1, {_sV: _denxl}), + (-1, {_sV: _denxla}), + (-1, {_sV: _denxlar}), + (-1, {_sV: _denxlarg}), + (-1, {_sV: _dl}), + (-1, {_sV: _fx}), + (-1, {_sV: _fxl}), + (-1, {_sV: _fxla}), + (-1, {_sV: _gx}), + (-1, {_sV: _gxl}), + (-1, {_sV: _gxla}), + (-1, {_sV: _gxlar}), + (-1, {_sV: _gxlarg}), + (-1, {_sV: _gs}), + (-1, {_sV: _ga}), + (-1, {_sV: _gad}), + (-1, {_sV: _gadx}), + (-1, {_sV: _gadxl}), + (-1, {_sV: _gadxla}), + (-1, {_sV: _gd}), + (-1, {_sV: _gdn}), + (-1, {_sV: _gdnx}), + (-1, {_sV: _gdnxl}), + (-1, {_sV: _gdnxla}), + (-1, {_sV: _gdnxlar}), + (-1, {_sV: _gdnm}), + (-1, {_sV: _gxlarge}), + (-1, {_sV: _gxlarge_}), + (-1, {_sV: _gxlarge__}), + (-1, {_sV: _gxlarge___}), + (-1, {_sV: _gxlarge____}), + (-1, {_sV: _gxlarge_____}), + (-1, {_sV: _gxlarge______}), + (-1, {_sV: _gxlarge_______}), + (-1, {_sV: _gg}), + (-1, {_sV: _ggx}), + (-1, {_sV: _ggxl}), + (-1, {_sV: _ggxla}), + (-1, {_sV: _ggxlar}), + (-1, {_sV: _ggm}), + (-1, {_sV: _hi}), + (-1, {_sV: _hp}), + (-1, {_sV: _hs}), + (-1, {_sV: _hx}), + (-1, {_sV: _hxl}), + (-1, {_sV: _hxla}), + (-1, {_sV: _hxlar}), + (-1, {_sV: _ixl}), + (-1, {_sV: _ixla}), + (-1, {_sV: _ixlar}), + (-1, {_sV: _ixlarg}), + (-1, {_sV: _ila}), + (-1, {_sV: _ixlarge}), + (-1, {_sV: _ixlarge_}), + (-1, {_sV: _ixlarge__}), + (-1, {_sV: _ixlarge___}), + (-1, {_sV: _ixlarge____}), + (-1, {_sV: _ime}), + (-1, {_sV: _ien}), + (-1, {_sV: _ienx}), + (-1, {_sV: _ienxl}), + (-1, {_sV: _ienxla}), + (-1, {_sV: _ienxlar}), + (-1, {_sV: _ienxlarg}), + (-1, {_sV: _ienxlarge}), + (-1, {_sV: _ienm}), + (-1, {_sV: _img}), + (-1, {_sV: _imgn}), + (-1, {_sV: _imgnx}), + (-1, {_sV: _imgnxl}), + (-1, {_sV: _imgnxla}), + (-1, {_sV: _imgnxlar}), + (-1, {_sV: _infx}), + (-1, {_sV: _infxl}), + (-1, {_sV: _infxla}), + (-1, {_sV: _infxlar}), + (-1, {_sV: _isg}), + (-1, {_sV: _isge}), + (-1, {_sV: _isgen}), + (-1, {_sV: _isgenx}), + (-1, {_sV: _isgenxl}), + (-1, {_sV: _isgenxla}), + (-1, {_sV: _msm}), + (-1, {_sV: _mme}), + (-1, {_sV: _mla}), + (-1, {_sV: _mxl}), + (-1, {_sV: _mxla}), + (-1, {_sV: _mxlar}), + (-1, {_sV: _mxlarg}), + (-1, {_sV: _mmed}), + (-1, {_sV: _mlar}), + (-1, {_sV: _mxlarge}), + (-1, {_sV: _mxlarge_}), + (-1, {_sV: _mlarg}), + (-1, {_sV: _mxlarge__}), + (-1, {_sV: _mxlarge___}), + (-1, {_sV: _mxlarge____}), + (-1, {_sV: _mxlarge_____}), + (-1, {_sV: _mxlarge______}), + (-1, {_sV: _mlarge}), + (-1, {_sV: _mxlarge_______}), + (-1, {_sV: _mxlarge________}), + (-1, {_sV: _mxlarge_________}), + (-1, {_sV: _mxlarge__________}), + (-1, {_sV: _mxlarge___________}), + (-1, {_sV: _mxlarge____________}), + (-1, {_sV: _mxlarge_____________}), + (-1, {_sV: _mmet}), + (-1, {_sV: _mal}), + (-1, {_sV: _max}), + (-1, {_sV: _maxl}), + (-1, {_sV: _maxla}), + (-1, {_sV: _maxlar}), + (-1, {_sV: _maxlarg}), + (-1, {_sV: _maxlarge}), + (-1, {_sV: _maxlarge_}), + (-1, {_sV: _mad}), + (-1, {_sV: _madx}), + (-1, {_sV: _madxl}), + (-1, {_sV: _madxla}), + (-1, {_sV: _madxlar}), + (-1, {_sV: _madxlarg}), + (-1, {_sV: _madxlarge}), + (-1, {_sV: _madxlarge_}), + (-1, {_sV: _md}), + (-1, {_sV: _mdx}), + (-1, {_sV: _mdxl}), + (-1, {_sV: _mdxla}), + (-1, {_sV: _mdxlar}), + (-1, {_sV: _mdxlarg}), + (-1, {_sV: _mdxlarge}), + (-1, {_sV: _mdxlarge_}), + (-1, {_sV: _mdm}), + (-1, {_sV: _mdn}), + (-1, {_sV: _mdnx}), + (-1, {_sV: _mdnxl}), + (-1, {_sV: _mdnxla}), + (-1, {_sV: _mdnxlar}), + (-1, {_sV: _mdnxlarg}), + (-1, {_sV: _mdnxlarge}), + (-1, {_sV: _mdnxlarge_}), + (-1, {_sV: _mdnm}), + (-1, {_sV: _mn}), + (-1, {_sV: _mnx}), + (-1, {_sV: _mnxl}), + (-1, {_sV: _mnxla}), + (-1, {_sV: _mnxlar}), + (-1, {_sV: _mnxlarg}), + (-1, {_sV: _mnxlarge}), + (-1, {_sV: _mnxlarge_}), + (-1, {_sV: _mnm}), + (-1, {_sV: _mz}), + (-1, {_sV: _mzn}), + (-1, {_sV: _mznx}), + (-1, {_sV: _mznxl}), + (-1, {_sV: _mznxla}), + (-1, {_sV: _mznxlar}), + (-1, {_sV: _mznm}), + (-1, {_sV: _mala}), + (-1, {_sV: _maxlarge__}), + (-1, {_sV: _maxlarge___}), + (-1, {_sV: _maxlarge____}), + (-1, {_sV: _maxlarge_____}), + (-1, {_sV: _maxlarge______}), + (-1, {_sV: _maxlarge_______}), + (-1, {_sV: _maxlarge________}), + (-1, {_sV: _maxlarge_________}), + (-1, {_sV: _maxlarge__________}), + (-1, {_sV: _mg}), + (-1, {_sV: _mgm}), + (-1, {_sV: _mgl}), + (-1, {_sV: _mgx}), + (-1, {_sV: _mgxl}), + (-1, {_sV: _mgxla}), + (-1, {_sV: _mgxlar}), + (-1, {_sV: _mgxlarg}), + (-1, {_sV: _mgxlarge}), + (-1, {_sV: _mgd}), + (-1, {_sV: _mgdm}), + (-1, {_sV: _mgdl}), + (-1, {_sV: _mgdx}), + (-1, {_sV: _mgdxl}), + (-1, {_sV: _mgdxla}), + (-1, {_sV: _mgdxlar}), + (-1, {_sV: _mgdxlarg}), + (-1, {_sV: _mgdxlarge}), + (-1, {_sV: _mi}), + (-1, {_sV: _mix}), + (-1, {_sV: _mixl}), + (-1, {_sV: _mixla}), + (-1, {_sV: _mixlar}), + (-1, {_sV: _mixlarg}), + (-1, {_sV: _mixlarge}), + (-1, {_sV: _mixlarge_}), + (-1, {_sV: _mixlarge__}), + (-1, {_sV: _mim}), + (-1, {_sV: _mac}), + (-1, {_sV: _pxl}), + (-1, {_sV: _pxla}), + (-1, {_sV: _pxlar}), + (-1, {_sV: _pxlarg}), + (-1, {_sV: _pxlarge}), + (-1, {_sV: _pxlarge_}), + (-1, {_sV: _pdn}), + (-1, {_sV: _pdx}), + (-1, {_sV: _rla}), + (-1, {_sV: _rxl}), + (-1, {_sV: _rxla}), + (-1, {_sV: _rxlar}), + (-1, {_sV: _rxlarg}), + (-1, {_sV: _rlar}), + (-1, {_sV: _rxlarge}), + (-1, {_sV: _rxlarge_}), + (-1, {_sV: _rxlarge__}), + (-1, {_sV: _rxlarge___}), + (-1, {_sV: _rxlarge____}), + (-1, {_sV: _rlarg}), + (-1, {_sV: _rxlarge_____}), + (-1, {_sV: _rxlarge______}), + (-1, {_sV: _rxlarge_______}), + (-1, {_sV: _rxlarge________}), + (-1, {_sV: _rxlarge_________}), + (-1, {_sV: _rxlarge__________}), + (-1, {_sV: _rxlarge___________}), + (-1, {_sV: _rme}), + (-1, {_sV: _ra}), + (-1, {_sV: _rax}), + (-1, {_sV: _raxl}), + (-1, {_sV: _raxla}), + (-1, {_sV: _raxlar}), + (-1, {_sV: _raxlarg}), + (-1, {_sV: _raxlarge}), + (-1, {_sV: _raxlarge_}), + (-1, {_sV: _rad}), + (-1, {_sV: _radx}), + (-1, {_sV: _radxl}), + (-1, {_sV: _radxla}), + (-1, {_sV: _radxlar}), + (-1, {_sV: _radxlarg}), + (-1, {_sV: _radxlarge}), + (-1, {_sV: _radxlarge_}), + (-1, {_sV: _rb}), + (-1, {_sV: _rbx}), + (-1, {_sV: _rbxl}), + (-1, {_sV: _rbxla}), + (-1, {_sV: _rbxlar}), + (-1, {_sV: _rbxlarg}), + (-1, {_sV: _rbxlarge}), + (-1, {_sV: _rbxlarge_}), + (-1, {_sV: _rbm}), + (-1, {_sV: _rdl}), + (-1, {_sV: _rdx}), + (-1, {_sV: _rdxl}), + (-1, {_sV: _rdxla}), + (-1, {_sV: _rdxlar}), + (-1, {_sV: _rdxlarg}), + (-1, {_sV: _rdxlarge}), + (-1, {_sV: _rdxlarge_}), + (-1, {_sV: _rdm}), + (-1, {_sV: _rdn}), + (-1, {_sV: _rdnx}), + (-1, {_sV: _rdnxl}), + (-1, {_sV: _rdnxla}), + (-1, {_sV: _rdnxlar}), + (-1, {_sV: _rdnxlarg}), + (-1, {_sV: _rdnxlarge}), + (-1, {_sV: _rdnxlarge_}), + (-1, {_sV: _rdnm}), + (-1, {_sV: _rnl}), + (-1, {_sV: _rnx}), + (-1, {_sV: _rnxl}), + (-1, {_sV: _rnxla}), + (-1, {_sV: _rnxlar}), + (-1, {_sV: _rnxlarg}), + (-1, {_sV: _rnxlarge}), + (-1, {_sV: _rnxlarge_}), + (-1, {_sV: _rnm}), + (-1, {_sV: _rg}), + (-1, {_sV: _rgl}), + (-1, {_sV: _rgx}), + (-1, {_sV: _rgxl}), + (-1, {_sV: _rgxla}), + (-1, {_sV: _rgxlar}), + (-1, {_sV: _rgxlarg}), + (-1, {_sV: _rgxlarge}), + (-1, {_sV: _rgm}), + (-1, {_sV: _rgd}), + (-1, {_sV: _rgdl}), + (-1, {_sV: _rgdx}), + (-1, {_sV: _rgdxl}), + (-1, {_sV: _rgdxla}), + (-1, {_sV: _rgdxlar}), + (-1, {_sV: _rgdxlarg}), + (-1, {_sV: _rgdxlarge}), + (-1, {_sV: _rgdm}), + (-1, {_sV: _ril}), + (-1, {_sV: _rix}), + (-1, {_sV: _rixl}), + (-1, {_sV: _rixla}), + (-1, {_sV: _rixlar}), + (-1, {_sV: _rixlarg}), + (-1, {_sV: _rixlarge}), + (-1, {_sV: _rixlarge_}), + (-1, {_sV: _rixlarge__}), + (-1, {_sV: _rim}), + (-1, {_sV: _tmi}), + (-1, {_sV: _tna}), + (-1, {_sV: _tmic}), + (-1, {_sV: _tsm}), + (-1, {_sV: _tme}), + (-1, {_sV: _tla}), + (-1, {_sV: _txl}), + (-1, {_sV: _txla}), + (-1, {_sV: _tnan}), + (-1, {_sV: _tmicr}), + (-1, {_sV: _tsma}), + (-1, {_sV: _tmed}), + (-1, {_sV: _tlar}), + (-1, {_sV: _txlar}), + (-1, {_sV: _txlarg}), + (-1, {_sV: _tan}), + (-1, {_sV: _tam}), + (-1, {_sV: _tas}), + (-1, {_sV: _tame}), + (-1, {_sV: _tal}), + (-1, {_sV: _tax}), + (-1, {_sV: _taxl}), + (-1, {_sV: _tgn}), + (-1, {_sV: _tgm}), + (-1, {_sV: _tgs}), + (-1, {_sV: _tgme}), + (-1, {_sV: _tgl}), + (-1, {_sV: _tgx}), + (-1, {_sV: _tgxl}), + (-1, {_sV: _u__}), + (-1, {_sV: _u____}), + (-1, {_sV: _u______}), + (-1, {_sV: _u________}), + (-1, {_sV: _u_________}), + (-1, {_sV: _u__________}), + (-1, {_sV: _u___________}), + (-1, {_sV: _u____________}), + (-1, {_sV: _u_____________}), + (-1, {_sV: _vt}), + (-1, {_sV: _vtx}), + (-1, {_sV: _vtxl}), + (-1, {_sV: _xx}), + (-1, {_sV: _xxl}), + (-1, {_sV: _xe}), + (-1, {_sV: _xex}), + (-1, {_sV: _xexl}), + (-1, {_sV: _xexla}), + (-1, {_sV: _xexlar}), + (-1, {_sV: _xexlarg}), + (-1, {_sV: _xi}), + (-1, {_sV: _xie}), + (-1, {_sV: _xiez}), + (-1, {_sV: _xiezn}), + (-1, {_sV: _xieznx}), + (-1, {_sV: _xieznm}), + (-1, {_sV: _xg}), + (-1, {_sV: _xgd}), + (-1, {_sV: _xgdx}), + (-1, {_sV: _xgdxl}), + (-1, {_sV: _xgdxla}), + (-1, {_sV: _xgdxlar}), + (-1, {_sV: _xgdxlarg}), + (-1, {_sV: _xgdxlarge}), + (-1, {_sV: _xgdm}), + (-1, {_sV: _z}), + (-1, {_sV: _zd}), + (-1, {_sV: _zdx}), + (-1, {_sV: _zdxl}), + (-1, {_sV: _zdxla}), + (-1, {_sV: _zdxlar}), + (-1, {_sV: _zdm}), + (-1, {_sV: _xid}), + (-1, {_sV: _xidn}), + (-1, {_sV: _xidnx}), + (-1, {_sV: _xied}), + (-1, {_sV: _xiedn}), + (-1, {_sV: _xiednx}), + (-1, {_sV: _xiednxl}), + (-1, {_sV: _xiednxla}), + (-1, {_sV: _xiednxlar}), + (-1, {_sV: _xiednxlarg}), + (-1, {_sV: _cala}), + (-1, {_sV: _caxlarge__}), + (-1, {_sV: _caxlarge___}), + (-1, {_sV: _caxlarge____}), + (-1, {_sV: _caxlarge_____}), + (-1, {_sV: _caxlarge______}), + (-1, {_sV: _caxlarge_______}), + (-1, {_sV: _caxlarge________}), + (-1, {_sV: _caxlarge_________}), + (-1, {_sV: _caxlarge__________}), + (-1, {_sV: _cam}), + (-1, {_sV: _mam}), + (-1, {_sV: _ii}), + (-1, {_sV: _iix}), + (-1, {_sV: _iixl}), + (-1, {_sV: _iixla}), + (-1, {_sV: _iixlar}), + (-1, {_sV: _iixlarg}), + (-1, {_sV: _iixlarge}), + (-1, {_sV: _iim}), + (-1, {_sV: _xidnm}), + (-1, {_sV: _xiednm}), + (-1, {_sV: _cgmed}), + (-1, {_sV: _cgla}), + (-1, {_sV: _cgxlarge__}), + (-1, {_sV: _cgxlarge___}), + (-1, {_sV: _cgxlarge____}), + (-1, {_sV: _cgxlarge_____}), + (-1, {_sV: _cgxlarge______}), + (-1, {_sV: _cgxlarge_______}), + (-1, {_sV: _macm}), + (-1, {_sV: _cid}), + (-1, {_sV: _cidx}), + (-1, {_sV: _cidxl}), + (-1, {_sV: _cidxla}), + (-1, {_sV: _cidxlar}), + (-1, {_sV: _cidxlarg}), + (-1, {_sV: _cidxlarge}), + (-1, {_sV: _cidxlarge_}), + (-1, {_sV: _cidxlarge__}), + (-1, {_sV: _cidm}), + (-1, {_sV: _mid}), + (-1, {_sV: _midx}), + (-1, {_sV: _midxl}), + (-1, {_sV: _midxla}), + (-1, {_sV: _midxlar}), + (-1, {_sV: _midxlarg}), + (-1, {_sV: _midxlarge}), + (-1, {_sV: _midxlarge_}), + (-1, {_sV: _midxlarge__}), + (-1, {_sV: _midm}), + (-1, {_sV: _rid}), + (-1, {_sV: _ridx}), + (-1, {_sV: _ridxl}), + (-1, {_sV: _ridxla}), + (-1, {_sV: _ridxlar}), + (-1, {_sV: _ridxlarg}), + (-1, {_sV: _ridxlarge}), + (-1, {_sV: _ridxlarge_}), + (-1, {_sV: _ridxlarge__}), + (-1, {_sV: _ridm}), + (-1, {_sV: _ral}), + (-1, {_sV: _raxlarge__}), + (-1, {_sV: _raxlarge___}), + (-1, {_sV: _raxlarge____}), + (-1, {_sV: _raxlarge_____}), + (-1, {_sV: _raxlarge______}), + (-1, {_sV: _raxlarge_______}), + (-1, {_sV: _raxlarge________}), + (-1, {_sV: _raxlarge_________}), + (-1, {_sV: _raxlarge__________}), + (-1, {_sV: _ram}), + (-1, {_sV: _pde}), + (-1, {_sV: _u_______________}), + (-1, {_sV: _u_________________}), + (-1, {_sV: _u___________________}), + (-1, {_sV: _trn}), + (-1, {_sV: _trnx}), + (-1, {_sV: _hpc}), + (-1, {_sV: _cin}), + (-1, {_sV: _cinx}), + (-1, {_sV: _cinxl}), + (-1, {_sV: _cinxla}), + (-1, {_sV: _cinxlar}), + (-1, {_sV: _cinxlarg}), + (-1, {_sV: _cinxlarge}), + (-1, {_sV: _cinxlarge_}), + (-1, {_sV: _cinxlarge__}), + (-1, {_sV: _min}), + (-1, {_sV: _minx}), + (-1, {_sV: _minxl}), + (-1, {_sV: _minxla}), + (-1, {_sV: _minxlar}), + (-1, {_sV: _minxlarg}), + (-1, {_sV: _minxlarge}), + (-1, {_sV: _minxlarge_}), + (-1, {_sV: _minxlarge__}), + (-1, {_sV: _midn}), + (-1, {_sV: _midnx}), + (-1, {_sV: _midnxl}), + (-1, {_sV: _midnxla}), + (-1, {_sV: _midnxlar}), + (-1, {_sV: _midnxlarg}), + (-1, {_sV: _midnxlarge}), + (-1, {_sV: _midnxlarge_}), + (-1, {_sV: _midnxlarge__}), + (-1, {_sV: _rin}), + (-1, {_sV: _rinx}), + (-1, {_sV: _rinxl}), + (-1, {_sV: _rinxla}), + (-1, {_sV: _rinxlar}), + (-1, {_sV: _rinxlarg}), + (-1, {_sV: _rinxlarge}), + (-1, {_sV: _rinxlarge_}), + (-1, {_sV: _rinxlarge__}), + (-1, {_sV: _ridn}), + (-1, {_sV: _ridnx}), + (-1, {_sV: _ridnxl}), + (-1, {_sV: _ridnxla}), + (-1, {_sV: _ridnxlar}), + (-1, {_sV: _ridnxlarg}), + (-1, {_sV: _ridnxlarge}), + (-1, {_sV: _ridnxlarge_}), + (-1, {_sV: _ridnxlarge__}), + (-1, {_sV: _cgmet}), + (-1, {_sV: _mgme}), + (-1, {_sV: _mgla}), + (-1, {_sV: _mgxlarge_}), + (-1, {_sV: _mgxlarge__}), + (-1, {_sV: _mgxlarge___}), + (-1, {_sV: _mgxlarge____}), + (-1, {_sV: _mgxlarge_____}), + (-1, {_sV: _mgxlarge______}), + (-1, {_sV: _mgmet}), + (-1, {_sV: _rgme}), + (-1, {_sV: _rgla}), + (-1, {_sV: _rgxlarge_}), + (-1, {_sV: _rgxlarge__}), + (-1, {_sV: _rgxlarge___}), + (-1, {_sV: _rgxlarge____}), + (-1, {_sV: _rgxlarge_____}), + (-1, {_sV: _rgxlarge______}), + (-1, {_sV: _rgmet}), + (-1, {_sV: _cinm}), + (-1, {_sV: _minm}), + (-1, {_sV: _midnm}), + (-1, {_sV: _rinm}), + (-1, {_sV: _ridnm}), + (-1, {_sV: _infxlarg}), + (-1, {_sV: _infxlarge}), + (-1, {_sV: _infxlarge_}), + (-1, {_sV: _infxlarge__}), + (-1, {_sV: _trnn}), + (-1, {_sV: _igl}), + (-1, {_sV: _igx}), + (-1, {_sV: _igxl}), + (-1, {_sV: _igxla}), + (-1, {_sV: _igxlar}), + (-1, {_sV: _igxlarg}), + (-1, {_sV: _hpcg}), + (-1, {_sV: _hpcgx}), + (-1, {_sV: _hpcgxl}), + (-1, {_sV: _cgnm}), + (-1, {_sV: _cgnla}), + (-1, {_sV: _cgnxlarge_}), + (-1, {_sV: _cgnxlarge__}), + (-1, {_sV: _cgnxlarge___}), + (-1, {_sV: _cgnxlarge____}), + (-1, {_sV: _cgnxlarge_____}), + (-1, {_sV: _cgnxlarge______}), + (-1, {_sV: _pxlarge__}), + (-1, {_sV: _mil}), + (-1, {_sV: _mixlarge___}), + (-1, {_sV: _mixlarge____}), + (-1, {_sV: _mixlarge_____}), + (-1, {_sV: _mixlarge______}), + (-1, {_sV: _mixlarge_______}), + (-1, {_sV: _mixlarge________}), + (-1, {_sV: _mixlarge_________}), + (-1, {_sV: _mixlarge__________}), + (-1, {_sV: _mf}), + (-1, {_sV: _mf_}), + (-1, {_sV: _mf___}), + (-1, {_sV: _mf_____}), + (-1, {_sV: _mf_______}), + (-1, {_sV: _mame}), + (-1, {_sV: _malar}), + (-1, {_sV: _maxlarge___________}), + (-1, {_sV: _maxlarge____________}), + (-1, {_sV: _maxlarge_____________}), + (-1, {_sV: _maxlarge______________}), + (-1, {_sV: _maxlarge_______________}), + (-1, {_sV: _maxlarge________________}), + (-1, {_sV: _maxlarge_________________}), + (-1, {_sV: _maxlarge__________________}), + (-1, {_sV: _maxlarge___________________}), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _hpca}), + (-1, {_sV: _hpcax}), + (-1, {_sV: _hpcaxl}), + (-1, {_sV: _hpcaxla}), + (-1, {_sV: _cgdme}), + (-1, {_sV: _cgdla}), + (-1, {_sV: _cgdxlarge_}), + (-1, {_sV: _cgdxlarge__}), + (-1, {_sV: _cgdxlarge___}), + (-1, {_sV: _cgdxlarge____}), + (-1, {_sV: _cgdxlarge_____}), + (-1, {_sV: _cgdxlarge______}), + (-1, {_sV: _mgdme}), + (-1, {_sV: _mgdla}), + (-1, {_sV: _mgdxlarge_}), + (-1, {_sV: _mgdxlarge__}), + (-1, {_sV: _mgdxlarge___}), + (-1, {_sV: _mgdxlarge____}), + (-1, {_sV: _mgdxlarge_____}), + (-1, {_sV: _mgdxlarge______}), + (-1, {_sV: _rgdme}), + (-1, {_sV: _rgdla}), + (-1, {_sV: _rgdxlarge_}), + (-1, {_sV: _rgdxlarge__}), + (-1, {_sV: _rgdxlarge___}), + (-1, {_sV: _rgdxlarge____}), + (-1, {_sV: _rgdxlarge_____}), + (-1, {_sV: _rgdxlarge______}), + (-1, {_sV: _rame}), + (-1, {_sV: _rala}), + (-1, {_sV: _raxlarge___________}), + (-1, {_sV: _raxlarge____________}), + (-1, {_sV: _raxlarge_____________}), + (-1, {_sV: _raxlarge______________}), + (-1, {_sV: _raxlarge_______________}), + (-1, {_sV: _raxlarge________________}), + (-1, {_sV: _raxlarge_________________}), + (-1, {_sV: _raxlarge__________________}), + (-1, {_sV: _raxlarge___________________}), + (-1, {_sV: _cila}), + (-1, {_sV: _cixlarge___}), + (-1, {_sV: _cixlarge____}), + (-1, {_sV: _cixlarge_____}), + (-1, {_sV: _cixlarge______}), + (-1, {_sV: _cixlarge_______}), + (-1, {_sV: _cixlarge________}), + (-1, {_sV: _cixlarge_________}), + (-1, {_sV: _cixlarge__________}), + (-1, {_sV: _mm_______________________}), + (-1, {_sV: _riz}), + (-1, {_sV: _rizx}), + (-1, {_sV: _rizxl}), + (-1, {_sV: _rizxla}), + (-1, {_sV: _rizxlar}), + (-1, {_sV: _rizxlarg}), + (-1, {_sV: _rizxlarge}), + (-1, {_sV: _rizxlarge_}), + (-1, {_sV: _came}), + (-1, {_sV: _calar}), + (-1, {_sV: _caxlarge___________}), + (-1, {_sV: _caxlarge____________}), + (-1, {_sV: _caxlarge_____________}), + (-1, {_sV: _caxlarge______________}), + (-1, {_sV: _caxlarge_______________}), + (-1, {_sV: _caxlarge________________}), + (-1, {_sV: _caxlarge_________________}), + (-1, {_sV: _caxlarge__________________}), + (-1, {_sV: _caxlarge___________________}), + ( + -1, + { + _sV: _c_________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rila}), + (-1, {_sV: _rixlarge___}), + (-1, {_sV: _rixlarge____}), + (-1, {_sV: _rixlarge_____}), + (-1, {_sV: _rixlarge______}), + (-1, {_sV: _rixlarge_______}), + (-1, {_sV: _rixlarge________}), + (-1, {_sV: _rixlarge_________}), + (-1, {_sV: _rixlarge__________}), + (-1, {_sV: _dlq}), + (-1, {_sV: _mm________________________}), + (-1, {_sV: _iixlarge_}), + (-1, {_sV: _iixlarge__}), + ( + -1, + { + _sV: _c__________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c___________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m__________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r__________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r___________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cgdmet}), + (-1, {_sV: _mgdmet}), + (-1, {_sV: _rgdmet}), + (-1, {_sV: _gxlarge________}), + (-1, {_sV: _gxlarge_________}), + (-1, {_sV: _gxlarge__________}), + (-1, {_sV: _gxlarge___________}), + (-1, {_sV: _gxlarge____________}), + (-1, {_sV: _gxlarge_____________}), + (-1, {_sV: _gxlarge______________}), + (-1, {_sV: _gxlarge_______________}), + (-1, {_sV: _grx}), + (-1, {_sV: _grxl}), + (-1, {_sV: _cf}), + (-1, {_sV: _cf_}), + (-1, {_sV: _cf___}), + (-1, {_sV: _cf_____}), + (-1, {_sV: _cf_______}), + (-1, {_sV: _u_____________________}), + (-1, {_sV: _u_______________________}), + (-1, {_sV: _u_________________________}), + (-1, {_sV: _u___________________________}), + (-1, {_sV: _u_____________________________}), + (-1, {_sV: _cgnme}), + (-1, {_sV: _rgmed}), + (-1, {_sV: _rglar}), + (-1, {_sV: _rgxlarge_______}), + (-1, {_sV: _rgxlarge________}), + (-1, {_sV: _rgxlarge_________}), + (-1, {_sV: _rgxlarge__________}), + (-1, {_sV: _rgxlarge___________}), + (-1, {_sV: _rgxlarge____________}), + (-1, {_sV: _rgxlarge_____________}), + (-1, {_sV: _rgxlarge______________}), + ( + -1, + { + _sV: _r___________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r____________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mm____________________________}), + (-1, {_sV: _ge}), + (-1, {_sV: _gex}), + (-1, {_sV: _gexl}), + (-1, {_sV: _gexla}), + (-1, {_sV: _gexlar}), + (-1, {_sV: _gexlarg}), + (-1, {_sV: _gexlarge}), + (-1, {_sV: _gexlarge_}), + (-1, {_sV: _cgmedi}), + (-1, {_sV: _cglar}), + (-1, {_sV: _cgxlarge________}), + (-1, {_sV: _cgxlarge_________}), + (-1, {_sV: _cgxlarge__________}), + (-1, {_sV: _cgxlarge___________}), + (-1, {_sV: _cgxlarge____________}), + (-1, {_sV: _cgxlarge_____________}), + (-1, {_sV: _cgxlarge______________}), + (-1, {_sV: _cgxlarge_______________}), + ( + -1, + { + _sV: _c___________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c____________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgmed}), + (-1, {_sV: _mglar}), + (-1, {_sV: _mgxlarge_______}), + (-1, {_sV: _mgxlarge________}), + (-1, {_sV: _mgxlarge_________}), + (-1, {_sV: _mgxlarge__________}), + (-1, {_sV: _mgxlarge___________}), + (-1, {_sV: _mgxlarge____________}), + (-1, {_sV: _mgxlarge_____________}), + (-1, {_sV: _mgxlarge______________}), + ( + -1, + { + _sV: _m__________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _xgm}), + (-1, {_sV: _xgl}), + (-1, {_sV: _xgx}), + (-1, {_sV: _xgxl}), + (-1, {_sV: _xgxla}), + (-1, {_sV: _xgxlar}), + (-1, {_sV: _xgxlarg}), + (-1, {_sV: _xgxlarge}), + (-1, {_sV: _xgxlarge_}), + (-1, {_sV: _xgxlarge__}), + (-1, {_sV: _x__________________________________}), + (-1, {_sV: _x___________________________________}), + (-1, {_sV: _iie}), + (-1, {_sV: _iiex}), + (-1, {_sV: _iiexl}), + (-1, {_sV: _iiexla}), + (-1, {_sV: _iiexlar}), + (-1, {_sV: _iiexlarg}), + (-1, {_sV: _iiexlarge}), + (-1, {_sV: _iiexlarge_}), + (-1, {_sV: _iiexlarge__}), + (-1, {_sV: _igla}), + (-1, {_sV: _igxlarge}), + (-1, {_sV: _igxlarge_}), + (-1, {_sV: _igxlarge__}), + (-1, {_sV: _igxlarge___}), + (-1, {_sV: _igxlarge____}), + (-1, {_sV: _igxlarge_____}), + (-1, {_sV: _igxlarge______}), + (-1, {_sV: _i__________________________________________________}), + (-1, {_sV: _u_______________________________}), + (-1, {_sV: _u_________________________________}), + (-1, {_sV: _u___________________________________}), + (-1, {_sV: _pex}), + (-1, {_sV: _pen}), + (-1, {_sV: _fxlar}), + (-1, {_sV: _fxlarg}), + (-1, {_sV: _trnxl}), + (-1, {_sV: _cf_________}), + (-1, {_sV: _cf___________}), + (-1, {_sV: _mf_________}), + (-1, {_sV: _mf___________}), + (-1, {_sV: _i___________________________________________________}), + (-1, {_sV: _i____________________________________________________}), + (-1, {_sV: _igxlarge_______}), + (-1, {_sV: _cgdmed}), + (-1, {_sV: _cgdlar}), + (-1, {_sV: _cgdxlarge_______}), + (-1, {_sV: _cgdxlarge________}), + (-1, {_sV: _cgdxlarge_________}), + (-1, {_sV: _cgdxlarge__________}), + (-1, {_sV: _cgdxlarge___________}), + (-1, {_sV: _cgdxlarge____________}), + (-1, {_sV: _cgdxlarge_____________}), + (-1, {_sV: _cgdxlarge______________}), + ( + -1, + { + _sV: _c____________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c_____________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _iil}), + (-1, {_sV: _iixlarge___}), + (-1, {_sV: _iixlarge____}), + (-1, {_sV: _iixlarge_____}), + (-1, {_sV: _iixlarge______}), + (-1, {_sV: _iixlarge_______}), + (-1, {_sV: _iixlarge________}), + (-1, {_sV: _iixlarge_________}), + (-1, {_sV: _iixlarge__________}), + (-1, {_sV: _i_____________________________________________________________}), + (-1, {_sV: _i______________________________________________________________}), + (-1, {_sV: _pb_}), + (-1, {_sV: _mgdmed}), + (-1, {_sV: _mgdlar}), + (-1, {_sV: _mgdxlarge_______}), + (-1, {_sV: _mgdxlarge________}), + (-1, {_sV: _mgdxlarge_________}), + (-1, {_sV: _mgdxlarge__________}), + (-1, {_sV: _mgdxlarge___________}), + (-1, {_sV: _mgdxlarge____________}), + (-1, {_sV: _mgdxlarge_____________}), + (-1, {_sV: _mgdxlarge______________}), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m____________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rgdmed}), + (-1, {_sV: _rgdlar}), + (-1, {_sV: _rgdxlarge_______}), + (-1, {_sV: _rgdxlarge________}), + (-1, {_sV: _rgdxlarge_________}), + (-1, {_sV: _rgdxlarge__________}), + (-1, {_sV: _rgdxlarge___________}), + (-1, {_sV: _rgdxlarge____________}), + (-1, {_sV: _rgdxlarge_____________}), + (-1, {_sV: _rgdxlarge______________}), + ( + -1, + { + _sV: _r____________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_____________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cgnmed}), + (-1, {_sV: _cgnlar}), + (-1, {_sV: _cgnxlarge_______}), + (-1, {_sV: _cgnxlarge________}), + (-1, {_sV: _cgnxlarge_________}), + (-1, {_sV: _cgnxlarge__________}), + (-1, {_sV: _cgnxlarge___________}), + (-1, {_sV: _cgnxlarge____________}), + (-1, {_sV: _cgnxlarge_____________}), + (-1, {_sV: _cgnxlarge______________}), + ( + -1, + { + _sV: _c_____________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c______________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _fxlarge}), + (-1, {_sV: _pg___}), + (-1, {_sV: _gf}), + (-1, {_sV: _gfx}), + (-1, {_sV: _gfxl}), + (-1, {_sV: _gfxla}), + (-1, {_sV: _grf}), + (-1, {_sV: _pxlarge___}), + (-1, {_sV: _rilar}), + (-1, {_sV: _rixlarge___________}), + (-1, {_sV: _rixlarge____________}), + (-1, {_sV: _rixlarge_____________}), + (-1, {_sV: _rixlarge______________}), + (-1, {_sV: _rixlarge_______________}), + (-1, {_sV: _rixlarge________________}), + (-1, {_sV: _rixlarge_________________}), + (-1, {_sV: _rixlarge__________________}), + (-1, {_sV: _rixlarge___________________}), + (-1, {_sV: _rixlarge____________________}), + ( + -1, + { + _sV: _r_______________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rf}), + (-1, {_sV: _rf_}), + (-1, {_sV: _rf___}), + (-1, {_sV: _rf_____}), + (-1, {_sV: _rf_______}), + (-1, {_sV: _rf_________}), + (-1, {_sV: _rf___________}), + (-1, {_sV: _mila}), + (-1, {_sV: _mixlarge___________}), + (-1, {_sV: _mixlarge____________}), + (-1, {_sV: _mixlarge_____________}), + (-1, {_sV: _mixlarge______________}), + (-1, {_sV: _mixlarge_______________}), + (-1, {_sV: _mixlarge________________}), + (-1, {_sV: _mixlarge_________________}), + (-1, {_sV: _mixlarge__________________}), + (-1, {_sV: _mixlarge___________________}), + (-1, {_sV: _mixlarge____________________}), + ( + -1, + { + _sV: _m______________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_______________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mf____________}), + (-1, {_sV: _mf_____________}), + (-1, {_sV: _mf_______________}), + (-1, {_sV: _mf_________________}), + (-1, {_sV: _mf___________________}), + (-1, {_sV: _mf_____________________}), + (-1, {_sV: _mf_______________________}), + (-1, {_sV: _ige}), + (-1, {_sV: _igex}), + (-1, {_sV: _igexl}), + (-1, {_sV: _igexla}), + (-1, {_sV: _igexlar}), + (-1, {_sV: _igexlarg}), + (-1, {_sV: _igexlarge}), + (-1, {_sV: _igexlarge_}), + (-1, {_sV: _igexlarge__}), + ( + -1, + { + _sV: _i______________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _i_______________________________________________________________________ + }, + ), + (-1, {_sV: _mm_____________________________________}), + (-1, {_sV: _mm______________________________________}), + (-1, {_sV: _rgn}), + (-1, {_sV: _rgnl}), + (-1, {_sV: _rgnx}), + (-1, {_sV: _rgnxl}), + (-1, {_sV: _rgnxla}), + (-1, {_sV: _rgnxlar}), + (-1, {_sV: _rgnxlarg}), + (-1, {_sV: _rgnxlarge}), + (-1, {_sV: _rgnxlarge_}), + (-1, {_sV: _rgnxlarge__}), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cilar}), + (-1, {_sV: _cixlarge___________}), + (-1, {_sV: _cixlarge____________}), + (-1, {_sV: _cixlarge_____________}), + (-1, {_sV: _cixlarge______________}), + (-1, {_sV: _cixlarge_______________}), + (-1, {_sV: _cixlarge________________}), + (-1, {_sV: _cixlarge_________________}), + (-1, {_sV: _cixlarge__________________}), + (-1, {_sV: _cixlarge___________________}), + (-1, {_sV: _cixlarge____________________}), + ( + -1, + { + _sV: _c________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c_________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cf____________}), + (-1, {_sV: _cf_____________}), + (-1, {_sV: _cf_______________}), + (-1, {_sV: _cf_________________}), + (-1, {_sV: _cf___________________}), + (-1, {_sV: _cf_____________________}), + (-1, {_sV: _cf_______________________}), + (-1, {_sV: _rgb}), + (-1, {_sV: _rgbl}), + (-1, {_sV: _rgbx}), + (-1, {_sV: _rgbxl}), + (-1, {_sV: _rgbxla}), + (-1, {_sV: _rgbxlar}), + (-1, {_sV: _rgbxlarg}), + (-1, {_sV: _rgbxlarge}), + (-1, {_sV: _rgbxlarge_}), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mamed}), + (-1, {_sV: _malarg}), + (-1, {_sV: _maxlarge____________________}), + (-1, {_sV: _maxlarge_____________________}), + (-1, {_sV: _maxlarge______________________}), + (-1, {_sV: _maxlarge_______________________}), + (-1, {_sV: _maxlarge________________________}), + (-1, {_sV: _maxlarge_________________________}), + (-1, {_sV: _maxlarge__________________________}), + (-1, {_sV: _maxlarge___________________________}), + ( + -1, + { + _sV: _m_______________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _trnxla}), + (-1, {_sV: _ramed}), + (-1, {_sV: _ralar}), + (-1, {_sV: _raxlarge____________________}), + (-1, {_sV: _raxlarge_____________________}), + (-1, {_sV: _raxlarge______________________}), + (-1, {_sV: _raxlarge_______________________}), + (-1, {_sV: _raxlarge________________________}), + (-1, {_sV: _raxlarge_________________________}), + (-1, {_sV: _raxlarge__________________________}), + (-1, {_sV: _raxlarge___________________________}), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _pb___}), + (-1, {_sV: _camed}), + (-1, {_sV: _calarg}), + (-1, {_sV: _caxlarge____________________}), + (-1, {_sV: _caxlarge_____________________}), + (-1, {_sV: _caxlarge______________________}), + (-1, {_sV: _caxlarge_______________________}), + (-1, {_sV: _caxlarge________________________}), + (-1, {_sV: _caxlarge_________________________}), + (-1, {_sV: _caxlarge__________________________}), + (-1, {_sV: _caxlarge___________________________}), + ( + -1, + { + _sV: _c_________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c__________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cgb}), + (-1, {_sV: _cgbx}), + (-1, {_sV: _cgbxl}), + (-1, {_sV: _cgbxla}), + (-1, {_sV: _cgbxlar}), + (-1, {_sV: _cgbxlarg}), + (-1, {_sV: _cgbl}), + (-1, {_sV: _cgbm}), + ( + -1, + { + _sV: _c_________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cgbxlarge}), + (-1, {_sV: _cgbxlarge_}), + ( + -1, + { + _sV: _c___________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgb}), + (-1, {_sV: _mgbx}), + (-1, {_sV: _mgbxl}), + (-1, {_sV: _mgbxla}), + (-1, {_sV: _mgbxlar}), + (-1, {_sV: _mgbxlarg}), + (-1, {_sV: _mgbl}), + (-1, {_sV: _mgbm}), + (-1, {_sV: _mgbxlarge}), + (-1, {_sV: _mgbxlarge_}), + ( + -1, + { + _sV: _m________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgn}), + (-1, {_sV: _mgnx}), + (-1, {_sV: _mgnxl}), + (-1, {_sV: _mgnxla}), + (-1, {_sV: _mgnxlar}), + (-1, {_sV: _mgnxlarg}), + (-1, {_sV: _mgnxlarge}), + (-1, {_sV: _mgnl}), + (-1, {_sV: _mgnm}), + (-1, {_sV: _mgnxlarge_}), + ( + -1, + { + _sV: _m_________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m__________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _xa}), + (-1, {_sV: _xae}), + (-1, {_sV: _xaed}), + (-1, {_sV: _xaedz}), + (-1, {_sV: _xaedzl}), + (-1, {_sV: _x________________________________________}), + (-1, {_sV: _x_________________________________________}), + (-1, {_sV: _xaedzx}), + (-1, {_sV: _maz}), + (-1, {_sV: _mazn}), + (-1, {_sV: _maznx}), + (-1, {_sV: _maznxl}), + (-1, {_sV: _maznxla}), + (-1, {_sV: _maznxlar}), + (-1, {_sV: _maznxlarg}), + ( + -1, + { + _sV: _m_______________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _xil}), + (-1, {_sV: _xix}), + (-1, {_sV: _xixl}), + (-1, {_sV: _xixla}), + (-1, {_sV: _xixlar}), + (-1, {_sV: _xixlarg}), + (-1, {_sV: _xixlarge}), + (-1, {_sV: _xixlarge_}), + (-1, {_sV: _xixlarge__}), + (-1, {_sV: _xixlarge___}), + (-1, {_sV: _xixlarge____}), + (-1, {_sV: _xixlarge_____}), + (-1, {_sV: _x____________________________________________________}), + (-1, {_sV: _x_____________________________________________________}), + (-1, {_sV: _mm___________________________________________________}), + (-1, {_sV: _gexlarge__}), + (-1, {_sV: _gexlarge___}), + (-1, {_sV: _gexlarge____}), + (-1, {_sV: _gexlarge_____}), + (-1, {_sV: _gexlarge______}), + (-1, {_sV: _gexlarge_______}), + (-1, {_sV: _ridl}), + (-1, {_sV: _ridxlarge___}), + (-1, {_sV: _ridxlarge____}), + (-1, {_sV: _ridxlarge_____}), + (-1, {_sV: _ridxlarge______}), + (-1, {_sV: _ridxlarge_______}), + (-1, {_sV: _ridxlarge________}), + (-1, {_sV: _ridxlarge_________}), + (-1, {_sV: _ridxlarge__________}), + (-1, {_sV: _ridxlarge___________}), + (-1, {_sV: _ridxlarge____________}), + ( + -1, + { + _sV: _r___________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r____________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cidl}), + (-1, {_sV: _cidxlarge___}), + (-1, {_sV: _cidxlarge____}), + (-1, {_sV: _cidxlarge_____}), + (-1, {_sV: _cidxlarge______}), + (-1, {_sV: _cidxlarge_______}), + (-1, {_sV: _cidxlarge________}), + (-1, {_sV: _cidxlarge_________}), + (-1, {_sV: _cidxlarge__________}), + (-1, {_sV: _cidxlarge___________}), + (-1, {_sV: _cidxlarge____________}), + ( + -1, + { + _sV: _c_____________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c______________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _midl}), + (-1, {_sV: _midxlarge___}), + (-1, {_sV: _midxlarge____}), + (-1, {_sV: _midxlarge_____}), + (-1, {_sV: _midxlarge______}), + (-1, {_sV: _midxlarge_______}), + (-1, {_sV: _midxlarge________}), + (-1, {_sV: _midxlarge_________}), + (-1, {_sV: _midxlarge__________}), + (-1, {_sV: _midxlarge___________}), + (-1, {_sV: _midxlarge____________}), + ( + -1, + { + _sV: _m__________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _hpcaxlar}), + (-1, {_sV: _cinl}), + (-1, {_sV: _cinxlarge___}), + (-1, {_sV: _cinxlarge____}), + (-1, {_sV: _cinxlarge_____}), + (-1, {_sV: _cinxlarge______}), + (-1, {_sV: _cinxlarge_______}), + (-1, {_sV: _cinxlarge________}), + (-1, {_sV: _cinxlarge_________}), + (-1, {_sV: _cinxlarge__________}), + (-1, {_sV: _cinxlarge___________}), + (-1, {_sV: _cinxlarge____________}), + ( + -1, + { + _sV: _c________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c_________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cib}), + (-1, {_sV: _cibx}), + (-1, {_sV: _cibxl}), + (-1, {_sV: _cibxla}), + (-1, {_sV: _cibxlar}), + (-1, {_sV: _cibxlarg}), + (-1, {_sV: _cibxlarge}), + (-1, {_sV: _cibxlarge_}), + (-1, {_sV: _cibxlarge__}), + (-1, {_sV: _cibxlarge___}), + (-1, {_sV: _cibxlarge____}), + ( + -1, + { + _sV: _c___________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _c____________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rinl}), + (-1, {_sV: _rinxlarge___}), + (-1, {_sV: _rinxlarge____}), + (-1, {_sV: _rinxlarge_____}), + (-1, {_sV: _rinxlarge______}), + (-1, {_sV: _rinxlarge_______}), + (-1, {_sV: _rinxlarge________}), + (-1, {_sV: _rinxlarge_________}), + (-1, {_sV: _rinxlarge__________}), + (-1, {_sV: _rinxlarge___________}), + (-1, {_sV: _rinxlarge____________}), + (-1, {_sV: _rib}), + (-1, {_sV: _ribx}), + (-1, {_sV: _ribxl}), + (-1, {_sV: _ribxla}), + (-1, {_sV: _ribxlar}), + (-1, {_sV: _ribxlarg}), + (-1, {_sV: _ribxlarge}), + (-1, {_sV: _ribxlarge_}), + (-1, {_sV: _ribxlarge__}), + (-1, {_sV: _ribxlarge___}), + (-1, {_sV: _ribxlarge____}), + (-1, {_sV: _minl}), + (-1, {_sV: _minxlarge___}), + (-1, {_sV: _minxlarge____}), + (-1, {_sV: _minxlarge_____}), + (-1, {_sV: _minxlarge______}), + (-1, {_sV: _minxlarge_______}), + (-1, {_sV: _minxlarge________}), + (-1, {_sV: _minxlarge_________}), + (-1, {_sV: _minxlarge__________}), + (-1, {_sV: _minxlarge___________}), + (-1, {_sV: _minxlarge____________}), + (-1, {_sV: _mib}), + (-1, {_sV: _mibx}), + (-1, {_sV: _mibxl}), + (-1, {_sV: _mibxla}), + (-1, {_sV: _mibxlar}), + (-1, {_sV: _mibxlarg}), + (-1, {_sV: _mibxlarge}), + (-1, {_sV: _mibxlarge_}), + (-1, {_sV: _mibxlarge__}), + (-1, {_sV: _mibxlarge___}), + (-1, {_sV: _mibxlarge____}), + (-1, {_sV: _mine}), + (-1, {_sV: _minex}), + (-1, {_sV: _minexl}), + (-1, {_sV: _minexla}), + (-1, {_sV: _minexlar}), + (-1, {_sV: _minexlarg}), + (-1, {_sV: _cine}), + (-1, {_sV: _cinex}), + (-1, {_sV: _cinexl}), + (-1, {_sV: _cinexla}), + (-1, {_sV: _cinexlar}), + (-1, {_sV: _cinexlarg}), + (-1, {_sV: _midnl}), + (-1, {_sV: _midnxlarge___}), + (-1, {_sV: _midnxlarge____}), + (-1, {_sV: _midnxlarge_____}), + (-1, {_sV: _midnxlarge______}), + (-1, {_sV: _midnxlarge_______}), + (-1, {_sV: _midnxlarge________}), + (-1, {_sV: _midnxlarge_________}), + (-1, {_sV: _midnxlarge__________}), + (-1, {_sV: _midnxlarge___________}), + (-1, {_sV: _midnxlarge____________}), + (-1, {_sV: _ridnl}), + (-1, {_sV: _ridnxlarge___}), + (-1, {_sV: _ridnxlarge____}), + (-1, {_sV: _ridnxlarge_____}), + (-1, {_sV: _ridnxlarge______}), + (-1, {_sV: _ridnxlarge_______}), + (-1, {_sV: _ridnxlarge________}), + (-1, {_sV: _ridnxlarge_________}), + (-1, {_sV: _ridnxlarge__________}), + (-1, {_sV: _ridnxlarge___________}), + (-1, {_sV: _ridnxlarge____________}), + (-1, {_sV: _midb}), + (-1, {_sV: _midbx}), + (-1, {_sV: _midbxl}), + (-1, {_sV: _midbxla}), + (-1, {_sV: _midbxlar}), + (-1, {_sV: _midbxlarg}), + (-1, {_sV: _midbxlarge}), + (-1, {_sV: _midbxlarge_}), + (-1, {_sV: _midbxlarge__}), + (-1, {_sV: _midbxlarge___}), + (-1, {_sV: _midbxlarge____}), + (-1, {_sV: _ridb}), + (-1, {_sV: _ridbx}), + (-1, {_sV: _ridbxl}), + (-1, {_sV: _ridbxla}), + (-1, {_sV: _ridbxlar}), + (-1, {_sV: _ridbxlarg}), + (-1, {_sV: _ridbxlarge}), + (-1, {_sV: _ridbxlarge_}), + (-1, {_sV: _ridbxlarge__}), + (-1, {_sV: _ridbxlarge___}), + (-1, {_sV: _ridbxlarge____}), + (-1, {_sV: _mm______________________________________________________}), + (-1, {_sV: _mglarg}), + (-1, {_sV: _mgxlarge_______________}), + (-1, {_sV: _mgxlarge________________}), + (-1, {_sV: _mgxlarge_________________}), + (-1, {_sV: _mgxlarge__________________}), + (-1, {_sV: _mgxlarge___________________}), + (-1, {_sV: _mgxlarge____________________}), + (-1, {_sV: _mgxlarge_____________________}), + (-1, {_sV: _mgxlarge______________________}), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgdlarg}), + (-1, {_sV: _mgdxlarge_______________}), + (-1, {_sV: _mgdxlarge________________}), + (-1, {_sV: _mgdxlarge_________________}), + (-1, {_sV: _mgdxlarge__________________}), + (-1, {_sV: _mgdxlarge___________________}), + (-1, {_sV: _mgdxlarge____________________}), + (-1, {_sV: _mgdxlarge_____________________}), + (-1, {_sV: _mgdxlarge______________________}), + ( + -1, + { + _sV: _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + ( + -1, + { + _sV: _m_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _gxlarge________________}), + (-1, {_sV: _gxlarge_________________}), + (-1, {_sV: _gxlarge__________________}), + (-1, {_sV: _gxlarge___________________}), + (-1, {_sV: _gxlarge____________________}), + (-1, {_sV: _gxlarge_____________________}), + (-1, {_sV: _cgmediu}), + (-1, {_sV: _cglarg}), + (-1, {_sV: _cgxlarge________________}), + (-1, {_sV: _cgxlarge_________________}), + (-1, {_sV: _cgxlarge__________________}), + (-1, {_sV: _cgxlarge___________________}), + (-1, {_sV: _cgxlarge____________________}), + (-1, {_sV: _cgxlarge_____________________}), + (-1, {_sV: _cgxlarge______________________}), + (-1, {_sV: _cgxlarge_______________________}), + ( + -1, + { + _sV: _c________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _cgdmedi}), + (-1, {_sV: _cgdlarg}), + (-1, {_sV: _cgdxlarge_______________}), + (-1, {_sV: _cgdxlarge________________}), + (-1, {_sV: _cgdxlarge_________________}), + (-1, {_sV: _cgdxlarge__________________}), + (-1, {_sV: _cgdxlarge___________________}), + (-1, {_sV: _cgdxlarge____________________}), + (-1, {_sV: _cgdxlarge_____________________}), + (-1, {_sV: _cgdxlarge______________________}), + ( + -1, + { + _sV: _c________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rgmedi}), + (-1, {_sV: _rglarg}), + (-1, {_sV: _rgxlarge_______________}), + (-1, {_sV: _rgxlarge________________}), + (-1, {_sV: _rgxlarge_________________}), + (-1, {_sV: _rgxlarge__________________}), + (-1, {_sV: _rgxlarge___________________}), + (-1, {_sV: _rgxlarge____________________}), + (-1, {_sV: _rgxlarge_____________________}), + (-1, {_sV: _rgxlarge______________________}), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _rgdmedi}), + (-1, {_sV: _rgdlarg}), + (-1, {_sV: _rgdxlarge_______________}), + (-1, {_sV: _rgdxlarge________________}), + (-1, {_sV: _rgdxlarge_________________}), + (-1, {_sV: _rgdxlarge__________________}), + (-1, {_sV: _rgdxlarge___________________}), + (-1, {_sV: _rgdxlarge____________________}), + (-1, {_sV: _rgdxlarge_____________________}), + (-1, {_sV: _rgdxlarge______________________}), + ( + -1, + { + _sV: _r________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgmedi}), + (-1, {_sV: _tin}), + (-1, {_sV: _timi}), + (-1, {_sV: _tis}), + (-1, {_sV: _time}), + ( + -1, + { + _sV: _i________________________________________________________________________ + }, + ), + (-1, {_sV: _rgbxlarge__}), + ( + -1, + { + _sV: _r__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _mgdmedi}), + (-1, {_sV: _trnu}), + ), +) + +INTEGER_WITH_CONSTRAINTS: StaticSchema = (7, n0, _IWC, 0) + +DOUBLE_WITH_CONSTRAINTS: StaticSchema = (10, n0, _DWC, 0) + +RESERVATION_FLEET_INSTANCE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _RFIS, + 0, + (_IT, _IPns, _We, _AZ, _AZI, _EO, _Pr), + ( + (INSTANCE_TYPE, 0), + (CAPACITY_RESERVATION_INSTANCE_PLATFORM, 0), + (DOUBLE_WITH_CONSTRAINTS, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (INTEGER_WITH_CONSTRAINTS, 0), + ), +) + +RESERVATION_FLEET_INSTANCE_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _RFISL, + 0, + (_me,), + ((RESERVATION_FLEET_INSTANCE_SPECIFICATION, 0),), +) + +FLEET_CAPACITY_RESERVATION_TENANCY: StaticSchema = ( + 14, + n0, + _FCRT, + 0, + (_def,), + ((-1, {_sV: _def}),), +) + +CREATE_CAPACITY_RESERVATION_FLEET_INPUT: StaticSchema = ( + 18, + n0, + _CCRFIr, + {_sSI: _cCCRFRom, _sm: None}, + (_ASll, _CTl, _ITS, _IRn, _AZ, _AZI, _Ten, _TTC, _ED, _IMC, _TSa, _DR), + ( + (STRING, 0), + (STRING, 2), + (RESERVATION_FLEET_INSTANCE_SPECIFICATION_LIST, {_sN: _ITSn}), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + (FLEET_CAPACITY_RESERVATION_TENANCY, 0), + (INTEGER, 1), + (MILLISECOND_DATE_TIME, 0), + (FLEET_INSTANCE_MATCH_CRITERIA, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +FLEET_CAPACITY_RESERVATION: StaticSchema = ( + 18, + n0, + _FCR, + 0, + (_CRI, _AZI, _IT, _IPns, _AZ, _TICo, _FCu, _EO, _CD, _We, _Pr), + ( + (CAPACITY_RESERVATION_ID, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (CAPACITY_RESERVATION_INSTANCE_PLATFORM, {_aQN: _IPns, _sN: _iPns}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (INTEGER, {_aQN: _TICo, _sN: _tICo}), + (DOUBLE, {_aQN: _FCu, _sN: _fC}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (MILLISECOND_DATE_TIME, {_aQN: _CD, _sN: _cD}), + (DOUBLE_WITH_CONSTRAINTS, {_aQN: _We, _sN: _we}), + (INTEGER_WITH_CONSTRAINTS, {_aQN: _Pr, _sN: _pri}), + ), +) + +FLEET_CAPACITY_RESERVATION_SET: StaticSchema = ( + 16, + n0, + _FCRS, + 0, + (_me,), + ((FLEET_CAPACITY_RESERVATION, {_sN: _i}),), +) + +CREATE_CAPACITY_RESERVATION_FLEET_OUTPUT: StaticSchema = ( + 18, + n0, + _CCRFOr, + {_sSI: _cCCRFRoma, _smit: None}, + (_CRFI, _St, _TTC, _TFC, _IMC, _ASll, _CTr, _ED, _Ten, _FCRl, _Tag), + ( + (CAPACITY_RESERVATION_FLEET_ID, {_aQN: _CRFI, _sN: _cRFI}), + (CAPACITY_RESERVATION_FLEET_STATE, {_aQN: _St, _sN: _st}), + (INTEGER, {_aQN: _TTC, _sN: _tTC}), + (DOUBLE, {_aQN: _TFC, _sN: _tFC}), + (FLEET_INSTANCE_MATCH_CRITERIA, {_aQN: _IMC, _sN: _iMC}), + (STRING, {_aQN: _ASll, _sN: _aSl}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (FLEET_CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (FLEET_CAPACITY_RESERVATION_SET, {_aQN: _FCRS, _sN: _fCRS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_CAPACITY_RESERVATION_FLEET: StaticOperationSchema = ( + 23, + n0, + _CCRFr, + 0, + CREATE_CAPACITY_RESERVATION_FLEET_INPUT, + CREATE_CAPACITY_RESERVATION_FLEET_OUTPUT, + (), +) + +CREATE_CARRIER_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CCGI, + {_sSI: _cCCGR, _sm: None}, + (_VI, _TSa, _DR, _CTl), + ((VPC_ID, 1), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (BOOLEAN, 0), (STRING, 2)), +) + +CARRIER_GATEWAY_ID: StaticSchema = (3, n0, _CGI, 0) + +CARRIER_GATEWAY_STATE: StaticSchema = ( + 14, + n0, + _CGS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +CARRIER_GATEWAY: StaticSchema = ( + 18, + n0, + _CGa, + 0, + (_CGI, _VI, _St, _OIw, _Tag), + ( + (CARRIER_GATEWAY_ID, {_aQN: _CGI, _sN: _cGI}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (CARRIER_GATEWAY_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_CARRIER_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CCGO, + {_sSI: _cCCGRo, _smit: None}, + (_CGa,), + ((CARRIER_GATEWAY, {_aQN: _CGa, _sN: _cGa}),), +) + +CREATE_CARRIER_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CCG, + 0, + CREATE_CARRIER_GATEWAY_INPUT, + CREATE_CARRIER_GATEWAY_OUTPUT, + (), +) + +DIRECTORY_SERVICE_AUTHENTICATION_REQUEST: StaticSchema = ( + 18, + n0, + _DSAR, + 0, + (_DIi,), + ((STRING, 0),), +) + +FEDERATED_AUTHENTICATION_REQUEST: StaticSchema = ( + 18, + n0, + _FAR, + 0, + (_SAMLPA, _SSSAMLPA), + ((STRING, 0), (STRING, 0)), +) + +CERTIFICATE_AUTHENTICATION_REQUEST: StaticSchema = ( + 18, + n0, + _CAR, + 0, + (_CRCCA,), + ((STRING, 0),), +) + +CLIENT_VPN_AUTHENTICATION_TYPE: StaticSchema = ( + 14, + n0, + _CVAT, + 0, + (_ca_, _dsa, _fa___), + ((-1, {_sV: _ca__}), (-1, {_sV: _dsa_}), (-1, {_sV: _fa____})), +) + +CLIENT_VPN_AUTHENTICATION_REQUEST: StaticSchema = ( + 18, + n0, + _CVAR, + 0, + (_Ty, _ADc, _MA, _FA), + ( + (CLIENT_VPN_AUTHENTICATION_TYPE, 0), + (DIRECTORY_SERVICE_AUTHENTICATION_REQUEST, 0), + (CERTIFICATE_AUTHENTICATION_REQUEST, 0), + (FEDERATED_AUTHENTICATION_REQUEST, 0), + ), +) + +CLIENT_VPN_AUTHENTICATION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _CVARL, + 0, + (_me,), + ((CLIENT_VPN_AUTHENTICATION_REQUEST, 0),), +) + +CLIENT_CONNECT_OPTIONS: StaticSchema = ( + 18, + n0, + _CCO, + 0, + (_Ena, _LFA), + ((BOOLEAN, 0), (STRING, 0)), +) + +CLIENT_LOGIN_BANNER_OPTIONS: StaticSchema = ( + 18, + n0, + _CLBO, + 0, + (_Ena, _BTa), + ((BOOLEAN, 0), (STRING, 0)), +) + +CLIENT_ROUTE_ENFORCEMENT_OPTIONS: StaticSchema = ( + 18, + n0, + _CREO, + 0, + (_Enf,), + ((BOOLEAN, 0),), +) + +CONNECTION_LOG_OPTIONS: StaticSchema = ( + 18, + n0, + _CLO, + 0, + (_Ena, _CLG, _CLS, _IAPC), + ((BOOLEAN, 0), (STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +CLIENT_VPN_DEVICE_TRUST_PROVIDER_TYPE: StaticSchema = ( + 14, + n0, + _CVDTPT, + 0, + (_cro, _j, _ju), + ((-1, {_sV: _cro}), (-1, {_sV: _j}), (-1, {_sV: _ju})), +) + +CLIENT_VPN_TRUST_PROVIDER_REQUEST: StaticSchema = ( + 18, + n0, + _CVTPR, + 0, + (_TPT, _TI, _PSKU), + ((CLIENT_VPN_DEVICE_TRUST_PROVIDER_TYPE, 0), (STRING, 0), (STRING, 0)), +) + +CLIENT_VPN_TRUST_PROVIDER_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _CVTPRL, + 0, + (_me,), + ((CLIENT_VPN_TRUST_PROVIDER_REQUEST, {_sN: _i}),), +) + +DEVICE_POSTURE_OPTIONS: StaticSchema = ( + 18, + n0, + _DPO, + 0, + (_TPr, _Ena), + ((CLIENT_VPN_TRUST_PROVIDER_REQUEST_LIST, {_sN: _TPru}), (BOOLEAN, 0)), +) + +ENDPOINT_IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _EIAT, + 0, + (_ipv, _ipv_, _ds__), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_}), (-1, {_sV: _ds___})), +) + +SELF_SERVICE_PORTAL: StaticSchema = ( + 14, + n0, + _SSP, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +TRAFFIC_IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _TIAT, + 0, + (_ipv, _ipv_, _ds__), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_}), (-1, {_sV: _ds___})), +) + +CLIENT_VPN_AVAILABILITY_ZONE_ID_SET: StaticSchema = ( + 16, + n0, + _CVAZIS, + 0, + (_me,), + ((AVAILABILITY_ZONE_ID, {_sN: _i}),), +) + +CLIENT_VPN_AVAILABILITY_ZONE_SET: StaticSchema = ( + 16, + n0, + _CVAZS, + 0, + (_me,), + ((AVAILABILITY_ZONE_NAME, {_sN: _i}),), +) + +TRANSIT_GATEWAY_CONFIGURATION_INPUT_STRUCTURE: StaticSchema = ( + 18, + n0, + _TGCIS, + 0, + (_TGI, _AZv, _AZIv), + ( + (TRANSIT_GATEWAY_ID, 0), + (CLIENT_VPN_AVAILABILITY_ZONE_SET, {_sN: _AZ}), + (CLIENT_VPN_AVAILABILITY_ZONE_ID_SET, {_sN: _AZI}), + ), +) + +TRANSPORT_PROTOCOL: StaticSchema = ( + 14, + n0, + _TPra, + 0, + (_tc, _ud), + ((-1, {_sV: _tc}), (-1, {_sV: _ud})), +) + +CREATE_CLIENT_VPN_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CCVEI, + {_sSI: _cCCVER, _sm: None}, + ( + _CCB, + _SCA, + _AO, + _CLO, + _DSn, + _TPra, + _VPp, + _Des, + _STp, + _DR, + _CTl, + _TSa, + _SGIe, + _VI, + _SSP, + _CCO, + _STH, + _CLBO, + _CREO, + _DOST, + _EIAT, + _TIAT, + _TGC, + _DPO, + ), + ( + (STRING, 0), + (STRING, 1), + (CLIENT_VPN_AUTHENTICATION_REQUEST_LIST, {_sN: _Au, _smi: None}), + (CONNECTION_LOG_OPTIONS, 1), + (VALUE_STRING_LIST, 0), + (TRANSPORT_PROTOCOL, 0), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (CLIENT_VPN_SECURITY_GROUP_ID_SET, {_sN: _SGI}), + (VPC_ID, 0), + (SELF_SERVICE_PORTAL, 0), + (CLIENT_CONNECT_OPTIONS, 0), + (INTEGER, 0), + (CLIENT_LOGIN_BANNER_OPTIONS, 0), + (CLIENT_ROUTE_ENFORCEMENT_OPTIONS, 0), + (BOOLEAN, 0), + (ENDPOINT_IP_ADDRESS_TYPE, 0), + (TRAFFIC_IP_ADDRESS_TYPE, 0), + (TRANSIT_GATEWAY_CONFIGURATION_INPUT_STRUCTURE, 0), + (DEVICE_POSTURE_OPTIONS, 0), + ), +) + +CLIENT_VPN_ENDPOINT_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CVESC, + 0, + (_pa______, _av, _de, _del, _p), + ( + (-1, {_sV: _pa_______}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _p}), + ), +) + +CLIENT_VPN_ENDPOINT_STATUS: StaticSchema = ( + 18, + n0, + _CVES, + 0, + (_C, _Me), + ( + (CLIENT_VPN_ENDPOINT_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +CREATE_CLIENT_VPN_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CCVEO, + {_sSI: _cCCVERo, _smit: None}, + (_CVEI, _Sta, _DN), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (CLIENT_VPN_ENDPOINT_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _DN, _sN: _dN}), + ), +) + +CREATE_CLIENT_VPN_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CCVE, + 0, + CREATE_CLIENT_VPN_ENDPOINT_INPUT, + CREATE_CLIENT_VPN_ENDPOINT_OUTPUT, + (), +) + +CREATE_CLIENT_VPN_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _CCVRI, + {_sSI: _cCCVRR, _sm: None}, + (_CVEI, _DCB, _TVSI, _Des, _CTl, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (STRING, 1), + (SUBNET_ID, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +CLIENT_VPN_ROUTE_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CVRSC, + 0, + (_cre, _act, _fa, _de), + ((-1, {_sV: _cre}), (-1, {_sV: _act}), (-1, {_sV: _fa}), (-1, {_sV: _de})), +) + +CLIENT_VPN_ROUTE_STATUS: StaticSchema = ( + 18, + n0, + _CVRS, + 0, + (_C, _Me), + ( + (CLIENT_VPN_ROUTE_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +CREATE_CLIENT_VPN_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CCVRO, + {_sSI: _cCCVRRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_ROUTE_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +CREATE_CLIENT_VPN_ROUTE: StaticOperationSchema = ( + 23, + n0, + _CCVR, + 0, + CREATE_CLIENT_VPN_ROUTE_INPUT, + CREATE_CLIENT_VPN_ROUTE_OUTPUT, + (), +) + +IPV4_POOL_COIP_ID: StaticSchema = (3, n0, _IPCI, 0) + +CREATE_COIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _CCCI, + {_sSI: _cCCCR, _sm: None}, + (_Ci, _CPIo, _DR), + ((STRING, 1), (IPV4_POOL_COIP_ID, 1), (BOOLEAN, 0)), +) + +COIP_CIDR: StaticSchema = ( + 18, + n0, + _CCo, + 0, + (_Ci, _CPIo, _LGRTI), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (IPV4_POOL_COIP_ID, {_aQN: _CPIo, _sN: _cPI}), + (STRING, {_aQN: _LGRTI, _sN: _lGRTI}), + ), +) + +CREATE_COIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _CCCO, + {_sSI: _cCCCRo, _smit: None}, + (_CCo,), + ((COIP_CIDR, {_aQN: _CCo, _sN: _cCo}),), +) + +CREATE_COIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _CCC, + 0, + CREATE_COIP_CIDR_INPUT, + CREATE_COIP_CIDR_OUTPUT, + (), +) + +LOCAL_GATEWAY_ROUTETABLE_ID: StaticSchema = (3, n0, _LGRI, 0) + +CREATE_COIP_POOL_INPUT: StaticSchema = ( + 18, + n0, + _CCPI, + {_sSI: _cCCPR, _sm: None}, + (_LGRTI, _TSa, _DR), + ( + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +COIP_POOL: StaticSchema = ( + 18, + n0, + _CP, + 0, + (_PIo, _PCo, _LGRTI, _Tag, _PA), + ( + (IPV4_POOL_COIP_ID, {_aQN: _PIo, _sN: _pIo}), + (VALUE_STRING_LIST, {_aQN: _PCS, _sN: _pCS}), + (LOCAL_GATEWAY_ROUTETABLE_ID, {_aQN: _LGRTI, _sN: _lGRTI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (RESOURCE_ARN, {_aQN: _PA, _sN: _pAo}), + ), +) + +CREATE_COIP_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _CCPO, + {_sSI: _cCCPRo, _smit: None}, + (_CP,), + ((COIP_POOL, {_aQN: _CP, _sN: _cP}),), +) + +CREATE_COIP_POOL: StaticOperationSchema = ( + 23, + n0, + _CCP, + 0, + CREATE_COIP_POOL_INPUT, + CREATE_COIP_POOL_OUTPUT, + (), +) + +GATEWAY_TYPE: StaticSchema = ( + 14, + n0, + _GT, + 0, + (_i_________________________________________________________________________,), + ((-1, {_sV: _ips}),), +) + +CREATE_CUSTOMER_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CCGIr, + {_sSI: _cCCGRom, _sm: None}, + (_BA, _PI, _CAe, _Ty, _TSa, _DNe, _IA, _BAE, _DR), + ( + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (GATEWAY_TYPE, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 0), + (STRING, 0), + (LONG, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CUSTOMER_GATEWAY: StaticSchema = ( + 18, + n0, + _CG, + 0, + (_CAe, _DNe, _Tag, _BAE, _CGIu, _St, _Ty, _IA, _BA), + ( + (STRING, {_aQN: _CAe, _sN: _cAe}), + (STRING, {_aQN: _DNe, _sN: _dNe}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _BAE, _sN: _bAE}), + (STRING, {_aQN: _CGIu, _sN: _cGIu}), + (STRING, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _IA, _sN: _iApd}), + (STRING, {_aQN: _BA, _sN: _bA}), + ), +) + +CREATE_CUSTOMER_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CCGOr, + {_sSI: _cCCGRoma, _smit: None}, + (_CG,), + ((CUSTOMER_GATEWAY, {_aQN: _CG, _sN: _cG}),), +) + +CREATE_CUSTOMER_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CCGr, + 0, + CREATE_CUSTOMER_GATEWAY_INPUT, + CREATE_CUSTOMER_GATEWAY_OUTPUT, + (), +) + +CREATE_DEFAULT_SUBNET_INPUT: StaticSchema = ( + 18, + n0, + _CDSI, + {_sSI: _cCDSR, _sm: None}, + (_AZ, _DR, _IN, _AZI), + ( + (AVAILABILITY_ZONE_NAME, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (AVAILABILITY_ZONE_ID, 0), + ), +) + +BLOCK_PUBLIC_ACCESS_MODE: StaticSchema = ( + 14, + n0, + _BPAM, + 0, + (_of, _bb, _bi), + ((-1, {_sV: _of}), (-1, {_sV: _bb_}), (-1, {_sV: _bi_})), +) + +BLOCK_PUBLIC_ACCESS_STATES: StaticSchema = ( + 18, + n0, + _BPAS, + 0, + (_IGBM,), + ((BLOCK_PUBLIC_ACCESS_MODE, {_aQN: _IGBM, _sN: _iGBM}),), +) + +COIP_POOL_ID: StaticSchema = (3, n0, _CPIo, 0) + +SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _SICBAS, + 0, + (_me,), + ((SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION, {_sN: _i}),), +) + +HOSTNAME_TYPE: StaticSchema = ( + 14, + n0, + _HT, + 0, + (_in_, _rn_), + ((-1, {_sV: _in__}), (-1, {_sV: _rn__})), +) + +PRIVATE_DNS_NAME_OPTIONS_ON_LAUNCH: StaticSchema = ( + 18, + n0, + _PDNOOL, + 0, + (_HT, _ERNDAR, _ERNDAAAAR), + ( + (HOSTNAME_TYPE, {_aQN: _HT, _sN: _hT}), + (BOOLEAN, {_aQN: _ERNDAR, _sN: _eRNDAR}), + (BOOLEAN, {_aQN: _ERNDAAAAR, _sN: _eRNDAAAAR}), + ), +) + +SUBNET_STATE: StaticSchema = ( + 14, + n0, + _SSu, + 0, + (_p, _av, _unav, _fa, _fic), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _unav}), + (-1, {_sV: _fa}), + (-1, {_sV: _fic_}), + ), +) + +SUBNET: StaticSchema = ( + 18, + n0, + _Sub, + 0, + ( + _AZI, + _ELADI, + _MCOIOL, + _COIP, + _OIw, + _AIAOC, + _ICBAS, + _Tag, + _SAu, + _OA, + _EDn, + _IN, + _PDNOOL, + _BPAS, + _Ty, + _SIu, + _St, + _VI, + _CB, + _AIAC, + _AZ, + _DFA, + _MPIOL, + ), + ( + (STRING, {_aQN: _AZI, _sN: _aZI}), + (INTEGER, {_aQN: _ELADI, _sN: _eLADI}), + (BOOLEAN, {_aQN: _MCOIOL, _sN: _mCOIOL}), + (COIP_POOL_ID, {_aQN: _COIP, _sN: _cOIP}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (BOOLEAN, {_aQN: _AIAOC, _sN: _aIAOC}), + (SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION_SET, {_aQN: _ICBAS, _sN: _iCBAS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _SAu, _sN: _sA}), + (STRING, {_aQN: _OA, _sN: _oA}), + (BOOLEAN, {_aQN: _EDn, _sN: _eDn}), + (BOOLEAN, {_aQN: _IN, _sN: _iN}), + (PRIVATE_DNS_NAME_OPTIONS_ON_LAUNCH, {_aQN: _PDNOOL, _sN: _pDNOOL}), + (BLOCK_PUBLIC_ACCESS_STATES, {_aQN: _BPAS, _sN: _bPAS}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (SUBNET_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _CB, _sN: _cB}), + (INTEGER, {_aQN: _AIAC, _sN: _aIAC}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (BOOLEAN, {_aQN: _DFA, _sN: _dFA}), + (BOOLEAN, {_aQN: _MPIOL, _sN: _mPIOL}), + ), +) + +CREATE_DEFAULT_SUBNET_OUTPUT: StaticSchema = ( + 18, + n0, + _CDSO, + {_sSI: _cCDSRo, _smit: None}, + (_Sub,), + ((SUBNET, {_aQN: _Sub, _sN: _su}),), +) + +CREATE_DEFAULT_SUBNET: StaticOperationSchema = ( + 23, + n0, + _CDS, + 0, + CREATE_DEFAULT_SUBNET_INPUT, + CREATE_DEFAULT_SUBNET_OUTPUT, + (), +) + +CREATE_DEFAULT_VPC_INPUT: StaticSchema = ( + 18, + n0, + _CDVI, + {_sSI: _cCDVR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +VPC_CIDR_BLOCK_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _VCBAS, + 0, + (_me,), + ((VPC_CIDR_BLOCK_ASSOCIATION, {_sN: _i}),), +) + +VPC_ENCRYPTION_CONTROL_MODE: StaticSchema = ( + 14, + n0, + _VECM, + 0, + (_moni, _enf), + ((-1, {_sV: _moni}), (-1, {_sV: _enf})), +) + +VPC_ENCRYPTION_CONTROL_EXCLUSION: StaticSchema = ( + 18, + n0, + _VECE, + 0, + (_St, _SMta), + ( + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + ), +) + +VPC_ENCRYPTION_CONTROL_EXCLUSIONS: StaticSchema = ( + 18, + n0, + _VECEp, + 0, + (_IG, _EOIG, _NG, _VPG, _VP, _La, _VL, _EFS), + ( + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _IG, _sN: _iG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _EOIG, _sN: _eOIG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _NG, _sN: _nG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _VPG, _sN: _vPG}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _VP, _sN: _vP}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _La, _sN: _la}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _VL, _sN: _vL}), + (VPC_ENCRYPTION_CONTROL_EXCLUSION, {_aQN: _EFS, _sN: _eFS}), + ), +) + +VPC_ENCRYPTION_CONTROL_STATE: StaticSchema = ( + 14, + n0, + _VECS, + 0, + (_eip_, _mip, _ef, _mf________________________, _de, _del, _av, _cre, _df___), + ( + (-1, {_sV: _eip__}), + (-1, {_sV: _mip_}), + (-1, {_sV: _ef_}), + (-1, {_sV: _mf_________________________}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _av}), + (-1, {_sV: _cre}), + (-1, {_sV: _df____}), + ), +) + +VPC_ENCRYPTION_CONTROL_ID: StaticSchema = (3, n0, _VECI, 0) + +VPC_ENCRYPTION_CONTROL: StaticSchema = ( + 18, + n0, + _VEC, + 0, + (_VI, _VECI, _Mo, _St, _SMta, _RE, _Tag), + ( + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (VPC_ENCRYPTION_CONTROL_ID, {_aQN: _VECI, _sN: _vECI}), + (VPC_ENCRYPTION_CONTROL_MODE, {_aQN: _Mo, _sN: _mod}), + (VPC_ENCRYPTION_CONTROL_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (VPC_ENCRYPTION_CONTROL_EXCLUSIONS, {_aQN: _RE, _sN: _rE}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +TENANCY: StaticSchema = ( + 14, + n0, + _Ten, + 0, + (_def, _ded, _ho), + ((-1, {_sV: _def}), (-1, {_sV: _ded}), (-1, {_sV: _ho})), +) + +VPC_IPV6_CIDR_BLOCK_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _VICBAS, + 0, + (_me,), + ((VPC_IPV6_CIDR_BLOCK_ASSOCIATION, {_sN: _i}),), +) + +VPC_STATE: StaticSchema = ( + 14, + n0, + _VSp, + 0, + (_p, _av, _de), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de})), +) + +VPC: StaticSchema = ( + 18, + n0, + _Vp, + 0, + (_OIw, _ITnst, _ICBAS, _CBAS, _ID, _ECn, _Tag, _BPAS, _VI, _St, _CB, _DOI), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (TENANCY, {_aQN: _ITnst, _sN: _iTns}), + (VPC_IPV6_CIDR_BLOCK_ASSOCIATION_SET, {_aQN: _ICBAS, _sN: _iCBAS}), + (VPC_CIDR_BLOCK_ASSOCIATION_SET, {_aQN: _CBAS, _sN: _cBAS}), + (BOOLEAN, {_aQN: _ID, _sN: _iD}), + (VPC_ENCRYPTION_CONTROL, {_aQN: _ECn, _sN: _eCn}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (BLOCK_PUBLIC_ACCESS_STATES, {_aQN: _BPAS, _sN: _bPAS}), + (STRING, {_aQN: _VI, _sN: _vI}), + (VPC_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _CB, _sN: _cB}), + (STRING, {_aQN: _DOI, _sN: _dOI}), + ), +) + +CREATE_DEFAULT_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _CDVO, + {_sSI: _cCDVRo, _smit: None}, + (_Vp,), + ((VPC, {_aQN: _Vp, _sN: _vp}),), +) + +CREATE_DEFAULT_VPC: StaticOperationSchema = ( + 23, + n0, + _CDV, + 0, + CREATE_DEFAULT_VPC_INPUT, + CREATE_DEFAULT_VPC_OUTPUT, + (), +) + +SENSITIVE_MAC_CREDENTIALS: StaticSchema = (3, n0, _SMC, 4) + +CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CDMVOTI, + {_sSI: _cCDMVOTR, _sm: None}, + (_CTl, _DR, _II, _MCa, _TSa), + ( + (STRING, 2), + (BOOLEAN, 0), + (INSTANCE_ID, 1), + (SENSITIVE_MAC_CREDENTIALS, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +MAC_MODIFICATION_TASK_ID: StaticSchema = (3, n0, _MMTI, 0) + +MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS: StaticSchema = ( + 14, + n0, + _MSIPSS, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MSIPC, + 0, + (_AIp, _BSa, _DReb, _DTR, _FPi, _KS, _NP, _Sta), + ( + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _AIp, _sN: _aIp}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _BSa, _sN: _bS}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _DReb, _sN: _dReb}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _DTR, _sN: _dTR}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _FPi, _sN: _fPi}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _KS, _sN: _kS}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _NP, _sN: _nP}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +MAC_MODIFICATION_TASK_STATE: StaticSchema = ( + 14, + n0, + _MMTS, + 0, + (_succ, _fa, _inp, _p), + ((-1, {_sV: _succ}), (-1, {_sV: _fa}), (-1, {_sV: _ip_____}), (-1, {_sV: _p})), +) + +MAC_MODIFICATION_TASK_TYPE: StaticSchema = ( + 14, + n0, + _MMTT, + 0, + (_SIPM, _VOD), + ((-1, {_sV: _sm_}), (-1, {_sV: _vod})), +) + +MAC_MODIFICATION_TASK: StaticSchema = ( + 18, + n0, + _MMT, + 0, + (_II, _MMTI, _MSIPCa, _ST, _Tag, _TSas, _TT), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (MAC_MODIFICATION_TASK_ID, {_aQN: _MMTI, _sN: _mMTI}), + (MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION, {_aQN: _MSIPCa, _sN: _mSIPC}), + (MILLISECOND_DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (MAC_MODIFICATION_TASK_STATE, {_aQN: _TSas, _sN: _tSa}), + (MAC_MODIFICATION_TASK_TYPE, {_aQN: _TT, _sN: _tT}), + ), +) + +CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CDMVOTO, + {_sSI: _cCDMVOTRo, _smit: None}, + (_MMT,), + ((MAC_MODIFICATION_TASK, {_aQN: _MMT, _sN: _mMT}),), +) + +CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK: StaticOperationSchema = ( + 23, + n0, + _CDMVOT, + 0, + CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_INPUT, + CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_OUTPUT, + (), +) + +NEW_DHCP_CONFIGURATION: StaticSchema = ( + 18, + n0, + _NDC, + 0, + (_Ke, _Val), + ((STRING, {_aQN: _Ke, _sN: _ke}), (VALUE_STRING_LIST, {_sN: _Va})), +) + +NEW_DHCP_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _NDCL, + 0, + (_me,), + ((NEW_DHCP_CONFIGURATION, {_sN: _i}),), +) + +CREATE_DHCP_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _CDOI, + {_sSI: _cCDOR, _sm: None}, + (_DCh, _TSa, _DR), + ( + (NEW_DHCP_CONFIGURATION_LIST, {_aQN: _DChc, _sN: _dCh, _smi: None}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +ATTRIBUTE_VALUE: StaticSchema = ( + 18, + n0, + _AV, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +DHCP_CONFIGURATION_VALUE_LIST: StaticSchema = ( + 16, + n0, + _DCVL, + 0, + (_me,), + ((ATTRIBUTE_VALUE, {_sN: _i}),), +) + +DHCP_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DChc, + 0, + (_Ke, _Val), + ( + (STRING, {_aQN: _Ke, _sN: _ke}), + (DHCP_CONFIGURATION_VALUE_LIST, {_aQN: _VSa, _sN: _vSa}), + ), +) + +DHCP_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _DCL, + 0, + (_me,), + ((DHCP_CONFIGURATION, {_sN: _i}),), +) + +DHCP_OPTIONS: StaticSchema = ( + 18, + n0, + _DOh, + 0, + (_OIw, _Tag, _DOI, _DCh), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _DOI, _sN: _dOI}), + (DHCP_CONFIGURATION_LIST, {_aQN: _DCS, _sN: _dCS}), + ), +) + +CREATE_DHCP_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _CDOO, + {_sSI: _cCDORo, _smit: None}, + (_DOh,), + ((DHCP_OPTIONS, {_aQN: _DOh, _sN: _dOh}),), +) + +CREATE_DHCP_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _CDO, + 0, + CREATE_DHCP_OPTIONS_INPUT, + CREATE_DHCP_OPTIONS_OUTPUT, + (), +) + +CREATE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CEOIGI, + {_sSI: _cCEOIGR, _sm: None}, + (_CTl, _DR, _VI, _TSa), + ((STRING, 0), (BOOLEAN, 0), (VPC_ID, 1), (TAG_SPECIFICATION_LIST, {_sN: _TS})), +) + +INTERNET_GATEWAY_ATTACHMENT: StaticSchema = ( + 18, + n0, + _IGA, + 0, + (_St, _VI), + ((ATTACHMENT_STATUS, {_aQN: _St, _sN: _st}), (STRING, {_aQN: _VI, _sN: _vI})), +) + +INTERNET_GATEWAY_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _IGAL, + 0, + (_me,), + ((INTERNET_GATEWAY_ATTACHMENT, {_sN: _i}),), +) + +EGRESS_ONLY_INTERNET_GATEWAY_ID: StaticSchema = (3, n0, _EOIGI, 0) + +EGRESS_ONLY_INTERNET_GATEWAY: StaticSchema = ( + 18, + n0, + _EOIG, + 0, + (_Att, _EOIGI, _Tag), + ( + (INTERNET_GATEWAY_ATTACHMENT_LIST, {_aQN: _AStt, _sN: _aSt}), + (EGRESS_ONLY_INTERNET_GATEWAY_ID, {_aQN: _EOIGI, _sN: _eOIGI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CEOIGO, + {_sSI: _cCEOIGRo, _smit: None}, + (_CTl, _EOIG), + ( + (STRING, {_aQN: _CTl, _sN: _cTl}), + (EGRESS_ONLY_INTERNET_GATEWAY, {_aQN: _EOIG, _sN: _eOIG}), + ), +) + +CREATE_EGRESS_ONLY_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CEOIG, + 0, + CREATE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT, + CREATE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT, + (), +) + +FLEET_EXCESS_CAPACITY_TERMINATION_POLICY: StaticSchema = ( + 14, + n0, + _FECTP, + 0, + (_NT, _TERMINATION), + ((-1, {_sV: _nt}), (-1, {_sV: _ter})), +) + +LAUNCH_TEMPLATE_ID: StaticSchema = (3, n0, _LTI, 0) + +LAUNCH_TEMPLATE_NAME: StaticSchema = (3, n0, _LTN, 0) + +SENSITIVE_USER_DATA: StaticSchema = (3, n0, _SUD, 4) + +FLEET_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _FLTSR, + 0, + (_LTI, _LTN, _Ve, _LTSUD), + ( + (LAUNCH_TEMPLATE_ID, 0), + (LAUNCH_TEMPLATE_NAME, 0), + (STRING, 0), + (SENSITIVE_USER_DATA, 0), + ), +) + +SNAPSHOT_ID: StaticSchema = (3, n0, _SIn, 0) + +FLEET_EBS_BLOCK_DEVICE_REQUEST: StaticSchema = ( + 18, + n0, + _FEBDR, + 0, + (_En, _DOT, _Io, _Th, _KKI, _SIn, _VSol, _VT), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (INTEGER, 0), + (KMS_KEY_ID, 0), + (SNAPSHOT_ID, 0), + (INTEGER, 0), + (VOLUME_TYPE, 0), + ), +) + +FLEET_BLOCK_DEVICE_MAPPING_REQUEST: StaticSchema = ( + 18, + n0, + _FBDMR, + 0, + (_DNe, _VN, _Eb, _ND), + ((STRING, 0), (STRING, 0), (FLEET_EBS_BLOCK_DEVICE_REQUEST, 0), (STRING, 0)), +) + +FLEET_BLOCK_DEVICE_MAPPING_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _FBDMRL, + 0, + (_me,), + ((FLEET_BLOCK_DEVICE_MAPPING_REQUEST, {_sN: _BDM}),), +) + +FLEET_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _FIIPSR, + 0, + (_Ar, _N), + ((STRING, 0), (STRING, 0)), +) + +FLEET_INSTANCE_METADATA_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _FIMES, + 0, + (_DISABLED, _ENABLED), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +FLEET_HTTP_TOKENS_STATE: StaticSchema = ( + 14, + n0, + _FHTS, + 0, + (_OPTIONAL, _REQUIRED), + ((-1, {_sV: _opt}), (-1, {_sV: _requ})), +) + +FLEET_INSTANCE_METADATA_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _FIMOR, + 0, + (_HTt, _HPRHL, _HE), + ( + (FLEET_HTTP_TOKENS_STATE, 0), + (INTEGER, 0), + (FLEET_INSTANCE_METADATA_ENDPOINT_STATE, 0), + ), +) + +PLACEMENT_GROUP_ID: StaticSchema = (3, n0, _PGI, 0) + +PLACEMENT_GROUP_NAME: StaticSchema = (3, n0, _PGN, 0) + +PLACEMENT: StaticSchema = ( + 18, + n0, + _Pl, + 0, + (_AZI, _Af, _GN, _PNa, _HIo, _Ten, _SDp, _HRGA, _GIr, _AZ), + ( + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _Af, _sN: _aff}), + (PLACEMENT_GROUP_NAME, {_aQN: _GN, _sN: _gN}), + (INTEGER, {_aQN: _PNa, _sN: _pN}), + (STRING, {_aQN: _HIo, _sN: _hI}), + (TENANCY, {_aQN: _Ten, _sN: _ten}), + (STRING, {_aQN: _SDp, _sN: _sDp}), + (STRING, {_aQN: _HRGA, _sN: _hRGA}), + (PLACEMENT_GROUP_ID, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + ), +) + +FLEET_LAUNCH_TEMPLATE_OVERRIDES_REQUEST: StaticSchema = ( + 18, + n0, + _FLTOR, + 0, + (_IT, _MP, _SIu, _AZ, _WC, _Pr, _Pl, _KN, _BDMl, _IIP, _MO, _IRn, _IIm, _AZI), + ( + (INSTANCE_TYPE, 0), + (STRING, 0), + (SUBNET_ID, 0), + (AVAILABILITY_ZONE_NAME, 0), + (DOUBLE, 0), + (DOUBLE, 0), + (PLACEMENT, 0), + (STRING, 0), + (FLEET_BLOCK_DEVICE_MAPPING_REQUEST_LIST, {_sN: _BDM}), + (FLEET_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST, 0), + (FLEET_INSTANCE_METADATA_OPTIONS_REQUEST, 0), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + (STRING, 0), + (AVAILABILITY_ZONE_ID, 0), + ), +) + +FLEET_LAUNCH_TEMPLATE_OVERRIDES_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _FLTOLR, + 0, + (_me,), + ((FLEET_LAUNCH_TEMPLATE_OVERRIDES_REQUEST, {_sN: _i}),), +) + +FLEET_LAUNCH_TEMPLATE_CONFIG_REQUEST: StaticSchema = ( + 18, + n0, + _FLTCR, + 0, + (_LTS, _Ov), + ( + (FLEET_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST, 0), + (FLEET_LAUNCH_TEMPLATE_OVERRIDES_LIST_REQUEST, 0), + ), +) + +FLEET_LAUNCH_TEMPLATE_CONFIG_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _FLTCLR, + 0, + (_me,), + ((FLEET_LAUNCH_TEMPLATE_CONFIG_REQUEST, {_sN: _i}),), +) + +FLEET_ON_DEMAND_ALLOCATION_STRATEGY: StaticSchema = ( + 14, + n0, + _FODAS, + 0, + (_LP, _PRIORITIZED), + ((-1, {_sV: _lp}), (-1, {_sV: _prio})), +) + +FLEET_CAPACITY_RESERVATION_USAGE_STRATEGY: StaticSchema = ( + 14, + n0, + _FCRUS, + 0, + (_UCRF,), + ((-1, {_sV: _ucrf}),), +) + +CAPACITY_RESERVATION_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _CROR, + 0, + (_USs,), + ((FLEET_CAPACITY_RESERVATION_USAGE_STRATEGY, 0),), +) + +ON_DEMAND_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _ODOR, + 0, + (_ASll, _CRO, _SIT, _SAZ, _MTC, _MTP), + ( + (FLEET_ON_DEMAND_ALLOCATION_STRATEGY, 0), + (CAPACITY_RESERVATION_OPTIONS_REQUEST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 0), + ), +) + +RESERVED_CAPACITY_ALLOCATION_STRATEGY: StaticSchema = ( + 14, + n0, + _RCAS, + 0, + (_PRIORITIZED,), + ((-1, {_sV: _prio}),), +) + +CAPACITY_RESERVATION_ID_SET: StaticSchema = ( + 16, + n0, + _CRIS, + 0, + (_me,), + ((CAPACITY_RESERVATION_ID, {_sN: _i}),), +) + +RESOURCE_GROUP_NAME: StaticSchema = (3, n0, _RGN, 0) + +CAPACITY_RESERVATION_RESOURCE_GROUP_ARN_SET: StaticSchema = ( + 16, + n0, + _CRRGAS, + 0, + (_me,), + ((RESOURCE_GROUP_NAME, {_sN: _i}),), +) + +FLEET_CAPACITY_RESERVATION_TARGET_REQUEST: StaticSchema = ( + 18, + n0, + _FCRTR, + 0, + (_CRIa, _CRRGA), + ( + (CAPACITY_RESERVATION_ID_SET, {_sN: _CRI}), + (CAPACITY_RESERVATION_RESOURCE_GROUP_ARN_SET, {_sN: _CRRGAa}), + ), +) + +FLEET_RESERVATION_TYPE: StaticSchema = ( + 14, + n0, + _FRT, + 0, + (_ODCR, _CB_, _ICR), + ((-1, {_sV: _odcr}), (-1, {_sV: _cb_}), (-1, {_sV: _icr})), +) + +RESERVATION_TYPE_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _RTLR, + 0, + (_me,), + ((FLEET_RESERVATION_TYPE, {_sN: _RTes}),), +) + +RESERVED_CAPACITY_FALLBACK_MARKET_TYPE: StaticSchema = ( + 14, + n0, + _RCFMT, + 0, + (_OD,), + ((-1, {_sV: _od}),), +) + +RESERVED_CAPACITY_FALLBACK_MARKET_TYPE_LIST: StaticSchema = ( + 16, + n0, + _RCFMTL, + 0, + (_me,), + ((RESERVED_CAPACITY_FALLBACK_MARKET_TYPE, {_sN: _i}),), +) + +RESERVED_CAPACITY_FALLBACK_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _RCFOR, + 0, + (_MTa,), + ((RESERVED_CAPACITY_FALLBACK_MARKET_TYPE_LIST, {_sN: _MTar}),), +) + +RESERVED_CAPACITY_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _RCOR, + 0, + (_ASll, _RTese, _CRTap, _RCFO), + ( + (RESERVED_CAPACITY_ALLOCATION_STRATEGY, 0), + (RESERVATION_TYPE_LIST_REQUEST, {_sN: _RTes}), + (FLEET_CAPACITY_RESERVATION_TARGET_REQUEST, 0), + (RESERVED_CAPACITY_FALLBACK_OPTIONS_REQUEST, 0), + ), +) + +SPOT_ALLOCATION_STRATEGY: StaticSchema = ( + 14, + n0, + _SASp, + 0, + (_LP, _DIVERSIFIED, _CO_, _COP, _PCO), + ( + (-1, {_sV: _lp}), + (-1, {_sV: _div}), + (-1, {_sV: _co_}), + (-1, {_sV: _cop}), + (-1, {_sV: _pco}), + ), +) + +SPOT_INSTANCE_INTERRUPTION_BEHAVIOR: StaticSchema = ( + 14, + n0, + _SIIB, + 0, + (_hib, _stop, _term), + ((-1, {_sV: _hib}), (-1, {_sV: _stop}), (-1, {_sV: _term})), +) + +FLEET_REPLACEMENT_STRATEGY: StaticSchema = ( + 14, + n0, + _FRS, + 0, + (_LAUNCH, _LBT_), + ((-1, {_sV: _laun}), (-1, {_sV: _lbt})), +) + +FLEET_SPOT_CAPACITY_REBALANCE_REQUEST: StaticSchema = ( + 18, + n0, + _FSCRR, + 0, + (_RSep, _TD), + ((FLEET_REPLACEMENT_STRATEGY, 0), (INTEGER, 0)), +) + +FLEET_SPOT_MAINTENANCE_STRATEGIES_REQUEST: StaticSchema = ( + 18, + n0, + _FSMSR, + 0, + (_CRapa,), + ((FLEET_SPOT_CAPACITY_REBALANCE_REQUEST, 0),), +) + +SPOT_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _SOR, + 0, + (_ASll, _MS, _IIB, _IPTUC, _SIT, _SAZ, _MTC, _MTP), + ( + (SPOT_ALLOCATION_STRATEGY, 0), + (FLEET_SPOT_MAINTENANCE_STRATEGIES_REQUEST, 0), + (SPOT_INSTANCE_INTERRUPTION_BEHAVIOR, 0), + (INTEGER, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 0), + ), +) + +DEFAULT_TARGET_CAPACITY_TYPE: StaticSchema = ( + 14, + n0, + _DTCT, + 0, + (_SPOT, _OD, _CB_, _RC), + ((-1, {_sV: _spo}), (-1, {_sV: _od}), (-1, {_sV: _cb_}), (-1, {_sV: _rc})), +) + +TARGET_CAPACITY_UNIT_TYPE: StaticSchema = ( + 14, + n0, + _TCUT, + 0, + (_VCPU, _MM, _UNITS), + ( + (-1, {_sV: _vcp}), + ( + -1, + { + _sV: _mm_____________________________________________________________________ + }, + ), + (-1, {_sV: _uni}), + ), +) + +TARGET_CAPACITY_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _TCSR, + 0, + (_TTC, _ODTC, _STC, _DTCT, _TCUT), + ( + (INTEGER, 1), + (INTEGER, 0), + (INTEGER, 0), + (DEFAULT_TARGET_CAPACITY_TYPE, 0), + (TARGET_CAPACITY_UNIT_TYPE, 0), + ), +) + +FLEET_TYPE: StaticSchema = ( + 14, + n0, + _FTl, + 0, + (_REQUEST, _MAINTAIN, _INSTANT), + ((-1, {_sV: _reque}), (-1, {_sV: _mai}), (-1, {_sV: _inst})), +) + +CREATE_FLEET_INPUT: StaticSchema = ( + 18, + n0, + _CFIr, + {_sSI: _cCFR, _sm: None}, + ( + _DR, + _CTl, + _SO, + _ODO, + _RCO, + _ECTP, + _LTC, + _TCS, + _TIWE, + _Ty, + _VF, + _VU, + _RUI, + _TSa, + _Con, + ), + ( + (BOOLEAN, 0), + (STRING, 2), + (SPOT_OPTIONS_REQUEST, 0), + (ON_DEMAND_OPTIONS_REQUEST, 0), + (RESERVED_CAPACITY_OPTIONS_REQUEST, 0), + (FLEET_EXCESS_CAPACITY_TERMINATION_POLICY, 0), + (FLEET_LAUNCH_TEMPLATE_CONFIG_LIST_REQUEST, 1), + (TARGET_CAPACITY_SPECIFICATION_REQUEST, 1), + (BOOLEAN, 0), + (FLEET_TYPE, 0), + (DATE_TIME, 0), + (DATE_TIME, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 0), + ), +) + +FLEET_LAUNCH_TEMPLATE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _FLTS, + 0, + (_LTI, _LTN, _Ve), + ( + (STRING, {_aQN: _LTI, _sN: _lTI}), + (LAUNCH_TEMPLATE_NAME, {_aQN: _LTN, _sN: _lTN}), + (STRING, {_aQN: _Ve, _sN: _ver}), + ), +) + +EBS_BLOCK_DEVICE_RESPONSE: StaticSchema = ( + 18, + n0, + _EBDR, + 0, + (_En, _DOT, _Io, _Th, _KKI, _SIn, _VSol, _VT), + ( + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (KMS_KEY_ID, {_aQN: _KKI, _sN: _kKI}), + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + ), +) + +BLOCK_DEVICE_MAPPING_RESPONSE: StaticSchema = ( + 18, + n0, + _BDMR, + 0, + (_DNe, _VN, _Eb, _ND), + ( + (STRING, {_aQN: _DNe, _sN: _dNe}), + (STRING, {_aQN: _VN, _sN: _vN}), + (EBS_BLOCK_DEVICE_RESPONSE, {_aQN: _Eb, _sN: _eb}), + (STRING, {_aQN: _ND, _sN: _nD}), + ), +) + +BLOCK_DEVICE_MAPPING_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _BDMRL, + 0, + (_me,), + ((BLOCK_DEVICE_MAPPING_RESPONSE, {_sN: _i}),), +) + +BASELINE_EBS_BANDWIDTH_MBPS: StaticSchema = ( + 18, + n0, + _BEBM, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +PERFORMANCE_FACTOR_REFERENCE: StaticSchema = ( + 18, + n0, + _PFR, + 0, + (_IF,), + ((STRING, {_aQN: _IF, _sN: _iF}),), +) + +PERFORMANCE_FACTOR_REFERENCE_SET: StaticSchema = ( + 16, + n0, + _PFRS, + 0, + (_me,), + ((PERFORMANCE_FACTOR_REFERENCE, {_sN: _i}),), +) + +CPU_PERFORMANCE_FACTOR: StaticSchema = ( + 18, + n0, + _CPF, + 0, + (_Ref,), + ((PERFORMANCE_FACTOR_REFERENCE_SET, {_aQN: _RSef, _sN: _rSef}),), +) + +BASELINE_PERFORMANCE_FACTORS: StaticSchema = ( + 18, + n0, + _BPF, + 0, + (_Cp,), + ((CPU_PERFORMANCE_FACTOR, {_aQN: _Cp, _sN: _cpu}),), +) + +MEMORY_GI_B_PER_V_CPU: StaticSchema = ( + 18, + n0, + _MGBPVC, + 0, + (_M, _Ma), + ((DOUBLE, {_aQN: _M, _sN: _m}), (DOUBLE, {_aQN: _Ma, _sN: _ma})), +) + +MEMORY_MI_B: StaticSchema = ( + 18, + n0, + _MMB, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +NETWORK_BANDWIDTH_GBPS: StaticSchema = ( + 18, + n0, + _NBGe, + 0, + (_M, _Ma), + ((DOUBLE, {_aQN: _M, _sN: _m}), (DOUBLE, {_aQN: _Ma, _sN: _ma})), +) + +NETWORK_INTERFACE_COUNT: StaticSchema = ( + 18, + n0, + _NIC, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +TOTAL_LOCAL_STORAGE_GB: StaticSchema = ( + 18, + n0, + _TLSGB, + 0, + (_M, _Ma), + ((DOUBLE, {_aQN: _M, _sN: _m}), (DOUBLE, {_aQN: _Ma, _sN: _ma})), +) + +V_CPU_COUNT_RANGE: StaticSchema = ( + 18, + n0, + _VCCR, + 0, + (_M, _Ma), + ((INTEGER, {_aQN: _M, _sN: _m}), (INTEGER, {_aQN: _Ma, _sN: _ma})), +) + +INSTANCE_REQUIREMENTS: StaticSchema = ( + 18, + n0, + _IRn, + 0, + ( + _VCC, + _MMB, + _CMp, + _MGBPVC, + _EITx, + _IGns, + _SMPPOLP, + _ODMPPOLP, + _BM, + _BP, + _RHS, + _NIC, + _LSo, + _LSTo, + _TLSGB, + _BEBM, + _ATc, + _AC, + _AMc, + _ANc, + _ATMMB, + _NBGe, + _AITl, + _MSPAPOOODP, + _BPF, + _REIT, + ), + ( + (V_CPU_COUNT_RANGE, {_aQN: _VCC, _sN: _vCC}), + (MEMORY_MI_B, {_aQN: _MMB, _sN: _mMB}), + (CPU_MANUFACTURER_SET, {_aQN: _CMS, _sN: _cMS}), + (MEMORY_GI_B_PER_V_CPU, {_aQN: _MGBPVC, _sN: _mGBPVC}), + (EXCLUDED_INSTANCE_TYPE_SET, {_aQN: _EITS, _sN: _eITS}), + (INSTANCE_GENERATION_SET, {_aQN: _IGS, _sN: _iGS}), + (INTEGER, {_aQN: _SMPPOLP, _sN: _sMPPOLP}), + (INTEGER, {_aQN: _ODMPPOLP, _sN: _oDMPPOLP}), + (BARE_METAL, {_aQN: _BM, _sN: _bM}), + (BURSTABLE_PERFORMANCE, {_aQN: _BP, _sN: _bP}), + (BOOLEAN, {_aQN: _RHS, _sN: _rHS}), + (NETWORK_INTERFACE_COUNT, {_aQN: _NIC, _sN: _nIC}), + (LOCAL_STORAGE, {_aQN: _LSo, _sN: _lSo}), + (LOCAL_STORAGE_TYPE_SET, {_aQN: _LSTS, _sN: _lSTS}), + (TOTAL_LOCAL_STORAGE_GB, {_aQN: _TLSGB, _sN: _tLSGB}), + (BASELINE_EBS_BANDWIDTH_MBPS, {_aQN: _BEBM, _sN: _bEBM}), + (ACCELERATOR_TYPE_SET, {_aQN: _ATS, _sN: _aTSc}), + (ACCELERATOR_COUNT, {_aQN: _AC, _sN: _aC}), + (ACCELERATOR_MANUFACTURER_SET, {_aQN: _AMS, _sN: _aMSc}), + (ACCELERATOR_NAME_SET, {_aQN: _ANS, _sN: _aNS}), + (ACCELERATOR_TOTAL_MEMORY_MI_B, {_aQN: _ATMMB, _sN: _aTMMB}), + (NETWORK_BANDWIDTH_GBPS, {_aQN: _NBGe, _sN: _nBGe}), + (ALLOWED_INSTANCE_TYPE_SET, {_aQN: _AITS, _sN: _aITS}), + (INTEGER, {_aQN: _MSPAPOOODP, _sN: _mSPAPOOODP}), + (BASELINE_PERFORMANCE_FACTORS, {_aQN: _BPF, _sN: _bPF}), + (BOOLEAN, {_aQN: _REIT, _sN: _rEIT}), + ), +) + +PLACEMENT_RESPONSE: StaticSchema = ( + 18, + n0, + _PRl, + 0, + (_GN,), + ((PLACEMENT_GROUP_NAME, {_aQN: _GN, _sN: _gN}),), +) + +FLEET_LAUNCH_TEMPLATE_OVERRIDES: StaticSchema = ( + 18, + n0, + _FLTO, + 0, + (_IT, _MP, _SIu, _AZ, _WC, _Pr, _Pl, _IRn, _IIm, _BDMl, _AZI), + ( + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _MP, _sN: _mP}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (DOUBLE, {_aQN: _WC, _sN: _wC}), + (DOUBLE, {_aQN: _Pr, _sN: _pri}), + (PLACEMENT_RESPONSE, {_aQN: _Pl, _sN: _pla}), + (INSTANCE_REQUIREMENTS, {_aQN: _IRn, _sN: _iRn}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (BLOCK_DEVICE_MAPPING_RESPONSE_LIST, {_aQN: _BDMS, _sN: _bDMS}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + ), +) + +LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE: StaticSchema = ( + 18, + n0, + _LTAOR, + 0, + (_LTS, _Ov), + ( + (FLEET_LAUNCH_TEMPLATE_SPECIFICATION, {_aQN: _LTS, _sN: _lTS}), + (FLEET_LAUNCH_TEMPLATE_OVERRIDES, {_aQN: _Ov, _sN: _ov}), + ), +) + +INSTANCE_LIFECYCLE: StaticSchema = ( + 14, + n0, + _ILn, + 0, + (_SPOT, _OD, _ICR, _CB_), + ((-1, {_sV: _spo}), (-1, {_sV: _od}), (-1, {_sV: _icr}), (-1, {_sV: _cb_})), +) + +CREATE_FLEET_ERROR: StaticSchema = ( + 18, + n0, + _CFE, + 0, + (_LTAO, _Li, _ECr, _EM), + ( + (LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE, {_aQN: _LTAO, _sN: _lTAO}), + (INSTANCE_LIFECYCLE, {_aQN: _Li, _sN: _lif}), + (STRING, {_aQN: _ECr, _sN: _eCr}), + (STRING, {_aQN: _EM, _sN: _eM}), + ), +) + +CREATE_FLEET_ERRORS_SET: StaticSchema = ( + 16, + n0, + _CFES, + 0, + (_me,), + ((CREATE_FLEET_ERROR, {_sN: _i}),), +) + +FLEET_ID: StaticSchema = (3, n0, _FIl, 0) + +INSTANCE_IDS_SET: StaticSchema = (16, n0, _IISn, 0, (_me,), ((INSTANCE_ID, {_sN: _i}),)) + +PLATFORM_VALUES: StaticSchema = (14, n0, _PV, 0, (_W,), ((-1, {_sV: _W}),)) + +CREATE_FLEET_INSTANCE: StaticSchema = ( + 18, + n0, + _CFIre, + 0, + (_LTAO, _Li, _IIn, _IT, _Pla, _AZI, _AZ, _SIu), + ( + (LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE, {_aQN: _LTAO, _sN: _lTAO}), + (INSTANCE_LIFECYCLE, {_aQN: _Li, _sN: _lif}), + (INSTANCE_IDS_SET, {_aQN: _IIn, _sN: _iIns}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + ), +) + +CREATE_FLEET_INSTANCES_SET: StaticSchema = ( + 16, + n0, + _CFIS, + 0, + (_me,), + ((CREATE_FLEET_INSTANCE, {_sN: _i}),), +) + +CREATE_FLEET_OUTPUT: StaticSchema = ( + 18, + n0, + _CFO, + {_sSI: _cCFRo, _smit: None}, + (_FIl, _Er, _Ins), + ( + (FLEET_ID, {_aQN: _FIl, _sN: _fIl}), + (CREATE_FLEET_ERRORS_SET, {_aQN: _ESr, _sN: _eSr}), + (CREATE_FLEET_INSTANCES_SET, {_aQN: _FIS, _sN: _fIS}), + ), +) + +CREATE_FLEET: StaticOperationSchema = ( + 23, + n0, + _CF, + 0, + CREATE_FLEET_INPUT, + CREATE_FLEET_OUTPUT, + (), +) + +DESTINATION_FILE_FORMAT: StaticSchema = ( + 14, + n0, + _DFF, + 0, + (_pt_, _par), + ((-1, {_sV: _pt__}), (-1, {_sV: _par})), +) + +DESTINATION_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _DOR, + 0, + (_FF, _HCPi, _PHP), + ((DESTINATION_FILE_FORMAT, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +LOG_DESTINATION_TYPE: StaticSchema = ( + 14, + n0, + _LDT, + 0, + (_cwl, _s_, _kdf), + ((-1, {_sV: _cwl_}), (-1, {_sV: _s_}), (-1, {_sV: _kdf_})), +) + +FLOW_LOG_RESOURCE_ID: StaticSchema = (3, n0, _FLRI, 0) + +FLOW_LOG_RESOURCE_IDS: StaticSchema = ( + 16, + n0, + _FLRIl, + 0, + (_me,), + ((FLOW_LOG_RESOURCE_ID, {_sN: _i}),), +) + +FLOW_LOGS_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _FLRT, + 0, + (_VPC_, _Sub, _NI, _TGr, _TGA, _RNG, _CN, _CNE, _CNAo), + ( + (-1, {_sV: _VPC_}), + (-1, {_sV: _Sub}), + (-1, {_sV: _NI}), + (-1, {_sV: _TGr}), + (-1, {_sV: _TGA}), + (-1, {_sV: _RNG}), + (-1, {_sV: _CN}), + (-1, {_sV: _CNE}), + (-1, {_sV: _CNAo}), + ), +) + +TAGGABLE_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _TRT, + 0, + (_ni, _ins, _asg), + ((-1, {_sV: _ni_}), (-1, {_sV: _ins}), (-1, {_sV: _asg_})), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_me,), ((TAG_KEY, {_sN: _i}),)) + +TAG_FIELD_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _TFSR, + 0, + (_RT, _TKa), + ((TAGGABLE_RESOURCE_TYPE, 0), (TAG_KEY_LIST, {_sN: _TK})), +) + +TAG_FIELD_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _TFSLR, + 0, + (_me,), + ((TAG_FIELD_SPECIFICATION_REQUEST, {_sN: _i}),), +) + +TRAFFIC_TYPE: StaticSchema = ( + 14, + n0, + _TTr, + 0, + (_ACCEPT, _REJECT, _ALL), + ((-1, {_sV: _ACCEPT}), (-1, {_sV: _REJECT}), (-1, {_sV: _ALL})), +) + +CREATE_FLOW_LOGS_INPUT: StaticSchema = ( + 18, + n0, + _CFLI, + {_sSI: _cCFLR, _sm: None}, + ( + _DR, + _CTl, + _DLPA, + _DCAR, + _LGN, + _RIes, + _RT, + _TTr, + _LDT, + _LD, + _LF, + _TSa, + _MAI, + _DOe, + _TFS, + ), + ( + (BOOLEAN, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (FLOW_LOG_RESOURCE_IDS, {_sN: _RIe, _smi: None}), + (FLOW_LOGS_RESOURCE_TYPE, 1), + (TRAFFIC_TYPE, 0), + (LOG_DESTINATION_TYPE, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (INTEGER, 0), + (DESTINATION_OPTIONS_REQUEST, 0), + (TAG_FIELD_SPECIFICATION_LIST_REQUEST, {_sN: _TFSa}), + ), +) + +CREATE_FLOW_LOGS_OUTPUT: StaticSchema = ( + 18, + n0, + _CFLO, + {_sSI: _cCFLRo, _smit: None}, + (_CTl, _FLI, _Un), + ( + (STRING, {_aQN: _CTl, _sN: _cTl}), + (VALUE_STRING_LIST, {_aQN: _FLIS, _sN: _fLIS}), + (UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}), + ), +) + +CREATE_FLOW_LOGS: StaticOperationSchema = ( + 23, + n0, + _CFL, + 0, + CREATE_FLOW_LOGS_INPUT, + CREATE_FLOW_LOGS_OUTPUT, + (), +) + +STORAGE_LOCATION: StaticSchema = ( + 18, + n0, + _SLt, + 0, + (_Bu, _Ke), + ((STRING, 0), (STRING, 0)), +) + +CREATE_FPGA_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _CFIIr, + {_sSI: _cCFIRom, _sm: None}, + (_DR, _ISL, _LSL, _Des, _N, _CTl, _TSa), + ( + (BOOLEAN, 0), + (STORAGE_LOCATION, 1), + (STORAGE_LOCATION, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CREATE_FPGA_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _CFIOr, + {_sSI: _cCFIRoma, _smit: None}, + (_FII, _FIGI), + ((STRING, {_aQN: _FII, _sN: _fII}), (STRING, {_aQN: _FIGI, _sN: _fIGI})), +) + +CREATE_FPGA_IMAGE: StaticOperationSchema = ( + 23, + n0, + _CFIrea, + 0, + CREATE_FPGA_IMAGE_INPUT, + CREATE_FPGA_IMAGE_OUTPUT, + (), +) + +EBS_BLOCK_DEVICE: StaticSchema = ( + 18, + n0, + _EBD, + 0, + (_DOT, _Io, _SIn, _VSol, _VT, _KKI, _Th, _OA, _AZ, _En, _VIR, _AZI, _ECI), + ( + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (INTEGER, 0), + (STRING, 0), + (INTEGER, 0), + ), +) + +BLOCK_DEVICE_MAPPING: StaticSchema = ( + 18, + n0, + _BDM, + 0, + (_Eb, _ND, _DNe, _VN), + ( + (EBS_BLOCK_DEVICE, {_aQN: _Eb, _sN: _eb}), + (STRING, {_aQN: _ND, _sN: _nD}), + (STRING, {_aQN: _DNe, _sN: _dNe}), + (STRING, {_aQN: _VN, _sN: _vN}), + ), +) + +BLOCK_DEVICE_MAPPING_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _BDMRLl, + 0, + (_me,), + ((BLOCK_DEVICE_MAPPING, {_sN: _BDM}),), +) + +BOOT_MODE_OVERRIDE_VALUES: StaticSchema = ( + 14, + n0, + _BMOV, + 0, + (_ue,), + ((-1, {_sV: _ue}),), +) + +SNAPSHOT_LOCATION_ENUM: StaticSchema = ( + 14, + n0, + _SLE, + 0, + (_REGIONAL, _LOCAL), + ((-1, {_sV: _regi}), (-1, {_sV: _lo})), +) + +CREATE_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _CIIr, + {_sSI: _cCIRom, _sm: None}, + (_TSa, _SLn, _BMO, _DR, _II, _N, _Des, _NR, _BDMl), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (SNAPSHOT_LOCATION_ENUM, 0), + (BOOT_MODE_OVERRIDE_VALUES, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (IMAGE_NAME_REQUEST, {_aQN: _N, _sN: _nam, _smi: None}), + (IMAGE_DESCRIPTION_REQUEST, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _NR, _sN: _nR}), + (BLOCK_DEVICE_MAPPING_REQUEST_LIST, {_aQN: _BDM, _sN: _bDM}), + ), +) + +CREATE_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _CIOr, + {_sSI: _cCIRoma, _smit: None}, + (_IIm,), + ((STRING, {_aQN: _IIm, _sN: _iIm}),), +) + +CREATE_IMAGE: StaticOperationSchema = ( + 23, + n0, + _CIr, + 0, + CREATE_IMAGE_INPUT, + CREATE_IMAGE_OUTPUT, + (), +) + +IMAGE_USAGE_REPORT_USER_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _IURUISL, + 0, + (_me,), + ((STRING, {_sN: _UIs}),), +) + +CREATE_IMAGE_USAGE_REPORT_CLIENT_TOKEN: StaticSchema = (3, n0, _CIURCT, 0) + +IMAGE_USAGE_RESOURCE_TYPE_NAME: StaticSchema = (3, n0, _IURTN, 0) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION_VALUE: StaticSchema = (3, n0, _IURTOV, 0) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION_VALUES_LIST: StaticSchema = ( + 16, + n0, + _IURTOVL, + 0, + (_me,), + ((IMAGE_USAGE_RESOURCE_TYPE_OPTION_VALUE, {_sN: _i}),), +) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION_REQUEST: StaticSchema = ( + 18, + n0, + _IURTOR, + 0, + (_ON, _OV), + ((STRING, 0), (IMAGE_USAGE_RESOURCE_TYPE_OPTION_VALUES_LIST, {_sN: _OVp})), +) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _IURTORL, + 0, + (_me,), + ((IMAGE_USAGE_RESOURCE_TYPE_OPTION_REQUEST, 0),), +) + +IMAGE_USAGE_RESOURCE_TYPE_REQUEST: StaticSchema = ( + 18, + n0, + _IURTR, + 0, + (_RT, _RTO), + ( + (IMAGE_USAGE_RESOURCE_TYPE_NAME, 0), + (IMAGE_USAGE_RESOURCE_TYPE_OPTION_REQUEST_LIST, {_sN: _RTOe}), + ), +) + +IMAGE_USAGE_RESOURCE_TYPE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _IURTRL, + 0, + (_me,), + ((IMAGE_USAGE_RESOURCE_TYPE_REQUEST, 0),), +) + +CREATE_IMAGE_USAGE_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _CIURI, + {_sSI: _cCIURR, _sm: None}, + (_IIm, _DR, _RTe, _AIcc, _CTl, _TSa), + ( + (IMAGE_ID, 1), + (BOOLEAN, 0), + (IMAGE_USAGE_RESOURCE_TYPE_REQUEST_LIST, {_sN: _RT, _smi: None}), + (IMAGE_USAGE_REPORT_USER_ID_STRING_LIST, {_sN: _AIcco}), + (CREATE_IMAGE_USAGE_REPORT_CLIENT_TOKEN, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +IMAGE_USAGE_REPORT_ID: StaticSchema = (3, n0, _IURI, 0) + +CREATE_IMAGE_USAGE_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _CIURO, + {_sSI: _cCIURRo, _smit: None}, + (_RIep,), + ((IMAGE_USAGE_REPORT_ID, {_aQN: _RIep, _sN: _rIe}),), +) + +CREATE_IMAGE_USAGE_REPORT: StaticOperationSchema = ( + 23, + n0, + _CIUR, + 0, + CREATE_IMAGE_USAGE_REPORT_INPUT, + CREATE_IMAGE_USAGE_REPORT_OUTPUT, + (), +) + +IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _IAT, + 0, + (_ipv, _du, _ipv_), + ((-1, {_sV: _ipv}), (-1, {_sV: _du}), (-1, {_sV: _ipv_})), +) + +SECURITY_GROUP_ID_STRING_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _SGISLR, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _SGI}),), +) + +CREATE_INSTANCE_CONNECT_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CICEI, + {_sSI: _cCICER, _sm: None}, + (_DR, _SIu, _SGIe, _PCI, _CTl, _TSa, _IAT), + ( + (BOOLEAN, 0), + (SUBNET_ID, 1), + (SECURITY_GROUP_ID_STRING_LIST_REQUEST, {_sN: _SGI}), + (BOOLEAN, 0), + (STRING, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (IP_ADDRESS_TYPE, 0), + ), +) + +INSTANCE_CONNECT_ENDPOINT_ID: StaticSchema = (3, n0, _ICEI, 0) + +NETWORK_INTERFACE_ID_SET: StaticSchema = ( + 16, + n0, + _NIIS, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +INSTANCE_CONNECT_ENDPOINT_DNS_NAMES: StaticSchema = ( + 18, + n0, + _ICEDN, + 0, + (_DN, _FDN), + ((STRING, {_aQN: _DN, _sN: _dN}), (STRING, {_aQN: _FDN, _sN: _fDN})), +) + +INSTANCE_CONNECT_ENDPOINT_PUBLIC_DNS_NAMES: StaticSchema = ( + 18, + n0, + _ICEPDN, + 0, + (_Ip, _Du), + ( + (INSTANCE_CONNECT_ENDPOINT_DNS_NAMES, {_aQN: _Ip, _sN: _ipv}), + (INSTANCE_CONNECT_ENDPOINT_DNS_NAMES, {_aQN: _Du, _sN: _du}), + ), +) + +SECURITY_GROUP_ID_SET: StaticSchema = ( + 16, + n0, + _SGIS, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _i}),), +) + +EC2_INSTANCE_CONNECT_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _EICES, + 0, + (_cip, _cc_, _cf________________________, _dip_, _dc_, _df___, _uip, _uc, _uf), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _uip_}), + (-1, {_sV: _uc_}), + (-1, {_sV: _uf_}), + ), +) + +EC2_INSTANCE_CONNECT_ENDPOINT: StaticSchema = ( + 18, + n0, + _EICE, + 0, + ( + _OIw, + _ICEI, + _ICEA, + _St, + _SMta, + _DN, + _FDN, + _NIIe, + _VI, + _AZ, + _CAr, + _SIu, + _PCI, + _SGIe, + _Tag, + _IAT, + _PDN, + _AZI, + ), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (INSTANCE_CONNECT_ENDPOINT_ID, {_aQN: _ICEI, _sN: _iCEI}), + (RESOURCE_ARN, {_aQN: _ICEA, _sN: _iCEA}), + (EC2_INSTANCE_CONNECT_ENDPOINT_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (STRING, {_aQN: _DN, _sN: _dN}), + (STRING, {_aQN: _FDN, _sN: _fDN}), + (NETWORK_INTERFACE_ID_SET, {_aQN: _NIIS, _sN: _nIIS}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (MILLISECOND_DATE_TIME, {_aQN: _CAr, _sN: _cAr}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (BOOLEAN, {_aQN: _PCI, _sN: _pCI}), + (SECURITY_GROUP_ID_SET, {_aQN: _SGIS, _sN: _sGIS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IP_ADDRESS_TYPE, {_aQN: _IAT, _sN: _iAT}), + (INSTANCE_CONNECT_ENDPOINT_PUBLIC_DNS_NAMES, {_aQN: _PDN, _sN: _pDN}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + ), +) + +CREATE_INSTANCE_CONNECT_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CICEO, + {_sSI: _cCICERo, _smit: None}, + (_ICE, _CTl), + ( + (EC2_INSTANCE_CONNECT_ENDPOINT, {_aQN: _ICE, _sN: _iCE}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_INSTANCE_CONNECT_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CICE, + 0, + CREATE_INSTANCE_CONNECT_ENDPOINT_INPUT, + CREATE_INSTANCE_CONNECT_ENDPOINT_OUTPUT, + (), +) + +INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _IEWTRR, + 0, + (_SWD, _SH, _EWD, _EH), + ((WEEK_DAY, 0), (HOUR, 0), (WEEK_DAY, 0), (HOUR, 0)), +) + +INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST_SET: StaticSchema = ( + 16, + n0, + _IEWTRRS, + 0, + (_me,), + ((INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST, 0),), +) + +CREATE_INSTANCE_EVENT_WINDOW_INPUT: StaticSchema = ( + 18, + n0, + _CIEWI, + {_sSI: _cCIEWR, _sm: None}, + (_DR, _N, _TRi, _CE, _TSa), + ( + (BOOLEAN, 0), + (STRING, 0), + (INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST_SET, {_sN: _TRim}), + (INSTANCE_EVENT_WINDOW_CRON_EXPRESSION, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CREATE_INSTANCE_EVENT_WINDOW_OUTPUT: StaticSchema = ( + 18, + n0, + _CIEWO, + {_sSI: _cCIEWRo, _smit: None}, + (_IEW,), + ((INSTANCE_EVENT_WINDOW, {_aQN: _IEW, _sN: _iEW}),), +) + +CREATE_INSTANCE_EVENT_WINDOW: StaticOperationSchema = ( + 23, + n0, + _CIEW, + 0, + CREATE_INSTANCE_EVENT_WINDOW_INPUT, + CREATE_INSTANCE_EVENT_WINDOW_OUTPUT, + (), +) + +CONTAINER_FORMAT: StaticSchema = (14, n0, _CFo, 0, (_ova,), ((-1, {_sV: _ova}),)) + +DISK_IMAGE_FORMAT: StaticSchema = ( + 14, + n0, + _DIF, + 0, + (_VMDK, _RAW, _VHD), + ((-1, {_sV: _VMDK}), (-1, {_sV: _RAW}), (-1, {_sV: _VHD})), +) + +EXPORT_TO_S3_TASK_SPECIFICATION: StaticSchema = ( + 18, + n0, + _ETSTS, + 0, + (_DIF, _CFo, _SBu, _SPr), + ( + (DISK_IMAGE_FORMAT, {_aQN: _DIF, _sN: _dIF}), + (CONTAINER_FORMAT, {_aQN: _CFo, _sN: _cF}), + (STRING, {_aQN: _SBu, _sN: _sB}), + (STRING, {_aQN: _SPr, _sN: _sP}), + ), +) + +EXPORT_ENVIRONMENT: StaticSchema = ( + 14, + n0, + _EE, + 0, + (_cit, _vm, _mic), + ((-1, {_sV: _cit}), (-1, {_sV: _vm}), (-1, {_sV: _mic})), +) + +CREATE_INSTANCE_EXPORT_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CIETI, + {_sSI: _cCIETR, _sm: None}, + (_TSa, _Des, _II, _TEa, _ETST), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (EXPORT_ENVIRONMENT, {_aQN: _TEa, _sN: _tEa, _smi: None}), + (EXPORT_TO_S3_TASK_SPECIFICATION, {_aQN: _ETS, _sN: _eTS, _smi: None}), + ), +) + +EXPORT_TO_S3_TASK: StaticSchema = ( + 18, + n0, + _ETST, + 0, + (_CFo, _DIF, _SBu, _SK), + ( + (CONTAINER_FORMAT, {_aQN: _CFo, _sN: _cF}), + (DISK_IMAGE_FORMAT, {_aQN: _DIF, _sN: _dIF}), + (STRING, {_aQN: _SBu, _sN: _sB}), + (STRING, {_aQN: _SK, _sN: _sK}), + ), +) + +INSTANCE_EXPORT_DETAILS: StaticSchema = ( + 18, + n0, + _IED, + 0, + (_II, _TEa), + ((STRING, {_aQN: _II, _sN: _iI}), (EXPORT_ENVIRONMENT, {_aQN: _TEa, _sN: _tEa})), +) + +EXPORT_TASK_STATE: StaticSchema = ( + 14, + n0, + _ETSx, + 0, + (_act, _ca, _can, _compl), + ((-1, {_sV: _act}), (-1, {_sV: _ca}), (-1, {_sV: _can}), (-1, {_sV: _compl})), +) + +EXPORT_TASK: StaticSchema = ( + 18, + n0, + _ETx, + 0, + (_Des, _ETI, _ETST, _IED, _St, _SMt, _Tag), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _ETI, _sN: _eTI}), + (EXPORT_TO_S3_TASK, {_aQN: _ETS, _sN: _eTS}), + (INSTANCE_EXPORT_DETAILS, {_aQN: _IEn, _sN: _iEn}), + (EXPORT_TASK_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_INSTANCE_EXPORT_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CIETO, + {_sSI: _cCIETRo, _smit: None}, + (_ETx,), + ((EXPORT_TASK, {_aQN: _ETx, _sN: _eTx}),), +) + +CREATE_INSTANCE_EXPORT_TASK: StaticOperationSchema = ( + 23, + n0, + _CIET, + 0, + CREATE_INSTANCE_EXPORT_TASK_INPUT, + CREATE_INSTANCE_EXPORT_TASK_OUTPUT, + (), +) + +CREATE_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CIGI, + {_sSI: _cCIGR, _sm: None}, + (_TSa, _DR), + ((TAG_SPECIFICATION_LIST, {_sN: _TS}), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +INTERNET_GATEWAY: StaticSchema = ( + 18, + n0, + _IG, + 0, + (_Att, _IGI, _OIw, _Tag), + ( + (INTERNET_GATEWAY_ATTACHMENT_LIST, {_aQN: _AStt, _sN: _aSt}), + (STRING, {_aQN: _IGI, _sN: _iGI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_INTERNET_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CIGO, + {_sSI: _cCIGRo, _smit: None}, + (_IG,), + ((INTERNET_GATEWAY, {_aQN: _IG, _sN: _iG}),), +) + +CREATE_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CIG, + 0, + CREATE_INTERNET_GATEWAY_INPUT, + CREATE_INTERNET_GATEWAY_OUTPUT, + (), +) + +CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT: StaticSchema = ( + 18, + n0, + _CICRAI, + {_sSI: _cCICRAR, _sm: None}, + (_CRI, _IC, _CTl, _DR, _TSa, _ZSP), + ( + (CAPACITY_RESERVATION_ID, 1), + (INTEGER, 1), + (STRING, 2), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (ZERO_SIZE_PREFERENCE, 0), + ), +) + +CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CICRAO, + {_sSI: _cCICRARo, _smit: None}, + (_SCRI, _TIC, _Sta, _ITnt), + ( + (CAPACITY_RESERVATION_ID, {_aQN: _SCRI, _sN: _sCRI}), + (INTEGER, {_aQN: _TIC, _sN: _tIC}), + (INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_STATUS, {_aQN: _Sta, _sN: _sta}), + (INTERRUPTION_TYPE, {_aQN: _ITnt, _sN: _iTn}), + ), +) + +CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION: StaticOperationSchema = ( + 23, + n0, + _CICRA, + 0, + CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT, + CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT, + (), +) + +IPAM_METERED_ACCOUNT: StaticSchema = ( + 14, + n0, + _IMA, + 0, + (_io__, _ro), + ((-1, {_sV: _io___}), (-1, {_sV: _ro_})), +) + +IPAM_TIER: StaticSchema = ( + 14, + n0, + _ITp, + 0, + (_fre, _adva), + ((-1, {_sV: _fre}), (-1, {_sV: _adva})), +) + +CREATE_IPAM_INPUT: StaticSchema = ( + 18, + n0, + _CIIre, + {_sSI: _cCIRomam, _sm: None}, + (_DR, _Des, _ORp, _TSa, _CTl, _Tie, _EPG, _MAe), + ( + (BOOLEAN, 0), + (STRING, 0), + (ADD_IPAM_OPERATING_REGION_SET, {_sN: _ORpe}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (IPAM_TIER, 0), + (BOOLEAN, 0), + (IPAM_METERED_ACCOUNT, 0), + ), +) + +IPAM_OPERATING_REGION: StaticSchema = ( + 18, + n0, + _IOR, + 0, + (_RNe,), + ((STRING, {_aQN: _RNe, _sN: _rNe}),), +) + +IPAM_OPERATING_REGION_SET: StaticSchema = ( + 16, + n0, + _IORS, + 0, + (_me,), + ((IPAM_OPERATING_REGION, {_sN: _i}),), +) + +IPAM_SCOPE_ID: StaticSchema = (3, n0, _ISI, 0) + +IPAM_STATE: StaticSchema = ( + 14, + n0, + _ISpa, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM: StaticSchema = ( + 18, + n0, + _Ipa, + 0, + ( + _OIw, + _IIp, + _IApa, + _IR, + _PDSI, + _PDSIr, + _SCc, + _Des, + _ORp, + _St, + _Tag, + _DRDI, + _DRDAI, + _RDAC, + _SMta, + _Tie, + _EPG, + _MAe, + ), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (IPAM_SCOPE_ID, {_aQN: _PDSI, _sN: _pDSI}), + (IPAM_SCOPE_ID, {_aQN: _PDSIr, _sN: _pDSIr}), + (INTEGER, {_aQN: _SCc, _sN: _sCc}), + (STRING, {_aQN: _Des, _sN: _desc}), + (IPAM_OPERATING_REGION_SET, {_aQN: _ORS, _sN: _oRS}), + (IPAM_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _DRDI, _sN: _dRDI}), + (IPAM_RESOURCE_DISCOVERY_ASSOCIATION_ID, {_aQN: _DRDAI, _sN: _dRDAI}), + (INTEGER, {_aQN: _RDAC, _sN: _rDAC}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (IPAM_TIER, {_aQN: _Tie, _sN: _tie}), + (BOOLEAN, {_aQN: _EPG, _sN: _ePG}), + (IPAM_METERED_ACCOUNT, {_aQN: _MAe, _sN: _mA}), + ), +) + +CREATE_IPAM_OUTPUT: StaticSchema = ( + 18, + n0, + _CIOre, + {_sSI: _cCIRomama, _smit: None}, + (_Ipa,), + ((IPAM, {_aQN: _Ipa, _sN: _ip}),), +) + +CREATE_IPAM: StaticOperationSchema = ( + 23, + n0, + _CIre, + 0, + CREATE_IPAM_INPUT, + CREATE_IPAM_OUTPUT, + (), +) + +CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT: StaticSchema = ( + 18, + n0, + _CIERVTI, + {_sSI: _cCIERVTR, _sm: None}, + (_DR, _IIp, _TSa, _CTl), + ((BOOLEAN, 0), (IPAM_ID, 1), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (STRING, 2)), +) + +IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_ID: StaticSchema = (3, n0, _IERVTI, 0) + +IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_STATE: StaticSchema = ( + 14, + n0, + _IERVTS, + 0, + (_CIP, _CC_, _CF_, _DIP_, _DC__, _DF_), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + ), +) + +TOKEN_STATE: StaticSchema = ( + 14, + n0, + _TSo, + 0, + (_val, _ex), + ((-1, {_sV: _val}), (-1, {_sV: _ex})), +) + +IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN: StaticSchema = ( + 18, + n0, + _IERVT, + 0, + (_IERVTI, _IERVTA, _IIp, _IApa, _IR, _TV, _TN, _NA, _Sta, _Tag, _St), + ( + (IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_ID, {_aQN: _IERVTI, _sN: _iERVTI}), + (RESOURCE_ARN, {_aQN: _IERVTA, _sN: _iERVTA}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (STRING, {_aQN: _TV, _sN: _tV}), + (STRING, {_aQN: _TN, _sN: _tN}), + (MILLISECOND_DATE_TIME, {_aQN: _NA, _sN: _nA}), + (TOKEN_STATE, {_aQN: _Sta, _sN: _sta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_STATE, {_aQN: _St, _sN: _st}), + ), +) + +CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT: StaticSchema = ( + 18, + n0, + _CIERVTO, + {_sSI: _cCIERVTRo, _smit: None}, + (_IERVT,), + ((IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, {_aQN: _IERVT, _sN: _iERVT}),), +) + +CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN: StaticOperationSchema = ( + 23, + n0, + _CIERVT, + 0, + CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT, + CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT, + (), +) + +RIR: StaticSchema = ( + 14, + n0, + _Ri, + 0, + (_ripe, _apn, _ari, _lac, _nic), + ( + (-1, {_sV: _ripe}), + (-1, {_sV: _apn}), + (-1, {_sV: _ari}), + (-1, {_sV: _lac}), + (-1, {_sV: _nic}), + ), +) + +CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _CIIRAI, + {_sSI: _cCIIRAR, _sm: None}, + (_DR, _IIp, _Ri, _OHr, _Des, _TSa, _CTl), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (RIR, 1), + (STRING, 1), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _IIRAS, + 0, + ( + _pe_, + _cip, + _cf________________________, + _eip___, + _ec, + _ef__, + _dip___, + _dc___, + _df_____, + _dip_, + _dc_, + _df___, + ), + ( + (-1, {_sV: _pe__}), + (-1, {_sV: _cip_}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _eip____}), + (-1, {_sV: _ec_}), + (-1, {_sV: _ef___}), + (-1, {_sV: _dip____}), + (-1, {_sV: _dc____}), + (-1, {_sV: _df______}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION: StaticSchema = ( + 18, + n0, + _IIRA, + 0, + (_OIw, _IIRAI, _IIRAA, _IIp, _IR, _Ri, _OHr, _Des, _St, _SMta, _CRX, _Tag), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, {_aQN: _IIRAI, _sN: _iIRAI}), + (RESOURCE_ARN, {_aQN: _IIRAA, _sN: _iIRAA}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (RIR, {_aQN: _Ri, _sN: _rir}), + (STRING, {_aQN: _OHr, _sN: _oHr}), + (STRING, {_aQN: _Des, _sN: _desc}), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (STRING, {_aQN: _CRX, _sN: _cRX}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CIIRAO, + {_sSI: _cCIIRARo, _smit: None}, + (_IIRA,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION, {_aQN: _IIRA, _sN: _iIRA}),), +) + +CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _CIIRA, + 0, + CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT, + CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT, + (), +) + +CREATE_IPAM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CIPI, + {_sSI: _cCIPR, _sm: None}, + (_DR, _TSa, _CTl, _IIp), + ((BOOLEAN, 0), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (STRING, 2), (IPAM_ID, 1)), +) + +IPAM_POLICY_ID: StaticSchema = (3, n0, _IPIp, 0) + +IPAM_POLICY_STATE: StaticSchema = ( + 14, + n0, + _IPSp, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_POLICY: StaticSchema = ( + 18, + n0, + _IPpa, + 0, + (_OIw, _IPIp, _IPAp, _IPR, _St, _SMta, _Tag, _IIp), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_POLICY_ID, {_aQN: _IPIp, _sN: _iPIp}), + (RESOURCE_ARN, {_aQN: _IPAp, _sN: _iPAp}), + (STRING, {_aQN: _IPR, _sN: _iPR}), + (IPAM_POLICY_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + ), +) + +CREATE_IPAM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CIPO, + {_sSI: _cCIPRo, _smit: None}, + (_IPpa,), + ((IPAM_POLICY, {_aQN: _IPpa, _sN: _iPpa}),), +) + +CREATE_IPAM_POLICY: StaticOperationSchema = ( + 23, + n0, + _CIPr, + 0, + CREATE_IPAM_POLICY_INPUT, + CREATE_IPAM_POLICY_OUTPUT, + (), +) + +IPAM_NETMASK_LENGTH: StaticSchema = (7, n0, _INLpa, 0) + +REQUEST_IPAM_RESOURCE_TAG: StaticSchema = ( + 18, + n0, + _RIRT, + 0, + (_Ke, _Va), + ((STRING, 0), (STRING, 0)), +) + +REQUEST_IPAM_RESOURCE_TAG_LIST: StaticSchema = ( + 16, + n0, + _RIRTL, + 0, + (_me,), + ((REQUEST_IPAM_RESOURCE_TAG, {_sN: _i}),), +) + +IPAM_POOL_AWS_SERVICE: StaticSchema = ( + 14, + n0, + _IPAS, + 0, + (_ec__, _gs_), + ((-1, {_sV: _ec__}), (-1, {_sV: _gs__})), +) + +IPAM_POOL_PUBLIC_IP_SOURCE: StaticSchema = ( + 14, + n0, + _IPPIS, + 0, + (_ama, _b), + ((-1, {_sV: _ama}), (-1, {_sV: _b})), +) + +IPAM_POOL_SOURCE_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IPSRT, + 0, + (_vp,), + ((-1, {_sV: _vp}),), +) + +IPAM_POOL_SOURCE_RESOURCE_REQUEST: StaticSchema = ( + 18, + n0, + _IPSRR, + 0, + (_RIe, _RT, _RR, _ROe), + ((STRING, 0), (IPAM_POOL_SOURCE_RESOURCE_TYPE, 0), (STRING, 0), (STRING, 0)), +) + +CREATE_IPAM_POOL_INPUT: StaticSchema = ( + 18, + n0, + _CIPIr, + {_sSI: _cCIPRom, _sm: None}, + ( + _DR, + _ISI, + _Loc, + _SIPI, + _Des, + _AF, + _AIu, + _PAu, + _AMNL, + _AMNLl, + _ADNL, + _ARTl, + _TSa, + _CTl, + _ASw, + _PIS, + _SRou, + ), + ( + (BOOLEAN, 0), + (IPAM_SCOPE_ID, 1), + (STRING, 0), + (IPAM_POOL_ID, 0), + (STRING, 0), + (ADDRESS_FAMILY, 1), + (BOOLEAN, 0), + (BOOLEAN, 0), + (IPAM_NETMASK_LENGTH, 0), + (IPAM_NETMASK_LENGTH, 0), + (IPAM_NETMASK_LENGTH, 0), + (REQUEST_IPAM_RESOURCE_TAG_LIST, {_sN: _ARTll}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (IPAM_POOL_AWS_SERVICE, 0), + (IPAM_POOL_PUBLIC_IP_SOURCE, 0), + (IPAM_POOL_SOURCE_RESOURCE_REQUEST, 0), + ), +) + +IPAM_RESOURCE_TAG: StaticSchema = ( + 18, + n0, + _IRTp, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +IPAM_RESOURCE_TAG_LIST: StaticSchema = ( + 16, + n0, + _IRTL, + 0, + (_me,), + ((IPAM_RESOURCE_TAG, {_sN: _i}),), +) + +IPAM_SCOPE_TYPE: StaticSchema = ( + 14, + n0, + _IST, + 0, + (_pu, _priv), + ((-1, {_sV: _pu}), (-1, {_sV: _priv})), +) + +IPAM_POOL_SOURCE_RESOURCE: StaticSchema = ( + 18, + n0, + _IPSR, + 0, + (_RIe, _RT, _RR, _ROe), + ( + (STRING, {_aQN: _RIe, _sN: _rI}), + (IPAM_POOL_SOURCE_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _ROe, _sN: _rOe}), + ), +) + +IPAM_POOL_STATE: StaticSchema = ( + 14, + n0, + _IPSpa, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_POOL: StaticSchema = ( + 18, + n0, + _IPpam, + 0, + ( + _OIw, + _IPI, + _SIPI, + _IPApa, + _ISA, + _IST, + _IApa, + _IR, + _Loc, + _PD, + _St, + _SMta, + _Des, + _AIu, + _PAu, + _AF, + _AMNL, + _AMNLl, + _ADNL, + _ARTl, + _Tag, + _ASw, + _PIS, + _SRou, + ), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_POOL_ID, {_aQN: _IPI, _sN: _iPI}), + (IPAM_POOL_ID, {_aQN: _SIPI, _sN: _sIPI}), + (RESOURCE_ARN, {_aQN: _IPApa, _sN: _iPApa}), + (RESOURCE_ARN, {_aQN: _ISA, _sN: _iSA}), + (IPAM_SCOPE_TYPE, {_aQN: _IST, _sN: _iST}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (STRING, {_aQN: _Loc, _sN: _loc}), + (INTEGER, {_aQN: _PD, _sN: _pD}), + (IPAM_POOL_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _AIu, _sN: _aIu}), + (BOOLEAN, {_aQN: _PAu, _sN: _pAu}), + (ADDRESS_FAMILY, {_aQN: _AF, _sN: _aF}), + (IPAM_NETMASK_LENGTH, {_aQN: _AMNL, _sN: _aMNL}), + (IPAM_NETMASK_LENGTH, {_aQN: _AMNLl, _sN: _aMNLl}), + (IPAM_NETMASK_LENGTH, {_aQN: _ADNL, _sN: _aDNL}), + (IPAM_RESOURCE_TAG_LIST, {_aQN: _ARTS, _sN: _aRTS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_POOL_AWS_SERVICE, {_aQN: _ASw, _sN: _aSw}), + (IPAM_POOL_PUBLIC_IP_SOURCE, {_aQN: _PIS, _sN: _pIS}), + (IPAM_POOL_SOURCE_RESOURCE, {_aQN: _SRou, _sN: _sR}), + ), +) + +CREATE_IPAM_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _CIPOr, + {_sSI: _cCIPRoma, _smit: None}, + (_IPpam,), + ((IPAM_POOL, {_aQN: _IPpam, _sN: _iPpam}),), +) + +CREATE_IPAM_POOL: StaticOperationSchema = ( + 23, + n0, + _CIPre, + 0, + CREATE_IPAM_POOL_INPUT, + CREATE_IPAM_POOL_OUTPUT, + (), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_OPERATION: StaticSchema = ( + 14, + n0, + _IPLRRCO, + 0, + (_eq, _ne, _so_), + ((-1, {_sV: _eq}), (-1, {_sV: _ne_}), (-1, {_sV: _so__})), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_REQUEST: StaticSchema = ( + 18, + n0, + _IPLRRCR, + 0, + (_Ope, _IPI, _RIe, _ROe, _RR, _RTeso, _Ci), + ( + (IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_OPERATION, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (REQUEST_IPAM_RESOURCE_TAG, 0), + (STRING, 0), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_REQUEST_SET: StaticSchema = ( + 16, + n0, + _IPLRRCRS, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_REQUEST, {_sN: _Cond}),), +) + +IPAM_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IRTpa, + 0, + (_vp, _su, _eip, _pip, _ip______, _eni, _ail), + ( + (-1, {_sV: _vp}), + (-1, {_sV: _su}), + (-1, {_sV: _eip}), + (-1, {_sV: _pip_}), + (-1, {_sV: _ip_______}), + (-1, {_sV: _eni}), + (-1, {_sV: _ail_}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_TYPE: StaticSchema = ( + 14, + n0, + _IPLRRT, + 0, + (_sc__, _irc, _ipc), + ((-1, {_sV: _sc___}), (-1, {_sV: _irc_}), (-1, {_sV: _ipc_})), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST: StaticSchema = ( + 18, + n0, + _IPLRRR, + 0, + (_RTu, _SCt, _ISI, _RT, _Condi), + ( + (IPAM_PREFIX_LIST_RESOLVER_RULE_TYPE, 1), + (STRING, 0), + (IPAM_SCOPE_ID, 0), + (IPAM_RESOURCE_TYPE, 0), + (IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_REQUEST_SET, {_sN: _Cond}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST_SET: StaticSchema = ( + 16, + n0, + _IPLRRRS, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST, {_sN: _Ru}),), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER_INPUT: StaticSchema = ( + 18, + n0, + _CIPLRI, + {_sSI: _cCIPLRR, _sm: None}, + (_DR, _IIp, _Des, _AF, _Rul, _TSa, _CTl), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (STRING, 0), + (ADDRESS_FAMILY, 1), + (IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST_SET, {_sN: _Ru}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_ID: StaticSchema = (3, n0, _IPLRI, 0) + +IPAM_PREFIX_LIST_RESOLVER_VERSION_CREATION_STATUS: StaticSchema = ( + 14, + n0, + _IPLRVCS, + 0, + (_p, _succe, _fail), + ((-1, {_sV: _p}), (-1, {_sV: _succe}), (-1, {_sV: _fail})), +) + +IPAM_PREFIX_LIST_RESOLVER_STATE: StaticSchema = ( + 14, + n0, + _IPLRS, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER: StaticSchema = ( + 18, + n0, + _IPLR, + 0, + (_OIw, _IPLRI, _IPLRA, _IApa, _IR, _Des, _AF, _St, _Tag, _LVCS, _LVCSM), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_PREFIX_LIST_RESOLVER_ID, {_aQN: _IPLRI, _sN: _iPLRI}), + (RESOURCE_ARN, {_aQN: _IPLRA, _sN: _iPLRA}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (STRING, {_aQN: _Des, _sN: _desc}), + (ADDRESS_FAMILY, {_aQN: _AF, _sN: _aF}), + (IPAM_PREFIX_LIST_RESOLVER_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_PREFIX_LIST_RESOLVER_VERSION_CREATION_STATUS, {_aQN: _LVCS, _sN: _lVCS}), + (STRING, {_aQN: _LVCSM, _sN: _lVCSM}), + ), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT: StaticSchema = ( + 18, + n0, + _CIPLRO, + {_sSI: _cCIPLRRo, _smit: None}, + (_IPLR,), + ((IPAM_PREFIX_LIST_RESOLVER, {_aQN: _IPLR, _sN: _iPLR}),), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER: StaticOperationSchema = ( + 23, + n0, + _CIPLR, + 0, + CREATE_IPAM_PREFIX_LIST_RESOLVER_INPUT, + CREATE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT, + (), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT: StaticSchema = ( + 18, + n0, + _CIPLRTI, + {_sSI: _cCIPLRTR, _sm: None}, + (_DR, _IPLRI, _PLI, _PLR, _DVe, _TLV, _TSa, _CTl), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_ID, 1), + (STRING, 1), + (STRING, 1), + (BOXED_LONG, 0), + (BOOLEAN, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_TARGET_ID: StaticSchema = (3, n0, _IPLRTI, 0) + +IPAM_PREFIX_LIST_RESOLVER_TARGET_STATE: StaticSchema = ( + 14, + n0, + _IPLRTS, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _sip, + _sc____, + _sf, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _sip_}), + (-1, {_sV: _sc_____}), + (-1, {_sV: _sf_}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_TARGET: StaticSchema = ( + 18, + n0, + _IPLRT, + 0, + (_IPLRTI, _IPLRTA, _IPLRI, _OIw, _PLI, _PLR, _DVe, _LSV, _TLV, _SMta, _St, _Tag), + ( + (IPAM_PREFIX_LIST_RESOLVER_TARGET_ID, {_aQN: _IPLRTI, _sN: _iPLRTI}), + (RESOURCE_ARN, {_aQN: _IPLRTA, _sN: _iPLRTA}), + (IPAM_PREFIX_LIST_RESOLVER_ID, {_aQN: _IPLRI, _sN: _iPLRI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _PLR, _sN: _pLR}), + (BOXED_LONG, {_aQN: _DVe, _sN: _dVe}), + (BOXED_LONG, {_aQN: _LSV, _sN: _lSV}), + (BOOLEAN, {_aQN: _TLV, _sN: _tLV}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (IPAM_PREFIX_LIST_RESOLVER_TARGET_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT: StaticSchema = ( + 18, + n0, + _CIPLRTO, + {_sSI: _cCIPLRTRo, _smit: None}, + (_IPLRT,), + ((IPAM_PREFIX_LIST_RESOLVER_TARGET, {_aQN: _IPLRT, _sN: _iPLRT}),), +) + +CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET: StaticOperationSchema = ( + 23, + n0, + _CIPLRT, + 0, + CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT, + CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT, + (), +) + +CREATE_IPAM_RESOURCE_DISCOVERY_INPUT: StaticSchema = ( + 18, + n0, + _CIRDI, + {_sSI: _cCIRDR, _sm: None}, + (_DR, _Des, _ORp, _TSa, _CTl), + ( + (BOOLEAN, 0), + (STRING, 0), + (ADD_IPAM_OPERATING_REGION_SET, {_sN: _ORpe}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + ), +) + +IPAM_ORGANIZATIONAL_UNIT_EXCLUSION: StaticSchema = ( + 18, + n0, + _IOUE, + 0, + (_OEP,), + ((STRING, {_aQN: _OEP, _sN: _oEP}),), +) + +IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET: StaticSchema = ( + 16, + n0, + _IOUES, + 0, + (_me,), + ((IPAM_ORGANIZATIONAL_UNIT_EXCLUSION, {_sN: _i}),), +) + +IPAM_RESOURCE_DISCOVERY_STATE: StaticSchema = ( + 14, + n0, + _IRDS, + 0, + (_CIP, _CC_, _CF_, _MIP, _MC_, _MF, _DIP_, _DC__, _DF_, _IIP_, _IC_, _RIP), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_RESOURCE_DISCOVERY: StaticSchema = ( + 18, + n0, + _IRD, + 0, + (_OIw, _IRDI, _IRDAp, _IRDR, _Des, _ORp, _ID, _St, _Tag, _OUE), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _IRDI, _sN: _iRDI}), + (STRING, {_aQN: _IRDAp, _sN: _iRDAp}), + (STRING, {_aQN: _IRDR, _sN: _iRDR}), + (STRING, {_aQN: _Des, _sN: _desc}), + (IPAM_OPERATING_REGION_SET, {_aQN: _ORS, _sN: _oRS}), + (BOOLEAN, {_aQN: _ID, _sN: _iD}), + (IPAM_RESOURCE_DISCOVERY_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET, {_aQN: _OUES, _sN: _oUES}), + ), +) + +CREATE_IPAM_RESOURCE_DISCOVERY_OUTPUT: StaticSchema = ( + 18, + n0, + _CIRDO, + {_sSI: _cCIRDRo, _smit: None}, + (_IRD,), + ((IPAM_RESOURCE_DISCOVERY, {_aQN: _IRD, _sN: _iRD}),), +) + +CREATE_IPAM_RESOURCE_DISCOVERY: StaticOperationSchema = ( + 23, + n0, + _CIRD, + 0, + CREATE_IPAM_RESOURCE_DISCOVERY_INPUT, + CREATE_IPAM_RESOURCE_DISCOVERY_OUTPUT, + (), +) + +ASN_LIST: StaticSchema = (16, n0, _ALs, 0, (_me,), ((STRING, {_sN: _i}),)) + +IPAM_ROUTING_POLICY_REGISTRATION_MAX_LENGTH: StaticSchema = (7, n0, _IRPRML, 0) + +CREATE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT: StaticSchema = ( + 18, + n0, + _CIRPRI, + {_sSI: _cCIRPRR, _sm: None}, + (_DR, _IIRAI, _Ci, _Asns, _PMSA, _ML, _Des, _Fo, _CTl), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 1), + (ASN_LIST, {_sN: _Asn, _smi: None}), + (BOXED_BOOLEAN, 0), + (IPAM_ROUTING_POLICY_REGISTRATION_MAX_LENGTH, 0), + (STRING, 0), + (BOXED_BOOLEAN, 0), + (STRING, 2), + ), +) + +CREATE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CIRPRO, + {_sSI: _cCIRPRRo, _smit: None}, + (_IRPRD,), + ((IPAM_ROUTING_POLICY_REGISTRATION_DELTA, {_aQN: _IRPRD, _sN: _iRPRD}),), +) + +CREATE_IPAM_ROUTING_POLICY_REGISTRATION: StaticOperationSchema = ( + 23, + n0, + _CIRPR, + 0, + CREATE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT, + CREATE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT, + (), +) + +IPAM_SCOPE_EXTERNAL_AUTHORITY_TYPE: StaticSchema = ( + 14, + n0, + _ISEAT, + 0, + (_info,), + ((-1, {_sV: _info}),), +) + +EXTERNAL_AUTHORITY_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EAC, + 0, + (_Ty, _ERI), + ((IPAM_SCOPE_EXTERNAL_AUTHORITY_TYPE, 0), (STRING, 0)), +) + +CREATE_IPAM_SCOPE_INPUT: StaticSchema = ( + 18, + n0, + _CISI, + {_sSI: _cCISR, _sm: None}, + (_DR, _IIp, _Des, _TSa, _CTl, _EAC), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (EXTERNAL_AUTHORITY_CONFIGURATION, 0), + ), +) + +IPAM_SCOPE_EXTERNAL_AUTHORITY_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ISEAC, + 0, + (_Ty, _ERI), + ( + (IPAM_SCOPE_EXTERNAL_AUTHORITY_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _ERI, _sN: _eRI}), + ), +) + +IPAM_SCOPE_STATE: StaticSchema = ( + 14, + n0, + _ISS, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _dip_, + _dc_, + _df___, + _iip_, + _ic_, + _rip_, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + (-1, {_sV: _iip}), + (-1, {_sV: _ic}), + (-1, {_sV: _rip}), + ), +) + +IPAM_SCOPE: StaticSchema = ( + 18, + n0, + _ISpam, + 0, + (_OIw, _ISI, _ISA, _IApa, _IR, _IST, _ID, _Des, _PCoo, _St, _Tag, _EAC), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (IPAM_SCOPE_ID, {_aQN: _ISI, _sN: _iSI}), + (RESOURCE_ARN, {_aQN: _ISA, _sN: _iSA}), + (RESOURCE_ARN, {_aQN: _IApa, _sN: _iAp}), + (STRING, {_aQN: _IR, _sN: _iRp}), + (IPAM_SCOPE_TYPE, {_aQN: _IST, _sN: _iST}), + (BOOLEAN, {_aQN: _ID, _sN: _iD}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INTEGER, {_aQN: _PCoo, _sN: _pC}), + (IPAM_SCOPE_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IPAM_SCOPE_EXTERNAL_AUTHORITY_CONFIGURATION, {_aQN: _EAC, _sN: _eAC}), + ), +) + +CREATE_IPAM_SCOPE_OUTPUT: StaticSchema = ( + 18, + n0, + _CISO, + {_sSI: _cCISRo, _smit: None}, + (_ISpam,), + ((IPAM_SCOPE, {_aQN: _ISpam, _sN: _iSpa}),), +) + +CREATE_IPAM_SCOPE: StaticOperationSchema = ( + 23, + n0, + _CIS, + 0, + CREATE_IPAM_SCOPE_INPUT, + CREATE_IPAM_SCOPE_OUTPUT, + (), +) + +KEY_FORMAT: StaticSchema = ( + 14, + n0, + _KF, + 0, + (_pem, _ppk), + ((-1, {_sV: _pem}), (-1, {_sV: _ppk})), +) + +KEY_TYPE: StaticSchema = ( + 14, + n0, + _KT, + 0, + (_rsa, _ed), + ((-1, {_sV: _rsa}), (-1, {_sV: _ed})), +) + +CREATE_KEY_PAIR_INPUT: StaticSchema = ( + 18, + n0, + _CKPI, + {_sSI: _cCKPR, _sm: None}, + (_KN, _KT, _TSa, _KF, _DR), + ( + (STRING, 1), + (KEY_TYPE, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (KEY_FORMAT, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CREATE_KEY_PAIR_OUTPUT: StaticSchema = ( + 18, + n0, + _CKPO, + {_sSI: _cKP, _smit: None}, + (_KPI, _Tag, _KN, _KFe, _KM), + ( + (STRING, {_aQN: _KPI, _sN: _kPI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _KN, _sN: _kN}), + (STRING, {_aQN: _KFe, _sN: _kF}), + (SENSITIVE_USER_DATA, {_aQN: _KM, _sN: _kM}), + ), +) + +CREATE_KEY_PAIR: StaticOperationSchema = ( + 23, + n0, + _CKP, + 0, + CREATE_KEY_PAIR_INPUT, + CREATE_KEY_PAIR_OUTPUT, + (), +) + +LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE_REQUEST: StaticSchema = ( + 18, + n0, + _LTEBDR, + 0, + (_En, _DOT, _Io, _KKI, _SIn, _VSol, _VT, _Th, _VIR, _ECI), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (KMS_KEY_ID, 0), + (SNAPSHOT_ID, 0), + (INTEGER, 0), + (VOLUME_TYPE, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + ), +) + +LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_REQUEST: StaticSchema = ( + 18, + n0, + _LTBDMR, + 0, + (_DNe, _VN, _Eb, _ND), + ( + (STRING, 0), + (STRING, 0), + (LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE_REQUEST, 0), + (STRING, 0), + ), +) + +LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _LTBDMRL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_REQUEST, {_sN: _BDM}),), +) + +CAPACITY_RESERVATION_PREFERENCE: StaticSchema = ( + 14, + n0, + _CRP, + 0, + (_cro_, _op, _no), + ((-1, {_sV: _cro__}), (-1, {_sV: _op}), (-1, {_sV: _no})), +) + +CAPACITY_RESERVATION_TARGET: StaticSchema = ( + 18, + n0, + _CRTap, + 0, + (_CRI, _CRRGAa), + ((CAPACITY_RESERVATION_ID, 0), (STRING, 0)), +) + +LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTCRSR, + 0, + (_CRP, _CRTap), + ((CAPACITY_RESERVATION_PREFERENCE, 0), (CAPACITY_RESERVATION_TARGET, 0)), +) + +AMD_SEV_SNP_SPECIFICATION: StaticSchema = ( + 14, + n0, + _ASSS, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +NESTED_VIRTUALIZATION_SPECIFICATION: StaticSchema = ( + 14, + n0, + _NVS, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +LAUNCH_TEMPLATE_CPU_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTCOR, + 0, + (_CCor, _TPC, _ASS, _NV), + ( + (INTEGER, 0), + (INTEGER, 0), + (AMD_SEV_SNP_SPECIFICATION, 0), + (NESTED_VIRTUALIZATION_SPECIFICATION, 0), + ), +) + +CREDIT_SPECIFICATION_REQUEST: StaticSchema = (18, n0, _CSR, 0, (_CCp,), ((STRING, 1),)) + +ELASTIC_GPU_SPECIFICATION: StaticSchema = (18, n0, _EGS, 0, (_Ty,), ((STRING, 1),)) + +ELASTIC_GPU_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _EGSL, + 0, + (_me,), + ((ELASTIC_GPU_SPECIFICATION, {_sN: _EGS}),), +) + +LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_COUNT: StaticSchema = (7, n0, _LTEIAC, 0) + +LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR: StaticSchema = ( + 18, + n0, + _LTEIA, + 0, + (_Ty, _Cou), + ((STRING, 1), (LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_COUNT, 0)), +) + +LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_LIST: StaticSchema = ( + 16, + n0, + _LTEIAL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_ENCLAVE_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTEOR, + 0, + (_Ena,), + ((BOOLEAN, 0),), +) + +LAUNCH_TEMPLATE_HIBERNATION_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTHOR, + 0, + (_Conf,), + ((BOOLEAN, 0),), +) + +LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTIIPSR, + 0, + (_Ar, _N), + ((STRING, 0), (STRING, 0)), +) + +SHUTDOWN_BEHAVIOR: StaticSchema = ( + 14, + n0, + _SBh, + 0, + (_stop, _term), + ((-1, {_sV: _stop}), (-1, {_sV: _term})), +) + +MARKET_TYPE: StaticSchema = ( + 14, + n0, + _MTar, + 0, + (_spo, _cb, _icr_, _od_), + ((-1, {_sV: _spo}), (-1, {_sV: _cb_}), (-1, {_sV: _icr}), (-1, {_sV: _od})), +) + +INSTANCE_INTERRUPTION_BEHAVIOR: StaticSchema = ( + 14, + n0, + _IIB, + 0, + (_hib, _stop, _term), + ((-1, {_sV: _hib}), (-1, {_sV: _stop}), (-1, {_sV: _term})), +) + +SPOT_INSTANCE_TYPE: StaticSchema = ( + 14, + n0, + _SITp, + 0, + (_ot, _per), + ((-1, {_sV: _ot_}), (-1, {_sV: _per})), +) + +LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTSMOR, + 0, + (_MP, _SITp, _BDMlo, _VU, _IIB), + ( + (STRING, 0), + (SPOT_INSTANCE_TYPE, 0), + (INTEGER, 0), + (DATE_TIME, 0), + (INSTANCE_INTERRUPTION_BEHAVIOR, 0), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTIMOR, + 0, + (_MTar, _SO), + ((MARKET_TYPE, 0), (LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS_REQUEST, 0)), +) + +KERNEL_ID: StaticSchema = (3, n0, _KI, 0) + +KEY_PAIR_NAME: StaticSchema = (3, n0, _KPN, 0) + +LAUNCH_TEMPLATE_LICENSE_CONFIGURATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTLCR, + 0, + (_LCA,), + ((STRING, 0),), +) + +LAUNCH_TEMPLATE_LICENSE_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _LTLSLR, + 0, + (_me,), + ((LAUNCH_TEMPLATE_LICENSE_CONFIGURATION_REQUEST, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_AUTO_RECOVERY_STATE: StaticSchema = ( + 14, + n0, + _LTARS, + 0, + (_def, _d), + ((-1, {_sV: _def}), (-1, {_sV: _d})), +) + +LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTIMORa, + 0, + (_ARu,), + ((LAUNCH_TEMPLATE_AUTO_RECOVERY_STATE, 0),), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _LTIMES, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_PROTOCOL_IPV6: StaticSchema = ( + 14, + n0, + _LTIMPI, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +LAUNCH_TEMPLATE_HTTP_TOKENS_STATE: StaticSchema = ( + 14, + n0, + _LTHTS, + 0, + (_opt, _requ), + ((-1, {_sV: _opt}), (-1, {_sV: _requ})), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_TAGS_STATE: StaticSchema = ( + 14, + n0, + _LTIMTS, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTIMORau, + 0, + (_HTt, _HPRHL, _HE, _HPI, _IMT), + ( + (LAUNCH_TEMPLATE_HTTP_TOKENS_STATE, 0), + (INTEGER, 0), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_ENDPOINT_STATE, 0), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_PROTOCOL_IPV6, 0), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_TAGS_STATE, 0), + ), +) + +LAUNCH_TEMPLATES_MONITORING_REQUEST: StaticSchema = ( + 18, + n0, + _LTMR, + 0, + (_Ena,), + ((BOOLEAN, 0),), +) + +CONNECTION_TRACKING_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _CTSR, + 0, + (_TET, _UST, _UTd), + ((INTEGER, 0), (INTEGER, 0), (INTEGER, 0)), +) + +ENA_SRD_UDP_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _ESUSR, + 0, + (_ESUE,), + ((BOOLEAN, 0),), +) + +ENA_SRD_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _ESSR, + 0, + (_ESE, _ESUS), + ((BOOLEAN, 0), (ENA_SRD_UDP_SPECIFICATION_REQUEST, 0)), +) + +SECURITY_GROUP_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _SGISL, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _SGI}),), +) + +IPV4_PREFIX_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _IPSRp, + 0, + (_IPpvre,), + ((STRING, 0),), +) + +IPV4_PREFIX_LIST: StaticSchema = ( + 16, + n0, + _IPLpv, + 0, + (_me,), + ((IPV4_PREFIX_SPECIFICATION_REQUEST, {_sN: _i}),), +) + +INSTANCE_IPV6_ADDRESS_REQUEST: StaticSchema = ( + 18, + n0, + _IIAR, + 0, + (_IApv,), + ((STRING, 0),), +) + +INSTANCE_IPV6_ADDRESS_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _IIALR, + 0, + (_me,), + ((INSTANCE_IPV6_ADDRESS_REQUEST, {_sN: _IIA}),), +) + +IPV6_PREFIX_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _IPSRpv, + 0, + (_IPpv,), + ((STRING, 0),), +) + +IPV6_PREFIX_LIST: StaticSchema = ( + 16, + n0, + _IPLpvr, + 0, + (_me,), + ((IPV6_PREFIX_SPECIFICATION_REQUEST, {_sN: _i}),), +) + +PRIVATE_IP_ADDRESS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _PIAS, + 0, + (_Prim, _PIAr), + ((BOOLEAN, {_aQN: _Prim, _sN: _prim}), (STRING, {_aQN: _PIAr, _sN: _pIAr})), +) + +PRIVATE_IP_ADDRESS_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _PIASLr, + 0, + (_me,), + ((PRIVATE_IP_ADDRESS_SPECIFICATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTINISR, + 0, + ( + _ACIA, + _APIAsso, + _DOT, + _Des, + _DI, + _G, + _ITnte, + _IAC, + _IAp, + _NII, + _PIAr, + _PIAri, + _SPIAC, + _SIu, + _NCI, + _IPpvr, + _IPCp, + _IPp, + _IPC, + _PIrim, + _ESS, + _CTSo, + _EQC, + ), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (INTEGER, 0), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (STRING, 0), + (INTEGER, 0), + (INSTANCE_IPV6_ADDRESS_LIST_REQUEST, 0), + (NETWORK_INTERFACE_ID, 0), + (STRING, 0), + (PRIVATE_IP_ADDRESS_SPECIFICATION_LIST, 0), + (INTEGER, 0), + (SUBNET_ID, 0), + (INTEGER, 0), + (IPV4_PREFIX_LIST, {_sN: _IPpvre}), + (INTEGER, 0), + (IPV6_PREFIX_LIST, {_sN: _IPpv}), + (INTEGER, 0), + (BOOLEAN, 0), + (ENA_SRD_SPECIFICATION_REQUEST, 0), + (CONNECTION_TRACKING_SPECIFICATION_REQUEST, 0), + (INTEGER, 0), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _LTINISRL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_REQUEST, {_sN: _INIS}),), +) + +INSTANCE_BANDWIDTH_WEIGHTING: StaticSchema = ( + 14, + n0, + _IBW, + 0, + (_DEFAULT, _V_, _E_), + ((-1, {_sV: _def}), (-1, {_sV: _v_____}), (-1, {_sV: _e_})), +) + +LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTNPOR, + 0, + (_BW,), + ((INSTANCE_BANDWIDTH_WEIGHTING, 0),), +) + +OPERATOR_REQUEST: StaticSchema = (18, n0, _ORper, 0, (_Pri,), ((STRING, 0),)) + +LAUNCH_TEMPLATE_PLACEMENT_REQUEST: StaticSchema = ( + 18, + n0, + _LTPR, + 0, + (_AZ, _AZI, _Af, _GN, _HIo, _Ten, _SDp, _HRGA, _PNa, _GIr), + ( + (STRING, 0), + (AVAILABILITY_ZONE_ID, 0), + (STRING, 0), + (PLACEMENT_GROUP_NAME, 0), + (DEDICATED_HOST_ID, 0), + (TENANCY, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (PLACEMENT_GROUP_ID, 0), + ), +) + +LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _LTPDNOR, + 0, + (_HT, _ERNDAR, _ERNDAAAAR), + ((HOSTNAME_TYPE, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +RAMDISK_ID: StaticSchema = (3, n0, _RIa, 0) + +SECONDARY_INTERFACE_TYPE: StaticSchema = ( + 14, + n0, + _SITe, + 0, + (_SECONDARY,), + ((-1, {_sV: _sec}),), +) + +SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _SIPIASR, + 0, + (_PIAr,), + ((STRING, 0),), +) + +SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _SIPIASLR, + 0, + (_me,), + ((SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_REQUEST, {_sN: _SIPIAS}),), +) + +SECONDARY_SUBNET_ID: StaticSchema = (3, n0, _SSIe, 0) + +LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTISISR, + 0, + (_DOT, _DI, _PIAri, _PIAC, _SSIe, _ITnte, _NCI), + ( + (BOOLEAN, 0), + (INTEGER, 0), + ( + SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_LIST_REQUEST, + {_sN: _PIAr}, + ), + (INTEGER, 0), + (SECONDARY_SUBNET_ID, 0), + (SECONDARY_INTERFACE_TYPE, 0), + (INTEGER, 0), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _LTISISRL, + 0, + (_me,), + ( + ( + LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST, + {_sN: _ISIS}, + ), + ), +) + +SECURITY_GROUP_STRING_LIST: StaticSchema = ( + 16, + n0, + _SGSL, + 0, + (_me,), + ((SECURITY_GROUP_NAME, {_sN: _SG}),), +) + +LAUNCH_TEMPLATE_TAG_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _LTTSR, + 0, + (_RT, _Tag), + ((RESOURCE_TYPE, 0), (TAG_LIST, {_sN: _Ta})), +) + +LAUNCH_TEMPLATE_TAG_SPECIFICATION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _LTTSRL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_TAG_SPECIFICATION_REQUEST, {_sN: _LTTSR}),), +) + +REQUEST_LAUNCH_TEMPLATE_DATA: StaticSchema = ( + 18, + n0, + _RLTD, + 0, + ( + _KI, + _EO, + _IIP, + _BDMl, + _NIe, + _IIm, + _IT, + _KN, + _Mon, + _Pl, + _RDI, + _DAT, + _IISB, + _UDs, + _TSa, + _EGSl, + _EIA, + _SGIe, + _SGe, + _IMO, + _CSr, + _CO, + _CRSa, + _LSic, + _HO, + _MO, + _EOn, + _IRn, + _PDNO, + _MOa, + _DASi, + _Op, + _NPO, + _SIec, + ), + ( + (KERNEL_ID, 0), + (BOOLEAN, 0), + (LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST, 0), + (LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_REQUEST_LIST, {_sN: _BDM}), + ( + LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_REQUEST_LIST, + {_sN: _NI}, + ), + (IMAGE_ID, 0), + (INSTANCE_TYPE, 0), + (KEY_PAIR_NAME, 0), + (LAUNCH_TEMPLATES_MONITORING_REQUEST, 0), + (LAUNCH_TEMPLATE_PLACEMENT_REQUEST, 0), + (RAMDISK_ID, 0), + (BOOLEAN, 0), + (SHUTDOWN_BEHAVIOR, 0), + (SENSITIVE_USER_DATA, 0), + (LAUNCH_TEMPLATE_TAG_SPECIFICATION_REQUEST_LIST, {_sN: _TS}), + (ELASTIC_GPU_SPECIFICATION_LIST, {_sN: _EGS}), + (LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_LIST, {_sN: _EIAl}), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (SECURITY_GROUP_STRING_LIST, {_sN: _SG}), + (LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS_REQUEST, 0), + (CREDIT_SPECIFICATION_REQUEST, 0), + (LAUNCH_TEMPLATE_CPU_OPTIONS_REQUEST, 0), + (LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_REQUEST, 0), + (LAUNCH_TEMPLATE_LICENSE_SPECIFICATION_LIST_REQUEST, {_sN: _LSice}), + (LAUNCH_TEMPLATE_HIBERNATION_OPTIONS_REQUEST, 0), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_REQUEST, 0), + (LAUNCH_TEMPLATE_ENCLAVE_OPTIONS_REQUEST, 0), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + (LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS_REQUEST, 0), + (LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS_REQUEST, 0), + (BOOLEAN, 0), + (OPERATOR_REQUEST, 0), + (LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS_REQUEST, 0), + ( + LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST_LIST, + {_sN: _SIeco}, + ), + ), +) + +VERSION_DESCRIPTION: StaticSchema = (3, n0, _VD, 0) + +CREATE_LAUNCH_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _CLTI, + {_sSI: _cCLTR, _sm: None}, + (_DR, _CTl, _LTN, _VD, _LTD, _Op, _TSa), + ( + (BOOLEAN, 0), + (STRING, 2), + (STRING, 1), + (VERSION_DESCRIPTION, 0), + (REQUEST_LAUNCH_TEMPLATE_DATA, 1), + (OPERATOR_REQUEST, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +LAUNCH_TEMPLATE: StaticSchema = ( + 18, + n0, + _LT, + 0, + (_LTI, _LTN, _CTr, _CBr, _DVN, _LVN, _Tag, _Op), + ( + (STRING, {_aQN: _LTI, _sN: _lTI}), + (LAUNCH_TEMPLATE_NAME, {_aQN: _LTN, _sN: _lTN}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (STRING, {_aQN: _CBr, _sN: _cBr}), + (LONG, {_aQN: _DVN, _sN: _dVN}), + (LONG, {_aQN: _LVN, _sN: _lVN}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +VALIDATION_ERROR: StaticSchema = ( + 18, + n0, + _VEa, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +ERROR_SET: StaticSchema = (16, n0, _ESr, 0, (_me,), ((VALIDATION_ERROR, {_sN: _i}),)) + +VALIDATION_WARNING: StaticSchema = ( + 18, + n0, + _VW, + 0, + (_Er,), + ((ERROR_SET, {_aQN: _ESr, _sN: _eSr}),), +) + +CREATE_LAUNCH_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _CLTO, + {_sSI: _cCLTRo, _smit: None}, + (_LT, _Wa), + ( + (LAUNCH_TEMPLATE, {_aQN: _LT, _sN: _lT}), + (VALIDATION_WARNING, {_aQN: _Wa, _sN: _wa}), + ), +) + +CREATE_LAUNCH_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _CLT, + 0, + CREATE_LAUNCH_TEMPLATE_INPUT, + CREATE_LAUNCH_TEMPLATE_OUTPUT, + (), +) + +CREATE_LAUNCH_TEMPLATE_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _CLTVI, + {_sSI: _cCLTVR, _sm: None}, + (_DR, _CTl, _LTI, _LTN, _SVo, _VD, _LTD, _RAes), + ( + (BOOLEAN, 0), + (STRING, 2), + (LAUNCH_TEMPLATE_ID, 0), + (LAUNCH_TEMPLATE_NAME, 0), + (STRING, 0), + (VERSION_DESCRIPTION, 0), + (REQUEST_LAUNCH_TEMPLATE_DATA, 1), + (BOOLEAN, 0), + ), +) + +LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE: StaticSchema = ( + 18, + n0, + _LTEBD, + 0, + (_En, _DOT, _Io, _KKI, _SIn, _VSol, _VT, _Th, _VIR, _ECI), + ( + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (KMS_KEY_ID, {_aQN: _KKI, _sN: _kKI}), + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (INTEGER, {_aQN: _VIR, _sN: _vIR}), + (INTEGER, {_aQN: _ECI, _sN: _eCI}), + ), +) + +LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING: StaticSchema = ( + 18, + n0, + _LTBDM, + 0, + (_DNe, _VN, _Eb, _ND), + ( + (STRING, {_aQN: _DNe, _sN: _dNe}), + (STRING, {_aQN: _VN, _sN: _vN}), + (LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE, {_aQN: _Eb, _sN: _eb}), + (STRING, {_aQN: _ND, _sN: _nD}), + ), +) + +LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_LIST: StaticSchema = ( + 16, + n0, + _LTBDML, + 0, + (_me,), + ((LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING, {_sN: _i}),), +) + +CAPACITY_RESERVATION_TARGET_RESPONSE: StaticSchema = ( + 18, + n0, + _CRTR, + 0, + (_CRI, _CRRGAa), + ((STRING, {_aQN: _CRI, _sN: _cRI}), (STRING, {_aQN: _CRRGAa, _sN: _cRRGA})), +) + +LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _LTCRSRa, + 0, + (_CRP, _CRTap), + ( + (CAPACITY_RESERVATION_PREFERENCE, {_aQN: _CRP, _sN: _cRP}), + (CAPACITY_RESERVATION_TARGET_RESPONSE, {_aQN: _CRTap, _sN: _cRT}), + ), +) + +LAUNCH_TEMPLATE_CPU_OPTIONS: StaticSchema = ( + 18, + n0, + _LTCO, + 0, + (_CCor, _TPC, _ASS, _NV), + ( + (INTEGER, {_aQN: _CCor, _sN: _cCor}), + (INTEGER, {_aQN: _TPC, _sN: _tPC}), + (AMD_SEV_SNP_SPECIFICATION, {_aQN: _ASS, _sN: _aSS}), + (NESTED_VIRTUALIZATION_SPECIFICATION, {_aQN: _NV, _sN: _nV}), + ), +) + +CREDIT_SPECIFICATION: StaticSchema = ( + 18, + n0, + _CSr, + 0, + (_CCp,), + ((STRING, {_aQN: _CCp, _sN: _cCp}),), +) + +ELASTIC_GPU_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _EGSR, + 0, + (_Ty,), + ((STRING, {_aQN: _Ty, _sN: _ty}),), +) + +ELASTIC_GPU_SPECIFICATION_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _EGSRL, + 0, + (_me,), + ((ELASTIC_GPU_SPECIFICATION_RESPONSE, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_RESPONSE: StaticSchema = ( + 18, + n0, + _LTEIAR, + 0, + (_Ty, _Cou), + ((STRING, {_aQN: _Ty, _sN: _ty}), (INTEGER, {_aQN: _Cou, _sN: _cou})), +) + +LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _LTEIARL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_RESPONSE, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_ENCLAVE_OPTIONS: StaticSchema = ( + 18, + n0, + _LTEO, + 0, + (_Ena,), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena}),), +) + +LAUNCH_TEMPLATE_HIBERNATION_OPTIONS: StaticSchema = ( + 18, + n0, + _LTHO, + 0, + (_Conf,), + ((BOOLEAN, {_aQN: _Conf, _sN: _conf}),), +) + +LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTIIPS, + 0, + (_Ar, _N), + ((STRING, {_aQN: _Ar, _sN: _ar}), (STRING, {_aQN: _N, _sN: _nam})), +) + +LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS: StaticSchema = ( + 18, + n0, + _LTSMO, + 0, + (_MP, _SITp, _BDMlo, _VU, _IIB), + ( + (STRING, {_aQN: _MP, _sN: _mP}), + (SPOT_INSTANCE_TYPE, {_aQN: _SITp, _sN: _sIT}), + (INTEGER, {_aQN: _BDMlo, _sN: _bDMl}), + (DATE_TIME, {_aQN: _VU, _sN: _vU}), + (INSTANCE_INTERRUPTION_BEHAVIOR, {_aQN: _IIB, _sN: _iIB}), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS: StaticSchema = ( + 18, + n0, + _LTIMO, + 0, + (_MTar, _SO), + ( + (MARKET_TYPE, {_aQN: _MTar, _sN: _mTa}), + (LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS, {_aQN: _SO, _sN: _sO}), + ), +) + +LAUNCH_TEMPLATE_LICENSE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LTLC, + 0, + (_LCA,), + ((STRING, {_aQN: _LCA, _sN: _lCA}),), +) + +LAUNCH_TEMPLATE_LICENSE_LIST: StaticSchema = ( + 16, + n0, + _LTLL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_LICENSE_CONFIGURATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS: StaticSchema = ( + 18, + n0, + _LTIMOa, + 0, + (_ARu,), + ((LAUNCH_TEMPLATE_AUTO_RECOVERY_STATE, {_aQN: _ARu, _sN: _aRu}),), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_STATE: StaticSchema = ( + 14, + n0, + _LTIMOS, + 0, + (_p, _ap), + ((-1, {_sV: _p}), (-1, {_sV: _ap})), +) + +LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS: StaticSchema = ( + 18, + n0, + _LTIMOau, + 0, + (_St, _HTt, _HPRHL, _HE, _HPI, _IMT), + ( + (LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_STATE, {_aQN: _St, _sN: _st}), + (LAUNCH_TEMPLATE_HTTP_TOKENS_STATE, {_aQN: _HTt, _sN: _hTt}), + (INTEGER, {_aQN: _HPRHL, _sN: _hPRHL}), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_ENDPOINT_STATE, {_aQN: _HE, _sN: _hE}), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_PROTOCOL_IPV6, {_aQN: _HPI, _sN: _hPI}), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_TAGS_STATE, {_aQN: _IMT, _sN: _iMT}), + ), +) + +LAUNCH_TEMPLATES_MONITORING: StaticSchema = ( + 18, + n0, + _LTM, + 0, + (_Ena,), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena}),), +) + +CONNECTION_TRACKING_SPECIFICATION: StaticSchema = ( + 18, + n0, + _CTSo, + 0, + (_TET, _UTd, _UST), + ( + (INTEGER, {_aQN: _TET, _sN: _tET}), + (INTEGER, {_aQN: _UTd, _sN: _uTd}), + (INTEGER, {_aQN: _UST, _sN: _uST}), + ), +) + +LAUNCH_TEMPLATE_ENA_SRD_UDP_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTESUS, + 0, + (_ESUE,), + ((BOOLEAN, {_aQN: _ESUE, _sN: _eSUE}),), +) + +LAUNCH_TEMPLATE_ENA_SRD_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTESS, + 0, + (_ESE, _ESUS), + ( + (BOOLEAN, {_aQN: _ESE, _sN: _eSE}), + (LAUNCH_TEMPLATE_ENA_SRD_UDP_SPECIFICATION, {_aQN: _ESUS, _sN: _eSUS}), + ), +) + +IPV4_PREFIX_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _IPSRpvr, + 0, + (_IPpvre,), + ((STRING, {_aQN: _IPpvre, _sN: _iPp}),), +) + +IPV4_PREFIX_LIST_RESPONSE: StaticSchema = ( + 16, + n0, + _IPLRp, + 0, + (_me,), + ((IPV4_PREFIX_SPECIFICATION_RESPONSE, {_sN: _i}),), +) + +INSTANCE_IPV6_ADDRESS: StaticSchema = ( + 18, + n0, + _IIA, + 0, + (_IApv, _IPIs), + ((STRING, {_aQN: _IApv, _sN: _iApv}), (BOOLEAN, {_aQN: _IPIs, _sN: _iPIs})), +) + +INSTANCE_IPV6_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _IIAL, + 0, + (_me,), + ((INSTANCE_IPV6_ADDRESS, {_sN: _i}),), +) + +IPV6_PREFIX_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _IPSRpvre, + 0, + (_IPpv,), + ((STRING, {_aQN: _IPpv, _sN: _iPpvr}),), +) + +IPV6_PREFIX_LIST_RESPONSE: StaticSchema = ( + 16, + n0, + _IPLRpv, + 0, + (_me,), + ((IPV6_PREFIX_SPECIFICATION_RESPONSE, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTINIS, + 0, + ( + _ACIA, + _APIAsso, + _DOT, + _Des, + _DI, + _G, + _ITnte, + _IAC, + _IAp, + _NII, + _PIAr, + _PIAri, + _SPIAC, + _SIu, + _NCI, + _IPpvr, + _IPCp, + _IPp, + _IPC, + _PIrim, + _ESS, + _CTSo, + _EQC, + ), + ( + (BOOLEAN, {_aQN: _ACIA, _sN: _aCIA}), + (BOOLEAN, {_aQN: _APIAsso, _sN: _aPIA}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (GROUP_ID_STRING_LIST, {_aQN: _GS, _sN: _gS}), + (STRING, {_aQN: _ITnte, _sN: _iTnt}), + (INTEGER, {_aQN: _IAC, _sN: _iAC}), + (INSTANCE_IPV6_ADDRESS_LIST, {_aQN: _IAS, _sN: _iAS}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (PRIVATE_IP_ADDRESS_SPECIFICATION_LIST, {_aQN: _PIASr, _sN: _pIAS}), + (INTEGER, {_aQN: _SPIAC, _sN: _sPIAC}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + (IPV4_PREFIX_LIST_RESPONSE, {_aQN: _IPSpv, _sN: _iPS}), + (INTEGER, {_aQN: _IPCp, _sN: _iPC}), + (IPV6_PREFIX_LIST_RESPONSE, {_aQN: _IPSpvr, _sN: _iPSp}), + (INTEGER, {_aQN: _IPC, _sN: _iPCp}), + (BOOLEAN, {_aQN: _PIrim, _sN: _pIri}), + (LAUNCH_TEMPLATE_ENA_SRD_SPECIFICATION, {_aQN: _ESS, _sN: _eSS}), + (CONNECTION_TRACKING_SPECIFICATION, {_aQN: _CTSo, _sN: _cTSo}), + (INTEGER, {_aQN: _EQC, _sN: _eQC}), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _LTINISL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS: StaticSchema = ( + 18, + n0, + _LTNPO, + 0, + (_BW,), + ((INSTANCE_BANDWIDTH_WEIGHTING, {_aQN: _BW, _sN: _bW}),), +) + +LAUNCH_TEMPLATE_PLACEMENT: StaticSchema = ( + 18, + n0, + _LTP, + 0, + (_AZ, _AZI, _Af, _GN, _HIo, _Ten, _SDp, _HRGA, _PNa, _GIr), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _Af, _sN: _aff}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STRING, {_aQN: _HIo, _sN: _hI}), + (TENANCY, {_aQN: _Ten, _sN: _ten}), + (STRING, {_aQN: _SDp, _sN: _sDp}), + (STRING, {_aQN: _HRGA, _sN: _hRGA}), + (INTEGER, {_aQN: _PNa, _sN: _pN}), + (PLACEMENT_GROUP_ID, {_aQN: _GIr, _sN: _gIr}), + ), +) + +LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS: StaticSchema = ( + 18, + n0, + _LTPDNO, + 0, + (_HT, _ERNDAR, _ERNDAAAAR), + ( + (HOSTNAME_TYPE, {_aQN: _HT, _sN: _hT}), + (BOOLEAN, {_aQN: _ERNDAR, _sN: _eRNDAR}), + (BOOLEAN, {_aQN: _ERNDAAAAR, _sN: _eRNDAAAAR}), + ), +) + +SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _SIPIAS, + 0, + (_PIAr,), + ((STRING, {_aQN: _PIAr, _sN: _pIAr}),), +) + +SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _SIPIASL, + 0, + (_me,), + ((SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTISIS, + 0, + (_DOT, _DI, _PIAri, _PIAC, _SSIe, _ITnte, _NCI), + ( + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + ( + SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_LIST, + {_aQN: _PIASr, _sN: _pIAS}, + ), + (INTEGER, {_aQN: _PIAC, _sN: _pIAC}), + (SECONDARY_SUBNET_ID, {_aQN: _SSIe, _sN: _sSIe}), + (SECONDARY_INTERFACE_TYPE, {_aQN: _ITnte, _sN: _iTnt}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + ), +) + +LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _LTISISL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_TAG_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTTS, + 0, + (_RT, _Tag), + ((RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), (TAG_LIST, {_aQN: _TSag, _sN: _tS})), +) + +LAUNCH_TEMPLATE_TAG_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _LTTSL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_TAG_SPECIFICATION, {_sN: _i}),), +) + +RESPONSE_LAUNCH_TEMPLATE_DATA: StaticSchema = ( + 18, + n0, + _RLTDe, + 0, + ( + _KI, + _EO, + _IIP, + _BDMl, + _NIe, + _IIm, + _IT, + _KN, + _Mon, + _Pl, + _RDI, + _DAT, + _IISB, + _UDs, + _TSa, + _EGSl, + _EIA, + _SGIe, + _SGe, + _IMO, + _CSr, + _CO, + _CRSa, + _LSic, + _HO, + _MO, + _EOn, + _IRn, + _PDNO, + _MOa, + _DASi, + _Op, + _NPO, + _SIec, + ), + ( + (STRING, {_aQN: _KI, _sN: _kI}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION, {_aQN: _IIP, _sN: _iIP}), + (LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDMS, _sN: _bDMS}), + ( + LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST, + {_aQN: _NIS, _sN: _nIS}, + ), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _KN, _sN: _kN}), + (LAUNCH_TEMPLATES_MONITORING, {_aQN: _Mon, _sN: _monit}), + (LAUNCH_TEMPLATE_PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (STRING, {_aQN: _RDI, _sN: _rDI}), + (BOOLEAN, {_aQN: _DAT, _sN: _dAT}), + (SHUTDOWN_BEHAVIOR, {_aQN: _IISB, _sN: _iISB}), + (SENSITIVE_USER_DATA, {_aQN: _UDs, _sN: _uDs}), + (LAUNCH_TEMPLATE_TAG_SPECIFICATION_LIST, {_aQN: _TSS, _sN: _tSS}), + (ELASTIC_GPU_SPECIFICATION_RESPONSE_LIST, {_aQN: _EGSS, _sN: _eGSS}), + ( + LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_RESPONSE_LIST, + {_aQN: _EIAS, _sN: _eIAS}, + ), + (VALUE_STRING_LIST, {_aQN: _SGIS, _sN: _sGIS}), + (VALUE_STRING_LIST, {_aQN: _SGS, _sN: _sGS}), + (LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS, {_aQN: _IMO, _sN: _iMO}), + (CREDIT_SPECIFICATION, {_aQN: _CSr, _sN: _cSr}), + (LAUNCH_TEMPLATE_CPU_OPTIONS, {_aQN: _CO, _sN: _cOp}), + ( + LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_RESPONSE, + {_aQN: _CRSa, _sN: _cRS}, + ), + (LAUNCH_TEMPLATE_LICENSE_LIST, {_aQN: _LSicen, _sN: _lSi}), + (LAUNCH_TEMPLATE_HIBERNATION_OPTIONS, {_aQN: _HO, _sN: _hO}), + (LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS, {_aQN: _MO, _sN: _mO}), + (LAUNCH_TEMPLATE_ENCLAVE_OPTIONS, {_aQN: _EOn, _sN: _eOn}), + (INSTANCE_REQUIREMENTS, {_aQN: _IRn, _sN: _iRn}), + (LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS, {_aQN: _PDNO, _sN: _pDNO}), + (LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS, {_aQN: _MOa, _sN: _mOa}), + (BOOLEAN, {_aQN: _DASi, _sN: _dASi}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS, {_aQN: _NPO, _sN: _nPO}), + ( + LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_LIST, + {_aQN: _SIS, _sN: _sIS}, + ), + ), +) + +LAUNCH_TEMPLATE_VERSION: StaticSchema = ( + 18, + n0, + _LTV, + 0, + (_LTI, _LTN, _VNe, _VD, _CTr, _CBr, _DVef, _LTD, _Op), + ( + (STRING, {_aQN: _LTI, _sN: _lTI}), + (LAUNCH_TEMPLATE_NAME, {_aQN: _LTN, _sN: _lTN}), + (LONG, {_aQN: _VNe, _sN: _vNe}), + (VERSION_DESCRIPTION, {_aQN: _VD, _sN: _vD}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (STRING, {_aQN: _CBr, _sN: _cBr}), + (BOOLEAN, {_aQN: _DVef, _sN: _dVef}), + (RESPONSE_LAUNCH_TEMPLATE_DATA, {_aQN: _LTD, _sN: _lTD}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +CREATE_LAUNCH_TEMPLATE_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CLTVO, + {_sSI: _cCLTVRo, _smit: None}, + (_LTV, _Wa), + ( + (LAUNCH_TEMPLATE_VERSION, {_aQN: _LTV, _sN: _lTV}), + (VALIDATION_WARNING, {_aQN: _Wa, _sN: _wa}), + ), +) + +CREATE_LAUNCH_TEMPLATE_VERSION: StaticOperationSchema = ( + 23, + n0, + _CLTV, + 0, + CREATE_LAUNCH_TEMPLATE_VERSION_INPUT, + CREATE_LAUNCH_TEMPLATE_VERSION_OUTPUT, + (), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID: StaticSchema = (3, n0, _LGVIGI, 0) + +CREATE_LOCAL_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _CLGRI, + {_sSI: _cCLGRR, _sm: None}, + (_DCB, _LGRTI, _LGVIGI, _DR, _NII, _DPLI), + ( + (STRING, 0), + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, 0), + (BOOLEAN, 0), + (NETWORK_INTERFACE_ID, 0), + (PREFIX_LIST_RESOURCE_ID, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_STATE: StaticSchema = ( + 14, + n0, + _LGRS, + 0, + (_p, _act, _bl, _de, _del), + ( + (-1, {_sV: _p}), + (-1, {_sV: _act}), + (-1, {_sV: _bl}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +LOCAL_GATEWAY_ROUTE_TYPE: StaticSchema = ( + 14, + n0, + _LGRT, + 0, + (_stat, _prop), + ((-1, {_sV: _stat}), (-1, {_sV: _prop})), +) + +LOCAL_GATEWAY_ROUTE: StaticSchema = ( + 18, + n0, + _LGR, + 0, + (_DCB, _LGVIGI, _Ty, _St, _LGRTI, _LGRTA, _OIw, _SIu, _CPIo, _NII, _DPLI), + ( + (STRING, {_aQN: _DCB, _sN: _dCB}), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, {_aQN: _LGVIGI, _sN: _lGVIGI}), + (LOCAL_GATEWAY_ROUTE_TYPE, {_aQN: _Ty, _sN: _ty}), + (LOCAL_GATEWAY_ROUTE_STATE, {_aQN: _St, _sN: _st}), + (LOCAL_GATEWAY_ROUTETABLE_ID, {_aQN: _LGRTI, _sN: _lGRTI}), + (RESOURCE_ARN, {_aQN: _LGRTA, _sN: _lGRTA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (COIP_POOL_ID, {_aQN: _CPIo, _sN: _cPI}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _DPLI, _sN: _dPLI}), + ), +) + +CREATE_LOCAL_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGRO, + {_sSI: _cCLGRRo, _smit: None}, + (_Rou,), + ((LOCAL_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +CREATE_LOCAL_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _CLGR, + 0, + CREATE_LOCAL_GATEWAY_ROUTE_INPUT, + CREATE_LOCAL_GATEWAY_ROUTE_OUTPUT, + (), +) + +LOCAL_GATEWAY_ID: StaticSchema = (3, n0, _LGI, 0) + +LOCAL_GATEWAY_ROUTE_TABLE_MODE: StaticSchema = ( + 14, + n0, + _LGRTM, + 0, + (_dvr, _coi), + ((-1, {_sV: _dvr_}), (-1, {_sV: _coi})), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _CLGRTI, + {_sSI: _cCLGRTR, _sm: None}, + (_LGI, _Mo, _TSa, _DR), + ( + (LOCAL_GATEWAY_ID, 1), + (LOCAL_GATEWAY_ROUTE_TABLE_MODE, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +STATE_REASON: StaticSchema = ( + 18, + n0, + _SRt, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +LOCAL_GATEWAY_ROUTE_TABLE: StaticSchema = ( + 18, + n0, + _LGRTo, + 0, + (_LGRTI, _LGRTA, _LGI, _OA, _OIw, _St, _Tag, _Mo, _SRt), + ( + (STRING, {_aQN: _LGRTI, _sN: _lGRTI}), + (RESOURCE_ARN, {_aQN: _LGRTA, _sN: _lGRTA}), + (LOCAL_GATEWAY_ID, {_aQN: _LGI, _sN: _lGI}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (LOCAL_GATEWAY_ROUTE_TABLE_MODE, {_aQN: _Mo, _sN: _mod}), + (STATE_REASON, {_aQN: _SRt, _sN: _sRt}), + ), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGRTO, + {_sSI: _cCLGRTRo, _smit: None}, + (_LGRTo,), + ((LOCAL_GATEWAY_ROUTE_TABLE, {_aQN: _LGRTo, _sN: _lGRT}),), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _CLGRT, + 0, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _CLGRTVIGAI, + {_sSI: _cCLGRTVIGAR, _sm: None}, + (_LGRTI, _LGVIGI, _TSa, _DR), + ( + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID: StaticSchema = ( + 3, + n0, + _LGRTVIGAI, + 0, +) + +LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION: StaticSchema = ( + 18, + n0, + _LGRTVIGA, + 0, + (_LGRTVIGAI, _LGVIGI, _LGI, _LGRTI, _LGRTA, _OIw, _St, _Tag), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID, + {_aQN: _LGRTVIGAI, _sN: _lGRTVIGAI}, + ), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, {_aQN: _LGVIGI, _sN: _lGVIGI}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + (LOCAL_GATEWAY_ID, {_aQN: _LGRTI, _sN: _lGRTI}), + (RESOURCE_ARN, {_aQN: _LGRTA, _sN: _lGRTA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGRTVIGAO, + {_sSI: _cCLGRTVIGARo, _smit: None}, + (_LGRTVIGA,), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + {_aQN: _LGRTVIGA, _sN: _lGRTVIGA}, + ), + ), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _CLGRTVIGA, + 0, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT, + (), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _CLGRTVAI, + {_sSI: _cCLGRTVAR, _sm: None}, + (_LGRTI, _VI, _TSa, _DR), + ( + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (VPC_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID: StaticSchema = (3, n0, _LGRTVAI, 0) + +LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION: StaticSchema = ( + 18, + n0, + _LGRTVA, + 0, + (_LGRTVAI, _LGRTI, _LGRTA, _LGI, _VI, _OIw, _St, _Tag), + ( + (LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID, {_aQN: _LGRTVAI, _sN: _lGRTVAI}), + (STRING, {_aQN: _LGRTI, _sN: _lGRTI}), + (RESOURCE_ARN, {_aQN: _LGRTA, _sN: _lGRTA}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGRTVAO, + {_sSI: _cCLGRTVARo, _smit: None}, + (_LGRTVA,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, {_aQN: _LGRTVA, _sN: _lGRTVA}),), +) + +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _CLGRTVA, + 0, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT, + CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT, + (), +) + +OUTPOST_LAG_ID: StaticSchema = (3, n0, _OLI, 0) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _CLGVII, + {_sSI: _cCLGVIR, _sm: None}, + (_LGVIGI, _OLI, _Vl, _LA, _PAe, _PBA, _TSa, _DR, _PBAE), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, 1), + (OUTPOST_LAG_ID, 1), + (INTEGER, 1), + (STRING, 1), + (STRING, 1), + (INTEGER, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (LONG, 0), + ), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_CONFIGURATION_STATE: StaticSchema = ( + 14, + n0, + _LGVICS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID: StaticSchema = (3, n0, _LGVII, 0) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE: StaticSchema = ( + 18, + n0, + _LGVI, + 0, + ( + _LGVII, + _LGI, + _LGVIGI, + _LGVIA, + _OLI, + _Vl, + _LA, + _PAe, + _LBAo, + _PBA, + _PBAE, + _OIw, + _Tag, + _CSon, + ), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID, {_aQN: _LGVII, _sN: _lGVII}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, {_aQN: _LGVIGI, _sN: _lGVIGI}), + (RESOURCE_ARN, {_aQN: _LGVIA, _sN: _lGVIA}), + (STRING, {_aQN: _OLI, _sN: _oLI}), + (INTEGER, {_aQN: _Vl, _sN: _vl}), + (STRING, {_aQN: _LA, _sN: _lA}), + (STRING, {_aQN: _PAe, _sN: _pAe}), + (INTEGER, {_aQN: _LBAo, _sN: _lBAo}), + (INTEGER, {_aQN: _PBA, _sN: _pBA}), + (LONG, {_aQN: _PBAE, _sN: _pBAE}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_CONFIGURATION_STATE, {_aQN: _CSon, _sN: _cSo}), + ), +) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGVIO, + {_sSI: _cCLGVIRo, _smit: None}, + (_LGVI,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE, {_aQN: _LGVI, _sN: _lGVI}),), +) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _CLGVI, + 0, + CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT, + CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT, + (), +) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CLGVIGI, + {_sSI: _cCLGVIGR, _sm: None}, + (_LGI, _LBAo, _LBAE, _TSa, _DR), + ( + (LOCAL_GATEWAY_ID, 1), + (INTEGER, 0), + (LONG, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_CONFIGURATION_STATE: StaticSchema = ( + 14, + n0, + _LGVIGCS, + 0, + (_p, _inco, _av, _de, _del), + ( + (-1, {_sV: _p}), + (-1, {_sV: _inco}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID_SET: StaticSchema = ( + 16, + n0, + _LGVIIS, + 0, + (_me,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID, {_sN: _i}),), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP: StaticSchema = ( + 18, + n0, + _LGVIG, + 0, + (_LGVIGI, _LGVIIo, _LGI, _OIw, _LBAo, _LBAE, _LGVIGA, _Tag, _CSon), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, {_aQN: _LGVIGI, _sN: _lGVIGI}), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID_SET, {_aQN: _LGVIIS, _sN: _lGVIIS}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (INTEGER, {_aQN: _LBAo, _sN: _lBAo}), + (LONG, {_aQN: _LBAE, _sN: _lBAE}), + (RESOURCE_ARN, {_aQN: _LGVIGA, _sN: _lGVIGA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ( + LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_CONFIGURATION_STATE, + {_aQN: _CSon, _sN: _cSo}, + ), + ), +) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CLGVIGO, + {_sSI: _cCLGVIGRo, _smit: None}, + (_LGVIG,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, {_aQN: _LGVIG, _sN: _lGVIG}),), +) + +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP: StaticOperationSchema = ( + 23, + n0, + _CLGVIG, + 0, + CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT, + CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT, + (), +) + +MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION_REQUEST: StaticSchema = ( + 18, + n0, + _MSIPCR, + 0, + (_AIp, _BSa, _DReb, _DTR, _FPi, _KS, _NP), + ( + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 0), + ), +) + +CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CMSIPMTI, + {_sSI: _cCMSIPMTR, _sm: None}, + (_CTl, _DR, _II, _MCa, _MSIPC, _MSIPS, _TSa), + ( + (STRING, 2), + (BOOLEAN, 0), + (INSTANCE_ID, 1), + (SENSITIVE_MAC_CREDENTIALS, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION_REQUEST, 0), + (MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CMSIPMTO, + {_sSI: _cCMSIPMTRo, _smit: None}, + (_MMT,), + ((MAC_MODIFICATION_TASK, {_aQN: _MMT, _sN: _mMT}),), +) + +CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK: StaticOperationSchema = ( + 23, + n0, + _CMSIPMT, + 0, + CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_INPUT, + CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_OUTPUT, + (), +) + +CREATE_MANAGED_PREFIX_LIST_INPUT: StaticSchema = ( + 18, + n0, + _CMPLI, + {_sSI: _cCMPLR, _sm: None}, + (_DR, _PLN, _Ent, _ME, _TSa, _AF, _CTl), + ( + (BOOLEAN, 0), + (STRING, 1), + (ADD_PREFIX_LIST_ENTRIES, {_sN: _Entr}), + (INTEGER, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 1), + (STRING, 2), + ), +) + +PREFIX_LIST_STATE: StaticSchema = ( + 14, + n0, + _PLS, + 0, + ( + _cip, + _cc_, + _cf________________________, + _mip__, + _mc, + _mf__________________________, + _rip_, + _rc_, + _rf____________, + _dip_, + _dc_, + _df___, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _mip___}), + (-1, {_sV: _mc_}), + (-1, {_sV: _mf___________________________}), + (-1, {_sV: _rip}), + (-1, {_sV: _rc__}), + (-1, {_sV: _rf_____________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + ), +) + +MANAGED_PREFIX_LIST: StaticSchema = ( + 18, + n0, + _MPL, + 0, + (_PLI, _AF, _St, _SMta, _PLA, _PLN, _ME, _Ve, _Tag, _OIw, _IPLRTI, _IPLRSE), + ( + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _AF, _sN: _aF}), + (PREFIX_LIST_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + (RESOURCE_ARN, {_aQN: _PLA, _sN: _pLA}), + (STRING, {_aQN: _PLN, _sN: _pLN}), + (INTEGER, {_aQN: _ME, _sN: _mE}), + (LONG, {_aQN: _Ve, _sN: _ver}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _IPLRTI, _sN: _iPLRTI}), + (BOOLEAN, {_aQN: _IPLRSE, _sN: _iPLRSE}), + ), +) + +CREATE_MANAGED_PREFIX_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _CMPLO, + {_sSI: _cCMPLRo, _smit: None}, + (_PL,), + ((MANAGED_PREFIX_LIST, {_aQN: _PL, _sN: _pL}),), +) + +CREATE_MANAGED_PREFIX_LIST: StaticOperationSchema = ( + 23, + n0, + _CMPL, + 0, + CREATE_MANAGED_PREFIX_LIST_INPUT, + CREATE_MANAGED_PREFIX_LIST_OUTPUT, + (), +) + +AVAILABILITY_MODE: StaticSchema = ( + 14, + n0, + _AMv, + 0, + (_ZONAL, _REGIONAL), + ((-1, {_sV: _zo}), (-1, {_sV: _regi})), +) + +AVAILABILITY_ZONE_ADDRESS: StaticSchema = ( + 18, + n0, + _AZA, + 0, + (_AZ, _AZI, _AIl), + ( + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + (ALLOCATION_ID_LIST, {_sN: _AI}), + ), +) + +AVAILABILITY_ZONE_ADDRESSES: StaticSchema = ( + 16, + n0, + _AZAv, + 0, + (_me,), + ((AVAILABILITY_ZONE_ADDRESS, {_sN: _AZA}),), +) + +CONNECTIVITY_TYPE: StaticSchema = ( + 14, + n0, + _CTo, + 0, + (_PRIVATE, _PUBLIC), + ((-1, {_sV: _priv}), (-1, {_sV: _pu})), +) + +CREATE_NAT_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CNGI, + {_sSI: _cCNGR, _sm: None}, + (_AMv, _AI, _CTl, _DR, _SIu, _VI, _AZAv, _TSa, _CTo, _PIAr, _SAI, _SPIA, _SPIAC), + ( + (AVAILABILITY_MODE, 0), + (ALLOCATION_ID, 0), + (STRING, 2), + (BOOLEAN, 0), + (SUBNET_ID, 0), + (VPC_ID, 0), + (AVAILABILITY_ZONE_ADDRESSES, {_sN: _AZA}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (CONNECTIVITY_TYPE, 0), + (STRING, 0), + (ALLOCATION_ID_LIST, {_sN: _SAIe}), + (IP_LIST, {_sN: _SPIAe}), + (PRIVATE_IP_ADDRESS_COUNT, 0), + ), +) + +NAT_GATEWAY_APPLIANCE_STATE: StaticSchema = ( + 14, + n0, + _NGASat, + 0, + (_ATTACHING, _ATTACHED, _DETACHING, _DETACHED, _AF__, _DF__), + ( + (-1, {_sV: _at}), + (-1, {_sV: _att}), + (-1, {_sV: _det}), + (-1, {_sV: _deta}), + (-1, {_sV: _af___}), + (-1, {_sV: _df_______}), + ), +) + +NAT_GATEWAY_APPLIANCE_MODIFY_STATE: StaticSchema = ( + 14, + n0, + _NGAMS, + 0, + (_MODIFYING, _COMPLETED, _FAILED), + ((-1, {_sV: _mo}), (-1, {_sV: _compl}), (-1, {_sV: _fa})), +) + +NAT_GATEWAY_APPLIANCE_TYPE: StaticSchema = ( + 14, + n0, + _NGAT, + 0, + (_NFP,), + ((-1, {_sV: _nfp}),), +) + +NAT_GATEWAY_ATTACHED_APPLIANCE: StaticSchema = ( + 18, + n0, + _NGAA, + 0, + (_Ty, _AAp, _VEI, _AStta, _MSo, _FCa, _FM), + ( + (NAT_GATEWAY_APPLIANCE_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _AAp, _sN: _aAp}), + (STRING, {_aQN: _VEI, _sN: _vEI}), + (NAT_GATEWAY_APPLIANCE_STATE, {_aQN: _AStta, _sN: _aStt}), + (NAT_GATEWAY_APPLIANCE_MODIFY_STATE, {_aQN: _MSo, _sN: _mS}), + (STRING, {_aQN: _FCa, _sN: _fCa}), + (STRING, {_aQN: _FM, _sN: _fM}), + ), +) + +NAT_GATEWAY_ATTACHED_APPLIANCE_LIST: StaticSchema = ( + 16, + n0, + _NGAAL, + 0, + (_me,), + ((NAT_GATEWAY_ATTACHED_APPLIANCE, {_sN: _i}),), +) + +AUTO_PROVISION_ZONES_STATE: StaticSchema = ( + 14, + n0, + _APZS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +AUTO_SCALING_IPS_STATE: StaticSchema = ( + 14, + n0, + _ASIS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +PROVISIONED_BANDWIDTH: StaticSchema = ( + 18, + n0, + _PB, + 0, + (_PTro, _Prov, _RTeq, _Req, _Sta), + ( + (DATE_TIME, {_aQN: _PTro, _sN: _pTr}), + (STRING, {_aQN: _Prov, _sN: _prov}), + (DATE_TIME, {_aQN: _RTeq, _sN: _rTeq}), + (STRING, {_aQN: _Req, _sN: _req}), + (STRING, {_aQN: _Sta, _sN: _sta}), + ), +) + +NAT_GATEWAY_STATE: StaticSchema = ( + 14, + n0, + _NGS, + 0, + (_PENDING, _FAILED, _AVAILABLE, _DELETING, _DELETED), + ( + (-1, {_sV: _p}), + (-1, {_sV: _fa}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +NAT_GATEWAY: StaticSchema = ( + 18, + n0, + _NG, + 0, + ( + _CTr, + _DTel, + _FCa, + _FM, + _NGAa, + _NGI, + _PB, + _St, + _SIu, + _VI, + _Tag, + _CTo, + _AMv, + _ASI, + _APZ, + _AAt, + _RTIo, + ), + ( + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (DATE_TIME, {_aQN: _DTel, _sN: _dTe}), + (STRING, {_aQN: _FCa, _sN: _fCa}), + (STRING, {_aQN: _FM, _sN: _fM}), + (NAT_GATEWAY_ADDRESS_LIST, {_aQN: _NGASa, _sN: _nGAS}), + (STRING, {_aQN: _NGI, _sN: _nGI}), + (PROVISIONED_BANDWIDTH, {_aQN: _PB, _sN: _pB}), + (NAT_GATEWAY_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (CONNECTIVITY_TYPE, {_aQN: _CTo, _sN: _cTo}), + (AVAILABILITY_MODE, {_aQN: _AMv, _sN: _aM}), + (AUTO_SCALING_IPS_STATE, {_aQN: _ASI, _sN: _aSI}), + (AUTO_PROVISION_ZONES_STATE, {_aQN: _APZ, _sN: _aPZ}), + (NAT_GATEWAY_ATTACHED_APPLIANCE_LIST, {_aQN: _AASt, _sN: _aASt}), + (STRING, {_aQN: _RTIo, _sN: _rTIo}), + ), +) + +CREATE_NAT_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CNGO, + {_sSI: _cCNGRo, _smit: None}, + (_CTl, _NG), + ((STRING, {_aQN: _CTl, _sN: _cTl}), (NAT_GATEWAY, {_aQN: _NG, _sN: _nG})), +) + +CREATE_NAT_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CNG, + 0, + CREATE_NAT_GATEWAY_INPUT, + CREATE_NAT_GATEWAY_OUTPUT, + (), +) + +CREATE_NETWORK_ACL_INPUT: StaticSchema = ( + 18, + n0, + _CNAI, + {_sSI: _cCNAR, _sm: None}, + (_TSa, _CTl, _DR, _VI), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + ), +) + +NETWORK_ACL_ASSOCIATION: StaticSchema = ( + 18, + n0, + _NAA, + 0, + (_NAAI, _NAI, _SIu), + ( + (STRING, {_aQN: _NAAI, _sN: _nAAI}), + (STRING, {_aQN: _NAI, _sN: _nAI}), + (STRING, {_aQN: _SIu, _sN: _sI}), + ), +) + +NETWORK_ACL_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _NAAL, + 0, + (_me,), + ((NETWORK_ACL_ASSOCIATION, {_sN: _i}),), +) + +ICMP_TYPE_CODE: StaticSchema = ( + 18, + n0, + _ITC, + 0, + (_C, _Ty), + ((INTEGER, {_aQN: _C, _sN: _co}), (INTEGER, {_aQN: _Ty, _sN: _ty})), +) + +RULE_ACTION: StaticSchema = ( + 14, + n0, + _RA, + 0, + (_all, _deny), + ((-1, {_sV: _all}), (-1, {_sV: _deny})), +) + +NETWORK_ACL_ENTRY: StaticSchema = ( + 18, + n0, + _NAE, + 0, + (_CB, _Eg, _ITC, _ICB, _PR, _P, _RA, _RN), + ( + (STRING, {_aQN: _CB, _sN: _cB}), + (BOOLEAN, {_aQN: _Eg, _sN: _egr}), + (ICMP_TYPE_CODE, {_aQN: _ITC, _sN: _iTC}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + (PORT_RANGE, {_aQN: _PR, _sN: _pR}), + (STRING, {_aQN: _P, _sN: _pro}), + (RULE_ACTION, {_aQN: _RA, _sN: _rA}), + (INTEGER, {_aQN: _RN, _sN: _rN}), + ), +) + +NETWORK_ACL_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _NAEL, + 0, + (_me,), + ((NETWORK_ACL_ENTRY, {_sN: _i}),), +) + +NETWORK_ACL: StaticSchema = ( + 18, + n0, + _NAe, + 0, + (_As, _Ent, _ID, _NAI, _Tag, _VI, _OIw), + ( + (NETWORK_ACL_ASSOCIATION_LIST, {_aQN: _ASsso, _sN: _aSss}), + (NETWORK_ACL_ENTRY_LIST, {_aQN: _ESn, _sN: _eSn}), + (BOOLEAN, {_aQN: _Def, _sN: _def}), + (STRING, {_aQN: _NAI, _sN: _nAI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + ), +) + +CREATE_NETWORK_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _CNAO, + {_sSI: _cCNARo, _smit: None}, + (_NAe, _CTl), + ((NETWORK_ACL, {_aQN: _NAe, _sN: _nAe}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_NETWORK_ACL: StaticOperationSchema = ( + 23, + n0, + _CNAr, + 0, + CREATE_NETWORK_ACL_INPUT, + CREATE_NETWORK_ACL_OUTPUT, + (), +) + +NETWORK_ACL_ID: StaticSchema = (3, n0, _NAI, 0) + +CREATE_NETWORK_ACL_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _CNAEI, + {_sSI: _cCNAER, _sm: None}, + (_DR, _NAI, _RN, _P, _RA, _Eg, _CB, _ICB, _ITC, _PR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ID, {_aQN: _NAI, _sN: _nAI, _smi: None}), + (INTEGER, {_aQN: _RN, _sN: _rN, _smi: None}), + (STRING, {_aQN: _P, _sN: _pro, _smi: None}), + (RULE_ACTION, {_aQN: _RA, _sN: _rA, _smi: None}), + (BOOLEAN, {_aQN: _Eg, _sN: _egr, _smi: None}), + (STRING, {_aQN: _CB, _sN: _cB}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + (ICMP_TYPE_CODE, {_sN: _Ic}), + (PORT_RANGE, {_aQN: _PR, _sN: _pR}), + ), +) + +CREATE_NETWORK_ACL_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _CNAEO, + {_sSI: _sU, _smit: None}, +) + +CREATE_NETWORK_ACL_ENTRY: StaticOperationSchema = ( + 23, + n0, + _CNAE, + 0, + CREATE_NETWORK_ACL_ENTRY_INPUT, + CREATE_NETWORK_ACL_ENTRY_OUTPUT, + (), +) + +CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT: StaticSchema = ( + 18, + n0, + _CNIASI, + {_sSI: _cCNIASR, _sm: None}, + (_MPa, _EP, _CTl, _TSa, _DR), + ( + (ACCESS_SCOPE_PATH_LIST_REQUEST, {_sN: _MPat}), + (ACCESS_SCOPE_PATH_LIST_REQUEST, {_sN: _EPx}), + (STRING, 3), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE: StaticSchema = ( + 18, + n0, + _NIAS, + 0, + (_NIASI, _NIASA, _CDr, _UDp, _Tag), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_aQN: _NIASI, _sN: _nIASI}), + (RESOURCE_ARN, {_aQN: _NIASA, _sN: _nIASA}), + (MILLISECOND_DATE_TIME, {_aQN: _CDr, _sN: _cDr}), + (MILLISECOND_DATE_TIME, {_aQN: _UDp, _sN: _uDp}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT: StaticSchema = ( + 18, + n0, + _NIASC, + 0, + (_NIASI, _MPa, _EP), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_aQN: _NIASI, _sN: _nIASI}), + (ACCESS_SCOPE_PATH_LIST, {_aQN: _MPS, _sN: _mPS}), + (ACCESS_SCOPE_PATH_LIST, {_aQN: _EPS, _sN: _ePS}), + ), +) + +CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT: StaticSchema = ( + 18, + n0, + _CNIASO, + {_sSI: _cCNIASRo, _smit: None}, + (_NIAS, _NIASC), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE, {_aQN: _NIAS, _sN: _nIAS}), + (NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT, {_aQN: _NIASC, _sN: _nIASC}), + ), +) + +CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE: StaticOperationSchema = ( + 23, + n0, + _CNIAS, + 0, + CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT, + CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT, + (), +) + +NETWORK_INSIGHTS_RESOURCE_ID: StaticSchema = (3, n0, _NIRI, 0) + +REQUEST_FILTER_PORT_RANGE: StaticSchema = ( + 18, + n0, + _RFPR, + 0, + (_FP, _TP), + ((PORT, 0), (PORT, 0)), +) + +PATH_REQUEST_FILTER: StaticSchema = ( + 18, + n0, + _PRF, + 0, + (_SAou, _SPR, _DAe, _DPR), + ( + (IP_ADDRESS, 0), + (REQUEST_FILTER_PORT_RANGE, 0), + (IP_ADDRESS, 0), + (REQUEST_FILTER_PORT_RANGE, 0), + ), +) + +CREATE_NETWORK_INSIGHTS_PATH_INPUT: StaticSchema = ( + 18, + n0, + _CNIPI, + {_sSI: _cCNIPR, _sm: None}, + (_SIo, _DIes, _Sou, _De, _P, _DPe, _TSa, _DR, _CTl, _FAS, _FAD), + ( + (IP_ADDRESS, 0), + (IP_ADDRESS, 0), + (NETWORK_INSIGHTS_RESOURCE_ID, 1), + (NETWORK_INSIGHTS_RESOURCE_ID, 0), + (PROTOCOL, 1), + (PORT, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (STRING, 3), + (PATH_REQUEST_FILTER, 0), + (PATH_REQUEST_FILTER, 0), + ), +) + +FILTER_PORT_RANGE: StaticSchema = ( + 18, + n0, + _FPR, + 0, + (_FP, _TP), + ((PORT, {_aQN: _FP, _sN: _fP}), (PORT, {_aQN: _TP, _sN: _tP})), +) + +PATH_FILTER: StaticSchema = ( + 18, + n0, + _PFa, + 0, + (_SAou, _SPR, _DAe, _DPR), + ( + (IP_ADDRESS, {_aQN: _SAou, _sN: _sAo}), + (FILTER_PORT_RANGE, {_aQN: _SPR, _sN: _sPR}), + (IP_ADDRESS, {_aQN: _DAe, _sN: _dA}), + (FILTER_PORT_RANGE, {_aQN: _DPR, _sN: _dPR}), + ), +) + +NETWORK_INSIGHTS_PATH_ID: StaticSchema = (3, n0, _NIPI, 0) + +NETWORK_INSIGHTS_PATH: StaticSchema = ( + 18, + n0, + _NIP, + 0, + ( + _NIPI, + _NIPA, + _CDr, + _Sou, + _De, + _SAour, + _DAes, + _SIo, + _DIes, + _P, + _DPe, + _Tag, + _FAS, + _FAD, + ), + ( + (NETWORK_INSIGHTS_PATH_ID, {_aQN: _NIPI, _sN: _nIPI}), + (RESOURCE_ARN, {_aQN: _NIPA, _sN: _nIPA}), + (MILLISECOND_DATE_TIME, {_aQN: _CDr, _sN: _cDr}), + (STRING, {_aQN: _Sou, _sN: _so}), + (STRING, {_aQN: _De, _sN: _des}), + (RESOURCE_ARN, {_aQN: _SAour, _sN: _sAou}), + (RESOURCE_ARN, {_aQN: _DAes, _sN: _dAe}), + (IP_ADDRESS, {_aQN: _SIo, _sN: _sIo}), + (IP_ADDRESS, {_aQN: _DIes, _sN: _dIes}), + (PROTOCOL, {_aQN: _P, _sN: _pro}), + (INTEGER, {_aQN: _DPe, _sN: _dPe}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (PATH_FILTER, {_aQN: _FAS, _sN: _fAS}), + (PATH_FILTER, {_aQN: _FAD, _sN: _fAD}), + ), +) + +CREATE_NETWORK_INSIGHTS_PATH_OUTPUT: StaticSchema = ( + 18, + n0, + _CNIPO, + {_sSI: _cCNIPRo, _smit: None}, + (_NIP,), + ((NETWORK_INSIGHTS_PATH, {_aQN: _NIP, _sN: _nIP}),), +) + +CREATE_NETWORK_INSIGHTS_PATH: StaticOperationSchema = ( + 23, + n0, + _CNIP, + 0, + CREATE_NETWORK_INSIGHTS_PATH_INPUT, + CREATE_NETWORK_INSIGHTS_PATH_OUTPUT, + (), +) + +NETWORK_INTERFACE_CREATION_TYPE: StaticSchema = ( + 14, + n0, + _NICT, + 0, + (_efa, _eo, _br, _tru), + ((-1, {_sV: _efa}), (-1, {_sV: _eo_}), (-1, {_sV: _br}), (-1, {_sV: _tru})), +) + +CREATE_NETWORK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _CNII, + {_sSI: _cCNIR, _sm: None}, + ( + _IPpvr, + _IPCp, + _IPp, + _IPC, + _ITnte, + _TSa, + _CTl, + _EPI, + _CTSo, + _Op, + _SIu, + _Des, + _PIAr, + _G, + _PIAri, + _SPIAC, + _IAp, + _IAC, + _DR, + ), + ( + (IPV4_PREFIX_LIST, {_sN: _IPpvre}), + (INTEGER, 0), + (IPV6_PREFIX_LIST, {_sN: _IPpv}), + (INTEGER, 0), + (NETWORK_INTERFACE_CREATION_TYPE, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + (CONNECTION_TRACKING_SPECIFICATION_REQUEST, 0), + (OPERATOR_REQUEST, 0), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI, _smi: None}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (PRIVATE_IP_ADDRESS_SPECIFICATION_LIST, {_aQN: _PIAri, _sN: _pIAri}), + (INTEGER, {_aQN: _SPIAC, _sN: _sPIAC}), + (INSTANCE_IPV6_ADDRESS_LIST, {_aQN: _IAp, _sN: _iA}), + (INTEGER, {_aQN: _IAC, _sN: _iAC}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +ASSOCIATED_SUBNET_LIST: StaticSchema = ( + 16, + n0, + _ASL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +NETWORK_INTERFACE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _NIA, + 0, + (_AI, _AIs, _IOI, _PDNu, _PI, _COI, _CI), + ( + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _IOI, _sN: _iOI}), + (STRING, {_aQN: _PDNu, _sN: _pDNu}), + (STRING, {_aQN: _PI, _sN: _pI}), + (STRING, {_aQN: _COI, _sN: _cOI}), + (STRING, {_aQN: _CI, _sN: _cI}), + ), +) + +ATTACHMENT_ENA_SRD_UDP_SPECIFICATION: StaticSchema = ( + 18, + n0, + _AESUS, + 0, + (_ESUE,), + ((BOOLEAN, {_aQN: _ESUE, _sN: _eSUE}),), +) + +ATTACHMENT_ENA_SRD_SPECIFICATION: StaticSchema = ( + 18, + n0, + _AESS, + 0, + (_ESE, _ESUS), + ( + (BOOLEAN, {_aQN: _ESE, _sN: _eSE}), + (ATTACHMENT_ENA_SRD_UDP_SPECIFICATION, {_aQN: _ESUS, _sN: _eSUS}), + ), +) + +NETWORK_INTERFACE_ATTACHMENT: StaticSchema = ( + 18, + n0, + _NIAe, + 0, + (_ATtt, _AIt, _DOT, _DI, _NCI, _II, _IOIn, _Sta, _ESS, _EQC), + ( + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + (STRING, {_aQN: _AIt, _sN: _aIt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IOIn, _sN: _iOIn}), + (ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + (ATTACHMENT_ENA_SRD_SPECIFICATION, {_aQN: _ESS, _sN: _eSS}), + (INTEGER, {_aQN: _EQC, _sN: _eQC}), + ), +) + +CONNECTION_TRACKING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CTC, + 0, + (_TET, _UST, _UTd), + ( + (INTEGER, {_aQN: _TET, _sN: _tET}), + (INTEGER, {_aQN: _UST, _sN: _uST}), + (INTEGER, {_aQN: _UTd, _sN: _uTd}), + ), +) + +GROUP_IDENTIFIER: StaticSchema = ( + 18, + n0, + _GIro, + 0, + (_GIr, _GN), + ((STRING, {_aQN: _GIr, _sN: _gIr}), (STRING, {_aQN: _GN, _sN: _gN})), +) + +GROUP_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _GIL, + 0, + (_me,), + ((GROUP_IDENTIFIER, {_sN: _i}),), +) + +NETWORK_INTERFACE_TYPE: StaticSchema = ( + 14, + n0, + _NIT, + 0, + ( + _inter, + _nG, + _efa, + _eo, + _tru, + _lb, + _nlb, + _ve, + _br, + _tg_, + _la, + _qu, + _gam, + _agm, + _glb, + _glbe, + _irm, + _accm, + ), + ( + (-1, {_sV: _inter}), + (-1, {_sV: _nG}), + (-1, {_sV: _efa}), + (-1, {_sV: _eo_}), + (-1, {_sV: _tru}), + (-1, {_sV: _lb}), + (-1, {_sV: _nlb}), + (-1, {_sV: _ve}), + (-1, {_sV: _br}), + (-1, {_sV: _tg_}), + (-1, {_sV: _la}), + (-1, {_sV: _qu}), + (-1, {_sV: _gam}), + (-1, {_sV: _agm}), + (-1, {_sV: _glb}), + (-1, {_sV: _glbe}), + (-1, {_sV: _irm}), + (-1, {_sV: _accm}), + ), +) + +NETWORK_INTERFACE_IPV6_ADDRESS: StaticSchema = ( + 18, + n0, + _NIIA, + 0, + (_IApv, _PIDN, _IPIs), + ( + (STRING, {_aQN: _IApv, _sN: _iApv}), + (STRING, {_aQN: _PIDN, _sN: _pIDN}), + (BOOLEAN, {_aQN: _IPIs, _sN: _iPIs}), + ), +) + +NETWORK_INTERFACE_IPV6_ADDRESSES_LIST: StaticSchema = ( + 16, + n0, + _NIIAL, + 0, + (_me,), + ((NETWORK_INTERFACE_IPV6_ADDRESS, {_sN: _i}),), +) + +IPV6_PREFIX_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IPSpvre, + 0, + (_IPpv,), + ((STRING, {_aQN: _IPpv, _sN: _iPpvr}),), +) + +IPV6_PREFIXES_LIST: StaticSchema = ( + 16, + n0, + _IPLpvre, + 0, + (_me,), + ((IPV6_PREFIX_SPECIFICATION, {_sN: _i}),), +) + +NETWORK_INTERFACE_PRIVATE_IP_ADDRESS: StaticSchema = ( + 18, + n0, + _NIPIA, + 0, + (_Ass, _Prim, _PDNr, _PIAr), + ( + (NETWORK_INTERFACE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}), + (BOOLEAN, {_aQN: _Prim, _sN: _prim}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + ), +) + +NETWORK_INTERFACE_PRIVATE_IP_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _NIPIAL, + 0, + (_me,), + ((NETWORK_INTERFACE_PRIVATE_IP_ADDRESS, {_sN: _i}),), +) + +PUBLIC_IP_DNS_NAME_OPTIONS: StaticSchema = ( + 18, + n0, + _PIDNO, + 0, + (_DHT, _PIDNu, _PIDN, _PDSDN), + ( + (STRING, {_aQN: _DHT, _sN: _dHT}), + (STRING, {_aQN: _PIDNu, _sN: _pIDNu}), + (STRING, {_aQN: _PIDN, _sN: _pIDN}), + (STRING, {_aQN: _PDSDN, _sN: _pDSDN}), + ), +) + +NETWORK_INTERFACE_STATUS: StaticSchema = ( + 14, + n0, + _NISe, + 0, + (_av, _ass, _at, _iu, _det), + ( + (-1, {_sV: _av}), + (-1, {_sV: _ass}), + (-1, {_sV: _at}), + (-1, {_sV: _iu_}), + (-1, {_sV: _det}), + ), +) + +NETWORK_INTERFACE: StaticSchema = ( + 18, + n0, + _NI, + 0, + ( + _Ass, + _At, + _AZ, + _CTC, + _Des, + _G, + _ITnte, + _IAp, + _MAa, + _NII, + _OA, + _OIw, + _PDNr, + _PDNu, + _PIDNO, + _PIAr, + _PIAri, + _IPpvr, + _IPp, + _RIeq, + _RMe, + _SDC, + _Sta, + _SIu, + _TSag, + _VI, + _DAIT, + _IN, + _IApv, + _Op, + _ASssoc, + _AZI, + ), + ( + (NETWORK_INTERFACE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}), + (NETWORK_INTERFACE_ATTACHMENT, {_aQN: _At, _sN: _atta}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (CONNECTION_TRACKING_CONFIGURATION, {_aQN: _CTC, _sN: _cTC}), + (STRING, {_aQN: _Des, _sN: _desc}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (NETWORK_INTERFACE_TYPE, {_aQN: _ITnte, _sN: _iTnt}), + (NETWORK_INTERFACE_IPV6_ADDRESSES_LIST, {_aQN: _IAS, _sN: _iAS}), + (STRING, {_aQN: _MAa, _sN: _mAa}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (STRING, {_aQN: _PDNu, _sN: _pDNu}), + (PUBLIC_IP_DNS_NAME_OPTIONS, {_aQN: _PIDNO, _sN: _pIDNO}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (NETWORK_INTERFACE_PRIVATE_IP_ADDRESS_LIST, {_aQN: _PIASr, _sN: _pIAS}), + (IPV4_PREFIXES_LIST, {_aQN: _IPSpv, _sN: _iPS}), + (IPV6_PREFIXES_LIST, {_aQN: _IPSpvr, _sN: _iPSp}), + (STRING, {_aQN: _RIeq, _sN: _rIeq}), + (BOOLEAN, {_aQN: _RMe, _sN: _rMe}), + (BOOLEAN, {_aQN: _SDC, _sN: _sDC}), + (NETWORK_INTERFACE_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + (BOOLEAN, {_aQN: _DAIT, _sN: _dAIT}), + (BOOLEAN, {_aQN: _IN, _sN: _iN}), + (STRING, {_aQN: _IApv, _sN: _iApv}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (ASSOCIATED_SUBNET_LIST, {_aQN: _ASSs, _sN: _aSSs}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + ), +) + +CREATE_NETWORK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _CNIO, + {_sSI: _cCNIRo, _smit: None}, + (_NI, _CTl), + ((NETWORK_INTERFACE, {_aQN: _NI, _sN: _nI}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_NETWORK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _CNIr, + 0, + CREATE_NETWORK_INTERFACE_INPUT, + CREATE_NETWORK_INTERFACE_OUTPUT, + (), +) + +INTERFACE_PERMISSION_TYPE: StaticSchema = ( + 14, + n0, + _IPTn, + 0, + (_IA_, _EA), + ((-1, {_sV: _IA__}), (-1, {_sV: _EA_})), +) + +CREATE_NETWORK_INTERFACE_PERMISSION_INPUT: StaticSchema = ( + 18, + n0, + _CNIPIr, + {_sSI: _cCNIPRom, _sm: None}, + (_NII, _AAIw, _ASw, _Pe, _DR), + ( + (NETWORK_INTERFACE_ID, 1), + (STRING, 0), + (STRING, 0), + (INTERFACE_PERMISSION_TYPE, 1), + (BOOLEAN, 0), + ), +) + +NETWORK_INTERFACE_PERMISSION_STATE_CODE: StaticSchema = ( + 14, + n0, + _NIPSC, + 0, + (_p, _gra, _rev, _revo), + ((-1, {_sV: _p}), (-1, {_sV: _gra}), (-1, {_sV: _rev}), (-1, {_sV: _revo})), +) + +NETWORK_INTERFACE_PERMISSION_STATE: StaticSchema = ( + 18, + n0, + _NIPS, + 0, + (_St, _SMt), + ( + (NETWORK_INTERFACE_PERMISSION_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + ), +) + +NETWORK_INTERFACE_PERMISSION: StaticSchema = ( + 18, + n0, + _NIPe, + 0, + (_NIPIe, _NII, _AAIw, _ASw, _Pe, _PSer), + ( + (STRING, {_aQN: _NIPIe, _sN: _nIPIe}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _AAIw, _sN: _aAI}), + (STRING, {_aQN: _ASw, _sN: _aSw}), + (INTERFACE_PERMISSION_TYPE, {_aQN: _Pe, _sN: _perm}), + (NETWORK_INTERFACE_PERMISSION_STATE, {_aQN: _PSer, _sN: _pSer}), + ), +) + +CREATE_NETWORK_INTERFACE_PERMISSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CNIPOr, + {_sSI: _cCNIPRoma, _smit: None}, + (_IPnt,), + ((NETWORK_INTERFACE_PERMISSION, {_aQN: _IPnt, _sN: _iPnt}),), +) + +CREATE_NETWORK_INTERFACE_PERMISSION: StaticOperationSchema = ( + 23, + n0, + _CNIPr, + 0, + CREATE_NETWORK_INTERFACE_PERMISSION_INPUT, + CREATE_NETWORK_INTERFACE_PERMISSION_OUTPUT, + (), +) + +SPREAD_LEVEL: StaticSchema = ( + 14, + n0, + _SLp, + 0, + (_ho, _rac), + ((-1, {_sV: _ho}), (-1, {_sV: _rac})), +) + +PLACEMENT_STRATEGY: StaticSchema = ( + 14, + n0, + _PSl, + 0, + (_clu, _spr, _part, _pt___), + ((-1, {_sV: _clu}), (-1, {_sV: _spr}), (-1, {_sV: _part}), (-1, {_sV: _pt____})), +) + +CREATE_PLACEMENT_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CPGI, + {_sSI: _cCPGR, _sm: None}, + (_PCa, _TSa, _SLp, _LGIi, _Op, _PGIa, _DR, _GN, _Str), + ( + (INTEGER, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (SPREAD_LEVEL, 0), + (PLACEMENT_GROUP_ID, 0), + (OPERATOR_REQUEST, 0), + (PLACEMENT_GROUP_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _GN, _sN: _gN}), + (PLACEMENT_STRATEGY, {_aQN: _Str, _sN: _str}), + ), +) + +PLACEMENT_GROUP_STATE: StaticSchema = ( + 14, + n0, + _PGS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +PLACEMENT_GROUP: StaticSchema = ( + 18, + n0, + _PG, + 0, + (_GN, _St, _Str, _PCa, _GIr, _Tag, _GA, _SLp, _LGIi, _Op, _PGIa), + ( + (STRING, {_aQN: _GN, _sN: _gN}), + (PLACEMENT_GROUP_STATE, {_aQN: _St, _sN: _st}), + (PLACEMENT_STRATEGY, {_aQN: _Str, _sN: _str}), + (INTEGER, {_aQN: _PCa, _sN: _pCa}), + (STRING, {_aQN: _GIr, _sN: _gIr}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _GA, _sN: _gA}), + (SPREAD_LEVEL, {_aQN: _SLp, _sN: _sL}), + (PLACEMENT_GROUP_ID, {_aQN: _LGIi, _sN: _lGIi}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (PLACEMENT_GROUP_ID, {_aQN: _PGIa, _sN: _pGI}), + ), +) + +CREATE_PLACEMENT_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CPGO, + {_sSI: _cCPGRo, _smit: None}, + (_PG,), + ((PLACEMENT_GROUP, {_aQN: _PG, _sN: _pG}),), +) + +CREATE_PLACEMENT_GROUP: StaticOperationSchema = ( + 23, + n0, + _CPG, + 0, + CREATE_PLACEMENT_GROUP_INPUT, + CREATE_PLACEMENT_GROUP_OUTPUT, + (), +) + +CREATE_PUBLIC_IPV4_POOL_INPUT: StaticSchema = ( + 18, + n0, + _CPIPI, + {_sSI: _cCPIPR, _sm: None}, + (_DR, _TSa, _NBG), + ((BOOLEAN, 0), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (STRING, 0)), +) + +CREATE_PUBLIC_IPV4_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _CPIPO, + {_sSI: _cCPIPRo, _smit: None}, + (_PIo,), + ((IPV4_POOL_EC2_ID, {_aQN: _PIo, _sN: _pIo}),), +) + +CREATE_PUBLIC_IPV4_POOL: StaticOperationSchema = ( + 23, + n0, + _CPIP, + 0, + CREATE_PUBLIC_IPV4_POOL_INPUT, + CREATE_PUBLIC_IPV4_POOL_OUTPUT, + (), +) + +CREATE_REPLACE_ROOT_VOLUME_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CRRVTI, + {_sSI: _cCRRVTR, _sm: None}, + (_II, _SIn, _CTl, _DR, _TSa, _IIm, _DRRV, _VIR, _VIo), + ( + (INSTANCE_ID, 1), + (SNAPSHOT_ID, 0), + (STRING, 2), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (IMAGE_ID, 0), + (BOOLEAN, 0), + (LONG, 0), + (VOLUME_ID, 0), + ), +) + +REPLACE_ROOT_VOLUME_TASK_ID: StaticSchema = (3, n0, _RRVTI, 0) + +REPLACE_ROOT_VOLUME_TASK_STATE: StaticSchema = ( + 14, + n0, + _RRVTS, + 0, + (_p, _ip________, _fai, _suc, _fa, _fd____), + ( + (-1, {_sV: _p}), + (-1, {_sV: _ip_____}), + (-1, {_sV: _fai}), + (-1, {_sV: _suc}), + (-1, {_sV: _fa}), + (-1, {_sV: _fd_____}), + ), +) + +REPLACE_ROOT_VOLUME_TASK: StaticSchema = ( + 18, + n0, + _RRVT, + 0, + (_RRVTI, _II, _TSas, _ST, _CTom, _Tag, _IIm, _SIn, _DRRV), + ( + (REPLACE_ROOT_VOLUME_TASK_ID, {_aQN: _RRVTI, _sN: _rRVTI}), + (STRING, {_aQN: _II, _sN: _iI}), + (REPLACE_ROOT_VOLUME_TASK_STATE, {_aQN: _TSas, _sN: _tSa}), + (STRING, {_aQN: _ST, _sN: _sTt}), + (STRING, {_aQN: _CTom, _sN: _cTom}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (BOOLEAN, {_aQN: _DRRV, _sN: _dRRV}), + ), +) + +CREATE_REPLACE_ROOT_VOLUME_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CRRVTO, + {_sSI: _cCRRVTRo, _smit: None}, + (_RRVT,), + ((REPLACE_ROOT_VOLUME_TASK, {_aQN: _RRVT, _sN: _rRVT}),), +) + +CREATE_REPLACE_ROOT_VOLUME_TASK: StaticOperationSchema = ( + 23, + n0, + _CRRVT, + 0, + CREATE_REPLACE_ROOT_VOLUME_TASK_INPUT, + CREATE_REPLACE_ROOT_VOLUME_TASK_OUTPUT, + (), +) + +PRICE_SCHEDULE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _PSS, + 0, + (_Te, _Pric, _CC), + ( + (LONG, {_aQN: _Te, _sN: _te}), + (DOUBLE, {_aQN: _Pric, _sN: _pric}), + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + ), +) + +PRICE_SCHEDULE_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _PSSL, + 0, + (_me,), + ((PRICE_SCHEDULE_SPECIFICATION, {_sN: _i}),), +) + +CREATE_RESERVED_INSTANCES_LISTING_INPUT: StaticSchema = ( + 18, + n0, + _CRILIr, + {_sSI: _cCRILRom, _sm: None}, + (_RIIes, _IC, _PSric, _CTl), + ( + (RESERVATION_ID, {_aQN: _RIIes, _sN: _rII, _smi: None}), + (INTEGER, {_aQN: _IC, _sN: _iC, _smi: None}), + (PRICE_SCHEDULE_SPECIFICATION_LIST, {_aQN: _PSric, _sN: _pSri, _smi: None}), + (STRING, {_aQN: _CTl, _sN: _cTl, _smi: None}), + ), +) + +CREATE_RESERVED_INSTANCES_LISTING_OUTPUT: StaticSchema = ( + 18, + n0, + _CRILOr, + {_sSI: _cCRILRoma, _smit: None}, + (_RILe,), + ((RESERVED_INSTANCES_LISTING_LIST, {_aQN: _RILS, _sN: _rILS}),), +) + +CREATE_RESERVED_INSTANCES_LISTING: StaticOperationSchema = ( + 23, + n0, + _CRILr, + 0, + CREATE_RESERVED_INSTANCES_LISTING_INPUT, + CREATE_RESERVED_INSTANCES_LISTING_OUTPUT, + (), +) + +CREATE_RESTORE_IMAGE_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CRITI, + {_sSI: _cCRITR, _sm: None}, + (_Bu, _OK, _N, _TSa, _DR), + ( + (STRING, 1), + (STRING, 1), + (IMAGE_NAME_REQUEST, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +CREATE_RESTORE_IMAGE_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CRITO, + {_sSI: _cCRITRo, _smit: None}, + (_IIm,), + ((STRING, {_aQN: _IIm, _sN: _iIm}),), +) + +CREATE_RESTORE_IMAGE_TASK: StaticOperationSchema = ( + 23, + n0, + _CRIT, + 0, + CREATE_RESTORE_IMAGE_TASK_INPUT, + CREATE_RESTORE_IMAGE_TASK_OUTPUT, + (), +) + +CORE_NETWORK_ARN: StaticSchema = (3, n0, _CNA, 0) + +ODB_NETWORK_ARN: StaticSchema = (3, n0, _ONA, 0) + +VPC_PEERING_CONNECTION_ID: StaticSchema = (3, n0, _VPCI, 0) + +CREATE_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _CRIr, + {_sSI: _cCRR, _sm: None}, + ( + _DPLI, + _VEI, + _TGI, + _LGI, + _CGI, + _CNA, + _ONA, + _DR, + _RTIo, + _DCB, + _GI, + _DICB, + _EOIGI, + _II, + _NII, + _VPCI, + _NGI, + ), + ( + (PREFIX_LIST_RESOURCE_ID, 0), + (VPC_ENDPOINT_ID, 0), + (TRANSIT_GATEWAY_ID, 0), + (LOCAL_GATEWAY_ID, 0), + (CARRIER_GATEWAY_ID, 0), + (CORE_NETWORK_ARN, 0), + (ODB_NETWORK_ARN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (ROUTE_GATEWAY_ID, {_aQN: _GI, _sN: _gI}), + (STRING, {_aQN: _DICB, _sN: _dICB}), + (EGRESS_ONLY_INTERNET_GATEWAY_ID, {_aQN: _EOIGI, _sN: _eOIGI}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (VPC_PEERING_CONNECTION_ID, {_aQN: _VPCI, _sN: _vPCI}), + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + ), +) + +CREATE_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CROr, + {_sSI: _cCRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +CREATE_ROUTE: StaticOperationSchema = ( + 23, + n0, + _CRr, + 0, + CREATE_ROUTE_INPUT, + CREATE_ROUTE_OUTPUT, + (), +) + +ROUTE_SERVER_PERSIST_ROUTES_ACTION: StaticSchema = ( + 14, + n0, + _RSPRA, + 0, + (_ENABLE, _DISABLE, _RESET), + ((-1, {_sV: _e}), (-1, {_sV: _disa}), (-1, {_sV: _res})), +) + +CREATE_ROUTE_SERVER_INPUT: StaticSchema = ( + 18, + n0, + _CRSI, + {_sSI: _cCRSR, _sm: None}, + (_ASA, _CTl, _DR, _PRe, _PRD, _SNE, _TSa), + ( + (LONG, 1), + (STRING, 2), + (BOOLEAN, 0), + (ROUTE_SERVER_PERSIST_ROUTES_ACTION, 0), + (BOXED_LONG, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +ROUTE_SERVER_PERSIST_ROUTES_STATE: StaticSchema = ( + 14, + n0, + _RSPRS, + 0, + (_ENABLING, _ENABLED, _RESETTING, _DISABLING, _DISABLED, _MODIFYING), + ( + (-1, {_sV: _en}), + (-1, {_sV: _ena}), + (-1, {_sV: _rese}), + (-1, {_sV: _disab}), + (-1, {_sV: _d}), + (-1, {_sV: _mo}), + ), +) + +ROUTE_SERVER_STATE: StaticSchema = ( + 14, + n0, + _RSS, + 0, + (_PENDING, _AVAILABLE, _MODIFYING, _DELETING, _DELETED), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _mo}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +ROUTE_SERVER: StaticSchema = ( + 18, + n0, + _RSo, + 0, + (_RSI, _ASA, _St, _Tag, _PRSe, _PRD, _SNE, _STA), + ( + (ROUTE_SERVER_ID, {_aQN: _RSI, _sN: _rSI}), + (LONG, {_aQN: _ASA, _sN: _aSA}), + (ROUTE_SERVER_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (ROUTE_SERVER_PERSIST_ROUTES_STATE, {_aQN: _PRSe, _sN: _pRSe}), + (BOXED_LONG, {_aQN: _PRD, _sN: _pRD}), + (BOOLEAN, {_aQN: _SNE, _sN: _sNE}), + (STRING, {_aQN: _STA, _sN: _sTA}), + ), +) + +CREATE_ROUTE_SERVER_OUTPUT: StaticSchema = ( + 18, + n0, + _CRSO, + {_sSI: _cCRSRo, _smit: None}, + (_RSo,), + ((ROUTE_SERVER, {_aQN: _RSo, _sN: _rSo}),), +) + +CREATE_ROUTE_SERVER: StaticOperationSchema = ( + 23, + n0, + _CRSr, + 0, + CREATE_ROUTE_SERVER_INPUT, + CREATE_ROUTE_SERVER_OUTPUT, + (), +) + +CREATE_ROUTE_SERVER_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CRSEI, + {_sSI: _cCRSER, _sm: None}, + (_RSI, _SIu, _CTl, _DR, _TSa), + ( + (ROUTE_SERVER_ID, 1), + (SUBNET_ID, 1), + (STRING, 2), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +ROUTE_SERVER_ENDPOINT_ID: StaticSchema = (3, n0, _RSEI, 0) + +ROUTE_SERVER_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _RSES, + 0, + (_PENDING, _AVAILABLE, _DELETING, _DELETED, _FAILING, _FAILED, _DF_), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _fai}), + (-1, {_sV: _fa}), + (-1, {_sV: _df____}), + ), +) + +ROUTE_SERVER_ENDPOINT: StaticSchema = ( + 18, + n0, + _RSE, + 0, + (_RSI, _RSEI, _VI, _SIu, _EIn, _EAn, _St, _FRa, _Tag), + ( + (ROUTE_SERVER_ID, {_aQN: _RSI, _sN: _rSI}), + (ROUTE_SERVER_ENDPOINT_ID, {_aQN: _RSEI, _sN: _rSEI}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (NETWORK_INTERFACE_ID, {_aQN: _EIn, _sN: _eIn}), + (STRING, {_aQN: _EAn, _sN: _eA}), + (ROUTE_SERVER_ENDPOINT_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _FRa, _sN: _fRa}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_ROUTE_SERVER_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CRSEO, + {_sSI: _cCRSERo, _smit: None}, + (_RSE,), + ((ROUTE_SERVER_ENDPOINT, {_aQN: _RSE, _sN: _rSE}),), +) + +CREATE_ROUTE_SERVER_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CRSE, + 0, + CREATE_ROUTE_SERVER_ENDPOINT_INPUT, + CREATE_ROUTE_SERVER_ENDPOINT_OUTPUT, + (), +) + +ROUTE_SERVER_PEER_LIVENESS_MODE: StaticSchema = ( + 14, + n0, + _RSPLM, + 0, + (_BFD, _BK), + ((-1, {_sV: _bf}), (-1, {_sV: _bk})), +) + +ROUTE_SERVER_BGP_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _RSBOR, + 0, + (_PAee, _PLD), + ((LONG, 1), (ROUTE_SERVER_PEER_LIVENESS_MODE, 0)), +) + +CREATE_ROUTE_SERVER_PEER_INPUT: StaticSchema = ( + 18, + n0, + _CRSPI, + {_sSI: _cCRSPR, _sm: None}, + (_RSEI, _PAe, _BO, _DR, _TSa), + ( + (ROUTE_SERVER_ENDPOINT_ID, 1), + (STRING, 1), + (ROUTE_SERVER_BGP_OPTIONS_REQUEST, 1), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +ROUTE_SERVER_BFD_STATE: StaticSchema = ( + 14, + n0, + _RSBS, + 0, + (_UP__, _DOWN), + ((-1, {_sV: _up_}), (-1, {_sV: _dow})), +) + +ROUTE_SERVER_BFD_STATUS: StaticSchema = ( + 18, + n0, + _RSBSo, + 0, + (_Sta,), + ((ROUTE_SERVER_BFD_STATE, {_aQN: _Sta, _sN: _sta}),), +) + +ROUTE_SERVER_BGP_OPTIONS: StaticSchema = ( + 18, + n0, + _RSBO, + 0, + (_PAee, _PLD), + ( + (LONG, {_aQN: _PAee, _sN: _pAee}), + (ROUTE_SERVER_PEER_LIVENESS_MODE, {_aQN: _PLD, _sN: _pLD}), + ), +) + +ROUTE_SERVER_BGP_STATE: StaticSchema = ( + 14, + n0, + _RSBSou, + 0, + (_UP__, _DOWN), + ((-1, {_sV: _up_}), (-1, {_sV: _dow})), +) + +ROUTE_SERVER_BGP_STATUS: StaticSchema = ( + 18, + n0, + _RSBSout, + 0, + (_Sta,), + ((ROUTE_SERVER_BGP_STATE, {_aQN: _Sta, _sN: _sta}),), +) + +ROUTE_SERVER_PEER_ID: StaticSchema = (3, n0, _RSPI, 0) + +ROUTE_SERVER_PEER_STATE: StaticSchema = ( + 14, + n0, + _RSPS, + 0, + (_PENDING, _AVAILABLE, _DELETING, _DELETED, _FAILING, _FAILED), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + (-1, {_sV: _fai}), + (-1, {_sV: _fa}), + ), +) + +ROUTE_SERVER_PEER: StaticSchema = ( + 18, + n0, + _RSP, + 0, + (_RSPI, _RSEI, _RSI, _VI, _SIu, _St, _FRa, _EEI, _EEA, _PAe, _BO, _BSg, _BSf, _Tag), + ( + (ROUTE_SERVER_PEER_ID, {_aQN: _RSPI, _sN: _rSPI}), + (ROUTE_SERVER_ENDPOINT_ID, {_aQN: _RSEI, _sN: _rSEI}), + (ROUTE_SERVER_ID, {_aQN: _RSI, _sN: _rSI}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (ROUTE_SERVER_PEER_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _FRa, _sN: _fRa}), + (NETWORK_INTERFACE_ID, {_aQN: _EEI, _sN: _eEI}), + (STRING, {_aQN: _EEA, _sN: _eEA}), + (STRING, {_aQN: _PAe, _sN: _pAe}), + (ROUTE_SERVER_BGP_OPTIONS, {_aQN: _BO, _sN: _bO}), + (ROUTE_SERVER_BGP_STATUS, {_aQN: _BSg, _sN: _bSg}), + (ROUTE_SERVER_BFD_STATUS, {_aQN: _BSf, _sN: _bSf}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_ROUTE_SERVER_PEER_OUTPUT: StaticSchema = ( + 18, + n0, + _CRSPO, + {_sSI: _cCRSPRo, _smit: None}, + (_RSP,), + ((ROUTE_SERVER_PEER, {_aQN: _RSP, _sN: _rSP}),), +) + +CREATE_ROUTE_SERVER_PEER: StaticOperationSchema = ( + 23, + n0, + _CRSP, + 0, + CREATE_ROUTE_SERVER_PEER_INPUT, + CREATE_ROUTE_SERVER_PEER_OUTPUT, + (), +) + +CREATE_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _CRTI, + {_sSI: _cCRTR, _sm: None}, + (_TSa, _CTl, _DR, _VI), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + ), +) + +ROUTE_TABLE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _RTA, + 0, + (_Mai, _RTAI, _RTIo, _SIu, _GI, _PIP, _ASss), + ( + (BOOLEAN, {_aQN: _Mai, _sN: _main}), + (STRING, {_aQN: _RTAI, _sN: _rTAI}), + (STRING, {_aQN: _RTIo, _sN: _rTIo}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _GI, _sN: _gI}), + (STRING, {_aQN: _PIP, _sN: _pIP}), + (ROUTE_TABLE_ASSOCIATION_STATE, {_aQN: _ASss, _sN: _aSs}), + ), +) + +ROUTE_TABLE_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _RTAL, + 0, + (_me,), + ((ROUTE_TABLE_ASSOCIATION, {_sN: _i}),), +) + +PROPAGATING_VGW: StaticSchema = ( + 18, + n0, + _PVr, + 0, + (_GI,), + ((STRING, {_aQN: _GI, _sN: _gI}),), +) + +PROPAGATING_VGW_LIST: StaticSchema = ( + 16, + n0, + _PVL, + 0, + (_me,), + ((PROPAGATING_VGW, {_sN: _i}),), +) + +ROUTE_ORIGIN: StaticSchema = ( + 14, + n0, + _ROo, + 0, + (_CRTr, _CRr, _EVRP, _Adv), + ((-1, {_sV: _CRTr}), (-1, {_sV: _CRr}), (-1, {_sV: _EVRP}), (-1, {_sV: _Adv})), +) + +ROUTE_STATE: StaticSchema = ( + 14, + n0, + _RSou, + 0, + (_act, _bl, _fil), + ((-1, {_sV: _act}), (-1, {_sV: _bl}), (-1, {_sV: _fil})), +) + +ROUTE: StaticSchema = ( + 18, + n0, + _Rou, + 0, + ( + _DCB, + _DICB, + _DPLI, + _EOIGI, + _GI, + _II, + _IOIn, + _NGI, + _TGI, + _LGI, + _CGI, + _NII, + _Or, + _St, + _VPCI, + _CNA, + _ONA, + _IA, + ), + ( + (STRING, {_aQN: _DCB, _sN: _dCB}), + (STRING, {_aQN: _DICB, _sN: _dICB}), + (STRING, {_aQN: _DPLI, _sN: _dPLI}), + (STRING, {_aQN: _EOIGI, _sN: _eOIGI}), + (STRING, {_aQN: _GI, _sN: _gI}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IOIn, _sN: _iOIn}), + (STRING, {_aQN: _NGI, _sN: _nGI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _LGI, _sN: _lGI}), + (CARRIER_GATEWAY_ID, {_aQN: _CGI, _sN: _cGI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (ROUTE_ORIGIN, {_aQN: _Or, _sN: _or}), + (ROUTE_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + (CORE_NETWORK_ARN, {_aQN: _CNA, _sN: _cNA}), + (ODB_NETWORK_ARN, {_aQN: _ONA, _sN: _oNA}), + (STRING, {_aQN: _IA, _sN: _iApd}), + ), +) + +ROUTE_LIST: StaticSchema = (16, n0, _RL, 0, (_me,), ((ROUTE, {_sN: _i}),)) + +ROUTE_TABLE: StaticSchema = ( + 18, + n0, + _RTo, + 0, + (_As, _PVro, _RTIo, _Rout, _Tag, _VI, _OIw), + ( + (ROUTE_TABLE_ASSOCIATION_LIST, {_aQN: _ASsso, _sN: _aSss}), + (PROPAGATING_VGW_LIST, {_aQN: _PVS, _sN: _pVS}), + (STRING, {_aQN: _RTIo, _sN: _rTIo}), + (ROUTE_LIST, {_aQN: _RSout, _sN: _rSou}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _OIw, _sN: _oI}), + ), +) + +CREATE_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CRTO, + {_sSI: _cCRTRo, _smit: None}, + (_RTo, _CTl), + ((ROUTE_TABLE, {_aQN: _RTo, _sN: _rTo}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _CRTr, + 0, + CREATE_ROUTE_TABLE_INPUT, + CREATE_ROUTE_TABLE_OUTPUT, + (), +) + +SECONDARY_NETWORK_TYPE: StaticSchema = ( + 14, + n0, + _SNT, + 0, + (_rdma,), + ((-1, {_sV: _rdma}),), +) + +CREATE_SECONDARY_NETWORK_INPUT: StaticSchema = ( + 18, + n0, + _CSNI, + {_sSI: _cCSNR, _sm: None}, + (_CTl, _DR, _ICBp, _NTe, _TSa), + ( + (STRING, 2), + (BOOLEAN, 0), + (STRING, 1), + (SECONDARY_NETWORK_TYPE, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +SECONDARY_NETWORK_CIDR_ASSOCIATION_ID: StaticSchema = (3, n0, _SNCAI, 0) + +SECONDARY_NETWORK_CIDR_BLOCK_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _SNCBAS, + 0, + (_as, _ass, _af, _di, _dis, _df_), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _af_}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _df__}), + ), +) + +SECONDARY_NETWORK_IPV4_CIDR_BLOCK_ASSOCIATION: StaticSchema = ( + 18, + n0, + _SNICBA, + 0, + (_AIs, _CB, _St, _SRt), + ( + (SECONDARY_NETWORK_CIDR_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _CB, _sN: _cB}), + (SECONDARY_NETWORK_CIDR_BLOCK_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SRt, _sN: _sRt}), + ), +) + +SECONDARY_NETWORK_IPV4_CIDR_BLOCK_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _SNICBAL, + 0, + (_me,), + ((SECONDARY_NETWORK_IPV4_CIDR_BLOCK_ASSOCIATION, {_sN: _i}),), +) + +SECONDARY_NETWORK_ID: StaticSchema = (3, n0, _SNI, 0) + +SECONDARY_NETWORK_STATE: StaticSchema = ( + 14, + n0, + _SNS, + 0, + (_cip, _cc_, _cf________________________, _dip_, _dc_, _df___), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + ), +) + +SECONDARY_NETWORK: StaticSchema = ( + 18, + n0, + _SNec, + 0, + (_SNI, _SNA, _OIw, _Ty, _St, _SRt, _ICBAp, _Tag), + ( + (SECONDARY_NETWORK_ID, {_aQN: _SNI, _sN: _sNI}), + (STRING, {_aQN: _SNA, _sN: _sNA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (SECONDARY_NETWORK_TYPE, {_aQN: _Ty, _sN: _ty}), + (SECONDARY_NETWORK_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SRt, _sN: _sRt}), + ( + SECONDARY_NETWORK_IPV4_CIDR_BLOCK_ASSOCIATION_LIST, + {_aQN: _ICBASp, _sN: _iCBASp}, + ), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_SECONDARY_NETWORK_OUTPUT: StaticSchema = ( + 18, + n0, + _CSNO, + {_sSI: _cCSNRo, _smit: None}, + (_SNec, _CTl), + ((SECONDARY_NETWORK, {_aQN: _SNec, _sN: _sNec}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_SECONDARY_NETWORK: StaticOperationSchema = ( + 23, + n0, + _CSN, + 0, + CREATE_SECONDARY_NETWORK_INPUT, + CREATE_SECONDARY_NETWORK_OUTPUT, + (), +) + +CREATE_SECONDARY_SUBNET_INPUT: StaticSchema = ( + 18, + n0, + _CSSI, + {_sSI: _cCSSR, _sm: None}, + (_CTl, _AZ, _AZI, _DR, _ICBp, _SNI, _TSa), + ( + (STRING, 2), + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + (BOOLEAN, 0), + (STRING, 1), + (SECONDARY_NETWORK_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +SECONDARY_SUBNET_CIDR_ASSOCIATION_ID: StaticSchema = (3, n0, _SSCAI, 0) + +SECONDARY_SUBNET_CIDR_BLOCK_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _SSCBAS, + 0, + (_as, _ass, _af, _di, _dis, _df_), + ( + (-1, {_sV: _as}), + (-1, {_sV: _ass}), + (-1, {_sV: _af_}), + (-1, {_sV: _di}), + (-1, {_sV: _dis}), + (-1, {_sV: _df__}), + ), +) + +SECONDARY_SUBNET_IPV4_CIDR_BLOCK_ASSOCIATION: StaticSchema = ( + 18, + n0, + _SSICBA, + 0, + (_AIs, _CB, _St, _SRt), + ( + (SECONDARY_SUBNET_CIDR_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _CB, _sN: _cB}), + (SECONDARY_SUBNET_CIDR_BLOCK_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SRt, _sN: _sRt}), + ), +) + +SECONDARY_SUBNET_IPV4_CIDR_BLOCK_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _SSICBAL, + 0, + (_me,), + ((SECONDARY_SUBNET_IPV4_CIDR_BLOCK_ASSOCIATION, {_sN: _i}),), +) + +SECONDARY_SUBNET_STATE: StaticSchema = ( + 14, + n0, + _SSS, + 0, + (_cip, _cc_, _cf________________________, _dip_, _dc_, _df___), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _df____}), + ), +) + +SECONDARY_SUBNET: StaticSchema = ( + 18, + n0, + _SSe, + 0, + (_SSIe, _SSA, _SNI, _SNT, _OIw, _AZI, _AZ, _ICBAp, _St, _SRt, _Tag), + ( + (SECONDARY_SUBNET_ID, {_aQN: _SSIe, _sN: _sSIe}), + (STRING, {_aQN: _SSA, _sN: _sSA}), + (SECONDARY_NETWORK_ID, {_aQN: _SNI, _sN: _sNI}), + (SECONDARY_NETWORK_TYPE, {_aQN: _SNT, _sN: _sNT}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + ( + SECONDARY_SUBNET_IPV4_CIDR_BLOCK_ASSOCIATION_LIST, + {_aQN: _ICBASp, _sN: _iCBASp}, + ), + (SECONDARY_SUBNET_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SRt, _sN: _sRt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_SECONDARY_SUBNET_OUTPUT: StaticSchema = ( + 18, + n0, + _CSSO, + {_sSI: _cCSSRo, _smit: None}, + (_SSe, _CTl), + ((SECONDARY_SUBNET, {_aQN: _SSe, _sN: _sSe}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_SECONDARY_SUBNET: StaticOperationSchema = ( + 23, + n0, + _CSS, + 0, + CREATE_SECONDARY_SUBNET_INPUT, + CREATE_SECONDARY_SUBNET_OUTPUT, + (), +) + +CREATE_SECURITY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CSGI, + {_sSI: _cCSGR, _sm: None}, + (_Des, _GN, _VI, _TSa, _DR), + ( + (STRING, {_sN: _GD, _smi: None}), + (STRING, 1), + (VPC_ID, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CREATE_SECURITY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CSGO, + {_sSI: _cCSGRo, _smit: None}, + (_GIr, _Tag, _SGA), + ( + (STRING, {_aQN: _GIr, _sN: _gIr}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _SGA, _sN: _sGA}), + ), +) + +CREATE_SECURITY_GROUP: StaticOperationSchema = ( + 23, + n0, + _CSG, + 0, + CREATE_SECURITY_GROUP_INPUT, + CREATE_SECURITY_GROUP_OUTPUT, + (), +) + +CREATE_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CSIr, + {_sSI: _cCSRom, _sm: None}, + (_Des, _OA, _VIo, _TSa, _Loca, _DR), + ( + (STRING, 0), + (STRING, 0), + (VOLUME_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (SNAPSHOT_LOCATION_ENUM, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +SNAPSHOT_COMPLETION_DURATION_MINUTES_RESPONSE: StaticSchema = (7, n0, _SCDMRn, 0) + +SNAPSHOT_STATE: StaticSchema = ( + 14, + n0, + _SSn, + 0, + (_p, _compl, _er, _rec, _reco), + ( + (-1, {_sV: _p}), + (-1, {_sV: _compl}), + (-1, {_sV: _er}), + (-1, {_sV: _rec}), + (-1, {_sV: _reco}), + ), +) + +STORAGE_TIER: StaticSchema = ( + 14, + n0, + _STt, + 0, + (_arc, _stan), + ((-1, {_sV: _arc}), (-1, {_sV: _stan})), +) + +TRANSFER_TYPE: StaticSchema = ( + 14, + n0, + _TTra, + 0, + (_tb, _stan), + ((-1, {_sV: _tb_}), (-1, {_sV: _stan})), +) + +CREATE_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CSOr, + {_sSI: _cSom, _smit: None}, + ( + _OAw, + _OA, + _Tag, + _STt, + _RET, + _STs, + _AZ, + _TTra, + _CDM, + _CTomp, + _FSSIB, + _SIn, + _VIo, + _St, + _SMta, + _ST, + _Prog, + _OIw, + _Des, + _VSol, + _En, + _KKI, + _DEKI, + ), + ( + (STRING, {_aQN: _OAw, _sN: _oAw}), + (STRING, {_aQN: _OA, _sN: _oA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STORAGE_TIER, {_aQN: _STt, _sN: _sTto}), + (MILLISECOND_DATE_TIME, {_aQN: _RET, _sN: _rET}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (TRANSFER_TYPE, {_aQN: _TTra, _sN: _tTr}), + (SNAPSHOT_COMPLETION_DURATION_MINUTES_RESPONSE, {_aQN: _CDM, _sN: _cDM}), + (MILLISECOND_DATE_TIME, {_aQN: _CTomp, _sN: _cTomp}), + (LONG, {_aQN: _FSSIB, _sN: _fSSIB}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (SNAPSHOT_STATE, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + (STRING, {_aQN: _DEKI, _sN: _dEKI}), + ), +) + +CREATE_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CSre, + 0, + CREATE_SNAPSHOT_INPUT, + CREATE_SNAPSHOT_OUTPUT, + (), +) + +COPY_TAGS_FROM_SOURCE: StaticSchema = (14, n0, _CTFS, 0, (_vo,), ((-1, {_sV: _vo}),)) + +VOLUME_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _VISL, + 0, + (_me,), + ((VOLUME_ID, {_sN: _VIo}),), +) + +INSTANCE_ID_WITH_VOLUME_RESOLVER: StaticSchema = (3, n0, _IIWVR, 0) + +INSTANCE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _ISn, + 0, + (_II, _EBV, _EDVI), + ( + (INSTANCE_ID_WITH_VOLUME_RESOLVER, 1), + (BOOLEAN, 0), + (VOLUME_ID_STRING_LIST, {_sN: _EDVIx}), + ), +) + +CREATE_SNAPSHOTS_INPUT: StaticSchema = ( + 18, + n0, + _CSIre, + {_sSI: _cCSRoma, _sm: None}, + (_Des, _ISn, _OA, _TSa, _DR, _CTFS, _Loca), + ( + (STRING, 0), + (INSTANCE_SPECIFICATION, 1), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (COPY_TAGS_FROM_SOURCE, 0), + (SNAPSHOT_LOCATION_ENUM, 0), + ), +) + +SNAPSHOT_INFO: StaticSchema = ( + 18, + n0, + _SIna, + 0, + (_Des, _Tag, _En, _VIo, _St, _VSol, _ST, _Prog, _OIw, _SIn, _OA, _STs, _AZ), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (SNAPSHOT_STATE, {_aQN: _St, _sN: _st}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (MILLISECOND_DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _OA, _sN: _oA}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + ), +) + +SNAPSHOT_SET: StaticSchema = (16, n0, _SSna, 0, (_me,), ((SNAPSHOT_INFO, {_sN: _i}),)) + +CREATE_SNAPSHOTS_OUTPUT: StaticSchema = ( + 18, + n0, + _CSOre, + {_sSI: _cCSRomam, _smit: None}, + (_Sn,), + ((SNAPSHOT_SET, {_aQN: _SSna, _sN: _sSn}),), +) + +CREATE_SNAPSHOTS: StaticOperationSchema = ( + 23, + n0, + _CSrea, + 0, + CREATE_SNAPSHOTS_INPUT, + CREATE_SNAPSHOTS_OUTPUT, + (), +) + +CREATE_SPOT_DATAFEED_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _CSDSI, + {_sSI: _cCSDSR, _sm: None}, + (_DR, _Bu, _Pre), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _Bu, _sN: _buc, _smi: None}), + (STRING, {_aQN: _Pre, _sN: _pre}), + ), +) + +SPOT_INSTANCE_STATE_FAULT: StaticSchema = ( + 18, + n0, + _SISF, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +DATAFEED_SUBSCRIPTION_STATE: StaticSchema = ( + 14, + n0, + _DSS, + 0, + (_Act, _Ina), + ((-1, {_sV: _Act}), (-1, {_sV: _Ina})), +) + +SPOT_DATAFEED_SUBSCRIPTION: StaticSchema = ( + 18, + n0, + _SDS, + 0, + (_Bu, _Fa, _OIw, _Pre, _St), + ( + (STRING, {_aQN: _Bu, _sN: _buc}), + (SPOT_INSTANCE_STATE_FAULT, {_aQN: _Fa, _sN: _fau}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Pre, _sN: _pre}), + (DATAFEED_SUBSCRIPTION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +CREATE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CSDSO, + {_sSI: _cCSDSRo, _smit: None}, + (_SDS,), + ((SPOT_DATAFEED_SUBSCRIPTION, {_aQN: _SDS, _sN: _sDS}),), +) + +CREATE_SPOT_DATAFEED_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _CSDS, + 0, + CREATE_SPOT_DATAFEED_SUBSCRIPTION_INPUT, + CREATE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT, + (), +) + +S3_OBJECT_TAG: StaticSchema = (18, n0, _SOT, 0, (_Ke, _Va), ((STRING, 0), (STRING, 0))) + +S3_OBJECT_TAG_LIST: StaticSchema = ( + 16, + n0, + _SOTL, + 0, + (_me,), + ((S3_OBJECT_TAG, {_sN: _i}),), +) + +CREATE_STORE_IMAGE_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CSITI, + {_sSI: _cCSITR, _sm: None}, + (_IIm, _Bu, _SOTb, _DR), + ((IMAGE_ID, 1), (STRING, 1), (S3_OBJECT_TAG_LIST, {_sN: _SOT}), (BOOLEAN, 0)), +) + +CREATE_STORE_IMAGE_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CSITO, + {_sSI: _cCSITRo, _smit: None}, + (_OK,), + ((STRING, {_aQN: _OK, _sN: _oK}),), +) + +CREATE_STORE_IMAGE_TASK: StaticOperationSchema = ( + 23, + n0, + _CSIT, + 0, + CREATE_STORE_IMAGE_TASK_INPUT, + CREATE_STORE_IMAGE_TASK_OUTPUT, + (), +) + +CREATE_SUBNET_INPUT: StaticSchema = ( + 18, + n0, + _CSIrea, + {_sSI: _cCSRomama, _sm: None}, + (_TSa, _AZ, _AZI, _CB, _ICB, _OA, _VI, _IN, _IIPIp, _INLp, _IIPI, _INL, _DR), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (VPC_ID, 1), + (BOOLEAN, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CREATE_SUBNET_OUTPUT: StaticSchema = ( + 18, + n0, + _CSOrea, + {_sSI: _cCSRomamaz, _smit: None}, + (_Sub,), + ((SUBNET, {_aQN: _Sub, _sN: _su}),), +) + +CREATE_SUBNET: StaticOperationSchema = ( + 23, + n0, + _CSreat, + 0, + CREATE_SUBNET_INPUT, + CREATE_SUBNET_OUTPUT, + (), +) + +SUBNET_CIDR_RESERVATION_TYPE: StaticSchema = ( + 14, + n0, + _SCRT, + 0, + (_pre, _expl), + ((-1, {_sV: _pre}), (-1, {_sV: _expl})), +) + +CREATE_SUBNET_CIDR_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _CSCRI, + {_sSI: _cCSCRR, _sm: None}, + (_SIu, _Ci, _RTes, _Des, _DR, _TSa), + ( + (SUBNET_ID, 1), + (STRING, 1), + (SUBNET_CIDR_RESERVATION_TYPE, 1), + (STRING, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +SUBNET_CIDR_RESERVATION_ID: StaticSchema = (3, n0, _SCRIu, 0) + +SUBNET_CIDR_RESERVATION: StaticSchema = ( + 18, + n0, + _SCRu, + 0, + (_SCRIu, _SIu, _Ci, _RTes, _OIw, _Des, _Tag), + ( + (SUBNET_CIDR_RESERVATION_ID, {_aQN: _SCRIu, _sN: _sCRIu}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _Ci, _sN: _ci}), + (SUBNET_CIDR_RESERVATION_TYPE, {_aQN: _RTes, _sN: _rTe}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_SUBNET_CIDR_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CSCRO, + {_sSI: _cCSCRRo, _smit: None}, + (_SCRu,), + ((SUBNET_CIDR_RESERVATION, {_aQN: _SCRu, _sN: _sCRu}),), +) + +CREATE_SUBNET_CIDR_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _CSCR, + 0, + CREATE_SUBNET_CIDR_RESERVATION_INPUT, + CREATE_SUBNET_CIDR_RESERVATION_OUTPUT, + (), +) + +TAGGABLE_RESOURCE_ID: StaticSchema = (3, n0, _TRI, 0) + +RESOURCE_ID_LIST: StaticSchema = ( + 16, + n0, + _RILes, + 0, + (_me,), + ((TAGGABLE_RESOURCE_ID, 0),), +) + +CREATE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _CTIr, + {_sSI: _cCTR, _sm: None}, + (_DR, _Res, _Tag), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (RESOURCE_ID_LIST, {_sN: _RIe, _smi: None}), + (TAG_LIST, {_sN: _Ta, _smi: None}), + ), +) + +CREATE_TAGS_OUTPUT: StaticSchema = (18, n0, _CTO, {_sSI: _sU, _smit: None}) + +CREATE_TAGS: StaticOperationSchema = ( + 23, + n0, + _CTre, + 0, + CREATE_TAGS_INPUT, + CREATE_TAGS_OUTPUT, + (), +) + +CREATE_TRAFFIC_MIRROR_FILTER_INPUT: StaticSchema = ( + 18, + n0, + _CTMFI, + {_sSI: _cCTMFR, _sm: None}, + (_Des, _TSa, _DR, _CTl), + ((STRING, 0), (TAG_SPECIFICATION_LIST, {_sN: _TS}), (BOOLEAN, 0), (STRING, 2)), +) + +TRAFFIC_MIRROR_PORT_RANGE: StaticSchema = ( + 18, + n0, + _TMPR, + 0, + (_FP, _TP), + ((INTEGER, {_aQN: _FP, _sN: _fP}), (INTEGER, {_aQN: _TP, _sN: _tP})), +) + +TRAFFIC_MIRROR_RULE_ACTION: StaticSchema = ( + 14, + n0, + _TMRA, + 0, + (_acce, _reje), + ((-1, {_sV: _acce}), (-1, {_sV: _reje})), +) + +TRAFFIC_DIRECTION: StaticSchema = ( + 14, + n0, + _TDr, + 0, + (_ing, _egr), + ((-1, {_sV: _ing}), (-1, {_sV: _egr})), +) + +TRAFFIC_MIRROR_FILTER_RULE: StaticSchema = ( + 18, + n0, + _TMFR, + 0, + (_TMFRI, _TMFI, _TDr, _RN, _RA, _P, _DPR, _SPR, _DCB, _SCB, _Des, _Tag), + ( + (STRING, {_aQN: _TMFRI, _sN: _tMFRI}), + (STRING, {_aQN: _TMFI, _sN: _tMFI}), + (TRAFFIC_DIRECTION, {_aQN: _TDr, _sN: _tD}), + (INTEGER, {_aQN: _RN, _sN: _rN}), + (TRAFFIC_MIRROR_RULE_ACTION, {_aQN: _RA, _sN: _rA}), + (INTEGER, {_aQN: _P, _sN: _pro}), + (TRAFFIC_MIRROR_PORT_RANGE, {_aQN: _DPR, _sN: _dPR}), + (TRAFFIC_MIRROR_PORT_RANGE, {_aQN: _SPR, _sN: _sPR}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (STRING, {_aQN: _SCB, _sN: _sCB}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +TRAFFIC_MIRROR_FILTER_RULE_LIST: StaticSchema = ( + 16, + n0, + _TMFRL, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER_RULE, {_sN: _i}),), +) + +TRAFFIC_MIRROR_NETWORK_SERVICE: StaticSchema = ( + 14, + n0, + _TMNS, + 0, + (_ad_,), + ((-1, {_sV: _ad__}),), +) + +TRAFFIC_MIRROR_NETWORK_SERVICE_LIST: StaticSchema = ( + 16, + n0, + _TMNSL, + 0, + (_me,), + ((TRAFFIC_MIRROR_NETWORK_SERVICE, {_sN: _i}),), +) + +TRAFFIC_MIRROR_FILTER: StaticSchema = ( + 18, + n0, + _TMF, + 0, + (_TMFI, _IFR, _EFR, _NSe, _Des, _Tag), + ( + (STRING, {_aQN: _TMFI, _sN: _tMFI}), + (TRAFFIC_MIRROR_FILTER_RULE_LIST, {_aQN: _IFRS, _sN: _iFRS}), + (TRAFFIC_MIRROR_FILTER_RULE_LIST, {_aQN: _EFRS, _sN: _eFRS}), + (TRAFFIC_MIRROR_NETWORK_SERVICE_LIST, {_aQN: _NSS, _sN: _nSS}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRAFFIC_MIRROR_FILTER_OUTPUT: StaticSchema = ( + 18, + n0, + _CTMFO, + {_sSI: _cCTMFRo, _smit: None}, + (_TMF, _CTl), + ( + (TRAFFIC_MIRROR_FILTER, {_aQN: _TMF, _sN: _tMF}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_TRAFFIC_MIRROR_FILTER: StaticOperationSchema = ( + 23, + n0, + _CTMF, + 0, + CREATE_TRAFFIC_MIRROR_FILTER_INPUT, + CREATE_TRAFFIC_MIRROR_FILTER_OUTPUT, + (), +) + +TRAFFIC_MIRROR_PORT_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _TMPRR, + 0, + (_FP, _TP), + ((INTEGER, 0), (INTEGER, 0)), +) + +TRAFFIC_MIRROR_FILTER_ID: StaticSchema = (3, n0, _TMFI, 0) + +CREATE_TRAFFIC_MIRROR_FILTER_RULE_INPUT: StaticSchema = ( + 18, + n0, + _CTMFRI, + {_sSI: _cCTMFRR, _sm: None}, + (_TMFI, _TDr, _RN, _RA, _DPR, _SPR, _P, _DCB, _SCB, _Des, _DR, _CTl, _TSa), + ( + (TRAFFIC_MIRROR_FILTER_ID, 1), + (TRAFFIC_DIRECTION, 1), + (INTEGER, 1), + (TRAFFIC_MIRROR_RULE_ACTION, 1), + (TRAFFIC_MIRROR_PORT_RANGE_REQUEST, 0), + (TRAFFIC_MIRROR_PORT_RANGE_REQUEST, 0), + (INTEGER, 0), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 2), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +CREATE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTMFRO, + {_sSI: _cCTMFRRo, _smit: None}, + (_TMFR, _CTl), + ( + (TRAFFIC_MIRROR_FILTER_RULE, {_aQN: _TMFR, _sN: _tMFR}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_TRAFFIC_MIRROR_FILTER_RULE: StaticOperationSchema = ( + 23, + n0, + _CTMFR, + 0, + CREATE_TRAFFIC_MIRROR_FILTER_RULE_INPUT, + CREATE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT, + (), +) + +TRAFFIC_MIRROR_TARGET_ID: StaticSchema = (3, n0, _TMTI, 0) + +CREATE_TRAFFIC_MIRROR_SESSION_INPUT: StaticSchema = ( + 18, + n0, + _CTMSI, + {_sSI: _cCTMSR, _sm: None}, + (_NII, _TMTI, _TMFI, _PLa, _SNes, _VNI, _Des, _TSa, _DR, _CTl), + ( + (NETWORK_INTERFACE_ID, 1), + (TRAFFIC_MIRROR_TARGET_ID, 1), + (TRAFFIC_MIRROR_FILTER_ID, 1), + (INTEGER, 0), + (INTEGER, 1), + (INTEGER, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (STRING, 2), + ), +) + +TRAFFIC_MIRROR_SESSION: StaticSchema = ( + 18, + n0, + _TMS, + 0, + (_TMSI, _TMTI, _TMFI, _NII, _OIw, _PLa, _SNes, _VNI, _Des, _Tag), + ( + (STRING, {_aQN: _TMSI, _sN: _tMSI}), + (STRING, {_aQN: _TMTI, _sN: _tMTI}), + (STRING, {_aQN: _TMFI, _sN: _tMFI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (INTEGER, {_aQN: _PLa, _sN: _pLa}), + (INTEGER, {_aQN: _SNes, _sN: _sNes}), + (INTEGER, {_aQN: _VNI, _sN: _vNI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRAFFIC_MIRROR_SESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CTMSO, + {_sSI: _cCTMSRo, _smit: None}, + (_TMS, _CTl), + ( + (TRAFFIC_MIRROR_SESSION, {_aQN: _TMS, _sN: _tMS}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_TRAFFIC_MIRROR_SESSION: StaticOperationSchema = ( + 23, + n0, + _CTMS, + 0, + CREATE_TRAFFIC_MIRROR_SESSION_INPUT, + CREATE_TRAFFIC_MIRROR_SESSION_OUTPUT, + (), +) + +CREATE_TRAFFIC_MIRROR_TARGET_INPUT: StaticSchema = ( + 18, + n0, + _CTMTI, + {_sSI: _cCTMTR, _sm: None}, + (_NII, _NLBA, _Des, _TSa, _DR, _CTl, _GLBEI), + ( + (NETWORK_INTERFACE_ID, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (STRING, 2), + (VPC_ENDPOINT_ID, 0), + ), +) + +TRAFFIC_MIRROR_TARGET_TYPE: StaticSchema = ( + 14, + n0, + _TMTT, + 0, + (_ni, _nlb, _glbe), + ((-1, {_sV: _ni_}), (-1, {_sV: _nlb_}), (-1, {_sV: _glbe_})), +) + +TRAFFIC_MIRROR_TARGET: StaticSchema = ( + 18, + n0, + _TMT, + 0, + (_TMTI, _NII, _NLBA, _Ty, _Des, _OIw, _Tag, _GLBEI), + ( + (STRING, {_aQN: _TMTI, _sN: _tMTI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _NLBA, _sN: _nLBA}), + (TRAFFIC_MIRROR_TARGET_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _GLBEI, _sN: _gLBEI}), + ), +) + +CREATE_TRAFFIC_MIRROR_TARGET_OUTPUT: StaticSchema = ( + 18, + n0, + _CTMTO, + {_sSI: _cCTMTRo, _smit: None}, + (_TMT, _CTl), + ( + (TRAFFIC_MIRROR_TARGET, {_aQN: _TMT, _sN: _tMT}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_TRAFFIC_MIRROR_TARGET: StaticOperationSchema = ( + 23, + n0, + _CTMT, + 0, + CREATE_TRAFFIC_MIRROR_TARGET_INPUT, + CREATE_TRAFFIC_MIRROR_TARGET_OUTPUT, + (), +) + +AUTO_ACCEPT_SHARED_ATTACHMENTS_VALUE: StaticSchema = ( + 14, + n0, + _AASAV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +DEFAULT_ROUTE_TABLE_ASSOCIATION_VALUE: StaticSchema = ( + 14, + n0, + _DRTAV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +DEFAULT_ROUTE_TABLE_PROPAGATION_VALUE: StaticSchema = ( + 14, + n0, + _DRTPV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +MULTICAST_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _MSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +TRANSIT_GATEWAY_CIDR_BLOCK_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGCBSL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +VPN_ECMP_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _VESV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +TRANSIT_GATEWAY_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _TGRO, + 0, + (_ASA, _AASA, _DRTA, _DRTP, _VESp, _DS, _SGRS, _MSu, _TGCB), + ( + (LONG, 0), + (AUTO_ACCEPT_SHARED_ATTACHMENTS_VALUE, 0), + (DEFAULT_ROUTE_TABLE_ASSOCIATION_VALUE, 0), + (DEFAULT_ROUTE_TABLE_PROPAGATION_VALUE, 0), + (VPN_ECMP_SUPPORT_VALUE, 0), + (DNS_SUPPORT_VALUE, 0), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, 0), + (MULTICAST_SUPPORT_VALUE, 0), + (TRANSIT_GATEWAY_CIDR_BLOCK_STRING_LIST, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CTGI, + {_sSI: _cCTGR, _sm: None}, + (_Des, _O, _TSa, _DR), + ( + (STRING, 0), + (TRANSIT_GATEWAY_REQUEST_OPTIONS, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +ENCRYPTION_STATE_VALUE: StaticSchema = ( + 14, + n0, + _ESV, + 0, + (_en, _ena, _disab, _d), + ((-1, {_sV: _en}), (-1, {_sV: _ena}), (-1, {_sV: _disab}), (-1, {_sV: _d})), +) + +ENCRYPTION_SUPPORT: StaticSchema = ( + 18, + n0, + _ESnc, + 0, + (_ESncr, _SMta), + ( + (ENCRYPTION_STATE_VALUE, {_aQN: _ESncr, _sN: _eSnc}), + (STRING, {_aQN: _SMta, _sN: _sMta}), + ), +) + +TRANSIT_GATEWAY_OPTIONS: StaticSchema = ( + 18, + n0, + _TGO, + 0, + (_ASA, _TGCB, _AASA, _DRTA, _ADRTI, _DRTP, _PDRTI, _VESp, _DS, _SGRS, _MSu, _ESnc), + ( + (LONG, {_aQN: _ASA, _sN: _aSA}), + (VALUE_STRING_LIST, {_aQN: _TGCB, _sN: _tGCB}), + (AUTO_ACCEPT_SHARED_ATTACHMENTS_VALUE, {_aQN: _AASA, _sN: _aASA}), + (DEFAULT_ROUTE_TABLE_ASSOCIATION_VALUE, {_aQN: _DRTA, _sN: _dRTA}), + (STRING, {_aQN: _ADRTI, _sN: _aDRTI}), + (DEFAULT_ROUTE_TABLE_PROPAGATION_VALUE, {_aQN: _DRTP, _sN: _dRTP}), + (STRING, {_aQN: _PDRTI, _sN: _pDRTI}), + (VPN_ECMP_SUPPORT_VALUE, {_aQN: _VESp, _sN: _vESp}), + (DNS_SUPPORT_VALUE, {_aQN: _DS, _sN: _dS}), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, {_aQN: _SGRS, _sN: _sGRS}), + (MULTICAST_SUPPORT_VALUE, {_aQN: _MSu, _sN: _mSu}), + (ENCRYPTION_SUPPORT, {_aQN: _ESnc, _sN: _eSncr}), + ), +) + +TRANSIT_GATEWAY_STATE: StaticSchema = ( + 14, + n0, + _TGS, + 0, + (_p, _av, _mo, _de, _del), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _mo}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +TRANSIT_GATEWAY: StaticSchema = ( + 18, + n0, + _TGr, + 0, + (_TGI, _TGAra, _St, _OIw, _Des, _CT, _O, _Tag), + ( + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _TGAra, _sN: _tGAr}), + (TRANSIT_GATEWAY_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TRANSIT_GATEWAY_OPTIONS, {_aQN: _O, _sN: _o}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGO, + {_sSI: _cCTGRo, _smit: None}, + (_TGr,), + ((TRANSIT_GATEWAY, {_aQN: _TGr, _sN: _tG}),), +) + +CREATE_TRANSIT_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CTG, + 0, + CREATE_TRANSIT_GATEWAY_INPUT, + CREATE_TRANSIT_GATEWAY_OUTPUT, + (), +) + +PROTOCOL_VALUE: StaticSchema = (14, n0, _PVrot, 0, (_gre,), ((-1, {_sV: _gre}),)) + +CREATE_TRANSIT_GATEWAY_CONNECT_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _CTGCRO, + 0, + (_P,), + ((PROTOCOL_VALUE, 1),), +) + +CREATE_TRANSIT_GATEWAY_CONNECT_INPUT: StaticSchema = ( + 18, + n0, + _CTGCI, + {_sSI: _cCTGCR, _sm: None}, + (_TTGAI, _O, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (CREATE_TRANSIT_GATEWAY_CONNECT_REQUEST_OPTIONS, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_CONNECT_OPTIONS: StaticSchema = ( + 18, + n0, + _TGCO, + 0, + (_P,), + ((PROTOCOL_VALUE, {_aQN: _P, _sN: _pro}),), +) + +TRANSIT_GATEWAY_CONNECT: StaticSchema = ( + 18, + n0, + _TGCr, + 0, + (_TGAI, _TTGAI, _TGI, _St, _CT, _O, _Tag), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TTGAI, _sN: _tTGAI}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (TRANSIT_GATEWAY_ATTACHMENT_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TRANSIT_GATEWAY_CONNECT_OPTIONS, {_aQN: _O, _sN: _o}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_CONNECT_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGCO, + {_sSI: _cCTGCRo, _smit: None}, + (_TGCr,), + ((TRANSIT_GATEWAY_CONNECT, {_aQN: _TGCr, _sN: _tGC}),), +) + +CREATE_TRANSIT_GATEWAY_CONNECT: StaticOperationSchema = ( + 23, + n0, + _CTGC, + 0, + CREATE_TRANSIT_GATEWAY_CONNECT_INPUT, + CREATE_TRANSIT_GATEWAY_CONNECT_OUTPUT, + (), +) + +TRANSIT_GATEWAY_CONNECT_REQUEST_BGP_OPTIONS: StaticSchema = ( + 18, + n0, + _TGCRBO, + 0, + (_PAee,), + ((LONG, 0),), +) + +INSIDE_CIDR_BLOCKS_STRING_LIST: StaticSchema = ( + 16, + n0, + _ICBSL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +CREATE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT: StaticSchema = ( + 18, + n0, + _CTGCPI, + {_sSI: _cCTGCPR, _sm: None}, + (_TGAI, _TGAran, _PAe, _BO, _ICBn, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (STRING, 0), + (STRING, 1), + (TRANSIT_GATEWAY_CONNECT_REQUEST_BGP_OPTIONS, 0), + (INSIDE_CIDR_BLOCKS_STRING_LIST, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +BGP_STATUS: StaticSchema = ( + 14, + n0, + _BSg, + 0, + (_up_, _dow), + ((-1, {_sV: _up_}), (-1, {_sV: _dow})), +) + +TRANSIT_GATEWAY_ATTACHMENT_BGP_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TGABC, + 0, + (_TGArans, _PAee, _TGAran, _PAe, _BSg), + ( + (LONG, {_aQN: _TGArans, _sN: _tGAra}), + (LONG, {_aQN: _PAee, _sN: _pAee}), + (STRING, {_aQN: _TGAran, _sN: _tGAran}), + (STRING, {_aQN: _PAe, _sN: _pAe}), + (BGP_STATUS, {_aQN: _BSg, _sN: _bSg}), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_BGP_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _TGABCL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ATTACHMENT_BGP_CONFIGURATION, {_sN: _i}),), +) + +TRANSIT_GATEWAY_CONNECT_PEER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TGCPC, + 0, + (_TGAran, _PAe, _ICBn, _P, _BCg), + ( + (STRING, {_aQN: _TGAran, _sN: _tGAran}), + (STRING, {_aQN: _PAe, _sN: _pAe}), + (INSIDE_CIDR_BLOCKS_STRING_LIST, {_aQN: _ICBn, _sN: _iCBn}), + (PROTOCOL_VALUE, {_aQN: _P, _sN: _pro}), + (TRANSIT_GATEWAY_ATTACHMENT_BGP_CONFIGURATION_LIST, {_aQN: _BCg, _sN: _bCg}), + ), +) + +TRANSIT_GATEWAY_CONNECT_PEER_STATE: StaticSchema = ( + 14, + n0, + _TGCPS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_CONNECT_PEER_ID: StaticSchema = (3, n0, _TGCPI, 0) + +TRANSIT_GATEWAY_CONNECT_PEER: StaticSchema = ( + 18, + n0, + _TGCP, + 0, + (_TGAI, _TGCPI, _St, _CT, _CPC, _Tag), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (TRANSIT_GATEWAY_CONNECT_PEER_ID, {_aQN: _TGCPI, _sN: _tGCPI}), + (TRANSIT_GATEWAY_CONNECT_PEER_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TRANSIT_GATEWAY_CONNECT_PEER_CONFIGURATION, {_aQN: _CPC, _sN: _cPC}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGCPO, + {_sSI: _cCTGCPRo, _smit: None}, + (_TGCP,), + ((TRANSIT_GATEWAY_CONNECT_PEER, {_aQN: _TGCP, _sN: _tGCP}),), +) + +CREATE_TRANSIT_GATEWAY_CONNECT_PEER: StaticOperationSchema = ( + 23, + n0, + _CTGCP, + 0, + CREATE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT, + CREATE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGAISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 0),), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CTGMPI, + {_sSI: _cCTGMPR, _sm: None}, + (_TGI, _MAIi, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, {_sN: _MAIid}), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_STATE: StaticSchema = ( + 14, + n0, + _TGMPS, + 0, + (_av, _del, _p, _mo, _de), + ( + (-1, {_sV: _av}), + (-1, {_sV: _del}), + (-1, {_sV: _p}), + (-1, {_sV: _mo}), + (-1, {_sV: _de}), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_ID: StaticSchema = (3, n0, _TGMPI, 0) + +TRANSIT_GATEWAY_METERING_POLICY: StaticSchema = ( + 18, + n0, + _TGMP, + 0, + (_TGMPI, _TGI, _MAIi, _St, _UEA, _Tag), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ID, {_aQN: _TGMPI, _sN: _tGMPI}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (VALUE_STRING_LIST, {_aQN: _MAIS, _sN: _mAIS}), + (TRANSIT_GATEWAY_METERING_POLICY_STATE, {_aQN: _St, _sN: _st}), + (MILLISECOND_DATE_TIME, {_aQN: _UEA, _sN: _uEA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGMPO, + {_sSI: _cCTGMPRo, _smit: None}, + (_TGMP,), + ((TRANSIT_GATEWAY_METERING_POLICY, {_aQN: _TGMP, _sN: _tGMP}),), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY: StaticOperationSchema = ( + 23, + n0, + _CTGMP, + 0, + CREATE_TRANSIT_GATEWAY_METERING_POLICY_INPUT, + CREATE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT, + (), +) + +TRANSIT_GATEWAY_METERING_PAYER_TYPE: StaticSchema = ( + 14, + n0, + _TGMPT, + 0, + (_sao, _dao, _tgo), + ((-1, {_sV: _sao_}), (-1, {_sV: _dao_}), (-1, {_sV: _tgo_})), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _CTGMPEI, + {_sSI: _cCTGMPER, _sm: None}, + ( + _TGMPI, + _PRNo, + _STGAI, + _STGAT, + _SCB, + _SPR, + _DTGAI, + _DTGAT, + _DCB, + _DPR, + _P, + _MAe, + _DR, + ), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ID, 1), + (INTEGER, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, 0), + (STRING, 0), + (STRING, 0), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TRANSIT_GATEWAY_METERING_PAYER_TYPE, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_RULE: StaticSchema = ( + 18, + n0, + _TGMPR, + 0, + (_STGAI, _STGAT, _SCB, _SPR, _DTGAI, _DTGAT, _DCB, _DPR, _P), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _STGAI, _sN: _sTGAI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _STGAT, _sN: _sTGAT}), + (STRING, {_aQN: _SCB, _sN: _sCB}), + (STRING, {_aQN: _SPR, _sN: _sPR}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _DTGAI, _sN: _dTGAI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _DTGAT, _sN: _dTGAT}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (STRING, {_aQN: _DPR, _sN: _dPR}), + (STRING, {_aQN: _P, _sN: _pro}), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_ENTRY_STATE: StaticSchema = ( + 14, + n0, + _TGMPES, + 0, + (_av, _del), + ((-1, {_sV: _av}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_METERING_POLICY_ENTRY: StaticSchema = ( + 18, + n0, + _TGMPE, + 0, + (_PRNo, _MAe, _St, _UA, _UEA, _MPR), + ( + (STRING, {_aQN: _PRNo, _sN: _pRNo}), + (TRANSIT_GATEWAY_METERING_PAYER_TYPE, {_aQN: _MAe, _sN: _mA}), + (TRANSIT_GATEWAY_METERING_POLICY_ENTRY_STATE, {_aQN: _St, _sN: _st}), + (MILLISECOND_DATE_TIME, {_aQN: _UA, _sN: _uA}), + (MILLISECOND_DATE_TIME, {_aQN: _UEA, _sN: _uEA}), + (TRANSIT_GATEWAY_METERING_POLICY_RULE, {_aQN: _MPR, _sN: _mPR}), + ), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGMPEO, + {_sSI: _cCTGMPERo, _smit: None}, + (_TGMPE,), + ((TRANSIT_GATEWAY_METERING_POLICY_ENTRY, {_aQN: _TGMPE, _sN: _tGMPE}),), +) + +CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY: StaticOperationSchema = ( + 23, + n0, + _CTGMPE, + 0, + CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT, + CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT, + (), +) + +AUTO_ACCEPT_SHARED_ASSOCIATIONS_VALUE: StaticSchema = ( + 14, + n0, + _AASAVu, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +IGMPV2_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _ISVg, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +STATIC_SOURCES_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _SSSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _CTGMDRO, + 0, + (_ISg, _SSSt, _AASAu), + ( + (IGMPV2_SUPPORT_VALUE, 0), + (STATIC_SOURCES_SUPPORT_VALUE, 0), + (AUTO_ACCEPT_SHARED_ASSOCIATIONS_VALUE, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT: StaticSchema = ( + 18, + n0, + _CTGMDI, + {_sSI: _cCTGMDR, _sm: None}, + (_TGI, _O, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ID, 1), + (CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_REQUEST_OPTIONS, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_OPTIONS: StaticSchema = ( + 18, + n0, + _TGMDO, + 0, + (_ISg, _SSSt, _AASAu), + ( + (IGMPV2_SUPPORT_VALUE, {_aQN: _ISg, _sN: _iSg}), + (STATIC_SOURCES_SUPPORT_VALUE, {_aQN: _SSSt, _sN: _sSS}), + (AUTO_ACCEPT_SHARED_ASSOCIATIONS_VALUE, {_aQN: _AASAu, _sN: _aASAu}), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_STATE: StaticSchema = ( + 14, + n0, + _TGMDS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN: StaticSchema = ( + 18, + n0, + _TGMD, + 0, + (_TGMDI, _TGI, _TGMDAr, _OIw, _O, _St, _CT, _Tag), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _TGMDAr, _sN: _tGMDA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_OPTIONS, {_aQN: _O, _sN: _o}), + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGMDO, + {_sSI: _cCTGMDRo, _smit: None}, + (_TGMD,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN, {_aQN: _TGMD, _sN: _tGMD}),), +) + +CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: StaticOperationSchema = ( + 23, + n0, + _CTGMD, + 0, + CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT, + CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _CTGPARO, + 0, + (_DRy,), + ((DYNAMIC_ROUTING_VALUE, 0),), +) + +TRANSIT_ASSOCIATION_GATEWAY_ID: StaticSchema = (3, n0, _TAGI, 0) + +CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _CTGPAI, + {_sSI: _cCTGPAR, _sm: None}, + (_TGI, _PTGI, _PAI, _PRee, _O, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ID, 1), + (TRANSIT_ASSOCIATION_GATEWAY_ID, 1), + (STRING, 1), + (STRING, 1), + (CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_REQUEST_OPTIONS, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGPAO, + {_sSI: _cCTGPARo, _smit: None}, + (_TGPA,), + ((TRANSIT_GATEWAY_PEERING_ATTACHMENT, {_aQN: _TGPA, _sN: _tGPA}),), +) + +CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _CTGPA, + 0, + CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT, + CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _CTGPTI, + {_sSI: _cCTGPTR, _sm: None}, + (_TGI, _TSa, _DR), + ((TRANSIT_GATEWAY_ID, 1), (TAG_SPECIFICATION_LIST, 0), (BOOLEAN, 0)), +) + +TRANSIT_GATEWAY_POLICY_TABLE_STATE: StaticSchema = ( + 14, + n0, + _TGPTS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_POLICY_TABLE: StaticSchema = ( + 18, + n0, + _TGPT, + 0, + (_TGPTI, _TGI, _St, _CT, _Tag), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, {_aQN: _TGPTI, _sN: _tGPTI}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (TRANSIT_GATEWAY_POLICY_TABLE_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGPTO, + {_sSI: _cCTGPTRo, _smit: None}, + (_TGPT,), + ((TRANSIT_GATEWAY_POLICY_TABLE, {_aQN: _TGPT, _sN: _tGPT}),), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE: StaticOperationSchema = ( + 23, + n0, + _CTGPT, + 0, + CREATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT, + CREATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT, + (), +) + +TRANSIT_GATEWAY_REQUEST_POLICY_RULE_META_DATA: StaticSchema = ( + 18, + n0, + _TGRPRMD, + 0, + (_MDK, _MDV), + ((STRING, 0), (STRING, 0)), +) + +TRANSIT_GATEWAY_REQUEST_POLICY_RULE: StaticSchema = ( + 18, + n0, + _TGRPR, + 0, + (_SCB, _SPR, _DCB, _DPR, _P, _MD), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TRANSIT_GATEWAY_REQUEST_POLICY_RULE_META_DATA, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _CTGPTEI, + {_sSI: _cCTGPTER, _sm: None}, + (_TGPTI, _PRNo, _PRol, _TRTI, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (STRING, 1), + (TRANSIT_GATEWAY_REQUEST_POLICY_RULE, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_POLICY_RULE_META_DATA: StaticSchema = ( + 18, + n0, + _TGPRMD, + 0, + (_MDK, _MDV), + ((STRING, {_aQN: _MDK, _sN: _mDK}), (STRING, {_aQN: _MDV, _sN: _mDV})), +) + +TRANSIT_GATEWAY_POLICY_RULE: StaticSchema = ( + 18, + n0, + _TGPR, + 0, + (_SCB, _SPR, _DCB, _DPR, _P, _MD), + ( + (STRING, {_aQN: _SCB, _sN: _sCB}), + (STRING, {_aQN: _SPR, _sN: _sPR}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (STRING, {_aQN: _DPR, _sN: _dPR}), + (STRING, {_aQN: _P, _sN: _pro}), + (TRANSIT_GATEWAY_POLICY_RULE_META_DATA, {_aQN: _MD, _sN: _mD}), + ), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_STATE: StaticSchema = ( + 14, + n0, + _TGPTES, + 0, + (_act, _del), + ((-1, {_sV: _act}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: StaticSchema = ( + 18, + n0, + _TGPTE, + 0, + (_PRNo, _PRol, _TRTI, _St), + ( + (STRING, {_aQN: _PRNo, _sN: _pRNo}), + (TRANSIT_GATEWAY_POLICY_RULE, {_aQN: _PRol, _sN: _pRo}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, {_aQN: _TRTI, _sN: _tRTI}), + (TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_STATE, {_aQN: _St, _sN: _st}), + ), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGPTEO, + {_sSI: _cCTGPTERo, _smit: None}, + (_TGPTE,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_aQN: _TGPTE, _sN: _tGPTE}),), +) + +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: StaticOperationSchema = ( + 23, + n0, + _CTGPTE, + 0, + CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT, + CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT: StaticSchema = ( + 18, + n0, + _CTGPLRI, + {_sSI: _cCTGPLRR, _sm: None}, + (_TGRTI, _PLI, _TGAI, _Bl, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (PREFIX_LIST_RESOURCE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_STATE: StaticSchema = ( + 14, + n0, + _TGPLRS, + 0, + (_p, _av, _mo, _de), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _mo}), (-1, {_sV: _de})), +) + +TRANSIT_GATEWAY_PREFIX_LIST_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGPLA, + 0, + (_TGAI, _RT, _RIe), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _RIe, _sN: _rI}), + ), +) + +TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: StaticSchema = ( + 18, + n0, + _TGPLR, + 0, + (_TGRTI, _PLI, _PLOI, _St, _Bl, _TGA), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, {_aQN: _TGRTI, _sN: _tGRTI}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _PLOI, _sN: _pLOI}), + (TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_STATE, {_aQN: _St, _sN: _st}), + (BOOLEAN, {_aQN: _Bl, _sN: _bl}), + (TRANSIT_GATEWAY_PREFIX_LIST_ATTACHMENT, {_aQN: _TGA, _sN: _tGA}), + ), +) + +CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGPLRO, + {_sSI: _cCTGPLRRo, _smit: None}, + (_TGPLR,), + ((TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, {_aQN: _TGPLR, _sN: _tGPLR}),), +) + +CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: StaticOperationSchema = ( + 23, + n0, + _CTGPLR, + 0, + CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT, + CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _CTGRI, + {_sSI: _cCTGRR, _sm: None}, + (_DCB, _TGRTI, _TGAI, _Bl, _DR), + ( + (STRING, 1), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_STATE: StaticSchema = ( + 14, + n0, + _TGRS, + 0, + (_p, _act, _bl, _de, _del), + ( + (-1, {_sV: _p}), + (-1, {_sV: _act}), + (-1, {_sV: _bl}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +TRANSIT_GATEWAY_ROUTE_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGRA, + 0, + (_RIe, _TGAI, _RT), + ( + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + ), +) + +TRANSIT_GATEWAY_ROUTE_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _TGRAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_ATTACHMENT, {_sN: _i}),), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID: StaticSchema = (3, n0, _TGRTAI, 0) + +TRANSIT_GATEWAY_ROUTE_TYPE: StaticSchema = ( + 14, + n0, + _TGRTr, + 0, + (_stat, _prop, _sy), + ((-1, {_sV: _stat}), (-1, {_sV: _prop}), (-1, {_sV: _sy})), +) + +TRANSIT_GATEWAY_ROUTE: StaticSchema = ( + 18, + n0, + _TGR, + 0, + (_DCB, _PLI, _TGRTAI, _TGAransi, _Ty, _St), + ( + (STRING, {_aQN: _DCB, _sN: _dCB}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, {_aQN: _TGRTAI, _sN: _tGRTAI}), + (TRANSIT_GATEWAY_ROUTE_ATTACHMENT_LIST, {_aQN: _TGAransi, _sN: _tGArans}), + (TRANSIT_GATEWAY_ROUTE_TYPE, {_aQN: _Ty, _sN: _ty}), + (TRANSIT_GATEWAY_ROUTE_STATE, {_aQN: _St, _sN: _st}), + ), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGRO, + {_sSI: _cCTGRRo, _smit: None}, + (_Rou,), + ((TRANSIT_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +CREATE_TRANSIT_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _CTGR, + 0, + CREATE_TRANSIT_GATEWAY_ROUTE_INPUT, + CREATE_TRANSIT_GATEWAY_ROUTE_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _CTGRTI, + {_sSI: _cCTGRTR, _sm: None}, + (_TGI, _TSa, _DR), + ((TRANSIT_GATEWAY_ID, 1), (TAG_SPECIFICATION_LIST, 0), (BOOLEAN, 0)), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_STATE: StaticSchema = ( + 14, + n0, + _TGRTS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +TRANSIT_GATEWAY_ROUTE_TABLE: StaticSchema = ( + 18, + n0, + _TGRT, + 0, + (_TGRTI, _TGI, _St, _DART, _DPRT, _CT, _Tag), + ( + (STRING, {_aQN: _TGRTI, _sN: _tGRTI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (TRANSIT_GATEWAY_ROUTE_TABLE_STATE, {_aQN: _St, _sN: _st}), + (BOOLEAN, {_aQN: _DART, _sN: _dART}), + (BOOLEAN, {_aQN: _DPRT, _sN: _dPRT}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGRTO, + {_sSI: _cCTGRTRo, _smit: None}, + (_TGRT,), + ((TRANSIT_GATEWAY_ROUTE_TABLE, {_aQN: _TGRT, _sN: _tGRT}),), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _CTGRT, + 0, + CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT, + CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT: StaticSchema = ( + 18, + n0, + _CTGRTAI, + {_sSI: _cCTGRTAR, _sm: None}, + (_TGRTI, _PAIe, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_DIRECTION: StaticSchema = ( + 14, + n0, + _TGRTAD, + 0, + (_ou, _incom), + ((-1, {_sV: _ou}), (-1, {_sV: _incom})), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_STATE: StaticSchema = ( + 14, + n0, + _TGRTAS, + 0, + (_av, _p, _fai, _fa, _de, _del), + ( + (-1, {_sV: _av}), + (-1, {_sV: _p}), + (-1, {_sV: _fai}), + (-1, {_sV: _fa}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT: StaticSchema = ( + 18, + n0, + _TGRTA, + 0, + (_TGRTAI, _TGI, _CNI, _PTGI, _PCNI, _PAIe, _ADn, _TGRTI, _St, _CT, _Tag), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, {_aQN: _TGRTAI, _sN: _tGRTAI}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _CNI, _sN: _cNI}), + (TRANSIT_GATEWAY_ID, {_aQN: _PTGI, _sN: _pTGI}), + (STRING, {_aQN: _PCNI, _sN: _pCNI}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _PAIe, _sN: _pAI}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_DIRECTION, {_aQN: _ADn, _sN: _aDn}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, {_aQN: _TGRTI, _sN: _tGRTI}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGRTAO, + {_sSI: _cCTGRTARo, _smit: None}, + (_TGRTA,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, {_aQN: _TGRTA, _sN: _tGRTA}),), +) + +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT: StaticOperationSchema = ( + 23, + n0, + _CTGRTA, + 0, + CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT, + CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT, + (), +) + +CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _CTGVARO, + 0, + (_DS, _SGRS, _IS, _AMSp), + ( + (DNS_SUPPORT_VALUE, 0), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, 0), + (IPV6_SUPPORT_VALUE, 0), + (APPLIANCE_MODE_SUPPORT_VALUE, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _CTGVAI, + {_sSI: _cCTGVAR, _sm: None}, + (_TGI, _VI, _SI, _O, _TSa, _DR), + ( + (TRANSIT_GATEWAY_ID, 1), + (VPC_ID, 1), + (TRANSIT_GATEWAY_SUBNET_ID_LIST, 1), + (CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN, 0), + ), +) + +CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _CTGVAO, + {_sSI: _cCTGVARo, _smit: None}, + (_TGVA,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_aQN: _TGVA, _sN: _tGVA}),), +) + +CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _CTGVA, + 0, + CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT, + CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT, + (), +) + +VERIFIED_ACCESS_ENDPOINT_ATTACHMENT_TYPE: StaticSchema = ( + 14, + n0, + _VAEAT, + 0, + (_vp,), + ((-1, {_sV: _vp}),), +) + +VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER: StaticSchema = (7, n0, _VAEPN, 0) + +CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE: StaticSchema = ( + 18, + n0, + _CVAEPR, + 0, + (_FP, _TP), + ( + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + ), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST: StaticSchema = ( + 16, + n0, + _CVAEPRL, + 0, + (_me,), + ((CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE, {_sN: _i}),), +) + +VERIFIED_ACCESS_ENDPOINT_PROTOCOL: StaticSchema = ( + 14, + n0, + _VAEP, + 0, + (_ht, _htt, _tc), + ((-1, {_sV: _ht}), (-1, {_sV: _htt}), (-1, {_sV: _tc})), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _CVAESIL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS: StaticSchema = ( + 18, + n0, + _CVAECO, + 0, + (_P, _SI, _Ci, _PRo), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + (STRING, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}), + ), +) + +CERTIFICATE_ARN: StaticSchema = (3, n0, _CAe, 0) + +VERIFIED_ACCESS_ENDPOINT_TYPE: StaticSchema = ( + 14, + n0, + _VAET, + 0, + (_lb, _ni, _rd, _ci), + ((-1, {_sV: _lb_}), (-1, {_sV: _ni_}), (-1, {_sV: _rd}), (-1, {_sV: _ci})), +) + +LOAD_BALANCER_ARN: StaticSchema = (3, n0, _LBA, 0) + +CREATE_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS: StaticSchema = ( + 18, + n0, + _CVAELBO, + 0, + (_P, _Po, _LBA, _SI, _PRo), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (LOAD_BALANCER_ARN, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + (CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}), + ), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS: StaticSchema = ( + 18, + n0, + _CVAEEO, + 0, + (_NII, _P, _Po, _PRo), + ( + (NETWORK_INTERFACE_ID, 0), + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}), + ), +) + +RDS_DB_CLUSTER_ARN: StaticSchema = (3, n0, _RDCA, 0) + +RDS_DB_INSTANCE_ARN: StaticSchema = (3, n0, _RDIA, 0) + +RDS_DB_PROXY_ARN: StaticSchema = (3, n0, _RDPA, 0) + +CREATE_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS: StaticSchema = ( + 18, + n0, + _CVAERO, + 0, + (_P, _Po, _RDIA, _RDCA, _RDPA, _REd, _SI), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (RDS_DB_INSTANCE_ARN, 0), + (RDS_DB_CLUSTER_ARN, 0), + (RDS_DB_PROXY_ARN, 0), + (STRING, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + ), +) + +SECURITY_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _SGIL, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _i}),), +) + +VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _VASSRe, + 0, + (_CMKE, _KKA), + ((BOOLEAN, 0), (KMS_KEY_ARN, 0)), +) + +VERIFIED_ACCESS_GROUP_ID: StaticSchema = (3, n0, _VAGI, 0) + +CREATE_VERIFIED_ACCESS_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CVAEI, + {_sSI: _cCVAER, _sm: None}, + ( + _VAGI, + _ETn, + _ATtta, + _DCA, + _ADp, + _EDP, + _SGIe, + _LBO, + _NIO, + _Des, + _PDo, + _TSa, + _CTl, + _DR, + _SSs, + _ROd, + _COi, + ), + ( + (VERIFIED_ACCESS_GROUP_ID, 1), + (VERIFIED_ACCESS_ENDPOINT_TYPE, 1), + (VERIFIED_ACCESS_ENDPOINT_ATTACHMENT_TYPE, 1), + (CERTIFICATE_ARN, 0), + (STRING, 0), + (STRING, 0), + (SECURITY_GROUP_ID_LIST, {_sN: _SGI}), + (CREATE_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS, 0), + (CREATE_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS, 0), + ), +) + +VERIFIED_ACCESS_ENDPOINT_PORT_RANGE: StaticSchema = ( + 18, + n0, + _VAEPR, + 0, + (_FP, _TP), + ( + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, {_aQN: _FP, _sN: _fP}), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, {_aQN: _TP, _sN: _tP}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST: StaticSchema = ( + 16, + n0, + _VAEPRL, + 0, + (_me,), + ((VERIFIED_ACCESS_ENDPOINT_PORT_RANGE, {_sN: _i}),), +) + +VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _VAESIL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS: StaticSchema = ( + 18, + n0, + _VAECO, + 0, + (_Ci, _PRo, _P, _SI), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_aQN: _PRS, _sN: _pRS}), + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, {_aQN: _P, _sN: _pro}), + (VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_aQN: _SISu, _sN: _sISu}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS: StaticSchema = ( + 18, + n0, + _VAELBO, + 0, + (_P, _Po, _LBA, _SI, _PRo), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, {_aQN: _P, _sN: _pro}), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, {_aQN: _Po, _sN: _po}), + (STRING, {_aQN: _LBA, _sN: _lBA}), + (VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_aQN: _SISu, _sN: _sISu}), + (VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_aQN: _PRS, _sN: _pRS}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS: StaticSchema = ( + 18, + n0, + _VAEEO, + 0, + (_NII, _P, _Po, _PRo), + ( + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, {_aQN: _P, _sN: _pro}), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, {_aQN: _Po, _sN: _po}), + (VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_aQN: _PRS, _sN: _pRS}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS: StaticSchema = ( + 18, + n0, + _VAERO, + 0, + (_P, _Po, _RDIA, _RDCA, _RDPA, _REd, _SI), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, {_aQN: _P, _sN: _pro}), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, {_aQN: _Po, _sN: _po}), + (STRING, {_aQN: _RDIA, _sN: _rDIA}), + (STRING, {_aQN: _RDCA, _sN: _rDCA}), + (STRING, {_aQN: _RDPA, _sN: _rDPA}), + (STRING, {_aQN: _REd, _sN: _rEd}), + (VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_aQN: _SISu, _sN: _sISu}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_STATUS_CODE: StaticSchema = ( + 14, + n0, + _VAESC, + 0, + (_p, _act, _up, _de, _del), + ( + (-1, {_sV: _p}), + (-1, {_sV: _act}), + (-1, {_sV: _up}), + (-1, {_sV: _de}), + (-1, {_sV: _del}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_STATUS: StaticSchema = ( + 18, + n0, + _VAES, + 0, + (_C, _Me), + ( + (VERIFIED_ACCESS_ENDPOINT_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +VERIFIED_ACCESS_ENDPOINT: StaticSchema = ( + 18, + n0, + _VAE, + 0, + ( + _VAII, + _VAGI, + _VAEI, + _ADp, + _ETn, + _ATtta, + _DCA, + _EDnd, + _DVD, + _SGIe, + _LBO, + _NIO, + _Sta, + _Des, + _CT, + _LUTa, + _DTe, + _Tag, + _SSs, + _ROd, + _COi, + ), + ( + (STRING, {_aQN: _VAII, _sN: _vAII}), + (STRING, {_aQN: _VAGI, _sN: _vAGI}), + (STRING, {_aQN: _VAEI, _sN: _vAEI}), + (STRING, {_aQN: _ADp, _sN: _aDp}), + (VERIFIED_ACCESS_ENDPOINT_TYPE, {_aQN: _ETn, _sN: _eTn}), + (VERIFIED_ACCESS_ENDPOINT_ATTACHMENT_TYPE, {_aQN: _ATtta, _sN: _aTtta}), + (STRING, {_aQN: _DCA, _sN: _dCA}), + (STRING, {_aQN: _EDnd, _sN: _eDnd}), + (STRING, {_aQN: _DVD, _sN: _dVD}), + (SECURITY_GROUP_ID_LIST, {_aQN: _SGIS, _sN: _sGIS}), + (VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS, {_aQN: _LBO, _sN: _lBO}), + (VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS, {_aQN: _NIO, _sN: _nIO}), + (VERIFIED_ACCESS_ENDPOINT_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _LUTa, _sN: _lUTa}), + (STRING, {_aQN: _DTe, _sN: _dT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE, {_aQN: _SSs, _sN: _sSs}), + (VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS, {_aQN: _ROd, _sN: _rOd}), + (VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS, {_aQN: _COi, _sN: _cOi}), + ), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CVAEO, + {_sSI: _cCVAERo, _smit: None}, + (_VAE,), + ((VERIFIED_ACCESS_ENDPOINT, {_aQN: _VAE, _sN: _vAE}),), +) + +CREATE_VERIFIED_ACCESS_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CVAE, + 0, + CREATE_VERIFIED_ACCESS_ENDPOINT_INPUT, + CREATE_VERIFIED_ACCESS_ENDPOINT_OUTPUT, + (), +) + +CREATE_VERIFIED_ACCESS_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CVAGI, + {_sSI: _cCVAGR, _sm: None}, + (_VAII, _Des, _PDo, _TSa, _CTl, _DR, _SSs), + ( + (VERIFIED_ACCESS_INSTANCE_ID, 1), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + ), +) + +VERIFIED_ACCESS_GROUP: StaticSchema = ( + 18, + n0, + _VAG, + 0, + (_VAGI, _VAII, _Des, _Ow, _VAGA, _CT, _LUTa, _DTe, _Tag, _SSs), + ( + (STRING, {_aQN: _VAGI, _sN: _vAGI}), + (STRING, {_aQN: _VAII, _sN: _vAII}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _Ow, _sN: _ow}), + (STRING, {_aQN: _VAGA, _sN: _vAGA}), + (STRING, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _LUTa, _sN: _lUTa}), + (STRING, {_aQN: _DTe, _sN: _dT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE, {_aQN: _SSs, _sN: _sSs}), + ), +) + +CREATE_VERIFIED_ACCESS_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CVAGO, + {_sSI: _cCVAGRo, _smit: None}, + (_VAG,), + ((VERIFIED_ACCESS_GROUP, {_aQN: _VAG, _sN: _vAG}),), +) + +CREATE_VERIFIED_ACCESS_GROUP: StaticOperationSchema = ( + 23, + n0, + _CVAG, + 0, + CREATE_VERIFIED_ACCESS_GROUP_INPUT, + CREATE_VERIFIED_ACCESS_GROUP_OUTPUT, + (), +) + +CREATE_VERIFIED_ACCESS_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _CVAII, + {_sSI: _cCVAIR, _sm: None}, + (_Des, _TSa, _CTl, _DR, _FIPSE, _CECSD), + ( + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +CREATE_VERIFIED_ACCESS_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _CVAIO, + {_sSI: _cCVAIRo, _smit: None}, + (_VAI,), + ((VERIFIED_ACCESS_INSTANCE, {_aQN: _VAI, _sN: _vAI}),), +) + +CREATE_VERIFIED_ACCESS_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _CVAI, + 0, + CREATE_VERIFIED_ACCESS_INSTANCE_INPUT, + CREATE_VERIFIED_ACCESS_INSTANCE_OUTPUT, + (), +) + +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS: StaticSchema = ( + 18, + n0, + _CVATPDO, + 0, + (_TI, _PSKU), + ((STRING, 0), (STRING, 0)), +) + +CREATE_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _CVANAOO, + 0, + (_PSKE, _Is, _AE, _TE, _UIEs, _CIl, _CSl, _Sc), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CLIENT_SECRET_TYPE, 0), + (STRING, 0), + ), +) + +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _CVATPOO, + 0, + (_Is, _AE, _TE, _UIEs, _CIl, _CSl, _Sc), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CLIENT_SECRET_TYPE, 0), + (STRING, 0), + ), +) + +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _CVATPI, + {_sSI: _cCVATPR, _sm: None}, + (_TPT, _UTPT, _DTPT, _OO, _DO, _PRN, _Des, _TSa, _CTl, _DR, _SSs, _NAOO), + ( + (TRUST_PROVIDER_TYPE, 1), + (USER_TRUST_PROVIDER_TYPE, 0), + (DEVICE_TRUST_PROVIDER_TYPE, 0), + (CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS, 0), + (CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS, 0), + (STRING, 1), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 2), + (BOOLEAN, 0), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + (CREATE_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS, 0), + ), +) + +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _CVATPO, + {_sSI: _cCVATPRo, _smit: None}, + (_VATPe,), + ((VERIFIED_ACCESS_TRUST_PROVIDER, {_aQN: _VATPe, _sN: _vATP}),), +) + +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _CVATP, + 0, + CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT, + CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT, + (), +) + +CREATE_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _CVIr, + {_sSI: _cCVRom, _sm: None}, + ( + _AZ, + _AZI, + _En, + _Io, + _KKI, + _OA, + _Si, + _SIn, + _VT, + _TSa, + _MAE, + _Th, + _CTl, + _VIR, + _Op, + _DR, + ), + ( + (AVAILABILITY_ZONE_NAME, 0), + (AVAILABILITY_ZONE_ID, 0), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (INTEGER, 0), + (KMS_KEY_ID, 0), + (STRING, 0), + (INTEGER, 0), + (SNAPSHOT_ID, 0), + (VOLUME_TYPE, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 2), + (INTEGER, 0), + (OPERATOR_REQUEST, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CREATE_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _CVOr, + {_sSI: _cV, _smit: None}, + ( + _AZI, + _OA, + _SVI, + _Io, + _Tag, + _VT, + _FR, + _MAE, + _Th, + _STs, + _Op, + _VIR, + _VAol, + _OIw, + _VIo, + _Si, + _SIn, + _AZ, + _St, + _CTr, + _Att, + _En, + _KKI, + ), + ( + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _SVI, _sN: _sVI}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + (BOOLEAN, {_aQN: _FR, _sN: _fR}), + (BOOLEAN, {_aQN: _MAE, _sN: _mAE}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (INTEGER, {_aQN: _VIR, _sN: _vIR}), + (STRING, {_aQN: _VAol, _sN: _vA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (INTEGER, {_aQN: _Si, _sN: _siz}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (VOLUME_STATE, {_aQN: _Sta, _sN: _sta}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (VOLUME_ATTACHMENT_LIST, {_aQN: _AStt, _sN: _aSt}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + ), +) + +CREATE_VOLUME: StaticOperationSchema = ( + 23, + n0, + _CVr, + 0, + CREATE_VOLUME_INPUT, + CREATE_VOLUME_OUTPUT, + (), +) + +VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT: StaticSchema = ( + 14, + n0, + _VECESI, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +VPC_ENCRYPTION_CONTROL_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VECC, + 0, + (_Mo, _IGE, _EOIGE, _NGE, _VPGE, _VPE, _LE, _VLE, _EFSE), + ( + (VPC_ENCRYPTION_CONTROL_MODE, 1), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + ), +) + +CREATE_VPC_INPUT: StaticSchema = ( + 18, + n0, + _CVIre, + {_sSI: _cCVRoma, _sm: None}, + ( + _CB, + _IPpvo, + _ICB, + _IIPIp, + _INLp, + _IIPI, + _INL, + _ICBNBG, + _VEC, + _TSa, + _DR, + _ITnst, + _APICB, + ), + ( + (STRING, 0), + (IPV6_POOL_EC2_ID, 0), + (STRING, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (IPAM_POOL_ID, 0), + (NETMASK_LENGTH, 0), + (STRING, 0), + (VPC_ENCRYPTION_CONTROL_CONFIGURATION, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (TENANCY, {_aQN: _ITnst, _sN: _iTns}), + (BOOLEAN, {_aQN: _APICB, _sN: _aPICB}), + ), +) + +CREATE_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _CVOre, + {_sSI: _cCVRomam, _smit: None}, + (_Vp,), + ((VPC, {_aQN: _Vp, _sN: _vp}),), +) + +CREATE_VPC: StaticOperationSchema = ( + 23, + n0, + _CVre, + 0, + CREATE_VPC_INPUT, + CREATE_VPC_OUTPUT, + (), +) + +INTERNET_GATEWAY_EXCLUSION_MODE: StaticSchema = ( + 14, + n0, + _IGEM, + 0, + (_ab, _ae__), + ((-1, {_sV: _ab_}), (-1, {_sV: _ae___})), +) + +CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT: StaticSchema = ( + 18, + n0, + _CVBPAEI, + {_sSI: _cCVBPAER, _sm: None}, + (_DR, _SIu, _VI, _IGEM, _TSa), + ( + (BOOLEAN, 0), + (SUBNET_ID, 0), + (VPC_ID, 0), + (INTERNET_GATEWAY_EXCLUSION_MODE, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID: StaticSchema = (3, n0, _VBPAEI, 0) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_STATE: StaticSchema = ( + 14, + n0, + _VBPAES, + 0, + ( + _cip, + _cc_, + _cf________________________, + _uip, + _uc, + _uf, + _dip_, + _dc_, + _dip___, + _dc___, + ), + ( + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _cf_________________________}), + (-1, {_sV: _uip_}), + (-1, {_sV: _uc_}), + (-1, {_sV: _uf_}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + (-1, {_sV: _dip____}), + (-1, {_sV: _dc____}), + ), +) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: StaticSchema = ( + 18, + n0, + _VBPAE, + 0, + (_EIx, _IGEM, _RAe, _St, _Rea, _CTrea, _LUT, _DTele, _Tag), + ( + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID, {_aQN: _EIx, _sN: _eIx}), + (INTERNET_GATEWAY_EXCLUSION_MODE, {_aQN: _IGEM, _sN: _iGEM}), + (RESOURCE_ARN, {_aQN: _RAe, _sN: _rAe}), + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _Rea, _sN: _rea}), + (MILLISECOND_DATE_TIME, {_aQN: _CTrea, _sN: _cTre}), + (MILLISECOND_DATE_TIME, {_aQN: _LUT, _sN: _lUT}), + (MILLISECOND_DATE_TIME, {_aQN: _DTele, _sN: _dTel}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CVBPAEO, + {_sSI: _cCVBPAERo, _smit: None}, + (_VBPAE,), + ((VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, {_aQN: _VBPAE, _sN: _vBPAE}),), +) + +CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: StaticOperationSchema = ( + 23, + n0, + _CVBPAE, + 0, + CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT, + CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT, + (), +) + +CREATE_VPC_ENCRYPTION_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _CVECI, + {_sSI: _cCVECR, _sm: None}, + (_DR, _VI, _TSa), + ((BOOLEAN, 0), (VPC_ID, 1), (TAG_SPECIFICATION_LIST, {_sN: _TS})), +) + +CREATE_VPC_ENCRYPTION_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _CVECO, + {_sSI: _cCVECRo, _smit: None}, + (_VEC,), + ((VPC_ENCRYPTION_CONTROL, {_aQN: _VEC, _sN: _vEC}),), +) + +CREATE_VPC_ENCRYPTION_CONTROL: StaticOperationSchema = ( + 23, + n0, + _CVEC, + 0, + CREATE_VPC_ENCRYPTION_CONTROL_INPUT, + CREATE_VPC_ENCRYPTION_CONTROL_OUTPUT, + (), +) + +DNS_RECORD_IP_TYPE: StaticSchema = ( + 14, + n0, + _DRIT, + 0, + (_ipv, _du, _ipv_, _sd), + ((-1, {_sV: _ipv}), (-1, {_sV: _du}), (-1, {_sV: _ipv_}), (-1, {_sV: _sd_})), +) + +PRIVATE_DNS_SPECIFIED_DOMAIN_SET: StaticSchema = ( + 16, + n0, + _PDSDS, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +DNS_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _DOS, + 0, + (_DRIT, _PDOFIRE, _PDP, _PDSD), + ( + (DNS_RECORD_IP_TYPE, 0), + (BOOLEAN, 0), + (STRING, 0), + (PRIVATE_DNS_SPECIFIED_DOMAIN_SET, {_sN: _PDSDr}), + ), +) + +RESOURCE_CONFIGURATION_ARN: StaticSchema = (3, n0, _RCA, 0) + +VPC_ENDPOINT_ROUTE_TABLE_ID_LIST: StaticSchema = ( + 16, + n0, + _VERTIL, + 0, + (_me,), + ((ROUTE_TABLE_ID, {_sN: _i}),), +) + +VPC_ENDPOINT_SECURITY_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _VESGIL, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _i}),), +) + +SERVICE_NETWORK_ARN: StaticSchema = (3, n0, _SNAe, 0) + +SUBNET_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCu, + 0, + (_SIu, _Ip, _Ipv), + ((SUBNET_ID, 0), (STRING, 0), (STRING, 0)), +) + +SUBNET_CONFIGURATIONS_LIST: StaticSchema = ( + 16, + n0, + _SCL, + 0, + (_me,), + ((SUBNET_CONFIGURATION, {_sN: _i}),), +) + +VPC_ENDPOINT_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _VESIL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +VPC_ENDPOINT_TYPE: StaticSchema = ( + 14, + n0, + _VET, + 0, + (_Inter, _Ga, _GLB, _Reso, _SNer, _Tu), + ( + (-1, {_sV: _Inter}), + (-1, {_sV: _Ga}), + (-1, {_sV: _GLB}), + (-1, {_sV: _Reso}), + (-1, {_sV: _SNer}), + (-1, {_sV: _Tu}), + ), +) + +CREATE_VPC_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CVEIr, + {_sSI: _cCVER, _sm: None}, + ( + _DR, + _VET, + _VI, + _SN, + _PDo, + _RTIou, + _SI, + _SGIe, + _IAT, + _DOn, + _CTl, + _PDE, + _TSa, + _SCub, + _SNAe, + _RCA, + _SRe, + ), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_TYPE, 0), + (VPC_ID, 1), + (STRING, 0), + (STRING, 0), + (VPC_ENDPOINT_ROUTE_TABLE_ID_LIST, {_sN: _RTIo}), + (VPC_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + (VPC_ENDPOINT_SECURITY_GROUP_ID_LIST, {_sN: _SGI}), + (IP_ADDRESS_TYPE, 0), + (DNS_OPTIONS_SPECIFICATION, 0), + (STRING, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (SUBNET_CONFIGURATIONS_LIST, {_sN: _SCu}), + (SERVICE_NETWORK_ARN, 0), + (RESOURCE_CONFIGURATION_ARN, 0), + (STRING, 0), + ), +) + +DNS_ENTRY: StaticSchema = ( + 18, + n0, + _DE, + 0, + (_DN, _HZI), + ((STRING, {_aQN: _DN, _sN: _dN}), (STRING, {_aQN: _HZI, _sN: _hZI})), +) + +DNS_ENTRY_SET: StaticSchema = (16, n0, _DES, 0, (_me,), ((DNS_ENTRY, {_sN: _i}),)) + +DNS_OPTIONS: StaticSchema = ( + 18, + n0, + _DOn, + 0, + (_DRIT, _PDOFIRE, _PDP, _PDSD), + ( + (DNS_RECORD_IP_TYPE, {_aQN: _DRIT, _sN: _dRIT}), + (BOOLEAN, {_aQN: _PDOFIRE, _sN: _pDOFIRE}), + (STRING, {_aQN: _PDP, _sN: _pDP}), + (PRIVATE_DNS_SPECIFIED_DOMAIN_SET, {_aQN: _PDSDS, _sN: _pDSDS}), + ), +) + +SECURITY_GROUP_IDENTIFIER: StaticSchema = ( + 18, + n0, + _SGIec, + 0, + (_GIr, _GN), + ((STRING, {_aQN: _GIr, _sN: _gIr}), (STRING, {_aQN: _GN, _sN: _gN})), +) + +GROUP_IDENTIFIER_SET: StaticSchema = ( + 16, + n0, + _GIS, + 0, + (_me,), + ((SECURITY_GROUP_IDENTIFIER, {_sN: _i}),), +) + +SUBNET_IP_PREFIXES: StaticSchema = ( + 18, + n0, + _SIP, + 0, + (_SIu, _IPpre), + ( + (STRING, {_aQN: _SIu, _sN: _sI}), + (VALUE_STRING_LIST, {_aQN: _IPSpr, _sN: _iPSpr}), + ), +) + +SUBNET_IP_PREFIXES_LIST: StaticSchema = ( + 16, + n0, + _SIPL, + 0, + (_me,), + ((SUBNET_IP_PREFIXES, {_sN: _i}),), +) + +LAST_ERROR: StaticSchema = ( + 18, + n0, + _LEa, + 0, + (_Me, _C), + ((STRING, {_aQN: _Me, _sN: _mes}), (STRING, {_aQN: _C, _sN: _co})), +) + +PAYER_RESPONSIBILITY_TYPE: StaticSchema = ( + 14, + n0, + _PRT, + 0, + (_VEA, _RGAe, _VESA), + ((-1, {_sV: _vea}), (-1, {_sV: _rga}), (-1, {_sV: _vesa})), +) + +PAYER_RESPONSIBILITY_SCOPE: StaticSchema = ( + 14, + n0, + _PRSa, + 0, + (_VECp, _RGC), + ((-1, {_sV: _vec____}), (-1, {_sV: _rgc})), +) + +PAYER_RESPONSIBILITY_ENTRY: StaticSchema = ( + 18, + n0, + _PRE, + 0, + (_Sc, _PRT), + ( + (PAYER_RESPONSIBILITY_SCOPE, {_aQN: _Sc, _sN: _sc}), + (PAYER_RESPONSIBILITY_TYPE, {_aQN: _PRT, _sN: _pRT}), + ), +) + +PAYER_RESPONSIBILITY_SET: StaticSchema = ( + 16, + n0, + _PRSay, + 0, + (_me,), + ((PAYER_RESPONSIBILITY_ENTRY, {_sN: _i}),), +) + +STATE: StaticSchema = ( + 14, + n0, + _St, + 0, + (_PAen, _Pen, _Av, _Del, _Dele, _Rej, _Fai, _Expi, _Par), + ( + (-1, {_sV: _PAen}), + (-1, {_sV: _Pen}), + (-1, {_sV: _Av}), + (-1, {_sV: _Del}), + (-1, {_sV: _Dele}), + (-1, {_sV: _Rej}), + (-1, {_sV: _Fai}), + (-1, {_sV: _Expi}), + (-1, {_sV: _Par}), + ), +) + +VPC_ENDPOINT: StaticSchema = ( + 18, + n0, + _VE, + 0, + ( + _VEI, + _VET, + _VI, + _SN, + _St, + _PDo, + _RTIou, + _SI, + _G, + _IAT, + _DOn, + _PDE, + _RMe, + _NIIe, + _DEn, + _CTrea, + _Tag, + _OIw, + _LEa, + _IPpvr, + _IPp, + _FRa, + _SNAe, + _RCA, + _SRe, + _PRa, + ), + ( + (STRING, {_aQN: _VEI, _sN: _vEI}), + (VPC_ENDPOINT_TYPE, {_aQN: _VET, _sN: _vET}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _SN, _sN: _sNe}), + (STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _PDo, _sN: _pDo}), + (VALUE_STRING_LIST, {_aQN: _RTIS, _sN: _rTIS}), + (VALUE_STRING_LIST, {_aQN: _SISu, _sN: _sISu}), + (GROUP_IDENTIFIER_SET, {_aQN: _GS, _sN: _gS}), + (IP_ADDRESS_TYPE, {_aQN: _IAT, _sN: _iAT}), + (DNS_OPTIONS, {_aQN: _DOn, _sN: _dOn}), + (BOOLEAN, {_aQN: _PDE, _sN: _pDE}), + (BOOLEAN, {_aQN: _RMe, _sN: _rMe}), + (VALUE_STRING_LIST, {_aQN: _NIIS, _sN: _nIIS}), + (DNS_ENTRY_SET, {_aQN: _DES, _sN: _dES}), + (MILLISECOND_DATE_TIME, {_aQN: _CTrea, _sN: _cTre}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (LAST_ERROR, {_aQN: _LEa, _sN: _lE}), + (SUBNET_IP_PREFIXES_LIST, {_aQN: _IPSpv, _sN: _iPS}), + (SUBNET_IP_PREFIXES_LIST, {_aQN: _IPSpvr, _sN: _iPSp}), + (STRING, {_aQN: _FRa, _sN: _fRa}), + (SERVICE_NETWORK_ARN, {_aQN: _SNAe, _sN: _sNAe}), + (RESOURCE_CONFIGURATION_ARN, {_aQN: _RCA, _sN: _rCA}), + (STRING, {_aQN: _SRe, _sN: _sRe}), + (PAYER_RESPONSIBILITY_SET, {_aQN: _PRSay, _sN: _pRSa}), + ), +) + +CREATE_VPC_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CVEO, + {_sSI: _cCVERo, _smit: None}, + (_VE, _CTl), + ((VPC_ENDPOINT, {_aQN: _VE, _sN: _vE}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +CREATE_VPC_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CVE, + 0, + CREATE_VPC_ENDPOINT_INPUT, + CREATE_VPC_ENDPOINT_OUTPUT, + (), +) + +CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _CVECNI, + {_sSI: _cCVECNR, _sm: None}, + (_DR, _SIe, _VEI, _CNAon, _CEo, _CTl), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 0), + (VPC_ENDPOINT_ID, 0), + (STRING, 1), + (VALUE_STRING_LIST, 1), + (STRING, 0), + ), +) + +CONNECTION_NOTIFICATION_STATE: StaticSchema = ( + 14, + n0, + _CNS, + 0, + (_Ena, _Dis), + ((-1, {_sV: _Ena}), (-1, {_sV: _Dis})), +) + +CONNECTION_NOTIFICATION_TYPE: StaticSchema = ( + 14, + n0, + _CNT, + 0, + (_Top,), + ((-1, {_sV: _Top}),), +) + +CONNECTION_NOTIFICATION: StaticSchema = ( + 18, + n0, + _CNo, + 0, + (_CNIo, _SIe, _VEI, _CNT, _CNAon, _CEo, _CNS, _SRe), + ( + (STRING, {_aQN: _CNIo, _sN: _cNIo}), + (STRING, {_aQN: _SIe, _sN: _sIe}), + (STRING, {_aQN: _VEI, _sN: _vEI}), + (CONNECTION_NOTIFICATION_TYPE, {_aQN: _CNT, _sN: _cNT}), + (STRING, {_aQN: _CNAon, _sN: _cNAo}), + (VALUE_STRING_LIST, {_aQN: _CEo, _sN: _cEo}), + (CONNECTION_NOTIFICATION_STATE, {_aQN: _CNS, _sN: _cNS}), + (STRING, {_aQN: _SRe, _sN: _sRe}), + ), +) + +CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CVECNO, + {_sSI: _cCVECNRo, _smit: None}, + (_CNo, _CTl), + ( + (CONNECTION_NOTIFICATION, {_aQN: _CNo, _sN: _cN}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION: StaticOperationSchema = ( + 23, + n0, + _CVECN, + 0, + CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT, + CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT, + (), +) + +CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _CVESCI, + {_sSI: _cCVESCR, _sm: None}, + (_DR, _ARc, _PDNr, _NLBAe, _GLBA, _SIAT, _SRu, _CTl, _TSa), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (VALUE_STRING_LIST, {_sN: _NLBA}), + (VALUE_STRING_LIST, {_sN: _GLBAa}), + (VALUE_STRING_LIST, {_sN: _SIATu}), + (VALUE_STRING_LIST, {_sN: _SRup}), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +PAYER_RESPONSIBILITY: StaticSchema = (14, n0, _PRay, 0, (_SOe,), ((-1, {_sV: _SOe}),)) + +DNS_NAME_STATE: StaticSchema = ( + 14, + n0, + _DNS, + 0, + (_PVe, _Ver, _Fai), + ((-1, {_sV: _pV}), (-1, {_sV: _veri}), (-1, {_sV: _fa})), +) + +PRIVATE_DNS_NAME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _PDNC, + 0, + (_St, _Ty, _Va, _N), + ( + (DNS_NAME_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _Va, _sN: _va}), + (STRING, {_aQN: _N, _sN: _nam}), + ), +) + +SERVICE_STATE: StaticSchema = ( + 14, + n0, + _SSer, + 0, + (_Pen, _Av, _Del, _Dele, _Fai), + ( + (-1, {_sV: _Pen}), + (-1, {_sV: _Av}), + (-1, {_sV: _Del}), + (-1, {_sV: _Dele}), + (-1, {_sV: _Fai}), + ), +) + +SERVICE_TYPE: StaticSchema = ( + 14, + n0, + _STe, + 0, + (_Inter, _Ga, _GLB), + ((-1, {_sV: _Inter}), (-1, {_sV: _Ga}), (-1, {_sV: _GLB})), +) + +SERVICE_TYPE_DETAIL: StaticSchema = ( + 18, + n0, + _STD, + 0, + (_STe,), + ((SERVICE_TYPE, {_aQN: _STe, _sN: _sTe}),), +) + +SERVICE_TYPE_DETAIL_SET: StaticSchema = ( + 16, + n0, + _STDS, + 0, + (_me,), + ((SERVICE_TYPE_DETAIL, {_sN: _i}),), +) + +SERVICE_CONNECTIVITY_TYPE: StaticSchema = ( + 14, + n0, + _SCT, + 0, + (_ipv, _ipv_), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_})), +) + +SUPPORTED_IP_ADDRESS_TYPES: StaticSchema = ( + 16, + n0, + _SIAT, + 0, + (_me,), + ((SERVICE_CONNECTIVITY_TYPE, {_sN: _i}),), +) + +SUPPORTED_REGION_DETAIL: StaticSchema = ( + 18, + n0, + _SRD, + 0, + (_Re, _SSer), + ((STRING, {_aQN: _Re, _sN: _reg}), (STRING, {_aQN: _SSer, _sN: _sSer})), +) + +SUPPORTED_REGION_SET: StaticSchema = ( + 16, + n0, + _SRSu, + 0, + (_me,), + ((SUPPORTED_REGION_DETAIL, {_sN: _i}),), +) + +SERVICE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCe, + 0, + ( + _STe, + _SIe, + _SN, + _SSer, + _AZIv, + _AZv, + _ARc, + _MVE, + _NLBAe, + _GLBA, + _SIAT, + _BEDN, + _PDNr, + _PDNC, + _PRay, + _Tag, + _SRu, + _RAE, + ), + ( + (SERVICE_TYPE_DETAIL_SET, {_aQN: _STe, _sN: _sTe}), + (STRING, {_aQN: _SIe, _sN: _sIe}), + (STRING, {_aQN: _SN, _sN: _sNe}), + (SERVICE_STATE, {_aQN: _SSer, _sN: _sSer}), + (VALUE_STRING_LIST, {_aQN: _AZIS, _sN: _aZIS}), + (VALUE_STRING_LIST, {_aQN: _AZS, _sN: _aZS}), + (BOOLEAN, {_aQN: _ARc, _sN: _aRc}), + (BOOLEAN, {_aQN: _MVE, _sN: _mVE}), + (VALUE_STRING_LIST, {_aQN: _NLBAS, _sN: _nLBAS}), + (VALUE_STRING_LIST, {_aQN: _GLBAS, _sN: _gLBAS}), + (SUPPORTED_IP_ADDRESS_TYPES, {_aQN: _SIATS, _sN: _sIATS}), + (VALUE_STRING_LIST, {_aQN: _BEDNS, _sN: _bEDNS}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (PRIVATE_DNS_NAME_CONFIGURATION, {_aQN: _PDNC, _sN: _pDNC}), + (PAYER_RESPONSIBILITY, {_aQN: _PRay, _sN: _pRa}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (SUPPORTED_REGION_SET, {_aQN: _SRSu, _sN: _sRSu}), + (BOOLEAN, {_aQN: _RAE, _sN: _rAE}), + ), +) + +CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CVESCO, + {_sSI: _cCVESCRo, _smit: None}, + (_SCe, _CTl), + ( + (SERVICE_CONFIGURATION, {_aQN: _SCe, _sN: _sCe}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + ), +) + +CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _CVESCr, + 0, + CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT, + CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT, + (), +) + +CREATE_VPC_PEERING_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _CVPCI, + {_sSI: _cCVPCR, _sm: None}, + (_PRee, _TSa, _DR, _VI, _PVI, _POI), + ( + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + (STRING, {_aQN: _PVI, _sN: _pVI}), + (STRING, {_aQN: _POI, _sN: _pOI}), + ), +) + +CREATE_VPC_PEERING_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CVPCO, + {_sSI: _cCVPCRo, _smit: None}, + (_VPC,), + ((VPC_PEERING_CONNECTION, {_aQN: _VPC, _sN: _vPC}),), +) + +CREATE_VPC_PEERING_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _CVPC, + 0, + CREATE_VPC_PEERING_CONNECTION_INPUT, + CREATE_VPC_PEERING_CONNECTION_OUTPUT, + (), +) + +VPN_CONCENTRATOR_TYPE: StaticSchema = ( + 14, + n0, + _VCT, + 0, + (_i_________________________________________________________________________,), + ((-1, {_sV: _ips}),), +) + +CREATE_VPN_CONCENTRATOR_INPUT: StaticSchema = ( + 18, + n0, + _CVCI, + {_sSI: _cCVCR, _sm: None}, + (_Ty, _TGI, _TSa, _DR), + ( + (VPN_CONCENTRATOR_TYPE, 1), + (TRANSIT_GATEWAY_ID, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, 0), + ), +) + +VPN_CONCENTRATOR: StaticSchema = ( + 18, + n0, + _VCp, + 0, + (_VCI, _St, _TGI, _TGAI, _Ty, _Tag), + ( + (STRING, {_aQN: _VCI, _sN: _vCI}), + (STRING, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CREATE_VPN_CONCENTRATOR_OUTPUT: StaticSchema = ( + 18, + n0, + _CVCO, + {_sSI: _cCVCRo, _smit: None}, + (_VCp,), + ((VPN_CONCENTRATOR, {_aQN: _VCp, _sN: _vCp}),), +) + +CREATE_VPN_CONCENTRATOR: StaticOperationSchema = ( + 23, + n0, + _CVC, + 0, + CREATE_VPN_CONCENTRATOR_INPUT, + CREATE_VPN_CONCENTRATOR_OUTPUT, + (), +) + +CUSTOMER_GATEWAY_ID: StaticSchema = (3, n0, _CGIu, 0) + +VPN_TUNNEL_BANDWIDTH: StaticSchema = ( + 14, + n0, + _VTB, + 0, + (_stan, _lar), + ((-1, {_sV: _stan}), (-1, {_sV: _lar})), +) + +TUNNEL_INSIDE_IP_VERSION: StaticSchema = ( + 14, + n0, + _TIIV, + 0, + (_ipv, _ipv_), + ((-1, {_sV: _ipv}), (-1, {_sV: _ipv_})), +) + +IKE_VERSIONS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _IKEVRLV, + 0, + (_Va,), + ((STRING, 0),), +) + +IKE_VERSIONS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _IKEVRL, + 0, + (_me,), + ((IKE_VERSIONS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +CLOUD_WATCH_LOG_GROUP_ARN: StaticSchema = (3, n0, _CWLGA, 0) + +CLOUD_WATCH_LOG_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _CWLOS, + 0, + (_LEo, _LGA, _LOF, _BLE, _BLGA, _BLOF), + ( + (BOOLEAN, 0), + (CLOUD_WATCH_LOG_GROUP_ARN, 0), + (STRING, 0), + (BOOLEAN, 0), + (CLOUD_WATCH_LOG_GROUP_ARN, 0), + (STRING, 0), + ), +) + +VPN_TUNNEL_LOG_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _VTLOS, + 0, + (_CWLO,), + ((CLOUD_WATCH_LOG_OPTIONS_SPECIFICATION, 0),), +) + +PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PDHGNRLV, + 0, + (_Va,), + ((INTEGER, 0),), +) + +PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PDHGNRL, + 0, + (_me,), + ((PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PEARLV, + 0, + (_Va,), + ((STRING, 0),), +) + +PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PEARL, + 0, + (_me,), + ((PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PIARLV, + 0, + (_Va,), + ((STRING, 0),), +) + +PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PIARL, + 0, + (_me,), + ((PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PDHGNRLVh, + 0, + (_Va,), + ((INTEGER, 0),), +) + +PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PDHGNRLh, + 0, + (_me,), + ((PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PEARLVh, + 0, + (_Va,), + ((STRING, 0),), +) + +PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PEARLh, + 0, + (_me,), + ((PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PIARLVh, + 0, + (_Va,), + ((STRING, 0),), +) + +PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _PIARLh, + 0, + (_me,), + ((PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE, {_sN: _i}),), +) + +PRE_SHARED_KEY: StaticSchema = (3, n0, _pSK, 4) + +VPN_TUNNEL_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _VTOS, + 0, + ( + _TICu, + _TIIC, + _PSK, + _PLSh, + _PLSha, + _RMTS, + _RFP, + _RWS, + _DPDTS, + _DPDTA, + _PEAha, + _PEAhas, + _PIAha, + _PIAhas, + _PDHGN, + _PDHGNha, + _IKEV, + _SAt, + _LO, + _ETLC, + ), + ( + (STRING, 0), + (STRING, 0), + (PRE_SHARED_KEY, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST, {_sN: _PEA}), + (PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST, {_sN: _PEAh}), + (PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST, {_sN: _PIA}), + (PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST, {_sN: _PIAh}), + (PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST, {_sN: _PDHGNh}), + (PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST, {_sN: _PDHGNhas}), + (IKE_VERSIONS_REQUEST_LIST, {_sN: _IKEVe}), + (STRING, 0), + (VPN_TUNNEL_LOG_OPTIONS_SPECIFICATION, 0), + (BOOLEAN, 0), + ), +) + +VPN_TUNNEL_OPTIONS_SPECIFICATIONS_LIST: StaticSchema = ( + 16, + n0, + _VTOSL, + 0, + (_me,), + ((VPN_TUNNEL_OPTIONS_SPECIFICATION, 0),), +) + +VPN_CONNECTION_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _VCOS, + 0, + (_EAna, _TIIV, _TO, _LINC, _RINC, _LINCo, _RINCe, _OIAT, _TTGAI, _TB, _SRO), + ( + (BOOLEAN, 0), + (TUNNEL_INSIDE_IP_VERSION, 0), + (VPN_TUNNEL_OPTIONS_SPECIFICATIONS_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (VPN_TUNNEL_BANDWIDTH, 0), + (BOOLEAN, {_aQN: _SRO, _sN: _sRO}), + ), +) + +VPN_CONCENTRATOR_ID: StaticSchema = (3, n0, _VCI, 0) + +CREATE_VPN_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _CVCIr, + {_sSI: _cCVCRom, _sm: None}, + (_CGIu, _Ty, _VGI, _TGI, _VCI, _TSa, _PSKS, _DR, _O), + ( + (CUSTOMER_GATEWAY_ID, 1), + (STRING, 1), + (VPN_GATEWAY_ID, 0), + (TRANSIT_GATEWAY_ID, 0), + (VPN_CONCENTRATOR_ID, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPN_CONNECTION_OPTIONS_SPECIFICATION, {_aQN: _O, _sN: _o}), + ), +) + +CUSTOMER_GATEWAY_CONFIGURATION: StaticSchema = (3, n0, _cGC, 4) + +GATEWAY_ASSOCIATION_STATE: StaticSchema = ( + 14, + n0, + _GAS, + 0, + (_ass, _na___, _as, _di), + ((-1, {_sV: _ass}), (-1, {_sV: _na____}), (-1, {_sV: _as}), (-1, {_sV: _di})), +) + +IKE_VERSIONS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _IKEVLV, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +IKE_VERSIONS_LIST: StaticSchema = ( + 16, + n0, + _IKEVL, + 0, + (_me,), + ((IKE_VERSIONS_LIST_VALUE, {_sN: _i}),), +) + +CLOUD_WATCH_LOG_OPTIONS: StaticSchema = ( + 18, + n0, + _CWLO, + 0, + (_LEo, _LGA, _LOF, _BLE, _BLGA, _BLOF), + ( + (BOOLEAN, {_aQN: _LEo, _sN: _lEo}), + (STRING, {_aQN: _LGA, _sN: _lGA}), + (STRING, {_aQN: _LOF, _sN: _lOF}), + (BOOLEAN, {_aQN: _BLE, _sN: _bLE}), + (STRING, {_aQN: _BLGA, _sN: _bLGA}), + (STRING, {_aQN: _BLOF, _sN: _bLOF}), + ), +) + +VPN_TUNNEL_LOG_OPTIONS: StaticSchema = ( + 18, + n0, + _VTLO, + 0, + (_CWLO,), + ((CLOUD_WATCH_LOG_OPTIONS, {_aQN: _CWLO, _sN: _cWLO}),), +) + +PHASE1_DH_GROUP_NUMBERS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PDHGNLV, + 0, + (_Va,), + ((INTEGER, {_aQN: _Va, _sN: _va}),), +) + +PHASE1_DH_GROUP_NUMBERS_LIST: StaticSchema = ( + 16, + n0, + _PDHGNL, + 0, + (_me,), + ((PHASE1_DH_GROUP_NUMBERS_LIST_VALUE, {_sN: _i}),), +) + +PHASE1_ENCRYPTION_ALGORITHMS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PEALV, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +PHASE1_ENCRYPTION_ALGORITHMS_LIST: StaticSchema = ( + 16, + n0, + _PEAL, + 0, + (_me,), + ((PHASE1_ENCRYPTION_ALGORITHMS_LIST_VALUE, {_sN: _i}),), +) + +PHASE1_INTEGRITY_ALGORITHMS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PIALV, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +PHASE1_INTEGRITY_ALGORITHMS_LIST: StaticSchema = ( + 16, + n0, + _PIAL, + 0, + (_me,), + ((PHASE1_INTEGRITY_ALGORITHMS_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_DH_GROUP_NUMBERS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PDHGNLVh, + 0, + (_Va,), + ((INTEGER, {_aQN: _Va, _sN: _va}),), +) + +PHASE2_DH_GROUP_NUMBERS_LIST: StaticSchema = ( + 16, + n0, + _PDHGNLh, + 0, + (_me,), + ((PHASE2_DH_GROUP_NUMBERS_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_ENCRYPTION_ALGORITHMS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PEALVh, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +PHASE2_ENCRYPTION_ALGORITHMS_LIST: StaticSchema = ( + 16, + n0, + _PEALh, + 0, + (_me,), + ((PHASE2_ENCRYPTION_ALGORITHMS_LIST_VALUE, {_sN: _i}),), +) + +PHASE2_INTEGRITY_ALGORITHMS_LIST_VALUE: StaticSchema = ( + 18, + n0, + _PIALVh, + 0, + (_Va,), + ((STRING, {_aQN: _Va, _sN: _va}),), +) + +PHASE2_INTEGRITY_ALGORITHMS_LIST: StaticSchema = ( + 16, + n0, + _PIALh, + 0, + (_me,), + ((PHASE2_INTEGRITY_ALGORITHMS_LIST_VALUE, {_sN: _i}),), +) + +TUNNEL_OPTION: StaticSchema = ( + 18, + n0, + _TOu, + 0, + ( + _OIA, + _TICu, + _TIIC, + _PSK, + _PLSh, + _PLSha, + _RMTS, + _RFP, + _RWS, + _DTS, + _DTA, + _PEAha, + _PEAhas, + _PIAha, + _PIAhas, + _PDHGN, + _PDHGNha, + _IVk, + _SAt, + _LO, + _ETLC, + ), + ( + (STRING, {_aQN: _OIA, _sN: _oIA}), + (STRING, {_aQN: _TICu, _sN: _tICu}), + (STRING, {_aQN: _TIIC, _sN: _tIIC}), + (PRE_SHARED_KEY, {_aQN: _PSK, _sN: _pSK}), + (INTEGER, {_aQN: _PLSh, _sN: _pLS}), + (INTEGER, {_aQN: _PLSha, _sN: _pLSh}), + (INTEGER, {_aQN: _RMTS, _sN: _rMTS}), + (INTEGER, {_aQN: _RFP, _sN: _rFP}), + (INTEGER, {_aQN: _RWS, _sN: _rWS}), + (INTEGER, {_aQN: _DTS, _sN: _dTS}), + (STRING, {_aQN: _DTA, _sN: _dTA}), + (PHASE1_ENCRYPTION_ALGORITHMS_LIST, {_aQN: _PEAS, _sN: _pEAS}), + (PHASE2_ENCRYPTION_ALGORITHMS_LIST, {_aQN: _PEASh, _sN: _pEASh}), + (PHASE1_INTEGRITY_ALGORITHMS_LIST, {_aQN: _PIASh, _sN: _pIASh}), + (PHASE2_INTEGRITY_ALGORITHMS_LIST, {_aQN: _PIASha, _sN: _pIASha}), + (PHASE1_DH_GROUP_NUMBERS_LIST, {_aQN: _PDHGNS, _sN: _pDHGNS}), + (PHASE2_DH_GROUP_NUMBERS_LIST, {_aQN: _PDHGNSh, _sN: _pDHGNSh}), + (IKE_VERSIONS_LIST, {_aQN: _IVS, _sN: _iVS}), + (STRING, {_aQN: _SAt, _sN: _sAt}), + (VPN_TUNNEL_LOG_OPTIONS, {_aQN: _LO, _sN: _lO}), + (BOOLEAN, {_aQN: _ETLC, _sN: _eTLC}), + ), +) + +TUNNEL_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _TOL, + 0, + (_me,), + ((TUNNEL_OPTION, {_sN: _i}),), +) + +VPN_CONNECTION_OPTIONS: StaticSchema = ( + 18, + n0, + _VCO, + 0, + (_EAna, _SRO, _LINC, _RINC, _LINCo, _RINCe, _OIAT, _TTGAI, _TIIV, _TO, _TB), + ( + (BOOLEAN, {_aQN: _EAna, _sN: _eAn}), + (BOOLEAN, {_aQN: _SRO, _sN: _sRO}), + (STRING, {_aQN: _LINC, _sN: _lINC}), + (STRING, {_aQN: _RINC, _sN: _rINC}), + (STRING, {_aQN: _LINCo, _sN: _lINCo}), + (STRING, {_aQN: _RINCe, _sN: _rINCe}), + (STRING, {_aQN: _OIAT, _sN: _oIAT}), + (STRING, {_aQN: _TTGAI, _sN: _tTGAI}), + (TUNNEL_INSIDE_IP_VERSION, {_aQN: _TIIV, _sN: _tIIV}), + (TUNNEL_OPTIONS_LIST, {_aQN: _TOS, _sN: _tOS}), + (VPN_TUNNEL_BANDWIDTH, {_aQN: _TB, _sN: _tB}), + ), +) + +VPN_STATIC_ROUTE_SOURCE: StaticSchema = ( + 14, + n0, + _VSRS, + 0, + (_Stat,), + ((-1, {_sV: _Stat}),), +) + +VPN_STATE: StaticSchema = ( + 14, + n0, + _VSpn, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +VPN_STATIC_ROUTE: StaticSchema = ( + 18, + n0, + _VSR, + 0, + (_DCB, _Sou, _St), + ( + (STRING, {_aQN: _DCB, _sN: _dCB}), + (VPN_STATIC_ROUTE_SOURCE, {_aQN: _Sou, _sN: _so}), + (VPN_STATE, {_aQN: _St, _sN: _st}), + ), +) + +VPN_STATIC_ROUTE_LIST: StaticSchema = ( + 16, + n0, + _VSRL, + 0, + (_me,), + ((VPN_STATIC_ROUTE, {_sN: _i}),), +) + +TELEMETRY_STATUS: StaticSchema = ( + 14, + n0, + _TSe, + 0, + (_UP__, _DOWN), + ((-1, {_sV: _UP__}), (-1, {_sV: _DOWN})), +) + +VGW_TELEMETRY: StaticSchema = ( + 18, + n0, + _VTg, + 0, + (_ARC, _LSC, _OIA, _Sta, _SMt, _CAe), + ( + (INTEGER, {_aQN: _ARC, _sN: _aRC}), + (DATE_TIME, {_aQN: _LSC, _sN: _lSC}), + (STRING, {_aQN: _OIA, _sN: _oIA}), + (TELEMETRY_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (STRING, {_aQN: _CAe, _sN: _cAe}), + ), +) + +VGW_TELEMETRY_LIST: StaticSchema = ( + 16, + n0, + _VTL, + 0, + (_me,), + ((VGW_TELEMETRY, {_sN: _i}),), +) + +VPN_CONNECTION: StaticSchema = ( + 18, + n0, + _VC, + 0, + ( + _Ca, + _TGI, + _VCI, + _CNA, + _CNAA, + _GAS, + _O, + _Rout, + _Tag, + _VTg, + _PSKA, + _VCIp, + _St, + _CGC, + _Ty, + _CGIu, + _VGI, + ), + ( + (STRING, {_aQN: _Ca, _sN: _cat}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _VCI, _sN: _vCI}), + (STRING, {_aQN: _CNA, _sN: _cNA}), + (STRING, {_aQN: _CNAA, _sN: _cNAA}), + (GATEWAY_ASSOCIATION_STATE, {_aQN: _GAS, _sN: _gAS}), + (VPN_CONNECTION_OPTIONS, {_aQN: _O, _sN: _o}), + (VPN_STATIC_ROUTE_LIST, {_aQN: _Rout, _sN: _rout}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VGW_TELEMETRY_LIST, {_aQN: _VTg, _sN: _vTg}), + (STRING, {_aQN: _PSKA, _sN: _pSKA}), + (STRING, {_aQN: _VCIp, _sN: _vCIp}), + (VPN_STATE, {_aQN: _St, _sN: _st}), + (CUSTOMER_GATEWAY_CONFIGURATION, {_aQN: _CGC, _sN: _cGC}), + (GATEWAY_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _CGIu, _sN: _cGIu}), + (STRING, {_aQN: _VGI, _sN: _vGI}), + ), +) + +CREATE_VPN_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CVCOr, + {_sSI: _cCVCRoma, _smit: None}, + (_VC,), + ((VPN_CONNECTION, {_aQN: _VC, _sN: _vC}),), +) + +CREATE_VPN_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _CVCr, + 0, + CREATE_VPN_CONNECTION_INPUT, + CREATE_VPN_CONNECTION_OUTPUT, + (), +) + +VPN_CONNECTION_ID: StaticSchema = (3, n0, _VCIp, 0) + +CREATE_VPN_CONNECTION_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _CVCRI, + {_sSI: _cCVCRR, _sm: None}, + (_DCB, _VCIp), + ((STRING, 1), (VPN_CONNECTION_ID, 1)), +) + +CREATE_VPN_CONNECTION_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _CVCRO, + {_sSI: _sU, _smit: None}, +) + +CREATE_VPN_CONNECTION_ROUTE: StaticOperationSchema = ( + 23, + n0, + _CVCR, + 0, + CREATE_VPN_CONNECTION_ROUTE_INPUT, + CREATE_VPN_CONNECTION_ROUTE_OUTPUT, + (), +) + +CREATE_VPN_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CVGI, + {_sSI: _cCVGR, _sm: None}, + (_AZ, _Ty, _TSa, _ASA, _DR), + ( + (STRING, 0), + (GATEWAY_TYPE, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (LONG, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +VPC_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _VALp, + 0, + (_me,), + ((VPC_ATTACHMENT, {_sN: _i}),), +) + +VPN_GATEWAY: StaticSchema = ( + 18, + n0, + _VG, + 0, + (_ASA, _Tag, _VGI, _St, _Ty, _AZ, _VAp), + ( + (LONG, {_aQN: _ASA, _sN: _aSA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VGI, _sN: _vGI}), + (VPN_STATE, {_aQN: _St, _sN: _st}), + (GATEWAY_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (VPC_ATTACHMENT_LIST, {_aQN: _Att, _sN: _attac}), + ), +) + +CREATE_VPN_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CVGO, + {_sSI: _cCVGRo, _smit: None}, + (_VG,), + ((VPN_GATEWAY, {_aQN: _VG, _sN: _vG}),), +) + +CREATE_VPN_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CVG, + 0, + CREATE_VPN_GATEWAY_INPUT, + CREATE_VPN_GATEWAY_OUTPUT, + (), +) + +DELETE_APPLICATION_STATUS_CHECK_INPUT: StaticSchema = ( + 18, + n0, + _DASCI, + {_sSI: _cDASCR, _sm: None}, + (_ASCI, _CTl, _DR), + ((APPLICATION_STATUS_CHECK_ID, 1), (STRING, 2), (BOOLEAN, 0)), +) + +DELETE_APPLICATION_STATUS_CHECK_OUTPUT: StaticSchema = ( + 18, + n0, + _DASCO, + {_sSI: _cDASCRo, _smit: None}, + (_ASCp,), + ((APPLICATION_STATUS_CHECK_RESPONSE_OBJECT, {_aQN: _ASCp, _sN: _aSC}),), +) + +DELETE_APPLICATION_STATUS_CHECK: StaticOperationSchema = ( + 23, + n0, + _DASC, + 0, + DELETE_APPLICATION_STATUS_CHECK_INPUT, + DELETE_APPLICATION_STATUS_CHECK_OUTPUT, + (), +) + +DELETE_CAPACITY_MANAGER_DATA_EXPORT_INPUT: StaticSchema = ( + 18, + n0, + _DCMDEI, + {_sSI: _cDCMDER, _sm: None}, + (_CMDEI, _DR), + ((CAPACITY_MANAGER_DATA_EXPORT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _DCMDEO, + {_sSI: _cDCMDERo, _smit: None}, + (_CMDEI,), + ((CAPACITY_MANAGER_DATA_EXPORT_ID, {_aQN: _CMDEI, _sN: _cMDEI}),), +) + +DELETE_CAPACITY_MANAGER_DATA_EXPORT: StaticOperationSchema = ( + 23, + n0, + _DCMDE, + 0, + DELETE_CAPACITY_MANAGER_DATA_EXPORT_INPUT, + DELETE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT, + (), +) + +DELETE_CARRIER_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DCGI, + {_sSI: _cDCGR, _sm: None}, + (_CGI, _DR), + ((CARRIER_GATEWAY_ID, 1), (BOOLEAN, 0)), +) + +DELETE_CARRIER_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCGO, + {_sSI: _cDCGRo, _smit: None}, + (_CGa,), + ((CARRIER_GATEWAY, {_aQN: _CGa, _sN: _cGa}),), +) + +DELETE_CARRIER_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DCG, + 0, + DELETE_CARRIER_GATEWAY_INPUT, + DELETE_CARRIER_GATEWAY_OUTPUT, + (), +) + +DELETE_CLIENT_VPN_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DCVEI, + {_sSI: _cDCVER, _sm: None}, + (_CVEI, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_CLIENT_VPN_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVEO, + {_sSI: _cDCVERo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_ENDPOINT_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +DELETE_CLIENT_VPN_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DCVE, + 0, + DELETE_CLIENT_VPN_ENDPOINT_INPUT, + DELETE_CLIENT_VPN_ENDPOINT_OUTPUT, + (), +) + +DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DCVEAPI, + {_sSI: _cDCVEAPR, _sm: None}, + (_CVEI, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +CLIENT_VPN_AUTHORIZATION_POLICY_STATUS: StaticSchema = ( + 14, + n0, + _CVAPS, + 0, + (_cre, _up, _act, _fa, _de), + ( + (-1, {_sV: _cre}), + (-1, {_sV: _up}), + (-1, {_sV: _act}), + (-1, {_sV: _fa}), + (-1, {_sV: _de}), + ), +) + +DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVEAPO, + {_sSI: _cDCVEAPRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_AUTHORIZATION_POLICY_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: StaticOperationSchema = ( + 23, + n0, + _DCVEAP, + 0, + DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT, + DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT, + (), +) + +DELETE_CLIENT_VPN_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DCVRI, + {_sSI: _cDCVRR, _sm: None}, + (_CVEI, _TVSI, _DCB, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (SUBNET_ID, 0), (STRING, 1), (BOOLEAN, 0)), +) + +DELETE_CLIENT_VPN_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVRO, + {_sSI: _cDCVRRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_ROUTE_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +DELETE_CLIENT_VPN_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DCVR, + 0, + DELETE_CLIENT_VPN_ROUTE_INPUT, + DELETE_CLIENT_VPN_ROUTE_OUTPUT, + (), +) + +DELETE_COIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _DCCI, + {_sSI: _cDCCR, _sm: None}, + (_Ci, _CPIo, _DR), + ((STRING, 1), (IPV4_POOL_COIP_ID, 1), (BOOLEAN, 0)), +) + +DELETE_COIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _DCCO, + {_sSI: _cDCCRo, _smit: None}, + (_CCo,), + ((COIP_CIDR, {_aQN: _CCo, _sN: _cCo}),), +) + +DELETE_COIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _DCC, + 0, + DELETE_COIP_CIDR_INPUT, + DELETE_COIP_CIDR_OUTPUT, + (), +) + +DELETE_COIP_POOL_INPUT: StaticSchema = ( + 18, + n0, + _DCPI, + {_sSI: _cDCPR, _sm: None}, + (_CPIo, _DR), + ((IPV4_POOL_COIP_ID, 1), (BOOLEAN, 0)), +) + +DELETE_COIP_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _DCPO, + {_sSI: _cDCPRo, _smit: None}, + (_CP,), + ((COIP_POOL, {_aQN: _CP, _sN: _cP}),), +) + +DELETE_COIP_POOL: StaticOperationSchema = ( + 23, + n0, + _DCP, + 0, + DELETE_COIP_POOL_INPUT, + DELETE_COIP_POOL_OUTPUT, + (), +) + +DELETE_CUSTOMER_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DCGIe, + {_sSI: _cDCGRom, _sm: None}, + (_CGIu, _DR), + ((CUSTOMER_GATEWAY_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_CUSTOMER_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCGOe, + {_sSI: _sU, _smit: None}, +) + +DELETE_CUSTOMER_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DCGe, + 0, + DELETE_CUSTOMER_GATEWAY_INPUT, + DELETE_CUSTOMER_GATEWAY_OUTPUT, + (), +) + +DHCP_OPTIONS_ID: StaticSchema = (3, n0, _DOI, 0) + +DELETE_DHCP_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDOIe, + {_sSI: _cDDOR, _sm: None}, + (_DOI, _DR), + ((DHCP_OPTIONS_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_DHCP_OPTIONS_OUTPUT: StaticSchema = (18, n0, _DDOO, {_sSI: _sU, _smit: None}) + +DELETE_DHCP_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _DDO, + 0, + DELETE_DHCP_OPTIONS_INPUT, + DELETE_DHCP_OPTIONS_OUTPUT, + (), +) + +DELETE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DEOIGI, + {_sSI: _cDEOIGR, _sm: None}, + (_DR, _EOIGI), + ((BOOLEAN, 0), (EGRESS_ONLY_INTERNET_GATEWAY_ID, 1)), +) + +DELETE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DEOIGO, + {_sSI: _cDEOIGRo, _smit: None}, + (_RCe,), + ((BOOLEAN, {_aQN: _RCe, _sN: _rC}),), +) + +DELETE_EGRESS_ONLY_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DEOIG, + 0, + DELETE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT, + DELETE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT, + (), +) + +FLEET_ID_SET: StaticSchema = (16, n0, _FISl, 0, (_me,), ((FLEET_ID, 0),)) + +DELETE_FLEETS_INPUT: StaticSchema = ( + 18, + n0, + _DFI, + {_sSI: _cDFR, _sm: None}, + (_DR, _FIle, _TIe), + ((BOOLEAN, 0), (FLEET_ID_SET, {_sN: _FIl, _smi: None}), (BOOLEAN, 1)), +) + +FLEET_STATE_CODE: StaticSchema = ( + 14, + n0, + _FSC, + 0, + (_SUBMITTED, _ACTIVE, _DELETED, _FAILED, _DR_, _DTI, _MODIFYING), + ( + (-1, {_sV: _subm}), + (-1, {_sV: _act}), + (-1, {_sV: _del}), + (-1, {_sV: _fa}), + (-1, {_sV: _dr}), + (-1, {_sV: _dt}), + (-1, {_sV: _mo}), + ), +) + +DELETE_FLEET_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _DFSI, + 0, + (_CFS, _PFS, _FIl), + ( + (FLEET_STATE_CODE, {_aQN: _CFS, _sN: _cFS}), + (FLEET_STATE_CODE, {_aQN: _PFS, _sN: _pFS}), + (FLEET_ID, {_aQN: _FIl, _sN: _fIl}), + ), +) + +DELETE_FLEET_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _DFSS, + 0, + (_me,), + ((DELETE_FLEET_SUCCESS_ITEM, {_sN: _i}),), +) + +DELETE_FLEET_ERROR_CODE: StaticSchema = ( + 14, + n0, + _DFEC, + 0, + (_FIDNE, _FIM, _FNIDS, _UE), + ((-1, {_sV: _fIDNE}), (-1, {_sV: _fIM}), (-1, {_sV: _fNIDS}), (-1, {_sV: _uE})), +) + +DELETE_FLEET_ERROR: StaticSchema = ( + 18, + n0, + _DFE, + 0, + (_C, _Me), + ((DELETE_FLEET_ERROR_CODE, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +DELETE_FLEET_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _DFEI, + 0, + (_E, _FIl), + ((DELETE_FLEET_ERROR, {_aQN: _E, _sN: _er}), (FLEET_ID, {_aQN: _FIl, _sN: _fIl})), +) + +DELETE_FLEET_ERROR_SET: StaticSchema = ( + 16, + n0, + _DFES, + 0, + (_me,), + ((DELETE_FLEET_ERROR_ITEM, {_sN: _i}),), +) + +DELETE_FLEETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DFO, + {_sSI: _cDFRo, _smit: None}, + (_SFD, _UFD), + ( + (DELETE_FLEET_SUCCESS_SET, {_aQN: _SFDS, _sN: _sFDS}), + (DELETE_FLEET_ERROR_SET, {_aQN: _UFDS, _sN: _uFDS}), + ), +) + +DELETE_FLEETS: StaticOperationSchema = ( + 23, + n0, + _DFe, + 0, + DELETE_FLEETS_INPUT, + DELETE_FLEETS_OUTPUT, + (), +) + +VPC_FLOW_LOG_ID: StaticSchema = (3, n0, _VFLI, 0) + +FLOW_LOG_ID_LIST: StaticSchema = ( + 16, + n0, + _FLIL, + 0, + (_me,), + ((VPC_FLOW_LOG_ID, {_sN: _i}),), +) + +DELETE_FLOW_LOGS_INPUT: StaticSchema = ( + 18, + n0, + _DFLI, + {_sSI: _cDFLR, _sm: None}, + (_DR, _FLI), + ((BOOLEAN, 0), (FLOW_LOG_ID_LIST, {_sN: _FLIl, _smi: None})), +) + +DELETE_FLOW_LOGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLO, + {_sSI: _cDFLRo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +DELETE_FLOW_LOGS: StaticOperationSchema = ( + 23, + n0, + _DFL, + 0, + DELETE_FLOW_LOGS_INPUT, + DELETE_FLOW_LOGS_OUTPUT, + (), +) + +FPGA_IMAGE_ID: StaticSchema = (3, n0, _FII, 0) + +DELETE_FPGA_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _DFII, + {_sSI: _cDFIR, _sm: None}, + (_DR, _FII), + ((BOOLEAN, 0), (FPGA_IMAGE_ID, 1)), +) + +DELETE_FPGA_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _DFIO, + {_sSI: _cDFIRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DELETE_FPGA_IMAGE: StaticOperationSchema = ( + 23, + n0, + _DFIe, + 0, + DELETE_FPGA_IMAGE_INPUT, + DELETE_FPGA_IMAGE_OUTPUT, + (), +) + +DELETE_IMAGE_USAGE_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _DIURI, + {_sSI: _cDIURR, _sm: None}, + (_RIep, _DR), + ((IMAGE_USAGE_REPORT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_IMAGE_USAGE_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _DIURO, + {_sSI: _cDIURRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DELETE_IMAGE_USAGE_REPORT: StaticOperationSchema = ( + 23, + n0, + _DIUR, + 0, + DELETE_IMAGE_USAGE_REPORT_INPUT, + DELETE_IMAGE_USAGE_REPORT_OUTPUT, + (), +) + +DELETE_INSTANCE_CONNECT_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DICEI, + {_sSI: _cDICER, _sm: None}, + (_DR, _ICEI), + ((BOOLEAN, 0), (INSTANCE_CONNECT_ENDPOINT_ID, 1)), +) + +DELETE_INSTANCE_CONNECT_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DICEO, + {_sSI: _cDICERo, _smit: None}, + (_ICE,), + ((EC2_INSTANCE_CONNECT_ENDPOINT, {_aQN: _ICE, _sN: _iCE}),), +) + +DELETE_INSTANCE_CONNECT_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DICE, + 0, + DELETE_INSTANCE_CONNECT_ENDPOINT_INPUT, + DELETE_INSTANCE_CONNECT_ENDPOINT_OUTPUT, + (), +) + +DELETE_INSTANCE_EVENT_WINDOW_INPUT: StaticSchema = ( + 18, + n0, + _DIEWI, + {_sSI: _cDIEWR, _sm: None}, + (_DR, _FD, _IEWI), + ((BOOLEAN, 0), (BOOLEAN, 0), (INSTANCE_EVENT_WINDOW_ID, {_sN: _IEWI, _smi: None})), +) + +INSTANCE_EVENT_WINDOW_STATE_CHANGE: StaticSchema = ( + 18, + n0, + _IEWSC, + 0, + (_IEWI, _St), + ( + (INSTANCE_EVENT_WINDOW_ID, {_aQN: _IEWI, _sN: _iEWI}), + (INSTANCE_EVENT_WINDOW_STATE, {_aQN: _St, _sN: _st}), + ), +) + +DELETE_INSTANCE_EVENT_WINDOW_OUTPUT: StaticSchema = ( + 18, + n0, + _DIEWO, + {_sSI: _cDIEWRo, _smit: None}, + (_IEWS,), + ((INSTANCE_EVENT_WINDOW_STATE_CHANGE, {_aQN: _IEWS, _sN: _iEWS}),), +) + +DELETE_INSTANCE_EVENT_WINDOW: StaticOperationSchema = ( + 23, + n0, + _DIEW, + 0, + DELETE_INSTANCE_EVENT_WINDOW_INPUT, + DELETE_INSTANCE_EVENT_WINDOW_OUTPUT, + (), +) + +DELETE_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DIGI, + {_sSI: _cDIGR, _sm: None}, + (_DR, _IGI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INTERNET_GATEWAY_ID, {_aQN: _IGI, _sN: _iGI, _smi: None}), + ), +) + +DELETE_INTERNET_GATEWAY_OUTPUT: StaticSchema = (18, n0, _DIGO, {_sSI: _sU, _smit: None}) + +DELETE_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DIG, + 0, + DELETE_INTERNET_GATEWAY_INPUT, + DELETE_INTERNET_GATEWAY_OUTPUT, + (), +) + +DELETE_IPAM_INPUT: StaticSchema = ( + 18, + n0, + _DII, + {_sSI: _cDIR, _sm: None}, + (_DR, _IIp, _Cas), + ((BOOLEAN, 0), (IPAM_ID, 1), (BOOLEAN, 0)), +) + +DELETE_IPAM_OUTPUT: StaticSchema = ( + 18, + n0, + _DIO, + {_sSI: _cDIRo, _smit: None}, + (_Ipa,), + ((IPAM, {_aQN: _Ipa, _sN: _ip}),), +) + +DELETE_IPAM: StaticOperationSchema = ( + 23, + n0, + _DIel, + 0, + DELETE_IPAM_INPUT, + DELETE_IPAM_OUTPUT, + (), +) + +DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT: StaticSchema = ( + 18, + n0, + _DIERVTI, + {_sSI: _cDIERVTR, _sm: None}, + (_DR, _IERVTI), + ((BOOLEAN, 0), (IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_ID, 1)), +) + +DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT: StaticSchema = ( + 18, + n0, + _DIERVTO, + {_sSI: _cDIERVTRo, _smit: None}, + (_IERVT,), + ((IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, {_aQN: _IERVT, _sN: _iERVT}),), +) + +DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN: StaticOperationSchema = ( + 23, + n0, + _DIERVT, + 0, + DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT, + DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT, + (), +) + +DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _DIIRAI, + {_sSI: _cDIIRAR, _sm: None}, + (_DR, _IIRAI), + ((BOOLEAN, 0), (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1)), +) + +DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIRAO, + {_sSI: _cDIIRARo, _smit: None}, + (_IIRA,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION, {_aQN: _IIRA, _sN: _iIRA}),), +) + +DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _DIIRA, + 0, + DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT, + DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT, + (), +) + +DELETE_IPAM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DIPI, + {_sSI: _cDIPR, _sm: None}, + (_DR, _IPIp), + ((BOOLEAN, 0), (IPAM_POLICY_ID, 1)), +) + +DELETE_IPAM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPO, + {_sSI: _cDIPRo, _smit: None}, + (_IPpa,), + ((IPAM_POLICY, {_aQN: _IPpa, _sN: _iPpa}),), +) + +DELETE_IPAM_POLICY: StaticOperationSchema = ( + 23, + n0, + _DIPe, + 0, + DELETE_IPAM_POLICY_INPUT, + DELETE_IPAM_POLICY_OUTPUT, + (), +) + +DELETE_IPAM_POOL_INPUT: StaticSchema = ( + 18, + n0, + _DIPIe, + {_sSI: _cDIPRom, _sm: None}, + (_DR, _IPI, _Cas), + ((BOOLEAN, 0), (IPAM_POOL_ID, 1), (BOOLEAN, 0)), +) + +DELETE_IPAM_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPOe, + {_sSI: _cDIPRoma, _smit: None}, + (_IPpam,), + ((IPAM_POOL, {_aQN: _IPpam, _sN: _iPpam}),), +) + +DELETE_IPAM_POOL: StaticOperationSchema = ( + 23, + n0, + _DIPel, + 0, + DELETE_IPAM_POOL_INPUT, + DELETE_IPAM_POOL_OUTPUT, + (), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER_INPUT: StaticSchema = ( + 18, + n0, + _DIPLRI, + {_sSI: _cDIPLRR, _sm: None}, + (_DR, _IPLRI), + ((BOOLEAN, 0), (IPAM_PREFIX_LIST_RESOLVER_ID, 1)), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPLRO, + {_sSI: _cDIPLRRo, _smit: None}, + (_IPLR,), + ((IPAM_PREFIX_LIST_RESOLVER, {_aQN: _IPLR, _sN: _iPLR}),), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER: StaticOperationSchema = ( + 23, + n0, + _DIPLR, + 0, + DELETE_IPAM_PREFIX_LIST_RESOLVER_INPUT, + DELETE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT, + (), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT: StaticSchema = ( + 18, + n0, + _DIPLRTI, + {_sSI: _cDIPLRTR, _sm: None}, + (_DR, _IPLRTI), + ((BOOLEAN, 0), (IPAM_PREFIX_LIST_RESOLVER_TARGET_ID, 1)), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPLRTO, + {_sSI: _cDIPLRTRo, _smit: None}, + (_IPLRT,), + ((IPAM_PREFIX_LIST_RESOLVER_TARGET, {_aQN: _IPLRT, _sN: _iPLRT}),), +) + +DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET: StaticOperationSchema = ( + 23, + n0, + _DIPLRT, + 0, + DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT, + DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT, + (), +) + +DELETE_IPAM_RESOURCE_DISCOVERY_INPUT: StaticSchema = ( + 18, + n0, + _DIRDI, + {_sSI: _cDIRDR, _sm: None}, + (_DR, _IRDI), + ((BOOLEAN, 0), (IPAM_RESOURCE_DISCOVERY_ID, 1)), +) + +DELETE_IPAM_RESOURCE_DISCOVERY_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRDO, + {_sSI: _cDIRDRo, _smit: None}, + (_IRD,), + ((IPAM_RESOURCE_DISCOVERY, {_aQN: _IRD, _sN: _iRD}),), +) + +DELETE_IPAM_RESOURCE_DISCOVERY: StaticOperationSchema = ( + 23, + n0, + _DIRD, + 0, + DELETE_IPAM_RESOURCE_DISCOVERY_INPUT, + DELETE_IPAM_RESOURCE_DISCOVERY_OUTPUT, + (), +) + +DELETE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT: StaticSchema = ( + 18, + n0, + _DIRPRI, + {_sSI: _cDIRPRR, _sm: None}, + (_DR, _IIRAI, _Ci, _Fo, _CTl), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 1), + (BOXED_BOOLEAN, 0), + (STRING, 2), + ), +) + +DELETE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRPRO, + {_sSI: _cDIRPRRo, _smit: None}, + (_IRPRD,), + ((IPAM_ROUTING_POLICY_REGISTRATION_DELTA, {_aQN: _IRPRD, _sN: _iRPRD}),), +) + +DELETE_IPAM_ROUTING_POLICY_REGISTRATION: StaticOperationSchema = ( + 23, + n0, + _DIRPR, + 0, + DELETE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT, + DELETE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT, + (), +) + +DELETE_IPAM_SCOPE_INPUT: StaticSchema = ( + 18, + n0, + _DISI, + {_sSI: _cDISR, _sm: None}, + (_DR, _ISI), + ((BOOLEAN, 0), (IPAM_SCOPE_ID, 1)), +) + +DELETE_IPAM_SCOPE_OUTPUT: StaticSchema = ( + 18, + n0, + _DISO, + {_sSI: _cDISRo, _smit: None}, + (_ISpam,), + ((IPAM_SCOPE, {_aQN: _ISpam, _sN: _iSpa}),), +) + +DELETE_IPAM_SCOPE: StaticOperationSchema = ( + 23, + n0, + _DIS, + 0, + DELETE_IPAM_SCOPE_INPUT, + DELETE_IPAM_SCOPE_OUTPUT, + (), +) + +KEY_PAIR_NAME_WITH_RESOLVER: StaticSchema = (3, n0, _KPNWR, 0) + +KEY_PAIR_ID: StaticSchema = (3, n0, _KPI, 0) + +DELETE_KEY_PAIR_INPUT: StaticSchema = ( + 18, + n0, + _DKPI, + {_sSI: _cDKPR, _sm: None}, + (_KN, _KPI, _DR), + ( + (KEY_PAIR_NAME_WITH_RESOLVER, 0), + (KEY_PAIR_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +DELETE_KEY_PAIR_OUTPUT: StaticSchema = ( + 18, + n0, + _DKPO, + {_sSI: _cDKPRo, _smit: None}, + (_R, _KPI), + ((BOOLEAN, {_aQN: _R, _sN: _r}), (STRING, {_aQN: _KPI, _sN: _kPI})), +) + +DELETE_KEY_PAIR: StaticOperationSchema = ( + 23, + n0, + _DKP, + 0, + DELETE_KEY_PAIR_INPUT, + DELETE_KEY_PAIR_OUTPUT, + (), +) + +DELETE_LAUNCH_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _DLTI, + {_sSI: _cDLTR, _sm: None}, + (_DR, _LTI, _LTN), + ((BOOLEAN, 0), (LAUNCH_TEMPLATE_ID, 0), (LAUNCH_TEMPLATE_NAME, 0)), +) + +DELETE_LAUNCH_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DLTO, + {_sSI: _cDLTRo, _smit: None}, + (_LT,), + ((LAUNCH_TEMPLATE, {_aQN: _LT, _sN: _lT}),), +) + +DELETE_LAUNCH_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _DLT, + 0, + DELETE_LAUNCH_TEMPLATE_INPUT, + DELETE_LAUNCH_TEMPLATE_OUTPUT, + (), +) + +VERSION_STRING_LIST: StaticSchema = (16, n0, _VSLe, 0, (_me,), ((STRING, {_sN: _i}),)) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DLTVI, + {_sSI: _cDLTVR, _sm: None}, + (_DR, _LTI, _LTN, _Vers), + ( + (BOOLEAN, 0), + (LAUNCH_TEMPLATE_ID, 0), + (LAUNCH_TEMPLATE_NAME, 0), + (VERSION_STRING_LIST, {_sN: _LTV, _smi: None}), + ), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _DLTVRSI, + 0, + (_LTI, _LTN, _VNe), + ( + (STRING, {_aQN: _LTI, _sN: _lTI}), + (STRING, {_aQN: _LTN, _sN: _lTN}), + (LONG, {_aQN: _VNe, _sN: _vNe}), + ), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _DLTVRSS, + 0, + (_me,), + ((DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_SUCCESS_ITEM, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_ERROR_CODE: StaticSchema = ( + 14, + n0, + _LTEC, + 0, + (_LTIDNE, _LTIM, _LTNDNE, _LTNM, _LTVDNE, _UE), + ( + (-1, {_sV: _lTIDNE}), + (-1, {_sV: _lTIM}), + (-1, {_sV: _lTNDNE}), + (-1, {_sV: _lTNM}), + (-1, {_sV: _lTVDNE}), + (-1, {_sV: _uE}), + ), +) + +RESPONSE_ERROR: StaticSchema = ( + 18, + n0, + _REe, + 0, + (_C, _Me), + ( + (LAUNCH_TEMPLATE_ERROR_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _DLTVREI, + 0, + (_LTI, _LTN, _VNe, _REe), + ( + (STRING, {_aQN: _LTI, _sN: _lTI}), + (STRING, {_aQN: _LTN, _sN: _lTN}), + (LONG, {_aQN: _VNe, _sN: _vNe}), + (RESPONSE_ERROR, {_aQN: _REe, _sN: _rEe}), + ), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_ERROR_SET: StaticSchema = ( + 16, + n0, + _DLTVRES, + 0, + (_me,), + ((DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_ERROR_ITEM, {_sN: _i}),), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLTVO, + {_sSI: _cDLTVRo, _smit: None}, + (_SDLTV, _UDLTV), + ( + ( + DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_SUCCESS_SET, + {_aQN: _SDLTVS, _sN: _sDLTVS}, + ), + ( + DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_ERROR_SET, + {_aQN: _UDLTVS, _sN: _uDLTVS}, + ), + ), +) + +DELETE_LAUNCH_TEMPLATE_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _DLTV, + 0, + DELETE_LAUNCH_TEMPLATE_VERSIONS_INPUT, + DELETE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DLGRI, + {_sSI: _cDLGRR, _sm: None}, + (_DCB, _LGRTI, _DR, _DPLI), + ( + (STRING, 0), + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (BOOLEAN, 0), + (PREFIX_LIST_RESOURCE_ID, 0), + ), +) + +DELETE_LOCAL_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRO, + {_sSI: _cDLGRRo, _smit: None}, + (_Rou,), + ((LOCAL_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +DELETE_LOCAL_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DLGR, + 0, + DELETE_LOCAL_GATEWAY_ROUTE_INPUT, + DELETE_LOCAL_GATEWAY_ROUTE_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTI, + {_sSI: _cDLGRTR, _sm: None}, + (_LGRTI, _DR), + ((LOCAL_GATEWAY_ROUTETABLE_ID, 1), (BOOLEAN, 0)), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTO, + {_sSI: _cDLGRTRo, _smit: None}, + (_LGRTo,), + ((LOCAL_GATEWAY_ROUTE_TABLE, {_aQN: _LGRTo, _sN: _lGRT}),), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _DLGRT, + 0, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTVIGAI, + {_sSI: _cDLGRTVIGAR, _sm: None}, + (_LGRTVIGAI, _DR), + ( + (LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID, 1), + (BOOLEAN, 0), + ), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTVIGAO, + {_sSI: _cDLGRTVIGARo, _smit: None}, + (_LGRTVIGA,), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + {_aQN: _LGRTVIGA, _sN: _lGRTVIGA}, + ), + ), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _DLGRTVIGA, + 0, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTVAI, + {_sSI: _cDLGRTVAR, _sm: None}, + (_LGRTVAI, _DR), + ((LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID, 1), (BOOLEAN, 0)), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTVAO, + {_sSI: _cDLGRTVARo, _smit: None}, + (_LGRTVA,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, {_aQN: _LGRTVA, _sN: _lGRTVA}),), +) + +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _DLGRTVA, + 0, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT, + DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _DLGVII, + {_sSI: _cDLGVIR, _sm: None}, + (_LGVII, _DR), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID, 1), (BOOLEAN, 0)), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGVIO, + {_sSI: _cDLGVIRo, _smit: None}, + (_LGVI,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE, {_aQN: _LGVI, _sN: _lGVI}),), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _DLGVI, + 0, + DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT, + DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT, + (), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DLGVIGI, + {_sSI: _cDLGVIGR, _sm: None}, + (_LGVIGI, _DR), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, 1), (BOOLEAN, 0)), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGVIGO, + {_sSI: _cDLGVIGRo, _smit: None}, + (_LGVIG,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, {_aQN: _LGVIG, _sN: _lGVIG}),), +) + +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP: StaticOperationSchema = ( + 23, + n0, + _DLGVIG, + 0, + DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT, + DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT, + (), +) + +DELETE_MANAGED_PREFIX_LIST_INPUT: StaticSchema = ( + 18, + n0, + _DMPLI, + {_sSI: _cDMPLR, _sm: None}, + (_DR, _PLI), + ((BOOLEAN, 0), (PREFIX_LIST_RESOURCE_ID, 1)), +) + +DELETE_MANAGED_PREFIX_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _DMPLO, + {_sSI: _cDMPLRo, _smit: None}, + (_PL,), + ((MANAGED_PREFIX_LIST, {_aQN: _PL, _sN: _pL}),), +) + +DELETE_MANAGED_PREFIX_LIST: StaticOperationSchema = ( + 23, + n0, + _DMPL, + 0, + DELETE_MANAGED_PREFIX_LIST_INPUT, + DELETE_MANAGED_PREFIX_LIST_OUTPUT, + (), +) + +DELETE_NAT_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DNGI, + {_sSI: _cDNGR, _sm: None}, + (_DR, _NGI), + ((BOOLEAN, 0), (NAT_GATEWAY_ID, {_sN: _NGI, _smi: None})), +) + +DELETE_NAT_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DNGO, + {_sSI: _cDNGRo, _smit: None}, + (_NGI,), + ((STRING, {_aQN: _NGI, _sN: _nGI}),), +) + +DELETE_NAT_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DNG, + 0, + DELETE_NAT_GATEWAY_INPUT, + DELETE_NAT_GATEWAY_OUTPUT, + (), +) + +DELETE_NETWORK_ACL_INPUT: StaticSchema = ( + 18, + n0, + _DNAI, + {_sSI: _cDNAR, _sm: None}, + (_DR, _NAI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ID, {_aQN: _NAI, _sN: _nAI, _smi: None}), + ), +) + +DELETE_NETWORK_ACL_OUTPUT: StaticSchema = (18, n0, _DNAO, {_sSI: _sU, _smit: None}) + +DELETE_NETWORK_ACL: StaticOperationSchema = ( + 23, + n0, + _DNA, + 0, + DELETE_NETWORK_ACL_INPUT, + DELETE_NETWORK_ACL_OUTPUT, + (), +) + +DELETE_NETWORK_ACL_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _DNAEI, + {_sSI: _cDNAER, _sm: None}, + (_DR, _NAI, _RN, _Eg), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ID, {_aQN: _NAI, _sN: _nAI, _smi: None}), + (INTEGER, {_aQN: _RN, _sN: _rN, _smi: None}), + (BOOLEAN, {_aQN: _Eg, _sN: _egr, _smi: None}), + ), +) + +DELETE_NETWORK_ACL_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _DNAEO, + {_sSI: _sU, _smit: None}, +) + +DELETE_NETWORK_ACL_ENTRY: StaticOperationSchema = ( + 23, + n0, + _DNAE, + 0, + DELETE_NETWORK_ACL_ENTRY_INPUT, + DELETE_NETWORK_ACL_ENTRY_OUTPUT, + (), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT: StaticSchema = ( + 18, + n0, + _DNIASI, + {_sSI: _cDNIASR, _sm: None}, + (_DR, _NIASI), + ((BOOLEAN, 0), (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, 1)), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIASO, + {_sSI: _cDNIASRo, _smit: None}, + (_NIASI,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_aQN: _NIASI, _sN: _nIASI}),), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE: StaticOperationSchema = ( + 23, + n0, + _DNIAS, + 0, + DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT, + DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT, + (), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT: StaticSchema = ( + 18, + n0, + _DNIASAI, + {_sSI: _cDNIASAR, _sm: None}, + (_NIASAI, _DR), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, 1), (BOOLEAN, 0)), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIASAO, + {_sSI: _cDNIASARo, _smit: None}, + (_NIASAI,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, {_aQN: _NIASAI, _sN: _nIASAI}),), +) + +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS: StaticOperationSchema = ( + 23, + n0, + _DNIASA, + 0, + DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT, + DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT, + (), +) + +NETWORK_INSIGHTS_ANALYSIS_ID: StaticSchema = (3, n0, _NIAI, 0) + +DELETE_NETWORK_INSIGHTS_ANALYSIS_INPUT: StaticSchema = ( + 18, + n0, + _DNIAI, + {_sSI: _cDNIAR, _sm: None}, + (_DR, _NIAI), + ((BOOLEAN, 0), (NETWORK_INSIGHTS_ANALYSIS_ID, 1)), +) + +DELETE_NETWORK_INSIGHTS_ANALYSIS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIAO, + {_sSI: _cDNIARo, _smit: None}, + (_NIAI,), + ((NETWORK_INSIGHTS_ANALYSIS_ID, {_aQN: _NIAI, _sN: _nIAI}),), +) + +DELETE_NETWORK_INSIGHTS_ANALYSIS: StaticOperationSchema = ( + 23, + n0, + _DNIA, + 0, + DELETE_NETWORK_INSIGHTS_ANALYSIS_INPUT, + DELETE_NETWORK_INSIGHTS_ANALYSIS_OUTPUT, + (), +) + +DELETE_NETWORK_INSIGHTS_PATH_INPUT: StaticSchema = ( + 18, + n0, + _DNIPI, + {_sSI: _cDNIPR, _sm: None}, + (_DR, _NIPI), + ((BOOLEAN, 0), (NETWORK_INSIGHTS_PATH_ID, 1)), +) + +DELETE_NETWORK_INSIGHTS_PATH_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIPO, + {_sSI: _cDNIPRo, _smit: None}, + (_NIPI,), + ((NETWORK_INSIGHTS_PATH_ID, {_aQN: _NIPI, _sN: _nIPI}),), +) + +DELETE_NETWORK_INSIGHTS_PATH: StaticOperationSchema = ( + 23, + n0, + _DNIP, + 0, + DELETE_NETWORK_INSIGHTS_PATH_INPUT, + DELETE_NETWORK_INSIGHTS_PATH_OUTPUT, + (), +) + +DELETE_NETWORK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _DNII, + {_sSI: _cDNIR, _sm: None}, + (_DR, _NII), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + ), +) + +DELETE_NETWORK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIO, + {_sSI: _sU, _smit: None}, +) + +DELETE_NETWORK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _DNI, + 0, + DELETE_NETWORK_INTERFACE_INPUT, + DELETE_NETWORK_INTERFACE_OUTPUT, + (), +) + +NETWORK_INTERFACE_PERMISSION_ID: StaticSchema = (3, n0, _NIPIe, 0) + +DELETE_NETWORK_INTERFACE_PERMISSION_INPUT: StaticSchema = ( + 18, + n0, + _DNIPIe, + {_sSI: _cDNIPRom, _sm: None}, + (_NIPIe, _Fo, _DR), + ((NETWORK_INTERFACE_PERMISSION_ID, 1), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +DELETE_NETWORK_INTERFACE_PERMISSION_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIPOe, + {_sSI: _cDNIPRoma, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DELETE_NETWORK_INTERFACE_PERMISSION: StaticOperationSchema = ( + 23, + n0, + _DNIPe, + 0, + DELETE_NETWORK_INTERFACE_PERMISSION_INPUT, + DELETE_NETWORK_INTERFACE_PERMISSION_OUTPUT, + (), +) + +PLACEMENT_GROUP_NAME_WITH_RESOLVER: StaticSchema = (3, n0, _PGNWR, 0) + +DELETE_PLACEMENT_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DPGI, + {_sSI: _cDPGR, _sm: None}, + (_DR, _GN), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (PLACEMENT_GROUP_NAME_WITH_RESOLVER, {_aQN: _GN, _sN: _gN, _smi: None}), + ), +) + +DELETE_PLACEMENT_GROUP_OUTPUT: StaticSchema = (18, n0, _DPGO, {_sSI: _sU, _smit: None}) + +DELETE_PLACEMENT_GROUP: StaticOperationSchema = ( + 23, + n0, + _DPG, + 0, + DELETE_PLACEMENT_GROUP_INPUT, + DELETE_PLACEMENT_GROUP_OUTPUT, + (), +) + +DELETE_PUBLIC_IPV4_POOL_INPUT: StaticSchema = ( + 18, + n0, + _DPIPI, + {_sSI: _cDPIPR, _sm: None}, + (_DR, _PIo, _NBG), + ((BOOLEAN, 0), (IPV4_POOL_EC2_ID, 1), (STRING, 0)), +) + +DELETE_PUBLIC_IPV4_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _DPIPO, + {_sSI: _cDPIPRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _RV, _sN: _rV}),), +) + +DELETE_PUBLIC_IPV4_POOL: StaticOperationSchema = ( + 23, + n0, + _DPIP, + 0, + DELETE_PUBLIC_IPV4_POOL_INPUT, + DELETE_PUBLIC_IPV4_POOL_OUTPUT, + (), +) + +DELETE_QUEUED_RESERVED_INSTANCES_ID_LIST: StaticSchema = ( + 16, + n0, + _DQRIIL, + 0, + (_me,), + ((RESERVATION_ID, {_sN: _i}),), +) + +DELETE_QUEUED_RESERVED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DQRII, + {_sSI: _cDQRIR, _sm: None}, + (_DR, _RIIese), + ( + (BOOLEAN, 0), + (DELETE_QUEUED_RESERVED_INSTANCES_ID_LIST, {_sN: _RIIes, _smi: None}), + ), +) + +DELETE_QUEUED_RESERVED_INSTANCES_ERROR_CODE: StaticSchema = ( + 14, + n0, + _DQRIEC, + 0, + (_RIII, _RINIQS, _UE), + ((-1, {_sV: _riii}), (-1, {_sV: _riniqs}), (-1, {_sV: _ue_})), +) + +DELETE_QUEUED_RESERVED_INSTANCES_ERROR: StaticSchema = ( + 18, + n0, + _DQRIE, + 0, + (_C, _Me), + ( + (DELETE_QUEUED_RESERVED_INSTANCES_ERROR_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +FAILED_QUEUED_PURCHASE_DELETION: StaticSchema = ( + 18, + n0, + _FQPD, + 0, + (_E, _RIIes), + ( + (DELETE_QUEUED_RESERVED_INSTANCES_ERROR, {_aQN: _E, _sN: _er}), + (STRING, {_aQN: _RIIes, _sN: _rII}), + ), +) + +FAILED_QUEUED_PURCHASE_DELETION_SET: StaticSchema = ( + 16, + n0, + _FQPDS, + 0, + (_me,), + ((FAILED_QUEUED_PURCHASE_DELETION, {_sN: _i}),), +) + +SUCCESSFUL_QUEUED_PURCHASE_DELETION: StaticSchema = ( + 18, + n0, + _SQPD, + 0, + (_RIIes,), + ((STRING, {_aQN: _RIIes, _sN: _rII}),), +) + +SUCCESSFUL_QUEUED_PURCHASE_DELETION_SET: StaticSchema = ( + 16, + n0, + _SQPDS, + 0, + (_me,), + ((SUCCESSFUL_QUEUED_PURCHASE_DELETION, {_sN: _i}),), +) + +DELETE_QUEUED_RESERVED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DQRIO, + {_sSI: _cDQRIRo, _smit: None}, + (_SQPDu, _FQPDa), + ( + (SUCCESSFUL_QUEUED_PURCHASE_DELETION_SET, {_aQN: _SQPDS, _sN: _sQPDS}), + (FAILED_QUEUED_PURCHASE_DELETION_SET, {_aQN: _FQPDS, _sN: _fQPDS}), + ), +) + +DELETE_QUEUED_RESERVED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DQRI, + 0, + DELETE_QUEUED_RESERVED_INSTANCES_INPUT, + DELETE_QUEUED_RESERVED_INSTANCES_OUTPUT, + (), +) + +DELETE_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DRI, + {_sSI: _cDRR, _sm: None}, + (_DPLI, _DR, _RTIo, _DCB, _DICB), + ( + (PREFIX_LIST_RESOURCE_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (STRING, {_aQN: _DICB, _sN: _dICB}), + ), +) + +DELETE_ROUTE_OUTPUT: StaticSchema = (18, n0, _DRO, {_sSI: _sU, _smit: None}) + +DELETE_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DRel, + 0, + DELETE_ROUTE_INPUT, + DELETE_ROUTE_OUTPUT, + (), +) + +DELETE_ROUTE_SERVER_INPUT: StaticSchema = ( + 18, + n0, + _DRSI, + {_sSI: _cDRSR, _sm: None}, + (_RSI, _DR), + ((ROUTE_SERVER_ID, 1), (BOOLEAN, 0)), +) + +DELETE_ROUTE_SERVER_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSO, + {_sSI: _cDRSRo, _smit: None}, + (_RSo,), + ((ROUTE_SERVER, {_aQN: _RSo, _sN: _rSo}),), +) + +DELETE_ROUTE_SERVER: StaticOperationSchema = ( + 23, + n0, + _DRS, + 0, + DELETE_ROUTE_SERVER_INPUT, + DELETE_ROUTE_SERVER_OUTPUT, + (), +) + +DELETE_ROUTE_SERVER_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DRSEI, + {_sSI: _cDRSER, _sm: None}, + (_RSEI, _DR), + ((ROUTE_SERVER_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_ROUTE_SERVER_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSEO, + {_sSI: _cDRSERo, _smit: None}, + (_RSE,), + ((ROUTE_SERVER_ENDPOINT, {_aQN: _RSE, _sN: _rSE}),), +) + +DELETE_ROUTE_SERVER_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DRSE, + 0, + DELETE_ROUTE_SERVER_ENDPOINT_INPUT, + DELETE_ROUTE_SERVER_ENDPOINT_OUTPUT, + (), +) + +DELETE_ROUTE_SERVER_PEER_INPUT: StaticSchema = ( + 18, + n0, + _DRSPI, + {_sSI: _cDRSPR, _sm: None}, + (_RSPI, _DR), + ((ROUTE_SERVER_PEER_ID, 1), (BOOLEAN, 0)), +) + +DELETE_ROUTE_SERVER_PEER_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSPO, + {_sSI: _cDRSPRo, _smit: None}, + (_RSP,), + ((ROUTE_SERVER_PEER, {_aQN: _RSP, _sN: _rSP}),), +) + +DELETE_ROUTE_SERVER_PEER: StaticOperationSchema = ( + 23, + n0, + _DRSP, + 0, + DELETE_ROUTE_SERVER_PEER_INPUT, + DELETE_ROUTE_SERVER_PEER_OUTPUT, + (), +) + +DELETE_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DRTI, + {_sSI: _cDRTR, _sm: None}, + (_DR, _RTIo), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + ), +) + +DELETE_ROUTE_TABLE_OUTPUT: StaticSchema = (18, n0, _DRTO, {_sSI: _sU, _smit: None}) + +DELETE_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _DRT, + 0, + DELETE_ROUTE_TABLE_INPUT, + DELETE_ROUTE_TABLE_OUTPUT, + (), +) + +DELETE_SECONDARY_NETWORK_INPUT: StaticSchema = ( + 18, + n0, + _DSNI, + {_sSI: _cDSNR, _sm: None}, + (_CTl, _DR, _SNI), + ((STRING, 2), (BOOLEAN, 0), (SECONDARY_NETWORK_ID, 1)), +) + +DELETE_SECONDARY_NETWORK_OUTPUT: StaticSchema = ( + 18, + n0, + _DSNO, + {_sSI: _cDSNRo, _smit: None}, + (_SNec, _CTl), + ((SECONDARY_NETWORK, {_aQN: _SNec, _sN: _sNec}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +DELETE_SECONDARY_NETWORK: StaticOperationSchema = ( + 23, + n0, + _DSN, + 0, + DELETE_SECONDARY_NETWORK_INPUT, + DELETE_SECONDARY_NETWORK_OUTPUT, + (), +) + +DELETE_SECONDARY_SUBNET_INPUT: StaticSchema = ( + 18, + n0, + _DSSI, + {_sSI: _cDSSR, _sm: None}, + (_CTl, _DR, _SSIe), + ((STRING, 2), (BOOLEAN, 0), (SECONDARY_SUBNET_ID, 1)), +) + +DELETE_SECONDARY_SUBNET_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSO, + {_sSI: _cDSSRo, _smit: None}, + (_SSe, _CTl), + ((SECONDARY_SUBNET, {_aQN: _SSe, _sN: _sSe}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +DELETE_SECONDARY_SUBNET: StaticOperationSchema = ( + 23, + n0, + _DSSe, + 0, + DELETE_SECONDARY_SUBNET_INPUT, + DELETE_SECONDARY_SUBNET_OUTPUT, + (), +) + +DELETE_SECURITY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DSGI, + {_sSI: _cDSGR, _sm: None}, + (_GIr, _GN, _DR), + ( + (SECURITY_GROUP_ID, 0), + (SECURITY_GROUP_NAME, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +DELETE_SECURITY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGO, + {_sSI: _cDSGRo, _smit: None}, + (_R, _GIr), + ((BOOLEAN, {_aQN: _R, _sN: _r}), (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr})), +) + +DELETE_SECURITY_GROUP: StaticOperationSchema = ( + 23, + n0, + _DSG, + 0, + DELETE_SECURITY_GROUP_INPUT, + DELETE_SECURITY_GROUP_OUTPUT, + (), +) + +DELETE_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _DSI, + {_sSI: _cDSR, _sm: None}, + (_SIn, _DR), + ((SNAPSHOT_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_SNAPSHOT_OUTPUT: StaticSchema = (18, n0, _DSO, {_sSI: _sU, _smit: None}) + +DELETE_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _DSel, + 0, + DELETE_SNAPSHOT_INPUT, + DELETE_SNAPSHOT_OUTPUT, + (), +) + +DELETE_SPOT_DATAFEED_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _DSDSI, + {_sSI: _cDSDSR, _sm: None}, + (_DR,), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}),), +) + +DELETE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDSO, + {_sSI: _sU, _smit: None}, +) + +DELETE_SPOT_DATAFEED_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _DSDS, + 0, + DELETE_SPOT_DATAFEED_SUBSCRIPTION_INPUT, + DELETE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT, + (), +) + +DELETE_SUBNET_INPUT: StaticSchema = ( + 18, + n0, + _DSIe, + {_sSI: _cDSRo, _sm: None}, + (_SIu, _DR), + ((SUBNET_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_SUBNET_OUTPUT: StaticSchema = (18, n0, _DSOe, {_sSI: _sU, _smit: None}) + +DELETE_SUBNET: StaticOperationSchema = ( + 23, + n0, + _DSele, + 0, + DELETE_SUBNET_INPUT, + DELETE_SUBNET_OUTPUT, + (), +) + +DELETE_SUBNET_CIDR_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _DSCRI, + {_sSI: _cDSCRR, _sm: None}, + (_SCRIu, _DR), + ((SUBNET_CIDR_RESERVATION_ID, 1), (BOOLEAN, 0)), +) + +DELETE_SUBNET_CIDR_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCRO, + {_sSI: _cDSCRRo, _smit: None}, + (_DSCR,), + ((SUBNET_CIDR_RESERVATION, {_aQN: _DSCR, _sN: _dSCR}),), +) + +DELETE_SUBNET_CIDR_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _DSCRe, + 0, + DELETE_SUBNET_CIDR_RESERVATION_INPUT, + DELETE_SUBNET_CIDR_RESERVATION_OUTPUT, + (), +) + +DELETE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _DTIe, + {_sSI: _cDTR, _sm: None}, + (_DR, _Res, _Tag), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (RESOURCE_ID_LIST, {_aQN: _RIe, _sN: _rI, _smi: None}), + (TAG_LIST, {_aQN: _Ta, _sN: _tag}), + ), +) + +DELETE_TAGS_OUTPUT: StaticSchema = (18, n0, _DTO, {_sSI: _sU, _smit: None}) + +DELETE_TAGS: StaticOperationSchema = ( + 23, + n0, + _DTelet, + 0, + DELETE_TAGS_INPUT, + DELETE_TAGS_OUTPUT, + (), +) + +DELETE_TRAFFIC_MIRROR_FILTER_INPUT: StaticSchema = ( + 18, + n0, + _DTMFI, + {_sSI: _cDTMFR, _sm: None}, + (_TMFI, _DR), + ((TRAFFIC_MIRROR_FILTER_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRAFFIC_MIRROR_FILTER_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMFO, + {_sSI: _cDTMFRo, _smit: None}, + (_TMFI,), + ((STRING, {_aQN: _TMFI, _sN: _tMFI}),), +) + +DELETE_TRAFFIC_MIRROR_FILTER: StaticOperationSchema = ( + 23, + n0, + _DTMF, + 0, + DELETE_TRAFFIC_MIRROR_FILTER_INPUT, + DELETE_TRAFFIC_MIRROR_FILTER_OUTPUT, + (), +) + +TRAFFIC_MIRROR_FILTER_RULE_ID_WITH_RESOLVER: StaticSchema = (3, n0, _TMFRIWR, 0) + +DELETE_TRAFFIC_MIRROR_FILTER_RULE_INPUT: StaticSchema = ( + 18, + n0, + _DTMFRI, + {_sSI: _cDTMFRR, _sm: None}, + (_TMFRI, _DR), + ((TRAFFIC_MIRROR_FILTER_RULE_ID_WITH_RESOLVER, 1), (BOOLEAN, 0)), +) + +DELETE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMFRO, + {_sSI: _cDTMFRRo, _smit: None}, + (_TMFRI,), + ((STRING, {_aQN: _TMFRI, _sN: _tMFRI}),), +) + +DELETE_TRAFFIC_MIRROR_FILTER_RULE: StaticOperationSchema = ( + 23, + n0, + _DTMFR, + 0, + DELETE_TRAFFIC_MIRROR_FILTER_RULE_INPUT, + DELETE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT, + (), +) + +TRAFFIC_MIRROR_SESSION_ID: StaticSchema = (3, n0, _TMSI, 0) + +DELETE_TRAFFIC_MIRROR_SESSION_INPUT: StaticSchema = ( + 18, + n0, + _DTMSI, + {_sSI: _cDTMSR, _sm: None}, + (_TMSI, _DR), + ((TRAFFIC_MIRROR_SESSION_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRAFFIC_MIRROR_SESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMSO, + {_sSI: _cDTMSRo, _smit: None}, + (_TMSI,), + ((STRING, {_aQN: _TMSI, _sN: _tMSI}),), +) + +DELETE_TRAFFIC_MIRROR_SESSION: StaticOperationSchema = ( + 23, + n0, + _DTMS, + 0, + DELETE_TRAFFIC_MIRROR_SESSION_INPUT, + DELETE_TRAFFIC_MIRROR_SESSION_OUTPUT, + (), +) + +DELETE_TRAFFIC_MIRROR_TARGET_INPUT: StaticSchema = ( + 18, + n0, + _DTMTI, + {_sSI: _cDTMTR, _sm: None}, + (_TMTI, _DR), + ((TRAFFIC_MIRROR_TARGET_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRAFFIC_MIRROR_TARGET_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMTO, + {_sSI: _cDTMTRo, _smit: None}, + (_TMTI,), + ((STRING, {_aQN: _TMTI, _sN: _tMTI}),), +) + +DELETE_TRAFFIC_MIRROR_TARGET: StaticOperationSchema = ( + 23, + n0, + _DTMT, + 0, + DELETE_TRAFFIC_MIRROR_TARGET_INPUT, + DELETE_TRAFFIC_MIRROR_TARGET_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DTGI, + {_sSI: _cDTGR, _sm: None}, + (_TGI, _DR), + ((TRANSIT_GATEWAY_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGO, + {_sSI: _cDTGRo, _smit: None}, + (_TGr,), + ((TRANSIT_GATEWAY, {_aQN: _TGr, _sN: _tG}),), +) + +DELETE_TRANSIT_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DTG, + 0, + DELETE_TRANSIT_GATEWAY_INPUT, + DELETE_TRANSIT_GATEWAY_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _DTGCVAI, + {_sSI: _cDTGCVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGCVAO, + {_sSI: _cDTGCVARo, _smit: None}, + (_TGCVA,), + ((TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, {_aQN: _TGCVA, _sN: _tGCVA}),), +) + +DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _DTGCVA, + 0, + DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT, + DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_CONNECT_INPUT: StaticSchema = ( + 18, + n0, + _DTGCI, + {_sSI: _cDTGCR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_CONNECT_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGCO, + {_sSI: _cDTGCRo, _smit: None}, + (_TGCr,), + ((TRANSIT_GATEWAY_CONNECT, {_aQN: _TGCr, _sN: _tGC}),), +) + +DELETE_TRANSIT_GATEWAY_CONNECT: StaticOperationSchema = ( + 23, + n0, + _DTGC, + 0, + DELETE_TRANSIT_GATEWAY_CONNECT_INPUT, + DELETE_TRANSIT_GATEWAY_CONNECT_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT: StaticSchema = ( + 18, + n0, + _DTGCPI, + {_sSI: _cDTGCPR, _sm: None}, + (_TGCPI, _DR), + ((TRANSIT_GATEWAY_CONNECT_PEER_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGCPO, + {_sSI: _cDTGCPRo, _smit: None}, + (_TGCP,), + ((TRANSIT_GATEWAY_CONNECT_PEER, {_aQN: _TGCP, _sN: _tGCP}),), +) + +DELETE_TRANSIT_GATEWAY_CONNECT_PEER: StaticOperationSchema = ( + 23, + n0, + _DTGCP, + 0, + DELETE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT, + DELETE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DTGMPI, + {_sSI: _cDTGMPR, _sm: None}, + (_TGMPI, _DR), + ((TRANSIT_GATEWAY_METERING_POLICY_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMPO, + {_sSI: _cDTGMPRo, _smit: None}, + (_TGMP,), + ((TRANSIT_GATEWAY_METERING_POLICY, {_aQN: _TGMP, _sN: _tGMP}),), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY: StaticOperationSchema = ( + 23, + n0, + _DTGMP, + 0, + DELETE_TRANSIT_GATEWAY_METERING_POLICY_INPUT, + DELETE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _DTGMPEI, + {_sSI: _cDTGMPER, _sm: None}, + (_TGMPI, _PRNo, _DR), + ((TRANSIT_GATEWAY_METERING_POLICY_ID, 1), (INTEGER, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMPEO, + {_sSI: _cDTGMPERo, _smit: None}, + (_TGMPE,), + ((TRANSIT_GATEWAY_METERING_POLICY_ENTRY, {_aQN: _TGMPE, _sN: _tGMPE}),), +) + +DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY: StaticOperationSchema = ( + 23, + n0, + _DTGMPE, + 0, + DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT, + DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT: StaticSchema = ( + 18, + n0, + _DTGMDI, + {_sSI: _cDTGMDR, _sm: None}, + (_TGMDI, _DR), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMDO, + {_sSI: _cDTGMDRo, _smit: None}, + (_TGMD,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN, {_aQN: _TGMD, _sN: _tGMD}),), +) + +DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: StaticOperationSchema = ( + 23, + n0, + _DTGMD, + 0, + DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT, + DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _DTGPAI, + {_sSI: _cDTGPAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPAO, + {_sSI: _cDTGPARo, _smit: None}, + (_TGPA,), + ((TRANSIT_GATEWAY_PEERING_ATTACHMENT, {_aQN: _TGPA, _sN: _tGPA}),), +) + +DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _DTGPA, + 0, + DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT, + DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DTGPTI, + {_sSI: _cDTGPTR, _sm: None}, + (_TGPTI, _DR), + ((TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPTO, + {_sSI: _cDTGPTRo, _smit: None}, + (_TGPT,), + ((TRANSIT_GATEWAY_POLICY_TABLE, {_aQN: _TGPT, _sN: _tGPT}),), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE: StaticOperationSchema = ( + 23, + n0, + _DTGPT, + 0, + DELETE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT, + DELETE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _DTGPTEI, + {_sSI: _cDTGPTER, _sm: None}, + (_TGPTI, _PRNo, _DR), + ((TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPTEO, + {_sSI: _cDTGPTERo, _smit: None}, + (_TGPTE,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_aQN: _TGPTE, _sN: _tGPTE}),), +) + +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: StaticOperationSchema = ( + 23, + n0, + _DTGPTE, + 0, + DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT, + DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT: StaticSchema = ( + 18, + n0, + _DTGPLRI, + {_sSI: _cDTGPLRR, _sm: None}, + (_TGRTI, _PLI, _DR), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), (PREFIX_LIST_RESOURCE_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPLRO, + {_sSI: _cDTGPLRRo, _smit: None}, + (_TGPLR,), + ((TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, {_aQN: _TGPLR, _sN: _tGPLR}),), +) + +DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: StaticOperationSchema = ( + 23, + n0, + _DTGPLR, + 0, + DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT, + DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DTGRI, + {_sSI: _cDTGRR, _sm: None}, + (_TGRTI, _DCB, _DR), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRO, + {_sSI: _cDTGRRo, _smit: None}, + (_Rou,), + ((TRANSIT_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +DELETE_TRANSIT_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DTGR, + 0, + DELETE_TRANSIT_GATEWAY_ROUTE_INPUT, + DELETE_TRANSIT_GATEWAY_ROUTE_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTI, + {_sSI: _cDTGRTR, _sm: None}, + (_TGRTI, _DR), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTO, + {_sSI: _cDTGRTRo, _smit: None}, + (_TGRT,), + ((TRANSIT_GATEWAY_ROUTE_TABLE, {_aQN: _TGRT, _sN: _tGRT}),), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _DTGRT, + 0, + DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT, + DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTAI, + {_sSI: _cDTGRTAR, _sm: None}, + (_TGRTAI, _DR), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTAO, + {_sSI: _cDTGRTARo, _smit: None}, + (_TGRTA,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, {_aQN: _TGRTA, _sN: _tGRTA}),), +) + +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT: StaticOperationSchema = ( + 23, + n0, + _DTGRTA, + 0, + DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT, + DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT, + (), +) + +DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _DTGVAI, + {_sSI: _cDTGVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGVAO, + {_sSI: _cDTGVARo, _smit: None}, + (_TGVA,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_aQN: _TGVA, _sN: _tGVA}),), +) + +DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _DTGVA, + 0, + DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT, + DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT, + (), +) + +VERIFIED_ACCESS_ENDPOINT_ID: StaticSchema = (3, n0, _VAEI, 0) + +DELETE_VERIFIED_ACCESS_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DVAEI, + {_sSI: _cDVAER, _sm: None}, + (_VAEI, _CTl, _DR), + ((VERIFIED_ACCESS_ENDPOINT_ID, 1), (STRING, 2), (BOOLEAN, 0)), +) + +DELETE_VERIFIED_ACCESS_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAEO, + {_sSI: _cDVAERo, _smit: None}, + (_VAE,), + ((VERIFIED_ACCESS_ENDPOINT, {_aQN: _VAE, _sN: _vAE}),), +) + +DELETE_VERIFIED_ACCESS_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DVAE, + 0, + DELETE_VERIFIED_ACCESS_ENDPOINT_INPUT, + DELETE_VERIFIED_ACCESS_ENDPOINT_OUTPUT, + (), +) + +DELETE_VERIFIED_ACCESS_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DVAGI, + {_sSI: _cDVAGR, _sm: None}, + (_VAGI, _CTl, _DR), + ((VERIFIED_ACCESS_GROUP_ID, 1), (STRING, 2), (BOOLEAN, 0)), +) + +DELETE_VERIFIED_ACCESS_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAGO, + {_sSI: _cDVAGRo, _smit: None}, + (_VAG,), + ((VERIFIED_ACCESS_GROUP, {_aQN: _VAG, _sN: _vAG}),), +) + +DELETE_VERIFIED_ACCESS_GROUP: StaticOperationSchema = ( + 23, + n0, + _DVAG, + 0, + DELETE_VERIFIED_ACCESS_GROUP_INPUT, + DELETE_VERIFIED_ACCESS_GROUP_OUTPUT, + (), +) + +DELETE_VERIFIED_ACCESS_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _DVAII, + {_sSI: _cDVAIR, _sm: None}, + (_VAII, _DR, _CTl), + ((VERIFIED_ACCESS_INSTANCE_ID, 1), (BOOLEAN, 0), (STRING, 2)), +) + +DELETE_VERIFIED_ACCESS_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAIO, + {_sSI: _cDVAIRo, _smit: None}, + (_VAI,), + ((VERIFIED_ACCESS_INSTANCE, {_aQN: _VAI, _sN: _vAI}),), +) + +DELETE_VERIFIED_ACCESS_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _DVAI, + 0, + DELETE_VERIFIED_ACCESS_INSTANCE_INPUT, + DELETE_VERIFIED_ACCESS_INSTANCE_OUTPUT, + (), +) + +DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _DVATPI, + {_sSI: _cDVATPR, _sm: None}, + (_VATPI, _DR, _CTl), + ((VERIFIED_ACCESS_TRUST_PROVIDER_ID, 1), (BOOLEAN, 0), (STRING, 2)), +) + +DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _DVATPO, + {_sSI: _cDVATPRo, _smit: None}, + (_VATPe,), + ((VERIFIED_ACCESS_TRUST_PROVIDER, {_aQN: _VATPe, _sN: _vATP}),), +) + +DELETE_VERIFIED_ACCESS_TRUST_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _DVATP, + 0, + DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT, + DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT, + (), +) + +DELETE_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _DVI, + {_sSI: _cDVR, _sm: None}, + (_VIo, _DR), + ((VOLUME_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_VOLUME_OUTPUT: StaticSchema = (18, n0, _DVO, {_sSI: _sU, _smit: None}) + +DELETE_VOLUME: StaticOperationSchema = ( + 23, + n0, + _DVel, + 0, + DELETE_VOLUME_INPUT, + DELETE_VOLUME_OUTPUT, + (), +) + +DELETE_VPC_INPUT: StaticSchema = ( + 18, + n0, + _DVIe, + {_sSI: _cDVRo, _sm: None}, + (_VI, _DR), + ((VPC_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_VPC_OUTPUT: StaticSchema = (18, n0, _DVOe, {_sSI: _sU, _smit: None}) + +DELETE_VPC: StaticOperationSchema = ( + 23, + n0, + _DVele, + 0, + DELETE_VPC_INPUT, + DELETE_VPC_OUTPUT, + (), +) + +DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT: StaticSchema = ( + 18, + n0, + _DVBPAEI, + {_sSI: _cDVBPAER, _sm: None}, + (_DR, _EIx), + ((BOOLEAN, 0), (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID, 1)), +) + +DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT: StaticSchema = ( + 18, + n0, + _DVBPAEO, + {_sSI: _cDVBPAERo, _smit: None}, + (_VBPAE,), + ((VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, {_aQN: _VBPAE, _sN: _vBPAE}),), +) + +DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: StaticOperationSchema = ( + 23, + n0, + _DVBPAE, + 0, + DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT, + DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT, + (), +) + +DELETE_VPC_ENCRYPTION_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _DVECI, + {_sSI: _cDVECR, _sm: None}, + (_DR, _VECI), + ((BOOLEAN, 0), (VPC_ENCRYPTION_CONTROL_ID, 1)), +) + +DELETE_VPC_ENCRYPTION_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _DVECO, + {_sSI: _cDVECRo, _smit: None}, + (_VEC,), + ((VPC_ENCRYPTION_CONTROL, {_aQN: _VEC, _sN: _vEC}),), +) + +DELETE_VPC_ENCRYPTION_CONTROL: StaticOperationSchema = ( + 23, + n0, + _DVEC, + 0, + DELETE_VPC_ENCRYPTION_CONTROL_INPUT, + DELETE_VPC_ENCRYPTION_CONTROL_OUTPUT, + (), +) + +CONNECTION_NOTIFICATION_ID: StaticSchema = (3, n0, _CNIo, 0) + +CONNECTION_NOTIFICATION_IDS_LIST: StaticSchema = ( + 16, + n0, + _CNIL, + 0, + (_me,), + ((CONNECTION_NOTIFICATION_ID, {_sN: _i}),), +) + +DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVECNI, + {_sSI: _cDVECNR, _sm: None}, + (_DR, _CNIon), + ((BOOLEAN, 0), (CONNECTION_NOTIFICATION_IDS_LIST, {_sN: _CNIo, _smi: None})), +) + +DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVECNO, + {_sSI: _cDVECNRo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DVECN, + 0, + DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT, + DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT, + (), +) + +DELETE_VPC_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DVEI, + {_sSI: _cDVER, _sm: None}, + (_DR, _VEIp), + ((BOOLEAN, 0), (VPC_ENDPOINT_ID_LIST, {_sN: _VEI, _smi: None})), +) + +DELETE_VPC_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVEO, + {_sSI: _cDVERo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +DELETE_VPC_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DVE, + 0, + DELETE_VPC_ENDPOINTS_INPUT, + DELETE_VPC_ENDPOINTS_OUTPUT, + (), +) + +VPC_ENDPOINT_SERVICE_ID_LIST: StaticSchema = ( + 16, + n0, + _VESILp, + 0, + (_me,), + ((VPC_ENDPOINT_SERVICE_ID, {_sN: _i}),), +) + +DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVESCI, + {_sSI: _cDVESCR, _sm: None}, + (_DR, _SIer), + ((BOOLEAN, 0), (VPC_ENDPOINT_SERVICE_ID_LIST, {_sN: _SIe, _smi: None})), +) + +DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVESCO, + {_sSI: _cDVESCRo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _DVESC, + 0, + DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT, + DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT, + (), +) + +DELETE_VPC_PEERING_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _DVPCI, + {_sSI: _cDVPCR, _sm: None}, + (_DR, _VPCI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_PEERING_CONNECTION_ID, {_aQN: _VPCI, _sN: _vPCI, _smi: None}), + ), +) + +DELETE_VPC_PEERING_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DVPCO, + {_sSI: _cDVPCRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DELETE_VPC_PEERING_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _DVPC, + 0, + DELETE_VPC_PEERING_CONNECTION_INPUT, + DELETE_VPC_PEERING_CONNECTION_OUTPUT, + (), +) + +DELETE_VPN_CONCENTRATOR_INPUT: StaticSchema = ( + 18, + n0, + _DVCI, + {_sSI: _cDVCR, _sm: None}, + (_VCI, _DR), + ((VPN_CONCENTRATOR_ID, 1), (BOOLEAN, 0)), +) + +DELETE_VPN_CONCENTRATOR_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCO, + {_sSI: _cDVCRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DELETE_VPN_CONCENTRATOR: StaticOperationSchema = ( + 23, + n0, + _DVC, + 0, + DELETE_VPN_CONCENTRATOR_INPUT, + DELETE_VPN_CONCENTRATOR_OUTPUT, + (), +) + +DELETE_VPN_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _DVCIe, + {_sSI: _cDVCRom, _sm: None}, + (_VCIp, _DR), + ((VPN_CONNECTION_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_VPN_CONNECTION_OUTPUT: StaticSchema = (18, n0, _DVCOe, {_sSI: _sU, _smit: None}) + +DELETE_VPN_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _DVCe, + 0, + DELETE_VPN_CONNECTION_INPUT, + DELETE_VPN_CONNECTION_OUTPUT, + (), +) + +DELETE_VPN_CONNECTION_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DVCRI, + {_sSI: _cDVCRR, _sm: None}, + (_DCB, _VCIp), + ((STRING, 1), (VPN_CONNECTION_ID, 1)), +) + +DELETE_VPN_CONNECTION_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCRO, + {_sSI: _sU, _smit: None}, +) + +DELETE_VPN_CONNECTION_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DVCR, + 0, + DELETE_VPN_CONNECTION_ROUTE_INPUT, + DELETE_VPN_CONNECTION_ROUTE_OUTPUT, + (), +) + +DELETE_VPN_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DVGI, + {_sSI: _cDVGR, _sm: None}, + (_VGI, _DR), + ((VPN_GATEWAY_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DELETE_VPN_GATEWAY_OUTPUT: StaticSchema = (18, n0, _DVGO, {_sSI: _sU, _smit: None}) + +DELETE_VPN_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DVG, + 0, + DELETE_VPN_GATEWAY_INPUT, + DELETE_VPN_GATEWAY_OUTPUT, + (), +) + +DEPROVISION_BYOIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _DBCI, + {_sSI: _cDBCR, _sm: None}, + (_Ci, _DR), + ((STRING, 1), (BOOLEAN, 0)), +) + +DEPROVISION_BYOIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _DBCO, + {_sSI: _cDBCRo, _smit: None}, + (_BC,), + ((BYOIP_CIDR, {_aQN: _BC, _sN: _bC}),), +) + +DEPROVISION_BYOIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _DBC, + 0, + DEPROVISION_BYOIP_CIDR_INPUT, + DEPROVISION_BYOIP_CIDR_OUTPUT, + (), +) + +DEPROVISION_IPAM_BYOASN_INPUT: StaticSchema = ( + 18, + n0, + _DIBI, + {_sSI: _cDIBR, _sm: None}, + (_DR, _IIp, _Asn), + ((BOOLEAN, 0), (IPAM_ID, 1), (STRING, 1)), +) + +ASN_STATE: StaticSchema = ( + 14, + n0, + _ASsn, + 0, + (_dep, _fd__, _fp, _pd__, _pp, _prov), + ( + (-1, {_sV: _dep}), + (-1, {_sV: _fd___}), + (-1, {_sV: _fp_}), + (-1, {_sV: _pd___}), + (-1, {_sV: _pp_}), + (-1, {_sV: _prov}), + ), +) + +BYOASN: StaticSchema = ( + 18, + n0, + _By, + 0, + (_Asn, _IIp, _SMt, _St), + ( + (STRING, {_aQN: _Asn, _sN: _asn}), + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (ASN_STATE, {_aQN: _St, _sN: _st}), + ), +) + +DEPROVISION_IPAM_BYOASN_OUTPUT: StaticSchema = ( + 18, + n0, + _DIBO, + {_sSI: _cDIBRo, _smit: None}, + (_By,), + ((BYOASN, {_aQN: _By, _sN: _by}),), +) + +DEPROVISION_IPAM_BYOASN: StaticOperationSchema = ( + 23, + n0, + _DIB, + 0, + DEPROVISION_IPAM_BYOASN_INPUT, + DEPROVISION_IPAM_BYOASN_OUTPUT, + (), +) + +DEPROVISION_IPAM_POOL_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _DIPCI, + {_sSI: _cDIPCR, _sm: None}, + (_DR, _IPI, _Ci), + ((BOOLEAN, 0), (IPAM_POOL_ID, 1), (STRING, 0)), +) + +IPAM_POOL_CIDR_FAILURE_CODE: StaticSchema = ( + 14, + n0, + _IPCFC, + 0, + (_cna, _le), + ((-1, {_sV: _cna_}), (-1, {_sV: _le_})), +) + +IPAM_POOL_CIDR_FAILURE_REASON: StaticSchema = ( + 18, + n0, + _IPCFR, + 0, + (_C, _Me), + ( + (IPAM_POOL_CIDR_FAILURE_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +IPAM_POOL_CIDR_ID: StaticSchema = (3, n0, _IPCIp, 0) + +IPAM_POOL_CIDR_STATE: StaticSchema = ( + 14, + n0, + _IPCS, + 0, + (_pp, _prov, _fp, _pd__, _dep, _fd__, _pi, _fi__), + ( + (-1, {_sV: _pp_}), + (-1, {_sV: _prov}), + (-1, {_sV: _fp_}), + (-1, {_sV: _pd___}), + (-1, {_sV: _dep}), + (-1, {_sV: _fd___}), + (-1, {_sV: _pi_}), + (-1, {_sV: _fi___}), + ), +) + +IPAM_POOL_CIDR: StaticSchema = ( + 18, + n0, + _IPCpa, + 0, + (_Ci, _St, _FRa, _IPCIp, _NL), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (IPAM_POOL_CIDR_STATE, {_aQN: _St, _sN: _st}), + (IPAM_POOL_CIDR_FAILURE_REASON, {_aQN: _FRa, _sN: _fRa}), + (IPAM_POOL_CIDR_ID, {_aQN: _IPCIp, _sN: _iPCI}), + (INTEGER, {_aQN: _NL, _sN: _nL}), + ), +) + +DEPROVISION_IPAM_POOL_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPCO, + {_sSI: _cDIPCRo, _smit: None}, + (_IPCpa,), + ((IPAM_POOL_CIDR, {_aQN: _IPCpa, _sN: _iPCpa}),), +) + +DEPROVISION_IPAM_POOL_CIDR: StaticOperationSchema = ( + 23, + n0, + _DIPC, + 0, + DEPROVISION_IPAM_POOL_CIDR_INPUT, + DEPROVISION_IPAM_POOL_CIDR_OUTPUT, + (), +) + +DEPROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _DPIPCI, + {_sSI: _cDPIPCR, _sm: None}, + (_DR, _PIo, _Ci), + ((BOOLEAN, 0), (IPV4_POOL_EC2_ID, 1), (STRING, 1)), +) + +DEPROVISIONED_ADDRESS_SET: StaticSchema = ( + 16, + n0, + _DASe, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +DEPROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _DPIPCO, + {_sSI: _cDPIPCRo, _smit: None}, + (_PIo, _DAep), + ( + (IPV4_POOL_EC2_ID, {_aQN: _PIo, _sN: _pIo}), + (DEPROVISIONED_ADDRESS_SET, {_aQN: _DASe, _sN: _dASe}), + ), +) + +DEPROVISION_PUBLIC_IPV4_POOL_CIDR: StaticOperationSchema = ( + 23, + n0, + _DPIPC, + 0, + DEPROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT, + DEPROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT, + (), +) + +DEREGISTER_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _DIIe, + {_sSI: _cDIRom, _sm: None}, + (_IIm, _DASel, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +SNAPSHOT_RETURN_CODES: StaticSchema = ( + 14, + n0, + _SRC, + 0, + (_SUCCESS, _WS, _EMP, _ECIE, _ECCE), + ( + (-1, {_sV: _succe}), + (-1, {_sV: _ski}), + (-1, {_sV: _mp}), + (-1, {_sV: _ie____}), + (-1, {_sV: _ce}), + ), +) + +DELETE_SNAPSHOT_RETURN_CODE: StaticSchema = ( + 18, + n0, + _DSRC, + 0, + (_SIn, _RCe), + ( + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (SNAPSHOT_RETURN_CODES, {_aQN: _RCe, _sN: _rC}), + ), +) + +DELETE_SNAPSHOT_RESULT_SET: StaticSchema = ( + 16, + n0, + _DSRS, + 0, + (_me,), + ((DELETE_SNAPSHOT_RETURN_CODE, {_sN: _i}),), +) + +DEREGISTER_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOe, + {_sSI: _cDIRoma, _smit: None}, + (_R, _DSR), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (DELETE_SNAPSHOT_RESULT_SET, {_aQN: _DSRS, _sN: _dSRS}), + ), +) + +DEREGISTER_IMAGE: StaticOperationSchema = ( + 23, + n0, + _DIer, + 0, + DEREGISTER_IMAGE_INPUT, + DEREGISTER_IMAGE_OUTPUT, + (), +) + +INSTANCE_TAG_KEY_SET: StaticSchema = (16, n0, _ITKS, 0, (_me,), ((STRING, {_sN: _i}),)) + +DEREGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST: StaticSchema = ( + 18, + n0, + _DITAR, + 0, + (_IATOI, _ITK), + ((BOOLEAN, 0), (INSTANCE_TAG_KEY_SET, {_sN: _ITKn})), +) + +DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DIENAI, + {_sSI: _cDIENAR, _sm: None}, + (_DR, _ITA), + ((BOOLEAN, 0), (DEREGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST, 1)), +) + +INSTANCE_TAG_NOTIFICATION_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _ITNA, + 0, + (_ITK, _IATOI), + ( + (INSTANCE_TAG_KEY_SET, {_aQN: _ITKS, _sN: _iTKS}), + (BOOLEAN, {_aQN: _IATOI, _sN: _iATOI}), + ), +) + +DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIENAO, + {_sSI: _cDIENARo, _smit: None}, + (_ITA,), + ((INSTANCE_TAG_NOTIFICATION_ATTRIBUTE, {_aQN: _ITA, _sN: _iTA}),), +) + +DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DIENA, + 0, + DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT, + DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT, + (), +) + +TRANSIT_GATEWAY_NETWORK_INTERFACE_ID_LIST: StaticSchema = ( + 16, + n0, + _TGNIIL, + 0, + (_me,), + ((NETWORK_INTERFACE_ID, {_sN: _i}),), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT: StaticSchema = ( + 18, + n0, + _DTGMGMI, + {_sSI: _cDTGMGMR, _sm: None}, + (_TGMDI, _GIA, _NIIe, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 0), + (STRING, 0), + (TRANSIT_GATEWAY_NETWORK_INTERFACE_ID_LIST, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_MEMBERS: StaticSchema = ( + 18, + n0, + _TGMDGM, + 0, + (_TGMDI, _DNIIe, _GIA), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (VALUE_STRING_LIST, {_aQN: _DNIIe, _sN: _dNII}), + (STRING, {_aQN: _GIA, _sN: _gIA}), + ), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMGMO, + {_sSI: _cDTGMGMRo, _smit: None}, + (_DMGM,), + ( + ( + TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_MEMBERS, + {_aQN: _DMGM, _sN: _dMGM}, + ), + ), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS: StaticOperationSchema = ( + 23, + n0, + _DTGMGM, + 0, + DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT, + DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT, + (), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT: StaticSchema = ( + 18, + n0, + _DTGMGSI, + {_sSI: _cDTGMGSR, _sm: None}, + (_TGMDI, _GIA, _NIIe, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 0), + (STRING, 0), + (TRANSIT_GATEWAY_NETWORK_INTERFACE_ID_LIST, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_SOURCES: StaticSchema = ( + 18, + n0, + _TGMDGS, + 0, + (_TGMDI, _DNIIe, _GIA), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (VALUE_STRING_LIST, {_aQN: _DNIIe, _sN: _dNII}), + (STRING, {_aQN: _GIA, _sN: _gIA}), + ), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMGSO, + {_sSI: _cDTGMGSRo, _smit: None}, + (_DMGS,), + ( + ( + TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_SOURCES, + {_aQN: _DMGS, _sN: _dMGS}, + ), + ), +) + +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES: StaticOperationSchema = ( + 23, + n0, + _DTGMGS, + 0, + DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT, + DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT, + (), +) + +DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DAAI, + {_sSI: _cDAAR, _sm: None}, + (_DR, _ANtt), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ACCOUNT_ATTRIBUTE_NAME_STRING_LIST, {_aQN: _ANt, _sN: _aN}), + ), +) + +DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DAAO, + {_sSI: _cDAARo, _smit: None}, + (_AAc,), + ((ACCOUNT_ATTRIBUTE_LIST, {_aQN: _AASc, _sN: _aASc}),), +) + +DESCRIBE_ACCOUNT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DAA, + 0, + DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT, + DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT, + (), +) + +DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _DAVECI, + {_sSI: _cDAVECR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _DAVECO, + {_sSI: _cDAVECRo, _smit: None}, + (_AVECc,), + ((ACCOUNT_VPC_ENCRYPTION_CONTROL, {_aQN: _AVECc, _sN: _aVEC}),), +) + +DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL: StaticOperationSchema = ( + 23, + n0, + _DAVEC, + 0, + DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT, + DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT, + (), +) + +FILTER: StaticSchema = ( + 18, + n0, + _Fi, + 0, + (_N, _Val), + ((STRING, 0), (VALUE_STRING_LIST, {_sN: _Va})), +) + +FILTER_LIST: StaticSchema = (16, n0, _FL, 0, (_me,), ((FILTER, {_sN: _Fi}),)) + +PUBLIC_IP_STRING_LIST: StaticSchema = ( + 16, + n0, + _PISL, + 0, + (_me,), + ((STRING, {_sN: _PI}),), +) + +DESCRIBE_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _DAI, + {_sSI: _cDAR, _sm: None}, + (_PIu, _DR, _Fil, _AIl), + ( + (PUBLIC_IP_STRING_LIST, {_sN: _PI}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (ALLOCATION_ID_LIST, {_sN: _AI}), + ), +) + +DESCRIBE_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _DAO, + {_sSI: _cDARo, _smit: None}, + (_Add,), + ((ADDRESS_LIST, {_aQN: _ASdd, _sN: _aSdd}),), +) + +DESCRIBE_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _DAesc, + 0, + DESCRIBE_ADDRESSES_INPUT, + DESCRIBE_ADDRESSES_OUTPUT, + (), +) + +NEXT_TOKEN: StaticSchema = (3, n0, _NTex, 0) + +DESCRIBE_ADDRESSES_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DAAIe, + {_sSI: _cDAARom, _sm: None}, + (_AIl, _Attr, _NTex, _MR, _DR), + ( + (ALLOCATION_IDS, {_sN: _AI}), + (ADDRESS_ATTRIBUTE_NAME, 0), + (NEXT_TOKEN, 0), + (ADDRESS_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +DESCRIBE_ADDRESSES_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DAAOe, + {_sSI: _cDAARoma, _smit: None}, + (_Add, _NTex), + ((ADDRESS_SET, {_aQN: _AS, _sN: _aS}), (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_ADDRESSES_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DAAe, + 0, + DESCRIBE_ADDRESSES_ATTRIBUTE_INPUT, + DESCRIBE_ADDRESSES_ATTRIBUTE_OUTPUT, + (), +) + +DESCRIBE_ADDRESS_TRANSFERS_MAX_RESULTS: StaticSchema = (7, n0, _DATMR, 0) + +DESCRIBE_ADDRESS_TRANSFERS_INPUT: StaticSchema = ( + 18, + n0, + _DATI, + {_sSI: _cDATR, _sm: None}, + (_AIl, _NTex, _MR, _DR), + ( + (ALLOCATION_ID_LIST, {_sN: _AI}), + (STRING, 0), + (DESCRIBE_ADDRESS_TRANSFERS_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +DESCRIBE_ADDRESS_TRANSFERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DATO, + {_sSI: _cDATRo, _smit: None}, + (_ATdd, _NTex), + ( + (ADDRESS_TRANSFER_LIST, {_aQN: _ATSdd, _sN: _aTSd}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_ADDRESS_TRANSFERS: StaticOperationSchema = ( + 23, + n0, + _DATe, + 0, + DESCRIBE_ADDRESS_TRANSFERS_INPUT, + DESCRIBE_ADDRESS_TRANSFERS_OUTPUT, + (), +) + +DESCRIBE_AGGREGATE_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _DAIFI, + {_sSI: _cDAIFR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +ID_FORMAT: StaticSchema = ( + 18, + n0, + _IFd, + 0, + (_Dea, _Reso, _ULI), + ( + (DATE_TIME, {_aQN: _Dea, _sN: _dea}), + (STRING, {_aQN: _Reso, _sN: _reso}), + (BOOLEAN, {_aQN: _ULI, _sN: _uLI}), + ), +) + +ID_FORMAT_LIST: StaticSchema = (16, n0, _IFL, 0, (_me,), ((ID_FORMAT, {_sN: _i}),)) + +DESCRIBE_AGGREGATE_ID_FORMAT_OUTPUT: StaticSchema = ( + 18, + n0, + _DAIFO, + {_sSI: _cDAIFRo, _smit: None}, + (_ULIA, _Statu), + ((BOOLEAN, {_aQN: _ULIA, _sN: _uLIA}), (ID_FORMAT_LIST, {_aQN: _SSta, _sN: _sSt})), +) + +DESCRIBE_AGGREGATE_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _DAIF, + 0, + DESCRIBE_AGGREGATE_ID_FORMAT_INPUT, + DESCRIBE_AGGREGATE_ID_FORMAT_OUTPUT, + (), +) + +DESCRIBE_APPLICATION_STATUS_MAX_RESULTS: StaticSchema = (7, n0, _DASMR, 0) + +DESCRIBE_APPLICATION_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DASI, + {_sSI: _cDASR, _sm: None}, + (_IIn, _Fil, _MR, _NTex, _DR), + ( + (INSTANCE_ID_LIST, {_sN: _II}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_APPLICATION_STATUS_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +APPLICATION_STATUS_REASON: StaticSchema = ( + 18, + n0, + _ASR, + 0, + (_C, _SCta, _P), + ( + (STRING, {_aQN: _C, _sN: _co}), + (INTEGER, {_aQN: _SCta, _sN: _sCt}), + (STRING, {_aQN: _P, _sN: _pro}), + ), +) + +APPLICATION_STATUS_CHECK_ENUM: StaticSchema = ( + 14, + n0, + _ASCE, + 0, + (_PASSED, _FAILED, _INITIALIZING, _ID_, _NA_), + ( + (-1, {_sV: _pas}), + (-1, {_sV: _fa}), + (-1, {_sV: _init}), + (-1, {_sV: _id_}), + (-1, {_sV: _na_____}), + ), +) + +APPLICATION_STATUS_DETAIL: StaticSchema = ( + 18, + n0, + _ASD, + 0, + (_ASCI, _CUT, _Ag, _Sta, _STS, _SStat, _Rea), + ( + (APPLICATION_STATUS_CHECK_ID, {_aQN: _ASCI, _sN: _aSCI}), + (MILLISECOND_DATE_TIME, {_aQN: _CUT, _sN: _cUT}), + (AGGREGATION_STATUS_ENUM, {_aQN: _Ag, _sN: _agg}), + (APPLICATION_STATUS_CHECK_ENUM, {_aQN: _Sta, _sN: _sta}), + (MILLISECOND_DATE_TIME, {_aQN: _STS, _sN: _sTS}), + (MILLISECOND_DATE_TIME, {_aQN: _SStat, _sN: _sSta}), + (APPLICATION_STATUS_REASON, {_aQN: _Rea, _sN: _rea}), + ), +) + +APPLICATION_STATUS_DETAIL_SET: StaticSchema = ( + 16, + n0, + _ASDS, + 0, + (_me,), + ((APPLICATION_STATUS_DETAIL, {_sN: _i}),), +) + +APPLICATION_STATUS_ENUM: StaticSchema = ( + 14, + n0, + _ASEp, + 0, + (_OK_, _IMPAIRED, _INITIALIZING, _ID_, _NA_, _SUPPRESSED), + ( + (-1, {_sV: _ok}), + (-1, {_sV: _imp}), + (-1, {_sV: _init}), + (-1, {_sV: _id_}), + (-1, {_sV: _na_____}), + (-1, {_sV: _sup}), + ), +) + +APPLICATION_STATUS: StaticSchema = ( + 18, + n0, + _ASp, + 0, + (_Sta, _STS, _SStat, _RAesu, _Det), + ( + (APPLICATION_STATUS_ENUM, {_aQN: _Sta, _sN: _sta}), + (MILLISECOND_DATE_TIME, {_aQN: _STS, _sN: _sTS}), + (MILLISECOND_DATE_TIME, {_aQN: _SStat, _sN: _sSta}), + (MILLISECOND_DATE_TIME, {_aQN: _RAesu, _sN: _rAes}), + (APPLICATION_STATUS_DETAIL_SET, {_aQN: _DSet, _sN: _dSet}), + ), +) + +INSTANCE_APPLICATION_STATUS: StaticSchema = ( + 18, + n0, + _IASn, + 0, + (_II, _AZ, _AZI, _ASp, _Tag), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (APPLICATION_STATUS, {_aQN: _ASp, _sN: _aSp}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +INSTANCE_APPLICATION_STATUS_SET: StaticSchema = ( + 16, + n0, + _IASS, + 0, + (_me,), + ((INSTANCE_APPLICATION_STATUS, {_sN: _i}),), +) + +APPLICATION_STATUSES_RESPONSE_TYPE: StaticSchema = ( + 18, + n0, + _ASRT, + 0, + (_Ins,), + ((INSTANCE_APPLICATION_STATUS_SET, {_aQN: _ISns, _sN: _iSn}),), +) + +DESCRIBE_APPLICATION_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DASO, + {_sSI: _cDASRo, _smit: None}, + (_ASpp, _NTex), + ( + (APPLICATION_STATUSES_RESPONSE_TYPE, {_aQN: _ASRT, _sN: _aSRT}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_APPLICATION_STATUS: StaticOperationSchema = ( + 23, + n0, + _DASes, + 0, + DESCRIBE_APPLICATION_STATUS_INPUT, + DESCRIBE_APPLICATION_STATUS_OUTPUT, + (), +) + +APPLICATION_STATUS_CHECK_ID_LIST: StaticSchema = ( + 16, + n0, + _ASCIL, + 0, + (_me,), + ((APPLICATION_STATUS_CHECK_ID, {_sN: _i}),), +) + +DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DASCAMR, + 0, +) + +DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DASCAI, + {_sSI: _cDASCAR, _sm: None}, + (_ASCIp, _Fil, _MR, _NTex, _DR), + ( + (APPLICATION_STATUS_CHECK_ID_LIST, {_sN: _ASCI}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +ASSOCIATION_TYPE_ENUM: StaticSchema = ( + 14, + n0, + _ATE, + 0, + (_TAG, _II_), + ((-1, {_sV: _tag}), (-1, {_sV: _ii_})), +) + +APPLICATION_STATUS_CHECK_ASSOCIATION_OBJECT: StaticSchema = ( + 18, + n0, + _ASCAO, + 0, + (_ASCI, _ATs, _Ke, _Va), + ( + (APPLICATION_STATUS_CHECK_ID, {_aQN: _ASCI, _sN: _aSCI}), + (ASSOCIATION_TYPE_ENUM, {_aQN: _ATs, _sN: _aTs}), + (STRING, {_aQN: _Ke, _sN: _ke}), + (STRING, {_aQN: _Va, _sN: _va}), + ), +) + +APPLICATION_STATUS_CHECK_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _ASCAS, + 0, + (_me,), + ((APPLICATION_STATUS_CHECK_ASSOCIATION_OBJECT, {_sN: _i}),), +) + +DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DASCAO, + {_sSI: _cDASCARo, _smit: None}, + (_As, _NTex, _Tag), + ( + (APPLICATION_STATUS_CHECK_ASSOCIATION_SET, {_aQN: _ASsso, _sN: _aSss}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DASCA, + 0, + DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_INPUT, + DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_APPLICATION_STATUS_CHECKS_MAX_RESULTS: StaticSchema = (7, n0, _DASCMR, 0) + +DESCRIBE_APPLICATION_STATUS_CHECKS_INPUT: StaticSchema = ( + 18, + n0, + _DASCIe, + {_sSI: _cDASCRom, _sm: None}, + (_ASCIp, _Fil, _MR, _NTex, _IAnc, _DR), + ( + (APPLICATION_STATUS_CHECK_ID_LIST, {_sN: _ASCI}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_APPLICATION_STATUS_CHECKS_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +APPLICATION_STATUS_CHECK_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _ASCRS, + 0, + (_me,), + ((APPLICATION_STATUS_CHECK_RESPONSE_OBJECT, {_sN: _i}),), +) + +DESCRIBE_APPLICATION_STATUS_CHECKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DASCOe, + {_sSI: _cDASCRoma, _smit: None}, + (_ASCpp, _NTex), + ( + (APPLICATION_STATUS_CHECK_RESPONSE_SET, {_aQN: _ASCS, _sN: _aSCS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_APPLICATION_STATUS_CHECKS: StaticOperationSchema = ( + 23, + n0, + _DASCe, + 0, + DESCRIBE_APPLICATION_STATUS_CHECKS_INPUT, + DESCRIBE_APPLICATION_STATUS_CHECKS_OUTPUT, + (), +) + +ZONE_ID_STRING_LIST: StaticSchema = (16, n0, _ZISL, 0, (_me,), ((STRING, {_sN: _ZI}),)) + +ZONE_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _ZNSL, + 0, + (_me,), + ((STRING, {_sN: _ZN}),), +) + +DESCRIBE_AVAILABILITY_ZONES_INPUT: StaticSchema = ( + 18, + n0, + _DAZIe, + {_sSI: _cDAZR, _sm: None}, + (_ZNo, _ZIo, _AAZ, _DR, _Fil), + ( + (ZONE_NAME_STRING_LIST, {_sN: _ZN}), + (ZONE_ID_STRING_LIST, {_sN: _ZI}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +AVAILABILITY_ZONE_GEOGRAPHY: StaticSchema = ( + 18, + n0, + _AZG, + 0, + (_N,), + ((STRING, {_aQN: _N, _sN: _nam}),), +) + +AVAILABILITY_ZONE_GEOGRAPHY_LIST: StaticSchema = ( + 16, + n0, + _AZGL, + 0, + (_me,), + ((AVAILABILITY_ZONE_GEOGRAPHY, {_sN: _i}),), +) + +AVAILABILITY_ZONE_MESSAGE: StaticSchema = ( + 18, + n0, + _AZM, + 0, + (_Me,), + ((STRING, {_aQN: _Me, _sN: _mes}),), +) + +AVAILABILITY_ZONE_MESSAGE_LIST: StaticSchema = ( + 16, + n0, + _AZML, + 0, + (_me,), + ((AVAILABILITY_ZONE_MESSAGE, {_sN: _i}),), +) + +AVAILABILITY_ZONE_OPT_IN_STATUS: StaticSchema = ( + 14, + n0, + _AZOIS, + 0, + (_oinr, _oi_, _noi), + ((-1, {_sV: _oinr_}), (-1, {_sV: _oi__}), (-1, {_sV: _noi_})), +) + +AVAILABILITY_ZONE_STATE: StaticSchema = ( + 14, + n0, + _AZSv, + 0, + (_av, _infor, _imp, _unav, _cons), + ( + (-1, {_sV: _av}), + (-1, {_sV: _infor}), + (-1, {_sV: _imp}), + (-1, {_sV: _unav}), + (-1, {_sV: _cons}), + ), +) + +AVAILABILITY_ZONE_SUB_GEOGRAPHY: StaticSchema = ( + 18, + n0, + _AZSG, + 0, + (_N,), + ((STRING, {_aQN: _N, _sN: _nam}),), +) + +AVAILABILITY_ZONE_SUB_GEOGRAPHY_LIST: StaticSchema = ( + 16, + n0, + _AZSGL, + 0, + (_me,), + ((AVAILABILITY_ZONE_SUB_GEOGRAPHY, {_sN: _i}),), +) + +AVAILABILITY_ZONE: StaticSchema = ( + 18, + n0, + _AZ, + 0, + (_OIS, _Mes, _RNe, _ZN, _ZI, _GN, _NBG, _ZT, _PZN, _PZI, _GLN, _Ge, _SGu, _St), + ( + (AVAILABILITY_ZONE_OPT_IN_STATUS, {_aQN: _OIS, _sN: _oIS}), + (AVAILABILITY_ZONE_MESSAGE_LIST, {_aQN: _MSe, _sN: _mSe}), + (STRING, {_aQN: _RNe, _sN: _rNe}), + (STRING, {_aQN: _ZN, _sN: _zN}), + (STRING, {_aQN: _ZI, _sN: _zI}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _ZT, _sN: _zT}), + (STRING, {_aQN: _PZN, _sN: _pZN}), + (STRING, {_aQN: _PZI, _sN: _pZI}), + (STRING, {_aQN: _GLN, _sN: _gLN}), + (AVAILABILITY_ZONE_GEOGRAPHY_LIST, {_aQN: _GSe, _sN: _gSe}), + (AVAILABILITY_ZONE_SUB_GEOGRAPHY_LIST, {_aQN: _SGSu, _sN: _sGSu}), + (AVAILABILITY_ZONE_STATE, {_aQN: _ZS, _sN: _zS}), + ), +) + +AVAILABILITY_ZONE_LIST: StaticSchema = ( + 16, + n0, + _AZL, + 0, + (_me,), + ((AVAILABILITY_ZONE, {_sN: _i}),), +) + +DESCRIBE_AVAILABILITY_ZONES_OUTPUT: StaticSchema = ( + 18, + n0, + _DAZO, + {_sSI: _cDAZRo, _smit: None}, + (_AZv,), + ((AVAILABILITY_ZONE_LIST, {_aQN: _AZIva, _sN: _aZIv}),), +) + +DESCRIBE_AVAILABILITY_ZONES: StaticOperationSchema = ( + 23, + n0, + _DAZe, + 0, + DESCRIBE_AVAILABILITY_ZONES_INPUT, + DESCRIBE_AVAILABILITY_ZONES_OUTPUT, + (), +) + +MAX_RESULTS_PARAM: StaticSchema = (7, n0, _MRP, 0) + +DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DANPMSI, + {_sSI: _cDANPMSR, _sm: None}, + (_MR, _NTex, _Fil, _DR), + ((MAX_RESULTS_PARAM, 0), (STRING, 0), (FILTER_LIST, {_sN: _Fi}), (BOOLEAN, 0)), +) + +METRIC_TYPE: StaticSchema = (14, n0, _MTe, 0, (_al__,), ((-1, {_sV: _al___}),)) + +PERIOD_TYPE: StaticSchema = ( + 14, + n0, + _PTe, + 0, + (_fm, _fm__, _oh, _th_, _od__, _ow_), + ( + (-1, {_sV: _fm_}), + (-1, {_sV: _fm___}), + (-1, {_sV: _oh_}), + (-1, {_sV: _th__}), + (-1, {_sV: _od___}), + (-1, {_sV: _ow__}), + ), +) + +STATISTIC_TYPE: StaticSchema = ( + 14, + n0, + _STta, + 0, + (_p_____________,), + ((-1, {_sV: _p_____________}),), +) + +SUBSCRIPTION: StaticSchema = ( + 18, + n0, + _Subs, + 0, + (_Sou, _De, _Met, _Stati, _Per), + ( + (STRING, {_aQN: _Sou, _sN: _so}), + (STRING, {_aQN: _De, _sN: _des}), + (METRIC_TYPE, {_aQN: _Met, _sN: _met}), + (STATISTIC_TYPE, {_aQN: _Stati, _sN: _stati}), + (PERIOD_TYPE, {_aQN: _Per, _sN: _peri}), + ), +) + +SUBSCRIPTION_LIST: StaticSchema = ( + 16, + n0, + _SLu, + 0, + (_me,), + ((SUBSCRIPTION, {_sN: _i}),), +) + +DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DANPMSO, + {_sSI: _cDANPMSRo, _smit: None}, + (_NTex, _Subsc), + ((STRING, {_aQN: _NTex, _sN: _nT}), (SUBSCRIPTION_LIST, {_aQN: _SSub, _sN: _sSu})), +) + +DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS: StaticOperationSchema = ( + 23, + n0, + _DANPMS, + 0, + DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_INPUT, + DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_OUTPUT, + (), +) + +BUNDLE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _BISL, + 0, + (_me,), + ((BUNDLE_ID, {_sN: _BIu}),), +) + +DESCRIBE_BUNDLE_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DBTI, + {_sSI: _cDBTR, _sm: None}, + (_BIund, _DR, _Fil), + ( + (BUNDLE_ID_STRING_LIST, {_sN: _BIu}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +BUNDLE_TASK_LIST: StaticSchema = (16, n0, _BTL, 0, (_me,), ((BUNDLE_TASK, {_sN: _i}),)) + +DESCRIBE_BUNDLE_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DBTO, + {_sSI: _cDBTRo, _smit: None}, + (_BTu,), + ((BUNDLE_TASK_LIST, {_aQN: _BITS, _sN: _bITS}),), +) + +DESCRIBE_BUNDLE_TASKS: StaticOperationSchema = ( + 23, + n0, + _DBT, + 0, + DESCRIBE_BUNDLE_TASKS_INPUT, + DESCRIBE_BUNDLE_TASKS_OUTPUT, + (), +) + +DESCRIBE_BYOIP_CIDRS_MAX_RESULTS: StaticSchema = (7, n0, _DBCMR, 0) + +DESCRIBE_BYOIP_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _DBCIe, + {_sSI: _cDBCRom, _sm: None}, + (_DR, _MR, _NTex), + ((BOOLEAN, 0), (DESCRIBE_BYOIP_CIDRS_MAX_RESULTS, 1), (NEXT_TOKEN, 0)), +) + +BYOIP_CIDR_SET: StaticSchema = (16, n0, _BCSy, 0, (_me,), ((BYOIP_CIDR, {_sN: _i}),)) + +DESCRIBE_BYOIP_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _DBCOe, + {_sSI: _cDBCRoma, _smit: None}, + (_BCy, _NTex), + ((BYOIP_CIDR_SET, {_aQN: _BCSy, _sN: _bCS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_BYOIP_CIDRS: StaticOperationSchema = ( + 23, + n0, + _DBCe, + 0, + DESCRIBE_BYOIP_CIDRS_INPUT, + DESCRIBE_BYOIP_CIDRS_OUTPUT, + (), +) + +DESCRIBE_FUTURE_CAPACITY_MAX_RESULTS: StaticSchema = (7, n0, _DFCMR, 0) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_INPUT: StaticSchema = ( + 18, + n0, + _DCBEHI, + {_sSI: _cDCBEHR, _sm: None}, + (_CRIa, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_RESERVATION_ID_SET, {_sN: _CRI}), + (STRING, 0), + (DESCRIBE_FUTURE_CAPACITY_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +OFFERING_ID: StaticSchema = (3, n0, _OI, 0) + +CAPACITY_BLOCK_EXTENSION_STATUS: StaticSchema = ( + 14, + n0, + _CBES, + 0, + (_PP, _PF___, _PS_), + ((-1, {_sV: _pp___}), (-1, {_sV: _pf_____}), (-1, {_sV: _ps})), +) + +CAPACITY_BLOCK_EXTENSION: StaticSchema = ( + 18, + n0, + _CBE, + 0, + ( + _CRI, + _IT, + _IC, + _AZ, + _AZI, + _CBEOI, + _CBEDH, + _CBES, + _CBEPD, + _CBESD, + _CBEED, + _UF, + _CC, + _ZT, + ), + ( + (CAPACITY_RESERVATION_ID, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (OFFERING_ID, {_aQN: _CBEOI, _sN: _cBEOI}), + (INTEGER, {_aQN: _CBEDH, _sN: _cBEDH}), + (CAPACITY_BLOCK_EXTENSION_STATUS, {_aQN: _CBES, _sN: _cBES}), + (MILLISECOND_DATE_TIME, {_aQN: _CBEPD, _sN: _cBEPD}), + (MILLISECOND_DATE_TIME, {_aQN: _CBESD, _sN: _cBESD}), + (MILLISECOND_DATE_TIME, {_aQN: _CBEED, _sN: _cBEED}), + (STRING, {_aQN: _UF, _sN: _uF}), + (STRING, {_aQN: _CC, _sN: _cC}), + (STRING, {_aQN: _ZT, _sN: _zT}), + ), +) + +CAPACITY_BLOCK_EXTENSION_SET: StaticSchema = ( + 16, + n0, + _CBESa, + 0, + (_me,), + ((CAPACITY_BLOCK_EXTENSION, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCBEHO, + {_sSI: _cDCBEHRo, _smit: None}, + (_CBEa, _NTex), + ( + (CAPACITY_BLOCK_EXTENSION_SET, {_aQN: _CBESa, _sN: _cBESa}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY: StaticOperationSchema = ( + 23, + n0, + _DCBEH, + 0, + DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_INPUT, + DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DCBEOMR, + 0, +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DCBEOI, + {_sSI: _cDCBEOR, _sm: None}, + (_DR, _CBEDH, _CRI, _NTex, _MR), + ( + (BOOLEAN, 0), + (INTEGER, 1), + (CAPACITY_RESERVATION_ID, 1), + (STRING, 0), + (DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_MAX_RESULTS, 0), + ), +) + +CAPACITY_BLOCK_EXTENSION_OFFERING: StaticSchema = ( + 18, + n0, + _CBEO, + 0, + (_CBEOI, _IT, _IC, _AZ, _AZI, _SDt, _CBESD, _CBEED, _CBEDH, _UF, _CC, _Ten, _ZT), + ( + (OFFERING_ID, {_aQN: _CBEOI, _sN: _cBEOI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _CBESD, _sN: _cBESD}), + (MILLISECOND_DATE_TIME, {_aQN: _CBEED, _sN: _cBEED}), + (INTEGER, {_aQN: _CBEDH, _sN: _cBEDH}), + (STRING, {_aQN: _UF, _sN: _uF}), + (STRING, {_aQN: _CC, _sN: _cC}), + (CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (STRING, {_aQN: _ZT, _sN: _zT}), + ), +) + +CAPACITY_BLOCK_EXTENSION_OFFERING_SET: StaticSchema = ( + 16, + n0, + _CBEOS, + 0, + (_me,), + ((CAPACITY_BLOCK_EXTENSION_OFFERING, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCBEOO, + {_sSI: _cDCBEORo, _smit: None}, + (_CBEOa, _NTex), + ( + (CAPACITY_BLOCK_EXTENSION_OFFERING_SET, {_aQN: _CBEOS, _sN: _cBEOS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DCBEO, + 0, + DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_INPUT, + DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_BLOCK_OFFERINGS_MAX_RESULTS: StaticSchema = (7, n0, _DCBOMR, 0) + +DESCRIBE_CAPACITY_BLOCK_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DCBOI, + {_sSI: _cDCBOR, _sm: None}, + (_DR, _IT, _IC, _SDR, _EDR, _CDH, _NTex, _MR, _UTl, _UC, _AAZ), + ( + (BOOLEAN, 0), + (STRING, 0), + (INTEGER, 0), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (INTEGER, 1), + (STRING, 0), + (DESCRIBE_CAPACITY_BLOCK_OFFERINGS_MAX_RESULTS, 0), + (STRING, 0), + (INTEGER, 0), + (BOOLEAN, 0), + ), +) + +CAPACITY_BLOCK_OFFERING: StaticSchema = ( + 18, + n0, + _CBO, + 0, + (_CBOI, _IT, _AZ, _IC, _SDt, _ED, _CBDH, _UF, _CC, _Ten, _UTl, _UC, _CBDM, _ZT), + ( + (OFFERING_ID, {_aQN: _CBOI, _sN: _cBOI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (INTEGER, {_aQN: _CBDH, _sN: _cBDH}), + (STRING, {_aQN: _UF, _sN: _uF}), + (STRING, {_aQN: _CC, _sN: _cC}), + (CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (STRING, {_aQN: _UTl, _sN: _uTl}), + (BOXED_INTEGER, {_aQN: _UC, _sN: _uC}), + (INTEGER, {_aQN: _CBDM, _sN: _cBDM}), + (STRING, {_aQN: _ZT, _sN: _zT}), + ), +) + +CAPACITY_BLOCK_OFFERING_SET: StaticSchema = ( + 16, + n0, + _CBOS, + 0, + (_me,), + ((CAPACITY_BLOCK_OFFERING, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCK_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCBOO, + {_sSI: _cDCBORo, _smit: None}, + (_CBOa, _NTex), + ( + (CAPACITY_BLOCK_OFFERING_SET, {_aQN: _CBOS, _sN: _cBOS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_BLOCK_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DCBO, + 0, + DESCRIBE_CAPACITY_BLOCK_OFFERINGS_INPUT, + DESCRIBE_CAPACITY_BLOCK_OFFERINGS_OUTPUT, + (), +) + +CAPACITY_BLOCK_IDS: StaticSchema = ( + 16, + n0, + _CBIa, + 0, + (_me,), + ((CAPACITY_BLOCK_ID, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCKS_MAX_RESULTS: StaticSchema = (7, n0, _DCBMR, 0) + +DESCRIBE_CAPACITY_BLOCKS_INPUT: StaticSchema = ( + 18, + n0, + _DCBI, + {_sSI: _cDCBR, _sm: None}, + (_CBIa, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_BLOCK_IDS, {_sN: _CBI}), + (STRING, 0), + (DESCRIBE_CAPACITY_BLOCKS_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +CAPACITY_BLOCK_RESOURCE_STATE: StaticSchema = ( + 14, + n0, + _CBRS, + 0, + (_act, _ex, _unav, _can, _fa, _sch, _pp__, _pf____), + ( + (-1, {_sV: _act}), + (-1, {_sV: _ex}), + (-1, {_sV: _unav}), + (-1, {_sV: _can}), + (-1, {_sV: _fa}), + (-1, {_sV: _sch}), + (-1, {_sV: _pp___}), + (-1, {_sV: _pf_____}), + ), +) + +CAPACITY_BLOCK: StaticSchema = ( + 18, + n0, + _CBa, + 0, + (_CBI, _UTl, _AZ, _AZI, _CRIa, _SDt, _ED, _CD, _St, _Tag), + ( + (CAPACITY_BLOCK_ID, {_aQN: _CBI, _sN: _cBI}), + (STRING, {_aQN: _UTl, _sN: _uTl}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (CAPACITY_RESERVATION_ID_SET, {_aQN: _CRIS, _sN: _cRIS}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (MILLISECOND_DATE_TIME, {_aQN: _CD, _sN: _cD}), + (CAPACITY_BLOCK_RESOURCE_STATE, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CAPACITY_BLOCK_SET: StaticSchema = ( + 16, + n0, + _CBSa, + 0, + (_me,), + ((CAPACITY_BLOCK, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCBOe, + {_sSI: _cDCBRo, _smit: None}, + (_CBap, _NTex), + ( + (CAPACITY_BLOCK_SET, {_aQN: _CBSa, _sN: _cBSa}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_BLOCKS: StaticOperationSchema = ( + 23, + n0, + _DCBe, + 0, + DESCRIBE_CAPACITY_BLOCKS_INPUT, + DESCRIBE_CAPACITY_BLOCKS_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_BLOCK_STATUS_MAX_RESULTS: StaticSchema = (7, n0, _DCBSMR, 0) + +DESCRIBE_CAPACITY_BLOCK_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DCBSI, + {_sSI: _cDCBSR, _sm: None}, + (_CBIa, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_BLOCK_IDS, {_sN: _CBI}), + (STRING, 0), + (DESCRIBE_CAPACITY_BLOCK_STATUS_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_STATUS: StaticSchema = ( + 18, + n0, + _CRSap, + 0, + (_CRI, _TCo, _TAC, _TUC), + ( + (CAPACITY_RESERVATION_ID, {_aQN: _CRI, _sN: _cRI}), + (INTEGER, {_aQN: _TCo, _sN: _tC}), + (INTEGER, {_aQN: _TAC, _sN: _tAC}), + (INTEGER, {_aQN: _TUC, _sN: _tUC}), + ), +) + +CAPACITY_RESERVATION_STATUS_SET: StaticSchema = ( + 16, + n0, + _CRSS, + 0, + (_me,), + ((CAPACITY_RESERVATION_STATUS, {_sN: _i}),), +) + +CAPACITY_BLOCK_INTERCONNECT_STATUS: StaticSchema = ( + 14, + n0, + _CBIS, + 0, + (_ok, _imp, _id__), + ((-1, {_sV: _ok}), (-1, {_sV: _imp}), (-1, {_sV: _id_})), +) + +CAPACITY_BLOCK_STATUS: StaticSchema = ( + 18, + n0, + _CBSap, + 0, + (_CBI, _ISnt, _TCo, _TAC, _TUC, _CRSapa), + ( + (CAPACITY_BLOCK_ID, {_aQN: _CBI, _sN: _cBI}), + (CAPACITY_BLOCK_INTERCONNECT_STATUS, {_aQN: _ISnt, _sN: _iSnt}), + (INTEGER, {_aQN: _TCo, _sN: _tC}), + (INTEGER, {_aQN: _TAC, _sN: _tAC}), + (INTEGER, {_aQN: _TUC, _sN: _tUC}), + (CAPACITY_RESERVATION_STATUS_SET, {_aQN: _CRSS, _sN: _cRSS}), + ), +) + +CAPACITY_BLOCK_STATUS_SET: StaticSchema = ( + 16, + n0, + _CBSS, + 0, + (_me,), + ((CAPACITY_BLOCK_STATUS, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_BLOCK_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCBSO, + {_sSI: _cDCBSRo, _smit: None}, + (_CBSapa, _NTex), + ( + (CAPACITY_BLOCK_STATUS_SET, {_aQN: _CBSS, _sN: _cBSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_BLOCK_STATUS: StaticOperationSchema = ( + 23, + n0, + _DCBS, + 0, + DESCRIBE_CAPACITY_BLOCK_STATUS_INPUT, + DESCRIBE_CAPACITY_BLOCK_STATUS_OUTPUT, + (), +) + +CAPACITY_MANAGER_DATA_EXPORT_ID_SET: StaticSchema = ( + 16, + n0, + _CMDEIS, + 0, + (_me,), + ((CAPACITY_MANAGER_DATA_EXPORT_ID, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DCMDERMR, + 0, +) + +DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_INPUT: StaticSchema = ( + 18, + n0, + _DCMDEIe, + {_sSI: _cDCMDERom, _sm: None}, + (_CMDEIa, _MR, _NTex, _DR, _Fil), + ( + (CAPACITY_MANAGER_DATA_EXPORT_ID_SET, {_sN: _CMDEI}), + (DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_REQUEST_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +CAPACITY_MANAGER_DATA_EXPORT_STATUS: StaticSchema = ( + 14, + n0, + _CMDES, + 0, + (_PENDING, _IP_, _DELIVERED, _FAILED), + ((-1, {_sV: _p}), (-1, {_sV: _ip_____}), (-1, {_sV: _deli}), (-1, {_sV: _fa})), +) + +CAPACITY_MANAGER_DATA_EXPORT_RESPONSE: StaticSchema = ( + 18, + n0, + _CMDER, + 0, + (_CMDEI, _SBN, _SBP, _Sch, _OF, _CTr, _LDS, _LDSM, _LDSLU, _LDTa, _Tag), + ( + (CAPACITY_MANAGER_DATA_EXPORT_ID, {_aQN: _CMDEI, _sN: _cMDEI}), + (STRING, {_aQN: _SBN, _sN: _sBN}), + (STRING, {_aQN: _SBP, _sN: _sBP}), + (SCHEDULE, {_aQN: _Sch, _sN: _sche}), + (OUTPUT_FORMAT, {_aQN: _OF, _sN: _oF}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (CAPACITY_MANAGER_DATA_EXPORT_STATUS, {_aQN: _LDS, _sN: _lDS}), + (STRING, {_aQN: _LDSM, _sN: _lDSM}), + (STRING, {_aQN: _LDSLU, _sN: _lDSLU}), + (MILLISECOND_DATE_TIME, {_aQN: _LDTa, _sN: _lDT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CAPACITY_MANAGER_DATA_EXPORT_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _CMDERS, + 0, + (_me,), + ((CAPACITY_MANAGER_DATA_EXPORT_RESPONSE, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCMDEOe, + {_sSI: _cDCMDERoma, _smit: None}, + (_CMDE, _NTex), + ( + (CAPACITY_MANAGER_DATA_EXPORT_RESPONSE_SET, {_aQN: _CMDESa, _sN: _cMDES}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS: StaticOperationSchema = ( + 23, + n0, + _DCMDEe, + 0, + DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_INPUT, + DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DCRBRRMR, + 0, +) + +CALLER_ROLE: StaticSchema = ( + 14, + n0, + _CRal, + 0, + (_oo, _urbo), + ((-1, {_sV: _oo_}), (-1, {_sV: _urbo_})), +) + +DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _DCRBRI, + {_sSI: _cDCRBRR, _sm: None}, + (_CRIa, _Ro, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_RESERVATION_ID_SET, {_sN: _CRI}), + (CALLER_ROLE, 1), + (STRING, 0), + (DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_REQUEST_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_INFO: StaticSchema = ( + 18, + n0, + _CRIap, + 0, + (_IT, _AZ, _Ten, _AZI), + ( + (STRING, {_aQN: _IT, _sN: _iT}), + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + ), +) + +CAPACITY_RESERVATION_BILLING_REQUEST_STATUS: StaticSchema = ( + 14, + n0, + _CRBRS, + 0, + (_p, _ac, _re, _can, _revo, _ex), + ( + (-1, {_sV: _p}), + (-1, {_sV: _ac}), + (-1, {_sV: _re}), + (-1, {_sV: _can}), + (-1, {_sV: _revo}), + (-1, {_sV: _ex}), + ), +) + +CAPACITY_RESERVATION_BILLING_REQUEST: StaticSchema = ( + 18, + n0, + _CRBR, + 0, + (_CRI, _RB, _URBOI, _LUTas, _Sta, _SMt, _CRIap), + ( + (STRING, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _RB, _sN: _rBe}), + (ACCOUNT_ID, {_aQN: _URBOI, _sN: _uRBOI}), + (MILLISECOND_DATE_TIME, {_aQN: _LUTas, _sN: _lUTas}), + (CAPACITY_RESERVATION_BILLING_REQUEST_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (CAPACITY_RESERVATION_INFO, {_aQN: _CRIap, _sN: _cRIa}), + ), +) + +CAPACITY_RESERVATION_BILLING_REQUEST_SET: StaticSchema = ( + 16, + n0, + _CRBRSa, + 0, + (_me,), + ((CAPACITY_RESERVATION_BILLING_REQUEST, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRBRO, + {_sSI: _cDCRBRRo, _smit: None}, + (_NTex, _CRBRa), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (CAPACITY_RESERVATION_BILLING_REQUEST_SET, {_aQN: _CRBRSa, _sN: _cRBRS}), + ), +) + +DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _DCRBR, + 0, + DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_INPUT, + DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_OUTPUT, + (), +) + +CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID_SET: StaticSchema = ( + 16, + n0, + _CRCQIS, + 0, + (_me,), + ((CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DCRCQRMR, + 0, +) + +DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_INPUT: StaticSchema = ( + 18, + n0, + _DCRCQI, + {_sSI: _cDCRCQR, _sm: None}, + (_CRCQIa, _MR, _NTex, _DR, _Fil), + ( + (CAPACITY_RESERVATION_CANCELLATION_QUOTE_ID_SET, {_sN: _CRCQI}), + (DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_REQUEST_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +CAPACITY_RESERVATION_CANCELLATION_QUOTE_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _CRCQRS, + 0, + (_me,), + ((CAPACITY_RESERVATION_CANCELLATION_QUOTE, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRCQO, + {_sSI: _cDCRCQRo, _smit: None}, + (_CRCQa, _NTex), + ( + ( + CAPACITY_RESERVATION_CANCELLATION_QUOTE_RESPONSE_SET, + {_aQN: _CRCQSa, _sN: _cRCQS}, + ), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES: StaticOperationSchema = ( + 23, + n0, + _DCRCQ, + 0, + DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_INPUT, + DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_OUTPUT, + (), +) + +CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID_SET: StaticSchema = ( + 16, + n0, + _CRMQIS, + 0, + (_me,), + ((CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DCRDCQRMR, + 0, +) + +DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_INPUT: StaticSchema = ( + 18, + n0, + _DCRDCQI, + {_sSI: _cDCRDCQR, _sm: None}, + (_CRMQIa, _MR, _NTex, _DR, _Fil), + ( + (CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID_SET, {_sN: _CRMQI}), + (DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_REQUEST_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +CAPACITY_RESERVATION_MODIFICATION_QUOTE_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _CRMQRS, + 0, + (_me,), + ((CAPACITY_RESERVATION_MODIFICATION_QUOTE, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRDCQO, + {_sSI: _cDCRDCQRo, _smit: None}, + (_CRMQa, _NTex), + ( + ( + CAPACITY_RESERVATION_MODIFICATION_QUOTE_RESPONSE_SET, + {_aQN: _CRMQSa, _sN: _cRMQS}, + ), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES: StaticOperationSchema = ( + 23, + n0, + _DCRDCQ, + 0, + DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_INPUT, + DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_RESERVATION_FLEETS_MAX_RESULTS: StaticSchema = (7, n0, _DCRFMR, 0) + +DESCRIBE_CAPACITY_RESERVATION_FLEETS_INPUT: StaticSchema = ( + 18, + n0, + _DCRFI, + {_sSI: _cDCRFR, _sm: None}, + (_CRFIa, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_RESERVATION_FLEET_ID_SET, {_sN: _CRFI}), + (STRING, 0), + (DESCRIBE_CAPACITY_RESERVATION_FLEETS_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_FLEET: StaticSchema = ( + 18, + n0, + _CRF, + 0, + ( + _CRFI, + _CRFA, + _St, + _TTC, + _TFC, + _Ten, + _ED, + _CTr, + _IMC, + _ASll, + _ITS, + _IRn, + _AZ, + _AZI, + _Tag, + ), + ( + (CAPACITY_RESERVATION_FLEET_ID, {_aQN: _CRFI, _sN: _cRFI}), + (STRING, {_aQN: _CRFA, _sN: _cRFA}), + (CAPACITY_RESERVATION_FLEET_STATE, {_aQN: _St, _sN: _st}), + (INTEGER, {_aQN: _TTC, _sN: _tTC}), + (DOUBLE, {_aQN: _TFC, _sN: _tFC}), + (FLEET_CAPACITY_RESERVATION_TENANCY, {_aQN: _Ten, _sN: _ten}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (FLEET_INSTANCE_MATCH_CRITERIA, {_aQN: _IMC, _sN: _iMC}), + (STRING, {_aQN: _ASll, _sN: _aSl}), + (FLEET_CAPACITY_RESERVATION_SET, {_aQN: _ITSS, _sN: _iTSS}), + (INSTANCE_REQUIREMENTS_REQUEST, {_aQN: _IRn, _sN: _iRn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +CAPACITY_RESERVATION_FLEET_SET: StaticSchema = ( + 16, + n0, + _CRFSa, + 0, + (_me,), + ((CAPACITY_RESERVATION_FLEET, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_FLEETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRFO, + {_sSI: _cDCRFRo, _smit: None}, + (_CRFa, _NTex), + ( + (CAPACITY_RESERVATION_FLEET_SET, {_aQN: _CRFSa, _sN: _cRFS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CAPACITY_RESERVATION_FLEETS: StaticOperationSchema = ( + 23, + n0, + _DCRF, + 0, + DESCRIBE_CAPACITY_RESERVATION_FLEETS_INPUT, + DESCRIBE_CAPACITY_RESERVATION_FLEETS_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_RESERVATIONS_MAX_RESULTS: StaticSchema = (7, n0, _DCRMR, 0) + +DESCRIBE_CAPACITY_RESERVATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DCRI, + {_sSI: _cDCRR, _sm: None}, + (_CRIa, _NTex, _MR, _Fil, _DR), + ( + (CAPACITY_RESERVATION_ID_SET, {_sN: _CRI}), + (STRING, 0), + (DESCRIBE_CAPACITY_RESERVATIONS_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_SET: StaticSchema = ( + 16, + n0, + _CRSapac, + 0, + (_me,), + ((CAPACITY_RESERVATION, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRO, + {_sSI: _cDCRRo, _smit: None}, + (_NTex, _CRapac), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (CAPACITY_RESERVATION_SET, {_aQN: _CRSapac, _sN: _cRSa}), + ), +) + +DESCRIBE_CAPACITY_RESERVATIONS: StaticOperationSchema = ( + 23, + n0, + _DCRe, + 0, + DESCRIBE_CAPACITY_RESERVATIONS_INPUT, + DESCRIBE_CAPACITY_RESERVATIONS_OUTPUT, + (), +) + +DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_MAX_RESULTS: StaticSchema = (7, n0, _DCRTMR, 0) + +DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_INPUT: StaticSchema = ( + 18, + n0, + _DCRTI, + {_sSI: _cDCRTR, _sm: None}, + (_DR, _NTex, _MR, _CRIa, _Fil), + ( + (BOOLEAN, 0), + (STRING, 0), + (DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_MAX_RESULTS, 0), + (CAPACITY_RESERVATION_ID_SET, {_sN: _CRI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +NETWORK_NODE_SET: StaticSchema = (16, n0, _NNS, 0, (_me,), ((STRING, {_sN: _i}),)) + +CAPACITY_RESERVATION_TOPOLOGY: StaticSchema = ( + 18, + n0, + _CRTapa, + 0, + (_CRI, _CBI, _St, _IT, _GN, _NN, _AZI, _AZ), + ( + (STRING, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _CBI, _sN: _cBI}), + (STRING, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _GN, _sN: _gN}), + (NETWORK_NODE_SET, {_aQN: _NNS, _sN: _nNS}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + ), +) + +CAPACITY_RESERVATION_TOPOLOGY_SET: StaticSchema = ( + 16, + n0, + _CRTS, + 0, + (_me,), + ((CAPACITY_RESERVATION_TOPOLOGY, {_sN: _i}),), +) + +DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRTO, + {_sSI: _cDCRTRo, _smit: None}, + (_NTex, _CRapac), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (CAPACITY_RESERVATION_TOPOLOGY_SET, {_aQN: _CRSapac, _sN: _cRSa}), + ), +) + +DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY: StaticOperationSchema = ( + 23, + n0, + _DCRT, + 0, + DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_INPUT, + DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_OUTPUT, + (), +) + +CARRIER_GATEWAY_ID_SET: StaticSchema = ( + 16, + n0, + _CGIS, + 0, + (_me,), + ((CARRIER_GATEWAY_ID, 0),), +) + +CARRIER_GATEWAY_MAX_RESULTS: StaticSchema = (7, n0, _CGMR, 0) + +DESCRIBE_CARRIER_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DCGIes, + {_sSI: _cDCGRoma, _sm: None}, + (_CGIa, _Fil, _MR, _NTex, _DR), + ( + (CARRIER_GATEWAY_ID_SET, {_sN: _CGI}), + (FILTER_LIST, {_sN: _Fi}), + (CARRIER_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +CARRIER_GATEWAY_SET: StaticSchema = ( + 16, + n0, + _CGSa, + 0, + (_me,), + ((CARRIER_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_CARRIER_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCGOes, + {_sSI: _cDCGRomam, _smit: None}, + (_CGar, _NTex), + ( + (CARRIER_GATEWAY_SET, {_aQN: _CGSa, _sN: _cGS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CARRIER_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DCGes, + 0, + DESCRIBE_CARRIER_GATEWAYS_INPUT, + DESCRIBE_CARRIER_GATEWAYS_OUTPUT, + (), +) + +INSTANCE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _IISL, + 0, + (_me,), + ((INSTANCE_ID, {_sN: _II}),), +) + +DESCRIBE_CLASSIC_LINK_INSTANCES_MAX_RESULTS: StaticSchema = (7, n0, _DCLIMR, 0) + +DESCRIBE_CLASSIC_LINK_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DCLII, + {_sSI: _cDCLIR, _sm: None}, + (_DR, _IIn, _Fil, _NTex, _MR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (DESCRIBE_CLASSIC_LINK_INSTANCES_MAX_RESULTS, {_aQN: _MR, _sN: _mR}), + ), +) + +CLASSIC_LINK_INSTANCE: StaticSchema = ( + 18, + n0, + _CLI, + 0, + (_G, _II, _Tag, _VI), + ( + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (STRING, {_aQN: _II, _sN: _iI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +CLASSIC_LINK_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _CLIL, + 0, + (_me,), + ((CLASSIC_LINK_INSTANCE, {_sN: _i}),), +) + +DESCRIBE_CLASSIC_LINK_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCLIO, + {_sSI: _cDCLIRo, _smit: None}, + (_Ins, _NTex), + ( + (CLASSIC_LINK_INSTANCE_LIST, {_aQN: _ISnst, _sN: _iSns}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CLASSIC_LINK_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DCLI, + 0, + DESCRIBE_CLASSIC_LINK_INSTANCES_INPUT, + DESCRIBE_CLASSIC_LINK_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_MAX_RESULTS: StaticSchema = (7, n0, _DCVARMR, 0) + +DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_INPUT: StaticSchema = ( + 18, + n0, + _DCVARI, + {_sSI: _cDCVARR, _sm: None}, + (_CVEI, _DR, _NTex, _Fil, _MR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (BOOLEAN, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_MAX_RESULTS, 0), + ), +) + +AUTHORIZATION_RULE: StaticSchema = ( + 18, + n0, + _ARut, + 0, + (_CVEI, _Des, _GIr, _AAcc, _DC, _Sta), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _GIr, _sN: _gIr}), + (BOOLEAN, {_aQN: _AAcc, _sN: _aAc}), + (STRING, {_aQN: _DC, _sN: _dC}), + (CLIENT_VPN_AUTHORIZATION_RULE_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +AUTHORIZATION_RULE_SET: StaticSchema = ( + 16, + n0, + _ARSu, + 0, + (_me,), + ((AUTHORIZATION_RULE, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVARO, + {_sSI: _cDCVARRo, _smit: None}, + (_ARuth, _NTex), + ( + (AUTHORIZATION_RULE_SET, {_aQN: _ARut, _sN: _aRut}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES: StaticOperationSchema = ( + 23, + n0, + _DCVAR, + 0, + DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_INPUT, + DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_OUTPUT, + (), +) + +DESCRIBE_CLIENT_VPN_CONNECTIONS_MAX_RESULTS: StaticSchema = (7, n0, _DCVCMR, 0) + +DESCRIBE_CLIENT_VPN_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DCVCI, + {_sSI: _cDCVCR, _sm: None}, + (_CVEI, _Fil, _NTex, _MR, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (DESCRIBE_CLIENT_VPN_CONNECTIONS_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +CLIENT_VPN_CONNECTION_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CVCSC, + 0, + (_act, _ftt, _termi, _termin), + ((-1, {_sV: _act}), (-1, {_sV: _ftt_}), (-1, {_sV: _termi}), (-1, {_sV: _termin})), +) + +CLIENT_VPN_CONNECTION_STATUS: StaticSchema = ( + 18, + n0, + _CVCS, + 0, + (_C, _Me), + ( + (CLIENT_VPN_CONNECTION_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +CLIENT_VPN_CONNECTION: StaticSchema = ( + 18, + n0, + _CVCl, + 0, + ( + _CVEI, + _Ti, + _CIon, + _Use, + _CETo, + _IB, + _EB, + _IPng, + _EPg, + _CIli, + _CIA, + _CNom, + _Sta, + _CETon, + _PCSo, + _APLET, + ), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _Ti, _sN: _ti}), + (STRING, {_aQN: _CIon, _sN: _cIon}), + (STRING, {_aQN: _Use, _sN: _user}), + (STRING, {_aQN: _CETo, _sN: _cET}), + (STRING, {_aQN: _IB, _sN: _iB}), + (STRING, {_aQN: _EB, _sN: _eB}), + (STRING, {_aQN: _IPng, _sN: _iPng}), + (STRING, {_aQN: _EPg, _sN: _eP}), + (STRING, {_aQN: _CIli, _sN: _cIli}), + (STRING, {_aQN: _CIA, _sN: _cIA}), + (STRING, {_aQN: _CNom, _sN: _cNo}), + (CLIENT_VPN_CONNECTION_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _CETon, _sN: _cETo}), + (VALUE_STRING_LIST, {_aQN: _PCSS, _sN: _pCSS}), + (STRING, {_aQN: _APLET, _sN: _aPLET}), + ), +) + +CLIENT_VPN_CONNECTION_SET: StaticSchema = ( + 16, + n0, + _CVCSl, + 0, + (_me,), + ((CLIENT_VPN_CONNECTION, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVCO, + {_sSI: _cDCVCRo, _smit: None}, + (_Conn, _NTex), + ( + (CLIENT_VPN_CONNECTION_SET, {_aQN: _Conn, _sN: _conn}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CLIENT_VPN_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _DCVC, + 0, + DESCRIBE_CLIENT_VPN_CONNECTIONS_INPUT, + DESCRIBE_CLIENT_VPN_CONNECTIONS_OUTPUT, + (), +) + +CLIENT_VPN_ENDPOINT_ID_LIST: StaticSchema = ( + 16, + n0, + _CVEIL, + 0, + (_me,), + ((CLIENT_VPN_ENDPOINT_ID, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_ENDPOINT_MAX_RESULTS: StaticSchema = (7, n0, _DCVEMR, 0) + +DESCRIBE_CLIENT_VPN_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DCVEIe, + {_sSI: _cDCVERom, _sm: None}, + (_CVEIl, _MR, _NTex, _Fil, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID_LIST, {_sN: _CVEI}), + (DESCRIBE_CLIENT_VPN_ENDPOINT_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +ASSOCIATED_NETWORK_TYPE: StaticSchema = (14, n0, _ANT, 0, (_vp,), ((-1, {_sV: _vp}),)) + +ASSOCIATED_TARGET_NETWORK: StaticSchema = ( + 18, + n0, + _ATN, + 0, + (_NIet, _NTe), + ( + (STRING, {_aQN: _NIet, _sN: _nIe}), + (ASSOCIATED_NETWORK_TYPE, {_aQN: _NTe, _sN: _nTe}), + ), +) + +ASSOCIATED_TARGET_NETWORK_SET: StaticSchema = ( + 16, + n0, + _ATNS, + 0, + (_me,), + ((ASSOCIATED_TARGET_NETWORK, {_sN: _i}),), +) + +DIRECTORY_SERVICE_AUTHENTICATION: StaticSchema = ( + 18, + n0, + _DSA, + 0, + (_DIi,), + ((STRING, {_aQN: _DIi, _sN: _dIi}),), +) + +FEDERATED_AUTHENTICATION: StaticSchema = ( + 18, + n0, + _FA, + 0, + (_SPA, _SSSPA), + ((STRING, {_aQN: _SPA, _sN: _sPA}), (STRING, {_aQN: _SSSPA, _sN: _sSSPA})), +) + +CERTIFICATE_AUTHENTICATION: StaticSchema = ( + 18, + n0, + _CAer, + 0, + (_CRCC,), + ((STRING, {_aQN: _CRCC, _sN: _cRCC}),), +) + +CLIENT_VPN_AUTHENTICATION: StaticSchema = ( + 18, + n0, + _CVA, + 0, + (_Ty, _ADc, _MA, _FA), + ( + (CLIENT_VPN_AUTHENTICATION_TYPE, {_aQN: _Ty, _sN: _ty}), + (DIRECTORY_SERVICE_AUTHENTICATION, {_aQN: _ADc, _sN: _aDc}), + (CERTIFICATE_AUTHENTICATION, {_aQN: _MA, _sN: _mAu}), + (FEDERATED_AUTHENTICATION, {_aQN: _FA, _sN: _fA}), + ), +) + +CLIENT_VPN_AUTHENTICATION_LIST: StaticSchema = ( + 16, + n0, + _CVAL, + 0, + (_me,), + ((CLIENT_VPN_AUTHENTICATION, {_sN: _i}),), +) + +CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CVEASC, + 0, + (_appl, _ap), + ((-1, {_sV: _appl}), (-1, {_sV: _ap})), +) + +CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS: StaticSchema = ( + 18, + n0, + _CVEAS, + 0, + (_C, _Me), + ( + (CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +CLIENT_CONNECT_RESPONSE_OPTIONS: StaticSchema = ( + 18, + n0, + _CCROl, + 0, + (_Ena, _LFA, _Sta), + ( + (BOOLEAN, {_aQN: _Ena, _sN: _ena}), + (STRING, {_aQN: _LFA, _sN: _lFA}), + (CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +CLIENT_LOGIN_BANNER_RESPONSE_OPTIONS: StaticSchema = ( + 18, + n0, + _CLBRO, + 0, + (_Ena, _BTa), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena}), (STRING, {_aQN: _BTa, _sN: _bT})), +) + +CLIENT_ROUTE_ENFORCEMENT_RESPONSE_OPTIONS: StaticSchema = ( + 18, + n0, + _CRERO, + 0, + (_Enf,), + ((BOOLEAN, {_aQN: _Enf, _sN: _enfo}),), +) + +CONNECTION_LOG_RESPONSE_OPTIONS: StaticSchema = ( + 18, + n0, + _CLRO, + 0, + (_Ena, _CLG, _CLS, _IAPC), + ((BOOLEAN, 0), (STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +CLIENT_VPN_TRUST_PROVIDER: StaticSchema = ( + 18, + n0, + _CVTP, + 0, + (_TPT, _TI, _PSKU), + ( + (CLIENT_VPN_DEVICE_TRUST_PROVIDER_TYPE, {_aQN: _TPT, _sN: _tPT}), + (STRING, {_aQN: _TI, _sN: _tI}), + (STRING, {_aQN: _PSKU, _sN: _pSKU}), + ), +) + +CLIENT_VPN_TRUST_PROVIDER_SET: StaticSchema = ( + 16, + n0, + _CVTPS, + 0, + (_me,), + ((CLIENT_VPN_TRUST_PROVIDER, {_sN: _i}),), +) + +DEVICE_POSTURE_RESPONSE_OPTIONS: StaticSchema = ( + 18, + n0, + _DPRO, + 0, + (_TPr,), + ((CLIENT_VPN_TRUST_PROVIDER_SET, {_aQN: _TPS, _sN: _tPS}),), +) + +TRANSIT_GATEWAY_CONFIGURATION_DESCRIBE_ENDPOINT_STRUCTURE: StaticSchema = ( + 18, + n0, + _TGCDES, + 0, + (_TGI, _TGAI, _AZv, _AZIv), + ( + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (CLIENT_VPN_AVAILABILITY_ZONE_SET, {_aQN: _AZS, _sN: _aZS}), + (CLIENT_VPN_AVAILABILITY_ZONE_ID_SET, {_aQN: _AZIS, _sN: _aZIS}), + ), +) + +VPN_PROTOCOL: StaticSchema = (14, n0, _VPpn, 0, (_open,), ((-1, {_sV: _open}),)) + +CLIENT_VPN_ENDPOINT: StaticSchema = ( + 18, + n0, + _CVEl, + 0, + ( + _CVEI, + _Des, + _Sta, + _CT, + _DTe, + _DN, + _CCB, + _DSn, + _STp, + _VPpn, + _TPra, + _VPp, + _ATNs, + _SCA, + _AO, + _CLO, + _Tag, + _SGIe, + _VI, + _SSPU, + _CCO, + _STH, + _CLBO, + _CREO, + _DOST, + _EIAT, + _TIAT, + _TGC, + _DPO, + ), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (CLIENT_VPN_ENDPOINT_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _DTe, _sN: _dT}), + (STRING, {_aQN: _DN, _sN: _dN}), + (STRING, {_aQN: _CCB, _sN: _cCB}), + (VALUE_STRING_LIST, {_aQN: _DSns, _sN: _dSn}), + (BOOLEAN, {_aQN: _STp, _sN: _sTp}), + (VPN_PROTOCOL, {_aQN: _VPpn, _sN: _vPp}), + (TRANSPORT_PROTOCOL, {_aQN: _TPra, _sN: _tPr}), + (INTEGER, {_aQN: _VPp, _sN: _vPpn}), + (ASSOCIATED_TARGET_NETWORK_SET, {_aQN: _ATN, _sN: _aTN}), + (STRING, {_aQN: _SCA, _sN: _sCA}), + (CLIENT_VPN_AUTHENTICATION_LIST, {_aQN: _AO, _sN: _aO}), + (CONNECTION_LOG_RESPONSE_OPTIONS, {_aQN: _CLO, _sN: _cLO}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (CLIENT_VPN_SECURITY_GROUP_ID_SET, {_aQN: _SGIS, _sN: _sGIS}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _SSPU, _sN: _sSPU}), + (CLIENT_CONNECT_RESPONSE_OPTIONS, {_aQN: _CCO, _sN: _cCO}), + (INTEGER, {_aQN: _STH, _sN: _sTH}), + (CLIENT_LOGIN_BANNER_RESPONSE_OPTIONS, {_aQN: _CLBO, _sN: _cLBO}), + (CLIENT_ROUTE_ENFORCEMENT_RESPONSE_OPTIONS, {_aQN: _CREO, _sN: _cREO}), + (BOOLEAN, {_aQN: _DOST, _sN: _dOST}), + (ENDPOINT_IP_ADDRESS_TYPE, {_aQN: _EIAT, _sN: _eIAT}), + (TRAFFIC_IP_ADDRESS_TYPE, {_aQN: _TIAT, _sN: _tIAT}), + ( + TRANSIT_GATEWAY_CONFIGURATION_DESCRIBE_ENDPOINT_STRUCTURE, + {_aQN: _TGC, _sN: _tGCr}, + ), + (DEVICE_POSTURE_RESPONSE_OPTIONS, {_aQN: _DPO, _sN: _dPO}), + ), +) + +ENDPOINT_SET: StaticSchema = ( + 16, + n0, + _ESnd, + 0, + (_me,), + ((CLIENT_VPN_ENDPOINT, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVEOe, + {_sSI: _cDCVERoma, _smit: None}, + (_CVEli, _NTex), + ((ENDPOINT_SET, {_aQN: _CVEl, _sN: _cVE}), (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_CLIENT_VPN_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DCVEe, + 0, + DESCRIBE_CLIENT_VPN_ENDPOINTS_INPUT, + DESCRIBE_CLIENT_VPN_ENDPOINTS_OUTPUT, + (), +) + +DESCRIBE_CLIENT_VPN_ROUTES_MAX_RESULTS: StaticSchema = (7, n0, _DCVRMR, 0) + +DESCRIBE_CLIENT_VPN_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _DCVRIe, + {_sSI: _cDCVRRom, _sm: None}, + (_CVEI, _Fil, _MR, _NTex, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_CLIENT_VPN_ROUTES_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +CLIENT_VPN_ROUTE: StaticSchema = ( + 18, + n0, + _CVR, + 0, + (_CVEI, _DC, _TSar, _Ty, _Or, _Sta, _Des, _TGAI), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _DC, _sN: _dC}), + (STRING, {_aQN: _TSar, _sN: _tSar}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _Or, _sN: _or}), + (CLIENT_VPN_ROUTE_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _Des, _sN: _desc}), + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + ), +) + +CLIENT_VPN_ROUTE_SET: StaticSchema = ( + 16, + n0, + _CVRSl, + 0, + (_me,), + ((CLIENT_VPN_ROUTE, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVROe, + {_sSI: _cDCVRRoma, _smit: None}, + (_Rout, _NTex), + ( + (CLIENT_VPN_ROUTE_SET, {_aQN: _Rout, _sN: _rout}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CLIENT_VPN_ROUTES: StaticOperationSchema = ( + 23, + n0, + _DCVRe, + 0, + DESCRIBE_CLIENT_VPN_ROUTES_INPUT, + DESCRIBE_CLIENT_VPN_ROUTES_OUTPUT, + (), +) + +DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_MAX_RESULTS: StaticSchema = (7, n0, _DCVTNMR, 0) + +DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_INPUT: StaticSchema = ( + 18, + n0, + _DCVTNI, + {_sSI: _cDCVTNR, _sm: None}, + (_CVEI, _AIsso, _MR, _NTex, _Fil, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (VALUE_STRING_LIST, 0), + (DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +TARGET_NETWORK: StaticSchema = ( + 18, + n0, + _TNa, + 0, + (_AIs, _VI, _TNI, _CVEI, _Sta, _SGe, _AZv, _AZIv), + ( + (STRING, {_aQN: _AIs, _sN: _aIs}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _TNI, _sN: _tNI}), + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (ASSOCIATION_STATUS, {_aQN: _Sta, _sN: _sta}), + (VALUE_STRING_LIST, {_aQN: _SGe, _sN: _sGe}), + (CLIENT_VPN_AVAILABILITY_ZONE_SET, {_aQN: _AZS, _sN: _aZS}), + (CLIENT_VPN_AVAILABILITY_ZONE_ID_SET, {_aQN: _AZIS, _sN: _aZIS}), + ), +) + +TARGET_NETWORK_SET: StaticSchema = ( + 16, + n0, + _TNS, + 0, + (_me,), + ((TARGET_NETWORK, {_sN: _i}),), +) + +DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVTNO, + {_sSI: _cDCVTNRo, _smit: None}, + (_CVTN, _NTex), + ( + (TARGET_NETWORK_SET, {_aQN: _CVTN, _sN: _cVTN}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_CLIENT_VPN_TARGET_NETWORKS: StaticOperationSchema = ( + 23, + n0, + _DCVTN, + 0, + DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_INPUT, + DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_OUTPUT, + (), +) + +COIP_POOL_MAX_RESULTS: StaticSchema = (7, n0, _CPMR, 0) + +COIP_POOL_ID_SET: StaticSchema = ( + 16, + n0, + _CPIS, + 0, + (_me,), + ((IPV4_POOL_COIP_ID, {_sN: _i}),), +) + +DESCRIBE_COIP_POOLS_INPUT: StaticSchema = ( + 18, + n0, + _DCPIe, + {_sSI: _cDCPRom, _sm: None}, + (_PIoo, _Fil, _MR, _NTex, _DR), + ( + (COIP_POOL_ID_SET, {_sN: _PIo}), + (FILTER_LIST, {_sN: _Fi}), + (COIP_POOL_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +COIP_POOL_SET: StaticSchema = (16, n0, _CPS, 0, (_me,), ((COIP_POOL, {_sN: _i}),)) + +DESCRIBE_COIP_POOLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCPOe, + {_sSI: _cDCPRoma, _smit: None}, + (_CPo, _NTex), + ((COIP_POOL_SET, {_aQN: _CPS, _sN: _cPS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_COIP_POOLS: StaticOperationSchema = ( + 23, + n0, + _DCPe, + 0, + DESCRIBE_COIP_POOLS_INPUT, + DESCRIBE_COIP_POOLS_OUTPUT, + (), +) + +CONVERSION_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _CISL, + 0, + (_me,), + ((CONVERSION_TASK_ID, {_sN: _i}),), +) + +DESCRIBE_CONVERSION_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DCTI, + {_sSI: _cDCTR, _sm: None}, + (_DR, _CTIo), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (CONVERSION_ID_STRING_LIST, {_aQN: _CTI, _sN: _cTI}), + ), +) + +IMPORT_MANIFEST_URL: StaticSchema = (3, n0, _IMU, 4) + +DISK_IMAGE_DESCRIPTION: StaticSchema = ( + 18, + n0, + _DID, + 0, + (_Ch, _For, _IMU, _Si), + ( + (STRING, {_aQN: _Ch, _sN: _ch}), + (DISK_IMAGE_FORMAT, {_aQN: _For, _sN: _fo}), + (IMPORT_MANIFEST_URL, {_aQN: _IMU, _sN: _iMU}), + (LONG, {_aQN: _Si, _sN: _siz}), + ), +) + +DISK_IMAGE_VOLUME_DESCRIPTION: StaticSchema = ( + 18, + n0, + _DIVD, + 0, + (_Id, _Si), + ((STRING, {_aQN: _Id, _sN: _id}), (LONG, {_aQN: _Si, _sN: _siz})), +) + +IMPORT_INSTANCE_VOLUME_DETAIL_ITEM: StaticSchema = ( + 18, + n0, + _IIVDI, + 0, + (_AZ, _AZI, _BCyt, _Des, _Im, _Sta, _SMt, _Vo), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (LONG, {_aQN: _BCyt, _sN: _bCy}), + (STRING, {_aQN: _Des, _sN: _desc}), + (DISK_IMAGE_DESCRIPTION, {_aQN: _Im, _sN: _im}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (DISK_IMAGE_VOLUME_DESCRIPTION, {_aQN: _Vo, _sN: _vo}), + ), +) + +IMPORT_INSTANCE_VOLUME_DETAIL_SET: StaticSchema = ( + 16, + n0, + _IIVDS, + 0, + (_me,), + ((IMPORT_INSTANCE_VOLUME_DETAIL_ITEM, {_sN: _i}),), +) + +IMPORT_INSTANCE_TASK_DETAILS: StaticSchema = ( + 18, + n0, + _IITD, + 0, + (_Des, _II, _Pla, _Vol), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _II, _sN: _iI}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat}), + (IMPORT_INSTANCE_VOLUME_DETAIL_SET, {_aQN: _Vol, _sN: _vol}), + ), +) + +IMPORT_VOLUME_TASK_DETAILS: StaticSchema = ( + 18, + n0, + _IVTD, + 0, + (_AZ, _AZI, _BCyt, _Des, _Im, _Vo), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (LONG, {_aQN: _BCyt, _sN: _bCy}), + (STRING, {_aQN: _Des, _sN: _desc}), + (DISK_IMAGE_DESCRIPTION, {_aQN: _Im, _sN: _im}), + (DISK_IMAGE_VOLUME_DESCRIPTION, {_aQN: _Vo, _sN: _vo}), + ), +) + +CONVERSION_TASK_STATE: StaticSchema = ( + 14, + n0, + _CTSon, + 0, + (_act, _ca, _can, _compl), + ((-1, {_sV: _act}), (-1, {_sV: _ca}), (-1, {_sV: _can}), (-1, {_sV: _compl})), +) + +CONVERSION_TASK: StaticSchema = ( + 18, + n0, + _CTon, + 0, + (_CTI, _ET, _IImp, _IVm, _St, _SMt, _Tag), + ( + (STRING, {_aQN: _CTI, _sN: _cTI}), + (STRING, {_aQN: _ET, _sN: _eT}), + (IMPORT_INSTANCE_TASK_DETAILS, {_aQN: _IImp, _sN: _iImp}), + (IMPORT_VOLUME_TASK_DETAILS, {_aQN: _IVm, _sN: _iVm}), + (CONVERSION_TASK_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +DESCRIBE_CONVERSION_TASK_LIST: StaticSchema = ( + 16, + n0, + _DCTL, + 0, + (_me,), + ((CONVERSION_TASK, {_sN: _i}),), +) + +DESCRIBE_CONVERSION_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCTO, + {_sSI: _cDCTRo, _smit: None}, + (_CTonv,), + ((DESCRIBE_CONVERSION_TASK_LIST, {_aQN: _CTonv, _sN: _cTon}),), +) + +DESCRIBE_CONVERSION_TASKS: StaticOperationSchema = ( + 23, + n0, + _DCT, + 0, + DESCRIBE_CONVERSION_TASKS_INPUT, + DESCRIBE_CONVERSION_TASKS_OUTPUT, + (), +) + +CUSTOMER_GATEWAY_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _CGISL, + 0, + (_me,), + ((CUSTOMER_GATEWAY_ID, {_sN: _CGIu}),), +) + +DESCRIBE_CUSTOMER_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DCGIesc, + {_sSI: _cDCGRomama, _sm: None}, + (_CGIus, _Fil, _DR), + ( + (CUSTOMER_GATEWAY_ID_STRING_LIST, {_sN: _CGIu}), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +CUSTOMER_GATEWAY_LIST: StaticSchema = ( + 16, + n0, + _CGL, + 0, + (_me,), + ((CUSTOMER_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_CUSTOMER_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCGOesc, + {_sSI: _cDCGRomamaz, _smit: None}, + (_CGu,), + ((CUSTOMER_GATEWAY_LIST, {_aQN: _CGSu, _sN: _cGSu}),), +) + +DESCRIBE_CUSTOMER_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DCGesc, + 0, + DESCRIBE_CUSTOMER_GATEWAYS_INPUT, + DESCRIBE_CUSTOMER_GATEWAYS_OUTPUT, + (), +) + +DECLARATIVE_POLICIES_MAX_RESULTS: StaticSchema = (7, n0, _DPMR, 0) + +DESCRIBE_DECLARATIVE_POLICIES_REPORTS_INPUT: StaticSchema = ( + 18, + n0, + _DDPRI, + {_sSI: _cDDPRR, _sm: None}, + (_DR, _NTex, _MR, _RIepo), + ( + (BOOLEAN, 0), + (STRING, 0), + (DECLARATIVE_POLICIES_MAX_RESULTS, 0), + (VALUE_STRING_LIST, {_sN: _RIep}), + ), +) + +REPORT_STATE: StaticSchema = ( + 14, + n0, + _RSepo, + 0, + (_ru, _can, _comp, _er), + ((-1, {_sV: _ru}), (-1, {_sV: _can}), (-1, {_sV: _comp}), (-1, {_sV: _er})), +) + +DECLARATIVE_POLICIES_REPORT: StaticSchema = ( + 18, + n0, + _DPRec, + 0, + (_RIep, _SBu, _SPr, _TIa, _ST, _ETnd, _Sta, _Tag), + ( + (STRING, {_aQN: _RIep, _sN: _rIe}), + (STRING, {_aQN: _SBu, _sN: _sB}), + (STRING, {_aQN: _SPr, _sN: _sP}), + (STRING, {_aQN: _TIa, _sN: _tIa}), + (MILLISECOND_DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (MILLISECOND_DATE_TIME, {_aQN: _ETnd, _sN: _eTnd}), + (REPORT_STATE, {_aQN: _Sta, _sN: _sta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +DECLARATIVE_POLICIES_REPORT_LIST: StaticSchema = ( + 16, + n0, + _DPRL, + 0, + (_me,), + ((DECLARATIVE_POLICIES_REPORT, {_sN: _i}),), +) + +DESCRIBE_DECLARATIVE_POLICIES_REPORTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDPRO, + {_sSI: _cDDPRRo, _smit: None}, + (_NTex, _Rep), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (DECLARATIVE_POLICIES_REPORT_LIST, {_aQN: _RSepor, _sN: _rSep}), + ), +) + +DESCRIBE_DECLARATIVE_POLICIES_REPORTS: StaticOperationSchema = ( + 23, + n0, + _DDPR, + 0, + DESCRIBE_DECLARATIVE_POLICIES_REPORTS_INPUT, + DESCRIBE_DECLARATIVE_POLICIES_REPORTS_OUTPUT, + (), +) + +DHCP_OPTIONS_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _DOISL, + 0, + (_me,), + ((DHCP_OPTIONS_ID, {_sN: _DOI}),), +) + +DESCRIBE_DHCP_OPTIONS_MAX_RESULTS: StaticSchema = (7, n0, _DDOMR, 0) + +DESCRIBE_DHCP_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDOIes, + {_sSI: _cDDORo, _sm: None}, + (_DOIh, _NTex, _MR, _DR, _Fil), + ( + (DHCP_OPTIONS_ID_STRING_LIST, {_sN: _DOI}), + (STRING, 0), + (DESCRIBE_DHCP_OPTIONS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +DHCP_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _DOL, + 0, + (_me,), + ((DHCP_OPTIONS, {_sN: _i}),), +) + +DESCRIBE_DHCP_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDOOe, + {_sSI: _cDDORom, _smit: None}, + (_NTex, _DOh), + ((STRING, {_aQN: _NTex, _sN: _nT}), (DHCP_OPTIONS_LIST, {_aQN: _DOSh, _sN: _dOS})), +) + +DESCRIBE_DHCP_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _DDOe, + 0, + DESCRIBE_DHCP_OPTIONS_INPUT, + DESCRIBE_DHCP_OPTIONS_OUTPUT, + (), +) + +EGRESS_ONLY_INTERNET_GATEWAY_ID_LIST: StaticSchema = ( + 16, + n0, + _EOIGIL, + 0, + (_me,), + ((EGRESS_ONLY_INTERNET_GATEWAY_ID, {_sN: _i}),), +) + +DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_MAX_RESULTS: StaticSchema = (7, n0, _DEOIGMR, 0) + +DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DEOIGIe, + {_sSI: _cDEOIGRom, _sm: None}, + (_DR, _EOIGIg, _MR, _NTex, _Fil), + ( + (BOOLEAN, 0), + (EGRESS_ONLY_INTERNET_GATEWAY_ID_LIST, {_sN: _EOIGI}), + (DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_MAX_RESULTS, 0), + (STRING, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +EGRESS_ONLY_INTERNET_GATEWAY_LIST: StaticSchema = ( + 16, + n0, + _EOIGL, + 0, + (_me,), + ((EGRESS_ONLY_INTERNET_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEOIGOe, + {_sSI: _cDEOIGRoma, _smit: None}, + (_EOIGg, _NTex), + ( + (EGRESS_ONLY_INTERNET_GATEWAY_LIST, {_aQN: _EOIGS, _sN: _eOIGS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DEOIGe, + 0, + DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_INPUT, + DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_OUTPUT, + (), +) + +ELASTIC_GPU_ID: StaticSchema = (3, n0, _EGI, 0) + +ELASTIC_GPU_ID_SET: StaticSchema = ( + 16, + n0, + _EGIS, + 0, + (_me,), + ((ELASTIC_GPU_ID, {_sN: _i}),), +) + +DESCRIBE_ELASTIC_GPUS_MAX_RESULTS: StaticSchema = (7, n0, _DEGMR, 0) + +DESCRIBE_ELASTIC_GPUS_INPUT: StaticSchema = ( + 18, + n0, + _DEGI, + {_sSI: _cDEGR, _sm: None}, + (_EGIl, _DR, _Fil, _MR, _NTex), + ( + (ELASTIC_GPU_ID_SET, {_sN: _EGI}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_ELASTIC_GPUS_MAX_RESULTS, 0), + (STRING, 0), + ), +) + +ELASTIC_GPU_STATUS: StaticSchema = ( + 14, + n0, + _EGSla, + 0, + (_Ok, _Imp), + ((-1, {_sV: _OK_}), (-1, {_sV: _IMPAIRED})), +) + +ELASTIC_GPU_HEALTH: StaticSchema = ( + 18, + n0, + _EGH, + 0, + (_Sta,), + ((ELASTIC_GPU_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +ELASTIC_GPU_STATE: StaticSchema = ( + 14, + n0, + _EGSlas, + 0, + (_Atta,), + ((-1, {_sV: _ATTACHED}),), +) + +ELASTIC_GPUS: StaticSchema = ( + 18, + n0, + _EG, + 0, + (_EGI, _AZ, _EGT, _EGH, _EGSlas, _II, _Tag), + ( + (STRING, {_aQN: _EGI, _sN: _eGI}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _EGT, _sN: _eGT}), + (ELASTIC_GPU_HEALTH, {_aQN: _EGH, _sN: _eGH}), + (ELASTIC_GPU_STATE, {_aQN: _EGSlas, _sN: _eGS}), + (STRING, {_aQN: _II, _sN: _iI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +ELASTIC_GPU_SET: StaticSchema = ( + 16, + n0, + _EGSlast, + 0, + (_me,), + ((ELASTIC_GPUS, {_sN: _i}),), +) + +DESCRIBE_ELASTIC_GPUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEGO, + {_sSI: _cDEGRo, _smit: None}, + (_EGSlast, _MR, _NTex), + ( + (ELASTIC_GPU_SET, {_aQN: _EGSlast, _sN: _eGSl}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_ELASTIC_GPUS: StaticOperationSchema = ( + 23, + n0, + _DEG, + 0, + DESCRIBE_ELASTIC_GPUS_INPUT, + DESCRIBE_ELASTIC_GPUS_OUTPUT, + (), +) + +EXPORT_IMAGE_TASK_ID: StaticSchema = (3, n0, _EITI, 0) + +EXPORT_IMAGE_TASK_ID_LIST: StaticSchema = ( + 16, + n0, + _EITIL, + 0, + (_me,), + ((EXPORT_IMAGE_TASK_ID, {_sN: _EITI}),), +) + +DESCRIBE_EXPORT_IMAGE_TASKS_MAX_RESULTS: StaticSchema = (7, n0, _DEITMR, 0) + +DESCRIBE_EXPORT_IMAGE_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DEITI, + {_sSI: _cDEITR, _sm: None}, + (_DR, _Fil, _EITIx, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (EXPORT_IMAGE_TASK_ID_LIST, {_sN: _EITI}), + (DESCRIBE_EXPORT_IMAGE_TASKS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +EXPORT_TASK_S3_LOCATION: StaticSchema = ( + 18, + n0, + _ETSL, + 0, + (_SBu, _SPr), + ((STRING, {_aQN: _SBu, _sN: _sB}), (STRING, {_aQN: _SPr, _sN: _sP})), +) + +EXPORT_IMAGE_TASK: StaticSchema = ( + 18, + n0, + _EITxp, + 0, + (_Des, _EITI, _IIm, _Prog, _SEL, _Sta, _SMt, _Tag), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _EITI, _sN: _eITI}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (EXPORT_TASK_S3_LOCATION, {_aQN: _SEL, _sN: _sEL}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +EXPORT_IMAGE_TASK_LIST: StaticSchema = ( + 16, + n0, + _EITL, + 0, + (_me,), + ((EXPORT_IMAGE_TASK, {_sN: _i}),), +) + +DESCRIBE_EXPORT_IMAGE_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEITO, + {_sSI: _cDEITRo, _smit: None}, + (_EITxpo, _NTex), + ( + (EXPORT_IMAGE_TASK_LIST, {_aQN: _EITSx, _sN: _eITSx}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_EXPORT_IMAGE_TASKS: StaticOperationSchema = ( + 23, + n0, + _DEIT, + 0, + DESCRIBE_EXPORT_IMAGE_TASKS_INPUT, + DESCRIBE_EXPORT_IMAGE_TASKS_OUTPUT, + (), +) + +EXPORT_TASK_ID: StaticSchema = (3, n0, _ETI, 0) + +EXPORT_TASK_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _ETISL, + 0, + (_me,), + ((EXPORT_TASK_ID, {_sN: _ETI}),), +) + +DESCRIBE_EXPORT_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DETI, + {_sSI: _cDETR, _sm: None}, + (_Fil, _ETIx), + ((FILTER_LIST, {_sN: _Fi}), (EXPORT_TASK_ID_STRING_LIST, {_aQN: _ETI, _sN: _eTI})), +) + +EXPORT_TASK_LIST: StaticSchema = (16, n0, _ETL, 0, (_me,), ((EXPORT_TASK, {_sN: _i}),)) + +DESCRIBE_EXPORT_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DETO, + {_sSI: _cDETRo, _smit: None}, + (_ETxp,), + ((EXPORT_TASK_LIST, {_aQN: _ETSxp, _sN: _eTSx}),), +) + +DESCRIBE_EXPORT_TASKS: StaticOperationSchema = ( + 23, + n0, + _DET, + 0, + DESCRIBE_EXPORT_TASKS_INPUT, + DESCRIBE_EXPORT_TASKS_OUTPUT, + (), +) + +FAST_LAUNCH_IMAGE_ID_LIST: StaticSchema = ( + 16, + n0, + _FLIIL, + 0, + (_me,), + ((IMAGE_ID, {_sN: _IIm}),), +) + +DESCRIBE_FAST_LAUNCH_IMAGES_REQUEST_MAX_RESULTS: StaticSchema = (7, n0, _DFLIRMR, 0) + +DESCRIBE_FAST_LAUNCH_IMAGES_INPUT: StaticSchema = ( + 18, + n0, + _DFLII, + {_sSI: _cDFLIR, _sm: None}, + (_IIma, _Fil, _MR, _NTex, _DR), + ( + (FAST_LAUNCH_IMAGE_ID_LIST, {_sN: _IIm}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_FAST_LAUNCH_IMAGES_REQUEST_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _FLLTSR, + 0, + (_LTI, _LTN, _Ve), + ( + (LAUNCH_TEMPLATE_ID, {_aQN: _LTI, _sN: _lTI}), + (STRING, {_aQN: _LTN, _sN: _lTN}), + (STRING, {_aQN: _Ve, _sN: _ver}), + ), +) + +FAST_LAUNCH_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _FLRTa, + 0, + (_SNAPSHOT,), + ((-1, {_sV: _s}),), +) + +FAST_LAUNCH_SNAPSHOT_CONFIGURATION_RESPONSE: StaticSchema = ( + 18, + n0, + _FLSCR, + 0, + (_TRC,), + ((INTEGER, {_aQN: _TRC, _sN: _tRC}),), +) + +FAST_LAUNCH_STATE_CODE: StaticSchema = ( + 14, + n0, + _FLSC, + 0, + (_en, _ef____, _ena, _ef______, _disab, _df________), + ( + (-1, {_sV: _en}), + (-1, {_sV: _ef_____}), + (-1, {_sV: _ena}), + (-1, {_sV: _ef_______}), + (-1, {_sV: _disab}), + (-1, {_sV: _df_________}), + ), +) + +DESCRIBE_FAST_LAUNCH_IMAGES_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _DFLISI, + 0, + (_IIm, _RT, _SCn, _LT, _MPLa, _OIw, _St, _STR, _STT), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (FAST_LAUNCH_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (FAST_LAUNCH_SNAPSHOT_CONFIGURATION_RESPONSE, {_aQN: _SCn, _sN: _sCn}), + (FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_RESPONSE, {_aQN: _LT, _sN: _lT}), + (INTEGER, {_aQN: _MPLa, _sN: _mPL}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (FAST_LAUNCH_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (MILLISECOND_DATE_TIME, {_aQN: _STT, _sN: _sTT}), + ), +) + +DESCRIBE_FAST_LAUNCH_IMAGES_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _DFLISS, + 0, + (_me,), + ((DESCRIBE_FAST_LAUNCH_IMAGES_SUCCESS_ITEM, {_sN: _i}),), +) + +DESCRIBE_FAST_LAUNCH_IMAGES_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLIO, + {_sSI: _cDFLIRo, _smit: None}, + (_FLIa, _NTex), + ( + (DESCRIBE_FAST_LAUNCH_IMAGES_SUCCESS_SET, {_aQN: _FLISa, _sN: _fLISa}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_FAST_LAUNCH_IMAGES: StaticOperationSchema = ( + 23, + n0, + _DFLIe, + 0, + DESCRIBE_FAST_LAUNCH_IMAGES_INPUT, + DESCRIBE_FAST_LAUNCH_IMAGES_OUTPUT, + (), +) + +DESCRIBE_FAST_SNAPSHOT_RESTORES_MAX_RESULTS: StaticSchema = (7, n0, _DFSRMR, 0) + +DESCRIBE_FAST_SNAPSHOT_RESTORES_INPUT: StaticSchema = ( + 18, + n0, + _DFSRI, + {_sSI: _cDFSRR, _sm: None}, + (_Fil, _MR, _NTex, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_FAST_SNAPSHOT_RESTORES_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +FAST_SNAPSHOT_RESTORE_STATE_CODE: StaticSchema = ( + 14, + n0, + _FSRSC, + 0, + (_en, _opti, _ena, _disab, _d), + ( + (-1, {_sV: _en}), + (-1, {_sV: _opti}), + (-1, {_sV: _ena}), + (-1, {_sV: _disab}), + (-1, {_sV: _d}), + ), +) + +DESCRIBE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _DFSRSI, + 0, + (_SIn, _AZ, _AZI, _St, _STR, _OIw, _OAw, _ETna, _OT, _ETnab, _DTi, _DTis), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (FAST_SNAPSHOT_RESTORE_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _OAw, _sN: _oAw}), + (MILLISECOND_DATE_TIME, {_aQN: _ETna, _sN: _eTna}), + (MILLISECOND_DATE_TIME, {_aQN: _OT, _sN: _oT}), + (MILLISECOND_DATE_TIME, {_aQN: _ETnab, _sN: _eTnab}), + (MILLISECOND_DATE_TIME, {_aQN: _DTi, _sN: _dTi}), + (MILLISECOND_DATE_TIME, {_aQN: _DTis, _sN: _dTis}), + ), +) + +DESCRIBE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _DFSRSS, + 0, + (_me,), + ((DESCRIBE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM, {_sN: _i}),), +) + +DESCRIBE_FAST_SNAPSHOT_RESTORES_OUTPUT: StaticSchema = ( + 18, + n0, + _DFSRO, + {_sSI: _cDFSRRo, _smit: None}, + (_FSRa, _NTex), + ( + (DESCRIBE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET, {_aQN: _FSRS, _sN: _fSRS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_FAST_SNAPSHOT_RESTORES: StaticOperationSchema = ( + 23, + n0, + _DFSR, + 0, + DESCRIBE_FAST_SNAPSHOT_RESTORES_INPUT, + DESCRIBE_FAST_SNAPSHOT_RESTORES_OUTPUT, + (), +) + +FLEET_EVENT_TYPE: StaticSchema = ( + 14, + n0, + _FET, + 0, + (_IC__, _FC_, _SE), + ((-1, {_sV: _ic__}), (-1, {_sV: _fc}), (-1, {_sV: _se__})), +) + +DESCRIBE_FLEET_HISTORY_INPUT: StaticSchema = ( + 18, + n0, + _DFHI, + {_sSI: _cDFHR, _sm: None}, + (_DR, _ETv, _MR, _NTex, _FIl, _ST), + ( + (BOOLEAN, 0), + (FLEET_EVENT_TYPE, 0), + (INTEGER, 0), + (STRING, 0), + (FLEET_ID, 1), + (DATE_TIME, 1), + ), +) + +EVENT_INFORMATION: StaticSchema = ( + 18, + n0, + _EIv, + 0, + (_EDv, _EST, _II), + ( + (STRING, {_aQN: _EDv, _sN: _eDv}), + (STRING, {_aQN: _EST, _sN: _eST}), + (STRING, {_aQN: _II, _sN: _iI}), + ), +) + +HISTORY_RECORD_ENTRY: StaticSchema = ( + 18, + n0, + _HRE, + 0, + (_EIv, _ETv, _Ti), + ( + (EVENT_INFORMATION, {_aQN: _EIv, _sN: _eIv}), + (FLEET_EVENT_TYPE, {_aQN: _ETv, _sN: _eTv}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + ), +) + +HISTORY_RECORD_SET: StaticSchema = ( + 16, + n0, + _HRS, + 0, + (_me,), + ((HISTORY_RECORD_ENTRY, {_sN: _i}),), +) + +DESCRIBE_FLEET_HISTORY_OUTPUT: StaticSchema = ( + 18, + n0, + _DFHO, + {_sSI: _cDFHRo, _smit: None}, + (_HRi, _LET, _NTex, _FIl, _ST), + ( + (HISTORY_RECORD_SET, {_aQN: _HRS, _sN: _hRS}), + (DATE_TIME, {_aQN: _LET, _sN: _lET}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (FLEET_ID, {_aQN: _FIl, _sN: _fIl}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + ), +) + +DESCRIBE_FLEET_HISTORY: StaticOperationSchema = ( + 23, + n0, + _DFH, + 0, + DESCRIBE_FLEET_HISTORY_INPUT, + DESCRIBE_FLEET_HISTORY_OUTPUT, + (), +) + +DESCRIBE_FLEET_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DFIIe, + {_sSI: _cDFIRom, _sm: None}, + (_DR, _MR, _NTex, _FIl, _Fil), + ((BOOLEAN, 0), (INTEGER, 0), (STRING, 0), (FLEET_ID, 1), (FILTER_LIST, {_sN: _Fi})), +) + +DESCRIBE_FLEET_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DFIOe, + {_sSI: _cDFIRoma, _smit: None}, + (_AIct, _NTex, _FIl), + ( + (ACTIVE_INSTANCE_SET, {_aQN: _AIS, _sN: _aIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (FLEET_ID, {_aQN: _FIl, _sN: _fIl}), + ), +) + +DESCRIBE_FLEET_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DFIes, + 0, + DESCRIBE_FLEET_INSTANCES_INPUT, + DESCRIBE_FLEET_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_FLEETS_INPUT: StaticSchema = ( + 18, + n0, + _DFIesc, + {_sSI: _cDFRom, _sm: None}, + (_DR, _MR, _NTex, _FIle, _Fil), + ( + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 0), + (FLEET_ID_SET, {_sN: _FIl}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +FLEET_ACTIVITY_STATUS: StaticSchema = ( + 14, + n0, + _FASl, + 0, + (_ERROR, _PF_, _PT, _FULFILLED), + ((-1, {_sV: _er}), (-1, {_sV: _pf}), (-1, {_sV: _pt}), (-1, {_sV: _fu})), +) + +DESCRIBE_FLEET_ERROR: StaticSchema = ( + 18, + n0, + _DFEe, + 0, + (_LTAO, _Li, _ECr, _EM), + ( + (LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE, {_aQN: _LTAO, _sN: _lTAO}), + (INSTANCE_LIFECYCLE, {_aQN: _Li, _sN: _lif}), + (STRING, {_aQN: _ECr, _sN: _eCr}), + (STRING, {_aQN: _EM, _sN: _eM}), + ), +) + +DESCRIBE_FLEETS_ERROR_SET: StaticSchema = ( + 16, + n0, + _DFESe, + 0, + (_me,), + ((DESCRIBE_FLEET_ERROR, {_sN: _i}),), +) + +DESCRIBE_FLEETS_INSTANCES: StaticSchema = ( + 18, + n0, + _DFIescr, + 0, + (_LTAO, _Li, _IIn, _IT, _Pla), + ( + (LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE, {_aQN: _LTAO, _sN: _lTAO}), + (INSTANCE_LIFECYCLE, {_aQN: _Li, _sN: _lif}), + (INSTANCE_IDS_SET, {_aQN: _IIn, _sN: _iIns}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat}), + ), +) + +DESCRIBE_FLEETS_INSTANCES_SET: StaticSchema = ( + 16, + n0, + _DFIS, + 0, + (_me,), + ((DESCRIBE_FLEETS_INSTANCES, {_sN: _i}),), +) + +FLEET_LAUNCH_TEMPLATE_OVERRIDES_LIST: StaticSchema = ( + 16, + n0, + _FLTOL, + 0, + (_me,), + ((FLEET_LAUNCH_TEMPLATE_OVERRIDES, {_sN: _i}),), +) + +FLEET_LAUNCH_TEMPLATE_CONFIG: StaticSchema = ( + 18, + n0, + _FLTC, + 0, + (_LTS, _Ov), + ( + (FLEET_LAUNCH_TEMPLATE_SPECIFICATION, {_aQN: _LTS, _sN: _lTS}), + (FLEET_LAUNCH_TEMPLATE_OVERRIDES_LIST, {_aQN: _Ov, _sN: _ov}), + ), +) + +FLEET_LAUNCH_TEMPLATE_CONFIG_LIST: StaticSchema = ( + 16, + n0, + _FLTCL, + 0, + (_me,), + ((FLEET_LAUNCH_TEMPLATE_CONFIG, {_sN: _i}),), +) + +CAPACITY_RESERVATION_OPTIONS: StaticSchema = ( + 18, + n0, + _CRO, + 0, + (_USs,), + ((FLEET_CAPACITY_RESERVATION_USAGE_STRATEGY, {_aQN: _USs, _sN: _uS}),), +) + +ON_DEMAND_OPTIONS: StaticSchema = ( + 18, + n0, + _ODO, + 0, + (_ASll, _CRO, _SIT, _SAZ, _MTC, _MTP), + ( + (FLEET_ON_DEMAND_ALLOCATION_STRATEGY, {_aQN: _ASll, _sN: _aSl}), + (CAPACITY_RESERVATION_OPTIONS, {_aQN: _CRO, _sN: _cRO}), + (BOOLEAN, {_aQN: _SIT, _sN: _sITi}), + (BOOLEAN, {_aQN: _SAZ, _sN: _sAZ}), + (INTEGER, {_aQN: _MTC, _sN: _mTC}), + (STRING, {_aQN: _MTP, _sN: _mTP}), + ), +) + +RESERVATION_TYPE_LIST: StaticSchema = ( + 16, + n0, + _RTL, + 0, + (_me,), + ((FLEET_RESERVATION_TYPE, {_sN: _i}),), +) + +RESERVED_CAPACITY_FALLBACK_OPTIONS: StaticSchema = ( + 18, + n0, + _RCFO, + 0, + (_MTa,), + ((RESERVED_CAPACITY_FALLBACK_MARKET_TYPE_LIST, {_aQN: _MTS, _sN: _mTS}),), +) + +RESERVED_CAPACITY_OPTIONS: StaticSchema = ( + 18, + n0, + _RCO, + 0, + (_ASll, _RTese, _RCFO), + ( + (RESERVED_CAPACITY_ALLOCATION_STRATEGY, {_aQN: _ASll, _sN: _aSl}), + (RESERVATION_TYPE_LIST, {_aQN: _RTSe, _sN: _rTSe}), + (RESERVED_CAPACITY_FALLBACK_OPTIONS, {_aQN: _RCFO, _sN: _rCFO}), + ), +) + +FLEET_SPOT_CAPACITY_REBALANCE: StaticSchema = ( + 18, + n0, + _FSCR, + 0, + (_RSep, _TD), + ( + (FLEET_REPLACEMENT_STRATEGY, {_aQN: _RSep, _sN: _rSepl}), + (INTEGER, {_aQN: _TD, _sN: _tDe}), + ), +) + +FLEET_SPOT_MAINTENANCE_STRATEGIES: StaticSchema = ( + 18, + n0, + _FSMS, + 0, + (_CRapa,), + ((FLEET_SPOT_CAPACITY_REBALANCE, {_aQN: _CRapa, _sN: _cRap}),), +) + +SPOT_OPTIONS: StaticSchema = ( + 18, + n0, + _SO, + 0, + (_ASll, _MS, _IIB, _IPTUC, _SIT, _SAZ, _MTC, _MTP), + ( + (SPOT_ALLOCATION_STRATEGY, {_aQN: _ASll, _sN: _aSl}), + (FLEET_SPOT_MAINTENANCE_STRATEGIES, {_aQN: _MS, _sN: _mSa}), + (SPOT_INSTANCE_INTERRUPTION_BEHAVIOR, {_aQN: _IIB, _sN: _iIB}), + (INTEGER, {_aQN: _IPTUC, _sN: _iPTUC}), + (BOOLEAN, {_aQN: _SIT, _sN: _sITi}), + (BOOLEAN, {_aQN: _SAZ, _sN: _sAZ}), + (INTEGER, {_aQN: _MTC, _sN: _mTC}), + (STRING, {_aQN: _MTP, _sN: _mTP}), + ), +) + +TARGET_CAPACITY_SPECIFICATION: StaticSchema = ( + 18, + n0, + _TCS, + 0, + (_TTC, _ODTC, _STC, _DTCT, _TCUT), + ( + (INTEGER, {_aQN: _TTC, _sN: _tTC}), + (INTEGER, {_aQN: _ODTC, _sN: _oDTC}), + (INTEGER, {_aQN: _STC, _sN: _sTC}), + (DEFAULT_TARGET_CAPACITY_TYPE, {_aQN: _DTCT, _sN: _dTCT}), + (TARGET_CAPACITY_UNIT_TYPE, {_aQN: _TCUT, _sN: _tCUT}), + ), +) + +FLEET_DATA: StaticSchema = ( + 18, + n0, + _FDl, + 0, + ( + _ASc, + _CTr, + _FIl, + _FS, + _CTl, + _ECTP, + _FCu, + _FODC, + _LTC, + _TCS, + _TIWE, + _Ty, + _VF, + _VU, + _RUI, + _SO, + _ODO, + _RCO, + _Tag, + _Er, + _Ins, + _Con, + ), + ( + (FLEET_ACTIVITY_STATUS, {_aQN: _ASc, _sN: _aSc}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (FLEET_ID, {_aQN: _FIl, _sN: _fIl}), + (FLEET_STATE_CODE, {_aQN: _FS, _sN: _fS}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (FLEET_EXCESS_CAPACITY_TERMINATION_POLICY, {_aQN: _ECTP, _sN: _eCTP}), + (DOUBLE, {_aQN: _FCu, _sN: _fC}), + (DOUBLE, {_aQN: _FODC, _sN: _fODC}), + (FLEET_LAUNCH_TEMPLATE_CONFIG_LIST, {_aQN: _LTC, _sN: _lTC}), + (TARGET_CAPACITY_SPECIFICATION, {_aQN: _TCS, _sN: _tCS}), + (BOOLEAN, {_aQN: _TIWE, _sN: _tIWE}), + (FLEET_TYPE, {_aQN: _Ty, _sN: _ty}), + (DATE_TIME, {_aQN: _VF, _sN: _vF}), + (DATE_TIME, {_aQN: _VU, _sN: _vU}), + (BOOLEAN, {_aQN: _RUI, _sN: _rUI}), + (SPOT_OPTIONS, {_aQN: _SO, _sN: _sO}), + (ON_DEMAND_OPTIONS, {_aQN: _ODO, _sN: _oDO}), + (RESERVED_CAPACITY_OPTIONS, {_aQN: _RCO, _sN: _rCO}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (DESCRIBE_FLEETS_ERROR_SET, {_aQN: _ESr, _sN: _eSr}), + (DESCRIBE_FLEETS_INSTANCES_SET, {_aQN: _FIS, _sN: _fIS}), + (STRING, {_aQN: _Con, _sN: _cont}), + ), +) + +FLEET_SET: StaticSchema = (16, n0, _FSl, 0, (_me,), ((FLEET_DATA, {_sN: _i}),)) + +DESCRIBE_FLEETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DFOe, + {_sSI: _cDFRoma, _smit: None}, + (_NTex, _Fl), + ((STRING, {_aQN: _NTex, _sN: _nT}), (FLEET_SET, {_aQN: _FSl, _sN: _fSl})), +) + +DESCRIBE_FLEETS: StaticOperationSchema = ( + 23, + n0, + _DFes, + 0, + DESCRIBE_FLEETS_INPUT, + DESCRIBE_FLEETS_OUTPUT, + (), +) + +DESCRIBE_FLOW_LOGS_INPUT: StaticSchema = ( + 18, + n0, + _DFLIes, + {_sSI: _cDFLRom, _sm: None}, + (_DR, _Fi, _FLI, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, 0), + (FLOW_LOG_ID_LIST, {_sN: _FLIl}), + (INTEGER, 0), + (STRING, 0), + ), +) + +DESTINATION_OPTIONS_RESPONSE: StaticSchema = ( + 18, + n0, + _DORe, + 0, + (_FF, _HCPi, _PHP), + ( + (DESTINATION_FILE_FORMAT, {_aQN: _FF, _sN: _fF}), + (BOOLEAN, {_aQN: _HCPi, _sN: _hCP}), + (BOOLEAN, {_aQN: _PHP, _sN: _pHP}), + ), +) + +TAG_FIELD_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _TFSRa, + 0, + (_RT, _TKa), + ( + (TAGGABLE_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (TAG_KEY_LIST, {_aQN: _TKS, _sN: _tKS}), + ), +) + +TAG_FIELD_SPECIFICATION_LIST_RESPONSE: StaticSchema = ( + 16, + n0, + _TFSLRa, + 0, + (_me,), + ((TAG_FIELD_SPECIFICATION_RESPONSE, {_sN: _i}),), +) + +FLOW_LOG: StaticSchema = ( + 18, + n0, + _FLl, + 0, + ( + _CT, + _DLEM, + _DLPA, + _DCAR, + _DLS, + _FLIl, + _FLS, + _LGN, + _RIe, + _TTr, + _LDT, + _LD, + _LF, + _Tag, + _MAI, + _DOe, + _TFS, + ), + ( + (MILLISECOND_DATE_TIME, {_aQN: _CT, _sN: _cT}), + (STRING, {_aQN: _DLEM, _sN: _dLEM}), + (STRING, {_aQN: _DLPA, _sN: _dLPA}), + (STRING, {_aQN: _DCAR, _sN: _dCAR}), + (STRING, {_aQN: _DLS, _sN: _dLS}), + (STRING, {_aQN: _FLIl, _sN: _fLI}), + (STRING, {_aQN: _FLS, _sN: _fLS}), + (STRING, {_aQN: _LGN, _sN: _lGN}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRAFFIC_TYPE, {_aQN: _TTr, _sN: _tTra}), + (LOG_DESTINATION_TYPE, {_aQN: _LDT, _sN: _lDTo}), + (STRING, {_aQN: _LD, _sN: _lD}), + (STRING, {_aQN: _LF, _sN: _lF}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (INTEGER, {_aQN: _MAI, _sN: _mAI}), + (DESTINATION_OPTIONS_RESPONSE, {_aQN: _DOe, _sN: _dOe}), + (TAG_FIELD_SPECIFICATION_LIST_RESPONSE, {_aQN: _TFSS, _sN: _tFSS}), + ), +) + +FLOW_LOG_SET: StaticSchema = (16, n0, _FLSl, 0, (_me,), ((FLOW_LOG, {_sN: _i}),)) + +DESCRIBE_FLOW_LOGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLOe, + {_sSI: _cDFLRoma, _smit: None}, + (_FLlo, _NTex), + ((FLOW_LOG_SET, {_aQN: _FLSl, _sN: _fLSl}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_FLOW_LOGS: StaticOperationSchema = ( + 23, + n0, + _DFLe, + 0, + DESCRIBE_FLOW_LOGS_INPUT, + DESCRIBE_FLOW_LOGS_OUTPUT, + (), +) + +FPGA_IMAGE_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _FIAN, + 0, + (_desc, _nam, _lPo, _pCr), + ((-1, {_sV: _desc}), (-1, {_sV: _nam}), (-1, {_sV: _lPo}), (-1, {_sV: _pCr})), +) + +DESCRIBE_FPGA_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DFIAI, + {_sSI: _cDFIAR, _sm: None}, + (_DR, _FII, _Attr), + ((BOOLEAN, 0), (FPGA_IMAGE_ID, 1), (FPGA_IMAGE_ATTRIBUTE_NAME, 1)), +) + +PERMISSION_GROUP: StaticSchema = (14, n0, _PGe, 0, (_all_,), ((-1, {_sV: _all_}),)) + +LOAD_PERMISSION: StaticSchema = ( + 18, + n0, + _LPo, + 0, + (_UIs, _Gr), + ((STRING, {_aQN: _UIs, _sN: _uI}), (PERMISSION_GROUP, {_aQN: _Gr, _sN: _gro})), +) + +LOAD_PERMISSION_LIST: StaticSchema = ( + 16, + n0, + _LPL, + 0, + (_me,), + ((LOAD_PERMISSION, {_sN: _i}),), +) + +PRODUCT_CODE_VALUES: StaticSchema = ( + 14, + n0, + _PCV, + 0, + (_devp, _mar), + ((-1, {_sV: _devp}), (-1, {_sV: _mar})), +) + +PRODUCT_CODE: StaticSchema = ( + 18, + n0, + _PCr, + 0, + (_PCIr, _PCT), + ((STRING, {_aQN: _PCr, _sN: _pCro}), (PRODUCT_CODE_VALUES, {_aQN: _Ty, _sN: _ty})), +) + +PRODUCT_CODE_LIST: StaticSchema = ( + 16, + n0, + _PCLr, + 0, + (_me,), + ((PRODUCT_CODE, {_sN: _i}),), +) + +FPGA_IMAGE_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _FIA, + 0, + (_FII, _N, _Des, _LPoa, _PCro), + ( + (STRING, {_aQN: _FII, _sN: _fII}), + (STRING, {_aQN: _N, _sN: _nam}), + (STRING, {_aQN: _Des, _sN: _desc}), + (LOAD_PERMISSION_LIST, {_aQN: _LPoa, _sN: _lPoa}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + ), +) + +DESCRIBE_FPGA_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DFIAO, + {_sSI: _cDFIARo, _smit: None}, + (_FIA,), + ((FPGA_IMAGE_ATTRIBUTE, {_aQN: _FIA, _sN: _fIA}),), +) + +DESCRIBE_FPGA_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DFIA, + 0, + DESCRIBE_FPGA_IMAGE_ATTRIBUTE_INPUT, + DESCRIBE_FPGA_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +FPGA_IMAGE_ID_LIST: StaticSchema = ( + 16, + n0, + _FIIL, + 0, + (_me,), + ((FPGA_IMAGE_ID, {_sN: _i}),), +) + +DESCRIBE_FPGA_IMAGES_MAX_RESULTS: StaticSchema = (7, n0, _DFIMR, 0) + +OWNER_STRING_LIST: StaticSchema = (16, n0, _OSL, 0, (_me,), ((STRING, {_sN: _Ow}),)) + +DESCRIBE_FPGA_IMAGES_INPUT: StaticSchema = ( + 18, + n0, + _DFIIes, + {_sSI: _cDFIRomam, _sm: None}, + (_DR, _FIIp, _Own, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (FPGA_IMAGE_ID_LIST, {_sN: _FII}), + (OWNER_STRING_LIST, {_sN: _Ow}), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (DESCRIBE_FPGA_IMAGES_MAX_RESULTS, 0), + ), +) + +INSTANCE_TYPES_LIST: StaticSchema = (16, n0, _ITL, 0, (_me,), ((STRING, {_sN: _i}),)) + +PCI_ID: StaticSchema = ( + 18, + n0, + _PIc, + 0, + (_DIev, _VIe, _SIub, _SVIu), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +FPGA_IMAGE_STATE_CODE: StaticSchema = ( + 14, + n0, + _FISC, + 0, + (_p, _fa, _av, _unav), + ((-1, {_sV: _p}), (-1, {_sV: _fa}), (-1, {_sV: _av}), (-1, {_sV: _unav})), +) + +FPGA_IMAGE_STATE: StaticSchema = ( + 18, + n0, + _FISp, + 0, + (_C, _Me), + ((FPGA_IMAGE_STATE_CODE, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +FPGA_IMAGE: StaticSchema = ( + 18, + n0, + _FIp, + 0, + ( + _FII, + _FIGI, + _N, + _Des, + _SVh, + _PIc, + _St, + _CTr, + _UT, + _OIw, + _OAw, + _PCro, + _Tag, + _Pu, + _DRSa, + _ITnsta, + ), + ( + (STRING, {_aQN: _FII, _sN: _fII}), + (STRING, {_aQN: _FIGI, _sN: _fIGI}), + (STRING, {_aQN: _N, _sN: _nam}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _SVh, _sN: _sVh}), + (PCI_ID, {_aQN: _PIc, _sN: _pIc}), + (FPGA_IMAGE_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (DATE_TIME, {_aQN: _UT, _sN: _uT}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _OAw, _sN: _oAw}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (TAG_LIST, {_aQN: _Tag, _sN: _tags}), + (BOOLEAN, {_aQN: _Pu, _sN: _pu}), + (BOOLEAN, {_aQN: _DRSa, _sN: _dRS}), + (INSTANCE_TYPES_LIST, {_aQN: _ITnsta, _sN: _iTnst}), + ), +) + +FPGA_IMAGE_LIST: StaticSchema = (16, n0, _FIL, 0, (_me,), ((FPGA_IMAGE, {_sN: _i}),)) + +DESCRIBE_FPGA_IMAGES_OUTPUT: StaticSchema = ( + 18, + n0, + _DFIOes, + {_sSI: _cDFIRomama, _smit: None}, + (_FIpg, _NTex), + ( + (FPGA_IMAGE_LIST, {_aQN: _FISpg, _sN: _fISp}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_FPGA_IMAGES: StaticOperationSchema = ( + 23, + n0, + _DFIescri, + 0, + DESCRIBE_FPGA_IMAGES_INPUT, + DESCRIBE_FPGA_IMAGES_OUTPUT, + (), +) + +DESCRIBE_HOST_RESERVATIONS_MAX_RESULTS: StaticSchema = (7, n0, _DHRMR, 0) + +DESCRIBE_HOST_RESERVATION_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DHROI, + {_sSI: _cDHROR, _sm: None}, + (_Fi, _MDa, _MR, _MDi, _NTex, _OI), + ( + (FILTER_LIST, 0), + (INTEGER, 0), + (DESCRIBE_HOST_RESERVATIONS_MAX_RESULTS, 0), + (INTEGER, 0), + (STRING, 0), + (OFFERING_ID, 0), + ), +) + +PAYMENT_OPTION: StaticSchema = ( + 14, + n0, + _POa, + 0, + (_AU, _PU_, _NU), + ((-1, {_sV: _AUl}), (-1, {_sV: _PUa}), (-1, {_sV: _NUo})), +) + +HOST_OFFERING: StaticSchema = ( + 18, + n0, + _HOo, + 0, + (_CC, _Dur, _HP, _IF, _OI, _POa, _UPp), + ( + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (INTEGER, {_aQN: _Dur, _sN: _dur}), + (STRING, {_aQN: _HP, _sN: _hP}), + (STRING, {_aQN: _IF, _sN: _iF}), + (OFFERING_ID, {_aQN: _OI, _sN: _oIf}), + (PAYMENT_OPTION, {_aQN: _POa, _sN: _pOa}), + (STRING, {_aQN: _UPp, _sN: _uPp}), + ), +) + +HOST_OFFERING_SET: StaticSchema = ( + 16, + n0, + _HOS, + 0, + (_me,), + ((HOST_OFFERING, {_sN: _i}),), +) + +DESCRIBE_HOST_RESERVATION_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DHROO, + {_sSI: _cDHRORo, _smit: None}, + (_NTex, _OS), + ((STRING, {_aQN: _NTex, _sN: _nT}), (HOST_OFFERING_SET, {_aQN: _OS, _sN: _oS})), +) + +DESCRIBE_HOST_RESERVATION_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DHRO, + 0, + DESCRIBE_HOST_RESERVATION_OFFERINGS_INPUT, + DESCRIBE_HOST_RESERVATION_OFFERINGS_OUTPUT, + (), +) + +HOST_RESERVATION_ID: StaticSchema = (3, n0, _HRI, 0) + +HOST_RESERVATION_ID_SET: StaticSchema = ( + 16, + n0, + _HRIS, + 0, + (_me,), + ((HOST_RESERVATION_ID, {_sN: _i}),), +) + +DESCRIBE_HOST_RESERVATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DHRI, + {_sSI: _cDHRR, _sm: None}, + (_Fi, _HRIS, _MR, _NTex), + ((FILTER_LIST, 0), (HOST_RESERVATION_ID_SET, 0), (INTEGER, 0), (STRING, 0)), +) + +RESPONSE_HOST_ID_SET: StaticSchema = (16, n0, _RHIS, 0, (_me,), ((STRING, {_sN: _i}),)) + +RESERVATION_STATE: StaticSchema = ( + 14, + n0, + _RSes, + 0, + ( + _ACTIVE, + _EXPIRED, + _CANCELLED, + _SCHEDULED, + _PENDING, + _FAILED, + _DELAYED, + _UNSUPPORTED, + _PP, + _PF___, + _RETIRED, + ), + ( + (-1, {_sV: _act}), + (-1, {_sV: _ex}), + (-1, {_sV: _can}), + (-1, {_sV: _sch}), + (-1, {_sV: _p}), + (-1, {_sV: _fa}), + (-1, {_sV: _dela}), + (-1, {_sV: _uns}), + (-1, {_sV: _pp___}), + (-1, {_sV: _pf_____}), + (-1, {_sV: _reti}), + ), +) + +HOST_RESERVATION: StaticSchema = ( + 18, + n0, + _HRo, + 0, + (_Cou, _CC, _Dur, _End, _HIS, _HRI, _HP, _IF, _OI, _POa, _Star, _St, _UPp, _Tag), + ( + (INTEGER, {_aQN: _Cou, _sN: _cou}), + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (INTEGER, {_aQN: _Dur, _sN: _dur}), + (DATE_TIME, {_aQN: _End, _sN: _end}), + (RESPONSE_HOST_ID_SET, {_aQN: _HIS, _sN: _hIS}), + (HOST_RESERVATION_ID, {_aQN: _HRI, _sN: _hRI}), + (STRING, {_aQN: _HP, _sN: _hP}), + (STRING, {_aQN: _IF, _sN: _iF}), + (OFFERING_ID, {_aQN: _OI, _sN: _oIf}), + (PAYMENT_OPTION, {_aQN: _POa, _sN: _pOa}), + (DATE_TIME, {_aQN: _Star, _sN: _star}), + (RESERVATION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _UPp, _sN: _uPp}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +HOST_RESERVATION_SET: StaticSchema = ( + 16, + n0, + _HRSo, + 0, + (_me,), + ((HOST_RESERVATION, {_sN: _i}),), +) + +DESCRIBE_HOST_RESERVATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DHROe, + {_sSI: _cDHRRo, _smit: None}, + (_HRSo, _NTex), + ( + (HOST_RESERVATION_SET, {_aQN: _HRSo, _sN: _hRSo}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_HOST_RESERVATIONS: StaticOperationSchema = ( + 23, + n0, + _DHR, + 0, + DESCRIBE_HOST_RESERVATIONS_INPUT, + DESCRIBE_HOST_RESERVATIONS_OUTPUT, + (), +) + +REQUEST_HOST_ID_LIST: StaticSchema = ( + 16, + n0, + _RHILe, + 0, + (_me,), + ((DEDICATED_HOST_ID, {_sN: _i}),), +) + +DESCRIBE_HOSTS_INPUT: StaticSchema = ( + 18, + n0, + _DHIes, + {_sSI: _cDHR, _sm: None}, + (_HI, _NTex, _MR, _Fi), + ( + (REQUEST_HOST_ID_LIST, {_aQN: _HIo, _sN: _hI}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + (FILTER_LIST, {_aQN: _Fi, _sN: _filt}), + ), +) + +INSTANCE_CAPACITY: StaticSchema = ( + 18, + n0, + _ICns, + 0, + (_ACv, _IT, _TCo), + ( + (INTEGER, {_aQN: _ACv, _sN: _aCv}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _TCo, _sN: _tC}), + ), +) + +AVAILABLE_INSTANCE_CAPACITY_LIST: StaticSchema = ( + 16, + n0, + _AICL, + 0, + (_me,), + ((INSTANCE_CAPACITY, {_sN: _i}),), +) + +AVAILABLE_CAPACITY: StaticSchema = ( + 18, + n0, + _ACv, + 0, + (_AICv, _AVC), + ( + (AVAILABLE_INSTANCE_CAPACITY_LIST, {_aQN: _AICv, _sN: _aICv}), + (INTEGER, {_aQN: _AVC, _sN: _aVC}), + ), +) + +HOST_CPU_OPTIONS: StaticSchema = ( + 18, + n0, + _HCO, + 0, + (_ASS,), + ((AMD_SEV_SNP, {_aQN: _ASS, _sN: _aSS}),), +) + +HOST_PROPERTIES: StaticSchema = ( + 18, + n0, + _HPo, + 0, + (_Cor, _IT, _IF, _Soc, _TVC), + ( + (INTEGER, {_aQN: _Cor, _sN: _cor}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _IF, _sN: _iF}), + (INTEGER, {_aQN: _Soc, _sN: _soc}), + (INTEGER, {_aQN: _TVC, _sN: _tVC}), + ), +) + +HOST_INSTANCE: StaticSchema = ( + 18, + n0, + _HIos, + 0, + (_II, _IT, _OIw), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _OIw, _sN: _oI}), + ), +) + +HOST_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _HIL, + 0, + (_me,), + ((HOST_INSTANCE, {_sN: _i}),), +) + +HOST: StaticSchema = ( + 18, + n0, + _Hos, + 0, + ( + _APu, + _AZ, + _ACv, + _CTl, + _HIo, + _HPo, + _HRI, + _Ins, + _St, + _ATll, + _RTel, + _Tag, + _HR, + _AMIT, + _OIw, + _AZI, + _MOSLRG, + _OA, + _HM, + _AIss, + _CO, + ), + ( + (AUTO_PLACEMENT, {_aQN: _APu, _sN: _aP}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (AVAILABLE_CAPACITY, {_aQN: _ACv, _sN: _aCv}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (STRING, {_aQN: _HIo, _sN: _hI}), + (HOST_PROPERTIES, {_aQN: _HPo, _sN: _hPo}), + (STRING, {_aQN: _HRI, _sN: _hRI}), + (HOST_INSTANCE_LIST, {_aQN: _Ins, _sN: _insta}), + (ALLOCATION_STATE, {_aQN: _St, _sN: _st}), + (DATE_TIME, {_aQN: _ATll, _sN: _aTll}), + (DATE_TIME, {_aQN: _RTel, _sN: _rTel}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (HOST_RECOVERY, {_aQN: _HR, _sN: _hR}), + (ALLOWS_MULTIPLE_INSTANCE_TYPES, {_aQN: _AMIT, _sN: _aMIT}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (BOOLEAN, {_aQN: _MOSLRG, _sN: _mOSLRG}), + (STRING, {_aQN: _OA, _sN: _oA}), + (HOST_MAINTENANCE, {_aQN: _HM, _sN: _hM}), + (ASSET_ID, {_aQN: _AIss, _sN: _aIss}), + (HOST_CPU_OPTIONS, {_aQN: _CO, _sN: _cOp}), + ), +) + +HOST_LIST: StaticSchema = (16, n0, _HL, 0, (_me,), ((HOST, {_sN: _i}),)) + +DESCRIBE_HOSTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DHO, + {_sSI: _cDHRo, _smit: None}, + (_Host, _NTex), + ((HOST_LIST, {_aQN: _HSo, _sN: _hS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_HOSTS: StaticOperationSchema = ( + 23, + n0, + _DH, + 0, + DESCRIBE_HOSTS_INPUT, + DESCRIBE_HOSTS_OUTPUT, + (), +) + +IAM_INSTANCE_PROFILE_ASSOCIATION_ID: StaticSchema = (3, n0, _IIPAI, 0) + +ASSOCIATION_ID_LIST: StaticSchema = ( + 16, + n0, + _AILs, + 0, + (_me,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION_ID, {_sN: _AIs}),), +) + +DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DIIPAMR, + 0, +) + +DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DIIPAI, + {_sSI: _cDIIPAR, _sm: None}, + (_AIsso, _Fil, _MR, _NTex), + ( + (ASSOCIATION_ID_LIST, {_sN: _AIs}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IAM_INSTANCE_PROFILE_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _IIPASa, + 0, + (_me,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIPAO, + {_sSI: _cDIIPARo, _smit: None}, + (_IIPAa, _NTex), + ( + (IAM_INSTANCE_PROFILE_ASSOCIATION_SET, {_aQN: _IIPASa, _sN: _iIPAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DIIPA, + 0, + DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_INPUT, + DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_IDENTITY_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _DIIFI, + {_sSI: _cDIIFR, _sm: None}, + (_Reso, _PAr), + ( + (STRING, {_aQN: _Reso, _sN: _reso}), + (STRING, {_aQN: _PAr, _sN: _pAr, _smi: None}), + ), +) + +DESCRIBE_IDENTITY_ID_FORMAT_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIFO, + {_sSI: _cDIIFRo, _smit: None}, + (_Statu,), + ((ID_FORMAT_LIST, {_aQN: _SSta, _sN: _sSt}),), +) + +DESCRIBE_IDENTITY_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _DIIF, + 0, + DESCRIBE_IDENTITY_ID_FORMAT_INPUT, + DESCRIBE_IDENTITY_ID_FORMAT_OUTPUT, + (), +) + +DESCRIBE_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _DIFI, + {_sSI: _cDIFR, _sm: None}, + (_Reso,), + ((STRING, 0),), +) + +DESCRIBE_ID_FORMAT_OUTPUT: StaticSchema = ( + 18, + n0, + _DIFO, + {_sSI: _cDIFRo, _smit: None}, + (_Statu,), + ((ID_FORMAT_LIST, {_aQN: _SSta, _sN: _sSt}),), +) + +DESCRIBE_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _DIFe, + 0, + DESCRIBE_ID_FORMAT_INPUT, + DESCRIBE_ID_FORMAT_OUTPUT, + (), +) + +IMAGE_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _IAN, + 0, + (_desc, _ker, _ramd, _lPa, _pCr, _bDM, _sNS, _bMo, _tSp, _uDe, _lLT, _iSm, _dPer), + ( + (-1, {_sV: _desc}), + (-1, {_sV: _ker}), + (-1, {_sV: _ramd}), + (-1, {_sV: _lPa}), + (-1, {_sV: _pCr}), + (-1, {_sV: _bDM}), + (-1, {_sV: _sNS}), + (-1, {_sV: _bMo}), + (-1, {_sV: _tSp}), + (-1, {_sV: _uDe}), + (-1, {_sV: _lLT}), + (-1, {_sV: _iSm}), + (-1, {_sV: _dPer}), + ), +) + +DESCRIBE_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DIAI, + {_sSI: _cDIAR, _sm: None}, + (_Attr, _IIm, _DR), + ((IMAGE_ATTRIBUTE_NAME, 1), (IMAGE_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +BLOCK_DEVICE_MAPPING_LIST: StaticSchema = ( + 16, + n0, + _BDML, + 0, + (_me,), + ((BLOCK_DEVICE_MAPPING, {_sN: _i}),), +) + +LAUNCH_PERMISSION: StaticSchema = ( + 18, + n0, + _LPa, + 0, + (_OAr, _OUA, _UIs, _Gr), + ( + (STRING, {_aQN: _OAr, _sN: _oAr}), + (STRING, {_aQN: _OUA, _sN: _oUA}), + (STRING, {_aQN: _UIs, _sN: _uI}), + (PERMISSION_GROUP, {_aQN: _Gr, _sN: _gro}), + ), +) + +LAUNCH_PERMISSION_LIST: StaticSchema = ( + 16, + n0, + _LPLa, + 0, + (_me,), + ((LAUNCH_PERMISSION, {_sN: _i}),), +) + +DESCRIBE_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DIAO, + {_sSI: _cIAo, _smit: None}, + ( + _Des, + _KI, + _RIa, + _SNSr, + _BMo, + _TSp, + _UDe, + _LLT, + _ISm, + _DPer, + _IIm, + _LPau, + _PCro, + _BDMl, + ), + ( + (ATTRIBUTE_VALUE, {_aQN: _Des, _sN: _desc}), + (ATTRIBUTE_VALUE, {_aQN: _Ker, _sN: _ker}), + (ATTRIBUTE_VALUE, {_aQN: _Ra, _sN: _ramd}), + (ATTRIBUTE_VALUE, {_aQN: _SNSr, _sN: _sNS}), + (ATTRIBUTE_VALUE, {_aQN: _BMo, _sN: _bMo}), + (ATTRIBUTE_VALUE, {_aQN: _TSp, _sN: _tSp}), + (ATTRIBUTE_VALUE, {_aQN: _UDe, _sN: _uDe}), + (ATTRIBUTE_VALUE, {_aQN: _LLT, _sN: _lLT}), + (ATTRIBUTE_VALUE, {_aQN: _ISm, _sN: _iSm}), + (ATTRIBUTE_VALUE, {_aQN: _DPer, _sN: _dPer}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (LAUNCH_PERMISSION_LIST, {_aQN: _LPa, _sN: _lPa}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + ), +) + +DESCRIBE_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DIA, + 0, + DESCRIBE_IMAGE_ATTRIBUTE_INPUT, + DESCRIBE_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +DESCRIBE_IMAGE_REFERENCES_IMAGE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _DIRIISL, + 0, + (_me,), + ((IMAGE_ID, 0),), +) + +DESCRIBE_IMAGE_REFERENCES_MAX_RESULTS: StaticSchema = (7, n0, _DIRMR, 0) + +IMAGE_REFERENCE_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IRRT, + 0, + (_EI_, _ELT, _SP_, _IBIR, _IBCR), + ( + (-1, {_sV: _eIc}), + (-1, {_sV: _eLT}), + (-1, {_sV: _sPs}), + (-1, {_sV: _iIR}), + (-1, {_sV: _iCR}), + ), +) + +IMAGE_REFERENCE_OPTION_NAME: StaticSchema = ( + 14, + n0, + _IRON, + 0, + (_SN_, _VD_), + ((-1, {_sV: _sn__}), (-1, {_sV: _vd})), +) + +RESOURCE_TYPE_OPTION_VALUE: StaticSchema = (3, n0, _RTOV, 0) + +RESOURCE_TYPE_OPTION_VALUES_LIST: StaticSchema = ( + 16, + n0, + _RTOVL, + 0, + (_me,), + ((RESOURCE_TYPE_OPTION_VALUE, 0),), +) + +RESOURCE_TYPE_OPTION: StaticSchema = ( + 18, + n0, + _RTOe, + 0, + (_ON, _OV), + ((IMAGE_REFERENCE_OPTION_NAME, 0), (RESOURCE_TYPE_OPTION_VALUES_LIST, {_sN: _OVp})), +) + +RESOURCE_TYPE_OPTION_LIST: StaticSchema = ( + 16, + n0, + _RTOL, + 0, + (_me,), + ((RESOURCE_TYPE_OPTION, 0),), +) + +RESOURCE_TYPE_REQUEST: StaticSchema = ( + 18, + n0, + _RTRe, + 0, + (_RT, _RTO), + ((IMAGE_REFERENCE_RESOURCE_TYPE, 0), (RESOURCE_TYPE_OPTION_LIST, {_sN: _RTOe})), +) + +RESOURCE_TYPE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _RTRL, + 0, + (_me,), + ((RESOURCE_TYPE_REQUEST, 0),), +) + +DESCRIBE_IMAGE_REFERENCES_INPUT: StaticSchema = ( + 18, + n0, + _DIRI, + {_sSI: _cDIRR, _sm: None}, + (_IIma, _IART, _RTe, _NTex, _DR, _MR), + ( + (DESCRIBE_IMAGE_REFERENCES_IMAGE_ID_STRING_LIST, {_sN: _IIm, _smi: None}), + (BOOLEAN, 0), + (RESOURCE_TYPE_REQUEST_LIST, {_sN: _RT}), + (STRING, 0), + (BOOLEAN, 0), + (DESCRIBE_IMAGE_REFERENCES_MAX_RESULTS, 0), + ), +) + +IMAGE_REFERENCE: StaticSchema = ( + 18, + n0, + _IRm, + 0, + (_IIm, _RT, _Ar), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (IMAGE_REFERENCE_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _Ar, _sN: _ar}), + ), +) + +IMAGE_REFERENCE_LIST: StaticSchema = ( + 16, + n0, + _IRLm, + 0, + (_me,), + ((IMAGE_REFERENCE, {_sN: _i}),), +) + +DESCRIBE_IMAGE_REFERENCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRO, + {_sSI: _cDIRRo, _smit: None}, + (_NTex, _IRma), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (IMAGE_REFERENCE_LIST, {_aQN: _IRS, _sN: _iRS}), + ), +) + +DESCRIBE_IMAGE_REFERENCES: StaticOperationSchema = ( + 23, + n0, + _DIR, + 0, + DESCRIBE_IMAGE_REFERENCES_INPUT, + DESCRIBE_IMAGE_REFERENCES_OUTPUT, + (), +) + +EXECUTABLE_BY_STRING_LIST: StaticSchema = ( + 16, + n0, + _EBSL, + 0, + (_me,), + ((STRING, {_sN: _EBx}),), +) + +IMAGE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _IISLm, + 0, + (_me,), + ((IMAGE_ID, {_sN: _IIm}),), +) + +DESCRIBE_IMAGES_INPUT: StaticSchema = ( + 18, + n0, + _DIIes, + {_sSI: _cDIRomam, _sm: None}, + (_EU, _IIma, _Own, _IDn, _IDnc, _MR, _NTex, _DR, _Fil), + ( + (EXECUTABLE_BY_STRING_LIST, {_sN: _EBx}), + (IMAGE_ID_STRING_LIST, {_sN: _IIm}), + (OWNER_STRING_LIST, {_sN: _Ow}), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +ARCHITECTURE_VALUES: StaticSchema = ( + 14, + n0, + _AVr, + 0, + ( + _i__________________________________________________________________________, + _x______________________________________________________, + _arm, + _xm____________, + _am______, + ), + ( + ( + -1, + { + _sV: _i__________________________________________________________________________ + }, + ), + (-1, {_sV: _x______________________________________________________}), + (-1, {_sV: _arm}), + (-1, {_sV: _xm____________}), + (-1, {_sV: _am______}), + ), +) + +BOOT_MODE_VALUES: StaticSchema = ( + 14, + n0, + _BMV, + 0, + (_lb__, _ue, _up__), + ((-1, {_sV: _lb___}), (-1, {_sV: _ue}), (-1, {_sV: _up___})), +) + +HYPERVISOR_TYPE: StaticSchema = ( + 14, + n0, + _HTy, + 0, + (_ovm, _xen), + ((-1, {_sV: _ovm}), (-1, {_sV: _xen})), +) + +IMAGE_TYPE_VALUES: StaticSchema = ( + 14, + n0, + _ITV, + 0, + (_mach, _ker, _ramd), + ((-1, {_sV: _mach}), (-1, {_sV: _ker}), (-1, {_sV: _ramd})), +) + +IMAGE_WATERMARK: StaticSchema = ( + 18, + n0, + _IW, + 0, + (_WK, _SIR, _SII, _SICT, _WCT), + ( + (STRING, {_aQN: _WK, _sN: _wK}), + (STRING, {_aQN: _SIR, _sN: _sIR}), + (STRING, {_aQN: _SII, _sN: _sII}), + (MILLISECOND_DATE_TIME, {_aQN: _SICT, _sN: _sICT}), + (MILLISECOND_DATE_TIME, {_aQN: _WCT, _sN: _wCT}), + ), +) + +IMAGE_WATERMARK_LIST: StaticSchema = ( + 16, + n0, + _IWL, + 0, + (_me,), + ((IMAGE_WATERMARK, {_sN: _i}),), +) + +IMDS_SUPPORT_VALUES: StaticSchema = ( + 14, + n0, + _ISVm, + 0, + (_v______,), + ((-1, {_sV: _v_______}),), +) + +INSTANCE_TYPE_ITEM: StaticSchema = ( + 18, + n0, + _ITIn, + 0, + (_IT,), + ((STRING, {_aQN: _IT, _sN: _iT}),), +) + +SUPPORTED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _SITS, + 0, + (_me,), + ((INSTANCE_TYPE_ITEM, {_sN: _i}),), +) + +UNSUPPORTED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _UITS, + 0, + (_me,), + ((INSTANCE_TYPE_ITEM, {_sN: _i}),), +) + +INSTANCE_TYPE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _ITSn, + 0, + (_SITu, _UIT), + ( + (SUPPORTED_INSTANCE_TYPE_SET, {_aQN: _SITS, _sN: _sITS}), + (UNSUPPORTED_INSTANCE_TYPE_SET, {_aQN: _UITS, _sN: _uITS}), + ), +) + +DEVICE_TYPE: StaticSchema = ( + 14, + n0, + _DTev, + 0, + (_eb, _is__), + ((-1, {_sV: _eb}), (-1, {_sV: _is___})), +) + +SEVERITY_LABEL: StaticSchema = ( + 14, + n0, + _SLe, + 0, + (_inform, _low, _medi, _hig, _cri), + ( + (-1, {_sV: _inform}), + (-1, {_sV: _low}), + (-1, {_sV: _medi}), + (-1, {_sV: _hig}), + (-1, {_sV: _cri}), + ), +) + +SCAN_RESULTS: StaticSchema = ( + 18, + n0, + _SRc, + 0, + (_HFSL, _FSD, _IFAS, _LFAS, _MFAS, _HFAS, _CFAS), + ( + (SEVERITY_LABEL, {_aQN: _HFSL, _sN: _hFSL}), + (MILLISECOND_DATE_TIME, {_aQN: _FSD, _sN: _fSD}), + (MILLISECOND_DATE_TIME, {_aQN: _IFAS, _sN: _iFAS}), + (MILLISECOND_DATE_TIME, {_aQN: _LFAS, _sN: _lFAS}), + (MILLISECOND_DATE_TIME, {_aQN: _MFAS, _sN: _mFAS}), + (MILLISECOND_DATE_TIME, {_aQN: _HFAS, _sN: _hFAS}), + (MILLISECOND_DATE_TIME, {_aQN: _CFAS, _sN: _cFAS}), + ), +) + +IMAGE_STATE: StaticSchema = ( + 14, + n0, + _ISma, + 0, + (_p, _av, _inv, _der, _tran, _fa, _er, _d), + ( + (-1, {_sV: _p}), + (-1, {_sV: _av}), + (-1, {_sV: _inv}), + (-1, {_sV: _der}), + (-1, {_sV: _tran}), + (-1, {_sV: _fa}), + (-1, {_sV: _er}), + (-1, {_sV: _d}), + ), +) + +TPM_SUPPORT_VALUES: StaticSchema = ( + 14, + n0, + _TSV, + 0, + (_v______,), + ((-1, {_sV: _v_______}),), +) + +VIRTUALIZATION_TYPE: StaticSchema = ( + 14, + n0, + _VTi, + 0, + (_hv, _para), + ((-1, {_sV: _hv}), (-1, {_sV: _para})), +) + +IMAGE: StaticSchema = ( + 18, + n0, + _Im, + 0, + ( + _PDl, + _UO, + _BDMl, + _Des, + _ESna, + _Hy, + _IOA, + _N, + _RDN, + _RDT, + _SNSr, + _SRt, + _Tag, + _VTi, + _BMo, + _TSp, + _DTep, + _ISm, + _SIIo, + _DPer, + _LLT, + _IAm, + _SII, + _SIR, + _FTE, + _PSPN, + _IWm, + _SRc, + _ITSn, + _IIm, + _ILm, + _St, + _OIw, + _CDre, + _Pu, + _PCro, + _Arc, + _ITm, + _KI, + _RIa, + _Pla, + ), + ( + (STRING, {_aQN: _PDl, _sN: _pDl}), + (STRING, {_aQN: _UO, _sN: _uO}), + (BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _ESna, _sN: _eSna}), + (HYPERVISOR_TYPE, {_aQN: _Hy, _sN: _hy}), + (STRING, {_aQN: _IOA, _sN: _iOA}), + (STRING, {_aQN: _N, _sN: _nam}), + (STRING, {_aQN: _RDN, _sN: _rDN}), + (DEVICE_TYPE, {_aQN: _RDT, _sN: _rDT}), + (STRING, {_aQN: _SNSr, _sN: _sNS}), + (STATE_REASON, {_aQN: _SRt, _sN: _sRt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VIRTUALIZATION_TYPE, {_aQN: _VTi, _sN: _vTi}), + (BOOT_MODE_VALUES, {_aQN: _BMo, _sN: _bMo}), + (TPM_SUPPORT_VALUES, {_aQN: _TSp, _sN: _tSp}), + (STRING, {_aQN: _DTep, _sN: _dTep}), + (IMDS_SUPPORT_VALUES, {_aQN: _ISm, _sN: _iSm}), + (STRING, {_aQN: _SIIo, _sN: _sIIo}), + (STRING, {_aQN: _DPer, _sN: _dPer}), + (STRING, {_aQN: _LLT, _sN: _lLT}), + (BOOLEAN, {_aQN: _IAm, _sN: _iAm}), + (STRING, {_aQN: _SII, _sN: _sII}), + (STRING, {_aQN: _SIR, _sN: _sIR}), + (BOOLEAN, {_aQN: _FTE, _sN: _fTE}), + (STRING, {_aQN: _PSPN, _sN: _pSPN}), + (IMAGE_WATERMARK_LIST, {_aQN: _IWS, _sN: _iWS}), + (SCAN_RESULTS, {_aQN: _SRc, _sN: _sRc}), + (INSTANCE_TYPE_SPECIFICATION, {_aQN: _ITSn, _sN: _iTS}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _ILm, _sN: _iL}), + (IMAGE_STATE, {_aQN: _ISma, _sN: _iSma}), + (STRING, {_aQN: _IOIm, _sN: _iOIm}), + (STRING, {_aQN: _CDre, _sN: _cDre}), + (BOOLEAN, {_aQN: _IPsu, _sN: _iPsu}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (ARCHITECTURE_VALUES, {_aQN: _Arc, _sN: _arch}), + (IMAGE_TYPE_VALUES, {_aQN: _ITm, _sN: _iTm}), + (STRING, {_aQN: _KI, _sN: _kI}), + (STRING, {_aQN: _RIa, _sN: _rIa}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat}), + ), +) + +IMAGE_LIST: StaticSchema = (16, n0, _ILma, 0, (_me,), ((IMAGE, {_sN: _i}),)) + +DESCRIBE_IMAGES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOes, + {_sSI: _cDIRomama, _smit: None}, + (_NTex, _Ima), + ((STRING, {_aQN: _NTex, _sN: _nT}), (IMAGE_LIST, {_aQN: _ISmag, _sN: _iSmag})), +) + +DESCRIBE_IMAGES: StaticOperationSchema = ( + 23, + n0, + _DIesc, + 0, + DESCRIBE_IMAGES_INPUT, + DESCRIBE_IMAGES_OUTPUT, + (), +) + +DESCRIBE_IMAGE_USAGE_REPORTS_IMAGE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _DIURIISL, + 0, + (_me,), + ((IMAGE_ID, 0),), +) + +DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_MAX_RESULTS: StaticSchema = (7, n0, _DIUREMR, 0) + +IMAGE_USAGE_REPORT_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _IURISL, + 0, + (_me,), + ((IMAGE_USAGE_REPORT_ID, 0),), +) + +DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_INPUT: StaticSchema = ( + 18, + n0, + _DIUREI, + {_sSI: _cDIURER, _sm: None}, + (_IIma, _RIepo, _NTex, _Fil, _DR, _MR), + ( + (DESCRIBE_IMAGE_USAGE_REPORTS_IMAGE_ID_STRING_LIST, {_sN: _IIm}), + (IMAGE_USAGE_REPORT_ID_STRING_LIST, {_sN: _RIep}), + (STRING, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + (DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_MAX_RESULTS, 0), + ), +) + +IMAGE_USAGE_REPORT_ENTRY: StaticSchema = ( + 18, + n0, + _IURE, + 0, + (_RT, _RIep, _UCs, _AIcco, _IIm, _RCT), + ( + (IMAGE_USAGE_RESOURCE_TYPE_NAME, {_aQN: _RT, _sN: _rT}), + (IMAGE_USAGE_REPORT_ID, {_aQN: _RIep, _sN: _rIe}), + (LONG, {_aQN: _UCs, _sN: _uCs}), + (STRING, {_aQN: _AIcco, _sN: _aIc}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (MILLISECOND_DATE_TIME, {_aQN: _RCT, _sN: _rCT}), + ), +) + +IMAGE_USAGE_REPORT_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _IUREL, + 0, + (_me,), + ((IMAGE_USAGE_REPORT_ENTRY, {_sN: _i}),), +) + +DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIUREO, + {_sSI: _cDIURERo, _smit: None}, + (_NTex, _IUREm), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (IMAGE_USAGE_REPORT_ENTRY_LIST, {_aQN: _IURES, _sN: _iURES}), + ), +) + +DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES: StaticOperationSchema = ( + 23, + n0, + _DIURE, + 0, + DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_INPUT, + DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_OUTPUT, + (), +) + +DESCRIBE_IMAGE_USAGE_REPORTS_MAX_RESULTS: StaticSchema = (7, n0, _DIURMR, 0) + +DESCRIBE_IMAGE_USAGE_REPORTS_INPUT: StaticSchema = ( + 18, + n0, + _DIURIe, + {_sSI: _cDIURRom, _sm: None}, + (_IIma, _RIepo, _NTex, _Fil, _DR, _MR), + ( + (DESCRIBE_IMAGE_USAGE_REPORTS_IMAGE_ID_STRING_LIST, {_sN: _IIm}), + (IMAGE_USAGE_REPORT_ID_STRING_LIST, {_sN: _RIep}), + (STRING, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + (DESCRIBE_IMAGE_USAGE_REPORTS_MAX_RESULTS, 0), + ), +) + +USER_ID_LIST: StaticSchema = (16, n0, _UIL, 0, (_me,), ((STRING, {_sN: _i}),)) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION: StaticSchema = ( + 18, + n0, + _IURTO, + 0, + (_ON, _OV), + ( + (STRING, {_aQN: _ON, _sN: _oN}), + (IMAGE_USAGE_RESOURCE_TYPE_OPTION_VALUES_LIST, {_aQN: _OVS, _sN: _oVS}), + ), +) + +IMAGE_USAGE_RESOURCE_TYPE_OPTION_LIST: StaticSchema = ( + 16, + n0, + _IURTOL, + 0, + (_me,), + ((IMAGE_USAGE_RESOURCE_TYPE_OPTION, {_sN: _i}),), +) + +IMAGE_USAGE_RESOURCE_TYPE: StaticSchema = ( + 18, + n0, + _IURT, + 0, + (_RT, _RTO), + ( + (IMAGE_USAGE_RESOURCE_TYPE_NAME, {_aQN: _RT, _sN: _rT}), + (IMAGE_USAGE_RESOURCE_TYPE_OPTION_LIST, {_aQN: _RTOS, _sN: _rTOS}), + ), +) + +IMAGE_USAGE_RESOURCE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _IURTL, + 0, + (_me,), + ((IMAGE_USAGE_RESOURCE_TYPE, {_sN: _i}),), +) + +IMAGE_USAGE_REPORT_STATE: StaticSchema = (3, n0, _IURS, 0) + +IMAGE_USAGE_REPORT_STATE_REASON: StaticSchema = (3, n0, _IURSR, 0) + +IMAGE_USAGE_REPORT: StaticSchema = ( + 18, + n0, + _IUR, + 0, + (_IIm, _RIep, _RTe, _AIcc, _St, _SRt, _CT, _ET, _Tag), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (IMAGE_USAGE_REPORT_ID, {_aQN: _RIep, _sN: _rIe}), + (IMAGE_USAGE_RESOURCE_TYPE_LIST, {_aQN: _RTS, _sN: _rTS}), + (USER_ID_LIST, {_aQN: _AISc, _sN: _aISc}), + (IMAGE_USAGE_REPORT_STATE, {_aQN: _St, _sN: _st}), + (IMAGE_USAGE_REPORT_STATE_REASON, {_aQN: _SRt, _sN: _sRt}), + (MILLISECOND_DATE_TIME, {_aQN: _CT, _sN: _cT}), + (MILLISECOND_DATE_TIME, {_aQN: _ET, _sN: _eT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +IMAGE_USAGE_REPORT_LIST: StaticSchema = ( + 16, + n0, + _IURL, + 0, + (_me,), + ((IMAGE_USAGE_REPORT, {_sN: _i}),), +) + +DESCRIBE_IMAGE_USAGE_REPORTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIUROe, + {_sSI: _cDIURRoma, _smit: None}, + (_NTex, _IURm), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (IMAGE_USAGE_REPORT_LIST, {_aQN: _IURSm, _sN: _iURS}), + ), +) + +DESCRIBE_IMAGE_USAGE_REPORTS: StaticOperationSchema = ( + 23, + n0, + _DIURe, + 0, + DESCRIBE_IMAGE_USAGE_REPORTS_INPUT, + DESCRIBE_IMAGE_USAGE_REPORTS_OUTPUT, + (), +) + +IMPORT_IMAGE_TASK_ID: StaticSchema = (3, n0, _IITI, 0) + +IMPORT_TASK_ID_LIST: StaticSchema = ( + 16, + n0, + _ITIL, + 0, + (_me,), + ((IMPORT_IMAGE_TASK_ID, {_sN: _ITI}),), +) + +DESCRIBE_IMPORT_IMAGE_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DIITI, + {_sSI: _cDIITR, _sm: None}, + (_DR, _Fil, _ITIm, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fil}), + (IMPORT_TASK_ID_LIST, {_sN: _ITI}), + (INTEGER, 0), + (STRING, 0), + ), +) + +IMPORT_IMAGE_LICENSE_CONFIGURATION_RESPONSE: StaticSchema = ( + 18, + n0, + _IILCR, + 0, + (_LCA,), + ((STRING, {_aQN: _LCA, _sN: _lCA}),), +) + +IMPORT_IMAGE_LICENSE_SPECIFICATION_LIST_RESPONSE: StaticSchema = ( + 16, + n0, + _IILSLR, + 0, + (_me,), + ((IMPORT_IMAGE_LICENSE_CONFIGURATION_RESPONSE, {_sN: _i}),), +) + +SENSITIVE_URL: StaticSchema = (3, n0, _SU, 4) + +USER_BUCKET_DETAILS: StaticSchema = ( + 18, + n0, + _UBD, + 0, + (_SBu, _SK), + ((STRING, {_aQN: _SBu, _sN: _sB}), (STRING, {_aQN: _SK, _sN: _sK})), +) + +SNAPSHOT_DETAIL: StaticSchema = ( + 18, + n0, + _SDn, + 0, + (_Des, _DNe, _DISi, _For, _Prog, _SIn, _Sta, _SMt, _Ur, _UB), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _DNe, _sN: _dNe}), + (DOUBLE, {_aQN: _DISi, _sN: _dIS}), + (STRING, {_aQN: _For, _sN: _fo}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (SENSITIVE_URL, {_aQN: _Ur, _sN: _ur}), + (USER_BUCKET_DETAILS, {_aQN: _UB, _sN: _uB}), + ), +) + +SNAPSHOT_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _SDL, + 0, + (_me,), + ((SNAPSHOT_DETAIL, {_sN: _i}),), +) + +IMPORT_IMAGE_TASK: StaticSchema = ( + 18, + n0, + _IIT, + 0, + ( + _Arc, + _Des, + _En, + _Hy, + _IIm, + _ITI, + _KKI, + _LTi, + _Pla, + _Prog, + _SDna, + _Sta, + _SMt, + _Tag, + _LSic, + _UO, + _BMo, + ), + ( + (STRING, {_aQN: _Arc, _sN: _arch}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _Hy, _sN: _hy}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _ITI, _sN: _iTI}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + (STRING, {_aQN: _LTi, _sN: _lTi}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (SNAPSHOT_DETAIL_LIST, {_aQN: _SDSn, _sN: _sDSn}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IMPORT_IMAGE_LICENSE_SPECIFICATION_LIST_RESPONSE, {_aQN: _LSic, _sN: _lSic}), + (STRING, {_aQN: _UO, _sN: _uO}), + (BOOT_MODE_VALUES, {_aQN: _BMo, _sN: _bMo}), + ), +) + +IMPORT_IMAGE_TASK_LIST: StaticSchema = ( + 16, + n0, + _IITL, + 0, + (_me,), + ((IMPORT_IMAGE_TASK, {_sN: _i}),), +) + +DESCRIBE_IMPORT_IMAGE_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIITO, + {_sSI: _cDIITRo, _smit: None}, + (_IITm, _NTex), + ( + (IMPORT_IMAGE_TASK_LIST, {_aQN: _IITS, _sN: _iITS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IMPORT_IMAGE_TASKS: StaticOperationSchema = ( + 23, + n0, + _DIIT, + 0, + DESCRIBE_IMPORT_IMAGE_TASKS_INPUT, + DESCRIBE_IMPORT_IMAGE_TASKS_OUTPUT, + (), +) + +IMPORT_SNAPSHOT_TASK_ID: StaticSchema = (3, n0, _ISTI, 0) + +IMPORT_SNAPSHOT_TASK_ID_LIST: StaticSchema = ( + 16, + n0, + _ISTIL, + 0, + (_me,), + ((IMPORT_SNAPSHOT_TASK_ID, {_sN: _ITI}),), +) + +DESCRIBE_IMPORT_SNAPSHOT_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DISTI, + {_sSI: _cDISTR, _sm: None}, + (_DR, _Fil, _ITIm, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fil}), + (IMPORT_SNAPSHOT_TASK_ID_LIST, {_sN: _ITI}), + (INTEGER, 0), + (STRING, 0), + ), +) + +SNAPSHOT_TASK_DETAIL: StaticSchema = ( + 18, + n0, + _STDn, + 0, + (_Des, _DISi, _En, _For, _KKI, _Prog, _SIn, _Sta, _SMt, _Ur, _UB), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (DOUBLE, {_aQN: _DISi, _sN: _dIS}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _For, _sN: _fo}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (SENSITIVE_URL, {_aQN: _Ur, _sN: _ur}), + (USER_BUCKET_DETAILS, {_aQN: _UB, _sN: _uB}), + ), +) + +IMPORT_SNAPSHOT_TASK: StaticSchema = ( + 18, + n0, + _ISTm, + 0, + (_Des, _ITI, _STDn, _Tag), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _ITI, _sN: _iTI}), + (SNAPSHOT_TASK_DETAIL, {_aQN: _STDn, _sN: _sTD}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +IMPORT_SNAPSHOT_TASK_LIST: StaticSchema = ( + 16, + n0, + _ISTL, + 0, + (_me,), + ((IMPORT_SNAPSHOT_TASK, {_sN: _i}),), +) + +DESCRIBE_IMPORT_SNAPSHOT_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DISTO, + {_sSI: _cDISTRo, _smit: None}, + (_ISTmp, _NTex), + ( + (IMPORT_SNAPSHOT_TASK_LIST, {_aQN: _ISTS, _sN: _iSTS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IMPORT_SNAPSHOT_TASKS: StaticOperationSchema = ( + 23, + n0, + _DIST, + 0, + DESCRIBE_IMPORT_SNAPSHOT_TASKS_INPUT, + DESCRIBE_IMPORT_SNAPSHOT_TASKS_OUTPUT, + (), +) + +INSTANCE_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _IANn, + 0, + ( + _iT, + _ker, + _ramd, + _uDs, + _dAT, + _iISB, + _rDN, + _bDM, + _pCr, + _sDC, + _gS, + _eO, + _sNS, + _eSna, + _eOn, + _dASi, + ), + ( + (-1, {_sV: _iT}), + (-1, {_sV: _ker}), + (-1, {_sV: _ramd}), + (-1, {_sV: _uDs}), + (-1, {_sV: _dAT}), + (-1, {_sV: _iISB}), + (-1, {_sV: _rDN}), + (-1, {_sV: _bDM}), + (-1, {_sV: _pCr}), + (-1, {_sV: _sDC}), + (-1, {_sV: _gS}), + (-1, {_sV: _eO}), + (-1, {_sV: _sNS}), + (-1, {_sV: _eSna}), + (-1, {_sV: _eOn}), + (-1, {_sV: _dASi}), + ), +) + +DESCRIBE_INSTANCE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DIAIe, + {_sSI: _cDIARo, _sm: None}, + (_DR, _II, _Attr), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (INSTANCE_ATTRIBUTE_NAME, {_aQN: _Attr, _sN: _attr, _smi: None}), + ), +) + +EBS_INSTANCE_BLOCK_DEVICE: StaticSchema = ( + 18, + n0, + _EIBD, + 0, + (_ATtt, _DOT, _Sta, _VIo, _ARs, _VOIo, _Op, _ECI), + ( + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (STRING, {_aQN: _ARs, _sN: _aRs}), + (STRING, {_aQN: _VOIo, _sN: _vOIo}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (INTEGER, {_aQN: _ECI, _sN: _eCI}), + ), +) + +INSTANCE_BLOCK_DEVICE_MAPPING: StaticSchema = ( + 18, + n0, + _IBDM, + 0, + (_DNe, _Eb), + ( + (STRING, {_aQN: _DNe, _sN: _dNe}), + (EBS_INSTANCE_BLOCK_DEVICE, {_aQN: _Eb, _sN: _eb}), + ), +) + +INSTANCE_BLOCK_DEVICE_MAPPING_LIST: StaticSchema = ( + 16, + n0, + _IBDML, + 0, + (_me,), + ((INSTANCE_BLOCK_DEVICE_MAPPING, {_sN: _i}),), +) + +ATTRIBUTE_BOOLEAN_VALUE: StaticSchema = ( + 18, + n0, + _ABV, + 0, + (_Va,), + ((BOOLEAN, {_aQN: _Va, _sN: _va}),), +) + +ENCLAVE_OPTIONS: StaticSchema = ( + 18, + n0, + _EOn, + 0, + (_Ena,), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena}),), +) + +DESCRIBE_INSTANCE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DIAOe, + {_sSI: _cIAom, _smit: None}, + ( + _BDMl, + _DAT, + _ESna, + _EOn, + _EO, + _II, + _IISB, + _IT, + _KI, + _PCro, + _RIa, + _RDN, + _SDC, + _SNSr, + _UDs, + _DASi, + _G, + ), + ( + (INSTANCE_BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _DAT, _sN: _dAT}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _ESna, _sN: _eSna}), + (ENCLAVE_OPTIONS, {_aQN: _EOn, _sN: _eOn}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _EO, _sN: _eO}), + (STRING, {_aQN: _II, _sN: _iI}), + (ATTRIBUTE_VALUE, {_aQN: _IISB, _sN: _iISB}), + (ATTRIBUTE_VALUE, {_aQN: _IT, _sN: _iT}), + (ATTRIBUTE_VALUE, {_aQN: _Ker, _sN: _ker}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (ATTRIBUTE_VALUE, {_aQN: _Ra, _sN: _ramd}), + (ATTRIBUTE_VALUE, {_aQN: _RDN, _sN: _rDN}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _SDC, _sN: _sDC}), + (ATTRIBUTE_VALUE, {_aQN: _SNSr, _sN: _sNS}), + (ATTRIBUTE_VALUE, {_aQN: _UDs, _sN: _uDs}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _DASi, _sN: _dASi}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + ), +) + +DESCRIBE_INSTANCE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DIAe, + 0, + DESCRIBE_INSTANCE_ATTRIBUTE_INPUT, + DESCRIBE_INSTANCE_ATTRIBUTE_OUTPUT, + (), +) + +INSTANCE_CONNECT_ENDPOINT_MAX_RESULTS: StaticSchema = (7, n0, _ICEMR, 0) + +DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DICEIe, + {_sSI: _cDICERom, _sm: None}, + (_DR, _MR, _NTex, _Fil, _ICEIn), + ( + (BOOLEAN, 0), + (INSTANCE_CONNECT_ENDPOINT_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (VALUE_STRING_LIST, {_sN: _ICEI}), + ), +) + +INSTANCE_CONNECT_ENDPOINT_SET: StaticSchema = ( + 16, + n0, + _ICES, + 0, + (_me,), + ((EC2_INSTANCE_CONNECT_ENDPOINT, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DICEOe, + {_sSI: _cDICERoma, _smit: None}, + (_ICEn, _NTex), + ( + (INSTANCE_CONNECT_ENDPOINT_SET, {_aQN: _ICES, _sN: _iCES}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_CONNECT_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DICEe, + 0, + DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_INPUT, + DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_MAX_RESULTS: StaticSchema = (7, n0, _DICSMR, 0) + +DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DICSI, + {_sSI: _cDICSR, _sm: None}, + (_DR, _Fil, _IIn, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_MAX_RESULTS, 0), + (STRING, 0), + ), +) + +INSTANCE_CREDIT_SPECIFICATION: StaticSchema = ( + 18, + n0, + _ICS, + 0, + (_II, _CCp), + ((STRING, {_aQN: _II, _sN: _iI}), (STRING, {_aQN: _CCp, _sN: _cCp})), +) + +INSTANCE_CREDIT_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _ICSL, + 0, + (_me,), + ((INSTANCE_CREDIT_SPECIFICATION, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DICSO, + {_sSI: _cDICSRo, _smit: None}, + (_ICSn, _NTex), + ( + (INSTANCE_CREDIT_SPECIFICATION_LIST, {_aQN: _ICSS, _sN: _iCSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DICS, + 0, + DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_INPUT, + DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DIENAIe, + {_sSI: _cDIENARom, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIENAOe, + {_sSI: _cDIENARoma, _smit: None}, + (_ITA,), + ((INSTANCE_TAG_NOTIFICATION_ATTRIBUTE, {_aQN: _ITA, _sN: _iTA}),), +) + +DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DIENAe, + 0, + DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT, + DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT, + (), +) + +INSTANCE_EVENT_WINDOW_ID_SET: StaticSchema = ( + 16, + n0, + _IEWIS, + 0, + (_me,), + ((INSTANCE_EVENT_WINDOW_ID, {_sN: _IEWI}),), +) + +RESULT_RANGE: StaticSchema = (7, n0, _RRe, 0) + +DESCRIBE_INSTANCE_EVENT_WINDOWS_INPUT: StaticSchema = ( + 18, + n0, + _DIEWIe, + {_sSI: _cDIEWRom, _sm: None}, + (_DR, _IEWIn, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (INSTANCE_EVENT_WINDOW_ID_SET, {_sN: _IEWI}), + (FILTER_LIST, {_sN: _Fi}), + (RESULT_RANGE, 0), + (STRING, 0), + ), +) + +INSTANCE_EVENT_WINDOW_SET: StaticSchema = ( + 16, + n0, + _IEWSn, + 0, + (_me,), + ((INSTANCE_EVENT_WINDOW, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_EVENT_WINDOWS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIEWOe, + {_sSI: _cDIEWRoma, _smit: None}, + (_IEWn, _NTex), + ( + (INSTANCE_EVENT_WINDOW_SET, {_aQN: _IEWSn, _sN: _iEWSn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_EVENT_WINDOWS: StaticOperationSchema = ( + 23, + n0, + _DIEWe, + 0, + DESCRIBE_INSTANCE_EVENT_WINDOWS_INPUT, + DESCRIBE_INSTANCE_EVENT_WINDOWS_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_IMAGE_METADATA_MAX_RESULTS: StaticSchema = (7, n0, _DIIMMR, 0) + +DESCRIBE_INSTANCE_IMAGE_METADATA_INPUT: StaticSchema = ( + 18, + n0, + _DIIMI, + {_sSI: _cDIIMR, _sm: None}, + (_Fil, _IIn, _MR, _NTex, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (DESCRIBE_INSTANCE_IMAGE_METADATA_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +IMAGE_METADATA: StaticSchema = ( + 18, + n0, + _IM, + 0, + (_IIm, _N, _OIw, _St, _IOA, _CDre, _DTep, _IAm, _IPsu, _IWm), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _N, _sN: _nam}), + (STRING, {_aQN: _IOIm, _sN: _iOIm}), + (IMAGE_STATE, {_aQN: _ISma, _sN: _iSma}), + (STRING, {_aQN: _IOA, _sN: _iOA}), + (STRING, {_aQN: _CDre, _sN: _cDre}), + (STRING, {_aQN: _DTep, _sN: _dTep}), + (BOOLEAN, {_aQN: _IAm, _sN: _iAm}), + (BOOLEAN, {_aQN: _IPsu, _sN: _iPsu}), + (IMAGE_WATERMARK_LIST, {_aQN: _IWS, _sN: _iWS}), + ), +) + +INSTANCE_STATE_NAME: StaticSchema = ( + 14, + n0, + _ISN, + 0, + (_p, _ru, _sd__, _termin, _stopp, _stoppe), + ( + (-1, {_sV: _p}), + (-1, {_sV: _ru}), + (-1, {_sV: _sd___}), + (-1, {_sV: _termin}), + (-1, {_sV: _stopp}), + (-1, {_sV: _stoppe}), + ), +) + +INSTANCE_STATE: StaticSchema = ( + 18, + n0, + _ISnsta, + 0, + (_C, _N), + ((INTEGER, {_aQN: _C, _sN: _co}), (INSTANCE_STATE_NAME, {_aQN: _N, _sN: _nam})), +) + +INSTANCE_IMAGE_METADATA: StaticSchema = ( + 18, + n0, + _IIM, + 0, + (_II, _IT, _LTa, _AZ, _ZI, _St, _OIw, _Tag, _IM, _Op), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (MILLISECOND_DATE_TIME, {_aQN: _LTa, _sN: _lTa}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _ZI, _sN: _zI}), + (INSTANCE_STATE, {_aQN: _ISnsta, _sN: _iSnst}), + (STRING, {_aQN: _IOIn, _sN: _iOIn}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (IMAGE_METADATA, {_aQN: _IM, _sN: _iM}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +INSTANCE_IMAGE_METADATA_LIST: StaticSchema = ( + 16, + n0, + _IIML, + 0, + (_me,), + ((INSTANCE_IMAGE_METADATA, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_IMAGE_METADATA_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIMO, + {_sSI: _cDIIMRo, _smit: None}, + (_IIM, _NTex), + ( + (INSTANCE_IMAGE_METADATA_LIST, {_aQN: _IIMS, _sN: _iIMS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_IMAGE_METADATA: StaticOperationSchema = ( + 23, + n0, + _DIIM, + 0, + DESCRIBE_INSTANCE_IMAGE_METADATA_INPUT, + DESCRIBE_INSTANCE_IMAGE_METADATA_OUTPUT, + (), +) + +DESCRIBE_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DIIesc, + {_sSI: _cDIRomamaz, _sm: None}, + (_IIn, _IMR, _DR, _Fil, _NTex, _MR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + ), +) + +CAPACITY_RESERVATION_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _CRSR, + 0, + (_CRP, _CRTap), + ( + (CAPACITY_RESERVATION_PREFERENCE, {_aQN: _CRP, _sN: _cRP}), + (CAPACITY_RESERVATION_TARGET_RESPONSE, {_aQN: _CRTap, _sN: _cRT}), + ), +) + +CPU_OPTIONS: StaticSchema = ( + 18, + n0, + _CO, + 0, + (_CCor, _TPC, _ASS, _NV), + ( + (INTEGER, {_aQN: _CCor, _sN: _cCor}), + (INTEGER, {_aQN: _TPC, _sN: _tPC}), + (AMD_SEV_SNP_SPECIFICATION, {_aQN: _ASS, _sN: _aSS}), + (NESTED_VIRTUALIZATION_SPECIFICATION, {_aQN: _NV, _sN: _nV}), + ), +) + +INSTANCE_BOOT_MODE_VALUES: StaticSchema = ( + 14, + n0, + _IBMV, + 0, + (_lb__, _ue), + ((-1, {_sV: _lb___}), (-1, {_sV: _ue})), +) + +ELASTIC_GPU_ASSOCIATION: StaticSchema = ( + 18, + n0, + _EGA, + 0, + (_EGI, _EGAI, _EGAS, _EGAT), + ( + (ELASTIC_GPU_ID, {_aQN: _EGI, _sN: _eGI}), + (STRING, {_aQN: _EGAI, _sN: _eGAI}), + (STRING, {_aQN: _EGAS, _sN: _eGAS}), + (STRING, {_aQN: _EGAT, _sN: _eGAT}), + ), +) + +ELASTIC_GPU_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _EGAL, + 0, + (_me,), + ((ELASTIC_GPU_ASSOCIATION, {_sN: _i}),), +) + +ELASTIC_INFERENCE_ACCELERATOR_ASSOCIATION: StaticSchema = ( + 18, + n0, + _EIAA, + 0, + (_EIAAl, _EIAAI, _EIAAS, _EIAAT), + ( + (STRING, {_aQN: _EIAAl, _sN: _eIAA}), + (STRING, {_aQN: _EIAAI, _sN: _eIAAI}), + (STRING, {_aQN: _EIAAS, _sN: _eIAAS}), + (DATE_TIME, {_aQN: _EIAAT, _sN: _eIAAT}), + ), +) + +ELASTIC_INFERENCE_ACCELERATOR_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _EIAAL, + 0, + (_me,), + ((ELASTIC_INFERENCE_ACCELERATOR_ASSOCIATION, {_sN: _i}),), +) + +HIBERNATION_OPTIONS: StaticSchema = ( + 18, + n0, + _HO, + 0, + (_Conf,), + ((BOOLEAN, {_aQN: _Conf, _sN: _conf}),), +) + +INSTANCE_LIFECYCLE_TYPE: StaticSchema = ( + 14, + n0, + _ILT, + 0, + (_spo, _sch, _cb, _icr_), + ((-1, {_sV: _spo}), (-1, {_sV: _sch}), (-1, {_sV: _cb_}), (-1, {_sV: _icr})), +) + +LICENSE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LC, + 0, + (_LCA,), + ((STRING, {_aQN: _LCA, _sN: _lCA}),), +) + +LICENSE_LIST: StaticSchema = ( + 16, + n0, + _LL, + 0, + (_me,), + ((LICENSE_CONFIGURATION, {_sN: _i}),), +) + +INSTANCE_AUTO_RECOVERY_STATE: StaticSchema = ( + 14, + n0, + _IARS, + 0, + (_d, _def), + ((-1, {_sV: _d}), (-1, {_sV: _def})), +) + +INSTANCE_REBOOT_MIGRATION_STATE: StaticSchema = ( + 14, + n0, + _IRMS, + 0, + (_d, _def), + ((-1, {_sV: _d}), (-1, {_sV: _def})), +) + +INSTANCE_MAINTENANCE_OPTIONS: StaticSchema = ( + 18, + n0, + _IMOn, + 0, + (_ARu, _RMeb), + ( + (INSTANCE_AUTO_RECOVERY_STATE, {_aQN: _ARu, _sN: _aRu}), + (INSTANCE_REBOOT_MIGRATION_STATE, {_aQN: _RMeb, _sN: _rMeb}), + ), +) + +INSTANCE_METADATA_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _IMES, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +INSTANCE_METADATA_PROTOCOL_STATE: StaticSchema = ( + 14, + n0, + _IMPS, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +HTTP_TOKENS_STATE: StaticSchema = ( + 14, + n0, + _HTS, + 0, + (_opt, _requ), + ((-1, {_sV: _opt}), (-1, {_sV: _requ})), +) + +INSTANCE_METADATA_TAGS_STATE: StaticSchema = ( + 14, + n0, + _IMTS, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +INSTANCE_METADATA_OPTIONS_STATE: StaticSchema = ( + 14, + n0, + _IMOS, + 0, + (_p, _ap), + ((-1, {_sV: _p}), (-1, {_sV: _ap})), +) + +INSTANCE_METADATA_OPTIONS_RESPONSE: StaticSchema = ( + 18, + n0, + _IMOR, + 0, + (_St, _HTt, _HPRHL, _HE, _HPI, _IMT), + ( + (INSTANCE_METADATA_OPTIONS_STATE, {_aQN: _St, _sN: _st}), + (HTTP_TOKENS_STATE, {_aQN: _HTt, _sN: _hTt}), + (INTEGER, {_aQN: _HPRHL, _sN: _hPRHL}), + (INSTANCE_METADATA_ENDPOINT_STATE, {_aQN: _HE, _sN: _hE}), + (INSTANCE_METADATA_PROTOCOL_STATE, {_aQN: _HPI, _sN: _hPI}), + (INSTANCE_METADATA_TAGS_STATE, {_aQN: _IMT, _sN: _iMT}), + ), +) + +MONITORING_STATE: StaticSchema = ( + 14, + n0, + _MSon, + 0, + (_d, _disab, _ena, _p), + ((-1, {_sV: _d}), (-1, {_sV: _disab}), (-1, {_sV: _ena}), (-1, {_sV: _p})), +) + +MONITORING: StaticSchema = ( + 18, + n0, + _Mon, + 0, + (_St,), + ((MONITORING_STATE, {_aQN: _St, _sN: _st}),), +) + +INSTANCE_NETWORK_INTERFACE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _INIA, + 0, + (_CI, _COI, _IOI, _PDNu, _PI), + ( + (STRING, {_aQN: _CI, _sN: _cI}), + (STRING, {_aQN: _COI, _sN: _cOI}), + (STRING, {_aQN: _IOI, _sN: _iOI}), + (STRING, {_aQN: _PDNu, _sN: _pDNu}), + (STRING, {_aQN: _PI, _sN: _pI}), + ), +) + +INSTANCE_ATTACHMENT_ENA_SRD_UDP_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IAESUS, + 0, + (_ESUE,), + ((BOOLEAN, {_aQN: _ESUE, _sN: _eSUE}),), +) + +INSTANCE_ATTACHMENT_ENA_SRD_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IAESS, + 0, + (_ESE, _ESUS), + ( + (BOOLEAN, {_aQN: _ESE, _sN: _eSE}), + (INSTANCE_ATTACHMENT_ENA_SRD_UDP_SPECIFICATION, {_aQN: _ESUS, _sN: _eSUS}), + ), +) + +INSTANCE_NETWORK_INTERFACE_ATTACHMENT: StaticSchema = ( + 18, + n0, + _INIAn, + 0, + (_ATtt, _AIt, _DOT, _DI, _Sta, _NCI, _ESS, _EQC), + ( + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + (STRING, {_aQN: _AIt, _sN: _aIt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + (INSTANCE_ATTACHMENT_ENA_SRD_SPECIFICATION, {_aQN: _ESS, _sN: _eSS}), + (INTEGER, {_aQN: _EQC, _sN: _eQC}), + ), +) + +CONNECTION_TRACKING_SPECIFICATION_RESPONSE: StaticSchema = ( + 18, + n0, + _CTSRo, + 0, + (_TET, _UST, _UTd), + ( + (INTEGER, {_aQN: _TET, _sN: _tET}), + (INTEGER, {_aQN: _UST, _sN: _uST}), + (INTEGER, {_aQN: _UTd, _sN: _uTd}), + ), +) + +INSTANCE_IPV4_PREFIX: StaticSchema = ( + 18, + n0, + _IIPn, + 0, + (_IPpvre,), + ((STRING, {_aQN: _IPpvre, _sN: _iPp}),), +) + +INSTANCE_IPV4_PREFIX_LIST: StaticSchema = ( + 16, + n0, + _IIPL, + 0, + (_me,), + ((INSTANCE_IPV4_PREFIX, {_sN: _i}),), +) + +INSTANCE_IPV6_PREFIX: StaticSchema = ( + 18, + n0, + _IIPns, + 0, + (_IPpv,), + ((STRING, {_aQN: _IPpv, _sN: _iPpvr}),), +) + +INSTANCE_IPV6_PREFIX_LIST: StaticSchema = ( + 16, + n0, + _IIPLn, + 0, + (_me,), + ((INSTANCE_IPV6_PREFIX, {_sN: _i}),), +) + +INSTANCE_PRIVATE_IP_ADDRESS: StaticSchema = ( + 18, + n0, + _IPIA, + 0, + (_Ass, _Prim, _PDNr, _PIAr), + ( + (INSTANCE_NETWORK_INTERFACE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}), + (BOOLEAN, {_aQN: _Prim, _sN: _prim}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + ), +) + +INSTANCE_PRIVATE_IP_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _IPIAL, + 0, + (_me,), + ((INSTANCE_PRIVATE_IP_ADDRESS, {_sN: _i}),), +) + +INSTANCE_NETWORK_INTERFACE: StaticSchema = ( + 18, + n0, + _INI, + 0, + ( + _Ass, + _At, + _Des, + _G, + _IAp, + _MAa, + _NII, + _OIw, + _PDNr, + _PIAr, + _PIAri, + _SDC, + _Sta, + _SIu, + _VI, + _ITnte, + _IPpvr, + _IPp, + _CTC, + _Op, + ), + ( + (INSTANCE_NETWORK_INTERFACE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}), + (INSTANCE_NETWORK_INTERFACE_ATTACHMENT, {_aQN: _At, _sN: _atta}), + (STRING, {_aQN: _Des, _sN: _desc}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (INSTANCE_IPV6_ADDRESS_LIST, {_aQN: _IAS, _sN: _iAS}), + (STRING, {_aQN: _MAa, _sN: _mAa}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (INSTANCE_PRIVATE_IP_ADDRESS_LIST, {_aQN: _PIASr, _sN: _pIAS}), + (BOOLEAN, {_aQN: _SDC, _sN: _sDC}), + (NETWORK_INTERFACE_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _ITnte, _sN: _iTnt}), + (INSTANCE_IPV4_PREFIX_LIST, {_aQN: _IPSpv, _sN: _iPS}), + (INSTANCE_IPV6_PREFIX_LIST, {_aQN: _IPSpvr, _sN: _iPSp}), + (CONNECTION_TRACKING_SPECIFICATION_RESPONSE, {_aQN: _CTC, _sN: _cTC}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +INSTANCE_NETWORK_INTERFACE_LIST: StaticSchema = ( + 16, + n0, + _INIL, + 0, + (_me,), + ((INSTANCE_NETWORK_INTERFACE, {_sN: _i}),), +) + +INSTANCE_NETWORK_PERFORMANCE_OPTIONS: StaticSchema = ( + 18, + n0, + _INPO, + 0, + (_BW,), + ((INSTANCE_BANDWIDTH_WEIGHTING, {_aQN: _BW, _sN: _bW}),), +) + +PRIVATE_DNS_NAME_OPTIONS_RESPONSE: StaticSchema = ( + 18, + n0, + _PDNOR, + 0, + (_HT, _ERNDAR, _ERNDAAAAR), + ( + (HOSTNAME_TYPE, {_aQN: _HT, _sN: _hT}), + (BOOLEAN, {_aQN: _ERNDAR, _sN: _eRNDAR}), + (BOOLEAN, {_aQN: _ERNDAAAAR, _sN: _eRNDAAAAR}), + ), +) + +INSTANCE_SECONDARY_INTERFACE_ATTACHMENT: StaticSchema = ( + 18, + n0, + _ISIA, + 0, + (_ATtt, _AIt, _DOT, _DI, _Sta, _NCI), + ( + (MILLISECOND_DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + (STRING, {_aQN: _AIt, _sN: _aIt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + ), +) + +INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS: StaticSchema = ( + 18, + n0, + _ISIPIA, + 0, + (_PIAr,), + ((STRING, {_aQN: _PIAr, _sN: _pIAr}),), +) + +INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _ISIPIAL, + 0, + (_me,), + ((INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS, {_sN: _i}),), +) + +SECONDARY_INTERFACE_ID: StaticSchema = (3, n0, _SIIe, 0) + +SECONDARY_INTERFACE_STATUS: StaticSchema = ( + 14, + n0, + _SISe, + 0, + (_av, _iu), + ((-1, {_sV: _av}), (-1, {_sV: _iu_})), +) + +INSTANCE_SECONDARY_INTERFACE: StaticSchema = ( + 18, + n0, + _ISIn, + 0, + (_At, _MAa, _SIIe, _OIw, _PIAri, _SDC, _Sta, _SSIe, _SNI, _ITnte), + ( + (INSTANCE_SECONDARY_INTERFACE_ATTACHMENT, {_aQN: _At, _sN: _atta}), + (STRING, {_aQN: _MAa, _sN: _mAa}), + (SECONDARY_INTERFACE_ID, {_aQN: _SIIe, _sN: _sIIe}), + (STRING, {_aQN: _OIw, _sN: _oI}), + ( + INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_LIST, + {_aQN: _PIASri, _sN: _pIASr}, + ), + (BOOLEAN, {_aQN: _SDC, _sN: _sDC}), + (SECONDARY_INTERFACE_STATUS, {_aQN: _Sta, _sN: _sta}), + (SECONDARY_SUBNET_ID, {_aQN: _SSIe, _sN: _sSIe}), + (SECONDARY_NETWORK_ID, {_aQN: _SNI, _sN: _sNI}), + (SECONDARY_INTERFACE_TYPE, {_aQN: _ITnte, _sN: _iTnt}), + ), +) + +INSTANCE_SECONDARY_INTERFACE_LIST: StaticSchema = ( + 16, + n0, + _ISIL, + 0, + (_me,), + ((INSTANCE_SECONDARY_INTERFACE, {_sN: _i}),), +) + +INSTANCE: StaticSchema = ( + 18, + n0, + _In, + 0, + ( + _Arc, + _BDMl, + _CTl, + _EO, + _ESna, + _Hy, + _IIP, + _ILn, + _EGAl, + _EIAAla, + _NIe, + _OA, + _RDN, + _RDT, + _SGe, + _SDC, + _SIRI, + _SNSr, + _SRt, + _Tag, + _VTi, + _CO, + _CBI, + _CRI, + _CRSa, + _HO, + _Lic, + _MO, + _EOn, + _BMo, + _PDl, + _UO, + _UOUT, + _PDNO, + _IApv, + _TSp, + _MOa, + _CIBM, + _NPO, + _Op, + _SIec, + _II, + _IIm, + _St, + _PDNr, + _PDNu, + _STR, + _KN, + _ALI, + _PCro, + _IT, + _LTa, + _Pl, + _KI, + _RIa, + _Pla, + _Mon, + _SIu, + _VI, + _PIAr, + _PIAu, + ), + ( + (ARCHITECTURE_VALUES, {_aQN: _Arc, _sN: _arch}), + (INSTANCE_BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (BOOLEAN, {_aQN: _ESna, _sN: _eSna}), + (HYPERVISOR_TYPE, {_aQN: _Hy, _sN: _hy}), + (IAM_INSTANCE_PROFILE, {_aQN: _IIP, _sN: _iIP}), + (INSTANCE_LIFECYCLE_TYPE, {_aQN: _ILn, _sN: _iLn}), + (ELASTIC_GPU_ASSOCIATION_LIST, {_aQN: _EGASl, _sN: _eGASl}), + (ELASTIC_INFERENCE_ACCELERATOR_ASSOCIATION_LIST, {_aQN: _EIAASl, _sN: _eIAASl}), + (INSTANCE_NETWORK_INTERFACE_LIST, {_aQN: _NIS, _sN: _nIS}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _RDN, _sN: _rDN}), + (DEVICE_TYPE, {_aQN: _RDT, _sN: _rDT}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (BOOLEAN, {_aQN: _SDC, _sN: _sDC}), + (STRING, {_aQN: _SIRI, _sN: _sIRI}), + (STRING, {_aQN: _SNSr, _sN: _sNS}), + (STATE_REASON, {_aQN: _SRt, _sN: _sRt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (VIRTUALIZATION_TYPE, {_aQN: _VTi, _sN: _vTi}), + (CPU_OPTIONS, {_aQN: _CO, _sN: _cOp}), + (STRING, {_aQN: _CBI, _sN: _cBI}), + (STRING, {_aQN: _CRI, _sN: _cRI}), + (CAPACITY_RESERVATION_SPECIFICATION_RESPONSE, {_aQN: _CRSa, _sN: _cRS}), + (HIBERNATION_OPTIONS, {_aQN: _HO, _sN: _hO}), + (LICENSE_LIST, {_aQN: _LSicen, _sN: _lSi}), + (INSTANCE_METADATA_OPTIONS_RESPONSE, {_aQN: _MO, _sN: _mO}), + (ENCLAVE_OPTIONS, {_aQN: _EOn, _sN: _eOn}), + (BOOT_MODE_VALUES, {_aQN: _BMo, _sN: _bMo}), + (STRING, {_aQN: _PDl, _sN: _pDl}), + (STRING, {_aQN: _UO, _sN: _uO}), + (MILLISECOND_DATE_TIME, {_aQN: _UOUT, _sN: _uOUT}), + (PRIVATE_DNS_NAME_OPTIONS_RESPONSE, {_aQN: _PDNO, _sN: _pDNO}), + (STRING, {_aQN: _IApv, _sN: _iApv}), + (STRING, {_aQN: _TSp, _sN: _tSp}), + (INSTANCE_MAINTENANCE_OPTIONS, {_aQN: _MOa, _sN: _mOa}), + (INSTANCE_BOOT_MODE_VALUES, {_aQN: _CIBM, _sN: _cIBM}), + (INSTANCE_NETWORK_PERFORMANCE_OPTIONS, {_aQN: _NPO, _sN: _nPO}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (INSTANCE_SECONDARY_INTERFACE_LIST, {_aQN: _SIS, _sN: _sIS}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (INSTANCE_STATE, {_aQN: _ISnsta, _sN: _iSnst}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (STRING, {_aQN: _DN, _sN: _dN}), + (STRING, {_aQN: _Rea, _sN: _rea}), + (STRING, {_aQN: _KN, _sN: _kN}), + (INTEGER, {_aQN: _ALI, _sN: _aLI}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (DATE_TIME, {_aQN: _LTa, _sN: _lTa}), + (PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (STRING, {_aQN: _KI, _sN: _kI}), + (STRING, {_aQN: _RIa, _sN: _rIa}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat}), + (MONITORING, {_aQN: _Mon, _sN: _monit}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (STRING, {_aQN: _IA, _sN: _iApd}), + ), +) + +INSTANCE_LIST: StaticSchema = (16, n0, _ILns, 0, (_me,), ((INSTANCE, {_sN: _i}),)) + +RESERVATION: StaticSchema = ( + 18, + n0, + _Rese, + 0, + (_RI, _OIw, _RIeq, _G, _Ins), + ( + (STRING, {_aQN: _RI, _sN: _rIes}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _RIeq, _sN: _rIeq}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (INSTANCE_LIST, {_aQN: _ISnst, _sN: _iSns}), + ), +) + +RESERVATION_LIST: StaticSchema = (16, n0, _RLe, 0, (_me,), ((RESERVATION, {_sN: _i}),)) + +DESCRIBE_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOesc, + {_sSI: _cDIRomamazo, _smit: None}, + (_NTex, _Reser), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (RESERVATION_LIST, {_aQN: _RSese, _sN: _rSese}), + ), +) + +DESCRIBE_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DIescr, + 0, + DESCRIBE_INSTANCES_INPUT, + DESCRIBE_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_SQL_HA_STATES_REQUEST_MAX_RESULTS_INTEGER: StaticSchema = ( + 7, + n0, + _DISHSRMRI, + 0, +) + +DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_INPUT: StaticSchema = ( + 18, + n0, + _DISHHSI, + {_sSI: _cDISHHSR, _sm: None}, + (_IIn, _ST, _ETnd, _NTex, _MR, _Fil, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (NEXT_TOKEN, 0), + (DESCRIBE_INSTANCE_SQL_HA_STATES_REQUEST_MAX_RESULTS_INTEGER, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +HA_STATUS: StaticSchema = ( + 14, + n0, + _HSa, + 0, + (_proc, _act, _stand, _inv), + ((-1, {_sV: _proc}), (-1, {_sV: _act}), (-1, {_sV: _stand}), (-1, {_sV: _inv})), +) + +SQL_SERVER_LICENSE_USAGE: StaticSchema = ( + 14, + n0, + _SSLU, + 0, + (_ful, _wai), + ((-1, {_sV: _ful}), (-1, {_sV: _wai})), +) + +REGISTERED_INSTANCE: StaticSchema = ( + 18, + n0, + _RIeg, + 0, + (_II, _SSLU, _HSa, _PSro, _LUTa, _SSC, _Tag), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (SQL_SERVER_LICENSE_USAGE, {_aQN: _SSLU, _sN: _sSLU}), + (HA_STATUS, {_aQN: _HSa, _sN: _hSa}), + (STRING, {_aQN: _PSro, _sN: _pSro}), + (MILLISECOND_DATE_TIME, {_aQN: _LUTa, _sN: _lUTa}), + (STRING, {_aQN: _SSC, _sN: _sSC}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +REGISTERED_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _RILeg, + 0, + (_me,), + ((REGISTERED_INSTANCE, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_OUTPUT: StaticSchema = ( + 18, + n0, + _DISHHSO, + {_sSI: _cDISHHSRo, _smit: None}, + (_Ins, _NTex), + ( + (REGISTERED_INSTANCE_LIST, {_aQN: _ISns, _sN: _iSn}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES: StaticOperationSchema = ( + 23, + n0, + _DISHHS, + 0, + DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_INPUT, + DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_SQL_HA_STATES_INPUT: StaticSchema = ( + 18, + n0, + _DISHSI, + {_sSI: _cDISHSR, _sm: None}, + (_IIn, _NTex, _MR, _Fil, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (NEXT_TOKEN, 0), + (DESCRIBE_INSTANCE_SQL_HA_STATES_REQUEST_MAX_RESULTS_INTEGER, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +DESCRIBE_INSTANCE_SQL_HA_STATES_OUTPUT: StaticSchema = ( + 18, + n0, + _DISHSO, + {_sSI: _cDISHSRo, _smit: None}, + (_Ins, _NTex), + ( + (REGISTERED_INSTANCE_LIST, {_aQN: _ISns, _sN: _iSn}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_SQL_HA_STATES: StaticOperationSchema = ( + 23, + n0, + _DISHS, + 0, + DESCRIBE_INSTANCE_SQL_HA_STATES_INPUT, + DESCRIBE_INSTANCE_SQL_HA_STATES_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DISIe, + {_sSI: _cDISRom, _sm: None}, + (_IIn, _MR, _NTex, _IMR, _DR, _Fil, _IAI), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II}), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, {_aQN: _IAI, _sN: _iAI}), + ), +) + +SUMMARY_STATUS: StaticSchema = ( + 14, + n0, + _SSum, + 0, + (_ok, _imp, _id__, _na______, _init), + ( + (-1, {_sV: _ok}), + (-1, {_sV: _imp}), + (-1, {_sV: _id_}), + (-1, {_sV: _na_____}), + (-1, {_sV: _init}), + ), +) + +APPLICATION_STATUS_SUMMARY: StaticSchema = ( + 18, + n0, + _ASSp, + 0, + (_Sta, _ISmp), + ( + (SUMMARY_STATUS, {_aQN: _Sta, _sN: _sta}), + (MILLISECOND_DATE_TIME, {_aQN: _ISmp, _sN: _iSmp}), + ), +) + +STATUS_NAME: StaticSchema = (14, n0, _SNt, 0, (_reac,), ((-1, {_sV: _reac}),)) + +STATUS_TYPE: StaticSchema = ( + 14, + n0, + _STtat, + 0, + (_pas, _fa, _id__, _init), + ((-1, {_sV: _pas}), (-1, {_sV: _fa}), (-1, {_sV: _id_}), (-1, {_sV: _init})), +) + +EBS_STATUS_DETAILS: StaticSchema = ( + 18, + n0, + _ESD, + 0, + (_ISmp, _N, _Sta), + ( + (MILLISECOND_DATE_TIME, {_aQN: _ISmp, _sN: _iSmp}), + (STATUS_NAME, {_aQN: _N, _sN: _nam}), + (STATUS_TYPE, {_aQN: _Sta, _sN: _sta}), + ), +) + +EBS_STATUS_DETAILS_LIST: StaticSchema = ( + 16, + n0, + _ESDL, + 0, + (_me,), + ((EBS_STATUS_DETAILS, {_sN: _i}),), +) + +EBS_STATUS_SUMMARY: StaticSchema = ( + 18, + n0, + _ESSb, + 0, + (_Det, _Sta), + ( + (EBS_STATUS_DETAILS_LIST, {_aQN: _Det, _sN: _detai}), + (SUMMARY_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +EVENT_CODE: StaticSchema = ( + 14, + n0, + _ECv, + 0, + (_ir__, _sr, _sm__, _ir____, _is____), + ( + (-1, {_sV: _ir___}), + (-1, {_sV: _sr_}), + (-1, {_sV: _sm___}), + (-1, {_sV: _ir_____}), + (-1, {_sV: _is_____}), + ), +) + +INSTANCE_EVENT_ID: StaticSchema = (3, n0, _IEI, 0) + +INSTANCE_STATUS_EVENT: StaticSchema = ( + 18, + n0, + _ISEn, + 0, + (_IEI, _C, _Des, _NA, _NB, _NBD), + ( + (INSTANCE_EVENT_ID, {_aQN: _IEI, _sN: _iEI}), + (EVENT_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Des, _sN: _desc}), + (DATE_TIME, {_aQN: _NA, _sN: _nA}), + (DATE_TIME, {_aQN: _NB, _sN: _nB}), + (DATE_TIME, {_aQN: _NBD, _sN: _nBD}), + ), +) + +INSTANCE_STATUS_EVENT_LIST: StaticSchema = ( + 16, + n0, + _ISEL, + 0, + (_me,), + ((INSTANCE_STATUS_EVENT, {_sN: _i}),), +) + +INSTANCE_STATUS_DETAILS: StaticSchema = ( + 18, + n0, + _ISD, + 0, + (_ISmp, _N, _Sta), + ( + (DATE_TIME, {_aQN: _ISmp, _sN: _iSmp}), + (STATUS_NAME, {_aQN: _N, _sN: _nam}), + (STATUS_TYPE, {_aQN: _Sta, _sN: _sta}), + ), +) + +INSTANCE_STATUS_DETAILS_LIST: StaticSchema = ( + 16, + n0, + _ISDL, + 0, + (_me,), + ((INSTANCE_STATUS_DETAILS, {_sN: _i}),), +) + +INSTANCE_STATUS_SUMMARY: StaticSchema = ( + 18, + n0, + _ISSn, + 0, + (_Det, _Sta), + ( + (INSTANCE_STATUS_DETAILS_LIST, {_aQN: _Det, _sN: _detai}), + (SUMMARY_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +PERFORMANCE_STATUS_SUMMARY: StaticSchema = ( + 18, + n0, + _PSSe, + 0, + (_Sta, _ISmp, _Rem), + ( + (SUMMARY_STATUS, {_aQN: _Sta, _sN: _sta}), + (MILLISECOND_DATE_TIME, {_aQN: _ISmp, _sN: _iSmp}), + (STRING, {_aQN: _Rem, _sN: _rem}), + ), +) + +INSTANCE_STATUS: StaticSchema = ( + 18, + n0, + _ISnstan, + 0, + (_AZ, _AZI, _OA, _Op, _Ev, _II, _ISnsta, _ISnstan, _SSy, _AES, _ASp, _PSerf), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _OA, _sN: _oA}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (INSTANCE_STATUS_EVENT_LIST, {_aQN: _ESv, _sN: _eSv}), + (STRING, {_aQN: _II, _sN: _iI}), + (INSTANCE_STATE, {_aQN: _ISnsta, _sN: _iSnst}), + (INSTANCE_STATUS_SUMMARY, {_aQN: _ISnstan, _sN: _iSnsta}), + (INSTANCE_STATUS_SUMMARY, {_aQN: _SSy, _sN: _sSy}), + (EBS_STATUS_SUMMARY, {_aQN: _AES, _sN: _aES}), + (APPLICATION_STATUS_SUMMARY, {_aQN: _ASp, _sN: _aSp}), + (PERFORMANCE_STATUS_SUMMARY, {_aQN: _PSerf, _sN: _pSerf}), + ), +) + +INSTANCE_STATUS_LIST: StaticSchema = ( + 16, + n0, + _ISLn, + 0, + (_me,), + ((INSTANCE_STATUS, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DISOe, + {_sSI: _cDISRoma, _smit: None}, + (_ISnstanc, _NTex), + ( + (INSTANCE_STATUS_LIST, {_aQN: _ISSns, _sN: _iSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_STATUS: StaticOperationSchema = ( + 23, + n0, + _DISe, + 0, + DESCRIBE_INSTANCE_STATUS_INPUT, + DESCRIBE_INSTANCE_STATUS_OUTPUT, + (), +) + +DESCRIBE_INSTANCE_TOPOLOGY_GROUP_NAME_SET: StaticSchema = ( + 16, + n0, + _DITGNS, + 0, + (_me,), + ((PLACEMENT_GROUP_NAME, 0),), +) + +DESCRIBE_INSTANCE_TOPOLOGY_INSTANCE_ID_SET: StaticSchema = ( + 16, + n0, + _DITIIS, + 0, + (_me,), + ((INSTANCE_ID, 0),), +) + +DESCRIBE_INSTANCE_TOPOLOGY_MAX_RESULTS: StaticSchema = (7, n0, _DITMR, 0) + +DESCRIBE_INSTANCE_TOPOLOGY_INPUT: StaticSchema = ( + 18, + n0, + _DITI, + {_sSI: _cDITR, _sm: None}, + (_DR, _NTex, _MR, _IIn, _GNr, _Fil), + ( + (BOOLEAN, 0), + (STRING, 0), + (DESCRIBE_INSTANCE_TOPOLOGY_MAX_RESULTS, 0), + (DESCRIBE_INSTANCE_TOPOLOGY_INSTANCE_ID_SET, {_sN: _II}), + (DESCRIBE_INSTANCE_TOPOLOGY_GROUP_NAME_SET, {_sN: _GN}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +NETWORK_NODES_LIST: StaticSchema = (16, n0, _NNL, 0, (_me,), ((STRING, {_sN: _i}),)) + +INSTANCE_TOPOLOGY: StaticSchema = ( + 18, + n0, + _ITnstan, + 0, + (_II, _IT, _GN, _NN, _AZ, _ZI, _CBI), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _GN, _sN: _gN}), + (NETWORK_NODES_LIST, {_aQN: _NNS, _sN: _nNS}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _ZI, _sN: _zI}), + (STRING, {_aQN: _CBI, _sN: _cBI}), + ), +) + +INSTANCE_SET: StaticSchema = ( + 16, + n0, + _ISns, + 0, + (_me,), + ((INSTANCE_TOPOLOGY, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_TOPOLOGY_OUTPUT: StaticSchema = ( + 18, + n0, + _DITO, + {_sSI: _cDITRo, _smit: None}, + (_Ins, _NTex), + ((INSTANCE_SET, {_aQN: _ISns, _sN: _iSn}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_INSTANCE_TOPOLOGY: StaticOperationSchema = ( + 23, + n0, + _DIT, + 0, + DESCRIBE_INSTANCE_TOPOLOGY_INPUT, + DESCRIBE_INSTANCE_TOPOLOGY_OUTPUT, + (), +) + +LOCATION_TYPE: StaticSchema = ( + 14, + n0, + _LTo, + 0, + (_reg, _az, _azi, _out), + ((-1, {_sV: _reg}), (-1, {_sV: _az_}), (-1, {_sV: _azi_}), (-1, {_sV: _out})), +) + +DITO_MAX_RESULTS: StaticSchema = (7, n0, _DITOMR, 0) + +DESCRIBE_INSTANCE_TYPE_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DITOI, + {_sSI: _cDITOR, _sm: None}, + (_DR, _LTo, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (LOCATION_TYPE, 0), + (FILTER_LIST, {_sN: _Fi}), + (DITO_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +LOCATION: StaticSchema = (3, n0, _Loca, 0) + +INSTANCE_TYPE_OFFERING: StaticSchema = ( + 18, + n0, + _ITO, + 0, + (_IT, _LTo, _Loca), + ( + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (LOCATION_TYPE, {_aQN: _LTo, _sN: _lTo}), + (LOCATION, {_aQN: _Loca, _sN: _loca}), + ), +) + +INSTANCE_TYPE_OFFERINGS_LIST: StaticSchema = ( + 16, + n0, + _ITOL, + 0, + (_me,), + ((INSTANCE_TYPE_OFFERING, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_TYPE_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DITOO, + {_sSI: _cDITORo, _smit: None}, + (_ITOn, _NTex), + ( + (INSTANCE_TYPE_OFFERINGS_LIST, {_aQN: _ITOS, _sN: _iTOS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_TYPE_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DITOe, + 0, + DESCRIBE_INSTANCE_TYPE_OFFERINGS_INPUT, + DESCRIBE_INSTANCE_TYPE_OFFERINGS_OUTPUT, + (), +) + +INCLUDE_UNSUPPORTED_IN_REGION: StaticSchema = (2, n0, _IUIR, 0) + +REQUEST_INSTANCE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _RITL, + 0, + (_me,), + ((INSTANCE_TYPE, 0),), +) + +DIT_MAX_RESULTS: StaticSchema = (7, n0, _DITMRa, 0) + +DESCRIBE_INSTANCE_TYPES_INPUT: StaticSchema = ( + 18, + n0, + _DITIe, + {_sSI: _cDITRom, _sm: None}, + (_DR, _ITnsta, _Fil, _MR, _NTex, _IUIR), + ( + (BOOLEAN, 0), + (REQUEST_INSTANCE_TYPE_LIST, {_sN: _IT}), + (FILTER_LIST, {_sN: _Fi}), + (DIT_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (INCLUDE_UNSUPPORTED_IN_REGION, 0), + ), +) + +AUTO_RECOVERY_FLAG: StaticSchema = (2, n0, _ARF, 0) + +BARE_METAL_FLAG: StaticSchema = (2, n0, _BMF, 0) + +BURSTABLE_PERFORMANCE_FLAG: StaticSchema = (2, n0, _BPFu, 0) + +CURRENT_GENERATION_FLAG: StaticSchema = (2, n0, _CGF, 0) + +DEDICATED_HOST_FLAG: StaticSchema = (2, n0, _DHF, 0) + +ATTACHMENT_LIMIT_TYPE: StaticSchema = ( + 14, + n0, + _ALT, + 0, + (_SHARED, _DEDICATED), + ((-1, {_sV: _sh}), (-1, {_sV: _ded})), +) + +BASELINE_BANDWIDTH_IN_MBPS: StaticSchema = (7, n0, _BBIM, 0) + +BASELINE_IOPS: StaticSchema = (7, n0, _BIa, 0) + +BASELINE_THROUGHPUT_IN_M_BPS: StaticSchema = (10, n0, _BTIMB, 0) + +EBS_CARD_INDEX: StaticSchema = (7, n0, _ECI, 0) + +MAXIMUM_BANDWIDTH_IN_MBPS: StaticSchema = (7, n0, _MBIM, 0) + +MAXIMUM_IOPS: StaticSchema = (7, n0, _MI, 0) + +MAXIMUM_THROUGHPUT_IN_M_BPS: StaticSchema = (10, n0, _MTIMB, 0) + +EBS_CARD_INFO: StaticSchema = ( + 18, + n0, + _ECIb, + 0, + (_ECI, _BBIM, _BTIMB, _BIa, _MBIM, _MTIMB, _MI), + ( + (EBS_CARD_INDEX, {_aQN: _ECI, _sN: _eCI}), + (BASELINE_BANDWIDTH_IN_MBPS, {_aQN: _BBIM, _sN: _bBIM}), + (BASELINE_THROUGHPUT_IN_M_BPS, {_aQN: _BTIMB, _sN: _bTIMB}), + (BASELINE_IOPS, {_aQN: _BIa, _sN: _bIa}), + (MAXIMUM_BANDWIDTH_IN_MBPS, {_aQN: _MBIM, _sN: _mBIM}), + (MAXIMUM_THROUGHPUT_IN_M_BPS, {_aQN: _MTIMB, _sN: _mTIMB}), + (MAXIMUM_IOPS, {_aQN: _MI, _sN: _mI}), + ), +) + +EBS_CARD_INFO_LIST: StaticSchema = ( + 16, + n0, + _ECIL, + 0, + (_me,), + ((EBS_CARD_INFO, {_sN: _i}),), +) + +EBS_OPTIMIZED_INFO: StaticSchema = ( + 18, + n0, + _EOI, + 0, + (_BBIM, _BTIMB, _BIa, _MBIM, _MTIMB, _MI), + ( + (BASELINE_BANDWIDTH_IN_MBPS, {_aQN: _BBIM, _sN: _bBIM}), + (BASELINE_THROUGHPUT_IN_M_BPS, {_aQN: _BTIMB, _sN: _bTIMB}), + (BASELINE_IOPS, {_aQN: _BIa, _sN: _bIa}), + (MAXIMUM_BANDWIDTH_IN_MBPS, {_aQN: _MBIM, _sN: _mBIM}), + (MAXIMUM_THROUGHPUT_IN_M_BPS, {_aQN: _MTIMB, _sN: _mTIMB}), + (MAXIMUM_IOPS, {_aQN: _MI, _sN: _mI}), + ), +) + +EBS_OPTIMIZED_SUPPORT: StaticSchema = ( + 14, + n0, + _EOS, + 0, + (_uns, _supp, _def), + ((-1, {_sV: _uns}), (-1, {_sV: _supp}), (-1, {_sV: _def})), +) + +EBS_ENCRYPTION_SUPPORT: StaticSchema = ( + 14, + n0, + _EES, + 0, + (_uns, _supp), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +MAXIMUM_EBS_ATTACHMENTS: StaticSchema = (7, n0, _MEA, 0) + +MAXIMUM_EBS_CARDS: StaticSchema = (7, n0, _MEC, 0) + +EBS_NVME_SUPPORT: StaticSchema = ( + 14, + n0, + _ENS, + 0, + (_UNSUPPORTED, _SUPPORTED, _REQUIRED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp}), (-1, {_sV: _requ})), +) + +EBS_INFO: StaticSchema = ( + 18, + n0, + _EIb, + 0, + (_EOS, _ESnc, _EOI, _NSv, _MEA, _ALT, _MEC, _ECb), + ( + (EBS_OPTIMIZED_SUPPORT, {_aQN: _EOS, _sN: _eOS}), + (EBS_ENCRYPTION_SUPPORT, {_aQN: _ESnc, _sN: _eSncr}), + (EBS_OPTIMIZED_INFO, {_aQN: _EOI, _sN: _eOI}), + (EBS_NVME_SUPPORT, {_aQN: _NSv, _sN: _nSv}), + (MAXIMUM_EBS_ATTACHMENTS, {_aQN: _MEA, _sN: _mEA}), + (ATTACHMENT_LIMIT_TYPE, {_aQN: _ALT, _sN: _aLT}), + (MAXIMUM_EBS_CARDS, {_aQN: _MEC, _sN: _mEC}), + (EBS_CARD_INFO_LIST, {_aQN: _ECS, _sN: _eCS}), + ), +) + +FPGA_DEVICE_COUNT: StaticSchema = (7, n0, _FDC, 0) + +FPGA_DEVICE_MANUFACTURER_NAME: StaticSchema = (3, n0, _FDMN, 0) + +FPGA_DEVICE_MEMORY_SIZE: StaticSchema = (7, n0, _FDMS, 0) + +FPGA_DEVICE_MEMORY_INFO: StaticSchema = ( + 18, + n0, + _FDMI, + 0, + (_SIMB,), + ((FPGA_DEVICE_MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +FPGA_DEVICE_NAME: StaticSchema = (3, n0, _FDNp, 0) + +FPGA_DEVICE_INFO: StaticSchema = ( + 18, + n0, + _FDI, + 0, + (_N, _Manu, _Cou, _MIe), + ( + (FPGA_DEVICE_NAME, {_aQN: _N, _sN: _nam}), + (FPGA_DEVICE_MANUFACTURER_NAME, {_aQN: _Manu, _sN: _manu}), + (FPGA_DEVICE_COUNT, {_aQN: _Cou, _sN: _cou}), + (FPGA_DEVICE_MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + ), +) + +FPGA_DEVICE_INFO_LIST: StaticSchema = ( + 16, + n0, + _FDIL, + 0, + (_me,), + ((FPGA_DEVICE_INFO, {_sN: _i}),), +) + +TOTAL_FPGA_MEMORY: StaticSchema = (7, n0, _tFM, 0) + +FPGA_INFO: StaticSchema = ( + 18, + n0, + _FIpga, + 0, + (_Fp, _TFMIMB), + ( + (FPGA_DEVICE_INFO_LIST, {_aQN: _Fp, _sN: _fpg}), + (TOTAL_FPGA_MEMORY, {_aQN: _TFMIMB, _sN: _tFMIMB}), + ), +) + +FREE_TIER_ELIGIBLE_FLAG: StaticSchema = (2, n0, _FTEF, 0) + +GPU_DEVICE_COUNT: StaticSchema = (7, n0, _GDC, 0) + +GPU_PARTITION_SIZE: StaticSchema = (10, n0, _GPS, 0) + +LOGICAL_GPU_COUNT: StaticSchema = (7, n0, _LGC, 0) + +GPU_DEVICE_MANUFACTURER_NAME: StaticSchema = (3, n0, _GDMN, 0) + +GPU_DEVICE_MEMORY_SIZE: StaticSchema = (7, n0, _GDMS, 0) + +GPU_DEVICE_MEMORY_INFO: StaticSchema = ( + 18, + n0, + _GDMI, + 0, + (_SIMB,), + ((GPU_DEVICE_MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +GPU_DEVICE_NAME: StaticSchema = (3, n0, _GDN, 0) + +WORKLOAD: StaticSchema = (3, n0, _Wo, 0) + +WORKLOADS_LIST: StaticSchema = (16, n0, _WL, 0, (_me,), ((WORKLOAD, {_sN: _i}),)) + +GPU_DEVICE_INFO: StaticSchema = ( + 18, + n0, + _GDI, + 0, + (_N, _Manu, _Cou, _LGC, _GPS, _Wor, _MIe), + ( + (GPU_DEVICE_NAME, {_aQN: _N, _sN: _nam}), + (GPU_DEVICE_MANUFACTURER_NAME, {_aQN: _Manu, _sN: _manu}), + (GPU_DEVICE_COUNT, {_aQN: _Cou, _sN: _cou}), + (LOGICAL_GPU_COUNT, {_aQN: _LGC, _sN: _lGC}), + (GPU_PARTITION_SIZE, {_aQN: _GPS, _sN: _gPS}), + (WORKLOADS_LIST, {_aQN: _WSo, _sN: _wS}), + (GPU_DEVICE_MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + ), +) + +GPU_DEVICE_INFO_LIST: StaticSchema = ( + 16, + n0, + _GDIL, + 0, + (_me,), + ((GPU_DEVICE_INFO, {_sN: _i}),), +) + +TOTAL_GPU_MEMORY: StaticSchema = (7, n0, _tGM, 0) + +GPU_INFO: StaticSchema = ( + 18, + n0, + _GIp, + 0, + (_Gp, _TGMIMB), + ( + (GPU_DEVICE_INFO_LIST, {_aQN: _Gp, _sN: _gpu}), + (TOTAL_GPU_MEMORY, {_aQN: _TGMIMB, _sN: _tGMIMB}), + ), +) + +HIBERNATION_FLAG: StaticSchema = (2, n0, _HF, 0) + +INSTANCE_TYPE_HYPERVISOR: StaticSchema = ( + 14, + n0, + _ITH, + 0, + (_NITRO, _XEN), + ((-1, {_sV: _nit}), (-1, {_sV: _xen})), +) + +INFERENCE_DEVICE_COUNT: StaticSchema = (7, n0, _IDC, 0) + +INFERENCE_DEVICE_MANUFACTURER_NAME: StaticSchema = (3, n0, _IDMN, 0) + +INFERENCE_DEVICE_MEMORY_SIZE: StaticSchema = (7, n0, _IDMS, 0) + +INFERENCE_DEVICE_MEMORY_INFO: StaticSchema = ( + 18, + n0, + _IDMI, + 0, + (_SIMB,), + ((INFERENCE_DEVICE_MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +INFERENCE_DEVICE_NAME: StaticSchema = (3, n0, _IDN, 0) + +INFERENCE_DEVICE_INFO: StaticSchema = ( + 18, + n0, + _IDI, + 0, + (_Cou, _N, _Manu, _MIe), + ( + (INFERENCE_DEVICE_COUNT, {_aQN: _Cou, _sN: _cou}), + (INFERENCE_DEVICE_NAME, {_aQN: _N, _sN: _nam}), + (INFERENCE_DEVICE_MANUFACTURER_NAME, {_aQN: _Manu, _sN: _manu}), + (INFERENCE_DEVICE_MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + ), +) + +INFERENCE_DEVICE_INFO_LIST: StaticSchema = ( + 16, + n0, + _IDIL, + 0, + (_me,), + ((INFERENCE_DEVICE_INFO, 0),), +) + +TOTAL_INFERENCE_MEMORY: StaticSchema = (7, n0, _tIM, 0) + +INFERENCE_ACCELERATOR_INFO: StaticSchema = ( + 18, + n0, + _IAIn, + 0, + (_Acce, _TIMIMB), + ( + (INFERENCE_DEVICE_INFO_LIST, {_aQN: _Acce, _sN: _accel}), + (TOTAL_INFERENCE_MEMORY, {_aQN: _TIMIMB, _sN: _tIMIMB}), + ), +) + +DISK_COUNT: StaticSchema = (7, n0, _DCisk, 0) + +DISK_SIZE: StaticSchema = (8, n0, _DSi, 0) + +DISK_TYPE: StaticSchema = ( + 14, + n0, + _DTisk, + 0, + (_hd, _ssd), + ((-1, {_sV: _hd}), (-1, {_sV: _ssd})), +) + +DISK_INFO: StaticSchema = ( + 18, + n0, + _DIis, + 0, + (_SIGB, _Cou, _Ty), + ( + (DISK_SIZE, {_aQN: _SIGB, _sN: _sIGB}), + (DISK_COUNT, {_aQN: _Cou, _sN: _cou}), + (DISK_TYPE, {_aQN: _Ty, _sN: _ty}), + ), +) + +DISK_INFO_LIST: StaticSchema = (16, n0, _DIL, 0, (_me,), ((DISK_INFO, {_sN: _i}),)) + +INSTANCE_STORAGE_ENCRYPTION_SUPPORT: StaticSchema = ( + 14, + n0, + _ISES, + 0, + (_uns, _requ), + ((-1, {_sV: _uns}), (-1, {_sV: _requ})), +) + +EPHEMERAL_NVME_SUPPORT: StaticSchema = ( + 14, + n0, + _ENSp, + 0, + (_UNSUPPORTED, _SUPPORTED, _REQUIRED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp}), (-1, {_sV: _requ})), +) + +INSTANCE_STORAGE_INFO: StaticSchema = ( + 18, + n0, + _ISIns, + 0, + (_TSIGB, _Disk, _NSv, _ESnc), + ( + (DISK_SIZE, {_aQN: _TSIGB, _sN: _tSIGB}), + (DISK_INFO_LIST, {_aQN: _Disk, _sN: _disk}), + (EPHEMERAL_NVME_SUPPORT, {_aQN: _NSv, _sN: _nSv}), + (INSTANCE_STORAGE_ENCRYPTION_SUPPORT, {_aQN: _ESnc, _sN: _eSncr}), + ), +) + +INSTANCE_STORAGE_FLAG: StaticSchema = (2, n0, _ISF, 0) + +MEDIA_DEVICE_COUNT: StaticSchema = (7, n0, _MDC, 0) + +MEDIA_DEVICE_MANUFACTURER_NAME: StaticSchema = (3, n0, _MDMN, 0) + +MEDIA_DEVICE_MEMORY_SIZE: StaticSchema = (7, n0, _MDMS, 0) + +MEDIA_DEVICE_MEMORY_INFO: StaticSchema = ( + 18, + n0, + _MDMI, + 0, + (_SIMB,), + ((MEDIA_DEVICE_MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +MEDIA_DEVICE_NAME: StaticSchema = (3, n0, _MDN, 0) + +MEDIA_DEVICE_INFO: StaticSchema = ( + 18, + n0, + _MDI, + 0, + (_Cou, _N, _Manu, _MIe), + ( + (MEDIA_DEVICE_COUNT, {_aQN: _Cou, _sN: _cou}), + (MEDIA_DEVICE_NAME, {_aQN: _N, _sN: _nam}), + (MEDIA_DEVICE_MANUFACTURER_NAME, {_aQN: _Manu, _sN: _manu}), + (MEDIA_DEVICE_MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + ), +) + +MEDIA_DEVICE_INFO_LIST: StaticSchema = ( + 16, + n0, + _MDIL, + 0, + (_me,), + ((MEDIA_DEVICE_INFO, {_sN: _i}),), +) + +TOTAL_MEDIA_MEMORY: StaticSchema = (7, n0, _TMM, 0) + +MEDIA_ACCELERATOR_INFO: StaticSchema = ( + 18, + n0, + _MAIe, + 0, + (_Acce, _TMMIMB), + ( + (MEDIA_DEVICE_INFO_LIST, {_aQN: _Acce, _sN: _accel}), + (TOTAL_MEDIA_MEMORY, {_aQN: _TMMIMB, _sN: _tMMIMB}), + ), +) + +MEMORY_SIZE: StaticSchema = (8, n0, _MSem, 0) + +MEMORY_INFO: StaticSchema = ( + 18, + n0, + _MIe, + 0, + (_SIMB,), + ((MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +BANDWIDTH_WEIGHTING_TYPE: StaticSchema = ( + 14, + n0, + _BWT, + 0, + (_DEFAULT, _V_, _E_), + ((-1, {_sV: _def}), (-1, {_sV: _v_____}), (-1, {_sV: _e_})), +) + +BANDWIDTH_WEIGHTING_TYPE_LIST: StaticSchema = ( + 16, + n0, + _BWTL, + 0, + (_me,), + ((BANDWIDTH_WEIGHTING_TYPE, {_sN: _i}),), +) + +DEFAULT_TCP_ESTABLISHED_TIMEOUT: StaticSchema = (7, n0, _DTET, 0) + +DEFAULT_UDP_STREAM_TIMEOUT: StaticSchema = (7, n0, _DUST, 0) + +DEFAULT_UDP_TIMEOUT: StaticSchema = (7, n0, _DUT, 0) + +DEFAULT_CONNECTION_TRACKING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DCTC, + 0, + (_DTET, _DUT, _DUST), + ( + (DEFAULT_TCP_ESTABLISHED_TIMEOUT, {_aQN: _DTET, _sN: _dTET}), + (DEFAULT_UDP_TIMEOUT, {_aQN: _DUT, _sN: _dUT}), + (DEFAULT_UDP_STREAM_TIMEOUT, {_aQN: _DUST, _sN: _dUST}), + ), +) + +DEFAULT_NETWORK_CARD_INDEX: StaticSchema = (7, n0, _DNCI, 0) + +MAXIMUM_EFA_INTERFACES: StaticSchema = (7, n0, _MEI, 0) + +EFA_INFO: StaticSchema = ( + 18, + n0, + _EIf, + 0, + (_MEI,), + ((MAXIMUM_EFA_INTERFACES, {_aQN: _MEI, _sN: _mEI}),), +) + +EFA_SUPPORTED_FLAG: StaticSchema = (2, n0, _ESF, 0) + +ENA_SRD_SUPPORTED: StaticSchema = (2, n0, _ESSn, 0) + +ENA_SUPPORT: StaticSchema = ( + 14, + n0, + _ESna, + 0, + (_uns, _supp, _requ), + ((-1, {_sV: _uns}), (-1, {_sV: _supp}), (-1, {_sV: _requ})), +) + +ENCRYPTION_IN_TRANSIT_SUPPORTED: StaticSchema = (2, n0, _EITSn, 0) + +FLEXIBLE_ENA_QUEUES_SUPPORT: StaticSchema = ( + 14, + n0, + _FEQS, + 0, + (_UNSUPPORTED, _SUPPORTED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +MAX_IPV4_ADDR_PER_INTERFACE: StaticSchema = (7, n0, _MIAPI, 0) + +IPV4_ADDRESSES_PER_SECONDARY_INTERFACE: StaticSchema = (7, n0, _IAPSI, 0) + +MAX_IPV6_ADDR_PER_INTERFACE: StaticSchema = (7, n0, _MIAPIa, 0) + +IPV6_FLAG: StaticSchema = (2, n0, _IFp, 0) + +MAXIMUM_NETWORK_CARDS: StaticSchema = (7, n0, _MNC, 0) + +MAX_NETWORK_INTERFACES: StaticSchema = (7, n0, _MNI, 0) + +MAXIMUM_SECONDARY_NETWORK_INTERFACES: StaticSchema = (7, n0, _MSNI, 0) + +BASELINE_BANDWIDTH_IN_GBPS: StaticSchema = (10, n0, _BBIG, 0) + +DEFAULT_ENA_QUEUE_COUNT_PER_INTERFACE: StaticSchema = (7, n0, _DEQCPI, 0) + +NETWORK_CARD_INTERFACE_TYPE: StaticSchema = ( + 14, + n0, + _NCIT, + 0, + (_inter, _efa, _eo, _sec), + ((-1, {_sV: _inter}), (-1, {_sV: _efa}), (-1, {_sV: _eo_}), (-1, {_sV: _sec})), +) + +NETWORK_CARD_INTERFACE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _NCITL, + 0, + (_me,), + ((NETWORK_CARD_INTERFACE_TYPE, {_sN: _i}),), +) + +MAXIMUM_ENA_QUEUE_COUNT: StaticSchema = (7, n0, _MEQC, 0) + +MAXIMUM_ENA_QUEUE_COUNT_PER_INTERFACE: StaticSchema = (7, n0, _MEQCPI, 0) + +NETWORK_CARD_INDEX: StaticSchema = (7, n0, _NCI, 0) + +NETWORK_PERFORMANCE: StaticSchema = (3, n0, _NPe, 0) + +PEAK_BANDWIDTH_IN_GBPS: StaticSchema = (10, n0, _PBIG, 0) + +NETWORK_CARD_INFO: StaticSchema = ( + 18, + n0, + _NCIe, + 0, + (_NCI, _NPe, _MNIa, _AFNI, _BBIG, _PBIG, _DEQCPI, _MEQC, _MEQCPI, _ITnter), + ( + (NETWORK_CARD_INDEX, {_aQN: _NCI, _sN: _nCI}), + (NETWORK_PERFORMANCE, {_aQN: _NPe, _sN: _nPe}), + (MAX_NETWORK_INTERFACES, {_aQN: _MNIa, _sN: _mNI}), + (ADDITIONAL_FLEXIBLE_NETWORK_INTERFACES, {_aQN: _AFNI, _sN: _aFNI}), + (BASELINE_BANDWIDTH_IN_GBPS, {_aQN: _BBIG, _sN: _bBIG}), + (PEAK_BANDWIDTH_IN_GBPS, {_aQN: _PBIG, _sN: _pBIG}), + (DEFAULT_ENA_QUEUE_COUNT_PER_INTERFACE, {_aQN: _DEQCPI, _sN: _dEQCPI}), + (MAXIMUM_ENA_QUEUE_COUNT, {_aQN: _MEQC, _sN: _mEQC}), + (MAXIMUM_ENA_QUEUE_COUNT_PER_INTERFACE, {_aQN: _MEQCPI, _sN: _mEQCPI}), + (NETWORK_CARD_INTERFACE_TYPE_LIST, {_aQN: _ITSnt, _sN: _iTSn}), + ), +) + +NETWORK_CARD_INFO_LIST: StaticSchema = ( + 16, + n0, + _NCIL, + 0, + (_me,), + ((NETWORK_CARD_INFO, {_sN: _i}),), +) + +SECONDARY_NETWORK_SUPPORTED_FLAG: StaticSchema = (2, n0, _SNSF, 0) + +NETWORK_INFO: StaticSchema = ( + 18, + n0, + _NIetw, + 0, + ( + _NPe, + _MNIa, + _MNC, + _DNCI, + _NC, + _IAPI, + _IAPIp, + _ISpv, + _ESna, + _ESf, + _EIf, + _EITSn, + _ESSn, + _BWa, + _FEQS, + _CTC, + _SNSe, + _MSNI, + _IAPSI, + ), + ( + (NETWORK_PERFORMANCE, {_aQN: _NPe, _sN: _nPe}), + (MAX_NETWORK_INTERFACES, {_aQN: _MNIa, _sN: _mNI}), + (MAXIMUM_NETWORK_CARDS, {_aQN: _MNC, _sN: _mNC}), + (DEFAULT_NETWORK_CARD_INDEX, {_aQN: _DNCI, _sN: _dNCI}), + (NETWORK_CARD_INFO_LIST, {_aQN: _NC, _sN: _nC}), + (MAX_IPV4_ADDR_PER_INTERFACE, {_aQN: _IAPI, _sN: _iAPI}), + (MAX_IPV6_ADDR_PER_INTERFACE, {_aQN: _IAPIp, _sN: _iAPIp}), + (IPV6_FLAG, {_aQN: _ISpv, _sN: _iSpv}), + (ENA_SUPPORT, {_aQN: _ESna, _sN: _eSna}), + (EFA_SUPPORTED_FLAG, {_aQN: _ESf, _sN: _eSf}), + (EFA_INFO, {_aQN: _EIf, _sN: _eIf}), + (ENCRYPTION_IN_TRANSIT_SUPPORTED, {_aQN: _EITSn, _sN: _eITSn}), + (ENA_SRD_SUPPORTED, {_aQN: _ESSn, _sN: _eSSn}), + (BANDWIDTH_WEIGHTING_TYPE_LIST, {_aQN: _BWa, _sN: _bWa}), + (FLEXIBLE_ENA_QUEUES_SUPPORT, {_aQN: _FEQS, _sN: _fEQS}), + (DEFAULT_CONNECTION_TRACKING_CONFIGURATION, {_aQN: _CTC, _sN: _cTC}), + (SECONDARY_NETWORK_SUPPORTED_FLAG, {_aQN: _SNSe, _sN: _sNSe}), + (MAXIMUM_SECONDARY_NETWORK_INTERFACES, {_aQN: _MSNI, _sN: _mSNI}), + (IPV4_ADDRESSES_PER_SECONDARY_INTERFACE, {_aQN: _IAPSI, _sN: _iAPSI}), + ), +) + +NEURON_DEVICE_CORE_COUNT: StaticSchema = (7, n0, _NDCC, 0) + +NEURON_DEVICE_CORE_VERSION: StaticSchema = (7, n0, _NDCV, 0) + +NEURON_DEVICE_CORE_INFO: StaticSchema = ( + 18, + n0, + _NDCI, + 0, + (_Cou, _Ve), + ( + (NEURON_DEVICE_CORE_COUNT, {_aQN: _Cou, _sN: _cou}), + (NEURON_DEVICE_CORE_VERSION, {_aQN: _Ve, _sN: _ver}), + ), +) + +NEURON_DEVICE_COUNT: StaticSchema = (7, n0, _NDCe, 0) + +NEURON_DEVICE_MEMORY_SIZE: StaticSchema = (7, n0, _NDMS, 0) + +NEURON_DEVICE_MEMORY_INFO: StaticSchema = ( + 18, + n0, + _NDMI, + 0, + (_SIMB,), + ((NEURON_DEVICE_MEMORY_SIZE, {_aQN: _SIMB, _sN: _sIMB}),), +) + +NEURON_DEVICE_NAME: StaticSchema = (3, n0, _NDN, 0) + +NEURON_DEVICE_INFO: StaticSchema = ( + 18, + n0, + _NDI, + 0, + (_Cou, _N, _CIor, _MIe), + ( + (NEURON_DEVICE_COUNT, {_aQN: _Cou, _sN: _cou}), + (NEURON_DEVICE_NAME, {_aQN: _N, _sN: _nam}), + (NEURON_DEVICE_CORE_INFO, {_aQN: _CIor, _sN: _cIor}), + (NEURON_DEVICE_MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + ), +) + +NEURON_DEVICE_INFO_LIST: StaticSchema = ( + 16, + n0, + _NDIL, + 0, + (_me,), + ((NEURON_DEVICE_INFO, {_sN: _i}),), +) + +TOTAL_NEURON_MEMORY: StaticSchema = (7, n0, _TNM, 0) + +NEURON_INFO: StaticSchema = ( + 18, + n0, + _NIeu, + 0, + (_NDe, _TNDMIMB), + ( + (NEURON_DEVICE_INFO_LIST, {_aQN: _NDe, _sN: _nDe}), + (TOTAL_NEURON_MEMORY, {_aQN: _TNDMIMB, _sN: _tNDMIMB}), + ), +) + +NITRO_ENCLAVES_SUPPORT: StaticSchema = ( + 14, + n0, + _NES, + 0, + (_UNSUPPORTED, _SUPPORTED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +NITRO_TPM_SUPPORTED_VERSION_TYPE: StaticSchema = (3, n0, _NTSVT, 0) + +NITRO_TPM_SUPPORTED_VERSIONS_LIST: StaticSchema = ( + 16, + n0, + _NTSVL, + 0, + (_me,), + ((NITRO_TPM_SUPPORTED_VERSION_TYPE, {_sN: _i}),), +) + +NITRO_TPM_INFO: StaticSchema = ( + 18, + n0, + _NTI, + 0, + (_SVu,), + ((NITRO_TPM_SUPPORTED_VERSIONS_LIST, {_aQN: _SVu, _sN: _sVu}),), +) + +NITRO_TPM_SUPPORT: StaticSchema = ( + 14, + n0, + _NTS, + 0, + (_UNSUPPORTED, _SUPPORTED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +PHC_SUPPORT: StaticSchema = ( + 14, + n0, + _PSh, + 0, + (_UNSUPPORTED, _SUPPORTED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +PLACEMENT_GROUP_STRATEGY: StaticSchema = ( + 14, + n0, + _PGSl, + 0, + (_clu, _part, _spr), + ((-1, {_sV: _clu}), (-1, {_sV: _part}), (-1, {_sV: _spr})), +) + +PLACEMENT_GROUP_STRATEGY_LIST: StaticSchema = ( + 16, + n0, + _PGSL, + 0, + (_me,), + ((PLACEMENT_GROUP_STRATEGY, {_sN: _i}),), +) + +PLACEMENT_GROUP_INFO: StaticSchema = ( + 18, + n0, + _PGIl, + 0, + (_SSup,), + ((PLACEMENT_GROUP_STRATEGY_LIST, {_aQN: _SSup, _sN: _sSup}),), +) + +CPU_MANUFACTURER_NAME: StaticSchema = (3, n0, _CMN, 0) + +ARCHITECTURE_TYPE: StaticSchema = ( + 14, + n0, + _ATr, + 0, + ( + _i__________________________________________________________________________, + _x______________________________________________________, + _arm, + _xm____________, + _am______, + ), + ( + ( + -1, + { + _sV: _i__________________________________________________________________________ + }, + ), + (-1, {_sV: _x______________________________________________________}), + (-1, {_sV: _arm}), + (-1, {_sV: _xm____________}), + (-1, {_sV: _am______}), + ), +) + +ARCHITECTURE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _ATLr, + 0, + (_me,), + ((ARCHITECTURE_TYPE, {_sN: _i}),), +) + +SUPPORTED_ADDITIONAL_PROCESSOR_FEATURE: StaticSchema = ( + 14, + n0, + _SAPF, + 0, + (_ASS_, _NV_), + ((-1, {_sV: _ass_}), (-1, {_sV: _nv})), +) + +SUPPORTED_ADDITIONAL_PROCESSOR_FEATURE_LIST: StaticSchema = ( + 16, + n0, + _SAPFL, + 0, + (_me,), + ((SUPPORTED_ADDITIONAL_PROCESSOR_FEATURE, {_sN: _i}),), +) + +PROCESSOR_SUSTAINED_CLOCK_SPEED: StaticSchema = (10, n0, _PSCS, 0) + +PROCESSOR_INFO: StaticSchema = ( + 18, + n0, + _PIro, + 0, + (_SAup, _SCSIG, _SF, _Manu), + ( + (ARCHITECTURE_TYPE_LIST, {_aQN: _SAup, _sN: _sAu}), + (PROCESSOR_SUSTAINED_CLOCK_SPEED, {_aQN: _SCSIG, _sN: _sCSIG}), + (SUPPORTED_ADDITIONAL_PROCESSOR_FEATURE_LIST, {_aQN: _SF, _sN: _sF}), + (CPU_MANUFACTURER_NAME, {_aQN: _Manu, _sN: _manu}), + ), +) + +REBOOT_MIGRATION_SUPPORT: StaticSchema = ( + 14, + n0, + _RMS, + 0, + (_UNSUPPORTED, _SUPPORTED), + ((-1, {_sV: _uns}), (-1, {_sV: _supp})), +) + +BOOT_MODE_TYPE: StaticSchema = ( + 14, + n0, + _BMT, + 0, + (_lb__, _ue), + ((-1, {_sV: _lb___}), (-1, {_sV: _ue})), +) + +BOOT_MODE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _BMTL, + 0, + (_me,), + ((BOOT_MODE_TYPE, {_sN: _i}),), +) + +SUPPORTED_IN_REGION: StaticSchema = (2, n0, _SIRu, 0) + +ROOT_DEVICE_TYPE: StaticSchema = ( + 14, + n0, + _RDT, + 0, + (_eb, _is__), + ((-1, {_sV: _eb}), (-1, {_sV: _is___})), +) + +ROOT_DEVICE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _RDTL, + 0, + (_me,), + ((ROOT_DEVICE_TYPE, {_sN: _i}),), +) + +USAGE_CLASS_TYPE: StaticSchema = ( + 14, + n0, + _UCT, + 0, + (_spo, _od_, _cb), + ((-1, {_sV: _spo}), (-1, {_sV: _od}), (-1, {_sV: _cb_})), +) + +USAGE_CLASS_TYPE_LIST: StaticSchema = ( + 16, + n0, + _UCTL, + 0, + (_me,), + ((USAGE_CLASS_TYPE, {_sN: _i}),), +) + +VIRTUALIZATION_TYPE_LIST: StaticSchema = ( + 16, + n0, + _VTLi, + 0, + (_me,), + ((VIRTUALIZATION_TYPE, {_sN: _i}),), +) + +CORE_COUNT: StaticSchema = (7, n0, _CCor, 0) + +THREADS_PER_CORE: StaticSchema = (7, n0, _TPC, 0) + +V_CPU_COUNT: StaticSchema = (7, n0, _VCC, 0) + +CORE_COUNT_LIST: StaticSchema = (16, n0, _CCL, 0, (_me,), ((CORE_COUNT, {_sN: _i}),)) + +THREADS_PER_CORE_LIST: StaticSchema = ( + 16, + n0, + _TPCL, + 0, + (_me,), + ((THREADS_PER_CORE, {_sN: _i}),), +) + +V_CPU_INFO: StaticSchema = ( + 18, + n0, + _VCIpu, + 0, + (_DVCef, _DCe, _DTPC, _VCa, _VTPC), + ( + (V_CPU_COUNT, {_aQN: _DVCef, _sN: _dVC}), + (CORE_COUNT, {_aQN: _DCe, _sN: _dCe}), + (THREADS_PER_CORE, {_aQN: _DTPC, _sN: _dTPC}), + (CORE_COUNT_LIST, {_aQN: _VCa, _sN: _vCa}), + (THREADS_PER_CORE_LIST, {_aQN: _VTPC, _sN: _vTPC}), + ), +) + +INSTANCE_TYPE_INFO: StaticSchema = ( + 18, + n0, + _ITIns, + 0, + ( + _IT, + _CGur, + _FTE, + _SUC, + _SRDT, + _SVT, + _BM, + _Hy, + _PIro, + _VCIpu, + _MIe, + _ISSnst, + _ISIns, + _EIb, + _NIetw, + _GIp, + _FIpga, + _PGIl, + _IAIn, + _HSi, + _BPS, + _DHS, + _ARSut, + _SBM, + _NES, + _NTS, + _NTI, + _MAIe, + _NIeu, + _PSh, + _RMS, + _SIRu, + ), + ( + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (CURRENT_GENERATION_FLAG, {_aQN: _CGur, _sN: _cGu}), + (FREE_TIER_ELIGIBLE_FLAG, {_aQN: _FTE, _sN: _fTE}), + (USAGE_CLASS_TYPE_LIST, {_aQN: _SUC, _sN: _sUC}), + (ROOT_DEVICE_TYPE_LIST, {_aQN: _SRDT, _sN: _sRDT}), + (VIRTUALIZATION_TYPE_LIST, {_aQN: _SVT, _sN: _sVT}), + (BARE_METAL_FLAG, {_aQN: _BM, _sN: _bM}), + (INSTANCE_TYPE_HYPERVISOR, {_aQN: _Hy, _sN: _hy}), + (PROCESSOR_INFO, {_aQN: _PIro, _sN: _pIro}), + (V_CPU_INFO, {_aQN: _VCIpu, _sN: _vCIpu}), + (MEMORY_INFO, {_aQN: _MIe, _sN: _mIe}), + (INSTANCE_STORAGE_FLAG, {_aQN: _ISSnst, _sN: _iSSn}), + (INSTANCE_STORAGE_INFO, {_aQN: _ISIns, _sN: _iSIn}), + (EBS_INFO, {_aQN: _EIb, _sN: _eIb}), + (NETWORK_INFO, {_aQN: _NIetw, _sN: _nIet}), + (GPU_INFO, {_aQN: _GIp, _sN: _gIp}), + (FPGA_INFO, {_aQN: _FIpga, _sN: _fIp}), + (PLACEMENT_GROUP_INFO, {_aQN: _PGIl, _sN: _pGIl}), + (INFERENCE_ACCELERATOR_INFO, {_aQN: _IAIn, _sN: _iAIn}), + (HIBERNATION_FLAG, {_aQN: _HSi, _sN: _hSi}), + (BURSTABLE_PERFORMANCE_FLAG, {_aQN: _BPS, _sN: _bPS}), + (DEDICATED_HOST_FLAG, {_aQN: _DHS, _sN: _dHS}), + (AUTO_RECOVERY_FLAG, {_aQN: _ARSut, _sN: _aRS}), + (BOOT_MODE_TYPE_LIST, {_aQN: _SBM, _sN: _sBM}), + (NITRO_ENCLAVES_SUPPORT, {_aQN: _NES, _sN: _nES}), + (NITRO_TPM_SUPPORT, {_aQN: _NTS, _sN: _nTS}), + (NITRO_TPM_INFO, {_aQN: _NTI, _sN: _nTI}), + (MEDIA_ACCELERATOR_INFO, {_aQN: _MAIe, _sN: _mAIe}), + (NEURON_INFO, {_aQN: _NIeu, _sN: _nIeu}), + (PHC_SUPPORT, {_aQN: _PSh, _sN: _pSh}), + (REBOOT_MIGRATION_SUPPORT, {_aQN: _RMS, _sN: _rMS}), + (SUPPORTED_IN_REGION, {_aQN: _SIRu, _sN: _sIRu}), + ), +) + +INSTANCE_TYPE_INFO_LIST: StaticSchema = ( + 16, + n0, + _ITILn, + 0, + (_me,), + ((INSTANCE_TYPE_INFO, {_sN: _i}),), +) + +DESCRIBE_INSTANCE_TYPES_OUTPUT: StaticSchema = ( + 18, + n0, + _DITOes, + {_sSI: _cDITRoma, _smit: None}, + (_ITnsta, _NTex), + ( + (INSTANCE_TYPE_INFO_LIST, {_aQN: _ITSns, _sN: _iTSns}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INSTANCE_TYPES: StaticOperationSchema = ( + 23, + n0, + _DITe, + 0, + DESCRIBE_INSTANCE_TYPES_INPUT, + DESCRIBE_INSTANCE_TYPES_OUTPUT, + (), +) + +INTERNET_GATEWAY_ID_LIST: StaticSchema = ( + 16, + n0, + _IGIL, + 0, + (_me,), + ((INTERNET_GATEWAY_ID, {_sN: _i}),), +) + +DESCRIBE_INTERNET_GATEWAYS_MAX_RESULTS: StaticSchema = (7, n0, _DIGMR, 0) + +DESCRIBE_INTERNET_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DIGIe, + {_sSI: _cDIGRo, _sm: None}, + (_NTex, _MR, _DR, _IGIn, _Fil), + ( + (STRING, 0), + (DESCRIBE_INTERNET_GATEWAYS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INTERNET_GATEWAY_ID_LIST, {_aQN: _IGI, _sN: _iGI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +INTERNET_GATEWAY_LIST: StaticSchema = ( + 16, + n0, + _IGL, + 0, + (_me,), + ((INTERNET_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_INTERNET_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIGOe, + {_sSI: _cDIGRom, _smit: None}, + (_IGnt, _NTex), + ( + (INTERNET_GATEWAY_LIST, {_aQN: _IGSn, _sN: _iGSn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_INTERNET_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DIGe, + 0, + DESCRIBE_INTERNET_GATEWAYS_INPUT, + DESCRIBE_INTERNET_GATEWAYS_OUTPUT, + (), +) + +DESCRIBE_IPAM_BYOASN_MAX_RESULTS: StaticSchema = (7, n0, _DIBMR, 0) + +DESCRIBE_IPAM_BYOASN_INPUT: StaticSchema = ( + 18, + n0, + _DIBIe, + {_sSI: _cDIBRom, _sm: None}, + (_DR, _MR, _NTex), + ((BOOLEAN, 0), (DESCRIBE_IPAM_BYOASN_MAX_RESULTS, 0), (NEXT_TOKEN, 0)), +) + +BYOASN_SET: StaticSchema = (16, n0, _BSy, 0, (_me,), ((BYOASN, {_sN: _i}),)) + +DESCRIBE_IPAM_BYOASN_OUTPUT: StaticSchema = ( + 18, + n0, + _DIBOe, + {_sSI: _cDIBRoma, _smit: None}, + (_Byo, _NTex), + ((BYOASN_SET, {_aQN: _BSy, _sN: _bSy}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_IPAM_BYOASN: StaticOperationSchema = ( + 23, + n0, + _DIBe, + 0, + DESCRIBE_IPAM_BYOASN_INPUT, + DESCRIBE_IPAM_BYOASN_OUTPUT, + (), +) + +IPAM_MAX_RESULTS: StaticSchema = (7, n0, _IMRp, 0) + +DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_INPUT: StaticSchema = ( + 18, + n0, + _DIERVTIe, + {_sSI: _cDIERVTRom, _sm: None}, + (_DR, _Fil, _NTex, _MR, _IERVTIp), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + (VALUE_STRING_LIST, {_sN: _IERVTI}), + ), +) + +IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_SET: StaticSchema = ( + 16, + n0, + _IERVTSp, + 0, + (_me,), + ((IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, {_sN: _i}),), +) + +DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIERVTOe, + {_sSI: _cDIERVTRoma, _smit: None}, + (_NTex, _IERVTp), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_SET, {_aQN: _IERVTSp, _sN: _iERVTS}), + ), +) + +DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS: StaticOperationSchema = ( + 23, + n0, + _DIERVTe, + 0, + DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_INPUT, + DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_OUTPUT, + (), +) + +DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DIIRAIe, + {_sSI: _cDIIRARom, _sm: None}, + (_DR, _IIRAIp, _MR, _NTex, _Fil), + ( + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _IIRAI}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _IIRASp, + 0, + (_me,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIRAOe, + {_sSI: _cDIIRARoma, _smit: None}, + (_NTex, _IIRAp), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_SET, {_aQN: _IIRASp, _sN: _iIRAS}), + ), +) + +DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DIIRAe, + 0, + DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_INPUT, + DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_IPAM_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _DIPIes, + {_sSI: _cDIPRomam, _sm: None}, + (_DR, _Fil, _MR, _NTex, _IPIpa), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _IPIp}), + ), +) + +IPAM_POLICY_SET: StaticSchema = ( + 16, + n0, + _IPSpam, + 0, + (_me,), + ((IPAM_POLICY, {_sN: _i}),), +) + +DESCRIBE_IPAM_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPOes, + {_sSI: _cDIPRomama, _smit: None}, + (_NTex, _IPpamo), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_POLICY_SET, {_aQN: _IPSpam, _sN: _iPSpa}), + ), +) + +DESCRIBE_IPAM_POLICIES: StaticOperationSchema = ( + 23, + n0, + _DIPes, + 0, + DESCRIBE_IPAM_POLICIES_INPUT, + DESCRIBE_IPAM_POLICIES_OUTPUT, + (), +) + +DESCRIBE_IPAM_POOL_ALLOCATIONS_MAX_RESULTS: StaticSchema = (7, n0, _DIPAMR, 0) + +DESCRIBE_IPAM_POOL_ALLOCATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DIPAI, + {_sSI: _cDIPAR, _sm: None}, + (_DR, _IPAIp, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _IPAI}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_IPAM_POOL_ALLOCATIONS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_POOL_ALLOCATION_SET: StaticSchema = ( + 16, + n0, + _IPASp, + 0, + (_me,), + ((IPAM_POOL_ALLOCATION, {_sN: _i}),), +) + +DESCRIBE_IPAM_POOL_ALLOCATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPAO, + {_sSI: _cDIPARo, _smit: None}, + (_IPApam, _NTex), + ( + (IPAM_POOL_ALLOCATION_SET, {_aQN: _IPASp, _sN: _iPAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IPAM_POOL_ALLOCATIONS: StaticOperationSchema = ( + 23, + n0, + _DIPA, + 0, + DESCRIBE_IPAM_POOL_ALLOCATIONS_INPUT, + DESCRIBE_IPAM_POOL_ALLOCATIONS_OUTPUT, + (), +) + +DESCRIBE_IPAM_POOLS_INPUT: StaticSchema = ( + 18, + n0, + _DIPIesc, + {_sSI: _cDIPRomamaz, _sm: None}, + (_DR, _Fil, _MR, _NTex, _IPIpam), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _IPI}), + ), +) + +IPAM_POOL_SET: StaticSchema = (16, n0, _IPSpamo, 0, (_me,), ((IPAM_POOL, {_sN: _i}),)) + +DESCRIBE_IPAM_POOLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPOesc, + {_sSI: _cDIPRomamazo, _smit: None}, + (_NTex, _IPpamoo), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_POOL_SET, {_aQN: _IPSpamo, _sN: _iPSpam}), + ), +) + +DESCRIBE_IPAM_POOLS: StaticOperationSchema = ( + 23, + n0, + _DIPesc, + 0, + DESCRIBE_IPAM_POOLS_INPUT, + DESCRIBE_IPAM_POOLS_OUTPUT, + (), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_INPUT: StaticSchema = ( + 18, + n0, + _DIPLRIe, + {_sSI: _cDIPLRRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _IPLRIp), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _IPLRI}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_SET: StaticSchema = ( + 16, + n0, + _IPLRSp, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER, {_sN: _i}),), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPLROe, + {_sSI: _cDIPLRRoma, _smit: None}, + (_NTex, _IPLRpa), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_PREFIX_LIST_RESOLVER_SET, {_aQN: _IPLRSp, _sN: _iPLRS}), + ), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS: StaticOperationSchema = ( + 23, + n0, + _DIPLRe, + 0, + DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_INPUT, + DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_OUTPUT, + (), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _DIPLRTIe, + {_sSI: _cDIPLRTRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _IPLRTIp, _IPLRI), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _IPLRTI}), + (IPAM_PREFIX_LIST_RESOLVER_ID, 0), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_TARGET_SET: StaticSchema = ( + 16, + n0, + _IPLRTSp, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_TARGET, {_sN: _i}),), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPLRTOe, + {_sSI: _cDIPLRTRoma, _smit: None}, + (_NTex, _IPLRTp), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_PREFIX_LIST_RESOLVER_TARGET_SET, {_aQN: _IPLRTSp, _sN: _iPLRTS}), + ), +) + +DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS: StaticOperationSchema = ( + 23, + n0, + _DIPLRTe, + 0, + DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_INPUT, + DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_OUTPUT, + (), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERIES_INPUT: StaticSchema = ( + 18, + n0, + _DIRDIe, + {_sSI: _cDIRDRom, _sm: None}, + (_DR, _IRDIp, _NTex, _MR, _Fil), + ( + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _IRDI}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_RESOURCE_DISCOVERY_SET: StaticSchema = ( + 16, + n0, + _IRDSp, + 0, + (_me,), + ((IPAM_RESOURCE_DISCOVERY, {_sN: _i}),), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRDOe, + {_sSI: _cDIRDRoma, _smit: None}, + (_IRDp, _NTex), + ( + (IPAM_RESOURCE_DISCOVERY_SET, {_aQN: _IRDSp, _sN: _iRDS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERIES: StaticOperationSchema = ( + 23, + n0, + _DIRDe, + 0, + DESCRIBE_IPAM_RESOURCE_DISCOVERIES_INPUT, + DESCRIBE_IPAM_RESOURCE_DISCOVERIES_OUTPUT, + (), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DIRDAI, + {_sSI: _cDIRDAR, _sm: None}, + (_DR, _IRDAIp, _NTex, _MR, _Fil), + ( + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _IRDAI}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_RESOURCE_DISCOVERY_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _IRDASp, + 0, + (_me,), + ((IPAM_RESOURCE_DISCOVERY_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRDAO, + {_sSI: _cDIRDARo, _smit: None}, + (_IRDApa, _NTex), + ( + (IPAM_RESOURCE_DISCOVERY_ASSOCIATION_SET, {_aQN: _IRDASp, _sN: _iRDAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DIRDA, + 0, + DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_INPUT, + DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_IPAMS_INPUT: StaticSchema = ( + 18, + n0, + _DIIescr, + {_sSI: _cDIRomamazon, _sm: None}, + (_DR, _Fil, _MR, _NTex, _IIpa), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _IIp}), + ), +) + +IPAM_SET: StaticSchema = (16, n0, _ISpame, 0, (_me,), ((IPAM, {_sN: _i}),)) + +DESCRIBE_IPAMS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOescr, + {_sSI: _cDIRomamazona, _smit: None}, + (_NTex, _Ipam), + ((NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), (IPAM_SET, {_aQN: _ISpame, _sN: _iSpam})), +) + +DESCRIBE_IPAMS: StaticOperationSchema = ( + 23, + n0, + _DIescri, + 0, + DESCRIBE_IPAMS_INPUT, + DESCRIBE_IPAMS_OUTPUT, + (), +) + +DESCRIBE_IPAM_SCOPES_INPUT: StaticSchema = ( + 18, + n0, + _DISIes, + {_sSI: _cDISRomam, _sm: None}, + (_DR, _Fil, _MR, _NTex, _ISIp), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _ISI}), + ), +) + +IPAM_SCOPE_SET: StaticSchema = (16, n0, _ISSp, 0, (_me,), ((IPAM_SCOPE, {_sN: _i}),)) + +DESCRIBE_IPAM_SCOPES_OUTPUT: StaticSchema = ( + 18, + n0, + _DISOes, + {_sSI: _cDISRomama, _smit: None}, + (_NTex, _ISpamc), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_SCOPE_SET, {_aQN: _ISSp, _sN: _iSSp}), + ), +) + +DESCRIBE_IPAM_SCOPES: StaticOperationSchema = ( + 23, + n0, + _DISes, + 0, + DESCRIBE_IPAM_SCOPES_INPUT, + DESCRIBE_IPAM_SCOPES_OUTPUT, + (), +) + +IPV6_POOL_MAX_RESULTS: StaticSchema = (7, n0, _IPMR, 0) + +IPV6_POOL_ID_LIST: StaticSchema = ( + 16, + n0, + _IPIL, + 0, + (_me,), + ((IPV6_POOL_EC2_ID, {_sN: _i}),), +) + +DESCRIBE_IPV6_POOLS_INPUT: StaticSchema = ( + 18, + n0, + _DIPIescr, + {_sSI: _cDIPRomamazon, _sm: None}, + (_PIoo, _NTex, _MR, _DR, _Fil), + ( + (IPV6_POOL_ID_LIST, {_sN: _PIo}), + (NEXT_TOKEN, 0), + (IPV6_POOL_MAX_RESULTS, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +POOL_CIDR_BLOCK: StaticSchema = ( + 18, + n0, + _PCB, + 0, + (_Ci,), + ((STRING, {_aQN: _PCB, _sN: _pCB}),), +) + +POOL_CIDR_BLOCKS_SET: StaticSchema = ( + 16, + n0, + _PCBS, + 0, + (_me,), + ((POOL_CIDR_BLOCK, {_sN: _i}),), +) + +IPV6_POOL: StaticSchema = ( + 18, + n0, + _IPpvo, + 0, + (_PIo, _Des, _PCBo, _Tag), + ( + (STRING, {_aQN: _PIo, _sN: _pIo}), + (STRING, {_aQN: _Des, _sN: _desc}), + (POOL_CIDR_BLOCKS_SET, {_aQN: _PCBSo, _sN: _pCBS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +IPV6_POOL_SET: StaticSchema = (16, n0, _IPSpvo, 0, (_me,), ((IPV6_POOL, {_sN: _i}),)) + +DESCRIBE_IPV6_POOLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPOescr, + {_sSI: _cDIPRomamazona, _smit: None}, + (_IPpvoo, _NTex), + ( + (IPV6_POOL_SET, {_aQN: _IPSpvo, _sN: _iPSpv}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_IPV6_POOLS: StaticOperationSchema = ( + 23, + n0, + _DIPescr, + 0, + DESCRIBE_IPV6_POOLS_INPUT, + DESCRIBE_IPV6_POOLS_OUTPUT, + (), +) + +KEY_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _KNSL, + 0, + (_me,), + ((KEY_PAIR_NAME, {_sN: _KN}),), +) + +KEY_PAIR_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _KPISL, + 0, + (_me,), + ((KEY_PAIR_ID, {_sN: _KPI}),), +) + +DESCRIBE_KEY_PAIRS_INPUT: StaticSchema = ( + 18, + n0, + _DKPIe, + {_sSI: _cDKPRom, _sm: None}, + (_KNe, _KPIe, _IPK, _DR, _Fil), + ( + (KEY_NAME_STRING_LIST, {_sN: _KN}), + (KEY_PAIR_ID_STRING_LIST, {_sN: _KPI}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +KEY_PAIR_INFO: StaticSchema = ( + 18, + n0, + _KPIey, + 0, + (_KPI, _KT, _Tag, _PK, _CTr, _KN, _KFe), + ( + (STRING, {_aQN: _KPI, _sN: _kPI}), + (KEY_TYPE, {_aQN: _KT, _sN: _kT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _PK, _sN: _pK}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (STRING, {_aQN: _KN, _sN: _kN}), + (STRING, {_aQN: _KFe, _sN: _kF}), + ), +) + +KEY_PAIR_LIST: StaticSchema = (16, n0, _KPL, 0, (_me,), ((KEY_PAIR_INFO, {_sN: _i}),)) + +DESCRIBE_KEY_PAIRS_OUTPUT: StaticSchema = ( + 18, + n0, + _DKPOe, + {_sSI: _cDKPRoma, _smit: None}, + (_KP,), + ((KEY_PAIR_LIST, {_aQN: _KSe, _sN: _kSe}),), +) + +DESCRIBE_KEY_PAIRS: StaticOperationSchema = ( + 23, + n0, + _DKPe, + 0, + DESCRIBE_KEY_PAIRS_INPUT, + DESCRIBE_KEY_PAIRS_OUTPUT, + (), +) + +LAUNCH_TEMPLATE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _LTISL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_ID, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _LTNSL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_NAME, {_sN: _i}),), +) + +DESCRIBE_LAUNCH_TEMPLATES_MAX_RESULTS: StaticSchema = (7, n0, _DLTMR, 0) + +DESCRIBE_LAUNCH_TEMPLATES_INPUT: StaticSchema = ( + 18, + n0, + _DLTIe, + {_sSI: _cDLTRom, _sm: None}, + (_DR, _LTIa, _LTNa, _Fil, _NTex, _MR, _IMR), + ( + (BOOLEAN, 0), + (LAUNCH_TEMPLATE_ID_STRING_LIST, {_sN: _LTI}), + (LAUNCH_TEMPLATE_NAME_STRING_LIST, {_sN: _LTN}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (DESCRIBE_LAUNCH_TEMPLATES_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +LAUNCH_TEMPLATE_SET: StaticSchema = ( + 16, + n0, + _LTSa, + 0, + (_me,), + ((LAUNCH_TEMPLATE, {_sN: _i}),), +) + +DESCRIBE_LAUNCH_TEMPLATES_OUTPUT: StaticSchema = ( + 18, + n0, + _DLTOe, + {_sSI: _cDLTRoma, _smit: None}, + (_LTau, _NTex), + ( + (LAUNCH_TEMPLATE_SET, {_aQN: _LTau, _sN: _lTau}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LAUNCH_TEMPLATES: StaticOperationSchema = ( + 23, + n0, + _DLTe, + 0, + DESCRIBE_LAUNCH_TEMPLATES_INPUT, + DESCRIBE_LAUNCH_TEMPLATES_OUTPUT, + (), +) + +DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DLTVIe, + {_sSI: _cDLTVRom, _sm: None}, + (_DR, _LTI, _LTN, _Vers, _MV, _MVa, _NTex, _MR, _Fil, _RAes, _IMR), + ( + (BOOLEAN, 0), + (LAUNCH_TEMPLATE_ID, 0), + (LAUNCH_TEMPLATE_NAME, 0), + (VERSION_STRING_LIST, {_sN: _LTV}), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +LAUNCH_TEMPLATE_VERSION_SET: StaticSchema = ( + 16, + n0, + _LTVS, + 0, + (_me,), + ((LAUNCH_TEMPLATE_VERSION, {_sN: _i}),), +) + +DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLTVOe, + {_sSI: _cDLTVRoma, _smit: None}, + (_LTVa, _NTex), + ( + (LAUNCH_TEMPLATE_VERSION_SET, {_aQN: _LTVS, _sN: _lTVS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LAUNCH_TEMPLATE_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _DLTVe, + 0, + DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_INPUT, + DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT, + (), +) + +LOCAL_GATEWAY_ROUTE_TABLE_ID_SET: StaticSchema = ( + 16, + n0, + _LGRTIS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTETABLE_ID, {_sN: _i}),), +) + +LOCAL_GATEWAY_MAX_RESULTS: StaticSchema = (7, n0, _LGMR, 0) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTIe, + {_sSI: _cDLGRTRom, _sm: None}, + (_LGRTIo, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_ROUTE_TABLE_ID_SET, {_sN: _LGRTI}), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_TABLE_SET: StaticSchema = ( + 16, + n0, + _LGRTS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE_TABLE, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTOe, + {_sSI: _cDLGRTRoma, _smit: None}, + (_LGRToc, _NTex), + ( + (LOCAL_GATEWAY_ROUTE_TABLE_SET, {_aQN: _LGRTS, _sN: _lGRTS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES: StaticOperationSchema = ( + 23, + n0, + _DLGRTe, + 0, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_INPUT, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_OUTPUT, + (), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID_SET: StaticSchema = ( + 16, + n0, + _LGRTVIGAIS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTVIGAIe, + {_sSI: _cDLGRTVIGARom, _sm: None}, + (_LGRTVIGAIo, _Fil, _MR, _NTex, _DR), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_ID_SET, + {_sN: _LGRTVIGAI}, + ), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _LGRTVIGAS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTVIGAOe, + {_sSI: _cDLGRTVIGARoma, _smit: None}, + (_LGRTVIGAo, _NTex), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_SET, + {_aQN: _LGRTVIGAS, _sN: _lGRTVIGAS}, + ), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DLGRTVIGAe, + 0, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_INPUT, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_OUTPUT, + (), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID_SET: StaticSchema = ( + 16, + n0, + _LGRTVAIS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DLGRTVAIe, + {_sSI: _cDLGRTVARom, _sm: None}, + (_LGRTVAIo, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_ID_SET, {_sN: _LGRTVAI}), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _LGRTVAS, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGRTVAOe, + {_sSI: _cDLGRTVARoma, _smit: None}, + (_LGRTVAo, _NTex), + ( + ( + LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_SET, + {_aQN: _LGRTVAS, _sN: _lGRTVAS}, + ), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DLGRTVAe, + 0, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_INPUT, + DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_OUTPUT, + (), +) + +LOCAL_GATEWAY_ID_SET: StaticSchema = ( + 16, + n0, + _LGIS, + 0, + (_me,), + ((LOCAL_GATEWAY_ID, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DLGI, + {_sSI: _cDLGR, _sm: None}, + (_LGIo, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_ID_SET, {_sN: _LGI}), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY: StaticSchema = ( + 18, + n0, + _LG, + 0, + (_LGI, _OA, _OIw, _St, _Tag), + ( + (LOCAL_GATEWAY_ID, {_aQN: _LGI, _sN: _lGI}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _St, _sN: _st}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +LOCAL_GATEWAY_SET: StaticSchema = ( + 16, + n0, + _LGS, + 0, + (_me,), + ((LOCAL_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGO, + {_sSI: _cDLGRo, _smit: None}, + (_LGo, _NTex), + ((LOCAL_GATEWAY_SET, {_aQN: _LGS, _sN: _lGS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_LOCAL_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DLG, + 0, + DESCRIBE_LOCAL_GATEWAYS_INPUT, + DESCRIBE_LOCAL_GATEWAYS_OUTPUT, + (), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID_SET: StaticSchema = ( + 16, + n0, + _LGVIGIS, + 0, + (_me,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DLGVIGIe, + {_sSI: _cDLGVIGRom, _sm: None}, + (_LGVIGIo, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID_SET, {_sN: _LGVIGI}), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_SET: StaticSchema = ( + 16, + n0, + _LGVIGS, + 0, + (_me,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGVIGOe, + {_sSI: _cDLGVIGRoma, _smit: None}, + (_LGVIGo, _NTex), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_SET, {_aQN: _LGVIGS, _sN: _lGVIGS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DLGVIGe, + 0, + DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_INPUT, + DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_OUTPUT, + (), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_INPUT: StaticSchema = ( + 18, + n0, + _DLGVIIe, + {_sSI: _cDLGVIRom, _sm: None}, + (_LGVIIo, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID_SET, {_sN: _LGVII}), + (FILTER_LIST, {_sN: _Fi}), + (LOCAL_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_VIRTUAL_INTERFACE_SET: StaticSchema = ( + 16, + n0, + _LGVIS, + 0, + (_me,), + ((LOCAL_GATEWAY_VIRTUAL_INTERFACE, {_sN: _i}),), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_OUTPUT: StaticSchema = ( + 18, + n0, + _DLGVIOe, + {_sSI: _cDLGVIRoma, _smit: None}, + (_LGVIo, _NTex), + ( + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_SET, {_aQN: _LGVIS, _sN: _lGVIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES: StaticOperationSchema = ( + 23, + n0, + _DLGVIe, + 0, + DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_INPUT, + DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_OUTPUT, + (), +) + +DESCRIBE_LOCKED_SNAPSHOTS_MAX_RESULTS: StaticSchema = (7, n0, _DLSMR, 0) + +SNAPSHOT_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _SISL, + 0, + (_me,), + ((SNAPSHOT_ID, {_sN: _SIn}),), +) + +DESCRIBE_LOCKED_SNAPSHOTS_INPUT: StaticSchema = ( + 18, + n0, + _DLSI, + {_sSI: _cDLSR, _sm: None}, + (_Fil, _MR, _NTex, _SInap, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_LOCKED_SNAPSHOTS_MAX_RESULTS, 0), + (STRING, 0), + (SNAPSHOT_ID_STRING_LIST, {_sN: _SIn}), + (BOOLEAN, 0), + ), +) + +COOL_OFF_PERIOD_RESPONSE_HOURS: StaticSchema = (7, n0, _COPRH, 0) + +RETENTION_PERIOD_RESPONSE_DAYS: StaticSchema = (7, n0, _RPRD, 0) + +LOCK_STATE: StaticSchema = ( + 14, + n0, + _LSoc, + 0, + (_compli, _go, _cc___, _ex), + ((-1, {_sV: _compli}), (-1, {_sV: _go}), (-1, {_sV: _cc____}), (-1, {_sV: _ex})), +) + +LOCKED_SNAPSHOTS_INFO: StaticSchema = ( + 18, + n0, + _LSI, + 0, + (_OIw, _SIn, _LSoc, _LDo, _COPo, _COPEO, _LCO, _LDST, _LEO), + ( + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (LOCK_STATE, {_aQN: _LSoc, _sN: _lSoc}), + (RETENTION_PERIOD_RESPONSE_DAYS, {_aQN: _LDo, _sN: _lDo}), + (COOL_OFF_PERIOD_RESPONSE_HOURS, {_aQN: _COPo, _sN: _cOPo}), + (MILLISECOND_DATE_TIME, {_aQN: _COPEO, _sN: _cOPEO}), + (MILLISECOND_DATE_TIME, {_aQN: _LCO, _sN: _lCO}), + (MILLISECOND_DATE_TIME, {_aQN: _LDST, _sN: _lDST}), + (MILLISECOND_DATE_TIME, {_aQN: _LEO, _sN: _lEO}), + ), +) + +LOCKED_SNAPSHOTS_INFO_LIST: StaticSchema = ( + 16, + n0, + _LSIL, + 0, + (_me,), + ((LOCKED_SNAPSHOTS_INFO, {_sN: _i}),), +) + +DESCRIBE_LOCKED_SNAPSHOTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLSO, + {_sSI: _cDLSRo, _smit: None}, + (_Sn, _NTex), + ( + (LOCKED_SNAPSHOTS_INFO_LIST, {_aQN: _SSna, _sN: _sSn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_LOCKED_SNAPSHOTS: StaticOperationSchema = ( + 23, + n0, + _DLSe, + 0, + DESCRIBE_LOCKED_SNAPSHOTS_INPUT, + DESCRIBE_LOCKED_SNAPSHOTS_OUTPUT, + (), +) + +DESCRIBE_MAC_HOSTS_REQUEST_MAX_RESULTS: StaticSchema = (7, n0, _DMHRMR, 0) + +DESCRIBE_MAC_HOSTS_INPUT: StaticSchema = ( + 18, + n0, + _DMHI, + {_sSI: _cDMHR, _sm: None}, + (_Fil, _HI, _MR, _NTex), + ( + (FILTER_LIST, {_sN: _Fi}), + (REQUEST_HOST_ID_LIST, {_sN: _HIo}), + (DESCRIBE_MAC_HOSTS_REQUEST_MAX_RESULTS, 0), + (STRING, 0), + ), +) + +MAC_OS_VERSION_STRING_LIST: StaticSchema = ( + 16, + n0, + _MOSVSL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +MAC_HOST: StaticSchema = ( + 18, + n0, + _MH, + 0, + (_HIo, _MOSLSV), + ( + (DEDICATED_HOST_ID, {_aQN: _HIo, _sN: _hI}), + (MAC_OS_VERSION_STRING_LIST, {_aQN: _MOSLSVS, _sN: _mOSLSVS}), + ), +) + +MAC_HOST_LIST: StaticSchema = (16, n0, _MHL, 0, (_me,), ((MAC_HOST, {_sN: _i}),)) + +DESCRIBE_MAC_HOSTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DMHO, + {_sSI: _cDMHRo, _smit: None}, + (_MHa, _NTex), + ((MAC_HOST_LIST, {_aQN: _MHS, _sN: _mHS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_MAC_HOSTS: StaticOperationSchema = ( + 23, + n0, + _DMH, + 0, + DESCRIBE_MAC_HOSTS_INPUT, + DESCRIBE_MAC_HOSTS_OUTPUT, + (), +) + +MAC_MODIFICATION_TASK_ID_LIST: StaticSchema = ( + 16, + n0, + _MMTIL, + 0, + (_me,), + ((MAC_MODIFICATION_TASK_ID, {_sN: _i}),), +) + +DESCRIBE_MAC_MODIFICATION_TASKS_MAX_RESULTS: StaticSchema = (7, n0, _DMMTMR, 0) + +DESCRIBE_MAC_MODIFICATION_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DMMTI, + {_sSI: _cDMMTR, _sm: None}, + (_DR, _Fil, _MMTIa, _MR, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (MAC_MODIFICATION_TASK_ID_LIST, {_sN: _MMTI}), + (DESCRIBE_MAC_MODIFICATION_TASKS_MAX_RESULTS, 0), + (STRING, 0), + ), +) + +MAC_MODIFICATION_TASK_LIST: StaticSchema = ( + 16, + n0, + _MMTL, + 0, + (_me,), + ((MAC_MODIFICATION_TASK, {_sN: _i}),), +) + +DESCRIBE_MAC_MODIFICATION_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DMMTO, + {_sSI: _cDMMTRo, _smit: None}, + (_MMTa, _NTex), + ( + (MAC_MODIFICATION_TASK_LIST, {_aQN: _MMTSa, _sN: _mMTS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_MAC_MODIFICATION_TASKS: StaticOperationSchema = ( + 23, + n0, + _DMMT, + 0, + DESCRIBE_MAC_MODIFICATION_TASKS_INPUT, + DESCRIBE_MAC_MODIFICATION_TASKS_OUTPUT, + (), +) + +PREFIX_LIST_MAX_RESULTS: StaticSchema = (7, n0, _PLMR, 0) + +DESCRIBE_MANAGED_PREFIX_LISTS_INPUT: StaticSchema = ( + 18, + n0, + _DMPLIe, + {_sSI: _cDMPLRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _PLIr), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (PREFIX_LIST_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (VALUE_STRING_LIST, {_sN: _PLI}), + ), +) + +MANAGED_PREFIX_LIST_SET: StaticSchema = ( + 16, + n0, + _MPLS, + 0, + (_me,), + ((MANAGED_PREFIX_LIST, {_sN: _i}),), +) + +DESCRIBE_MANAGED_PREFIX_LISTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DMPLOe, + {_sSI: _cDMPLRoma, _smit: None}, + (_NTex, _PLre), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (MANAGED_PREFIX_LIST_SET, {_aQN: _PLSr, _sN: _pLSr}), + ), +) + +DESCRIBE_MANAGED_PREFIX_LISTS: StaticOperationSchema = ( + 23, + n0, + _DMPLe, + 0, + DESCRIBE_MANAGED_PREFIX_LISTS_INPUT, + DESCRIBE_MANAGED_PREFIX_LISTS_OUTPUT, + (), +) + +DESCRIBE_MOVING_ADDRESSES_MAX_RESULTS: StaticSchema = (7, n0, _DMAMR, 0) + +DESCRIBE_MOVING_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _DMAI, + {_sSI: _cDMAR, _sm: None}, + (_DR, _PIu, _NTex, _Fil, _MR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VALUE_STRING_LIST, {_aQN: _PI, _sN: _pI}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (FILTER_LIST, {_aQN: _Fi, _sN: _filt}), + (DESCRIBE_MOVING_ADDRESSES_MAX_RESULTS, {_aQN: _MR, _sN: _mR}), + ), +) + +MOVE_STATUS: StaticSchema = ( + 14, + n0, + _MSov, + 0, + (_mTV, _rTC), + ((-1, {_sV: _mTV}), (-1, {_sV: _rTC})), +) + +MOVING_ADDRESS_STATUS: StaticSchema = ( + 18, + n0, + _MAS, + 0, + (_MSov, _PI), + ((MOVE_STATUS, {_aQN: _MSov, _sN: _mSo}), (STRING, {_aQN: _PI, _sN: _pI})), +) + +MOVING_ADDRESS_STATUS_SET: StaticSchema = ( + 16, + n0, + _MASS, + 0, + (_me,), + ((MOVING_ADDRESS_STATUS, {_sN: _i}),), +) + +DESCRIBE_MOVING_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _DMAO, + {_sSI: _cDMARo, _smit: None}, + (_MASo, _NTex), + ( + (MOVING_ADDRESS_STATUS_SET, {_aQN: _MASS, _sN: _mASS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_MOVING_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _DMA, + 0, + DESCRIBE_MOVING_ADDRESSES_INPUT, + DESCRIBE_MOVING_ADDRESSES_OUTPUT, + (), +) + +DESCRIBE_NAT_GATEWAYS_MAX_RESULTS: StaticSchema = (7, n0, _DNGMR, 0) + +NAT_GATEWAY_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _NGISL, + 0, + (_me,), + ((NAT_GATEWAY_ID, {_sN: _i}),), +) + +DESCRIBE_NAT_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DNGIe, + {_sSI: _cDNGRom, _sm: None}, + (_DR, _Fi, _MR, _NGIa, _NTex), + ( + (BOOLEAN, 0), + (FILTER_LIST, 0), + (DESCRIBE_NAT_GATEWAYS_MAX_RESULTS, 0), + (NAT_GATEWAY_ID_STRING_LIST, {_sN: _NGI}), + (STRING, 0), + ), +) + +NAT_GATEWAY_LIST: StaticSchema = (16, n0, _NGL, 0, (_me,), ((NAT_GATEWAY, {_sN: _i}),)) + +DESCRIBE_NAT_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNGOe, + {_sSI: _cDNGRoma, _smit: None}, + (_NGa, _NTex), + ((NAT_GATEWAY_LIST, {_aQN: _NGSa, _sN: _nGS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_NAT_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DNGe, + 0, + DESCRIBE_NAT_GATEWAYS_INPUT, + DESCRIBE_NAT_GATEWAYS_OUTPUT, + (), +) + +DESCRIBE_NETWORK_ACLS_MAX_RESULTS: StaticSchema = (7, n0, _DNAMR, 0) + +NETWORK_ACL_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _NAISL, + 0, + (_me,), + ((NETWORK_ACL_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_ACLS_INPUT: StaticSchema = ( + 18, + n0, + _DNAIe, + {_sSI: _cDNARo, _sm: None}, + (_NTex, _MR, _DR, _NAIe, _Fil), + ( + (STRING, 0), + (DESCRIBE_NETWORK_ACLS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ID_STRING_LIST, {_sN: _NAI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +NETWORK_ACL_LIST: StaticSchema = (16, n0, _NAL, 0, (_me,), ((NETWORK_ACL, {_sN: _i}),)) + +DESCRIBE_NETWORK_ACLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNAOe, + {_sSI: _cDNARom, _smit: None}, + (_NAet, _NTex), + ((NETWORK_ACL_LIST, {_aQN: _NAS, _sN: _nAS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_NETWORK_ACLS: StaticOperationSchema = ( + 23, + n0, + _DNAe, + 0, + DESCRIBE_NETWORK_ACLS_INPUT, + DESCRIBE_NETWORK_ACLS_OUTPUT, + (), +) + +NETWORK_INSIGHTS_MAX_RESULTS: StaticSchema = (7, n0, _NIMR, 0) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID_LIST: StaticSchema = ( + 16, + n0, + _NIASAIL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_INPUT: StaticSchema = ( + 18, + n0, + _DNIASAIe, + {_sSI: _cDNIASARom, _sm: None}, + (_NIASAIe, _NIASI, _ASTB, _ASTE, _Fil, _MR, _DR, _NTex), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID_LIST, {_sN: _NIASAI}), + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, 0), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (FILTER_LIST, {_sN: _Fi}), + (NETWORK_INSIGHTS_MAX_RESULTS, 0), + (BOOLEAN, 0), + (NEXT_TOKEN, 0), + ), +) + +FINDINGS_FOUND: StaticSchema = ( + 14, + n0, + _FFi, + 0, + (_true, _fal, _unk), + ((-1, {_sV: _true}), (-1, {_sV: _fal}), (-1, {_sV: _unk})), +) + +ANALYSIS_STATUS: StaticSchema = ( + 14, + n0, + _ASn, + 0, + (_ru, _suc, _fa), + ((-1, {_sV: _ru}), (-1, {_sV: _suc}), (-1, {_sV: _fa})), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS: StaticSchema = ( + 18, + n0, + _NIASAe, + 0, + (_NIASAI, _NIASAA, _NIASI, _Sta, _SMt, _WM, _SDt, _ED, _FFi, _AEC, _Tag), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, {_aQN: _NIASAI, _sN: _nIASAI}), + (RESOURCE_ARN, {_aQN: _NIASAA, _sN: _nIASAA}), + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_aQN: _NIASI, _sN: _nIASI}), + (ANALYSIS_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (STRING, {_aQN: _WM, _sN: _wM}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (FINDINGS_FOUND, {_aQN: _FFi, _sN: _fFi}), + (INTEGER, {_aQN: _AEC, _sN: _aEC}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_LIST: StaticSchema = ( + 16, + n0, + _NIASAL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIASAOe, + {_sSI: _cDNIASARoma, _smit: None}, + (_NIASAet, _NTex), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_LIST, {_aQN: _NIASAS, _sN: _nIASAS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES: StaticOperationSchema = ( + 23, + n0, + _DNIASAe, + 0, + DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_INPUT, + DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_OUTPUT, + (), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_ID_LIST: StaticSchema = ( + 16, + n0, + _NIASIL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_INPUT: StaticSchema = ( + 18, + n0, + _DNIASIe, + {_sSI: _cDNIASRom, _sm: None}, + (_NIASIe, _Fil, _MR, _DR, _NTex), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID_LIST, {_sN: _NIASI}), + (FILTER_LIST, {_sN: _Fi}), + (NETWORK_INSIGHTS_MAX_RESULTS, 0), + (BOOLEAN, 0), + (NEXT_TOKEN, 0), + ), +) + +NETWORK_INSIGHTS_ACCESS_SCOPE_LIST: StaticSchema = ( + 16, + n0, + _NIASL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIASOe, + {_sSI: _cDNIASRoma, _smit: None}, + (_NIASe, _NTex), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_LIST, {_aQN: _NIASS, _sN: _nIASS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES: StaticOperationSchema = ( + 23, + n0, + _DNIASe, + 0, + DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_INPUT, + DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_OUTPUT, + (), +) + +NETWORK_INSIGHTS_ANALYSIS_ID_LIST: StaticSchema = ( + 16, + n0, + _NIAIL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ANALYSIS_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ANALYSES_INPUT: StaticSchema = ( + 18, + n0, + _DNIAIe, + {_sSI: _cDNIARom, _sm: None}, + (_NIAIe, _NIPI, _AST, _AET, _Fil, _MR, _DR, _NTex), + ( + (NETWORK_INSIGHTS_ANALYSIS_ID_LIST, {_sN: _NIAI}), + (NETWORK_INSIGHTS_PATH_ID, 0), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (FILTER_LIST, {_sN: _Fi}), + (NETWORK_INSIGHTS_MAX_RESULTS, 0), + (BOOLEAN, 0), + (NEXT_TOKEN, 0), + ), +) + +ARN_LIST: StaticSchema = (16, n0, _ALr, 0, (_me,), ((RESOURCE_ARN, {_sN: _i}),)) + +NETWORK_INSIGHTS_ANALYSIS: StaticSchema = ( + 18, + n0, + _NIAet, + 0, + ( + _NIAI, + _NIAA, + _NIPI, + _AAdd, + _FIAi, + _FOA, + _SDt, + _Sta, + _SMt, + _WM, + _NPF, + _FPC, + _RPC, + _Exp, + _APHlt, + _SAug, + _Tag, + ), + ( + (NETWORK_INSIGHTS_ANALYSIS_ID, {_aQN: _NIAI, _sN: _nIAI}), + (RESOURCE_ARN, {_aQN: _NIAA, _sN: _nIAA}), + (NETWORK_INSIGHTS_PATH_ID, {_aQN: _NIPI, _sN: _nIPI}), + (VALUE_STRING_LIST, {_aQN: _AASd, _sN: _aASd}), + (ARN_LIST, {_aQN: _FIAS, _sN: _fIAS}), + (ARN_LIST, {_aQN: _FOAS, _sN: _fOAS}), + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (ANALYSIS_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (STRING, {_aQN: _WM, _sN: _wM}), + (BOOLEAN, {_aQN: _NPF, _sN: _nPF}), + (PATH_COMPONENT_LIST, {_aQN: _FPCS, _sN: _fPCS}), + (PATH_COMPONENT_LIST, {_aQN: _RPCS, _sN: _rPCS}), + (EXPLANATION_LIST, {_aQN: _ES, _sN: _eS}), + (ALTERNATE_PATH_HINT_LIST, {_aQN: _APHS, _sN: _aPHS}), + (VALUE_STRING_LIST, {_aQN: _SASu, _sN: _sASu}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +NETWORK_INSIGHTS_ANALYSIS_LIST: StaticSchema = ( + 16, + n0, + _NIAL, + 0, + (_me,), + ((NETWORK_INSIGHTS_ANALYSIS, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_ANALYSES_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIAOe, + {_sSI: _cDNIARoma, _smit: None}, + (_NIAetw, _NTex), + ( + (NETWORK_INSIGHTS_ANALYSIS_LIST, {_aQN: _NIASet, _sN: _nIASe}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INSIGHTS_ANALYSES: StaticOperationSchema = ( + 23, + n0, + _DNIAe, + 0, + DESCRIBE_NETWORK_INSIGHTS_ANALYSES_INPUT, + DESCRIBE_NETWORK_INSIGHTS_ANALYSES_OUTPUT, + (), +) + +NETWORK_INSIGHTS_PATH_ID_LIST: StaticSchema = ( + 16, + n0, + _NIPIL, + 0, + (_me,), + ((NETWORK_INSIGHTS_PATH_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_PATHS_INPUT: StaticSchema = ( + 18, + n0, + _DNIPIes, + {_sSI: _cDNIPRomam, _sm: None}, + (_NIPIet, _Fil, _MR, _DR, _NTex), + ( + (NETWORK_INSIGHTS_PATH_ID_LIST, {_sN: _NIPI}), + (FILTER_LIST, {_sN: _Fi}), + (NETWORK_INSIGHTS_MAX_RESULTS, 0), + (BOOLEAN, 0), + (NEXT_TOKEN, 0), + ), +) + +NETWORK_INSIGHTS_PATH_LIST: StaticSchema = ( + 16, + n0, + _NIPL, + 0, + (_me,), + ((NETWORK_INSIGHTS_PATH, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INSIGHTS_PATHS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIPOes, + {_sSI: _cDNIPRomama, _smit: None}, + (_NIPet, _NTex), + ( + (NETWORK_INSIGHTS_PATH_LIST, {_aQN: _NIPSe, _sN: _nIPS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INSIGHTS_PATHS: StaticOperationSchema = ( + 23, + n0, + _DNIPes, + 0, + DESCRIBE_NETWORK_INSIGHTS_PATHS_INPUT, + DESCRIBE_NETWORK_INSIGHTS_PATHS_OUTPUT, + (), +) + +NETWORK_INTERFACE_ATTRIBUTE: StaticSchema = ( + 14, + n0, + _NIAetwo, + 0, + (_desc, _gS, _sDC, _atta, _aPIA), + ( + (-1, {_sV: _desc}), + (-1, {_sV: _gS}), + (-1, {_sV: _sDC}), + (-1, {_sV: _atta}), + (-1, {_sV: _aPIA}), + ), +) + +DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DNIAIes, + {_sSI: _cDNIARomam, _sm: None}, + (_DR, _NII, _Attr), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (NETWORK_INTERFACE_ATTRIBUTE, {_aQN: _Attr, _sN: _attr}), + ), +) + +DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIAOes, + {_sSI: _cDNIARomama, _smit: None}, + (_At, _Des, _G, _NII, _SDC, _APIAsso), + ( + (NETWORK_INTERFACE_ATTACHMENT, {_aQN: _At, _sN: _atta}), + (ATTRIBUTE_VALUE, {_aQN: _Des, _sN: _desc}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (STRING, {_aQN: _NII, _sN: _nII}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _SDC, _sN: _sDC}), + (BOOLEAN, {_aQN: _APIAsso, _sN: _aPIA}), + ), +) + +DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DNIAes, + 0, + DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_INPUT, + DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT, + (), +) + +DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_MAX_RESULTS: StaticSchema = (7, n0, _DNIPMR, 0) + +NETWORK_INTERFACE_PERMISSION_ID_LIST: StaticSchema = ( + 16, + n0, + _NIPILe, + 0, + (_me,), + ((NETWORK_INTERFACE_PERMISSION_ID, 0),), +) + +DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DNIPIesc, + {_sSI: _cDNIPRomamaz, _sm: None}, + (_NIPIetw, _Fil, _NTex, _MR), + ( + (NETWORK_INTERFACE_PERMISSION_ID_LIST, {_sN: _NIPIe}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_MAX_RESULTS, 0), + ), +) + +NETWORK_INTERFACE_PERMISSION_LIST: StaticSchema = ( + 16, + n0, + _NIPLe, + 0, + (_me,), + ((NETWORK_INTERFACE_PERMISSION, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIPOesc, + {_sSI: _cDNIPRomamazo, _smit: None}, + (_NIPetw, _NTex), + ( + (NETWORK_INTERFACE_PERMISSION_LIST, {_aQN: _NIPetw, _sN: _nIPe}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INTERFACE_PERMISSIONS: StaticOperationSchema = ( + 23, + n0, + _DNIPesc, + 0, + DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_INPUT, + DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_OUTPUT, + (), +) + +DESCRIBE_NETWORK_INTERFACES_MAX_RESULTS: StaticSchema = (7, n0, _DNIMR, 0) + +NETWORK_INTERFACE_ID_LIST: StaticSchema = ( + 16, + n0, + _NIIL, + 0, + (_me,), + ((NETWORK_INTERFACE_ID, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INTERFACES_INPUT: StaticSchema = ( + 18, + n0, + _DNIIes, + {_sSI: _cDNIRo, _sm: None}, + (_NTex, _MR, _IMR, _DR, _NIIe, _Fil), + ( + (STRING, 0), + (DESCRIBE_NETWORK_INTERFACES_MAX_RESULTS, 0), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID_LIST, {_sN: _NII}), + (FILTER_LIST, {_aQN: _Fi, _sN: _filt}), + ), +) + +NETWORK_INTERFACE_LIST: StaticSchema = ( + 16, + n0, + _NIL, + 0, + (_me,), + ((NETWORK_INTERFACE, {_sN: _i}),), +) + +DESCRIBE_NETWORK_INTERFACES_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIOe, + {_sSI: _cDNIRom, _smit: None}, + (_NIe, _NTex), + ( + (NETWORK_INTERFACE_LIST, {_aQN: _NIS, _sN: _nIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_NETWORK_INTERFACES: StaticOperationSchema = ( + 23, + n0, + _DNIe, + 0, + DESCRIBE_NETWORK_INTERFACES_INPUT, + DESCRIBE_NETWORK_INTERFACES_OUTPUT, + (), +) + +OUTPOST_LAG_MAX_RESULTS: StaticSchema = (7, n0, _OLMR, 0) + +OUTPOST_LAG_ID_SET: StaticSchema = ( + 16, + n0, + _OLIS, + 0, + (_me,), + ((OUTPOST_LAG_ID, {_sN: _i}),), +) + +DESCRIBE_OUTPOST_LAGS_INPUT: StaticSchema = ( + 18, + n0, + _DOLI, + {_sSI: _cDOLR, _sm: None}, + (_OLIu, _Fil, _MR, _NTex, _DR), + ( + (OUTPOST_LAG_ID_SET, {_sN: _OLI}), + (FILTER_LIST, {_sN: _Fi}), + (OUTPOST_LAG_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +SERVICE_LINK_VIRTUAL_INTERFACE_ID: StaticSchema = (3, n0, _SLVII, 0) + +SERVICE_LINK_VIRTUAL_INTERFACE_ID_SET: StaticSchema = ( + 16, + n0, + _SLVIIS, + 0, + (_me,), + ((SERVICE_LINK_VIRTUAL_INTERFACE_ID, {_sN: _i}),), +) + +OUTPOST_LAG: StaticSchema = ( + 18, + n0, + _OL, + 0, + (_OA, _OIw, _St, _OLI, _LGVIIo, _SLVIIe, _Tag), + ( + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _St, _sN: _st}), + (OUTPOST_LAG_ID, {_aQN: _OLI, _sN: _oLI}), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_ID_SET, {_aQN: _LGVIIS, _sN: _lGVIIS}), + (SERVICE_LINK_VIRTUAL_INTERFACE_ID_SET, {_aQN: _SLVIIS, _sN: _sLVIIS}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +OUTPOST_LAG_SET: StaticSchema = (16, n0, _OLS, 0, (_me,), ((OUTPOST_LAG, {_sN: _i}),)) + +DESCRIBE_OUTPOST_LAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DOLO, + {_sSI: _cDOLRo, _smit: None}, + (_OLu, _NTex), + ((OUTPOST_LAG_SET, {_aQN: _OLS, _sN: _oLS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_OUTPOST_LAGS: StaticOperationSchema = ( + 23, + n0, + _DOLe, + 0, + DESCRIBE_OUTPOST_LAGS_INPUT, + DESCRIBE_OUTPOST_LAGS_OUTPUT, + (), +) + +PLACEMENT_GROUP_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _PGISL, + 0, + (_me,), + ((PLACEMENT_GROUP_ID, {_sN: _GIr}),), +) + +PLACEMENT_GROUP_STRING_LIST: StaticSchema = ( + 16, + n0, + _PGSLl, + 0, + (_me,), + ((PLACEMENT_GROUP_NAME, 0),), +) + +DESCRIBE_PLACEMENT_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DPGIe, + {_sSI: _cDPGRo, _sm: None}, + (_GIrou, _DR, _GNr, _Fil), + ( + (PLACEMENT_GROUP_ID_STRING_LIST, {_sN: _GIr}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (PLACEMENT_GROUP_STRING_LIST, {_aQN: _GN, _sN: _gN}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +PLACEMENT_GROUP_LIST: StaticSchema = ( + 16, + n0, + _PGL, + 0, + (_me,), + ((PLACEMENT_GROUP, {_sN: _i}),), +) + +DESCRIBE_PLACEMENT_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DPGOe, + {_sSI: _cDPGRom, _smit: None}, + (_PGl,), + ((PLACEMENT_GROUP_LIST, {_aQN: _PGSla, _sN: _pGS}),), +) + +DESCRIBE_PLACEMENT_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DPGe, + 0, + DESCRIBE_PLACEMENT_GROUPS_INPUT, + DESCRIBE_PLACEMENT_GROUPS_OUTPUT, + (), +) + +PREFIX_LIST_RESOURCE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _PLRISL, + 0, + (_me,), + ((PREFIX_LIST_RESOURCE_ID, {_sN: _i}),), +) + +DESCRIBE_PREFIX_LISTS_INPUT: StaticSchema = ( + 18, + n0, + _DPLIe, + {_sSI: _cDPLR, _sm: None}, + (_DR, _Fil, _MR, _NTex, _PLIr), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + (PREFIX_LIST_RESOURCE_ID_STRING_LIST, {_sN: _PLI}), + ), +) + +PREFIX_LIST: StaticSchema = ( + 18, + n0, + _PL, + 0, + (_Cid, _PLI, _PLN), + ( + (VALUE_STRING_LIST, {_aQN: _CS, _sN: _cS}), + (STRING, {_aQN: _PLI, _sN: _pLI}), + (STRING, {_aQN: _PLN, _sN: _pLN}), + ), +) + +PREFIX_LIST_SET: StaticSchema = (16, n0, _PLSr, 0, (_me,), ((PREFIX_LIST, {_sN: _i}),)) + +DESCRIBE_PREFIX_LISTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DPLO, + {_sSI: _cDPLRo, _smit: None}, + (_NTex, _PLre), + ((STRING, {_aQN: _NTex, _sN: _nT}), (PREFIX_LIST_SET, {_aQN: _PLSr, _sN: _pLSr})), +) + +DESCRIBE_PREFIX_LISTS: StaticOperationSchema = ( + 23, + n0, + _DPLes, + 0, + DESCRIBE_PREFIX_LISTS_INPUT, + DESCRIBE_PREFIX_LISTS_OUTPUT, + (), +) + +DESCRIBE_PRINCIPAL_ID_FORMAT_MAX_RESULTS: StaticSchema = (7, n0, _DPIFMR, 0) + +RESOURCE_LIST: StaticSchema = (16, n0, _RLes, 0, (_me,), ((STRING, {_sN: _i}),)) + +DESCRIBE_PRINCIPAL_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _DPIFI, + {_sSI: _cDPIFR, _sm: None}, + (_DR, _Res, _MR, _NTex), + ( + (BOOLEAN, 0), + (RESOURCE_LIST, {_sN: _Reso}), + (DESCRIBE_PRINCIPAL_ID_FORMAT_MAX_RESULTS, 0), + (STRING, 0), + ), +) + +PRINCIPAL_ID_FORMAT: StaticSchema = ( + 18, + n0, + _PIF, + 0, + (_Ar, _Statu), + ((STRING, {_aQN: _Ar, _sN: _ar}), (ID_FORMAT_LIST, {_aQN: _SSta, _sN: _sSt})), +) + +PRINCIPAL_ID_FORMAT_LIST: StaticSchema = ( + 16, + n0, + _PIFL, + 0, + (_me,), + ((PRINCIPAL_ID_FORMAT, {_sN: _i}),), +) + +DESCRIBE_PRINCIPAL_ID_FORMAT_OUTPUT: StaticSchema = ( + 18, + n0, + _DPIFO, + {_sSI: _cDPIFRo, _smit: None}, + (_Prin, _NTex), + ( + (PRINCIPAL_ID_FORMAT_LIST, {_aQN: _PSrin, _sN: _pSrin}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_PRINCIPAL_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _DPIF, + 0, + DESCRIBE_PRINCIPAL_ID_FORMAT_INPUT, + DESCRIBE_PRINCIPAL_ID_FORMAT_OUTPUT, + (), +) + +POOL_MAX_RESULTS: StaticSchema = (7, n0, _PMR, 0) + +PUBLIC_IPV4_POOL_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _PIPISL, + 0, + (_me,), + ((IPV4_POOL_EC2_ID, {_sN: _i}),), +) + +DESCRIBE_PUBLIC_IPV4_POOLS_INPUT: StaticSchema = ( + 18, + n0, + _DPIPIe, + {_sSI: _cDPIPRom, _sm: None}, + (_PIoo, _NTex, _MR, _Fil), + ( + (PUBLIC_IPV4_POOL_ID_STRING_LIST, {_sN: _PIo}), + (NEXT_TOKEN, 0), + (POOL_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +PUBLIC_IPV4_POOL_RANGE: StaticSchema = ( + 18, + n0, + _PIPR, + 0, + (_FAi, _LAa, _ACd, _AAC), + ( + (STRING, {_aQN: _FAi, _sN: _fAi}), + (STRING, {_aQN: _LAa, _sN: _lAa}), + (INTEGER, {_aQN: _ACd, _sN: _aCd}), + (INTEGER, {_aQN: _AAC, _sN: _aAC}), + ), +) + +PUBLIC_IPV4_POOL_RANGE_SET: StaticSchema = ( + 16, + n0, + _PIPRS, + 0, + (_me,), + ((PUBLIC_IPV4_POOL_RANGE, {_sN: _i}),), +) + +PUBLIC_IPV4_POOL: StaticSchema = ( + 18, + n0, + _PIP, + 0, + (_PIo, _Des, _PAR, _TACo, _TAAC, _NBG, _Tag), + ( + (STRING, {_aQN: _PIo, _sN: _pIo}), + (STRING, {_aQN: _Des, _sN: _desc}), + (PUBLIC_IPV4_POOL_RANGE_SET, {_aQN: _PARS, _sN: _pARS}), + (INTEGER, {_aQN: _TACo, _sN: _tACo}), + (INTEGER, {_aQN: _TAAC, _sN: _tAAC}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +PUBLIC_IPV4_POOL_SET: StaticSchema = ( + 16, + n0, + _PIPS, + 0, + (_me,), + ((PUBLIC_IPV4_POOL, {_sN: _i}),), +) + +DESCRIBE_PUBLIC_IPV4_POOLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DPIPOe, + {_sSI: _cDPIPRoma, _smit: None}, + (_PIPu, _NTex), + ( + (PUBLIC_IPV4_POOL_SET, {_aQN: _PIPS, _sN: _pIPS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_PUBLIC_IPV4_POOLS: StaticOperationSchema = ( + 23, + n0, + _DPIPe, + 0, + DESCRIBE_PUBLIC_IPV4_POOLS_INPUT, + DESCRIBE_PUBLIC_IPV4_POOLS_OUTPUT, + (), +) + +REGION_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _RNSL, + 0, + (_me,), + ((STRING, {_sN: _RNe}),), +) + +DESCRIBE_REGIONS_INPUT: StaticSchema = ( + 18, + n0, + _DRIe, + {_sSI: _cDRRo, _sm: None}, + (_RNeg, _ARlle, _DR, _Fil), + ( + (REGION_NAME_STRING_LIST, {_sN: _RNe}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +REGION_GEOGRAPHY: StaticSchema = ( + 18, + n0, + _RG, + 0, + (_N,), + ((STRING, {_aQN: _N, _sN: _nam}),), +) + +REGION_GEOGRAPHY_LIST: StaticSchema = ( + 16, + n0, + _RGL, + 0, + (_me,), + ((REGION_GEOGRAPHY, {_sN: _i}),), +) + +REGION: StaticSchema = ( + 18, + n0, + _Re, + 0, + (_OIS, _Ge, _RNe, _Endp), + ( + (STRING, {_aQN: _OIS, _sN: _oIS}), + (REGION_GEOGRAPHY_LIST, {_aQN: _GSe, _sN: _gSe}), + (STRING, {_aQN: _RNe, _sN: _rNe}), + (STRING, {_aQN: _REeg, _sN: _rEeg}), + ), +) + +REGION_LIST: StaticSchema = (16, n0, _RLeg, 0, (_me,), ((REGION, {_sN: _i}),)) + +DESCRIBE_REGIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DROe, + {_sSI: _cDRRom, _smit: None}, + (_Reg,), + ((REGION_LIST, {_aQN: _RIegi, _sN: _rIeg}),), +) + +DESCRIBE_REGIONS: StaticOperationSchema = ( + 23, + n0, + _DRes, + 0, + DESCRIBE_REGIONS_INPUT, + DESCRIBE_REGIONS_OUTPUT, + (), +) + +DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_MAX_RESULTS: StaticSchema = (7, n0, _DRRVTMR, 0) + +REPLACE_ROOT_VOLUME_TASK_IDS: StaticSchema = ( + 16, + n0, + _RRVTIe, + 0, + (_me,), + ((REPLACE_ROOT_VOLUME_TASK_ID, {_sN: _RRVTI}),), +) + +DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DRRVTI, + {_sSI: _cDRRVTR, _sm: None}, + (_RRVTIe, _Fil, _MR, _NTex, _DR), + ( + (REPLACE_ROOT_VOLUME_TASK_IDS, {_sN: _RRVTI}), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +REPLACE_ROOT_VOLUME_TASKS: StaticSchema = ( + 16, + n0, + _RRVTe, + 0, + (_me,), + ((REPLACE_ROOT_VOLUME_TASK, {_sN: _i}),), +) + +DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRRVTO, + {_sSI: _cDRRVTRo, _smit: None}, + (_RRVTe, _NTex), + ( + (REPLACE_ROOT_VOLUME_TASKS, {_aQN: _RRVTSe, _sN: _rRVTS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_REPLACE_ROOT_VOLUME_TASKS: StaticOperationSchema = ( + 23, + n0, + _DRRVT, + 0, + DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_INPUT, + DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_OUTPUT, + (), +) + +OFFERING_CLASS_TYPE: StaticSchema = ( + 14, + n0, + _OCT, + 0, + (_STANDARD, _CONVERTIBLE), + ((-1, {_sV: _stan}), (-1, {_sV: _conv})), +) + +OFFERING_TYPE_VALUES: StaticSchema = ( + 14, + n0, + _OTV, + 0, + (_HU, _MU, _LU_, _NU_, _PU__, _AU_), + ( + (-1, {_sV: _HU_}), + (-1, {_sV: _MU_}), + (-1, {_sV: _LU__}), + (-1, {_sV: _NU__}), + (-1, {_sV: _PU___}), + (-1, {_sV: _AU__}), + ), +) + +RESERVED_INSTANCES_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _RIISL, + 0, + (_me,), + ((RESERVATION_ID, {_sN: _RIIes}),), +) + +DESCRIBE_RESERVED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DRII, + {_sSI: _cDRIR, _sm: None}, + (_OC, _RIIese, _DR, _Fil, _OTf), + ( + (OFFERING_CLASS_TYPE, 0), + (RESERVED_INSTANCES_ID_STRING_LIST, {_sN: _RIIes}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (OFFERING_TYPE_VALUES, {_aQN: _OTf, _sN: _oTf}), + ), +) + +FLOAT: StaticSchema = (9, n0, _Flo, 0) + +RI_PRODUCT_DESCRIPTION: StaticSchema = ( + 14, + n0, + _RIPD, + 0, + (_LU___, _LUAV, _W, _WAV), + ((-1, {_sV: _LUNIX}), (-1, {_sV: _LV}), (-1, {_sV: _W}), (-1, {_sV: _WV})), +) + +RECURRING_CHARGE_FREQUENCY: StaticSchema = ( + 14, + n0, + _RCF, + 0, + (_Hou,), + ((-1, {_sV: _Hou}),), +) + +RECURRING_CHARGE: StaticSchema = ( + 18, + n0, + _RCec, + 0, + (_Am, _Fr), + ( + (DOUBLE, {_aQN: _Am, _sN: _amo}), + (RECURRING_CHARGE_FREQUENCY, {_aQN: _Fr, _sN: _freq}), + ), +) + +RECURRING_CHARGES_LIST: StaticSchema = ( + 16, + n0, + _RCL, + 0, + (_me,), + ((RECURRING_CHARGE, {_sN: _i}),), +) + +SCOPE: StaticSchema = ( + 14, + n0, + _sc, + 0, + (_AZ_, _REGIONAL), + ((-1, {_sV: _AZ__}), (-1, {_sV: _Re})), +) + +RESERVED_INSTANCE_STATE: StaticSchema = ( + 14, + n0, + _RIS, + 0, + (_pp__, _act, _pf____, _reti, _que, _qd), + ( + (-1, {_sV: _pp___}), + (-1, {_sV: _act}), + (-1, {_sV: _pf_____}), + (-1, {_sV: _reti}), + (-1, {_sV: _que}), + (-1, {_sV: _qd_}), + ), +) + +RESERVED_INSTANCES: StaticSchema = ( + 18, + n0, + _RIese, + 0, + ( + _CC, + _ITnst, + _OC, + _OTf, + _RCecu, + _Sc, + _Tag, + _AZI, + _RIIes, + _IT, + _AZ, + _Star, + _End, + _Dur, + _UPs, + _FPix, + _IC, + _PDr, + _St, + ), + ( + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (TENANCY, {_aQN: _ITnst, _sN: _iTns}), + (OFFERING_CLASS_TYPE, {_aQN: _OC, _sN: _oC}), + (OFFERING_TYPE_VALUES, {_aQN: _OTf, _sN: _oTf}), + (RECURRING_CHARGES_LIST, {_aQN: _RCecu, _sN: _rCe}), + (SCOPE, {_aQN: _Sc, _sN: _sc}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _RIIes, _sN: _rII}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (DATE_TIME, {_aQN: _Star, _sN: _star}), + (DATE_TIME, {_aQN: _End, _sN: _end}), + (LONG, {_aQN: _Dur, _sN: _dur}), + (FLOAT, {_aQN: _UPs, _sN: _uPs}), + (FLOAT, {_aQN: _FPix, _sN: _fPix}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (RI_PRODUCT_DESCRIPTION, {_aQN: _PDr, _sN: _pDr}), + (RESERVED_INSTANCE_STATE, {_aQN: _St, _sN: _st}), + ), +) + +RESERVED_INSTANCES_LIST: StaticSchema = ( + 16, + n0, + _RILese, + 0, + (_me,), + ((RESERVED_INSTANCES, {_sN: _i}),), +) + +DESCRIBE_RESERVED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DRIO, + {_sSI: _cDRIRo, _smit: None}, + (_RIese,), + ((RESERVED_INSTANCES_LIST, {_aQN: _RISe, _sN: _rIS}),), +) + +DESCRIBE_RESERVED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DRIes, + 0, + DESCRIBE_RESERVED_INSTANCES_INPUT, + DESCRIBE_RESERVED_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_RESERVED_INSTANCES_LISTINGS_INPUT: StaticSchema = ( + 18, + n0, + _DRILI, + {_sSI: _cDRILR, _sm: None}, + (_RIIes, _RILI, _Fil), + ( + (RESERVATION_ID, {_aQN: _RIIes, _sN: _rII}), + (RESERVED_INSTANCES_LISTING_ID, {_aQN: _RILI, _sN: _rILI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +DESCRIBE_RESERVED_INSTANCES_LISTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRILO, + {_sSI: _cDRILRo, _smit: None}, + (_RILe,), + ((RESERVED_INSTANCES_LISTING_LIST, {_aQN: _RILS, _sN: _rILS}),), +) + +DESCRIBE_RESERVED_INSTANCES_LISTINGS: StaticOperationSchema = ( + 23, + n0, + _DRIL, + 0, + DESCRIBE_RESERVED_INSTANCES_LISTINGS_INPUT, + DESCRIBE_RESERVED_INSTANCES_LISTINGS_OUTPUT, + (), +) + +RESERVED_INSTANCES_MODIFICATION_ID: StaticSchema = (3, n0, _RIMI, 0) + +RESERVED_INSTANCES_MODIFICATION_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _RIMISL, + 0, + (_me,), + ((RESERVED_INSTANCES_MODIFICATION_ID, {_sN: _RIMI}),), +) + +DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DRIMI, + {_sSI: _cDRIMR, _sm: None}, + (_RIMIe, _NTex, _Fil), + ( + (RESERVED_INSTANCES_MODIFICATION_ID_STRING_LIST, {_sN: _RIMI}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +RESERVED_INSTANCES_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RIC, + 0, + (_AZ, _IC, _IT, _Pla, _Sc, _AZI), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (SCOPE, {_aQN: _Sc, _sN: _sc}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + ), +) + +RESERVED_INSTANCES_MODIFICATION_RESULT: StaticSchema = ( + 18, + n0, + _RIMR, + 0, + (_RIIes, _TCa), + ( + (STRING, {_aQN: _RIIes, _sN: _rII}), + (RESERVED_INSTANCES_CONFIGURATION, {_aQN: _TCa, _sN: _tCa}), + ), +) + +RESERVED_INSTANCES_MODIFICATION_RESULT_LIST: StaticSchema = ( + 16, + n0, + _RIMRL, + 0, + (_me,), + ((RESERVED_INSTANCES_MODIFICATION_RESULT, {_sN: _i}),), +) + +RESERVED_INSTANCES_ID: StaticSchema = ( + 18, + n0, + _RIIes, + 0, + (_RIIes,), + ((STRING, {_aQN: _RIIes, _sN: _rII}),), +) + +RESERVED_INTANCES_IDS: StaticSchema = ( + 16, + n0, + _RIIeser, + 0, + (_me,), + ((RESERVED_INSTANCES_ID, {_sN: _i}),), +) + +RESERVED_INSTANCES_MODIFICATION: StaticSchema = ( + 18, + n0, + _RIM, + 0, + (_CTl, _CD, _EDf, _MRo, _RIIese, _RIMI, _Sta, _SMt, _UD), + ( + (STRING, {_aQN: _CTl, _sN: _cTl}), + (DATE_TIME, {_aQN: _CD, _sN: _cD}), + (DATE_TIME, {_aQN: _EDf, _sN: _eDf}), + (RESERVED_INSTANCES_MODIFICATION_RESULT_LIST, {_aQN: _MRS, _sN: _mRS}), + (RESERVED_INTANCES_IDS, {_aQN: _RISe, _sN: _rIS}), + (STRING, {_aQN: _RIMI, _sN: _rIMI}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (DATE_TIME, {_aQN: _UD, _sN: _uD}), + ), +) + +RESERVED_INSTANCES_MODIFICATION_LIST: StaticSchema = ( + 16, + n0, + _RIML, + 0, + (_me,), + ((RESERVED_INSTANCES_MODIFICATION, {_sN: _i}),), +) + +DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRIMO, + {_sSI: _cDRIMRo, _smit: None}, + (_NTex, _RIMe), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (RESERVED_INSTANCES_MODIFICATION_LIST, {_aQN: _RIMS, _sN: _rIMS}), + ), +) + +DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DRIM, + 0, + DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_INPUT, + DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_OUTPUT, + (), +) + +RESERVED_INSTANCES_OFFERING_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _RIOISL, + 0, + (_me,), + ((RESERVED_INSTANCES_OFFERING_ID, 0),), +) + +DESCRIBE_RESERVED_INSTANCES_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DRIOI, + {_sSI: _cDRIOR, _sm: None}, + ( + _AZ, + _IMn, + _IT, + _MDa, + _MIC, + _MDi, + _OC, + _PDr, + _RIOIe, + _AZI, + _DR, + _Fil, + _ITnst, + _OTf, + _NTex, + _MR, + ), + ( + (STRING, 0), + (BOOLEAN, 0), + (INSTANCE_TYPE, 0), + (LONG, 0), + (INTEGER, 0), + (LONG, 0), + (OFFERING_CLASS_TYPE, 0), + (RI_PRODUCT_DESCRIPTION, 0), + (RESERVED_INSTANCES_OFFERING_ID_STRING_LIST, {_sN: _RIOI}), + (AVAILABILITY_ZONE_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (TENANCY, {_aQN: _ITnst, _sN: _iTns}), + (OFFERING_TYPE_VALUES, {_aQN: _OTf, _sN: _oTf}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + ), +) + +PRICING_DETAIL: StaticSchema = ( + 18, + n0, + _PDri, + 0, + (_Cou, _Pric), + ((INTEGER, {_aQN: _Cou, _sN: _cou}), (DOUBLE, {_aQN: _Pric, _sN: _pric})), +) + +PRICING_DETAILS_LIST: StaticSchema = ( + 16, + n0, + _PDL, + 0, + (_me,), + ((PRICING_DETAIL, {_sN: _i}),), +) + +RESERVED_INSTANCES_OFFERING: StaticSchema = ( + 18, + n0, + _RIO, + 0, + ( + _CC, + _ITnst, + _Mar, + _OC, + _OTf, + _PDric, + _RCecu, + _Sc, + _AZI, + _RIOI, + _IT, + _AZ, + _Dur, + _UPs, + _FPix, + _PDr, + ), + ( + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (TENANCY, {_aQN: _ITnst, _sN: _iTns}), + (BOOLEAN, {_aQN: _Mar, _sN: _mar}), + (OFFERING_CLASS_TYPE, {_aQN: _OC, _sN: _oC}), + (OFFERING_TYPE_VALUES, {_aQN: _OTf, _sN: _oTf}), + (PRICING_DETAILS_LIST, {_aQN: _PDS, _sN: _pDS}), + (RECURRING_CHARGES_LIST, {_aQN: _RCecu, _sN: _rCe}), + (SCOPE, {_aQN: _Sc, _sN: _sc}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _RIOI, _sN: _rIOI}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (LONG, {_aQN: _Dur, _sN: _dur}), + (FLOAT, {_aQN: _UPs, _sN: _uPs}), + (FLOAT, {_aQN: _FPix, _sN: _fPix}), + (RI_PRODUCT_DESCRIPTION, {_aQN: _PDr, _sN: _pDr}), + ), +) + +RESERVED_INSTANCES_OFFERING_LIST: StaticSchema = ( + 16, + n0, + _RIOL, + 0, + (_me,), + ((RESERVED_INSTANCES_OFFERING, {_sN: _i}),), +) + +DESCRIBE_RESERVED_INSTANCES_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRIOO, + {_sSI: _cDRIORo, _smit: None}, + (_NTex, _RIOe), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (RESERVED_INSTANCES_OFFERING_LIST, {_aQN: _RIOS, _sN: _rIOS}), + ), +) + +DESCRIBE_RESERVED_INSTANCES_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DRIOe, + 0, + DESCRIBE_RESERVED_INSTANCES_OFFERINGS_INPUT, + DESCRIBE_RESERVED_INSTANCES_OFFERINGS_OUTPUT, + (), +) + +ROUTE_SERVER_MAX_RESULTS: StaticSchema = (7, n0, _RSMR, 0) + +ROUTE_SERVER_ENDPOINT_IDS_LIST: StaticSchema = ( + 16, + n0, + _RSEIL, + 0, + (_me,), + ((ROUTE_SERVER_ENDPOINT_ID, 0),), +) + +DESCRIBE_ROUTE_SERVER_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DRSEIe, + {_sSI: _cDRSERom, _sm: None}, + (_RSEIo, _NTex, _MR, _Fil, _DR), + ( + (ROUTE_SERVER_ENDPOINT_IDS_LIST, {_sN: _RSEI}), + (STRING, 0), + (ROUTE_SERVER_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +ROUTE_SERVER_ENDPOINTS_LIST: StaticSchema = ( + 16, + n0, + _RSEL, + 0, + (_me,), + ((ROUTE_SERVER_ENDPOINT, {_sN: _i}),), +) + +DESCRIBE_ROUTE_SERVER_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSEOe, + {_sSI: _cDRSERoma, _smit: None}, + (_RSEo, _NTex), + ( + (ROUTE_SERVER_ENDPOINTS_LIST, {_aQN: _RSESo, _sN: _rSES}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_ROUTE_SERVER_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DRSEe, + 0, + DESCRIBE_ROUTE_SERVER_ENDPOINTS_INPUT, + DESCRIBE_ROUTE_SERVER_ENDPOINTS_OUTPUT, + (), +) + +ROUTE_SERVER_PEER_IDS_LIST: StaticSchema = ( + 16, + n0, + _RSPIL, + 0, + (_me,), + ((ROUTE_SERVER_PEER_ID, 0),), +) + +DESCRIBE_ROUTE_SERVER_PEERS_INPUT: StaticSchema = ( + 18, + n0, + _DRSPIe, + {_sSI: _cDRSPRom, _sm: None}, + (_RSPIo, _NTex, _MR, _Fil, _DR), + ( + (ROUTE_SERVER_PEER_IDS_LIST, {_sN: _RSPI}), + (STRING, 0), + (ROUTE_SERVER_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +ROUTE_SERVER_PEERS_LIST: StaticSchema = ( + 16, + n0, + _RSPL, + 0, + (_me,), + ((ROUTE_SERVER_PEER, {_sN: _i}),), +) + +DESCRIBE_ROUTE_SERVER_PEERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSPOe, + {_sSI: _cDRSPRoma, _smit: None}, + (_RSPo, _NTex), + ( + (ROUTE_SERVER_PEERS_LIST, {_aQN: _RSPSo, _sN: _rSPS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_ROUTE_SERVER_PEERS: StaticOperationSchema = ( + 23, + n0, + _DRSPe, + 0, + DESCRIBE_ROUTE_SERVER_PEERS_INPUT, + DESCRIBE_ROUTE_SERVER_PEERS_OUTPUT, + (), +) + +ROUTE_SERVER_IDS_LIST: StaticSchema = ( + 16, + n0, + _RSIL, + 0, + (_me,), + ((ROUTE_SERVER_ID, 0),), +) + +DESCRIBE_ROUTE_SERVERS_INPUT: StaticSchema = ( + 18, + n0, + _DRSIe, + {_sSI: _cDRSRom, _sm: None}, + (_RSIo, _NTex, _MR, _Fil, _DR), + ( + (ROUTE_SERVER_IDS_LIST, {_sN: _RSI}), + (STRING, 0), + (ROUTE_SERVER_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +ROUTE_SERVERS_LIST: StaticSchema = ( + 16, + n0, + _RSL, + 0, + (_me,), + ((ROUTE_SERVER, {_sN: _i}),), +) + +DESCRIBE_ROUTE_SERVERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSOe, + {_sSI: _cDRSRoma, _smit: None}, + (_RSoute, _NTex), + ((ROUTE_SERVERS_LIST, {_aQN: _RSSo, _sN: _rSS}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_ROUTE_SERVERS: StaticOperationSchema = ( + 23, + n0, + _DRSe, + 0, + DESCRIBE_ROUTE_SERVERS_INPUT, + DESCRIBE_ROUTE_SERVERS_OUTPUT, + (), +) + +DESCRIBE_ROUTE_TABLES_MAX_RESULTS: StaticSchema = (7, n0, _DRTMR, 0) + +ROUTE_TABLE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _RTISL, + 0, + (_me,), + ((ROUTE_TABLE_ID, {_sN: _i}),), +) + +DESCRIBE_ROUTE_TABLES_INPUT: StaticSchema = ( + 18, + n0, + _DRTIe, + {_sSI: _cDRTRo, _sm: None}, + (_NTex, _MR, _DR, _RTIou, _Fil), + ( + (STRING, 0), + (DESCRIBE_ROUTE_TABLES_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ID_STRING_LIST, {_sN: _RTIo}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +ROUTE_TABLE_LIST: StaticSchema = (16, n0, _RTLo, 0, (_me,), ((ROUTE_TABLE, {_sN: _i}),)) + +DESCRIBE_ROUTE_TABLES_OUTPUT: StaticSchema = ( + 18, + n0, + _DRTOe, + {_sSI: _cDRTRom, _smit: None}, + (_RTou, _NTex), + ((ROUTE_TABLE_LIST, {_aQN: _RTSo, _sN: _rTSo}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +DESCRIBE_ROUTE_TABLES: StaticOperationSchema = ( + 23, + n0, + _DRTe, + 0, + DESCRIBE_ROUTE_TABLES_INPUT, + DESCRIBE_ROUTE_TABLES_OUTPUT, + (), +) + +SLOT_DATE_TIME_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _SDTRR, + 0, + (_ETa, _LTat), + ((DATE_TIME, 1), (DATE_TIME, 1)), +) + +DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_MAX_RESULTS: StaticSchema = (7, n0, _DSIAMR, 0) + +OCCURRENCE_DAY_REQUEST_SET: StaticSchema = ( + 16, + n0, + _ODRS, + 0, + (_me,), + ((INTEGER, {_sN: _ODc}),), +) + +SCHEDULED_INSTANCE_RECURRENCE_REQUEST: StaticSchema = ( + 18, + n0, + _SIRR, + 0, + (_Fr, _Int, _ODcc, _ORTE, _OUc), + ( + (STRING, 0), + (INTEGER, 0), + (OCCURRENCE_DAY_REQUEST_SET, {_sN: _ODccu}), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_INPUT: StaticSchema = ( + 18, + n0, + _DSIAI, + {_sSI: _cDSIAR, _sm: None}, + (_DR, _Fil, _FSSTR, _MR, _MSDIH, _MSDIHi, _NTex, _Rec), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (SLOT_DATE_TIME_RANGE_REQUEST, 1), + (DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_MAX_RESULTS, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (SCHEDULED_INSTANCE_RECURRENCE_REQUEST, 1), + ), +) + +OCCURRENCE_DAY_SET: StaticSchema = (16, n0, _ODS, 0, (_me,), ((INTEGER, {_sN: _i}),)) + +SCHEDULED_INSTANCE_RECURRENCE: StaticSchema = ( + 18, + n0, + _SIRc, + 0, + (_Fr, _Int, _ODS, _ORTE, _OUc), + ( + (STRING, {_aQN: _Fr, _sN: _freq}), + (INTEGER, {_aQN: _Int, _sN: _int}), + (OCCURRENCE_DAY_SET, {_aQN: _ODS, _sN: _oDS}), + (BOOLEAN, {_aQN: _ORTE, _sN: _oRTE}), + (STRING, {_aQN: _OUc, _sN: _oU}), + ), +) + +SCHEDULED_INSTANCE_AVAILABILITY: StaticSchema = ( + 18, + n0, + _SIA, + 0, + ( + _AZ, + _AIC, + _FSST, + _HP, + _IT, + _MTDID, + _MTDIDi, + _NPet, + _Pla, + _PTu, + _Rec, + _SDIH, + _TSIH, + ), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (INTEGER, {_aQN: _AIC, _sN: _aIC}), + (DATE_TIME, {_aQN: _FSST, _sN: _fSST}), + (STRING, {_aQN: _HP, _sN: _hP}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _MTDID, _sN: _mTDID}), + (INTEGER, {_aQN: _MTDIDi, _sN: _mTDIDi}), + (STRING, {_aQN: _NPet, _sN: _nPet}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (STRING, {_aQN: _PTu, _sN: _pTu}), + (SCHEDULED_INSTANCE_RECURRENCE, {_aQN: _Rec, _sN: _recu}), + (INTEGER, {_aQN: _SDIH, _sN: _sDIH}), + (INTEGER, {_aQN: _TSIH, _sN: _tSIH}), + ), +) + +SCHEDULED_INSTANCE_AVAILABILITY_SET: StaticSchema = ( + 16, + n0, + _SIAS, + 0, + (_me,), + ((SCHEDULED_INSTANCE_AVAILABILITY, {_sN: _i}),), +) + +DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIAO, + {_sSI: _cDSIARo, _smit: None}, + (_NTex, _SIAS), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SCHEDULED_INSTANCE_AVAILABILITY_SET, {_aQN: _SIAS, _sN: _sIAS}), + ), +) + +DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY: StaticOperationSchema = ( + 23, + n0, + _DSIA, + 0, + DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_INPUT, + DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_OUTPUT, + (), +) + +SCHEDULED_INSTANCE_ID: StaticSchema = (3, n0, _SIIc, 0) + +SCHEDULED_INSTANCE_ID_REQUEST_SET: StaticSchema = ( + 16, + n0, + _SIIRS, + 0, + (_me,), + ((SCHEDULED_INSTANCE_ID, {_sN: _SIIc}),), +) + +SLOT_START_TIME_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _SSTRR, + 0, + (_ETa, _LTat), + ((DATE_TIME, 0), (DATE_TIME, 0)), +) + +DESCRIBE_SCHEDULED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DSII, + {_sSI: _cDSIR, _sm: None}, + (_DR, _Fil, _MR, _NTex, _SIIch, _SSTR), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + (SCHEDULED_INSTANCE_ID_REQUEST_SET, {_sN: _SIIc}), + (SLOT_START_TIME_RANGE_REQUEST, 0), + ), +) + +SCHEDULED_INSTANCE: StaticSchema = ( + 18, + n0, + _SIc, + 0, + ( + _AZ, + _CD, + _HP, + _IC, + _IT, + _NPet, + _NSST, + _Pla, + _PSET, + _Rec, + _SIIc, + _SDIH, + _TED, + _TSD, + _TSIH, + ), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (DATE_TIME, {_aQN: _CD, _sN: _cD}), + (STRING, {_aQN: _HP, _sN: _hP}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _NPet, _sN: _nPet}), + (DATE_TIME, {_aQN: _NSST, _sN: _nSST}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (DATE_TIME, {_aQN: _PSET, _sN: _pSET}), + (SCHEDULED_INSTANCE_RECURRENCE, {_aQN: _Rec, _sN: _recu}), + (STRING, {_aQN: _SIIc, _sN: _sIIc}), + (INTEGER, {_aQN: _SDIH, _sN: _sDIH}), + (DATE_TIME, {_aQN: _TED, _sN: _tED}), + (DATE_TIME, {_aQN: _TSD, _sN: _tSD}), + (INTEGER, {_aQN: _TSIH, _sN: _tSIH}), + ), +) + +SCHEDULED_INSTANCE_SET: StaticSchema = ( + 16, + n0, + _SISc, + 0, + (_me,), + ((SCHEDULED_INSTANCE, {_sN: _i}),), +) + +DESCRIBE_SCHEDULED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIO, + {_sSI: _cDSIRo, _smit: None}, + (_NTex, _SISc), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SCHEDULED_INSTANCE_SET, {_aQN: _SISc, _sN: _sISc}), + ), +) + +DESCRIBE_SCHEDULED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DSIes, + 0, + DESCRIBE_SCHEDULED_INSTANCES_INPUT, + DESCRIBE_SCHEDULED_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_SECONDARY_INTERFACES_MAX_RESULTS: StaticSchema = (7, n0, _DSIMR, 0) + +SECONDARY_INTERFACE_ID_LIST: StaticSchema = ( + 16, + n0, + _SIIL, + 0, + (_me,), + ((SECONDARY_INTERFACE_ID, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_INTERFACES_INPUT: StaticSchema = ( + 18, + n0, + _DSIIe, + {_sSI: _cDSIRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _SIIec), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_SECONDARY_INTERFACES_MAX_RESULTS, 0), + (STRING, 0), + (SECONDARY_INTERFACE_ID_LIST, {_sN: _SIIe}), + ), +) + +SECONDARY_INTERFACE_ATTACHMENT: StaticSchema = ( + 18, + n0, + _SIAe, + 0, + (_AIt, _ATtt, _DOT, _DI, _II, _IOIn, _NCI, _Sta), + ( + (STRING, {_aQN: _AIt, _sN: _aIt}), + (MILLISECOND_DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _IOIn, _sN: _iOIn}), + (INTEGER, {_aQN: _NCI, _sN: _nCI}), + (ATTACHMENT_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +SECONDARY_INTERFACE_IPV4_ADDRESS: StaticSchema = ( + 18, + n0, + _SIIA, + 0, + (_PIAr,), + ((STRING, {_aQN: _PIAr, _sN: _pIAr}),), +) + +SECONDARY_INTERFACE_IPV4_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _SIIAL, + 0, + (_me,), + ((SECONDARY_INTERFACE_IPV4_ADDRESS, {_sN: _i}),), +) + +SECONDARY_INTERFACE: StaticSchema = ( + 18, + n0, + _SIeco, + 0, + ( + _AZ, + _AZI, + _At, + _MAa, + _OIw, + _PIAriv, + _SIIe, + _SIAec, + _SITe, + _SSIe, + _SNI, + _SNT, + _SDC, + _Sta, + _Tag, + ), + ( + (AVAILABILITY_ZONE_NAME, {_aQN: _AZ, _sN: _aZ}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (SECONDARY_INTERFACE_ATTACHMENT, {_aQN: _At, _sN: _atta}), + (STRING, {_aQN: _MAa, _sN: _mAa}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (SECONDARY_INTERFACE_IPV4_ADDRESS_LIST, {_aQN: _PIASriv, _sN: _pIASri}), + (SECONDARY_INTERFACE_ID, {_aQN: _SIIe, _sN: _sIIe}), + (STRING, {_aQN: _SIAec, _sN: _sIA}), + (SECONDARY_INTERFACE_TYPE, {_aQN: _SITe, _sN: _sITe}), + (SECONDARY_SUBNET_ID, {_aQN: _SSIe, _sN: _sSIe}), + (SECONDARY_NETWORK_ID, {_aQN: _SNI, _sN: _sNI}), + (SECONDARY_NETWORK_TYPE, {_aQN: _SNT, _sN: _sNT}), + (BOOLEAN, {_aQN: _SDC, _sN: _sDC}), + (SECONDARY_INTERFACE_STATUS, {_aQN: _Sta, _sN: _sta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +SECONDARY_INTERFACE_LIST: StaticSchema = ( + 16, + n0, + _SIL, + 0, + (_me,), + ((SECONDARY_INTERFACE, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_INTERFACES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIOe, + {_sSI: _cDSIRoma, _smit: None}, + (_SIec, _NTex), + ( + (SECONDARY_INTERFACE_LIST, {_aQN: _SIS, _sN: _sIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SECONDARY_INTERFACES: StaticOperationSchema = ( + 23, + n0, + _DSIesc, + 0, + DESCRIBE_SECONDARY_INTERFACES_INPUT, + DESCRIBE_SECONDARY_INTERFACES_OUTPUT, + (), +) + +DESCRIBE_SECONDARY_NETWORKS_MAX_RESULTS: StaticSchema = (7, n0, _DSNMR, 0) + +SECONDARY_NETWORK_ID_LIST: StaticSchema = ( + 16, + n0, + _SNIL, + 0, + (_me,), + ((SECONDARY_NETWORK_ID, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_NETWORKS_INPUT: StaticSchema = ( + 18, + n0, + _DSNIe, + {_sSI: _cDSNRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _SNIe), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_SECONDARY_NETWORKS_MAX_RESULTS, 0), + (STRING, 0), + (SECONDARY_NETWORK_ID_LIST, {_sN: _SNI}), + ), +) + +SECONDARY_NETWORK_LIST: StaticSchema = ( + 16, + n0, + _SNL, + 0, + (_me,), + ((SECONDARY_NETWORK, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_NETWORKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSNOe, + {_sSI: _cDSNRoma, _smit: None}, + (_SNeco, _NTex), + ( + (SECONDARY_NETWORK_LIST, {_aQN: _SNSec, _sN: _sNSec}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SECONDARY_NETWORKS: StaticOperationSchema = ( + 23, + n0, + _DSNe, + 0, + DESCRIBE_SECONDARY_NETWORKS_INPUT, + DESCRIBE_SECONDARY_NETWORKS_OUTPUT, + (), +) + +DESCRIBE_SECONDARY_SUBNETS_MAX_RESULTS: StaticSchema = (7, n0, _DSSMR, 0) + +SECONDARY_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _SSIL, + 0, + (_me,), + ((SECONDARY_SUBNET_ID, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_SUBNETS_INPUT: StaticSchema = ( + 18, + n0, + _DSSIe, + {_sSI: _cDSSRom, _sm: None}, + (_DR, _Fil, _MR, _NTex, _SSIec), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (DESCRIBE_SECONDARY_SUBNETS_MAX_RESULTS, 0), + (STRING, 0), + (SECONDARY_SUBNET_ID_LIST, {_sN: _SSIe}), + ), +) + +SECONDARY_SUBNET_LIST: StaticSchema = ( + 16, + n0, + _SSL, + 0, + (_me,), + ((SECONDARY_SUBNET, {_sN: _i}),), +) + +DESCRIBE_SECONDARY_SUBNETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSOe, + {_sSI: _cDSSRoma, _smit: None}, + (_SSec, _NTex), + ( + (SECONDARY_SUBNET_LIST, {_aQN: _SSSe, _sN: _sSSe}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SECONDARY_SUBNETS: StaticOperationSchema = ( + 23, + n0, + _DSSes, + 0, + DESCRIBE_SECONDARY_SUBNETS_INPUT, + DESCRIBE_SECONDARY_SUBNETS_OUTPUT, + (), +) + +GROUP_IDS: StaticSchema = (16, n0, _GIrou, 0, (_me,), ((SECURITY_GROUP_ID, {_sN: _i}),)) + +DESCRIBE_SECURITY_GROUP_REFERENCES_INPUT: StaticSchema = ( + 18, + n0, + _DSGRI, + {_sSI: _cDSGRR, _sm: None}, + (_DR, _GIr), + ((BOOLEAN, 0), (GROUP_IDS, 1)), +) + +SECURITY_GROUP_REFERENCE: StaticSchema = ( + 18, + n0, + _SGRec, + 0, + (_GIr, _RVIe, _VPCI, _TGI), + ( + (STRING, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _RVIe, _sN: _rVIe}), + (STRING, {_aQN: _VPCI, _sN: _vPCI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + ), +) + +SECURITY_GROUP_REFERENCES: StaticSchema = ( + 16, + n0, + _SGRecu, + 0, + (_me,), + ((SECURITY_GROUP_REFERENCE, {_sN: _i}),), +) + +DESCRIBE_SECURITY_GROUP_REFERENCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGRO, + {_sSI: _cDSGRRo, _smit: None}, + (_SGRSec,), + ((SECURITY_GROUP_REFERENCES, {_aQN: _SGRSec, _sN: _sGRSec}),), +) + +DESCRIBE_SECURITY_GROUP_REFERENCES: StaticOperationSchema = ( + 23, + n0, + _DSGR, + 0, + DESCRIBE_SECURITY_GROUP_REFERENCES_INPUT, + DESCRIBE_SECURITY_GROUP_REFERENCES_OUTPUT, + (), +) + +DESCRIBE_SECURITY_GROUP_RULES_MAX_RESULTS: StaticSchema = (7, n0, _DSGRMR, 0) + +SECURITY_GROUP_RULE_ID_LIST: StaticSchema = ( + 16, + n0, + _SGRIL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +DESCRIBE_SECURITY_GROUP_RULES_INPUT: StaticSchema = ( + 18, + n0, + _DSGRIe, + {_sSI: _cDSGRRom, _sm: None}, + (_Fil, _SGRIe, _DR, _NTex, _MR), + ( + (FILTER_LIST, {_sN: _Fi}), + (SECURITY_GROUP_RULE_ID_LIST, {_sN: _SGRI}), + (BOOLEAN, 0), + (STRING, 0), + (DESCRIBE_SECURITY_GROUP_RULES_MAX_RESULTS, 0), + ), +) + +DESCRIBE_SECURITY_GROUP_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGROe, + {_sSI: _cDSGRRoma, _smit: None}, + (_SGRe, _NTex), + ( + (SECURITY_GROUP_RULE_LIST, {_aQN: _SGRSe, _sN: _sGRSe}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SECURITY_GROUP_RULES: StaticOperationSchema = ( + 23, + n0, + _DSGRe, + 0, + DESCRIBE_SECURITY_GROUP_RULES_INPUT, + DESCRIBE_SECURITY_GROUP_RULES_OUTPUT, + (), +) + +GROUP_NAME_STRING_LIST: StaticSchema = ( + 16, + n0, + _GNSL, + 0, + (_me,), + ((SECURITY_GROUP_NAME, {_sN: _GN}),), +) + +DESCRIBE_SECURITY_GROUPS_MAX_RESULTS: StaticSchema = (7, n0, _DSGMR, 0) + +DESCRIBE_SECURITY_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DSGIe, + {_sSI: _cDSGRom, _sm: None}, + (_GIrou, _GNr, _NTex, _MR, _DR, _Fil), + ( + (GROUP_ID_STRING_LIST, {_sN: _GIr}), + (GROUP_NAME_STRING_LIST, {_sN: _GN}), + (STRING, 0), + (DESCRIBE_SECURITY_GROUPS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _SG, + 0, + (_GIr, _IPE, _Tag, _VI, _SGA, _OIw, _GN, _Des, _IPper), + ( + (STRING, {_aQN: _GIr, _sN: _gIr}), + (IP_PERMISSION_LIST, {_aQN: _IPE, _sN: _iPE}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _SGA, _sN: _sGA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STRING, {_aQN: _GD, _sN: _gD}), + (IP_PERMISSION_LIST, {_aQN: _IPper, _sN: _iPpe}), + ), +) + +SECURITY_GROUP_LIST: StaticSchema = ( + 16, + n0, + _SGL, + 0, + (_me,), + ((SECURITY_GROUP, {_sN: _i}),), +) + +DESCRIBE_SECURITY_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGOe, + {_sSI: _cDSGRoma, _smit: None}, + (_NTex, _SGe), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SECURITY_GROUP_LIST, {_aQN: _SGIecu, _sN: _sGIec}), + ), +) + +DESCRIBE_SECURITY_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DSGe, + 0, + DESCRIBE_SECURITY_GROUPS_INPUT, + DESCRIBE_SECURITY_GROUPS_OUTPUT, + (), +) + +DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DSGVAMR, + 0, +) + +DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DSGVAI, + {_sSI: _cDSGVAR, _sm: None}, + (_Fil, _NTex, _MR, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +SECURITY_GROUP_VPC_ASSOCIATION: StaticSchema = ( + 18, + n0, + _SGVA, + 0, + (_GIr, _VI, _VOI, _St, _SRt, _GOI), + ( + (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr}), + (VPC_ID, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _VOI, _sN: _vOI}), + (SECURITY_GROUP_VPC_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _SRt, _sN: _sRt}), + (STRING, {_aQN: _GOI, _sN: _gOI}), + ), +) + +SECURITY_GROUP_VPC_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _SGVAL, + 0, + (_me,), + ((SECURITY_GROUP_VPC_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGVAO, + {_sSI: _cDSGVARo, _smit: None}, + (_SGVAe, _NTex), + ( + (SECURITY_GROUP_VPC_ASSOCIATION_LIST, {_aQN: _SGVASe, _sN: _sGVAS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DSGVA, + 0, + DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_INPUT, + DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_OUTPUT, + (), +) + +SERVICE_LINK_MAX_RESULTS: StaticSchema = (7, n0, _SLMR, 0) + +DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_INPUT: StaticSchema = ( + 18, + n0, + _DSLVII, + {_sSI: _cDSLVIR, _sm: None}, + (_SLVIIe, _Fil, _MR, _NTex, _DR), + ( + (SERVICE_LINK_VIRTUAL_INTERFACE_ID_SET, {_sN: _SLVII}), + (FILTER_LIST, {_sN: _Fi}), + (SERVICE_LINK_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +SERVICE_LINK_VIRTUAL_INTERFACE_CONFIGURATION_STATE: StaticSchema = ( + 14, + n0, + _SLVICS, + 0, + (_p, _av, _de, _del), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de}), (-1, {_sV: _del})), +) + +SERVICE_LINK_VIRTUAL_INTERFACE: StaticSchema = ( + 18, + n0, + _SLVI, + 0, + (_SLVII, _SLVIA, _OIu, _OA, _OIw, _LA, _PAe, _PBA, _Vl, _OLI, _Tag, _CSon), + ( + (SERVICE_LINK_VIRTUAL_INTERFACE_ID, {_aQN: _SLVII, _sN: _sLVII}), + (RESOURCE_ARN, {_aQN: _SLVIA, _sN: _sLVIA}), + (STRING, {_aQN: _OIu, _sN: _oIu}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _LA, _sN: _lA}), + (STRING, {_aQN: _PAe, _sN: _pAe}), + (LONG, {_aQN: _PBA, _sN: _pBA}), + (INTEGER, {_aQN: _Vl, _sN: _vl}), + (OUTPOST_LAG_ID, {_aQN: _OLI, _sN: _oLI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (SERVICE_LINK_VIRTUAL_INTERFACE_CONFIGURATION_STATE, {_aQN: _CSon, _sN: _cSo}), + ), +) + +SERVICE_LINK_VIRTUAL_INTERFACE_SET: StaticSchema = ( + 16, + n0, + _SLVIS, + 0, + (_me,), + ((SERVICE_LINK_VIRTUAL_INTERFACE, {_sN: _i}),), +) + +DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSLVIO, + {_sSI: _cDSLVIRo, _smit: None}, + (_SLVIe, _NTex), + ( + (SERVICE_LINK_VIRTUAL_INTERFACE_SET, {_aQN: _SLVIS, _sN: _sLVIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES: StaticOperationSchema = ( + 23, + n0, + _DSLVI, + 0, + DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_INPUT, + DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_OUTPUT, + (), +) + +SNAPSHOT_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _SAN, + 0, + (_pCr, _cVP), + ((-1, {_sV: _pCr}), (-1, {_sV: _cVP})), +) + +DESCRIBE_SNAPSHOT_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DSAI, + {_sSI: _cDSAR, _sm: None}, + (_Attr, _SIn, _DR), + ((SNAPSHOT_ATTRIBUTE_NAME, 1), (SNAPSHOT_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +CREATE_VOLUME_PERMISSION: StaticSchema = ( + 18, + n0, + _CVP, + 0, + (_UIs, _Gr), + ((STRING, {_aQN: _UIs, _sN: _uI}), (PERMISSION_GROUP, {_aQN: _Gr, _sN: _gro})), +) + +CREATE_VOLUME_PERMISSION_LIST: StaticSchema = ( + 16, + n0, + _CVPL, + 0, + (_me,), + ((CREATE_VOLUME_PERMISSION, {_sN: _i}),), +) + +DESCRIBE_SNAPSHOT_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSAO, + {_sSI: _cDSARo, _smit: None}, + (_PCro, _SIn, _CVPr), + ( + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (CREATE_VOLUME_PERMISSION_LIST, {_aQN: _CVP, _sN: _cVP}), + ), +) + +DESCRIBE_SNAPSHOT_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DSAe, + 0, + DESCRIBE_SNAPSHOT_ATTRIBUTE_INPUT, + DESCRIBE_SNAPSHOT_ATTRIBUTE_OUTPUT, + (), +) + +RESTORABLE_BY_STRING_LIST: StaticSchema = (16, n0, _RBSL, 0, (_me,), ((STRING, 0),)) + +DESCRIBE_SNAPSHOTS_INPUT: StaticSchema = ( + 18, + n0, + _DSIescr, + {_sSI: _cDSRom, _sm: None}, + (_MR, _NTex, _OIwn, _RBUI, _SInap, _DR, _Fil), + ( + (INTEGER, 0), + (STRING, 0), + (OWNER_STRING_LIST, {_sN: _Ow}), + (RESTORABLE_BY_STRING_LIST, {_sN: _RBe}), + (SNAPSHOT_ID_STRING_LIST, {_sN: _SIn}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +SNAPSHOT: StaticSchema = ( + 18, + n0, + _Sna, + 0, + ( + _OAw, + _OA, + _Tag, + _STt, + _RET, + _STs, + _AZ, + _TTra, + _CDM, + _CTomp, + _FSSIB, + _SIn, + _VIo, + _St, + _SMta, + _ST, + _Prog, + _OIw, + _Des, + _VSol, + _En, + _KKI, + _DEKI, + ), + ( + (STRING, {_aQN: _OAw, _sN: _oAw}), + (STRING, {_aQN: _OA, _sN: _oA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STORAGE_TIER, {_aQN: _STt, _sN: _sTto}), + (MILLISECOND_DATE_TIME, {_aQN: _RET, _sN: _rET}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (TRANSFER_TYPE, {_aQN: _TTra, _sN: _tTr}), + (SNAPSHOT_COMPLETION_DURATION_MINUTES_RESPONSE, {_aQN: _CDM, _sN: _cDM}), + (MILLISECOND_DATE_TIME, {_aQN: _CTomp, _sN: _cTomp}), + (LONG, {_aQN: _FSSIB, _sN: _fSSIB}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (SNAPSHOT_STATE, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _KKI, _sN: _kKI}), + (STRING, {_aQN: _DEKI, _sN: _dEKI}), + ), +) + +SNAPSHOT_LIST: StaticSchema = (16, n0, _SLna, 0, (_me,), ((SNAPSHOT, {_sN: _i}),)) + +DESCRIBE_SNAPSHOTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSOes, + {_sSI: _cDSRoma, _smit: None}, + (_NTex, _Sn), + ((STRING, {_aQN: _NTex, _sN: _nT}), (SNAPSHOT_LIST, {_aQN: _SSna, _sN: _sSn})), +) + +DESCRIBE_SNAPSHOTS: StaticOperationSchema = ( + 23, + n0, + _DSes, + 0, + DESCRIBE_SNAPSHOTS_INPUT, + DESCRIBE_SNAPSHOTS_OUTPUT, + (), +) + +DESCRIBE_SNAPSHOT_TIER_STATUS_MAX_RESULTS: StaticSchema = (7, n0, _DSTSMR, 0) + +DESCRIBE_SNAPSHOT_TIER_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DSTSI, + {_sSI: _cDSTSR, _sm: None}, + (_Fil, _DR, _NTex, _MR), + ( + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + (STRING, 0), + (DESCRIBE_SNAPSHOT_TIER_STATUS_MAX_RESULTS, 0), + ), +) + +TIERING_OPERATION_STATUS: StaticSchema = ( + 14, + n0, + _TOSi, + 0, + (_aip_, _ac__, _af____, _trip, _trc, _trf, _prip, _prc, _prf), + ( + (-1, {_sV: _aip__}), + (-1, {_sV: _ac___}), + (-1, {_sV: _af_____}), + (-1, {_sV: _trip_}), + (-1, {_sV: _trc_}), + (-1, {_sV: _trf_}), + (-1, {_sV: _prip_}), + (-1, {_sV: _prc_}), + (-1, {_sV: _prf_}), + ), +) + +SNAPSHOT_TIER_STATUS: StaticSchema = ( + 18, + n0, + _STSn, + 0, + (_SIn, _VIo, _Sta, _OIw, _Tag, _STt, _LTST, _LTPa, _LTOS, _LTOSD, _ACT, _RET), + ( + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + (VOLUME_ID, {_aQN: _VIo, _sN: _vIo}), + (SNAPSHOT_STATE, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STORAGE_TIER, {_aQN: _STt, _sN: _sTto}), + (MILLISECOND_DATE_TIME, {_aQN: _LTST, _sN: _lTST}), + (INTEGER, {_aQN: _LTPa, _sN: _lTP}), + (TIERING_OPERATION_STATUS, {_aQN: _LTOS, _sN: _lTOS}), + (STRING, {_aQN: _LTOSD, _sN: _lTOSD}), + (MILLISECOND_DATE_TIME, {_aQN: _ACT, _sN: _aCT}), + (MILLISECOND_DATE_TIME, {_aQN: _RET, _sN: _rET}), + ), +) + +SNAPSHOT_TIER_STATUS_SET: StaticSchema = ( + 16, + n0, + _sTSS, + 0, + (_me,), + ((SNAPSHOT_TIER_STATUS, {_sN: _i}),), +) + +DESCRIBE_SNAPSHOT_TIER_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSTSO, + {_sSI: _cDSTSRo, _smit: None}, + (_STSna, _NTex), + ( + (SNAPSHOT_TIER_STATUS_SET, {_aQN: _STSS, _sN: _sTSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SNAPSHOT_TIER_STATUS: StaticOperationSchema = ( + 23, + n0, + _DSTS, + 0, + DESCRIBE_SNAPSHOT_TIER_STATUS_INPUT, + DESCRIBE_SNAPSHOT_TIER_STATUS_OUTPUT, + (), +) + +DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _DSDSIe, + {_sSI: _cDSDSRo, _sm: None}, + (_DR,), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}),), +) + +DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDSOe, + {_sSI: _cDSDSRom, _smit: None}, + (_SDS,), + ((SPOT_DATAFEED_SUBSCRIPTION, {_aQN: _SDS, _sN: _sDS}),), +) + +DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _DSDSe, + 0, + DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_INPUT, + DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT, + (), +) + +DESCRIBE_SPOT_FLEET_INSTANCES_MAX_RESULTS: StaticSchema = (7, n0, _DSFIMR, 0) + +DESCRIBE_SPOT_FLEET_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DSFII, + {_sSI: _cDSFIR, _sm: None}, + (_DR, _SFRI, _NTex, _MR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_FLEET_REQUEST_ID, {_aQN: _SFRI, _sN: _sFRI, _smi: None}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (DESCRIBE_SPOT_FLEET_INSTANCES_MAX_RESULTS, {_aQN: _MR, _sN: _mR}), + ), +) + +DESCRIBE_SPOT_FLEET_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSFIO, + {_sSI: _cDSFIRo, _smit: None}, + (_AIct, _NTex, _SFRI), + ( + (ACTIVE_INSTANCE_SET, {_aQN: _AIS, _sN: _aIS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (STRING, {_aQN: _SFRI, _sN: _sFRI}), + ), +) + +DESCRIBE_SPOT_FLEET_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DSFI, + 0, + DESCRIBE_SPOT_FLEET_INSTANCES_INPUT, + DESCRIBE_SPOT_FLEET_INSTANCES_OUTPUT, + (), +) + +EVENT_TYPE: StaticSchema = ( + 14, + n0, + _ETv, + 0, + (_IC__, _BC_, _ERROR, _INFORMATION), + ((-1, {_sV: _iCns}), (-1, {_sV: _fRC}), (-1, {_sV: _er}), (-1, {_sV: _infor})), +) + +DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_MAX_RESULTS: StaticSchema = (7, n0, _DSFRHMR, 0) + +DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_INPUT: StaticSchema = ( + 18, + n0, + _DSFRHI, + {_sSI: _cDSFRHR, _sm: None}, + (_DR, _SFRI, _ETv, _ST, _NTex, _MR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_FLEET_REQUEST_ID, {_aQN: _SFRI, _sN: _sFRI, _smi: None}), + (EVENT_TYPE, {_aQN: _ETv, _sN: _eTv}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt, _smi: None}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_MAX_RESULTS, {_aQN: _MR, _sN: _mR}), + ), +) + +HISTORY_RECORD: StaticSchema = ( + 18, + n0, + _HRis, + 0, + (_EIv, _ETv, _Ti), + ( + (EVENT_INFORMATION, {_aQN: _EIv, _sN: _eIv}), + (EVENT_TYPE, {_aQN: _ETv, _sN: _eTv}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + ), +) + +HISTORY_RECORDS: StaticSchema = ( + 16, + n0, + _HRi, + 0, + (_me,), + ((HISTORY_RECORD, {_sN: _i}),), +) + +DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_OUTPUT: StaticSchema = ( + 18, + n0, + _DSFRHO, + {_sSI: _cDSFRHRo, _smit: None}, + (_HRi, _LET, _NTex, _SFRI, _ST), + ( + (HISTORY_RECORDS, {_aQN: _HRS, _sN: _hRS}), + (DATE_TIME, {_aQN: _LET, _sN: _lET}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (STRING, {_aQN: _SFRI, _sN: _sFRI}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + ), +) + +DESCRIBE_SPOT_FLEET_REQUEST_HISTORY: StaticOperationSchema = ( + 23, + n0, + _DSFRH, + 0, + DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_INPUT, + DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_OUTPUT, + (), +) + +DESCRIBE_SPOT_FLEET_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _DSFRI, + {_sSI: _cDSFRR, _sm: None}, + (_DR, _SFRIp, _NTex, _MR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_FLEET_REQUEST_ID_LIST, {_aQN: _SFRI, _sN: _sFRI}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + ), +) + +EXCESS_CAPACITY_TERMINATION_POLICY: StaticSchema = ( + 14, + n0, + _ECTP, + 0, + (_NT, _DEFAULT), + ((-1, {_sV: _nTo}), (-1, {_sV: _def})), +) + +SPOT_FLEET_MONITORING: StaticSchema = ( + 18, + n0, + _SFM, + 0, + (_Ena,), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena}),), +) + +INSTANCE_NETWORK_INTERFACE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _INIS, + 0, + ( + _APIAsso, + _DOT, + _Des, + _DI, + _G, + _IAC, + _IAp, + _NII, + _PIAr, + _PIAri, + _SPIAC, + _SIu, + _ACIA, + _ITnte, + _NCI, + _IPpvr, + _IPCp, + _IPp, + _IPC, + _PIrim, + _ESS, + _CTSo, + _EQC, + ), + ( + (BOOLEAN, {_aQN: _APIAsso, _sN: _aPIA}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (STRING, {_aQN: _Des, _sN: _desc}), + (INTEGER, {_aQN: _DI, _sN: _dI}), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (INTEGER, {_aQN: _IAC, _sN: _iAC}), + (INSTANCE_IPV6_ADDRESS_LIST, {_aQN: _IAp, _sN: _iAS}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (PRIVATE_IP_ADDRESS_SPECIFICATION_LIST, {_aQN: _PIAri, _sN: _pIAS}), + (INTEGER, {_aQN: _SPIAC, _sN: _sPIAC}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (BOOLEAN, 0), + (STRING, 0), + (INTEGER, 0), + (IPV4_PREFIX_LIST, {_sN: _IPpvre}), + (INTEGER, 0), + (IPV6_PREFIX_LIST, {_sN: _IPpv}), + (INTEGER, 0), + (BOOLEAN, 0), + (ENA_SRD_SPECIFICATION_REQUEST, 0), + (CONNECTION_TRACKING_SPECIFICATION_REQUEST, 0), + (INTEGER, 0), + ), +) + +INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _INISL, + 0, + (_me,), + ((INSTANCE_NETWORK_INTERFACE_SPECIFICATION, {_sN: _i}),), +) + +SPOT_PLACEMENT: StaticSchema = ( + 18, + n0, + _SPp, + 0, + (_AZ, _GN, _Ten, _AZI), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (PLACEMENT_GROUP_NAME, {_aQN: _GN, _sN: _gN}), + (TENANCY, {_aQN: _Ten, _sN: _ten}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + ), +) + +SPOT_FLEET_TAG_SPECIFICATION: StaticSchema = ( + 18, + n0, + _SFTS, + 0, + (_RT, _Tag), + ((RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), (TAG_LIST, {_aQN: _Ta, _sN: _tag})), +) + +SPOT_FLEET_TAG_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _SFTSL, + 0, + (_me,), + ((SPOT_FLEET_TAG_SPECIFICATION, {_sN: _i}),), +) + +SPOT_FLEET_LAUNCH_SPECIFICATION: StaticSchema = ( + 18, + n0, + _SFLS, + 0, + ( + _ATddr, + _BDMl, + _EO, + _IIP, + _IIm, + _IT, + _KI, + _KN, + _Mon, + _NIe, + _Pl, + _RIa, + _SPpo, + _SIu, + _UDs, + _WC, + _TSa, + _IRn, + _SGe, + ), + ( + (STRING, {_aQN: _ATddr, _sN: _aTdd}), + (BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (IAM_INSTANCE_PROFILE_SPECIFICATION, {_aQN: _IIP, _sN: _iIP}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _KI, _sN: _kI}), + (KEY_PAIR_NAME, {_aQN: _KN, _sN: _kN}), + (SPOT_FLEET_MONITORING, {_aQN: _Mon, _sN: _monit}), + (INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST, {_aQN: _NIS, _sN: _nIS}), + (SPOT_PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (STRING, {_aQN: _RIa, _sN: _rIa}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (SENSITIVE_USER_DATA, {_aQN: _UDs, _sN: _uDs}), + (DOUBLE, {_aQN: _WC, _sN: _wC}), + (SPOT_FLEET_TAG_SPECIFICATION_LIST, {_aQN: _TSS, _sN: _tSS}), + (INSTANCE_REQUIREMENTS, {_aQN: _IRn, _sN: _iRn}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + ), +) + +LAUNCH_SPECS_LIST: StaticSchema = ( + 16, + n0, + _LSLa, + 0, + (_me,), + ((SPOT_FLEET_LAUNCH_SPECIFICATION, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_OVERRIDES: StaticSchema = ( + 18, + n0, + _LTO, + 0, + (_IT, _SPpo, _SIu, _AZ, _WC, _Pr, _IRn, _AZI), + ( + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (DOUBLE, {_aQN: _WC, _sN: _wC}), + (DOUBLE, {_aQN: _Pr, _sN: _pri}), + (INSTANCE_REQUIREMENTS, {_aQN: _IRn, _sN: _iRn}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + ), +) + +LAUNCH_TEMPLATE_OVERRIDES_LIST: StaticSchema = ( + 16, + n0, + _LTOL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_OVERRIDES, {_sN: _i}),), +) + +LAUNCH_TEMPLATE_CONFIG: StaticSchema = ( + 18, + n0, + _LTCa, + 0, + (_LTS, _Ov), + ( + (FLEET_LAUNCH_TEMPLATE_SPECIFICATION, {_aQN: _LTS, _sN: _lTS}), + (LAUNCH_TEMPLATE_OVERRIDES_LIST, {_aQN: _Ov, _sN: _ov}), + ), +) + +LAUNCH_TEMPLATE_CONFIG_LIST: StaticSchema = ( + 16, + n0, + _LTCL, + 0, + (_me,), + ((LAUNCH_TEMPLATE_CONFIG, {_sN: _i}),), +) + +CLASSIC_LOAD_BALANCER: StaticSchema = ( + 18, + n0, + _CLB, + 0, + (_N,), + ((STRING, {_aQN: _N, _sN: _nam}),), +) + +CLASSIC_LOAD_BALANCERS: StaticSchema = ( + 16, + n0, + _CLBl, + 0, + (_me,), + ((CLASSIC_LOAD_BALANCER, {_sN: _i}),), +) + +CLASSIC_LOAD_BALANCERS_CONFIG: StaticSchema = ( + 18, + n0, + _CLBC, + 0, + (_CLBl,), + ((CLASSIC_LOAD_BALANCERS, {_aQN: _CLBl, _sN: _cLB}),), +) + +TARGET_GROUP: StaticSchema = ( + 18, + n0, + _TGa, + 0, + (_Ar,), + ((STRING, {_aQN: _Ar, _sN: _ar}),), +) + +TARGET_GROUPS: StaticSchema = (16, n0, _TGar, 0, (_me,), ((TARGET_GROUP, {_sN: _i}),)) + +TARGET_GROUPS_CONFIG: StaticSchema = ( + 18, + n0, + _TGCa, + 0, + (_TGar,), + ((TARGET_GROUPS, {_aQN: _TGar, _sN: _tGa}),), +) + +LOAD_BALANCERS_CONFIG: StaticSchema = ( + 18, + n0, + _LBC, + 0, + (_CLBC, _TGCa), + ( + (CLASSIC_LOAD_BALANCERS_CONFIG, {_aQN: _CLBC, _sN: _cLBC}), + (TARGET_GROUPS_CONFIG, {_aQN: _TGCa, _sN: _tGCa}), + ), +) + +ON_DEMAND_ALLOCATION_STRATEGY: StaticSchema = ( + 14, + n0, + _ODAS, + 0, + (_LP, _PRIORITIZED), + ((-1, {_sV: _lP}), (-1, {_sV: _prio})), +) + +REPLACEMENT_STRATEGY: StaticSchema = ( + 14, + n0, + _RSep, + 0, + (_LAUNCH, _LBT_), + ((-1, {_sV: _laun}), (-1, {_sV: _lbt})), +) + +SPOT_CAPACITY_REBALANCE: StaticSchema = ( + 18, + n0, + _SCRp, + 0, + (_RSep, _TD), + ( + (REPLACEMENT_STRATEGY, {_aQN: _RSep, _sN: _rSepl}), + (INTEGER, {_aQN: _TD, _sN: _tDe}), + ), +) + +SPOT_MAINTENANCE_STRATEGIES: StaticSchema = ( + 18, + n0, + _SMS, + 0, + (_CRapa,), + ((SPOT_CAPACITY_REBALANCE, {_aQN: _CRapa, _sN: _cRap}),), +) + +SPOT_FLEET_REQUEST_CONFIG_DATA: StaticSchema = ( + 18, + n0, + _SFRCD, + 0, + ( + _ASll, + _ODAS, + _SMS, + _CTl, + _ECTP, + _FCu, + _ODFC, + _IFRa, + _LSau, + _LTC, + _SPpo, + _TCar, + _ODTC, + _ODMTP, + _SMTP, + _TIWE, + _Ty, + _VF, + _VU, + _RUI, + _IIB, + _LBC, + _IPTUC, + _Con, + _TCUT, + _TSa, + ), + ( + (ALLOCATION_STRATEGY, {_aQN: _ASll, _sN: _aSl}), + (ON_DEMAND_ALLOCATION_STRATEGY, {_aQN: _ODAS, _sN: _oDAS}), + (SPOT_MAINTENANCE_STRATEGIES, {_aQN: _SMS, _sN: _sMS}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (EXCESS_CAPACITY_TERMINATION_POLICY, {_aQN: _ECTP, _sN: _eCTP}), + (DOUBLE, {_aQN: _FCu, _sN: _fC}), + (DOUBLE, {_aQN: _ODFC, _sN: _oDFC}), + (STRING, {_aQN: _IFRa, _sN: _iFR, _smi: None}), + (LAUNCH_SPECS_LIST, {_aQN: _LSau, _sN: _lSa}), + (LAUNCH_TEMPLATE_CONFIG_LIST, {_aQN: _LTC, _sN: _lTC}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (INTEGER, {_aQN: _TCar, _sN: _tCar, _smi: None}), + (INTEGER, {_aQN: _ODTC, _sN: _oDTC}), + (STRING, {_aQN: _ODMTP, _sN: _oDMTP}), + (STRING, {_aQN: _SMTP, _sN: _sMTP}), + (BOOLEAN, {_aQN: _TIWE, _sN: _tIWE}), + (FLEET_TYPE, {_aQN: _Ty, _sN: _ty}), + (DATE_TIME, {_aQN: _VF, _sN: _vF}), + (DATE_TIME, {_aQN: _VU, _sN: _vU}), + (BOOLEAN, {_aQN: _RUI, _sN: _rUI}), + (INSTANCE_INTERRUPTION_BEHAVIOR, {_aQN: _IIB, _sN: _iIB}), + (LOAD_BALANCERS_CONFIG, {_aQN: _LBC, _sN: _lBC}), + (INTEGER, {_aQN: _IPTUC, _sN: _iPTUC}), + (STRING, {_aQN: _Con, _sN: _cont}), + (TARGET_CAPACITY_UNIT_TYPE, {_aQN: _TCUT, _sN: _tCUT}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +SPOT_FLEET_REQUEST_CONFIG: StaticSchema = ( + 18, + n0, + _SFRC, + 0, + (_ASc, _CTr, _SFRC, _SFRI, _SFRSp, _Tag), + ( + (ACTIVITY_STATUS, {_aQN: _ASc, _sN: _aSc}), + (MILLISECOND_DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (SPOT_FLEET_REQUEST_CONFIG_DATA, {_aQN: _SFRC, _sN: _sFRC}), + (STRING, {_aQN: _SFRI, _sN: _sFRI}), + (BATCH_STATE, {_aQN: _SFRSp, _sN: _sFRSp}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +SPOT_FLEET_REQUEST_CONFIG_SET: StaticSchema = ( + 16, + n0, + _SFRCS, + 0, + (_me,), + ((SPOT_FLEET_REQUEST_CONFIG, {_sN: _i}),), +) + +DESCRIBE_SPOT_FLEET_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSFRO, + {_sSI: _cDSFRRo, _smit: None}, + (_NTex, _SFRCp), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SPOT_FLEET_REQUEST_CONFIG_SET, {_aQN: _SFRCS, _sN: _sFRCS}), + ), +) + +DESCRIBE_SPOT_FLEET_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _DSFR, + 0, + DESCRIBE_SPOT_FLEET_REQUESTS_INPUT, + DESCRIBE_SPOT_FLEET_REQUESTS_OUTPUT, + (), +) + +DESCRIBE_SPOT_INSTANCE_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _DSIRI, + {_sSI: _cDSIRR, _sm: None}, + (_NTex, _MR, _DR, _SIRIp, _Fil), + ( + (STRING, 0), + (INTEGER, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_INSTANCE_REQUEST_ID_LIST, {_sN: _SIRI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +RUN_INSTANCES_MONITORING_ENABLED: StaticSchema = ( + 18, + n0, + _RIME, + 0, + (_Ena,), + ((BOOLEAN, {_aQN: _Ena, _sN: _ena, _smi: None}),), +) + +LAUNCH_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LSaun, + 0, + ( + _UDs, + _ATddr, + _BDMl, + _EO, + _IIP, + _IIm, + _IT, + _KI, + _KN, + _NIe, + _Pl, + _RIa, + _SIu, + _SGe, + _Mon, + ), + ( + (SENSITIVE_USER_DATA, {_aQN: _UDs, _sN: _uDs}), + (STRING, {_aQN: _ATddr, _sN: _aTdd}), + (BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (IAM_INSTANCE_PROFILE_SPECIFICATION, {_aQN: _IIP, _sN: _iIP}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _KI, _sN: _kI}), + (STRING, {_aQN: _KN, _sN: _kN}), + (INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST, {_aQN: _NIS, _sN: _nIS}), + (SPOT_PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (STRING, {_aQN: _RIa, _sN: _rIa}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (RUN_INSTANCES_MONITORING_ENABLED, {_aQN: _Mon, _sN: _monit}), + ), +) + +SPOT_INSTANCE_STATE: StaticSchema = ( + 14, + n0, + _SISp, + 0, + (_op, _act, _cl, _can, _fa, _d), + ( + (-1, {_sV: _op}), + (-1, {_sV: _act}), + (-1, {_sV: _cl}), + (-1, {_sV: _can}), + (-1, {_sV: _fa}), + (-1, {_sV: _d}), + ), +) + +SPOT_INSTANCE_STATUS: StaticSchema = ( + 18, + n0, + _SISpo, + 0, + (_C, _Me, _UT), + ( + (STRING, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + (DATE_TIME, {_aQN: _UT, _sN: _uT}), + ), +) + +SPOT_INSTANCE_REQUEST: StaticSchema = ( + 18, + n0, + _SIRp, + 0, + ( + _ABHP, + _AZGv, + _BDMlo, + _CTr, + _Fa, + _II, + _LGa, + _LSaun, + _LAZ, + _LAZI, + _PDr, + _SIRI, + _SPpo, + _St, + _Sta, + _Tag, + _Ty, + _VF, + _VU, + _IIB, + ), + ( + (STRING, {_aQN: _ABHP, _sN: _aBHP}), + (STRING, {_aQN: _AZGv, _sN: _aZG}), + (INTEGER, {_aQN: _BDMlo, _sN: _bDMl}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (SPOT_INSTANCE_STATE_FAULT, {_aQN: _Fa, _sN: _fau}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _LGa, _sN: _lG}), + (LAUNCH_SPECIFICATION, {_aQN: _LSaun, _sN: _lSau}), + (STRING, {_aQN: _LAZ, _sN: _lAZ}), + (STRING, {_aQN: _LAZI, _sN: _lAZI}), + (RI_PRODUCT_DESCRIPTION, {_aQN: _PDr, _sN: _pDr}), + (STRING, {_aQN: _SIRI, _sN: _sIRI}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (SPOT_INSTANCE_STATE, {_aQN: _St, _sN: _st}), + (SPOT_INSTANCE_STATUS, {_aQN: _Sta, _sN: _sta}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (SPOT_INSTANCE_TYPE, {_aQN: _Ty, _sN: _ty}), + (DATE_TIME, {_aQN: _VF, _sN: _vF}), + (DATE_TIME, {_aQN: _VU, _sN: _vU}), + (INSTANCE_INTERRUPTION_BEHAVIOR, {_aQN: _IIB, _sN: _iIB}), + ), +) + +SPOT_INSTANCE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _SIRL, + 0, + (_me,), + ((SPOT_INSTANCE_REQUEST, {_sN: _i}),), +) + +DESCRIBE_SPOT_INSTANCE_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSIRO, + {_sSI: _cDSIRRo, _smit: None}, + (_SIRpo, _NTex), + ( + (SPOT_INSTANCE_REQUEST_LIST, {_aQN: _SIRS, _sN: _sIRS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_SPOT_INSTANCE_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _DSIR, + 0, + DESCRIBE_SPOT_INSTANCE_REQUESTS_INPUT, + DESCRIBE_SPOT_INSTANCE_REQUESTS_OUTPUT, + (), +) + +INSTANCE_TYPE_LIST: StaticSchema = (16, n0, _ITLn, 0, (_me,), ((INSTANCE_TYPE, 0),)) + +PRODUCT_DESCRIPTION_LIST: StaticSchema = (16, n0, _PDLr, 0, (_me,), ((STRING, 0),)) + +DESCRIBE_SPOT_PRICE_HISTORY_INPUT: StaticSchema = ( + 18, + n0, + _DSPHI, + {_sSI: _cDSPHR, _sm: None}, + (_AZI, _DR, _ST, _ETnd, _ITnsta, _PDro, _Fil, _AZ, _MR, _NTex), + ( + (AVAILABILITY_ZONE_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (DATE_TIME, {_aQN: _ETnd, _sN: _eTnd}), + (INSTANCE_TYPE_LIST, {_sN: _IT}), + (PRODUCT_DESCRIPTION_LIST, {_sN: _PDr}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +SPOT_PRICE: StaticSchema = ( + 18, + n0, + _SPpo, + 0, + (_AZ, _AZI, _IT, _PDr, _SPpo, _Ti), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (RI_PRODUCT_DESCRIPTION, {_aQN: _PDr, _sN: _pDr}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + ), +) + +SPOT_PRICE_HISTORY_LIST: StaticSchema = ( + 16, + n0, + _SPHL, + 0, + (_me,), + ((SPOT_PRICE, {_sN: _i}),), +) + +DESCRIBE_SPOT_PRICE_HISTORY_OUTPUT: StaticSchema = ( + 18, + n0, + _DSPHO, + {_sSI: _cDSPHRo, _smit: None}, + (_NTex, _SPH), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SPOT_PRICE_HISTORY_LIST, {_aQN: _SPHS, _sN: _sPHS}), + ), +) + +DESCRIBE_SPOT_PRICE_HISTORY: StaticOperationSchema = ( + 23, + n0, + _DSPH, + 0, + DESCRIBE_SPOT_PRICE_HISTORY_INPUT, + DESCRIBE_SPOT_PRICE_HISTORY_OUTPUT, + (), +) + +DESCRIBE_STALE_SECURITY_GROUPS_MAX_RESULTS: StaticSchema = (7, n0, _DSSGMR, 0) + +DESCRIBE_STALE_SECURITY_GROUPS_NEXT_TOKEN: StaticSchema = (3, n0, _DSSGNT, 0) + +DESCRIBE_STALE_SECURITY_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DSSGI, + {_sSI: _cDSSGR, _sm: None}, + (_DR, _MR, _NTex, _VI), + ( + (BOOLEAN, 0), + (DESCRIBE_STALE_SECURITY_GROUPS_MAX_RESULTS, 0), + (DESCRIBE_STALE_SECURITY_GROUPS_NEXT_TOKEN, 0), + (VPC_ID, 1), + ), +) + +IP_RANGES: StaticSchema = (16, n0, _IRpa, 0, (_me,), ((STRING, {_sN: _i}),)) + +PREFIX_LIST_ID_SET: StaticSchema = (16, n0, _PLIS, 0, (_me,), ((STRING, {_sN: _i}),)) + +USER_ID_GROUP_PAIR_SET: StaticSchema = ( + 16, + n0, + _UIGPS, + 0, + (_me,), + ((USER_ID_GROUP_PAIR, {_sN: _i}),), +) + +STALE_IP_PERMISSION: StaticSchema = ( + 18, + n0, + _SIPt, + 0, + (_FP, _IPpr, _IRpa, _PLIr, _TP, _UIGPs), + ( + (INTEGER, {_aQN: _FP, _sN: _fP}), + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (IP_RANGES, {_aQN: _IRpa, _sN: _iRpa}), + (PREFIX_LIST_ID_SET, {_aQN: _PLIr, _sN: _pLIr}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (USER_ID_GROUP_PAIR_SET, {_aQN: _G, _sN: _gr}), + ), +) + +STALE_IP_PERMISSION_SET: StaticSchema = ( + 16, + n0, + _SIPS, + 0, + (_me,), + ((STALE_IP_PERMISSION, {_sN: _i}),), +) + +STALE_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _SSG, + 0, + (_Des, _GIr, _GN, _SIPta, _SIPE, _VI), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _GIr, _sN: _gIr}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STALE_IP_PERMISSION_SET, {_aQN: _SIPta, _sN: _sIP}), + (STALE_IP_PERMISSION_SET, {_aQN: _SIPE, _sN: _sIPE}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +STALE_SECURITY_GROUP_SET: StaticSchema = ( + 16, + n0, + _SSGS, + 0, + (_me,), + ((STALE_SECURITY_GROUP, {_sN: _i}),), +) + +DESCRIBE_STALE_SECURITY_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSGO, + {_sSI: _cDSSGRo, _smit: None}, + (_NTex, _SSGS), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (STALE_SECURITY_GROUP_SET, {_aQN: _SSGS, _sN: _sSGS}), + ), +) + +DESCRIBE_STALE_SECURITY_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DSSG, + 0, + DESCRIBE_STALE_SECURITY_GROUPS_INPUT, + DESCRIBE_STALE_SECURITY_GROUPS_OUTPUT, + (), +) + +IMAGE_ID_LIST: StaticSchema = (16, n0, _IILm, 0, (_me,), ((IMAGE_ID, {_sN: _i}),)) + +DESCRIBE_STORE_IMAGE_TASKS_REQUEST_MAX_RESULTS: StaticSchema = (7, n0, _DSITRMR, 0) + +DESCRIBE_STORE_IMAGE_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DSITI, + {_sSI: _cDSITR, _sm: None}, + (_IIma, _DR, _Fil, _NTex, _MR), + ( + (IMAGE_ID_LIST, {_sN: _IIm}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (DESCRIBE_STORE_IMAGE_TASKS_REQUEST_MAX_RESULTS, 0), + ), +) + +STORE_IMAGE_TASK_RESULT: StaticSchema = ( + 18, + n0, + _SITR, + 0, + (_AIm, _TST, _Bu, _SKo, _PPr, _STSt, _STFR), + ( + (STRING, {_aQN: _AIm, _sN: _aIm}), + (MILLISECOND_DATE_TIME, {_aQN: _TST, _sN: _tST}), + (STRING, {_aQN: _Bu, _sN: _buc}), + (STRING, {_aQN: _SKo, _sN: _sKo}), + (INTEGER, {_aQN: _PPr, _sN: _pP}), + (STRING, {_aQN: _STSt, _sN: _sTSt}), + (STRING, {_aQN: _STFR, _sN: _sTFR}), + ), +) + +STORE_IMAGE_TASK_RESULT_SET: StaticSchema = ( + 16, + n0, + _SITRS, + 0, + (_me,), + ((STORE_IMAGE_TASK_RESULT, {_sN: _i}),), +) + +DESCRIBE_STORE_IMAGE_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSITO, + {_sSI: _cDSITRo, _smit: None}, + (_SITRt, _NTex), + ( + (STORE_IMAGE_TASK_RESULT_SET, {_aQN: _SITRS, _sN: _sITRS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_STORE_IMAGE_TASKS: StaticOperationSchema = ( + 23, + n0, + _DSIT, + 0, + DESCRIBE_STORE_IMAGE_TASKS_INPUT, + DESCRIBE_STORE_IMAGE_TASKS_OUTPUT, + (), +) + +DESCRIBE_SUBNETS_MAX_RESULTS: StaticSchema = (7, n0, _DSMR, 0) + +SUBNET_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _SISLu, + 0, + (_me,), + ((SUBNET_ID, {_sN: _SIu}),), +) + +DESCRIBE_SUBNETS_INPUT: StaticSchema = ( + 18, + n0, + _DSIescri, + {_sSI: _cDSRomam, _sm: None}, + (_Fil, _SI, _NTex, _MR, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (SUBNET_ID_STRING_LIST, {_sN: _SIu}), + (STRING, 0), + (DESCRIBE_SUBNETS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +SUBNET_LIST: StaticSchema = (16, n0, _SLub, 0, (_me,), ((SUBNET, {_sN: _i}),)) + +DESCRIBE_SUBNETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSOesc, + {_sSI: _cDSRomama, _smit: None}, + (_NTex, _Su), + ((STRING, {_aQN: _NTex, _sN: _nT}), (SUBNET_LIST, {_aQN: _SSubn, _sN: _sSub})), +) + +DESCRIBE_SUBNETS: StaticOperationSchema = ( + 23, + n0, + _DSesc, + 0, + DESCRIBE_SUBNETS_INPUT, + DESCRIBE_SUBNETS_OUTPUT, + (), +) + +DESCRIBE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _DTIes, + {_sSI: _cDTRo, _sm: None}, + (_DR, _Fil, _MR, _NTex), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +TAG_DESCRIPTION: StaticSchema = ( + 18, + n0, + _TDa, + 0, + (_Ke, _RIe, _RT, _Va), + ( + (STRING, {_aQN: _Ke, _sN: _ke}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _Va, _sN: _va}), + ), +) + +TAG_DESCRIPTION_LIST: StaticSchema = ( + 16, + n0, + _TDL, + 0, + (_me,), + ((TAG_DESCRIPTION, {_sN: _i}),), +) + +DESCRIBE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTOe, + {_sSI: _cDTRom, _smit: None}, + (_NTex, _Tag), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (TAG_DESCRIPTION_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +DESCRIBE_TAGS: StaticOperationSchema = ( + 23, + n0, + _DTes, + 0, + DESCRIBE_TAGS_INPUT, + DESCRIBE_TAGS_OUTPUT, + (), +) + +TRAFFIC_MIRRORING_MAX_RESULTS: StaticSchema = (7, n0, _TMMR, 0) + +TRAFFIC_MIRROR_FILTER_RULE_ID_LIST: StaticSchema = ( + 16, + n0, + _TMFRIL, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER_RULE_ID_WITH_RESOLVER, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_INPUT: StaticSchema = ( + 18, + n0, + _DTMFRIe, + {_sSI: _cDTMFRRom, _sm: None}, + (_TMFRIr, _TMFI, _DR, _Fil, _MR, _NTex), + ( + (TRAFFIC_MIRROR_FILTER_RULE_ID_LIST, {_sN: _TMFRI}), + (TRAFFIC_MIRROR_FILTER_ID, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRAFFIC_MIRRORING_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +TRAFFIC_MIRROR_FILTER_RULE_SET: StaticSchema = ( + 16, + n0, + _TMFRS, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER_RULE, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMFROe, + {_sSI: _cDTMFRRoma, _smit: None}, + (_TMFRr, _NTex), + ( + (TRAFFIC_MIRROR_FILTER_RULE_SET, {_aQN: _TMFRS, _sN: _tMFRS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES: StaticOperationSchema = ( + 23, + n0, + _DTMFRe, + 0, + DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_INPUT, + DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_OUTPUT, + (), +) + +TRAFFIC_MIRROR_FILTER_ID_LIST: StaticSchema = ( + 16, + n0, + _TMFIL, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER_ID, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTERS_INPUT: StaticSchema = ( + 18, + n0, + _DTMFIe, + {_sSI: _cDTMFRom, _sm: None}, + (_TMFIr, _DR, _Fil, _MR, _NTex), + ( + (TRAFFIC_MIRROR_FILTER_ID_LIST, {_sN: _TMFI}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRAFFIC_MIRRORING_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +TRAFFIC_MIRROR_FILTER_SET: StaticSchema = ( + 16, + n0, + _TMFS, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMFOe, + {_sSI: _cDTMFRoma, _smit: None}, + (_TMFr, _NTex), + ( + (TRAFFIC_MIRROR_FILTER_SET, {_aQN: _TMFS, _sN: _tMFS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRAFFIC_MIRROR_FILTERS: StaticOperationSchema = ( + 23, + n0, + _DTMFe, + 0, + DESCRIBE_TRAFFIC_MIRROR_FILTERS_INPUT, + DESCRIBE_TRAFFIC_MIRROR_FILTERS_OUTPUT, + (), +) + +TRAFFIC_MIRROR_SESSION_ID_LIST: StaticSchema = ( + 16, + n0, + _TMSIL, + 0, + (_me,), + ((TRAFFIC_MIRROR_SESSION_ID, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_SESSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DTMSIe, + {_sSI: _cDTMSRom, _sm: None}, + (_TMSIr, _DR, _Fil, _MR, _NTex), + ( + (TRAFFIC_MIRROR_SESSION_ID_LIST, {_sN: _TMSI}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRAFFIC_MIRRORING_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +TRAFFIC_MIRROR_SESSION_SET: StaticSchema = ( + 16, + n0, + _TMSS, + 0, + (_me,), + ((TRAFFIC_MIRROR_SESSION, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_SESSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMSOe, + {_sSI: _cDTMSRoma, _smit: None}, + (_TMSr, _NTex), + ( + (TRAFFIC_MIRROR_SESSION_SET, {_aQN: _TMSS, _sN: _tMSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRAFFIC_MIRROR_SESSIONS: StaticOperationSchema = ( + 23, + n0, + _DTMSe, + 0, + DESCRIBE_TRAFFIC_MIRROR_SESSIONS_INPUT, + DESCRIBE_TRAFFIC_MIRROR_SESSIONS_OUTPUT, + (), +) + +TRAFFIC_MIRROR_TARGET_ID_LIST: StaticSchema = ( + 16, + n0, + _TMTIL, + 0, + (_me,), + ((TRAFFIC_MIRROR_TARGET_ID, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _DTMTIe, + {_sSI: _cDTMTRom, _sm: None}, + (_TMTIr, _DR, _Fil, _MR, _NTex), + ( + (TRAFFIC_MIRROR_TARGET_ID_LIST, {_sN: _TMTI}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRAFFIC_MIRRORING_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +TRAFFIC_MIRROR_TARGET_SET: StaticSchema = ( + 16, + n0, + _TMTS, + 0, + (_me,), + ((TRAFFIC_MIRROR_TARGET, {_sN: _i}),), +) + +DESCRIBE_TRAFFIC_MIRROR_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTMTOe, + {_sSI: _cDTMTRoma, _smit: None}, + (_TMTr, _NTex), + ( + (TRAFFIC_MIRROR_TARGET_SET, {_aQN: _TMTS, _sN: _tMTS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRAFFIC_MIRROR_TARGETS: StaticOperationSchema = ( + 23, + n0, + _DTMTe, + 0, + DESCRIBE_TRAFFIC_MIRROR_TARGETS_INPUT, + DESCRIBE_TRAFFIC_MIRROR_TARGETS_OUTPUT, + (), +) + +TRANSIT_GATEWAY_MAX_RESULTS: StaticSchema = (7, n0, _TGMR, 0) + +DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DTGAIe, + {_sSI: _cDTGAR, _sm: None}, + (_TGAIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TGAA, + 0, + (_TGRTI, _TGPTI, _St), + ( + (STRING, {_aQN: _TGRTI, _sN: _tGRTI}), + (STRING, {_aQN: _TGPTI, _sN: _tGPTI}), + (TRANSIT_GATEWAY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_STATE: StaticSchema = ( + 14, + n0, + _TGANGSS, + 0, + (_ena, _d, _en, _disab), + ((-1, {_sV: _ena}), (-1, {_sV: _d}), (-1, {_sV: _en}), (-1, {_sV: _disab})), +) + +TRANSIT_GATEWAY_ATTACHMENT: StaticSchema = ( + 18, + n0, + _TGA, + 0, + (_TGAI, _TGI, _TGOI, _ROI, _RT, _RIe, _St, _Ass, _CT, _Tag, _NGSat), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _TGI, _sN: _tGI}), + (STRING, {_aQN: _TGOI, _sN: _tGOI}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_STATE, {_aQN: _St, _sN: _st}), + (TRANSIT_GATEWAY_ATTACHMENT_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}), + (DATE_TIME, {_aQN: _CT, _sN: _cT}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ( + TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_STATE, + {_aQN: _NGSat, _sN: _nGSa}, + ), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _TGAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ATTACHMENT, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGAO, + {_sSI: _cDTGARo, _smit: None}, + (_TGAransi, _NTex), + ( + (TRANSIT_GATEWAY_ATTACHMENT_LIST, {_aQN: _TGAransi, _sN: _tGArans}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS: StaticOperationSchema = ( + 23, + n0, + _DTGA, + 0, + DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_OUTPUT, + (), +) + +TRANSIT_GATEWAY_CONNECT_PEER_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGCPISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_CONNECT_PEER_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_INPUT: StaticSchema = ( + 18, + n0, + _DTGCPIe, + {_sSI: _cDTGCPRom, _sm: None}, + (_TGCPIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_CONNECT_PEER_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_CONNECT_PEER_LIST: StaticSchema = ( + 16, + n0, + _TGCPL, + 0, + (_me,), + ((TRANSIT_GATEWAY_CONNECT_PEER, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGCPOe, + {_sSI: _cDTGCPRoma, _smit: None}, + (_TGCPr, _NTex), + ( + (TRANSIT_GATEWAY_CONNECT_PEER_LIST, {_aQN: _TGCPSr, _sN: _tGCPS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS: StaticOperationSchema = ( + 23, + n0, + _DTGCPe, + 0, + DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_OUTPUT, + (), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECTS_INPUT: StaticSchema = ( + 18, + n0, + _DTGCIe, + {_sSI: _cDTGCRom, _sm: None}, + (_TGAIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_CONNECT_LIST: StaticSchema = ( + 16, + n0, + _TGCL, + 0, + (_me,), + ((TRANSIT_GATEWAY_CONNECT, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGCOe, + {_sSI: _cDTGCRoma, _smit: None}, + (_TGCra, _NTex), + ( + (TRANSIT_GATEWAY_CONNECT_LIST, {_aQN: _TGCS, _sN: _tGCS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_CONNECTS: StaticOperationSchema = ( + 23, + n0, + _DTGCe, + 0, + DESCRIBE_TRANSIT_GATEWAY_CONNECTS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_CONNECTS_OUTPUT, + (), +) + +TRANSIT_GATEWAY_METERING_POLICY_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGMPISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_METERING_POLICY_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _DTGMPIe, + {_sSI: _cDTGMPRom, _sm: None}, + (_TGMPIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_LIST: StaticSchema = ( + 16, + n0, + _TGMPL, + 0, + (_me,), + ((TRANSIT_GATEWAY_METERING_POLICY, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMPOe, + {_sSI: _cDTGMPRoma, _smit: None}, + (_TGMPr, _NTex), + ( + (TRANSIT_GATEWAY_METERING_POLICY_LIST, {_aQN: _TGMPr, _sN: _tGMPr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES: StaticOperationSchema = ( + 23, + n0, + _DTGMPe, + 0, + DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_INPUT, + DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_OUTPUT, + (), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGMDISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_INPUT: StaticSchema = ( + 18, + n0, + _DTGMDIe, + {_sSI: _cDTGMDRom, _sm: None}, + (_TGMDIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_LIST: StaticSchema = ( + 16, + n0, + _TGMDL, + 0, + (_me,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMDOe, + {_sSI: _cDTGMDRoma, _smit: None}, + (_TGMDr, _NTex), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_LIST, {_aQN: _TGMDr, _sN: _tGMDr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS: StaticOperationSchema = ( + 23, + n0, + _DTGMDe, + 0, + DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_OUTPUT, + (), +) + +DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DTGPAIe, + {_sSI: _cDTGPARom, _sm: None}, + (_TGAIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_PEERING_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _TGPAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_PEERING_ATTACHMENT, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPAOe, + {_sSI: _cDTGPARoma, _smit: None}, + (_TGPAr, _NTex), + ( + (TRANSIT_GATEWAY_PEERING_ATTACHMENT_LIST, {_aQN: _TGPAr, _sN: _tGPAr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS: StaticOperationSchema = ( + 23, + n0, + _DTGPAe, + 0, + DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_OUTPUT, + (), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGPTISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_INPUT: StaticSchema = ( + 18, + n0, + _DTGPTIe, + {_sSI: _cDTGPTRom, _sm: None}, + (_TGPTIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_POLICY_TABLE_LIST: StaticSchema = ( + 16, + n0, + _TGPTL, + 0, + (_me,), + ((TRANSIT_GATEWAY_POLICY_TABLE, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPTOe, + {_sSI: _cDTGPTRoma, _smit: None}, + (_TGPTr, _NTex), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_LIST, {_aQN: _TGPTr, _sN: _tGPTr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES: StaticOperationSchema = ( + 23, + n0, + _DTGPTe, + 0, + DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_INPUT, + DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGRTAISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTAIe, + {_sSI: _cDTGRTARom, _sm: None}, + (_TGRTAIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_LIST: StaticSchema = ( + 16, + n0, + _TGRTAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTAOe, + {_sSI: _cDTGRTARoma, _smit: None}, + (_TGRTAr, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_LIST, {_aQN: _TGRTAr, _sN: _tGRTAr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS: StaticOperationSchema = ( + 23, + n0, + _DTGRTAe, + 0, + DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGRTISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTIe, + {_sSI: _cDTGRTRom, _sm: None}, + (_TGRTIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_LIST: StaticSchema = ( + 16, + n0, + _TGRTL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTOe, + {_sSI: _cDTGRTRoma, _smit: None}, + (_TGRTra, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_LIST, {_aQN: _TGRTra, _sN: _tGRTr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES: StaticOperationSchema = ( + 23, + n0, + _DTGRTe, + 0, + DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_INPUT, + DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_OUTPUT, + (), +) + +TRANSIT_GATEWAY_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _TGISL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ID, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DTGIe, + {_sSI: _cDTGRom, _sm: None}, + (_TGIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_LIST: StaticSchema = ( + 16, + n0, + _TGL, + 0, + (_me,), + ((TRANSIT_GATEWAY, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGOe, + {_sSI: _cDTGRoma, _smit: None}, + (_TGra, _NTex), + ( + (TRANSIT_GATEWAY_LIST, {_aQN: _TGSr, _sN: _tGS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DTGe, + 0, + DESCRIBE_TRANSIT_GATEWAYS_INPUT, + DESCRIBE_TRANSIT_GATEWAYS_OUTPUT, + (), +) + +DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DTGVAIe, + {_sSI: _cDTGVARom, _sm: None}, + (_TGAIr, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, 0), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_VPC_ATTACHMENT_LIST: StaticSchema = ( + 16, + n0, + _TGVAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_sN: _i}),), +) + +DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGVAOe, + {_sSI: _cDTGVARoma, _smit: None}, + (_TGVAr, _NTex), + ( + (TRANSIT_GATEWAY_VPC_ATTACHMENT_LIST, {_aQN: _TGVAr, _sN: _tGVAr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS: StaticOperationSchema = ( + 23, + n0, + _DTGVAe, + 0, + DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_INPUT, + DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_OUTPUT, + (), +) + +TRUNK_INTERFACE_ASSOCIATION_ID_LIST: StaticSchema = ( + 16, + n0, + _TIAIL, + 0, + (_me,), + ((TRUNK_INTERFACE_ASSOCIATION_ID, {_sN: _i}),), +) + +DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_MAX_RESULTS: StaticSchema = (7, n0, _DTIAMR, 0) + +DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DTIAI, + {_sSI: _cDTIAR, _sm: None}, + (_AIsso, _DR, _Fil, _NTex, _MR), + ( + (TRUNK_INTERFACE_ASSOCIATION_ID_LIST, {_sN: _AIs}), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_MAX_RESULTS, 0), + ), +) + +TRUNK_INTERFACE_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _TIAL, + 0, + (_me,), + ((TRUNK_INTERFACE_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTIAO, + {_sSI: _cDTIARo, _smit: None}, + (_IAnt, _NTex), + ( + (TRUNK_INTERFACE_ASSOCIATION_LIST, {_aQN: _IASnt, _sN: _iASn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DTIA, + 0, + DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_INPUT, + DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_MAX_RESULTS: StaticSchema = (7, n0, _DVAEMR, 0) + +VERIFIED_ACCESS_ENDPOINT_ID_LIST: StaticSchema = ( + 16, + n0, + _VAEIL, + 0, + (_me,), + ((VERIFIED_ACCESS_ENDPOINT_ID, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DVAEIe, + {_sSI: _cDVAERom, _sm: None}, + (_VAEIe, _VAII, _VAGI, _MR, _NTex, _Fil, _DR), + ( + (VERIFIED_ACCESS_ENDPOINT_ID_LIST, {_sN: _VAEI}), + (VERIFIED_ACCESS_INSTANCE_ID, 0), + (VERIFIED_ACCESS_GROUP_ID, 0), + (DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_ENDPOINT_LIST: StaticSchema = ( + 16, + n0, + _VAEL, + 0, + (_me,), + ((VERIFIED_ACCESS_ENDPOINT, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAEOe, + {_sSI: _cDVAERoma, _smit: None}, + (_VAEe, _NTex), + ( + (VERIFIED_ACCESS_ENDPOINT_LIST, {_aQN: _VAESe, _sN: _vAES}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VERIFIED_ACCESS_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DVAEe, + 0, + DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_INPUT, + DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_OUTPUT, + (), +) + +DESCRIBE_VERIFIED_ACCESS_GROUP_MAX_RESULTS: StaticSchema = (7, n0, _DVAGMR, 0) + +VERIFIED_ACCESS_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _VAGIL, + 0, + (_me,), + ((VERIFIED_ACCESS_GROUP_ID, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DVAGIe, + {_sSI: _cDVAGRom, _sm: None}, + (_VAGIe, _VAII, _MR, _NTex, _Fil, _DR), + ( + (VERIFIED_ACCESS_GROUP_ID_LIST, {_sN: _VAGI}), + (VERIFIED_ACCESS_INSTANCE_ID, 0), + (DESCRIBE_VERIFIED_ACCESS_GROUP_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_GROUP_LIST: StaticSchema = ( + 16, + n0, + _VAGL, + 0, + (_me,), + ((VERIFIED_ACCESS_GROUP, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAGOe, + {_sSI: _cDVAGRoma, _smit: None}, + (_VAGe, _NTex), + ( + (VERIFIED_ACCESS_GROUP_LIST, {_aQN: _VAGS, _sN: _vAGS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VERIFIED_ACCESS_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DVAGe, + 0, + DESCRIBE_VERIFIED_ACCESS_GROUPS_INPUT, + DESCRIBE_VERIFIED_ACCESS_GROUPS_OUTPUT, + (), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DVAILCMR, + 0, +) + +VERIFIED_ACCESS_INSTANCE_ID_LIST: StaticSchema = ( + 16, + n0, + _VAIIL, + 0, + (_me,), + ((VERIFIED_ACCESS_INSTANCE_ID, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVAILCI, + {_sSI: _cDVAILCR, _sm: None}, + (_VAIIe, _MR, _NTex, _Fil, _DR), + ( + (VERIFIED_ACCESS_INSTANCE_ID_LIST, {_sN: _VAII}), + (DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_LOG_DELIVERY_STATUS_CODE: StaticSchema = ( + 14, + n0, + _VALDSC, + 0, + (_SUCCESS, _FAILED), + ((-1, {_sV: _succe}), (-1, {_sV: _fa})), +) + +VERIFIED_ACCESS_LOG_DELIVERY_STATUS: StaticSchema = ( + 18, + n0, + _VALDS, + 0, + (_C, _Me), + ( + (VERIFIED_ACCESS_LOG_DELIVERY_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION: StaticSchema = ( + 18, + n0, + _VALCWLD, + 0, + (_Ena, _DSeli, _LGog), + ( + (BOOLEAN, {_aQN: _Ena, _sN: _ena}), + (VERIFIED_ACCESS_LOG_DELIVERY_STATUS, {_aQN: _DSeli, _sN: _dSel}), + (STRING, {_aQN: _LGog, _sN: _lGo}), + ), +) + +VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION: StaticSchema = ( + 18, + n0, + _VALKDFD, + 0, + (_Ena, _DSeli, _DSeliv), + ( + (BOOLEAN, {_aQN: _Ena, _sN: _ena}), + (VERIFIED_ACCESS_LOG_DELIVERY_STATUS, {_aQN: _DSeli, _sN: _dSel}), + (STRING, {_aQN: _DSeliv, _sN: _dSeli}), + ), +) + +VERIFIED_ACCESS_LOG_S3_DESTINATION: StaticSchema = ( + 18, + n0, + _VALSD, + 0, + (_Ena, _DSeli, _BN, _Pre, _BOu), + ( + (BOOLEAN, {_aQN: _Ena, _sN: _ena}), + (VERIFIED_ACCESS_LOG_DELIVERY_STATUS, {_aQN: _DSeli, _sN: _dSel}), + (STRING, {_aQN: _BN, _sN: _bN}), + (STRING, {_aQN: _Pre, _sN: _pre}), + (STRING, {_aQN: _BOu, _sN: _bOu}), + ), +) + +VERIFIED_ACCESS_LOGS: StaticSchema = ( + 18, + n0, + _VALe, + 0, + (_S_, _CWL, _KDF, _LVo, _ITCn), + ( + (VERIFIED_ACCESS_LOG_S3_DESTINATION, {_aQN: _S_, _sN: _s_}), + (VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION, {_aQN: _CWL, _sN: _cWL}), + ( + VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION, + {_aQN: _KDF, _sN: _kDF}, + ), + (STRING, {_aQN: _LVo, _sN: _lV}), + (BOOLEAN, {_aQN: _ITCn, _sN: _iTCn}), + ), +) + +VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VAILC, + 0, + (_VAII, _ALc), + ( + (STRING, {_aQN: _VAII, _sN: _vAII}), + (VERIFIED_ACCESS_LOGS, {_aQN: _ALc, _sN: _aL}), + ), +) + +VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _VAILCL, + 0, + (_me,), + ((VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAILCO, + {_sSI: _cDVAILCRo, _smit: None}, + (_LCo, _NTex), + ( + (VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_LIST, {_aQN: _LCS, _sN: _lCS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _DVAILC, + 0, + DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_INPUT, + DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_OUTPUT, + (), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCES_MAX_RESULTS: StaticSchema = (7, n0, _DVAIMR, 0) + +DESCRIBE_VERIFIED_ACCESS_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DVAIIe, + {_sSI: _cDVAIRom, _sm: None}, + (_VAIIe, _MR, _NTex, _Fil, _DR), + ( + (VERIFIED_ACCESS_INSTANCE_ID_LIST, {_sN: _VAII}), + (DESCRIBE_VERIFIED_ACCESS_INSTANCES_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _VAIL, + 0, + (_me,), + ((VERIFIED_ACCESS_INSTANCE, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAIOe, + {_sSI: _cDVAIRoma, _smit: None}, + (_VAIe, _NTex), + ( + (VERIFIED_ACCESS_INSTANCE_LIST, {_aQN: _VAIS, _sN: _vAIS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VERIFIED_ACCESS_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DVAIe, + 0, + DESCRIBE_VERIFIED_ACCESS_INSTANCES_INPUT, + DESCRIBE_VERIFIED_ACCESS_INSTANCES_OUTPUT, + (), +) + +DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DVATPMR, + 0, +) + +VERIFIED_ACCESS_TRUST_PROVIDER_ID_LIST: StaticSchema = ( + 16, + n0, + _VATPIL, + 0, + (_me,), + ((VERIFIED_ACCESS_TRUST_PROVIDER_ID, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_INPUT: StaticSchema = ( + 18, + n0, + _DVATPIe, + {_sSI: _cDVATPRom, _sm: None}, + (_VATPIe, _MR, _NTex, _Fil, _DR), + ( + (VERIFIED_ACCESS_TRUST_PROVIDER_ID_LIST, {_sN: _VATPI}), + (DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_TRUST_PROVIDER_LIST: StaticSchema = ( + 16, + n0, + _VATPL, + 0, + (_me,), + ((VERIFIED_ACCESS_TRUST_PROVIDER, {_sN: _i}),), +) + +DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVATPOe, + {_sSI: _cDVATPRoma, _smit: None}, + (_VATP, _NTex), + ( + (VERIFIED_ACCESS_TRUST_PROVIDER_LIST, {_aQN: _VATPS, _sN: _vATPS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS: StaticOperationSchema = ( + 23, + n0, + _DVATPe, + 0, + DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_INPUT, + DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_OUTPUT, + (), +) + +VOLUME_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _VAN, + 0, + (_aEIO, _pCr), + ((-1, {_sV: _aEIO}), (-1, {_sV: _pCr})), +) + +DESCRIBE_VOLUME_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DVAIes, + {_sSI: _cDVAR, _sm: None}, + (_Attr, _VIo, _DR), + ((VOLUME_ATTRIBUTE_NAME, 1), (VOLUME_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DESCRIBE_VOLUME_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAO, + {_sSI: _cDVARo, _smit: None}, + (_AEIO, _PCro, _VIo), + ( + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _AEIO, _sN: _aEIO}), + (PRODUCT_CODE_LIST, {_aQN: _PCro, _sN: _pCr}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + ), +) + +DESCRIBE_VOLUME_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DVA, + 0, + DESCRIBE_VOLUME_ATTRIBUTE_INPUT, + DESCRIBE_VOLUME_ATTRIBUTE_OUTPUT, + (), +) + +DESCRIBE_VOLUMES_INPUT: StaticSchema = ( + 18, + n0, + _DVIes, + {_sSI: _cDVRom, _sm: None}, + (_VIol, _IMR, _DR, _Fil, _NTex, _MR), + ( + (VOLUME_ID_STRING_LIST, {_sN: _VIo}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, {_aQN: _NTex, _sN: _nT}), + (INTEGER, {_aQN: _MR, _sN: _mR}), + ), +) + +DESCRIBE_VOLUMES_OUTPUT: StaticSchema = ( + 18, + n0, + _DVOes, + {_sSI: _cDVRoma, _smit: None}, + (_NTex, _Vol), + ((STRING, {_aQN: _NTex, _sN: _nT}), (VOLUME_LIST, {_aQN: _VSo, _sN: _vS})), +) + +DESCRIBE_VOLUMES: StaticOperationSchema = ( + 23, + n0, + _DVes, + 0, + DESCRIBE_VOLUMES_INPUT, + DESCRIBE_VOLUMES_OUTPUT, + (), +) + +DESCRIBE_VOLUMES_MODIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVMI, + {_sSI: _cDVMR, _sm: None}, + (_DR, _VIol, _Fil, _NTex, _MR, _IMR), + ( + (BOOLEAN, 0), + (VOLUME_ID_STRING_LIST, {_sN: _VIo}), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (INTEGER, 0), + (BOOLEAN, 0), + ), +) + +VOLUME_MODIFICATION_STATE: StaticSchema = ( + 14, + n0, + _VMS, + 0, + (_mo, _opti, _compl, _fa), + ((-1, {_sV: _mo}), (-1, {_sV: _opti}), (-1, {_sV: _compl}), (-1, {_sV: _fa})), +) + +VOLUME_MODIFICATION: StaticSchema = ( + 18, + n0, + _VM, + 0, + ( + _VIo, + _MSo, + _SMt, + _TSarg, + _TIar, + _TVT, + _TTa, + _TMAE, + _OSr, + _OIr, + _OVT, + _OTr, + _OMAE, + _Prog, + _ST, + _ETnd, + _Op, + ), + ( + (STRING, {_aQN: _VIo, _sN: _vIo}), + (VOLUME_MODIFICATION_STATE, {_aQN: _MSo, _sN: _mS}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (INTEGER, {_aQN: _TSarg, _sN: _tSarg}), + (INTEGER, {_aQN: _TIar, _sN: _tIar}), + (VOLUME_TYPE, {_aQN: _TVT, _sN: _tVT}), + (INTEGER, {_aQN: _TTa, _sN: _tTa}), + (BOOLEAN, {_aQN: _TMAE, _sN: _tMAE}), + (INTEGER, {_aQN: _OSr, _sN: _oSr}), + (INTEGER, {_aQN: _OIr, _sN: _oIr}), + (VOLUME_TYPE, {_aQN: _OVT, _sN: _oVT}), + (INTEGER, {_aQN: _OTr, _sN: _oTr}), + (BOOLEAN, {_aQN: _OMAE, _sN: _oMAE}), + (LONG, {_aQN: _Prog, _sN: _prog}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (DATE_TIME, {_aQN: _ETnd, _sN: _eTnd}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +VOLUME_MODIFICATION_LIST: StaticSchema = ( + 16, + n0, + _VML, + 0, + (_me,), + ((VOLUME_MODIFICATION, {_sN: _i}),), +) + +DESCRIBE_VOLUMES_MODIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVMO, + {_sSI: _cDVMRo, _smit: None}, + (_NTex, _VMo), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (VOLUME_MODIFICATION_LIST, {_aQN: _VMSo, _sN: _vMS}), + ), +) + +DESCRIBE_VOLUMES_MODIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DVM, + 0, + DESCRIBE_VOLUMES_MODIFICATIONS_INPUT, + DESCRIBE_VOLUMES_MODIFICATIONS_OUTPUT, + (), +) + +DESCRIBE_VOLUME_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _DVSI, + {_sSI: _cDVSR, _sm: None}, + (_MR, _NTex, _VIol, _IMR, _DR, _Fil), + ( + (INTEGER, 0), + (STRING, 0), + (VOLUME_ID_STRING_LIST, {_sN: _VIo}), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +VOLUME_STATUS_ACTION: StaticSchema = ( + 18, + n0, + _VSA, + 0, + (_C, _Des, _EIve, _ETv), + ( + (STRING, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _EIve, _sN: _eIve}), + (STRING, {_aQN: _ETv, _sN: _eTv}), + ), +) + +VOLUME_STATUS_ACTIONS_LIST: StaticSchema = ( + 16, + n0, + _VSAL, + 0, + (_me,), + ((VOLUME_STATUS_ACTION, {_sN: _i}),), +) + +VOLUME_STATUS_ATTACHMENT_STATUS: StaticSchema = ( + 18, + n0, + _VSAS, + 0, + (_IPo, _II), + ((STRING, {_aQN: _IPo, _sN: _iPo}), (STRING, {_aQN: _II, _sN: _iI})), +) + +VOLUME_STATUS_ATTACHMENT_STATUS_LIST: StaticSchema = ( + 16, + n0, + _VSASL, + 0, + (_me,), + ((VOLUME_STATUS_ATTACHMENT_STATUS, {_sN: _i}),), +) + +VOLUME_STATUS_EVENT: StaticSchema = ( + 18, + n0, + _VSE, + 0, + (_Des, _EIve, _ETv, _NA, _NB, _II), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _EIve, _sN: _eIve}), + (STRING, {_aQN: _ETv, _sN: _eTv}), + (MILLISECOND_DATE_TIME, {_aQN: _NA, _sN: _nA}), + (MILLISECOND_DATE_TIME, {_aQN: _NB, _sN: _nB}), + (STRING, {_aQN: _II, _sN: _iI}), + ), +) + +VOLUME_STATUS_EVENTS_LIST: StaticSchema = ( + 16, + n0, + _VSEL, + 0, + (_me,), + ((VOLUME_STATUS_EVENT, {_sN: _i}),), +) + +INITIALIZATION_TYPE: StaticSchema = ( + 14, + n0, + _ITni, + 0, + (_def, _pr_, _vc____), + ((-1, {_sV: _def}), (-1, {_sV: _pr__}), (-1, {_sV: _vc_____})), +) + +INITIALIZATION_STATUS_DETAILS: StaticSchema = ( + 18, + n0, + _ISDn, + 0, + (_ITni, _Prog, _ETTCIS), + ( + (INITIALIZATION_TYPE, {_aQN: _ITni, _sN: _iTni}), + (LONG, {_aQN: _Prog, _sN: _prog}), + (LONG, {_aQN: _ETTCIS, _sN: _eTTCIS}), + ), +) + +VOLUME_STATUS_NAME: StaticSchema = ( + 14, + n0, + _VSN, + 0, + (_ie_____, _ip_________, _is______), + ((-1, {_sV: _ie______}), (-1, {_sV: _ip__________}), (-1, {_sV: _is_______})), +) + +VOLUME_STATUS_DETAILS: StaticSchema = ( + 18, + n0, + _VSD, + 0, + (_N, _Sta), + ((VOLUME_STATUS_NAME, {_aQN: _N, _sN: _nam}), (STRING, {_aQN: _Sta, _sN: _sta})), +) + +VOLUME_STATUS_DETAILS_LIST: StaticSchema = ( + 16, + n0, + _VSDL, + 0, + (_me,), + ((VOLUME_STATUS_DETAILS, {_sN: _i}),), +) + +VOLUME_STATUS_INFO_STATUS: StaticSchema = ( + 14, + n0, + _VSIS, + 0, + (_ok, _imp, _id__, _wa), + ((-1, {_sV: _ok}), (-1, {_sV: _imp}), (-1, {_sV: _id_}), (-1, {_sV: _wa})), +) + +VOLUME_STATUS_INFO: StaticSchema = ( + 18, + n0, + _VSI, + 0, + (_Det, _Sta), + ( + (VOLUME_STATUS_DETAILS_LIST, {_aQN: _Det, _sN: _detai}), + (VOLUME_STATUS_INFO_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +VOLUME_STATUS_ITEM: StaticSchema = ( + 18, + n0, + _VSIo, + 0, + (_Acti, _AZ, _OA, _Ev, _VIo, _VSolu, _ASttac, _ISDn, _AZI, _Op), + ( + (VOLUME_STATUS_ACTIONS_LIST, {_aQN: _ASct, _sN: _aSct}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _OA, _sN: _oA}), + (VOLUME_STATUS_EVENTS_LIST, {_aQN: _ESv, _sN: _eSv}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (VOLUME_STATUS_INFO, {_aQN: _VSolu, _sN: _vSol}), + (VOLUME_STATUS_ATTACHMENT_STATUS_LIST, {_aQN: _ASttac, _sN: _aStta}), + (INITIALIZATION_STATUS_DETAILS, {_aQN: _ISDn, _sN: _iSD}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + ), +) + +VOLUME_STATUS_LIST: StaticSchema = ( + 16, + n0, + _VSLo, + 0, + (_me,), + ((VOLUME_STATUS_ITEM, {_sN: _i}),), +) + +DESCRIBE_VOLUME_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVSO, + {_sSI: _cDVSRo, _smit: None}, + (_NTex, _VSolum), + ((STRING, {_aQN: _NTex, _sN: _nT}), (VOLUME_STATUS_LIST, {_aQN: _VSS, _sN: _vSS})), +) + +DESCRIBE_VOLUME_STATUS: StaticOperationSchema = ( + 23, + n0, + _DVS, + 0, + DESCRIBE_VOLUME_STATUS_INPUT, + DESCRIBE_VOLUME_STATUS_OUTPUT, + (), +) + +VPC_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _VANp, + 0, + (_eDS, _eDH, _eNAUM), + ((-1, {_sV: _eDS}), (-1, {_sV: _eDH}), (-1, {_sV: _eNAUM})), +) + +DESCRIBE_VPC_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _DVAIesc, + {_sSI: _cDVARom, _sm: None}, + (_Attr, _VI, _DR), + ((VPC_ATTRIBUTE_NAME, 1), (VPC_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DESCRIBE_VPC_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DVAOe, + {_sSI: _cDVARoma, _smit: None}, + (_EDH, _EDS, _ENAUM, _VI), + ( + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _EDH, _sN: _eDH}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _EDS, _sN: _eDS}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _ENAUM, _sN: _eNAUM}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +DESCRIBE_VPC_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _DVAe, + 0, + DESCRIBE_VPC_ATTRIBUTE_INPUT, + DESCRIBE_VPC_ATTRIBUTE_OUTPUT, + (), +) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID_LIST: StaticSchema = ( + 16, + n0, + _VBPAEIL, + 0, + (_me,), + ((VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID, {_sN: _i}),), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _DVBPAEMR, + 0, +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVBPAEIe, + {_sSI: _cDVBPAERom, _sm: None}, + (_DR, _Fil, _EIxc, _NTex, _MR), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID_LIST, {_sN: _EIx}), + (STRING, 0), + (DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_MAX_RESULTS, 0), + ), +) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_LIST: StaticSchema = ( + 16, + n0, + _VBPAEL, + 0, + (_me,), + ((VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, {_sN: _i}),), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVBPAEOe, + {_sSI: _cDVBPAERoma, _smit: None}, + (_VBPAEp, _NTex), + ( + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_LIST, {_aQN: _VBPAESp, _sN: _vBPAES}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS: StaticOperationSchema = ( + 23, + n0, + _DVBPAEe, + 0, + DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_INPUT, + DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVBPAOI, + {_sSI: _cDVBPAOR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_ALLOWED: StaticSchema = ( + 14, + n0, + _VBPAEA, + 0, + (_allo, _na_______), + ((-1, {_sV: _allo}), (-1, {_sV: _na________})), +) + +INTERNET_GATEWAY_BLOCK_MODE: StaticSchema = ( + 14, + n0, + _IGBM, + 0, + (_of, _bb, _bi), + ((-1, {_sV: _of}), (-1, {_sV: _bb_}), (-1, {_sV: _bi_})), +) + +VPC_BLOCK_PUBLIC_ACCESS_STATE: StaticSchema = ( + 14, + n0, + _VBPAS, + 0, + (_ds, _uip, _uc), + ((-1, {_sV: _ds_}), (-1, {_sV: _uip_}), (-1, {_sV: _uc_})), +) + +VPC_BLOCK_PUBLIC_ACCESS_OPTIONS: StaticSchema = ( + 18, + n0, + _VBPAO, + 0, + (_AAIw, _ARw, _St, _IGBM, _Rea, _LUT, _MB, _EAx), + ( + (STRING, {_aQN: _AAIw, _sN: _aAI}), + (STRING, {_aQN: _ARw, _sN: _aRw}), + (VPC_BLOCK_PUBLIC_ACCESS_STATE, {_aQN: _St, _sN: _st}), + (INTERNET_GATEWAY_BLOCK_MODE, {_aQN: _IGBM, _sN: _iGBM}), + (STRING, {_aQN: _Rea, _sN: _rea}), + (MILLISECOND_DATE_TIME, {_aQN: _LUT, _sN: _lUT}), + (MANAGED_BY, {_aQN: _MB, _sN: _mB}), + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_ALLOWED, {_aQN: _EAx, _sN: _eAx}), + ), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVBPAOO, + {_sSI: _cDVBPAORo, _smit: None}, + (_VBPAO,), + ((VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, {_aQN: _VBPAO, _sN: _vBPAO}),), +) + +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _DVBPAO, + 0, + DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT, + DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT, + (), +) + +VPC_CLASSIC_LINK_ID_LIST: StaticSchema = ( + 16, + n0, + _VCLIL, + 0, + (_me,), + ((VPC_ID, {_sN: _VI}),), +) + +DESCRIBE_VPC_CLASSIC_LINK_INPUT: StaticSchema = ( + 18, + n0, + _DVCLI, + {_sSI: _cDVCLR, _sm: None}, + (_DR, _VIp, _Fil), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_CLASSIC_LINK_ID_LIST, {_sN: _VI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +VPC_CLASSIC_LINK: StaticSchema = ( + 18, + n0, + _VCL, + 0, + (_CLE, _Tag, _VI), + ( + (BOOLEAN, {_aQN: _CLE, _sN: _cLE}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +VPC_CLASSIC_LINK_LIST: StaticSchema = ( + 16, + n0, + _VCLL, + 0, + (_me,), + ((VPC_CLASSIC_LINK, {_sN: _i}),), +) + +DESCRIBE_VPC_CLASSIC_LINK_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCLO, + {_sSI: _cDVCLRo, _smit: None}, + (_Vpc,), + ((VPC_CLASSIC_LINK_LIST, {_aQN: _VSpc, _sN: _vSp}),), +) + +DESCRIBE_VPC_CLASSIC_LINK: StaticOperationSchema = ( + 23, + n0, + _DVCL, + 0, + DESCRIBE_VPC_CLASSIC_LINK_INPUT, + DESCRIBE_VPC_CLASSIC_LINK_OUTPUT, + (), +) + +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_MAX_RESULTS: StaticSchema = (7, n0, _DVCLDSMR, 0) + +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_NEXT_TOKEN: StaticSchema = (3, n0, _DVCLDSNT, 0) + +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT: StaticSchema = ( + 18, + n0, + _DVCLDSI, + {_sSI: _cDVCLDSR, _sm: None}, + (_VIp, _MR, _NTex), + ( + (VPC_CLASSIC_LINK_ID_LIST, {_sN: _VIp}), + (DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_MAX_RESULTS, {_aQN: _MR, _sN: _mR}), + (DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +CLASSIC_LINK_DNS_SUPPORT: StaticSchema = ( + 18, + n0, + _CLDS, + 0, + (_CLDSl, _VI), + ((BOOLEAN, {_aQN: _CLDSl, _sN: _cLDS}), (STRING, {_aQN: _VI, _sN: _vI})), +) + +CLASSIC_LINK_DNS_SUPPORT_LIST: StaticSchema = ( + 16, + n0, + _CLDSL, + 0, + (_me,), + ((CLASSIC_LINK_DNS_SUPPORT, {_sN: _i}),), +) + +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCLDSO, + {_sSI: _cDVCLDSRo, _smit: None}, + (_NTex, _Vpc), + ( + (DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (CLASSIC_LINK_DNS_SUPPORT_LIST, {_aQN: _Vpc, _sN: _vpcs}), + ), +) + +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT: StaticOperationSchema = ( + 23, + n0, + _DVCLDS, + 0, + DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT, + DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT, + (), +) + +DESCRIBE_VPC_ENCRYPTION_CONTROLS_MAX_RESULTS: StaticSchema = (7, n0, _DVECMR, 0) + +VPC_ENCRYPTION_CONTROL_ID_LIST: StaticSchema = ( + 16, + n0, + _VECIL, + 0, + (_me,), + ((VPC_ENCRYPTION_CONTROL_ID, {_sN: _i}),), +) + +VPC_ID_STRING_LIST: StaticSchema = (16, n0, _VISLp, 0, (_me,), ((VPC_ID, {_sN: _VI}),)) + +DESCRIBE_VPC_ENCRYPTION_CONTROLS_INPUT: StaticSchema = ( + 18, + n0, + _DVECIe, + {_sSI: _cDVECRom, _sm: None}, + (_DR, _Fil, _VECIp, _VIp, _NTex, _MR), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (VPC_ENCRYPTION_CONTROL_ID_LIST, {_sN: _VECI}), + (VPC_ID_STRING_LIST, {_sN: _VI}), + (STRING, 0), + (DESCRIBE_VPC_ENCRYPTION_CONTROLS_MAX_RESULTS, 0), + ), +) + +VPC_ENCRYPTION_CONTROL_LIST: StaticSchema = ( + 16, + n0, + _VECL, + 0, + (_me,), + ((VPC_ENCRYPTION_CONTROL, {_sN: _i}),), +) + +DESCRIBE_VPC_ENCRYPTION_CONTROLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVECOe, + {_sSI: _cDVECRoma, _smit: None}, + (_VECpc, _NTex), + ( + (VPC_ENCRYPTION_CONTROL_LIST, {_aQN: _VECSp, _sN: _vECS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENCRYPTION_CONTROLS: StaticOperationSchema = ( + 23, + n0, + _DVECe, + 0, + DESCRIBE_VPC_ENCRYPTION_CONTROLS_INPUT, + DESCRIBE_VPC_ENCRYPTION_CONTROLS_OUTPUT, + (), +) + +MAX_RESULTS2: StaticSchema = (7, n0, _MRa, 0) + +DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVEAI, + {_sSI: _cDVEAR, _sm: None}, + (_DR, _VEIp, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_ID_LIST, {_sN: _VEI}), + (FILTER_LIST, {_sN: _Fi}), + (MAX_RESULTS2, 0), + (STRING, 0), + ), +) + +VPC_ENDPOINT_ASSOCIATION: StaticSchema = ( + 18, + n0, + _VEAp, + 0, + (_Id, _VEI, _SNAe, _SNN, _ARA, _FRa, _FCa, _DE, _PDEr, _ARAs, _RCGA, _Tag), + ( + (STRING, {_aQN: _Id, _sN: _id}), + (VPC_ENDPOINT_ID, {_aQN: _VEI, _sN: _vEI}), + (SERVICE_NETWORK_ARN, {_aQN: _SNAe, _sN: _sNAe}), + (STRING, {_aQN: _SNN, _sN: _sNN}), + (STRING, {_aQN: _ARA, _sN: _aRA}), + (STRING, {_aQN: _FRa, _sN: _fRa}), + (STRING, {_aQN: _FCa, _sN: _fCa}), + (DNS_ENTRY, {_aQN: _DE, _sN: _dE}), + (DNS_ENTRY, {_aQN: _PDEr, _sN: _pDEr}), + (STRING, {_aQN: _ARAs, _sN: _aRAs}), + (STRING, {_aQN: _RCGA, _sN: _rCGA}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +VPC_ENDPOINT_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _VEAS, + 0, + (_me,), + ((VPC_ENDPOINT_ASSOCIATION, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVEAO, + {_sSI: _cDVEARo, _smit: None}, + (_VEApc, _NTex), + ( + (VPC_ENDPOINT_ASSOCIATION_SET, {_aQN: _VEAS, _sN: _vEAS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _DVEA, + 0, + DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_INPUT, + DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVECNIe, + {_sSI: _cDVECNRom, _sm: None}, + (_DR, _CNIo, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (CONNECTION_NOTIFICATION_ID, 0), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + ), +) + +CONNECTION_NOTIFICATION_SET: StaticSchema = ( + 16, + n0, + _CNSo, + 0, + (_me,), + ((CONNECTION_NOTIFICATION, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVECNOe, + {_sSI: _cDVECNRoma, _smit: None}, + (_CNSo, _NTex), + ( + (CONNECTION_NOTIFICATION_SET, {_aQN: _CNSo, _sN: _cNSo}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DVECNe, + 0, + DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT, + DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVECIes, + {_sSI: _cDVECRomam, _sm: None}, + (_DR, _Fil, _MR, _NTex), + ((BOOLEAN, 0), (FILTER_LIST, {_sN: _Fi}), (INTEGER, 0), (STRING, 0)), +) + +VPC_ENDPOINT_CONNECTION: StaticSchema = ( + 18, + n0, + _VECpcn, + 0, + ( + _SIe, + _VEI, + _VEO, + _VESpc, + _CTrea, + _DEn, + _NLBAe, + _GLBA, + _IAT, + _VECIpc, + _Tag, + _VER, + _PRa, + ), + ( + (STRING, {_aQN: _SIe, _sN: _sIe}), + (STRING, {_aQN: _VEI, _sN: _vEI}), + (STRING, {_aQN: _VEO, _sN: _vEO}), + (STATE, {_aQN: _VESpc, _sN: _vESpc}), + (MILLISECOND_DATE_TIME, {_aQN: _CTrea, _sN: _cTre}), + (DNS_ENTRY_SET, {_aQN: _DES, _sN: _dES}), + (VALUE_STRING_LIST, {_aQN: _NLBAS, _sN: _nLBAS}), + (VALUE_STRING_LIST, {_aQN: _GLBAS, _sN: _gLBAS}), + (IP_ADDRESS_TYPE, {_aQN: _IAT, _sN: _iAT}), + (STRING, {_aQN: _VECIpc, _sN: _vECIp}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _VER, _sN: _vER}), + (PAYER_RESPONSIBILITY_SET, {_aQN: _PRSay, _sN: _pRSa}), + ), +) + +VPC_ENDPOINT_CONNECTION_SET: StaticSchema = ( + 16, + n0, + _VECSpc, + 0, + (_me,), + ((VPC_ENDPOINT_CONNECTION, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVECOes, + {_sSI: _cDVECRomama, _smit: None}, + (_VECpcnd, _NTex), + ( + (VPC_ENDPOINT_CONNECTION_SET, {_aQN: _VECSpc, _sN: _vECSp}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _DVECes, + 0, + DESCRIBE_VPC_ENDPOINT_CONNECTIONS_INPUT, + DESCRIBE_VPC_ENDPOINT_CONNECTIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DVEIe, + {_sSI: _cDVERom, _sm: None}, + (_DR, _VEIp, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_ID_LIST, {_sN: _VEI}), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + ), +) + +VPC_ENDPOINT_SET: StaticSchema = ( + 16, + n0, + _VESpcn, + 0, + (_me,), + ((VPC_ENDPOINT, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVEOe, + {_sSI: _cDVERoma, _smit: None}, + (_VEp, _NTex), + ( + (VPC_ENDPOINT_SET, {_aQN: _VESpcn, _sN: _vESpcn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DVEe, + 0, + DESCRIBE_VPC_ENDPOINTS_INPUT, + DESCRIBE_VPC_ENDPOINTS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVESCIe, + {_sSI: _cDVESCRom, _sm: None}, + (_DR, _SIer, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID_LIST, {_sN: _SIe}), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + ), +) + +SERVICE_CONFIGURATION_SET: StaticSchema = ( + 16, + n0, + _SCS, + 0, + (_me,), + ((SERVICE_CONFIGURATION, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVESCOe, + {_sSI: _cDVESCRoma, _smit: None}, + (_SCer, _NTex), + ( + (SERVICE_CONFIGURATION_SET, {_aQN: _SCS, _sN: _sCS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _DVESCe, + 0, + DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT, + DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVESPI, + {_sSI: _cDVESPR, _sm: None}, + (_DR, _SIe, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + ), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVESPO, + {_sSI: _cDVESPRo, _smit: None}, + (_APll, _NTex), + ( + (ALLOWED_PRINCIPAL_SET, {_aQN: _APll, _sN: _aPl}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS: StaticOperationSchema = ( + 23, + n0, + _DVESP, + 0, + DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT, + DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT, + (), +) + +DESCRIBE_VPC_ENDPOINT_SERVICES_INPUT: StaticSchema = ( + 18, + n0, + _DVESI, + {_sSI: _cDVESR, _sm: None}, + (_DR, _SNerv, _Fil, _MR, _NTex, _SRer), + ( + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _SN}), + (FILTER_LIST, {_sN: _Fi}), + (INTEGER, 0), + (STRING, 0), + (VALUE_STRING_LIST, {_sN: _SRe}), + ), +) + +PRIVATE_DNS_DETAILS: StaticSchema = ( + 18, + n0, + _PDD, + 0, + (_PDNr,), + ((STRING, {_aQN: _PDNr, _sN: _pDNr}),), +) + +PRIVATE_DNS_DETAILS_SET: StaticSchema = ( + 16, + n0, + _PDDS, + 0, + (_me,), + ((PRIVATE_DNS_DETAILS, {_sN: _i}),), +) + +SERVICE_DETAIL: StaticSchema = ( + 18, + n0, + _SDe, + 0, + ( + _SN, + _SIe, + _STe, + _SRe, + _AZIv, + _AZv, + _Ow, + _BEDN, + _PDNr, + _PDNri, + _VEPS, + _ARc, + _MVE, + _PRay, + _Tag, + _PDNVS, + _SIAT, + ), + ( + (STRING, {_aQN: _SN, _sN: _sNe}), + (STRING, {_aQN: _SIe, _sN: _sIe}), + (SERVICE_TYPE_DETAIL_SET, {_aQN: _STe, _sN: _sTe}), + (STRING, {_aQN: _SRe, _sN: _sRe}), + (VALUE_STRING_LIST, {_aQN: _AZIS, _sN: _aZIS}), + (VALUE_STRING_LIST, {_aQN: _AZS, _sN: _aZS}), + (STRING, {_aQN: _Ow, _sN: _ow}), + (VALUE_STRING_LIST, {_aQN: _BEDNS, _sN: _bEDNS}), + (STRING, {_aQN: _PDNr, _sN: _pDNr}), + (PRIVATE_DNS_DETAILS_SET, {_aQN: _PDNS, _sN: _pDNS}), + (BOOLEAN, {_aQN: _VEPS, _sN: _vEPS}), + (BOOLEAN, {_aQN: _ARc, _sN: _aRc}), + (BOOLEAN, {_aQN: _MVE, _sN: _mVE}), + (PAYER_RESPONSIBILITY, {_aQN: _PRay, _sN: _pRa}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (DNS_NAME_STATE, {_aQN: _PDNVS, _sN: _pDNVS}), + (SUPPORTED_IP_ADDRESS_TYPES, {_aQN: _SIATS, _sN: _sIATS}), + ), +) + +SERVICE_DETAIL_SET: StaticSchema = ( + 16, + n0, + _SDSe, + 0, + (_me,), + ((SERVICE_DETAIL, {_sN: _i}),), +) + +DESCRIBE_VPC_ENDPOINT_SERVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _DVESO, + {_sSI: _cDVESRo, _smit: None}, + (_SNerv, _SDer, _NTex), + ( + (VALUE_STRING_LIST, {_aQN: _SNSer, _sN: _sNSer}), + (SERVICE_DETAIL_SET, {_aQN: _SDSe, _sN: _sDSe}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_ENDPOINT_SERVICES: StaticOperationSchema = ( + 23, + n0, + _DVES, + 0, + DESCRIBE_VPC_ENDPOINT_SERVICES_INPUT, + DESCRIBE_VPC_ENDPOINT_SERVICES_OUTPUT, + (), +) + +DESCRIBE_VPC_PEERING_CONNECTIONS_MAX_RESULTS: StaticSchema = (7, n0, _DVPCMR, 0) + +VPC_PEERING_CONNECTION_ID_LIST: StaticSchema = ( + 16, + n0, + _VPCIL, + 0, + (_me,), + ((VPC_PEERING_CONNECTION_ID, {_sN: _i}),), +) + +DESCRIBE_VPC_PEERING_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVPCIe, + {_sSI: _cDVPCRom, _sm: None}, + (_NTex, _MR, _DR, _VPCIp, _Fil), + ( + (STRING, 0), + (DESCRIBE_VPC_PEERING_CONNECTIONS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_PEERING_CONNECTION_ID_LIST, {_sN: _VPCI}), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +VPC_PEERING_CONNECTION_LIST: StaticSchema = ( + 16, + n0, + _VPCL, + 0, + (_me,), + ((VPC_PEERING_CONNECTION, {_sN: _i}),), +) + +DESCRIBE_VPC_PEERING_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVPCOe, + {_sSI: _cDVPCRoma, _smit: None}, + (_VPCp, _NTex), + ( + (VPC_PEERING_CONNECTION_LIST, {_aQN: _VPCS, _sN: _vPCS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPC_PEERING_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _DVPCe, + 0, + DESCRIBE_VPC_PEERING_CONNECTIONS_INPUT, + DESCRIBE_VPC_PEERING_CONNECTIONS_OUTPUT, + (), +) + +DESCRIBE_VPCS_MAX_RESULTS: StaticSchema = (7, n0, _DVMR, 0) + +DESCRIBE_VPCS_INPUT: StaticSchema = ( + 18, + n0, + _DVIesc, + {_sSI: _cDVRomam, _sm: None}, + (_Fil, _VIp, _NTex, _MR, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (VPC_ID_STRING_LIST, {_sN: _VI}), + (STRING, 0), + (DESCRIBE_VPCS_MAX_RESULTS, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +VPC_LIST: StaticSchema = (16, n0, _VLp, 0, (_me,), ((VPC, {_sN: _i}),)) + +DESCRIBE_VPCS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVOesc, + {_sSI: _cDVRomama, _smit: None}, + (_NTex, _Vpc), + ((STRING, {_aQN: _NTex, _sN: _nT}), (VPC_LIST, {_aQN: _VSpc, _sN: _vSp})), +) + +DESCRIBE_VPCS: StaticOperationSchema = ( + 23, + n0, + _DVesc, + 0, + DESCRIBE_VPCS_INPUT, + DESCRIBE_VPCS_OUTPUT, + (), +) + +GVCD_MAX_RESULTS: StaticSchema = (7, n0, _GVCDMR, 0) + +VPN_CONCENTRATOR_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _VCISL, + 0, + (_me,), + ((VPN_CONCENTRATOR_ID, {_sN: _VCI}),), +) + +DESCRIBE_VPN_CONCENTRATORS_INPUT: StaticSchema = ( + 18, + n0, + _DVCIes, + {_sSI: _cDVCRoma, _sm: None}, + (_VCIpn, _Fil, _MR, _NTex, _DR), + ( + (VPN_CONCENTRATOR_ID_STRING_LIST, {_sN: _VCI}), + (FILTER_LIST, {_sN: _Fi}), + (GVCD_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +VPN_CONCENTRATOR_LIST: StaticSchema = ( + 16, + n0, + _VCLp, + 0, + (_me,), + ((VPN_CONCENTRATOR, {_sN: _i}),), +) + +DESCRIBE_VPN_CONCENTRATORS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCOes, + {_sSI: _cDVCRomam, _smit: None}, + (_VCpn, _NTex), + ( + (VPN_CONCENTRATOR_LIST, {_aQN: _VCS, _sN: _vCS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +DESCRIBE_VPN_CONCENTRATORS: StaticOperationSchema = ( + 23, + n0, + _DVCes, + 0, + DESCRIBE_VPN_CONCENTRATORS_INPUT, + DESCRIBE_VPN_CONCENTRATORS_OUTPUT, + (), +) + +VPN_CONNECTION_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _VCISLp, + 0, + (_me,), + ((VPN_CONNECTION_ID, {_sN: _VCIp}),), +) + +DESCRIBE_VPN_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVCIesc, + {_sSI: _cDVCRomama, _sm: None}, + (_Fil, _VCIpno, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (VPN_CONNECTION_ID_STRING_LIST, {_sN: _VCIp}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +VPN_CONNECTION_LIST: StaticSchema = ( + 16, + n0, + _VCLpn, + 0, + (_me,), + ((VPN_CONNECTION, {_sN: _i}),), +) + +DESCRIBE_VPN_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCOesc, + {_sSI: _cDVCRomamaz, _smit: None}, + (_VCpno,), + ((VPN_CONNECTION_LIST, {_aQN: _VCSp, _sN: _vCSp}),), +) + +DESCRIBE_VPN_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _DVCesc, + 0, + DESCRIBE_VPN_CONNECTIONS_INPUT, + DESCRIBE_VPN_CONNECTIONS_OUTPUT, + (), +) + +VPN_GATEWAY_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _VGISL, + 0, + (_me,), + ((VPN_GATEWAY_ID, {_sN: _VGI}),), +) + +DESCRIBE_VPN_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _DVGIe, + {_sSI: _cDVGRo, _sm: None}, + (_Fil, _VGIp, _DR), + ( + (FILTER_LIST, {_sN: _Fi}), + (VPN_GATEWAY_ID_STRING_LIST, {_sN: _VGI}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +VPN_GATEWAY_LIST: StaticSchema = (16, n0, _VGL, 0, (_me,), ((VPN_GATEWAY, {_sN: _i}),)) + +DESCRIBE_VPN_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVGOe, + {_sSI: _cDVGRom, _smit: None}, + (_VGp,), + ((VPN_GATEWAY_LIST, {_aQN: _VGS, _sN: _vGS}),), +) + +DESCRIBE_VPN_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _DVGe, + 0, + DESCRIBE_VPN_GATEWAYS_INPUT, + DESCRIBE_VPN_GATEWAYS_OUTPUT, + (), +) + +DETACH_CLASSIC_LINK_VPC_INPUT: StaticSchema = ( + 18, + n0, + _DCLVI, + {_sSI: _cDCLVR, _sm: None}, + (_DR, _II, _VI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + ), +) + +DETACH_CLASSIC_LINK_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _DCLVO, + {_sSI: _cDCLVRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DETACH_CLASSIC_LINK_VPC: StaticOperationSchema = ( + 23, + n0, + _DCLV, + 0, + DETACH_CLASSIC_LINK_VPC_INPUT, + DETACH_CLASSIC_LINK_VPC_OUTPUT, + (), +) + +DETACH_IMAGE_WATERMARK_INPUT: StaticSchema = ( + 18, + n0, + _DIWI, + {_sSI: _cDIWR, _sm: None}, + (_IIm, _WK, _DR), + ((IMAGE_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +DETACH_IMAGE_WATERMARK_OUTPUT: StaticSchema = ( + 18, + n0, + _DIWO, + {_sSI: _cDIWRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DETACH_IMAGE_WATERMARK: StaticOperationSchema = ( + 23, + n0, + _DIW, + 0, + DETACH_IMAGE_WATERMARK_INPUT, + DETACH_IMAGE_WATERMARK_OUTPUT, + (), +) + +DETACH_INTERNET_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DIGIet, + {_sSI: _cDIGRoma, _sm: None}, + (_DR, _IGI, _VI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INTERNET_GATEWAY_ID, {_aQN: _IGI, _sN: _iGI, _smi: None}), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + ), +) + +DETACH_INTERNET_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DIGOet, + {_sSI: _sU, _smit: None}, +) + +DETACH_INTERNET_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DIGet, + 0, + DETACH_INTERNET_GATEWAY_INPUT, + DETACH_INTERNET_GATEWAY_OUTPUT, + (), +) + +NETWORK_INTERFACE_ATTACHMENT_ID: StaticSchema = (3, n0, _NIAIet, 0) + +DETACH_NETWORK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _DNIIet, + {_sSI: _cDNIRoma, _sm: None}, + (_DR, _AIt, _Fo), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ATTACHMENT_ID, {_aQN: _AIt, _sN: _aIt, _smi: None}), + (BOOLEAN, {_aQN: _Fo, _sN: _for}), + ), +) + +DETACH_NETWORK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _DNIOet, + {_sSI: _sU, _smit: None}, +) + +DETACH_NETWORK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _DNIet, + 0, + DETACH_NETWORK_INTERFACE_INPUT, + DETACH_NETWORK_INTERFACE_OUTPUT, + (), +) + +DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _DVATPIet, + {_sSI: _cDVATPRomam, _sm: None}, + (_VAII, _VATPI, _CTl, _DR), + ( + (VERIFIED_ACCESS_INSTANCE_ID, 1), + (VERIFIED_ACCESS_TRUST_PROVIDER_ID, 1), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _DVATPOet, + {_sSI: _cDVATPRomama, _smit: None}, + (_VATPe, _VAI), + ( + (VERIFIED_ACCESS_TRUST_PROVIDER, {_aQN: _VATPe, _sN: _vATP}), + (VERIFIED_ACCESS_INSTANCE, {_aQN: _VAI, _sN: _vAI}), + ), +) + +DETACH_VERIFIED_ACCESS_TRUST_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _DVATPet, + 0, + DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT, + DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT, + (), +) + +INSTANCE_ID_FOR_RESOLVER: StaticSchema = (3, n0, _IIFR, 0) + +VOLUME_ID_WITH_RESOLVER: StaticSchema = (3, n0, _VIWR, 0) + +DETACH_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _DVIet, + {_sSI: _cDVRomamaz, _sm: None}, + (_Dev, _Fo, _II, _VIo, _DR), + ( + (STRING, 0), + (BOOLEAN, 0), + (INSTANCE_ID_FOR_RESOLVER, 0), + (VOLUME_ID_WITH_RESOLVER, 1), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +DETACH_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _DVOet, + {_sSI: _cVA, _smit: None}, + (_DOT, _ARs, _IOS, _ECI, _VIo, _II, _Dev, _St, _ATtt), + ( + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + (STRING, {_aQN: _ARs, _sN: _aRs}), + (STRING, {_aQN: _IOS, _sN: _iOS}), + (INTEGER, {_aQN: _ECI, _sN: _eCI}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (STRING, {_aQN: _II, _sN: _iI}), + (STRING, {_aQN: _Dev, _sN: _dev}), + (VOLUME_ATTACHMENT_STATE, {_aQN: _Sta, _sN: _sta}), + (DATE_TIME, {_aQN: _ATtt, _sN: _aTtt}), + ), +) + +DETACH_VOLUME: StaticOperationSchema = ( + 23, + n0, + _DVet, + 0, + DETACH_VOLUME_INPUT, + DETACH_VOLUME_OUTPUT, + (), +) + +DETACH_VPN_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DVGIet, + {_sSI: _cDVGRoma, _sm: None}, + (_VI, _VGI, _DR), + ((VPC_ID, 1), (VPN_GATEWAY_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +DETACH_VPN_GATEWAY_OUTPUT: StaticSchema = (18, n0, _DVGOet, {_sSI: _sU, _smit: None}) + +DETACH_VPN_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DVGet, + 0, + DETACH_VPN_GATEWAY_INPUT, + DETACH_VPN_GATEWAY_OUTPUT, + (), +) + +DISABLE_ADDRESS_TRANSFER_INPUT: StaticSchema = ( + 18, + n0, + _DATIi, + {_sSI: _cDATRom, _sm: None}, + (_AI, _DR), + ((ALLOCATION_ID, 1), (BOOLEAN, 0)), +) + +DISABLE_ADDRESS_TRANSFER_OUTPUT: StaticSchema = ( + 18, + n0, + _DATOi, + {_sSI: _cDATRoma, _smit: None}, + (_ATd,), + ((ADDRESS_TRANSFER, {_aQN: _ATd, _sN: _aT}),), +) + +DISABLE_ADDRESS_TRANSFER: StaticOperationSchema = ( + 23, + n0, + _DATi, + 0, + DISABLE_ADDRESS_TRANSFER_INPUT, + DISABLE_ADDRESS_TRANSFER_OUTPUT, + (), +) + +DISABLE_ALLOWED_IMAGES_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _DAISI, + {_sSI: _cDAISR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +DISABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DAISO, + {_sSI: _cDAISRo, _smit: None}, + (_AISS,), + ((ALLOWED_IMAGES_SETTINGS_DISABLED_STATE, {_aQN: _AISS, _sN: _aISS}),), +) + +DISABLE_ALLOWED_IMAGES_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _DAIS, + 0, + DISABLE_ALLOWED_IMAGES_SETTINGS_INPUT, + DISABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT, + (), +) + +DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT: StaticSchema = ( + 18, + n0, + _DASCSI, + {_sSI: _cDASCSR, _sm: None}, + (_IIn, _CTl, _DR), + ((INSTANCE_ID_LIST, {_sN: _II}), (STRING, 2), (BOOLEAN, 0)), +) + +SUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _SSRO, + 0, + (_II, _SAupp, _RAesu), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (MILLISECOND_DATE_TIME, {_aQN: _SAupp, _sN: _sAup}), + (MILLISECOND_DATE_TIME, {_aQN: _RAesu, _sN: _rAes}), + ), +) + +SUCCESSFUL_SUPPRESSION_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _SSRS, + 0, + (_me,), + ((SUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT, {_sN: _i}),), +) + +UNSUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT: StaticSchema = ( + 18, + n0, + _USRO, + 0, + (_II, _SAupp, _RAesu, _Rea), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (MILLISECOND_DATE_TIME, {_aQN: _SAupp, _sN: _sAup}), + (MILLISECOND_DATE_TIME, {_aQN: _RAesu, _sN: _rAes}), + (STRING, {_aQN: _Rea, _sN: _rea}), + ), +) + +UNSUCCESSFUL_SUPPRESSION_RESPONSE_SET: StaticSchema = ( + 16, + n0, + _USRS, + 0, + (_me,), + ((UNSUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT, {_sN: _i}),), +) + +DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _DASCSO, + {_sSI: _cDASCSRo, _smit: None}, + (_SR, _UR), + ( + (SUCCESSFUL_SUPPRESSION_RESPONSE_SET, {_aQN: _SRS, _sN: _sRS}), + (UNSUCCESSFUL_SUPPRESSION_RESPONSE_SET, {_aQN: _URS, _sN: _uRS}), + ), +) + +DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION: StaticOperationSchema = ( + 23, + n0, + _DASCS, + 0, + DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT, + DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT, + (), +) + +DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _DANPMSIi, + {_sSI: _cDANPMSRom, _sm: None}, + (_Sou, _De, _Met, _Stati, _DR), + ((STRING, 0), (STRING, 0), (METRIC_TYPE, 0), (STATISTIC_TYPE, 0), (BOOLEAN, 0)), +) + +DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DANPMSOi, + {_sSI: _cDANPMSRoma, _smit: None}, + (_Ou,), + ((BOOLEAN, {_aQN: _Ou, _sN: _outp}),), +) + +DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _DANPMSi, + 0, + DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT, + DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT, + (), +) + +DISABLE_CAPACITY_MANAGER_INPUT: StaticSchema = ( + 18, + n0, + _DCMI, + {_sSI: _cDCMR, _sm: None}, + (_DR, _CTl), + ((BOOLEAN, 0), (STRING, 2)), +) + +CAPACITY_MANAGER_STATUS: StaticSchema = ( + 14, + n0, + _CMSa, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +DISABLE_CAPACITY_MANAGER_OUTPUT: StaticSchema = ( + 18, + n0, + _DCMO, + {_sSI: _cDCMRo, _smit: None}, + (_CMSa, _OArg), + ( + (CAPACITY_MANAGER_STATUS, {_aQN: _CMSa, _sN: _cMSa}), + (BOOLEAN, {_aQN: _OArg, _sN: _oArg}), + ), +) + +DISABLE_CAPACITY_MANAGER: StaticOperationSchema = ( + 23, + n0, + _DCM, + 0, + DISABLE_CAPACITY_MANAGER_INPUT, + DISABLE_CAPACITY_MANAGER_OUTPUT, + (), +) + +DISABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT: StaticSchema = ( + 18, + n0, + _DEEBDI, + {_sSI: _cDEEBDR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +DISABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT: StaticSchema = ( + 18, + n0, + _DEEBDO, + {_sSI: _cDEEBDRo, _smit: None}, + (_EEBD,), + ((BOOLEAN, {_aQN: _EEBD, _sN: _eEBD}),), +) + +DISABLE_EBS_ENCRYPTION_BY_DEFAULT: StaticOperationSchema = ( + 23, + n0, + _DEEBD, + 0, + DISABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT, + DISABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT, + (), +) + +DISABLE_FAST_LAUNCH_INPUT: StaticSchema = ( + 18, + n0, + _DFLIi, + {_sSI: _cDFLRomam, _sm: None}, + (_IIm, _Fo, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +DISABLE_FAST_LAUNCH_OUTPUT: StaticSchema = ( + 18, + n0, + _DFLOi, + {_sSI: _cDFLRomama, _smit: None}, + (_IIm, _RT, _SCn, _LT, _MPLa, _OIw, _St, _STR, _STT), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (FAST_LAUNCH_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (FAST_LAUNCH_SNAPSHOT_CONFIGURATION_RESPONSE, {_aQN: _SCn, _sN: _sCn}), + (FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_RESPONSE, {_aQN: _LT, _sN: _lT}), + (INTEGER, {_aQN: _MPLa, _sN: _mPL}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (FAST_LAUNCH_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (MILLISECOND_DATE_TIME, {_aQN: _STT, _sN: _sTT}), + ), +) + +DISABLE_FAST_LAUNCH: StaticOperationSchema = ( + 23, + n0, + _DFLi, + 0, + DISABLE_FAST_LAUNCH_INPUT, + DISABLE_FAST_LAUNCH_OUTPUT, + (), +) + +AVAILABILITY_ZONE_ID_STRING_LIST: StaticSchema = ( + 16, + n0, + _AZISL, + 0, + (_me,), + ((STRING, {_sN: _AZI}),), +) + +AVAILABILITY_ZONE_STRING_LIST: StaticSchema = ( + 16, + n0, + _AZSL, + 0, + (_me,), + ((STRING, {_sN: _AZ}),), +) + +DISABLE_FAST_SNAPSHOT_RESTORES_INPUT: StaticSchema = ( + 18, + n0, + _DFSRIi, + {_sSI: _cDFSRRom, _sm: None}, + (_AZv, _AZIv, _SSIo, _DR), + ( + (AVAILABILITY_ZONE_STRING_LIST, {_sN: _AZ}), + (AVAILABILITY_ZONE_ID_STRING_LIST, {_sN: _AZI}), + (SNAPSHOT_ID_STRING_LIST, {_sN: _SSI, _smi: None}), + (BOOLEAN, 0), + ), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _DFSRSIi, + 0, + (_SIn, _AZ, _AZI, _St, _STR, _OIw, _OAw, _ETna, _OT, _ETnab, _DTi, _DTis), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (FAST_SNAPSHOT_RESTORE_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _OAw, _sN: _oAw}), + (MILLISECOND_DATE_TIME, {_aQN: _ETna, _sN: _eTna}), + (MILLISECOND_DATE_TIME, {_aQN: _OT, _sN: _oT}), + (MILLISECOND_DATE_TIME, {_aQN: _ETnab, _sN: _eTnab}), + (MILLISECOND_DATE_TIME, {_aQN: _DTi, _sN: _dTi}), + (MILLISECOND_DATE_TIME, {_aQN: _DTis, _sN: _dTis}), + ), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _DFSRSSi, + 0, + (_me,), + ((DISABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM, {_sN: _i}),), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR: StaticSchema = ( + 18, + n0, + _DFSRSE, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _DFSRSEI, + 0, + (_AZ, _AZI, _E), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR, {_aQN: _E, _sN: _er}), + ), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_SET: StaticSchema = ( + 16, + n0, + _DFSRSES, + 0, + (_me,), + ((DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM, {_sN: _i}),), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _DFSREI, + 0, + (_SIn, _FSRSE), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_SET, {_aQN: _FSRSES, _sN: _fSRSES}), + ), +) + +DISABLE_FAST_SNAPSHOT_RESTORE_ERROR_SET: StaticSchema = ( + 16, + n0, + _DFSRES, + 0, + (_me,), + ((DISABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM, {_sN: _i}),), +) + +DISABLE_FAST_SNAPSHOT_RESTORES_OUTPUT: StaticSchema = ( + 18, + n0, + _DFSROi, + {_sSI: _cDFSRRoma, _smit: None}, + (_Suc, _Un), + ( + (DISABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET, {_aQN: _Suc, _sN: _succ}), + (DISABLE_FAST_SNAPSHOT_RESTORE_ERROR_SET, {_aQN: _Un, _sN: _un}), + ), +) + +DISABLE_FAST_SNAPSHOT_RESTORES: StaticOperationSchema = ( + 23, + n0, + _DFSRi, + 0, + DISABLE_FAST_SNAPSHOT_RESTORES_INPUT, + DISABLE_FAST_SNAPSHOT_RESTORES_OUTPUT, + (), +) + +DISABLE_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _DIIi, + {_sSI: _cDIRomamazonaw, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +DISABLE_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOi, + {_sSI: _cDIRomamazonaws, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISABLE_IMAGE: StaticOperationSchema = ( + 23, + n0, + _DIisa, + 0, + DISABLE_IMAGE_INPUT, + DISABLE_IMAGE_OUTPUT, + (), +) + +DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _DIBPAI, + {_sSI: _cDIBPAR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +IMAGE_BLOCK_PUBLIC_ACCESS_DISABLED_STATE: StaticSchema = ( + 14, + n0, + _IBPADS, + 0, + (_unb,), + ((-1, {_sV: _unb}),), +) + +DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIBPAO, + {_sSI: _cDIBPARo, _smit: None}, + (_IBPAS,), + ((IMAGE_BLOCK_PUBLIC_ACCESS_DISABLED_STATE, {_aQN: _IBPAS, _sN: _iBPAS}),), +) + +DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS: StaticOperationSchema = ( + 23, + n0, + _DIBPA, + 0, + DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT, + DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT, + (), +) + +DISABLE_IMAGE_DEPRECATION_INPUT: StaticSchema = ( + 18, + n0, + _DIDI, + {_sSI: _cDIDR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +DISABLE_IMAGE_DEPRECATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DIDO, + {_sSI: _cDIDRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISABLE_IMAGE_DEPRECATION: StaticOperationSchema = ( + 23, + n0, + _DIDi, + 0, + DISABLE_IMAGE_DEPRECATION_INPUT, + DISABLE_IMAGE_DEPRECATION_OUTPUT, + (), +) + +DISABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT: StaticSchema = ( + 18, + n0, + _DIDPI, + {_sSI: _cDIDPR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +DISABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DIDPO, + {_sSI: _cDIDPRo, _smit: None}, + (_R,), + ((STRING, {_aQN: _R, _sN: _r}),), +) + +DISABLE_IMAGE_DEREGISTRATION_PROTECTION: StaticOperationSchema = ( + 23, + n0, + _DIDP, + 0, + DISABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT, + DISABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT, + (), +) + +INSTANCE_ID_UPDATE_STRING_LIST: StaticSchema = ( + 16, + n0, + _IIUSL, + 0, + (_me,), + ((INSTANCE_ID, {_sN: _i}),), +) + +DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DISHSDI, + {_sSI: _cDISHSDR, _sm: None}, + (_IIn, _DR), + ((INSTANCE_ID_UPDATE_STRING_LIST, {_sN: _II, _smi: None}), (BOOLEAN, 0)), +) + +DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DISHSDO, + {_sSI: _cDISHSDRo, _smit: None}, + (_Ins,), + ((REGISTERED_INSTANCE_LIST, {_aQN: _ISns, _sN: _iSn}),), +) + +DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS: StaticOperationSchema = ( + 23, + n0, + _DISHSD, + 0, + DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT, + DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT, + (), +) + +DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT: StaticSchema = ( + 18, + n0, + _DIOAAI, + {_sSI: _cDIOAAR, _sm: None}, + (_DR, _DAAIel), + ((BOOLEAN, 0), (STRING, 1)), +) + +DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOAAO, + {_sSI: _cDIOAARo, _smit: None}, + (_Succ,), + ((BOOLEAN, {_aQN: _Succ, _sN: _succe}),), +) + +DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT: StaticOperationSchema = ( + 23, + n0, + _DIOAA, + 0, + DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT, + DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT, + (), +) + +DISABLE_IPAM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DIPIi, + {_sSI: _cDIPRomamazonaw, _sm: None}, + (_DR, _IPIp, _OTI), + ((BOOLEAN, 0), (IPAM_POLICY_ID, 1), (STRING, 0)), +) + +DISABLE_IPAM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DIPOi, + {_sSI: _cDIPRomamazonaws, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISABLE_IPAM_POLICY: StaticOperationSchema = ( + 23, + n0, + _DIPi, + 0, + DISABLE_IPAM_POLICY_INPUT, + DISABLE_IPAM_POLICY_OUTPUT, + (), +) + +DISABLE_ROUTE_SERVER_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _DRSPIi, + {_sSI: _cDRSPRomam, _sm: None}, + (_RSI, _RTIo, _DR), + ((ROUTE_SERVER_ID, 1), (ROUTE_TABLE_ID, 1), (BOOLEAN, 0)), +) + +ROUTE_SERVER_PROPAGATION_STATE: StaticSchema = ( + 14, + n0, + _RSPSou, + 0, + (_PENDING, _AVAILABLE, _DELETING), + ((-1, {_sV: _p}), (-1, {_sV: _av}), (-1, {_sV: _de})), +) + +ROUTE_SERVER_PROPAGATION: StaticSchema = ( + 18, + n0, + _RSPou, + 0, + (_RSI, _RTIo, _St), + ( + (ROUTE_SERVER_ID, {_aQN: _RSI, _sN: _rSI}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo}), + (ROUTE_SERVER_PROPAGATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +DISABLE_ROUTE_SERVER_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSPOi, + {_sSI: _cDRSPRomama, _smit: None}, + (_RSPou,), + ((ROUTE_SERVER_PROPAGATION, {_aQN: _RSPou, _sN: _rSPo}),), +) + +DISABLE_ROUTE_SERVER_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _DRSPi, + 0, + DISABLE_ROUTE_SERVER_PROPAGATION_INPUT, + DISABLE_ROUTE_SERVER_PROPAGATION_OUTPUT, + (), +) + +DISABLE_SERIAL_CONSOLE_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _DSCAI, + {_sSI: _cDSCAR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +DISABLE_SERIAL_CONSOLE_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCAO, + {_sSI: _cDSCARo, _smit: None}, + (_SCAE,), + ((BOOLEAN, {_aQN: _SCAE, _sN: _sCAE}),), +) + +DISABLE_SERIAL_CONSOLE_ACCESS: StaticOperationSchema = ( + 23, + n0, + _DSCA, + 0, + DISABLE_SERIAL_CONSOLE_ACCESS_INPUT, + DISABLE_SERIAL_CONSOLE_ACCESS_OUTPUT, + (), +) + +DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _DSBPAI, + {_sSI: _cDSBPAR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE: StaticSchema = ( + 14, + n0, + _SBPAS, + 0, + (_bas, _bns, _unb), + ((-1, {_sV: _bas_}), (-1, {_sV: _bns_}), (-1, {_sV: _unb})), +) + +DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSBPAO, + {_sSI: _cDSBPARo, _smit: None}, + (_St,), + ((SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, {_aQN: _St, _sN: _st}),), +) + +DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS: StaticOperationSchema = ( + 23, + n0, + _DSBPA, + 0, + DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT, + DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT, + (), +) + +DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTPI, + {_sSI: _cDTGRTPR, _sm: None}, + (_TGRTI, _TGAI, _DR, _TGRTAI), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, 0), + ), +) + +TRANSIT_GATEWAY_PROPAGATION_STATE: StaticSchema = ( + 14, + n0, + _TGPS, + 0, + (_en, _ena, _disab, _d), + ((-1, {_sV: _en}), (-1, {_sV: _ena}), (-1, {_sV: _disab}), (-1, {_sV: _d})), +) + +TRANSIT_GATEWAY_PROPAGATION: StaticSchema = ( + 18, + n0, + _TGP, + 0, + (_TGAI, _RIe, _RT, _TGRTI, _St, _TGRTAI), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _TGRTI, _sN: _tGRTI}), + (TRANSIT_GATEWAY_PROPAGATION_STATE, {_aQN: _St, _sN: _st}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, {_aQN: _TGRTAI, _sN: _tGRTAI}), + ), +) + +DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTPO, + {_sSI: _cDTGRTPRo, _smit: None}, + (_Prop,), + ((TRANSIT_GATEWAY_PROPAGATION, {_aQN: _Prop, _sN: _propa}),), +) + +DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _DTGRTP, + 0, + DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT, + DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT, + (), +) + +DISABLE_VGW_ROUTE_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _DVRPI, + {_sSI: _cDVRPR, _sm: None}, + (_GI, _RTIo, _DR), + ((VPN_GATEWAY_ID, 1), (ROUTE_TABLE_ID, 1), (BOOLEAN, 0)), +) + +DISABLE_VGW_ROUTE_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DVRPO, + {_sSI: _sU, _smit: None}, +) + +DISABLE_VGW_ROUTE_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _DVRP, + 0, + DISABLE_VGW_ROUTE_PROPAGATION_INPUT, + DISABLE_VGW_ROUTE_PROPAGATION_OUTPUT, + (), +) + +DISABLE_VPC_CLASSIC_LINK_INPUT: StaticSchema = ( + 18, + n0, + _DVCLIi, + {_sSI: _cDVCLRom, _sm: None}, + (_DR, _VI), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}), (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None})), +) + +DISABLE_VPC_CLASSIC_LINK_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCLOi, + {_sSI: _cDVCLRoma, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISABLE_VPC_CLASSIC_LINK: StaticOperationSchema = ( + 23, + n0, + _DVCLi, + 0, + DISABLE_VPC_CLASSIC_LINK_INPUT, + DISABLE_VPC_CLASSIC_LINK_OUTPUT, + (), +) + +DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT: StaticSchema = ( + 18, + n0, + _DVCLDSIi, + {_sSI: _cDVCLDSRom, _sm: None}, + (_VI,), + ((VPC_ID, {_sN: _VI}),), +) + +DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCLDSOi, + {_sSI: _cDVCLDSRoma, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT: StaticOperationSchema = ( + 23, + n0, + _DVCLDSi, + 0, + DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT, + DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT, + (), +) + +ELASTIC_IP_ASSOCIATION_ID: StaticSchema = (3, n0, _EIAI, 0) + +DISASSOCIATE_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _DAIi, + {_sSI: _cDARom, _sm: None}, + (_AIs, _PI, _DR), + ( + (ELASTIC_IP_ASSOCIATION_ID, 0), + (EIP_ALLOCATION_PUBLIC_IP, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +DISASSOCIATE_ADDRESS_OUTPUT: StaticSchema = (18, n0, _DAOi, {_sSI: _sU, _smit: None}) + +DISASSOCIATE_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _DAi, + 0, + DISASSOCIATE_ADDRESS_INPUT, + DISASSOCIATE_ADDRESS_OUTPUT, + (), +) + +DISASSOCIATE_APPLICATION_STATUS_CHECK_INPUT: StaticSchema = ( + 18, + n0, + _DASCIi, + {_sSI: _cDASCRomam, _sm: None}, + (_ASCI, _TTA, _IIn, _CTl, _DR), + ( + (APPLICATION_STATUS_CHECK_ID, 1), + (CUSTOM_KEY_VALUE_PAIR_REQUEST_SET, {_sN: _TTAa}), + (INSTANCE_ID_LIST, {_sN: _II}), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +DISASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT: StaticSchema = ( + 18, + n0, + _DASCOi, + {_sSI: _cDASCRomama, _smit: None}, + (_SR, _UR), + ( + (SUCCESSFUL_ASSOCIATION_RESPONSE_SET, {_aQN: _SRS, _sN: _sRS}), + (UNSUCCESSFUL_ASSOCIATION_RESPONSE_SET, {_aQN: _URS, _sN: _uRS}), + ), +) + +DISASSOCIATE_APPLICATION_STATUS_CHECK: StaticOperationSchema = ( + 23, + n0, + _DASCi, + 0, + DISASSOCIATE_APPLICATION_STATUS_CHECK_INPUT, + DISASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT, + (), +) + +DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT: StaticSchema = ( + 18, + n0, + _DCRBOI, + {_sSI: _cDCRBOR, _sm: None}, + (_DR, _CRI, _URBOI), + ((BOOLEAN, 0), (CAPACITY_RESERVATION_ID, 1), (ACCOUNT_ID, 1)), +) + +DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT: StaticSchema = ( + 18, + n0, + _DCRBOO, + {_sSI: _cDCRBORo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER: StaticOperationSchema = ( + 23, + n0, + _DCRBO, + 0, + DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT, + DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT, + (), +) + +DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT: StaticSchema = ( + 18, + n0, + _DCVTNIi, + {_sSI: _cDCVTNRom, _sm: None}, + (_CVEI, _AIs, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT: StaticSchema = ( + 18, + n0, + _DCVTNOi, + {_sSI: _cDCVTNRoma, _smit: None}, + (_AIs, _Sta), + ((STRING, {_aQN: _AIs, _sN: _aIs}), (ASSOCIATION_STATUS, {_aQN: _Sta, _sN: _sta})), +) + +DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK: StaticOperationSchema = ( + 23, + n0, + _DCVTNi, + 0, + DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT, + DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT, + (), +) + +DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _DECIRI, + {_sSI: _cDECIRR, _sm: None}, + (_CAe, _RAo, _DR), + ((CERTIFICATE_ID, 1), (ROLE_ID, 1), (BOOLEAN, 0)), +) + +DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DECIRO, + {_sSI: _cDECIRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE: StaticOperationSchema = ( + 23, + n0, + _DECIR, + 0, + DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT, + DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT, + (), +) + +DISASSOCIATE_IAM_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _DIIPI, + {_sSI: _cDIIPR, _sm: None}, + (_AIs,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION_ID, 1),), +) + +DISASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _DIIPO, + {_sSI: _cDIIPRo, _smit: None}, + (_IIPA,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION, {_aQN: _IIPA, _sN: _iIPA}),), +) + +DISASSOCIATE_IAM_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _DIIP, + 0, + DISASSOCIATE_IAM_INSTANCE_PROFILE_INPUT, + DISASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT, + (), +) + +INSTANCE_EVENT_WINDOW_DISASSOCIATION_REQUEST: StaticSchema = ( + 18, + n0, + _IEWDR, + 0, + (_IIn, _ITn, _DHIe), + ( + (INSTANCE_ID_LIST, {_sN: _II}), + (TAG_LIST, {_sN: _ITns}), + (DEDICATED_HOST_ID_LIST, {_sN: _DHI}), + ), +) + +DISASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT: StaticSchema = ( + 18, + n0, + _DIEWIi, + {_sSI: _cDIEWRomam, _sm: None}, + (_DR, _IEWI, _ATss), + ( + (BOOLEAN, 0), + (INSTANCE_EVENT_WINDOW_ID, 1), + (INSTANCE_EVENT_WINDOW_DISASSOCIATION_REQUEST, 1), + ), +) + +DISASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT: StaticSchema = ( + 18, + n0, + _DIEWOi, + {_sSI: _cDIEWRomama, _smit: None}, + (_IEW,), + ((INSTANCE_EVENT_WINDOW, {_aQN: _IEW, _sN: _iEW}),), +) + +DISASSOCIATE_INSTANCE_EVENT_WINDOW: StaticOperationSchema = ( + 23, + n0, + _DIEWi, + 0, + DISASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT, + DISASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT, + (), +) + +DISASSOCIATE_IPAM_BYOASN_INPUT: StaticSchema = ( + 18, + n0, + _DIBIi, + {_sSI: _cDIBRomam, _sm: None}, + (_DR, _Asn, _Ci), + ((BOOLEAN, 0), (STRING, 1), (STRING, 1)), +) + +DISASSOCIATE_IPAM_BYOASN_OUTPUT: StaticSchema = ( + 18, + n0, + _DIBOi, + {_sSI: _cDIBRomama, _smit: None}, + (_AAs,), + ((ASN_ASSOCIATION, {_aQN: _AAs, _sN: _aA}),), +) + +DISASSOCIATE_IPAM_BYOASN: StaticOperationSchema = ( + 23, + n0, + _DIBi, + 0, + DISASSOCIATE_IPAM_BYOASN_INPUT, + DISASSOCIATE_IPAM_BYOASN_OUTPUT, + (), +) + +DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT: StaticSchema = ( + 18, + n0, + _DIRDIi, + {_sSI: _cDIRDRomam, _sm: None}, + (_DR, _IRDAI), + ((BOOLEAN, 0), (IPAM_RESOURCE_DISCOVERY_ASSOCIATION_ID, 1)), +) + +DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT: StaticSchema = ( + 18, + n0, + _DIRDOi, + {_sSI: _cDIRDRomama, _smit: None}, + (_IRDA,), + ((IPAM_RESOURCE_DISCOVERY_ASSOCIATION, {_aQN: _IRDA, _sN: _iRDA}),), +) + +DISASSOCIATE_IPAM_RESOURCE_DISCOVERY: StaticOperationSchema = ( + 23, + n0, + _DIRDi, + 0, + DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT, + DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT, + (), +) + +EIP_ASSOCIATION_ID_LIST: StaticSchema = ( + 16, + n0, + _EAIL, + 0, + (_me,), + ((ELASTIC_IP_ASSOCIATION_ID, {_sN: _i}),), +) + +DRAIN_SECONDS: StaticSchema = (7, n0, _DSr, 0) + +DISASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _DNGAI, + {_sSI: _cDNGAR, _sm: None}, + (_NGI, _AIsso, _MDDS, _DR), + ( + (NAT_GATEWAY_ID, 1), + (EIP_ASSOCIATION_ID_LIST, {_sN: _AIs, _smi: None}), + (DRAIN_SECONDS, 0), + (BOOLEAN, 0), + ), +) + +DISASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _DNGAO, + {_sSI: _cDNGARo, _smit: None}, + (_NGI, _NGAa), + ( + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + (NAT_GATEWAY_ADDRESS_LIST, {_aQN: _NGASa, _sN: _nGAS}), + ), +) + +DISASSOCIATE_NAT_GATEWAY_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _DNGA, + 0, + DISASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT, + DISASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT, + (), +) + +DISASSOCIATE_ROUTE_SERVER_INPUT: StaticSchema = ( + 18, + n0, + _DRSIi, + {_sSI: _cDRSRomam, _sm: None}, + (_RSI, _VI, _DR), + ((ROUTE_SERVER_ID, 1), (VPC_ID, 1), (BOOLEAN, 0)), +) + +DISASSOCIATE_ROUTE_SERVER_OUTPUT: StaticSchema = ( + 18, + n0, + _DRSOi, + {_sSI: _cDRSRomama, _smit: None}, + (_RSA,), + ((ROUTE_SERVER_ASSOCIATION, {_aQN: _RSA, _sN: _rSA}),), +) + +DISASSOCIATE_ROUTE_SERVER: StaticOperationSchema = ( + 23, + n0, + _DRSi, + 0, + DISASSOCIATE_ROUTE_SERVER_INPUT, + DISASSOCIATE_ROUTE_SERVER_OUTPUT, + (), +) + +ROUTE_TABLE_ASSOCIATION_ID: StaticSchema = (3, n0, _RTAI, 0) + +DISASSOCIATE_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DRTIi, + {_sSI: _cDRTRoma, _sm: None}, + (_DR, _AIs), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs, _smi: None}), + ), +) + +DISASSOCIATE_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DRTOi, + {_sSI: _sU, _smit: None}, +) + +DISASSOCIATE_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _DRTi, + 0, + DISASSOCIATE_ROUTE_TABLE_INPUT, + DISASSOCIATE_ROUTE_TABLE_OUTPUT, + (), +) + +DISASSOCIATE_SECURITY_GROUP_VPC_SECURITY_GROUP_ID: StaticSchema = (3, n0, _DSGVSGI, 0) + +DISASSOCIATE_SECURITY_GROUP_VPC_INPUT: StaticSchema = ( + 18, + n0, + _DSGVI, + {_sSI: _cDSGVR, _sm: None}, + (_GIr, _VI, _DR), + ((DISASSOCIATE_SECURITY_GROUP_VPC_SECURITY_GROUP_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +DISASSOCIATE_SECURITY_GROUP_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _DSGVO, + {_sSI: _cDSGVRo, _smit: None}, + (_St,), + ((SECURITY_GROUP_VPC_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}),), +) + +DISASSOCIATE_SECURITY_GROUP_VPC: StaticOperationSchema = ( + 23, + n0, + _DSGV, + 0, + DISASSOCIATE_SECURITY_GROUP_VPC_INPUT, + DISASSOCIATE_SECURITY_GROUP_VPC_OUTPUT, + (), +) + +DISASSOCIATE_SUBNET_CIDR_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _DSCBI, + {_sSI: _cDSCBR, _sm: None}, + (_AIs,), + ((SUBNET_CIDR_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs, _smi: None}),), +) + +DISASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCBO, + {_sSI: _cDSCBRo, _smit: None}, + (_ICBA, _SIu), + ( + (SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION, {_aQN: _ICBA, _sN: _iCBA}), + (STRING, {_aQN: _SIu, _sN: _sI}), + ), +) + +DISASSOCIATE_SUBNET_CIDR_BLOCK: StaticOperationSchema = ( + 23, + n0, + _DSCB, + 0, + DISASSOCIATE_SUBNET_CIDR_BLOCK_INPUT, + DISASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT, + (), +) + +DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT: StaticSchema = ( + 18, + n0, + _DTGMDIi, + {_sSI: _cDTGMDRomam, _sm: None}, + (_TGMDI, _TGAI, _SI, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (TRANSIT_GATEWAY_SUBNET_ID_LIST, 1), + (BOOLEAN, 0), + ), +) + +DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGMDOi, + {_sSI: _cDTGMDRomama, _smit: None}, + (_As,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, {_aQN: _As, _sN: _asso}),), +) + +DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: StaticOperationSchema = ( + 23, + n0, + _DTGMDi, + 0, + DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT, + DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT, + (), +) + +DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DTGPTIi, + {_sSI: _cDTGPTRomam, _sm: None}, + (_TGPTI, _TGAI, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (BOOLEAN, 0), + ), +) + +DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGPTOi, + {_sSI: _cDTGPTRomama, _smit: None}, + (_Ass,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}),), +) + +DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE: StaticOperationSchema = ( + 23, + n0, + _DTGPTi, + 0, + DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT, + DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT, + (), +) + +DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT: StaticSchema = ( + 18, + n0, + _DTGRTIi, + {_sSI: _cDTGRTRomam, _sm: None}, + (_TGRTI, _TGAI, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (BOOLEAN, 0), + ), +) + +DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTGRTOi, + {_sSI: _cDTGRTRomama, _smit: None}, + (_Ass,), + ((TRANSIT_GATEWAY_ASSOCIATION, {_aQN: _Ass, _sN: _assoc}),), +) + +DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE: StaticOperationSchema = ( + 23, + n0, + _DTGRTi, + 0, + DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT, + DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT, + (), +) + +DISASSOCIATE_TRUNK_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _DTII, + {_sSI: _cDTIR, _sm: None}, + (_AIs, _CTl, _DR), + ((TRUNK_INTERFACE_ASSOCIATION_ID, 1), (STRING, 2), (BOOLEAN, 0)), +) + +DISASSOCIATE_TRUNK_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTIO, + {_sSI: _cDTIRo, _smit: None}, + (_R, _CTl), + ((BOOLEAN, {_aQN: _R, _sN: _r}), (STRING, {_aQN: _CTl, _sN: _cTl})), +) + +DISASSOCIATE_TRUNK_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _DTIi, + 0, + DISASSOCIATE_TRUNK_INTERFACE_INPUT, + DISASSOCIATE_TRUNK_INTERFACE_OUTPUT, + (), +) + +VPC_CIDR_ASSOCIATION_ID: StaticSchema = (3, n0, _VCAI, 0) + +DISASSOCIATE_VPC_CIDR_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _DVCBI, + {_sSI: _cDVCBR, _sm: None}, + (_AIs,), + ((VPC_CIDR_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs, _smi: None}),), +) + +DISASSOCIATE_VPC_CIDR_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _DVCBO, + {_sSI: _cDVCBRo, _smit: None}, + (_ICBA, _CBA, _VI), + ( + (VPC_IPV6_CIDR_BLOCK_ASSOCIATION, {_aQN: _ICBA, _sN: _iCBA}), + (VPC_CIDR_BLOCK_ASSOCIATION, {_aQN: _CBA, _sN: _cBA}), + (STRING, {_aQN: _VI, _sN: _vI}), + ), +) + +DISASSOCIATE_VPC_CIDR_BLOCK: StaticOperationSchema = ( + 23, + n0, + _DVCB, + 0, + DISASSOCIATE_VPC_CIDR_BLOCK_INPUT, + DISASSOCIATE_VPC_CIDR_BLOCK_OUTPUT, + (), +) + +ENABLE_ADDRESS_TRANSFER_INPUT: StaticSchema = ( + 18, + n0, + _EATI, + {_sSI: _cEATR, _sm: None}, + (_AI, _TAI, _DR), + ((ALLOCATION_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +ENABLE_ADDRESS_TRANSFER_OUTPUT: StaticSchema = ( + 18, + n0, + _EATO, + {_sSI: _cEATRo, _smit: None}, + (_ATd,), + ((ADDRESS_TRANSFER, {_aQN: _ATd, _sN: _aT}),), +) + +ENABLE_ADDRESS_TRANSFER: StaticOperationSchema = ( + 23, + n0, + _EAT, + 0, + ENABLE_ADDRESS_TRANSFER_INPUT, + ENABLE_ADDRESS_TRANSFER_OUTPUT, + (), +) + +ENABLE_ALLOWED_IMAGES_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _EAISI, + {_sSI: _cEAISR, _sm: None}, + (_AISS, _DR), + ((ALLOWED_IMAGES_SETTINGS_ENABLED_STATE, 1), (BOOLEAN, 0)), +) + +ENABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _EAISO, + {_sSI: _cEAISRo, _smit: None}, + (_AISS,), + ((ALLOWED_IMAGES_SETTINGS_ENABLED_STATE, {_aQN: _AISS, _sN: _aISS}),), +) + +ENABLE_ALLOWED_IMAGES_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _EAIS, + 0, + ENABLE_ALLOWED_IMAGES_SETTINGS_INPUT, + ENABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT, + (), +) + +ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT: StaticSchema = ( + 18, + n0, + _EASCSI, + {_sSI: _cEASCSR, _sm: None}, + (_IIn, _DSu, _CTl, _DR), + ((INSTANCE_ID_LIST, {_sN: _II}), (BOXED_INTEGER, 0), (STRING, 2), (BOOLEAN, 0)), +) + +ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _EASCSO, + {_sSI: _cEASCSRo, _smit: None}, + (_SR, _UR), + ( + (SUCCESSFUL_SUPPRESSION_RESPONSE_SET, {_aQN: _SRS, _sN: _sRS}), + (UNSUCCESSFUL_SUPPRESSION_RESPONSE_SET, {_aQN: _URS, _sN: _uRS}), + ), +) + +ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION: StaticOperationSchema = ( + 23, + n0, + _EASCS, + 0, + ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT, + ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT, + (), +) + +ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _EANPMSI, + {_sSI: _cEANPMSR, _sm: None}, + (_Sou, _De, _Met, _Stati, _DR), + ((STRING, 0), (STRING, 0), (METRIC_TYPE, 0), (STATISTIC_TYPE, 0), (BOOLEAN, 0)), +) + +ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _EANPMSO, + {_sSI: _cEANPMSRo, _smit: None}, + (_Ou,), + ((BOOLEAN, {_aQN: _Ou, _sN: _outp}),), +) + +ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _EANPMS, + 0, + ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT, + ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT, + (), +) + +ENABLE_CAPACITY_MANAGER_INPUT: StaticSchema = ( + 18, + n0, + _ECMI, + {_sSI: _cECMR, _sm: None}, + (_OArg, _DR, _CTl), + ((BOOLEAN, 0), (BOOLEAN, 0), (STRING, 2)), +) + +ENABLE_CAPACITY_MANAGER_OUTPUT: StaticSchema = ( + 18, + n0, + _ECMO, + {_sSI: _cECMRo, _smit: None}, + (_CMSa, _OArg), + ( + (CAPACITY_MANAGER_STATUS, {_aQN: _CMSa, _sN: _cMSa}), + (BOOLEAN, {_aQN: _OArg, _sN: _oArg}), + ), +) + +ENABLE_CAPACITY_MANAGER: StaticOperationSchema = ( + 23, + n0, + _ECM, + 0, + ENABLE_CAPACITY_MANAGER_INPUT, + ENABLE_CAPACITY_MANAGER_OUTPUT, + (), +) + +ENABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT: StaticSchema = ( + 18, + n0, + _EEEBDI, + {_sSI: _cEEEBDR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +ENABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT: StaticSchema = ( + 18, + n0, + _EEEBDO, + {_sSI: _cEEEBDRo, _smit: None}, + (_EEBD,), + ((BOOLEAN, {_aQN: _EEBD, _sN: _eEBD}),), +) + +ENABLE_EBS_ENCRYPTION_BY_DEFAULT: StaticOperationSchema = ( + 23, + n0, + _EEEBD, + 0, + ENABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT, + ENABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT, + (), +) + +FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _FLLTSRa, + 0, + (_LTI, _LTN, _Ve), + ((LAUNCH_TEMPLATE_ID, 0), (STRING, 0), (STRING, 1)), +) + +FAST_LAUNCH_SNAPSHOT_CONFIGURATION_REQUEST: StaticSchema = ( + 18, + n0, + _FLSCRa, + 0, + (_TRC,), + ((INTEGER, 0),), +) + +ENABLE_FAST_LAUNCH_INPUT: StaticSchema = ( + 18, + n0, + _EFLI, + {_sSI: _cEFLR, _sm: None}, + (_IIm, _RT, _SCn, _LT, _MPLa, _DR), + ( + (IMAGE_ID, 1), + (STRING, 0), + (FAST_LAUNCH_SNAPSHOT_CONFIGURATION_REQUEST, 0), + (FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST, 0), + (INTEGER, 0), + (BOOLEAN, 0), + ), +) + +ENABLE_FAST_LAUNCH_OUTPUT: StaticSchema = ( + 18, + n0, + _EFLO, + {_sSI: _cEFLRo, _smit: None}, + (_IIm, _RT, _SCn, _LT, _MPLa, _OIw, _St, _STR, _STT), + ( + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (FAST_LAUNCH_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (FAST_LAUNCH_SNAPSHOT_CONFIGURATION_RESPONSE, {_aQN: _SCn, _sN: _sCn}), + (FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_RESPONSE, {_aQN: _LT, _sN: _lT}), + (INTEGER, {_aQN: _MPLa, _sN: _mPL}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (FAST_LAUNCH_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (MILLISECOND_DATE_TIME, {_aQN: _STT, _sN: _sTT}), + ), +) + +ENABLE_FAST_LAUNCH: StaticOperationSchema = ( + 23, + n0, + _EFL, + 0, + ENABLE_FAST_LAUNCH_INPUT, + ENABLE_FAST_LAUNCH_OUTPUT, + (), +) + +ENABLE_FAST_SNAPSHOT_RESTORES_INPUT: StaticSchema = ( + 18, + n0, + _EFSRI, + {_sSI: _cEFSRR, _sm: None}, + (_AZv, _AZIv, _SSIo, _DR), + ( + (AVAILABILITY_ZONE_STRING_LIST, {_sN: _AZ}), + (AVAILABILITY_ZONE_ID_STRING_LIST, {_sN: _AZI}), + (SNAPSHOT_ID_STRING_LIST, {_sN: _SSI, _smi: None}), + (BOOLEAN, 0), + ), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM: StaticSchema = ( + 18, + n0, + _EFSRSI, + 0, + (_SIn, _AZ, _AZI, _St, _STR, _OIw, _OAw, _ETna, _OT, _ETnab, _DTi, _DTis), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (FAST_SNAPSHOT_RESTORE_STATE_CODE, {_aQN: _St, _sN: _st}), + (STRING, {_aQN: _STR, _sN: _sTR}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _OAw, _sN: _oAw}), + (MILLISECOND_DATE_TIME, {_aQN: _ETna, _sN: _eTna}), + (MILLISECOND_DATE_TIME, {_aQN: _OT, _sN: _oT}), + (MILLISECOND_DATE_TIME, {_aQN: _ETnab, _sN: _eTnab}), + (MILLISECOND_DATE_TIME, {_aQN: _DTi, _sN: _dTi}), + (MILLISECOND_DATE_TIME, {_aQN: _DTis, _sN: _dTis}), + ), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET: StaticSchema = ( + 16, + n0, + _EFSRSS, + 0, + (_me,), + ((ENABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM, {_sN: _i}),), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR: StaticSchema = ( + 18, + n0, + _EFSRSE, + 0, + (_C, _Me), + ((STRING, {_aQN: _C, _sN: _co}), (STRING, {_aQN: _Me, _sN: _mes})), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _EFSRSEI, + 0, + (_AZ, _AZI, _E), + ( + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR, {_aQN: _E, _sN: _er}), + ), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_SET: StaticSchema = ( + 16, + n0, + _EFSRSES, + 0, + (_me,), + ((ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM, {_sN: _i}),), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM: StaticSchema = ( + 18, + n0, + _EFSREI, + 0, + (_SIn, _FSRSE), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_SET, {_aQN: _FSRSES, _sN: _fSRSES}), + ), +) + +ENABLE_FAST_SNAPSHOT_RESTORE_ERROR_SET: StaticSchema = ( + 16, + n0, + _EFSRES, + 0, + (_me,), + ((ENABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM, {_sN: _i}),), +) + +ENABLE_FAST_SNAPSHOT_RESTORES_OUTPUT: StaticSchema = ( + 18, + n0, + _EFSRO, + {_sSI: _cEFSRRo, _smit: None}, + (_Suc, _Un), + ( + (ENABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_SET, {_aQN: _Suc, _sN: _succ}), + (ENABLE_FAST_SNAPSHOT_RESTORE_ERROR_SET, {_aQN: _Un, _sN: _un}), + ), +) + +ENABLE_FAST_SNAPSHOT_RESTORES: StaticOperationSchema = ( + 23, + n0, + _EFSR, + 0, + ENABLE_FAST_SNAPSHOT_RESTORES_INPUT, + ENABLE_FAST_SNAPSHOT_RESTORES_OUTPUT, + (), +) + +ENABLE_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _EII, + {_sSI: _cEIR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +ENABLE_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _EIO, + {_sSI: _cEIRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ENABLE_IMAGE: StaticOperationSchema = ( + 23, + n0, + _EIna, + 0, + ENABLE_IMAGE_INPUT, + ENABLE_IMAGE_OUTPUT, + (), +) + +IMAGE_BLOCK_PUBLIC_ACCESS_ENABLED_STATE: StaticSchema = ( + 14, + n0, + _IBPAES, + 0, + (_bns,), + ((-1, {_sV: _bns_}),), +) + +ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _EIBPAI, + {_sSI: _cEIBPAR, _sm: None}, + (_IBPAS, _DR), + ((IMAGE_BLOCK_PUBLIC_ACCESS_ENABLED_STATE, 1), (BOOLEAN, 0)), +) + +ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _EIBPAO, + {_sSI: _cEIBPARo, _smit: None}, + (_IBPAS,), + ((IMAGE_BLOCK_PUBLIC_ACCESS_ENABLED_STATE, {_aQN: _IBPAS, _sN: _iBPAS}),), +) + +ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS: StaticOperationSchema = ( + 23, + n0, + _EIBPA, + 0, + ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT, + ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT, + (), +) + +ENABLE_IMAGE_DEPRECATION_INPUT: StaticSchema = ( + 18, + n0, + _EIDI, + {_sSI: _cEIDR, _sm: None}, + (_IIm, _DAepr, _DR), + ((IMAGE_ID, 1), (MILLISECOND_DATE_TIME, 1), (BOOLEAN, 0)), +) + +ENABLE_IMAGE_DEPRECATION_OUTPUT: StaticSchema = ( + 18, + n0, + _EIDO, + {_sSI: _cEIDRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ENABLE_IMAGE_DEPRECATION: StaticOperationSchema = ( + 23, + n0, + _EID, + 0, + ENABLE_IMAGE_DEPRECATION_INPUT, + ENABLE_IMAGE_DEPRECATION_OUTPUT, + (), +) + +ENABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT: StaticSchema = ( + 18, + n0, + _EIDPI, + {_sSI: _cEIDPR, _sm: None}, + (_IIm, _WCi, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +ENABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _EIDPO, + {_sSI: _cEIDPRo, _smit: None}, + (_R,), + ((STRING, {_aQN: _R, _sN: _r}),), +) + +ENABLE_IMAGE_DEREGISTRATION_PROTECTION: StaticOperationSchema = ( + 23, + n0, + _EIDP, + 0, + ENABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT, + ENABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT, + (), +) + +SECRET_ARN: StaticSchema = (3, n0, _SAe, 0) + +ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _EISHSDI, + {_sSI: _cEISHSDR, _sm: None}, + (_IIn, _SSC, _DR), + ( + (INSTANCE_ID_UPDATE_STRING_LIST, {_sN: _II, _smi: None}), + (SECRET_ARN, 0), + (BOOLEAN, 0), + ), +) + +ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _EISHSDO, + {_sSI: _cEISHSDRo, _smit: None}, + (_Ins,), + ((REGISTERED_INSTANCE_LIST, {_aQN: _ISns, _sN: _iSn}),), +) + +ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS: StaticOperationSchema = ( + 23, + n0, + _EISHSD, + 0, + ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT, + ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT, + (), +) + +ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _EIIRAI, + {_sSI: _cEIIRAR, _sm: None}, + (_DR, _IIRAI, _RVp, _SUe, _CH, _PH, _PBT, _CTl), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 2), + ), +) + +ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _EIIRAO, + {_sSI: _cEIIRARo, _smit: None}, + (_IIRA,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION, {_aQN: _IIRA, _sN: _iIRA}),), +) + +ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _EIIRA, + 0, + ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT, + ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT, + (), +) + +ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT: StaticSchema = ( + 18, + n0, + _EIOAAI, + {_sSI: _cEIOAAR, _sm: None}, + (_DR, _DAAIel), + ((BOOLEAN, 0), (STRING, 1)), +) + +ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT: StaticSchema = ( + 18, + n0, + _EIOAAO, + {_sSI: _cEIOAARo, _smit: None}, + (_Succ,), + ((BOOLEAN, {_aQN: _Succ, _sN: _succe}),), +) + +ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT: StaticOperationSchema = ( + 23, + n0, + _EIOAA, + 0, + ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT, + ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT, + (), +) + +ENABLE_IPAM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _EIPI, + {_sSI: _cEIPR, _sm: None}, + (_DR, _IPIp, _OTI), + ((BOOLEAN, 0), (IPAM_POLICY_ID, 1), (STRING, 0)), +) + +ENABLE_IPAM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _EIPO, + {_sSI: _cEIPRo, _smit: None}, + (_IPIp,), + ((IPAM_POLICY_ID, {_aQN: _IPIp, _sN: _iPIp}),), +) + +ENABLE_IPAM_POLICY: StaticOperationSchema = ( + 23, + n0, + _EIP, + 0, + ENABLE_IPAM_POLICY_INPUT, + ENABLE_IPAM_POLICY_OUTPUT, + (), +) + +ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_INPUT: StaticSchema = ( + 18, + n0, + _ERAOSI, + {_sSI: _cERAOSR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_OUTPUT: StaticSchema = ( + 18, + n0, + _ERAOSO, + {_sSI: _cERAOSRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _RV, _sN: _rV}),), +) + +ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING: StaticOperationSchema = ( + 23, + n0, + _ERAOS, + 0, + ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_INPUT, + ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_OUTPUT, + (), +) + +ENABLE_ROUTE_SERVER_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _ERSPI, + {_sSI: _cERSPR, _sm: None}, + (_RSI, _RTIo, _DR), + ((ROUTE_SERVER_ID, 1), (ROUTE_TABLE_ID, 1), (BOOLEAN, 0)), +) + +ENABLE_ROUTE_SERVER_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _ERSPO, + {_sSI: _cERSPRo, _smit: None}, + (_RSPou,), + ((ROUTE_SERVER_PROPAGATION, {_aQN: _RSPou, _sN: _rSPo}),), +) + +ENABLE_ROUTE_SERVER_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _ERSP, + 0, + ENABLE_ROUTE_SERVER_PROPAGATION_INPUT, + ENABLE_ROUTE_SERVER_PROPAGATION_OUTPUT, + (), +) + +ENABLE_SERIAL_CONSOLE_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _ESCAI, + {_sSI: _cESCAR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +ENABLE_SERIAL_CONSOLE_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ESCAO, + {_sSI: _cESCARo, _smit: None}, + (_SCAE,), + ((BOOLEAN, {_aQN: _SCAE, _sN: _sCAE}),), +) + +ENABLE_SERIAL_CONSOLE_ACCESS: StaticOperationSchema = ( + 23, + n0, + _ESCA, + 0, + ENABLE_SERIAL_CONSOLE_ACCESS_INPUT, + ENABLE_SERIAL_CONSOLE_ACCESS_OUTPUT, + (), +) + +ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _ESBPAI, + {_sSI: _cESBPAR, _sm: None}, + (_St, _DR), + ((SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, 1), (BOOLEAN, 0)), +) + +ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ESBPAO, + {_sSI: _cESBPARo, _smit: None}, + (_St,), + ((SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, {_aQN: _St, _sN: _st}),), +) + +ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS: StaticOperationSchema = ( + 23, + n0, + _ESBPA, + 0, + ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT, + ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT, + (), +) + +ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _ETGRTPI, + {_sSI: _cETGRTPR, _sm: None}, + (_TGRTI, _TGAI, _DR, _TGRTAI), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, 0), + ), +) + +ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _ETGRTPO, + {_sSI: _cETGRTPRo, _smit: None}, + (_Prop,), + ((TRANSIT_GATEWAY_PROPAGATION, {_aQN: _Prop, _sN: _propa}),), +) + +ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _ETGRTP, + 0, + ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT, + ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT, + (), +) + +ENABLE_VGW_ROUTE_PROPAGATION_INPUT: StaticSchema = ( + 18, + n0, + _EVRPI, + {_sSI: _cEVRPR, _sm: None}, + (_GI, _RTIo, _DR), + ((VPN_GATEWAY_ID, 1), (ROUTE_TABLE_ID, 1), (BOOLEAN, 0)), +) + +ENABLE_VGW_ROUTE_PROPAGATION_OUTPUT: StaticSchema = ( + 18, + n0, + _EVRPO, + {_sSI: _sU, _smit: None}, +) + +ENABLE_VGW_ROUTE_PROPAGATION: StaticOperationSchema = ( + 23, + n0, + _EVRP, + 0, + ENABLE_VGW_ROUTE_PROPAGATION_INPUT, + ENABLE_VGW_ROUTE_PROPAGATION_OUTPUT, + (), +) + +ENABLE_VOLUME_IO_INPUT: StaticSchema = ( + 18, + n0, + _EVIOI, + {_sSI: _cEVIOR, _sm: None}, + (_DR, _VIo), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VOLUME_ID, {_aQN: _VIo, _sN: _vIo, _smi: None}), + ), +) + +ENABLE_VOLUME_IO_OUTPUT: StaticSchema = (18, n0, _EVIOO, {_sSI: _sU, _smit: None}) + +ENABLE_VOLUME_IO: StaticOperationSchema = ( + 23, + n0, + _EVIO, + 0, + ENABLE_VOLUME_IO_INPUT, + ENABLE_VOLUME_IO_OUTPUT, + (), +) + +ENABLE_VPC_CLASSIC_LINK_INPUT: StaticSchema = ( + 18, + n0, + _EVCLI, + {_sSI: _cEVCLR, _sm: None}, + (_DR, _VI), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}), (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None})), +) + +ENABLE_VPC_CLASSIC_LINK_OUTPUT: StaticSchema = ( + 18, + n0, + _EVCLO, + {_sSI: _cEVCLRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ENABLE_VPC_CLASSIC_LINK: StaticOperationSchema = ( + 23, + n0, + _EVCL, + 0, + ENABLE_VPC_CLASSIC_LINK_INPUT, + ENABLE_VPC_CLASSIC_LINK_OUTPUT, + (), +) + +ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT: StaticSchema = ( + 18, + n0, + _EVCLDSI, + {_sSI: _cEVCLDSR, _sm: None}, + (_VI,), + ((VPC_ID, {_sN: _VI}),), +) + +ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _EVCLDSO, + {_sSI: _cEVCLDSRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT: StaticOperationSchema = ( + 23, + n0, + _EVCLDS, + 0, + ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT, + ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT, + (), +) + +EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT: StaticSchema = ( + 18, + n0, + _ECVCCRLI, + {_sSI: _cECVCCRLR, _sm: None}, + (_CVEI, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS_CODE: StaticSchema = ( + 14, + n0, + _CCRLSC, + 0, + (_p, _act), + ((-1, {_sV: _p}), (-1, {_sV: _act})), +) + +CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS: StaticSchema = ( + 18, + n0, + _CCRLS, + 0, + (_C, _Me), + ( + (CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _ECVCCRLO, + {_sSI: _cECVCCRLRo, _smit: None}, + (_CRL, _Sta), + ( + (STRING, {_aQN: _CRL, _sN: _cRL}), + (CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST: StaticOperationSchema = ( + 23, + n0, + _ECVCCRL, + 0, + EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT, + EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT, + (), +) + +EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _ECVCCI, + {_sSI: _cECVCCR, _sm: None}, + (_CVEI, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _ECVCCO, + {_sSI: _cECVCCRo, _smit: None}, + (_CCl,), + ((STRING, {_aQN: _CCl, _sN: _cCl}),), +) + +EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _ECVCC, + 0, + EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_INPUT, + EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_OUTPUT, + (), +) + +EXPORT_TASK_S3_LOCATION_REQUEST: StaticSchema = ( + 18, + n0, + _ETSLR, + 0, + (_SBu, _SPr), + ((STRING, 1), (STRING, 0)), +) + +EXPORT_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _EIIx, + {_sSI: _cEIRom, _sm: None}, + (_CTl, _Des, _DIF, _DR, _IIm, _SEL, _RNo, _TSa), + ( + (STRING, 2), + (STRING, 0), + (DISK_IMAGE_FORMAT, 1), + (BOOLEAN, 0), + (IMAGE_ID, 1), + (EXPORT_TASK_S3_LOCATION_REQUEST, 1), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +EXPORT_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _EIOx, + {_sSI: _cEIRoma, _smit: None}, + (_Des, _DIF, _EITI, _IIm, _RNo, _Prog, _SEL, _Sta, _SMt, _Tag), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (DISK_IMAGE_FORMAT, {_aQN: _DIF, _sN: _dIF}), + (STRING, {_aQN: _EITI, _sN: _eITI}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _RNo, _sN: _rNo}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (EXPORT_TASK_S3_LOCATION, {_aQN: _SEL, _sN: _sEL}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +EXPORT_IMAGE: StaticOperationSchema = ( + 23, + n0, + _EIxp, + 0, + EXPORT_IMAGE_INPUT, + EXPORT_IMAGE_OUTPUT, + (), +) + +EXPORT_TRANSIT_GATEWAY_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _ETGRI, + {_sSI: _cETGRR, _sm: None}, + (_TGRTI, _Fil, _SBu, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 1), + (BOOLEAN, 0), + ), +) + +EXPORT_TRANSIT_GATEWAY_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _ETGRO, + {_sSI: _cETGRRo, _smit: None}, + (_SLo,), + ((STRING, {_aQN: _SLo, _sN: _sLo}),), +) + +EXPORT_TRANSIT_GATEWAY_ROUTES: StaticOperationSchema = ( + 23, + n0, + _ETGR, + 0, + EXPORT_TRANSIT_GATEWAY_ROUTES_INPUT, + EXPORT_TRANSIT_GATEWAY_ROUTES_OUTPUT, + (), +) + +EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _EVAICCI, + {_sSI: _cEVAICCR, _sm: None}, + (_VAII, _DR), + ((VERIFIED_ACCESS_INSTANCE_ID, 1), (BOOLEAN, 0)), +) + +DEVICE_TRUST_PROVIDER_TYPE_LIST: StaticSchema = ( + 16, + n0, + _DTPTL, + 0, + (_me,), + ((DEVICE_TRUST_PROVIDER_TYPE, {_sN: _i}),), +) + +VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_ROUTE: StaticSchema = ( + 18, + n0, + _VAIOVCCR, + 0, + (_Ci,), + ((STRING, {_aQN: _Ci, _sN: _ci}),), +) + +VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_ROUTE_LIST: StaticSchema = ( + 16, + n0, + _VAIOVCCRL, + 0, + (_me,), + ((VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_ROUTE, {_sN: _i}),), +) + +VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VAIOVCC, + 0, + (_Confi, _Rout), + ( + (STRING, {_aQN: _Confi, _sN: _confi}), + ( + VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_ROUTE_LIST, + {_aQN: _RSout, _sN: _rSou}, + ), + ), +) + +VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _VAIOVCCL, + 0, + (_me,), + ((VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION, {_sN: _i}),), +) + +VERIFIED_ACCESS_INSTANCE_USER_TRUST_PROVIDER_CLIENT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VAIUTPCC, + 0, + (_Ty, _Sco, _Is, _AE, _PSKE, _TE, _UIEs, _CIl, _CSl, _PE), + ( + (USER_TRUST_PROVIDER_TYPE, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _Sco, _sN: _sco}), + (STRING, {_aQN: _Is, _sN: _iss}), + (STRING, {_aQN: _AE, _sN: _aE}), + (STRING, {_aQN: _PSKE, _sN: _pSKE}), + (STRING, {_aQN: _TE, _sN: _tE}), + (STRING, {_aQN: _UIEs, _sN: _uIE}), + (STRING, {_aQN: _CIl, _sN: _cIl}), + (CLIENT_SECRET_TYPE, {_aQN: _CSl, _sN: _cSl}), + (BOOLEAN, {_aQN: _PE, _sN: _pE}), + ), +) + +EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _EVAICCO, + {_sSI: _cEVAICCRo, _smit: None}, + (_Ve, _VAII, _Re, _DTP, _UTP, _OVC), + ( + (STRING, {_aQN: _Ve, _sN: _ver}), + (STRING, {_aQN: _VAII, _sN: _vAII}), + (STRING, {_aQN: _Re, _sN: _reg}), + (DEVICE_TRUST_PROVIDER_TYPE_LIST, {_aQN: _DTPS, _sN: _dTPS}), + ( + VERIFIED_ACCESS_INSTANCE_USER_TRUST_PROVIDER_CLIENT_CONFIGURATION, + {_aQN: _UTP, _sN: _uTP}, + ), + ( + VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_LIST, + {_aQN: _OVCS, _sN: _oVCS}, + ), + ), +) + +EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _EVAICC, + 0, + EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_INPUT, + EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_OUTPUT, + (), +) + +GET_ACTIVE_VPN_TUNNEL_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GAVTSI, + {_sSI: _cGAVTSR, _sm: None}, + (_VCIp, _VTOIA, _DR), + ((VPN_CONNECTION_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +GET_ACTIVE_VPN_TUNNEL_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GAVTSO, + {_sSI: _cGAVTSRo, _smit: None}, + (_AVTS,), + ((ACTIVE_VPN_TUNNEL_STATUS, {_aQN: _AVTS, _sN: _aVTS}),), +) + +GET_ACTIVE_VPN_TUNNEL_STATUS: StaticOperationSchema = ( + 23, + n0, + _GAVTS, + 0, + GET_ACTIVE_VPN_TUNNEL_STATUS_INPUT, + GET_ACTIVE_VPN_TUNNEL_STATUS_OUTPUT, + (), +) + +GET_ALLOWED_IMAGES_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _GAISI, + {_sSI: _cGAISR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +MAXIMUM_DAYS_SINCE_CREATED_VALUE: StaticSchema = (7, n0, _MDSCV, 0) + +CREATION_DATE_CONDITION: StaticSchema = ( + 18, + n0, + _CDC, + 0, + (_MDSC,), + ((MAXIMUM_DAYS_SINCE_CREATED_VALUE, {_aQN: _MDSC, _sN: _mDSC}),), +) + +MAXIMUM_DAYS_SINCE_DEPRECATED_VALUE: StaticSchema = (7, n0, _MDSDV, 0) + +DEPRECATION_TIME_CONDITION: StaticSchema = ( + 18, + n0, + _DTC, + 0, + (_MDSD,), + ((MAXIMUM_DAYS_SINCE_DEPRECATED_VALUE, {_aQN: _MDSD, _sN: _mDSD}),), +) + +IMAGE_NAME: StaticSchema = (3, n0, _INm, 0) + +IMAGE_NAME_LIST: StaticSchema = (16, n0, _INLm, 0, (_me,), ((IMAGE_NAME, {_sN: _i}),)) + +IMAGE_PROVIDER: StaticSchema = (3, n0, _IPm, 0) + +IMAGE_PROVIDER_LIST: StaticSchema = ( + 16, + n0, + _IPLm, + 0, + (_me,), + ((IMAGE_PROVIDER, {_sN: _i}),), +) + +IMAGE_WATERMARK_FILTER_RESPONSE: StaticSchema = ( + 18, + n0, + _IWFR, + 0, + (_WK, _SIR, _MDSSIC, _MDSWC), + ( + (STRING, {_aQN: _WK, _sN: _wK}), + (STRING, {_aQN: _SIR, _sN: _sIR}), + (INTEGER, {_aQN: _MDSSIC, _sN: _mDSSIC}), + (INTEGER, {_aQN: _MDSWC, _sN: _mDSWC}), + ), +) + +IMAGE_WATERMARK_FILTER_RESPONSE_LIST: StaticSchema = ( + 16, + n0, + _IWFRL, + 0, + (_me,), + ((IMAGE_WATERMARK_FILTER_RESPONSE, {_sN: _i}),), +) + +MARKETPLACE_PRODUCT_CODE: StaticSchema = (3, n0, _MPC, 0) + +MARKETPLACE_PRODUCT_CODE_LIST: StaticSchema = ( + 16, + n0, + _MPCL, + 0, + (_me,), + ((MARKETPLACE_PRODUCT_CODE, {_sN: _i}),), +) + +MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE: StaticSchema = (7, n0, _MDSFAV, 0) + +MAX_DAYS_SINCE_LAST_FINDING_SCAN_VALUE: StaticSchema = (7, n0, _MDSLFSV, 0) + +SCAN_RESULT_CONDITION: StaticSchema = ( + 18, + n0, + _SRCc, + 0, + (_MDSLFS, _MSL, _MDSIFA, _MDSLFA, _MDSMFA, _MDSHFA, _MDSCFA), + ( + (MAX_DAYS_SINCE_LAST_FINDING_SCAN_VALUE, {_aQN: _MDSLFS, _sN: _mDSLFS}), + (SEVERITY_LABEL, {_aQN: _MSL, _sN: _mSL}), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, {_aQN: _MDSIFA, _sN: _mDSIFA}), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, {_aQN: _MDSLFA, _sN: _mDSLFA}), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, {_aQN: _MDSMFA, _sN: _mDSMFA}), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, {_aQN: _MDSHFA, _sN: _mDSHFA}), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, {_aQN: _MDSCFA, _sN: _mDSCFA}), + ), +) + +IMAGE_CRITERION: StaticSchema = ( + 18, + n0, + _ICm, + 0, + (_IPma, _MPCa, _INma, _DTC, _CDC, _IWm, _SRCc), + ( + (IMAGE_PROVIDER_LIST, {_aQN: _IPSm, _sN: _iPSm}), + (MARKETPLACE_PRODUCT_CODE_LIST, {_aQN: _MPCS, _sN: _mPCS}), + (IMAGE_NAME_LIST, {_aQN: _INS, _sN: _iNS}), + (DEPRECATION_TIME_CONDITION, {_aQN: _DTC, _sN: _dTC}), + (CREATION_DATE_CONDITION, {_aQN: _CDC, _sN: _cDC}), + (IMAGE_WATERMARK_FILTER_RESPONSE_LIST, {_aQN: _IWS, _sN: _iWS}), + (SCAN_RESULT_CONDITION, {_aQN: _SRCc, _sN: _sRC}), + ), +) + +IMAGE_CRITERION_LIST: StaticSchema = ( + 16, + n0, + _ICLm, + 0, + (_me,), + ((IMAGE_CRITERION, {_sN: _i}),), +) + +GET_ALLOWED_IMAGES_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _GAISO, + {_sSI: _cGAISRo, _smit: None}, + (_St, _ICma, _MB), + ( + (STRING, {_aQN: _St, _sN: _st}), + (IMAGE_CRITERION_LIST, {_aQN: _ICSm, _sN: _iCS}), + (MANAGED_BY, {_aQN: _MB, _sN: _mB}), + ), +) + +GET_ALLOWED_IMAGES_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _GAIS, + 0, + GET_ALLOWED_IMAGES_SETTINGS_INPUT, + GET_ALLOWED_IMAGES_SETTINGS_OUTPUT, + (), +) + +GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_INPUT: StaticSchema = ( + 18, + n0, + _GAECIRI, + {_sSI: _cGAECIRR, _sm: None}, + (_CAe, _DR), + ((CERTIFICATE_ID, 1), (BOOLEAN, 0)), +) + +ASSOCIATED_ROLE: StaticSchema = ( + 18, + n0, + _ARss, + 0, + (_ARAss, _CSBN, _CSOK, _EKKI), + ( + (RESOURCE_ARN, {_aQN: _ARAss, _sN: _aRAss}), + (STRING, {_aQN: _CSBN, _sN: _cSBN}), + (STRING, {_aQN: _CSOK, _sN: _cSOK}), + (STRING, {_aQN: _EKKI, _sN: _eKKI}), + ), +) + +ASSOCIATED_ROLES_LIST: StaticSchema = ( + 16, + n0, + _ARL, + 0, + (_me,), + ((ASSOCIATED_ROLE, {_sN: _i}),), +) + +GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_OUTPUT: StaticSchema = ( + 18, + n0, + _GAECIRO, + {_sSI: _cGAECIRRo, _smit: None}, + (_ARsso,), + ((ASSOCIATED_ROLES_LIST, {_aQN: _ARSs, _sN: _aRSs}),), +) + +GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES: StaticOperationSchema = ( + 23, + n0, + _GAECIR, + 0, + GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_INPUT, + GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_OUTPUT, + (), +) + +GET_ASSOCIATED_IPV6_POOL_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _GAIPCI, + {_sSI: _cGAIPCR, _sm: None}, + (_PIo, _NTex, _MR, _DR), + ((IPV6_POOL_EC2_ID, 1), (NEXT_TOKEN, 0), (IPV6_POOL_MAX_RESULTS, 0), (BOOLEAN, 0)), +) + +IPV6_CIDR_ASSOCIATION: StaticSchema = ( + 18, + n0, + _ICAp, + 0, + (_ICp, _ARs), + ((STRING, {_aQN: _ICp, _sN: _iCp}), (STRING, {_aQN: _ARs, _sN: _aRs})), +) + +IPV6_CIDR_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _ICAS, + 0, + (_me,), + ((IPV6_CIDR_ASSOCIATION, {_sN: _i}),), +) + +GET_ASSOCIATED_IPV6_POOL_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _GAIPCO, + {_sSI: _cGAIPCRo, _smit: None}, + (_ICApv, _NTex), + ( + (IPV6_CIDR_ASSOCIATION_SET, {_aQN: _ICAS, _sN: _iCAS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_ASSOCIATED_IPV6_POOL_CIDRS: StaticOperationSchema = ( + 23, + n0, + _GAIPC, + 0, + GET_ASSOCIATED_IPV6_POOL_CIDRS_INPUT, + GET_ASSOCIATED_IPV6_POOL_CIDRS_OUTPUT, + (), +) + +DATA_QUERY: StaticSchema = ( + 18, + n0, + _DQ, + 0, + (_Id, _Sou, _De, _Met, _Stati, _Per), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (METRIC_TYPE, 0), + (STATISTIC_TYPE, 0), + (PERIOD_TYPE, 0), + ), +) + +DATA_QUERIES: StaticSchema = (16, n0, _DQa, 0, (_me,), ((DATA_QUERY, 0),)) + +GET_AWS_NETWORK_PERFORMANCE_DATA_INPUT: StaticSchema = ( + 18, + n0, + _GANPDI, + {_sSI: _cGANPDR, _sm: None}, + (_DQa, _ST, _ETnd, _MR, _NTex, _DR), + ( + (DATA_QUERIES, {_sN: _DQ}), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +METRIC_POINT: StaticSchema = ( + 18, + n0, + _MPe, + 0, + (_SDt, _ED, _Va, _Sta), + ( + (MILLISECOND_DATE_TIME, {_aQN: _SDt, _sN: _sDt}), + (MILLISECOND_DATE_TIME, {_aQN: _ED, _sN: _eD}), + (FLOAT, {_aQN: _Va, _sN: _va}), + (STRING, {_aQN: _Sta, _sN: _sta}), + ), +) + +METRIC_POINTS: StaticSchema = (16, n0, _MPet, 0, (_me,), ((METRIC_POINT, {_sN: _i}),)) + +DATA_RESPONSE: StaticSchema = ( + 18, + n0, + _DRa, + 0, + (_Id, _Sou, _De, _Met, _Stati, _Per, _MPet), + ( + (STRING, {_aQN: _Id, _sN: _id}), + (STRING, {_aQN: _Sou, _sN: _so}), + (STRING, {_aQN: _De, _sN: _des}), + (METRIC_TYPE, {_aQN: _Met, _sN: _met}), + (STATISTIC_TYPE, {_aQN: _Stati, _sN: _stati}), + (PERIOD_TYPE, {_aQN: _Per, _sN: _peri}), + (METRIC_POINTS, {_aQN: _MPSe, _sN: _mPSe}), + ), +) + +DATA_RESPONSES: StaticSchema = (16, n0, _DRat, 0, (_me,), ((DATA_RESPONSE, {_sN: _i}),)) + +GET_AWS_NETWORK_PERFORMANCE_DATA_OUTPUT: StaticSchema = ( + 18, + n0, + _GANPDO, + {_sSI: _cGANPDRo, _smit: None}, + (_DRat, _NTex), + ((DATA_RESPONSES, {_aQN: _DRSat, _sN: _dRSa}), (STRING, {_aQN: _NTex, _sN: _nT})), +) + +GET_AWS_NETWORK_PERFORMANCE_DATA: StaticOperationSchema = ( + 23, + n0, + _GANPD, + 0, + GET_AWS_NETWORK_PERFORMANCE_DATA_INPUT, + GET_AWS_NETWORK_PERFORMANCE_DATA_OUTPUT, + (), +) + +GET_CAPACITY_MANAGER_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _GCMAI, + {_sSI: _cGCMAR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +INGESTION_STATUS: StaticSchema = ( + 14, + n0, + _ISng, + 0, + (_IIIP, _IC___, _IF_), + ((-1, {_sV: _iiip}), (-1, {_sV: _ic___}), (-1, {_sV: _if})), +) + +GET_CAPACITY_MANAGER_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _GCMAO, + {_sSI: _cGCMARo, _smit: None}, + (_CMSa, _OArg, _DEC, _ISng, _ISM, _EDTa, _LDTat), + ( + (CAPACITY_MANAGER_STATUS, {_aQN: _CMSa, _sN: _cMSa}), + (BOOLEAN, {_aQN: _OArg, _sN: _oArg}), + (INTEGER, {_aQN: _DEC, _sN: _dEC}), + (INGESTION_STATUS, {_aQN: _ISng, _sN: _iSng}), + (STRING, {_aQN: _ISM, _sN: _iSM}), + (MILLISECOND_DATE_TIME, {_aQN: _EDTa, _sN: _eDTa}), + (MILLISECOND_DATE_TIME, {_aQN: _LDTat, _sN: _lDTa}), + ), +) + +GET_CAPACITY_MANAGER_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _GCMA, + 0, + GET_CAPACITY_MANAGER_ATTRIBUTES_INPUT, + GET_CAPACITY_MANAGER_ATTRIBUTES_OUTPUT, + (), +) + +COMPARISON: StaticSchema = ( + 14, + n0, + _Com, + 0, + (_EQUALS, _IN_), + ((-1, {_sV: _eq}), (-1, {_sV: _in___})), +) + +FILTER_BY_DIMENSION: StaticSchema = ( + 14, + n0, + _FBD, + 0, + ( + _RR_, + _AZI_, + _AI_, + _AN_, + _IF__, + _IT_, + _IP__, + _RA_, + _RI_, + _RT_, + _RCT_, + _RST, + _RET_, + _REDT, + _TENANCY, + _RS_, + _RIMC, + _RUFO, + ), + ( + (-1, {_sV: _rr}), + (-1, {_sV: _azi_}), + (-1, {_sV: _ai}), + (-1, {_sV: _an}), + (-1, {_sV: _if_}), + (-1, {_sV: _it}), + (-1, {_sV: _ip___________}), + (-1, {_sV: _ra_}), + (-1, {_sV: _ri__}), + (-1, {_sV: _rt__}), + (-1, {_sV: _rct}), + (-1, {_sV: _rst}), + (-1, {_sV: _ret_}), + (-1, {_sV: _redt}), + (-1, {_sV: _ten}), + (-1, {_sV: _rs__}), + (-1, {_sV: _rimc}), + (-1, {_sV: _rufo}), + ), +) + +CONDITION_VALUE: StaticSchema = (3, n0, _CVo, 0) + +CONDITION_VALUE_LIST: StaticSchema = ( + 16, + n0, + _CVL, + 0, + (_me,), + ((CONDITION_VALUE, {_sN: _i}),), +) + +DIMENSION_CONDITION: StaticSchema = ( + 18, + n0, + _DCim, + 0, + (_Dim, _Com, _Val), + ((FILTER_BY_DIMENSION, 0), (COMPARISON, 0), (CONDITION_VALUE_LIST, {_sN: _Va})), +) + +CAPACITY_MANAGER_CONDITION: StaticSchema = ( + 18, + n0, + _CMC, + 0, + (_DCim,), + ((DIMENSION_CONDITION, 0),), +) + +CAPACITY_MANAGER_CONDITION_SET: StaticSchema = ( + 16, + n0, + _CMCS, + 0, + (_me,), + ((CAPACITY_MANAGER_CONDITION, {_sN: _i}),), +) + +GROUP_BY: StaticSchema = ( + 14, + n0, + _GB, + 0, + ( + _RR_, + _AZI_, + _AI_, + _AN_, + _IF__, + _IT_, + _IP__, + _RA_, + _RI_, + _RT_, + _RCT_, + _RST, + _RET_, + _REDT, + _TENANCY, + _RS_, + _RIMC, + _RUFO, + ), + ( + (-1, {_sV: _rr}), + (-1, {_sV: _azi_}), + (-1, {_sV: _ai}), + (-1, {_sV: _an}), + (-1, {_sV: _if_}), + (-1, {_sV: _it}), + (-1, {_sV: _ip___________}), + (-1, {_sV: _ra_}), + (-1, {_sV: _ri__}), + (-1, {_sV: _rt__}), + (-1, {_sV: _rct}), + (-1, {_sV: _rst}), + (-1, {_sV: _ret_}), + (-1, {_sV: _redt}), + (-1, {_sV: _ten}), + (-1, {_sV: _rs__}), + (-1, {_sV: _rimc}), + (-1, {_sV: _rufo}), + ), +) + +GROUP_BY_SET: StaticSchema = (16, n0, _GBS, 0, (_me,), ((GROUP_BY, {_sN: _i}),)) + +MAX_RESULTS: StaticSchema = (7, n0, _MR, 0) + +METRIC: StaticSchema = ( + 14, + n0, + _Met, + 0, + ( + _RTCHV, + _RTCHI, + _RMSV, + _RMSI, + _RMSV_, + _RMSI_, + _RUTCHV, + _RUTCHI, + _RUTEC, + _RMUSV, + _RMUSI, + _RMUSV_, + _RMUSI_, + _RMU, + _RMU_, + _RAUV, + _RAUI, + _RTC, + _RTEC, + _RAFSV, + _RAFSI, + _RMFSV, + _RMFSI, + _RMFSV_, + _RMFSI_, + _RACSV, + _RACSI, + _RMCSV, + _RMCSI, + _RMCSV_, + _RMCSI_, + _RTUHV, + _RTUHI, + _RTEC_, + _UTUHV, + _UTUHI, + _UTEC, + _STUHV, + _STUHI, + _STEC, + _SARTBII, + _SMRTBII, + _SMRTBII_, + _STII, + _STIV, + _STCI, + _STCV, + _SIRI_, + _SIRV, + _CTRV, + _CTFV, + _SCTRV, + _SCTFV, + _CRFR, + _AIACPRV, + _IAFR, + _SCRFR, + _SAIACPRV, + _SIAFR, + ), + ( + (-1, {_sV: _rtchv}), + (-1, {_sV: _rtchi}), + (-1, {_sV: _rmsv}), + (-1, {_sV: _rmsi}), + (-1, {_sV: _rmsv_}), + (-1, {_sV: _rmsi_}), + (-1, {_sV: _rutchv}), + (-1, {_sV: _rutchi}), + (-1, {_sV: _rutec}), + (-1, {_sV: _rmusv}), + (-1, {_sV: _rmusi}), + (-1, {_sV: _rmusv_}), + (-1, {_sV: _rmusi_}), + (-1, {_sV: _rmu}), + (-1, {_sV: _rmu_}), + (-1, {_sV: _rauv}), + (-1, {_sV: _raui}), + (-1, {_sV: _rtc}), + (-1, {_sV: _rtec}), + (-1, {_sV: _rafsv}), + (-1, {_sV: _rafsi}), + (-1, {_sV: _rmfsv}), + (-1, {_sV: _rmfsi}), + (-1, {_sV: _rmfsv_}), + (-1, {_sV: _rmfsi_}), + (-1, {_sV: _racsv}), + (-1, {_sV: _racsi}), + (-1, {_sV: _rmcsv}), + (-1, {_sV: _rmcsi}), + (-1, {_sV: _rmcsv_}), + (-1, {_sV: _rmcsi_}), + (-1, {_sV: _rtuhv}), + (-1, {_sV: _rtuhi}), + (-1, {_sV: _rtec_}), + (-1, {_sV: _utuhv}), + (-1, {_sV: _utuhi}), + (-1, {_sV: _utec}), + (-1, {_sV: _stuhv}), + (-1, {_sV: _stuhi}), + (-1, {_sV: _stec}), + (-1, {_sV: _sartbii}), + (-1, {_sV: _smrtbii}), + (-1, {_sV: _smrtbii_}), + (-1, {_sV: _stii}), + (-1, {_sV: _stiv}), + (-1, {_sV: _stci}), + (-1, {_sV: _stcv}), + (-1, {_sV: _siri}), + (-1, {_sV: _sirv}), + (-1, {_sV: _ctrv}), + (-1, {_sV: _ctfv}), + (-1, {_sV: _sctrv}), + (-1, {_sV: _sctfv}), + (-1, {_sV: _crfr}), + (-1, {_sV: _aiacprv}), + (-1, {_sV: _iafr}), + (-1, {_sV: _scrfr}), + (-1, {_sV: _saiacprv}), + (-1, {_sV: _siafr}), + ), +) + +METRIC_SET: StaticSchema = (16, n0, _MSet, 0, (_me,), ((METRIC, {_sN: _i}),)) + +PERIOD: StaticSchema = (7, n0, _Per, 0) + +GET_CAPACITY_MANAGER_METRIC_DATA_INPUT: StaticSchema = ( + 18, + n0, + _GCMMDI, + {_sSI: _cGCMMDR, _sm: None}, + (_MN, _ST, _ETnd, _Per, _GB, _FB, _MR, _NTex, _DR), + ( + (METRIC_SET, {_sN: _MNe, _smi: None}), + (MILLISECOND_DATE_TIME, 1), + (MILLISECOND_DATE_TIME, 1), + (PERIOD, 1), + (GROUP_BY_SET, {_sN: _GB}), + (CAPACITY_MANAGER_CONDITION_SET, 0), + (MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +RESERVATION_END_DATE_TYPE: StaticSchema = ( + 14, + n0, + _REDTe, + 0, + (_LIMITED, _UNLIMITED), + ((-1, {_sV: _li}), (-1, {_sV: _unl})), +) + +RESERVATION_TYPE: StaticSchema = ( + 14, + n0, + _RTes, + 0, + (_CB_, _ODCR_), + ((-1, {_sV: _cb_}), (-1, {_sV: _odc})), +) + +CAPACITY_MANAGER_TAG_DIMENSION: StaticSchema = ( + 18, + n0, + _CMTD, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +CAPACITY_MANAGER_TAG_DIMENSION_SET: StaticSchema = ( + 16, + n0, + _CMTDS, + 0, + (_me,), + ((CAPACITY_MANAGER_TAG_DIMENSION, {_sN: _i}),), +) + +CAPACITY_TENANCY: StaticSchema = ( + 14, + n0, + _CTap, + 0, + (_DEFAULT, _DEDICATED), + ((-1, {_sV: _def}), (-1, {_sV: _ded})), +) + +CAPACITY_MANAGER_DIMENSION: StaticSchema = ( + 18, + n0, + _CMD, + 0, + ( + _RR, + _AZI, + _AIcco, + _ANcc, + _IF, + _IT, + _IPns, + _RAese, + _RI, + _RTes, + _RCTe, + _RSTe, + _RETe, + _REDTe, + _Ten, + _RSes, + _RIMCe, + _RUFOe, + _Tag, + ), + ( + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _AIcco, _sN: _aIc}), + (STRING, {_aQN: _ANcc, _sN: _aNc}), + (STRING, {_aQN: _IF, _sN: _iF}), + (STRING, {_aQN: _IT, _sN: _iT}), + (STRING, {_aQN: _IPns, _sN: _iPns}), + (STRING, {_aQN: _RAese, _sN: _rAese}), + (STRING, {_aQN: _RI, _sN: _rIes}), + (RESERVATION_TYPE, {_aQN: _RTes, _sN: _rTe}), + (MILLISECOND_DATE_TIME, {_aQN: _RCTe, _sN: _rCTe}), + (MILLISECOND_DATE_TIME, {_aQN: _RSTe, _sN: _rST}), + (MILLISECOND_DATE_TIME, {_aQN: _RETe, _sN: _rETe}), + (RESERVATION_END_DATE_TYPE, {_aQN: _REDTe, _sN: _rEDT}), + (CAPACITY_TENANCY, {_aQN: _Ten, _sN: _ten}), + (RESERVATION_STATE, {_aQN: _RSes, _sN: _rSes}), + (STRING, {_aQN: _RIMCe, _sN: _rIMC}), + (STRING, {_aQN: _RUFOe, _sN: _rUFO}), + (CAPACITY_MANAGER_TAG_DIMENSION_SET, {_aQN: _TSag, _sN: _tS}), + ), +) + +METRIC_VALUE: StaticSchema = ( + 18, + n0, + _MVe, + 0, + (_Met, _Va), + ((METRIC, {_aQN: _Met, _sN: _met}), (DOUBLE, {_aQN: _Va, _sN: _va})), +) + +METRIC_VALUE_SET: StaticSchema = (16, n0, _MVS, 0, (_me,), ((METRIC_VALUE, {_sN: _i}),)) + +METRIC_DATA_RESULT: StaticSchema = ( + 18, + n0, + _MDR, + 0, + (_Dim, _Ti, _MVet), + ( + (CAPACITY_MANAGER_DIMENSION, {_aQN: _Dim, _sN: _dim}), + (MILLISECOND_DATE_TIME, {_aQN: _Ti, _sN: _ti}), + (METRIC_VALUE_SET, {_aQN: _MVS, _sN: _mVS}), + ), +) + +METRIC_DATA_RESULT_SET: StaticSchema = ( + 16, + n0, + _MDRS, + 0, + (_me,), + ((METRIC_DATA_RESULT, {_sN: _i}),), +) + +GET_CAPACITY_MANAGER_METRIC_DATA_OUTPUT: StaticSchema = ( + 18, + n0, + _GCMMDO, + {_sSI: _cGCMMDRo, _smit: None}, + (_MDRe, _NTex), + ( + (METRIC_DATA_RESULT_SET, {_aQN: _MDRS, _sN: _mDRS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_CAPACITY_MANAGER_METRIC_DATA: StaticOperationSchema = ( + 23, + n0, + _GCMMD, + 0, + GET_CAPACITY_MANAGER_METRIC_DATA_INPUT, + GET_CAPACITY_MANAGER_METRIC_DATA_OUTPUT, + (), +) + +GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_INPUT: StaticSchema = ( + 18, + n0, + _GCMMDIe, + {_sSI: _cGCMMDRom, _sm: None}, + (_GB, _FB, _ST, _ETnd, _MN, _MR, _NTex, _DR), + ( + (GROUP_BY_SET, {_sN: _GB, _smi: None}), + (CAPACITY_MANAGER_CONDITION_SET, 0), + (MILLISECOND_DATE_TIME, 1), + (MILLISECOND_DATE_TIME, 1), + (METRIC_SET, {_sN: _MNe, _smi: None}), + (MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +METRIC_DIMENSION_RESULT_SET: StaticSchema = ( + 16, + n0, + _MDRSe, + 0, + (_me,), + ((CAPACITY_MANAGER_DIMENSION, {_sN: _i}),), +) + +GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GCMMDOe, + {_sSI: _cGCMMDRoma, _smit: None}, + (_MDRet, _NTex), + ( + (METRIC_DIMENSION_RESULT_SET, {_aQN: _MDRSe, _sN: _mDRSe}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_CAPACITY_MANAGER_METRIC_DIMENSIONS: StaticOperationSchema = ( + 23, + n0, + _GCMMDe, + 0, + GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_INPUT, + GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_OUTPUT, + (), +) + +GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _GCMMTKRMR, + 0, +) + +GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _GCMMTKI, + {_sSI: _cGCMMTKR, _sm: None}, + (_MR, _NTex, _DR), + ( + (GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_REQUEST_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +CAPACITY_MANAGER_MONITORED_TAG_KEY_STATUS: StaticSchema = ( + 14, + n0, + _CMMTKS, + 0, + (_ACTIVATING, _ACTIVATED, _DEACTIVATING, _SUSPENDED), + ((-1, {_sV: _acti}), (-1, {_sV: _activ}), (-1, {_sV: _deac}), (-1, {_sV: _sus})), +) + +CAPACITY_MANAGER_MONITORED_TAG_KEY: StaticSchema = ( + 18, + n0, + _CMMTK, + 0, + (_TK, _Sta, _SMt, _CMP, _EDTa), + ( + (STRING, {_aQN: _TK, _sN: _tK}), + (CAPACITY_MANAGER_MONITORED_TAG_KEY_STATUS, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (BOOLEAN, {_aQN: _CMP, _sN: _cMP}), + (MILLISECOND_DATE_TIME, {_aQN: _EDTa, _sN: _eDTa}), + ), +) + +CAPACITY_MANAGER_MONITORED_TAG_KEY_LIST: StaticSchema = ( + 16, + n0, + _CMMTKL, + 0, + (_me,), + ((CAPACITY_MANAGER_MONITORED_TAG_KEY, {_sN: _i}),), +) + +GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _GCMMTKO, + {_sSI: _cGCMMTKRo, _smit: None}, + (_CMTK, _NTex), + ( + (CAPACITY_MANAGER_MONITORED_TAG_KEY_LIST, {_aQN: _CMTKS, _sN: _cMTKS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS: StaticOperationSchema = ( + 23, + n0, + _GCMMTK, + 0, + GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT, + GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT, + (), +) + +CAPACITY_AMOUNT: StaticSchema = (7, n0, _CAapa, 0) + +CAPACITY_AVAILABILITY_ZONE_ID_LIST: StaticSchema = ( + 16, + n0, + _CAZIL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +CAPACITY_UNIT: StaticSchema = ( + 14, + n0, + _CU, + 0, + (_VCPUS, _INSTANCES), + ((-1, {_sV: _vcpu}), (-1, {_sV: _insta})), +) + +ARCHITECTURE_TYPE_SET: StaticSchema = ( + 16, + n0, + _ATSr, + 0, + (_me,), + ((ARCHITECTURE_TYPE, {_sN: _i}),), +) + +VIRTUALIZATION_TYPE_SET: StaticSchema = ( + 16, + n0, + _VTS, + 0, + (_me,), + ((VIRTUALIZATION_TYPE, {_sN: _i}),), +) + +INSTANCE_REQUIREMENTS_WITH_METADATA_REQUEST: StaticSchema = ( + 18, + n0, + _IRWMR, + 0, + (_ATrc, _VTir, _IRn), + ( + (ARCHITECTURE_TYPE_SET, {_sN: _ATr}), + (VIRTUALIZATION_TYPE_SET, {_sN: _VTi}), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + ), +) + +SUPPORTABILITY_INSTANCE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _SITL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +SUPPORTABILITY_MARKET_TYPE: StaticSchema = ( + 14, + n0, + _SMT, + 0, + (_OD, _SPOT), + ((-1, {_sV: _od}), (-1, {_sV: _spo})), +) + +GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_INPUT: StaticSchema = ( + 18, + n0, + _GCMSSI, + {_sSI: _cGCMSSR, _sm: None}, + (_MTar, _CAapa, _CU, _CAZI, _ITnsta, _IRWM, _DR), + ( + (SUPPORTABILITY_MARKET_TYPE, 1), + (CAPACITY_AMOUNT, 1), + (CAPACITY_UNIT, 1), + (CAPACITY_AVAILABILITY_ZONE_ID_LIST, {_sN: _CAZIa, _smi: None}), + (SUPPORTABILITY_INSTANCE_TYPE_LIST, {_sN: _IT}), + (INSTANCE_REQUIREMENTS_WITH_METADATA_REQUEST, 0), + (BOOLEAN, 0), + ), +) + +SUPPORTABILITY_SCORE: StaticSchema = ( + 14, + n0, + _SSupp, + 0, + (_HIGH, _MEDIUM, _LOW, _UNSUPPORTED), + ((-1, {_sV: _hig}), (-1, {_sV: _medi}), (-1, {_sV: _low}), (-1, {_sV: _uns})), +) + +CAPACITY_MANAGER_SUPPORTABILITY_SCORE: StaticSchema = ( + 18, + n0, + _CMSS, + 0, + (_IT, _AZI, _Scor), + ( + (STRING, {_aQN: _IT, _sN: _iT}), + (AVAILABILITY_ZONE_ID, {_aQN: _AZI, _sN: _aZI}), + (SUPPORTABILITY_SCORE, {_aQN: _Scor, _sN: _scor}), + ), +) + +CAPACITY_MANAGER_SUPPORTABILITY_SCORE_SET: StaticSchema = ( + 16, + n0, + _CMSSS, + 0, + (_me,), + ((CAPACITY_MANAGER_SUPPORTABILITY_SCORE, {_sN: _i}),), +) + +GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_OUTPUT: StaticSchema = ( + 18, + n0, + _GCMSSO, + {_sSI: _cGCMSSRo, _smit: None}, + (_ASg, _CMSSa), + ( + (SUPPORTABILITY_SCORE, {_aQN: _ASg, _sN: _aSg}), + (CAPACITY_MANAGER_SUPPORTABILITY_SCORE_SET, {_aQN: _CMSSS, _sN: _cMSSS}), + ), +) + +GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES: StaticOperationSchema = ( + 23, + n0, + _GCMSS, + 0, + GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_INPUT, + GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_OUTPUT, + (), +) + +GET_CAPACITY_RESERVATION_USAGE_REQUEST_MAX_RESULTS: StaticSchema = (7, n0, _GCRURMR, 0) + +GET_CAPACITY_RESERVATION_USAGE_INPUT: StaticSchema = ( + 18, + n0, + _GCRUI, + {_sSI: _cGCRUR, _sm: None}, + (_CRI, _NTex, _MR, _DR), + ( + (CAPACITY_RESERVATION_ID, 1), + (STRING, 0), + (GET_CAPACITY_RESERVATION_USAGE_REQUEST_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +INSTANCE_USAGE: StaticSchema = ( + 18, + n0, + _IU, + 0, + (_AIcco, _UIC), + ((STRING, {_aQN: _AIcco, _sN: _aIc}), (INTEGER, {_aQN: _UIC, _sN: _uIC})), +) + +INSTANCE_USAGE_SET: StaticSchema = ( + 16, + n0, + _IUS, + 0, + (_me,), + ((INSTANCE_USAGE, {_sN: _i}),), +) + +GET_CAPACITY_RESERVATION_USAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _GCRUO, + {_sSI: _cGCRURo, _smit: None}, + (_NTex, _CRI, _IT, _TICo, _AIC, _St, _IUn, _Inte, _ICA, _IInt), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (STRING, {_aQN: _CRI, _sN: _cRI}), + (STRING, {_aQN: _IT, _sN: _iT}), + (INTEGER, {_aQN: _TICo, _sN: _tICo}), + (INTEGER, {_aQN: _AIC, _sN: _aIC}), + (CAPACITY_RESERVATION_STATE, {_aQN: _St, _sN: _st}), + (INSTANCE_USAGE_SET, {_aQN: _IUS, _sN: _iUS}), + (BOXED_BOOLEAN, {_aQN: _Inte, _sN: _inte}), + (INTERRUPTIBLE_CAPACITY_ALLOCATION, {_aQN: _ICA, _sN: _iCA}), + (INTERRUPTION_INFO, {_aQN: _IInt, _sN: _iIn}), + ), +) + +GET_CAPACITY_RESERVATION_USAGE: StaticOperationSchema = ( + 23, + n0, + _GCRU, + 0, + GET_CAPACITY_RESERVATION_USAGE_INPUT, + GET_CAPACITY_RESERVATION_USAGE_OUTPUT, + (), +) + +GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GCVEAPI, + {_sSI: _cGCVEAPR, _sm: None}, + (_CVEI, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +CLIENT_VPN_AUTHORIZATION_POLICY_SHADOW_MODE: StaticSchema = ( + 14, + n0, + _CVAPSM, + 0, + (_ena, _d), + ((-1, {_sV: _ena}), (-1, {_sV: _d})), +) + +GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCVEAPO, + {_sSI: _cGCVEAPRo, _smit: None}, + (_CVEI, _PDo, _Des, _SMh, _Sta), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _PDo, _sN: _pDo}), + (STRING, {_aQN: _Des, _sN: _desc}), + (CLIENT_VPN_AUTHORIZATION_POLICY_SHADOW_MODE, {_aQN: _SMh, _sN: _sMh}), + (CLIENT_VPN_AUTHORIZATION_POLICY_STATUS, {_aQN: _Sta, _sN: _sta}), + ), +) + +GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: StaticOperationSchema = ( + 23, + n0, + _GCVEAP, + 0, + GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT, + GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT, + (), +) + +GET_COIP_POOL_USAGE_INPUT: StaticSchema = ( + 18, + n0, + _GCPUI, + {_sSI: _cGCPUR, _sm: None}, + (_PIo, _Fil, _MR, _NTex, _DR), + ( + (IPV4_POOL_COIP_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (COIP_POOL_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +COIP_ADDRESS_USAGE: StaticSchema = ( + 18, + n0, + _CAU, + 0, + (_AI, _AAIw, _ASw, _CIop_), + ( + (STRING, {_aQN: _AI, _sN: _aI}), + (STRING, {_aQN: _AAIw, _sN: _aAI}), + (STRING, {_aQN: _ASw, _sN: _aSw}), + (STRING, {_aQN: _CIop_, _sN: _cIop}), + ), +) + +COIP_ADDRESS_USAGE_SET: StaticSchema = ( + 16, + n0, + _CAUS, + 0, + (_me,), + ((COIP_ADDRESS_USAGE, {_sN: _i}),), +) + +GET_COIP_POOL_USAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _GCPUO, + {_sSI: _cGCPURo, _smit: None}, + (_CPIo, _CAUo, _LGRTI, _NTex), + ( + (STRING, {_aQN: _CPIo, _sN: _cPI}), + (COIP_ADDRESS_USAGE_SET, {_aQN: _CAUS, _sN: _cAUS}), + (STRING, {_aQN: _LGRTI, _sN: _lGRTI}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_COIP_POOL_USAGE: StaticOperationSchema = ( + 23, + n0, + _GCPU, + 0, + GET_COIP_POOL_USAGE_INPUT, + GET_COIP_POOL_USAGE_OUTPUT, + (), +) + +GET_CONSOLE_OUTPUT_INPUT: StaticSchema = ( + 18, + n0, + _GCOI, + {_sSI: _cGCOR, _sm: None}, + (_II, _Lat, _DR), + ((INSTANCE_ID, 1), (BOOLEAN, 0), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +GET_CONSOLE_OUTPUT_OUTPUT: StaticSchema = ( + 18, + n0, + _GCOO, + {_sSI: _cGCORo, _smit: None}, + (_II, _Ti, _Ou), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + (STRING, {_aQN: _Ou, _sN: _outp}), + ), +) + +GET_CONSOLE_OUTPUT: StaticOperationSchema = ( + 23, + n0, + _GCO, + 0, + GET_CONSOLE_OUTPUT_INPUT, + GET_CONSOLE_OUTPUT_OUTPUT, + (), +) + +GET_CONSOLE_SCREENSHOT_INPUT: StaticSchema = ( + 18, + n0, + _GCSI, + {_sSI: _cGCSR, _sm: None}, + (_DR, _II, _WU), + ((BOOLEAN, 0), (INSTANCE_ID, 1), (BOOLEAN, 0)), +) + +GET_CONSOLE_SCREENSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _GCSO, + {_sSI: _cGCSRo, _smit: None}, + (_IDm, _II), + ((STRING, {_aQN: _IDm, _sN: _iDm}), (STRING, {_aQN: _II, _sN: _iI})), +) + +GET_CONSOLE_SCREENSHOT: StaticOperationSchema = ( + 23, + n0, + _GCS, + 0, + GET_CONSOLE_SCREENSHOT_INPUT, + GET_CONSOLE_SCREENSHOT_OUTPUT, + (), +) + +GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_INPUT: StaticSchema = ( + 18, + n0, + _GDPRSI, + {_sSI: _cGDPRSR, _sm: None}, + (_DR, _RIep), + ((BOOLEAN, 0), (DECLARATIVE_POLICIES_REPORT_ID, 1)), +) + +REGIONAL_SUMMARY: StaticSchema = ( + 18, + n0, + _RSeg, + 0, + (_RNe, _NOMA, _NOUA), + ( + (STRING, {_aQN: _RNe, _sN: _rNe}), + (INTEGER, {_aQN: _NOMA, _sN: _nOMA}), + (INTEGER, {_aQN: _NOUA, _sN: _nOUA}), + ), +) + +REGIONAL_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _RSLe, + 0, + (_me,), + ((REGIONAL_SUMMARY, {_sN: _i}),), +) + +ATTRIBUTE_SUMMARY: StaticSchema = ( + 18, + n0, + _ASttr, + 0, + (_ANt, _MFV, _NOMA, _NOUA, _RSegi), + ( + (STRING, {_aQN: _ANt, _sN: _aN}), + (STRING, {_aQN: _MFV, _sN: _mFV}), + (INTEGER, {_aQN: _NOMA, _sN: _nOMA}), + (INTEGER, {_aQN: _NOUA, _sN: _nOUA}), + (REGIONAL_SUMMARY_LIST, {_aQN: _RSSe, _sN: _rSSe}), + ), +) + +ATTRIBUTE_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _ASLt, + 0, + (_me,), + ((ATTRIBUTE_SUMMARY, {_sN: _i}),), +) + +GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_OUTPUT: StaticSchema = ( + 18, + n0, + _GDPRSO, + {_sSI: _cGDPRSRo, _smit: None}, + (_RIep, _SBu, _SPr, _TIa, _ST, _ETnd, _NOA, _NOFA, _ASttri), + ( + (STRING, {_aQN: _RIep, _sN: _rIe}), + (STRING, {_aQN: _SBu, _sN: _sB}), + (STRING, {_aQN: _SPr, _sN: _sP}), + (STRING, {_aQN: _TIa, _sN: _tIa}), + (MILLISECOND_DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (MILLISECOND_DATE_TIME, {_aQN: _ETnd, _sN: _eTnd}), + (INTEGER, {_aQN: _NOA, _sN: _nOA}), + (INTEGER, {_aQN: _NOFA, _sN: _nOFA}), + (ATTRIBUTE_SUMMARY_LIST, {_aQN: _ASSt, _sN: _aSSt}), + ), +) + +GET_DECLARATIVE_POLICIES_REPORT_SUMMARY: StaticOperationSchema = ( + 23, + n0, + _GDPRS, + 0, + GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_INPUT, + GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_OUTPUT, + (), +) + +UNLIMITED_SUPPORTED_INSTANCE_FAMILY: StaticSchema = ( + 14, + n0, + _USIF, + 0, + (_t___________, _t____________, _ta_, _tg, _ti_), + ( + (-1, {_sV: _t___________}), + (-1, {_sV: _t____________}), + (-1, {_sV: _ta_}), + (-1, {_sV: _tg}), + (-1, {_sV: _ti_}), + ), +) + +GET_DEFAULT_CREDIT_SPECIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _GDCSI, + {_sSI: _cGDCSR, _sm: None}, + (_DR, _IF), + ((BOOLEAN, 0), (UNLIMITED_SUPPORTED_INSTANCE_FAMILY, 1)), +) + +INSTANCE_FAMILY_CREDIT_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IFCS, + 0, + (_IF, _CCp), + ( + (UNLIMITED_SUPPORTED_INSTANCE_FAMILY, {_aQN: _IF, _sN: _iF}), + (STRING, {_aQN: _CCp, _sN: _cCp}), + ), +) + +GET_DEFAULT_CREDIT_SPECIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GDCSO, + {_sSI: _cGDCSRo, _smit: None}, + (_IFCS,), + ((INSTANCE_FAMILY_CREDIT_SPECIFICATION, {_aQN: _IFCS, _sN: _iFCS}),), +) + +GET_DEFAULT_CREDIT_SPECIFICATION: StaticOperationSchema = ( + 23, + n0, + _GDCS, + 0, + GET_DEFAULT_CREDIT_SPECIFICATION_INPUT, + GET_DEFAULT_CREDIT_SPECIFICATION_OUTPUT, + (), +) + +GET_EBS_DEFAULT_KMS_KEY_ID_INPUT: StaticSchema = ( + 18, + n0, + _GEDKKII, + {_sSI: _cGEDKKIR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +GET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _GEDKKIO, + {_sSI: _cGEDKKIRo, _smit: None}, + (_KKI,), + ((STRING, {_aQN: _KKI, _sN: _kKI}),), +) + +GET_EBS_DEFAULT_KMS_KEY_ID: StaticOperationSchema = ( + 23, + n0, + _GEDKKI, + 0, + GET_EBS_DEFAULT_KMS_KEY_ID_INPUT, + GET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT, + (), +) + +GET_EBS_ENCRYPTION_BY_DEFAULT_INPUT: StaticSchema = ( + 18, + n0, + _GEEBDI, + {_sSI: _cGEEBDR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +GET_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT: StaticSchema = ( + 18, + n0, + _GEEBDO, + {_sSI: _cGEEBDRo, _smit: None}, + (_EEBD, _STs), + ((BOOLEAN, {_aQN: _EEBD, _sN: _eEBD}), (SSE_TYPE, {_aQN: _STs, _sN: _sTs})), +) + +GET_EBS_ENCRYPTION_BY_DEFAULT: StaticOperationSchema = ( + 23, + n0, + _GEEBD, + 0, + GET_EBS_ENCRYPTION_BY_DEFAULT_INPUT, + GET_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT, + (), +) + +GET_ENABLED_IPAM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GEIPI, + {_sSI: _cGEIPR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +IPAM_POLICY_MANAGED_BY: StaticSchema = ( + 14, + n0, + _IPMB, + 0, + (_acc, _dafi), + ((-1, {_sV: _acc}), (-1, {_sV: _dafi_})), +) + +GET_ENABLED_IPAM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GEIPO, + {_sSI: _cGEIPRo, _smit: None}, + (_IPEp, _IPIp, _MB), + ( + (BOOLEAN, {_aQN: _IPEp, _sN: _iPEp}), + (IPAM_POLICY_ID, {_aQN: _IPIp, _sN: _iPIp}), + (IPAM_POLICY_MANAGED_BY, {_aQN: _MB, _sN: _mB}), + ), +) + +GET_ENABLED_IPAM_POLICY: StaticOperationSchema = ( + 23, + n0, + _GEIP, + 0, + GET_ENABLED_IPAM_POLICY_INPUT, + GET_ENABLED_IPAM_POLICY_OUTPUT, + (), +) + +PARTITION_LOAD_FREQUENCY: StaticSchema = ( + 14, + n0, + _PLF, + 0, + (_NONE, _DAILY, _WEEKLY, _MONTHLY), + ((-1, {_sV: _no}), (-1, {_sV: _da}), (-1, {_sV: _wee}), (-1, {_sV: _mont})), +) + +ATHENA_INTEGRATION: StaticSchema = ( + 18, + n0, + _AIth, + 0, + (_IRSDA, _PLF, _PSD, _PED), + ( + (STRING, 1), + (PARTITION_LOAD_FREQUENCY, 1), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + ), +) + +ATHENA_INTEGRATIONS_SET: StaticSchema = ( + 16, + n0, + _AISt, + 0, + (_me,), + ((ATHENA_INTEGRATION, {_sN: _i}),), +) + +INTEGRATE_SERVICES: StaticSchema = ( + 18, + n0, + _ISnte, + 0, + (_AIthe,), + ((ATHENA_INTEGRATIONS_SET, {_sN: _AIth}),), +) + +GET_FLOW_LOGS_INTEGRATION_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _GFLITI, + {_sSI: _cGFLITR, _sm: None}, + (_DR, _FLIl, _CDSDA, _ISnte), + ( + (BOOLEAN, 0), + (VPC_FLOW_LOG_ID, 1), + (STRING, 1), + (INTEGRATE_SERVICES, {_sN: _ISnteg, _smi: None}), + ), +) + +GET_FLOW_LOGS_INTEGRATION_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GFLITO, + {_sSI: _cGFLITRo, _smit: None}, + (_Resu,), + ((STRING, {_aQN: _Resu, _sN: _resu}),), +) + +GET_FLOW_LOGS_INTEGRATION_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _GFLIT, + 0, + GET_FLOW_LOGS_INTEGRATION_TEMPLATE_INPUT, + GET_FLOW_LOGS_INTEGRATION_TEMPLATE_OUTPUT, + (), +) + +GET_GROUPS_FOR_CAPACITY_RESERVATION_REQUEST_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _GGFCRRMR, + 0, +) + +GET_GROUPS_FOR_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _GGFCRI, + {_sSI: _cGGFCRR, _sm: None}, + (_CRI, _NTex, _MR, _DR), + ( + (CAPACITY_RESERVATION_ID, 1), + (STRING, 0), + (GET_GROUPS_FOR_CAPACITY_RESERVATION_REQUEST_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +CAPACITY_RESERVATION_GROUP: StaticSchema = ( + 18, + n0, + _CRG, + 0, + (_GA, _OIw), + ((STRING, {_aQN: _GA, _sN: _gA}), (STRING, {_aQN: _OIw, _sN: _oI})), +) + +CAPACITY_RESERVATION_GROUP_SET: StaticSchema = ( + 16, + n0, + _CRGS, + 0, + (_me,), + ((CAPACITY_RESERVATION_GROUP, {_sN: _i}),), +) + +GET_GROUPS_FOR_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GGFCRO, + {_sSI: _cGGFCRRo, _smit: None}, + (_NTex, _CRGa), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (CAPACITY_RESERVATION_GROUP_SET, {_aQN: _CRGS, _sN: _cRGS}), + ), +) + +GET_GROUPS_FOR_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _GGFCR, + 0, + GET_GROUPS_FOR_CAPACITY_RESERVATION_INPUT, + GET_GROUPS_FOR_CAPACITY_RESERVATION_OUTPUT, + (), +) + +REQUEST_HOST_ID_SET: StaticSchema = ( + 16, + n0, + _RHISe, + 0, + (_me,), + ((DEDICATED_HOST_ID, {_sN: _i}),), +) + +GET_HOST_RESERVATION_PURCHASE_PREVIEW_INPUT: StaticSchema = ( + 18, + n0, + _GHRPPI, + {_sSI: _cGHRPPR, _sm: None}, + (_HIS, _OI), + ((REQUEST_HOST_ID_SET, 1), (OFFERING_ID, 1)), +) + +PURCHASE: StaticSchema = ( + 18, + n0, + _Pur, + 0, + (_CC, _Dur, _HIS, _HRI, _HP, _IF, _POa, _UPp), + ( + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (INTEGER, {_aQN: _Dur, _sN: _dur}), + (RESPONSE_HOST_ID_SET, {_aQN: _HIS, _sN: _hIS}), + (HOST_RESERVATION_ID, {_aQN: _HRI, _sN: _hRI}), + (STRING, {_aQN: _HP, _sN: _hP}), + (STRING, {_aQN: _IF, _sN: _iF}), + (PAYMENT_OPTION, {_aQN: _POa, _sN: _pOa}), + (STRING, {_aQN: _UPp, _sN: _uPp}), + ), +) + +PURCHASE_SET: StaticSchema = (16, n0, _PSu, 0, (_me,), ((PURCHASE, {_sN: _i}),)) + +GET_HOST_RESERVATION_PURCHASE_PREVIEW_OUTPUT: StaticSchema = ( + 18, + n0, + _GHRPPO, + {_sSI: _cGHRPPRo, _smit: None}, + (_CC, _Pur, _THP, _TUP), + ( + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (PURCHASE_SET, {_aQN: _Pur, _sN: _pur}), + (STRING, {_aQN: _THP, _sN: _tHP}), + (STRING, {_aQN: _TUP, _sN: _tUP}), + ), +) + +GET_HOST_RESERVATION_PURCHASE_PREVIEW: StaticOperationSchema = ( + 23, + n0, + _GHRPP, + 0, + GET_HOST_RESERVATION_PURCHASE_PREVIEW_INPUT, + GET_HOST_RESERVATION_PURCHASE_PREVIEW_OUTPUT, + (), +) + +GET_IMAGE_ANCESTRY_INPUT: StaticSchema = ( + 18, + n0, + _GIAI, + {_sSI: _cGIAR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +IMAGE_ANCESTRY_ENTRY: StaticSchema = ( + 18, + n0, + _IAE, + 0, + (_CDre, _IIm, _IOA, _SII, _SIR), + ( + (MILLISECOND_DATE_TIME, {_aQN: _CDre, _sN: _cDre}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _IOA, _sN: _iOA}), + (IMAGE_ID, {_aQN: _SII, _sN: _sII}), + (STRING, {_aQN: _SIR, _sN: _sIR}), + ), +) + +IMAGE_ANCESTRY_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _IAEL, + 0, + (_me,), + ((IMAGE_ANCESTRY_ENTRY, {_sN: _i}),), +) + +GET_IMAGE_ANCESTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _GIAO, + {_sSI: _cGIARo, _smit: None}, + (_IAEm,), + ((IMAGE_ANCESTRY_ENTRY_LIST, {_aQN: _IAES, _sN: _iAES}),), +) + +GET_IMAGE_ANCESTRY: StaticOperationSchema = ( + 23, + n0, + _GIAe, + 0, + GET_IMAGE_ANCESTRY_INPUT, + GET_IMAGE_ANCESTRY_OUTPUT, + (), +) + +GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_INPUT: StaticSchema = ( + 18, + n0, + _GIBPASI, + {_sSI: _cGIBPASR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GIBPASO, + {_sSI: _cGIBPASRo, _smit: None}, + (_IBPAS, _MB), + ((STRING, {_aQN: _IBPAS, _sN: _iBPAS}), (MANAGED_BY, {_aQN: _MB, _sN: _mB})), +) + +GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE: StaticOperationSchema = ( + 23, + n0, + _GIBPAS, + 0, + GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_INPUT, + GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT, + (), +) + +GET_IMAGE_FINDINGS_MAX_RESULTS: StaticSchema = (7, n0, _GIFMR, 0) + +GET_IMAGE_FINDINGS_INPUT: StaticSchema = ( + 18, + n0, + _GIFI, + {_sSI: _cGIFR, _sm: None}, + (_IIm, _MR, _NTex, _DR), + ((IMAGE_ID, 1), (GET_IMAGE_FINDINGS_MAX_RESULTS, 0), (STRING, 0), (BOOLEAN, 0)), +) + +IMAGE_FINDING_PATH_SET: StaticSchema = ( + 16, + n0, + _IFPS, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +IMAGE_FINDING: StaticSchema = ( + 18, + n0, + _IFm, + 0, + (_FAix, _Scor, _FOAi, _UA, _Tit, _Pat, _SLe, _SIn), + ( + (BOOLEAN, {_aQN: _FAix, _sN: _fAix}), + (DOUBLE, {_aQN: _Scor, _sN: _scor}), + (MILLISECOND_DATE_TIME, {_aQN: _FOAi, _sN: _fOA}), + (MILLISECOND_DATE_TIME, {_aQN: _UA, _sN: _uA}), + (STRING, {_aQN: _Tit, _sN: _tit}), + (IMAGE_FINDING_PATH_SET, {_aQN: _PSat, _sN: _pSa}), + (SEVERITY_LABEL, {_aQN: _SLe, _sN: _sLe}), + (SNAPSHOT_ID, {_aQN: _SIn, _sN: _sIn}), + ), +) + +GET_IMAGE_FINDINGS_ENTRY_SET: StaticSchema = ( + 16, + n0, + _GIFES, + 0, + (_me,), + ((IMAGE_FINDING, {_sN: _i}),), +) + +GET_IMAGE_FINDINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIFO, + {_sSI: _cGIFRo, _smit: None}, + (_IFma, _NTex), + ( + (GET_IMAGE_FINDINGS_ENTRY_SET, {_aQN: _IFS, _sN: _iFS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IMAGE_FINDINGS: StaticOperationSchema = ( + 23, + n0, + _GIF, + 0, + GET_IMAGE_FINDINGS_INPUT, + GET_IMAGE_FINDINGS_OUTPUT, + (), +) + +GET_INSTANCE_METADATA_DEFAULTS_INPUT: StaticSchema = ( + 18, + n0, + _GIMDI, + {_sSI: _cGIMDR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +HTTP_TOKENS_ENFORCED_STATE: StaticSchema = ( + 14, + n0, + _HTES, + 0, + (_d, _ena), + ((-1, {_sV: _d}), (-1, {_sV: _ena})), +) + +INSTANCE_METADATA_DEFAULTS_RESPONSE: StaticSchema = ( + 18, + n0, + _IMDR, + 0, + (_HTt, _HPRHL, _HE, _IMT, _MB, _MEM, _HTE), + ( + (HTTP_TOKENS_STATE, {_aQN: _HTt, _sN: _hTt}), + (BOXED_INTEGER, {_aQN: _HPRHL, _sN: _hPRHL}), + (INSTANCE_METADATA_ENDPOINT_STATE, {_aQN: _HE, _sN: _hE}), + (INSTANCE_METADATA_TAGS_STATE, {_aQN: _IMT, _sN: _iMT}), + (MANAGED_BY, {_aQN: _MB, _sN: _mB}), + (STRING, {_aQN: _MEM, _sN: _mEM}), + (HTTP_TOKENS_ENFORCED_STATE, {_aQN: _HTE, _sN: _hTE}), + ), +) + +GET_INSTANCE_METADATA_DEFAULTS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIMDO, + {_sSI: _cGIMDRo, _smit: None}, + (_ALcc,), + ((INSTANCE_METADATA_DEFAULTS_RESPONSE, {_aQN: _ALcc, _sN: _aLc}),), +) + +GET_INSTANCE_METADATA_DEFAULTS: StaticOperationSchema = ( + 23, + n0, + _GIMD, + 0, + GET_INSTANCE_METADATA_DEFAULTS_INPUT, + GET_INSTANCE_METADATA_DEFAULTS_OUTPUT, + (), +) + +EK_PUB_KEY_FORMAT: StaticSchema = ( + 14, + n0, + _EPKF, + 0, + (_der_, _tpm), + ((-1, {_sV: _der_}), (-1, {_sV: _tpm})), +) + +EK_PUB_KEY_TYPE: StaticSchema = ( + 14, + n0, + _EPKT, + 0, + (_R_, _ESP), + ( + ( + -1, + { + _sV: _r___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ + }, + ), + (-1, {_sV: _esp}), + ), +) + +GET_INSTANCE_TPM_EK_PUB_INPUT: StaticSchema = ( + 18, + n0, + _GITEPI, + {_sSI: _cGITEPR, _sm: None}, + (_II, _KT, _KF, _DR), + ( + (INSTANCE_ID, {_sN: _II, _smi: None}), + (EK_PUB_KEY_TYPE, 1), + (EK_PUB_KEY_FORMAT, 1), + (BOOLEAN, 0), + ), +) + +EK_PUB_KEY_VALUE: StaticSchema = (3, n0, _EPKV, 4) + +GET_INSTANCE_TPM_EK_PUB_OUTPUT: StaticSchema = ( + 18, + n0, + _GITEPO, + {_sSI: _cGITEPRo, _smit: None}, + (_II, _KT, _KF, _KV), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (EK_PUB_KEY_TYPE, {_aQN: _KT, _sN: _kT}), + (EK_PUB_KEY_FORMAT, {_aQN: _KF, _sN: _kFe}), + (EK_PUB_KEY_VALUE, {_aQN: _KV, _sN: _kV}), + ), +) + +GET_INSTANCE_TPM_EK_PUB: StaticOperationSchema = ( + 23, + n0, + _GITEP, + 0, + GET_INSTANCE_TPM_EK_PUB_INPUT, + GET_INSTANCE_TPM_EK_PUB_OUTPUT, + (), +) + +GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_INPUT: StaticSchema = ( + 18, + n0, + _GITFIRI, + {_sSI: _cGITFIRR, _sm: None}, + (_DR, _ATrc, _VTir, _IRn, _MR, _NTex, _Con), + ( + (BOOLEAN, 0), + (ARCHITECTURE_TYPE_SET, {_sN: _ATr, _smi: None}), + (VIRTUALIZATION_TYPE_SET, {_sN: _VTi, _smi: None}), + (INSTANCE_REQUIREMENTS_REQUEST, 1), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + ), +) + +INSTANCE_TYPE_INFO_FROM_INSTANCE_REQUIREMENTS: StaticSchema = ( + 18, + n0, + _ITIFIR, + 0, + (_IT,), + ((STRING, {_aQN: _IT, _sN: _iT}),), +) + +INSTANCE_TYPE_INFO_FROM_INSTANCE_REQUIREMENTS_SET: StaticSchema = ( + 16, + n0, + _ITIFIRS, + 0, + (_me,), + ((INSTANCE_TYPE_INFO_FROM_INSTANCE_REQUIREMENTS, {_sN: _i}),), +) + +GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _GITFIRO, + {_sSI: _cGITFIRRo, _smit: None}, + (_ITnsta, _NTex), + ( + ( + INSTANCE_TYPE_INFO_FROM_INSTANCE_REQUIREMENTS_SET, + {_aQN: _ITSns, _sN: _iTSns}, + ), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS: StaticOperationSchema = ( + 23, + n0, + _GITFIR, + 0, + GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_INPUT, + GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_OUTPUT, + (), +) + +GET_INSTANCE_UEFI_DATA_INPUT: StaticSchema = ( + 18, + n0, + _GIUDI, + {_sSI: _cGIUDR, _sm: None}, + (_II, _DR), + ((INSTANCE_ID, {_sN: _II, _smi: None}), (BOOLEAN, 0)), +) + +SENSITIVE_STRING: StaticSchema = (3, n0, _SSen, 4) + +GET_INSTANCE_UEFI_DATA_OUTPUT: StaticSchema = ( + 18, + n0, + _GIUDO, + {_sSI: _cGIUDRo, _smit: None}, + (_II, _UDe), + ((INSTANCE_ID, {_aQN: _II, _sN: _iI}), (SENSITIVE_STRING, {_aQN: _UDe, _sN: _uDe})), +) + +GET_INSTANCE_UEFI_DATA: StaticOperationSchema = ( + 23, + n0, + _GIUD, + 0, + GET_INSTANCE_UEFI_DATA_INPUT, + GET_INSTANCE_UEFI_DATA_OUTPUT, + (), +) + +IPAM_ADDRESS_HISTORY_MAX_RESULTS: StaticSchema = (7, n0, _IAHMR, 0) + +GET_IPAM_ADDRESS_HISTORY_INPUT: StaticSchema = ( + 18, + n0, + _GIAHI, + {_sSI: _cGIAHR, _sm: None}, + (_DR, _Ci, _ISI, _VI, _ST, _ETnd, _MR, _NTex), + ( + (BOOLEAN, 0), + (STRING, 1), + (IPAM_SCOPE_ID, 1), + (STRING, 0), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (IPAM_ADDRESS_HISTORY_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_COMPLIANCE_STATUS: StaticSchema = ( + 14, + n0, + _ICSp, + 0, + (_complia, _non, _unm, _ign), + ((-1, {_sV: _complia}), (-1, {_sV: _non}), (-1, {_sV: _unm}), (-1, {_sV: _ign})), +) + +IPAM_OVERLAP_STATUS: StaticSchema = ( + 14, + n0, + _IOSp, + 0, + (_ove, _nono, _ign), + ((-1, {_sV: _ove}), (-1, {_sV: _nono}), (-1, {_sV: _ign})), +) + +IPAM_ADDRESS_HISTORY_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IAHRT, + 0, + (_eip, _vp, _su, _ni, _ins), + ( + (-1, {_sV: _eip}), + (-1, {_sV: _vp}), + (-1, {_sV: _su}), + (-1, {_sV: _ni_}), + (-1, {_sV: _ins}), + ), +) + +IPAM_ADDRESS_HISTORY_RECORD: StaticSchema = ( + 18, + n0, + _IAHR, + 0, + (_ROI, _RR, _RT, _RIe, _RCes, _RNes, _RCS, _ROSe, _VI, _SST, _SET), + ( + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _RR, _sN: _rR}), + (IPAM_ADDRESS_HISTORY_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _RCes, _sN: _rCes}), + (STRING, {_aQN: _RNes, _sN: _rNes}), + (IPAM_COMPLIANCE_STATUS, {_aQN: _RCS, _sN: _rCS}), + (IPAM_OVERLAP_STATUS, {_aQN: _ROSe, _sN: _rOSe}), + (STRING, {_aQN: _VI, _sN: _vI}), + (MILLISECOND_DATE_TIME, {_aQN: _SST, _sN: _sST}), + (MILLISECOND_DATE_TIME, {_aQN: _SET, _sN: _sET}), + ), +) + +IPAM_ADDRESS_HISTORY_RECORD_SET: StaticSchema = ( + 16, + n0, + _IAHRS, + 0, + (_me,), + ((IPAM_ADDRESS_HISTORY_RECORD, {_sN: _i}),), +) + +GET_IPAM_ADDRESS_HISTORY_OUTPUT: StaticSchema = ( + 18, + n0, + _GIAHO, + {_sSI: _cGIAHRo, _smit: None}, + (_HRi, _NTex), + ( + (IPAM_ADDRESS_HISTORY_RECORD_SET, {_aQN: _HRS, _sN: _hRS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_ADDRESS_HISTORY: StaticOperationSchema = ( + 23, + n0, + _GIAH, + 0, + GET_IPAM_ADDRESS_HISTORY_INPUT, + GET_IPAM_ADDRESS_HISTORY_OUTPUT, + (), +) + +GET_IPAM_DISCOVERED_ACCOUNTS_INPUT: StaticSchema = ( + 18, + n0, + _GIDAI, + {_sSI: _cGIDAR, _sm: None}, + (_DR, _IRDI, _DRi, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (STRING, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + ), +) + +IPAM_DISCOVERY_FAILURE_CODE: StaticSchema = ( + 14, + n0, + _IDFC, + 0, + (_arf, _tf__, _uf__), + ((-1, {_sV: _arf_}), (-1, {_sV: _tf___}), (-1, {_sV: _uf___})), +) + +IPAM_DISCOVERY_FAILURE_REASON: StaticSchema = ( + 18, + n0, + _IDFR, + 0, + (_C, _Me), + ( + (IPAM_DISCOVERY_FAILURE_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +IPAM_DISCOVERED_ACCOUNT: StaticSchema = ( + 18, + n0, + _IDA, + 0, + (_AIcco, _DRi, _FRa, _LADT, _LSDT, _OUI), + ( + (STRING, {_aQN: _AIcco, _sN: _aIc}), + (STRING, {_aQN: _DRi, _sN: _dRi}), + (IPAM_DISCOVERY_FAILURE_REASON, {_aQN: _FRa, _sN: _fRa}), + (MILLISECOND_DATE_TIME, {_aQN: _LADT, _sN: _lADT}), + (MILLISECOND_DATE_TIME, {_aQN: _LSDT, _sN: _lSDT}), + (STRING, {_aQN: _OUI, _sN: _oUI}), + ), +) + +IPAM_DISCOVERED_ACCOUNT_SET: StaticSchema = ( + 16, + n0, + _IDAS, + 0, + (_me,), + ((IPAM_DISCOVERED_ACCOUNT, {_sN: _i}),), +) + +GET_IPAM_DISCOVERED_ACCOUNTS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIDAO, + {_sSI: _cGIDARo, _smit: None}, + (_IDAp, _NTex), + ( + (IPAM_DISCOVERED_ACCOUNT_SET, {_aQN: _IDAS, _sN: _iDAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_DISCOVERED_ACCOUNTS: StaticOperationSchema = ( + 23, + n0, + _GIDA, + 0, + GET_IPAM_DISCOVERED_ACCOUNTS_INPUT, + GET_IPAM_DISCOVERED_ACCOUNTS_OUTPUT, + (), +) + +GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _GIDPAI, + {_sSI: _cGIDPAR, _sm: None}, + (_DR, _IRDI, _ARd, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (STRING, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + ), +) + +IPAM_PUBLIC_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _IPAT, + 0, + (_SMI, _SMB, _AOE, _AOC, _BYOIP, _EPI_, _AILI), + ( + (-1, {_sV: _smi_}), + (-1, {_sV: _smb}), + (-1, {_sV: _aoe}), + (-1, {_sV: _aoc}), + (-1, {_sV: _b}), + (-1, {_sV: _epi}), + (-1, {_sV: _aili}), + ), +) + +IPAM_PUBLIC_ADDRESS_ASSOCIATION_STATUS: StaticSchema = ( + 14, + n0, + _IPAAS, + 0, + (_ASSOCIATED, _DISASSOCIATED), + ((-1, {_sV: _ass}), (-1, {_sV: _dis})), +) + +IPAM_PUBLIC_ADDRESS_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _IPASG, + 0, + (_GN, _GIr), + ((STRING, {_aQN: _GN, _sN: _gN}), (STRING, {_aQN: _GIr, _sN: _gIr})), +) + +IPAM_PUBLIC_ADDRESS_SECURITY_GROUP_LIST: StaticSchema = ( + 16, + n0, + _IPASGL, + 0, + (_me,), + ((IPAM_PUBLIC_ADDRESS_SECURITY_GROUP, {_sN: _i}),), +) + +IPAM_PUBLIC_ADDRESS_AWS_SERVICE: StaticSchema = ( + 14, + n0, + _IPAASp, + 0, + (_NG_, _DMS, _REDSHIFT, _ECS_, _RDS_, _SV_, _EL_, _AGA, _CLOUDFRONT, _OTHER), + ( + (-1, {_sV: _ng}), + (-1, {_sV: _dms}), + (-1, {_sV: _red}), + (-1, {_sV: _ecs}), + (-1, {_sV: _rds}), + (-1, {_sV: _stsv}), + (-1, {_sV: _lb_}), + (-1, {_sV: _ga_}), + (-1, {_sV: _clo}), + (-1, {_sV: _oth}), + ), +) + +IPAM_PUBLIC_ADDRESS_TAG: StaticSchema = ( + 18, + n0, + _IPATp, + 0, + (_Ke, _Va), + ((STRING, {_aQN: _Ke, _sN: _ke}), (STRING, {_aQN: _Va, _sN: _va})), +) + +IPAM_PUBLIC_ADDRESS_TAG_LIST: StaticSchema = ( + 16, + n0, + _IPATL, + 0, + (_me,), + ((IPAM_PUBLIC_ADDRESS_TAG, {_sN: _i}),), +) + +IPAM_PUBLIC_ADDRESS_TAGS: StaticSchema = ( + 18, + n0, + _IPATpa, + 0, + (_ETi,), + ((IPAM_PUBLIC_ADDRESS_TAG_LIST, {_aQN: _ETSi, _sN: _eTSi}),), +) + +IPAM_DISCOVERED_PUBLIC_ADDRESS: StaticSchema = ( + 18, + n0, + _IDPA, + 0, + ( + _IRDI, + _ARd, + _Ad, + _AOI, + _AAId, + _ASs, + _ATddre, + _Ser, + _SRerv, + _VI, + _SIu, + _PIPI, + _NII, + _NID, + _II, + _Tag, + _NBG, + _SGe, + _STa, + ), + ( + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _IRDI, _sN: _iRDI}), + (STRING, {_aQN: _ARd, _sN: _aRd}), + (STRING, {_aQN: _Ad, _sN: _ad}), + (STRING, {_aQN: _AOI, _sN: _aOI}), + (STRING, {_aQN: _AAId, _sN: _aAId}), + (IPAM_PUBLIC_ADDRESS_ASSOCIATION_STATUS, {_aQN: _ASs, _sN: _aSsso}), + (IPAM_PUBLIC_ADDRESS_TYPE, {_aQN: _ATddre, _sN: _aTddr}), + (IPAM_PUBLIC_ADDRESS_AWS_SERVICE, {_aQN: _Ser, _sN: _ser}), + (STRING, {_aQN: _SRerv, _sN: _sRer}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _PIPI, _sN: _pIPI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (STRING, {_aQN: _NID, _sN: _nID}), + (STRING, {_aQN: _II, _sN: _iI}), + (IPAM_PUBLIC_ADDRESS_TAGS, {_aQN: _Tag, _sN: _tags}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (IPAM_PUBLIC_ADDRESS_SECURITY_GROUP_LIST, {_aQN: _SGS, _sN: _sGS}), + (MILLISECOND_DATE_TIME, {_aQN: _STa, _sN: _sTa}), + ), +) + +IPAM_DISCOVERED_PUBLIC_ADDRESS_SET: StaticSchema = ( + 16, + n0, + _IDPAS, + 0, + (_me,), + ((IPAM_DISCOVERED_PUBLIC_ADDRESS, {_sN: _i}),), +) + +GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _GIDPAO, + {_sSI: _cGIDPARo, _smit: None}, + (_IDPAp, _OST, _NTex), + ( + (IPAM_DISCOVERED_PUBLIC_ADDRESS_SET, {_aQN: _IDPAS, _sN: _iDPAS}), + (MILLISECOND_DATE_TIME, {_aQN: _OST, _sN: _oST}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _GIDPA, + 0, + GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_INPUT, + GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_OUTPUT, + (), +) + +GET_IPAM_DISCOVERED_RESOURCE_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _GIDRCI, + {_sSI: _cGIDRCR, _sm: None}, + (_DR, _IRDI, _RR, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (STRING, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + ), +) + +IPAM_RESOURCE_CIDR_IP_SOURCE: StaticSchema = ( + 14, + n0, + _IRCIS, + 0, + (_ama, _b, _no), + ((-1, {_sV: _ama}), (-1, {_sV: _b}), (-1, {_sV: _no})), +) + +BOXED_DOUBLE: StaticSchema = (10, n0, _BD, 0) + +IPAM_NETWORK_INTERFACE_ATTACHMENT_STATUS: StaticSchema = ( + 14, + n0, + _INIAS, + 0, + (_av, _iu), + ((-1, {_sV: _av}), (-1, {_sV: _iu_})), +) + +IPAM_DISCOVERED_RESOURCE_CIDR: StaticSchema = ( + 18, + n0, + _IDRC, + 0, + ( + _IRDI, + _RR, + _RIe, + _ROI, + _RCes, + _ISp, + _RT, + _RTesou, + _IUp, + _VI, + _SIu, + _NIASetw, + _STa, + _AZI, + ), + ( + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _IRDI, _sN: _iRDI}), + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _RCes, _sN: _rCes}), + (IPAM_RESOURCE_CIDR_IP_SOURCE, {_aQN: _ISp, _sN: _iSp}), + (IPAM_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (IPAM_RESOURCE_TAG_LIST, {_aQN: _RTSes, _sN: _rTSes}), + (BOXED_DOUBLE, {_aQN: _IUp, _sN: _iU}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (IPAM_NETWORK_INTERFACE_ATTACHMENT_STATUS, {_aQN: _NIASetw, _sN: _nIASet}), + (MILLISECOND_DATE_TIME, {_aQN: _STa, _sN: _sTa}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + ), +) + +IPAM_DISCOVERED_RESOURCE_CIDR_SET: StaticSchema = ( + 16, + n0, + _IDRCS, + 0, + (_me,), + ((IPAM_DISCOVERED_RESOURCE_CIDR, {_sN: _i}),), +) + +GET_IPAM_DISCOVERED_RESOURCE_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIDRCO, + {_sSI: _cGIDRCRo, _smit: None}, + (_IDRCp, _NTex), + ( + (IPAM_DISCOVERED_RESOURCE_CIDR_SET, {_aQN: _IDRCS, _sN: _iDRCS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_DISCOVERED_RESOURCE_CIDRS: StaticOperationSchema = ( + 23, + n0, + _GIDRC, + 0, + GET_IPAM_DISCOVERED_RESOURCE_CIDRS_INPUT, + GET_IPAM_DISCOVERED_RESOURCE_CIDRS_OUTPUT, + (), +) + +GET_IPAM_DISCOVERED_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _GIDRI, + {_sSI: _cGIDRR, _sm: None}, + (_DR, _IRDI, _RR, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (STRING, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + ), +) + +IPAM_BYOIP_ADVERTISEMENT_TYPE: StaticSchema = ( + 14, + n0, + _IBAT, + 0, + (_regi, _glo), + ((-1, {_sV: _regi}), (-1, {_sV: _glo})), +) + +IPAM_BYOIP_CIDR_STATE: StaticSchema = ( + 14, + n0, + _IBCS, + 0, + (_adv, _dep, _fd__, _fp, _pa____, _pd__, _pp, _pw, _prov, _pnpa), + ( + (-1, {_sV: _adv}), + (-1, {_sV: _dep}), + (-1, {_sV: _fd___}), + (-1, {_sV: _fp_}), + (-1, {_sV: _pa_____}), + (-1, {_sV: _pd___}), + (-1, {_sV: _pp_}), + (-1, {_sV: _pw_}), + (-1, {_sV: _prov}), + (-1, {_sV: _pnpa_}), + ), +) + +IPAM_DISCOVERED_ROUTE: StaticSchema = ( + 18, + n0, + _IDRp, + 0, + (_IRDI, _RR, _ROI, _Ci, _Asn, _St, _ATdv, _NBG, _PIo, _IPI, _STa), + ( + (IPAM_RESOURCE_DISCOVERY_ID, {_aQN: _IRDI, _sN: _iRDI}), + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _Ci, _sN: _ci}), + (STRING, {_aQN: _Asn, _sN: _asn}), + (IPAM_BYOIP_CIDR_STATE, {_aQN: _St, _sN: _st}), + (IPAM_BYOIP_ADVERTISEMENT_TYPE, {_aQN: _ATdv, _sN: _aTd}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _PIo, _sN: _pIo}), + (STRING, {_aQN: _IPI, _sN: _iPI}), + (MILLISECOND_DATE_TIME, {_aQN: _STa, _sN: _sTa}), + ), +) + +IPAM_DISCOVERED_ROUTE_SET: StaticSchema = ( + 16, + n0, + _IDRS, + 0, + (_me,), + ((IPAM_DISCOVERED_ROUTE, {_sN: _i}),), +) + +GET_IPAM_DISCOVERED_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _GIDRO, + {_sSI: _cGIDRRo, _smit: None}, + (_IDRpa, _NTex), + ( + (IPAM_DISCOVERED_ROUTE_SET, {_aQN: _IDRS, _sN: _iDRS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_DISCOVERED_ROUTES: StaticOperationSchema = ( + 23, + n0, + _GIDR, + 0, + GET_IPAM_DISCOVERED_ROUTES_INPUT, + GET_IPAM_DISCOVERED_ROUTES_OUTPUT, + (), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_INPUT: StaticSchema = ( + 18, + n0, + _GIIRAAI, + {_sSI: _cGIIRAAR, _sm: None}, + (_DR, _IIRAI, _MR, _NTex, _Fil), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_ASN: StaticSchema = ( + 18, + n0, + _IIRAAp, + 0, + (_Asn, _LOA), + ( + (STRING, {_aQN: _Asn, _sN: _asn}), + (MILLISECOND_DATE_TIME, {_aQN: _LOA, _sN: _lOA}), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_ASN_SET: StaticSchema = ( + 16, + n0, + _IIRAAS, + 0, + (_me,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION_ASN, {_sN: _i}),), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIIRAAO, + {_sSI: _cGIIRAARo, _smit: None}, + (_NTex, _IIRAApa), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ASN_SET, {_aQN: _IIRAAS, _sN: _iIRAAS}), + ), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS: StaticOperationSchema = ( + 23, + n0, + _GIIRAA, + 0, + GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_INPUT, + GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_OUTPUT, + (), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _GIIRACI, + {_sSI: _cGIIRACR, _sm: None}, + (_DR, _IIRAI, _MR, _NTex, _Fil), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDR: StaticSchema = ( + 18, + n0, + _IIRAC, + 0, + (_Ci, _LOA), + ((STRING, {_aQN: _Ci, _sN: _ci}), (MILLISECOND_DATE_TIME, {_aQN: _LOA, _sN: _lOA})), +) + +IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDR_SET: StaticSchema = ( + 16, + n0, + _IIRACS, + 0, + (_me,), + ((IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDR, {_sN: _i}),), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIIRACO, + {_sSI: _cGIIRACRo, _smit: None}, + (_NTex, _IIRACp), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDR_SET, {_aQN: _IIRACS, _sN: _iIRACS}), + ), +) + +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS: StaticOperationSchema = ( + 23, + n0, + _GIIRAC, + 0, + GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_INPUT, + GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_OUTPUT, + (), +) + +IPAM_POLICY_RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _IPRT, + 0, + (_al, _eip, _rd, _rn), + ((-1, {_sV: _al}), (-1, {_sV: _eip}), (-1, {_sV: _rd}), (-1, {_sV: _rn})), +) + +GET_IPAM_POLICY_ALLOCATION_RULES_INPUT: StaticSchema = ( + 18, + n0, + _GIPARI, + {_sSI: _cGIPARR, _sm: None}, + (_DR, _IPIp, _Fil, _Loc, _RT, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_POLICY_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (STRING, 0), + (IPAM_POLICY_RESOURCE_TYPE, 0), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_POLICY_ALLOCATION_RULE: StaticSchema = ( + 18, + n0, + _IPAR, + 0, + (_SIPI,), + ((IPAM_POOL_ID, {_aQN: _SIPI, _sN: _sIPI}),), +) + +IPAM_POLICY_ALLOCATION_RULE_LIST: StaticSchema = ( + 16, + n0, + _IPARL, + 0, + (_me,), + ((IPAM_POLICY_ALLOCATION_RULE, {_sN: _i}),), +) + +IPAM_POLICY_DOCUMENT: StaticSchema = ( + 18, + n0, + _IPD, + 0, + (_IPIp, _Loc, _RT, _ARllo), + ( + (IPAM_POLICY_ID, {_aQN: _IPIp, _sN: _iPIp}), + (STRING, {_aQN: _Loc, _sN: _loc}), + (IPAM_POLICY_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (IPAM_POLICY_ALLOCATION_RULE_LIST, {_aQN: _ARSl, _sN: _aRSl}), + ), +) + +IPAM_POLICY_DOCUMENT_SET: StaticSchema = ( + 16, + n0, + _IPDS, + 0, + (_me,), + ((IPAM_POLICY_DOCUMENT, {_sN: _i}),), +) + +GET_IPAM_POLICY_ALLOCATION_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPARO, + {_sSI: _cGIPARRo, _smit: None}, + (_IPDp, _NTex), + ( + (IPAM_POLICY_DOCUMENT_SET, {_aQN: _IPDS, _sN: _iPDS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_POLICY_ALLOCATION_RULES: StaticOperationSchema = ( + 23, + n0, + _GIPAR, + 0, + GET_IPAM_POLICY_ALLOCATION_RULES_INPUT, + GET_IPAM_POLICY_ALLOCATION_RULES_OUTPUT, + (), +) + +GET_IPAM_POLICY_ORGANIZATION_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _GIPOTI, + {_sSI: _cGIPOTR, _sm: None}, + (_DR, _MR, _NTex, _IPIp, _Fil), + ( + (BOOLEAN, 0), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (IPAM_POLICY_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +IPAM_POLICY_ORGANIZATION_TARGET: StaticSchema = ( + 18, + n0, + _IPOT, + 0, + (_OTI,), + ((STRING, {_aQN: _OTI, _sN: _oTI}),), +) + +IPAM_POLICY_ORGANIZATION_TARGET_SET: StaticSchema = ( + 16, + n0, + _IPOTS, + 0, + (_me,), + ((IPAM_POLICY_ORGANIZATION_TARGET, {_sN: _i}),), +) + +GET_IPAM_POLICY_ORGANIZATION_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPOTO, + {_sSI: _cGIPOTRo, _smit: None}, + (_OTrg, _NTex), + ( + (IPAM_POLICY_ORGANIZATION_TARGET_SET, {_aQN: _OTS, _sN: _oTS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_POLICY_ORGANIZATION_TARGETS: StaticOperationSchema = ( + 23, + n0, + _GIPOT, + 0, + GET_IPAM_POLICY_ORGANIZATION_TARGETS_INPUT, + GET_IPAM_POLICY_ORGANIZATION_TARGETS_OUTPUT, + (), +) + +GET_IPAM_POOL_ALLOCATIONS_MAX_RESULTS: StaticSchema = (7, n0, _GIPAMR, 0) + +GET_IPAM_POOL_ALLOCATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GIPAI, + {_sSI: _cGIPAR, _sm: None}, + (_DR, _IPI, _IPAI, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_POOL_ID, 1), + (IPAM_POOL_ALLOCATION_ID, 0), + (FILTER_LIST, {_sN: _Fi}), + (GET_IPAM_POOL_ALLOCATIONS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +GET_IPAM_POOL_ALLOCATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPAO, + {_sSI: _cGIPARo, _smit: None}, + (_IPApam, _NTex), + ( + (IPAM_POOL_ALLOCATION_SET, {_aQN: _IPASp, _sN: _iPAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_POOL_ALLOCATIONS: StaticOperationSchema = ( + 23, + n0, + _GIPA, + 0, + GET_IPAM_POOL_ALLOCATIONS_INPUT, + GET_IPAM_POOL_ALLOCATIONS_OUTPUT, + (), +) + +GET_IPAM_POOL_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _GIPCI, + {_sSI: _cGIPCR, _sm: None}, + (_DR, _IPI, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_POOL_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_POOL_CIDR_SET: StaticSchema = ( + 16, + n0, + _IPCSp, + 0, + (_me,), + ((IPAM_POOL_CIDR, {_sN: _i}),), +) + +GET_IPAM_POOL_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPCO, + {_sSI: _cGIPCRo, _smit: None}, + (_IPCpam, _NTex), + ( + (IPAM_POOL_CIDR_SET, {_aQN: _IPCSp, _sN: _iPCS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_POOL_CIDRS: StaticOperationSchema = ( + 23, + n0, + _GIPC, + 0, + GET_IPAM_POOL_CIDRS_INPUT, + GET_IPAM_POOL_CIDRS_OUTPUT, + (), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_RULES_INPUT: StaticSchema = ( + 18, + n0, + _GIPLRRI, + {_sSI: _cGIPLRRR, _sm: None}, + (_DR, _IPLRI, _Fil, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION: StaticSchema = ( + 18, + n0, + _IPLRRC, + 0, + (_Ope, _IPI, _RIe, _ROe, _RR, _RTeso, _Ci), + ( + (IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_OPERATION, {_aQN: _Ope, _sN: _oper}), + (STRING, {_aQN: _IPI, _sN: _iPI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _ROe, _sN: _rOe}), + (STRING, {_aQN: _RR, _sN: _rR}), + (IPAM_RESOURCE_TAG, {_aQN: _RTeso, _sN: _rTes}), + (STRING, {_aQN: _Ci, _sN: _ci}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_SET: StaticSchema = ( + 16, + n0, + _IPLRRCS, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION, {_sN: _i}),), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE: StaticSchema = ( + 18, + n0, + _IPLRR, + 0, + (_RTu, _SCt, _ISI, _RT, _Condi), + ( + (IPAM_PREFIX_LIST_RESOLVER_RULE_TYPE, {_aQN: _RTu, _sN: _rTu}), + (STRING, {_aQN: _SCt, _sN: _sCta}), + (IPAM_SCOPE_ID, {_aQN: _ISI, _sN: _iSI}), + (IPAM_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_SET, {_aQN: _CSond, _sN: _cSon}), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_RULE_SET: StaticSchema = ( + 16, + n0, + _IPLRRS, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_RULE, {_sN: _i}),), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPLRRO, + {_sSI: _cGIPLRRRo, _smit: None}, + (_Rul, _NTex), + ( + (IPAM_PREFIX_LIST_RESOLVER_RULE_SET, {_aQN: _RSu, _sN: _rSu}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_RULES: StaticOperationSchema = ( + 23, + n0, + _GIPLRR, + 0, + GET_IPAM_PREFIX_LIST_RESOLVER_RULES_INPUT, + GET_IPAM_PREFIX_LIST_RESOLVER_RULES_OUTPUT, + (), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_INPUT: StaticSchema = ( + 18, + n0, + _GIPLRVEI, + {_sSI: _cGIPLRVER, _sm: None}, + (_DR, _IPLRI, _IPLRV, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_ID, 1), + (LONG, 1), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRY: StaticSchema = ( + 18, + n0, + _IPLRVE, + 0, + (_Ci,), + ((STRING, {_aQN: _Ci, _sN: _ci}),), +) + +IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRY_SET: StaticSchema = ( + 16, + n0, + _IPLRVES, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRY, {_sN: _i}),), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPLRVEO, + {_sSI: _cGIPLRVERo, _smit: None}, + (_Ent, _NTex), + ( + (IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRY_SET, {_aQN: _ESn, _sN: _eSn}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES: StaticOperationSchema = ( + 23, + n0, + _GIPLRVE, + 0, + GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_INPUT, + GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_OUTPUT, + (), +) + +IPAM_PREFIX_LIST_RESOLVER_VERSION_NUMBER_SET: StaticSchema = ( + 16, + n0, + _IPLRVNS, + 0, + (_me,), + ((LONG, {_sN: _i}),), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _GIPLRVI, + {_sSI: _cGIPLRVR, _sm: None}, + (_DR, _IPLRI, _IPLRVp, _MR, _Fil, _NTex), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_ID, 1), + (IPAM_PREFIX_LIST_RESOLVER_VERSION_NUMBER_SET, {_sN: _IPLRV}), + (IPAM_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + ), +) + +IPAM_PREFIX_LIST_RESOLVER_VERSION: StaticSchema = ( + 18, + n0, + _IPLRV, + 0, + (_Ve,), + ((LONG, {_aQN: _Ve, _sN: _ver}),), +) + +IPAM_PREFIX_LIST_RESOLVER_VERSION_SET: StaticSchema = ( + 16, + n0, + _IPLRVS, + 0, + (_me,), + ((IPAM_PREFIX_LIST_RESOLVER_VERSION, {_sN: _i}),), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPLRVO, + {_sSI: _cGIPLRVRo, _smit: None}, + (_IPLRVp, _NTex), + ( + (IPAM_PREFIX_LIST_RESOLVER_VERSION_SET, {_aQN: _IPLRVS, _sN: _iPLRVS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _GIPLRV, + 0, + GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_INPUT, + GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_OUTPUT, + (), +) + +GET_IPAM_RESOURCE_CIDRS_INPUT: StaticSchema = ( + 18, + n0, + _GIRCI, + {_sSI: _cGIRCR, _sm: None}, + (_DR, _Fil, _MR, _NTex, _ISI, _IPI, _RIe, _RT, _RTeso, _ROe), + ( + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (IPAM_SCOPE_ID, 1), + (IPAM_POOL_ID, 0), + (STRING, 0), + (IPAM_RESOURCE_TYPE, 0), + (REQUEST_IPAM_RESOURCE_TAG, 0), + (STRING, 0), + ), +) + +IPAM_MANAGEMENT_STATE: StaticSchema = ( + 14, + n0, + _IMS, + 0, + (_man, _unm, _ign), + ((-1, {_sV: _man}), (-1, {_sV: _unm}), (-1, {_sV: _ign})), +) + +IPAM_RESOURCE_CIDR: StaticSchema = ( + 18, + n0, + _IRC, + 0, + ( + _IIp, + _ISI, + _IPI, + _RR, + _ROI, + _RIe, + _RNes, + _RCes, + _RT, + _RTesou, + _IUp, + _CSom, + _MSa, + _OSv, + _VI, + _AZI, + ), + ( + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (IPAM_SCOPE_ID, {_aQN: _ISI, _sN: _iSI}), + (IPAM_POOL_ID, {_aQN: _IPI, _sN: _iPI}), + (STRING, {_aQN: _RR, _sN: _rR}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (STRING, {_aQN: _RNes, _sN: _rNes}), + (STRING, {_aQN: _RCes, _sN: _rCes}), + (IPAM_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (IPAM_RESOURCE_TAG_LIST, {_aQN: _RTSes, _sN: _rTSes}), + (BOXED_DOUBLE, {_aQN: _IUp, _sN: _iU}), + (IPAM_COMPLIANCE_STATUS, {_aQN: _CSom, _sN: _cSomp}), + (IPAM_MANAGEMENT_STATE, {_aQN: _MSa, _sN: _mSan}), + (IPAM_OVERLAP_STATUS, {_aQN: _OSv, _sN: _oSv}), + (STRING, {_aQN: _VI, _sN: _vI}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + ), +) + +IPAM_RESOURCE_CIDR_SET: StaticSchema = ( + 16, + n0, + _IRCS, + 0, + (_me,), + ((IPAM_RESOURCE_CIDR, {_sN: _i}),), +) + +GET_IPAM_RESOURCE_CIDRS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIRCO, + {_sSI: _cGIRCRo, _smit: None}, + (_NTex, _IRCp), + ( + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + (IPAM_RESOURCE_CIDR_SET, {_aQN: _IRCS, _sN: _iRCS}), + ), +) + +GET_IPAM_RESOURCE_CIDRS: StaticOperationSchema = ( + 23, + n0, + _GIRC, + 0, + GET_IPAM_RESOURCE_CIDRS_INPUT, + GET_IPAM_RESOURCE_CIDRS_OUTPUT, + (), +) + +GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GIROAI, + {_sSI: _cGIROAR, _sm: None}, + (_DR, _IIRAI, _Ci, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 0), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_ROUTE_ORIGIN_AUTHORIZATION_INFO: StaticSchema = ( + 18, + n0, + _IROAI, + 0, + (_Ci, _Asn, _ML), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (STRING, {_aQN: _Asn, _sN: _asn}), + (INTEGER, {_aQN: _ML, _sN: _mL}), + ), +) + +IPAM_ROUTE_ORIGIN_AUTHORIZATION_INFO_SET: StaticSchema = ( + 16, + n0, + _IROAIS, + 0, + (_me,), + ((IPAM_ROUTE_ORIGIN_AUTHORIZATION_INFO, {_sN: _i}),), +) + +GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIROAO, + {_sSI: _cGIROARo, _smit: None}, + (_IROA, _NTex), + ( + (IPAM_ROUTE_ORIGIN_AUTHORIZATION_INFO_SET, {_aQN: _IROAS, _sN: _iROAS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS: StaticOperationSchema = ( + 23, + n0, + _GIROA, + 0, + GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_INPUT, + GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_OUTPUT, + (), +) + +GET_IPAM_ROUTE_PROTECTION_FINDINGS_INPUT: StaticSchema = ( + 18, + n0, + _GIRPFI, + {_sSI: _cGIRPFR, _sm: None}, + (_DR, _IIp, _Fil, _NTex, _MR), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (NEXT_TOKEN, 0), + (IPAM_MAX_RESULTS, 0), + ), +) + +IPAM_ROUTE_ORIGIN_AUTHORIZATION: StaticSchema = ( + 18, + n0, + _IROAp, + 0, + (_Asn, _Pre, _ML, _Mat, _Expir), + ( + (STRING, {_aQN: _Asn, _sN: _asn}), + (STRING, {_aQN: _Pre, _sN: _pre}), + (INTEGER, {_aQN: _ML, _sN: _mL}), + (BOOLEAN, {_aQN: _Mat, _sN: _mat}), + (MILLISECOND_DATE_TIME, {_aQN: _Expir, _sN: _expi}), + ), +) + +IPAM_ROUTE_ORIGIN_AUTHORIZATION_SET: StaticSchema = ( + 16, + n0, + _IROAS, + 0, + (_me,), + ((IPAM_ROUTE_ORIGIN_AUTHORIZATION, {_sN: _i}),), +) + +IPAM_ROUTE_OVERLAP: StaticSchema = ( + 18, + n0, + _IRO, + 0, + (_Pre, _Asn, _DAet), + ( + (STRING, {_aQN: _Pre, _sN: _pre}), + (STRING, {_aQN: _Asn, _sN: _asn}), + (MILLISECOND_DATE_TIME, {_aQN: _DAet, _sN: _dAet}), + ), +) + +IPAM_ROUTE_OVERLAP_SET: StaticSchema = ( + 16, + n0, + _IROS, + 0, + (_me,), + ((IPAM_ROUTE_OVERLAP, {_sN: _i}),), +) + +IPAM_RPKI_STATUS: StaticSchema = ( + 14, + n0, + _IRSp, + 0, + (_val, _inv, _unk), + ((-1, {_sV: _val}), (-1, {_sV: _inv}), (-1, {_sV: _unk})), +) + +IPAM_RPKI_STRENGTH: StaticSchema = ( + 14, + n0, + _IRSpa, + 0, + (_stri, _permi), + ((-1, {_sV: _stri}), (-1, {_sV: _permi})), +) + +IPAM_ROUTE_PROTECTION_FINDING: StaticSchema = ( + 18, + n0, + _IRPF, + 0, + ( + _ROI, + _RR, + _IPI, + _Ci, + _St, + _ATdv, + _NBG, + _PIo, + _Asn, + _RSp, + _RSpk, + _Roa, + _ROou, + _STa, + _RSTo, + ), + ( + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _RR, _sN: _rR}), + (IPAM_POOL_ID, {_aQN: _IPI, _sN: _iPI}), + (STRING, {_aQN: _Ci, _sN: _ci}), + (IPAM_BYOIP_CIDR_STATE, {_aQN: _St, _sN: _st}), + (IPAM_BYOIP_ADVERTISEMENT_TYPE, {_aQN: _ATdv, _sN: _aTd}), + (STRING, {_aQN: _NBG, _sN: _nBG}), + (STRING, {_aQN: _PIo, _sN: _pIo}), + (STRING, {_aQN: _Asn, _sN: _asn}), + (IPAM_RPKI_STATUS, {_aQN: _RSp, _sN: _rSp}), + (IPAM_RPKI_STRENGTH, {_aQN: _RSpk, _sN: _rSpk}), + (IPAM_ROUTE_ORIGIN_AUTHORIZATION_SET, {_aQN: _RSoa, _sN: _rSoa}), + (IPAM_ROUTE_OVERLAP_SET, {_aQN: _ROSo, _sN: _rOSo}), + (MILLISECOND_DATE_TIME, {_aQN: _STa, _sN: _sTa}), + (MILLISECOND_DATE_TIME, {_aQN: _RSTo, _sN: _rSTo}), + ), +) + +IPAM_ROUTE_PROTECTION_FINDING_SET: StaticSchema = ( + 16, + n0, + _IRPFS, + 0, + (_me,), + ((IPAM_ROUTE_PROTECTION_FINDING, {_sN: _i}),), +) + +GET_IPAM_ROUTE_PROTECTION_FINDINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIRPFO, + {_sSI: _cGIRPFRo, _smit: None}, + (_IIp, _RPF, _NTex), + ( + (IPAM_ID, {_aQN: _IIp, _sN: _iIp}), + (IPAM_ROUTE_PROTECTION_FINDING_SET, {_aQN: _RPFS, _sN: _rPFS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_ROUTE_PROTECTION_FINDINGS: StaticOperationSchema = ( + 23, + n0, + _GIRPF, + 0, + GET_IPAM_ROUTE_PROTECTION_FINDINGS_INPUT, + GET_IPAM_ROUTE_PROTECTION_FINDINGS_OUTPUT, + (), +) + +CHRONOLOGICAL_ORDER: StaticSchema = ( + 14, + n0, + _COh, + 0, + (_forw, _reve), + ((-1, {_sV: _forw}), (-1, {_sV: _reve})), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_INPUT: StaticSchema = ( + 18, + n0, + _GIRPRDI, + {_sSI: _cGIRPRDR, _sm: None}, + (_DR, _IIRAI, _DIe, _ST, _ETnd, _COh, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 0), + (MILLISECOND_DATE_TIME, 0), + (MILLISECOND_DATE_TIME, 0), + (CHRONOLOGICAL_ORDER, 0), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_ROUTING_POLICY_REGISTRATION_DELTA_SET: StaticSchema = ( + 16, + n0, + _IRPRDSp, + 0, + (_me,), + ((IPAM_ROUTING_POLICY_REGISTRATION_DELTA, {_sN: _i}),), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIRPRDO, + {_sSI: _cGIRPRDRo, _smit: None}, + (_IRPRDp, _NTex), + ( + (IPAM_ROUTING_POLICY_REGISTRATION_DELTA_SET, {_aQN: _IRPRDSp, _sN: _iRPRDS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS: StaticOperationSchema = ( + 23, + n0, + _GIRPRD, + 0, + GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_INPUT, + GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_OUTPUT, + (), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GIRPRI, + {_sSI: _cGIRPRR, _sm: None}, + (_DR, _IIRAI, _Ci, _MR, _NTex), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 0), + (IPAM_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +IPAM_ROUTING_POLICY_REGISTRATION_STATE: StaticSchema = ( + 14, + n0, + _IRPRS, + 0, + (_pa________, _af______, _cip, _cc_, _uip, _uc, _dip_, _dc_), + ( + (-1, {_sV: _pa_________}), + (-1, {_sV: _af_______}), + (-1, {_sV: _cip_}), + (-1, {_sV: _cc__}), + (-1, {_sV: _uip_}), + (-1, {_sV: _uc_}), + (-1, {_sV: _dip__}), + (-1, {_sV: _dc__}), + ), +) + +IPAM_ROUTING_POLICY_REGISTRATION: StaticSchema = ( + 18, + n0, + _IRPR, + 0, + (_Ci, _Asns, _PMSA, _ML, _Des, _LDI, _St), + ( + (STRING, {_aQN: _Ci, _sN: _ci}), + (ASN_LIST, {_aQN: _ASsne, _sN: _aSsn}), + (BOXED_BOOLEAN, {_aQN: _PMSA, _sN: _pMSA}), + (IPAM_ROUTING_POLICY_REGISTRATION_MAX_LENGTH, {_aQN: _ML, _sN: _mL}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _LDI, _sN: _lDI}), + (IPAM_ROUTING_POLICY_REGISTRATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +IPAM_ROUTING_POLICY_REGISTRATION_SET: StaticSchema = ( + 16, + n0, + _IRPRSp, + 0, + (_me,), + ((IPAM_ROUTING_POLICY_REGISTRATION, {_sN: _i}),), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GIRPRO, + {_sSI: _cGIRPRRo, _smit: None}, + (_IRPRp, _NTex), + ( + (IPAM_ROUTING_POLICY_REGISTRATION_SET, {_aQN: _IRPRSp, _sN: _iRPRS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_IPAM_ROUTING_POLICY_REGISTRATIONS: StaticOperationSchema = ( + 23, + n0, + _GIRPR, + 0, + GET_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT, + GET_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT, + (), +) + +GET_LAUNCH_TEMPLATE_DATA_INPUT: StaticSchema = ( + 18, + n0, + _GLTDI, + {_sSI: _cGLTDR, _sm: None}, + (_DR, _II), + ((BOOLEAN, 0), (INSTANCE_ID, 1)), +) + +GET_LAUNCH_TEMPLATE_DATA_OUTPUT: StaticSchema = ( + 18, + n0, + _GLTDO, + {_sSI: _cGLTDRo, _smit: None}, + (_LTD,), + ((RESPONSE_LAUNCH_TEMPLATE_DATA, {_aQN: _LTD, _sN: _lTD}),), +) + +GET_LAUNCH_TEMPLATE_DATA: StaticOperationSchema = ( + 23, + n0, + _GLTD, + 0, + GET_LAUNCH_TEMPLATE_DATA_INPUT, + GET_LAUNCH_TEMPLATE_DATA_OUTPUT, + (), +) + +GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_MAX_RESULTS: StaticSchema = (7, n0, _GMPLAMR, 0) + +GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GMPLAI, + {_sSI: _cGMPLAR, _sm: None}, + (_DR, _PLI, _MR, _NTex), + ( + (BOOLEAN, 0), + (PREFIX_LIST_RESOURCE_ID, 1), + (GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +PREFIX_LIST_ASSOCIATION: StaticSchema = ( + 18, + n0, + _PLAr, + 0, + (_RIe, _ROe), + ((STRING, {_aQN: _RIe, _sN: _rI}), (STRING, {_aQN: _ROe, _sN: _rOe})), +) + +PREFIX_LIST_ASSOCIATION_SET: StaticSchema = ( + 16, + n0, + _PLAS, + 0, + (_me,), + ((PREFIX_LIST_ASSOCIATION, {_sN: _i}),), +) + +GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GMPLAO, + {_sSI: _cGMPLARo, _smit: None}, + (_PLAre, _NTex), + ( + (PREFIX_LIST_ASSOCIATION_SET, {_aQN: _PLAS, _sN: _pLAS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_MANAGED_PREFIX_LIST_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _GMPLA, + 0, + GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_INPUT, + GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_OUTPUT, + (), +) + +GET_MANAGED_PREFIX_LIST_ENTRIES_INPUT: StaticSchema = ( + 18, + n0, + _GMPLEI, + {_sSI: _cGMPLER, _sm: None}, + (_DR, _PLI, _TVa, _MR, _NTex), + ( + (BOOLEAN, 0), + (PREFIX_LIST_RESOURCE_ID, 1), + (LONG, 0), + (PREFIX_LIST_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + ), +) + +PREFIX_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _PLE, + 0, + (_Ci, _Des), + ((STRING, {_aQN: _Ci, _sN: _ci}), (STRING, {_aQN: _Des, _sN: _desc})), +) + +PREFIX_LIST_ENTRY_SET: StaticSchema = ( + 16, + n0, + _PLES, + 0, + (_me,), + ((PREFIX_LIST_ENTRY, {_sN: _i}),), +) + +GET_MANAGED_PREFIX_LIST_ENTRIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GMPLEO, + {_sSI: _cGMPLERo, _smit: None}, + (_Ent, _NTex), + ( + (PREFIX_LIST_ENTRY_SET, {_aQN: _ESn, _sN: _eSn}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_MANAGED_PREFIX_LIST_ENTRIES: StaticOperationSchema = ( + 23, + n0, + _GMPLE, + 0, + GET_MANAGED_PREFIX_LIST_ENTRIES_INPUT, + GET_MANAGED_PREFIX_LIST_ENTRIES_OUTPUT, + (), +) + +GET_MANAGED_RESOURCE_VISIBILITY_INPUT: StaticSchema = ( + 18, + n0, + _GMRVI, + {_sSI: _cGMRVR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +MANAGED_RESOURCE_DEFAULT_VISIBILITY: StaticSchema = ( + 14, + n0, + _MRDV, + 0, + (_hid, _vi), + ((-1, {_sV: _hid}), (-1, {_sV: _vi})), +) + +MANAGED_RESOURCE_VISIBILITY_SETTINGS: StaticSchema = ( + 18, + n0, + _MRVS, + 0, + (_DVefa,), + ((MANAGED_RESOURCE_DEFAULT_VISIBILITY, {_aQN: _DVefa, _sN: _dVefa}),), +) + +GET_MANAGED_RESOURCE_VISIBILITY_OUTPUT: StaticSchema = ( + 18, + n0, + _GMRVO, + {_sSI: _cGMRVRo, _smit: None}, + (_Vi,), + ((MANAGED_RESOURCE_VISIBILITY_SETTINGS, {_aQN: _Vi, _sN: _vis}),), +) + +GET_MANAGED_RESOURCE_VISIBILITY: StaticOperationSchema = ( + 23, + n0, + _GMRV, + 0, + GET_MANAGED_RESOURCE_VISIBILITY_INPUT, + GET_MANAGED_RESOURCE_VISIBILITY_OUTPUT, + (), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _GNIASAFMR, + 0, +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_INPUT: StaticSchema = ( + 18, + n0, + _GNIASAFI, + {_sSI: _cGNIASAFR, _sm: None}, + (_NIASAI, _MR, _NTex, _DR), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, 1), + (GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _GNIASAFO, + {_sSI: _cGNIASAFRo, _smit: None}, + (_NIASAI, _ASn, _AFn, _NTex), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_ID, {_aQN: _NIASAI, _sN: _nIASAI}), + (ANALYSIS_STATUS, {_aQN: _ASn, _sN: _aSn}), + (ACCESS_SCOPE_ANALYSIS_FINDING_LIST, {_aQN: _AFS, _sN: _aFS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS: StaticOperationSchema = ( + 23, + n0, + _GNIASAF, + 0, + GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_INPUT, + GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_OUTPUT, + (), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_INPUT: StaticSchema = ( + 18, + n0, + _GNIASCI, + {_sSI: _cGNIASCR, _sm: None}, + (_NIASI, _DR), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ID, 1), (BOOLEAN, 0)), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_OUTPUT: StaticSchema = ( + 18, + n0, + _GNIASCO, + {_sSI: _cGNIASCRo, _smit: None}, + (_NIASC,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT, {_aQN: _NIASC, _sN: _nIASC}),), +) + +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT: StaticOperationSchema = ( + 23, + n0, + _GNIASC, + 0, + GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_INPUT, + GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_OUTPUT, + (), +) + +GET_PASSWORD_DATA_INPUT: StaticSchema = ( + 18, + n0, + _GPDI, + {_sSI: _cGPDR, _sm: None}, + (_II, _DR), + ((INSTANCE_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +PASSWORD_DATA: StaticSchema = (3, n0, _PDa, 4) + +GET_PASSWORD_DATA_OUTPUT: StaticSchema = ( + 18, + n0, + _GPDO, + {_sSI: _cGPDRo, _smit: None}, + (_II, _Ti, _PDa), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (DATE_TIME, {_aQN: _Ti, _sN: _ti}), + (PASSWORD_DATA, {_aQN: _PDa, _sN: _pDa}), + ), +) + +GET_PASSWORD_DATA: StaticOperationSchema = ( + 23, + n0, + _GPD, + 0, + GET_PASSWORD_DATA_INPUT, + GET_PASSWORD_DATA_OUTPUT, + (), +) + +GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT: StaticSchema = ( + 18, + n0, + _GRIEQI, + {_sSI: _cGRIEQR, _sm: None}, + (_DR, _RIIe, _TC), + ( + (BOOLEAN, 0), + (RESERVED_INSTANCE_ID_SET, {_sN: _RII, _smi: None}), + (TARGET_CONFIGURATION_REQUEST_SET, {_sN: _TCa}), + ), +) + +RESERVATION_VALUE: StaticSchema = ( + 18, + n0, + _RVe, + 0, + (_HP, _RTV, _RUV), + ( + (STRING, {_aQN: _HP, _sN: _hP}), + (STRING, {_aQN: _RTV, _sN: _rTV}), + (STRING, {_aQN: _RUV, _sN: _rUV}), + ), +) + +RESERVED_INSTANCE_RESERVATION_VALUE: StaticSchema = ( + 18, + n0, + _RIRV, + 0, + (_RVe, _RII), + ((RESERVATION_VALUE, {_aQN: _RVe, _sN: _rVe}), (STRING, {_aQN: _RII, _sN: _rIIe})), +) + +RESERVED_INSTANCE_RESERVATION_VALUE_SET: StaticSchema = ( + 16, + n0, + _RIRVS, + 0, + (_me,), + ((RESERVED_INSTANCE_RESERVATION_VALUE, {_sN: _i}),), +) + +TARGET_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TCa, + 0, + (_IC, _OI), + ((INTEGER, {_aQN: _IC, _sN: _iC}), (STRING, {_aQN: _OI, _sN: _oIf})), +) + +TARGET_RESERVATION_VALUE: StaticSchema = ( + 18, + n0, + _TRV, + 0, + (_RVe, _TCa), + ( + (RESERVATION_VALUE, {_aQN: _RVe, _sN: _rVe}), + (TARGET_CONFIGURATION, {_aQN: _TCa, _sN: _tCa}), + ), +) + +TARGET_RESERVATION_VALUE_SET: StaticSchema = ( + 16, + n0, + _TRVS, + 0, + (_me,), + ((TARGET_RESERVATION_VALUE, {_sN: _i}),), +) + +GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT: StaticSchema = ( + 18, + n0, + _GRIEQO, + {_sSI: _cGRIEQRo, _smit: None}, + (_CC, _IVEs, _ORIWEA, _PDay, _RIVR, _RIVS, _TCVR, _TCVS, _VFR), + ( + (STRING, {_aQN: _CC, _sN: _cC}), + (BOOLEAN, {_aQN: _IVEs, _sN: _iVE}), + (DATE_TIME, {_aQN: _ORIWEA, _sN: _oRIWEA}), + (STRING, {_aQN: _PDay, _sN: _pDay}), + (RESERVATION_VALUE, {_aQN: _RIVR, _sN: _rIVR}), + (RESERVED_INSTANCE_RESERVATION_VALUE_SET, {_aQN: _RIVS, _sN: _rIVS}), + (RESERVATION_VALUE, {_aQN: _TCVR, _sN: _tCVR}), + (TARGET_RESERVATION_VALUE_SET, {_aQN: _TCVS, _sN: _tCVS}), + (STRING, {_aQN: _VFR, _sN: _vFR}), + ), +) + +GET_RESERVED_INSTANCES_EXCHANGE_QUOTE: StaticOperationSchema = ( + 23, + n0, + _GRIEQ, + 0, + GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT, + GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT, + (), +) + +GET_ROUTE_SERVER_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GRSAI, + {_sSI: _cGRSAR, _sm: None}, + (_RSI, _DR), + ((ROUTE_SERVER_ID, 1), (BOOLEAN, 0)), +) + +ROUTE_SERVER_ASSOCIATIONS_LIST: StaticSchema = ( + 16, + n0, + _RSAL, + 0, + (_me,), + ((ROUTE_SERVER_ASSOCIATION, {_sN: _i}),), +) + +GET_ROUTE_SERVER_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GRSAO, + {_sSI: _cGRSARo, _smit: None}, + (_RSAo,), + ((ROUTE_SERVER_ASSOCIATIONS_LIST, {_aQN: _RSASo, _sN: _rSAS}),), +) + +GET_ROUTE_SERVER_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _GRSA, + 0, + GET_ROUTE_SERVER_ASSOCIATIONS_INPUT, + GET_ROUTE_SERVER_ASSOCIATIONS_OUTPUT, + (), +) + +GET_ROUTE_SERVER_PROPAGATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GRSPI, + {_sSI: _cGRSPR, _sm: None}, + (_RSI, _RTIo, _DR), + ((ROUTE_SERVER_ID, 1), (ROUTE_TABLE_ID, 0), (BOOLEAN, 0)), +) + +ROUTE_SERVER_PROPAGATIONS_LIST: StaticSchema = ( + 16, + n0, + _RSPLo, + 0, + (_me,), + ((ROUTE_SERVER_PROPAGATION, {_sN: _i}),), +) + +GET_ROUTE_SERVER_PROPAGATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GRSPO, + {_sSI: _cGRSPRo, _smit: None}, + (_RSPout,), + ((ROUTE_SERVER_PROPAGATIONS_LIST, {_aQN: _RSPSout, _sN: _rSPSo}),), +) + +GET_ROUTE_SERVER_PROPAGATIONS: StaticOperationSchema = ( + 23, + n0, + _GRSP, + 0, + GET_ROUTE_SERVER_PROPAGATIONS_INPUT, + GET_ROUTE_SERVER_PROPAGATIONS_OUTPUT, + (), +) + +GET_ROUTE_SERVER_ROUTING_DATABASE_INPUT: StaticSchema = ( + 18, + n0, + _GRSRDI, + {_sSI: _cGRSRDR, _sm: None}, + (_RSI, _NTex, _MR, _DR, _Fil), + ( + (ROUTE_SERVER_ID, 1), + (STRING, 0), + (ROUTE_SERVER_MAX_RESULTS, 0), + (BOOLEAN, 0), + (FILTER_LIST, {_sN: _Fi}), + ), +) + +AS_PATH: StaticSchema = (16, n0, _APs, 0, (_me,), ((STRING, {_sN: _i}),)) + +ROUTE_SERVER_ROUTE_INSTALLATION_STATUS: StaticSchema = ( + 14, + n0, + _RSRIS, + 0, + (_INSTALLED, _REJECTED), + ((-1, {_sV: _instal}), (-1, {_sV: _re})), +) + +ROUTE_SERVER_ROUTE_INSTALLATION_DETAIL: StaticSchema = ( + 18, + n0, + _RSRID, + 0, + (_RTIo, _RISo, _RISR), + ( + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo}), + (ROUTE_SERVER_ROUTE_INSTALLATION_STATUS, {_aQN: _RISo, _sN: _rISo}), + (STRING, {_aQN: _RISR, _sN: _rISR}), + ), +) + +ROUTE_SERVER_ROUTE_INSTALLATION_DETAILS: StaticSchema = ( + 16, + n0, + _RSRIDo, + 0, + (_me,), + ((ROUTE_SERVER_ROUTE_INSTALLATION_DETAIL, {_sN: _i}),), +) + +ROUTE_SERVER_ROUTE_STATUS: StaticSchema = ( + 14, + n0, + _RSRS, + 0, + (_IR_, _IF___), + ((-1, {_sV: _ir______}), (-1, {_sV: _if__})), +) + +ROUTE_SERVER_ROUTE: StaticSchema = ( + 18, + n0, + _RSRo, + 0, + (_RSEI, _RSPI, _RID, _RSoutet, _Pre, _APsa, _Med, _NHI), + ( + (ROUTE_SERVER_ENDPOINT_ID, {_aQN: _RSEI, _sN: _rSEI}), + (ROUTE_SERVER_PEER_ID, {_aQN: _RSPI, _sN: _rSPI}), + (ROUTE_SERVER_ROUTE_INSTALLATION_DETAILS, {_aQN: _RIDS, _sN: _rIDS}), + (ROUTE_SERVER_ROUTE_STATUS, {_aQN: _RSoutet, _sN: _rSout}), + (STRING, {_aQN: _Pre, _sN: _pre}), + (AS_PATH, {_aQN: _APSs, _sN: _aPS}), + (INTEGER, {_aQN: _Med, _sN: _med_}), + (STRING, {_aQN: _NHI, _sN: _nHI}), + ), +) + +ROUTE_SERVER_ROUTE_LIST: StaticSchema = ( + 16, + n0, + _RSRL, + 0, + (_me,), + ((ROUTE_SERVER_ROUTE, {_sN: _i}),), +) + +GET_ROUTE_SERVER_ROUTING_DATABASE_OUTPUT: StaticSchema = ( + 18, + n0, + _GRSRDO, + {_sSI: _cGRSRDRo, _smit: None}, + (_ARP, _Rout, _NTex), + ( + (BOOLEAN, {_aQN: _ARP, _sN: _aRP}), + (ROUTE_SERVER_ROUTE_LIST, {_aQN: _RSout, _sN: _rSou}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_ROUTE_SERVER_ROUTING_DATABASE: StaticOperationSchema = ( + 23, + n0, + _GRSRD, + 0, + GET_ROUTE_SERVER_ROUTING_DATABASE_INPUT, + GET_ROUTE_SERVER_ROUTING_DATABASE_OUTPUT, + (), +) + +GET_SECURITY_GROUPS_FOR_VPC_REQUEST_MAX_RESULTS: StaticSchema = (7, n0, _GSGFVRMR, 0) + +GET_SECURITY_GROUPS_FOR_VPC_INPUT: StaticSchema = ( + 18, + n0, + _GSGFVI, + {_sSI: _cGSGFVR, _sm: None}, + (_VI, _NTex, _MR, _Fil, _DR), + ( + (VPC_ID, 1), + (STRING, 0), + (GET_SECURITY_GROUPS_FOR_VPC_REQUEST_MAX_RESULTS, 0), + (FILTER_LIST, {_sN: _Fi}), + (BOOLEAN, 0), + ), +) + +SECURITY_GROUP_FOR_VPC: StaticSchema = ( + 18, + n0, + _SGFV, + 0, + (_Des, _GN, _OIw, _GIr, _Tag, _PVIr), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _GN, _sN: _gN}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _GIr, _sN: _gIr}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _PVIr, _sN: _pVIr}), + ), +) + +SECURITY_GROUP_FOR_VPC_LIST: StaticSchema = ( + 16, + n0, + _SGFVL, + 0, + (_me,), + ((SECURITY_GROUP_FOR_VPC, {_sN: _i}),), +) + +GET_SECURITY_GROUPS_FOR_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _GSGFVO, + {_sSI: _cGSGFVRo, _smit: None}, + (_NTex, _SGFVe), + ( + (STRING, {_aQN: _NTex, _sN: _nT}), + (SECURITY_GROUP_FOR_VPC_LIST, {_aQN: _SGFVS, _sN: _sGFVS}), + ), +) + +GET_SECURITY_GROUPS_FOR_VPC: StaticOperationSchema = ( + 23, + n0, + _GSGFV, + 0, + GET_SECURITY_GROUPS_FOR_VPC_INPUT, + GET_SECURITY_GROUPS_FOR_VPC_OUTPUT, + (), +) + +GET_SERIAL_CONSOLE_ACCESS_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GSCASI, + {_sSI: _cGSCASR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +GET_SERIAL_CONSOLE_ACCESS_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GSCASO, + {_sSI: _cGSCASRo, _smit: None}, + (_SCAE, _MB), + ((BOOLEAN, {_aQN: _SCAE, _sN: _sCAE}), (MANAGED_BY, {_aQN: _MB, _sN: _mB})), +) + +GET_SERIAL_CONSOLE_ACCESS_STATUS: StaticOperationSchema = ( + 23, + n0, + _GSCAS, + 0, + GET_SERIAL_CONSOLE_ACCESS_STATUS_INPUT, + GET_SERIAL_CONSOLE_ACCESS_STATUS_OUTPUT, + (), +) + +GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_INPUT: StaticSchema = ( + 18, + n0, + _GSBPASI, + {_sSI: _cGSBPASR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GSBPASO, + {_sSI: _cGSBPASRo, _smit: None}, + (_St, _MB), + ( + (SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, {_aQN: _St, _sN: _st}), + (MANAGED_BY, {_aQN: _MB, _sN: _mB}), + ), +) + +GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE: StaticOperationSchema = ( + 23, + n0, + _GSBPAS, + 0, + GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_INPUT, + GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT, + (), +) + +INSTANCE_TYPES: StaticSchema = (16, n0, _ITnsta, 0, (_me,), ((STRING, 0),)) + +SPOT_PLACEMENT_SCORES_MAX_RESULTS: StaticSchema = (7, n0, _SPSMR, 0) + +REGION_NAMES: StaticSchema = (16, n0, _RNeg, 0, (_me,), ((STRING, 0),)) + +SPOT_PLACEMENT_SCORES_TARGET_CAPACITY: StaticSchema = (7, n0, _SPSTC, 0) + +GET_SPOT_PLACEMENT_SCORES_INPUT: StaticSchema = ( + 18, + n0, + _GSPSI, + {_sSI: _cGSPSR, _sm: None}, + (_ITnsta, _TCar, _TCUT, _SAZ, _RNeg, _IRWM, _DR, _MR, _NTex, _ILZ), + ( + (INSTANCE_TYPES, {_sN: _IT}), + (SPOT_PLACEMENT_SCORES_TARGET_CAPACITY, 1), + (TARGET_CAPACITY_UNIT_TYPE, 0), + (BOOLEAN, 0), + (REGION_NAMES, {_sN: _RNe}), + (INSTANCE_REQUIREMENTS_WITH_METADATA_REQUEST, 0), + (BOOLEAN, 0), + (SPOT_PLACEMENT_SCORES_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +SPOT_PLACEMENT_SCORE: StaticSchema = ( + 18, + n0, + _SPSp, + 0, + (_Re, _AZI, _Scor), + ( + (STRING, {_aQN: _Re, _sN: _reg}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (INTEGER, {_aQN: _Scor, _sN: _scor}), + ), +) + +SPOT_PLACEMENT_SCORES: StaticSchema = ( + 16, + n0, + _SPSpo, + 0, + (_me,), + ((SPOT_PLACEMENT_SCORE, {_sN: _i}),), +) + +GET_SPOT_PLACEMENT_SCORES_OUTPUT: StaticSchema = ( + 18, + n0, + _GSPSO, + {_sSI: _cGSPSRo, _smit: None}, + (_SPSpo, _NTex), + ( + (SPOT_PLACEMENT_SCORES, {_aQN: _SPSS, _sN: _sPSS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_SPOT_PLACEMENT_SCORES: StaticOperationSchema = ( + 23, + n0, + _GSPS, + 0, + GET_SPOT_PLACEMENT_SCORES_INPUT, + GET_SPOT_PLACEMENT_SCORES_OUTPUT, + (), +) + +GET_SUBNET_CIDR_RESERVATIONS_MAX_RESULTS: StaticSchema = (7, n0, _GSCRMR, 0) + +GET_SUBNET_CIDR_RESERVATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GSCRI, + {_sSI: _cGSCRR, _sm: None}, + (_Fil, _SIu, _DR, _NTex, _MR), + ( + (FILTER_LIST, {_sN: _Fi}), + (SUBNET_ID, 1), + (BOOLEAN, 0), + (STRING, 0), + (GET_SUBNET_CIDR_RESERVATIONS_MAX_RESULTS, 0), + ), +) + +SUBNET_CIDR_RESERVATION_LIST: StaticSchema = ( + 16, + n0, + _SCRL, + 0, + (_me,), + ((SUBNET_CIDR_RESERVATION, {_sN: _i}),), +) + +GET_SUBNET_CIDR_RESERVATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GSCRO, + {_sSI: _cGSCRRo, _smit: None}, + (_SICR, _SICRu, _NTex), + ( + (SUBNET_CIDR_RESERVATION_LIST, {_aQN: _SICRS, _sN: _sICRS}), + (SUBNET_CIDR_RESERVATION_LIST, {_aQN: _SICRSu, _sN: _sICRSu}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_SUBNET_CIDR_RESERVATIONS: StaticOperationSchema = ( + 23, + n0, + _GSCR, + 0, + GET_SUBNET_CIDR_RESERVATIONS_INPUT, + GET_SUBNET_CIDR_RESERVATIONS_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GTGANCI, + {_sSI: _cGTGANCR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +TRANSIT_GATEWAY_NAT_RULE_STATE: StaticSchema = ( + 14, + n0, + _TGNRS, + 0, + (_p, _activ, _deact, _de), + ((-1, {_sV: _p}), (-1, {_sV: _activ}), (-1, {_sV: _deact}), (-1, {_sV: _de})), +) + +TRANSIT_GATEWAY_NAT_RULE: StaticSchema = ( + 18, + n0, + _TGNR, + 0, + (_RN, _MSC, _NCa, _St), + ( + (INTEGER, {_aQN: _RN, _sN: _rN}), + (STRING, {_aQN: _MSC, _sN: _mSC}), + (STRING, {_aQN: _NCa, _sN: _nCa}), + (TRANSIT_GATEWAY_NAT_RULE_STATE, {_aQN: _St, _sN: _st}), + ), +) + +TRANSIT_GATEWAY_NAT_RULE_LIST: StaticSchema = ( + 16, + n0, + _TGNRL, + 0, + (_me,), + ((TRANSIT_GATEWAY_NAT_RULE, {_sN: _i}),), +) + +TRANSIT_GATEWAY_ATTACHMENT_NAT_SYSTEM_ROUTE_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _TGANSRSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGANCO, + {_sSI: _cGTGANCRo, _smit: None}, + (_TGAI, _NGSat, _NSRS, _NGR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + ( + TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_STATE, + {_aQN: _NGSat, _sN: _nGSa}, + ), + ( + TRANSIT_GATEWAY_ATTACHMENT_NAT_SYSTEM_ROUTE_SUPPORT_VALUE, + {_aQN: _NSRS, _sN: _nSRS}, + ), + (TRANSIT_GATEWAY_NAT_RULE_LIST, {_aQN: _NGRS, _sN: _nGRS}), + ), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GTGANC, + 0, + GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT, + GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GTGAPI, + {_sSI: _cGTGAPR, _sm: None}, + (_TGAI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_PROPAGATION: StaticSchema = ( + 18, + n0, + _TGAP, + 0, + (_TGRTI, _St), + ( + (STRING, {_aQN: _TGRTI, _sN: _tGRTI}), + (TRANSIT_GATEWAY_PROPAGATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +TRANSIT_GATEWAY_ATTACHMENT_PROPAGATION_LIST: StaticSchema = ( + 16, + n0, + _TGAPL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ATTACHMENT_PROPAGATION, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGAPO, + {_sSI: _cGTGAPRo, _smit: None}, + (_TGAPr, _NTex), + ( + (TRANSIT_GATEWAY_ATTACHMENT_PROPAGATION_LIST, {_aQN: _TGAPr, _sN: _tGAP}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS: StaticOperationSchema = ( + 23, + n0, + _GTGAP, + 0, + GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_INPUT, + GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_INPUT: StaticSchema = ( + 18, + n0, + _GTGMPEI, + {_sSI: _cGTGMPER, _sm: None}, + (_TGMPI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_METERING_POLICY_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _TGMPEL, + 0, + (_me,), + ((TRANSIT_GATEWAY_METERING_POLICY_ENTRY, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGMPEO, + {_sSI: _cGTGMPERo, _smit: None}, + (_TGMPEr, _NTex), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ENTRY_LIST, {_aQN: _TGMPEr, _sN: _tGMPEr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES: StaticOperationSchema = ( + 23, + n0, + _GTGMPE, + 0, + GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_INPUT, + GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GTGMDAI, + {_sSI: _cGTGMDAR, _sm: None}, + (_TGMDI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TGMDAra, + 0, + (_TGAI, _RIe, _RT, _ROI, _Sub), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (SUBNET_ASSOCIATION, {_aQN: _Sub, _sN: _su}), + ), +) + +TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _TGMDAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATION, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGMDAO, + {_sSI: _cGTGMDARo, _smit: None}, + (_MDA, _NTex), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATION_LIST, {_aQN: _MDA, _sN: _mDA}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _GTGMDA, + 0, + GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT, + GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GTGPTAI, + {_sSI: _cGTGPTAR, _sm: None}, + (_TGPTI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _TGPTAL, + 0, + (_me,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGPTAO, + {_sSI: _cGTGPTARo, _smit: None}, + (_As, _NTex), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION_LIST, {_aQN: _As, _sN: _asso}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _GTGPTA, + 0, + GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_INPUT, + GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_INPUT: StaticSchema = ( + 18, + n0, + _GTGPTEI, + {_sSI: _cGTGPTER, _sm: None}, + (_TGPTI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _TGPTEL, + 0, + (_me,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGPTEO, + {_sSI: _cGTGPTERo, _smit: None}, + (_TGPTEr, _NTex), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_LIST, {_aQN: _TGPTEr, _sN: _tGPTEr}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES: StaticOperationSchema = ( + 23, + n0, + _GTGPTE, + 0, + GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_INPUT, + GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_INPUT: StaticSchema = ( + 18, + n0, + _GTGPLRI, + {_sSI: _cGTGPLRR, _sm: None}, + (_TGRTI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_SET: StaticSchema = ( + 16, + n0, + _TGPLRSr, + 0, + (_me,), + ((TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGPLRO, + {_sSI: _cGTGPLRRo, _smit: None}, + (_TGPLRr, _NTex), + ( + (TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_SET, {_aQN: _TGPLRSr, _sN: _tGPLRS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES: StaticOperationSchema = ( + 23, + n0, + _GTGPLR, + 0, + GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_INPUT, + GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GTGRTAI, + {_sSI: _cGTGRTAR, _sm: None}, + (_TGRTI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATION: StaticSchema = ( + 18, + n0, + _TGRTAra, + 0, + (_TGAI, _RIe, _RT, _St), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (TRANSIT_GATEWAY_ASSOCIATION_STATE, {_aQN: _St, _sN: _st}), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATION_LIST: StaticSchema = ( + 16, + n0, + _TGRTALr, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATION, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGRTAO, + {_sSI: _cGTGRTARo, _smit: None}, + (_As, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATION_LIST, {_aQN: _As, _sN: _asso}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _GTGRTA, + 0, + GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_INPUT, + GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_OUTPUT, + (), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_INPUT: StaticSchema = ( + 18, + n0, + _GTGRTPI, + {_sSI: _cGTGRTPR, _sm: None}, + (_TGRTI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION: StaticSchema = ( + 18, + n0, + _TGRTP, + 0, + (_TGAI, _RIe, _RT, _St, _TGRTAI), + ( + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (TRANSIT_GATEWAY_PROPAGATION_STATE, {_aQN: _St, _sN: _st}), + (TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_ID, {_aQN: _TGRTAI, _sN: _tGRTAI}), + ), +) + +TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_LIST: StaticSchema = ( + 16, + n0, + _TGRTPL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION, {_sN: _i}),), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _GTGRTPO, + {_sSI: _cGTGRTPRo, _smit: None}, + (_TGRTPr, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_LIST, {_aQN: _TGRTPr, _sN: _tGRTP}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS: StaticOperationSchema = ( + 23, + n0, + _GTGRTP, + 0, + GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_INPUT, + GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_OUTPUT, + (), +) + +GET_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GVAEPI, + {_sSI: _cGVAEPR, _sm: None}, + (_VAEI, _DR), + ((VERIFIED_ACCESS_ENDPOINT_ID, 1), (BOOLEAN, 0)), +) + +GET_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GVAEPO, + {_sSI: _cGVAEPRo, _smit: None}, + (_PEo, _PDo), + ((BOOLEAN, {_aQN: _PEo, _sN: _pEo}), (STRING, {_aQN: _PDo, _sN: _pDo})), +) + +GET_VERIFIED_ACCESS_ENDPOINT_POLICY: StaticOperationSchema = ( + 23, + n0, + _GVAEP, + 0, + GET_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT, + GET_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT, + (), +) + +GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_MAX_RESULTS: StaticSchema = (7, n0, _GVAETMR, 0) + +GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _GVAETI, + {_sSI: _cGVAETR, _sm: None}, + (_VAEI, _MR, _NTex, _DR), + ( + (VERIFIED_ACCESS_ENDPOINT_ID, {_sN: _VAEI, _smi: None}), + (GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_MAX_RESULTS, 0), + (NEXT_TOKEN, 0), + (BOOLEAN, 0), + ), +) + +VERIFIED_ACCESS_ENDPOINT_TARGET: StaticSchema = ( + 18, + n0, + _VAETe, + 0, + (_VAEI, _VAETIA, _VAETD), + ( + (VERIFIED_ACCESS_ENDPOINT_ID, {_aQN: _VAEI, _sN: _vAEI}), + (STRING, {_aQN: _VAETIA, _sN: _vAETIA}), + (STRING, {_aQN: _VAETD, _sN: _vAETD}), + ), +) + +VERIFIED_ACCESS_ENDPOINT_TARGET_LIST: StaticSchema = ( + 16, + n0, + _VAETL, + 0, + (_me,), + ((VERIFIED_ACCESS_ENDPOINT_TARGET, {_sN: _i}),), +) + +GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _GVAETO, + {_sSI: _cGVAETRo, _smit: None}, + (_VAETer, _NTex), + ( + (VERIFIED_ACCESS_ENDPOINT_TARGET_LIST, {_aQN: _VAETS, _sN: _vAETS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_VERIFIED_ACCESS_ENDPOINT_TARGETS: StaticOperationSchema = ( + 23, + n0, + _GVAET, + 0, + GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_INPUT, + GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_OUTPUT, + (), +) + +GET_VERIFIED_ACCESS_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GVAGPI, + {_sSI: _cGVAGPR, _sm: None}, + (_VAGI, _DR), + ((VERIFIED_ACCESS_GROUP_ID, 1), (BOOLEAN, 0)), +) + +GET_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GVAGPO, + {_sSI: _cGVAGPRo, _smit: None}, + (_PEo, _PDo), + ((BOOLEAN, {_aQN: _PEo, _sN: _pEo}), (STRING, {_aQN: _PDo, _sN: _pDo})), +) + +GET_VERIFIED_ACCESS_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _GVAGP, + 0, + GET_VERIFIED_ACCESS_GROUP_POLICY_INPUT, + GET_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT, + (), +) + +GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_MAX_RESULTS: StaticSchema = ( + 7, + n0, + _GVRBEEMR, + 0, +) + +GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_INPUT: StaticSchema = ( + 18, + n0, + _GVRBEEI, + {_sSI: _cGVRBEER, _sm: None}, + (_VI, _MR, _NTex, _DR), + ( + (VPC_ID, 1), + (GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +VPC_ENCRYPTION_NON_COMPLIANT_RESOURCE: StaticSchema = ( + 18, + n0, + _VENCR, + 0, + (_Id, _Ty, _Des, _IEs), + ( + (STRING, {_aQN: _Id, _sN: _id}), + (STRING, {_aQN: _Ty, _sN: _ty}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _IEs, _sN: _iEs}), + ), +) + +VPC_ENCRYPTION_NON_COMPLIANT_RESOURCE_LIST: StaticSchema = ( + 16, + n0, + _VENCRL, + 0, + (_me,), + ((VPC_ENCRYPTION_NON_COMPLIANT_RESOURCE, {_sN: _i}),), +) + +GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _GVRBEEO, + {_sSI: _cGVRBEERo, _smit: None}, + (_NCR, _NTex), + ( + (VPC_ENCRYPTION_NON_COMPLIANT_RESOURCE_LIST, {_aQN: _NCRS, _sN: _nCRS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT: StaticOperationSchema = ( + 23, + n0, + _GVRBEE, + 0, + GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_INPUT, + GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_OUTPUT, + (), +) + +VPN_CONNECTION_DEVICE_TYPE_ID: StaticSchema = (3, n0, _VCDTI, 0) + +GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GVCDSCI, + {_sSI: _cGVCDSCR, _sm: None}, + (_VCIp, _VCDTI, _IKEVn, _STam, _DR), + ( + (VPN_CONNECTION_ID, 1), + (VPN_CONNECTION_DEVICE_TYPE_ID, 1), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION: StaticSchema = (3, n0, _VCDSC, 4) + +GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GVCDSCO, + {_sSI: _cGVCDSCRo, _smit: None}, + (_VCDSC,), + ((VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION, {_aQN: _VCDSC, _sN: _vCDSC}),), +) + +GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GVCDSC, + 0, + GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_INPUT, + GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_OUTPUT, + (), +) + +GET_VPN_CONNECTION_DEVICE_TYPES_INPUT: StaticSchema = ( + 18, + n0, + _GVCDTI, + {_sSI: _cGVCDTR, _sm: None}, + (_MR, _NTex, _DR), + ((GVCD_MAX_RESULTS, 0), (NEXT_TOKEN, 0), (BOOLEAN, 0)), +) + +VPN_CONNECTION_DEVICE_TYPE: StaticSchema = ( + 18, + n0, + _VCDT, + 0, + (_VCDTI, _Ven, _Pla, _Sof), + ( + (STRING, {_aQN: _VCDTI, _sN: _vCDTI}), + (STRING, {_aQN: _Ven, _sN: _ven}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (STRING, {_aQN: _Sof, _sN: _sof}), + ), +) + +VPN_CONNECTION_DEVICE_TYPE_LIST: StaticSchema = ( + 16, + n0, + _VCDTL, + 0, + (_me,), + ((VPN_CONNECTION_DEVICE_TYPE, {_sN: _i}),), +) + +GET_VPN_CONNECTION_DEVICE_TYPES_OUTPUT: StaticSchema = ( + 18, + n0, + _GVCDTO, + {_sSI: _cGVCDTRo, _smit: None}, + (_VCDTp, _NTex), + ( + (VPN_CONNECTION_DEVICE_TYPE_LIST, {_aQN: _VCDTS, _sN: _vCDTS}), + (NEXT_TOKEN, {_aQN: _NTex, _sN: _nT}), + ), +) + +GET_VPN_CONNECTION_DEVICE_TYPES: StaticOperationSchema = ( + 23, + n0, + _GVCDT, + 0, + GET_VPN_CONNECTION_DEVICE_TYPES_INPUT, + GET_VPN_CONNECTION_DEVICE_TYPES_OUTPUT, + (), +) + +GET_VPN_TUNNEL_REPLACEMENT_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GVTRSI, + {_sSI: _cGVTRSR, _sm: None}, + (_VCIp, _VTOIA, _DR), + ((VPN_CONNECTION_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +MAINTENANCE_DETAILS: StaticSchema = ( + 18, + n0, + _MDai, + 0, + (_PM, _MAAA, _LMA), + ( + (STRING, {_aQN: _PM, _sN: _pM}), + (MILLISECOND_DATE_TIME, {_aQN: _MAAA, _sN: _mAAA}), + (MILLISECOND_DATE_TIME, {_aQN: _LMA, _sN: _lMA}), + ), +) + +GET_VPN_TUNNEL_REPLACEMENT_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GVTRSO, + {_sSI: _cGVTRSRo, _smit: None}, + (_VCIp, _TGI, _CGIu, _VGI, _VTOIA, _MDai), + ( + (VPN_CONNECTION_ID, {_aQN: _VCIp, _sN: _vCIp}), + (TRANSIT_GATEWAY_ID, {_aQN: _TGI, _sN: _tGI}), + (CUSTOMER_GATEWAY_ID, {_aQN: _CGIu, _sN: _cGIu}), + (VPN_GATEWAY_ID, {_aQN: _VGI, _sN: _vGI}), + (STRING, {_aQN: _VTOIA, _sN: _vTOIA}), + (MAINTENANCE_DETAILS, {_aQN: _MDai, _sN: _mDa}), + ), +) + +GET_VPN_TUNNEL_REPLACEMENT_STATUS: StaticOperationSchema = ( + 23, + n0, + _GVTRS, + 0, + GET_VPN_TUNNEL_REPLACEMENT_STATUS_INPUT, + GET_VPN_TUNNEL_REPLACEMENT_STATUS_OUTPUT, + (), +) + +IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT: StaticSchema = ( + 18, + n0, + _ICVCCRLI, + {_sSI: _cICVCCRLR, _sm: None}, + (_CVEI, _CRL, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _ICVCCRLO, + {_sSI: _cICVCCRLRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST: StaticOperationSchema = ( + 23, + n0, + _ICVCCRL, + 0, + IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT, + IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT, + (), +) + +CLIENT_DATA: StaticSchema = ( + 18, + n0, + _CDl, + 0, + (_Comm, _UEp, _USp, _USpl), + ((STRING, 0), (DATE_TIME, 0), (DOUBLE, 0), (DATE_TIME, 0)), +) + +USER_BUCKET: StaticSchema = (18, n0, _UB, 0, (_SBu, _SK), ((STRING, 0), (STRING, 0))) + +IMAGE_DISK_CONTAINER: StaticSchema = ( + 18, + n0, + _IDCm, + 0, + (_Des, _DNe, _For, _SIn, _Ur, _UB), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SNAPSHOT_ID, 0), + (SENSITIVE_URL, 0), + (USER_BUCKET, 0), + ), +) + +IMAGE_DISK_CONTAINER_LIST: StaticSchema = ( + 16, + n0, + _IDCL, + 0, + (_me,), + ((IMAGE_DISK_CONTAINER, {_sN: _i}),), +) + +IMPORT_IMAGE_LICENSE_CONFIGURATION_REQUEST: StaticSchema = ( + 18, + n0, + _IILCRm, + 0, + (_LCA,), + ((STRING, 0),), +) + +IMPORT_IMAGE_LICENSE_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _IILSLRm, + 0, + (_me,), + ((IMPORT_IMAGE_LICENSE_CONFIGURATION_REQUEST, {_sN: _i}),), +) + +IMPORT_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _III, + {_sSI: _cIIR, _sm: None}, + ( + _Arc, + _CDl, + _CTl, + _Des, + _DCisko, + _DR, + _En, + _Hy, + _KKI, + _LTi, + _Pla, + _RNo, + _LSic, + _TSa, + _UO, + _BMo, + ), + ( + (STRING, 0), + (CLIENT_DATA, 0), + (STRING, 0), + (STRING, 0), + (IMAGE_DISK_CONTAINER_LIST, {_sN: _DCiskon}), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (KMS_KEY_ID, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (IMPORT_IMAGE_LICENSE_SPECIFICATION_LIST_REQUEST, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 0), + (BOOT_MODE_VALUES, 0), + ), +) + +IMPORT_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _IIO, + {_sSI: _cIIRo, _smit: None}, + ( + _Arc, + _Des, + _En, + _Hy, + _IIm, + _ITI, + _KKI, + _LTi, + _Pla, + _Prog, + _SDna, + _Sta, + _SMt, + _LSic, + _Tag, + _UO, + ), + ( + (STRING, {_aQN: _Arc, _sN: _arch}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _Hy, _sN: _hy}), + (STRING, {_aQN: _IIm, _sN: _iIm}), + (IMPORT_IMAGE_TASK_ID, {_aQN: _ITI, _sN: _iTI}), + (KMS_KEY_ID, {_aQN: _KKI, _sN: _kKI}), + (STRING, {_aQN: _LTi, _sN: _lTi}), + (STRING, {_aQN: _Pla, _sN: _plat}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (SNAPSHOT_DETAIL_LIST, {_aQN: _SDSn, _sN: _sDSn}), + (STRING, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _SMt, _sN: _sMt}), + (IMPORT_IMAGE_LICENSE_SPECIFICATION_LIST_RESPONSE, {_aQN: _LSic, _sN: _lSic}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + (STRING, {_aQN: _UO, _sN: _uO}), + ), +) + +IMPORT_IMAGE: StaticOperationSchema = ( + 23, + n0, + _IImpo, + 0, + IMPORT_IMAGE_INPUT, + IMPORT_IMAGE_OUTPUT, + (), +) + +DISK_IMAGE_DETAIL: StaticSchema = ( + 18, + n0, + _DIDis, + 0, + (_For, _Byt, _IMU), + ( + (DISK_IMAGE_FORMAT, {_aQN: _For, _sN: _fo, _smi: None}), + (LONG, {_aQN: _Byt, _sN: _byt, _smi: None}), + (IMPORT_MANIFEST_URL, {_aQN: _IMU, _sN: _iMU, _smi: None}), + ), +) + +VOLUME_DETAIL: StaticSchema = ( + 18, + n0, + _VDo, + 0, + (_Si,), + ((LONG, {_aQN: _Si, _sN: _siz, _smi: None}),), +) + +DISK_IMAGE: StaticSchema = ( + 18, + n0, + _DIisk, + 0, + (_Des, _Im, _Vo), + ((STRING, 0), (DISK_IMAGE_DETAIL, 0), (VOLUME_DETAIL, 0)), +) + +DISK_IMAGE_LIST: StaticSchema = (16, n0, _DILi, 0, (_me,), ((DISK_IMAGE, 0),)) + +USER_DATA: StaticSchema = (18, n0, _UDs, 4, (_Da,), ((STRING, {_aQN: _Da, _sN: _dat}),)) + +IMPORT_INSTANCE_LAUNCH_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IILS, + 0, + (_Arc, _GNr, _GIrou, _AId, _UDs, _IT, _Pl, _Mon, _SIu, _IISB, _PIAr), + ( + (ARCHITECTURE_VALUES, {_aQN: _Arc, _sN: _arch}), + (SECURITY_GROUP_STRING_LIST, {_sN: _GN}), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _GIr}), + (STRING, {_aQN: _AId, _sN: _aId}), + (USER_DATA, {_aQN: _UDs, _sN: _uDs}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (BOOLEAN, {_aQN: _Mon, _sN: _monit}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (SHUTDOWN_BEHAVIOR, {_aQN: _IISB, _sN: _iISB}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + ), +) + +IMPORT_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _IIIm, + {_sSI: _cIIRom, _sm: None}, + (_DR, _Des, _LSaun, _DIiskm, _Pla), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _Des, _sN: _desc}), + (IMPORT_INSTANCE_LAUNCH_SPECIFICATION, {_aQN: _LSaun, _sN: _lSau}), + (DISK_IMAGE_LIST, {_aQN: _DIisk, _sN: _dIis}), + (PLATFORM_VALUES, {_aQN: _Pla, _sN: _plat, _smi: None}), + ), +) + +IMPORT_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _IIOm, + {_sSI: _cIIRoma, _smit: None}, + (_CTon,), + ((CONVERSION_TASK, {_aQN: _CTon, _sN: _cTonv}),), +) + +IMPORT_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _IImp, + 0, + IMPORT_INSTANCE_INPUT, + IMPORT_INSTANCE_OUTPUT, + (), +) + +BLOB: StaticSchema = (1, n0, _Blo, 0) + +IMPORT_KEY_PAIR_INPUT: StaticSchema = ( + 18, + n0, + _IKPI, + {_sSI: _cIKPR, _sm: None}, + (_TSa, _DR, _KN, _PKM), + ( + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _KN, _sN: _kN, _smi: None}), + (BLOB, {_aQN: _PKM, _sN: _pKM, _smi: None}), + ), +) + +IMPORT_KEY_PAIR_OUTPUT: StaticSchema = ( + 18, + n0, + _IKPO, + {_sSI: _cIKPRo, _smit: None}, + (_KFe, _KN, _KPI, _Tag), + ( + (STRING, {_aQN: _KFe, _sN: _kF}), + (STRING, {_aQN: _KN, _sN: _kN}), + (STRING, {_aQN: _KPI, _sN: _kPI}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +IMPORT_KEY_PAIR: StaticOperationSchema = ( + 23, + n0, + _IKP, + 0, + IMPORT_KEY_PAIR_INPUT, + IMPORT_KEY_PAIR_OUTPUT, + (), +) + +SNAPSHOT_DISK_CONTAINER: StaticSchema = ( + 18, + n0, + _SDCn, + 0, + (_Des, _For, _Ur, _UB), + ((STRING, 0), (STRING, 0), (SENSITIVE_URL, 0), (USER_BUCKET, 0)), +) + +IMPORT_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _ISIm, + {_sSI: _cISR, _sm: None}, + (_CDl, _CTl, _Des, _DCiskon, _DR, _En, _KKI, _RNo, _TSa), + ( + (CLIENT_DATA, 0), + (STRING, 0), + (STRING, 0), + (SNAPSHOT_DISK_CONTAINER, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (KMS_KEY_ID, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +IMPORT_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _ISO, + {_sSI: _cISRo, _smit: None}, + (_Des, _ITI, _STDn, _Tag), + ( + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _ITI, _sN: _iTI}), + (SNAPSHOT_TASK_DETAIL, {_aQN: _STDn, _sN: _sTD}), + (TAG_LIST, {_aQN: _TSag, _sN: _tS}), + ), +) + +IMPORT_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _ISmpo, + 0, + IMPORT_SNAPSHOT_INPUT, + IMPORT_SNAPSHOT_OUTPUT, + (), +) + +IMPORT_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _IVI, + {_sSI: _cIVR, _sm: None}, + (_AZI, _DR, _AZ, _Im, _Des, _Vo), + ( + (AVAILABILITY_ZONE_ID, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (DISK_IMAGE_DETAIL, {_aQN: _Im, _sN: _im, _smi: None}), + (STRING, {_aQN: _Des, _sN: _desc}), + (VOLUME_DETAIL, {_aQN: _Vo, _sN: _vo, _smi: None}), + ), +) + +IMPORT_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _IVO, + {_sSI: _cIVRo, _smit: None}, + (_CTon,), + ((CONVERSION_TASK, {_aQN: _CTon, _sN: _cTonv}),), +) + +IMPORT_VOLUME: StaticOperationSchema = ( + 23, + n0, + _IVm, + 0, + IMPORT_VOLUME_INPUT, + IMPORT_VOLUME_OUTPUT, + (), +) + +LIST_IMAGES_IN_RECYCLE_BIN_MAX_RESULTS: StaticSchema = (7, n0, _LIIRBMR, 0) + +LIST_IMAGES_IN_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _LIIRBI, + {_sSI: _cLIIRBR, _sm: None}, + (_IIma, _NTex, _MR, _DR), + ( + (IMAGE_ID_STRING_LIST, {_sN: _IIm}), + (STRING, 0), + (LIST_IMAGES_IN_RECYCLE_BIN_MAX_RESULTS, 0), + (BOOLEAN, 0), + ), +) + +IMAGE_RECYCLE_BIN_INFO: StaticSchema = ( + 18, + n0, + _IRBI, + 0, + (_IIm, _N, _Des, _RBET, _RBETe), + ( + (STRING, {_aQN: _IIm, _sN: _iIm}), + (STRING, {_aQN: _N, _sN: _nam}), + (STRING, {_aQN: _Des, _sN: _desc}), + (MILLISECOND_DATE_TIME, {_aQN: _RBET, _sN: _rBET}), + (MILLISECOND_DATE_TIME, {_aQN: _RBETe, _sN: _rBETe}), + ), +) + +IMAGE_RECYCLE_BIN_INFO_LIST: StaticSchema = ( + 16, + n0, + _IRBIL, + 0, + (_me,), + ((IMAGE_RECYCLE_BIN_INFO, {_sN: _i}),), +) + +LIST_IMAGES_IN_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _LIIRBO, + {_sSI: _cLIIRBRo, _smit: None}, + (_Ima, _NTex), + ( + (IMAGE_RECYCLE_BIN_INFO_LIST, {_aQN: _ISmage, _sN: _iSmage}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +LIST_IMAGES_IN_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _LIIRB, + 0, + LIST_IMAGES_IN_RECYCLE_BIN_INPUT, + LIST_IMAGES_IN_RECYCLE_BIN_OUTPUT, + (), +) + +LIST_SNAPSHOTS_IN_RECYCLE_BIN_MAX_RESULTS: StaticSchema = (7, n0, _LSIRBMR, 0) + +LIST_SNAPSHOTS_IN_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _LSIRBI, + {_sSI: _cLSIRBR, _sm: None}, + (_MR, _NTex, _SInap, _DR), + ( + (LIST_SNAPSHOTS_IN_RECYCLE_BIN_MAX_RESULTS, 0), + (STRING, 0), + (SNAPSHOT_ID_STRING_LIST, {_sN: _SIn}), + (BOOLEAN, 0), + ), +) + +SNAPSHOT_RECYCLE_BIN_INFO: StaticSchema = ( + 18, + n0, + _SRBI, + 0, + (_SIn, _RBET, _RBETe, _Des, _VIo), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (MILLISECOND_DATE_TIME, {_aQN: _RBET, _sN: _rBET}), + (MILLISECOND_DATE_TIME, {_aQN: _RBETe, _sN: _rBETe}), + (STRING, {_aQN: _Des, _sN: _desc}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + ), +) + +SNAPSHOT_RECYCLE_BIN_INFO_LIST: StaticSchema = ( + 16, + n0, + _SRBIL, + 0, + (_me,), + ((SNAPSHOT_RECYCLE_BIN_INFO, {_sN: _i}),), +) + +LIST_SNAPSHOTS_IN_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _LSIRBO, + {_sSI: _cLSIRBRo, _smit: None}, + (_Sn, _NTex), + ( + (SNAPSHOT_RECYCLE_BIN_INFO_LIST, {_aQN: _SSna, _sN: _sSn}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +LIST_SNAPSHOTS_IN_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _LSIRB, + 0, + LIST_SNAPSHOTS_IN_RECYCLE_BIN_INPUT, + LIST_SNAPSHOTS_IN_RECYCLE_BIN_OUTPUT, + (), +) + +LIST_VOLUMES_IN_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _LVIRBI, + {_sSI: _cLVIRBR, _sm: None}, + (_VIol, _DR, _MR, _NTex), + ((VOLUME_ID_STRING_LIST, {_sN: _VIo}), (BOOLEAN, 0), (INTEGER, 0), (STRING, 0)), +) + +VOLUME_RECYCLE_BIN_INFO: StaticSchema = ( + 18, + n0, + _VRBI, + 0, + ( + _VIo, + _VT, + _St, + _Si, + _Io, + _Th, + _OA, + _AZ, + _AZI, + _SVI, + _SIn, + _Op, + _CTr, + _RBET, + _RBETe, + ), + ( + (VOLUME_ID, {_aQN: _VIo, _sN: _vIo}), + (VOLUME_TYPE, {_aQN: _VT, _sN: _vT}), + (VOLUME_STATE, {_aQN: _St, _sN: _st}), + (INTEGER, {_aQN: _Si, _sN: _siz}), + (INTEGER, {_aQN: _Io, _sN: _iop}), + (INTEGER, {_aQN: _Th, _sN: _thr}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _AZ, _sN: _aZ}), + (STRING, {_aQN: _AZI, _sN: _aZI}), + (STRING, {_aQN: _SVI, _sN: _sVI}), + (STRING, {_aQN: _SIn, _sN: _sIn}), + (OPERATOR_RESPONSE, {_aQN: _Op, _sN: _ope}), + (DATE_TIME, {_aQN: _CTr, _sN: _cTr}), + (MILLISECOND_DATE_TIME, {_aQN: _RBET, _sN: _rBET}), + (MILLISECOND_DATE_TIME, {_aQN: _RBETe, _sN: _rBETe}), + ), +) + +VOLUME_RECYCLE_BIN_INFO_LIST: StaticSchema = ( + 16, + n0, + _VRBIL, + 0, + (_me,), + ((VOLUME_RECYCLE_BIN_INFO, {_sN: _i}),), +) + +LIST_VOLUMES_IN_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _LVIRBO, + {_sSI: _cLVIRBRo, _smit: None}, + (_Vol, _NTex), + ( + (VOLUME_RECYCLE_BIN_INFO_LIST, {_aQN: _VSo, _sN: _vS}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +LIST_VOLUMES_IN_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _LVIRB, + 0, + LIST_VOLUMES_IN_RECYCLE_BIN_INPUT, + LIST_VOLUMES_IN_RECYCLE_BIN_OUTPUT, + (), +) + +COOL_OFF_PERIOD_REQUEST_HOURS: StaticSchema = (7, n0, _COPRHo, 0) + +RETENTION_PERIOD_REQUEST_DAYS: StaticSchema = (7, n0, _RPRDe, 0) + +LOCK_MODE: StaticSchema = ( + 14, + n0, + _LM, + 0, + (_compli, _go), + ((-1, {_sV: _compli}), (-1, {_sV: _go})), +) + +LOCK_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _LSIo, + {_sSI: _cLSR, _sm: None}, + (_SIn, _DR, _LM, _COPo, _LDo, _EDx), + ( + (SNAPSHOT_ID, 1), + (BOOLEAN, 0), + (LOCK_MODE, 1), + (COOL_OFF_PERIOD_REQUEST_HOURS, 0), + (RETENTION_PERIOD_REQUEST_DAYS, 0), + (MILLISECOND_DATE_TIME, 0), + ), +) + +LOCK_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _LSO, + {_sSI: _cLSRo, _smit: None}, + (_SIn, _LSoc, _LDo, _COPo, _COPEO, _LCO, _LEO, _LDST), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (LOCK_STATE, {_aQN: _LSoc, _sN: _lSoc}), + (RETENTION_PERIOD_RESPONSE_DAYS, {_aQN: _LDo, _sN: _lDo}), + (COOL_OFF_PERIOD_RESPONSE_HOURS, {_aQN: _COPo, _sN: _cOPo}), + (MILLISECOND_DATE_TIME, {_aQN: _COPEO, _sN: _cOPEO}), + (MILLISECOND_DATE_TIME, {_aQN: _LCO, _sN: _lCO}), + (MILLISECOND_DATE_TIME, {_aQN: _LEO, _sN: _lEO}), + (MILLISECOND_DATE_TIME, {_aQN: _LDST, _sN: _lDST}), + ), +) + +LOCK_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _LSock, + 0, + LOCK_SNAPSHOT_INPUT, + LOCK_SNAPSHOT_OUTPUT, + (), +) + +MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _MAVECI, + {_sSI: _cMAVECR, _sm: None}, + (_DR, _Mo, _IG, _EOIG, _NG, _VPG, _VP, _La, _VL, _EFS), + ( + (BOOLEAN, 0), + (ACCOUNT_VPC_ENCRYPTION_CONTROL_MODE, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + ), +) + +MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _MAVECO, + {_sSI: _cMAVECRo, _smit: None}, + (_AVECc,), + ((ACCOUNT_VPC_ENCRYPTION_CONTROL, {_aQN: _AVECc, _sN: _aVEC}),), +) + +MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL: StaticOperationSchema = ( + 23, + n0, + _MAVEC, + 0, + MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT, + MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT, + (), +) + +MODIFY_ADDRESS_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MAAI, + {_sSI: _cMAAR, _sm: None}, + (_AI, _DNo, _DR), + ((ALLOCATION_ID, 1), (STRING, 0), (BOOLEAN, 0)), +) + +MODIFY_ADDRESS_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MAAO, + {_sSI: _cMAARo, _smit: None}, + (_Ad,), + ((ADDRESS_ATTRIBUTE, {_aQN: _Ad, _sN: _ad}),), +) + +MODIFY_ADDRESS_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MAA, + 0, + MODIFY_ADDRESS_ATTRIBUTE_INPUT, + MODIFY_ADDRESS_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_APPLICATION_STATUS_CHECK_INPUT: StaticSchema = ( + 18, + n0, + _MASCI, + {_sSI: _cMASCR, _sm: None}, + ( + _ASCI, + _Ag, + _HCP, + _P, + _Po, + _Pa, + _DI, + _IVp, + _ISpc, + _Int, + _Tim, + _FT, + _STu, + _SCM, + _IGPS, + _CTl, + _DR, + ), + ( + (APPLICATION_STATUS_CHECK_ID, 1), + (AGGREGATION_STATUS_ENUM, 0), + (HEALTH_CHECK_PATH_REQUEST_LIST, {_sN: _HCPe}), + (NETWORK_PROTOCOL_ENUM, 0), + (PORT_NUMBER, 0), + (STRING, 0), + (INTEGER, 0), + (IP_VERSION_ENUM, 0), + (IP_SCOPE_ENUM, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (INITIALIZATION_GRACE_PERIOD_SECONDS, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +MODIFY_APPLICATION_STATUS_CHECK_OUTPUT: StaticSchema = ( + 18, + n0, + _MASCO, + {_sSI: _cMASCRo, _smit: None}, + (_ASCp,), + ((APPLICATION_STATUS_CHECK_RESPONSE_OBJECT, {_aQN: _ASCp, _sN: _aSC}),), +) + +MODIFY_APPLICATION_STATUS_CHECK: StaticOperationSchema = ( + 23, + n0, + _MASC, + 0, + MODIFY_APPLICATION_STATUS_CHECK_INPUT, + MODIFY_APPLICATION_STATUS_CHECK_OUTPUT, + (), +) + +MODIFY_AVAILABILITY_ZONE_OPT_IN_STATUS: StaticSchema = ( + 14, + n0, + _MAZOIS, + 0, + (_oi_, _noi), + ((-1, {_sV: _oi__}), (-1, {_sV: _noi_})), +) + +MODIFY_AVAILABILITY_ZONE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MAZGI, + {_sSI: _cMAZGR, _sm: None}, + (_GN, _OIS, _DR), + ((STRING, 1), (MODIFY_AVAILABILITY_ZONE_OPT_IN_STATUS, 1), (BOOLEAN, 0)), +) + +MODIFY_AVAILABILITY_ZONE_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MAZGO, + {_sSI: _cMAZGRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_AVAILABILITY_ZONE_GROUP: StaticOperationSchema = ( + 23, + n0, + _MAZG, + 0, + MODIFY_AVAILABILITY_ZONE_GROUP_INPUT, + MODIFY_AVAILABILITY_ZONE_GROUP_OUTPUT, + (), +) + +MODIFY_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _MCRI, + {_sSI: _cMCRR, _sm: None}, + (_CRI, _IC, _ED, _EDT, _Accep, _DR, _AId, _IMC, _AMT, _SDt, _QI), + ( + (CAPACITY_RESERVATION_ID, 1), + (INTEGER, 0), + (DATE_TIME, 0), + (END_DATE_TYPE, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (INSTANCE_MATCH_CRITERIA, 0), + (BOOLEAN, 0), + (MILLISECOND_DATE_TIME, 0), + (CAPACITY_RESERVATION_MODIFICATION_QUOTE_ID, 0), + ), +) + +MODIFY_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MCRO, + {_sSI: _cMCRRo, _smit: None}, + (_R, _ASd, _ADdj), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (CAPACITY_RESERVATION_ADJUSTMENT_STATUS, {_aQN: _ASd, _sN: _aSd}), + (CAPACITY_RESERVATION_ADJUSTMENT_DETAILS, {_aQN: _ADdj, _sN: _aD}), + ), +) + +MODIFY_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _MCR, + 0, + MODIFY_CAPACITY_RESERVATION_INPUT, + MODIFY_CAPACITY_RESERVATION_OUTPUT, + (), +) + +MODIFY_CAPACITY_RESERVATION_FLEET_INPUT: StaticSchema = ( + 18, + n0, + _MCRFI, + {_sSI: _cMCRFR, _sm: None}, + (_CRFI, _TTC, _ED, _DR, _RED), + ( + (CAPACITY_RESERVATION_FLEET_ID, 1), + (INTEGER, 0), + (MILLISECOND_DATE_TIME, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_CAPACITY_RESERVATION_FLEET_OUTPUT: StaticSchema = ( + 18, + n0, + _MCRFO, + {_sSI: _cMCRFRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_CAPACITY_RESERVATION_FLEET: StaticOperationSchema = ( + 23, + n0, + _MCRF, + 0, + MODIFY_CAPACITY_RESERVATION_FLEET_INPUT, + MODIFY_CAPACITY_RESERVATION_FLEET_OUTPUT, + (), +) + +DNS_SERVERS_OPTIONS_MODIFY_STRUCTURE: StaticSchema = ( + 18, + n0, + _DSOMS, + 0, + (_CDSu, _Ena), + ((VALUE_STRING_LIST, 0), (BOOLEAN, 0)), +) + +MODIFY_CLIENT_VPN_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MCVEI, + {_sSI: _cMCVER, _sm: None}, + ( + _CVEI, + _SCA, + _CLO, + _DSn, + _VPp, + _Des, + _STp, + _DR, + _SGIe, + _VI, + _SSP, + _CCO, + _STH, + _CLBO, + _CREO, + _DOST, + _TGC, + _DPO, + ), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (STRING, 0), + (CONNECTION_LOG_OPTIONS, 0), + (DNS_SERVERS_OPTIONS_MODIFY_STRUCTURE, 0), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (CLIENT_VPN_SECURITY_GROUP_ID_SET, {_sN: _SGI}), + (VPC_ID, 0), + (SELF_SERVICE_PORTAL, 0), + (CLIENT_CONNECT_OPTIONS, 0), + (INTEGER, 0), + (CLIENT_LOGIN_BANNER_OPTIONS, 0), + (CLIENT_ROUTE_ENFORCEMENT_OPTIONS, 0), + (BOOLEAN, 0), + (TRANSIT_GATEWAY_CONFIGURATION_INPUT_STRUCTURE, 0), + (DEVICE_POSTURE_OPTIONS, 0), + ), +) + +MODIFY_CLIENT_VPN_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MCVEO, + {_sSI: _cMCVERo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_CLIENT_VPN_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MCVE, + 0, + MODIFY_CLIENT_VPN_ENDPOINT_INPUT, + MODIFY_CLIENT_VPN_ENDPOINT_OUTPUT, + (), +) + +MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _MCVEAPI, + {_sSI: _cMCVEAPR, _sm: None}, + (_CVEI, _PDo, _Des, _SMh, _CTl, _DR), + ( + (CLIENT_VPN_ENDPOINT_ID, 1), + (STRING, 0), + (STRING, 0), + (CLIENT_VPN_AUTHORIZATION_POLICY_SHADOW_MODE, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _MCVEAPO, + {_sSI: _cMCVEAPRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_AUTHORIZATION_POLICY_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: StaticOperationSchema = ( + 23, + n0, + _MCVEAP, + 0, + MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT, + MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT, + (), +) + +MODIFY_DEFAULT_CREDIT_SPECIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _MDCSI, + {_sSI: _cMDCSR, _sm: None}, + (_DR, _IF, _CCp), + ((BOOLEAN, 0), (UNLIMITED_SUPPORTED_INSTANCE_FAMILY, 1), (STRING, 1)), +) + +MODIFY_DEFAULT_CREDIT_SPECIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MDCSO, + {_sSI: _cMDCSRo, _smit: None}, + (_IFCS,), + ((INSTANCE_FAMILY_CREDIT_SPECIFICATION, {_aQN: _IFCS, _sN: _iFCS}),), +) + +MODIFY_DEFAULT_CREDIT_SPECIFICATION: StaticOperationSchema = ( + 23, + n0, + _MDCS, + 0, + MODIFY_DEFAULT_CREDIT_SPECIFICATION_INPUT, + MODIFY_DEFAULT_CREDIT_SPECIFICATION_OUTPUT, + (), +) + +MODIFY_EBS_DEFAULT_KMS_KEY_ID_INPUT: StaticSchema = ( + 18, + n0, + _MEDKKII, + {_sSI: _cMEDKKIR, _sm: None}, + (_KKI, _DR), + ((KMS_KEY_ID, 1), (BOOLEAN, 0)), +) + +MODIFY_EBS_DEFAULT_KMS_KEY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _MEDKKIO, + {_sSI: _cMEDKKIRo, _smit: None}, + (_KKI,), + ((STRING, {_aQN: _KKI, _sN: _kKI}),), +) + +MODIFY_EBS_DEFAULT_KMS_KEY_ID: StaticOperationSchema = ( + 23, + n0, + _MEDKKI, + 0, + MODIFY_EBS_DEFAULT_KMS_KEY_ID_INPUT, + MODIFY_EBS_DEFAULT_KMS_KEY_ID_OUTPUT, + (), +) + +MODIFY_FLEET_INPUT: StaticSchema = ( + 18, + n0, + _MFI, + {_sSI: _cMFR, _sm: None}, + (_DR, _ECTP, _LTC, _FIl, _TCS, _Con), + ( + (BOOLEAN, 0), + (FLEET_EXCESS_CAPACITY_TERMINATION_POLICY, 0), + (FLEET_LAUNCH_TEMPLATE_CONFIG_LIST_REQUEST, {_sN: _LTCa}), + (FLEET_ID, 1), + (TARGET_CAPACITY_SPECIFICATION_REQUEST, 0), + (STRING, 0), + ), +) + +MODIFY_FLEET_OUTPUT: StaticSchema = ( + 18, + n0, + _MFO, + {_sSI: _cMFRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_FLEET: StaticOperationSchema = ( + 23, + n0, + _MFo, + 0, + MODIFY_FLEET_INPUT, + MODIFY_FLEET_OUTPUT, + (), +) + +LOAD_PERMISSION_REQUEST: StaticSchema = ( + 18, + n0, + _LPR, + 0, + (_Gr, _UIs), + ((PERMISSION_GROUP, 0), (STRING, 0)), +) + +LOAD_PERMISSION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _LPLR, + 0, + (_me,), + ((LOAD_PERMISSION_REQUEST, {_sN: _i}),), +) + +LOAD_PERMISSION_MODIFICATIONS: StaticSchema = ( + 18, + n0, + _LPM, + 0, + (_Add_, _Remo), + ((LOAD_PERMISSION_LIST_REQUEST, 0), (LOAD_PERMISSION_LIST_REQUEST, 0)), +) + +OPERATION_TYPE: StaticSchema = ( + 14, + n0, + _OTp, + 0, + (_add, _remo), + ((-1, {_sV: _add}), (-1, {_sV: _remo})), +) + +PRODUCT_CODE_STRING_LIST: StaticSchema = ( + 16, + n0, + _PCSL, + 0, + (_me,), + ((STRING, {_sN: _PCr}),), +) + +USER_GROUP_STRING_LIST: StaticSchema = ( + 16, + n0, + _UGSL, + 0, + (_me,), + ((STRING, {_sN: _UG}),), +) + +USER_ID_STRING_LIST: StaticSchema = (16, n0, _UISL, 0, (_me,), ((STRING, {_sN: _UIs}),)) + +MODIFY_FPGA_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MFIAI, + {_sSI: _cMFIAR, _sm: None}, + (_DR, _FII, _Attr, _OTp, _UIse, _UGs, _PCro, _LPo, _Des, _N), + ( + (BOOLEAN, 0), + (FPGA_IMAGE_ID, 1), + (FPGA_IMAGE_ATTRIBUTE_NAME, 0), + (OPERATION_TYPE, 0), + (USER_ID_STRING_LIST, {_sN: _UIs}), + (USER_GROUP_STRING_LIST, {_sN: _UG}), + (PRODUCT_CODE_STRING_LIST, {_sN: _PCr}), + (LOAD_PERMISSION_MODIFICATIONS, 0), + (STRING, 0), + (STRING, 0), + ), +) + +MODIFY_FPGA_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MFIAO, + {_sSI: _cMFIARo, _smit: None}, + (_FIA,), + ((FPGA_IMAGE_ATTRIBUTE, {_aQN: _FIA, _sN: _fIA}),), +) + +MODIFY_FPGA_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MFIA, + 0, + MODIFY_FPGA_IMAGE_ATTRIBUTE_INPUT, + MODIFY_FPGA_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_HOSTS_INPUT: StaticSchema = ( + 18, + n0, + _MHI, + {_sSI: _cMHR, _sm: None}, + (_HR, _IT, _IF, _HM, _HI, _APu), + ( + (HOST_RECOVERY, 0), + (STRING, 0), + (STRING, 0), + (HOST_MAINTENANCE, 0), + (REQUEST_HOST_ID_LIST, {_aQN: _HIo, _sN: _hI, _smi: None}), + (AUTO_PLACEMENT, {_aQN: _APu, _sN: _aP}), + ), +) + +UNSUCCESSFUL_ITEM_LIST: StaticSchema = ( + 16, + n0, + _UILn, + 0, + (_me,), + ((UNSUCCESSFUL_ITEM, {_sN: _i}),), +) + +MODIFY_HOSTS_OUTPUT: StaticSchema = ( + 18, + n0, + _MHO, + {_sSI: _cMHRo, _smit: None}, + (_Suc, _Un), + ( + (RESPONSE_HOST_ID_LIST, {_aQN: _Suc, _sN: _succ}), + (UNSUCCESSFUL_ITEM_LIST, {_aQN: _Un, _sN: _un}), + ), +) + +MODIFY_HOSTS: StaticOperationSchema = ( + 23, + n0, + _MHo, + 0, + MODIFY_HOSTS_INPUT, + MODIFY_HOSTS_OUTPUT, + (), +) + +MODIFY_IDENTITY_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _MIIFI, + {_sSI: _cMIIFR, _sm: None}, + (_Reso, _ULI, _PAr), + ( + (STRING, {_aQN: _Reso, _sN: _reso, _smi: None}), + (BOOLEAN, {_aQN: _ULI, _sN: _uLI, _smi: None}), + (STRING, {_aQN: _PAr, _sN: _pAr, _smi: None}), + ), +) + +MODIFY_IDENTITY_ID_FORMAT_OUTPUT: StaticSchema = ( + 18, + n0, + _MIIFO, + {_sSI: _sU, _smit: None}, +) + +MODIFY_IDENTITY_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _MIIF, + 0, + MODIFY_IDENTITY_ID_FORMAT_INPUT, + MODIFY_IDENTITY_ID_FORMAT_OUTPUT, + (), +) + +MODIFY_ID_FORMAT_INPUT: StaticSchema = ( + 18, + n0, + _MIFI, + {_sSI: _cMIFR, _sm: None}, + (_Reso, _ULI), + ((STRING, 1), (BOOLEAN, 1)), +) + +MODIFY_ID_FORMAT_OUTPUT: StaticSchema = (18, n0, _MIFO, {_sSI: _sU, _smit: None}) + +MODIFY_ID_FORMAT: StaticOperationSchema = ( + 23, + n0, + _MIF, + 0, + MODIFY_ID_FORMAT_INPUT, + MODIFY_ID_FORMAT_OUTPUT, + (), +) + +LAUNCH_PERMISSION_MODIFICATIONS: StaticSchema = ( + 18, + n0, + _LPMa, + 0, + (_Add_, _Remo), + ((LAUNCH_PERMISSION_LIST, 0), (LAUNCH_PERMISSION_LIST, 0)), +) + +ORGANIZATIONAL_UNIT_ARN_STRING_LIST: StaticSchema = ( + 16, + n0, + _OUASL, + 0, + (_me,), + ((STRING, {_sN: _OUA}),), +) + +ORGANIZATION_ARN_STRING_LIST: StaticSchema = ( + 16, + n0, + _OASL, + 0, + (_me,), + ((STRING, {_sN: _OAr}),), +) + +MODIFY_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MIAI, + {_sSI: _cMIAR, _sm: None}, + (_Attr, _Des, _IIm, _LPa, _OTp, _PCro, _UGs, _UIse, _Va, _OArga, _OUAr, _ISm, _DR), + ( + (STRING, 0), + (ATTRIBUTE_VALUE, 0), + (IMAGE_ID, 1), + (LAUNCH_PERMISSION_MODIFICATIONS, 0), + (OPERATION_TYPE, 0), + (PRODUCT_CODE_STRING_LIST, {_sN: _PCr}), + (USER_GROUP_STRING_LIST, {_sN: _UG}), + (USER_ID_STRING_LIST, {_sN: _UIs}), + (STRING, 0), + (ORGANIZATION_ARN_STRING_LIST, {_sN: _OAr}), + (ORGANIZATIONAL_UNIT_ARN_STRING_LIST, {_sN: _OUA}), + (ATTRIBUTE_VALUE, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +MODIFY_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = (18, n0, _MIAO, {_sSI: _sU, _smit: None}) + +MODIFY_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MIA, + 0, + MODIFY_IMAGE_ATTRIBUTE_INPUT, + MODIFY_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +EBS_INSTANCE_BLOCK_DEVICE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _EIBDS, + 0, + (_VIo, _DOT), + ((VOLUME_ID, {_aQN: _VIo, _sN: _vIo}), (BOOLEAN, {_aQN: _DOT, _sN: _dOT})), +) + +INSTANCE_BLOCK_DEVICE_MAPPING_SPECIFICATION: StaticSchema = ( + 18, + n0, + _IBDMS, + 0, + (_DNe, _Eb, _VN, _ND), + ( + (STRING, {_aQN: _DNe, _sN: _dNe}), + (EBS_INSTANCE_BLOCK_DEVICE_SPECIFICATION, {_aQN: _Eb, _sN: _eb}), + (STRING, {_aQN: _VN, _sN: _vN}), + (STRING, {_aQN: _ND, _sN: _nD}), + ), +) + +INSTANCE_BLOCK_DEVICE_MAPPING_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _IBDMSL, + 0, + (_me,), + ((INSTANCE_BLOCK_DEVICE_MAPPING_SPECIFICATION, {_sN: _i}),), +) + +ENCLAVE_OPTIONS_REQUEST: StaticSchema = (18, n0, _EOR, 0, (_Ena,), ((BOOLEAN, 0),)) + +SECURE_BLOB_ATTRIBUTE_VALUE: StaticSchema = ( + 18, + n0, + _SBAV, + 0, + (_Va,), + ((SECURE_BLOB, {_aQN: _Va, _sN: _va}),), +) + +MODIFY_INSTANCE_ATTRIBUTE_VALUE: StaticSchema = (3, n0, _MIAV, 4) + +MODIFY_INSTANCE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MIAIo, + {_sSI: _cMIARo, _sm: None}, + ( + _SDC, + _EOn, + _DASi, + _DR, + _II, + _Attr, + _Va, + _BDMl, + _DAT, + _IT, + _Ker, + _Ra, + _UDs, + _IISB, + _G, + _EO, + _SNSr, + _ESna, + ), + ( + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (ENCLAVE_OPTIONS_REQUEST, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (INSTANCE_ATTRIBUTE_NAME, {_aQN: _Attr, _sN: _attr}), + (MODIFY_INSTANCE_ATTRIBUTE_VALUE, {_aQN: _Va, _sN: _va}), + (INSTANCE_BLOCK_DEVICE_MAPPING_SPECIFICATION_LIST, {_aQN: _BDM, _sN: _bDM}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _DAT, _sN: _dAT}), + (ATTRIBUTE_VALUE, {_aQN: _IT, _sN: _iT}), + (ATTRIBUTE_VALUE, {_aQN: _Ker, _sN: _ker}), + (ATTRIBUTE_VALUE, {_aQN: _Ra, _sN: _ramd}), + (SECURE_BLOB_ATTRIBUTE_VALUE, {_aQN: _UDs, _sN: _uDs}), + (ATTRIBUTE_VALUE, {_aQN: _IISB, _sN: _iISB}), + (GROUP_ID_STRING_LIST, {_sN: _GIr}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _EO, _sN: _eO}), + (ATTRIBUTE_VALUE, {_aQN: _SNSr, _sN: _sNS}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _ESna, _sN: _eSna}), + ), +) + +MODIFY_INSTANCE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MIAOo, + {_sSI: _sU, _smit: None}, +) + +MODIFY_INSTANCE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MIAo, + 0, + MODIFY_INSTANCE_ATTRIBUTE_INPUT, + MODIFY_INSTANCE_ATTRIBUTE_OUTPUT, + (), +) + +CAPACITY_RESERVATION_SPECIFICATION: StaticSchema = ( + 18, + n0, + _CRSa, + 0, + (_CRP, _CRTap), + ((CAPACITY_RESERVATION_PREFERENCE, 0), (CAPACITY_RESERVATION_TARGET, 0)), +) + +MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _MICRAI, + {_sSI: _cMICRAR, _sm: None}, + (_II, _CRSa, _DR), + ((INSTANCE_ID, 1), (CAPACITY_RESERVATION_SPECIFICATION, 1), (BOOLEAN, 0)), +) + +MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _MICRAO, + {_sSI: _cMICRARo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _MICRA, + 0, + MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_INPUT, + MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_OUTPUT, + (), +) + +MODIFY_INSTANCE_CONNECT_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MICEI, + {_sSI: _cMICER, _sm: None}, + (_DR, _ICEI, _IAT, _SGIe, _PCI), + ( + (BOOLEAN, 0), + (INSTANCE_CONNECT_ENDPOINT_ID, 1), + (IP_ADDRESS_TYPE, 0), + (SECURITY_GROUP_ID_STRING_LIST_REQUEST, {_sN: _SGI}), + (BOOLEAN, 0), + ), +) + +MODIFY_INSTANCE_CONNECT_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MICEO, + {_sSI: _cMICERo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_INSTANCE_CONNECT_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MICE, + 0, + MODIFY_INSTANCE_CONNECT_ENDPOINT_INPUT, + MODIFY_INSTANCE_CONNECT_ENDPOINT_OUTPUT, + (), +) + +MODIFY_INSTANCE_CPU_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MICOI, + {_sSI: _cMICOR, _sm: None}, + (_II, _CCor, _TPC, _NV, _DR), + ( + (INSTANCE_ID, 1), + (INTEGER, 0), + (INTEGER, 0), + (NESTED_VIRTUALIZATION_SPECIFICATION, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_INSTANCE_CPU_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MICOO, + {_sSI: _cMICORo, _smit: None}, + (_II, _CCor, _TPC, _NV), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (INTEGER, {_aQN: _CCor, _sN: _cCor}), + (INTEGER, {_aQN: _TPC, _sN: _tPC}), + (NESTED_VIRTUALIZATION_SPECIFICATION, {_aQN: _NV, _sN: _nV}), + ), +) + +MODIFY_INSTANCE_CPU_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MICO, + 0, + MODIFY_INSTANCE_CPU_OPTIONS_INPUT, + MODIFY_INSTANCE_CPU_OPTIONS_OUTPUT, + (), +) + +INSTANCE_CREDIT_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _ICSR, + 0, + (_II, _CCp), + ((INSTANCE_ID, 1), (STRING, 0)), +) + +INSTANCE_CREDIT_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _ICSLR, + 0, + (_me,), + ((INSTANCE_CREDIT_SPECIFICATION_REQUEST, {_sN: _i}),), +) + +MODIFY_INSTANCE_CREDIT_SPECIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _MICSI, + {_sSI: _cMICSR, _sm: None}, + (_DR, _CTl, _ICSn), + ( + (BOOLEAN, 0), + (STRING, 0), + (INSTANCE_CREDIT_SPECIFICATION_LIST_REQUEST, {_sN: _ICS, _smi: None}), + ), +) + +SUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM: StaticSchema = ( + 18, + n0, + _SICSI, + 0, + (_II,), + ((STRING, {_aQN: _II, _sN: _iI}),), +) + +SUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_SET: StaticSchema = ( + 16, + n0, + _SICSS, + 0, + (_me,), + ((SUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM, {_sN: _i}),), +) + +UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ERROR_CODE: StaticSchema = ( + 14, + n0, + _UICSEC, + 0, + (_III_, _INF, _IIS_, _ICSNS), + ( + (-1, {_sV: _IIIDM}), + (-1, {_sV: _IIIDNF}), + (-1, {_sV: _IISnc}), + (-1, {_sV: _ICSNSn}), + ), +) + +UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM_ERROR: StaticSchema = ( + 18, + n0, + _UICSIE, + 0, + (_C, _Me), + ( + (UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ERROR_CODE, {_aQN: _C, _sN: _co}), + (STRING, {_aQN: _Me, _sN: _mes}), + ), +) + +UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM: StaticSchema = ( + 18, + n0, + _UICSI, + 0, + (_II, _E), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM_ERROR, {_aQN: _E, _sN: _er}), + ), +) + +UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_SET: StaticSchema = ( + 16, + n0, + _UICSS, + 0, + (_me,), + ((UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM, {_sN: _i}),), +) + +MODIFY_INSTANCE_CREDIT_SPECIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MICSO, + {_sSI: _cMICSRo, _smit: None}, + (_SICS, _UICS), + ( + (SUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_SET, {_aQN: _SICSS, _sN: _sICSS}), + (UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_SET, {_aQN: _UICSS, _sN: _uICSS}), + ), +) + +MODIFY_INSTANCE_CREDIT_SPECIFICATION: StaticOperationSchema = ( + 23, + n0, + _MICS, + 0, + MODIFY_INSTANCE_CREDIT_SPECIFICATION_INPUT, + MODIFY_INSTANCE_CREDIT_SPECIFICATION_OUTPUT, + (), +) + +MODIFY_INSTANCE_EVENT_START_TIME_INPUT: StaticSchema = ( + 18, + n0, + _MIESTI, + {_sSI: _cMIESTR, _sm: None}, + (_DR, _II, _IEI, _NB), + ((BOOLEAN, 0), (INSTANCE_ID, 1), (STRING, 1), (DATE_TIME, 1)), +) + +MODIFY_INSTANCE_EVENT_START_TIME_OUTPUT: StaticSchema = ( + 18, + n0, + _MIESTO, + {_sSI: _cMIESTRo, _smit: None}, + (_Eve,), + ((INSTANCE_STATUS_EVENT, {_aQN: _Eve, _sN: _ev}),), +) + +MODIFY_INSTANCE_EVENT_START_TIME: StaticOperationSchema = ( + 23, + n0, + _MIEST, + 0, + MODIFY_INSTANCE_EVENT_START_TIME_INPUT, + MODIFY_INSTANCE_EVENT_START_TIME_OUTPUT, + (), +) + +MODIFY_INSTANCE_EVENT_WINDOW_INPUT: StaticSchema = ( + 18, + n0, + _MIEWI, + {_sSI: _cMIEWR, _sm: None}, + (_DR, _N, _IEWI, _TRi, _CE), + ( + (BOOLEAN, 0), + (STRING, 0), + (INSTANCE_EVENT_WINDOW_ID, 1), + (INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST_SET, {_sN: _TRim}), + (INSTANCE_EVENT_WINDOW_CRON_EXPRESSION, 0), + ), +) + +MODIFY_INSTANCE_EVENT_WINDOW_OUTPUT: StaticSchema = ( + 18, + n0, + _MIEWO, + {_sSI: _cMIEWRo, _smit: None}, + (_IEW,), + ((INSTANCE_EVENT_WINDOW, {_aQN: _IEW, _sN: _iEW}),), +) + +MODIFY_INSTANCE_EVENT_WINDOW: StaticOperationSchema = ( + 23, + n0, + _MIEW, + 0, + MODIFY_INSTANCE_EVENT_WINDOW_INPUT, + MODIFY_INSTANCE_EVENT_WINDOW_OUTPUT, + (), +) + +MODIFY_INSTANCE_MAINTENANCE_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MIMOI, + {_sSI: _cMIMOR, _sm: None}, + (_II, _ARu, _RMeb, _DR), + ( + (INSTANCE_ID, 1), + (INSTANCE_AUTO_RECOVERY_STATE, 0), + (INSTANCE_REBOOT_MIGRATION_STATE, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_INSTANCE_MAINTENANCE_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MIMOO, + {_sSI: _cMIMORo, _smit: None}, + (_II, _ARu, _RMeb), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (INSTANCE_AUTO_RECOVERY_STATE, {_aQN: _ARu, _sN: _aRu}), + (INSTANCE_REBOOT_MIGRATION_STATE, {_aQN: _RMeb, _sN: _rMeb}), + ), +) + +MODIFY_INSTANCE_MAINTENANCE_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MIMO, + 0, + MODIFY_INSTANCE_MAINTENANCE_OPTIONS_INPUT, + MODIFY_INSTANCE_MAINTENANCE_OPTIONS_OUTPUT, + (), +) + +DEFAULT_INSTANCE_METADATA_ENDPOINT_STATE: StaticSchema = ( + 14, + n0, + _DIMES, + 0, + (_d, _ena, _np), + ((-1, {_sV: _d}), (-1, {_sV: _ena}), (-1, {_sV: _np_})), +) + +METADATA_DEFAULT_HTTP_TOKENS_STATE: StaticSchema = ( + 14, + n0, + _MDHTS, + 0, + (_opt, _requ, _np), + ((-1, {_sV: _opt}), (-1, {_sV: _requ}), (-1, {_sV: _np_})), +) + +DEFAULT_HTTP_TOKENS_ENFORCED_STATE: StaticSchema = ( + 14, + n0, + _DHTES, + 0, + (_d, _ena, _np), + ((-1, {_sV: _d}), (-1, {_sV: _ena}), (-1, {_sV: _np_})), +) + +DEFAULT_INSTANCE_METADATA_TAGS_STATE: StaticSchema = ( + 14, + n0, + _DIMTS, + 0, + (_d, _ena, _np), + ((-1, {_sV: _d}), (-1, {_sV: _ena}), (-1, {_sV: _np_})), +) + +MODIFY_INSTANCE_METADATA_DEFAULTS_INPUT: StaticSchema = ( + 18, + n0, + _MIMDI, + {_sSI: _cMIMDR, _sm: None}, + (_HTt, _HPRHL, _HE, _IMT, _DR, _HTE), + ( + (METADATA_DEFAULT_HTTP_TOKENS_STATE, 0), + (BOXED_INTEGER, 0), + (DEFAULT_INSTANCE_METADATA_ENDPOINT_STATE, 0), + (DEFAULT_INSTANCE_METADATA_TAGS_STATE, 0), + (BOOLEAN, 0), + (DEFAULT_HTTP_TOKENS_ENFORCED_STATE, 0), + ), +) + +MODIFY_INSTANCE_METADATA_DEFAULTS_OUTPUT: StaticSchema = ( + 18, + n0, + _MIMDO, + {_sSI: _cMIMDRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_INSTANCE_METADATA_DEFAULTS: StaticOperationSchema = ( + 23, + n0, + _MIMD, + 0, + MODIFY_INSTANCE_METADATA_DEFAULTS_INPUT, + MODIFY_INSTANCE_METADATA_DEFAULTS_OUTPUT, + (), +) + +MODIFY_INSTANCE_METADATA_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MIMOIo, + {_sSI: _cMIMORom, _sm: None}, + (_II, _HTt, _HPRHL, _HE, _DR, _HPI, _IMT), + ( + (INSTANCE_ID, 1), + (HTTP_TOKENS_STATE, 0), + (INTEGER, 0), + (INSTANCE_METADATA_ENDPOINT_STATE, 0), + (BOOLEAN, 0), + (INSTANCE_METADATA_PROTOCOL_STATE, 0), + (INSTANCE_METADATA_TAGS_STATE, 0), + ), +) + +MODIFY_INSTANCE_METADATA_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MIMOOo, + {_sSI: _cMIMORoma, _smit: None}, + (_II, _IMOns), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (INSTANCE_METADATA_OPTIONS_RESPONSE, {_aQN: _IMOns, _sN: _iMOn}), + ), +) + +MODIFY_INSTANCE_METADATA_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MIMOo, + 0, + MODIFY_INSTANCE_METADATA_OPTIONS_INPUT, + MODIFY_INSTANCE_METADATA_OPTIONS_OUTPUT, + (), +) + +MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MINPOI, + {_sSI: _cMINPR, _sm: None}, + (_II, _BW, _DR), + ((INSTANCE_ID, 1), (INSTANCE_BANDWIDTH_WEIGHTING, 1), (BOOLEAN, 0)), +) + +MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MINPOO, + {_sSI: _cMINPRo, _smit: None}, + (_II, _BW), + ( + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (INSTANCE_BANDWIDTH_WEIGHTING, {_aQN: _BW, _sN: _bW}), + ), +) + +MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MINPO, + 0, + MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_INPUT, + MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_OUTPUT, + (), +) + +HOST_TENANCY: StaticSchema = ( + 14, + n0, + _HTo, + 0, + (_def, _ded, _ho), + ((-1, {_sV: _def}), (-1, {_sV: _ded}), (-1, {_sV: _ho})), +) + +MODIFY_INSTANCE_PLACEMENT_INPUT: StaticSchema = ( + 18, + n0, + _MIPI, + {_sSI: _cMIPR, _sm: None}, + (_GN, _PNa, _HRGA, _GIr, _II, _Ten, _Af, _HIo), + ( + (PLACEMENT_GROUP_NAME, 0), + (INTEGER, 0), + (STRING, 0), + (PLACEMENT_GROUP_ID, 0), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (HOST_TENANCY, {_aQN: _Ten, _sN: _ten}), + (AFFINITY, {_aQN: _Af, _sN: _aff}), + (DEDICATED_HOST_ID, {_aQN: _HIo, _sN: _hI}), + ), +) + +MODIFY_INSTANCE_PLACEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPO, + {_sSI: _cMIPRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_INSTANCE_PLACEMENT: StaticOperationSchema = ( + 23, + n0, + _MIPo, + 0, + MODIFY_INSTANCE_PLACEMENT_INPUT, + MODIFY_INSTANCE_PLACEMENT_OUTPUT, + (), +) + +REMOVE_IPAM_OPERATING_REGION: StaticSchema = (18, n0, _RIOR, 0, (_RNe,), ((STRING, 0),)) + +REMOVE_IPAM_OPERATING_REGION_SET: StaticSchema = ( + 16, + n0, + _RIORS, + 0, + (_me,), + ((REMOVE_IPAM_OPERATING_REGION, 0),), +) + +MODIFY_IPAM_INPUT: StaticSchema = ( + 18, + n0, + _MII, + {_sSI: _cMIR, _sm: None}, + (_DR, _IIp, _Des, _AOR, _ROR, _Tie, _EPG, _MAe), + ( + (BOOLEAN, 0), + (IPAM_ID, 1), + (STRING, 0), + (ADD_IPAM_OPERATING_REGION_SET, {_sN: _AORd}), + (REMOVE_IPAM_OPERATING_REGION_SET, {_sN: _RORe}), + (IPAM_TIER, 0), + (BOOLEAN, 0), + (IPAM_METERED_ACCOUNT, 0), + ), +) + +MODIFY_IPAM_OUTPUT: StaticSchema = ( + 18, + n0, + _MIO, + {_sSI: _cMIRo, _smit: None}, + (_Ipa,), + ((IPAM, {_aQN: _Ipa, _sN: _ip}),), +) + +MODIFY_IPAM: StaticOperationSchema = ( + 23, + n0, + _MIo, + 0, + MODIFY_IPAM_INPUT, + MODIFY_IPAM_OUTPUT, + (), +) + +IPAM_POLICY_ALLOCATION_RULE_REQUEST: StaticSchema = ( + 18, + n0, + _IPARR, + 0, + (_SIPI,), + ((IPAM_POOL_ID, 0),), +) + +IPAM_POLICY_ALLOCATION_RULE_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _IPARLR, + 0, + (_me,), + ((IPAM_POLICY_ALLOCATION_RULE_REQUEST, {_sN: _i}),), +) + +MODIFY_IPAM_POLICY_ALLOCATION_RULES_INPUT: StaticSchema = ( + 18, + n0, + _MIPARI, + {_sSI: _cMIPARR, _sm: None}, + (_DR, _IPIp, _Loc, _RT, _ARllo), + ( + (BOOLEAN, 0), + (IPAM_POLICY_ID, 1), + (STRING, 1), + (IPAM_POLICY_RESOURCE_TYPE, 1), + (IPAM_POLICY_ALLOCATION_RULE_LIST_REQUEST, {_sN: _ARlloc}), + ), +) + +MODIFY_IPAM_POLICY_ALLOCATION_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPARO, + {_sSI: _cMIPARRo, _smit: None}, + (_IPD,), + ((IPAM_POLICY_DOCUMENT, {_aQN: _IPD, _sN: _iPD}),), +) + +MODIFY_IPAM_POLICY_ALLOCATION_RULES: StaticOperationSchema = ( + 23, + n0, + _MIPAR, + 0, + MODIFY_IPAM_POLICY_ALLOCATION_RULES_INPUT, + MODIFY_IPAM_POLICY_ALLOCATION_RULES_OUTPUT, + (), +) + +MODIFY_IPAM_POOL_INPUT: StaticSchema = ( + 18, + n0, + _MIPIo, + {_sSI: _cMIPRom, _sm: None}, + (_DR, _IPI, _Des, _AIu, _AMNL, _AMNLl, _ADNL, _CADNL, _AART, _RART), + ( + (BOOLEAN, 0), + (IPAM_POOL_ID, 1), + (STRING, 0), + (BOOLEAN, 0), + (IPAM_NETMASK_LENGTH, 0), + (IPAM_NETMASK_LENGTH, 0), + (IPAM_NETMASK_LENGTH, 0), + (BOOLEAN, 0), + (REQUEST_IPAM_RESOURCE_TAG_LIST, {_sN: _AARTd}), + (REQUEST_IPAM_RESOURCE_TAG_LIST, {_sN: _RARTe}), + ), +) + +MODIFY_IPAM_POOL_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPOo, + {_sSI: _cMIPRoma, _smit: None}, + (_IPpam,), + ((IPAM_POOL, {_aQN: _IPpam, _sN: _iPpam}),), +) + +MODIFY_IPAM_POOL: StaticOperationSchema = ( + 23, + n0, + _MIPod, + 0, + MODIFY_IPAM_POOL_INPUT, + MODIFY_IPAM_POOL_OUTPUT, + (), +) + +MODIFY_IPAM_POOL_ALLOCATION_INPUT: StaticSchema = ( + 18, + n0, + _MIPAI, + {_sSI: _cMIPAR, _sm: None}, + (_DR, _IPAI, _Des), + ((BOOLEAN, 0), (IPAM_POOL_ALLOCATION_ID, 1), (STRING, 0)), +) + +MODIFY_IPAM_POOL_ALLOCATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPAO, + {_sSI: _cMIPARo, _smit: None}, + (_IPA,), + ((IPAM_POOL_ALLOCATION, {_aQN: _IPA, _sN: _iPA}),), +) + +MODIFY_IPAM_POOL_ALLOCATION: StaticOperationSchema = ( + 23, + n0, + _MIPA, + 0, + MODIFY_IPAM_POOL_ALLOCATION_INPUT, + MODIFY_IPAM_POOL_ALLOCATION_OUTPUT, + (), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER_INPUT: StaticSchema = ( + 18, + n0, + _MIPLRI, + {_sSI: _cMIPLRR, _sm: None}, + (_DR, _IPLRI, _Des, _Rul), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_ID, 1), + (STRING, 0), + (IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST_SET, {_sN: _Ru}), + ), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPLRO, + {_sSI: _cMIPLRRo, _smit: None}, + (_IPLR,), + ((IPAM_PREFIX_LIST_RESOLVER, {_aQN: _IPLR, _sN: _iPLR}),), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER: StaticOperationSchema = ( + 23, + n0, + _MIPLR, + 0, + MODIFY_IPAM_PREFIX_LIST_RESOLVER_INPUT, + MODIFY_IPAM_PREFIX_LIST_RESOLVER_OUTPUT, + (), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT: StaticSchema = ( + 18, + n0, + _MIPLRTI, + {_sSI: _cMIPLRTR, _sm: None}, + (_DR, _IPLRTI, _DVe, _TLV, _CTl), + ( + (BOOLEAN, 0), + (IPAM_PREFIX_LIST_RESOLVER_TARGET_ID, 1), + (BOXED_LONG, 0), + (BOXED_BOOLEAN, 0), + (STRING, 2), + ), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT: StaticSchema = ( + 18, + n0, + _MIPLRTO, + {_sSI: _cMIPLRTRo, _smit: None}, + (_IPLRT,), + ((IPAM_PREFIX_LIST_RESOLVER_TARGET, {_aQN: _IPLRT, _sN: _iPLRT}),), +) + +MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET: StaticOperationSchema = ( + 23, + n0, + _MIPLRT, + 0, + MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT, + MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT, + (), +) + +MODIFY_IPAM_RESOURCE_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _MIRCI, + {_sSI: _cMIRCR, _sm: None}, + (_DR, _RIe, _RCes, _RR, _CISIu, _DISIest, _Moni), + ( + (BOOLEAN, 0), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (IPAM_SCOPE_ID, 1), + (IPAM_SCOPE_ID, 0), + (BOOLEAN, 1), + ), +) + +MODIFY_IPAM_RESOURCE_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _MIRCO, + {_sSI: _cMIRCRo, _smit: None}, + (_IRC,), + ((IPAM_RESOURCE_CIDR, {_aQN: _IRC, _sN: _iRC}),), +) + +MODIFY_IPAM_RESOURCE_CIDR: StaticOperationSchema = ( + 23, + n0, + _MIRC, + 0, + MODIFY_IPAM_RESOURCE_CIDR_INPUT, + MODIFY_IPAM_RESOURCE_CIDR_OUTPUT, + (), +) + +REMOVE_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION: StaticSchema = ( + 18, + n0, + _RIOUE, + 0, + (_OEP,), + ((STRING, 0),), +) + +REMOVE_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET: StaticSchema = ( + 16, + n0, + _RIOUES, + 0, + (_me,), + ((REMOVE_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION, 0),), +) + +MODIFY_IPAM_RESOURCE_DISCOVERY_INPUT: StaticSchema = ( + 18, + n0, + _MIRDI, + {_sSI: _cMIRDR, _sm: None}, + (_DR, _IRDI, _Des, _AOR, _ROR, _AOUE, _ROUE), + ( + (BOOLEAN, 0), + (IPAM_RESOURCE_DISCOVERY_ID, 1), + (STRING, 0), + (ADD_IPAM_OPERATING_REGION_SET, {_sN: _AORd}), + (REMOVE_IPAM_OPERATING_REGION_SET, {_sN: _RORe}), + (ADD_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET, {_sN: _AOUEd}), + (REMOVE_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION_SET, {_sN: _ROUEe}), + ), +) + +MODIFY_IPAM_RESOURCE_DISCOVERY_OUTPUT: StaticSchema = ( + 18, + n0, + _MIRDO, + {_sSI: _cMIRDRo, _smit: None}, + (_IRD,), + ((IPAM_RESOURCE_DISCOVERY, {_aQN: _IRD, _sN: _iRD}),), +) + +MODIFY_IPAM_RESOURCE_DISCOVERY: StaticOperationSchema = ( + 23, + n0, + _MIRD, + 0, + MODIFY_IPAM_RESOURCE_DISCOVERY_INPUT, + MODIFY_IPAM_RESOURCE_DISCOVERY_OUTPUT, + (), +) + +MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_INPUT: StaticSchema = ( + 18, + n0, + _MIRPRI, + {_sSI: _cMIRPRR, _sm: None}, + (_DR, _IIRAI, _Ci, _Asns, _PMSA, _ML, _Des, _Fo, _CTl), + ( + (BOOLEAN, 0), + (IPAM_INTERNET_REGISTRY_ASSOCIATION_ID, 1), + (STRING, 1), + (ASN_LIST, {_sN: _Asn, _smi: None}), + (BOXED_BOOLEAN, 0), + (IPAM_ROUTING_POLICY_REGISTRATION_MAX_LENGTH, 0), + (STRING, 0), + (BOXED_BOOLEAN, 0), + (STRING, 2), + ), +) + +MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MIRPRO, + {_sSI: _cMIRPRRo, _smit: None}, + (_IRPRD,), + ((IPAM_ROUTING_POLICY_REGISTRATION_DELTA, {_aQN: _IRPRD, _sN: _iRPRD}),), +) + +MODIFY_IPAM_ROUTING_POLICY_REGISTRATION: StaticOperationSchema = ( + 23, + n0, + _MIRPR, + 0, + MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_INPUT, + MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT, + (), +) + +MODIFY_IPAM_SCOPE_INPUT: StaticSchema = ( + 18, + n0, + _MISI, + {_sSI: _cMISR, _sm: None}, + (_DR, _ISI, _Des, _EAC, _REAC), + ( + (BOOLEAN, 0), + (IPAM_SCOPE_ID, 1), + (STRING, 0), + (EXTERNAL_AUTHORITY_CONFIGURATION, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_IPAM_SCOPE_OUTPUT: StaticSchema = ( + 18, + n0, + _MISO, + {_sSI: _cMISRo, _smit: None}, + (_ISpam,), + ((IPAM_SCOPE, {_aQN: _ISpam, _sN: _iSpa}),), +) + +MODIFY_IPAM_SCOPE: StaticOperationSchema = ( + 23, + n0, + _MIS, + 0, + MODIFY_IPAM_SCOPE_INPUT, + MODIFY_IPAM_SCOPE_OUTPUT, + (), +) + +MODIFY_LAUNCH_TEMPLATE_INPUT: StaticSchema = ( + 18, + n0, + _MLTI, + {_sSI: _cMLTR, _sm: None}, + (_DR, _CTl, _LTI, _LTN, _DVef), + ( + (BOOLEAN, 0), + (STRING, 2), + (LAUNCH_TEMPLATE_ID, 0), + (LAUNCH_TEMPLATE_NAME, 0), + (STRING, {_sN: _SDV}), + ), +) + +MODIFY_LAUNCH_TEMPLATE_OUTPUT: StaticSchema = ( + 18, + n0, + _MLTO, + {_sSI: _cMLTRo, _smit: None}, + (_LT,), + ((LAUNCH_TEMPLATE, {_aQN: _LT, _sN: _lT}),), +) + +MODIFY_LAUNCH_TEMPLATE: StaticOperationSchema = ( + 23, + n0, + _MLT, + 0, + MODIFY_LAUNCH_TEMPLATE_INPUT, + MODIFY_LAUNCH_TEMPLATE_OUTPUT, + (), +) + +MODIFY_LOCAL_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _MLGRI, + {_sSI: _cMLGRR, _sm: None}, + (_DCB, _LGRTI, _LGVIGI, _NII, _DR, _DPLI), + ( + (STRING, 0), + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_ID, 0), + (NETWORK_INTERFACE_ID, 0), + (BOOLEAN, 0), + (PREFIX_LIST_RESOURCE_ID, 0), + ), +) + +MODIFY_LOCAL_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MLGRO, + {_sSI: _cMLGRRo, _smit: None}, + (_Rou,), + ((LOCAL_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +MODIFY_LOCAL_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _MLGR, + 0, + MODIFY_LOCAL_GATEWAY_ROUTE_INPUT, + MODIFY_LOCAL_GATEWAY_ROUTE_OUTPUT, + (), +) + +REMOVE_PREFIX_LIST_ENTRY: StaticSchema = (18, n0, _RPLE, 0, (_Ci,), ((STRING, 1),)) + +REMOVE_PREFIX_LIST_ENTRIES: StaticSchema = ( + 16, + n0, + _RPLEe, + 0, + (_me,), + ((REMOVE_PREFIX_LIST_ENTRY, 0),), +) + +MODIFY_MANAGED_PREFIX_LIST_INPUT: StaticSchema = ( + 18, + n0, + _MMPLI, + {_sSI: _cMMPLR, _sm: None}, + (_DR, _PLI, _CVu, _PLN, _AEd, _REem, _ME, _IPLRSE), + ( + (BOOLEAN, 0), + (PREFIX_LIST_RESOURCE_ID, 1), + (LONG, 0), + (STRING, 0), + (ADD_PREFIX_LIST_ENTRIES, {_sN: _AEdd}), + (REMOVE_PREFIX_LIST_ENTRIES, {_sN: _REemo}), + (INTEGER, 0), + (BOXED_BOOLEAN, 0), + ), +) + +MODIFY_MANAGED_PREFIX_LIST_OUTPUT: StaticSchema = ( + 18, + n0, + _MMPLO, + {_sSI: _cMMPLRo, _smit: None}, + (_PL,), + ((MANAGED_PREFIX_LIST, {_aQN: _PL, _sN: _pL}),), +) + +MODIFY_MANAGED_PREFIX_LIST: StaticOperationSchema = ( + 23, + n0, + _MMPL, + 0, + MODIFY_MANAGED_PREFIX_LIST_INPUT, + MODIFY_MANAGED_PREFIX_LIST_OUTPUT, + (), +) + +MODIFY_MANAGED_RESOURCE_VISIBILITY_INPUT: StaticSchema = ( + 18, + n0, + _MMRVI, + {_sSI: _cMMRVR, _sm: None}, + (_DR, _DVefa), + ((BOOLEAN, 0), (MANAGED_RESOURCE_DEFAULT_VISIBILITY, 1)), +) + +MODIFY_MANAGED_RESOURCE_VISIBILITY_OUTPUT: StaticSchema = ( + 18, + n0, + _MMRVO, + {_sSI: _cMMRVRo, _smit: None}, + (_Vi,), + ((MANAGED_RESOURCE_VISIBILITY_SETTINGS, {_aQN: _Vi, _sN: _vis}),), +) + +MODIFY_MANAGED_RESOURCE_VISIBILITY: StaticOperationSchema = ( + 23, + n0, + _MMRV, + 0, + MODIFY_MANAGED_RESOURCE_VISIBILITY_INPUT, + MODIFY_MANAGED_RESOURCE_VISIBILITY_OUTPUT, + (), +) + +SUBNET_ID_LIST: StaticSchema = (16, n0, _SILu, 0, (_me,), ((SUBNET_ID, {_sN: _ASIs}),)) + +NETWORK_INTERFACE_ATTACHMENT_CHANGES: StaticSchema = ( + 18, + n0, + _NIAC, + 0, + (_DEQC, _EQC, _AIt, _DOT), + ( + (BOOLEAN, 0), + (INTEGER, 0), + (NETWORK_INTERFACE_ATTACHMENT_ID, {_aQN: _AIt, _sN: _aIt}), + (BOOLEAN, {_aQN: _DOT, _sN: _dOT}), + ), +) + +MODIFY_NETWORK_INTERFACE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MNIAI, + {_sSI: _cMNIAR, _sm: None}, + (_ESS, _EPI, _CTSo, _APIAsso, _ASIss, _DR, _NII, _Des, _SDC, _G, _At), + ( + (ENA_SRD_SPECIFICATION, 0), + (BOOLEAN, 0), + (CONNECTION_TRACKING_SPECIFICATION_REQUEST, 0), + (BOOLEAN, 0), + (SUBNET_ID_LIST, {_sN: _ASIs}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (ATTRIBUTE_VALUE, {_aQN: _Des, _sN: _desc}), + (ATTRIBUTE_BOOLEAN_VALUE, {_aQN: _SDC, _sN: _sDC}), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (NETWORK_INTERFACE_ATTACHMENT_CHANGES, {_aQN: _At, _sN: _atta}), + ), +) + +MODIFY_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MNIAO, + {_sSI: _sU, _smit: None}, +) + +MODIFY_NETWORK_INTERFACE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MNIA, + 0, + MODIFY_NETWORK_INTERFACE_ATTRIBUTE_INPUT, + MODIFY_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_PRIVATE_DNS_NAME_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MPDNOI, + {_sSI: _cMPDNOR, _sm: None}, + (_DR, _II, _PDHT, _ERNDAR, _ERNDAAAAR), + ((BOOLEAN, 0), (INSTANCE_ID, 1), (HOSTNAME_TYPE, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +MODIFY_PRIVATE_DNS_NAME_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MPDNOO, + {_sSI: _cMPDNORo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_PRIVATE_DNS_NAME_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MPDNO, + 0, + MODIFY_PRIVATE_DNS_NAME_OPTIONS_INPUT, + MODIFY_PRIVATE_DNS_NAME_OPTIONS_OUTPUT, + (), +) + +PUBLIC_IP_DNS_OPTION: StaticSchema = ( + 14, + n0, + _PIDO, + 0, + (_pdsdn, _pidn, _pidn__), + ((-1, {_sV: _pdsdn_}), (-1, {_sV: _pidn_}), (-1, {_sV: _pidn___})), +) + +MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MPIDNOI, + {_sSI: _cMPIDNOR, _sm: None}, + (_NII, _HT, _DR), + ((NETWORK_INTERFACE_ID, 1), (PUBLIC_IP_DNS_OPTION, 1), (BOOLEAN, 0)), +) + +MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MPIDNOO, + {_sSI: _cMPIDNORo, _smit: None}, + (_Suc,), + ((BOOLEAN, {_aQN: _Suc, _sN: _succ}),), +) + +MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MPIDNO, + 0, + MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_INPUT, + MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_OUTPUT, + (), +) + +RESERVED_INSTANCES_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _RICL, + 0, + (_me,), + ((RESERVED_INSTANCES_CONFIGURATION, {_sN: _i}),), +) + +MODIFY_RESERVED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _MRII, + {_sSI: _cMRIR, _sm: None}, + (_RIIese, _CTl, _TC), + ( + (RESERVED_INSTANCES_ID_STRING_LIST, {_sN: _RIIes, _smi: None}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (RESERVED_INSTANCES_CONFIGURATION_LIST, {_sN: _RICSIT, _smi: None}), + ), +) + +MODIFY_RESERVED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _MRIO, + {_sSI: _cMRIRo, _smit: None}, + (_RIMI,), + ((STRING, {_aQN: _RIMI, _sN: _rIMI}),), +) + +MODIFY_RESERVED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _MRI, + 0, + MODIFY_RESERVED_INSTANCES_INPUT, + MODIFY_RESERVED_INSTANCES_OUTPUT, + (), +) + +MODIFY_ROUTE_SERVER_INPUT: StaticSchema = ( + 18, + n0, + _MRSI, + {_sSI: _cMRSR, _sm: None}, + (_RSI, _PRe, _PRD, _SNE, _DR), + ( + (ROUTE_SERVER_ID, 1), + (ROUTE_SERVER_PERSIST_ROUTES_ACTION, 0), + (BOXED_LONG, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_ROUTE_SERVER_OUTPUT: StaticSchema = ( + 18, + n0, + _MRSO, + {_sSI: _cMRSRo, _smit: None}, + (_RSo,), + ((ROUTE_SERVER, {_aQN: _RSo, _sN: _rSo}),), +) + +MODIFY_ROUTE_SERVER: StaticOperationSchema = ( + 23, + n0, + _MRSo, + 0, + MODIFY_ROUTE_SERVER_INPUT, + MODIFY_ROUTE_SERVER_OUTPUT, + (), +) + +SECURITY_GROUP_RULE_REQUEST: StaticSchema = ( + 18, + n0, + _SGRR, + 0, + (_IPpr, _FP, _TP, _CIidr, _CIid, _PLI, _RGIef, _Des), + ( + (STRING, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (PREFIX_LIST_RESOURCE_ID, 0), + (SECURITY_GROUP_ID, 0), + (STRING, 0), + ), +) + +SECURITY_GROUP_RULE_UPDATE: StaticSchema = ( + 18, + n0, + _SGRU, + 0, + (_SGRI, _SGR), + ((SECURITY_GROUP_RULE_ID, 1), (SECURITY_GROUP_RULE_REQUEST, 0)), +) + +SECURITY_GROUP_RULE_UPDATE_LIST: StaticSchema = ( + 16, + n0, + _SGRUL, + 0, + (_me,), + ((SECURITY_GROUP_RULE_UPDATE, {_sN: _i}),), +) + +MODIFY_SECURITY_GROUP_RULES_INPUT: StaticSchema = ( + 18, + n0, + _MSGRI, + {_sSI: _cMSGRR, _sm: None}, + (_GIr, _SGRe, _DR), + ( + (SECURITY_GROUP_ID, 1), + (SECURITY_GROUP_RULE_UPDATE_LIST, {_sN: _SGR, _smi: None}), + (BOOLEAN, 0), + ), +) + +MODIFY_SECURITY_GROUP_RULES_OUTPUT: StaticSchema = ( + 18, + n0, + _MSGRO, + {_sSI: _cMSGRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_SECURITY_GROUP_RULES: StaticOperationSchema = ( + 23, + n0, + _MSGR, + 0, + MODIFY_SECURITY_GROUP_RULES_INPUT, + MODIFY_SECURITY_GROUP_RULES_OUTPUT, + (), +) + +CREATE_VOLUME_PERMISSION_MODIFICATIONS: StaticSchema = ( + 18, + n0, + _CVPM, + 0, + (_Add_, _Remo), + ((CREATE_VOLUME_PERMISSION_LIST, 0), (CREATE_VOLUME_PERMISSION_LIST, 0)), +) + +MODIFY_SNAPSHOT_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MSAI, + {_sSI: _cMSAR, _sm: None}, + (_Attr, _CVP, _GNr, _OTp, _SIn, _UIse, _DR), + ( + (SNAPSHOT_ATTRIBUTE_NAME, 0), + (CREATE_VOLUME_PERMISSION_MODIFICATIONS, 0), + (GROUP_NAME_STRING_LIST, {_sN: _UG}), + (OPERATION_TYPE, 0), + (SNAPSHOT_ID, 1), + (USER_ID_STRING_LIST, {_sN: _UIs}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +MODIFY_SNAPSHOT_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MSAO, + {_sSI: _sU, _smit: None}, +) + +MODIFY_SNAPSHOT_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MSA, + 0, + MODIFY_SNAPSHOT_ATTRIBUTE_INPUT, + MODIFY_SNAPSHOT_ATTRIBUTE_OUTPUT, + (), +) + +TARGET_STORAGE_TIER: StaticSchema = (14, n0, _TSTa, 0, (_arc,), ((-1, {_sV: _arc}),)) + +MODIFY_SNAPSHOT_TIER_INPUT: StaticSchema = ( + 18, + n0, + _MSTI, + {_sSI: _cMSTR, _sm: None}, + (_SIn, _STt, _DR), + ((SNAPSHOT_ID, 1), (TARGET_STORAGE_TIER, 0), (BOOLEAN, 0)), +) + +MODIFY_SNAPSHOT_TIER_OUTPUT: StaticSchema = ( + 18, + n0, + _MSTO, + {_sSI: _cMSTRo, _smit: None}, + (_SIn, _TSTi), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (MILLISECOND_DATE_TIME, {_aQN: _TSTi, _sN: _tSTi}), + ), +) + +MODIFY_SNAPSHOT_TIER: StaticOperationSchema = ( + 23, + n0, + _MST, + 0, + MODIFY_SNAPSHOT_TIER_INPUT, + MODIFY_SNAPSHOT_TIER_OUTPUT, + (), +) + +MODIFY_SPOT_FLEET_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _MSFRI, + {_sSI: _cMSFRR, _sm: None}, + (_LTC, _ODTC, _Con, _SFRI, _TCar, _ECTP), + ( + (LAUNCH_TEMPLATE_CONFIG_LIST, {_sN: _LTCa}), + (INTEGER, 0), + (STRING, 0), + (SPOT_FLEET_REQUEST_ID, {_aQN: _SFRI, _sN: _sFRI, _smi: None}), + (INTEGER, {_aQN: _TCar, _sN: _tCar}), + (EXCESS_CAPACITY_TERMINATION_POLICY, {_aQN: _ECTP, _sN: _eCTP}), + ), +) + +MODIFY_SPOT_FLEET_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _MSFRO, + {_sSI: _cMSFRRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_SPOT_FLEET_REQUEST: StaticOperationSchema = ( + 23, + n0, + _MSFR, + 0, + MODIFY_SPOT_FLEET_REQUEST_INPUT, + MODIFY_SPOT_FLEET_REQUEST_OUTPUT, + (), +) + +MODIFY_SUBNET_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MSAIo, + {_sSI: _cMSARo, _sm: None}, + ( + _AIAOC, + _MPIOL, + _SIu, + _MCOIOL, + _COIP, + _EDn, + _PDHTOL, + _ERNDAROL, + _ERNDAAAAROL, + _ELADI, + _DLADI, + ), + ( + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI, _smi: None}), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (COIP_POOL_ID, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (HOSTNAME_TYPE, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (INTEGER, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + ), +) + +MODIFY_SUBNET_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MSAOo, + {_sSI: _sU, _smit: None}, +) + +MODIFY_SUBNET_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MSAo, + 0, + MODIFY_SUBNET_ATTRIBUTE_INPUT, + MODIFY_SUBNET_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_INPUT: StaticSchema = ( + 18, + n0, + _MTMFNSI, + {_sSI: _cMTMFNSR, _sm: None}, + (_TMFI, _ANSd, _RNS, _DR), + ( + (TRAFFIC_MIRROR_FILTER_ID, 1), + (TRAFFIC_MIRROR_NETWORK_SERVICE_LIST, {_sN: _ANSdd}), + (TRAFFIC_MIRROR_NETWORK_SERVICE_LIST, {_sN: _RNSe}), + (BOOLEAN, 0), + ), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _MTMFNSO, + {_sSI: _cMTMFNSRo, _smit: None}, + (_TMF,), + ((TRAFFIC_MIRROR_FILTER, {_aQN: _TMF, _sN: _tMF}),), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES: StaticOperationSchema = ( + 23, + n0, + _MTMFNS, + 0, + MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_INPUT, + MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_OUTPUT, + (), +) + +TRAFFIC_MIRROR_FILTER_RULE_FIELD: StaticSchema = ( + 14, + n0, + _TMFRF, + 0, + (_dpr__, _spr_, _pro, _desc), + ((-1, {_sV: _dpr___}), (-1, {_sV: _spr__}), (-1, {_sV: _pro}), (-1, {_sV: _desc})), +) + +TRAFFIC_MIRROR_FILTER_RULE_FIELD_LIST: StaticSchema = ( + 16, + n0, + _TMFRFL, + 0, + (_me,), + ((TRAFFIC_MIRROR_FILTER_RULE_FIELD, 0),), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_RULE_INPUT: StaticSchema = ( + 18, + n0, + _MTMFRI, + {_sSI: _cMTMFRR, _sm: None}, + (_TMFRI, _TDr, _RN, _RA, _DPR, _SPR, _P, _DCB, _SCB, _Des, _RF, _DR), + ( + (TRAFFIC_MIRROR_FILTER_RULE_ID_WITH_RESOLVER, 1), + (TRAFFIC_DIRECTION, 0), + (INTEGER, 0), + (TRAFFIC_MIRROR_RULE_ACTION, 0), + (TRAFFIC_MIRROR_PORT_RANGE_REQUEST, 0), + (TRAFFIC_MIRROR_PORT_RANGE_REQUEST, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TRAFFIC_MIRROR_FILTER_RULE_FIELD_LIST, {_sN: _RFe}), + (BOOLEAN, 0), + ), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT: StaticSchema = ( + 18, + n0, + _MTMFRO, + {_sSI: _cMTMFRRo, _smit: None}, + (_TMFR,), + ((TRAFFIC_MIRROR_FILTER_RULE, {_aQN: _TMFR, _sN: _tMFR}),), +) + +MODIFY_TRAFFIC_MIRROR_FILTER_RULE: StaticOperationSchema = ( + 23, + n0, + _MTMFR, + 0, + MODIFY_TRAFFIC_MIRROR_FILTER_RULE_INPUT, + MODIFY_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT, + (), +) + +TRAFFIC_MIRROR_SESSION_FIELD: StaticSchema = ( + 14, + n0, + _TMSF, + 0, + (_pl__, _desc, _vni), + ((-1, {_sV: _pl___}), (-1, {_sV: _desc}), (-1, {_sV: _vni_})), +) + +TRAFFIC_MIRROR_SESSION_FIELD_LIST: StaticSchema = ( + 16, + n0, + _TMSFL, + 0, + (_me,), + ((TRAFFIC_MIRROR_SESSION_FIELD, 0),), +) + +MODIFY_TRAFFIC_MIRROR_SESSION_INPUT: StaticSchema = ( + 18, + n0, + _MTMSI, + {_sSI: _cMTMSR, _sm: None}, + (_TMSI, _TMTI, _TMFI, _PLa, _SNes, _VNI, _Des, _RF, _DR), + ( + (TRAFFIC_MIRROR_SESSION_ID, 1), + (TRAFFIC_MIRROR_TARGET_ID, 0), + (TRAFFIC_MIRROR_FILTER_ID, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (TRAFFIC_MIRROR_SESSION_FIELD_LIST, {_sN: _RFe}), + (BOOLEAN, 0), + ), +) + +MODIFY_TRAFFIC_MIRROR_SESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _MTMSO, + {_sSI: _cMTMSRo, _smit: None}, + (_TMS,), + ((TRAFFIC_MIRROR_SESSION, {_aQN: _TMS, _sN: _tMS}),), +) + +MODIFY_TRAFFIC_MIRROR_SESSION: StaticOperationSchema = ( + 23, + n0, + _MTMS, + 0, + MODIFY_TRAFFIC_MIRROR_SESSION_INPUT, + MODIFY_TRAFFIC_MIRROR_SESSION_OUTPUT, + (), +) + +ENCRYPTION_SUPPORT_OPTION_VALUE: StaticSchema = ( + 14, + n0, + _ESOV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +MODIFY_TRANSIT_GATEWAY_OPTIONS: StaticSchema = ( + 18, + n0, + _MTGO, + 0, + ( + _ATGCB, + _RTGCB, + _VESp, + _DS, + _SGRS, + _AASA, + _DRTA, + _ADRTI, + _DRTP, + _PDRTI, + _ASA, + _ESnc, + ), + ( + (TRANSIT_GATEWAY_CIDR_BLOCK_STRING_LIST, 0), + (TRANSIT_GATEWAY_CIDR_BLOCK_STRING_LIST, 0), + (VPN_ECMP_SUPPORT_VALUE, 0), + (DNS_SUPPORT_VALUE, 0), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, 0), + (AUTO_ACCEPT_SHARED_ATTACHMENTS_VALUE, 0), + (DEFAULT_ROUTE_TABLE_ASSOCIATION_VALUE, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 0), + (DEFAULT_ROUTE_TABLE_PROPAGATION_VALUE, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 0), + (LONG, 0), + (ENCRYPTION_SUPPORT_OPTION_VALUE, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _MTGI, + {_sSI: _cMTGR, _sm: None}, + (_TGI, _Des, _O, _DR), + ( + (TRANSIT_GATEWAY_ID, 1), + (STRING, 0), + (MODIFY_TRANSIT_GATEWAY_OPTIONS, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGOo, + {_sSI: _cMTGRo, _smit: None}, + (_TGr,), + ((TRANSIT_GATEWAY, {_aQN: _TGr, _sN: _tG}),), +) + +MODIFY_TRANSIT_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _MTG, + 0, + MODIFY_TRANSIT_GATEWAY_INPUT, + MODIFY_TRANSIT_GATEWAY_OUTPUT, + (), +) + +TRANSIT_GATEWAY_NAT_RULE_REQUEST: StaticSchema = ( + 18, + n0, + _TGNRR, + 0, + (_RN, _MSC, _NCa), + ((INTEGER, 0), (STRING, 0), (STRING, 0)), +) + +TRANSIT_GATEWAY_NAT_RULE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _TGNRRL, + 0, + (_me,), + ((TRANSIT_GATEWAY_NAT_RULE_REQUEST, {_sN: _i}),), +) + +TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_VALUE: StaticSchema = ( + 14, + n0, + _TGANGSV, + 0, + (_e, _disa), + ((-1, {_sV: _e}), (-1, {_sV: _disa})), +) + +MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _MTGANCI, + {_sSI: _cMTGANCR, _sm: None}, + (_TGAI, _NGSat, _NSRS, _NGR, _RNGR, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_VALUE, 0), + (TRANSIT_GATEWAY_ATTACHMENT_NAT_SYSTEM_ROUTE_SUPPORT_VALUE, 0), + (TRANSIT_GATEWAY_NAT_RULE_REQUEST_LIST, {_sN: _NGRa}), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGANCO, + {_sSI: _cMTGANCRo, _smit: None}, + (_TGAI, _NGSat, _NSRS, _NGR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, {_aQN: _TGAI, _sN: _tGAI}), + ( + TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_STATE, + {_aQN: _NGSat, _sN: _nGSa}, + ), + ( + TRANSIT_GATEWAY_ATTACHMENT_NAT_SYSTEM_ROUTE_SUPPORT_VALUE, + {_aQN: _NSRS, _sN: _nSRS}, + ), + (TRANSIT_GATEWAY_NAT_RULE_LIST, {_aQN: _NGRS, _sN: _nGRS}), + ), +) + +MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _MTGANC, + 0, + MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT, + MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT, + (), +) + +MODIFY_TRANSIT_GATEWAY_METERING_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _MTGMPI, + {_sSI: _cMTGMPR, _sm: None}, + (_TGMPI, _AMAI, _RMAI, _DR), + ( + (TRANSIT_GATEWAY_METERING_POLICY_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, {_sN: _AMAId}), + (TRANSIT_GATEWAY_ATTACHMENT_ID_STRING_LIST, {_sN: _RMAIe}), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGMPO, + {_sSI: _cMTGMPRo, _smit: None}, + (_TGMP,), + ((TRANSIT_GATEWAY_METERING_POLICY, {_aQN: _TGMP, _sN: _tGMP}),), +) + +MODIFY_TRANSIT_GATEWAY_METERING_POLICY: StaticOperationSchema = ( + 23, + n0, + _MTGMP, + 0, + MODIFY_TRANSIT_GATEWAY_METERING_POLICY_INPUT, + MODIFY_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT, + (), +) + +MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _MTGPTEI, + {_sSI: _cMTGPTER, _sm: None}, + (_TGPTI, _PRNo, _PRol, _TRTI, _DR), + ( + (TRANSIT_GATEWAY_POLICY_TABLE_ID, 1), + (STRING, 1), + (TRANSIT_GATEWAY_REQUEST_POLICY_RULE, 0), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGPTEO, + {_sSI: _cMTGPTERo, _smit: None}, + (_TGPTE,), + ((TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, {_aQN: _TGPTE, _sN: _tGPTE}),), +) + +MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: StaticOperationSchema = ( + 23, + n0, + _MTGPTE, + 0, + MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT, + MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT, + (), +) + +MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT: StaticSchema = ( + 18, + n0, + _MTGPLRI, + {_sSI: _cMTGPLRR, _sm: None}, + (_TGRTI, _PLI, _TGAI, _Bl, _DR), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (PREFIX_LIST_RESOURCE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGPLRO, + {_sSI: _cMTGPLRRo, _smit: None}, + (_TGPLR,), + ((TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, {_aQN: _TGPLR, _sN: _tGPLR}),), +) + +MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: StaticOperationSchema = ( + 23, + n0, + _MTGPLR, + 0, + MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT, + MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT, + (), +) + +MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS: StaticSchema = ( + 18, + n0, + _MTGVARO, + 0, + (_DS, _SGRS, _IS, _AMSp), + ( + (DNS_SUPPORT_VALUE, 0), + (SECURITY_GROUP_REFERENCING_SUPPORT_VALUE, 0), + (IPV6_SUPPORT_VALUE, 0), + (APPLIANCE_MODE_SUPPORT_VALUE, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _MTGVAI, + {_sSI: _cMTGVAR, _sm: None}, + (_TGAI, _ASId, _RSIe, _O, _DR), + ( + (TRANSIT_GATEWAY_ATTACHMENT_ID, 1), + (TRANSIT_GATEWAY_SUBNET_ID_LIST, 0), + (TRANSIT_GATEWAY_SUBNET_ID_LIST, 0), + (MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _MTGVAO, + {_sSI: _cMTGVARo, _smit: None}, + (_TGVA,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_aQN: _TGVA, _sN: _tGVA}),), +) + +MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _MTGVA, + 0, + MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT, + MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE: StaticSchema = ( + 18, + n0, + _MVAEPR, + 0, + (_FP, _TP), + ( + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST: StaticSchema = ( + 16, + n0, + _MVAEPRL, + 0, + (_me,), + ((MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE, {_sN: _i}),), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS: StaticSchema = ( + 18, + n0, + _MVAECO, + 0, + (_PRo,), + ((MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}),), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST: StaticSchema = ( + 16, + n0, + _MVAESIL, + 0, + (_me,), + ((SUBNET_ID, {_sN: _i}),), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS: StaticSchema = ( + 18, + n0, + _MVAELBO, + 0, + (_SI, _P, _Po, _PRo), + ( + (MODIFY_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS: StaticSchema = ( + 18, + n0, + _MVAEEO, + 0, + (_P, _Po, _PRo), + ( + (VERIFIED_ACCESS_ENDPOINT_PROTOCOL, 0), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE_LIST, {_sN: _PR}), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS: StaticSchema = ( + 18, + n0, + _MVAERO, + 0, + (_SI, _Po, _REd), + ( + (MODIFY_VERIFIED_ACCESS_ENDPOINT_SUBNET_ID_LIST, {_sN: _SIu}), + (VERIFIED_ACCESS_ENDPOINT_PORT_NUMBER, 0), + (STRING, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MVAEI, + {_sSI: _cMVAER, _sm: None}, + (_VAEI, _VAGI, _LBO, _NIO, _Des, _CTl, _DR, _ROd, _COi), + ( + (VERIFIED_ACCESS_ENDPOINT_ID, 1), + (VERIFIED_ACCESS_GROUP_ID, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS, 0), + (MODIFY_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAEO, + {_sSI: _cMVAERo, _smit: None}, + (_VAE,), + ((VERIFIED_ACCESS_ENDPOINT, {_aQN: _VAE, _sN: _vAE}),), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MVAE, + 0, + MODIFY_VERIFIED_ACCESS_ENDPOINT_INPUT, + MODIFY_VERIFIED_ACCESS_ENDPOINT_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _MVAEPI, + {_sSI: _cMVAEPR, _sm: None}, + (_VAEI, _PEo, _PDo, _CTl, _DR, _SSs), + ( + (VERIFIED_ACCESS_ENDPOINT_ID, 1), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAEPO, + {_sSI: _cMVAEPRo, _smit: None}, + (_PEo, _PDo, _SSs), + ( + (BOOLEAN, {_aQN: _PEo, _sN: _pEo}), + (STRING, {_aQN: _PDo, _sN: _pDo}), + (VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE, {_aQN: _SSs, _sN: _sSs}), + ), +) + +MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY: StaticOperationSchema = ( + 23, + n0, + _MVAEP, + 0, + MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT, + MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MVAGI, + {_sSI: _cMVAGR, _sm: None}, + (_VAGI, _VAII, _Des, _CTl, _DR), + ( + (VERIFIED_ACCESS_GROUP_ID, 1), + (VERIFIED_ACCESS_INSTANCE_ID, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAGO, + {_sSI: _cMVAGRo, _smit: None}, + (_VAG,), + ((VERIFIED_ACCESS_GROUP, {_aQN: _VAG, _sN: _vAG}),), +) + +MODIFY_VERIFIED_ACCESS_GROUP: StaticOperationSchema = ( + 23, + n0, + _MVAG, + 0, + MODIFY_VERIFIED_ACCESS_GROUP_INPUT, + MODIFY_VERIFIED_ACCESS_GROUP_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _MVAGPI, + {_sSI: _cMVAGPR, _sm: None}, + (_VAGI, _PEo, _PDo, _CTl, _DR, _SSs), + ( + (VERIFIED_ACCESS_GROUP_ID, 1), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 2), + (BOOLEAN, 0), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAGPO, + {_sSI: _cMVAGPRo, _smit: None}, + (_PEo, _PDo, _SSs), + ( + (BOOLEAN, {_aQN: _PEo, _sN: _pEo}), + (STRING, {_aQN: _PDo, _sN: _pDo}), + (VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE, {_aQN: _SSs, _sN: _sSs}), + ), +) + +MODIFY_VERIFIED_ACCESS_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _MVAGP, + 0, + MODIFY_VERIFIED_ACCESS_GROUP_POLICY_INPUT, + MODIFY_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _MVAII, + {_sSI: _cMVAIR, _sm: None}, + (_VAII, _Des, _DR, _CTl, _CECSD), + ( + (VERIFIED_ACCESS_INSTANCE_ID, 1), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 2), + (STRING, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAIO, + {_sSI: _cMVAIRo, _smit: None}, + (_VAI,), + ((VERIFIED_ACCESS_INSTANCE, {_aQN: _VAI, _sN: _vAI}),), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _MVAI, + 0, + MODIFY_VERIFIED_ACCESS_INSTANCE_INPUT, + MODIFY_VERIFIED_ACCESS_INSTANCE_OUTPUT, + (), +) + +VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION_OPTIONS: StaticSchema = ( + 18, + n0, + _VALCWLDO, + 0, + (_Ena, _LGog), + ((BOOLEAN, 1), (STRING, 0)), +) + +VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION_OPTIONS: StaticSchema = ( + 18, + n0, + _VALKDFDO, + 0, + (_Ena, _DSeliv), + ((BOOLEAN, 1), (STRING, 0)), +) + +VERIFIED_ACCESS_LOG_S3_DESTINATION_OPTIONS: StaticSchema = ( + 18, + n0, + _VALSDO, + 0, + (_Ena, _BN, _Pre, _BOu), + ((BOOLEAN, 1), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +VERIFIED_ACCESS_LOG_OPTIONS: StaticSchema = ( + 18, + n0, + _VALO, + 0, + (_S_, _CWL, _KDF, _LVo, _ITCn), + ( + (VERIFIED_ACCESS_LOG_S3_DESTINATION_OPTIONS, 0), + (VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION_OPTIONS, 0), + (VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION_OPTIONS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _MVAILCI, + {_sSI: _cMVAILCR, _sm: None}, + (_VAII, _ALc, _DR, _CTl), + ( + (VERIFIED_ACCESS_INSTANCE_ID, 1), + (VERIFIED_ACCESS_LOG_OPTIONS, 1), + (BOOLEAN, 0), + (STRING, 2), + ), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MVAILCO, + {_sSI: _cMVAILCRo, _smit: None}, + (_LCog,), + ((VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION, {_aQN: _LCog, _sN: _lC}),), +) + +MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _MVAILC, + 0, + MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_INPUT, + MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_OUTPUT, + (), +) + +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS: StaticSchema = ( + 18, + n0, + _MVATPDO, + 0, + (_PSKU,), + ((STRING, 0),), +) + +MODIFY_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _MVANAOO, + 0, + (_PSKE, _Is, _AE, _TE, _UIEs, _CIl, _CSl, _Sc), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CLIENT_SECRET_TYPE, 0), + (STRING, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS: StaticSchema = ( + 18, + n0, + _MVATPOO, + 0, + (_Is, _AE, _TE, _UIEs, _CIl, _CSl, _Sc), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CLIENT_SECRET_TYPE, 0), + (STRING, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _MVATPI, + {_sSI: _cMVATPR, _sm: None}, + (_VATPI, _OO, _DO, _Des, _DR, _CTl, _SSs, _NAOO), + ( + (VERIFIED_ACCESS_TRUST_PROVIDER_ID, 1), + (MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS, 0), + (MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 2), + (VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST, 0), + (MODIFY_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS, 0), + ), +) + +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _MVATPO, + {_sSI: _cMVATPRo, _smit: None}, + (_VATPe,), + ((VERIFIED_ACCESS_TRUST_PROVIDER, {_aQN: _VATPe, _sN: _vATP}),), +) + +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _MVATP, + 0, + MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT, + MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT, + (), +) + +MODIFY_VOLUME_INPUT: StaticSchema = ( + 18, + n0, + _MVI, + {_sSI: _cMVR, _sm: None}, + (_DR, _VIo, _Si, _VT, _Io, _Th, _MAE), + ( + (BOOLEAN, 0), + (VOLUME_ID, 1), + (INTEGER, 0), + (VOLUME_TYPE, 0), + (INTEGER, 0), + (INTEGER, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _MVO, + {_sSI: _cMVRo, _smit: None}, + (_VM,), + ((VOLUME_MODIFICATION, {_aQN: _VM, _sN: _vM}),), +) + +MODIFY_VOLUME: StaticOperationSchema = ( + 23, + n0, + _MVo, + 0, + MODIFY_VOLUME_INPUT, + MODIFY_VOLUME_OUTPUT, + (), +) + +MODIFY_VOLUME_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MVAIo, + {_sSI: _cMVAR, _sm: None}, + (_AEIO, _VIo, _DR), + ((ATTRIBUTE_BOOLEAN_VALUE, 0), (VOLUME_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +MODIFY_VOLUME_ATTRIBUTE_OUTPUT: StaticSchema = (18, n0, _MVAO, {_sSI: _sU, _smit: None}) + +MODIFY_VOLUME_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MVA, + 0, + MODIFY_VOLUME_ATTRIBUTE_INPUT, + MODIFY_VOLUME_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_VPC_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MVAIod, + {_sSI: _cMVARo, _sm: None}, + (_EDH, _EDS, _VI, _ENAUM), + ( + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + (VPC_ID, {_aQN: _VI, _sN: _vI, _smi: None}), + (ATTRIBUTE_BOOLEAN_VALUE, 0), + ), +) + +MODIFY_VPC_ATTRIBUTE_OUTPUT: StaticSchema = (18, n0, _MVAOo, {_sSI: _sU, _smit: None}) + +MODIFY_VPC_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MVAo, + 0, + MODIFY_VPC_ATTRIBUTE_INPUT, + MODIFY_VPC_ATTRIBUTE_OUTPUT, + (), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT: StaticSchema = ( + 18, + n0, + _MVBPAEI, + {_sSI: _cMVBPAER, _sm: None}, + (_DR, _EIx, _IGEM), + ( + (BOOLEAN, 0), + (VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_ID, 1), + (INTERNET_GATEWAY_EXCLUSION_MODE, 1), + ), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT: StaticSchema = ( + 18, + n0, + _MVBPAEO, + {_sSI: _cMVBPAERo, _smit: None}, + (_VBPAE,), + ((VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, {_aQN: _VBPAE, _sN: _vBPAE}),), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: StaticOperationSchema = ( + 23, + n0, + _MVBPAE, + 0, + MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT, + MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT, + (), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MVBPAOI, + {_sSI: _cMVBPAOR, _sm: None}, + (_DR, _IGBM), + ((BOOLEAN, 0), (INTERNET_GATEWAY_BLOCK_MODE, 1)), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MVBPAOO, + {_sSI: _cMVBPAORo, _smit: None}, + (_VBPAO,), + ((VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, {_aQN: _VBPAO, _sN: _vBPAO}),), +) + +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MVBPAO, + 0, + MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT, + MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT, + (), +) + +MODIFY_VPC_ENCRYPTION_CONTROL_INPUT: StaticSchema = ( + 18, + n0, + _MVECI, + {_sSI: _cMVECR, _sm: None}, + (_DR, _VECI, _Mo, _IGE, _EOIGE, _NGE, _VPGE, _VPE, _LE, _VLE, _EFSE), + ( + (BOOLEAN, 0), + (VPC_ENCRYPTION_CONTROL_ID, 1), + (VPC_ENCRYPTION_CONTROL_MODE, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + (VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT, 0), + ), +) + +MODIFY_VPC_ENCRYPTION_CONTROL_OUTPUT: StaticSchema = ( + 18, + n0, + _MVECO, + {_sSI: _cMVECRo, _smit: None}, + (_VEC,), + ((VPC_ENCRYPTION_CONTROL, {_aQN: _VEC, _sN: _vEC}),), +) + +MODIFY_VPC_ENCRYPTION_CONTROL: StaticOperationSchema = ( + 23, + n0, + _MVEC, + 0, + MODIFY_VPC_ENCRYPTION_CONTROL_INPUT, + MODIFY_VPC_ENCRYPTION_CONTROL_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MVEI, + {_sSI: _cMVER, _sm: None}, + ( + _DR, + _VEI, + _RP, + _PDo, + _ARTId, + _RRTI, + _ASId, + _RSIe, + _ASGId, + _RSGI, + _IAT, + _DOn, + _PDE, + _SCub, + ), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_ID, 1), + (BOOLEAN, 0), + (STRING, 0), + (VPC_ENDPOINT_ROUTE_TABLE_ID_LIST, {_sN: _ARTIdd}), + (VPC_ENDPOINT_ROUTE_TABLE_ID_LIST, {_sN: _RRTIe}), + (VPC_ENDPOINT_SUBNET_ID_LIST, {_sN: _ASIdd}), + (VPC_ENDPOINT_SUBNET_ID_LIST, {_sN: _RSIem}), + (VPC_ENDPOINT_SECURITY_GROUP_ID_LIST, {_sN: _ASGIdd}), + (VPC_ENDPOINT_SECURITY_GROUP_ID_LIST, {_sN: _RSGIe}), + (IP_ADDRESS_TYPE, 0), + (DNS_OPTIONS_SPECIFICATION, 0), + (BOOLEAN, 0), + (SUBNET_CONFIGURATIONS_LIST, {_sN: _SCu}), + ), +) + +MODIFY_VPC_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MVEO, + {_sSI: _cMVERo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_VPC_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MVEo, + 0, + MODIFY_VPC_ENDPOINT_INPUT, + MODIFY_VPC_ENDPOINT_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _MVECNI, + {_sSI: _cMVECNR, _sm: None}, + (_DR, _CNIo, _CNAon, _CEo), + ( + (BOOLEAN, 0), + (CONNECTION_NOTIFICATION_ID, 1), + (STRING, 0), + (VALUE_STRING_LIST, 0), + ), +) + +MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MVECNO, + {_sSI: _cMVECNRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION: StaticOperationSchema = ( + 23, + n0, + _MVECN, + 0, + MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT, + MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_INPUT: StaticSchema = ( + 18, + n0, + _MVEPRI, + {_sSI: _cMVEPRR, _sm: None}, + (_DR, _SIe, _VEI, _PRay, _Sc), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 0), + (VPC_ENDPOINT_ID, 1), + (PAYER_RESPONSIBILITY_TYPE, 1), + (PAYER_RESPONSIBILITY_SCOPE, 1), + ), +) + +MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_OUTPUT: StaticSchema = ( + 18, + n0, + _MVEPRO, + {_sSI: _cMVEPRRo, _smit: None}, + (_VEI, _PRa), + ( + (STRING, {_aQN: _VEI, _sN: _vEI}), + (PAYER_RESPONSIBILITY_SET, {_aQN: _PRSay, _sN: _pRSa}), + ), +) + +MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY: StaticOperationSchema = ( + 23, + n0, + _MVEPR, + 0, + MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_INPUT, + MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _MVESCI, + {_sSI: _cMVESCR, _sm: None}, + ( + _DR, + _SIe, + _PDNr, + _RPDN, + _ARc, + _ANLBA, + _RNLBA, + _AGLBA, + _RGLBA, + _ASIAT, + _RSIAT, + _ASRd, + _RSRe, + ), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 1), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (VALUE_STRING_LIST, {_sN: _ANLBAd}), + (VALUE_STRING_LIST, {_sN: _RNLBAe}), + (VALUE_STRING_LIST, {_sN: _AGLBAd}), + (VALUE_STRING_LIST, {_sN: _RGLBAe}), + (VALUE_STRING_LIST, {_sN: _ASIATd}), + (VALUE_STRING_LIST, {_sN: _RSIATe}), + (VALUE_STRING_LIST, {_sN: _ASRdd}), + (VALUE_STRING_LIST, {_sN: _RSRem}), + ), +) + +MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MVESCO, + {_sSI: _cMVESCRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _MVESC, + 0, + MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT, + MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_INPUT: StaticSchema = ( + 18, + n0, + _MVESPRI, + {_sSI: _cMVESPRR, _sm: None}, + (_DR, _SIe, _PRay), + ((BOOLEAN, 0), (VPC_ENDPOINT_SERVICE_ID, 1), (PAYER_RESPONSIBILITY, 1)), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_OUTPUT: StaticSchema = ( + 18, + n0, + _MVESPRO, + {_sSI: _cMVESPRRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY: StaticOperationSchema = ( + 23, + n0, + _MVESPR, + 0, + MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_INPUT, + MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_OUTPUT, + (), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT: StaticSchema = ( + 18, + n0, + _MVESPI, + {_sSI: _cMVESPR, _sm: None}, + (_DR, _SIe, _AAP, _RAP), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 1), + (VALUE_STRING_LIST, 0), + (VALUE_STRING_LIST, 0), + ), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MVESPO, + {_sSI: _cMVESPRo, _smit: None}, + (_APd, _RV), + ((ADDED_PRINCIPAL_SET, {_aQN: _APS, _sN: _aPSd}), (BOOLEAN, {_aQN: _R, _sN: _r})), +) + +MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS: StaticOperationSchema = ( + 23, + n0, + _MVESP, + 0, + MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT, + MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT, + (), +) + +PEERING_CONNECTION_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _PCOR, + 0, + (_ADRFRV, _AEFLCLTRV, _AEFLVTRCL), + ((BOOLEAN, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +MODIFY_VPC_PEERING_CONNECTION_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MVPCOI, + {_sSI: _cMVPCOR, _sm: None}, + (_APCO, _DR, _RPCO, _VPCI), + ( + (PEERING_CONNECTION_OPTIONS_REQUEST, 0), + (BOOLEAN, 0), + (PEERING_CONNECTION_OPTIONS_REQUEST, 0), + (VPC_PEERING_CONNECTION_ID, 1), + ), +) + +PEERING_CONNECTION_OPTIONS: StaticSchema = ( + 18, + n0, + _PCOe, + 0, + (_ADRFRV, _AEFLCLTRV, _AEFLVTRCL), + ( + (BOOLEAN, {_aQN: _ADRFRV, _sN: _aDRFRV}), + (BOOLEAN, {_aQN: _AEFLCLTRV, _sN: _aEFLCLTRV}), + (BOOLEAN, {_aQN: _AEFLVTRCL, _sN: _aEFLVTRCL}), + ), +) + +MODIFY_VPC_PEERING_CONNECTION_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MVPCOO, + {_sSI: _cMVPCORo, _smit: None}, + (_APCO, _RPCO), + ( + (PEERING_CONNECTION_OPTIONS, {_aQN: _APCO, _sN: _aPCO}), + (PEERING_CONNECTION_OPTIONS, {_aQN: _RPCO, _sN: _rPCO}), + ), +) + +MODIFY_VPC_PEERING_CONNECTION_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MVPCO, + 0, + MODIFY_VPC_PEERING_CONNECTION_OPTIONS_INPUT, + MODIFY_VPC_PEERING_CONNECTION_OPTIONS_OUTPUT, + (), +) + +VPC_TENANCY: StaticSchema = (14, n0, _VTp, 0, (_def,), ((-1, {_sV: _def}),)) + +MODIFY_VPC_TENANCY_INPUT: StaticSchema = ( + 18, + n0, + _MVTI, + {_sSI: _cMVTR, _sm: None}, + (_VI, _ITnst, _DR), + ((VPC_ID, 1), (VPC_TENANCY, 1), (BOOLEAN, 0)), +) + +MODIFY_VPC_TENANCY_OUTPUT: StaticSchema = ( + 18, + n0, + _MVTO, + {_sSI: _cMVTRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +MODIFY_VPC_TENANCY: StaticOperationSchema = ( + 23, + n0, + _MVT, + 0, + MODIFY_VPC_TENANCY_INPUT, + MODIFY_VPC_TENANCY_OUTPUT, + (), +) + +MODIFY_VPN_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _MVCI, + {_sSI: _cMVCR, _sm: None}, + (_VCIp, _TGI, _CGIu, _VGI, _DR), + ( + (VPN_CONNECTION_ID, 1), + (TRANSIT_GATEWAY_ID, 0), + (CUSTOMER_GATEWAY_ID, 0), + (VPN_GATEWAY_ID, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_VPN_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _MVCO, + {_sSI: _cMVCRo, _smit: None}, + (_VC,), + ((VPN_CONNECTION, {_aQN: _VC, _sN: _vC}),), +) + +MODIFY_VPN_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _MVC, + 0, + MODIFY_VPN_CONNECTION_INPUT, + MODIFY_VPN_CONNECTION_OUTPUT, + (), +) + +MODIFY_VPN_CONNECTION_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MVCOI, + {_sSI: _cMVCOR, _sm: None}, + (_VCIp, _LINC, _RINC, _LINCo, _RINCe, _TB, _DR), + ( + (VPN_CONNECTION_ID, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (VPN_TUNNEL_BANDWIDTH, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_VPN_CONNECTION_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MVCOO, + {_sSI: _cMVCORo, _smit: None}, + (_VC,), + ((VPN_CONNECTION, {_aQN: _VC, _sN: _vC}),), +) + +MODIFY_VPN_CONNECTION_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MVCOo, + 0, + MODIFY_VPN_CONNECTION_OPTIONS_INPUT, + MODIFY_VPN_CONNECTION_OPTIONS_OUTPUT, + (), +) + +MODIFY_VPN_TUNNEL_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _MVTCI, + {_sSI: _cMVTCR, _sm: None}, + (_VCIp, _VTOIA, _DR), + ((VPN_CONNECTION_ID, 1), (STRING, 1), (BOOLEAN, 0)), +) + +MODIFY_VPN_TUNNEL_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _MVTCO, + {_sSI: _cMVTCRo, _smit: None}, + (_VC,), + ((VPN_CONNECTION, {_aQN: _VC, _sN: _vC}),), +) + +MODIFY_VPN_TUNNEL_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _MVTC, + 0, + MODIFY_VPN_TUNNEL_CERTIFICATE_INPUT, + MODIFY_VPN_TUNNEL_CERTIFICATE_OUTPUT, + (), +) + +MODIFY_VPN_TUNNEL_OPTIONS_SPECIFICATION: StaticSchema = ( + 18, + n0, + _MVTOS, + 4, + ( + _TICu, + _TIIC, + _PSK, + _PLSh, + _PLSha, + _RMTS, + _RFP, + _RWS, + _DPDTS, + _DPDTA, + _PEAha, + _PEAhas, + _PIAha, + _PIAhas, + _PDHGN, + _PDHGNha, + _IKEV, + _SAt, + _LO, + _ETLC, + ), + ( + (STRING, 0), + (STRING, 0), + (PRE_SHARED_KEY, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST, {_sN: _PEA}), + (PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST, {_sN: _PEAh}), + (PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST, {_sN: _PIA}), + (PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST, {_sN: _PIAh}), + (PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST, {_sN: _PDHGNh}), + (PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST, {_sN: _PDHGNhas}), + (IKE_VERSIONS_REQUEST_LIST, {_sN: _IKEVe}), + (STRING, 0), + (VPN_TUNNEL_LOG_OPTIONS_SPECIFICATION, 0), + (BOOLEAN, 0), + ), +) + +MODIFY_VPN_TUNNEL_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _MVTOI, + {_sSI: _cMVTOR, _sm: None}, + (_VCIp, _VTOIA, _TO, _DR, _STRk, _PSKS), + ( + (VPN_CONNECTION_ID, 1), + (STRING, 1), + (MODIFY_VPN_TUNNEL_OPTIONS_SPECIFICATION, 1), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +MODIFY_VPN_TUNNEL_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _MVTOO, + {_sSI: _cMVTORo, _smit: None}, + (_VC,), + ((VPN_CONNECTION, {_aQN: _VC, _sN: _vC}),), +) + +MODIFY_VPN_TUNNEL_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _MVTOo, + 0, + MODIFY_VPN_TUNNEL_OPTIONS_INPUT, + MODIFY_VPN_TUNNEL_OPTIONS_OUTPUT, + (), +) + +MONITOR_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _MIIo, + {_sSI: _cMIRom, _sm: None}, + (_IIn, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +INSTANCE_MONITORING: StaticSchema = ( + 18, + n0, + _IMns, + 0, + (_II, _Mon), + ((STRING, {_aQN: _II, _sN: _iI}), (MONITORING, {_aQN: _Mon, _sN: _monit})), +) + +INSTANCE_MONITORING_LIST: StaticSchema = ( + 16, + n0, + _IML, + 0, + (_me,), + ((INSTANCE_MONITORING, {_sN: _i}),), +) + +MONITOR_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _MIOo, + {_sSI: _cMIRoma, _smit: None}, + (_IMnst,), + ((INSTANCE_MONITORING_LIST, {_aQN: _ISnst, _sN: _iSns}),), +) + +MONITOR_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _MIon, + 0, + MONITOR_INSTANCES_INPUT, + MONITOR_INSTANCES_OUTPUT, + (), +) + +MOVE_ADDRESS_TO_VPC_INPUT: StaticSchema = ( + 18, + n0, + _MATVI, + {_sSI: _cMATVR, _sm: None}, + (_DR, _PI), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}), (STRING, {_aQN: _PI, _sN: _pI, _smi: None})), +) + +STATUS: StaticSchema = ( + 14, + n0, + _Sta, + 0, + (_mIP, _iVn, _iCnl), + ((-1, {_sV: _MIPov}), (-1, {_sV: _IVn}), (-1, {_sV: _ICnl})), +) + +MOVE_ADDRESS_TO_VPC_OUTPUT: StaticSchema = ( + 18, + n0, + _MATVO, + {_sSI: _cMATVRo, _smit: None}, + (_AI, _Sta), + ((STRING, {_aQN: _AI, _sN: _aI}), (STATUS, {_aQN: _Sta, _sN: _sta})), +) + +MOVE_ADDRESS_TO_VPC: StaticOperationSchema = ( + 23, + n0, + _MATV, + 0, + MOVE_ADDRESS_TO_VPC_INPUT, + MOVE_ADDRESS_TO_VPC_OUTPUT, + (), +) + +MOVE_BYOIP_CIDR_TO_IPAM_INPUT: StaticSchema = ( + 18, + n0, + _MBCTII, + {_sSI: _cMBCTIR, _sm: None}, + (_DR, _Ci, _IPI, _IPO), + ((BOOLEAN, 0), (STRING, 1), (IPAM_POOL_ID, 1), (STRING, 1)), +) + +MOVE_BYOIP_CIDR_TO_IPAM_OUTPUT: StaticSchema = ( + 18, + n0, + _MBCTIO, + {_sSI: _cMBCTIRo, _smit: None}, + (_BC,), + ((BYOIP_CIDR, {_aQN: _BC, _sN: _bC}),), +) + +MOVE_BYOIP_CIDR_TO_IPAM: StaticOperationSchema = ( + 23, + n0, + _MBCTI, + 0, + MOVE_BYOIP_CIDR_TO_IPAM_INPUT, + MOVE_BYOIP_CIDR_TO_IPAM_OUTPUT, + (), +) + +MOVE_CAPACITY_RESERVATION_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _MCRII, + {_sSI: _cMCRIR, _sm: None}, + (_DR, _CTl, _SCRI, _DCRIe, _IC), + ( + (BOOLEAN, 0), + (STRING, 2), + (CAPACITY_RESERVATION_ID, 1), + (CAPACITY_RESERVATION_ID, 1), + (INTEGER, 1), + ), +) + +MOVE_CAPACITY_RESERVATION_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _MCRIO, + {_sSI: _cMCRIRo, _smit: None}, + (_SCR, _DCR, _IC), + ( + (CAPACITY_RESERVATION, {_aQN: _SCR, _sN: _sCR}), + (CAPACITY_RESERVATION, {_aQN: _DCR, _sN: _dCR}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + ), +) + +MOVE_CAPACITY_RESERVATION_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _MCRIo, + 0, + MOVE_CAPACITY_RESERVATION_INSTANCES_INPUT, + MOVE_CAPACITY_RESERVATION_INSTANCES_OUTPUT, + (), +) + +CIDR_AUTHORIZATION_CONTEXT: StaticSchema = ( + 18, + n0, + _CAC, + 0, + (_Me, _Sig), + ((STRING, 1), (STRING, 1)), +) + +PROVISION_BYOIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _PBCI, + {_sSI: _cPBCR, _sm: None}, + (_Ci, _CAC, _PAu, _Des, _DR, _PTS, _MRu, _NBG), + ( + (STRING, 1), + (CIDR_AUTHORIZATION_CONTEXT, 0), + (BOOLEAN, 0), + (STRING, 0), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _PTSo}), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +PROVISION_BYOIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _PBCO, + {_sSI: _cPBCRo, _smit: None}, + (_BC,), + ((BYOIP_CIDR, {_aQN: _BC, _sN: _bC}),), +) + +PROVISION_BYOIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _PBC, + 0, + PROVISION_BYOIP_CIDR_INPUT, + PROVISION_BYOIP_CIDR_OUTPUT, + (), +) + +ASN_AUTHORIZATION_CONTEXT: StaticSchema = ( + 18, + n0, + _AACs, + 0, + (_Me, _Sig), + ((STRING, 1), (STRING, 1)), +) + +PROVISION_IPAM_BYOASN_INPUT: StaticSchema = ( + 18, + n0, + _PIBI, + {_sSI: _cPIBR, _sm: None}, + (_DR, _IIp, _Asn, _AACs), + ((BOOLEAN, 0), (IPAM_ID, 1), (STRING, 1), (ASN_AUTHORIZATION_CONTEXT, 1)), +) + +PROVISION_IPAM_BYOASN_OUTPUT: StaticSchema = ( + 18, + n0, + _PIBO, + {_sSI: _cPIBRo, _smit: None}, + (_By,), + ((BYOASN, {_aQN: _By, _sN: _by}),), +) + +PROVISION_IPAM_BYOASN: StaticOperationSchema = ( + 23, + n0, + _PIB, + 0, + PROVISION_IPAM_BYOASN_INPUT, + PROVISION_IPAM_BYOASN_OUTPUT, + (), +) + +IPAM_CIDR_AUTHORIZATION_CONTEXT: StaticSchema = ( + 18, + n0, + _ICAC, + 0, + (_Me, _Sig), + ((STRING, 0), (STRING, 0)), +) + +VERIFICATION_METHOD: StaticSchema = ( + 14, + n0, + _VMe, + 0, + (_rx__________________________________, _dt_), + ((-1, {_sV: _rx___________________________________}), (-1, {_sV: _dt__})), +) + +PROVISION_IPAM_POOL_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _PIPCI, + {_sSI: _cPIPCR, _sm: None}, + (_DR, _IPI, _Ci, _CAC, _NL, _CTl, _VMe, _IERVTI), + ( + (BOOLEAN, 0), + (IPAM_POOL_ID, 1), + (STRING, 0), + (IPAM_CIDR_AUTHORIZATION_CONTEXT, 0), + (INTEGER, 0), + (STRING, 2), + (VERIFICATION_METHOD, 0), + (IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_ID, 0), + ), +) + +PROVISION_IPAM_POOL_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _PIPCO, + {_sSI: _cPIPCRo, _smit: None}, + (_IPCpa,), + ((IPAM_POOL_CIDR, {_aQN: _IPCpa, _sN: _iPCpa}),), +) + +PROVISION_IPAM_POOL_CIDR: StaticOperationSchema = ( + 23, + n0, + _PIPC, + 0, + PROVISION_IPAM_POOL_CIDR_INPUT, + PROVISION_IPAM_POOL_CIDR_OUTPUT, + (), +) + +PROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _PPIPCI, + {_sSI: _cPPIPCR, _sm: None}, + (_DR, _IPI, _PIo, _NL, _NBG), + ((BOOLEAN, 0), (IPAM_POOL_ID, 1), (IPV4_POOL_EC2_ID, 1), (INTEGER, 1), (STRING, 0)), +) + +PROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _PPIPCO, + {_sSI: _cPPIPCRo, _smit: None}, + (_PIo, _PARo), + ( + (IPV4_POOL_EC2_ID, {_aQN: _PIo, _sN: _pIo}), + (PUBLIC_IPV4_POOL_RANGE, {_aQN: _PARo, _sN: _pAR}), + ), +) + +PROVISION_PUBLIC_IPV4_POOL_CIDR: StaticOperationSchema = ( + 23, + n0, + _PPIPC, + 0, + PROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT, + PROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT, + (), +) + +PURCHASE_CAPACITY_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _PCBI, + {_sSI: _cPCBR, _sm: None}, + (_DR, _TSa, _CBOI, _IPns), + ( + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (OFFERING_ID, 1), + (CAPACITY_RESERVATION_INSTANCE_PLATFORM, 1), + ), +) + +PURCHASE_CAPACITY_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _PCBO, + {_sSI: _cPCBRo, _smit: None}, + (_CRap, _CBap), + ( + (CAPACITY_RESERVATION, {_aQN: _CRap, _sN: _cRa}), + (CAPACITY_BLOCK_SET, {_aQN: _CBSa, _sN: _cBSa}), + ), +) + +PURCHASE_CAPACITY_BLOCK: StaticOperationSchema = ( + 23, + n0, + _PCBu, + 0, + PURCHASE_CAPACITY_BLOCK_INPUT, + PURCHASE_CAPACITY_BLOCK_OUTPUT, + (), +) + +PURCHASE_CAPACITY_BLOCK_EXTENSION_INPUT: StaticSchema = ( + 18, + n0, + _PCBEI, + {_sSI: _cPCBER, _sm: None}, + (_CBEOI, _CRI, _DR), + ((OFFERING_ID, 1), (CAPACITY_RESERVATION_ID, 1), (BOOLEAN, 0)), +) + +PURCHASE_CAPACITY_BLOCK_EXTENSION_OUTPUT: StaticSchema = ( + 18, + n0, + _PCBEO, + {_sSI: _cPCBERo, _smit: None}, + (_CBEa,), + ((CAPACITY_BLOCK_EXTENSION_SET, {_aQN: _CBESa, _sN: _cBESa}),), +) + +PURCHASE_CAPACITY_BLOCK_EXTENSION: StaticOperationSchema = ( + 23, + n0, + _PCBE, + 0, + PURCHASE_CAPACITY_BLOCK_EXTENSION_INPUT, + PURCHASE_CAPACITY_BLOCK_EXTENSION_OUTPUT, + (), +) + +PURCHASE_HOST_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _PHRI, + {_sSI: _cPHRR, _sm: None}, + (_CTl, _CC, _HIS, _LPi, _OI, _TSa), + ( + (STRING, 0), + (CURRENCY_CODE_VALUES, 0), + (REQUEST_HOST_ID_SET, 1), + (STRING, 0), + (OFFERING_ID, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +PURCHASE_HOST_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PHRO, + {_sSI: _cPHRRo, _smit: None}, + (_CTl, _CC, _Pur, _THP, _TUP), + ( + (STRING, {_aQN: _CTl, _sN: _cTl}), + (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC}), + (PURCHASE_SET, {_aQN: _Pur, _sN: _pur}), + (STRING, {_aQN: _THP, _sN: _tHP}), + (STRING, {_aQN: _TUP, _sN: _tUP}), + ), +) + +PURCHASE_HOST_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _PHR, + 0, + PURCHASE_HOST_RESERVATION_INPUT, + PURCHASE_HOST_RESERVATION_OUTPUT, + (), +) + +RESERVED_INSTANCE_LIMIT_PRICE: StaticSchema = ( + 18, + n0, + _RILP, + 0, + (_Am, _CC), + ((DOUBLE, {_aQN: _Am, _sN: _amo}), (CURRENCY_CODE_VALUES, {_aQN: _CC, _sN: _cC})), +) + +PURCHASE_RESERVED_INSTANCES_OFFERING_INPUT: StaticSchema = ( + 18, + n0, + _PRIOI, + {_sSI: _cPRIOR, _sm: None}, + (_IC, _RIOI, _PTur, _DR, _LPi), + ( + (INTEGER, 1), + (RESERVED_INSTANCES_OFFERING_ID, 1), + (DATE_TIME, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (RESERVED_INSTANCE_LIMIT_PRICE, {_aQN: _LPi, _sN: _lPi}), + ), +) + +PURCHASE_RESERVED_INSTANCES_OFFERING_OUTPUT: StaticSchema = ( + 18, + n0, + _PRIOO, + {_sSI: _cPRIORo, _smit: None}, + (_RIIes,), + ((STRING, {_aQN: _RIIes, _sN: _rII}),), +) + +PURCHASE_RESERVED_INSTANCES_OFFERING: StaticOperationSchema = ( + 23, + n0, + _PRIO, + 0, + PURCHASE_RESERVED_INSTANCES_OFFERING_INPUT, + PURCHASE_RESERVED_INSTANCES_OFFERING_OUTPUT, + (), +) + +PURCHASE_REQUEST: StaticSchema = ( + 18, + n0, + _PRu, + 0, + (_IC, _PTu), + ((INTEGER, 1), (STRING, 1)), +) + +PURCHASE_REQUEST_SET: StaticSchema = ( + 16, + n0, + _PRSu, + 0, + (_me,), + ((PURCHASE_REQUEST, {_sN: _PRu}),), +) + +PURCHASE_SCHEDULED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _PSII, + {_sSI: _cPSIR, _sm: None}, + (_CTl, _DR, _PRur), + ((STRING, 2), (BOOLEAN, 0), (PURCHASE_REQUEST_SET, {_sN: _PRu, _smi: None})), +) + +PURCHASED_SCHEDULED_INSTANCE_SET: StaticSchema = ( + 16, + n0, + _PSIS, + 0, + (_me,), + ((SCHEDULED_INSTANCE, {_sN: _i}),), +) + +PURCHASE_SCHEDULED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _PSIO, + {_sSI: _cPSIRo, _smit: None}, + (_SISc,), + ((PURCHASED_SCHEDULED_INSTANCE_SET, {_aQN: _SISc, _sN: _sISc}),), +) + +PURCHASE_SCHEDULED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _PSI, + 0, + PURCHASE_SCHEDULED_INSTANCES_INPUT, + PURCHASE_SCHEDULED_INSTANCES_OUTPUT, + (), +) + +REBOOT_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _RIIeb, + {_sSI: _cRIR, _sm: None}, + (_IIn, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +REBOOT_INSTANCES_OUTPUT: StaticSchema = (18, n0, _RIOeb, {_sSI: _sU, _smit: None}) + +REBOOT_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _RIeb, + 0, + REBOOT_INSTANCES_INPUT, + REBOOT_INSTANCES_OUTPUT, + (), +) + +BILLING_PRODUCT_LIST: StaticSchema = (16, n0, _BPL, 0, (_me,), ((STRING, {_sN: _i}),)) + +IMAGE_UEFI_DATA_REQUEST: StaticSchema = (3, n0, _IUDR, 4) + +REGISTER_IMAGE_INPUT: StaticSchema = ( + 18, + n0, + _RIIeg, + {_sSI: _cRIRo, _sm: None}, + ( + _ILm, + _BPi, + _BMo, + _TSp, + _UDe, + _ISm, + _TSa, + _DR, + _N, + _Des, + _Arc, + _KI, + _RIa, + _RDN, + _BDMl, + _VTi, + _SNSr, + _ESna, + ), + ( + (STRING, 0), + (BILLING_PRODUCT_LIST, {_sN: _BPil}), + (BOOT_MODE_VALUES, 0), + (TPM_SUPPORT_VALUES, 0), + (IMAGE_UEFI_DATA_REQUEST, 0), + (IMDS_SUPPORT_VALUES, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (IMAGE_NAME_REQUEST, {_aQN: _N, _sN: _nam, _smi: None}), + (IMAGE_DESCRIPTION_REQUEST, {_aQN: _Des, _sN: _desc}), + (ARCHITECTURE_VALUES, {_aQN: _Arc, _sN: _arch}), + (KERNEL_ID, {_aQN: _KI, _sN: _kI}), + (RAMDISK_ID, {_aQN: _RIa, _sN: _rIa}), + (STRING, {_aQN: _RDN, _sN: _rDN}), + (BLOCK_DEVICE_MAPPING_REQUEST_LIST, {_sN: _BDM}), + (STRING, {_aQN: _VTi, _sN: _vTi}), + (STRING, {_aQN: _SNSr, _sN: _sNS}), + (BOOLEAN, {_aQN: _ESna, _sN: _eSna}), + ), +) + +REGISTER_IMAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _RIOeg, + {_sSI: _cRIRom, _smit: None}, + (_IIm,), + ((STRING, {_aQN: _IIm, _sN: _iIm}),), +) + +REGISTER_IMAGE: StaticOperationSchema = ( + 23, + n0, + _RIegis, + 0, + REGISTER_IMAGE_INPUT, + REGISTER_IMAGE_OUTPUT, + (), +) + +REGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST: StaticSchema = ( + 18, + n0, + _RITAR, + 0, + (_IATOI, _ITK), + ((BOOLEAN, 0), (INSTANCE_TAG_KEY_SET, {_sN: _ITKn})), +) + +REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _RIENAI, + {_sSI: _cRIENAR, _sm: None}, + (_DR, _ITA), + ((BOOLEAN, 0), (REGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST, 1)), +) + +REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _RIENAO, + {_sSI: _cRIENARo, _smit: None}, + (_ITA,), + ((INSTANCE_TAG_NOTIFICATION_ATTRIBUTE, {_aQN: _ITA, _sN: _iTA}),), +) + +REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _RIENA, + 0, + REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT, + REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT, + (), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT: StaticSchema = ( + 18, + n0, + _RTGMGMI, + {_sSI: _cRTGMGMR, _sm: None}, + (_TGMDI, _GIA, _NIIe, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (STRING, 0), + (TRANSIT_GATEWAY_NETWORK_INTERFACE_ID_LIST, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_MEMBERS: StaticSchema = ( + 18, + n0, + _TGMRGM, + 0, + (_TGMDI, _RNII, _GIA), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (VALUE_STRING_LIST, {_aQN: _RNII, _sN: _rNII}), + (STRING, {_aQN: _GIA, _sN: _gIA}), + ), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGMGMO, + {_sSI: _cRTGMGMRo, _smit: None}, + (_RMGM,), + ((TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_MEMBERS, {_aQN: _RMGM, _sN: _rMGM}),), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS: StaticOperationSchema = ( + 23, + n0, + _RTGMGM, + 0, + REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT, + REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT, + (), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT: StaticSchema = ( + 18, + n0, + _RTGMGSI, + {_sSI: _cRTGMGSR, _sm: None}, + (_TGMDI, _GIA, _NIIe, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (STRING, 0), + (TRANSIT_GATEWAY_NETWORK_INTERFACE_ID_LIST, 1), + (BOOLEAN, 0), + ), +) + +TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_SOURCES: StaticSchema = ( + 18, + n0, + _TGMRGS, + 0, + (_TGMDI, _RNII, _GIA), + ( + (STRING, {_aQN: _TGMDI, _sN: _tGMDI}), + (VALUE_STRING_LIST, {_aQN: _RNII, _sN: _rNII}), + (STRING, {_aQN: _GIA, _sN: _gIA}), + ), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGMGSO, + {_sSI: _cRTGMGSRo, _smit: None}, + (_RMGS,), + ((TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_SOURCES, {_aQN: _RMGS, _sN: _rMGS}),), +) + +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES: StaticOperationSchema = ( + 23, + n0, + _RTGMGS, + 0, + REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT, + REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT, + (), +) + +REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT: StaticSchema = ( + 18, + n0, + _RCRBOI, + {_sSI: _cRCRBOR, _sm: None}, + (_DR, _CRI), + ((BOOLEAN, 0), (CAPACITY_RESERVATION_ID, 1)), +) + +REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT: StaticSchema = ( + 18, + n0, + _RCRBOO, + {_sSI: _cRCRBORo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP: StaticOperationSchema = ( + 23, + n0, + _RCRBO, + 0, + REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT, + REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT, + (), +) + +REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _RTGCVAI, + {_sSI: _cRTGCVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGCVAO, + {_sSI: _cRTGCVARo, _smit: None}, + (_TGCVA,), + ((TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, {_aQN: _TGCVA, _sN: _tGCVA}),), +) + +REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _RTGCVA, + 0, + REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT, + REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT, + (), +) + +REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _RTGMDAI, + {_sSI: _cRTGMDAR, _sm: None}, + (_TGMDI, _TGAI, _SI, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 0), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (VALUE_STRING_LIST, 0), + (BOOLEAN, 0), + ), +) + +REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGMDAO, + {_sSI: _cRTGMDARo, _smit: None}, + (_As,), + ((TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, {_aQN: _As, _sN: _asso}),), +) + +REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _RTGMDA, + 0, + REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT, + REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT, + (), +) + +REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _RTGPAI, + {_sSI: _cRTGPAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGPAO, + {_sSI: _cRTGPARo, _smit: None}, + (_TGPA,), + ((TRANSIT_GATEWAY_PEERING_ATTACHMENT, {_aQN: _TGPA, _sN: _tGPA}),), +) + +REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _RTGPA, + 0, + REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT, + REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT, + (), +) + +REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT: StaticSchema = ( + 18, + n0, + _RTGVAI, + {_sSI: _cRTGVAR, _sm: None}, + (_TGAI, _DR), + ((TRANSIT_GATEWAY_ATTACHMENT_ID, 1), (BOOLEAN, 0)), +) + +REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGVAO, + {_sSI: _cRTGVARo, _smit: None}, + (_TGVA,), + ((TRANSIT_GATEWAY_VPC_ATTACHMENT, {_aQN: _TGVA, _sN: _tGVA}),), +) + +REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT: StaticOperationSchema = ( + 23, + n0, + _RTGVA, + 0, + REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT, + REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT, + (), +) + +REJECT_VPC_ENDPOINT_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _RVECI, + {_sSI: _cRVECR, _sm: None}, + (_DR, _SIe, _VEIp), + ( + (BOOLEAN, 0), + (VPC_ENDPOINT_SERVICE_ID, 1), + (VPC_ENDPOINT_ID_LIST, {_sN: _VEI, _smi: None}), + ), +) + +REJECT_VPC_ENDPOINT_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _RVECO, + {_sSI: _cRVECRo, _smit: None}, + (_Un,), + ((UNSUCCESSFUL_ITEM_SET, {_aQN: _Un, _sN: _un}),), +) + +REJECT_VPC_ENDPOINT_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _RVEC, + 0, + REJECT_VPC_ENDPOINT_CONNECTIONS_INPUT, + REJECT_VPC_ENDPOINT_CONNECTIONS_OUTPUT, + (), +) + +REJECT_VPC_PEERING_CONNECTION_INPUT: StaticSchema = ( + 18, + n0, + _RVPCI, + {_sSI: _cRVPCR, _sm: None}, + (_DR, _VPCI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (VPC_PEERING_CONNECTION_ID, {_aQN: _VPCI, _sN: _vPCI, _smi: None}), + ), +) + +REJECT_VPC_PEERING_CONNECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _RVPCO, + {_sSI: _cRVPCRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +REJECT_VPC_PEERING_CONNECTION: StaticOperationSchema = ( + 23, + n0, + _RVPC, + 0, + REJECT_VPC_PEERING_CONNECTION_INPUT, + REJECT_VPC_PEERING_CONNECTION_OUTPUT, + (), +) + +RELEASE_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _RAI, + {_sSI: _cRAR, _sm: None}, + (_AI, _PI, _NBG, _DR), + ((ALLOCATION_ID, 0), (STRING, 0), (STRING, 0), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +RELEASE_ADDRESS_OUTPUT: StaticSchema = (18, n0, _RAO, {_sSI: _sU, _smit: None}) + +RELEASE_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _RAel, + 0, + RELEASE_ADDRESS_INPUT, + RELEASE_ADDRESS_OUTPUT, + (), +) + +RELEASE_HOSTS_INPUT: StaticSchema = ( + 18, + n0, + _RHI, + {_sSI: _cRHR, _sm: None}, + (_HI,), + ((REQUEST_HOST_ID_LIST, {_aQN: _HIo, _sN: _hI, _smi: None}),), +) + +RELEASE_HOSTS_OUTPUT: StaticSchema = ( + 18, + n0, + _RHO, + {_sSI: _cRHRo, _smit: None}, + (_Suc, _Un), + ( + (RESPONSE_HOST_ID_LIST, {_aQN: _Suc, _sN: _succ}), + (UNSUCCESSFUL_ITEM_LIST, {_aQN: _Un, _sN: _un}), + ), +) + +RELEASE_HOSTS: StaticOperationSchema = ( + 23, + n0, + _RH, + 0, + RELEASE_HOSTS_INPUT, + RELEASE_HOSTS_OUTPUT, + (), +) + +RELEASE_IPAM_POOL_ALLOCATION_INPUT: StaticSchema = ( + 18, + n0, + _RIPAI, + {_sSI: _cRIPAR, _sm: None}, + (_DR, _IPI, _Ci, _IPAI), + ((BOOLEAN, 0), (IPAM_POOL_ID, 1), (STRING, 1), (IPAM_POOL_ALLOCATION_ID, 1)), +) + +RELEASE_IPAM_POOL_ALLOCATION_OUTPUT: StaticSchema = ( + 18, + n0, + _RIPAO, + {_sSI: _cRIPARo, _smit: None}, + (_Succ,), + ((BOOLEAN, {_aQN: _Succ, _sN: _succe}),), +) + +RELEASE_IPAM_POOL_ALLOCATION: StaticOperationSchema = ( + 23, + n0, + _RIPA, + 0, + RELEASE_IPAM_POOL_ALLOCATION_INPUT, + RELEASE_IPAM_POOL_ALLOCATION_OUTPUT, + (), +) + +REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _RIIPAI, + {_sSI: _cRIIPAR, _sm: None}, + (_IIP, _AIs), + ((IAM_INSTANCE_PROFILE_SPECIFICATION, 1), (IAM_INSTANCE_PROFILE_ASSOCIATION_ID, 1)), +) + +REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _RIIPAO, + {_sSI: _cRIIPARo, _smit: None}, + (_IIPA,), + ((IAM_INSTANCE_PROFILE_ASSOCIATION, {_aQN: _IIPA, _sN: _iIPA}),), +) + +REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _RIIPA, + 0, + REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_INPUT, + REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_OUTPUT, + (), +) + +CREATION_DATE_CONDITION_REQUEST: StaticSchema = ( + 18, + n0, + _CDCR, + 0, + (_MDSC,), + ((MAXIMUM_DAYS_SINCE_CREATED_VALUE, 0),), +) + +DEPRECATION_TIME_CONDITION_REQUEST: StaticSchema = ( + 18, + n0, + _DTCR, + 0, + (_MDSD,), + ((MAXIMUM_DAYS_SINCE_DEPRECATED_VALUE, 0),), +) + +IMAGE_NAME_CRITERIA_REQUEST: StaticSchema = (3, n0, _INCR, 0) + +IMAGE_NAME_CRITERIA_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _INCRL, + 0, + (_me,), + ((IMAGE_NAME_CRITERIA_REQUEST, {_sN: _i}),), +) + +IMAGE_PROVIDER_REQUEST: StaticSchema = (3, n0, _IPRm, 0) + +IMAGE_PROVIDER_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _IPRL, + 0, + (_me,), + ((IMAGE_PROVIDER_REQUEST, {_sN: _i}),), +) + +IMAGE_WATERMARK_FILTER_REQUEST: StaticSchema = ( + 18, + n0, + _IWFRm, + 0, + (_WK, _SIR, _MDSSIC, _MDSWC), + ((STRING, 0), (STRING, 0), (INTEGER, 0), (INTEGER, 0)), +) + +IMAGE_WATERMARK_FILTER_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _IWFRLm, + 0, + (_me,), + ((IMAGE_WATERMARK_FILTER_REQUEST, {_sN: _i}),), +) + +MARKETPLACE_PRODUCT_CODE_REQUEST: StaticSchema = (3, n0, _MPCR, 0) + +MARKETPLACE_PRODUCT_CODE_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _MPCRL, + 0, + (_me,), + ((MARKETPLACE_PRODUCT_CODE_REQUEST, {_sN: _i}),), +) + +SCAN_RESULT_CONDITION_REQUEST: StaticSchema = ( + 18, + n0, + _SRCR, + 0, + (_MDSLFS, _MSL, _MDSIFA, _MDSLFA, _MDSMFA, _MDSHFA, _MDSCFA), + ( + (MAX_DAYS_SINCE_LAST_FINDING_SCAN_VALUE, 0), + (SEVERITY_LABEL, 0), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, 0), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, 0), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, 0), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, 0), + (MAX_DAYS_SINCE_FIX_AVAILABLE_VALUE, 0), + ), +) + +IMAGE_CRITERION_REQUEST: StaticSchema = ( + 18, + n0, + _ICRm, + 0, + (_IPma, _MPCa, _INma, _DTC, _CDC, _IWm, _SRCc), + ( + (IMAGE_PROVIDER_REQUEST_LIST, {_sN: _IPm}), + (MARKETPLACE_PRODUCT_CODE_REQUEST_LIST, {_sN: _MPC}), + (IMAGE_NAME_CRITERIA_REQUEST_LIST, {_sN: _INm}), + (DEPRECATION_TIME_CONDITION_REQUEST, 0), + (CREATION_DATE_CONDITION_REQUEST, 0), + (IMAGE_WATERMARK_FILTER_REQUEST_LIST, {_sN: _IW}), + (SCAN_RESULT_CONDITION_REQUEST, 0), + ), +) + +IMAGE_CRITERION_REQUEST_LIST: StaticSchema = ( + 16, + n0, + _ICRL, + 0, + (_me,), + ((IMAGE_CRITERION_REQUEST, {_sN: _ICm}),), +) + +REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _RICIAISI, + {_sSI: _cRICIAISR, _sm: None}, + (_ICma, _DR), + ((IMAGE_CRITERION_REQUEST_LIST, {_sN: _ICm}), (BOOLEAN, 0)), +) + +REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _RICIAISO, + {_sSI: _cRICIAISRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _RICIAIS, + 0, + REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_INPUT, + REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_OUTPUT, + (), +) + +INSTANCE_TYPE_ITEM_REQUEST: StaticSchema = (3, n0, _ITIR, 0) + +SUPPORTED_INSTANCE_TYPE_REQUEST_SET: StaticSchema = ( + 16, + n0, + _SITRSu, + 0, + (_me,), + ((INSTANCE_TYPE_ITEM_REQUEST, {_sN: _It}),), +) + +UNSUPPORTED_INSTANCE_TYPE_REQUEST_SET: StaticSchema = ( + 16, + n0, + _UITRS, + 0, + (_me,), + ((INSTANCE_TYPE_ITEM_REQUEST, {_sN: _It}),), +) + +INSTANCE_TYPE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _ITSR, + 0, + (_SITu, _UIT), + ( + (SUPPORTED_INSTANCE_TYPE_REQUEST_SET, {_sN: _SITup}), + (UNSUPPORTED_INSTANCE_TYPE_REQUEST_SET, {_sN: _UITn}), + ), +) + +REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _RIITSI, + {_sSI: _cRIITSR, _sm: None}, + (_IIm, _ITSn, _DR), + ((IMAGE_ID, 1), (INSTANCE_TYPE_SPECIFICATION_REQUEST, 0), (BOOLEAN, 0)), +) + +REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _RIITSO, + {_sSI: _cRIITSRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _RV, _sN: _rV}),), +) + +REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION: StaticOperationSchema = ( + 23, + n0, + _RIITS, + 0, + REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_INPUT, + REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_OUTPUT, + (), +) + +NETWORK_ACL_ASSOCIATION_ID: StaticSchema = (3, n0, _NAAI, 0) + +REPLACE_NETWORK_ACL_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _RNAAI, + {_sSI: _cRNAAR, _sm: None}, + (_DR, _AIs, _NAI), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs, _smi: None}), + (NETWORK_ACL_ID, {_aQN: _NAI, _sN: _nAI, _smi: None}), + ), +) + +REPLACE_NETWORK_ACL_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _RNAAO, + {_sSI: _cRNAARo, _smit: None}, + (_NAIew,), + ((STRING, {_aQN: _NAIew, _sN: _nAIe}),), +) + +REPLACE_NETWORK_ACL_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _RNAA, + 0, + REPLACE_NETWORK_ACL_ASSOCIATION_INPUT, + REPLACE_NETWORK_ACL_ASSOCIATION_OUTPUT, + (), +) + +REPLACE_NETWORK_ACL_ENTRY_INPUT: StaticSchema = ( + 18, + n0, + _RNAEI, + {_sSI: _cRNAER, _sm: None}, + (_DR, _NAI, _RN, _P, _RA, _Eg, _CB, _ICB, _ITC, _PR), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_ACL_ID, {_aQN: _NAI, _sN: _nAI, _smi: None}), + (INTEGER, {_aQN: _RN, _sN: _rN, _smi: None}), + (STRING, {_aQN: _P, _sN: _pro, _smi: None}), + (RULE_ACTION, {_aQN: _RA, _sN: _rA, _smi: None}), + (BOOLEAN, {_aQN: _Eg, _sN: _egr, _smi: None}), + (STRING, {_aQN: _CB, _sN: _cB}), + (STRING, {_aQN: _ICB, _sN: _iCB}), + (ICMP_TYPE_CODE, {_sN: _Ic}), + (PORT_RANGE, {_aQN: _PR, _sN: _pR}), + ), +) + +REPLACE_NETWORK_ACL_ENTRY_OUTPUT: StaticSchema = ( + 18, + n0, + _RNAEO, + {_sSI: _sU, _smit: None}, +) + +REPLACE_NETWORK_ACL_ENTRY: StaticOperationSchema = ( + 23, + n0, + _RNAE, + 0, + REPLACE_NETWORK_ACL_ENTRY_INPUT, + REPLACE_NETWORK_ACL_ENTRY_OUTPUT, + (), +) + +REPLACE_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _RRI, + {_sSI: _cRRR, _sm: None}, + ( + _DPLI, + _VEI, + _LToc, + _TGI, + _LGI, + _CGI, + _CNA, + _ONA, + _DR, + _RTIo, + _DCB, + _GI, + _DICB, + _EOIGI, + _II, + _NII, + _VPCI, + _NGI, + ), + ( + (PREFIX_LIST_RESOURCE_ID, 0), + (VPC_ENDPOINT_ID, 0), + (BOOLEAN, 0), + (TRANSIT_GATEWAY_ID, 0), + (LOCAL_GATEWAY_ID, 0), + (CARRIER_GATEWAY_ID, 0), + (CORE_NETWORK_ARN, 0), + (ODB_NETWORK_ARN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + (STRING, {_aQN: _DCB, _sN: _dCB}), + (ROUTE_GATEWAY_ID, {_aQN: _GI, _sN: _gI}), + (STRING, {_aQN: _DICB, _sN: _dICB}), + (EGRESS_ONLY_INTERNET_GATEWAY_ID, {_aQN: _EOIGI, _sN: _eOIGI}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII}), + (VPC_PEERING_CONNECTION_ID, {_aQN: _VPCI, _sN: _vPCI}), + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + ), +) + +REPLACE_ROUTE_OUTPUT: StaticSchema = (18, n0, _RRO, {_sSI: _sU, _smit: None}) + +REPLACE_ROUTE: StaticOperationSchema = ( + 23, + n0, + _RRep, + 0, + REPLACE_ROUTE_INPUT, + REPLACE_ROUTE_OUTPUT, + (), +) + +REPLACE_ROUTE_TABLE_ASSOCIATION_INPUT: StaticSchema = ( + 18, + n0, + _RRTAI, + {_sSI: _cRRTAR, _sm: None}, + (_DR, _AIs, _RTIo), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (ROUTE_TABLE_ASSOCIATION_ID, {_aQN: _AIs, _sN: _aIs, _smi: None}), + (ROUTE_TABLE_ID, {_aQN: _RTIo, _sN: _rTIo, _smi: None}), + ), +) + +REPLACE_ROUTE_TABLE_ASSOCIATION_OUTPUT: StaticSchema = ( + 18, + n0, + _RRTAO, + {_sSI: _cRRTARo, _smit: None}, + (_NAIew, _ASss), + ( + (STRING, {_aQN: _NAIew, _sN: _nAIe}), + (ROUTE_TABLE_ASSOCIATION_STATE, {_aQN: _ASss, _sN: _aSs}), + ), +) + +REPLACE_ROUTE_TABLE_ASSOCIATION: StaticOperationSchema = ( + 23, + n0, + _RRTA, + 0, + REPLACE_ROUTE_TABLE_ASSOCIATION_INPUT, + REPLACE_ROUTE_TABLE_ASSOCIATION_OUTPUT, + (), +) + +REPLACE_TRANSIT_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _RTGRI, + {_sSI: _cRTGRR, _sm: None}, + (_DCB, _TGRTI, _TGAI, _Bl, _DR), + ( + (STRING, 1), + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (TRANSIT_GATEWAY_ATTACHMENT_ID, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +REPLACE_TRANSIT_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RTGRO, + {_sSI: _cRTGRRo, _smit: None}, + (_Rou,), + ((TRANSIT_GATEWAY_ROUTE, {_aQN: _Rou, _sN: _rou}),), +) + +REPLACE_TRANSIT_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _RTGR, + 0, + REPLACE_TRANSIT_GATEWAY_ROUTE_INPUT, + REPLACE_TRANSIT_GATEWAY_ROUTE_OUTPUT, + (), +) + +REPLACE_VPN_TUNNEL_INPUT: StaticSchema = ( + 18, + n0, + _RVTI, + {_sSI: _cRVTR, _sm: None}, + (_VCIp, _VTOIA, _APM, _DR), + ((VPN_CONNECTION_ID, 1), (STRING, 1), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +REPLACE_VPN_TUNNEL_OUTPUT: StaticSchema = ( + 18, + n0, + _RVTO, + {_sSI: _cRVTRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +REPLACE_VPN_TUNNEL: StaticOperationSchema = ( + 23, + n0, + _RVT, + 0, + REPLACE_VPN_TUNNEL_INPUT, + REPLACE_VPN_TUNNEL_OUTPUT, + (), +) + +REPORT_INSTANCE_STATUS_REQUEST_DESCRIPTION: StaticSchema = (3, n0, _RISRD, 4) + +REPORT_INSTANCE_REASON_CODES: StaticSchema = ( + 14, + n0, + _RIRC, + 0, + (_isis, _unr, _nac, _pna, _pn, _pis, _pev, _po_, _oth), + ( + (-1, {_sV: _isis_}), + (-1, {_sV: _unr}), + (-1, {_sV: _nac_}), + (-1, {_sV: _pna_}), + (-1, {_sV: _pn_}), + (-1, {_sV: _pis_}), + (-1, {_sV: _pev_}), + (-1, {_sV: _po__}), + (-1, {_sV: _oth}), + ), +) + +REASON_CODES_LIST: StaticSchema = ( + 16, + n0, + _RCLe, + 0, + (_me,), + ((REPORT_INSTANCE_REASON_CODES, {_sN: _i}),), +) + +REPORT_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _RSTep, + 0, + (_ok, _imp), + ((-1, {_sV: _ok}), (-1, {_sV: _imp})), +) + +REPORT_INSTANCE_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _RISI, + {_sSI: _cRISR, _sm: None}, + (_DR, _Ins, _Sta, _ST, _ETnd, _RCea, _Des), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID_STRING_LIST, {_aQN: _II, _sN: _iI, _smi: None}), + (REPORT_STATUS_TYPE, {_aQN: _Sta, _sN: _sta, _smi: None}), + (DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (DATE_TIME, {_aQN: _ETnd, _sN: _eTnd}), + (REASON_CODES_LIST, {_aQN: _RCeas, _sN: _rCea, _smi: None}), + (REPORT_INSTANCE_STATUS_REQUEST_DESCRIPTION, {_aQN: _Des, _sN: _desc}), + ), +) + +REPORT_INSTANCE_STATUS_OUTPUT: StaticSchema = (18, n0, _RISO, {_sSI: _sU, _smit: None}) + +REPORT_INSTANCE_STATUS: StaticOperationSchema = ( + 23, + n0, + _RISep, + 0, + REPORT_INSTANCE_STATUS_INPUT, + REPORT_INSTANCE_STATUS_OUTPUT, + (), +) + +REQUEST_SPOT_FLEET_INPUT: StaticSchema = ( + 18, + n0, + _RSFI, + {_sSI: _cRSFR, _sm: None}, + (_DR, _SFRC), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SPOT_FLEET_REQUEST_CONFIG_DATA, {_aQN: _SFRC, _sN: _sFRC, _smi: None}), + ), +) + +REQUEST_SPOT_FLEET_OUTPUT: StaticSchema = ( + 18, + n0, + _RSFO, + {_sSI: _cRSFRo, _smit: None}, + (_SFRI,), + ((STRING, {_aQN: _SFRI, _sN: _sFRI}),), +) + +REQUEST_SPOT_FLEET: StaticOperationSchema = ( + 23, + n0, + _RSF, + 0, + REQUEST_SPOT_FLEET_INPUT, + REQUEST_SPOT_FLEET_OUTPUT, + (), +) + +REQUEST_SPOT_LAUNCH_SPECIFICATION_SECURITY_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _RSLSSGIL, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _i}),), +) + +REQUEST_SPOT_LAUNCH_SPECIFICATION_SECURITY_GROUP_LIST: StaticSchema = ( + 16, + n0, + _RSLSSGL, + 0, + (_me,), + ((STRING, {_sN: _i}),), +) + +REQUEST_SPOT_LAUNCH_SPECIFICATION: StaticSchema = ( + 18, + n0, + _RSLS, + 0, + ( + _SGIe, + _SGe, + _ATddr, + _BDMl, + _EO, + _IIP, + _IIm, + _IT, + _KI, + _KN, + _Mon, + _NIe, + _Pl, + _RIa, + _SIu, + _UDs, + ), + ( + (REQUEST_SPOT_LAUNCH_SPECIFICATION_SECURITY_GROUP_ID_LIST, {_sN: _SGI}), + (REQUEST_SPOT_LAUNCH_SPECIFICATION_SECURITY_GROUP_LIST, {_sN: _SG}), + (STRING, {_aQN: _ATddr, _sN: _aTdd}), + (BLOCK_DEVICE_MAPPING_LIST, {_aQN: _BDM, _sN: _bDM}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + (IAM_INSTANCE_PROFILE_SPECIFICATION, {_aQN: _IIP, _sN: _iIP}), + (IMAGE_ID, {_aQN: _IIm, _sN: _iIm}), + (INSTANCE_TYPE, {_aQN: _IT, _sN: _iT}), + (KERNEL_ID, {_aQN: _KI, _sN: _kI}), + (KEY_PAIR_NAME_WITH_RESOLVER, {_aQN: _KN, _sN: _kN}), + (RUN_INSTANCES_MONITORING_ENABLED, {_aQN: _Mon, _sN: _monit}), + (INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST, {_sN: _NI}), + (SPOT_PLACEMENT, {_aQN: _Pl, _sN: _pla}), + (RAMDISK_ID, {_aQN: _RIa, _sN: _rIa}), + (SUBNET_ID, {_aQN: _SIu, _sN: _sI}), + (SENSITIVE_USER_DATA, {_aQN: _UDs, _sN: _uDs}), + ), +) + +REQUEST_SPOT_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _RSII, + {_sSI: _cRSIR, _sm: None}, + (_LSaun, _TSa, _IIB, _DR, _SPpo, _CTl, _IC, _Ty, _VF, _VU, _LGa, _AZGv, _BDMlo), + ( + (REQUEST_SPOT_LAUNCH_SPECIFICATION, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (INSTANCE_INTERRUPTION_BEHAVIOR, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (STRING, {_aQN: _SPpo, _sN: _sPp}), + (STRING, {_aQN: _CTl, _sN: _cTl}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (SPOT_INSTANCE_TYPE, {_aQN: _Ty, _sN: _ty}), + (DATE_TIME, {_aQN: _VF, _sN: _vF}), + (DATE_TIME, {_aQN: _VU, _sN: _vU}), + (STRING, {_aQN: _LGa, _sN: _lG}), + (STRING, {_aQN: _AZGv, _sN: _aZG}), + (INTEGER, {_aQN: _BDMlo, _sN: _bDMl}), + ), +) + +REQUEST_SPOT_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _RSIO, + {_sSI: _cRSIRo, _smit: None}, + (_SIRpo,), + ((SPOT_INSTANCE_REQUEST_LIST, {_aQN: _SIRS, _sN: _sIRS}),), +) + +REQUEST_SPOT_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _RSIeq, + 0, + REQUEST_SPOT_INSTANCES_INPUT, + REQUEST_SPOT_INSTANCES_OUTPUT, + (), +) + +RESET_ADDRESS_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RAAI, + {_sSI: _cRAAR, _sm: None}, + (_AI, _Attr, _DR), + ((ALLOCATION_ID, 1), (ADDRESS_ATTRIBUTE_NAME, 1), (BOOLEAN, 0)), +) + +RESET_ADDRESS_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RAAO, + {_sSI: _cRAARo, _smit: None}, + (_Ad,), + ((ADDRESS_ATTRIBUTE, {_aQN: _Ad, _sN: _ad}),), +) + +RESET_ADDRESS_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RAA, + 0, + RESET_ADDRESS_ATTRIBUTE_INPUT, + RESET_ADDRESS_ATTRIBUTE_OUTPUT, + (), +) + +RESET_EBS_DEFAULT_KMS_KEY_ID_INPUT: StaticSchema = ( + 18, + n0, + _REDKKII, + {_sSI: _cREDKKIR, _sm: None}, + (_DR,), + ((BOOLEAN, 0),), +) + +RESET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT: StaticSchema = ( + 18, + n0, + _REDKKIO, + {_sSI: _cREDKKIRo, _smit: None}, + (_KKI,), + ((STRING, {_aQN: _KKI, _sN: _kKI}),), +) + +RESET_EBS_DEFAULT_KMS_KEY_ID: StaticOperationSchema = ( + 23, + n0, + _REDKKI, + 0, + RESET_EBS_DEFAULT_KMS_KEY_ID_INPUT, + RESET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT, + (), +) + +RESET_FPGA_IMAGE_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _RFIAN, + 0, + (_lPo,), + ((-1, {_sV: _lPo}),), +) + +RESET_FPGA_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RFIAI, + {_sSI: _cRFIAR, _sm: None}, + (_DR, _FII, _Attr), + ((BOOLEAN, 0), (FPGA_IMAGE_ID, 1), (RESET_FPGA_IMAGE_ATTRIBUTE_NAME, 0)), +) + +RESET_FPGA_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RFIAO, + {_sSI: _cRFIARo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +RESET_FPGA_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RFIA, + 0, + RESET_FPGA_IMAGE_ATTRIBUTE_INPUT, + RESET_FPGA_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +RESET_IMAGE_ATTRIBUTE_NAME: StaticSchema = ( + 14, + n0, + _RIAN, + 0, + (_lPa,), + ((-1, {_sV: _lPa}),), +) + +RESET_IMAGE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RIAI, + {_sSI: _cRIAR, _sm: None}, + (_Attr, _IIm, _DR), + ((RESET_IMAGE_ATTRIBUTE_NAME, 1), (IMAGE_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +RESET_IMAGE_ATTRIBUTE_OUTPUT: StaticSchema = (18, n0, _RIAO, {_sSI: _sU, _smit: None}) + +RESET_IMAGE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RIA, + 0, + RESET_IMAGE_ATTRIBUTE_INPUT, + RESET_IMAGE_ATTRIBUTE_OUTPUT, + (), +) + +RESET_INSTANCE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RIAIe, + {_sSI: _cRIARo, _sm: None}, + (_DR, _II, _Attr), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (INSTANCE_ID, {_aQN: _II, _sN: _iI, _smi: None}), + (INSTANCE_ATTRIBUTE_NAME, {_aQN: _Attr, _sN: _attr, _smi: None}), + ), +) + +RESET_INSTANCE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RIAOe, + {_sSI: _sU, _smit: None}, +) + +RESET_INSTANCE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RIAe, + 0, + RESET_INSTANCE_ATTRIBUTE_INPUT, + RESET_INSTANCE_ATTRIBUTE_OUTPUT, + (), +) + +RESET_NETWORK_INTERFACE_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RNIAI, + {_sSI: _cRNIAR, _sm: None}, + (_DR, _NII, _SDC), + ( + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (STRING, {_aQN: _SDC, _sN: _sDC}), + ), +) + +RESET_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RNIAO, + {_sSI: _sU, _smit: None}, +) + +RESET_NETWORK_INTERFACE_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RNIA, + 0, + RESET_NETWORK_INTERFACE_ATTRIBUTE_INPUT, + RESET_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT, + (), +) + +RESET_SNAPSHOT_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _RSAI, + {_sSI: _cRSAR, _sm: None}, + (_Attr, _SIn, _DR), + ((SNAPSHOT_ATTRIBUTE_NAME, 1), (SNAPSHOT_ID, 1), (BOOLEAN, {_aQN: _DR, _sN: _dRr})), +) + +RESET_SNAPSHOT_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _RSAO, + {_sSI: _sU, _smit: None}, +) + +RESET_SNAPSHOT_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _RSAe, + 0, + RESET_SNAPSHOT_ATTRIBUTE_INPUT, + RESET_SNAPSHOT_ATTRIBUTE_OUTPUT, + (), +) + +RESTORE_ADDRESS_TO_CLASSIC_INPUT: StaticSchema = ( + 18, + n0, + _RATCI, + {_sSI: _cRATCR, _sm: None}, + (_DR, _PI), + ((BOOLEAN, {_aQN: _DR, _sN: _dRr}), (STRING, {_aQN: _PI, _sN: _pI, _smi: None})), +) + +RESTORE_ADDRESS_TO_CLASSIC_OUTPUT: StaticSchema = ( + 18, + n0, + _RATCO, + {_sSI: _cRATCRo, _smit: None}, + (_PI, _Sta), + ((STRING, {_aQN: _PI, _sN: _pI}), (STATUS, {_aQN: _Sta, _sN: _sta})), +) + +RESTORE_ADDRESS_TO_CLASSIC: StaticOperationSchema = ( + 23, + n0, + _RATC, + 0, + RESTORE_ADDRESS_TO_CLASSIC_INPUT, + RESTORE_ADDRESS_TO_CLASSIC_OUTPUT, + (), +) + +RESTORE_IMAGE_FROM_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _RIFRBI, + {_sSI: _cRIFRBR, _sm: None}, + (_IIm, _DR), + ((IMAGE_ID, 1), (BOOLEAN, 0)), +) + +RESTORE_IMAGE_FROM_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _RIFRBO, + {_sSI: _cRIFRBRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +RESTORE_IMAGE_FROM_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _RIFRB, + 0, + RESTORE_IMAGE_FROM_RECYCLE_BIN_INPUT, + RESTORE_IMAGE_FROM_RECYCLE_BIN_OUTPUT, + (), +) + +RESTORE_MANAGED_PREFIX_LIST_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _RMPLVI, + {_sSI: _cRMPLVR, _sm: None}, + (_DR, _PLI, _PVre, _CVu), + ((BOOLEAN, 0), (PREFIX_LIST_RESOURCE_ID, 1), (LONG, 1), (LONG, 1)), +) + +RESTORE_MANAGED_PREFIX_LIST_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _RMPLVO, + {_sSI: _cRMPLVRo, _smit: None}, + (_PL,), + ((MANAGED_PREFIX_LIST, {_aQN: _PL, _sN: _pL}),), +) + +RESTORE_MANAGED_PREFIX_LIST_VERSION: StaticOperationSchema = ( + 23, + n0, + _RMPLV, + 0, + RESTORE_MANAGED_PREFIX_LIST_VERSION_INPUT, + RESTORE_MANAGED_PREFIX_LIST_VERSION_OUTPUT, + (), +) + +RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _RSFRBI, + {_sSI: _cRSFRBR, _sm: None}, + (_SIn, _DR), + ((SNAPSHOT_ID, 1), (BOOLEAN, 0)), +) + +RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _RSFRBO, + {_sSI: _cRSFRBRo, _smit: None}, + (_SIn, _OA, _Des, _En, _OIw, _Prog, _ST, _St, _VIo, _VSol, _STs), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (STRING, {_aQN: _OA, _sN: _oA}), + (STRING, {_aQN: _Des, _sN: _desc}), + (BOOLEAN, {_aQN: _En, _sN: _enc}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _Prog, _sN: _prog}), + (MILLISECOND_DATE_TIME, {_aQN: _ST, _sN: _sTt}), + (SNAPSHOT_STATE, {_aQN: _Sta, _sN: _sta}), + (STRING, {_aQN: _VIo, _sN: _vIo}), + (INTEGER, {_aQN: _VSol, _sN: _vSo}), + (SSE_TYPE, {_aQN: _STs, _sN: _sTs}), + ), +) + +RESTORE_SNAPSHOT_FROM_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _RSFRB, + 0, + RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_INPUT, + RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_OUTPUT, + (), +) + +RESTORE_SNAPSHOT_TIER_REQUEST_TEMPORARY_RESTORE_DAYS: StaticSchema = ( + 7, + n0, + _RSTRTRD, + 0, +) + +RESTORE_SNAPSHOT_TIER_INPUT: StaticSchema = ( + 18, + n0, + _RSTI, + {_sSI: _cRSTR, _sm: None}, + (_SIn, _TRD, _PRer, _DR), + ( + (SNAPSHOT_ID, 1), + (RESTORE_SNAPSHOT_TIER_REQUEST_TEMPORARY_RESTORE_DAYS, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +RESTORE_SNAPSHOT_TIER_OUTPUT: StaticSchema = ( + 18, + n0, + _RSTO, + {_sSI: _cRSTRo, _smit: None}, + (_SIn, _RSTes, _RD, _IPRs), + ( + (STRING, {_aQN: _SIn, _sN: _sIn}), + (MILLISECOND_DATE_TIME, {_aQN: _RSTes, _sN: _rSTe}), + (INTEGER, {_aQN: _RD, _sN: _rD}), + (BOOLEAN, {_aQN: _IPRs, _sN: _iPRs}), + ), +) + +RESTORE_SNAPSHOT_TIER: StaticOperationSchema = ( + 23, + n0, + _RSTest, + 0, + RESTORE_SNAPSHOT_TIER_INPUT, + RESTORE_SNAPSHOT_TIER_OUTPUT, + (), +) + +RESTORE_VOLUME_FROM_RECYCLE_BIN_INPUT: StaticSchema = ( + 18, + n0, + _RVFRBI, + {_sSI: _cRVFRBR, _sm: None}, + (_VIo, _DR), + ((VOLUME_ID, 1), (BOOLEAN, 0)), +) + +RESTORE_VOLUME_FROM_RECYCLE_BIN_OUTPUT: StaticSchema = ( + 18, + n0, + _RVFRBO, + {_sSI: _cRVFRBRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +RESTORE_VOLUME_FROM_RECYCLE_BIN: StaticOperationSchema = ( + 23, + n0, + _RVFRB, + 0, + RESTORE_VOLUME_FROM_RECYCLE_BIN_INPUT, + RESTORE_VOLUME_FROM_RECYCLE_BIN_OUTPUT, + (), +) + +REVOKE_CLIENT_VPN_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _RCVII, + {_sSI: _cRCVIR, _sm: None}, + (_CVEI, _TNC, _AGI, _RAG, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (STRING, 1), (STRING, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +REVOKE_CLIENT_VPN_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _RCVIO, + {_sSI: _cRCVIRo, _smit: None}, + (_Sta,), + ((CLIENT_VPN_AUTHORIZATION_RULE_STATUS, {_aQN: _Sta, _sN: _sta}),), +) + +REVOKE_CLIENT_VPN_INGRESS: StaticOperationSchema = ( + 23, + n0, + _RCVI, + 0, + REVOKE_CLIENT_VPN_INGRESS_INPUT, + REVOKE_CLIENT_VPN_INGRESS_OUTPUT, + (), +) + +REVOKE_SECURITY_GROUP_EGRESS_INPUT: StaticSchema = ( + 18, + n0, + _RSGEI, + {_sSI: _cRSGER, _sm: None}, + (_SGRIe, _DR, _GIr, _SSGN, _SSGOI, _IPpr, _FP, _TP, _CIi, _IPper), + ( + (SECURITY_GROUP_RULE_ID_LIST, {_sN: _SGRI}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr, _smi: None}), + (STRING, {_aQN: _SSGN, _sN: _sSGN}), + (STRING, {_aQN: _SSGOI, _sN: _sSGOI}), + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (INTEGER, {_aQN: _FP, _sN: _fP}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (STRING, {_aQN: _CIi, _sN: _cIi}), + (IP_PERMISSION_LIST, {_aQN: _IPper, _sN: _iPpe}), + ), +) + +REVOKED_SECURITY_GROUP_RULE: StaticSchema = ( + 18, + n0, + _RSGR, + 0, + (_SGRI, _GIr, _IE, _IPpr, _FP, _TP, _CIidr, _CIid, _PLI, _RGIef, _Des), + ( + (SECURITY_GROUP_RULE_ID, {_aQN: _SGRI, _sN: _sGRI}), + (SECURITY_GROUP_ID, {_aQN: _GIr, _sN: _gIr}), + (BOOLEAN, {_aQN: _IE, _sN: _iE}), + (STRING, {_aQN: _IPpr, _sN: _iPpr}), + (INTEGER, {_aQN: _FP, _sN: _fP}), + (INTEGER, {_aQN: _TP, _sN: _tP}), + (STRING, {_aQN: _CIidr, _sN: _cIidr}), + (STRING, {_aQN: _CIid, _sN: _cIid}), + (PREFIX_LIST_RESOURCE_ID, {_aQN: _PLI, _sN: _pLI}), + (SECURITY_GROUP_ID, {_aQN: _RGIef, _sN: _rGIe}), + (STRING, {_aQN: _Des, _sN: _desc}), + ), +) + +REVOKED_SECURITY_GROUP_RULE_LIST: StaticSchema = ( + 16, + n0, + _RSGRL, + 0, + (_me,), + ((REVOKED_SECURITY_GROUP_RULE, {_sN: _i}),), +) + +REVOKE_SECURITY_GROUP_EGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _RSGEO, + {_sSI: _cRSGERo, _smit: None}, + (_R, _UIP, _RSGRe), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (IP_PERMISSION_LIST, {_aQN: _UIPS, _sN: _uIPS}), + (REVOKED_SECURITY_GROUP_RULE_LIST, {_aQN: _RSGRS, _sN: _rSGRS}), + ), +) + +REVOKE_SECURITY_GROUP_EGRESS: StaticOperationSchema = ( + 23, + n0, + _RSGE, + 0, + REVOKE_SECURITY_GROUP_EGRESS_INPUT, + REVOKE_SECURITY_GROUP_EGRESS_OUTPUT, + (), +) + +REVOKE_SECURITY_GROUP_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _RSGII, + {_sSI: _cRSGIR, _sm: None}, + (_CIi, _FP, _GIr, _GN, _IPper, _IPpr, _SSGN, _SSGOI, _TP, _SGRIe, _DR), + ( + (STRING, 0), + (INTEGER, 0), + (SECURITY_GROUP_ID, 0), + (SECURITY_GROUP_NAME, 0), + (IP_PERMISSION_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (SECURITY_GROUP_RULE_ID_LIST, {_sN: _SGRI}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +REVOKE_SECURITY_GROUP_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _RSGIO, + {_sSI: _cRSGIRo, _smit: None}, + (_R, _UIP, _RSGRe), + ( + (BOOLEAN, {_aQN: _R, _sN: _r}), + (IP_PERMISSION_LIST, {_aQN: _UIPS, _sN: _uIPS}), + (REVOKED_SECURITY_GROUP_RULE_LIST, {_aQN: _RSGRS, _sN: _rSGRS}), + ), +) + +REVOKE_SECURITY_GROUP_INGRESS: StaticOperationSchema = ( + 23, + n0, + _RSGIev, + 0, + REVOKE_SECURITY_GROUP_INGRESS_INPUT, + REVOKE_SECURITY_GROUP_INGRESS_OUTPUT, + (), +) + +CPU_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _COR, + 0, + (_CCor, _TPC, _ASS, _NV), + ( + (INTEGER, 0), + (INTEGER, 0), + (AMD_SEV_SNP_SPECIFICATION, 0), + (NESTED_VIRTUALIZATION_SPECIFICATION, 0), + ), +) + +ELASTIC_GPU_SPECIFICATIONS: StaticSchema = ( + 16, + n0, + _EGSl, + 0, + (_me,), + ((ELASTIC_GPU_SPECIFICATION, {_sN: _i}),), +) + +ELASTIC_INFERENCE_ACCELERATOR_COUNT: StaticSchema = (7, n0, _EIAC, 0) + +ELASTIC_INFERENCE_ACCELERATOR: StaticSchema = ( + 18, + n0, + _EIAl, + 0, + (_Ty, _Cou), + ((STRING, 1), (ELASTIC_INFERENCE_ACCELERATOR_COUNT, 0)), +) + +ELASTIC_INFERENCE_ACCELERATORS: StaticSchema = ( + 16, + n0, + _EIA, + 0, + (_me,), + ((ELASTIC_INFERENCE_ACCELERATOR, {_sN: _i}),), +) + +HIBERNATION_OPTIONS_REQUEST: StaticSchema = (18, n0, _HOR, 0, (_Conf,), ((BOOLEAN, 0),)) + +SPOT_MARKET_OPTIONS: StaticSchema = ( + 18, + n0, + _SMO, + 0, + (_MP, _SITp, _BDMlo, _VU, _IIB), + ( + (STRING, 0), + (SPOT_INSTANCE_TYPE, 0), + (INTEGER, 0), + (DATE_TIME, 0), + (INSTANCE_INTERRUPTION_BEHAVIOR, 0), + ), +) + +INSTANCE_MARKET_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _IMORn, + 0, + (_MTar, _SO), + ((MARKET_TYPE, 0), (SPOT_MARKET_OPTIONS, 0)), +) + +LAUNCH_TEMPLATE_SPECIFICATION: StaticSchema = ( + 18, + n0, + _LTS, + 0, + (_LTI, _LTN, _Ve), + ((LAUNCH_TEMPLATE_ID, 0), (STRING, 0), (STRING, 0)), +) + +LICENSE_CONFIGURATION_REQUEST: StaticSchema = (18, n0, _LCR, 0, (_LCA,), ((STRING, 0),)) + +LICENSE_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _LSLR, + 0, + (_me,), + ((LICENSE_CONFIGURATION_REQUEST, {_sN: _i}),), +) + +INSTANCE_MAINTENANCE_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _IMORns, + 0, + (_ARu,), + ((INSTANCE_AUTO_RECOVERY_STATE, 0),), +) + +INSTANCE_METADATA_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _IMORnst, + 0, + (_HTt, _HPRHL, _HE, _HPI, _IMT), + ( + (HTTP_TOKENS_STATE, 0), + (INTEGER, 0), + (INSTANCE_METADATA_ENDPOINT_STATE, 0), + (INSTANCE_METADATA_PROTOCOL_STATE, 0), + (INSTANCE_METADATA_TAGS_STATE, 0), + ), +) + +INSTANCE_NETWORK_PERFORMANCE_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _INPOR, + 0, + (_BW,), + ((INSTANCE_BANDWIDTH_WEIGHTING, 0),), +) + +PRIVATE_DNS_NAME_OPTIONS_REQUEST: StaticSchema = ( + 18, + n0, + _PDNORr, + 0, + (_HT, _ERNDAR, _ERNDAAAAR), + ((HOSTNAME_TYPE, 0), (BOOLEAN, 0), (BOOLEAN, 0)), +) + +INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_REQUEST: StaticSchema = ( + 18, + n0, + _ISIPIAR, + 0, + (_PIAr,), + ((STRING, 1),), +) + +INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _ISIPIALR, + 0, + (_me,), + ((INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_REQUEST, {_sN: _i}),), +) + +INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST: StaticSchema = ( + 18, + n0, + _ISISR, + 0, + (_DOT, _DI, _PIAri, _PIAC, _SSIe, _ITnte, _NCI), + ( + (BOOLEAN, 0), + (INTEGER, 0), + (INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_LIST_REQUEST, {_sN: _PIAr}), + (INTEGER, 0), + (SECONDARY_SUBNET_ID, 0), + (SECONDARY_INTERFACE_TYPE, 0), + (INTEGER, 0), + ), +) + +INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_LIST_REQUEST: StaticSchema = ( + 16, + n0, + _ISISLR, + 0, + (_me,), + ((INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST, {_sN: _i}),), +) + +RUN_INSTANCES_USER_DATA: StaticSchema = (3, n0, _RIUD, 4) + +RUN_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _RIIu, + {_sSI: _cRIRoma, _sm: None}, + ( + _BDMl, + _IIm, + _IT, + _IAC, + _IAp, + _KI, + _KN, + _MCax, + _MCi, + _Mon, + _Pl, + _RIa, + _SGIe, + _SGe, + _SIu, + _UDs, + _EGS, + _EIA, + _TSa, + _LT, + _IMO, + _CSr, + _CO, + _CRSa, + _HO, + _LSic, + _MO, + _EOn, + _PDNO, + _MOa, + _DASi, + _EPI, + _NPO, + _Op, + _SIec, + _DR, + _DAT, + _IISB, + _PIAr, + _CTl, + _AId, + _NIe, + _IIP, + _EO, + ), + ( + (BLOCK_DEVICE_MAPPING_REQUEST_LIST, {_sN: _BDM}), + (IMAGE_ID, 0), + (INSTANCE_TYPE, 0), + (INTEGER, 0), + (INSTANCE_IPV6_ADDRESS_LIST, {_sN: _IApv}), + (KERNEL_ID, 0), + (KEY_PAIR_NAME, 0), + (INTEGER, 1), + (INTEGER, 1), + (RUN_INSTANCES_MONITORING_ENABLED, 0), + (PLACEMENT, 0), + (RAMDISK_ID, 0), + (SECURITY_GROUP_ID_STRING_LIST, {_sN: _SGI}), + (SECURITY_GROUP_STRING_LIST, {_sN: _SG}), + (SUBNET_ID, 0), + (RUN_INSTANCES_USER_DATA, 0), + (ELASTIC_GPU_SPECIFICATIONS, 0), + (ELASTIC_INFERENCE_ACCELERATORS, {_sN: _EIAl}), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (LAUNCH_TEMPLATE_SPECIFICATION, 0), + (INSTANCE_MARKET_OPTIONS_REQUEST, 0), + (CREDIT_SPECIFICATION_REQUEST, 0), + (CPU_OPTIONS_REQUEST, 0), + (CAPACITY_RESERVATION_SPECIFICATION, 0), + (HIBERNATION_OPTIONS_REQUEST, 0), + (LICENSE_SPECIFICATION_LIST_REQUEST, {_sN: _LSice}), + (INSTANCE_METADATA_OPTIONS_REQUEST, 0), + (ENCLAVE_OPTIONS_REQUEST, 0), + (PRIVATE_DNS_NAME_OPTIONS_REQUEST, 0), + (INSTANCE_MAINTENANCE_OPTIONS_REQUEST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INSTANCE_NETWORK_PERFORMANCE_OPTIONS_REQUEST, 0), + (OPERATOR_REQUEST, 0), + (INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_LIST_REQUEST, {_sN: _SIeco}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (BOOLEAN, {_aQN: _DAT, _sN: _dAT}), + (SHUTDOWN_BEHAVIOR, {_aQN: _IISB, _sN: _iISB}), + (STRING, {_aQN: _PIAr, _sN: _pIAr}), + (STRING, {_aQN: _CTl, _sN: _cTl, _sT: None}), + (STRING, {_aQN: _AId, _sN: _aId}), + (INSTANCE_NETWORK_INTERFACE_SPECIFICATION_LIST, {_aQN: _NI, _sN: _nI}), + (IAM_INSTANCE_PROFILE_SPECIFICATION, {_aQN: _IIP, _sN: _iIP}), + (BOOLEAN, {_aQN: _EO, _sN: _eO}), + ), +) + +RUN_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _RIOu, + {_sSI: _cRo, _smit: None}, + (_RI, _OIw, _RIeq, _G, _Ins), + ( + (STRING, {_aQN: _RI, _sN: _rIes}), + (STRING, {_aQN: _OIw, _sN: _oI}), + (STRING, {_aQN: _RIeq, _sN: _rIeq}), + (GROUP_IDENTIFIER_LIST, {_aQN: _GS, _sN: _gS}), + (INSTANCE_LIST, {_aQN: _ISnst, _sN: _iSns}), + ), +) + +RUN_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _RIu, + 0, + RUN_INSTANCES_INPUT, + RUN_INSTANCES_OUTPUT, + (), +) + +SCHEDULED_INSTANCES_EBS: StaticSchema = ( + 18, + n0, + _SIE, + 0, + (_DOT, _En, _Io, _SIn, _VSol, _VT), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (SNAPSHOT_ID, 0), + (INTEGER, 0), + (STRING, 0), + ), +) + +SCHEDULED_INSTANCES_BLOCK_DEVICE_MAPPING: StaticSchema = ( + 18, + n0, + _SIBDM, + 0, + (_DNe, _Eb, _ND, _VN), + ((STRING, 0), (SCHEDULED_INSTANCES_EBS, 0), (STRING, 0), (STRING, 0)), +) + +SCHEDULED_INSTANCES_BLOCK_DEVICE_MAPPING_SET: StaticSchema = ( + 16, + n0, + _SIBDMS, + 0, + (_me,), + ((SCHEDULED_INSTANCES_BLOCK_DEVICE_MAPPING, {_sN: _BDM}),), +) + +SCHEDULED_INSTANCES_IAM_INSTANCE_PROFILE: StaticSchema = ( + 18, + n0, + _SIIIP, + 0, + (_Ar, _N), + ((STRING, 0), (STRING, 0)), +) + +SCHEDULED_INSTANCES_MONITORING: StaticSchema = ( + 18, + n0, + _SIM, + 0, + (_Ena,), + ((BOOLEAN, 0),), +) + +SCHEDULED_INSTANCES_SECURITY_GROUP_ID_SET: StaticSchema = ( + 16, + n0, + _SISGIS, + 0, + (_me,), + ((SECURITY_GROUP_ID, {_sN: _SGI}),), +) + +IPV6_ADDRESS: StaticSchema = (3, n0, _IApv, 0) + +SCHEDULED_INSTANCES_IPV6_ADDRESS: StaticSchema = ( + 18, + n0, + _SIIAc, + 0, + (_IApv,), + ((IPV6_ADDRESS, 0),), +) + +SCHEDULED_INSTANCES_IPV6_ADDRESS_LIST: StaticSchema = ( + 16, + n0, + _SIIALc, + 0, + (_me,), + ((SCHEDULED_INSTANCES_IPV6_ADDRESS, {_sN: _IApv}),), +) + +SCHEDULED_INSTANCES_PRIVATE_IP_ADDRESS_CONFIG: StaticSchema = ( + 18, + n0, + _SIPIAC, + 0, + (_Prim, _PIAr), + ((BOOLEAN, 0), (STRING, 0)), +) + +PRIVATE_IP_ADDRESS_CONFIG_SET: StaticSchema = ( + 16, + n0, + _PIACS, + 0, + (_me,), + ((SCHEDULED_INSTANCES_PRIVATE_IP_ADDRESS_CONFIG, {_sN: _PIACS}),), +) + +SCHEDULED_INSTANCES_NETWORK_INTERFACE: StaticSchema = ( + 18, + n0, + _SINI, + 0, + (_APIAsso, _DOT, _Des, _DI, _G, _IAC, _IAp, _NII, _PIAr, _PIACr, _SPIAC, _SIu), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (INTEGER, 0), + (SCHEDULED_INSTANCES_SECURITY_GROUP_ID_SET, {_sN: _Gr}), + (INTEGER, 0), + (SCHEDULED_INSTANCES_IPV6_ADDRESS_LIST, {_sN: _IApv}), + (NETWORK_INTERFACE_ID, 0), + (STRING, 0), + (PRIVATE_IP_ADDRESS_CONFIG_SET, {_sN: _PIACri}), + (INTEGER, 0), + (SUBNET_ID, 0), + ), +) + +SCHEDULED_INSTANCES_NETWORK_INTERFACE_SET: StaticSchema = ( + 16, + n0, + _SINIS, + 0, + (_me,), + ((SCHEDULED_INSTANCES_NETWORK_INTERFACE, {_sN: _NI}),), +) + +SCHEDULED_INSTANCES_PLACEMENT: StaticSchema = ( + 18, + n0, + _SIPc, + 0, + (_AZ, _GN), + ((STRING, 0), (PLACEMENT_GROUP_NAME, 0)), +) + +SCHEDULED_INSTANCES_LAUNCH_SPECIFICATION: StaticSchema = ( + 18, + n0, + _SILS, + 4, + (_BDMl, _EO, _IIP, _IIm, _IT, _KI, _KN, _Mon, _NIe, _Pl, _RIa, _SGIe, _SIu, _UDs), + ( + (SCHEDULED_INSTANCES_BLOCK_DEVICE_MAPPING_SET, {_sN: _BDM}), + (BOOLEAN, 0), + (SCHEDULED_INSTANCES_IAM_INSTANCE_PROFILE, 0), + (IMAGE_ID, 1), + (STRING, 0), + (KERNEL_ID, 0), + (KEY_PAIR_NAME, 0), + (SCHEDULED_INSTANCES_MONITORING, 0), + (SCHEDULED_INSTANCES_NETWORK_INTERFACE_SET, {_sN: _NI}), + (SCHEDULED_INSTANCES_PLACEMENT, 0), + (RAMDISK_ID, 0), + (SCHEDULED_INSTANCES_SECURITY_GROUP_ID_SET, {_sN: _SGI}), + (SUBNET_ID, 0), + (STRING, 0), + ), +) + +RUN_SCHEDULED_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _RSIIu, + {_sSI: _cRSIRom, _sm: None}, + (_CTl, _DR, _IC, _LSaun, _SIIc), + ( + (STRING, 2), + (BOOLEAN, 0), + (INTEGER, 0), + (SCHEDULED_INSTANCES_LAUNCH_SPECIFICATION, 1), + (SCHEDULED_INSTANCE_ID, 1), + ), +) + +INSTANCE_ID_SET: StaticSchema = (16, n0, _IIS, 0, (_me,), ((INSTANCE_ID, {_sN: _i}),)) + +RUN_SCHEDULED_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _RSIOu, + {_sSI: _cRSIRoma, _smit: None}, + (_IIS,), + ((INSTANCE_ID_SET, {_aQN: _IIS, _sN: _iIS}),), +) + +RUN_SCHEDULED_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _RSIu, + 0, + RUN_SCHEDULED_INSTANCES_INPUT, + RUN_SCHEDULED_INSTANCES_OUTPUT, + (), +) + +SEARCH_LOCAL_GATEWAY_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _SLGRI, + {_sSI: _cSLGRR, _sm: None}, + (_LGRTI, _Fil, _MR, _NTex, _DR), + ( + (LOCAL_GATEWAY_ROUTETABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +LOCAL_GATEWAY_ROUTE_LIST: StaticSchema = ( + 16, + n0, + _LGRL, + 0, + (_me,), + ((LOCAL_GATEWAY_ROUTE, {_sN: _i}),), +) + +SEARCH_LOCAL_GATEWAY_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _SLGRO, + {_sSI: _cSLGRRo, _smit: None}, + (_Rout, _NTex), + ( + (LOCAL_GATEWAY_ROUTE_LIST, {_aQN: _RSout, _sN: _rSou}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +SEARCH_LOCAL_GATEWAY_ROUTES: StaticOperationSchema = ( + 23, + n0, + _SLGR, + 0, + SEARCH_LOCAL_GATEWAY_ROUTES_INPUT, + SEARCH_LOCAL_GATEWAY_ROUTES_OUTPUT, + (), +) + +SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _STGMGI, + {_sSI: _cSTGMGR, _sm: None}, + (_TGMDI, _Fil, _MR, _NTex, _DR), + ( + (TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID, 1), + (FILTER_LIST, {_sN: _Fi}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +MEMBERSHIP_TYPE: StaticSchema = ( + 14, + n0, + _MTem, + 0, + (_stat, _igm), + ((-1, {_sV: _stat}), (-1, {_sV: _igm})), +) + +TRANSIT_GATEWAY_MULTICAST_GROUP: StaticSchema = ( + 18, + n0, + _TGMG, + 0, + (_GIA, _TGAI, _SIu, _RIe, _RT, _ROI, _NII, _GM, _GSr, _MTemb, _STo), + ( + (STRING, {_aQN: _GIA, _sN: _gIA}), + (STRING, {_aQN: _TGAI, _sN: _tGAI}), + (STRING, {_aQN: _SIu, _sN: _sI}), + (STRING, {_aQN: _RIe, _sN: _rI}), + (TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE, {_aQN: _RT, _sN: _rT}), + (STRING, {_aQN: _ROI, _sN: _rOI}), + (STRING, {_aQN: _NII, _sN: _nII}), + (BOOLEAN, {_aQN: _GM, _sN: _gM}), + (BOOLEAN, {_aQN: _GSr, _sN: _gSr}), + (MEMBERSHIP_TYPE, {_aQN: _MTemb, _sN: _mTe}), + (MEMBERSHIP_TYPE, {_aQN: _STo, _sN: _sTo}), + ), +) + +TRANSIT_GATEWAY_MULTICAST_GROUP_LIST: StaticSchema = ( + 16, + n0, + _TGMGL, + 0, + (_me,), + ((TRANSIT_GATEWAY_MULTICAST_GROUP, {_sN: _i}),), +) + +SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _STGMGO, + {_sSI: _cSTGMGRo, _smit: None}, + (_MG, _NTex), + ( + (TRANSIT_GATEWAY_MULTICAST_GROUP_LIST, {_aQN: _MG, _sN: _mG}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS: StaticOperationSchema = ( + 23, + n0, + _STGMG, + 0, + SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_INPUT, + SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_OUTPUT, + (), +) + +SEARCH_TRANSIT_GATEWAY_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _STGRI, + {_sSI: _cSTGRR, _sm: None}, + (_TGRTI, _Fil, _MR, _DR, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_TABLE_ID, 1), + (FILTER_LIST, {_sN: _Fi, _smi: None}), + (TRANSIT_GATEWAY_MAX_RESULTS, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +TRANSIT_GATEWAY_ROUTE_LIST: StaticSchema = ( + 16, + n0, + _TGRL, + 0, + (_me,), + ((TRANSIT_GATEWAY_ROUTE, {_sN: _i}),), +) + +SEARCH_TRANSIT_GATEWAY_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _STGRO, + {_sSI: _cSTGRRo, _smit: None}, + (_Rout, _ARAd, _NTex), + ( + (TRANSIT_GATEWAY_ROUTE_LIST, {_aQN: _RSout, _sN: _rSou}), + (BOOLEAN, {_aQN: _ARAd, _sN: _aRAd}), + (STRING, {_aQN: _NTex, _sN: _nT}), + ), +) + +SEARCH_TRANSIT_GATEWAY_ROUTES: StaticOperationSchema = ( + 23, + n0, + _STGR, + 0, + SEARCH_TRANSIT_GATEWAY_ROUTES_INPUT, + SEARCH_TRANSIT_GATEWAY_ROUTES_OUTPUT, + (), +) + +SEND_DIAGNOSTIC_INTERRUPT_INPUT: StaticSchema = ( + 18, + n0, + _SDII, + {_sSI: _cSDIR, _sm: None}, + (_II, _DR), + ((INSTANCE_ID, 1), (BOOLEAN, 0)), +) + +SEND_DIAGNOSTIC_INTERRUPT_OUTPUT: StaticSchema = ( + 18, + n0, + _SDIO, + {_sSI: _sU, _smit: None}, +) + +SEND_DIAGNOSTIC_INTERRUPT: StaticOperationSchema = ( + 23, + n0, + _SDI, + 0, + SEND_DIAGNOSTIC_INTERRUPT_INPUT, + SEND_DIAGNOSTIC_INTERRUPT_OUTPUT, + (), +) + +START_DECLARATIVE_POLICIES_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _SDPRI, + {_sSI: _cSDPRR, _sm: None}, + (_DR, _SBu, _SPr, _TIa, _TSa), + ( + (BOOLEAN, 0), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + ), +) + +START_DECLARATIVE_POLICIES_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _SDPRO, + {_sSI: _cSDPRRo, _smit: None}, + (_RIep,), + ((STRING, {_aQN: _RIep, _sN: _rIe}),), +) + +START_DECLARATIVE_POLICIES_REPORT: StaticOperationSchema = ( + 23, + n0, + _SDPR, + 0, + START_DECLARATIVE_POLICIES_REPORT_INPUT, + START_DECLARATIVE_POLICIES_REPORT_OUTPUT, + (), +) + +START_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _SIIt, + {_sSI: _cSIR, _sm: None}, + (_IIn, _AId, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (STRING, {_aQN: _AId, _sN: _aId}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +INSTANCE_STATE_CHANGE: StaticSchema = ( + 18, + n0, + _ISC, + 0, + (_II, _CSu, _PSre), + ( + (STRING, {_aQN: _II, _sN: _iI}), + (INSTANCE_STATE, {_aQN: _CSu, _sN: _cSu}), + (INSTANCE_STATE, {_aQN: _PSre, _sN: _pSre}), + ), +) + +INSTANCE_STATE_CHANGE_LIST: StaticSchema = ( + 16, + n0, + _ISCL, + 0, + (_me,), + ((INSTANCE_STATE_CHANGE, {_sN: _i}),), +) + +START_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _SIO, + {_sSI: _cSIRo, _smit: None}, + (_SIt,), + ((INSTANCE_STATE_CHANGE_LIST, {_aQN: _ISnst, _sN: _iSns}),), +) + +START_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _SIta, + 0, + START_INSTANCES_INPUT, + START_INSTANCES_OUTPUT, + (), +) + +START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT: StaticSchema = ( + 18, + n0, + _SNIASAI, + {_sSI: _cSNIASAR, _sm: None}, + (_NIASI, _DR, _TSa, _CTl), + ( + (NETWORK_INSIGHTS_ACCESS_SCOPE_ID, 1), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 3), + ), +) + +START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT: StaticSchema = ( + 18, + n0, + _SNIASAO, + {_sSI: _cSNIASARo, _smit: None}, + (_NIASAe,), + ((NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, {_aQN: _NIASAe, _sN: _nIASAe}),), +) + +START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS: StaticOperationSchema = ( + 23, + n0, + _SNIASA, + 0, + START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT, + START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT, + (), +) + +START_NETWORK_INSIGHTS_ANALYSIS_INPUT: StaticSchema = ( + 18, + n0, + _SNIAI, + {_sSI: _cSNIAR, _sm: None}, + (_NIPI, _AAdd, _FIAi, _FOA, _DR, _TSa, _CTl), + ( + (NETWORK_INSIGHTS_PATH_ID, 1), + (VALUE_STRING_LIST, {_sN: _AAddi}), + (ARN_LIST, {_sN: _FIAil}), + (ARN_LIST, {_sN: _FOAil}), + (BOOLEAN, 0), + (TAG_SPECIFICATION_LIST, {_sN: _TS}), + (STRING, 3), + ), +) + +START_NETWORK_INSIGHTS_ANALYSIS_OUTPUT: StaticSchema = ( + 18, + n0, + _SNIAO, + {_sSI: _cSNIARo, _smit: None}, + (_NIAet,), + ((NETWORK_INSIGHTS_ANALYSIS, {_aQN: _NIAet, _sN: _nIA}),), +) + +START_NETWORK_INSIGHTS_ANALYSIS: StaticOperationSchema = ( + 23, + n0, + _SNIA, + 0, + START_NETWORK_INSIGHTS_ANALYSIS_INPUT, + START_NETWORK_INSIGHTS_ANALYSIS_OUTPUT, + (), +) + +START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_INPUT: StaticSchema = ( + 18, + n0, + _SVESPDVI, + {_sSI: _cSVESPDVR, _sm: None}, + (_DR, _SIe), + ((BOOLEAN, 0), (VPC_ENDPOINT_SERVICE_ID, 1)), +) + +START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _SVESPDVO, + {_sSI: _cSVESPDVRo, _smit: None}, + (_RV,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION: StaticOperationSchema = ( + 23, + n0, + _SVESPDV, + 0, + START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_INPUT, + START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_OUTPUT, + (), +) + +STOP_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _SIIto, + {_sSI: _cSIRom, _sm: None}, + (_IIn, _Hi, _SOS, _DR, _Fo), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + (BOOLEAN, {_aQN: _Fo, _sN: _for}), + ), +) + +STOP_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _SIOt, + {_sSI: _cSIRoma, _smit: None}, + (_SIto,), + ((INSTANCE_STATE_CHANGE_LIST, {_aQN: _ISnst, _sN: _iSns}),), +) + +STOP_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _SItop, + 0, + STOP_INSTANCES_INPUT, + STOP_INSTANCES_OUTPUT, + (), +) + +TERMINATE_CLIENT_VPN_CONNECTIONS_INPUT: StaticSchema = ( + 18, + n0, + _TCVCI, + {_sSI: _cTCVCR, _sm: None}, + (_CVEI, _CIon, _Use, _DR), + ((CLIENT_VPN_ENDPOINT_ID, 1), (STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +TERMINATE_CONNECTION_STATUS: StaticSchema = ( + 18, + n0, + _TCSe, + 0, + (_CIon, _PSrev, _CSur), + ( + (STRING, {_aQN: _CIon, _sN: _cIon}), + (CLIENT_VPN_CONNECTION_STATUS, {_aQN: _PSrev, _sN: _pSrev}), + (CLIENT_VPN_CONNECTION_STATUS, {_aQN: _CSur, _sN: _cSur}), + ), +) + +TERMINATE_CONNECTION_STATUS_SET: StaticSchema = ( + 16, + n0, + _TCSS, + 0, + (_me,), + ((TERMINATE_CONNECTION_STATUS, {_sN: _i}),), +) + +TERMINATE_CLIENT_VPN_CONNECTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _TCVCO, + {_sSI: _cTCVCRo, _smit: None}, + (_CVEI, _Use, _CSonn), + ( + (STRING, {_aQN: _CVEI, _sN: _cVEI}), + (STRING, {_aQN: _Use, _sN: _user}), + (TERMINATE_CONNECTION_STATUS_SET, {_aQN: _CSonn, _sN: _cSonn}), + ), +) + +TERMINATE_CLIENT_VPN_CONNECTIONS: StaticOperationSchema = ( + 23, + n0, + _TCVC, + 0, + TERMINATE_CLIENT_VPN_CONNECTIONS_INPUT, + TERMINATE_CLIENT_VPN_CONNECTIONS_OUTPUT, + (), +) + +TERMINATE_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _TIIe, + {_sSI: _cTIR, _sm: None}, + (_IIn, _Fo, _SOS, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +TERMINATE_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _TIO, + {_sSI: _cTIRo, _smit: None}, + (_TIer,), + ((INSTANCE_STATE_CHANGE_LIST, {_aQN: _ISnst, _sN: _iSns}),), +) + +TERMINATE_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _TIe, + 0, + TERMINATE_INSTANCES_INPUT, + TERMINATE_INSTANCES_OUTPUT, + (), +) + +UNASSIGN_IPV6_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _UIAI, + {_sSI: _cUIAR, _sm: None}, + (_IPp, _NII, _IAp), + ( + (IP_PREFIX_LIST, {_sN: _IPpv}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (IPV6_ADDRESS_LIST, {_aQN: _IAp, _sN: _iA}), + ), +) + +UNASSIGN_IPV6_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _UIAO, + {_sSI: _cUIARo, _smit: None}, + (_NII, _UIA, _UIPn), + ( + (STRING, {_aQN: _NII, _sN: _nII}), + (IPV6_ADDRESS_LIST, {_aQN: _UIA, _sN: _uIA}), + (IP_PREFIX_LIST, {_aQN: _UIPSn, _sN: _uIPSn}), + ), +) + +UNASSIGN_IPV6_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _UIAn, + 0, + UNASSIGN_IPV6_ADDRESSES_INPUT, + UNASSIGN_IPV6_ADDRESSES_OUTPUT, + (), +) + +UNASSIGN_PRIVATE_IP_ADDRESSES_INPUT: StaticSchema = ( + 18, + n0, + _UPIAI, + {_sSI: _cUPIAR, _sm: None}, + (_IPpvr, _NII, _PIAri), + ( + (IP_PREFIX_LIST, {_sN: _IPpvre}), + (NETWORK_INTERFACE_ID, {_aQN: _NII, _sN: _nII, _smi: None}), + (PRIVATE_IP_ADDRESS_STRING_LIST, {_aQN: _PIAr, _sN: _pIAr}), + ), +) + +UNASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT: StaticSchema = ( + 18, + n0, + _UPIAO, + {_sSI: _sU, _smit: None}, +) + +UNASSIGN_PRIVATE_IP_ADDRESSES: StaticOperationSchema = ( + 23, + n0, + _UPIA, + 0, + UNASSIGN_PRIVATE_IP_ADDRESSES_INPUT, + UNASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT, + (), +) + +UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT: StaticSchema = ( + 18, + n0, + _UPNGAI, + {_sSI: _cUPNGAR, _sm: None}, + (_NGI, _PIAri, _MDDS, _DR), + ( + (NAT_GATEWAY_ID, 1), + (IP_LIST, {_sN: _PIAr, _smi: None}), + (DRAIN_SECONDS, 0), + (BOOLEAN, 0), + ), +) + +UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _UPNGAO, + {_sSI: _cUPNGARo, _smit: None}, + (_NGI, _NGAa), + ( + (NAT_GATEWAY_ID, {_aQN: _NGI, _sN: _nGI}), + (NAT_GATEWAY_ADDRESS_LIST, {_aQN: _NGASa, _sN: _nGAS}), + ), +) + +UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS: StaticOperationSchema = ( + 23, + n0, + _UPNGA, + 0, + UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT, + UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT, + (), +) + +UNLOCK_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _USI, + {_sSI: _cUSR, _sm: None}, + (_SIn, _DR), + ((SNAPSHOT_ID, 1), (BOOLEAN, 0)), +) + +UNLOCK_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _USO, + {_sSI: _cUSRo, _smit: None}, + (_SIn,), + ((STRING, {_aQN: _SIn, _sN: _sIn}),), +) + +UNLOCK_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _USn, + 0, + UNLOCK_SNAPSHOT_INPUT, + UNLOCK_SNAPSHOT_OUTPUT, + (), +) + +UNMONITOR_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _UII, + {_sSI: _cUIR, _sm: None}, + (_IIn, _DR), + ( + (INSTANCE_ID_STRING_LIST, {_sN: _II, _smi: None}), + (BOOLEAN, {_aQN: _DR, _sN: _dRr}), + ), +) + +UNMONITOR_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _UIO, + {_sSI: _cUIRo, _smit: None}, + (_IMnst,), + ((INSTANCE_MONITORING_LIST, {_aQN: _ISnst, _sN: _iSns}),), +) + +UNMONITOR_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _UIn, + 0, + UNMONITOR_INSTANCES_INPUT, + UNMONITOR_INSTANCES_OUTPUT, + (), +) + +UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _UCMMTKI, + {_sSI: _cUCMMTKR, _sm: None}, + (_ATK, _DTK, _DR, _CTl), + ( + (VALUE_STRING_LIST, {_sN: _ATKc}), + (VALUE_STRING_LIST, {_sN: _DTKe}), + (BOOLEAN, 0), + (STRING, 2), + ), +) + +UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _UCMMTKO, + {_sSI: _cUCMMTKRo, _smit: None}, + (_CMTK,), + ((CAPACITY_MANAGER_MONITORED_TAG_KEY_LIST, {_aQN: _CMTKS, _sN: _cMTKS}),), +) + +UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS: StaticOperationSchema = ( + 23, + n0, + _UCMMTK, + 0, + UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT, + UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT, + (), +) + +UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _UCMOAI, + {_sSI: _cUCMOAR, _sm: None}, + (_OArg, _DR, _CTl), + ((BOXED_BOOLEAN, 1), (BOOLEAN, 0), (STRING, 2)), +) + +UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _UCMOAO, + {_sSI: _cUCMOARo, _smit: None}, + (_CMSa, _OArg), + ( + (CAPACITY_MANAGER_STATUS, {_aQN: _CMSa, _sN: _cMSa}), + (BOOLEAN, {_aQN: _OArg, _sN: _oArg}), + ), +) + +UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS: StaticOperationSchema = ( + 23, + n0, + _UCMOA, + 0, + UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_INPUT, + UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_OUTPUT, + (), +) + +UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT: StaticSchema = ( + 18, + n0, + _UICRAI, + {_sSI: _cUICRAR, _sm: None}, + (_CRI, _TIC, _DR, _ZSP), + ( + (CAPACITY_RESERVATION_ID, 1), + (INTEGER, 0), + (BOOLEAN, 0), + (ZERO_SIZE_PREFERENCE, 0), + ), +) + +UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UICRAO, + {_sSI: _cUICRARo, _smit: None}, + (_ICRI, _SCRI, _IC, _TIC, _Sta, _ITnt), + ( + (CAPACITY_RESERVATION_ID, {_aQN: _ICRI, _sN: _iCRI}), + (CAPACITY_RESERVATION_ID, {_aQN: _SCRI, _sN: _sCRI}), + (INTEGER, {_aQN: _IC, _sN: _iC}), + (INTEGER, {_aQN: _TIC, _sN: _tIC}), + (INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_STATUS, {_aQN: _Sta, _sN: _sta}), + (INTERRUPTION_TYPE, {_aQN: _ITnt, _sN: _iTn}), + ), +) + +UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION: StaticOperationSchema = ( + 23, + n0, + _UICRA, + 0, + UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT, + UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT, + (), +) + +SECURITY_GROUP_RULE_DESCRIPTION: StaticSchema = ( + 18, + n0, + _SGRD, + 0, + (_SGRI, _Des), + ((STRING, 0), (STRING, 0)), +) + +SECURITY_GROUP_RULE_DESCRIPTION_LIST: StaticSchema = ( + 16, + n0, + _SGRDL, + 0, + (_me,), + ((SECURITY_GROUP_RULE_DESCRIPTION, {_sN: _i}),), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_INPUT: StaticSchema = ( + 18, + n0, + _USGRDEI, + {_sSI: _cUSGRDER, _sm: None}, + (_DR, _GIr, _GN, _IPper, _SGRDe), + ( + (BOOLEAN, 0), + (SECURITY_GROUP_ID, 0), + (SECURITY_GROUP_NAME, 0), + (IP_PERMISSION_LIST, 0), + (SECURITY_GROUP_RULE_DESCRIPTION_LIST, {_sN: _SGRD}), + ), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _USGRDEO, + {_sSI: _cUSGRDERo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS: StaticOperationSchema = ( + 23, + n0, + _USGRDE, + 0, + UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_INPUT, + UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_OUTPUT, + (), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _USGRDII, + {_sSI: _cUSGRDIR, _sm: None}, + (_DR, _GIr, _GN, _IPper, _SGRDe), + ( + (BOOLEAN, 0), + (SECURITY_GROUP_ID, 0), + (SECURITY_GROUP_NAME, 0), + (IP_PERMISSION_LIST, 0), + (SECURITY_GROUP_RULE_DESCRIPTION_LIST, {_sN: _SGRD}), + ), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _USGRDIO, + {_sSI: _cUSGRDIRo, _smit: None}, + (_R,), + ((BOOLEAN, {_aQN: _R, _sN: _r}),), +) + +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS: StaticOperationSchema = ( + 23, + n0, + _USGRDI, + 0, + UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_INPUT, + UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_OUTPUT, + (), +) + +VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_INPUT: StaticSchema = ( + 18, + n0, + _VSGQFII, + {_sSI: _cVSGQFIR, _sm: None}, + (_SGIe, _DR), + ((SECURITY_GROUP_ID_LIST, {_sN: _SGI, _smi: None}), (BOOLEAN, 0)), +) + +VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_OUTPUT: StaticSchema = ( + 18, + n0, + _VSGQFIO, + {_sSI: _cVSGQFIRo, _smit: None}, + (_Vali,), + ((BOOLEAN, {_aQN: _Vali, _sN: _val}),), +) + +VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE: StaticOperationSchema = ( + 23, + n0, + _VSGQFI, + 0, + VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_INPUT, + VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_OUTPUT, + (), +) + +WITHDRAW_BYOIP_CIDR_INPUT: StaticSchema = ( + 18, + n0, + _WBCI, + {_sSI: _cWBCR, _sm: None}, + (_Ci, _DR), + ((STRING, 1), (BOOLEAN, 0)), +) + +WITHDRAW_BYOIP_CIDR_OUTPUT: StaticSchema = ( + 18, + n0, + _WBCO, + {_sSI: _cWBCRo, _smit: None}, + (_BC,), + ((BYOIP_CIDR, {_aQN: _BC, _sN: _bC}),), +) + +WITHDRAW_BYOIP_CIDR: StaticOperationSchema = ( + 23, + n0, + _WBC, + 0, + WITHDRAW_BYOIP_CIDR_INPUT, + WITHDRAW_BYOIP_CIDR_OUTPUT, + (), +) + +AMAZON_EC2: StaticSchema = ( + 21, + n0, + _AECm, + { + _aw: MappingProxyType({"name": "ec2"}), + _aQ: None, + _awsa: MappingProxyType( + { + "sdkId": "EC2", + "arnNamespace": "ec2", + "cloudFormationName": "EC2", + "cloudTrailEventSource": "ec2.amazonaws.com", + "endpointPrefix": "ec2", + } + ), + _sNm: MappingProxyType({"uri": "http://ec2.amazonaws.com/doc/2016-11-15"}), + }, +) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/__init__.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/__init__.py new file mode 100644 index 00000000..6531d7f0 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncEC2Client + from .config import AsyncEC2Config + +__all__ = ["AsyncEC2Client", "AsyncEC2Config"] + +_EXPORTS = {"AsyncEC2Client": ".client", "AsyncEC2Config": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/client.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/client.py new file mode 100644 index 00000000..0b856dcd --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/client.py @@ -0,0 +1,25724 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncEC2Config, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AcceptAddressTransferInput, + AcceptAddressTransferOutput, + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + AcceptVpcPeeringConnectionInput, + AcceptVpcPeeringConnectionOutput, + AdvertiseByoipCidrInput, + AdvertiseByoipCidrOutput, + AllocateAddressInput, + AllocateAddressOutput, + AllocateHostsInput, + AllocateHostsOutput, + AllocateIpamPoolCidrInput, + AllocateIpamPoolCidrOutput, + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + AssignIpv6AddressesInput, + AssignIpv6AddressesOutput, + AssignPrivateIpAddressesInput, + AssignPrivateIpAddressesOutput, + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + AssociateAddressInput, + AssociateAddressOutput, + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + AssociateDhcpOptionsInput, + AssociateDhcpOptionsOutput, + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + AssociateIpamByoasnInput, + AssociateIpamByoasnOutput, + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + AssociateNatGatewayAddressInput, + AssociateNatGatewayAddressOutput, + AssociateRouteServerInput, + AssociateRouteServerOutput, + AssociateRouteTableInput, + AssociateRouteTableOutput, + AssociateSecurityGroupVpcInput, + AssociateSecurityGroupVpcOutput, + AssociateSubnetCidrBlockInput, + AssociateSubnetCidrBlockOutput, + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + AssociateTrunkInterfaceInput, + AssociateTrunkInterfaceOutput, + AssociateVpcCidrBlockInput, + AssociateVpcCidrBlockOutput, + AttachClassicLinkVpcInput, + AttachClassicLinkVpcOutput, + AttachImageWatermarkInput, + AttachImageWatermarkOutput, + AttachInternetGatewayInput, + AttachInternetGatewayOutput, + AttachNetworkInterfaceInput, + AttachNetworkInterfaceOutput, + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + AttachVolumeInput, + AttachVolumeOutput, + AttachVpnGatewayInput, + AttachVpnGatewayOutput, + AuthorizeClientVpnIngressInput, + AuthorizeClientVpnIngressOutput, + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + BundleInstanceInput, + BundleInstanceOutput, + CancelBundleTaskInput, + CancelBundleTaskOutput, + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + CancelCapacityReservationInput, + CancelCapacityReservationOutput, + CancelConversionTaskInput, + CancelConversionTaskOutput, + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + CancelImportTaskInput, + CancelImportTaskOutput, + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + CancelSpotFleetRequestsInput, + CancelSpotFleetRequestsOutput, + CancelSpotInstanceRequestsInput, + CancelSpotInstanceRequestsOutput, + ConfirmProductInstanceInput, + ConfirmProductInstanceOutput, + CopyFpgaImageInput, + CopyFpgaImageOutput, + CopyImageInput, + CopyImageOutput, + CopySnapshotInput, + CopySnapshotOutput, + CopyVolumesInput, + CopyVolumesOutput, + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + CreateCapacityReservationInput, + CreateCapacityReservationOutput, + CreateCarrierGatewayInput, + CreateCarrierGatewayOutput, + CreateClientVpnEndpointInput, + CreateClientVpnEndpointOutput, + CreateClientVpnRouteInput, + CreateClientVpnRouteOutput, + CreateCoipCidrInput, + CreateCoipCidrOutput, + CreateCoipPoolInput, + CreateCoipPoolOutput, + CreateCustomerGatewayInput, + CreateCustomerGatewayOutput, + CreateDefaultSubnetInput, + CreateDefaultSubnetOutput, + CreateDefaultVpcInput, + CreateDefaultVpcOutput, + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + CreateDhcpOptionsInput, + CreateDhcpOptionsOutput, + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + CreateFleetInput, + CreateFleetOutput, + CreateFlowLogsInput, + CreateFlowLogsOutput, + CreateFpgaImageInput, + CreateFpgaImageOutput, + CreateImageInput, + CreateImageOutput, + CreateImageUsageReportInput, + CreateImageUsageReportOutput, + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + CreateInstanceEventWindowInput, + CreateInstanceEventWindowOutput, + CreateInstanceExportTaskInput, + CreateInstanceExportTaskOutput, + CreateInternetGatewayInput, + CreateInternetGatewayOutput, + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + CreateIpamInput, + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + CreateIpamOutput, + CreateIpamPolicyInput, + CreateIpamPolicyOutput, + CreateIpamPoolInput, + CreateIpamPoolOutput, + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + CreateIpamScopeInput, + CreateIpamScopeOutput, + CreateKeyPairInput, + CreateKeyPairOutput, + CreateLaunchTemplateInput, + CreateLaunchTemplateOutput, + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + CreateLocalGatewayRouteInput, + CreateLocalGatewayRouteOutput, + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + CreateManagedPrefixListInput, + CreateManagedPrefixListOutput, + CreateNatGatewayInput, + CreateNatGatewayOutput, + CreateNetworkAclEntryInput, + CreateNetworkAclEntryOutput, + CreateNetworkAclInput, + CreateNetworkAclOutput, + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + CreateNetworkInsightsPathInput, + CreateNetworkInsightsPathOutput, + CreateNetworkInterfaceInput, + CreateNetworkInterfaceOutput, + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + CreatePlacementGroupInput, + CreatePlacementGroupOutput, + CreatePublicIpv4PoolInput, + CreatePublicIpv4PoolOutput, + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + CreateRestoreImageTaskInput, + CreateRestoreImageTaskOutput, + CreateRouteInput, + CreateRouteOutput, + CreateRouteServerEndpointInput, + CreateRouteServerEndpointOutput, + CreateRouteServerInput, + CreateRouteServerOutput, + CreateRouteServerPeerInput, + CreateRouteServerPeerOutput, + CreateRouteTableInput, + CreateRouteTableOutput, + CreateSecondaryNetworkInput, + CreateSecondaryNetworkOutput, + CreateSecondarySubnetInput, + CreateSecondarySubnetOutput, + CreateSecurityGroupInput, + CreateSecurityGroupOutput, + CreateSnapshotInput, + CreateSnapshotOutput, + CreateSnapshotsInput, + CreateSnapshotsOutput, + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + CreateStoreImageTaskInput, + CreateStoreImageTaskOutput, + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + CreateSubnetInput, + CreateSubnetOutput, + CreateTagsInput, + CreateTagsOutput, + CreateTrafficMirrorFilterInput, + CreateTrafficMirrorFilterOutput, + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + CreateTrafficMirrorSessionInput, + CreateTrafficMirrorSessionOutput, + CreateTrafficMirrorTargetInput, + CreateTrafficMirrorTargetOutput, + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + CreateTransitGatewayInput, + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + CreateTransitGatewayOutput, + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + CreateTransitGatewayRouteInput, + CreateTransitGatewayRouteOutput, + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + CreateVerifiedAccessGroupInput, + CreateVerifiedAccessGroupOutput, + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + CreateVolumeInput, + CreateVolumeOutput, + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + CreateVpcEncryptionControlInput, + CreateVpcEncryptionControlOutput, + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + CreateVpcEndpointInput, + CreateVpcEndpointOutput, + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + CreateVpcInput, + CreateVpcOutput, + CreateVpcPeeringConnectionInput, + CreateVpcPeeringConnectionOutput, + CreateVpnConcentratorInput, + CreateVpnConcentratorOutput, + CreateVpnConnectionInput, + CreateVpnConnectionOutput, + CreateVpnConnectionRouteInput, + CreateVpnConnectionRouteOutput, + CreateVpnGatewayInput, + CreateVpnGatewayOutput, + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + DeleteCarrierGatewayInput, + DeleteCarrierGatewayOutput, + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + DeleteClientVpnEndpointInput, + DeleteClientVpnEndpointOutput, + DeleteClientVpnRouteInput, + DeleteClientVpnRouteOutput, + DeleteCoipCidrInput, + DeleteCoipCidrOutput, + DeleteCoipPoolInput, + DeleteCoipPoolOutput, + DeleteCustomerGatewayInput, + DeleteCustomerGatewayOutput, + DeleteDhcpOptionsInput, + DeleteDhcpOptionsOutput, + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + DeleteFleetsInput, + DeleteFleetsOutput, + DeleteFlowLogsInput, + DeleteFlowLogsOutput, + DeleteFpgaImageInput, + DeleteFpgaImageOutput, + DeleteImageUsageReportInput, + DeleteImageUsageReportOutput, + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + DeleteInstanceEventWindowInput, + DeleteInstanceEventWindowOutput, + DeleteInternetGatewayInput, + DeleteInternetGatewayOutput, + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + DeleteIpamInput, + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + DeleteIpamOutput, + DeleteIpamPolicyInput, + DeleteIpamPolicyOutput, + DeleteIpamPoolInput, + DeleteIpamPoolOutput, + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + DeleteIpamScopeInput, + DeleteIpamScopeOutput, + DeleteKeyPairInput, + DeleteKeyPairOutput, + DeleteLaunchTemplateInput, + DeleteLaunchTemplateOutput, + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + DeleteLocalGatewayRouteInput, + DeleteLocalGatewayRouteOutput, + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + DeleteManagedPrefixListInput, + DeleteManagedPrefixListOutput, + DeleteNatGatewayInput, + DeleteNatGatewayOutput, + DeleteNetworkAclEntryInput, + DeleteNetworkAclEntryOutput, + DeleteNetworkAclInput, + DeleteNetworkAclOutput, + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + DeleteNetworkInsightsPathInput, + DeleteNetworkInsightsPathOutput, + DeleteNetworkInterfaceInput, + DeleteNetworkInterfaceOutput, + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + DeletePlacementGroupInput, + DeletePlacementGroupOutput, + DeletePublicIpv4PoolInput, + DeletePublicIpv4PoolOutput, + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + DeleteRouteInput, + DeleteRouteOutput, + DeleteRouteServerEndpointInput, + DeleteRouteServerEndpointOutput, + DeleteRouteServerInput, + DeleteRouteServerOutput, + DeleteRouteServerPeerInput, + DeleteRouteServerPeerOutput, + DeleteRouteTableInput, + DeleteRouteTableOutput, + DeleteSecondaryNetworkInput, + DeleteSecondaryNetworkOutput, + DeleteSecondarySubnetInput, + DeleteSecondarySubnetOutput, + DeleteSecurityGroupInput, + DeleteSecurityGroupOutput, + DeleteSnapshotInput, + DeleteSnapshotOutput, + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + DeleteSubnetInput, + DeleteSubnetOutput, + DeleteTagsInput, + DeleteTagsOutput, + DeleteTrafficMirrorFilterInput, + DeleteTrafficMirrorFilterOutput, + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + DeleteTrafficMirrorSessionInput, + DeleteTrafficMirrorSessionOutput, + DeleteTrafficMirrorTargetInput, + DeleteTrafficMirrorTargetOutput, + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + DeleteTransitGatewayInput, + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + DeleteTransitGatewayOutput, + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + DeleteTransitGatewayRouteInput, + DeleteTransitGatewayRouteOutput, + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + DeleteVerifiedAccessGroupInput, + DeleteVerifiedAccessGroupOutput, + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + DeleteVolumeInput, + DeleteVolumeOutput, + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + DeleteVpcEncryptionControlInput, + DeleteVpcEncryptionControlOutput, + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + DeleteVpcEndpointsInput, + DeleteVpcEndpointsOutput, + DeleteVpcInput, + DeleteVpcOutput, + DeleteVpcPeeringConnectionInput, + DeleteVpcPeeringConnectionOutput, + DeleteVpnConcentratorInput, + DeleteVpnConcentratorOutput, + DeleteVpnConnectionInput, + DeleteVpnConnectionOutput, + DeleteVpnConnectionRouteInput, + DeleteVpnConnectionRouteOutput, + DeleteVpnGatewayInput, + DeleteVpnGatewayOutput, + DeprovisionByoipCidrInput, + DeprovisionByoipCidrOutput, + DeprovisionIpamByoasnInput, + DeprovisionIpamByoasnOutput, + DeprovisionIpamPoolCidrInput, + DeprovisionIpamPoolCidrOutput, + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + DeregisterImageInput, + DeregisterImageOutput, + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + DescribeAddressTransfersInput, + DescribeAddressTransfersOutput, + DescribeAddressesAttributeInput, + DescribeAddressesAttributeOutput, + DescribeAddressesInput, + DescribeAddressesOutput, + DescribeAggregateIdFormatInput, + DescribeAggregateIdFormatOutput, + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + DescribeApplicationStatusInput, + DescribeApplicationStatusOutput, + DescribeAvailabilityZonesInput, + DescribeAvailabilityZonesOutput, + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + DescribeBundleTasksInput, + DescribeBundleTasksOutput, + DescribeByoipCidrsInput, + DescribeByoipCidrsOutput, + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + DescribeCapacityBlocksInput, + DescribeCapacityBlocksOutput, + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + DescribeCarrierGatewaysInput, + DescribeCarrierGatewaysOutput, + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + DescribeClientVpnEndpointsInput, + DescribeClientVpnEndpointsOutput, + DescribeClientVpnRoutesInput, + DescribeClientVpnRoutesOutput, + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + DescribeCoipPoolsInput, + DescribeCoipPoolsOutput, + DescribeConversionTasksInput, + DescribeConversionTasksOutput, + DescribeCustomerGatewaysInput, + DescribeCustomerGatewaysOutput, + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + DescribeDhcpOptionsInput, + DescribeDhcpOptionsOutput, + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + DescribeElasticGpusInput, + DescribeElasticGpusOutput, + DescribeExportImageTasksInput, + DescribeExportImageTasksOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeFastLaunchImagesInput, + DescribeFastLaunchImagesOutput, + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + DescribeFleetHistoryInput, + DescribeFleetHistoryOutput, + DescribeFleetInstancesInput, + DescribeFleetInstancesOutput, + DescribeFleetsInput, + DescribeFleetsOutput, + DescribeFlowLogsInput, + DescribeFlowLogsOutput, + DescribeFpgaImageAttributeInput, + DescribeFpgaImageAttributeOutput, + DescribeFpgaImagesInput, + DescribeFpgaImagesOutput, + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + DescribeHostReservationsInput, + DescribeHostReservationsOutput, + DescribeHostsInput, + DescribeHostsOutput, + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + DescribeIdFormatInput, + DescribeIdFormatOutput, + DescribeIdentityIdFormatInput, + DescribeIdentityIdFormatOutput, + DescribeImageAttributeInput, + DescribeImageAttributeOutput, + DescribeImageReferencesInput, + DescribeImageReferencesOutput, + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + DescribeImageUsageReportsInput, + DescribeImageUsageReportsOutput, + DescribeImagesInput, + DescribeImagesOutput, + DescribeImportImageTasksInput, + DescribeImportImageTasksOutput, + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + DescribeInstanceAttributeInput, + DescribeInstanceAttributeOutput, + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + DescribeInstanceStatusInput, + DescribeInstanceStatusOutput, + DescribeInstanceTopologyInput, + DescribeInstanceTopologyOutput, + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + DescribeInstanceTypesInput, + DescribeInstanceTypesOutput, + DescribeInstancesInput, + DescribeInstancesOutput, + DescribeInternetGatewaysInput, + DescribeInternetGatewaysOutput, + DescribeIpamByoasnInput, + DescribeIpamByoasnOutput, + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + DescribeIpamPoliciesInput, + DescribeIpamPoliciesOutput, + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + DescribeIpamPoolsInput, + DescribeIpamPoolsOutput, + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + DescribeIpamScopesInput, + DescribeIpamScopesOutput, + DescribeIpamsInput, + DescribeIpamsOutput, + DescribeIpv6PoolsInput, + DescribeIpv6PoolsOutput, + DescribeKeyPairsInput, + DescribeKeyPairsOutput, + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + DescribeLaunchTemplatesInput, + DescribeLaunchTemplatesOutput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + DescribeLocalGatewaysInput, + DescribeLocalGatewaysOutput, + DescribeLockedSnapshotsInput, + DescribeLockedSnapshotsOutput, + DescribeMacHostsInput, + DescribeMacHostsOutput, + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + DescribeManagedPrefixListsInput, + DescribeManagedPrefixListsOutput, + DescribeMovingAddressesInput, + DescribeMovingAddressesOutput, + DescribeNatGatewaysInput, + DescribeNatGatewaysOutput, + DescribeNetworkAclsInput, + DescribeNetworkAclsOutput, + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + DescribeNetworkInterfacesInput, + DescribeNetworkInterfacesOutput, + DescribeOutpostLagsInput, + DescribeOutpostLagsOutput, + DescribePlacementGroupsInput, + DescribePlacementGroupsOutput, + DescribePrefixListsInput, + DescribePrefixListsOutput, + DescribePrincipalIdFormatInput, + DescribePrincipalIdFormatOutput, + DescribePublicIpv4PoolsInput, + DescribePublicIpv4PoolsOutput, + DescribeRegionsInput, + DescribeRegionsOutput, + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + DescribeReservedInstancesInput, + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + DescribeReservedInstancesOutput, + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + DescribeRouteServerPeersInput, + DescribeRouteServerPeersOutput, + DescribeRouteServersInput, + DescribeRouteServersOutput, + DescribeRouteTablesInput, + DescribeRouteTablesOutput, + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + DescribeScheduledInstancesInput, + DescribeScheduledInstancesOutput, + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + DescribeSecondaryNetworksInput, + DescribeSecondaryNetworksOutput, + DescribeSecondarySubnetsInput, + DescribeSecondarySubnetsOutput, + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + DescribeSecurityGroupRulesInput, + DescribeSecurityGroupRulesOutput, + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + DescribeSecurityGroupsInput, + DescribeSecurityGroupsOutput, + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + DescribeSnapshotAttributeInput, + DescribeSnapshotAttributeOutput, + DescribeSnapshotTierStatusInput, + DescribeSnapshotTierStatusOutput, + DescribeSnapshotsInput, + DescribeSnapshotsOutput, + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + DescribeSpotFleetInstancesInput, + DescribeSpotFleetInstancesOutput, + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + DescribeSpotFleetRequestsInput, + DescribeSpotFleetRequestsOutput, + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + DescribeSpotPriceHistoryInput, + DescribeSpotPriceHistoryOutput, + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + DescribeStoreImageTasksInput, + DescribeStoreImageTasksOutput, + DescribeSubnetsInput, + DescribeSubnetsOutput, + DescribeTagsInput, + DescribeTagsOutput, + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + DescribeTransitGatewaysInput, + DescribeTransitGatewaysOutput, + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + DescribeVolumeAttributeInput, + DescribeVolumeAttributeOutput, + DescribeVolumeStatusInput, + DescribeVolumeStatusOutput, + DescribeVolumesInput, + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + DescribeVolumesOutput, + DescribeVpcAttributeInput, + DescribeVpcAttributeOutput, + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + DescribeVpcClassicLinkInput, + DescribeVpcClassicLinkOutput, + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + DescribeVpcEndpointsInput, + DescribeVpcEndpointsOutput, + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + DescribeVpcsInput, + DescribeVpcsOutput, + DescribeVpnConcentratorsInput, + DescribeVpnConcentratorsOutput, + DescribeVpnConnectionsInput, + DescribeVpnConnectionsOutput, + DescribeVpnGatewaysInput, + DescribeVpnGatewaysOutput, + DetachClassicLinkVpcInput, + DetachClassicLinkVpcOutput, + DetachImageWatermarkInput, + DetachImageWatermarkOutput, + DetachInternetGatewayInput, + DetachInternetGatewayOutput, + DetachNetworkInterfaceInput, + DetachNetworkInterfaceOutput, + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + DetachVolumeInput, + DetachVolumeOutput, + DetachVpnGatewayInput, + DetachVpnGatewayOutput, + DisableAddressTransferInput, + DisableAddressTransferOutput, + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + DisableCapacityManagerInput, + DisableCapacityManagerOutput, + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + DisableFastLaunchInput, + DisableFastLaunchOutput, + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + DisableImageDeprecationInput, + DisableImageDeprecationOutput, + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + DisableImageInput, + DisableImageOutput, + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + DisableIpamPolicyInput, + DisableIpamPolicyOutput, + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + DisableSerialConsoleAccessInput, + DisableSerialConsoleAccessOutput, + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + DisableVgwRoutePropagationInput, + DisableVgwRoutePropagationOutput, + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + DisableVpcClassicLinkInput, + DisableVpcClassicLinkOutput, + DisassociateAddressInput, + DisassociateAddressOutput, + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + DisassociateIpamByoasnInput, + DisassociateIpamByoasnOutput, + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + DisassociateRouteServerInput, + DisassociateRouteServerOutput, + DisassociateRouteTableInput, + DisassociateRouteTableOutput, + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + DisassociateTrunkInterfaceInput, + DisassociateTrunkInterfaceOutput, + DisassociateVpcCidrBlockInput, + DisassociateVpcCidrBlockOutput, + EnableAddressTransferInput, + EnableAddressTransferOutput, + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + EnableCapacityManagerInput, + EnableCapacityManagerOutput, + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + EnableFastLaunchInput, + EnableFastLaunchOutput, + EnableFastSnapshotRestoresInput, + EnableFastSnapshotRestoresOutput, + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + EnableImageDeprecationInput, + EnableImageDeprecationOutput, + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + EnableImageInput, + EnableImageOutput, + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + EnableIpamPolicyInput, + EnableIpamPolicyOutput, + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + EnableSerialConsoleAccessInput, + EnableSerialConsoleAccessOutput, + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + EnableVgwRoutePropagationInput, + EnableVgwRoutePropagationOutput, + EnableVolumeIOInput, + EnableVolumeIOOutput, + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + EnableVpcClassicLinkInput, + EnableVpcClassicLinkOutput, + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + ExportImageInput, + ExportImageOutput, + ExportTransitGatewayRoutesInput, + ExportTransitGatewayRoutesOutput, + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + GetActiveVpnTunnelStatusInput, + GetActiveVpnTunnelStatusOutput, + GetAllowedImagesSettingsInput, + GetAllowedImagesSettingsOutput, + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + GetAssociatedIpv6PoolCidrsInput, + GetAssociatedIpv6PoolCidrsOutput, + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + GetCoipPoolUsageInput, + GetCoipPoolUsageOutput, + GetConsoleOutputInput, + GetConsoleOutputOutput, + GetConsoleScreenshotInput, + GetConsoleScreenshotOutput, + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + GetEbsDefaultKmsKeyIdInput, + GetEbsDefaultKmsKeyIdOutput, + GetEbsEncryptionByDefaultInput, + GetEbsEncryptionByDefaultOutput, + GetEnabledIpamPolicyInput, + GetEnabledIpamPolicyOutput, + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + GetImageAncestryInput, + GetImageAncestryOutput, + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + GetImageFindingsInput, + GetImageFindingsOutput, + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + GetInstanceTpmEkPubInput, + GetInstanceTpmEkPubOutput, + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + GetInstanceUefiDataInput, + GetInstanceUefiDataOutput, + GetIpamAddressHistoryInput, + GetIpamAddressHistoryOutput, + GetIpamDiscoveredAccountsInput, + GetIpamDiscoveredAccountsOutput, + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + GetIpamDiscoveredRoutesInput, + GetIpamDiscoveredRoutesOutput, + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + GetIpamPoolAllocationsInput, + GetIpamPoolAllocationsOutput, + GetIpamPoolCidrsInput, + GetIpamPoolCidrsOutput, + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + GetIpamResourceCidrsInput, + GetIpamResourceCidrsOutput, + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + GetLaunchTemplateDataInput, + GetLaunchTemplateDataOutput, + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + GetPasswordDataInput, + GetPasswordDataOutput, + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + GetRouteServerAssociationsInput, + GetRouteServerAssociationsOutput, + GetRouteServerPropagationsInput, + GetRouteServerPropagationsOutput, + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + GetSecurityGroupsForVpcInput, + GetSecurityGroupsForVpcOutput, + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + GetSpotPlacementScoresInput, + GetSpotPlacementScoresOutput, + GetSubnetCidrReservationsInput, + GetSubnetCidrReservationsOutput, + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + ImportImageInput, + ImportImageOutput, + ImportInstanceInput, + ImportInstanceOutput, + ImportKeyPairInput, + ImportKeyPairOutput, + ImportSnapshotInput, + ImportSnapshotOutput, + ImportVolumeInput, + ImportVolumeOutput, + ListImagesInRecycleBinInput, + ListImagesInRecycleBinOutput, + ListSnapshotsInRecycleBinInput, + ListSnapshotsInRecycleBinOutput, + ListVolumesInRecycleBinInput, + ListVolumesInRecycleBinOutput, + LockSnapshotInput, + LockSnapshotOutput, + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + ModifyAddressAttributeInput, + ModifyAddressAttributeOutput, + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + ModifyCapacityReservationInput, + ModifyCapacityReservationOutput, + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + ModifyClientVpnEndpointInput, + ModifyClientVpnEndpointOutput, + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + ModifyEbsDefaultKmsKeyIdInput, + ModifyEbsDefaultKmsKeyIdOutput, + ModifyFleetInput, + ModifyFleetOutput, + ModifyFpgaImageAttributeInput, + ModifyFpgaImageAttributeOutput, + ModifyHostsInput, + ModifyHostsOutput, + ModifyIdFormatInput, + ModifyIdFormatOutput, + ModifyIdentityIdFormatInput, + ModifyIdentityIdFormatOutput, + ModifyImageAttributeInput, + ModifyImageAttributeOutput, + ModifyInstanceAttributeInput, + ModifyInstanceAttributeOutput, + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + ModifyInstanceCpuOptionsInput, + ModifyInstanceCpuOptionsOutput, + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + ModifyInstanceEventWindowInput, + ModifyInstanceEventWindowOutput, + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + ModifyInstancePlacementInput, + ModifyInstancePlacementOutput, + ModifyIpamInput, + ModifyIpamOutput, + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + ModifyIpamPoolAllocationInput, + ModifyIpamPoolAllocationOutput, + ModifyIpamPoolInput, + ModifyIpamPoolOutput, + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + ModifyIpamResourceCidrInput, + ModifyIpamResourceCidrOutput, + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + ModifyIpamScopeInput, + ModifyIpamScopeOutput, + ModifyLaunchTemplateInput, + ModifyLaunchTemplateOutput, + ModifyLocalGatewayRouteInput, + ModifyLocalGatewayRouteOutput, + ModifyManagedPrefixListInput, + ModifyManagedPrefixListOutput, + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + ModifyReservedInstancesInput, + ModifyReservedInstancesOutput, + ModifyRouteServerInput, + ModifyRouteServerOutput, + ModifySecurityGroupRulesInput, + ModifySecurityGroupRulesOutput, + ModifySnapshotAttributeInput, + ModifySnapshotAttributeOutput, + ModifySnapshotTierInput, + ModifySnapshotTierOutput, + ModifySpotFleetRequestInput, + ModifySpotFleetRequestOutput, + ModifySubnetAttributeInput, + ModifySubnetAttributeOutput, + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + ModifyTrafficMirrorSessionInput, + ModifyTrafficMirrorSessionOutput, + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + ModifyTransitGatewayInput, + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + ModifyTransitGatewayOutput, + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + ModifyVerifiedAccessGroupInput, + ModifyVerifiedAccessGroupOutput, + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + ModifyVerifiedAccessInstanceOutput, + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + ModifyVolumeAttributeInput, + ModifyVolumeAttributeOutput, + ModifyVolumeInput, + ModifyVolumeOutput, + ModifyVpcAttributeInput, + ModifyVpcAttributeOutput, + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + ModifyVpcEncryptionControlInput, + ModifyVpcEncryptionControlOutput, + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + ModifyVpcEndpointInput, + ModifyVpcEndpointOutput, + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + ModifyVpcTenancyInput, + ModifyVpcTenancyOutput, + ModifyVpnConnectionInput, + ModifyVpnConnectionOptionsInput, + ModifyVpnConnectionOptionsOutput, + ModifyVpnConnectionOutput, + ModifyVpnTunnelCertificateInput, + ModifyVpnTunnelCertificateOutput, + ModifyVpnTunnelOptionsInput, + ModifyVpnTunnelOptionsOutput, + MonitorInstancesInput, + MonitorInstancesOutput, + MoveAddressToVpcInput, + MoveAddressToVpcOutput, + MoveByoipCidrToIpamInput, + MoveByoipCidrToIpamOutput, + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + ProvisionByoipCidrInput, + ProvisionByoipCidrOutput, + ProvisionIpamByoasnInput, + ProvisionIpamByoasnOutput, + ProvisionIpamPoolCidrInput, + ProvisionIpamPoolCidrOutput, + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + PurchaseCapacityBlockInput, + PurchaseCapacityBlockOutput, + PurchaseHostReservationInput, + PurchaseHostReservationOutput, + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + PurchaseScheduledInstancesInput, + PurchaseScheduledInstancesOutput, + RebootInstancesInput, + RebootInstancesOutput, + RegisterImageInput, + RegisterImageOutput, + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + RejectVpcPeeringConnectionInput, + RejectVpcPeeringConnectionOutput, + ReleaseAddressInput, + ReleaseAddressOutput, + ReleaseHostsInput, + ReleaseHostsOutput, + ReleaseIpamPoolAllocationInput, + ReleaseIpamPoolAllocationOutput, + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + ReplaceNetworkAclEntryInput, + ReplaceNetworkAclEntryOutput, + ReplaceRouteInput, + ReplaceRouteOutput, + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + ReplaceTransitGatewayRouteInput, + ReplaceTransitGatewayRouteOutput, + ReplaceVpnTunnelInput, + ReplaceVpnTunnelOutput, + ReportInstanceStatusInput, + ReportInstanceStatusOutput, + RequestSpotFleetInput, + RequestSpotFleetOutput, + RequestSpotInstancesInput, + RequestSpotInstancesOutput, + ResetAddressAttributeInput, + ResetAddressAttributeOutput, + ResetEbsDefaultKmsKeyIdInput, + ResetEbsDefaultKmsKeyIdOutput, + ResetFpgaImageAttributeInput, + ResetFpgaImageAttributeOutput, + ResetImageAttributeInput, + ResetImageAttributeOutput, + ResetInstanceAttributeInput, + ResetInstanceAttributeOutput, + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + ResetSnapshotAttributeInput, + ResetSnapshotAttributeOutput, + RestoreAddressToClassicInput, + RestoreAddressToClassicOutput, + RestoreImageFromRecycleBinInput, + RestoreImageFromRecycleBinOutput, + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + RestoreSnapshotTierInput, + RestoreSnapshotTierOutput, + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + RevokeClientVpnIngressInput, + RevokeClientVpnIngressOutput, + RevokeSecurityGroupEgressInput, + RevokeSecurityGroupEgressOutput, + RevokeSecurityGroupIngressInput, + RevokeSecurityGroupIngressOutput, + RunInstancesInput, + RunInstancesOutput, + RunScheduledInstancesInput, + RunScheduledInstancesOutput, + SearchLocalGatewayRoutesInput, + SearchLocalGatewayRoutesOutput, + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + SearchTransitGatewayRoutesInput, + SearchTransitGatewayRoutesOutput, + SendDiagnosticInterruptInput, + SendDiagnosticInterruptOutput, + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + StartInstancesInput, + StartInstancesOutput, + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + StopInstancesInput, + StopInstancesOutput, + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + TerminateInstancesInput, + TerminateInstancesOutput, + UnassignIpv6AddressesInput, + UnassignIpv6AddressesOutput, + UnassignPrivateIpAddressesInput, + UnassignPrivateIpAddressesOutput, + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + UnlockSnapshotInput, + UnlockSnapshotOutput, + UnmonitorInstancesInput, + UnmonitorInstancesOutput, + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + WithdrawByoipCidrInput, + WithdrawByoipCidrOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncEC2Client(AsyncClient[AsyncEC2Config]): + """ + This is the *Amazon EC2 API Reference*. It provides descriptions, API + request parameters, and the XML response for each of the Amazon EC2 + Query API actions. Note that the Amazon EC2 API includes actions for + Amazon EC2 plus additional services, such as Amazon EBS and Amazon VPC. + + **Learn more** + + - To learn about using the Query API, see [Using the API for Amazon + EC2](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-low-level-api.html). + + - To learn about the permissions required to call an Amazon EC2 API + action, see [Actions, resources, and condition keys for Amazon + EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). + + - To get the list of API actions by service and resource, see [Actions + by + service](https://docs.aws.amazon.com/ec2/latest/devguide/OperationList-query.html). + + - To get the alphabetical list of API actions, see . + + - To get descriptions of the API error codes, see [Error codes for the + Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/errors-overview.html). + + Alternatively, use one of the following methods to access the Amazon EC2 + API, instead of using the Query API directly: + + - [Amazon Web Services CLI Command Reference - ec2 + commands](https://docs.aws.amazon.com/cli/latest/reference/ec2/) + + - [CloudFormation - Amazon EC2 resource type + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_EC2.html) + + - [Amazon Web Services Tools for PowerShell Cmdlet Reference - Amazon + EC2 + cmdlets](https://docs.aws.amazon.com/powershell/v5/reference/items/EC2_cmdlets.html) + + - [Amazon Web Services SDKs](https://builder.aws.com/build/tools) + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def accept_address_transfer( + self, input: AcceptAddressTransferInput, plugins: list[Plugin] | None = None + ) -> AcceptAddressTransferOutput: + """ + Accepts an Elastic IP address transfer. For more information, see + [Accept a transferred Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#using-instance-addressing-eips-transfer-accept) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AcceptAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptAddressTransferOutput`. + """ + return await self._invoke(input, _models.ACCEPT_ADDRESS_TRANSFER, [], plugins) + + async def accept_capacity_reservation_billing_ownership( + self, + input: AcceptCapacityReservationBillingOwnershipInput, + plugins: list[Plugin] | None = None, + ) -> AcceptCapacityReservationBillingOwnershipOutput: + """ + Accepts a request to assign billing of the available capacity of a + shared Capacity Reservation to your account. For more information, see + [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `AcceptCapacityReservationBillingOwnershipInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptCapacityReservationBillingOwnershipOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP, [], plugins + ) + + async def accept_reserved_instances_exchange_quote( + self, + input: AcceptReservedInstancesExchangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> AcceptReservedInstancesExchangeQuoteOutput: + """ + Accepts the Convertible Reserved Instance exchange quote described in + the GetReservedInstancesExchangeQuote call. + + Args: + input: + An instance of `AcceptReservedInstancesExchangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptReservedInstancesExchangeQuoteOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE, [], plugins + ) + + async def accept_transit_gateway_client_vpn_attachment( + self, + input: AcceptTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayClientVpnAttachmentOutput: + """ + Accepts a Transit Gateway attachment request for a Client VPN endpoint. + The Transit Gateway owner must accept the attachment request before the + Client VPN endpoint can route traffic through the Transit Gateway. + + Args: + input: + An instance of `AcceptTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayClientVpnAttachmentOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + async def accept_transit_gateway_multicast_domain_associations( + self, + input: AcceptTransitGatewayMulticastDomainAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayMulticastDomainAssociationsOutput: + """ + Accepts a request to associate subnets with a transit gateway multicast + domain. + + Args: + input: + An instance of `AcceptTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayMulticastDomainAssociationsOutput`. + """ + return await self._invoke( + input, + _models.ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + async def accept_transit_gateway_peering_attachment( + self, + input: AcceptTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayPeeringAttachmentOutput: + """ + Accepts a transit gateway peering attachment request. The peering + attachment must be in the `pendingAcceptance` state. + + Args: + input: + An instance of `AcceptTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayPeeringAttachmentOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + async def accept_transit_gateway_vpc_attachment( + self, + input: AcceptTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayVpcAttachmentOutput: + """ + Accepts a request to attach a VPC to a transit gateway. + + The VPC attachment must be in the `pendingAcceptance` state. Use + DescribeTransitGatewayVpcAttachments to view your pending VPC attachment + requests. Use RejectTransitGatewayVpcAttachment to reject a VPC + attachment request. + + Args: + input: + An instance of `AcceptTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayVpcAttachmentOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + async def accept_vpc_endpoint_connections( + self, + input: AcceptVpcEndpointConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> AcceptVpcEndpointConnectionsOutput: + """ + Accepts connection requests to your VPC endpoint service. + + Args: + input: + An instance of `AcceptVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptVpcEndpointConnectionsOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_VPC_ENDPOINT_CONNECTIONS, [], plugins + ) + + async def accept_vpc_peering_connection( + self, + input: AcceptVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> AcceptVpcPeeringConnectionOutput: + """ + Accept a VPC peering connection request. To accept a request, the VPC + peering connection must be in the `pending-acceptance` state, and you + must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to + view your outstanding VPC peering connection requests. + + For an inter-Region VPC peering connection request, you must accept the + VPC peering connection in the Region of the accepter VPC. + + Args: + input: + An instance of `AcceptVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptVpcPeeringConnectionOutput`. + """ + return await self._invoke( + input, _models.ACCEPT_VPC_PEERING_CONNECTION, [], plugins + ) + + async def advertise_byoip_cidr( + self, input: AdvertiseByoipCidrInput, plugins: list[Plugin] | None = None + ) -> AdvertiseByoipCidrOutput: + """ + Advertises an IPv4 or IPv6 address range that is provisioned for use + with your Amazon Web Services resources through bring your own IP + addresses (BYOIP). + + You can perform this operation at most once every 10 seconds, even if + you specify different address ranges each time. + + We recommend that you stop advertising the BYOIP CIDR from other + locations when you advertise it from Amazon Web Services. To minimize + down time, you can configure your Amazon Web Services resources to use + an address from a BYOIP CIDR before it is advertised, and then + simultaneously stop advertising it from the current location and start + advertising it through Amazon Web Services. + + It can take a few minutes before traffic to the specified addresses + starts routing to Amazon Web Services because of BGP propagation delays. + + Args: + input: + An instance of `AdvertiseByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AdvertiseByoipCidrOutput`. + """ + return await self._invoke(input, _models.ADVERTISE_BYOIP_CIDR, [], plugins) + + async def allocate_address( + self, input: AllocateAddressInput, plugins: list[Plugin] | None = None + ) -> AllocateAddressOutput: + """ + Allocates an Elastic IP address to your Amazon Web Services account. + After you allocate the Elastic IP address you can associate it with an + instance or network interface. After you release an Elastic IP address, + it is released to the IP address pool and can be allocated to a + different Amazon Web Services account. + + You can allocate an Elastic IP address from one of the following address + pools: + + - Amazon's pool of IPv4 addresses + + - Public IPv4 address range that you own and bring to your Amazon Web + Services account using [Bring Your Own IP Addresses + (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) + + - An IPv4 IPAM pool with an Amazon-provided or BYOIP public IPv4 address + range + + - IPv4 addresses from your on-premises network made available for use + with an Outpost using a [customer-owned IP address + pool](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + (CoIP pool) + + For more information, see [Elastic IP + Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) + in the *Amazon EC2 User Guide*. + + If you release an Elastic IP address, you might be able to recover it. + You cannot recover an Elastic IP address that you released after it is + allocated to another Amazon Web Services account. To attempt to recover + an Elastic IP address that you released, specify it in this operation. + + You can allocate a carrier IP address which is a public IP address from + a telecommunication carrier, to a network interface which resides in a + subnet in a Wavelength Zone (for example an EC2 instance). + + Args: + input: + An instance of `AllocateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateAddressOutput`. + """ + return await self._invoke(input, _models.ALLOCATE_ADDRESS, [], plugins) + + async def allocate_hosts( + self, input: AllocateHostsInput, plugins: list[Plugin] | None = None + ) -> AllocateHostsOutput: + """ + Allocates a Dedicated Host to your account. At a minimum, specify the + supported instance type or instance family, the Availability Zone in + which to allocate the host, and the number of hosts to allocate. + + Args: + input: + An instance of `AllocateHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateHostsOutput`. + """ + return await self._invoke(input, _models.ALLOCATE_HOSTS, [], plugins) + + async def allocate_ipam_pool_cidr( + self, input: AllocateIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> AllocateIpamPoolCidrOutput: + """ + Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM + pool locale. The locale is the Amazon Web Services Region where this + IPAM pool is available for allocations. + + In IPAM, an allocation is a CIDR assignment from an IPAM pool to another + IPAM pool or to a resource. For more information, see [Allocate + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/allocate-cidrs-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Note: + This action creates an allocation with strong consistency. The returned + CIDR will not overlap with any other allocations from the same pool. + + Args: + input: + An instance of `AllocateIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateIpamPoolCidrOutput`. + """ + return await self._invoke(input, _models.ALLOCATE_IPAM_POOL_CIDR, [], plugins) + + async def apply_security_groups_to_client_vpn_target_network( + self, + input: ApplySecurityGroupsToClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> ApplySecurityGroupsToClientVpnTargetNetworkOutput: + """ + Applies a security group to the association between the target network + and the Client VPN endpoint. This action replaces the existing security + groups with the specified security groups. + + Args: + input: + An instance of `ApplySecurityGroupsToClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ApplySecurityGroupsToClientVpnTargetNetworkOutput`. + """ + return await self._invoke( + input, + _models.APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK, + [], + plugins, + ) + + async def assign_ipv6_addresses( + self, input: AssignIpv6AddressesInput, plugins: list[Plugin] | None = None + ) -> AssignIpv6AddressesOutput: + """ + Assigns the specified IPv6 addresses to the specified network interface. + You can specify specific IPv6 addresses, or you can specify the number + of IPv6 addresses to be automatically assigned from the subnet's IPv6 + CIDR block range. You can assign as many IPv6 addresses to a network + interface as you can assign private IPv4 addresses, and the limit varies + by instance type. + + You must specify either the IPv6 addresses or the IPv6 address count in + the request. + + You can optionally use Prefix Delegation on the network interface. You + must specify either the IPV6 Prefix Delegation prefixes, or the IPv6 + Prefix Delegation count. For information, see [Assigning prefixes to + network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssignIpv6AddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignIpv6AddressesOutput`. + """ + return await self._invoke(input, _models.ASSIGN_IPV6_ADDRESSES, [], plugins) + + async def assign_private_ip_addresses( + self, input: AssignPrivateIpAddressesInput, plugins: list[Plugin] | None = None + ) -> AssignPrivateIpAddressesOutput: + """ + Assigns the specified secondary private IP addresses to the specified + network interface. + + You can specify specific secondary IP addresses, or you can specify the + number of secondary IP addresses to be automatically assigned from the + subnet's CIDR block range. The number of secondary IP addresses that + you can assign to an instance varies by instance type. For more + information about Elastic IP addresses, see [Elastic IP + Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) + in the *Amazon EC2 User Guide*. + + When you move a secondary private IP address to another network + interface, any Elastic IP address that is associated with the IP address + is also moved. + + Remapping an IP address is an asynchronous operation. When you move an + IP address from one network interface to another, check + `network/interfaces/macs/mac/local-ipv4s` in the instance metadata to + confirm that the remapping is complete. + + You must specify either the IP addresses or the IP address count in the + request. + + You can optionally use Prefix Delegation on the network interface. You + must specify either the IPv4 Prefix Delegation prefixes, or the IPv4 + Prefix Delegation count. For information, see [Assigning prefixes to + network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssignPrivateIpAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignPrivateIpAddressesOutput`. + """ + return await self._invoke( + input, _models.ASSIGN_PRIVATE_IP_ADDRESSES, [], plugins + ) + + async def assign_private_nat_gateway_address( + self, + input: AssignPrivateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> AssignPrivateNatGatewayAddressOutput: + """ + Assigns private IPv4 addresses to a private NAT gateway. For more + information, see [Work with NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssignPrivateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignPrivateNatGatewayAddressOutput`. + """ + return await self._invoke( + input, _models.ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + async def associate_address( + self, input: AssociateAddressInput, plugins: list[Plugin] | None = None + ) -> AssociateAddressOutput: + """ + Associates an Elastic IP address, or carrier IP address (for instances + that are in subnets in Wavelength Zones) with an instance or a network + interface. Before you can use an Elastic IP address, you must allocate + it to your account. + + If the Elastic IP address is already associated with a different + instance, it is disassociated from that instance and associated with the + specified instance. If you associate an Elastic IP address with an + instance that has an existing Elastic IP address, the existing address + is disassociated from the instance, but remains allocated to your + account. + + [Subnets in Wavelength Zones] You can associate an IP address from the + telecommunication carrier to the instance or network interface. + + You cannot associate an Elastic IP address with an interface in a + different network border group. + + Warning: + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error, and you may be charged for + each time the Elastic IP address is remapped to the same instance. For + more information, see the *Elastic IP Addresses* section of [Amazon EC2 + Pricing](http://aws.amazon.com/ec2/pricing/). + + Args: + input: + An instance of `AssociateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateAddressOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_ADDRESS, [], plugins) + + async def associate_application_status_check( + self, + input: AssociateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> AssociateApplicationStatusCheckOutput: + """ + Associates an application status check with instances or + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + Once you create an association, health monitoring automatically begins + for the specified instances or for instances that match the specified + tags. The following rules apply: + + - You must specify either `TargetTagAssociations` or `InstanceIds`, but + not both. Specifying both results in an `InvalidParameterCombination` + error. + + - You must own the application status check. The check must already + exist in your account. + + - You must not leave tag keys blank. + + - You can create a maximum of 50 tag associations for each application + status check. + + - You can use `DisassociateApplicationStatusCheck` to remove + associations. + + - You can associate + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + so that the application status check automatically monitors all + current and future instances that have the specified tags. + + Args: + input: + An instance of `AssociateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateApplicationStatusCheckOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_APPLICATION_STATUS_CHECK, [], plugins + ) + + async def associate_capacity_reservation_billing_owner( + self, + input: AssociateCapacityReservationBillingOwnerInput, + plugins: list[Plugin] | None = None, + ) -> AssociateCapacityReservationBillingOwnerOutput: + """ + Initiates a request to assign billing of the unused capacity of a shared + Capacity Reservation to a consumer account that is consolidated under + the same Amazon Web Services organizations payer account. For more + information, see [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `AssociateCapacityReservationBillingOwnerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateCapacityReservationBillingOwnerOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER, [], plugins + ) + + async def associate_client_vpn_target_network( + self, + input: AssociateClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> AssociateClientVpnTargetNetworkOutput: + """ + Associates a target network with a Client VPN endpoint. A target network + is a subnet in a VPC. You can associate multiple subnets from the same + VPC with a Client VPN endpoint. You can associate only one subnet in + each Availability Zone. We recommend that you associate at least two + subnets to provide Availability Zone redundancy. + + If you specified a VPC when you created the Client VPN endpoint or if + you have previous subnet associations, the specified subnet must be in + the same VPC. To specify a subnet that's in a different VPC, you must + first modify the Client VPN endpoint (ModifyClientVpnEndpoint) and + change the VPC that's associated with it. + + Args: + input: + An instance of `AssociateClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateClientVpnTargetNetworkOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_CLIENT_VPN_TARGET_NETWORK, [], plugins + ) + + async def associate_dhcp_options( + self, input: AssociateDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> AssociateDhcpOptionsOutput: + """ + Associates a set of DHCP options (that you've previously created) with + the specified VPC, or associates no DHCP options with the VPC. + + After you associate the options with the VPC, any existing instances and + all new instances that you launch in that VPC use the options. You + don't need to restart or relaunch the instances. They automatically + pick up the changes within a few hours, depending on how frequently the + instance renews its DHCP lease. You can explicitly renew the lease using + the operating system on the instance. + + For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDhcpOptionsOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_DHCP_OPTIONS, [], plugins) + + async def associate_enclave_certificate_iam_role( + self, + input: AssociateEnclaveCertificateIamRoleInput, + plugins: list[Plugin] | None = None, + ) -> AssociateEnclaveCertificateIamRoleOutput: + """ + Associates an Identity and Access Management (IAM) role with an + Certificate Manager (ACM) certificate. This enables the certificate to + be used by the ACM for Nitro Enclaves application inside an enclave. For + more information, see [Certificate Manager for Nitro + Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html) + in the *Amazon Web Services Nitro Enclaves User Guide*. + + When the IAM role is associated with the ACM certificate, the + certificate, certificate chain, and encrypted private key are placed in + an Amazon S3 location that only the associated IAM role can access. The + private key of the certificate is encrypted with an Amazon Web Services + managed key that has an attached attestation-based key policy. + + To enable the IAM role to access the Amazon S3 object, you must grant it + permission to call `s3:GetObject` on the Amazon S3 bucket returned by + the command. To enable the IAM role to access the KMS key, you must + grant it permission to call `kms:Decrypt` on the KMS key returned by the + command. For more information, see [Grant the role permission to access + the certificate and encryption + key](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy) + in the *Amazon Web Services Nitro Enclaves User Guide*. + + Args: + input: + An instance of `AssociateEnclaveCertificateIamRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateEnclaveCertificateIamRoleOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE, [], plugins + ) + + async def associate_iam_instance_profile( + self, + input: AssociateIamInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> AssociateIamInstanceProfileOutput: + """ + Associates an IAM instance profile with a running or stopped instance. + You cannot associate more than one IAM instance profile with an + instance. + + Args: + input: + An instance of `AssociateIamInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIamInstanceProfileOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_IAM_INSTANCE_PROFILE, [], plugins + ) + + async def associate_instance_event_window( + self, + input: AssociateInstanceEventWindowInput, + plugins: list[Plugin] | None = None, + ) -> AssociateInstanceEventWindowOutput: + """ + Associates one or more targets with an event window. Only one type of + target (instance IDs, Dedicated Host IDs, or tags) can be specified with + an event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssociateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateInstanceEventWindowOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_INSTANCE_EVENT_WINDOW, [], plugins + ) + + async def associate_ipam_byoasn( + self, input: AssociateIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> AssociateIpamByoasnOutput: + """ + Associates your Autonomous System Number (ASN) with a BYOIP CIDR that + you own in the same Amazon Web Services Region. For more information, + see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + After the association succeeds, the ASN is eligible for advertisement. + You can view the association with + [DescribeByoipCidrs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeByoipCidrs.html). + You can advertise the CIDR with + [AdvertiseByoipCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AdvertiseByoipCidr.html). + + Args: + input: + An instance of `AssociateIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIpamByoasnOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_IPAM_BYOASN, [], plugins) + + async def associate_ipam_resource_discovery( + self, + input: AssociateIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> AssociateIpamResourceDiscoveryOutput: + """ + Associates an IPAM resource discovery with an Amazon VPC IPAM. A + resource discovery is an IPAM component that enables IPAM to manage and + monitor resources that belong to the owning account. + + Args: + input: + An instance of `AssociateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIpamResourceDiscoveryOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + async def associate_nat_gateway_address( + self, + input: AssociateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> AssociateNatGatewayAddressOutput: + """ + Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a + public NAT gateway. For more information, see [Work with NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + + By default, you can associate up to 2 Elastic IP addresses per public + NAT gateway. You can increase the limit by requesting a quota + adjustment. For more information, see [Elastic IP address + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-eips) + in the *Amazon VPC User Guide*. + + Warning: + When you associate an EIP or secondary EIPs with a public NAT gateway, + the network border group of the EIPs must match the network border group + of the Availability Zone (AZ) that the public NAT gateway is in. If + it's not the same, the EIP will fail to associate. You can see the + network border group for the subnet's AZ by viewing the details of the + subnet. Similarly, you can view the network border group of an EIP by + viewing the details of the EIP address. For more information about + network border groups and EIPs, see [Allocate an Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateNatGatewayAddressOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + async def associate_route_server( + self, input: AssociateRouteServerInput, plugins: list[Plugin] | None = None + ) -> AssociateRouteServerOutput: + """ + Associates a route server with a VPC to enable dynamic route updates. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateRouteServerOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_ROUTE_SERVER, [], plugins) + + async def associate_route_table( + self, input: AssociateRouteTableInput, plugins: list[Plugin] | None = None + ) -> AssociateRouteTableOutput: + """ + Associates a subnet in your VPC or an internet gateway or virtual + private gateway attached to your VPC with a route table in your VPC. + This association causes traffic from the subnet or gateway to be routed + according to the routes in the route table. The action returns an + association ID, which you need in order to disassociate the route table + later. A route table can be associated with multiple subnets. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateRouteTableOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_ROUTE_TABLE, [], plugins) + + async def associate_security_group_vpc( + self, input: AssociateSecurityGroupVpcInput, plugins: list[Plugin] | None = None + ) -> AssociateSecurityGroupVpcOutput: + """ + Associates a security group with another VPC in the same Region. This + enables you to use the same security group with network interfaces and + instances in the specified VPC. + + Note: + - The VPC you want to associate the security group with must be in the + same Region. + + - You can associate the security group with another VPC if your account + owns the VPC or if the VPC was shared with you. + + - You must own the security group. + + - You cannot use this feature with default security groups. + + - You cannot use this feature with the default VPC. + + Args: + input: + An instance of `AssociateSecurityGroupVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateSecurityGroupVpcOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_SECURITY_GROUP_VPC, [], plugins + ) + + async def associate_subnet_cidr_block( + self, input: AssociateSubnetCidrBlockInput, plugins: list[Plugin] | None = None + ) -> AssociateSubnetCidrBlockOutput: + """ + Associates a CIDR block with your subnet. You can only associate a + single IPv6 CIDR block with your subnet. + + Args: + input: + An instance of `AssociateSubnetCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateSubnetCidrBlockOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_SUBNET_CIDR_BLOCK, [], plugins + ) + + async def associate_transit_gateway_multicast_domain( + self, + input: AssociateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayMulticastDomainOutput: + """ + Associates the specified subnets and transit gateway attachments with + the specified transit gateway multicast domain. + + The transit gateway attachment must be in the available state before you + can add a resource. Use + [DescribeTransitGatewayAttachments](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html) + to see the state of the attachment. + + Args: + input: + An instance of `AssociateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayMulticastDomainOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + async def associate_transit_gateway_policy_table( + self, + input: AssociateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayPolicyTableOutput: + """ + Associates the specified transit gateway attachment with a transit + gateway policy table. + + Args: + input: + An instance of `AssociateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayPolicyTableOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + async def associate_transit_gateway_route_table( + self, + input: AssociateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayRouteTableOutput: + """ + Associates the specified attachment with the specified transit gateway + route table. You can associate only one route table with an attachment. + + Args: + input: + An instance of `AssociateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def associate_trunk_interface( + self, input: AssociateTrunkInterfaceInput, plugins: list[Plugin] | None = None + ) -> AssociateTrunkInterfaceOutput: + """ + Associates a branch network interface with a trunk network interface. + + Before you create the association, use + [CreateNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) + command and set the interface type to `trunk`. You must also create a + network interface for each branch network interface that you want to + associate with the trunk network interface. + + Args: + input: + An instance of `AssociateTrunkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTrunkInterfaceOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_TRUNK_INTERFACE, [], plugins) + + async def associate_vpc_cidr_block( + self, input: AssociateVpcCidrBlockInput, plugins: list[Plugin] | None = None + ) -> AssociateVpcCidrBlockOutput: + """ + Associates a CIDR block with your VPC. You can associate a secondary + IPv4 CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR + block from an IPv6 address pool that you provisioned through bring your + own IP addresses + ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). + + You must specify one of the following in the request: an IPv4 CIDR + block, an IPv6 pool, or an Amazon-provided IPv6 CIDR block. + + For more information about associating CIDR blocks with your VPC and + applicable restrictions, see [IP addressing for your VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateVpcCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateVpcCidrBlockOutput`. + """ + return await self._invoke(input, _models.ASSOCIATE_VPC_CIDR_BLOCK, [], plugins) + + async def attach_classic_link_vpc( + self, input: AttachClassicLinkVpcInput, plugins: list[Plugin] | None = None + ) -> AttachClassicLinkVpcOutput: + """ + Note: + This action is deprecated. + + Links an EC2-Classic instance to a ClassicLink-enabled VPC through one + or more of the VPC security groups. You cannot link an EC2-Classic + instance to more than one VPC at a time. You can only link an instance + that's in the `running` state. An instance is automatically unlinked + from a VPC when it's stopped - you can link it to the VPC again when + you restart it. + + After you've linked an instance, you cannot change the VPC security + groups that are associated with it. To change the security groups, you + must first unlink the instance, and then link it again. + + Linking your instance to a VPC is sometimes referred to as *attaching* + your instance. + + Args: + input: + An instance of `AttachClassicLinkVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachClassicLinkVpcOutput`. + """ + return await self._invoke(input, _models.ATTACH_CLASSIC_LINK_VPC, [], plugins) + + async def attach_image_watermark( + self, input: AttachImageWatermarkInput, plugins: list[Plugin] | None = None + ) -> AttachImageWatermarkOutput: + """ + Attaches a watermark to a non-public AMI. The watermark is a structured + identifier that automatically propagates to all derivative images + created through + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html), + and + [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html). + + Only the AMI owner can attach watermarks. Watermarks cannot be added to + public AMIs. + + Args: + input: + An instance of `AttachImageWatermarkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachImageWatermarkOutput`. + """ + return await self._invoke(input, _models.ATTACH_IMAGE_WATERMARK, [], plugins) + + async def attach_internet_gateway( + self, input: AttachInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> AttachInternetGatewayOutput: + """ + Attaches an internet gateway or a virtual private gateway to a VPC, + enabling connectivity between the internet and the VPC. For more + information, see [Internet + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AttachInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachInternetGatewayOutput`. + """ + return await self._invoke(input, _models.ATTACH_INTERNET_GATEWAY, [], plugins) + + async def attach_network_interface( + self, input: AttachNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> AttachNetworkInterfaceOutput: + """ + Attaches a network interface to an instance. + + Args: + input: + An instance of `AttachNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachNetworkInterfaceOutput`. + """ + return await self._invoke(input, _models.ATTACH_NETWORK_INTERFACE, [], plugins) + + async def attach_verified_access_trust_provider( + self, + input: AttachVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> AttachVerifiedAccessTrustProviderOutput: + """ + Attaches the specified Amazon Web Services Verified Access trust + provider to the specified Amazon Web Services Verified Access instance. + + Args: + input: + An instance of `AttachVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVerifiedAccessTrustProviderOutput`. + """ + return await self._invoke( + input, _models.ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + async def attach_volume( + self, input: AttachVolumeInput, plugins: list[Plugin] | None = None + ) -> AttachVolumeOutput: + """ + Attaches an Amazon EBS volume to a `running` or `stopped` instance, and + exposes it to the instance with the specified device name. + + Note: + The maximum number of Amazon EBS volumes that you can attach to an + instance depends on the instance type. If you exceed the volume + attachment limit for an instance type, the attachment request fails with + the `AttachmentLimitExceeded` error. For more information, see [Instance + volume + limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html). + + After you attach an EBS volume, you must make it available for use. For + more information, see [Make an EBS volume available for + use](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html). + + If a volume has an Amazon Web Services Marketplace product code: + + - The volume can be attached only to a stopped instance. + + - Amazon Web Services Marketplace product codes are copied from the + volume to the instance. + + - You must be subscribed to the product. + + - The instance type and operating system of the instance must support + the product. For example, you can't detach a volume from a Windows + instance and attach it to a Linux instance. + + For more information, see [Attach an Amazon EBS volume to an + instance](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-attaching-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `AttachVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVolumeOutput`. + """ + return await self._invoke(input, _models.ATTACH_VOLUME, [], plugins) + + async def attach_vpn_gateway( + self, input: AttachVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> AttachVpnGatewayOutput: + """ + Attaches an available virtual private gateway to a VPC. You can attach + one virtual private gateway to one VPC at a time. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `AttachVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVpnGatewayOutput`. + """ + return await self._invoke(input, _models.ATTACH_VPN_GATEWAY, [], plugins) + + async def authorize_client_vpn_ingress( + self, input: AuthorizeClientVpnIngressInput, plugins: list[Plugin] | None = None + ) -> AuthorizeClientVpnIngressOutput: + """ + Adds an ingress authorization rule to a Client VPN endpoint. Ingress + authorization rules act as firewall rules that grant access to networks. + You must configure ingress authorization rules to enable clients to + access resources in Amazon Web Services or on-premises networks. + + Args: + input: + An instance of `AuthorizeClientVpnIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeClientVpnIngressOutput`. + """ + return await self._invoke( + input, _models.AUTHORIZE_CLIENT_VPN_INGRESS, [], plugins + ) + + async def authorize_security_group_egress( + self, + input: AuthorizeSecurityGroupEgressInput, + plugins: list[Plugin] | None = None, + ) -> AuthorizeSecurityGroupEgressOutput: + """ + Adds the specified outbound (egress) rules to a security group. + + An outbound rule permits instances to send traffic to the specified IPv4 + or IPv6 address ranges, the IP address ranges specified by a prefix + list, or the instances that are associated with a source security group. + For more information, see [Security group + rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). + + You must specify exactly one of the following destinations: an IPv4 or + IPv6 address range, a prefix list, or a security group. You must specify + a protocol for each rule (for example, TCP). If the protocol is TCP or + UDP, you must also specify a port or port range. If the protocol is ICMP + or ICMPv6, you must also specify the ICMP type and code. + + Rule changes are propagated to instances associated with the security + group as quickly as possible. However, a small delay might occur. + + For examples of rules that you can add to security groups for specific + access scenarios, see [Security group rules for different use + cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) + in the *Amazon EC2 User Guide*. + + For information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AuthorizeSecurityGroupEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeSecurityGroupEgressOutput`. + """ + return await self._invoke( + input, _models.AUTHORIZE_SECURITY_GROUP_EGRESS, [], plugins + ) + + async def authorize_security_group_ingress( + self, + input: AuthorizeSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> AuthorizeSecurityGroupIngressOutput: + """ + Adds the specified inbound (ingress) rules to a security group. + + An inbound rule permits instances to receive traffic from the specified + IPv4 or IPv6 address range, the IP address ranges that are specified by + a prefix list, or the instances that are associated with a destination + security group. For more information, see [Security group + rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). + + You must specify exactly one of the following sources: an IPv4 or IPv6 + address range, a prefix list, or a security group. You must specify a + protocol for each rule (for example, TCP). If the protocol is TCP or + UDP, you must also specify a port or port range. If the protocol is ICMP + or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. + + Rule changes are propagated to instances associated with the security + group as quickly as possible. However, a small delay might occur. + + For examples of rules that you can add to security groups for specific + access scenarios, see [Security group rules for different use + cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) + in the *Amazon EC2 User Guide*. + + For more information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AuthorizeSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeSecurityGroupIngressOutput`. + """ + return await self._invoke( + input, _models.AUTHORIZE_SECURITY_GROUP_INGRESS, [], plugins + ) + + async def batch_modify_ipam_routing_policy_registrations( + self, + input: BatchModifyIpamRoutingPolicyRegistrationsInput, + plugins: list[Plugin] | None = None, + ) -> BatchModifyIpamRoutingPolicyRegistrationsOutput: + """ + Modifies multiple routing policy registrations in a single operation. + You can create, update, or delete Route Origin Authorizations (ROAs) in + batch. + + Args: + input: + An instance of `BatchModifyIpamRoutingPolicyRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BatchModifyIpamRoutingPolicyRegistrationsOutput`. + """ + return await self._invoke( + input, _models.BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS, [], plugins + ) + + async def bundle_instance( + self, input: BundleInstanceInput, plugins: list[Plugin] | None = None + ) -> BundleInstanceOutput: + """ + Bundles an Amazon instance store-backed Windows instance. + + During bundling, only the root device volume (C:\\) is bundled. Data on + other instance store volumes is not preserved. + + Note: + BundleInstance is no longer supported. To create an AMI, use + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html) + instead. For more information about creating an Amazon EBS-backed AMI, + see [Create an Amazon EBS-backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `BundleInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BundleInstanceOutput`. + """ + return await self._invoke(input, _models.BUNDLE_INSTANCE, [], plugins) + + async def cancel_bundle_task( + self, input: CancelBundleTaskInput, plugins: list[Plugin] | None = None + ) -> CancelBundleTaskOutput: + """ + Cancels a bundling operation for an instance store-backed Windows + instance. + + Note: + CancelBundleTask is no longer supported because + [BundleInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BundleInstance.html), + the operation it cancels, is no longer supported. + + Args: + input: + An instance of `CancelBundleTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelBundleTaskOutput`. + """ + return await self._invoke(input, _models.CANCEL_BUNDLE_TASK, [], plugins) + + async def cancel_capacity_reservation( + self, input: CancelCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> CancelCapacityReservationOutput: + """ + Cancels the specified Capacity Reservation, releases the reserved + capacity, and changes the Capacity Reservation's state to `cancelled`. + + You can cancel a Capacity Reservation that is in the following states: + + - `assessing` + + - `scheduled` --- requires a cancellation quote. Use + `CreateCapacityReservationCancellationQuote` to generate a quote, then + pass the quote ID with `ApplyCancellationCharges` set to + `commitment-wind-down`. The cancellation charge depends on how close + the reservation is to its start date. + + - `active` and there is no commitment duration or the commitment + duration has elapsed. + + - `active` during the commitment duration --- requires a cancellation + quote. Use `CreateCapacityReservationCancellationQuote` to generate a + quote, then pass the quote ID with `ApplyCancellationCharges` set to + `commitment-wind-down`. The Capacity Reservation transitions to + `cancelling` while charges are applied. + + - `delayed` --- the commitment duration is waived, so no cancellation + charge applies. + + Note: + You can't modify or cancel a Capacity Block. For more information, see + [Capacity Blocks for + ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html). + + Instances running in the reserved capacity continue running until you + stop them. Stopped instances that target the Capacity Reservation can no + longer launch. Modify these instances to either target a different + Capacity Reservation, launch On-Demand Instance capacity, or run in any + open Capacity Reservation that has matching attributes and sufficient + capacity. + + Args: + input: + An instance of `CancelCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.CANCEL_CAPACITY_RESERVATION, [], plugins + ) + + async def cancel_capacity_reservation_fleets( + self, + input: CancelCapacityReservationFleetsInput, + plugins: list[Plugin] | None = None, + ) -> CancelCapacityReservationFleetsOutput: + """ + Cancels one or more Capacity Reservation Fleets. When you cancel a + Capacity Reservation Fleet, the following happens: + + - The Capacity Reservation Fleet's status changes to `cancelled`. + + - The individual Capacity Reservations in the Fleet are cancelled. + Instances running in the Capacity Reservations at the time of + cancelling the Fleet continue to run in shared capacity. + + - The Fleet stops creating new Capacity Reservations. + + Args: + input: + An instance of `CancelCapacityReservationFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelCapacityReservationFleetsOutput`. + """ + return await self._invoke( + input, _models.CANCEL_CAPACITY_RESERVATION_FLEETS, [], plugins + ) + + async def cancel_conversion_task( + self, input: CancelConversionTaskInput, plugins: list[Plugin] | None = None + ) -> CancelConversionTaskOutput: + """ + Cancels an active conversion task. The task can be the import of an + instance or volume. The action removes all artifacts of the conversion, + including a partially uploaded volume or instance. If the conversion is + complete or is in the process of transferring the final disk image, the + command fails and returns an exception. + + Args: + input: + An instance of `CancelConversionTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelConversionTaskOutput`. + """ + return await self._invoke(input, _models.CANCEL_CONVERSION_TASK, [], plugins) + + async def cancel_declarative_policies_report( + self, + input: CancelDeclarativePoliciesReportInput, + plugins: list[Plugin] | None = None, + ) -> CancelDeclarativePoliciesReportOutput: + """ + Cancels the generation of an account status report. + + You can only cancel a report while it has the `running` status. Reports + with other statuses (`complete`, `cancelled`, or `error`) can't be + canceled. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `CancelDeclarativePoliciesReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelDeclarativePoliciesReportOutput`. + """ + return await self._invoke( + input, _models.CANCEL_DECLARATIVE_POLICIES_REPORT, [], plugins + ) + + async def cancel_export_task( + self, input: CancelExportTaskInput, plugins: list[Plugin] | None = None + ) -> CancelExportTaskOutput: + """ + Cancels an active export task. The request removes all artifacts of the + export, including any partially-created Amazon S3 objects. If the export + task is complete or is in the process of transferring the final disk + image, the command fails and returns an error. + + Args: + input: + An instance of `CancelExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelExportTaskOutput`. + """ + return await self._invoke(input, _models.CANCEL_EXPORT_TASK, [], plugins) + + async def cancel_image_launch_permission( + self, + input: CancelImageLaunchPermissionInput, + plugins: list[Plugin] | None = None, + ) -> CancelImageLaunchPermissionOutput: + """ + Removes your Amazon Web Services account from the launch permissions for + the specified AMI. For more information, see [Cancel having an AMI + shared with your Amazon Web Services + account](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cancel-sharing-an-AMI.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CancelImageLaunchPermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelImageLaunchPermissionOutput`. + """ + return await self._invoke( + input, _models.CANCEL_IMAGE_LAUNCH_PERMISSION, [], plugins + ) + + async def cancel_import_task( + self, input: CancelImportTaskInput, plugins: list[Plugin] | None = None + ) -> CancelImportTaskOutput: + """ + Cancels an in-process import virtual machine or import snapshot task. + + Args: + input: + An instance of `CancelImportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelImportTaskOutput`. + """ + return await self._invoke(input, _models.CANCEL_IMPORT_TASK, [], plugins) + + async def cancel_reserved_instances_listing( + self, + input: CancelReservedInstancesListingInput, + plugins: list[Plugin] | None = None, + ) -> CancelReservedInstancesListingOutput: + """ + Cancels the specified Reserved Instance listing in the Reserved Instance + Marketplace. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CancelReservedInstancesListingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelReservedInstancesListingOutput`. + """ + return await self._invoke( + input, _models.CANCEL_RESERVED_INSTANCES_LISTING, [], plugins + ) + + async def cancel_spot_fleet_requests( + self, input: CancelSpotFleetRequestsInput, plugins: list[Plugin] | None = None + ) -> CancelSpotFleetRequestsOutput: + """ + Cancels the specified Spot Fleet requests. + + After you cancel a Spot Fleet request, the Spot Fleet launches no new + instances. + + You must also specify whether a canceled Spot Fleet request should + terminate its instances. If you choose to terminate the instances, the + Spot Fleet request enters the `cancelled_terminating` state. Otherwise, + the Spot Fleet request enters the `cancelled_running` state and the + instances continue to run until they are interrupted or you terminate + them manually. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + **Restrictions** + + - You can delete up to 100 fleets in a single request. If you exceed the + specified number, no fleets are deleted. + + Args: + input: + An instance of `CancelSpotFleetRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelSpotFleetRequestsOutput`. + """ + return await self._invoke( + input, _models.CANCEL_SPOT_FLEET_REQUESTS, [], plugins + ) + + async def cancel_spot_instance_requests( + self, + input: CancelSpotInstanceRequestsInput, + plugins: list[Plugin] | None = None, + ) -> CancelSpotInstanceRequestsOutput: + """ + Cancels one or more Spot Instance requests. + + Warning: + Canceling a Spot Instance request does not terminate running Spot + Instances associated with the request. + + Args: + input: + An instance of `CancelSpotInstanceRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelSpotInstanceRequestsOutput`. + """ + return await self._invoke( + input, _models.CANCEL_SPOT_INSTANCE_REQUESTS, [], plugins + ) + + async def confirm_product_instance( + self, input: ConfirmProductInstanceInput, plugins: list[Plugin] | None = None + ) -> ConfirmProductInstanceOutput: + """ + Determines whether a product code is associated with an instance. This + action can only be used by the owner of the product code. It is useful + when a product code owner must verify whether another user's instance + is eligible for support. + + Args: + input: + An instance of `ConfirmProductInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ConfirmProductInstanceOutput`. + """ + return await self._invoke(input, _models.CONFIRM_PRODUCT_INSTANCE, [], plugins) + + async def copy_fpga_image( + self, input: CopyFpgaImageInput, plugins: list[Plugin] | None = None + ) -> CopyFpgaImageOutput: + """ + Copies the specified Amazon FPGA Image (AFI) to the current Region. + + Args: + input: + An instance of `CopyFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyFpgaImageOutput`. + """ + return await self._invoke(input, _models.COPY_FPGA_IMAGE, [], plugins) + + async def copy_image( + self, input: CopyImageInput, plugins: list[Plugin] | None = None + ) -> CopyImageOutput: + """ + Initiates an AMI copy operation. You must specify the source AMI ID and + both the source and destination locations. The copy operation must be + initiated in the destination Region. + + **CopyImage supports the following source to destination copies:** + + - Region to Region + + - Region to Outpost + + - Parent Region to Local Zone + + - Local Zone to parent Region + + - Between Local Zones with the same parent Region (only supported for + certain Local Zones) + + **CopyImage does not support the following source to destination + copies:** + + - Local Zone to non-parent Regions + + - Between Local Zones with different parent Regions + + - Local Zone to Outpost + + - Outpost to Local Zone + + - Outpost to Region + + - Between Outposts + + - Within same Outpost + + - Cross-partition copies (use + [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html) + instead) + + **Destination specification** + + - Region to Region: The destination Region is the Region in which you + initiate the copy operation. + + - Region to Outpost: Specify the destination using the + `DestinationOutpostArn` parameter (the ARN of the Outpost) + + - Region to Local Zone, and Local Zone to Local Zone copies: Specify the + destination using the `DestinationAvailabilityZone` parameter (the + name of the destination Local Zone) or `DestinationAvailabilityZoneId` + parameter (the ID of the destination Local Zone). + + **Snapshot encryption** + + - Region to Outpost: Backing snapshots copied to an Outpost are + encrypted by default using the default encryption key for the Region + or the key that you specify. Outposts do not support unencrypted + snapshots. + + - Region to Local Zone, and Local Zone to Local Zone: Not all Local + Zones require encrypted snapshots. In Local Zones that require + encrypted snapshots, backing snapshots are automatically encrypted + during copy. In Local Zones where encryption is not required, + snapshots retain their original encryption state (encrypted or + unencrypted) by default. + + For more information, including the required permissions for copying an + AMI, see [Copy an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CopyImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyImageOutput`. + """ + return await self._invoke(input, _models.COPY_IMAGE, [], plugins) + + async def copy_snapshot( + self, input: CopySnapshotInput, plugins: list[Plugin] | None = None + ) -> CopySnapshotOutput: + """ + Creates an exact copy of an Amazon EBS snapshot. + + The location of the source snapshot determines whether you can copy it + or not, and the allowed destinations for the snapshot copy. + + - If the source snapshot is in a Region, you can copy it within that + Region, to another Region, to an Outpost associated with that Region, + or to a Local Zone in that Region. + + - If the source snapshot is in a Local Zone, you can copy it within that + Local Zone, to another Local Zone in the same zone group, or to the + parent Region of the Local Zone. + + - If the source snapshot is on an Outpost, you can't copy it. + + When copying snapshots to a Region, the encryption outcome for the + snapshot copy depends on the Amazon EBS encryption by default setting + for the destination Region, the encryption status of the source + snapshot, and the encryption parameters you specify in the request. For + more information, see [Encryption and snapshot + copying](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots). + + Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots + are not supported on Outposts. For more information, [Amazon EBS local + snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations). + + Note: + Snapshots copies have an arbitrary source volume ID. Do not use this + volume ID for any purpose. + + For more information, see [Copy an Amazon EBS + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CopySnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopySnapshotOutput`. + """ + return await self._invoke(input, _models.COPY_SNAPSHOT, [], plugins) + + async def copy_volumes( + self, input: CopyVolumesInput, plugins: list[Plugin] | None = None + ) -> CopyVolumesOutput: + """ + Creates a crash-consistent, point-in-time copy of an existing Amazon EBS + volume within the same Availability Zone. The volume copy can be + attached to an Amazon EC2 instance once it reaches the `available` + state. For more information, see [Copy an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copying-volume.html). + + Args: + input: + An instance of `CopyVolumesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyVolumesOutput`. + """ + return await self._invoke(input, _models.COPY_VOLUMES, [], plugins) + + async def create_application_status_check( + self, + input: CreateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> CreateApplicationStatusCheckOutput: + """ + Creates an application status check for monitoring the health of + applications running on your instances. You can configure the protocol, + port, path, and thresholds for the health check. The following rules + apply: + + - You can create a maximum of 50 application status checks for each + account. + + - You must associate the check with instances or tags using + `AssociateApplicationStatusCheck` before health checks start. + + - You must set the `Timeout` value to less than the `Interval` value. + + - You must start the `Path` with a forward slash (`/`). Default: `/`. + + - You can specify `Aggregation` as `included` or `excluded`. If you do + not specify a value, it defaults to `included`, which means the check + contributes to the instance-level application status. + + - You can use the following default values: `Interval` is 60 seconds, + `Timeout` is 6 seconds, `FailureThreshold` is 2, `SuccessThreshold` is + 2, `StatusCodeMatcher` is `200`, `InitializationGracePeriodSeconds` is + 300 seconds. + + - You can tag the application status check during creation. For more + information, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + + Args: + input: + An instance of `CreateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateApplicationStatusCheckOutput`. + """ + return await self._invoke( + input, _models.CREATE_APPLICATION_STATUS_CHECK, [], plugins + ) + + async def create_capacity_manager_data_export( + self, + input: CreateCapacityManagerDataExportInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityManagerDataExportOutput: + """ + Creates a new data export configuration for EC2 Capacity Manager. This + allows you to automatically export capacity usage data to an S3 bucket + on a scheduled basis. The exported data includes metrics for On-Demand, + Spot, and Capacity Reservations usage across your organization. + + Args: + input: + An instance of `CreateCapacityManagerDataExportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityManagerDataExportOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_MANAGER_DATA_EXPORT, [], plugins + ) + + async def create_capacity_reservation( + self, input: CreateCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> CreateCapacityReservationOutput: + """ + Creates a new Capacity Reservation with the specified attributes. + Capacity Reservations enable you to reserve capacity for your Amazon EC2 + instances in a specific Availability Zone for any duration. + + You can create a Capacity Reservation at any time, and you can choose + when it starts. You can create a Capacity Reservation for immediate use + or you can request a Capacity Reservation for a future date. + + For more information, see [Reserve compute capacity with On-Demand + Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) + in the *Amazon EC2 User Guide*. + + Your request to create a Capacity Reservation could fail if: + + - Amazon EC2 does not have sufficient capacity. In this case, try again + at a later time, try in a different Availability Zone, or request a + smaller Capacity Reservation. If your workload is flexible across + instance types and sizes, try with different instance attributes. + + - The requested quantity exceeds your On-Demand Instance quota. In this + case, increase your On-Demand Instance quota for the requested + instance type and try again. For more information, see [Amazon EC2 + Service + Quotas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION, [], plugins + ) + + async def create_capacity_reservation_by_splitting( + self, + input: CreateCapacityReservationBySplittingInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationBySplittingOutput: + """ + Create a new Capacity Reservation by splitting the capacity of the + source Capacity Reservation. The new Capacity Reservation will have the + same attributes as the source Capacity Reservation except for tags. The + source Capacity Reservation must be `active` and owned by your Amazon + Web Services account. + + Args: + input: + An instance of `CreateCapacityReservationBySplittingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationBySplittingOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_BY_SPLITTING, [], plugins + ) + + async def create_capacity_reservation_cancellation_quote( + self, + input: CreateCapacityReservationCancellationQuoteInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationCancellationQuoteOutput: + """ + Generates a cancellation quote for a future-dated Capacity Reservation + that is within its commitment duration. The quote includes the + cancellation terms and a quote ID that you can pass to the + `CancelCapacityReservation` action. Cancellation quotes are valid for 24 + hours. + + Args: + input: + An instance of `CreateCapacityReservationCancellationQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationCancellationQuoteOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE, [], plugins + ) + + async def create_capacity_reservation_date_change_quote( + self, + input: CreateCapacityReservationDateChangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationDateChangeQuoteOutput: + """ + Generates a quote for changing the start date of a future-dated Capacity + Reservation that has not yet been delivered. The quote includes the new + start date, the resulting commitment end date, and a quote ID. Pass the + quote ID to `ModifyCapacityReservation` to apply the change. + + The cumulative pushout across all changes is limited to 30 days from the + Capacity Reservation's original start date. Quotes are valid for 24 + hours, and always expire at least one hour before the start date. + + Args: + input: + An instance of `CreateCapacityReservationDateChangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationDateChangeQuoteOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE, [], plugins + ) + + async def create_capacity_reservation_fleet( + self, + input: CreateCapacityReservationFleetInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationFleetOutput: + """ + Creates a Capacity Reservation Fleet. For more information, see [Create + a Capacity Reservation + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateCapacityReservationFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationFleetOutput`. + """ + return await self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_FLEET, [], plugins + ) + + async def create_carrier_gateway( + self, input: CreateCarrierGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateCarrierGatewayOutput: + """ + Creates a carrier gateway. For more information about carrier gateways, + see [Carrier + gateways](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway) + in the *Amazon Web Services Wavelength Developer Guide*. + + Args: + input: + An instance of `CreateCarrierGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCarrierGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_CARRIER_GATEWAY, [], plugins) + + async def create_client_vpn_endpoint( + self, input: CreateClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateClientVpnEndpointOutput: + """ + Creates a Client VPN endpoint. A Client VPN endpoint is the resource you + create and configure to enable and manage client VPN sessions. It is the + destination endpoint at which all client VPN sessions are terminated. + + Args: + input: + An instance of `CreateClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClientVpnEndpointOutput`. + """ + return await self._invoke( + input, _models.CREATE_CLIENT_VPN_ENDPOINT, [], plugins + ) + + async def create_client_vpn_route( + self, input: CreateClientVpnRouteInput, plugins: list[Plugin] | None = None + ) -> CreateClientVpnRouteOutput: + """ + Adds a route to a network to a Client VPN endpoint. Each Client VPN + endpoint has a route table that describes the available destination + network routes. Each route in the route table specifies the path for + traffic to specific resources or networks. + + Args: + input: + An instance of `CreateClientVpnRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClientVpnRouteOutput`. + """ + return await self._invoke(input, _models.CREATE_CLIENT_VPN_ROUTE, [], plugins) + + async def create_coip_cidr( + self, input: CreateCoipCidrInput, plugins: list[Plugin] | None = None + ) -> CreateCoipCidrOutput: + """ + Creates a range of customer-owned IP addresses. + + Args: + input: + An instance of `CreateCoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCoipCidrOutput`. + """ + return await self._invoke(input, _models.CREATE_COIP_CIDR, [], plugins) + + async def create_coip_pool( + self, input: CreateCoipPoolInput, plugins: list[Plugin] | None = None + ) -> CreateCoipPoolOutput: + """ + Creates a pool of customer-owned IP (CoIP) addresses. + + Args: + input: + An instance of `CreateCoipPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCoipPoolOutput`. + """ + return await self._invoke(input, _models.CREATE_COIP_POOL, [], plugins) + + async def create_customer_gateway( + self, input: CreateCustomerGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateCustomerGatewayOutput: + """ + Provides information to Amazon Web Services about your customer gateway + device. The customer gateway device is the appliance at your end of the + VPN connection. You must provide the IP address of the customer gateway + device's external interface. The IP address must be static and can be + behind a device performing network address translation (NAT). + + For devices that use Border Gateway Protocol (BGP), you can also provide + the device's BGP Autonomous System Number (ASN). You can use an + existing ASN assigned to your network. If you don't have an ASN + already, you can use a private ASN. For more information, see [Customer + gateway options for your Site-to-Site VPN + connection](https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + To create more than one customer gateway with the same VPN type, IP + address, and BGP ASN, specify a unique device name for each customer + gateway. An identical request returns information about the existing + customer gateway; it doesn't create a new customer gateway. + + Args: + input: + An instance of `CreateCustomerGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomerGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_CUSTOMER_GATEWAY, [], plugins) + + async def create_default_subnet( + self, input: CreateDefaultSubnetInput, plugins: list[Plugin] | None = None + ) -> CreateDefaultSubnetOutput: + """ + Creates a default subnet with a size `/20` IPv4 CIDR block in the + specified Availability Zone in your default VPC. You can have only one + default subnet per Availability Zone. For more information, see [Create + a default + subnet](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-subnet) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateDefaultSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDefaultSubnetOutput`. + """ + return await self._invoke(input, _models.CREATE_DEFAULT_SUBNET, [], plugins) + + async def create_default_vpc( + self, input: CreateDefaultVpcInput, plugins: list[Plugin] | None = None + ) -> CreateDefaultVpcOutput: + """ + Creates a default VPC with a size `/16` IPv4 CIDR block and a default + subnet in each Availability Zone. For more information about the + components of a default VPC, see [Default + VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) + in the *Amazon VPC User Guide*. You cannot specify the components of the + default VPC yourself. + + If you deleted your previous default VPC, you can create a default VPC. + You cannot have more than one default VPC per Region. + + Args: + input: + An instance of `CreateDefaultVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDefaultVpcOutput`. + """ + return await self._invoke(input, _models.CREATE_DEFAULT_VPC, [], plugins) + + async def create_delegate_mac_volume_ownership_task( + self, + input: CreateDelegateMacVolumeOwnershipTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateDelegateMacVolumeOwnershipTaskOutput: + """ + Delegates ownership of the Amazon EBS root volume for an Apple silicon + Mac instance to an administrative user. + + Args: + input: + An instance of `CreateDelegateMacVolumeOwnershipTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDelegateMacVolumeOwnershipTaskOutput`. + """ + return await self._invoke( + input, _models.CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK, [], plugins + ) + + async def create_dhcp_options( + self, input: CreateDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> CreateDhcpOptionsOutput: + """ + Creates a custom set of DHCP options. After you create a DHCP option + set, you associate it with a VPC. After you associate a DHCP option set + with a VPC, all existing and newly launched instances in the VPC use + this set of DHCP options. + + The following are the individual DHCP options you can specify. For more + information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + - `domain-name` - If you're using AmazonProvidedDNS in `us-east-1`, + specify `ec2.internal`. If you're using AmazonProvidedDNS in any + other Region, specify `region.compute.internal`. Otherwise, specify a + custom domain name. This value is used to complete unqualified DNS + hostnames. + + Some Linux operating systems accept multiple domain names separated by + spaces. However, Windows and other Linux operating systems treat the + value as a single domain, which results in unexpected behavior. If + your DHCP option set is associated with a VPC that has instances + running operating systems that treat the value as a single domain, + specify only one domain name. + + - `domain-name-servers` - The IP addresses of up to four DNS servers, or + AmazonProvidedDNS. To specify multiple domain name servers in a single + parameter, separate the IP addresses using commas. To have your + instances receive custom DNS hostnames as specified in `domain-name`, + you must specify a custom DNS server. + + - `ntp-servers` - The IP addresses of up to eight Network Time Protocol + (NTP) servers (four IPv4 addresses and four IPv6 addresses). + + - `netbios-name-servers` - The IP addresses of up to four NetBIOS name + servers. + + - `netbios-node-type` - The NetBIOS node type (1, 2, 4, or 8). We + recommend that you specify 2. Broadcast and multicast are not + supported. For more information about NetBIOS node types, see [RFC + 2132](https://www.ietf.org/rfc/rfc2132.txt). + + - `ipv6-address-preferred-lease-time` - A value (in seconds, minutes, + hours, or years) for how frequently a running instance with an IPv6 + assigned to it goes through DHCPv6 lease renewal. Acceptable values + are between 140 and 2147483647 seconds (approximately 68 years). If no + value is entered, the default lease time is 140 seconds. If you use + long-term addressing for EC2 instances, you can increase the lease + time and avoid frequent lease renewal requests. Lease renewal + typically occurs when half of the lease time has elapsed. + + Args: + input: + An instance of `CreateDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDhcpOptionsOutput`. + """ + return await self._invoke(input, _models.CREATE_DHCP_OPTIONS, [], plugins) + + async def create_egress_only_internet_gateway( + self, + input: CreateEgressOnlyInternetGatewayInput, + plugins: list[Plugin] | None = None, + ) -> CreateEgressOnlyInternetGatewayOutput: + """ + [IPv6 only] Creates an egress-only internet gateway for your VPC. An + egress-only internet gateway is used to enable outbound communication + over IPv6 from instances in your VPC to the internet, and prevents hosts + outside of your VPC from initiating an IPv6 connection with your + instance. + + Args: + input: + An instance of `CreateEgressOnlyInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateEgressOnlyInternetGatewayOutput`. + """ + return await self._invoke( + input, _models.CREATE_EGRESS_ONLY_INTERNET_GATEWAY, [], plugins + ) + + async def create_fleet( + self, input: CreateFleetInput, plugins: list[Plugin] | None = None + ) -> CreateFleetOutput: + """ + Creates an EC2 Fleet that contains the configuration information for + On-Demand Instances and Spot Instances. Instances are launched + immediately if there is available capacity. + + A single EC2 Fleet can include multiple launch specifications that vary + by instance type, AMI, Availability Zone, or subnet. + + For more information, see [EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFleetOutput`. + """ + return await self._invoke(input, _models.CREATE_FLEET, [], plugins) + + async def create_flow_logs( + self, input: CreateFlowLogsInput, plugins: list[Plugin] | None = None + ) -> CreateFlowLogsOutput: + """ + Creates one or more flow logs to capture information about IP traffic + for a specific network interface, subnet, or VPC. + + Flow log data for a monitored network interface is recorded as flow log + records, which are log events consisting of fields that describe the + traffic flow. For more information, see [Flow log + records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html) + in the *Amazon VPC User Guide*. + + When publishing to CloudWatch Logs, flow log records are published to a + log group, and each network interface has a unique log stream in the log + group. When publishing to Amazon S3, flow log records for all of the + monitored network interfaces are published to a single log file object + that is stored in the specified bucket. + + For more information, see [VPC Flow + Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFlowLogsOutput`. + """ + return await self._invoke(input, _models.CREATE_FLOW_LOGS, [], plugins) + + async def create_fpga_image( + self, input: CreateFpgaImageInput, plugins: list[Plugin] | None = None + ) -> CreateFpgaImageOutput: + """ + Creates an Amazon FPGA Image (AFI) from the specified design checkpoint + (DCP). + + The create operation is asynchronous. To verify that the AFI was + successfully created and is ready for use, check the output logs. + + An AFI contains the FPGA bitstream that is ready to download to an FPGA. + You can securely deploy an AFI on multiple FPGA-accelerated instances. + For more information, see the [Amazon Web Services FPGA Hardware + Development Kit](https://github.com/aws/aws-fpga/). + + Args: + input: + An instance of `CreateFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFpgaImageOutput`. + """ + return await self._invoke(input, _models.CREATE_FPGA_IMAGE, [], plugins) + + async def create_image( + self, input: CreateImageInput, plugins: list[Plugin] | None = None + ) -> CreateImageOutput: + """ + Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that + is either running or stopped. + + If you customized your instance with instance store volumes or Amazon + EBS volumes in addition to the root device volume, the new AMI contains + block device mapping information for those volumes. When you launch an + instance from this new AMI, the instance automatically launches with + those additional volumes. + + The location of the source instance determines where you can create the + snapshots of the AMI: + + - If the source instance is in a Region, you must create the snapshots + in the same Region as the instance. + + - If the source instance is in a Local Zone, you can create the + snapshots in the same Local Zone or in its parent Region. + + - If the source instance is on an Outpost that supports local snapshots, + you can create the snapshots on the same Outpost or in the parent + Region of that Outpost. In this case, you must use the + `SnapshotLocation` parameter to specify where to create the snapshots. + + For more information, see [Create an Amazon EBS-backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `CreateImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateImageOutput`. + """ + return await self._invoke(input, _models.CREATE_IMAGE, [], plugins) + + async def create_image_usage_report( + self, input: CreateImageUsageReportInput, plugins: list[Plugin] | None = None + ) -> CreateImageUsageReportOutput: + """ + Creates a report that shows how your image is used across other Amazon + Web Services accounts. The report provides visibility into which + accounts are using the specified image, and how many resources (EC2 + instances or launch templates) are referencing it. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateImageUsageReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateImageUsageReportOutput`. + """ + return await self._invoke(input, _models.CREATE_IMAGE_USAGE_REPORT, [], plugins) + + async def create_instance_connect_endpoint( + self, + input: CreateInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> CreateInstanceConnectEndpointOutput: + """ + Creates an EC2 Instance Connect Endpoint. + + An EC2 Instance Connect Endpoint allows you to connect to an instance, + without requiring the instance to have a public IPv4 or public IPv6 + address. For more information, see [Connect to your instances using EC2 + Instance Connect + Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceConnectEndpointOutput`. + """ + return await self._invoke( + input, _models.CREATE_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + async def create_instance_event_window( + self, input: CreateInstanceEventWindowInput, plugins: list[Plugin] | None = None + ) -> CreateInstanceEventWindowOutput: + """ + Creates an event window in which scheduled events for the associated + Amazon EC2 instances can run. + + You can define either a set of time ranges or a cron expression when + creating the event window, but not both. All event window times are in + UTC. + + You can create up to 200 event windows per Amazon Web Services Region. + + When you create the event window, targets (instance IDs, Dedicated Host + IDs, or tags) are not yet associated with it. To ensure that the event + window can be used, you must associate one or more targets with it by + using the AssociateInstanceEventWindow API. + + Warning: + Event windows are applicable only for scheduled events that stop, + reboot, or terminate instances. + + Event windows are *not* applicable for: + + - Expedited scheduled events and network maintenance events. + + - Unscheduled maintenance such as AutoRecovery and unplanned reboots. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceEventWindowOutput`. + """ + return await self._invoke( + input, _models.CREATE_INSTANCE_EVENT_WINDOW, [], plugins + ) + + async def create_instance_export_task( + self, input: CreateInstanceExportTaskInput, plugins: list[Plugin] | None = None + ) -> CreateInstanceExportTaskOutput: + """ + Exports a running or stopped instance to an Amazon S3 bucket. + + For information about the prerequisites for your Amazon S3 bucket, + supported operating systems, image formats, and known limitations for + the types of instances you can export, see [Exporting an instance as a + VM Using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `CreateInstanceExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceExportTaskOutput`. + """ + return await self._invoke( + input, _models.CREATE_INSTANCE_EXPORT_TASK, [], plugins + ) + + async def create_internet_gateway( + self, input: CreateInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateInternetGatewayOutput: + """ + Creates an internet gateway for use with a VPC. After creating the + internet gateway, you attach it to a VPC using AttachInternetGateway. + + For more information, see [Internet + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInternetGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_INTERNET_GATEWAY, [], plugins) + + async def create_interruptible_capacity_reservation_allocation( + self, + input: CreateInterruptibleCapacityReservationAllocationInput, + plugins: list[Plugin] | None = None, + ) -> CreateInterruptibleCapacityReservationAllocationOutput: + """ + Creates an interruptible Capacity Reservation by specifying the number + of unused instances you want to allocate from your source reservation. + This helps you make unused capacity available for other workloads within + your account while maintaining control to reclaim it. + + Args: + input: + An instance of `CreateInterruptibleCapacityReservationAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInterruptibleCapacityReservationAllocationOutput`. + """ + return await self._invoke( + input, + _models.CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION, + [], + plugins, + ) + + async def create_ipam( + self, input: CreateIpamInput, plugins: list[Plugin] | None = None + ) -> CreateIpamOutput: + """ + Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature + that you can use to automate your IP address management workflows + including assigning, tracking, troubleshooting, and auditing IP + addresses across Amazon Web Services Regions and accounts throughout + your Amazon Web Services Organization. + + For more information, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamOutput`. + """ + return await self._invoke(input, _models.CREATE_IPAM, [], plugins) + + async def create_ipam_external_resource_verification_token( + self, + input: CreateIpamExternalResourceVerificationTokenInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamExternalResourceVerificationTokenOutput: + """ + Create a verification token. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `CreateIpamExternalResourceVerificationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamExternalResourceVerificationTokenOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, [], plugins + ) + + async def create_ipam_internet_registry_association( + self, + input: CreateIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamInternetRegistryAssociationOutput: + """ + Creates an association between an IPAM and a Regional Internet Registry + (RIR) for Resource Public Key Infrastructure (RPKI) management. You can + use this association to create Route Origin Authorizations (ROAs) for IP + address prefixes registered with the internet registry. Your IPAM must + be in the Advanced tier to use this feature. + + Args: + input: + An instance of `CreateIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamInternetRegistryAssociationOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + async def create_ipam_policy( + self, input: CreateIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> CreateIpamPolicyOutput: + """ + Creates an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + For more information, see [Define public IPv4 allocation strategy with + IPAM + policies](https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPolicyOutput`. + """ + return await self._invoke(input, _models.CREATE_IPAM_POLICY, [], plugins) + + async def create_ipam_pool( + self, input: CreateIpamPoolInput, plugins: list[Plugin] | None = None + ) -> CreateIpamPoolOutput: + """ + Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In + IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools + enable you to organize your IP addresses according to your routing and + security needs. For example, if you have separate routing and security + needs for development and production applications, you can create a pool + for each. + + For more information, see [Create a top-level + pool](https://docs.aws.amazon.com/vpc/latest/ipam/create-top-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPoolOutput`. + """ + return await self._invoke(input, _models.CREATE_IPAM_POOL, [], plugins) + + async def create_ipam_prefix_list_resolver( + self, + input: CreateIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamPrefixListResolverOutput: + """ + Creates an IPAM prefix list resolver. + + An IPAM prefix list resolver is a component that manages the + synchronization between IPAM's CIDR selection rules and + customer-managed prefix lists. It automates connectivity configurations + by selecting CIDRs from IPAM's database based on your business logic + and synchronizing them with prefix lists used in resources such as VPC + route tables and security groups. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPrefixListResolverOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + async def create_ipam_prefix_list_resolver_target( + self, + input: CreateIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamPrefixListResolverTargetOutput: + """ + Creates an IPAM prefix list resolver target. + + An IPAM prefix list resolver target is an association between a specific + customer-managed prefix list and an IPAM prefix list resolver. The + target enables the resolver to synchronize CIDRs selected by its rules + into the specified prefix list, which can then be referenced in Amazon + Web Services resources. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPrefixListResolverTargetOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + async def create_ipam_resource_discovery( + self, + input: CreateIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamResourceDiscoveryOutput: + """ + Creates an IPAM resource discovery. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `CreateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamResourceDiscoveryOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + async def create_ipam_routing_policy_registration( + self, + input: CreateIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamRoutingPolicyRegistrationOutput: + """ + Creates a routing policy registration and publishes Route Origin + Authorizations (ROAs) to the RPKI for the specified CIDR prefix and + ASNs. + + Args: + input: + An instance of `CreateIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamRoutingPolicyRegistrationOutput`. + """ + return await self._invoke( + input, _models.CREATE_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + async def create_ipam_scope( + self, input: CreateIpamScopeInput, plugins: list[Plugin] | None = None + ) -> CreateIpamScopeOutput: + """ + Create an IPAM scope. In IPAM, a scope is the highest-level container + within IPAM. An IPAM contains two default scopes. Each scope represents + the IP space for a single network. The private scope is intended for all + private IP address space. The public scope is intended for all public IP + address space. Scopes enable you to reuse IP addresses across multiple + unconnected networks without causing IP address overlap or conflict. + + For more information, see [Add a + scope](https://docs.aws.amazon.com/vpc/latest/ipam/add-scope-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamScopeOutput`. + """ + return await self._invoke(input, _models.CREATE_IPAM_SCOPE, [], plugins) + + async def create_key_pair( + self, input: CreateKeyPairInput, plugins: list[Plugin] | None = None + ) -> CreateKeyPairOutput: + """ + Creates an ED25519 or 2048-bit RSA key pair with the specified name and + in the specified format. Amazon EC2 stores the public key and displays + the private key for you to save to a file. The private key is returned + as an unencrypted PEM encoded PKCS#1 private key or an unencrypted PPK + formatted private key for use with PuTTY. If a key with the specified + name already exists, Amazon EC2 returns an error. + + The key pair returned to you is available only in the Amazon Web + Services Region in which you create it. If you prefer, you can create + your own key pair using a third-party tool and upload it to any Region + using ImportKeyPair. + + You can have up to 5,000 key pairs per Amazon Web Services Region. + + For more information, see [Amazon EC2 key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyPairOutput`. + """ + return await self._invoke(input, _models.CREATE_KEY_PAIR, [], plugins) + + async def create_launch_template( + self, input: CreateLaunchTemplateInput, plugins: list[Plugin] | None = None + ) -> CreateLaunchTemplateOutput: + """ + Creates a launch template. + + A launch template contains the parameters to launch an instance. When + you launch an instance using RunInstances, you can specify a launch + template instead of providing the launch parameters in the request. For + more information, see [Store instance launch parameters in Amazon EC2 + launch + templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + + To clone an existing launch template as the basis for a new launch + template, use the Amazon EC2 console. The API, SDKs, and CLI do not + support cloning a template. For more information, see [Create a launch + template from an existing launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-existing-launch-template) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLaunchTemplateOutput`. + """ + return await self._invoke(input, _models.CREATE_LAUNCH_TEMPLATE, [], plugins) + + async def create_launch_template_version( + self, + input: CreateLaunchTemplateVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateLaunchTemplateVersionOutput: + """ + Creates a new version of a launch template. You must specify an existing + launch template, either by name or ID. You can determine whether the new + version inherits parameters from a source version, and add or overwrite + parameters as needed. + + Launch template versions are numbered in the order in which they are + created. You can't specify, change, or replace the numbering of launch + template versions. + + Launch templates are immutable; after you create a launch template, you + can't modify it. Instead, you can create a new version of the launch + template that includes the changes that you require. + + For more information, see [Modify a launch template (manage launch + template + versions)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-launch-template-versions.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateLaunchTemplateVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLaunchTemplateVersionOutput`. + """ + return await self._invoke( + input, _models.CREATE_LAUNCH_TEMPLATE_VERSION, [], plugins + ) + + async def create_local_gateway_route( + self, input: CreateLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> CreateLocalGatewayRouteOutput: + """ + Creates a static route for the specified local gateway route table. You + must specify one of the following targets: + + - `LocalGatewayVirtualInterfaceGroupId` + + - `NetworkInterfaceId` + + Args: + input: + An instance of `CreateLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_ROUTE, [], plugins + ) + + async def create_local_gateway_route_table( + self, + input: CreateLocalGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableOutput: + """ + Creates a local gateway route table. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def create_local_gateway_route_table_virtual_interface_group_association( + self, + input: CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput: + """ + Creates a local gateway route table virtual interface group association. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput`. + """ + return await self._invoke( + input, + _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + [], + plugins, + ) + + async def create_local_gateway_route_table_vpc_association( + self, + input: CreateLocalGatewayRouteTableVpcAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableVpcAssociationOutput: + """ + Associates the specified VPC with the specified local gateway route + table. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableVpcAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableVpcAssociationOutput`. + """ + return await self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, [], plugins + ) + + async def create_local_gateway_virtual_interface( + self, + input: CreateLocalGatewayVirtualInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayVirtualInterfaceOutput: + """ + Create a virtual interface for a local gateway. + + Args: + input: + An instance of `CreateLocalGatewayVirtualInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayVirtualInterfaceOutput`. + """ + return await self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE, [], plugins + ) + + async def create_local_gateway_virtual_interface_group( + self, + input: CreateLocalGatewayVirtualInterfaceGroupInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayVirtualInterfaceGroupOutput: + """ + Create a local gateway virtual interface group. + + Args: + input: + An instance of `CreateLocalGatewayVirtualInterfaceGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayVirtualInterfaceGroupOutput`. + """ + return await self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, [], plugins + ) + + async def create_mac_system_integrity_protection_modification_task( + self, + input: CreateMacSystemIntegrityProtectionModificationTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateMacSystemIntegrityProtectionModificationTaskOutput: + """ + Creates a System Integrity Protection (SIP) modification task to + configure the SIP settings for an x86 Mac instance or Apple silicon Mac + instance. For more information, see [Configure SIP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure) + in the *Amazon EC2 User Guide*. + + When you configure the SIP settings for your instance, you can either + enable or disable all SIP settings, or you can specify a custom SIP + configuration that selectively enables or disables specific SIP + settings. + + Note: + If you implement a custom configuration, [connect to the instance and + verify the + settings](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-check-settings) + to ensure that your requirements are properly implemented and + functioning as intended. + + SIP configurations might change with macOS updates. We recommend that + you review custom SIP settings after any macOS version upgrade to ensure + continued compatibility and proper functionality of your security + configurations. + + To enable or disable all SIP settings, use the + **MacSystemIntegrityProtectionStatus** parameter only. For example, to + enable all SIP settings, specify the following: + + - `MacSystemIntegrityProtectionStatus=enabled` + + To specify a custom configuration that selectively enables or disables + specific SIP settings, use the **MacSystemIntegrityProtectionStatus** + parameter to enable or disable all SIP settings, and then use the + **MacSystemIntegrityProtectionConfiguration** parameter to specify + exceptions. In this case, the exceptions you specify for + **MacSystemIntegrityProtectionConfiguration** override the value you + specify for **MacSystemIntegrityProtectionStatus**. For example, to + enable all SIP settings, except `NvramProtections`, specify the + following: + + - `MacSystemIntegrityProtectionStatus=enabled` + + - `MacSystemIntegrityProtectionConfigurationRequest "NvramProtections=disabled"` + + Args: + input: + An instance of `CreateMacSystemIntegrityProtectionModificationTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMacSystemIntegrityProtectionModificationTaskOutput`. + """ + return await self._invoke( + input, + _models.CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK, + [], + plugins, + ) + + async def create_managed_prefix_list( + self, input: CreateManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> CreateManagedPrefixListOutput: + """ + Creates a managed prefix list. You can specify entries for the prefix + list. Each entry consists of a CIDR block and an optional description. + + Args: + input: + An instance of `CreateManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateManagedPrefixListOutput`. + """ + return await self._invoke( + input, _models.CREATE_MANAGED_PREFIX_LIST, [], plugins + ) + + async def create_nat_gateway( + self, input: CreateNatGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateNatGatewayOutput: + """ + Creates a NAT gateway in the specified subnet. This action creates a + network interface in the specified subnet with a private IP address from + the IP address range of the subnet. You can create either a public NAT + gateway or a private NAT gateway. + + With a public NAT gateway, internet-bound traffic from a private subnet + can be routed to the NAT gateway, so that instances in a private subnet + can connect to the internet. + + With a private NAT gateway, private communication is routed across VPCs + and on-premises networks through a transit gateway or virtual private + gateway. Common use cases include running large workloads behind a small + pool of allowlisted IPv4 addresses, preserving private IPv4 addresses, + and communicating between overlapping networks. + + For more information, see [NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) + in the *Amazon VPC User Guide*. + + Warning: + When you create a public NAT gateway and assign it an EIP or secondary + EIPs, the network border group of the EIPs must match the network border + group of the Availability Zone (AZ) that the public NAT gateway is in. + If it's not the same, the NAT gateway will fail to launch. You can see + the network border group for the subnet's AZ by viewing the details of + the subnet. Similarly, you can view the network border group of an EIP + by viewing the details of the EIP address. For more information about + network border groups and EIPs, see [Allocate an Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNatGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNatGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_NAT_GATEWAY, [], plugins) + + async def create_network_acl( + self, input: CreateNetworkAclInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkAclOutput: + """ + Creates a network ACL in a VPC. Network ACLs provide an optional layer + of security (in addition to security groups) for the instances in your + VPC. + + For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNetworkAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkAclOutput`. + """ + return await self._invoke(input, _models.CREATE_NETWORK_ACL, [], plugins) + + async def create_network_acl_entry( + self, input: CreateNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkAclEntryOutput: + """ + Creates an entry (a rule) in a network ACL with the specified rule + number. Each network ACL has a set of numbered ingress rules and a + separate set of numbered egress rules. When determining whether a packet + should be allowed in or out of a subnet associated with the ACL, we + process the entries in the ACL according to the rule numbers, in + ascending order. Each network ACL has a set of ingress rules and a + separate set of egress rules. + + We recommend that you leave room between the rule numbers (for example, + 100, 110, 120, ...), and not number them one right after the other (for + example, 101, 102, 103, ...). This makes it easier to add a rule + between existing ones without having to renumber the rules. + + After you add an entry, you can't modify it; you must either replace + it, or create an entry and delete the old one. + + For more information about network ACLs, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkAclEntryOutput`. + """ + return await self._invoke(input, _models.CREATE_NETWORK_ACL_ENTRY, [], plugins) + + async def create_network_insights_access_scope( + self, + input: CreateNetworkInsightsAccessScopeInput, + plugins: list[Plugin] | None = None, + ) -> CreateNetworkInsightsAccessScopeOutput: + """ + Creates a Network Access Scope. + + Amazon Web Services Network Access Analyzer enables cloud networking and + cloud operations teams to verify that their networks on Amazon Web + Services conform to their network security and governance objectives. + For more information, see the [Amazon Web Services Network Access + Analyzer + Guide](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/). + + Args: + input: + An instance of `CreateNetworkInsightsAccessScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInsightsAccessScopeOutput`. + """ + return await self._invoke( + input, _models.CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE, [], plugins + ) + + async def create_network_insights_path( + self, input: CreateNetworkInsightsPathInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkInsightsPathOutput: + """ + Creates a path to analyze for reachability. + + Reachability Analyzer enables you to analyze and debug network + reachability between two resources in your virtual private cloud (VPC). + For more information, see the [Reachability Analyzer + Guide](https://docs.aws.amazon.com/vpc/latest/reachability/). + + Args: + input: + An instance of `CreateNetworkInsightsPathInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInsightsPathOutput`. + """ + return await self._invoke( + input, _models.CREATE_NETWORK_INSIGHTS_PATH, [], plugins + ) + + async def create_network_interface( + self, input: CreateNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkInterfaceOutput: + """ + Creates a network interface in the specified subnet. + + The number of IP addresses you can assign to a network interface varies + by instance type. + + For more information about network interfaces, see [Elastic network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInterfaceOutput`. + """ + return await self._invoke(input, _models.CREATE_NETWORK_INTERFACE, [], plugins) + + async def create_network_interface_permission( + self, + input: CreateNetworkInterfacePermissionInput, + plugins: list[Plugin] | None = None, + ) -> CreateNetworkInterfacePermissionOutput: + """ + Grants an Amazon Web Services-authorized account permission to attach + the specified network interface to an instance in their account. + + You can grant permission to a single Amazon Web Services account only, + and only one account at a time. + + Args: + input: + An instance of `CreateNetworkInterfacePermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInterfacePermissionOutput`. + """ + return await self._invoke( + input, _models.CREATE_NETWORK_INTERFACE_PERMISSION, [], plugins + ) + + async def create_placement_group( + self, input: CreatePlacementGroupInput, plugins: list[Plugin] | None = None + ) -> CreatePlacementGroupOutput: + """ + Creates a placement group in which to launch instances. The strategy of + the placement group determines how the instances are organized within + the group. + + A `cluster` placement group is a logical grouping of instances within a + single Availability Zone that benefit from low network latency, high + network throughput. A `spread` placement group places instances on + distinct hardware. A `partition` placement group places groups of + instances in different partitions, where instances in one partition do + not share the same hardware with instances in another partition. A + `precision-time` placement group places instances on supported hardware + with direct access to high-precision time sources in Amazon Web Services + infrastructure. + + For more information, see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreatePlacementGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePlacementGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_PLACEMENT_GROUP, [], plugins) + + async def create_public_ipv4_pool( + self, input: CreatePublicIpv4PoolInput, plugins: list[Plugin] | None = None + ) -> CreatePublicIpv4PoolOutput: + """ + Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP + address pool required for the public IPv4 CIDRs that you own and bring + to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to + Amazon Web Services, however, use IPAM pools only. To monitor the status + of pool creation, use + [DescribePublicIpv4Pools](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html). + + Args: + input: + An instance of `CreatePublicIpv4PoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePublicIpv4PoolOutput`. + """ + return await self._invoke(input, _models.CREATE_PUBLIC_IPV4_POOL, [], plugins) + + async def create_replace_root_volume_task( + self, + input: CreateReplaceRootVolumeTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateReplaceRootVolumeTaskOutput: + """ + Replaces the EBS-backed root volume for a `running` instance with a new + volume that is restored to the original root volume's launch state, + that is restored to a specific snapshot taken from the original root + volume, that is restored from an AMI that has the same key + characteristics as that of the instance, or that is replaced by a + specified volume. + + For more information, see [Replace a root + volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateReplaceRootVolumeTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateReplaceRootVolumeTaskOutput`. + """ + return await self._invoke( + input, _models.CREATE_REPLACE_ROOT_VOLUME_TASK, [], plugins + ) + + async def create_reserved_instances_listing( + self, + input: CreateReservedInstancesListingInput, + plugins: list[Plugin] | None = None, + ) -> CreateReservedInstancesListingOutput: + """ + Creates a listing for Amazon EC2 Standard Reserved Instances to be sold + in the Reserved Instance Marketplace. You can submit one Standard + Reserved Instance listing at a time. To get a list of your Standard + Reserved Instances, you can use the DescribeReservedInstances operation. + + Note: + Only Standard Reserved Instances can be sold in the Reserved Instance + Marketplace. Convertible Reserved Instances cannot be sold. + + The Reserved Instance Marketplace matches sellers who want to resell + Standard Reserved Instance capacity that they no longer need with buyers + who want to purchase additional capacity. Reserved Instances bought and + sold through the Reserved Instance Marketplace work like any other + Reserved Instances. + + To sell your Standard Reserved Instances, you must first register as a + seller in the Reserved Instance Marketplace. After completing the + registration process, you can create a Reserved Instance Marketplace + listing of some or all of your Standard Reserved Instances, and specify + the upfront price to receive for them. Your Standard Reserved Instance + listings then become available for purchase. To view the details of your + Standard Reserved Instance listing, you can use the + DescribeReservedInstancesListings operation. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateReservedInstancesListingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateReservedInstancesListingOutput`. + """ + return await self._invoke( + input, _models.CREATE_RESERVED_INSTANCES_LISTING, [], plugins + ) + + async def create_restore_image_task( + self, input: CreateRestoreImageTaskInput, plugins: list[Plugin] | None = None + ) -> CreateRestoreImageTaskOutput: + """ + Starts a task that restores an AMI from an Amazon S3 object that was + previously created by using + [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html). + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateRestoreImageTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRestoreImageTaskOutput`. + """ + return await self._invoke(input, _models.CREATE_RESTORE_IMAGE_TASK, [], plugins) + + async def create_route( + self, input: CreateRouteInput, plugins: list[Plugin] | None = None + ) -> CreateRouteOutput: + """ + Creates a route in a route table within a VPC. + + You must specify either a destination CIDR block or a prefix list ID. + You must also specify exactly one of the resources from the parameter + list. + + When determining how to route traffic, we use the route with the most + specific match. For example, traffic is destined for the IPv4 address + `192.0.2.3`, and the route table includes the following two IPv4 routes: + + - `192.0.2.0/24` (goes to some target A) + + - `192.0.2.0/28` (goes to some target B) + + Both routes apply to the traffic destined for `192.0.2.3`. However, the + second route in the list covers a smaller number of IP addresses and is + therefore more specific, so we use that route to determine where to + target the traffic. + + For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteOutput`. + """ + return await self._invoke(input, _models.CREATE_ROUTE, [], plugins) + + async def create_route_server( + self, input: CreateRouteServerInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerOutput: + """ + Creates a new route server to manage dynamic routing in a VPC. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerOutput`. + """ + return await self._invoke(input, _models.CREATE_ROUTE_SERVER, [], plugins) + + async def create_route_server_endpoint( + self, input: CreateRouteServerEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerEndpointOutput: + """ + Creates a new endpoint for a route server in a specified subnet. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerEndpointOutput`. + """ + return await self._invoke( + input, _models.CREATE_ROUTE_SERVER_ENDPOINT, [], plugins + ) + + async def create_route_server_peer( + self, input: CreateRouteServerPeerInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerPeerOutput: + """ + Creates a new BGP peer for a specified route server endpoint. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerPeerOutput`. + """ + return await self._invoke(input, _models.CREATE_ROUTE_SERVER_PEER, [], plugins) + + async def create_route_table( + self, input: CreateRouteTableInput, plugins: list[Plugin] | None = None + ) -> CreateRouteTableOutput: + """ + Creates a route table for the specified VPC. After you create a route + table, you can add routes and associate the table with a subnet. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteTableOutput`. + """ + return await self._invoke(input, _models.CREATE_ROUTE_TABLE, [], plugins) + + async def create_secondary_network( + self, input: CreateSecondaryNetworkInput, plugins: list[Plugin] | None = None + ) -> CreateSecondaryNetworkOutput: + """ + Creates a secondary network. + + The allowed size for a secondary network CIDR block is between /28 + netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses). + + Args: + input: + An instance of `CreateSecondaryNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecondaryNetworkOutput`. + """ + return await self._invoke(input, _models.CREATE_SECONDARY_NETWORK, [], plugins) + + async def create_secondary_subnet( + self, input: CreateSecondarySubnetInput, plugins: list[Plugin] | None = None + ) -> CreateSecondarySubnetOutput: + """ + Creates a secondary subnet in a secondary network. + + A secondary subnet CIDR block must not overlap with the CIDR block of an + existing secondary subnet in the secondary network. After you create a + secondary subnet, you can't change its CIDR block. + + The allowed size for a secondary subnet CIDR block is between /28 + netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses). + Amazon reserves the first four IP addresses and the last IP address in + each secondary subnet for internal use. + + Args: + input: + An instance of `CreateSecondarySubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecondarySubnetOutput`. + """ + return await self._invoke(input, _models.CREATE_SECONDARY_SUBNET, [], plugins) + + async def create_security_group( + self, input: CreateSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> CreateSecurityGroupOutput: + """ + Creates a security group. + + A security group acts as a virtual firewall for your instance to control + inbound and outbound traffic. For more information, see [Amazon EC2 + security + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) + in the *Amazon EC2 User Guide* and [Security groups for your + VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) + in the *Amazon VPC User Guide*. + + When you create a security group, you specify a friendly name of your + choice. You can't have two security groups for the same VPC with the + same name. + + You have a default security group for use in your VPC. If you don't + specify a security group when you launch an instance, the instance is + launched into the appropriate default security group. A default security + group includes a default rule that grants instances unrestricted network + access to each other. + + You can add or remove rules from your security groups using + AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, + RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress. + + For more information about VPC security group limits, see [Amazon VPC + Limits](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). + + Args: + input: + An instance of `CreateSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecurityGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_SECURITY_GROUP, [], plugins) + + async def create_snapshot( + self, input: CreateSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateSnapshotOutput: + """ + Creates a snapshot of an EBS volume and stores it in Amazon S3. You can + use snapshots for backups, to make copies of EBS volumes, and to save + data before shutting down an instance. + + The location of the source EBS volume determines where you can create + the snapshot. + + - If the source volume is in a Region, you must create the snapshot in + the same Region as the volume. + + - If the source volume is in a Local Zone, you can create the snapshot + in the same Local Zone or in its parent Amazon Web Services Region. + + - If the source volume is on an Outpost, you can create the snapshot on + the same Outpost or in its parent Amazon Web Services Region. + + When a snapshot is created, any Amazon Web Services Marketplace product + codes that are associated with the source volume are propagated to the + snapshot. + + You can take a snapshot of an attached volume that is in use. However, + snapshots only capture data that has been written to your Amazon EBS + volume at the time the snapshot command is issued; this might exclude + any data that has been cached by any applications or the operating + system. If you can pause any file systems on the volume long enough to + take a snapshot, your snapshot should be complete. However, if you + cannot pause all file writes to the volume, you should unmount the + volume from within the instance, issue the snapshot command, and then + remount the volume to ensure a consistent and complete snapshot. You may + remount and use your volume while the snapshot status is `pending`. + + When you create a snapshot for an EBS volume that serves as a root + device, we recommend that you stop the instance before taking the + snapshot. + + Snapshots that are taken from encrypted volumes are automatically + encrypted. Volumes that are created from encrypted snapshots are also + automatically encrypted. Your encrypted volumes and any associated + snapshots always remain protected. For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CreateSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSnapshotOutput`. + """ + return await self._invoke(input, _models.CREATE_SNAPSHOT, [], plugins) + + async def create_snapshots( + self, input: CreateSnapshotsInput, plugins: list[Plugin] | None = None + ) -> CreateSnapshotsOutput: + """ + Creates crash-consistent snapshots of multiple EBS volumes attached to + an Amazon EC2 instance. Volumes are chosen by specifying an instance. + Each volume attached to the specified instance will produce one snapshot + that is crash-consistent across the instance. You can include all of the + volumes currently attached to the instance, or you can exclude the root + volume or specific data (non-root) volumes from the multi-volume + snapshot set. + + The location of the source instance determines where you can create the + snapshots. + + - If the source instance is in a Region, you must create the snapshots + in the same Region as the instance. + + - If the source instance is in a Local Zone, you can create the + snapshots in the same Local Zone or in its parent Amazon Web Services + Region. + + - If the source instance is on an Outpost, you can create the snapshots + on the same Outpost or in its parent Amazon Web Services Region. + + Args: + input: + An instance of `CreateSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSnapshotsOutput`. + """ + return await self._invoke(input, _models.CREATE_SNAPSHOTS, [], plugins) + + async def create_spot_datafeed_subscription( + self, + input: CreateSpotDatafeedSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> CreateSpotDatafeedSubscriptionOutput: + """ + Creates a data feed for Spot Instances, enabling you to view Spot + Instance usage logs. You can create one data feed per Amazon Web + Services account. For more information, see [Spot Instance data + feed](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSpotDatafeedSubscriptionOutput`. + """ + return await self._invoke( + input, _models.CREATE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + async def create_store_image_task( + self, input: CreateStoreImageTaskInput, plugins: list[Plugin] | None = None + ) -> CreateStoreImageTaskOutput: + """ + Stores an AMI as a single object in an Amazon S3 bucket. + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateStoreImageTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStoreImageTaskOutput`. + """ + return await self._invoke(input, _models.CREATE_STORE_IMAGE_TASK, [], plugins) + + async def create_subnet( + self, input: CreateSubnetInput, plugins: list[Plugin] | None = None + ) -> CreateSubnetOutput: + """ + Creates a subnet in the specified VPC. For an IPv4 only subnet, specify + an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an + IPv6 only subnet or a dual stack subnet instead. For an IPv6 only + subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify + both an IPv4 CIDR block and an IPv6 CIDR block. + + A subnet CIDR block must not overlap the CIDR block of an existing + subnet in the VPC. After you create a subnet, you can't change its CIDR + block. + + The allowed size for an IPv4 subnet is between a /28 netmask (16 IP + addresses) and a /16 netmask (65,536 IP addresses). Amazon Web Services + reserves both the first four and the last IPv4 address in each subnet's + CIDR block. They're not available for your use. + + If you've associated an IPv6 CIDR block with your VPC, you can + associate an IPv6 CIDR block with a subnet when you create it. + + If you add more than one subnet to a VPC, they're set up in a star + topology with a logical router in the middle. + + When you stop an instance in a subnet, it retains its private IPv4 + address. It's therefore possible to have a subnet with no running + instances (they're all stopped), but no remaining IP addresses + available. + + For more information, see + [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSubnetOutput`. + """ + return await self._invoke(input, _models.CREATE_SUBNET, [], plugins) + + async def create_subnet_cidr_reservation( + self, + input: CreateSubnetCidrReservationInput, + plugins: list[Plugin] | None = None, + ) -> CreateSubnetCidrReservationOutput: + """ + Creates a subnet CIDR reservation. For more information, see [Subnet + CIDR + reservations](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html) + in the *Amazon VPC User Guide* and [Manage prefixes for your network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-prefixes.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateSubnetCidrReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSubnetCidrReservationOutput`. + """ + return await self._invoke( + input, _models.CREATE_SUBNET_CIDR_RESERVATION, [], plugins + ) + + async def create_tags( + self, input: CreateTagsInput, plugins: list[Plugin] | None = None + ) -> CreateTagsOutput: + """ + Adds or overwrites only the specified tags for the specified Amazon EC2 + resource or resources. When you specify an existing tag key, the value + is overwritten with the new value. Each resource can have a maximum of + 50 tags. Each tag consists of a key and optional value. Tag keys must be + unique per resource. + + For more information about tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. For more information + about creating IAM policies that control users' access to resources + based on tags, see [Supported resource-level permissions for Amazon EC2 + API + actions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `CreateTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTagsOutput`. + """ + return await self._invoke(input, _models.CREATE_TAGS, [], plugins) + + async def create_traffic_mirror_filter( + self, input: CreateTrafficMirrorFilterInput, plugins: list[Plugin] | None = None + ) -> CreateTrafficMirrorFilterOutput: + """ + Creates a Traffic Mirror filter. + + A Traffic Mirror filter is a set of rules that defines the traffic to + mirror. + + By default, no traffic is mirrored. To mirror traffic, use + [CreateTrafficMirrorFilterRule](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm) + to add Traffic Mirror rules to the filter. The rules you add define what + traffic gets mirrored. You can also use + [ModifyTrafficMirrorFilterNetworkServices](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html) + to mirror supported network services. + + Args: + input: + An instance of `CreateTrafficMirrorFilterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorFilterOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRAFFIC_MIRROR_FILTER, [], plugins + ) + + async def create_traffic_mirror_filter_rule( + self, + input: CreateTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorFilterRuleOutput: + """ + Creates a Traffic Mirror filter rule. + + A Traffic Mirror rule defines the Traffic Mirror source traffic to + mirror. + + You need the Traffic Mirror filter ID when you create the rule. + + Args: + input: + An instance of `CreateTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorFilterRuleOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + async def create_traffic_mirror_session( + self, + input: CreateTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorSessionOutput: + """ + Creates a Traffic Mirror session. + + A Traffic Mirror session actively copies packets from a Traffic Mirror + source to a Traffic Mirror target. Create a filter, and then assign it + to the session to define a subset of the traffic to mirror, for example + all TCP traffic. + + The Traffic Mirror source and the Traffic Mirror target (monitoring + appliances) can be in the same VPC, or in a different VPC connected via + VPC peering or a transit gateway. + + By default, no traffic is mirrored. Use + [CreateTrafficMirrorFilter](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.html) + to create filter rules that specify the traffic to mirror. + + Args: + input: + An instance of `CreateTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorSessionOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRAFFIC_MIRROR_SESSION, [], plugins + ) + + async def create_traffic_mirror_target( + self, input: CreateTrafficMirrorTargetInput, plugins: list[Plugin] | None = None + ) -> CreateTrafficMirrorTargetOutput: + """ + Creates a target for your Traffic Mirror session. + + A Traffic Mirror target is the destination for mirrored traffic. The + Traffic Mirror source and the Traffic Mirror target (monitoring + appliances) can be in the same VPC, or in different VPCs connected via + VPC peering or a transit gateway. + + A Traffic Mirror target can be a network interface, a Network Load + Balancer, or a Gateway Load Balancer endpoint. + + To use the target in a Traffic Mirror session, use + [CreateTrafficMirrorSession](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm). + + Args: + input: + An instance of `CreateTrafficMirrorTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorTargetOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRAFFIC_MIRROR_TARGET, [], plugins + ) + + async def create_transit_gateway( + self, input: CreateTransitGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateTransitGatewayOutput: + """ + Creates a transit gateway. + + You can use a transit gateway to interconnect your virtual private + clouds (VPC) and on-premises networks. After the transit gateway enters + the `available` state, you can attach your VPCs and VPN connections to + the transit gateway. + + To attach your VPCs, use CreateTransitGatewayVpcAttachment. + + To attach a VPN connection, use CreateCustomerGateway to create a + customer gateway and specify the ID of the customer gateway and the ID + of the transit gateway in a call to CreateVpnConnection. + + When you create a transit gateway, we create a default transit gateway + route table and use it as the default association route table and the + default propagation route table. You can use + CreateTransitGatewayRouteTable to create additional transit gateway + route tables. If you disable automatic route propagation, we do not + create a default transit gateway route table. You can use + EnableTransitGatewayRouteTablePropagation to propagate routes from a + resource attachment to a transit gateway route table. If you disable + automatic associations, you can use AssociateTransitGatewayRouteTable to + associate a resource attachment with a transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_TRANSIT_GATEWAY, [], plugins) + + async def create_transit_gateway_connect( + self, + input: CreateTransitGatewayConnectInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayConnectOutput: + """ + Creates a Connect attachment from a specified transit gateway + attachment. A Connect attachment is a GRE-based tunnel attachment that + you can use to establish a connection between a transit gateway and an + appliance. + + A Connect attachment uses an existing VPC or Amazon Web Services Direct + Connect attachment as the underlying transport mechanism. + + Args: + input: + An instance of `CreateTransitGatewayConnectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayConnectOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_CONNECT, [], plugins + ) + + async def create_transit_gateway_connect_peer( + self, + input: CreateTransitGatewayConnectPeerInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayConnectPeerOutput: + """ + Creates a Connect peer for a specified transit gateway Connect + attachment between a transit gateway and an appliance. + + The peer address and transit gateway address must be the same IP address + family (IPv4 or IPv6). + + For more information, see [Connect + peers](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer) + in the *Amazon Web Services Transit Gateways Guide*. + + Args: + input: + An instance of `CreateTransitGatewayConnectPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayConnectPeerOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_CONNECT_PEER, [], plugins + ) + + async def create_transit_gateway_metering_policy( + self, + input: CreateTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMeteringPolicyOutput: + """ + Creates a metering policy for a transit gateway to track and measure + network traffic. + + Args: + input: + An instance of `CreateTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMeteringPolicyOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + async def create_transit_gateway_metering_policy_entry( + self, + input: CreateTransitGatewayMeteringPolicyEntryInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMeteringPolicyEntryOutput: + """ + Creates an entry in a transit gateway metering policy to define traffic + measurement rules. + + Args: + input: + An instance of `CreateTransitGatewayMeteringPolicyEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMeteringPolicyEntryOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY, [], plugins + ) + + async def create_transit_gateway_multicast_domain( + self, + input: CreateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMulticastDomainOutput: + """ + Creates a multicast domain using the specified transit gateway. + + The transit gateway must be in the available state before you create a + domain. Use + [DescribeTransitGateways](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html) + to see the state of transit gateway. + + Args: + input: + An instance of `CreateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMulticastDomainOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + async def create_transit_gateway_peering_attachment( + self, + input: CreateTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPeeringAttachmentOutput: + """ + Requests a transit gateway peering attachment between the specified + transit gateway (requester) and a peer transit gateway (accepter). The + peer transit gateway can be in your account or a different Amazon Web + Services account. + + After you create the peering attachment, the owner of the accepter + transit gateway must accept the attachment request. + + Args: + input: + An instance of `CreateTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPeeringAttachmentOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + async def create_transit_gateway_policy_table( + self, + input: CreateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPolicyTableOutput: + """ + Creates a transit gateway policy table. + + Args: + input: + An instance of `CreateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPolicyTableOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + async def create_transit_gateway_policy_table_entry( + self, + input: CreateTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPolicyTableEntryOutput: + """ + Creates an entry in a transit gateway policy table to route matching + traffic to a specified route table. + + Args: + input: + An instance of `CreateTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPolicyTableEntryOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + async def create_transit_gateway_prefix_list_reference( + self, + input: CreateTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPrefixListReferenceOutput: + """ + Creates a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPrefixListReferenceOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + async def create_transit_gateway_route( + self, input: CreateTransitGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> CreateTransitGatewayRouteOutput: + """ + Creates a static route for the specified transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_ROUTE, [], plugins + ) + + async def create_transit_gateway_route_table( + self, + input: CreateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayRouteTableOutput: + """ + Creates a route table for the specified transit gateway. + + Args: + input: + An instance of `CreateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def create_transit_gateway_route_table_announcement( + self, + input: CreateTransitGatewayRouteTableAnnouncementInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayRouteTableAnnouncementOutput: + """ + Advertises a new transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayRouteTableAnnouncementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteTableAnnouncementOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, [], plugins + ) + + async def create_transit_gateway_vpc_attachment( + self, + input: CreateTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayVpcAttachmentOutput: + """ + Attaches the specified VPC to the specified transit gateway. + + If you attach a VPC with a CIDR range that overlaps the CIDR range of a + VPC that is already attached, the new VPC CIDR range is not propagated + to the default propagation route table. + + To send VPC traffic to an attached transit gateway, add a route to the + VPC route table using CreateRoute. + + Args: + input: + An instance of `CreateTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayVpcAttachmentOutput`. + """ + return await self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + async def create_verified_access_endpoint( + self, + input: CreateVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessEndpointOutput: + """ + An Amazon Web Services Verified Access endpoint is where you define your + application along with an optional endpoint-level access policy. + + Args: + input: + An instance of `CreateVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessEndpointOutput`. + """ + return await self._invoke( + input, _models.CREATE_VERIFIED_ACCESS_ENDPOINT, [], plugins + ) + + async def create_verified_access_group( + self, input: CreateVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> CreateVerifiedAccessGroupOutput: + """ + An Amazon Web Services Verified Access group is a collection of Amazon + Web Services Verified Access endpoints who's associated applications + have similar security requirements. Each instance within a Verified + Access group shares an Verified Access policy. For example, you can + group all Verified Access instances associated with \"sales\" + applications together and use one common Verified Access policy. + + Args: + input: + An instance of `CreateVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessGroupOutput`. + """ + return await self._invoke( + input, _models.CREATE_VERIFIED_ACCESS_GROUP, [], plugins + ) + + async def create_verified_access_instance( + self, + input: CreateVerifiedAccessInstanceInput, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessInstanceOutput: + """ + An Amazon Web Services Verified Access instance is a regional entity + that evaluates application requests and grants access only when your + security requirements are met. + + Args: + input: + An instance of `CreateVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessInstanceOutput`. + """ + return await self._invoke( + input, _models.CREATE_VERIFIED_ACCESS_INSTANCE, [], plugins + ) + + async def create_verified_access_trust_provider( + self, + input: CreateVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessTrustProviderOutput: + """ + A trust provider is a third-party entity that creates, maintains, and + manages identity information for users and devices. When an application + request is made, the identity information sent by the trust provider is + evaluated by Verified Access before allowing or denying the application + request. + + Args: + input: + An instance of `CreateVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessTrustProviderOutput`. + """ + return await self._invoke( + input, _models.CREATE_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + async def create_volume( + self, input: CreateVolumeInput, plugins: list[Plugin] | None = None + ) -> CreateVolumeOutput: + """ + Creates an EBS volume that can be attached to an instance in the same + Availability Zone. + + You can create a new empty volume or restore a volume from an EBS + snapshot. Any Amazon Web Services Marketplace product codes from the + snapshot are propagated to the volume. + + You can create encrypted volumes. Encrypted volumes must be attached to + instances that support Amazon EBS encryption. Volumes that are created + from encrypted snapshots are also automatically encrypted. For more + information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + You can tag your volumes during creation. For more information, see [Tag + your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon EC2 User Guide*. + + For more information, see [Create an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CreateVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVolumeOutput`. + """ + return await self._invoke(input, _models.CREATE_VOLUME, [], plugins) + + async def create_vpc( + self, input: CreateVpcInput, plugins: list[Plugin] | None = None + ) -> CreateVpcOutput: + """ + Creates a VPC with the specified CIDR blocks. + + A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 + CIDR block or an IPAM-allocated IPv4 CIDR block. You can optionally + associate an IPv6 CIDR block with a VPC. You can choose an IPv6 CIDR + block, an Amazon-provided IPv6 CIDR block, an IPAM-allocated IPv6 CIDR + block, or an IPv6 CIDR block that you brought to Amazon Web Services. + For more information, see [IP addressing for your VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) + in the *Amazon VPC User Guide*. + + By default, each instance that you launch in the VPC has the default + DHCP options, which include only a default DNS server that we provide + (AmazonProvidedDNS). For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + You can specify DNS options and tenancy for a VPC when you create it. + You can't change the tenancy of a VPC after you create it. For more + information, see [VPC configuration + options](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc-options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcOutput`. + """ + return await self._invoke(input, _models.CREATE_VPC, [], plugins) + + async def create_vpc_block_public_access_exclusion( + self, + input: CreateVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcBlockPublicAccessExclusionOutput: + """ + Create a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcBlockPublicAccessExclusionOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + async def create_vpc_encryption_control( + self, + input: CreateVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEncryptionControlOutput: + """ + Creates a VPC Encryption Control configuration for a specified VPC. VPC + Encryption Control enables you to enforce encryption for all data in + transit within and between VPCs to meet compliance requirements for + standards like HIPAA, FedRAMP, and PCI DSS. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEncryptionControlOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + async def create_vpc_endpoint( + self, input: CreateVpcEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateVpcEndpointOutput: + """ + Creates a VPC endpoint. A VPC endpoint provides a private connection + between the specified VPC and the specified endpoint service. You can + use an endpoint service provided by Amazon Web Services, an Amazon Web + Services Marketplace Partner, or another Amazon Web Services account. + For more information, see the [Amazon Web Services PrivateLink User + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `CreateVpcEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointOutput`. + """ + return await self._invoke(input, _models.CREATE_VPC_ENDPOINT, [], plugins) + + async def create_vpc_endpoint_connection_notification( + self, + input: CreateVpcEndpointConnectionNotificationInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEndpointConnectionNotificationOutput: + """ + Creates a connection notification for a specified VPC endpoint or VPC + endpoint service. A connection notification notifies you of specific + endpoint events. You must create an SNS topic to receive notifications. + For more information, see [Creating an Amazon SNS + topic](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) in + the *Amazon SNS Developer Guide*. + + You can create a connection notification for interface endpoints only. + + Args: + input: + An instance of `CreateVpcEndpointConnectionNotificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointConnectionNotificationOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION, [], plugins + ) + + async def create_vpc_endpoint_service_configuration( + self, + input: CreateVpcEndpointServiceConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEndpointServiceConfigurationOutput: + """ + Creates a VPC endpoint service to which service consumers (Amazon Web + Services accounts, users, and IAM roles) can connect. + + Before you create an endpoint service, you must create one of the + following for your service: + + - A [Network Load + Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/). + Service consumers connect to your service using an interface endpoint. + + - A [Gateway Load + Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/). + Service consumers connect to your service using a Gateway Load + Balancer endpoint. + + If you set the private DNS name, you must prove that you own the private + DNS domain name. + + For more information, see the [Amazon Web Services PrivateLink + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `CreateVpcEndpointServiceConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointServiceConfigurationOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION, [], plugins + ) + + async def create_vpc_peering_connection( + self, + input: CreateVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcPeeringConnectionOutput: + """ + Requests a VPC peering connection between two VPCs: a requester VPC that + you own and an accepter VPC with which to create the connection. The + accepter VPC can belong to another Amazon Web Services account and can + be in a different Region to the requester VPC. The requester VPC and + accepter VPC cannot have overlapping CIDR blocks. + + Note: + Limitations and rules apply to a VPC peering connection. For more + information, see the [VPC peering + limitations](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations) + in the *VPC Peering Guide*. + + The owner of the accepter VPC must accept the peering request to + activate the peering connection. The VPC peering connection request + expires after 7 days, after which it cannot be accepted or rejected. + + If you create a VPC peering connection request between VPCs with + overlapping CIDR blocks, the VPC peering connection has a status of + `failed`. + + Args: + input: + An instance of `CreateVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcPeeringConnectionOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPC_PEERING_CONNECTION, [], plugins + ) + + async def create_vpn_concentrator( + self, input: CreateVpnConcentratorInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConcentratorOutput: + """ + Creates a VPN concentrator that aggregates multiple VPN connections to a + transit gateway. + + Args: + input: + An instance of `CreateVpnConcentratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConcentratorOutput`. + """ + return await self._invoke(input, _models.CREATE_VPN_CONCENTRATOR, [], plugins) + + async def create_vpn_connection( + self, input: CreateVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConnectionOutput: + """ + Creates a VPN connection between an existing virtual private gateway or + transit gateway and a customer gateway. The supported connection type is + `ipsec.1`. + + The response includes information that you need to give to your network + administrator to configure your customer gateway. + + Warning: + We strongly recommend that you use HTTPS when calling this operation + because the response contains sensitive cryptographic information for + configuring your customer gateway device. + + If you decide to shut down your VPN connection for any reason and later + create a new VPN connection, you must reconfigure your customer gateway + with the new information returned from this call. + + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConnectionOutput`. + """ + return await self._invoke(input, _models.CREATE_VPN_CONNECTION, [], plugins) + + async def create_vpn_connection_route( + self, input: CreateVpnConnectionRouteInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConnectionRouteOutput: + """ + Creates a static route associated with a VPN connection between an + existing virtual private gateway and a VPN customer gateway. The static + route allows traffic to be routed from the virtual private gateway to + the VPN customer gateway. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnConnectionRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConnectionRouteOutput`. + """ + return await self._invoke( + input, _models.CREATE_VPN_CONNECTION_ROUTE, [], plugins + ) + + async def create_vpn_gateway( + self, input: CreateVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateVpnGatewayOutput: + """ + Creates a virtual private gateway. A virtual private gateway is the + endpoint on the VPC side of your VPN connection. You can create a + virtual private gateway before creating the VPC itself. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_VPN_GATEWAY, [], plugins) + + async def delete_application_status_check( + self, + input: DeleteApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> DeleteApplicationStatusCheckOutput: + """ + Deletes an application status check. The following rules apply: + + - Deleting a check automatically removes all of its associations. + + - Use `DescribeApplicationStatusChecks` to view existing checks before + deleting. + + Args: + input: + An instance of `DeleteApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteApplicationStatusCheckOutput`. + """ + return await self._invoke( + input, _models.DELETE_APPLICATION_STATUS_CHECK, [], plugins + ) + + async def delete_capacity_manager_data_export( + self, + input: DeleteCapacityManagerDataExportInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCapacityManagerDataExportOutput: + """ + Deletes an existing Capacity Manager data export configuration. This + stops future scheduled exports but does not delete previously exported + files from S3. + + Args: + input: + An instance of `DeleteCapacityManagerDataExportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCapacityManagerDataExportOutput`. + """ + return await self._invoke( + input, _models.DELETE_CAPACITY_MANAGER_DATA_EXPORT, [], plugins + ) + + async def delete_carrier_gateway( + self, input: DeleteCarrierGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteCarrierGatewayOutput: + """ + Deletes a carrier gateway. + + Warning: + If you do not delete the route that contains the carrier gateway as the + Target, the route is a blackhole route. For information about how to + delete a route, see + [DeleteRoute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html). + + Args: + input: + An instance of `DeleteCarrierGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCarrierGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_CARRIER_GATEWAY, [], plugins) + + async def delete_client_vpn_endpoint( + self, input: DeleteClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteClientVpnEndpointOutput: + """ + Deletes the specified Client VPN endpoint. You must disassociate all + target networks before you can delete a Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnEndpointOutput`. + """ + return await self._invoke( + input, _models.DELETE_CLIENT_VPN_ENDPOINT, [], plugins + ) + + async def delete_client_vpn_endpoint_authorization_policy( + self, + input: DeleteClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteClientVpnEndpointAuthorizationPolicyOutput: + """ + Deletes the authorization policy for a Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnEndpointAuthorizationPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + async def delete_client_vpn_route( + self, input: DeleteClientVpnRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteClientVpnRouteOutput: + """ + Deletes a route from a Client VPN endpoint. You can only delete routes + that you manually added using the **CreateClientVpnRoute** action. You + cannot delete routes that were automatically added when associating a + subnet. To remove routes that have been automatically added, + disassociate the target subnet from the Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnRouteOutput`. + """ + return await self._invoke(input, _models.DELETE_CLIENT_VPN_ROUTE, [], plugins) + + async def delete_coip_cidr( + self, input: DeleteCoipCidrInput, plugins: list[Plugin] | None = None + ) -> DeleteCoipCidrOutput: + """ + Deletes a range of customer-owned IP addresses. + + Args: + input: + An instance of `DeleteCoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCoipCidrOutput`. + """ + return await self._invoke(input, _models.DELETE_COIP_CIDR, [], plugins) + + async def delete_coip_pool( + self, input: DeleteCoipPoolInput, plugins: list[Plugin] | None = None + ) -> DeleteCoipPoolOutput: + """ + Deletes a pool of customer-owned IP (CoIP) addresses. + + Args: + input: + An instance of `DeleteCoipPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCoipPoolOutput`. + """ + return await self._invoke(input, _models.DELETE_COIP_POOL, [], plugins) + + async def delete_customer_gateway( + self, input: DeleteCustomerGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteCustomerGatewayOutput: + """ + Deletes the specified customer gateway. You must delete the VPN + connection before you can delete the customer gateway. + + Args: + input: + An instance of `DeleteCustomerGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomerGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_CUSTOMER_GATEWAY, [], plugins) + + async def delete_dhcp_options( + self, input: DeleteDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> DeleteDhcpOptionsOutput: + """ + Deletes the specified set of DHCP options. You must disassociate the set + of DHCP options before you can delete it. You can disassociate the set + of DHCP options by associating either a new set of options or the + default set of options with the VPC. + + Args: + input: + An instance of `DeleteDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDhcpOptionsOutput`. + """ + return await self._invoke(input, _models.DELETE_DHCP_OPTIONS, [], plugins) + + async def delete_egress_only_internet_gateway( + self, + input: DeleteEgressOnlyInternetGatewayInput, + plugins: list[Plugin] | None = None, + ) -> DeleteEgressOnlyInternetGatewayOutput: + """ + Deletes an egress-only internet gateway. + + Args: + input: + An instance of `DeleteEgressOnlyInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteEgressOnlyInternetGatewayOutput`. + """ + return await self._invoke( + input, _models.DELETE_EGRESS_ONLY_INTERNET_GATEWAY, [], plugins + ) + + async def delete_fleets( + self, input: DeleteFleetsInput, plugins: list[Plugin] | None = None + ) -> DeleteFleetsOutput: + """ + Deletes the specified EC2 Fleet request. + + After you delete an EC2 Fleet request, it launches no new instances. + + You must also specify whether a deleted EC2 Fleet request should + terminate its instances. If you choose to terminate the instances, the + EC2 Fleet request enters the `deleted_terminating` state. Otherwise, it + enters the `deleted_running` state, and the instances continue to run + until they are interrupted or you terminate them manually. + + A deleted `instant` fleet with running instances is not supported. When + you delete an `instant` fleet, Amazon EC2 automatically terminates all + its instances. For fleets with more than 1000 instances, the deletion + request might fail. If your fleet has more than 1000 instances, first + terminate most of the instances manually, leaving 1000 or fewer. Then + delete the fleet, and the remaining instances will be terminated + automatically. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + **Restrictions** + + - You can delete up to 25 fleets of type `instant` in a single request. + + - You can delete up to 100 fleets of type `maintain` or `request` in a + single request. + + - You can delete up to 125 fleets in a single request, provided you do + not exceed the quota for each fleet type, as specified above. + + - If you exceed the specified number of fleets to delete, no fleets are + deleted. + + For more information, see [Delete an EC2 Fleet request and the instances + in the + fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-fleet.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFleetsOutput`. + """ + return await self._invoke(input, _models.DELETE_FLEETS, [], plugins) + + async def delete_flow_logs( + self, input: DeleteFlowLogsInput, plugins: list[Plugin] | None = None + ) -> DeleteFlowLogsOutput: + """ + Deletes one or more flow logs. + + Args: + input: + An instance of `DeleteFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFlowLogsOutput`. + """ + return await self._invoke(input, _models.DELETE_FLOW_LOGS, [], plugins) + + async def delete_fpga_image( + self, input: DeleteFpgaImageInput, plugins: list[Plugin] | None = None + ) -> DeleteFpgaImageOutput: + """ + Deletes the specified Amazon FPGA Image (AFI). + + Args: + input: + An instance of `DeleteFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFpgaImageOutput`. + """ + return await self._invoke(input, _models.DELETE_FPGA_IMAGE, [], plugins) + + async def delete_image_usage_report( + self, input: DeleteImageUsageReportInput, plugins: list[Plugin] | None = None + ) -> DeleteImageUsageReportOutput: + """ + Deletes the specified image usage report. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteImageUsageReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteImageUsageReportOutput`. + """ + return await self._invoke(input, _models.DELETE_IMAGE_USAGE_REPORT, [], plugins) + + async def delete_instance_connect_endpoint( + self, + input: DeleteInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> DeleteInstanceConnectEndpointOutput: + """ + Deletes the specified EC2 Instance Connect Endpoint. + + Args: + input: + An instance of `DeleteInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceConnectEndpointOutput`. + """ + return await self._invoke( + input, _models.DELETE_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + async def delete_instance_event_window( + self, input: DeleteInstanceEventWindowInput, plugins: list[Plugin] | None = None + ) -> DeleteInstanceEventWindowOutput: + """ + Deletes the specified event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceEventWindowOutput`. + """ + return await self._invoke( + input, _models.DELETE_INSTANCE_EVENT_WINDOW, [], plugins + ) + + async def delete_internet_gateway( + self, input: DeleteInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteInternetGatewayOutput: + """ + Deletes the specified internet gateway. You must detach the internet + gateway from the VPC before you can delete it. + + Args: + input: + An instance of `DeleteInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInternetGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_INTERNET_GATEWAY, [], plugins) + + async def delete_ipam( + self, input: DeleteIpamInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamOutput: + """ + Delete an IPAM. Deleting an IPAM removes all monitored data associated + with the IPAM including the historical data for CIDRs. + + For more information, see [Delete an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/delete-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamOutput`. + """ + return await self._invoke(input, _models.DELETE_IPAM, [], plugins) + + async def delete_ipam_external_resource_verification_token( + self, + input: DeleteIpamExternalResourceVerificationTokenInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamExternalResourceVerificationTokenOutput: + """ + Delete a verification token. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `DeleteIpamExternalResourceVerificationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamExternalResourceVerificationTokenOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, [], plugins + ) + + async def delete_ipam_internet_registry_association( + self, + input: DeleteIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamInternetRegistryAssociationOutput: + """ + Deletes an IPAM internet registry association. Before deleting, you must + remove all routing policy registrations associated with the internet + registry. + + Args: + input: + An instance of `DeleteIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamInternetRegistryAssociationOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + async def delete_ipam_policy( + self, input: DeleteIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamPolicyOutput: + """ + Deletes an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DeleteIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_IPAM_POLICY, [], plugins) + + async def delete_ipam_pool( + self, input: DeleteIpamPoolInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamPoolOutput: + """ + Delete an IPAM pool. + + Note: + You cannot delete an IPAM pool if there are allocations in it or CIDRs + provisioned to it. To release allocations, see + [ReleaseIpamPoolAllocation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html). + To deprovision pool CIDRs, see + [DeprovisionIpamPoolCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html). + + For more information, see [Delete a + pool](https://docs.aws.amazon.com/vpc/latest/ipam/delete-pool-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPoolOutput`. + """ + return await self._invoke(input, _models.DELETE_IPAM_POOL, [], plugins) + + async def delete_ipam_prefix_list_resolver( + self, + input: DeleteIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamPrefixListResolverOutput: + """ + Deletes an IPAM prefix list resolver. Before deleting a resolver, you + must first delete all resolver targets associated with it. + + Args: + input: + An instance of `DeleteIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPrefixListResolverOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + async def delete_ipam_prefix_list_resolver_target( + self, + input: DeleteIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamPrefixListResolverTargetOutput: + """ + Deletes an IPAM prefix list resolver target. This removes the + association between the resolver and the managed prefix list, stopping + automatic CIDR synchronization. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPrefixListResolverTargetOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + async def delete_ipam_resource_discovery( + self, + input: DeleteIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamResourceDiscoveryOutput: + """ + Deletes an IPAM resource discovery. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `DeleteIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamResourceDiscoveryOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + async def delete_ipam_routing_policy_registration( + self, + input: DeleteIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamRoutingPolicyRegistrationOutput: + """ + Deletes a routing policy registration for a specified CIDR prefix. + + Args: + input: + An instance of `DeleteIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamRoutingPolicyRegistrationOutput`. + """ + return await self._invoke( + input, _models.DELETE_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + async def delete_ipam_scope( + self, input: DeleteIpamScopeInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamScopeOutput: + """ + Delete the scope for an IPAM. You cannot delete the default scopes. + + For more information, see [Delete a + scope](https://docs.aws.amazon.com/vpc/latest/ipam/delete-scope-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamScopeOutput`. + """ + return await self._invoke(input, _models.DELETE_IPAM_SCOPE, [], plugins) + + async def delete_key_pair( + self, input: DeleteKeyPairInput, plugins: list[Plugin] | None = None + ) -> DeleteKeyPairOutput: + """ + Deletes the specified key pair, by removing the public key from Amazon + EC2. + + Args: + input: + An instance of `DeleteKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyPairOutput`. + """ + return await self._invoke(input, _models.DELETE_KEY_PAIR, [], plugins) + + async def delete_launch_template( + self, input: DeleteLaunchTemplateInput, plugins: list[Plugin] | None = None + ) -> DeleteLaunchTemplateOutput: + """ + Deletes a launch template. Deleting a launch template deletes all of its + versions. + + Args: + input: + An instance of `DeleteLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLaunchTemplateOutput`. + """ + return await self._invoke(input, _models.DELETE_LAUNCH_TEMPLATE, [], plugins) + + async def delete_launch_template_versions( + self, + input: DeleteLaunchTemplateVersionsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLaunchTemplateVersionsOutput: + """ + Deletes one or more versions of a launch template. + + You can't delete the default version of a launch template; you must + first assign a different version as the default. If the default version + is the only version for the launch template, you must delete the entire + launch template using DeleteLaunchTemplate. + + You can delete up to 200 launch template versions in a single request. + To delete more than 200 versions in a single request, use + DeleteLaunchTemplate, which deletes the launch template and all of its + versions. + + For more information, see [Delete a launch template + version](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-launch-template.html#delete-launch-template-version) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteLaunchTemplateVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLaunchTemplateVersionsOutput`. + """ + return await self._invoke( + input, _models.DELETE_LAUNCH_TEMPLATE_VERSIONS, [], plugins + ) + + async def delete_local_gateway_route( + self, input: DeleteLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteLocalGatewayRouteOutput: + """ + Deletes the specified route from the specified local gateway route + table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_ROUTE, [], plugins + ) + + async def delete_local_gateway_route_table( + self, + input: DeleteLocalGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableOutput: + """ + Deletes a local gateway route table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def delete_local_gateway_route_table_virtual_interface_group_association( + self, + input: DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput: + """ + Deletes a local gateway route table virtual interface group association. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput`. + """ + return await self._invoke( + input, + _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + [], + plugins, + ) + + async def delete_local_gateway_route_table_vpc_association( + self, + input: DeleteLocalGatewayRouteTableVpcAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableVpcAssociationOutput: + """ + Deletes the specified association between a VPC and local gateway route + table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableVpcAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableVpcAssociationOutput`. + """ + return await self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, [], plugins + ) + + async def delete_local_gateway_virtual_interface( + self, + input: DeleteLocalGatewayVirtualInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayVirtualInterfaceOutput: + """ + Deletes the specified local gateway virtual interface. + + Args: + input: + An instance of `DeleteLocalGatewayVirtualInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayVirtualInterfaceOutput`. + """ + return await self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE, [], plugins + ) + + async def delete_local_gateway_virtual_interface_group( + self, + input: DeleteLocalGatewayVirtualInterfaceGroupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayVirtualInterfaceGroupOutput: + """ + Delete the specified local gateway interface group. + + Args: + input: + An instance of `DeleteLocalGatewayVirtualInterfaceGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayVirtualInterfaceGroupOutput`. + """ + return await self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, [], plugins + ) + + async def delete_managed_prefix_list( + self, input: DeleteManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> DeleteManagedPrefixListOutput: + """ + Deletes the specified managed prefix list. You must first remove all + references to the prefix list in your resources. + + Args: + input: + An instance of `DeleteManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteManagedPrefixListOutput`. + """ + return await self._invoke( + input, _models.DELETE_MANAGED_PREFIX_LIST, [], plugins + ) + + async def delete_nat_gateway( + self, input: DeleteNatGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteNatGatewayOutput: + """ + Deletes the specified NAT gateway. Deleting a public NAT gateway + disassociates its Elastic IP address, but does not release the address + from your account. Deleting a NAT gateway does not delete any NAT + gateway routes in your route tables. + + Args: + input: + An instance of `DeleteNatGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNatGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_NAT_GATEWAY, [], plugins) + + async def delete_network_acl( + self, input: DeleteNetworkAclInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkAclOutput: + """ + Deletes the specified network ACL. You can't delete the ACL if it's + associated with any subnets. You can't delete the default network ACL. + + Args: + input: + An instance of `DeleteNetworkAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkAclOutput`. + """ + return await self._invoke(input, _models.DELETE_NETWORK_ACL, [], plugins) + + async def delete_network_acl_entry( + self, input: DeleteNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkAclEntryOutput: + """ + Deletes the specified ingress or egress entry (rule) from the specified + network ACL. + + Args: + input: + An instance of `DeleteNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkAclEntryOutput`. + """ + return await self._invoke(input, _models.DELETE_NETWORK_ACL_ENTRY, [], plugins) + + async def delete_network_insights_access_scope( + self, + input: DeleteNetworkInsightsAccessScopeInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAccessScopeOutput: + """ + Deletes the specified Network Access Scope. + + Args: + input: + An instance of `DeleteNetworkInsightsAccessScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAccessScopeOutput`. + """ + return await self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE, [], plugins + ) + + async def delete_network_insights_access_scope_analysis( + self, + input: DeleteNetworkInsightsAccessScopeAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAccessScopeAnalysisOutput: + """ + Deletes the specified Network Access Scope analysis. + + Args: + input: + An instance of `DeleteNetworkInsightsAccessScopeAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAccessScopeAnalysisOutput`. + """ + return await self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, [], plugins + ) + + async def delete_network_insights_analysis( + self, + input: DeleteNetworkInsightsAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAnalysisOutput: + """ + Deletes the specified network insights analysis. + + Args: + input: + An instance of `DeleteNetworkInsightsAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAnalysisOutput`. + """ + return await self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ANALYSIS, [], plugins + ) + + async def delete_network_insights_path( + self, input: DeleteNetworkInsightsPathInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkInsightsPathOutput: + """ + Deletes the specified path. + + Args: + input: + An instance of `DeleteNetworkInsightsPathInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsPathOutput`. + """ + return await self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_PATH, [], plugins + ) + + async def delete_network_interface( + self, input: DeleteNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkInterfaceOutput: + """ + Deletes the specified network interface. You must detach the network + interface before you can delete it. + + Args: + input: + An instance of `DeleteNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInterfaceOutput`. + """ + return await self._invoke(input, _models.DELETE_NETWORK_INTERFACE, [], plugins) + + async def delete_network_interface_permission( + self, + input: DeleteNetworkInterfacePermissionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInterfacePermissionOutput: + """ + Deletes a permission for a network interface. By default, you cannot + delete the permission if the account for which you're removing the + permission has attached the network interface to an instance. However, + you can force delete the permission, regardless of any attachment. + + Args: + input: + An instance of `DeleteNetworkInterfacePermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInterfacePermissionOutput`. + """ + return await self._invoke( + input, _models.DELETE_NETWORK_INTERFACE_PERMISSION, [], plugins + ) + + async def delete_placement_group( + self, input: DeletePlacementGroupInput, plugins: list[Plugin] | None = None + ) -> DeletePlacementGroupOutput: + """ + Deletes the specified placement group. You must terminate all instances + in the placement group before you can delete the placement group. You + cannot delete a placement group that is a parent of a cluster placement + group. Delete the cluster placement groups first. For more information, + see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeletePlacementGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePlacementGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_PLACEMENT_GROUP, [], plugins) + + async def delete_public_ipv4_pool( + self, input: DeletePublicIpv4PoolInput, plugins: list[Plugin] | None = None + ) -> DeletePublicIpv4PoolOutput: + """ + Delete a public IPv4 pool. A public IPv4 pool is an EC2 IP address pool + required for the public IPv4 CIDRs that you own and bring to Amazon Web + Services to manage with IPAM. IPv6 addresses you bring to Amazon Web + Services, however, use IPAM pools only. + + Args: + input: + An instance of `DeletePublicIpv4PoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicIpv4PoolOutput`. + """ + return await self._invoke(input, _models.DELETE_PUBLIC_IPV4_POOL, [], plugins) + + async def delete_queued_reserved_instances( + self, + input: DeleteQueuedReservedInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DeleteQueuedReservedInstancesOutput: + """ + Deletes the queued purchases for the specified Reserved Instances. + + Args: + input: + An instance of `DeleteQueuedReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteQueuedReservedInstancesOutput`. + """ + return await self._invoke( + input, _models.DELETE_QUEUED_RESERVED_INSTANCES, [], plugins + ) + + async def delete_route( + self, input: DeleteRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteOutput: + """ + Deletes the specified route from the specified route table. + + Args: + input: + An instance of `DeleteRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteOutput`. + """ + return await self._invoke(input, _models.DELETE_ROUTE, [], plugins) + + async def delete_route_server( + self, input: DeleteRouteServerInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerOutput: + """ + Deletes the specified route server. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerOutput`. + """ + return await self._invoke(input, _models.DELETE_ROUTE_SERVER, [], plugins) + + async def delete_route_server_endpoint( + self, input: DeleteRouteServerEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerEndpointOutput: + """ + Deletes the specified route server endpoint. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + Args: + input: + An instance of `DeleteRouteServerEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerEndpointOutput`. + """ + return await self._invoke( + input, _models.DELETE_ROUTE_SERVER_ENDPOINT, [], plugins + ) + + async def delete_route_server_peer( + self, input: DeleteRouteServerPeerInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerPeerOutput: + """ + Deletes the specified BGP peer from a route server. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + Args: + input: + An instance of `DeleteRouteServerPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerPeerOutput`. + """ + return await self._invoke(input, _models.DELETE_ROUTE_SERVER_PEER, [], plugins) + + async def delete_route_table( + self, input: DeleteRouteTableInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteTableOutput: + """ + Deletes the specified route table. You must disassociate the route table + from any subnets before you can delete it. You can't delete the main + route table. + + Args: + input: + An instance of `DeleteRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteTableOutput`. + """ + return await self._invoke(input, _models.DELETE_ROUTE_TABLE, [], plugins) + + async def delete_secondary_network( + self, input: DeleteSecondaryNetworkInput, plugins: list[Plugin] | None = None + ) -> DeleteSecondaryNetworkOutput: + """ + Deletes a secondary network. You must delete all secondary subnets in + the secondary network before you can delete the secondary network. + + Args: + input: + An instance of `DeleteSecondaryNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecondaryNetworkOutput`. + """ + return await self._invoke(input, _models.DELETE_SECONDARY_NETWORK, [], plugins) + + async def delete_secondary_subnet( + self, input: DeleteSecondarySubnetInput, plugins: list[Plugin] | None = None + ) -> DeleteSecondarySubnetOutput: + """ + Deletes a secondary subnet. A secondary subnet must not contain any + secondary interfaces prior to deletion. + + Args: + input: + An instance of `DeleteSecondarySubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecondarySubnetOutput`. + """ + return await self._invoke(input, _models.DELETE_SECONDARY_SUBNET, [], plugins) + + async def delete_security_group( + self, input: DeleteSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteSecurityGroupOutput: + """ + Deletes a security group. + + If you attempt to delete a security group that is associated with an + instance or network interface, is referenced by another security group + in the same VPC, or has a VPC association, the operation fails with + `DependencyViolation`. + + Args: + input: + An instance of `DeleteSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecurityGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_SECURITY_GROUP, [], plugins) + + async def delete_snapshot( + self, input: DeleteSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteSnapshotOutput: + """ + Deletes the specified snapshot. + + When you make periodic snapshots of a volume, the snapshots are + incremental, and only the blocks on the device that have changed since + your last snapshot are saved in the new snapshot. When you delete a + snapshot, only the data not needed for any other snapshot is removed. So + regardless of which prior snapshots have been deleted, all active + snapshots will have access to all the information needed to restore the + volume. + + You cannot delete a snapshot of the root device of an EBS volume used by + a registered AMI. You must first deregister the AMI before you can + delete the snapshot. + + For more information, see [Delete an Amazon EBS + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-snapshot.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DeleteSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSnapshotOutput`. + """ + return await self._invoke(input, _models.DELETE_SNAPSHOT, [], plugins) + + async def delete_spot_datafeed_subscription( + self, + input: DeleteSpotDatafeedSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteSpotDatafeedSubscriptionOutput: + """ + Deletes the data feed for Spot Instances. + + Args: + input: + An instance of `DeleteSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSpotDatafeedSubscriptionOutput`. + """ + return await self._invoke( + input, _models.DELETE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + async def delete_subnet( + self, input: DeleteSubnetInput, plugins: list[Plugin] | None = None + ) -> DeleteSubnetOutput: + """ + Deletes the specified subnet. You must terminate all running instances + in the subnet before you can delete the subnet. + + Args: + input: + An instance of `DeleteSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSubnetOutput`. + """ + return await self._invoke(input, _models.DELETE_SUBNET, [], plugins) + + async def delete_subnet_cidr_reservation( + self, + input: DeleteSubnetCidrReservationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteSubnetCidrReservationOutput: + """ + Deletes a subnet CIDR reservation. + + Args: + input: + An instance of `DeleteSubnetCidrReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSubnetCidrReservationOutput`. + """ + return await self._invoke( + input, _models.DELETE_SUBNET_CIDR_RESERVATION, [], plugins + ) + + async def delete_tags( + self, input: DeleteTagsInput, plugins: list[Plugin] | None = None + ) -> DeleteTagsOutput: + """ + Deletes the specified set of tags from the specified set of resources. + + To list the current tags, use DescribeTags. For more information about + tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `DeleteTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTagsOutput`. + """ + return await self._invoke(input, _models.DELETE_TAGS, [], plugins) + + async def delete_traffic_mirror_filter( + self, input: DeleteTrafficMirrorFilterInput, plugins: list[Plugin] | None = None + ) -> DeleteTrafficMirrorFilterOutput: + """ + Deletes the specified Traffic Mirror filter. + + You cannot delete a Traffic Mirror filter that is in use by a Traffic + Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorFilterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorFilterOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRAFFIC_MIRROR_FILTER, [], plugins + ) + + async def delete_traffic_mirror_filter_rule( + self, + input: DeleteTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTrafficMirrorFilterRuleOutput: + """ + Deletes the specified Traffic Mirror rule. + + Args: + input: + An instance of `DeleteTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorFilterRuleOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + async def delete_traffic_mirror_session( + self, + input: DeleteTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTrafficMirrorSessionOutput: + """ + Deletes the specified Traffic Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorSessionOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRAFFIC_MIRROR_SESSION, [], plugins + ) + + async def delete_traffic_mirror_target( + self, input: DeleteTrafficMirrorTargetInput, plugins: list[Plugin] | None = None + ) -> DeleteTrafficMirrorTargetOutput: + """ + Deletes the specified Traffic Mirror target. + + You cannot delete a Traffic Mirror target that is in use by a Traffic + Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorTargetOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRAFFIC_MIRROR_TARGET, [], plugins + ) + + async def delete_transit_gateway( + self, input: DeleteTransitGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteTransitGatewayOutput: + """ + Deletes the specified transit gateway. + + Args: + input: + An instance of `DeleteTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_TRANSIT_GATEWAY, [], plugins) + + async def delete_transit_gateway_client_vpn_attachment( + self, + input: DeleteTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayClientVpnAttachmentOutput: + """ + Deletes a Transit Gateway attachment for a Client VPN endpoint. The + Transit Gateway owner can delete the attachment to remove the + association between the Client VPN endpoint and the Transit Gateway. + + Args: + input: + An instance of `DeleteTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayClientVpnAttachmentOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + async def delete_transit_gateway_connect( + self, + input: DeleteTransitGatewayConnectInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayConnectOutput: + """ + Deletes the specified Connect attachment. You must first delete any + Connect peers for the attachment. + + Args: + input: + An instance of `DeleteTransitGatewayConnectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayConnectOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_CONNECT, [], plugins + ) + + async def delete_transit_gateway_connect_peer( + self, + input: DeleteTransitGatewayConnectPeerInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayConnectPeerOutput: + """ + Deletes the specified Connect peer. + + Args: + input: + An instance of `DeleteTransitGatewayConnectPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayConnectPeerOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_CONNECT_PEER, [], plugins + ) + + async def delete_transit_gateway_metering_policy( + self, + input: DeleteTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMeteringPolicyOutput: + """ + Deletes a transit gateway metering policy. + + Args: + input: + An instance of `DeleteTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMeteringPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + async def delete_transit_gateway_metering_policy_entry( + self, + input: DeleteTransitGatewayMeteringPolicyEntryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMeteringPolicyEntryOutput: + """ + Deletes an entry from a transit gateway metering policy. + + Args: + input: + An instance of `DeleteTransitGatewayMeteringPolicyEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMeteringPolicyEntryOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY, [], plugins + ) + + async def delete_transit_gateway_multicast_domain( + self, + input: DeleteTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMulticastDomainOutput: + """ + Deletes the specified transit gateway multicast domain. + + Args: + input: + An instance of `DeleteTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMulticastDomainOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + async def delete_transit_gateway_peering_attachment( + self, + input: DeleteTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPeeringAttachmentOutput: + """ + Deletes a transit gateway peering attachment. + + Args: + input: + An instance of `DeleteTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPeeringAttachmentOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + async def delete_transit_gateway_policy_table( + self, + input: DeleteTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPolicyTableOutput: + """ + Deletes the specified transit gateway policy table. + + Args: + input: + An instance of `DeleteTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPolicyTableOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + async def delete_transit_gateway_policy_table_entry( + self, + input: DeleteTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPolicyTableEntryOutput: + """ + Deletes the specified transit gateway policy table entry. + + Args: + input: + An instance of `DeleteTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPolicyTableEntryOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + async def delete_transit_gateway_prefix_list_reference( + self, + input: DeleteTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPrefixListReferenceOutput: + """ + Deletes a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `DeleteTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPrefixListReferenceOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + async def delete_transit_gateway_route( + self, input: DeleteTransitGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteTransitGatewayRouteOutput: + """ + Deletes the specified route from the specified transit gateway route + table. + + Args: + input: + An instance of `DeleteTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_ROUTE, [], plugins + ) + + async def delete_transit_gateway_route_table( + self, + input: DeleteTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayRouteTableOutput: + """ + Deletes the specified transit gateway route table. Before you can delete + a transit gateway route table, you must disassociate all attachments + from it by using DisassociateTransitGatewayRouteTable and wait for the + disassociations to complete. You can't delete a transit gateway route + table that is the default association route table or default propagation + route table for the transit gateway. To change the default route tables, + use ModifyTransitGateway. + + Args: + input: + An instance of `DeleteTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def delete_transit_gateway_route_table_announcement( + self, + input: DeleteTransitGatewayRouteTableAnnouncementInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayRouteTableAnnouncementOutput: + """ + Advertises to the transit gateway that a transit gateway route table is + deleted. + + Args: + input: + An instance of `DeleteTransitGatewayRouteTableAnnouncementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteTableAnnouncementOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, [], plugins + ) + + async def delete_transit_gateway_vpc_attachment( + self, + input: DeleteTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayVpcAttachmentOutput: + """ + Deletes the specified VPC attachment. + + Args: + input: + An instance of `DeleteTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayVpcAttachmentOutput`. + """ + return await self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + async def delete_verified_access_endpoint( + self, + input: DeleteVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessEndpointOutput: + """ + Delete an Amazon Web Services Verified Access endpoint. + + Args: + input: + An instance of `DeleteVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessEndpointOutput`. + """ + return await self._invoke( + input, _models.DELETE_VERIFIED_ACCESS_ENDPOINT, [], plugins + ) + + async def delete_verified_access_group( + self, input: DeleteVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteVerifiedAccessGroupOutput: + """ + Delete an Amazon Web Services Verified Access group. + + Args: + input: + An instance of `DeleteVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessGroupOutput`. + """ + return await self._invoke( + input, _models.DELETE_VERIFIED_ACCESS_GROUP, [], plugins + ) + + async def delete_verified_access_instance( + self, + input: DeleteVerifiedAccessInstanceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessInstanceOutput: + """ + Delete an Amazon Web Services Verified Access instance. + + Args: + input: + An instance of `DeleteVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessInstanceOutput`. + """ + return await self._invoke( + input, _models.DELETE_VERIFIED_ACCESS_INSTANCE, [], plugins + ) + + async def delete_verified_access_trust_provider( + self, + input: DeleteVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessTrustProviderOutput: + """ + Delete an Amazon Web Services Verified Access trust provider. + + Args: + input: + An instance of `DeleteVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessTrustProviderOutput`. + """ + return await self._invoke( + input, _models.DELETE_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + async def delete_volume( + self, input: DeleteVolumeInput, plugins: list[Plugin] | None = None + ) -> DeleteVolumeOutput: + """ + Deletes the specified EBS volume. The volume must be in the `available` + state (not attached to an instance). + + The volume can remain in the `deleting` state for several minutes. + + For more information, see [Delete an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DeleteVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVolumeOutput`. + """ + return await self._invoke(input, _models.DELETE_VOLUME, [], plugins) + + async def delete_vpc( + self, input: DeleteVpcInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcOutput: + """ + Deletes the specified VPC. You must detach or delete all gateways and + resources that are associated with the VPC before you can delete it. For + example, you must terminate all instances running in the VPC, delete all + security groups associated with the VPC (except the default one), delete + all route tables associated with the VPC (except the default one), and + so on. When you delete the VPC, it deletes the default security group, + network ACL, and route table for the VPC. + + If you created a flow log for the VPC that you are deleting, note that + flow logs for deleted VPCs are eventually automatically removed. + + Args: + input: + An instance of `DeleteVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcOutput`. + """ + return await self._invoke(input, _models.DELETE_VPC, [], plugins) + + async def delete_vpc_block_public_access_exclusion( + self, + input: DeleteVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcBlockPublicAccessExclusionOutput: + """ + Delete a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcBlockPublicAccessExclusionOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + async def delete_vpc_encryption_control( + self, + input: DeleteVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEncryptionControlOutput: + """ + Deletes a VPC Encryption Control configuration. This removes the + encryption policy enforcement from the specified VPC. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEncryptionControlOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + async def delete_vpc_endpoint_connection_notifications( + self, + input: DeleteVpcEndpointConnectionNotificationsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEndpointConnectionNotificationsOutput: + """ + Deletes the specified VPC endpoint connection notifications. + + Args: + input: + An instance of `DeleteVpcEndpointConnectionNotificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointConnectionNotificationsOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS, [], plugins + ) + + async def delete_vpc_endpoints( + self, input: DeleteVpcEndpointsInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcEndpointsOutput: + """ + Deletes the specified VPC endpoints. + + When you delete a gateway endpoint, we delete the endpoint routes in the + route tables for the endpoint. + + When you delete a Gateway Load Balancer endpoint, we delete its endpoint + network interfaces. You can only delete Gateway Load Balancer endpoints + when the routes that are associated with the endpoint are deleted. + + When you delete an interface endpoint, we delete its endpoint network + interfaces. + + Args: + input: + An instance of `DeleteVpcEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointsOutput`. + """ + return await self._invoke(input, _models.DELETE_VPC_ENDPOINTS, [], plugins) + + async def delete_vpc_endpoint_service_configurations( + self, + input: DeleteVpcEndpointServiceConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEndpointServiceConfigurationsOutput: + """ + Deletes the specified VPC endpoint service configurations. Before you + can delete an endpoint service configuration, you must reject any + `Available` or `PendingAcceptance` interface endpoint connections that + are attached to the service. + + Args: + input: + An instance of `DeleteVpcEndpointServiceConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointServiceConfigurationsOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS, [], plugins + ) + + async def delete_vpc_peering_connection( + self, + input: DeleteVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcPeeringConnectionOutput: + """ + Deletes a VPC peering connection. Either the owner of the requester VPC + or the owner of the accepter VPC can delete the VPC peering connection + if it's in the `active` state. The owner of the requester VPC can + delete a VPC peering connection in the `pending-acceptance` state. You + cannot delete a VPC peering connection that's in the `failed` or + `rejected` state. + + Args: + input: + An instance of `DeleteVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcPeeringConnectionOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPC_PEERING_CONNECTION, [], plugins + ) + + async def delete_vpn_concentrator( + self, input: DeleteVpnConcentratorInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConcentratorOutput: + """ + Deletes the specified VPN concentrator. + + Args: + input: + An instance of `DeleteVpnConcentratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConcentratorOutput`. + """ + return await self._invoke(input, _models.DELETE_VPN_CONCENTRATOR, [], plugins) + + async def delete_vpn_connection( + self, input: DeleteVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConnectionOutput: + """ + Deletes the specified VPN connection. + + If you're deleting the VPC and its associated components, we recommend + that you detach the virtual private gateway from the VPC and delete the + VPC before deleting the VPN connection. If you believe that the tunnel + credentials for your VPN connection have been compromised, you can + delete the VPN connection and create a new one that has new keys, + without needing to delete the VPC or virtual private gateway. If you + create a new VPN connection, you must reconfigure the customer gateway + device using the new configuration information returned with the new VPN + connection ID. + + For certificate-based authentication, delete all Certificate Manager + (ACM) private certificates used for the Amazon Web Services-side tunnel + endpoints for the VPN connection before deleting the VPN connection. + + Args: + input: + An instance of `DeleteVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConnectionOutput`. + """ + return await self._invoke(input, _models.DELETE_VPN_CONNECTION, [], plugins) + + async def delete_vpn_connection_route( + self, input: DeleteVpnConnectionRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConnectionRouteOutput: + """ + Deletes the specified static route associated with a VPN connection + between an existing virtual private gateway and a VPN customer gateway. + The static route allows traffic to be routed from the virtual private + gateway to the VPN customer gateway. + + Args: + input: + An instance of `DeleteVpnConnectionRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConnectionRouteOutput`. + """ + return await self._invoke( + input, _models.DELETE_VPN_CONNECTION_ROUTE, [], plugins + ) + + async def delete_vpn_gateway( + self, input: DeleteVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnGatewayOutput: + """ + Deletes the specified virtual private gateway. You must first detach the + virtual private gateway from the VPC. Note that you don't need to + delete the virtual private gateway if you plan to delete and recreate + the VPN connection between your VPC and your network. + + Args: + input: + An instance of `DeleteVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_VPN_GATEWAY, [], plugins) + + async def deprovision_byoip_cidr( + self, input: DeprovisionByoipCidrInput, plugins: list[Plugin] | None = None + ) -> DeprovisionByoipCidrOutput: + """ + Releases the specified address range that you provisioned for use with + your Amazon Web Services resources through bring your own IP addresses + (BYOIP) and deletes the corresponding address pool. + + Before you can release an address range, you must stop advertising it + and you must not have any IP addresses allocated from its address range. + + Args: + input: + An instance of `DeprovisionByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionByoipCidrOutput`. + """ + return await self._invoke(input, _models.DEPROVISION_BYOIP_CIDR, [], plugins) + + async def deprovision_ipam_byoasn( + self, input: DeprovisionIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> DeprovisionIpamByoasnOutput: + """ + Deprovisions your Autonomous System Number (ASN) from your Amazon Web + Services account. This action can only be called after any BYOIP CIDR + associations are removed from your Amazon Web Services account with + [DisassociateIpamByoasn](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIpamByoasn.html). + For more information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DeprovisionIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionIpamByoasnOutput`. + """ + return await self._invoke(input, _models.DEPROVISION_IPAM_BYOASN, [], plugins) + + async def deprovision_ipam_pool_cidr( + self, input: DeprovisionIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> DeprovisionIpamPoolCidrOutput: + """ + Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a + CIDR from a pool that has a source pool, the CIDR is recycled back into + the source pool. For more information, see [Deprovision pool + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/depro-pool-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeprovisionIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionIpamPoolCidrOutput`. + """ + return await self._invoke( + input, _models.DEPROVISION_IPAM_POOL_CIDR, [], plugins + ) + + async def deprovision_public_ipv4_pool_cidr( + self, + input: DeprovisionPublicIpv4PoolCidrInput, + plugins: list[Plugin] | None = None, + ) -> DeprovisionPublicIpv4PoolCidrOutput: + """ + Deprovision a CIDR from a public IPv4 pool. + + Args: + input: + An instance of `DeprovisionPublicIpv4PoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionPublicIpv4PoolCidrOutput`. + """ + return await self._invoke( + input, _models.DEPROVISION_PUBLIC_IPV4_POOL_CIDR, [], plugins + ) + + async def deregister_image( + self, input: DeregisterImageInput, plugins: list[Plugin] | None = None + ) -> DeregisterImageOutput: + """ + Deregisters the specified AMI. A deregistered AMI can't be used to + launch new instances. + + If a deregistered EBS-backed AMI matches a Recycle Bin retention rule, + it moves to the Recycle Bin for the specified retention period. It can + be restored before its retention period expires, after which it is + permanently deleted. If the deregistered AMI doesn't match a retention + rule, it is permanently deleted immediately. For more information, see + [Recover deleted Amazon EBS snapshots and EBS-backed AMIs with Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EBS User Guide*. + + When deregistering an EBS-backed AMI, you can optionally delete its + associated snapshots at the same time. However, if a snapshot is + associated with multiple AMIs, it won't be deleted even if specified + for deletion, although the AMI will still be deregistered. + + Deregistering an AMI does not delete the following: + + - Instances already launched from the AMI. You'll continue to incur + usage costs for the instances until you terminate them. + + - For EBS-backed AMIs: Snapshots that are associated with multiple AMIs. + You'll continue to incur snapshot storage costs. + + - For instance store-backed AMIs: The files uploaded to Amazon S3 during + AMI creation. You'll continue to incur S3 storage costs. + + For more information, see [Deregister an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeregisterImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterImageOutput`. + """ + return await self._invoke(input, _models.DEREGISTER_IMAGE, [], plugins) + + async def deregister_instance_event_notification_attributes( + self, + input: DeregisterInstanceEventNotificationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterInstanceEventNotificationAttributesOutput: + """ + Deregisters tag keys to prevent tags that have the specified tag keys + from being included in scheduled event notifications for resources in + the Region. + + Args: + input: + An instance of `DeregisterInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterInstanceEventNotificationAttributesOutput`. + """ + return await self._invoke( + input, + _models.DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, + [], + plugins, + ) + + async def deregister_transit_gateway_multicast_group_members( + self, + input: DeregisterTransitGatewayMulticastGroupMembersInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterTransitGatewayMulticastGroupMembersOutput: + """ + Deregisters the specified members (network interfaces) from the transit + gateway multicast group. + + Args: + input: + An instance of `DeregisterTransitGatewayMulticastGroupMembersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTransitGatewayMulticastGroupMembersOutput`. + """ + return await self._invoke( + input, + _models.DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS, + [], + plugins, + ) + + async def deregister_transit_gateway_multicast_group_sources( + self, + input: DeregisterTransitGatewayMulticastGroupSourcesInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterTransitGatewayMulticastGroupSourcesOutput: + """ + Deregisters the specified sources (network interfaces) from the transit + gateway multicast group. + + Args: + input: + An instance of `DeregisterTransitGatewayMulticastGroupSourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTransitGatewayMulticastGroupSourcesOutput`. + """ + return await self._invoke( + input, + _models.DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES, + [], + plugins, + ) + + async def describe_account_attributes( + self, input: DescribeAccountAttributesInput, plugins: list[Plugin] | None = None + ) -> DescribeAccountAttributesOutput: + """ + Describes attributes of your Amazon Web Services account. The following + are the supported account attributes: + + - `default-vpc`: The ID of the default VPC for your account, or `none`. + + - `max-instances`: This attribute is no longer supported. The returned + value does not reflect your actual vCPU limit for running On-Demand + Instances. For more information, see [On-Demand Instance + Limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits) + in the *Amazon Elastic Compute Cloud User Guide*. + + - `max-elastic-ips`: The maximum number of Elastic IP addresses that you + can allocate. + + - `supported-platforms`: This attribute is deprecated. + + - `vpc-max-elastic-ips`: The maximum number of Elastic IP addresses that + you can allocate. + + - `vpc-max-security-groups-per-interface`: The maximum number of + security groups that you can assign to a network interface. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeAccountAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountAttributesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ACCOUNT_ATTRIBUTES, [], plugins + ) + + async def describe_account_vpc_encryption_control( + self, + input: DescribeAccountVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountVpcEncryptionControlOutput: + """ + Describes the account-level VPC Encryption Control configuration for + your account. VPC Encryption Control enables you to enforce encryption + for all data in transit within and between VPCs to meet compliance + requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeAccountVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountVpcEncryptionControlOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + async def describe_addresses( + self, input: DescribeAddressesInput, plugins: list[Plugin] | None = None + ) -> DescribeAddressesOutput: + """ + Describes the specified Elastic IP addresses or all of your Elastic IP + addresses. + + Args: + input: + An instance of `DescribeAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ADDRESSES, [], plugins) + + async def describe_addresses_attribute( + self, + input: DescribeAddressesAttributeInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAddressesAttributeOutput: + """ + Describes the attributes of the specified Elastic IP addresses. For + requirements, see [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `DescribeAddressesAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressesAttributeOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ADDRESSES_ATTRIBUTE, [], plugins + ) + + async def describe_address_transfers( + self, input: DescribeAddressTransfersInput, plugins: list[Plugin] | None = None + ) -> DescribeAddressTransfersOutput: + """ + Describes an Elastic IP address transfer. For more information, see + [Transfer Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + When you transfer an Elastic IP address, there is a two-step handshake + between the source and transfer Amazon Web Services accounts. When the + source account starts the transfer, the transfer account has seven days + to accept the Elastic IP address transfer. During those seven days, the + source account can view the pending transfer by using this action. After + seven days, the transfer expires and ownership of the Elastic IP address + returns to the source account. Accepted transfers are visible to the + source account for 14 days after the transfers have been accepted. + + Args: + input: + An instance of `DescribeAddressTransfersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressTransfersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ADDRESS_TRANSFERS, [], plugins + ) + + async def describe_aggregate_id_format( + self, input: DescribeAggregateIdFormatInput, plugins: list[Plugin] | None = None + ) -> DescribeAggregateIdFormatOutput: + """ + Describes the longer ID format settings for all resource types in a + specific Region. This request is useful for performing a quick audit to + determine whether a specific Region is fully opted in for longer IDs + (17-character IDs). + + This request only returns information about resource types that support + longer IDs. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + Args: + input: + An instance of `DescribeAggregateIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAggregateIdFormatOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_AGGREGATE_ID_FORMAT, [], plugins + ) + + async def describe_application_status( + self, input: DescribeApplicationStatusInput, plugins: list[Plugin] | None = None + ) -> DescribeApplicationStatusOutput: + """ + Describes the aggregated application health status for the specified + instances. The following rules apply: + + - The instance-level status is derived from all application status + checks with the aggregation setting set to `included`. + + - Use `DescribeApplicationStatusChecks` to view the configuration of + individual checks. + + - Use `EnableApplicationStatusCheckSuppression` to temporarily suppress + health check results from affecting the instance-level status. + + Args: + input: + An instance of `DescribeApplicationStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_APPLICATION_STATUS, [], plugins + ) + + async def describe_application_status_check_associations( + self, + input: DescribeApplicationStatusCheckAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeApplicationStatusCheckAssociationsOutput: + """ + Describes the associations for one or more application status checks. + For more information, see [Application status + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-application-status-checks.html). + To avoid timeouts and retrieve complete results, use the pagination + parameters. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. + + Args: + input: + An instance of `DescribeApplicationStatusCheckAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusCheckAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS, [], plugins + ) + + async def describe_application_status_checks( + self, + input: DescribeApplicationStatusChecksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeApplicationStatusChecksOutput: + """ + Describes application status checks, including configuration details + such as protocol, port, path, thresholds, and associations. Results are + paginated. Use the `NextToken` parameter to retrieve additional results. + The following rules apply: + + - If you do not specify any application status check IDs, all checks in + your account are returned. + + - Use `DescribeApplicationStatus` to see the actual health status of + instances. + + Args: + input: + An instance of `DescribeApplicationStatusChecksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusChecksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_APPLICATION_STATUS_CHECKS, [], plugins + ) + + async def describe_availability_zones( + self, input: DescribeAvailabilityZonesInput, plugins: list[Plugin] | None = None + ) -> DescribeAvailabilityZonesOutput: + """ + Describes the Availability Zones, Local Zones, and Wavelength Zones that + are available to you. + + For more information about Availability Zones, Local Zones, and + Wavelength Zones, see [Regions and + zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeAvailabilityZonesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAvailabilityZonesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_AVAILABILITY_ZONES, [], plugins + ) + + async def describe_aws_network_performance_metric_subscriptions( + self, + input: DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeAwsNetworkPerformanceMetricSubscriptionsOutput: + """ + Describes the current Infrastructure Performance metric subscriptions. + + Args: + input: + An instance of `DescribeAwsNetworkPerformanceMetricSubscriptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAwsNetworkPerformanceMetricSubscriptionsOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS, + [], + plugins, + ) + + async def describe_bundle_tasks( + self, input: DescribeBundleTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeBundleTasksOutput: + """ + Describes the specified bundle tasks or all of your bundle tasks. + + Note: + Completed bundle tasks are listed for only a limited time. If your + bundle task is no longer in the list, you can still register an AMI from + it. Just use `RegisterImage` with the Amazon S3 bucket name and image + manifest name you provided to the bundle task. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeBundleTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBundleTasksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_BUNDLE_TASKS, [], plugins) + + async def describe_byoip_cidrs( + self, input: DescribeByoipCidrsInput, plugins: list[Plugin] | None = None + ) -> DescribeByoipCidrsOutput: + """ + Describes the IP address ranges that were provisioned for use with + Amazon Web Services resources through through bring your own IP + addresses (BYOIP). + + Args: + input: + An instance of `DescribeByoipCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeByoipCidrsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_BYOIP_CIDRS, [], plugins) + + async def describe_capacity_block_extension_history( + self, + input: DescribeCapacityBlockExtensionHistoryInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockExtensionHistoryOutput: + """ + Describes the events for the specified Capacity Block extension during + the specified time. + + Args: + input: + An instance of `DescribeCapacityBlockExtensionHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockExtensionHistoryOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY, [], plugins + ) + + async def describe_capacity_block_extension_offerings( + self, + input: DescribeCapacityBlockExtensionOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockExtensionOfferingsOutput: + """ + Describes Capacity Block extension offerings available for purchase in + the Amazon Web Services Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityBlockExtensionOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockExtensionOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS, [], plugins + ) + + async def describe_capacity_block_offerings( + self, + input: DescribeCapacityBlockOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockOfferingsOutput: + """ + Describes Capacity Block offerings available for purchase in the Amazon + Web Services Region that you're currently using. With Capacity Blocks, + you can purchase a specific GPU instance type or EC2 UltraServer for a + period of time. + + To search for an available Capacity Block offering, you specify a + reservation duration and instance count. + + Args: + input: + An instance of `DescribeCapacityBlockOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_OFFERINGS, [], plugins + ) + + async def describe_capacity_blocks( + self, input: DescribeCapacityBlocksInput, plugins: list[Plugin] | None = None + ) -> DescribeCapacityBlocksOutput: + """ + Describes details about Capacity Blocks in the Amazon Web Services + Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityBlocksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlocksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CAPACITY_BLOCKS, [], plugins) + + async def describe_capacity_block_status( + self, + input: DescribeCapacityBlockStatusInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockStatusOutput: + """ + Describes the availability of capacity for the specified Capacity + blocks, or all of your Capacity Blocks. + + Args: + input: + An instance of `DescribeCapacityBlockStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockStatusOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_STATUS, [], plugins + ) + + async def describe_capacity_manager_data_exports( + self, + input: DescribeCapacityManagerDataExportsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityManagerDataExportsOutput: + """ + Describes one or more Capacity Manager data export configurations. + Returns information about export settings, delivery status, and recent + export activity. + + Args: + input: + An instance of `DescribeCapacityManagerDataExportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityManagerDataExportsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS, [], plugins + ) + + async def describe_capacity_reservation_billing_requests( + self, + input: DescribeCapacityReservationBillingRequestsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationBillingRequestsOutput: + """ + Describes a request to assign the billing of the unused capacity of a + Capacity Reservation. For more information, see [Billing assignment for + shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/transfer-billing.html). + + Args: + input: + An instance of `DescribeCapacityReservationBillingRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationBillingRequestsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS, [], plugins + ) + + async def describe_capacity_reservation_cancellation_quotes( + self, + input: DescribeCapacityReservationCancellationQuotesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationCancellationQuotesOutput: + """ + Describes one or more Capacity Reservation cancellation quotes. The + results describe only the quotes that you have previously generated by + using the `CreateCapacityReservationCancellationQuote` action. + + Args: + input: + An instance of `DescribeCapacityReservationCancellationQuotesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationCancellationQuotesOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES, + [], + plugins, + ) + + async def describe_capacity_reservation_date_change_quotes( + self, + input: DescribeCapacityReservationDateChangeQuotesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationDateChangeQuotesOutput: + """ + Describes one or more Capacity Reservation date change quotes that you + generated by using the `CreateCapacityReservationDateChangeQuote` + operation. + + Args: + input: + An instance of `DescribeCapacityReservationDateChangeQuotesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationDateChangeQuotesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES, [], plugins + ) + + async def describe_capacity_reservation_fleets( + self, + input: DescribeCapacityReservationFleetsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationFleetsOutput: + """ + Describes one or more Capacity Reservation Fleets. + + Args: + input: + An instance of `DescribeCapacityReservationFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationFleetsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_FLEETS, [], plugins + ) + + async def describe_capacity_reservations( + self, + input: DescribeCapacityReservationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationsOutput: + """ + Describes one or more of your Capacity Reservations. The results + describe only the Capacity Reservations in the Amazon Web Services + Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATIONS, [], plugins + ) + + async def describe_capacity_reservation_topology( + self, + input: DescribeCapacityReservationTopologyInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationTopologyOutput: + """ + Describes a tree-based hierarchy that represents the physical host + placement of your pending or active Capacity Reservations within an + Availability Zone or Local Zone. You can use this information to + determine the relative proximity of your capacity within the Amazon Web + Services network before it is launched and use this information to + allocate capacity together to support your tightly coupled workloads. + + Capacity Reservation topology is supported for specific instance types + only. For more information, see [Prerequisites for Amazon EC2 instance + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html) + in the *Amazon EC2 User Guide*. + + Note: + The Amazon EC2 API follows an eventual consistency model due to the + distributed nature of the system supporting it. As a result, when you + call the DescribeCapacityReservationTopology API command immediately + after launching instances, the response might return a `null` value for + `capacityBlockId` because the data might not have fully propagated + across all subsystems. For more information, see [Eventual consistency + in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + For more information, see [Amazon EC2 + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeCapacityReservationTopologyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationTopologyOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY, [], plugins + ) + + async def describe_carrier_gateways( + self, input: DescribeCarrierGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeCarrierGatewaysOutput: + """ + Describes one or more of your carrier gateways. + + Args: + input: + An instance of `DescribeCarrierGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCarrierGatewaysOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CARRIER_GATEWAYS, [], plugins) + + async def describe_classic_link_instances( + self, + input: DescribeClassicLinkInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClassicLinkInstancesOutput: + """ + Note: + This action is deprecated. + + Describes your linked EC2-Classic instances. This request only returns + information about EC2-Classic instances linked to a VPC through + ClassicLink. You cannot use this request to return information about + other instances. + + Args: + input: + An instance of `DescribeClassicLinkInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClassicLinkInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLASSIC_LINK_INSTANCES, [], plugins + ) + + async def describe_client_vpn_authorization_rules( + self, + input: DescribeClientVpnAuthorizationRulesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnAuthorizationRulesOutput: + """ + Describes the authorization rules for a specified Client VPN endpoint. + + Args: + input: + An instance of `DescribeClientVpnAuthorizationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnAuthorizationRulesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES, [], plugins + ) + + async def describe_client_vpn_connections( + self, + input: DescribeClientVpnConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnConnectionsOutput: + """ + Describes active client connections and connections that have been + terminated within the last 60 minutes for the specified Client VPN + endpoint. + + Args: + input: + An instance of `DescribeClientVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnConnectionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_CONNECTIONS, [], plugins + ) + + async def describe_client_vpn_endpoints( + self, + input: DescribeClientVpnEndpointsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnEndpointsOutput: + """ + Describes one or more Client VPN endpoints in the account. + + Args: + input: + An instance of `DescribeClientVpnEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_ENDPOINTS, [], plugins + ) + + async def describe_client_vpn_routes( + self, input: DescribeClientVpnRoutesInput, plugins: list[Plugin] | None = None + ) -> DescribeClientVpnRoutesOutput: + """ + Describes the routes for the specified Client VPN endpoint. + + Args: + input: + An instance of `DescribeClientVpnRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnRoutesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_ROUTES, [], plugins + ) + + async def describe_client_vpn_target_networks( + self, + input: DescribeClientVpnTargetNetworksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnTargetNetworksOutput: + """ + Describes the target networks associated with the specified Client VPN + endpoint. + + Args: + input: + An instance of `DescribeClientVpnTargetNetworksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnTargetNetworksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_TARGET_NETWORKS, [], plugins + ) + + async def describe_coip_pools( + self, input: DescribeCoipPoolsInput, plugins: list[Plugin] | None = None + ) -> DescribeCoipPoolsOutput: + """ + Describes the specified customer-owned address pools or all of your + customer-owned address pools. + + Args: + input: + An instance of `DescribeCoipPoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCoipPoolsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_COIP_POOLS, [], plugins) + + async def describe_conversion_tasks( + self, input: DescribeConversionTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeConversionTasksOutput: + """ + Describes the specified conversion tasks or all your conversion tasks. + For more information, see the [VM Import/Export User + Guide](https://docs.aws.amazon.com/vm-import/latest/userguide/). + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + Args: + input: + An instance of `DescribeConversionTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeConversionTasksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CONVERSION_TASKS, [], plugins) + + async def describe_customer_gateways( + self, input: DescribeCustomerGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeCustomerGatewaysOutput: + """ + Describes one or more of your VPN customer gateways. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeCustomerGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCustomerGatewaysOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CUSTOMER_GATEWAYS, [], plugins + ) + + async def describe_declarative_policies_reports( + self, + input: DescribeDeclarativePoliciesReportsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDeclarativePoliciesReportsOutput: + """ + Describes the metadata of an account status report, including the status + of the report. + + To view the full report, download it from the Amazon S3 bucket where it + was saved. Reports are accessible only when they have the `complete` + status. Reports with other statuses (`running`, `cancelled`, or `error`) + are not available in the S3 bucket. For more information about + downloading objects from an S3 bucket, see [Downloading + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) + in the *Amazon Simple Storage Service User Guide*. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `DescribeDeclarativePoliciesReportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDeclarativePoliciesReportsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DECLARATIVE_POLICIES_REPORTS, [], plugins + ) + + async def describe_dhcp_options( + self, input: DescribeDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> DescribeDhcpOptionsOutput: + """ + Describes your DHCP option sets. The default is to describe all your + DHCP option sets. Alternatively, you can specify specific DHCP option + set IDs or filter the results to include only the DHCP option sets that + match specific criteria. + + For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDhcpOptionsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DHCP_OPTIONS, [], plugins) + + async def describe_egress_only_internet_gateways( + self, + input: DescribeEgressOnlyInternetGatewaysInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEgressOnlyInternetGatewaysOutput: + """ + Describes your egress-only internet gateways. The default is to describe + all your egress-only internet gateways. Alternatively, you can specify + specific egress-only internet gateway IDs or filter the results to + include only the egress-only internet gateways that match specific + criteria. + + Args: + input: + An instance of `DescribeEgressOnlyInternetGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEgressOnlyInternetGatewaysOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS, [], plugins + ) + + async def describe_elastic_gpus( + self, input: DescribeElasticGpusInput, plugins: list[Plugin] | None = None + ) -> DescribeElasticGpusOutput: + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + Describes the Elastic Graphics accelerator associated with your + instances. + + Args: + input: + An instance of `DescribeElasticGpusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeElasticGpusOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ELASTIC_GPUS, [], plugins) + + async def describe_export_image_tasks( + self, input: DescribeExportImageTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeExportImageTasksOutput: + """ + Describes the specified export image tasks or all of your export image + tasks. + + Args: + input: + An instance of `DescribeExportImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportImageTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_EXPORT_IMAGE_TASKS, [], plugins + ) + + async def describe_export_tasks( + self, input: DescribeExportTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeExportTasksOutput: + """ + Describes the specified export instance tasks or all of your export + instance tasks. + + Args: + input: + An instance of `DescribeExportTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportTasksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_EXPORT_TASKS, [], plugins) + + async def describe_fast_launch_images( + self, input: DescribeFastLaunchImagesInput, plugins: list[Plugin] | None = None + ) -> DescribeFastLaunchImagesOutput: + """ + Describe details for Windows AMIs that are configured for Windows fast + launch. + + Args: + input: + An instance of `DescribeFastLaunchImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFastLaunchImagesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_FAST_LAUNCH_IMAGES, [], plugins + ) + + async def describe_fast_snapshot_restores( + self, + input: DescribeFastSnapshotRestoresInput, + plugins: list[Plugin] | None = None, + ) -> DescribeFastSnapshotRestoresOutput: + """ + Describes the state of fast snapshot restores for your snapshots. + + Args: + input: + An instance of `DescribeFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFastSnapshotRestoresOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_FAST_SNAPSHOT_RESTORES, [], plugins + ) + + async def describe_fleet_history( + self, input: DescribeFleetHistoryInput, plugins: list[Plugin] | None = None + ) -> DescribeFleetHistoryOutput: + """ + Describes the events for the specified EC2 Fleet during the specified + time. + + EC2 Fleet events are delayed by up to 30 seconds before they can be + described. This ensures that you can query by the last evaluated time + and not miss a recorded event. EC2 Fleet events are available for 48 + hours. + + For more information, see [Monitor fleet events using Amazon + EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetHistoryOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FLEET_HISTORY, [], plugins) + + async def describe_fleet_instances( + self, input: DescribeFleetInstancesInput, plugins: list[Plugin] | None = None + ) -> DescribeFleetInstancesOutput: + """ + Describes the running instances for the specified EC2 Fleet. + + Note: + Currently, `DescribeFleetInstances` does not support fleets of type + `instant`. Instead, use `DescribeFleets`, specifying the `instant` fleet + ID in the request. + + For more information, see [Describe your EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetInstancesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FLEET_INSTANCES, [], plugins) + + async def describe_fleets( + self, input: DescribeFleetsInput, plugins: list[Plugin] | None = None + ) -> DescribeFleetsOutput: + """ + Describes the specified EC2 Fleet or all of your EC2 Fleets. + + Warning: + If a fleet is of type `instant`, you must specify the fleet ID in the + request, otherwise the fleet does not appear in the response. + + For more information, see [Describe your EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FLEETS, [], plugins) + + async def describe_flow_logs( + self, input: DescribeFlowLogsInput, plugins: list[Plugin] | None = None + ) -> DescribeFlowLogsOutput: + """ + Describes one or more flow logs. + + To view the published flow log records, you must view the log + destination. For example, the CloudWatch Logs log group, the Amazon S3 + bucket, or the Kinesis Data Firehose delivery stream. + + Args: + input: + An instance of `DescribeFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFlowLogsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FLOW_LOGS, [], plugins) + + async def describe_fpga_image_attribute( + self, + input: DescribeFpgaImageAttributeInput, + plugins: list[Plugin] | None = None, + ) -> DescribeFpgaImageAttributeOutput: + """ + Describes the specified attribute of the specified Amazon FPGA Image + (AFI). + + Args: + input: + An instance of `DescribeFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFpgaImageAttributeOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_FPGA_IMAGE_ATTRIBUTE, [], plugins + ) + + async def describe_fpga_images( + self, input: DescribeFpgaImagesInput, plugins: list[Plugin] | None = None + ) -> DescribeFpgaImagesOutput: + """ + Describes the Amazon FPGA Images (AFIs) available to you. These include + public AFIs, private AFIs that you own, and AFIs owned by other Amazon + Web Services accounts for which you have load permissions. + + Args: + input: + An instance of `DescribeFpgaImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFpgaImagesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_FPGA_IMAGES, [], plugins) + + async def describe_host_reservation_offerings( + self, + input: DescribeHostReservationOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeHostReservationOfferingsOutput: + """ + Describes the Dedicated Host reservations that are available to + purchase. + + The results describe all of the Dedicated Host reservation offerings, + including offerings that might not match the instance family and Region + of your Dedicated Hosts. When purchasing an offering, ensure that the + instance family and Region of the offering matches that of the Dedicated + Hosts with which it is to be associated. For more information about + supported instance types, see [Dedicated + Hosts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeHostReservationOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostReservationOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_HOST_RESERVATION_OFFERINGS, [], plugins + ) + + async def describe_host_reservations( + self, input: DescribeHostReservationsInput, plugins: list[Plugin] | None = None + ) -> DescribeHostReservationsOutput: + """ + Describes reservations that are associated with Dedicated Hosts in your + account. + + Args: + input: + An instance of `DescribeHostReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostReservationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_HOST_RESERVATIONS, [], plugins + ) + + async def describe_hosts( + self, input: DescribeHostsInput, plugins: list[Plugin] | None = None + ) -> DescribeHostsOutput: + """ + Describes the specified Dedicated Hosts or all your Dedicated Hosts. + + The results describe only the Dedicated Hosts in the Region you're + currently using. All listed instances consume capacity on your Dedicated + Host. Dedicated Hosts that have recently been released are listed with + the state `released`. + + Args: + input: + An instance of `DescribeHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_HOSTS, [], plugins) + + async def describe_iam_instance_profile_associations( + self, + input: DescribeIamInstanceProfileAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIamInstanceProfileAssociationsOutput: + """ + Describes your IAM instance profile associations. + + Args: + input: + An instance of `DescribeIamInstanceProfileAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIamInstanceProfileAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS, [], plugins + ) + + async def describe_identity_id_format( + self, input: DescribeIdentityIdFormatInput, plugins: list[Plugin] | None = None + ) -> DescribeIdentityIdFormatOutput: + """ + Describes the ID format settings for resources for the specified IAM + user, IAM role, or root user. For example, you can view the resource + types that are enabled for longer IDs. This request only returns + information about resource types whose ID formats can be modified; it + does not return information about other resource types. For more + information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + These settings apply to the principal specified in the request. They do + not apply to the principal that makes the request. + + Args: + input: + An instance of `DescribeIdentityIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIdentityIdFormatOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IDENTITY_ID_FORMAT, [], plugins + ) + + async def describe_id_format( + self, input: DescribeIdFormatInput, plugins: list[Plugin] | None = None + ) -> DescribeIdFormatOutput: + """ + Describes the ID format settings for your resources on a per-Region + basis, for example, to view which resource types are enabled for longer + IDs. This request only returns information about resource types whose ID + formats can be modified; it does not return information about other + resource types. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + These settings apply to the IAM user who makes the request; they do not + apply to the entire Amazon Web Services account. By default, an IAM user + defaults to the same settings as the root user, unless they explicitly + override the settings by running the ModifyIdFormat command. Resources + created with longer IDs are visible to all IAM users, regardless of + these settings and provided that they have permission to use the + relevant `Describe` command for the resource type. + + Args: + input: + An instance of `DescribeIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIdFormatOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ID_FORMAT, [], plugins) + + async def describe_image_attribute( + self, input: DescribeImageAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeImageAttributeOutput: + """ + Describes the specified attribute of the specified AMI. You can specify + only one attribute at a time. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageAttributeOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IMAGE_ATTRIBUTE, [], plugins) + + async def describe_image_references( + self, input: DescribeImageReferencesInput, plugins: list[Plugin] | None = None + ) -> DescribeImageReferencesOutput: + """ + Describes your Amazon Web Services resources that are referencing the + specified images. + + For more information, see [Identify your resources referencing specified + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageReferencesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IMAGE_REFERENCES, [], plugins) + + async def describe_images( + self, input: DescribeImagesInput, plugins: list[Plugin] | None = None + ) -> DescribeImagesOutput: + """ + Describes the specified images (AMIs, AKIs, and ARIs) available to you + or all of the images available to you. + + The images available to you include public images, private images that + you own, and private images owned by other Amazon Web Services accounts + for which you have explicit launch permissions. + + Recently deregistered images appear in the returned results for a short + interval and then return empty results. After all instances that + reference a deregistered AMI are terminated, specifying the ID of the + image will eventually return an error indicating that the AMI ID cannot + be found. + + When Allowed AMIs is set to `enabled`, only allowed images are returned + in the results, with the `imageAllowed` field set to `true` for each + image. In `audit-mode`, the `imageAllowed` field is set to `true` for + images that meet the account's Allowed AMIs criteria, and `false` for + images that don't meet the criteria. For more information, see [Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html). + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImagesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IMAGES, [], plugins) + + async def describe_image_usage_report_entries( + self, + input: DescribeImageUsageReportEntriesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeImageUsageReportEntriesOutput: + """ + Describes the entries in image usage reports, showing how your images + are used across other Amazon Web Services accounts. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageUsageReportEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageUsageReportEntriesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES, [], plugins + ) + + async def describe_image_usage_reports( + self, input: DescribeImageUsageReportsInput, plugins: list[Plugin] | None = None + ) -> DescribeImageUsageReportsOutput: + """ + Describes the configuration and status of image usage reports, filtered + by report IDs or image IDs. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageUsageReportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageUsageReportsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IMAGE_USAGE_REPORTS, [], plugins + ) + + async def describe_import_image_tasks( + self, input: DescribeImportImageTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeImportImageTasksOutput: + """ + Displays details about an import virtual machine or import snapshot + tasks that are already created. + + Args: + input: + An instance of `DescribeImportImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImportImageTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IMPORT_IMAGE_TASKS, [], plugins + ) + + async def describe_import_snapshot_tasks( + self, + input: DescribeImportSnapshotTasksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeImportSnapshotTasksOutput: + """ + Describes your import snapshot tasks. + + Args: + input: + An instance of `DescribeImportSnapshotTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImportSnapshotTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IMPORT_SNAPSHOT_TASKS, [], plugins + ) + + async def describe_instance_attribute( + self, input: DescribeInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeInstanceAttributeOutput: + """ + Describes the specified attribute of the specified instance. You can + specify only one attribute at a time. Available attributes include SQL + license exemption configuration for instances registered with the SQL LE + service. + + Args: + input: + An instance of `DescribeInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceAttributeOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_ATTRIBUTE, [], plugins + ) + + async def describe_instance_connect_endpoints( + self, + input: DescribeInstanceConnectEndpointsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceConnectEndpointsOutput: + """ + Describes the specified EC2 Instance Connect Endpoints or all EC2 + Instance Connect Endpoints. + + Args: + input: + An instance of `DescribeInstanceConnectEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceConnectEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_CONNECT_ENDPOINTS, [], plugins + ) + + async def describe_instance_credit_specifications( + self, + input: DescribeInstanceCreditSpecificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceCreditSpecificationsOutput: + """ + Describes the credit option for CPU usage of the specified burstable + performance instances. The credit options are `standard` and + `unlimited`. + + If you do not specify an instance ID, Amazon EC2 returns burstable + performance instances with the `unlimited` credit option, as well as + instances that were previously configured as T2, T3, and T3a with the + `unlimited` credit option. For example, if you resize a T2 instance, + while it is configured as `unlimited`, to an M4 instance, Amazon EC2 + returns the M4 instance. + + If you specify one or more instance IDs, Amazon EC2 returns the credit + option (`standard` or `unlimited`) of those instances. If you specify an + instance ID that is not a burstable performance instance, Amazon EC2 + returns the `standard` credit option. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + If an Availability Zone is experiencing a service disruption and you + specify instance IDs in the affected zone, or do not specify any + instance IDs at all, the call fails. If you specify only instance IDs in + an unaffected zone, the call works normally. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceCreditSpecificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceCreditSpecificationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS, [], plugins + ) + + async def describe_instance_event_notification_attributes( + self, + input: DescribeInstanceEventNotificationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceEventNotificationAttributesOutput: + """ + Describes the tag keys that are registered to appear in scheduled event + notifications for resources in the current Region. + + Args: + input: + An instance of `DescribeInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceEventNotificationAttributesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, [], plugins + ) + + async def describe_instance_event_windows( + self, + input: DescribeInstanceEventWindowsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceEventWindowsOutput: + """ + Describes the specified event windows or all event windows. + + If you specify event window IDs, the output includes information for + only the specified event windows. If you specify filters, the output + includes information for only those event windows that meet the filter + criteria. If you do not specify event windows IDs or filters, the output + includes information for all event windows, which can affect + performance. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceEventWindowsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceEventWindowsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_EVENT_WINDOWS, [], plugins + ) + + async def describe_instance_image_metadata( + self, + input: DescribeInstanceImageMetadataInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceImageMetadataOutput: + """ + Describes the AMI that was used to launch an instance, even if the AMI + is deprecated, deregistered, made private (no longer public or shared + with your account), or not allowed. + + If you specify instance IDs, the output includes information for only + the specified instances. If you specify filters, the output includes + information for only those instances that meet the filter criteria. If + you do not specify instance IDs or filters, the output includes + information for all instances, which can affect performance. + + If you specify an instance ID that is not valid, an instance that + doesn't exist, or an instance that you do not own, an error + (`InvalidInstanceID.NotFound`) is returned. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + In the rare case where an Availability Zone is experiencing a service + disruption and you specify instance IDs that are in the affected + Availability Zone, or do not specify any instance IDs at all, the call + fails. If you specify only instance IDs that are in an unaffected + Availability Zone, the call works normally. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstanceImageMetadataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceImageMetadataOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_IMAGE_METADATA, [], plugins + ) + + async def describe_instances( + self, input: DescribeInstancesInput, plugins: list[Plugin] | None = None + ) -> DescribeInstancesOutput: + """ + Describes the specified instances or all instances. + + If you specify instance IDs, the output includes information for only + the specified instances. If you specify filters, the output includes + information for only those instances that meet the filter criteria. If + you do not specify instance IDs or filters, the output includes + information for all instances, which can affect performance. We + recommend that you use pagination to ensure that the operation returns + quickly and successfully. + + The response includes SQL license exemption status information for + instances registered with the SQL LE service, providing visibility into + license exemption configuration and status. + + If you specify an instance ID that is not valid, an error is returned. + If you specify an instance that you do not own, it is not included in + the output. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + If you describe instances in the rare case where an Availability Zone is + experiencing a service disruption and you specify instance IDs that are + in the affected zone, or do not specify any instance IDs at all, the + call fails. If you describe instances and specify only instance IDs that + are in an unaffected zone, the call works normally. + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstancesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_INSTANCES, [], plugins) + + async def describe_instance_sql_ha_history_states( + self, + input: DescribeInstanceSqlHaHistoryStatesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceSqlHaHistoryStatesOutput: + """ + Describes the historical SQL Server High Availability states for Amazon + EC2 instances that are enabled for Amazon EC2 High Availability for SQL + Server monitoring. + + Args: + input: + An instance of `DescribeInstanceSqlHaHistoryStatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceSqlHaHistoryStatesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES, [], plugins + ) + + async def describe_instance_sql_ha_states( + self, + input: DescribeInstanceSqlHaStatesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceSqlHaStatesOutput: + """ + Describes the SQL Server High Availability states for Amazon EC2 + instances that are enabled for Amazon EC2 High Availability for SQL + Server monitoring. + + Args: + input: + An instance of `DescribeInstanceSqlHaStatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceSqlHaStatesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_SQL_HA_STATES, [], plugins + ) + + async def describe_instance_status( + self, input: DescribeInstanceStatusInput, plugins: list[Plugin] | None = None + ) -> DescribeInstanceStatusOutput: + """ + Describes the status of the specified instances or all of your + instances. By default, only running instances are described, unless you + specifically indicate to return the status of all instances. + + Instance status includes the following components: + + - **Status checks** - Amazon EC2 performs status checks on running EC2 + instances to identify hardware and software issues. For more + information, see [Status checks for your + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html) + and [Troubleshoot instances with failed status + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html) + in the *Amazon EC2 User Guide*. + + - **Application status checks** - Amazon EC2 reports application-level + health status for instances, indicating whether applications running + on the instance are functioning properly. + + - **Scheduled events** - Amazon EC2 can schedule events (such as reboot, + stop, or terminate) for your instances related to hardware issues, + software updates, or system maintenance. For more information, see + [Scheduled events for your + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html) + in the *Amazon EC2 User Guide*. + + - **Instance state** - You can manage your instances from the moment you + launch them through their termination. For more information, see + [Instance + lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstanceStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceStatusOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_INSTANCE_STATUS, [], plugins) + + async def describe_instance_topology( + self, input: DescribeInstanceTopologyInput, plugins: list[Plugin] | None = None + ) -> DescribeInstanceTopologyOutput: + """ + Describes a tree-based hierarchy that represents the physical host + placement of your EC2 instances within an Availability Zone or Local + Zone. You can use this information to determine the relative proximity + of your EC2 instances within the Amazon Web Services network to support + your tightly coupled workloads. + + Instance topology is supported for specific instance types only. For + more information, see [Prerequisites for Amazon EC2 instance + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html) + in the *Amazon EC2 User Guide*. + + Note: + The Amazon EC2 API follows an eventual consistency model due to the + distributed nature of the system supporting it. As a result, when you + call the DescribeInstanceTopology API command immediately after + launching instances, the response might return a `null` value for + `capacityBlockId` because the data might not have fully propagated + across all subsystems. For more information, see [Eventual consistency + in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + For more information, see [Amazon EC2 + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceTopologyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTopologyOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_TOPOLOGY, [], plugins + ) + + async def describe_instance_type_offerings( + self, + input: DescribeInstanceTypeOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceTypeOfferingsOutput: + """ + Lists the instance types that are offered for the specified location. If + no location is specified, the default is to list the instance types that + are offered in the current Region. + + Args: + input: + An instance of `DescribeInstanceTypeOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTypeOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INSTANCE_TYPE_OFFERINGS, [], plugins + ) + + async def describe_instance_types( + self, input: DescribeInstanceTypesInput, plugins: list[Plugin] | None = None + ) -> DescribeInstanceTypesOutput: + """ + Describes the specified instance types. By default, all instance types + for the current Region are described. Alternatively, you can filter the + results. To include instance types that are not supported in the current + Region, set `IncludeUnsupportedInRegion` to `true`. + + Args: + input: + An instance of `DescribeInstanceTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTypesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_INSTANCE_TYPES, [], plugins) + + async def describe_internet_gateways( + self, input: DescribeInternetGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeInternetGatewaysOutput: + """ + Describes your internet gateways. The default is to describe all your + internet gateways. Alternatively, you can specify specific internet + gateway IDs or filter the results to include only the internet gateways + that match specific criteria. + + Args: + input: + An instance of `DescribeInternetGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInternetGatewaysOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_INTERNET_GATEWAYS, [], plugins + ) + + async def describe_ipam_byoasn( + self, input: DescribeIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> DescribeIpamByoasnOutput: + """ + Describes your Autonomous System Numbers (ASNs), their provisioning + statuses, and the BYOIP CIDRs with which they are associated. For more + information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DescribeIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamByoasnOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPAM_BYOASN, [], plugins) + + async def describe_ipam_external_resource_verification_tokens( + self, + input: DescribeIpamExternalResourceVerificationTokensInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamExternalResourceVerificationTokensOutput: + """ + Describe verification tokens. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `DescribeIpamExternalResourceVerificationTokensInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamExternalResourceVerificationTokensOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS, + [], + plugins, + ) + + async def describe_ipam_internet_registry_associations( + self, + input: DescribeIpamInternetRegistryAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamInternetRegistryAssociationsOutput: + """ + Describes one or more IPAM internet registry associations. We recommend + using pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `DescribeIpamInternetRegistryAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamInternetRegistryAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS, [], plugins + ) + + async def describe_ipam_policies( + self, input: DescribeIpamPoliciesInput, plugins: list[Plugin] | None = None + ) -> DescribeIpamPoliciesOutput: + """ + Describes one or more IPAM policies. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DescribeIpamPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoliciesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPAM_POLICIES, [], plugins) + + async def describe_ipam_pool_allocations( + self, + input: DescribeIpamPoolAllocationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPoolAllocationsOutput: + """ + Describes IPAM pool allocations. You can describe all allocations owned + by you across all pools, or you can describe specific allocations by ID. + + If you specify `IpamPoolAllocationIds`, the results include only the + specified allocations. If you do not specify `IpamPoolAllocationIds`, + the results include all allocations owned by you. You can use `Filters` + to narrow the results. + + Note: + This action returns only allocations directly owned by you. To view all + allocations in a pool you own or that has been shared with you, + including allocations owned by other accounts, use + [GetIpamPoolAllocations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetIpamPoolAllocations.html). + + Args: + input: + An instance of `DescribeIpamPoolAllocationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoolAllocationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_POOL_ALLOCATIONS, [], plugins + ) + + async def describe_ipam_pools( + self, input: DescribeIpamPoolsInput, plugins: list[Plugin] | None = None + ) -> DescribeIpamPoolsOutput: + """ + Get information about your IPAM pools. + + Args: + input: + An instance of `DescribeIpamPoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoolsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPAM_POOLS, [], plugins) + + async def describe_ipam_prefix_list_resolvers( + self, + input: DescribeIpamPrefixListResolversInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPrefixListResolversOutput: + """ + Describes one or more IPAM prefix list resolvers. Use this operation to + view the configuration, status, and properties of your resolvers. + + Args: + input: + An instance of `DescribeIpamPrefixListResolversInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPrefixListResolversOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS, [], plugins + ) + + async def describe_ipam_prefix_list_resolver_targets( + self, + input: DescribeIpamPrefixListResolverTargetsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPrefixListResolverTargetsOutput: + """ + Describes one or more IPAM prefix list resolver Targets. Use this + operation to view the configuration and status of resolver targets. + + Args: + input: + An instance of `DescribeIpamPrefixListResolverTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPrefixListResolverTargetsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS, [], plugins + ) + + async def describe_ipam_resource_discoveries( + self, + input: DescribeIpamResourceDiscoveriesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamResourceDiscoveriesOutput: + """ + Describes IPAM resource discoveries. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `DescribeIpamResourceDiscoveriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamResourceDiscoveriesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_RESOURCE_DISCOVERIES, [], plugins + ) + + async def describe_ipam_resource_discovery_associations( + self, + input: DescribeIpamResourceDiscoveryAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamResourceDiscoveryAssociationsOutput: + """ + Describes resource discovery association with an Amazon VPC IPAM. An + associated resource discovery is a resource discovery that has been + associated with an IPAM.. + + Args: + input: + An instance of `DescribeIpamResourceDiscoveryAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamResourceDiscoveryAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS, [], plugins + ) + + async def describe_ipams( + self, input: DescribeIpamsInput, plugins: list[Plugin] | None = None + ) -> DescribeIpamsOutput: + """ + Get information about your IPAM pools. + + For more information, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DescribeIpamsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPAMS, [], plugins) + + async def describe_ipam_scopes( + self, input: DescribeIpamScopesInput, plugins: list[Plugin] | None = None + ) -> DescribeIpamScopesOutput: + """ + Get information about your IPAM scopes. + + Args: + input: + An instance of `DescribeIpamScopesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamScopesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPAM_SCOPES, [], plugins) + + async def describe_ipv6_pools( + self, input: DescribeIpv6PoolsInput, plugins: list[Plugin] | None = None + ) -> DescribeIpv6PoolsOutput: + """ + Describes your IPv6 address pools. + + Args: + input: + An instance of `DescribeIpv6PoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpv6PoolsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_IPV6_POOLS, [], plugins) + + async def describe_key_pairs( + self, input: DescribeKeyPairsInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyPairsOutput: + """ + Describes the specified key pairs or all of your key pairs. + + For more information about key pairs, see [Amazon EC2 key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeKeyPairsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyPairsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_KEY_PAIRS, [], plugins) + + async def describe_launch_templates( + self, input: DescribeLaunchTemplatesInput, plugins: list[Plugin] | None = None + ) -> DescribeLaunchTemplatesOutput: + """ + Describes one or more launch templates. + + Args: + input: + An instance of `DescribeLaunchTemplatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLaunchTemplatesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_LAUNCH_TEMPLATES, [], plugins) + + async def describe_launch_template_versions( + self, + input: DescribeLaunchTemplateVersionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLaunchTemplateVersionsOutput: + """ + Describes one or more versions of a specified launch template. You can + describe all versions, individual versions, or a range of versions. You + can also describe all the latest versions or all the default versions of + all the launch templates in your account. + + Args: + input: + An instance of `DescribeLaunchTemplateVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLaunchTemplateVersionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_LAUNCH_TEMPLATE_VERSIONS, [], plugins + ) + + async def describe_local_gateway_route_tables( + self, + input: DescribeLocalGatewayRouteTablesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTablesOutput: + """ + Describes one or more local gateway route tables. By default, all local + gateway route tables are described. Alternatively, you can filter the + results. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTablesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES, [], plugins + ) + + async def describe_local_gateway_route_table_virtual_interface_group_associations( + self, + input: DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput: + """ + Describes the associations between virtual interface groups and local + gateway route tables. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS, + [], + plugins, + ) + + async def describe_local_gateway_route_table_vpc_associations( + self, + input: DescribeLocalGatewayRouteTableVpcAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTableVpcAssociationsOutput: + """ + Describes the specified associations between VPCs and local gateway + route tables. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTableVpcAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTableVpcAssociationsOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS, + [], + plugins, + ) + + async def describe_local_gateways( + self, input: DescribeLocalGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeLocalGatewaysOutput: + """ + Describes one or more local gateways. By default, all local gateways are + described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeLocalGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewaysOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_LOCAL_GATEWAYS, [], plugins) + + async def describe_local_gateway_virtual_interface_groups( + self, + input: DescribeLocalGatewayVirtualInterfaceGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayVirtualInterfaceGroupsOutput: + """ + Describes the specified local gateway virtual interface groups. + + Args: + input: + An instance of `DescribeLocalGatewayVirtualInterfaceGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayVirtualInterfaceGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS, [], plugins + ) + + async def describe_local_gateway_virtual_interfaces( + self, + input: DescribeLocalGatewayVirtualInterfacesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayVirtualInterfacesOutput: + """ + Describes the specified local gateway virtual interfaces. + + Args: + input: + An instance of `DescribeLocalGatewayVirtualInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayVirtualInterfacesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES, [], plugins + ) + + async def describe_locked_snapshots( + self, input: DescribeLockedSnapshotsInput, plugins: list[Plugin] | None = None + ) -> DescribeLockedSnapshotsOutput: + """ + Describes the lock status for a snapshot. + + Args: + input: + An instance of `DescribeLockedSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLockedSnapshotsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_LOCKED_SNAPSHOTS, [], plugins) + + async def describe_mac_hosts( + self, input: DescribeMacHostsInput, plugins: list[Plugin] | None = None + ) -> DescribeMacHostsOutput: + """ + Describes the specified EC2 Mac Dedicated Host or all of your EC2 Mac + Dedicated Hosts. + + Args: + input: + An instance of `DescribeMacHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMacHostsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_MAC_HOSTS, [], plugins) + + async def describe_mac_modification_tasks( + self, + input: DescribeMacModificationTasksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeMacModificationTasksOutput: + """ + Describes a System Integrity Protection (SIP) modification task or + volume ownership delegation task for an Amazon EC2 Mac instance. For + more information, see [Configure SIP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeMacModificationTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMacModificationTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_MAC_MODIFICATION_TASKS, [], plugins + ) + + async def describe_managed_prefix_lists( + self, + input: DescribeManagedPrefixListsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeManagedPrefixListsOutput: + """ + Describes your managed prefix lists and any Amazon Web Services-managed + prefix lists. + + Args: + input: + An instance of `DescribeManagedPrefixListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeManagedPrefixListsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_MANAGED_PREFIX_LISTS, [], plugins + ) + + async def describe_moving_addresses( + self, input: DescribeMovingAddressesInput, plugins: list[Plugin] | None = None + ) -> DescribeMovingAddressesOutput: + """ + Note: + This action is deprecated. + + Describes your Elastic IP addresses that are being moved from or being + restored to the EC2-Classic platform. This request does not return + information about any other Elastic IP addresses in your account. + + Args: + input: + An instance of `DescribeMovingAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMovingAddressesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_MOVING_ADDRESSES, [], plugins) + + async def describe_nat_gateways( + self, input: DescribeNatGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeNatGatewaysOutput: + """ + Describes your NAT gateways. The default is to describe all your NAT + gateways. Alternatively, you can specify specific NAT gateway IDs or + filter the results to include only the NAT gateways that match specific + criteria. + + Args: + input: + An instance of `DescribeNatGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNatGatewaysOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_NAT_GATEWAYS, [], plugins) + + async def describe_network_acls( + self, input: DescribeNetworkAclsInput, plugins: list[Plugin] | None = None + ) -> DescribeNetworkAclsOutput: + """ + Describes your network ACLs. The default is to describe all your network + ACLs. Alternatively, you can specify specific network ACL IDs or filter + the results to include only the network ACLs that match specific + criteria. + + For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeNetworkAclsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkAclsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_NETWORK_ACLS, [], plugins) + + async def describe_network_insights_access_scope_analyses( + self, + input: DescribeNetworkInsightsAccessScopeAnalysesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAccessScopeAnalysesOutput: + """ + Describes the specified Network Access Scope analyses. + + Args: + input: + An instance of `DescribeNetworkInsightsAccessScopeAnalysesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAccessScopeAnalysesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES, [], plugins + ) + + async def describe_network_insights_access_scopes( + self, + input: DescribeNetworkInsightsAccessScopesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAccessScopesOutput: + """ + Describes the specified Network Access Scopes. + + Args: + input: + An instance of `DescribeNetworkInsightsAccessScopesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAccessScopesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES, [], plugins + ) + + async def describe_network_insights_analyses( + self, + input: DescribeNetworkInsightsAnalysesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAnalysesOutput: + """ + Describes one or more of your network insights analyses. + + Args: + input: + An instance of `DescribeNetworkInsightsAnalysesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAnalysesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ANALYSES, [], plugins + ) + + async def describe_network_insights_paths( + self, + input: DescribeNetworkInsightsPathsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsPathsOutput: + """ + Describes one or more of your paths. + + Args: + input: + An instance of `DescribeNetworkInsightsPathsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsPathsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_PATHS, [], plugins + ) + + async def describe_network_interface_attribute( + self, + input: DescribeNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInterfaceAttributeOutput: + """ + Describes a network interface attribute. You can specify only one + attribute at a time. + + Args: + input: + An instance of `DescribeNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfaceAttributeOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + async def describe_network_interface_permissions( + self, + input: DescribeNetworkInterfacePermissionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInterfacePermissionsOutput: + """ + Describes the permissions for your network interfaces. + + Args: + input: + An instance of `DescribeNetworkInterfacePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfacePermissionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INTERFACE_PERMISSIONS, [], plugins + ) + + async def describe_network_interfaces( + self, input: DescribeNetworkInterfacesInput, plugins: list[Plugin] | None = None + ) -> DescribeNetworkInterfacesOutput: + """ + Describes the specified network interfaces or all your network + interfaces. + + If you have a large number of network interfaces, the operation fails + unless you use pagination or one of the following filters: `group-id`, + `mac-address`, `private-dns-name`, `private-ip-address`, `subnet-id`, or + `vpc-id`. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + + Args: + input: + An instance of `DescribeNetworkInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfacesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_NETWORK_INTERFACES, [], plugins + ) + + async def describe_outpost_lags( + self, input: DescribeOutpostLagsInput, plugins: list[Plugin] | None = None + ) -> DescribeOutpostLagsOutput: + """ + Describes the Outposts link aggregation groups (LAGs). + + Note: + LAGs are only available for second-generation Outposts racks at this + time. + + Args: + input: + An instance of `DescribeOutpostLagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOutpostLagsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_OUTPOST_LAGS, [], plugins) + + async def describe_placement_groups( + self, input: DescribePlacementGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribePlacementGroupsOutput: + """ + Describes the specified placement groups or all of your placement + groups. + + Note: + To describe a specific placement group that is *shared* with your + account, you must specify the ID of the placement group using the + `GroupId` parameter. Specifying the name of a *shared* placement group + using the `GroupNames` parameter will result in an error. + + For more information, see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribePlacementGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePlacementGroupsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_PLACEMENT_GROUPS, [], plugins) + + async def describe_prefix_lists( + self, input: DescribePrefixListsInput, plugins: list[Plugin] | None = None + ) -> DescribePrefixListsOutput: + """ + Describes available Amazon Web Services services in a prefix list + format, which includes the prefix list name and prefix list ID of the + service and the IP address range for the service. + + Args: + input: + An instance of `DescribePrefixListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePrefixListsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_PREFIX_LISTS, [], plugins) + + async def describe_principal_id_format( + self, input: DescribePrincipalIdFormatInput, plugins: list[Plugin] | None = None + ) -> DescribePrincipalIdFormatOutput: + """ + Describes the ID format settings for the root user and all IAM roles and + IAM users that have explicitly specified a longer ID (17-character ID) + preference. + + By default, all IAM roles and IAM users default to the same ID settings + as the root user, unless they explicitly override the settings. This + request is useful for identifying those IAM users and IAM roles that + have overridden the default ID settings. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + Args: + input: + An instance of `DescribePrincipalIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePrincipalIdFormatOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_PRINCIPAL_ID_FORMAT, [], plugins + ) + + async def describe_public_ipv4_pools( + self, input: DescribePublicIpv4PoolsInput, plugins: list[Plugin] | None = None + ) -> DescribePublicIpv4PoolsOutput: + """ + Describes the specified IPv4 address pools. + + Args: + input: + An instance of `DescribePublicIpv4PoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePublicIpv4PoolsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_PUBLIC_IPV4_POOLS, [], plugins + ) + + async def describe_regions( + self, input: DescribeRegionsInput, plugins: list[Plugin] | None = None + ) -> DescribeRegionsOutput: + """ + Describes the Regions that are enabled for your account, or all Regions. + + For a list of the Regions supported by Amazon EC2, see [Amazon EC2 + service + endpoints](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html). + + For information about enabling and disabling Regions for your account, + see [Specify which Amazon Web Services Regions your account can + use](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) + in the *Amazon Web Services Account Management Reference Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeRegionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRegionsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_REGIONS, [], plugins) + + async def describe_replace_root_volume_tasks( + self, + input: DescribeReplaceRootVolumeTasksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReplaceRootVolumeTasksOutput: + """ + Describes a root volume replacement task. For more information, see + [Replace a root + volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeReplaceRootVolumeTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReplaceRootVolumeTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_REPLACE_ROOT_VOLUME_TASKS, [], plugins + ) + + async def describe_reserved_instances( + self, input: DescribeReservedInstancesInput, plugins: list[Plugin] | None = None + ) -> DescribeReservedInstancesOutput: + """ + Describes one or more of the Reserved Instances that you purchased. + + For more information about Reserved Instances, see [Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES, [], plugins + ) + + async def describe_reserved_instances_listings( + self, + input: DescribeReservedInstancesListingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesListingsOutput: + """ + Describes your account's Reserved Instance listings in the Reserved + Instance Marketplace. + + The Reserved Instance Marketplace matches sellers who want to resell + Reserved Instance capacity that they no longer need with buyers who want + to purchase additional capacity. Reserved Instances bought and sold + through the Reserved Instance Marketplace work like any other Reserved + Instances. + + As a seller, you choose to list some or all of your Reserved Instances, + and you specify the upfront price to receive for them. Your Reserved + Instances are then listed in the Reserved Instance Marketplace and are + available for purchase. + + As a buyer, you specify the configuration of the Reserved Instance to + purchase, and the Marketplace matches what you're searching for with + what's available. The Marketplace first sells the lowest priced + Reserved Instances to you, and continues to sell available Reserved + Instance listings to you until your demand is met. You are charged based + on the total price of all of the listings that you purchase. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesListingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesListingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_LISTINGS, [], plugins + ) + + async def describe_reserved_instances_modifications( + self, + input: DescribeReservedInstancesModificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesModificationsOutput: + """ + Describes the modifications made to your Reserved Instances. If no + parameter is specified, information about all your Reserved Instances + modification requests is returned. If a modification ID is specified, + only information about the specific modification is returned. + + For more information, see [Modify Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesModificationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS, [], plugins + ) + + async def describe_reserved_instances_offerings( + self, + input: DescribeReservedInstancesOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesOfferingsOutput: + """ + Describes Reserved Instance offerings that are available for purchase. + With Reserved Instances, you purchase the right to launch instances for + a period of time. During that time period, you do not receive + insufficient capacity errors, and you pay a lower usage rate than the + rate charged for On-Demand instances for the actual time used. + + If you have listed your own Reserved Instances for sale in the Reserved + Instance Marketplace, they will be excluded from these results. This is + to ensure that you do not purchase your own Reserved Instances. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_OFFERINGS, [], plugins + ) + + async def describe_route_server_endpoints( + self, + input: DescribeRouteServerEndpointsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeRouteServerEndpointsOutput: + """ + Describes one or more route server endpoints. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServerEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServerEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ROUTE_SERVER_ENDPOINTS, [], plugins + ) + + async def describe_route_server_peers( + self, input: DescribeRouteServerPeersInput, plugins: list[Plugin] | None = None + ) -> DescribeRouteServerPeersOutput: + """ + Describes one or more route server peers. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServerPeersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServerPeersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ROUTE_SERVER_PEERS, [], plugins + ) + + async def describe_route_servers( + self, input: DescribeRouteServersInput, plugins: list[Plugin] | None = None + ) -> DescribeRouteServersOutput: + """ + Describes one or more route servers. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServersOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ROUTE_SERVERS, [], plugins) + + async def describe_route_tables( + self, input: DescribeRouteTablesInput, plugins: list[Plugin] | None = None + ) -> DescribeRouteTablesOutput: + """ + Describes your route tables. The default is to describe all your route + tables. Alternatively, you can specify specific route table IDs or + filter the results to include only the route tables that match specific + criteria. + + Each subnet in your VPC must be associated with a route table. If a + subnet is not explicitly associated with any route table, it is + implicitly associated with the main route table. This command does not + return the subnet ID for implicit associations. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteTablesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ROUTE_TABLES, [], plugins) + + async def describe_scheduled_instance_availability( + self, + input: DescribeScheduledInstanceAvailabilityInput, + plugins: list[Plugin] | None = None, + ) -> DescribeScheduledInstanceAvailabilityOutput: + """ + Finds available schedules that meet the specified criteria. + + You can search for an available schedule no more than 3 months in + advance. You must meet the minimum required duration of 1,200 hours per + year. For example, the minimum daily schedule is 4 hours, the minimum + weekly schedule is 24 hours, and the minimum monthly schedule is 100 + hours. + + After you find a schedule that meets your needs, call + PurchaseScheduledInstances to purchase Scheduled Instances with that + schedule. + + Args: + input: + An instance of `DescribeScheduledInstanceAvailabilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeScheduledInstanceAvailabilityOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY, [], plugins + ) + + async def describe_scheduled_instances( + self, + input: DescribeScheduledInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeScheduledInstancesOutput: + """ + Describes the specified Scheduled Instances or all your Scheduled + Instances. + + Args: + input: + An instance of `DescribeScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeScheduledInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SCHEDULED_INSTANCES, [], plugins + ) + + async def describe_secondary_interfaces( + self, + input: DescribeSecondaryInterfacesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSecondaryInterfacesOutput: + """ + Describes one or more of your secondary interfaces. + + Args: + input: + An instance of `DescribeSecondaryInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondaryInterfacesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECONDARY_INTERFACES, [], plugins + ) + + async def describe_secondary_networks( + self, input: DescribeSecondaryNetworksInput, plugins: list[Plugin] | None = None + ) -> DescribeSecondaryNetworksOutput: + """ + Describes one or more secondary networks. + + Args: + input: + An instance of `DescribeSecondaryNetworksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondaryNetworksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECONDARY_NETWORKS, [], plugins + ) + + async def describe_secondary_subnets( + self, input: DescribeSecondarySubnetsInput, plugins: list[Plugin] | None = None + ) -> DescribeSecondarySubnetsOutput: + """ + Describes one or more of your secondary subnets. + + Args: + input: + An instance of `DescribeSecondarySubnetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondarySubnetsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECONDARY_SUBNETS, [], plugins + ) + + async def describe_security_group_references( + self, + input: DescribeSecurityGroupReferencesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupReferencesOutput: + """ + Describes the VPCs on the other side of a VPC peering or Transit Gateway + connection that are referencing the security groups you've specified in + this request. + + Args: + input: + An instance of `DescribeSecurityGroupReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupReferencesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECURITY_GROUP_REFERENCES, [], plugins + ) + + async def describe_security_group_rules( + self, + input: DescribeSecurityGroupRulesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupRulesOutput: + """ + Describes one or more of your security group rules. + + Args: + input: + An instance of `DescribeSecurityGroupRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupRulesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECURITY_GROUP_RULES, [], plugins + ) + + async def describe_security_groups( + self, input: DescribeSecurityGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeSecurityGroupsOutput: + """ + Describes the specified security groups or all of your security groups. + + Args: + input: + An instance of `DescribeSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_SECURITY_GROUPS, [], plugins) + + async def describe_security_group_vpc_associations( + self, + input: DescribeSecurityGroupVpcAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupVpcAssociationsOutput: + """ + Describes security group VPC associations made with + [AssociateSecurityGroupVpc](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateSecurityGroupVpc.html). + + Args: + input: + An instance of `DescribeSecurityGroupVpcAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupVpcAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS, [], plugins + ) + + async def describe_service_link_virtual_interfaces( + self, + input: DescribeServiceLinkVirtualInterfacesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeServiceLinkVirtualInterfacesOutput: + """ + Describes the Outpost service link virtual interfaces. + + Args: + input: + An instance of `DescribeServiceLinkVirtualInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceLinkVirtualInterfacesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES, [], plugins + ) + + async def describe_snapshot_attribute( + self, input: DescribeSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeSnapshotAttributeOutput: + """ + Describes the specified attribute of the specified snapshot. You can + specify only one attribute at a time. + + For more information about EBS snapshots, see [Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotAttributeOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SNAPSHOT_ATTRIBUTE, [], plugins + ) + + async def describe_snapshots( + self, input: DescribeSnapshotsInput, plugins: list[Plugin] | None = None + ) -> DescribeSnapshotsOutput: + """ + Describes the specified EBS snapshots available to you or all of the EBS + snapshots available to you. + + The snapshots available to you include public snapshots, private + snapshots that you own, and private snapshots owned by other Amazon Web + Services accounts for which you have explicit create volume permissions. + + The create volume permissions fall into the following categories: + + - *public*: The owner of the snapshot granted create volume permissions + for the snapshot to the `all` group. All Amazon Web Services accounts + have create volume permissions for these snapshots. + + - *explicit*: The owner of the snapshot granted create volume + permissions to a specific Amazon Web Services account. + + - *implicit*: An Amazon Web Services account has implicit create volume + permissions for all snapshots it owns. + + The list of snapshots returned can be filtered by specifying snapshot + IDs, snapshot owners, or Amazon Web Services accounts with create volume + permissions. If no options are specified, Amazon EC2 returns all + snapshots for which you have create volume permissions. + + If you specify one or more snapshot IDs, only snapshots that have the + specified IDs are returned. If you specify an invalid snapshot ID, an + error is returned. If you specify a snapshot ID for which you do not + have access, it is not included in the returned results. + + If you specify one or more snapshot owners using the `OwnerIds` option, + only snapshots from the specified owners and for which you have access + are returned. The results can include the Amazon Web Services account + IDs of the specified owners, `amazon` for snapshots owned by Amazon, or + `self` for snapshots that you own. + + If you specify a list of restorable users, only snapshots with create + snapshot permissions for those users are returned. You can specify + Amazon Web Services account IDs (if you own the snapshots), `self` for + snapshots for which you own or have explicit permissions, or `all` for + public snapshots. + + If you are describing a long list of snapshots, we recommend that you + paginate the output to make the list more manageable. For more + information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + For more information about EBS snapshots, see [Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html) + in the *Amazon EBS User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + + Args: + input: + An instance of `DescribeSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_SNAPSHOTS, [], plugins) + + async def describe_snapshot_tier_status( + self, + input: DescribeSnapshotTierStatusInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSnapshotTierStatusOutput: + """ + Describes the storage tier status of one or more Amazon EBS snapshots. + + Args: + input: + An instance of `DescribeSnapshotTierStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotTierStatusOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SNAPSHOT_TIER_STATUS, [], plugins + ) + + async def describe_spot_datafeed_subscription( + self, + input: DescribeSpotDatafeedSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotDatafeedSubscriptionOutput: + """ + Describes the data feed for Spot Instances. For more information, see + [Spot Instance data + feed](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotDatafeedSubscriptionOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + async def describe_spot_fleet_instances( + self, + input: DescribeSpotFleetInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotFleetInstancesOutput: + """ + Describes the running instances for the specified Spot Fleet. + + Args: + input: + An instance of `DescribeSpotFleetInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_FLEET_INSTANCES, [], plugins + ) + + async def describe_spot_fleet_request_history( + self, + input: DescribeSpotFleetRequestHistoryInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotFleetRequestHistoryOutput: + """ + Describes the events for the specified Spot Fleet request during the + specified time. + + Spot Fleet events are delayed by up to 30 seconds before they can be + described. This ensures that you can query by the last evaluated time + and not miss a recorded event. Spot Fleet events are available for 48 + hours. + + For more information, see [Monitor fleet events using Amazon + EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeSpotFleetRequestHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetRequestHistoryOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_FLEET_REQUEST_HISTORY, [], plugins + ) + + async def describe_spot_fleet_requests( + self, input: DescribeSpotFleetRequestsInput, plugins: list[Plugin] | None = None + ) -> DescribeSpotFleetRequestsOutput: + """ + Describes your Spot Fleet requests. + + Spot Fleet requests are deleted 48 hours after they are canceled and + their instances are terminated. + + Args: + input: + An instance of `DescribeSpotFleetRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetRequestsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_FLEET_REQUESTS, [], plugins + ) + + async def describe_spot_instance_requests( + self, + input: DescribeSpotInstanceRequestsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotInstanceRequestsOutput: + """ + Describes the specified Spot Instance requests. + + You can use `DescribeSpotInstanceRequests` to find a running Spot + Instance by examining the response. If the status of the Spot Instance + is `fulfilled`, the instance ID appears in the response and contains the + identifier of the instance. Alternatively, you can use + [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances) + with a filter to look for instances where the instance lifecycle is + `spot`. + + We recommend that you set `MaxResults` to a value between 5 and 1000 to + limit the number of items returned. This paginates the output, which + makes the list more manageable and returns the items faster. If the list + of items exceeds your `MaxResults` value, then that number of items is + returned along with a `NextToken` value that can be passed to a + subsequent `DescribeSpotInstanceRequests` request to retrieve the + remaining items. + + Spot Instance requests are deleted four hours after they are canceled + and their instances are terminated. + + Args: + input: + An instance of `DescribeSpotInstanceRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotInstanceRequestsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_INSTANCE_REQUESTS, [], plugins + ) + + async def describe_spot_price_history( + self, input: DescribeSpotPriceHistoryInput, plugins: list[Plugin] | None = None + ) -> DescribeSpotPriceHistoryOutput: + """ + Describes the Spot price history. For more information, see [Spot + Instance pricing + history](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html) + in the *Amazon EC2 User Guide*. + + When you specify a start and end time, the operation returns the prices + of the instance types within that time range. It also returns the last + price change before the start time, which is the effective price as of + the start time. + + Args: + input: + An instance of `DescribeSpotPriceHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotPriceHistoryOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SPOT_PRICE_HISTORY, [], plugins + ) + + async def describe_stale_security_groups( + self, + input: DescribeStaleSecurityGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStaleSecurityGroupsOutput: + """ + Describes the stale security group rules for security groups referenced + across a VPC peering connection, transit gateway connection, or with a + security group VPC association. Rules are stale when they reference a + deleted security group. Rules can also be stale if they reference a + security group in a peer VPC for which the VPC peering connection has + been deleted, across a transit gateway where the transit gateway has + been deleted (or [the transit gateway security group referencing + feature](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + has been disabled), or if a security group VPC association has been + disassociated. + + Args: + input: + An instance of `DescribeStaleSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStaleSecurityGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_STALE_SECURITY_GROUPS, [], plugins + ) + + async def describe_store_image_tasks( + self, input: DescribeStoreImageTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeStoreImageTasksOutput: + """ + Describes the progress of the AMI store tasks. You can describe the + store tasks for specified AMIs. If you don't specify the AMIs, you get + a paginated list of store tasks from the last 31 days. + + For each AMI task, the response indicates if the task is `InProgress`, + `Completed`, or `Failed`. For tasks `InProgress`, the response shows the + estimated progress as a percentage. + + Tasks are listed in reverse chronological order. Currently, only tasks + from the past 31 days can be viewed. + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeStoreImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStoreImageTasksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_STORE_IMAGE_TASKS, [], plugins + ) + + async def describe_subnets( + self, input: DescribeSubnetsInput, plugins: list[Plugin] | None = None + ) -> DescribeSubnetsOutput: + """ + Describes your subnets. The default is to describe all your subnets. + Alternatively, you can specify specific subnet IDs or filter the results + to include only the subnets that match specific criteria. + + For more information, see + [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeSubnetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSubnetsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_SUBNETS, [], plugins) + + async def describe_tags( + self, input: DescribeTagsInput, plugins: list[Plugin] | None = None + ) -> DescribeTagsOutput: + """ + Describes the specified tags for your EC2 resources. + + For more information about tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTagsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TAGS, [], plugins) + + async def describe_traffic_mirror_filter_rules( + self, + input: DescribeTrafficMirrorFilterRulesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorFilterRulesOutput: + """ + Describe traffic mirror filters that determine the traffic that is + mirrored. + + Args: + input: + An instance of `DescribeTrafficMirrorFilterRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorFilterRulesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES, [], plugins + ) + + async def describe_traffic_mirror_filters( + self, + input: DescribeTrafficMirrorFiltersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorFiltersOutput: + """ + Describes one or more Traffic Mirror filters. + + Args: + input: + An instance of `DescribeTrafficMirrorFiltersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorFiltersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_FILTERS, [], plugins + ) + + async def describe_traffic_mirror_sessions( + self, + input: DescribeTrafficMirrorSessionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorSessionsOutput: + """ + Describes one or more Traffic Mirror sessions. By default, all Traffic + Mirror sessions are described. Alternatively, you can filter the + results. + + Args: + input: + An instance of `DescribeTrafficMirrorSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorSessionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_SESSIONS, [], plugins + ) + + async def describe_traffic_mirror_targets( + self, + input: DescribeTrafficMirrorTargetsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorTargetsOutput: + """ + Information about one or more Traffic Mirror targets. + + Args: + input: + An instance of `DescribeTrafficMirrorTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorTargetsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_TARGETS, [], plugins + ) + + async def describe_transit_gateway_attachments( + self, + input: DescribeTransitGatewayAttachmentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayAttachmentsOutput: + """ + Describes one or more attachments between resources and transit + gateways. By default, all attachments are described. Alternatively, you + can filter the results by attachment ID, attachment state, resource ID, + or resource owner. + + Args: + input: + An instance of `DescribeTransitGatewayAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayAttachmentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS, [], plugins + ) + + async def describe_transit_gateway_connect_peers( + self, + input: DescribeTransitGatewayConnectPeersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayConnectPeersOutput: + """ + Describes one or more Connect peers. + + Args: + input: + An instance of `DescribeTransitGatewayConnectPeersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayConnectPeersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS, [], plugins + ) + + async def describe_transit_gateway_connects( + self, + input: DescribeTransitGatewayConnectsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayConnectsOutput: + """ + Describes one or more Connect attachments. + + Args: + input: + An instance of `DescribeTransitGatewayConnectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayConnectsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_CONNECTS, [], plugins + ) + + async def describe_transit_gateway_metering_policies( + self, + input: DescribeTransitGatewayMeteringPoliciesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayMeteringPoliciesOutput: + """ + Describes one or more transit gateway metering policies. + + Args: + input: + An instance of `DescribeTransitGatewayMeteringPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayMeteringPoliciesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES, [], plugins + ) + + async def describe_transit_gateway_multicast_domains( + self, + input: DescribeTransitGatewayMulticastDomainsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayMulticastDomainsOutput: + """ + Describes one or more transit gateway multicast domains. + + Args: + input: + An instance of `DescribeTransitGatewayMulticastDomainsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayMulticastDomainsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS, [], plugins + ) + + async def describe_transit_gateway_peering_attachments( + self, + input: DescribeTransitGatewayPeeringAttachmentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayPeeringAttachmentsOutput: + """ + Describes your transit gateway peering attachments. + + Args: + input: + An instance of `DescribeTransitGatewayPeeringAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayPeeringAttachmentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS, [], plugins + ) + + async def describe_transit_gateway_policy_tables( + self, + input: DescribeTransitGatewayPolicyTablesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayPolicyTablesOutput: + """ + Describes one or more transit gateway route policy tables. + + Args: + input: + An instance of `DescribeTransitGatewayPolicyTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayPolicyTablesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES, [], plugins + ) + + async def describe_transit_gateway_route_table_announcements( + self, + input: DescribeTransitGatewayRouteTableAnnouncementsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayRouteTableAnnouncementsOutput: + """ + Describes one or more transit gateway route table advertisements. + + Args: + input: + An instance of `DescribeTransitGatewayRouteTableAnnouncementsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayRouteTableAnnouncementsOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS, + [], + plugins, + ) + + async def describe_transit_gateway_route_tables( + self, + input: DescribeTransitGatewayRouteTablesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayRouteTablesOutput: + """ + Describes one or more transit gateway route tables. By default, all + transit gateway route tables are described. Alternatively, you can + filter the results. + + Args: + input: + An instance of `DescribeTransitGatewayRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayRouteTablesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES, [], plugins + ) + + async def describe_transit_gateways( + self, input: DescribeTransitGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeTransitGatewaysOutput: + """ + Describes one or more transit gateways. By default, all transit gateways + are described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeTransitGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewaysOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TRANSIT_GATEWAYS, [], plugins) + + async def describe_transit_gateway_vpc_attachments( + self, + input: DescribeTransitGatewayVpcAttachmentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayVpcAttachmentsOutput: + """ + Describes one or more VPC attachments. By default, all VPC attachments + are described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeTransitGatewayVpcAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayVpcAttachmentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS, [], plugins + ) + + async def describe_trunk_interface_associations( + self, + input: DescribeTrunkInterfaceAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeTrunkInterfaceAssociationsOutput: + """ + Describes one or more network interface trunk associations. + + Args: + input: + An instance of `DescribeTrunkInterfaceAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrunkInterfaceAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS, [], plugins + ) + + async def describe_verified_access_endpoints( + self, + input: DescribeVerifiedAccessEndpointsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessEndpointsOutput: + """ + Describes the specified Amazon Web Services Verified Access endpoints. + + Args: + input: + An instance of `DescribeVerifiedAccessEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_ENDPOINTS, [], plugins + ) + + async def describe_verified_access_groups( + self, + input: DescribeVerifiedAccessGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessGroupsOutput: + """ + Describes the specified Verified Access groups. + + Args: + input: + An instance of `DescribeVerifiedAccessGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_GROUPS, [], plugins + ) + + async def describe_verified_access_instance_logging_configurations( + self, + input: DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessInstanceLoggingConfigurationsOutput: + """ + Describes the specified Amazon Web Services Verified Access instances. + + Args: + input: + An instance of `DescribeVerifiedAccessInstanceLoggingConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessInstanceLoggingConfigurationsOutput`. + """ + return await self._invoke( + input, + _models.DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS, + [], + plugins, + ) + + async def describe_verified_access_instances( + self, + input: DescribeVerifiedAccessInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessInstancesOutput: + """ + Describes the specified Amazon Web Services Verified Access instances. + + Args: + input: + An instance of `DescribeVerifiedAccessInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_INSTANCES, [], plugins + ) + + async def describe_verified_access_trust_providers( + self, + input: DescribeVerifiedAccessTrustProvidersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessTrustProvidersOutput: + """ + Describes the specified Amazon Web Services Verified Access trust + providers. + + Args: + input: + An instance of `DescribeVerifiedAccessTrustProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessTrustProvidersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS, [], plugins + ) + + async def describe_volume_attribute( + self, input: DescribeVolumeAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeVolumeAttributeOutput: + """ + Describes the specified attribute of the specified volume. You can + specify only one attribute at a time. + + For more information about EBS volumes, see [Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeVolumeAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumeAttributeOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VOLUME_ATTRIBUTE, [], plugins) + + async def describe_volumes( + self, input: DescribeVolumesInput, plugins: list[Plugin] | None = None + ) -> DescribeVolumesOutput: + """ + Describes the specified EBS volumes or all of your EBS volumes. + + If you are describing a long list of volumes, we recommend that you + paginate the output to make the list more manageable. For more + information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + For more information about EBS volumes, see [Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) + in the *Amazon EBS User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeVolumesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VOLUMES, [], plugins) + + async def describe_volumes_modifications( + self, + input: DescribeVolumesModificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVolumesModificationsOutput: + """ + Describes the most recent volume modification request for the specified + EBS volumes. + + For more information, see [Monitor the progress of volume + modifications](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeVolumesModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumesModificationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VOLUMES_MODIFICATIONS, [], plugins + ) + + async def describe_volume_status( + self, input: DescribeVolumeStatusInput, plugins: list[Plugin] | None = None + ) -> DescribeVolumeStatusOutput: + """ + Describes the status of the specified volumes. Volume status provides + the result of the checks performed on your volumes to determine events + that can impair the performance of your volumes. The performance of a + volume can be affected if an issue occurs on the volume's underlying + host. If the volume's underlying host experiences a power outage or + system issue, after the system is restored, there could be data + inconsistencies on the volume. Volume events notify you if this occurs. + Volume actions notify you if any action needs to be taken in response to + the event. + + The `DescribeVolumeStatus` operation provides the following information + about the specified volumes: + + *Status*: Reflects the current status of the volume. The possible values + are `ok`, `impaired` , `warning`, or `insufficient-data`. If all checks + pass, the overall status of the volume is `ok`. If the check fails, the + overall status is `impaired`. If the status is `insufficient-data`, then + the checks might still be taking place on your volume at the time. We + recommend that you retry the request. For more information about volume + status, see [Monitor the status of your + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-status.html) + in the *Amazon EBS User Guide*. + + *Events*: Reflect the cause of a volume status and might require you to + take action. For example, if your volume returns an `impaired` status, + then the volume event might be `potential-data-inconsistency`. This + means that your volume has been affected by an issue with the underlying + host, has all I/O operations disabled, and might have inconsistent data. + + *Actions*: Reflect the actions you might have to take in response to an + event. For example, if the status of the volume is `impaired` and the + volume event shows `potential-data-inconsistency`, then the action shows + `enable-volume-io`. This means that you may want to enable the I/O + operations for the volume and then check the volume for data + consistency. For more information, see [Work with an impaired EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/work_volumes_impaired.html). + + Volume status is based on the volume status checks, and does not reflect + the volume state. Therefore, volume status does not indicate volumes in + the `error` state (for example, when a volume is incapable of accepting + I/O.) + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeVolumeStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumeStatusOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VOLUME_STATUS, [], plugins) + + async def describe_vpc_attribute( + self, input: DescribeVpcAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeVpcAttributeOutput: + """ + Describes the specified attribute of the specified VPC. You can specify + only one attribute at a time. + + Args: + input: + An instance of `DescribeVpcAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcAttributeOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPC_ATTRIBUTE, [], plugins) + + async def describe_vpc_block_public_access_exclusions( + self, + input: DescribeVpcBlockPublicAccessExclusionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcBlockPublicAccessExclusionsOutput: + """ + Describe VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion + is a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcBlockPublicAccessExclusionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcBlockPublicAccessExclusionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS, [], plugins + ) + + async def describe_vpc_block_public_access_options( + self, + input: DescribeVpcBlockPublicAccessOptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcBlockPublicAccessOptionsOutput: + """ + Describe VPC Block Public Access (BPA) options. VPC Block Public Access + (BPA) enables you to block resources in VPCs and subnets that you own in + a Region from reaching or being reached from the internet through + internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcBlockPublicAccessOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcBlockPublicAccessOptionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, [], plugins + ) + + async def describe_vpc_classic_link( + self, input: DescribeVpcClassicLinkInput, plugins: list[Plugin] | None = None + ) -> DescribeVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Describes the ClassicLink status of the specified VPCs. + + Args: + input: + An instance of `DescribeVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcClassicLinkOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPC_CLASSIC_LINK, [], plugins) + + async def describe_vpc_classic_link_dns_support( + self, + input: DescribeVpcClassicLinkDnsSupportInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Describes the ClassicLink DNS support status of one or more VPCs. If + enabled, the DNS hostname of a linked EC2-Classic instance resolves to + its private IP address when addressed from an instance in the VPC to + which it's linked. Similarly, the DNS hostname of an instance in a VPC + resolves to its private IP address when addressed from a linked + EC2-Classic instance. + + Args: + input: + An instance of `DescribeVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcClassicLinkDnsSupportOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + async def describe_vpc_encryption_controls( + self, + input: DescribeVpcEncryptionControlsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEncryptionControlsOutput: + """ + Describes one or more VPC Encryption Control configurations. VPC + Encryption Control enables you to enforce encryption for all data in + transit within and between VPCs to meet compliance requirements You can + filter the results to return information about specific encryption + controls or VPCs. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcEncryptionControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEncryptionControlsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENCRYPTION_CONTROLS, [], plugins + ) + + async def describe_vpc_endpoint_associations( + self, + input: DescribeVpcEndpointAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointAssociationsOutput: + """ + Describes the VPC resources, VPC endpoint services, Amazon Lattice + services, or service networks associated with the VPC endpoint. + + Args: + input: + An instance of `DescribeVpcEndpointAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointAssociationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS, [], plugins + ) + + async def describe_vpc_endpoint_connection_notifications( + self, + input: DescribeVpcEndpointConnectionNotificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointConnectionNotificationsOutput: + """ + Describes the connection notifications for VPC endpoints and VPC + endpoint services. + + Args: + input: + An instance of `DescribeVpcEndpointConnectionNotificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointConnectionNotificationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS, [], plugins + ) + + async def describe_vpc_endpoint_connections( + self, + input: DescribeVpcEndpointConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointConnectionsOutput: + """ + Describes the VPC endpoint connections to your VPC endpoint services, + including any endpoints that are pending your acceptance. + + Args: + input: + An instance of `DescribeVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointConnectionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_CONNECTIONS, [], plugins + ) + + async def describe_vpc_endpoints( + self, input: DescribeVpcEndpointsInput, plugins: list[Plugin] | None = None + ) -> DescribeVpcEndpointsOutput: + """ + Describes your VPC endpoints. The default is to describe all your VPC + endpoints. Alternatively, you can specify specific VPC endpoint IDs or + filter the results to include only the VPC endpoints that match specific + criteria. + + Args: + input: + An instance of `DescribeVpcEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPC_ENDPOINTS, [], plugins) + + async def describe_vpc_endpoint_service_configurations( + self, + input: DescribeVpcEndpointServiceConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServiceConfigurationsOutput: + """ + Describes the VPC endpoint service configurations in your account (your + services). + + Args: + input: + An instance of `DescribeVpcEndpointServiceConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServiceConfigurationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS, [], plugins + ) + + async def describe_vpc_endpoint_service_permissions( + self, + input: DescribeVpcEndpointServicePermissionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServicePermissionsOutput: + """ + Describes the principals (service consumers) that are permitted to + discover your VPC endpoint service. Principal ARNs with path components + aren't supported. + + Args: + input: + An instance of `DescribeVpcEndpointServicePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServicePermissionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS, [], plugins + ) + + async def describe_vpc_endpoint_services( + self, + input: DescribeVpcEndpointServicesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServicesOutput: + """ + Describes available services to which you can create a VPC endpoint. + + When the service provider and the consumer have different accounts in + multiple Availability Zones, and the consumer views the VPC endpoint + service information, the response only includes the common Availability + Zones. For example, when the service provider account uses `us-east-1a` + and `us-east-1c` and the consumer uses `us-east-1a` and `us-east-1b`, + the response includes the VPC endpoint services in the common + Availability Zone, `us-east-1a`. + + Args: + input: + An instance of `DescribeVpcEndpointServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServicesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_SERVICES, [], plugins + ) + + async def describe_vpc_peering_connections( + self, + input: DescribeVpcPeeringConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcPeeringConnectionsOutput: + """ + Describes your VPC peering connections. The default is to describe all + your VPC peering connections. Alternatively, you can specify specific + VPC peering connection IDs or filter the results to include only the VPC + peering connections that match specific criteria. + + Args: + input: + An instance of `DescribeVpcPeeringConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcPeeringConnectionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPC_PEERING_CONNECTIONS, [], plugins + ) + + async def describe_vpcs( + self, input: DescribeVpcsInput, plugins: list[Plugin] | None = None + ) -> DescribeVpcsOutput: + """ + Describes your VPCs. The default is to describe all your VPCs. + Alternatively, you can specify specific VPC IDs or filter the results to + include only the VPCs that match specific criteria. + + Args: + input: + An instance of `DescribeVpcsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPCS, [], plugins) + + async def describe_vpn_concentrators( + self, input: DescribeVpnConcentratorsInput, plugins: list[Plugin] | None = None + ) -> DescribeVpnConcentratorsOutput: + """ + Describes one or more of your VPN concentrators. + + Args: + input: + An instance of `DescribeVpnConcentratorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnConcentratorsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VPN_CONCENTRATORS, [], plugins + ) + + async def describe_vpn_connections( + self, input: DescribeVpnConnectionsInput, plugins: list[Plugin] | None = None + ) -> DescribeVpnConnectionsOutput: + """ + Describes one or more of your VPN connections. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnConnectionsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPN_CONNECTIONS, [], plugins) + + async def describe_vpn_gateways( + self, input: DescribeVpnGatewaysInput, plugins: list[Plugin] | None = None + ) -> DescribeVpnGatewaysOutput: + """ + Describes one or more of your virtual private gateways. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeVpnGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnGatewaysOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_VPN_GATEWAYS, [], plugins) + + async def detach_classic_link_vpc( + self, input: DetachClassicLinkVpcInput, plugins: list[Plugin] | None = None + ) -> DetachClassicLinkVpcOutput: + """ + Note: + This action is deprecated. + + Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the + instance has been unlinked, the VPC security groups are no longer + associated with it. An instance is automatically unlinked from a VPC + when it's stopped. + + Args: + input: + An instance of `DetachClassicLinkVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachClassicLinkVpcOutput`. + """ + return await self._invoke(input, _models.DETACH_CLASSIC_LINK_VPC, [], plugins) + + async def detach_image_watermark( + self, input: DetachImageWatermarkInput, plugins: list[Plugin] | None = None + ) -> DetachImageWatermarkOutput: + """ + Removes a watermark from the specified AMI. This is an idempotent + operation. It succeeds even if the watermark does not exist on the + image. + + Removing a watermark from an image does not affect derivative images + that already carry the watermark. + + Only the AMI owner can detach watermarks. + + Args: + input: + An instance of `DetachImageWatermarkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachImageWatermarkOutput`. + """ + return await self._invoke(input, _models.DETACH_IMAGE_WATERMARK, [], plugins) + + async def detach_internet_gateway( + self, input: DetachInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> DetachInternetGatewayOutput: + """ + Detaches an internet gateway from a VPC, disabling connectivity between + the internet and the VPC. The VPC must not contain any running instances + with Elastic IP addresses or public IPv4 addresses. + + Args: + input: + An instance of `DetachInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachInternetGatewayOutput`. + """ + return await self._invoke(input, _models.DETACH_INTERNET_GATEWAY, [], plugins) + + async def detach_network_interface( + self, input: DetachNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> DetachNetworkInterfaceOutput: + """ + Detaches a network interface from an instance. + + Args: + input: + An instance of `DetachNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachNetworkInterfaceOutput`. + """ + return await self._invoke(input, _models.DETACH_NETWORK_INTERFACE, [], plugins) + + async def detach_verified_access_trust_provider( + self, + input: DetachVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> DetachVerifiedAccessTrustProviderOutput: + """ + Detaches the specified Amazon Web Services Verified Access trust + provider from the specified Amazon Web Services Verified Access + instance. + + Args: + input: + An instance of `DetachVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVerifiedAccessTrustProviderOutput`. + """ + return await self._invoke( + input, _models.DETACH_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + async def detach_volume( + self, input: DetachVolumeInput, plugins: list[Plugin] | None = None + ) -> DetachVolumeOutput: + """ + Detaches an EBS volume from an instance. Make sure to unmount any file + systems on the device within your operating system before detaching the + volume. Failure to do so can result in the volume becoming stuck in the + `busy` state while detaching. If this happens, detachment can be delayed + indefinitely until you unmount the volume, force detachment, reboot the + instance, or all three. If an EBS volume is the root device of an + instance, it can't be detached while the instance is running. To detach + the root volume, stop the instance first. + + When a volume with an Amazon Web Services Marketplace product code is + detached from an instance, the product code is no longer associated with + the instance. + + You can't detach or force detach volumes that are attached to Amazon + Web Services-managed resources. Attempting to do this results in the + `UnsupportedOperationException` exception. + + For more information, see [Detach an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-detaching-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DetachVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVolumeOutput`. + """ + return await self._invoke(input, _models.DETACH_VOLUME, [], plugins) + + async def detach_vpn_gateway( + self, input: DetachVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> DetachVpnGatewayOutput: + """ + Detaches a virtual private gateway from a VPC. You do this if you're + planning to turn off the VPC and not use it anymore. You can confirm a + virtual private gateway has been completely detached from a VPC by + describing the virtual private gateway (any attachments to the virtual + private gateway are also described). + + You must wait for the attachment's state to switch to `detached` before + you can delete the VPC or attach a different VPC to the virtual private + gateway. + + Args: + input: + An instance of `DetachVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVpnGatewayOutput`. + """ + return await self._invoke(input, _models.DETACH_VPN_GATEWAY, [], plugins) + + async def disable_address_transfer( + self, input: DisableAddressTransferInput, plugins: list[Plugin] | None = None + ) -> DisableAddressTransferOutput: + """ + Disables Elastic IP address transfer. For more information, see + [Transfer Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisableAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAddressTransferOutput`. + """ + return await self._invoke(input, _models.DISABLE_ADDRESS_TRANSFER, [], plugins) + + async def disable_allowed_images_settings( + self, + input: DisableAllowedImagesSettingsInput, + plugins: list[Plugin] | None = None, + ) -> DisableAllowedImagesSettingsOutput: + """ + Disables Allowed AMIs for your account in the specified Amazon Web + Services Region. When set to `disabled`, the image criteria in your + Allowed AMIs settings do not apply, and no restrictions are placed on + AMI discoverability or usage. Users in your account can launch instances + using any public AMI or AMI shared with your account. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAllowedImagesSettingsOutput`. + """ + return await self._invoke( + input, _models.DISABLE_ALLOWED_IMAGES_SETTINGS, [], plugins + ) + + async def disable_application_status_check_suppression( + self, + input: DisableApplicationStatusCheckSuppressionInput, + plugins: list[Plugin] | None = None, + ) -> DisableApplicationStatusCheckSuppressionOutput: + """ + Disables suppression of application status checks for the specified + instances. After suppression is disabled, health check results resume + affecting the instance-level application status. You can specify a + maximum of 100 instance IDs for each request. + + Args: + input: + An instance of `DisableApplicationStatusCheckSuppressionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableApplicationStatusCheckSuppressionOutput`. + """ + return await self._invoke( + input, _models.DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION, [], plugins + ) + + async def disable_aws_network_performance_metric_subscription( + self, + input: DisableAwsNetworkPerformanceMetricSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> DisableAwsNetworkPerformanceMetricSubscriptionOutput: + """ + Disables Infrastructure Performance metric subscriptions. + + Args: + input: + An instance of `DisableAwsNetworkPerformanceMetricSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAwsNetworkPerformanceMetricSubscriptionOutput`. + """ + return await self._invoke( + input, + _models.DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION, + [], + plugins, + ) + + async def disable_capacity_manager( + self, input: DisableCapacityManagerInput, plugins: list[Plugin] | None = None + ) -> DisableCapacityManagerOutput: + """ + Disables EC2 Capacity Manager for your account. This stops data + ingestion and removes access to capacity analytics and optimization + recommendations. Previously collected data is retained but no new data + will be processed. + + Args: + input: + An instance of `DisableCapacityManagerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableCapacityManagerOutput`. + """ + return await self._invoke(input, _models.DISABLE_CAPACITY_MANAGER, [], plugins) + + async def disable_ebs_encryption_by_default( + self, + input: DisableEbsEncryptionByDefaultInput, + plugins: list[Plugin] | None = None, + ) -> DisableEbsEncryptionByDefaultOutput: + """ + Disables EBS encryption by default for your account in the current + Region. + + After you disable encryption by default, you can still create encrypted + volumes by enabling encryption when you create each volume. + + Disabling encryption by default does not change the encryption status of + your existing volumes. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DisableEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableEbsEncryptionByDefaultOutput`. + """ + return await self._invoke( + input, _models.DISABLE_EBS_ENCRYPTION_BY_DEFAULT, [], plugins + ) + + async def disable_fast_launch( + self, input: DisableFastLaunchInput, plugins: list[Plugin] | None = None + ) -> DisableFastLaunchOutput: + """ + Discontinue Windows fast launch for a Windows AMI, and clean up existing + pre-provisioned snapshots. After you disable Windows fast launch, the + AMI uses the standard launch process for each new instance. Amazon EC2 + must remove all pre-provisioned snapshots before you can enable Windows + fast launch again. + + Note: + You can only change these settings for Windows AMIs that you own or that + have been shared with you. + + Args: + input: + An instance of `DisableFastLaunchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableFastLaunchOutput`. + """ + return await self._invoke(input, _models.DISABLE_FAST_LAUNCH, [], plugins) + + async def disable_fast_snapshot_restores( + self, + input: DisableFastSnapshotRestoresInput, + plugins: list[Plugin] | None = None, + ) -> DisableFastSnapshotRestoresOutput: + """ + Disables fast snapshot restores for the specified snapshots in the + specified Availability Zones. + + Args: + input: + An instance of `DisableFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableFastSnapshotRestoresOutput`. + """ + return await self._invoke( + input, _models.DISABLE_FAST_SNAPSHOT_RESTORES, [], plugins + ) + + async def disable_image( + self, input: DisableImageInput, plugins: list[Plugin] | None = None + ) -> DisableImageOutput: + """ + Sets the AMI state to `disabled` and removes all launch permissions from + the AMI. A disabled AMI can't be used for instance launches. + + A disabled AMI can't be shared. If an AMI was public or previously + shared, it is made private. If an AMI was shared with an Amazon Web + Services account, organization, or Organizational Unit, they lose access + to the disabled AMI. + + A disabled AMI does not appear in + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) + API calls by default. + + Only the AMI owner can disable an AMI. + + You can re-enable a disabled AMI using + [EnableImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableImage.html). + + For more information, see [Disable an + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageOutput`. + """ + return await self._invoke(input, _models.DISABLE_IMAGE, [], plugins) + + async def disable_image_block_public_access( + self, + input: DisableImageBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> DisableImageBlockPublicAccessOutput: + """ + Disables *block public access for AMIs* at the account level in the + specified Amazon Web Services Region. This removes the *block public + access* restriction from your account. With the restriction removed, you + can publicly share your AMIs in the specified Amazon Web Services + Region. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageBlockPublicAccessOutput`. + """ + return await self._invoke( + input, _models.DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + async def disable_image_deprecation( + self, input: DisableImageDeprecationInput, plugins: list[Plugin] | None = None + ) -> DisableImageDeprecationOutput: + """ + Cancels the deprecation of the specified AMI. + + For more information, see [Deprecate an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageDeprecationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageDeprecationOutput`. + """ + return await self._invoke(input, _models.DISABLE_IMAGE_DEPRECATION, [], plugins) + + async def disable_image_deregistration_protection( + self, + input: DisableImageDeregistrationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> DisableImageDeregistrationProtectionOutput: + """ + Disables deregistration protection for an AMI. When deregistration + protection is disabled, the AMI can be deregistered. + + If you chose to include a 24-hour cooldown period when you enabled + deregistration protection for the AMI, then, when you disable + deregistration protection, you won't immediately be able to deregister + the AMI. + + For more information, see [Protect an Amazon EC2 AMI from + deregistration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageDeregistrationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageDeregistrationProtectionOutput`. + """ + return await self._invoke( + input, _models.DISABLE_IMAGE_DEREGISTRATION_PROTECTION, [], plugins + ) + + async def disable_instance_sql_ha_standby_detections( + self, + input: DisableInstanceSqlHaStandbyDetectionsInput, + plugins: list[Plugin] | None = None, + ) -> DisableInstanceSqlHaStandbyDetectionsOutput: + """ + Disable Amazon EC2 instances running in an SQL Server High Availability + cluster from SQL Server High Availability instance standby detection + monitoring. Once disabled, Amazon Web Services no longer monitors the + metadata for the instances to determine whether they are active or + standby nodes in the SQL Server High Availability cluster. + + Args: + input: + An instance of `DisableInstanceSqlHaStandbyDetectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableInstanceSqlHaStandbyDetectionsOutput`. + """ + return await self._invoke( + input, _models.DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS, [], plugins + ) + + async def disable_ipam_organization_admin_account( + self, + input: DisableIpamOrganizationAdminAccountInput, + plugins: list[Plugin] | None = None, + ) -> DisableIpamOrganizationAdminAccountOutput: + """ + Disable the IPAM account. For more information, see [Enable integration + with + Organizations](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DisableIpamOrganizationAdminAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableIpamOrganizationAdminAccountOutput`. + """ + return await self._invoke( + input, _models.DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT, [], plugins + ) + + async def disable_ipam_policy( + self, input: DisableIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> DisableIpamPolicyOutput: + """ + Disables an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DisableIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableIpamPolicyOutput`. + """ + return await self._invoke(input, _models.DISABLE_IPAM_POLICY, [], plugins) + + async def disable_route_server_propagation( + self, + input: DisableRouteServerPropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableRouteServerPropagationOutput: + """ + Disables route propagation from a route server to a specified route + table. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisableRouteServerPropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableRouteServerPropagationOutput`. + """ + return await self._invoke( + input, _models.DISABLE_ROUTE_SERVER_PROPAGATION, [], plugins + ) + + async def disable_serial_console_access( + self, + input: DisableSerialConsoleAccessInput, + plugins: list[Plugin] | None = None, + ) -> DisableSerialConsoleAccessOutput: + """ + Disables access to the EC2 serial console of all instances for your + account. By default, access to the EC2 serial console is disabled for + your account. For more information, see [Manage account access to the + EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableSerialConsoleAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableSerialConsoleAccessOutput`. + """ + return await self._invoke( + input, _models.DISABLE_SERIAL_CONSOLE_ACCESS, [], plugins + ) + + async def disable_snapshot_block_public_access( + self, + input: DisableSnapshotBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> DisableSnapshotBlockPublicAccessOutput: + """ + Disables the *block public access for snapshots* setting at the account + level for the specified Amazon Web Services Region. After you disable + block public access for snapshots in a Region, users can publicly share + snapshots in that Region. + + Warning: + Enabling block public access for snapshots in *block-all-sharing* mode + does not change the permissions for snapshots that are already publicly + shared. Instead, it prevents these snapshots from be publicly visible + and publicly accessible. Therefore, the attributes for these snapshots + still indicate that they are publicly shared, even though they are not + publicly available. + + If you disable block public access , these snapshots will become + publicly available again. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide* . + + Args: + input: + An instance of `DisableSnapshotBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableSnapshotBlockPublicAccessOutput`. + """ + return await self._invoke( + input, _models.DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + async def disable_transit_gateway_route_table_propagation( + self, + input: DisableTransitGatewayRouteTablePropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableTransitGatewayRouteTablePropagationOutput: + """ + Disables the specified resource attachment from propagating routes to + the specified propagation route table. + + Args: + input: + An instance of `DisableTransitGatewayRouteTablePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableTransitGatewayRouteTablePropagationOutput`. + """ + return await self._invoke( + input, _models.DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION, [], plugins + ) + + async def disable_vgw_route_propagation( + self, + input: DisableVgwRoutePropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableVgwRoutePropagationOutput: + """ + Disables a virtual private gateway (VGW) from propagating routes to a + specified route table of a VPC. + + Args: + input: + An instance of `DisableVgwRoutePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVgwRoutePropagationOutput`. + """ + return await self._invoke( + input, _models.DISABLE_VGW_ROUTE_PROPAGATION, [], plugins + ) + + async def disable_vpc_classic_link( + self, input: DisableVpcClassicLinkInput, plugins: list[Plugin] | None = None + ) -> DisableVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC + that has EC2-Classic instances linked to it. + + Args: + input: + An instance of `DisableVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVpcClassicLinkOutput`. + """ + return await self._invoke(input, _models.DISABLE_VPC_CLASSIC_LINK, [], plugins) + + async def disable_vpc_classic_link_dns_support( + self, + input: DisableVpcClassicLinkDnsSupportInput, + plugins: list[Plugin] | None = None, + ) -> DisableVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames + resolve to public IP addresses when addressed between a linked + EC2-Classic instance and instances in the VPC to which it's linked. + + You must specify a VPC ID in the request. + + Args: + input: + An instance of `DisableVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVpcClassicLinkDnsSupportOutput`. + """ + return await self._invoke( + input, _models.DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + async def disassociate_address( + self, input: DisassociateAddressInput, plugins: list[Plugin] | None = None + ) -> DisassociateAddressOutput: + """ + Disassociates an Elastic IP address from the instance or network + interface it's associated with. + + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error. + + An address cannot be disassociated if the all of the following + conditions are met: + + - Network interface has a `publicDualStackDnsName` publicDnsName + + - Public IPv4 address is the primary public IPv4 address + + - Network interface only has one remaining public IPv4 address + + Args: + input: + An instance of `DisassociateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateAddressOutput`. + """ + return await self._invoke(input, _models.DISASSOCIATE_ADDRESS, [], plugins) + + async def disassociate_application_status_check( + self, + input: DisassociateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateApplicationStatusCheckOutput: + """ + Disassociates an application status check from instances or + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + After disassociation, health monitoring stops for the affected + instances. The following rules apply: + + - You must specify either `TargetTagAssociations` or `InstanceIds`, but + not both. Specifying both results in an `InvalidParameterCombination` + error. + + - The application status check must already exist and belong to your + account. + + - Tag keys must not be blank. + + Args: + input: + An instance of `DisassociateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateApplicationStatusCheckOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_APPLICATION_STATUS_CHECK, [], plugins + ) + + async def disassociate_capacity_reservation_billing_owner( + self, + input: DisassociateCapacityReservationBillingOwnerInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateCapacityReservationBillingOwnerOutput: + """ + Cancels a pending request to assign billing of the unused capacity of a + Capacity Reservation to a consumer account, or revokes a request that + has already been accepted. For more information, see [Billing assignment + for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `DisassociateCapacityReservationBillingOwnerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateCapacityReservationBillingOwnerOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER, [], plugins + ) + + async def disassociate_client_vpn_target_network( + self, + input: DisassociateClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateClientVpnTargetNetworkOutput: + """ + Disassociates a target network from the specified Client VPN endpoint. + When you disassociate the last target network from a Client VPN, the + following happens: + + - The route that was automatically added for the VPC is deleted + + - All active client connections are terminated + + - New client connections are disallowed + + - The Client VPN endpoint's status changes to `pending-associate` + + Args: + input: + An instance of `DisassociateClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateClientVpnTargetNetworkOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK, [], plugins + ) + + async def disassociate_enclave_certificate_iam_role( + self, + input: DisassociateEnclaveCertificateIamRoleInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateEnclaveCertificateIamRoleOutput: + """ + Disassociates an IAM role from an Certificate Manager (ACM) certificate. + Disassociating an IAM role from an ACM certificate removes the Amazon S3 + object that contains the certificate, certificate chain, and encrypted + private key from the Amazon S3 bucket. It also revokes the IAM role's + permission to use the KMS key used to encrypt the private key. This + effectively revokes the role's permission to use the certificate. + + Args: + input: + An instance of `DisassociateEnclaveCertificateIamRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateEnclaveCertificateIamRoleOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE, [], plugins + ) + + async def disassociate_iam_instance_profile( + self, + input: DisassociateIamInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateIamInstanceProfileOutput: + """ + Disassociates an IAM instance profile from a running or stopped + instance. + + Use DescribeIamInstanceProfileAssociations to get the association ID. + + Args: + input: + An instance of `DisassociateIamInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIamInstanceProfileOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_IAM_INSTANCE_PROFILE, [], plugins + ) + + async def disassociate_instance_event_window( + self, + input: DisassociateInstanceEventWindowInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateInstanceEventWindowOutput: + """ + Disassociates one or more targets from an event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisassociateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateInstanceEventWindowOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_INSTANCE_EVENT_WINDOW, [], plugins + ) + + async def disassociate_ipam_byoasn( + self, input: DisassociateIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> DisassociateIpamByoasnOutput: + """ + Remove the association between your Autonomous System Number (ASN) and + your BYOIP CIDR. You may want to use this action to disassociate an ASN + from a CIDR or if you want to swap ASNs. For more information, see + [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DisassociateIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIpamByoasnOutput`. + """ + return await self._invoke(input, _models.DISASSOCIATE_IPAM_BYOASN, [], plugins) + + async def disassociate_ipam_resource_discovery( + self, + input: DisassociateIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateIpamResourceDiscoveryOutput: + """ + Disassociates a resource discovery from an Amazon VPC IPAM. A resource + discovery is an IPAM component that enables IPAM to manage and monitor + resources that belong to the owning account. + + Args: + input: + An instance of `DisassociateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIpamResourceDiscoveryOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + async def disassociate_nat_gateway_address( + self, + input: DisassociateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateNatGatewayAddressOutput: + """ + Disassociates secondary Elastic IP addresses (EIPs) from a public NAT + gateway. You cannot disassociate your primary EIP. For more information, + see [Edit secondary IP address + associations](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary) + in the *Amazon VPC User Guide*. + + While disassociating is in progress, you cannot associate/disassociate + additional EIPs while the connections are being drained. You are, + however, allowed to delete the NAT gateway. + + An EIP is released only at the end of MaxDrainDurationSeconds. It stays + associated and supports the existing connections but does not support + any new connections (new connections are distributed across the + remaining associated EIPs). As the existing connections drain out, the + EIPs (and the corresponding private IP addresses mapped to them) are + released. + + Args: + input: + An instance of `DisassociateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateNatGatewayAddressOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + async def disassociate_route_server( + self, input: DisassociateRouteServerInput, plugins: list[Plugin] | None = None + ) -> DisassociateRouteServerOutput: + """ + Disassociates a route server from a VPC. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisassociateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateRouteServerOutput`. + """ + return await self._invoke(input, _models.DISASSOCIATE_ROUTE_SERVER, [], plugins) + + async def disassociate_route_table( + self, input: DisassociateRouteTableInput, plugins: list[Plugin] | None = None + ) -> DisassociateRouteTableOutput: + """ + Disassociates a subnet or gateway from a route table. + + After you perform this action, the subnet no longer uses the routes in + the route table. Instead, it uses the routes in the VPC's main route + table. For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisassociateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateRouteTableOutput`. + """ + return await self._invoke(input, _models.DISASSOCIATE_ROUTE_TABLE, [], plugins) + + async def disassociate_security_group_vpc( + self, + input: DisassociateSecurityGroupVpcInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateSecurityGroupVpcOutput: + """ + Disassociates a security group from a VPC. You cannot disassociate the + security group if any Elastic network interfaces in the associated VPC + are still associated with the security group. Note that the + disassociation is asynchronous and you can check the status of the + request with + [DescribeSecurityGroupVpcAssociations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroupVpcAssociations.html). + + Args: + input: + An instance of `DisassociateSecurityGroupVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateSecurityGroupVpcOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_SECURITY_GROUP_VPC, [], plugins + ) + + async def disassociate_subnet_cidr_block( + self, + input: DisassociateSubnetCidrBlockInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateSubnetCidrBlockOutput: + """ + Disassociates a CIDR block from a subnet. Currently, you can + disassociate an IPv6 CIDR block only. You must detach or delete all + gateways and resources that are associated with the CIDR block before + you can disassociate it. + + Args: + input: + An instance of `DisassociateSubnetCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateSubnetCidrBlockOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_SUBNET_CIDR_BLOCK, [], plugins + ) + + async def disassociate_transit_gateway_multicast_domain( + self, + input: DisassociateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayMulticastDomainOutput: + """ + Disassociates the specified subnets from the transit gateway multicast + domain. + + Args: + input: + An instance of `DisassociateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayMulticastDomainOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + async def disassociate_transit_gateway_policy_table( + self, + input: DisassociateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayPolicyTableOutput: + """ + Removes the association between an an attachment and a policy table. + + Args: + input: + An instance of `DisassociateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayPolicyTableOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + async def disassociate_transit_gateway_route_table( + self, + input: DisassociateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayRouteTableOutput: + """ + Disassociates a resource attachment from a transit gateway route table. + + Args: + input: + An instance of `DisassociateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayRouteTableOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + async def disassociate_trunk_interface( + self, + input: DisassociateTrunkInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTrunkInterfaceOutput: + """ + Removes an association between a branch network interface with a trunk + network interface. + + Args: + input: + An instance of `DisassociateTrunkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTrunkInterfaceOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_TRUNK_INTERFACE, [], plugins + ) + + async def disassociate_vpc_cidr_block( + self, input: DisassociateVpcCidrBlockInput, plugins: list[Plugin] | None = None + ) -> DisassociateVpcCidrBlockOutput: + """ + Disassociates a CIDR block from a VPC. To disassociate the CIDR block, + you must specify its association ID. You can get the association ID by + using DescribeVpcs. You must detach or delete all gateways and resources + that are associated with the CIDR block before you can disassociate it. + + You cannot disassociate the CIDR block with which you originally created + the VPC (the primary CIDR block). + + Args: + input: + An instance of `DisassociateVpcCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateVpcCidrBlockOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_VPC_CIDR_BLOCK, [], plugins + ) + + async def enable_address_transfer( + self, input: EnableAddressTransferInput, plugins: list[Plugin] | None = None + ) -> EnableAddressTransferOutput: + """ + Enables Elastic IP address transfer. For more information, see [Transfer + Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `EnableAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAddressTransferOutput`. + """ + return await self._invoke(input, _models.ENABLE_ADDRESS_TRANSFER, [], plugins) + + async def enable_allowed_images_settings( + self, + input: EnableAllowedImagesSettingsInput, + plugins: list[Plugin] | None = None, + ) -> EnableAllowedImagesSettingsOutput: + """ + Enables Allowed AMIs for your account in the specified Amazon Web + Services Region. Two values are accepted: + + - `enabled`: The image criteria in your Allowed AMIs settings are + applied. As a result, only AMIs matching these criteria are + discoverable and can be used by your account to launch instances. + + - `audit-mode`: The image criteria in your Allowed AMIs settings are not + applied. No restrictions are placed on AMI discoverability or usage. + Users in your account can launch instances using any public AMI or AMI + shared with your account. + + The purpose of `audit-mode` is to indicate which AMIs will be affected + when Allowed AMIs is `enabled`. In `audit-mode`, each AMI displays + either `"ImageAllowed": true` or `"ImageAllowed": false` to indicate + whether the AMI will be discoverable and available to users in the + account when Allowed AMIs is enabled. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAllowedImagesSettingsOutput`. + """ + return await self._invoke( + input, _models.ENABLE_ALLOWED_IMAGES_SETTINGS, [], plugins + ) + + async def enable_application_status_check_suppression( + self, + input: EnableApplicationStatusCheckSuppressionInput, + plugins: list[Plugin] | None = None, + ) -> EnableApplicationStatusCheckSuppressionOutput: + """ + Suppresses application status checks for the specified instances. While + suppressed, health checks continue to run but do not affect the + instance-level application status. The following rules apply: + + - You can specify a maximum of 100 instance IDs for each request. + + - Use `DisableApplicationStatusCheckSuppression` to resume normal health + check reporting. + + - If you do not specify `DurationSeconds`, suppression continues + indefinitely until you call + `DisableApplicationStatusCheckSuppression`. + + Args: + input: + An instance of `EnableApplicationStatusCheckSuppressionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableApplicationStatusCheckSuppressionOutput`. + """ + return await self._invoke( + input, _models.ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION, [], plugins + ) + + async def enable_aws_network_performance_metric_subscription( + self, + input: EnableAwsNetworkPerformanceMetricSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> EnableAwsNetworkPerformanceMetricSubscriptionOutput: + """ + Enables Infrastructure Performance subscriptions. + + Args: + input: + An instance of `EnableAwsNetworkPerformanceMetricSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAwsNetworkPerformanceMetricSubscriptionOutput`. + """ + return await self._invoke( + input, + _models.ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION, + [], + plugins, + ) + + async def enable_capacity_manager( + self, input: EnableCapacityManagerInput, plugins: list[Plugin] | None = None + ) -> EnableCapacityManagerOutput: + """ + Enables EC2 Capacity Manager for your account. This starts data + ingestion for your EC2 capacity usage across On-Demand, Spot, and + Capacity Reservations. Initial data processing may take several hours to + complete. + + Args: + input: + An instance of `EnableCapacityManagerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableCapacityManagerOutput`. + """ + return await self._invoke(input, _models.ENABLE_CAPACITY_MANAGER, [], plugins) + + async def enable_ebs_encryption_by_default( + self, + input: EnableEbsEncryptionByDefaultInput, + plugins: list[Plugin] | None = None, + ) -> EnableEbsEncryptionByDefaultOutput: + """ + Enables EBS encryption by default for your account in the current + Region. + + After you enable encryption by default, the EBS volumes that you create + are always encrypted, either using the default KMS key or the KMS key + that you specified when you created each volume. For more information, + see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Enabling encryption by default has no effect on the encryption status of + your existing volumes. + + After you enable encryption by default, you can no longer launch + instances using instance types that do not support encryption. For more + information, see [Supported instance + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances). + + Args: + input: + An instance of `EnableEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableEbsEncryptionByDefaultOutput`. + """ + return await self._invoke( + input, _models.ENABLE_EBS_ENCRYPTION_BY_DEFAULT, [], plugins + ) + + async def enable_fast_launch( + self, input: EnableFastLaunchInput, plugins: list[Plugin] | None = None + ) -> EnableFastLaunchOutput: + """ + When you enable Windows fast launch for a Windows AMI, images are + pre-provisioned, using snapshots to launch instances up to 65% faster. + To create the optimized Windows image, Amazon EC2 launches an instance + and runs through Sysprep steps, rebooting as required. Then it creates a + set of reserved snapshots that are used for subsequent launches. The + reserved snapshots are automatically replenished as they are used, + depending on your settings for launch frequency. + + Note: + You can only change these settings for Windows AMIs that you own or that + have been shared with you. + + Args: + input: + An instance of `EnableFastLaunchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableFastLaunchOutput`. + """ + return await self._invoke(input, _models.ENABLE_FAST_LAUNCH, [], plugins) + + async def enable_fast_snapshot_restores( + self, + input: EnableFastSnapshotRestoresInput, + plugins: list[Plugin] | None = None, + ) -> EnableFastSnapshotRestoresOutput: + """ + Enables fast snapshot restores for the specified snapshots in the + specified Availability Zones. + + You get the full benefit of fast snapshot restores after they enter the + `enabled` state. + + For more information, see [Amazon EBS fast snapshot + restore](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fast-snapshot-restore.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `EnableFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableFastSnapshotRestoresOutput`. + """ + return await self._invoke( + input, _models.ENABLE_FAST_SNAPSHOT_RESTORES, [], plugins + ) + + async def enable_image( + self, input: EnableImageInput, plugins: list[Plugin] | None = None + ) -> EnableImageOutput: + """ + Re-enables a disabled AMI. The re-enabled AMI is marked as `available` + and can be used for instance launches, appears in describe operations, + and can be shared. Amazon Web Services accounts, organizations, and + Organizational Units that lost access to the AMI when it was disabled do + not regain access automatically. Once the AMI is available, it can be + shared with them again. + + Only the AMI owner can re-enable a disabled AMI. + + For more information, see [Disable an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageOutput`. + """ + return await self._invoke(input, _models.ENABLE_IMAGE, [], plugins) + + async def enable_image_block_public_access( + self, + input: EnableImageBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> EnableImageBlockPublicAccessOutput: + """ + Enables *block public access for AMIs* at the account level in the + specified Amazon Web Services Region. This prevents the public sharing + of your AMIs. However, if you already have public AMIs, they will remain + publicly available. + + The API can take up to 10 minutes to configure this setting. During this + time, if you run + [GetImageBlockPublicAccessState](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html), + the response will be `unblocked`. When the API has completed the + configuration, the response will be `block-new-sharing`. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageBlockPublicAccessOutput`. + """ + return await self._invoke( + input, _models.ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + async def enable_image_deprecation( + self, input: EnableImageDeprecationInput, plugins: list[Plugin] | None = None + ) -> EnableImageDeprecationOutput: + """ + Enables deprecation of the specified AMI at the specified date and time. + + For more information, see [Deprecate an + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageDeprecationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageDeprecationOutput`. + """ + return await self._invoke(input, _models.ENABLE_IMAGE_DEPRECATION, [], plugins) + + async def enable_image_deregistration_protection( + self, + input: EnableImageDeregistrationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> EnableImageDeregistrationProtectionOutput: + """ + Enables deregistration protection for an AMI. When deregistration + protection is enabled, the AMI can't be deregistered. + + To allow the AMI to be deregistered, you must first disable + deregistration protection. + + For more information, see [Protect an Amazon EC2 AMI from + deregistration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageDeregistrationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageDeregistrationProtectionOutput`. + """ + return await self._invoke( + input, _models.ENABLE_IMAGE_DEREGISTRATION_PROTECTION, [], plugins + ) + + async def enable_instance_sql_ha_standby_detections( + self, + input: EnableInstanceSqlHaStandbyDetectionsInput, + plugins: list[Plugin] | None = None, + ) -> EnableInstanceSqlHaStandbyDetectionsOutput: + """ + Enable Amazon EC2 instances running in an SQL Server High Availability + cluster for SQL Server High Availability instance standby detection + monitoring. Once enabled, Amazon Web Services monitors the metadata for + the instances to determine whether they are active or standby nodes in + the SQL Server High Availability cluster. If the instances are + determined to be standby failover nodes, Amazon Web Services + automatically applies SQL Server licensing fee waiver for those + instances. + + To register an instance, it must be running a Windows SQL Server + license-included AMI and have the Amazon Web Services Systems Manager + agent installed and running. Only Windows Server 2019 and later and SQL + Server (Standard and Enterprise editions) 2017 and later are supported. + For more information, see [Prerequisites for using SQL Server High + Availability instance standby + detection](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/prerequisites-and-requirements.html). + + Args: + input: + An instance of `EnableInstanceSqlHaStandbyDetectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableInstanceSqlHaStandbyDetectionsOutput`. + """ + return await self._invoke( + input, _models.ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS, [], plugins + ) + + async def enable_ipam_internet_registry_association( + self, + input: EnableIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> EnableIpamInternetRegistryAssociationOutput: + """ + Enables Resource Public Key Infrastructure (RPKI) on an existing IPAM + internet registry association by providing BGP Public Key Infrastructure + (BPKI) certificate details. After enabling, you can create Route Origin + Authorizations (ROAs) for prefixes registered with the internet + registry. + + Args: + input: + An instance of `EnableIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamInternetRegistryAssociationOutput`. + """ + return await self._invoke( + input, _models.ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + async def enable_ipam_organization_admin_account( + self, + input: EnableIpamOrganizationAdminAccountInput, + plugins: list[Plugin] | None = None, + ) -> EnableIpamOrganizationAdminAccountOutput: + """ + Enable an Organizations member account as the IPAM admin account. You + cannot select the Organizations management account as the IPAM admin + account. For more information, see [Enable integration with + Organizations](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `EnableIpamOrganizationAdminAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamOrganizationAdminAccountOutput`. + """ + return await self._invoke( + input, _models.ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT, [], plugins + ) + + async def enable_ipam_policy( + self, input: EnableIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> EnableIpamPolicyOutput: + """ + Enables an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + For more information, see [Define public IPv4 allocation strategy with + IPAM + policies](https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `EnableIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamPolicyOutput`. + """ + return await self._invoke(input, _models.ENABLE_IPAM_POLICY, [], plugins) + + async def enable_reachability_analyzer_organization_sharing( + self, + input: EnableReachabilityAnalyzerOrganizationSharingInput, + plugins: list[Plugin] | None = None, + ) -> EnableReachabilityAnalyzerOrganizationSharingOutput: + """ + Establishes a trust relationship between Reachability Analyzer and + Organizations. This operation must be performed by the management + account for the organization. + + After you establish a trust relationship, a user in the management + account or a delegated administrator account can run a cross-account + analysis using resources from the member accounts. + + Args: + input: + An instance of `EnableReachabilityAnalyzerOrganizationSharingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableReachabilityAnalyzerOrganizationSharingOutput`. + """ + return await self._invoke( + input, + _models.ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING, + [], + plugins, + ) + + async def enable_route_server_propagation( + self, + input: EnableRouteServerPropagationInput, + plugins: list[Plugin] | None = None, + ) -> EnableRouteServerPropagationOutput: + """ + Defines which route tables the route server can update with routes. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `EnableRouteServerPropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableRouteServerPropagationOutput`. + """ + return await self._invoke( + input, _models.ENABLE_ROUTE_SERVER_PROPAGATION, [], plugins + ) + + async def enable_serial_console_access( + self, input: EnableSerialConsoleAccessInput, plugins: list[Plugin] | None = None + ) -> EnableSerialConsoleAccessOutput: + """ + Enables access to the EC2 serial console of all instances for your + account. By default, access to the EC2 serial console is disabled for + your account. For more information, see [Manage account access to the + EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableSerialConsoleAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableSerialConsoleAccessOutput`. + """ + return await self._invoke( + input, _models.ENABLE_SERIAL_CONSOLE_ACCESS, [], plugins + ) + + async def enable_snapshot_block_public_access( + self, + input: EnableSnapshotBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> EnableSnapshotBlockPublicAccessOutput: + """ + Enables or modifies the *block public access for snapshots* setting at + the account level for the specified Amazon Web Services Region. After + you enable block public access for snapshots in a Region, users can no + longer request public sharing for snapshots in that Region. Snapshots + that are already publicly shared are either treated as private or they + remain publicly shared, depending on the **State** that you specify. + + Warning: + Enabling block public access for snapshots in *block all sharing* mode + does not change the permissions for snapshots that are already publicly + shared. Instead, it prevents these snapshots from be publicly visible + and publicly accessible. Therefore, the attributes for these snapshots + still indicate that they are publicly shared, even though they are not + publicly available. + + If you later disable block public access or change the mode to *block + new sharing*, these snapshots will become publicly available again. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `EnableSnapshotBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableSnapshotBlockPublicAccessOutput`. + """ + return await self._invoke( + input, _models.ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + async def enable_transit_gateway_route_table_propagation( + self, + input: EnableTransitGatewayRouteTablePropagationInput, + plugins: list[Plugin] | None = None, + ) -> EnableTransitGatewayRouteTablePropagationOutput: + """ + Enables the specified attachment to propagate routes to the specified + propagation route table. + + Args: + input: + An instance of `EnableTransitGatewayRouteTablePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableTransitGatewayRouteTablePropagationOutput`. + """ + return await self._invoke( + input, _models.ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION, [], plugins + ) + + async def enable_vgw_route_propagation( + self, input: EnableVgwRoutePropagationInput, plugins: list[Plugin] | None = None + ) -> EnableVgwRoutePropagationOutput: + """ + Enables a virtual private gateway (VGW) to propagate routes to the + specified route table of a VPC. + + Args: + input: + An instance of `EnableVgwRoutePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVgwRoutePropagationOutput`. + """ + return await self._invoke( + input, _models.ENABLE_VGW_ROUTE_PROPAGATION, [], plugins + ) + + async def enable_volume_io( + self, input: EnableVolumeIOInput, plugins: list[Plugin] | None = None + ) -> EnableVolumeIOOutput: + """ + Enables I/O operations for a volume that had I/O operations disabled + because the data on the volume was potentially inconsistent. + + Args: + input: + An instance of `EnableVolumeIOInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVolumeIOOutput`. + """ + return await self._invoke(input, _models.ENABLE_VOLUME_IO, [], plugins) + + async def enable_vpc_classic_link( + self, input: EnableVpcClassicLinkInput, plugins: list[Plugin] | None = None + ) -> EnableVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Enables a VPC for ClassicLink. You can then link EC2-Classic instances + to your ClassicLink-enabled VPC to allow communication over private IP + addresses. You cannot enable your VPC for ClassicLink if any of your VPC + route tables have existing routes for address ranges within the + `10.0.0.0/8` IP address range, excluding local routes for VPCs in the + `10.0.0.0/16` and `10.1.0.0/16` IP address ranges. + + Args: + input: + An instance of `EnableVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVpcClassicLinkOutput`. + """ + return await self._invoke(input, _models.ENABLE_VPC_CLASSIC_LINK, [], plugins) + + async def enable_vpc_classic_link_dns_support( + self, + input: EnableVpcClassicLinkDnsSupportInput, + plugins: list[Plugin] | None = None, + ) -> EnableVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Enables a VPC to support DNS hostname resolution for ClassicLink. If + enabled, the DNS hostname of a linked EC2-Classic instance resolves to + its private IP address when addressed from an instance in the VPC to + which it's linked. Similarly, the DNS hostname of an instance in a VPC + resolves to its private IP address when addressed from a linked + EC2-Classic instance. + + You must specify a VPC ID in the request. + + Args: + input: + An instance of `EnableVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVpcClassicLinkDnsSupportOutput`. + """ + return await self._invoke( + input, _models.ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + async def export_client_vpn_client_certificate_revocation_list( + self, + input: ExportClientVpnClientCertificateRevocationListInput, + plugins: list[Plugin] | None = None, + ) -> ExportClientVpnClientCertificateRevocationListOutput: + """ + Downloads the client certificate revocation list for the specified + Client VPN endpoint. + + Args: + input: + An instance of `ExportClientVpnClientCertificateRevocationListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportClientVpnClientCertificateRevocationListOutput`. + """ + return await self._invoke( + input, + _models.EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST, + [], + plugins, + ) + + async def export_client_vpn_client_configuration( + self, + input: ExportClientVpnClientConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ExportClientVpnClientConfigurationOutput: + """ + Downloads the contents of the Client VPN endpoint configuration file for + the specified Client VPN endpoint. The Client VPN endpoint configuration + file includes the Client VPN endpoint and certificate information + clients need to establish a connection with the Client VPN endpoint. + + Args: + input: + An instance of `ExportClientVpnClientConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportClientVpnClientConfigurationOutput`. + """ + return await self._invoke( + input, _models.EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION, [], plugins + ) + + async def export_image( + self, input: ExportImageInput, plugins: list[Plugin] | None = None + ) -> ExportImageOutput: + """ + Exports an Amazon Machine Image (AMI) to a VM file. For more + information, see [Exporting a VM directly from an Amazon Machine Image + (AMI)](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ExportImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportImageOutput`. + """ + return await self._invoke(input, _models.EXPORT_IMAGE, [], plugins) + + async def export_transit_gateway_routes( + self, + input: ExportTransitGatewayRoutesInput, + plugins: list[Plugin] | None = None, + ) -> ExportTransitGatewayRoutesOutput: + """ + Exports routes from the specified transit gateway route table to the + specified S3 bucket. By default, all routes are exported. Alternatively, + you can filter by CIDR range. + + The routes are saved to the specified bucket in a JSON file. For more + information, see [Export route tables to Amazon + S3](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables) + in the *Amazon Web Services Transit Gateways Guide*. + + Args: + input: + An instance of `ExportTransitGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportTransitGatewayRoutesOutput`. + """ + return await self._invoke( + input, _models.EXPORT_TRANSIT_GATEWAY_ROUTES, [], plugins + ) + + async def export_verified_access_instance_client_configuration( + self, + input: ExportVerifiedAccessInstanceClientConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ExportVerifiedAccessInstanceClientConfigurationOutput: + """ + Exports the client configuration for a Verified Access instance. + + Args: + input: + An instance of `ExportVerifiedAccessInstanceClientConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportVerifiedAccessInstanceClientConfigurationOutput`. + """ + return await self._invoke( + input, + _models.EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION, + [], + plugins, + ) + + async def get_active_vpn_tunnel_status( + self, input: GetActiveVpnTunnelStatusInput, plugins: list[Plugin] | None = None + ) -> GetActiveVpnTunnelStatusOutput: + """ + Returns the currently negotiated security parameters for an active VPN + tunnel, including IKE version, DH groups, encryption algorithms, and + integrity algorithms. + + Args: + input: + An instance of `GetActiveVpnTunnelStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetActiveVpnTunnelStatusOutput`. + """ + return await self._invoke( + input, _models.GET_ACTIVE_VPN_TUNNEL_STATUS, [], plugins + ) + + async def get_allowed_images_settings( + self, input: GetAllowedImagesSettingsInput, plugins: list[Plugin] | None = None + ) -> GetAllowedImagesSettingsOutput: + """ + Gets the current state of the Allowed AMIs setting and the list of + Allowed AMIs criteria at the account level in the specified Region. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAllowedImagesSettingsOutput`. + """ + return await self._invoke( + input, _models.GET_ALLOWED_IMAGES_SETTINGS, [], plugins + ) + + async def get_associated_enclave_certificate_iam_roles( + self, + input: GetAssociatedEnclaveCertificateIamRolesInput, + plugins: list[Plugin] | None = None, + ) -> GetAssociatedEnclaveCertificateIamRolesOutput: + """ + Returns the IAM roles that are associated with the specified ACM (ACM) + certificate. It also returns the name of the Amazon S3 bucket and the + Amazon S3 object key where the certificate, certificate chain, and + encrypted private key bundle are stored, and the ARN of the KMS key + that's used to encrypt the private key. + + Args: + input: + An instance of `GetAssociatedEnclaveCertificateIamRolesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAssociatedEnclaveCertificateIamRolesOutput`. + """ + return await self._invoke( + input, _models.GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES, [], plugins + ) + + async def get_associated_ipv6_pool_cidrs( + self, + input: GetAssociatedIpv6PoolCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetAssociatedIpv6PoolCidrsOutput: + """ + Gets information about the IPv6 CIDR block associations for a specified + IPv6 address pool. + + Args: + input: + An instance of `GetAssociatedIpv6PoolCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAssociatedIpv6PoolCidrsOutput`. + """ + return await self._invoke( + input, _models.GET_ASSOCIATED_IPV6_POOL_CIDRS, [], plugins + ) + + async def get_aws_network_performance_data( + self, + input: GetAwsNetworkPerformanceDataInput, + plugins: list[Plugin] | None = None, + ) -> GetAwsNetworkPerformanceDataOutput: + """ + Gets network performance data. + + Args: + input: + An instance of `GetAwsNetworkPerformanceDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAwsNetworkPerformanceDataOutput`. + """ + return await self._invoke( + input, _models.GET_AWS_NETWORK_PERFORMANCE_DATA, [], plugins + ) + + async def get_capacity_manager_attributes( + self, + input: GetCapacityManagerAttributesInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerAttributesOutput: + """ + Retrieves the current configuration and status of EC2 Capacity Manager + for your account, including enablement status, Organizations access + settings, and data ingestion status. + + Args: + input: + An instance of `GetCapacityManagerAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerAttributesOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_MANAGER_ATTRIBUTES, [], plugins + ) + + async def get_capacity_manager_metric_data( + self, + input: GetCapacityManagerMetricDataInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMetricDataOutput: + """ + Retrieves capacity usage metrics for your EC2 resources. Returns + time-series data for metrics like unused capacity, utilization rates, + and costs across On-Demand, Spot, and Capacity Reservations. Data can be + grouped and filtered by various dimensions such as region, account, and + instance family. + + Args: + input: + An instance of `GetCapacityManagerMetricDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMetricDataOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_MANAGER_METRIC_DATA, [], plugins + ) + + async def get_capacity_manager_metric_dimensions( + self, + input: GetCapacityManagerMetricDimensionsInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMetricDimensionsOutput: + """ + Retrieves the available dimension values for capacity metrics within a + specified time range. This is useful for discovering what accounts, + regions, instance families, and other dimensions have data available for + filtering and grouping. + + Args: + input: + An instance of `GetCapacityManagerMetricDimensionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMetricDimensionsOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_MANAGER_METRIC_DIMENSIONS, [], plugins + ) + + async def get_capacity_manager_monitored_tag_keys( + self, + input: GetCapacityManagerMonitoredTagKeysInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMonitoredTagKeysOutput: + """ + Retrieves the tag keys that are currently being monitored by EC2 + Capacity Manager. Monitored tag keys are included as dimensions in + capacity metric data, enabling you to group and filter metrics by tag + values. + + Args: + input: + An instance of `GetCapacityManagerMonitoredTagKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMonitoredTagKeysOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS, [], plugins + ) + + async def get_capacity_manager_supportability_scores( + self, + input: GetCapacityManagerSupportabilityScoresInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerSupportabilityScoresOutput: + """ + Scores how well each instance type and Availability Zone combination can + support a capacity request, based on current Amazon EC2 capacity. The + response includes a score for each combination and an aggregate score + for all combinations in the request. This action doesn't launch or + reserve instances, and a score doesn't guarantee that a later launch + will succeed. + + Call this action in the Region where you turned on Capacity Manager. A + single request can include Availability Zones in any Region. Real-time + supportability checks are available only to Amazon Web Services Support + customers on the Unified Operations plan. + + For more information, see [Check + supportability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-manager-supportability.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetCapacityManagerSupportabilityScoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerSupportabilityScoresOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES, [], plugins + ) + + async def get_capacity_reservation_usage( + self, + input: GetCapacityReservationUsageInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityReservationUsageOutput: + """ + Gets usage information about a Capacity Reservation. If the Capacity + Reservation is shared, it shows usage information for the Capacity + Reservation owner and each Amazon Web Services account that is currently + using the shared capacity. If the Capacity Reservation is not shared, it + shows only the Capacity Reservation owner's usage. + + Args: + input: + An instance of `GetCapacityReservationUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityReservationUsageOutput`. + """ + return await self._invoke( + input, _models.GET_CAPACITY_RESERVATION_USAGE, [], plugins + ) + + async def get_client_vpn_endpoint_authorization_policy( + self, + input: GetClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetClientVpnEndpointAuthorizationPolicyOutput: + """ + Describes the authorization policy for a Client VPN endpoint. + + Args: + input: + An instance of `GetClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetClientVpnEndpointAuthorizationPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + async def get_coip_pool_usage( + self, input: GetCoipPoolUsageInput, plugins: list[Plugin] | None = None + ) -> GetCoipPoolUsageOutput: + """ + Describes the allocations from the specified customer-owned address + pool. + + Args: + input: + An instance of `GetCoipPoolUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCoipPoolUsageOutput`. + """ + return await self._invoke(input, _models.GET_COIP_POOL_USAGE, [], plugins) + + async def get_console_output( + self, input: GetConsoleOutputInput, plugins: list[Plugin] | None = None + ) -> GetConsoleOutputOutput: + """ + Gets the console output for the specified instance. For Linux instances, + the instance console output displays the exact console output that would + normally be displayed on a physical monitor attached to a computer. For + Windows instances, the instance console output includes the last three + system event log errors. + + For more information, see [Instance console + output](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetConsoleOutputInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConsoleOutputOutput`. + """ + return await self._invoke(input, _models.GET_CONSOLE_OUTPUT, [], plugins) + + async def get_console_screenshot( + self, input: GetConsoleScreenshotInput, plugins: list[Plugin] | None = None + ) -> GetConsoleScreenshotOutput: + """ + Retrieve a JPG-format screenshot of a running instance to help with + troubleshooting. + + The returned content is Base64-encoded. + + For more information, see [Instance console + output](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-unreachable-instance.html#instance-console-console-output) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetConsoleScreenshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConsoleScreenshotOutput`. + """ + return await self._invoke(input, _models.GET_CONSOLE_SCREENSHOT, [], plugins) + + async def get_declarative_policies_report_summary( + self, + input: GetDeclarativePoliciesReportSummaryInput, + plugins: list[Plugin] | None = None, + ) -> GetDeclarativePoliciesReportSummaryOutput: + """ + Retrieves a summary of the account status report. + + To view the full report, download it from the Amazon S3 bucket where it + was saved. Reports are accessible only when they have the `complete` + status. Reports with other statuses (`running`, `cancelled`, or `error`) + are not available in the S3 bucket. For more information about + downloading objects from an S3 bucket, see [Downloading + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) + in the *Amazon Simple Storage Service User Guide*. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `GetDeclarativePoliciesReportSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDeclarativePoliciesReportSummaryOutput`. + """ + return await self._invoke( + input, _models.GET_DECLARATIVE_POLICIES_REPORT_SUMMARY, [], plugins + ) + + async def get_default_credit_specification( + self, + input: GetDefaultCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> GetDefaultCreditSpecificationOutput: + """ + Describes the default credit option for CPU usage of a burstable + performance instance family. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetDefaultCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDefaultCreditSpecificationOutput`. + """ + return await self._invoke( + input, _models.GET_DEFAULT_CREDIT_SPECIFICATION, [], plugins + ) + + async def get_ebs_default_kms_key_id( + self, input: GetEbsDefaultKmsKeyIdInput, plugins: list[Plugin] | None = None + ) -> GetEbsDefaultKmsKeyIdOutput: + """ + Describes the default KMS key for EBS encryption by default for your + account in this Region. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEbsDefaultKmsKeyIdOutput`. + """ + return await self._invoke( + input, _models.GET_EBS_DEFAULT_KMS_KEY_ID, [], plugins + ) + + async def get_ebs_encryption_by_default( + self, input: GetEbsEncryptionByDefaultInput, plugins: list[Plugin] | None = None + ) -> GetEbsEncryptionByDefaultOutput: + """ + Describes whether EBS encryption by default is enabled for your account + in the current Region. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEbsEncryptionByDefaultOutput`. + """ + return await self._invoke( + input, _models.GET_EBS_ENCRYPTION_BY_DEFAULT, [], plugins + ) + + async def get_enabled_ipam_policy( + self, input: GetEnabledIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> GetEnabledIpamPolicyOutput: + """ + Gets the enabled IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `GetEnabledIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEnabledIpamPolicyOutput`. + """ + return await self._invoke(input, _models.GET_ENABLED_IPAM_POLICY, [], plugins) + + async def get_flow_logs_integration_template( + self, + input: GetFlowLogsIntegrationTemplateInput, + plugins: list[Plugin] | None = None, + ) -> GetFlowLogsIntegrationTemplateOutput: + """ + Generates a CloudFormation template that streamlines and automates the + integration of VPC flow logs with Amazon Athena. This make it easier for + you to query and gain insights from VPC flow logs data. Based on the + information that you provide, we configure resources in the template to + do the following: + + - Create a table in Athena that maps fields to a custom log format + + - Create a Lambda function that updates the table with new partitions on + a daily, weekly, or monthly basis + + - Create a table partitioned between two timestamps in the past + + - Create a set of named queries in Athena that you can use to get + started quickly + + Note: + `GetFlowLogsIntegrationTemplate` does not support integration between + Amazon Web Services Transit Gateway Flow Logs or Amazon Web Services + Cloud WAN Flow Logs and Amazon Athena. + + Args: + input: + An instance of `GetFlowLogsIntegrationTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFlowLogsIntegrationTemplateOutput`. + """ + return await self._invoke( + input, _models.GET_FLOW_LOGS_INTEGRATION_TEMPLATE, [], plugins + ) + + async def get_groups_for_capacity_reservation( + self, + input: GetGroupsForCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> GetGroupsForCapacityReservationOutput: + """ + Lists the resource groups to which a Capacity Reservation has been + added. + + Args: + input: + An instance of `GetGroupsForCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupsForCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.GET_GROUPS_FOR_CAPACITY_RESERVATION, [], plugins + ) + + async def get_host_reservation_purchase_preview( + self, + input: GetHostReservationPurchasePreviewInput, + plugins: list[Plugin] | None = None, + ) -> GetHostReservationPurchasePreviewOutput: + """ + Preview a reservation purchase with configurations that match those of + your Dedicated Host. You must have active Dedicated Hosts in your + account before you purchase a reservation. + + This is a preview of the PurchaseHostReservation action and does not + result in the offering being purchased. + + Args: + input: + An instance of `GetHostReservationPurchasePreviewInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHostReservationPurchasePreviewOutput`. + """ + return await self._invoke( + input, _models.GET_HOST_RESERVATION_PURCHASE_PREVIEW, [], plugins + ) + + async def get_image_ancestry( + self, input: GetImageAncestryInput, plugins: list[Plugin] | None = None + ) -> GetImageAncestryOutput: + """ + Retrieves the ancestry chain of the specified AMI, tracing its lineage + back to the root AMI. For more information, see [AMI + ancestry](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-ancestry.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetImageAncestryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageAncestryOutput`. + """ + return await self._invoke(input, _models.GET_IMAGE_ANCESTRY, [], plugins) + + async def get_image_block_public_access_state( + self, + input: GetImageBlockPublicAccessStateInput, + plugins: list[Plugin] | None = None, + ) -> GetImageBlockPublicAccessStateOutput: + """ + Gets the current state of *block public access for AMIs* at the account + level in the specified Amazon Web Services Region. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetImageBlockPublicAccessStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageBlockPublicAccessStateOutput`. + """ + return await self._invoke( + input, _models.GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE, [], plugins + ) + + async def get_image_findings( + self, input: GetImageFindingsInput, plugins: list[Plugin] | None = None + ) -> GetImageFindingsOutput: + """ + Describes the Amazon Inspector vulnerability findings for the specified + AMI. + + You can get findings for AMIs that you own, AMIs that are shared with + you, and public AMIs. Amazon Inspector returns findings only for AMIs + that it has scanned. + + Args: + input: + An instance of `GetImageFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageFindingsOutput`. + """ + return await self._invoke(input, _models.GET_IMAGE_FINDINGS, [], plugins) + + async def get_instance_metadata_defaults( + self, + input: GetInstanceMetadataDefaultsInput, + plugins: list[Plugin] | None = None, + ) -> GetInstanceMetadataDefaultsOutput: + """ + Gets the default instance metadata service (IMDS) settings that are set + at the account level in the specified Amazon Web Services
 Region. + + For more information, see [Order of precedence for instance metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetInstanceMetadataDefaultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceMetadataDefaultsOutput`. + """ + return await self._invoke( + input, _models.GET_INSTANCE_METADATA_DEFAULTS, [], plugins + ) + + async def get_instance_tpm_ek_pub( + self, input: GetInstanceTpmEkPubInput, plugins: list[Plugin] | None = None + ) -> GetInstanceTpmEkPubOutput: + """ + Gets the public endorsement key associated with the Nitro Trusted + Platform Module (NitroTPM) for the specified instance. + + Args: + input: + An instance of `GetInstanceTpmEkPubInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceTpmEkPubOutput`. + """ + return await self._invoke(input, _models.GET_INSTANCE_TPM_EK_PUB, [], plugins) + + async def get_instance_types_from_instance_requirements( + self, + input: GetInstanceTypesFromInstanceRequirementsInput, + plugins: list[Plugin] | None = None, + ) -> GetInstanceTypesFromInstanceRequirementsOutput: + """ + Returns a list of instance types with the specified instance attributes. + You can use the response to preview the instance types without launching + instances. Note that the response does not consider capacity. + + When you specify multiple parameters, you get instance types that + satisfy all of the specified parameters. If you specify multiple values + for a parameter, you get instance types that satisfy any of the + specified values. + + For more information, see [Preview instance types with specified + attributes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements), + [Specify attributes for instance type selection for EC2 Fleet or Spot + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), + and [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*, and [Creating mixed instance groups + using attribute-based instance type + selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + in the *Amazon EC2 Auto Scaling User Guide*. + + Args: + input: + An instance of `GetInstanceTypesFromInstanceRequirementsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceTypesFromInstanceRequirementsOutput`. + """ + return await self._invoke( + input, _models.GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS, [], plugins + ) + + async def get_instance_uefi_data( + self, input: GetInstanceUefiDataInput, plugins: list[Plugin] | None = None + ) -> GetInstanceUefiDataOutput: + """ + A binary representation of the UEFI variable store. Only non-volatile + variables are stored. This is a base64 encoded and zlib compressed + binary value that must be properly encoded. + + When you use + [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) + to create an AMI, you can create an exact copy of your variable store by + passing the UEFI data in the `UefiData` parameter. You can modify the + UEFI data by using the [python-uefivars + tool](https://github.com/awslabs/python-uefivars) on GitHub. You can use + the tool to convert the UEFI data into a human-readable format (JSON), + which you can inspect and modify, and then convert back into the binary + format to use with register-image. + + For more information, see [UEFI Secure + Boot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetInstanceUefiDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceUefiDataOutput`. + """ + return await self._invoke(input, _models.GET_INSTANCE_UEFI_DATA, [], plugins) + + async def get_ipam_address_history( + self, input: GetIpamAddressHistoryInput, plugins: list[Plugin] | None = None + ) -> GetIpamAddressHistoryOutput: + """ + Retrieve historical information about a CIDR within an IPAM scope. For + more information, see [View the history of IP + addresses](https://docs.aws.amazon.com/vpc/latest/ipam/view-history-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `GetIpamAddressHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamAddressHistoryOutput`. + """ + return await self._invoke(input, _models.GET_IPAM_ADDRESS_HISTORY, [], plugins) + + async def get_ipam_discovered_accounts( + self, input: GetIpamDiscoveredAccountsInput, plugins: list[Plugin] | None = None + ) -> GetIpamDiscoveredAccountsOutput: + """ + Gets IPAM discovered accounts. A discovered account is an Amazon Web + Services account that is monitored under a resource discovery. If you + have integrated IPAM with Amazon Web Services Organizations, all + accounts in the organization are discovered accounts. Only the IPAM + account can get all discovered accounts in the organization. + + Args: + input: + An instance of `GetIpamDiscoveredAccountsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredAccountsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_DISCOVERED_ACCOUNTS, [], plugins + ) + + async def get_ipam_discovered_public_addresses( + self, + input: GetIpamDiscoveredPublicAddressesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamDiscoveredPublicAddressesOutput: + """ + Gets the public IP addresses that have been discovered by IPAM. + + Args: + input: + An instance of `GetIpamDiscoveredPublicAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredPublicAddressesOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES, [], plugins + ) + + async def get_ipam_discovered_resource_cidrs( + self, + input: GetIpamDiscoveredResourceCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamDiscoveredResourceCidrsOutput: + """ + Returns the resource CIDRs that are monitored as part of a resource + discovery. A discovered resource is a resource CIDR monitored under a + resource discovery. The following resources can be discovered: VPCs, + Public IPv4 pools, VPC subnets, and Elastic IP addresses. + + Args: + input: + An instance of `GetIpamDiscoveredResourceCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredResourceCidrsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_DISCOVERED_RESOURCE_CIDRS, [], plugins + ) + + async def get_ipam_discovered_routes( + self, input: GetIpamDiscoveredRoutesInput, plugins: list[Plugin] | None = None + ) -> GetIpamDiscoveredRoutesOutput: + """ + Retrieves Border Gateway Protocol (BGP) routes discovered by IPAM + resource discovery for a specified Region. Use this operation to view + the Bring Your Own IP (BYOIP) address ranges that are currently + advertised through BGP. We recommend using pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamDiscoveredRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredRoutesOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_DISCOVERED_ROUTES, [], plugins + ) + + async def get_ipam_internet_registry_association_asns( + self, + input: GetIpamInternetRegistryAssociationAsnsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamInternetRegistryAssociationAsnsOutput: + """ + Retrieves Autonomous System Numbers (ASNs) registered with an internet + registry for an IPAM internet registry association. We recommend using + pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `GetIpamInternetRegistryAssociationAsnsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamInternetRegistryAssociationAsnsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS, [], plugins + ) + + async def get_ipam_internet_registry_association_cidrs( + self, + input: GetIpamInternetRegistryAssociationCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamInternetRegistryAssociationCidrsOutput: + """ + Retrieves IP address CIDRs registered with an internet registry for an + IPAM internet registry association. We recommend using pagination to + ensure that the operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamInternetRegistryAssociationCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamInternetRegistryAssociationCidrsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS, [], plugins + ) + + async def get_ipam_policy_allocation_rules( + self, + input: GetIpamPolicyAllocationRulesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPolicyAllocationRulesOutput: + """ + Gets the allocation rules for an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + + Args: + input: + An instance of `GetIpamPolicyAllocationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPolicyAllocationRulesOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_POLICY_ALLOCATION_RULES, [], plugins + ) + + async def get_ipam_policy_organization_targets( + self, + input: GetIpamPolicyOrganizationTargetsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPolicyOrganizationTargetsOutput: + """ + Gets the Amazon Web Services Organizations targets for an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + + Args: + input: + An instance of `GetIpamPolicyOrganizationTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPolicyOrganizationTargetsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_POLICY_ORGANIZATION_TARGETS, [], plugins + ) + + async def get_ipam_pool_allocations( + self, input: GetIpamPoolAllocationsInput, plugins: list[Plugin] | None = None + ) -> GetIpamPoolAllocationsOutput: + """ + Get a list of all the CIDR allocations in an IPAM pool. The Region you + use should be the IPAM pool locale. The locale is the Amazon Web + Services Region where this IPAM pool is available for allocations. + + Note: + If you use this action after + [AllocateIpamPoolCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AllocateIpamPoolCidr.html) + or + [ReleaseIpamPoolAllocation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html), + note that all EC2 API actions follow an [eventual + consistency](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + model. + + Args: + input: + An instance of `GetIpamPoolAllocationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPoolAllocationsOutput`. + """ + return await self._invoke(input, _models.GET_IPAM_POOL_ALLOCATIONS, [], plugins) + + async def get_ipam_pool_cidrs( + self, input: GetIpamPoolCidrsInput, plugins: list[Plugin] | None = None + ) -> GetIpamPoolCidrsOutput: + """ + Get the CIDRs provisioned to an IPAM pool. + + Args: + input: + An instance of `GetIpamPoolCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPoolCidrsOutput`. + """ + return await self._invoke(input, _models.GET_IPAM_POOL_CIDRS, [], plugins) + + async def get_ipam_prefix_list_resolver_rules( + self, + input: GetIpamPrefixListResolverRulesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverRulesOutput: + """ + Retrieves the CIDR selection rules for an IPAM prefix list resolver. Use + this operation to view the business logic that determines which CIDRs + are selected for synchronization with prefix lists. + + Args: + input: + An instance of `GetIpamPrefixListResolverRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverRulesOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_RULES, [], plugins + ) + + async def get_ipam_prefix_list_resolver_version_entries( + self, + input: GetIpamPrefixListResolverVersionEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverVersionEntriesOutput: + """ + Retrieves the CIDR entries for a specific version of an IPAM prefix list + resolver. This shows the actual CIDRs that were selected and + synchronized at a particular point in time. + + Args: + input: + An instance of `GetIpamPrefixListResolverVersionEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverVersionEntriesOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES, [], plugins + ) + + async def get_ipam_prefix_list_resolver_versions( + self, + input: GetIpamPrefixListResolverVersionsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverVersionsOutput: + """ + Retrieves version information for an IPAM prefix list resolver. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + + **Version example:** + + **Initial State (Version 1)** + + Production environment: + + - vpc-prod-web (10.1.0.0/16) - tagged env=prod + + - vpc-prod-db (10.2.0.0/16) - tagged env=prod + + Resolver rule: Include all VPCs tagged env=prod + + **Version 1 CIDRs:** 10.1.0.0/16, 10.2.0.0/16 + + **Infrastructure Change (Version 2)** + + New VPC added: + + - vpc-prod-api (10.3.0.0/16) - tagged env=prod + + IPAM automatically detects the change and creates a new version. + + **Version 2 CIDRs:** 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16 + + Args: + input: + An instance of `GetIpamPrefixListResolverVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverVersionsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS, [], plugins + ) + + async def get_ipam_resource_cidrs( + self, input: GetIpamResourceCidrsInput, plugins: list[Plugin] | None = None + ) -> GetIpamResourceCidrsOutput: + """ + Returns resource CIDRs managed by IPAM in a given scope. If an IPAM is + associated with more than one resource discovery, the resource CIDRs + across all of the resource discoveries is returned. A resource discovery + is an IPAM component that enables IPAM to manage and monitor resources + that belong to the owning account. + + Args: + input: + An instance of `GetIpamResourceCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamResourceCidrsOutput`. + """ + return await self._invoke(input, _models.GET_IPAM_RESOURCE_CIDRS, [], plugins) + + async def get_ipam_route_origin_authorizations( + self, + input: GetIpamRouteOriginAuthorizationsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRouteOriginAuthorizationsOutput: + """ + Retrieves the current Route Origin Authorizations (ROAs) published to + the RPKI for an IPAM internet registry association. We recommend using + pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `GetIpamRouteOriginAuthorizationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRouteOriginAuthorizationsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS, [], plugins + ) + + async def get_ipam_route_protection_findings( + self, + input: GetIpamRouteProtectionFindingsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRouteProtectionFindingsOutput: + """ + Retrieves route protection findings for an IPAM. Route protection + findings show the Resource Public Key Infrastructure (RPKI) validation + status of your Bring Your Own IP (BYOIP) routes. Findings identify + routes that have valid, invalid, or unknown validation states. We + recommend using pagination to ensure that the operation returns quickly + and successfully. + + Args: + input: + An instance of `GetIpamRouteProtectionFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRouteProtectionFindingsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_ROUTE_PROTECTION_FINDINGS, [], plugins + ) + + async def get_ipam_routing_policy_registration_deltas( + self, + input: GetIpamRoutingPolicyRegistrationDeltasInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRoutingPolicyRegistrationDeltasOutput: + """ + Retrieves the history of routing policy registration changes for an IPAM + internet registry association. We recommend using pagination to ensure + that the operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamRoutingPolicyRegistrationDeltasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRoutingPolicyRegistrationDeltasOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS, [], plugins + ) + + async def get_ipam_routing_policy_registrations( + self, + input: GetIpamRoutingPolicyRegistrationsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRoutingPolicyRegistrationsOutput: + """ + Retrieves routing policy registrations for an IPAM internet registry + association. Each registration represents a Route Origin Authorization + (ROA) that has been created or is pending publication to the RPKI. We + recommend using pagination to ensure that the operation returns quickly + and successfully. + + Args: + input: + An instance of `GetIpamRoutingPolicyRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRoutingPolicyRegistrationsOutput`. + """ + return await self._invoke( + input, _models.GET_IPAM_ROUTING_POLICY_REGISTRATIONS, [], plugins + ) + + async def get_launch_template_data( + self, input: GetLaunchTemplateDataInput, plugins: list[Plugin] | None = None + ) -> GetLaunchTemplateDataOutput: + """ + Retrieves the configuration data of the specified instance. You can use + this data to create a launch template. + + This action calls on other describe actions to get instance information. + Depending on your instance configuration, you may need to allow the + following actions in your IAM policy: `DescribeSpotInstanceRequests`, + `DescribeInstanceCreditSpecifications`, `DescribeVolumes`, and + `DescribeInstanceAttribute`. Or, you can allow `describe*` depending on + your instance requirements. + + Args: + input: + An instance of `GetLaunchTemplateDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLaunchTemplateDataOutput`. + """ + return await self._invoke(input, _models.GET_LAUNCH_TEMPLATE_DATA, [], plugins) + + async def get_managed_prefix_list_associations( + self, + input: GetManagedPrefixListAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedPrefixListAssociationsOutput: + """ + Gets information about the resources that are associated with the + specified managed prefix list. + + Args: + input: + An instance of `GetManagedPrefixListAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedPrefixListAssociationsOutput`. + """ + return await self._invoke( + input, _models.GET_MANAGED_PREFIX_LIST_ASSOCIATIONS, [], plugins + ) + + async def get_managed_prefix_list_entries( + self, + input: GetManagedPrefixListEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedPrefixListEntriesOutput: + """ + Gets information about the entries for a specified managed prefix list. + + Args: + input: + An instance of `GetManagedPrefixListEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedPrefixListEntriesOutput`. + """ + return await self._invoke( + input, _models.GET_MANAGED_PREFIX_LIST_ENTRIES, [], plugins + ) + + async def get_managed_resource_visibility( + self, + input: GetManagedResourceVisibilityInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedResourceVisibilityOutput: + """ + Retrieves the managed resource visibility configuration for the account. + The response indicates whether managed resources are hidden or visible + by default. + + Args: + input: + An instance of `GetManagedResourceVisibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedResourceVisibilityOutput`. + """ + return await self._invoke( + input, _models.GET_MANAGED_RESOURCE_VISIBILITY, [], plugins + ) + + async def get_network_insights_access_scope_analysis_findings( + self, + input: GetNetworkInsightsAccessScopeAnalysisFindingsInput, + plugins: list[Plugin] | None = None, + ) -> GetNetworkInsightsAccessScopeAnalysisFindingsOutput: + """ + Gets the findings for the specified Network Access Scope analysis. + + Args: + input: + An instance of `GetNetworkInsightsAccessScopeAnalysisFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetNetworkInsightsAccessScopeAnalysisFindingsOutput`. + """ + return await self._invoke( + input, + _models.GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS, + [], + plugins, + ) + + async def get_network_insights_access_scope_content( + self, + input: GetNetworkInsightsAccessScopeContentInput, + plugins: list[Plugin] | None = None, + ) -> GetNetworkInsightsAccessScopeContentOutput: + """ + Gets the content for the specified Network Access Scope. + + Args: + input: + An instance of `GetNetworkInsightsAccessScopeContentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetNetworkInsightsAccessScopeContentOutput`. + """ + return await self._invoke( + input, _models.GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT, [], plugins + ) + + async def get_password_data( + self, input: GetPasswordDataInput, plugins: list[Plugin] | None = None + ) -> GetPasswordDataOutput: + """ + Retrieves the encrypted administrator password for a running Windows + instance. + + The Windows password is generated at boot by the `EC2Config` service or + `EC2Launch` scripts (Windows Server 2016 and later). This usually only + happens the first time an instance is launched. For more information, + see + [EC2Config](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingConfig_WinAMI.html) + and + [EC2Launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2launch.html) + in the *Amazon EC2 User Guide*. + + For the `EC2Config` service, the password is not generated for rebundled + AMIs unless `Ec2SetPassword` is enabled before bundling. + + The password is encrypted using the key pair that you specified when you + launched the instance. You must provide the corresponding key pair file. + + When you launch an instance, password generation and encryption may take + a few minutes. If you try to retrieve the password before it's + available, the output returns an empty string. We recommend that you + wait up to 15 minutes after launching an instance before trying to + retrieve the generated password. + + Args: + input: + An instance of `GetPasswordDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPasswordDataOutput`. + """ + return await self._invoke(input, _models.GET_PASSWORD_DATA, [], plugins) + + async def get_reserved_instances_exchange_quote( + self, + input: GetReservedInstancesExchangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> GetReservedInstancesExchangeQuoteOutput: + """ + Returns a quote and exchange information for exchanging one or more + specified Convertible Reserved Instances for a new Convertible Reserved + Instance. If the exchange cannot be performed, the reason is returned in + the response. Use AcceptReservedInstancesExchangeQuote to perform the + exchange. + + Args: + input: + An instance of `GetReservedInstancesExchangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetReservedInstancesExchangeQuoteOutput`. + """ + return await self._invoke( + input, _models.GET_RESERVED_INSTANCES_EXCHANGE_QUOTE, [], plugins + ) + + async def get_route_server_associations( + self, + input: GetRouteServerAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerAssociationsOutput: + """ + Gets information about the associations for the specified route server. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `GetRouteServerAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerAssociationsOutput`. + """ + return await self._invoke( + input, _models.GET_ROUTE_SERVER_ASSOCIATIONS, [], plugins + ) + + async def get_route_server_propagations( + self, + input: GetRouteServerPropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerPropagationsOutput: + """ + Gets information about the route propagations for the specified route + server. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + Args: + input: + An instance of `GetRouteServerPropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerPropagationsOutput`. + """ + return await self._invoke( + input, _models.GET_ROUTE_SERVER_PROPAGATIONS, [], plugins + ) + + async def get_route_server_routing_database( + self, + input: GetRouteServerRoutingDatabaseInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerRoutingDatabaseOutput: + """ + Gets the routing database for the specified route server. The [Routing + Information Base (RIB)](https://en.wikipedia.org/wiki/Routing_table) + serves as a database that stores all the routing information and network + topology data collected by a router or routing system, such as routes + learned from BGP peers. The RIB is constantly updated as new routing + information is received or existing routes change. This ensures that the + route server always has the most current view of the network topology + and can make optimal routing decisions. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + Args: + input: + An instance of `GetRouteServerRoutingDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerRoutingDatabaseOutput`. + """ + return await self._invoke( + input, _models.GET_ROUTE_SERVER_ROUTING_DATABASE, [], plugins + ) + + async def get_security_groups_for_vpc( + self, input: GetSecurityGroupsForVpcInput, plugins: list[Plugin] | None = None + ) -> GetSecurityGroupsForVpcOutput: + """ + Gets security groups that can be associated by the Amazon Web Services + account making the request with network interfaces in the specified VPC. + + Args: + input: + An instance of `GetSecurityGroupsForVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSecurityGroupsForVpcOutput`. + """ + return await self._invoke( + input, _models.GET_SECURITY_GROUPS_FOR_VPC, [], plugins + ) + + async def get_serial_console_access_status( + self, + input: GetSerialConsoleAccessStatusInput, + plugins: list[Plugin] | None = None, + ) -> GetSerialConsoleAccessStatusOutput: + """ + Retrieves the access status of your account to the EC2 serial console of + all instances. By default, access to the EC2 serial console is disabled + for your account. For more information, see [Manage account access to + the EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetSerialConsoleAccessStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSerialConsoleAccessStatusOutput`. + """ + return await self._invoke( + input, _models.GET_SERIAL_CONSOLE_ACCESS_STATUS, [], plugins + ) + + async def get_snapshot_block_public_access_state( + self, + input: GetSnapshotBlockPublicAccessStateInput, + plugins: list[Plugin] | None = None, + ) -> GetSnapshotBlockPublicAccessStateOutput: + """ + Gets the current state of *block public access for snapshots* setting + for the account and Region. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetSnapshotBlockPublicAccessStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSnapshotBlockPublicAccessStateOutput`. + """ + return await self._invoke( + input, _models.GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, [], plugins + ) + + async def get_spot_placement_scores( + self, input: GetSpotPlacementScoresInput, plugins: list[Plugin] | None = None + ) -> GetSpotPlacementScoresOutput: + """ + Calculates the Spot placement score for a Region or Availability Zone + based on the specified target capacity and compute requirements. + + You can specify your compute requirements either by using + `InstanceRequirementsWithMetadata` and letting Amazon EC2 choose the + optimal instance types to fulfill your Spot request, or you can specify + the instance types by using `InstanceTypes`. + + For more information, see [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetSpotPlacementScoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSpotPlacementScoresOutput`. + """ + return await self._invoke(input, _models.GET_SPOT_PLACEMENT_SCORES, [], plugins) + + async def get_subnet_cidr_reservations( + self, input: GetSubnetCidrReservationsInput, plugins: list[Plugin] | None = None + ) -> GetSubnetCidrReservationsOutput: + """ + Gets information about the subnet CIDR reservations. + + Args: + input: + An instance of `GetSubnetCidrReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSubnetCidrReservationsOutput`. + """ + return await self._invoke( + input, _models.GET_SUBNET_CIDR_RESERVATIONS, [], plugins + ) + + async def get_transit_gateway_attachment_nat_configuration( + self, + input: GetTransitGatewayAttachmentNatConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayAttachmentNatConfigurationOutput: + """ + Describes the NAT configuration for the specified transit gateway + attachment. Only the owner of the transit gateway can describe the NAT + configuration. + + Args: + input: + An instance of `GetTransitGatewayAttachmentNatConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayAttachmentNatConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION, [], plugins + ) + + async def get_transit_gateway_attachment_propagations( + self, + input: GetTransitGatewayAttachmentPropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayAttachmentPropagationsOutput: + """ + Lists the route tables to which the specified resource attachment + propagates routes. + + Args: + input: + An instance of `GetTransitGatewayAttachmentPropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayAttachmentPropagationsOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS, [], plugins + ) + + async def get_transit_gateway_metering_policy_entries( + self, + input: GetTransitGatewayMeteringPolicyEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayMeteringPolicyEntriesOutput: + """ + Retrieves the entries for a transit gateway metering policy. + + Args: + input: + An instance of `GetTransitGatewayMeteringPolicyEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayMeteringPolicyEntriesOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES, [], plugins + ) + + async def get_transit_gateway_multicast_domain_associations( + self, + input: GetTransitGatewayMulticastDomainAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayMulticastDomainAssociationsOutput: + """ + Gets information about the associations for the transit gateway + multicast domain. + + Args: + input: + An instance of `GetTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayMulticastDomainAssociationsOutput`. + """ + return await self._invoke( + input, + _models.GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + async def get_transit_gateway_policy_table_associations( + self, + input: GetTransitGatewayPolicyTableAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPolicyTableAssociationsOutput: + """ + Gets a list of the transit gateway policy table associations. + + Args: + input: + An instance of `GetTransitGatewayPolicyTableAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPolicyTableAssociationsOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS, [], plugins + ) + + async def get_transit_gateway_policy_table_entries( + self, + input: GetTransitGatewayPolicyTableEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPolicyTableEntriesOutput: + """ + Returns a list of transit gateway policy table entries. + + Args: + input: + An instance of `GetTransitGatewayPolicyTableEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPolicyTableEntriesOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES, [], plugins + ) + + async def get_transit_gateway_prefix_list_references( + self, + input: GetTransitGatewayPrefixListReferencesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPrefixListReferencesOutput: + """ + Gets information about the prefix list references in a specified transit + gateway route table. + + Args: + input: + An instance of `GetTransitGatewayPrefixListReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPrefixListReferencesOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES, [], plugins + ) + + async def get_transit_gateway_route_table_associations( + self, + input: GetTransitGatewayRouteTableAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayRouteTableAssociationsOutput: + """ + Gets information about the associations for the specified transit + gateway route table. + + Args: + input: + An instance of `GetTransitGatewayRouteTableAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayRouteTableAssociationsOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS, [], plugins + ) + + async def get_transit_gateway_route_table_propagations( + self, + input: GetTransitGatewayRouteTablePropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayRouteTablePropagationsOutput: + """ + Gets information about the route table propagations for the specified + transit gateway route table. + + Args: + input: + An instance of `GetTransitGatewayRouteTablePropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayRouteTablePropagationsOutput`. + """ + return await self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS, [], plugins + ) + + async def get_verified_access_endpoint_policy( + self, + input: GetVerifiedAccessEndpointPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessEndpointPolicyOutput: + """ + Get the Verified Access policy associated with the endpoint. + + Args: + input: + An instance of `GetVerifiedAccessEndpointPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessEndpointPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_VERIFIED_ACCESS_ENDPOINT_POLICY, [], plugins + ) + + async def get_verified_access_endpoint_targets( + self, + input: GetVerifiedAccessEndpointTargetsInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessEndpointTargetsOutput: + """ + Gets the targets for the specified network CIDR endpoint for Verified + Access. + + Args: + input: + An instance of `GetVerifiedAccessEndpointTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessEndpointTargetsOutput`. + """ + return await self._invoke( + input, _models.GET_VERIFIED_ACCESS_ENDPOINT_TARGETS, [], plugins + ) + + async def get_verified_access_group_policy( + self, + input: GetVerifiedAccessGroupPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessGroupPolicyOutput: + """ + Shows the contents of the Verified Access policy associated with the + group. + + Args: + input: + An instance of `GetVerifiedAccessGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessGroupPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_VERIFIED_ACCESS_GROUP_POLICY, [], plugins + ) + + async def get_vpc_resources_blocking_encryption_enforcement( + self, + input: GetVpcResourcesBlockingEncryptionEnforcementInput, + plugins: list[Plugin] | None = None, + ) -> GetVpcResourcesBlockingEncryptionEnforcementOutput: + """ + Gets information about resources in a VPC that are blocking encryption + enforcement. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `GetVpcResourcesBlockingEncryptionEnforcementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpcResourcesBlockingEncryptionEnforcementOutput`. + """ + return await self._invoke( + input, + _models.GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT, + [], + plugins, + ) + + async def get_vpn_connection_device_sample_configuration( + self, + input: GetVpnConnectionDeviceSampleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetVpnConnectionDeviceSampleConfigurationOutput: + """ + Download an Amazon Web Services-provided sample configuration file to be + used with the customer gateway device specified for your Site-to-Site + VPN connection. + + Args: + input: + An instance of `GetVpnConnectionDeviceSampleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnConnectionDeviceSampleConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION, [], plugins + ) + + async def get_vpn_connection_device_types( + self, + input: GetVpnConnectionDeviceTypesInput, + plugins: list[Plugin] | None = None, + ) -> GetVpnConnectionDeviceTypesOutput: + """ + Obtain a list of customer gateway devices for which sample configuration + files can be provided. The request has no additional parameters. You can + also see the list of device types with sample configuration files + available under [Your customer gateway + device](https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html) in + the *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `GetVpnConnectionDeviceTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnConnectionDeviceTypesOutput`. + """ + return await self._invoke( + input, _models.GET_VPN_CONNECTION_DEVICE_TYPES, [], plugins + ) + + async def get_vpn_tunnel_replacement_status( + self, + input: GetVpnTunnelReplacementStatusInput, + plugins: list[Plugin] | None = None, + ) -> GetVpnTunnelReplacementStatusOutput: + """ + Get details of available tunnel endpoint maintenance. + + Args: + input: + An instance of `GetVpnTunnelReplacementStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnTunnelReplacementStatusOutput`. + """ + return await self._invoke( + input, _models.GET_VPN_TUNNEL_REPLACEMENT_STATUS, [], plugins + ) + + async def import_client_vpn_client_certificate_revocation_list( + self, + input: ImportClientVpnClientCertificateRevocationListInput, + plugins: list[Plugin] | None = None, + ) -> ImportClientVpnClientCertificateRevocationListOutput: + """ + Uploads a client certificate revocation list to the specified Client VPN + endpoint. Uploading a client certificate revocation list overwrites the + existing client certificate revocation list. + + Uploading a client certificate revocation list resets existing client + connections. + + Args: + input: + An instance of `ImportClientVpnClientCertificateRevocationListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportClientVpnClientCertificateRevocationListOutput`. + """ + return await self._invoke( + input, + _models.IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST, + [], + plugins, + ) + + async def import_image( + self, input: ImportImageInput, plugins: list[Plugin] | None = None + ) -> ImportImageOutput: + """ + Note: + To import your virtual machines (VMs) with a console-based experience, + you can use the *Import virtual machine images to Amazon Web Services* + template in the [Migration Hub Orchestrator + console](https://console.aws.amazon.com/migrationhub/orchestrator). For + more information, see the [*Migration Hub Orchestrator User + Guide*](https://docs.aws.amazon.com/migrationhub-orchestrator/latest/userguide/import-vm-images.html) + . + + Import single or multi-volume disk images or EBS snapshots into an + Amazon Machine Image (AMI). + + Warning: + Amazon Web Services VM Import/Export strongly recommends specifying a + value for either the `--license-type` or `--usage-operation` parameter + when you create a new VM Import task. This ensures your operating system + is licensed appropriately and your billing is optimized. + + For more information, see [Importing a VM as an image using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ImportImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportImageOutput`. + """ + return await self._invoke(input, _models.IMPORT_IMAGE, [], plugins) + + async def import_instance( + self, input: ImportInstanceInput, plugins: list[Plugin] | None = None + ) -> ImportInstanceOutput: + """ + Note: + We recommend that you use the + [`ImportImage`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html) + API instead. For more information, see [Importing a VM as an image using + VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html) + in the *VM Import/Export User Guide*. + + Creates an import instance task using metadata from the specified disk + image. + + This API action supports only single-volume VMs. To import multi-volume + VMs, use ImportImage instead. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + This API action is not supported by the Command Line Interface (CLI). + + Args: + input: + An instance of `ImportInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportInstanceOutput`. + """ + return await self._invoke(input, _models.IMPORT_INSTANCE, [], plugins) + + async def import_key_pair( + self, input: ImportKeyPairInput, plugins: list[Plugin] | None = None + ) -> ImportKeyPairOutput: + """ + Imports the public key from an RSA or ED25519 key pair that you created + using a third-party tool. You give Amazon Web Services only the public + key. The private key is never transferred between you and Amazon Web + Services. + + For more information about the requirements for importing a key pair, + see [Create a key pair and import the public key to Amazon + EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ImportKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportKeyPairOutput`. + """ + return await self._invoke(input, _models.IMPORT_KEY_PAIR, [], plugins) + + async def import_snapshot( + self, input: ImportSnapshotInput, plugins: list[Plugin] | None = None + ) -> ImportSnapshotOutput: + """ + Imports a disk into an EBS snapshot. + + For more information, see [Importing a disk as a snapshot using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ImportSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportSnapshotOutput`. + """ + return await self._invoke(input, _models.IMPORT_SNAPSHOT, [], plugins) + + async def import_volume( + self, input: ImportVolumeInput, plugins: list[Plugin] | None = None + ) -> ImportVolumeOutput: + """ + Note: + This API action supports only single-volume VMs. To import multi-volume + VMs, use ImportImage instead. To import a disk to a snapshot, use + ImportSnapshot instead. + + Creates an import volume task using metadata from the specified disk + image. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + This API action is not supported by the Command Line Interface (CLI). + + Args: + input: + An instance of `ImportVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportVolumeOutput`. + """ + return await self._invoke(input, _models.IMPORT_VOLUME, [], plugins) + + async def list_images_in_recycle_bin( + self, input: ListImagesInRecycleBinInput, plugins: list[Plugin] | None = None + ) -> ListImagesInRecycleBinOutput: + """ + Lists one or more AMIs that are currently in the Recycle Bin. For more + information, see [Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ListImagesInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListImagesInRecycleBinOutput`. + """ + return await self._invoke( + input, _models.LIST_IMAGES_IN_RECYCLE_BIN, [], plugins + ) + + async def list_snapshots_in_recycle_bin( + self, input: ListSnapshotsInRecycleBinInput, plugins: list[Plugin] | None = None + ) -> ListSnapshotsInRecycleBinOutput: + """ + Lists one or more snapshots that are currently in the Recycle Bin. + + Args: + input: + An instance of `ListSnapshotsInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSnapshotsInRecycleBinOutput`. + """ + return await self._invoke( + input, _models.LIST_SNAPSHOTS_IN_RECYCLE_BIN, [], plugins + ) + + async def list_volumes_in_recycle_bin( + self, input: ListVolumesInRecycleBinInput, plugins: list[Plugin] | None = None + ) -> ListVolumesInRecycleBinOutput: + """ + Lists one or more volumes that are currently in the Recycle Bin. + + Args: + input: + An instance of `ListVolumesInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVolumesInRecycleBinOutput`. + """ + return await self._invoke( + input, _models.LIST_VOLUMES_IN_RECYCLE_BIN, [], plugins + ) + + async def lock_snapshot( + self, input: LockSnapshotInput, plugins: list[Plugin] | None = None + ) -> LockSnapshotOutput: + """ + Locks an Amazon EBS snapshot in either *governance* or *compliance* mode + to protect it against accidental or malicious deletions for a specific + duration. A locked snapshot can't be deleted. + + You can also use this action to modify the lock settings for a snapshot + that is already locked. The allowed modifications depend on the lock + mode and lock state: + + - If the snapshot is locked in governance mode, you can modify the lock + mode and the lock duration or lock expiration date. + + - If the snapshot is locked in compliance mode and it is in the + cooling-off period, you can modify the lock mode and the lock duration + or lock expiration date. + + - If the snapshot is locked in compliance mode and the cooling-off + period has lapsed, you can only increase the lock duration or extend + the lock expiration date. + + Args: + input: + An instance of `LockSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `LockSnapshotOutput`. + """ + return await self._invoke(input, _models.LOCK_SNAPSHOT, [], plugins) + + async def modify_account_vpc_encryption_control( + self, + input: ModifyAccountVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> ModifyAccountVpcEncryptionControlOutput: + """ + Modifies the account-level VPC Encryption Control configuration. This + sets the encryption control mode and resource exclusions that apply to + the VPCs in your account. VPC Encryption Control enables you to enforce + encryption for all data in transit within and between VPCs to meet + compliance requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyAccountVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAccountVpcEncryptionControlOutput`. + """ + return await self._invoke( + input, _models.MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + async def modify_address_attribute( + self, input: ModifyAddressAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyAddressAttributeOutput: + """ + Modifies an attribute of the specified Elastic IP address. For + requirements, see [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `ModifyAddressAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAddressAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_ADDRESS_ATTRIBUTE, [], plugins) + + async def modify_application_status_check( + self, + input: ModifyApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> ModifyApplicationStatusCheckOutput: + """ + Modifies an existing application status check. You can update the + protocol, port, path, thresholds, and other configuration settings. The + following rules apply: + + - The application status check must exist and belong to your account. + + - Changes take effect on the next health check interval. + + Args: + input: + An instance of `ModifyApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyApplicationStatusCheckOutput`. + """ + return await self._invoke( + input, _models.MODIFY_APPLICATION_STATUS_CHECK, [], plugins + ) + + async def modify_availability_zone_group( + self, + input: ModifyAvailabilityZoneGroupInput, + plugins: list[Plugin] | None = None, + ) -> ModifyAvailabilityZoneGroupOutput: + """ + Changes the opt-in status of the specified zone group for your account. + + Args: + input: + An instance of `ModifyAvailabilityZoneGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAvailabilityZoneGroupOutput`. + """ + return await self._invoke( + input, _models.MODIFY_AVAILABILITY_ZONE_GROUP, [], plugins + ) + + async def modify_capacity_reservation( + self, input: ModifyCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> ModifyCapacityReservationOutput: + """ + Modifies a Capacity Reservation's capacity, instance eligibility, and + the conditions under which it is to be released. You can't modify a + Capacity Reservation's instance type, EBS optimization, platform, + instance store settings, Availability Zone, or tenancy. If you need to + modify any of these attributes, we recommend that you cancel the + Capacity Reservation, and then create a new one with the required + attributes. For more information, see [Modify an active Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html). + + The allowed modifications depend on the state of the Capacity + Reservation: + + - `assessing` or `scheduled` state - You can modify the tags only. + + - `pending` state - You can't modify the Capacity Reservation in any + way. + + - `active` state but still within the commitment duration - You can't + decrease the instance count or set an end date that is within the + commitment duration. All other modifications are allowed. + + - `active` state with no commitment duration or elapsed commitment + duration - All modifications are allowed. + + - `expired`, `cancelled`, `unsupported`, or `failed` state - You can't + modify the Capacity Reservation in any way. + + For a future-dated Capacity Reservation that has not yet been delivered, + pushing out the start date requires a quote generated by + `CreateCapacityReservationDateChangeQuote`. For more information, see + [Modify an active Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CAPACITY_RESERVATION, [], plugins + ) + + async def modify_capacity_reservation_fleet( + self, + input: ModifyCapacityReservationFleetInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCapacityReservationFleetOutput: + """ + Modifies a Capacity Reservation Fleet. + + When you modify the total target capacity of a Capacity Reservation + Fleet, the Fleet automatically creates new Capacity Reservations, or + modifies or cancels existing Capacity Reservations in the Fleet to meet + the new total target capacity. When you modify the end date for the + Fleet, the end dates for all of the individual Capacity Reservations in + the Fleet are updated accordingly. + + Args: + input: + An instance of `ModifyCapacityReservationFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCapacityReservationFleetOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CAPACITY_RESERVATION_FLEET, [], plugins + ) + + async def modify_client_vpn_endpoint( + self, input: ModifyClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyClientVpnEndpointOutput: + """ + Modifies the specified Client VPN endpoint. Modifying the DNS server + resets existing client connections. + + Args: + input: + An instance of `ModifyClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyClientVpnEndpointOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CLIENT_VPN_ENDPOINT, [], plugins + ) + + async def modify_client_vpn_endpoint_authorization_policy( + self, + input: ModifyClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyClientVpnEndpointAuthorizationPolicyOutput: + """ + Creates or updates the authorization policy for a Client VPN endpoint. A + Client VPN endpoint can have one authorization policy. If a policy + already exists for the endpoint, the values that you specify replace the + corresponding values in the existing policy, and values that you do not + specify remain unchanged. + + Args: + input: + An instance of `ModifyClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyClientVpnEndpointAuthorizationPolicyOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + async def modify_default_credit_specification( + self, + input: ModifyDefaultCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDefaultCreditSpecificationOutput: + """ + Modifies the default credit option for CPU usage of burstable + performance instances. The default credit option is set at the account + level per Amazon Web Services Region, and is specified per instance + family. All new burstable performance instances in the account launch + using the default credit option. + + `ModifyDefaultCreditSpecification` is an asynchronous operation, which + works at an Amazon Web Services Region level and modifies the credit + option for each Availability Zone. All zones in a Region are updated + within five minutes. But if instances are launched during this + operation, they might not get the new credit option until the zone is + updated. To verify whether the update has occurred, you can call + `GetDefaultCreditSpecification` and check `DefaultCreditSpecification` + for updates. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyDefaultCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDefaultCreditSpecificationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DEFAULT_CREDIT_SPECIFICATION, [], plugins + ) + + async def modify_ebs_default_kms_key_id( + self, input: ModifyEbsDefaultKmsKeyIdInput, plugins: list[Plugin] | None = None + ) -> ModifyEbsDefaultKmsKeyIdOutput: + """ + Changes the default KMS key for EBS encryption by default for your + account in this Region. + + Amazon Web Services creates a unique Amazon Web Services managed KMS key + in each Region for use with encryption by default. If you change the + default KMS key to a symmetric customer managed KMS key, it is used + instead of the Amazon Web Services managed KMS key. Amazon EBS does not + support asymmetric KMS keys. + + If you delete or disable the customer managed KMS key that you specified + for use with encryption by default, your instances will fail to launch. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifyEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyEbsDefaultKmsKeyIdOutput`. + """ + return await self._invoke( + input, _models.MODIFY_EBS_DEFAULT_KMS_KEY_ID, [], plugins + ) + + async def modify_fleet( + self, input: ModifyFleetInput, plugins: list[Plugin] | None = None + ) -> ModifyFleetOutput: + """ + Modifies the specified EC2 Fleet. + + You can only modify an EC2 Fleet request of type `maintain`. + + While the EC2 Fleet is being modified, it is in the `modifying` state. + + To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet + launches the additional Spot Instances according to the allocation + strategy for the EC2 Fleet request. If the allocation strategy is + `lowest-price`, the EC2 Fleet launches instances using the Spot Instance + pool with the lowest price. If the allocation strategy is `diversified`, + the EC2 Fleet distributes the instances across the Spot Instance pools. + If the allocation strategy is `capacity-optimized`, EC2 Fleet launches + instances from Spot Instance pools with optimal capacity for the number + of instances that are launching. + + To scale down your EC2 Fleet, decrease its target capacity. First, the + EC2 Fleet cancels any open requests that exceed the new target capacity. + You can request that the EC2 Fleet terminate Spot Instances until the + size of the fleet no longer exceeds the new target capacity. If the + allocation strategy is `lowest-price`, the EC2 Fleet terminates the + instances with the highest price per unit. If the allocation strategy is + `capacity-optimized`, the EC2 Fleet terminates the instances in the Spot + Instance pools that have the least available Spot Instance capacity. If + the allocation strategy is `diversified`, the EC2 Fleet terminates + instances across the Spot Instance pools. Alternatively, you can request + that the EC2 Fleet keep the fleet at its current size, but not replace + any Spot Instances that are interrupted or that you terminate manually. + + If you are finished with your EC2 Fleet for now, but will use it again + later, you can set the target capacity to 0. + + Args: + input: + An instance of `ModifyFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyFleetOutput`. + """ + return await self._invoke(input, _models.MODIFY_FLEET, [], plugins) + + async def modify_fpga_image_attribute( + self, input: ModifyFpgaImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyFpgaImageAttributeOutput: + """ + Modifies the specified attribute of the specified Amazon FPGA Image + (AFI). + + Args: + input: + An instance of `ModifyFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyFpgaImageAttributeOutput`. + """ + return await self._invoke( + input, _models.MODIFY_FPGA_IMAGE_ATTRIBUTE, [], plugins + ) + + async def modify_hosts( + self, input: ModifyHostsInput, plugins: list[Plugin] | None = None + ) -> ModifyHostsOutput: + """ + Modify the auto-placement setting of a Dedicated Host. When + auto-placement is enabled, any instances that you launch with a tenancy + of `host` but without a specific host ID are placed onto any available + Dedicated Host in your account that has auto-placement enabled. When + auto-placement is disabled, you need to provide a host ID to have the + instance launch onto a specific host. If no host ID is provided, the + instance is launched onto a suitable host with auto-placement enabled. + + You can also use this API action to modify a Dedicated Host to support + either multiple instance types in an instance family, or to support a + specific instance type only. + + Args: + input: + An instance of `ModifyHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyHostsOutput`. + """ + return await self._invoke(input, _models.MODIFY_HOSTS, [], plugins) + + async def modify_identity_id_format( + self, input: ModifyIdentityIdFormatInput, plugins: list[Plugin] | None = None + ) -> ModifyIdentityIdFormatOutput: + """ + Modifies the ID format of a resource for a specified IAM user, IAM role, + or the root user for an account; or all IAM users, IAM roles, and the + root user for an account. You can specify that resources should receive + longer IDs (17-character IDs) when they are created. + + This request can only be used to modify longer ID settings for resource + types that are within the opt-in period. Resources currently in their + opt-in period include: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + For more information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + This setting applies to the principal specified in the request; it does + not apply to the principal that makes the request. + + Resources created with longer IDs are visible to all IAM roles and + users, regardless of these settings and provided that they have + permission to use the relevant `Describe` command for the resource type. + + Args: + input: + An instance of `ModifyIdentityIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIdentityIdFormatOutput`. + """ + return await self._invoke(input, _models.MODIFY_IDENTITY_ID_FORMAT, [], plugins) + + async def modify_id_format( + self, input: ModifyIdFormatInput, plugins: list[Plugin] | None = None + ) -> ModifyIdFormatOutput: + """ + Modifies the ID format for the specified resource on a per-Region basis. + You can specify that resources should receive longer IDs (17-character + IDs) when they are created. + + This request can only be used to modify longer ID settings for resource + types that are within the opt-in period. Resources currently in their + opt-in period include: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + This setting applies to the IAM user who makes the request; it does not + apply to the entire Amazon Web Services account. By default, an IAM user + defaults to the same settings as the root user. If you're using this + action as the root user, then these settings apply to the entire + account, unless an IAM user explicitly overrides these settings for + themselves. For more information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Resources created with longer IDs are visible to all IAM roles and + users, regardless of these settings and provided that they have + permission to use the relevant `Describe` command for the resource type. + + Args: + input: + An instance of `ModifyIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIdFormatOutput`. + """ + return await self._invoke(input, _models.MODIFY_ID_FORMAT, [], plugins) + + async def modify_image_attribute( + self, input: ModifyImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyImageAttributeOutput: + """ + Modifies the specified attribute of the specified AMI. You can specify + only one attribute at a time. + + To specify the attribute, you can use the `Attribute` parameter, or one + of the following parameters: `Description`, `ImdsSupport`, or + `LaunchPermission`. + + Images with an Amazon Web Services Marketplace product code cannot be + made public. + + To enable the SriovNetSupport enhanced networking attribute of an image, + enable SriovNetSupport on an instance and create an AMI from the + instance. + + Args: + input: + An instance of `ModifyImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyImageAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_IMAGE_ATTRIBUTE, [], plugins) + + async def modify_instance_attribute( + self, input: ModifyInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceAttributeOutput: + """ + Modifies the specified attribute of the specified instance. You can + specify only one attribute at a time. + + **Note:** Using this action to change the security groups associated + with an elastic network interface (ENI) attached to an instance can + result in an error if the instance has more than one ENI. To change the + security groups associated with an ENI attached to an instance that has + multiple ENIs, we recommend that you use the + ModifyNetworkInterfaceAttribute action. + + To modify some attributes, the instance must be stopped. For more + information, see [Modify a stopped + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_INSTANCE_ATTRIBUTE, [], plugins) + + async def modify_instance_capacity_reservation_attributes( + self, + input: ModifyInstanceCapacityReservationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceCapacityReservationAttributesOutput: + """ + Modifies the Capacity Reservation settings for a stopped instance. Use + this action to configure an instance to target a specific Capacity + Reservation, run in any `open` Capacity Reservation with matching + attributes, run in On-Demand Instance capacity, or only run in a + Capacity Reservation. + + Args: + input: + An instance of `ModifyInstanceCapacityReservationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCapacityReservationAttributesOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES, [], plugins + ) + + async def modify_instance_connect_endpoint( + self, + input: ModifyInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceConnectEndpointOutput: + """ + Modifies the specified EC2 Instance Connect Endpoint. + + For more information, see [Modify an EC2 Instance Connect + Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ec2-instance-connect-endpoint.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceConnectEndpointOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + async def modify_instance_cpu_options( + self, input: ModifyInstanceCpuOptionsInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceCpuOptionsOutput: + """ + By default, all vCPUs for the instance type are active when you launch + an instance. When you configure the number of active vCPUs for the + instance, it can help you save on licensing costs and optimize + performance. The base cost of the instance remains unchanged. + + The number of active vCPUs equals the number of threads per CPU core + multiplied by the number of cores. The instance must be in a `Stopped` + state before you make changes. + + Note: + Some instance type options do not support this capability. For more + information, see [Supported CPU + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceCpuOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCpuOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_CPU_OPTIONS, [], plugins + ) + + async def modify_instance_credit_specification( + self, + input: ModifyInstanceCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceCreditSpecificationOutput: + """ + Modifies the credit option for CPU usage on a running or stopped + burstable performance instance. The credit options are `standard` and + `unlimited`. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCreditSpecificationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_CREDIT_SPECIFICATION, [], plugins + ) + + async def modify_instance_event_start_time( + self, + input: ModifyInstanceEventStartTimeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceEventStartTimeOutput: + """ + Modifies the start time for a scheduled Amazon EC2 instance event. + + Args: + input: + An instance of `ModifyInstanceEventStartTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceEventStartTimeOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_EVENT_START_TIME, [], plugins + ) + + async def modify_instance_event_window( + self, input: ModifyInstanceEventWindowInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceEventWindowOutput: + """ + Modifies the specified event window. + + You can define either a set of time ranges or a cron expression when + modifying the event window, but not both. + + To modify the targets associated with the event window, use the + AssociateInstanceEventWindow and DisassociateInstanceEventWindow API. + + If Amazon Web Services has already scheduled an event, modifying an + event window won't change the time of the scheduled event. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceEventWindowOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_EVENT_WINDOW, [], plugins + ) + + async def modify_instance_maintenance_options( + self, + input: ModifyInstanceMaintenanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMaintenanceOptionsOutput: + """ + Modifies the recovery behavior of your instance to disable simplified + automatic recovery or set the recovery behavior to default. The default + configuration will not enable simplified automatic recovery for an + unsupported instance type. For more information, see [Simplified + automatic + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#instance-configuration-recovery). + + Modifies the reboot migration behavior during a user-initiated reboot of + an instance that has a pending `system-reboot` event. For more + information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration). + + Args: + input: + An instance of `ModifyInstanceMaintenanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMaintenanceOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_MAINTENANCE_OPTIONS, [], plugins + ) + + async def modify_instance_metadata_defaults( + self, + input: ModifyInstanceMetadataDefaultsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMetadataDefaultsOutput: + """ + Modifies the default instance metadata service (IMDS) settings at the + account level in the specified Amazon Web Services
 Region. + + Note: + To remove a parameter's account-level default setting, specify + `no-preference`. If an account-level setting is cleared with + `no-preference`, then the instance launch considers the other instance + metadata settings. For more information, see [Order of precedence for + instance metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceMetadataDefaultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMetadataDefaultsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_METADATA_DEFAULTS, [], plugins + ) + + async def modify_instance_metadata_options( + self, + input: ModifyInstanceMetadataOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMetadataOptionsOutput: + """ + Modify the instance metadata parameters on a running or stopped + instance. When you modify the parameters on a stopped instance, they are + applied when the instance is started. When you modify the parameters on + a running instance, the API responds with a state of "pending". After + the parameter modifications are successfully applied to the instance, + the state of the modifications changes from "pending" to "applied" in + subsequent describe-instances API calls. For more information, see + [Instance metadata and user + data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceMetadataOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMetadataOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_METADATA_OPTIONS, [], plugins + ) + + async def modify_instance_network_performance_options( + self, + input: ModifyInstanceNetworkPerformanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceNetworkPerformanceOptionsOutput: + """ + Change the configuration of the network performance options for an + existing instance. + + Args: + input: + An instance of `ModifyInstanceNetworkPerformanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceNetworkPerformanceOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS, [], plugins + ) + + async def modify_instance_placement( + self, input: ModifyInstancePlacementInput, plugins: list[Plugin] | None = None + ) -> ModifyInstancePlacementOutput: + """ + Modifies the placement attributes for a specified instance. You can do + the following: + + - Modify the affinity between an instance and a [Dedicated + Host](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html). + When affinity is set to `host` and the instance is not associated with + a specific Dedicated Host, the next time the instance is started, it + is automatically associated with the host on which it lands. If the + instance is restarted or rebooted, this relationship persists. + + - Change the Dedicated Host with which an instance is associated. + + - Change the instance tenancy of an instance. + + - Move an instance to or from a [placement + group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html). + + At least one attribute for affinity, host ID, tenancy, or placement + group name must be specified in the request. Affinity and tenancy can be + modified in the same request. + + To modify the host ID, tenancy, placement group, or partition for an + instance, the instance must be in the `stopped` state. + + Args: + input: + An instance of `ModifyInstancePlacementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstancePlacementOutput`. + """ + return await self._invoke(input, _models.MODIFY_INSTANCE_PLACEMENT, [], plugins) + + async def modify_ipam( + self, input: ModifyIpamInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamOutput: + """ + Modify the configurations of an IPAM. + + Args: + input: + An instance of `ModifyIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamOutput`. + """ + return await self._invoke(input, _models.MODIFY_IPAM, [], plugins) + + async def modify_ipam_policy_allocation_rules( + self, + input: ModifyIpamPolicyAllocationRulesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPolicyAllocationRulesOutput: + """ + Modifies the allocation rules in an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + + Args: + input: + An instance of `ModifyIpamPolicyAllocationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPolicyAllocationRulesOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_POLICY_ALLOCATION_RULES, [], plugins + ) + + async def modify_ipam_pool( + self, input: ModifyIpamPoolInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamPoolOutput: + """ + Modify the configurations of an IPAM pool. + + For more information, see [Modify a + pool](https://docs.aws.amazon.com/vpc/latest/ipam/mod-pool-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPoolOutput`. + """ + return await self._invoke(input, _models.MODIFY_IPAM_POOL, [], plugins) + + async def modify_ipam_pool_allocation( + self, input: ModifyIpamPoolAllocationInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamPoolAllocationOutput: + """ + Modifies the description of an IPAM pool allocation. For more + information, see [Modify an IPAM pool + allocation](https://docs.aws.amazon.com/vpc/latest/ipam/modify-alloc-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamPoolAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPoolAllocationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_POOL_ALLOCATION, [], plugins + ) + + async def modify_ipam_prefix_list_resolver( + self, + input: ModifyIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPrefixListResolverOutput: + """ + Modifies an IPAM prefix list resolver. You can update the description + and CIDR selection rules. Changes to rules will trigger re-evaluation + and potential updates to associated prefix lists. + + Args: + input: + An instance of `ModifyIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPrefixListResolverOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + async def modify_ipam_prefix_list_resolver_target( + self, + input: ModifyIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPrefixListResolverTargetOutput: + """ + Modifies an IPAM prefix list resolver target. You can update version + tracking settings and the desired version of the target prefix list. + + Args: + input: + An instance of `ModifyIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPrefixListResolverTargetOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + async def modify_ipam_resource_cidr( + self, input: ModifyIpamResourceCidrInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamResourceCidrOutput: + """ + Modify a resource CIDR. You can use this action to transfer resource + CIDRs between scopes and ignore resource CIDRs that you do not want to + manage. If set to false, the resource will not be tracked for overlap, + it cannot be auto-imported into a pool, and it will be removed from any + pool it has an allocation in. + + For more information, see [Move resource CIDRs between + scopes](https://docs.aws.amazon.com/vpc/latest/ipam/move-resource-ipam.html) + and [Change the monitoring state of resource + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/change-monitoring-state-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamResourceCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamResourceCidrOutput`. + """ + return await self._invoke(input, _models.MODIFY_IPAM_RESOURCE_CIDR, [], plugins) + + async def modify_ipam_resource_discovery( + self, + input: ModifyIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamResourceDiscoveryOutput: + """ + Modifies a resource discovery. A resource discovery is an IPAM component + that enables IPAM to manage and monitor resources that belong to the + owning account. + + Args: + input: + An instance of `ModifyIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamResourceDiscoveryOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + async def modify_ipam_routing_policy_registration( + self, + input: ModifyIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamRoutingPolicyRegistrationOutput: + """ + Modifies an existing routing policy registration. You can update the + authorized ASNs, maximum prefix length, and other properties of a Route + Origin Authorization (ROA). + + Args: + input: + An instance of `ModifyIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamRoutingPolicyRegistrationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + async def modify_ipam_scope( + self, input: ModifyIpamScopeInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamScopeOutput: + """ + Modify an IPAM scope. + + Args: + input: + An instance of `ModifyIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamScopeOutput`. + """ + return await self._invoke(input, _models.MODIFY_IPAM_SCOPE, [], plugins) + + async def modify_launch_template( + self, input: ModifyLaunchTemplateInput, plugins: list[Plugin] | None = None + ) -> ModifyLaunchTemplateOutput: + """ + Modifies a launch template. You can specify which version of the launch + template to set as the default version. When launching an instance, the + default version applies when a launch template version is not specified. + + Args: + input: + An instance of `ModifyLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyLaunchTemplateOutput`. + """ + return await self._invoke(input, _models.MODIFY_LAUNCH_TEMPLATE, [], plugins) + + async def modify_local_gateway_route( + self, input: ModifyLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> ModifyLocalGatewayRouteOutput: + """ + Modifies the specified local gateway route. + + Args: + input: + An instance of `ModifyLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyLocalGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.MODIFY_LOCAL_GATEWAY_ROUTE, [], plugins + ) + + async def modify_managed_prefix_list( + self, input: ModifyManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> ModifyManagedPrefixListOutput: + """ + Modifies the specified managed prefix list. + + Adding or removing entries in a prefix list creates a new version of the + prefix list. Changing the name of the prefix list does not affect the + version. + + If you specify a current version number that does not match the true + current version number, the request fails. + + Args: + input: + An instance of `ModifyManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyManagedPrefixListOutput`. + """ + return await self._invoke( + input, _models.MODIFY_MANAGED_PREFIX_LIST, [], plugins + ) + + async def modify_managed_resource_visibility( + self, + input: ModifyManagedResourceVisibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyManagedResourceVisibilityOutput: + """ + Modifies the managed resource visibility configuration for the account. + Use this operation to control whether managed resources are hidden or + visible by default. Visibility settings are account-wide and affect all + IAM principals uniformly. Hidden resources remain fully operational and + billable. + + Args: + input: + An instance of `ModifyManagedResourceVisibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyManagedResourceVisibilityOutput`. + """ + return await self._invoke( + input, _models.MODIFY_MANAGED_RESOURCE_VISIBILITY, [], plugins + ) + + async def modify_network_interface_attribute( + self, + input: ModifyNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyNetworkInterfaceAttributeOutput: + """ + Modifies the specified network interface attribute. You can specify only + one attribute at a time. You can use this action to attach and detach + security groups from an existing EC2 instance. + + Args: + input: + An instance of `ModifyNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyNetworkInterfaceAttributeOutput`. + """ + return await self._invoke( + input, _models.MODIFY_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + async def modify_private_dns_name_options( + self, + input: ModifyPrivateDnsNameOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyPrivateDnsNameOptionsOutput: + """ + Modifies the options for instance hostnames for the specified instance. + + Args: + input: + An instance of `ModifyPrivateDnsNameOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyPrivateDnsNameOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_PRIVATE_DNS_NAME_OPTIONS, [], plugins + ) + + async def modify_public_ip_dns_name_options( + self, + input: ModifyPublicIpDnsNameOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyPublicIpDnsNameOptionsOutput: + """ + Modify public hostname options for a network interface. For more + information, see [EC2 instance hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyPublicIpDnsNameOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyPublicIpDnsNameOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS, [], plugins + ) + + async def modify_reserved_instances( + self, input: ModifyReservedInstancesInput, plugins: list[Plugin] | None = None + ) -> ModifyReservedInstancesOutput: + """ + Modifies the configuration of your Reserved Instances, such as the + Availability Zone, instance count, or instance type. The Reserved + Instances to be modified must be identical, except for Availability + Zone, network platform, and instance type. + + For more information, see [Modify Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyReservedInstancesOutput`. + """ + return await self._invoke(input, _models.MODIFY_RESERVED_INSTANCES, [], plugins) + + async def modify_route_server( + self, input: ModifyRouteServerInput, plugins: list[Plugin] | None = None + ) -> ModifyRouteServerOutput: + """ + Modifies the configuration of an existing route server. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyRouteServerOutput`. + """ + return await self._invoke(input, _models.MODIFY_ROUTE_SERVER, [], plugins) + + async def modify_security_group_rules( + self, input: ModifySecurityGroupRulesInput, plugins: list[Plugin] | None = None + ) -> ModifySecurityGroupRulesOutput: + """ + Modifies the rules of a security group. + + Args: + input: + An instance of `ModifySecurityGroupRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySecurityGroupRulesOutput`. + """ + return await self._invoke( + input, _models.MODIFY_SECURITY_GROUP_RULES, [], plugins + ) + + async def modify_snapshot_attribute( + self, input: ModifySnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifySnapshotAttributeOutput: + """ + Adds or removes permission settings for the specified snapshot. You may + add or remove specified Amazon Web Services account IDs from a + snapshot's list of create volume permissions, but you cannot do both in + a single operation. If you need to both add and remove account IDs for a + snapshot, you must use multiple operations. You can make up to 500 + modifications to a snapshot in a single operation. + + Encrypted snapshots and snapshots with Amazon Web Services Marketplace + product codes cannot be made public. Snapshots encrypted with your + default KMS key cannot be shared with other accounts. + + For more information about modifying snapshot permissions, see [Share a + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifySnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySnapshotAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_SNAPSHOT_ATTRIBUTE, [], plugins) + + async def modify_snapshot_tier( + self, input: ModifySnapshotTierInput, plugins: list[Plugin] | None = None + ) -> ModifySnapshotTierOutput: + """ + Archives an Amazon EBS snapshot. When you archive a snapshot, it is + converted to a full snapshot that includes all of the blocks of data + that were written to the volume at the time the snapshot was created, + and moved from the standard tier to the archive tier. For more + information, see [Archive Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifySnapshotTierInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySnapshotTierOutput`. + """ + return await self._invoke(input, _models.MODIFY_SNAPSHOT_TIER, [], plugins) + + async def modify_spot_fleet_request( + self, input: ModifySpotFleetRequestInput, plugins: list[Plugin] | None = None + ) -> ModifySpotFleetRequestOutput: + """ + Modifies the specified Spot Fleet request. + + You can only modify a Spot Fleet request of type `maintain`. + + While the Spot Fleet request is being modified, it is in the `modifying` + state. + + To scale up your Spot Fleet, increase its target capacity. The Spot + Fleet launches the additional Spot Instances according to the allocation + strategy for the Spot Fleet request. If the allocation strategy is + `lowestPrice`, the Spot Fleet launches instances using the Spot Instance + pool with the lowest price. If the allocation strategy is `diversified`, + the Spot Fleet distributes the instances across the Spot Instance pools. + If the allocation strategy is `capacityOptimized`, Spot Fleet launches + instances from Spot Instance pools with optimal capacity for the number + of instances that are launching. + + To scale down your Spot Fleet, decrease its target capacity. First, the + Spot Fleet cancels any open requests that exceed the new target + capacity. You can request that the Spot Fleet terminate Spot Instances + until the size of the fleet no longer exceeds the new target capacity. + If the allocation strategy is `lowestPrice`, the Spot Fleet terminates + the instances with the highest price per unit. If the allocation + strategy is `capacityOptimized`, the Spot Fleet terminates the instances + in the Spot Instance pools that have the least available Spot Instance + capacity. If the allocation strategy is `diversified`, the Spot Fleet + terminates instances across the Spot Instance pools. Alternatively, you + can request that the Spot Fleet keep the fleet at its current size, but + not replace any Spot Instances that are interrupted or that you + terminate manually. + + If you are finished with your Spot Fleet for now, but will use it again + later, you can set the target capacity to 0. + + Args: + input: + An instance of `ModifySpotFleetRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySpotFleetRequestOutput`. + """ + return await self._invoke(input, _models.MODIFY_SPOT_FLEET_REQUEST, [], plugins) + + async def modify_subnet_attribute( + self, input: ModifySubnetAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifySubnetAttributeOutput: + """ + Modifies a subnet attribute. You can only modify one attribute at a + time. + + Use this action to modify subnets on Amazon Web Services Outposts. + + - To modify a subnet on an Outpost rack, set both + `MapCustomerOwnedIpOnLaunch` and `CustomerOwnedIpv4Pool`. These two + parameters act as a single attribute. + + - To modify a subnet on an Outpost server, set either + `EnableLniAtDeviceIndex` or `DisableLniAtDeviceIndex`. + + For more information about Amazon Web Services Outposts, see the + following: + + - [Outpost + servers](https://docs.aws.amazon.com/outposts/latest/userguide/how-servers-work.html) + + - [Outpost + racks](https://docs.aws.amazon.com/outposts/latest/userguide/how-racks-work.html) + + Args: + input: + An instance of `ModifySubnetAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySubnetAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_SUBNET_ATTRIBUTE, [], plugins) + + async def modify_traffic_mirror_filter_network_services( + self, + input: ModifyTrafficMirrorFilterNetworkServicesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorFilterNetworkServicesOutput: + """ + Allows or restricts mirroring network services. + + By default, Amazon DNS network services are not eligible for Traffic + Mirror. Use `AddNetworkServices` to add network services to a Traffic + Mirror filter. When a network service is added to the Traffic Mirror + filter, all traffic related to that network service will be mirrored. + When you no longer want to mirror network services, use + `RemoveNetworkServices` to remove the network services from the Traffic + Mirror filter. + + Args: + input: + An instance of `ModifyTrafficMirrorFilterNetworkServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorFilterNetworkServicesOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES, [], plugins + ) + + async def modify_traffic_mirror_filter_rule( + self, + input: ModifyTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorFilterRuleOutput: + """ + Modifies the specified Traffic Mirror rule. + + `DestinationCidrBlock` and `SourceCidrBlock` must both be an IPv4 range + or an IPv6 range. + + Args: + input: + An instance of `ModifyTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorFilterRuleOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + async def modify_traffic_mirror_session( + self, + input: ModifyTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorSessionOutput: + """ + Modifies a Traffic Mirror session. + + Args: + input: + An instance of `ModifyTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorSessionOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRAFFIC_MIRROR_SESSION, [], plugins + ) + + async def modify_transit_gateway( + self, input: ModifyTransitGatewayInput, plugins: list[Plugin] | None = None + ) -> ModifyTransitGatewayOutput: + """ + Modifies the specified transit gateway. When you modify a transit + gateway, the modified options are applied to new transit gateway + attachments only. Your existing transit gateway attachments are not + modified. + + Args: + input: + An instance of `ModifyTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayOutput`. + """ + return await self._invoke(input, _models.MODIFY_TRANSIT_GATEWAY, [], plugins) + + async def modify_transit_gateway_attachment_nat_configuration( + self, + input: ModifyTransitGatewayAttachmentNatConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayAttachmentNatConfigurationOutput: + """ + Modifies the NAT configuration for the specified transit gateway + attachment. Use this operation to do the following: + + - Enable or disable NAT gateway support for the attachment. + + - Specify whether the transit gateway installs routes for the NAT CIDRs. + + - Replace the NAT gateway rules for the attachment. + + Only the owner of the transit gateway can modify the NAT configuration. + + With NAT gateway support enabled, the transit gateway translates + addresses in each rule's `MatchSourceCidr` range to the corresponding + addresses in its `NatCidr` range. + + The transit gateway applies changes asynchronously. To check the result, + use `GetTransitGatewayAttachmentNatConfiguration`. + + Args: + input: + An instance of `ModifyTransitGatewayAttachmentNatConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayAttachmentNatConfigurationOutput`. + """ + return await self._invoke( + input, + _models.MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION, + [], + plugins, + ) + + async def modify_transit_gateway_metering_policy( + self, + input: ModifyTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayMeteringPolicyOutput: + """ + Modifies a transit gateway metering policy. + + Args: + input: + An instance of `ModifyTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayMeteringPolicyOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + async def modify_transit_gateway_policy_table_entry( + self, + input: ModifyTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayPolicyTableEntryOutput: + """ + Modifies the specified transit gateway policy table entry. + + Args: + input: + An instance of `ModifyTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayPolicyTableEntryOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + async def modify_transit_gateway_prefix_list_reference( + self, + input: ModifyTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayPrefixListReferenceOutput: + """ + Modifies a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `ModifyTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayPrefixListReferenceOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + async def modify_transit_gateway_vpc_attachment( + self, + input: ModifyTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayVpcAttachmentOutput: + """ + Modifies the specified VPC attachment. + + Args: + input: + An instance of `ModifyTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayVpcAttachmentOutput`. + """ + return await self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + async def modify_verified_access_endpoint( + self, + input: ModifyVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessEndpointOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access endpoint. + + Args: + input: + An instance of `ModifyVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessEndpointOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_ENDPOINT, [], plugins + ) + + async def modify_verified_access_endpoint_policy( + self, + input: ModifyVerifiedAccessEndpointPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessEndpointPolicyOutput: + """ + Modifies the specified Amazon Web Services Verified Access endpoint + policy. + + Args: + input: + An instance of `ModifyVerifiedAccessEndpointPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessEndpointPolicyOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY, [], plugins + ) + + async def modify_verified_access_group( + self, input: ModifyVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyVerifiedAccessGroupOutput: + """ + Modifies the specified Amazon Web Services Verified Access group + configuration. + + Args: + input: + An instance of `ModifyVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessGroupOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_GROUP, [], plugins + ) + + async def modify_verified_access_group_policy( + self, + input: ModifyVerifiedAccessGroupPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessGroupPolicyOutput: + """ + Modifies the specified Amazon Web Services Verified Access group policy. + + Args: + input: + An instance of `ModifyVerifiedAccessGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessGroupPolicyOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_GROUP_POLICY, [], plugins + ) + + async def modify_verified_access_instance( + self, + input: ModifyVerifiedAccessInstanceInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessInstanceOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access instance. + + Args: + input: + An instance of `ModifyVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessInstanceOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_INSTANCE, [], plugins + ) + + async def modify_verified_access_instance_logging_configuration( + self, + input: ModifyVerifiedAccessInstanceLoggingConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessInstanceLoggingConfigurationOutput: + """ + Modifies the logging configuration for the specified Amazon Web Services + Verified Access instance. + + Args: + input: + An instance of `ModifyVerifiedAccessInstanceLoggingConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessInstanceLoggingConfigurationOutput`. + """ + return await self._invoke( + input, + _models.MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION, + [], + plugins, + ) + + async def modify_verified_access_trust_provider( + self, + input: ModifyVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessTrustProviderOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access trust provider. + + Args: + input: + An instance of `ModifyVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessTrustProviderOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + async def modify_volume( + self, input: ModifyVolumeInput, plugins: list[Plugin] | None = None + ) -> ModifyVolumeOutput: + """ + You can modify several parameters of an existing EBS volume, including + volume size, volume type, and IOPS capacity. If your EBS volume is + attached to a current-generation EC2 instance type, you might be able to + apply these changes without stopping the instance or detaching the + volume from it. For more information about modifying EBS volumes, see + [Amazon EBS Elastic + Volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html) + in the *Amazon EBS User Guide*. + + When you complete a resize operation on your volume, you need to extend + the volume's file-system size to take advantage of the new storage + capacity. For more information, see [Extend the file + system](https://docs.aws.amazon.com/ebs/latest/userguide/recognize-expanded-volume-linux.html). + + For more information, see [Monitor the progress of volume + modifications](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html) + in the *Amazon EBS User Guide*. + + With previous-generation instance types, resizing an EBS volume might + require detaching and reattaching the volume or stopping and restarting + the instance. + + After you initiate a volume modification, you must wait for that + modification to reach the `completed` state before you can initiate + another modification for the same volume. You can modify a volume up to + four times within a rolling 24-hour period, as long as the volume is in + the `in-use` or `available` state, and all previous modifications for + that volume are `completed`. If you exceed this limit, you get an error + message that indicates when you can perform your next modification. + + Args: + input: + An instance of `ModifyVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVolumeOutput`. + """ + return await self._invoke(input, _models.MODIFY_VOLUME, [], plugins) + + async def modify_volume_attribute( + self, input: ModifyVolumeAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyVolumeAttributeOutput: + """ + Modifies a volume attribute. + + By default, all I/O operations for the volume are suspended when the + data on the volume is determined to be potentially inconsistent, to + prevent undetectable, latent data corruption. The I/O access to the + volume can be resumed by first enabling I/O access and then checking the + data consistency on your volume. + + You can change the default behavior to resume I/O operations. We + recommend that you change this only for boot volumes or for volumes that + are stateless or disposable. + + Args: + input: + An instance of `ModifyVolumeAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVolumeAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_VOLUME_ATTRIBUTE, [], plugins) + + async def modify_vpc_attribute( + self, input: ModifyVpcAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcAttributeOutput: + """ + Modifies the specified attribute of the specified VPC. + + Args: + input: + An instance of `ModifyVpcAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcAttributeOutput`. + """ + return await self._invoke(input, _models.MODIFY_VPC_ATTRIBUTE, [], plugins) + + async def modify_vpc_block_public_access_exclusion( + self, + input: ModifyVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcBlockPublicAccessExclusionOutput: + """ + Modify VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. + + Args: + input: + An instance of `ModifyVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcBlockPublicAccessExclusionOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + async def modify_vpc_block_public_access_options( + self, + input: ModifyVpcBlockPublicAccessOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcBlockPublicAccessOptionsOutput: + """ + Modify VPC Block Public Access (BPA) options. VPC Block Public Access + (BPA) enables you to block resources in VPCs and subnets that you own in + a Region from reaching or being reached from the internet through + internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyVpcBlockPublicAccessOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcBlockPublicAccessOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, [], plugins + ) + + async def modify_vpc_encryption_control( + self, + input: ModifyVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEncryptionControlOutput: + """ + Modifies the encryption control configuration for a VPC. You can update + the encryption mode and exclusion settings for various gateway types and + peering connections. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEncryptionControlOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + async def modify_vpc_endpoint( + self, input: ModifyVpcEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcEndpointOutput: + """ + Modifies attributes of a specified VPC endpoint. The attributes that you + can modify depend on the type of VPC endpoint (interface, gateway, or + Gateway Load Balancer). For more information, see the [Amazon Web + Services PrivateLink + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `ModifyVpcEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointOutput`. + """ + return await self._invoke(input, _models.MODIFY_VPC_ENDPOINT, [], plugins) + + async def modify_vpc_endpoint_connection_notification( + self, + input: ModifyVpcEndpointConnectionNotificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointConnectionNotificationOutput: + """ + Modifies a connection notification for VPC endpoint or VPC endpoint + service. You can change the SNS topic for the notification, or the + events for which to be notified. + + Args: + input: + An instance of `ModifyVpcEndpointConnectionNotificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointConnectionNotificationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION, [], plugins + ) + + async def modify_vpc_endpoint_payer_responsibility( + self, + input: ModifyVpcEndpointPayerResponsibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointPayerResponsibilityOutput: + """ + Modifies the billing account for VPC endpoint usage/charges. + + Args: + input: + An instance of `ModifyVpcEndpointPayerResponsibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointPayerResponsibilityOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY, [], plugins + ) + + async def modify_vpc_endpoint_service_configuration( + self, + input: ModifyVpcEndpointServiceConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServiceConfigurationOutput: + """ + Modifies the attributes of the specified VPC endpoint service + configuration. + + If you set or modify the private DNS name, you must prove that you own + the private DNS domain name. + + Args: + input: + An instance of `ModifyVpcEndpointServiceConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServiceConfigurationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION, [], plugins + ) + + async def modify_vpc_endpoint_service_payer_responsibility( + self, + input: ModifyVpcEndpointServicePayerResponsibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServicePayerResponsibilityOutput: + """ + Modifies the payer responsibility for your VPC endpoint service. + + Args: + input: + An instance of `ModifyVpcEndpointServicePayerResponsibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServicePayerResponsibilityOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY, [], plugins + ) + + async def modify_vpc_endpoint_service_permissions( + self, + input: ModifyVpcEndpointServicePermissionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServicePermissionsOutput: + """ + Modifies the permissions for your VPC endpoint service. You can add or + remove permissions for service consumers (Amazon Web Services accounts, + users, and IAM roles) to connect to your endpoint service. Principal + ARNs with path components aren't supported. + + If you grant permissions to all principals, the service is public. Any + users who know the name of a public service can send a request to attach + an endpoint. If the service does not require manual approval, + attachments are automatically approved. + + Args: + input: + An instance of `ModifyVpcEndpointServicePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServicePermissionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS, [], plugins + ) + + async def modify_vpc_peering_connection_options( + self, + input: ModifyVpcPeeringConnectionOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcPeeringConnectionOptionsOutput: + """ + Modifies the VPC peering connection options on one side of a VPC peering + connection. + + If the peered VPCs are in the same Amazon Web Services account, you can + enable DNS resolution for queries from the local VPC. This ensures that + queries from the local VPC resolve to private IP addresses in the peer + VPC. This option is not available if the peered VPCs are in different + Amazon Web Services accounts or different Regions. For peered VPCs in + different Amazon Web Services accounts, each Amazon Web Services account + owner must initiate a separate request to modify the peering connection + options. For inter-region peering connections, you must use the Region + for the requester VPC to modify the requester VPC peering options and + the Region for the accepter VPC to modify the accepter VPC peering + options. To verify which VPCs are the accepter and the requester for a + VPC peering connection, use the DescribeVpcPeeringConnections command. + + Args: + input: + An instance of `ModifyVpcPeeringConnectionOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcPeeringConnectionOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPC_PEERING_CONNECTION_OPTIONS, [], plugins + ) + + async def modify_vpc_tenancy( + self, input: ModifyVpcTenancyInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcTenancyOutput: + """ + Modifies the instance tenancy attribute of the specified VPC. You can + change the instance tenancy attribute of a VPC to `default` only. You + cannot change the instance tenancy attribute to `dedicated`. + + After you modify the tenancy of the VPC, any new instances that you + launch into the VPC have a tenancy of `default`, unless you specify + otherwise during launch. The tenancy of any existing instances in the + VPC is not affected. + + For more information, see [Dedicated + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyVpcTenancyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcTenancyOutput`. + """ + return await self._invoke(input, _models.MODIFY_VPC_TENANCY, [], plugins) + + async def modify_vpn_connection( + self, input: ModifyVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> ModifyVpnConnectionOutput: + """ + Modifies the customer gateway or the target gateway of an Amazon Web + Services Site-to-Site VPN connection. To modify the target gateway, the + following migration options are available: + + - An existing virtual private gateway to a new virtual private gateway + + - An existing virtual private gateway to a transit gateway + + - An existing transit gateway to a new transit gateway + + - An existing transit gateway to a virtual private gateway + + Before you perform the migration to the new gateway, you must configure + the new gateway. Use CreateVpnGateway to create a virtual private + gateway, or CreateTransitGateway to create a transit gateway. + + This step is required when you migrate from a virtual private gateway + with static routes to a transit gateway. + + You must delete the static routes before you migrate to the new gateway. + + Keep a copy of the static route before you delete it. You will need to + add back these routes to the transit gateway after the VPN connection + migration is complete. + + After you migrate to the new gateway, you might need to modify your VPC + route table. Use CreateRoute and DeleteRoute to make the changes + described in [Update VPC route + tables](https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + When the new gateway is a transit gateway, modify the transit gateway + route table to allow traffic between the VPC and the Amazon Web Services + Site-to-Site VPN connection. Use CreateTransitGatewayRoute to add the + routes. + + If you deleted VPN static routes, you must add the static routes to the + transit gateway route table. + + After you perform this operation, the VPN endpoint's IP addresses on + the Amazon Web Services side and the tunnel options remain intact. Your + Amazon Web Services Site-to-Site VPN connection will be temporarily + unavailable for a brief period while we provision the new endpoints. + + Args: + input: + An instance of `ModifyVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnConnectionOutput`. + """ + return await self._invoke(input, _models.MODIFY_VPN_CONNECTION, [], plugins) + + async def modify_vpn_connection_options( + self, + input: ModifyVpnConnectionOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpnConnectionOptionsOutput: + """ + Modifies the connection options for your Site-to-Site VPN connection. + + When you modify the VPN connection options, the VPN endpoint IP + addresses on the Amazon Web Services side do not change, and the tunnel + options do not change. Your VPN connection will be temporarily + unavailable for a brief period while the VPN connection is updated. + + Args: + input: + An instance of `ModifyVpnConnectionOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnConnectionOptionsOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPN_CONNECTION_OPTIONS, [], plugins + ) + + async def modify_vpn_tunnel_certificate( + self, + input: ModifyVpnTunnelCertificateInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpnTunnelCertificateOutput: + """ + Modifies the VPN tunnel endpoint certificate. + + Args: + input: + An instance of `ModifyVpnTunnelCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnTunnelCertificateOutput`. + """ + return await self._invoke( + input, _models.MODIFY_VPN_TUNNEL_CERTIFICATE, [], plugins + ) + + async def modify_vpn_tunnel_options( + self, input: ModifyVpnTunnelOptionsInput, plugins: list[Plugin] | None = None + ) -> ModifyVpnTunnelOptionsOutput: + """ + Modifies the options for a VPN tunnel in an Amazon Web Services + Site-to-Site VPN connection. You can modify multiple options for a + tunnel in a single request, but you can only modify one tunnel at a + time. For more information, see [Site-to-Site VPN tunnel options for + your Site-to-Site VPN + connection](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `ModifyVpnTunnelOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnTunnelOptionsOutput`. + """ + return await self._invoke(input, _models.MODIFY_VPN_TUNNEL_OPTIONS, [], plugins) + + async def monitor_instances( + self, input: MonitorInstancesInput, plugins: list[Plugin] | None = None + ) -> MonitorInstancesOutput: + """ + Enables detailed monitoring for a running instance. Otherwise, basic + monitoring is enabled. For more information, see [Monitor your instances + using + CloudWatch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html) + in the *Amazon EC2 User Guide*. + + To disable detailed monitoring, see + [UnmonitorInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html). + + Args: + input: + An instance of `MonitorInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MonitorInstancesOutput`. + """ + return await self._invoke(input, _models.MONITOR_INSTANCES, [], plugins) + + async def move_address_to_vpc( + self, input: MoveAddressToVpcInput, plugins: list[Plugin] | None = None + ) -> MoveAddressToVpcOutput: + """ + Note: + This action is deprecated. + + Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC + platform. The Elastic IP address must be allocated to your account for + more than 24 hours, and it must not be associated with an instance. + After the Elastic IP address is moved, it is no longer available for use + in the EC2-Classic platform. You cannot move an Elastic IP address that + was originally allocated for use in the EC2-VPC platform to the + EC2-Classic platform. + + Args: + input: + An instance of `MoveAddressToVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveAddressToVpcOutput`. + """ + return await self._invoke(input, _models.MOVE_ADDRESS_TO_VPC, [], plugins) + + async def move_byoip_cidr_to_ipam( + self, input: MoveByoipCidrToIpamInput, plugins: list[Plugin] | None = None + ) -> MoveByoipCidrToIpamOutput: + """ + Move a BYOIPv4 CIDR to IPAM from a public IPv4 pool. + + If you already have a BYOIPv4 CIDR with Amazon Web Services, you can + move the CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 + CIDR to IPAM. If you are bringing a new IP address to Amazon Web + Services for the first time, complete the steps in [Tutorial: BYOIP + address CIDRs to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam.html). + + Args: + input: + An instance of `MoveByoipCidrToIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveByoipCidrToIpamOutput`. + """ + return await self._invoke(input, _models.MOVE_BYOIP_CIDR_TO_IPAM, [], plugins) + + async def move_capacity_reservation_instances( + self, + input: MoveCapacityReservationInstancesInput, + plugins: list[Plugin] | None = None, + ) -> MoveCapacityReservationInstancesOutput: + """ + Move available capacity from a source Capacity Reservation to a + destination Capacity Reservation. The source Capacity Reservation and + the destination Capacity Reservation must be `active`, owned by your + Amazon Web Services account, and share the following: + + - Instance type + + - Platform + + - Availability Zone + + - Tenancy + + - Placement group + + - Capacity Reservation end time - `At specific time` or `Manually`. + + Args: + input: + An instance of `MoveCapacityReservationInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveCapacityReservationInstancesOutput`. + """ + return await self._invoke( + input, _models.MOVE_CAPACITY_RESERVATION_INSTANCES, [], plugins + ) + + async def provision_byoip_cidr( + self, input: ProvisionByoipCidrInput, plugins: list[Plugin] | None = None + ) -> ProvisionByoipCidrOutput: + """ + Provisions an IPv4 or IPv6 address range for use with your Amazon Web + Services resources through bring your own IP addresses (BYOIP) and + creates a corresponding address pool. After the address range is + provisioned, it is ready to be advertised. + + Amazon Web Services verifies that you own the address range and are + authorized to advertise it. You must ensure that the address range is + registered to you and that you created an RPKI ROA to authorize Amazon + ASNs 16509 and 14618 to advertise the address range. For the Amazon Web + Services GovCloud (US) Regions, authorize only ASN 8987. For the Amazon + Web Services European Sovereign Cloud, authorize ASNs 16509 and 214101. + For more information, see [Bring your own IP addresses + (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) + in the *Amazon EC2 User Guide*. + + Provisioning an address range is an asynchronous operation, so the call + returns immediately, but the address range is not ready to use until its + status changes from `pending-provision` to `provisioned`. For more + information, see [Onboard your address + range](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/byoip-onboard.html). + + Args: + input: + An instance of `ProvisionByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionByoipCidrOutput`. + """ + return await self._invoke(input, _models.PROVISION_BYOIP_CIDR, [], plugins) + + async def provision_ipam_byoasn( + self, input: ProvisionIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> ProvisionIpamByoasnOutput: + """ + Provisions your Autonomous System Number (ASN) for use in your Amazon + Web Services account. This action requires authorization context for + Amazon to bring the ASN to an Amazon Web Services account. For more + information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `ProvisionIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionIpamByoasnOutput`. + """ + return await self._invoke(input, _models.PROVISION_IPAM_BYOASN, [], plugins) + + async def provision_ipam_pool_cidr( + self, input: ProvisionIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> ProvisionIpamPoolCidrOutput: + """ + Provision a CIDR to an IPAM pool. You can use this action to provision + new CIDRs to a top-level pool or to transfer a CIDR from a top-level + pool to a pool within it. + + For more information, see [Provision CIDRs to + pools](https://docs.aws.amazon.com/vpc/latest/ipam/prov-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ProvisionIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionIpamPoolCidrOutput`. + """ + return await self._invoke(input, _models.PROVISION_IPAM_POOL_CIDR, [], plugins) + + async def provision_public_ipv4_pool_cidr( + self, + input: ProvisionPublicIpv4PoolCidrInput, + plugins: list[Plugin] | None = None, + ) -> ProvisionPublicIpv4PoolCidrOutput: + """ + Provision a CIDR to a public IPv4 pool. + + For more information about IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ProvisionPublicIpv4PoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionPublicIpv4PoolCidrOutput`. + """ + return await self._invoke( + input, _models.PROVISION_PUBLIC_IPV4_POOL_CIDR, [], plugins + ) + + async def purchase_capacity_block( + self, input: PurchaseCapacityBlockInput, plugins: list[Plugin] | None = None + ) -> PurchaseCapacityBlockOutput: + """ + Purchase the Capacity Block for use with your account. With Capacity + Blocks you ensure GPU capacity is available for machine learning (ML) + workloads. You must specify the ID of the Capacity Block offering you + are purchasing. + + Args: + input: + An instance of `PurchaseCapacityBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseCapacityBlockOutput`. + """ + return await self._invoke(input, _models.PURCHASE_CAPACITY_BLOCK, [], plugins) + + async def purchase_capacity_block_extension( + self, + input: PurchaseCapacityBlockExtensionInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseCapacityBlockExtensionOutput: + """ + Purchase the Capacity Block extension for use with your account. You + must specify the ID of the Capacity Block extension offering you are + purchasing. + + Args: + input: + An instance of `PurchaseCapacityBlockExtensionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseCapacityBlockExtensionOutput`. + """ + return await self._invoke( + input, _models.PURCHASE_CAPACITY_BLOCK_EXTENSION, [], plugins + ) + + async def purchase_host_reservation( + self, input: PurchaseHostReservationInput, plugins: list[Plugin] | None = None + ) -> PurchaseHostReservationOutput: + """ + Purchase a reservation with configurations that match those of your + Dedicated Host. You must have active Dedicated Hosts in your account + before you purchase a reservation. This action results in the specified + reservation being purchased and charged to your account. + + Args: + input: + An instance of `PurchaseHostReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseHostReservationOutput`. + """ + return await self._invoke(input, _models.PURCHASE_HOST_RESERVATION, [], plugins) + + async def purchase_reserved_instances_offering( + self, + input: PurchaseReservedInstancesOfferingInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseReservedInstancesOfferingOutput: + """ + Purchases a Reserved Instance for use with your account. With Reserved + Instances, you pay a lower hourly rate compared to On-Demand instance + pricing. + + Use DescribeReservedInstancesOfferings to get a list of Reserved + Instance offerings that match your specifications. After you've + purchased a Reserved Instance, you can check for your new Reserved + Instance with DescribeReservedInstances. + + To queue a purchase for a future date and time, specify a purchase time. + If you do not specify a purchase time, the default is the current time. + + For more information, see [Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html) + and [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `PurchaseReservedInstancesOfferingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseReservedInstancesOfferingOutput`. + """ + return await self._invoke( + input, _models.PURCHASE_RESERVED_INSTANCES_OFFERING, [], plugins + ) + + async def purchase_scheduled_instances( + self, + input: PurchaseScheduledInstancesInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseScheduledInstancesOutput: + """ + Note: + You can no longer purchase Scheduled Instances. + + Purchases the Scheduled Instances with the specified schedule. + + Scheduled Instances enable you to purchase Amazon EC2 compute capacity + by the hour for a one-year term. Before you can purchase a Scheduled + Instance, you must call DescribeScheduledInstanceAvailability to check + for available schedules and obtain a purchase token. After you purchase + a Scheduled Instance, you must call RunScheduledInstances during each + scheduled time period. + + After you purchase a Scheduled Instance, you can't cancel, modify, or + resell your purchase. + + Args: + input: + An instance of `PurchaseScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseScheduledInstancesOutput`. + """ + return await self._invoke( + input, _models.PURCHASE_SCHEDULED_INSTANCES, [], plugins + ) + + async def reboot_instances( + self, input: RebootInstancesInput, plugins: list[Plugin] | None = None + ) -> RebootInstancesOutput: + """ + Requests a reboot of the specified instances. This operation is + asynchronous; it only queues a request to reboot the specified + instances. The operation succeeds if the instances are valid and belong + to you. Requests to reboot terminated instances are ignored. + + If an instance does not cleanly shut down within a few minutes, Amazon + EC2 performs a hard reboot. + + For more information about troubleshooting, see [Troubleshoot an + unreachable + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RebootInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootInstancesOutput`. + """ + return await self._invoke(input, _models.REBOOT_INSTANCES, [], plugins) + + async def register_image( + self, input: RegisterImageInput, plugins: list[Plugin] | None = None + ) -> RegisterImageOutput: + """ + Registers an AMI. When you're creating an instance-store backed AMI, + registering the AMI is the final step in the creation process. For more + information about creating AMIs, see [Create an AMI from a + snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot) + and [Create an instance-store backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html) + in the *Amazon EC2 User Guide*. + + If needed, you can deregister an AMI at any time. Any modifications you + make to an AMI backed by an instance store volume invalidates its + registration. If you make changes to an image, deregister the previous + image and register the new image. + + **Register a snapshot of a root device volume** + + You can use `RegisterImage` to create an Amazon EBS-backed Linux AMI + from a snapshot of a root device volume. You specify the snapshot using + a block device mapping. You can't set the encryption state of the + volume using the block device mapping. If the snapshot is encrypted, or + encryption by default is enabled, the root volume of an instance + launched from the AMI is encrypted. + + For more information, see [Create an AMI from a + snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot) + and [Use encryption with EBS-backed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) + in the *Amazon EC2 User Guide*. + + **Amazon Web Services Marketplace product codes** + + If any snapshots have Amazon Web Services Marketplace product codes, + they are copied to the new AMI. + + In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require + correct licensing information to be present on the AMI. For more + information, see [Understand AMI billing + information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) + in the *Amazon EC2 User Guide*. When creating an AMI from a snapshot, + the `RegisterImage` operation derives the correct billing information + from the snapshot's metadata, but this requires the appropriate + metadata to be present. To verify if the correct billing information was + applied, check the `PlatformDetails` field on the new AMI. If the field + is empty or doesn't match the expected operating system code (for + example, Windows, RedHat, SUSE, or SQL), the AMI creation was + unsuccessful, and you should discard the AMI and instead create the AMI + from an instance. For more information, see [Create an AMI from an + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami) + in the *Amazon EC2 User Guide*. + + If you purchase a Reserved Instance to apply to an On-Demand Instance + that was launched from an AMI with a billing product code, make sure + that the Reserved Instance has the matching billing product code. If you + purchase a Reserved Instance without the matching billing product code, + the Reserved Instance is not applied to the On-Demand Instance. For + information about how to obtain the platform details and billing + information of an AMI, see [Understand AMI billing + information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RegisterImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterImageOutput`. + """ + return await self._invoke(input, _models.REGISTER_IMAGE, [], plugins) + + async def register_instance_event_notification_attributes( + self, + input: RegisterInstanceEventNotificationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> RegisterInstanceEventNotificationAttributesOutput: + """ + Registers a set of tag keys to include in scheduled event notifications + for your resources. + + To remove tags, use + [DeregisterInstanceEventNotificationAttributes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterInstanceEventNotificationAttributes.html). + + Args: + input: + An instance of `RegisterInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterInstanceEventNotificationAttributesOutput`. + """ + return await self._invoke( + input, _models.REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, [], plugins + ) + + async def register_transit_gateway_multicast_group_members( + self, + input: RegisterTransitGatewayMulticastGroupMembersInput, + plugins: list[Plugin] | None = None, + ) -> RegisterTransitGatewayMulticastGroupMembersOutput: + """ + Registers members (network interfaces) with the transit gateway + multicast group. A member is a network interface associated with a + supported EC2 instance that receives multicast traffic. For more + information, see [Multicast on transit + gateways](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html) + in the *Amazon Web Services Transit Gateways Guide*. + + After you add the members, use + [SearchTransitGatewayMulticastGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) + to verify that the members were added to the transit gateway multicast + group. + + Args: + input: + An instance of `RegisterTransitGatewayMulticastGroupMembersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTransitGatewayMulticastGroupMembersOutput`. + """ + return await self._invoke( + input, _models.REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS, [], plugins + ) + + async def register_transit_gateway_multicast_group_sources( + self, + input: RegisterTransitGatewayMulticastGroupSourcesInput, + plugins: list[Plugin] | None = None, + ) -> RegisterTransitGatewayMulticastGroupSourcesOutput: + """ + Registers sources (network interfaces) with the specified transit + gateway multicast group. + + A multicast source is a network interface attached to a supported + instance that sends multicast traffic. For more information about + supported instances, see [Multicast on transit + gateways](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html) + in the *Amazon Web Services Transit Gateways Guide*. + + After you add the source, use + [SearchTransitGatewayMulticastGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) + to verify that the source was added to the multicast group. + + Args: + input: + An instance of `RegisterTransitGatewayMulticastGroupSourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTransitGatewayMulticastGroupSourcesOutput`. + """ + return await self._invoke( + input, _models.REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES, [], plugins + ) + + async def reject_capacity_reservation_billing_ownership( + self, + input: RejectCapacityReservationBillingOwnershipInput, + plugins: list[Plugin] | None = None, + ) -> RejectCapacityReservationBillingOwnershipOutput: + """ + Rejects a request to assign billing of the available capacity of a + shared Capacity Reservation to your account. For more information, see + [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `RejectCapacityReservationBillingOwnershipInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectCapacityReservationBillingOwnershipOutput`. + """ + return await self._invoke( + input, _models.REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP, [], plugins + ) + + async def reject_transit_gateway_client_vpn_attachment( + self, + input: RejectTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayClientVpnAttachmentOutput: + """ + Rejects a Transit Gateway attachment request for a Client VPN endpoint. + The Transit Gateway owner can reject the attachment request to prevent + the Client VPN endpoint from routing traffic through the Transit + Gateway. + + Args: + input: + An instance of `RejectTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayClientVpnAttachmentOutput`. + """ + return await self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + async def reject_transit_gateway_multicast_domain_associations( + self, + input: RejectTransitGatewayMulticastDomainAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayMulticastDomainAssociationsOutput: + """ + Rejects a request to associate cross-account subnets with a transit + gateway multicast domain. + + Args: + input: + An instance of `RejectTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayMulticastDomainAssociationsOutput`. + """ + return await self._invoke( + input, + _models.REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + async def reject_transit_gateway_peering_attachment( + self, + input: RejectTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayPeeringAttachmentOutput: + """ + Rejects a transit gateway peering attachment request. + + Args: + input: + An instance of `RejectTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayPeeringAttachmentOutput`. + """ + return await self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + async def reject_transit_gateway_vpc_attachment( + self, + input: RejectTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayVpcAttachmentOutput: + """ + Rejects a request to attach a VPC to a transit gateway. + + The VPC attachment must be in the `pendingAcceptance` state. Use + DescribeTransitGatewayVpcAttachments to view your pending VPC attachment + requests. Use AcceptTransitGatewayVpcAttachment to accept a VPC + attachment request. + + Args: + input: + An instance of `RejectTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayVpcAttachmentOutput`. + """ + return await self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + async def reject_vpc_endpoint_connections( + self, + input: RejectVpcEndpointConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> RejectVpcEndpointConnectionsOutput: + """ + Rejects VPC endpoint connection requests to your VPC endpoint service. + + Args: + input: + An instance of `RejectVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectVpcEndpointConnectionsOutput`. + """ + return await self._invoke( + input, _models.REJECT_VPC_ENDPOINT_CONNECTIONS, [], plugins + ) + + async def reject_vpc_peering_connection( + self, + input: RejectVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> RejectVpcPeeringConnectionOutput: + """ + Rejects a VPC peering connection request. The VPC peering connection + must be in the `pending-acceptance` state. Use the + DescribeVpcPeeringConnections request to view your outstanding VPC + peering connection requests. To delete an active VPC peering connection, + or to delete a VPC peering connection request that you initiated, use + DeleteVpcPeeringConnection. + + Args: + input: + An instance of `RejectVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectVpcPeeringConnectionOutput`. + """ + return await self._invoke( + input, _models.REJECT_VPC_PEERING_CONNECTION, [], plugins + ) + + async def release_address( + self, input: ReleaseAddressInput, plugins: list[Plugin] | None = None + ) -> ReleaseAddressOutput: + """ + Releases the specified Elastic IP address. + + [Default VPC] Releasing an Elastic IP address automatically + disassociates it from any instance that it's associated with. + Alternatively, you can disassociate an Elastic IP address without + releasing it. + + [Nondefault VPC] You must disassociate the Elastic IP address before + you can release it. Otherwise, Amazon EC2 returns an error + (`InvalidIPAddress.InUse`). + + After releasing an Elastic IP address, it is released to the IP address + pool. Be sure to update your DNS records and any servers or devices that + communicate with the address. If you attempt to release an Elastic IP + address that you already released, you'll get an `AuthFailure` error if + the address is already allocated to another Amazon Web Services account. + + After you release an Elastic IP address, you might be able to recover + it. For more information, see [Release an Elastic IP + address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing-eips-releasing.html). + + Args: + input: + An instance of `ReleaseAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseAddressOutput`. + """ + return await self._invoke(input, _models.RELEASE_ADDRESS, [], plugins) + + async def release_hosts( + self, input: ReleaseHostsInput, plugins: list[Plugin] | None = None + ) -> ReleaseHostsOutput: + """ + When you no longer want to use an On-Demand Dedicated Host it can be + released. On-Demand billing is stopped and the host goes into `released` + state. The host ID of Dedicated Hosts that have been released can no + longer be specified in another request, for example, to modify the host. + You must stop or terminate all instances on a host before it can be + released. + + When Dedicated Hosts are released, it may take some time for them to + stop counting toward your limit and you may receive capacity errors when + trying to allocate new Dedicated Hosts. Wait a few minutes and then try + again. + + Released hosts still appear in a DescribeHosts response. + + Args: + input: + An instance of `ReleaseHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseHostsOutput`. + """ + return await self._invoke(input, _models.RELEASE_HOSTS, [], plugins) + + async def release_ipam_pool_allocation( + self, input: ReleaseIpamPoolAllocationInput, plugins: list[Plugin] | None = None + ) -> ReleaseIpamPoolAllocationOutput: + """ + Release an allocation within an IPAM pool. The Region you use should be + the IPAM pool locale. The locale is the Amazon Web Services Region where + this IPAM pool is available for allocations. You can only use this + action to release manual allocations. To remove an allocation for a + resource without deleting the resource, set its monitored state to false + using + [ModifyIpamResourceCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyIpamResourceCidr.html). + For more information, see [Release an + allocation](https://docs.aws.amazon.com/vpc/latest/ipam/release-alloc-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Note: + All EC2 API actions follow an [eventual + consistency](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + model. + + Args: + input: + An instance of `ReleaseIpamPoolAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseIpamPoolAllocationOutput`. + """ + return await self._invoke( + input, _models.RELEASE_IPAM_POOL_ALLOCATION, [], plugins + ) + + async def replace_iam_instance_profile_association( + self, + input: ReplaceIamInstanceProfileAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceIamInstanceProfileAssociationOutput: + """ + Replaces an IAM instance profile for the specified running instance. You + can use this action to change the IAM instance profile that's + associated with an instance without having to disassociate the existing + IAM instance profile first. + + Use DescribeIamInstanceProfileAssociations to get the association ID. + + Args: + input: + An instance of `ReplaceIamInstanceProfileAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceIamInstanceProfileAssociationOutput`. + """ + return await self._invoke( + input, _models.REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION, [], plugins + ) + + async def replace_image_criteria_in_allowed_images_settings( + self, + input: ReplaceImageCriteriaInAllowedImagesSettingsInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceImageCriteriaInAllowedImagesSettingsOutput: + """ + Sets or replaces the criteria for Allowed AMIs. + + The `ImageCriteria` can include up to: + + - 10 `ImageCriterion` + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ReplaceImageCriteriaInAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceImageCriteriaInAllowedImagesSettingsOutput`. + """ + return await self._invoke( + input, + _models.REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS, + [], + plugins, + ) + + async def replace_image_instance_type_specification( + self, + input: ReplaceImageInstanceTypeSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceImageInstanceTypeSpecificationOutput: + """ + Replaces or removes the instance type specification for an AMI. The + instance type specification defines which instance types are compatible + with the AMI. + + When you launch an instance using + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), + Amazon EC2 validates the requested instance type against the AMI's + instance type specification. If the instance type is not compatible, the + request fails with an `InvalidParameterCombination` error. + + You can specify supported instance types, unsupported instance types, or + both. The evaluation logic is as follows: + + - No specification set -- all instance types are allowed. + + - Only `UnsupportedInstanceTypes` set -- All instance types are allowed + except those that match the unsupported list. + + - `SupportedInstanceTypes` set -- The instance type must match the + supported list and must not match the unsupported list. + + Instance type entries support wildcard patterns using `*` (for example, + `t3.*` matches all t3 sizes). + + To remove an existing instance type specification, omit the + `InstanceTypeSpecification` parameter or set it to `null`. + + To set the instance type specification, you must be the AMI owner. You + cannot set an instance type specification on an AMI that is listed in + Amazon Web Services Marketplace, and you cannot list an AMI in Amazon + Web Services Marketplace if it has an instance type specification set. + + Args: + input: + An instance of `ReplaceImageInstanceTypeSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceImageInstanceTypeSpecificationOutput`. + """ + return await self._invoke( + input, _models.REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION, [], plugins + ) + + async def replace_network_acl_association( + self, + input: ReplaceNetworkAclAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceNetworkAclAssociationOutput: + """ + Changes which network ACL a subnet is associated with. By default when + you create a subnet, it's automatically associated with the default + network ACL. For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + This is an idempotent operation. + + Args: + input: + An instance of `ReplaceNetworkAclAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceNetworkAclAssociationOutput`. + """ + return await self._invoke( + input, _models.REPLACE_NETWORK_ACL_ASSOCIATION, [], plugins + ) + + async def replace_network_acl_entry( + self, input: ReplaceNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> ReplaceNetworkAclEntryOutput: + """ + Replaces an entry (rule) in a network ACL. For more information, see + [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ReplaceNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceNetworkAclEntryOutput`. + """ + return await self._invoke(input, _models.REPLACE_NETWORK_ACL_ENTRY, [], plugins) + + async def replace_route( + self, input: ReplaceRouteInput, plugins: list[Plugin] | None = None + ) -> ReplaceRouteOutput: + """ + Replaces an existing route within a route table in a VPC. + + You must specify either a destination CIDR block or a prefix list ID. + You must also specify exactly one of the resources from the parameter + list, or reset the local route to its default target. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ReplaceRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceRouteOutput`. + """ + return await self._invoke(input, _models.REPLACE_ROUTE, [], plugins) + + async def replace_route_table_association( + self, + input: ReplaceRouteTableAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceRouteTableAssociationOutput: + """ + Changes the route table associated with a given subnet, internet + gateway, or virtual private gateway in a VPC. After the operation + completes, the subnet or gateway uses the routes in the new route table. + For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + You can also use this operation to change which table is the main route + table in the VPC. Specify the main route table's association ID and the + route table ID of the new main route table. + + Args: + input: + An instance of `ReplaceRouteTableAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceRouteTableAssociationOutput`. + """ + return await self._invoke( + input, _models.REPLACE_ROUTE_TABLE_ASSOCIATION, [], plugins + ) + + async def replace_transit_gateway_route( + self, + input: ReplaceTransitGatewayRouteInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceTransitGatewayRouteOutput: + """ + Replaces the specified route in the specified transit gateway route + table. + + Args: + input: + An instance of `ReplaceTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceTransitGatewayRouteOutput`. + """ + return await self._invoke( + input, _models.REPLACE_TRANSIT_GATEWAY_ROUTE, [], plugins + ) + + async def replace_vpn_tunnel( + self, input: ReplaceVpnTunnelInput, plugins: list[Plugin] | None = None + ) -> ReplaceVpnTunnelOutput: + """ + Trigger replacement of specified VPN tunnel. + + Args: + input: + An instance of `ReplaceVpnTunnelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceVpnTunnelOutput`. + """ + return await self._invoke(input, _models.REPLACE_VPN_TUNNEL, [], plugins) + + async def report_instance_status( + self, input: ReportInstanceStatusInput, plugins: list[Plugin] | None = None + ) -> ReportInstanceStatusOutput: + """ + Submits feedback about the status of an instance. The instance must be + in the `running` state. If your experience with the instance differs + from the instance status returned by DescribeInstanceStatus, use + ReportInstanceStatus to report your experience with the instance. Amazon + EC2 collects this information to improve the accuracy of status checks. + + Use of this action does not change the value returned by + DescribeInstanceStatus. + + Args: + input: + An instance of `ReportInstanceStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReportInstanceStatusOutput`. + """ + return await self._invoke(input, _models.REPORT_INSTANCE_STATUS, [], plugins) + + async def request_spot_fleet( + self, input: RequestSpotFleetInput, plugins: list[Plugin] | None = None + ) -> RequestSpotFleetOutput: + """ + Creates a Spot Fleet request. + + The Spot Fleet request specifies the total target capacity and the + On-Demand target capacity. Amazon EC2 calculates the difference between + the total capacity and On-Demand capacity, and launches the difference + as Spot capacity. + + You can submit a single request that includes multiple launch + specifications that vary by instance type, AMI, Availability Zone, or + subnet. + + By default, the Spot Fleet requests Spot Instances in the Spot Instance + pool where the price per unit is the lowest. Each launch specification + can include its own instance weighting that reflects the value of the + instance type to your application workload. + + Alternatively, you can specify that the Spot Fleet distribute the target + capacity across the Spot pools included in its launch specifications. By + ensuring that the Spot Instances in your Spot Fleet are in different + Spot pools, you can improve the availability of your fleet. + + You can specify tags for the Spot Fleet request and instances launched + by the fleet. You cannot tag other resource types in a Spot Fleet + request because only the `spot-fleet-request` and `instance` resource + types are supported. + + For more information, see [Spot Fleet + requests](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html) + in the *Amazon EC2 User Guide*. + + Warning: + We strongly discourage using the RequestSpotFleet API because it is a + legacy API with no planned investment. For options for requesting Spot + Instances, see [Which is the best Spot request method to + use?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RequestSpotFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestSpotFleetOutput`. + """ + return await self._invoke(input, _models.REQUEST_SPOT_FLEET, [], plugins) + + async def request_spot_instances( + self, input: RequestSpotInstancesInput, plugins: list[Plugin] | None = None + ) -> RequestSpotInstancesOutput: + """ + Creates a Spot Instance request. + + For more information, see [Work with Spot + Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html) + in the *Amazon EC2 User Guide*. + + Warning: + We strongly discourage using the RequestSpotInstances API because it is + a legacy API with no planned investment. For options for requesting Spot + Instances, see [Which is the best Spot request method to + use?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RequestSpotInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestSpotInstancesOutput`. + """ + return await self._invoke(input, _models.REQUEST_SPOT_INSTANCES, [], plugins) + + async def reset_address_attribute( + self, input: ResetAddressAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetAddressAttributeOutput: + """ + Resets the attribute of the specified IP address. For requirements, see + [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `ResetAddressAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetAddressAttributeOutput`. + """ + return await self._invoke(input, _models.RESET_ADDRESS_ATTRIBUTE, [], plugins) + + async def reset_ebs_default_kms_key_id( + self, input: ResetEbsDefaultKmsKeyIdInput, plugins: list[Plugin] | None = None + ) -> ResetEbsDefaultKmsKeyIdOutput: + """ + Resets the default KMS key for EBS encryption for your account in this + Region to the Amazon Web Services managed KMS key for EBS. + + After resetting the default KMS key to the Amazon Web Services managed + KMS key, you can continue to encrypt by a customer managed KMS key by + specifying it when you create the volume. For more information, see + [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ResetEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetEbsDefaultKmsKeyIdOutput`. + """ + return await self._invoke( + input, _models.RESET_EBS_DEFAULT_KMS_KEY_ID, [], plugins + ) + + async def reset_fpga_image_attribute( + self, input: ResetFpgaImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetFpgaImageAttributeOutput: + """ + Resets the specified attribute of the specified Amazon FPGA Image (AFI) + to its default value. You can only reset the load permission attribute. + + Args: + input: + An instance of `ResetFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetFpgaImageAttributeOutput`. + """ + return await self._invoke( + input, _models.RESET_FPGA_IMAGE_ATTRIBUTE, [], plugins + ) + + async def reset_image_attribute( + self, input: ResetImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetImageAttributeOutput: + """ + Resets an attribute of an AMI to its default value. + + Args: + input: + An instance of `ResetImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetImageAttributeOutput`. + """ + return await self._invoke(input, _models.RESET_IMAGE_ATTRIBUTE, [], plugins) + + async def reset_instance_attribute( + self, input: ResetInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetInstanceAttributeOutput: + """ + Resets an attribute of an instance to its default value. To reset the + `kernel` or `ramdisk`, the instance must be in a stopped state. To reset + the `sourceDestCheck`, the instance can be either running or stopped. + + The `sourceDestCheck` attribute controls whether source/destination + checking is enabled. The default value is `true`, which means checking + is enabled. This value must be `false` for a NAT instance to perform + NAT. For more information, see [NAT + instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ResetInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetInstanceAttributeOutput`. + """ + return await self._invoke(input, _models.RESET_INSTANCE_ATTRIBUTE, [], plugins) + + async def reset_network_interface_attribute( + self, + input: ResetNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ResetNetworkInterfaceAttributeOutput: + """ + Resets a network interface attribute. You can specify only one attribute + at a time. + + Args: + input: + An instance of `ResetNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetNetworkInterfaceAttributeOutput`. + """ + return await self._invoke( + input, _models.RESET_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + async def reset_snapshot_attribute( + self, input: ResetSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetSnapshotAttributeOutput: + """ + Resets permission settings for the specified snapshot. + + For more information about modifying snapshot permissions, see [Share a + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ResetSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetSnapshotAttributeOutput`. + """ + return await self._invoke(input, _models.RESET_SNAPSHOT_ATTRIBUTE, [], plugins) + + async def restore_address_to_classic( + self, input: RestoreAddressToClassicInput, plugins: list[Plugin] | None = None + ) -> RestoreAddressToClassicOutput: + """ + Note: + This action is deprecated. + + Restores an Elastic IP address that was previously moved to the EC2-VPC + platform back to the EC2-Classic platform. You cannot move an Elastic IP + address that was originally allocated for use in EC2-VPC. The Elastic IP + address must not be associated with an instance or network interface. + + Args: + input: + An instance of `RestoreAddressToClassicInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreAddressToClassicOutput`. + """ + return await self._invoke( + input, _models.RESTORE_ADDRESS_TO_CLASSIC, [], plugins + ) + + async def restore_image_from_recycle_bin( + self, + input: RestoreImageFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreImageFromRecycleBinOutput: + """ + Restores an AMI from the Recycle Bin. For more information, see [Recover + deleted Amazon EBS snapshots and EBS-back AMIs with Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RestoreImageFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreImageFromRecycleBinOutput`. + """ + return await self._invoke( + input, _models.RESTORE_IMAGE_FROM_RECYCLE_BIN, [], plugins + ) + + async def restore_managed_prefix_list_version( + self, + input: RestoreManagedPrefixListVersionInput, + plugins: list[Plugin] | None = None, + ) -> RestoreManagedPrefixListVersionOutput: + """ + Restores the entries from a previous version of a managed prefix list to + a new version of the prefix list. + + Args: + input: + An instance of `RestoreManagedPrefixListVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreManagedPrefixListVersionOutput`. + """ + return await self._invoke( + input, _models.RESTORE_MANAGED_PREFIX_LIST_VERSION, [], plugins + ) + + async def restore_snapshot_from_recycle_bin( + self, + input: RestoreSnapshotFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreSnapshotFromRecycleBinOutput: + """ + Restores a snapshot from the Recycle Bin. For more information, see + [Restore snapshots from the Recycle + Bin](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-snaps.html#recycle-bin-restore-snaps) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreSnapshotFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreSnapshotFromRecycleBinOutput`. + """ + return await self._invoke( + input, _models.RESTORE_SNAPSHOT_FROM_RECYCLE_BIN, [], plugins + ) + + async def restore_snapshot_tier( + self, input: RestoreSnapshotTierInput, plugins: list[Plugin] | None = None + ) -> RestoreSnapshotTierOutput: + """ + Restores an archived Amazon EBS snapshot for use temporarily or + permanently, or modifies the restore period or restore type for a + snapshot that was previously temporarily restored. + + For more information see [Restore an archived + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#restore-archived-snapshot) + and [modify the restore period or restore type for a temporarily + restored + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#modify-temp-restore-period) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreSnapshotTierInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreSnapshotTierOutput`. + """ + return await self._invoke(input, _models.RESTORE_SNAPSHOT_TIER, [], plugins) + + async def restore_volume_from_recycle_bin( + self, + input: RestoreVolumeFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreVolumeFromRecycleBinOutput: + """ + Restores a volume from the Recycle Bin. For more information, see + [Restore volumes from the Recycle + Bin](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-volumes.html#recycle-bin-restore-volumes) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreVolumeFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreVolumeFromRecycleBinOutput`. + """ + return await self._invoke( + input, _models.RESTORE_VOLUME_FROM_RECYCLE_BIN, [], plugins + ) + + async def revoke_client_vpn_ingress( + self, input: RevokeClientVpnIngressInput, plugins: list[Plugin] | None = None + ) -> RevokeClientVpnIngressOutput: + """ + Removes an ingress authorization rule from a Client VPN endpoint. + + Args: + input: + An instance of `RevokeClientVpnIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeClientVpnIngressOutput`. + """ + return await self._invoke(input, _models.REVOKE_CLIENT_VPN_INGRESS, [], plugins) + + async def revoke_security_group_egress( + self, input: RevokeSecurityGroupEgressInput, plugins: list[Plugin] | None = None + ) -> RevokeSecurityGroupEgressOutput: + """ + Removes the specified outbound (egress) rules from the specified + security group. + + You can specify rules using either rule IDs or security group rule + properties. If you use rule properties, the values that you specify (for + example, ports) must match the existing rule's values exactly. Each + rule has a protocol, from and to ports, and destination (CIDR range, + security group, or prefix list). For the TCP and UDP protocols, you must + also specify the destination port or range of ports. For the ICMP + protocol, you must also specify the ICMP type and code. If the security + group rule has a description, you do not need to specify the description + to revoke the rule. + + For a default VPC, if the values you specify do not match the existing + rule's values, no error is returned, and the output describes the + security group rules that were not revoked. + + Amazon Web Services recommends that you describe the security group to + verify that the rules were removed. + + Rule changes are propagated to instances within the security group as + quickly as possible. However, a small delay might occur. + + Args: + input: + An instance of `RevokeSecurityGroupEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeSecurityGroupEgressOutput`. + """ + return await self._invoke( + input, _models.REVOKE_SECURITY_GROUP_EGRESS, [], plugins + ) + + async def revoke_security_group_ingress( + self, + input: RevokeSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> RevokeSecurityGroupIngressOutput: + """ + Removes the specified inbound (ingress) rules from a security group. + + You can specify rules using either rule IDs or security group rule + properties. If you use rule properties, the values that you specify (for + example, ports) must match the existing rule's values exactly. Each + rule has a protocol, from and to ports, and source (CIDR range, security + group, or prefix list). For the TCP and UDP protocols, you must also + specify the destination port or range of ports. For the ICMP protocol, + you must also specify the ICMP type and code. If the security group rule + has a description, you do not need to specify the description to revoke + the rule. + + For a default VPC, if the values you specify do not match the existing + rule's values, no error is returned, and the output describes the + security group rules that were not revoked. + + For a non-default VPC, if the values you specify do not match the + existing rule's values, an `InvalidPermission.NotFound` client error is + returned, and no rules are revoked. + + Amazon Web Services recommends that you describe the security group to + verify that the rules were removed. + + Rule changes are propagated to instances within the security group as + quickly as possible. However, a small delay might occur. + + Args: + input: + An instance of `RevokeSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeSecurityGroupIngressOutput`. + """ + return await self._invoke( + input, _models.REVOKE_SECURITY_GROUP_INGRESS, [], plugins + ) + + async def run_instances( + self, input: RunInstancesInput, plugins: list[Plugin] | None = None + ) -> RunInstancesOutput: + """ + Launches the specified number of instances using an AMI for which you + have permissions. + + You can specify a number of options, or leave the default options. The + following rules apply: + + - If you don't specify a subnet ID, we choose a default subnet from + your default VPC for you. If you don't have a default VPC, you must + specify a subnet ID in the request. + + - All instances have a network interface with a primary private IPv4 + address. If you don't specify this address, we choose one from the + IPv4 range of your subnet. + + - Not all instance types support IPv6 addresses. For more information, + see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html). + + - If you don't specify a security group ID, we use the default security + group for the VPC. For more information, see [Security + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html). + + - If any of the AMIs have a product code attached for which the user has + not subscribed, the request fails. + + You can create a [launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html), + which is a resource that contains the parameters to launch an instance. + When you launch an instance using RunInstances, you can specify the + launch template instead of specifying the launch parameters. + + To ensure faster instance launches, break up large requests into smaller + batches. For example, create five separate launch requests for 100 + instances each instead of one launch request for 500 instances. + + `RunInstances` is subject to both request rate limiting and resource + rate limiting. For more information, see [Request + throttling](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-throttling.html). + + An instance is ready for you to use when it's in the `running` state. + You can check the state of your instance using DescribeInstances. You + can tag instances and EBS volumes during launch, after launch, or both. + For more information, see CreateTags and [Tagging your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + + Linux instances have access to the public key of the key pair at boot. + You can use this key to provide secure access to the instance. Amazon + EC2 public images use this feature to provide secure access without + passwords. For more information, see [Key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). + + For troubleshooting, see [What to do if an instance immediately + terminates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html), + and [Troubleshooting connecting to your + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html). + + Args: + input: + An instance of `RunInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunInstancesOutput`. + """ + return await self._invoke(input, _models.RUN_INSTANCES, [], plugins) + + async def run_scheduled_instances( + self, input: RunScheduledInstancesInput, plugins: list[Plugin] | None = None + ) -> RunScheduledInstancesOutput: + """ + Launches the specified Scheduled Instances. + + Before you can launch a Scheduled Instance, you must purchase it and + obtain an identifier using PurchaseScheduledInstances. + + You must launch a Scheduled Instance during its scheduled time period. + You can't stop or reboot a Scheduled Instance, but you can terminate it + as needed. If you terminate a Scheduled Instance before the current + scheduled time period ends, you can launch it again after a few minutes. + + Args: + input: + An instance of `RunScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunScheduledInstancesOutput`. + """ + return await self._invoke(input, _models.RUN_SCHEDULED_INSTANCES, [], plugins) + + async def search_local_gateway_routes( + self, input: SearchLocalGatewayRoutesInput, plugins: list[Plugin] | None = None + ) -> SearchLocalGatewayRoutesOutput: + """ + Searches for routes in the specified local gateway route table. + + Args: + input: + An instance of `SearchLocalGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchLocalGatewayRoutesOutput`. + """ + return await self._invoke( + input, _models.SEARCH_LOCAL_GATEWAY_ROUTES, [], plugins + ) + + async def search_transit_gateway_multicast_groups( + self, + input: SearchTransitGatewayMulticastGroupsInput, + plugins: list[Plugin] | None = None, + ) -> SearchTransitGatewayMulticastGroupsOutput: + """ + Searches one or more transit gateway multicast groups and returns the + group membership information. + + Args: + input: + An instance of `SearchTransitGatewayMulticastGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchTransitGatewayMulticastGroupsOutput`. + """ + return await self._invoke( + input, _models.SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS, [], plugins + ) + + async def search_transit_gateway_routes( + self, + input: SearchTransitGatewayRoutesInput, + plugins: list[Plugin] | None = None, + ) -> SearchTransitGatewayRoutesOutput: + """ + Searches for routes in the specified transit gateway route table. + + Args: + input: + An instance of `SearchTransitGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchTransitGatewayRoutesOutput`. + """ + return await self._invoke( + input, _models.SEARCH_TRANSIT_GATEWAY_ROUTES, [], plugins + ) + + async def send_diagnostic_interrupt( + self, input: SendDiagnosticInterruptInput, plugins: list[Plugin] | None = None + ) -> SendDiagnosticInterruptOutput: + """ + Sends a diagnostic interrupt to the specified Amazon EC2 instance to + trigger a *kernel panic* (on Linux instances), or a *blue screen*/*stop + error* (on Windows instances). For instances based on Intel and AMD + processors, the interrupt is received as a *non-maskable interrupt* + (NMI). + + In general, the operating system crashes and reboots when a kernel panic + or stop error is triggered. The operating system can also be configured + to perform diagnostic tasks, such as generating a memory dump file, + loading a secondary kernel, or obtaining a call trace. + + Before sending a diagnostic interrupt to your instance, ensure that its + operating system is configured to perform the required diagnostic tasks. + + For more information about configuring your operating system to generate + a crash dump when a kernel panic or stop error occurs, see [Send a + diagnostic interrupt (for advanced + users)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `SendDiagnosticInterruptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SendDiagnosticInterruptOutput`. + """ + return await self._invoke(input, _models.SEND_DIAGNOSTIC_INTERRUPT, [], plugins) + + async def start_declarative_policies_report( + self, + input: StartDeclarativePoliciesReportInput, + plugins: list[Plugin] | None = None, + ) -> StartDeclarativePoliciesReportOutput: + """ + Generates an account status report. The report is generated + asynchronously, and can take several hours to complete. + + The report provides the current status of all attributes supported by + declarative policies for the accounts within the specified scope. The + scope is determined by the specified `TargetId`, which can represent an + individual account, or all the accounts that fall under the specified + organizational unit (OU) or root (the entire Amazon Web Services + Organization). + + The report is saved to your specified S3 bucket, using the following + path structure (with the capitalized placeholders representing your + specific values): + + `s3://AMZN-S3-DEMO-BUCKET/YOUR-OPTIONAL-S3-PREFIX/ec2_TARGETID_REPORTID_YYYYMMDDTHHMMZ.csv` + + **Prerequisites for generating a report** + + - The `StartDeclarativePoliciesReport` API can only be called by the + management account or delegated administrators for the organization. + + - An S3 bucket must be available before generating the report (you can + create a new one or use an existing one), it must be in the same + Region where the report generation request is made, and it must have + an appropriate bucket policy. For a sample S3 policy, see *Sample + Amazon S3 policy* under + [Examples](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartDeclarativePoliciesReport.html#API_StartDeclarativePoliciesReport_Examples). + + - Trusted access must be enabled for the service for which the + declarative policy will enforce a baseline configuration. If you use + the Amazon Web Services Organizations console, this is done + automatically when you enable declarative policies. The API uses the + following service principal to identify the EC2 service: + `ec2.amazonaws.com`. For more information on how to enable trusted + access with the Amazon Web Services CLI and Amazon Web Services SDKs, + see [Using Organizations with other Amazon Web Services + services](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) + in the *Amazon Web Services Organizations User Guide*. + + - Only one report per organization can be generated at a time. + Attempting to generate a report while another is in progress will + result in an error. + + For more information, including the required IAM permissions to run this + API, see [Generating the account status report for declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `StartDeclarativePoliciesReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDeclarativePoliciesReportOutput`. + """ + return await self._invoke( + input, _models.START_DECLARATIVE_POLICIES_REPORT, [], plugins + ) + + async def start_instances( + self, input: StartInstancesInput, plugins: list[Plugin] | None = None + ) -> StartInstancesOutput: + """ + Starts an Amazon EBS-backed instance that you've previously stopped. + + Instances that use Amazon EBS volumes as their root devices can be + quickly stopped and started. When an instance is stopped, the compute + resources are released and you are not billed for instance usage. + However, your root partition Amazon EBS volume remains and continues to + persist your data, and you are charged for Amazon EBS volume usage. You + can restart your instance at any time. Every time you start your + instance, Amazon EC2 charges a one-minute minimum for instance usage, + and thereafter charges per second for instance usage. + + Before stopping an instance, make sure it is in a state from which it + can be restarted. Stopping an instance does not preserve data stored in + RAM. + + Performing this operation on an instance that uses an instance store as + its root device returns an error. + + If you attempt to start a T3 instance with `host` tenancy and the + `unlimited` CPU credit option, the request fails. The `unlimited` CPU + credit option is not supported on Dedicated Hosts. Before you start the + instance, either change its CPU credit option to `standard`, or change + its tenancy to `default` or `dedicated`. + + For more information, see [Stop and start Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `StartInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartInstancesOutput`. + """ + return await self._invoke(input, _models.START_INSTANCES, [], plugins) + + async def start_network_insights_access_scope_analysis( + self, + input: StartNetworkInsightsAccessScopeAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> StartNetworkInsightsAccessScopeAnalysisOutput: + """ + Starts analyzing the specified Network Access Scope. + + Args: + input: + An instance of `StartNetworkInsightsAccessScopeAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartNetworkInsightsAccessScopeAnalysisOutput`. + """ + return await self._invoke( + input, _models.START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, [], plugins + ) + + async def start_network_insights_analysis( + self, + input: StartNetworkInsightsAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> StartNetworkInsightsAnalysisOutput: + """ + Starts analyzing the specified path. If the path is reachable, the + operation returns the shortest feasible path. + + Args: + input: + An instance of `StartNetworkInsightsAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartNetworkInsightsAnalysisOutput`. + """ + return await self._invoke( + input, _models.START_NETWORK_INSIGHTS_ANALYSIS, [], plugins + ) + + async def start_vpc_endpoint_service_private_dns_verification( + self, + input: StartVpcEndpointServicePrivateDnsVerificationInput, + plugins: list[Plugin] | None = None, + ) -> StartVpcEndpointServicePrivateDnsVerificationOutput: + """ + Initiates the verification process to prove that the service provider + owns the private DNS name domain for the endpoint service. + + The service provider must successfully perform the verification before + the consumer can use the name to access the service. + + Before the service provider runs this command, they must add a record to + the DNS server. + + Args: + input: + An instance of `StartVpcEndpointServicePrivateDnsVerificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartVpcEndpointServicePrivateDnsVerificationOutput`. + """ + return await self._invoke( + input, + _models.START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION, + [], + plugins, + ) + + async def stop_instances( + self, input: StopInstancesInput, plugins: list[Plugin] | None = None + ) -> StopInstancesOutput: + """ + Stops an Amazon EBS-backed instance. You can restart your instance at + any time using the + [StartInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html) + API. For more information, see [Stop and start Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) + in the *Amazon EC2 User Guide*. + + When you stop or hibernate an instance, we shut it down. By default, + this includes a graceful operating system (OS) shutdown. To bypass the + graceful shutdown, use the `skipOsShutdown` parameter; however, this + might risk data integrity. + + You can use the StopInstances operation together with the `Hibernate` + parameter to hibernate an instance if the instance is [enabled for + hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html) + and meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + Stopping an instance doesn't preserve data stored in RAM, while + hibernation does. If hibernation fails, a normal shutdown occurs. For + more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + + If your instance appears stuck in the `stopping` state, there might be + an issue with the underlying host computer. You can use the + StopInstances operation together with the Force parameter to force stop + your instance. For more information, see [Troubleshoot Amazon EC2 + instance stop + issues](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) + in the *Amazon EC2 User Guide*. + + Stopping and hibernating an instance differs from rebooting or + terminating it. For example, a stopped or hibernated instance retains + its root volume and any data volumes, unlike terminated instances where + these volumes are automatically deleted. For more information about the + differences between stopping, hibernating, rebooting, and terminating + instances, see [Amazon EC2 instance state + changes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + We don't charge for instance usage or data transfer fees when an + instance is stopped. However, the root volume and any data volumes + remain and continue to persist your data, and you're charged for volume + usage. Every time you start your instance, Amazon EC2 charges a + one-minute minimum for instance usage, followed by per-second billing. + + You can't stop or hibernate instance store-backed instances. + + Args: + input: + An instance of `StopInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopInstancesOutput`. + """ + return await self._invoke(input, _models.STOP_INSTANCES, [], plugins) + + async def terminate_client_vpn_connections( + self, + input: TerminateClientVpnConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> TerminateClientVpnConnectionsOutput: + """ + Terminates active Client VPN endpoint connections. This action can be + used to terminate a specific client connection, or up to five + connections established by a specific user. + + Args: + input: + An instance of `TerminateClientVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TerminateClientVpnConnectionsOutput`. + """ + return await self._invoke( + input, _models.TERMINATE_CLIENT_VPN_CONNECTIONS, [], plugins + ) + + async def terminate_instances( + self, input: TerminateInstancesInput, plugins: list[Plugin] | None = None + ) -> TerminateInstancesOutput: + """ + Terminates (deletes) the specified instances. This operation is + [idempotent](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html); + if you terminate an instance more than once, each call succeeds. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + If you specify multiple instances and the request fails (for example, + because of a single incorrect instance ID), none of the instances are + terminated. + + If you terminate multiple instances across multiple Availability Zones, + and one or more of the specified instances are enabled for termination + protection, the request fails with the following results: + + - The specified instances that are in the same Availability Zone as the + protected instance are not terminated. + + - The specified instances that are in different Availability Zones, + where no other specified instances are protected, are successfully + terminated. + + For example, say you have the following instances: + + - Instance A: `us-east-1a`; Not protected + + - Instance B: `us-east-1a`; Not protected + + - Instance C: `us-east-1b`; Protected + + - Instance D: `us-east-1b`; not protected + + If you attempt to terminate all of these instances in the same request, + the request reports failure with the following results: + + - Instance A and Instance B are successfully terminated because none of + the specified instances in `us-east-1a` are enabled for termination + protection. + + - Instance C and Instance D fail to terminate because at least one of + the specified instances in `us-east-1b` (Instance C) is enabled for + termination protection. + + Terminated instances remain visible after termination (for approximately + one hour). + + By default, Amazon EC2 deletes all EBS volumes that were attached when + the instance launched. Volumes attached after instance launch continue + running. + + By default, the TerminateInstances operation includes a graceful + operating system (OS) shutdown. To bypass the graceful shutdown, use the + `skipOsShutdown` parameter; however, this might risk data integrity. + + You can stop, start, and terminate EBS-backed instances. You can only + terminate instance store-backed instances. What happens to an instance + differs if you stop or terminate it. For example, when you stop an + instance, the root device and any other devices attached to the instance + persist. When you terminate an instance, any attached EBS volumes with + the `DeleteOnTermination` block device mapping parameter set to `true` + are automatically deleted. For more information about the differences + between stopping and terminating instances, see [Amazon EC2 instance + state + changes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + When you terminate an instance, we attempt to terminate it forcibly + after a short while. If your instance appears stuck in the shutting-down + state after a period of time, there might be an issue with the + underlying host computer. For more information about terminating and + troubleshooting terminating your instances, see [Terminate Amazon EC2 + instances](https://docs.aws.amazon.com/) and [Troubleshooting + terminating your + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `TerminateInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TerminateInstancesOutput`. + """ + return await self._invoke(input, _models.TERMINATE_INSTANCES, [], plugins) + + async def unassign_ipv6_addresses( + self, input: UnassignIpv6AddressesInput, plugins: list[Plugin] | None = None + ) -> UnassignIpv6AddressesOutput: + """ + Unassigns the specified IPv6 addresses or Prefix Delegation prefixes + from a network interface. + + Args: + input: + An instance of `UnassignIpv6AddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignIpv6AddressesOutput`. + """ + return await self._invoke(input, _models.UNASSIGN_IPV6_ADDRESSES, [], plugins) + + async def unassign_private_ip_addresses( + self, + input: UnassignPrivateIpAddressesInput, + plugins: list[Plugin] | None = None, + ) -> UnassignPrivateIpAddressesOutput: + """ + Unassigns the specified secondary private IP addresses or IPv4 Prefix + Delegation prefixes from a network interface. + + Args: + input: + An instance of `UnassignPrivateIpAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignPrivateIpAddressesOutput`. + """ + return await self._invoke( + input, _models.UNASSIGN_PRIVATE_IP_ADDRESSES, [], plugins + ) + + async def unassign_private_nat_gateway_address( + self, + input: UnassignPrivateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> UnassignPrivateNatGatewayAddressOutput: + """ + Unassigns secondary private IPv4 addresses from a private NAT gateway. + You cannot unassign your primary private IP. For more information, see + [Edit secondary IP address + associations](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary) + in the *Amazon VPC User Guide*. + + While unassigning is in progress, you cannot assign/unassign additional + IP addresses while the connections are being drained. You are, however, + allowed to delete the NAT gateway. + + A private IP address will only be released at the end of + MaxDrainDurationSeconds. The private IP addresses stay associated and + support the existing connections, but do not support any new connections + (new connections are distributed across the remaining assigned private + IP address). After the existing connections drain out, the private IP + addresses are released. + + Args: + input: + An instance of `UnassignPrivateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignPrivateNatGatewayAddressOutput`. + """ + return await self._invoke( + input, _models.UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + async def unlock_snapshot( + self, input: UnlockSnapshotInput, plugins: list[Plugin] | None = None + ) -> UnlockSnapshotOutput: + """ + Unlocks a snapshot that is locked in governance mode or that is locked + in compliance mode but still in the cooling-off period. You can't + unlock a snapshot that is locked in compliance mode after the + cooling-off period has expired. + + Args: + input: + An instance of `UnlockSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnlockSnapshotOutput`. + """ + return await self._invoke(input, _models.UNLOCK_SNAPSHOT, [], plugins) + + async def unmonitor_instances( + self, input: UnmonitorInstancesInput, plugins: list[Plugin] | None = None + ) -> UnmonitorInstancesOutput: + """ + Disables detailed monitoring for a running instance. For more + information, see [Monitoring your instances and + volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `UnmonitorInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnmonitorInstancesOutput`. + """ + return await self._invoke(input, _models.UNMONITOR_INSTANCES, [], plugins) + + async def update_capacity_manager_monitored_tag_keys( + self, + input: UpdateCapacityManagerMonitoredTagKeysInput, + plugins: list[Plugin] | None = None, + ) -> UpdateCapacityManagerMonitoredTagKeysOutput: + """ + Activates or deactivates tag keys for monitoring by EC2 Capacity + Manager. Activated tag keys are included as dimensions in capacity + metric data, enabling you to group and filter metrics by tag values. + + Args: + input: + An instance of `UpdateCapacityManagerMonitoredTagKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityManagerMonitoredTagKeysOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS, [], plugins + ) + + async def update_capacity_manager_organizations_access( + self, + input: UpdateCapacityManagerOrganizationsAccessInput, + plugins: list[Plugin] | None = None, + ) -> UpdateCapacityManagerOrganizationsAccessOutput: + """ + Updates the Organizations access setting for EC2 Capacity Manager. This + controls whether Capacity Manager can aggregate data from all accounts + in your Amazon Web Services Organization or only from the current + account. + + Args: + input: + An instance of `UpdateCapacityManagerOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityManagerOrganizationsAccessOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS, [], plugins + ) + + async def update_interruptible_capacity_reservation_allocation( + self, + input: UpdateInterruptibleCapacityReservationAllocationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateInterruptibleCapacityReservationAllocationOutput: + """ + Modifies the number of instances allocated to an interruptible + reservation, allowing you to add more capacity or reclaim capacity to + your source Capacity Reservation. + + Args: + input: + An instance of `UpdateInterruptibleCapacityReservationAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateInterruptibleCapacityReservationAllocationOutput`. + """ + return await self._invoke( + input, + _models.UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION, + [], + plugins, + ) + + async def update_security_group_rule_descriptions_egress( + self, + input: UpdateSecurityGroupRuleDescriptionsEgressInput, + plugins: list[Plugin] | None = None, + ) -> UpdateSecurityGroupRuleDescriptionsEgressOutput: + """ + Updates the description of an egress (outbound) security group rule. You + can replace an existing description, or add a description to a rule that + did not have one previously. You can remove a description for a security + group rule by omitting the description parameter in the request. + + Args: + input: + An instance of `UpdateSecurityGroupRuleDescriptionsEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSecurityGroupRuleDescriptionsEgressOutput`. + """ + return await self._invoke( + input, _models.UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS, [], plugins + ) + + async def update_security_group_rule_descriptions_ingress( + self, + input: UpdateSecurityGroupRuleDescriptionsIngressInput, + plugins: list[Plugin] | None = None, + ) -> UpdateSecurityGroupRuleDescriptionsIngressOutput: + """ + Updates the description of an ingress (inbound) security group rule. You + can replace an existing description, or add a description to a rule that + did not have one previously. You can remove a description for a security + group rule by omitting the description parameter in the request. + + Args: + input: + An instance of `UpdateSecurityGroupRuleDescriptionsIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSecurityGroupRuleDescriptionsIngressOutput`. + """ + return await self._invoke( + input, _models.UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS, [], plugins + ) + + async def validate_security_group_quotas_for_interface( + self, + input: ValidateSecurityGroupQuotasForInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> ValidateSecurityGroupQuotasForInterfaceOutput: + """ + Validates whether the specified security groups can be associated with a + single network interface. The operation checks Amazon Virtual Private + Cloud (Amazon VPC) quotas. It checks inbound or outbound rules per + security group and security groups per network interface. Only + authorized Amazon Web Services services can call this operation. + + For more information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ValidateSecurityGroupQuotasForInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ValidateSecurityGroupQuotasForInterfaceOutput`. + """ + return await self._invoke( + input, _models.VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE, [], plugins + ) + + async def withdraw_byoip_cidr( + self, input: WithdrawByoipCidrInput, plugins: list[Plugin] | None = None + ) -> WithdrawByoipCidrOutput: + """ + Stops advertising an address range that is provisioned as an address + pool. + + You can perform this operation at most once every 10 seconds, even if + you specify different address ranges each time. + + It can take a few minutes before traffic to the specified addresses + stops routing to Amazon Web Services because of BGP propagation delays. + + Args: + input: + An instance of `WithdrawByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `WithdrawByoipCidrOutput`. + """ + return await self._invoke(input, _models.WITHDRAW_BYOIP_CIDR, [], plugins) + + async def _new_config(self) -> AsyncEC2Config: + return await AsyncEC2Config.resolve() + + async def _post_setup(self, config: AsyncEC2Config) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/config.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/config.py new file mode 100644 index 00000000..d1621b12 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/config.py @@ -0,0 +1,5020 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import Ec2QueryClientProtocol +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import AMAZON_EC2 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AcceptAddressTransferInput, + AcceptAddressTransferOutput, + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + AcceptVpcPeeringConnectionInput, + AcceptVpcPeeringConnectionOutput, + AdvertiseByoipCidrInput, + AdvertiseByoipCidrOutput, + AllocateAddressInput, + AllocateAddressOutput, + AllocateHostsInput, + AllocateHostsOutput, + AllocateIpamPoolCidrInput, + AllocateIpamPoolCidrOutput, + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + AssignIpv6AddressesInput, + AssignIpv6AddressesOutput, + AssignPrivateIpAddressesInput, + AssignPrivateIpAddressesOutput, + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + AssociateAddressInput, + AssociateAddressOutput, + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + AssociateDhcpOptionsInput, + AssociateDhcpOptionsOutput, + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + AssociateIpamByoasnInput, + AssociateIpamByoasnOutput, + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + AssociateNatGatewayAddressInput, + AssociateNatGatewayAddressOutput, + AssociateRouteServerInput, + AssociateRouteServerOutput, + AssociateRouteTableInput, + AssociateRouteTableOutput, + AssociateSecurityGroupVpcInput, + AssociateSecurityGroupVpcOutput, + AssociateSubnetCidrBlockInput, + AssociateSubnetCidrBlockOutput, + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + AssociateTrunkInterfaceInput, + AssociateTrunkInterfaceOutput, + AssociateVpcCidrBlockInput, + AssociateVpcCidrBlockOutput, + AttachClassicLinkVpcInput, + AttachClassicLinkVpcOutput, + AttachImageWatermarkInput, + AttachImageWatermarkOutput, + AttachInternetGatewayInput, + AttachInternetGatewayOutput, + AttachNetworkInterfaceInput, + AttachNetworkInterfaceOutput, + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + AttachVolumeInput, + AttachVolumeOutput, + AttachVpnGatewayInput, + AttachVpnGatewayOutput, + AuthorizeClientVpnIngressInput, + AuthorizeClientVpnIngressOutput, + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + BundleInstanceInput, + BundleInstanceOutput, + CancelBundleTaskInput, + CancelBundleTaskOutput, + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + CancelCapacityReservationInput, + CancelCapacityReservationOutput, + CancelConversionTaskInput, + CancelConversionTaskOutput, + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + CancelImportTaskInput, + CancelImportTaskOutput, + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + CancelSpotFleetRequestsInput, + CancelSpotFleetRequestsOutput, + CancelSpotInstanceRequestsInput, + CancelSpotInstanceRequestsOutput, + ConfirmProductInstanceInput, + ConfirmProductInstanceOutput, + CopyFpgaImageInput, + CopyFpgaImageOutput, + CopyImageInput, + CopyImageOutput, + CopySnapshotInput, + CopySnapshotOutput, + CopyVolumesInput, + CopyVolumesOutput, + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + CreateCapacityReservationInput, + CreateCapacityReservationOutput, + CreateCarrierGatewayInput, + CreateCarrierGatewayOutput, + CreateClientVpnEndpointInput, + CreateClientVpnEndpointOutput, + CreateClientVpnRouteInput, + CreateClientVpnRouteOutput, + CreateCoipCidrInput, + CreateCoipCidrOutput, + CreateCoipPoolInput, + CreateCoipPoolOutput, + CreateCustomerGatewayInput, + CreateCustomerGatewayOutput, + CreateDefaultSubnetInput, + CreateDefaultSubnetOutput, + CreateDefaultVpcInput, + CreateDefaultVpcOutput, + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + CreateDhcpOptionsInput, + CreateDhcpOptionsOutput, + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + CreateFleetInput, + CreateFleetOutput, + CreateFlowLogsInput, + CreateFlowLogsOutput, + CreateFpgaImageInput, + CreateFpgaImageOutput, + CreateImageInput, + CreateImageOutput, + CreateImageUsageReportInput, + CreateImageUsageReportOutput, + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + CreateInstanceEventWindowInput, + CreateInstanceEventWindowOutput, + CreateInstanceExportTaskInput, + CreateInstanceExportTaskOutput, + CreateInternetGatewayInput, + CreateInternetGatewayOutput, + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + CreateIpamInput, + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + CreateIpamOutput, + CreateIpamPolicyInput, + CreateIpamPolicyOutput, + CreateIpamPoolInput, + CreateIpamPoolOutput, + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + CreateIpamScopeInput, + CreateIpamScopeOutput, + CreateKeyPairInput, + CreateKeyPairOutput, + CreateLaunchTemplateInput, + CreateLaunchTemplateOutput, + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + CreateLocalGatewayRouteInput, + CreateLocalGatewayRouteOutput, + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + CreateManagedPrefixListInput, + CreateManagedPrefixListOutput, + CreateNatGatewayInput, + CreateNatGatewayOutput, + CreateNetworkAclEntryInput, + CreateNetworkAclEntryOutput, + CreateNetworkAclInput, + CreateNetworkAclOutput, + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + CreateNetworkInsightsPathInput, + CreateNetworkInsightsPathOutput, + CreateNetworkInterfaceInput, + CreateNetworkInterfaceOutput, + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + CreatePlacementGroupInput, + CreatePlacementGroupOutput, + CreatePublicIpv4PoolInput, + CreatePublicIpv4PoolOutput, + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + CreateRestoreImageTaskInput, + CreateRestoreImageTaskOutput, + CreateRouteInput, + CreateRouteOutput, + CreateRouteServerEndpointInput, + CreateRouteServerEndpointOutput, + CreateRouteServerInput, + CreateRouteServerOutput, + CreateRouteServerPeerInput, + CreateRouteServerPeerOutput, + CreateRouteTableInput, + CreateRouteTableOutput, + CreateSecondaryNetworkInput, + CreateSecondaryNetworkOutput, + CreateSecondarySubnetInput, + CreateSecondarySubnetOutput, + CreateSecurityGroupInput, + CreateSecurityGroupOutput, + CreateSnapshotInput, + CreateSnapshotOutput, + CreateSnapshotsInput, + CreateSnapshotsOutput, + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + CreateStoreImageTaskInput, + CreateStoreImageTaskOutput, + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + CreateSubnetInput, + CreateSubnetOutput, + CreateTagsInput, + CreateTagsOutput, + CreateTrafficMirrorFilterInput, + CreateTrafficMirrorFilterOutput, + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + CreateTrafficMirrorSessionInput, + CreateTrafficMirrorSessionOutput, + CreateTrafficMirrorTargetInput, + CreateTrafficMirrorTargetOutput, + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + CreateTransitGatewayInput, + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + CreateTransitGatewayOutput, + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + CreateTransitGatewayRouteInput, + CreateTransitGatewayRouteOutput, + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + CreateVerifiedAccessGroupInput, + CreateVerifiedAccessGroupOutput, + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + CreateVolumeInput, + CreateVolumeOutput, + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + CreateVpcEncryptionControlInput, + CreateVpcEncryptionControlOutput, + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + CreateVpcEndpointInput, + CreateVpcEndpointOutput, + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + CreateVpcInput, + CreateVpcOutput, + CreateVpcPeeringConnectionInput, + CreateVpcPeeringConnectionOutput, + CreateVpnConcentratorInput, + CreateVpnConcentratorOutput, + CreateVpnConnectionInput, + CreateVpnConnectionOutput, + CreateVpnConnectionRouteInput, + CreateVpnConnectionRouteOutput, + CreateVpnGatewayInput, + CreateVpnGatewayOutput, + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + DeleteCarrierGatewayInput, + DeleteCarrierGatewayOutput, + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + DeleteClientVpnEndpointInput, + DeleteClientVpnEndpointOutput, + DeleteClientVpnRouteInput, + DeleteClientVpnRouteOutput, + DeleteCoipCidrInput, + DeleteCoipCidrOutput, + DeleteCoipPoolInput, + DeleteCoipPoolOutput, + DeleteCustomerGatewayInput, + DeleteCustomerGatewayOutput, + DeleteDhcpOptionsInput, + DeleteDhcpOptionsOutput, + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + DeleteFleetsInput, + DeleteFleetsOutput, + DeleteFlowLogsInput, + DeleteFlowLogsOutput, + DeleteFpgaImageInput, + DeleteFpgaImageOutput, + DeleteImageUsageReportInput, + DeleteImageUsageReportOutput, + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + DeleteInstanceEventWindowInput, + DeleteInstanceEventWindowOutput, + DeleteInternetGatewayInput, + DeleteInternetGatewayOutput, + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + DeleteIpamInput, + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + DeleteIpamOutput, + DeleteIpamPolicyInput, + DeleteIpamPolicyOutput, + DeleteIpamPoolInput, + DeleteIpamPoolOutput, + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + DeleteIpamScopeInput, + DeleteIpamScopeOutput, + DeleteKeyPairInput, + DeleteKeyPairOutput, + DeleteLaunchTemplateInput, + DeleteLaunchTemplateOutput, + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + DeleteLocalGatewayRouteInput, + DeleteLocalGatewayRouteOutput, + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + DeleteManagedPrefixListInput, + DeleteManagedPrefixListOutput, + DeleteNatGatewayInput, + DeleteNatGatewayOutput, + DeleteNetworkAclEntryInput, + DeleteNetworkAclEntryOutput, + DeleteNetworkAclInput, + DeleteNetworkAclOutput, + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + DeleteNetworkInsightsPathInput, + DeleteNetworkInsightsPathOutput, + DeleteNetworkInterfaceInput, + DeleteNetworkInterfaceOutput, + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + DeletePlacementGroupInput, + DeletePlacementGroupOutput, + DeletePublicIpv4PoolInput, + DeletePublicIpv4PoolOutput, + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + DeleteRouteInput, + DeleteRouteOutput, + DeleteRouteServerEndpointInput, + DeleteRouteServerEndpointOutput, + DeleteRouteServerInput, + DeleteRouteServerOutput, + DeleteRouteServerPeerInput, + DeleteRouteServerPeerOutput, + DeleteRouteTableInput, + DeleteRouteTableOutput, + DeleteSecondaryNetworkInput, + DeleteSecondaryNetworkOutput, + DeleteSecondarySubnetInput, + DeleteSecondarySubnetOutput, + DeleteSecurityGroupInput, + DeleteSecurityGroupOutput, + DeleteSnapshotInput, + DeleteSnapshotOutput, + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + DeleteSubnetInput, + DeleteSubnetOutput, + DeleteTagsInput, + DeleteTagsOutput, + DeleteTrafficMirrorFilterInput, + DeleteTrafficMirrorFilterOutput, + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + DeleteTrafficMirrorSessionInput, + DeleteTrafficMirrorSessionOutput, + DeleteTrafficMirrorTargetInput, + DeleteTrafficMirrorTargetOutput, + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + DeleteTransitGatewayInput, + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + DeleteTransitGatewayOutput, + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + DeleteTransitGatewayRouteInput, + DeleteTransitGatewayRouteOutput, + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + DeleteVerifiedAccessGroupInput, + DeleteVerifiedAccessGroupOutput, + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + DeleteVolumeInput, + DeleteVolumeOutput, + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + DeleteVpcEncryptionControlInput, + DeleteVpcEncryptionControlOutput, + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + DeleteVpcEndpointsInput, + DeleteVpcEndpointsOutput, + DeleteVpcInput, + DeleteVpcOutput, + DeleteVpcPeeringConnectionInput, + DeleteVpcPeeringConnectionOutput, + DeleteVpnConcentratorInput, + DeleteVpnConcentratorOutput, + DeleteVpnConnectionInput, + DeleteVpnConnectionOutput, + DeleteVpnConnectionRouteInput, + DeleteVpnConnectionRouteOutput, + DeleteVpnGatewayInput, + DeleteVpnGatewayOutput, + DeprovisionByoipCidrInput, + DeprovisionByoipCidrOutput, + DeprovisionIpamByoasnInput, + DeprovisionIpamByoasnOutput, + DeprovisionIpamPoolCidrInput, + DeprovisionIpamPoolCidrOutput, + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + DeregisterImageInput, + DeregisterImageOutput, + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + DescribeAddressTransfersInput, + DescribeAddressTransfersOutput, + DescribeAddressesAttributeInput, + DescribeAddressesAttributeOutput, + DescribeAddressesInput, + DescribeAddressesOutput, + DescribeAggregateIdFormatInput, + DescribeAggregateIdFormatOutput, + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + DescribeApplicationStatusInput, + DescribeApplicationStatusOutput, + DescribeAvailabilityZonesInput, + DescribeAvailabilityZonesOutput, + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + DescribeBundleTasksInput, + DescribeBundleTasksOutput, + DescribeByoipCidrsInput, + DescribeByoipCidrsOutput, + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + DescribeCapacityBlocksInput, + DescribeCapacityBlocksOutput, + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + DescribeCarrierGatewaysInput, + DescribeCarrierGatewaysOutput, + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + DescribeClientVpnEndpointsInput, + DescribeClientVpnEndpointsOutput, + DescribeClientVpnRoutesInput, + DescribeClientVpnRoutesOutput, + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + DescribeCoipPoolsInput, + DescribeCoipPoolsOutput, + DescribeConversionTasksInput, + DescribeConversionTasksOutput, + DescribeCustomerGatewaysInput, + DescribeCustomerGatewaysOutput, + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + DescribeDhcpOptionsInput, + DescribeDhcpOptionsOutput, + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + DescribeElasticGpusInput, + DescribeElasticGpusOutput, + DescribeExportImageTasksInput, + DescribeExportImageTasksOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeFastLaunchImagesInput, + DescribeFastLaunchImagesOutput, + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + DescribeFleetHistoryInput, + DescribeFleetHistoryOutput, + DescribeFleetInstancesInput, + DescribeFleetInstancesOutput, + DescribeFleetsInput, + DescribeFleetsOutput, + DescribeFlowLogsInput, + DescribeFlowLogsOutput, + DescribeFpgaImageAttributeInput, + DescribeFpgaImageAttributeOutput, + DescribeFpgaImagesInput, + DescribeFpgaImagesOutput, + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + DescribeHostReservationsInput, + DescribeHostReservationsOutput, + DescribeHostsInput, + DescribeHostsOutput, + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + DescribeIdFormatInput, + DescribeIdFormatOutput, + DescribeIdentityIdFormatInput, + DescribeIdentityIdFormatOutput, + DescribeImageAttributeInput, + DescribeImageAttributeOutput, + DescribeImageReferencesInput, + DescribeImageReferencesOutput, + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + DescribeImageUsageReportsInput, + DescribeImageUsageReportsOutput, + DescribeImagesInput, + DescribeImagesOutput, + DescribeImportImageTasksInput, + DescribeImportImageTasksOutput, + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + DescribeInstanceAttributeInput, + DescribeInstanceAttributeOutput, + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + DescribeInstanceStatusInput, + DescribeInstanceStatusOutput, + DescribeInstanceTopologyInput, + DescribeInstanceTopologyOutput, + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + DescribeInstanceTypesInput, + DescribeInstanceTypesOutput, + DescribeInstancesInput, + DescribeInstancesOutput, + DescribeInternetGatewaysInput, + DescribeInternetGatewaysOutput, + DescribeIpamByoasnInput, + DescribeIpamByoasnOutput, + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + DescribeIpamPoliciesInput, + DescribeIpamPoliciesOutput, + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + DescribeIpamPoolsInput, + DescribeIpamPoolsOutput, + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + DescribeIpamScopesInput, + DescribeIpamScopesOutput, + DescribeIpamsInput, + DescribeIpamsOutput, + DescribeIpv6PoolsInput, + DescribeIpv6PoolsOutput, + DescribeKeyPairsInput, + DescribeKeyPairsOutput, + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + DescribeLaunchTemplatesInput, + DescribeLaunchTemplatesOutput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + DescribeLocalGatewaysInput, + DescribeLocalGatewaysOutput, + DescribeLockedSnapshotsInput, + DescribeLockedSnapshotsOutput, + DescribeMacHostsInput, + DescribeMacHostsOutput, + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + DescribeManagedPrefixListsInput, + DescribeManagedPrefixListsOutput, + DescribeMovingAddressesInput, + DescribeMovingAddressesOutput, + DescribeNatGatewaysInput, + DescribeNatGatewaysOutput, + DescribeNetworkAclsInput, + DescribeNetworkAclsOutput, + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + DescribeNetworkInterfacesInput, + DescribeNetworkInterfacesOutput, + DescribeOutpostLagsInput, + DescribeOutpostLagsOutput, + DescribePlacementGroupsInput, + DescribePlacementGroupsOutput, + DescribePrefixListsInput, + DescribePrefixListsOutput, + DescribePrincipalIdFormatInput, + DescribePrincipalIdFormatOutput, + DescribePublicIpv4PoolsInput, + DescribePublicIpv4PoolsOutput, + DescribeRegionsInput, + DescribeRegionsOutput, + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + DescribeReservedInstancesInput, + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + DescribeReservedInstancesOutput, + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + DescribeRouteServerPeersInput, + DescribeRouteServerPeersOutput, + DescribeRouteServersInput, + DescribeRouteServersOutput, + DescribeRouteTablesInput, + DescribeRouteTablesOutput, + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + DescribeScheduledInstancesInput, + DescribeScheduledInstancesOutput, + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + DescribeSecondaryNetworksInput, + DescribeSecondaryNetworksOutput, + DescribeSecondarySubnetsInput, + DescribeSecondarySubnetsOutput, + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + DescribeSecurityGroupRulesInput, + DescribeSecurityGroupRulesOutput, + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + DescribeSecurityGroupsInput, + DescribeSecurityGroupsOutput, + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + DescribeSnapshotAttributeInput, + DescribeSnapshotAttributeOutput, + DescribeSnapshotTierStatusInput, + DescribeSnapshotTierStatusOutput, + DescribeSnapshotsInput, + DescribeSnapshotsOutput, + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + DescribeSpotFleetInstancesInput, + DescribeSpotFleetInstancesOutput, + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + DescribeSpotFleetRequestsInput, + DescribeSpotFleetRequestsOutput, + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + DescribeSpotPriceHistoryInput, + DescribeSpotPriceHistoryOutput, + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + DescribeStoreImageTasksInput, + DescribeStoreImageTasksOutput, + DescribeSubnetsInput, + DescribeSubnetsOutput, + DescribeTagsInput, + DescribeTagsOutput, + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + DescribeTransitGatewaysInput, + DescribeTransitGatewaysOutput, + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + DescribeVolumeAttributeInput, + DescribeVolumeAttributeOutput, + DescribeVolumeStatusInput, + DescribeVolumeStatusOutput, + DescribeVolumesInput, + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + DescribeVolumesOutput, + DescribeVpcAttributeInput, + DescribeVpcAttributeOutput, + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + DescribeVpcClassicLinkInput, + DescribeVpcClassicLinkOutput, + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + DescribeVpcEndpointsInput, + DescribeVpcEndpointsOutput, + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + DescribeVpcsInput, + DescribeVpcsOutput, + DescribeVpnConcentratorsInput, + DescribeVpnConcentratorsOutput, + DescribeVpnConnectionsInput, + DescribeVpnConnectionsOutput, + DescribeVpnGatewaysInput, + DescribeVpnGatewaysOutput, + DetachClassicLinkVpcInput, + DetachClassicLinkVpcOutput, + DetachImageWatermarkInput, + DetachImageWatermarkOutput, + DetachInternetGatewayInput, + DetachInternetGatewayOutput, + DetachNetworkInterfaceInput, + DetachNetworkInterfaceOutput, + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + DetachVolumeInput, + DetachVolumeOutput, + DetachVpnGatewayInput, + DetachVpnGatewayOutput, + DisableAddressTransferInput, + DisableAddressTransferOutput, + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + DisableCapacityManagerInput, + DisableCapacityManagerOutput, + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + DisableFastLaunchInput, + DisableFastLaunchOutput, + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + DisableImageDeprecationInput, + DisableImageDeprecationOutput, + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + DisableImageInput, + DisableImageOutput, + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + DisableIpamPolicyInput, + DisableIpamPolicyOutput, + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + DisableSerialConsoleAccessInput, + DisableSerialConsoleAccessOutput, + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + DisableVgwRoutePropagationInput, + DisableVgwRoutePropagationOutput, + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + DisableVpcClassicLinkInput, + DisableVpcClassicLinkOutput, + DisassociateAddressInput, + DisassociateAddressOutput, + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + DisassociateIpamByoasnInput, + DisassociateIpamByoasnOutput, + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + DisassociateRouteServerInput, + DisassociateRouteServerOutput, + DisassociateRouteTableInput, + DisassociateRouteTableOutput, + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + DisassociateTrunkInterfaceInput, + DisassociateTrunkInterfaceOutput, + DisassociateVpcCidrBlockInput, + DisassociateVpcCidrBlockOutput, + EnableAddressTransferInput, + EnableAddressTransferOutput, + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + EnableCapacityManagerInput, + EnableCapacityManagerOutput, + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + EnableFastLaunchInput, + EnableFastLaunchOutput, + EnableFastSnapshotRestoresInput, + EnableFastSnapshotRestoresOutput, + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + EnableImageDeprecationInput, + EnableImageDeprecationOutput, + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + EnableImageInput, + EnableImageOutput, + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + EnableIpamPolicyInput, + EnableIpamPolicyOutput, + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + EnableSerialConsoleAccessInput, + EnableSerialConsoleAccessOutput, + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + EnableVgwRoutePropagationInput, + EnableVgwRoutePropagationOutput, + EnableVolumeIOInput, + EnableVolumeIOOutput, + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + EnableVpcClassicLinkInput, + EnableVpcClassicLinkOutput, + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + ExportImageInput, + ExportImageOutput, + ExportTransitGatewayRoutesInput, + ExportTransitGatewayRoutesOutput, + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + GetActiveVpnTunnelStatusInput, + GetActiveVpnTunnelStatusOutput, + GetAllowedImagesSettingsInput, + GetAllowedImagesSettingsOutput, + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + GetAssociatedIpv6PoolCidrsInput, + GetAssociatedIpv6PoolCidrsOutput, + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + GetCoipPoolUsageInput, + GetCoipPoolUsageOutput, + GetConsoleOutputInput, + GetConsoleOutputOutput, + GetConsoleScreenshotInput, + GetConsoleScreenshotOutput, + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + GetEbsDefaultKmsKeyIdInput, + GetEbsDefaultKmsKeyIdOutput, + GetEbsEncryptionByDefaultInput, + GetEbsEncryptionByDefaultOutput, + GetEnabledIpamPolicyInput, + GetEnabledIpamPolicyOutput, + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + GetImageAncestryInput, + GetImageAncestryOutput, + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + GetImageFindingsInput, + GetImageFindingsOutput, + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + GetInstanceTpmEkPubInput, + GetInstanceTpmEkPubOutput, + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + GetInstanceUefiDataInput, + GetInstanceUefiDataOutput, + GetIpamAddressHistoryInput, + GetIpamAddressHistoryOutput, + GetIpamDiscoveredAccountsInput, + GetIpamDiscoveredAccountsOutput, + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + GetIpamDiscoveredRoutesInput, + GetIpamDiscoveredRoutesOutput, + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + GetIpamPoolAllocationsInput, + GetIpamPoolAllocationsOutput, + GetIpamPoolCidrsInput, + GetIpamPoolCidrsOutput, + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + GetIpamResourceCidrsInput, + GetIpamResourceCidrsOutput, + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + GetLaunchTemplateDataInput, + GetLaunchTemplateDataOutput, + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + GetPasswordDataInput, + GetPasswordDataOutput, + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + GetRouteServerAssociationsInput, + GetRouteServerAssociationsOutput, + GetRouteServerPropagationsInput, + GetRouteServerPropagationsOutput, + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + GetSecurityGroupsForVpcInput, + GetSecurityGroupsForVpcOutput, + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + GetSpotPlacementScoresInput, + GetSpotPlacementScoresOutput, + GetSubnetCidrReservationsInput, + GetSubnetCidrReservationsOutput, + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + ImportImageInput, + ImportImageOutput, + ImportInstanceInput, + ImportInstanceOutput, + ImportKeyPairInput, + ImportKeyPairOutput, + ImportSnapshotInput, + ImportSnapshotOutput, + ImportVolumeInput, + ImportVolumeOutput, + ListImagesInRecycleBinInput, + ListImagesInRecycleBinOutput, + ListSnapshotsInRecycleBinInput, + ListSnapshotsInRecycleBinOutput, + ListVolumesInRecycleBinInput, + ListVolumesInRecycleBinOutput, + LockSnapshotInput, + LockSnapshotOutput, + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + ModifyAddressAttributeInput, + ModifyAddressAttributeOutput, + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + ModifyCapacityReservationInput, + ModifyCapacityReservationOutput, + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + ModifyClientVpnEndpointInput, + ModifyClientVpnEndpointOutput, + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + ModifyEbsDefaultKmsKeyIdInput, + ModifyEbsDefaultKmsKeyIdOutput, + ModifyFleetInput, + ModifyFleetOutput, + ModifyFpgaImageAttributeInput, + ModifyFpgaImageAttributeOutput, + ModifyHostsInput, + ModifyHostsOutput, + ModifyIdFormatInput, + ModifyIdFormatOutput, + ModifyIdentityIdFormatInput, + ModifyIdentityIdFormatOutput, + ModifyImageAttributeInput, + ModifyImageAttributeOutput, + ModifyInstanceAttributeInput, + ModifyInstanceAttributeOutput, + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + ModifyInstanceCpuOptionsInput, + ModifyInstanceCpuOptionsOutput, + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + ModifyInstanceEventWindowInput, + ModifyInstanceEventWindowOutput, + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + ModifyInstancePlacementInput, + ModifyInstancePlacementOutput, + ModifyIpamInput, + ModifyIpamOutput, + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + ModifyIpamPoolAllocationInput, + ModifyIpamPoolAllocationOutput, + ModifyIpamPoolInput, + ModifyIpamPoolOutput, + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + ModifyIpamResourceCidrInput, + ModifyIpamResourceCidrOutput, + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + ModifyIpamScopeInput, + ModifyIpamScopeOutput, + ModifyLaunchTemplateInput, + ModifyLaunchTemplateOutput, + ModifyLocalGatewayRouteInput, + ModifyLocalGatewayRouteOutput, + ModifyManagedPrefixListInput, + ModifyManagedPrefixListOutput, + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + ModifyReservedInstancesInput, + ModifyReservedInstancesOutput, + ModifyRouteServerInput, + ModifyRouteServerOutput, + ModifySecurityGroupRulesInput, + ModifySecurityGroupRulesOutput, + ModifySnapshotAttributeInput, + ModifySnapshotAttributeOutput, + ModifySnapshotTierInput, + ModifySnapshotTierOutput, + ModifySpotFleetRequestInput, + ModifySpotFleetRequestOutput, + ModifySubnetAttributeInput, + ModifySubnetAttributeOutput, + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + ModifyTrafficMirrorSessionInput, + ModifyTrafficMirrorSessionOutput, + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + ModifyTransitGatewayInput, + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + ModifyTransitGatewayOutput, + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + ModifyVerifiedAccessGroupInput, + ModifyVerifiedAccessGroupOutput, + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + ModifyVerifiedAccessInstanceOutput, + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + ModifyVolumeAttributeInput, + ModifyVolumeAttributeOutput, + ModifyVolumeInput, + ModifyVolumeOutput, + ModifyVpcAttributeInput, + ModifyVpcAttributeOutput, + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + ModifyVpcEncryptionControlInput, + ModifyVpcEncryptionControlOutput, + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + ModifyVpcEndpointInput, + ModifyVpcEndpointOutput, + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + ModifyVpcTenancyInput, + ModifyVpcTenancyOutput, + ModifyVpnConnectionInput, + ModifyVpnConnectionOptionsInput, + ModifyVpnConnectionOptionsOutput, + ModifyVpnConnectionOutput, + ModifyVpnTunnelCertificateInput, + ModifyVpnTunnelCertificateOutput, + ModifyVpnTunnelOptionsInput, + ModifyVpnTunnelOptionsOutput, + MonitorInstancesInput, + MonitorInstancesOutput, + MoveAddressToVpcInput, + MoveAddressToVpcOutput, + MoveByoipCidrToIpamInput, + MoveByoipCidrToIpamOutput, + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + ProvisionByoipCidrInput, + ProvisionByoipCidrOutput, + ProvisionIpamByoasnInput, + ProvisionIpamByoasnOutput, + ProvisionIpamPoolCidrInput, + ProvisionIpamPoolCidrOutput, + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + PurchaseCapacityBlockInput, + PurchaseCapacityBlockOutput, + PurchaseHostReservationInput, + PurchaseHostReservationOutput, + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + PurchaseScheduledInstancesInput, + PurchaseScheduledInstancesOutput, + RebootInstancesInput, + RebootInstancesOutput, + RegisterImageInput, + RegisterImageOutput, + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + RejectVpcPeeringConnectionInput, + RejectVpcPeeringConnectionOutput, + ReleaseAddressInput, + ReleaseAddressOutput, + ReleaseHostsInput, + ReleaseHostsOutput, + ReleaseIpamPoolAllocationInput, + ReleaseIpamPoolAllocationOutput, + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + ReplaceNetworkAclEntryInput, + ReplaceNetworkAclEntryOutput, + ReplaceRouteInput, + ReplaceRouteOutput, + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + ReplaceTransitGatewayRouteInput, + ReplaceTransitGatewayRouteOutput, + ReplaceVpnTunnelInput, + ReplaceVpnTunnelOutput, + ReportInstanceStatusInput, + ReportInstanceStatusOutput, + RequestSpotFleetInput, + RequestSpotFleetOutput, + RequestSpotInstancesInput, + RequestSpotInstancesOutput, + ResetAddressAttributeInput, + ResetAddressAttributeOutput, + ResetEbsDefaultKmsKeyIdInput, + ResetEbsDefaultKmsKeyIdOutput, + ResetFpgaImageAttributeInput, + ResetFpgaImageAttributeOutput, + ResetImageAttributeInput, + ResetImageAttributeOutput, + ResetInstanceAttributeInput, + ResetInstanceAttributeOutput, + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + ResetSnapshotAttributeInput, + ResetSnapshotAttributeOutput, + RestoreAddressToClassicInput, + RestoreAddressToClassicOutput, + RestoreImageFromRecycleBinInput, + RestoreImageFromRecycleBinOutput, + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + RestoreSnapshotTierInput, + RestoreSnapshotTierOutput, + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + RevokeClientVpnIngressInput, + RevokeClientVpnIngressOutput, + RevokeSecurityGroupEgressInput, + RevokeSecurityGroupEgressOutput, + RevokeSecurityGroupIngressInput, + RevokeSecurityGroupIngressOutput, + RunInstancesInput, + RunInstancesOutput, + RunScheduledInstancesInput, + RunScheduledInstancesOutput, + SearchLocalGatewayRoutesInput, + SearchLocalGatewayRoutesOutput, + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + SearchTransitGatewayRoutesInput, + SearchTransitGatewayRoutesOutput, + SendDiagnosticInterruptInput, + SendDiagnosticInterruptOutput, + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + StartInstancesInput, + StartInstancesOutput, + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + StopInstancesInput, + StopInstancesOutput, + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + TerminateInstancesInput, + TerminateInstancesOutput, + UnassignIpv6AddressesInput, + UnassignIpv6AddressesOutput, + UnassignPrivateIpAddressesInput, + UnassignPrivateIpAddressesOutput, + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + UnlockSnapshotInput, + UnlockSnapshotOutput, + UnmonitorInstancesInput, + UnmonitorInstancesOutput, + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + WithdrawByoipCidrInput, + WithdrawByoipCidrOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AcceptAddressTransferInput, AcceptAddressTransferOutput, Any, Any], + Interceptor[ + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + Any, + Any, + ], + Interceptor[ + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[ + AcceptVpcPeeringConnectionInput, AcceptVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[AdvertiseByoipCidrInput, AdvertiseByoipCidrOutput, Any, Any], + Interceptor[AllocateAddressInput, AllocateAddressOutput, Any, Any], + Interceptor[AllocateHostsInput, AllocateHostsOutput, Any, Any], + Interceptor[AllocateIpamPoolCidrInput, AllocateIpamPoolCidrOutput, Any, Any], + Interceptor[ + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[AssignIpv6AddressesInput, AssignIpv6AddressesOutput, Any, Any], + Interceptor[ + AssignPrivateIpAddressesInput, AssignPrivateIpAddressesOutput, Any, Any + ], + Interceptor[ + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[AssociateAddressInput, AssociateAddressOutput, Any, Any], + Interceptor[ + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + Any, + Any, + ], + Interceptor[ + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[AssociateDhcpOptionsInput, AssociateDhcpOptionsOutput, Any, Any], + Interceptor[ + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + Any, + Any, + ], + Interceptor[ + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + Any, + Any, + ], + Interceptor[ + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + Any, + Any, + ], + Interceptor[AssociateIpamByoasnInput, AssociateIpamByoasnOutput, Any, Any], + Interceptor[ + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + AssociateNatGatewayAddressInput, AssociateNatGatewayAddressOutput, Any, Any + ], + Interceptor[AssociateRouteServerInput, AssociateRouteServerOutput, Any, Any], + Interceptor[AssociateRouteTableInput, AssociateRouteTableOutput, Any, Any], + Interceptor[ + AssociateSecurityGroupVpcInput, AssociateSecurityGroupVpcOutput, Any, Any + ], + Interceptor[ + AssociateSubnetCidrBlockInput, AssociateSubnetCidrBlockOutput, Any, Any + ], + Interceptor[ + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + AssociateTrunkInterfaceInput, AssociateTrunkInterfaceOutput, Any, Any + ], + Interceptor[AssociateVpcCidrBlockInput, AssociateVpcCidrBlockOutput, Any, Any], + Interceptor[AttachClassicLinkVpcInput, AttachClassicLinkVpcOutput, Any, Any], + Interceptor[AttachImageWatermarkInput, AttachImageWatermarkOutput, Any, Any], + Interceptor[AttachInternetGatewayInput, AttachInternetGatewayOutput, Any, Any], + Interceptor[ + AttachNetworkInterfaceInput, AttachNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[AttachVolumeInput, AttachVolumeOutput, Any, Any], + Interceptor[AttachVpnGatewayInput, AttachVpnGatewayOutput, Any, Any], + Interceptor[ + AuthorizeClientVpnIngressInput, AuthorizeClientVpnIngressOutput, Any, Any + ], + Interceptor[ + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + Any, + Any, + ], + Interceptor[ + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[ + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + Any, + Any, + ], + Interceptor[BundleInstanceInput, BundleInstanceOutput, Any, Any], + Interceptor[CancelBundleTaskInput, CancelBundleTaskOutput, Any, Any], + Interceptor[ + CancelCapacityReservationInput, CancelCapacityReservationOutput, Any, Any + ], + Interceptor[ + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + Any, + Any, + ], + Interceptor[CancelConversionTaskInput, CancelConversionTaskOutput, Any, Any], + Interceptor[ + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + Any, + Any, + ], + Interceptor[CancelExportTaskInput, CancelExportTaskOutput, Any, Any], + Interceptor[ + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + Any, + Any, + ], + Interceptor[CancelImportTaskInput, CancelImportTaskOutput, Any, Any], + Interceptor[ + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + Any, + Any, + ], + Interceptor[ + CancelSpotFleetRequestsInput, CancelSpotFleetRequestsOutput, Any, Any + ], + Interceptor[ + CancelSpotInstanceRequestsInput, CancelSpotInstanceRequestsOutput, Any, Any + ], + Interceptor[ + ConfirmProductInstanceInput, ConfirmProductInstanceOutput, Any, Any + ], + Interceptor[CopyFpgaImageInput, CopyFpgaImageOutput, Any, Any], + Interceptor[CopyImageInput, CopyImageOutput, Any, Any], + Interceptor[CopySnapshotInput, CopySnapshotOutput, Any, Any], + Interceptor[CopyVolumesInput, CopyVolumesOutput, Any, Any], + Interceptor[ + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationInput, CreateCapacityReservationOutput, Any, Any + ], + Interceptor[ + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + Any, + Any, + ], + Interceptor[CreateCarrierGatewayInput, CreateCarrierGatewayOutput, Any, Any], + Interceptor[ + CreateClientVpnEndpointInput, CreateClientVpnEndpointOutput, Any, Any + ], + Interceptor[CreateClientVpnRouteInput, CreateClientVpnRouteOutput, Any, Any], + Interceptor[CreateCoipCidrInput, CreateCoipCidrOutput, Any, Any], + Interceptor[CreateCoipPoolInput, CreateCoipPoolOutput, Any, Any], + Interceptor[CreateCustomerGatewayInput, CreateCustomerGatewayOutput, Any, Any], + Interceptor[CreateDefaultSubnetInput, CreateDefaultSubnetOutput, Any, Any], + Interceptor[CreateDefaultVpcInput, CreateDefaultVpcOutput, Any, Any], + Interceptor[ + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + Any, + Any, + ], + Interceptor[CreateDhcpOptionsInput, CreateDhcpOptionsOutput, Any, Any], + Interceptor[ + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + Any, + Any, + ], + Interceptor[CreateFleetInput, CreateFleetOutput, Any, Any], + Interceptor[CreateFlowLogsInput, CreateFlowLogsOutput, Any, Any], + Interceptor[CreateFpgaImageInput, CreateFpgaImageOutput, Any, Any], + Interceptor[CreateImageInput, CreateImageOutput, Any, Any], + Interceptor[ + CreateImageUsageReportInput, CreateImageUsageReportOutput, Any, Any + ], + Interceptor[ + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + CreateInstanceEventWindowInput, CreateInstanceEventWindowOutput, Any, Any + ], + Interceptor[ + CreateInstanceExportTaskInput, CreateInstanceExportTaskOutput, Any, Any + ], + Interceptor[CreateInternetGatewayInput, CreateInternetGatewayOutput, Any, Any], + Interceptor[ + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + Any, + Any, + ], + Interceptor[CreateIpamInput, CreateIpamOutput, Any, Any], + Interceptor[ + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[CreateIpamPolicyInput, CreateIpamPolicyOutput, Any, Any], + Interceptor[CreateIpamPoolInput, CreateIpamPoolOutput, Any, Any], + Interceptor[ + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[CreateIpamScopeInput, CreateIpamScopeOutput, Any, Any], + Interceptor[CreateKeyPairInput, CreateKeyPairOutput, Any, Any], + Interceptor[CreateLaunchTemplateInput, CreateLaunchTemplateOutput, Any, Any], + Interceptor[ + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteInput, CreateLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + Any, + Any, + ], + Interceptor[ + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + Any, + Any, + ], + Interceptor[ + CreateManagedPrefixListInput, CreateManagedPrefixListOutput, Any, Any + ], + Interceptor[CreateNatGatewayInput, CreateNatGatewayOutput, Any, Any], + Interceptor[CreateNetworkAclInput, CreateNetworkAclOutput, Any, Any], + Interceptor[CreateNetworkAclEntryInput, CreateNetworkAclEntryOutput, Any, Any], + Interceptor[ + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + Any, + Any, + ], + Interceptor[ + CreateNetworkInsightsPathInput, CreateNetworkInsightsPathOutput, Any, Any + ], + Interceptor[ + CreateNetworkInterfaceInput, CreateNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + Any, + Any, + ], + Interceptor[CreatePlacementGroupInput, CreatePlacementGroupOutput, Any, Any], + Interceptor[CreatePublicIpv4PoolInput, CreatePublicIpv4PoolOutput, Any, Any], + Interceptor[ + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + Any, + Any, + ], + Interceptor[ + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + Any, + Any, + ], + Interceptor[ + CreateRestoreImageTaskInput, CreateRestoreImageTaskOutput, Any, Any + ], + Interceptor[CreateRouteInput, CreateRouteOutput, Any, Any], + Interceptor[CreateRouteServerInput, CreateRouteServerOutput, Any, Any], + Interceptor[ + CreateRouteServerEndpointInput, CreateRouteServerEndpointOutput, Any, Any + ], + Interceptor[CreateRouteServerPeerInput, CreateRouteServerPeerOutput, Any, Any], + Interceptor[CreateRouteTableInput, CreateRouteTableOutput, Any, Any], + Interceptor[ + CreateSecondaryNetworkInput, CreateSecondaryNetworkOutput, Any, Any + ], + Interceptor[CreateSecondarySubnetInput, CreateSecondarySubnetOutput, Any, Any], + Interceptor[CreateSecurityGroupInput, CreateSecurityGroupOutput, Any, Any], + Interceptor[CreateSnapshotInput, CreateSnapshotOutput, Any, Any], + Interceptor[CreateSnapshotsInput, CreateSnapshotsOutput, Any, Any], + Interceptor[ + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[CreateStoreImageTaskInput, CreateStoreImageTaskOutput, Any, Any], + Interceptor[CreateSubnetInput, CreateSubnetOutput, Any, Any], + Interceptor[ + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + Any, + Any, + ], + Interceptor[CreateTagsInput, CreateTagsOutput, Any, Any], + Interceptor[ + CreateTrafficMirrorFilterInput, CreateTrafficMirrorFilterOutput, Any, Any + ], + Interceptor[ + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + CreateTrafficMirrorSessionInput, CreateTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ + CreateTrafficMirrorTargetInput, CreateTrafficMirrorTargetOutput, Any, Any + ], + Interceptor[CreateTransitGatewayInput, CreateTransitGatewayOutput, Any, Any], + Interceptor[ + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayRouteInput, CreateTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessGroupInput, CreateVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[CreateVolumeInput, CreateVolumeOutput, Any, Any], + Interceptor[CreateVpcInput, CreateVpcOutput, Any, Any], + Interceptor[ + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcEncryptionControlInput, CreateVpcEncryptionControlOutput, Any, Any + ], + Interceptor[CreateVpcEndpointInput, CreateVpcEndpointOutput, Any, Any], + Interceptor[ + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcPeeringConnectionInput, CreateVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[CreateVpnConcentratorInput, CreateVpnConcentratorOutput, Any, Any], + Interceptor[CreateVpnConnectionInput, CreateVpnConnectionOutput, Any, Any], + Interceptor[ + CreateVpnConnectionRouteInput, CreateVpnConnectionRouteOutput, Any, Any + ], + Interceptor[CreateVpnGatewayInput, CreateVpnGatewayOutput, Any, Any], + Interceptor[ + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + Any, + Any, + ], + Interceptor[DeleteCarrierGatewayInput, DeleteCarrierGatewayOutput, Any, Any], + Interceptor[ + DeleteClientVpnEndpointInput, DeleteClientVpnEndpointOutput, Any, Any + ], + Interceptor[ + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteClientVpnRouteInput, DeleteClientVpnRouteOutput, Any, Any], + Interceptor[DeleteCoipCidrInput, DeleteCoipCidrOutput, Any, Any], + Interceptor[DeleteCoipPoolInput, DeleteCoipPoolOutput, Any, Any], + Interceptor[DeleteCustomerGatewayInput, DeleteCustomerGatewayOutput, Any, Any], + Interceptor[DeleteDhcpOptionsInput, DeleteDhcpOptionsOutput, Any, Any], + Interceptor[ + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + Any, + Any, + ], + Interceptor[DeleteFleetsInput, DeleteFleetsOutput, Any, Any], + Interceptor[DeleteFlowLogsInput, DeleteFlowLogsOutput, Any, Any], + Interceptor[DeleteFpgaImageInput, DeleteFpgaImageOutput, Any, Any], + Interceptor[ + DeleteImageUsageReportInput, DeleteImageUsageReportOutput, Any, Any + ], + Interceptor[ + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + DeleteInstanceEventWindowInput, DeleteInstanceEventWindowOutput, Any, Any + ], + Interceptor[DeleteInternetGatewayInput, DeleteInternetGatewayOutput, Any, Any], + Interceptor[DeleteIpamInput, DeleteIpamOutput, Any, Any], + Interceptor[ + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[DeleteIpamPolicyInput, DeleteIpamPolicyOutput, Any, Any], + Interceptor[DeleteIpamPoolInput, DeleteIpamPoolOutput, Any, Any], + Interceptor[ + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[DeleteIpamScopeInput, DeleteIpamScopeOutput, Any, Any], + Interceptor[DeleteKeyPairInput, DeleteKeyPairOutput, Any, Any], + Interceptor[DeleteLaunchTemplateInput, DeleteLaunchTemplateOutput, Any, Any], + Interceptor[ + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteInput, DeleteLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + Any, + Any, + ], + Interceptor[ + DeleteManagedPrefixListInput, DeleteManagedPrefixListOutput, Any, Any + ], + Interceptor[DeleteNatGatewayInput, DeleteNatGatewayOutput, Any, Any], + Interceptor[DeleteNetworkAclInput, DeleteNetworkAclOutput, Any, Any], + Interceptor[DeleteNetworkAclEntryInput, DeleteNetworkAclEntryOutput, Any, Any], + Interceptor[ + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsPathInput, DeleteNetworkInsightsPathOutput, Any, Any + ], + Interceptor[ + DeleteNetworkInterfaceInput, DeleteNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + Any, + Any, + ], + Interceptor[DeletePlacementGroupInput, DeletePlacementGroupOutput, Any, Any], + Interceptor[DeletePublicIpv4PoolInput, DeletePublicIpv4PoolOutput, Any, Any], + Interceptor[ + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + Any, + Any, + ], + Interceptor[DeleteRouteInput, DeleteRouteOutput, Any, Any], + Interceptor[DeleteRouteServerInput, DeleteRouteServerOutput, Any, Any], + Interceptor[ + DeleteRouteServerEndpointInput, DeleteRouteServerEndpointOutput, Any, Any + ], + Interceptor[DeleteRouteServerPeerInput, DeleteRouteServerPeerOutput, Any, Any], + Interceptor[DeleteRouteTableInput, DeleteRouteTableOutput, Any, Any], + Interceptor[ + DeleteSecondaryNetworkInput, DeleteSecondaryNetworkOutput, Any, Any + ], + Interceptor[DeleteSecondarySubnetInput, DeleteSecondarySubnetOutput, Any, Any], + Interceptor[DeleteSecurityGroupInput, DeleteSecurityGroupOutput, Any, Any], + Interceptor[DeleteSnapshotInput, DeleteSnapshotOutput, Any, Any], + Interceptor[ + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[DeleteSubnetInput, DeleteSubnetOutput, Any, Any], + Interceptor[ + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + Any, + Any, + ], + Interceptor[DeleteTagsInput, DeleteTagsOutput, Any, Any], + Interceptor[ + DeleteTrafficMirrorFilterInput, DeleteTrafficMirrorFilterOutput, Any, Any + ], + Interceptor[ + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + DeleteTrafficMirrorSessionInput, DeleteTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ + DeleteTrafficMirrorTargetInput, DeleteTrafficMirrorTargetOutput, Any, Any + ], + Interceptor[DeleteTransitGatewayInput, DeleteTransitGatewayOutput, Any, Any], + Interceptor[ + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayRouteInput, DeleteTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessGroupInput, DeleteVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[DeleteVolumeInput, DeleteVolumeOutput, Any, Any], + Interceptor[DeleteVpcInput, DeleteVpcOutput, Any, Any], + Interceptor[ + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + DeleteVpcEncryptionControlInput, DeleteVpcEncryptionControlOutput, Any, Any + ], + Interceptor[ + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + Any, + Any, + ], + Interceptor[DeleteVpcEndpointsInput, DeleteVpcEndpointsOutput, Any, Any], + Interceptor[ + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DeleteVpcPeeringConnectionInput, DeleteVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[DeleteVpnConcentratorInput, DeleteVpnConcentratorOutput, Any, Any], + Interceptor[DeleteVpnConnectionInput, DeleteVpnConnectionOutput, Any, Any], + Interceptor[ + DeleteVpnConnectionRouteInput, DeleteVpnConnectionRouteOutput, Any, Any + ], + Interceptor[DeleteVpnGatewayInput, DeleteVpnGatewayOutput, Any, Any], + Interceptor[DeprovisionByoipCidrInput, DeprovisionByoipCidrOutput, Any, Any], + Interceptor[DeprovisionIpamByoasnInput, DeprovisionIpamByoasnOutput, Any, Any], + Interceptor[ + DeprovisionIpamPoolCidrInput, DeprovisionIpamPoolCidrOutput, Any, Any + ], + Interceptor[ + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + Any, + Any, + ], + Interceptor[DeregisterImageInput, DeregisterImageOutput, Any, Any], + Interceptor[ + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + Any, + Any, + ], + Interceptor[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput, Any, Any + ], + Interceptor[ + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + Any, + Any, + ], + Interceptor[DescribeAddressesInput, DescribeAddressesOutput, Any, Any], + Interceptor[ + DescribeAddressesAttributeInput, DescribeAddressesAttributeOutput, Any, Any + ], + Interceptor[ + DescribeAddressTransfersInput, DescribeAddressTransfersOutput, Any, Any + ], + Interceptor[ + DescribeAggregateIdFormatInput, DescribeAggregateIdFormatOutput, Any, Any + ], + Interceptor[ + DescribeApplicationStatusInput, DescribeApplicationStatusOutput, Any, Any + ], + Interceptor[ + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + Any, + Any, + ], + Interceptor[ + DescribeAvailabilityZonesInput, DescribeAvailabilityZonesOutput, Any, Any + ], + Interceptor[ + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + Any, + Any, + ], + Interceptor[DescribeBundleTasksInput, DescribeBundleTasksOutput, Any, Any], + Interceptor[DescribeByoipCidrsInput, DescribeByoipCidrsOutput, Any, Any], + Interceptor[ + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlocksInput, DescribeCapacityBlocksOutput, Any, Any + ], + Interceptor[ + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + Any, + Any, + ], + Interceptor[ + DescribeCarrierGatewaysInput, DescribeCarrierGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnEndpointsInput, DescribeClientVpnEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeClientVpnRoutesInput, DescribeClientVpnRoutesOutput, Any, Any + ], + Interceptor[ + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + Any, + Any, + ], + Interceptor[DescribeCoipPoolsInput, DescribeCoipPoolsOutput, Any, Any], + Interceptor[ + DescribeConversionTasksInput, DescribeConversionTasksOutput, Any, Any + ], + Interceptor[ + DescribeCustomerGatewaysInput, DescribeCustomerGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + Any, + Any, + ], + Interceptor[DescribeDhcpOptionsInput, DescribeDhcpOptionsOutput, Any, Any], + Interceptor[ + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + Any, + Any, + ], + Interceptor[DescribeElasticGpusInput, DescribeElasticGpusOutput, Any, Any], + Interceptor[ + DescribeExportImageTasksInput, DescribeExportImageTasksOutput, Any, Any + ], + Interceptor[DescribeExportTasksInput, DescribeExportTasksOutput, Any, Any], + Interceptor[ + DescribeFastLaunchImagesInput, DescribeFastLaunchImagesOutput, Any, Any + ], + Interceptor[ + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + Any, + Any, + ], + Interceptor[DescribeFleetHistoryInput, DescribeFleetHistoryOutput, Any, Any], + Interceptor[ + DescribeFleetInstancesInput, DescribeFleetInstancesOutput, Any, Any + ], + Interceptor[DescribeFleetsInput, DescribeFleetsOutput, Any, Any], + Interceptor[DescribeFlowLogsInput, DescribeFlowLogsOutput, Any, Any], + Interceptor[ + DescribeFpgaImageAttributeInput, DescribeFpgaImageAttributeOutput, Any, Any + ], + Interceptor[DescribeFpgaImagesInput, DescribeFpgaImagesOutput, Any, Any], + Interceptor[ + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeHostReservationsInput, DescribeHostReservationsOutput, Any, Any + ], + Interceptor[DescribeHostsInput, DescribeHostsOutput, Any, Any], + Interceptor[ + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeIdentityIdFormatInput, DescribeIdentityIdFormatOutput, Any, Any + ], + Interceptor[DescribeIdFormatInput, DescribeIdFormatOutput, Any, Any], + Interceptor[ + DescribeImageAttributeInput, DescribeImageAttributeOutput, Any, Any + ], + Interceptor[ + DescribeImageReferencesInput, DescribeImageReferencesOutput, Any, Any + ], + Interceptor[DescribeImagesInput, DescribeImagesOutput, Any, Any], + Interceptor[ + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + Any, + Any, + ], + Interceptor[ + DescribeImageUsageReportsInput, DescribeImageUsageReportsOutput, Any, Any + ], + Interceptor[ + DescribeImportImageTasksInput, DescribeImportImageTasksOutput, Any, Any + ], + Interceptor[ + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceAttributeInput, DescribeInstanceAttributeOutput, Any, Any + ], + Interceptor[ + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + Any, + Any, + ], + Interceptor[DescribeInstancesInput, DescribeInstancesOutput, Any, Any], + Interceptor[ + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceStatusInput, DescribeInstanceStatusOutput, Any, Any + ], + Interceptor[ + DescribeInstanceTopologyInput, DescribeInstanceTopologyOutput, Any, Any + ], + Interceptor[ + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + Any, + Any, + ], + Interceptor[DescribeInstanceTypesInput, DescribeInstanceTypesOutput, Any, Any], + Interceptor[ + DescribeInternetGatewaysInput, DescribeInternetGatewaysOutput, Any, Any + ], + Interceptor[DescribeIpamByoasnInput, DescribeIpamByoasnOutput, Any, Any], + Interceptor[ + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamPoliciesInput, DescribeIpamPoliciesOutput, Any, Any], + Interceptor[ + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamPoolsInput, DescribeIpamPoolsOutput, Any, Any], + Interceptor[ + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamsInput, DescribeIpamsOutput, Any, Any], + Interceptor[DescribeIpamScopesInput, DescribeIpamScopesOutput, Any, Any], + Interceptor[DescribeIpv6PoolsInput, DescribeIpv6PoolsOutput, Any, Any], + Interceptor[DescribeKeyPairsInput, DescribeKeyPairsOutput, Any, Any], + Interceptor[ + DescribeLaunchTemplatesInput, DescribeLaunchTemplatesOutput, Any, Any + ], + Interceptor[ + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeLocalGatewaysInput, DescribeLocalGatewaysOutput, Any, Any], + Interceptor[ + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeLockedSnapshotsInput, DescribeLockedSnapshotsOutput, Any, Any + ], + Interceptor[DescribeMacHostsInput, DescribeMacHostsOutput, Any, Any], + Interceptor[ + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeManagedPrefixListsInput, DescribeManagedPrefixListsOutput, Any, Any + ], + Interceptor[ + DescribeMovingAddressesInput, DescribeMovingAddressesOutput, Any, Any + ], + Interceptor[DescribeNatGatewaysInput, DescribeNatGatewaysOutput, Any, Any], + Interceptor[DescribeNetworkAclsInput, DescribeNetworkAclsOutput, Any, Any], + Interceptor[ + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfacesInput, DescribeNetworkInterfacesOutput, Any, Any + ], + Interceptor[DescribeOutpostLagsInput, DescribeOutpostLagsOutput, Any, Any], + Interceptor[ + DescribePlacementGroupsInput, DescribePlacementGroupsOutput, Any, Any + ], + Interceptor[DescribePrefixListsInput, DescribePrefixListsOutput, Any, Any], + Interceptor[ + DescribePrincipalIdFormatInput, DescribePrincipalIdFormatOutput, Any, Any + ], + Interceptor[ + DescribePublicIpv4PoolsInput, DescribePublicIpv4PoolsOutput, Any, Any + ], + Interceptor[DescribeRegionsInput, DescribeRegionsOutput, Any, Any], + Interceptor[ + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesInput, DescribeReservedInstancesOutput, Any, Any + ], + Interceptor[ + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeRouteServerPeersInput, DescribeRouteServerPeersOutput, Any, Any + ], + Interceptor[DescribeRouteServersInput, DescribeRouteServersOutput, Any, Any], + Interceptor[DescribeRouteTablesInput, DescribeRouteTablesOutput, Any, Any], + Interceptor[ + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + Any, + Any, + ], + Interceptor[ + DescribeScheduledInstancesInput, DescribeScheduledInstancesOutput, Any, Any + ], + Interceptor[ + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSecondaryNetworksInput, DescribeSecondaryNetworksOutput, Any, Any + ], + Interceptor[ + DescribeSecondarySubnetsInput, DescribeSecondarySubnetsOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSecurityGroupRulesInput, DescribeSecurityGroupRulesOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupsInput, DescribeSecurityGroupsOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSnapshotAttributeInput, DescribeSnapshotAttributeOutput, Any, Any + ], + Interceptor[DescribeSnapshotsInput, DescribeSnapshotsOutput, Any, Any], + Interceptor[ + DescribeSnapshotTierStatusInput, DescribeSnapshotTierStatusOutput, Any, Any + ], + Interceptor[ + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotFleetInstancesInput, DescribeSpotFleetInstancesOutput, Any, Any + ], + Interceptor[ + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotFleetRequestsInput, DescribeSpotFleetRequestsOutput, Any, Any + ], + Interceptor[ + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotPriceHistoryInput, DescribeSpotPriceHistoryOutput, Any, Any + ], + Interceptor[ + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeStoreImageTasksInput, DescribeStoreImageTasksOutput, Any, Any + ], + Interceptor[DescribeSubnetsInput, DescribeSubnetsOutput, Any, Any], + Interceptor[DescribeTagsInput, DescribeTagsOutput, Any, Any], + Interceptor[ + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewaysInput, DescribeTransitGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + Any, + Any, + ], + Interceptor[ + DescribeVolumeAttributeInput, DescribeVolumeAttributeOutput, Any, Any + ], + Interceptor[DescribeVolumesInput, DescribeVolumesOutput, Any, Any], + Interceptor[ + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + Any, + Any, + ], + Interceptor[DescribeVolumeStatusInput, DescribeVolumeStatusOutput, Any, Any], + Interceptor[DescribeVpcAttributeInput, DescribeVpcAttributeOutput, Any, Any], + Interceptor[ + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcClassicLinkInput, DescribeVpcClassicLinkOutput, Any, Any + ], + Interceptor[ + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[DescribeVpcEndpointsInput, DescribeVpcEndpointsOutput, Any, Any], + Interceptor[ + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + Any, + Any, + ], + Interceptor[DescribeVpcsInput, DescribeVpcsOutput, Any, Any], + Interceptor[ + DescribeVpnConcentratorsInput, DescribeVpnConcentratorsOutput, Any, Any + ], + Interceptor[ + DescribeVpnConnectionsInput, DescribeVpnConnectionsOutput, Any, Any + ], + Interceptor[DescribeVpnGatewaysInput, DescribeVpnGatewaysOutput, Any, Any], + Interceptor[DetachClassicLinkVpcInput, DetachClassicLinkVpcOutput, Any, Any], + Interceptor[DetachImageWatermarkInput, DetachImageWatermarkOutput, Any, Any], + Interceptor[DetachInternetGatewayInput, DetachInternetGatewayOutput, Any, Any], + Interceptor[ + DetachNetworkInterfaceInput, DetachNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[DetachVolumeInput, DetachVolumeOutput, Any, Any], + Interceptor[DetachVpnGatewayInput, DetachVpnGatewayOutput, Any, Any], + Interceptor[ + DisableAddressTransferInput, DisableAddressTransferOutput, Any, Any + ], + Interceptor[ + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + Any, + Any, + ], + Interceptor[ + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DisableCapacityManagerInput, DisableCapacityManagerOutput, Any, Any + ], + Interceptor[ + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + Any, + Any, + ], + Interceptor[DisableFastLaunchInput, DisableFastLaunchOutput, Any, Any], + Interceptor[ + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + Any, + Any, + ], + Interceptor[DisableImageInput, DisableImageOutput, Any, Any], + Interceptor[ + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + DisableImageDeprecationInput, DisableImageDeprecationOutput, Any, Any + ], + Interceptor[ + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + Any, + Any, + ], + Interceptor[ + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + Any, + Any, + ], + Interceptor[ + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + Any, + Any, + ], + Interceptor[DisableIpamPolicyInput, DisableIpamPolicyOutput, Any, Any], + Interceptor[ + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + Any, + Any, + ], + Interceptor[ + DisableSerialConsoleAccessInput, DisableSerialConsoleAccessOutput, Any, Any + ], + Interceptor[ + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + Any, + Any, + ], + Interceptor[ + DisableVgwRoutePropagationInput, DisableVgwRoutePropagationOutput, Any, Any + ], + Interceptor[DisableVpcClassicLinkInput, DisableVpcClassicLinkOutput, Any, Any], + Interceptor[ + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[DisassociateAddressInput, DisassociateAddressOutput, Any, Any], + Interceptor[ + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + Any, + Any, + ], + Interceptor[ + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[ + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + Any, + Any, + ], + Interceptor[ + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + Any, + Any, + ], + Interceptor[ + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + Any, + Any, + ], + Interceptor[ + DisassociateIpamByoasnInput, DisassociateIpamByoasnOutput, Any, Any + ], + Interceptor[ + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[ + DisassociateRouteServerInput, DisassociateRouteServerOutput, Any, Any + ], + Interceptor[ + DisassociateRouteTableInput, DisassociateRouteTableOutput, Any, Any + ], + Interceptor[ + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + Any, + Any, + ], + Interceptor[ + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTrunkInterfaceInput, DisassociateTrunkInterfaceOutput, Any, Any + ], + Interceptor[ + DisassociateVpcCidrBlockInput, DisassociateVpcCidrBlockOutput, Any, Any + ], + Interceptor[EnableAddressTransferInput, EnableAddressTransferOutput, Any, Any], + Interceptor[ + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + Any, + Any, + ], + Interceptor[ + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + Any, + Any, + ], + Interceptor[EnableCapacityManagerInput, EnableCapacityManagerOutput, Any, Any], + Interceptor[ + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + Any, + Any, + ], + Interceptor[EnableFastLaunchInput, EnableFastLaunchOutput, Any, Any], + Interceptor[ + EnableFastSnapshotRestoresInput, EnableFastSnapshotRestoresOutput, Any, Any + ], + Interceptor[EnableImageInput, EnableImageOutput, Any, Any], + Interceptor[ + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + EnableImageDeprecationInput, EnableImageDeprecationOutput, Any, Any + ], + Interceptor[ + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + Any, + Any, + ], + Interceptor[ + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + Any, + Any, + ], + Interceptor[ + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[ + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + Any, + Any, + ], + Interceptor[EnableIpamPolicyInput, EnableIpamPolicyOutput, Any, Any], + Interceptor[ + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + Any, + Any, + ], + Interceptor[ + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + Any, + Any, + ], + Interceptor[ + EnableSerialConsoleAccessInput, EnableSerialConsoleAccessOutput, Any, Any + ], + Interceptor[ + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + Any, + Any, + ], + Interceptor[ + EnableVgwRoutePropagationInput, EnableVgwRoutePropagationOutput, Any, Any + ], + Interceptor[EnableVolumeIOInput, EnableVolumeIOOutput, Any, Any], + Interceptor[EnableVpcClassicLinkInput, EnableVpcClassicLinkOutput, Any, Any], + Interceptor[ + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[ + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + Any, + Any, + ], + Interceptor[ + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + Any, + Any, + ], + Interceptor[ExportImageInput, ExportImageOutput, Any, Any], + Interceptor[ + ExportTransitGatewayRoutesInput, ExportTransitGatewayRoutesOutput, Any, Any + ], + Interceptor[ + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetActiveVpnTunnelStatusInput, GetActiveVpnTunnelStatusOutput, Any, Any + ], + Interceptor[ + GetAllowedImagesSettingsInput, GetAllowedImagesSettingsOutput, Any, Any + ], + Interceptor[ + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + Any, + Any, + ], + Interceptor[ + GetAssociatedIpv6PoolCidrsInput, GetAssociatedIpv6PoolCidrsOutput, Any, Any + ], + Interceptor[ + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + Any, + Any, + ], + Interceptor[ + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[GetCoipPoolUsageInput, GetCoipPoolUsageOutput, Any, Any], + Interceptor[GetConsoleOutputInput, GetConsoleOutputOutput, Any, Any], + Interceptor[GetConsoleScreenshotInput, GetConsoleScreenshotOutput, Any, Any], + Interceptor[ + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + Any, + Any, + ], + Interceptor[ + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[GetEbsDefaultKmsKeyIdInput, GetEbsDefaultKmsKeyIdOutput, Any, Any], + Interceptor[ + GetEbsEncryptionByDefaultInput, GetEbsEncryptionByDefaultOutput, Any, Any + ], + Interceptor[GetEnabledIpamPolicyInput, GetEnabledIpamPolicyOutput, Any, Any], + Interceptor[ + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + Any, + Any, + ], + Interceptor[ + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + Any, + Any, + ], + Interceptor[ + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + Any, + Any, + ], + Interceptor[GetImageAncestryInput, GetImageAncestryOutput, Any, Any], + Interceptor[ + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + Any, + Any, + ], + Interceptor[GetImageFindingsInput, GetImageFindingsOutput, Any, Any], + Interceptor[ + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + Any, + Any, + ], + Interceptor[GetInstanceTpmEkPubInput, GetInstanceTpmEkPubOutput, Any, Any], + Interceptor[ + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + Any, + Any, + ], + Interceptor[GetInstanceUefiDataInput, GetInstanceUefiDataOutput, Any, Any], + Interceptor[GetIpamAddressHistoryInput, GetIpamAddressHistoryOutput, Any, Any], + Interceptor[ + GetIpamDiscoveredAccountsInput, GetIpamDiscoveredAccountsOutput, Any, Any + ], + Interceptor[ + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamDiscoveredRoutesInput, GetIpamDiscoveredRoutesOutput, Any, Any + ], + Interceptor[ + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPoolAllocationsInput, GetIpamPoolAllocationsOutput, Any, Any + ], + Interceptor[GetIpamPoolCidrsInput, GetIpamPoolCidrsOutput, Any, Any], + Interceptor[ + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + Any, + Any, + ], + Interceptor[GetIpamResourceCidrsInput, GetIpamResourceCidrsOutput, Any, Any], + Interceptor[ + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + Any, + Any, + ], + Interceptor[GetLaunchTemplateDataInput, GetLaunchTemplateDataOutput, Any, Any], + Interceptor[ + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + Any, + Any, + ], + Interceptor[ + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + Any, + Any, + ], + Interceptor[ + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + Any, + Any, + ], + Interceptor[GetPasswordDataInput, GetPasswordDataOutput, Any, Any], + Interceptor[ + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + GetRouteServerAssociationsInput, GetRouteServerAssociationsOutput, Any, Any + ], + Interceptor[ + GetRouteServerPropagationsInput, GetRouteServerPropagationsOutput, Any, Any + ], + Interceptor[ + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + Any, + Any, + ], + Interceptor[ + GetSecurityGroupsForVpcInput, GetSecurityGroupsForVpcOutput, Any, Any + ], + Interceptor[ + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + Any, + Any, + ], + Interceptor[ + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + Any, + Any, + ], + Interceptor[ + GetSpotPlacementScoresInput, GetSpotPlacementScoresOutput, Any, Any + ], + Interceptor[ + GetSubnetCidrReservationsInput, GetSubnetCidrReservationsOutput, Any, Any + ], + Interceptor[ + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + Any, + Any, + ], + Interceptor[ + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + Any, + Any, + ], + Interceptor[ + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + Any, + Any, + ], + Interceptor[ + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + Any, + Any, + ], + Interceptor[ImportImageInput, ImportImageOutput, Any, Any], + Interceptor[ImportInstanceInput, ImportInstanceOutput, Any, Any], + Interceptor[ImportKeyPairInput, ImportKeyPairOutput, Any, Any], + Interceptor[ImportSnapshotInput, ImportSnapshotOutput, Any, Any], + Interceptor[ImportVolumeInput, ImportVolumeOutput, Any, Any], + Interceptor[ + ListImagesInRecycleBinInput, ListImagesInRecycleBinOutput, Any, Any + ], + Interceptor[ + ListSnapshotsInRecycleBinInput, ListSnapshotsInRecycleBinOutput, Any, Any + ], + Interceptor[ + ListVolumesInRecycleBinInput, ListVolumesInRecycleBinOutput, Any, Any + ], + Interceptor[LockSnapshotInput, LockSnapshotOutput, Any, Any], + Interceptor[ + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + Any, + Any, + ], + Interceptor[ + ModifyAddressAttributeInput, ModifyAddressAttributeOutput, Any, Any + ], + Interceptor[ + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + Any, + Any, + ], + Interceptor[ + ModifyCapacityReservationInput, ModifyCapacityReservationOutput, Any, Any + ], + Interceptor[ + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + Any, + Any, + ], + Interceptor[ + ModifyClientVpnEndpointInput, ModifyClientVpnEndpointOutput, Any, Any + ], + Interceptor[ + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyEbsDefaultKmsKeyIdInput, ModifyEbsDefaultKmsKeyIdOutput, Any, Any + ], + Interceptor[ModifyFleetInput, ModifyFleetOutput, Any, Any], + Interceptor[ + ModifyFpgaImageAttributeInput, ModifyFpgaImageAttributeOutput, Any, Any + ], + Interceptor[ModifyHostsInput, ModifyHostsOutput, Any, Any], + Interceptor[ + ModifyIdentityIdFormatInput, ModifyIdentityIdFormatOutput, Any, Any + ], + Interceptor[ModifyIdFormatInput, ModifyIdFormatOutput, Any, Any], + Interceptor[ModifyImageAttributeInput, ModifyImageAttributeOutput, Any, Any], + Interceptor[ + ModifyInstanceAttributeInput, ModifyInstanceAttributeOutput, Any, Any + ], + Interceptor[ + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceCpuOptionsInput, ModifyInstanceCpuOptionsOutput, Any, Any + ], + Interceptor[ + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceEventWindowInput, ModifyInstanceEventWindowOutput, Any, Any + ], + Interceptor[ + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstancePlacementInput, ModifyInstancePlacementOutput, Any, Any + ], + Interceptor[ModifyIpamInput, ModifyIpamOutput, Any, Any], + Interceptor[ + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + Any, + Any, + ], + Interceptor[ModifyIpamPoolInput, ModifyIpamPoolOutput, Any, Any], + Interceptor[ + ModifyIpamPoolAllocationInput, ModifyIpamPoolAllocationOutput, Any, Any + ], + Interceptor[ + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamResourceCidrInput, ModifyIpamResourceCidrOutput, Any, Any + ], + Interceptor[ + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[ModifyIpamScopeInput, ModifyIpamScopeOutput, Any, Any], + Interceptor[ModifyLaunchTemplateInput, ModifyLaunchTemplateOutput, Any, Any], + Interceptor[ + ModifyLocalGatewayRouteInput, ModifyLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + ModifyManagedPrefixListInput, ModifyManagedPrefixListOutput, Any, Any + ], + Interceptor[ + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyReservedInstancesInput, ModifyReservedInstancesOutput, Any, Any + ], + Interceptor[ModifyRouteServerInput, ModifyRouteServerOutput, Any, Any], + Interceptor[ + ModifySecurityGroupRulesInput, ModifySecurityGroupRulesOutput, Any, Any + ], + Interceptor[ + ModifySnapshotAttributeInput, ModifySnapshotAttributeOutput, Any, Any + ], + Interceptor[ModifySnapshotTierInput, ModifySnapshotTierOutput, Any, Any], + Interceptor[ + ModifySpotFleetRequestInput, ModifySpotFleetRequestOutput, Any, Any + ], + Interceptor[ModifySubnetAttributeInput, ModifySubnetAttributeOutput, Any, Any], + Interceptor[ + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + Any, + Any, + ], + Interceptor[ + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + ModifyTrafficMirrorSessionInput, ModifyTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ModifyTransitGatewayInput, ModifyTransitGatewayOutput, Any, Any], + Interceptor[ + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessGroupInput, ModifyVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[ModifyVolumeInput, ModifyVolumeOutput, Any, Any], + Interceptor[ModifyVolumeAttributeInput, ModifyVolumeAttributeOutput, Any, Any], + Interceptor[ModifyVpcAttributeInput, ModifyVpcAttributeOutput, Any, Any], + Interceptor[ + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEncryptionControlInput, ModifyVpcEncryptionControlOutput, Any, Any + ], + Interceptor[ModifyVpcEndpointInput, ModifyVpcEndpointOutput, Any, Any], + Interceptor[ + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + Any, + Any, + ], + Interceptor[ModifyVpcTenancyInput, ModifyVpcTenancyOutput, Any, Any], + Interceptor[ModifyVpnConnectionInput, ModifyVpnConnectionOutput, Any, Any], + Interceptor[ + ModifyVpnConnectionOptionsInput, ModifyVpnConnectionOptionsOutput, Any, Any + ], + Interceptor[ + ModifyVpnTunnelCertificateInput, ModifyVpnTunnelCertificateOutput, Any, Any + ], + Interceptor[ + ModifyVpnTunnelOptionsInput, ModifyVpnTunnelOptionsOutput, Any, Any + ], + Interceptor[MonitorInstancesInput, MonitorInstancesOutput, Any, Any], + Interceptor[MoveAddressToVpcInput, MoveAddressToVpcOutput, Any, Any], + Interceptor[MoveByoipCidrToIpamInput, MoveByoipCidrToIpamOutput, Any, Any], + Interceptor[ + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + Any, + Any, + ], + Interceptor[ProvisionByoipCidrInput, ProvisionByoipCidrOutput, Any, Any], + Interceptor[ProvisionIpamByoasnInput, ProvisionIpamByoasnOutput, Any, Any], + Interceptor[ProvisionIpamPoolCidrInput, ProvisionIpamPoolCidrOutput, Any, Any], + Interceptor[ + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + Any, + Any, + ], + Interceptor[PurchaseCapacityBlockInput, PurchaseCapacityBlockOutput, Any, Any], + Interceptor[ + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + Any, + Any, + ], + Interceptor[ + PurchaseHostReservationInput, PurchaseHostReservationOutput, Any, Any + ], + Interceptor[ + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + Any, + Any, + ], + Interceptor[ + PurchaseScheduledInstancesInput, PurchaseScheduledInstancesOutput, Any, Any + ], + Interceptor[RebootInstancesInput, RebootInstancesOutput, Any, Any], + Interceptor[RegisterImageInput, RegisterImageOutput, Any, Any], + Interceptor[ + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + Any, + Any, + ], + Interceptor[ + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + Any, + Any, + ], + Interceptor[ + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[ + RejectVpcPeeringConnectionInput, RejectVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[ReleaseAddressInput, ReleaseAddressOutput, Any, Any], + Interceptor[ReleaseHostsInput, ReleaseHostsOutput, Any, Any], + Interceptor[ + ReleaseIpamPoolAllocationInput, ReleaseIpamPoolAllocationOutput, Any, Any + ], + Interceptor[ + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceNetworkAclEntryInput, ReplaceNetworkAclEntryOutput, Any, Any + ], + Interceptor[ReplaceRouteInput, ReplaceRouteOutput, Any, Any], + Interceptor[ + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceTransitGatewayRouteInput, ReplaceTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ReplaceVpnTunnelInput, ReplaceVpnTunnelOutput, Any, Any], + Interceptor[ReportInstanceStatusInput, ReportInstanceStatusOutput, Any, Any], + Interceptor[RequestSpotFleetInput, RequestSpotFleetOutput, Any, Any], + Interceptor[RequestSpotInstancesInput, RequestSpotInstancesOutput, Any, Any], + Interceptor[ResetAddressAttributeInput, ResetAddressAttributeOutput, Any, Any], + Interceptor[ + ResetEbsDefaultKmsKeyIdInput, ResetEbsDefaultKmsKeyIdOutput, Any, Any + ], + Interceptor[ + ResetFpgaImageAttributeInput, ResetFpgaImageAttributeOutput, Any, Any + ], + Interceptor[ResetImageAttributeInput, ResetImageAttributeOutput, Any, Any], + Interceptor[ + ResetInstanceAttributeInput, ResetInstanceAttributeOutput, Any, Any + ], + Interceptor[ + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + ResetSnapshotAttributeInput, ResetSnapshotAttributeOutput, Any, Any + ], + Interceptor[ + RestoreAddressToClassicInput, RestoreAddressToClassicOutput, Any, Any + ], + Interceptor[ + RestoreImageFromRecycleBinInput, RestoreImageFromRecycleBinOutput, Any, Any + ], + Interceptor[ + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + Any, + Any, + ], + Interceptor[ + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + Any, + Any, + ], + Interceptor[RestoreSnapshotTierInput, RestoreSnapshotTierOutput, Any, Any], + Interceptor[ + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + Any, + Any, + ], + Interceptor[ + RevokeClientVpnIngressInput, RevokeClientVpnIngressOutput, Any, Any + ], + Interceptor[ + RevokeSecurityGroupEgressInput, RevokeSecurityGroupEgressOutput, Any, Any + ], + Interceptor[ + RevokeSecurityGroupIngressInput, RevokeSecurityGroupIngressOutput, Any, Any + ], + Interceptor[RunInstancesInput, RunInstancesOutput, Any, Any], + Interceptor[RunScheduledInstancesInput, RunScheduledInstancesOutput, Any, Any], + Interceptor[ + SearchLocalGatewayRoutesInput, SearchLocalGatewayRoutesOutput, Any, Any + ], + Interceptor[ + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + Any, + Any, + ], + Interceptor[ + SearchTransitGatewayRoutesInput, SearchTransitGatewayRoutesOutput, Any, Any + ], + Interceptor[ + SendDiagnosticInterruptInput, SendDiagnosticInterruptOutput, Any, Any + ], + Interceptor[ + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + Any, + Any, + ], + Interceptor[StartInstancesInput, StartInstancesOutput, Any, Any], + Interceptor[ + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + Any, + Any, + ], + Interceptor[ + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + Any, + Any, + ], + Interceptor[ + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + Any, + Any, + ], + Interceptor[StopInstancesInput, StopInstancesOutput, Any, Any], + Interceptor[ + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + Any, + Any, + ], + Interceptor[TerminateInstancesInput, TerminateInstancesOutput, Any, Any], + Interceptor[UnassignIpv6AddressesInput, UnassignIpv6AddressesOutput, Any, Any], + Interceptor[ + UnassignPrivateIpAddressesInput, UnassignPrivateIpAddressesOutput, Any, Any + ], + Interceptor[ + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[UnlockSnapshotInput, UnlockSnapshotOutput, Any, Any], + Interceptor[UnmonitorInstancesInput, UnmonitorInstancesOutput, Any, Any], + Interceptor[ + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + Any, + Any, + ], + Interceptor[ + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[ + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + Any, + Any, + ], + Interceptor[ + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + Any, + Any, + ], + Interceptor[ + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + Any, + Any, + ], + Interceptor[ + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + Any, + Any, + ], + Interceptor[WithdrawByoipCidrInput, WithdrawByoipCidrOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.ec2", + service_target="AmazonEC2", + version="2016-11-15", + service_schema=AMAZON_EC2, +) + + +class _AsyncEC2ConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncEC2Config(AsyncAwsConfig): + """EC2 configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("ec2").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: Ec2QueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="ec2") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncEC2ConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncEC2Config], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/user_agent.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/user_agent.py new file mode 100644 index 00000000..742fe93c --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncEC2Config + + +def aws_user_agent_plugin(config: AsyncEC2Config): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="EC2", + ) + ) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/auth.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/client.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/client.py new file mode 100644 index 00000000..06b13204 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/client.py @@ -0,0 +1,25561 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import EC2Config, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AcceptAddressTransferInput, + AcceptAddressTransferOutput, + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + AcceptVpcPeeringConnectionInput, + AcceptVpcPeeringConnectionOutput, + AdvertiseByoipCidrInput, + AdvertiseByoipCidrOutput, + AllocateAddressInput, + AllocateAddressOutput, + AllocateHostsInput, + AllocateHostsOutput, + AllocateIpamPoolCidrInput, + AllocateIpamPoolCidrOutput, + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + AssignIpv6AddressesInput, + AssignIpv6AddressesOutput, + AssignPrivateIpAddressesInput, + AssignPrivateIpAddressesOutput, + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + AssociateAddressInput, + AssociateAddressOutput, + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + AssociateDhcpOptionsInput, + AssociateDhcpOptionsOutput, + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + AssociateIpamByoasnInput, + AssociateIpamByoasnOutput, + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + AssociateNatGatewayAddressInput, + AssociateNatGatewayAddressOutput, + AssociateRouteServerInput, + AssociateRouteServerOutput, + AssociateRouteTableInput, + AssociateRouteTableOutput, + AssociateSecurityGroupVpcInput, + AssociateSecurityGroupVpcOutput, + AssociateSubnetCidrBlockInput, + AssociateSubnetCidrBlockOutput, + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + AssociateTrunkInterfaceInput, + AssociateTrunkInterfaceOutput, + AssociateVpcCidrBlockInput, + AssociateVpcCidrBlockOutput, + AttachClassicLinkVpcInput, + AttachClassicLinkVpcOutput, + AttachImageWatermarkInput, + AttachImageWatermarkOutput, + AttachInternetGatewayInput, + AttachInternetGatewayOutput, + AttachNetworkInterfaceInput, + AttachNetworkInterfaceOutput, + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + AttachVolumeInput, + AttachVolumeOutput, + AttachVpnGatewayInput, + AttachVpnGatewayOutput, + AuthorizeClientVpnIngressInput, + AuthorizeClientVpnIngressOutput, + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + BundleInstanceInput, + BundleInstanceOutput, + CancelBundleTaskInput, + CancelBundleTaskOutput, + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + CancelCapacityReservationInput, + CancelCapacityReservationOutput, + CancelConversionTaskInput, + CancelConversionTaskOutput, + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + CancelImportTaskInput, + CancelImportTaskOutput, + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + CancelSpotFleetRequestsInput, + CancelSpotFleetRequestsOutput, + CancelSpotInstanceRequestsInput, + CancelSpotInstanceRequestsOutput, + ConfirmProductInstanceInput, + ConfirmProductInstanceOutput, + CopyFpgaImageInput, + CopyFpgaImageOutput, + CopyImageInput, + CopyImageOutput, + CopySnapshotInput, + CopySnapshotOutput, + CopyVolumesInput, + CopyVolumesOutput, + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + CreateCapacityReservationInput, + CreateCapacityReservationOutput, + CreateCarrierGatewayInput, + CreateCarrierGatewayOutput, + CreateClientVpnEndpointInput, + CreateClientVpnEndpointOutput, + CreateClientVpnRouteInput, + CreateClientVpnRouteOutput, + CreateCoipCidrInput, + CreateCoipCidrOutput, + CreateCoipPoolInput, + CreateCoipPoolOutput, + CreateCustomerGatewayInput, + CreateCustomerGatewayOutput, + CreateDefaultSubnetInput, + CreateDefaultSubnetOutput, + CreateDefaultVpcInput, + CreateDefaultVpcOutput, + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + CreateDhcpOptionsInput, + CreateDhcpOptionsOutput, + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + CreateFleetInput, + CreateFleetOutput, + CreateFlowLogsInput, + CreateFlowLogsOutput, + CreateFpgaImageInput, + CreateFpgaImageOutput, + CreateImageInput, + CreateImageOutput, + CreateImageUsageReportInput, + CreateImageUsageReportOutput, + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + CreateInstanceEventWindowInput, + CreateInstanceEventWindowOutput, + CreateInstanceExportTaskInput, + CreateInstanceExportTaskOutput, + CreateInternetGatewayInput, + CreateInternetGatewayOutput, + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + CreateIpamInput, + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + CreateIpamOutput, + CreateIpamPolicyInput, + CreateIpamPolicyOutput, + CreateIpamPoolInput, + CreateIpamPoolOutput, + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + CreateIpamScopeInput, + CreateIpamScopeOutput, + CreateKeyPairInput, + CreateKeyPairOutput, + CreateLaunchTemplateInput, + CreateLaunchTemplateOutput, + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + CreateLocalGatewayRouteInput, + CreateLocalGatewayRouteOutput, + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + CreateManagedPrefixListInput, + CreateManagedPrefixListOutput, + CreateNatGatewayInput, + CreateNatGatewayOutput, + CreateNetworkAclEntryInput, + CreateNetworkAclEntryOutput, + CreateNetworkAclInput, + CreateNetworkAclOutput, + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + CreateNetworkInsightsPathInput, + CreateNetworkInsightsPathOutput, + CreateNetworkInterfaceInput, + CreateNetworkInterfaceOutput, + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + CreatePlacementGroupInput, + CreatePlacementGroupOutput, + CreatePublicIpv4PoolInput, + CreatePublicIpv4PoolOutput, + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + CreateRestoreImageTaskInput, + CreateRestoreImageTaskOutput, + CreateRouteInput, + CreateRouteOutput, + CreateRouteServerEndpointInput, + CreateRouteServerEndpointOutput, + CreateRouteServerInput, + CreateRouteServerOutput, + CreateRouteServerPeerInput, + CreateRouteServerPeerOutput, + CreateRouteTableInput, + CreateRouteTableOutput, + CreateSecondaryNetworkInput, + CreateSecondaryNetworkOutput, + CreateSecondarySubnetInput, + CreateSecondarySubnetOutput, + CreateSecurityGroupInput, + CreateSecurityGroupOutput, + CreateSnapshotInput, + CreateSnapshotOutput, + CreateSnapshotsInput, + CreateSnapshotsOutput, + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + CreateStoreImageTaskInput, + CreateStoreImageTaskOutput, + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + CreateSubnetInput, + CreateSubnetOutput, + CreateTagsInput, + CreateTagsOutput, + CreateTrafficMirrorFilterInput, + CreateTrafficMirrorFilterOutput, + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + CreateTrafficMirrorSessionInput, + CreateTrafficMirrorSessionOutput, + CreateTrafficMirrorTargetInput, + CreateTrafficMirrorTargetOutput, + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + CreateTransitGatewayInput, + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + CreateTransitGatewayOutput, + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + CreateTransitGatewayRouteInput, + CreateTransitGatewayRouteOutput, + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + CreateVerifiedAccessGroupInput, + CreateVerifiedAccessGroupOutput, + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + CreateVolumeInput, + CreateVolumeOutput, + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + CreateVpcEncryptionControlInput, + CreateVpcEncryptionControlOutput, + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + CreateVpcEndpointInput, + CreateVpcEndpointOutput, + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + CreateVpcInput, + CreateVpcOutput, + CreateVpcPeeringConnectionInput, + CreateVpcPeeringConnectionOutput, + CreateVpnConcentratorInput, + CreateVpnConcentratorOutput, + CreateVpnConnectionInput, + CreateVpnConnectionOutput, + CreateVpnConnectionRouteInput, + CreateVpnConnectionRouteOutput, + CreateVpnGatewayInput, + CreateVpnGatewayOutput, + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + DeleteCarrierGatewayInput, + DeleteCarrierGatewayOutput, + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + DeleteClientVpnEndpointInput, + DeleteClientVpnEndpointOutput, + DeleteClientVpnRouteInput, + DeleteClientVpnRouteOutput, + DeleteCoipCidrInput, + DeleteCoipCidrOutput, + DeleteCoipPoolInput, + DeleteCoipPoolOutput, + DeleteCustomerGatewayInput, + DeleteCustomerGatewayOutput, + DeleteDhcpOptionsInput, + DeleteDhcpOptionsOutput, + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + DeleteFleetsInput, + DeleteFleetsOutput, + DeleteFlowLogsInput, + DeleteFlowLogsOutput, + DeleteFpgaImageInput, + DeleteFpgaImageOutput, + DeleteImageUsageReportInput, + DeleteImageUsageReportOutput, + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + DeleteInstanceEventWindowInput, + DeleteInstanceEventWindowOutput, + DeleteInternetGatewayInput, + DeleteInternetGatewayOutput, + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + DeleteIpamInput, + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + DeleteIpamOutput, + DeleteIpamPolicyInput, + DeleteIpamPolicyOutput, + DeleteIpamPoolInput, + DeleteIpamPoolOutput, + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + DeleteIpamScopeInput, + DeleteIpamScopeOutput, + DeleteKeyPairInput, + DeleteKeyPairOutput, + DeleteLaunchTemplateInput, + DeleteLaunchTemplateOutput, + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + DeleteLocalGatewayRouteInput, + DeleteLocalGatewayRouteOutput, + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + DeleteManagedPrefixListInput, + DeleteManagedPrefixListOutput, + DeleteNatGatewayInput, + DeleteNatGatewayOutput, + DeleteNetworkAclEntryInput, + DeleteNetworkAclEntryOutput, + DeleteNetworkAclInput, + DeleteNetworkAclOutput, + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + DeleteNetworkInsightsPathInput, + DeleteNetworkInsightsPathOutput, + DeleteNetworkInterfaceInput, + DeleteNetworkInterfaceOutput, + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + DeletePlacementGroupInput, + DeletePlacementGroupOutput, + DeletePublicIpv4PoolInput, + DeletePublicIpv4PoolOutput, + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + DeleteRouteInput, + DeleteRouteOutput, + DeleteRouteServerEndpointInput, + DeleteRouteServerEndpointOutput, + DeleteRouteServerInput, + DeleteRouteServerOutput, + DeleteRouteServerPeerInput, + DeleteRouteServerPeerOutput, + DeleteRouteTableInput, + DeleteRouteTableOutput, + DeleteSecondaryNetworkInput, + DeleteSecondaryNetworkOutput, + DeleteSecondarySubnetInput, + DeleteSecondarySubnetOutput, + DeleteSecurityGroupInput, + DeleteSecurityGroupOutput, + DeleteSnapshotInput, + DeleteSnapshotOutput, + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + DeleteSubnetInput, + DeleteSubnetOutput, + DeleteTagsInput, + DeleteTagsOutput, + DeleteTrafficMirrorFilterInput, + DeleteTrafficMirrorFilterOutput, + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + DeleteTrafficMirrorSessionInput, + DeleteTrafficMirrorSessionOutput, + DeleteTrafficMirrorTargetInput, + DeleteTrafficMirrorTargetOutput, + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + DeleteTransitGatewayInput, + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + DeleteTransitGatewayOutput, + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + DeleteTransitGatewayRouteInput, + DeleteTransitGatewayRouteOutput, + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + DeleteVerifiedAccessGroupInput, + DeleteVerifiedAccessGroupOutput, + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + DeleteVolumeInput, + DeleteVolumeOutput, + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + DeleteVpcEncryptionControlInput, + DeleteVpcEncryptionControlOutput, + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + DeleteVpcEndpointsInput, + DeleteVpcEndpointsOutput, + DeleteVpcInput, + DeleteVpcOutput, + DeleteVpcPeeringConnectionInput, + DeleteVpcPeeringConnectionOutput, + DeleteVpnConcentratorInput, + DeleteVpnConcentratorOutput, + DeleteVpnConnectionInput, + DeleteVpnConnectionOutput, + DeleteVpnConnectionRouteInput, + DeleteVpnConnectionRouteOutput, + DeleteVpnGatewayInput, + DeleteVpnGatewayOutput, + DeprovisionByoipCidrInput, + DeprovisionByoipCidrOutput, + DeprovisionIpamByoasnInput, + DeprovisionIpamByoasnOutput, + DeprovisionIpamPoolCidrInput, + DeprovisionIpamPoolCidrOutput, + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + DeregisterImageInput, + DeregisterImageOutput, + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + DescribeAddressTransfersInput, + DescribeAddressTransfersOutput, + DescribeAddressesAttributeInput, + DescribeAddressesAttributeOutput, + DescribeAddressesInput, + DescribeAddressesOutput, + DescribeAggregateIdFormatInput, + DescribeAggregateIdFormatOutput, + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + DescribeApplicationStatusInput, + DescribeApplicationStatusOutput, + DescribeAvailabilityZonesInput, + DescribeAvailabilityZonesOutput, + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + DescribeBundleTasksInput, + DescribeBundleTasksOutput, + DescribeByoipCidrsInput, + DescribeByoipCidrsOutput, + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + DescribeCapacityBlocksInput, + DescribeCapacityBlocksOutput, + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + DescribeCarrierGatewaysInput, + DescribeCarrierGatewaysOutput, + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + DescribeClientVpnEndpointsInput, + DescribeClientVpnEndpointsOutput, + DescribeClientVpnRoutesInput, + DescribeClientVpnRoutesOutput, + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + DescribeCoipPoolsInput, + DescribeCoipPoolsOutput, + DescribeConversionTasksInput, + DescribeConversionTasksOutput, + DescribeCustomerGatewaysInput, + DescribeCustomerGatewaysOutput, + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + DescribeDhcpOptionsInput, + DescribeDhcpOptionsOutput, + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + DescribeElasticGpusInput, + DescribeElasticGpusOutput, + DescribeExportImageTasksInput, + DescribeExportImageTasksOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeFastLaunchImagesInput, + DescribeFastLaunchImagesOutput, + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + DescribeFleetHistoryInput, + DescribeFleetHistoryOutput, + DescribeFleetInstancesInput, + DescribeFleetInstancesOutput, + DescribeFleetsInput, + DescribeFleetsOutput, + DescribeFlowLogsInput, + DescribeFlowLogsOutput, + DescribeFpgaImageAttributeInput, + DescribeFpgaImageAttributeOutput, + DescribeFpgaImagesInput, + DescribeFpgaImagesOutput, + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + DescribeHostReservationsInput, + DescribeHostReservationsOutput, + DescribeHostsInput, + DescribeHostsOutput, + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + DescribeIdFormatInput, + DescribeIdFormatOutput, + DescribeIdentityIdFormatInput, + DescribeIdentityIdFormatOutput, + DescribeImageAttributeInput, + DescribeImageAttributeOutput, + DescribeImageReferencesInput, + DescribeImageReferencesOutput, + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + DescribeImageUsageReportsInput, + DescribeImageUsageReportsOutput, + DescribeImagesInput, + DescribeImagesOutput, + DescribeImportImageTasksInput, + DescribeImportImageTasksOutput, + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + DescribeInstanceAttributeInput, + DescribeInstanceAttributeOutput, + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + DescribeInstanceStatusInput, + DescribeInstanceStatusOutput, + DescribeInstanceTopologyInput, + DescribeInstanceTopologyOutput, + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + DescribeInstanceTypesInput, + DescribeInstanceTypesOutput, + DescribeInstancesInput, + DescribeInstancesOutput, + DescribeInternetGatewaysInput, + DescribeInternetGatewaysOutput, + DescribeIpamByoasnInput, + DescribeIpamByoasnOutput, + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + DescribeIpamPoliciesInput, + DescribeIpamPoliciesOutput, + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + DescribeIpamPoolsInput, + DescribeIpamPoolsOutput, + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + DescribeIpamScopesInput, + DescribeIpamScopesOutput, + DescribeIpamsInput, + DescribeIpamsOutput, + DescribeIpv6PoolsInput, + DescribeIpv6PoolsOutput, + DescribeKeyPairsInput, + DescribeKeyPairsOutput, + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + DescribeLaunchTemplatesInput, + DescribeLaunchTemplatesOutput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + DescribeLocalGatewaysInput, + DescribeLocalGatewaysOutput, + DescribeLockedSnapshotsInput, + DescribeLockedSnapshotsOutput, + DescribeMacHostsInput, + DescribeMacHostsOutput, + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + DescribeManagedPrefixListsInput, + DescribeManagedPrefixListsOutput, + DescribeMovingAddressesInput, + DescribeMovingAddressesOutput, + DescribeNatGatewaysInput, + DescribeNatGatewaysOutput, + DescribeNetworkAclsInput, + DescribeNetworkAclsOutput, + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + DescribeNetworkInterfacesInput, + DescribeNetworkInterfacesOutput, + DescribeOutpostLagsInput, + DescribeOutpostLagsOutput, + DescribePlacementGroupsInput, + DescribePlacementGroupsOutput, + DescribePrefixListsInput, + DescribePrefixListsOutput, + DescribePrincipalIdFormatInput, + DescribePrincipalIdFormatOutput, + DescribePublicIpv4PoolsInput, + DescribePublicIpv4PoolsOutput, + DescribeRegionsInput, + DescribeRegionsOutput, + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + DescribeReservedInstancesInput, + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + DescribeReservedInstancesOutput, + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + DescribeRouteServerPeersInput, + DescribeRouteServerPeersOutput, + DescribeRouteServersInput, + DescribeRouteServersOutput, + DescribeRouteTablesInput, + DescribeRouteTablesOutput, + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + DescribeScheduledInstancesInput, + DescribeScheduledInstancesOutput, + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + DescribeSecondaryNetworksInput, + DescribeSecondaryNetworksOutput, + DescribeSecondarySubnetsInput, + DescribeSecondarySubnetsOutput, + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + DescribeSecurityGroupRulesInput, + DescribeSecurityGroupRulesOutput, + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + DescribeSecurityGroupsInput, + DescribeSecurityGroupsOutput, + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + DescribeSnapshotAttributeInput, + DescribeSnapshotAttributeOutput, + DescribeSnapshotTierStatusInput, + DescribeSnapshotTierStatusOutput, + DescribeSnapshotsInput, + DescribeSnapshotsOutput, + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + DescribeSpotFleetInstancesInput, + DescribeSpotFleetInstancesOutput, + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + DescribeSpotFleetRequestsInput, + DescribeSpotFleetRequestsOutput, + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + DescribeSpotPriceHistoryInput, + DescribeSpotPriceHistoryOutput, + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + DescribeStoreImageTasksInput, + DescribeStoreImageTasksOutput, + DescribeSubnetsInput, + DescribeSubnetsOutput, + DescribeTagsInput, + DescribeTagsOutput, + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + DescribeTransitGatewaysInput, + DescribeTransitGatewaysOutput, + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + DescribeVolumeAttributeInput, + DescribeVolumeAttributeOutput, + DescribeVolumeStatusInput, + DescribeVolumeStatusOutput, + DescribeVolumesInput, + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + DescribeVolumesOutput, + DescribeVpcAttributeInput, + DescribeVpcAttributeOutput, + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + DescribeVpcClassicLinkInput, + DescribeVpcClassicLinkOutput, + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + DescribeVpcEndpointsInput, + DescribeVpcEndpointsOutput, + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + DescribeVpcsInput, + DescribeVpcsOutput, + DescribeVpnConcentratorsInput, + DescribeVpnConcentratorsOutput, + DescribeVpnConnectionsInput, + DescribeVpnConnectionsOutput, + DescribeVpnGatewaysInput, + DescribeVpnGatewaysOutput, + DetachClassicLinkVpcInput, + DetachClassicLinkVpcOutput, + DetachImageWatermarkInput, + DetachImageWatermarkOutput, + DetachInternetGatewayInput, + DetachInternetGatewayOutput, + DetachNetworkInterfaceInput, + DetachNetworkInterfaceOutput, + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + DetachVolumeInput, + DetachVolumeOutput, + DetachVpnGatewayInput, + DetachVpnGatewayOutput, + DisableAddressTransferInput, + DisableAddressTransferOutput, + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + DisableCapacityManagerInput, + DisableCapacityManagerOutput, + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + DisableFastLaunchInput, + DisableFastLaunchOutput, + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + DisableImageDeprecationInput, + DisableImageDeprecationOutput, + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + DisableImageInput, + DisableImageOutput, + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + DisableIpamPolicyInput, + DisableIpamPolicyOutput, + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + DisableSerialConsoleAccessInput, + DisableSerialConsoleAccessOutput, + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + DisableVgwRoutePropagationInput, + DisableVgwRoutePropagationOutput, + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + DisableVpcClassicLinkInput, + DisableVpcClassicLinkOutput, + DisassociateAddressInput, + DisassociateAddressOutput, + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + DisassociateIpamByoasnInput, + DisassociateIpamByoasnOutput, + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + DisassociateRouteServerInput, + DisassociateRouteServerOutput, + DisassociateRouteTableInput, + DisassociateRouteTableOutput, + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + DisassociateTrunkInterfaceInput, + DisassociateTrunkInterfaceOutput, + DisassociateVpcCidrBlockInput, + DisassociateVpcCidrBlockOutput, + EnableAddressTransferInput, + EnableAddressTransferOutput, + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + EnableCapacityManagerInput, + EnableCapacityManagerOutput, + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + EnableFastLaunchInput, + EnableFastLaunchOutput, + EnableFastSnapshotRestoresInput, + EnableFastSnapshotRestoresOutput, + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + EnableImageDeprecationInput, + EnableImageDeprecationOutput, + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + EnableImageInput, + EnableImageOutput, + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + EnableIpamPolicyInput, + EnableIpamPolicyOutput, + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + EnableSerialConsoleAccessInput, + EnableSerialConsoleAccessOutput, + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + EnableVgwRoutePropagationInput, + EnableVgwRoutePropagationOutput, + EnableVolumeIOInput, + EnableVolumeIOOutput, + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + EnableVpcClassicLinkInput, + EnableVpcClassicLinkOutput, + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + ExportImageInput, + ExportImageOutput, + ExportTransitGatewayRoutesInput, + ExportTransitGatewayRoutesOutput, + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + GetActiveVpnTunnelStatusInput, + GetActiveVpnTunnelStatusOutput, + GetAllowedImagesSettingsInput, + GetAllowedImagesSettingsOutput, + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + GetAssociatedIpv6PoolCidrsInput, + GetAssociatedIpv6PoolCidrsOutput, + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + GetCoipPoolUsageInput, + GetCoipPoolUsageOutput, + GetConsoleOutputInput, + GetConsoleOutputOutput, + GetConsoleScreenshotInput, + GetConsoleScreenshotOutput, + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + GetEbsDefaultKmsKeyIdInput, + GetEbsDefaultKmsKeyIdOutput, + GetEbsEncryptionByDefaultInput, + GetEbsEncryptionByDefaultOutput, + GetEnabledIpamPolicyInput, + GetEnabledIpamPolicyOutput, + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + GetImageAncestryInput, + GetImageAncestryOutput, + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + GetImageFindingsInput, + GetImageFindingsOutput, + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + GetInstanceTpmEkPubInput, + GetInstanceTpmEkPubOutput, + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + GetInstanceUefiDataInput, + GetInstanceUefiDataOutput, + GetIpamAddressHistoryInput, + GetIpamAddressHistoryOutput, + GetIpamDiscoveredAccountsInput, + GetIpamDiscoveredAccountsOutput, + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + GetIpamDiscoveredRoutesInput, + GetIpamDiscoveredRoutesOutput, + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + GetIpamPoolAllocationsInput, + GetIpamPoolAllocationsOutput, + GetIpamPoolCidrsInput, + GetIpamPoolCidrsOutput, + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + GetIpamResourceCidrsInput, + GetIpamResourceCidrsOutput, + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + GetLaunchTemplateDataInput, + GetLaunchTemplateDataOutput, + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + GetPasswordDataInput, + GetPasswordDataOutput, + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + GetRouteServerAssociationsInput, + GetRouteServerAssociationsOutput, + GetRouteServerPropagationsInput, + GetRouteServerPropagationsOutput, + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + GetSecurityGroupsForVpcInput, + GetSecurityGroupsForVpcOutput, + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + GetSpotPlacementScoresInput, + GetSpotPlacementScoresOutput, + GetSubnetCidrReservationsInput, + GetSubnetCidrReservationsOutput, + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + ImportImageInput, + ImportImageOutput, + ImportInstanceInput, + ImportInstanceOutput, + ImportKeyPairInput, + ImportKeyPairOutput, + ImportSnapshotInput, + ImportSnapshotOutput, + ImportVolumeInput, + ImportVolumeOutput, + ListImagesInRecycleBinInput, + ListImagesInRecycleBinOutput, + ListSnapshotsInRecycleBinInput, + ListSnapshotsInRecycleBinOutput, + ListVolumesInRecycleBinInput, + ListVolumesInRecycleBinOutput, + LockSnapshotInput, + LockSnapshotOutput, + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + ModifyAddressAttributeInput, + ModifyAddressAttributeOutput, + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + ModifyCapacityReservationInput, + ModifyCapacityReservationOutput, + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + ModifyClientVpnEndpointInput, + ModifyClientVpnEndpointOutput, + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + ModifyEbsDefaultKmsKeyIdInput, + ModifyEbsDefaultKmsKeyIdOutput, + ModifyFleetInput, + ModifyFleetOutput, + ModifyFpgaImageAttributeInput, + ModifyFpgaImageAttributeOutput, + ModifyHostsInput, + ModifyHostsOutput, + ModifyIdFormatInput, + ModifyIdFormatOutput, + ModifyIdentityIdFormatInput, + ModifyIdentityIdFormatOutput, + ModifyImageAttributeInput, + ModifyImageAttributeOutput, + ModifyInstanceAttributeInput, + ModifyInstanceAttributeOutput, + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + ModifyInstanceCpuOptionsInput, + ModifyInstanceCpuOptionsOutput, + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + ModifyInstanceEventWindowInput, + ModifyInstanceEventWindowOutput, + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + ModifyInstancePlacementInput, + ModifyInstancePlacementOutput, + ModifyIpamInput, + ModifyIpamOutput, + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + ModifyIpamPoolAllocationInput, + ModifyIpamPoolAllocationOutput, + ModifyIpamPoolInput, + ModifyIpamPoolOutput, + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + ModifyIpamResourceCidrInput, + ModifyIpamResourceCidrOutput, + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + ModifyIpamScopeInput, + ModifyIpamScopeOutput, + ModifyLaunchTemplateInput, + ModifyLaunchTemplateOutput, + ModifyLocalGatewayRouteInput, + ModifyLocalGatewayRouteOutput, + ModifyManagedPrefixListInput, + ModifyManagedPrefixListOutput, + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + ModifyReservedInstancesInput, + ModifyReservedInstancesOutput, + ModifyRouteServerInput, + ModifyRouteServerOutput, + ModifySecurityGroupRulesInput, + ModifySecurityGroupRulesOutput, + ModifySnapshotAttributeInput, + ModifySnapshotAttributeOutput, + ModifySnapshotTierInput, + ModifySnapshotTierOutput, + ModifySpotFleetRequestInput, + ModifySpotFleetRequestOutput, + ModifySubnetAttributeInput, + ModifySubnetAttributeOutput, + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + ModifyTrafficMirrorSessionInput, + ModifyTrafficMirrorSessionOutput, + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + ModifyTransitGatewayInput, + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + ModifyTransitGatewayOutput, + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + ModifyVerifiedAccessGroupInput, + ModifyVerifiedAccessGroupOutput, + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + ModifyVerifiedAccessInstanceOutput, + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + ModifyVolumeAttributeInput, + ModifyVolumeAttributeOutput, + ModifyVolumeInput, + ModifyVolumeOutput, + ModifyVpcAttributeInput, + ModifyVpcAttributeOutput, + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + ModifyVpcEncryptionControlInput, + ModifyVpcEncryptionControlOutput, + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + ModifyVpcEndpointInput, + ModifyVpcEndpointOutput, + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + ModifyVpcTenancyInput, + ModifyVpcTenancyOutput, + ModifyVpnConnectionInput, + ModifyVpnConnectionOptionsInput, + ModifyVpnConnectionOptionsOutput, + ModifyVpnConnectionOutput, + ModifyVpnTunnelCertificateInput, + ModifyVpnTunnelCertificateOutput, + ModifyVpnTunnelOptionsInput, + ModifyVpnTunnelOptionsOutput, + MonitorInstancesInput, + MonitorInstancesOutput, + MoveAddressToVpcInput, + MoveAddressToVpcOutput, + MoveByoipCidrToIpamInput, + MoveByoipCidrToIpamOutput, + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + ProvisionByoipCidrInput, + ProvisionByoipCidrOutput, + ProvisionIpamByoasnInput, + ProvisionIpamByoasnOutput, + ProvisionIpamPoolCidrInput, + ProvisionIpamPoolCidrOutput, + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + PurchaseCapacityBlockInput, + PurchaseCapacityBlockOutput, + PurchaseHostReservationInput, + PurchaseHostReservationOutput, + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + PurchaseScheduledInstancesInput, + PurchaseScheduledInstancesOutput, + RebootInstancesInput, + RebootInstancesOutput, + RegisterImageInput, + RegisterImageOutput, + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + RejectVpcPeeringConnectionInput, + RejectVpcPeeringConnectionOutput, + ReleaseAddressInput, + ReleaseAddressOutput, + ReleaseHostsInput, + ReleaseHostsOutput, + ReleaseIpamPoolAllocationInput, + ReleaseIpamPoolAllocationOutput, + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + ReplaceNetworkAclEntryInput, + ReplaceNetworkAclEntryOutput, + ReplaceRouteInput, + ReplaceRouteOutput, + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + ReplaceTransitGatewayRouteInput, + ReplaceTransitGatewayRouteOutput, + ReplaceVpnTunnelInput, + ReplaceVpnTunnelOutput, + ReportInstanceStatusInput, + ReportInstanceStatusOutput, + RequestSpotFleetInput, + RequestSpotFleetOutput, + RequestSpotInstancesInput, + RequestSpotInstancesOutput, + ResetAddressAttributeInput, + ResetAddressAttributeOutput, + ResetEbsDefaultKmsKeyIdInput, + ResetEbsDefaultKmsKeyIdOutput, + ResetFpgaImageAttributeInput, + ResetFpgaImageAttributeOutput, + ResetImageAttributeInput, + ResetImageAttributeOutput, + ResetInstanceAttributeInput, + ResetInstanceAttributeOutput, + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + ResetSnapshotAttributeInput, + ResetSnapshotAttributeOutput, + RestoreAddressToClassicInput, + RestoreAddressToClassicOutput, + RestoreImageFromRecycleBinInput, + RestoreImageFromRecycleBinOutput, + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + RestoreSnapshotTierInput, + RestoreSnapshotTierOutput, + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + RevokeClientVpnIngressInput, + RevokeClientVpnIngressOutput, + RevokeSecurityGroupEgressInput, + RevokeSecurityGroupEgressOutput, + RevokeSecurityGroupIngressInput, + RevokeSecurityGroupIngressOutput, + RunInstancesInput, + RunInstancesOutput, + RunScheduledInstancesInput, + RunScheduledInstancesOutput, + SearchLocalGatewayRoutesInput, + SearchLocalGatewayRoutesOutput, + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + SearchTransitGatewayRoutesInput, + SearchTransitGatewayRoutesOutput, + SendDiagnosticInterruptInput, + SendDiagnosticInterruptOutput, + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + StartInstancesInput, + StartInstancesOutput, + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + StopInstancesInput, + StopInstancesOutput, + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + TerminateInstancesInput, + TerminateInstancesOutput, + UnassignIpv6AddressesInput, + UnassignIpv6AddressesOutput, + UnassignPrivateIpAddressesInput, + UnassignPrivateIpAddressesOutput, + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + UnlockSnapshotInput, + UnlockSnapshotOutput, + UnmonitorInstancesInput, + UnmonitorInstancesOutput, + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + WithdrawByoipCidrInput, + WithdrawByoipCidrOutput, + ) + + +logger = logging.getLogger(__name__) + + +class EC2Client(Client[EC2Config]): + """ + This is the *Amazon EC2 API Reference*. It provides descriptions, API + request parameters, and the XML response for each of the Amazon EC2 + Query API actions. Note that the Amazon EC2 API includes actions for + Amazon EC2 plus additional services, such as Amazon EBS and Amazon VPC. + + **Learn more** + + - To learn about using the Query API, see [Using the API for Amazon + EC2](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-low-level-api.html). + + - To learn about the permissions required to call an Amazon EC2 API + action, see [Actions, resources, and condition keys for Amazon + EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). + + - To get the list of API actions by service and resource, see [Actions + by + service](https://docs.aws.amazon.com/ec2/latest/devguide/OperationList-query.html). + + - To get the alphabetical list of API actions, see . + + - To get descriptions of the API error codes, see [Error codes for the + Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/errors-overview.html). + + Alternatively, use one of the following methods to access the Amazon EC2 + API, instead of using the Query API directly: + + - [Amazon Web Services CLI Command Reference - ec2 + commands](https://docs.aws.amazon.com/cli/latest/reference/ec2/) + + - [CloudFormation - Amazon EC2 resource type + reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_EC2.html) + + - [Amazon Web Services Tools for PowerShell Cmdlet Reference - Amazon + EC2 + cmdlets](https://docs.aws.amazon.com/powershell/v5/reference/items/EC2_cmdlets.html) + + - [Amazon Web Services SDKs](https://builder.aws.com/build/tools) + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def accept_address_transfer( + self, input: AcceptAddressTransferInput, plugins: list[Plugin] | None = None + ) -> AcceptAddressTransferOutput: + """ + Accepts an Elastic IP address transfer. For more information, see + [Accept a transferred Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#using-instance-addressing-eips-transfer-accept) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AcceptAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptAddressTransferOutput`. + """ + return self._invoke(input, _models.ACCEPT_ADDRESS_TRANSFER, [], plugins) + + def accept_capacity_reservation_billing_ownership( + self, + input: AcceptCapacityReservationBillingOwnershipInput, + plugins: list[Plugin] | None = None, + ) -> AcceptCapacityReservationBillingOwnershipOutput: + """ + Accepts a request to assign billing of the available capacity of a + shared Capacity Reservation to your account. For more information, see + [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `AcceptCapacityReservationBillingOwnershipInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptCapacityReservationBillingOwnershipOutput`. + """ + return self._invoke( + input, _models.ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP, [], plugins + ) + + def accept_reserved_instances_exchange_quote( + self, + input: AcceptReservedInstancesExchangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> AcceptReservedInstancesExchangeQuoteOutput: + """ + Accepts the Convertible Reserved Instance exchange quote described in + the GetReservedInstancesExchangeQuote call. + + Args: + input: + An instance of `AcceptReservedInstancesExchangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptReservedInstancesExchangeQuoteOutput`. + """ + return self._invoke( + input, _models.ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE, [], plugins + ) + + def accept_transit_gateway_client_vpn_attachment( + self, + input: AcceptTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayClientVpnAttachmentOutput: + """ + Accepts a Transit Gateway attachment request for a Client VPN endpoint. + The Transit Gateway owner must accept the attachment request before the + Client VPN endpoint can route traffic through the Transit Gateway. + + Args: + input: + An instance of `AcceptTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayClientVpnAttachmentOutput`. + """ + return self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + def accept_transit_gateway_multicast_domain_associations( + self, + input: AcceptTransitGatewayMulticastDomainAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayMulticastDomainAssociationsOutput: + """ + Accepts a request to associate subnets with a transit gateway multicast + domain. + + Args: + input: + An instance of `AcceptTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayMulticastDomainAssociationsOutput`. + """ + return self._invoke( + input, + _models.ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + def accept_transit_gateway_peering_attachment( + self, + input: AcceptTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayPeeringAttachmentOutput: + """ + Accepts a transit gateway peering attachment request. The peering + attachment must be in the `pendingAcceptance` state. + + Args: + input: + An instance of `AcceptTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayPeeringAttachmentOutput`. + """ + return self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + def accept_transit_gateway_vpc_attachment( + self, + input: AcceptTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> AcceptTransitGatewayVpcAttachmentOutput: + """ + Accepts a request to attach a VPC to a transit gateway. + + The VPC attachment must be in the `pendingAcceptance` state. Use + DescribeTransitGatewayVpcAttachments to view your pending VPC attachment + requests. Use RejectTransitGatewayVpcAttachment to reject a VPC + attachment request. + + Args: + input: + An instance of `AcceptTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptTransitGatewayVpcAttachmentOutput`. + """ + return self._invoke( + input, _models.ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + def accept_vpc_endpoint_connections( + self, + input: AcceptVpcEndpointConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> AcceptVpcEndpointConnectionsOutput: + """ + Accepts connection requests to your VPC endpoint service. + + Args: + input: + An instance of `AcceptVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptVpcEndpointConnectionsOutput`. + """ + return self._invoke(input, _models.ACCEPT_VPC_ENDPOINT_CONNECTIONS, [], plugins) + + def accept_vpc_peering_connection( + self, + input: AcceptVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> AcceptVpcPeeringConnectionOutput: + """ + Accept a VPC peering connection request. To accept a request, the VPC + peering connection must be in the `pending-acceptance` state, and you + must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to + view your outstanding VPC peering connection requests. + + For an inter-Region VPC peering connection request, you must accept the + VPC peering connection in the Region of the accepter VPC. + + Args: + input: + An instance of `AcceptVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptVpcPeeringConnectionOutput`. + """ + return self._invoke(input, _models.ACCEPT_VPC_PEERING_CONNECTION, [], plugins) + + def advertise_byoip_cidr( + self, input: AdvertiseByoipCidrInput, plugins: list[Plugin] | None = None + ) -> AdvertiseByoipCidrOutput: + """ + Advertises an IPv4 or IPv6 address range that is provisioned for use + with your Amazon Web Services resources through bring your own IP + addresses (BYOIP). + + You can perform this operation at most once every 10 seconds, even if + you specify different address ranges each time. + + We recommend that you stop advertising the BYOIP CIDR from other + locations when you advertise it from Amazon Web Services. To minimize + down time, you can configure your Amazon Web Services resources to use + an address from a BYOIP CIDR before it is advertised, and then + simultaneously stop advertising it from the current location and start + advertising it through Amazon Web Services. + + It can take a few minutes before traffic to the specified addresses + starts routing to Amazon Web Services because of BGP propagation delays. + + Args: + input: + An instance of `AdvertiseByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AdvertiseByoipCidrOutput`. + """ + return self._invoke(input, _models.ADVERTISE_BYOIP_CIDR, [], plugins) + + def allocate_address( + self, + input: AllocateAddressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> AllocateAddressOutput: + """ + Allocates an Elastic IP address to your Amazon Web Services account. + After you allocate the Elastic IP address you can associate it with an + instance or network interface. After you release an Elastic IP address, + it is released to the IP address pool and can be allocated to a + different Amazon Web Services account. + + You can allocate an Elastic IP address from one of the following address + pools: + + - Amazon's pool of IPv4 addresses + + - Public IPv4 address range that you own and bring to your Amazon Web + Services account using [Bring Your Own IP Addresses + (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) + + - An IPv4 IPAM pool with an Amazon-provided or BYOIP public IPv4 address + range + + - IPv4 addresses from your on-premises network made available for use + with an Outpost using a [customer-owned IP address + pool](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + (CoIP pool) + + For more information, see [Elastic IP + Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) + in the *Amazon EC2 User Guide*. + + If you release an Elastic IP address, you might be able to recover it. + You cannot recover an Elastic IP address that you released after it is + allocated to another Amazon Web Services account. To attempt to recover + an Elastic IP address that you released, specify it in this operation. + + You can allocate a carrier IP address which is a public IP address from + a telecommunication carrier, to a network interface which resides in a + subnet in a Wavelength Zone (for example an EC2 instance). + + Args: + input: + An instance of `AllocateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateAddressOutput`. + """ + return self._invoke(input, _models.ALLOCATE_ADDRESS, [], plugins) + + def allocate_hosts( + self, + input: AllocateHostsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> AllocateHostsOutput: + """ + Allocates a Dedicated Host to your account. At a minimum, specify the + supported instance type or instance family, the Availability Zone in + which to allocate the host, and the number of hosts to allocate. + + Args: + input: + An instance of `AllocateHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateHostsOutput`. + """ + return self._invoke(input, _models.ALLOCATE_HOSTS, [], plugins) + + def allocate_ipam_pool_cidr( + self, input: AllocateIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> AllocateIpamPoolCidrOutput: + """ + Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM + pool locale. The locale is the Amazon Web Services Region where this + IPAM pool is available for allocations. + + In IPAM, an allocation is a CIDR assignment from an IPAM pool to another + IPAM pool or to a resource. For more information, see [Allocate + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/allocate-cidrs-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Note: + This action creates an allocation with strong consistency. The returned + CIDR will not overlap with any other allocations from the same pool. + + Args: + input: + An instance of `AllocateIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AllocateIpamPoolCidrOutput`. + """ + return self._invoke(input, _models.ALLOCATE_IPAM_POOL_CIDR, [], plugins) + + def apply_security_groups_to_client_vpn_target_network( + self, + input: ApplySecurityGroupsToClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> ApplySecurityGroupsToClientVpnTargetNetworkOutput: + """ + Applies a security group to the association between the target network + and the Client VPN endpoint. This action replaces the existing security + groups with the specified security groups. + + Args: + input: + An instance of `ApplySecurityGroupsToClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ApplySecurityGroupsToClientVpnTargetNetworkOutput`. + """ + return self._invoke( + input, + _models.APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK, + [], + plugins, + ) + + def assign_ipv6_addresses( + self, input: AssignIpv6AddressesInput, plugins: list[Plugin] | None = None + ) -> AssignIpv6AddressesOutput: + """ + Assigns the specified IPv6 addresses to the specified network interface. + You can specify specific IPv6 addresses, or you can specify the number + of IPv6 addresses to be automatically assigned from the subnet's IPv6 + CIDR block range. You can assign as many IPv6 addresses to a network + interface as you can assign private IPv4 addresses, and the limit varies + by instance type. + + You must specify either the IPv6 addresses or the IPv6 address count in + the request. + + You can optionally use Prefix Delegation on the network interface. You + must specify either the IPV6 Prefix Delegation prefixes, or the IPv6 + Prefix Delegation count. For information, see [Assigning prefixes to + network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssignIpv6AddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignIpv6AddressesOutput`. + """ + return self._invoke(input, _models.ASSIGN_IPV6_ADDRESSES, [], plugins) + + def assign_private_ip_addresses( + self, input: AssignPrivateIpAddressesInput, plugins: list[Plugin] | None = None + ) -> AssignPrivateIpAddressesOutput: + """ + Assigns the specified secondary private IP addresses to the specified + network interface. + + You can specify specific secondary IP addresses, or you can specify the + number of secondary IP addresses to be automatically assigned from the + subnet's CIDR block range. The number of secondary IP addresses that + you can assign to an instance varies by instance type. For more + information about Elastic IP addresses, see [Elastic IP + Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) + in the *Amazon EC2 User Guide*. + + When you move a secondary private IP address to another network + interface, any Elastic IP address that is associated with the IP address + is also moved. + + Remapping an IP address is an asynchronous operation. When you move an + IP address from one network interface to another, check + `network/interfaces/macs/mac/local-ipv4s` in the instance metadata to + confirm that the remapping is complete. + + You must specify either the IP addresses or the IP address count in the + request. + + You can optionally use Prefix Delegation on the network interface. You + must specify either the IPv4 Prefix Delegation prefixes, or the IPv4 + Prefix Delegation count. For information, see [Assigning prefixes to + network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssignPrivateIpAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignPrivateIpAddressesOutput`. + """ + return self._invoke(input, _models.ASSIGN_PRIVATE_IP_ADDRESSES, [], plugins) + + def assign_private_nat_gateway_address( + self, + input: AssignPrivateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> AssignPrivateNatGatewayAddressOutput: + """ + Assigns private IPv4 addresses to a private NAT gateway. For more + information, see [Work with NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssignPrivateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssignPrivateNatGatewayAddressOutput`. + """ + return self._invoke( + input, _models.ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + def associate_address( + self, + input: AssociateAddressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> AssociateAddressOutput: + """ + Associates an Elastic IP address, or carrier IP address (for instances + that are in subnets in Wavelength Zones) with an instance or a network + interface. Before you can use an Elastic IP address, you must allocate + it to your account. + + If the Elastic IP address is already associated with a different + instance, it is disassociated from that instance and associated with the + specified instance. If you associate an Elastic IP address with an + instance that has an existing Elastic IP address, the existing address + is disassociated from the instance, but remains allocated to your + account. + + [Subnets in Wavelength Zones] You can associate an IP address from the + telecommunication carrier to the instance or network interface. + + You cannot associate an Elastic IP address with an interface in a + different network border group. + + Warning: + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error, and you may be charged for + each time the Elastic IP address is remapped to the same instance. For + more information, see the *Elastic IP Addresses* section of [Amazon EC2 + Pricing](http://aws.amazon.com/ec2/pricing/). + + Args: + input: + An instance of `AssociateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateAddressOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_ADDRESS, [], plugins) + + def associate_application_status_check( + self, + input: AssociateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> AssociateApplicationStatusCheckOutput: + """ + Associates an application status check with instances or + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + Once you create an association, health monitoring automatically begins + for the specified instances or for instances that match the specified + tags. The following rules apply: + + - You must specify either `TargetTagAssociations` or `InstanceIds`, but + not both. Specifying both results in an `InvalidParameterCombination` + error. + + - You must own the application status check. The check must already + exist in your account. + + - You must not leave tag keys blank. + + - You can create a maximum of 50 tag associations for each application + status check. + + - You can use `DisassociateApplicationStatusCheck` to remove + associations. + + - You can associate + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + so that the application status check automatically monitors all + current and future instances that have the specified tags. + + Args: + input: + An instance of `AssociateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateApplicationStatusCheckOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_APPLICATION_STATUS_CHECK, [], plugins + ) + + def associate_capacity_reservation_billing_owner( + self, + input: AssociateCapacityReservationBillingOwnerInput, + plugins: list[Plugin] | None = None, + ) -> AssociateCapacityReservationBillingOwnerOutput: + """ + Initiates a request to assign billing of the unused capacity of a shared + Capacity Reservation to a consumer account that is consolidated under + the same Amazon Web Services organizations payer account. For more + information, see [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `AssociateCapacityReservationBillingOwnerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateCapacityReservationBillingOwnerOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER, [], plugins + ) + + def associate_client_vpn_target_network( + self, + input: AssociateClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> AssociateClientVpnTargetNetworkOutput: + """ + Associates a target network with a Client VPN endpoint. A target network + is a subnet in a VPC. You can associate multiple subnets from the same + VPC with a Client VPN endpoint. You can associate only one subnet in + each Availability Zone. We recommend that you associate at least two + subnets to provide Availability Zone redundancy. + + If you specified a VPC when you created the Client VPN endpoint or if + you have previous subnet associations, the specified subnet must be in + the same VPC. To specify a subnet that's in a different VPC, you must + first modify the Client VPN endpoint (ModifyClientVpnEndpoint) and + change the VPC that's associated with it. + + Args: + input: + An instance of `AssociateClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateClientVpnTargetNetworkOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_CLIENT_VPN_TARGET_NETWORK, [], plugins + ) + + def associate_dhcp_options( + self, input: AssociateDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> AssociateDhcpOptionsOutput: + """ + Associates a set of DHCP options (that you've previously created) with + the specified VPC, or associates no DHCP options with the VPC. + + After you associate the options with the VPC, any existing instances and + all new instances that you launch in that VPC use the options. You + don't need to restart or relaunch the instances. They automatically + pick up the changes within a few hours, depending on how frequently the + instance renews its DHCP lease. You can explicitly renew the lease using + the operating system on the instance. + + For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDhcpOptionsOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_DHCP_OPTIONS, [], plugins) + + def associate_enclave_certificate_iam_role( + self, + input: AssociateEnclaveCertificateIamRoleInput, + plugins: list[Plugin] | None = None, + ) -> AssociateEnclaveCertificateIamRoleOutput: + """ + Associates an Identity and Access Management (IAM) role with an + Certificate Manager (ACM) certificate. This enables the certificate to + be used by the ACM for Nitro Enclaves application inside an enclave. For + more information, see [Certificate Manager for Nitro + Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html) + in the *Amazon Web Services Nitro Enclaves User Guide*. + + When the IAM role is associated with the ACM certificate, the + certificate, certificate chain, and encrypted private key are placed in + an Amazon S3 location that only the associated IAM role can access. The + private key of the certificate is encrypted with an Amazon Web Services + managed key that has an attached attestation-based key policy. + + To enable the IAM role to access the Amazon S3 object, you must grant it + permission to call `s3:GetObject` on the Amazon S3 bucket returned by + the command. To enable the IAM role to access the KMS key, you must + grant it permission to call `kms:Decrypt` on the KMS key returned by the + command. For more information, see [Grant the role permission to access + the certificate and encryption + key](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy) + in the *Amazon Web Services Nitro Enclaves User Guide*. + + Args: + input: + An instance of `AssociateEnclaveCertificateIamRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateEnclaveCertificateIamRoleOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE, [], plugins + ) + + def associate_iam_instance_profile( + self, + input: AssociateIamInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> AssociateIamInstanceProfileOutput: + """ + Associates an IAM instance profile with a running or stopped instance. + You cannot associate more than one IAM instance profile with an + instance. + + Args: + input: + An instance of `AssociateIamInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIamInstanceProfileOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_IAM_INSTANCE_PROFILE, [], plugins) + + def associate_instance_event_window( + self, + input: AssociateInstanceEventWindowInput, + plugins: list[Plugin] | None = None, + ) -> AssociateInstanceEventWindowOutput: + """ + Associates one or more targets with an event window. Only one type of + target (instance IDs, Dedicated Host IDs, or tags) can be specified with + an event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `AssociateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateInstanceEventWindowOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_INSTANCE_EVENT_WINDOW, [], plugins) + + def associate_ipam_byoasn( + self, input: AssociateIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> AssociateIpamByoasnOutput: + """ + Associates your Autonomous System Number (ASN) with a BYOIP CIDR that + you own in the same Amazon Web Services Region. For more information, + see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + After the association succeeds, the ASN is eligible for advertisement. + You can view the association with + [DescribeByoipCidrs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeByoipCidrs.html). + You can advertise the CIDR with + [AdvertiseByoipCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AdvertiseByoipCidr.html). + + Args: + input: + An instance of `AssociateIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIpamByoasnOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_IPAM_BYOASN, [], plugins) + + def associate_ipam_resource_discovery( + self, + input: AssociateIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> AssociateIpamResourceDiscoveryOutput: + """ + Associates an IPAM resource discovery with an Amazon VPC IPAM. A + resource discovery is an IPAM component that enables IPAM to manage and + monitor resources that belong to the owning account. + + Args: + input: + An instance of `AssociateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateIpamResourceDiscoveryOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + def associate_nat_gateway_address( + self, + input: AssociateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> AssociateNatGatewayAddressOutput: + """ + Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a + public NAT gateway. For more information, see [Work with NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + + By default, you can associate up to 2 Elastic IP addresses per public + NAT gateway. You can increase the limit by requesting a quota + adjustment. For more information, see [Elastic IP address + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-eips) + in the *Amazon VPC User Guide*. + + Warning: + When you associate an EIP or secondary EIPs with a public NAT gateway, + the network border group of the EIPs must match the network border group + of the Availability Zone (AZ) that the public NAT gateway is in. If + it's not the same, the EIP will fail to associate. You can see the + network border group for the subnet's AZ by viewing the details of the + subnet. Similarly, you can view the network border group of an EIP by + viewing the details of the EIP address. For more information about + network border groups and EIPs, see [Allocate an Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateNatGatewayAddressOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_NAT_GATEWAY_ADDRESS, [], plugins) + + def associate_route_server( + self, input: AssociateRouteServerInput, plugins: list[Plugin] | None = None + ) -> AssociateRouteServerOutput: + """ + Associates a route server with a VPC to enable dynamic route updates. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateRouteServerOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_ROUTE_SERVER, [], plugins) + + def associate_route_table( + self, input: AssociateRouteTableInput, plugins: list[Plugin] | None = None + ) -> AssociateRouteTableOutput: + """ + Associates a subnet in your VPC or an internet gateway or virtual + private gateway attached to your VPC with a route table in your VPC. + This association causes traffic from the subnet or gateway to be routed + according to the routes in the route table. The action returns an + association ID, which you need in order to disassociate the route table + later. A route table can be associated with multiple subnets. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateRouteTableOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_ROUTE_TABLE, [], plugins) + + def associate_security_group_vpc( + self, input: AssociateSecurityGroupVpcInput, plugins: list[Plugin] | None = None + ) -> AssociateSecurityGroupVpcOutput: + """ + Associates a security group with another VPC in the same Region. This + enables you to use the same security group with network interfaces and + instances in the specified VPC. + + Note: + - The VPC you want to associate the security group with must be in the + same Region. + + - You can associate the security group with another VPC if your account + owns the VPC or if the VPC was shared with you. + + - You must own the security group. + + - You cannot use this feature with default security groups. + + - You cannot use this feature with the default VPC. + + Args: + input: + An instance of `AssociateSecurityGroupVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateSecurityGroupVpcOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_SECURITY_GROUP_VPC, [], plugins) + + def associate_subnet_cidr_block( + self, input: AssociateSubnetCidrBlockInput, plugins: list[Plugin] | None = None + ) -> AssociateSubnetCidrBlockOutput: + """ + Associates a CIDR block with your subnet. You can only associate a + single IPv6 CIDR block with your subnet. + + Args: + input: + An instance of `AssociateSubnetCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateSubnetCidrBlockOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_SUBNET_CIDR_BLOCK, [], plugins) + + def associate_transit_gateway_multicast_domain( + self, + input: AssociateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayMulticastDomainOutput: + """ + Associates the specified subnets and transit gateway attachments with + the specified transit gateway multicast domain. + + The transit gateway attachment must be in the available state before you + can add a resource. Use + [DescribeTransitGatewayAttachments](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html) + to see the state of the attachment. + + Args: + input: + An instance of `AssociateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayMulticastDomainOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + def associate_transit_gateway_policy_table( + self, + input: AssociateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayPolicyTableOutput: + """ + Associates the specified transit gateway attachment with a transit + gateway policy table. + + Args: + input: + An instance of `AssociateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayPolicyTableOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + def associate_transit_gateway_route_table( + self, + input: AssociateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> AssociateTransitGatewayRouteTableOutput: + """ + Associates the specified attachment with the specified transit gateway + route table. You can associate only one route table with an attachment. + + Args: + input: + An instance of `AssociateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTransitGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def associate_trunk_interface( + self, input: AssociateTrunkInterfaceInput, plugins: list[Plugin] | None = None + ) -> AssociateTrunkInterfaceOutput: + """ + Associates a branch network interface with a trunk network interface. + + Before you create the association, use + [CreateNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) + command and set the interface type to `trunk`. You must also create a + network interface for each branch network interface that you want to + associate with the trunk network interface. + + Args: + input: + An instance of `AssociateTrunkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateTrunkInterfaceOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_TRUNK_INTERFACE, [], plugins) + + def associate_vpc_cidr_block( + self, input: AssociateVpcCidrBlockInput, plugins: list[Plugin] | None = None + ) -> AssociateVpcCidrBlockOutput: + """ + Associates a CIDR block with your VPC. You can associate a secondary + IPv4 CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR + block from an IPv6 address pool that you provisioned through bring your + own IP addresses + ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). + + You must specify one of the following in the request: an IPv4 CIDR + block, an IPv6 pool, or an Amazon-provided IPv6 CIDR block. + + For more information about associating CIDR blocks with your VPC and + applicable restrictions, see [IP addressing for your VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AssociateVpcCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateVpcCidrBlockOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_VPC_CIDR_BLOCK, [], plugins) + + def attach_classic_link_vpc( + self, input: AttachClassicLinkVpcInput, plugins: list[Plugin] | None = None + ) -> AttachClassicLinkVpcOutput: + """ + Note: + This action is deprecated. + + Links an EC2-Classic instance to a ClassicLink-enabled VPC through one + or more of the VPC security groups. You cannot link an EC2-Classic + instance to more than one VPC at a time. You can only link an instance + that's in the `running` state. An instance is automatically unlinked + from a VPC when it's stopped - you can link it to the VPC again when + you restart it. + + After you've linked an instance, you cannot change the VPC security + groups that are associated with it. To change the security groups, you + must first unlink the instance, and then link it again. + + Linking your instance to a VPC is sometimes referred to as *attaching* + your instance. + + Args: + input: + An instance of `AttachClassicLinkVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachClassicLinkVpcOutput`. + """ + return self._invoke(input, _models.ATTACH_CLASSIC_LINK_VPC, [], plugins) + + def attach_image_watermark( + self, input: AttachImageWatermarkInput, plugins: list[Plugin] | None = None + ) -> AttachImageWatermarkOutput: + """ + Attaches a watermark to a non-public AMI. The watermark is a structured + identifier that automatically propagates to all derivative images + created through + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html), + and + [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html). + + Only the AMI owner can attach watermarks. Watermarks cannot be added to + public AMIs. + + Args: + input: + An instance of `AttachImageWatermarkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachImageWatermarkOutput`. + """ + return self._invoke(input, _models.ATTACH_IMAGE_WATERMARK, [], plugins) + + def attach_internet_gateway( + self, input: AttachInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> AttachInternetGatewayOutput: + """ + Attaches an internet gateway or a virtual private gateway to a VPC, + enabling connectivity between the internet and the VPC. For more + information, see [Internet + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AttachInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachInternetGatewayOutput`. + """ + return self._invoke(input, _models.ATTACH_INTERNET_GATEWAY, [], plugins) + + def attach_network_interface( + self, input: AttachNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> AttachNetworkInterfaceOutput: + """ + Attaches a network interface to an instance. + + Args: + input: + An instance of `AttachNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachNetworkInterfaceOutput`. + """ + return self._invoke(input, _models.ATTACH_NETWORK_INTERFACE, [], plugins) + + def attach_verified_access_trust_provider( + self, + input: AttachVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> AttachVerifiedAccessTrustProviderOutput: + """ + Attaches the specified Amazon Web Services Verified Access trust + provider to the specified Amazon Web Services Verified Access instance. + + Args: + input: + An instance of `AttachVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVerifiedAccessTrustProviderOutput`. + """ + return self._invoke( + input, _models.ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + def attach_volume( + self, input: AttachVolumeInput, plugins: list[Plugin] | None = None + ) -> AttachVolumeOutput: + """ + Attaches an Amazon EBS volume to a `running` or `stopped` instance, and + exposes it to the instance with the specified device name. + + Note: + The maximum number of Amazon EBS volumes that you can attach to an + instance depends on the instance type. If you exceed the volume + attachment limit for an instance type, the attachment request fails with + the `AttachmentLimitExceeded` error. For more information, see [Instance + volume + limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html). + + After you attach an EBS volume, you must make it available for use. For + more information, see [Make an EBS volume available for + use](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html). + + If a volume has an Amazon Web Services Marketplace product code: + + - The volume can be attached only to a stopped instance. + + - Amazon Web Services Marketplace product codes are copied from the + volume to the instance. + + - You must be subscribed to the product. + + - The instance type and operating system of the instance must support + the product. For example, you can't detach a volume from a Windows + instance and attach it to a Linux instance. + + For more information, see [Attach an Amazon EBS volume to an + instance](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-attaching-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `AttachVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVolumeOutput`. + """ + return self._invoke(input, _models.ATTACH_VOLUME, [], plugins) + + def attach_vpn_gateway( + self, input: AttachVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> AttachVpnGatewayOutput: + """ + Attaches an available virtual private gateway to a VPC. You can attach + one virtual private gateway to one VPC at a time. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `AttachVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachVpnGatewayOutput`. + """ + return self._invoke(input, _models.ATTACH_VPN_GATEWAY, [], plugins) + + def authorize_client_vpn_ingress( + self, input: AuthorizeClientVpnIngressInput, plugins: list[Plugin] | None = None + ) -> AuthorizeClientVpnIngressOutput: + """ + Adds an ingress authorization rule to a Client VPN endpoint. Ingress + authorization rules act as firewall rules that grant access to networks. + You must configure ingress authorization rules to enable clients to + access resources in Amazon Web Services or on-premises networks. + + Args: + input: + An instance of `AuthorizeClientVpnIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeClientVpnIngressOutput`. + """ + return self._invoke(input, _models.AUTHORIZE_CLIENT_VPN_INGRESS, [], plugins) + + def authorize_security_group_egress( + self, + input: AuthorizeSecurityGroupEgressInput, + plugins: list[Plugin] | None = None, + ) -> AuthorizeSecurityGroupEgressOutput: + """ + Adds the specified outbound (egress) rules to a security group. + + An outbound rule permits instances to send traffic to the specified IPv4 + or IPv6 address ranges, the IP address ranges specified by a prefix + list, or the instances that are associated with a source security group. + For more information, see [Security group + rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). + + You must specify exactly one of the following destinations: an IPv4 or + IPv6 address range, a prefix list, or a security group. You must specify + a protocol for each rule (for example, TCP). If the protocol is TCP or + UDP, you must also specify a port or port range. If the protocol is ICMP + or ICMPv6, you must also specify the ICMP type and code. + + Rule changes are propagated to instances associated with the security + group as quickly as possible. However, a small delay might occur. + + For examples of rules that you can add to security groups for specific + access scenarios, see [Security group rules for different use + cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) + in the *Amazon EC2 User Guide*. + + For information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AuthorizeSecurityGroupEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeSecurityGroupEgressOutput`. + """ + return self._invoke(input, _models.AUTHORIZE_SECURITY_GROUP_EGRESS, [], plugins) + + def authorize_security_group_ingress( + self, + input: AuthorizeSecurityGroupIngressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> AuthorizeSecurityGroupIngressOutput: + """ + Adds the specified inbound (ingress) rules to a security group. + + An inbound rule permits instances to receive traffic from the specified + IPv4 or IPv6 address range, the IP address ranges that are specified by + a prefix list, or the instances that are associated with a destination + security group. For more information, see [Security group + rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). + + You must specify exactly one of the following sources: an IPv4 or IPv6 + address range, a prefix list, or a security group. You must specify a + protocol for each rule (for example, TCP). If the protocol is TCP or + UDP, you must also specify a port or port range. If the protocol is ICMP + or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. + + Rule changes are propagated to instances associated with the security + group as quickly as possible. However, a small delay might occur. + + For examples of rules that you can add to security groups for specific + access scenarios, see [Security group rules for different use + cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) + in the *Amazon EC2 User Guide*. + + For more information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `AuthorizeSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeSecurityGroupIngressOutput`. + """ + return self._invoke( + input, _models.AUTHORIZE_SECURITY_GROUP_INGRESS, [], plugins + ) + + def batch_modify_ipam_routing_policy_registrations( + self, + input: BatchModifyIpamRoutingPolicyRegistrationsInput, + plugins: list[Plugin] | None = None, + ) -> BatchModifyIpamRoutingPolicyRegistrationsOutput: + """ + Modifies multiple routing policy registrations in a single operation. + You can create, update, or delete Route Origin Authorizations (ROAs) in + batch. + + Args: + input: + An instance of `BatchModifyIpamRoutingPolicyRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BatchModifyIpamRoutingPolicyRegistrationsOutput`. + """ + return self._invoke( + input, _models.BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS, [], plugins + ) + + def bundle_instance( + self, input: BundleInstanceInput, plugins: list[Plugin] | None = None + ) -> BundleInstanceOutput: + """ + Bundles an Amazon instance store-backed Windows instance. + + During bundling, only the root device volume (C:\\) is bundled. Data on + other instance store volumes is not preserved. + + Note: + BundleInstance is no longer supported. To create an AMI, use + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html) + instead. For more information about creating an Amazon EBS-backed AMI, + see [Create an Amazon EBS-backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `BundleInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BundleInstanceOutput`. + """ + return self._invoke(input, _models.BUNDLE_INSTANCE, [], plugins) + + def cancel_bundle_task( + self, input: CancelBundleTaskInput, plugins: list[Plugin] | None = None + ) -> CancelBundleTaskOutput: + """ + Cancels a bundling operation for an instance store-backed Windows + instance. + + Note: + CancelBundleTask is no longer supported because + [BundleInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BundleInstance.html), + the operation it cancels, is no longer supported. + + Args: + input: + An instance of `CancelBundleTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelBundleTaskOutput`. + """ + return self._invoke(input, _models.CANCEL_BUNDLE_TASK, [], plugins) + + def cancel_capacity_reservation( + self, input: CancelCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> CancelCapacityReservationOutput: + """ + Cancels the specified Capacity Reservation, releases the reserved + capacity, and changes the Capacity Reservation's state to `cancelled`. + + You can cancel a Capacity Reservation that is in the following states: + + - `assessing` + + - `scheduled` --- requires a cancellation quote. Use + `CreateCapacityReservationCancellationQuote` to generate a quote, then + pass the quote ID with `ApplyCancellationCharges` set to + `commitment-wind-down`. The cancellation charge depends on how close + the reservation is to its start date. + + - `active` and there is no commitment duration or the commitment + duration has elapsed. + + - `active` during the commitment duration --- requires a cancellation + quote. Use `CreateCapacityReservationCancellationQuote` to generate a + quote, then pass the quote ID with `ApplyCancellationCharges` set to + `commitment-wind-down`. The Capacity Reservation transitions to + `cancelling` while charges are applied. + + - `delayed` --- the commitment duration is waived, so no cancellation + charge applies. + + Note: + You can't modify or cancel a Capacity Block. For more information, see + [Capacity Blocks for + ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html). + + Instances running in the reserved capacity continue running until you + stop them. Stopped instances that target the Capacity Reservation can no + longer launch. Modify these instances to either target a different + Capacity Reservation, launch On-Demand Instance capacity, or run in any + open Capacity Reservation that has matching attributes and sufficient + capacity. + + Args: + input: + An instance of `CancelCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelCapacityReservationOutput`. + """ + return self._invoke(input, _models.CANCEL_CAPACITY_RESERVATION, [], plugins) + + def cancel_capacity_reservation_fleets( + self, + input: CancelCapacityReservationFleetsInput, + plugins: list[Plugin] | None = None, + ) -> CancelCapacityReservationFleetsOutput: + """ + Cancels one or more Capacity Reservation Fleets. When you cancel a + Capacity Reservation Fleet, the following happens: + + - The Capacity Reservation Fleet's status changes to `cancelled`. + + - The individual Capacity Reservations in the Fleet are cancelled. + Instances running in the Capacity Reservations at the time of + cancelling the Fleet continue to run in shared capacity. + + - The Fleet stops creating new Capacity Reservations. + + Args: + input: + An instance of `CancelCapacityReservationFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelCapacityReservationFleetsOutput`. + """ + return self._invoke( + input, _models.CANCEL_CAPACITY_RESERVATION_FLEETS, [], plugins + ) + + def cancel_conversion_task( + self, input: CancelConversionTaskInput, plugins: list[Plugin] | None = None + ) -> CancelConversionTaskOutput: + """ + Cancels an active conversion task. The task can be the import of an + instance or volume. The action removes all artifacts of the conversion, + including a partially uploaded volume or instance. If the conversion is + complete or is in the process of transferring the final disk image, the + command fails and returns an exception. + + Args: + input: + An instance of `CancelConversionTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelConversionTaskOutput`. + """ + return self._invoke(input, _models.CANCEL_CONVERSION_TASK, [], plugins) + + def cancel_declarative_policies_report( + self, + input: CancelDeclarativePoliciesReportInput, + plugins: list[Plugin] | None = None, + ) -> CancelDeclarativePoliciesReportOutput: + """ + Cancels the generation of an account status report. + + You can only cancel a report while it has the `running` status. Reports + with other statuses (`complete`, `cancelled`, or `error`) can't be + canceled. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `CancelDeclarativePoliciesReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelDeclarativePoliciesReportOutput`. + """ + return self._invoke( + input, _models.CANCEL_DECLARATIVE_POLICIES_REPORT, [], plugins + ) + + def cancel_export_task( + self, input: CancelExportTaskInput, plugins: list[Plugin] | None = None + ) -> CancelExportTaskOutput: + """ + Cancels an active export task. The request removes all artifacts of the + export, including any partially-created Amazon S3 objects. If the export + task is complete or is in the process of transferring the final disk + image, the command fails and returns an error. + + Args: + input: + An instance of `CancelExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelExportTaskOutput`. + """ + return self._invoke(input, _models.CANCEL_EXPORT_TASK, [], plugins) + + def cancel_image_launch_permission( + self, + input: CancelImageLaunchPermissionInput, + plugins: list[Plugin] | None = None, + ) -> CancelImageLaunchPermissionOutput: + """ + Removes your Amazon Web Services account from the launch permissions for + the specified AMI. For more information, see [Cancel having an AMI + shared with your Amazon Web Services + account](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cancel-sharing-an-AMI.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CancelImageLaunchPermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelImageLaunchPermissionOutput`. + """ + return self._invoke(input, _models.CANCEL_IMAGE_LAUNCH_PERMISSION, [], plugins) + + def cancel_import_task( + self, + input: CancelImportTaskInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CancelImportTaskOutput: + """ + Cancels an in-process import virtual machine or import snapshot task. + + Args: + input: + An instance of `CancelImportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelImportTaskOutput`. + """ + return self._invoke(input, _models.CANCEL_IMPORT_TASK, [], plugins) + + def cancel_reserved_instances_listing( + self, + input: CancelReservedInstancesListingInput, + plugins: list[Plugin] | None = None, + ) -> CancelReservedInstancesListingOutput: + """ + Cancels the specified Reserved Instance listing in the Reserved Instance + Marketplace. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CancelReservedInstancesListingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelReservedInstancesListingOutput`. + """ + return self._invoke( + input, _models.CANCEL_RESERVED_INSTANCES_LISTING, [], plugins + ) + + def cancel_spot_fleet_requests( + self, input: CancelSpotFleetRequestsInput, plugins: list[Plugin] | None = None + ) -> CancelSpotFleetRequestsOutput: + """ + Cancels the specified Spot Fleet requests. + + After you cancel a Spot Fleet request, the Spot Fleet launches no new + instances. + + You must also specify whether a canceled Spot Fleet request should + terminate its instances. If you choose to terminate the instances, the + Spot Fleet request enters the `cancelled_terminating` state. Otherwise, + the Spot Fleet request enters the `cancelled_running` state and the + instances continue to run until they are interrupted or you terminate + them manually. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + **Restrictions** + + - You can delete up to 100 fleets in a single request. If you exceed the + specified number, no fleets are deleted. + + Args: + input: + An instance of `CancelSpotFleetRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelSpotFleetRequestsOutput`. + """ + return self._invoke(input, _models.CANCEL_SPOT_FLEET_REQUESTS, [], plugins) + + def cancel_spot_instance_requests( + self, + input: CancelSpotInstanceRequestsInput, + plugins: list[Plugin] | None = None, + ) -> CancelSpotInstanceRequestsOutput: + """ + Cancels one or more Spot Instance requests. + + Warning: + Canceling a Spot Instance request does not terminate running Spot + Instances associated with the request. + + Args: + input: + An instance of `CancelSpotInstanceRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelSpotInstanceRequestsOutput`. + """ + return self._invoke(input, _models.CANCEL_SPOT_INSTANCE_REQUESTS, [], plugins) + + def confirm_product_instance( + self, input: ConfirmProductInstanceInput, plugins: list[Plugin] | None = None + ) -> ConfirmProductInstanceOutput: + """ + Determines whether a product code is associated with an instance. This + action can only be used by the owner of the product code. It is useful + when a product code owner must verify whether another user's instance + is eligible for support. + + Args: + input: + An instance of `ConfirmProductInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ConfirmProductInstanceOutput`. + """ + return self._invoke(input, _models.CONFIRM_PRODUCT_INSTANCE, [], plugins) + + def copy_fpga_image( + self, input: CopyFpgaImageInput, plugins: list[Plugin] | None = None + ) -> CopyFpgaImageOutput: + """ + Copies the specified Amazon FPGA Image (AFI) to the current Region. + + Args: + input: + An instance of `CopyFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyFpgaImageOutput`. + """ + return self._invoke(input, _models.COPY_FPGA_IMAGE, [], plugins) + + def copy_image( + self, input: CopyImageInput, plugins: list[Plugin] | None = None + ) -> CopyImageOutput: + """ + Initiates an AMI copy operation. You must specify the source AMI ID and + both the source and destination locations. The copy operation must be + initiated in the destination Region. + + **CopyImage supports the following source to destination copies:** + + - Region to Region + + - Region to Outpost + + - Parent Region to Local Zone + + - Local Zone to parent Region + + - Between Local Zones with the same parent Region (only supported for + certain Local Zones) + + **CopyImage does not support the following source to destination + copies:** + + - Local Zone to non-parent Regions + + - Between Local Zones with different parent Regions + + - Local Zone to Outpost + + - Outpost to Local Zone + + - Outpost to Region + + - Between Outposts + + - Within same Outpost + + - Cross-partition copies (use + [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html) + instead) + + **Destination specification** + + - Region to Region: The destination Region is the Region in which you + initiate the copy operation. + + - Region to Outpost: Specify the destination using the + `DestinationOutpostArn` parameter (the ARN of the Outpost) + + - Region to Local Zone, and Local Zone to Local Zone copies: Specify the + destination using the `DestinationAvailabilityZone` parameter (the + name of the destination Local Zone) or `DestinationAvailabilityZoneId` + parameter (the ID of the destination Local Zone). + + **Snapshot encryption** + + - Region to Outpost: Backing snapshots copied to an Outpost are + encrypted by default using the default encryption key for the Region + or the key that you specify. Outposts do not support unencrypted + snapshots. + + - Region to Local Zone, and Local Zone to Local Zone: Not all Local + Zones require encrypted snapshots. In Local Zones that require + encrypted snapshots, backing snapshots are automatically encrypted + during copy. In Local Zones where encryption is not required, + snapshots retain their original encryption state (encrypted or + unencrypted) by default. + + For more information, including the required permissions for copying an + AMI, see [Copy an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CopyImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyImageOutput`. + """ + return self._invoke(input, _models.COPY_IMAGE, [], plugins) + + def copy_snapshot( + self, input: CopySnapshotInput, plugins: list[Plugin] | None = None + ) -> CopySnapshotOutput: + """ + Creates an exact copy of an Amazon EBS snapshot. + + The location of the source snapshot determines whether you can copy it + or not, and the allowed destinations for the snapshot copy. + + - If the source snapshot is in a Region, you can copy it within that + Region, to another Region, to an Outpost associated with that Region, + or to a Local Zone in that Region. + + - If the source snapshot is in a Local Zone, you can copy it within that + Local Zone, to another Local Zone in the same zone group, or to the + parent Region of the Local Zone. + + - If the source snapshot is on an Outpost, you can't copy it. + + When copying snapshots to a Region, the encryption outcome for the + snapshot copy depends on the Amazon EBS encryption by default setting + for the destination Region, the encryption status of the source + snapshot, and the encryption parameters you specify in the request. For + more information, see [Encryption and snapshot + copying](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots). + + Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots + are not supported on Outposts. For more information, [Amazon EBS local + snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations). + + Note: + Snapshots copies have an arbitrary source volume ID. Do not use this + volume ID for any purpose. + + For more information, see [Copy an Amazon EBS + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CopySnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopySnapshotOutput`. + """ + return self._invoke(input, _models.COPY_SNAPSHOT, [], plugins) + + def copy_volumes( + self, input: CopyVolumesInput, plugins: list[Plugin] | None = None + ) -> CopyVolumesOutput: + """ + Creates a crash-consistent, point-in-time copy of an existing Amazon EBS + volume within the same Availability Zone. The volume copy can be + attached to an Amazon EC2 instance once it reaches the `available` + state. For more information, see [Copy an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copying-volume.html). + + Args: + input: + An instance of `CopyVolumesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyVolumesOutput`. + """ + return self._invoke(input, _models.COPY_VOLUMES, [], plugins) + + def create_application_status_check( + self, + input: CreateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> CreateApplicationStatusCheckOutput: + """ + Creates an application status check for monitoring the health of + applications running on your instances. You can configure the protocol, + port, path, and thresholds for the health check. The following rules + apply: + + - You can create a maximum of 50 application status checks for each + account. + + - You must associate the check with instances or tags using + `AssociateApplicationStatusCheck` before health checks start. + + - You must set the `Timeout` value to less than the `Interval` value. + + - You must start the `Path` with a forward slash (`/`). Default: `/`. + + - You can specify `Aggregation` as `included` or `excluded`. If you do + not specify a value, it defaults to `included`, which means the check + contributes to the instance-level application status. + + - You can use the following default values: `Interval` is 60 seconds, + `Timeout` is 6 seconds, `FailureThreshold` is 2, `SuccessThreshold` is + 2, `StatusCodeMatcher` is `200`, `InitializationGracePeriodSeconds` is + 300 seconds. + + - You can tag the application status check during creation. For more + information, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + + Args: + input: + An instance of `CreateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateApplicationStatusCheckOutput`. + """ + return self._invoke(input, _models.CREATE_APPLICATION_STATUS_CHECK, [], plugins) + + def create_capacity_manager_data_export( + self, + input: CreateCapacityManagerDataExportInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityManagerDataExportOutput: + """ + Creates a new data export configuration for EC2 Capacity Manager. This + allows you to automatically export capacity usage data to an S3 bucket + on a scheduled basis. The exported data includes metrics for On-Demand, + Spot, and Capacity Reservations usage across your organization. + + Args: + input: + An instance of `CreateCapacityManagerDataExportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityManagerDataExportOutput`. + """ + return self._invoke( + input, _models.CREATE_CAPACITY_MANAGER_DATA_EXPORT, [], plugins + ) + + def create_capacity_reservation( + self, input: CreateCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> CreateCapacityReservationOutput: + """ + Creates a new Capacity Reservation with the specified attributes. + Capacity Reservations enable you to reserve capacity for your Amazon EC2 + instances in a specific Availability Zone for any duration. + + You can create a Capacity Reservation at any time, and you can choose + when it starts. You can create a Capacity Reservation for immediate use + or you can request a Capacity Reservation for a future date. + + For more information, see [Reserve compute capacity with On-Demand + Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) + in the *Amazon EC2 User Guide*. + + Your request to create a Capacity Reservation could fail if: + + - Amazon EC2 does not have sufficient capacity. In this case, try again + at a later time, try in a different Availability Zone, or request a + smaller Capacity Reservation. If your workload is flexible across + instance types and sizes, try with different instance attributes. + + - The requested quantity exceeds your On-Demand Instance quota. In this + case, increase your On-Demand Instance quota for the requested + instance type and try again. For more information, see [Amazon EC2 + Service + Quotas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationOutput`. + """ + return self._invoke(input, _models.CREATE_CAPACITY_RESERVATION, [], plugins) + + def create_capacity_reservation_by_splitting( + self, + input: CreateCapacityReservationBySplittingInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationBySplittingOutput: + """ + Create a new Capacity Reservation by splitting the capacity of the + source Capacity Reservation. The new Capacity Reservation will have the + same attributes as the source Capacity Reservation except for tags. The + source Capacity Reservation must be `active` and owned by your Amazon + Web Services account. + + Args: + input: + An instance of `CreateCapacityReservationBySplittingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationBySplittingOutput`. + """ + return self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_BY_SPLITTING, [], plugins + ) + + def create_capacity_reservation_cancellation_quote( + self, + input: CreateCapacityReservationCancellationQuoteInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationCancellationQuoteOutput: + """ + Generates a cancellation quote for a future-dated Capacity Reservation + that is within its commitment duration. The quote includes the + cancellation terms and a quote ID that you can pass to the + `CancelCapacityReservation` action. Cancellation quotes are valid for 24 + hours. + + Args: + input: + An instance of `CreateCapacityReservationCancellationQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationCancellationQuoteOutput`. + """ + return self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE, [], plugins + ) + + def create_capacity_reservation_date_change_quote( + self, + input: CreateCapacityReservationDateChangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationDateChangeQuoteOutput: + """ + Generates a quote for changing the start date of a future-dated Capacity + Reservation that has not yet been delivered. The quote includes the new + start date, the resulting commitment end date, and a quote ID. Pass the + quote ID to `ModifyCapacityReservation` to apply the change. + + The cumulative pushout across all changes is limited to 30 days from the + Capacity Reservation's original start date. Quotes are valid for 24 + hours, and always expire at least one hour before the start date. + + Args: + input: + An instance of `CreateCapacityReservationDateChangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationDateChangeQuoteOutput`. + """ + return self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE, [], plugins + ) + + def create_capacity_reservation_fleet( + self, + input: CreateCapacityReservationFleetInput, + plugins: list[Plugin] | None = None, + ) -> CreateCapacityReservationFleetOutput: + """ + Creates a Capacity Reservation Fleet. For more information, see [Create + a Capacity Reservation + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateCapacityReservationFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityReservationFleetOutput`. + """ + return self._invoke( + input, _models.CREATE_CAPACITY_RESERVATION_FLEET, [], plugins + ) + + def create_carrier_gateway( + self, input: CreateCarrierGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateCarrierGatewayOutput: + """ + Creates a carrier gateway. For more information about carrier gateways, + see [Carrier + gateways](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway) + in the *Amazon Web Services Wavelength Developer Guide*. + + Args: + input: + An instance of `CreateCarrierGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCarrierGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_CARRIER_GATEWAY, [], plugins) + + def create_client_vpn_endpoint( + self, input: CreateClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateClientVpnEndpointOutput: + """ + Creates a Client VPN endpoint. A Client VPN endpoint is the resource you + create and configure to enable and manage client VPN sessions. It is the + destination endpoint at which all client VPN sessions are terminated. + + Args: + input: + An instance of `CreateClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClientVpnEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_CLIENT_VPN_ENDPOINT, [], plugins) + + def create_client_vpn_route( + self, input: CreateClientVpnRouteInput, plugins: list[Plugin] | None = None + ) -> CreateClientVpnRouteOutput: + """ + Adds a route to a network to a Client VPN endpoint. Each Client VPN + endpoint has a route table that describes the available destination + network routes. Each route in the route table specifies the path for + traffic to specific resources or networks. + + Args: + input: + An instance of `CreateClientVpnRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClientVpnRouteOutput`. + """ + return self._invoke(input, _models.CREATE_CLIENT_VPN_ROUTE, [], plugins) + + def create_coip_cidr( + self, input: CreateCoipCidrInput, plugins: list[Plugin] | None = None + ) -> CreateCoipCidrOutput: + """ + Creates a range of customer-owned IP addresses. + + Args: + input: + An instance of `CreateCoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCoipCidrOutput`. + """ + return self._invoke(input, _models.CREATE_COIP_CIDR, [], plugins) + + def create_coip_pool( + self, input: CreateCoipPoolInput, plugins: list[Plugin] | None = None + ) -> CreateCoipPoolOutput: + """ + Creates a pool of customer-owned IP (CoIP) addresses. + + Args: + input: + An instance of `CreateCoipPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCoipPoolOutput`. + """ + return self._invoke(input, _models.CREATE_COIP_POOL, [], plugins) + + def create_customer_gateway( + self, input: CreateCustomerGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateCustomerGatewayOutput: + """ + Provides information to Amazon Web Services about your customer gateway + device. The customer gateway device is the appliance at your end of the + VPN connection. You must provide the IP address of the customer gateway + device's external interface. The IP address must be static and can be + behind a device performing network address translation (NAT). + + For devices that use Border Gateway Protocol (BGP), you can also provide + the device's BGP Autonomous System Number (ASN). You can use an + existing ASN assigned to your network. If you don't have an ASN + already, you can use a private ASN. For more information, see [Customer + gateway options for your Site-to-Site VPN + connection](https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + To create more than one customer gateway with the same VPN type, IP + address, and BGP ASN, specify a unique device name for each customer + gateway. An identical request returns information about the existing + customer gateway; it doesn't create a new customer gateway. + + Args: + input: + An instance of `CreateCustomerGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomerGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_CUSTOMER_GATEWAY, [], plugins) + + def create_default_subnet( + self, + input: CreateDefaultSubnetInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateDefaultSubnetOutput: + """ + Creates a default subnet with a size `/20` IPv4 CIDR block in the + specified Availability Zone in your default VPC. You can have only one + default subnet per Availability Zone. For more information, see [Create + a default + subnet](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-subnet) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateDefaultSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDefaultSubnetOutput`. + """ + return self._invoke(input, _models.CREATE_DEFAULT_SUBNET, [], plugins) + + def create_default_vpc( + self, + input: CreateDefaultVpcInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateDefaultVpcOutput: + """ + Creates a default VPC with a size `/16` IPv4 CIDR block and a default + subnet in each Availability Zone. For more information about the + components of a default VPC, see [Default + VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) + in the *Amazon VPC User Guide*. You cannot specify the components of the + default VPC yourself. + + If you deleted your previous default VPC, you can create a default VPC. + You cannot have more than one default VPC per Region. + + Args: + input: + An instance of `CreateDefaultVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDefaultVpcOutput`. + """ + return self._invoke(input, _models.CREATE_DEFAULT_VPC, [], plugins) + + def create_delegate_mac_volume_ownership_task( + self, + input: CreateDelegateMacVolumeOwnershipTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateDelegateMacVolumeOwnershipTaskOutput: + """ + Delegates ownership of the Amazon EBS root volume for an Apple silicon + Mac instance to an administrative user. + + Args: + input: + An instance of `CreateDelegateMacVolumeOwnershipTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDelegateMacVolumeOwnershipTaskOutput`. + """ + return self._invoke( + input, _models.CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK, [], plugins + ) + + def create_dhcp_options( + self, input: CreateDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> CreateDhcpOptionsOutput: + """ + Creates a custom set of DHCP options. After you create a DHCP option + set, you associate it with a VPC. After you associate a DHCP option set + with a VPC, all existing and newly launched instances in the VPC use + this set of DHCP options. + + The following are the individual DHCP options you can specify. For more + information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + - `domain-name` - If you're using AmazonProvidedDNS in `us-east-1`, + specify `ec2.internal`. If you're using AmazonProvidedDNS in any + other Region, specify `region.compute.internal`. Otherwise, specify a + custom domain name. This value is used to complete unqualified DNS + hostnames. + + Some Linux operating systems accept multiple domain names separated by + spaces. However, Windows and other Linux operating systems treat the + value as a single domain, which results in unexpected behavior. If + your DHCP option set is associated with a VPC that has instances + running operating systems that treat the value as a single domain, + specify only one domain name. + + - `domain-name-servers` - The IP addresses of up to four DNS servers, or + AmazonProvidedDNS. To specify multiple domain name servers in a single + parameter, separate the IP addresses using commas. To have your + instances receive custom DNS hostnames as specified in `domain-name`, + you must specify a custom DNS server. + + - `ntp-servers` - The IP addresses of up to eight Network Time Protocol + (NTP) servers (four IPv4 addresses and four IPv6 addresses). + + - `netbios-name-servers` - The IP addresses of up to four NetBIOS name + servers. + + - `netbios-node-type` - The NetBIOS node type (1, 2, 4, or 8). We + recommend that you specify 2. Broadcast and multicast are not + supported. For more information about NetBIOS node types, see [RFC + 2132](https://www.ietf.org/rfc/rfc2132.txt). + + - `ipv6-address-preferred-lease-time` - A value (in seconds, minutes, + hours, or years) for how frequently a running instance with an IPv6 + assigned to it goes through DHCPv6 lease renewal. Acceptable values + are between 140 and 2147483647 seconds (approximately 68 years). If no + value is entered, the default lease time is 140 seconds. If you use + long-term addressing for EC2 instances, you can increase the lease + time and avoid frequent lease renewal requests. Lease renewal + typically occurs when half of the lease time has elapsed. + + Args: + input: + An instance of `CreateDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDhcpOptionsOutput`. + """ + return self._invoke(input, _models.CREATE_DHCP_OPTIONS, [], plugins) + + def create_egress_only_internet_gateway( + self, + input: CreateEgressOnlyInternetGatewayInput, + plugins: list[Plugin] | None = None, + ) -> CreateEgressOnlyInternetGatewayOutput: + """ + [IPv6 only] Creates an egress-only internet gateway for your VPC. An + egress-only internet gateway is used to enable outbound communication + over IPv6 from instances in your VPC to the internet, and prevents hosts + outside of your VPC from initiating an IPv6 connection with your + instance. + + Args: + input: + An instance of `CreateEgressOnlyInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateEgressOnlyInternetGatewayOutput`. + """ + return self._invoke( + input, _models.CREATE_EGRESS_ONLY_INTERNET_GATEWAY, [], plugins + ) + + def create_fleet( + self, input: CreateFleetInput, plugins: list[Plugin] | None = None + ) -> CreateFleetOutput: + """ + Creates an EC2 Fleet that contains the configuration information for + On-Demand Instances and Spot Instances. Instances are launched + immediately if there is available capacity. + + A single EC2 Fleet can include multiple launch specifications that vary + by instance type, AMI, Availability Zone, or subnet. + + For more information, see [EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFleetOutput`. + """ + return self._invoke(input, _models.CREATE_FLEET, [], plugins) + + def create_flow_logs( + self, input: CreateFlowLogsInput, plugins: list[Plugin] | None = None + ) -> CreateFlowLogsOutput: + """ + Creates one or more flow logs to capture information about IP traffic + for a specific network interface, subnet, or VPC. + + Flow log data for a monitored network interface is recorded as flow log + records, which are log events consisting of fields that describe the + traffic flow. For more information, see [Flow log + records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html) + in the *Amazon VPC User Guide*. + + When publishing to CloudWatch Logs, flow log records are published to a + log group, and each network interface has a unique log stream in the log + group. When publishing to Amazon S3, flow log records for all of the + monitored network interfaces are published to a single log file object + that is stored in the specified bucket. + + For more information, see [VPC Flow + Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFlowLogsOutput`. + """ + return self._invoke(input, _models.CREATE_FLOW_LOGS, [], plugins) + + def create_fpga_image( + self, input: CreateFpgaImageInput, plugins: list[Plugin] | None = None + ) -> CreateFpgaImageOutput: + """ + Creates an Amazon FPGA Image (AFI) from the specified design checkpoint + (DCP). + + The create operation is asynchronous. To verify that the AFI was + successfully created and is ready for use, check the output logs. + + An AFI contains the FPGA bitstream that is ready to download to an FPGA. + You can securely deploy an AFI on multiple FPGA-accelerated instances. + For more information, see the [Amazon Web Services FPGA Hardware + Development Kit](https://github.com/aws/aws-fpga/). + + Args: + input: + An instance of `CreateFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateFpgaImageOutput`. + """ + return self._invoke(input, _models.CREATE_FPGA_IMAGE, [], plugins) + + def create_image( + self, input: CreateImageInput, plugins: list[Plugin] | None = None + ) -> CreateImageOutput: + """ + Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that + is either running or stopped. + + If you customized your instance with instance store volumes or Amazon + EBS volumes in addition to the root device volume, the new AMI contains + block device mapping information for those volumes. When you launch an + instance from this new AMI, the instance automatically launches with + those additional volumes. + + The location of the source instance determines where you can create the + snapshots of the AMI: + + - If the source instance is in a Region, you must create the snapshots + in the same Region as the instance. + + - If the source instance is in a Local Zone, you can create the + snapshots in the same Local Zone or in its parent Region. + + - If the source instance is on an Outpost that supports local snapshots, + you can create the snapshots on the same Outpost or in the parent + Region of that Outpost. In this case, you must use the + `SnapshotLocation` parameter to specify where to create the snapshots. + + For more information, see [Create an Amazon EBS-backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `CreateImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateImageOutput`. + """ + return self._invoke(input, _models.CREATE_IMAGE, [], plugins) + + def create_image_usage_report( + self, input: CreateImageUsageReportInput, plugins: list[Plugin] | None = None + ) -> CreateImageUsageReportOutput: + """ + Creates a report that shows how your image is used across other Amazon + Web Services accounts. The report provides visibility into which + accounts are using the specified image, and how many resources (EC2 + instances or launch templates) are referencing it. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateImageUsageReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateImageUsageReportOutput`. + """ + return self._invoke(input, _models.CREATE_IMAGE_USAGE_REPORT, [], plugins) + + def create_instance_connect_endpoint( + self, + input: CreateInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> CreateInstanceConnectEndpointOutput: + """ + Creates an EC2 Instance Connect Endpoint. + + An EC2 Instance Connect Endpoint allows you to connect to an instance, + without requiring the instance to have a public IPv4 or public IPv6 + address. For more information, see [Connect to your instances using EC2 + Instance Connect + Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceConnectEndpointOutput`. + """ + return self._invoke( + input, _models.CREATE_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + def create_instance_event_window( + self, + input: CreateInstanceEventWindowInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateInstanceEventWindowOutput: + """ + Creates an event window in which scheduled events for the associated + Amazon EC2 instances can run. + + You can define either a set of time ranges or a cron expression when + creating the event window, but not both. All event window times are in + UTC. + + You can create up to 200 event windows per Amazon Web Services Region. + + When you create the event window, targets (instance IDs, Dedicated Host + IDs, or tags) are not yet associated with it. To ensure that the event + window can be used, you must associate one or more targets with it by + using the AssociateInstanceEventWindow API. + + Warning: + Event windows are applicable only for scheduled events that stop, + reboot, or terminate instances. + + Event windows are *not* applicable for: + + - Expedited scheduled events and network maintenance events. + + - Unscheduled maintenance such as AutoRecovery and unplanned reboots. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceEventWindowOutput`. + """ + return self._invoke(input, _models.CREATE_INSTANCE_EVENT_WINDOW, [], plugins) + + def create_instance_export_task( + self, input: CreateInstanceExportTaskInput, plugins: list[Plugin] | None = None + ) -> CreateInstanceExportTaskOutput: + """ + Exports a running or stopped instance to an Amazon S3 bucket. + + For information about the prerequisites for your Amazon S3 bucket, + supported operating systems, image formats, and known limitations for + the types of instances you can export, see [Exporting an instance as a + VM Using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `CreateInstanceExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceExportTaskOutput`. + """ + return self._invoke(input, _models.CREATE_INSTANCE_EXPORT_TASK, [], plugins) + + def create_internet_gateway( + self, + input: CreateInternetGatewayInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateInternetGatewayOutput: + """ + Creates an internet gateway for use with a VPC. After creating the + internet gateway, you attach it to a VPC using AttachInternetGateway. + + For more information, see [Internet + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInternetGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_INTERNET_GATEWAY, [], plugins) + + def create_interruptible_capacity_reservation_allocation( + self, + input: CreateInterruptibleCapacityReservationAllocationInput, + plugins: list[Plugin] | None = None, + ) -> CreateInterruptibleCapacityReservationAllocationOutput: + """ + Creates an interruptible Capacity Reservation by specifying the number + of unused instances you want to allocate from your source reservation. + This helps you make unused capacity available for other workloads within + your account while maintaining control to reclaim it. + + Args: + input: + An instance of `CreateInterruptibleCapacityReservationAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInterruptibleCapacityReservationAllocationOutput`. + """ + return self._invoke( + input, + _models.CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION, + [], + plugins, + ) + + def create_ipam( + self, input: CreateIpamInput | None = None, plugins: list[Plugin] | None = None + ) -> CreateIpamOutput: + """ + Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature + that you can use to automate your IP address management workflows + including assigning, tracking, troubleshooting, and auditing IP + addresses across Amazon Web Services Regions and accounts throughout + your Amazon Web Services Organization. + + For more information, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamOutput`. + """ + return self._invoke(input, _models.CREATE_IPAM, [], plugins) + + def create_ipam_external_resource_verification_token( + self, + input: CreateIpamExternalResourceVerificationTokenInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamExternalResourceVerificationTokenOutput: + """ + Create a verification token. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `CreateIpamExternalResourceVerificationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamExternalResourceVerificationTokenOutput`. + """ + return self._invoke( + input, _models.CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, [], plugins + ) + + def create_ipam_internet_registry_association( + self, + input: CreateIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamInternetRegistryAssociationOutput: + """ + Creates an association between an IPAM and a Regional Internet Registry + (RIR) for Resource Public Key Infrastructure (RPKI) management. You can + use this association to create Route Origin Authorizations (ROAs) for IP + address prefixes registered with the internet registry. Your IPAM must + be in the Advanced tier to use this feature. + + Args: + input: + An instance of `CreateIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamInternetRegistryAssociationOutput`. + """ + return self._invoke( + input, _models.CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + def create_ipam_policy( + self, input: CreateIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> CreateIpamPolicyOutput: + """ + Creates an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + For more information, see [Define public IPv4 allocation strategy with + IPAM + policies](https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPolicyOutput`. + """ + return self._invoke(input, _models.CREATE_IPAM_POLICY, [], plugins) + + def create_ipam_pool( + self, input: CreateIpamPoolInput, plugins: list[Plugin] | None = None + ) -> CreateIpamPoolOutput: + """ + Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In + IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools + enable you to organize your IP addresses according to your routing and + security needs. For example, if you have separate routing and security + needs for development and production applications, you can create a pool + for each. + + For more information, see [Create a top-level + pool](https://docs.aws.amazon.com/vpc/latest/ipam/create-top-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPoolOutput`. + """ + return self._invoke(input, _models.CREATE_IPAM_POOL, [], plugins) + + def create_ipam_prefix_list_resolver( + self, + input: CreateIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamPrefixListResolverOutput: + """ + Creates an IPAM prefix list resolver. + + An IPAM prefix list resolver is a component that manages the + synchronization between IPAM's CIDR selection rules and + customer-managed prefix lists. It automates connectivity configurations + by selecting CIDRs from IPAM's database based on your business logic + and synchronizing them with prefix lists used in resources such as VPC + route tables and security groups. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPrefixListResolverOutput`. + """ + return self._invoke( + input, _models.CREATE_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + def create_ipam_prefix_list_resolver_target( + self, + input: CreateIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamPrefixListResolverTargetOutput: + """ + Creates an IPAM prefix list resolver target. + + An IPAM prefix list resolver target is an association between a specific + customer-managed prefix list and an IPAM prefix list resolver. The + target enables the resolver to synchronize CIDRs selected by its rules + into the specified prefix list, which can then be referenced in Amazon + Web Services resources. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamPrefixListResolverTargetOutput`. + """ + return self._invoke( + input, _models.CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + def create_ipam_resource_discovery( + self, + input: CreateIpamResourceDiscoveryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateIpamResourceDiscoveryOutput: + """ + Creates an IPAM resource discovery. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `CreateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamResourceDiscoveryOutput`. + """ + return self._invoke(input, _models.CREATE_IPAM_RESOURCE_DISCOVERY, [], plugins) + + def create_ipam_routing_policy_registration( + self, + input: CreateIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> CreateIpamRoutingPolicyRegistrationOutput: + """ + Creates a routing policy registration and publishes Route Origin + Authorizations (ROAs) to the RPKI for the specified CIDR prefix and + ASNs. + + Args: + input: + An instance of `CreateIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamRoutingPolicyRegistrationOutput`. + """ + return self._invoke( + input, _models.CREATE_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + def create_ipam_scope( + self, input: CreateIpamScopeInput, plugins: list[Plugin] | None = None + ) -> CreateIpamScopeOutput: + """ + Create an IPAM scope. In IPAM, a scope is the highest-level container + within IPAM. An IPAM contains two default scopes. Each scope represents + the IP space for a single network. The private scope is intended for all + private IP address space. The public scope is intended for all public IP + address space. Scopes enable you to reuse IP addresses across multiple + unconnected networks without causing IP address overlap or conflict. + + For more information, see [Add a + scope](https://docs.aws.amazon.com/vpc/latest/ipam/add-scope-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `CreateIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIpamScopeOutput`. + """ + return self._invoke(input, _models.CREATE_IPAM_SCOPE, [], plugins) + + def create_key_pair( + self, input: CreateKeyPairInput, plugins: list[Plugin] | None = None + ) -> CreateKeyPairOutput: + """ + Creates an ED25519 or 2048-bit RSA key pair with the specified name and + in the specified format. Amazon EC2 stores the public key and displays + the private key for you to save to a file. The private key is returned + as an unencrypted PEM encoded PKCS#1 private key or an unencrypted PPK + formatted private key for use with PuTTY. If a key with the specified + name already exists, Amazon EC2 returns an error. + + The key pair returned to you is available only in the Amazon Web + Services Region in which you create it. If you prefer, you can create + your own key pair using a third-party tool and upload it to any Region + using ImportKeyPair. + + You can have up to 5,000 key pairs per Amazon Web Services Region. + + For more information, see [Amazon EC2 key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyPairOutput`. + """ + return self._invoke(input, _models.CREATE_KEY_PAIR, [], plugins) + + def create_launch_template( + self, input: CreateLaunchTemplateInput, plugins: list[Plugin] | None = None + ) -> CreateLaunchTemplateOutput: + """ + Creates a launch template. + + A launch template contains the parameters to launch an instance. When + you launch an instance using RunInstances, you can specify a launch + template instead of providing the launch parameters in the request. For + more information, see [Store instance launch parameters in Amazon EC2 + launch + templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + + To clone an existing launch template as the basis for a new launch + template, use the Amazon EC2 console. The API, SDKs, and CLI do not + support cloning a template. For more information, see [Create a launch + template from an existing launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-existing-launch-template) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLaunchTemplateOutput`. + """ + return self._invoke(input, _models.CREATE_LAUNCH_TEMPLATE, [], plugins) + + def create_launch_template_version( + self, + input: CreateLaunchTemplateVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateLaunchTemplateVersionOutput: + """ + Creates a new version of a launch template. You must specify an existing + launch template, either by name or ID. You can determine whether the new + version inherits parameters from a source version, and add or overwrite + parameters as needed. + + Launch template versions are numbered in the order in which they are + created. You can't specify, change, or replace the numbering of launch + template versions. + + Launch templates are immutable; after you create a launch template, you + can't modify it. Instead, you can create a new version of the launch + template that includes the changes that you require. + + For more information, see [Modify a launch template (manage launch + template + versions)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-launch-template-versions.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateLaunchTemplateVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLaunchTemplateVersionOutput`. + """ + return self._invoke(input, _models.CREATE_LAUNCH_TEMPLATE_VERSION, [], plugins) + + def create_local_gateway_route( + self, input: CreateLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> CreateLocalGatewayRouteOutput: + """ + Creates a static route for the specified local gateway route table. You + must specify one of the following targets: + + - `LocalGatewayVirtualInterfaceGroupId` + + - `NetworkInterfaceId` + + Args: + input: + An instance of `CreateLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteOutput`. + """ + return self._invoke(input, _models.CREATE_LOCAL_GATEWAY_ROUTE, [], plugins) + + def create_local_gateway_route_table( + self, + input: CreateLocalGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableOutput: + """ + Creates a local gateway route table. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def create_local_gateway_route_table_virtual_interface_group_association( + self, + input: CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput: + """ + Creates a local gateway route table virtual interface group association. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput`. + """ + return self._invoke( + input, + _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + [], + plugins, + ) + + def create_local_gateway_route_table_vpc_association( + self, + input: CreateLocalGatewayRouteTableVpcAssociationInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayRouteTableVpcAssociationOutput: + """ + Associates the specified VPC with the specified local gateway route + table. + + Args: + input: + An instance of `CreateLocalGatewayRouteTableVpcAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayRouteTableVpcAssociationOutput`. + """ + return self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, [], plugins + ) + + def create_local_gateway_virtual_interface( + self, + input: CreateLocalGatewayVirtualInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayVirtualInterfaceOutput: + """ + Create a virtual interface for a local gateway. + + Args: + input: + An instance of `CreateLocalGatewayVirtualInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayVirtualInterfaceOutput`. + """ + return self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE, [], plugins + ) + + def create_local_gateway_virtual_interface_group( + self, + input: CreateLocalGatewayVirtualInterfaceGroupInput, + plugins: list[Plugin] | None = None, + ) -> CreateLocalGatewayVirtualInterfaceGroupOutput: + """ + Create a local gateway virtual interface group. + + Args: + input: + An instance of `CreateLocalGatewayVirtualInterfaceGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLocalGatewayVirtualInterfaceGroupOutput`. + """ + return self._invoke( + input, _models.CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, [], plugins + ) + + def create_mac_system_integrity_protection_modification_task( + self, + input: CreateMacSystemIntegrityProtectionModificationTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateMacSystemIntegrityProtectionModificationTaskOutput: + """ + Creates a System Integrity Protection (SIP) modification task to + configure the SIP settings for an x86 Mac instance or Apple silicon Mac + instance. For more information, see [Configure SIP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure) + in the *Amazon EC2 User Guide*. + + When you configure the SIP settings for your instance, you can either + enable or disable all SIP settings, or you can specify a custom SIP + configuration that selectively enables or disables specific SIP + settings. + + Note: + If you implement a custom configuration, [connect to the instance and + verify the + settings](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-check-settings) + to ensure that your requirements are properly implemented and + functioning as intended. + + SIP configurations might change with macOS updates. We recommend that + you review custom SIP settings after any macOS version upgrade to ensure + continued compatibility and proper functionality of your security + configurations. + + To enable or disable all SIP settings, use the + **MacSystemIntegrityProtectionStatus** parameter only. For example, to + enable all SIP settings, specify the following: + + - `MacSystemIntegrityProtectionStatus=enabled` + + To specify a custom configuration that selectively enables or disables + specific SIP settings, use the **MacSystemIntegrityProtectionStatus** + parameter to enable or disable all SIP settings, and then use the + **MacSystemIntegrityProtectionConfiguration** parameter to specify + exceptions. In this case, the exceptions you specify for + **MacSystemIntegrityProtectionConfiguration** override the value you + specify for **MacSystemIntegrityProtectionStatus**. For example, to + enable all SIP settings, except `NvramProtections`, specify the + following: + + - `MacSystemIntegrityProtectionStatus=enabled` + + - `MacSystemIntegrityProtectionConfigurationRequest "NvramProtections=disabled"` + + Args: + input: + An instance of `CreateMacSystemIntegrityProtectionModificationTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMacSystemIntegrityProtectionModificationTaskOutput`. + """ + return self._invoke( + input, + _models.CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK, + [], + plugins, + ) + + def create_managed_prefix_list( + self, input: CreateManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> CreateManagedPrefixListOutput: + """ + Creates a managed prefix list. You can specify entries for the prefix + list. Each entry consists of a CIDR block and an optional description. + + Args: + input: + An instance of `CreateManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateManagedPrefixListOutput`. + """ + return self._invoke(input, _models.CREATE_MANAGED_PREFIX_LIST, [], plugins) + + def create_nat_gateway( + self, + input: CreateNatGatewayInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateNatGatewayOutput: + """ + Creates a NAT gateway in the specified subnet. This action creates a + network interface in the specified subnet with a private IP address from + the IP address range of the subnet. You can create either a public NAT + gateway or a private NAT gateway. + + With a public NAT gateway, internet-bound traffic from a private subnet + can be routed to the NAT gateway, so that instances in a private subnet + can connect to the internet. + + With a private NAT gateway, private communication is routed across VPCs + and on-premises networks through a transit gateway or virtual private + gateway. Common use cases include running large workloads behind a small + pool of allowlisted IPv4 addresses, preserving private IPv4 addresses, + and communicating between overlapping networks. + + For more information, see [NAT + gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) + in the *Amazon VPC User Guide*. + + Warning: + When you create a public NAT gateway and assign it an EIP or secondary + EIPs, the network border group of the EIPs must match the network border + group of the Availability Zone (AZ) that the public NAT gateway is in. + If it's not the same, the NAT gateway will fail to launch. You can see + the network border group for the subnet's AZ by viewing the details of + the subnet. Similarly, you can view the network border group of an EIP + by viewing the details of the EIP address. For more information about + network border groups and EIPs, see [Allocate an Elastic IP + address](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNatGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNatGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_NAT_GATEWAY, [], plugins) + + def create_network_acl( + self, input: CreateNetworkAclInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkAclOutput: + """ + Creates a network ACL in a VPC. Network ACLs provide an optional layer + of security (in addition to security groups) for the instances in your + VPC. + + For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNetworkAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkAclOutput`. + """ + return self._invoke(input, _models.CREATE_NETWORK_ACL, [], plugins) + + def create_network_acl_entry( + self, input: CreateNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkAclEntryOutput: + """ + Creates an entry (a rule) in a network ACL with the specified rule + number. Each network ACL has a set of numbered ingress rules and a + separate set of numbered egress rules. When determining whether a packet + should be allowed in or out of a subnet associated with the ACL, we + process the entries in the ACL according to the rule numbers, in + ascending order. Each network ACL has a set of ingress rules and a + separate set of egress rules. + + We recommend that you leave room between the rule numbers (for example, + 100, 110, 120, ...), and not number them one right after the other (for + example, 101, 102, 103, ...). This makes it easier to add a rule + between existing ones without having to renumber the rules. + + After you add an entry, you can't modify it; you must either replace + it, or create an entry and delete the old one. + + For more information about network ACLs, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkAclEntryOutput`. + """ + return self._invoke(input, _models.CREATE_NETWORK_ACL_ENTRY, [], plugins) + + def create_network_insights_access_scope( + self, + input: CreateNetworkInsightsAccessScopeInput, + plugins: list[Plugin] | None = None, + ) -> CreateNetworkInsightsAccessScopeOutput: + """ + Creates a Network Access Scope. + + Amazon Web Services Network Access Analyzer enables cloud networking and + cloud operations teams to verify that their networks on Amazon Web + Services conform to their network security and governance objectives. + For more information, see the [Amazon Web Services Network Access + Analyzer + Guide](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/). + + Args: + input: + An instance of `CreateNetworkInsightsAccessScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInsightsAccessScopeOutput`. + """ + return self._invoke( + input, _models.CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE, [], plugins + ) + + def create_network_insights_path( + self, input: CreateNetworkInsightsPathInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkInsightsPathOutput: + """ + Creates a path to analyze for reachability. + + Reachability Analyzer enables you to analyze and debug network + reachability between two resources in your virtual private cloud (VPC). + For more information, see the [Reachability Analyzer + Guide](https://docs.aws.amazon.com/vpc/latest/reachability/). + + Args: + input: + An instance of `CreateNetworkInsightsPathInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInsightsPathOutput`. + """ + return self._invoke(input, _models.CREATE_NETWORK_INSIGHTS_PATH, [], plugins) + + def create_network_interface( + self, input: CreateNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> CreateNetworkInterfaceOutput: + """ + Creates a network interface in the specified subnet. + + The number of IP addresses you can assign to a network interface varies + by instance type. + + For more information about network interfaces, see [Elastic network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInterfaceOutput`. + """ + return self._invoke(input, _models.CREATE_NETWORK_INTERFACE, [], plugins) + + def create_network_interface_permission( + self, + input: CreateNetworkInterfacePermissionInput, + plugins: list[Plugin] | None = None, + ) -> CreateNetworkInterfacePermissionOutput: + """ + Grants an Amazon Web Services-authorized account permission to attach + the specified network interface to an instance in their account. + + You can grant permission to a single Amazon Web Services account only, + and only one account at a time. + + Args: + input: + An instance of `CreateNetworkInterfacePermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateNetworkInterfacePermissionOutput`. + """ + return self._invoke( + input, _models.CREATE_NETWORK_INTERFACE_PERMISSION, [], plugins + ) + + def create_placement_group( + self, + input: CreatePlacementGroupInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreatePlacementGroupOutput: + """ + Creates a placement group in which to launch instances. The strategy of + the placement group determines how the instances are organized within + the group. + + A `cluster` placement group is a logical grouping of instances within a + single Availability Zone that benefit from low network latency, high + network throughput. A `spread` placement group places instances on + distinct hardware. A `partition` placement group places groups of + instances in different partitions, where instances in one partition do + not share the same hardware with instances in another partition. A + `precision-time` placement group places instances on supported hardware + with direct access to high-precision time sources in Amazon Web Services + infrastructure. + + For more information, see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreatePlacementGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePlacementGroupOutput`. + """ + return self._invoke(input, _models.CREATE_PLACEMENT_GROUP, [], plugins) + + def create_public_ipv4_pool( + self, + input: CreatePublicIpv4PoolInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreatePublicIpv4PoolOutput: + """ + Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP + address pool required for the public IPv4 CIDRs that you own and bring + to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to + Amazon Web Services, however, use IPAM pools only. To monitor the status + of pool creation, use + [DescribePublicIpv4Pools](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html). + + Args: + input: + An instance of `CreatePublicIpv4PoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePublicIpv4PoolOutput`. + """ + return self._invoke(input, _models.CREATE_PUBLIC_IPV4_POOL, [], plugins) + + def create_replace_root_volume_task( + self, + input: CreateReplaceRootVolumeTaskInput, + plugins: list[Plugin] | None = None, + ) -> CreateReplaceRootVolumeTaskOutput: + """ + Replaces the EBS-backed root volume for a `running` instance with a new + volume that is restored to the original root volume's launch state, + that is restored to a specific snapshot taken from the original root + volume, that is restored from an AMI that has the same key + characteristics as that of the instance, or that is replaced by a + specified volume. + + For more information, see [Replace a root + volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateReplaceRootVolumeTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateReplaceRootVolumeTaskOutput`. + """ + return self._invoke(input, _models.CREATE_REPLACE_ROOT_VOLUME_TASK, [], plugins) + + def create_reserved_instances_listing( + self, + input: CreateReservedInstancesListingInput, + plugins: list[Plugin] | None = None, + ) -> CreateReservedInstancesListingOutput: + """ + Creates a listing for Amazon EC2 Standard Reserved Instances to be sold + in the Reserved Instance Marketplace. You can submit one Standard + Reserved Instance listing at a time. To get a list of your Standard + Reserved Instances, you can use the DescribeReservedInstances operation. + + Note: + Only Standard Reserved Instances can be sold in the Reserved Instance + Marketplace. Convertible Reserved Instances cannot be sold. + + The Reserved Instance Marketplace matches sellers who want to resell + Standard Reserved Instance capacity that they no longer need with buyers + who want to purchase additional capacity. Reserved Instances bought and + sold through the Reserved Instance Marketplace work like any other + Reserved Instances. + + To sell your Standard Reserved Instances, you must first register as a + seller in the Reserved Instance Marketplace. After completing the + registration process, you can create a Reserved Instance Marketplace + listing of some or all of your Standard Reserved Instances, and specify + the upfront price to receive for them. Your Standard Reserved Instance + listings then become available for purchase. To view the details of your + Standard Reserved Instance listing, you can use the + DescribeReservedInstancesListings operation. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateReservedInstancesListingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateReservedInstancesListingOutput`. + """ + return self._invoke( + input, _models.CREATE_RESERVED_INSTANCES_LISTING, [], plugins + ) + + def create_restore_image_task( + self, input: CreateRestoreImageTaskInput, plugins: list[Plugin] | None = None + ) -> CreateRestoreImageTaskOutput: + """ + Starts a task that restores an AMI from an Amazon S3 object that was + previously created by using + [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html). + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateRestoreImageTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRestoreImageTaskOutput`. + """ + return self._invoke(input, _models.CREATE_RESTORE_IMAGE_TASK, [], plugins) + + def create_route( + self, input: CreateRouteInput, plugins: list[Plugin] | None = None + ) -> CreateRouteOutput: + """ + Creates a route in a route table within a VPC. + + You must specify either a destination CIDR block or a prefix list ID. + You must also specify exactly one of the resources from the parameter + list. + + When determining how to route traffic, we use the route with the most + specific match. For example, traffic is destined for the IPv4 address + `192.0.2.3`, and the route table includes the following two IPv4 routes: + + - `192.0.2.0/24` (goes to some target A) + + - `192.0.2.0/28` (goes to some target B) + + Both routes apply to the traffic destined for `192.0.2.3`. However, the + second route in the list covers a smaller number of IP addresses and is + therefore more specific, so we use that route to determine where to + target the traffic. + + For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteOutput`. + """ + return self._invoke(input, _models.CREATE_ROUTE, [], plugins) + + def create_route_server( + self, input: CreateRouteServerInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerOutput: + """ + Creates a new route server to manage dynamic routing in a VPC. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerOutput`. + """ + return self._invoke(input, _models.CREATE_ROUTE_SERVER, [], plugins) + + def create_route_server_endpoint( + self, input: CreateRouteServerEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerEndpointOutput: + """ + Creates a new endpoint for a route server in a specified subnet. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_ROUTE_SERVER_ENDPOINT, [], plugins) + + def create_route_server_peer( + self, input: CreateRouteServerPeerInput, plugins: list[Plugin] | None = None + ) -> CreateRouteServerPeerOutput: + """ + Creates a new BGP peer for a specified route server endpoint. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteServerPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteServerPeerOutput`. + """ + return self._invoke(input, _models.CREATE_ROUTE_SERVER_PEER, [], plugins) + + def create_route_table( + self, input: CreateRouteTableInput, plugins: list[Plugin] | None = None + ) -> CreateRouteTableOutput: + """ + Creates a route table for the specified VPC. After you create a route + table, you can add routes and associate the table with a subnet. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRouteTableOutput`. + """ + return self._invoke(input, _models.CREATE_ROUTE_TABLE, [], plugins) + + def create_secondary_network( + self, input: CreateSecondaryNetworkInput, plugins: list[Plugin] | None = None + ) -> CreateSecondaryNetworkOutput: + """ + Creates a secondary network. + + The allowed size for a secondary network CIDR block is between /28 + netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses). + + Args: + input: + An instance of `CreateSecondaryNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecondaryNetworkOutput`. + """ + return self._invoke(input, _models.CREATE_SECONDARY_NETWORK, [], plugins) + + def create_secondary_subnet( + self, input: CreateSecondarySubnetInput, plugins: list[Plugin] | None = None + ) -> CreateSecondarySubnetOutput: + """ + Creates a secondary subnet in a secondary network. + + A secondary subnet CIDR block must not overlap with the CIDR block of an + existing secondary subnet in the secondary network. After you create a + secondary subnet, you can't change its CIDR block. + + The allowed size for a secondary subnet CIDR block is between /28 + netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses). + Amazon reserves the first four IP addresses and the last IP address in + each secondary subnet for internal use. + + Args: + input: + An instance of `CreateSecondarySubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecondarySubnetOutput`. + """ + return self._invoke(input, _models.CREATE_SECONDARY_SUBNET, [], plugins) + + def create_security_group( + self, input: CreateSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> CreateSecurityGroupOutput: + """ + Creates a security group. + + A security group acts as a virtual firewall for your instance to control + inbound and outbound traffic. For more information, see [Amazon EC2 + security + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) + in the *Amazon EC2 User Guide* and [Security groups for your + VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) + in the *Amazon VPC User Guide*. + + When you create a security group, you specify a friendly name of your + choice. You can't have two security groups for the same VPC with the + same name. + + You have a default security group for use in your VPC. If you don't + specify a security group when you launch an instance, the instance is + launched into the appropriate default security group. A default security + group includes a default rule that grants instances unrestricted network + access to each other. + + You can add or remove rules from your security groups using + AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, + RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress. + + For more information about VPC security group limits, see [Amazon VPC + Limits](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). + + Args: + input: + An instance of `CreateSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSecurityGroupOutput`. + """ + return self._invoke(input, _models.CREATE_SECURITY_GROUP, [], plugins) + + def create_snapshot( + self, input: CreateSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateSnapshotOutput: + """ + Creates a snapshot of an EBS volume and stores it in Amazon S3. You can + use snapshots for backups, to make copies of EBS volumes, and to save + data before shutting down an instance. + + The location of the source EBS volume determines where you can create + the snapshot. + + - If the source volume is in a Region, you must create the snapshot in + the same Region as the volume. + + - If the source volume is in a Local Zone, you can create the snapshot + in the same Local Zone or in its parent Amazon Web Services Region. + + - If the source volume is on an Outpost, you can create the snapshot on + the same Outpost or in its parent Amazon Web Services Region. + + When a snapshot is created, any Amazon Web Services Marketplace product + codes that are associated with the source volume are propagated to the + snapshot. + + You can take a snapshot of an attached volume that is in use. However, + snapshots only capture data that has been written to your Amazon EBS + volume at the time the snapshot command is issued; this might exclude + any data that has been cached by any applications or the operating + system. If you can pause any file systems on the volume long enough to + take a snapshot, your snapshot should be complete. However, if you + cannot pause all file writes to the volume, you should unmount the + volume from within the instance, issue the snapshot command, and then + remount the volume to ensure a consistent and complete snapshot. You may + remount and use your volume while the snapshot status is `pending`. + + When you create a snapshot for an EBS volume that serves as a root + device, we recommend that you stop the instance before taking the + snapshot. + + Snapshots that are taken from encrypted volumes are automatically + encrypted. Volumes that are created from encrypted snapshots are also + automatically encrypted. Your encrypted volumes and any associated + snapshots always remain protected. For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CreateSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSnapshotOutput`. + """ + return self._invoke(input, _models.CREATE_SNAPSHOT, [], plugins) + + def create_snapshots( + self, input: CreateSnapshotsInput, plugins: list[Plugin] | None = None + ) -> CreateSnapshotsOutput: + """ + Creates crash-consistent snapshots of multiple EBS volumes attached to + an Amazon EC2 instance. Volumes are chosen by specifying an instance. + Each volume attached to the specified instance will produce one snapshot + that is crash-consistent across the instance. You can include all of the + volumes currently attached to the instance, or you can exclude the root + volume or specific data (non-root) volumes from the multi-volume + snapshot set. + + The location of the source instance determines where you can create the + snapshots. + + - If the source instance is in a Region, you must create the snapshots + in the same Region as the instance. + + - If the source instance is in a Local Zone, you can create the + snapshots in the same Local Zone or in its parent Amazon Web Services + Region. + + - If the source instance is on an Outpost, you can create the snapshots + on the same Outpost or in its parent Amazon Web Services Region. + + Args: + input: + An instance of `CreateSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSnapshotsOutput`. + """ + return self._invoke(input, _models.CREATE_SNAPSHOTS, [], plugins) + + def create_spot_datafeed_subscription( + self, + input: CreateSpotDatafeedSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> CreateSpotDatafeedSubscriptionOutput: + """ + Creates a data feed for Spot Instances, enabling you to view Spot + Instance usage logs. You can create one data feed per Amazon Web + Services account. For more information, see [Spot Instance data + feed](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSpotDatafeedSubscriptionOutput`. + """ + return self._invoke( + input, _models.CREATE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + def create_store_image_task( + self, input: CreateStoreImageTaskInput, plugins: list[Plugin] | None = None + ) -> CreateStoreImageTaskOutput: + """ + Stores an AMI as a single object in an Amazon S3 bucket. + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateStoreImageTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStoreImageTaskOutput`. + """ + return self._invoke(input, _models.CREATE_STORE_IMAGE_TASK, [], plugins) + + def create_subnet( + self, input: CreateSubnetInput, plugins: list[Plugin] | None = None + ) -> CreateSubnetOutput: + """ + Creates a subnet in the specified VPC. For an IPv4 only subnet, specify + an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an + IPv6 only subnet or a dual stack subnet instead. For an IPv6 only + subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify + both an IPv4 CIDR block and an IPv6 CIDR block. + + A subnet CIDR block must not overlap the CIDR block of an existing + subnet in the VPC. After you create a subnet, you can't change its CIDR + block. + + The allowed size for an IPv4 subnet is between a /28 netmask (16 IP + addresses) and a /16 netmask (65,536 IP addresses). Amazon Web Services + reserves both the first four and the last IPv4 address in each subnet's + CIDR block. They're not available for your use. + + If you've associated an IPv6 CIDR block with your VPC, you can + associate an IPv6 CIDR block with a subnet when you create it. + + If you add more than one subnet to a VPC, they're set up in a star + topology with a logical router in the middle. + + When you stop an instance in a subnet, it retains its private IPv4 + address. It's therefore possible to have a subnet with no running + instances (they're all stopped), but no remaining IP addresses + available. + + For more information, see + [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSubnetOutput`. + """ + return self._invoke(input, _models.CREATE_SUBNET, [], plugins) + + def create_subnet_cidr_reservation( + self, + input: CreateSubnetCidrReservationInput, + plugins: list[Plugin] | None = None, + ) -> CreateSubnetCidrReservationOutput: + """ + Creates a subnet CIDR reservation. For more information, see [Subnet + CIDR + reservations](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html) + in the *Amazon VPC User Guide* and [Manage prefixes for your network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-prefixes.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `CreateSubnetCidrReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSubnetCidrReservationOutput`. + """ + return self._invoke(input, _models.CREATE_SUBNET_CIDR_RESERVATION, [], plugins) + + def create_tags( + self, input: CreateTagsInput, plugins: list[Plugin] | None = None + ) -> CreateTagsOutput: + """ + Adds or overwrites only the specified tags for the specified Amazon EC2 + resource or resources. When you specify an existing tag key, the value + is overwritten with the new value. Each resource can have a maximum of + 50 tags. Each tag consists of a key and optional value. Tag keys must be + unique per resource. + + For more information about tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. For more information + about creating IAM policies that control users' access to resources + based on tags, see [Supported resource-level permissions for Amazon EC2 + API + actions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `CreateTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTagsOutput`. + """ + return self._invoke(input, _models.CREATE_TAGS, [], plugins) + + def create_traffic_mirror_filter( + self, + input: CreateTrafficMirrorFilterInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorFilterOutput: + """ + Creates a Traffic Mirror filter. + + A Traffic Mirror filter is a set of rules that defines the traffic to + mirror. + + By default, no traffic is mirrored. To mirror traffic, use + [CreateTrafficMirrorFilterRule](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm) + to add Traffic Mirror rules to the filter. The rules you add define what + traffic gets mirrored. You can also use + [ModifyTrafficMirrorFilterNetworkServices](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html) + to mirror supported network services. + + Args: + input: + An instance of `CreateTrafficMirrorFilterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorFilterOutput`. + """ + return self._invoke(input, _models.CREATE_TRAFFIC_MIRROR_FILTER, [], plugins) + + def create_traffic_mirror_filter_rule( + self, + input: CreateTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorFilterRuleOutput: + """ + Creates a Traffic Mirror filter rule. + + A Traffic Mirror rule defines the Traffic Mirror source traffic to + mirror. + + You need the Traffic Mirror filter ID when you create the rule. + + Args: + input: + An instance of `CreateTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorFilterRuleOutput`. + """ + return self._invoke( + input, _models.CREATE_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + def create_traffic_mirror_session( + self, + input: CreateTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorSessionOutput: + """ + Creates a Traffic Mirror session. + + A Traffic Mirror session actively copies packets from a Traffic Mirror + source to a Traffic Mirror target. Create a filter, and then assign it + to the session to define a subset of the traffic to mirror, for example + all TCP traffic. + + The Traffic Mirror source and the Traffic Mirror target (monitoring + appliances) can be in the same VPC, or in a different VPC connected via + VPC peering or a transit gateway. + + By default, no traffic is mirrored. Use + [CreateTrafficMirrorFilter](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.html) + to create filter rules that specify the traffic to mirror. + + Args: + input: + An instance of `CreateTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorSessionOutput`. + """ + return self._invoke(input, _models.CREATE_TRAFFIC_MIRROR_SESSION, [], plugins) + + def create_traffic_mirror_target( + self, + input: CreateTrafficMirrorTargetInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateTrafficMirrorTargetOutput: + """ + Creates a target for your Traffic Mirror session. + + A Traffic Mirror target is the destination for mirrored traffic. The + Traffic Mirror source and the Traffic Mirror target (monitoring + appliances) can be in the same VPC, or in different VPCs connected via + VPC peering or a transit gateway. + + A Traffic Mirror target can be a network interface, a Network Load + Balancer, or a Gateway Load Balancer endpoint. + + To use the target in a Traffic Mirror session, use + [CreateTrafficMirrorSession](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm). + + Args: + input: + An instance of `CreateTrafficMirrorTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTrafficMirrorTargetOutput`. + """ + return self._invoke(input, _models.CREATE_TRAFFIC_MIRROR_TARGET, [], plugins) + + def create_transit_gateway( + self, + input: CreateTransitGatewayInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayOutput: + """ + Creates a transit gateway. + + You can use a transit gateway to interconnect your virtual private + clouds (VPC) and on-premises networks. After the transit gateway enters + the `available` state, you can attach your VPCs and VPN connections to + the transit gateway. + + To attach your VPCs, use CreateTransitGatewayVpcAttachment. + + To attach a VPN connection, use CreateCustomerGateway to create a + customer gateway and specify the ID of the customer gateway and the ID + of the transit gateway in a call to CreateVpnConnection. + + When you create a transit gateway, we create a default transit gateway + route table and use it as the default association route table and the + default propagation route table. You can use + CreateTransitGatewayRouteTable to create additional transit gateway + route tables. If you disable automatic route propagation, we do not + create a default transit gateway route table. You can use + EnableTransitGatewayRouteTablePropagation to propagate routes from a + resource attachment to a transit gateway route table. If you disable + automatic associations, you can use AssociateTransitGatewayRouteTable to + associate a resource attachment with a transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_TRANSIT_GATEWAY, [], plugins) + + def create_transit_gateway_connect( + self, + input: CreateTransitGatewayConnectInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayConnectOutput: + """ + Creates a Connect attachment from a specified transit gateway + attachment. A Connect attachment is a GRE-based tunnel attachment that + you can use to establish a connection between a transit gateway and an + appliance. + + A Connect attachment uses an existing VPC or Amazon Web Services Direct + Connect attachment as the underlying transport mechanism. + + Args: + input: + An instance of `CreateTransitGatewayConnectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayConnectOutput`. + """ + return self._invoke(input, _models.CREATE_TRANSIT_GATEWAY_CONNECT, [], plugins) + + def create_transit_gateway_connect_peer( + self, + input: CreateTransitGatewayConnectPeerInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayConnectPeerOutput: + """ + Creates a Connect peer for a specified transit gateway Connect + attachment between a transit gateway and an appliance. + + The peer address and transit gateway address must be the same IP address + family (IPv4 or IPv6). + + For more information, see [Connect + peers](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer) + in the *Amazon Web Services Transit Gateways Guide*. + + Args: + input: + An instance of `CreateTransitGatewayConnectPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayConnectPeerOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_CONNECT_PEER, [], plugins + ) + + def create_transit_gateway_metering_policy( + self, + input: CreateTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMeteringPolicyOutput: + """ + Creates a metering policy for a transit gateway to track and measure + network traffic. + + Args: + input: + An instance of `CreateTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMeteringPolicyOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + def create_transit_gateway_metering_policy_entry( + self, + input: CreateTransitGatewayMeteringPolicyEntryInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMeteringPolicyEntryOutput: + """ + Creates an entry in a transit gateway metering policy to define traffic + measurement rules. + + Args: + input: + An instance of `CreateTransitGatewayMeteringPolicyEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMeteringPolicyEntryOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY, [], plugins + ) + + def create_transit_gateway_multicast_domain( + self, + input: CreateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayMulticastDomainOutput: + """ + Creates a multicast domain using the specified transit gateway. + + The transit gateway must be in the available state before you create a + domain. Use + [DescribeTransitGateways](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html) + to see the state of transit gateway. + + Args: + input: + An instance of `CreateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayMulticastDomainOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + def create_transit_gateway_peering_attachment( + self, + input: CreateTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPeeringAttachmentOutput: + """ + Requests a transit gateway peering attachment between the specified + transit gateway (requester) and a peer transit gateway (accepter). The + peer transit gateway can be in your account or a different Amazon Web + Services account. + + After you create the peering attachment, the owner of the accepter + transit gateway must accept the attachment request. + + Args: + input: + An instance of `CreateTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPeeringAttachmentOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + def create_transit_gateway_policy_table( + self, + input: CreateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPolicyTableOutput: + """ + Creates a transit gateway policy table. + + Args: + input: + An instance of `CreateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPolicyTableOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + def create_transit_gateway_policy_table_entry( + self, + input: CreateTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPolicyTableEntryOutput: + """ + Creates an entry in a transit gateway policy table to route matching + traffic to a specified route table. + + Args: + input: + An instance of `CreateTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPolicyTableEntryOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + def create_transit_gateway_prefix_list_reference( + self, + input: CreateTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayPrefixListReferenceOutput: + """ + Creates a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayPrefixListReferenceOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + def create_transit_gateway_route( + self, input: CreateTransitGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> CreateTransitGatewayRouteOutput: + """ + Creates a static route for the specified transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteOutput`. + """ + return self._invoke(input, _models.CREATE_TRANSIT_GATEWAY_ROUTE, [], plugins) + + def create_transit_gateway_route_table( + self, + input: CreateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayRouteTableOutput: + """ + Creates a route table for the specified transit gateway. + + Args: + input: + An instance of `CreateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def create_transit_gateway_route_table_announcement( + self, + input: CreateTransitGatewayRouteTableAnnouncementInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayRouteTableAnnouncementOutput: + """ + Advertises a new transit gateway route table. + + Args: + input: + An instance of `CreateTransitGatewayRouteTableAnnouncementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayRouteTableAnnouncementOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, [], plugins + ) + + def create_transit_gateway_vpc_attachment( + self, + input: CreateTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> CreateTransitGatewayVpcAttachmentOutput: + """ + Attaches the specified VPC to the specified transit gateway. + + If you attach a VPC with a CIDR range that overlaps the CIDR range of a + VPC that is already attached, the new VPC CIDR range is not propagated + to the default propagation route table. + + To send VPC traffic to an attached transit gateway, add a route to the + VPC route table using CreateRoute. + + Args: + input: + An instance of `CreateTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTransitGatewayVpcAttachmentOutput`. + """ + return self._invoke( + input, _models.CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + def create_verified_access_endpoint( + self, + input: CreateVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessEndpointOutput: + """ + An Amazon Web Services Verified Access endpoint is where you define your + application along with an optional endpoint-level access policy. + + Args: + input: + An instance of `CreateVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_VERIFIED_ACCESS_ENDPOINT, [], plugins) + + def create_verified_access_group( + self, input: CreateVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> CreateVerifiedAccessGroupOutput: + """ + An Amazon Web Services Verified Access group is a collection of Amazon + Web Services Verified Access endpoints who's associated applications + have similar security requirements. Each instance within a Verified + Access group shares an Verified Access policy. For example, you can + group all Verified Access instances associated with \"sales\" + applications together and use one common Verified Access policy. + + Args: + input: + An instance of `CreateVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessGroupOutput`. + """ + return self._invoke(input, _models.CREATE_VERIFIED_ACCESS_GROUP, [], plugins) + + def create_verified_access_instance( + self, + input: CreateVerifiedAccessInstanceInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessInstanceOutput: + """ + An Amazon Web Services Verified Access instance is a regional entity + that evaluates application requests and grants access only when your + security requirements are met. + + Args: + input: + An instance of `CreateVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessInstanceOutput`. + """ + return self._invoke(input, _models.CREATE_VERIFIED_ACCESS_INSTANCE, [], plugins) + + def create_verified_access_trust_provider( + self, + input: CreateVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> CreateVerifiedAccessTrustProviderOutput: + """ + A trust provider is a third-party entity that creates, maintains, and + manages identity information for users and devices. When an application + request is made, the identity information sent by the trust provider is + evaluated by Verified Access before allowing or denying the application + request. + + Args: + input: + An instance of `CreateVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVerifiedAccessTrustProviderOutput`. + """ + return self._invoke( + input, _models.CREATE_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + def create_volume( + self, + input: CreateVolumeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateVolumeOutput: + """ + Creates an EBS volume that can be attached to an instance in the same + Availability Zone. + + You can create a new empty volume or restore a volume from an EBS + snapshot. Any Amazon Web Services Marketplace product codes from the + snapshot are propagated to the volume. + + You can create encrypted volumes. Encrypted volumes must be attached to + instances that support Amazon EBS encryption. Volumes that are created + from encrypted snapshots are also automatically encrypted. For more + information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + You can tag your volumes during creation. For more information, see [Tag + your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon EC2 User Guide*. + + For more information, see [Create an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `CreateVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVolumeOutput`. + """ + return self._invoke(input, _models.CREATE_VOLUME, [], plugins) + + def create_vpc( + self, input: CreateVpcInput | None = None, plugins: list[Plugin] | None = None + ) -> CreateVpcOutput: + """ + Creates a VPC with the specified CIDR blocks. + + A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 + CIDR block or an IPAM-allocated IPv4 CIDR block. You can optionally + associate an IPv6 CIDR block with a VPC. You can choose an IPv6 CIDR + block, an Amazon-provided IPv6 CIDR block, an IPAM-allocated IPv6 CIDR + block, or an IPv6 CIDR block that you brought to Amazon Web Services. + For more information, see [IP addressing for your VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) + in the *Amazon VPC User Guide*. + + By default, each instance that you launch in the VPC has the default + DHCP options, which include only a default DNS server that we provide + (AmazonProvidedDNS). For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + You can specify DNS options and tenancy for a VPC when you create it. + You can't change the tenancy of a VPC after you create it. For more + information, see [VPC configuration + options](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc-options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcOutput`. + """ + return self._invoke(input, _models.CREATE_VPC, [], plugins) + + def create_vpc_block_public_access_exclusion( + self, + input: CreateVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcBlockPublicAccessExclusionOutput: + """ + Create a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcBlockPublicAccessExclusionOutput`. + """ + return self._invoke( + input, _models.CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + def create_vpc_encryption_control( + self, + input: CreateVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEncryptionControlOutput: + """ + Creates a VPC Encryption Control configuration for a specified VPC. VPC + Encryption Control enables you to enforce encryption for all data in + transit within and between VPCs to meet compliance requirements for + standards like HIPAA, FedRAMP, and PCI DSS. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `CreateVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEncryptionControlOutput`. + """ + return self._invoke(input, _models.CREATE_VPC_ENCRYPTION_CONTROL, [], plugins) + + def create_vpc_endpoint( + self, input: CreateVpcEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateVpcEndpointOutput: + """ + Creates a VPC endpoint. A VPC endpoint provides a private connection + between the specified VPC and the specified endpoint service. You can + use an endpoint service provided by Amazon Web Services, an Amazon Web + Services Marketplace Partner, or another Amazon Web Services account. + For more information, see the [Amazon Web Services PrivateLink User + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `CreateVpcEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_VPC_ENDPOINT, [], plugins) + + def create_vpc_endpoint_connection_notification( + self, + input: CreateVpcEndpointConnectionNotificationInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEndpointConnectionNotificationOutput: + """ + Creates a connection notification for a specified VPC endpoint or VPC + endpoint service. A connection notification notifies you of specific + endpoint events. You must create an SNS topic to receive notifications. + For more information, see [Creating an Amazon SNS + topic](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) in + the *Amazon SNS Developer Guide*. + + You can create a connection notification for interface endpoints only. + + Args: + input: + An instance of `CreateVpcEndpointConnectionNotificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointConnectionNotificationOutput`. + """ + return self._invoke( + input, _models.CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION, [], plugins + ) + + def create_vpc_endpoint_service_configuration( + self, + input: CreateVpcEndpointServiceConfigurationInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateVpcEndpointServiceConfigurationOutput: + """ + Creates a VPC endpoint service to which service consumers (Amazon Web + Services accounts, users, and IAM roles) can connect. + + Before you create an endpoint service, you must create one of the + following for your service: + + - A [Network Load + Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/). + Service consumers connect to your service using an interface endpoint. + + - A [Gateway Load + Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/). + Service consumers connect to your service using a Gateway Load + Balancer endpoint. + + If you set the private DNS name, you must prove that you own the private + DNS domain name. + + For more information, see the [Amazon Web Services PrivateLink + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `CreateVpcEndpointServiceConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcEndpointServiceConfigurationOutput`. + """ + return self._invoke( + input, _models.CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION, [], plugins + ) + + def create_vpc_peering_connection( + self, + input: CreateVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> CreateVpcPeeringConnectionOutput: + """ + Requests a VPC peering connection between two VPCs: a requester VPC that + you own and an accepter VPC with which to create the connection. The + accepter VPC can belong to another Amazon Web Services account and can + be in a different Region to the requester VPC. The requester VPC and + accepter VPC cannot have overlapping CIDR blocks. + + Note: + Limitations and rules apply to a VPC peering connection. For more + information, see the [VPC peering + limitations](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations) + in the *VPC Peering Guide*. + + The owner of the accepter VPC must accept the peering request to + activate the peering connection. The VPC peering connection request + expires after 7 days, after which it cannot be accepted or rejected. + + If you create a VPC peering connection request between VPCs with + overlapping CIDR blocks, the VPC peering connection has a status of + `failed`. + + Args: + input: + An instance of `CreateVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpcPeeringConnectionOutput`. + """ + return self._invoke(input, _models.CREATE_VPC_PEERING_CONNECTION, [], plugins) + + def create_vpn_concentrator( + self, input: CreateVpnConcentratorInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConcentratorOutput: + """ + Creates a VPN concentrator that aggregates multiple VPN connections to a + transit gateway. + + Args: + input: + An instance of `CreateVpnConcentratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConcentratorOutput`. + """ + return self._invoke(input, _models.CREATE_VPN_CONCENTRATOR, [], plugins) + + def create_vpn_connection( + self, input: CreateVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConnectionOutput: + """ + Creates a VPN connection between an existing virtual private gateway or + transit gateway and a customer gateway. The supported connection type is + `ipsec.1`. + + The response includes information that you need to give to your network + administrator to configure your customer gateway. + + Warning: + We strongly recommend that you use HTTPS when calling this operation + because the response contains sensitive cryptographic information for + configuring your customer gateway device. + + If you decide to shut down your VPN connection for any reason and later + create a new VPN connection, you must reconfigure your customer gateway + with the new information returned from this call. + + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConnectionOutput`. + """ + return self._invoke(input, _models.CREATE_VPN_CONNECTION, [], plugins) + + def create_vpn_connection_route( + self, input: CreateVpnConnectionRouteInput, plugins: list[Plugin] | None = None + ) -> CreateVpnConnectionRouteOutput: + """ + Creates a static route associated with a VPN connection between an + existing virtual private gateway and a VPN customer gateway. The static + route allows traffic to be routed from the virtual private gateway to + the VPN customer gateway. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnConnectionRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnConnectionRouteOutput`. + """ + return self._invoke(input, _models.CREATE_VPN_CONNECTION_ROUTE, [], plugins) + + def create_vpn_gateway( + self, input: CreateVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateVpnGatewayOutput: + """ + Creates a virtual private gateway. A virtual private gateway is the + endpoint on the VPC side of your VPN connection. You can create a + virtual private gateway before creating the VPC itself. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `CreateVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVpnGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_VPN_GATEWAY, [], plugins) + + def delete_application_status_check( + self, + input: DeleteApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> DeleteApplicationStatusCheckOutput: + """ + Deletes an application status check. The following rules apply: + + - Deleting a check automatically removes all of its associations. + + - Use `DescribeApplicationStatusChecks` to view existing checks before + deleting. + + Args: + input: + An instance of `DeleteApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteApplicationStatusCheckOutput`. + """ + return self._invoke(input, _models.DELETE_APPLICATION_STATUS_CHECK, [], plugins) + + def delete_capacity_manager_data_export( + self, + input: DeleteCapacityManagerDataExportInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCapacityManagerDataExportOutput: + """ + Deletes an existing Capacity Manager data export configuration. This + stops future scheduled exports but does not delete previously exported + files from S3. + + Args: + input: + An instance of `DeleteCapacityManagerDataExportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCapacityManagerDataExportOutput`. + """ + return self._invoke( + input, _models.DELETE_CAPACITY_MANAGER_DATA_EXPORT, [], plugins + ) + + def delete_carrier_gateway( + self, input: DeleteCarrierGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteCarrierGatewayOutput: + """ + Deletes a carrier gateway. + + Warning: + If you do not delete the route that contains the carrier gateway as the + Target, the route is a blackhole route. For information about how to + delete a route, see + [DeleteRoute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html). + + Args: + input: + An instance of `DeleteCarrierGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCarrierGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_CARRIER_GATEWAY, [], plugins) + + def delete_client_vpn_endpoint( + self, input: DeleteClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteClientVpnEndpointOutput: + """ + Deletes the specified Client VPN endpoint. You must disassociate all + target networks before you can delete a Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_CLIENT_VPN_ENDPOINT, [], plugins) + + def delete_client_vpn_endpoint_authorization_policy( + self, + input: DeleteClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteClientVpnEndpointAuthorizationPolicyOutput: + """ + Deletes the authorization policy for a Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnEndpointAuthorizationPolicyOutput`. + """ + return self._invoke( + input, _models.DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + def delete_client_vpn_route( + self, input: DeleteClientVpnRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteClientVpnRouteOutput: + """ + Deletes a route from a Client VPN endpoint. You can only delete routes + that you manually added using the **CreateClientVpnRoute** action. You + cannot delete routes that were automatically added when associating a + subnet. To remove routes that have been automatically added, + disassociate the target subnet from the Client VPN endpoint. + + Args: + input: + An instance of `DeleteClientVpnRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClientVpnRouteOutput`. + """ + return self._invoke(input, _models.DELETE_CLIENT_VPN_ROUTE, [], plugins) + + def delete_coip_cidr( + self, input: DeleteCoipCidrInput, plugins: list[Plugin] | None = None + ) -> DeleteCoipCidrOutput: + """ + Deletes a range of customer-owned IP addresses. + + Args: + input: + An instance of `DeleteCoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCoipCidrOutput`. + """ + return self._invoke(input, _models.DELETE_COIP_CIDR, [], plugins) + + def delete_coip_pool( + self, input: DeleteCoipPoolInput, plugins: list[Plugin] | None = None + ) -> DeleteCoipPoolOutput: + """ + Deletes a pool of customer-owned IP (CoIP) addresses. + + Args: + input: + An instance of `DeleteCoipPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCoipPoolOutput`. + """ + return self._invoke(input, _models.DELETE_COIP_POOL, [], plugins) + + def delete_customer_gateway( + self, input: DeleteCustomerGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteCustomerGatewayOutput: + """ + Deletes the specified customer gateway. You must delete the VPN + connection before you can delete the customer gateway. + + Args: + input: + An instance of `DeleteCustomerGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomerGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_CUSTOMER_GATEWAY, [], plugins) + + def delete_dhcp_options( + self, input: DeleteDhcpOptionsInput, plugins: list[Plugin] | None = None + ) -> DeleteDhcpOptionsOutput: + """ + Deletes the specified set of DHCP options. You must disassociate the set + of DHCP options before you can delete it. You can disassociate the set + of DHCP options by associating either a new set of options or the + default set of options with the VPC. + + Args: + input: + An instance of `DeleteDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDhcpOptionsOutput`. + """ + return self._invoke(input, _models.DELETE_DHCP_OPTIONS, [], plugins) + + def delete_egress_only_internet_gateway( + self, + input: DeleteEgressOnlyInternetGatewayInput, + plugins: list[Plugin] | None = None, + ) -> DeleteEgressOnlyInternetGatewayOutput: + """ + Deletes an egress-only internet gateway. + + Args: + input: + An instance of `DeleteEgressOnlyInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteEgressOnlyInternetGatewayOutput`. + """ + return self._invoke( + input, _models.DELETE_EGRESS_ONLY_INTERNET_GATEWAY, [], plugins + ) + + def delete_fleets( + self, input: DeleteFleetsInput, plugins: list[Plugin] | None = None + ) -> DeleteFleetsOutput: + """ + Deletes the specified EC2 Fleet request. + + After you delete an EC2 Fleet request, it launches no new instances. + + You must also specify whether a deleted EC2 Fleet request should + terminate its instances. If you choose to terminate the instances, the + EC2 Fleet request enters the `deleted_terminating` state. Otherwise, it + enters the `deleted_running` state, and the instances continue to run + until they are interrupted or you terminate them manually. + + A deleted `instant` fleet with running instances is not supported. When + you delete an `instant` fleet, Amazon EC2 automatically terminates all + its instances. For fleets with more than 1000 instances, the deletion + request might fail. If your fleet has more than 1000 instances, first + terminate most of the instances manually, leaving 1000 or fewer. Then + delete the fleet, and the remaining instances will be terminated + automatically. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + **Restrictions** + + - You can delete up to 25 fleets of type `instant` in a single request. + + - You can delete up to 100 fleets of type `maintain` or `request` in a + single request. + + - You can delete up to 125 fleets in a single request, provided you do + not exceed the quota for each fleet type, as specified above. + + - If you exceed the specified number of fleets to delete, no fleets are + deleted. + + For more information, see [Delete an EC2 Fleet request and the instances + in the + fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-fleet.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFleetsOutput`. + """ + return self._invoke(input, _models.DELETE_FLEETS, [], plugins) + + def delete_flow_logs( + self, input: DeleteFlowLogsInput, plugins: list[Plugin] | None = None + ) -> DeleteFlowLogsOutput: + """ + Deletes one or more flow logs. + + Args: + input: + An instance of `DeleteFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFlowLogsOutput`. + """ + return self._invoke(input, _models.DELETE_FLOW_LOGS, [], plugins) + + def delete_fpga_image( + self, input: DeleteFpgaImageInput, plugins: list[Plugin] | None = None + ) -> DeleteFpgaImageOutput: + """ + Deletes the specified Amazon FPGA Image (AFI). + + Args: + input: + An instance of `DeleteFpgaImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteFpgaImageOutput`. + """ + return self._invoke(input, _models.DELETE_FPGA_IMAGE, [], plugins) + + def delete_image_usage_report( + self, input: DeleteImageUsageReportInput, plugins: list[Plugin] | None = None + ) -> DeleteImageUsageReportOutput: + """ + Deletes the specified image usage report. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteImageUsageReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteImageUsageReportOutput`. + """ + return self._invoke(input, _models.DELETE_IMAGE_USAGE_REPORT, [], plugins) + + def delete_instance_connect_endpoint( + self, + input: DeleteInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> DeleteInstanceConnectEndpointOutput: + """ + Deletes the specified EC2 Instance Connect Endpoint. + + Args: + input: + An instance of `DeleteInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceConnectEndpointOutput`. + """ + return self._invoke( + input, _models.DELETE_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + def delete_instance_event_window( + self, input: DeleteInstanceEventWindowInput, plugins: list[Plugin] | None = None + ) -> DeleteInstanceEventWindowOutput: + """ + Deletes the specified event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceEventWindowOutput`. + """ + return self._invoke(input, _models.DELETE_INSTANCE_EVENT_WINDOW, [], plugins) + + def delete_internet_gateway( + self, input: DeleteInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteInternetGatewayOutput: + """ + Deletes the specified internet gateway. You must detach the internet + gateway from the VPC before you can delete it. + + Args: + input: + An instance of `DeleteInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInternetGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_INTERNET_GATEWAY, [], plugins) + + def delete_ipam( + self, input: DeleteIpamInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamOutput: + """ + Delete an IPAM. Deleting an IPAM removes all monitored data associated + with the IPAM including the historical data for CIDRs. + + For more information, see [Delete an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/delete-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamOutput`. + """ + return self._invoke(input, _models.DELETE_IPAM, [], plugins) + + def delete_ipam_external_resource_verification_token( + self, + input: DeleteIpamExternalResourceVerificationTokenInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamExternalResourceVerificationTokenOutput: + """ + Delete a verification token. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `DeleteIpamExternalResourceVerificationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamExternalResourceVerificationTokenOutput`. + """ + return self._invoke( + input, _models.DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN, [], plugins + ) + + def delete_ipam_internet_registry_association( + self, + input: DeleteIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamInternetRegistryAssociationOutput: + """ + Deletes an IPAM internet registry association. Before deleting, you must + remove all routing policy registrations associated with the internet + registry. + + Args: + input: + An instance of `DeleteIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamInternetRegistryAssociationOutput`. + """ + return self._invoke( + input, _models.DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + def delete_ipam_policy( + self, input: DeleteIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamPolicyOutput: + """ + Deletes an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DeleteIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_IPAM_POLICY, [], plugins) + + def delete_ipam_pool( + self, input: DeleteIpamPoolInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamPoolOutput: + """ + Delete an IPAM pool. + + Note: + You cannot delete an IPAM pool if there are allocations in it or CIDRs + provisioned to it. To release allocations, see + [ReleaseIpamPoolAllocation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html). + To deprovision pool CIDRs, see + [DeprovisionIpamPoolCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html). + + For more information, see [Delete a + pool](https://docs.aws.amazon.com/vpc/latest/ipam/delete-pool-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPoolOutput`. + """ + return self._invoke(input, _models.DELETE_IPAM_POOL, [], plugins) + + def delete_ipam_prefix_list_resolver( + self, + input: DeleteIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamPrefixListResolverOutput: + """ + Deletes an IPAM prefix list resolver. Before deleting a resolver, you + must first delete all resolver targets associated with it. + + Args: + input: + An instance of `DeleteIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPrefixListResolverOutput`. + """ + return self._invoke( + input, _models.DELETE_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + def delete_ipam_prefix_list_resolver_target( + self, + input: DeleteIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamPrefixListResolverTargetOutput: + """ + Deletes an IPAM prefix list resolver target. This removes the + association between the resolver and the managed prefix list, stopping + automatic CIDR synchronization. + + For more information about IPAM prefix list resolver, see [Automate + prefix list updates with + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamPrefixListResolverTargetOutput`. + """ + return self._invoke( + input, _models.DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + def delete_ipam_resource_discovery( + self, + input: DeleteIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamResourceDiscoveryOutput: + """ + Deletes an IPAM resource discovery. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `DeleteIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamResourceDiscoveryOutput`. + """ + return self._invoke(input, _models.DELETE_IPAM_RESOURCE_DISCOVERY, [], plugins) + + def delete_ipam_routing_policy_registration( + self, + input: DeleteIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteIpamRoutingPolicyRegistrationOutput: + """ + Deletes a routing policy registration for a specified CIDR prefix. + + Args: + input: + An instance of `DeleteIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamRoutingPolicyRegistrationOutput`. + """ + return self._invoke( + input, _models.DELETE_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + def delete_ipam_scope( + self, input: DeleteIpamScopeInput, plugins: list[Plugin] | None = None + ) -> DeleteIpamScopeOutput: + """ + Delete the scope for an IPAM. You cannot delete the default scopes. + + For more information, see [Delete a + scope](https://docs.aws.amazon.com/vpc/latest/ipam/delete-scope-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeleteIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIpamScopeOutput`. + """ + return self._invoke(input, _models.DELETE_IPAM_SCOPE, [], plugins) + + def delete_key_pair( + self, + input: DeleteKeyPairInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteKeyPairOutput: + """ + Deletes the specified key pair, by removing the public key from Amazon + EC2. + + Args: + input: + An instance of `DeleteKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteKeyPairOutput`. + """ + return self._invoke(input, _models.DELETE_KEY_PAIR, [], plugins) + + def delete_launch_template( + self, + input: DeleteLaunchTemplateInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteLaunchTemplateOutput: + """ + Deletes a launch template. Deleting a launch template deletes all of its + versions. + + Args: + input: + An instance of `DeleteLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLaunchTemplateOutput`. + """ + return self._invoke(input, _models.DELETE_LAUNCH_TEMPLATE, [], plugins) + + def delete_launch_template_versions( + self, + input: DeleteLaunchTemplateVersionsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLaunchTemplateVersionsOutput: + """ + Deletes one or more versions of a launch template. + + You can't delete the default version of a launch template; you must + first assign a different version as the default. If the default version + is the only version for the launch template, you must delete the entire + launch template using DeleteLaunchTemplate. + + You can delete up to 200 launch template versions in a single request. + To delete more than 200 versions in a single request, use + DeleteLaunchTemplate, which deletes the launch template and all of its + versions. + + For more information, see [Delete a launch template + version](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-launch-template.html#delete-launch-template-version) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeleteLaunchTemplateVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLaunchTemplateVersionsOutput`. + """ + return self._invoke(input, _models.DELETE_LAUNCH_TEMPLATE_VERSIONS, [], plugins) + + def delete_local_gateway_route( + self, input: DeleteLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteLocalGatewayRouteOutput: + """ + Deletes the specified route from the specified local gateway route + table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteOutput`. + """ + return self._invoke(input, _models.DELETE_LOCAL_GATEWAY_ROUTE, [], plugins) + + def delete_local_gateway_route_table( + self, + input: DeleteLocalGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableOutput: + """ + Deletes a local gateway route table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def delete_local_gateway_route_table_virtual_interface_group_association( + self, + input: DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput: + """ + Deletes a local gateway route table virtual interface group association. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput`. + """ + return self._invoke( + input, + _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION, + [], + plugins, + ) + + def delete_local_gateway_route_table_vpc_association( + self, + input: DeleteLocalGatewayRouteTableVpcAssociationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayRouteTableVpcAssociationOutput: + """ + Deletes the specified association between a VPC and local gateway route + table. + + Args: + input: + An instance of `DeleteLocalGatewayRouteTableVpcAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayRouteTableVpcAssociationOutput`. + """ + return self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION, [], plugins + ) + + def delete_local_gateway_virtual_interface( + self, + input: DeleteLocalGatewayVirtualInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayVirtualInterfaceOutput: + """ + Deletes the specified local gateway virtual interface. + + Args: + input: + An instance of `DeleteLocalGatewayVirtualInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayVirtualInterfaceOutput`. + """ + return self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE, [], plugins + ) + + def delete_local_gateway_virtual_interface_group( + self, + input: DeleteLocalGatewayVirtualInterfaceGroupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteLocalGatewayVirtualInterfaceGroupOutput: + """ + Delete the specified local gateway interface group. + + Args: + input: + An instance of `DeleteLocalGatewayVirtualInterfaceGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLocalGatewayVirtualInterfaceGroupOutput`. + """ + return self._invoke( + input, _models.DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP, [], plugins + ) + + def delete_managed_prefix_list( + self, input: DeleteManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> DeleteManagedPrefixListOutput: + """ + Deletes the specified managed prefix list. You must first remove all + references to the prefix list in your resources. + + Args: + input: + An instance of `DeleteManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteManagedPrefixListOutput`. + """ + return self._invoke(input, _models.DELETE_MANAGED_PREFIX_LIST, [], plugins) + + def delete_nat_gateway( + self, input: DeleteNatGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteNatGatewayOutput: + """ + Deletes the specified NAT gateway. Deleting a public NAT gateway + disassociates its Elastic IP address, but does not release the address + from your account. Deleting a NAT gateway does not delete any NAT + gateway routes in your route tables. + + Args: + input: + An instance of `DeleteNatGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNatGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_NAT_GATEWAY, [], plugins) + + def delete_network_acl( + self, input: DeleteNetworkAclInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkAclOutput: + """ + Deletes the specified network ACL. You can't delete the ACL if it's + associated with any subnets. You can't delete the default network ACL. + + Args: + input: + An instance of `DeleteNetworkAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkAclOutput`. + """ + return self._invoke(input, _models.DELETE_NETWORK_ACL, [], plugins) + + def delete_network_acl_entry( + self, input: DeleteNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkAclEntryOutput: + """ + Deletes the specified ingress or egress entry (rule) from the specified + network ACL. + + Args: + input: + An instance of `DeleteNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkAclEntryOutput`. + """ + return self._invoke(input, _models.DELETE_NETWORK_ACL_ENTRY, [], plugins) + + def delete_network_insights_access_scope( + self, + input: DeleteNetworkInsightsAccessScopeInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAccessScopeOutput: + """ + Deletes the specified Network Access Scope. + + Args: + input: + An instance of `DeleteNetworkInsightsAccessScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAccessScopeOutput`. + """ + return self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE, [], plugins + ) + + def delete_network_insights_access_scope_analysis( + self, + input: DeleteNetworkInsightsAccessScopeAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAccessScopeAnalysisOutput: + """ + Deletes the specified Network Access Scope analysis. + + Args: + input: + An instance of `DeleteNetworkInsightsAccessScopeAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAccessScopeAnalysisOutput`. + """ + return self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, [], plugins + ) + + def delete_network_insights_analysis( + self, + input: DeleteNetworkInsightsAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInsightsAnalysisOutput: + """ + Deletes the specified network insights analysis. + + Args: + input: + An instance of `DeleteNetworkInsightsAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsAnalysisOutput`. + """ + return self._invoke( + input, _models.DELETE_NETWORK_INSIGHTS_ANALYSIS, [], plugins + ) + + def delete_network_insights_path( + self, input: DeleteNetworkInsightsPathInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkInsightsPathOutput: + """ + Deletes the specified path. + + Args: + input: + An instance of `DeleteNetworkInsightsPathInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInsightsPathOutput`. + """ + return self._invoke(input, _models.DELETE_NETWORK_INSIGHTS_PATH, [], plugins) + + def delete_network_interface( + self, input: DeleteNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> DeleteNetworkInterfaceOutput: + """ + Deletes the specified network interface. You must detach the network + interface before you can delete it. + + Args: + input: + An instance of `DeleteNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInterfaceOutput`. + """ + return self._invoke(input, _models.DELETE_NETWORK_INTERFACE, [], plugins) + + def delete_network_interface_permission( + self, + input: DeleteNetworkInterfacePermissionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteNetworkInterfacePermissionOutput: + """ + Deletes a permission for a network interface. By default, you cannot + delete the permission if the account for which you're removing the + permission has attached the network interface to an instance. However, + you can force delete the permission, regardless of any attachment. + + Args: + input: + An instance of `DeleteNetworkInterfacePermissionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteNetworkInterfacePermissionOutput`. + """ + return self._invoke( + input, _models.DELETE_NETWORK_INTERFACE_PERMISSION, [], plugins + ) + + def delete_placement_group( + self, input: DeletePlacementGroupInput, plugins: list[Plugin] | None = None + ) -> DeletePlacementGroupOutput: + """ + Deletes the specified placement group. You must terminate all instances + in the placement group before you can delete the placement group. You + cannot delete a placement group that is a parent of a cluster placement + group. Delete the cluster placement groups first. For more information, + see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeletePlacementGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePlacementGroupOutput`. + """ + return self._invoke(input, _models.DELETE_PLACEMENT_GROUP, [], plugins) + + def delete_public_ipv4_pool( + self, input: DeletePublicIpv4PoolInput, plugins: list[Plugin] | None = None + ) -> DeletePublicIpv4PoolOutput: + """ + Delete a public IPv4 pool. A public IPv4 pool is an EC2 IP address pool + required for the public IPv4 CIDRs that you own and bring to Amazon Web + Services to manage with IPAM. IPv6 addresses you bring to Amazon Web + Services, however, use IPAM pools only. + + Args: + input: + An instance of `DeletePublicIpv4PoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicIpv4PoolOutput`. + """ + return self._invoke(input, _models.DELETE_PUBLIC_IPV4_POOL, [], plugins) + + def delete_queued_reserved_instances( + self, + input: DeleteQueuedReservedInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DeleteQueuedReservedInstancesOutput: + """ + Deletes the queued purchases for the specified Reserved Instances. + + Args: + input: + An instance of `DeleteQueuedReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteQueuedReservedInstancesOutput`. + """ + return self._invoke( + input, _models.DELETE_QUEUED_RESERVED_INSTANCES, [], plugins + ) + + def delete_route( + self, input: DeleteRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteOutput: + """ + Deletes the specified route from the specified route table. + + Args: + input: + An instance of `DeleteRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteOutput`. + """ + return self._invoke(input, _models.DELETE_ROUTE, [], plugins) + + def delete_route_server( + self, input: DeleteRouteServerInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerOutput: + """ + Deletes the specified route server. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerOutput`. + """ + return self._invoke(input, _models.DELETE_ROUTE_SERVER, [], plugins) + + def delete_route_server_endpoint( + self, input: DeleteRouteServerEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerEndpointOutput: + """ + Deletes the specified route server endpoint. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + Args: + input: + An instance of `DeleteRouteServerEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_ROUTE_SERVER_ENDPOINT, [], plugins) + + def delete_route_server_peer( + self, input: DeleteRouteServerPeerInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteServerPeerOutput: + """ + Deletes the specified BGP peer from a route server. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + Args: + input: + An instance of `DeleteRouteServerPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteServerPeerOutput`. + """ + return self._invoke(input, _models.DELETE_ROUTE_SERVER_PEER, [], plugins) + + def delete_route_table( + self, input: DeleteRouteTableInput, plugins: list[Plugin] | None = None + ) -> DeleteRouteTableOutput: + """ + Deletes the specified route table. You must disassociate the route table + from any subnets before you can delete it. You can't delete the main + route table. + + Args: + input: + An instance of `DeleteRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRouteTableOutput`. + """ + return self._invoke(input, _models.DELETE_ROUTE_TABLE, [], plugins) + + def delete_secondary_network( + self, input: DeleteSecondaryNetworkInput, plugins: list[Plugin] | None = None + ) -> DeleteSecondaryNetworkOutput: + """ + Deletes a secondary network. You must delete all secondary subnets in + the secondary network before you can delete the secondary network. + + Args: + input: + An instance of `DeleteSecondaryNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecondaryNetworkOutput`. + """ + return self._invoke(input, _models.DELETE_SECONDARY_NETWORK, [], plugins) + + def delete_secondary_subnet( + self, input: DeleteSecondarySubnetInput, plugins: list[Plugin] | None = None + ) -> DeleteSecondarySubnetOutput: + """ + Deletes a secondary subnet. A secondary subnet must not contain any + secondary interfaces prior to deletion. + + Args: + input: + An instance of `DeleteSecondarySubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecondarySubnetOutput`. + """ + return self._invoke(input, _models.DELETE_SECONDARY_SUBNET, [], plugins) + + def delete_security_group( + self, + input: DeleteSecurityGroupInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteSecurityGroupOutput: + """ + Deletes a security group. + + If you attempt to delete a security group that is associated with an + instance or network interface, is referenced by another security group + in the same VPC, or has a VPC association, the operation fails with + `DependencyViolation`. + + Args: + input: + An instance of `DeleteSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSecurityGroupOutput`. + """ + return self._invoke(input, _models.DELETE_SECURITY_GROUP, [], plugins) + + def delete_snapshot( + self, input: DeleteSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteSnapshotOutput: + """ + Deletes the specified snapshot. + + When you make periodic snapshots of a volume, the snapshots are + incremental, and only the blocks on the device that have changed since + your last snapshot are saved in the new snapshot. When you delete a + snapshot, only the data not needed for any other snapshot is removed. So + regardless of which prior snapshots have been deleted, all active + snapshots will have access to all the information needed to restore the + volume. + + You cannot delete a snapshot of the root device of an EBS volume used by + a registered AMI. You must first deregister the AMI before you can + delete the snapshot. + + For more information, see [Delete an Amazon EBS + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-snapshot.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DeleteSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSnapshotOutput`. + """ + return self._invoke(input, _models.DELETE_SNAPSHOT, [], plugins) + + def delete_spot_datafeed_subscription( + self, + input: DeleteSpotDatafeedSubscriptionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteSpotDatafeedSubscriptionOutput: + """ + Deletes the data feed for Spot Instances. + + Args: + input: + An instance of `DeleteSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSpotDatafeedSubscriptionOutput`. + """ + return self._invoke( + input, _models.DELETE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + def delete_subnet( + self, input: DeleteSubnetInput, plugins: list[Plugin] | None = None + ) -> DeleteSubnetOutput: + """ + Deletes the specified subnet. You must terminate all running instances + in the subnet before you can delete the subnet. + + Args: + input: + An instance of `DeleteSubnetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSubnetOutput`. + """ + return self._invoke(input, _models.DELETE_SUBNET, [], plugins) + + def delete_subnet_cidr_reservation( + self, + input: DeleteSubnetCidrReservationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteSubnetCidrReservationOutput: + """ + Deletes a subnet CIDR reservation. + + Args: + input: + An instance of `DeleteSubnetCidrReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSubnetCidrReservationOutput`. + """ + return self._invoke(input, _models.DELETE_SUBNET_CIDR_RESERVATION, [], plugins) + + def delete_tags( + self, input: DeleteTagsInput, plugins: list[Plugin] | None = None + ) -> DeleteTagsOutput: + """ + Deletes the specified set of tags from the specified set of resources. + + To list the current tags, use DescribeTags. For more information about + tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Args: + input: + An instance of `DeleteTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTagsOutput`. + """ + return self._invoke(input, _models.DELETE_TAGS, [], plugins) + + def delete_traffic_mirror_filter( + self, input: DeleteTrafficMirrorFilterInput, plugins: list[Plugin] | None = None + ) -> DeleteTrafficMirrorFilterOutput: + """ + Deletes the specified Traffic Mirror filter. + + You cannot delete a Traffic Mirror filter that is in use by a Traffic + Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorFilterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorFilterOutput`. + """ + return self._invoke(input, _models.DELETE_TRAFFIC_MIRROR_FILTER, [], plugins) + + def delete_traffic_mirror_filter_rule( + self, + input: DeleteTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTrafficMirrorFilterRuleOutput: + """ + Deletes the specified Traffic Mirror rule. + + Args: + input: + An instance of `DeleteTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorFilterRuleOutput`. + """ + return self._invoke( + input, _models.DELETE_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + def delete_traffic_mirror_session( + self, + input: DeleteTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTrafficMirrorSessionOutput: + """ + Deletes the specified Traffic Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorSessionOutput`. + """ + return self._invoke(input, _models.DELETE_TRAFFIC_MIRROR_SESSION, [], plugins) + + def delete_traffic_mirror_target( + self, input: DeleteTrafficMirrorTargetInput, plugins: list[Plugin] | None = None + ) -> DeleteTrafficMirrorTargetOutput: + """ + Deletes the specified Traffic Mirror target. + + You cannot delete a Traffic Mirror target that is in use by a Traffic + Mirror session. + + Args: + input: + An instance of `DeleteTrafficMirrorTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTrafficMirrorTargetOutput`. + """ + return self._invoke(input, _models.DELETE_TRAFFIC_MIRROR_TARGET, [], plugins) + + def delete_transit_gateway( + self, input: DeleteTransitGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteTransitGatewayOutput: + """ + Deletes the specified transit gateway. + + Args: + input: + An instance of `DeleteTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_TRANSIT_GATEWAY, [], plugins) + + def delete_transit_gateway_client_vpn_attachment( + self, + input: DeleteTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayClientVpnAttachmentOutput: + """ + Deletes a Transit Gateway attachment for a Client VPN endpoint. The + Transit Gateway owner can delete the attachment to remove the + association between the Client VPN endpoint and the Transit Gateway. + + Args: + input: + An instance of `DeleteTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayClientVpnAttachmentOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + def delete_transit_gateway_connect( + self, + input: DeleteTransitGatewayConnectInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayConnectOutput: + """ + Deletes the specified Connect attachment. You must first delete any + Connect peers for the attachment. + + Args: + input: + An instance of `DeleteTransitGatewayConnectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayConnectOutput`. + """ + return self._invoke(input, _models.DELETE_TRANSIT_GATEWAY_CONNECT, [], plugins) + + def delete_transit_gateway_connect_peer( + self, + input: DeleteTransitGatewayConnectPeerInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayConnectPeerOutput: + """ + Deletes the specified Connect peer. + + Args: + input: + An instance of `DeleteTransitGatewayConnectPeerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayConnectPeerOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_CONNECT_PEER, [], plugins + ) + + def delete_transit_gateway_metering_policy( + self, + input: DeleteTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMeteringPolicyOutput: + """ + Deletes a transit gateway metering policy. + + Args: + input: + An instance of `DeleteTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMeteringPolicyOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + def delete_transit_gateway_metering_policy_entry( + self, + input: DeleteTransitGatewayMeteringPolicyEntryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMeteringPolicyEntryOutput: + """ + Deletes an entry from a transit gateway metering policy. + + Args: + input: + An instance of `DeleteTransitGatewayMeteringPolicyEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMeteringPolicyEntryOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY, [], plugins + ) + + def delete_transit_gateway_multicast_domain( + self, + input: DeleteTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayMulticastDomainOutput: + """ + Deletes the specified transit gateway multicast domain. + + Args: + input: + An instance of `DeleteTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayMulticastDomainOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + def delete_transit_gateway_peering_attachment( + self, + input: DeleteTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPeeringAttachmentOutput: + """ + Deletes a transit gateway peering attachment. + + Args: + input: + An instance of `DeleteTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPeeringAttachmentOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + def delete_transit_gateway_policy_table( + self, + input: DeleteTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPolicyTableOutput: + """ + Deletes the specified transit gateway policy table. + + Args: + input: + An instance of `DeleteTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPolicyTableOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + def delete_transit_gateway_policy_table_entry( + self, + input: DeleteTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPolicyTableEntryOutput: + """ + Deletes the specified transit gateway policy table entry. + + Args: + input: + An instance of `DeleteTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPolicyTableEntryOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + def delete_transit_gateway_prefix_list_reference( + self, + input: DeleteTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayPrefixListReferenceOutput: + """ + Deletes a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `DeleteTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayPrefixListReferenceOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + def delete_transit_gateway_route( + self, input: DeleteTransitGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteTransitGatewayRouteOutput: + """ + Deletes the specified route from the specified transit gateway route + table. + + Args: + input: + An instance of `DeleteTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteOutput`. + """ + return self._invoke(input, _models.DELETE_TRANSIT_GATEWAY_ROUTE, [], plugins) + + def delete_transit_gateway_route_table( + self, + input: DeleteTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayRouteTableOutput: + """ + Deletes the specified transit gateway route table. Before you can delete + a transit gateway route table, you must disassociate all attachments + from it by using DisassociateTransitGatewayRouteTable and wait for the + disassociations to complete. You can't delete a transit gateway route + table that is the default association route table or default propagation + route table for the transit gateway. To change the default route tables, + use ModifyTransitGateway. + + Args: + input: + An instance of `DeleteTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def delete_transit_gateway_route_table_announcement( + self, + input: DeleteTransitGatewayRouteTableAnnouncementInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayRouteTableAnnouncementOutput: + """ + Advertises to the transit gateway that a transit gateway route table is + deleted. + + Args: + input: + An instance of `DeleteTransitGatewayRouteTableAnnouncementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayRouteTableAnnouncementOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT, [], plugins + ) + + def delete_transit_gateway_vpc_attachment( + self, + input: DeleteTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> DeleteTransitGatewayVpcAttachmentOutput: + """ + Deletes the specified VPC attachment. + + Args: + input: + An instance of `DeleteTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTransitGatewayVpcAttachmentOutput`. + """ + return self._invoke( + input, _models.DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + def delete_verified_access_endpoint( + self, + input: DeleteVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessEndpointOutput: + """ + Delete an Amazon Web Services Verified Access endpoint. + + Args: + input: + An instance of `DeleteVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_VERIFIED_ACCESS_ENDPOINT, [], plugins) + + def delete_verified_access_group( + self, input: DeleteVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteVerifiedAccessGroupOutput: + """ + Delete an Amazon Web Services Verified Access group. + + Args: + input: + An instance of `DeleteVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessGroupOutput`. + """ + return self._invoke(input, _models.DELETE_VERIFIED_ACCESS_GROUP, [], plugins) + + def delete_verified_access_instance( + self, + input: DeleteVerifiedAccessInstanceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessInstanceOutput: + """ + Delete an Amazon Web Services Verified Access instance. + + Args: + input: + An instance of `DeleteVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessInstanceOutput`. + """ + return self._invoke(input, _models.DELETE_VERIFIED_ACCESS_INSTANCE, [], plugins) + + def delete_verified_access_trust_provider( + self, + input: DeleteVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVerifiedAccessTrustProviderOutput: + """ + Delete an Amazon Web Services Verified Access trust provider. + + Args: + input: + An instance of `DeleteVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVerifiedAccessTrustProviderOutput`. + """ + return self._invoke( + input, _models.DELETE_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + def delete_volume( + self, input: DeleteVolumeInput, plugins: list[Plugin] | None = None + ) -> DeleteVolumeOutput: + """ + Deletes the specified EBS volume. The volume must be in the `available` + state (not attached to an instance). + + The volume can remain in the `deleting` state for several minutes. + + For more information, see [Delete an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DeleteVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVolumeOutput`. + """ + return self._invoke(input, _models.DELETE_VOLUME, [], plugins) + + def delete_vpc( + self, input: DeleteVpcInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcOutput: + """ + Deletes the specified VPC. You must detach or delete all gateways and + resources that are associated with the VPC before you can delete it. For + example, you must terminate all instances running in the VPC, delete all + security groups associated with the VPC (except the default one), delete + all route tables associated with the VPC (except the default one), and + so on. When you delete the VPC, it deletes the default security group, + network ACL, and route table for the VPC. + + If you created a flow log for the VPC that you are deleting, note that + flow logs for deleted VPCs are eventually automatically removed. + + Args: + input: + An instance of `DeleteVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcOutput`. + """ + return self._invoke(input, _models.DELETE_VPC, [], plugins) + + def delete_vpc_block_public_access_exclusion( + self, + input: DeleteVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcBlockPublicAccessExclusionOutput: + """ + Delete a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcBlockPublicAccessExclusionOutput`. + """ + return self._invoke( + input, _models.DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + def delete_vpc_encryption_control( + self, + input: DeleteVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEncryptionControlOutput: + """ + Deletes a VPC Encryption Control configuration. This removes the + encryption policy enforcement from the specified VPC. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DeleteVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEncryptionControlOutput`. + """ + return self._invoke(input, _models.DELETE_VPC_ENCRYPTION_CONTROL, [], plugins) + + def delete_vpc_endpoint_connection_notifications( + self, + input: DeleteVpcEndpointConnectionNotificationsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEndpointConnectionNotificationsOutput: + """ + Deletes the specified VPC endpoint connection notifications. + + Args: + input: + An instance of `DeleteVpcEndpointConnectionNotificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointConnectionNotificationsOutput`. + """ + return self._invoke( + input, _models.DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS, [], plugins + ) + + def delete_vpc_endpoints( + self, input: DeleteVpcEndpointsInput, plugins: list[Plugin] | None = None + ) -> DeleteVpcEndpointsOutput: + """ + Deletes the specified VPC endpoints. + + When you delete a gateway endpoint, we delete the endpoint routes in the + route tables for the endpoint. + + When you delete a Gateway Load Balancer endpoint, we delete its endpoint + network interfaces. You can only delete Gateway Load Balancer endpoints + when the routes that are associated with the endpoint are deleted. + + When you delete an interface endpoint, we delete its endpoint network + interfaces. + + Args: + input: + An instance of `DeleteVpcEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointsOutput`. + """ + return self._invoke(input, _models.DELETE_VPC_ENDPOINTS, [], plugins) + + def delete_vpc_endpoint_service_configurations( + self, + input: DeleteVpcEndpointServiceConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcEndpointServiceConfigurationsOutput: + """ + Deletes the specified VPC endpoint service configurations. Before you + can delete an endpoint service configuration, you must reject any + `Available` or `PendingAcceptance` interface endpoint connections that + are attached to the service. + + Args: + input: + An instance of `DeleteVpcEndpointServiceConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcEndpointServiceConfigurationsOutput`. + """ + return self._invoke( + input, _models.DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS, [], plugins + ) + + def delete_vpc_peering_connection( + self, + input: DeleteVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteVpcPeeringConnectionOutput: + """ + Deletes a VPC peering connection. Either the owner of the requester VPC + or the owner of the accepter VPC can delete the VPC peering connection + if it's in the `active` state. The owner of the requester VPC can + delete a VPC peering connection in the `pending-acceptance` state. You + cannot delete a VPC peering connection that's in the `failed` or + `rejected` state. + + Args: + input: + An instance of `DeleteVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpcPeeringConnectionOutput`. + """ + return self._invoke(input, _models.DELETE_VPC_PEERING_CONNECTION, [], plugins) + + def delete_vpn_concentrator( + self, input: DeleteVpnConcentratorInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConcentratorOutput: + """ + Deletes the specified VPN concentrator. + + Args: + input: + An instance of `DeleteVpnConcentratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConcentratorOutput`. + """ + return self._invoke(input, _models.DELETE_VPN_CONCENTRATOR, [], plugins) + + def delete_vpn_connection( + self, input: DeleteVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConnectionOutput: + """ + Deletes the specified VPN connection. + + If you're deleting the VPC and its associated components, we recommend + that you detach the virtual private gateway from the VPC and delete the + VPC before deleting the VPN connection. If you believe that the tunnel + credentials for your VPN connection have been compromised, you can + delete the VPN connection and create a new one that has new keys, + without needing to delete the VPC or virtual private gateway. If you + create a new VPN connection, you must reconfigure the customer gateway + device using the new configuration information returned with the new VPN + connection ID. + + For certificate-based authentication, delete all Certificate Manager + (ACM) private certificates used for the Amazon Web Services-side tunnel + endpoints for the VPN connection before deleting the VPN connection. + + Args: + input: + An instance of `DeleteVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConnectionOutput`. + """ + return self._invoke(input, _models.DELETE_VPN_CONNECTION, [], plugins) + + def delete_vpn_connection_route( + self, input: DeleteVpnConnectionRouteInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnConnectionRouteOutput: + """ + Deletes the specified static route associated with a VPN connection + between an existing virtual private gateway and a VPN customer gateway. + The static route allows traffic to be routed from the virtual private + gateway to the VPN customer gateway. + + Args: + input: + An instance of `DeleteVpnConnectionRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnConnectionRouteOutput`. + """ + return self._invoke(input, _models.DELETE_VPN_CONNECTION_ROUTE, [], plugins) + + def delete_vpn_gateway( + self, input: DeleteVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteVpnGatewayOutput: + """ + Deletes the specified virtual private gateway. You must first detach the + virtual private gateway from the VPC. Note that you don't need to + delete the virtual private gateway if you plan to delete and recreate + the VPN connection between your VPC and your network. + + Args: + input: + An instance of `DeleteVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVpnGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_VPN_GATEWAY, [], plugins) + + def deprovision_byoip_cidr( + self, input: DeprovisionByoipCidrInput, plugins: list[Plugin] | None = None + ) -> DeprovisionByoipCidrOutput: + """ + Releases the specified address range that you provisioned for use with + your Amazon Web Services resources through bring your own IP addresses + (BYOIP) and deletes the corresponding address pool. + + Before you can release an address range, you must stop advertising it + and you must not have any IP addresses allocated from its address range. + + Args: + input: + An instance of `DeprovisionByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionByoipCidrOutput`. + """ + return self._invoke(input, _models.DEPROVISION_BYOIP_CIDR, [], plugins) + + def deprovision_ipam_byoasn( + self, input: DeprovisionIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> DeprovisionIpamByoasnOutput: + """ + Deprovisions your Autonomous System Number (ASN) from your Amazon Web + Services account. This action can only be called after any BYOIP CIDR + associations are removed from your Amazon Web Services account with + [DisassociateIpamByoasn](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIpamByoasn.html). + For more information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DeprovisionIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionIpamByoasnOutput`. + """ + return self._invoke(input, _models.DEPROVISION_IPAM_BYOASN, [], plugins) + + def deprovision_ipam_pool_cidr( + self, input: DeprovisionIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> DeprovisionIpamPoolCidrOutput: + """ + Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a + CIDR from a pool that has a source pool, the CIDR is recycled back into + the source pool. For more information, see [Deprovision pool + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/depro-pool-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DeprovisionIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionIpamPoolCidrOutput`. + """ + return self._invoke(input, _models.DEPROVISION_IPAM_POOL_CIDR, [], plugins) + + def deprovision_public_ipv4_pool_cidr( + self, + input: DeprovisionPublicIpv4PoolCidrInput, + plugins: list[Plugin] | None = None, + ) -> DeprovisionPublicIpv4PoolCidrOutput: + """ + Deprovision a CIDR from a public IPv4 pool. + + Args: + input: + An instance of `DeprovisionPublicIpv4PoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeprovisionPublicIpv4PoolCidrOutput`. + """ + return self._invoke( + input, _models.DEPROVISION_PUBLIC_IPV4_POOL_CIDR, [], plugins + ) + + def deregister_image( + self, input: DeregisterImageInput, plugins: list[Plugin] | None = None + ) -> DeregisterImageOutput: + """ + Deregisters the specified AMI. A deregistered AMI can't be used to + launch new instances. + + If a deregistered EBS-backed AMI matches a Recycle Bin retention rule, + it moves to the Recycle Bin for the specified retention period. It can + be restored before its retention period expires, after which it is + permanently deleted. If the deregistered AMI doesn't match a retention + rule, it is permanently deleted immediately. For more information, see + [Recover deleted Amazon EBS snapshots and EBS-backed AMIs with Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EBS User Guide*. + + When deregistering an EBS-backed AMI, you can optionally delete its + associated snapshots at the same time. However, if a snapshot is + associated with multiple AMIs, it won't be deleted even if specified + for deletion, although the AMI will still be deregistered. + + Deregistering an AMI does not delete the following: + + - Instances already launched from the AMI. You'll continue to incur + usage costs for the instances until you terminate them. + + - For EBS-backed AMIs: Snapshots that are associated with multiple AMIs. + You'll continue to incur snapshot storage costs. + + - For instance store-backed AMIs: The files uploaded to Amazon S3 during + AMI creation. You'll continue to incur S3 storage costs. + + For more information, see [Deregister an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DeregisterImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterImageOutput`. + """ + return self._invoke(input, _models.DEREGISTER_IMAGE, [], plugins) + + def deregister_instance_event_notification_attributes( + self, + input: DeregisterInstanceEventNotificationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterInstanceEventNotificationAttributesOutput: + """ + Deregisters tag keys to prevent tags that have the specified tag keys + from being included in scheduled event notifications for resources in + the Region. + + Args: + input: + An instance of `DeregisterInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterInstanceEventNotificationAttributesOutput`. + """ + return self._invoke( + input, + _models.DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, + [], + plugins, + ) + + def deregister_transit_gateway_multicast_group_members( + self, + input: DeregisterTransitGatewayMulticastGroupMembersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeregisterTransitGatewayMulticastGroupMembersOutput: + """ + Deregisters the specified members (network interfaces) from the transit + gateway multicast group. + + Args: + input: + An instance of `DeregisterTransitGatewayMulticastGroupMembersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTransitGatewayMulticastGroupMembersOutput`. + """ + return self._invoke( + input, + _models.DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS, + [], + plugins, + ) + + def deregister_transit_gateway_multicast_group_sources( + self, + input: DeregisterTransitGatewayMulticastGroupSourcesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeregisterTransitGatewayMulticastGroupSourcesOutput: + """ + Deregisters the specified sources (network interfaces) from the transit + gateway multicast group. + + Args: + input: + An instance of `DeregisterTransitGatewayMulticastGroupSourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTransitGatewayMulticastGroupSourcesOutput`. + """ + return self._invoke( + input, + _models.DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES, + [], + plugins, + ) + + def describe_account_attributes( + self, + input: DescribeAccountAttributesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountAttributesOutput: + """ + Describes attributes of your Amazon Web Services account. The following + are the supported account attributes: + + - `default-vpc`: The ID of the default VPC for your account, or `none`. + + - `max-instances`: This attribute is no longer supported. The returned + value does not reflect your actual vCPU limit for running On-Demand + Instances. For more information, see [On-Demand Instance + Limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits) + in the *Amazon Elastic Compute Cloud User Guide*. + + - `max-elastic-ips`: The maximum number of Elastic IP addresses that you + can allocate. + + - `supported-platforms`: This attribute is deprecated. + + - `vpc-max-elastic-ips`: The maximum number of Elastic IP addresses that + you can allocate. + + - `vpc-max-security-groups-per-interface`: The maximum number of + security groups that you can assign to a network interface. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeAccountAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountAttributesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACCOUNT_ATTRIBUTES, [], plugins) + + def describe_account_vpc_encryption_control( + self, + input: DescribeAccountVpcEncryptionControlInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountVpcEncryptionControlOutput: + """ + Describes the account-level VPC Encryption Control configuration for + your account. VPC Encryption Control enables you to enforce encryption + for all data in transit within and between VPCs to meet compliance + requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeAccountVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountVpcEncryptionControlOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + def describe_addresses( + self, + input: DescribeAddressesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAddressesOutput: + """ + Describes the specified Elastic IP addresses or all of your Elastic IP + addresses. + + Args: + input: + An instance of `DescribeAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ADDRESSES, [], plugins) + + def describe_addresses_attribute( + self, + input: DescribeAddressesAttributeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAddressesAttributeOutput: + """ + Describes the attributes of the specified Elastic IP addresses. For + requirements, see [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `DescribeAddressesAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressesAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ADDRESSES_ATTRIBUTE, [], plugins) + + def describe_address_transfers( + self, + input: DescribeAddressTransfersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAddressTransfersOutput: + """ + Describes an Elastic IP address transfer. For more information, see + [Transfer Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + When you transfer an Elastic IP address, there is a two-step handshake + between the source and transfer Amazon Web Services accounts. When the + source account starts the transfer, the transfer account has seven days + to accept the Elastic IP address transfer. During those seven days, the + source account can view the pending transfer by using this action. After + seven days, the transfer expires and ownership of the Elastic IP address + returns to the source account. Accepted transfers are visible to the + source account for 14 days after the transfers have been accepted. + + Args: + input: + An instance of `DescribeAddressTransfersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAddressTransfersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ADDRESS_TRANSFERS, [], plugins) + + def describe_aggregate_id_format( + self, + input: DescribeAggregateIdFormatInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAggregateIdFormatOutput: + """ + Describes the longer ID format settings for all resource types in a + specific Region. This request is useful for performing a quick audit to + determine whether a specific Region is fully opted in for longer IDs + (17-character IDs). + + This request only returns information about resource types that support + longer IDs. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + Args: + input: + An instance of `DescribeAggregateIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAggregateIdFormatOutput`. + """ + return self._invoke(input, _models.DESCRIBE_AGGREGATE_ID_FORMAT, [], plugins) + + def describe_application_status( + self, + input: DescribeApplicationStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeApplicationStatusOutput: + """ + Describes the aggregated application health status for the specified + instances. The following rules apply: + + - The instance-level status is derived from all application status + checks with the aggregation setting set to `included`. + + - Use `DescribeApplicationStatusChecks` to view the configuration of + individual checks. + + - Use `EnableApplicationStatusCheckSuppression` to temporarily suppress + health check results from affecting the instance-level status. + + Args: + input: + An instance of `DescribeApplicationStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_APPLICATION_STATUS, [], plugins) + + def describe_application_status_check_associations( + self, + input: DescribeApplicationStatusCheckAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeApplicationStatusCheckAssociationsOutput: + """ + Describes the associations for one or more application status checks. + For more information, see [Application status + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-application-status-checks.html). + To avoid timeouts and retrieve complete results, use the pagination + parameters. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. + + Args: + input: + An instance of `DescribeApplicationStatusCheckAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusCheckAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS, [], plugins + ) + + def describe_application_status_checks( + self, + input: DescribeApplicationStatusChecksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeApplicationStatusChecksOutput: + """ + Describes application status checks, including configuration details + such as protocol, port, path, thresholds, and associations. Results are + paginated. Use the `NextToken` parameter to retrieve additional results. + The following rules apply: + + - If you do not specify any application status check IDs, all checks in + your account are returned. + + - Use `DescribeApplicationStatus` to see the actual health status of + instances. + + Args: + input: + An instance of `DescribeApplicationStatusChecksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeApplicationStatusChecksOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_APPLICATION_STATUS_CHECKS, [], plugins + ) + + def describe_availability_zones( + self, + input: DescribeAvailabilityZonesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAvailabilityZonesOutput: + """ + Describes the Availability Zones, Local Zones, and Wavelength Zones that + are available to you. + + For more information about Availability Zones, Local Zones, and + Wavelength Zones, see [Regions and + zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeAvailabilityZonesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAvailabilityZonesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_AVAILABILITY_ZONES, [], plugins) + + def describe_aws_network_performance_metric_subscriptions( + self, + input: DescribeAwsNetworkPerformanceMetricSubscriptionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAwsNetworkPerformanceMetricSubscriptionsOutput: + """ + Describes the current Infrastructure Performance metric subscriptions. + + Args: + input: + An instance of `DescribeAwsNetworkPerformanceMetricSubscriptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAwsNetworkPerformanceMetricSubscriptionsOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS, + [], + plugins, + ) + + def describe_bundle_tasks( + self, + input: DescribeBundleTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeBundleTasksOutput: + """ + Describes the specified bundle tasks or all of your bundle tasks. + + Note: + Completed bundle tasks are listed for only a limited time. If your + bundle task is no longer in the list, you can still register an AMI from + it. Just use `RegisterImage` with the Amazon S3 bucket name and image + manifest name you provided to the bundle task. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeBundleTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBundleTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_BUNDLE_TASKS, [], plugins) + + def describe_byoip_cidrs( + self, input: DescribeByoipCidrsInput, plugins: list[Plugin] | None = None + ) -> DescribeByoipCidrsOutput: + """ + Describes the IP address ranges that were provisioned for use with + Amazon Web Services resources through through bring your own IP + addresses (BYOIP). + + Args: + input: + An instance of `DescribeByoipCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeByoipCidrsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_BYOIP_CIDRS, [], plugins) + + def describe_capacity_block_extension_history( + self, + input: DescribeCapacityBlockExtensionHistoryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockExtensionHistoryOutput: + """ + Describes the events for the specified Capacity Block extension during + the specified time. + + Args: + input: + An instance of `DescribeCapacityBlockExtensionHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockExtensionHistoryOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY, [], plugins + ) + + def describe_capacity_block_extension_offerings( + self, + input: DescribeCapacityBlockExtensionOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockExtensionOfferingsOutput: + """ + Describes Capacity Block extension offerings available for purchase in + the Amazon Web Services Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityBlockExtensionOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockExtensionOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS, [], plugins + ) + + def describe_capacity_block_offerings( + self, + input: DescribeCapacityBlockOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockOfferingsOutput: + """ + Describes Capacity Block offerings available for purchase in the Amazon + Web Services Region that you're currently using. With Capacity Blocks, + you can purchase a specific GPU instance type or EC2 UltraServer for a + period of time. + + To search for an available Capacity Block offering, you specify a + reservation duration and instance count. + + Args: + input: + An instance of `DescribeCapacityBlockOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_BLOCK_OFFERINGS, [], plugins + ) + + def describe_capacity_blocks( + self, + input: DescribeCapacityBlocksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlocksOutput: + """ + Describes details about Capacity Blocks in the Amazon Web Services + Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityBlocksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlocksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CAPACITY_BLOCKS, [], plugins) + + def describe_capacity_block_status( + self, + input: DescribeCapacityBlockStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityBlockStatusOutput: + """ + Describes the availability of capacity for the specified Capacity + blocks, or all of your Capacity Blocks. + + Args: + input: + An instance of `DescribeCapacityBlockStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityBlockStatusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CAPACITY_BLOCK_STATUS, [], plugins) + + def describe_capacity_manager_data_exports( + self, + input: DescribeCapacityManagerDataExportsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityManagerDataExportsOutput: + """ + Describes one or more Capacity Manager data export configurations. + Returns information about export settings, delivery status, and recent + export activity. + + Args: + input: + An instance of `DescribeCapacityManagerDataExportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityManagerDataExportsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS, [], plugins + ) + + def describe_capacity_reservation_billing_requests( + self, + input: DescribeCapacityReservationBillingRequestsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationBillingRequestsOutput: + """ + Describes a request to assign the billing of the unused capacity of a + Capacity Reservation. For more information, see [Billing assignment for + shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/transfer-billing.html). + + Args: + input: + An instance of `DescribeCapacityReservationBillingRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationBillingRequestsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS, [], plugins + ) + + def describe_capacity_reservation_cancellation_quotes( + self, + input: DescribeCapacityReservationCancellationQuotesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationCancellationQuotesOutput: + """ + Describes one or more Capacity Reservation cancellation quotes. The + results describe only the quotes that you have previously generated by + using the `CreateCapacityReservationCancellationQuote` action. + + Args: + input: + An instance of `DescribeCapacityReservationCancellationQuotesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationCancellationQuotesOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES, + [], + plugins, + ) + + def describe_capacity_reservation_date_change_quotes( + self, + input: DescribeCapacityReservationDateChangeQuotesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationDateChangeQuotesOutput: + """ + Describes one or more Capacity Reservation date change quotes that you + generated by using the `CreateCapacityReservationDateChangeQuote` + operation. + + Args: + input: + An instance of `DescribeCapacityReservationDateChangeQuotesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationDateChangeQuotesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES, [], plugins + ) + + def describe_capacity_reservation_fleets( + self, + input: DescribeCapacityReservationFleetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationFleetsOutput: + """ + Describes one or more Capacity Reservation Fleets. + + Args: + input: + An instance of `DescribeCapacityReservationFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationFleetsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_FLEETS, [], plugins + ) + + def describe_capacity_reservations( + self, + input: DescribeCapacityReservationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationsOutput: + """ + Describes one or more of your Capacity Reservations. The results + describe only the Capacity Reservations in the Amazon Web Services + Region that you're currently using. + + Args: + input: + An instance of `DescribeCapacityReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CAPACITY_RESERVATIONS, [], plugins) + + def describe_capacity_reservation_topology( + self, + input: DescribeCapacityReservationTopologyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityReservationTopologyOutput: + """ + Describes a tree-based hierarchy that represents the physical host + placement of your pending or active Capacity Reservations within an + Availability Zone or Local Zone. You can use this information to + determine the relative proximity of your capacity within the Amazon Web + Services network before it is launched and use this information to + allocate capacity together to support your tightly coupled workloads. + + Capacity Reservation topology is supported for specific instance types + only. For more information, see [Prerequisites for Amazon EC2 instance + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html) + in the *Amazon EC2 User Guide*. + + Note: + The Amazon EC2 API follows an eventual consistency model due to the + distributed nature of the system supporting it. As a result, when you + call the DescribeCapacityReservationTopology API command immediately + after launching instances, the response might return a `null` value for + `capacityBlockId` because the data might not have fully propagated + across all subsystems. For more information, see [Eventual consistency + in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + For more information, see [Amazon EC2 + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeCapacityReservationTopologyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityReservationTopologyOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY, [], plugins + ) + + def describe_carrier_gateways( + self, + input: DescribeCarrierGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCarrierGatewaysOutput: + """ + Describes one or more of your carrier gateways. + + Args: + input: + An instance of `DescribeCarrierGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCarrierGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CARRIER_GATEWAYS, [], plugins) + + def describe_classic_link_instances( + self, + input: DescribeClassicLinkInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeClassicLinkInstancesOutput: + """ + Note: + This action is deprecated. + + Describes your linked EC2-Classic instances. This request only returns + information about EC2-Classic instances linked to a VPC through + ClassicLink. You cannot use this request to return information about + other instances. + + Args: + input: + An instance of `DescribeClassicLinkInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClassicLinkInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CLASSIC_LINK_INSTANCES, [], plugins) + + def describe_client_vpn_authorization_rules( + self, + input: DescribeClientVpnAuthorizationRulesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnAuthorizationRulesOutput: + """ + Describes the authorization rules for a specified Client VPN endpoint. + + Args: + input: + An instance of `DescribeClientVpnAuthorizationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnAuthorizationRulesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES, [], plugins + ) + + def describe_client_vpn_connections( + self, + input: DescribeClientVpnConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnConnectionsOutput: + """ + Describes active client connections and connections that have been + terminated within the last 60 minutes for the specified Client VPN + endpoint. + + Args: + input: + An instance of `DescribeClientVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnConnectionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CLIENT_VPN_CONNECTIONS, [], plugins) + + def describe_client_vpn_endpoints( + self, + input: DescribeClientVpnEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnEndpointsOutput: + """ + Describes one or more Client VPN endpoints in the account. + + Args: + input: + An instance of `DescribeClientVpnEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnEndpointsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CLIENT_VPN_ENDPOINTS, [], plugins) + + def describe_client_vpn_routes( + self, input: DescribeClientVpnRoutesInput, plugins: list[Plugin] | None = None + ) -> DescribeClientVpnRoutesOutput: + """ + Describes the routes for the specified Client VPN endpoint. + + Args: + input: + An instance of `DescribeClientVpnRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnRoutesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CLIENT_VPN_ROUTES, [], plugins) + + def describe_client_vpn_target_networks( + self, + input: DescribeClientVpnTargetNetworksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeClientVpnTargetNetworksOutput: + """ + Describes the target networks associated with the specified Client VPN + endpoint. + + Args: + input: + An instance of `DescribeClientVpnTargetNetworksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClientVpnTargetNetworksOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_CLIENT_VPN_TARGET_NETWORKS, [], plugins + ) + + def describe_coip_pools( + self, + input: DescribeCoipPoolsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCoipPoolsOutput: + """ + Describes the specified customer-owned address pools or all of your + customer-owned address pools. + + Args: + input: + An instance of `DescribeCoipPoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCoipPoolsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_COIP_POOLS, [], plugins) + + def describe_conversion_tasks( + self, + input: DescribeConversionTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeConversionTasksOutput: + """ + Describes the specified conversion tasks or all your conversion tasks. + For more information, see the [VM Import/Export User + Guide](https://docs.aws.amazon.com/vm-import/latest/userguide/). + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + Args: + input: + An instance of `DescribeConversionTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeConversionTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CONVERSION_TASKS, [], plugins) + + def describe_customer_gateways( + self, + input: DescribeCustomerGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCustomerGatewaysOutput: + """ + Describes one or more of your VPN customer gateways. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeCustomerGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCustomerGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CUSTOMER_GATEWAYS, [], plugins) + + def describe_declarative_policies_reports( + self, + input: DescribeDeclarativePoliciesReportsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDeclarativePoliciesReportsOutput: + """ + Describes the metadata of an account status report, including the status + of the report. + + To view the full report, download it from the Amazon S3 bucket where it + was saved. Reports are accessible only when they have the `complete` + status. Reports with other statuses (`running`, `cancelled`, or `error`) + are not available in the S3 bucket. For more information about + downloading objects from an S3 bucket, see [Downloading + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) + in the *Amazon Simple Storage Service User Guide*. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `DescribeDeclarativePoliciesReportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDeclarativePoliciesReportsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DECLARATIVE_POLICIES_REPORTS, [], plugins + ) + + def describe_dhcp_options( + self, + input: DescribeDhcpOptionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDhcpOptionsOutput: + """ + Describes your DHCP option sets. The default is to describe all your + DHCP option sets. Alternatively, you can specify specific DHCP option + set IDs or filter the results to include only the DHCP option sets that + match specific criteria. + + For more information, see [DHCP option + sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeDhcpOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDhcpOptionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DHCP_OPTIONS, [], plugins) + + def describe_egress_only_internet_gateways( + self, + input: DescribeEgressOnlyInternetGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeEgressOnlyInternetGatewaysOutput: + """ + Describes your egress-only internet gateways. The default is to describe + all your egress-only internet gateways. Alternatively, you can specify + specific egress-only internet gateway IDs or filter the results to + include only the egress-only internet gateways that match specific + criteria. + + Args: + input: + An instance of `DescribeEgressOnlyInternetGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEgressOnlyInternetGatewaysOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS, [], plugins + ) + + def describe_elastic_gpus( + self, + input: DescribeElasticGpusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeElasticGpusOutput: + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + Describes the Elastic Graphics accelerator associated with your + instances. + + Args: + input: + An instance of `DescribeElasticGpusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeElasticGpusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ELASTIC_GPUS, [], plugins) + + def describe_export_image_tasks( + self, + input: DescribeExportImageTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeExportImageTasksOutput: + """ + Describes the specified export image tasks or all of your export image + tasks. + + Args: + input: + An instance of `DescribeExportImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportImageTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EXPORT_IMAGE_TASKS, [], plugins) + + def describe_export_tasks( + self, + input: DescribeExportTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeExportTasksOutput: + """ + Describes the specified export instance tasks or all of your export + instance tasks. + + Args: + input: + An instance of `DescribeExportTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EXPORT_TASKS, [], plugins) + + def describe_fast_launch_images( + self, + input: DescribeFastLaunchImagesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeFastLaunchImagesOutput: + """ + Describe details for Windows AMIs that are configured for Windows fast + launch. + + Args: + input: + An instance of `DescribeFastLaunchImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFastLaunchImagesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FAST_LAUNCH_IMAGES, [], plugins) + + def describe_fast_snapshot_restores( + self, + input: DescribeFastSnapshotRestoresInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeFastSnapshotRestoresOutput: + """ + Describes the state of fast snapshot restores for your snapshots. + + Args: + input: + An instance of `DescribeFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFastSnapshotRestoresOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FAST_SNAPSHOT_RESTORES, [], plugins) + + def describe_fleet_history( + self, input: DescribeFleetHistoryInput, plugins: list[Plugin] | None = None + ) -> DescribeFleetHistoryOutput: + """ + Describes the events for the specified EC2 Fleet during the specified + time. + + EC2 Fleet events are delayed by up to 30 seconds before they can be + described. This ensures that you can query by the last evaluated time + and not miss a recorded event. EC2 Fleet events are available for 48 + hours. + + For more information, see [Monitor fleet events using Amazon + EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetHistoryOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FLEET_HISTORY, [], plugins) + + def describe_fleet_instances( + self, input: DescribeFleetInstancesInput, plugins: list[Plugin] | None = None + ) -> DescribeFleetInstancesOutput: + """ + Describes the running instances for the specified EC2 Fleet. + + Note: + Currently, `DescribeFleetInstances` does not support fleets of type + `instant`. Instead, use `DescribeFleets`, specifying the `instant` fleet + ID in the request. + + For more information, see [Describe your EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FLEET_INSTANCES, [], plugins) + + def describe_fleets( + self, + input: DescribeFleetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeFleetsOutput: + """ + Describes the specified EC2 Fleet or all of your EC2 Fleets. + + Warning: + If a fleet is of type `instant`, you must specify the fleet ID in the + request, otherwise the fleet does not appear in the response. + + For more information, see [Describe your EC2 + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeFleetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFleetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FLEETS, [], plugins) + + def describe_flow_logs( + self, + input: DescribeFlowLogsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeFlowLogsOutput: + """ + Describes one or more flow logs. + + To view the published flow log records, you must view the log + destination. For example, the CloudWatch Logs log group, the Amazon S3 + bucket, or the Kinesis Data Firehose delivery stream. + + Args: + input: + An instance of `DescribeFlowLogsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFlowLogsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FLOW_LOGS, [], plugins) + + def describe_fpga_image_attribute( + self, + input: DescribeFpgaImageAttributeInput, + plugins: list[Plugin] | None = None, + ) -> DescribeFpgaImageAttributeOutput: + """ + Describes the specified attribute of the specified Amazon FPGA Image + (AFI). + + Args: + input: + An instance of `DescribeFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFpgaImageAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FPGA_IMAGE_ATTRIBUTE, [], plugins) + + def describe_fpga_images( + self, + input: DescribeFpgaImagesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeFpgaImagesOutput: + """ + Describes the Amazon FPGA Images (AFIs) available to you. These include + public AFIs, private AFIs that you own, and AFIs owned by other Amazon + Web Services accounts for which you have load permissions. + + Args: + input: + An instance of `DescribeFpgaImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeFpgaImagesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_FPGA_IMAGES, [], plugins) + + def describe_host_reservation_offerings( + self, + input: DescribeHostReservationOfferingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeHostReservationOfferingsOutput: + """ + Describes the Dedicated Host reservations that are available to + purchase. + + The results describe all of the Dedicated Host reservation offerings, + including offerings that might not match the instance family and Region + of your Dedicated Hosts. When purchasing an offering, ensure that the + instance family and Region of the offering matches that of the Dedicated + Hosts with which it is to be associated. For more information about + supported instance types, see [Dedicated + Hosts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeHostReservationOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostReservationOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_HOST_RESERVATION_OFFERINGS, [], plugins + ) + + def describe_host_reservations( + self, + input: DescribeHostReservationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeHostReservationsOutput: + """ + Describes reservations that are associated with Dedicated Hosts in your + account. + + Args: + input: + An instance of `DescribeHostReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostReservationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_HOST_RESERVATIONS, [], plugins) + + def describe_hosts( + self, + input: DescribeHostsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeHostsOutput: + """ + Describes the specified Dedicated Hosts or all your Dedicated Hosts. + + The results describe only the Dedicated Hosts in the Region you're + currently using. All listed instances consume capacity on your Dedicated + Host. Dedicated Hosts that have recently been released are listed with + the state `released`. + + Args: + input: + An instance of `DescribeHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeHostsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_HOSTS, [], plugins) + + def describe_iam_instance_profile_associations( + self, + input: DescribeIamInstanceProfileAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIamInstanceProfileAssociationsOutput: + """ + Describes your IAM instance profile associations. + + Args: + input: + An instance of `DescribeIamInstanceProfileAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIamInstanceProfileAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS, [], plugins + ) + + def describe_identity_id_format( + self, input: DescribeIdentityIdFormatInput, plugins: list[Plugin] | None = None + ) -> DescribeIdentityIdFormatOutput: + """ + Describes the ID format settings for resources for the specified IAM + user, IAM role, or root user. For example, you can view the resource + types that are enabled for longer IDs. This request only returns + information about resource types whose ID formats can be modified; it + does not return information about other resource types. For more + information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + These settings apply to the principal specified in the request. They do + not apply to the principal that makes the request. + + Args: + input: + An instance of `DescribeIdentityIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIdentityIdFormatOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IDENTITY_ID_FORMAT, [], plugins) + + def describe_id_format( + self, + input: DescribeIdFormatInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIdFormatOutput: + """ + Describes the ID format settings for your resources on a per-Region + basis, for example, to view which resource types are enabled for longer + IDs. This request only returns information about resource types whose ID + formats can be modified; it does not return information about other + resource types. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + These settings apply to the IAM user who makes the request; they do not + apply to the entire Amazon Web Services account. By default, an IAM user + defaults to the same settings as the root user, unless they explicitly + override the settings by running the ModifyIdFormat command. Resources + created with longer IDs are visible to all IAM users, regardless of + these settings and provided that they have permission to use the + relevant `Describe` command for the resource type. + + Args: + input: + An instance of `DescribeIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIdFormatOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ID_FORMAT, [], plugins) + + def describe_image_attribute( + self, input: DescribeImageAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeImageAttributeOutput: + """ + Describes the specified attribute of the specified AMI. You can specify + only one attribute at a time. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMAGE_ATTRIBUTE, [], plugins) + + def describe_image_references( + self, input: DescribeImageReferencesInput, plugins: list[Plugin] | None = None + ) -> DescribeImageReferencesOutput: + """ + Describes your Amazon Web Services resources that are referencing the + specified images. + + For more information, see [Identify your resources referencing specified + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageReferencesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMAGE_REFERENCES, [], plugins) + + def describe_images( + self, + input: DescribeImagesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeImagesOutput: + """ + Describes the specified images (AMIs, AKIs, and ARIs) available to you + or all of the images available to you. + + The images available to you include public images, private images that + you own, and private images owned by other Amazon Web Services accounts + for which you have explicit launch permissions. + + Recently deregistered images appear in the returned results for a short + interval and then return empty results. After all instances that + reference a deregistered AMI are terminated, specifying the ID of the + image will eventually return an error indicating that the AMI ID cannot + be found. + + When Allowed AMIs is set to `enabled`, only allowed images are returned + in the results, with the `imageAllowed` field set to `true` for each + image. In `audit-mode`, the `imageAllowed` field is set to `true` for + images that meet the account's Allowed AMIs criteria, and `false` for + images that don't meet the criteria. For more information, see [Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html). + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeImagesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImagesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMAGES, [], plugins) + + def describe_image_usage_report_entries( + self, + input: DescribeImageUsageReportEntriesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeImageUsageReportEntriesOutput: + """ + Describes the entries in image usage reports, showing how your images + are used across other Amazon Web Services accounts. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageUsageReportEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageUsageReportEntriesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES, [], plugins + ) + + def describe_image_usage_reports( + self, + input: DescribeImageUsageReportsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeImageUsageReportsOutput: + """ + Describes the configuration and status of image usage reports, filtered + by report IDs or image IDs. + + For more information, see [View your AMI + usage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeImageUsageReportsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImageUsageReportsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMAGE_USAGE_REPORTS, [], plugins) + + def describe_import_image_tasks( + self, + input: DescribeImportImageTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeImportImageTasksOutput: + """ + Displays details about an import virtual machine or import snapshot + tasks that are already created. + + Args: + input: + An instance of `DescribeImportImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImportImageTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMPORT_IMAGE_TASKS, [], plugins) + + def describe_import_snapshot_tasks( + self, + input: DescribeImportSnapshotTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeImportSnapshotTasksOutput: + """ + Describes your import snapshot tasks. + + Args: + input: + An instance of `DescribeImportSnapshotTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeImportSnapshotTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IMPORT_SNAPSHOT_TASKS, [], plugins) + + def describe_instance_attribute( + self, input: DescribeInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeInstanceAttributeOutput: + """ + Describes the specified attribute of the specified instance. You can + specify only one attribute at a time. Available attributes include SQL + license exemption configuration for instances registered with the SQL LE + service. + + Args: + input: + An instance of `DescribeInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_ATTRIBUTE, [], plugins) + + def describe_instance_connect_endpoints( + self, + input: DescribeInstanceConnectEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceConnectEndpointsOutput: + """ + Describes the specified EC2 Instance Connect Endpoints or all EC2 + Instance Connect Endpoints. + + Args: + input: + An instance of `DescribeInstanceConnectEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceConnectEndpointsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_CONNECT_ENDPOINTS, [], plugins + ) + + def describe_instance_credit_specifications( + self, + input: DescribeInstanceCreditSpecificationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceCreditSpecificationsOutput: + """ + Describes the credit option for CPU usage of the specified burstable + performance instances. The credit options are `standard` and + `unlimited`. + + If you do not specify an instance ID, Amazon EC2 returns burstable + performance instances with the `unlimited` credit option, as well as + instances that were previously configured as T2, T3, and T3a with the + `unlimited` credit option. For example, if you resize a T2 instance, + while it is configured as `unlimited`, to an M4 instance, Amazon EC2 + returns the M4 instance. + + If you specify one or more instance IDs, Amazon EC2 returns the credit + option (`standard` or `unlimited`) of those instances. If you specify an + instance ID that is not a burstable performance instance, Amazon EC2 + returns the `standard` credit option. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + If an Availability Zone is experiencing a service disruption and you + specify instance IDs in the affected zone, or do not specify any + instance IDs at all, the call fails. If you specify only instance IDs in + an unaffected zone, the call works normally. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceCreditSpecificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceCreditSpecificationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS, [], plugins + ) + + def describe_instance_event_notification_attributes( + self, + input: DescribeInstanceEventNotificationAttributesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceEventNotificationAttributesOutput: + """ + Describes the tag keys that are registered to appear in scheduled event + notifications for resources in the current Region. + + Args: + input: + An instance of `DescribeInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceEventNotificationAttributesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, [], plugins + ) + + def describe_instance_event_windows( + self, + input: DescribeInstanceEventWindowsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceEventWindowsOutput: + """ + Describes the specified event windows or all event windows. + + If you specify event window IDs, the output includes information for + only the specified event windows. If you specify filters, the output + includes information for only those event windows that meet the filter + criteria. If you do not specify event windows IDs or filters, the output + includes information for all event windows, which can affect + performance. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceEventWindowsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceEventWindowsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_EVENT_WINDOWS, [], plugins) + + def describe_instance_image_metadata( + self, + input: DescribeInstanceImageMetadataInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceImageMetadataOutput: + """ + Describes the AMI that was used to launch an instance, even if the AMI + is deprecated, deregistered, made private (no longer public or shared + with your account), or not allowed. + + If you specify instance IDs, the output includes information for only + the specified instances. If you specify filters, the output includes + information for only those instances that meet the filter criteria. If + you do not specify instance IDs or filters, the output includes + information for all instances, which can affect performance. + + If you specify an instance ID that is not valid, an instance that + doesn't exist, or an instance that you do not own, an error + (`InvalidInstanceID.NotFound`) is returned. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + In the rare case where an Availability Zone is experiencing a service + disruption and you specify instance IDs that are in the affected + Availability Zone, or do not specify any instance IDs at all, the call + fails. If you specify only instance IDs that are in an unaffected + Availability Zone, the call works normally. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstanceImageMetadataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceImageMetadataOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_IMAGE_METADATA, [], plugins + ) + + def describe_instances( + self, + input: DescribeInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstancesOutput: + """ + Describes the specified instances or all instances. + + If you specify instance IDs, the output includes information for only + the specified instances. If you specify filters, the output includes + information for only those instances that meet the filter criteria. If + you do not specify instance IDs or filters, the output includes + information for all instances, which can affect performance. We + recommend that you use pagination to ensure that the operation returns + quickly and successfully. + + The response includes SQL license exemption status information for + instances registered with the SQL LE service, providing visibility into + license exemption configuration and status. + + If you specify an instance ID that is not valid, an error is returned. + If you specify an instance that you do not own, it is not included in + the output. + + Recently terminated instances might appear in the returned results. This + interval is usually less than one hour. + + If you describe instances in the rare case where an Availability Zone is + experiencing a service disruption and you specify instance IDs that are + in the affected zone, or do not specify any instance IDs at all, the + call fails. If you describe instances and specify only instance IDs that + are in an unaffected zone, the call works normally. + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCES, [], plugins) + + def describe_instance_sql_ha_history_states( + self, + input: DescribeInstanceSqlHaHistoryStatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceSqlHaHistoryStatesOutput: + """ + Describes the historical SQL Server High Availability states for Amazon + EC2 instances that are enabled for Amazon EC2 High Availability for SQL + Server monitoring. + + Args: + input: + An instance of `DescribeInstanceSqlHaHistoryStatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceSqlHaHistoryStatesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES, [], plugins + ) + + def describe_instance_sql_ha_states( + self, + input: DescribeInstanceSqlHaStatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceSqlHaStatesOutput: + """ + Describes the SQL Server High Availability states for Amazon EC2 + instances that are enabled for Amazon EC2 High Availability for SQL + Server monitoring. + + Args: + input: + An instance of `DescribeInstanceSqlHaStatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceSqlHaStatesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_SQL_HA_STATES, [], plugins) + + def describe_instance_status( + self, + input: DescribeInstanceStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceStatusOutput: + """ + Describes the status of the specified instances or all of your + instances. By default, only running instances are described, unless you + specifically indicate to return the status of all instances. + + Instance status includes the following components: + + - **Status checks** - Amazon EC2 performs status checks on running EC2 + instances to identify hardware and software issues. For more + information, see [Status checks for your + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html) + and [Troubleshoot instances with failed status + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html) + in the *Amazon EC2 User Guide*. + + - **Application status checks** - Amazon EC2 reports application-level + health status for instances, indicating whether applications running + on the instance are functioning properly. + + - **Scheduled events** - Amazon EC2 can schedule events (such as reboot, + stop, or terminate) for your instances related to hardware issues, + software updates, or system maintenance. For more information, see + [Scheduled events for your + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html) + in the *Amazon EC2 User Guide*. + + - **Instance state** - You can manage your instances from the moment you + launch them through their termination. For more information, see + [Instance + lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + The Amazon EC2 API follows an eventual consistency model. This means + that the result of an API command you run that creates or modifies + resources might not be immediately available to all subsequent commands + you run. For guidance on how to manage eventual consistency, see + [Eventual consistency in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeInstanceStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceStatusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_STATUS, [], plugins) + + def describe_instance_topology( + self, + input: DescribeInstanceTopologyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceTopologyOutput: + """ + Describes a tree-based hierarchy that represents the physical host + placement of your EC2 instances within an Availability Zone or Local + Zone. You can use this information to determine the relative proximity + of your EC2 instances within the Amazon Web Services network to support + your tightly coupled workloads. + + Instance topology is supported for specific instance types only. For + more information, see [Prerequisites for Amazon EC2 instance + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html) + in the *Amazon EC2 User Guide*. + + Note: + The Amazon EC2 API follows an eventual consistency model due to the + distributed nature of the system supporting it. As a result, when you + call the DescribeInstanceTopology API command immediately after + launching instances, the response might return a `null` value for + `capacityBlockId` because the data might not have fully propagated + across all subsystems. For more information, see [Eventual consistency + in the Amazon EC2 + API](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + in the *Amazon EC2 Developer Guide*. + + For more information, see [Amazon EC2 + topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeInstanceTopologyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTopologyOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_TOPOLOGY, [], plugins) + + def describe_instance_type_offerings( + self, + input: DescribeInstanceTypeOfferingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceTypeOfferingsOutput: + """ + Lists the instance types that are offered for the specified location. If + no location is specified, the default is to list the instance types that + are offered in the current Region. + + Args: + input: + An instance of `DescribeInstanceTypeOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTypeOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_INSTANCE_TYPE_OFFERINGS, [], plugins + ) + + def describe_instance_types( + self, + input: DescribeInstanceTypesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInstanceTypesOutput: + """ + Describes the specified instance types. By default, all instance types + for the current Region are described. Alternatively, you can filter the + results. To include instance types that are not supported in the current + Region, set `IncludeUnsupportedInRegion` to `true`. + + Args: + input: + An instance of `DescribeInstanceTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInstanceTypesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INSTANCE_TYPES, [], plugins) + + def describe_internet_gateways( + self, + input: DescribeInternetGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeInternetGatewaysOutput: + """ + Describes your internet gateways. The default is to describe all your + internet gateways. Alternatively, you can specify specific internet + gateway IDs or filter the results to include only the internet gateways + that match specific criteria. + + Args: + input: + An instance of `DescribeInternetGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeInternetGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INTERNET_GATEWAYS, [], plugins) + + def describe_ipam_byoasn( + self, + input: DescribeIpamByoasnInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamByoasnOutput: + """ + Describes your Autonomous System Numbers (ASNs), their provisioning + statuses, and the BYOIP CIDRs with which they are associated. For more + information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DescribeIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamByoasnOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAM_BYOASN, [], plugins) + + def describe_ipam_external_resource_verification_tokens( + self, + input: DescribeIpamExternalResourceVerificationTokensInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamExternalResourceVerificationTokensOutput: + """ + Describe verification tokens. + + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + + Args: + input: + An instance of `DescribeIpamExternalResourceVerificationTokensInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamExternalResourceVerificationTokensOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS, + [], + plugins, + ) + + def describe_ipam_internet_registry_associations( + self, + input: DescribeIpamInternetRegistryAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamInternetRegistryAssociationsOutput: + """ + Describes one or more IPAM internet registry associations. We recommend + using pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `DescribeIpamInternetRegistryAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamInternetRegistryAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS, [], plugins + ) + + def describe_ipam_policies( + self, + input: DescribeIpamPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPoliciesOutput: + """ + Describes one or more IPAM policies. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DescribeIpamPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoliciesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAM_POLICIES, [], plugins) + + def describe_ipam_pool_allocations( + self, + input: DescribeIpamPoolAllocationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPoolAllocationsOutput: + """ + Describes IPAM pool allocations. You can describe all allocations owned + by you across all pools, or you can describe specific allocations by ID. + + If you specify `IpamPoolAllocationIds`, the results include only the + specified allocations. If you do not specify `IpamPoolAllocationIds`, + the results include all allocations owned by you. You can use `Filters` + to narrow the results. + + Note: + This action returns only allocations directly owned by you. To view all + allocations in a pool you own or that has been shared with you, + including allocations owned by other accounts, use + [GetIpamPoolAllocations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetIpamPoolAllocations.html). + + Args: + input: + An instance of `DescribeIpamPoolAllocationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoolAllocationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAM_POOL_ALLOCATIONS, [], plugins) + + def describe_ipam_pools( + self, + input: DescribeIpamPoolsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPoolsOutput: + """ + Get information about your IPAM pools. + + Args: + input: + An instance of `DescribeIpamPoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPoolsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAM_POOLS, [], plugins) + + def describe_ipam_prefix_list_resolvers( + self, + input: DescribeIpamPrefixListResolversInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPrefixListResolversOutput: + """ + Describes one or more IPAM prefix list resolvers. Use this operation to + view the configuration, status, and properties of your resolvers. + + Args: + input: + An instance of `DescribeIpamPrefixListResolversInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPrefixListResolversOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS, [], plugins + ) + + def describe_ipam_prefix_list_resolver_targets( + self, + input: DescribeIpamPrefixListResolverTargetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamPrefixListResolverTargetsOutput: + """ + Describes one or more IPAM prefix list resolver Targets. Use this + operation to view the configuration and status of resolver targets. + + Args: + input: + An instance of `DescribeIpamPrefixListResolverTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamPrefixListResolverTargetsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS, [], plugins + ) + + def describe_ipam_resource_discoveries( + self, + input: DescribeIpamResourceDiscoveriesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamResourceDiscoveriesOutput: + """ + Describes IPAM resource discoveries. A resource discovery is an IPAM + component that enables IPAM to manage and monitor resources that belong + to the owning account. + + Args: + input: + An instance of `DescribeIpamResourceDiscoveriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamResourceDiscoveriesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IPAM_RESOURCE_DISCOVERIES, [], plugins + ) + + def describe_ipam_resource_discovery_associations( + self, + input: DescribeIpamResourceDiscoveryAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamResourceDiscoveryAssociationsOutput: + """ + Describes resource discovery association with an Amazon VPC IPAM. An + associated resource discovery is a resource discovery that has been + associated with an IPAM.. + + Args: + input: + An instance of `DescribeIpamResourceDiscoveryAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamResourceDiscoveryAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS, [], plugins + ) + + def describe_ipams( + self, + input: DescribeIpamsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamsOutput: + """ + Get information about your IPAM pools. + + For more information, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DescribeIpamsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAMS, [], plugins) + + def describe_ipam_scopes( + self, + input: DescribeIpamScopesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpamScopesOutput: + """ + Get information about your IPAM scopes. + + Args: + input: + An instance of `DescribeIpamScopesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpamScopesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPAM_SCOPES, [], plugins) + + def describe_ipv6_pools( + self, + input: DescribeIpv6PoolsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIpv6PoolsOutput: + """ + Describes your IPv6 address pools. + + Args: + input: + An instance of `DescribeIpv6PoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIpv6PoolsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_IPV6_POOLS, [], plugins) + + def describe_key_pairs( + self, + input: DescribeKeyPairsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeKeyPairsOutput: + """ + Describes the specified key pairs or all of your key pairs. + + For more information about key pairs, see [Amazon EC2 key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeKeyPairsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyPairsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_KEY_PAIRS, [], plugins) + + def describe_launch_templates( + self, + input: DescribeLaunchTemplatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLaunchTemplatesOutput: + """ + Describes one or more launch templates. + + Args: + input: + An instance of `DescribeLaunchTemplatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLaunchTemplatesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_LAUNCH_TEMPLATES, [], plugins) + + def describe_launch_template_versions( + self, + input: DescribeLaunchTemplateVersionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLaunchTemplateVersionsOutput: + """ + Describes one or more versions of a specified launch template. You can + describe all versions, individual versions, or a range of versions. You + can also describe all the latest versions or all the default versions of + all the launch templates in your account. + + Args: + input: + An instance of `DescribeLaunchTemplateVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLaunchTemplateVersionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_LAUNCH_TEMPLATE_VERSIONS, [], plugins + ) + + def describe_local_gateway_route_tables( + self, + input: DescribeLocalGatewayRouteTablesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTablesOutput: + """ + Describes one or more local gateway route tables. By default, all local + gateway route tables are described. Alternatively, you can filter the + results. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTablesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES, [], plugins + ) + + def describe_local_gateway_route_table_virtual_interface_group_associations( + self, + input: DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput + | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput: + """ + Describes the associations between virtual interface groups and local + gateway route tables. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS, + [], + plugins, + ) + + def describe_local_gateway_route_table_vpc_associations( + self, + input: DescribeLocalGatewayRouteTableVpcAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayRouteTableVpcAssociationsOutput: + """ + Describes the specified associations between VPCs and local gateway + route tables. + + Args: + input: + An instance of `DescribeLocalGatewayRouteTableVpcAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayRouteTableVpcAssociationsOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS, + [], + plugins, + ) + + def describe_local_gateways( + self, + input: DescribeLocalGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewaysOutput: + """ + Describes one or more local gateways. By default, all local gateways are + described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeLocalGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_LOCAL_GATEWAYS, [], plugins) + + def describe_local_gateway_virtual_interface_groups( + self, + input: DescribeLocalGatewayVirtualInterfaceGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayVirtualInterfaceGroupsOutput: + """ + Describes the specified local gateway virtual interface groups. + + Args: + input: + An instance of `DescribeLocalGatewayVirtualInterfaceGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayVirtualInterfaceGroupsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS, [], plugins + ) + + def describe_local_gateway_virtual_interfaces( + self, + input: DescribeLocalGatewayVirtualInterfacesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLocalGatewayVirtualInterfacesOutput: + """ + Describes the specified local gateway virtual interfaces. + + Args: + input: + An instance of `DescribeLocalGatewayVirtualInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLocalGatewayVirtualInterfacesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES, [], plugins + ) + + def describe_locked_snapshots( + self, + input: DescribeLockedSnapshotsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLockedSnapshotsOutput: + """ + Describes the lock status for a snapshot. + + Args: + input: + An instance of `DescribeLockedSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLockedSnapshotsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_LOCKED_SNAPSHOTS, [], plugins) + + def describe_mac_hosts( + self, + input: DescribeMacHostsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeMacHostsOutput: + """ + Describes the specified EC2 Mac Dedicated Host or all of your EC2 Mac + Dedicated Hosts. + + Args: + input: + An instance of `DescribeMacHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMacHostsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_MAC_HOSTS, [], plugins) + + def describe_mac_modification_tasks( + self, + input: DescribeMacModificationTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeMacModificationTasksOutput: + """ + Describes a System Integrity Protection (SIP) modification task or + volume ownership delegation task for an Amazon EC2 Mac instance. For + more information, see [Configure SIP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeMacModificationTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMacModificationTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_MAC_MODIFICATION_TASKS, [], plugins) + + def describe_managed_prefix_lists( + self, + input: DescribeManagedPrefixListsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeManagedPrefixListsOutput: + """ + Describes your managed prefix lists and any Amazon Web Services-managed + prefix lists. + + Args: + input: + An instance of `DescribeManagedPrefixListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeManagedPrefixListsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_MANAGED_PREFIX_LISTS, [], plugins) + + def describe_moving_addresses( + self, + input: DescribeMovingAddressesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeMovingAddressesOutput: + """ + Note: + This action is deprecated. + + Describes your Elastic IP addresses that are being moved from or being + restored to the EC2-Classic platform. This request does not return + information about any other Elastic IP addresses in your account. + + Args: + input: + An instance of `DescribeMovingAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeMovingAddressesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_MOVING_ADDRESSES, [], plugins) + + def describe_nat_gateways( + self, + input: DescribeNatGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNatGatewaysOutput: + """ + Describes your NAT gateways. The default is to describe all your NAT + gateways. Alternatively, you can specify specific NAT gateway IDs or + filter the results to include only the NAT gateways that match specific + criteria. + + Args: + input: + An instance of `DescribeNatGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNatGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_NAT_GATEWAYS, [], plugins) + + def describe_network_acls( + self, + input: DescribeNetworkAclsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkAclsOutput: + """ + Describes your network ACLs. The default is to describe all your network + ACLs. Alternatively, you can specify specific network ACL IDs or filter + the results to include only the network ACLs that match specific + criteria. + + For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeNetworkAclsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkAclsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_NETWORK_ACLS, [], plugins) + + def describe_network_insights_access_scope_analyses( + self, + input: DescribeNetworkInsightsAccessScopeAnalysesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAccessScopeAnalysesOutput: + """ + Describes the specified Network Access Scope analyses. + + Args: + input: + An instance of `DescribeNetworkInsightsAccessScopeAnalysesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAccessScopeAnalysesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES, [], plugins + ) + + def describe_network_insights_access_scopes( + self, + input: DescribeNetworkInsightsAccessScopesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAccessScopesOutput: + """ + Describes the specified Network Access Scopes. + + Args: + input: + An instance of `DescribeNetworkInsightsAccessScopesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAccessScopesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES, [], plugins + ) + + def describe_network_insights_analyses( + self, + input: DescribeNetworkInsightsAnalysesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsAnalysesOutput: + """ + Describes one or more of your network insights analyses. + + Args: + input: + An instance of `DescribeNetworkInsightsAnalysesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsAnalysesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_NETWORK_INSIGHTS_ANALYSES, [], plugins + ) + + def describe_network_insights_paths( + self, + input: DescribeNetworkInsightsPathsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInsightsPathsOutput: + """ + Describes one or more of your paths. + + Args: + input: + An instance of `DescribeNetworkInsightsPathsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInsightsPathsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_NETWORK_INSIGHTS_PATHS, [], plugins) + + def describe_network_interface_attribute( + self, + input: DescribeNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInterfaceAttributeOutput: + """ + Describes a network interface attribute. You can specify only one + attribute at a time. + + Args: + input: + An instance of `DescribeNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfaceAttributeOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + def describe_network_interface_permissions( + self, + input: DescribeNetworkInterfacePermissionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInterfacePermissionsOutput: + """ + Describes the permissions for your network interfaces. + + Args: + input: + An instance of `DescribeNetworkInterfacePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfacePermissionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_NETWORK_INTERFACE_PERMISSIONS, [], plugins + ) + + def describe_network_interfaces( + self, + input: DescribeNetworkInterfacesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeNetworkInterfacesOutput: + """ + Describes the specified network interfaces or all your network + interfaces. + + If you have a large number of network interfaces, the operation fails + unless you use pagination or one of the following filters: `group-id`, + `mac-address`, `private-dns-name`, `private-ip-address`, `subnet-id`, or + `vpc-id`. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + + Args: + input: + An instance of `DescribeNetworkInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeNetworkInterfacesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_NETWORK_INTERFACES, [], plugins) + + def describe_outpost_lags( + self, + input: DescribeOutpostLagsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeOutpostLagsOutput: + """ + Describes the Outposts link aggregation groups (LAGs). + + Note: + LAGs are only available for second-generation Outposts racks at this + time. + + Args: + input: + An instance of `DescribeOutpostLagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOutpostLagsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_OUTPOST_LAGS, [], plugins) + + def describe_placement_groups( + self, + input: DescribePlacementGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePlacementGroupsOutput: + """ + Describes the specified placement groups or all of your placement + groups. + + Note: + To describe a specific placement group that is *shared* with your + account, you must specify the ID of the placement group using the + `GroupId` parameter. Specifying the name of a *shared* placement group + using the `GroupNames` parameter will result in an error. + + For more information, see [Placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribePlacementGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePlacementGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_PLACEMENT_GROUPS, [], plugins) + + def describe_prefix_lists( + self, + input: DescribePrefixListsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePrefixListsOutput: + """ + Describes available Amazon Web Services services in a prefix list + format, which includes the prefix list name and prefix list ID of the + service and the IP address range for the service. + + Args: + input: + An instance of `DescribePrefixListsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePrefixListsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_PREFIX_LISTS, [], plugins) + + def describe_principal_id_format( + self, + input: DescribePrincipalIdFormatInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePrincipalIdFormatOutput: + """ + Describes the ID format settings for the root user and all IAM roles and + IAM users that have explicitly specified a longer ID (17-character ID) + preference. + + By default, all IAM roles and IAM users default to the same ID settings + as the root user, unless they explicitly override the settings. This + request is useful for identifying those IAM users and IAM roles that + have overridden the default ID settings. + + The following resource types support longer IDs: `bundle` | + `conversion-task` | `customer-gateway` | `dhcp-options` | + `elastic-ip-allocation` | `elastic-ip-association` | `export-task` | + `flow-log` | `image` | `import-task` | `instance` | + `internet-gateway` | `network-acl` | `network-acl-association` | + `network-interface` | `network-interface-attachment` | `prefix-list` + | `reservation` | `route-table` | `route-table-association` | + `security-group` | `snapshot` | `subnet` | + `subnet-cidr-block-association` | `volume` | `vpc` | + `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway`. + + Args: + input: + An instance of `DescribePrincipalIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePrincipalIdFormatOutput`. + """ + return self._invoke(input, _models.DESCRIBE_PRINCIPAL_ID_FORMAT, [], plugins) + + def describe_public_ipv4_pools( + self, + input: DescribePublicIpv4PoolsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePublicIpv4PoolsOutput: + """ + Describes the specified IPv4 address pools. + + Args: + input: + An instance of `DescribePublicIpv4PoolsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePublicIpv4PoolsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_PUBLIC_IPV4_POOLS, [], plugins) + + def describe_regions( + self, + input: DescribeRegionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeRegionsOutput: + """ + Describes the Regions that are enabled for your account, or all Regions. + + For a list of the Regions supported by Amazon EC2, see [Amazon EC2 + service + endpoints](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html). + + For information about enabling and disabling Regions for your account, + see [Specify which Amazon Web Services Regions your account can + use](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) + in the *Amazon Web Services Account Management Reference Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeRegionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRegionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_REGIONS, [], plugins) + + def describe_replace_root_volume_tasks( + self, + input: DescribeReplaceRootVolumeTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReplaceRootVolumeTasksOutput: + """ + Describes a root volume replacement task. For more information, see + [Replace a root + volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeReplaceRootVolumeTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReplaceRootVolumeTasksOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_REPLACE_ROOT_VOLUME_TASKS, [], plugins + ) + + def describe_reserved_instances( + self, + input: DescribeReservedInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesOutput: + """ + Describes one or more of the Reserved Instances that you purchased. + + For more information about Reserved Instances, see [Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_RESERVED_INSTANCES, [], plugins) + + def describe_reserved_instances_listings( + self, + input: DescribeReservedInstancesListingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesListingsOutput: + """ + Describes your account's Reserved Instance listings in the Reserved + Instance Marketplace. + + The Reserved Instance Marketplace matches sellers who want to resell + Reserved Instance capacity that they no longer need with buyers who want + to purchase additional capacity. Reserved Instances bought and sold + through the Reserved Instance Marketplace work like any other Reserved + Instances. + + As a seller, you choose to list some or all of your Reserved Instances, + and you specify the upfront price to receive for them. Your Reserved + Instances are then listed in the Reserved Instance Marketplace and are + available for purchase. + + As a buyer, you specify the configuration of the Reserved Instance to + purchase, and the Marketplace matches what you're searching for with + what's available. The Marketplace first sells the lowest priced + Reserved Instances to you, and continues to sell available Reserved + Instance listings to you until your demand is met. You are charged based + on the total price of all of the listings that you purchase. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesListingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesListingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_LISTINGS, [], plugins + ) + + def describe_reserved_instances_modifications( + self, + input: DescribeReservedInstancesModificationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesModificationsOutput: + """ + Describes the modifications made to your Reserved Instances. If no + parameter is specified, information about all your Reserved Instances + modification requests is returned. If a modification ID is specified, + only information about the specific modification is returned. + + For more information, see [Modify Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesModificationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS, [], plugins + ) + + def describe_reserved_instances_offerings( + self, + input: DescribeReservedInstancesOfferingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedInstancesOfferingsOutput: + """ + Describes Reserved Instance offerings that are available for purchase. + With Reserved Instances, you purchase the right to launch instances for + a period of time. During that time period, you do not receive + insufficient capacity errors, and you pay a lower usage rate than the + rate charged for On-Demand instances for the actual time used. + + If you have listed your own Reserved Instances for sale in the Reserved + Instance Marketplace, they will be excluded from these results. This is + to ensure that you do not purchase your own Reserved Instances. + + For more information, see [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeReservedInstancesOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedInstancesOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_RESERVED_INSTANCES_OFFERINGS, [], plugins + ) + + def describe_route_server_endpoints( + self, + input: DescribeRouteServerEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeRouteServerEndpointsOutput: + """ + Describes one or more route server endpoints. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServerEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServerEndpointsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ROUTE_SERVER_ENDPOINTS, [], plugins) + + def describe_route_server_peers( + self, + input: DescribeRouteServerPeersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeRouteServerPeersOutput: + """ + Describes one or more route server peers. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServerPeersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServerPeersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ROUTE_SERVER_PEERS, [], plugins) + + def describe_route_servers( + self, + input: DescribeRouteServersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeRouteServersOutput: + """ + Describes one or more route servers. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteServersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteServersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ROUTE_SERVERS, [], plugins) + + def describe_route_tables( + self, + input: DescribeRouteTablesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeRouteTablesOutput: + """ + Describes your route tables. The default is to describe all your route + tables. Alternatively, you can specify specific route table IDs or + filter the results to include only the route tables that match specific + criteria. + + Each subnet in your VPC must be associated with a route table. If a + subnet is not explicitly associated with any route table, it is + implicitly associated with the main route table. This command does not + return the subnet ID for implicit associations. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeRouteTablesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ROUTE_TABLES, [], plugins) + + def describe_scheduled_instance_availability( + self, + input: DescribeScheduledInstanceAvailabilityInput, + plugins: list[Plugin] | None = None, + ) -> DescribeScheduledInstanceAvailabilityOutput: + """ + Finds available schedules that meet the specified criteria. + + You can search for an available schedule no more than 3 months in + advance. You must meet the minimum required duration of 1,200 hours per + year. For example, the minimum daily schedule is 4 hours, the minimum + weekly schedule is 24 hours, and the minimum monthly schedule is 100 + hours. + + After you find a schedule that meets your needs, call + PurchaseScheduledInstances to purchase Scheduled Instances with that + schedule. + + Args: + input: + An instance of `DescribeScheduledInstanceAvailabilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeScheduledInstanceAvailabilityOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY, [], plugins + ) + + def describe_scheduled_instances( + self, + input: DescribeScheduledInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeScheduledInstancesOutput: + """ + Describes the specified Scheduled Instances or all your Scheduled + Instances. + + Args: + input: + An instance of `DescribeScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeScheduledInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SCHEDULED_INSTANCES, [], plugins) + + def describe_secondary_interfaces( + self, + input: DescribeSecondaryInterfacesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecondaryInterfacesOutput: + """ + Describes one or more of your secondary interfaces. + + Args: + input: + An instance of `DescribeSecondaryInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondaryInterfacesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SECONDARY_INTERFACES, [], plugins) + + def describe_secondary_networks( + self, + input: DescribeSecondaryNetworksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecondaryNetworksOutput: + """ + Describes one or more secondary networks. + + Args: + input: + An instance of `DescribeSecondaryNetworksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondaryNetworksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SECONDARY_NETWORKS, [], plugins) + + def describe_secondary_subnets( + self, + input: DescribeSecondarySubnetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecondarySubnetsOutput: + """ + Describes one or more of your secondary subnets. + + Args: + input: + An instance of `DescribeSecondarySubnetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecondarySubnetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SECONDARY_SUBNETS, [], plugins) + + def describe_security_group_references( + self, + input: DescribeSecurityGroupReferencesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupReferencesOutput: + """ + Describes the VPCs on the other side of a VPC peering or Transit Gateway + connection that are referencing the security groups you've specified in + this request. + + Args: + input: + An instance of `DescribeSecurityGroupReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupReferencesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SECURITY_GROUP_REFERENCES, [], plugins + ) + + def describe_security_group_rules( + self, + input: DescribeSecurityGroupRulesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupRulesOutput: + """ + Describes one or more of your security group rules. + + Args: + input: + An instance of `DescribeSecurityGroupRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupRulesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SECURITY_GROUP_RULES, [], plugins) + + def describe_security_groups( + self, + input: DescribeSecurityGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupsOutput: + """ + Describes the specified security groups or all of your security groups. + + Args: + input: + An instance of `DescribeSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SECURITY_GROUPS, [], plugins) + + def describe_security_group_vpc_associations( + self, + input: DescribeSecurityGroupVpcAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSecurityGroupVpcAssociationsOutput: + """ + Describes security group VPC associations made with + [AssociateSecurityGroupVpc](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateSecurityGroupVpc.html). + + Args: + input: + An instance of `DescribeSecurityGroupVpcAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSecurityGroupVpcAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS, [], plugins + ) + + def describe_service_link_virtual_interfaces( + self, + input: DescribeServiceLinkVirtualInterfacesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeServiceLinkVirtualInterfacesOutput: + """ + Describes the Outpost service link virtual interfaces. + + Args: + input: + An instance of `DescribeServiceLinkVirtualInterfacesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceLinkVirtualInterfacesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES, [], plugins + ) + + def describe_snapshot_attribute( + self, input: DescribeSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeSnapshotAttributeOutput: + """ + Describes the specified attribute of the specified snapshot. You can + specify only one attribute at a time. + + For more information about EBS snapshots, see [Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SNAPSHOT_ATTRIBUTE, [], plugins) + + def describe_snapshots( + self, + input: DescribeSnapshotsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSnapshotsOutput: + """ + Describes the specified EBS snapshots available to you or all of the EBS + snapshots available to you. + + The snapshots available to you include public snapshots, private + snapshots that you own, and private snapshots owned by other Amazon Web + Services accounts for which you have explicit create volume permissions. + + The create volume permissions fall into the following categories: + + - *public*: The owner of the snapshot granted create volume permissions + for the snapshot to the `all` group. All Amazon Web Services accounts + have create volume permissions for these snapshots. + + - *explicit*: The owner of the snapshot granted create volume + permissions to a specific Amazon Web Services account. + + - *implicit*: An Amazon Web Services account has implicit create volume + permissions for all snapshots it owns. + + The list of snapshots returned can be filtered by specifying snapshot + IDs, snapshot owners, or Amazon Web Services accounts with create volume + permissions. If no options are specified, Amazon EC2 returns all + snapshots for which you have create volume permissions. + + If you specify one or more snapshot IDs, only snapshots that have the + specified IDs are returned. If you specify an invalid snapshot ID, an + error is returned. If you specify a snapshot ID for which you do not + have access, it is not included in the returned results. + + If you specify one or more snapshot owners using the `OwnerIds` option, + only snapshots from the specified owners and for which you have access + are returned. The results can include the Amazon Web Services account + IDs of the specified owners, `amazon` for snapshots owned by Amazon, or + `self` for snapshots that you own. + + If you specify a list of restorable users, only snapshots with create + snapshot permissions for those users are returned. You can specify + Amazon Web Services account IDs (if you own the snapshots), `self` for + snapshots for which you own or have explicit permissions, or `all` for + public snapshots. + + If you are describing a long list of snapshots, we recommend that you + paginate the output to make the list more manageable. For more + information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + For more information about EBS snapshots, see [Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html) + in the *Amazon EBS User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + + Args: + input: + An instance of `DescribeSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SNAPSHOTS, [], plugins) + + def describe_snapshot_tier_status( + self, + input: DescribeSnapshotTierStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSnapshotTierStatusOutput: + """ + Describes the storage tier status of one or more Amazon EBS snapshots. + + Args: + input: + An instance of `DescribeSnapshotTierStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSnapshotTierStatusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SNAPSHOT_TIER_STATUS, [], plugins) + + def describe_spot_datafeed_subscription( + self, + input: DescribeSpotDatafeedSubscriptionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotDatafeedSubscriptionOutput: + """ + Describes the data feed for Spot Instances. For more information, see + [Spot Instance data + feed](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeSpotDatafeedSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotDatafeedSubscriptionOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION, [], plugins + ) + + def describe_spot_fleet_instances( + self, + input: DescribeSpotFleetInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotFleetInstancesOutput: + """ + Describes the running instances for the specified Spot Fleet. + + Args: + input: + An instance of `DescribeSpotFleetInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SPOT_FLEET_INSTANCES, [], plugins) + + def describe_spot_fleet_request_history( + self, + input: DescribeSpotFleetRequestHistoryInput, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotFleetRequestHistoryOutput: + """ + Describes the events for the specified Spot Fleet request during the + specified time. + + Spot Fleet events are delayed by up to 30 seconds before they can be + described. This ensures that you can query by the last evaluated time + and not miss a recorded event. Spot Fleet events are available for 48 + hours. + + For more information, see [Monitor fleet events using Amazon + EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeSpotFleetRequestHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetRequestHistoryOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SPOT_FLEET_REQUEST_HISTORY, [], plugins + ) + + def describe_spot_fleet_requests( + self, + input: DescribeSpotFleetRequestsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotFleetRequestsOutput: + """ + Describes your Spot Fleet requests. + + Spot Fleet requests are deleted 48 hours after they are canceled and + their instances are terminated. + + Args: + input: + An instance of `DescribeSpotFleetRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotFleetRequestsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SPOT_FLEET_REQUESTS, [], plugins) + + def describe_spot_instance_requests( + self, + input: DescribeSpotInstanceRequestsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotInstanceRequestsOutput: + """ + Describes the specified Spot Instance requests. + + You can use `DescribeSpotInstanceRequests` to find a running Spot + Instance by examining the response. If the status of the Spot Instance + is `fulfilled`, the instance ID appears in the response and contains the + identifier of the instance. Alternatively, you can use + [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances) + with a filter to look for instances where the instance lifecycle is + `spot`. + + We recommend that you set `MaxResults` to a value between 5 and 1000 to + limit the number of items returned. This paginates the output, which + makes the list more manageable and returns the items faster. If the list + of items exceeds your `MaxResults` value, then that number of items is + returned along with a `NextToken` value that can be passed to a + subsequent `DescribeSpotInstanceRequests` request to retrieve the + remaining items. + + Spot Instance requests are deleted four hours after they are canceled + and their instances are terminated. + + Args: + input: + An instance of `DescribeSpotInstanceRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotInstanceRequestsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SPOT_INSTANCE_REQUESTS, [], plugins) + + def describe_spot_price_history( + self, + input: DescribeSpotPriceHistoryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSpotPriceHistoryOutput: + """ + Describes the Spot price history. For more information, see [Spot + Instance pricing + history](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html) + in the *Amazon EC2 User Guide*. + + When you specify a start and end time, the operation returns the prices + of the instance types within that time range. It also returns the last + price change before the start time, which is the effective price as of + the start time. + + Args: + input: + An instance of `DescribeSpotPriceHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSpotPriceHistoryOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SPOT_PRICE_HISTORY, [], plugins) + + def describe_stale_security_groups( + self, + input: DescribeStaleSecurityGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeStaleSecurityGroupsOutput: + """ + Describes the stale security group rules for security groups referenced + across a VPC peering connection, transit gateway connection, or with a + security group VPC association. Rules are stale when they reference a + deleted security group. Rules can also be stale if they reference a + security group in a peer VPC for which the VPC peering connection has + been deleted, across a transit gateway where the transit gateway has + been deleted (or [the transit gateway security group referencing + feature](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + has been disabled), or if a security group VPC association has been + disassociated. + + Args: + input: + An instance of `DescribeStaleSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStaleSecurityGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STALE_SECURITY_GROUPS, [], plugins) + + def describe_store_image_tasks( + self, + input: DescribeStoreImageTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStoreImageTasksOutput: + """ + Describes the progress of the AMI store tasks. You can describe the + store tasks for specified AMIs. If you don't specify the AMIs, you get + a paginated list of store tasks from the last 31 days. + + For each AMI task, the response indicates if the task is `InProgress`, + `Completed`, or `Failed`. For tasks `InProgress`, the response shows the + estimated progress as a percentage. + + Tasks are listed in reverse chronological order. Currently, only tasks + from the past 31 days can be viewed. + + To use this API, you must have the required permissions. For more + information, see [Permissions for storing and restoring AMIs using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions) + in the *Amazon EC2 User Guide*. + + For more information, see [Store and restore an AMI using + S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DescribeStoreImageTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStoreImageTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STORE_IMAGE_TASKS, [], plugins) + + def describe_subnets( + self, + input: DescribeSubnetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSubnetsOutput: + """ + Describes your subnets. The default is to describe all your subnets. + Alternatively, you can specify specific subnet IDs or filter the results + to include only the subnets that match specific criteria. + + For more information, see + [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeSubnetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSubnetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SUBNETS, [], plugins) + + def describe_tags( + self, + input: DescribeTagsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTagsOutput: + """ + Describes the specified tags for your EC2 resources. + + For more information about tags, see [Tag your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTagsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TAGS, [], plugins) + + def describe_traffic_mirror_filter_rules( + self, + input: DescribeTrafficMirrorFilterRulesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorFilterRulesOutput: + """ + Describe traffic mirror filters that determine the traffic that is + mirrored. + + Args: + input: + An instance of `DescribeTrafficMirrorFilterRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorFilterRulesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES, [], plugins + ) + + def describe_traffic_mirror_filters( + self, + input: DescribeTrafficMirrorFiltersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorFiltersOutput: + """ + Describes one or more Traffic Mirror filters. + + Args: + input: + An instance of `DescribeTrafficMirrorFiltersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorFiltersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TRAFFIC_MIRROR_FILTERS, [], plugins) + + def describe_traffic_mirror_sessions( + self, + input: DescribeTrafficMirrorSessionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorSessionsOutput: + """ + Describes one or more Traffic Mirror sessions. By default, all Traffic + Mirror sessions are described. Alternatively, you can filter the + results. + + Args: + input: + An instance of `DescribeTrafficMirrorSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorSessionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRAFFIC_MIRROR_SESSIONS, [], plugins + ) + + def describe_traffic_mirror_targets( + self, + input: DescribeTrafficMirrorTargetsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTrafficMirrorTargetsOutput: + """ + Information about one or more Traffic Mirror targets. + + Args: + input: + An instance of `DescribeTrafficMirrorTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrafficMirrorTargetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TRAFFIC_MIRROR_TARGETS, [], plugins) + + def describe_transit_gateway_attachments( + self, + input: DescribeTransitGatewayAttachmentsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayAttachmentsOutput: + """ + Describes one or more attachments between resources and transit + gateways. By default, all attachments are described. Alternatively, you + can filter the results by attachment ID, attachment state, resource ID, + or resource owner. + + Args: + input: + An instance of `DescribeTransitGatewayAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayAttachmentsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS, [], plugins + ) + + def describe_transit_gateway_connect_peers( + self, + input: DescribeTransitGatewayConnectPeersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayConnectPeersOutput: + """ + Describes one or more Connect peers. + + Args: + input: + An instance of `DescribeTransitGatewayConnectPeersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayConnectPeersOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS, [], plugins + ) + + def describe_transit_gateway_connects( + self, + input: DescribeTransitGatewayConnectsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayConnectsOutput: + """ + Describes one or more Connect attachments. + + Args: + input: + An instance of `DescribeTransitGatewayConnectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayConnectsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_CONNECTS, [], plugins + ) + + def describe_transit_gateway_metering_policies( + self, + input: DescribeTransitGatewayMeteringPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayMeteringPoliciesOutput: + """ + Describes one or more transit gateway metering policies. + + Args: + input: + An instance of `DescribeTransitGatewayMeteringPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayMeteringPoliciesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES, [], plugins + ) + + def describe_transit_gateway_multicast_domains( + self, + input: DescribeTransitGatewayMulticastDomainsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayMulticastDomainsOutput: + """ + Describes one or more transit gateway multicast domains. + + Args: + input: + An instance of `DescribeTransitGatewayMulticastDomainsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayMulticastDomainsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS, [], plugins + ) + + def describe_transit_gateway_peering_attachments( + self, + input: DescribeTransitGatewayPeeringAttachmentsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayPeeringAttachmentsOutput: + """ + Describes your transit gateway peering attachments. + + Args: + input: + An instance of `DescribeTransitGatewayPeeringAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayPeeringAttachmentsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS, [], plugins + ) + + def describe_transit_gateway_policy_tables( + self, + input: DescribeTransitGatewayPolicyTablesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayPolicyTablesOutput: + """ + Describes one or more transit gateway route policy tables. + + Args: + input: + An instance of `DescribeTransitGatewayPolicyTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayPolicyTablesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES, [], plugins + ) + + def describe_transit_gateway_route_table_announcements( + self, + input: DescribeTransitGatewayRouteTableAnnouncementsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayRouteTableAnnouncementsOutput: + """ + Describes one or more transit gateway route table advertisements. + + Args: + input: + An instance of `DescribeTransitGatewayRouteTableAnnouncementsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayRouteTableAnnouncementsOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS, + [], + plugins, + ) + + def describe_transit_gateway_route_tables( + self, + input: DescribeTransitGatewayRouteTablesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayRouteTablesOutput: + """ + Describes one or more transit gateway route tables. By default, all + transit gateway route tables are described. Alternatively, you can + filter the results. + + Args: + input: + An instance of `DescribeTransitGatewayRouteTablesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayRouteTablesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES, [], plugins + ) + + def describe_transit_gateways( + self, + input: DescribeTransitGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewaysOutput: + """ + Describes one or more transit gateways. By default, all transit gateways + are described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeTransitGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TRANSIT_GATEWAYS, [], plugins) + + def describe_transit_gateway_vpc_attachments( + self, + input: DescribeTransitGatewayVpcAttachmentsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTransitGatewayVpcAttachmentsOutput: + """ + Describes one or more VPC attachments. By default, all VPC attachments + are described. Alternatively, you can filter the results. + + Args: + input: + An instance of `DescribeTransitGatewayVpcAttachmentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTransitGatewayVpcAttachmentsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS, [], plugins + ) + + def describe_trunk_interface_associations( + self, + input: DescribeTrunkInterfaceAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTrunkInterfaceAssociationsOutput: + """ + Describes one or more network interface trunk associations. + + Args: + input: + An instance of `DescribeTrunkInterfaceAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTrunkInterfaceAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS, [], plugins + ) + + def describe_verified_access_endpoints( + self, + input: DescribeVerifiedAccessEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessEndpointsOutput: + """ + Describes the specified Amazon Web Services Verified Access endpoints. + + Args: + input: + An instance of `DescribeVerifiedAccessEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessEndpointsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_ENDPOINTS, [], plugins + ) + + def describe_verified_access_groups( + self, + input: DescribeVerifiedAccessGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessGroupsOutput: + """ + Describes the specified Verified Access groups. + + Args: + input: + An instance of `DescribeVerifiedAccessGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VERIFIED_ACCESS_GROUPS, [], plugins) + + def describe_verified_access_instance_logging_configurations( + self, + input: DescribeVerifiedAccessInstanceLoggingConfigurationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessInstanceLoggingConfigurationsOutput: + """ + Describes the specified Amazon Web Services Verified Access instances. + + Args: + input: + An instance of `DescribeVerifiedAccessInstanceLoggingConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessInstanceLoggingConfigurationsOutput`. + """ + return self._invoke( + input, + _models.DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS, + [], + plugins, + ) + + def describe_verified_access_instances( + self, + input: DescribeVerifiedAccessInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessInstancesOutput: + """ + Describes the specified Amazon Web Services Verified Access instances. + + Args: + input: + An instance of `DescribeVerifiedAccessInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessInstancesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_INSTANCES, [], plugins + ) + + def describe_verified_access_trust_providers( + self, + input: DescribeVerifiedAccessTrustProvidersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVerifiedAccessTrustProvidersOutput: + """ + Describes the specified Amazon Web Services Verified Access trust + providers. + + Args: + input: + An instance of `DescribeVerifiedAccessTrustProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVerifiedAccessTrustProvidersOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS, [], plugins + ) + + def describe_volume_attribute( + self, input: DescribeVolumeAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeVolumeAttributeOutput: + """ + Describes the specified attribute of the specified volume. You can + specify only one attribute at a time. + + For more information about EBS volumes, see [Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeVolumeAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumeAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VOLUME_ATTRIBUTE, [], plugins) + + def describe_volumes( + self, + input: DescribeVolumesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVolumesOutput: + """ + Describes the specified EBS volumes or all of your EBS volumes. + + If you are describing a long list of volumes, we recommend that you + paginate the output to make the list more manageable. For more + information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + For more information about EBS volumes, see [Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) + in the *Amazon EBS User Guide*. + + Warning: + We strongly recommend using only paginated requests. Unpaginated + requests are susceptible to throttling and timeouts. + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeVolumesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VOLUMES, [], plugins) + + def describe_volumes_modifications( + self, + input: DescribeVolumesModificationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVolumesModificationsOutput: + """ + Describes the most recent volume modification request for the specified + EBS volumes. + + For more information, see [Monitor the progress of volume + modifications](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DescribeVolumesModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumesModificationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VOLUMES_MODIFICATIONS, [], plugins) + + def describe_volume_status( + self, + input: DescribeVolumeStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVolumeStatusOutput: + """ + Describes the status of the specified volumes. Volume status provides + the result of the checks performed on your volumes to determine events + that can impair the performance of your volumes. The performance of a + volume can be affected if an issue occurs on the volume's underlying + host. If the volume's underlying host experiences a power outage or + system issue, after the system is restored, there could be data + inconsistencies on the volume. Volume events notify you if this occurs. + Volume actions notify you if any action needs to be taken in response to + the event. + + The `DescribeVolumeStatus` operation provides the following information + about the specified volumes: + + *Status*: Reflects the current status of the volume. The possible values + are `ok`, `impaired` , `warning`, or `insufficient-data`. If all checks + pass, the overall status of the volume is `ok`. If the check fails, the + overall status is `impaired`. If the status is `insufficient-data`, then + the checks might still be taking place on your volume at the time. We + recommend that you retry the request. For more information about volume + status, see [Monitor the status of your + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-status.html) + in the *Amazon EBS User Guide*. + + *Events*: Reflect the cause of a volume status and might require you to + take action. For example, if your volume returns an `impaired` status, + then the volume event might be `potential-data-inconsistency`. This + means that your volume has been affected by an issue with the underlying + host, has all I/O operations disabled, and might have inconsistent data. + + *Actions*: Reflect the actions you might have to take in response to an + event. For example, if the status of the volume is `impaired` and the + volume event shows `potential-data-inconsistency`, then the action shows + `enable-volume-io`. This means that you may want to enable the I/O + operations for the volume and then check the volume for data + consistency. For more information, see [Work with an impaired EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/work_volumes_impaired.html). + + Volume status is based on the volume status checks, and does not reflect + the volume state. Therefore, volume status does not indicate volumes in + the `error` state (for example, when a volume is incapable of accepting + I/O.) + + Note: + The order of the elements in the response, including those within nested + structures, might vary. Applications should not assume the elements + appear in a particular order. + + Args: + input: + An instance of `DescribeVolumeStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVolumeStatusOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VOLUME_STATUS, [], plugins) + + def describe_vpc_attribute( + self, input: DescribeVpcAttributeInput, plugins: list[Plugin] | None = None + ) -> DescribeVpcAttributeOutput: + """ + Describes the specified attribute of the specified VPC. You can specify + only one attribute at a time. + + Args: + input: + An instance of `DescribeVpcAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcAttributeOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPC_ATTRIBUTE, [], plugins) + + def describe_vpc_block_public_access_exclusions( + self, + input: DescribeVpcBlockPublicAccessExclusionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcBlockPublicAccessExclusionsOutput: + """ + Describe VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion + is a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. To learn more + about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcBlockPublicAccessExclusionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcBlockPublicAccessExclusionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS, [], plugins + ) + + def describe_vpc_block_public_access_options( + self, + input: DescribeVpcBlockPublicAccessOptionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcBlockPublicAccessOptionsOutput: + """ + Describe VPC Block Public Access (BPA) options. VPC Block Public Access + (BPA) enables you to block resources in VPCs and subnets that you own in + a Region from reaching or being reached from the internet through + internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcBlockPublicAccessOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcBlockPublicAccessOptionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, [], plugins + ) + + def describe_vpc_classic_link( + self, + input: DescribeVpcClassicLinkInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Describes the ClassicLink status of the specified VPCs. + + Args: + input: + An instance of `DescribeVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcClassicLinkOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPC_CLASSIC_LINK, [], plugins) + + def describe_vpc_classic_link_dns_support( + self, + input: DescribeVpcClassicLinkDnsSupportInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Describes the ClassicLink DNS support status of one or more VPCs. If + enabled, the DNS hostname of a linked EC2-Classic instance resolves to + its private IP address when addressed from an instance in the VPC to + which it's linked. Similarly, the DNS hostname of an instance in a VPC + resolves to its private IP address when addressed from a linked + EC2-Classic instance. + + Args: + input: + An instance of `DescribeVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcClassicLinkDnsSupportOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + def describe_vpc_encryption_controls( + self, + input: DescribeVpcEncryptionControlsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEncryptionControlsOutput: + """ + Describes one or more VPC Encryption Control configurations. VPC + Encryption Control enables you to enforce encryption for all data in + transit within and between VPCs to meet compliance requirements You can + filter the results to return information about specific encryption + controls or VPCs. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DescribeVpcEncryptionControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEncryptionControlsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENCRYPTION_CONTROLS, [], plugins + ) + + def describe_vpc_endpoint_associations( + self, + input: DescribeVpcEndpointAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointAssociationsOutput: + """ + Describes the VPC resources, VPC endpoint services, Amazon Lattice + services, or service networks associated with the VPC endpoint. + + Args: + input: + An instance of `DescribeVpcEndpointAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointAssociationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS, [], plugins + ) + + def describe_vpc_endpoint_connection_notifications( + self, + input: DescribeVpcEndpointConnectionNotificationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointConnectionNotificationsOutput: + """ + Describes the connection notifications for VPC endpoints and VPC + endpoint services. + + Args: + input: + An instance of `DescribeVpcEndpointConnectionNotificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointConnectionNotificationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS, [], plugins + ) + + def describe_vpc_endpoint_connections( + self, + input: DescribeVpcEndpointConnectionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointConnectionsOutput: + """ + Describes the VPC endpoint connections to your VPC endpoint services, + including any endpoints that are pending your acceptance. + + Args: + input: + An instance of `DescribeVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointConnectionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_CONNECTIONS, [], plugins + ) + + def describe_vpc_endpoints( + self, + input: DescribeVpcEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointsOutput: + """ + Describes your VPC endpoints. The default is to describe all your VPC + endpoints. Alternatively, you can specify specific VPC endpoint IDs or + filter the results to include only the VPC endpoints that match specific + criteria. + + Args: + input: + An instance of `DescribeVpcEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPC_ENDPOINTS, [], plugins) + + def describe_vpc_endpoint_service_configurations( + self, + input: DescribeVpcEndpointServiceConfigurationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServiceConfigurationsOutput: + """ + Describes the VPC endpoint service configurations in your account (your + services). + + Args: + input: + An instance of `DescribeVpcEndpointServiceConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServiceConfigurationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS, [], plugins + ) + + def describe_vpc_endpoint_service_permissions( + self, + input: DescribeVpcEndpointServicePermissionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServicePermissionsOutput: + """ + Describes the principals (service consumers) that are permitted to + discover your VPC endpoint service. Principal ARNs with path components + aren't supported. + + Args: + input: + An instance of `DescribeVpcEndpointServicePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServicePermissionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS, [], plugins + ) + + def describe_vpc_endpoint_services( + self, + input: DescribeVpcEndpointServicesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcEndpointServicesOutput: + """ + Describes available services to which you can create a VPC endpoint. + + When the service provider and the consumer have different accounts in + multiple Availability Zones, and the consumer views the VPC endpoint + service information, the response only includes the common Availability + Zones. For example, when the service provider account uses `us-east-1a` + and `us-east-1c` and the consumer uses `us-east-1a` and `us-east-1b`, + the response includes the VPC endpoint services in the common + Availability Zone, `us-east-1a`. + + Args: + input: + An instance of `DescribeVpcEndpointServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcEndpointServicesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPC_ENDPOINT_SERVICES, [], plugins) + + def describe_vpc_peering_connections( + self, + input: DescribeVpcPeeringConnectionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcPeeringConnectionsOutput: + """ + Describes your VPC peering connections. The default is to describe all + your VPC peering connections. Alternatively, you can specify specific + VPC peering connection IDs or filter the results to include only the VPC + peering connections that match specific criteria. + + Args: + input: + An instance of `DescribeVpcPeeringConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcPeeringConnectionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VPC_PEERING_CONNECTIONS, [], plugins + ) + + def describe_vpcs( + self, + input: DescribeVpcsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpcsOutput: + """ + Describes your VPCs. The default is to describe all your VPCs. + Alternatively, you can specify specific VPC IDs or filter the results to + include only the VPCs that match specific criteria. + + Args: + input: + An instance of `DescribeVpcsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpcsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPCS, [], plugins) + + def describe_vpn_concentrators( + self, + input: DescribeVpnConcentratorsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpnConcentratorsOutput: + """ + Describes one or more of your VPN concentrators. + + Args: + input: + An instance of `DescribeVpnConcentratorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnConcentratorsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPN_CONCENTRATORS, [], plugins) + + def describe_vpn_connections( + self, + input: DescribeVpnConnectionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpnConnectionsOutput: + """ + Describes one or more of your VPN connections. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnConnectionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPN_CONNECTIONS, [], plugins) + + def describe_vpn_gateways( + self, + input: DescribeVpnGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeVpnGatewaysOutput: + """ + Describes one or more of your virtual private gateways. + + For more information, see [Amazon Web Services Site-to-Site + VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the + *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `DescribeVpnGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeVpnGatewaysOutput`. + """ + return self._invoke(input, _models.DESCRIBE_VPN_GATEWAYS, [], plugins) + + def detach_classic_link_vpc( + self, input: DetachClassicLinkVpcInput, plugins: list[Plugin] | None = None + ) -> DetachClassicLinkVpcOutput: + """ + Note: + This action is deprecated. + + Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the + instance has been unlinked, the VPC security groups are no longer + associated with it. An instance is automatically unlinked from a VPC + when it's stopped. + + Args: + input: + An instance of `DetachClassicLinkVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachClassicLinkVpcOutput`. + """ + return self._invoke(input, _models.DETACH_CLASSIC_LINK_VPC, [], plugins) + + def detach_image_watermark( + self, input: DetachImageWatermarkInput, plugins: list[Plugin] | None = None + ) -> DetachImageWatermarkOutput: + """ + Removes a watermark from the specified AMI. This is an idempotent + operation. It succeeds even if the watermark does not exist on the + image. + + Removing a watermark from an image does not affect derivative images + that already carry the watermark. + + Only the AMI owner can detach watermarks. + + Args: + input: + An instance of `DetachImageWatermarkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachImageWatermarkOutput`. + """ + return self._invoke(input, _models.DETACH_IMAGE_WATERMARK, [], plugins) + + def detach_internet_gateway( + self, input: DetachInternetGatewayInput, plugins: list[Plugin] | None = None + ) -> DetachInternetGatewayOutput: + """ + Detaches an internet gateway from a VPC, disabling connectivity between + the internet and the VPC. The VPC must not contain any running instances + with Elastic IP addresses or public IPv4 addresses. + + Args: + input: + An instance of `DetachInternetGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachInternetGatewayOutput`. + """ + return self._invoke(input, _models.DETACH_INTERNET_GATEWAY, [], plugins) + + def detach_network_interface( + self, input: DetachNetworkInterfaceInput, plugins: list[Plugin] | None = None + ) -> DetachNetworkInterfaceOutput: + """ + Detaches a network interface from an instance. + + Args: + input: + An instance of `DetachNetworkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachNetworkInterfaceOutput`. + """ + return self._invoke(input, _models.DETACH_NETWORK_INTERFACE, [], plugins) + + def detach_verified_access_trust_provider( + self, + input: DetachVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> DetachVerifiedAccessTrustProviderOutput: + """ + Detaches the specified Amazon Web Services Verified Access trust + provider from the specified Amazon Web Services Verified Access + instance. + + Args: + input: + An instance of `DetachVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVerifiedAccessTrustProviderOutput`. + """ + return self._invoke( + input, _models.DETACH_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + def detach_volume( + self, input: DetachVolumeInput, plugins: list[Plugin] | None = None + ) -> DetachVolumeOutput: + """ + Detaches an EBS volume from an instance. Make sure to unmount any file + systems on the device within your operating system before detaching the + volume. Failure to do so can result in the volume becoming stuck in the + `busy` state while detaching. If this happens, detachment can be delayed + indefinitely until you unmount the volume, force detachment, reboot the + instance, or all three. If an EBS volume is the root device of an + instance, it can't be detached while the instance is running. To detach + the root volume, stop the instance first. + + When a volume with an Amazon Web Services Marketplace product code is + detached from an instance, the product code is no longer associated with + the instance. + + You can't detach or force detach volumes that are attached to Amazon + Web Services-managed resources. Attempting to do this results in the + `UnsupportedOperationException` exception. + + For more information, see [Detach an Amazon EBS + volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-detaching-volume.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DetachVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVolumeOutput`. + """ + return self._invoke(input, _models.DETACH_VOLUME, [], plugins) + + def detach_vpn_gateway( + self, input: DetachVpnGatewayInput, plugins: list[Plugin] | None = None + ) -> DetachVpnGatewayOutput: + """ + Detaches a virtual private gateway from a VPC. You do this if you're + planning to turn off the VPC and not use it anymore. You can confirm a + virtual private gateway has been completely detached from a VPC by + describing the virtual private gateway (any attachments to the virtual + private gateway are also described). + + You must wait for the attachment's state to switch to `detached` before + you can delete the VPC or attach a different VPC to the virtual private + gateway. + + Args: + input: + An instance of `DetachVpnGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachVpnGatewayOutput`. + """ + return self._invoke(input, _models.DETACH_VPN_GATEWAY, [], plugins) + + def disable_address_transfer( + self, input: DisableAddressTransferInput, plugins: list[Plugin] | None = None + ) -> DisableAddressTransferOutput: + """ + Disables Elastic IP address transfer. For more information, see + [Transfer Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisableAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAddressTransferOutput`. + """ + return self._invoke(input, _models.DISABLE_ADDRESS_TRANSFER, [], plugins) + + def disable_allowed_images_settings( + self, + input: DisableAllowedImagesSettingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableAllowedImagesSettingsOutput: + """ + Disables Allowed AMIs for your account in the specified Amazon Web + Services Region. When set to `disabled`, the image criteria in your + Allowed AMIs settings do not apply, and no restrictions are placed on + AMI discoverability or usage. Users in your account can launch instances + using any public AMI or AMI shared with your account. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAllowedImagesSettingsOutput`. + """ + return self._invoke(input, _models.DISABLE_ALLOWED_IMAGES_SETTINGS, [], plugins) + + def disable_application_status_check_suppression( + self, + input: DisableApplicationStatusCheckSuppressionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableApplicationStatusCheckSuppressionOutput: + """ + Disables suppression of application status checks for the specified + instances. After suppression is disabled, health check results resume + affecting the instance-level application status. You can specify a + maximum of 100 instance IDs for each request. + + Args: + input: + An instance of `DisableApplicationStatusCheckSuppressionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableApplicationStatusCheckSuppressionOutput`. + """ + return self._invoke( + input, _models.DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION, [], plugins + ) + + def disable_aws_network_performance_metric_subscription( + self, + input: DisableAwsNetworkPerformanceMetricSubscriptionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableAwsNetworkPerformanceMetricSubscriptionOutput: + """ + Disables Infrastructure Performance metric subscriptions. + + Args: + input: + An instance of `DisableAwsNetworkPerformanceMetricSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableAwsNetworkPerformanceMetricSubscriptionOutput`. + """ + return self._invoke( + input, + _models.DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION, + [], + plugins, + ) + + def disable_capacity_manager( + self, + input: DisableCapacityManagerInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableCapacityManagerOutput: + """ + Disables EC2 Capacity Manager for your account. This stops data + ingestion and removes access to capacity analytics and optimization + recommendations. Previously collected data is retained but no new data + will be processed. + + Args: + input: + An instance of `DisableCapacityManagerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableCapacityManagerOutput`. + """ + return self._invoke(input, _models.DISABLE_CAPACITY_MANAGER, [], plugins) + + def disable_ebs_encryption_by_default( + self, + input: DisableEbsEncryptionByDefaultInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableEbsEncryptionByDefaultOutput: + """ + Disables EBS encryption by default for your account in the current + Region. + + After you disable encryption by default, you can still create encrypted + volumes by enabling encryption when you create each volume. + + Disabling encryption by default does not change the encryption status of + your existing volumes. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `DisableEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableEbsEncryptionByDefaultOutput`. + """ + return self._invoke( + input, _models.DISABLE_EBS_ENCRYPTION_BY_DEFAULT, [], plugins + ) + + def disable_fast_launch( + self, input: DisableFastLaunchInput, plugins: list[Plugin] | None = None + ) -> DisableFastLaunchOutput: + """ + Discontinue Windows fast launch for a Windows AMI, and clean up existing + pre-provisioned snapshots. After you disable Windows fast launch, the + AMI uses the standard launch process for each new instance. Amazon EC2 + must remove all pre-provisioned snapshots before you can enable Windows + fast launch again. + + Note: + You can only change these settings for Windows AMIs that you own or that + have been shared with you. + + Args: + input: + An instance of `DisableFastLaunchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableFastLaunchOutput`. + """ + return self._invoke(input, _models.DISABLE_FAST_LAUNCH, [], plugins) + + def disable_fast_snapshot_restores( + self, + input: DisableFastSnapshotRestoresInput, + plugins: list[Plugin] | None = None, + ) -> DisableFastSnapshotRestoresOutput: + """ + Disables fast snapshot restores for the specified snapshots in the + specified Availability Zones. + + Args: + input: + An instance of `DisableFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableFastSnapshotRestoresOutput`. + """ + return self._invoke(input, _models.DISABLE_FAST_SNAPSHOT_RESTORES, [], plugins) + + def disable_image( + self, input: DisableImageInput, plugins: list[Plugin] | None = None + ) -> DisableImageOutput: + """ + Sets the AMI state to `disabled` and removes all launch permissions from + the AMI. A disabled AMI can't be used for instance launches. + + A disabled AMI can't be shared. If an AMI was public or previously + shared, it is made private. If an AMI was shared with an Amazon Web + Services account, organization, or Organizational Unit, they lose access + to the disabled AMI. + + A disabled AMI does not appear in + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) + API calls by default. + + Only the AMI owner can disable an AMI. + + You can re-enable a disabled AMI using + [EnableImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableImage.html). + + For more information, see [Disable an + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageOutput`. + """ + return self._invoke(input, _models.DISABLE_IMAGE, [], plugins) + + def disable_image_block_public_access( + self, + input: DisableImageBlockPublicAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableImageBlockPublicAccessOutput: + """ + Disables *block public access for AMIs* at the account level in the + specified Amazon Web Services Region. This removes the *block public + access* restriction from your account. With the restriction removed, you + can publicly share your AMIs in the specified Amazon Web Services + Region. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageBlockPublicAccessOutput`. + """ + return self._invoke( + input, _models.DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + def disable_image_deprecation( + self, input: DisableImageDeprecationInput, plugins: list[Plugin] | None = None + ) -> DisableImageDeprecationOutput: + """ + Cancels the deprecation of the specified AMI. + + For more information, see [Deprecate an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageDeprecationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageDeprecationOutput`. + """ + return self._invoke(input, _models.DISABLE_IMAGE_DEPRECATION, [], plugins) + + def disable_image_deregistration_protection( + self, + input: DisableImageDeregistrationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> DisableImageDeregistrationProtectionOutput: + """ + Disables deregistration protection for an AMI. When deregistration + protection is disabled, the AMI can be deregistered. + + If you chose to include a 24-hour cooldown period when you enabled + deregistration protection for the AMI, then, when you disable + deregistration protection, you won't immediately be able to deregister + the AMI. + + For more information, see [Protect an Amazon EC2 AMI from + deregistration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableImageDeregistrationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableImageDeregistrationProtectionOutput`. + """ + return self._invoke( + input, _models.DISABLE_IMAGE_DEREGISTRATION_PROTECTION, [], plugins + ) + + def disable_instance_sql_ha_standby_detections( + self, + input: DisableInstanceSqlHaStandbyDetectionsInput, + plugins: list[Plugin] | None = None, + ) -> DisableInstanceSqlHaStandbyDetectionsOutput: + """ + Disable Amazon EC2 instances running in an SQL Server High Availability + cluster from SQL Server High Availability instance standby detection + monitoring. Once disabled, Amazon Web Services no longer monitors the + metadata for the instances to determine whether they are active or + standby nodes in the SQL Server High Availability cluster. + + Args: + input: + An instance of `DisableInstanceSqlHaStandbyDetectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableInstanceSqlHaStandbyDetectionsOutput`. + """ + return self._invoke( + input, _models.DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS, [], plugins + ) + + def disable_ipam_organization_admin_account( + self, + input: DisableIpamOrganizationAdminAccountInput, + plugins: list[Plugin] | None = None, + ) -> DisableIpamOrganizationAdminAccountOutput: + """ + Disable the IPAM account. For more information, see [Enable integration + with + Organizations](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `DisableIpamOrganizationAdminAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableIpamOrganizationAdminAccountOutput`. + """ + return self._invoke( + input, _models.DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT, [], plugins + ) + + def disable_ipam_policy( + self, input: DisableIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> DisableIpamPolicyOutput: + """ + Disables an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `DisableIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableIpamPolicyOutput`. + """ + return self._invoke(input, _models.DISABLE_IPAM_POLICY, [], plugins) + + def disable_route_server_propagation( + self, + input: DisableRouteServerPropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableRouteServerPropagationOutput: + """ + Disables route propagation from a route server to a specified route + table. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisableRouteServerPropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableRouteServerPropagationOutput`. + """ + return self._invoke( + input, _models.DISABLE_ROUTE_SERVER_PROPAGATION, [], plugins + ) + + def disable_serial_console_access( + self, + input: DisableSerialConsoleAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableSerialConsoleAccessOutput: + """ + Disables access to the EC2 serial console of all instances for your + account. By default, access to the EC2 serial console is disabled for + your account. For more information, see [Manage account access to the + EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisableSerialConsoleAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableSerialConsoleAccessOutput`. + """ + return self._invoke(input, _models.DISABLE_SERIAL_CONSOLE_ACCESS, [], plugins) + + def disable_snapshot_block_public_access( + self, + input: DisableSnapshotBlockPublicAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableSnapshotBlockPublicAccessOutput: + """ + Disables the *block public access for snapshots* setting at the account + level for the specified Amazon Web Services Region. After you disable + block public access for snapshots in a Region, users can publicly share + snapshots in that Region. + + Warning: + Enabling block public access for snapshots in *block-all-sharing* mode + does not change the permissions for snapshots that are already publicly + shared. Instead, it prevents these snapshots from be publicly visible + and publicly accessible. Therefore, the attributes for these snapshots + still indicate that they are publicly shared, even though they are not + publicly available. + + If you disable block public access , these snapshots will become + publicly available again. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide* . + + Args: + input: + An instance of `DisableSnapshotBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableSnapshotBlockPublicAccessOutput`. + """ + return self._invoke( + input, _models.DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + def disable_transit_gateway_route_table_propagation( + self, + input: DisableTransitGatewayRouteTablePropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableTransitGatewayRouteTablePropagationOutput: + """ + Disables the specified resource attachment from propagating routes to + the specified propagation route table. + + Args: + input: + An instance of `DisableTransitGatewayRouteTablePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableTransitGatewayRouteTablePropagationOutput`. + """ + return self._invoke( + input, _models.DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION, [], plugins + ) + + def disable_vgw_route_propagation( + self, + input: DisableVgwRoutePropagationInput, + plugins: list[Plugin] | None = None, + ) -> DisableVgwRoutePropagationOutput: + """ + Disables a virtual private gateway (VGW) from propagating routes to a + specified route table of a VPC. + + Args: + input: + An instance of `DisableVgwRoutePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVgwRoutePropagationOutput`. + """ + return self._invoke(input, _models.DISABLE_VGW_ROUTE_PROPAGATION, [], plugins) + + def disable_vpc_classic_link( + self, input: DisableVpcClassicLinkInput, plugins: list[Plugin] | None = None + ) -> DisableVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC + that has EC2-Classic instances linked to it. + + Args: + input: + An instance of `DisableVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVpcClassicLinkOutput`. + """ + return self._invoke(input, _models.DISABLE_VPC_CLASSIC_LINK, [], plugins) + + def disable_vpc_classic_link_dns_support( + self, + input: DisableVpcClassicLinkDnsSupportInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames + resolve to public IP addresses when addressed between a linked + EC2-Classic instance and instances in the VPC to which it's linked. + + You must specify a VPC ID in the request. + + Args: + input: + An instance of `DisableVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableVpcClassicLinkDnsSupportOutput`. + """ + return self._invoke( + input, _models.DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + def disassociate_address( + self, + input: DisassociateAddressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisassociateAddressOutput: + """ + Disassociates an Elastic IP address from the instance or network + interface it's associated with. + + This is an idempotent operation. If you perform the operation more than + once, Amazon EC2 doesn't return an error. + + An address cannot be disassociated if the all of the following + conditions are met: + + - Network interface has a `publicDualStackDnsName` publicDnsName + + - Public IPv4 address is the primary public IPv4 address + + - Network interface only has one remaining public IPv4 address + + Args: + input: + An instance of `DisassociateAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateAddressOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_ADDRESS, [], plugins) + + def disassociate_application_status_check( + self, + input: DisassociateApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateApplicationStatusCheckOutput: + """ + Disassociates an application status check from instances or + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + After disassociation, health monitoring stops for the affected + instances. The following rules apply: + + - You must specify either `TargetTagAssociations` or `InstanceIds`, but + not both. Specifying both results in an `InvalidParameterCombination` + error. + + - The application status check must already exist and belong to your + account. + + - Tag keys must not be blank. + + Args: + input: + An instance of `DisassociateApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateApplicationStatusCheckOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_APPLICATION_STATUS_CHECK, [], plugins + ) + + def disassociate_capacity_reservation_billing_owner( + self, + input: DisassociateCapacityReservationBillingOwnerInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateCapacityReservationBillingOwnerOutput: + """ + Cancels a pending request to assign billing of the unused capacity of a + Capacity Reservation to a consumer account, or revokes a request that + has already been accepted. For more information, see [Billing assignment + for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `DisassociateCapacityReservationBillingOwnerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateCapacityReservationBillingOwnerOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER, [], plugins + ) + + def disassociate_client_vpn_target_network( + self, + input: DisassociateClientVpnTargetNetworkInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateClientVpnTargetNetworkOutput: + """ + Disassociates a target network from the specified Client VPN endpoint. + When you disassociate the last target network from a Client VPN, the + following happens: + + - The route that was automatically added for the VPC is deleted + + - All active client connections are terminated + + - New client connections are disallowed + + - The Client VPN endpoint's status changes to `pending-associate` + + Args: + input: + An instance of `DisassociateClientVpnTargetNetworkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateClientVpnTargetNetworkOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK, [], plugins + ) + + def disassociate_enclave_certificate_iam_role( + self, + input: DisassociateEnclaveCertificateIamRoleInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateEnclaveCertificateIamRoleOutput: + """ + Disassociates an IAM role from an Certificate Manager (ACM) certificate. + Disassociating an IAM role from an ACM certificate removes the Amazon S3 + object that contains the certificate, certificate chain, and encrypted + private key from the Amazon S3 bucket. It also revokes the IAM role's + permission to use the KMS key used to encrypt the private key. This + effectively revokes the role's permission to use the certificate. + + Args: + input: + An instance of `DisassociateEnclaveCertificateIamRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateEnclaveCertificateIamRoleOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE, [], plugins + ) + + def disassociate_iam_instance_profile( + self, + input: DisassociateIamInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateIamInstanceProfileOutput: + """ + Disassociates an IAM instance profile from a running or stopped + instance. + + Use DescribeIamInstanceProfileAssociations to get the association ID. + + Args: + input: + An instance of `DisassociateIamInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIamInstanceProfileOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_IAM_INSTANCE_PROFILE, [], plugins + ) + + def disassociate_instance_event_window( + self, + input: DisassociateInstanceEventWindowInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateInstanceEventWindowOutput: + """ + Disassociates one or more targets from an event window. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `DisassociateInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateInstanceEventWindowOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_INSTANCE_EVENT_WINDOW, [], plugins + ) + + def disassociate_ipam_byoasn( + self, input: DisassociateIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> DisassociateIpamByoasnOutput: + """ + Remove the association between your Autonomous System Number (ASN) and + your BYOIP CIDR. You may want to use this action to disassociate an ASN + from a CIDR or if you want to swap ASNs. For more information, see + [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `DisassociateIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIpamByoasnOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_IPAM_BYOASN, [], plugins) + + def disassociate_ipam_resource_discovery( + self, + input: DisassociateIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateIpamResourceDiscoveryOutput: + """ + Disassociates a resource discovery from an Amazon VPC IPAM. A resource + discovery is an IPAM component that enables IPAM to manage and monitor + resources that belong to the owning account. + + Args: + input: + An instance of `DisassociateIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateIpamResourceDiscoveryOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_IPAM_RESOURCE_DISCOVERY, [], plugins + ) + + def disassociate_nat_gateway_address( + self, + input: DisassociateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateNatGatewayAddressOutput: + """ + Disassociates secondary Elastic IP addresses (EIPs) from a public NAT + gateway. You cannot disassociate your primary EIP. For more information, + see [Edit secondary IP address + associations](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary) + in the *Amazon VPC User Guide*. + + While disassociating is in progress, you cannot associate/disassociate + additional EIPs while the connections are being drained. You are, + however, allowed to delete the NAT gateway. + + An EIP is released only at the end of MaxDrainDurationSeconds. It stays + associated and supports the existing connections but does not support + any new connections (new connections are distributed across the + remaining associated EIPs). As the existing connections drain out, the + EIPs (and the corresponding private IP addresses mapped to them) are + released. + + Args: + input: + An instance of `DisassociateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateNatGatewayAddressOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + def disassociate_route_server( + self, input: DisassociateRouteServerInput, plugins: list[Plugin] | None = None + ) -> DisassociateRouteServerOutput: + """ + Disassociates a route server from a VPC. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisassociateRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateRouteServerOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_ROUTE_SERVER, [], plugins) + + def disassociate_route_table( + self, input: DisassociateRouteTableInput, plugins: list[Plugin] | None = None + ) -> DisassociateRouteTableOutput: + """ + Disassociates a subnet or gateway from a route table. + + After you perform this action, the subnet no longer uses the routes in + the route table. Instead, it uses the routes in the VPC's main route + table. For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `DisassociateRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateRouteTableOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_ROUTE_TABLE, [], plugins) + + def disassociate_security_group_vpc( + self, + input: DisassociateSecurityGroupVpcInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateSecurityGroupVpcOutput: + """ + Disassociates a security group from a VPC. You cannot disassociate the + security group if any Elastic network interfaces in the associated VPC + are still associated with the security group. Note that the + disassociation is asynchronous and you can check the status of the + request with + [DescribeSecurityGroupVpcAssociations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroupVpcAssociations.html). + + Args: + input: + An instance of `DisassociateSecurityGroupVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateSecurityGroupVpcOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_SECURITY_GROUP_VPC, [], plugins) + + def disassociate_subnet_cidr_block( + self, + input: DisassociateSubnetCidrBlockInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateSubnetCidrBlockOutput: + """ + Disassociates a CIDR block from a subnet. Currently, you can + disassociate an IPv6 CIDR block only. You must detach or delete all + gateways and resources that are associated with the CIDR block before + you can disassociate it. + + Args: + input: + An instance of `DisassociateSubnetCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateSubnetCidrBlockOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_SUBNET_CIDR_BLOCK, [], plugins) + + def disassociate_transit_gateway_multicast_domain( + self, + input: DisassociateTransitGatewayMulticastDomainInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayMulticastDomainOutput: + """ + Disassociates the specified subnets from the transit gateway multicast + domain. + + Args: + input: + An instance of `DisassociateTransitGatewayMulticastDomainInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayMulticastDomainOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN, [], plugins + ) + + def disassociate_transit_gateway_policy_table( + self, + input: DisassociateTransitGatewayPolicyTableInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayPolicyTableOutput: + """ + Removes the association between an an attachment and a policy table. + + Args: + input: + An instance of `DisassociateTransitGatewayPolicyTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayPolicyTableOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE, [], plugins + ) + + def disassociate_transit_gateway_route_table( + self, + input: DisassociateTransitGatewayRouteTableInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTransitGatewayRouteTableOutput: + """ + Disassociates a resource attachment from a transit gateway route table. + + Args: + input: + An instance of `DisassociateTransitGatewayRouteTableInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTransitGatewayRouteTableOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE, [], plugins + ) + + def disassociate_trunk_interface( + self, + input: DisassociateTrunkInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateTrunkInterfaceOutput: + """ + Removes an association between a branch network interface with a trunk + network interface. + + Args: + input: + An instance of `DisassociateTrunkInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateTrunkInterfaceOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_TRUNK_INTERFACE, [], plugins) + + def disassociate_vpc_cidr_block( + self, input: DisassociateVpcCidrBlockInput, plugins: list[Plugin] | None = None + ) -> DisassociateVpcCidrBlockOutput: + """ + Disassociates a CIDR block from a VPC. To disassociate the CIDR block, + you must specify its association ID. You can get the association ID by + using DescribeVpcs. You must detach or delete all gateways and resources + that are associated with the CIDR block before you can disassociate it. + + You cannot disassociate the CIDR block with which you originally created + the VPC (the primary CIDR block). + + Args: + input: + An instance of `DisassociateVpcCidrBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateVpcCidrBlockOutput`. + """ + return self._invoke(input, _models.DISASSOCIATE_VPC_CIDR_BLOCK, [], plugins) + + def enable_address_transfer( + self, input: EnableAddressTransferInput, plugins: list[Plugin] | None = None + ) -> EnableAddressTransferOutput: + """ + Enables Elastic IP address transfer. For more information, see [Transfer + Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `EnableAddressTransferInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAddressTransferOutput`. + """ + return self._invoke(input, _models.ENABLE_ADDRESS_TRANSFER, [], plugins) + + def enable_allowed_images_settings( + self, + input: EnableAllowedImagesSettingsInput, + plugins: list[Plugin] | None = None, + ) -> EnableAllowedImagesSettingsOutput: + """ + Enables Allowed AMIs for your account in the specified Amazon Web + Services Region. Two values are accepted: + + - `enabled`: The image criteria in your Allowed AMIs settings are + applied. As a result, only AMIs matching these criteria are + discoverable and can be used by your account to launch instances. + + - `audit-mode`: The image criteria in your Allowed AMIs settings are not + applied. No restrictions are placed on AMI discoverability or usage. + Users in your account can launch instances using any public AMI or AMI + shared with your account. + + The purpose of `audit-mode` is to indicate which AMIs will be affected + when Allowed AMIs is `enabled`. In `audit-mode`, each AMI displays + either `"ImageAllowed": true` or `"ImageAllowed": false` to indicate + whether the AMI will be discoverable and available to users in the + account when Allowed AMIs is enabled. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAllowedImagesSettingsOutput`. + """ + return self._invoke(input, _models.ENABLE_ALLOWED_IMAGES_SETTINGS, [], plugins) + + def enable_application_status_check_suppression( + self, + input: EnableApplicationStatusCheckSuppressionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableApplicationStatusCheckSuppressionOutput: + """ + Suppresses application status checks for the specified instances. While + suppressed, health checks continue to run but do not affect the + instance-level application status. The following rules apply: + + - You can specify a maximum of 100 instance IDs for each request. + + - Use `DisableApplicationStatusCheckSuppression` to resume normal health + check reporting. + + - If you do not specify `DurationSeconds`, suppression continues + indefinitely until you call + `DisableApplicationStatusCheckSuppression`. + + Args: + input: + An instance of `EnableApplicationStatusCheckSuppressionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableApplicationStatusCheckSuppressionOutput`. + """ + return self._invoke( + input, _models.ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION, [], plugins + ) + + def enable_aws_network_performance_metric_subscription( + self, + input: EnableAwsNetworkPerformanceMetricSubscriptionInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableAwsNetworkPerformanceMetricSubscriptionOutput: + """ + Enables Infrastructure Performance subscriptions. + + Args: + input: + An instance of `EnableAwsNetworkPerformanceMetricSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableAwsNetworkPerformanceMetricSubscriptionOutput`. + """ + return self._invoke( + input, + _models.ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION, + [], + plugins, + ) + + def enable_capacity_manager( + self, + input: EnableCapacityManagerInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableCapacityManagerOutput: + """ + Enables EC2 Capacity Manager for your account. This starts data + ingestion for your EC2 capacity usage across On-Demand, Spot, and + Capacity Reservations. Initial data processing may take several hours to + complete. + + Args: + input: + An instance of `EnableCapacityManagerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableCapacityManagerOutput`. + """ + return self._invoke(input, _models.ENABLE_CAPACITY_MANAGER, [], plugins) + + def enable_ebs_encryption_by_default( + self, + input: EnableEbsEncryptionByDefaultInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableEbsEncryptionByDefaultOutput: + """ + Enables EBS encryption by default for your account in the current + Region. + + After you enable encryption by default, the EBS volumes that you create + are always encrypted, either using the default KMS key or the KMS key + that you specified when you created each volume. For more information, + see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Enabling encryption by default has no effect on the encryption status of + your existing volumes. + + After you enable encryption by default, you can no longer launch + instances using instance types that do not support encryption. For more + information, see [Supported instance + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances). + + Args: + input: + An instance of `EnableEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableEbsEncryptionByDefaultOutput`. + """ + return self._invoke( + input, _models.ENABLE_EBS_ENCRYPTION_BY_DEFAULT, [], plugins + ) + + def enable_fast_launch( + self, input: EnableFastLaunchInput, plugins: list[Plugin] | None = None + ) -> EnableFastLaunchOutput: + """ + When you enable Windows fast launch for a Windows AMI, images are + pre-provisioned, using snapshots to launch instances up to 65% faster. + To create the optimized Windows image, Amazon EC2 launches an instance + and runs through Sysprep steps, rebooting as required. Then it creates a + set of reserved snapshots that are used for subsequent launches. The + reserved snapshots are automatically replenished as they are used, + depending on your settings for launch frequency. + + Note: + You can only change these settings for Windows AMIs that you own or that + have been shared with you. + + Args: + input: + An instance of `EnableFastLaunchInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableFastLaunchOutput`. + """ + return self._invoke(input, _models.ENABLE_FAST_LAUNCH, [], plugins) + + def enable_fast_snapshot_restores( + self, + input: EnableFastSnapshotRestoresInput, + plugins: list[Plugin] | None = None, + ) -> EnableFastSnapshotRestoresOutput: + """ + Enables fast snapshot restores for the specified snapshots in the + specified Availability Zones. + + You get the full benefit of fast snapshot restores after they enter the + `enabled` state. + + For more information, see [Amazon EBS fast snapshot + restore](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fast-snapshot-restore.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `EnableFastSnapshotRestoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableFastSnapshotRestoresOutput`. + """ + return self._invoke(input, _models.ENABLE_FAST_SNAPSHOT_RESTORES, [], plugins) + + def enable_image( + self, input: EnableImageInput, plugins: list[Plugin] | None = None + ) -> EnableImageOutput: + """ + Re-enables a disabled AMI. The re-enabled AMI is marked as `available` + and can be used for instance launches, appears in describe operations, + and can be shared. Amazon Web Services accounts, organizations, and + Organizational Units that lost access to the AMI when it was disabled do + not regain access automatically. Once the AMI is available, it can be + shared with them again. + + Only the AMI owner can re-enable a disabled AMI. + + For more information, see [Disable an Amazon EC2 + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageOutput`. + """ + return self._invoke(input, _models.ENABLE_IMAGE, [], plugins) + + def enable_image_block_public_access( + self, + input: EnableImageBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> EnableImageBlockPublicAccessOutput: + """ + Enables *block public access for AMIs* at the account level in the + specified Amazon Web Services Region. This prevents the public sharing + of your AMIs. However, if you already have public AMIs, they will remain + publicly available. + + The API can take up to 10 minutes to configure this setting. During this + time, if you run + [GetImageBlockPublicAccessState](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html), + the response will be `unblocked`. When the API has completed the + configuration, the response will be `block-new-sharing`. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageBlockPublicAccessOutput`. + """ + return self._invoke( + input, _models.ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + def enable_image_deprecation( + self, input: EnableImageDeprecationInput, plugins: list[Plugin] | None = None + ) -> EnableImageDeprecationOutput: + """ + Enables deprecation of the specified AMI at the specified date and time. + + For more information, see [Deprecate an + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageDeprecationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageDeprecationOutput`. + """ + return self._invoke(input, _models.ENABLE_IMAGE_DEPRECATION, [], plugins) + + def enable_image_deregistration_protection( + self, + input: EnableImageDeregistrationProtectionInput, + plugins: list[Plugin] | None = None, + ) -> EnableImageDeregistrationProtectionOutput: + """ + Enables deregistration protection for an AMI. When deregistration + protection is enabled, the AMI can't be deregistered. + + To allow the AMI to be deregistered, you must first disable + deregistration protection. + + For more information, see [Protect an Amazon EC2 AMI from + deregistration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableImageDeregistrationProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableImageDeregistrationProtectionOutput`. + """ + return self._invoke( + input, _models.ENABLE_IMAGE_DEREGISTRATION_PROTECTION, [], plugins + ) + + def enable_instance_sql_ha_standby_detections( + self, + input: EnableInstanceSqlHaStandbyDetectionsInput, + plugins: list[Plugin] | None = None, + ) -> EnableInstanceSqlHaStandbyDetectionsOutput: + """ + Enable Amazon EC2 instances running in an SQL Server High Availability + cluster for SQL Server High Availability instance standby detection + monitoring. Once enabled, Amazon Web Services monitors the metadata for + the instances to determine whether they are active or standby nodes in + the SQL Server High Availability cluster. If the instances are + determined to be standby failover nodes, Amazon Web Services + automatically applies SQL Server licensing fee waiver for those + instances. + + To register an instance, it must be running a Windows SQL Server + license-included AMI and have the Amazon Web Services Systems Manager + agent installed and running. Only Windows Server 2019 and later and SQL + Server (Standard and Enterprise editions) 2017 and later are supported. + For more information, see [Prerequisites for using SQL Server High + Availability instance standby + detection](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/prerequisites-and-requirements.html). + + Args: + input: + An instance of `EnableInstanceSqlHaStandbyDetectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableInstanceSqlHaStandbyDetectionsOutput`. + """ + return self._invoke( + input, _models.ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS, [], plugins + ) + + def enable_ipam_internet_registry_association( + self, + input: EnableIpamInternetRegistryAssociationInput, + plugins: list[Plugin] | None = None, + ) -> EnableIpamInternetRegistryAssociationOutput: + """ + Enables Resource Public Key Infrastructure (RPKI) on an existing IPAM + internet registry association by providing BGP Public Key Infrastructure + (BPKI) certificate details. After enabling, you can create Route Origin + Authorizations (ROAs) for prefixes registered with the internet + registry. + + Args: + input: + An instance of `EnableIpamInternetRegistryAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamInternetRegistryAssociationOutput`. + """ + return self._invoke( + input, _models.ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION, [], plugins + ) + + def enable_ipam_organization_admin_account( + self, + input: EnableIpamOrganizationAdminAccountInput, + plugins: list[Plugin] | None = None, + ) -> EnableIpamOrganizationAdminAccountOutput: + """ + Enable an Organizations member account as the IPAM admin account. You + cannot select the Organizations management account as the IPAM admin + account. For more information, see [Enable integration with + Organizations](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `EnableIpamOrganizationAdminAccountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamOrganizationAdminAccountOutput`. + """ + return self._invoke( + input, _models.ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT, [], plugins + ) + + def enable_ipam_policy( + self, input: EnableIpamPolicyInput, plugins: list[Plugin] | None = None + ) -> EnableIpamPolicyOutput: + """ + Enables an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + For more information, see [Define public IPv4 allocation strategy with + IPAM + policies](https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `EnableIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableIpamPolicyOutput`. + """ + return self._invoke(input, _models.ENABLE_IPAM_POLICY, [], plugins) + + def enable_reachability_analyzer_organization_sharing( + self, + input: EnableReachabilityAnalyzerOrganizationSharingInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableReachabilityAnalyzerOrganizationSharingOutput: + """ + Establishes a trust relationship between Reachability Analyzer and + Organizations. This operation must be performed by the management + account for the organization. + + After you establish a trust relationship, a user in the management + account or a delegated administrator account can run a cross-account + analysis using resources from the member accounts. + + Args: + input: + An instance of `EnableReachabilityAnalyzerOrganizationSharingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableReachabilityAnalyzerOrganizationSharingOutput`. + """ + return self._invoke( + input, + _models.ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING, + [], + plugins, + ) + + def enable_route_server_propagation( + self, + input: EnableRouteServerPropagationInput, + plugins: list[Plugin] | None = None, + ) -> EnableRouteServerPropagationOutput: + """ + Defines which route tables the route server can update with routes. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `EnableRouteServerPropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableRouteServerPropagationOutput`. + """ + return self._invoke(input, _models.ENABLE_ROUTE_SERVER_PROPAGATION, [], plugins) + + def enable_serial_console_access( + self, + input: EnableSerialConsoleAccessInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableSerialConsoleAccessOutput: + """ + Enables access to the EC2 serial console of all instances for your + account. By default, access to the EC2 serial console is disabled for + your account. For more information, see [Manage account access to the + EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `EnableSerialConsoleAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableSerialConsoleAccessOutput`. + """ + return self._invoke(input, _models.ENABLE_SERIAL_CONSOLE_ACCESS, [], plugins) + + def enable_snapshot_block_public_access( + self, + input: EnableSnapshotBlockPublicAccessInput, + plugins: list[Plugin] | None = None, + ) -> EnableSnapshotBlockPublicAccessOutput: + """ + Enables or modifies the *block public access for snapshots* setting at + the account level for the specified Amazon Web Services Region. After + you enable block public access for snapshots in a Region, users can no + longer request public sharing for snapshots in that Region. Snapshots + that are already publicly shared are either treated as private or they + remain publicly shared, depending on the **State** that you specify. + + Warning: + Enabling block public access for snapshots in *block all sharing* mode + does not change the permissions for snapshots that are already publicly + shared. Instead, it prevents these snapshots from be publicly visible + and publicly accessible. Therefore, the attributes for these snapshots + still indicate that they are publicly shared, even though they are not + publicly available. + + If you later disable block public access or change the mode to *block + new sharing*, these snapshots will become publicly available again. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `EnableSnapshotBlockPublicAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableSnapshotBlockPublicAccessOutput`. + """ + return self._invoke( + input, _models.ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS, [], plugins + ) + + def enable_transit_gateway_route_table_propagation( + self, + input: EnableTransitGatewayRouteTablePropagationInput, + plugins: list[Plugin] | None = None, + ) -> EnableTransitGatewayRouteTablePropagationOutput: + """ + Enables the specified attachment to propagate routes to the specified + propagation route table. + + Args: + input: + An instance of `EnableTransitGatewayRouteTablePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableTransitGatewayRouteTablePropagationOutput`. + """ + return self._invoke( + input, _models.ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION, [], plugins + ) + + def enable_vgw_route_propagation( + self, input: EnableVgwRoutePropagationInput, plugins: list[Plugin] | None = None + ) -> EnableVgwRoutePropagationOutput: + """ + Enables a virtual private gateway (VGW) to propagate routes to the + specified route table of a VPC. + + Args: + input: + An instance of `EnableVgwRoutePropagationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVgwRoutePropagationOutput`. + """ + return self._invoke(input, _models.ENABLE_VGW_ROUTE_PROPAGATION, [], plugins) + + def enable_volume_io( + self, input: EnableVolumeIOInput, plugins: list[Plugin] | None = None + ) -> EnableVolumeIOOutput: + """ + Enables I/O operations for a volume that had I/O operations disabled + because the data on the volume was potentially inconsistent. + + Args: + input: + An instance of `EnableVolumeIOInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVolumeIOOutput`. + """ + return self._invoke(input, _models.ENABLE_VOLUME_IO, [], plugins) + + def enable_vpc_classic_link( + self, input: EnableVpcClassicLinkInput, plugins: list[Plugin] | None = None + ) -> EnableVpcClassicLinkOutput: + """ + Note: + This action is deprecated. + + Enables a VPC for ClassicLink. You can then link EC2-Classic instances + to your ClassicLink-enabled VPC to allow communication over private IP + addresses. You cannot enable your VPC for ClassicLink if any of your VPC + route tables have existing routes for address ranges within the + `10.0.0.0/8` IP address range, excluding local routes for VPCs in the + `10.0.0.0/16` and `10.1.0.0/16` IP address ranges. + + Args: + input: + An instance of `EnableVpcClassicLinkInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVpcClassicLinkOutput`. + """ + return self._invoke(input, _models.ENABLE_VPC_CLASSIC_LINK, [], plugins) + + def enable_vpc_classic_link_dns_support( + self, + input: EnableVpcClassicLinkDnsSupportInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableVpcClassicLinkDnsSupportOutput: + """ + Note: + This action is deprecated. + + Enables a VPC to support DNS hostname resolution for ClassicLink. If + enabled, the DNS hostname of a linked EC2-Classic instance resolves to + its private IP address when addressed from an instance in the VPC to + which it's linked. Similarly, the DNS hostname of an instance in a VPC + resolves to its private IP address when addressed from a linked + EC2-Classic instance. + + You must specify a VPC ID in the request. + + Args: + input: + An instance of `EnableVpcClassicLinkDnsSupportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableVpcClassicLinkDnsSupportOutput`. + """ + return self._invoke( + input, _models.ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT, [], plugins + ) + + def export_client_vpn_client_certificate_revocation_list( + self, + input: ExportClientVpnClientCertificateRevocationListInput, + plugins: list[Plugin] | None = None, + ) -> ExportClientVpnClientCertificateRevocationListOutput: + """ + Downloads the client certificate revocation list for the specified + Client VPN endpoint. + + Args: + input: + An instance of `ExportClientVpnClientCertificateRevocationListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportClientVpnClientCertificateRevocationListOutput`. + """ + return self._invoke( + input, + _models.EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST, + [], + plugins, + ) + + def export_client_vpn_client_configuration( + self, + input: ExportClientVpnClientConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ExportClientVpnClientConfigurationOutput: + """ + Downloads the contents of the Client VPN endpoint configuration file for + the specified Client VPN endpoint. The Client VPN endpoint configuration + file includes the Client VPN endpoint and certificate information + clients need to establish a connection with the Client VPN endpoint. + + Args: + input: + An instance of `ExportClientVpnClientConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportClientVpnClientConfigurationOutput`. + """ + return self._invoke( + input, _models.EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION, [], plugins + ) + + def export_image( + self, input: ExportImageInput, plugins: list[Plugin] | None = None + ) -> ExportImageOutput: + """ + Exports an Amazon Machine Image (AMI) to a VM file. For more + information, see [Exporting a VM directly from an Amazon Machine Image + (AMI)](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ExportImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportImageOutput`. + """ + return self._invoke(input, _models.EXPORT_IMAGE, [], plugins) + + def export_transit_gateway_routes( + self, + input: ExportTransitGatewayRoutesInput, + plugins: list[Plugin] | None = None, + ) -> ExportTransitGatewayRoutesOutput: + """ + Exports routes from the specified transit gateway route table to the + specified S3 bucket. By default, all routes are exported. Alternatively, + you can filter by CIDR range. + + The routes are saved to the specified bucket in a JSON file. For more + information, see [Export route tables to Amazon + S3](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables) + in the *Amazon Web Services Transit Gateways Guide*. + + Args: + input: + An instance of `ExportTransitGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportTransitGatewayRoutesOutput`. + """ + return self._invoke(input, _models.EXPORT_TRANSIT_GATEWAY_ROUTES, [], plugins) + + def export_verified_access_instance_client_configuration( + self, + input: ExportVerifiedAccessInstanceClientConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ExportVerifiedAccessInstanceClientConfigurationOutput: + """ + Exports the client configuration for a Verified Access instance. + + Args: + input: + An instance of `ExportVerifiedAccessInstanceClientConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExportVerifiedAccessInstanceClientConfigurationOutput`. + """ + return self._invoke( + input, + _models.EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION, + [], + plugins, + ) + + def get_active_vpn_tunnel_status( + self, input: GetActiveVpnTunnelStatusInput, plugins: list[Plugin] | None = None + ) -> GetActiveVpnTunnelStatusOutput: + """ + Returns the currently negotiated security parameters for an active VPN + tunnel, including IKE version, DH groups, encryption algorithms, and + integrity algorithms. + + Args: + input: + An instance of `GetActiveVpnTunnelStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetActiveVpnTunnelStatusOutput`. + """ + return self._invoke(input, _models.GET_ACTIVE_VPN_TUNNEL_STATUS, [], plugins) + + def get_allowed_images_settings( + self, + input: GetAllowedImagesSettingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAllowedImagesSettingsOutput: + """ + Gets the current state of the Allowed AMIs setting and the list of + Allowed AMIs criteria at the account level in the specified Region. + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAllowedImagesSettingsOutput`. + """ + return self._invoke(input, _models.GET_ALLOWED_IMAGES_SETTINGS, [], plugins) + + def get_associated_enclave_certificate_iam_roles( + self, + input: GetAssociatedEnclaveCertificateIamRolesInput, + plugins: list[Plugin] | None = None, + ) -> GetAssociatedEnclaveCertificateIamRolesOutput: + """ + Returns the IAM roles that are associated with the specified ACM (ACM) + certificate. It also returns the name of the Amazon S3 bucket and the + Amazon S3 object key where the certificate, certificate chain, and + encrypted private key bundle are stored, and the ARN of the KMS key + that's used to encrypt the private key. + + Args: + input: + An instance of `GetAssociatedEnclaveCertificateIamRolesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAssociatedEnclaveCertificateIamRolesOutput`. + """ + return self._invoke( + input, _models.GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES, [], plugins + ) + + def get_associated_ipv6_pool_cidrs( + self, + input: GetAssociatedIpv6PoolCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetAssociatedIpv6PoolCidrsOutput: + """ + Gets information about the IPv6 CIDR block associations for a specified + IPv6 address pool. + + Args: + input: + An instance of `GetAssociatedIpv6PoolCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAssociatedIpv6PoolCidrsOutput`. + """ + return self._invoke(input, _models.GET_ASSOCIATED_IPV6_POOL_CIDRS, [], plugins) + + def get_aws_network_performance_data( + self, + input: GetAwsNetworkPerformanceDataInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAwsNetworkPerformanceDataOutput: + """ + Gets network performance data. + + Args: + input: + An instance of `GetAwsNetworkPerformanceDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAwsNetworkPerformanceDataOutput`. + """ + return self._invoke( + input, _models.GET_AWS_NETWORK_PERFORMANCE_DATA, [], plugins + ) + + def get_capacity_manager_attributes( + self, + input: GetCapacityManagerAttributesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerAttributesOutput: + """ + Retrieves the current configuration and status of EC2 Capacity Manager + for your account, including enablement status, Organizations access + settings, and data ingestion status. + + Args: + input: + An instance of `GetCapacityManagerAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerAttributesOutput`. + """ + return self._invoke(input, _models.GET_CAPACITY_MANAGER_ATTRIBUTES, [], plugins) + + def get_capacity_manager_metric_data( + self, + input: GetCapacityManagerMetricDataInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMetricDataOutput: + """ + Retrieves capacity usage metrics for your EC2 resources. Returns + time-series data for metrics like unused capacity, utilization rates, + and costs across On-Demand, Spot, and Capacity Reservations. Data can be + grouped and filtered by various dimensions such as region, account, and + instance family. + + Args: + input: + An instance of `GetCapacityManagerMetricDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMetricDataOutput`. + """ + return self._invoke( + input, _models.GET_CAPACITY_MANAGER_METRIC_DATA, [], plugins + ) + + def get_capacity_manager_metric_dimensions( + self, + input: GetCapacityManagerMetricDimensionsInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMetricDimensionsOutput: + """ + Retrieves the available dimension values for capacity metrics within a + specified time range. This is useful for discovering what accounts, + regions, instance families, and other dimensions have data available for + filtering and grouping. + + Args: + input: + An instance of `GetCapacityManagerMetricDimensionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMetricDimensionsOutput`. + """ + return self._invoke( + input, _models.GET_CAPACITY_MANAGER_METRIC_DIMENSIONS, [], plugins + ) + + def get_capacity_manager_monitored_tag_keys( + self, + input: GetCapacityManagerMonitoredTagKeysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerMonitoredTagKeysOutput: + """ + Retrieves the tag keys that are currently being monitored by EC2 + Capacity Manager. Monitored tag keys are included as dimensions in + capacity metric data, enabling you to group and filter metrics by tag + values. + + Args: + input: + An instance of `GetCapacityManagerMonitoredTagKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerMonitoredTagKeysOutput`. + """ + return self._invoke( + input, _models.GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS, [], plugins + ) + + def get_capacity_manager_supportability_scores( + self, + input: GetCapacityManagerSupportabilityScoresInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityManagerSupportabilityScoresOutput: + """ + Scores how well each instance type and Availability Zone combination can + support a capacity request, based on current Amazon EC2 capacity. The + response includes a score for each combination and an aggregate score + for all combinations in the request. This action doesn't launch or + reserve instances, and a score doesn't guarantee that a later launch + will succeed. + + Call this action in the Region where you turned on Capacity Manager. A + single request can include Availability Zones in any Region. Real-time + supportability checks are available only to Amazon Web Services Support + customers on the Unified Operations plan. + + For more information, see [Check + supportability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-manager-supportability.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetCapacityManagerSupportabilityScoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityManagerSupportabilityScoresOutput`. + """ + return self._invoke( + input, _models.GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES, [], plugins + ) + + def get_capacity_reservation_usage( + self, + input: GetCapacityReservationUsageInput, + plugins: list[Plugin] | None = None, + ) -> GetCapacityReservationUsageOutput: + """ + Gets usage information about a Capacity Reservation. If the Capacity + Reservation is shared, it shows usage information for the Capacity + Reservation owner and each Amazon Web Services account that is currently + using the shared capacity. If the Capacity Reservation is not shared, it + shows only the Capacity Reservation owner's usage. + + Args: + input: + An instance of `GetCapacityReservationUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCapacityReservationUsageOutput`. + """ + return self._invoke(input, _models.GET_CAPACITY_RESERVATION_USAGE, [], plugins) + + def get_client_vpn_endpoint_authorization_policy( + self, + input: GetClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetClientVpnEndpointAuthorizationPolicyOutput: + """ + Describes the authorization policy for a Client VPN endpoint. + + Args: + input: + An instance of `GetClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetClientVpnEndpointAuthorizationPolicyOutput`. + """ + return self._invoke( + input, _models.GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + def get_coip_pool_usage( + self, input: GetCoipPoolUsageInput, plugins: list[Plugin] | None = None + ) -> GetCoipPoolUsageOutput: + """ + Describes the allocations from the specified customer-owned address + pool. + + Args: + input: + An instance of `GetCoipPoolUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCoipPoolUsageOutput`. + """ + return self._invoke(input, _models.GET_COIP_POOL_USAGE, [], plugins) + + def get_console_output( + self, input: GetConsoleOutputInput, plugins: list[Plugin] | None = None + ) -> GetConsoleOutputOutput: + """ + Gets the console output for the specified instance. For Linux instances, + the instance console output displays the exact console output that would + normally be displayed on a physical monitor attached to a computer. For + Windows instances, the instance console output includes the last three + system event log errors. + + For more information, see [Instance console + output](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetConsoleOutputInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConsoleOutputOutput`. + """ + return self._invoke(input, _models.GET_CONSOLE_OUTPUT, [], plugins) + + def get_console_screenshot( + self, input: GetConsoleScreenshotInput, plugins: list[Plugin] | None = None + ) -> GetConsoleScreenshotOutput: + """ + Retrieve a JPG-format screenshot of a running instance to help with + troubleshooting. + + The returned content is Base64-encoded. + + For more information, see [Instance console + output](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-unreachable-instance.html#instance-console-console-output) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetConsoleScreenshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetConsoleScreenshotOutput`. + """ + return self._invoke(input, _models.GET_CONSOLE_SCREENSHOT, [], plugins) + + def get_declarative_policies_report_summary( + self, + input: GetDeclarativePoliciesReportSummaryInput, + plugins: list[Plugin] | None = None, + ) -> GetDeclarativePoliciesReportSummaryOutput: + """ + Retrieves a summary of the account status report. + + To view the full report, download it from the Amazon S3 bucket where it + was saved. Reports are accessible only when they have the `complete` + status. Reports with other statuses (`running`, `cancelled`, or `error`) + are not available in the S3 bucket. For more information about + downloading objects from an S3 bucket, see [Downloading + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) + in the *Amazon Simple Storage Service User Guide*. + + For more information, see [Generating the account status report for + declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `GetDeclarativePoliciesReportSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDeclarativePoliciesReportSummaryOutput`. + """ + return self._invoke( + input, _models.GET_DECLARATIVE_POLICIES_REPORT_SUMMARY, [], plugins + ) + + def get_default_credit_specification( + self, + input: GetDefaultCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> GetDefaultCreditSpecificationOutput: + """ + Describes the default credit option for CPU usage of a burstable + performance instance family. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetDefaultCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDefaultCreditSpecificationOutput`. + """ + return self._invoke( + input, _models.GET_DEFAULT_CREDIT_SPECIFICATION, [], plugins + ) + + def get_ebs_default_kms_key_id( + self, + input: GetEbsDefaultKmsKeyIdInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetEbsDefaultKmsKeyIdOutput: + """ + Describes the default KMS key for EBS encryption by default for your + account in this Region. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEbsDefaultKmsKeyIdOutput`. + """ + return self._invoke(input, _models.GET_EBS_DEFAULT_KMS_KEY_ID, [], plugins) + + def get_ebs_encryption_by_default( + self, + input: GetEbsEncryptionByDefaultInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetEbsEncryptionByDefaultOutput: + """ + Describes whether EBS encryption by default is enabled for your account + in the current Region. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetEbsEncryptionByDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEbsEncryptionByDefaultOutput`. + """ + return self._invoke(input, _models.GET_EBS_ENCRYPTION_BY_DEFAULT, [], plugins) + + def get_enabled_ipam_policy( + self, + input: GetEnabledIpamPolicyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetEnabledIpamPolicyOutput: + """ + Gets the enabled IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Args: + input: + An instance of `GetEnabledIpamPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetEnabledIpamPolicyOutput`. + """ + return self._invoke(input, _models.GET_ENABLED_IPAM_POLICY, [], plugins) + + def get_flow_logs_integration_template( + self, + input: GetFlowLogsIntegrationTemplateInput, + plugins: list[Plugin] | None = None, + ) -> GetFlowLogsIntegrationTemplateOutput: + """ + Generates a CloudFormation template that streamlines and automates the + integration of VPC flow logs with Amazon Athena. This make it easier for + you to query and gain insights from VPC flow logs data. Based on the + information that you provide, we configure resources in the template to + do the following: + + - Create a table in Athena that maps fields to a custom log format + + - Create a Lambda function that updates the table with new partitions on + a daily, weekly, or monthly basis + + - Create a table partitioned between two timestamps in the past + + - Create a set of named queries in Athena that you can use to get + started quickly + + Note: + `GetFlowLogsIntegrationTemplate` does not support integration between + Amazon Web Services Transit Gateway Flow Logs or Amazon Web Services + Cloud WAN Flow Logs and Amazon Athena. + + Args: + input: + An instance of `GetFlowLogsIntegrationTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetFlowLogsIntegrationTemplateOutput`. + """ + return self._invoke( + input, _models.GET_FLOW_LOGS_INTEGRATION_TEMPLATE, [], plugins + ) + + def get_groups_for_capacity_reservation( + self, + input: GetGroupsForCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> GetGroupsForCapacityReservationOutput: + """ + Lists the resource groups to which a Capacity Reservation has been + added. + + Args: + input: + An instance of `GetGroupsForCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupsForCapacityReservationOutput`. + """ + return self._invoke( + input, _models.GET_GROUPS_FOR_CAPACITY_RESERVATION, [], plugins + ) + + def get_host_reservation_purchase_preview( + self, + input: GetHostReservationPurchasePreviewInput, + plugins: list[Plugin] | None = None, + ) -> GetHostReservationPurchasePreviewOutput: + """ + Preview a reservation purchase with configurations that match those of + your Dedicated Host. You must have active Dedicated Hosts in your + account before you purchase a reservation. + + This is a preview of the PurchaseHostReservation action and does not + result in the offering being purchased. + + Args: + input: + An instance of `GetHostReservationPurchasePreviewInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHostReservationPurchasePreviewOutput`. + """ + return self._invoke( + input, _models.GET_HOST_RESERVATION_PURCHASE_PREVIEW, [], plugins + ) + + def get_image_ancestry( + self, input: GetImageAncestryInput, plugins: list[Plugin] | None = None + ) -> GetImageAncestryOutput: + """ + Retrieves the ancestry chain of the specified AMI, tracing its lineage + back to the root AMI. For more information, see [AMI + ancestry](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-ancestry.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetImageAncestryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageAncestryOutput`. + """ + return self._invoke(input, _models.GET_IMAGE_ANCESTRY, [], plugins) + + def get_image_block_public_access_state( + self, + input: GetImageBlockPublicAccessStateInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetImageBlockPublicAccessStateOutput: + """ + Gets the current state of *block public access for AMIs* at the account + level in the specified Amazon Web Services Region. + + For more information, see [Block public access to your + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetImageBlockPublicAccessStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageBlockPublicAccessStateOutput`. + """ + return self._invoke( + input, _models.GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE, [], plugins + ) + + def get_image_findings( + self, input: GetImageFindingsInput, plugins: list[Plugin] | None = None + ) -> GetImageFindingsOutput: + """ + Describes the Amazon Inspector vulnerability findings for the specified + AMI. + + You can get findings for AMIs that you own, AMIs that are shared with + you, and public AMIs. Amazon Inspector returns findings only for AMIs + that it has scanned. + + Args: + input: + An instance of `GetImageFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetImageFindingsOutput`. + """ + return self._invoke(input, _models.GET_IMAGE_FINDINGS, [], plugins) + + def get_instance_metadata_defaults( + self, + input: GetInstanceMetadataDefaultsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetInstanceMetadataDefaultsOutput: + """ + Gets the default instance metadata service (IMDS) settings that are set + at the account level in the specified Amazon Web Services
 Region. + + For more information, see [Order of precedence for instance metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetInstanceMetadataDefaultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceMetadataDefaultsOutput`. + """ + return self._invoke(input, _models.GET_INSTANCE_METADATA_DEFAULTS, [], plugins) + + def get_instance_tpm_ek_pub( + self, input: GetInstanceTpmEkPubInput, plugins: list[Plugin] | None = None + ) -> GetInstanceTpmEkPubOutput: + """ + Gets the public endorsement key associated with the Nitro Trusted + Platform Module (NitroTPM) for the specified instance. + + Args: + input: + An instance of `GetInstanceTpmEkPubInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceTpmEkPubOutput`. + """ + return self._invoke(input, _models.GET_INSTANCE_TPM_EK_PUB, [], plugins) + + def get_instance_types_from_instance_requirements( + self, + input: GetInstanceTypesFromInstanceRequirementsInput, + plugins: list[Plugin] | None = None, + ) -> GetInstanceTypesFromInstanceRequirementsOutput: + """ + Returns a list of instance types with the specified instance attributes. + You can use the response to preview the instance types without launching + instances. Note that the response does not consider capacity. + + When you specify multiple parameters, you get instance types that + satisfy all of the specified parameters. If you specify multiple values + for a parameter, you get instance types that satisfy any of the + specified values. + + For more information, see [Preview instance types with specified + attributes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements), + [Specify attributes for instance type selection for EC2 Fleet or Spot + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), + and [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*, and [Creating mixed instance groups + using attribute-based instance type + selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + in the *Amazon EC2 Auto Scaling User Guide*. + + Args: + input: + An instance of `GetInstanceTypesFromInstanceRequirementsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceTypesFromInstanceRequirementsOutput`. + """ + return self._invoke( + input, _models.GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS, [], plugins + ) + + def get_instance_uefi_data( + self, input: GetInstanceUefiDataInput, plugins: list[Plugin] | None = None + ) -> GetInstanceUefiDataOutput: + """ + A binary representation of the UEFI variable store. Only non-volatile + variables are stored. This is a base64 encoded and zlib compressed + binary value that must be properly encoded. + + When you use + [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) + to create an AMI, you can create an exact copy of your variable store by + passing the UEFI data in the `UefiData` parameter. You can modify the + UEFI data by using the [python-uefivars + tool](https://github.com/awslabs/python-uefivars) on GitHub. You can use + the tool to convert the UEFI data into a human-readable format (JSON), + which you can inspect and modify, and then convert back into the binary + format to use with register-image. + + For more information, see [UEFI Secure + Boot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetInstanceUefiDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceUefiDataOutput`. + """ + return self._invoke(input, _models.GET_INSTANCE_UEFI_DATA, [], plugins) + + def get_ipam_address_history( + self, input: GetIpamAddressHistoryInput, plugins: list[Plugin] | None = None + ) -> GetIpamAddressHistoryOutput: + """ + Retrieve historical information about a CIDR within an IPAM scope. For + more information, see [View the history of IP + addresses](https://docs.aws.amazon.com/vpc/latest/ipam/view-history-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `GetIpamAddressHistoryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamAddressHistoryOutput`. + """ + return self._invoke(input, _models.GET_IPAM_ADDRESS_HISTORY, [], plugins) + + def get_ipam_discovered_accounts( + self, input: GetIpamDiscoveredAccountsInput, plugins: list[Plugin] | None = None + ) -> GetIpamDiscoveredAccountsOutput: + """ + Gets IPAM discovered accounts. A discovered account is an Amazon Web + Services account that is monitored under a resource discovery. If you + have integrated IPAM with Amazon Web Services Organizations, all + accounts in the organization are discovered accounts. Only the IPAM + account can get all discovered accounts in the organization. + + Args: + input: + An instance of `GetIpamDiscoveredAccountsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredAccountsOutput`. + """ + return self._invoke(input, _models.GET_IPAM_DISCOVERED_ACCOUNTS, [], plugins) + + def get_ipam_discovered_public_addresses( + self, + input: GetIpamDiscoveredPublicAddressesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamDiscoveredPublicAddressesOutput: + """ + Gets the public IP addresses that have been discovered by IPAM. + + Args: + input: + An instance of `GetIpamDiscoveredPublicAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredPublicAddressesOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES, [], plugins + ) + + def get_ipam_discovered_resource_cidrs( + self, + input: GetIpamDiscoveredResourceCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamDiscoveredResourceCidrsOutput: + """ + Returns the resource CIDRs that are monitored as part of a resource + discovery. A discovered resource is a resource CIDR monitored under a + resource discovery. The following resources can be discovered: VPCs, + Public IPv4 pools, VPC subnets, and Elastic IP addresses. + + Args: + input: + An instance of `GetIpamDiscoveredResourceCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredResourceCidrsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_DISCOVERED_RESOURCE_CIDRS, [], plugins + ) + + def get_ipam_discovered_routes( + self, input: GetIpamDiscoveredRoutesInput, plugins: list[Plugin] | None = None + ) -> GetIpamDiscoveredRoutesOutput: + """ + Retrieves Border Gateway Protocol (BGP) routes discovered by IPAM + resource discovery for a specified Region. Use this operation to view + the Bring Your Own IP (BYOIP) address ranges that are currently + advertised through BGP. We recommend using pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamDiscoveredRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamDiscoveredRoutesOutput`. + """ + return self._invoke(input, _models.GET_IPAM_DISCOVERED_ROUTES, [], plugins) + + def get_ipam_internet_registry_association_asns( + self, + input: GetIpamInternetRegistryAssociationAsnsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamInternetRegistryAssociationAsnsOutput: + """ + Retrieves Autonomous System Numbers (ASNs) registered with an internet + registry for an IPAM internet registry association. We recommend using + pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `GetIpamInternetRegistryAssociationAsnsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamInternetRegistryAssociationAsnsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS, [], plugins + ) + + def get_ipam_internet_registry_association_cidrs( + self, + input: GetIpamInternetRegistryAssociationCidrsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamInternetRegistryAssociationCidrsOutput: + """ + Retrieves IP address CIDRs registered with an internet registry for an + IPAM internet registry association. We recommend using pagination to + ensure that the operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamInternetRegistryAssociationCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamInternetRegistryAssociationCidrsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS, [], plugins + ) + + def get_ipam_policy_allocation_rules( + self, + input: GetIpamPolicyAllocationRulesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPolicyAllocationRulesOutput: + """ + Gets the allocation rules for an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + + Args: + input: + An instance of `GetIpamPolicyAllocationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPolicyAllocationRulesOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_POLICY_ALLOCATION_RULES, [], plugins + ) + + def get_ipam_policy_organization_targets( + self, + input: GetIpamPolicyOrganizationTargetsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPolicyOrganizationTargetsOutput: + """ + Gets the Amazon Web Services Organizations targets for an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + + Args: + input: + An instance of `GetIpamPolicyOrganizationTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPolicyOrganizationTargetsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_POLICY_ORGANIZATION_TARGETS, [], plugins + ) + + def get_ipam_pool_allocations( + self, input: GetIpamPoolAllocationsInput, plugins: list[Plugin] | None = None + ) -> GetIpamPoolAllocationsOutput: + """ + Get a list of all the CIDR allocations in an IPAM pool. The Region you + use should be the IPAM pool locale. The locale is the Amazon Web + Services Region where this IPAM pool is available for allocations. + + Note: + If you use this action after + [AllocateIpamPoolCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AllocateIpamPoolCidr.html) + or + [ReleaseIpamPoolAllocation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html), + note that all EC2 API actions follow an [eventual + consistency](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + model. + + Args: + input: + An instance of `GetIpamPoolAllocationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPoolAllocationsOutput`. + """ + return self._invoke(input, _models.GET_IPAM_POOL_ALLOCATIONS, [], plugins) + + def get_ipam_pool_cidrs( + self, input: GetIpamPoolCidrsInput, plugins: list[Plugin] | None = None + ) -> GetIpamPoolCidrsOutput: + """ + Get the CIDRs provisioned to an IPAM pool. + + Args: + input: + An instance of `GetIpamPoolCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPoolCidrsOutput`. + """ + return self._invoke(input, _models.GET_IPAM_POOL_CIDRS, [], plugins) + + def get_ipam_prefix_list_resolver_rules( + self, + input: GetIpamPrefixListResolverRulesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverRulesOutput: + """ + Retrieves the CIDR selection rules for an IPAM prefix list resolver. Use + this operation to view the business logic that determines which CIDRs + are selected for synchronization with prefix lists. + + Args: + input: + An instance of `GetIpamPrefixListResolverRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverRulesOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_RULES, [], plugins + ) + + def get_ipam_prefix_list_resolver_version_entries( + self, + input: GetIpamPrefixListResolverVersionEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverVersionEntriesOutput: + """ + Retrieves the CIDR entries for a specific version of an IPAM prefix list + resolver. This shows the actual CIDRs that were selected and + synchronized at a particular point in time. + + Args: + input: + An instance of `GetIpamPrefixListResolverVersionEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverVersionEntriesOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES, [], plugins + ) + + def get_ipam_prefix_list_resolver_versions( + self, + input: GetIpamPrefixListResolverVersionsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamPrefixListResolverVersionsOutput: + """ + Retrieves version information for an IPAM prefix list resolver. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + + **Version example:** + + **Initial State (Version 1)** + + Production environment: + + - vpc-prod-web (10.1.0.0/16) - tagged env=prod + + - vpc-prod-db (10.2.0.0/16) - tagged env=prod + + Resolver rule: Include all VPCs tagged env=prod + + **Version 1 CIDRs:** 10.1.0.0/16, 10.2.0.0/16 + + **Infrastructure Change (Version 2)** + + New VPC added: + + - vpc-prod-api (10.3.0.0/16) - tagged env=prod + + IPAM automatically detects the change and creates a new version. + + **Version 2 CIDRs:** 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16 + + Args: + input: + An instance of `GetIpamPrefixListResolverVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamPrefixListResolverVersionsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS, [], plugins + ) + + def get_ipam_resource_cidrs( + self, input: GetIpamResourceCidrsInput, plugins: list[Plugin] | None = None + ) -> GetIpamResourceCidrsOutput: + """ + Returns resource CIDRs managed by IPAM in a given scope. If an IPAM is + associated with more than one resource discovery, the resource CIDRs + across all of the resource discoveries is returned. A resource discovery + is an IPAM component that enables IPAM to manage and monitor resources + that belong to the owning account. + + Args: + input: + An instance of `GetIpamResourceCidrsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamResourceCidrsOutput`. + """ + return self._invoke(input, _models.GET_IPAM_RESOURCE_CIDRS, [], plugins) + + def get_ipam_route_origin_authorizations( + self, + input: GetIpamRouteOriginAuthorizationsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRouteOriginAuthorizationsOutput: + """ + Retrieves the current Route Origin Authorizations (ROAs) published to + the RPKI for an IPAM internet registry association. We recommend using + pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `GetIpamRouteOriginAuthorizationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRouteOriginAuthorizationsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS, [], plugins + ) + + def get_ipam_route_protection_findings( + self, + input: GetIpamRouteProtectionFindingsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRouteProtectionFindingsOutput: + """ + Retrieves route protection findings for an IPAM. Route protection + findings show the Resource Public Key Infrastructure (RPKI) validation + status of your Bring Your Own IP (BYOIP) routes. Findings identify + routes that have valid, invalid, or unknown validation states. We + recommend using pagination to ensure that the operation returns quickly + and successfully. + + Args: + input: + An instance of `GetIpamRouteProtectionFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRouteProtectionFindingsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_ROUTE_PROTECTION_FINDINGS, [], plugins + ) + + def get_ipam_routing_policy_registration_deltas( + self, + input: GetIpamRoutingPolicyRegistrationDeltasInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRoutingPolicyRegistrationDeltasOutput: + """ + Retrieves the history of routing policy registration changes for an IPAM + internet registry association. We recommend using pagination to ensure + that the operation returns quickly and successfully. + + Args: + input: + An instance of `GetIpamRoutingPolicyRegistrationDeltasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRoutingPolicyRegistrationDeltasOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS, [], plugins + ) + + def get_ipam_routing_policy_registrations( + self, + input: GetIpamRoutingPolicyRegistrationsInput, + plugins: list[Plugin] | None = None, + ) -> GetIpamRoutingPolicyRegistrationsOutput: + """ + Retrieves routing policy registrations for an IPAM internet registry + association. Each registration represents a Route Origin Authorization + (ROA) that has been created or is pending publication to the RPKI. We + recommend using pagination to ensure that the operation returns quickly + and successfully. + + Args: + input: + An instance of `GetIpamRoutingPolicyRegistrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetIpamRoutingPolicyRegistrationsOutput`. + """ + return self._invoke( + input, _models.GET_IPAM_ROUTING_POLICY_REGISTRATIONS, [], plugins + ) + + def get_launch_template_data( + self, input: GetLaunchTemplateDataInput, plugins: list[Plugin] | None = None + ) -> GetLaunchTemplateDataOutput: + """ + Retrieves the configuration data of the specified instance. You can use + this data to create a launch template. + + This action calls on other describe actions to get instance information. + Depending on your instance configuration, you may need to allow the + following actions in your IAM policy: `DescribeSpotInstanceRequests`, + `DescribeInstanceCreditSpecifications`, `DescribeVolumes`, and + `DescribeInstanceAttribute`. Or, you can allow `describe*` depending on + your instance requirements. + + Args: + input: + An instance of `GetLaunchTemplateDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLaunchTemplateDataOutput`. + """ + return self._invoke(input, _models.GET_LAUNCH_TEMPLATE_DATA, [], plugins) + + def get_managed_prefix_list_associations( + self, + input: GetManagedPrefixListAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedPrefixListAssociationsOutput: + """ + Gets information about the resources that are associated with the + specified managed prefix list. + + Args: + input: + An instance of `GetManagedPrefixListAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedPrefixListAssociationsOutput`. + """ + return self._invoke( + input, _models.GET_MANAGED_PREFIX_LIST_ASSOCIATIONS, [], plugins + ) + + def get_managed_prefix_list_entries( + self, + input: GetManagedPrefixListEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetManagedPrefixListEntriesOutput: + """ + Gets information about the entries for a specified managed prefix list. + + Args: + input: + An instance of `GetManagedPrefixListEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedPrefixListEntriesOutput`. + """ + return self._invoke(input, _models.GET_MANAGED_PREFIX_LIST_ENTRIES, [], plugins) + + def get_managed_resource_visibility( + self, + input: GetManagedResourceVisibilityInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetManagedResourceVisibilityOutput: + """ + Retrieves the managed resource visibility configuration for the account. + The response indicates whether managed resources are hidden or visible + by default. + + Args: + input: + An instance of `GetManagedResourceVisibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetManagedResourceVisibilityOutput`. + """ + return self._invoke(input, _models.GET_MANAGED_RESOURCE_VISIBILITY, [], plugins) + + def get_network_insights_access_scope_analysis_findings( + self, + input: GetNetworkInsightsAccessScopeAnalysisFindingsInput, + plugins: list[Plugin] | None = None, + ) -> GetNetworkInsightsAccessScopeAnalysisFindingsOutput: + """ + Gets the findings for the specified Network Access Scope analysis. + + Args: + input: + An instance of `GetNetworkInsightsAccessScopeAnalysisFindingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetNetworkInsightsAccessScopeAnalysisFindingsOutput`. + """ + return self._invoke( + input, + _models.GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS, + [], + plugins, + ) + + def get_network_insights_access_scope_content( + self, + input: GetNetworkInsightsAccessScopeContentInput, + plugins: list[Plugin] | None = None, + ) -> GetNetworkInsightsAccessScopeContentOutput: + """ + Gets the content for the specified Network Access Scope. + + Args: + input: + An instance of `GetNetworkInsightsAccessScopeContentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetNetworkInsightsAccessScopeContentOutput`. + """ + return self._invoke( + input, _models.GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT, [], plugins + ) + + def get_password_data( + self, input: GetPasswordDataInput, plugins: list[Plugin] | None = None + ) -> GetPasswordDataOutput: + """ + Retrieves the encrypted administrator password for a running Windows + instance. + + The Windows password is generated at boot by the `EC2Config` service or + `EC2Launch` scripts (Windows Server 2016 and later). This usually only + happens the first time an instance is launched. For more information, + see + [EC2Config](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingConfig_WinAMI.html) + and + [EC2Launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2launch.html) + in the *Amazon EC2 User Guide*. + + For the `EC2Config` service, the password is not generated for rebundled + AMIs unless `Ec2SetPassword` is enabled before bundling. + + The password is encrypted using the key pair that you specified when you + launched the instance. You must provide the corresponding key pair file. + + When you launch an instance, password generation and encryption may take + a few minutes. If you try to retrieve the password before it's + available, the output returns an empty string. We recommend that you + wait up to 15 minutes after launching an instance before trying to + retrieve the generated password. + + Args: + input: + An instance of `GetPasswordDataInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPasswordDataOutput`. + """ + return self._invoke(input, _models.GET_PASSWORD_DATA, [], plugins) + + def get_reserved_instances_exchange_quote( + self, + input: GetReservedInstancesExchangeQuoteInput, + plugins: list[Plugin] | None = None, + ) -> GetReservedInstancesExchangeQuoteOutput: + """ + Returns a quote and exchange information for exchanging one or more + specified Convertible Reserved Instances for a new Convertible Reserved + Instance. If the exchange cannot be performed, the reason is returned in + the response. Use AcceptReservedInstancesExchangeQuote to perform the + exchange. + + Args: + input: + An instance of `GetReservedInstancesExchangeQuoteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetReservedInstancesExchangeQuoteOutput`. + """ + return self._invoke( + input, _models.GET_RESERVED_INSTANCES_EXCHANGE_QUOTE, [], plugins + ) + + def get_route_server_associations( + self, + input: GetRouteServerAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerAssociationsOutput: + """ + Gets information about the associations for the specified route server. + + A route server association is the connection established between a route + server and a VPC. + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `GetRouteServerAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerAssociationsOutput`. + """ + return self._invoke(input, _models.GET_ROUTE_SERVER_ASSOCIATIONS, [], plugins) + + def get_route_server_propagations( + self, + input: GetRouteServerPropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerPropagationsOutput: + """ + Gets information about the route propagations for the specified route + server. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + Args: + input: + An instance of `GetRouteServerPropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerPropagationsOutput`. + """ + return self._invoke(input, _models.GET_ROUTE_SERVER_PROPAGATIONS, [], plugins) + + def get_route_server_routing_database( + self, + input: GetRouteServerRoutingDatabaseInput, + plugins: list[Plugin] | None = None, + ) -> GetRouteServerRoutingDatabaseOutput: + """ + Gets the routing database for the specified route server. The [Routing + Information Base (RIB)](https://en.wikipedia.org/wiki/Routing_table) + serves as a database that stores all the routing information and network + topology data collected by a router or routing system, such as routes + learned from BGP peers. The RIB is constantly updated as new routing + information is received or existing routes change. This ensures that the + route server always has the most current view of the network topology + and can make optimal routing decisions. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + Args: + input: + An instance of `GetRouteServerRoutingDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRouteServerRoutingDatabaseOutput`. + """ + return self._invoke( + input, _models.GET_ROUTE_SERVER_ROUTING_DATABASE, [], plugins + ) + + def get_security_groups_for_vpc( + self, input: GetSecurityGroupsForVpcInput, plugins: list[Plugin] | None = None + ) -> GetSecurityGroupsForVpcOutput: + """ + Gets security groups that can be associated by the Amazon Web Services + account making the request with network interfaces in the specified VPC. + + Args: + input: + An instance of `GetSecurityGroupsForVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSecurityGroupsForVpcOutput`. + """ + return self._invoke(input, _models.GET_SECURITY_GROUPS_FOR_VPC, [], plugins) + + def get_serial_console_access_status( + self, + input: GetSerialConsoleAccessStatusInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetSerialConsoleAccessStatusOutput: + """ + Retrieves the access status of your account to the EC2 serial console of + all instances. By default, access to the EC2 serial console is disabled + for your account. For more information, see [Manage account access to + the EC2 serial + console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetSerialConsoleAccessStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSerialConsoleAccessStatusOutput`. + """ + return self._invoke( + input, _models.GET_SERIAL_CONSOLE_ACCESS_STATUS, [], plugins + ) + + def get_snapshot_block_public_access_state( + self, + input: GetSnapshotBlockPublicAccessStateInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetSnapshotBlockPublicAccessStateOutput: + """ + Gets the current state of *block public access for snapshots* setting + for the account and Region. + + For more information, see [Block public access for + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `GetSnapshotBlockPublicAccessStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSnapshotBlockPublicAccessStateOutput`. + """ + return self._invoke( + input, _models.GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE, [], plugins + ) + + def get_spot_placement_scores( + self, input: GetSpotPlacementScoresInput, plugins: list[Plugin] | None = None + ) -> GetSpotPlacementScoresOutput: + """ + Calculates the Spot placement score for a Region or Availability Zone + based on the specified target capacity and compute requirements. + + You can specify your compute requirements either by using + `InstanceRequirementsWithMetadata` and letting Amazon EC2 choose the + optimal instance types to fulfill your Spot request, or you can specify + the instance types by using `InstanceTypes`. + + For more information, see [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `GetSpotPlacementScoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSpotPlacementScoresOutput`. + """ + return self._invoke(input, _models.GET_SPOT_PLACEMENT_SCORES, [], plugins) + + def get_subnet_cidr_reservations( + self, input: GetSubnetCidrReservationsInput, plugins: list[Plugin] | None = None + ) -> GetSubnetCidrReservationsOutput: + """ + Gets information about the subnet CIDR reservations. + + Args: + input: + An instance of `GetSubnetCidrReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSubnetCidrReservationsOutput`. + """ + return self._invoke(input, _models.GET_SUBNET_CIDR_RESERVATIONS, [], plugins) + + def get_transit_gateway_attachment_nat_configuration( + self, + input: GetTransitGatewayAttachmentNatConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayAttachmentNatConfigurationOutput: + """ + Describes the NAT configuration for the specified transit gateway + attachment. Only the owner of the transit gateway can describe the NAT + configuration. + + Args: + input: + An instance of `GetTransitGatewayAttachmentNatConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayAttachmentNatConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION, [], plugins + ) + + def get_transit_gateway_attachment_propagations( + self, + input: GetTransitGatewayAttachmentPropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayAttachmentPropagationsOutput: + """ + Lists the route tables to which the specified resource attachment + propagates routes. + + Args: + input: + An instance of `GetTransitGatewayAttachmentPropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayAttachmentPropagationsOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS, [], plugins + ) + + def get_transit_gateway_metering_policy_entries( + self, + input: GetTransitGatewayMeteringPolicyEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayMeteringPolicyEntriesOutput: + """ + Retrieves the entries for a transit gateway metering policy. + + Args: + input: + An instance of `GetTransitGatewayMeteringPolicyEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayMeteringPolicyEntriesOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES, [], plugins + ) + + def get_transit_gateway_multicast_domain_associations( + self, + input: GetTransitGatewayMulticastDomainAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayMulticastDomainAssociationsOutput: + """ + Gets information about the associations for the transit gateway + multicast domain. + + Args: + input: + An instance of `GetTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayMulticastDomainAssociationsOutput`. + """ + return self._invoke( + input, + _models.GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + def get_transit_gateway_policy_table_associations( + self, + input: GetTransitGatewayPolicyTableAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPolicyTableAssociationsOutput: + """ + Gets a list of the transit gateway policy table associations. + + Args: + input: + An instance of `GetTransitGatewayPolicyTableAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPolicyTableAssociationsOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS, [], plugins + ) + + def get_transit_gateway_policy_table_entries( + self, + input: GetTransitGatewayPolicyTableEntriesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPolicyTableEntriesOutput: + """ + Returns a list of transit gateway policy table entries. + + Args: + input: + An instance of `GetTransitGatewayPolicyTableEntriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPolicyTableEntriesOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES, [], plugins + ) + + def get_transit_gateway_prefix_list_references( + self, + input: GetTransitGatewayPrefixListReferencesInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayPrefixListReferencesOutput: + """ + Gets information about the prefix list references in a specified transit + gateway route table. + + Args: + input: + An instance of `GetTransitGatewayPrefixListReferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayPrefixListReferencesOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES, [], plugins + ) + + def get_transit_gateway_route_table_associations( + self, + input: GetTransitGatewayRouteTableAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayRouteTableAssociationsOutput: + """ + Gets information about the associations for the specified transit + gateway route table. + + Args: + input: + An instance of `GetTransitGatewayRouteTableAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayRouteTableAssociationsOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS, [], plugins + ) + + def get_transit_gateway_route_table_propagations( + self, + input: GetTransitGatewayRouteTablePropagationsInput, + plugins: list[Plugin] | None = None, + ) -> GetTransitGatewayRouteTablePropagationsOutput: + """ + Gets information about the route table propagations for the specified + transit gateway route table. + + Args: + input: + An instance of `GetTransitGatewayRouteTablePropagationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTransitGatewayRouteTablePropagationsOutput`. + """ + return self._invoke( + input, _models.GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS, [], plugins + ) + + def get_verified_access_endpoint_policy( + self, + input: GetVerifiedAccessEndpointPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessEndpointPolicyOutput: + """ + Get the Verified Access policy associated with the endpoint. + + Args: + input: + An instance of `GetVerifiedAccessEndpointPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessEndpointPolicyOutput`. + """ + return self._invoke( + input, _models.GET_VERIFIED_ACCESS_ENDPOINT_POLICY, [], plugins + ) + + def get_verified_access_endpoint_targets( + self, + input: GetVerifiedAccessEndpointTargetsInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessEndpointTargetsOutput: + """ + Gets the targets for the specified network CIDR endpoint for Verified + Access. + + Args: + input: + An instance of `GetVerifiedAccessEndpointTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessEndpointTargetsOutput`. + """ + return self._invoke( + input, _models.GET_VERIFIED_ACCESS_ENDPOINT_TARGETS, [], plugins + ) + + def get_verified_access_group_policy( + self, + input: GetVerifiedAccessGroupPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetVerifiedAccessGroupPolicyOutput: + """ + Shows the contents of the Verified Access policy associated with the + group. + + Args: + input: + An instance of `GetVerifiedAccessGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVerifiedAccessGroupPolicyOutput`. + """ + return self._invoke( + input, _models.GET_VERIFIED_ACCESS_GROUP_POLICY, [], plugins + ) + + def get_vpc_resources_blocking_encryption_enforcement( + self, + input: GetVpcResourcesBlockingEncryptionEnforcementInput, + plugins: list[Plugin] | None = None, + ) -> GetVpcResourcesBlockingEncryptionEnforcementOutput: + """ + Gets information about resources in a VPC that are blocking encryption + enforcement. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `GetVpcResourcesBlockingEncryptionEnforcementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpcResourcesBlockingEncryptionEnforcementOutput`. + """ + return self._invoke( + input, + _models.GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT, + [], + plugins, + ) + + def get_vpn_connection_device_sample_configuration( + self, + input: GetVpnConnectionDeviceSampleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetVpnConnectionDeviceSampleConfigurationOutput: + """ + Download an Amazon Web Services-provided sample configuration file to be + used with the customer gateway device specified for your Site-to-Site + VPN connection. + + Args: + input: + An instance of `GetVpnConnectionDeviceSampleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnConnectionDeviceSampleConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION, [], plugins + ) + + def get_vpn_connection_device_types( + self, + input: GetVpnConnectionDeviceTypesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetVpnConnectionDeviceTypesOutput: + """ + Obtain a list of customer gateway devices for which sample configuration + files can be provided. The request has no additional parameters. You can + also see the list of device types with sample configuration files + available under [Your customer gateway + device](https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html) in + the *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `GetVpnConnectionDeviceTypesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnConnectionDeviceTypesOutput`. + """ + return self._invoke(input, _models.GET_VPN_CONNECTION_DEVICE_TYPES, [], plugins) + + def get_vpn_tunnel_replacement_status( + self, + input: GetVpnTunnelReplacementStatusInput, + plugins: list[Plugin] | None = None, + ) -> GetVpnTunnelReplacementStatusOutput: + """ + Get details of available tunnel endpoint maintenance. + + Args: + input: + An instance of `GetVpnTunnelReplacementStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetVpnTunnelReplacementStatusOutput`. + """ + return self._invoke( + input, _models.GET_VPN_TUNNEL_REPLACEMENT_STATUS, [], plugins + ) + + def import_client_vpn_client_certificate_revocation_list( + self, + input: ImportClientVpnClientCertificateRevocationListInput, + plugins: list[Plugin] | None = None, + ) -> ImportClientVpnClientCertificateRevocationListOutput: + """ + Uploads a client certificate revocation list to the specified Client VPN + endpoint. Uploading a client certificate revocation list overwrites the + existing client certificate revocation list. + + Uploading a client certificate revocation list resets existing client + connections. + + Args: + input: + An instance of `ImportClientVpnClientCertificateRevocationListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportClientVpnClientCertificateRevocationListOutput`. + """ + return self._invoke( + input, + _models.IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST, + [], + plugins, + ) + + def import_image( + self, input: ImportImageInput | None = None, plugins: list[Plugin] | None = None + ) -> ImportImageOutput: + """ + Note: + To import your virtual machines (VMs) with a console-based experience, + you can use the *Import virtual machine images to Amazon Web Services* + template in the [Migration Hub Orchestrator + console](https://console.aws.amazon.com/migrationhub/orchestrator). For + more information, see the [*Migration Hub Orchestrator User + Guide*](https://docs.aws.amazon.com/migrationhub-orchestrator/latest/userguide/import-vm-images.html) + . + + Import single or multi-volume disk images or EBS snapshots into an + Amazon Machine Image (AMI). + + Warning: + Amazon Web Services VM Import/Export strongly recommends specifying a + value for either the `--license-type` or `--usage-operation` parameter + when you create a new VM Import task. This ensures your operating system + is licensed appropriately and your billing is optimized. + + For more information, see [Importing a VM as an image using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ImportImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportImageOutput`. + """ + return self._invoke(input, _models.IMPORT_IMAGE, [], plugins) + + def import_instance( + self, input: ImportInstanceInput, plugins: list[Plugin] | None = None + ) -> ImportInstanceOutput: + """ + Note: + We recommend that you use the + [`ImportImage`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html) + API instead. For more information, see [Importing a VM as an image using + VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html) + in the *VM Import/Export User Guide*. + + Creates an import instance task using metadata from the specified disk + image. + + This API action supports only single-volume VMs. To import multi-volume + VMs, use ImportImage instead. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + This API action is not supported by the Command Line Interface (CLI). + + Args: + input: + An instance of `ImportInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportInstanceOutput`. + """ + return self._invoke(input, _models.IMPORT_INSTANCE, [], plugins) + + def import_key_pair( + self, input: ImportKeyPairInput, plugins: list[Plugin] | None = None + ) -> ImportKeyPairOutput: + """ + Imports the public key from an RSA or ED25519 key pair that you created + using a third-party tool. You give Amazon Web Services only the public + key. The private key is never transferred between you and Amazon Web + Services. + + For more information about the requirements for importing a key pair, + see [Create a key pair and import the public key to Amazon + EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ImportKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportKeyPairOutput`. + """ + return self._invoke(input, _models.IMPORT_KEY_PAIR, [], plugins) + + def import_snapshot( + self, + input: ImportSnapshotInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ImportSnapshotOutput: + """ + Imports a disk into an EBS snapshot. + + For more information, see [Importing a disk as a snapshot using VM + Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html) + in the *VM Import/Export User Guide*. + + Args: + input: + An instance of `ImportSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportSnapshotOutput`. + """ + return self._invoke(input, _models.IMPORT_SNAPSHOT, [], plugins) + + def import_volume( + self, input: ImportVolumeInput, plugins: list[Plugin] | None = None + ) -> ImportVolumeOutput: + """ + Note: + This API action supports only single-volume VMs. To import multi-volume + VMs, use ImportImage instead. To import a disk to a snapshot, use + ImportSnapshot instead. + + Creates an import volume task using metadata from the specified disk + image. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + + This API action is not supported by the Command Line Interface (CLI). + + Args: + input: + An instance of `ImportVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportVolumeOutput`. + """ + return self._invoke(input, _models.IMPORT_VOLUME, [], plugins) + + def list_images_in_recycle_bin( + self, + input: ListImagesInRecycleBinInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListImagesInRecycleBinOutput: + """ + Lists one or more AMIs that are currently in the Recycle Bin. For more + information, see [Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ListImagesInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListImagesInRecycleBinOutput`. + """ + return self._invoke(input, _models.LIST_IMAGES_IN_RECYCLE_BIN, [], plugins) + + def list_snapshots_in_recycle_bin( + self, + input: ListSnapshotsInRecycleBinInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListSnapshotsInRecycleBinOutput: + """ + Lists one or more snapshots that are currently in the Recycle Bin. + + Args: + input: + An instance of `ListSnapshotsInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSnapshotsInRecycleBinOutput`. + """ + return self._invoke(input, _models.LIST_SNAPSHOTS_IN_RECYCLE_BIN, [], plugins) + + def list_volumes_in_recycle_bin( + self, + input: ListVolumesInRecycleBinInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListVolumesInRecycleBinOutput: + """ + Lists one or more volumes that are currently in the Recycle Bin. + + Args: + input: + An instance of `ListVolumesInRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVolumesInRecycleBinOutput`. + """ + return self._invoke(input, _models.LIST_VOLUMES_IN_RECYCLE_BIN, [], plugins) + + def lock_snapshot( + self, input: LockSnapshotInput, plugins: list[Plugin] | None = None + ) -> LockSnapshotOutput: + """ + Locks an Amazon EBS snapshot in either *governance* or *compliance* mode + to protect it against accidental or malicious deletions for a specific + duration. A locked snapshot can't be deleted. + + You can also use this action to modify the lock settings for a snapshot + that is already locked. The allowed modifications depend on the lock + mode and lock state: + + - If the snapshot is locked in governance mode, you can modify the lock + mode and the lock duration or lock expiration date. + + - If the snapshot is locked in compliance mode and it is in the + cooling-off period, you can modify the lock mode and the lock duration + or lock expiration date. + + - If the snapshot is locked in compliance mode and the cooling-off + period has lapsed, you can only increase the lock duration or extend + the lock expiration date. + + Args: + input: + An instance of `LockSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `LockSnapshotOutput`. + """ + return self._invoke(input, _models.LOCK_SNAPSHOT, [], plugins) + + def modify_account_vpc_encryption_control( + self, + input: ModifyAccountVpcEncryptionControlInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ModifyAccountVpcEncryptionControlOutput: + """ + Modifies the account-level VPC Encryption Control configuration. This + sets the encryption control mode and resource exclusions that apply to + the VPCs in your account. VPC Encryption Control enables you to enforce + encryption for all data in transit within and between VPCs to meet + compliance requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyAccountVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAccountVpcEncryptionControlOutput`. + """ + return self._invoke( + input, _models.MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL, [], plugins + ) + + def modify_address_attribute( + self, input: ModifyAddressAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyAddressAttributeOutput: + """ + Modifies an attribute of the specified Elastic IP address. For + requirements, see [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `ModifyAddressAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAddressAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_ADDRESS_ATTRIBUTE, [], plugins) + + def modify_application_status_check( + self, + input: ModifyApplicationStatusCheckInput, + plugins: list[Plugin] | None = None, + ) -> ModifyApplicationStatusCheckOutput: + """ + Modifies an existing application status check. You can update the + protocol, port, path, thresholds, and other configuration settings. The + following rules apply: + + - The application status check must exist and belong to your account. + + - Changes take effect on the next health check interval. + + Args: + input: + An instance of `ModifyApplicationStatusCheckInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyApplicationStatusCheckOutput`. + """ + return self._invoke(input, _models.MODIFY_APPLICATION_STATUS_CHECK, [], plugins) + + def modify_availability_zone_group( + self, + input: ModifyAvailabilityZoneGroupInput, + plugins: list[Plugin] | None = None, + ) -> ModifyAvailabilityZoneGroupOutput: + """ + Changes the opt-in status of the specified zone group for your account. + + Args: + input: + An instance of `ModifyAvailabilityZoneGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyAvailabilityZoneGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_AVAILABILITY_ZONE_GROUP, [], plugins) + + def modify_capacity_reservation( + self, input: ModifyCapacityReservationInput, plugins: list[Plugin] | None = None + ) -> ModifyCapacityReservationOutput: + """ + Modifies a Capacity Reservation's capacity, instance eligibility, and + the conditions under which it is to be released. You can't modify a + Capacity Reservation's instance type, EBS optimization, platform, + instance store settings, Availability Zone, or tenancy. If you need to + modify any of these attributes, we recommend that you cancel the + Capacity Reservation, and then create a new one with the required + attributes. For more information, see [Modify an active Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html). + + The allowed modifications depend on the state of the Capacity + Reservation: + + - `assessing` or `scheduled` state - You can modify the tags only. + + - `pending` state - You can't modify the Capacity Reservation in any + way. + + - `active` state but still within the commitment duration - You can't + decrease the instance count or set an end date that is within the + commitment duration. All other modifications are allowed. + + - `active` state with no commitment duration or elapsed commitment + duration - All modifications are allowed. + + - `expired`, `cancelled`, `unsupported`, or `failed` state - You can't + modify the Capacity Reservation in any way. + + For a future-dated Capacity Reservation that has not yet been delivered, + pushing out the start date requires a quote generated by + `CreateCapacityReservationDateChangeQuote`. For more information, see + [Modify an active Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCapacityReservationOutput`. + """ + return self._invoke(input, _models.MODIFY_CAPACITY_RESERVATION, [], plugins) + + def modify_capacity_reservation_fleet( + self, + input: ModifyCapacityReservationFleetInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCapacityReservationFleetOutput: + """ + Modifies a Capacity Reservation Fleet. + + When you modify the total target capacity of a Capacity Reservation + Fleet, the Fleet automatically creates new Capacity Reservations, or + modifies or cancels existing Capacity Reservations in the Fleet to meet + the new total target capacity. When you modify the end date for the + Fleet, the end dates for all of the individual Capacity Reservations in + the Fleet are updated accordingly. + + Args: + input: + An instance of `ModifyCapacityReservationFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCapacityReservationFleetOutput`. + """ + return self._invoke( + input, _models.MODIFY_CAPACITY_RESERVATION_FLEET, [], plugins + ) + + def modify_client_vpn_endpoint( + self, input: ModifyClientVpnEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyClientVpnEndpointOutput: + """ + Modifies the specified Client VPN endpoint. Modifying the DNS server + resets existing client connections. + + Args: + input: + An instance of `ModifyClientVpnEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyClientVpnEndpointOutput`. + """ + return self._invoke(input, _models.MODIFY_CLIENT_VPN_ENDPOINT, [], plugins) + + def modify_client_vpn_endpoint_authorization_policy( + self, + input: ModifyClientVpnEndpointAuthorizationPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyClientVpnEndpointAuthorizationPolicyOutput: + """ + Creates or updates the authorization policy for a Client VPN endpoint. A + Client VPN endpoint can have one authorization policy. If a policy + already exists for the endpoint, the values that you specify replace the + corresponding values in the existing policy, and values that you do not + specify remain unchanged. + + Args: + input: + An instance of `ModifyClientVpnEndpointAuthorizationPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyClientVpnEndpointAuthorizationPolicyOutput`. + """ + return self._invoke( + input, _models.MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY, [], plugins + ) + + def modify_default_credit_specification( + self, + input: ModifyDefaultCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDefaultCreditSpecificationOutput: + """ + Modifies the default credit option for CPU usage of burstable + performance instances. The default credit option is set at the account + level per Amazon Web Services Region, and is specified per instance + family. All new burstable performance instances in the account launch + using the default credit option. + + `ModifyDefaultCreditSpecification` is an asynchronous operation, which + works at an Amazon Web Services Region level and modifies the credit + option for each Availability Zone. All zones in a Region are updated + within five minutes. But if instances are launched during this + operation, they might not get the new credit option until the zone is + updated. To verify whether the update has occurred, you can call + `GetDefaultCreditSpecification` and check `DefaultCreditSpecification` + for updates. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyDefaultCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDefaultCreditSpecificationOutput`. + """ + return self._invoke( + input, _models.MODIFY_DEFAULT_CREDIT_SPECIFICATION, [], plugins + ) + + def modify_ebs_default_kms_key_id( + self, input: ModifyEbsDefaultKmsKeyIdInput, plugins: list[Plugin] | None = None + ) -> ModifyEbsDefaultKmsKeyIdOutput: + """ + Changes the default KMS key for EBS encryption by default for your + account in this Region. + + Amazon Web Services creates a unique Amazon Web Services managed KMS key + in each Region for use with encryption by default. If you change the + default KMS key to a symmetric customer managed KMS key, it is used + instead of the Amazon Web Services managed KMS key. Amazon EBS does not + support asymmetric KMS keys. + + If you delete or disable the customer managed KMS key that you specified + for use with encryption by default, your instances will fail to launch. + + For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifyEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyEbsDefaultKmsKeyIdOutput`. + """ + return self._invoke(input, _models.MODIFY_EBS_DEFAULT_KMS_KEY_ID, [], plugins) + + def modify_fleet( + self, input: ModifyFleetInput, plugins: list[Plugin] | None = None + ) -> ModifyFleetOutput: + """ + Modifies the specified EC2 Fleet. + + You can only modify an EC2 Fleet request of type `maintain`. + + While the EC2 Fleet is being modified, it is in the `modifying` state. + + To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet + launches the additional Spot Instances according to the allocation + strategy for the EC2 Fleet request. If the allocation strategy is + `lowest-price`, the EC2 Fleet launches instances using the Spot Instance + pool with the lowest price. If the allocation strategy is `diversified`, + the EC2 Fleet distributes the instances across the Spot Instance pools. + If the allocation strategy is `capacity-optimized`, EC2 Fleet launches + instances from Spot Instance pools with optimal capacity for the number + of instances that are launching. + + To scale down your EC2 Fleet, decrease its target capacity. First, the + EC2 Fleet cancels any open requests that exceed the new target capacity. + You can request that the EC2 Fleet terminate Spot Instances until the + size of the fleet no longer exceeds the new target capacity. If the + allocation strategy is `lowest-price`, the EC2 Fleet terminates the + instances with the highest price per unit. If the allocation strategy is + `capacity-optimized`, the EC2 Fleet terminates the instances in the Spot + Instance pools that have the least available Spot Instance capacity. If + the allocation strategy is `diversified`, the EC2 Fleet terminates + instances across the Spot Instance pools. Alternatively, you can request + that the EC2 Fleet keep the fleet at its current size, but not replace + any Spot Instances that are interrupted or that you terminate manually. + + If you are finished with your EC2 Fleet for now, but will use it again + later, you can set the target capacity to 0. + + Args: + input: + An instance of `ModifyFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyFleetOutput`. + """ + return self._invoke(input, _models.MODIFY_FLEET, [], plugins) + + def modify_fpga_image_attribute( + self, input: ModifyFpgaImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyFpgaImageAttributeOutput: + """ + Modifies the specified attribute of the specified Amazon FPGA Image + (AFI). + + Args: + input: + An instance of `ModifyFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyFpgaImageAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_FPGA_IMAGE_ATTRIBUTE, [], plugins) + + def modify_hosts( + self, input: ModifyHostsInput, plugins: list[Plugin] | None = None + ) -> ModifyHostsOutput: + """ + Modify the auto-placement setting of a Dedicated Host. When + auto-placement is enabled, any instances that you launch with a tenancy + of `host` but without a specific host ID are placed onto any available + Dedicated Host in your account that has auto-placement enabled. When + auto-placement is disabled, you need to provide a host ID to have the + instance launch onto a specific host. If no host ID is provided, the + instance is launched onto a suitable host with auto-placement enabled. + + You can also use this API action to modify a Dedicated Host to support + either multiple instance types in an instance family, or to support a + specific instance type only. + + Args: + input: + An instance of `ModifyHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyHostsOutput`. + """ + return self._invoke(input, _models.MODIFY_HOSTS, [], plugins) + + def modify_identity_id_format( + self, input: ModifyIdentityIdFormatInput, plugins: list[Plugin] | None = None + ) -> ModifyIdentityIdFormatOutput: + """ + Modifies the ID format of a resource for a specified IAM user, IAM role, + or the root user for an account; or all IAM users, IAM roles, and the + root user for an account. You can specify that resources should receive + longer IDs (17-character IDs) when they are created. + + This request can only be used to modify longer ID settings for resource + types that are within the opt-in period. Resources currently in their + opt-in period include: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + For more information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + This setting applies to the principal specified in the request; it does + not apply to the principal that makes the request. + + Resources created with longer IDs are visible to all IAM roles and + users, regardless of these settings and provided that they have + permission to use the relevant `Describe` command for the resource type. + + Args: + input: + An instance of `ModifyIdentityIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIdentityIdFormatOutput`. + """ + return self._invoke(input, _models.MODIFY_IDENTITY_ID_FORMAT, [], plugins) + + def modify_id_format( + self, input: ModifyIdFormatInput, plugins: list[Plugin] | None = None + ) -> ModifyIdFormatOutput: + """ + Modifies the ID format for the specified resource on a per-Region basis. + You can specify that resources should receive longer IDs (17-character + IDs) when they are created. + + This request can only be used to modify longer ID settings for resource + types that are within the opt-in period. Resources currently in their + opt-in period include: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + This setting applies to the IAM user who makes the request; it does not + apply to the entire Amazon Web Services account. By default, an IAM user + defaults to the same settings as the root user. If you're using this + action as the root user, then these settings apply to the entire + account, unless an IAM user explicitly overrides these settings for + themselves. For more information, see [Resource + IDs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) + in the *Amazon Elastic Compute Cloud User Guide*. + + Resources created with longer IDs are visible to all IAM roles and + users, regardless of these settings and provided that they have + permission to use the relevant `Describe` command for the resource type. + + Args: + input: + An instance of `ModifyIdFormatInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIdFormatOutput`. + """ + return self._invoke(input, _models.MODIFY_ID_FORMAT, [], plugins) + + def modify_image_attribute( + self, input: ModifyImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyImageAttributeOutput: + """ + Modifies the specified attribute of the specified AMI. You can specify + only one attribute at a time. + + To specify the attribute, you can use the `Attribute` parameter, or one + of the following parameters: `Description`, `ImdsSupport`, or + `LaunchPermission`. + + Images with an Amazon Web Services Marketplace product code cannot be + made public. + + To enable the SriovNetSupport enhanced networking attribute of an image, + enable SriovNetSupport on an instance and create an AMI from the + instance. + + Args: + input: + An instance of `ModifyImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyImageAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_IMAGE_ATTRIBUTE, [], plugins) + + def modify_instance_attribute( + self, input: ModifyInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceAttributeOutput: + """ + Modifies the specified attribute of the specified instance. You can + specify only one attribute at a time. + + **Note:** Using this action to change the security groups associated + with an elastic network interface (ENI) attached to an instance can + result in an error if the instance has more than one ENI. To change the + security groups associated with an ENI attached to an instance that has + multiple ENIs, we recommend that you use the + ModifyNetworkInterfaceAttribute action. + + To modify some attributes, the instance must be stopped. For more + information, see [Modify a stopped + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_INSTANCE_ATTRIBUTE, [], plugins) + + def modify_instance_capacity_reservation_attributes( + self, + input: ModifyInstanceCapacityReservationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceCapacityReservationAttributesOutput: + """ + Modifies the Capacity Reservation settings for a stopped instance. Use + this action to configure an instance to target a specific Capacity + Reservation, run in any `open` Capacity Reservation with matching + attributes, run in On-Demand Instance capacity, or only run in a + Capacity Reservation. + + Args: + input: + An instance of `ModifyInstanceCapacityReservationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCapacityReservationAttributesOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES, [], plugins + ) + + def modify_instance_connect_endpoint( + self, + input: ModifyInstanceConnectEndpointInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceConnectEndpointOutput: + """ + Modifies the specified EC2 Instance Connect Endpoint. + + For more information, see [Modify an EC2 Instance Connect + Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ec2-instance-connect-endpoint.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceConnectEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceConnectEndpointOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_CONNECT_ENDPOINT, [], plugins + ) + + def modify_instance_cpu_options( + self, input: ModifyInstanceCpuOptionsInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceCpuOptionsOutput: + """ + By default, all vCPUs for the instance type are active when you launch + an instance. When you configure the number of active vCPUs for the + instance, it can help you save on licensing costs and optimize + performance. The base cost of the instance remains unchanged. + + The number of active vCPUs equals the number of threads per CPU core + multiplied by the number of cores. The instance must be in a `Stopped` + state before you make changes. + + Note: + Some instance type options do not support this capability. For more + information, see [Supported CPU + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceCpuOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCpuOptionsOutput`. + """ + return self._invoke(input, _models.MODIFY_INSTANCE_CPU_OPTIONS, [], plugins) + + def modify_instance_credit_specification( + self, + input: ModifyInstanceCreditSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceCreditSpecificationOutput: + """ + Modifies the credit option for CPU usage on a running or stopped + burstable performance instance. The credit options are `standard` and + `unlimited`. + + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceCreditSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceCreditSpecificationOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_CREDIT_SPECIFICATION, [], plugins + ) + + def modify_instance_event_start_time( + self, + input: ModifyInstanceEventStartTimeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceEventStartTimeOutput: + """ + Modifies the start time for a scheduled Amazon EC2 instance event. + + Args: + input: + An instance of `ModifyInstanceEventStartTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceEventStartTimeOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_EVENT_START_TIME, [], plugins + ) + + def modify_instance_event_window( + self, input: ModifyInstanceEventWindowInput, plugins: list[Plugin] | None = None + ) -> ModifyInstanceEventWindowOutput: + """ + Modifies the specified event window. + + You can define either a set of time ranges or a cron expression when + modifying the event window, but not both. + + To modify the targets associated with the event window, use the + AssociateInstanceEventWindow and DisassociateInstanceEventWindow API. + + If Amazon Web Services has already scheduled an event, modifying an + event window won't change the time of the scheduled event. + + For more information, see [Define event windows for scheduled + events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceEventWindowInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceEventWindowOutput`. + """ + return self._invoke(input, _models.MODIFY_INSTANCE_EVENT_WINDOW, [], plugins) + + def modify_instance_maintenance_options( + self, + input: ModifyInstanceMaintenanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMaintenanceOptionsOutput: + """ + Modifies the recovery behavior of your instance to disable simplified + automatic recovery or set the recovery behavior to default. The default + configuration will not enable simplified automatic recovery for an + unsupported instance type. For more information, see [Simplified + automatic + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#instance-configuration-recovery). + + Modifies the reboot migration behavior during a user-initiated reboot of + an instance that has a pending `system-reboot` event. For more + information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration). + + Args: + input: + An instance of `ModifyInstanceMaintenanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMaintenanceOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_MAINTENANCE_OPTIONS, [], plugins + ) + + def modify_instance_metadata_defaults( + self, + input: ModifyInstanceMetadataDefaultsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMetadataDefaultsOutput: + """ + Modifies the default instance metadata service (IMDS) settings at the + account level in the specified Amazon Web Services
 Region. + + Note: + To remove a parameter's account-level default setting, specify + `no-preference`. If an account-level setting is cleared with + `no-preference`, then the instance launch considers the other instance + metadata settings. For more information, see [Order of precedence for + instance metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceMetadataDefaultsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMetadataDefaultsOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_METADATA_DEFAULTS, [], plugins + ) + + def modify_instance_metadata_options( + self, + input: ModifyInstanceMetadataOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceMetadataOptionsOutput: + """ + Modify the instance metadata parameters on a running or stopped + instance. When you modify the parameters on a stopped instance, they are + applied when the instance is started. When you modify the parameters on + a running instance, the API responds with a state of "pending". After + the parameter modifications are successfully applied to the instance, + the state of the modifications changes from "pending" to "applied" in + subsequent describe-instances API calls. For more information, see + [Instance metadata and user + data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyInstanceMetadataOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceMetadataOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_METADATA_OPTIONS, [], plugins + ) + + def modify_instance_network_performance_options( + self, + input: ModifyInstanceNetworkPerformanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyInstanceNetworkPerformanceOptionsOutput: + """ + Change the configuration of the network performance options for an + existing instance. + + Args: + input: + An instance of `ModifyInstanceNetworkPerformanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstanceNetworkPerformanceOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS, [], plugins + ) + + def modify_instance_placement( + self, input: ModifyInstancePlacementInput, plugins: list[Plugin] | None = None + ) -> ModifyInstancePlacementOutput: + """ + Modifies the placement attributes for a specified instance. You can do + the following: + + - Modify the affinity between an instance and a [Dedicated + Host](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html). + When affinity is set to `host` and the instance is not associated with + a specific Dedicated Host, the next time the instance is started, it + is automatically associated with the host on which it lands. If the + instance is restarted or rebooted, this relationship persists. + + - Change the Dedicated Host with which an instance is associated. + + - Change the instance tenancy of an instance. + + - Move an instance to or from a [placement + group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html). + + At least one attribute for affinity, host ID, tenancy, or placement + group name must be specified in the request. Affinity and tenancy can be + modified in the same request. + + To modify the host ID, tenancy, placement group, or partition for an + instance, the instance must be in the `stopped` state. + + Args: + input: + An instance of `ModifyInstancePlacementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyInstancePlacementOutput`. + """ + return self._invoke(input, _models.MODIFY_INSTANCE_PLACEMENT, [], plugins) + + def modify_ipam( + self, input: ModifyIpamInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamOutput: + """ + Modify the configurations of an IPAM. + + Args: + input: + An instance of `ModifyIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM, [], plugins) + + def modify_ipam_policy_allocation_rules( + self, + input: ModifyIpamPolicyAllocationRulesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPolicyAllocationRulesOutput: + """ + Modifies the allocation rules in an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + + Args: + input: + An instance of `ModifyIpamPolicyAllocationRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPolicyAllocationRulesOutput`. + """ + return self._invoke( + input, _models.MODIFY_IPAM_POLICY_ALLOCATION_RULES, [], plugins + ) + + def modify_ipam_pool( + self, input: ModifyIpamPoolInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamPoolOutput: + """ + Modify the configurations of an IPAM pool. + + For more information, see [Modify a + pool](https://docs.aws.amazon.com/vpc/latest/ipam/mod-pool-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamPoolInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPoolOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM_POOL, [], plugins) + + def modify_ipam_pool_allocation( + self, input: ModifyIpamPoolAllocationInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamPoolAllocationOutput: + """ + Modifies the description of an IPAM pool allocation. For more + information, see [Modify an IPAM pool + allocation](https://docs.aws.amazon.com/vpc/latest/ipam/modify-alloc-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamPoolAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPoolAllocationOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM_POOL_ALLOCATION, [], plugins) + + def modify_ipam_prefix_list_resolver( + self, + input: ModifyIpamPrefixListResolverInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPrefixListResolverOutput: + """ + Modifies an IPAM prefix list resolver. You can update the description + and CIDR selection rules. Changes to rules will trigger re-evaluation + and potential updates to associated prefix lists. + + Args: + input: + An instance of `ModifyIpamPrefixListResolverInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPrefixListResolverOutput`. + """ + return self._invoke( + input, _models.MODIFY_IPAM_PREFIX_LIST_RESOLVER, [], plugins + ) + + def modify_ipam_prefix_list_resolver_target( + self, + input: ModifyIpamPrefixListResolverTargetInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamPrefixListResolverTargetOutput: + """ + Modifies an IPAM prefix list resolver target. You can update version + tracking settings and the desired version of the target prefix list. + + Args: + input: + An instance of `ModifyIpamPrefixListResolverTargetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamPrefixListResolverTargetOutput`. + """ + return self._invoke( + input, _models.MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET, [], plugins + ) + + def modify_ipam_resource_cidr( + self, input: ModifyIpamResourceCidrInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamResourceCidrOutput: + """ + Modify a resource CIDR. You can use this action to transfer resource + CIDRs between scopes and ignore resource CIDRs that you do not want to + manage. If set to false, the resource will not be tracked for overlap, + it cannot be auto-imported into a pool, and it will be removed from any + pool it has an allocation in. + + For more information, see [Move resource CIDRs between + scopes](https://docs.aws.amazon.com/vpc/latest/ipam/move-resource-ipam.html) + and [Change the monitoring state of resource + CIDRs](https://docs.aws.amazon.com/vpc/latest/ipam/change-monitoring-state-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ModifyIpamResourceCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamResourceCidrOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM_RESOURCE_CIDR, [], plugins) + + def modify_ipam_resource_discovery( + self, + input: ModifyIpamResourceDiscoveryInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamResourceDiscoveryOutput: + """ + Modifies a resource discovery. A resource discovery is an IPAM component + that enables IPAM to manage and monitor resources that belong to the + owning account. + + Args: + input: + An instance of `ModifyIpamResourceDiscoveryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamResourceDiscoveryOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM_RESOURCE_DISCOVERY, [], plugins) + + def modify_ipam_routing_policy_registration( + self, + input: ModifyIpamRoutingPolicyRegistrationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyIpamRoutingPolicyRegistrationOutput: + """ + Modifies an existing routing policy registration. You can update the + authorized ASNs, maximum prefix length, and other properties of a Route + Origin Authorization (ROA). + + Args: + input: + An instance of `ModifyIpamRoutingPolicyRegistrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamRoutingPolicyRegistrationOutput`. + """ + return self._invoke( + input, _models.MODIFY_IPAM_ROUTING_POLICY_REGISTRATION, [], plugins + ) + + def modify_ipam_scope( + self, input: ModifyIpamScopeInput, plugins: list[Plugin] | None = None + ) -> ModifyIpamScopeOutput: + """ + Modify an IPAM scope. + + Args: + input: + An instance of `ModifyIpamScopeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIpamScopeOutput`. + """ + return self._invoke(input, _models.MODIFY_IPAM_SCOPE, [], plugins) + + def modify_launch_template( + self, + input: ModifyLaunchTemplateInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ModifyLaunchTemplateOutput: + """ + Modifies a launch template. You can specify which version of the launch + template to set as the default version. When launching an instance, the + default version applies when a launch template version is not specified. + + Args: + input: + An instance of `ModifyLaunchTemplateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyLaunchTemplateOutput`. + """ + return self._invoke(input, _models.MODIFY_LAUNCH_TEMPLATE, [], plugins) + + def modify_local_gateway_route( + self, input: ModifyLocalGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> ModifyLocalGatewayRouteOutput: + """ + Modifies the specified local gateway route. + + Args: + input: + An instance of `ModifyLocalGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyLocalGatewayRouteOutput`. + """ + return self._invoke(input, _models.MODIFY_LOCAL_GATEWAY_ROUTE, [], plugins) + + def modify_managed_prefix_list( + self, input: ModifyManagedPrefixListInput, plugins: list[Plugin] | None = None + ) -> ModifyManagedPrefixListOutput: + """ + Modifies the specified managed prefix list. + + Adding or removing entries in a prefix list creates a new version of the + prefix list. Changing the name of the prefix list does not affect the + version. + + If you specify a current version number that does not match the true + current version number, the request fails. + + Args: + input: + An instance of `ModifyManagedPrefixListInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyManagedPrefixListOutput`. + """ + return self._invoke(input, _models.MODIFY_MANAGED_PREFIX_LIST, [], plugins) + + def modify_managed_resource_visibility( + self, + input: ModifyManagedResourceVisibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyManagedResourceVisibilityOutput: + """ + Modifies the managed resource visibility configuration for the account. + Use this operation to control whether managed resources are hidden or + visible by default. Visibility settings are account-wide and affect all + IAM principals uniformly. Hidden resources remain fully operational and + billable. + + Args: + input: + An instance of `ModifyManagedResourceVisibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyManagedResourceVisibilityOutput`. + """ + return self._invoke( + input, _models.MODIFY_MANAGED_RESOURCE_VISIBILITY, [], plugins + ) + + def modify_network_interface_attribute( + self, + input: ModifyNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyNetworkInterfaceAttributeOutput: + """ + Modifies the specified network interface attribute. You can specify only + one attribute at a time. You can use this action to attach and detach + security groups from an existing EC2 instance. + + Args: + input: + An instance of `ModifyNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyNetworkInterfaceAttributeOutput`. + """ + return self._invoke( + input, _models.MODIFY_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + def modify_private_dns_name_options( + self, + input: ModifyPrivateDnsNameOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyPrivateDnsNameOptionsOutput: + """ + Modifies the options for instance hostnames for the specified instance. + + Args: + input: + An instance of `ModifyPrivateDnsNameOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyPrivateDnsNameOptionsOutput`. + """ + return self._invoke(input, _models.MODIFY_PRIVATE_DNS_NAME_OPTIONS, [], plugins) + + def modify_public_ip_dns_name_options( + self, + input: ModifyPublicIpDnsNameOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyPublicIpDnsNameOptionsOutput: + """ + Modify public hostname options for a network interface. For more + information, see [EC2 instance hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyPublicIpDnsNameOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyPublicIpDnsNameOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS, [], plugins + ) + + def modify_reserved_instances( + self, input: ModifyReservedInstancesInput, plugins: list[Plugin] | None = None + ) -> ModifyReservedInstancesOutput: + """ + Modifies the configuration of your Reserved Instances, such as the + Availability Zone, instance count, or instance type. The Reserved + Instances to be modified must be identical, except for Availability + Zone, network platform, and instance type. + + For more information, see [Modify Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyReservedInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyReservedInstancesOutput`. + """ + return self._invoke(input, _models.MODIFY_RESERVED_INSTANCES, [], plugins) + + def modify_route_server( + self, input: ModifyRouteServerInput, plugins: list[Plugin] | None = None + ) -> ModifyRouteServerOutput: + """ + Modifies the configuration of an existing route server. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + + For more information see [Dynamic routing in your VPC with VPC Route + Server](https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyRouteServerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyRouteServerOutput`. + """ + return self._invoke(input, _models.MODIFY_ROUTE_SERVER, [], plugins) + + def modify_security_group_rules( + self, input: ModifySecurityGroupRulesInput, plugins: list[Plugin] | None = None + ) -> ModifySecurityGroupRulesOutput: + """ + Modifies the rules of a security group. + + Args: + input: + An instance of `ModifySecurityGroupRulesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySecurityGroupRulesOutput`. + """ + return self._invoke(input, _models.MODIFY_SECURITY_GROUP_RULES, [], plugins) + + def modify_snapshot_attribute( + self, input: ModifySnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifySnapshotAttributeOutput: + """ + Adds or removes permission settings for the specified snapshot. You may + add or remove specified Amazon Web Services account IDs from a + snapshot's list of create volume permissions, but you cannot do both in + a single operation. If you need to both add and remove account IDs for a + snapshot, you must use multiple operations. You can make up to 500 + modifications to a snapshot in a single operation. + + Encrypted snapshots and snapshots with Amazon Web Services Marketplace + product codes cannot be made public. Snapshots encrypted with your + default KMS key cannot be shared with other accounts. + + For more information about modifying snapshot permissions, see [Share a + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifySnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySnapshotAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_SNAPSHOT_ATTRIBUTE, [], plugins) + + def modify_snapshot_tier( + self, input: ModifySnapshotTierInput, plugins: list[Plugin] | None = None + ) -> ModifySnapshotTierOutput: + """ + Archives an Amazon EBS snapshot. When you archive a snapshot, it is + converted to a full snapshot that includes all of the blocks of data + that were written to the volume at the time the snapshot was created, + and moved from the standard tier to the archive tier. For more + information, see [Archive Amazon EBS + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ModifySnapshotTierInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySnapshotTierOutput`. + """ + return self._invoke(input, _models.MODIFY_SNAPSHOT_TIER, [], plugins) + + def modify_spot_fleet_request( + self, input: ModifySpotFleetRequestInput, plugins: list[Plugin] | None = None + ) -> ModifySpotFleetRequestOutput: + """ + Modifies the specified Spot Fleet request. + + You can only modify a Spot Fleet request of type `maintain`. + + While the Spot Fleet request is being modified, it is in the `modifying` + state. + + To scale up your Spot Fleet, increase its target capacity. The Spot + Fleet launches the additional Spot Instances according to the allocation + strategy for the Spot Fleet request. If the allocation strategy is + `lowestPrice`, the Spot Fleet launches instances using the Spot Instance + pool with the lowest price. If the allocation strategy is `diversified`, + the Spot Fleet distributes the instances across the Spot Instance pools. + If the allocation strategy is `capacityOptimized`, Spot Fleet launches + instances from Spot Instance pools with optimal capacity for the number + of instances that are launching. + + To scale down your Spot Fleet, decrease its target capacity. First, the + Spot Fleet cancels any open requests that exceed the new target + capacity. You can request that the Spot Fleet terminate Spot Instances + until the size of the fleet no longer exceeds the new target capacity. + If the allocation strategy is `lowestPrice`, the Spot Fleet terminates + the instances with the highest price per unit. If the allocation + strategy is `capacityOptimized`, the Spot Fleet terminates the instances + in the Spot Instance pools that have the least available Spot Instance + capacity. If the allocation strategy is `diversified`, the Spot Fleet + terminates instances across the Spot Instance pools. Alternatively, you + can request that the Spot Fleet keep the fleet at its current size, but + not replace any Spot Instances that are interrupted or that you + terminate manually. + + If you are finished with your Spot Fleet for now, but will use it again + later, you can set the target capacity to 0. + + Args: + input: + An instance of `ModifySpotFleetRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySpotFleetRequestOutput`. + """ + return self._invoke(input, _models.MODIFY_SPOT_FLEET_REQUEST, [], plugins) + + def modify_subnet_attribute( + self, input: ModifySubnetAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifySubnetAttributeOutput: + """ + Modifies a subnet attribute. You can only modify one attribute at a + time. + + Use this action to modify subnets on Amazon Web Services Outposts. + + - To modify a subnet on an Outpost rack, set both + `MapCustomerOwnedIpOnLaunch` and `CustomerOwnedIpv4Pool`. These two + parameters act as a single attribute. + + - To modify a subnet on an Outpost server, set either + `EnableLniAtDeviceIndex` or `DisableLniAtDeviceIndex`. + + For more information about Amazon Web Services Outposts, see the + following: + + - [Outpost + servers](https://docs.aws.amazon.com/outposts/latest/userguide/how-servers-work.html) + + - [Outpost + racks](https://docs.aws.amazon.com/outposts/latest/userguide/how-racks-work.html) + + Args: + input: + An instance of `ModifySubnetAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifySubnetAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_SUBNET_ATTRIBUTE, [], plugins) + + def modify_traffic_mirror_filter_network_services( + self, + input: ModifyTrafficMirrorFilterNetworkServicesInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorFilterNetworkServicesOutput: + """ + Allows or restricts mirroring network services. + + By default, Amazon DNS network services are not eligible for Traffic + Mirror. Use `AddNetworkServices` to add network services to a Traffic + Mirror filter. When a network service is added to the Traffic Mirror + filter, all traffic related to that network service will be mirrored. + When you no longer want to mirror network services, use + `RemoveNetworkServices` to remove the network services from the Traffic + Mirror filter. + + Args: + input: + An instance of `ModifyTrafficMirrorFilterNetworkServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorFilterNetworkServicesOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES, [], plugins + ) + + def modify_traffic_mirror_filter_rule( + self, + input: ModifyTrafficMirrorFilterRuleInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorFilterRuleOutput: + """ + Modifies the specified Traffic Mirror rule. + + `DestinationCidrBlock` and `SourceCidrBlock` must both be an IPv4 range + or an IPv6 range. + + Args: + input: + An instance of `ModifyTrafficMirrorFilterRuleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorFilterRuleOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRAFFIC_MIRROR_FILTER_RULE, [], plugins + ) + + def modify_traffic_mirror_session( + self, + input: ModifyTrafficMirrorSessionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTrafficMirrorSessionOutput: + """ + Modifies a Traffic Mirror session. + + Args: + input: + An instance of `ModifyTrafficMirrorSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTrafficMirrorSessionOutput`. + """ + return self._invoke(input, _models.MODIFY_TRAFFIC_MIRROR_SESSION, [], plugins) + + def modify_transit_gateway( + self, input: ModifyTransitGatewayInput, plugins: list[Plugin] | None = None + ) -> ModifyTransitGatewayOutput: + """ + Modifies the specified transit gateway. When you modify a transit + gateway, the modified options are applied to new transit gateway + attachments only. Your existing transit gateway attachments are not + modified. + + Args: + input: + An instance of `ModifyTransitGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayOutput`. + """ + return self._invoke(input, _models.MODIFY_TRANSIT_GATEWAY, [], plugins) + + def modify_transit_gateway_attachment_nat_configuration( + self, + input: ModifyTransitGatewayAttachmentNatConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayAttachmentNatConfigurationOutput: + """ + Modifies the NAT configuration for the specified transit gateway + attachment. Use this operation to do the following: + + - Enable or disable NAT gateway support for the attachment. + + - Specify whether the transit gateway installs routes for the NAT CIDRs. + + - Replace the NAT gateway rules for the attachment. + + Only the owner of the transit gateway can modify the NAT configuration. + + With NAT gateway support enabled, the transit gateway translates + addresses in each rule's `MatchSourceCidr` range to the corresponding + addresses in its `NatCidr` range. + + The transit gateway applies changes asynchronously. To check the result, + use `GetTransitGatewayAttachmentNatConfiguration`. + + Args: + input: + An instance of `ModifyTransitGatewayAttachmentNatConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayAttachmentNatConfigurationOutput`. + """ + return self._invoke( + input, + _models.MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION, + [], + plugins, + ) + + def modify_transit_gateway_metering_policy( + self, + input: ModifyTransitGatewayMeteringPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayMeteringPolicyOutput: + """ + Modifies a transit gateway metering policy. + + Args: + input: + An instance of `ModifyTransitGatewayMeteringPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayMeteringPolicyOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_METERING_POLICY, [], plugins + ) + + def modify_transit_gateway_policy_table_entry( + self, + input: ModifyTransitGatewayPolicyTableEntryInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayPolicyTableEntryOutput: + """ + Modifies the specified transit gateway policy table entry. + + Args: + input: + An instance of `ModifyTransitGatewayPolicyTableEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayPolicyTableEntryOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY, [], plugins + ) + + def modify_transit_gateway_prefix_list_reference( + self, + input: ModifyTransitGatewayPrefixListReferenceInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayPrefixListReferenceOutput: + """ + Modifies a reference (route) to a prefix list in a specified transit + gateway route table. + + Args: + input: + An instance of `ModifyTransitGatewayPrefixListReferenceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayPrefixListReferenceOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE, [], plugins + ) + + def modify_transit_gateway_vpc_attachment( + self, + input: ModifyTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> ModifyTransitGatewayVpcAttachmentOutput: + """ + Modifies the specified VPC attachment. + + Args: + input: + An instance of `ModifyTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTransitGatewayVpcAttachmentOutput`. + """ + return self._invoke( + input, _models.MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + def modify_verified_access_endpoint( + self, + input: ModifyVerifiedAccessEndpointInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessEndpointOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access endpoint. + + Args: + input: + An instance of `ModifyVerifiedAccessEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessEndpointOutput`. + """ + return self._invoke(input, _models.MODIFY_VERIFIED_ACCESS_ENDPOINT, [], plugins) + + def modify_verified_access_endpoint_policy( + self, + input: ModifyVerifiedAccessEndpointPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessEndpointPolicyOutput: + """ + Modifies the specified Amazon Web Services Verified Access endpoint + policy. + + Args: + input: + An instance of `ModifyVerifiedAccessEndpointPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessEndpointPolicyOutput`. + """ + return self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY, [], plugins + ) + + def modify_verified_access_group( + self, input: ModifyVerifiedAccessGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyVerifiedAccessGroupOutput: + """ + Modifies the specified Amazon Web Services Verified Access group + configuration. + + Args: + input: + An instance of `ModifyVerifiedAccessGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_VERIFIED_ACCESS_GROUP, [], plugins) + + def modify_verified_access_group_policy( + self, + input: ModifyVerifiedAccessGroupPolicyInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessGroupPolicyOutput: + """ + Modifies the specified Amazon Web Services Verified Access group policy. + + Args: + input: + An instance of `ModifyVerifiedAccessGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessGroupPolicyOutput`. + """ + return self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_GROUP_POLICY, [], plugins + ) + + def modify_verified_access_instance( + self, + input: ModifyVerifiedAccessInstanceInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessInstanceOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access instance. + + Args: + input: + An instance of `ModifyVerifiedAccessInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessInstanceOutput`. + """ + return self._invoke(input, _models.MODIFY_VERIFIED_ACCESS_INSTANCE, [], plugins) + + def modify_verified_access_instance_logging_configuration( + self, + input: ModifyVerifiedAccessInstanceLoggingConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessInstanceLoggingConfigurationOutput: + """ + Modifies the logging configuration for the specified Amazon Web Services + Verified Access instance. + + Args: + input: + An instance of `ModifyVerifiedAccessInstanceLoggingConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessInstanceLoggingConfigurationOutput`. + """ + return self._invoke( + input, + _models.MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION, + [], + plugins, + ) + + def modify_verified_access_trust_provider( + self, + input: ModifyVerifiedAccessTrustProviderInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVerifiedAccessTrustProviderOutput: + """ + Modifies the configuration of the specified Amazon Web Services Verified + Access trust provider. + + Args: + input: + An instance of `ModifyVerifiedAccessTrustProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVerifiedAccessTrustProviderOutput`. + """ + return self._invoke( + input, _models.MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER, [], plugins + ) + + def modify_volume( + self, input: ModifyVolumeInput, plugins: list[Plugin] | None = None + ) -> ModifyVolumeOutput: + """ + You can modify several parameters of an existing EBS volume, including + volume size, volume type, and IOPS capacity. If your EBS volume is + attached to a current-generation EC2 instance type, you might be able to + apply these changes without stopping the instance or detaching the + volume from it. For more information about modifying EBS volumes, see + [Amazon EBS Elastic + Volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html) + in the *Amazon EBS User Guide*. + + When you complete a resize operation on your volume, you need to extend + the volume's file-system size to take advantage of the new storage + capacity. For more information, see [Extend the file + system](https://docs.aws.amazon.com/ebs/latest/userguide/recognize-expanded-volume-linux.html). + + For more information, see [Monitor the progress of volume + modifications](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html) + in the *Amazon EBS User Guide*. + + With previous-generation instance types, resizing an EBS volume might + require detaching and reattaching the volume or stopping and restarting + the instance. + + After you initiate a volume modification, you must wait for that + modification to reach the `completed` state before you can initiate + another modification for the same volume. You can modify a volume up to + four times within a rolling 24-hour period, as long as the volume is in + the `in-use` or `available` state, and all previous modifications for + that volume are `completed`. If you exceed this limit, you get an error + message that indicates when you can perform your next modification. + + Args: + input: + An instance of `ModifyVolumeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVolumeOutput`. + """ + return self._invoke(input, _models.MODIFY_VOLUME, [], plugins) + + def modify_volume_attribute( + self, input: ModifyVolumeAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyVolumeAttributeOutput: + """ + Modifies a volume attribute. + + By default, all I/O operations for the volume are suspended when the + data on the volume is determined to be potentially inconsistent, to + prevent undetectable, latent data corruption. The I/O access to the + volume can be resumed by first enabling I/O access and then checking the + data consistency on your volume. + + You can change the default behavior to resume I/O operations. We + recommend that you change this only for boot volumes or for volumes that + are stateless or disposable. + + Args: + input: + An instance of `ModifyVolumeAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVolumeAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_VOLUME_ATTRIBUTE, [], plugins) + + def modify_vpc_attribute( + self, input: ModifyVpcAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcAttributeOutput: + """ + Modifies the specified attribute of the specified VPC. + + Args: + input: + An instance of `ModifyVpcAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_VPC_ATTRIBUTE, [], plugins) + + def modify_vpc_block_public_access_exclusion( + self, + input: ModifyVpcBlockPublicAccessExclusionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcBlockPublicAccessExclusionOutput: + """ + Modify VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is + a mode that can be applied to a single VPC or subnet that exempts it + from the account's BPA mode and will allow bidirectional or egress-only + access. You can create BPA exclusions for VPCs and subnets even when BPA + is not enabled on the account to ensure that there is no traffic + disruption to the exclusions when VPC BPA is turned on. + + Args: + input: + An instance of `ModifyVpcBlockPublicAccessExclusionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcBlockPublicAccessExclusionOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION, [], plugins + ) + + def modify_vpc_block_public_access_options( + self, + input: ModifyVpcBlockPublicAccessOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcBlockPublicAccessOptionsOutput: + """ + Modify VPC Block Public Access (BPA) options. VPC Block Public Access + (BPA) enables you to block resources in VPCs and subnets that you own in + a Region from reaching or being reached from the internet through + internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyVpcBlockPublicAccessOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcBlockPublicAccessOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS, [], plugins + ) + + def modify_vpc_encryption_control( + self, + input: ModifyVpcEncryptionControlInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEncryptionControlOutput: + """ + Modifies the encryption control configuration for a VPC. You can update + the encryption mode and exclusion settings for various gateway types and + peering connections. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ModifyVpcEncryptionControlInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEncryptionControlOutput`. + """ + return self._invoke(input, _models.MODIFY_VPC_ENCRYPTION_CONTROL, [], plugins) + + def modify_vpc_endpoint( + self, input: ModifyVpcEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcEndpointOutput: + """ + Modifies attributes of a specified VPC endpoint. The attributes that you + can modify depend on the type of VPC endpoint (interface, gateway, or + Gateway Load Balancer). For more information, see the [Amazon Web + Services PrivateLink + Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). + + Args: + input: + An instance of `ModifyVpcEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointOutput`. + """ + return self._invoke(input, _models.MODIFY_VPC_ENDPOINT, [], plugins) + + def modify_vpc_endpoint_connection_notification( + self, + input: ModifyVpcEndpointConnectionNotificationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointConnectionNotificationOutput: + """ + Modifies a connection notification for VPC endpoint or VPC endpoint + service. You can change the SNS topic for the notification, or the + events for which to be notified. + + Args: + input: + An instance of `ModifyVpcEndpointConnectionNotificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointConnectionNotificationOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION, [], plugins + ) + + def modify_vpc_endpoint_payer_responsibility( + self, + input: ModifyVpcEndpointPayerResponsibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointPayerResponsibilityOutput: + """ + Modifies the billing account for VPC endpoint usage/charges. + + Args: + input: + An instance of `ModifyVpcEndpointPayerResponsibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointPayerResponsibilityOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY, [], plugins + ) + + def modify_vpc_endpoint_service_configuration( + self, + input: ModifyVpcEndpointServiceConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServiceConfigurationOutput: + """ + Modifies the attributes of the specified VPC endpoint service + configuration. + + If you set or modify the private DNS name, you must prove that you own + the private DNS domain name. + + Args: + input: + An instance of `ModifyVpcEndpointServiceConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServiceConfigurationOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION, [], plugins + ) + + def modify_vpc_endpoint_service_payer_responsibility( + self, + input: ModifyVpcEndpointServicePayerResponsibilityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServicePayerResponsibilityOutput: + """ + Modifies the payer responsibility for your VPC endpoint service. + + Args: + input: + An instance of `ModifyVpcEndpointServicePayerResponsibilityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServicePayerResponsibilityOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY, [], plugins + ) + + def modify_vpc_endpoint_service_permissions( + self, + input: ModifyVpcEndpointServicePermissionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcEndpointServicePermissionsOutput: + """ + Modifies the permissions for your VPC endpoint service. You can add or + remove permissions for service consumers (Amazon Web Services accounts, + users, and IAM roles) to connect to your endpoint service. Principal + ARNs with path components aren't supported. + + If you grant permissions to all principals, the service is public. Any + users who know the name of a public service can send a request to attach + an endpoint. If the service does not require manual approval, + attachments are automatically approved. + + Args: + input: + An instance of `ModifyVpcEndpointServicePermissionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcEndpointServicePermissionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS, [], plugins + ) + + def modify_vpc_peering_connection_options( + self, + input: ModifyVpcPeeringConnectionOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpcPeeringConnectionOptionsOutput: + """ + Modifies the VPC peering connection options on one side of a VPC peering + connection. + + If the peered VPCs are in the same Amazon Web Services account, you can + enable DNS resolution for queries from the local VPC. This ensures that + queries from the local VPC resolve to private IP addresses in the peer + VPC. This option is not available if the peered VPCs are in different + Amazon Web Services accounts or different Regions. For peered VPCs in + different Amazon Web Services accounts, each Amazon Web Services account + owner must initiate a separate request to modify the peering connection + options. For inter-region peering connections, you must use the Region + for the requester VPC to modify the requester VPC peering options and + the Region for the accepter VPC to modify the accepter VPC peering + options. To verify which VPCs are the accepter and the requester for a + VPC peering connection, use the DescribeVpcPeeringConnections command. + + Args: + input: + An instance of `ModifyVpcPeeringConnectionOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcPeeringConnectionOptionsOutput`. + """ + return self._invoke( + input, _models.MODIFY_VPC_PEERING_CONNECTION_OPTIONS, [], plugins + ) + + def modify_vpc_tenancy( + self, input: ModifyVpcTenancyInput, plugins: list[Plugin] | None = None + ) -> ModifyVpcTenancyOutput: + """ + Modifies the instance tenancy attribute of the specified VPC. You can + change the instance tenancy attribute of a VPC to `default` only. You + cannot change the instance tenancy attribute to `dedicated`. + + After you modify the tenancy of the VPC, any new instances that you + launch into the VPC have a tenancy of `default`, unless you specify + otherwise during launch. The tenancy of any existing instances in the + VPC is not affected. + + For more information, see [Dedicated + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ModifyVpcTenancyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpcTenancyOutput`. + """ + return self._invoke(input, _models.MODIFY_VPC_TENANCY, [], plugins) + + def modify_vpn_connection( + self, input: ModifyVpnConnectionInput, plugins: list[Plugin] | None = None + ) -> ModifyVpnConnectionOutput: + """ + Modifies the customer gateway or the target gateway of an Amazon Web + Services Site-to-Site VPN connection. To modify the target gateway, the + following migration options are available: + + - An existing virtual private gateway to a new virtual private gateway + + - An existing virtual private gateway to a transit gateway + + - An existing transit gateway to a new transit gateway + + - An existing transit gateway to a virtual private gateway + + Before you perform the migration to the new gateway, you must configure + the new gateway. Use CreateVpnGateway to create a virtual private + gateway, or CreateTransitGateway to create a transit gateway. + + This step is required when you migrate from a virtual private gateway + with static routes to a transit gateway. + + You must delete the static routes before you migrate to the new gateway. + + Keep a copy of the static route before you delete it. You will need to + add back these routes to the transit gateway after the VPN connection + migration is complete. + + After you migrate to the new gateway, you might need to modify your VPC + route table. Use CreateRoute and DeleteRoute to make the changes + described in [Update VPC route + tables](https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + When the new gateway is a transit gateway, modify the transit gateway + route table to allow traffic between the VPC and the Amazon Web Services + Site-to-Site VPN connection. Use CreateTransitGatewayRoute to add the + routes. + + If you deleted VPN static routes, you must add the static routes to the + transit gateway route table. + + After you perform this operation, the VPN endpoint's IP addresses on + the Amazon Web Services side and the tunnel options remain intact. Your + Amazon Web Services Site-to-Site VPN connection will be temporarily + unavailable for a brief period while we provision the new endpoints. + + Args: + input: + An instance of `ModifyVpnConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnConnectionOutput`. + """ + return self._invoke(input, _models.MODIFY_VPN_CONNECTION, [], plugins) + + def modify_vpn_connection_options( + self, + input: ModifyVpnConnectionOptionsInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpnConnectionOptionsOutput: + """ + Modifies the connection options for your Site-to-Site VPN connection. + + When you modify the VPN connection options, the VPN endpoint IP + addresses on the Amazon Web Services side do not change, and the tunnel + options do not change. Your VPN connection will be temporarily + unavailable for a brief period while the VPN connection is updated. + + Args: + input: + An instance of `ModifyVpnConnectionOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnConnectionOptionsOutput`. + """ + return self._invoke(input, _models.MODIFY_VPN_CONNECTION_OPTIONS, [], plugins) + + def modify_vpn_tunnel_certificate( + self, + input: ModifyVpnTunnelCertificateInput, + plugins: list[Plugin] | None = None, + ) -> ModifyVpnTunnelCertificateOutput: + """ + Modifies the VPN tunnel endpoint certificate. + + Args: + input: + An instance of `ModifyVpnTunnelCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnTunnelCertificateOutput`. + """ + return self._invoke(input, _models.MODIFY_VPN_TUNNEL_CERTIFICATE, [], plugins) + + def modify_vpn_tunnel_options( + self, input: ModifyVpnTunnelOptionsInput, plugins: list[Plugin] | None = None + ) -> ModifyVpnTunnelOptionsOutput: + """ + Modifies the options for a VPN tunnel in an Amazon Web Services + Site-to-Site VPN connection. You can modify multiple options for a + tunnel in a single request, but you can only modify one tunnel at a + time. For more information, see [Site-to-Site VPN tunnel options for + your Site-to-Site VPN + connection](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html) + in the *Amazon Web Services Site-to-Site VPN User Guide*. + + Args: + input: + An instance of `ModifyVpnTunnelOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyVpnTunnelOptionsOutput`. + """ + return self._invoke(input, _models.MODIFY_VPN_TUNNEL_OPTIONS, [], plugins) + + def monitor_instances( + self, input: MonitorInstancesInput, plugins: list[Plugin] | None = None + ) -> MonitorInstancesOutput: + """ + Enables detailed monitoring for a running instance. Otherwise, basic + monitoring is enabled. For more information, see [Monitor your instances + using + CloudWatch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html) + in the *Amazon EC2 User Guide*. + + To disable detailed monitoring, see + [UnmonitorInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html). + + Args: + input: + An instance of `MonitorInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MonitorInstancesOutput`. + """ + return self._invoke(input, _models.MONITOR_INSTANCES, [], plugins) + + def move_address_to_vpc( + self, input: MoveAddressToVpcInput, plugins: list[Plugin] | None = None + ) -> MoveAddressToVpcOutput: + """ + Note: + This action is deprecated. + + Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC + platform. The Elastic IP address must be allocated to your account for + more than 24 hours, and it must not be associated with an instance. + After the Elastic IP address is moved, it is no longer available for use + in the EC2-Classic platform. You cannot move an Elastic IP address that + was originally allocated for use in the EC2-VPC platform to the + EC2-Classic platform. + + Args: + input: + An instance of `MoveAddressToVpcInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveAddressToVpcOutput`. + """ + return self._invoke(input, _models.MOVE_ADDRESS_TO_VPC, [], plugins) + + def move_byoip_cidr_to_ipam( + self, input: MoveByoipCidrToIpamInput, plugins: list[Plugin] | None = None + ) -> MoveByoipCidrToIpamOutput: + """ + Move a BYOIPv4 CIDR to IPAM from a public IPv4 pool. + + If you already have a BYOIPv4 CIDR with Amazon Web Services, you can + move the CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 + CIDR to IPAM. If you are bringing a new IP address to Amazon Web + Services for the first time, complete the steps in [Tutorial: BYOIP + address CIDRs to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam.html). + + Args: + input: + An instance of `MoveByoipCidrToIpamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveByoipCidrToIpamOutput`. + """ + return self._invoke(input, _models.MOVE_BYOIP_CIDR_TO_IPAM, [], plugins) + + def move_capacity_reservation_instances( + self, + input: MoveCapacityReservationInstancesInput, + plugins: list[Plugin] | None = None, + ) -> MoveCapacityReservationInstancesOutput: + """ + Move available capacity from a source Capacity Reservation to a + destination Capacity Reservation. The source Capacity Reservation and + the destination Capacity Reservation must be `active`, owned by your + Amazon Web Services account, and share the following: + + - Instance type + + - Platform + + - Availability Zone + + - Tenancy + + - Placement group + + - Capacity Reservation end time - `At specific time` or `Manually`. + + Args: + input: + An instance of `MoveCapacityReservationInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MoveCapacityReservationInstancesOutput`. + """ + return self._invoke( + input, _models.MOVE_CAPACITY_RESERVATION_INSTANCES, [], plugins + ) + + def provision_byoip_cidr( + self, input: ProvisionByoipCidrInput, plugins: list[Plugin] | None = None + ) -> ProvisionByoipCidrOutput: + """ + Provisions an IPv4 or IPv6 address range for use with your Amazon Web + Services resources through bring your own IP addresses (BYOIP) and + creates a corresponding address pool. After the address range is + provisioned, it is ready to be advertised. + + Amazon Web Services verifies that you own the address range and are + authorized to advertise it. You must ensure that the address range is + registered to you and that you created an RPKI ROA to authorize Amazon + ASNs 16509 and 14618 to advertise the address range. For the Amazon Web + Services GovCloud (US) Regions, authorize only ASN 8987. For the Amazon + Web Services European Sovereign Cloud, authorize ASNs 16509 and 214101. + For more information, see [Bring your own IP addresses + (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) + in the *Amazon EC2 User Guide*. + + Provisioning an address range is an asynchronous operation, so the call + returns immediately, but the address range is not ready to use until its + status changes from `pending-provision` to `provisioned`. For more + information, see [Onboard your address + range](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/byoip-onboard.html). + + Args: + input: + An instance of `ProvisionByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionByoipCidrOutput`. + """ + return self._invoke(input, _models.PROVISION_BYOIP_CIDR, [], plugins) + + def provision_ipam_byoasn( + self, input: ProvisionIpamByoasnInput, plugins: list[Plugin] | None = None + ) -> ProvisionIpamByoasnOutput: + """ + Provisions your Autonomous System Number (ASN) for use in your Amazon + Web Services account. This action requires authorization context for + Amazon to bring the ASN to an Amazon Web Services account. For more + information, see [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + + Args: + input: + An instance of `ProvisionIpamByoasnInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionIpamByoasnOutput`. + """ + return self._invoke(input, _models.PROVISION_IPAM_BYOASN, [], plugins) + + def provision_ipam_pool_cidr( + self, input: ProvisionIpamPoolCidrInput, plugins: list[Plugin] | None = None + ) -> ProvisionIpamPoolCidrOutput: + """ + Provision a CIDR to an IPAM pool. You can use this action to provision + new CIDRs to a top-level pool or to transfer a CIDR from a top-level + pool to a pool within it. + + For more information, see [Provision CIDRs to + pools](https://docs.aws.amazon.com/vpc/latest/ipam/prov-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ProvisionIpamPoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionIpamPoolCidrOutput`. + """ + return self._invoke(input, _models.PROVISION_IPAM_POOL_CIDR, [], plugins) + + def provision_public_ipv4_pool_cidr( + self, + input: ProvisionPublicIpv4PoolCidrInput, + plugins: list[Plugin] | None = None, + ) -> ProvisionPublicIpv4PoolCidrOutput: + """ + Provision a CIDR to a public IPv4 pool. + + For more information about IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Args: + input: + An instance of `ProvisionPublicIpv4PoolCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ProvisionPublicIpv4PoolCidrOutput`. + """ + return self._invoke(input, _models.PROVISION_PUBLIC_IPV4_POOL_CIDR, [], plugins) + + def purchase_capacity_block( + self, input: PurchaseCapacityBlockInput, plugins: list[Plugin] | None = None + ) -> PurchaseCapacityBlockOutput: + """ + Purchase the Capacity Block for use with your account. With Capacity + Blocks you ensure GPU capacity is available for machine learning (ML) + workloads. You must specify the ID of the Capacity Block offering you + are purchasing. + + Args: + input: + An instance of `PurchaseCapacityBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseCapacityBlockOutput`. + """ + return self._invoke(input, _models.PURCHASE_CAPACITY_BLOCK, [], plugins) + + def purchase_capacity_block_extension( + self, + input: PurchaseCapacityBlockExtensionInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseCapacityBlockExtensionOutput: + """ + Purchase the Capacity Block extension for use with your account. You + must specify the ID of the Capacity Block extension offering you are + purchasing. + + Args: + input: + An instance of `PurchaseCapacityBlockExtensionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseCapacityBlockExtensionOutput`. + """ + return self._invoke( + input, _models.PURCHASE_CAPACITY_BLOCK_EXTENSION, [], plugins + ) + + def purchase_host_reservation( + self, input: PurchaseHostReservationInput, plugins: list[Plugin] | None = None + ) -> PurchaseHostReservationOutput: + """ + Purchase a reservation with configurations that match those of your + Dedicated Host. You must have active Dedicated Hosts in your account + before you purchase a reservation. This action results in the specified + reservation being purchased and charged to your account. + + Args: + input: + An instance of `PurchaseHostReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseHostReservationOutput`. + """ + return self._invoke(input, _models.PURCHASE_HOST_RESERVATION, [], plugins) + + def purchase_reserved_instances_offering( + self, + input: PurchaseReservedInstancesOfferingInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseReservedInstancesOfferingOutput: + """ + Purchases a Reserved Instance for use with your account. With Reserved + Instances, you pay a lower hourly rate compared to On-Demand instance + pricing. + + Use DescribeReservedInstancesOfferings to get a list of Reserved + Instance offerings that match your specifications. After you've + purchased a Reserved Instance, you can check for your new Reserved + Instance with DescribeReservedInstances. + + To queue a purchase for a future date and time, specify a purchase time. + If you do not specify a purchase time, the default is the current time. + + For more information, see [Reserved + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html) + and [Sell in the Reserved Instance + Marketplace](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `PurchaseReservedInstancesOfferingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseReservedInstancesOfferingOutput`. + """ + return self._invoke( + input, _models.PURCHASE_RESERVED_INSTANCES_OFFERING, [], plugins + ) + + def purchase_scheduled_instances( + self, + input: PurchaseScheduledInstancesInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseScheduledInstancesOutput: + """ + Note: + You can no longer purchase Scheduled Instances. + + Purchases the Scheduled Instances with the specified schedule. + + Scheduled Instances enable you to purchase Amazon EC2 compute capacity + by the hour for a one-year term. Before you can purchase a Scheduled + Instance, you must call DescribeScheduledInstanceAvailability to check + for available schedules and obtain a purchase token. After you purchase + a Scheduled Instance, you must call RunScheduledInstances during each + scheduled time period. + + After you purchase a Scheduled Instance, you can't cancel, modify, or + resell your purchase. + + Args: + input: + An instance of `PurchaseScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseScheduledInstancesOutput`. + """ + return self._invoke(input, _models.PURCHASE_SCHEDULED_INSTANCES, [], plugins) + + def reboot_instances( + self, input: RebootInstancesInput, plugins: list[Plugin] | None = None + ) -> RebootInstancesOutput: + """ + Requests a reboot of the specified instances. This operation is + asynchronous; it only queues a request to reboot the specified + instances. The operation succeeds if the instances are valid and belong + to you. Requests to reboot terminated instances are ignored. + + If an instance does not cleanly shut down within a few minutes, Amazon + EC2 performs a hard reboot. + + For more information about troubleshooting, see [Troubleshoot an + unreachable + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RebootInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootInstancesOutput`. + """ + return self._invoke(input, _models.REBOOT_INSTANCES, [], plugins) + + def register_image( + self, input: RegisterImageInput, plugins: list[Plugin] | None = None + ) -> RegisterImageOutput: + """ + Registers an AMI. When you're creating an instance-store backed AMI, + registering the AMI is the final step in the creation process. For more + information about creating AMIs, see [Create an AMI from a + snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot) + and [Create an instance-store backed + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html) + in the *Amazon EC2 User Guide*. + + If needed, you can deregister an AMI at any time. Any modifications you + make to an AMI backed by an instance store volume invalidates its + registration. If you make changes to an image, deregister the previous + image and register the new image. + + **Register a snapshot of a root device volume** + + You can use `RegisterImage` to create an Amazon EBS-backed Linux AMI + from a snapshot of a root device volume. You specify the snapshot using + a block device mapping. You can't set the encryption state of the + volume using the block device mapping. If the snapshot is encrypted, or + encryption by default is enabled, the root volume of an instance + launched from the AMI is encrypted. + + For more information, see [Create an AMI from a + snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot) + and [Use encryption with EBS-backed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) + in the *Amazon EC2 User Guide*. + + **Amazon Web Services Marketplace product codes** + + If any snapshots have Amazon Web Services Marketplace product codes, + they are copied to the new AMI. + + In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require + correct licensing information to be present on the AMI. For more + information, see [Understand AMI billing + information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) + in the *Amazon EC2 User Guide*. When creating an AMI from a snapshot, + the `RegisterImage` operation derives the correct billing information + from the snapshot's metadata, but this requires the appropriate + metadata to be present. To verify if the correct billing information was + applied, check the `PlatformDetails` field on the new AMI. If the field + is empty or doesn't match the expected operating system code (for + example, Windows, RedHat, SUSE, or SQL), the AMI creation was + unsuccessful, and you should discard the AMI and instead create the AMI + from an instance. For more information, see [Create an AMI from an + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami) + in the *Amazon EC2 User Guide*. + + If you purchase a Reserved Instance to apply to an On-Demand Instance + that was launched from an AMI with a billing product code, make sure + that the Reserved Instance has the matching billing product code. If you + purchase a Reserved Instance without the matching billing product code, + the Reserved Instance is not applied to the On-Demand Instance. For + information about how to obtain the platform details and billing + information of an AMI, see [Understand AMI billing + information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RegisterImageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterImageOutput`. + """ + return self._invoke(input, _models.REGISTER_IMAGE, [], plugins) + + def register_instance_event_notification_attributes( + self, + input: RegisterInstanceEventNotificationAttributesInput, + plugins: list[Plugin] | None = None, + ) -> RegisterInstanceEventNotificationAttributesOutput: + """ + Registers a set of tag keys to include in scheduled event notifications + for your resources. + + To remove tags, use + [DeregisterInstanceEventNotificationAttributes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterInstanceEventNotificationAttributes.html). + + Args: + input: + An instance of `RegisterInstanceEventNotificationAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterInstanceEventNotificationAttributesOutput`. + """ + return self._invoke( + input, _models.REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES, [], plugins + ) + + def register_transit_gateway_multicast_group_members( + self, + input: RegisterTransitGatewayMulticastGroupMembersInput, + plugins: list[Plugin] | None = None, + ) -> RegisterTransitGatewayMulticastGroupMembersOutput: + """ + Registers members (network interfaces) with the transit gateway + multicast group. A member is a network interface associated with a + supported EC2 instance that receives multicast traffic. For more + information, see [Multicast on transit + gateways](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html) + in the *Amazon Web Services Transit Gateways Guide*. + + After you add the members, use + [SearchTransitGatewayMulticastGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) + to verify that the members were added to the transit gateway multicast + group. + + Args: + input: + An instance of `RegisterTransitGatewayMulticastGroupMembersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTransitGatewayMulticastGroupMembersOutput`. + """ + return self._invoke( + input, _models.REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS, [], plugins + ) + + def register_transit_gateway_multicast_group_sources( + self, + input: RegisterTransitGatewayMulticastGroupSourcesInput, + plugins: list[Plugin] | None = None, + ) -> RegisterTransitGatewayMulticastGroupSourcesOutput: + """ + Registers sources (network interfaces) with the specified transit + gateway multicast group. + + A multicast source is a network interface attached to a supported + instance that sends multicast traffic. For more information about + supported instances, see [Multicast on transit + gateways](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html) + in the *Amazon Web Services Transit Gateways Guide*. + + After you add the source, use + [SearchTransitGatewayMulticastGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) + to verify that the source was added to the multicast group. + + Args: + input: + An instance of `RegisterTransitGatewayMulticastGroupSourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTransitGatewayMulticastGroupSourcesOutput`. + """ + return self._invoke( + input, _models.REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES, [], plugins + ) + + def reject_capacity_reservation_billing_ownership( + self, + input: RejectCapacityReservationBillingOwnershipInput, + plugins: list[Plugin] | None = None, + ) -> RejectCapacityReservationBillingOwnershipOutput: + """ + Rejects a request to assign billing of the available capacity of a + shared Capacity Reservation to your account. For more information, see + [Billing assignment for shared Amazon EC2 Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html). + + Args: + input: + An instance of `RejectCapacityReservationBillingOwnershipInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectCapacityReservationBillingOwnershipOutput`. + """ + return self._invoke( + input, _models.REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP, [], plugins + ) + + def reject_transit_gateway_client_vpn_attachment( + self, + input: RejectTransitGatewayClientVpnAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayClientVpnAttachmentOutput: + """ + Rejects a Transit Gateway attachment request for a Client VPN endpoint. + The Transit Gateway owner can reject the attachment request to prevent + the Client VPN endpoint from routing traffic through the Transit + Gateway. + + Args: + input: + An instance of `RejectTransitGatewayClientVpnAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayClientVpnAttachmentOutput`. + """ + return self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT, [], plugins + ) + + def reject_transit_gateway_multicast_domain_associations( + self, + input: RejectTransitGatewayMulticastDomainAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayMulticastDomainAssociationsOutput: + """ + Rejects a request to associate cross-account subnets with a transit + gateway multicast domain. + + Args: + input: + An instance of `RejectTransitGatewayMulticastDomainAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayMulticastDomainAssociationsOutput`. + """ + return self._invoke( + input, + _models.REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS, + [], + plugins, + ) + + def reject_transit_gateway_peering_attachment( + self, + input: RejectTransitGatewayPeeringAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayPeeringAttachmentOutput: + """ + Rejects a transit gateway peering attachment request. + + Args: + input: + An instance of `RejectTransitGatewayPeeringAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayPeeringAttachmentOutput`. + """ + return self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT, [], plugins + ) + + def reject_transit_gateway_vpc_attachment( + self, + input: RejectTransitGatewayVpcAttachmentInput, + plugins: list[Plugin] | None = None, + ) -> RejectTransitGatewayVpcAttachmentOutput: + """ + Rejects a request to attach a VPC to a transit gateway. + + The VPC attachment must be in the `pendingAcceptance` state. Use + DescribeTransitGatewayVpcAttachments to view your pending VPC attachment + requests. Use AcceptTransitGatewayVpcAttachment to accept a VPC + attachment request. + + Args: + input: + An instance of `RejectTransitGatewayVpcAttachmentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectTransitGatewayVpcAttachmentOutput`. + """ + return self._invoke( + input, _models.REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT, [], plugins + ) + + def reject_vpc_endpoint_connections( + self, + input: RejectVpcEndpointConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> RejectVpcEndpointConnectionsOutput: + """ + Rejects VPC endpoint connection requests to your VPC endpoint service. + + Args: + input: + An instance of `RejectVpcEndpointConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectVpcEndpointConnectionsOutput`. + """ + return self._invoke(input, _models.REJECT_VPC_ENDPOINT_CONNECTIONS, [], plugins) + + def reject_vpc_peering_connection( + self, + input: RejectVpcPeeringConnectionInput, + plugins: list[Plugin] | None = None, + ) -> RejectVpcPeeringConnectionOutput: + """ + Rejects a VPC peering connection request. The VPC peering connection + must be in the `pending-acceptance` state. Use the + DescribeVpcPeeringConnections request to view your outstanding VPC + peering connection requests. To delete an active VPC peering connection, + or to delete a VPC peering connection request that you initiated, use + DeleteVpcPeeringConnection. + + Args: + input: + An instance of `RejectVpcPeeringConnectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectVpcPeeringConnectionOutput`. + """ + return self._invoke(input, _models.REJECT_VPC_PEERING_CONNECTION, [], plugins) + + def release_address( + self, + input: ReleaseAddressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ReleaseAddressOutput: + """ + Releases the specified Elastic IP address. + + [Default VPC] Releasing an Elastic IP address automatically + disassociates it from any instance that it's associated with. + Alternatively, you can disassociate an Elastic IP address without + releasing it. + + [Nondefault VPC] You must disassociate the Elastic IP address before + you can release it. Otherwise, Amazon EC2 returns an error + (`InvalidIPAddress.InUse`). + + After releasing an Elastic IP address, it is released to the IP address + pool. Be sure to update your DNS records and any servers or devices that + communicate with the address. If you attempt to release an Elastic IP + address that you already released, you'll get an `AuthFailure` error if + the address is already allocated to another Amazon Web Services account. + + After you release an Elastic IP address, you might be able to recover + it. For more information, see [Release an Elastic IP + address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing-eips-releasing.html). + + Args: + input: + An instance of `ReleaseAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseAddressOutput`. + """ + return self._invoke(input, _models.RELEASE_ADDRESS, [], plugins) + + def release_hosts( + self, input: ReleaseHostsInput, plugins: list[Plugin] | None = None + ) -> ReleaseHostsOutput: + """ + When you no longer want to use an On-Demand Dedicated Host it can be + released. On-Demand billing is stopped and the host goes into `released` + state. The host ID of Dedicated Hosts that have been released can no + longer be specified in another request, for example, to modify the host. + You must stop or terminate all instances on a host before it can be + released. + + When Dedicated Hosts are released, it may take some time for them to + stop counting toward your limit and you may receive capacity errors when + trying to allocate new Dedicated Hosts. Wait a few minutes and then try + again. + + Released hosts still appear in a DescribeHosts response. + + Args: + input: + An instance of `ReleaseHostsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseHostsOutput`. + """ + return self._invoke(input, _models.RELEASE_HOSTS, [], plugins) + + def release_ipam_pool_allocation( + self, input: ReleaseIpamPoolAllocationInput, plugins: list[Plugin] | None = None + ) -> ReleaseIpamPoolAllocationOutput: + """ + Release an allocation within an IPAM pool. The Region you use should be + the IPAM pool locale. The locale is the Amazon Web Services Region where + this IPAM pool is available for allocations. You can only use this + action to release manual allocations. To remove an allocation for a + resource without deleting the resource, set its monitored state to false + using + [ModifyIpamResourceCidr](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyIpamResourceCidr.html). + For more information, see [Release an + allocation](https://docs.aws.amazon.com/vpc/latest/ipam/release-alloc-ipam.html) + in the *Amazon VPC IPAM User Guide*. + + Note: + All EC2 API actions follow an [eventual + consistency](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html) + model. + + Args: + input: + An instance of `ReleaseIpamPoolAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReleaseIpamPoolAllocationOutput`. + """ + return self._invoke(input, _models.RELEASE_IPAM_POOL_ALLOCATION, [], plugins) + + def replace_iam_instance_profile_association( + self, + input: ReplaceIamInstanceProfileAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceIamInstanceProfileAssociationOutput: + """ + Replaces an IAM instance profile for the specified running instance. You + can use this action to change the IAM instance profile that's + associated with an instance without having to disassociate the existing + IAM instance profile first. + + Use DescribeIamInstanceProfileAssociations to get the association ID. + + Args: + input: + An instance of `ReplaceIamInstanceProfileAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceIamInstanceProfileAssociationOutput`. + """ + return self._invoke( + input, _models.REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION, [], plugins + ) + + def replace_image_criteria_in_allowed_images_settings( + self, + input: ReplaceImageCriteriaInAllowedImagesSettingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ReplaceImageCriteriaInAllowedImagesSettingsOutput: + """ + Sets or replaces the criteria for Allowed AMIs. + + The `ImageCriteria` can include up to: + + - 10 `ImageCriterion` + + Note: + The Allowed AMIs feature does not restrict the AMIs owned by your + account. Regardless of the criteria you set, the AMIs created by your + account will always be discoverable and usable by users in your account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + + Args: + input: + An instance of `ReplaceImageCriteriaInAllowedImagesSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceImageCriteriaInAllowedImagesSettingsOutput`. + """ + return self._invoke( + input, + _models.REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS, + [], + plugins, + ) + + def replace_image_instance_type_specification( + self, + input: ReplaceImageInstanceTypeSpecificationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceImageInstanceTypeSpecificationOutput: + """ + Replaces or removes the instance type specification for an AMI. The + instance type specification defines which instance types are compatible + with the AMI. + + When you launch an instance using + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), + Amazon EC2 validates the requested instance type against the AMI's + instance type specification. If the instance type is not compatible, the + request fails with an `InvalidParameterCombination` error. + + You can specify supported instance types, unsupported instance types, or + both. The evaluation logic is as follows: + + - No specification set -- all instance types are allowed. + + - Only `UnsupportedInstanceTypes` set -- All instance types are allowed + except those that match the unsupported list. + + - `SupportedInstanceTypes` set -- The instance type must match the + supported list and must not match the unsupported list. + + Instance type entries support wildcard patterns using `*` (for example, + `t3.*` matches all t3 sizes). + + To remove an existing instance type specification, omit the + `InstanceTypeSpecification` parameter or set it to `null`. + + To set the instance type specification, you must be the AMI owner. You + cannot set an instance type specification on an AMI that is listed in + Amazon Web Services Marketplace, and you cannot list an AMI in Amazon + Web Services Marketplace if it has an instance type specification set. + + Args: + input: + An instance of `ReplaceImageInstanceTypeSpecificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceImageInstanceTypeSpecificationOutput`. + """ + return self._invoke( + input, _models.REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION, [], plugins + ) + + def replace_network_acl_association( + self, + input: ReplaceNetworkAclAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceNetworkAclAssociationOutput: + """ + Changes which network ACL a subnet is associated with. By default when + you create a subnet, it's automatically associated with the default + network ACL. For more information, see [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + This is an idempotent operation. + + Args: + input: + An instance of `ReplaceNetworkAclAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceNetworkAclAssociationOutput`. + """ + return self._invoke(input, _models.REPLACE_NETWORK_ACL_ASSOCIATION, [], plugins) + + def replace_network_acl_entry( + self, input: ReplaceNetworkAclEntryInput, plugins: list[Plugin] | None = None + ) -> ReplaceNetworkAclEntryOutput: + """ + Replaces an entry (rule) in a network ACL. For more information, see + [Network + ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ReplaceNetworkAclEntryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceNetworkAclEntryOutput`. + """ + return self._invoke(input, _models.REPLACE_NETWORK_ACL_ENTRY, [], plugins) + + def replace_route( + self, input: ReplaceRouteInput, plugins: list[Plugin] | None = None + ) -> ReplaceRouteOutput: + """ + Replaces an existing route within a route table in a VPC. + + You must specify either a destination CIDR block or a prefix list ID. + You must also specify exactly one of the resources from the parameter + list, or reset the local route to its default target. + + For more information, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ReplaceRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceRouteOutput`. + """ + return self._invoke(input, _models.REPLACE_ROUTE, [], plugins) + + def replace_route_table_association( + self, + input: ReplaceRouteTableAssociationInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceRouteTableAssociationOutput: + """ + Changes the route table associated with a given subnet, internet + gateway, or virtual private gateway in a VPC. After the operation + completes, the subnet or gateway uses the routes in the new route table. + For more information about route tables, see [Route + tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) + in the *Amazon VPC User Guide*. + + You can also use this operation to change which table is the main route + table in the VPC. Specify the main route table's association ID and the + route table ID of the new main route table. + + Args: + input: + An instance of `ReplaceRouteTableAssociationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceRouteTableAssociationOutput`. + """ + return self._invoke(input, _models.REPLACE_ROUTE_TABLE_ASSOCIATION, [], plugins) + + def replace_transit_gateway_route( + self, + input: ReplaceTransitGatewayRouteInput, + plugins: list[Plugin] | None = None, + ) -> ReplaceTransitGatewayRouteOutput: + """ + Replaces the specified route in the specified transit gateway route + table. + + Args: + input: + An instance of `ReplaceTransitGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceTransitGatewayRouteOutput`. + """ + return self._invoke(input, _models.REPLACE_TRANSIT_GATEWAY_ROUTE, [], plugins) + + def replace_vpn_tunnel( + self, input: ReplaceVpnTunnelInput, plugins: list[Plugin] | None = None + ) -> ReplaceVpnTunnelOutput: + """ + Trigger replacement of specified VPN tunnel. + + Args: + input: + An instance of `ReplaceVpnTunnelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplaceVpnTunnelOutput`. + """ + return self._invoke(input, _models.REPLACE_VPN_TUNNEL, [], plugins) + + def report_instance_status( + self, input: ReportInstanceStatusInput, plugins: list[Plugin] | None = None + ) -> ReportInstanceStatusOutput: + """ + Submits feedback about the status of an instance. The instance must be + in the `running` state. If your experience with the instance differs + from the instance status returned by DescribeInstanceStatus, use + ReportInstanceStatus to report your experience with the instance. Amazon + EC2 collects this information to improve the accuracy of status checks. + + Use of this action does not change the value returned by + DescribeInstanceStatus. + + Args: + input: + An instance of `ReportInstanceStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReportInstanceStatusOutput`. + """ + return self._invoke(input, _models.REPORT_INSTANCE_STATUS, [], plugins) + + def request_spot_fleet( + self, input: RequestSpotFleetInput, plugins: list[Plugin] | None = None + ) -> RequestSpotFleetOutput: + """ + Creates a Spot Fleet request. + + The Spot Fleet request specifies the total target capacity and the + On-Demand target capacity. Amazon EC2 calculates the difference between + the total capacity and On-Demand capacity, and launches the difference + as Spot capacity. + + You can submit a single request that includes multiple launch + specifications that vary by instance type, AMI, Availability Zone, or + subnet. + + By default, the Spot Fleet requests Spot Instances in the Spot Instance + pool where the price per unit is the lowest. Each launch specification + can include its own instance weighting that reflects the value of the + instance type to your application workload. + + Alternatively, you can specify that the Spot Fleet distribute the target + capacity across the Spot pools included in its launch specifications. By + ensuring that the Spot Instances in your Spot Fleet are in different + Spot pools, you can improve the availability of your fleet. + + You can specify tags for the Spot Fleet request and instances launched + by the fleet. You cannot tag other resource types in a Spot Fleet + request because only the `spot-fleet-request` and `instance` resource + types are supported. + + For more information, see [Spot Fleet + requests](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html) + in the *Amazon EC2 User Guide*. + + Warning: + We strongly discourage using the RequestSpotFleet API because it is a + legacy API with no planned investment. For options for requesting Spot + Instances, see [Which is the best Spot request method to + use?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RequestSpotFleetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestSpotFleetOutput`. + """ + return self._invoke(input, _models.REQUEST_SPOT_FLEET, [], plugins) + + def request_spot_instances( + self, + input: RequestSpotInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> RequestSpotInstancesOutput: + """ + Creates a Spot Instance request. + + For more information, see [Work with Spot + Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html) + in the *Amazon EC2 User Guide*. + + Warning: + We strongly discourage using the RequestSpotInstances API because it is + a legacy API with no planned investment. For options for requesting Spot + Instances, see [Which is the best Spot request method to + use?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RequestSpotInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RequestSpotInstancesOutput`. + """ + return self._invoke(input, _models.REQUEST_SPOT_INSTANCES, [], plugins) + + def reset_address_attribute( + self, input: ResetAddressAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetAddressAttributeOutput: + """ + Resets the attribute of the specified IP address. For requirements, see + [Using reverse DNS for email + applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). + + Args: + input: + An instance of `ResetAddressAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetAddressAttributeOutput`. + """ + return self._invoke(input, _models.RESET_ADDRESS_ATTRIBUTE, [], plugins) + + def reset_ebs_default_kms_key_id( + self, + input: ResetEbsDefaultKmsKeyIdInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ResetEbsDefaultKmsKeyIdOutput: + """ + Resets the default KMS key for EBS encryption for your account in this + Region to the Amazon Web Services managed KMS key for EBS. + + After resetting the default KMS key to the Amazon Web Services managed + KMS key, you can continue to encrypt by a customer managed KMS key by + specifying it when you create the volume. For more information, see + [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ResetEbsDefaultKmsKeyIdInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetEbsDefaultKmsKeyIdOutput`. + """ + return self._invoke(input, _models.RESET_EBS_DEFAULT_KMS_KEY_ID, [], plugins) + + def reset_fpga_image_attribute( + self, input: ResetFpgaImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetFpgaImageAttributeOutput: + """ + Resets the specified attribute of the specified Amazon FPGA Image (AFI) + to its default value. You can only reset the load permission attribute. + + Args: + input: + An instance of `ResetFpgaImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetFpgaImageAttributeOutput`. + """ + return self._invoke(input, _models.RESET_FPGA_IMAGE_ATTRIBUTE, [], plugins) + + def reset_image_attribute( + self, input: ResetImageAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetImageAttributeOutput: + """ + Resets an attribute of an AMI to its default value. + + Args: + input: + An instance of `ResetImageAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetImageAttributeOutput`. + """ + return self._invoke(input, _models.RESET_IMAGE_ATTRIBUTE, [], plugins) + + def reset_instance_attribute( + self, input: ResetInstanceAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetInstanceAttributeOutput: + """ + Resets an attribute of an instance to its default value. To reset the + `kernel` or `ramdisk`, the instance must be in a stopped state. To reset + the `sourceDestCheck`, the instance can be either running or stopped. + + The `sourceDestCheck` attribute controls whether source/destination + checking is enabled. The default value is `true`, which means checking + is enabled. This value must be `false` for a NAT instance to perform + NAT. For more information, see [NAT + instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ResetInstanceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetInstanceAttributeOutput`. + """ + return self._invoke(input, _models.RESET_INSTANCE_ATTRIBUTE, [], plugins) + + def reset_network_interface_attribute( + self, + input: ResetNetworkInterfaceAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ResetNetworkInterfaceAttributeOutput: + """ + Resets a network interface attribute. You can specify only one attribute + at a time. + + Args: + input: + An instance of `ResetNetworkInterfaceAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetNetworkInterfaceAttributeOutput`. + """ + return self._invoke( + input, _models.RESET_NETWORK_INTERFACE_ATTRIBUTE, [], plugins + ) + + def reset_snapshot_attribute( + self, input: ResetSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ResetSnapshotAttributeOutput: + """ + Resets permission settings for the specified snapshot. + + For more information about modifying snapshot permissions, see [Share a + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `ResetSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetSnapshotAttributeOutput`. + """ + return self._invoke(input, _models.RESET_SNAPSHOT_ATTRIBUTE, [], plugins) + + def restore_address_to_classic( + self, input: RestoreAddressToClassicInput, plugins: list[Plugin] | None = None + ) -> RestoreAddressToClassicOutput: + """ + Note: + This action is deprecated. + + Restores an Elastic IP address that was previously moved to the EC2-VPC + platform back to the EC2-Classic platform. You cannot move an Elastic IP + address that was originally allocated for use in EC2-VPC. The Elastic IP + address must not be associated with an instance or network interface. + + Args: + input: + An instance of `RestoreAddressToClassicInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreAddressToClassicOutput`. + """ + return self._invoke(input, _models.RESTORE_ADDRESS_TO_CLASSIC, [], plugins) + + def restore_image_from_recycle_bin( + self, + input: RestoreImageFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreImageFromRecycleBinOutput: + """ + Restores an AMI from the Recycle Bin. For more information, see [Recover + deleted Amazon EBS snapshots and EBS-back AMIs with Recycle + Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `RestoreImageFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreImageFromRecycleBinOutput`. + """ + return self._invoke(input, _models.RESTORE_IMAGE_FROM_RECYCLE_BIN, [], plugins) + + def restore_managed_prefix_list_version( + self, + input: RestoreManagedPrefixListVersionInput, + plugins: list[Plugin] | None = None, + ) -> RestoreManagedPrefixListVersionOutput: + """ + Restores the entries from a previous version of a managed prefix list to + a new version of the prefix list. + + Args: + input: + An instance of `RestoreManagedPrefixListVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreManagedPrefixListVersionOutput`. + """ + return self._invoke( + input, _models.RESTORE_MANAGED_PREFIX_LIST_VERSION, [], plugins + ) + + def restore_snapshot_from_recycle_bin( + self, + input: RestoreSnapshotFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreSnapshotFromRecycleBinOutput: + """ + Restores a snapshot from the Recycle Bin. For more information, see + [Restore snapshots from the Recycle + Bin](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-snaps.html#recycle-bin-restore-snaps) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreSnapshotFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreSnapshotFromRecycleBinOutput`. + """ + return self._invoke( + input, _models.RESTORE_SNAPSHOT_FROM_RECYCLE_BIN, [], plugins + ) + + def restore_snapshot_tier( + self, input: RestoreSnapshotTierInput, plugins: list[Plugin] | None = None + ) -> RestoreSnapshotTierOutput: + """ + Restores an archived Amazon EBS snapshot for use temporarily or + permanently, or modifies the restore period or restore type for a + snapshot that was previously temporarily restored. + + For more information see [Restore an archived + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#restore-archived-snapshot) + and [modify the restore period or restore type for a temporarily + restored + snapshot](https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#modify-temp-restore-period) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreSnapshotTierInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreSnapshotTierOutput`. + """ + return self._invoke(input, _models.RESTORE_SNAPSHOT_TIER, [], plugins) + + def restore_volume_from_recycle_bin( + self, + input: RestoreVolumeFromRecycleBinInput, + plugins: list[Plugin] | None = None, + ) -> RestoreVolumeFromRecycleBinOutput: + """ + Restores a volume from the Recycle Bin. For more information, see + [Restore volumes from the Recycle + Bin](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-volumes.html#recycle-bin-restore-volumes) + in the *Amazon EBS User Guide*. + + Args: + input: + An instance of `RestoreVolumeFromRecycleBinInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreVolumeFromRecycleBinOutput`. + """ + return self._invoke(input, _models.RESTORE_VOLUME_FROM_RECYCLE_BIN, [], plugins) + + def revoke_client_vpn_ingress( + self, input: RevokeClientVpnIngressInput, plugins: list[Plugin] | None = None + ) -> RevokeClientVpnIngressOutput: + """ + Removes an ingress authorization rule from a Client VPN endpoint. + + Args: + input: + An instance of `RevokeClientVpnIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeClientVpnIngressOutput`. + """ + return self._invoke(input, _models.REVOKE_CLIENT_VPN_INGRESS, [], plugins) + + def revoke_security_group_egress( + self, input: RevokeSecurityGroupEgressInput, plugins: list[Plugin] | None = None + ) -> RevokeSecurityGroupEgressOutput: + """ + Removes the specified outbound (egress) rules from the specified + security group. + + You can specify rules using either rule IDs or security group rule + properties. If you use rule properties, the values that you specify (for + example, ports) must match the existing rule's values exactly. Each + rule has a protocol, from and to ports, and destination (CIDR range, + security group, or prefix list). For the TCP and UDP protocols, you must + also specify the destination port or range of ports. For the ICMP + protocol, you must also specify the ICMP type and code. If the security + group rule has a description, you do not need to specify the description + to revoke the rule. + + For a default VPC, if the values you specify do not match the existing + rule's values, no error is returned, and the output describes the + security group rules that were not revoked. + + Amazon Web Services recommends that you describe the security group to + verify that the rules were removed. + + Rule changes are propagated to instances within the security group as + quickly as possible. However, a small delay might occur. + + Args: + input: + An instance of `RevokeSecurityGroupEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeSecurityGroupEgressOutput`. + """ + return self._invoke(input, _models.REVOKE_SECURITY_GROUP_EGRESS, [], plugins) + + def revoke_security_group_ingress( + self, + input: RevokeSecurityGroupIngressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> RevokeSecurityGroupIngressOutput: + """ + Removes the specified inbound (ingress) rules from a security group. + + You can specify rules using either rule IDs or security group rule + properties. If you use rule properties, the values that you specify (for + example, ports) must match the existing rule's values exactly. Each + rule has a protocol, from and to ports, and source (CIDR range, security + group, or prefix list). For the TCP and UDP protocols, you must also + specify the destination port or range of ports. For the ICMP protocol, + you must also specify the ICMP type and code. If the security group rule + has a description, you do not need to specify the description to revoke + the rule. + + For a default VPC, if the values you specify do not match the existing + rule's values, no error is returned, and the output describes the + security group rules that were not revoked. + + For a non-default VPC, if the values you specify do not match the + existing rule's values, an `InvalidPermission.NotFound` client error is + returned, and no rules are revoked. + + Amazon Web Services recommends that you describe the security group to + verify that the rules were removed. + + Rule changes are propagated to instances within the security group as + quickly as possible. However, a small delay might occur. + + Args: + input: + An instance of `RevokeSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeSecurityGroupIngressOutput`. + """ + return self._invoke(input, _models.REVOKE_SECURITY_GROUP_INGRESS, [], plugins) + + def run_instances( + self, input: RunInstancesInput, plugins: list[Plugin] | None = None + ) -> RunInstancesOutput: + """ + Launches the specified number of instances using an AMI for which you + have permissions. + + You can specify a number of options, or leave the default options. The + following rules apply: + + - If you don't specify a subnet ID, we choose a default subnet from + your default VPC for you. If you don't have a default VPC, you must + specify a subnet ID in the request. + + - All instances have a network interface with a primary private IPv4 + address. If you don't specify this address, we choose one from the + IPv4 range of your subnet. + + - Not all instance types support IPv6 addresses. For more information, + see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html). + + - If you don't specify a security group ID, we use the default security + group for the VPC. For more information, see [Security + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html). + + - If any of the AMIs have a product code attached for which the user has + not subscribed, the request fails. + + You can create a [launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html), + which is a resource that contains the parameters to launch an instance. + When you launch an instance using RunInstances, you can specify the + launch template instead of specifying the launch parameters. + + To ensure faster instance launches, break up large requests into smaller + batches. For example, create five separate launch requests for 100 + instances each instead of one launch request for 500 instances. + + `RunInstances` is subject to both request rate limiting and resource + rate limiting. For more information, see [Request + throttling](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-throttling.html). + + An instance is ready for you to use when it's in the `running` state. + You can check the state of your instance using DescribeInstances. You + can tag instances and EBS volumes during launch, after launch, or both. + For more information, see CreateTags and [Tagging your Amazon EC2 + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html). + + Linux instances have access to the public key of the key pair at boot. + You can use this key to provide secure access to the instance. Amazon + EC2 public images use this feature to provide secure access without + passwords. For more information, see [Key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). + + For troubleshooting, see [What to do if an instance immediately + terminates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html), + and [Troubleshooting connecting to your + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html). + + Args: + input: + An instance of `RunInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunInstancesOutput`. + """ + return self._invoke(input, _models.RUN_INSTANCES, [], plugins) + + def run_scheduled_instances( + self, input: RunScheduledInstancesInput, plugins: list[Plugin] | None = None + ) -> RunScheduledInstancesOutput: + """ + Launches the specified Scheduled Instances. + + Before you can launch a Scheduled Instance, you must purchase it and + obtain an identifier using PurchaseScheduledInstances. + + You must launch a Scheduled Instance during its scheduled time period. + You can't stop or reboot a Scheduled Instance, but you can terminate it + as needed. If you terminate a Scheduled Instance before the current + scheduled time period ends, you can launch it again after a few minutes. + + Args: + input: + An instance of `RunScheduledInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunScheduledInstancesOutput`. + """ + return self._invoke(input, _models.RUN_SCHEDULED_INSTANCES, [], plugins) + + def search_local_gateway_routes( + self, input: SearchLocalGatewayRoutesInput, plugins: list[Plugin] | None = None + ) -> SearchLocalGatewayRoutesOutput: + """ + Searches for routes in the specified local gateway route table. + + Args: + input: + An instance of `SearchLocalGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchLocalGatewayRoutesOutput`. + """ + return self._invoke(input, _models.SEARCH_LOCAL_GATEWAY_ROUTES, [], plugins) + + def search_transit_gateway_multicast_groups( + self, + input: SearchTransitGatewayMulticastGroupsInput, + plugins: list[Plugin] | None = None, + ) -> SearchTransitGatewayMulticastGroupsOutput: + """ + Searches one or more transit gateway multicast groups and returns the + group membership information. + + Args: + input: + An instance of `SearchTransitGatewayMulticastGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchTransitGatewayMulticastGroupsOutput`. + """ + return self._invoke( + input, _models.SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS, [], plugins + ) + + def search_transit_gateway_routes( + self, + input: SearchTransitGatewayRoutesInput, + plugins: list[Plugin] | None = None, + ) -> SearchTransitGatewayRoutesOutput: + """ + Searches for routes in the specified transit gateway route table. + + Args: + input: + An instance of `SearchTransitGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SearchTransitGatewayRoutesOutput`. + """ + return self._invoke(input, _models.SEARCH_TRANSIT_GATEWAY_ROUTES, [], plugins) + + def send_diagnostic_interrupt( + self, input: SendDiagnosticInterruptInput, plugins: list[Plugin] | None = None + ) -> SendDiagnosticInterruptOutput: + """ + Sends a diagnostic interrupt to the specified Amazon EC2 instance to + trigger a *kernel panic* (on Linux instances), or a *blue screen*/*stop + error* (on Windows instances). For instances based on Intel and AMD + processors, the interrupt is received as a *non-maskable interrupt* + (NMI). + + In general, the operating system crashes and reboots when a kernel panic + or stop error is triggered. The operating system can also be configured + to perform diagnostic tasks, such as generating a memory dump file, + loading a secondary kernel, or obtaining a call trace. + + Before sending a diagnostic interrupt to your instance, ensure that its + operating system is configured to perform the required diagnostic tasks. + + For more information about configuring your operating system to generate + a crash dump when a kernel panic or stop error occurs, see [Send a + diagnostic interrupt (for advanced + users)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `SendDiagnosticInterruptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SendDiagnosticInterruptOutput`. + """ + return self._invoke(input, _models.SEND_DIAGNOSTIC_INTERRUPT, [], plugins) + + def start_declarative_policies_report( + self, + input: StartDeclarativePoliciesReportInput, + plugins: list[Plugin] | None = None, + ) -> StartDeclarativePoliciesReportOutput: + """ + Generates an account status report. The report is generated + asynchronously, and can take several hours to complete. + + The report provides the current status of all attributes supported by + declarative policies for the accounts within the specified scope. The + scope is determined by the specified `TargetId`, which can represent an + individual account, or all the accounts that fall under the specified + organizational unit (OU) or root (the entire Amazon Web Services + Organization). + + The report is saved to your specified S3 bucket, using the following + path structure (with the capitalized placeholders representing your + specific values): + + `s3://AMZN-S3-DEMO-BUCKET/YOUR-OPTIONAL-S3-PREFIX/ec2_TARGETID_REPORTID_YYYYMMDDTHHMMZ.csv` + + **Prerequisites for generating a report** + + - The `StartDeclarativePoliciesReport` API can only be called by the + management account or delegated administrators for the organization. + + - An S3 bucket must be available before generating the report (you can + create a new one or use an existing one), it must be in the same + Region where the report generation request is made, and it must have + an appropriate bucket policy. For a sample S3 policy, see *Sample + Amazon S3 policy* under + [Examples](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartDeclarativePoliciesReport.html#API_StartDeclarativePoliciesReport_Examples). + + - Trusted access must be enabled for the service for which the + declarative policy will enforce a baseline configuration. If you use + the Amazon Web Services Organizations console, this is done + automatically when you enable declarative policies. The API uses the + following service principal to identify the EC2 service: + `ec2.amazonaws.com`. For more information on how to enable trusted + access with the Amazon Web Services CLI and Amazon Web Services SDKs, + see [Using Organizations with other Amazon Web Services + services](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) + in the *Amazon Web Services Organizations User Guide*. + + - Only one report per organization can be generated at a time. + Attempting to generate a report while another is in progress will + result in an error. + + For more information, including the required IAM permissions to run this + API, see [Generating the account status report for declarative + policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html) + in the *Amazon Web Services Organizations User Guide*. + + Args: + input: + An instance of `StartDeclarativePoliciesReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDeclarativePoliciesReportOutput`. + """ + return self._invoke( + input, _models.START_DECLARATIVE_POLICIES_REPORT, [], plugins + ) + + def start_instances( + self, input: StartInstancesInput, plugins: list[Plugin] | None = None + ) -> StartInstancesOutput: + """ + Starts an Amazon EBS-backed instance that you've previously stopped. + + Instances that use Amazon EBS volumes as their root devices can be + quickly stopped and started. When an instance is stopped, the compute + resources are released and you are not billed for instance usage. + However, your root partition Amazon EBS volume remains and continues to + persist your data, and you are charged for Amazon EBS volume usage. You + can restart your instance at any time. Every time you start your + instance, Amazon EC2 charges a one-minute minimum for instance usage, + and thereafter charges per second for instance usage. + + Before stopping an instance, make sure it is in a state from which it + can be restarted. Stopping an instance does not preserve data stored in + RAM. + + Performing this operation on an instance that uses an instance store as + its root device returns an error. + + If you attempt to start a T3 instance with `host` tenancy and the + `unlimited` CPU credit option, the request fails. The `unlimited` CPU + credit option is not supported on Dedicated Hosts. Before you start the + instance, either change its CPU credit option to `standard`, or change + its tenancy to `default` or `dedicated`. + + For more information, see [Stop and start Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `StartInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartInstancesOutput`. + """ + return self._invoke(input, _models.START_INSTANCES, [], plugins) + + def start_network_insights_access_scope_analysis( + self, + input: StartNetworkInsightsAccessScopeAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> StartNetworkInsightsAccessScopeAnalysisOutput: + """ + Starts analyzing the specified Network Access Scope. + + Args: + input: + An instance of `StartNetworkInsightsAccessScopeAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartNetworkInsightsAccessScopeAnalysisOutput`. + """ + return self._invoke( + input, _models.START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS, [], plugins + ) + + def start_network_insights_analysis( + self, + input: StartNetworkInsightsAnalysisInput, + plugins: list[Plugin] | None = None, + ) -> StartNetworkInsightsAnalysisOutput: + """ + Starts analyzing the specified path. If the path is reachable, the + operation returns the shortest feasible path. + + Args: + input: + An instance of `StartNetworkInsightsAnalysisInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartNetworkInsightsAnalysisOutput`. + """ + return self._invoke(input, _models.START_NETWORK_INSIGHTS_ANALYSIS, [], plugins) + + def start_vpc_endpoint_service_private_dns_verification( + self, + input: StartVpcEndpointServicePrivateDnsVerificationInput, + plugins: list[Plugin] | None = None, + ) -> StartVpcEndpointServicePrivateDnsVerificationOutput: + """ + Initiates the verification process to prove that the service provider + owns the private DNS name domain for the endpoint service. + + The service provider must successfully perform the verification before + the consumer can use the name to access the service. + + Before the service provider runs this command, they must add a record to + the DNS server. + + Args: + input: + An instance of `StartVpcEndpointServicePrivateDnsVerificationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartVpcEndpointServicePrivateDnsVerificationOutput`. + """ + return self._invoke( + input, + _models.START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION, + [], + plugins, + ) + + def stop_instances( + self, input: StopInstancesInput, plugins: list[Plugin] | None = None + ) -> StopInstancesOutput: + """ + Stops an Amazon EBS-backed instance. You can restart your instance at + any time using the + [StartInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html) + API. For more information, see [Stop and start Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) + in the *Amazon EC2 User Guide*. + + When you stop or hibernate an instance, we shut it down. By default, + this includes a graceful operating system (OS) shutdown. To bypass the + graceful shutdown, use the `skipOsShutdown` parameter; however, this + might risk data integrity. + + You can use the StopInstances operation together with the `Hibernate` + parameter to hibernate an instance if the instance is [enabled for + hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html) + and meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + Stopping an instance doesn't preserve data stored in RAM, while + hibernation does. If hibernation fails, a normal shutdown occurs. For + more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + + If your instance appears stuck in the `stopping` state, there might be + an issue with the underlying host computer. You can use the + StopInstances operation together with the Force parameter to force stop + your instance. For more information, see [Troubleshoot Amazon EC2 + instance stop + issues](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) + in the *Amazon EC2 User Guide*. + + Stopping and hibernating an instance differs from rebooting or + terminating it. For example, a stopped or hibernated instance retains + its root volume and any data volumes, unlike terminated instances where + these volumes are automatically deleted. For more information about the + differences between stopping, hibernating, rebooting, and terminating + instances, see [Amazon EC2 instance state + changes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + We don't charge for instance usage or data transfer fees when an + instance is stopped. However, the root volume and any data volumes + remain and continue to persist your data, and you're charged for volume + usage. Every time you start your instance, Amazon EC2 charges a + one-minute minimum for instance usage, followed by per-second billing. + + You can't stop or hibernate instance store-backed instances. + + Args: + input: + An instance of `StopInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopInstancesOutput`. + """ + return self._invoke(input, _models.STOP_INSTANCES, [], plugins) + + def terminate_client_vpn_connections( + self, + input: TerminateClientVpnConnectionsInput, + plugins: list[Plugin] | None = None, + ) -> TerminateClientVpnConnectionsOutput: + """ + Terminates active Client VPN endpoint connections. This action can be + used to terminate a specific client connection, or up to five + connections established by a specific user. + + Args: + input: + An instance of `TerminateClientVpnConnectionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TerminateClientVpnConnectionsOutput`. + """ + return self._invoke( + input, _models.TERMINATE_CLIENT_VPN_CONNECTIONS, [], plugins + ) + + def terminate_instances( + self, input: TerminateInstancesInput, plugins: list[Plugin] | None = None + ) -> TerminateInstancesOutput: + """ + Terminates (deletes) the specified instances. This operation is + [idempotent](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html); + if you terminate an instance more than once, each call succeeds. + + Warning: + **Terminating an instance is permanent and irreversible.** + + After you terminate an instance, you can no longer connect to it, and it + can't be recovered. All attached Amazon EBS volumes that are configured + to be deleted on termination are also permanently deleted and can't be + recovered. All data stored on instance store volumes is permanently + lost. For more information, see [How instance termination + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html). + + Before you terminate an instance, ensure that you have backed up all + data that you need to retain after the termination to persistent + storage. + + If you specify multiple instances and the request fails (for example, + because of a single incorrect instance ID), none of the instances are + terminated. + + If you terminate multiple instances across multiple Availability Zones, + and one or more of the specified instances are enabled for termination + protection, the request fails with the following results: + + - The specified instances that are in the same Availability Zone as the + protected instance are not terminated. + + - The specified instances that are in different Availability Zones, + where no other specified instances are protected, are successfully + terminated. + + For example, say you have the following instances: + + - Instance A: `us-east-1a`; Not protected + + - Instance B: `us-east-1a`; Not protected + + - Instance C: `us-east-1b`; Protected + + - Instance D: `us-east-1b`; not protected + + If you attempt to terminate all of these instances in the same request, + the request reports failure with the following results: + + - Instance A and Instance B are successfully terminated because none of + the specified instances in `us-east-1a` are enabled for termination + protection. + + - Instance C and Instance D fail to terminate because at least one of + the specified instances in `us-east-1b` (Instance C) is enabled for + termination protection. + + Terminated instances remain visible after termination (for approximately + one hour). + + By default, Amazon EC2 deletes all EBS volumes that were attached when + the instance launched. Volumes attached after instance launch continue + running. + + By default, the TerminateInstances operation includes a graceful + operating system (OS) shutdown. To bypass the graceful shutdown, use the + `skipOsShutdown` parameter; however, this might risk data integrity. + + You can stop, start, and terminate EBS-backed instances. You can only + terminate instance store-backed instances. What happens to an instance + differs if you stop or terminate it. For example, when you stop an + instance, the root device and any other devices attached to the instance + persist. When you terminate an instance, any attached EBS volumes with + the `DeleteOnTermination` block device mapping parameter set to `true` + are automatically deleted. For more information about the differences + between stopping and terminating instances, see [Amazon EC2 instance + state + changes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) + in the *Amazon EC2 User Guide*. + + When you terminate an instance, we attempt to terminate it forcibly + after a short while. If your instance appears stuck in the shutting-down + state after a period of time, there might be an issue with the + underlying host computer. For more information about terminating and + troubleshooting terminating your instances, see [Terminate Amazon EC2 + instances](https://docs.aws.amazon.com/) and [Troubleshooting + terminating your + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `TerminateInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TerminateInstancesOutput`. + """ + return self._invoke(input, _models.TERMINATE_INSTANCES, [], plugins) + + def unassign_ipv6_addresses( + self, input: UnassignIpv6AddressesInput, plugins: list[Plugin] | None = None + ) -> UnassignIpv6AddressesOutput: + """ + Unassigns the specified IPv6 addresses or Prefix Delegation prefixes + from a network interface. + + Args: + input: + An instance of `UnassignIpv6AddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignIpv6AddressesOutput`. + """ + return self._invoke(input, _models.UNASSIGN_IPV6_ADDRESSES, [], plugins) + + def unassign_private_ip_addresses( + self, + input: UnassignPrivateIpAddressesInput, + plugins: list[Plugin] | None = None, + ) -> UnassignPrivateIpAddressesOutput: + """ + Unassigns the specified secondary private IP addresses or IPv4 Prefix + Delegation prefixes from a network interface. + + Args: + input: + An instance of `UnassignPrivateIpAddressesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignPrivateIpAddressesOutput`. + """ + return self._invoke(input, _models.UNASSIGN_PRIVATE_IP_ADDRESSES, [], plugins) + + def unassign_private_nat_gateway_address( + self, + input: UnassignPrivateNatGatewayAddressInput, + plugins: list[Plugin] | None = None, + ) -> UnassignPrivateNatGatewayAddressOutput: + """ + Unassigns secondary private IPv4 addresses from a private NAT gateway. + You cannot unassign your primary private IP. For more information, see + [Edit secondary IP address + associations](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary) + in the *Amazon VPC User Guide*. + + While unassigning is in progress, you cannot assign/unassign additional + IP addresses while the connections are being drained. You are, however, + allowed to delete the NAT gateway. + + A private IP address will only be released at the end of + MaxDrainDurationSeconds. The private IP addresses stay associated and + support the existing connections, but do not support any new connections + (new connections are distributed across the remaining assigned private + IP address). After the existing connections drain out, the private IP + addresses are released. + + Args: + input: + An instance of `UnassignPrivateNatGatewayAddressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnassignPrivateNatGatewayAddressOutput`. + """ + return self._invoke( + input, _models.UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS, [], plugins + ) + + def unlock_snapshot( + self, input: UnlockSnapshotInput, plugins: list[Plugin] | None = None + ) -> UnlockSnapshotOutput: + """ + Unlocks a snapshot that is locked in governance mode or that is locked + in compliance mode but still in the cooling-off period. You can't + unlock a snapshot that is locked in compliance mode after the + cooling-off period has expired. + + Args: + input: + An instance of `UnlockSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnlockSnapshotOutput`. + """ + return self._invoke(input, _models.UNLOCK_SNAPSHOT, [], plugins) + + def unmonitor_instances( + self, input: UnmonitorInstancesInput, plugins: list[Plugin] | None = None + ) -> UnmonitorInstancesOutput: + """ + Disables detailed monitoring for a running instance. For more + information, see [Monitoring your instances and + volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html) + in the *Amazon EC2 User Guide*. + + Args: + input: + An instance of `UnmonitorInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UnmonitorInstancesOutput`. + """ + return self._invoke(input, _models.UNMONITOR_INSTANCES, [], plugins) + + def update_capacity_manager_monitored_tag_keys( + self, + input: UpdateCapacityManagerMonitoredTagKeysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> UpdateCapacityManagerMonitoredTagKeysOutput: + """ + Activates or deactivates tag keys for monitoring by EC2 Capacity + Manager. Activated tag keys are included as dimensions in capacity + metric data, enabling you to group and filter metrics by tag values. + + Args: + input: + An instance of `UpdateCapacityManagerMonitoredTagKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityManagerMonitoredTagKeysOutput`. + """ + return self._invoke( + input, _models.UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS, [], plugins + ) + + def update_capacity_manager_organizations_access( + self, + input: UpdateCapacityManagerOrganizationsAccessInput, + plugins: list[Plugin] | None = None, + ) -> UpdateCapacityManagerOrganizationsAccessOutput: + """ + Updates the Organizations access setting for EC2 Capacity Manager. This + controls whether Capacity Manager can aggregate data from all accounts + in your Amazon Web Services Organization or only from the current + account. + + Args: + input: + An instance of `UpdateCapacityManagerOrganizationsAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityManagerOrganizationsAccessOutput`. + """ + return self._invoke( + input, _models.UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS, [], plugins + ) + + def update_interruptible_capacity_reservation_allocation( + self, + input: UpdateInterruptibleCapacityReservationAllocationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateInterruptibleCapacityReservationAllocationOutput: + """ + Modifies the number of instances allocated to an interruptible + reservation, allowing you to add more capacity or reclaim capacity to + your source Capacity Reservation. + + Args: + input: + An instance of `UpdateInterruptibleCapacityReservationAllocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateInterruptibleCapacityReservationAllocationOutput`. + """ + return self._invoke( + input, + _models.UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION, + [], + plugins, + ) + + def update_security_group_rule_descriptions_egress( + self, + input: UpdateSecurityGroupRuleDescriptionsEgressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> UpdateSecurityGroupRuleDescriptionsEgressOutput: + """ + Updates the description of an egress (outbound) security group rule. You + can replace an existing description, or add a description to a rule that + did not have one previously. You can remove a description for a security + group rule by omitting the description parameter in the request. + + Args: + input: + An instance of `UpdateSecurityGroupRuleDescriptionsEgressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSecurityGroupRuleDescriptionsEgressOutput`. + """ + return self._invoke( + input, _models.UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS, [], plugins + ) + + def update_security_group_rule_descriptions_ingress( + self, + input: UpdateSecurityGroupRuleDescriptionsIngressInput | None = None, + plugins: list[Plugin] | None = None, + ) -> UpdateSecurityGroupRuleDescriptionsIngressOutput: + """ + Updates the description of an ingress (inbound) security group rule. You + can replace an existing description, or add a description to a rule that + did not have one previously. You can remove a description for a security + group rule by omitting the description parameter in the request. + + Args: + input: + An instance of `UpdateSecurityGroupRuleDescriptionsIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSecurityGroupRuleDescriptionsIngressOutput`. + """ + return self._invoke( + input, _models.UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS, [], plugins + ) + + def validate_security_group_quotas_for_interface( + self, + input: ValidateSecurityGroupQuotasForInterfaceInput, + plugins: list[Plugin] | None = None, + ) -> ValidateSecurityGroupQuotasForInterfaceOutput: + """ + Validates whether the specified security groups can be associated with a + single network interface. The operation checks Amazon Virtual Private + Cloud (Amazon VPC) quotas. It checks inbound or outbound rules per + security group and security groups per network interface. Only + authorized Amazon Web Services services can call this operation. + + For more information about security group quotas, see [Amazon VPC + quotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups) + in the *Amazon VPC User Guide*. + + Args: + input: + An instance of `ValidateSecurityGroupQuotasForInterfaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ValidateSecurityGroupQuotasForInterfaceOutput`. + """ + return self._invoke( + input, _models.VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE, [], plugins + ) + + def withdraw_byoip_cidr( + self, input: WithdrawByoipCidrInput, plugins: list[Plugin] | None = None + ) -> WithdrawByoipCidrOutput: + """ + Stops advertising an address range that is provisioned as an address + pool. + + You can perform this operation at most once every 10 seconds, even if + you specify different address ranges each time. + + It can take a few minutes before traffic to the specified addresses + stops routing to Amazon Web Services because of BGP propagation delays. + + Args: + input: + An instance of `WithdrawByoipCidrInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `WithdrawByoipCidrOutput`. + """ + return self._invoke(input, _models.WITHDRAW_BYOIP_CIDR, [], plugins) + + def _new_config(self) -> EC2Config: + return EC2Config.resolve() + + def _post_setup(self, config: EC2Config) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/config.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/config.py new file mode 100644 index 00000000..f6b38869 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/config.py @@ -0,0 +1,5015 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import Ec2QueryClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import AMAZON_EC2 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AcceptAddressTransferInput, + AcceptAddressTransferOutput, + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + AcceptVpcPeeringConnectionInput, + AcceptVpcPeeringConnectionOutput, + AdvertiseByoipCidrInput, + AdvertiseByoipCidrOutput, + AllocateAddressInput, + AllocateAddressOutput, + AllocateHostsInput, + AllocateHostsOutput, + AllocateIpamPoolCidrInput, + AllocateIpamPoolCidrOutput, + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + AssignIpv6AddressesInput, + AssignIpv6AddressesOutput, + AssignPrivateIpAddressesInput, + AssignPrivateIpAddressesOutput, + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + AssociateAddressInput, + AssociateAddressOutput, + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + AssociateDhcpOptionsInput, + AssociateDhcpOptionsOutput, + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + AssociateIpamByoasnInput, + AssociateIpamByoasnOutput, + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + AssociateNatGatewayAddressInput, + AssociateNatGatewayAddressOutput, + AssociateRouteServerInput, + AssociateRouteServerOutput, + AssociateRouteTableInput, + AssociateRouteTableOutput, + AssociateSecurityGroupVpcInput, + AssociateSecurityGroupVpcOutput, + AssociateSubnetCidrBlockInput, + AssociateSubnetCidrBlockOutput, + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + AssociateTrunkInterfaceInput, + AssociateTrunkInterfaceOutput, + AssociateVpcCidrBlockInput, + AssociateVpcCidrBlockOutput, + AttachClassicLinkVpcInput, + AttachClassicLinkVpcOutput, + AttachImageWatermarkInput, + AttachImageWatermarkOutput, + AttachInternetGatewayInput, + AttachInternetGatewayOutput, + AttachNetworkInterfaceInput, + AttachNetworkInterfaceOutput, + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + AttachVolumeInput, + AttachVolumeOutput, + AttachVpnGatewayInput, + AttachVpnGatewayOutput, + AuthorizeClientVpnIngressInput, + AuthorizeClientVpnIngressOutput, + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + BundleInstanceInput, + BundleInstanceOutput, + CancelBundleTaskInput, + CancelBundleTaskOutput, + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + CancelCapacityReservationInput, + CancelCapacityReservationOutput, + CancelConversionTaskInput, + CancelConversionTaskOutput, + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + CancelImportTaskInput, + CancelImportTaskOutput, + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + CancelSpotFleetRequestsInput, + CancelSpotFleetRequestsOutput, + CancelSpotInstanceRequestsInput, + CancelSpotInstanceRequestsOutput, + ConfirmProductInstanceInput, + ConfirmProductInstanceOutput, + CopyFpgaImageInput, + CopyFpgaImageOutput, + CopyImageInput, + CopyImageOutput, + CopySnapshotInput, + CopySnapshotOutput, + CopyVolumesInput, + CopyVolumesOutput, + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + CreateCapacityReservationInput, + CreateCapacityReservationOutput, + CreateCarrierGatewayInput, + CreateCarrierGatewayOutput, + CreateClientVpnEndpointInput, + CreateClientVpnEndpointOutput, + CreateClientVpnRouteInput, + CreateClientVpnRouteOutput, + CreateCoipCidrInput, + CreateCoipCidrOutput, + CreateCoipPoolInput, + CreateCoipPoolOutput, + CreateCustomerGatewayInput, + CreateCustomerGatewayOutput, + CreateDefaultSubnetInput, + CreateDefaultSubnetOutput, + CreateDefaultVpcInput, + CreateDefaultVpcOutput, + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + CreateDhcpOptionsInput, + CreateDhcpOptionsOutput, + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + CreateFleetInput, + CreateFleetOutput, + CreateFlowLogsInput, + CreateFlowLogsOutput, + CreateFpgaImageInput, + CreateFpgaImageOutput, + CreateImageInput, + CreateImageOutput, + CreateImageUsageReportInput, + CreateImageUsageReportOutput, + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + CreateInstanceEventWindowInput, + CreateInstanceEventWindowOutput, + CreateInstanceExportTaskInput, + CreateInstanceExportTaskOutput, + CreateInternetGatewayInput, + CreateInternetGatewayOutput, + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + CreateIpamInput, + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + CreateIpamOutput, + CreateIpamPolicyInput, + CreateIpamPolicyOutput, + CreateIpamPoolInput, + CreateIpamPoolOutput, + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + CreateIpamScopeInput, + CreateIpamScopeOutput, + CreateKeyPairInput, + CreateKeyPairOutput, + CreateLaunchTemplateInput, + CreateLaunchTemplateOutput, + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + CreateLocalGatewayRouteInput, + CreateLocalGatewayRouteOutput, + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + CreateManagedPrefixListInput, + CreateManagedPrefixListOutput, + CreateNatGatewayInput, + CreateNatGatewayOutput, + CreateNetworkAclEntryInput, + CreateNetworkAclEntryOutput, + CreateNetworkAclInput, + CreateNetworkAclOutput, + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + CreateNetworkInsightsPathInput, + CreateNetworkInsightsPathOutput, + CreateNetworkInterfaceInput, + CreateNetworkInterfaceOutput, + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + CreatePlacementGroupInput, + CreatePlacementGroupOutput, + CreatePublicIpv4PoolInput, + CreatePublicIpv4PoolOutput, + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + CreateRestoreImageTaskInput, + CreateRestoreImageTaskOutput, + CreateRouteInput, + CreateRouteOutput, + CreateRouteServerEndpointInput, + CreateRouteServerEndpointOutput, + CreateRouteServerInput, + CreateRouteServerOutput, + CreateRouteServerPeerInput, + CreateRouteServerPeerOutput, + CreateRouteTableInput, + CreateRouteTableOutput, + CreateSecondaryNetworkInput, + CreateSecondaryNetworkOutput, + CreateSecondarySubnetInput, + CreateSecondarySubnetOutput, + CreateSecurityGroupInput, + CreateSecurityGroupOutput, + CreateSnapshotInput, + CreateSnapshotOutput, + CreateSnapshotsInput, + CreateSnapshotsOutput, + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + CreateStoreImageTaskInput, + CreateStoreImageTaskOutput, + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + CreateSubnetInput, + CreateSubnetOutput, + CreateTagsInput, + CreateTagsOutput, + CreateTrafficMirrorFilterInput, + CreateTrafficMirrorFilterOutput, + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + CreateTrafficMirrorSessionInput, + CreateTrafficMirrorSessionOutput, + CreateTrafficMirrorTargetInput, + CreateTrafficMirrorTargetOutput, + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + CreateTransitGatewayInput, + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + CreateTransitGatewayOutput, + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + CreateTransitGatewayRouteInput, + CreateTransitGatewayRouteOutput, + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + CreateVerifiedAccessGroupInput, + CreateVerifiedAccessGroupOutput, + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + CreateVolumeInput, + CreateVolumeOutput, + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + CreateVpcEncryptionControlInput, + CreateVpcEncryptionControlOutput, + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + CreateVpcEndpointInput, + CreateVpcEndpointOutput, + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + CreateVpcInput, + CreateVpcOutput, + CreateVpcPeeringConnectionInput, + CreateVpcPeeringConnectionOutput, + CreateVpnConcentratorInput, + CreateVpnConcentratorOutput, + CreateVpnConnectionInput, + CreateVpnConnectionOutput, + CreateVpnConnectionRouteInput, + CreateVpnConnectionRouteOutput, + CreateVpnGatewayInput, + CreateVpnGatewayOutput, + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + DeleteCarrierGatewayInput, + DeleteCarrierGatewayOutput, + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + DeleteClientVpnEndpointInput, + DeleteClientVpnEndpointOutput, + DeleteClientVpnRouteInput, + DeleteClientVpnRouteOutput, + DeleteCoipCidrInput, + DeleteCoipCidrOutput, + DeleteCoipPoolInput, + DeleteCoipPoolOutput, + DeleteCustomerGatewayInput, + DeleteCustomerGatewayOutput, + DeleteDhcpOptionsInput, + DeleteDhcpOptionsOutput, + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + DeleteFleetsInput, + DeleteFleetsOutput, + DeleteFlowLogsInput, + DeleteFlowLogsOutput, + DeleteFpgaImageInput, + DeleteFpgaImageOutput, + DeleteImageUsageReportInput, + DeleteImageUsageReportOutput, + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + DeleteInstanceEventWindowInput, + DeleteInstanceEventWindowOutput, + DeleteInternetGatewayInput, + DeleteInternetGatewayOutput, + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + DeleteIpamInput, + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + DeleteIpamOutput, + DeleteIpamPolicyInput, + DeleteIpamPolicyOutput, + DeleteIpamPoolInput, + DeleteIpamPoolOutput, + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + DeleteIpamScopeInput, + DeleteIpamScopeOutput, + DeleteKeyPairInput, + DeleteKeyPairOutput, + DeleteLaunchTemplateInput, + DeleteLaunchTemplateOutput, + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + DeleteLocalGatewayRouteInput, + DeleteLocalGatewayRouteOutput, + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + DeleteManagedPrefixListInput, + DeleteManagedPrefixListOutput, + DeleteNatGatewayInput, + DeleteNatGatewayOutput, + DeleteNetworkAclEntryInput, + DeleteNetworkAclEntryOutput, + DeleteNetworkAclInput, + DeleteNetworkAclOutput, + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + DeleteNetworkInsightsPathInput, + DeleteNetworkInsightsPathOutput, + DeleteNetworkInterfaceInput, + DeleteNetworkInterfaceOutput, + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + DeletePlacementGroupInput, + DeletePlacementGroupOutput, + DeletePublicIpv4PoolInput, + DeletePublicIpv4PoolOutput, + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + DeleteRouteInput, + DeleteRouteOutput, + DeleteRouteServerEndpointInput, + DeleteRouteServerEndpointOutput, + DeleteRouteServerInput, + DeleteRouteServerOutput, + DeleteRouteServerPeerInput, + DeleteRouteServerPeerOutput, + DeleteRouteTableInput, + DeleteRouteTableOutput, + DeleteSecondaryNetworkInput, + DeleteSecondaryNetworkOutput, + DeleteSecondarySubnetInput, + DeleteSecondarySubnetOutput, + DeleteSecurityGroupInput, + DeleteSecurityGroupOutput, + DeleteSnapshotInput, + DeleteSnapshotOutput, + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + DeleteSubnetInput, + DeleteSubnetOutput, + DeleteTagsInput, + DeleteTagsOutput, + DeleteTrafficMirrorFilterInput, + DeleteTrafficMirrorFilterOutput, + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + DeleteTrafficMirrorSessionInput, + DeleteTrafficMirrorSessionOutput, + DeleteTrafficMirrorTargetInput, + DeleteTrafficMirrorTargetOutput, + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + DeleteTransitGatewayInput, + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + DeleteTransitGatewayOutput, + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + DeleteTransitGatewayRouteInput, + DeleteTransitGatewayRouteOutput, + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + DeleteVerifiedAccessGroupInput, + DeleteVerifiedAccessGroupOutput, + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + DeleteVolumeInput, + DeleteVolumeOutput, + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + DeleteVpcEncryptionControlInput, + DeleteVpcEncryptionControlOutput, + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + DeleteVpcEndpointsInput, + DeleteVpcEndpointsOutput, + DeleteVpcInput, + DeleteVpcOutput, + DeleteVpcPeeringConnectionInput, + DeleteVpcPeeringConnectionOutput, + DeleteVpnConcentratorInput, + DeleteVpnConcentratorOutput, + DeleteVpnConnectionInput, + DeleteVpnConnectionOutput, + DeleteVpnConnectionRouteInput, + DeleteVpnConnectionRouteOutput, + DeleteVpnGatewayInput, + DeleteVpnGatewayOutput, + DeprovisionByoipCidrInput, + DeprovisionByoipCidrOutput, + DeprovisionIpamByoasnInput, + DeprovisionIpamByoasnOutput, + DeprovisionIpamPoolCidrInput, + DeprovisionIpamPoolCidrOutput, + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + DeregisterImageInput, + DeregisterImageOutput, + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + DescribeAddressTransfersInput, + DescribeAddressTransfersOutput, + DescribeAddressesAttributeInput, + DescribeAddressesAttributeOutput, + DescribeAddressesInput, + DescribeAddressesOutput, + DescribeAggregateIdFormatInput, + DescribeAggregateIdFormatOutput, + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + DescribeApplicationStatusInput, + DescribeApplicationStatusOutput, + DescribeAvailabilityZonesInput, + DescribeAvailabilityZonesOutput, + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + DescribeBundleTasksInput, + DescribeBundleTasksOutput, + DescribeByoipCidrsInput, + DescribeByoipCidrsOutput, + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + DescribeCapacityBlocksInput, + DescribeCapacityBlocksOutput, + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + DescribeCarrierGatewaysInput, + DescribeCarrierGatewaysOutput, + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + DescribeClientVpnEndpointsInput, + DescribeClientVpnEndpointsOutput, + DescribeClientVpnRoutesInput, + DescribeClientVpnRoutesOutput, + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + DescribeCoipPoolsInput, + DescribeCoipPoolsOutput, + DescribeConversionTasksInput, + DescribeConversionTasksOutput, + DescribeCustomerGatewaysInput, + DescribeCustomerGatewaysOutput, + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + DescribeDhcpOptionsInput, + DescribeDhcpOptionsOutput, + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + DescribeElasticGpusInput, + DescribeElasticGpusOutput, + DescribeExportImageTasksInput, + DescribeExportImageTasksOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeFastLaunchImagesInput, + DescribeFastLaunchImagesOutput, + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + DescribeFleetHistoryInput, + DescribeFleetHistoryOutput, + DescribeFleetInstancesInput, + DescribeFleetInstancesOutput, + DescribeFleetsInput, + DescribeFleetsOutput, + DescribeFlowLogsInput, + DescribeFlowLogsOutput, + DescribeFpgaImageAttributeInput, + DescribeFpgaImageAttributeOutput, + DescribeFpgaImagesInput, + DescribeFpgaImagesOutput, + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + DescribeHostReservationsInput, + DescribeHostReservationsOutput, + DescribeHostsInput, + DescribeHostsOutput, + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + DescribeIdFormatInput, + DescribeIdFormatOutput, + DescribeIdentityIdFormatInput, + DescribeIdentityIdFormatOutput, + DescribeImageAttributeInput, + DescribeImageAttributeOutput, + DescribeImageReferencesInput, + DescribeImageReferencesOutput, + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + DescribeImageUsageReportsInput, + DescribeImageUsageReportsOutput, + DescribeImagesInput, + DescribeImagesOutput, + DescribeImportImageTasksInput, + DescribeImportImageTasksOutput, + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + DescribeInstanceAttributeInput, + DescribeInstanceAttributeOutput, + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + DescribeInstanceStatusInput, + DescribeInstanceStatusOutput, + DescribeInstanceTopologyInput, + DescribeInstanceTopologyOutput, + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + DescribeInstanceTypesInput, + DescribeInstanceTypesOutput, + DescribeInstancesInput, + DescribeInstancesOutput, + DescribeInternetGatewaysInput, + DescribeInternetGatewaysOutput, + DescribeIpamByoasnInput, + DescribeIpamByoasnOutput, + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + DescribeIpamPoliciesInput, + DescribeIpamPoliciesOutput, + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + DescribeIpamPoolsInput, + DescribeIpamPoolsOutput, + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + DescribeIpamScopesInput, + DescribeIpamScopesOutput, + DescribeIpamsInput, + DescribeIpamsOutput, + DescribeIpv6PoolsInput, + DescribeIpv6PoolsOutput, + DescribeKeyPairsInput, + DescribeKeyPairsOutput, + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + DescribeLaunchTemplatesInput, + DescribeLaunchTemplatesOutput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + DescribeLocalGatewaysInput, + DescribeLocalGatewaysOutput, + DescribeLockedSnapshotsInput, + DescribeLockedSnapshotsOutput, + DescribeMacHostsInput, + DescribeMacHostsOutput, + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + DescribeManagedPrefixListsInput, + DescribeManagedPrefixListsOutput, + DescribeMovingAddressesInput, + DescribeMovingAddressesOutput, + DescribeNatGatewaysInput, + DescribeNatGatewaysOutput, + DescribeNetworkAclsInput, + DescribeNetworkAclsOutput, + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + DescribeNetworkInterfacesInput, + DescribeNetworkInterfacesOutput, + DescribeOutpostLagsInput, + DescribeOutpostLagsOutput, + DescribePlacementGroupsInput, + DescribePlacementGroupsOutput, + DescribePrefixListsInput, + DescribePrefixListsOutput, + DescribePrincipalIdFormatInput, + DescribePrincipalIdFormatOutput, + DescribePublicIpv4PoolsInput, + DescribePublicIpv4PoolsOutput, + DescribeRegionsInput, + DescribeRegionsOutput, + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + DescribeReservedInstancesInput, + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + DescribeReservedInstancesOutput, + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + DescribeRouteServerPeersInput, + DescribeRouteServerPeersOutput, + DescribeRouteServersInput, + DescribeRouteServersOutput, + DescribeRouteTablesInput, + DescribeRouteTablesOutput, + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + DescribeScheduledInstancesInput, + DescribeScheduledInstancesOutput, + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + DescribeSecondaryNetworksInput, + DescribeSecondaryNetworksOutput, + DescribeSecondarySubnetsInput, + DescribeSecondarySubnetsOutput, + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + DescribeSecurityGroupRulesInput, + DescribeSecurityGroupRulesOutput, + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + DescribeSecurityGroupsInput, + DescribeSecurityGroupsOutput, + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + DescribeSnapshotAttributeInput, + DescribeSnapshotAttributeOutput, + DescribeSnapshotTierStatusInput, + DescribeSnapshotTierStatusOutput, + DescribeSnapshotsInput, + DescribeSnapshotsOutput, + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + DescribeSpotFleetInstancesInput, + DescribeSpotFleetInstancesOutput, + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + DescribeSpotFleetRequestsInput, + DescribeSpotFleetRequestsOutput, + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + DescribeSpotPriceHistoryInput, + DescribeSpotPriceHistoryOutput, + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + DescribeStoreImageTasksInput, + DescribeStoreImageTasksOutput, + DescribeSubnetsInput, + DescribeSubnetsOutput, + DescribeTagsInput, + DescribeTagsOutput, + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + DescribeTransitGatewaysInput, + DescribeTransitGatewaysOutput, + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + DescribeVolumeAttributeInput, + DescribeVolumeAttributeOutput, + DescribeVolumeStatusInput, + DescribeVolumeStatusOutput, + DescribeVolumesInput, + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + DescribeVolumesOutput, + DescribeVpcAttributeInput, + DescribeVpcAttributeOutput, + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + DescribeVpcClassicLinkInput, + DescribeVpcClassicLinkOutput, + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + DescribeVpcEndpointsInput, + DescribeVpcEndpointsOutput, + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + DescribeVpcsInput, + DescribeVpcsOutput, + DescribeVpnConcentratorsInput, + DescribeVpnConcentratorsOutput, + DescribeVpnConnectionsInput, + DescribeVpnConnectionsOutput, + DescribeVpnGatewaysInput, + DescribeVpnGatewaysOutput, + DetachClassicLinkVpcInput, + DetachClassicLinkVpcOutput, + DetachImageWatermarkInput, + DetachImageWatermarkOutput, + DetachInternetGatewayInput, + DetachInternetGatewayOutput, + DetachNetworkInterfaceInput, + DetachNetworkInterfaceOutput, + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + DetachVolumeInput, + DetachVolumeOutput, + DetachVpnGatewayInput, + DetachVpnGatewayOutput, + DisableAddressTransferInput, + DisableAddressTransferOutput, + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + DisableCapacityManagerInput, + DisableCapacityManagerOutput, + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + DisableFastLaunchInput, + DisableFastLaunchOutput, + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + DisableImageDeprecationInput, + DisableImageDeprecationOutput, + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + DisableImageInput, + DisableImageOutput, + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + DisableIpamPolicyInput, + DisableIpamPolicyOutput, + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + DisableSerialConsoleAccessInput, + DisableSerialConsoleAccessOutput, + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + DisableVgwRoutePropagationInput, + DisableVgwRoutePropagationOutput, + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + DisableVpcClassicLinkInput, + DisableVpcClassicLinkOutput, + DisassociateAddressInput, + DisassociateAddressOutput, + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + DisassociateIpamByoasnInput, + DisassociateIpamByoasnOutput, + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + DisassociateRouteServerInput, + DisassociateRouteServerOutput, + DisassociateRouteTableInput, + DisassociateRouteTableOutput, + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + DisassociateTrunkInterfaceInput, + DisassociateTrunkInterfaceOutput, + DisassociateVpcCidrBlockInput, + DisassociateVpcCidrBlockOutput, + EnableAddressTransferInput, + EnableAddressTransferOutput, + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + EnableCapacityManagerInput, + EnableCapacityManagerOutput, + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + EnableFastLaunchInput, + EnableFastLaunchOutput, + EnableFastSnapshotRestoresInput, + EnableFastSnapshotRestoresOutput, + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + EnableImageDeprecationInput, + EnableImageDeprecationOutput, + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + EnableImageInput, + EnableImageOutput, + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + EnableIpamPolicyInput, + EnableIpamPolicyOutput, + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + EnableSerialConsoleAccessInput, + EnableSerialConsoleAccessOutput, + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + EnableVgwRoutePropagationInput, + EnableVgwRoutePropagationOutput, + EnableVolumeIOInput, + EnableVolumeIOOutput, + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + EnableVpcClassicLinkInput, + EnableVpcClassicLinkOutput, + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + ExportImageInput, + ExportImageOutput, + ExportTransitGatewayRoutesInput, + ExportTransitGatewayRoutesOutput, + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + GetActiveVpnTunnelStatusInput, + GetActiveVpnTunnelStatusOutput, + GetAllowedImagesSettingsInput, + GetAllowedImagesSettingsOutput, + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + GetAssociatedIpv6PoolCidrsInput, + GetAssociatedIpv6PoolCidrsOutput, + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + GetCoipPoolUsageInput, + GetCoipPoolUsageOutput, + GetConsoleOutputInput, + GetConsoleOutputOutput, + GetConsoleScreenshotInput, + GetConsoleScreenshotOutput, + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + GetEbsDefaultKmsKeyIdInput, + GetEbsDefaultKmsKeyIdOutput, + GetEbsEncryptionByDefaultInput, + GetEbsEncryptionByDefaultOutput, + GetEnabledIpamPolicyInput, + GetEnabledIpamPolicyOutput, + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + GetImageAncestryInput, + GetImageAncestryOutput, + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + GetImageFindingsInput, + GetImageFindingsOutput, + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + GetInstanceTpmEkPubInput, + GetInstanceTpmEkPubOutput, + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + GetInstanceUefiDataInput, + GetInstanceUefiDataOutput, + GetIpamAddressHistoryInput, + GetIpamAddressHistoryOutput, + GetIpamDiscoveredAccountsInput, + GetIpamDiscoveredAccountsOutput, + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + GetIpamDiscoveredRoutesInput, + GetIpamDiscoveredRoutesOutput, + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + GetIpamPoolAllocationsInput, + GetIpamPoolAllocationsOutput, + GetIpamPoolCidrsInput, + GetIpamPoolCidrsOutput, + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + GetIpamResourceCidrsInput, + GetIpamResourceCidrsOutput, + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + GetLaunchTemplateDataInput, + GetLaunchTemplateDataOutput, + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + GetPasswordDataInput, + GetPasswordDataOutput, + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + GetRouteServerAssociationsInput, + GetRouteServerAssociationsOutput, + GetRouteServerPropagationsInput, + GetRouteServerPropagationsOutput, + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + GetSecurityGroupsForVpcInput, + GetSecurityGroupsForVpcOutput, + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + GetSpotPlacementScoresInput, + GetSpotPlacementScoresOutput, + GetSubnetCidrReservationsInput, + GetSubnetCidrReservationsOutput, + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + ImportImageInput, + ImportImageOutput, + ImportInstanceInput, + ImportInstanceOutput, + ImportKeyPairInput, + ImportKeyPairOutput, + ImportSnapshotInput, + ImportSnapshotOutput, + ImportVolumeInput, + ImportVolumeOutput, + ListImagesInRecycleBinInput, + ListImagesInRecycleBinOutput, + ListSnapshotsInRecycleBinInput, + ListSnapshotsInRecycleBinOutput, + ListVolumesInRecycleBinInput, + ListVolumesInRecycleBinOutput, + LockSnapshotInput, + LockSnapshotOutput, + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + ModifyAddressAttributeInput, + ModifyAddressAttributeOutput, + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + ModifyCapacityReservationInput, + ModifyCapacityReservationOutput, + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + ModifyClientVpnEndpointInput, + ModifyClientVpnEndpointOutput, + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + ModifyEbsDefaultKmsKeyIdInput, + ModifyEbsDefaultKmsKeyIdOutput, + ModifyFleetInput, + ModifyFleetOutput, + ModifyFpgaImageAttributeInput, + ModifyFpgaImageAttributeOutput, + ModifyHostsInput, + ModifyHostsOutput, + ModifyIdFormatInput, + ModifyIdFormatOutput, + ModifyIdentityIdFormatInput, + ModifyIdentityIdFormatOutput, + ModifyImageAttributeInput, + ModifyImageAttributeOutput, + ModifyInstanceAttributeInput, + ModifyInstanceAttributeOutput, + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + ModifyInstanceCpuOptionsInput, + ModifyInstanceCpuOptionsOutput, + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + ModifyInstanceEventWindowInput, + ModifyInstanceEventWindowOutput, + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + ModifyInstancePlacementInput, + ModifyInstancePlacementOutput, + ModifyIpamInput, + ModifyIpamOutput, + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + ModifyIpamPoolAllocationInput, + ModifyIpamPoolAllocationOutput, + ModifyIpamPoolInput, + ModifyIpamPoolOutput, + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + ModifyIpamResourceCidrInput, + ModifyIpamResourceCidrOutput, + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + ModifyIpamScopeInput, + ModifyIpamScopeOutput, + ModifyLaunchTemplateInput, + ModifyLaunchTemplateOutput, + ModifyLocalGatewayRouteInput, + ModifyLocalGatewayRouteOutput, + ModifyManagedPrefixListInput, + ModifyManagedPrefixListOutput, + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + ModifyReservedInstancesInput, + ModifyReservedInstancesOutput, + ModifyRouteServerInput, + ModifyRouteServerOutput, + ModifySecurityGroupRulesInput, + ModifySecurityGroupRulesOutput, + ModifySnapshotAttributeInput, + ModifySnapshotAttributeOutput, + ModifySnapshotTierInput, + ModifySnapshotTierOutput, + ModifySpotFleetRequestInput, + ModifySpotFleetRequestOutput, + ModifySubnetAttributeInput, + ModifySubnetAttributeOutput, + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + ModifyTrafficMirrorSessionInput, + ModifyTrafficMirrorSessionOutput, + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + ModifyTransitGatewayInput, + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + ModifyTransitGatewayOutput, + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + ModifyVerifiedAccessGroupInput, + ModifyVerifiedAccessGroupOutput, + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + ModifyVerifiedAccessInstanceOutput, + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + ModifyVolumeAttributeInput, + ModifyVolumeAttributeOutput, + ModifyVolumeInput, + ModifyVolumeOutput, + ModifyVpcAttributeInput, + ModifyVpcAttributeOutput, + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + ModifyVpcEncryptionControlInput, + ModifyVpcEncryptionControlOutput, + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + ModifyVpcEndpointInput, + ModifyVpcEndpointOutput, + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + ModifyVpcTenancyInput, + ModifyVpcTenancyOutput, + ModifyVpnConnectionInput, + ModifyVpnConnectionOptionsInput, + ModifyVpnConnectionOptionsOutput, + ModifyVpnConnectionOutput, + ModifyVpnTunnelCertificateInput, + ModifyVpnTunnelCertificateOutput, + ModifyVpnTunnelOptionsInput, + ModifyVpnTunnelOptionsOutput, + MonitorInstancesInput, + MonitorInstancesOutput, + MoveAddressToVpcInput, + MoveAddressToVpcOutput, + MoveByoipCidrToIpamInput, + MoveByoipCidrToIpamOutput, + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + ProvisionByoipCidrInput, + ProvisionByoipCidrOutput, + ProvisionIpamByoasnInput, + ProvisionIpamByoasnOutput, + ProvisionIpamPoolCidrInput, + ProvisionIpamPoolCidrOutput, + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + PurchaseCapacityBlockInput, + PurchaseCapacityBlockOutput, + PurchaseHostReservationInput, + PurchaseHostReservationOutput, + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + PurchaseScheduledInstancesInput, + PurchaseScheduledInstancesOutput, + RebootInstancesInput, + RebootInstancesOutput, + RegisterImageInput, + RegisterImageOutput, + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + RejectVpcPeeringConnectionInput, + RejectVpcPeeringConnectionOutput, + ReleaseAddressInput, + ReleaseAddressOutput, + ReleaseHostsInput, + ReleaseHostsOutput, + ReleaseIpamPoolAllocationInput, + ReleaseIpamPoolAllocationOutput, + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + ReplaceNetworkAclEntryInput, + ReplaceNetworkAclEntryOutput, + ReplaceRouteInput, + ReplaceRouteOutput, + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + ReplaceTransitGatewayRouteInput, + ReplaceTransitGatewayRouteOutput, + ReplaceVpnTunnelInput, + ReplaceVpnTunnelOutput, + ReportInstanceStatusInput, + ReportInstanceStatusOutput, + RequestSpotFleetInput, + RequestSpotFleetOutput, + RequestSpotInstancesInput, + RequestSpotInstancesOutput, + ResetAddressAttributeInput, + ResetAddressAttributeOutput, + ResetEbsDefaultKmsKeyIdInput, + ResetEbsDefaultKmsKeyIdOutput, + ResetFpgaImageAttributeInput, + ResetFpgaImageAttributeOutput, + ResetImageAttributeInput, + ResetImageAttributeOutput, + ResetInstanceAttributeInput, + ResetInstanceAttributeOutput, + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + ResetSnapshotAttributeInput, + ResetSnapshotAttributeOutput, + RestoreAddressToClassicInput, + RestoreAddressToClassicOutput, + RestoreImageFromRecycleBinInput, + RestoreImageFromRecycleBinOutput, + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + RestoreSnapshotTierInput, + RestoreSnapshotTierOutput, + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + RevokeClientVpnIngressInput, + RevokeClientVpnIngressOutput, + RevokeSecurityGroupEgressInput, + RevokeSecurityGroupEgressOutput, + RevokeSecurityGroupIngressInput, + RevokeSecurityGroupIngressOutput, + RunInstancesInput, + RunInstancesOutput, + RunScheduledInstancesInput, + RunScheduledInstancesOutput, + SearchLocalGatewayRoutesInput, + SearchLocalGatewayRoutesOutput, + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + SearchTransitGatewayRoutesInput, + SearchTransitGatewayRoutesOutput, + SendDiagnosticInterruptInput, + SendDiagnosticInterruptOutput, + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + StartInstancesInput, + StartInstancesOutput, + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + StopInstancesInput, + StopInstancesOutput, + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + TerminateInstancesInput, + TerminateInstancesOutput, + UnassignIpv6AddressesInput, + UnassignIpv6AddressesOutput, + UnassignPrivateIpAddressesInput, + UnassignPrivateIpAddressesOutput, + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + UnlockSnapshotInput, + UnlockSnapshotOutput, + UnmonitorInstancesInput, + UnmonitorInstancesOutput, + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + WithdrawByoipCidrInput, + WithdrawByoipCidrOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AcceptAddressTransferInput, AcceptAddressTransferOutput, Any, Any], + Interceptor[ + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + Any, + Any, + ], + Interceptor[ + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[ + AcceptVpcPeeringConnectionInput, AcceptVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[AdvertiseByoipCidrInput, AdvertiseByoipCidrOutput, Any, Any], + Interceptor[AllocateAddressInput, AllocateAddressOutput, Any, Any], + Interceptor[AllocateHostsInput, AllocateHostsOutput, Any, Any], + Interceptor[AllocateIpamPoolCidrInput, AllocateIpamPoolCidrOutput, Any, Any], + Interceptor[ + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[AssignIpv6AddressesInput, AssignIpv6AddressesOutput, Any, Any], + Interceptor[ + AssignPrivateIpAddressesInput, AssignPrivateIpAddressesOutput, Any, Any + ], + Interceptor[ + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[AssociateAddressInput, AssociateAddressOutput, Any, Any], + Interceptor[ + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + Any, + Any, + ], + Interceptor[ + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[AssociateDhcpOptionsInput, AssociateDhcpOptionsOutput, Any, Any], + Interceptor[ + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + Any, + Any, + ], + Interceptor[ + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + Any, + Any, + ], + Interceptor[ + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + Any, + Any, + ], + Interceptor[AssociateIpamByoasnInput, AssociateIpamByoasnOutput, Any, Any], + Interceptor[ + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + AssociateNatGatewayAddressInput, AssociateNatGatewayAddressOutput, Any, Any + ], + Interceptor[AssociateRouteServerInput, AssociateRouteServerOutput, Any, Any], + Interceptor[AssociateRouteTableInput, AssociateRouteTableOutput, Any, Any], + Interceptor[ + AssociateSecurityGroupVpcInput, AssociateSecurityGroupVpcOutput, Any, Any + ], + Interceptor[ + AssociateSubnetCidrBlockInput, AssociateSubnetCidrBlockOutput, Any, Any + ], + Interceptor[ + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + AssociateTrunkInterfaceInput, AssociateTrunkInterfaceOutput, Any, Any + ], + Interceptor[AssociateVpcCidrBlockInput, AssociateVpcCidrBlockOutput, Any, Any], + Interceptor[AttachClassicLinkVpcInput, AttachClassicLinkVpcOutput, Any, Any], + Interceptor[AttachImageWatermarkInput, AttachImageWatermarkOutput, Any, Any], + Interceptor[AttachInternetGatewayInput, AttachInternetGatewayOutput, Any, Any], + Interceptor[ + AttachNetworkInterfaceInput, AttachNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[AttachVolumeInput, AttachVolumeOutput, Any, Any], + Interceptor[AttachVpnGatewayInput, AttachVpnGatewayOutput, Any, Any], + Interceptor[ + AuthorizeClientVpnIngressInput, AuthorizeClientVpnIngressOutput, Any, Any + ], + Interceptor[ + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + Any, + Any, + ], + Interceptor[ + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[ + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + Any, + Any, + ], + Interceptor[BundleInstanceInput, BundleInstanceOutput, Any, Any], + Interceptor[CancelBundleTaskInput, CancelBundleTaskOutput, Any, Any], + Interceptor[ + CancelCapacityReservationInput, CancelCapacityReservationOutput, Any, Any + ], + Interceptor[ + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + Any, + Any, + ], + Interceptor[CancelConversionTaskInput, CancelConversionTaskOutput, Any, Any], + Interceptor[ + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + Any, + Any, + ], + Interceptor[CancelExportTaskInput, CancelExportTaskOutput, Any, Any], + Interceptor[ + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + Any, + Any, + ], + Interceptor[CancelImportTaskInput, CancelImportTaskOutput, Any, Any], + Interceptor[ + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + Any, + Any, + ], + Interceptor[ + CancelSpotFleetRequestsInput, CancelSpotFleetRequestsOutput, Any, Any + ], + Interceptor[ + CancelSpotInstanceRequestsInput, CancelSpotInstanceRequestsOutput, Any, Any + ], + Interceptor[ + ConfirmProductInstanceInput, ConfirmProductInstanceOutput, Any, Any + ], + Interceptor[CopyFpgaImageInput, CopyFpgaImageOutput, Any, Any], + Interceptor[CopyImageInput, CopyImageOutput, Any, Any], + Interceptor[CopySnapshotInput, CopySnapshotOutput, Any, Any], + Interceptor[CopyVolumesInput, CopyVolumesOutput, Any, Any], + Interceptor[ + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationInput, CreateCapacityReservationOutput, Any, Any + ], + Interceptor[ + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + Any, + Any, + ], + Interceptor[CreateCarrierGatewayInput, CreateCarrierGatewayOutput, Any, Any], + Interceptor[ + CreateClientVpnEndpointInput, CreateClientVpnEndpointOutput, Any, Any + ], + Interceptor[CreateClientVpnRouteInput, CreateClientVpnRouteOutput, Any, Any], + Interceptor[CreateCoipCidrInput, CreateCoipCidrOutput, Any, Any], + Interceptor[CreateCoipPoolInput, CreateCoipPoolOutput, Any, Any], + Interceptor[CreateCustomerGatewayInput, CreateCustomerGatewayOutput, Any, Any], + Interceptor[CreateDefaultSubnetInput, CreateDefaultSubnetOutput, Any, Any], + Interceptor[CreateDefaultVpcInput, CreateDefaultVpcOutput, Any, Any], + Interceptor[ + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + Any, + Any, + ], + Interceptor[CreateDhcpOptionsInput, CreateDhcpOptionsOutput, Any, Any], + Interceptor[ + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + Any, + Any, + ], + Interceptor[CreateFleetInput, CreateFleetOutput, Any, Any], + Interceptor[CreateFlowLogsInput, CreateFlowLogsOutput, Any, Any], + Interceptor[CreateFpgaImageInput, CreateFpgaImageOutput, Any, Any], + Interceptor[CreateImageInput, CreateImageOutput, Any, Any], + Interceptor[ + CreateImageUsageReportInput, CreateImageUsageReportOutput, Any, Any + ], + Interceptor[ + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + CreateInstanceEventWindowInput, CreateInstanceEventWindowOutput, Any, Any + ], + Interceptor[ + CreateInstanceExportTaskInput, CreateInstanceExportTaskOutput, Any, Any + ], + Interceptor[CreateInternetGatewayInput, CreateInternetGatewayOutput, Any, Any], + Interceptor[ + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + Any, + Any, + ], + Interceptor[CreateIpamInput, CreateIpamOutput, Any, Any], + Interceptor[ + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[CreateIpamPolicyInput, CreateIpamPolicyOutput, Any, Any], + Interceptor[CreateIpamPoolInput, CreateIpamPoolOutput, Any, Any], + Interceptor[ + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[CreateIpamScopeInput, CreateIpamScopeOutput, Any, Any], + Interceptor[CreateKeyPairInput, CreateKeyPairOutput, Any, Any], + Interceptor[CreateLaunchTemplateInput, CreateLaunchTemplateOutput, Any, Any], + Interceptor[ + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteInput, CreateLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + Any, + Any, + ], + Interceptor[ + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + Any, + Any, + ], + Interceptor[ + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + Any, + Any, + ], + Interceptor[ + CreateManagedPrefixListInput, CreateManagedPrefixListOutput, Any, Any + ], + Interceptor[CreateNatGatewayInput, CreateNatGatewayOutput, Any, Any], + Interceptor[CreateNetworkAclInput, CreateNetworkAclOutput, Any, Any], + Interceptor[CreateNetworkAclEntryInput, CreateNetworkAclEntryOutput, Any, Any], + Interceptor[ + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + Any, + Any, + ], + Interceptor[ + CreateNetworkInsightsPathInput, CreateNetworkInsightsPathOutput, Any, Any + ], + Interceptor[ + CreateNetworkInterfaceInput, CreateNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + Any, + Any, + ], + Interceptor[CreatePlacementGroupInput, CreatePlacementGroupOutput, Any, Any], + Interceptor[CreatePublicIpv4PoolInput, CreatePublicIpv4PoolOutput, Any, Any], + Interceptor[ + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + Any, + Any, + ], + Interceptor[ + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + Any, + Any, + ], + Interceptor[ + CreateRestoreImageTaskInput, CreateRestoreImageTaskOutput, Any, Any + ], + Interceptor[CreateRouteInput, CreateRouteOutput, Any, Any], + Interceptor[CreateRouteServerInput, CreateRouteServerOutput, Any, Any], + Interceptor[ + CreateRouteServerEndpointInput, CreateRouteServerEndpointOutput, Any, Any + ], + Interceptor[CreateRouteServerPeerInput, CreateRouteServerPeerOutput, Any, Any], + Interceptor[CreateRouteTableInput, CreateRouteTableOutput, Any, Any], + Interceptor[ + CreateSecondaryNetworkInput, CreateSecondaryNetworkOutput, Any, Any + ], + Interceptor[CreateSecondarySubnetInput, CreateSecondarySubnetOutput, Any, Any], + Interceptor[CreateSecurityGroupInput, CreateSecurityGroupOutput, Any, Any], + Interceptor[CreateSnapshotInput, CreateSnapshotOutput, Any, Any], + Interceptor[CreateSnapshotsInput, CreateSnapshotsOutput, Any, Any], + Interceptor[ + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[CreateStoreImageTaskInput, CreateStoreImageTaskOutput, Any, Any], + Interceptor[CreateSubnetInput, CreateSubnetOutput, Any, Any], + Interceptor[ + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + Any, + Any, + ], + Interceptor[CreateTagsInput, CreateTagsOutput, Any, Any], + Interceptor[ + CreateTrafficMirrorFilterInput, CreateTrafficMirrorFilterOutput, Any, Any + ], + Interceptor[ + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + CreateTrafficMirrorSessionInput, CreateTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ + CreateTrafficMirrorTargetInput, CreateTrafficMirrorTargetOutput, Any, Any + ], + Interceptor[CreateTransitGatewayInput, CreateTransitGatewayOutput, Any, Any], + Interceptor[ + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayRouteInput, CreateTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + Any, + Any, + ], + Interceptor[ + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessGroupInput, CreateVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[CreateVolumeInput, CreateVolumeOutput, Any, Any], + Interceptor[CreateVpcInput, CreateVpcOutput, Any, Any], + Interceptor[ + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcEncryptionControlInput, CreateVpcEncryptionControlOutput, Any, Any + ], + Interceptor[CreateVpcEndpointInput, CreateVpcEndpointOutput, Any, Any], + Interceptor[ + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + Any, + Any, + ], + Interceptor[ + CreateVpcPeeringConnectionInput, CreateVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[CreateVpnConcentratorInput, CreateVpnConcentratorOutput, Any, Any], + Interceptor[CreateVpnConnectionInput, CreateVpnConnectionOutput, Any, Any], + Interceptor[ + CreateVpnConnectionRouteInput, CreateVpnConnectionRouteOutput, Any, Any + ], + Interceptor[CreateVpnGatewayInput, CreateVpnGatewayOutput, Any, Any], + Interceptor[ + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + Any, + Any, + ], + Interceptor[DeleteCarrierGatewayInput, DeleteCarrierGatewayOutput, Any, Any], + Interceptor[ + DeleteClientVpnEndpointInput, DeleteClientVpnEndpointOutput, Any, Any + ], + Interceptor[ + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteClientVpnRouteInput, DeleteClientVpnRouteOutput, Any, Any], + Interceptor[DeleteCoipCidrInput, DeleteCoipCidrOutput, Any, Any], + Interceptor[DeleteCoipPoolInput, DeleteCoipPoolOutput, Any, Any], + Interceptor[DeleteCustomerGatewayInput, DeleteCustomerGatewayOutput, Any, Any], + Interceptor[DeleteDhcpOptionsInput, DeleteDhcpOptionsOutput, Any, Any], + Interceptor[ + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + Any, + Any, + ], + Interceptor[DeleteFleetsInput, DeleteFleetsOutput, Any, Any], + Interceptor[DeleteFlowLogsInput, DeleteFlowLogsOutput, Any, Any], + Interceptor[DeleteFpgaImageInput, DeleteFpgaImageOutput, Any, Any], + Interceptor[ + DeleteImageUsageReportInput, DeleteImageUsageReportOutput, Any, Any + ], + Interceptor[ + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + DeleteInstanceEventWindowInput, DeleteInstanceEventWindowOutput, Any, Any + ], + Interceptor[DeleteInternetGatewayInput, DeleteInternetGatewayOutput, Any, Any], + Interceptor[DeleteIpamInput, DeleteIpamOutput, Any, Any], + Interceptor[ + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[DeleteIpamPolicyInput, DeleteIpamPolicyOutput, Any, Any], + Interceptor[DeleteIpamPoolInput, DeleteIpamPoolOutput, Any, Any], + Interceptor[ + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[DeleteIpamScopeInput, DeleteIpamScopeOutput, Any, Any], + Interceptor[DeleteKeyPairInput, DeleteKeyPairOutput, Any, Any], + Interceptor[DeleteLaunchTemplateInput, DeleteLaunchTemplateOutput, Any, Any], + Interceptor[ + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteInput, DeleteLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + Any, + Any, + ], + Interceptor[ + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + Any, + Any, + ], + Interceptor[ + DeleteManagedPrefixListInput, DeleteManagedPrefixListOutput, Any, Any + ], + Interceptor[DeleteNatGatewayInput, DeleteNatGatewayOutput, Any, Any], + Interceptor[DeleteNetworkAclInput, DeleteNetworkAclOutput, Any, Any], + Interceptor[DeleteNetworkAclEntryInput, DeleteNetworkAclEntryOutput, Any, Any], + Interceptor[ + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + Any, + Any, + ], + Interceptor[ + DeleteNetworkInsightsPathInput, DeleteNetworkInsightsPathOutput, Any, Any + ], + Interceptor[ + DeleteNetworkInterfaceInput, DeleteNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + Any, + Any, + ], + Interceptor[DeletePlacementGroupInput, DeletePlacementGroupOutput, Any, Any], + Interceptor[DeletePublicIpv4PoolInput, DeletePublicIpv4PoolOutput, Any, Any], + Interceptor[ + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + Any, + Any, + ], + Interceptor[DeleteRouteInput, DeleteRouteOutput, Any, Any], + Interceptor[DeleteRouteServerInput, DeleteRouteServerOutput, Any, Any], + Interceptor[ + DeleteRouteServerEndpointInput, DeleteRouteServerEndpointOutput, Any, Any + ], + Interceptor[DeleteRouteServerPeerInput, DeleteRouteServerPeerOutput, Any, Any], + Interceptor[DeleteRouteTableInput, DeleteRouteTableOutput, Any, Any], + Interceptor[ + DeleteSecondaryNetworkInput, DeleteSecondaryNetworkOutput, Any, Any + ], + Interceptor[DeleteSecondarySubnetInput, DeleteSecondarySubnetOutput, Any, Any], + Interceptor[DeleteSecurityGroupInput, DeleteSecurityGroupOutput, Any, Any], + Interceptor[DeleteSnapshotInput, DeleteSnapshotOutput, Any, Any], + Interceptor[ + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[DeleteSubnetInput, DeleteSubnetOutput, Any, Any], + Interceptor[ + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + Any, + Any, + ], + Interceptor[DeleteTagsInput, DeleteTagsOutput, Any, Any], + Interceptor[ + DeleteTrafficMirrorFilterInput, DeleteTrafficMirrorFilterOutput, Any, Any + ], + Interceptor[ + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + DeleteTrafficMirrorSessionInput, DeleteTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ + DeleteTrafficMirrorTargetInput, DeleteTrafficMirrorTargetOutput, Any, Any + ], + Interceptor[DeleteTransitGatewayInput, DeleteTransitGatewayOutput, Any, Any], + Interceptor[ + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayRouteInput, DeleteTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + Any, + Any, + ], + Interceptor[ + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessGroupInput, DeleteVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[DeleteVolumeInput, DeleteVolumeOutput, Any, Any], + Interceptor[DeleteVpcInput, DeleteVpcOutput, Any, Any], + Interceptor[ + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + DeleteVpcEncryptionControlInput, DeleteVpcEncryptionControlOutput, Any, Any + ], + Interceptor[ + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + Any, + Any, + ], + Interceptor[DeleteVpcEndpointsInput, DeleteVpcEndpointsOutput, Any, Any], + Interceptor[ + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DeleteVpcPeeringConnectionInput, DeleteVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[DeleteVpnConcentratorInput, DeleteVpnConcentratorOutput, Any, Any], + Interceptor[DeleteVpnConnectionInput, DeleteVpnConnectionOutput, Any, Any], + Interceptor[ + DeleteVpnConnectionRouteInput, DeleteVpnConnectionRouteOutput, Any, Any + ], + Interceptor[DeleteVpnGatewayInput, DeleteVpnGatewayOutput, Any, Any], + Interceptor[DeprovisionByoipCidrInput, DeprovisionByoipCidrOutput, Any, Any], + Interceptor[DeprovisionIpamByoasnInput, DeprovisionIpamByoasnOutput, Any, Any], + Interceptor[ + DeprovisionIpamPoolCidrInput, DeprovisionIpamPoolCidrOutput, Any, Any + ], + Interceptor[ + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + Any, + Any, + ], + Interceptor[DeregisterImageInput, DeregisterImageOutput, Any, Any], + Interceptor[ + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + Any, + Any, + ], + Interceptor[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput, Any, Any + ], + Interceptor[ + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + Any, + Any, + ], + Interceptor[DescribeAddressesInput, DescribeAddressesOutput, Any, Any], + Interceptor[ + DescribeAddressesAttributeInput, DescribeAddressesAttributeOutput, Any, Any + ], + Interceptor[ + DescribeAddressTransfersInput, DescribeAddressTransfersOutput, Any, Any + ], + Interceptor[ + DescribeAggregateIdFormatInput, DescribeAggregateIdFormatOutput, Any, Any + ], + Interceptor[ + DescribeApplicationStatusInput, DescribeApplicationStatusOutput, Any, Any + ], + Interceptor[ + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + Any, + Any, + ], + Interceptor[ + DescribeAvailabilityZonesInput, DescribeAvailabilityZonesOutput, Any, Any + ], + Interceptor[ + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + Any, + Any, + ], + Interceptor[DescribeBundleTasksInput, DescribeBundleTasksOutput, Any, Any], + Interceptor[DescribeByoipCidrsInput, DescribeByoipCidrsOutput, Any, Any], + Interceptor[ + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityBlocksInput, DescribeCapacityBlocksOutput, Any, Any + ], + Interceptor[ + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + Any, + Any, + ], + Interceptor[ + DescribeCarrierGatewaysInput, DescribeCarrierGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeClientVpnEndpointsInput, DescribeClientVpnEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeClientVpnRoutesInput, DescribeClientVpnRoutesOutput, Any, Any + ], + Interceptor[ + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + Any, + Any, + ], + Interceptor[DescribeCoipPoolsInput, DescribeCoipPoolsOutput, Any, Any], + Interceptor[ + DescribeConversionTasksInput, DescribeConversionTasksOutput, Any, Any + ], + Interceptor[ + DescribeCustomerGatewaysInput, DescribeCustomerGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + Any, + Any, + ], + Interceptor[DescribeDhcpOptionsInput, DescribeDhcpOptionsOutput, Any, Any], + Interceptor[ + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + Any, + Any, + ], + Interceptor[DescribeElasticGpusInput, DescribeElasticGpusOutput, Any, Any], + Interceptor[ + DescribeExportImageTasksInput, DescribeExportImageTasksOutput, Any, Any + ], + Interceptor[DescribeExportTasksInput, DescribeExportTasksOutput, Any, Any], + Interceptor[ + DescribeFastLaunchImagesInput, DescribeFastLaunchImagesOutput, Any, Any + ], + Interceptor[ + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + Any, + Any, + ], + Interceptor[DescribeFleetHistoryInput, DescribeFleetHistoryOutput, Any, Any], + Interceptor[ + DescribeFleetInstancesInput, DescribeFleetInstancesOutput, Any, Any + ], + Interceptor[DescribeFleetsInput, DescribeFleetsOutput, Any, Any], + Interceptor[DescribeFlowLogsInput, DescribeFlowLogsOutput, Any, Any], + Interceptor[ + DescribeFpgaImageAttributeInput, DescribeFpgaImageAttributeOutput, Any, Any + ], + Interceptor[DescribeFpgaImagesInput, DescribeFpgaImagesOutput, Any, Any], + Interceptor[ + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeHostReservationsInput, DescribeHostReservationsOutput, Any, Any + ], + Interceptor[DescribeHostsInput, DescribeHostsOutput, Any, Any], + Interceptor[ + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeIdentityIdFormatInput, DescribeIdentityIdFormatOutput, Any, Any + ], + Interceptor[DescribeIdFormatInput, DescribeIdFormatOutput, Any, Any], + Interceptor[ + DescribeImageAttributeInput, DescribeImageAttributeOutput, Any, Any + ], + Interceptor[ + DescribeImageReferencesInput, DescribeImageReferencesOutput, Any, Any + ], + Interceptor[DescribeImagesInput, DescribeImagesOutput, Any, Any], + Interceptor[ + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + Any, + Any, + ], + Interceptor[ + DescribeImageUsageReportsInput, DescribeImageUsageReportsOutput, Any, Any + ], + Interceptor[ + DescribeImportImageTasksInput, DescribeImportImageTasksOutput, Any, Any + ], + Interceptor[ + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceAttributeInput, DescribeInstanceAttributeOutput, Any, Any + ], + Interceptor[ + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + Any, + Any, + ], + Interceptor[DescribeInstancesInput, DescribeInstancesOutput, Any, Any], + Interceptor[ + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + Any, + Any, + ], + Interceptor[ + DescribeInstanceStatusInput, DescribeInstanceStatusOutput, Any, Any + ], + Interceptor[ + DescribeInstanceTopologyInput, DescribeInstanceTopologyOutput, Any, Any + ], + Interceptor[ + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + Any, + Any, + ], + Interceptor[DescribeInstanceTypesInput, DescribeInstanceTypesOutput, Any, Any], + Interceptor[ + DescribeInternetGatewaysInput, DescribeInternetGatewaysOutput, Any, Any + ], + Interceptor[DescribeIpamByoasnInput, DescribeIpamByoasnOutput, Any, Any], + Interceptor[ + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamPoliciesInput, DescribeIpamPoliciesOutput, Any, Any], + Interceptor[ + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamPoolsInput, DescribeIpamPoolsOutput, Any, Any], + Interceptor[ + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + Any, + Any, + ], + Interceptor[ + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeIpamsInput, DescribeIpamsOutput, Any, Any], + Interceptor[DescribeIpamScopesInput, DescribeIpamScopesOutput, Any, Any], + Interceptor[DescribeIpv6PoolsInput, DescribeIpv6PoolsOutput, Any, Any], + Interceptor[DescribeKeyPairsInput, DescribeKeyPairsOutput, Any, Any], + Interceptor[ + DescribeLaunchTemplatesInput, DescribeLaunchTemplatesOutput, Any, Any + ], + Interceptor[ + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + Any, + Any, + ], + Interceptor[DescribeLocalGatewaysInput, DescribeLocalGatewaysOutput, Any, Any], + Interceptor[ + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeLockedSnapshotsInput, DescribeLockedSnapshotsOutput, Any, Any + ], + Interceptor[DescribeMacHostsInput, DescribeMacHostsOutput, Any, Any], + Interceptor[ + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeManagedPrefixListsInput, DescribeManagedPrefixListsOutput, Any, Any + ], + Interceptor[ + DescribeMovingAddressesInput, DescribeMovingAddressesOutput, Any, Any + ], + Interceptor[DescribeNatGatewaysInput, DescribeNatGatewaysOutput, Any, Any], + Interceptor[DescribeNetworkAclsInput, DescribeNetworkAclsOutput, Any, Any], + Interceptor[ + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeNetworkInterfacesInput, DescribeNetworkInterfacesOutput, Any, Any + ], + Interceptor[DescribeOutpostLagsInput, DescribeOutpostLagsOutput, Any, Any], + Interceptor[ + DescribePlacementGroupsInput, DescribePlacementGroupsOutput, Any, Any + ], + Interceptor[DescribePrefixListsInput, DescribePrefixListsOutput, Any, Any], + Interceptor[ + DescribePrincipalIdFormatInput, DescribePrincipalIdFormatOutput, Any, Any + ], + Interceptor[ + DescribePublicIpv4PoolsInput, DescribePublicIpv4PoolsOutput, Any, Any + ], + Interceptor[DescribeRegionsInput, DescribeRegionsOutput, Any, Any], + Interceptor[ + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesInput, DescribeReservedInstancesOutput, Any, Any + ], + Interceptor[ + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeRouteServerPeersInput, DescribeRouteServerPeersOutput, Any, Any + ], + Interceptor[DescribeRouteServersInput, DescribeRouteServersOutput, Any, Any], + Interceptor[DescribeRouteTablesInput, DescribeRouteTablesOutput, Any, Any], + Interceptor[ + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + Any, + Any, + ], + Interceptor[ + DescribeScheduledInstancesInput, DescribeScheduledInstancesOutput, Any, Any + ], + Interceptor[ + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSecondaryNetworksInput, DescribeSecondaryNetworksOutput, Any, Any + ], + Interceptor[ + DescribeSecondarySubnetsInput, DescribeSecondarySubnetsOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSecurityGroupRulesInput, DescribeSecurityGroupRulesOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupsInput, DescribeSecurityGroupsOutput, Any, Any + ], + Interceptor[ + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + Any, + Any, + ], + Interceptor[ + DescribeSnapshotAttributeInput, DescribeSnapshotAttributeOutput, Any, Any + ], + Interceptor[DescribeSnapshotsInput, DescribeSnapshotsOutput, Any, Any], + Interceptor[ + DescribeSnapshotTierStatusInput, DescribeSnapshotTierStatusOutput, Any, Any + ], + Interceptor[ + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotFleetInstancesInput, DescribeSpotFleetInstancesOutput, Any, Any + ], + Interceptor[ + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotFleetRequestsInput, DescribeSpotFleetRequestsOutput, Any, Any + ], + Interceptor[ + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + Any, + Any, + ], + Interceptor[ + DescribeSpotPriceHistoryInput, DescribeSpotPriceHistoryOutput, Any, Any + ], + Interceptor[ + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeStoreImageTasksInput, DescribeStoreImageTasksOutput, Any, Any + ], + Interceptor[DescribeSubnetsInput, DescribeSubnetsOutput, Any, Any], + Interceptor[DescribeTagsInput, DescribeTagsOutput, Any, Any], + Interceptor[ + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + Any, + Any, + ], + Interceptor[ + DescribeTransitGatewaysInput, DescribeTransitGatewaysOutput, Any, Any + ], + Interceptor[ + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + Any, + Any, + ], + Interceptor[ + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + Any, + Any, + ], + Interceptor[ + DescribeVolumeAttributeInput, DescribeVolumeAttributeOutput, Any, Any + ], + Interceptor[DescribeVolumesInput, DescribeVolumesOutput, Any, Any], + Interceptor[ + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + Any, + Any, + ], + Interceptor[DescribeVolumeStatusInput, DescribeVolumeStatusOutput, Any, Any], + Interceptor[DescribeVpcAttributeInput, DescribeVpcAttributeOutput, Any, Any], + Interceptor[ + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcClassicLinkInput, DescribeVpcClassicLinkOutput, Any, Any + ], + Interceptor[ + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[DescribeVpcEndpointsInput, DescribeVpcEndpointsOutput, Any, Any], + Interceptor[ + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + Any, + Any, + ], + Interceptor[ + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + Any, + Any, + ], + Interceptor[DescribeVpcsInput, DescribeVpcsOutput, Any, Any], + Interceptor[ + DescribeVpnConcentratorsInput, DescribeVpnConcentratorsOutput, Any, Any + ], + Interceptor[ + DescribeVpnConnectionsInput, DescribeVpnConnectionsOutput, Any, Any + ], + Interceptor[DescribeVpnGatewaysInput, DescribeVpnGatewaysOutput, Any, Any], + Interceptor[DetachClassicLinkVpcInput, DetachClassicLinkVpcOutput, Any, Any], + Interceptor[DetachImageWatermarkInput, DetachImageWatermarkOutput, Any, Any], + Interceptor[DetachInternetGatewayInput, DetachInternetGatewayOutput, Any, Any], + Interceptor[ + DetachNetworkInterfaceInput, DetachNetworkInterfaceOutput, Any, Any + ], + Interceptor[ + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[DetachVolumeInput, DetachVolumeOutput, Any, Any], + Interceptor[DetachVpnGatewayInput, DetachVpnGatewayOutput, Any, Any], + Interceptor[ + DisableAddressTransferInput, DisableAddressTransferOutput, Any, Any + ], + Interceptor[ + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + Any, + Any, + ], + Interceptor[ + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + DisableCapacityManagerInput, DisableCapacityManagerOutput, Any, Any + ], + Interceptor[ + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + Any, + Any, + ], + Interceptor[DisableFastLaunchInput, DisableFastLaunchOutput, Any, Any], + Interceptor[ + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + Any, + Any, + ], + Interceptor[DisableImageInput, DisableImageOutput, Any, Any], + Interceptor[ + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + DisableImageDeprecationInput, DisableImageDeprecationOutput, Any, Any + ], + Interceptor[ + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + Any, + Any, + ], + Interceptor[ + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + Any, + Any, + ], + Interceptor[ + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + Any, + Any, + ], + Interceptor[DisableIpamPolicyInput, DisableIpamPolicyOutput, Any, Any], + Interceptor[ + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + Any, + Any, + ], + Interceptor[ + DisableSerialConsoleAccessInput, DisableSerialConsoleAccessOutput, Any, Any + ], + Interceptor[ + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + Any, + Any, + ], + Interceptor[ + DisableVgwRoutePropagationInput, DisableVgwRoutePropagationOutput, Any, Any + ], + Interceptor[DisableVpcClassicLinkInput, DisableVpcClassicLinkOutput, Any, Any], + Interceptor[ + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[DisassociateAddressInput, DisassociateAddressOutput, Any, Any], + Interceptor[ + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + Any, + Any, + ], + Interceptor[ + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + Any, + Any, + ], + Interceptor[ + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + Any, + Any, + ], + Interceptor[ + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + Any, + Any, + ], + Interceptor[ + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + Any, + Any, + ], + Interceptor[ + DisassociateIpamByoasnInput, DisassociateIpamByoasnOutput, Any, Any + ], + Interceptor[ + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[ + DisassociateRouteServerInput, DisassociateRouteServerOutput, Any, Any + ], + Interceptor[ + DisassociateRouteTableInput, DisassociateRouteTableOutput, Any, Any + ], + Interceptor[ + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + Any, + Any, + ], + Interceptor[ + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + Any, + Any, + ], + Interceptor[ + DisassociateTrunkInterfaceInput, DisassociateTrunkInterfaceOutput, Any, Any + ], + Interceptor[ + DisassociateVpcCidrBlockInput, DisassociateVpcCidrBlockOutput, Any, Any + ], + Interceptor[EnableAddressTransferInput, EnableAddressTransferOutput, Any, Any], + Interceptor[ + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + Any, + Any, + ], + Interceptor[ + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + Any, + Any, + ], + Interceptor[EnableCapacityManagerInput, EnableCapacityManagerOutput, Any, Any], + Interceptor[ + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + Any, + Any, + ], + Interceptor[EnableFastLaunchInput, EnableFastLaunchOutput, Any, Any], + Interceptor[ + EnableFastSnapshotRestoresInput, EnableFastSnapshotRestoresOutput, Any, Any + ], + Interceptor[EnableImageInput, EnableImageOutput, Any, Any], + Interceptor[ + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + EnableImageDeprecationInput, EnableImageDeprecationOutput, Any, Any + ], + Interceptor[ + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + Any, + Any, + ], + Interceptor[ + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + Any, + Any, + ], + Interceptor[ + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + Any, + Any, + ], + Interceptor[ + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + Any, + Any, + ], + Interceptor[EnableIpamPolicyInput, EnableIpamPolicyOutput, Any, Any], + Interceptor[ + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + Any, + Any, + ], + Interceptor[ + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + Any, + Any, + ], + Interceptor[ + EnableSerialConsoleAccessInput, EnableSerialConsoleAccessOutput, Any, Any + ], + Interceptor[ + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + Any, + Any, + ], + Interceptor[ + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + Any, + Any, + ], + Interceptor[ + EnableVgwRoutePropagationInput, EnableVgwRoutePropagationOutput, Any, Any + ], + Interceptor[EnableVolumeIOInput, EnableVolumeIOOutput, Any, Any], + Interceptor[EnableVpcClassicLinkInput, EnableVpcClassicLinkOutput, Any, Any], + Interceptor[ + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + Any, + Any, + ], + Interceptor[ + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + Any, + Any, + ], + Interceptor[ + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + Any, + Any, + ], + Interceptor[ExportImageInput, ExportImageOutput, Any, Any], + Interceptor[ + ExportTransitGatewayRoutesInput, ExportTransitGatewayRoutesOutput, Any, Any + ], + Interceptor[ + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetActiveVpnTunnelStatusInput, GetActiveVpnTunnelStatusOutput, Any, Any + ], + Interceptor[ + GetAllowedImagesSettingsInput, GetAllowedImagesSettingsOutput, Any, Any + ], + Interceptor[ + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + Any, + Any, + ], + Interceptor[ + GetAssociatedIpv6PoolCidrsInput, GetAssociatedIpv6PoolCidrsOutput, Any, Any + ], + Interceptor[ + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + Any, + Any, + ], + Interceptor[ + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + Any, + Any, + ], + Interceptor[ + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[GetCoipPoolUsageInput, GetCoipPoolUsageOutput, Any, Any], + Interceptor[GetConsoleOutputInput, GetConsoleOutputOutput, Any, Any], + Interceptor[GetConsoleScreenshotInput, GetConsoleScreenshotOutput, Any, Any], + Interceptor[ + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + Any, + Any, + ], + Interceptor[ + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[GetEbsDefaultKmsKeyIdInput, GetEbsDefaultKmsKeyIdOutput, Any, Any], + Interceptor[ + GetEbsEncryptionByDefaultInput, GetEbsEncryptionByDefaultOutput, Any, Any + ], + Interceptor[GetEnabledIpamPolicyInput, GetEnabledIpamPolicyOutput, Any, Any], + Interceptor[ + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + Any, + Any, + ], + Interceptor[ + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + Any, + Any, + ], + Interceptor[ + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + Any, + Any, + ], + Interceptor[GetImageAncestryInput, GetImageAncestryOutput, Any, Any], + Interceptor[ + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + Any, + Any, + ], + Interceptor[GetImageFindingsInput, GetImageFindingsOutput, Any, Any], + Interceptor[ + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + Any, + Any, + ], + Interceptor[GetInstanceTpmEkPubInput, GetInstanceTpmEkPubOutput, Any, Any], + Interceptor[ + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + Any, + Any, + ], + Interceptor[GetInstanceUefiDataInput, GetInstanceUefiDataOutput, Any, Any], + Interceptor[GetIpamAddressHistoryInput, GetIpamAddressHistoryOutput, Any, Any], + Interceptor[ + GetIpamDiscoveredAccountsInput, GetIpamDiscoveredAccountsOutput, Any, Any + ], + Interceptor[ + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamDiscoveredRoutesInput, GetIpamDiscoveredRoutesOutput, Any, Any + ], + Interceptor[ + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPoolAllocationsInput, GetIpamPoolAllocationsOutput, Any, Any + ], + Interceptor[GetIpamPoolCidrsInput, GetIpamPoolCidrsOutput, Any, Any], + Interceptor[ + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + Any, + Any, + ], + Interceptor[GetIpamResourceCidrsInput, GetIpamResourceCidrsOutput, Any, Any], + Interceptor[ + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + Any, + Any, + ], + Interceptor[ + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + Any, + Any, + ], + Interceptor[GetLaunchTemplateDataInput, GetLaunchTemplateDataOutput, Any, Any], + Interceptor[ + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + Any, + Any, + ], + Interceptor[ + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + Any, + Any, + ], + Interceptor[ + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + Any, + Any, + ], + Interceptor[GetPasswordDataInput, GetPasswordDataOutput, Any, Any], + Interceptor[ + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + Any, + Any, + ], + Interceptor[ + GetRouteServerAssociationsInput, GetRouteServerAssociationsOutput, Any, Any + ], + Interceptor[ + GetRouteServerPropagationsInput, GetRouteServerPropagationsOutput, Any, Any + ], + Interceptor[ + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + Any, + Any, + ], + Interceptor[ + GetSecurityGroupsForVpcInput, GetSecurityGroupsForVpcOutput, Any, Any + ], + Interceptor[ + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + Any, + Any, + ], + Interceptor[ + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + Any, + Any, + ], + Interceptor[ + GetSpotPlacementScoresInput, GetSpotPlacementScoresOutput, Any, Any + ], + Interceptor[ + GetSubnetCidrReservationsInput, GetSubnetCidrReservationsOutput, Any, Any + ], + Interceptor[ + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + Any, + Any, + ], + Interceptor[ + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + Any, + Any, + ], + Interceptor[ + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + Any, + Any, + ], + Interceptor[ + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + Any, + Any, + ], + Interceptor[ + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + Any, + Any, + ], + Interceptor[ + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + Any, + Any, + ], + Interceptor[ImportImageInput, ImportImageOutput, Any, Any], + Interceptor[ImportInstanceInput, ImportInstanceOutput, Any, Any], + Interceptor[ImportKeyPairInput, ImportKeyPairOutput, Any, Any], + Interceptor[ImportSnapshotInput, ImportSnapshotOutput, Any, Any], + Interceptor[ImportVolumeInput, ImportVolumeOutput, Any, Any], + Interceptor[ + ListImagesInRecycleBinInput, ListImagesInRecycleBinOutput, Any, Any + ], + Interceptor[ + ListSnapshotsInRecycleBinInput, ListSnapshotsInRecycleBinOutput, Any, Any + ], + Interceptor[ + ListVolumesInRecycleBinInput, ListVolumesInRecycleBinOutput, Any, Any + ], + Interceptor[LockSnapshotInput, LockSnapshotOutput, Any, Any], + Interceptor[ + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + Any, + Any, + ], + Interceptor[ + ModifyAddressAttributeInput, ModifyAddressAttributeOutput, Any, Any + ], + Interceptor[ + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + Any, + Any, + ], + Interceptor[ + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + Any, + Any, + ], + Interceptor[ + ModifyCapacityReservationInput, ModifyCapacityReservationOutput, Any, Any + ], + Interceptor[ + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + Any, + Any, + ], + Interceptor[ + ModifyClientVpnEndpointInput, ModifyClientVpnEndpointOutput, Any, Any + ], + Interceptor[ + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyEbsDefaultKmsKeyIdInput, ModifyEbsDefaultKmsKeyIdOutput, Any, Any + ], + Interceptor[ModifyFleetInput, ModifyFleetOutput, Any, Any], + Interceptor[ + ModifyFpgaImageAttributeInput, ModifyFpgaImageAttributeOutput, Any, Any + ], + Interceptor[ModifyHostsInput, ModifyHostsOutput, Any, Any], + Interceptor[ + ModifyIdentityIdFormatInput, ModifyIdentityIdFormatOutput, Any, Any + ], + Interceptor[ModifyIdFormatInput, ModifyIdFormatOutput, Any, Any], + Interceptor[ModifyImageAttributeInput, ModifyImageAttributeOutput, Any, Any], + Interceptor[ + ModifyInstanceAttributeInput, ModifyInstanceAttributeOutput, Any, Any + ], + Interceptor[ + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceCpuOptionsInput, ModifyInstanceCpuOptionsOutput, Any, Any + ], + Interceptor[ + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceEventWindowInput, ModifyInstanceEventWindowOutput, Any, Any + ], + Interceptor[ + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyInstancePlacementInput, ModifyInstancePlacementOutput, Any, Any + ], + Interceptor[ModifyIpamInput, ModifyIpamOutput, Any, Any], + Interceptor[ + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + Any, + Any, + ], + Interceptor[ModifyIpamPoolInput, ModifyIpamPoolOutput, Any, Any], + Interceptor[ + ModifyIpamPoolAllocationInput, ModifyIpamPoolAllocationOutput, Any, Any + ], + Interceptor[ + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamResourceCidrInput, ModifyIpamResourceCidrOutput, Any, Any + ], + Interceptor[ + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + Any, + Any, + ], + Interceptor[ + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + Any, + Any, + ], + Interceptor[ModifyIpamScopeInput, ModifyIpamScopeOutput, Any, Any], + Interceptor[ModifyLaunchTemplateInput, ModifyLaunchTemplateOutput, Any, Any], + Interceptor[ + ModifyLocalGatewayRouteInput, ModifyLocalGatewayRouteOutput, Any, Any + ], + Interceptor[ + ModifyManagedPrefixListInput, ModifyManagedPrefixListOutput, Any, Any + ], + Interceptor[ + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyReservedInstancesInput, ModifyReservedInstancesOutput, Any, Any + ], + Interceptor[ModifyRouteServerInput, ModifyRouteServerOutput, Any, Any], + Interceptor[ + ModifySecurityGroupRulesInput, ModifySecurityGroupRulesOutput, Any, Any + ], + Interceptor[ + ModifySnapshotAttributeInput, ModifySnapshotAttributeOutput, Any, Any + ], + Interceptor[ModifySnapshotTierInput, ModifySnapshotTierOutput, Any, Any], + Interceptor[ + ModifySpotFleetRequestInput, ModifySpotFleetRequestOutput, Any, Any + ], + Interceptor[ModifySubnetAttributeInput, ModifySubnetAttributeOutput, Any, Any], + Interceptor[ + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + Any, + Any, + ], + Interceptor[ + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + Any, + Any, + ], + Interceptor[ + ModifyTrafficMirrorSessionInput, ModifyTrafficMirrorSessionOutput, Any, Any + ], + Interceptor[ModifyTransitGatewayInput, ModifyTransitGatewayOutput, Any, Any], + Interceptor[ + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + Any, + Any, + ], + Interceptor[ + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessGroupInput, ModifyVerifiedAccessGroupOutput, Any, Any + ], + Interceptor[ + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOutput, + Any, + Any, + ], + Interceptor[ModifyVolumeInput, ModifyVolumeOutput, Any, Any], + Interceptor[ModifyVolumeAttributeInput, ModifyVolumeAttributeOutput, Any, Any], + Interceptor[ModifyVpcAttributeInput, ModifyVpcAttributeOutput, Any, Any], + Interceptor[ + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEncryptionControlInput, ModifyVpcEncryptionControlOutput, Any, Any + ], + Interceptor[ModifyVpcEndpointInput, ModifyVpcEndpointOutput, Any, Any], + Interceptor[ + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + Any, + Any, + ], + Interceptor[ + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + Any, + Any, + ], + Interceptor[ModifyVpcTenancyInput, ModifyVpcTenancyOutput, Any, Any], + Interceptor[ModifyVpnConnectionInput, ModifyVpnConnectionOutput, Any, Any], + Interceptor[ + ModifyVpnConnectionOptionsInput, ModifyVpnConnectionOptionsOutput, Any, Any + ], + Interceptor[ + ModifyVpnTunnelCertificateInput, ModifyVpnTunnelCertificateOutput, Any, Any + ], + Interceptor[ + ModifyVpnTunnelOptionsInput, ModifyVpnTunnelOptionsOutput, Any, Any + ], + Interceptor[MonitorInstancesInput, MonitorInstancesOutput, Any, Any], + Interceptor[MoveAddressToVpcInput, MoveAddressToVpcOutput, Any, Any], + Interceptor[MoveByoipCidrToIpamInput, MoveByoipCidrToIpamOutput, Any, Any], + Interceptor[ + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + Any, + Any, + ], + Interceptor[ProvisionByoipCidrInput, ProvisionByoipCidrOutput, Any, Any], + Interceptor[ProvisionIpamByoasnInput, ProvisionIpamByoasnOutput, Any, Any], + Interceptor[ProvisionIpamPoolCidrInput, ProvisionIpamPoolCidrOutput, Any, Any], + Interceptor[ + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + Any, + Any, + ], + Interceptor[PurchaseCapacityBlockInput, PurchaseCapacityBlockOutput, Any, Any], + Interceptor[ + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + Any, + Any, + ], + Interceptor[ + PurchaseHostReservationInput, PurchaseHostReservationOutput, Any, Any + ], + Interceptor[ + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + Any, + Any, + ], + Interceptor[ + PurchaseScheduledInstancesInput, PurchaseScheduledInstancesOutput, Any, Any + ], + Interceptor[RebootInstancesInput, RebootInstancesOutput, Any, Any], + Interceptor[RegisterImageInput, RegisterImageOutput, Any, Any], + Interceptor[ + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + Any, + Any, + ], + Interceptor[ + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + Any, + Any, + ], + Interceptor[ + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + Any, + Any, + ], + Interceptor[ + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + Any, + Any, + ], + Interceptor[ + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + Any, + Any, + ], + Interceptor[ + RejectVpcPeeringConnectionInput, RejectVpcPeeringConnectionOutput, Any, Any + ], + Interceptor[ReleaseAddressInput, ReleaseAddressOutput, Any, Any], + Interceptor[ReleaseHostsInput, ReleaseHostsOutput, Any, Any], + Interceptor[ + ReleaseIpamPoolAllocationInput, ReleaseIpamPoolAllocationOutput, Any, Any + ], + Interceptor[ + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + Any, + Any, + ], + Interceptor[ + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceNetworkAclEntryInput, ReplaceNetworkAclEntryOutput, Any, Any + ], + Interceptor[ReplaceRouteInput, ReplaceRouteOutput, Any, Any], + Interceptor[ + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + Any, + Any, + ], + Interceptor[ + ReplaceTransitGatewayRouteInput, ReplaceTransitGatewayRouteOutput, Any, Any + ], + Interceptor[ReplaceVpnTunnelInput, ReplaceVpnTunnelOutput, Any, Any], + Interceptor[ReportInstanceStatusInput, ReportInstanceStatusOutput, Any, Any], + Interceptor[RequestSpotFleetInput, RequestSpotFleetOutput, Any, Any], + Interceptor[RequestSpotInstancesInput, RequestSpotInstancesOutput, Any, Any], + Interceptor[ResetAddressAttributeInput, ResetAddressAttributeOutput, Any, Any], + Interceptor[ + ResetEbsDefaultKmsKeyIdInput, ResetEbsDefaultKmsKeyIdOutput, Any, Any + ], + Interceptor[ + ResetFpgaImageAttributeInput, ResetFpgaImageAttributeOutput, Any, Any + ], + Interceptor[ResetImageAttributeInput, ResetImageAttributeOutput, Any, Any], + Interceptor[ + ResetInstanceAttributeInput, ResetInstanceAttributeOutput, Any, Any + ], + Interceptor[ + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + Any, + Any, + ], + Interceptor[ + ResetSnapshotAttributeInput, ResetSnapshotAttributeOutput, Any, Any + ], + Interceptor[ + RestoreAddressToClassicInput, RestoreAddressToClassicOutput, Any, Any + ], + Interceptor[ + RestoreImageFromRecycleBinInput, RestoreImageFromRecycleBinOutput, Any, Any + ], + Interceptor[ + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + Any, + Any, + ], + Interceptor[ + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + Any, + Any, + ], + Interceptor[RestoreSnapshotTierInput, RestoreSnapshotTierOutput, Any, Any], + Interceptor[ + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + Any, + Any, + ], + Interceptor[ + RevokeClientVpnIngressInput, RevokeClientVpnIngressOutput, Any, Any + ], + Interceptor[ + RevokeSecurityGroupEgressInput, RevokeSecurityGroupEgressOutput, Any, Any + ], + Interceptor[ + RevokeSecurityGroupIngressInput, RevokeSecurityGroupIngressOutput, Any, Any + ], + Interceptor[RunInstancesInput, RunInstancesOutput, Any, Any], + Interceptor[RunScheduledInstancesInput, RunScheduledInstancesOutput, Any, Any], + Interceptor[ + SearchLocalGatewayRoutesInput, SearchLocalGatewayRoutesOutput, Any, Any + ], + Interceptor[ + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + Any, + Any, + ], + Interceptor[ + SearchTransitGatewayRoutesInput, SearchTransitGatewayRoutesOutput, Any, Any + ], + Interceptor[ + SendDiagnosticInterruptInput, SendDiagnosticInterruptOutput, Any, Any + ], + Interceptor[ + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + Any, + Any, + ], + Interceptor[StartInstancesInput, StartInstancesOutput, Any, Any], + Interceptor[ + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + Any, + Any, + ], + Interceptor[ + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + Any, + Any, + ], + Interceptor[ + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + Any, + Any, + ], + Interceptor[StopInstancesInput, StopInstancesOutput, Any, Any], + Interceptor[ + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + Any, + Any, + ], + Interceptor[TerminateInstancesInput, TerminateInstancesOutput, Any, Any], + Interceptor[UnassignIpv6AddressesInput, UnassignIpv6AddressesOutput, Any, Any], + Interceptor[ + UnassignPrivateIpAddressesInput, UnassignPrivateIpAddressesOutput, Any, Any + ], + Interceptor[ + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + Any, + Any, + ], + Interceptor[UnlockSnapshotInput, UnlockSnapshotOutput, Any, Any], + Interceptor[UnmonitorInstancesInput, UnmonitorInstancesOutput, Any, Any], + Interceptor[ + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + Any, + Any, + ], + Interceptor[ + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + Any, + Any, + ], + Interceptor[ + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + Any, + Any, + ], + Interceptor[ + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + Any, + Any, + ], + Interceptor[ + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + Any, + Any, + ], + Interceptor[ + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + Any, + Any, + ], + Interceptor[WithdrawByoipCidrInput, WithdrawByoipCidrOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.ec2", + service_target="AmazonEC2", + version="2016-11-15", + service_schema=AMAZON_EC2, +) + + +class _EC2ConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class EC2Config(AwsConfig): + """EC2 configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("ec2").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: Ec2QueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="ec2") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_EC2ConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[EC2Config], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.py new file mode 100644 index 00000000..6da1df1f --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.py @@ -0,0 +1,11487 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={"Scope": "SCOPE"}, + index={ + "AcceleratorCount": "ACCELERATOR_COUNT", + "AcceleratorCountRequest": "ACCELERATOR_COUNT_REQUEST", + "AcceleratorManufacturer": "ACCELERATOR_MANUFACTURER", + "AcceleratorName": "ACCELERATOR_NAME", + "AcceleratorTotalMemoryMiB": "ACCELERATOR_TOTAL_MEMORY_MI_B", + "AcceleratorTotalMemoryMiBRequest": "ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST", + "AcceleratorType": "ACCELERATOR_TYPE", + "AcceptAddressTransferInput": "ACCEPT_ADDRESS_TRANSFER_INPUT", + "AcceptAddressTransferOutput": "ACCEPT_ADDRESS_TRANSFER_OUTPUT", + "AcceptCapacityReservationBillingOwnershipInput": "ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT", + "AcceptCapacityReservationBillingOwnershipOutput": "ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT", + "AcceptReservedInstancesExchangeQuoteInput": "ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT", + "AcceptReservedInstancesExchangeQuoteOutput": "ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT", + "AcceptTransitGatewayClientVpnAttachmentInput": "ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT", + "AcceptTransitGatewayClientVpnAttachmentOutput": "ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT", + "AcceptTransitGatewayMulticastDomainAssociationsInput": "ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT", + "AcceptTransitGatewayMulticastDomainAssociationsOutput": "ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT", + "AcceptTransitGatewayPeeringAttachmentInput": "ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT", + "AcceptTransitGatewayPeeringAttachmentOutput": "ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT", + "AcceptTransitGatewayVpcAttachmentInput": "ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT", + "AcceptTransitGatewayVpcAttachmentOutput": "ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT", + "AcceptVpcEndpointConnectionsInput": "ACCEPT_VPC_ENDPOINT_CONNECTIONS_INPUT", + "AcceptVpcEndpointConnectionsOutput": "ACCEPT_VPC_ENDPOINT_CONNECTIONS_OUTPUT", + "AcceptVpcPeeringConnectionInput": "ACCEPT_VPC_PEERING_CONNECTION_INPUT", + "AcceptVpcPeeringConnectionOutput": "ACCEPT_VPC_PEERING_CONNECTION_OUTPUT", + "AccessScopeAnalysisFinding": "ACCESS_SCOPE_ANALYSIS_FINDING", + "AccessScopePath": "ACCESS_SCOPE_PATH", + "AccessScopePathRequest": "ACCESS_SCOPE_PATH_REQUEST", + "AccountAttribute": "ACCOUNT_ATTRIBUTE", + "AccountAttributeName": "ACCOUNT_ATTRIBUTE_NAME", + "AccountAttributeValue": "ACCOUNT_ATTRIBUTE_VALUE", + "AccountVpcEncryptionControl": "ACCOUNT_VPC_ENCRYPTION_CONTROL", + "AccountVpcEncryptionControlExclusions": "ACCOUNT_VPC_ENCRYPTION_CONTROL_EXCLUSIONS", + "AccountVpcEncryptionControlMode": "ACCOUNT_VPC_ENCRYPTION_CONTROL_MODE", + "AccountVpcEncryptionControlState": "ACCOUNT_VPC_ENCRYPTION_CONTROL_STATE", + "ActiveInstance": "ACTIVE_INSTANCE", + "ActiveVpnTunnelStatus": "ACTIVE_VPN_TUNNEL_STATUS", + "ActivityStatus": "ACTIVITY_STATUS", + "AddedPrincipal": "ADDED_PRINCIPAL", + "AddIpamOperatingRegion": "ADD_IPAM_OPERATING_REGION", + "AddIpamOrganizationalUnitExclusion": "ADD_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION", + "AdditionalDetail": "ADDITIONAL_DETAIL", + "AddPrefixListEntry": "ADD_PREFIX_LIST_ENTRY", + "Address": "ADDRESS", + "AddressAttribute": "ADDRESS_ATTRIBUTE", + "AddressAttributeName": "ADDRESS_ATTRIBUTE_NAME", + "AddressFamily": "ADDRESS_FAMILY", + "AddressTransfer": "ADDRESS_TRANSFER", + "AddressTransferStatus": "ADDRESS_TRANSFER_STATUS", + "AdvertiseByoipCidrInput": "ADVERTISE_BYOIP_CIDR_INPUT", + "AdvertiseByoipCidrOutput": "ADVERTISE_BYOIP_CIDR_OUTPUT", + "Affinity": "AFFINITY", + "AggregationStatusEnum": "AGGREGATION_STATUS_ENUM", + "AllocateAddressInput": "ALLOCATE_ADDRESS_INPUT", + "AllocateAddressOutput": "ALLOCATE_ADDRESS_OUTPUT", + "AllocateHostsInput": "ALLOCATE_HOSTS_INPUT", + "AllocateHostsOutput": "ALLOCATE_HOSTS_OUTPUT", + "AllocateIpamPoolCidrInput": "ALLOCATE_IPAM_POOL_CIDR_INPUT", + "AllocateIpamPoolCidrOutput": "ALLOCATE_IPAM_POOL_CIDR_OUTPUT", + "AllocationState": "ALLOCATION_STATE", + "AllocationStrategy": "ALLOCATION_STRATEGY", + "AllocationType": "ALLOCATION_TYPE", + "AllowedImagesSettingsDisabledState": "ALLOWED_IMAGES_SETTINGS_DISABLED_STATE", + "AllowedImagesSettingsEnabledState": "ALLOWED_IMAGES_SETTINGS_ENABLED_STATE", + "AllowedPrincipal": "ALLOWED_PRINCIPAL", + "AllowsMultipleInstanceTypes": "ALLOWS_MULTIPLE_INSTANCE_TYPES", + "AlternatePathHint": "ALTERNATE_PATH_HINT", + "AmdSevSnp": "AMD_SEV_SNP", + "AmdSevSnpSpecification": "AMD_SEV_SNP_SPECIFICATION", + "AnalysisAclRule": "ANALYSIS_ACL_RULE", + "AnalysisComponent": "ANALYSIS_COMPONENT", + "AnalysisLoadBalancerListener": "ANALYSIS_LOAD_BALANCER_LISTENER", + "AnalysisLoadBalancerTarget": "ANALYSIS_LOAD_BALANCER_TARGET", + "AnalysisPacketHeader": "ANALYSIS_PACKET_HEADER", + "AnalysisRouteTableRoute": "ANALYSIS_ROUTE_TABLE_ROUTE", + "AnalysisSecurityGroupRule": "ANALYSIS_SECURITY_GROUP_RULE", + "AnalysisStatus": "ANALYSIS_STATUS", + "AnalysisTransitGatewayPolicyTableEntry": "ANALYSIS_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + "ApplianceModeSupportValue": "APPLIANCE_MODE_SUPPORT_VALUE", + "ApplicationStatus": "APPLICATION_STATUS", + "ApplicationStatusCheckAssociationObject": "APPLICATION_STATUS_CHECK_ASSOCIATION_OBJECT", + "ApplicationStatusCheckEnum": "APPLICATION_STATUS_CHECK_ENUM", + "ApplicationStatusCheckResponseObject": "APPLICATION_STATUS_CHECK_RESPONSE_OBJECT", + "ApplicationStatusDetail": "APPLICATION_STATUS_DETAIL", + "ApplicationStatusEnum": "APPLICATION_STATUS_ENUM", + "ApplicationStatusesResponseType": "APPLICATION_STATUSES_RESPONSE_TYPE", + "ApplicationStatusReason": "APPLICATION_STATUS_REASON", + "ApplicationStatusSummary": "APPLICATION_STATUS_SUMMARY", + "ApplyCancellationCharges": "APPLY_CANCELLATION_CHARGES", + "ApplySecurityGroupsToClientVpnTargetNetworkInput": "APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_INPUT", + "ApplySecurityGroupsToClientVpnTargetNetworkOutput": "APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK_OUTPUT", + "ArchitectureType": "ARCHITECTURE_TYPE", + "ArchitectureValues": "ARCHITECTURE_VALUES", + "AsnAssociation": "ASN_ASSOCIATION", + "AsnAssociationState": "ASN_ASSOCIATION_STATE", + "AsnAuthorizationContext": "ASN_AUTHORIZATION_CONTEXT", + "AsnState": "ASN_STATE", + "AssignedPrivateIpAddress": "ASSIGNED_PRIVATE_IP_ADDRESS", + "AssignIpv6AddressesInput": "ASSIGN_IPV6_ADDRESSES_INPUT", + "AssignIpv6AddressesOutput": "ASSIGN_IPV6_ADDRESSES_OUTPUT", + "AssignPrivateIpAddressesInput": "ASSIGN_PRIVATE_IP_ADDRESSES_INPUT", + "AssignPrivateIpAddressesOutput": "ASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT", + "AssignPrivateNatGatewayAddressInput": "ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT", + "AssignPrivateNatGatewayAddressOutput": "ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT", + "AssociateAddressInput": "ASSOCIATE_ADDRESS_INPUT", + "AssociateAddressOutput": "ASSOCIATE_ADDRESS_OUTPUT", + "AssociateApplicationStatusCheckInput": "ASSOCIATE_APPLICATION_STATUS_CHECK_INPUT", + "AssociateApplicationStatusCheckOutput": "ASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT", + "AssociateCapacityReservationBillingOwnerInput": "ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT", + "AssociateCapacityReservationBillingOwnerOutput": "ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT", + "AssociateClientVpnTargetNetworkInput": "ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT", + "AssociateClientVpnTargetNetworkOutput": "ASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT", + "AssociateDhcpOptionsInput": "ASSOCIATE_DHCP_OPTIONS_INPUT", + "AssociateDhcpOptionsOutput": "ASSOCIATE_DHCP_OPTIONS_OUTPUT", + "AssociatedNetworkType": "ASSOCIATED_NETWORK_TYPE", + "AssociatedRole": "ASSOCIATED_ROLE", + "AssociatedTargetNetwork": "ASSOCIATED_TARGET_NETWORK", + "AssociateEnclaveCertificateIamRoleInput": "ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT", + "AssociateEnclaveCertificateIamRoleOutput": "ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT", + "AssociateIamInstanceProfileInput": "ASSOCIATE_IAM_INSTANCE_PROFILE_INPUT", + "AssociateIamInstanceProfileOutput": "ASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT", + "AssociateInstanceEventWindowInput": "ASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT", + "AssociateInstanceEventWindowOutput": "ASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT", + "AssociateIpamByoasnInput": "ASSOCIATE_IPAM_BYOASN_INPUT", + "AssociateIpamByoasnOutput": "ASSOCIATE_IPAM_BYOASN_OUTPUT", + "AssociateIpamResourceDiscoveryInput": "ASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT", + "AssociateIpamResourceDiscoveryOutput": "ASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT", + "AssociateNatGatewayAddressInput": "ASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT", + "AssociateNatGatewayAddressOutput": "ASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT", + "AssociateRouteServerInput": "ASSOCIATE_ROUTE_SERVER_INPUT", + "AssociateRouteServerOutput": "ASSOCIATE_ROUTE_SERVER_OUTPUT", + "AssociateRouteTableInput": "ASSOCIATE_ROUTE_TABLE_INPUT", + "AssociateRouteTableOutput": "ASSOCIATE_ROUTE_TABLE_OUTPUT", + "AssociateSecurityGroupVpcInput": "ASSOCIATE_SECURITY_GROUP_VPC_INPUT", + "AssociateSecurityGroupVpcOutput": "ASSOCIATE_SECURITY_GROUP_VPC_OUTPUT", + "AssociateSubnetCidrBlockInput": "ASSOCIATE_SUBNET_CIDR_BLOCK_INPUT", + "AssociateSubnetCidrBlockOutput": "ASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT", + "AssociateTransitGatewayMulticastDomainInput": "ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT", + "AssociateTransitGatewayMulticastDomainOutput": "ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT", + "AssociateTransitGatewayPolicyTableInput": "ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT", + "AssociateTransitGatewayPolicyTableOutput": "ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT", + "AssociateTransitGatewayRouteTableInput": "ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT", + "AssociateTransitGatewayRouteTableOutput": "ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT", + "AssociateTrunkInterfaceInput": "ASSOCIATE_TRUNK_INTERFACE_INPUT", + "AssociateTrunkInterfaceOutput": "ASSOCIATE_TRUNK_INTERFACE_OUTPUT", + "AssociateVpcCidrBlockInput": "ASSOCIATE_VPC_CIDR_BLOCK_INPUT", + "AssociateVpcCidrBlockOutput": "ASSOCIATE_VPC_CIDR_BLOCK_OUTPUT", + "AssociationStatus": "ASSOCIATION_STATUS", + "AssociationStatusCode": "ASSOCIATION_STATUS_CODE", + "AssociationTypeEnum": "ASSOCIATION_TYPE_ENUM", + "AthenaIntegration": "ATHENA_INTEGRATION", + "AttachClassicLinkVpcInput": "ATTACH_CLASSIC_LINK_VPC_INPUT", + "AttachClassicLinkVpcOutput": "ATTACH_CLASSIC_LINK_VPC_OUTPUT", + "AttachImageWatermarkInput": "ATTACH_IMAGE_WATERMARK_INPUT", + "AttachImageWatermarkOutput": "ATTACH_IMAGE_WATERMARK_OUTPUT", + "AttachInternetGatewayInput": "ATTACH_INTERNET_GATEWAY_INPUT", + "AttachInternetGatewayOutput": "ATTACH_INTERNET_GATEWAY_OUTPUT", + "AttachmentEnaSrdSpecification": "ATTACHMENT_ENA_SRD_SPECIFICATION", + "AttachmentEnaSrdUdpSpecification": "ATTACHMENT_ENA_SRD_UDP_SPECIFICATION", + "AttachmentLimitType": "ATTACHMENT_LIMIT_TYPE", + "AttachmentStatus": "ATTACHMENT_STATUS", + "AttachNetworkInterfaceInput": "ATTACH_NETWORK_INTERFACE_INPUT", + "AttachNetworkInterfaceOutput": "ATTACH_NETWORK_INTERFACE_OUTPUT", + "AttachVerifiedAccessTrustProviderInput": "ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT", + "AttachVerifiedAccessTrustProviderOutput": "ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT", + "AttachVolumeInput": "ATTACH_VOLUME_INPUT", + "AttachVolumeOutput": "ATTACH_VOLUME_OUTPUT", + "AttachVpnGatewayInput": "ATTACH_VPN_GATEWAY_INPUT", + "AttachVpnGatewayOutput": "ATTACH_VPN_GATEWAY_OUTPUT", + "AttributeBooleanValue": "ATTRIBUTE_BOOLEAN_VALUE", + "AttributeSummary": "ATTRIBUTE_SUMMARY", + "AttributeValue": "ATTRIBUTE_VALUE", + "AuthorizationRule": "AUTHORIZATION_RULE", + "AuthorizeClientVpnIngressInput": "AUTHORIZE_CLIENT_VPN_INGRESS_INPUT", + "AuthorizeClientVpnIngressOutput": "AUTHORIZE_CLIENT_VPN_INGRESS_OUTPUT", + "AuthorizeSecurityGroupEgressInput": "AUTHORIZE_SECURITY_GROUP_EGRESS_INPUT", + "AuthorizeSecurityGroupEgressOutput": "AUTHORIZE_SECURITY_GROUP_EGRESS_OUTPUT", + "AuthorizeSecurityGroupIngressInput": "AUTHORIZE_SECURITY_GROUP_INGRESS_INPUT", + "AuthorizeSecurityGroupIngressOutput": "AUTHORIZE_SECURITY_GROUP_INGRESS_OUTPUT", + "AutoAcceptSharedAssociationsValue": "AUTO_ACCEPT_SHARED_ASSOCIATIONS_VALUE", + "AutoAcceptSharedAttachmentsValue": "AUTO_ACCEPT_SHARED_ATTACHMENTS_VALUE", + "AutoPlacement": "AUTO_PLACEMENT", + "AutoProvisionZonesState": "AUTO_PROVISION_ZONES_STATE", + "AutoScalingIpsState": "AUTO_SCALING_IPS_STATE", + "AvailabilityMode": "AVAILABILITY_MODE", + "AvailabilityZone": "AVAILABILITY_ZONE", + "AvailabilityZoneAddress": "AVAILABILITY_ZONE_ADDRESS", + "AvailabilityZoneGeography": "AVAILABILITY_ZONE_GEOGRAPHY", + "AvailabilityZoneMessage": "AVAILABILITY_ZONE_MESSAGE", + "AvailabilityZoneOptInStatus": "AVAILABILITY_ZONE_OPT_IN_STATUS", + "AvailabilityZoneState": "AVAILABILITY_ZONE_STATE", + "AvailabilityZoneSubGeography": "AVAILABILITY_ZONE_SUB_GEOGRAPHY", + "AvailableCapacity": "AVAILABLE_CAPACITY", + "BandwidthWeightingType": "BANDWIDTH_WEIGHTING_TYPE", + "BareMetal": "BARE_METAL", + "BaselineEbsBandwidthMbps": "BASELINE_EBS_BANDWIDTH_MBPS", + "BaselineEbsBandwidthMbpsRequest": "BASELINE_EBS_BANDWIDTH_MBPS_REQUEST", + "BaselinePerformanceFactors": "BASELINE_PERFORMANCE_FACTORS", + "BaselinePerformanceFactorsRequest": "BASELINE_PERFORMANCE_FACTORS_REQUEST", + "BatchModifyIpamRoutingPolicyRegistrationsInput": "BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT", + "BatchModifyIpamRoutingPolicyRegistrationsOutput": "BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT", + "BatchState": "BATCH_STATE", + "BgpStatus": "BGP_STATUS", + "BlockDeviceMapping": "BLOCK_DEVICE_MAPPING", + "BlockDeviceMappingResponse": "BLOCK_DEVICE_MAPPING_RESPONSE", + "BlockPublicAccessMode": "BLOCK_PUBLIC_ACCESS_MODE", + "BlockPublicAccessStates": "BLOCK_PUBLIC_ACCESS_STATES", + "BootModeOverrideValues": "BOOT_MODE_OVERRIDE_VALUES", + "BootModeType": "BOOT_MODE_TYPE", + "BootModeValues": "BOOT_MODE_VALUES", + "BundleInstanceInput": "BUNDLE_INSTANCE_INPUT", + "BundleInstanceOutput": "BUNDLE_INSTANCE_OUTPUT", + "BundleTask": "BUNDLE_TASK", + "BundleTaskError": "BUNDLE_TASK_ERROR", + "BundleTaskState": "BUNDLE_TASK_STATE", + "BurstablePerformance": "BURSTABLE_PERFORMANCE", + "Byoasn": "BYOASN", + "ByoipCidr": "BYOIP_CIDR", + "ByoipCidrState": "BYOIP_CIDR_STATE", + "CallerRole": "CALLER_ROLE", + "CancelBatchErrorCode": "CANCEL_BATCH_ERROR_CODE", + "CancelBundleTaskInput": "CANCEL_BUNDLE_TASK_INPUT", + "CancelBundleTaskOutput": "CANCEL_BUNDLE_TASK_OUTPUT", + "CancelCapacityReservationFleetError": "CANCEL_CAPACITY_RESERVATION_FLEET_ERROR", + "CancelCapacityReservationFleetsInput": "CANCEL_CAPACITY_RESERVATION_FLEETS_INPUT", + "CancelCapacityReservationFleetsOutput": "CANCEL_CAPACITY_RESERVATION_FLEETS_OUTPUT", + "CancelCapacityReservationInput": "CANCEL_CAPACITY_RESERVATION_INPUT", + "CancelCapacityReservationOutput": "CANCEL_CAPACITY_RESERVATION_OUTPUT", + "CancelConversionTaskInput": "CANCEL_CONVERSION_TASK_INPUT", + "CancelConversionTaskOutput": "CANCEL_CONVERSION_TASK_OUTPUT", + "CancelDeclarativePoliciesReportInput": "CANCEL_DECLARATIVE_POLICIES_REPORT_INPUT", + "CancelDeclarativePoliciesReportOutput": "CANCEL_DECLARATIVE_POLICIES_REPORT_OUTPUT", + "CancelExportTaskInput": "CANCEL_EXPORT_TASK_INPUT", + "CancelExportTaskOutput": "CANCEL_EXPORT_TASK_OUTPUT", + "CancelImageLaunchPermissionInput": "CANCEL_IMAGE_LAUNCH_PERMISSION_INPUT", + "CancelImageLaunchPermissionOutput": "CANCEL_IMAGE_LAUNCH_PERMISSION_OUTPUT", + "CancelImportTaskInput": "CANCEL_IMPORT_TASK_INPUT", + "CancelImportTaskOutput": "CANCEL_IMPORT_TASK_OUTPUT", + "CancellationTerms": "CANCELLATION_TERMS", + "CancelledSpotInstanceRequest": "CANCELLED_SPOT_INSTANCE_REQUEST", + "CancelReservedInstancesListingInput": "CANCEL_RESERVED_INSTANCES_LISTING_INPUT", + "CancelReservedInstancesListingOutput": "CANCEL_RESERVED_INSTANCES_LISTING_OUTPUT", + "CancelSpotFleetRequestsError": "CANCEL_SPOT_FLEET_REQUESTS_ERROR", + "CancelSpotFleetRequestsErrorItem": "CANCEL_SPOT_FLEET_REQUESTS_ERROR_ITEM", + "CancelSpotFleetRequestsInput": "CANCEL_SPOT_FLEET_REQUESTS_INPUT", + "CancelSpotFleetRequestsOutput": "CANCEL_SPOT_FLEET_REQUESTS_OUTPUT", + "CancelSpotFleetRequestsSuccessItem": "CANCEL_SPOT_FLEET_REQUESTS_SUCCESS_ITEM", + "CancelSpotInstanceRequestsInput": "CANCEL_SPOT_INSTANCE_REQUESTS_INPUT", + "CancelSpotInstanceRequestsOutput": "CANCEL_SPOT_INSTANCE_REQUESTS_OUTPUT", + "CancelSpotInstanceRequestState": "CANCEL_SPOT_INSTANCE_REQUEST_STATE", + "CapacityAllocation": "CAPACITY_ALLOCATION", + "CapacityAllocationMetadataEntry": "CAPACITY_ALLOCATION_METADATA_ENTRY", + "CapacityBlock": "CAPACITY_BLOCK", + "CapacityBlockExtension": "CAPACITY_BLOCK_EXTENSION", + "CapacityBlockExtensionOffering": "CAPACITY_BLOCK_EXTENSION_OFFERING", + "CapacityBlockExtensionStatus": "CAPACITY_BLOCK_EXTENSION_STATUS", + "CapacityBlockInterconnectStatus": "CAPACITY_BLOCK_INTERCONNECT_STATUS", + "CapacityBlockOffering": "CAPACITY_BLOCK_OFFERING", + "CapacityBlockResourceState": "CAPACITY_BLOCK_RESOURCE_STATE", + "CapacityBlockStatus": "CAPACITY_BLOCK_STATUS", + "CapacityManagerCondition": "CAPACITY_MANAGER_CONDITION", + "CapacityManagerDataExportResponse": "CAPACITY_MANAGER_DATA_EXPORT_RESPONSE", + "CapacityManagerDataExportStatus": "CAPACITY_MANAGER_DATA_EXPORT_STATUS", + "CapacityManagerDimension": "CAPACITY_MANAGER_DIMENSION", + "CapacityManagerMonitoredTagKey": "CAPACITY_MANAGER_MONITORED_TAG_KEY", + "CapacityManagerMonitoredTagKeyStatus": "CAPACITY_MANAGER_MONITORED_TAG_KEY_STATUS", + "CapacityManagerStatus": "CAPACITY_MANAGER_STATUS", + "CapacityManagerSupportabilityScore": "CAPACITY_MANAGER_SUPPORTABILITY_SCORE", + "CapacityManagerTagDimension": "CAPACITY_MANAGER_TAG_DIMENSION", + "CapacityReservation": "CAPACITY_RESERVATION", + "CapacityReservationAdjustmentDetails": "CAPACITY_RESERVATION_ADJUSTMENT_DETAILS", + "CapacityReservationAdjustmentStatus": "CAPACITY_RESERVATION_ADJUSTMENT_STATUS", + "CapacityReservationBillingRequest": "CAPACITY_RESERVATION_BILLING_REQUEST", + "CapacityReservationBillingRequestStatus": "CAPACITY_RESERVATION_BILLING_REQUEST_STATUS", + "CapacityReservationCancellationQuote": "CAPACITY_RESERVATION_CANCELLATION_QUOTE", + "CapacityReservationCancellationQuoteState": "CAPACITY_RESERVATION_CANCELLATION_QUOTE_STATE", + "CapacityReservationCommitmentInfo": "CAPACITY_RESERVATION_COMMITMENT_INFO", + "CapacityReservationConfiguration": "CAPACITY_RESERVATION_CONFIGURATION", + "CapacityReservationDeliveryPreference": "CAPACITY_RESERVATION_DELIVERY_PREFERENCE", + "CapacityReservationFleet": "CAPACITY_RESERVATION_FLEET", + "CapacityReservationFleetCancellationState": "CAPACITY_RESERVATION_FLEET_CANCELLATION_STATE", + "CapacityReservationFleetState": "CAPACITY_RESERVATION_FLEET_STATE", + "CapacityReservationGroup": "CAPACITY_RESERVATION_GROUP", + "CapacityReservationInfo": "CAPACITY_RESERVATION_INFO", + "CapacityReservationInstancePlatform": "CAPACITY_RESERVATION_INSTANCE_PLATFORM", + "CapacityReservationLaunchStatus": "CAPACITY_RESERVATION_LAUNCH_STATUS", + "CapacityReservationModificationQuote": "CAPACITY_RESERVATION_MODIFICATION_QUOTE", + "CapacityReservationModificationQuoteState": "CAPACITY_RESERVATION_MODIFICATION_QUOTE_STATE", + "CapacityReservationOptions": "CAPACITY_RESERVATION_OPTIONS", + "CapacityReservationOptionsRequest": "CAPACITY_RESERVATION_OPTIONS_REQUEST", + "CapacityReservationPreference": "CAPACITY_RESERVATION_PREFERENCE", + "CapacityReservationSpecification": "CAPACITY_RESERVATION_SPECIFICATION", + "CapacityReservationSpecificationResponse": "CAPACITY_RESERVATION_SPECIFICATION_RESPONSE", + "CapacityReservationState": "CAPACITY_RESERVATION_STATE", + "CapacityReservationStatus": "CAPACITY_RESERVATION_STATUS", + "CapacityReservationTarget": "CAPACITY_RESERVATION_TARGET", + "CapacityReservationTargetResponse": "CAPACITY_RESERVATION_TARGET_RESPONSE", + "CapacityReservationTenancy": "CAPACITY_RESERVATION_TENANCY", + "CapacityReservationTopology": "CAPACITY_RESERVATION_TOPOLOGY", + "CapacityReservationType": "CAPACITY_RESERVATION_TYPE", + "CapacityTenancy": "CAPACITY_TENANCY", + "CapacityUnit": "CAPACITY_UNIT", + "CarrierGateway": "CARRIER_GATEWAY", + "CarrierGatewayState": "CARRIER_GATEWAY_STATE", + "CertificateAuthentication": "CERTIFICATE_AUTHENTICATION", + "CertificateAuthenticationRequest": "CERTIFICATE_AUTHENTICATION_REQUEST", + "ChronologicalOrder": "CHRONOLOGICAL_ORDER", + "CidrAuthorizationContext": "CIDR_AUTHORIZATION_CONTEXT", + "CidrBlock": "CIDR_BLOCK", + "ClassicLinkDnsSupport": "CLASSIC_LINK_DNS_SUPPORT", + "ClassicLinkInstance": "CLASSIC_LINK_INSTANCE", + "ClassicLoadBalancer": "CLASSIC_LOAD_BALANCER", + "ClassicLoadBalancersConfig": "CLASSIC_LOAD_BALANCERS_CONFIG", + "ClientCertificateRevocationListStatus": "CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS", + "ClientCertificateRevocationListStatusCode": "CLIENT_CERTIFICATE_REVOCATION_LIST_STATUS_CODE", + "ClientConnectOptions": "CLIENT_CONNECT_OPTIONS", + "ClientConnectResponseOptions": "CLIENT_CONNECT_RESPONSE_OPTIONS", + "ClientData": "CLIENT_DATA", + "ClientLoginBannerOptions": "CLIENT_LOGIN_BANNER_OPTIONS", + "ClientLoginBannerResponseOptions": "CLIENT_LOGIN_BANNER_RESPONSE_OPTIONS", + "ClientRouteEnforcementOptions": "CLIENT_ROUTE_ENFORCEMENT_OPTIONS", + "ClientRouteEnforcementResponseOptions": "CLIENT_ROUTE_ENFORCEMENT_RESPONSE_OPTIONS", + "ClientVpnAuthentication": "CLIENT_VPN_AUTHENTICATION", + "ClientVpnAuthenticationRequest": "CLIENT_VPN_AUTHENTICATION_REQUEST", + "ClientVpnAuthenticationType": "CLIENT_VPN_AUTHENTICATION_TYPE", + "ClientVpnAuthorizationPolicyShadowMode": "CLIENT_VPN_AUTHORIZATION_POLICY_SHADOW_MODE", + "ClientVpnAuthorizationPolicyStatus": "CLIENT_VPN_AUTHORIZATION_POLICY_STATUS", + "ClientVpnAuthorizationRuleStatus": "CLIENT_VPN_AUTHORIZATION_RULE_STATUS", + "ClientVpnAuthorizationRuleStatusCode": "CLIENT_VPN_AUTHORIZATION_RULE_STATUS_CODE", + "ClientVpnConnection": "CLIENT_VPN_CONNECTION", + "ClientVpnConnectionStatus": "CLIENT_VPN_CONNECTION_STATUS", + "ClientVpnConnectionStatusCode": "CLIENT_VPN_CONNECTION_STATUS_CODE", + "ClientVpnDeviceTrustProviderType": "CLIENT_VPN_DEVICE_TRUST_PROVIDER_TYPE", + "ClientVpnEndpoint": "CLIENT_VPN_ENDPOINT", + "ClientVpnEndpointAttributeStatus": "CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS", + "ClientVpnEndpointAttributeStatusCode": "CLIENT_VPN_ENDPOINT_ATTRIBUTE_STATUS_CODE", + "ClientVpnEndpointStatus": "CLIENT_VPN_ENDPOINT_STATUS", + "ClientVpnEndpointStatusCode": "CLIENT_VPN_ENDPOINT_STATUS_CODE", + "ClientVpnRoute": "CLIENT_VPN_ROUTE", + "ClientVpnRouteStatus": "CLIENT_VPN_ROUTE_STATUS", + "ClientVpnRouteStatusCode": "CLIENT_VPN_ROUTE_STATUS_CODE", + "ClientVpnTrustProvider": "CLIENT_VPN_TRUST_PROVIDER", + "ClientVpnTrustProviderRequest": "CLIENT_VPN_TRUST_PROVIDER_REQUEST", + "CloudWatchLogOptions": "CLOUD_WATCH_LOG_OPTIONS", + "CloudWatchLogOptionsSpecification": "CLOUD_WATCH_LOG_OPTIONS_SPECIFICATION", + "CoipAddressUsage": "COIP_ADDRESS_USAGE", + "CoipCidr": "COIP_CIDR", + "CoipPool": "COIP_POOL", + "Comparison": "COMPARISON", + "ConfirmProductInstanceInput": "CONFIRM_PRODUCT_INSTANCE_INPUT", + "ConfirmProductInstanceOutput": "CONFIRM_PRODUCT_INSTANCE_OUTPUT", + "ConnectionLogOptions": "CONNECTION_LOG_OPTIONS", + "ConnectionLogResponseOptions": "CONNECTION_LOG_RESPONSE_OPTIONS", + "ConnectionNotification": "CONNECTION_NOTIFICATION", + "ConnectionNotificationState": "CONNECTION_NOTIFICATION_STATE", + "ConnectionNotificationType": "CONNECTION_NOTIFICATION_TYPE", + "ConnectionTrackingConfiguration": "CONNECTION_TRACKING_CONFIGURATION", + "ConnectionTrackingSpecification": "CONNECTION_TRACKING_SPECIFICATION", + "ConnectionTrackingSpecificationRequest": "CONNECTION_TRACKING_SPECIFICATION_REQUEST", + "ConnectionTrackingSpecificationResponse": "CONNECTION_TRACKING_SPECIFICATION_RESPONSE", + "ConnectivityType": "CONNECTIVITY_TYPE", + "ContainerFormat": "CONTAINER_FORMAT", + "ConversionTask": "CONVERSION_TASK", + "ConversionTaskState": "CONVERSION_TASK_STATE", + "CopyFpgaImageInput": "COPY_FPGA_IMAGE_INPUT", + "CopyFpgaImageOutput": "COPY_FPGA_IMAGE_OUTPUT", + "CopyImageInput": "COPY_IMAGE_INPUT", + "CopyImageOutput": "COPY_IMAGE_OUTPUT", + "CopySnapshotInput": "COPY_SNAPSHOT_INPUT", + "CopySnapshotOutput": "COPY_SNAPSHOT_OUTPUT", + "CopyTagsFromSource": "COPY_TAGS_FROM_SOURCE", + "CopyVolumesInput": "COPY_VOLUMES_INPUT", + "CopyVolumesOutput": "COPY_VOLUMES_OUTPUT", + "CpuManufacturer": "CPU_MANUFACTURER", + "CpuOptions": "CPU_OPTIONS", + "CpuOptionsRequest": "CPU_OPTIONS_REQUEST", + "CpuPerformanceFactor": "CPU_PERFORMANCE_FACTOR", + "CpuPerformanceFactorRequest": "CPU_PERFORMANCE_FACTOR_REQUEST", + "CreateApplicationStatusCheckInput": "CREATE_APPLICATION_STATUS_CHECK_INPUT", + "CreateApplicationStatusCheckOutput": "CREATE_APPLICATION_STATUS_CHECK_OUTPUT", + "CreateCapacityManagerDataExportInput": "CREATE_CAPACITY_MANAGER_DATA_EXPORT_INPUT", + "CreateCapacityManagerDataExportOutput": "CREATE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT", + "CreateCapacityReservationBySplittingInput": "CREATE_CAPACITY_RESERVATION_BY_SPLITTING_INPUT", + "CreateCapacityReservationBySplittingOutput": "CREATE_CAPACITY_RESERVATION_BY_SPLITTING_OUTPUT", + "CreateCapacityReservationCancellationQuoteInput": "CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_INPUT", + "CreateCapacityReservationCancellationQuoteOutput": "CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE_OUTPUT", + "CreateCapacityReservationDateChangeQuoteInput": "CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_INPUT", + "CreateCapacityReservationDateChangeQuoteOutput": "CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE_OUTPUT", + "CreateCapacityReservationFleetInput": "CREATE_CAPACITY_RESERVATION_FLEET_INPUT", + "CreateCapacityReservationFleetOutput": "CREATE_CAPACITY_RESERVATION_FLEET_OUTPUT", + "CreateCapacityReservationInput": "CREATE_CAPACITY_RESERVATION_INPUT", + "CreateCapacityReservationOutput": "CREATE_CAPACITY_RESERVATION_OUTPUT", + "CreateCarrierGatewayInput": "CREATE_CARRIER_GATEWAY_INPUT", + "CreateCarrierGatewayOutput": "CREATE_CARRIER_GATEWAY_OUTPUT", + "CreateClientVpnEndpointInput": "CREATE_CLIENT_VPN_ENDPOINT_INPUT", + "CreateClientVpnEndpointOutput": "CREATE_CLIENT_VPN_ENDPOINT_OUTPUT", + "CreateClientVpnRouteInput": "CREATE_CLIENT_VPN_ROUTE_INPUT", + "CreateClientVpnRouteOutput": "CREATE_CLIENT_VPN_ROUTE_OUTPUT", + "CreateCoipCidrInput": "CREATE_COIP_CIDR_INPUT", + "CreateCoipCidrOutput": "CREATE_COIP_CIDR_OUTPUT", + "CreateCoipPoolInput": "CREATE_COIP_POOL_INPUT", + "CreateCoipPoolOutput": "CREATE_COIP_POOL_OUTPUT", + "CreateCustomerGatewayInput": "CREATE_CUSTOMER_GATEWAY_INPUT", + "CreateCustomerGatewayOutput": "CREATE_CUSTOMER_GATEWAY_OUTPUT", + "CreateDefaultSubnetInput": "CREATE_DEFAULT_SUBNET_INPUT", + "CreateDefaultSubnetOutput": "CREATE_DEFAULT_SUBNET_OUTPUT", + "CreateDefaultVpcInput": "CREATE_DEFAULT_VPC_INPUT", + "CreateDefaultVpcOutput": "CREATE_DEFAULT_VPC_OUTPUT", + "CreateDelegateMacVolumeOwnershipTaskInput": "CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_INPUT", + "CreateDelegateMacVolumeOwnershipTaskOutput": "CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK_OUTPUT", + "CreateDhcpOptionsInput": "CREATE_DHCP_OPTIONS_INPUT", + "CreateDhcpOptionsOutput": "CREATE_DHCP_OPTIONS_OUTPUT", + "CreateEgressOnlyInternetGatewayInput": "CREATE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT", + "CreateEgressOnlyInternetGatewayOutput": "CREATE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT", + "CreateFleetError": "CREATE_FLEET_ERROR", + "CreateFleetInput": "CREATE_FLEET_INPUT", + "CreateFleetInstance": "CREATE_FLEET_INSTANCE", + "CreateFleetOutput": "CREATE_FLEET_OUTPUT", + "CreateFlowLogsInput": "CREATE_FLOW_LOGS_INPUT", + "CreateFlowLogsOutput": "CREATE_FLOW_LOGS_OUTPUT", + "CreateFpgaImageInput": "CREATE_FPGA_IMAGE_INPUT", + "CreateFpgaImageOutput": "CREATE_FPGA_IMAGE_OUTPUT", + "CreateImageInput": "CREATE_IMAGE_INPUT", + "CreateImageOutput": "CREATE_IMAGE_OUTPUT", + "CreateImageUsageReportInput": "CREATE_IMAGE_USAGE_REPORT_INPUT", + "CreateImageUsageReportOutput": "CREATE_IMAGE_USAGE_REPORT_OUTPUT", + "CreateInstanceConnectEndpointInput": "CREATE_INSTANCE_CONNECT_ENDPOINT_INPUT", + "CreateInstanceConnectEndpointOutput": "CREATE_INSTANCE_CONNECT_ENDPOINT_OUTPUT", + "CreateInstanceEventWindowInput": "CREATE_INSTANCE_EVENT_WINDOW_INPUT", + "CreateInstanceEventWindowOutput": "CREATE_INSTANCE_EVENT_WINDOW_OUTPUT", + "CreateInstanceExportTaskInput": "CREATE_INSTANCE_EXPORT_TASK_INPUT", + "CreateInstanceExportTaskOutput": "CREATE_INSTANCE_EXPORT_TASK_OUTPUT", + "CreateInternetGatewayInput": "CREATE_INTERNET_GATEWAY_INPUT", + "CreateInternetGatewayOutput": "CREATE_INTERNET_GATEWAY_OUTPUT", + "CreateInterruptibleCapacityReservationAllocationInput": "CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT", + "CreateInterruptibleCapacityReservationAllocationOutput": "CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT", + "CreateIpamExternalResourceVerificationTokenInput": "CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT", + "CreateIpamExternalResourceVerificationTokenOutput": "CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT", + "CreateIpamInput": "CREATE_IPAM_INPUT", + "CreateIpamInternetRegistryAssociationInput": "CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT", + "CreateIpamInternetRegistryAssociationOutput": "CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT", + "CreateIpamOutput": "CREATE_IPAM_OUTPUT", + "CreateIpamPolicyInput": "CREATE_IPAM_POLICY_INPUT", + "CreateIpamPolicyOutput": "CREATE_IPAM_POLICY_OUTPUT", + "CreateIpamPoolInput": "CREATE_IPAM_POOL_INPUT", + "CreateIpamPoolOutput": "CREATE_IPAM_POOL_OUTPUT", + "CreateIpamPrefixListResolverInput": "CREATE_IPAM_PREFIX_LIST_RESOLVER_INPUT", + "CreateIpamPrefixListResolverOutput": "CREATE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT", + "CreateIpamPrefixListResolverTargetInput": "CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT", + "CreateIpamPrefixListResolverTargetOutput": "CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT", + "CreateIpamResourceDiscoveryInput": "CREATE_IPAM_RESOURCE_DISCOVERY_INPUT", + "CreateIpamResourceDiscoveryOutput": "CREATE_IPAM_RESOURCE_DISCOVERY_OUTPUT", + "CreateIpamRoutingPolicyRegistrationInput": "CREATE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT", + "CreateIpamRoutingPolicyRegistrationOutput": "CREATE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT", + "CreateIpamScopeInput": "CREATE_IPAM_SCOPE_INPUT", + "CreateIpamScopeOutput": "CREATE_IPAM_SCOPE_OUTPUT", + "CreateKeyPairInput": "CREATE_KEY_PAIR_INPUT", + "CreateKeyPairOutput": "CREATE_KEY_PAIR_OUTPUT", + "CreateLaunchTemplateInput": "CREATE_LAUNCH_TEMPLATE_INPUT", + "CreateLaunchTemplateOutput": "CREATE_LAUNCH_TEMPLATE_OUTPUT", + "CreateLaunchTemplateVersionInput": "CREATE_LAUNCH_TEMPLATE_VERSION_INPUT", + "CreateLaunchTemplateVersionOutput": "CREATE_LAUNCH_TEMPLATE_VERSION_OUTPUT", + "CreateLocalGatewayRouteInput": "CREATE_LOCAL_GATEWAY_ROUTE_INPUT", + "CreateLocalGatewayRouteOutput": "CREATE_LOCAL_GATEWAY_ROUTE_OUTPUT", + "CreateLocalGatewayRouteTableInput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT", + "CreateLocalGatewayRouteTableOutput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT", + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT", + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT", + "CreateLocalGatewayRouteTableVpcAssociationInput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT", + "CreateLocalGatewayRouteTableVpcAssociationOutput": "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT", + "CreateLocalGatewayVirtualInterfaceGroupInput": "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT", + "CreateLocalGatewayVirtualInterfaceGroupOutput": "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT", + "CreateLocalGatewayVirtualInterfaceInput": "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT", + "CreateLocalGatewayVirtualInterfaceOutput": "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT", + "CreateMacSystemIntegrityProtectionModificationTaskInput": "CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_INPUT", + "CreateMacSystemIntegrityProtectionModificationTaskOutput": "CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK_OUTPUT", + "CreateManagedPrefixListInput": "CREATE_MANAGED_PREFIX_LIST_INPUT", + "CreateManagedPrefixListOutput": "CREATE_MANAGED_PREFIX_LIST_OUTPUT", + "CreateNatGatewayInput": "CREATE_NAT_GATEWAY_INPUT", + "CreateNatGatewayOutput": "CREATE_NAT_GATEWAY_OUTPUT", + "CreateNetworkAclEntryInput": "CREATE_NETWORK_ACL_ENTRY_INPUT", + "CreateNetworkAclEntryOutput": "CREATE_NETWORK_ACL_ENTRY_OUTPUT", + "CreateNetworkAclInput": "CREATE_NETWORK_ACL_INPUT", + "CreateNetworkAclOutput": "CREATE_NETWORK_ACL_OUTPUT", + "CreateNetworkInsightsAccessScopeInput": "CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT", + "CreateNetworkInsightsAccessScopeOutput": "CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT", + "CreateNetworkInsightsPathInput": "CREATE_NETWORK_INSIGHTS_PATH_INPUT", + "CreateNetworkInsightsPathOutput": "CREATE_NETWORK_INSIGHTS_PATH_OUTPUT", + "CreateNetworkInterfaceInput": "CREATE_NETWORK_INTERFACE_INPUT", + "CreateNetworkInterfaceOutput": "CREATE_NETWORK_INTERFACE_OUTPUT", + "CreateNetworkInterfacePermissionInput": "CREATE_NETWORK_INTERFACE_PERMISSION_INPUT", + "CreateNetworkInterfacePermissionOutput": "CREATE_NETWORK_INTERFACE_PERMISSION_OUTPUT", + "CreatePlacementGroupInput": "CREATE_PLACEMENT_GROUP_INPUT", + "CreatePlacementGroupOutput": "CREATE_PLACEMENT_GROUP_OUTPUT", + "CreatePublicIpv4PoolInput": "CREATE_PUBLIC_IPV4_POOL_INPUT", + "CreatePublicIpv4PoolOutput": "CREATE_PUBLIC_IPV4_POOL_OUTPUT", + "CreateReplaceRootVolumeTaskInput": "CREATE_REPLACE_ROOT_VOLUME_TASK_INPUT", + "CreateReplaceRootVolumeTaskOutput": "CREATE_REPLACE_ROOT_VOLUME_TASK_OUTPUT", + "CreateReservedInstancesListingInput": "CREATE_RESERVED_INSTANCES_LISTING_INPUT", + "CreateReservedInstancesListingOutput": "CREATE_RESERVED_INSTANCES_LISTING_OUTPUT", + "CreateRestoreImageTaskInput": "CREATE_RESTORE_IMAGE_TASK_INPUT", + "CreateRestoreImageTaskOutput": "CREATE_RESTORE_IMAGE_TASK_OUTPUT", + "CreateRouteInput": "CREATE_ROUTE_INPUT", + "CreateRouteOutput": "CREATE_ROUTE_OUTPUT", + "CreateRouteServerEndpointInput": "CREATE_ROUTE_SERVER_ENDPOINT_INPUT", + "CreateRouteServerEndpointOutput": "CREATE_ROUTE_SERVER_ENDPOINT_OUTPUT", + "CreateRouteServerInput": "CREATE_ROUTE_SERVER_INPUT", + "CreateRouteServerOutput": "CREATE_ROUTE_SERVER_OUTPUT", + "CreateRouteServerPeerInput": "CREATE_ROUTE_SERVER_PEER_INPUT", + "CreateRouteServerPeerOutput": "CREATE_ROUTE_SERVER_PEER_OUTPUT", + "CreateRouteTableInput": "CREATE_ROUTE_TABLE_INPUT", + "CreateRouteTableOutput": "CREATE_ROUTE_TABLE_OUTPUT", + "CreateSecondaryNetworkInput": "CREATE_SECONDARY_NETWORK_INPUT", + "CreateSecondaryNetworkOutput": "CREATE_SECONDARY_NETWORK_OUTPUT", + "CreateSecondarySubnetInput": "CREATE_SECONDARY_SUBNET_INPUT", + "CreateSecondarySubnetOutput": "CREATE_SECONDARY_SUBNET_OUTPUT", + "CreateSecurityGroupInput": "CREATE_SECURITY_GROUP_INPUT", + "CreateSecurityGroupOutput": "CREATE_SECURITY_GROUP_OUTPUT", + "CreateSnapshotInput": "CREATE_SNAPSHOT_INPUT", + "CreateSnapshotOutput": "CREATE_SNAPSHOT_OUTPUT", + "CreateSnapshotsInput": "CREATE_SNAPSHOTS_INPUT", + "CreateSnapshotsOutput": "CREATE_SNAPSHOTS_OUTPUT", + "CreateSpotDatafeedSubscriptionInput": "CREATE_SPOT_DATAFEED_SUBSCRIPTION_INPUT", + "CreateSpotDatafeedSubscriptionOutput": "CREATE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT", + "CreateStoreImageTaskInput": "CREATE_STORE_IMAGE_TASK_INPUT", + "CreateStoreImageTaskOutput": "CREATE_STORE_IMAGE_TASK_OUTPUT", + "CreateSubnetCidrReservationInput": "CREATE_SUBNET_CIDR_RESERVATION_INPUT", + "CreateSubnetCidrReservationOutput": "CREATE_SUBNET_CIDR_RESERVATION_OUTPUT", + "CreateSubnetInput": "CREATE_SUBNET_INPUT", + "CreateSubnetOutput": "CREATE_SUBNET_OUTPUT", + "CreateTagsInput": "CREATE_TAGS_INPUT", + "CreateTagsOutput": "CREATE_TAGS_OUTPUT", + "CreateTrafficMirrorFilterInput": "CREATE_TRAFFIC_MIRROR_FILTER_INPUT", + "CreateTrafficMirrorFilterOutput": "CREATE_TRAFFIC_MIRROR_FILTER_OUTPUT", + "CreateTrafficMirrorFilterRuleInput": "CREATE_TRAFFIC_MIRROR_FILTER_RULE_INPUT", + "CreateTrafficMirrorFilterRuleOutput": "CREATE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT", + "CreateTrafficMirrorSessionInput": "CREATE_TRAFFIC_MIRROR_SESSION_INPUT", + "CreateTrafficMirrorSessionOutput": "CREATE_TRAFFIC_MIRROR_SESSION_OUTPUT", + "CreateTrafficMirrorTargetInput": "CREATE_TRAFFIC_MIRROR_TARGET_INPUT", + "CreateTrafficMirrorTargetOutput": "CREATE_TRAFFIC_MIRROR_TARGET_OUTPUT", + "CreateTransitGatewayConnectInput": "CREATE_TRANSIT_GATEWAY_CONNECT_INPUT", + "CreateTransitGatewayConnectOutput": "CREATE_TRANSIT_GATEWAY_CONNECT_OUTPUT", + "CreateTransitGatewayConnectPeerInput": "CREATE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT", + "CreateTransitGatewayConnectPeerOutput": "CREATE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT", + "CreateTransitGatewayConnectRequestOptions": "CREATE_TRANSIT_GATEWAY_CONNECT_REQUEST_OPTIONS", + "CreateTransitGatewayInput": "CREATE_TRANSIT_GATEWAY_INPUT", + "CreateTransitGatewayMeteringPolicyEntryInput": "CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT", + "CreateTransitGatewayMeteringPolicyEntryOutput": "CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT", + "CreateTransitGatewayMeteringPolicyInput": "CREATE_TRANSIT_GATEWAY_METERING_POLICY_INPUT", + "CreateTransitGatewayMeteringPolicyOutput": "CREATE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT", + "CreateTransitGatewayMulticastDomainInput": "CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT", + "CreateTransitGatewayMulticastDomainOutput": "CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT", + "CreateTransitGatewayMulticastDomainRequestOptions": "CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_REQUEST_OPTIONS", + "CreateTransitGatewayOutput": "CREATE_TRANSIT_GATEWAY_OUTPUT", + "CreateTransitGatewayPeeringAttachmentInput": "CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT", + "CreateTransitGatewayPeeringAttachmentOutput": "CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT", + "CreateTransitGatewayPeeringAttachmentRequestOptions": "CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_REQUEST_OPTIONS", + "CreateTransitGatewayPolicyTableEntryInput": "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT", + "CreateTransitGatewayPolicyTableEntryOutput": "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT", + "CreateTransitGatewayPolicyTableInput": "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT", + "CreateTransitGatewayPolicyTableOutput": "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT", + "CreateTransitGatewayPrefixListReferenceInput": "CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT", + "CreateTransitGatewayPrefixListReferenceOutput": "CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT", + "CreateTransitGatewayRouteInput": "CREATE_TRANSIT_GATEWAY_ROUTE_INPUT", + "CreateTransitGatewayRouteOutput": "CREATE_TRANSIT_GATEWAY_ROUTE_OUTPUT", + "CreateTransitGatewayRouteTableAnnouncementInput": "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT", + "CreateTransitGatewayRouteTableAnnouncementOutput": "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT", + "CreateTransitGatewayRouteTableInput": "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT", + "CreateTransitGatewayRouteTableOutput": "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT", + "CreateTransitGatewayVpcAttachmentInput": "CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT", + "CreateTransitGatewayVpcAttachmentOutput": "CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT", + "CreateTransitGatewayVpcAttachmentRequestOptions": "CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS", + "CreateVerifiedAccessEndpointCidrOptions": "CREATE_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS", + "CreateVerifiedAccessEndpointEniOptions": "CREATE_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS", + "CreateVerifiedAccessEndpointInput": "CREATE_VERIFIED_ACCESS_ENDPOINT_INPUT", + "CreateVerifiedAccessEndpointLoadBalancerOptions": "CREATE_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS", + "CreateVerifiedAccessEndpointOutput": "CREATE_VERIFIED_ACCESS_ENDPOINT_OUTPUT", + "CreateVerifiedAccessEndpointPortRange": "CREATE_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE", + "CreateVerifiedAccessEndpointRdsOptions": "CREATE_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS", + "CreateVerifiedAccessGroupInput": "CREATE_VERIFIED_ACCESS_GROUP_INPUT", + "CreateVerifiedAccessGroupOutput": "CREATE_VERIFIED_ACCESS_GROUP_OUTPUT", + "CreateVerifiedAccessInstanceInput": "CREATE_VERIFIED_ACCESS_INSTANCE_INPUT", + "CreateVerifiedAccessInstanceOutput": "CREATE_VERIFIED_ACCESS_INSTANCE_OUTPUT", + "CreateVerifiedAccessNativeApplicationOidcOptions": "CREATE_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS", + "CreateVerifiedAccessTrustProviderDeviceOptions": "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS", + "CreateVerifiedAccessTrustProviderInput": "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT", + "CreateVerifiedAccessTrustProviderOidcOptions": "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS", + "CreateVerifiedAccessTrustProviderOutput": "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT", + "CreateVolumeInput": "CREATE_VOLUME_INPUT", + "CreateVolumeOutput": "CREATE_VOLUME_OUTPUT", + "CreateVolumePermission": "CREATE_VOLUME_PERMISSION", + "CreateVolumePermissionModifications": "CREATE_VOLUME_PERMISSION_MODIFICATIONS", + "CreateVpcBlockPublicAccessExclusionInput": "CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT", + "CreateVpcBlockPublicAccessExclusionOutput": "CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT", + "CreateVpcEncryptionControlInput": "CREATE_VPC_ENCRYPTION_CONTROL_INPUT", + "CreateVpcEncryptionControlOutput": "CREATE_VPC_ENCRYPTION_CONTROL_OUTPUT", + "CreateVpcEndpointConnectionNotificationInput": "CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT", + "CreateVpcEndpointConnectionNotificationOutput": "CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT", + "CreateVpcEndpointInput": "CREATE_VPC_ENDPOINT_INPUT", + "CreateVpcEndpointOutput": "CREATE_VPC_ENDPOINT_OUTPUT", + "CreateVpcEndpointServiceConfigurationInput": "CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT", + "CreateVpcEndpointServiceConfigurationOutput": "CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT", + "CreateVpcInput": "CREATE_VPC_INPUT", + "CreateVpcOutput": "CREATE_VPC_OUTPUT", + "CreateVpcPeeringConnectionInput": "CREATE_VPC_PEERING_CONNECTION_INPUT", + "CreateVpcPeeringConnectionOutput": "CREATE_VPC_PEERING_CONNECTION_OUTPUT", + "CreateVpnConcentratorInput": "CREATE_VPN_CONCENTRATOR_INPUT", + "CreateVpnConcentratorOutput": "CREATE_VPN_CONCENTRATOR_OUTPUT", + "CreateVpnConnectionInput": "CREATE_VPN_CONNECTION_INPUT", + "CreateVpnConnectionOutput": "CREATE_VPN_CONNECTION_OUTPUT", + "CreateVpnConnectionRouteInput": "CREATE_VPN_CONNECTION_ROUTE_INPUT", + "CreateVpnConnectionRouteOutput": "CREATE_VPN_CONNECTION_ROUTE_OUTPUT", + "CreateVpnGatewayInput": "CREATE_VPN_GATEWAY_INPUT", + "CreateVpnGatewayOutput": "CREATE_VPN_GATEWAY_OUTPUT", + "CreationDateCondition": "CREATION_DATE_CONDITION", + "CreationDateConditionRequest": "CREATION_DATE_CONDITION_REQUEST", + "CreditSpecification": "CREDIT_SPECIFICATION", + "CreditSpecificationRequest": "CREDIT_SPECIFICATION_REQUEST", + "CurrencyCodeValues": "CURRENCY_CODE_VALUES", + "CustomerGateway": "CUSTOMER_GATEWAY", + "CustomTagKeyValueRequestPair": "CUSTOM_TAG_KEY_VALUE_REQUEST_PAIR", + "CustomTagKeyValueResponsePair": "CUSTOM_TAG_KEY_VALUE_RESPONSE_PAIR", + "DatafeedSubscriptionState": "DATAFEED_SUBSCRIPTION_STATE", + "DataQuery": "DATA_QUERY", + "DataResponse": "DATA_RESPONSE", + "DeclarativePoliciesReport": "DECLARATIVE_POLICIES_REPORT", + "DefaultConnectionTrackingConfiguration": "DEFAULT_CONNECTION_TRACKING_CONFIGURATION", + "DefaultHttpTokensEnforcedState": "DEFAULT_HTTP_TOKENS_ENFORCED_STATE", + "DefaultInstanceMetadataEndpointState": "DEFAULT_INSTANCE_METADATA_ENDPOINT_STATE", + "DefaultInstanceMetadataTagsState": "DEFAULT_INSTANCE_METADATA_TAGS_STATE", + "DefaultRouteTableAssociationValue": "DEFAULT_ROUTE_TABLE_ASSOCIATION_VALUE", + "DefaultRouteTablePropagationValue": "DEFAULT_ROUTE_TABLE_PROPAGATION_VALUE", + "DefaultTargetCapacityType": "DEFAULT_TARGET_CAPACITY_TYPE", + "DeleteApplicationStatusCheckInput": "DELETE_APPLICATION_STATUS_CHECK_INPUT", + "DeleteApplicationStatusCheckOutput": "DELETE_APPLICATION_STATUS_CHECK_OUTPUT", + "DeleteCapacityManagerDataExportInput": "DELETE_CAPACITY_MANAGER_DATA_EXPORT_INPUT", + "DeleteCapacityManagerDataExportOutput": "DELETE_CAPACITY_MANAGER_DATA_EXPORT_OUTPUT", + "DeleteCarrierGatewayInput": "DELETE_CARRIER_GATEWAY_INPUT", + "DeleteCarrierGatewayOutput": "DELETE_CARRIER_GATEWAY_OUTPUT", + "DeleteClientVpnEndpointAuthorizationPolicyInput": "DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT", + "DeleteClientVpnEndpointAuthorizationPolicyOutput": "DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT", + "DeleteClientVpnEndpointInput": "DELETE_CLIENT_VPN_ENDPOINT_INPUT", + "DeleteClientVpnEndpointOutput": "DELETE_CLIENT_VPN_ENDPOINT_OUTPUT", + "DeleteClientVpnRouteInput": "DELETE_CLIENT_VPN_ROUTE_INPUT", + "DeleteClientVpnRouteOutput": "DELETE_CLIENT_VPN_ROUTE_OUTPUT", + "DeleteCoipCidrInput": "DELETE_COIP_CIDR_INPUT", + "DeleteCoipCidrOutput": "DELETE_COIP_CIDR_OUTPUT", + "DeleteCoipPoolInput": "DELETE_COIP_POOL_INPUT", + "DeleteCoipPoolOutput": "DELETE_COIP_POOL_OUTPUT", + "DeleteCustomerGatewayInput": "DELETE_CUSTOMER_GATEWAY_INPUT", + "DeleteCustomerGatewayOutput": "DELETE_CUSTOMER_GATEWAY_OUTPUT", + "DeleteDhcpOptionsInput": "DELETE_DHCP_OPTIONS_INPUT", + "DeleteDhcpOptionsOutput": "DELETE_DHCP_OPTIONS_OUTPUT", + "DeleteEgressOnlyInternetGatewayInput": "DELETE_EGRESS_ONLY_INTERNET_GATEWAY_INPUT", + "DeleteEgressOnlyInternetGatewayOutput": "DELETE_EGRESS_ONLY_INTERNET_GATEWAY_OUTPUT", + "DeleteFleetError": "DELETE_FLEET_ERROR", + "DeleteFleetErrorCode": "DELETE_FLEET_ERROR_CODE", + "DeleteFleetErrorItem": "DELETE_FLEET_ERROR_ITEM", + "DeleteFleetsInput": "DELETE_FLEETS_INPUT", + "DeleteFleetsOutput": "DELETE_FLEETS_OUTPUT", + "DeleteFleetSuccessItem": "DELETE_FLEET_SUCCESS_ITEM", + "DeleteFlowLogsInput": "DELETE_FLOW_LOGS_INPUT", + "DeleteFlowLogsOutput": "DELETE_FLOW_LOGS_OUTPUT", + "DeleteFpgaImageInput": "DELETE_FPGA_IMAGE_INPUT", + "DeleteFpgaImageOutput": "DELETE_FPGA_IMAGE_OUTPUT", + "DeleteImageUsageReportInput": "DELETE_IMAGE_USAGE_REPORT_INPUT", + "DeleteImageUsageReportOutput": "DELETE_IMAGE_USAGE_REPORT_OUTPUT", + "DeleteInstanceConnectEndpointInput": "DELETE_INSTANCE_CONNECT_ENDPOINT_INPUT", + "DeleteInstanceConnectEndpointOutput": "DELETE_INSTANCE_CONNECT_ENDPOINT_OUTPUT", + "DeleteInstanceEventWindowInput": "DELETE_INSTANCE_EVENT_WINDOW_INPUT", + "DeleteInstanceEventWindowOutput": "DELETE_INSTANCE_EVENT_WINDOW_OUTPUT", + "DeleteInternetGatewayInput": "DELETE_INTERNET_GATEWAY_INPUT", + "DeleteInternetGatewayOutput": "DELETE_INTERNET_GATEWAY_OUTPUT", + "DeleteIpamExternalResourceVerificationTokenInput": "DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_INPUT", + "DeleteIpamExternalResourceVerificationTokenOutput": "DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_OUTPUT", + "DeleteIpamInput": "DELETE_IPAM_INPUT", + "DeleteIpamInternetRegistryAssociationInput": "DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT", + "DeleteIpamInternetRegistryAssociationOutput": "DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT", + "DeleteIpamOutput": "DELETE_IPAM_OUTPUT", + "DeleteIpamPolicyInput": "DELETE_IPAM_POLICY_INPUT", + "DeleteIpamPolicyOutput": "DELETE_IPAM_POLICY_OUTPUT", + "DeleteIpamPoolInput": "DELETE_IPAM_POOL_INPUT", + "DeleteIpamPoolOutput": "DELETE_IPAM_POOL_OUTPUT", + "DeleteIpamPrefixListResolverInput": "DELETE_IPAM_PREFIX_LIST_RESOLVER_INPUT", + "DeleteIpamPrefixListResolverOutput": "DELETE_IPAM_PREFIX_LIST_RESOLVER_OUTPUT", + "DeleteIpamPrefixListResolverTargetInput": "DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT", + "DeleteIpamPrefixListResolverTargetOutput": "DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT", + "DeleteIpamResourceDiscoveryInput": "DELETE_IPAM_RESOURCE_DISCOVERY_INPUT", + "DeleteIpamResourceDiscoveryOutput": "DELETE_IPAM_RESOURCE_DISCOVERY_OUTPUT", + "DeleteIpamRoutingPolicyRegistrationInput": "DELETE_IPAM_ROUTING_POLICY_REGISTRATION_INPUT", + "DeleteIpamRoutingPolicyRegistrationOutput": "DELETE_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT", + "DeleteIpamScopeInput": "DELETE_IPAM_SCOPE_INPUT", + "DeleteIpamScopeOutput": "DELETE_IPAM_SCOPE_OUTPUT", + "DeleteKeyPairInput": "DELETE_KEY_PAIR_INPUT", + "DeleteKeyPairOutput": "DELETE_KEY_PAIR_OUTPUT", + "DeleteLaunchTemplateInput": "DELETE_LAUNCH_TEMPLATE_INPUT", + "DeleteLaunchTemplateOutput": "DELETE_LAUNCH_TEMPLATE_OUTPUT", + "DeleteLaunchTemplateVersionsInput": "DELETE_LAUNCH_TEMPLATE_VERSIONS_INPUT", + "DeleteLaunchTemplateVersionsOutput": "DELETE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT", + "DeleteLaunchTemplateVersionsResponseErrorItem": "DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_ERROR_ITEM", + "DeleteLaunchTemplateVersionsResponseSuccessItem": "DELETE_LAUNCH_TEMPLATE_VERSIONS_RESPONSE_SUCCESS_ITEM", + "DeleteLocalGatewayRouteInput": "DELETE_LOCAL_GATEWAY_ROUTE_INPUT", + "DeleteLocalGatewayRouteOutput": "DELETE_LOCAL_GATEWAY_ROUTE_OUTPUT", + "DeleteLocalGatewayRouteTableInput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_INPUT", + "DeleteLocalGatewayRouteTableOutput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_OUTPUT", + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_INPUT", + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION_OUTPUT", + "DeleteLocalGatewayRouteTableVpcAssociationInput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_INPUT", + "DeleteLocalGatewayRouteTableVpcAssociationOutput": "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION_OUTPUT", + "DeleteLocalGatewayVirtualInterfaceGroupInput": "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_INPUT", + "DeleteLocalGatewayVirtualInterfaceGroupOutput": "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_OUTPUT", + "DeleteLocalGatewayVirtualInterfaceInput": "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_INPUT", + "DeleteLocalGatewayVirtualInterfaceOutput": "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_OUTPUT", + "DeleteManagedPrefixListInput": "DELETE_MANAGED_PREFIX_LIST_INPUT", + "DeleteManagedPrefixListOutput": "DELETE_MANAGED_PREFIX_LIST_OUTPUT", + "DeleteNatGatewayInput": "DELETE_NAT_GATEWAY_INPUT", + "DeleteNatGatewayOutput": "DELETE_NAT_GATEWAY_OUTPUT", + "DeleteNetworkAclEntryInput": "DELETE_NETWORK_ACL_ENTRY_INPUT", + "DeleteNetworkAclEntryOutput": "DELETE_NETWORK_ACL_ENTRY_OUTPUT", + "DeleteNetworkAclInput": "DELETE_NETWORK_ACL_INPUT", + "DeleteNetworkAclOutput": "DELETE_NETWORK_ACL_OUTPUT", + "DeleteNetworkInsightsAccessScopeAnalysisInput": "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT", + "DeleteNetworkInsightsAccessScopeAnalysisOutput": "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT", + "DeleteNetworkInsightsAccessScopeInput": "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_INPUT", + "DeleteNetworkInsightsAccessScopeOutput": "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_OUTPUT", + "DeleteNetworkInsightsAnalysisInput": "DELETE_NETWORK_INSIGHTS_ANALYSIS_INPUT", + "DeleteNetworkInsightsAnalysisOutput": "DELETE_NETWORK_INSIGHTS_ANALYSIS_OUTPUT", + "DeleteNetworkInsightsPathInput": "DELETE_NETWORK_INSIGHTS_PATH_INPUT", + "DeleteNetworkInsightsPathOutput": "DELETE_NETWORK_INSIGHTS_PATH_OUTPUT", + "DeleteNetworkInterfaceInput": "DELETE_NETWORK_INTERFACE_INPUT", + "DeleteNetworkInterfaceOutput": "DELETE_NETWORK_INTERFACE_OUTPUT", + "DeleteNetworkInterfacePermissionInput": "DELETE_NETWORK_INTERFACE_PERMISSION_INPUT", + "DeleteNetworkInterfacePermissionOutput": "DELETE_NETWORK_INTERFACE_PERMISSION_OUTPUT", + "DeletePlacementGroupInput": "DELETE_PLACEMENT_GROUP_INPUT", + "DeletePlacementGroupOutput": "DELETE_PLACEMENT_GROUP_OUTPUT", + "DeletePublicIpv4PoolInput": "DELETE_PUBLIC_IPV4_POOL_INPUT", + "DeletePublicIpv4PoolOutput": "DELETE_PUBLIC_IPV4_POOL_OUTPUT", + "DeleteQueuedReservedInstancesError": "DELETE_QUEUED_RESERVED_INSTANCES_ERROR", + "DeleteQueuedReservedInstancesErrorCode": "DELETE_QUEUED_RESERVED_INSTANCES_ERROR_CODE", + "DeleteQueuedReservedInstancesInput": "DELETE_QUEUED_RESERVED_INSTANCES_INPUT", + "DeleteQueuedReservedInstancesOutput": "DELETE_QUEUED_RESERVED_INSTANCES_OUTPUT", + "DeleteRouteInput": "DELETE_ROUTE_INPUT", + "DeleteRouteOutput": "DELETE_ROUTE_OUTPUT", + "DeleteRouteServerEndpointInput": "DELETE_ROUTE_SERVER_ENDPOINT_INPUT", + "DeleteRouteServerEndpointOutput": "DELETE_ROUTE_SERVER_ENDPOINT_OUTPUT", + "DeleteRouteServerInput": "DELETE_ROUTE_SERVER_INPUT", + "DeleteRouteServerOutput": "DELETE_ROUTE_SERVER_OUTPUT", + "DeleteRouteServerPeerInput": "DELETE_ROUTE_SERVER_PEER_INPUT", + "DeleteRouteServerPeerOutput": "DELETE_ROUTE_SERVER_PEER_OUTPUT", + "DeleteRouteTableInput": "DELETE_ROUTE_TABLE_INPUT", + "DeleteRouteTableOutput": "DELETE_ROUTE_TABLE_OUTPUT", + "DeleteSecondaryNetworkInput": "DELETE_SECONDARY_NETWORK_INPUT", + "DeleteSecondaryNetworkOutput": "DELETE_SECONDARY_NETWORK_OUTPUT", + "DeleteSecondarySubnetInput": "DELETE_SECONDARY_SUBNET_INPUT", + "DeleteSecondarySubnetOutput": "DELETE_SECONDARY_SUBNET_OUTPUT", + "DeleteSecurityGroupInput": "DELETE_SECURITY_GROUP_INPUT", + "DeleteSecurityGroupOutput": "DELETE_SECURITY_GROUP_OUTPUT", + "DeleteSnapshotInput": "DELETE_SNAPSHOT_INPUT", + "DeleteSnapshotOutput": "DELETE_SNAPSHOT_OUTPUT", + "DeleteSnapshotReturnCode": "DELETE_SNAPSHOT_RETURN_CODE", + "DeleteSpotDatafeedSubscriptionInput": "DELETE_SPOT_DATAFEED_SUBSCRIPTION_INPUT", + "DeleteSpotDatafeedSubscriptionOutput": "DELETE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT", + "DeleteSubnetCidrReservationInput": "DELETE_SUBNET_CIDR_RESERVATION_INPUT", + "DeleteSubnetCidrReservationOutput": "DELETE_SUBNET_CIDR_RESERVATION_OUTPUT", + "DeleteSubnetInput": "DELETE_SUBNET_INPUT", + "DeleteSubnetOutput": "DELETE_SUBNET_OUTPUT", + "DeleteTagsInput": "DELETE_TAGS_INPUT", + "DeleteTagsOutput": "DELETE_TAGS_OUTPUT", + "DeleteTrafficMirrorFilterInput": "DELETE_TRAFFIC_MIRROR_FILTER_INPUT", + "DeleteTrafficMirrorFilterOutput": "DELETE_TRAFFIC_MIRROR_FILTER_OUTPUT", + "DeleteTrafficMirrorFilterRuleInput": "DELETE_TRAFFIC_MIRROR_FILTER_RULE_INPUT", + "DeleteTrafficMirrorFilterRuleOutput": "DELETE_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT", + "DeleteTrafficMirrorSessionInput": "DELETE_TRAFFIC_MIRROR_SESSION_INPUT", + "DeleteTrafficMirrorSessionOutput": "DELETE_TRAFFIC_MIRROR_SESSION_OUTPUT", + "DeleteTrafficMirrorTargetInput": "DELETE_TRAFFIC_MIRROR_TARGET_INPUT", + "DeleteTrafficMirrorTargetOutput": "DELETE_TRAFFIC_MIRROR_TARGET_OUTPUT", + "DeleteTransitGatewayClientVpnAttachmentInput": "DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT", + "DeleteTransitGatewayClientVpnAttachmentOutput": "DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT", + "DeleteTransitGatewayConnectInput": "DELETE_TRANSIT_GATEWAY_CONNECT_INPUT", + "DeleteTransitGatewayConnectOutput": "DELETE_TRANSIT_GATEWAY_CONNECT_OUTPUT", + "DeleteTransitGatewayConnectPeerInput": "DELETE_TRANSIT_GATEWAY_CONNECT_PEER_INPUT", + "DeleteTransitGatewayConnectPeerOutput": "DELETE_TRANSIT_GATEWAY_CONNECT_PEER_OUTPUT", + "DeleteTransitGatewayInput": "DELETE_TRANSIT_GATEWAY_INPUT", + "DeleteTransitGatewayMeteringPolicyEntryInput": "DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_INPUT", + "DeleteTransitGatewayMeteringPolicyEntryOutput": "DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY_OUTPUT", + "DeleteTransitGatewayMeteringPolicyInput": "DELETE_TRANSIT_GATEWAY_METERING_POLICY_INPUT", + "DeleteTransitGatewayMeteringPolicyOutput": "DELETE_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT", + "DeleteTransitGatewayMulticastDomainInput": "DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT", + "DeleteTransitGatewayMulticastDomainOutput": "DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT", + "DeleteTransitGatewayOutput": "DELETE_TRANSIT_GATEWAY_OUTPUT", + "DeleteTransitGatewayPeeringAttachmentInput": "DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT", + "DeleteTransitGatewayPeeringAttachmentOutput": "DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT", + "DeleteTransitGatewayPolicyTableEntryInput": "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT", + "DeleteTransitGatewayPolicyTableEntryOutput": "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT", + "DeleteTransitGatewayPolicyTableInput": "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT", + "DeleteTransitGatewayPolicyTableOutput": "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT", + "DeleteTransitGatewayPrefixListReferenceInput": "DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT", + "DeleteTransitGatewayPrefixListReferenceOutput": "DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT", + "DeleteTransitGatewayRouteInput": "DELETE_TRANSIT_GATEWAY_ROUTE_INPUT", + "DeleteTransitGatewayRouteOutput": "DELETE_TRANSIT_GATEWAY_ROUTE_OUTPUT", + "DeleteTransitGatewayRouteTableAnnouncementInput": "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_INPUT", + "DeleteTransitGatewayRouteTableAnnouncementOutput": "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_OUTPUT", + "DeleteTransitGatewayRouteTableInput": "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT", + "DeleteTransitGatewayRouteTableOutput": "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT", + "DeleteTransitGatewayVpcAttachmentInput": "DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT", + "DeleteTransitGatewayVpcAttachmentOutput": "DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT", + "DeleteVerifiedAccessEndpointInput": "DELETE_VERIFIED_ACCESS_ENDPOINT_INPUT", + "DeleteVerifiedAccessEndpointOutput": "DELETE_VERIFIED_ACCESS_ENDPOINT_OUTPUT", + "DeleteVerifiedAccessGroupInput": "DELETE_VERIFIED_ACCESS_GROUP_INPUT", + "DeleteVerifiedAccessGroupOutput": "DELETE_VERIFIED_ACCESS_GROUP_OUTPUT", + "DeleteVerifiedAccessInstanceInput": "DELETE_VERIFIED_ACCESS_INSTANCE_INPUT", + "DeleteVerifiedAccessInstanceOutput": "DELETE_VERIFIED_ACCESS_INSTANCE_OUTPUT", + "DeleteVerifiedAccessTrustProviderInput": "DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT", + "DeleteVerifiedAccessTrustProviderOutput": "DELETE_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT", + "DeleteVolumeInput": "DELETE_VOLUME_INPUT", + "DeleteVolumeOutput": "DELETE_VOLUME_OUTPUT", + "DeleteVpcBlockPublicAccessExclusionInput": "DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT", + "DeleteVpcBlockPublicAccessExclusionOutput": "DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT", + "DeleteVpcEncryptionControlInput": "DELETE_VPC_ENCRYPTION_CONTROL_INPUT", + "DeleteVpcEncryptionControlOutput": "DELETE_VPC_ENCRYPTION_CONTROL_OUTPUT", + "DeleteVpcEndpointConnectionNotificationsInput": "DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT", + "DeleteVpcEndpointConnectionNotificationsOutput": "DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT", + "DeleteVpcEndpointServiceConfigurationsInput": "DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT", + "DeleteVpcEndpointServiceConfigurationsOutput": "DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT", + "DeleteVpcEndpointsInput": "DELETE_VPC_ENDPOINTS_INPUT", + "DeleteVpcEndpointsOutput": "DELETE_VPC_ENDPOINTS_OUTPUT", + "DeleteVpcInput": "DELETE_VPC_INPUT", + "DeleteVpcOutput": "DELETE_VPC_OUTPUT", + "DeleteVpcPeeringConnectionInput": "DELETE_VPC_PEERING_CONNECTION_INPUT", + "DeleteVpcPeeringConnectionOutput": "DELETE_VPC_PEERING_CONNECTION_OUTPUT", + "DeleteVpnConcentratorInput": "DELETE_VPN_CONCENTRATOR_INPUT", + "DeleteVpnConcentratorOutput": "DELETE_VPN_CONCENTRATOR_OUTPUT", + "DeleteVpnConnectionInput": "DELETE_VPN_CONNECTION_INPUT", + "DeleteVpnConnectionOutput": "DELETE_VPN_CONNECTION_OUTPUT", + "DeleteVpnConnectionRouteInput": "DELETE_VPN_CONNECTION_ROUTE_INPUT", + "DeleteVpnConnectionRouteOutput": "DELETE_VPN_CONNECTION_ROUTE_OUTPUT", + "DeleteVpnGatewayInput": "DELETE_VPN_GATEWAY_INPUT", + "DeleteVpnGatewayOutput": "DELETE_VPN_GATEWAY_OUTPUT", + "DeprecationTimeCondition": "DEPRECATION_TIME_CONDITION", + "DeprecationTimeConditionRequest": "DEPRECATION_TIME_CONDITION_REQUEST", + "DeprovisionByoipCidrInput": "DEPROVISION_BYOIP_CIDR_INPUT", + "DeprovisionByoipCidrOutput": "DEPROVISION_BYOIP_CIDR_OUTPUT", + "DeprovisionIpamByoasnInput": "DEPROVISION_IPAM_BYOASN_INPUT", + "DeprovisionIpamByoasnOutput": "DEPROVISION_IPAM_BYOASN_OUTPUT", + "DeprovisionIpamPoolCidrInput": "DEPROVISION_IPAM_POOL_CIDR_INPUT", + "DeprovisionIpamPoolCidrOutput": "DEPROVISION_IPAM_POOL_CIDR_OUTPUT", + "DeprovisionPublicIpv4PoolCidrInput": "DEPROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT", + "DeprovisionPublicIpv4PoolCidrOutput": "DEPROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT", + "DeregisterImageInput": "DEREGISTER_IMAGE_INPUT", + "DeregisterImageOutput": "DEREGISTER_IMAGE_OUTPUT", + "DeregisterInstanceEventNotificationAttributesInput": "DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT", + "DeregisterInstanceEventNotificationAttributesOutput": "DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT", + "DeregisterInstanceTagAttributeRequest": "DEREGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST", + "DeregisterTransitGatewayMulticastGroupMembersInput": "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT", + "DeregisterTransitGatewayMulticastGroupMembersOutput": "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT", + "DeregisterTransitGatewayMulticastGroupSourcesInput": "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT", + "DeregisterTransitGatewayMulticastGroupSourcesOutput": "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT", + "DescribeAccountAttributesInput": "DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT", + "DescribeAccountAttributesOutput": "DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT", + "DescribeAccountVpcEncryptionControlInput": "DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT", + "DescribeAccountVpcEncryptionControlOutput": "DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT", + "DescribeAddressesAttributeInput": "DESCRIBE_ADDRESSES_ATTRIBUTE_INPUT", + "DescribeAddressesAttributeOutput": "DESCRIBE_ADDRESSES_ATTRIBUTE_OUTPUT", + "DescribeAddressesInput": "DESCRIBE_ADDRESSES_INPUT", + "DescribeAddressesOutput": "DESCRIBE_ADDRESSES_OUTPUT", + "DescribeAddressTransfersInput": "DESCRIBE_ADDRESS_TRANSFERS_INPUT", + "DescribeAddressTransfersOutput": "DESCRIBE_ADDRESS_TRANSFERS_OUTPUT", + "DescribeAggregateIdFormatInput": "DESCRIBE_AGGREGATE_ID_FORMAT_INPUT", + "DescribeAggregateIdFormatOutput": "DESCRIBE_AGGREGATE_ID_FORMAT_OUTPUT", + "DescribeApplicationStatusCheckAssociationsInput": "DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_INPUT", + "DescribeApplicationStatusCheckAssociationsOutput": "DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS_OUTPUT", + "DescribeApplicationStatusChecksInput": "DESCRIBE_APPLICATION_STATUS_CHECKS_INPUT", + "DescribeApplicationStatusChecksOutput": "DESCRIBE_APPLICATION_STATUS_CHECKS_OUTPUT", + "DescribeApplicationStatusInput": "DESCRIBE_APPLICATION_STATUS_INPUT", + "DescribeApplicationStatusOutput": "DESCRIBE_APPLICATION_STATUS_OUTPUT", + "DescribeAvailabilityZonesInput": "DESCRIBE_AVAILABILITY_ZONES_INPUT", + "DescribeAvailabilityZonesOutput": "DESCRIBE_AVAILABILITY_ZONES_OUTPUT", + "DescribeAwsNetworkPerformanceMetricSubscriptionsInput": "DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_INPUT", + "DescribeAwsNetworkPerformanceMetricSubscriptionsOutput": "DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS_OUTPUT", + "DescribeBundleTasksInput": "DESCRIBE_BUNDLE_TASKS_INPUT", + "DescribeBundleTasksOutput": "DESCRIBE_BUNDLE_TASKS_OUTPUT", + "DescribeByoipCidrsInput": "DESCRIBE_BYOIP_CIDRS_INPUT", + "DescribeByoipCidrsOutput": "DESCRIBE_BYOIP_CIDRS_OUTPUT", + "DescribeCapacityBlockExtensionHistoryInput": "DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_INPUT", + "DescribeCapacityBlockExtensionHistoryOutput": "DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY_OUTPUT", + "DescribeCapacityBlockExtensionOfferingsInput": "DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_INPUT", + "DescribeCapacityBlockExtensionOfferingsOutput": "DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS_OUTPUT", + "DescribeCapacityBlockOfferingsInput": "DESCRIBE_CAPACITY_BLOCK_OFFERINGS_INPUT", + "DescribeCapacityBlockOfferingsOutput": "DESCRIBE_CAPACITY_BLOCK_OFFERINGS_OUTPUT", + "DescribeCapacityBlocksInput": "DESCRIBE_CAPACITY_BLOCKS_INPUT", + "DescribeCapacityBlocksOutput": "DESCRIBE_CAPACITY_BLOCKS_OUTPUT", + "DescribeCapacityBlockStatusInput": "DESCRIBE_CAPACITY_BLOCK_STATUS_INPUT", + "DescribeCapacityBlockStatusOutput": "DESCRIBE_CAPACITY_BLOCK_STATUS_OUTPUT", + "DescribeCapacityManagerDataExportsInput": "DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_INPUT", + "DescribeCapacityManagerDataExportsOutput": "DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS_OUTPUT", + "DescribeCapacityReservationBillingRequestsInput": "DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_INPUT", + "DescribeCapacityReservationBillingRequestsOutput": "DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS_OUTPUT", + "DescribeCapacityReservationCancellationQuotesInput": "DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_INPUT", + "DescribeCapacityReservationCancellationQuotesOutput": "DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES_OUTPUT", + "DescribeCapacityReservationDateChangeQuotesInput": "DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_INPUT", + "DescribeCapacityReservationDateChangeQuotesOutput": "DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES_OUTPUT", + "DescribeCapacityReservationFleetsInput": "DESCRIBE_CAPACITY_RESERVATION_FLEETS_INPUT", + "DescribeCapacityReservationFleetsOutput": "DESCRIBE_CAPACITY_RESERVATION_FLEETS_OUTPUT", + "DescribeCapacityReservationsInput": "DESCRIBE_CAPACITY_RESERVATIONS_INPUT", + "DescribeCapacityReservationsOutput": "DESCRIBE_CAPACITY_RESERVATIONS_OUTPUT", + "DescribeCapacityReservationTopologyInput": "DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_INPUT", + "DescribeCapacityReservationTopologyOutput": "DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY_OUTPUT", + "DescribeCarrierGatewaysInput": "DESCRIBE_CARRIER_GATEWAYS_INPUT", + "DescribeCarrierGatewaysOutput": "DESCRIBE_CARRIER_GATEWAYS_OUTPUT", + "DescribeClassicLinkInstancesInput": "DESCRIBE_CLASSIC_LINK_INSTANCES_INPUT", + "DescribeClassicLinkInstancesOutput": "DESCRIBE_CLASSIC_LINK_INSTANCES_OUTPUT", + "DescribeClientVpnAuthorizationRulesInput": "DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_INPUT", + "DescribeClientVpnAuthorizationRulesOutput": "DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES_OUTPUT", + "DescribeClientVpnConnectionsInput": "DESCRIBE_CLIENT_VPN_CONNECTIONS_INPUT", + "DescribeClientVpnConnectionsOutput": "DESCRIBE_CLIENT_VPN_CONNECTIONS_OUTPUT", + "DescribeClientVpnEndpointsInput": "DESCRIBE_CLIENT_VPN_ENDPOINTS_INPUT", + "DescribeClientVpnEndpointsOutput": "DESCRIBE_CLIENT_VPN_ENDPOINTS_OUTPUT", + "DescribeClientVpnRoutesInput": "DESCRIBE_CLIENT_VPN_ROUTES_INPUT", + "DescribeClientVpnRoutesOutput": "DESCRIBE_CLIENT_VPN_ROUTES_OUTPUT", + "DescribeClientVpnTargetNetworksInput": "DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_INPUT", + "DescribeClientVpnTargetNetworksOutput": "DESCRIBE_CLIENT_VPN_TARGET_NETWORKS_OUTPUT", + "DescribeCoipPoolsInput": "DESCRIBE_COIP_POOLS_INPUT", + "DescribeCoipPoolsOutput": "DESCRIBE_COIP_POOLS_OUTPUT", + "DescribeConversionTasksInput": "DESCRIBE_CONVERSION_TASKS_INPUT", + "DescribeConversionTasksOutput": "DESCRIBE_CONVERSION_TASKS_OUTPUT", + "DescribeCustomerGatewaysInput": "DESCRIBE_CUSTOMER_GATEWAYS_INPUT", + "DescribeCustomerGatewaysOutput": "DESCRIBE_CUSTOMER_GATEWAYS_OUTPUT", + "DescribeDeclarativePoliciesReportsInput": "DESCRIBE_DECLARATIVE_POLICIES_REPORTS_INPUT", + "DescribeDeclarativePoliciesReportsOutput": "DESCRIBE_DECLARATIVE_POLICIES_REPORTS_OUTPUT", + "DescribeDhcpOptionsInput": "DESCRIBE_DHCP_OPTIONS_INPUT", + "DescribeDhcpOptionsOutput": "DESCRIBE_DHCP_OPTIONS_OUTPUT", + "DescribeEgressOnlyInternetGatewaysInput": "DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_INPUT", + "DescribeEgressOnlyInternetGatewaysOutput": "DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS_OUTPUT", + "DescribeElasticGpusInput": "DESCRIBE_ELASTIC_GPUS_INPUT", + "DescribeElasticGpusOutput": "DESCRIBE_ELASTIC_GPUS_OUTPUT", + "DescribeExportImageTasksInput": "DESCRIBE_EXPORT_IMAGE_TASKS_INPUT", + "DescribeExportImageTasksOutput": "DESCRIBE_EXPORT_IMAGE_TASKS_OUTPUT", + "DescribeExportTasksInput": "DESCRIBE_EXPORT_TASKS_INPUT", + "DescribeExportTasksOutput": "DESCRIBE_EXPORT_TASKS_OUTPUT", + "DescribeFastLaunchImagesInput": "DESCRIBE_FAST_LAUNCH_IMAGES_INPUT", + "DescribeFastLaunchImagesOutput": "DESCRIBE_FAST_LAUNCH_IMAGES_OUTPUT", + "DescribeFastLaunchImagesSuccessItem": "DESCRIBE_FAST_LAUNCH_IMAGES_SUCCESS_ITEM", + "DescribeFastSnapshotRestoresInput": "DESCRIBE_FAST_SNAPSHOT_RESTORES_INPUT", + "DescribeFastSnapshotRestoresOutput": "DESCRIBE_FAST_SNAPSHOT_RESTORES_OUTPUT", + "DescribeFastSnapshotRestoreSuccessItem": "DESCRIBE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM", + "DescribeFleetError": "DESCRIBE_FLEET_ERROR", + "DescribeFleetHistoryInput": "DESCRIBE_FLEET_HISTORY_INPUT", + "DescribeFleetHistoryOutput": "DESCRIBE_FLEET_HISTORY_OUTPUT", + "DescribeFleetInstancesInput": "DESCRIBE_FLEET_INSTANCES_INPUT", + "DescribeFleetInstancesOutput": "DESCRIBE_FLEET_INSTANCES_OUTPUT", + "DescribeFleetsInput": "DESCRIBE_FLEETS_INPUT", + "DescribeFleetsInstances": "DESCRIBE_FLEETS_INSTANCES", + "DescribeFleetsOutput": "DESCRIBE_FLEETS_OUTPUT", + "DescribeFlowLogsInput": "DESCRIBE_FLOW_LOGS_INPUT", + "DescribeFlowLogsOutput": "DESCRIBE_FLOW_LOGS_OUTPUT", + "DescribeFpgaImageAttributeInput": "DESCRIBE_FPGA_IMAGE_ATTRIBUTE_INPUT", + "DescribeFpgaImageAttributeOutput": "DESCRIBE_FPGA_IMAGE_ATTRIBUTE_OUTPUT", + "DescribeFpgaImagesInput": "DESCRIBE_FPGA_IMAGES_INPUT", + "DescribeFpgaImagesOutput": "DESCRIBE_FPGA_IMAGES_OUTPUT", + "DescribeHostReservationOfferingsInput": "DESCRIBE_HOST_RESERVATION_OFFERINGS_INPUT", + "DescribeHostReservationOfferingsOutput": "DESCRIBE_HOST_RESERVATION_OFFERINGS_OUTPUT", + "DescribeHostReservationsInput": "DESCRIBE_HOST_RESERVATIONS_INPUT", + "DescribeHostReservationsOutput": "DESCRIBE_HOST_RESERVATIONS_OUTPUT", + "DescribeHostsInput": "DESCRIBE_HOSTS_INPUT", + "DescribeHostsOutput": "DESCRIBE_HOSTS_OUTPUT", + "DescribeIamInstanceProfileAssociationsInput": "DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_INPUT", + "DescribeIamInstanceProfileAssociationsOutput": "DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS_OUTPUT", + "DescribeIdentityIdFormatInput": "DESCRIBE_IDENTITY_ID_FORMAT_INPUT", + "DescribeIdentityIdFormatOutput": "DESCRIBE_IDENTITY_ID_FORMAT_OUTPUT", + "DescribeIdFormatInput": "DESCRIBE_ID_FORMAT_INPUT", + "DescribeIdFormatOutput": "DESCRIBE_ID_FORMAT_OUTPUT", + "DescribeImageAttributeInput": "DESCRIBE_IMAGE_ATTRIBUTE_INPUT", + "DescribeImageAttributeOutput": "DESCRIBE_IMAGE_ATTRIBUTE_OUTPUT", + "DescribeImageReferencesInput": "DESCRIBE_IMAGE_REFERENCES_INPUT", + "DescribeImageReferencesOutput": "DESCRIBE_IMAGE_REFERENCES_OUTPUT", + "DescribeImagesInput": "DESCRIBE_IMAGES_INPUT", + "DescribeImagesOutput": "DESCRIBE_IMAGES_OUTPUT", + "DescribeImageUsageReportEntriesInput": "DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_INPUT", + "DescribeImageUsageReportEntriesOutput": "DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES_OUTPUT", + "DescribeImageUsageReportsInput": "DESCRIBE_IMAGE_USAGE_REPORTS_INPUT", + "DescribeImageUsageReportsOutput": "DESCRIBE_IMAGE_USAGE_REPORTS_OUTPUT", + "DescribeImportImageTasksInput": "DESCRIBE_IMPORT_IMAGE_TASKS_INPUT", + "DescribeImportImageTasksOutput": "DESCRIBE_IMPORT_IMAGE_TASKS_OUTPUT", + "DescribeImportSnapshotTasksInput": "DESCRIBE_IMPORT_SNAPSHOT_TASKS_INPUT", + "DescribeImportSnapshotTasksOutput": "DESCRIBE_IMPORT_SNAPSHOT_TASKS_OUTPUT", + "DescribeInstanceAttributeInput": "DESCRIBE_INSTANCE_ATTRIBUTE_INPUT", + "DescribeInstanceAttributeOutput": "DESCRIBE_INSTANCE_ATTRIBUTE_OUTPUT", + "DescribeInstanceConnectEndpointsInput": "DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_INPUT", + "DescribeInstanceConnectEndpointsOutput": "DESCRIBE_INSTANCE_CONNECT_ENDPOINTS_OUTPUT", + "DescribeInstanceCreditSpecificationsInput": "DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_INPUT", + "DescribeInstanceCreditSpecificationsOutput": "DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS_OUTPUT", + "DescribeInstanceEventNotificationAttributesInput": "DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT", + "DescribeInstanceEventNotificationAttributesOutput": "DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT", + "DescribeInstanceEventWindowsInput": "DESCRIBE_INSTANCE_EVENT_WINDOWS_INPUT", + "DescribeInstanceEventWindowsOutput": "DESCRIBE_INSTANCE_EVENT_WINDOWS_OUTPUT", + "DescribeInstanceImageMetadataInput": "DESCRIBE_INSTANCE_IMAGE_METADATA_INPUT", + "DescribeInstanceImageMetadataOutput": "DESCRIBE_INSTANCE_IMAGE_METADATA_OUTPUT", + "DescribeInstancesInput": "DESCRIBE_INSTANCES_INPUT", + "DescribeInstancesOutput": "DESCRIBE_INSTANCES_OUTPUT", + "DescribeInstanceSqlHaHistoryStatesInput": "DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_INPUT", + "DescribeInstanceSqlHaHistoryStatesOutput": "DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES_OUTPUT", + "DescribeInstanceSqlHaStatesInput": "DESCRIBE_INSTANCE_SQL_HA_STATES_INPUT", + "DescribeInstanceSqlHaStatesOutput": "DESCRIBE_INSTANCE_SQL_HA_STATES_OUTPUT", + "DescribeInstanceStatusInput": "DESCRIBE_INSTANCE_STATUS_INPUT", + "DescribeInstanceStatusOutput": "DESCRIBE_INSTANCE_STATUS_OUTPUT", + "DescribeInstanceTopologyInput": "DESCRIBE_INSTANCE_TOPOLOGY_INPUT", + "DescribeInstanceTopologyOutput": "DESCRIBE_INSTANCE_TOPOLOGY_OUTPUT", + "DescribeInstanceTypeOfferingsInput": "DESCRIBE_INSTANCE_TYPE_OFFERINGS_INPUT", + "DescribeInstanceTypeOfferingsOutput": "DESCRIBE_INSTANCE_TYPE_OFFERINGS_OUTPUT", + "DescribeInstanceTypesInput": "DESCRIBE_INSTANCE_TYPES_INPUT", + "DescribeInstanceTypesOutput": "DESCRIBE_INSTANCE_TYPES_OUTPUT", + "DescribeInternetGatewaysInput": "DESCRIBE_INTERNET_GATEWAYS_INPUT", + "DescribeInternetGatewaysOutput": "DESCRIBE_INTERNET_GATEWAYS_OUTPUT", + "DescribeIpamByoasnInput": "DESCRIBE_IPAM_BYOASN_INPUT", + "DescribeIpamByoasnOutput": "DESCRIBE_IPAM_BYOASN_OUTPUT", + "DescribeIpamExternalResourceVerificationTokensInput": "DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_INPUT", + "DescribeIpamExternalResourceVerificationTokensOutput": "DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS_OUTPUT", + "DescribeIpamInternetRegistryAssociationsInput": "DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_INPUT", + "DescribeIpamInternetRegistryAssociationsOutput": "DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS_OUTPUT", + "DescribeIpamPoliciesInput": "DESCRIBE_IPAM_POLICIES_INPUT", + "DescribeIpamPoliciesOutput": "DESCRIBE_IPAM_POLICIES_OUTPUT", + "DescribeIpamPoolAllocationsInput": "DESCRIBE_IPAM_POOL_ALLOCATIONS_INPUT", + "DescribeIpamPoolAllocationsOutput": "DESCRIBE_IPAM_POOL_ALLOCATIONS_OUTPUT", + "DescribeIpamPoolsInput": "DESCRIBE_IPAM_POOLS_INPUT", + "DescribeIpamPoolsOutput": "DESCRIBE_IPAM_POOLS_OUTPUT", + "DescribeIpamPrefixListResolversInput": "DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_INPUT", + "DescribeIpamPrefixListResolversOutput": "DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS_OUTPUT", + "DescribeIpamPrefixListResolverTargetsInput": "DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_INPUT", + "DescribeIpamPrefixListResolverTargetsOutput": "DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS_OUTPUT", + "DescribeIpamResourceDiscoveriesInput": "DESCRIBE_IPAM_RESOURCE_DISCOVERIES_INPUT", + "DescribeIpamResourceDiscoveriesOutput": "DESCRIBE_IPAM_RESOURCE_DISCOVERIES_OUTPUT", + "DescribeIpamResourceDiscoveryAssociationsInput": "DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_INPUT", + "DescribeIpamResourceDiscoveryAssociationsOutput": "DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS_OUTPUT", + "DescribeIpamScopesInput": "DESCRIBE_IPAM_SCOPES_INPUT", + "DescribeIpamScopesOutput": "DESCRIBE_IPAM_SCOPES_OUTPUT", + "DescribeIpamsInput": "DESCRIBE_IPAMS_INPUT", + "DescribeIpamsOutput": "DESCRIBE_IPAMS_OUTPUT", + "DescribeIpv6PoolsInput": "DESCRIBE_IPV6_POOLS_INPUT", + "DescribeIpv6PoolsOutput": "DESCRIBE_IPV6_POOLS_OUTPUT", + "DescribeKeyPairsInput": "DESCRIBE_KEY_PAIRS_INPUT", + "DescribeKeyPairsOutput": "DESCRIBE_KEY_PAIRS_OUTPUT", + "DescribeLaunchTemplatesInput": "DESCRIBE_LAUNCH_TEMPLATES_INPUT", + "DescribeLaunchTemplatesOutput": "DESCRIBE_LAUNCH_TEMPLATES_OUTPUT", + "DescribeLaunchTemplateVersionsInput": "DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_INPUT", + "DescribeLaunchTemplateVersionsOutput": "DESCRIBE_LAUNCH_TEMPLATE_VERSIONS_OUTPUT", + "DescribeLocalGatewayRouteTablesInput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_INPUT", + "DescribeLocalGatewayRouteTablesOutput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES_OUTPUT", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_INPUT", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS_OUTPUT", + "DescribeLocalGatewayRouteTableVpcAssociationsInput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_INPUT", + "DescribeLocalGatewayRouteTableVpcAssociationsOutput": "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS_OUTPUT", + "DescribeLocalGatewaysInput": "DESCRIBE_LOCAL_GATEWAYS_INPUT", + "DescribeLocalGatewaysOutput": "DESCRIBE_LOCAL_GATEWAYS_OUTPUT", + "DescribeLocalGatewayVirtualInterfaceGroupsInput": "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_INPUT", + "DescribeLocalGatewayVirtualInterfaceGroupsOutput": "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS_OUTPUT", + "DescribeLocalGatewayVirtualInterfacesInput": "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_INPUT", + "DescribeLocalGatewayVirtualInterfacesOutput": "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES_OUTPUT", + "DescribeLockedSnapshotsInput": "DESCRIBE_LOCKED_SNAPSHOTS_INPUT", + "DescribeLockedSnapshotsOutput": "DESCRIBE_LOCKED_SNAPSHOTS_OUTPUT", + "DescribeMacHostsInput": "DESCRIBE_MAC_HOSTS_INPUT", + "DescribeMacHostsOutput": "DESCRIBE_MAC_HOSTS_OUTPUT", + "DescribeMacModificationTasksInput": "DESCRIBE_MAC_MODIFICATION_TASKS_INPUT", + "DescribeMacModificationTasksOutput": "DESCRIBE_MAC_MODIFICATION_TASKS_OUTPUT", + "DescribeManagedPrefixListsInput": "DESCRIBE_MANAGED_PREFIX_LISTS_INPUT", + "DescribeManagedPrefixListsOutput": "DESCRIBE_MANAGED_PREFIX_LISTS_OUTPUT", + "DescribeMovingAddressesInput": "DESCRIBE_MOVING_ADDRESSES_INPUT", + "DescribeMovingAddressesOutput": "DESCRIBE_MOVING_ADDRESSES_OUTPUT", + "DescribeNatGatewaysInput": "DESCRIBE_NAT_GATEWAYS_INPUT", + "DescribeNatGatewaysOutput": "DESCRIBE_NAT_GATEWAYS_OUTPUT", + "DescribeNetworkAclsInput": "DESCRIBE_NETWORK_ACLS_INPUT", + "DescribeNetworkAclsOutput": "DESCRIBE_NETWORK_ACLS_OUTPUT", + "DescribeNetworkInsightsAccessScopeAnalysesInput": "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_INPUT", + "DescribeNetworkInsightsAccessScopeAnalysesOutput": "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES_OUTPUT", + "DescribeNetworkInsightsAccessScopesInput": "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_INPUT", + "DescribeNetworkInsightsAccessScopesOutput": "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES_OUTPUT", + "DescribeNetworkInsightsAnalysesInput": "DESCRIBE_NETWORK_INSIGHTS_ANALYSES_INPUT", + "DescribeNetworkInsightsAnalysesOutput": "DESCRIBE_NETWORK_INSIGHTS_ANALYSES_OUTPUT", + "DescribeNetworkInsightsPathsInput": "DESCRIBE_NETWORK_INSIGHTS_PATHS_INPUT", + "DescribeNetworkInsightsPathsOutput": "DESCRIBE_NETWORK_INSIGHTS_PATHS_OUTPUT", + "DescribeNetworkInterfaceAttributeInput": "DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_INPUT", + "DescribeNetworkInterfaceAttributeOutput": "DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT", + "DescribeNetworkInterfacePermissionsInput": "DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_INPUT", + "DescribeNetworkInterfacePermissionsOutput": "DESCRIBE_NETWORK_INTERFACE_PERMISSIONS_OUTPUT", + "DescribeNetworkInterfacesInput": "DESCRIBE_NETWORK_INTERFACES_INPUT", + "DescribeNetworkInterfacesOutput": "DESCRIBE_NETWORK_INTERFACES_OUTPUT", + "DescribeOutpostLagsInput": "DESCRIBE_OUTPOST_LAGS_INPUT", + "DescribeOutpostLagsOutput": "DESCRIBE_OUTPOST_LAGS_OUTPUT", + "DescribePlacementGroupsInput": "DESCRIBE_PLACEMENT_GROUPS_INPUT", + "DescribePlacementGroupsOutput": "DESCRIBE_PLACEMENT_GROUPS_OUTPUT", + "DescribePrefixListsInput": "DESCRIBE_PREFIX_LISTS_INPUT", + "DescribePrefixListsOutput": "DESCRIBE_PREFIX_LISTS_OUTPUT", + "DescribePrincipalIdFormatInput": "DESCRIBE_PRINCIPAL_ID_FORMAT_INPUT", + "DescribePrincipalIdFormatOutput": "DESCRIBE_PRINCIPAL_ID_FORMAT_OUTPUT", + "DescribePublicIpv4PoolsInput": "DESCRIBE_PUBLIC_IPV4_POOLS_INPUT", + "DescribePublicIpv4PoolsOutput": "DESCRIBE_PUBLIC_IPV4_POOLS_OUTPUT", + "DescribeRegionsInput": "DESCRIBE_REGIONS_INPUT", + "DescribeRegionsOutput": "DESCRIBE_REGIONS_OUTPUT", + "DescribeReplaceRootVolumeTasksInput": "DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_INPUT", + "DescribeReplaceRootVolumeTasksOutput": "DESCRIBE_REPLACE_ROOT_VOLUME_TASKS_OUTPUT", + "DescribeReservedInstancesInput": "DESCRIBE_RESERVED_INSTANCES_INPUT", + "DescribeReservedInstancesListingsInput": "DESCRIBE_RESERVED_INSTANCES_LISTINGS_INPUT", + "DescribeReservedInstancesListingsOutput": "DESCRIBE_RESERVED_INSTANCES_LISTINGS_OUTPUT", + "DescribeReservedInstancesModificationsInput": "DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_INPUT", + "DescribeReservedInstancesModificationsOutput": "DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS_OUTPUT", + "DescribeReservedInstancesOfferingsInput": "DESCRIBE_RESERVED_INSTANCES_OFFERINGS_INPUT", + "DescribeReservedInstancesOfferingsOutput": "DESCRIBE_RESERVED_INSTANCES_OFFERINGS_OUTPUT", + "DescribeReservedInstancesOutput": "DESCRIBE_RESERVED_INSTANCES_OUTPUT", + "DescribeRouteServerEndpointsInput": "DESCRIBE_ROUTE_SERVER_ENDPOINTS_INPUT", + "DescribeRouteServerEndpointsOutput": "DESCRIBE_ROUTE_SERVER_ENDPOINTS_OUTPUT", + "DescribeRouteServerPeersInput": "DESCRIBE_ROUTE_SERVER_PEERS_INPUT", + "DescribeRouteServerPeersOutput": "DESCRIBE_ROUTE_SERVER_PEERS_OUTPUT", + "DescribeRouteServersInput": "DESCRIBE_ROUTE_SERVERS_INPUT", + "DescribeRouteServersOutput": "DESCRIBE_ROUTE_SERVERS_OUTPUT", + "DescribeRouteTablesInput": "DESCRIBE_ROUTE_TABLES_INPUT", + "DescribeRouteTablesOutput": "DESCRIBE_ROUTE_TABLES_OUTPUT", + "DescribeScheduledInstanceAvailabilityInput": "DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_INPUT", + "DescribeScheduledInstanceAvailabilityOutput": "DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY_OUTPUT", + "DescribeScheduledInstancesInput": "DESCRIBE_SCHEDULED_INSTANCES_INPUT", + "DescribeScheduledInstancesOutput": "DESCRIBE_SCHEDULED_INSTANCES_OUTPUT", + "DescribeSecondaryInterfacesInput": "DESCRIBE_SECONDARY_INTERFACES_INPUT", + "DescribeSecondaryInterfacesOutput": "DESCRIBE_SECONDARY_INTERFACES_OUTPUT", + "DescribeSecondaryNetworksInput": "DESCRIBE_SECONDARY_NETWORKS_INPUT", + "DescribeSecondaryNetworksOutput": "DESCRIBE_SECONDARY_NETWORKS_OUTPUT", + "DescribeSecondarySubnetsInput": "DESCRIBE_SECONDARY_SUBNETS_INPUT", + "DescribeSecondarySubnetsOutput": "DESCRIBE_SECONDARY_SUBNETS_OUTPUT", + "DescribeSecurityGroupReferencesInput": "DESCRIBE_SECURITY_GROUP_REFERENCES_INPUT", + "DescribeSecurityGroupReferencesOutput": "DESCRIBE_SECURITY_GROUP_REFERENCES_OUTPUT", + "DescribeSecurityGroupRulesInput": "DESCRIBE_SECURITY_GROUP_RULES_INPUT", + "DescribeSecurityGroupRulesOutput": "DESCRIBE_SECURITY_GROUP_RULES_OUTPUT", + "DescribeSecurityGroupsInput": "DESCRIBE_SECURITY_GROUPS_INPUT", + "DescribeSecurityGroupsOutput": "DESCRIBE_SECURITY_GROUPS_OUTPUT", + "DescribeSecurityGroupVpcAssociationsInput": "DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_INPUT", + "DescribeSecurityGroupVpcAssociationsOutput": "DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS_OUTPUT", + "DescribeServiceLinkVirtualInterfacesInput": "DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_INPUT", + "DescribeServiceLinkVirtualInterfacesOutput": "DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES_OUTPUT", + "DescribeSnapshotAttributeInput": "DESCRIBE_SNAPSHOT_ATTRIBUTE_INPUT", + "DescribeSnapshotAttributeOutput": "DESCRIBE_SNAPSHOT_ATTRIBUTE_OUTPUT", + "DescribeSnapshotsInput": "DESCRIBE_SNAPSHOTS_INPUT", + "DescribeSnapshotsOutput": "DESCRIBE_SNAPSHOTS_OUTPUT", + "DescribeSnapshotTierStatusInput": "DESCRIBE_SNAPSHOT_TIER_STATUS_INPUT", + "DescribeSnapshotTierStatusOutput": "DESCRIBE_SNAPSHOT_TIER_STATUS_OUTPUT", + "DescribeSpotDatafeedSubscriptionInput": "DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_INPUT", + "DescribeSpotDatafeedSubscriptionOutput": "DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION_OUTPUT", + "DescribeSpotFleetInstancesInput": "DESCRIBE_SPOT_FLEET_INSTANCES_INPUT", + "DescribeSpotFleetInstancesOutput": "DESCRIBE_SPOT_FLEET_INSTANCES_OUTPUT", + "DescribeSpotFleetRequestHistoryInput": "DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_INPUT", + "DescribeSpotFleetRequestHistoryOutput": "DESCRIBE_SPOT_FLEET_REQUEST_HISTORY_OUTPUT", + "DescribeSpotFleetRequestsInput": "DESCRIBE_SPOT_FLEET_REQUESTS_INPUT", + "DescribeSpotFleetRequestsOutput": "DESCRIBE_SPOT_FLEET_REQUESTS_OUTPUT", + "DescribeSpotInstanceRequestsInput": "DESCRIBE_SPOT_INSTANCE_REQUESTS_INPUT", + "DescribeSpotInstanceRequestsOutput": "DESCRIBE_SPOT_INSTANCE_REQUESTS_OUTPUT", + "DescribeSpotPriceHistoryInput": "DESCRIBE_SPOT_PRICE_HISTORY_INPUT", + "DescribeSpotPriceHistoryOutput": "DESCRIBE_SPOT_PRICE_HISTORY_OUTPUT", + "DescribeStaleSecurityGroupsInput": "DESCRIBE_STALE_SECURITY_GROUPS_INPUT", + "DescribeStaleSecurityGroupsOutput": "DESCRIBE_STALE_SECURITY_GROUPS_OUTPUT", + "DescribeStoreImageTasksInput": "DESCRIBE_STORE_IMAGE_TASKS_INPUT", + "DescribeStoreImageTasksOutput": "DESCRIBE_STORE_IMAGE_TASKS_OUTPUT", + "DescribeSubnetsInput": "DESCRIBE_SUBNETS_INPUT", + "DescribeSubnetsOutput": "DESCRIBE_SUBNETS_OUTPUT", + "DescribeTagsInput": "DESCRIBE_TAGS_INPUT", + "DescribeTagsOutput": "DESCRIBE_TAGS_OUTPUT", + "DescribeTrafficMirrorFilterRulesInput": "DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_INPUT", + "DescribeTrafficMirrorFilterRulesOutput": "DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES_OUTPUT", + "DescribeTrafficMirrorFiltersInput": "DESCRIBE_TRAFFIC_MIRROR_FILTERS_INPUT", + "DescribeTrafficMirrorFiltersOutput": "DESCRIBE_TRAFFIC_MIRROR_FILTERS_OUTPUT", + "DescribeTrafficMirrorSessionsInput": "DESCRIBE_TRAFFIC_MIRROR_SESSIONS_INPUT", + "DescribeTrafficMirrorSessionsOutput": "DESCRIBE_TRAFFIC_MIRROR_SESSIONS_OUTPUT", + "DescribeTrafficMirrorTargetsInput": "DESCRIBE_TRAFFIC_MIRROR_TARGETS_INPUT", + "DescribeTrafficMirrorTargetsOutput": "DESCRIBE_TRAFFIC_MIRROR_TARGETS_OUTPUT", + "DescribeTransitGatewayAttachmentsInput": "DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_INPUT", + "DescribeTransitGatewayAttachmentsOutput": "DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS_OUTPUT", + "DescribeTransitGatewayConnectPeersInput": "DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_INPUT", + "DescribeTransitGatewayConnectPeersOutput": "DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS_OUTPUT", + "DescribeTransitGatewayConnectsInput": "DESCRIBE_TRANSIT_GATEWAY_CONNECTS_INPUT", + "DescribeTransitGatewayConnectsOutput": "DESCRIBE_TRANSIT_GATEWAY_CONNECTS_OUTPUT", + "DescribeTransitGatewayMeteringPoliciesInput": "DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_INPUT", + "DescribeTransitGatewayMeteringPoliciesOutput": "DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES_OUTPUT", + "DescribeTransitGatewayMulticastDomainsInput": "DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_INPUT", + "DescribeTransitGatewayMulticastDomainsOutput": "DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS_OUTPUT", + "DescribeTransitGatewayPeeringAttachmentsInput": "DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_INPUT", + "DescribeTransitGatewayPeeringAttachmentsOutput": "DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS_OUTPUT", + "DescribeTransitGatewayPolicyTablesInput": "DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_INPUT", + "DescribeTransitGatewayPolicyTablesOutput": "DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES_OUTPUT", + "DescribeTransitGatewayRouteTableAnnouncementsInput": "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_INPUT", + "DescribeTransitGatewayRouteTableAnnouncementsOutput": "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS_OUTPUT", + "DescribeTransitGatewayRouteTablesInput": "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_INPUT", + "DescribeTransitGatewayRouteTablesOutput": "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES_OUTPUT", + "DescribeTransitGatewaysInput": "DESCRIBE_TRANSIT_GATEWAYS_INPUT", + "DescribeTransitGatewaysOutput": "DESCRIBE_TRANSIT_GATEWAYS_OUTPUT", + "DescribeTransitGatewayVpcAttachmentsInput": "DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_INPUT", + "DescribeTransitGatewayVpcAttachmentsOutput": "DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS_OUTPUT", + "DescribeTrunkInterfaceAssociationsInput": "DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_INPUT", + "DescribeTrunkInterfaceAssociationsOutput": "DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS_OUTPUT", + "DescribeVerifiedAccessEndpointsInput": "DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_INPUT", + "DescribeVerifiedAccessEndpointsOutput": "DESCRIBE_VERIFIED_ACCESS_ENDPOINTS_OUTPUT", + "DescribeVerifiedAccessGroupsInput": "DESCRIBE_VERIFIED_ACCESS_GROUPS_INPUT", + "DescribeVerifiedAccessGroupsOutput": "DESCRIBE_VERIFIED_ACCESS_GROUPS_OUTPUT", + "DescribeVerifiedAccessInstanceLoggingConfigurationsInput": "DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_INPUT", + "DescribeVerifiedAccessInstanceLoggingConfigurationsOutput": "DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS_OUTPUT", + "DescribeVerifiedAccessInstancesInput": "DESCRIBE_VERIFIED_ACCESS_INSTANCES_INPUT", + "DescribeVerifiedAccessInstancesOutput": "DESCRIBE_VERIFIED_ACCESS_INSTANCES_OUTPUT", + "DescribeVerifiedAccessTrustProvidersInput": "DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_INPUT", + "DescribeVerifiedAccessTrustProvidersOutput": "DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS_OUTPUT", + "DescribeVolumeAttributeInput": "DESCRIBE_VOLUME_ATTRIBUTE_INPUT", + "DescribeVolumeAttributeOutput": "DESCRIBE_VOLUME_ATTRIBUTE_OUTPUT", + "DescribeVolumesInput": "DESCRIBE_VOLUMES_INPUT", + "DescribeVolumesModificationsInput": "DESCRIBE_VOLUMES_MODIFICATIONS_INPUT", + "DescribeVolumesModificationsOutput": "DESCRIBE_VOLUMES_MODIFICATIONS_OUTPUT", + "DescribeVolumesOutput": "DESCRIBE_VOLUMES_OUTPUT", + "DescribeVolumeStatusInput": "DESCRIBE_VOLUME_STATUS_INPUT", + "DescribeVolumeStatusOutput": "DESCRIBE_VOLUME_STATUS_OUTPUT", + "DescribeVpcAttributeInput": "DESCRIBE_VPC_ATTRIBUTE_INPUT", + "DescribeVpcAttributeOutput": "DESCRIBE_VPC_ATTRIBUTE_OUTPUT", + "DescribeVpcBlockPublicAccessExclusionsInput": "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_INPUT", + "DescribeVpcBlockPublicAccessExclusionsOutput": "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_OUTPUT", + "DescribeVpcBlockPublicAccessOptionsInput": "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT", + "DescribeVpcBlockPublicAccessOptionsOutput": "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT", + "DescribeVpcClassicLinkDnsSupportInput": "DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT", + "DescribeVpcClassicLinkDnsSupportOutput": "DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT", + "DescribeVpcClassicLinkInput": "DESCRIBE_VPC_CLASSIC_LINK_INPUT", + "DescribeVpcClassicLinkOutput": "DESCRIBE_VPC_CLASSIC_LINK_OUTPUT", + "DescribeVpcEncryptionControlsInput": "DESCRIBE_VPC_ENCRYPTION_CONTROLS_INPUT", + "DescribeVpcEncryptionControlsOutput": "DESCRIBE_VPC_ENCRYPTION_CONTROLS_OUTPUT", + "DescribeVpcEndpointAssociationsInput": "DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_INPUT", + "DescribeVpcEndpointAssociationsOutput": "DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS_OUTPUT", + "DescribeVpcEndpointConnectionNotificationsInput": "DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_INPUT", + "DescribeVpcEndpointConnectionNotificationsOutput": "DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS_OUTPUT", + "DescribeVpcEndpointConnectionsInput": "DESCRIBE_VPC_ENDPOINT_CONNECTIONS_INPUT", + "DescribeVpcEndpointConnectionsOutput": "DESCRIBE_VPC_ENDPOINT_CONNECTIONS_OUTPUT", + "DescribeVpcEndpointServiceConfigurationsInput": "DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_INPUT", + "DescribeVpcEndpointServiceConfigurationsOutput": "DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS_OUTPUT", + "DescribeVpcEndpointServicePermissionsInput": "DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT", + "DescribeVpcEndpointServicePermissionsOutput": "DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT", + "DescribeVpcEndpointServicesInput": "DESCRIBE_VPC_ENDPOINT_SERVICES_INPUT", + "DescribeVpcEndpointServicesOutput": "DESCRIBE_VPC_ENDPOINT_SERVICES_OUTPUT", + "DescribeVpcEndpointsInput": "DESCRIBE_VPC_ENDPOINTS_INPUT", + "DescribeVpcEndpointsOutput": "DESCRIBE_VPC_ENDPOINTS_OUTPUT", + "DescribeVpcPeeringConnectionsInput": "DESCRIBE_VPC_PEERING_CONNECTIONS_INPUT", + "DescribeVpcPeeringConnectionsOutput": "DESCRIBE_VPC_PEERING_CONNECTIONS_OUTPUT", + "DescribeVpcsInput": "DESCRIBE_VPCS_INPUT", + "DescribeVpcsOutput": "DESCRIBE_VPCS_OUTPUT", + "DescribeVpnConcentratorsInput": "DESCRIBE_VPN_CONCENTRATORS_INPUT", + "DescribeVpnConcentratorsOutput": "DESCRIBE_VPN_CONCENTRATORS_OUTPUT", + "DescribeVpnConnectionsInput": "DESCRIBE_VPN_CONNECTIONS_INPUT", + "DescribeVpnConnectionsOutput": "DESCRIBE_VPN_CONNECTIONS_OUTPUT", + "DescribeVpnGatewaysInput": "DESCRIBE_VPN_GATEWAYS_INPUT", + "DescribeVpnGatewaysOutput": "DESCRIBE_VPN_GATEWAYS_OUTPUT", + "DestinationFileFormat": "DESTINATION_FILE_FORMAT", + "DestinationOptionsRequest": "DESTINATION_OPTIONS_REQUEST", + "DestinationOptionsResponse": "DESTINATION_OPTIONS_RESPONSE", + "DetachClassicLinkVpcInput": "DETACH_CLASSIC_LINK_VPC_INPUT", + "DetachClassicLinkVpcOutput": "DETACH_CLASSIC_LINK_VPC_OUTPUT", + "DetachImageWatermarkInput": "DETACH_IMAGE_WATERMARK_INPUT", + "DetachImageWatermarkOutput": "DETACH_IMAGE_WATERMARK_OUTPUT", + "DetachInternetGatewayInput": "DETACH_INTERNET_GATEWAY_INPUT", + "DetachInternetGatewayOutput": "DETACH_INTERNET_GATEWAY_OUTPUT", + "DetachNetworkInterfaceInput": "DETACH_NETWORK_INTERFACE_INPUT", + "DetachNetworkInterfaceOutput": "DETACH_NETWORK_INTERFACE_OUTPUT", + "DetachVerifiedAccessTrustProviderInput": "DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT", + "DetachVerifiedAccessTrustProviderOutput": "DETACH_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT", + "DetachVolumeInput": "DETACH_VOLUME_INPUT", + "DetachVolumeOutput": "DETACH_VOLUME_OUTPUT", + "DetachVpnGatewayInput": "DETACH_VPN_GATEWAY_INPUT", + "DetachVpnGatewayOutput": "DETACH_VPN_GATEWAY_OUTPUT", + "DeviceOptions": "DEVICE_OPTIONS", + "DevicePostureOptions": "DEVICE_POSTURE_OPTIONS", + "DevicePostureResponseOptions": "DEVICE_POSTURE_RESPONSE_OPTIONS", + "DeviceTrustProviderType": "DEVICE_TRUST_PROVIDER_TYPE", + "DeviceType": "DEVICE_TYPE", + "DhcpConfiguration": "DHCP_CONFIGURATION", + "DhcpOptions": "DHCP_OPTIONS", + "DimensionCondition": "DIMENSION_CONDITION", + "DirectoryServiceAuthentication": "DIRECTORY_SERVICE_AUTHENTICATION", + "DirectoryServiceAuthenticationRequest": "DIRECTORY_SERVICE_AUTHENTICATION_REQUEST", + "DisableAddressTransferInput": "DISABLE_ADDRESS_TRANSFER_INPUT", + "DisableAddressTransferOutput": "DISABLE_ADDRESS_TRANSFER_OUTPUT", + "DisableAllowedImagesSettingsInput": "DISABLE_ALLOWED_IMAGES_SETTINGS_INPUT", + "DisableAllowedImagesSettingsOutput": "DISABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT", + "DisableApplicationStatusCheckSuppressionInput": "DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT", + "DisableApplicationStatusCheckSuppressionOutput": "DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT", + "DisableAwsNetworkPerformanceMetricSubscriptionInput": "DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT", + "DisableAwsNetworkPerformanceMetricSubscriptionOutput": "DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT", + "DisableCapacityManagerInput": "DISABLE_CAPACITY_MANAGER_INPUT", + "DisableCapacityManagerOutput": "DISABLE_CAPACITY_MANAGER_OUTPUT", + "DisableEbsEncryptionByDefaultInput": "DISABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT", + "DisableEbsEncryptionByDefaultOutput": "DISABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT", + "DisableFastLaunchInput": "DISABLE_FAST_LAUNCH_INPUT", + "DisableFastLaunchOutput": "DISABLE_FAST_LAUNCH_OUTPUT", + "DisableFastSnapshotRestoreErrorItem": "DISABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM", + "DisableFastSnapshotRestoresInput": "DISABLE_FAST_SNAPSHOT_RESTORES_INPUT", + "DisableFastSnapshotRestoresOutput": "DISABLE_FAST_SNAPSHOT_RESTORES_OUTPUT", + "DisableFastSnapshotRestoreStateError": "DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR", + "DisableFastSnapshotRestoreStateErrorItem": "DISABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM", + "DisableFastSnapshotRestoreSuccessItem": "DISABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM", + "DisableImageBlockPublicAccessInput": "DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT", + "DisableImageBlockPublicAccessOutput": "DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT", + "DisableImageDeprecationInput": "DISABLE_IMAGE_DEPRECATION_INPUT", + "DisableImageDeprecationOutput": "DISABLE_IMAGE_DEPRECATION_OUTPUT", + "DisableImageDeregistrationProtectionInput": "DISABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT", + "DisableImageDeregistrationProtectionOutput": "DISABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT", + "DisableImageInput": "DISABLE_IMAGE_INPUT", + "DisableImageOutput": "DISABLE_IMAGE_OUTPUT", + "DisableInstanceSqlHaStandbyDetectionsInput": "DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT", + "DisableInstanceSqlHaStandbyDetectionsOutput": "DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT", + "DisableIpamOrganizationAdminAccountInput": "DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT", + "DisableIpamOrganizationAdminAccountOutput": "DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT", + "DisableIpamPolicyInput": "DISABLE_IPAM_POLICY_INPUT", + "DisableIpamPolicyOutput": "DISABLE_IPAM_POLICY_OUTPUT", + "DisableRouteServerPropagationInput": "DISABLE_ROUTE_SERVER_PROPAGATION_INPUT", + "DisableRouteServerPropagationOutput": "DISABLE_ROUTE_SERVER_PROPAGATION_OUTPUT", + "DisableSerialConsoleAccessInput": "DISABLE_SERIAL_CONSOLE_ACCESS_INPUT", + "DisableSerialConsoleAccessOutput": "DISABLE_SERIAL_CONSOLE_ACCESS_OUTPUT", + "DisableSnapshotBlockPublicAccessInput": "DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT", + "DisableSnapshotBlockPublicAccessOutput": "DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT", + "DisableTransitGatewayRouteTablePropagationInput": "DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT", + "DisableTransitGatewayRouteTablePropagationOutput": "DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT", + "DisableVgwRoutePropagationInput": "DISABLE_VGW_ROUTE_PROPAGATION_INPUT", + "DisableVgwRoutePropagationOutput": "DISABLE_VGW_ROUTE_PROPAGATION_OUTPUT", + "DisableVpcClassicLinkDnsSupportInput": "DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT", + "DisableVpcClassicLinkDnsSupportOutput": "DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT", + "DisableVpcClassicLinkInput": "DISABLE_VPC_CLASSIC_LINK_INPUT", + "DisableVpcClassicLinkOutput": "DISABLE_VPC_CLASSIC_LINK_OUTPUT", + "DisassociateAddressInput": "DISASSOCIATE_ADDRESS_INPUT", + "DisassociateAddressOutput": "DISASSOCIATE_ADDRESS_OUTPUT", + "DisassociateApplicationStatusCheckInput": "DISASSOCIATE_APPLICATION_STATUS_CHECK_INPUT", + "DisassociateApplicationStatusCheckOutput": "DISASSOCIATE_APPLICATION_STATUS_CHECK_OUTPUT", + "DisassociateCapacityReservationBillingOwnerInput": "DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_INPUT", + "DisassociateCapacityReservationBillingOwnerOutput": "DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER_OUTPUT", + "DisassociateClientVpnTargetNetworkInput": "DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_INPUT", + "DisassociateClientVpnTargetNetworkOutput": "DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK_OUTPUT", + "DisassociateEnclaveCertificateIamRoleInput": "DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_INPUT", + "DisassociateEnclaveCertificateIamRoleOutput": "DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE_OUTPUT", + "DisassociateIamInstanceProfileInput": "DISASSOCIATE_IAM_INSTANCE_PROFILE_INPUT", + "DisassociateIamInstanceProfileOutput": "DISASSOCIATE_IAM_INSTANCE_PROFILE_OUTPUT", + "DisassociateInstanceEventWindowInput": "DISASSOCIATE_INSTANCE_EVENT_WINDOW_INPUT", + "DisassociateInstanceEventWindowOutput": "DISASSOCIATE_INSTANCE_EVENT_WINDOW_OUTPUT", + "DisassociateIpamByoasnInput": "DISASSOCIATE_IPAM_BYOASN_INPUT", + "DisassociateIpamByoasnOutput": "DISASSOCIATE_IPAM_BYOASN_OUTPUT", + "DisassociateIpamResourceDiscoveryInput": "DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_INPUT", + "DisassociateIpamResourceDiscoveryOutput": "DISASSOCIATE_IPAM_RESOURCE_DISCOVERY_OUTPUT", + "DisassociateNatGatewayAddressInput": "DISASSOCIATE_NAT_GATEWAY_ADDRESS_INPUT", + "DisassociateNatGatewayAddressOutput": "DISASSOCIATE_NAT_GATEWAY_ADDRESS_OUTPUT", + "DisassociateRouteServerInput": "DISASSOCIATE_ROUTE_SERVER_INPUT", + "DisassociateRouteServerOutput": "DISASSOCIATE_ROUTE_SERVER_OUTPUT", + "DisassociateRouteTableInput": "DISASSOCIATE_ROUTE_TABLE_INPUT", + "DisassociateRouteTableOutput": "DISASSOCIATE_ROUTE_TABLE_OUTPUT", + "DisassociateSecurityGroupVpcInput": "DISASSOCIATE_SECURITY_GROUP_VPC_INPUT", + "DisassociateSecurityGroupVpcOutput": "DISASSOCIATE_SECURITY_GROUP_VPC_OUTPUT", + "DisassociateSubnetCidrBlockInput": "DISASSOCIATE_SUBNET_CIDR_BLOCK_INPUT", + "DisassociateSubnetCidrBlockOutput": "DISASSOCIATE_SUBNET_CIDR_BLOCK_OUTPUT", + "DisassociateTransitGatewayMulticastDomainInput": "DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_INPUT", + "DisassociateTransitGatewayMulticastDomainOutput": "DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN_OUTPUT", + "DisassociateTransitGatewayPolicyTableInput": "DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_INPUT", + "DisassociateTransitGatewayPolicyTableOutput": "DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE_OUTPUT", + "DisassociateTransitGatewayRouteTableInput": "DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_INPUT", + "DisassociateTransitGatewayRouteTableOutput": "DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE_OUTPUT", + "DisassociateTrunkInterfaceInput": "DISASSOCIATE_TRUNK_INTERFACE_INPUT", + "DisassociateTrunkInterfaceOutput": "DISASSOCIATE_TRUNK_INTERFACE_OUTPUT", + "DisassociateVpcCidrBlockInput": "DISASSOCIATE_VPC_CIDR_BLOCK_INPUT", + "DisassociateVpcCidrBlockOutput": "DISASSOCIATE_VPC_CIDR_BLOCK_OUTPUT", + "DiskImage": "DISK_IMAGE", + "DiskImageDescription": "DISK_IMAGE_DESCRIPTION", + "DiskImageDetail": "DISK_IMAGE_DETAIL", + "DiskImageFormat": "DISK_IMAGE_FORMAT", + "DiskImageVolumeDescription": "DISK_IMAGE_VOLUME_DESCRIPTION", + "DiskInfo": "DISK_INFO", + "DiskType": "DISK_TYPE", + "DnsEntry": "DNS_ENTRY", + "DnsNameState": "DNS_NAME_STATE", + "DnsOptions": "DNS_OPTIONS", + "DnsOptionsSpecification": "DNS_OPTIONS_SPECIFICATION", + "DnsRecordIpType": "DNS_RECORD_IP_TYPE", + "DnsServersOptionsModifyStructure": "DNS_SERVERS_OPTIONS_MODIFY_STRUCTURE", + "DnsSupportValue": "DNS_SUPPORT_VALUE", + "DomainType": "DOMAIN_TYPE", + "DynamicRoutingValue": "DYNAMIC_ROUTING_VALUE", + "EbsBlockDevice": "EBS_BLOCK_DEVICE", + "EbsBlockDeviceResponse": "EBS_BLOCK_DEVICE_RESPONSE", + "EbsCardInfo": "EBS_CARD_INFO", + "EbsEncryptionSupport": "EBS_ENCRYPTION_SUPPORT", + "EbsInfo": "EBS_INFO", + "EbsInstanceBlockDevice": "EBS_INSTANCE_BLOCK_DEVICE", + "EbsInstanceBlockDeviceSpecification": "EBS_INSTANCE_BLOCK_DEVICE_SPECIFICATION", + "EbsNvmeSupport": "EBS_NVME_SUPPORT", + "EbsOptimizedInfo": "EBS_OPTIMIZED_INFO", + "EbsOptimizedSupport": "EBS_OPTIMIZED_SUPPORT", + "EbsStatusDetails": "EBS_STATUS_DETAILS", + "EbsStatusSummary": "EBS_STATUS_SUMMARY", + "Ec2InstanceConnectEndpoint": "EC2_INSTANCE_CONNECT_ENDPOINT", + "Ec2InstanceConnectEndpointState": "EC2_INSTANCE_CONNECT_ENDPOINT_STATE", + "EfaInfo": "EFA_INFO", + "EgressOnlyInternetGateway": "EGRESS_ONLY_INTERNET_GATEWAY", + "EkPubKeyFormat": "EK_PUB_KEY_FORMAT", + "EkPubKeyType": "EK_PUB_KEY_TYPE", + "ElasticGpuAssociation": "ELASTIC_GPU_ASSOCIATION", + "ElasticGpuHealth": "ELASTIC_GPU_HEALTH", + "ElasticGpus": "ELASTIC_GPUS", + "ElasticGpuSpecification": "ELASTIC_GPU_SPECIFICATION", + "ElasticGpuSpecificationResponse": "ELASTIC_GPU_SPECIFICATION_RESPONSE", + "ElasticGpuState": "ELASTIC_GPU_STATE", + "ElasticGpuStatus": "ELASTIC_GPU_STATUS", + "ElasticInferenceAccelerator": "ELASTIC_INFERENCE_ACCELERATOR", + "ElasticInferenceAcceleratorAssociation": "ELASTIC_INFERENCE_ACCELERATOR_ASSOCIATION", + "EnableAddressTransferInput": "ENABLE_ADDRESS_TRANSFER_INPUT", + "EnableAddressTransferOutput": "ENABLE_ADDRESS_TRANSFER_OUTPUT", + "EnableAllowedImagesSettingsInput": "ENABLE_ALLOWED_IMAGES_SETTINGS_INPUT", + "EnableAllowedImagesSettingsOutput": "ENABLE_ALLOWED_IMAGES_SETTINGS_OUTPUT", + "EnableApplicationStatusCheckSuppressionInput": "ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_INPUT", + "EnableApplicationStatusCheckSuppressionOutput": "ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION_OUTPUT", + "EnableAwsNetworkPerformanceMetricSubscriptionInput": "ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_INPUT", + "EnableAwsNetworkPerformanceMetricSubscriptionOutput": "ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION_OUTPUT", + "EnableCapacityManagerInput": "ENABLE_CAPACITY_MANAGER_INPUT", + "EnableCapacityManagerOutput": "ENABLE_CAPACITY_MANAGER_OUTPUT", + "EnableEbsEncryptionByDefaultInput": "ENABLE_EBS_ENCRYPTION_BY_DEFAULT_INPUT", + "EnableEbsEncryptionByDefaultOutput": "ENABLE_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT", + "EnableFastLaunchInput": "ENABLE_FAST_LAUNCH_INPUT", + "EnableFastLaunchOutput": "ENABLE_FAST_LAUNCH_OUTPUT", + "EnableFastSnapshotRestoreErrorItem": "ENABLE_FAST_SNAPSHOT_RESTORE_ERROR_ITEM", + "EnableFastSnapshotRestoresInput": "ENABLE_FAST_SNAPSHOT_RESTORES_INPUT", + "EnableFastSnapshotRestoresOutput": "ENABLE_FAST_SNAPSHOT_RESTORES_OUTPUT", + "EnableFastSnapshotRestoreStateError": "ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR", + "EnableFastSnapshotRestoreStateErrorItem": "ENABLE_FAST_SNAPSHOT_RESTORE_STATE_ERROR_ITEM", + "EnableFastSnapshotRestoreSuccessItem": "ENABLE_FAST_SNAPSHOT_RESTORE_SUCCESS_ITEM", + "EnableImageBlockPublicAccessInput": "ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_INPUT", + "EnableImageBlockPublicAccessOutput": "ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS_OUTPUT", + "EnableImageDeprecationInput": "ENABLE_IMAGE_DEPRECATION_INPUT", + "EnableImageDeprecationOutput": "ENABLE_IMAGE_DEPRECATION_OUTPUT", + "EnableImageDeregistrationProtectionInput": "ENABLE_IMAGE_DEREGISTRATION_PROTECTION_INPUT", + "EnableImageDeregistrationProtectionOutput": "ENABLE_IMAGE_DEREGISTRATION_PROTECTION_OUTPUT", + "EnableImageInput": "ENABLE_IMAGE_INPUT", + "EnableImageOutput": "ENABLE_IMAGE_OUTPUT", + "EnableInstanceSqlHaStandbyDetectionsInput": "ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_INPUT", + "EnableInstanceSqlHaStandbyDetectionsOutput": "ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS_OUTPUT", + "EnableIpamInternetRegistryAssociationInput": "ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_INPUT", + "EnableIpamInternetRegistryAssociationOutput": "ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION_OUTPUT", + "EnableIpamOrganizationAdminAccountInput": "ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_INPUT", + "EnableIpamOrganizationAdminAccountOutput": "ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT_OUTPUT", + "EnableIpamPolicyInput": "ENABLE_IPAM_POLICY_INPUT", + "EnableIpamPolicyOutput": "ENABLE_IPAM_POLICY_OUTPUT", + "EnableReachabilityAnalyzerOrganizationSharingInput": "ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_INPUT", + "EnableReachabilityAnalyzerOrganizationSharingOutput": "ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING_OUTPUT", + "EnableRouteServerPropagationInput": "ENABLE_ROUTE_SERVER_PROPAGATION_INPUT", + "EnableRouteServerPropagationOutput": "ENABLE_ROUTE_SERVER_PROPAGATION_OUTPUT", + "EnableSerialConsoleAccessInput": "ENABLE_SERIAL_CONSOLE_ACCESS_INPUT", + "EnableSerialConsoleAccessOutput": "ENABLE_SERIAL_CONSOLE_ACCESS_OUTPUT", + "EnableSnapshotBlockPublicAccessInput": "ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_INPUT", + "EnableSnapshotBlockPublicAccessOutput": "ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS_OUTPUT", + "EnableTransitGatewayRouteTablePropagationInput": "ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_INPUT", + "EnableTransitGatewayRouteTablePropagationOutput": "ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION_OUTPUT", + "EnableVgwRoutePropagationInput": "ENABLE_VGW_ROUTE_PROPAGATION_INPUT", + "EnableVgwRoutePropagationOutput": "ENABLE_VGW_ROUTE_PROPAGATION_OUTPUT", + "EnableVolumeIOInput": "ENABLE_VOLUME_IO_INPUT", + "EnableVolumeIOOutput": "ENABLE_VOLUME_IO_OUTPUT", + "EnableVpcClassicLinkDnsSupportInput": "ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_INPUT", + "EnableVpcClassicLinkDnsSupportOutput": "ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT_OUTPUT", + "EnableVpcClassicLinkInput": "ENABLE_VPC_CLASSIC_LINK_INPUT", + "EnableVpcClassicLinkOutput": "ENABLE_VPC_CLASSIC_LINK_OUTPUT", + "EnaSrdSpecification": "ENA_SRD_SPECIFICATION", + "EnaSrdSpecificationRequest": "ENA_SRD_SPECIFICATION_REQUEST", + "EnaSrdUdpSpecification": "ENA_SRD_UDP_SPECIFICATION", + "EnaSrdUdpSpecificationRequest": "ENA_SRD_UDP_SPECIFICATION_REQUEST", + "EnaSupport": "ENA_SUPPORT", + "EnclaveOptions": "ENCLAVE_OPTIONS", + "EnclaveOptionsRequest": "ENCLAVE_OPTIONS_REQUEST", + "EncryptionStateValue": "ENCRYPTION_STATE_VALUE", + "EncryptionSupport": "ENCRYPTION_SUPPORT", + "EncryptionSupportOptionValue": "ENCRYPTION_SUPPORT_OPTION_VALUE", + "EndDateType": "END_DATE_TYPE", + "EndpointIpAddressType": "ENDPOINT_IP_ADDRESS_TYPE", + "EphemeralNvmeSupport": "EPHEMERAL_NVME_SUPPORT", + "EventCode": "EVENT_CODE", + "EventInformation": "EVENT_INFORMATION", + "EventType": "EVENT_TYPE", + "ExcessCapacityTerminationPolicy": "EXCESS_CAPACITY_TERMINATION_POLICY", + "Explanation": "EXPLANATION", + "ExportClientVpnClientCertificateRevocationListInput": "EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT", + "ExportClientVpnClientCertificateRevocationListOutput": "EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT", + "ExportClientVpnClientConfigurationInput": "EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_INPUT", + "ExportClientVpnClientConfigurationOutput": "EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION_OUTPUT", + "ExportEnvironment": "EXPORT_ENVIRONMENT", + "ExportImageInput": "EXPORT_IMAGE_INPUT", + "ExportImageOutput": "EXPORT_IMAGE_OUTPUT", + "ExportImageTask": "EXPORT_IMAGE_TASK", + "ExportTask": "EXPORT_TASK", + "ExportTaskS3Location": "EXPORT_TASK_S3_LOCATION", + "ExportTaskS3LocationRequest": "EXPORT_TASK_S3_LOCATION_REQUEST", + "ExportTaskState": "EXPORT_TASK_STATE", + "ExportToS3Task": "EXPORT_TO_S3_TASK", + "ExportToS3TaskSpecification": "EXPORT_TO_S3_TASK_SPECIFICATION", + "ExportTransitGatewayRoutesInput": "EXPORT_TRANSIT_GATEWAY_ROUTES_INPUT", + "ExportTransitGatewayRoutesOutput": "EXPORT_TRANSIT_GATEWAY_ROUTES_OUTPUT", + "ExportVerifiedAccessInstanceClientConfigurationInput": "EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_INPUT", + "ExportVerifiedAccessInstanceClientConfigurationOutput": "EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION_OUTPUT", + "ExternalAuthorityConfiguration": "EXTERNAL_AUTHORITY_CONFIGURATION", + "FailedCapacityReservationFleetCancellationResult": "FAILED_CAPACITY_RESERVATION_FLEET_CANCELLATION_RESULT", + "FailedQueuedPurchaseDeletion": "FAILED_QUEUED_PURCHASE_DELETION", + "FastLaunchLaunchTemplateSpecificationRequest": "FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST", + "FastLaunchLaunchTemplateSpecificationResponse": "FAST_LAUNCH_LAUNCH_TEMPLATE_SPECIFICATION_RESPONSE", + "FastLaunchResourceType": "FAST_LAUNCH_RESOURCE_TYPE", + "FastLaunchSnapshotConfigurationRequest": "FAST_LAUNCH_SNAPSHOT_CONFIGURATION_REQUEST", + "FastLaunchSnapshotConfigurationResponse": "FAST_LAUNCH_SNAPSHOT_CONFIGURATION_RESPONSE", + "FastLaunchStateCode": "FAST_LAUNCH_STATE_CODE", + "FastSnapshotRestoreStateCode": "FAST_SNAPSHOT_RESTORE_STATE_CODE", + "FederatedAuthentication": "FEDERATED_AUTHENTICATION", + "FederatedAuthenticationRequest": "FEDERATED_AUTHENTICATION_REQUEST", + "Filter": "FILTER", + "FilterByDimension": "FILTER_BY_DIMENSION", + "FilterPortRange": "FILTER_PORT_RANGE", + "FindingsFound": "FINDINGS_FOUND", + "FirewallStatefulRule": "FIREWALL_STATEFUL_RULE", + "FirewallStatelessRule": "FIREWALL_STATELESS_RULE", + "FleetActivityStatus": "FLEET_ACTIVITY_STATUS", + "FleetBlockDeviceMappingRequest": "FLEET_BLOCK_DEVICE_MAPPING_REQUEST", + "FleetCapacityReservation": "FLEET_CAPACITY_RESERVATION", + "FleetCapacityReservationTargetRequest": "FLEET_CAPACITY_RESERVATION_TARGET_REQUEST", + "FleetCapacityReservationTenancy": "FLEET_CAPACITY_RESERVATION_TENANCY", + "FleetCapacityReservationUsageStrategy": "FLEET_CAPACITY_RESERVATION_USAGE_STRATEGY", + "FleetData": "FLEET_DATA", + "FleetEbsBlockDeviceRequest": "FLEET_EBS_BLOCK_DEVICE_REQUEST", + "FleetEventType": "FLEET_EVENT_TYPE", + "FleetExcessCapacityTerminationPolicy": "FLEET_EXCESS_CAPACITY_TERMINATION_POLICY", + "FleetHttpTokensState": "FLEET_HTTP_TOKENS_STATE", + "FleetIamInstanceProfileSpecificationRequest": "FLEET_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST", + "FleetInstanceMatchCriteria": "FLEET_INSTANCE_MATCH_CRITERIA", + "FleetInstanceMetadataEndpointState": "FLEET_INSTANCE_METADATA_ENDPOINT_STATE", + "FleetInstanceMetadataOptionsRequest": "FLEET_INSTANCE_METADATA_OPTIONS_REQUEST", + "FleetLaunchTemplateConfig": "FLEET_LAUNCH_TEMPLATE_CONFIG", + "FleetLaunchTemplateConfigRequest": "FLEET_LAUNCH_TEMPLATE_CONFIG_REQUEST", + "FleetLaunchTemplateOverrides": "FLEET_LAUNCH_TEMPLATE_OVERRIDES", + "FleetLaunchTemplateOverridesRequest": "FLEET_LAUNCH_TEMPLATE_OVERRIDES_REQUEST", + "FleetLaunchTemplateSpecification": "FLEET_LAUNCH_TEMPLATE_SPECIFICATION", + "FleetLaunchTemplateSpecificationRequest": "FLEET_LAUNCH_TEMPLATE_SPECIFICATION_REQUEST", + "FleetOnDemandAllocationStrategy": "FLEET_ON_DEMAND_ALLOCATION_STRATEGY", + "FleetReplacementStrategy": "FLEET_REPLACEMENT_STRATEGY", + "FleetReservationType": "FLEET_RESERVATION_TYPE", + "FleetSpotCapacityRebalance": "FLEET_SPOT_CAPACITY_REBALANCE", + "FleetSpotCapacityRebalanceRequest": "FLEET_SPOT_CAPACITY_REBALANCE_REQUEST", + "FleetSpotMaintenanceStrategies": "FLEET_SPOT_MAINTENANCE_STRATEGIES", + "FleetSpotMaintenanceStrategiesRequest": "FLEET_SPOT_MAINTENANCE_STRATEGIES_REQUEST", + "FleetStateCode": "FLEET_STATE_CODE", + "FleetType": "FLEET_TYPE", + "FlexibleEnaQueuesSupport": "FLEXIBLE_ENA_QUEUES_SUPPORT", + "FlowLog": "FLOW_LOG", + "FlowLogsResourceType": "FLOW_LOGS_RESOURCE_TYPE", + "FpgaDeviceInfo": "FPGA_DEVICE_INFO", + "FpgaDeviceMemoryInfo": "FPGA_DEVICE_MEMORY_INFO", + "FpgaImage": "FPGA_IMAGE", + "FpgaImageAttribute": "FPGA_IMAGE_ATTRIBUTE", + "FpgaImageAttributeName": "FPGA_IMAGE_ATTRIBUTE_NAME", + "FpgaImageState": "FPGA_IMAGE_STATE", + "FpgaImageStateCode": "FPGA_IMAGE_STATE_CODE", + "FpgaInfo": "FPGA_INFO", + "GatewayAssociationState": "GATEWAY_ASSOCIATION_STATE", + "GatewayType": "GATEWAY_TYPE", + "GetActiveVpnTunnelStatusInput": "GET_ACTIVE_VPN_TUNNEL_STATUS_INPUT", + "GetActiveVpnTunnelStatusOutput": "GET_ACTIVE_VPN_TUNNEL_STATUS_OUTPUT", + "GetAllowedImagesSettingsInput": "GET_ALLOWED_IMAGES_SETTINGS_INPUT", + "GetAllowedImagesSettingsOutput": "GET_ALLOWED_IMAGES_SETTINGS_OUTPUT", + "GetAssociatedEnclaveCertificateIamRolesInput": "GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_INPUT", + "GetAssociatedEnclaveCertificateIamRolesOutput": "GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES_OUTPUT", + "GetAssociatedIpv6PoolCidrsInput": "GET_ASSOCIATED_IPV6_POOL_CIDRS_INPUT", + "GetAssociatedIpv6PoolCidrsOutput": "GET_ASSOCIATED_IPV6_POOL_CIDRS_OUTPUT", + "GetAwsNetworkPerformanceDataInput": "GET_AWS_NETWORK_PERFORMANCE_DATA_INPUT", + "GetAwsNetworkPerformanceDataOutput": "GET_AWS_NETWORK_PERFORMANCE_DATA_OUTPUT", + "GetCapacityManagerAttributesInput": "GET_CAPACITY_MANAGER_ATTRIBUTES_INPUT", + "GetCapacityManagerAttributesOutput": "GET_CAPACITY_MANAGER_ATTRIBUTES_OUTPUT", + "GetCapacityManagerMetricDataInput": "GET_CAPACITY_MANAGER_METRIC_DATA_INPUT", + "GetCapacityManagerMetricDataOutput": "GET_CAPACITY_MANAGER_METRIC_DATA_OUTPUT", + "GetCapacityManagerMetricDimensionsInput": "GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_INPUT", + "GetCapacityManagerMetricDimensionsOutput": "GET_CAPACITY_MANAGER_METRIC_DIMENSIONS_OUTPUT", + "GetCapacityManagerMonitoredTagKeysInput": "GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT", + "GetCapacityManagerMonitoredTagKeysOutput": "GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT", + "GetCapacityManagerSupportabilityScoresInput": "GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_INPUT", + "GetCapacityManagerSupportabilityScoresOutput": "GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES_OUTPUT", + "GetCapacityReservationUsageInput": "GET_CAPACITY_RESERVATION_USAGE_INPUT", + "GetCapacityReservationUsageOutput": "GET_CAPACITY_RESERVATION_USAGE_OUTPUT", + "GetClientVpnEndpointAuthorizationPolicyInput": "GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT", + "GetClientVpnEndpointAuthorizationPolicyOutput": "GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT", + "GetCoipPoolUsageInput": "GET_COIP_POOL_USAGE_INPUT", + "GetCoipPoolUsageOutput": "GET_COIP_POOL_USAGE_OUTPUT", + "GetConsoleOutputInput": "GET_CONSOLE_OUTPUT_INPUT", + "GetConsoleOutputOutput": "GET_CONSOLE_OUTPUT_OUTPUT", + "GetConsoleScreenshotInput": "GET_CONSOLE_SCREENSHOT_INPUT", + "GetConsoleScreenshotOutput": "GET_CONSOLE_SCREENSHOT_OUTPUT", + "GetDeclarativePoliciesReportSummaryInput": "GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_INPUT", + "GetDeclarativePoliciesReportSummaryOutput": "GET_DECLARATIVE_POLICIES_REPORT_SUMMARY_OUTPUT", + "GetDefaultCreditSpecificationInput": "GET_DEFAULT_CREDIT_SPECIFICATION_INPUT", + "GetDefaultCreditSpecificationOutput": "GET_DEFAULT_CREDIT_SPECIFICATION_OUTPUT", + "GetEbsDefaultKmsKeyIdInput": "GET_EBS_DEFAULT_KMS_KEY_ID_INPUT", + "GetEbsDefaultKmsKeyIdOutput": "GET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT", + "GetEbsEncryptionByDefaultInput": "GET_EBS_ENCRYPTION_BY_DEFAULT_INPUT", + "GetEbsEncryptionByDefaultOutput": "GET_EBS_ENCRYPTION_BY_DEFAULT_OUTPUT", + "GetEnabledIpamPolicyInput": "GET_ENABLED_IPAM_POLICY_INPUT", + "GetEnabledIpamPolicyOutput": "GET_ENABLED_IPAM_POLICY_OUTPUT", + "GetFlowLogsIntegrationTemplateInput": "GET_FLOW_LOGS_INTEGRATION_TEMPLATE_INPUT", + "GetFlowLogsIntegrationTemplateOutput": "GET_FLOW_LOGS_INTEGRATION_TEMPLATE_OUTPUT", + "GetGroupsForCapacityReservationInput": "GET_GROUPS_FOR_CAPACITY_RESERVATION_INPUT", + "GetGroupsForCapacityReservationOutput": "GET_GROUPS_FOR_CAPACITY_RESERVATION_OUTPUT", + "GetHostReservationPurchasePreviewInput": "GET_HOST_RESERVATION_PURCHASE_PREVIEW_INPUT", + "GetHostReservationPurchasePreviewOutput": "GET_HOST_RESERVATION_PURCHASE_PREVIEW_OUTPUT", + "GetImageAncestryInput": "GET_IMAGE_ANCESTRY_INPUT", + "GetImageAncestryOutput": "GET_IMAGE_ANCESTRY_OUTPUT", + "GetImageBlockPublicAccessStateInput": "GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_INPUT", + "GetImageBlockPublicAccessStateOutput": "GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT", + "GetImageFindingsInput": "GET_IMAGE_FINDINGS_INPUT", + "GetImageFindingsOutput": "GET_IMAGE_FINDINGS_OUTPUT", + "GetInstanceMetadataDefaultsInput": "GET_INSTANCE_METADATA_DEFAULTS_INPUT", + "GetInstanceMetadataDefaultsOutput": "GET_INSTANCE_METADATA_DEFAULTS_OUTPUT", + "GetInstanceTpmEkPubInput": "GET_INSTANCE_TPM_EK_PUB_INPUT", + "GetInstanceTpmEkPubOutput": "GET_INSTANCE_TPM_EK_PUB_OUTPUT", + "GetInstanceTypesFromInstanceRequirementsInput": "GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_INPUT", + "GetInstanceTypesFromInstanceRequirementsOutput": "GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS_OUTPUT", + "GetInstanceUefiDataInput": "GET_INSTANCE_UEFI_DATA_INPUT", + "GetInstanceUefiDataOutput": "GET_INSTANCE_UEFI_DATA_OUTPUT", + "GetIpamAddressHistoryInput": "GET_IPAM_ADDRESS_HISTORY_INPUT", + "GetIpamAddressHistoryOutput": "GET_IPAM_ADDRESS_HISTORY_OUTPUT", + "GetIpamDiscoveredAccountsInput": "GET_IPAM_DISCOVERED_ACCOUNTS_INPUT", + "GetIpamDiscoveredAccountsOutput": "GET_IPAM_DISCOVERED_ACCOUNTS_OUTPUT", + "GetIpamDiscoveredPublicAddressesInput": "GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_INPUT", + "GetIpamDiscoveredPublicAddressesOutput": "GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES_OUTPUT", + "GetIpamDiscoveredResourceCidrsInput": "GET_IPAM_DISCOVERED_RESOURCE_CIDRS_INPUT", + "GetIpamDiscoveredResourceCidrsOutput": "GET_IPAM_DISCOVERED_RESOURCE_CIDRS_OUTPUT", + "GetIpamDiscoveredRoutesInput": "GET_IPAM_DISCOVERED_ROUTES_INPUT", + "GetIpamDiscoveredRoutesOutput": "GET_IPAM_DISCOVERED_ROUTES_OUTPUT", + "GetIpamInternetRegistryAssociationAsnsInput": "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_INPUT", + "GetIpamInternetRegistryAssociationAsnsOutput": "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS_OUTPUT", + "GetIpamInternetRegistryAssociationCidrsInput": "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_INPUT", + "GetIpamInternetRegistryAssociationCidrsOutput": "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS_OUTPUT", + "GetIpamPolicyAllocationRulesInput": "GET_IPAM_POLICY_ALLOCATION_RULES_INPUT", + "GetIpamPolicyAllocationRulesOutput": "GET_IPAM_POLICY_ALLOCATION_RULES_OUTPUT", + "GetIpamPolicyOrganizationTargetsInput": "GET_IPAM_POLICY_ORGANIZATION_TARGETS_INPUT", + "GetIpamPolicyOrganizationTargetsOutput": "GET_IPAM_POLICY_ORGANIZATION_TARGETS_OUTPUT", + "GetIpamPoolAllocationsInput": "GET_IPAM_POOL_ALLOCATIONS_INPUT", + "GetIpamPoolAllocationsOutput": "GET_IPAM_POOL_ALLOCATIONS_OUTPUT", + "GetIpamPoolCidrsInput": "GET_IPAM_POOL_CIDRS_INPUT", + "GetIpamPoolCidrsOutput": "GET_IPAM_POOL_CIDRS_OUTPUT", + "GetIpamPrefixListResolverRulesInput": "GET_IPAM_PREFIX_LIST_RESOLVER_RULES_INPUT", + "GetIpamPrefixListResolverRulesOutput": "GET_IPAM_PREFIX_LIST_RESOLVER_RULES_OUTPUT", + "GetIpamPrefixListResolverVersionEntriesInput": "GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_INPUT", + "GetIpamPrefixListResolverVersionEntriesOutput": "GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES_OUTPUT", + "GetIpamPrefixListResolverVersionsInput": "GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_INPUT", + "GetIpamPrefixListResolverVersionsOutput": "GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS_OUTPUT", + "GetIpamResourceCidrsInput": "GET_IPAM_RESOURCE_CIDRS_INPUT", + "GetIpamResourceCidrsOutput": "GET_IPAM_RESOURCE_CIDRS_OUTPUT", + "GetIpamRouteOriginAuthorizationsInput": "GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_INPUT", + "GetIpamRouteOriginAuthorizationsOutput": "GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS_OUTPUT", + "GetIpamRouteProtectionFindingsInput": "GET_IPAM_ROUTE_PROTECTION_FINDINGS_INPUT", + "GetIpamRouteProtectionFindingsOutput": "GET_IPAM_ROUTE_PROTECTION_FINDINGS_OUTPUT", + "GetIpamRoutingPolicyRegistrationDeltasInput": "GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_INPUT", + "GetIpamRoutingPolicyRegistrationDeltasOutput": "GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS_OUTPUT", + "GetIpamRoutingPolicyRegistrationsInput": "GET_IPAM_ROUTING_POLICY_REGISTRATIONS_INPUT", + "GetIpamRoutingPolicyRegistrationsOutput": "GET_IPAM_ROUTING_POLICY_REGISTRATIONS_OUTPUT", + "GetLaunchTemplateDataInput": "GET_LAUNCH_TEMPLATE_DATA_INPUT", + "GetLaunchTemplateDataOutput": "GET_LAUNCH_TEMPLATE_DATA_OUTPUT", + "GetManagedPrefixListAssociationsInput": "GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_INPUT", + "GetManagedPrefixListAssociationsOutput": "GET_MANAGED_PREFIX_LIST_ASSOCIATIONS_OUTPUT", + "GetManagedPrefixListEntriesInput": "GET_MANAGED_PREFIX_LIST_ENTRIES_INPUT", + "GetManagedPrefixListEntriesOutput": "GET_MANAGED_PREFIX_LIST_ENTRIES_OUTPUT", + "GetManagedResourceVisibilityInput": "GET_MANAGED_RESOURCE_VISIBILITY_INPUT", + "GetManagedResourceVisibilityOutput": "GET_MANAGED_RESOURCE_VISIBILITY_OUTPUT", + "GetNetworkInsightsAccessScopeAnalysisFindingsInput": "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_INPUT", + "GetNetworkInsightsAccessScopeAnalysisFindingsOutput": "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS_OUTPUT", + "GetNetworkInsightsAccessScopeContentInput": "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_INPUT", + "GetNetworkInsightsAccessScopeContentOutput": "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT_OUTPUT", + "GetPasswordDataInput": "GET_PASSWORD_DATA_INPUT", + "GetPasswordDataOutput": "GET_PASSWORD_DATA_OUTPUT", + "GetReservedInstancesExchangeQuoteInput": "GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_INPUT", + "GetReservedInstancesExchangeQuoteOutput": "GET_RESERVED_INSTANCES_EXCHANGE_QUOTE_OUTPUT", + "GetRouteServerAssociationsInput": "GET_ROUTE_SERVER_ASSOCIATIONS_INPUT", + "GetRouteServerAssociationsOutput": "GET_ROUTE_SERVER_ASSOCIATIONS_OUTPUT", + "GetRouteServerPropagationsInput": "GET_ROUTE_SERVER_PROPAGATIONS_INPUT", + "GetRouteServerPropagationsOutput": "GET_ROUTE_SERVER_PROPAGATIONS_OUTPUT", + "GetRouteServerRoutingDatabaseInput": "GET_ROUTE_SERVER_ROUTING_DATABASE_INPUT", + "GetRouteServerRoutingDatabaseOutput": "GET_ROUTE_SERVER_ROUTING_DATABASE_OUTPUT", + "GetSecurityGroupsForVpcInput": "GET_SECURITY_GROUPS_FOR_VPC_INPUT", + "GetSecurityGroupsForVpcOutput": "GET_SECURITY_GROUPS_FOR_VPC_OUTPUT", + "GetSerialConsoleAccessStatusInput": "GET_SERIAL_CONSOLE_ACCESS_STATUS_INPUT", + "GetSerialConsoleAccessStatusOutput": "GET_SERIAL_CONSOLE_ACCESS_STATUS_OUTPUT", + "GetSnapshotBlockPublicAccessStateInput": "GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_INPUT", + "GetSnapshotBlockPublicAccessStateOutput": "GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE_OUTPUT", + "GetSpotPlacementScoresInput": "GET_SPOT_PLACEMENT_SCORES_INPUT", + "GetSpotPlacementScoresOutput": "GET_SPOT_PLACEMENT_SCORES_OUTPUT", + "GetSubnetCidrReservationsInput": "GET_SUBNET_CIDR_RESERVATIONS_INPUT", + "GetSubnetCidrReservationsOutput": "GET_SUBNET_CIDR_RESERVATIONS_OUTPUT", + "GetTransitGatewayAttachmentNatConfigurationInput": "GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT", + "GetTransitGatewayAttachmentNatConfigurationOutput": "GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT", + "GetTransitGatewayAttachmentPropagationsInput": "GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_INPUT", + "GetTransitGatewayAttachmentPropagationsOutput": "GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS_OUTPUT", + "GetTransitGatewayMeteringPolicyEntriesInput": "GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_INPUT", + "GetTransitGatewayMeteringPolicyEntriesOutput": "GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES_OUTPUT", + "GetTransitGatewayMulticastDomainAssociationsInput": "GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT", + "GetTransitGatewayMulticastDomainAssociationsOutput": "GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT", + "GetTransitGatewayPolicyTableAssociationsInput": "GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_INPUT", + "GetTransitGatewayPolicyTableAssociationsOutput": "GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS_OUTPUT", + "GetTransitGatewayPolicyTableEntriesInput": "GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_INPUT", + "GetTransitGatewayPolicyTableEntriesOutput": "GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES_OUTPUT", + "GetTransitGatewayPrefixListReferencesInput": "GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_INPUT", + "GetTransitGatewayPrefixListReferencesOutput": "GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES_OUTPUT", + "GetTransitGatewayRouteTableAssociationsInput": "GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_INPUT", + "GetTransitGatewayRouteTableAssociationsOutput": "GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS_OUTPUT", + "GetTransitGatewayRouteTablePropagationsInput": "GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_INPUT", + "GetTransitGatewayRouteTablePropagationsOutput": "GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS_OUTPUT", + "GetVerifiedAccessEndpointPolicyInput": "GET_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT", + "GetVerifiedAccessEndpointPolicyOutput": "GET_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT", + "GetVerifiedAccessEndpointTargetsInput": "GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_INPUT", + "GetVerifiedAccessEndpointTargetsOutput": "GET_VERIFIED_ACCESS_ENDPOINT_TARGETS_OUTPUT", + "GetVerifiedAccessGroupPolicyInput": "GET_VERIFIED_ACCESS_GROUP_POLICY_INPUT", + "GetVerifiedAccessGroupPolicyOutput": "GET_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT", + "GetVpcResourcesBlockingEncryptionEnforcementInput": "GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_INPUT", + "GetVpcResourcesBlockingEncryptionEnforcementOutput": "GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT_OUTPUT", + "GetVpnConnectionDeviceSampleConfigurationInput": "GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_INPUT", + "GetVpnConnectionDeviceSampleConfigurationOutput": "GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION_OUTPUT", + "GetVpnConnectionDeviceTypesInput": "GET_VPN_CONNECTION_DEVICE_TYPES_INPUT", + "GetVpnConnectionDeviceTypesOutput": "GET_VPN_CONNECTION_DEVICE_TYPES_OUTPUT", + "GetVpnTunnelReplacementStatusInput": "GET_VPN_TUNNEL_REPLACEMENT_STATUS_INPUT", + "GetVpnTunnelReplacementStatusOutput": "GET_VPN_TUNNEL_REPLACEMENT_STATUS_OUTPUT", + "GpuDeviceInfo": "GPU_DEVICE_INFO", + "GpuDeviceMemoryInfo": "GPU_DEVICE_MEMORY_INFO", + "GpuInfo": "GPU_INFO", + "GroupBy": "GROUP_BY", + "GroupIdentifier": "GROUP_IDENTIFIER", + "HaStatus": "HA_STATUS", + "HealthCheckPathDestinationRequestObject": "HEALTH_CHECK_PATH_DESTINATION_REQUEST_OBJECT", + "HealthCheckPathDestinationResponseObject": "HEALTH_CHECK_PATH_DESTINATION_RESPONSE_OBJECT", + "HealthCheckPathRequestObject": "HEALTH_CHECK_PATH_REQUEST_OBJECT", + "HealthCheckPathResponseObject": "HEALTH_CHECK_PATH_RESPONSE_OBJECT", + "HealthCheckPathSourceRequestObject": "HEALTH_CHECK_PATH_SOURCE_REQUEST_OBJECT", + "HealthCheckPathSourceResponseObject": "HEALTH_CHECK_PATH_SOURCE_RESPONSE_OBJECT", + "HibernationOptions": "HIBERNATION_OPTIONS", + "HibernationOptionsRequest": "HIBERNATION_OPTIONS_REQUEST", + "HistoryRecord": "HISTORY_RECORD", + "HistoryRecordEntry": "HISTORY_RECORD_ENTRY", + "Host": "HOST", + "HostCpuOptions": "HOST_CPU_OPTIONS", + "HostCpuOptionsRequest": "HOST_CPU_OPTIONS_REQUEST", + "HostInstance": "HOST_INSTANCE", + "HostMaintenance": "HOST_MAINTENANCE", + "HostnameType": "HOSTNAME_TYPE", + "HostOffering": "HOST_OFFERING", + "HostProperties": "HOST_PROPERTIES", + "HostRecovery": "HOST_RECOVERY", + "HostReservation": "HOST_RESERVATION", + "HostTenancy": "HOST_TENANCY", + "HttpTokensEnforcedState": "HTTP_TOKENS_ENFORCED_STATE", + "HttpTokensState": "HTTP_TOKENS_STATE", + "HypervisorType": "HYPERVISOR_TYPE", + "IamInstanceProfile": "IAM_INSTANCE_PROFILE", + "IamInstanceProfileAssociation": "IAM_INSTANCE_PROFILE_ASSOCIATION", + "IamInstanceProfileAssociationState": "IAM_INSTANCE_PROFILE_ASSOCIATION_STATE", + "IamInstanceProfileSpecification": "IAM_INSTANCE_PROFILE_SPECIFICATION", + "IcmpTypeCode": "ICMP_TYPE_CODE", + "IdFormat": "ID_FORMAT", + "Igmpv2SupportValue": "IGMPV2_SUPPORT_VALUE", + "IKEVersionsListValue": "IKE_VERSIONS_LIST_VALUE", + "IKEVersionsRequestListValue": "IKE_VERSIONS_REQUEST_LIST_VALUE", + "Image": "IMAGE", + "ImageAncestryEntry": "IMAGE_ANCESTRY_ENTRY", + "ImageAttributeName": "IMAGE_ATTRIBUTE_NAME", + "ImageBlockPublicAccessDisabledState": "IMAGE_BLOCK_PUBLIC_ACCESS_DISABLED_STATE", + "ImageBlockPublicAccessEnabledState": "IMAGE_BLOCK_PUBLIC_ACCESS_ENABLED_STATE", + "ImageCriterion": "IMAGE_CRITERION", + "ImageCriterionRequest": "IMAGE_CRITERION_REQUEST", + "ImageDiskContainer": "IMAGE_DISK_CONTAINER", + "ImageFinding": "IMAGE_FINDING", + "ImageMetadata": "IMAGE_METADATA", + "ImageRecycleBinInfo": "IMAGE_RECYCLE_BIN_INFO", + "ImageReference": "IMAGE_REFERENCE", + "ImageReferenceOptionName": "IMAGE_REFERENCE_OPTION_NAME", + "ImageReferenceResourceType": "IMAGE_REFERENCE_RESOURCE_TYPE", + "ImageState": "IMAGE_STATE", + "ImageTypeValues": "IMAGE_TYPE_VALUES", + "ImageUsageReport": "IMAGE_USAGE_REPORT", + "ImageUsageReportEntry": "IMAGE_USAGE_REPORT_ENTRY", + "ImageUsageResourceType": "IMAGE_USAGE_RESOURCE_TYPE", + "ImageUsageResourceTypeOption": "IMAGE_USAGE_RESOURCE_TYPE_OPTION", + "ImageUsageResourceTypeOptionRequest": "IMAGE_USAGE_RESOURCE_TYPE_OPTION_REQUEST", + "ImageUsageResourceTypeRequest": "IMAGE_USAGE_RESOURCE_TYPE_REQUEST", + "ImageWatermark": "IMAGE_WATERMARK", + "ImageWatermarkFilterRequest": "IMAGE_WATERMARK_FILTER_REQUEST", + "ImageWatermarkFilterResponse": "IMAGE_WATERMARK_FILTER_RESPONSE", + "ImdsSupportValues": "IMDS_SUPPORT_VALUES", + "ImportClientVpnClientCertificateRevocationListInput": "IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_INPUT", + "ImportClientVpnClientCertificateRevocationListOutput": "IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST_OUTPUT", + "ImportImageInput": "IMPORT_IMAGE_INPUT", + "ImportImageLicenseConfigurationRequest": "IMPORT_IMAGE_LICENSE_CONFIGURATION_REQUEST", + "ImportImageLicenseConfigurationResponse": "IMPORT_IMAGE_LICENSE_CONFIGURATION_RESPONSE", + "ImportImageOutput": "IMPORT_IMAGE_OUTPUT", + "ImportImageTask": "IMPORT_IMAGE_TASK", + "ImportInstanceInput": "IMPORT_INSTANCE_INPUT", + "ImportInstanceLaunchSpecification": "IMPORT_INSTANCE_LAUNCH_SPECIFICATION", + "ImportInstanceOutput": "IMPORT_INSTANCE_OUTPUT", + "ImportInstanceTaskDetails": "IMPORT_INSTANCE_TASK_DETAILS", + "ImportInstanceVolumeDetailItem": "IMPORT_INSTANCE_VOLUME_DETAIL_ITEM", + "ImportKeyPairInput": "IMPORT_KEY_PAIR_INPUT", + "ImportKeyPairOutput": "IMPORT_KEY_PAIR_OUTPUT", + "ImportSnapshotInput": "IMPORT_SNAPSHOT_INPUT", + "ImportSnapshotOutput": "IMPORT_SNAPSHOT_OUTPUT", + "ImportSnapshotTask": "IMPORT_SNAPSHOT_TASK", + "ImportVolumeInput": "IMPORT_VOLUME_INPUT", + "ImportVolumeOutput": "IMPORT_VOLUME_OUTPUT", + "ImportVolumeTaskDetails": "IMPORT_VOLUME_TASK_DETAILS", + "InferenceAcceleratorInfo": "INFERENCE_ACCELERATOR_INFO", + "InferenceDeviceInfo": "INFERENCE_DEVICE_INFO", + "InferenceDeviceMemoryInfo": "INFERENCE_DEVICE_MEMORY_INFO", + "IngestionStatus": "INGESTION_STATUS", + "InitializationStatusDetails": "INITIALIZATION_STATUS_DETAILS", + "InitializationType": "INITIALIZATION_TYPE", + "Instance": "INSTANCE", + "InstanceApplicationStatus": "INSTANCE_APPLICATION_STATUS", + "InstanceAttachmentEnaSrdSpecification": "INSTANCE_ATTACHMENT_ENA_SRD_SPECIFICATION", + "InstanceAttachmentEnaSrdUdpSpecification": "INSTANCE_ATTACHMENT_ENA_SRD_UDP_SPECIFICATION", + "InstanceAttributeName": "INSTANCE_ATTRIBUTE_NAME", + "InstanceAutoRecoveryState": "INSTANCE_AUTO_RECOVERY_STATE", + "InstanceBandwidthWeighting": "INSTANCE_BANDWIDTH_WEIGHTING", + "InstanceBlockDeviceMapping": "INSTANCE_BLOCK_DEVICE_MAPPING", + "InstanceBlockDeviceMappingSpecification": "INSTANCE_BLOCK_DEVICE_MAPPING_SPECIFICATION", + "InstanceBootModeValues": "INSTANCE_BOOT_MODE_VALUES", + "InstanceCapacity": "INSTANCE_CAPACITY", + "InstanceConnectEndpointDnsNames": "INSTANCE_CONNECT_ENDPOINT_DNS_NAMES", + "InstanceConnectEndpointPublicDnsNames": "INSTANCE_CONNECT_ENDPOINT_PUBLIC_DNS_NAMES", + "InstanceCount": "INSTANCE_COUNT", + "InstanceCreditSpecification": "INSTANCE_CREDIT_SPECIFICATION", + "InstanceCreditSpecificationRequest": "INSTANCE_CREDIT_SPECIFICATION_REQUEST", + "InstanceEventWindow": "INSTANCE_EVENT_WINDOW", + "InstanceEventWindowAssociationRequest": "INSTANCE_EVENT_WINDOW_ASSOCIATION_REQUEST", + "InstanceEventWindowAssociationTarget": "INSTANCE_EVENT_WINDOW_ASSOCIATION_TARGET", + "InstanceEventWindowDisassociationRequest": "INSTANCE_EVENT_WINDOW_DISASSOCIATION_REQUEST", + "InstanceEventWindowState": "INSTANCE_EVENT_WINDOW_STATE", + "InstanceEventWindowStateChange": "INSTANCE_EVENT_WINDOW_STATE_CHANGE", + "InstanceEventWindowTimeRange": "INSTANCE_EVENT_WINDOW_TIME_RANGE", + "InstanceEventWindowTimeRangeRequest": "INSTANCE_EVENT_WINDOW_TIME_RANGE_REQUEST", + "InstanceExportDetails": "INSTANCE_EXPORT_DETAILS", + "InstanceFamilyCreditSpecification": "INSTANCE_FAMILY_CREDIT_SPECIFICATION", + "InstanceGeneration": "INSTANCE_GENERATION", + "InstanceHealthStatus": "INSTANCE_HEALTH_STATUS", + "InstanceImageMetadata": "INSTANCE_IMAGE_METADATA", + "InstanceInterruptionBehavior": "INSTANCE_INTERRUPTION_BEHAVIOR", + "InstanceIpv4Prefix": "INSTANCE_IPV4_PREFIX", + "InstanceIpv6Address": "INSTANCE_IPV6_ADDRESS", + "InstanceIpv6AddressRequest": "INSTANCE_IPV6_ADDRESS_REQUEST", + "InstanceIpv6Prefix": "INSTANCE_IPV6_PREFIX", + "InstanceLifecycle": "INSTANCE_LIFECYCLE", + "InstanceLifecycleType": "INSTANCE_LIFECYCLE_TYPE", + "InstanceMaintenanceOptions": "INSTANCE_MAINTENANCE_OPTIONS", + "InstanceMaintenanceOptionsRequest": "INSTANCE_MAINTENANCE_OPTIONS_REQUEST", + "InstanceMarketOptionsRequest": "INSTANCE_MARKET_OPTIONS_REQUEST", + "InstanceMatchCriteria": "INSTANCE_MATCH_CRITERIA", + "InstanceMetadataDefaultsResponse": "INSTANCE_METADATA_DEFAULTS_RESPONSE", + "InstanceMetadataEndpointState": "INSTANCE_METADATA_ENDPOINT_STATE", + "InstanceMetadataOptionsRequest": "INSTANCE_METADATA_OPTIONS_REQUEST", + "InstanceMetadataOptionsResponse": "INSTANCE_METADATA_OPTIONS_RESPONSE", + "InstanceMetadataOptionsState": "INSTANCE_METADATA_OPTIONS_STATE", + "InstanceMetadataProtocolState": "INSTANCE_METADATA_PROTOCOL_STATE", + "InstanceMetadataTagsState": "INSTANCE_METADATA_TAGS_STATE", + "InstanceMonitoring": "INSTANCE_MONITORING", + "InstanceNetworkInterface": "INSTANCE_NETWORK_INTERFACE", + "InstanceNetworkInterfaceAssociation": "INSTANCE_NETWORK_INTERFACE_ASSOCIATION", + "InstanceNetworkInterfaceAttachment": "INSTANCE_NETWORK_INTERFACE_ATTACHMENT", + "InstanceNetworkInterfaceSpecification": "INSTANCE_NETWORK_INTERFACE_SPECIFICATION", + "InstanceNetworkPerformanceOptions": "INSTANCE_NETWORK_PERFORMANCE_OPTIONS", + "InstanceNetworkPerformanceOptionsRequest": "INSTANCE_NETWORK_PERFORMANCE_OPTIONS_REQUEST", + "InstancePrivateIpAddress": "INSTANCE_PRIVATE_IP_ADDRESS", + "InstanceRebootMigrationState": "INSTANCE_REBOOT_MIGRATION_STATE", + "InstanceRequirements": "INSTANCE_REQUIREMENTS", + "InstanceRequirementsRequest": "INSTANCE_REQUIREMENTS_REQUEST", + "InstanceRequirementsWithMetadataRequest": "INSTANCE_REQUIREMENTS_WITH_METADATA_REQUEST", + "InstanceSecondaryInterface": "INSTANCE_SECONDARY_INTERFACE", + "InstanceSecondaryInterfaceAttachment": "INSTANCE_SECONDARY_INTERFACE_ATTACHMENT", + "InstanceSecondaryInterfacePrivateIpAddress": "INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS", + "InstanceSecondaryInterfacePrivateIpAddressRequest": "INSTANCE_SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_REQUEST", + "InstanceSecondaryInterfaceSpecificationRequest": "INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST", + "InstanceSpecification": "INSTANCE_SPECIFICATION", + "InstanceState": "INSTANCE_STATE", + "InstanceStateChange": "INSTANCE_STATE_CHANGE", + "InstanceStateName": "INSTANCE_STATE_NAME", + "InstanceStatus": "INSTANCE_STATUS", + "InstanceStatusDetails": "INSTANCE_STATUS_DETAILS", + "InstanceStatusEvent": "INSTANCE_STATUS_EVENT", + "InstanceStatusSummary": "INSTANCE_STATUS_SUMMARY", + "InstanceStorageEncryptionSupport": "INSTANCE_STORAGE_ENCRYPTION_SUPPORT", + "InstanceStorageInfo": "INSTANCE_STORAGE_INFO", + "InstanceTagNotificationAttribute": "INSTANCE_TAG_NOTIFICATION_ATTRIBUTE", + "InstanceTopology": "INSTANCE_TOPOLOGY", + "InstanceType": "INSTANCE_TYPE", + "InstanceTypeHypervisor": "INSTANCE_TYPE_HYPERVISOR", + "InstanceTypeInfo": "INSTANCE_TYPE_INFO", + "InstanceTypeInfoFromInstanceRequirements": "INSTANCE_TYPE_INFO_FROM_INSTANCE_REQUIREMENTS", + "InstanceTypeItem": "INSTANCE_TYPE_ITEM", + "InstanceTypeOffering": "INSTANCE_TYPE_OFFERING", + "InstanceTypeSpecification": "INSTANCE_TYPE_SPECIFICATION", + "InstanceTypeSpecificationRequest": "INSTANCE_TYPE_SPECIFICATION_REQUEST", + "InstanceUsage": "INSTANCE_USAGE", + "IntegrateServices": "INTEGRATE_SERVICES", + "InterfacePermissionType": "INTERFACE_PERMISSION_TYPE", + "InterfaceProtocolType": "INTERFACE_PROTOCOL_TYPE", + "InternetGateway": "INTERNET_GATEWAY", + "InternetGatewayAttachment": "INTERNET_GATEWAY_ATTACHMENT", + "InternetGatewayBlockMode": "INTERNET_GATEWAY_BLOCK_MODE", + "InternetGatewayExclusionMode": "INTERNET_GATEWAY_EXCLUSION_MODE", + "InterruptibleCapacityAllocation": "INTERRUPTIBLE_CAPACITY_ALLOCATION", + "InterruptibleCapacityReservationAllocationStatus": "INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_STATUS", + "InterruptionInfo": "INTERRUPTION_INFO", + "InterruptionType": "INTERRUPTION_TYPE", + "IpAddressType": "IP_ADDRESS_TYPE", + "Ipam": "IPAM", + "IpamAddressHistoryRecord": "IPAM_ADDRESS_HISTORY_RECORD", + "IpamAddressHistoryResourceType": "IPAM_ADDRESS_HISTORY_RESOURCE_TYPE", + "IpamAssociatedResourceDiscoveryStatus": "IPAM_ASSOCIATED_RESOURCE_DISCOVERY_STATUS", + "IpamByoipAdvertisementType": "IPAM_BYOIP_ADVERTISEMENT_TYPE", + "IpamByoipCidrState": "IPAM_BYOIP_CIDR_STATE", + "IpamCidrAuthorizationContext": "IPAM_CIDR_AUTHORIZATION_CONTEXT", + "IpamComplianceStatus": "IPAM_COMPLIANCE_STATUS", + "IpamDiscoveredAccount": "IPAM_DISCOVERED_ACCOUNT", + "IpamDiscoveredPublicAddress": "IPAM_DISCOVERED_PUBLIC_ADDRESS", + "IpamDiscoveredResourceCidr": "IPAM_DISCOVERED_RESOURCE_CIDR", + "IpamDiscoveredRoute": "IPAM_DISCOVERED_ROUTE", + "IpamDiscoveryFailureCode": "IPAM_DISCOVERY_FAILURE_CODE", + "IpamDiscoveryFailureReason": "IPAM_DISCOVERY_FAILURE_REASON", + "IpamExternalResourceVerificationToken": "IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN", + "IpamExternalResourceVerificationTokenState": "IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN_STATE", + "IpamInternetRegistryAssociation": "IPAM_INTERNET_REGISTRY_ASSOCIATION", + "IpamInternetRegistryAssociationAsn": "IPAM_INTERNET_REGISTRY_ASSOCIATION_ASN", + "IpamInternetRegistryAssociationCidr": "IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDR", + "IpamInternetRegistryAssociationState": "IPAM_INTERNET_REGISTRY_ASSOCIATION_STATE", + "IpamManagementState": "IPAM_MANAGEMENT_STATE", + "IpamMeteredAccount": "IPAM_METERED_ACCOUNT", + "IpamNetworkInterfaceAttachmentStatus": "IPAM_NETWORK_INTERFACE_ATTACHMENT_STATUS", + "IpamOperatingRegion": "IPAM_OPERATING_REGION", + "IpamOrganizationalUnitExclusion": "IPAM_ORGANIZATIONAL_UNIT_EXCLUSION", + "IpamOverlapStatus": "IPAM_OVERLAP_STATUS", + "IpamPolicy": "IPAM_POLICY", + "IpamPolicyAllocationRule": "IPAM_POLICY_ALLOCATION_RULE", + "IpamPolicyAllocationRuleRequest": "IPAM_POLICY_ALLOCATION_RULE_REQUEST", + "IpamPolicyDocument": "IPAM_POLICY_DOCUMENT", + "IpamPolicyManagedBy": "IPAM_POLICY_MANAGED_BY", + "IpamPolicyOrganizationTarget": "IPAM_POLICY_ORGANIZATION_TARGET", + "IpamPolicyResourceType": "IPAM_POLICY_RESOURCE_TYPE", + "IpamPolicyState": "IPAM_POLICY_STATE", + "IpamPool": "IPAM_POOL", + "IpamPoolAllocation": "IPAM_POOL_ALLOCATION", + "IpamPoolAllocationResourceType": "IPAM_POOL_ALLOCATION_RESOURCE_TYPE", + "IpamPoolAwsService": "IPAM_POOL_AWS_SERVICE", + "IpamPoolCidr": "IPAM_POOL_CIDR", + "IpamPoolCidrFailureCode": "IPAM_POOL_CIDR_FAILURE_CODE", + "IpamPoolCidrFailureReason": "IPAM_POOL_CIDR_FAILURE_REASON", + "IpamPoolCidrState": "IPAM_POOL_CIDR_STATE", + "IpamPoolPublicIpSource": "IPAM_POOL_PUBLIC_IP_SOURCE", + "IpamPoolSourceResource": "IPAM_POOL_SOURCE_RESOURCE", + "IpamPoolSourceResourceRequest": "IPAM_POOL_SOURCE_RESOURCE_REQUEST", + "IpamPoolSourceResourceType": "IPAM_POOL_SOURCE_RESOURCE_TYPE", + "IpamPoolState": "IPAM_POOL_STATE", + "IpamPrefixListResolver": "IPAM_PREFIX_LIST_RESOLVER", + "IpamPrefixListResolverRule": "IPAM_PREFIX_LIST_RESOLVER_RULE", + "IpamPrefixListResolverRuleCondition": "IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION", + "IpamPrefixListResolverRuleConditionOperation": "IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_OPERATION", + "IpamPrefixListResolverRuleConditionRequest": "IPAM_PREFIX_LIST_RESOLVER_RULE_CONDITION_REQUEST", + "IpamPrefixListResolverRuleRequest": "IPAM_PREFIX_LIST_RESOLVER_RULE_REQUEST", + "IpamPrefixListResolverRuleType": "IPAM_PREFIX_LIST_RESOLVER_RULE_TYPE", + "IpamPrefixListResolverState": "IPAM_PREFIX_LIST_RESOLVER_STATE", + "IpamPrefixListResolverTarget": "IPAM_PREFIX_LIST_RESOLVER_TARGET", + "IpamPrefixListResolverTargetState": "IPAM_PREFIX_LIST_RESOLVER_TARGET_STATE", + "IpamPrefixListResolverVersion": "IPAM_PREFIX_LIST_RESOLVER_VERSION", + "IpamPrefixListResolverVersionCreationStatus": "IPAM_PREFIX_LIST_RESOLVER_VERSION_CREATION_STATUS", + "IpamPrefixListResolverVersionEntry": "IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRY", + "IpamPublicAddressAssociationStatus": "IPAM_PUBLIC_ADDRESS_ASSOCIATION_STATUS", + "IpamPublicAddressAwsService": "IPAM_PUBLIC_ADDRESS_AWS_SERVICE", + "IpamPublicAddressSecurityGroup": "IPAM_PUBLIC_ADDRESS_SECURITY_GROUP", + "IpamPublicAddressTag": "IPAM_PUBLIC_ADDRESS_TAG", + "IpamPublicAddressTags": "IPAM_PUBLIC_ADDRESS_TAGS", + "IpamPublicAddressType": "IPAM_PUBLIC_ADDRESS_TYPE", + "IpamResourceCidr": "IPAM_RESOURCE_CIDR", + "IpamResourceCidrIpSource": "IPAM_RESOURCE_CIDR_IP_SOURCE", + "IpamResourceDiscovery": "IPAM_RESOURCE_DISCOVERY", + "IpamResourceDiscoveryAssociation": "IPAM_RESOURCE_DISCOVERY_ASSOCIATION", + "IpamResourceDiscoveryAssociationState": "IPAM_RESOURCE_DISCOVERY_ASSOCIATION_STATE", + "IpamResourceDiscoveryState": "IPAM_RESOURCE_DISCOVERY_STATE", + "IpamResourceTag": "IPAM_RESOURCE_TAG", + "IpamResourceType": "IPAM_RESOURCE_TYPE", + "IpamRouteOriginAuthorization": "IPAM_ROUTE_ORIGIN_AUTHORIZATION", + "IpamRouteOriginAuthorizationInfo": "IPAM_ROUTE_ORIGIN_AUTHORIZATION_INFO", + "IpamRouteOverlap": "IPAM_ROUTE_OVERLAP", + "IpamRouteProtectionFinding": "IPAM_ROUTE_PROTECTION_FINDING", + "IpamRoutingPolicyRegistration": "IPAM_ROUTING_POLICY_REGISTRATION", + "IpamRoutingPolicyRegistrationDelta": "IPAM_ROUTING_POLICY_REGISTRATION_DELTA", + "IpamRoutingPolicyRegistrationDeltaState": "IPAM_ROUTING_POLICY_REGISTRATION_DELTA_STATE", + "IpamRoutingPolicyRegistrationState": "IPAM_ROUTING_POLICY_REGISTRATION_STATE", + "IpamRpkiStatus": "IPAM_RPKI_STATUS", + "IpamRpkiStrength": "IPAM_RPKI_STRENGTH", + "IpamScope": "IPAM_SCOPE", + "IpamScopeExternalAuthorityConfiguration": "IPAM_SCOPE_EXTERNAL_AUTHORITY_CONFIGURATION", + "IpamScopeExternalAuthorityType": "IPAM_SCOPE_EXTERNAL_AUTHORITY_TYPE", + "IpamScopeState": "IPAM_SCOPE_STATE", + "IpamScopeType": "IPAM_SCOPE_TYPE", + "IpamState": "IPAM_STATE", + "IpamTier": "IPAM_TIER", + "IpPermission": "IP_PERMISSION", + "IpRange": "IP_RANGE", + "IpScopeEnum": "IP_SCOPE_ENUM", + "IpSource": "IP_SOURCE", + "Ipv4PrefixSpecification": "IPV4_PREFIX_SPECIFICATION", + "Ipv4PrefixSpecificationRequest": "IPV4_PREFIX_SPECIFICATION_REQUEST", + "Ipv4PrefixSpecificationResponse": "IPV4_PREFIX_SPECIFICATION_RESPONSE", + "Ipv6AddressAttribute": "IPV6_ADDRESS_ATTRIBUTE", + "Ipv6CidrAssociation": "IPV6_CIDR_ASSOCIATION", + "Ipv6CidrBlock": "IPV6_CIDR_BLOCK", + "Ipv6Pool": "IPV6_POOL", + "Ipv6PrefixSpecification": "IPV6_PREFIX_SPECIFICATION", + "Ipv6PrefixSpecificationRequest": "IPV6_PREFIX_SPECIFICATION_REQUEST", + "Ipv6PrefixSpecificationResponse": "IPV6_PREFIX_SPECIFICATION_RESPONSE", + "Ipv6Range": "IPV6_RANGE", + "Ipv6SupportValue": "IPV6_SUPPORT_VALUE", + "IpVersionEnum": "IP_VERSION_ENUM", + "KeyFormat": "KEY_FORMAT", + "KeyPairInfo": "KEY_PAIR_INFO", + "KeyType": "KEY_TYPE", + "LastError": "LAST_ERROR", + "LaunchPermission": "LAUNCH_PERMISSION", + "LaunchPermissionModifications": "LAUNCH_PERMISSION_MODIFICATIONS", + "LaunchSpecification": "LAUNCH_SPECIFICATION", + "LaunchTemplate": "LAUNCH_TEMPLATE", + "LaunchTemplateAndOverridesResponse": "LAUNCH_TEMPLATE_AND_OVERRIDES_RESPONSE", + "LaunchTemplateAutoRecoveryState": "LAUNCH_TEMPLATE_AUTO_RECOVERY_STATE", + "LaunchTemplateBlockDeviceMapping": "LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING", + "LaunchTemplateBlockDeviceMappingRequest": "LAUNCH_TEMPLATE_BLOCK_DEVICE_MAPPING_REQUEST", + "LaunchTemplateCapacityReservationSpecificationRequest": "LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_REQUEST", + "LaunchTemplateCapacityReservationSpecificationResponse": "LAUNCH_TEMPLATE_CAPACITY_RESERVATION_SPECIFICATION_RESPONSE", + "LaunchTemplateConfig": "LAUNCH_TEMPLATE_CONFIG", + "LaunchTemplateCpuOptions": "LAUNCH_TEMPLATE_CPU_OPTIONS", + "LaunchTemplateCpuOptionsRequest": "LAUNCH_TEMPLATE_CPU_OPTIONS_REQUEST", + "LaunchTemplateEbsBlockDevice": "LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE", + "LaunchTemplateEbsBlockDeviceRequest": "LAUNCH_TEMPLATE_EBS_BLOCK_DEVICE_REQUEST", + "LaunchTemplateElasticInferenceAccelerator": "LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR", + "LaunchTemplateElasticInferenceAcceleratorResponse": "LAUNCH_TEMPLATE_ELASTIC_INFERENCE_ACCELERATOR_RESPONSE", + "LaunchTemplateEnaSrdSpecification": "LAUNCH_TEMPLATE_ENA_SRD_SPECIFICATION", + "LaunchTemplateEnaSrdUdpSpecification": "LAUNCH_TEMPLATE_ENA_SRD_UDP_SPECIFICATION", + "LaunchTemplateEnclaveOptions": "LAUNCH_TEMPLATE_ENCLAVE_OPTIONS", + "LaunchTemplateEnclaveOptionsRequest": "LAUNCH_TEMPLATE_ENCLAVE_OPTIONS_REQUEST", + "LaunchTemplateErrorCode": "LAUNCH_TEMPLATE_ERROR_CODE", + "LaunchTemplateHibernationOptions": "LAUNCH_TEMPLATE_HIBERNATION_OPTIONS", + "LaunchTemplateHibernationOptionsRequest": "LAUNCH_TEMPLATE_HIBERNATION_OPTIONS_REQUEST", + "LaunchTemplateHttpTokensState": "LAUNCH_TEMPLATE_HTTP_TOKENS_STATE", + "LaunchTemplateIamInstanceProfileSpecification": "LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION", + "LaunchTemplateIamInstanceProfileSpecificationRequest": "LAUNCH_TEMPLATE_IAM_INSTANCE_PROFILE_SPECIFICATION_REQUEST", + "LaunchTemplateInstanceMaintenanceOptions": "LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS", + "LaunchTemplateInstanceMaintenanceOptionsRequest": "LAUNCH_TEMPLATE_INSTANCE_MAINTENANCE_OPTIONS_REQUEST", + "LaunchTemplateInstanceMarketOptions": "LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS", + "LaunchTemplateInstanceMarketOptionsRequest": "LAUNCH_TEMPLATE_INSTANCE_MARKET_OPTIONS_REQUEST", + "LaunchTemplateInstanceMetadataEndpointState": "LAUNCH_TEMPLATE_INSTANCE_METADATA_ENDPOINT_STATE", + "LaunchTemplateInstanceMetadataOptions": "LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS", + "LaunchTemplateInstanceMetadataOptionsRequest": "LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_REQUEST", + "LaunchTemplateInstanceMetadataOptionsState": "LAUNCH_TEMPLATE_INSTANCE_METADATA_OPTIONS_STATE", + "LaunchTemplateInstanceMetadataProtocolIpv6": "LAUNCH_TEMPLATE_INSTANCE_METADATA_PROTOCOL_IPV6", + "LaunchTemplateInstanceMetadataTagsState": "LAUNCH_TEMPLATE_INSTANCE_METADATA_TAGS_STATE", + "LaunchTemplateInstanceNetworkInterfaceSpecification": "LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest": "LAUNCH_TEMPLATE_INSTANCE_NETWORK_INTERFACE_SPECIFICATION_REQUEST", + "LaunchTemplateInstanceSecondaryInterfaceSpecification": "LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION", + "LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest": "LAUNCH_TEMPLATE_INSTANCE_SECONDARY_INTERFACE_SPECIFICATION_REQUEST", + "LaunchTemplateLicenseConfiguration": "LAUNCH_TEMPLATE_LICENSE_CONFIGURATION", + "LaunchTemplateLicenseConfigurationRequest": "LAUNCH_TEMPLATE_LICENSE_CONFIGURATION_REQUEST", + "LaunchTemplateNetworkPerformanceOptions": "LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS", + "LaunchTemplateNetworkPerformanceOptionsRequest": "LAUNCH_TEMPLATE_NETWORK_PERFORMANCE_OPTIONS_REQUEST", + "LaunchTemplateOverrides": "LAUNCH_TEMPLATE_OVERRIDES", + "LaunchTemplatePlacement": "LAUNCH_TEMPLATE_PLACEMENT", + "LaunchTemplatePlacementRequest": "LAUNCH_TEMPLATE_PLACEMENT_REQUEST", + "LaunchTemplatePrivateDnsNameOptions": "LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS", + "LaunchTemplatePrivateDnsNameOptionsRequest": "LAUNCH_TEMPLATE_PRIVATE_DNS_NAME_OPTIONS_REQUEST", + "LaunchTemplatesMonitoring": "LAUNCH_TEMPLATES_MONITORING", + "LaunchTemplatesMonitoringRequest": "LAUNCH_TEMPLATES_MONITORING_REQUEST", + "LaunchTemplateSpecification": "LAUNCH_TEMPLATE_SPECIFICATION", + "LaunchTemplateSpotMarketOptions": "LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS", + "LaunchTemplateSpotMarketOptionsRequest": "LAUNCH_TEMPLATE_SPOT_MARKET_OPTIONS_REQUEST", + "LaunchTemplateTagSpecification": "LAUNCH_TEMPLATE_TAG_SPECIFICATION", + "LaunchTemplateTagSpecificationRequest": "LAUNCH_TEMPLATE_TAG_SPECIFICATION_REQUEST", + "LaunchTemplateVersion": "LAUNCH_TEMPLATE_VERSION", + "LicenseConfiguration": "LICENSE_CONFIGURATION", + "LicenseConfigurationRequest": "LICENSE_CONFIGURATION_REQUEST", + "ListImagesInRecycleBinInput": "LIST_IMAGES_IN_RECYCLE_BIN_INPUT", + "ListImagesInRecycleBinOutput": "LIST_IMAGES_IN_RECYCLE_BIN_OUTPUT", + "ListingState": "LISTING_STATE", + "ListingStatus": "LISTING_STATUS", + "ListSnapshotsInRecycleBinInput": "LIST_SNAPSHOTS_IN_RECYCLE_BIN_INPUT", + "ListSnapshotsInRecycleBinOutput": "LIST_SNAPSHOTS_IN_RECYCLE_BIN_OUTPUT", + "ListVolumesInRecycleBinInput": "LIST_VOLUMES_IN_RECYCLE_BIN_INPUT", + "ListVolumesInRecycleBinOutput": "LIST_VOLUMES_IN_RECYCLE_BIN_OUTPUT", + "LoadBalancersConfig": "LOAD_BALANCERS_CONFIG", + "LoadPermission": "LOAD_PERMISSION", + "LoadPermissionModifications": "LOAD_PERMISSION_MODIFICATIONS", + "LoadPermissionRequest": "LOAD_PERMISSION_REQUEST", + "LocalGateway": "LOCAL_GATEWAY", + "LocalGatewayRoute": "LOCAL_GATEWAY_ROUTE", + "LocalGatewayRouteState": "LOCAL_GATEWAY_ROUTE_STATE", + "LocalGatewayRouteTable": "LOCAL_GATEWAY_ROUTE_TABLE", + "LocalGatewayRouteTableMode": "LOCAL_GATEWAY_ROUTE_TABLE_MODE", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": "LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION", + "LocalGatewayRouteTableVpcAssociation": "LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION", + "LocalGatewayRouteType": "LOCAL_GATEWAY_ROUTE_TYPE", + "LocalGatewayVirtualInterface": "LOCAL_GATEWAY_VIRTUAL_INTERFACE", + "LocalGatewayVirtualInterfaceConfigurationState": "LOCAL_GATEWAY_VIRTUAL_INTERFACE_CONFIGURATION_STATE", + "LocalGatewayVirtualInterfaceGroup": "LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP", + "LocalGatewayVirtualInterfaceGroupConfigurationState": "LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP_CONFIGURATION_STATE", + "LocalStorage": "LOCAL_STORAGE", + "LocalStorageType": "LOCAL_STORAGE_TYPE", + "LocationType": "LOCATION_TYPE", + "LockedSnapshotsInfo": "LOCKED_SNAPSHOTS_INFO", + "LockMode": "LOCK_MODE", + "LockSnapshotInput": "LOCK_SNAPSHOT_INPUT", + "LockSnapshotOutput": "LOCK_SNAPSHOT_OUTPUT", + "LockState": "LOCK_STATE", + "LogDestinationType": "LOG_DESTINATION_TYPE", + "MacHost": "MAC_HOST", + "MacModificationTask": "MAC_MODIFICATION_TASK", + "MacModificationTaskState": "MAC_MODIFICATION_TASK_STATE", + "MacModificationTaskType": "MAC_MODIFICATION_TASK_TYPE", + "MacSystemIntegrityProtectionConfiguration": "MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION", + "MacSystemIntegrityProtectionConfigurationRequest": "MAC_SYSTEM_INTEGRITY_PROTECTION_CONFIGURATION_REQUEST", + "MacSystemIntegrityProtectionSettingStatus": "MAC_SYSTEM_INTEGRITY_PROTECTION_SETTING_STATUS", + "MaintenanceDetails": "MAINTENANCE_DETAILS", + "ManagedBy": "MANAGED_BY", + "ManagedPrefixList": "MANAGED_PREFIX_LIST", + "ManagedResourceDefaultVisibility": "MANAGED_RESOURCE_DEFAULT_VISIBILITY", + "ManagedResourceVisibilitySettings": "MANAGED_RESOURCE_VISIBILITY_SETTINGS", + "MarketType": "MARKET_TYPE", + "MediaAcceleratorInfo": "MEDIA_ACCELERATOR_INFO", + "MediaDeviceInfo": "MEDIA_DEVICE_INFO", + "MediaDeviceMemoryInfo": "MEDIA_DEVICE_MEMORY_INFO", + "MembershipType": "MEMBERSHIP_TYPE", + "MemoryGiBPerVCpu": "MEMORY_GI_B_PER_V_CPU", + "MemoryGiBPerVCpuRequest": "MEMORY_GI_B_PER_V_CPU_REQUEST", + "MemoryInfo": "MEMORY_INFO", + "MemoryMiB": "MEMORY_MI_B", + "MemoryMiBRequest": "MEMORY_MI_B_REQUEST", + "MetadataDefaultHttpTokensState": "METADATA_DEFAULT_HTTP_TOKENS_STATE", + "Metric": "METRIC", + "MetricDataResult": "METRIC_DATA_RESULT", + "MetricPoint": "METRIC_POINT", + "MetricType": "METRIC_TYPE", + "MetricValue": "METRIC_VALUE", + "ModificationQuoteCurrentConfiguration": "MODIFICATION_QUOTE_CURRENT_CONFIGURATION", + "ModificationReservationUpdate": "MODIFICATION_RESERVATION_UPDATE", + "ModificationTerms": "MODIFICATION_TERMS", + "ModifyAccountVpcEncryptionControlInput": "MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_INPUT", + "ModifyAccountVpcEncryptionControlOutput": "MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL_OUTPUT", + "ModifyAddressAttributeInput": "MODIFY_ADDRESS_ATTRIBUTE_INPUT", + "ModifyAddressAttributeOutput": "MODIFY_ADDRESS_ATTRIBUTE_OUTPUT", + "ModifyApplicationStatusCheckInput": "MODIFY_APPLICATION_STATUS_CHECK_INPUT", + "ModifyApplicationStatusCheckOutput": "MODIFY_APPLICATION_STATUS_CHECK_OUTPUT", + "ModifyAvailabilityZoneGroupInput": "MODIFY_AVAILABILITY_ZONE_GROUP_INPUT", + "ModifyAvailabilityZoneGroupOutput": "MODIFY_AVAILABILITY_ZONE_GROUP_OUTPUT", + "ModifyAvailabilityZoneOptInStatus": "MODIFY_AVAILABILITY_ZONE_OPT_IN_STATUS", + "ModifyCapacityReservationFleetInput": "MODIFY_CAPACITY_RESERVATION_FLEET_INPUT", + "ModifyCapacityReservationFleetOutput": "MODIFY_CAPACITY_RESERVATION_FLEET_OUTPUT", + "ModifyCapacityReservationInput": "MODIFY_CAPACITY_RESERVATION_INPUT", + "ModifyCapacityReservationOutput": "MODIFY_CAPACITY_RESERVATION_OUTPUT", + "ModifyClientVpnEndpointAuthorizationPolicyInput": "MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_INPUT", + "ModifyClientVpnEndpointAuthorizationPolicyOutput": "MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY_OUTPUT", + "ModifyClientVpnEndpointInput": "MODIFY_CLIENT_VPN_ENDPOINT_INPUT", + "ModifyClientVpnEndpointOutput": "MODIFY_CLIENT_VPN_ENDPOINT_OUTPUT", + "ModifyDefaultCreditSpecificationInput": "MODIFY_DEFAULT_CREDIT_SPECIFICATION_INPUT", + "ModifyDefaultCreditSpecificationOutput": "MODIFY_DEFAULT_CREDIT_SPECIFICATION_OUTPUT", + "ModifyEbsDefaultKmsKeyIdInput": "MODIFY_EBS_DEFAULT_KMS_KEY_ID_INPUT", + "ModifyEbsDefaultKmsKeyIdOutput": "MODIFY_EBS_DEFAULT_KMS_KEY_ID_OUTPUT", + "ModifyFleetInput": "MODIFY_FLEET_INPUT", + "ModifyFleetOutput": "MODIFY_FLEET_OUTPUT", + "ModifyFpgaImageAttributeInput": "MODIFY_FPGA_IMAGE_ATTRIBUTE_INPUT", + "ModifyFpgaImageAttributeOutput": "MODIFY_FPGA_IMAGE_ATTRIBUTE_OUTPUT", + "ModifyHostsInput": "MODIFY_HOSTS_INPUT", + "ModifyHostsOutput": "MODIFY_HOSTS_OUTPUT", + "ModifyIdentityIdFormatInput": "MODIFY_IDENTITY_ID_FORMAT_INPUT", + "ModifyIdentityIdFormatOutput": "MODIFY_IDENTITY_ID_FORMAT_OUTPUT", + "ModifyIdFormatInput": "MODIFY_ID_FORMAT_INPUT", + "ModifyIdFormatOutput": "MODIFY_ID_FORMAT_OUTPUT", + "ModifyImageAttributeInput": "MODIFY_IMAGE_ATTRIBUTE_INPUT", + "ModifyImageAttributeOutput": "MODIFY_IMAGE_ATTRIBUTE_OUTPUT", + "ModifyInstanceAttributeInput": "MODIFY_INSTANCE_ATTRIBUTE_INPUT", + "ModifyInstanceAttributeOutput": "MODIFY_INSTANCE_ATTRIBUTE_OUTPUT", + "ModifyInstanceCapacityReservationAttributesInput": "MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_INPUT", + "ModifyInstanceCapacityReservationAttributesOutput": "MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES_OUTPUT", + "ModifyInstanceConnectEndpointInput": "MODIFY_INSTANCE_CONNECT_ENDPOINT_INPUT", + "ModifyInstanceConnectEndpointOutput": "MODIFY_INSTANCE_CONNECT_ENDPOINT_OUTPUT", + "ModifyInstanceCpuOptionsInput": "MODIFY_INSTANCE_CPU_OPTIONS_INPUT", + "ModifyInstanceCpuOptionsOutput": "MODIFY_INSTANCE_CPU_OPTIONS_OUTPUT", + "ModifyInstanceCreditSpecificationInput": "MODIFY_INSTANCE_CREDIT_SPECIFICATION_INPUT", + "ModifyInstanceCreditSpecificationOutput": "MODIFY_INSTANCE_CREDIT_SPECIFICATION_OUTPUT", + "ModifyInstanceEventStartTimeInput": "MODIFY_INSTANCE_EVENT_START_TIME_INPUT", + "ModifyInstanceEventStartTimeOutput": "MODIFY_INSTANCE_EVENT_START_TIME_OUTPUT", + "ModifyInstanceEventWindowInput": "MODIFY_INSTANCE_EVENT_WINDOW_INPUT", + "ModifyInstanceEventWindowOutput": "MODIFY_INSTANCE_EVENT_WINDOW_OUTPUT", + "ModifyInstanceMaintenanceOptionsInput": "MODIFY_INSTANCE_MAINTENANCE_OPTIONS_INPUT", + "ModifyInstanceMaintenanceOptionsOutput": "MODIFY_INSTANCE_MAINTENANCE_OPTIONS_OUTPUT", + "ModifyInstanceMetadataDefaultsInput": "MODIFY_INSTANCE_METADATA_DEFAULTS_INPUT", + "ModifyInstanceMetadataDefaultsOutput": "MODIFY_INSTANCE_METADATA_DEFAULTS_OUTPUT", + "ModifyInstanceMetadataOptionsInput": "MODIFY_INSTANCE_METADATA_OPTIONS_INPUT", + "ModifyInstanceMetadataOptionsOutput": "MODIFY_INSTANCE_METADATA_OPTIONS_OUTPUT", + "ModifyInstanceNetworkPerformanceOptionsInput": "MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_INPUT", + "ModifyInstanceNetworkPerformanceOptionsOutput": "MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS_OUTPUT", + "ModifyInstancePlacementInput": "MODIFY_INSTANCE_PLACEMENT_INPUT", + "ModifyInstancePlacementOutput": "MODIFY_INSTANCE_PLACEMENT_OUTPUT", + "ModifyIpamInput": "MODIFY_IPAM_INPUT", + "ModifyIpamOutput": "MODIFY_IPAM_OUTPUT", + "ModifyIpamPolicyAllocationRulesInput": "MODIFY_IPAM_POLICY_ALLOCATION_RULES_INPUT", + "ModifyIpamPolicyAllocationRulesOutput": "MODIFY_IPAM_POLICY_ALLOCATION_RULES_OUTPUT", + "ModifyIpamPoolAllocationInput": "MODIFY_IPAM_POOL_ALLOCATION_INPUT", + "ModifyIpamPoolAllocationOutput": "MODIFY_IPAM_POOL_ALLOCATION_OUTPUT", + "ModifyIpamPoolInput": "MODIFY_IPAM_POOL_INPUT", + "ModifyIpamPoolOutput": "MODIFY_IPAM_POOL_OUTPUT", + "ModifyIpamPrefixListResolverInput": "MODIFY_IPAM_PREFIX_LIST_RESOLVER_INPUT", + "ModifyIpamPrefixListResolverOutput": "MODIFY_IPAM_PREFIX_LIST_RESOLVER_OUTPUT", + "ModifyIpamPrefixListResolverTargetInput": "MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_INPUT", + "ModifyIpamPrefixListResolverTargetOutput": "MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET_OUTPUT", + "ModifyIpamResourceCidrInput": "MODIFY_IPAM_RESOURCE_CIDR_INPUT", + "ModifyIpamResourceCidrOutput": "MODIFY_IPAM_RESOURCE_CIDR_OUTPUT", + "ModifyIpamResourceDiscoveryInput": "MODIFY_IPAM_RESOURCE_DISCOVERY_INPUT", + "ModifyIpamResourceDiscoveryOutput": "MODIFY_IPAM_RESOURCE_DISCOVERY_OUTPUT", + "ModifyIpamRoutingPolicyRegistrationInput": "MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_INPUT", + "ModifyIpamRoutingPolicyRegistrationOutput": "MODIFY_IPAM_ROUTING_POLICY_REGISTRATION_OUTPUT", + "ModifyIpamScopeInput": "MODIFY_IPAM_SCOPE_INPUT", + "ModifyIpamScopeOutput": "MODIFY_IPAM_SCOPE_OUTPUT", + "ModifyLaunchTemplateInput": "MODIFY_LAUNCH_TEMPLATE_INPUT", + "ModifyLaunchTemplateOutput": "MODIFY_LAUNCH_TEMPLATE_OUTPUT", + "ModifyLocalGatewayRouteInput": "MODIFY_LOCAL_GATEWAY_ROUTE_INPUT", + "ModifyLocalGatewayRouteOutput": "MODIFY_LOCAL_GATEWAY_ROUTE_OUTPUT", + "ModifyManagedPrefixListInput": "MODIFY_MANAGED_PREFIX_LIST_INPUT", + "ModifyManagedPrefixListOutput": "MODIFY_MANAGED_PREFIX_LIST_OUTPUT", + "ModifyManagedResourceVisibilityInput": "MODIFY_MANAGED_RESOURCE_VISIBILITY_INPUT", + "ModifyManagedResourceVisibilityOutput": "MODIFY_MANAGED_RESOURCE_VISIBILITY_OUTPUT", + "ModifyNetworkInterfaceAttributeInput": "MODIFY_NETWORK_INTERFACE_ATTRIBUTE_INPUT", + "ModifyNetworkInterfaceAttributeOutput": "MODIFY_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT", + "ModifyPrivateDnsNameOptionsInput": "MODIFY_PRIVATE_DNS_NAME_OPTIONS_INPUT", + "ModifyPrivateDnsNameOptionsOutput": "MODIFY_PRIVATE_DNS_NAME_OPTIONS_OUTPUT", + "ModifyPublicIpDnsNameOptionsInput": "MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_INPUT", + "ModifyPublicIpDnsNameOptionsOutput": "MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS_OUTPUT", + "ModifyReservedInstancesInput": "MODIFY_RESERVED_INSTANCES_INPUT", + "ModifyReservedInstancesOutput": "MODIFY_RESERVED_INSTANCES_OUTPUT", + "ModifyRouteServerInput": "MODIFY_ROUTE_SERVER_INPUT", + "ModifyRouteServerOutput": "MODIFY_ROUTE_SERVER_OUTPUT", + "ModifySecurityGroupRulesInput": "MODIFY_SECURITY_GROUP_RULES_INPUT", + "ModifySecurityGroupRulesOutput": "MODIFY_SECURITY_GROUP_RULES_OUTPUT", + "ModifySnapshotAttributeInput": "MODIFY_SNAPSHOT_ATTRIBUTE_INPUT", + "ModifySnapshotAttributeOutput": "MODIFY_SNAPSHOT_ATTRIBUTE_OUTPUT", + "ModifySnapshotTierInput": "MODIFY_SNAPSHOT_TIER_INPUT", + "ModifySnapshotTierOutput": "MODIFY_SNAPSHOT_TIER_OUTPUT", + "ModifySpotFleetRequestInput": "MODIFY_SPOT_FLEET_REQUEST_INPUT", + "ModifySpotFleetRequestOutput": "MODIFY_SPOT_FLEET_REQUEST_OUTPUT", + "ModifySubnetAttributeInput": "MODIFY_SUBNET_ATTRIBUTE_INPUT", + "ModifySubnetAttributeOutput": "MODIFY_SUBNET_ATTRIBUTE_OUTPUT", + "ModifyTrafficMirrorFilterNetworkServicesInput": "MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_INPUT", + "ModifyTrafficMirrorFilterNetworkServicesOutput": "MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES_OUTPUT", + "ModifyTrafficMirrorFilterRuleInput": "MODIFY_TRAFFIC_MIRROR_FILTER_RULE_INPUT", + "ModifyTrafficMirrorFilterRuleOutput": "MODIFY_TRAFFIC_MIRROR_FILTER_RULE_OUTPUT", + "ModifyTrafficMirrorSessionInput": "MODIFY_TRAFFIC_MIRROR_SESSION_INPUT", + "ModifyTrafficMirrorSessionOutput": "MODIFY_TRAFFIC_MIRROR_SESSION_OUTPUT", + "ModifyTransitGatewayAttachmentNatConfigurationInput": "MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_INPUT", + "ModifyTransitGatewayAttachmentNatConfigurationOutput": "MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION_OUTPUT", + "ModifyTransitGatewayInput": "MODIFY_TRANSIT_GATEWAY_INPUT", + "ModifyTransitGatewayMeteringPolicyInput": "MODIFY_TRANSIT_GATEWAY_METERING_POLICY_INPUT", + "ModifyTransitGatewayMeteringPolicyOutput": "MODIFY_TRANSIT_GATEWAY_METERING_POLICY_OUTPUT", + "ModifyTransitGatewayOptions": "MODIFY_TRANSIT_GATEWAY_OPTIONS", + "ModifyTransitGatewayOutput": "MODIFY_TRANSIT_GATEWAY_OUTPUT", + "ModifyTransitGatewayPolicyTableEntryInput": "MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_INPUT", + "ModifyTransitGatewayPolicyTableEntryOutput": "MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_OUTPUT", + "ModifyTransitGatewayPrefixListReferenceInput": "MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_INPUT", + "ModifyTransitGatewayPrefixListReferenceOutput": "MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_OUTPUT", + "ModifyTransitGatewayVpcAttachmentInput": "MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT", + "ModifyTransitGatewayVpcAttachmentOutput": "MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT", + "ModifyTransitGatewayVpcAttachmentRequestOptions": "MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT_REQUEST_OPTIONS", + "ModifyVerifiedAccessEndpointCidrOptions": "MODIFY_VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS", + "ModifyVerifiedAccessEndpointEniOptions": "MODIFY_VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS", + "ModifyVerifiedAccessEndpointInput": "MODIFY_VERIFIED_ACCESS_ENDPOINT_INPUT", + "ModifyVerifiedAccessEndpointLoadBalancerOptions": "MODIFY_VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS", + "ModifyVerifiedAccessEndpointOutput": "MODIFY_VERIFIED_ACCESS_ENDPOINT_OUTPUT", + "ModifyVerifiedAccessEndpointPolicyInput": "MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_INPUT", + "ModifyVerifiedAccessEndpointPolicyOutput": "MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY_OUTPUT", + "ModifyVerifiedAccessEndpointPortRange": "MODIFY_VERIFIED_ACCESS_ENDPOINT_PORT_RANGE", + "ModifyVerifiedAccessEndpointRdsOptions": "MODIFY_VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS", + "ModifyVerifiedAccessGroupInput": "MODIFY_VERIFIED_ACCESS_GROUP_INPUT", + "ModifyVerifiedAccessGroupOutput": "MODIFY_VERIFIED_ACCESS_GROUP_OUTPUT", + "ModifyVerifiedAccessGroupPolicyInput": "MODIFY_VERIFIED_ACCESS_GROUP_POLICY_INPUT", + "ModifyVerifiedAccessGroupPolicyOutput": "MODIFY_VERIFIED_ACCESS_GROUP_POLICY_OUTPUT", + "ModifyVerifiedAccessInstanceInput": "MODIFY_VERIFIED_ACCESS_INSTANCE_INPUT", + "ModifyVerifiedAccessInstanceLoggingConfigurationInput": "MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_INPUT", + "ModifyVerifiedAccessInstanceLoggingConfigurationOutput": "MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION_OUTPUT", + "ModifyVerifiedAccessInstanceOutput": "MODIFY_VERIFIED_ACCESS_INSTANCE_OUTPUT", + "ModifyVerifiedAccessNativeApplicationOidcOptions": "MODIFY_VERIFIED_ACCESS_NATIVE_APPLICATION_OIDC_OPTIONS", + "ModifyVerifiedAccessTrustProviderDeviceOptions": "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_DEVICE_OPTIONS", + "ModifyVerifiedAccessTrustProviderInput": "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_INPUT", + "ModifyVerifiedAccessTrustProviderOidcOptions": "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OIDC_OPTIONS", + "ModifyVerifiedAccessTrustProviderOutput": "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER_OUTPUT", + "ModifyVolumeAttributeInput": "MODIFY_VOLUME_ATTRIBUTE_INPUT", + "ModifyVolumeAttributeOutput": "MODIFY_VOLUME_ATTRIBUTE_OUTPUT", + "ModifyVolumeInput": "MODIFY_VOLUME_INPUT", + "ModifyVolumeOutput": "MODIFY_VOLUME_OUTPUT", + "ModifyVpcAttributeInput": "MODIFY_VPC_ATTRIBUTE_INPUT", + "ModifyVpcAttributeOutput": "MODIFY_VPC_ATTRIBUTE_OUTPUT", + "ModifyVpcBlockPublicAccessExclusionInput": "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_INPUT", + "ModifyVpcBlockPublicAccessExclusionOutput": "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_OUTPUT", + "ModifyVpcBlockPublicAccessOptionsInput": "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_INPUT", + "ModifyVpcBlockPublicAccessOptionsOutput": "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS_OUTPUT", + "ModifyVpcEncryptionControlInput": "MODIFY_VPC_ENCRYPTION_CONTROL_INPUT", + "ModifyVpcEncryptionControlOutput": "MODIFY_VPC_ENCRYPTION_CONTROL_OUTPUT", + "ModifyVpcEndpointConnectionNotificationInput": "MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_INPUT", + "ModifyVpcEndpointConnectionNotificationOutput": "MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION_OUTPUT", + "ModifyVpcEndpointInput": "MODIFY_VPC_ENDPOINT_INPUT", + "ModifyVpcEndpointOutput": "MODIFY_VPC_ENDPOINT_OUTPUT", + "ModifyVpcEndpointPayerResponsibilityInput": "MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_INPUT", + "ModifyVpcEndpointPayerResponsibilityOutput": "MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY_OUTPUT", + "ModifyVpcEndpointServiceConfigurationInput": "MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_INPUT", + "ModifyVpcEndpointServiceConfigurationOutput": "MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION_OUTPUT", + "ModifyVpcEndpointServicePayerResponsibilityInput": "MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_INPUT", + "ModifyVpcEndpointServicePayerResponsibilityOutput": "MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY_OUTPUT", + "ModifyVpcEndpointServicePermissionsInput": "MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_INPUT", + "ModifyVpcEndpointServicePermissionsOutput": "MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS_OUTPUT", + "ModifyVpcPeeringConnectionOptionsInput": "MODIFY_VPC_PEERING_CONNECTION_OPTIONS_INPUT", + "ModifyVpcPeeringConnectionOptionsOutput": "MODIFY_VPC_PEERING_CONNECTION_OPTIONS_OUTPUT", + "ModifyVpcTenancyInput": "MODIFY_VPC_TENANCY_INPUT", + "ModifyVpcTenancyOutput": "MODIFY_VPC_TENANCY_OUTPUT", + "ModifyVpnConnectionInput": "MODIFY_VPN_CONNECTION_INPUT", + "ModifyVpnConnectionOptionsInput": "MODIFY_VPN_CONNECTION_OPTIONS_INPUT", + "ModifyVpnConnectionOptionsOutput": "MODIFY_VPN_CONNECTION_OPTIONS_OUTPUT", + "ModifyVpnConnectionOutput": "MODIFY_VPN_CONNECTION_OUTPUT", + "ModifyVpnTunnelCertificateInput": "MODIFY_VPN_TUNNEL_CERTIFICATE_INPUT", + "ModifyVpnTunnelCertificateOutput": "MODIFY_VPN_TUNNEL_CERTIFICATE_OUTPUT", + "ModifyVpnTunnelOptionsInput": "MODIFY_VPN_TUNNEL_OPTIONS_INPUT", + "ModifyVpnTunnelOptionsOutput": "MODIFY_VPN_TUNNEL_OPTIONS_OUTPUT", + "ModifyVpnTunnelOptionsSpecification": "MODIFY_VPN_TUNNEL_OPTIONS_SPECIFICATION", + "Monitoring": "MONITORING", + "MonitoringState": "MONITORING_STATE", + "MonitorInstancesInput": "MONITOR_INSTANCES_INPUT", + "MonitorInstancesOutput": "MONITOR_INSTANCES_OUTPUT", + "MoveAddressToVpcInput": "MOVE_ADDRESS_TO_VPC_INPUT", + "MoveAddressToVpcOutput": "MOVE_ADDRESS_TO_VPC_OUTPUT", + "MoveByoipCidrToIpamInput": "MOVE_BYOIP_CIDR_TO_IPAM_INPUT", + "MoveByoipCidrToIpamOutput": "MOVE_BYOIP_CIDR_TO_IPAM_OUTPUT", + "MoveCapacityReservationInstancesInput": "MOVE_CAPACITY_RESERVATION_INSTANCES_INPUT", + "MoveCapacityReservationInstancesOutput": "MOVE_CAPACITY_RESERVATION_INSTANCES_OUTPUT", + "MoveStatus": "MOVE_STATUS", + "MovingAddressStatus": "MOVING_ADDRESS_STATUS", + "MulticastSupportValue": "MULTICAST_SUPPORT_VALUE", + "NatGateway": "NAT_GATEWAY", + "NatGatewayAddress": "NAT_GATEWAY_ADDRESS", + "NatGatewayAddressStatus": "NAT_GATEWAY_ADDRESS_STATUS", + "NatGatewayApplianceModifyState": "NAT_GATEWAY_APPLIANCE_MODIFY_STATE", + "NatGatewayApplianceState": "NAT_GATEWAY_APPLIANCE_STATE", + "NatGatewayApplianceType": "NAT_GATEWAY_APPLIANCE_TYPE", + "NatGatewayAttachedAppliance": "NAT_GATEWAY_ATTACHED_APPLIANCE", + "NatGatewayState": "NAT_GATEWAY_STATE", + "NativeApplicationOidcOptions": "NATIVE_APPLICATION_OIDC_OPTIONS", + "NestedVirtualizationSpecification": "NESTED_VIRTUALIZATION_SPECIFICATION", + "NetworkAcl": "NETWORK_ACL", + "NetworkAclAssociation": "NETWORK_ACL_ASSOCIATION", + "NetworkAclEntry": "NETWORK_ACL_ENTRY", + "NetworkBandwidthGbps": "NETWORK_BANDWIDTH_GBPS", + "NetworkBandwidthGbpsRequest": "NETWORK_BANDWIDTH_GBPS_REQUEST", + "NetworkCardInfo": "NETWORK_CARD_INFO", + "NetworkCardInterfaceType": "NETWORK_CARD_INTERFACE_TYPE", + "NetworkInfo": "NETWORK_INFO", + "NetworkInsightsAccessScope": "NETWORK_INSIGHTS_ACCESS_SCOPE", + "NetworkInsightsAccessScopeAnalysis": "NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS", + "NetworkInsightsAccessScopeContent": "NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT", + "NetworkInsightsAnalysis": "NETWORK_INSIGHTS_ANALYSIS", + "NetworkInsightsPath": "NETWORK_INSIGHTS_PATH", + "NetworkInterface": "NETWORK_INTERFACE", + "NetworkInterfaceAssociation": "NETWORK_INTERFACE_ASSOCIATION", + "NetworkInterfaceAttachment": "NETWORK_INTERFACE_ATTACHMENT", + "NetworkInterfaceAttachmentChanges": "NETWORK_INTERFACE_ATTACHMENT_CHANGES", + "NetworkInterfaceAttribute": "NETWORK_INTERFACE_ATTRIBUTE", + "NetworkInterfaceCount": "NETWORK_INTERFACE_COUNT", + "NetworkInterfaceCountRequest": "NETWORK_INTERFACE_COUNT_REQUEST", + "NetworkInterfaceCreationType": "NETWORK_INTERFACE_CREATION_TYPE", + "NetworkInterfaceIpv6Address": "NETWORK_INTERFACE_IPV6_ADDRESS", + "NetworkInterfacePermission": "NETWORK_INTERFACE_PERMISSION", + "NetworkInterfacePermissionState": "NETWORK_INTERFACE_PERMISSION_STATE", + "NetworkInterfacePermissionStateCode": "NETWORK_INTERFACE_PERMISSION_STATE_CODE", + "NetworkInterfacePrivateIpAddress": "NETWORK_INTERFACE_PRIVATE_IP_ADDRESS", + "NetworkInterfaceStatus": "NETWORK_INTERFACE_STATUS", + "NetworkInterfaceType": "NETWORK_INTERFACE_TYPE", + "NetworkProtocolEnum": "NETWORK_PROTOCOL_ENUM", + "NeuronDeviceCoreInfo": "NEURON_DEVICE_CORE_INFO", + "NeuronDeviceInfo": "NEURON_DEVICE_INFO", + "NeuronDeviceMemoryInfo": "NEURON_DEVICE_MEMORY_INFO", + "NeuronInfo": "NEURON_INFO", + "NewDhcpConfiguration": "NEW_DHCP_CONFIGURATION", + "NitroEnclavesSupport": "NITRO_ENCLAVES_SUPPORT", + "NitroTpmInfo": "NITRO_TPM_INFO", + "NitroTpmSupport": "NITRO_TPM_SUPPORT", + "OfferingClassType": "OFFERING_CLASS_TYPE", + "OfferingTypeValues": "OFFERING_TYPE_VALUES", + "OidcOptions": "OIDC_OPTIONS", + "OnDemandAllocationStrategy": "ON_DEMAND_ALLOCATION_STRATEGY", + "OnDemandOptions": "ON_DEMAND_OPTIONS", + "OnDemandOptionsRequest": "ON_DEMAND_OPTIONS_REQUEST", + "OperationType": "OPERATION_TYPE", + "OperatorRequest": "OPERATOR_REQUEST", + "OperatorResponse": "OPERATOR_RESPONSE", + "OutpostLag": "OUTPOST_LAG", + "OutputFormat": "OUTPUT_FORMAT", + "PacketHeaderStatement": "PACKET_HEADER_STATEMENT", + "PacketHeaderStatementRequest": "PACKET_HEADER_STATEMENT_REQUEST", + "PartitionLoadFrequency": "PARTITION_LOAD_FREQUENCY", + "PathComponent": "PATH_COMPONENT", + "PathFilter": "PATH_FILTER", + "PathRequestFilter": "PATH_REQUEST_FILTER", + "PathStatement": "PATH_STATEMENT", + "PathStatementRequest": "PATH_STATEMENT_REQUEST", + "PayerResponsibility": "PAYER_RESPONSIBILITY", + "PayerResponsibilityEntry": "PAYER_RESPONSIBILITY_ENTRY", + "PayerResponsibilityScope": "PAYER_RESPONSIBILITY_SCOPE", + "PayerResponsibilityType": "PAYER_RESPONSIBILITY_TYPE", + "PaymentOption": "PAYMENT_OPTION", + "PciId": "PCI_ID", + "PeeringAttachmentStatus": "PEERING_ATTACHMENT_STATUS", + "PeeringConnectionOptions": "PEERING_CONNECTION_OPTIONS", + "PeeringConnectionOptionsRequest": "PEERING_CONNECTION_OPTIONS_REQUEST", + "PeeringTgwInfo": "PEERING_TGW_INFO", + "PerformanceFactorReference": "PERFORMANCE_FACTOR_REFERENCE", + "PerformanceFactorReferenceRequest": "PERFORMANCE_FACTOR_REFERENCE_REQUEST", + "PerformanceStatusSummary": "PERFORMANCE_STATUS_SUMMARY", + "PeriodType": "PERIOD_TYPE", + "PermissionGroup": "PERMISSION_GROUP", + "Phase1DHGroupNumbersListValue": "PHASE1_DH_GROUP_NUMBERS_LIST_VALUE", + "Phase1DHGroupNumbersRequestListValue": "PHASE1_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE", + "Phase1EncryptionAlgorithmsListValue": "PHASE1_ENCRYPTION_ALGORITHMS_LIST_VALUE", + "Phase1EncryptionAlgorithmsRequestListValue": "PHASE1_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE", + "Phase1IntegrityAlgorithmsListValue": "PHASE1_INTEGRITY_ALGORITHMS_LIST_VALUE", + "Phase1IntegrityAlgorithmsRequestListValue": "PHASE1_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE", + "Phase2DHGroupNumbersListValue": "PHASE2_DH_GROUP_NUMBERS_LIST_VALUE", + "Phase2DHGroupNumbersRequestListValue": "PHASE2_DH_GROUP_NUMBERS_REQUEST_LIST_VALUE", + "Phase2EncryptionAlgorithmsListValue": "PHASE2_ENCRYPTION_ALGORITHMS_LIST_VALUE", + "Phase2EncryptionAlgorithmsRequestListValue": "PHASE2_ENCRYPTION_ALGORITHMS_REQUEST_LIST_VALUE", + "Phase2IntegrityAlgorithmsListValue": "PHASE2_INTEGRITY_ALGORITHMS_LIST_VALUE", + "Phase2IntegrityAlgorithmsRequestListValue": "PHASE2_INTEGRITY_ALGORITHMS_REQUEST_LIST_VALUE", + "PhcSupport": "PHC_SUPPORT", + "Placement": "PLACEMENT", + "PlacementGroup": "PLACEMENT_GROUP", + "PlacementGroupInfo": "PLACEMENT_GROUP_INFO", + "PlacementGroupState": "PLACEMENT_GROUP_STATE", + "PlacementGroupStrategy": "PLACEMENT_GROUP_STRATEGY", + "PlacementResponse": "PLACEMENT_RESPONSE", + "PlacementStrategy": "PLACEMENT_STRATEGY", + "PlatformValues": "PLATFORM_VALUES", + "PoolCidrBlock": "POOL_CIDR_BLOCK", + "PortRange": "PORT_RANGE", + "PrefixList": "PREFIX_LIST", + "PrefixListAssociation": "PREFIX_LIST_ASSOCIATION", + "PrefixListEntry": "PREFIX_LIST_ENTRY", + "PrefixListId": "PREFIX_LIST_ID", + "PrefixListState": "PREFIX_LIST_STATE", + "PriceSchedule": "PRICE_SCHEDULE", + "PriceScheduleSpecification": "PRICE_SCHEDULE_SPECIFICATION", + "PricingDetail": "PRICING_DETAIL", + "PrincipalIdFormat": "PRINCIPAL_ID_FORMAT", + "PrincipalType": "PRINCIPAL_TYPE", + "PrivateDnsDetails": "PRIVATE_DNS_DETAILS", + "PrivateDnsNameConfiguration": "PRIVATE_DNS_NAME_CONFIGURATION", + "PrivateDnsNameOptionsOnLaunch": "PRIVATE_DNS_NAME_OPTIONS_ON_LAUNCH", + "PrivateDnsNameOptionsRequest": "PRIVATE_DNS_NAME_OPTIONS_REQUEST", + "PrivateDnsNameOptionsResponse": "PRIVATE_DNS_NAME_OPTIONS_RESPONSE", + "PrivateIpAddressSpecification": "PRIVATE_IP_ADDRESS_SPECIFICATION", + "ProcessorInfo": "PROCESSOR_INFO", + "ProductCode": "PRODUCT_CODE", + "ProductCodeValues": "PRODUCT_CODE_VALUES", + "PropagatingVgw": "PROPAGATING_VGW", + "Protocol": "PROTOCOL", + "ProtocolValue": "PROTOCOL_VALUE", + "ProvisionByoipCidrInput": "PROVISION_BYOIP_CIDR_INPUT", + "ProvisionByoipCidrOutput": "PROVISION_BYOIP_CIDR_OUTPUT", + "ProvisionedBandwidth": "PROVISIONED_BANDWIDTH", + "ProvisionIpamByoasnInput": "PROVISION_IPAM_BYOASN_INPUT", + "ProvisionIpamByoasnOutput": "PROVISION_IPAM_BYOASN_OUTPUT", + "ProvisionIpamPoolCidrInput": "PROVISION_IPAM_POOL_CIDR_INPUT", + "ProvisionIpamPoolCidrOutput": "PROVISION_IPAM_POOL_CIDR_OUTPUT", + "ProvisionPublicIpv4PoolCidrInput": "PROVISION_PUBLIC_IPV4_POOL_CIDR_INPUT", + "ProvisionPublicIpv4PoolCidrOutput": "PROVISION_PUBLIC_IPV4_POOL_CIDR_OUTPUT", + "PtrUpdateStatus": "PTR_UPDATE_STATUS", + "PublicIpDnsNameOptions": "PUBLIC_IP_DNS_NAME_OPTIONS", + "PublicIpDnsOption": "PUBLIC_IP_DNS_OPTION", + "PublicIpv4Pool": "PUBLIC_IPV4_POOL", + "PublicIpv4PoolRange": "PUBLIC_IPV4_POOL_RANGE", + "Purchase": "PURCHASE", + "PurchaseCapacityBlockExtensionInput": "PURCHASE_CAPACITY_BLOCK_EXTENSION_INPUT", + "PurchaseCapacityBlockExtensionOutput": "PURCHASE_CAPACITY_BLOCK_EXTENSION_OUTPUT", + "PurchaseCapacityBlockInput": "PURCHASE_CAPACITY_BLOCK_INPUT", + "PurchaseCapacityBlockOutput": "PURCHASE_CAPACITY_BLOCK_OUTPUT", + "PurchaseHostReservationInput": "PURCHASE_HOST_RESERVATION_INPUT", + "PurchaseHostReservationOutput": "PURCHASE_HOST_RESERVATION_OUTPUT", + "PurchaseRequest": "PURCHASE_REQUEST", + "PurchaseReservedInstancesOfferingInput": "PURCHASE_RESERVED_INSTANCES_OFFERING_INPUT", + "PurchaseReservedInstancesOfferingOutput": "PURCHASE_RESERVED_INSTANCES_OFFERING_OUTPUT", + "PurchaseScheduledInstancesInput": "PURCHASE_SCHEDULED_INSTANCES_INPUT", + "PurchaseScheduledInstancesOutput": "PURCHASE_SCHEDULED_INSTANCES_OUTPUT", + "RebootInstancesInput": "REBOOT_INSTANCES_INPUT", + "RebootInstancesOutput": "REBOOT_INSTANCES_OUTPUT", + "RebootMigrationSupport": "REBOOT_MIGRATION_SUPPORT", + "RecurringCharge": "RECURRING_CHARGE", + "RecurringChargeFrequency": "RECURRING_CHARGE_FREQUENCY", + "ReferencedSecurityGroup": "REFERENCED_SECURITY_GROUP", + "Region": "REGION", + "RegionalSummary": "REGIONAL_SUMMARY", + "RegionGeography": "REGION_GEOGRAPHY", + "RegisteredInstance": "REGISTERED_INSTANCE", + "RegisterImageInput": "REGISTER_IMAGE_INPUT", + "RegisterImageOutput": "REGISTER_IMAGE_OUTPUT", + "RegisterInstanceEventNotificationAttributesInput": "REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_INPUT", + "RegisterInstanceEventNotificationAttributesOutput": "REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES_OUTPUT", + "RegisterInstanceTagAttributeRequest": "REGISTER_INSTANCE_TAG_ATTRIBUTE_REQUEST", + "RegisterTransitGatewayMulticastGroupMembersInput": "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_INPUT", + "RegisterTransitGatewayMulticastGroupMembersOutput": "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS_OUTPUT", + "RegisterTransitGatewayMulticastGroupSourcesInput": "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_INPUT", + "RegisterTransitGatewayMulticastGroupSourcesOutput": "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES_OUTPUT", + "RejectCapacityReservationBillingOwnershipInput": "REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_INPUT", + "RejectCapacityReservationBillingOwnershipOutput": "REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP_OUTPUT", + "RejectTransitGatewayClientVpnAttachmentInput": "REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_INPUT", + "RejectTransitGatewayClientVpnAttachmentOutput": "REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT_OUTPUT", + "RejectTransitGatewayMulticastDomainAssociationsInput": "REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_INPUT", + "RejectTransitGatewayMulticastDomainAssociationsOutput": "REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS_OUTPUT", + "RejectTransitGatewayPeeringAttachmentInput": "REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_INPUT", + "RejectTransitGatewayPeeringAttachmentOutput": "REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT_OUTPUT", + "RejectTransitGatewayVpcAttachmentInput": "REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_INPUT", + "RejectTransitGatewayVpcAttachmentOutput": "REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT_OUTPUT", + "RejectVpcEndpointConnectionsInput": "REJECT_VPC_ENDPOINT_CONNECTIONS_INPUT", + "RejectVpcEndpointConnectionsOutput": "REJECT_VPC_ENDPOINT_CONNECTIONS_OUTPUT", + "RejectVpcPeeringConnectionInput": "REJECT_VPC_PEERING_CONNECTION_INPUT", + "RejectVpcPeeringConnectionOutput": "REJECT_VPC_PEERING_CONNECTION_OUTPUT", + "ReleaseAddressInput": "RELEASE_ADDRESS_INPUT", + "ReleaseAddressOutput": "RELEASE_ADDRESS_OUTPUT", + "ReleaseHostsInput": "RELEASE_HOSTS_INPUT", + "ReleaseHostsOutput": "RELEASE_HOSTS_OUTPUT", + "ReleaseIpamPoolAllocationInput": "RELEASE_IPAM_POOL_ALLOCATION_INPUT", + "ReleaseIpamPoolAllocationOutput": "RELEASE_IPAM_POOL_ALLOCATION_OUTPUT", + "RemoveIpamOperatingRegion": "REMOVE_IPAM_OPERATING_REGION", + "RemoveIpamOrganizationalUnitExclusion": "REMOVE_IPAM_ORGANIZATIONAL_UNIT_EXCLUSION", + "RemovePrefixListEntry": "REMOVE_PREFIX_LIST_ENTRY", + "ReplaceIamInstanceProfileAssociationInput": "REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_INPUT", + "ReplaceIamInstanceProfileAssociationOutput": "REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION_OUTPUT", + "ReplaceImageCriteriaInAllowedImagesSettingsInput": "REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_INPUT", + "ReplaceImageCriteriaInAllowedImagesSettingsOutput": "REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS_OUTPUT", + "ReplaceImageInstanceTypeSpecificationInput": "REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_INPUT", + "ReplaceImageInstanceTypeSpecificationOutput": "REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION_OUTPUT", + "ReplacementStrategy": "REPLACEMENT_STRATEGY", + "ReplaceNetworkAclAssociationInput": "REPLACE_NETWORK_ACL_ASSOCIATION_INPUT", + "ReplaceNetworkAclAssociationOutput": "REPLACE_NETWORK_ACL_ASSOCIATION_OUTPUT", + "ReplaceNetworkAclEntryInput": "REPLACE_NETWORK_ACL_ENTRY_INPUT", + "ReplaceNetworkAclEntryOutput": "REPLACE_NETWORK_ACL_ENTRY_OUTPUT", + "ReplaceRootVolumeTask": "REPLACE_ROOT_VOLUME_TASK", + "ReplaceRootVolumeTaskState": "REPLACE_ROOT_VOLUME_TASK_STATE", + "ReplaceRouteInput": "REPLACE_ROUTE_INPUT", + "ReplaceRouteOutput": "REPLACE_ROUTE_OUTPUT", + "ReplaceRouteTableAssociationInput": "REPLACE_ROUTE_TABLE_ASSOCIATION_INPUT", + "ReplaceRouteTableAssociationOutput": "REPLACE_ROUTE_TABLE_ASSOCIATION_OUTPUT", + "ReplaceTransitGatewayRouteInput": "REPLACE_TRANSIT_GATEWAY_ROUTE_INPUT", + "ReplaceTransitGatewayRouteOutput": "REPLACE_TRANSIT_GATEWAY_ROUTE_OUTPUT", + "ReplaceVpnTunnelInput": "REPLACE_VPN_TUNNEL_INPUT", + "ReplaceVpnTunnelOutput": "REPLACE_VPN_TUNNEL_OUTPUT", + "ReportInstanceReasonCodes": "REPORT_INSTANCE_REASON_CODES", + "ReportInstanceStatusInput": "REPORT_INSTANCE_STATUS_INPUT", + "ReportInstanceStatusOutput": "REPORT_INSTANCE_STATUS_OUTPUT", + "ReportState": "REPORT_STATE", + "ReportStatusType": "REPORT_STATUS_TYPE", + "RequestFilterPortRange": "REQUEST_FILTER_PORT_RANGE", + "RequestIpamResourceTag": "REQUEST_IPAM_RESOURCE_TAG", + "RequestLaunchTemplateData": "REQUEST_LAUNCH_TEMPLATE_DATA", + "RequestSpotFleetInput": "REQUEST_SPOT_FLEET_INPUT", + "RequestSpotFleetOutput": "REQUEST_SPOT_FLEET_OUTPUT", + "RequestSpotInstancesInput": "REQUEST_SPOT_INSTANCES_INPUT", + "RequestSpotInstancesOutput": "REQUEST_SPOT_INSTANCES_OUTPUT", + "RequestSpotLaunchSpecification": "REQUEST_SPOT_LAUNCH_SPECIFICATION", + "Reservation": "RESERVATION", + "ReservationEndDateType": "RESERVATION_END_DATE_TYPE", + "ReservationFleetInstanceSpecification": "RESERVATION_FLEET_INSTANCE_SPECIFICATION", + "ReservationState": "RESERVATION_STATE", + "ReservationType": "RESERVATION_TYPE", + "ReservationValue": "RESERVATION_VALUE", + "ReservedCapacityAllocationStrategy": "RESERVED_CAPACITY_ALLOCATION_STRATEGY", + "ReservedCapacityFallbackMarketType": "RESERVED_CAPACITY_FALLBACK_MARKET_TYPE", + "ReservedCapacityFallbackOptions": "RESERVED_CAPACITY_FALLBACK_OPTIONS", + "ReservedCapacityFallbackOptionsRequest": "RESERVED_CAPACITY_FALLBACK_OPTIONS_REQUEST", + "ReservedCapacityOptions": "RESERVED_CAPACITY_OPTIONS", + "ReservedCapacityOptionsRequest": "RESERVED_CAPACITY_OPTIONS_REQUEST", + "ReservedInstanceLimitPrice": "RESERVED_INSTANCE_LIMIT_PRICE", + "ReservedInstanceReservationValue": "RESERVED_INSTANCE_RESERVATION_VALUE", + "ReservedInstances": "RESERVED_INSTANCES", + "ReservedInstancesConfiguration": "RESERVED_INSTANCES_CONFIGURATION", + "ReservedInstancesId": "RESERVED_INSTANCES_ID", + "ReservedInstancesListing": "RESERVED_INSTANCES_LISTING", + "ReservedInstancesModification": "RESERVED_INSTANCES_MODIFICATION", + "ReservedInstancesModificationResult": "RESERVED_INSTANCES_MODIFICATION_RESULT", + "ReservedInstancesOffering": "RESERVED_INSTANCES_OFFERING", + "ReservedInstanceState": "RESERVED_INSTANCE_STATE", + "ResetAddressAttributeInput": "RESET_ADDRESS_ATTRIBUTE_INPUT", + "ResetAddressAttributeOutput": "RESET_ADDRESS_ATTRIBUTE_OUTPUT", + "ResetEbsDefaultKmsKeyIdInput": "RESET_EBS_DEFAULT_KMS_KEY_ID_INPUT", + "ResetEbsDefaultKmsKeyIdOutput": "RESET_EBS_DEFAULT_KMS_KEY_ID_OUTPUT", + "ResetFpgaImageAttributeInput": "RESET_FPGA_IMAGE_ATTRIBUTE_INPUT", + "ResetFpgaImageAttributeName": "RESET_FPGA_IMAGE_ATTRIBUTE_NAME", + "ResetFpgaImageAttributeOutput": "RESET_FPGA_IMAGE_ATTRIBUTE_OUTPUT", + "ResetImageAttributeInput": "RESET_IMAGE_ATTRIBUTE_INPUT", + "ResetImageAttributeName": "RESET_IMAGE_ATTRIBUTE_NAME", + "ResetImageAttributeOutput": "RESET_IMAGE_ATTRIBUTE_OUTPUT", + "ResetInstanceAttributeInput": "RESET_INSTANCE_ATTRIBUTE_INPUT", + "ResetInstanceAttributeOutput": "RESET_INSTANCE_ATTRIBUTE_OUTPUT", + "ResetNetworkInterfaceAttributeInput": "RESET_NETWORK_INTERFACE_ATTRIBUTE_INPUT", + "ResetNetworkInterfaceAttributeOutput": "RESET_NETWORK_INTERFACE_ATTRIBUTE_OUTPUT", + "ResetSnapshotAttributeInput": "RESET_SNAPSHOT_ATTRIBUTE_INPUT", + "ResetSnapshotAttributeOutput": "RESET_SNAPSHOT_ATTRIBUTE_OUTPUT", + "ResourceStatement": "RESOURCE_STATEMENT", + "ResourceStatementRequest": "RESOURCE_STATEMENT_REQUEST", + "ResourceType": "RESOURCE_TYPE", + "ResourceTypeOption": "RESOURCE_TYPE_OPTION", + "ResourceTypeRequest": "RESOURCE_TYPE_REQUEST", + "ResponseError": "RESPONSE_ERROR", + "ResponseLaunchTemplateData": "RESPONSE_LAUNCH_TEMPLATE_DATA", + "RestoreAddressToClassicInput": "RESTORE_ADDRESS_TO_CLASSIC_INPUT", + "RestoreAddressToClassicOutput": "RESTORE_ADDRESS_TO_CLASSIC_OUTPUT", + "RestoreImageFromRecycleBinInput": "RESTORE_IMAGE_FROM_RECYCLE_BIN_INPUT", + "RestoreImageFromRecycleBinOutput": "RESTORE_IMAGE_FROM_RECYCLE_BIN_OUTPUT", + "RestoreManagedPrefixListVersionInput": "RESTORE_MANAGED_PREFIX_LIST_VERSION_INPUT", + "RestoreManagedPrefixListVersionOutput": "RESTORE_MANAGED_PREFIX_LIST_VERSION_OUTPUT", + "RestoreSnapshotFromRecycleBinInput": "RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_INPUT", + "RestoreSnapshotFromRecycleBinOutput": "RESTORE_SNAPSHOT_FROM_RECYCLE_BIN_OUTPUT", + "RestoreSnapshotTierInput": "RESTORE_SNAPSHOT_TIER_INPUT", + "RestoreSnapshotTierOutput": "RESTORE_SNAPSHOT_TIER_OUTPUT", + "RestoreVolumeFromRecycleBinInput": "RESTORE_VOLUME_FROM_RECYCLE_BIN_INPUT", + "RestoreVolumeFromRecycleBinOutput": "RESTORE_VOLUME_FROM_RECYCLE_BIN_OUTPUT", + "RevokeClientVpnIngressInput": "REVOKE_CLIENT_VPN_INGRESS_INPUT", + "RevokeClientVpnIngressOutput": "REVOKE_CLIENT_VPN_INGRESS_OUTPUT", + "RevokedSecurityGroupRule": "REVOKED_SECURITY_GROUP_RULE", + "RevokeSecurityGroupEgressInput": "REVOKE_SECURITY_GROUP_EGRESS_INPUT", + "RevokeSecurityGroupEgressOutput": "REVOKE_SECURITY_GROUP_EGRESS_OUTPUT", + "RevokeSecurityGroupIngressInput": "REVOKE_SECURITY_GROUP_INGRESS_INPUT", + "RevokeSecurityGroupIngressOutput": "REVOKE_SECURITY_GROUP_INGRESS_OUTPUT", + "RIProductDescription": "RI_PRODUCT_DESCRIPTION", + "Rir": "RIR", + "RootDeviceType": "ROOT_DEVICE_TYPE", + "Route": "ROUTE", + "RouteOrigin": "ROUTE_ORIGIN", + "RouteServer": "ROUTE_SERVER", + "RouteServerAssociation": "ROUTE_SERVER_ASSOCIATION", + "RouteServerAssociationState": "ROUTE_SERVER_ASSOCIATION_STATE", + "RouteServerBfdState": "ROUTE_SERVER_BFD_STATE", + "RouteServerBfdStatus": "ROUTE_SERVER_BFD_STATUS", + "RouteServerBgpOptions": "ROUTE_SERVER_BGP_OPTIONS", + "RouteServerBgpOptionsRequest": "ROUTE_SERVER_BGP_OPTIONS_REQUEST", + "RouteServerBgpState": "ROUTE_SERVER_BGP_STATE", + "RouteServerBgpStatus": "ROUTE_SERVER_BGP_STATUS", + "RouteServerEndpoint": "ROUTE_SERVER_ENDPOINT", + "RouteServerEndpointState": "ROUTE_SERVER_ENDPOINT_STATE", + "RouteServerPeer": "ROUTE_SERVER_PEER", + "RouteServerPeerLivenessMode": "ROUTE_SERVER_PEER_LIVENESS_MODE", + "RouteServerPeerState": "ROUTE_SERVER_PEER_STATE", + "RouteServerPersistRoutesAction": "ROUTE_SERVER_PERSIST_ROUTES_ACTION", + "RouteServerPersistRoutesState": "ROUTE_SERVER_PERSIST_ROUTES_STATE", + "RouteServerPropagation": "ROUTE_SERVER_PROPAGATION", + "RouteServerPropagationState": "ROUTE_SERVER_PROPAGATION_STATE", + "RouteServerRoute": "ROUTE_SERVER_ROUTE", + "RouteServerRouteInstallationDetail": "ROUTE_SERVER_ROUTE_INSTALLATION_DETAIL", + "RouteServerRouteInstallationStatus": "ROUTE_SERVER_ROUTE_INSTALLATION_STATUS", + "RouteServerRouteStatus": "ROUTE_SERVER_ROUTE_STATUS", + "RouteServerState": "ROUTE_SERVER_STATE", + "RouteState": "ROUTE_STATE", + "RouteTable": "ROUTE_TABLE", + "RouteTableAssociation": "ROUTE_TABLE_ASSOCIATION", + "RouteTableAssociationState": "ROUTE_TABLE_ASSOCIATION_STATE", + "RouteTableAssociationStateCode": "ROUTE_TABLE_ASSOCIATION_STATE_CODE", + "RuleAction": "RULE_ACTION", + "RuleGroupRuleOptionsPair": "RULE_GROUP_RULE_OPTIONS_PAIR", + "RuleGroupTypePair": "RULE_GROUP_TYPE_PAIR", + "RuleOption": "RULE_OPTION", + "RunInstancesInput": "RUN_INSTANCES_INPUT", + "RunInstancesMonitoringEnabled": "RUN_INSTANCES_MONITORING_ENABLED", + "RunInstancesOutput": "RUN_INSTANCES_OUTPUT", + "RunScheduledInstancesInput": "RUN_SCHEDULED_INSTANCES_INPUT", + "RunScheduledInstancesOutput": "RUN_SCHEDULED_INSTANCES_OUTPUT", + "S3ObjectTag": "S3_OBJECT_TAG", + "S3Storage": "S3_STORAGE", + "ScanResultCondition": "SCAN_RESULT_CONDITION", + "ScanResultConditionRequest": "SCAN_RESULT_CONDITION_REQUEST", + "ScanResults": "SCAN_RESULTS", + "Schedule": "SCHEDULE", + "ScheduledInstance": "SCHEDULED_INSTANCE", + "ScheduledInstanceAvailability": "SCHEDULED_INSTANCE_AVAILABILITY", + "ScheduledInstanceRecurrence": "SCHEDULED_INSTANCE_RECURRENCE", + "ScheduledInstanceRecurrenceRequest": "SCHEDULED_INSTANCE_RECURRENCE_REQUEST", + "ScheduledInstancesBlockDeviceMapping": "SCHEDULED_INSTANCES_BLOCK_DEVICE_MAPPING", + "ScheduledInstancesEbs": "SCHEDULED_INSTANCES_EBS", + "ScheduledInstancesIamInstanceProfile": "SCHEDULED_INSTANCES_IAM_INSTANCE_PROFILE", + "ScheduledInstancesIpv6Address": "SCHEDULED_INSTANCES_IPV6_ADDRESS", + "ScheduledInstancesLaunchSpecification": "SCHEDULED_INSTANCES_LAUNCH_SPECIFICATION", + "ScheduledInstancesMonitoring": "SCHEDULED_INSTANCES_MONITORING", + "ScheduledInstancesNetworkInterface": "SCHEDULED_INSTANCES_NETWORK_INTERFACE", + "ScheduledInstancesPlacement": "SCHEDULED_INSTANCES_PLACEMENT", + "ScheduledInstancesPrivateIpAddressConfig": "SCHEDULED_INSTANCES_PRIVATE_IP_ADDRESS_CONFIG", + "scope": "SCOPE", + "SearchLocalGatewayRoutesInput": "SEARCH_LOCAL_GATEWAY_ROUTES_INPUT", + "SearchLocalGatewayRoutesOutput": "SEARCH_LOCAL_GATEWAY_ROUTES_OUTPUT", + "SearchTransitGatewayMulticastGroupsInput": "SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_INPUT", + "SearchTransitGatewayMulticastGroupsOutput": "SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS_OUTPUT", + "SearchTransitGatewayRoutesInput": "SEARCH_TRANSIT_GATEWAY_ROUTES_INPUT", + "SearchTransitGatewayRoutesOutput": "SEARCH_TRANSIT_GATEWAY_ROUTES_OUTPUT", + "SecondaryInterface": "SECONDARY_INTERFACE", + "SecondaryInterfaceAttachment": "SECONDARY_INTERFACE_ATTACHMENT", + "SecondaryInterfaceIpv4Address": "SECONDARY_INTERFACE_IPV4_ADDRESS", + "SecondaryInterfacePrivateIpAddressSpecification": "SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION", + "SecondaryInterfacePrivateIpAddressSpecificationRequest": "SECONDARY_INTERFACE_PRIVATE_IP_ADDRESS_SPECIFICATION_REQUEST", + "SecondaryInterfaceStatus": "SECONDARY_INTERFACE_STATUS", + "SecondaryInterfaceType": "SECONDARY_INTERFACE_TYPE", + "SecondaryNetwork": "SECONDARY_NETWORK", + "SecondaryNetworkCidrBlockAssociationState": "SECONDARY_NETWORK_CIDR_BLOCK_ASSOCIATION_STATE", + "SecondaryNetworkIpv4CidrBlockAssociation": "SECONDARY_NETWORK_IPV4_CIDR_BLOCK_ASSOCIATION", + "SecondaryNetworkState": "SECONDARY_NETWORK_STATE", + "SecondaryNetworkType": "SECONDARY_NETWORK_TYPE", + "SecondarySubnet": "SECONDARY_SUBNET", + "SecondarySubnetCidrBlockAssociationState": "SECONDARY_SUBNET_CIDR_BLOCK_ASSOCIATION_STATE", + "SecondarySubnetIpv4CidrBlockAssociation": "SECONDARY_SUBNET_IPV4_CIDR_BLOCK_ASSOCIATION", + "SecondarySubnetState": "SECONDARY_SUBNET_STATE", + "SecureBlobAttributeValue": "SECURE_BLOB_ATTRIBUTE_VALUE", + "SecurityGroup": "SECURITY_GROUP", + "SecurityGroupForVpc": "SECURITY_GROUP_FOR_VPC", + "SecurityGroupIdentifier": "SECURITY_GROUP_IDENTIFIER", + "SecurityGroupReference": "SECURITY_GROUP_REFERENCE", + "SecurityGroupReferencingSupportValue": "SECURITY_GROUP_REFERENCING_SUPPORT_VALUE", + "SecurityGroupRule": "SECURITY_GROUP_RULE", + "SecurityGroupRuleDescription": "SECURITY_GROUP_RULE_DESCRIPTION", + "SecurityGroupRuleRequest": "SECURITY_GROUP_RULE_REQUEST", + "SecurityGroupRuleUpdate": "SECURITY_GROUP_RULE_UPDATE", + "SecurityGroupVpcAssociation": "SECURITY_GROUP_VPC_ASSOCIATION", + "SecurityGroupVpcAssociationState": "SECURITY_GROUP_VPC_ASSOCIATION_STATE", + "SelfServicePortal": "SELF_SERVICE_PORTAL", + "SendDiagnosticInterruptInput": "SEND_DIAGNOSTIC_INTERRUPT_INPUT", + "SendDiagnosticInterruptOutput": "SEND_DIAGNOSTIC_INTERRUPT_OUTPUT", + "ServiceConfiguration": "SERVICE_CONFIGURATION", + "ServiceConnectivityType": "SERVICE_CONNECTIVITY_TYPE", + "ServiceDetail": "SERVICE_DETAIL", + "ServiceLinkVirtualInterface": "SERVICE_LINK_VIRTUAL_INTERFACE", + "ServiceLinkVirtualInterfaceConfigurationState": "SERVICE_LINK_VIRTUAL_INTERFACE_CONFIGURATION_STATE", + "ServiceManaged": "SERVICE_MANAGED", + "ServiceState": "SERVICE_STATE", + "ServiceType": "SERVICE_TYPE", + "ServiceTypeDetail": "SERVICE_TYPE_DETAIL", + "SeverityLabel": "SEVERITY_LABEL", + "ShutdownBehavior": "SHUTDOWN_BEHAVIOR", + "SlotDateTimeRangeRequest": "SLOT_DATE_TIME_RANGE_REQUEST", + "SlotStartTimeRangeRequest": "SLOT_START_TIME_RANGE_REQUEST", + "Snapshot": "SNAPSHOT", + "SnapshotAttributeName": "SNAPSHOT_ATTRIBUTE_NAME", + "SnapshotBlockPublicAccessState": "SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE", + "SnapshotDetail": "SNAPSHOT_DETAIL", + "SnapshotDiskContainer": "SNAPSHOT_DISK_CONTAINER", + "SnapshotInfo": "SNAPSHOT_INFO", + "SnapshotLocationEnum": "SNAPSHOT_LOCATION_ENUM", + "SnapshotRecycleBinInfo": "SNAPSHOT_RECYCLE_BIN_INFO", + "SnapshotReturnCodes": "SNAPSHOT_RETURN_CODES", + "SnapshotState": "SNAPSHOT_STATE", + "SnapshotTaskDetail": "SNAPSHOT_TASK_DETAIL", + "SnapshotTierStatus": "SNAPSHOT_TIER_STATUS", + "SpotAllocationStrategy": "SPOT_ALLOCATION_STRATEGY", + "SpotCapacityRebalance": "SPOT_CAPACITY_REBALANCE", + "SpotDatafeedSubscription": "SPOT_DATAFEED_SUBSCRIPTION", + "SpotFleetLaunchSpecification": "SPOT_FLEET_LAUNCH_SPECIFICATION", + "SpotFleetMonitoring": "SPOT_FLEET_MONITORING", + "SpotFleetRequestConfig": "SPOT_FLEET_REQUEST_CONFIG", + "SpotFleetRequestConfigData": "SPOT_FLEET_REQUEST_CONFIG_DATA", + "SpotFleetTagSpecification": "SPOT_FLEET_TAG_SPECIFICATION", + "SpotInstanceInterruptionBehavior": "SPOT_INSTANCE_INTERRUPTION_BEHAVIOR", + "SpotInstanceRequest": "SPOT_INSTANCE_REQUEST", + "SpotInstanceState": "SPOT_INSTANCE_STATE", + "SpotInstanceStateFault": "SPOT_INSTANCE_STATE_FAULT", + "SpotInstanceStatus": "SPOT_INSTANCE_STATUS", + "SpotInstanceType": "SPOT_INSTANCE_TYPE", + "SpotMaintenanceStrategies": "SPOT_MAINTENANCE_STRATEGIES", + "SpotMarketOptions": "SPOT_MARKET_OPTIONS", + "SpotOptions": "SPOT_OPTIONS", + "SpotOptionsRequest": "SPOT_OPTIONS_REQUEST", + "SpotPlacement": "SPOT_PLACEMENT", + "SpotPlacementScore": "SPOT_PLACEMENT_SCORE", + "SpotPrice": "SPOT_PRICE", + "SpreadLevel": "SPREAD_LEVEL", + "SqlServerLicenseUsage": "SQL_SERVER_LICENSE_USAGE", + "SSEType": "SSE_TYPE", + "StaleIpPermission": "STALE_IP_PERMISSION", + "StaleSecurityGroup": "STALE_SECURITY_GROUP", + "StartDeclarativePoliciesReportInput": "START_DECLARATIVE_POLICIES_REPORT_INPUT", + "StartDeclarativePoliciesReportOutput": "START_DECLARATIVE_POLICIES_REPORT_OUTPUT", + "StartInstancesInput": "START_INSTANCES_INPUT", + "StartInstancesOutput": "START_INSTANCES_OUTPUT", + "StartNetworkInsightsAccessScopeAnalysisInput": "START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_INPUT", + "StartNetworkInsightsAccessScopeAnalysisOutput": "START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_OUTPUT", + "StartNetworkInsightsAnalysisInput": "START_NETWORK_INSIGHTS_ANALYSIS_INPUT", + "StartNetworkInsightsAnalysisOutput": "START_NETWORK_INSIGHTS_ANALYSIS_OUTPUT", + "StartVpcEndpointServicePrivateDnsVerificationInput": "START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_INPUT", + "StartVpcEndpointServicePrivateDnsVerificationOutput": "START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION_OUTPUT", + "State": "STATE", + "StateReason": "STATE_REASON", + "StaticSourcesSupportValue": "STATIC_SOURCES_SUPPORT_VALUE", + "StatisticType": "STATISTIC_TYPE", + "Status": "STATUS", + "StatusName": "STATUS_NAME", + "StatusType": "STATUS_TYPE", + "StopInstancesInput": "STOP_INSTANCES_INPUT", + "StopInstancesOutput": "STOP_INSTANCES_OUTPUT", + "Storage": "STORAGE", + "StorageLocation": "STORAGE_LOCATION", + "StorageTier": "STORAGE_TIER", + "StoreImageTaskResult": "STORE_IMAGE_TASK_RESULT", + "Subnet": "SUBNET", + "SubnetAssociation": "SUBNET_ASSOCIATION", + "SubnetCidrBlockState": "SUBNET_CIDR_BLOCK_STATE", + "SubnetCidrBlockStateCode": "SUBNET_CIDR_BLOCK_STATE_CODE", + "SubnetCidrReservation": "SUBNET_CIDR_RESERVATION", + "SubnetCidrReservationType": "SUBNET_CIDR_RESERVATION_TYPE", + "SubnetConfiguration": "SUBNET_CONFIGURATION", + "SubnetIpPrefixes": "SUBNET_IP_PREFIXES", + "SubnetIpv6CidrBlockAssociation": "SUBNET_IPV6_CIDR_BLOCK_ASSOCIATION", + "SubnetState": "SUBNET_STATE", + "Subscription": "SUBSCRIPTION", + "SuccessfulAssociationResponseObject": "SUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT", + "SuccessfulInstanceCreditSpecificationItem": "SUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM", + "SuccessfulQueuedPurchaseDeletion": "SUCCESSFUL_QUEUED_PURCHASE_DELETION", + "SuccessfulSuppressionResponseObject": "SUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT", + "SummaryStatus": "SUMMARY_STATUS", + "SupportabilityMarketType": "SUPPORTABILITY_MARKET_TYPE", + "SupportabilityScore": "SUPPORTABILITY_SCORE", + "SupportedAdditionalProcessorFeature": "SUPPORTED_ADDITIONAL_PROCESSOR_FEATURE", + "SupportedRegionDetail": "SUPPORTED_REGION_DETAIL", + "Tag": "TAG", + "TagDescription": "TAG_DESCRIPTION", + "TagFieldSpecificationRequest": "TAG_FIELD_SPECIFICATION_REQUEST", + "TagFieldSpecificationResponse": "TAG_FIELD_SPECIFICATION_RESPONSE", + "TaggableResourceType": "TAGGABLE_RESOURCE_TYPE", + "TagSpecification": "TAG_SPECIFICATION", + "TargetCapacitySpecification": "TARGET_CAPACITY_SPECIFICATION", + "TargetCapacitySpecificationRequest": "TARGET_CAPACITY_SPECIFICATION_REQUEST", + "TargetCapacityUnitType": "TARGET_CAPACITY_UNIT_TYPE", + "TargetConfiguration": "TARGET_CONFIGURATION", + "TargetConfigurationRequest": "TARGET_CONFIGURATION_REQUEST", + "TargetGroup": "TARGET_GROUP", + "TargetGroupsConfig": "TARGET_GROUPS_CONFIG", + "TargetNetwork": "TARGET_NETWORK", + "TargetReservationValue": "TARGET_RESERVATION_VALUE", + "TargetStorageTier": "TARGET_STORAGE_TIER", + "TelemetryStatus": "TELEMETRY_STATUS", + "Tenancy": "TENANCY", + "TerminateClientVpnConnectionsInput": "TERMINATE_CLIENT_VPN_CONNECTIONS_INPUT", + "TerminateClientVpnConnectionsOutput": "TERMINATE_CLIENT_VPN_CONNECTIONS_OUTPUT", + "TerminateConnectionStatus": "TERMINATE_CONNECTION_STATUS", + "TerminateInstancesInput": "TERMINATE_INSTANCES_INPUT", + "TerminateInstancesOutput": "TERMINATE_INSTANCES_OUTPUT", + "ThroughResourcesStatement": "THROUGH_RESOURCES_STATEMENT", + "ThroughResourcesStatementRequest": "THROUGH_RESOURCES_STATEMENT_REQUEST", + "TieringOperationStatus": "TIERING_OPERATION_STATUS", + "TokenState": "TOKEN_STATE", + "TotalLocalStorageGB": "TOTAL_LOCAL_STORAGE_GB", + "TotalLocalStorageGBRequest": "TOTAL_LOCAL_STORAGE_GB_REQUEST", + "TpmSupportValues": "TPM_SUPPORT_VALUES", + "TrafficDirection": "TRAFFIC_DIRECTION", + "TrafficIpAddressType": "TRAFFIC_IP_ADDRESS_TYPE", + "TrafficMirrorFilter": "TRAFFIC_MIRROR_FILTER", + "TrafficMirrorFilterRule": "TRAFFIC_MIRROR_FILTER_RULE", + "TrafficMirrorFilterRuleField": "TRAFFIC_MIRROR_FILTER_RULE_FIELD", + "TrafficMirrorNetworkService": "TRAFFIC_MIRROR_NETWORK_SERVICE", + "TrafficMirrorPortRange": "TRAFFIC_MIRROR_PORT_RANGE", + "TrafficMirrorPortRangeRequest": "TRAFFIC_MIRROR_PORT_RANGE_REQUEST", + "TrafficMirrorRuleAction": "TRAFFIC_MIRROR_RULE_ACTION", + "TrafficMirrorSession": "TRAFFIC_MIRROR_SESSION", + "TrafficMirrorSessionField": "TRAFFIC_MIRROR_SESSION_FIELD", + "TrafficMirrorTarget": "TRAFFIC_MIRROR_TARGET", + "TrafficMirrorTargetType": "TRAFFIC_MIRROR_TARGET_TYPE", + "TrafficType": "TRAFFIC_TYPE", + "TransferType": "TRANSFER_TYPE", + "TransitGateway": "TRANSIT_GATEWAY", + "TransitGatewayAssociation": "TRANSIT_GATEWAY_ASSOCIATION", + "TransitGatewayAssociationState": "TRANSIT_GATEWAY_ASSOCIATION_STATE", + "TransitGatewayAttachment": "TRANSIT_GATEWAY_ATTACHMENT", + "TransitGatewayAttachmentAssociation": "TRANSIT_GATEWAY_ATTACHMENT_ASSOCIATION", + "TransitGatewayAttachmentBgpConfiguration": "TRANSIT_GATEWAY_ATTACHMENT_BGP_CONFIGURATION", + "TransitGatewayAttachmentNatGatewaySupportState": "TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_STATE", + "TransitGatewayAttachmentNatGatewaySupportValue": "TRANSIT_GATEWAY_ATTACHMENT_NAT_GATEWAY_SUPPORT_VALUE", + "TransitGatewayAttachmentNatSystemRouteSupportValue": "TRANSIT_GATEWAY_ATTACHMENT_NAT_SYSTEM_ROUTE_SUPPORT_VALUE", + "TransitGatewayAttachmentPropagation": "TRANSIT_GATEWAY_ATTACHMENT_PROPAGATION", + "TransitGatewayAttachmentResourceType": "TRANSIT_GATEWAY_ATTACHMENT_RESOURCE_TYPE", + "TransitGatewayAttachmentState": "TRANSIT_GATEWAY_ATTACHMENT_STATE", + "TransitGatewayAttachmentStatusType": "TRANSIT_GATEWAY_ATTACHMENT_STATUS_TYPE", + "TransitGatewayClientVpnAttachment": "TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + "TransitGatewayConfigurationDescribeEndpointStructure": "TRANSIT_GATEWAY_CONFIGURATION_DESCRIBE_ENDPOINT_STRUCTURE", + "TransitGatewayConfigurationInputStructure": "TRANSIT_GATEWAY_CONFIGURATION_INPUT_STRUCTURE", + "TransitGatewayConnect": "TRANSIT_GATEWAY_CONNECT", + "TransitGatewayConnectOptions": "TRANSIT_GATEWAY_CONNECT_OPTIONS", + "TransitGatewayConnectPeer": "TRANSIT_GATEWAY_CONNECT_PEER", + "TransitGatewayConnectPeerConfiguration": "TRANSIT_GATEWAY_CONNECT_PEER_CONFIGURATION", + "TransitGatewayConnectPeerState": "TRANSIT_GATEWAY_CONNECT_PEER_STATE", + "TransitGatewayConnectRequestBgpOptions": "TRANSIT_GATEWAY_CONNECT_REQUEST_BGP_OPTIONS", + "TransitGatewayMeteringPayerType": "TRANSIT_GATEWAY_METERING_PAYER_TYPE", + "TransitGatewayMeteringPolicy": "TRANSIT_GATEWAY_METERING_POLICY", + "TransitGatewayMeteringPolicyEntry": "TRANSIT_GATEWAY_METERING_POLICY_ENTRY", + "TransitGatewayMeteringPolicyEntryState": "TRANSIT_GATEWAY_METERING_POLICY_ENTRY_STATE", + "TransitGatewayMeteringPolicyRule": "TRANSIT_GATEWAY_METERING_POLICY_RULE", + "TransitGatewayMeteringPolicyState": "TRANSIT_GATEWAY_METERING_POLICY_STATE", + "TransitGatewayMulitcastDomainAssociationState": "TRANSIT_GATEWAY_MULITCAST_DOMAIN_ASSOCIATION_STATE", + "TransitGatewayMulticastDeregisteredGroupMembers": "TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_MEMBERS", + "TransitGatewayMulticastDeregisteredGroupSources": "TRANSIT_GATEWAY_MULTICAST_DEREGISTERED_GROUP_SOURCES", + "TransitGatewayMulticastDomain": "TRANSIT_GATEWAY_MULTICAST_DOMAIN", + "TransitGatewayMulticastDomainAssociation": "TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATION", + "TransitGatewayMulticastDomainAssociations": "TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + "TransitGatewayMulticastDomainOptions": "TRANSIT_GATEWAY_MULTICAST_DOMAIN_OPTIONS", + "TransitGatewayMulticastDomainState": "TRANSIT_GATEWAY_MULTICAST_DOMAIN_STATE", + "TransitGatewayMulticastGroup": "TRANSIT_GATEWAY_MULTICAST_GROUP", + "TransitGatewayMulticastRegisteredGroupMembers": "TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_MEMBERS", + "TransitGatewayMulticastRegisteredGroupSources": "TRANSIT_GATEWAY_MULTICAST_REGISTERED_GROUP_SOURCES", + "TransitGatewayNatRule": "TRANSIT_GATEWAY_NAT_RULE", + "TransitGatewayNatRuleRequest": "TRANSIT_GATEWAY_NAT_RULE_REQUEST", + "TransitGatewayNatRuleState": "TRANSIT_GATEWAY_NAT_RULE_STATE", + "TransitGatewayOptions": "TRANSIT_GATEWAY_OPTIONS", + "TransitGatewayPeeringAttachment": "TRANSIT_GATEWAY_PEERING_ATTACHMENT", + "TransitGatewayPeeringAttachmentOptions": "TRANSIT_GATEWAY_PEERING_ATTACHMENT_OPTIONS", + "TransitGatewayPolicyRule": "TRANSIT_GATEWAY_POLICY_RULE", + "TransitGatewayPolicyRuleMetaData": "TRANSIT_GATEWAY_POLICY_RULE_META_DATA", + "TransitGatewayPolicyTable": "TRANSIT_GATEWAY_POLICY_TABLE", + "TransitGatewayPolicyTableAssociation": "TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATION", + "TransitGatewayPolicyTableEntry": "TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + "TransitGatewayPolicyTableEntryState": "TRANSIT_GATEWAY_POLICY_TABLE_ENTRY_STATE", + "TransitGatewayPolicyTableState": "TRANSIT_GATEWAY_POLICY_TABLE_STATE", + "TransitGatewayPrefixListAttachment": "TRANSIT_GATEWAY_PREFIX_LIST_ATTACHMENT", + "TransitGatewayPrefixListReference": "TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + "TransitGatewayPrefixListReferenceState": "TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE_STATE", + "TransitGatewayPropagation": "TRANSIT_GATEWAY_PROPAGATION", + "TransitGatewayPropagationState": "TRANSIT_GATEWAY_PROPAGATION_STATE", + "TransitGatewayRequestOptions": "TRANSIT_GATEWAY_REQUEST_OPTIONS", + "TransitGatewayRequestPolicyRule": "TRANSIT_GATEWAY_REQUEST_POLICY_RULE", + "TransitGatewayRequestPolicyRuleMetaData": "TRANSIT_GATEWAY_REQUEST_POLICY_RULE_META_DATA", + "TransitGatewayRoute": "TRANSIT_GATEWAY_ROUTE", + "TransitGatewayRouteAttachment": "TRANSIT_GATEWAY_ROUTE_ATTACHMENT", + "TransitGatewayRouteState": "TRANSIT_GATEWAY_ROUTE_STATE", + "TransitGatewayRouteTable": "TRANSIT_GATEWAY_ROUTE_TABLE", + "TransitGatewayRouteTableAnnouncement": "TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT", + "TransitGatewayRouteTableAnnouncementDirection": "TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_DIRECTION", + "TransitGatewayRouteTableAnnouncementState": "TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT_STATE", + "TransitGatewayRouteTableAssociation": "TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATION", + "TransitGatewayRouteTablePropagation": "TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION", + "TransitGatewayRouteTableRoute": "TRANSIT_GATEWAY_ROUTE_TABLE_ROUTE", + "TransitGatewayRouteTableState": "TRANSIT_GATEWAY_ROUTE_TABLE_STATE", + "TransitGatewayRouteType": "TRANSIT_GATEWAY_ROUTE_TYPE", + "TransitGatewayState": "TRANSIT_GATEWAY_STATE", + "TransitGatewayVpcAttachment": "TRANSIT_GATEWAY_VPC_ATTACHMENT", + "TransitGatewayVpcAttachmentOptions": "TRANSIT_GATEWAY_VPC_ATTACHMENT_OPTIONS", + "TransportProtocol": "TRANSPORT_PROTOCOL", + "TrunkInterfaceAssociation": "TRUNK_INTERFACE_ASSOCIATION", + "TrustProviderType": "TRUST_PROVIDER_TYPE", + "TunnelInsideIpVersion": "TUNNEL_INSIDE_IP_VERSION", + "TunnelOption": "TUNNEL_OPTION", + "UnassignIpv6AddressesInput": "UNASSIGN_IPV6_ADDRESSES_INPUT", + "UnassignIpv6AddressesOutput": "UNASSIGN_IPV6_ADDRESSES_OUTPUT", + "UnassignPrivateIpAddressesInput": "UNASSIGN_PRIVATE_IP_ADDRESSES_INPUT", + "UnassignPrivateIpAddressesOutput": "UNASSIGN_PRIVATE_IP_ADDRESSES_OUTPUT", + "UnassignPrivateNatGatewayAddressInput": "UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_INPUT", + "UnassignPrivateNatGatewayAddressOutput": "UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS_OUTPUT", + "UnlimitedSupportedInstanceFamily": "UNLIMITED_SUPPORTED_INSTANCE_FAMILY", + "UnlockSnapshotInput": "UNLOCK_SNAPSHOT_INPUT", + "UnlockSnapshotOutput": "UNLOCK_SNAPSHOT_OUTPUT", + "UnmonitorInstancesInput": "UNMONITOR_INSTANCES_INPUT", + "UnmonitorInstancesOutput": "UNMONITOR_INSTANCES_OUTPUT", + "UnsuccessfulAssociationResponseObject": "UNSUCCESSFUL_ASSOCIATION_RESPONSE_OBJECT", + "UnsuccessfulInstanceCreditSpecificationErrorCode": "UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ERROR_CODE", + "UnsuccessfulInstanceCreditSpecificationItem": "UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM", + "UnsuccessfulInstanceCreditSpecificationItemError": "UNSUCCESSFUL_INSTANCE_CREDIT_SPECIFICATION_ITEM_ERROR", + "UnsuccessfulItem": "UNSUCCESSFUL_ITEM", + "UnsuccessfulItemError": "UNSUCCESSFUL_ITEM_ERROR", + "UnsuccessfulSuppressionResponseObject": "UNSUCCESSFUL_SUPPRESSION_RESPONSE_OBJECT", + "UpdateCapacityManagerMonitoredTagKeysInput": "UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_INPUT", + "UpdateCapacityManagerMonitoredTagKeysOutput": "UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS_OUTPUT", + "UpdateCapacityManagerOrganizationsAccessInput": "UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_INPUT", + "UpdateCapacityManagerOrganizationsAccessOutput": "UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS_OUTPUT", + "UpdateInterruptibleCapacityReservationAllocationInput": "UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_INPUT", + "UpdateInterruptibleCapacityReservationAllocationOutput": "UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION_OUTPUT", + "UpdateSecurityGroupRuleDescriptionsEgressInput": "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_INPUT", + "UpdateSecurityGroupRuleDescriptionsEgressOutput": "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS_OUTPUT", + "UpdateSecurityGroupRuleDescriptionsIngressInput": "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_INPUT", + "UpdateSecurityGroupRuleDescriptionsIngressOutput": "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS_OUTPUT", + "UsageClassType": "USAGE_CLASS_TYPE", + "UserBucket": "USER_BUCKET", + "UserBucketDetails": "USER_BUCKET_DETAILS", + "UserData": "USER_DATA", + "UserIdGroupPair": "USER_ID_GROUP_PAIR", + "UserTrustProviderType": "USER_TRUST_PROVIDER_TYPE", + "ValidateSecurityGroupQuotasForInterfaceInput": "VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_INPUT", + "ValidateSecurityGroupQuotasForInterfaceOutput": "VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE_OUTPUT", + "ValidationError": "VALIDATION_ERROR", + "ValidationWarning": "VALIDATION_WARNING", + "VCpuCountRange": "V_CPU_COUNT_RANGE", + "VCpuCountRangeRequest": "V_CPU_COUNT_RANGE_REQUEST", + "VCpuInfo": "V_CPU_INFO", + "VerificationMethod": "VERIFICATION_METHOD", + "VerifiedAccessEndpoint": "VERIFIED_ACCESS_ENDPOINT", + "VerifiedAccessEndpointAttachmentType": "VERIFIED_ACCESS_ENDPOINT_ATTACHMENT_TYPE", + "VerifiedAccessEndpointCidrOptions": "VERIFIED_ACCESS_ENDPOINT_CIDR_OPTIONS", + "VerifiedAccessEndpointEniOptions": "VERIFIED_ACCESS_ENDPOINT_ENI_OPTIONS", + "VerifiedAccessEndpointLoadBalancerOptions": "VERIFIED_ACCESS_ENDPOINT_LOAD_BALANCER_OPTIONS", + "VerifiedAccessEndpointPortRange": "VERIFIED_ACCESS_ENDPOINT_PORT_RANGE", + "VerifiedAccessEndpointProtocol": "VERIFIED_ACCESS_ENDPOINT_PROTOCOL", + "VerifiedAccessEndpointRdsOptions": "VERIFIED_ACCESS_ENDPOINT_RDS_OPTIONS", + "VerifiedAccessEndpointStatus": "VERIFIED_ACCESS_ENDPOINT_STATUS", + "VerifiedAccessEndpointStatusCode": "VERIFIED_ACCESS_ENDPOINT_STATUS_CODE", + "VerifiedAccessEndpointTarget": "VERIFIED_ACCESS_ENDPOINT_TARGET", + "VerifiedAccessEndpointType": "VERIFIED_ACCESS_ENDPOINT_TYPE", + "VerifiedAccessGroup": "VERIFIED_ACCESS_GROUP", + "VerifiedAccessInstance": "VERIFIED_ACCESS_INSTANCE", + "VerifiedAccessInstanceCustomSubDomain": "VERIFIED_ACCESS_INSTANCE_CUSTOM_SUB_DOMAIN", + "VerifiedAccessInstanceLoggingConfiguration": "VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION", + "VerifiedAccessInstanceOpenVpnClientConfiguration": "VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION", + "VerifiedAccessInstanceOpenVpnClientConfigurationRoute": "VERIFIED_ACCESS_INSTANCE_OPEN_VPN_CLIENT_CONFIGURATION_ROUTE", + "VerifiedAccessInstanceUserTrustProviderClientConfiguration": "VERIFIED_ACCESS_INSTANCE_USER_TRUST_PROVIDER_CLIENT_CONFIGURATION", + "VerifiedAccessLogCloudWatchLogsDestination": "VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION", + "VerifiedAccessLogCloudWatchLogsDestinationOptions": "VERIFIED_ACCESS_LOG_CLOUD_WATCH_LOGS_DESTINATION_OPTIONS", + "VerifiedAccessLogDeliveryStatus": "VERIFIED_ACCESS_LOG_DELIVERY_STATUS", + "VerifiedAccessLogDeliveryStatusCode": "VERIFIED_ACCESS_LOG_DELIVERY_STATUS_CODE", + "VerifiedAccessLogKinesisDataFirehoseDestination": "VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION", + "VerifiedAccessLogKinesisDataFirehoseDestinationOptions": "VERIFIED_ACCESS_LOG_KINESIS_DATA_FIREHOSE_DESTINATION_OPTIONS", + "VerifiedAccessLogOptions": "VERIFIED_ACCESS_LOG_OPTIONS", + "VerifiedAccessLogs": "VERIFIED_ACCESS_LOGS", + "VerifiedAccessLogS3Destination": "VERIFIED_ACCESS_LOG_S3_DESTINATION", + "VerifiedAccessLogS3DestinationOptions": "VERIFIED_ACCESS_LOG_S3_DESTINATION_OPTIONS", + "VerifiedAccessSseSpecificationRequest": "VERIFIED_ACCESS_SSE_SPECIFICATION_REQUEST", + "VerifiedAccessSseSpecificationResponse": "VERIFIED_ACCESS_SSE_SPECIFICATION_RESPONSE", + "VerifiedAccessTrustProvider": "VERIFIED_ACCESS_TRUST_PROVIDER", + "VerifiedAccessTrustProviderCondensed": "VERIFIED_ACCESS_TRUST_PROVIDER_CONDENSED", + "VgwTelemetry": "VGW_TELEMETRY", + "VirtualizationType": "VIRTUALIZATION_TYPE", + "Volume": "VOLUME", + "VolumeAttachment": "VOLUME_ATTACHMENT", + "VolumeAttachmentState": "VOLUME_ATTACHMENT_STATE", + "VolumeAttributeName": "VOLUME_ATTRIBUTE_NAME", + "VolumeDetail": "VOLUME_DETAIL", + "VolumeModification": "VOLUME_MODIFICATION", + "VolumeModificationState": "VOLUME_MODIFICATION_STATE", + "VolumeRecycleBinInfo": "VOLUME_RECYCLE_BIN_INFO", + "VolumeState": "VOLUME_STATE", + "VolumeStatusAction": "VOLUME_STATUS_ACTION", + "VolumeStatusAttachmentStatus": "VOLUME_STATUS_ATTACHMENT_STATUS", + "VolumeStatusDetails": "VOLUME_STATUS_DETAILS", + "VolumeStatusEvent": "VOLUME_STATUS_EVENT", + "VolumeStatusInfo": "VOLUME_STATUS_INFO", + "VolumeStatusInfoStatus": "VOLUME_STATUS_INFO_STATUS", + "VolumeStatusItem": "VOLUME_STATUS_ITEM", + "VolumeStatusName": "VOLUME_STATUS_NAME", + "VolumeType": "VOLUME_TYPE", + "Vpc": "VPC", + "VpcAttachment": "VPC_ATTACHMENT", + "VpcAttributeName": "VPC_ATTRIBUTE_NAME", + "VpcBlockPublicAccessExclusion": "VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + "VpcBlockPublicAccessExclusionsAllowed": "VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS_ALLOWED", + "VpcBlockPublicAccessExclusionState": "VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION_STATE", + "VpcBlockPublicAccessOptions": "VPC_BLOCK_PUBLIC_ACCESS_OPTIONS", + "VpcBlockPublicAccessState": "VPC_BLOCK_PUBLIC_ACCESS_STATE", + "VpcCidrBlockAssociation": "VPC_CIDR_BLOCK_ASSOCIATION", + "VpcCidrBlockState": "VPC_CIDR_BLOCK_STATE", + "VpcCidrBlockStateCode": "VPC_CIDR_BLOCK_STATE_CODE", + "VpcClassicLink": "VPC_CLASSIC_LINK", + "VpcEncryptionControl": "VPC_ENCRYPTION_CONTROL", + "VpcEncryptionControlConfiguration": "VPC_ENCRYPTION_CONTROL_CONFIGURATION", + "VpcEncryptionControlExclusion": "VPC_ENCRYPTION_CONTROL_EXCLUSION", + "VpcEncryptionControlExclusions": "VPC_ENCRYPTION_CONTROL_EXCLUSIONS", + "VpcEncryptionControlExclusionState": "VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE", + "VpcEncryptionControlExclusionStateInput": "VPC_ENCRYPTION_CONTROL_EXCLUSION_STATE_INPUT", + "VpcEncryptionControlMode": "VPC_ENCRYPTION_CONTROL_MODE", + "VpcEncryptionControlState": "VPC_ENCRYPTION_CONTROL_STATE", + "VpcEncryptionNonCompliantResource": "VPC_ENCRYPTION_NON_COMPLIANT_RESOURCE", + "VpcEndpoint": "VPC_ENDPOINT", + "VpcEndpointAssociation": "VPC_ENDPOINT_ASSOCIATION", + "VpcEndpointConnection": "VPC_ENDPOINT_CONNECTION", + "VpcEndpointType": "VPC_ENDPOINT_TYPE", + "VpcIpv6CidrBlockAssociation": "VPC_IPV6_CIDR_BLOCK_ASSOCIATION", + "VpcPeeringConnection": "VPC_PEERING_CONNECTION", + "VpcPeeringConnectionOptionsDescription": "VPC_PEERING_CONNECTION_OPTIONS_DESCRIPTION", + "VpcPeeringConnectionStateReason": "VPC_PEERING_CONNECTION_STATE_REASON", + "VpcPeeringConnectionStateReasonCode": "VPC_PEERING_CONNECTION_STATE_REASON_CODE", + "VpcPeeringConnectionVpcInfo": "VPC_PEERING_CONNECTION_VPC_INFO", + "VpcState": "VPC_STATE", + "VpcTenancy": "VPC_TENANCY", + "VpnConcentrator": "VPN_CONCENTRATOR", + "VpnConcentratorType": "VPN_CONCENTRATOR_TYPE", + "VpnConnection": "VPN_CONNECTION", + "VpnConnectionDeviceType": "VPN_CONNECTION_DEVICE_TYPE", + "VpnConnectionOptions": "VPN_CONNECTION_OPTIONS", + "VpnConnectionOptionsSpecification": "VPN_CONNECTION_OPTIONS_SPECIFICATION", + "VpnEcmpSupportValue": "VPN_ECMP_SUPPORT_VALUE", + "VpnGateway": "VPN_GATEWAY", + "VpnProtocol": "VPN_PROTOCOL", + "VpnState": "VPN_STATE", + "VpnStaticRoute": "VPN_STATIC_ROUTE", + "VpnStaticRouteSource": "VPN_STATIC_ROUTE_SOURCE", + "VpnTunnelBandwidth": "VPN_TUNNEL_BANDWIDTH", + "VpnTunnelLogOptions": "VPN_TUNNEL_LOG_OPTIONS", + "VpnTunnelLogOptionsSpecification": "VPN_TUNNEL_LOG_OPTIONS_SPECIFICATION", + "VpnTunnelOptionsSpecification": "VPN_TUNNEL_OPTIONS_SPECIFICATION", + "VpnTunnelProvisioningStatus": "VPN_TUNNEL_PROVISIONING_STATUS", + "WeekDay": "WEEK_DAY", + "WithdrawByoipCidrInput": "WITHDRAW_BYOIP_CIDR_INPUT", + "WithdrawByoipCidrOutput": "WITHDRAW_BYOIP_CIDR_OUTPUT", + "ZeroSizePreference": "ZERO_SIZE_PREFERENCE", + }, + shape_names=frozenset( + { + "AcceleratorCount", + "AcceleratorCountRequest", + "AcceleratorManufacturer", + "AcceleratorName", + "AcceleratorTotalMemoryMiB", + "AcceleratorTotalMemoryMiBRequest", + "AcceleratorType", + "AcceptAddressTransferInput", + "AcceptAddressTransferOutput", + "AcceptCapacityReservationBillingOwnershipInput", + "AcceptCapacityReservationBillingOwnershipOutput", + "AcceptReservedInstancesExchangeQuoteInput", + "AcceptReservedInstancesExchangeQuoteOutput", + "AcceptTransitGatewayClientVpnAttachmentInput", + "AcceptTransitGatewayClientVpnAttachmentOutput", + "AcceptTransitGatewayMulticastDomainAssociationsInput", + "AcceptTransitGatewayMulticastDomainAssociationsOutput", + "AcceptTransitGatewayPeeringAttachmentInput", + "AcceptTransitGatewayPeeringAttachmentOutput", + "AcceptTransitGatewayVpcAttachmentInput", + "AcceptTransitGatewayVpcAttachmentOutput", + "AcceptVpcEndpointConnectionsInput", + "AcceptVpcEndpointConnectionsOutput", + "AcceptVpcPeeringConnectionInput", + "AcceptVpcPeeringConnectionOutput", + "AccessScopeAnalysisFinding", + "AccessScopePath", + "AccessScopePathRequest", + "AccountAttribute", + "AccountAttributeName", + "AccountAttributeValue", + "AccountVpcEncryptionControl", + "AccountVpcEncryptionControlExclusions", + "AccountVpcEncryptionControlMode", + "AccountVpcEncryptionControlState", + "ActiveInstance", + "ActiveVpnTunnelStatus", + "ActivityStatus", + "AddIpamOperatingRegion", + "AddIpamOrganizationalUnitExclusion", + "AddPrefixListEntry", + "AddedPrincipal", + "AdditionalDetail", + "Address", + "AddressAttribute", + "AddressAttributeName", + "AddressFamily", + "AddressTransfer", + "AddressTransferStatus", + "AdvertiseByoipCidrInput", + "AdvertiseByoipCidrOutput", + "Affinity", + "AggregationStatusEnum", + "AllocateAddressInput", + "AllocateAddressOutput", + "AllocateHostsInput", + "AllocateHostsOutput", + "AllocateIpamPoolCidrInput", + "AllocateIpamPoolCidrOutput", + "AllocationState", + "AllocationStrategy", + "AllocationType", + "AllowedImagesSettingsDisabledState", + "AllowedImagesSettingsEnabledState", + "AllowedPrincipal", + "AllowsMultipleInstanceTypes", + "AlternatePathHint", + "AmdSevSnp", + "AmdSevSnpSpecification", + "AnalysisAclRule", + "AnalysisComponent", + "AnalysisLoadBalancerListener", + "AnalysisLoadBalancerTarget", + "AnalysisPacketHeader", + "AnalysisRouteTableRoute", + "AnalysisSecurityGroupRule", + "AnalysisStatus", + "AnalysisTransitGatewayPolicyTableEntry", + "ApplianceModeSupportValue", + "ApplicationStatus", + "ApplicationStatusCheckAssociationObject", + "ApplicationStatusCheckEnum", + "ApplicationStatusCheckResponseObject", + "ApplicationStatusDetail", + "ApplicationStatusEnum", + "ApplicationStatusReason", + "ApplicationStatusSummary", + "ApplicationStatusesResponseType", + "ApplyCancellationCharges", + "ApplySecurityGroupsToClientVpnTargetNetworkInput", + "ApplySecurityGroupsToClientVpnTargetNetworkOutput", + "ArchitectureType", + "ArchitectureValues", + "AsnAssociation", + "AsnAssociationState", + "AsnAuthorizationContext", + "AsnState", + "AssignIpv6AddressesInput", + "AssignIpv6AddressesOutput", + "AssignPrivateIpAddressesInput", + "AssignPrivateIpAddressesOutput", + "AssignPrivateNatGatewayAddressInput", + "AssignPrivateNatGatewayAddressOutput", + "AssignedPrivateIpAddress", + "AssociateAddressInput", + "AssociateAddressOutput", + "AssociateApplicationStatusCheckInput", + "AssociateApplicationStatusCheckOutput", + "AssociateCapacityReservationBillingOwnerInput", + "AssociateCapacityReservationBillingOwnerOutput", + "AssociateClientVpnTargetNetworkInput", + "AssociateClientVpnTargetNetworkOutput", + "AssociateDhcpOptionsInput", + "AssociateDhcpOptionsOutput", + "AssociateEnclaveCertificateIamRoleInput", + "AssociateEnclaveCertificateIamRoleOutput", + "AssociateIamInstanceProfileInput", + "AssociateIamInstanceProfileOutput", + "AssociateInstanceEventWindowInput", + "AssociateInstanceEventWindowOutput", + "AssociateIpamByoasnInput", + "AssociateIpamByoasnOutput", + "AssociateIpamResourceDiscoveryInput", + "AssociateIpamResourceDiscoveryOutput", + "AssociateNatGatewayAddressInput", + "AssociateNatGatewayAddressOutput", + "AssociateRouteServerInput", + "AssociateRouteServerOutput", + "AssociateRouteTableInput", + "AssociateRouteTableOutput", + "AssociateSecurityGroupVpcInput", + "AssociateSecurityGroupVpcOutput", + "AssociateSubnetCidrBlockInput", + "AssociateSubnetCidrBlockOutput", + "AssociateTransitGatewayMulticastDomainInput", + "AssociateTransitGatewayMulticastDomainOutput", + "AssociateTransitGatewayPolicyTableInput", + "AssociateTransitGatewayPolicyTableOutput", + "AssociateTransitGatewayRouteTableInput", + "AssociateTransitGatewayRouteTableOutput", + "AssociateTrunkInterfaceInput", + "AssociateTrunkInterfaceOutput", + "AssociateVpcCidrBlockInput", + "AssociateVpcCidrBlockOutput", + "AssociatedNetworkType", + "AssociatedRole", + "AssociatedTargetNetwork", + "AssociationStatus", + "AssociationStatusCode", + "AssociationTypeEnum", + "AthenaIntegration", + "AttachClassicLinkVpcInput", + "AttachClassicLinkVpcOutput", + "AttachImageWatermarkInput", + "AttachImageWatermarkOutput", + "AttachInternetGatewayInput", + "AttachInternetGatewayOutput", + "AttachNetworkInterfaceInput", + "AttachNetworkInterfaceOutput", + "AttachVerifiedAccessTrustProviderInput", + "AttachVerifiedAccessTrustProviderOutput", + "AttachVolumeInput", + "AttachVolumeOutput", + "AttachVpnGatewayInput", + "AttachVpnGatewayOutput", + "AttachmentEnaSrdSpecification", + "AttachmentEnaSrdUdpSpecification", + "AttachmentLimitType", + "AttachmentStatus", + "AttributeBooleanValue", + "AttributeSummary", + "AttributeValue", + "AuthorizationRule", + "AuthorizeClientVpnIngressInput", + "AuthorizeClientVpnIngressOutput", + "AuthorizeSecurityGroupEgressInput", + "AuthorizeSecurityGroupEgressOutput", + "AuthorizeSecurityGroupIngressInput", + "AuthorizeSecurityGroupIngressOutput", + "AutoAcceptSharedAssociationsValue", + "AutoAcceptSharedAttachmentsValue", + "AutoPlacement", + "AutoProvisionZonesState", + "AutoScalingIpsState", + "AvailabilityMode", + "AvailabilityZone", + "AvailabilityZoneAddress", + "AvailabilityZoneGeography", + "AvailabilityZoneMessage", + "AvailabilityZoneOptInStatus", + "AvailabilityZoneState", + "AvailabilityZoneSubGeography", + "AvailableCapacity", + "BandwidthWeightingType", + "BareMetal", + "BaselineEbsBandwidthMbps", + "BaselineEbsBandwidthMbpsRequest", + "BaselinePerformanceFactors", + "BaselinePerformanceFactorsRequest", + "BatchModifyIpamRoutingPolicyRegistrationsInput", + "BatchModifyIpamRoutingPolicyRegistrationsOutput", + "BatchState", + "BgpStatus", + "BlockDeviceMapping", + "BlockDeviceMappingResponse", + "BlockPublicAccessMode", + "BlockPublicAccessStates", + "BootModeOverrideValues", + "BootModeType", + "BootModeValues", + "BundleInstanceInput", + "BundleInstanceOutput", + "BundleTask", + "BundleTaskError", + "BundleTaskState", + "BurstablePerformance", + "Byoasn", + "ByoipCidr", + "ByoipCidrState", + "CallerRole", + "CancelBatchErrorCode", + "CancelBundleTaskInput", + "CancelBundleTaskOutput", + "CancelCapacityReservationFleetError", + "CancelCapacityReservationFleetsInput", + "CancelCapacityReservationFleetsOutput", + "CancelCapacityReservationInput", + "CancelCapacityReservationOutput", + "CancelConversionTaskInput", + "CancelConversionTaskOutput", + "CancelDeclarativePoliciesReportInput", + "CancelDeclarativePoliciesReportOutput", + "CancelExportTaskInput", + "CancelExportTaskOutput", + "CancelImageLaunchPermissionInput", + "CancelImageLaunchPermissionOutput", + "CancelImportTaskInput", + "CancelImportTaskOutput", + "CancelReservedInstancesListingInput", + "CancelReservedInstancesListingOutput", + "CancelSpotFleetRequestsError", + "CancelSpotFleetRequestsErrorItem", + "CancelSpotFleetRequestsInput", + "CancelSpotFleetRequestsOutput", + "CancelSpotFleetRequestsSuccessItem", + "CancelSpotInstanceRequestState", + "CancelSpotInstanceRequestsInput", + "CancelSpotInstanceRequestsOutput", + "CancellationTerms", + "CancelledSpotInstanceRequest", + "CapacityAllocation", + "CapacityAllocationMetadataEntry", + "CapacityBlock", + "CapacityBlockExtension", + "CapacityBlockExtensionOffering", + "CapacityBlockExtensionStatus", + "CapacityBlockInterconnectStatus", + "CapacityBlockOffering", + "CapacityBlockResourceState", + "CapacityBlockStatus", + "CapacityManagerCondition", + "CapacityManagerDataExportResponse", + "CapacityManagerDataExportStatus", + "CapacityManagerDimension", + "CapacityManagerMonitoredTagKey", + "CapacityManagerMonitoredTagKeyStatus", + "CapacityManagerStatus", + "CapacityManagerSupportabilityScore", + "CapacityManagerTagDimension", + "CapacityReservation", + "CapacityReservationAdjustmentDetails", + "CapacityReservationAdjustmentStatus", + "CapacityReservationBillingRequest", + "CapacityReservationBillingRequestStatus", + "CapacityReservationCancellationQuote", + "CapacityReservationCancellationQuoteState", + "CapacityReservationCommitmentInfo", + "CapacityReservationConfiguration", + "CapacityReservationDeliveryPreference", + "CapacityReservationFleet", + "CapacityReservationFleetCancellationState", + "CapacityReservationFleetState", + "CapacityReservationGroup", + "CapacityReservationInfo", + "CapacityReservationInstancePlatform", + "CapacityReservationLaunchStatus", + "CapacityReservationModificationQuote", + "CapacityReservationModificationQuoteState", + "CapacityReservationOptions", + "CapacityReservationOptionsRequest", + "CapacityReservationPreference", + "CapacityReservationSpecification", + "CapacityReservationSpecificationResponse", + "CapacityReservationState", + "CapacityReservationStatus", + "CapacityReservationTarget", + "CapacityReservationTargetResponse", + "CapacityReservationTenancy", + "CapacityReservationTopology", + "CapacityReservationType", + "CapacityTenancy", + "CapacityUnit", + "CarrierGateway", + "CarrierGatewayState", + "CertificateAuthentication", + "CertificateAuthenticationRequest", + "ChronologicalOrder", + "CidrAuthorizationContext", + "CidrBlock", + "ClassicLinkDnsSupport", + "ClassicLinkInstance", + "ClassicLoadBalancer", + "ClassicLoadBalancersConfig", + "ClientCertificateRevocationListStatus", + "ClientCertificateRevocationListStatusCode", + "ClientConnectOptions", + "ClientConnectResponseOptions", + "ClientData", + "ClientLoginBannerOptions", + "ClientLoginBannerResponseOptions", + "ClientRouteEnforcementOptions", + "ClientRouteEnforcementResponseOptions", + "ClientVpnAuthentication", + "ClientVpnAuthenticationRequest", + "ClientVpnAuthenticationType", + "ClientVpnAuthorizationPolicyShadowMode", + "ClientVpnAuthorizationPolicyStatus", + "ClientVpnAuthorizationRuleStatus", + "ClientVpnAuthorizationRuleStatusCode", + "ClientVpnConnection", + "ClientVpnConnectionStatus", + "ClientVpnConnectionStatusCode", + "ClientVpnDeviceTrustProviderType", + "ClientVpnEndpoint", + "ClientVpnEndpointAttributeStatus", + "ClientVpnEndpointAttributeStatusCode", + "ClientVpnEndpointStatus", + "ClientVpnEndpointStatusCode", + "ClientVpnRoute", + "ClientVpnRouteStatus", + "ClientVpnRouteStatusCode", + "ClientVpnTrustProvider", + "ClientVpnTrustProviderRequest", + "CloudWatchLogOptions", + "CloudWatchLogOptionsSpecification", + "CoipAddressUsage", + "CoipCidr", + "CoipPool", + "Comparison", + "ConfirmProductInstanceInput", + "ConfirmProductInstanceOutput", + "ConnectionLogOptions", + "ConnectionLogResponseOptions", + "ConnectionNotification", + "ConnectionNotificationState", + "ConnectionNotificationType", + "ConnectionTrackingConfiguration", + "ConnectionTrackingSpecification", + "ConnectionTrackingSpecificationRequest", + "ConnectionTrackingSpecificationResponse", + "ConnectivityType", + "ContainerFormat", + "ConversionTask", + "ConversionTaskState", + "CopyFpgaImageInput", + "CopyFpgaImageOutput", + "CopyImageInput", + "CopyImageOutput", + "CopySnapshotInput", + "CopySnapshotOutput", + "CopyTagsFromSource", + "CopyVolumesInput", + "CopyVolumesOutput", + "CpuManufacturer", + "CpuOptions", + "CpuOptionsRequest", + "CpuPerformanceFactor", + "CpuPerformanceFactorRequest", + "CreateApplicationStatusCheckInput", + "CreateApplicationStatusCheckOutput", + "CreateCapacityManagerDataExportInput", + "CreateCapacityManagerDataExportOutput", + "CreateCapacityReservationBySplittingInput", + "CreateCapacityReservationBySplittingOutput", + "CreateCapacityReservationCancellationQuoteInput", + "CreateCapacityReservationCancellationQuoteOutput", + "CreateCapacityReservationDateChangeQuoteInput", + "CreateCapacityReservationDateChangeQuoteOutput", + "CreateCapacityReservationFleetInput", + "CreateCapacityReservationFleetOutput", + "CreateCapacityReservationInput", + "CreateCapacityReservationOutput", + "CreateCarrierGatewayInput", + "CreateCarrierGatewayOutput", + "CreateClientVpnEndpointInput", + "CreateClientVpnEndpointOutput", + "CreateClientVpnRouteInput", + "CreateClientVpnRouteOutput", + "CreateCoipCidrInput", + "CreateCoipCidrOutput", + "CreateCoipPoolInput", + "CreateCoipPoolOutput", + "CreateCustomerGatewayInput", + "CreateCustomerGatewayOutput", + "CreateDefaultSubnetInput", + "CreateDefaultSubnetOutput", + "CreateDefaultVpcInput", + "CreateDefaultVpcOutput", + "CreateDelegateMacVolumeOwnershipTaskInput", + "CreateDelegateMacVolumeOwnershipTaskOutput", + "CreateDhcpOptionsInput", + "CreateDhcpOptionsOutput", + "CreateEgressOnlyInternetGatewayInput", + "CreateEgressOnlyInternetGatewayOutput", + "CreateFleetError", + "CreateFleetInput", + "CreateFleetInstance", + "CreateFleetOutput", + "CreateFlowLogsInput", + "CreateFlowLogsOutput", + "CreateFpgaImageInput", + "CreateFpgaImageOutput", + "CreateImageInput", + "CreateImageOutput", + "CreateImageUsageReportInput", + "CreateImageUsageReportOutput", + "CreateInstanceConnectEndpointInput", + "CreateInstanceConnectEndpointOutput", + "CreateInstanceEventWindowInput", + "CreateInstanceEventWindowOutput", + "CreateInstanceExportTaskInput", + "CreateInstanceExportTaskOutput", + "CreateInternetGatewayInput", + "CreateInternetGatewayOutput", + "CreateInterruptibleCapacityReservationAllocationInput", + "CreateInterruptibleCapacityReservationAllocationOutput", + "CreateIpamExternalResourceVerificationTokenInput", + "CreateIpamExternalResourceVerificationTokenOutput", + "CreateIpamInput", + "CreateIpamInternetRegistryAssociationInput", + "CreateIpamInternetRegistryAssociationOutput", + "CreateIpamOutput", + "CreateIpamPolicyInput", + "CreateIpamPolicyOutput", + "CreateIpamPoolInput", + "CreateIpamPoolOutput", + "CreateIpamPrefixListResolverInput", + "CreateIpamPrefixListResolverOutput", + "CreateIpamPrefixListResolverTargetInput", + "CreateIpamPrefixListResolverTargetOutput", + "CreateIpamResourceDiscoveryInput", + "CreateIpamResourceDiscoveryOutput", + "CreateIpamRoutingPolicyRegistrationInput", + "CreateIpamRoutingPolicyRegistrationOutput", + "CreateIpamScopeInput", + "CreateIpamScopeOutput", + "CreateKeyPairInput", + "CreateKeyPairOutput", + "CreateLaunchTemplateInput", + "CreateLaunchTemplateOutput", + "CreateLaunchTemplateVersionInput", + "CreateLaunchTemplateVersionOutput", + "CreateLocalGatewayRouteInput", + "CreateLocalGatewayRouteOutput", + "CreateLocalGatewayRouteTableInput", + "CreateLocalGatewayRouteTableOutput", + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput", + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput", + "CreateLocalGatewayRouteTableVpcAssociationInput", + "CreateLocalGatewayRouteTableVpcAssociationOutput", + "CreateLocalGatewayVirtualInterfaceGroupInput", + "CreateLocalGatewayVirtualInterfaceGroupOutput", + "CreateLocalGatewayVirtualInterfaceInput", + "CreateLocalGatewayVirtualInterfaceOutput", + "CreateMacSystemIntegrityProtectionModificationTaskInput", + "CreateMacSystemIntegrityProtectionModificationTaskOutput", + "CreateManagedPrefixListInput", + "CreateManagedPrefixListOutput", + "CreateNatGatewayInput", + "CreateNatGatewayOutput", + "CreateNetworkAclEntryInput", + "CreateNetworkAclEntryOutput", + "CreateNetworkAclInput", + "CreateNetworkAclOutput", + "CreateNetworkInsightsAccessScopeInput", + "CreateNetworkInsightsAccessScopeOutput", + "CreateNetworkInsightsPathInput", + "CreateNetworkInsightsPathOutput", + "CreateNetworkInterfaceInput", + "CreateNetworkInterfaceOutput", + "CreateNetworkInterfacePermissionInput", + "CreateNetworkInterfacePermissionOutput", + "CreatePlacementGroupInput", + "CreatePlacementGroupOutput", + "CreatePublicIpv4PoolInput", + "CreatePublicIpv4PoolOutput", + "CreateReplaceRootVolumeTaskInput", + "CreateReplaceRootVolumeTaskOutput", + "CreateReservedInstancesListingInput", + "CreateReservedInstancesListingOutput", + "CreateRestoreImageTaskInput", + "CreateRestoreImageTaskOutput", + "CreateRouteInput", + "CreateRouteOutput", + "CreateRouteServerEndpointInput", + "CreateRouteServerEndpointOutput", + "CreateRouteServerInput", + "CreateRouteServerOutput", + "CreateRouteServerPeerInput", + "CreateRouteServerPeerOutput", + "CreateRouteTableInput", + "CreateRouteTableOutput", + "CreateSecondaryNetworkInput", + "CreateSecondaryNetworkOutput", + "CreateSecondarySubnetInput", + "CreateSecondarySubnetOutput", + "CreateSecurityGroupInput", + "CreateSecurityGroupOutput", + "CreateSnapshotInput", + "CreateSnapshotOutput", + "CreateSnapshotsInput", + "CreateSnapshotsOutput", + "CreateSpotDatafeedSubscriptionInput", + "CreateSpotDatafeedSubscriptionOutput", + "CreateStoreImageTaskInput", + "CreateStoreImageTaskOutput", + "CreateSubnetCidrReservationInput", + "CreateSubnetCidrReservationOutput", + "CreateSubnetInput", + "CreateSubnetOutput", + "CreateTagsInput", + "CreateTagsOutput", + "CreateTrafficMirrorFilterInput", + "CreateTrafficMirrorFilterOutput", + "CreateTrafficMirrorFilterRuleInput", + "CreateTrafficMirrorFilterRuleOutput", + "CreateTrafficMirrorSessionInput", + "CreateTrafficMirrorSessionOutput", + "CreateTrafficMirrorTargetInput", + "CreateTrafficMirrorTargetOutput", + "CreateTransitGatewayConnectInput", + "CreateTransitGatewayConnectOutput", + "CreateTransitGatewayConnectPeerInput", + "CreateTransitGatewayConnectPeerOutput", + "CreateTransitGatewayConnectRequestOptions", + "CreateTransitGatewayInput", + "CreateTransitGatewayMeteringPolicyEntryInput", + "CreateTransitGatewayMeteringPolicyEntryOutput", + "CreateTransitGatewayMeteringPolicyInput", + "CreateTransitGatewayMeteringPolicyOutput", + "CreateTransitGatewayMulticastDomainInput", + "CreateTransitGatewayMulticastDomainOutput", + "CreateTransitGatewayMulticastDomainRequestOptions", + "CreateTransitGatewayOutput", + "CreateTransitGatewayPeeringAttachmentInput", + "CreateTransitGatewayPeeringAttachmentOutput", + "CreateTransitGatewayPeeringAttachmentRequestOptions", + "CreateTransitGatewayPolicyTableEntryInput", + "CreateTransitGatewayPolicyTableEntryOutput", + "CreateTransitGatewayPolicyTableInput", + "CreateTransitGatewayPolicyTableOutput", + "CreateTransitGatewayPrefixListReferenceInput", + "CreateTransitGatewayPrefixListReferenceOutput", + "CreateTransitGatewayRouteInput", + "CreateTransitGatewayRouteOutput", + "CreateTransitGatewayRouteTableAnnouncementInput", + "CreateTransitGatewayRouteTableAnnouncementOutput", + "CreateTransitGatewayRouteTableInput", + "CreateTransitGatewayRouteTableOutput", + "CreateTransitGatewayVpcAttachmentInput", + "CreateTransitGatewayVpcAttachmentOutput", + "CreateTransitGatewayVpcAttachmentRequestOptions", + "CreateVerifiedAccessEndpointCidrOptions", + "CreateVerifiedAccessEndpointEniOptions", + "CreateVerifiedAccessEndpointInput", + "CreateVerifiedAccessEndpointLoadBalancerOptions", + "CreateVerifiedAccessEndpointOutput", + "CreateVerifiedAccessEndpointPortRange", + "CreateVerifiedAccessEndpointRdsOptions", + "CreateVerifiedAccessGroupInput", + "CreateVerifiedAccessGroupOutput", + "CreateVerifiedAccessInstanceInput", + "CreateVerifiedAccessInstanceOutput", + "CreateVerifiedAccessNativeApplicationOidcOptions", + "CreateVerifiedAccessTrustProviderDeviceOptions", + "CreateVerifiedAccessTrustProviderInput", + "CreateVerifiedAccessTrustProviderOidcOptions", + "CreateVerifiedAccessTrustProviderOutput", + "CreateVolumeInput", + "CreateVolumeOutput", + "CreateVolumePermission", + "CreateVolumePermissionModifications", + "CreateVpcBlockPublicAccessExclusionInput", + "CreateVpcBlockPublicAccessExclusionOutput", + "CreateVpcEncryptionControlInput", + "CreateVpcEncryptionControlOutput", + "CreateVpcEndpointConnectionNotificationInput", + "CreateVpcEndpointConnectionNotificationOutput", + "CreateVpcEndpointInput", + "CreateVpcEndpointOutput", + "CreateVpcEndpointServiceConfigurationInput", + "CreateVpcEndpointServiceConfigurationOutput", + "CreateVpcInput", + "CreateVpcOutput", + "CreateVpcPeeringConnectionInput", + "CreateVpcPeeringConnectionOutput", + "CreateVpnConcentratorInput", + "CreateVpnConcentratorOutput", + "CreateVpnConnectionInput", + "CreateVpnConnectionOutput", + "CreateVpnConnectionRouteInput", + "CreateVpnConnectionRouteOutput", + "CreateVpnGatewayInput", + "CreateVpnGatewayOutput", + "CreationDateCondition", + "CreationDateConditionRequest", + "CreditSpecification", + "CreditSpecificationRequest", + "CurrencyCodeValues", + "CustomTagKeyValueRequestPair", + "CustomTagKeyValueResponsePair", + "CustomerGateway", + "DataQuery", + "DataResponse", + "DatafeedSubscriptionState", + "DeclarativePoliciesReport", + "DefaultConnectionTrackingConfiguration", + "DefaultHttpTokensEnforcedState", + "DefaultInstanceMetadataEndpointState", + "DefaultInstanceMetadataTagsState", + "DefaultRouteTableAssociationValue", + "DefaultRouteTablePropagationValue", + "DefaultTargetCapacityType", + "DeleteApplicationStatusCheckInput", + "DeleteApplicationStatusCheckOutput", + "DeleteCapacityManagerDataExportInput", + "DeleteCapacityManagerDataExportOutput", + "DeleteCarrierGatewayInput", + "DeleteCarrierGatewayOutput", + "DeleteClientVpnEndpointAuthorizationPolicyInput", + "DeleteClientVpnEndpointAuthorizationPolicyOutput", + "DeleteClientVpnEndpointInput", + "DeleteClientVpnEndpointOutput", + "DeleteClientVpnRouteInput", + "DeleteClientVpnRouteOutput", + "DeleteCoipCidrInput", + "DeleteCoipCidrOutput", + "DeleteCoipPoolInput", + "DeleteCoipPoolOutput", + "DeleteCustomerGatewayInput", + "DeleteCustomerGatewayOutput", + "DeleteDhcpOptionsInput", + "DeleteDhcpOptionsOutput", + "DeleteEgressOnlyInternetGatewayInput", + "DeleteEgressOnlyInternetGatewayOutput", + "DeleteFleetError", + "DeleteFleetErrorCode", + "DeleteFleetErrorItem", + "DeleteFleetSuccessItem", + "DeleteFleetsInput", + "DeleteFleetsOutput", + "DeleteFlowLogsInput", + "DeleteFlowLogsOutput", + "DeleteFpgaImageInput", + "DeleteFpgaImageOutput", + "DeleteImageUsageReportInput", + "DeleteImageUsageReportOutput", + "DeleteInstanceConnectEndpointInput", + "DeleteInstanceConnectEndpointOutput", + "DeleteInstanceEventWindowInput", + "DeleteInstanceEventWindowOutput", + "DeleteInternetGatewayInput", + "DeleteInternetGatewayOutput", + "DeleteIpamExternalResourceVerificationTokenInput", + "DeleteIpamExternalResourceVerificationTokenOutput", + "DeleteIpamInput", + "DeleteIpamInternetRegistryAssociationInput", + "DeleteIpamInternetRegistryAssociationOutput", + "DeleteIpamOutput", + "DeleteIpamPolicyInput", + "DeleteIpamPolicyOutput", + "DeleteIpamPoolInput", + "DeleteIpamPoolOutput", + "DeleteIpamPrefixListResolverInput", + "DeleteIpamPrefixListResolverOutput", + "DeleteIpamPrefixListResolverTargetInput", + "DeleteIpamPrefixListResolverTargetOutput", + "DeleteIpamResourceDiscoveryInput", + "DeleteIpamResourceDiscoveryOutput", + "DeleteIpamRoutingPolicyRegistrationInput", + "DeleteIpamRoutingPolicyRegistrationOutput", + "DeleteIpamScopeInput", + "DeleteIpamScopeOutput", + "DeleteKeyPairInput", + "DeleteKeyPairOutput", + "DeleteLaunchTemplateInput", + "DeleteLaunchTemplateOutput", + "DeleteLaunchTemplateVersionsInput", + "DeleteLaunchTemplateVersionsOutput", + "DeleteLaunchTemplateVersionsResponseErrorItem", + "DeleteLaunchTemplateVersionsResponseSuccessItem", + "DeleteLocalGatewayRouteInput", + "DeleteLocalGatewayRouteOutput", + "DeleteLocalGatewayRouteTableInput", + "DeleteLocalGatewayRouteTableOutput", + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput", + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput", + "DeleteLocalGatewayRouteTableVpcAssociationInput", + "DeleteLocalGatewayRouteTableVpcAssociationOutput", + "DeleteLocalGatewayVirtualInterfaceGroupInput", + "DeleteLocalGatewayVirtualInterfaceGroupOutput", + "DeleteLocalGatewayVirtualInterfaceInput", + "DeleteLocalGatewayVirtualInterfaceOutput", + "DeleteManagedPrefixListInput", + "DeleteManagedPrefixListOutput", + "DeleteNatGatewayInput", + "DeleteNatGatewayOutput", + "DeleteNetworkAclEntryInput", + "DeleteNetworkAclEntryOutput", + "DeleteNetworkAclInput", + "DeleteNetworkAclOutput", + "DeleteNetworkInsightsAccessScopeAnalysisInput", + "DeleteNetworkInsightsAccessScopeAnalysisOutput", + "DeleteNetworkInsightsAccessScopeInput", + "DeleteNetworkInsightsAccessScopeOutput", + "DeleteNetworkInsightsAnalysisInput", + "DeleteNetworkInsightsAnalysisOutput", + "DeleteNetworkInsightsPathInput", + "DeleteNetworkInsightsPathOutput", + "DeleteNetworkInterfaceInput", + "DeleteNetworkInterfaceOutput", + "DeleteNetworkInterfacePermissionInput", + "DeleteNetworkInterfacePermissionOutput", + "DeletePlacementGroupInput", + "DeletePlacementGroupOutput", + "DeletePublicIpv4PoolInput", + "DeletePublicIpv4PoolOutput", + "DeleteQueuedReservedInstancesError", + "DeleteQueuedReservedInstancesErrorCode", + "DeleteQueuedReservedInstancesInput", + "DeleteQueuedReservedInstancesOutput", + "DeleteRouteInput", + "DeleteRouteOutput", + "DeleteRouteServerEndpointInput", + "DeleteRouteServerEndpointOutput", + "DeleteRouteServerInput", + "DeleteRouteServerOutput", + "DeleteRouteServerPeerInput", + "DeleteRouteServerPeerOutput", + "DeleteRouteTableInput", + "DeleteRouteTableOutput", + "DeleteSecondaryNetworkInput", + "DeleteSecondaryNetworkOutput", + "DeleteSecondarySubnetInput", + "DeleteSecondarySubnetOutput", + "DeleteSecurityGroupInput", + "DeleteSecurityGroupOutput", + "DeleteSnapshotInput", + "DeleteSnapshotOutput", + "DeleteSnapshotReturnCode", + "DeleteSpotDatafeedSubscriptionInput", + "DeleteSpotDatafeedSubscriptionOutput", + "DeleteSubnetCidrReservationInput", + "DeleteSubnetCidrReservationOutput", + "DeleteSubnetInput", + "DeleteSubnetOutput", + "DeleteTagsInput", + "DeleteTagsOutput", + "DeleteTrafficMirrorFilterInput", + "DeleteTrafficMirrorFilterOutput", + "DeleteTrafficMirrorFilterRuleInput", + "DeleteTrafficMirrorFilterRuleOutput", + "DeleteTrafficMirrorSessionInput", + "DeleteTrafficMirrorSessionOutput", + "DeleteTrafficMirrorTargetInput", + "DeleteTrafficMirrorTargetOutput", + "DeleteTransitGatewayClientVpnAttachmentInput", + "DeleteTransitGatewayClientVpnAttachmentOutput", + "DeleteTransitGatewayConnectInput", + "DeleteTransitGatewayConnectOutput", + "DeleteTransitGatewayConnectPeerInput", + "DeleteTransitGatewayConnectPeerOutput", + "DeleteTransitGatewayInput", + "DeleteTransitGatewayMeteringPolicyEntryInput", + "DeleteTransitGatewayMeteringPolicyEntryOutput", + "DeleteTransitGatewayMeteringPolicyInput", + "DeleteTransitGatewayMeteringPolicyOutput", + "DeleteTransitGatewayMulticastDomainInput", + "DeleteTransitGatewayMulticastDomainOutput", + "DeleteTransitGatewayOutput", + "DeleteTransitGatewayPeeringAttachmentInput", + "DeleteTransitGatewayPeeringAttachmentOutput", + "DeleteTransitGatewayPolicyTableEntryInput", + "DeleteTransitGatewayPolicyTableEntryOutput", + "DeleteTransitGatewayPolicyTableInput", + "DeleteTransitGatewayPolicyTableOutput", + "DeleteTransitGatewayPrefixListReferenceInput", + "DeleteTransitGatewayPrefixListReferenceOutput", + "DeleteTransitGatewayRouteInput", + "DeleteTransitGatewayRouteOutput", + "DeleteTransitGatewayRouteTableAnnouncementInput", + "DeleteTransitGatewayRouteTableAnnouncementOutput", + "DeleteTransitGatewayRouteTableInput", + "DeleteTransitGatewayRouteTableOutput", + "DeleteTransitGatewayVpcAttachmentInput", + "DeleteTransitGatewayVpcAttachmentOutput", + "DeleteVerifiedAccessEndpointInput", + "DeleteVerifiedAccessEndpointOutput", + "DeleteVerifiedAccessGroupInput", + "DeleteVerifiedAccessGroupOutput", + "DeleteVerifiedAccessInstanceInput", + "DeleteVerifiedAccessInstanceOutput", + "DeleteVerifiedAccessTrustProviderInput", + "DeleteVerifiedAccessTrustProviderOutput", + "DeleteVolumeInput", + "DeleteVolumeOutput", + "DeleteVpcBlockPublicAccessExclusionInput", + "DeleteVpcBlockPublicAccessExclusionOutput", + "DeleteVpcEncryptionControlInput", + "DeleteVpcEncryptionControlOutput", + "DeleteVpcEndpointConnectionNotificationsInput", + "DeleteVpcEndpointConnectionNotificationsOutput", + "DeleteVpcEndpointServiceConfigurationsInput", + "DeleteVpcEndpointServiceConfigurationsOutput", + "DeleteVpcEndpointsInput", + "DeleteVpcEndpointsOutput", + "DeleteVpcInput", + "DeleteVpcOutput", + "DeleteVpcPeeringConnectionInput", + "DeleteVpcPeeringConnectionOutput", + "DeleteVpnConcentratorInput", + "DeleteVpnConcentratorOutput", + "DeleteVpnConnectionInput", + "DeleteVpnConnectionOutput", + "DeleteVpnConnectionRouteInput", + "DeleteVpnConnectionRouteOutput", + "DeleteVpnGatewayInput", + "DeleteVpnGatewayOutput", + "DeprecationTimeCondition", + "DeprecationTimeConditionRequest", + "DeprovisionByoipCidrInput", + "DeprovisionByoipCidrOutput", + "DeprovisionIpamByoasnInput", + "DeprovisionIpamByoasnOutput", + "DeprovisionIpamPoolCidrInput", + "DeprovisionIpamPoolCidrOutput", + "DeprovisionPublicIpv4PoolCidrInput", + "DeprovisionPublicIpv4PoolCidrOutput", + "DeregisterImageInput", + "DeregisterImageOutput", + "DeregisterInstanceEventNotificationAttributesInput", + "DeregisterInstanceEventNotificationAttributesOutput", + "DeregisterInstanceTagAttributeRequest", + "DeregisterTransitGatewayMulticastGroupMembersInput", + "DeregisterTransitGatewayMulticastGroupMembersOutput", + "DeregisterTransitGatewayMulticastGroupSourcesInput", + "DeregisterTransitGatewayMulticastGroupSourcesOutput", + "DescribeAccountAttributesInput", + "DescribeAccountAttributesOutput", + "DescribeAccountVpcEncryptionControlInput", + "DescribeAccountVpcEncryptionControlOutput", + "DescribeAddressTransfersInput", + "DescribeAddressTransfersOutput", + "DescribeAddressesAttributeInput", + "DescribeAddressesAttributeOutput", + "DescribeAddressesInput", + "DescribeAddressesOutput", + "DescribeAggregateIdFormatInput", + "DescribeAggregateIdFormatOutput", + "DescribeApplicationStatusCheckAssociationsInput", + "DescribeApplicationStatusCheckAssociationsOutput", + "DescribeApplicationStatusChecksInput", + "DescribeApplicationStatusChecksOutput", + "DescribeApplicationStatusInput", + "DescribeApplicationStatusOutput", + "DescribeAvailabilityZonesInput", + "DescribeAvailabilityZonesOutput", + "DescribeAwsNetworkPerformanceMetricSubscriptionsInput", + "DescribeAwsNetworkPerformanceMetricSubscriptionsOutput", + "DescribeBundleTasksInput", + "DescribeBundleTasksOutput", + "DescribeByoipCidrsInput", + "DescribeByoipCidrsOutput", + "DescribeCapacityBlockExtensionHistoryInput", + "DescribeCapacityBlockExtensionHistoryOutput", + "DescribeCapacityBlockExtensionOfferingsInput", + "DescribeCapacityBlockExtensionOfferingsOutput", + "DescribeCapacityBlockOfferingsInput", + "DescribeCapacityBlockOfferingsOutput", + "DescribeCapacityBlockStatusInput", + "DescribeCapacityBlockStatusOutput", + "DescribeCapacityBlocksInput", + "DescribeCapacityBlocksOutput", + "DescribeCapacityManagerDataExportsInput", + "DescribeCapacityManagerDataExportsOutput", + "DescribeCapacityReservationBillingRequestsInput", + "DescribeCapacityReservationBillingRequestsOutput", + "DescribeCapacityReservationCancellationQuotesInput", + "DescribeCapacityReservationCancellationQuotesOutput", + "DescribeCapacityReservationDateChangeQuotesInput", + "DescribeCapacityReservationDateChangeQuotesOutput", + "DescribeCapacityReservationFleetsInput", + "DescribeCapacityReservationFleetsOutput", + "DescribeCapacityReservationTopologyInput", + "DescribeCapacityReservationTopologyOutput", + "DescribeCapacityReservationsInput", + "DescribeCapacityReservationsOutput", + "DescribeCarrierGatewaysInput", + "DescribeCarrierGatewaysOutput", + "DescribeClassicLinkInstancesInput", + "DescribeClassicLinkInstancesOutput", + "DescribeClientVpnAuthorizationRulesInput", + "DescribeClientVpnAuthorizationRulesOutput", + "DescribeClientVpnConnectionsInput", + "DescribeClientVpnConnectionsOutput", + "DescribeClientVpnEndpointsInput", + "DescribeClientVpnEndpointsOutput", + "DescribeClientVpnRoutesInput", + "DescribeClientVpnRoutesOutput", + "DescribeClientVpnTargetNetworksInput", + "DescribeClientVpnTargetNetworksOutput", + "DescribeCoipPoolsInput", + "DescribeCoipPoolsOutput", + "DescribeConversionTasksInput", + "DescribeConversionTasksOutput", + "DescribeCustomerGatewaysInput", + "DescribeCustomerGatewaysOutput", + "DescribeDeclarativePoliciesReportsInput", + "DescribeDeclarativePoliciesReportsOutput", + "DescribeDhcpOptionsInput", + "DescribeDhcpOptionsOutput", + "DescribeEgressOnlyInternetGatewaysInput", + "DescribeEgressOnlyInternetGatewaysOutput", + "DescribeElasticGpusInput", + "DescribeElasticGpusOutput", + "DescribeExportImageTasksInput", + "DescribeExportImageTasksOutput", + "DescribeExportTasksInput", + "DescribeExportTasksOutput", + "DescribeFastLaunchImagesInput", + "DescribeFastLaunchImagesOutput", + "DescribeFastLaunchImagesSuccessItem", + "DescribeFastSnapshotRestoreSuccessItem", + "DescribeFastSnapshotRestoresInput", + "DescribeFastSnapshotRestoresOutput", + "DescribeFleetError", + "DescribeFleetHistoryInput", + "DescribeFleetHistoryOutput", + "DescribeFleetInstancesInput", + "DescribeFleetInstancesOutput", + "DescribeFleetsInput", + "DescribeFleetsInstances", + "DescribeFleetsOutput", + "DescribeFlowLogsInput", + "DescribeFlowLogsOutput", + "DescribeFpgaImageAttributeInput", + "DescribeFpgaImageAttributeOutput", + "DescribeFpgaImagesInput", + "DescribeFpgaImagesOutput", + "DescribeHostReservationOfferingsInput", + "DescribeHostReservationOfferingsOutput", + "DescribeHostReservationsInput", + "DescribeHostReservationsOutput", + "DescribeHostsInput", + "DescribeHostsOutput", + "DescribeIamInstanceProfileAssociationsInput", + "DescribeIamInstanceProfileAssociationsOutput", + "DescribeIdFormatInput", + "DescribeIdFormatOutput", + "DescribeIdentityIdFormatInput", + "DescribeIdentityIdFormatOutput", + "DescribeImageAttributeInput", + "DescribeImageAttributeOutput", + "DescribeImageReferencesInput", + "DescribeImageReferencesOutput", + "DescribeImageUsageReportEntriesInput", + "DescribeImageUsageReportEntriesOutput", + "DescribeImageUsageReportsInput", + "DescribeImageUsageReportsOutput", + "DescribeImagesInput", + "DescribeImagesOutput", + "DescribeImportImageTasksInput", + "DescribeImportImageTasksOutput", + "DescribeImportSnapshotTasksInput", + "DescribeImportSnapshotTasksOutput", + "DescribeInstanceAttributeInput", + "DescribeInstanceAttributeOutput", + "DescribeInstanceConnectEndpointsInput", + "DescribeInstanceConnectEndpointsOutput", + "DescribeInstanceCreditSpecificationsInput", + "DescribeInstanceCreditSpecificationsOutput", + "DescribeInstanceEventNotificationAttributesInput", + "DescribeInstanceEventNotificationAttributesOutput", + "DescribeInstanceEventWindowsInput", + "DescribeInstanceEventWindowsOutput", + "DescribeInstanceImageMetadataInput", + "DescribeInstanceImageMetadataOutput", + "DescribeInstanceSqlHaHistoryStatesInput", + "DescribeInstanceSqlHaHistoryStatesOutput", + "DescribeInstanceSqlHaStatesInput", + "DescribeInstanceSqlHaStatesOutput", + "DescribeInstanceStatusInput", + "DescribeInstanceStatusOutput", + "DescribeInstanceTopologyInput", + "DescribeInstanceTopologyOutput", + "DescribeInstanceTypeOfferingsInput", + "DescribeInstanceTypeOfferingsOutput", + "DescribeInstanceTypesInput", + "DescribeInstanceTypesOutput", + "DescribeInstancesInput", + "DescribeInstancesOutput", + "DescribeInternetGatewaysInput", + "DescribeInternetGatewaysOutput", + "DescribeIpamByoasnInput", + "DescribeIpamByoasnOutput", + "DescribeIpamExternalResourceVerificationTokensInput", + "DescribeIpamExternalResourceVerificationTokensOutput", + "DescribeIpamInternetRegistryAssociationsInput", + "DescribeIpamInternetRegistryAssociationsOutput", + "DescribeIpamPoliciesInput", + "DescribeIpamPoliciesOutput", + "DescribeIpamPoolAllocationsInput", + "DescribeIpamPoolAllocationsOutput", + "DescribeIpamPoolsInput", + "DescribeIpamPoolsOutput", + "DescribeIpamPrefixListResolverTargetsInput", + "DescribeIpamPrefixListResolverTargetsOutput", + "DescribeIpamPrefixListResolversInput", + "DescribeIpamPrefixListResolversOutput", + "DescribeIpamResourceDiscoveriesInput", + "DescribeIpamResourceDiscoveriesOutput", + "DescribeIpamResourceDiscoveryAssociationsInput", + "DescribeIpamResourceDiscoveryAssociationsOutput", + "DescribeIpamScopesInput", + "DescribeIpamScopesOutput", + "DescribeIpamsInput", + "DescribeIpamsOutput", + "DescribeIpv6PoolsInput", + "DescribeIpv6PoolsOutput", + "DescribeKeyPairsInput", + "DescribeKeyPairsOutput", + "DescribeLaunchTemplateVersionsInput", + "DescribeLaunchTemplateVersionsOutput", + "DescribeLaunchTemplatesInput", + "DescribeLaunchTemplatesOutput", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput", + "DescribeLocalGatewayRouteTableVpcAssociationsInput", + "DescribeLocalGatewayRouteTableVpcAssociationsOutput", + "DescribeLocalGatewayRouteTablesInput", + "DescribeLocalGatewayRouteTablesOutput", + "DescribeLocalGatewayVirtualInterfaceGroupsInput", + "DescribeLocalGatewayVirtualInterfaceGroupsOutput", + "DescribeLocalGatewayVirtualInterfacesInput", + "DescribeLocalGatewayVirtualInterfacesOutput", + "DescribeLocalGatewaysInput", + "DescribeLocalGatewaysOutput", + "DescribeLockedSnapshotsInput", + "DescribeLockedSnapshotsOutput", + "DescribeMacHostsInput", + "DescribeMacHostsOutput", + "DescribeMacModificationTasksInput", + "DescribeMacModificationTasksOutput", + "DescribeManagedPrefixListsInput", + "DescribeManagedPrefixListsOutput", + "DescribeMovingAddressesInput", + "DescribeMovingAddressesOutput", + "DescribeNatGatewaysInput", + "DescribeNatGatewaysOutput", + "DescribeNetworkAclsInput", + "DescribeNetworkAclsOutput", + "DescribeNetworkInsightsAccessScopeAnalysesInput", + "DescribeNetworkInsightsAccessScopeAnalysesOutput", + "DescribeNetworkInsightsAccessScopesInput", + "DescribeNetworkInsightsAccessScopesOutput", + "DescribeNetworkInsightsAnalysesInput", + "DescribeNetworkInsightsAnalysesOutput", + "DescribeNetworkInsightsPathsInput", + "DescribeNetworkInsightsPathsOutput", + "DescribeNetworkInterfaceAttributeInput", + "DescribeNetworkInterfaceAttributeOutput", + "DescribeNetworkInterfacePermissionsInput", + "DescribeNetworkInterfacePermissionsOutput", + "DescribeNetworkInterfacesInput", + "DescribeNetworkInterfacesOutput", + "DescribeOutpostLagsInput", + "DescribeOutpostLagsOutput", + "DescribePlacementGroupsInput", + "DescribePlacementGroupsOutput", + "DescribePrefixListsInput", + "DescribePrefixListsOutput", + "DescribePrincipalIdFormatInput", + "DescribePrincipalIdFormatOutput", + "DescribePublicIpv4PoolsInput", + "DescribePublicIpv4PoolsOutput", + "DescribeRegionsInput", + "DescribeRegionsOutput", + "DescribeReplaceRootVolumeTasksInput", + "DescribeReplaceRootVolumeTasksOutput", + "DescribeReservedInstancesInput", + "DescribeReservedInstancesListingsInput", + "DescribeReservedInstancesListingsOutput", + "DescribeReservedInstancesModificationsInput", + "DescribeReservedInstancesModificationsOutput", + "DescribeReservedInstancesOfferingsInput", + "DescribeReservedInstancesOfferingsOutput", + "DescribeReservedInstancesOutput", + "DescribeRouteServerEndpointsInput", + "DescribeRouteServerEndpointsOutput", + "DescribeRouteServerPeersInput", + "DescribeRouteServerPeersOutput", + "DescribeRouteServersInput", + "DescribeRouteServersOutput", + "DescribeRouteTablesInput", + "DescribeRouteTablesOutput", + "DescribeScheduledInstanceAvailabilityInput", + "DescribeScheduledInstanceAvailabilityOutput", + "DescribeScheduledInstancesInput", + "DescribeScheduledInstancesOutput", + "DescribeSecondaryInterfacesInput", + "DescribeSecondaryInterfacesOutput", + "DescribeSecondaryNetworksInput", + "DescribeSecondaryNetworksOutput", + "DescribeSecondarySubnetsInput", + "DescribeSecondarySubnetsOutput", + "DescribeSecurityGroupReferencesInput", + "DescribeSecurityGroupReferencesOutput", + "DescribeSecurityGroupRulesInput", + "DescribeSecurityGroupRulesOutput", + "DescribeSecurityGroupVpcAssociationsInput", + "DescribeSecurityGroupVpcAssociationsOutput", + "DescribeSecurityGroupsInput", + "DescribeSecurityGroupsOutput", + "DescribeServiceLinkVirtualInterfacesInput", + "DescribeServiceLinkVirtualInterfacesOutput", + "DescribeSnapshotAttributeInput", + "DescribeSnapshotAttributeOutput", + "DescribeSnapshotTierStatusInput", + "DescribeSnapshotTierStatusOutput", + "DescribeSnapshotsInput", + "DescribeSnapshotsOutput", + "DescribeSpotDatafeedSubscriptionInput", + "DescribeSpotDatafeedSubscriptionOutput", + "DescribeSpotFleetInstancesInput", + "DescribeSpotFleetInstancesOutput", + "DescribeSpotFleetRequestHistoryInput", + "DescribeSpotFleetRequestHistoryOutput", + "DescribeSpotFleetRequestsInput", + "DescribeSpotFleetRequestsOutput", + "DescribeSpotInstanceRequestsInput", + "DescribeSpotInstanceRequestsOutput", + "DescribeSpotPriceHistoryInput", + "DescribeSpotPriceHistoryOutput", + "DescribeStaleSecurityGroupsInput", + "DescribeStaleSecurityGroupsOutput", + "DescribeStoreImageTasksInput", + "DescribeStoreImageTasksOutput", + "DescribeSubnetsInput", + "DescribeSubnetsOutput", + "DescribeTagsInput", + "DescribeTagsOutput", + "DescribeTrafficMirrorFilterRulesInput", + "DescribeTrafficMirrorFilterRulesOutput", + "DescribeTrafficMirrorFiltersInput", + "DescribeTrafficMirrorFiltersOutput", + "DescribeTrafficMirrorSessionsInput", + "DescribeTrafficMirrorSessionsOutput", + "DescribeTrafficMirrorTargetsInput", + "DescribeTrafficMirrorTargetsOutput", + "DescribeTransitGatewayAttachmentsInput", + "DescribeTransitGatewayAttachmentsOutput", + "DescribeTransitGatewayConnectPeersInput", + "DescribeTransitGatewayConnectPeersOutput", + "DescribeTransitGatewayConnectsInput", + "DescribeTransitGatewayConnectsOutput", + "DescribeTransitGatewayMeteringPoliciesInput", + "DescribeTransitGatewayMeteringPoliciesOutput", + "DescribeTransitGatewayMulticastDomainsInput", + "DescribeTransitGatewayMulticastDomainsOutput", + "DescribeTransitGatewayPeeringAttachmentsInput", + "DescribeTransitGatewayPeeringAttachmentsOutput", + "DescribeTransitGatewayPolicyTablesInput", + "DescribeTransitGatewayPolicyTablesOutput", + "DescribeTransitGatewayRouteTableAnnouncementsInput", + "DescribeTransitGatewayRouteTableAnnouncementsOutput", + "DescribeTransitGatewayRouteTablesInput", + "DescribeTransitGatewayRouteTablesOutput", + "DescribeTransitGatewayVpcAttachmentsInput", + "DescribeTransitGatewayVpcAttachmentsOutput", + "DescribeTransitGatewaysInput", + "DescribeTransitGatewaysOutput", + "DescribeTrunkInterfaceAssociationsInput", + "DescribeTrunkInterfaceAssociationsOutput", + "DescribeVerifiedAccessEndpointsInput", + "DescribeVerifiedAccessEndpointsOutput", + "DescribeVerifiedAccessGroupsInput", + "DescribeVerifiedAccessGroupsOutput", + "DescribeVerifiedAccessInstanceLoggingConfigurationsInput", + "DescribeVerifiedAccessInstanceLoggingConfigurationsOutput", + "DescribeVerifiedAccessInstancesInput", + "DescribeVerifiedAccessInstancesOutput", + "DescribeVerifiedAccessTrustProvidersInput", + "DescribeVerifiedAccessTrustProvidersOutput", + "DescribeVolumeAttributeInput", + "DescribeVolumeAttributeOutput", + "DescribeVolumeStatusInput", + "DescribeVolumeStatusOutput", + "DescribeVolumesInput", + "DescribeVolumesModificationsInput", + "DescribeVolumesModificationsOutput", + "DescribeVolumesOutput", + "DescribeVpcAttributeInput", + "DescribeVpcAttributeOutput", + "DescribeVpcBlockPublicAccessExclusionsInput", + "DescribeVpcBlockPublicAccessExclusionsOutput", + "DescribeVpcBlockPublicAccessOptionsInput", + "DescribeVpcBlockPublicAccessOptionsOutput", + "DescribeVpcClassicLinkDnsSupportInput", + "DescribeVpcClassicLinkDnsSupportOutput", + "DescribeVpcClassicLinkInput", + "DescribeVpcClassicLinkOutput", + "DescribeVpcEncryptionControlsInput", + "DescribeVpcEncryptionControlsOutput", + "DescribeVpcEndpointAssociationsInput", + "DescribeVpcEndpointAssociationsOutput", + "DescribeVpcEndpointConnectionNotificationsInput", + "DescribeVpcEndpointConnectionNotificationsOutput", + "DescribeVpcEndpointConnectionsInput", + "DescribeVpcEndpointConnectionsOutput", + "DescribeVpcEndpointServiceConfigurationsInput", + "DescribeVpcEndpointServiceConfigurationsOutput", + "DescribeVpcEndpointServicePermissionsInput", + "DescribeVpcEndpointServicePermissionsOutput", + "DescribeVpcEndpointServicesInput", + "DescribeVpcEndpointServicesOutput", + "DescribeVpcEndpointsInput", + "DescribeVpcEndpointsOutput", + "DescribeVpcPeeringConnectionsInput", + "DescribeVpcPeeringConnectionsOutput", + "DescribeVpcsInput", + "DescribeVpcsOutput", + "DescribeVpnConcentratorsInput", + "DescribeVpnConcentratorsOutput", + "DescribeVpnConnectionsInput", + "DescribeVpnConnectionsOutput", + "DescribeVpnGatewaysInput", + "DescribeVpnGatewaysOutput", + "DestinationFileFormat", + "DestinationOptionsRequest", + "DestinationOptionsResponse", + "DetachClassicLinkVpcInput", + "DetachClassicLinkVpcOutput", + "DetachImageWatermarkInput", + "DetachImageWatermarkOutput", + "DetachInternetGatewayInput", + "DetachInternetGatewayOutput", + "DetachNetworkInterfaceInput", + "DetachNetworkInterfaceOutput", + "DetachVerifiedAccessTrustProviderInput", + "DetachVerifiedAccessTrustProviderOutput", + "DetachVolumeInput", + "DetachVolumeOutput", + "DetachVpnGatewayInput", + "DetachVpnGatewayOutput", + "DeviceOptions", + "DevicePostureOptions", + "DevicePostureResponseOptions", + "DeviceTrustProviderType", + "DeviceType", + "DhcpConfiguration", + "DhcpOptions", + "DimensionCondition", + "DirectoryServiceAuthentication", + "DirectoryServiceAuthenticationRequest", + "DisableAddressTransferInput", + "DisableAddressTransferOutput", + "DisableAllowedImagesSettingsInput", + "DisableAllowedImagesSettingsOutput", + "DisableApplicationStatusCheckSuppressionInput", + "DisableApplicationStatusCheckSuppressionOutput", + "DisableAwsNetworkPerformanceMetricSubscriptionInput", + "DisableAwsNetworkPerformanceMetricSubscriptionOutput", + "DisableCapacityManagerInput", + "DisableCapacityManagerOutput", + "DisableEbsEncryptionByDefaultInput", + "DisableEbsEncryptionByDefaultOutput", + "DisableFastLaunchInput", + "DisableFastLaunchOutput", + "DisableFastSnapshotRestoreErrorItem", + "DisableFastSnapshotRestoreStateError", + "DisableFastSnapshotRestoreStateErrorItem", + "DisableFastSnapshotRestoreSuccessItem", + "DisableFastSnapshotRestoresInput", + "DisableFastSnapshotRestoresOutput", + "DisableImageBlockPublicAccessInput", + "DisableImageBlockPublicAccessOutput", + "DisableImageDeprecationInput", + "DisableImageDeprecationOutput", + "DisableImageDeregistrationProtectionInput", + "DisableImageDeregistrationProtectionOutput", + "DisableImageInput", + "DisableImageOutput", + "DisableInstanceSqlHaStandbyDetectionsInput", + "DisableInstanceSqlHaStandbyDetectionsOutput", + "DisableIpamOrganizationAdminAccountInput", + "DisableIpamOrganizationAdminAccountOutput", + "DisableIpamPolicyInput", + "DisableIpamPolicyOutput", + "DisableRouteServerPropagationInput", + "DisableRouteServerPropagationOutput", + "DisableSerialConsoleAccessInput", + "DisableSerialConsoleAccessOutput", + "DisableSnapshotBlockPublicAccessInput", + "DisableSnapshotBlockPublicAccessOutput", + "DisableTransitGatewayRouteTablePropagationInput", + "DisableTransitGatewayRouteTablePropagationOutput", + "DisableVgwRoutePropagationInput", + "DisableVgwRoutePropagationOutput", + "DisableVpcClassicLinkDnsSupportInput", + "DisableVpcClassicLinkDnsSupportOutput", + "DisableVpcClassicLinkInput", + "DisableVpcClassicLinkOutput", + "DisassociateAddressInput", + "DisassociateAddressOutput", + "DisassociateApplicationStatusCheckInput", + "DisassociateApplicationStatusCheckOutput", + "DisassociateCapacityReservationBillingOwnerInput", + "DisassociateCapacityReservationBillingOwnerOutput", + "DisassociateClientVpnTargetNetworkInput", + "DisassociateClientVpnTargetNetworkOutput", + "DisassociateEnclaveCertificateIamRoleInput", + "DisassociateEnclaveCertificateIamRoleOutput", + "DisassociateIamInstanceProfileInput", + "DisassociateIamInstanceProfileOutput", + "DisassociateInstanceEventWindowInput", + "DisassociateInstanceEventWindowOutput", + "DisassociateIpamByoasnInput", + "DisassociateIpamByoasnOutput", + "DisassociateIpamResourceDiscoveryInput", + "DisassociateIpamResourceDiscoveryOutput", + "DisassociateNatGatewayAddressInput", + "DisassociateNatGatewayAddressOutput", + "DisassociateRouteServerInput", + "DisassociateRouteServerOutput", + "DisassociateRouteTableInput", + "DisassociateRouteTableOutput", + "DisassociateSecurityGroupVpcInput", + "DisassociateSecurityGroupVpcOutput", + "DisassociateSubnetCidrBlockInput", + "DisassociateSubnetCidrBlockOutput", + "DisassociateTransitGatewayMulticastDomainInput", + "DisassociateTransitGatewayMulticastDomainOutput", + "DisassociateTransitGatewayPolicyTableInput", + "DisassociateTransitGatewayPolicyTableOutput", + "DisassociateTransitGatewayRouteTableInput", + "DisassociateTransitGatewayRouteTableOutput", + "DisassociateTrunkInterfaceInput", + "DisassociateTrunkInterfaceOutput", + "DisassociateVpcCidrBlockInput", + "DisassociateVpcCidrBlockOutput", + "DiskImage", + "DiskImageDescription", + "DiskImageDetail", + "DiskImageFormat", + "DiskImageVolumeDescription", + "DiskInfo", + "DiskType", + "DnsEntry", + "DnsNameState", + "DnsOptions", + "DnsOptionsSpecification", + "DnsRecordIpType", + "DnsServersOptionsModifyStructure", + "DnsSupportValue", + "DomainType", + "DynamicRoutingValue", + "EbsBlockDevice", + "EbsBlockDeviceResponse", + "EbsCardInfo", + "EbsEncryptionSupport", + "EbsInfo", + "EbsInstanceBlockDevice", + "EbsInstanceBlockDeviceSpecification", + "EbsNvmeSupport", + "EbsOptimizedInfo", + "EbsOptimizedSupport", + "EbsStatusDetails", + "EbsStatusSummary", + "Ec2InstanceConnectEndpoint", + "Ec2InstanceConnectEndpointState", + "EfaInfo", + "EgressOnlyInternetGateway", + "EkPubKeyFormat", + "EkPubKeyType", + "ElasticGpuAssociation", + "ElasticGpuHealth", + "ElasticGpuSpecification", + "ElasticGpuSpecificationResponse", + "ElasticGpuState", + "ElasticGpuStatus", + "ElasticGpus", + "ElasticInferenceAccelerator", + "ElasticInferenceAcceleratorAssociation", + "EnaSrdSpecification", + "EnaSrdSpecificationRequest", + "EnaSrdUdpSpecification", + "EnaSrdUdpSpecificationRequest", + "EnaSupport", + "EnableAddressTransferInput", + "EnableAddressTransferOutput", + "EnableAllowedImagesSettingsInput", + "EnableAllowedImagesSettingsOutput", + "EnableApplicationStatusCheckSuppressionInput", + "EnableApplicationStatusCheckSuppressionOutput", + "EnableAwsNetworkPerformanceMetricSubscriptionInput", + "EnableAwsNetworkPerformanceMetricSubscriptionOutput", + "EnableCapacityManagerInput", + "EnableCapacityManagerOutput", + "EnableEbsEncryptionByDefaultInput", + "EnableEbsEncryptionByDefaultOutput", + "EnableFastLaunchInput", + "EnableFastLaunchOutput", + "EnableFastSnapshotRestoreErrorItem", + "EnableFastSnapshotRestoreStateError", + "EnableFastSnapshotRestoreStateErrorItem", + "EnableFastSnapshotRestoreSuccessItem", + "EnableFastSnapshotRestoresInput", + "EnableFastSnapshotRestoresOutput", + "EnableImageBlockPublicAccessInput", + "EnableImageBlockPublicAccessOutput", + "EnableImageDeprecationInput", + "EnableImageDeprecationOutput", + "EnableImageDeregistrationProtectionInput", + "EnableImageDeregistrationProtectionOutput", + "EnableImageInput", + "EnableImageOutput", + "EnableInstanceSqlHaStandbyDetectionsInput", + "EnableInstanceSqlHaStandbyDetectionsOutput", + "EnableIpamInternetRegistryAssociationInput", + "EnableIpamInternetRegistryAssociationOutput", + "EnableIpamOrganizationAdminAccountInput", + "EnableIpamOrganizationAdminAccountOutput", + "EnableIpamPolicyInput", + "EnableIpamPolicyOutput", + "EnableReachabilityAnalyzerOrganizationSharingInput", + "EnableReachabilityAnalyzerOrganizationSharingOutput", + "EnableRouteServerPropagationInput", + "EnableRouteServerPropagationOutput", + "EnableSerialConsoleAccessInput", + "EnableSerialConsoleAccessOutput", + "EnableSnapshotBlockPublicAccessInput", + "EnableSnapshotBlockPublicAccessOutput", + "EnableTransitGatewayRouteTablePropagationInput", + "EnableTransitGatewayRouteTablePropagationOutput", + "EnableVgwRoutePropagationInput", + "EnableVgwRoutePropagationOutput", + "EnableVolumeIOInput", + "EnableVolumeIOOutput", + "EnableVpcClassicLinkDnsSupportInput", + "EnableVpcClassicLinkDnsSupportOutput", + "EnableVpcClassicLinkInput", + "EnableVpcClassicLinkOutput", + "EnclaveOptions", + "EnclaveOptionsRequest", + "EncryptionStateValue", + "EncryptionSupport", + "EncryptionSupportOptionValue", + "EndDateType", + "EndpointIpAddressType", + "EphemeralNvmeSupport", + "EventCode", + "EventInformation", + "EventType", + "ExcessCapacityTerminationPolicy", + "Explanation", + "ExportClientVpnClientCertificateRevocationListInput", + "ExportClientVpnClientCertificateRevocationListOutput", + "ExportClientVpnClientConfigurationInput", + "ExportClientVpnClientConfigurationOutput", + "ExportEnvironment", + "ExportImageInput", + "ExportImageOutput", + "ExportImageTask", + "ExportTask", + "ExportTaskS3Location", + "ExportTaskS3LocationRequest", + "ExportTaskState", + "ExportToS3Task", + "ExportToS3TaskSpecification", + "ExportTransitGatewayRoutesInput", + "ExportTransitGatewayRoutesOutput", + "ExportVerifiedAccessInstanceClientConfigurationInput", + "ExportVerifiedAccessInstanceClientConfigurationOutput", + "ExternalAuthorityConfiguration", + "FailedCapacityReservationFleetCancellationResult", + "FailedQueuedPurchaseDeletion", + "FastLaunchLaunchTemplateSpecificationRequest", + "FastLaunchLaunchTemplateSpecificationResponse", + "FastLaunchResourceType", + "FastLaunchSnapshotConfigurationRequest", + "FastLaunchSnapshotConfigurationResponse", + "FastLaunchStateCode", + "FastSnapshotRestoreStateCode", + "FederatedAuthentication", + "FederatedAuthenticationRequest", + "Filter", + "FilterByDimension", + "FilterPortRange", + "FindingsFound", + "FirewallStatefulRule", + "FirewallStatelessRule", + "FleetActivityStatus", + "FleetBlockDeviceMappingRequest", + "FleetCapacityReservation", + "FleetCapacityReservationTargetRequest", + "FleetCapacityReservationTenancy", + "FleetCapacityReservationUsageStrategy", + "FleetData", + "FleetEbsBlockDeviceRequest", + "FleetEventType", + "FleetExcessCapacityTerminationPolicy", + "FleetHttpTokensState", + "FleetIamInstanceProfileSpecificationRequest", + "FleetInstanceMatchCriteria", + "FleetInstanceMetadataEndpointState", + "FleetInstanceMetadataOptionsRequest", + "FleetLaunchTemplateConfig", + "FleetLaunchTemplateConfigRequest", + "FleetLaunchTemplateOverrides", + "FleetLaunchTemplateOverridesRequest", + "FleetLaunchTemplateSpecification", + "FleetLaunchTemplateSpecificationRequest", + "FleetOnDemandAllocationStrategy", + "FleetReplacementStrategy", + "FleetReservationType", + "FleetSpotCapacityRebalance", + "FleetSpotCapacityRebalanceRequest", + "FleetSpotMaintenanceStrategies", + "FleetSpotMaintenanceStrategiesRequest", + "FleetStateCode", + "FleetType", + "FlexibleEnaQueuesSupport", + "FlowLog", + "FlowLogsResourceType", + "FpgaDeviceInfo", + "FpgaDeviceMemoryInfo", + "FpgaImage", + "FpgaImageAttribute", + "FpgaImageAttributeName", + "FpgaImageState", + "FpgaImageStateCode", + "FpgaInfo", + "GatewayAssociationState", + "GatewayType", + "GetActiveVpnTunnelStatusInput", + "GetActiveVpnTunnelStatusOutput", + "GetAllowedImagesSettingsInput", + "GetAllowedImagesSettingsOutput", + "GetAssociatedEnclaveCertificateIamRolesInput", + "GetAssociatedEnclaveCertificateIamRolesOutput", + "GetAssociatedIpv6PoolCidrsInput", + "GetAssociatedIpv6PoolCidrsOutput", + "GetAwsNetworkPerformanceDataInput", + "GetAwsNetworkPerformanceDataOutput", + "GetCapacityManagerAttributesInput", + "GetCapacityManagerAttributesOutput", + "GetCapacityManagerMetricDataInput", + "GetCapacityManagerMetricDataOutput", + "GetCapacityManagerMetricDimensionsInput", + "GetCapacityManagerMetricDimensionsOutput", + "GetCapacityManagerMonitoredTagKeysInput", + "GetCapacityManagerMonitoredTagKeysOutput", + "GetCapacityManagerSupportabilityScoresInput", + "GetCapacityManagerSupportabilityScoresOutput", + "GetCapacityReservationUsageInput", + "GetCapacityReservationUsageOutput", + "GetClientVpnEndpointAuthorizationPolicyInput", + "GetClientVpnEndpointAuthorizationPolicyOutput", + "GetCoipPoolUsageInput", + "GetCoipPoolUsageOutput", + "GetConsoleOutputInput", + "GetConsoleOutputOutput", + "GetConsoleScreenshotInput", + "GetConsoleScreenshotOutput", + "GetDeclarativePoliciesReportSummaryInput", + "GetDeclarativePoliciesReportSummaryOutput", + "GetDefaultCreditSpecificationInput", + "GetDefaultCreditSpecificationOutput", + "GetEbsDefaultKmsKeyIdInput", + "GetEbsDefaultKmsKeyIdOutput", + "GetEbsEncryptionByDefaultInput", + "GetEbsEncryptionByDefaultOutput", + "GetEnabledIpamPolicyInput", + "GetEnabledIpamPolicyOutput", + "GetFlowLogsIntegrationTemplateInput", + "GetFlowLogsIntegrationTemplateOutput", + "GetGroupsForCapacityReservationInput", + "GetGroupsForCapacityReservationOutput", + "GetHostReservationPurchasePreviewInput", + "GetHostReservationPurchasePreviewOutput", + "GetImageAncestryInput", + "GetImageAncestryOutput", + "GetImageBlockPublicAccessStateInput", + "GetImageBlockPublicAccessStateOutput", + "GetImageFindingsInput", + "GetImageFindingsOutput", + "GetInstanceMetadataDefaultsInput", + "GetInstanceMetadataDefaultsOutput", + "GetInstanceTpmEkPubInput", + "GetInstanceTpmEkPubOutput", + "GetInstanceTypesFromInstanceRequirementsInput", + "GetInstanceTypesFromInstanceRequirementsOutput", + "GetInstanceUefiDataInput", + "GetInstanceUefiDataOutput", + "GetIpamAddressHistoryInput", + "GetIpamAddressHistoryOutput", + "GetIpamDiscoveredAccountsInput", + "GetIpamDiscoveredAccountsOutput", + "GetIpamDiscoveredPublicAddressesInput", + "GetIpamDiscoveredPublicAddressesOutput", + "GetIpamDiscoveredResourceCidrsInput", + "GetIpamDiscoveredResourceCidrsOutput", + "GetIpamDiscoveredRoutesInput", + "GetIpamDiscoveredRoutesOutput", + "GetIpamInternetRegistryAssociationAsnsInput", + "GetIpamInternetRegistryAssociationAsnsOutput", + "GetIpamInternetRegistryAssociationCidrsInput", + "GetIpamInternetRegistryAssociationCidrsOutput", + "GetIpamPolicyAllocationRulesInput", + "GetIpamPolicyAllocationRulesOutput", + "GetIpamPolicyOrganizationTargetsInput", + "GetIpamPolicyOrganizationTargetsOutput", + "GetIpamPoolAllocationsInput", + "GetIpamPoolAllocationsOutput", + "GetIpamPoolCidrsInput", + "GetIpamPoolCidrsOutput", + "GetIpamPrefixListResolverRulesInput", + "GetIpamPrefixListResolverRulesOutput", + "GetIpamPrefixListResolverVersionEntriesInput", + "GetIpamPrefixListResolverVersionEntriesOutput", + "GetIpamPrefixListResolverVersionsInput", + "GetIpamPrefixListResolverVersionsOutput", + "GetIpamResourceCidrsInput", + "GetIpamResourceCidrsOutput", + "GetIpamRouteOriginAuthorizationsInput", + "GetIpamRouteOriginAuthorizationsOutput", + "GetIpamRouteProtectionFindingsInput", + "GetIpamRouteProtectionFindingsOutput", + "GetIpamRoutingPolicyRegistrationDeltasInput", + "GetIpamRoutingPolicyRegistrationDeltasOutput", + "GetIpamRoutingPolicyRegistrationsInput", + "GetIpamRoutingPolicyRegistrationsOutput", + "GetLaunchTemplateDataInput", + "GetLaunchTemplateDataOutput", + "GetManagedPrefixListAssociationsInput", + "GetManagedPrefixListAssociationsOutput", + "GetManagedPrefixListEntriesInput", + "GetManagedPrefixListEntriesOutput", + "GetManagedResourceVisibilityInput", + "GetManagedResourceVisibilityOutput", + "GetNetworkInsightsAccessScopeAnalysisFindingsInput", + "GetNetworkInsightsAccessScopeAnalysisFindingsOutput", + "GetNetworkInsightsAccessScopeContentInput", + "GetNetworkInsightsAccessScopeContentOutput", + "GetPasswordDataInput", + "GetPasswordDataOutput", + "GetReservedInstancesExchangeQuoteInput", + "GetReservedInstancesExchangeQuoteOutput", + "GetRouteServerAssociationsInput", + "GetRouteServerAssociationsOutput", + "GetRouteServerPropagationsInput", + "GetRouteServerPropagationsOutput", + "GetRouteServerRoutingDatabaseInput", + "GetRouteServerRoutingDatabaseOutput", + "GetSecurityGroupsForVpcInput", + "GetSecurityGroupsForVpcOutput", + "GetSerialConsoleAccessStatusInput", + "GetSerialConsoleAccessStatusOutput", + "GetSnapshotBlockPublicAccessStateInput", + "GetSnapshotBlockPublicAccessStateOutput", + "GetSpotPlacementScoresInput", + "GetSpotPlacementScoresOutput", + "GetSubnetCidrReservationsInput", + "GetSubnetCidrReservationsOutput", + "GetTransitGatewayAttachmentNatConfigurationInput", + "GetTransitGatewayAttachmentNatConfigurationOutput", + "GetTransitGatewayAttachmentPropagationsInput", + "GetTransitGatewayAttachmentPropagationsOutput", + "GetTransitGatewayMeteringPolicyEntriesInput", + "GetTransitGatewayMeteringPolicyEntriesOutput", + "GetTransitGatewayMulticastDomainAssociationsInput", + "GetTransitGatewayMulticastDomainAssociationsOutput", + "GetTransitGatewayPolicyTableAssociationsInput", + "GetTransitGatewayPolicyTableAssociationsOutput", + "GetTransitGatewayPolicyTableEntriesInput", + "GetTransitGatewayPolicyTableEntriesOutput", + "GetTransitGatewayPrefixListReferencesInput", + "GetTransitGatewayPrefixListReferencesOutput", + "GetTransitGatewayRouteTableAssociationsInput", + "GetTransitGatewayRouteTableAssociationsOutput", + "GetTransitGatewayRouteTablePropagationsInput", + "GetTransitGatewayRouteTablePropagationsOutput", + "GetVerifiedAccessEndpointPolicyInput", + "GetVerifiedAccessEndpointPolicyOutput", + "GetVerifiedAccessEndpointTargetsInput", + "GetVerifiedAccessEndpointTargetsOutput", + "GetVerifiedAccessGroupPolicyInput", + "GetVerifiedAccessGroupPolicyOutput", + "GetVpcResourcesBlockingEncryptionEnforcementInput", + "GetVpcResourcesBlockingEncryptionEnforcementOutput", + "GetVpnConnectionDeviceSampleConfigurationInput", + "GetVpnConnectionDeviceSampleConfigurationOutput", + "GetVpnConnectionDeviceTypesInput", + "GetVpnConnectionDeviceTypesOutput", + "GetVpnTunnelReplacementStatusInput", + "GetVpnTunnelReplacementStatusOutput", + "GpuDeviceInfo", + "GpuDeviceMemoryInfo", + "GpuInfo", + "GroupBy", + "GroupIdentifier", + "HaStatus", + "HealthCheckPathDestinationRequestObject", + "HealthCheckPathDestinationResponseObject", + "HealthCheckPathRequestObject", + "HealthCheckPathResponseObject", + "HealthCheckPathSourceRequestObject", + "HealthCheckPathSourceResponseObject", + "HibernationOptions", + "HibernationOptionsRequest", + "HistoryRecord", + "HistoryRecordEntry", + "Host", + "HostCpuOptions", + "HostCpuOptionsRequest", + "HostInstance", + "HostMaintenance", + "HostOffering", + "HostProperties", + "HostRecovery", + "HostReservation", + "HostTenancy", + "HostnameType", + "HttpTokensEnforcedState", + "HttpTokensState", + "HypervisorType", + "IKEVersionsListValue", + "IKEVersionsRequestListValue", + "IamInstanceProfile", + "IamInstanceProfileAssociation", + "IamInstanceProfileAssociationState", + "IamInstanceProfileSpecification", + "IcmpTypeCode", + "IdFormat", + "Igmpv2SupportValue", + "Image", + "ImageAncestryEntry", + "ImageAttributeName", + "ImageBlockPublicAccessDisabledState", + "ImageBlockPublicAccessEnabledState", + "ImageCriterion", + "ImageCriterionRequest", + "ImageDiskContainer", + "ImageFinding", + "ImageMetadata", + "ImageRecycleBinInfo", + "ImageReference", + "ImageReferenceOptionName", + "ImageReferenceResourceType", + "ImageState", + "ImageTypeValues", + "ImageUsageReport", + "ImageUsageReportEntry", + "ImageUsageResourceType", + "ImageUsageResourceTypeOption", + "ImageUsageResourceTypeOptionRequest", + "ImageUsageResourceTypeRequest", + "ImageWatermark", + "ImageWatermarkFilterRequest", + "ImageWatermarkFilterResponse", + "ImdsSupportValues", + "ImportClientVpnClientCertificateRevocationListInput", + "ImportClientVpnClientCertificateRevocationListOutput", + "ImportImageInput", + "ImportImageLicenseConfigurationRequest", + "ImportImageLicenseConfigurationResponse", + "ImportImageOutput", + "ImportImageTask", + "ImportInstanceInput", + "ImportInstanceLaunchSpecification", + "ImportInstanceOutput", + "ImportInstanceTaskDetails", + "ImportInstanceVolumeDetailItem", + "ImportKeyPairInput", + "ImportKeyPairOutput", + "ImportSnapshotInput", + "ImportSnapshotOutput", + "ImportSnapshotTask", + "ImportVolumeInput", + "ImportVolumeOutput", + "ImportVolumeTaskDetails", + "InferenceAcceleratorInfo", + "InferenceDeviceInfo", + "InferenceDeviceMemoryInfo", + "IngestionStatus", + "InitializationStatusDetails", + "InitializationType", + "Instance", + "InstanceApplicationStatus", + "InstanceAttachmentEnaSrdSpecification", + "InstanceAttachmentEnaSrdUdpSpecification", + "InstanceAttributeName", + "InstanceAutoRecoveryState", + "InstanceBandwidthWeighting", + "InstanceBlockDeviceMapping", + "InstanceBlockDeviceMappingSpecification", + "InstanceBootModeValues", + "InstanceCapacity", + "InstanceConnectEndpointDnsNames", + "InstanceConnectEndpointPublicDnsNames", + "InstanceCount", + "InstanceCreditSpecification", + "InstanceCreditSpecificationRequest", + "InstanceEventWindow", + "InstanceEventWindowAssociationRequest", + "InstanceEventWindowAssociationTarget", + "InstanceEventWindowDisassociationRequest", + "InstanceEventWindowState", + "InstanceEventWindowStateChange", + "InstanceEventWindowTimeRange", + "InstanceEventWindowTimeRangeRequest", + "InstanceExportDetails", + "InstanceFamilyCreditSpecification", + "InstanceGeneration", + "InstanceHealthStatus", + "InstanceImageMetadata", + "InstanceInterruptionBehavior", + "InstanceIpv4Prefix", + "InstanceIpv6Address", + "InstanceIpv6AddressRequest", + "InstanceIpv6Prefix", + "InstanceLifecycle", + "InstanceLifecycleType", + "InstanceMaintenanceOptions", + "InstanceMaintenanceOptionsRequest", + "InstanceMarketOptionsRequest", + "InstanceMatchCriteria", + "InstanceMetadataDefaultsResponse", + "InstanceMetadataEndpointState", + "InstanceMetadataOptionsRequest", + "InstanceMetadataOptionsResponse", + "InstanceMetadataOptionsState", + "InstanceMetadataProtocolState", + "InstanceMetadataTagsState", + "InstanceMonitoring", + "InstanceNetworkInterface", + "InstanceNetworkInterfaceAssociation", + "InstanceNetworkInterfaceAttachment", + "InstanceNetworkInterfaceSpecification", + "InstanceNetworkPerformanceOptions", + "InstanceNetworkPerformanceOptionsRequest", + "InstancePrivateIpAddress", + "InstanceRebootMigrationState", + "InstanceRequirements", + "InstanceRequirementsRequest", + "InstanceRequirementsWithMetadataRequest", + "InstanceSecondaryInterface", + "InstanceSecondaryInterfaceAttachment", + "InstanceSecondaryInterfacePrivateIpAddress", + "InstanceSecondaryInterfacePrivateIpAddressRequest", + "InstanceSecondaryInterfaceSpecificationRequest", + "InstanceSpecification", + "InstanceState", + "InstanceStateChange", + "InstanceStateName", + "InstanceStatus", + "InstanceStatusDetails", + "InstanceStatusEvent", + "InstanceStatusSummary", + "InstanceStorageEncryptionSupport", + "InstanceStorageInfo", + "InstanceTagNotificationAttribute", + "InstanceTopology", + "InstanceType", + "InstanceTypeHypervisor", + "InstanceTypeInfo", + "InstanceTypeInfoFromInstanceRequirements", + "InstanceTypeItem", + "InstanceTypeOffering", + "InstanceTypeSpecification", + "InstanceTypeSpecificationRequest", + "InstanceUsage", + "IntegrateServices", + "InterfacePermissionType", + "InterfaceProtocolType", + "InternetGateway", + "InternetGatewayAttachment", + "InternetGatewayBlockMode", + "InternetGatewayExclusionMode", + "InterruptibleCapacityAllocation", + "InterruptibleCapacityReservationAllocationStatus", + "InterruptionInfo", + "InterruptionType", + "IpAddressType", + "IpPermission", + "IpRange", + "IpScopeEnum", + "IpSource", + "IpVersionEnum", + "Ipam", + "IpamAddressHistoryRecord", + "IpamAddressHistoryResourceType", + "IpamAssociatedResourceDiscoveryStatus", + "IpamByoipAdvertisementType", + "IpamByoipCidrState", + "IpamCidrAuthorizationContext", + "IpamComplianceStatus", + "IpamDiscoveredAccount", + "IpamDiscoveredPublicAddress", + "IpamDiscoveredResourceCidr", + "IpamDiscoveredRoute", + "IpamDiscoveryFailureCode", + "IpamDiscoveryFailureReason", + "IpamExternalResourceVerificationToken", + "IpamExternalResourceVerificationTokenState", + "IpamInternetRegistryAssociation", + "IpamInternetRegistryAssociationAsn", + "IpamInternetRegistryAssociationCidr", + "IpamInternetRegistryAssociationState", + "IpamManagementState", + "IpamMeteredAccount", + "IpamNetworkInterfaceAttachmentStatus", + "IpamOperatingRegion", + "IpamOrganizationalUnitExclusion", + "IpamOverlapStatus", + "IpamPolicy", + "IpamPolicyAllocationRule", + "IpamPolicyAllocationRuleRequest", + "IpamPolicyDocument", + "IpamPolicyManagedBy", + "IpamPolicyOrganizationTarget", + "IpamPolicyResourceType", + "IpamPolicyState", + "IpamPool", + "IpamPoolAllocation", + "IpamPoolAllocationResourceType", + "IpamPoolAwsService", + "IpamPoolCidr", + "IpamPoolCidrFailureCode", + "IpamPoolCidrFailureReason", + "IpamPoolCidrState", + "IpamPoolPublicIpSource", + "IpamPoolSourceResource", + "IpamPoolSourceResourceRequest", + "IpamPoolSourceResourceType", + "IpamPoolState", + "IpamPrefixListResolver", + "IpamPrefixListResolverRule", + "IpamPrefixListResolverRuleCondition", + "IpamPrefixListResolverRuleConditionOperation", + "IpamPrefixListResolverRuleConditionRequest", + "IpamPrefixListResolverRuleRequest", + "IpamPrefixListResolverRuleType", + "IpamPrefixListResolverState", + "IpamPrefixListResolverTarget", + "IpamPrefixListResolverTargetState", + "IpamPrefixListResolverVersion", + "IpamPrefixListResolverVersionCreationStatus", + "IpamPrefixListResolverVersionEntry", + "IpamPublicAddressAssociationStatus", + "IpamPublicAddressAwsService", + "IpamPublicAddressSecurityGroup", + "IpamPublicAddressTag", + "IpamPublicAddressTags", + "IpamPublicAddressType", + "IpamResourceCidr", + "IpamResourceCidrIpSource", + "IpamResourceDiscovery", + "IpamResourceDiscoveryAssociation", + "IpamResourceDiscoveryAssociationState", + "IpamResourceDiscoveryState", + "IpamResourceTag", + "IpamResourceType", + "IpamRouteOriginAuthorization", + "IpamRouteOriginAuthorizationInfo", + "IpamRouteOverlap", + "IpamRouteProtectionFinding", + "IpamRoutingPolicyRegistration", + "IpamRoutingPolicyRegistrationDelta", + "IpamRoutingPolicyRegistrationDeltaState", + "IpamRoutingPolicyRegistrationState", + "IpamRpkiStatus", + "IpamRpkiStrength", + "IpamScope", + "IpamScopeExternalAuthorityConfiguration", + "IpamScopeExternalAuthorityType", + "IpamScopeState", + "IpamScopeType", + "IpamState", + "IpamTier", + "Ipv4PrefixSpecification", + "Ipv4PrefixSpecificationRequest", + "Ipv4PrefixSpecificationResponse", + "Ipv6AddressAttribute", + "Ipv6CidrAssociation", + "Ipv6CidrBlock", + "Ipv6Pool", + "Ipv6PrefixSpecification", + "Ipv6PrefixSpecificationRequest", + "Ipv6PrefixSpecificationResponse", + "Ipv6Range", + "Ipv6SupportValue", + "KeyFormat", + "KeyPairInfo", + "KeyType", + "LastError", + "LaunchPermission", + "LaunchPermissionModifications", + "LaunchSpecification", + "LaunchTemplate", + "LaunchTemplateAndOverridesResponse", + "LaunchTemplateAutoRecoveryState", + "LaunchTemplateBlockDeviceMapping", + "LaunchTemplateBlockDeviceMappingRequest", + "LaunchTemplateCapacityReservationSpecificationRequest", + "LaunchTemplateCapacityReservationSpecificationResponse", + "LaunchTemplateConfig", + "LaunchTemplateCpuOptions", + "LaunchTemplateCpuOptionsRequest", + "LaunchTemplateEbsBlockDevice", + "LaunchTemplateEbsBlockDeviceRequest", + "LaunchTemplateElasticInferenceAccelerator", + "LaunchTemplateElasticInferenceAcceleratorResponse", + "LaunchTemplateEnaSrdSpecification", + "LaunchTemplateEnaSrdUdpSpecification", + "LaunchTemplateEnclaveOptions", + "LaunchTemplateEnclaveOptionsRequest", + "LaunchTemplateErrorCode", + "LaunchTemplateHibernationOptions", + "LaunchTemplateHibernationOptionsRequest", + "LaunchTemplateHttpTokensState", + "LaunchTemplateIamInstanceProfileSpecification", + "LaunchTemplateIamInstanceProfileSpecificationRequest", + "LaunchTemplateInstanceMaintenanceOptions", + "LaunchTemplateInstanceMaintenanceOptionsRequest", + "LaunchTemplateInstanceMarketOptions", + "LaunchTemplateInstanceMarketOptionsRequest", + "LaunchTemplateInstanceMetadataEndpointState", + "LaunchTemplateInstanceMetadataOptions", + "LaunchTemplateInstanceMetadataOptionsRequest", + "LaunchTemplateInstanceMetadataOptionsState", + "LaunchTemplateInstanceMetadataProtocolIpv6", + "LaunchTemplateInstanceMetadataTagsState", + "LaunchTemplateInstanceNetworkInterfaceSpecification", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest", + "LaunchTemplateInstanceSecondaryInterfaceSpecification", + "LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest", + "LaunchTemplateLicenseConfiguration", + "LaunchTemplateLicenseConfigurationRequest", + "LaunchTemplateNetworkPerformanceOptions", + "LaunchTemplateNetworkPerformanceOptionsRequest", + "LaunchTemplateOverrides", + "LaunchTemplatePlacement", + "LaunchTemplatePlacementRequest", + "LaunchTemplatePrivateDnsNameOptions", + "LaunchTemplatePrivateDnsNameOptionsRequest", + "LaunchTemplateSpecification", + "LaunchTemplateSpotMarketOptions", + "LaunchTemplateSpotMarketOptionsRequest", + "LaunchTemplateTagSpecification", + "LaunchTemplateTagSpecificationRequest", + "LaunchTemplateVersion", + "LaunchTemplatesMonitoring", + "LaunchTemplatesMonitoringRequest", + "LicenseConfiguration", + "LicenseConfigurationRequest", + "ListImagesInRecycleBinInput", + "ListImagesInRecycleBinOutput", + "ListSnapshotsInRecycleBinInput", + "ListSnapshotsInRecycleBinOutput", + "ListVolumesInRecycleBinInput", + "ListVolumesInRecycleBinOutput", + "ListingState", + "ListingStatus", + "LoadBalancersConfig", + "LoadPermission", + "LoadPermissionModifications", + "LoadPermissionRequest", + "LocalGateway", + "LocalGatewayRoute", + "LocalGatewayRouteState", + "LocalGatewayRouteTable", + "LocalGatewayRouteTableMode", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "LocalGatewayRouteTableVpcAssociation", + "LocalGatewayRouteType", + "LocalGatewayVirtualInterface", + "LocalGatewayVirtualInterfaceConfigurationState", + "LocalGatewayVirtualInterfaceGroup", + "LocalGatewayVirtualInterfaceGroupConfigurationState", + "LocalStorage", + "LocalStorageType", + "LocationType", + "LockMode", + "LockSnapshotInput", + "LockSnapshotOutput", + "LockState", + "LockedSnapshotsInfo", + "LogDestinationType", + "MacHost", + "MacModificationTask", + "MacModificationTaskState", + "MacModificationTaskType", + "MacSystemIntegrityProtectionConfiguration", + "MacSystemIntegrityProtectionConfigurationRequest", + "MacSystemIntegrityProtectionSettingStatus", + "MaintenanceDetails", + "ManagedBy", + "ManagedPrefixList", + "ManagedResourceDefaultVisibility", + "ManagedResourceVisibilitySettings", + "MarketType", + "MediaAcceleratorInfo", + "MediaDeviceInfo", + "MediaDeviceMemoryInfo", + "MembershipType", + "MemoryGiBPerVCpu", + "MemoryGiBPerVCpuRequest", + "MemoryInfo", + "MemoryMiB", + "MemoryMiBRequest", + "MetadataDefaultHttpTokensState", + "Metric", + "MetricDataResult", + "MetricPoint", + "MetricType", + "MetricValue", + "ModificationQuoteCurrentConfiguration", + "ModificationReservationUpdate", + "ModificationTerms", + "ModifyAccountVpcEncryptionControlInput", + "ModifyAccountVpcEncryptionControlOutput", + "ModifyAddressAttributeInput", + "ModifyAddressAttributeOutput", + "ModifyApplicationStatusCheckInput", + "ModifyApplicationStatusCheckOutput", + "ModifyAvailabilityZoneGroupInput", + "ModifyAvailabilityZoneGroupOutput", + "ModifyAvailabilityZoneOptInStatus", + "ModifyCapacityReservationFleetInput", + "ModifyCapacityReservationFleetOutput", + "ModifyCapacityReservationInput", + "ModifyCapacityReservationOutput", + "ModifyClientVpnEndpointAuthorizationPolicyInput", + "ModifyClientVpnEndpointAuthorizationPolicyOutput", + "ModifyClientVpnEndpointInput", + "ModifyClientVpnEndpointOutput", + "ModifyDefaultCreditSpecificationInput", + "ModifyDefaultCreditSpecificationOutput", + "ModifyEbsDefaultKmsKeyIdInput", + "ModifyEbsDefaultKmsKeyIdOutput", + "ModifyFleetInput", + "ModifyFleetOutput", + "ModifyFpgaImageAttributeInput", + "ModifyFpgaImageAttributeOutput", + "ModifyHostsInput", + "ModifyHostsOutput", + "ModifyIdFormatInput", + "ModifyIdFormatOutput", + "ModifyIdentityIdFormatInput", + "ModifyIdentityIdFormatOutput", + "ModifyImageAttributeInput", + "ModifyImageAttributeOutput", + "ModifyInstanceAttributeInput", + "ModifyInstanceAttributeOutput", + "ModifyInstanceCapacityReservationAttributesInput", + "ModifyInstanceCapacityReservationAttributesOutput", + "ModifyInstanceConnectEndpointInput", + "ModifyInstanceConnectEndpointOutput", + "ModifyInstanceCpuOptionsInput", + "ModifyInstanceCpuOptionsOutput", + "ModifyInstanceCreditSpecificationInput", + "ModifyInstanceCreditSpecificationOutput", + "ModifyInstanceEventStartTimeInput", + "ModifyInstanceEventStartTimeOutput", + "ModifyInstanceEventWindowInput", + "ModifyInstanceEventWindowOutput", + "ModifyInstanceMaintenanceOptionsInput", + "ModifyInstanceMaintenanceOptionsOutput", + "ModifyInstanceMetadataDefaultsInput", + "ModifyInstanceMetadataDefaultsOutput", + "ModifyInstanceMetadataOptionsInput", + "ModifyInstanceMetadataOptionsOutput", + "ModifyInstanceNetworkPerformanceOptionsInput", + "ModifyInstanceNetworkPerformanceOptionsOutput", + "ModifyInstancePlacementInput", + "ModifyInstancePlacementOutput", + "ModifyIpamInput", + "ModifyIpamOutput", + "ModifyIpamPolicyAllocationRulesInput", + "ModifyIpamPolicyAllocationRulesOutput", + "ModifyIpamPoolAllocationInput", + "ModifyIpamPoolAllocationOutput", + "ModifyIpamPoolInput", + "ModifyIpamPoolOutput", + "ModifyIpamPrefixListResolverInput", + "ModifyIpamPrefixListResolverOutput", + "ModifyIpamPrefixListResolverTargetInput", + "ModifyIpamPrefixListResolverTargetOutput", + "ModifyIpamResourceCidrInput", + "ModifyIpamResourceCidrOutput", + "ModifyIpamResourceDiscoveryInput", + "ModifyIpamResourceDiscoveryOutput", + "ModifyIpamRoutingPolicyRegistrationInput", + "ModifyIpamRoutingPolicyRegistrationOutput", + "ModifyIpamScopeInput", + "ModifyIpamScopeOutput", + "ModifyLaunchTemplateInput", + "ModifyLaunchTemplateOutput", + "ModifyLocalGatewayRouteInput", + "ModifyLocalGatewayRouteOutput", + "ModifyManagedPrefixListInput", + "ModifyManagedPrefixListOutput", + "ModifyManagedResourceVisibilityInput", + "ModifyManagedResourceVisibilityOutput", + "ModifyNetworkInterfaceAttributeInput", + "ModifyNetworkInterfaceAttributeOutput", + "ModifyPrivateDnsNameOptionsInput", + "ModifyPrivateDnsNameOptionsOutput", + "ModifyPublicIpDnsNameOptionsInput", + "ModifyPublicIpDnsNameOptionsOutput", + "ModifyReservedInstancesInput", + "ModifyReservedInstancesOutput", + "ModifyRouteServerInput", + "ModifyRouteServerOutput", + "ModifySecurityGroupRulesInput", + "ModifySecurityGroupRulesOutput", + "ModifySnapshotAttributeInput", + "ModifySnapshotAttributeOutput", + "ModifySnapshotTierInput", + "ModifySnapshotTierOutput", + "ModifySpotFleetRequestInput", + "ModifySpotFleetRequestOutput", + "ModifySubnetAttributeInput", + "ModifySubnetAttributeOutput", + "ModifyTrafficMirrorFilterNetworkServicesInput", + "ModifyTrafficMirrorFilterNetworkServicesOutput", + "ModifyTrafficMirrorFilterRuleInput", + "ModifyTrafficMirrorFilterRuleOutput", + "ModifyTrafficMirrorSessionInput", + "ModifyTrafficMirrorSessionOutput", + "ModifyTransitGatewayAttachmentNatConfigurationInput", + "ModifyTransitGatewayAttachmentNatConfigurationOutput", + "ModifyTransitGatewayInput", + "ModifyTransitGatewayMeteringPolicyInput", + "ModifyTransitGatewayMeteringPolicyOutput", + "ModifyTransitGatewayOptions", + "ModifyTransitGatewayOutput", + "ModifyTransitGatewayPolicyTableEntryInput", + "ModifyTransitGatewayPolicyTableEntryOutput", + "ModifyTransitGatewayPrefixListReferenceInput", + "ModifyTransitGatewayPrefixListReferenceOutput", + "ModifyTransitGatewayVpcAttachmentInput", + "ModifyTransitGatewayVpcAttachmentOutput", + "ModifyTransitGatewayVpcAttachmentRequestOptions", + "ModifyVerifiedAccessEndpointCidrOptions", + "ModifyVerifiedAccessEndpointEniOptions", + "ModifyVerifiedAccessEndpointInput", + "ModifyVerifiedAccessEndpointLoadBalancerOptions", + "ModifyVerifiedAccessEndpointOutput", + "ModifyVerifiedAccessEndpointPolicyInput", + "ModifyVerifiedAccessEndpointPolicyOutput", + "ModifyVerifiedAccessEndpointPortRange", + "ModifyVerifiedAccessEndpointRdsOptions", + "ModifyVerifiedAccessGroupInput", + "ModifyVerifiedAccessGroupOutput", + "ModifyVerifiedAccessGroupPolicyInput", + "ModifyVerifiedAccessGroupPolicyOutput", + "ModifyVerifiedAccessInstanceInput", + "ModifyVerifiedAccessInstanceLoggingConfigurationInput", + "ModifyVerifiedAccessInstanceLoggingConfigurationOutput", + "ModifyVerifiedAccessInstanceOutput", + "ModifyVerifiedAccessNativeApplicationOidcOptions", + "ModifyVerifiedAccessTrustProviderDeviceOptions", + "ModifyVerifiedAccessTrustProviderInput", + "ModifyVerifiedAccessTrustProviderOidcOptions", + "ModifyVerifiedAccessTrustProviderOutput", + "ModifyVolumeAttributeInput", + "ModifyVolumeAttributeOutput", + "ModifyVolumeInput", + "ModifyVolumeOutput", + "ModifyVpcAttributeInput", + "ModifyVpcAttributeOutput", + "ModifyVpcBlockPublicAccessExclusionInput", + "ModifyVpcBlockPublicAccessExclusionOutput", + "ModifyVpcBlockPublicAccessOptionsInput", + "ModifyVpcBlockPublicAccessOptionsOutput", + "ModifyVpcEncryptionControlInput", + "ModifyVpcEncryptionControlOutput", + "ModifyVpcEndpointConnectionNotificationInput", + "ModifyVpcEndpointConnectionNotificationOutput", + "ModifyVpcEndpointInput", + "ModifyVpcEndpointOutput", + "ModifyVpcEndpointPayerResponsibilityInput", + "ModifyVpcEndpointPayerResponsibilityOutput", + "ModifyVpcEndpointServiceConfigurationInput", + "ModifyVpcEndpointServiceConfigurationOutput", + "ModifyVpcEndpointServicePayerResponsibilityInput", + "ModifyVpcEndpointServicePayerResponsibilityOutput", + "ModifyVpcEndpointServicePermissionsInput", + "ModifyVpcEndpointServicePermissionsOutput", + "ModifyVpcPeeringConnectionOptionsInput", + "ModifyVpcPeeringConnectionOptionsOutput", + "ModifyVpcTenancyInput", + "ModifyVpcTenancyOutput", + "ModifyVpnConnectionInput", + "ModifyVpnConnectionOptionsInput", + "ModifyVpnConnectionOptionsOutput", + "ModifyVpnConnectionOutput", + "ModifyVpnTunnelCertificateInput", + "ModifyVpnTunnelCertificateOutput", + "ModifyVpnTunnelOptionsInput", + "ModifyVpnTunnelOptionsOutput", + "ModifyVpnTunnelOptionsSpecification", + "MonitorInstancesInput", + "MonitorInstancesOutput", + "Monitoring", + "MonitoringState", + "MoveAddressToVpcInput", + "MoveAddressToVpcOutput", + "MoveByoipCidrToIpamInput", + "MoveByoipCidrToIpamOutput", + "MoveCapacityReservationInstancesInput", + "MoveCapacityReservationInstancesOutput", + "MoveStatus", + "MovingAddressStatus", + "MulticastSupportValue", + "NatGateway", + "NatGatewayAddress", + "NatGatewayAddressStatus", + "NatGatewayApplianceModifyState", + "NatGatewayApplianceState", + "NatGatewayApplianceType", + "NatGatewayAttachedAppliance", + "NatGatewayState", + "NativeApplicationOidcOptions", + "NestedVirtualizationSpecification", + "NetworkAcl", + "NetworkAclAssociation", + "NetworkAclEntry", + "NetworkBandwidthGbps", + "NetworkBandwidthGbpsRequest", + "NetworkCardInfo", + "NetworkCardInterfaceType", + "NetworkInfo", + "NetworkInsightsAccessScope", + "NetworkInsightsAccessScopeAnalysis", + "NetworkInsightsAccessScopeContent", + "NetworkInsightsAnalysis", + "NetworkInsightsPath", + "NetworkInterface", + "NetworkInterfaceAssociation", + "NetworkInterfaceAttachment", + "NetworkInterfaceAttachmentChanges", + "NetworkInterfaceAttribute", + "NetworkInterfaceCount", + "NetworkInterfaceCountRequest", + "NetworkInterfaceCreationType", + "NetworkInterfaceIpv6Address", + "NetworkInterfacePermission", + "NetworkInterfacePermissionState", + "NetworkInterfacePermissionStateCode", + "NetworkInterfacePrivateIpAddress", + "NetworkInterfaceStatus", + "NetworkInterfaceType", + "NetworkProtocolEnum", + "NeuronDeviceCoreInfo", + "NeuronDeviceInfo", + "NeuronDeviceMemoryInfo", + "NeuronInfo", + "NewDhcpConfiguration", + "NitroEnclavesSupport", + "NitroTpmInfo", + "NitroTpmSupport", + "OfferingClassType", + "OfferingTypeValues", + "OidcOptions", + "OnDemandAllocationStrategy", + "OnDemandOptions", + "OnDemandOptionsRequest", + "OperationType", + "OperatorRequest", + "OperatorResponse", + "OutpostLag", + "OutputFormat", + "PacketHeaderStatement", + "PacketHeaderStatementRequest", + "PartitionLoadFrequency", + "PathComponent", + "PathFilter", + "PathRequestFilter", + "PathStatement", + "PathStatementRequest", + "PayerResponsibility", + "PayerResponsibilityEntry", + "PayerResponsibilityScope", + "PayerResponsibilityType", + "PaymentOption", + "PciId", + "PeeringAttachmentStatus", + "PeeringConnectionOptions", + "PeeringConnectionOptionsRequest", + "PeeringTgwInfo", + "PerformanceFactorReference", + "PerformanceFactorReferenceRequest", + "PerformanceStatusSummary", + "PeriodType", + "PermissionGroup", + "Phase1DHGroupNumbersListValue", + "Phase1DHGroupNumbersRequestListValue", + "Phase1EncryptionAlgorithmsListValue", + "Phase1EncryptionAlgorithmsRequestListValue", + "Phase1IntegrityAlgorithmsListValue", + "Phase1IntegrityAlgorithmsRequestListValue", + "Phase2DHGroupNumbersListValue", + "Phase2DHGroupNumbersRequestListValue", + "Phase2EncryptionAlgorithmsListValue", + "Phase2EncryptionAlgorithmsRequestListValue", + "Phase2IntegrityAlgorithmsListValue", + "Phase2IntegrityAlgorithmsRequestListValue", + "PhcSupport", + "Placement", + "PlacementGroup", + "PlacementGroupInfo", + "PlacementGroupState", + "PlacementGroupStrategy", + "PlacementResponse", + "PlacementStrategy", + "PlatformValues", + "PoolCidrBlock", + "PortRange", + "PrefixList", + "PrefixListAssociation", + "PrefixListEntry", + "PrefixListId", + "PrefixListState", + "PriceSchedule", + "PriceScheduleSpecification", + "PricingDetail", + "PrincipalIdFormat", + "PrincipalType", + "PrivateDnsDetails", + "PrivateDnsNameConfiguration", + "PrivateDnsNameOptionsOnLaunch", + "PrivateDnsNameOptionsRequest", + "PrivateDnsNameOptionsResponse", + "PrivateIpAddressSpecification", + "ProcessorInfo", + "ProductCode", + "ProductCodeValues", + "PropagatingVgw", + "Protocol", + "ProtocolValue", + "ProvisionByoipCidrInput", + "ProvisionByoipCidrOutput", + "ProvisionIpamByoasnInput", + "ProvisionIpamByoasnOutput", + "ProvisionIpamPoolCidrInput", + "ProvisionIpamPoolCidrOutput", + "ProvisionPublicIpv4PoolCidrInput", + "ProvisionPublicIpv4PoolCidrOutput", + "ProvisionedBandwidth", + "PtrUpdateStatus", + "PublicIpDnsNameOptions", + "PublicIpDnsOption", + "PublicIpv4Pool", + "PublicIpv4PoolRange", + "Purchase", + "PurchaseCapacityBlockExtensionInput", + "PurchaseCapacityBlockExtensionOutput", + "PurchaseCapacityBlockInput", + "PurchaseCapacityBlockOutput", + "PurchaseHostReservationInput", + "PurchaseHostReservationOutput", + "PurchaseRequest", + "PurchaseReservedInstancesOfferingInput", + "PurchaseReservedInstancesOfferingOutput", + "PurchaseScheduledInstancesInput", + "PurchaseScheduledInstancesOutput", + "RIProductDescription", + "RebootInstancesInput", + "RebootInstancesOutput", + "RebootMigrationSupport", + "RecurringCharge", + "RecurringChargeFrequency", + "ReferencedSecurityGroup", + "Region", + "RegionGeography", + "RegionalSummary", + "RegisterImageInput", + "RegisterImageOutput", + "RegisterInstanceEventNotificationAttributesInput", + "RegisterInstanceEventNotificationAttributesOutput", + "RegisterInstanceTagAttributeRequest", + "RegisterTransitGatewayMulticastGroupMembersInput", + "RegisterTransitGatewayMulticastGroupMembersOutput", + "RegisterTransitGatewayMulticastGroupSourcesInput", + "RegisterTransitGatewayMulticastGroupSourcesOutput", + "RegisteredInstance", + "RejectCapacityReservationBillingOwnershipInput", + "RejectCapacityReservationBillingOwnershipOutput", + "RejectTransitGatewayClientVpnAttachmentInput", + "RejectTransitGatewayClientVpnAttachmentOutput", + "RejectTransitGatewayMulticastDomainAssociationsInput", + "RejectTransitGatewayMulticastDomainAssociationsOutput", + "RejectTransitGatewayPeeringAttachmentInput", + "RejectTransitGatewayPeeringAttachmentOutput", + "RejectTransitGatewayVpcAttachmentInput", + "RejectTransitGatewayVpcAttachmentOutput", + "RejectVpcEndpointConnectionsInput", + "RejectVpcEndpointConnectionsOutput", + "RejectVpcPeeringConnectionInput", + "RejectVpcPeeringConnectionOutput", + "ReleaseAddressInput", + "ReleaseAddressOutput", + "ReleaseHostsInput", + "ReleaseHostsOutput", + "ReleaseIpamPoolAllocationInput", + "ReleaseIpamPoolAllocationOutput", + "RemoveIpamOperatingRegion", + "RemoveIpamOrganizationalUnitExclusion", + "RemovePrefixListEntry", + "ReplaceIamInstanceProfileAssociationInput", + "ReplaceIamInstanceProfileAssociationOutput", + "ReplaceImageCriteriaInAllowedImagesSettingsInput", + "ReplaceImageCriteriaInAllowedImagesSettingsOutput", + "ReplaceImageInstanceTypeSpecificationInput", + "ReplaceImageInstanceTypeSpecificationOutput", + "ReplaceNetworkAclAssociationInput", + "ReplaceNetworkAclAssociationOutput", + "ReplaceNetworkAclEntryInput", + "ReplaceNetworkAclEntryOutput", + "ReplaceRootVolumeTask", + "ReplaceRootVolumeTaskState", + "ReplaceRouteInput", + "ReplaceRouteOutput", + "ReplaceRouteTableAssociationInput", + "ReplaceRouteTableAssociationOutput", + "ReplaceTransitGatewayRouteInput", + "ReplaceTransitGatewayRouteOutput", + "ReplaceVpnTunnelInput", + "ReplaceVpnTunnelOutput", + "ReplacementStrategy", + "ReportInstanceReasonCodes", + "ReportInstanceStatusInput", + "ReportInstanceStatusOutput", + "ReportState", + "ReportStatusType", + "RequestFilterPortRange", + "RequestIpamResourceTag", + "RequestLaunchTemplateData", + "RequestSpotFleetInput", + "RequestSpotFleetOutput", + "RequestSpotInstancesInput", + "RequestSpotInstancesOutput", + "RequestSpotLaunchSpecification", + "Reservation", + "ReservationEndDateType", + "ReservationFleetInstanceSpecification", + "ReservationState", + "ReservationType", + "ReservationValue", + "ReservedCapacityAllocationStrategy", + "ReservedCapacityFallbackMarketType", + "ReservedCapacityFallbackOptions", + "ReservedCapacityFallbackOptionsRequest", + "ReservedCapacityOptions", + "ReservedCapacityOptionsRequest", + "ReservedInstanceLimitPrice", + "ReservedInstanceReservationValue", + "ReservedInstanceState", + "ReservedInstances", + "ReservedInstancesConfiguration", + "ReservedInstancesId", + "ReservedInstancesListing", + "ReservedInstancesModification", + "ReservedInstancesModificationResult", + "ReservedInstancesOffering", + "ResetAddressAttributeInput", + "ResetAddressAttributeOutput", + "ResetEbsDefaultKmsKeyIdInput", + "ResetEbsDefaultKmsKeyIdOutput", + "ResetFpgaImageAttributeInput", + "ResetFpgaImageAttributeName", + "ResetFpgaImageAttributeOutput", + "ResetImageAttributeInput", + "ResetImageAttributeName", + "ResetImageAttributeOutput", + "ResetInstanceAttributeInput", + "ResetInstanceAttributeOutput", + "ResetNetworkInterfaceAttributeInput", + "ResetNetworkInterfaceAttributeOutput", + "ResetSnapshotAttributeInput", + "ResetSnapshotAttributeOutput", + "ResourceStatement", + "ResourceStatementRequest", + "ResourceType", + "ResourceTypeOption", + "ResourceTypeRequest", + "ResponseError", + "ResponseLaunchTemplateData", + "RestoreAddressToClassicInput", + "RestoreAddressToClassicOutput", + "RestoreImageFromRecycleBinInput", + "RestoreImageFromRecycleBinOutput", + "RestoreManagedPrefixListVersionInput", + "RestoreManagedPrefixListVersionOutput", + "RestoreSnapshotFromRecycleBinInput", + "RestoreSnapshotFromRecycleBinOutput", + "RestoreSnapshotTierInput", + "RestoreSnapshotTierOutput", + "RestoreVolumeFromRecycleBinInput", + "RestoreVolumeFromRecycleBinOutput", + "RevokeClientVpnIngressInput", + "RevokeClientVpnIngressOutput", + "RevokeSecurityGroupEgressInput", + "RevokeSecurityGroupEgressOutput", + "RevokeSecurityGroupIngressInput", + "RevokeSecurityGroupIngressOutput", + "RevokedSecurityGroupRule", + "Rir", + "RootDeviceType", + "Route", + "RouteOrigin", + "RouteServer", + "RouteServerAssociation", + "RouteServerAssociationState", + "RouteServerBfdState", + "RouteServerBfdStatus", + "RouteServerBgpOptions", + "RouteServerBgpOptionsRequest", + "RouteServerBgpState", + "RouteServerBgpStatus", + "RouteServerEndpoint", + "RouteServerEndpointState", + "RouteServerPeer", + "RouteServerPeerLivenessMode", + "RouteServerPeerState", + "RouteServerPersistRoutesAction", + "RouteServerPersistRoutesState", + "RouteServerPropagation", + "RouteServerPropagationState", + "RouteServerRoute", + "RouteServerRouteInstallationDetail", + "RouteServerRouteInstallationStatus", + "RouteServerRouteStatus", + "RouteServerState", + "RouteState", + "RouteTable", + "RouteTableAssociation", + "RouteTableAssociationState", + "RouteTableAssociationStateCode", + "RuleAction", + "RuleGroupRuleOptionsPair", + "RuleGroupTypePair", + "RuleOption", + "RunInstancesInput", + "RunInstancesMonitoringEnabled", + "RunInstancesOutput", + "RunScheduledInstancesInput", + "RunScheduledInstancesOutput", + "S3ObjectTag", + "S3Storage", + "SSEType", + "ScanResultCondition", + "ScanResultConditionRequest", + "ScanResults", + "Schedule", + "ScheduledInstance", + "ScheduledInstanceAvailability", + "ScheduledInstanceRecurrence", + "ScheduledInstanceRecurrenceRequest", + "ScheduledInstancesBlockDeviceMapping", + "ScheduledInstancesEbs", + "ScheduledInstancesIamInstanceProfile", + "ScheduledInstancesIpv6Address", + "ScheduledInstancesLaunchSpecification", + "ScheduledInstancesMonitoring", + "ScheduledInstancesNetworkInterface", + "ScheduledInstancesPlacement", + "ScheduledInstancesPrivateIpAddressConfig", + "SearchLocalGatewayRoutesInput", + "SearchLocalGatewayRoutesOutput", + "SearchTransitGatewayMulticastGroupsInput", + "SearchTransitGatewayMulticastGroupsOutput", + "SearchTransitGatewayRoutesInput", + "SearchTransitGatewayRoutesOutput", + "SecondaryInterface", + "SecondaryInterfaceAttachment", + "SecondaryInterfaceIpv4Address", + "SecondaryInterfacePrivateIpAddressSpecification", + "SecondaryInterfacePrivateIpAddressSpecificationRequest", + "SecondaryInterfaceStatus", + "SecondaryInterfaceType", + "SecondaryNetwork", + "SecondaryNetworkCidrBlockAssociationState", + "SecondaryNetworkIpv4CidrBlockAssociation", + "SecondaryNetworkState", + "SecondaryNetworkType", + "SecondarySubnet", + "SecondarySubnetCidrBlockAssociationState", + "SecondarySubnetIpv4CidrBlockAssociation", + "SecondarySubnetState", + "SecureBlobAttributeValue", + "SecurityGroup", + "SecurityGroupForVpc", + "SecurityGroupIdentifier", + "SecurityGroupReference", + "SecurityGroupReferencingSupportValue", + "SecurityGroupRule", + "SecurityGroupRuleDescription", + "SecurityGroupRuleRequest", + "SecurityGroupRuleUpdate", + "SecurityGroupVpcAssociation", + "SecurityGroupVpcAssociationState", + "SelfServicePortal", + "SendDiagnosticInterruptInput", + "SendDiagnosticInterruptOutput", + "ServiceConfiguration", + "ServiceConnectivityType", + "ServiceDetail", + "ServiceLinkVirtualInterface", + "ServiceLinkVirtualInterfaceConfigurationState", + "ServiceManaged", + "ServiceState", + "ServiceType", + "ServiceTypeDetail", + "SeverityLabel", + "ShutdownBehavior", + "SlotDateTimeRangeRequest", + "SlotStartTimeRangeRequest", + "Snapshot", + "SnapshotAttributeName", + "SnapshotBlockPublicAccessState", + "SnapshotDetail", + "SnapshotDiskContainer", + "SnapshotInfo", + "SnapshotLocationEnum", + "SnapshotRecycleBinInfo", + "SnapshotReturnCodes", + "SnapshotState", + "SnapshotTaskDetail", + "SnapshotTierStatus", + "SpotAllocationStrategy", + "SpotCapacityRebalance", + "SpotDatafeedSubscription", + "SpotFleetLaunchSpecification", + "SpotFleetMonitoring", + "SpotFleetRequestConfig", + "SpotFleetRequestConfigData", + "SpotFleetTagSpecification", + "SpotInstanceInterruptionBehavior", + "SpotInstanceRequest", + "SpotInstanceState", + "SpotInstanceStateFault", + "SpotInstanceStatus", + "SpotInstanceType", + "SpotMaintenanceStrategies", + "SpotMarketOptions", + "SpotOptions", + "SpotOptionsRequest", + "SpotPlacement", + "SpotPlacementScore", + "SpotPrice", + "SpreadLevel", + "SqlServerLicenseUsage", + "StaleIpPermission", + "StaleSecurityGroup", + "StartDeclarativePoliciesReportInput", + "StartDeclarativePoliciesReportOutput", + "StartInstancesInput", + "StartInstancesOutput", + "StartNetworkInsightsAccessScopeAnalysisInput", + "StartNetworkInsightsAccessScopeAnalysisOutput", + "StartNetworkInsightsAnalysisInput", + "StartNetworkInsightsAnalysisOutput", + "StartVpcEndpointServicePrivateDnsVerificationInput", + "StartVpcEndpointServicePrivateDnsVerificationOutput", + "State", + "StateReason", + "StaticSourcesSupportValue", + "StatisticType", + "Status", + "StatusName", + "StatusType", + "StopInstancesInput", + "StopInstancesOutput", + "Storage", + "StorageLocation", + "StorageTier", + "StoreImageTaskResult", + "Subnet", + "SubnetAssociation", + "SubnetCidrBlockState", + "SubnetCidrBlockStateCode", + "SubnetCidrReservation", + "SubnetCidrReservationType", + "SubnetConfiguration", + "SubnetIpPrefixes", + "SubnetIpv6CidrBlockAssociation", + "SubnetState", + "Subscription", + "SuccessfulAssociationResponseObject", + "SuccessfulInstanceCreditSpecificationItem", + "SuccessfulQueuedPurchaseDeletion", + "SuccessfulSuppressionResponseObject", + "SummaryStatus", + "SupportabilityMarketType", + "SupportabilityScore", + "SupportedAdditionalProcessorFeature", + "SupportedRegionDetail", + "Tag", + "TagDescription", + "TagFieldSpecificationRequest", + "TagFieldSpecificationResponse", + "TagSpecification", + "TaggableResourceType", + "TargetCapacitySpecification", + "TargetCapacitySpecificationRequest", + "TargetCapacityUnitType", + "TargetConfiguration", + "TargetConfigurationRequest", + "TargetGroup", + "TargetGroupsConfig", + "TargetNetwork", + "TargetReservationValue", + "TargetStorageTier", + "TelemetryStatus", + "Tenancy", + "TerminateClientVpnConnectionsInput", + "TerminateClientVpnConnectionsOutput", + "TerminateConnectionStatus", + "TerminateInstancesInput", + "TerminateInstancesOutput", + "ThroughResourcesStatement", + "ThroughResourcesStatementRequest", + "TieringOperationStatus", + "TokenState", + "TotalLocalStorageGB", + "TotalLocalStorageGBRequest", + "TpmSupportValues", + "TrafficDirection", + "TrafficIpAddressType", + "TrafficMirrorFilter", + "TrafficMirrorFilterRule", + "TrafficMirrorFilterRuleField", + "TrafficMirrorNetworkService", + "TrafficMirrorPortRange", + "TrafficMirrorPortRangeRequest", + "TrafficMirrorRuleAction", + "TrafficMirrorSession", + "TrafficMirrorSessionField", + "TrafficMirrorTarget", + "TrafficMirrorTargetType", + "TrafficType", + "TransferType", + "TransitGateway", + "TransitGatewayAssociation", + "TransitGatewayAssociationState", + "TransitGatewayAttachment", + "TransitGatewayAttachmentAssociation", + "TransitGatewayAttachmentBgpConfiguration", + "TransitGatewayAttachmentNatGatewaySupportState", + "TransitGatewayAttachmentNatGatewaySupportValue", + "TransitGatewayAttachmentNatSystemRouteSupportValue", + "TransitGatewayAttachmentPropagation", + "TransitGatewayAttachmentResourceType", + "TransitGatewayAttachmentState", + "TransitGatewayAttachmentStatusType", + "TransitGatewayClientVpnAttachment", + "TransitGatewayConfigurationDescribeEndpointStructure", + "TransitGatewayConfigurationInputStructure", + "TransitGatewayConnect", + "TransitGatewayConnectOptions", + "TransitGatewayConnectPeer", + "TransitGatewayConnectPeerConfiguration", + "TransitGatewayConnectPeerState", + "TransitGatewayConnectRequestBgpOptions", + "TransitGatewayMeteringPayerType", + "TransitGatewayMeteringPolicy", + "TransitGatewayMeteringPolicyEntry", + "TransitGatewayMeteringPolicyEntryState", + "TransitGatewayMeteringPolicyRule", + "TransitGatewayMeteringPolicyState", + "TransitGatewayMulitcastDomainAssociationState", + "TransitGatewayMulticastDeregisteredGroupMembers", + "TransitGatewayMulticastDeregisteredGroupSources", + "TransitGatewayMulticastDomain", + "TransitGatewayMulticastDomainAssociation", + "TransitGatewayMulticastDomainAssociations", + "TransitGatewayMulticastDomainOptions", + "TransitGatewayMulticastDomainState", + "TransitGatewayMulticastGroup", + "TransitGatewayMulticastRegisteredGroupMembers", + "TransitGatewayMulticastRegisteredGroupSources", + "TransitGatewayNatRule", + "TransitGatewayNatRuleRequest", + "TransitGatewayNatRuleState", + "TransitGatewayOptions", + "TransitGatewayPeeringAttachment", + "TransitGatewayPeeringAttachmentOptions", + "TransitGatewayPolicyRule", + "TransitGatewayPolicyRuleMetaData", + "TransitGatewayPolicyTable", + "TransitGatewayPolicyTableAssociation", + "TransitGatewayPolicyTableEntry", + "TransitGatewayPolicyTableEntryState", + "TransitGatewayPolicyTableState", + "TransitGatewayPrefixListAttachment", + "TransitGatewayPrefixListReference", + "TransitGatewayPrefixListReferenceState", + "TransitGatewayPropagation", + "TransitGatewayPropagationState", + "TransitGatewayRequestOptions", + "TransitGatewayRequestPolicyRule", + "TransitGatewayRequestPolicyRuleMetaData", + "TransitGatewayRoute", + "TransitGatewayRouteAttachment", + "TransitGatewayRouteState", + "TransitGatewayRouteTable", + "TransitGatewayRouteTableAnnouncement", + "TransitGatewayRouteTableAnnouncementDirection", + "TransitGatewayRouteTableAnnouncementState", + "TransitGatewayRouteTableAssociation", + "TransitGatewayRouteTablePropagation", + "TransitGatewayRouteTableRoute", + "TransitGatewayRouteTableState", + "TransitGatewayRouteType", + "TransitGatewayState", + "TransitGatewayVpcAttachment", + "TransitGatewayVpcAttachmentOptions", + "TransportProtocol", + "TrunkInterfaceAssociation", + "TrustProviderType", + "TunnelInsideIpVersion", + "TunnelOption", + "UnassignIpv6AddressesInput", + "UnassignIpv6AddressesOutput", + "UnassignPrivateIpAddressesInput", + "UnassignPrivateIpAddressesOutput", + "UnassignPrivateNatGatewayAddressInput", + "UnassignPrivateNatGatewayAddressOutput", + "UnlimitedSupportedInstanceFamily", + "UnlockSnapshotInput", + "UnlockSnapshotOutput", + "UnmonitorInstancesInput", + "UnmonitorInstancesOutput", + "UnsuccessfulAssociationResponseObject", + "UnsuccessfulInstanceCreditSpecificationErrorCode", + "UnsuccessfulInstanceCreditSpecificationItem", + "UnsuccessfulInstanceCreditSpecificationItemError", + "UnsuccessfulItem", + "UnsuccessfulItemError", + "UnsuccessfulSuppressionResponseObject", + "UpdateCapacityManagerMonitoredTagKeysInput", + "UpdateCapacityManagerMonitoredTagKeysOutput", + "UpdateCapacityManagerOrganizationsAccessInput", + "UpdateCapacityManagerOrganizationsAccessOutput", + "UpdateInterruptibleCapacityReservationAllocationInput", + "UpdateInterruptibleCapacityReservationAllocationOutput", + "UpdateSecurityGroupRuleDescriptionsEgressInput", + "UpdateSecurityGroupRuleDescriptionsEgressOutput", + "UpdateSecurityGroupRuleDescriptionsIngressInput", + "UpdateSecurityGroupRuleDescriptionsIngressOutput", + "UsageClassType", + "UserBucket", + "UserBucketDetails", + "UserData", + "UserIdGroupPair", + "UserTrustProviderType", + "VCpuCountRange", + "VCpuCountRangeRequest", + "VCpuInfo", + "ValidateSecurityGroupQuotasForInterfaceInput", + "ValidateSecurityGroupQuotasForInterfaceOutput", + "ValidationError", + "ValidationWarning", + "VerificationMethod", + "VerifiedAccessEndpoint", + "VerifiedAccessEndpointAttachmentType", + "VerifiedAccessEndpointCidrOptions", + "VerifiedAccessEndpointEniOptions", + "VerifiedAccessEndpointLoadBalancerOptions", + "VerifiedAccessEndpointPortRange", + "VerifiedAccessEndpointProtocol", + "VerifiedAccessEndpointRdsOptions", + "VerifiedAccessEndpointStatus", + "VerifiedAccessEndpointStatusCode", + "VerifiedAccessEndpointTarget", + "VerifiedAccessEndpointType", + "VerifiedAccessGroup", + "VerifiedAccessInstance", + "VerifiedAccessInstanceCustomSubDomain", + "VerifiedAccessInstanceLoggingConfiguration", + "VerifiedAccessInstanceOpenVpnClientConfiguration", + "VerifiedAccessInstanceOpenVpnClientConfigurationRoute", + "VerifiedAccessInstanceUserTrustProviderClientConfiguration", + "VerifiedAccessLogCloudWatchLogsDestination", + "VerifiedAccessLogCloudWatchLogsDestinationOptions", + "VerifiedAccessLogDeliveryStatus", + "VerifiedAccessLogDeliveryStatusCode", + "VerifiedAccessLogKinesisDataFirehoseDestination", + "VerifiedAccessLogKinesisDataFirehoseDestinationOptions", + "VerifiedAccessLogOptions", + "VerifiedAccessLogS3Destination", + "VerifiedAccessLogS3DestinationOptions", + "VerifiedAccessLogs", + "VerifiedAccessSseSpecificationRequest", + "VerifiedAccessSseSpecificationResponse", + "VerifiedAccessTrustProvider", + "VerifiedAccessTrustProviderCondensed", + "VgwTelemetry", + "VirtualizationType", + "Volume", + "VolumeAttachment", + "VolumeAttachmentState", + "VolumeAttributeName", + "VolumeDetail", + "VolumeModification", + "VolumeModificationState", + "VolumeRecycleBinInfo", + "VolumeState", + "VolumeStatusAction", + "VolumeStatusAttachmentStatus", + "VolumeStatusDetails", + "VolumeStatusEvent", + "VolumeStatusInfo", + "VolumeStatusInfoStatus", + "VolumeStatusItem", + "VolumeStatusName", + "VolumeType", + "Vpc", + "VpcAttachment", + "VpcAttributeName", + "VpcBlockPublicAccessExclusion", + "VpcBlockPublicAccessExclusionState", + "VpcBlockPublicAccessExclusionsAllowed", + "VpcBlockPublicAccessOptions", + "VpcBlockPublicAccessState", + "VpcCidrBlockAssociation", + "VpcCidrBlockState", + "VpcCidrBlockStateCode", + "VpcClassicLink", + "VpcEncryptionControl", + "VpcEncryptionControlConfiguration", + "VpcEncryptionControlExclusion", + "VpcEncryptionControlExclusionState", + "VpcEncryptionControlExclusionStateInput", + "VpcEncryptionControlExclusions", + "VpcEncryptionControlMode", + "VpcEncryptionControlState", + "VpcEncryptionNonCompliantResource", + "VpcEndpoint", + "VpcEndpointAssociation", + "VpcEndpointConnection", + "VpcEndpointType", + "VpcIpv6CidrBlockAssociation", + "VpcPeeringConnection", + "VpcPeeringConnectionOptionsDescription", + "VpcPeeringConnectionStateReason", + "VpcPeeringConnectionStateReasonCode", + "VpcPeeringConnectionVpcInfo", + "VpcState", + "VpcTenancy", + "VpnConcentrator", + "VpnConcentratorType", + "VpnConnection", + "VpnConnectionDeviceType", + "VpnConnectionOptions", + "VpnConnectionOptionsSpecification", + "VpnEcmpSupportValue", + "VpnGateway", + "VpnProtocol", + "VpnState", + "VpnStaticRoute", + "VpnStaticRouteSource", + "VpnTunnelBandwidth", + "VpnTunnelLogOptions", + "VpnTunnelLogOptionsSpecification", + "VpnTunnelOptionsSpecification", + "VpnTunnelProvisioningStatus", + "WeekDay", + "WithdrawByoipCidrInput", + "WithdrawByoipCidrOutput", + "ZeroSizePreference", + "scope", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ACCEPT_ADDRESS_TRANSFER", + "ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP", + "ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE", + "ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + "ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + "ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + "ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT", + "ACCEPT_VPC_ENDPOINT_CONNECTIONS", + "ACCEPT_VPC_PEERING_CONNECTION", + "ADVERTISE_BYOIP_CIDR", + "ALLOCATE_ADDRESS", + "ALLOCATE_HOSTS", + "ALLOCATE_IPAM_POOL_CIDR", + "APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK", + "ASSIGN_IPV6_ADDRESSES", + "ASSIGN_PRIVATE_IP_ADDRESSES", + "ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS", + "ASSOCIATE_ADDRESS", + "ASSOCIATE_APPLICATION_STATUS_CHECK", + "ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER", + "ASSOCIATE_CLIENT_VPN_TARGET_NETWORK", + "ASSOCIATE_DHCP_OPTIONS", + "ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE", + "ASSOCIATE_IAM_INSTANCE_PROFILE", + "ASSOCIATE_INSTANCE_EVENT_WINDOW", + "ASSOCIATE_IPAM_BYOASN", + "ASSOCIATE_IPAM_RESOURCE_DISCOVERY", + "ASSOCIATE_NAT_GATEWAY_ADDRESS", + "ASSOCIATE_ROUTE_SERVER", + "ASSOCIATE_ROUTE_TABLE", + "ASSOCIATE_SECURITY_GROUP_VPC", + "ASSOCIATE_SUBNET_CIDR_BLOCK", + "ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + "ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE", + "ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE", + "ASSOCIATE_TRUNK_INTERFACE", + "ASSOCIATE_VPC_CIDR_BLOCK", + "ATTACH_CLASSIC_LINK_VPC", + "ATTACH_IMAGE_WATERMARK", + "ATTACH_INTERNET_GATEWAY", + "ATTACH_NETWORK_INTERFACE", + "ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER", + "ATTACH_VOLUME", + "ATTACH_VPN_GATEWAY", + "AUTHORIZE_CLIENT_VPN_INGRESS", + "AUTHORIZE_SECURITY_GROUP_EGRESS", + "AUTHORIZE_SECURITY_GROUP_INGRESS", + "BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS", + "BUNDLE_INSTANCE", + "CANCEL_BUNDLE_TASK", + "CANCEL_CAPACITY_RESERVATION", + "CANCEL_CAPACITY_RESERVATION_FLEETS", + "CANCEL_CONVERSION_TASK", + "CANCEL_DECLARATIVE_POLICIES_REPORT", + "CANCEL_EXPORT_TASK", + "CANCEL_IMAGE_LAUNCH_PERMISSION", + "CANCEL_IMPORT_TASK", + "CANCEL_RESERVED_INSTANCES_LISTING", + "CANCEL_SPOT_FLEET_REQUESTS", + "CANCEL_SPOT_INSTANCE_REQUESTS", + "CONFIRM_PRODUCT_INSTANCE", + "COPY_FPGA_IMAGE", + "COPY_IMAGE", + "COPY_SNAPSHOT", + "COPY_VOLUMES", + "CREATE_APPLICATION_STATUS_CHECK", + "CREATE_CAPACITY_MANAGER_DATA_EXPORT", + "CREATE_CAPACITY_RESERVATION", + "CREATE_CAPACITY_RESERVATION_BY_SPLITTING", + "CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE", + "CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE", + "CREATE_CAPACITY_RESERVATION_FLEET", + "CREATE_CARRIER_GATEWAY", + "CREATE_CLIENT_VPN_ENDPOINT", + "CREATE_CLIENT_VPN_ROUTE", + "CREATE_COIP_CIDR", + "CREATE_COIP_POOL", + "CREATE_CUSTOMER_GATEWAY", + "CREATE_DEFAULT_SUBNET", + "CREATE_DEFAULT_VPC", + "CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK", + "CREATE_DHCP_OPTIONS", + "CREATE_EGRESS_ONLY_INTERNET_GATEWAY", + "CREATE_FLEET", + "CREATE_FLOW_LOGS", + "CREATE_FPGA_IMAGE", + "CREATE_IMAGE", + "CREATE_IMAGE_USAGE_REPORT", + "CREATE_INSTANCE_CONNECT_ENDPOINT", + "CREATE_INSTANCE_EVENT_WINDOW", + "CREATE_INSTANCE_EXPORT_TASK", + "CREATE_INTERNET_GATEWAY", + "CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION", + "CREATE_IPAM", + "CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN", + "CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + "CREATE_IPAM_POLICY", + "CREATE_IPAM_POOL", + "CREATE_IPAM_PREFIX_LIST_RESOLVER", + "CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET", + "CREATE_IPAM_RESOURCE_DISCOVERY", + "CREATE_IPAM_ROUTING_POLICY_REGISTRATION", + "CREATE_IPAM_SCOPE", + "CREATE_KEY_PAIR", + "CREATE_LAUNCH_TEMPLATE", + "CREATE_LAUNCH_TEMPLATE_VERSION", + "CREATE_LOCAL_GATEWAY_ROUTE", + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE", + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION", + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION", + "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE", + "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP", + "CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK", + "CREATE_MANAGED_PREFIX_LIST", + "CREATE_NAT_GATEWAY", + "CREATE_NETWORK_ACL", + "CREATE_NETWORK_ACL_ENTRY", + "CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE", + "CREATE_NETWORK_INSIGHTS_PATH", + "CREATE_NETWORK_INTERFACE", + "CREATE_NETWORK_INTERFACE_PERMISSION", + "CREATE_PLACEMENT_GROUP", + "CREATE_PUBLIC_IPV4_POOL", + "CREATE_REPLACE_ROOT_VOLUME_TASK", + "CREATE_RESERVED_INSTANCES_LISTING", + "CREATE_RESTORE_IMAGE_TASK", + "CREATE_ROUTE", + "CREATE_ROUTE_SERVER", + "CREATE_ROUTE_SERVER_ENDPOINT", + "CREATE_ROUTE_SERVER_PEER", + "CREATE_ROUTE_TABLE", + "CREATE_SECONDARY_NETWORK", + "CREATE_SECONDARY_SUBNET", + "CREATE_SECURITY_GROUP", + "CREATE_SNAPSHOT", + "CREATE_SNAPSHOTS", + "CREATE_SPOT_DATAFEED_SUBSCRIPTION", + "CREATE_STORE_IMAGE_TASK", + "CREATE_SUBNET", + "CREATE_SUBNET_CIDR_RESERVATION", + "CREATE_TAGS", + "CREATE_TRAFFIC_MIRROR_FILTER", + "CREATE_TRAFFIC_MIRROR_FILTER_RULE", + "CREATE_TRAFFIC_MIRROR_SESSION", + "CREATE_TRAFFIC_MIRROR_TARGET", + "CREATE_TRANSIT_GATEWAY", + "CREATE_TRANSIT_GATEWAY_CONNECT", + "CREATE_TRANSIT_GATEWAY_CONNECT_PEER", + "CREATE_TRANSIT_GATEWAY_METERING_POLICY", + "CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY", + "CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + "CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + "CREATE_TRANSIT_GATEWAY_POLICY_TABLE", + "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + "CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + "CREATE_TRANSIT_GATEWAY_ROUTE", + "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE", + "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT", + "CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT", + "CREATE_VERIFIED_ACCESS_ENDPOINT", + "CREATE_VERIFIED_ACCESS_GROUP", + "CREATE_VERIFIED_ACCESS_INSTANCE", + "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER", + "CREATE_VOLUME", + "CREATE_VPC", + "CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + "CREATE_VPC_ENCRYPTION_CONTROL", + "CREATE_VPC_ENDPOINT", + "CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION", + "CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION", + "CREATE_VPC_PEERING_CONNECTION", + "CREATE_VPN_CONCENTRATOR", + "CREATE_VPN_CONNECTION", + "CREATE_VPN_CONNECTION_ROUTE", + "CREATE_VPN_GATEWAY", + "DELETE_APPLICATION_STATUS_CHECK", + "DELETE_CAPACITY_MANAGER_DATA_EXPORT", + "DELETE_CARRIER_GATEWAY", + "DELETE_CLIENT_VPN_ENDPOINT", + "DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + "DELETE_CLIENT_VPN_ROUTE", + "DELETE_COIP_CIDR", + "DELETE_COIP_POOL", + "DELETE_CUSTOMER_GATEWAY", + "DELETE_DHCP_OPTIONS", + "DELETE_EGRESS_ONLY_INTERNET_GATEWAY", + "DELETE_FLEETS", + "DELETE_FLOW_LOGS", + "DELETE_FPGA_IMAGE", + "DELETE_IMAGE_USAGE_REPORT", + "DELETE_INSTANCE_CONNECT_ENDPOINT", + "DELETE_INSTANCE_EVENT_WINDOW", + "DELETE_INTERNET_GATEWAY", + "DELETE_IPAM", + "DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN", + "DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + "DELETE_IPAM_POLICY", + "DELETE_IPAM_POOL", + "DELETE_IPAM_PREFIX_LIST_RESOLVER", + "DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET", + "DELETE_IPAM_RESOURCE_DISCOVERY", + "DELETE_IPAM_ROUTING_POLICY_REGISTRATION", + "DELETE_IPAM_SCOPE", + "DELETE_KEY_PAIR", + "DELETE_LAUNCH_TEMPLATE", + "DELETE_LAUNCH_TEMPLATE_VERSIONS", + "DELETE_LOCAL_GATEWAY_ROUTE", + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE", + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION", + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION", + "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE", + "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP", + "DELETE_MANAGED_PREFIX_LIST", + "DELETE_NAT_GATEWAY", + "DELETE_NETWORK_ACL", + "DELETE_NETWORK_ACL_ENTRY", + "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE", + "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS", + "DELETE_NETWORK_INSIGHTS_ANALYSIS", + "DELETE_NETWORK_INSIGHTS_PATH", + "DELETE_NETWORK_INTERFACE", + "DELETE_NETWORK_INTERFACE_PERMISSION", + "DELETE_PLACEMENT_GROUP", + "DELETE_PUBLIC_IPV4_POOL", + "DELETE_QUEUED_RESERVED_INSTANCES", + "DELETE_ROUTE", + "DELETE_ROUTE_SERVER", + "DELETE_ROUTE_SERVER_ENDPOINT", + "DELETE_ROUTE_SERVER_PEER", + "DELETE_ROUTE_TABLE", + "DELETE_SECONDARY_NETWORK", + "DELETE_SECONDARY_SUBNET", + "DELETE_SECURITY_GROUP", + "DELETE_SNAPSHOT", + "DELETE_SPOT_DATAFEED_SUBSCRIPTION", + "DELETE_SUBNET", + "DELETE_SUBNET_CIDR_RESERVATION", + "DELETE_TAGS", + "DELETE_TRAFFIC_MIRROR_FILTER", + "DELETE_TRAFFIC_MIRROR_FILTER_RULE", + "DELETE_TRAFFIC_MIRROR_SESSION", + "DELETE_TRAFFIC_MIRROR_TARGET", + "DELETE_TRANSIT_GATEWAY", + "DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + "DELETE_TRANSIT_GATEWAY_CONNECT", + "DELETE_TRANSIT_GATEWAY_CONNECT_PEER", + "DELETE_TRANSIT_GATEWAY_METERING_POLICY", + "DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY", + "DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + "DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + "DELETE_TRANSIT_GATEWAY_POLICY_TABLE", + "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + "DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + "DELETE_TRANSIT_GATEWAY_ROUTE", + "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE", + "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT", + "DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT", + "DELETE_VERIFIED_ACCESS_ENDPOINT", + "DELETE_VERIFIED_ACCESS_GROUP", + "DELETE_VERIFIED_ACCESS_INSTANCE", + "DELETE_VERIFIED_ACCESS_TRUST_PROVIDER", + "DELETE_VOLUME", + "DELETE_VPC", + "DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + "DELETE_VPC_ENCRYPTION_CONTROL", + "DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS", + "DELETE_VPC_ENDPOINTS", + "DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS", + "DELETE_VPC_PEERING_CONNECTION", + "DELETE_VPN_CONCENTRATOR", + "DELETE_VPN_CONNECTION", + "DELETE_VPN_CONNECTION_ROUTE", + "DELETE_VPN_GATEWAY", + "DEPROVISION_BYOIP_CIDR", + "DEPROVISION_IPAM_BYOASN", + "DEPROVISION_IPAM_POOL_CIDR", + "DEPROVISION_PUBLIC_IPV4_POOL_CIDR", + "DEREGISTER_IMAGE", + "DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS", + "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES", + "DESCRIBE_ACCOUNT_ATTRIBUTES", + "DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL", + "DESCRIBE_ADDRESSES", + "DESCRIBE_ADDRESSES_ATTRIBUTE", + "DESCRIBE_ADDRESS_TRANSFERS", + "DESCRIBE_AGGREGATE_ID_FORMAT", + "DESCRIBE_APPLICATION_STATUS", + "DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS", + "DESCRIBE_APPLICATION_STATUS_CHECKS", + "DESCRIBE_AVAILABILITY_ZONES", + "DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS", + "DESCRIBE_BUNDLE_TASKS", + "DESCRIBE_BYOIP_CIDRS", + "DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY", + "DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS", + "DESCRIBE_CAPACITY_BLOCK_OFFERINGS", + "DESCRIBE_CAPACITY_BLOCKS", + "DESCRIBE_CAPACITY_BLOCK_STATUS", + "DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS", + "DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS", + "DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES", + "DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES", + "DESCRIBE_CAPACITY_RESERVATION_FLEETS", + "DESCRIBE_CAPACITY_RESERVATIONS", + "DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY", + "DESCRIBE_CARRIER_GATEWAYS", + "DESCRIBE_CLASSIC_LINK_INSTANCES", + "DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES", + "DESCRIBE_CLIENT_VPN_CONNECTIONS", + "DESCRIBE_CLIENT_VPN_ENDPOINTS", + "DESCRIBE_CLIENT_VPN_ROUTES", + "DESCRIBE_CLIENT_VPN_TARGET_NETWORKS", + "DESCRIBE_COIP_POOLS", + "DESCRIBE_CONVERSION_TASKS", + "DESCRIBE_CUSTOMER_GATEWAYS", + "DESCRIBE_DECLARATIVE_POLICIES_REPORTS", + "DESCRIBE_DHCP_OPTIONS", + "DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS", + "DESCRIBE_ELASTIC_GPUS", + "DESCRIBE_EXPORT_IMAGE_TASKS", + "DESCRIBE_EXPORT_TASKS", + "DESCRIBE_FAST_LAUNCH_IMAGES", + "DESCRIBE_FAST_SNAPSHOT_RESTORES", + "DESCRIBE_FLEET_HISTORY", + "DESCRIBE_FLEET_INSTANCES", + "DESCRIBE_FLEETS", + "DESCRIBE_FLOW_LOGS", + "DESCRIBE_FPGA_IMAGE_ATTRIBUTE", + "DESCRIBE_FPGA_IMAGES", + "DESCRIBE_HOST_RESERVATION_OFFERINGS", + "DESCRIBE_HOST_RESERVATIONS", + "DESCRIBE_HOSTS", + "DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS", + "DESCRIBE_IDENTITY_ID_FORMAT", + "DESCRIBE_ID_FORMAT", + "DESCRIBE_IMAGE_ATTRIBUTE", + "DESCRIBE_IMAGE_REFERENCES", + "DESCRIBE_IMAGES", + "DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES", + "DESCRIBE_IMAGE_USAGE_REPORTS", + "DESCRIBE_IMPORT_IMAGE_TASKS", + "DESCRIBE_IMPORT_SNAPSHOT_TASKS", + "DESCRIBE_INSTANCE_ATTRIBUTE", + "DESCRIBE_INSTANCE_CONNECT_ENDPOINTS", + "DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS", + "DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + "DESCRIBE_INSTANCE_EVENT_WINDOWS", + "DESCRIBE_INSTANCE_IMAGE_METADATA", + "DESCRIBE_INSTANCES", + "DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES", + "DESCRIBE_INSTANCE_SQL_HA_STATES", + "DESCRIBE_INSTANCE_STATUS", + "DESCRIBE_INSTANCE_TOPOLOGY", + "DESCRIBE_INSTANCE_TYPE_OFFERINGS", + "DESCRIBE_INSTANCE_TYPES", + "DESCRIBE_INTERNET_GATEWAYS", + "DESCRIBE_IPAM_BYOASN", + "DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS", + "DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS", + "DESCRIBE_IPAM_POLICIES", + "DESCRIBE_IPAM_POOL_ALLOCATIONS", + "DESCRIBE_IPAM_POOLS", + "DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS", + "DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS", + "DESCRIBE_IPAM_RESOURCE_DISCOVERIES", + "DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS", + "DESCRIBE_IPAMS", + "DESCRIBE_IPAM_SCOPES", + "DESCRIBE_IPV6_POOLS", + "DESCRIBE_KEY_PAIRS", + "DESCRIBE_LAUNCH_TEMPLATES", + "DESCRIBE_LAUNCH_TEMPLATE_VERSIONS", + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES", + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS", + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS", + "DESCRIBE_LOCAL_GATEWAYS", + "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS", + "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES", + "DESCRIBE_LOCKED_SNAPSHOTS", + "DESCRIBE_MAC_HOSTS", + "DESCRIBE_MAC_MODIFICATION_TASKS", + "DESCRIBE_MANAGED_PREFIX_LISTS", + "DESCRIBE_MOVING_ADDRESSES", + "DESCRIBE_NAT_GATEWAYS", + "DESCRIBE_NETWORK_ACLS", + "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES", + "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES", + "DESCRIBE_NETWORK_INSIGHTS_ANALYSES", + "DESCRIBE_NETWORK_INSIGHTS_PATHS", + "DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE", + "DESCRIBE_NETWORK_INTERFACE_PERMISSIONS", + "DESCRIBE_NETWORK_INTERFACES", + "DESCRIBE_OUTPOST_LAGS", + "DESCRIBE_PLACEMENT_GROUPS", + "DESCRIBE_PREFIX_LISTS", + "DESCRIBE_PRINCIPAL_ID_FORMAT", + "DESCRIBE_PUBLIC_IPV4_POOLS", + "DESCRIBE_REGIONS", + "DESCRIBE_REPLACE_ROOT_VOLUME_TASKS", + "DESCRIBE_RESERVED_INSTANCES", + "DESCRIBE_RESERVED_INSTANCES_LISTINGS", + "DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS", + "DESCRIBE_RESERVED_INSTANCES_OFFERINGS", + "DESCRIBE_ROUTE_SERVER_ENDPOINTS", + "DESCRIBE_ROUTE_SERVER_PEERS", + "DESCRIBE_ROUTE_SERVERS", + "DESCRIBE_ROUTE_TABLES", + "DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY", + "DESCRIBE_SCHEDULED_INSTANCES", + "DESCRIBE_SECONDARY_INTERFACES", + "DESCRIBE_SECONDARY_NETWORKS", + "DESCRIBE_SECONDARY_SUBNETS", + "DESCRIBE_SECURITY_GROUP_REFERENCES", + "DESCRIBE_SECURITY_GROUP_RULES", + "DESCRIBE_SECURITY_GROUPS", + "DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS", + "DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES", + "DESCRIBE_SNAPSHOT_ATTRIBUTE", + "DESCRIBE_SNAPSHOTS", + "DESCRIBE_SNAPSHOT_TIER_STATUS", + "DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION", + "DESCRIBE_SPOT_FLEET_INSTANCES", + "DESCRIBE_SPOT_FLEET_REQUEST_HISTORY", + "DESCRIBE_SPOT_FLEET_REQUESTS", + "DESCRIBE_SPOT_INSTANCE_REQUESTS", + "DESCRIBE_SPOT_PRICE_HISTORY", + "DESCRIBE_STALE_SECURITY_GROUPS", + "DESCRIBE_STORE_IMAGE_TASKS", + "DESCRIBE_SUBNETS", + "DESCRIBE_TAGS", + "DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES", + "DESCRIBE_TRAFFIC_MIRROR_FILTERS", + "DESCRIBE_TRAFFIC_MIRROR_SESSIONS", + "DESCRIBE_TRAFFIC_MIRROR_TARGETS", + "DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS", + "DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS", + "DESCRIBE_TRANSIT_GATEWAY_CONNECTS", + "DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES", + "DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS", + "DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS", + "DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES", + "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS", + "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES", + "DESCRIBE_TRANSIT_GATEWAYS", + "DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS", + "DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS", + "DESCRIBE_VERIFIED_ACCESS_ENDPOINTS", + "DESCRIBE_VERIFIED_ACCESS_GROUPS", + "DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS", + "DESCRIBE_VERIFIED_ACCESS_INSTANCES", + "DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS", + "DESCRIBE_VOLUME_ATTRIBUTE", + "DESCRIBE_VOLUMES", + "DESCRIBE_VOLUMES_MODIFICATIONS", + "DESCRIBE_VOLUME_STATUS", + "DESCRIBE_VPC_ATTRIBUTE", + "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS", + "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS", + "DESCRIBE_VPC_CLASSIC_LINK", + "DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT", + "DESCRIBE_VPC_ENCRYPTION_CONTROLS", + "DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS", + "DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS", + "DESCRIBE_VPC_ENDPOINT_CONNECTIONS", + "DESCRIBE_VPC_ENDPOINTS", + "DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS", + "DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS", + "DESCRIBE_VPC_ENDPOINT_SERVICES", + "DESCRIBE_VPC_PEERING_CONNECTIONS", + "DESCRIBE_VPCS", + "DESCRIBE_VPN_CONCENTRATORS", + "DESCRIBE_VPN_CONNECTIONS", + "DESCRIBE_VPN_GATEWAYS", + "DETACH_CLASSIC_LINK_VPC", + "DETACH_IMAGE_WATERMARK", + "DETACH_INTERNET_GATEWAY", + "DETACH_NETWORK_INTERFACE", + "DETACH_VERIFIED_ACCESS_TRUST_PROVIDER", + "DETACH_VOLUME", + "DETACH_VPN_GATEWAY", + "DISABLE_ADDRESS_TRANSFER", + "DISABLE_ALLOWED_IMAGES_SETTINGS", + "DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION", + "DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION", + "DISABLE_CAPACITY_MANAGER", + "DISABLE_EBS_ENCRYPTION_BY_DEFAULT", + "DISABLE_FAST_LAUNCH", + "DISABLE_FAST_SNAPSHOT_RESTORES", + "DISABLE_IMAGE", + "DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS", + "DISABLE_IMAGE_DEPRECATION", + "DISABLE_IMAGE_DEREGISTRATION_PROTECTION", + "DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS", + "DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT", + "DISABLE_IPAM_POLICY", + "DISABLE_ROUTE_SERVER_PROPAGATION", + "DISABLE_SERIAL_CONSOLE_ACCESS", + "DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS", + "DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION", + "DISABLE_VGW_ROUTE_PROPAGATION", + "DISABLE_VPC_CLASSIC_LINK", + "DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT", + "DISASSOCIATE_ADDRESS", + "DISASSOCIATE_APPLICATION_STATUS_CHECK", + "DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER", + "DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK", + "DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE", + "DISASSOCIATE_IAM_INSTANCE_PROFILE", + "DISASSOCIATE_INSTANCE_EVENT_WINDOW", + "DISASSOCIATE_IPAM_BYOASN", + "DISASSOCIATE_IPAM_RESOURCE_DISCOVERY", + "DISASSOCIATE_NAT_GATEWAY_ADDRESS", + "DISASSOCIATE_ROUTE_SERVER", + "DISASSOCIATE_ROUTE_TABLE", + "DISASSOCIATE_SECURITY_GROUP_VPC", + "DISASSOCIATE_SUBNET_CIDR_BLOCK", + "DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + "DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE", + "DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE", + "DISASSOCIATE_TRUNK_INTERFACE", + "DISASSOCIATE_VPC_CIDR_BLOCK", + "ENABLE_ADDRESS_TRANSFER", + "ENABLE_ALLOWED_IMAGES_SETTINGS", + "ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION", + "ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION", + "ENABLE_CAPACITY_MANAGER", + "ENABLE_EBS_ENCRYPTION_BY_DEFAULT", + "ENABLE_FAST_LAUNCH", + "ENABLE_FAST_SNAPSHOT_RESTORES", + "ENABLE_IMAGE", + "ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS", + "ENABLE_IMAGE_DEPRECATION", + "ENABLE_IMAGE_DEREGISTRATION_PROTECTION", + "ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS", + "ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + "ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT", + "ENABLE_IPAM_POLICY", + "ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING", + "ENABLE_ROUTE_SERVER_PROPAGATION", + "ENABLE_SERIAL_CONSOLE_ACCESS", + "ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS", + "ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION", + "ENABLE_VGW_ROUTE_PROPAGATION", + "ENABLE_VOLUME_IO", + "ENABLE_VPC_CLASSIC_LINK", + "ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT", + "EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST", + "EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION", + "EXPORT_IMAGE", + "EXPORT_TRANSIT_GATEWAY_ROUTES", + "EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION", + "GET_ACTIVE_VPN_TUNNEL_STATUS", + "GET_ALLOWED_IMAGES_SETTINGS", + "GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES", + "GET_ASSOCIATED_IPV6_POOL_CIDRS", + "GET_AWS_NETWORK_PERFORMANCE_DATA", + "GET_CAPACITY_MANAGER_ATTRIBUTES", + "GET_CAPACITY_MANAGER_METRIC_DATA", + "GET_CAPACITY_MANAGER_METRIC_DIMENSIONS", + "GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS", + "GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES", + "GET_CAPACITY_RESERVATION_USAGE", + "GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + "GET_COIP_POOL_USAGE", + "GET_CONSOLE_OUTPUT", + "GET_CONSOLE_SCREENSHOT", + "GET_DECLARATIVE_POLICIES_REPORT_SUMMARY", + "GET_DEFAULT_CREDIT_SPECIFICATION", + "GET_EBS_DEFAULT_KMS_KEY_ID", + "GET_EBS_ENCRYPTION_BY_DEFAULT", + "GET_ENABLED_IPAM_POLICY", + "GET_FLOW_LOGS_INTEGRATION_TEMPLATE", + "GET_GROUPS_FOR_CAPACITY_RESERVATION", + "GET_HOST_RESERVATION_PURCHASE_PREVIEW", + "GET_IMAGE_ANCESTRY", + "GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE", + "GET_IMAGE_FINDINGS", + "GET_INSTANCE_METADATA_DEFAULTS", + "GET_INSTANCE_TPM_EK_PUB", + "GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS", + "GET_INSTANCE_UEFI_DATA", + "GET_IPAM_ADDRESS_HISTORY", + "GET_IPAM_DISCOVERED_ACCOUNTS", + "GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES", + "GET_IPAM_DISCOVERED_RESOURCE_CIDRS", + "GET_IPAM_DISCOVERED_ROUTES", + "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS", + "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS", + "GET_IPAM_POLICY_ALLOCATION_RULES", + "GET_IPAM_POLICY_ORGANIZATION_TARGETS", + "GET_IPAM_POOL_ALLOCATIONS", + "GET_IPAM_POOL_CIDRS", + "GET_IPAM_PREFIX_LIST_RESOLVER_RULES", + "GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES", + "GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS", + "GET_IPAM_RESOURCE_CIDRS", + "GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS", + "GET_IPAM_ROUTE_PROTECTION_FINDINGS", + "GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS", + "GET_IPAM_ROUTING_POLICY_REGISTRATIONS", + "GET_LAUNCH_TEMPLATE_DATA", + "GET_MANAGED_PREFIX_LIST_ASSOCIATIONS", + "GET_MANAGED_PREFIX_LIST_ENTRIES", + "GET_MANAGED_RESOURCE_VISIBILITY", + "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS", + "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT", + "GET_PASSWORD_DATA", + "GET_RESERVED_INSTANCES_EXCHANGE_QUOTE", + "GET_ROUTE_SERVER_ASSOCIATIONS", + "GET_ROUTE_SERVER_PROPAGATIONS", + "GET_ROUTE_SERVER_ROUTING_DATABASE", + "GET_SECURITY_GROUPS_FOR_VPC", + "GET_SERIAL_CONSOLE_ACCESS_STATUS", + "GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE", + "GET_SPOT_PLACEMENT_SCORES", + "GET_SUBNET_CIDR_RESERVATIONS", + "GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION", + "GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS", + "GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES", + "GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + "GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS", + "GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES", + "GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES", + "GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS", + "GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS", + "GET_VERIFIED_ACCESS_ENDPOINT_POLICY", + "GET_VERIFIED_ACCESS_ENDPOINT_TARGETS", + "GET_VERIFIED_ACCESS_GROUP_POLICY", + "GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT", + "GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION", + "GET_VPN_CONNECTION_DEVICE_TYPES", + "GET_VPN_TUNNEL_REPLACEMENT_STATUS", + "IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST", + "IMPORT_IMAGE", + "IMPORT_INSTANCE", + "IMPORT_KEY_PAIR", + "IMPORT_SNAPSHOT", + "IMPORT_VOLUME", + "LIST_IMAGES_IN_RECYCLE_BIN", + "LIST_SNAPSHOTS_IN_RECYCLE_BIN", + "LIST_VOLUMES_IN_RECYCLE_BIN", + "LOCK_SNAPSHOT", + "MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL", + "MODIFY_ADDRESS_ATTRIBUTE", + "MODIFY_APPLICATION_STATUS_CHECK", + "MODIFY_AVAILABILITY_ZONE_GROUP", + "MODIFY_CAPACITY_RESERVATION", + "MODIFY_CAPACITY_RESERVATION_FLEET", + "MODIFY_CLIENT_VPN_ENDPOINT", + "MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + "MODIFY_DEFAULT_CREDIT_SPECIFICATION", + "MODIFY_EBS_DEFAULT_KMS_KEY_ID", + "MODIFY_FLEET", + "MODIFY_FPGA_IMAGE_ATTRIBUTE", + "MODIFY_HOSTS", + "MODIFY_IDENTITY_ID_FORMAT", + "MODIFY_ID_FORMAT", + "MODIFY_IMAGE_ATTRIBUTE", + "MODIFY_INSTANCE_ATTRIBUTE", + "MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES", + "MODIFY_INSTANCE_CONNECT_ENDPOINT", + "MODIFY_INSTANCE_CPU_OPTIONS", + "MODIFY_INSTANCE_CREDIT_SPECIFICATION", + "MODIFY_INSTANCE_EVENT_START_TIME", + "MODIFY_INSTANCE_EVENT_WINDOW", + "MODIFY_INSTANCE_MAINTENANCE_OPTIONS", + "MODIFY_INSTANCE_METADATA_DEFAULTS", + "MODIFY_INSTANCE_METADATA_OPTIONS", + "MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS", + "MODIFY_INSTANCE_PLACEMENT", + "MODIFY_IPAM", + "MODIFY_IPAM_POLICY_ALLOCATION_RULES", + "MODIFY_IPAM_POOL", + "MODIFY_IPAM_POOL_ALLOCATION", + "MODIFY_IPAM_PREFIX_LIST_RESOLVER", + "MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET", + "MODIFY_IPAM_RESOURCE_CIDR", + "MODIFY_IPAM_RESOURCE_DISCOVERY", + "MODIFY_IPAM_ROUTING_POLICY_REGISTRATION", + "MODIFY_IPAM_SCOPE", + "MODIFY_LAUNCH_TEMPLATE", + "MODIFY_LOCAL_GATEWAY_ROUTE", + "MODIFY_MANAGED_PREFIX_LIST", + "MODIFY_MANAGED_RESOURCE_VISIBILITY", + "MODIFY_NETWORK_INTERFACE_ATTRIBUTE", + "MODIFY_PRIVATE_DNS_NAME_OPTIONS", + "MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS", + "MODIFY_RESERVED_INSTANCES", + "MODIFY_ROUTE_SERVER", + "MODIFY_SECURITY_GROUP_RULES", + "MODIFY_SNAPSHOT_ATTRIBUTE", + "MODIFY_SNAPSHOT_TIER", + "MODIFY_SPOT_FLEET_REQUEST", + "MODIFY_SUBNET_ATTRIBUTE", + "MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES", + "MODIFY_TRAFFIC_MIRROR_FILTER_RULE", + "MODIFY_TRAFFIC_MIRROR_SESSION", + "MODIFY_TRANSIT_GATEWAY", + "MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION", + "MODIFY_TRANSIT_GATEWAY_METERING_POLICY", + "MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + "MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + "MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT", + "MODIFY_VERIFIED_ACCESS_ENDPOINT", + "MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY", + "MODIFY_VERIFIED_ACCESS_GROUP", + "MODIFY_VERIFIED_ACCESS_GROUP_POLICY", + "MODIFY_VERIFIED_ACCESS_INSTANCE", + "MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION", + "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER", + "MODIFY_VOLUME", + "MODIFY_VOLUME_ATTRIBUTE", + "MODIFY_VPC_ATTRIBUTE", + "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS", + "MODIFY_VPC_ENCRYPTION_CONTROL", + "MODIFY_VPC_ENDPOINT", + "MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION", + "MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY", + "MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION", + "MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY", + "MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS", + "MODIFY_VPC_PEERING_CONNECTION_OPTIONS", + "MODIFY_VPC_TENANCY", + "MODIFY_VPN_CONNECTION", + "MODIFY_VPN_CONNECTION_OPTIONS", + "MODIFY_VPN_TUNNEL_CERTIFICATE", + "MODIFY_VPN_TUNNEL_OPTIONS", + "MONITOR_INSTANCES", + "MOVE_ADDRESS_TO_VPC", + "MOVE_BYOIP_CIDR_TO_IPAM", + "MOVE_CAPACITY_RESERVATION_INSTANCES", + "PROVISION_BYOIP_CIDR", + "PROVISION_IPAM_BYOASN", + "PROVISION_IPAM_POOL_CIDR", + "PROVISION_PUBLIC_IPV4_POOL_CIDR", + "PURCHASE_CAPACITY_BLOCK", + "PURCHASE_CAPACITY_BLOCK_EXTENSION", + "PURCHASE_HOST_RESERVATION", + "PURCHASE_RESERVED_INSTANCES_OFFERING", + "PURCHASE_SCHEDULED_INSTANCES", + "REBOOT_INSTANCES", + "REGISTER_IMAGE", + "REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS", + "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES", + "REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP", + "REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + "REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + "REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + "REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT", + "REJECT_VPC_ENDPOINT_CONNECTIONS", + "REJECT_VPC_PEERING_CONNECTION", + "RELEASE_ADDRESS", + "RELEASE_HOSTS", + "RELEASE_IPAM_POOL_ALLOCATION", + "REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION", + "REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS", + "REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION", + "REPLACE_NETWORK_ACL_ASSOCIATION", + "REPLACE_NETWORK_ACL_ENTRY", + "REPLACE_ROUTE", + "REPLACE_ROUTE_TABLE_ASSOCIATION", + "REPLACE_TRANSIT_GATEWAY_ROUTE", + "REPLACE_VPN_TUNNEL", + "REPORT_INSTANCE_STATUS", + "REQUEST_SPOT_FLEET", + "REQUEST_SPOT_INSTANCES", + "RESET_ADDRESS_ATTRIBUTE", + "RESET_EBS_DEFAULT_KMS_KEY_ID", + "RESET_FPGA_IMAGE_ATTRIBUTE", + "RESET_IMAGE_ATTRIBUTE", + "RESET_INSTANCE_ATTRIBUTE", + "RESET_NETWORK_INTERFACE_ATTRIBUTE", + "RESET_SNAPSHOT_ATTRIBUTE", + "RESTORE_ADDRESS_TO_CLASSIC", + "RESTORE_IMAGE_FROM_RECYCLE_BIN", + "RESTORE_MANAGED_PREFIX_LIST_VERSION", + "RESTORE_SNAPSHOT_FROM_RECYCLE_BIN", + "RESTORE_SNAPSHOT_TIER", + "RESTORE_VOLUME_FROM_RECYCLE_BIN", + "REVOKE_CLIENT_VPN_INGRESS", + "REVOKE_SECURITY_GROUP_EGRESS", + "REVOKE_SECURITY_GROUP_INGRESS", + "RUN_INSTANCES", + "RUN_SCHEDULED_INSTANCES", + "SEARCH_LOCAL_GATEWAY_ROUTES", + "SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS", + "SEARCH_TRANSIT_GATEWAY_ROUTES", + "SEND_DIAGNOSTIC_INTERRUPT", + "START_DECLARATIVE_POLICIES_REPORT", + "START_INSTANCES", + "START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS", + "START_NETWORK_INSIGHTS_ANALYSIS", + "START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION", + "STOP_INSTANCES", + "TERMINATE_CLIENT_VPN_CONNECTIONS", + "TERMINATE_INSTANCES", + "UNASSIGN_IPV6_ADDRESSES", + "UNASSIGN_PRIVATE_IP_ADDRESSES", + "UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS", + "UNLOCK_SNAPSHOT", + "UNMONITOR_INSTANCES", + "UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS", + "UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS", + "UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION", + "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS", + "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS", + "VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE", + "WITHDRAW_BYOIP_CIDR", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ACCEPT_ADDRESS_TRANSFER"] = ( + "ACCEPT_ADDRESS_TRANSFER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP"] = ( + "ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE"] = ( + "ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT"] = ( + "ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS"] = ( + "ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT"] = ( + "ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT"] = ( + "ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_VPC_ENDPOINT_CONNECTIONS"] = ( + "ACCEPT_VPC_ENDPOINT_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ACCEPT_VPC_PEERING_CONNECTION"] = ( + "ACCEPT_VPC_PEERING_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ADVERTISE_BYOIP_CIDR"] = ( + "ADVERTISE_BYOIP_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ALLOCATE_ADDRESS"] = ("ALLOCATE_ADDRESS", (), ("aws.auth#sigv4",)) + +_operation_data["ALLOCATE_HOSTS"] = ("ALLOCATE_HOSTS", (), ("aws.auth#sigv4",)) + +_operation_data["ALLOCATE_IPAM_POOL_CIDR"] = ( + "ALLOCATE_IPAM_POOL_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK"] = ( + "APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSIGN_IPV6_ADDRESSES"] = ( + "ASSIGN_IPV6_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSIGN_PRIVATE_IP_ADDRESSES"] = ( + "ASSIGN_PRIVATE_IP_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS"] = ( + "ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_ADDRESS"] = ("ASSOCIATE_ADDRESS", (), ("aws.auth#sigv4",)) + +_operation_data["ASSOCIATE_APPLICATION_STATUS_CHECK"] = ( + "ASSOCIATE_APPLICATION_STATUS_CHECK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER"] = ( + "ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_CLIENT_VPN_TARGET_NETWORK"] = ( + "ASSOCIATE_CLIENT_VPN_TARGET_NETWORK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_DHCP_OPTIONS"] = ( + "ASSOCIATE_DHCP_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE"] = ( + "ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_IAM_INSTANCE_PROFILE"] = ( + "ASSOCIATE_IAM_INSTANCE_PROFILE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_INSTANCE_EVENT_WINDOW"] = ( + "ASSOCIATE_INSTANCE_EVENT_WINDOW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_IPAM_BYOASN"] = ( + "ASSOCIATE_IPAM_BYOASN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_IPAM_RESOURCE_DISCOVERY"] = ( + "ASSOCIATE_IPAM_RESOURCE_DISCOVERY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_NAT_GATEWAY_ADDRESS"] = ( + "ASSOCIATE_NAT_GATEWAY_ADDRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_ROUTE_SERVER"] = ( + "ASSOCIATE_ROUTE_SERVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_ROUTE_TABLE"] = ( + "ASSOCIATE_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_SECURITY_GROUP_VPC"] = ( + "ASSOCIATE_SECURITY_GROUP_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_SUBNET_CIDR_BLOCK"] = ( + "ASSOCIATE_SUBNET_CIDR_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN"] = ( + "ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE"] = ( + "ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE"] = ( + "ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_TRUNK_INTERFACE"] = ( + "ASSOCIATE_TRUNK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_VPC_CIDR_BLOCK"] = ( + "ASSOCIATE_VPC_CIDR_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_CLASSIC_LINK_VPC"] = ( + "ATTACH_CLASSIC_LINK_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_IMAGE_WATERMARK"] = ( + "ATTACH_IMAGE_WATERMARK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_INTERNET_GATEWAY"] = ( + "ATTACH_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_NETWORK_INTERFACE"] = ( + "ATTACH_NETWORK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER"] = ( + "ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_VOLUME"] = ("ATTACH_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["ATTACH_VPN_GATEWAY"] = ("ATTACH_VPN_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["AUTHORIZE_CLIENT_VPN_INGRESS"] = ( + "AUTHORIZE_CLIENT_VPN_INGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["AUTHORIZE_SECURITY_GROUP_EGRESS"] = ( + "AUTHORIZE_SECURITY_GROUP_EGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["AUTHORIZE_SECURITY_GROUP_INGRESS"] = ( + "AUTHORIZE_SECURITY_GROUP_INGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS"] = ( + "BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["BUNDLE_INSTANCE"] = ("BUNDLE_INSTANCE", (), ("aws.auth#sigv4",)) + +_operation_data["CANCEL_BUNDLE_TASK"] = ("CANCEL_BUNDLE_TASK", (), ("aws.auth#sigv4",)) + +_operation_data["CANCEL_CAPACITY_RESERVATION"] = ( + "CANCEL_CAPACITY_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_CAPACITY_RESERVATION_FLEETS"] = ( + "CANCEL_CAPACITY_RESERVATION_FLEETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_CONVERSION_TASK"] = ( + "CANCEL_CONVERSION_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_DECLARATIVE_POLICIES_REPORT"] = ( + "CANCEL_DECLARATIVE_POLICIES_REPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_EXPORT_TASK"] = ("CANCEL_EXPORT_TASK", (), ("aws.auth#sigv4",)) + +_operation_data["CANCEL_IMAGE_LAUNCH_PERMISSION"] = ( + "CANCEL_IMAGE_LAUNCH_PERMISSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_IMPORT_TASK"] = ("CANCEL_IMPORT_TASK", (), ("aws.auth#sigv4",)) + +_operation_data["CANCEL_RESERVED_INSTANCES_LISTING"] = ( + "CANCEL_RESERVED_INSTANCES_LISTING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_SPOT_FLEET_REQUESTS"] = ( + "CANCEL_SPOT_FLEET_REQUESTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_SPOT_INSTANCE_REQUESTS"] = ( + "CANCEL_SPOT_INSTANCE_REQUESTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CONFIRM_PRODUCT_INSTANCE"] = ( + "CONFIRM_PRODUCT_INSTANCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_FPGA_IMAGE"] = ("COPY_FPGA_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["COPY_IMAGE"] = ("COPY_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["COPY_SNAPSHOT"] = ("COPY_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["COPY_VOLUMES"] = ("COPY_VOLUMES", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_APPLICATION_STATUS_CHECK"] = ( + "CREATE_APPLICATION_STATUS_CHECK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_MANAGER_DATA_EXPORT"] = ( + "CREATE_CAPACITY_MANAGER_DATA_EXPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_RESERVATION"] = ( + "CREATE_CAPACITY_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_RESERVATION_BY_SPLITTING"] = ( + "CREATE_CAPACITY_RESERVATION_BY_SPLITTING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE"] = ( + "CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE"] = ( + "CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CAPACITY_RESERVATION_FLEET"] = ( + "CREATE_CAPACITY_RESERVATION_FLEET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CARRIER_GATEWAY"] = ( + "CREATE_CARRIER_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CLIENT_VPN_ENDPOINT"] = ( + "CREATE_CLIENT_VPN_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CLIENT_VPN_ROUTE"] = ( + "CREATE_CLIENT_VPN_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_COIP_CIDR"] = ("CREATE_COIP_CIDR", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_COIP_POOL"] = ("CREATE_COIP_POOL", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_CUSTOMER_GATEWAY"] = ( + "CREATE_CUSTOMER_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DEFAULT_SUBNET"] = ( + "CREATE_DEFAULT_SUBNET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DEFAULT_VPC"] = ("CREATE_DEFAULT_VPC", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK"] = ( + "CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DHCP_OPTIONS"] = ( + "CREATE_DHCP_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_EGRESS_ONLY_INTERNET_GATEWAY"] = ( + "CREATE_EGRESS_ONLY_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_FLEET"] = ("CREATE_FLEET", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_FLOW_LOGS"] = ("CREATE_FLOW_LOGS", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_FPGA_IMAGE"] = ("CREATE_FPGA_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_IMAGE"] = ("CREATE_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_IMAGE_USAGE_REPORT"] = ( + "CREATE_IMAGE_USAGE_REPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INSTANCE_CONNECT_ENDPOINT"] = ( + "CREATE_INSTANCE_CONNECT_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INSTANCE_EVENT_WINDOW"] = ( + "CREATE_INSTANCE_EVENT_WINDOW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INSTANCE_EXPORT_TASK"] = ( + "CREATE_INSTANCE_EXPORT_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INTERNET_GATEWAY"] = ( + "CREATE_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION"] = ( + "CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM"] = ("CREATE_IPAM", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN"] = ( + "CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION"] = ( + "CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_POLICY"] = ("CREATE_IPAM_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_IPAM_POOL"] = ("CREATE_IPAM_POOL", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_IPAM_PREFIX_LIST_RESOLVER"] = ( + "CREATE_IPAM_PREFIX_LIST_RESOLVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET"] = ( + "CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_RESOURCE_DISCOVERY"] = ( + "CREATE_IPAM_RESOURCE_DISCOVERY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_ROUTING_POLICY_REGISTRATION"] = ( + "CREATE_IPAM_ROUTING_POLICY_REGISTRATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_IPAM_SCOPE"] = ("CREATE_IPAM_SCOPE", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_KEY_PAIR"] = ("CREATE_KEY_PAIR", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_LAUNCH_TEMPLATE"] = ( + "CREATE_LAUNCH_TEMPLATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LAUNCH_TEMPLATE_VERSION"] = ( + "CREATE_LAUNCH_TEMPLATE_VERSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOCAL_GATEWAY_ROUTE"] = ( + "CREATE_LOCAL_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOCAL_GATEWAY_ROUTE_TABLE"] = ( + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data[ + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION" +] = ( + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION"] = ( + "CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE"] = ( + "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP"] = ( + "CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK"] = ( + "CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_MANAGED_PREFIX_LIST"] = ( + "CREATE_MANAGED_PREFIX_LIST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_NAT_GATEWAY"] = ("CREATE_NAT_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_NETWORK_ACL"] = ("CREATE_NETWORK_ACL", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_NETWORK_ACL_ENTRY"] = ( + "CREATE_NETWORK_ACL_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE"] = ( + "CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_NETWORK_INSIGHTS_PATH"] = ( + "CREATE_NETWORK_INSIGHTS_PATH", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_NETWORK_INTERFACE"] = ( + "CREATE_NETWORK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_NETWORK_INTERFACE_PERMISSION"] = ( + "CREATE_NETWORK_INTERFACE_PERMISSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_PLACEMENT_GROUP"] = ( + "CREATE_PLACEMENT_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_PUBLIC_IPV4_POOL"] = ( + "CREATE_PUBLIC_IPV4_POOL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_REPLACE_ROOT_VOLUME_TASK"] = ( + "CREATE_REPLACE_ROOT_VOLUME_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_RESERVED_INSTANCES_LISTING"] = ( + "CREATE_RESERVED_INSTANCES_LISTING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_RESTORE_IMAGE_TASK"] = ( + "CREATE_RESTORE_IMAGE_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ROUTE"] = ("CREATE_ROUTE", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_ROUTE_SERVER"] = ( + "CREATE_ROUTE_SERVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ROUTE_SERVER_ENDPOINT"] = ( + "CREATE_ROUTE_SERVER_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ROUTE_SERVER_PEER"] = ( + "CREATE_ROUTE_SERVER_PEER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ROUTE_TABLE"] = ("CREATE_ROUTE_TABLE", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_SECONDARY_NETWORK"] = ( + "CREATE_SECONDARY_NETWORK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SECONDARY_SUBNET"] = ( + "CREATE_SECONDARY_SUBNET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SECURITY_GROUP"] = ( + "CREATE_SECURITY_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SNAPSHOT"] = ("CREATE_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_SNAPSHOTS"] = ("CREATE_SNAPSHOTS", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_SPOT_DATAFEED_SUBSCRIPTION"] = ( + "CREATE_SPOT_DATAFEED_SUBSCRIPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STORE_IMAGE_TASK"] = ( + "CREATE_STORE_IMAGE_TASK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SUBNET"] = ("CREATE_SUBNET", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_SUBNET_CIDR_RESERVATION"] = ( + "CREATE_SUBNET_CIDR_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TAGS"] = ("CREATE_TAGS", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_TRAFFIC_MIRROR_FILTER"] = ( + "CREATE_TRAFFIC_MIRROR_FILTER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRAFFIC_MIRROR_FILTER_RULE"] = ( + "CREATE_TRAFFIC_MIRROR_FILTER_RULE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRAFFIC_MIRROR_SESSION"] = ( + "CREATE_TRAFFIC_MIRROR_SESSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRAFFIC_MIRROR_TARGET"] = ( + "CREATE_TRAFFIC_MIRROR_TARGET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY"] = ( + "CREATE_TRANSIT_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_CONNECT"] = ( + "CREATE_TRANSIT_GATEWAY_CONNECT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_CONNECT_PEER"] = ( + "CREATE_TRANSIT_GATEWAY_CONNECT_PEER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_METERING_POLICY"] = ( + "CREATE_TRANSIT_GATEWAY_METERING_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY"] = ( + "CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN"] = ( + "CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT"] = ( + "CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_POLICY_TABLE"] = ( + "CREATE_TRANSIT_GATEWAY_POLICY_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY"] = ( + "CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE"] = ( + "CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_ROUTE"] = ( + "CREATE_TRANSIT_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_ROUTE_TABLE"] = ( + "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT"] = ( + "CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT"] = ( + "CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VERIFIED_ACCESS_ENDPOINT"] = ( + "CREATE_VERIFIED_ACCESS_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VERIFIED_ACCESS_GROUP"] = ( + "CREATE_VERIFIED_ACCESS_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VERIFIED_ACCESS_INSTANCE"] = ( + "CREATE_VERIFIED_ACCESS_INSTANCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VERIFIED_ACCESS_TRUST_PROVIDER"] = ( + "CREATE_VERIFIED_ACCESS_TRUST_PROVIDER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VOLUME"] = ("CREATE_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_VPC"] = ("CREATE_VPC", (), ("aws.auth#sigv4",)) + +_operation_data["CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION"] = ( + "CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_ENCRYPTION_CONTROL"] = ( + "CREATE_VPC_ENCRYPTION_CONTROL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_ENDPOINT"] = ( + "CREATE_VPC_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION"] = ( + "CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION"] = ( + "CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPC_PEERING_CONNECTION"] = ( + "CREATE_VPC_PEERING_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPN_CONCENTRATOR"] = ( + "CREATE_VPN_CONCENTRATOR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPN_CONNECTION"] = ( + "CREATE_VPN_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPN_CONNECTION_ROUTE"] = ( + "CREATE_VPN_CONNECTION_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VPN_GATEWAY"] = ("CREATE_VPN_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_APPLICATION_STATUS_CHECK"] = ( + "DELETE_APPLICATION_STATUS_CHECK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CAPACITY_MANAGER_DATA_EXPORT"] = ( + "DELETE_CAPACITY_MANAGER_DATA_EXPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CARRIER_GATEWAY"] = ( + "DELETE_CARRIER_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CLIENT_VPN_ENDPOINT"] = ( + "DELETE_CLIENT_VPN_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY"] = ( + "DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CLIENT_VPN_ROUTE"] = ( + "DELETE_CLIENT_VPN_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_COIP_CIDR"] = ("DELETE_COIP_CIDR", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_COIP_POOL"] = ("DELETE_COIP_POOL", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_CUSTOMER_GATEWAY"] = ( + "DELETE_CUSTOMER_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DHCP_OPTIONS"] = ( + "DELETE_DHCP_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_EGRESS_ONLY_INTERNET_GATEWAY"] = ( + "DELETE_EGRESS_ONLY_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_FLEETS"] = ("DELETE_FLEETS", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_FLOW_LOGS"] = ("DELETE_FLOW_LOGS", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_FPGA_IMAGE"] = ("DELETE_FPGA_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_IMAGE_USAGE_REPORT"] = ( + "DELETE_IMAGE_USAGE_REPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_INSTANCE_CONNECT_ENDPOINT"] = ( + "DELETE_INSTANCE_CONNECT_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_INSTANCE_EVENT_WINDOW"] = ( + "DELETE_INSTANCE_EVENT_WINDOW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_INTERNET_GATEWAY"] = ( + "DELETE_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM"] = ("DELETE_IPAM", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN"] = ( + "DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION"] = ( + "DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_POLICY"] = ("DELETE_IPAM_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_IPAM_POOL"] = ("DELETE_IPAM_POOL", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_IPAM_PREFIX_LIST_RESOLVER"] = ( + "DELETE_IPAM_PREFIX_LIST_RESOLVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET"] = ( + "DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_RESOURCE_DISCOVERY"] = ( + "DELETE_IPAM_RESOURCE_DISCOVERY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_ROUTING_POLICY_REGISTRATION"] = ( + "DELETE_IPAM_ROUTING_POLICY_REGISTRATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IPAM_SCOPE"] = ("DELETE_IPAM_SCOPE", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_KEY_PAIR"] = ("DELETE_KEY_PAIR", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_LAUNCH_TEMPLATE"] = ( + "DELETE_LAUNCH_TEMPLATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LAUNCH_TEMPLATE_VERSIONS"] = ( + "DELETE_LAUNCH_TEMPLATE_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOCAL_GATEWAY_ROUTE"] = ( + "DELETE_LOCAL_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOCAL_GATEWAY_ROUTE_TABLE"] = ( + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data[ + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION" +] = ( + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION"] = ( + "DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE"] = ( + "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP"] = ( + "DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_MANAGED_PREFIX_LIST"] = ( + "DELETE_MANAGED_PREFIX_LIST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NAT_GATEWAY"] = ("DELETE_NAT_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_NETWORK_ACL"] = ("DELETE_NETWORK_ACL", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_NETWORK_ACL_ENTRY"] = ( + "DELETE_NETWORK_ACL_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE"] = ( + "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS"] = ( + "DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INSIGHTS_ANALYSIS"] = ( + "DELETE_NETWORK_INSIGHTS_ANALYSIS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INSIGHTS_PATH"] = ( + "DELETE_NETWORK_INSIGHTS_PATH", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INTERFACE"] = ( + "DELETE_NETWORK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_NETWORK_INTERFACE_PERMISSION"] = ( + "DELETE_NETWORK_INTERFACE_PERMISSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_PLACEMENT_GROUP"] = ( + "DELETE_PLACEMENT_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_PUBLIC_IPV4_POOL"] = ( + "DELETE_PUBLIC_IPV4_POOL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_QUEUED_RESERVED_INSTANCES"] = ( + "DELETE_QUEUED_RESERVED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROUTE"] = ("DELETE_ROUTE", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_ROUTE_SERVER"] = ( + "DELETE_ROUTE_SERVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROUTE_SERVER_ENDPOINT"] = ( + "DELETE_ROUTE_SERVER_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROUTE_SERVER_PEER"] = ( + "DELETE_ROUTE_SERVER_PEER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROUTE_TABLE"] = ("DELETE_ROUTE_TABLE", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_SECONDARY_NETWORK"] = ( + "DELETE_SECONDARY_NETWORK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SECONDARY_SUBNET"] = ( + "DELETE_SECONDARY_SUBNET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SECURITY_GROUP"] = ( + "DELETE_SECURITY_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SNAPSHOT"] = ("DELETE_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_SPOT_DATAFEED_SUBSCRIPTION"] = ( + "DELETE_SPOT_DATAFEED_SUBSCRIPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SUBNET"] = ("DELETE_SUBNET", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_SUBNET_CIDR_RESERVATION"] = ( + "DELETE_SUBNET_CIDR_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TAGS"] = ("DELETE_TAGS", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_TRAFFIC_MIRROR_FILTER"] = ( + "DELETE_TRAFFIC_MIRROR_FILTER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRAFFIC_MIRROR_FILTER_RULE"] = ( + "DELETE_TRAFFIC_MIRROR_FILTER_RULE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRAFFIC_MIRROR_SESSION"] = ( + "DELETE_TRAFFIC_MIRROR_SESSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRAFFIC_MIRROR_TARGET"] = ( + "DELETE_TRAFFIC_MIRROR_TARGET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY"] = ( + "DELETE_TRANSIT_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT"] = ( + "DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_CONNECT"] = ( + "DELETE_TRANSIT_GATEWAY_CONNECT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_CONNECT_PEER"] = ( + "DELETE_TRANSIT_GATEWAY_CONNECT_PEER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_METERING_POLICY"] = ( + "DELETE_TRANSIT_GATEWAY_METERING_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY"] = ( + "DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN"] = ( + "DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT"] = ( + "DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_POLICY_TABLE"] = ( + "DELETE_TRANSIT_GATEWAY_POLICY_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY"] = ( + "DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE"] = ( + "DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_ROUTE"] = ( + "DELETE_TRANSIT_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_ROUTE_TABLE"] = ( + "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT"] = ( + "DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT"] = ( + "DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VERIFIED_ACCESS_ENDPOINT"] = ( + "DELETE_VERIFIED_ACCESS_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VERIFIED_ACCESS_GROUP"] = ( + "DELETE_VERIFIED_ACCESS_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VERIFIED_ACCESS_INSTANCE"] = ( + "DELETE_VERIFIED_ACCESS_INSTANCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VERIFIED_ACCESS_TRUST_PROVIDER"] = ( + "DELETE_VERIFIED_ACCESS_TRUST_PROVIDER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VOLUME"] = ("DELETE_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_VPC"] = ("DELETE_VPC", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION"] = ( + "DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_ENCRYPTION_CONTROL"] = ( + "DELETE_VPC_ENCRYPTION_CONTROL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS"] = ( + "DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_ENDPOINTS"] = ( + "DELETE_VPC_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS"] = ( + "DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPC_PEERING_CONNECTION"] = ( + "DELETE_VPC_PEERING_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPN_CONCENTRATOR"] = ( + "DELETE_VPN_CONCENTRATOR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPN_CONNECTION"] = ( + "DELETE_VPN_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPN_CONNECTION_ROUTE"] = ( + "DELETE_VPN_CONNECTION_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VPN_GATEWAY"] = ("DELETE_VPN_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["DEPROVISION_BYOIP_CIDR"] = ( + "DEPROVISION_BYOIP_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEPROVISION_IPAM_BYOASN"] = ( + "DEPROVISION_IPAM_BYOASN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEPROVISION_IPAM_POOL_CIDR"] = ( + "DEPROVISION_IPAM_POOL_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEPROVISION_PUBLIC_IPV4_POOL_CIDR"] = ( + "DEPROVISION_PUBLIC_IPV4_POOL_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_IMAGE"] = ("DEREGISTER_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES"] = ( + "DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS"] = ( + "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES"] = ( + "DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACCOUNT_ATTRIBUTES"] = ( + "DESCRIBE_ACCOUNT_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL"] = ( + "DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ADDRESSES"] = ("DESCRIBE_ADDRESSES", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_ADDRESSES_ATTRIBUTE"] = ( + "DESCRIBE_ADDRESSES_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ADDRESS_TRANSFERS"] = ( + "DESCRIBE_ADDRESS_TRANSFERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_AGGREGATE_ID_FORMAT"] = ( + "DESCRIBE_AGGREGATE_ID_FORMAT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_APPLICATION_STATUS"] = ( + "DESCRIBE_APPLICATION_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS"] = ( + "DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_APPLICATION_STATUS_CHECKS"] = ( + "DESCRIBE_APPLICATION_STATUS_CHECKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_AVAILABILITY_ZONES"] = ( + "DESCRIBE_AVAILABILITY_ZONES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS"] = ( + "DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_BUNDLE_TASKS"] = ( + "DESCRIBE_BUNDLE_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_BYOIP_CIDRS"] = ( + "DESCRIBE_BYOIP_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY"] = ( + "DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS"] = ( + "DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_BLOCK_OFFERINGS"] = ( + "DESCRIBE_CAPACITY_BLOCK_OFFERINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_BLOCKS"] = ( + "DESCRIBE_CAPACITY_BLOCKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_BLOCK_STATUS"] = ( + "DESCRIBE_CAPACITY_BLOCK_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS"] = ( + "DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS"] = ( + "DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES"] = ( + "DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES"] = ( + "DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATION_FLEETS"] = ( + "DESCRIBE_CAPACITY_RESERVATION_FLEETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATIONS"] = ( + "DESCRIBE_CAPACITY_RESERVATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY"] = ( + "DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CARRIER_GATEWAYS"] = ( + "DESCRIBE_CARRIER_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLASSIC_LINK_INSTANCES"] = ( + "DESCRIBE_CLASSIC_LINK_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES"] = ( + "DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLIENT_VPN_CONNECTIONS"] = ( + "DESCRIBE_CLIENT_VPN_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLIENT_VPN_ENDPOINTS"] = ( + "DESCRIBE_CLIENT_VPN_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLIENT_VPN_ROUTES"] = ( + "DESCRIBE_CLIENT_VPN_ROUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLIENT_VPN_TARGET_NETWORKS"] = ( + "DESCRIBE_CLIENT_VPN_TARGET_NETWORKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_COIP_POOLS"] = ( + "DESCRIBE_COIP_POOLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CONVERSION_TASKS"] = ( + "DESCRIBE_CONVERSION_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CUSTOMER_GATEWAYS"] = ( + "DESCRIBE_CUSTOMER_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DECLARATIVE_POLICIES_REPORTS"] = ( + "DESCRIBE_DECLARATIVE_POLICIES_REPORTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DHCP_OPTIONS"] = ( + "DESCRIBE_DHCP_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS"] = ( + "DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ELASTIC_GPUS"] = ( + "DESCRIBE_ELASTIC_GPUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EXPORT_IMAGE_TASKS"] = ( + "DESCRIBE_EXPORT_IMAGE_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EXPORT_TASKS"] = ( + "DESCRIBE_EXPORT_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FAST_LAUNCH_IMAGES"] = ( + "DESCRIBE_FAST_LAUNCH_IMAGES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FAST_SNAPSHOT_RESTORES"] = ( + "DESCRIBE_FAST_SNAPSHOT_RESTORES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FLEET_HISTORY"] = ( + "DESCRIBE_FLEET_HISTORY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FLEET_INSTANCES"] = ( + "DESCRIBE_FLEET_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FLEETS"] = ("DESCRIBE_FLEETS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_FLOW_LOGS"] = ("DESCRIBE_FLOW_LOGS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_FPGA_IMAGE_ATTRIBUTE"] = ( + "DESCRIBE_FPGA_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_FPGA_IMAGES"] = ( + "DESCRIBE_FPGA_IMAGES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_HOST_RESERVATION_OFFERINGS"] = ( + "DESCRIBE_HOST_RESERVATION_OFFERINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_HOST_RESERVATIONS"] = ( + "DESCRIBE_HOST_RESERVATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_HOSTS"] = ("DESCRIBE_HOSTS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS"] = ( + "DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IDENTITY_ID_FORMAT"] = ( + "DESCRIBE_IDENTITY_ID_FORMAT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ID_FORMAT"] = ("DESCRIBE_ID_FORMAT", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_IMAGE_ATTRIBUTE"] = ( + "DESCRIBE_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IMAGE_REFERENCES"] = ( + "DESCRIBE_IMAGE_REFERENCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IMAGES"] = ("DESCRIBE_IMAGES", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES"] = ( + "DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IMAGE_USAGE_REPORTS"] = ( + "DESCRIBE_IMAGE_USAGE_REPORTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IMPORT_IMAGE_TASKS"] = ( + "DESCRIBE_IMPORT_IMAGE_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IMPORT_SNAPSHOT_TASKS"] = ( + "DESCRIBE_IMPORT_SNAPSHOT_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_ATTRIBUTE"] = ( + "DESCRIBE_INSTANCE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_CONNECT_ENDPOINTS"] = ( + "DESCRIBE_INSTANCE_CONNECT_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS"] = ( + "DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES"] = ( + "DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_EVENT_WINDOWS"] = ( + "DESCRIBE_INSTANCE_EVENT_WINDOWS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_IMAGE_METADATA"] = ( + "DESCRIBE_INSTANCE_IMAGE_METADATA", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCES"] = ("DESCRIBE_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES"] = ( + "DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_SQL_HA_STATES"] = ( + "DESCRIBE_INSTANCE_SQL_HA_STATES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_STATUS"] = ( + "DESCRIBE_INSTANCE_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_TOPOLOGY"] = ( + "DESCRIBE_INSTANCE_TOPOLOGY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_TYPE_OFFERINGS"] = ( + "DESCRIBE_INSTANCE_TYPE_OFFERINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INSTANCE_TYPES"] = ( + "DESCRIBE_INSTANCE_TYPES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INTERNET_GATEWAYS"] = ( + "DESCRIBE_INTERNET_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_BYOASN"] = ( + "DESCRIBE_IPAM_BYOASN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS"] = ( + "DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS"] = ( + "DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_POLICIES"] = ( + "DESCRIBE_IPAM_POLICIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_POOL_ALLOCATIONS"] = ( + "DESCRIBE_IPAM_POOL_ALLOCATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_POOLS"] = ( + "DESCRIBE_IPAM_POOLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS"] = ( + "DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS"] = ( + "DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_RESOURCE_DISCOVERIES"] = ( + "DESCRIBE_IPAM_RESOURCE_DISCOVERIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS"] = ( + "DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPAMS"] = ("DESCRIBE_IPAMS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_IPAM_SCOPES"] = ( + "DESCRIBE_IPAM_SCOPES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_IPV6_POOLS"] = ( + "DESCRIBE_IPV6_POOLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_KEY_PAIRS"] = ("DESCRIBE_KEY_PAIRS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_LAUNCH_TEMPLATES"] = ( + "DESCRIBE_LAUNCH_TEMPLATES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LAUNCH_TEMPLATE_VERSIONS"] = ( + "DESCRIBE_LAUNCH_TEMPLATE_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES"] = ( + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES", + (), + ("aws.auth#sigv4",), +) + +_operation_data[ + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS" +] = ( + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS"] = ( + "DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCAL_GATEWAYS"] = ( + "DESCRIBE_LOCAL_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS"] = ( + "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES"] = ( + "DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LOCKED_SNAPSHOTS"] = ( + "DESCRIBE_LOCKED_SNAPSHOTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_MAC_HOSTS"] = ("DESCRIBE_MAC_HOSTS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_MAC_MODIFICATION_TASKS"] = ( + "DESCRIBE_MAC_MODIFICATION_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_MANAGED_PREFIX_LISTS"] = ( + "DESCRIBE_MANAGED_PREFIX_LISTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_MOVING_ADDRESSES"] = ( + "DESCRIBE_MOVING_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NAT_GATEWAYS"] = ( + "DESCRIBE_NAT_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_ACLS"] = ( + "DESCRIBE_NETWORK_ACLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES"] = ( + "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES"] = ( + "DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INSIGHTS_ANALYSES"] = ( + "DESCRIBE_NETWORK_INSIGHTS_ANALYSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INSIGHTS_PATHS"] = ( + "DESCRIBE_NETWORK_INSIGHTS_PATHS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE"] = ( + "DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INTERFACE_PERMISSIONS"] = ( + "DESCRIBE_NETWORK_INTERFACE_PERMISSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_NETWORK_INTERFACES"] = ( + "DESCRIBE_NETWORK_INTERFACES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_OUTPOST_LAGS"] = ( + "DESCRIBE_OUTPOST_LAGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PLACEMENT_GROUPS"] = ( + "DESCRIBE_PLACEMENT_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PREFIX_LISTS"] = ( + "DESCRIBE_PREFIX_LISTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PRINCIPAL_ID_FORMAT"] = ( + "DESCRIBE_PRINCIPAL_ID_FORMAT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PUBLIC_IPV4_POOLS"] = ( + "DESCRIBE_PUBLIC_IPV4_POOLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_REGIONS"] = ("DESCRIBE_REGIONS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_REPLACE_ROOT_VOLUME_TASKS"] = ( + "DESCRIBE_REPLACE_ROOT_VOLUME_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_INSTANCES"] = ( + "DESCRIBE_RESERVED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_INSTANCES_LISTINGS"] = ( + "DESCRIBE_RESERVED_INSTANCES_LISTINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS"] = ( + "DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_INSTANCES_OFFERINGS"] = ( + "DESCRIBE_RESERVED_INSTANCES_OFFERINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ROUTE_SERVER_ENDPOINTS"] = ( + "DESCRIBE_ROUTE_SERVER_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ROUTE_SERVER_PEERS"] = ( + "DESCRIBE_ROUTE_SERVER_PEERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ROUTE_SERVERS"] = ( + "DESCRIBE_ROUTE_SERVERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ROUTE_TABLES"] = ( + "DESCRIBE_ROUTE_TABLES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY"] = ( + "DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SCHEDULED_INSTANCES"] = ( + "DESCRIBE_SCHEDULED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECONDARY_INTERFACES"] = ( + "DESCRIBE_SECONDARY_INTERFACES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECONDARY_NETWORKS"] = ( + "DESCRIBE_SECONDARY_NETWORKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECONDARY_SUBNETS"] = ( + "DESCRIBE_SECONDARY_SUBNETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECURITY_GROUP_REFERENCES"] = ( + "DESCRIBE_SECURITY_GROUP_REFERENCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECURITY_GROUP_RULES"] = ( + "DESCRIBE_SECURITY_GROUP_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECURITY_GROUPS"] = ( + "DESCRIBE_SECURITY_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS"] = ( + "DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES"] = ( + "DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SNAPSHOT_ATTRIBUTE"] = ( + "DESCRIBE_SNAPSHOT_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SNAPSHOTS"] = ("DESCRIBE_SNAPSHOTS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_SNAPSHOT_TIER_STATUS"] = ( + "DESCRIBE_SNAPSHOT_TIER_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION"] = ( + "DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_FLEET_INSTANCES"] = ( + "DESCRIBE_SPOT_FLEET_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_FLEET_REQUEST_HISTORY"] = ( + "DESCRIBE_SPOT_FLEET_REQUEST_HISTORY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_FLEET_REQUESTS"] = ( + "DESCRIBE_SPOT_FLEET_REQUESTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_INSTANCE_REQUESTS"] = ( + "DESCRIBE_SPOT_INSTANCE_REQUESTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SPOT_PRICE_HISTORY"] = ( + "DESCRIBE_SPOT_PRICE_HISTORY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STALE_SECURITY_GROUPS"] = ( + "DESCRIBE_STALE_SECURITY_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STORE_IMAGE_TASKS"] = ( + "DESCRIBE_STORE_IMAGE_TASKS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SUBNETS"] = ("DESCRIBE_SUBNETS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_TAGS"] = ("DESCRIBE_TAGS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES"] = ( + "DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRAFFIC_MIRROR_FILTERS"] = ( + "DESCRIBE_TRAFFIC_MIRROR_FILTERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRAFFIC_MIRROR_SESSIONS"] = ( + "DESCRIBE_TRAFFIC_MIRROR_SESSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRAFFIC_MIRROR_TARGETS"] = ( + "DESCRIBE_TRAFFIC_MIRROR_TARGETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_CONNECTS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_CONNECTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES"] = ( + "DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES"] = ( + "DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES"] = ( + "DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAYS"] = ( + "DESCRIBE_TRANSIT_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS"] = ( + "DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS"] = ( + "DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VERIFIED_ACCESS_ENDPOINTS"] = ( + "DESCRIBE_VERIFIED_ACCESS_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VERIFIED_ACCESS_GROUPS"] = ( + "DESCRIBE_VERIFIED_ACCESS_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS"] = ( + "DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VERIFIED_ACCESS_INSTANCES"] = ( + "DESCRIBE_VERIFIED_ACCESS_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS"] = ( + "DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VOLUME_ATTRIBUTE"] = ( + "DESCRIBE_VOLUME_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VOLUMES"] = ("DESCRIBE_VOLUMES", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_VOLUMES_MODIFICATIONS"] = ( + "DESCRIBE_VOLUMES_MODIFICATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VOLUME_STATUS"] = ( + "DESCRIBE_VOLUME_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ATTRIBUTE"] = ( + "DESCRIBE_VPC_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS"] = ( + "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS"] = ( + "DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_CLASSIC_LINK"] = ( + "DESCRIBE_VPC_CLASSIC_LINK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT"] = ( + "DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENCRYPTION_CONTROLS"] = ( + "DESCRIBE_VPC_ENCRYPTION_CONTROLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS"] = ( + "DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS"] = ( + "DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_CONNECTIONS"] = ( + "DESCRIBE_VPC_ENDPOINT_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINTS"] = ( + "DESCRIBE_VPC_ENDPOINTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS"] = ( + "DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS"] = ( + "DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_ENDPOINT_SERVICES"] = ( + "DESCRIBE_VPC_ENDPOINT_SERVICES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPC_PEERING_CONNECTIONS"] = ( + "DESCRIBE_VPC_PEERING_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPCS"] = ("DESCRIBE_VPCS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_VPN_CONCENTRATORS"] = ( + "DESCRIBE_VPN_CONCENTRATORS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPN_CONNECTIONS"] = ( + "DESCRIBE_VPN_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VPN_GATEWAYS"] = ( + "DESCRIBE_VPN_GATEWAYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_CLASSIC_LINK_VPC"] = ( + "DETACH_CLASSIC_LINK_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_IMAGE_WATERMARK"] = ( + "DETACH_IMAGE_WATERMARK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_INTERNET_GATEWAY"] = ( + "DETACH_INTERNET_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_NETWORK_INTERFACE"] = ( + "DETACH_NETWORK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_VERIFIED_ACCESS_TRUST_PROVIDER"] = ( + "DETACH_VERIFIED_ACCESS_TRUST_PROVIDER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_VOLUME"] = ("DETACH_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["DETACH_VPN_GATEWAY"] = ("DETACH_VPN_GATEWAY", (), ("aws.auth#sigv4",)) + +_operation_data["DISABLE_ADDRESS_TRANSFER"] = ( + "DISABLE_ADDRESS_TRANSFER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_ALLOWED_IMAGES_SETTINGS"] = ( + "DISABLE_ALLOWED_IMAGES_SETTINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION"] = ( + "DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION"] = ( + "DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_CAPACITY_MANAGER"] = ( + "DISABLE_CAPACITY_MANAGER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_EBS_ENCRYPTION_BY_DEFAULT"] = ( + "DISABLE_EBS_ENCRYPTION_BY_DEFAULT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_FAST_LAUNCH"] = ( + "DISABLE_FAST_LAUNCH", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_FAST_SNAPSHOT_RESTORES"] = ( + "DISABLE_FAST_SNAPSHOT_RESTORES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_IMAGE"] = ("DISABLE_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS"] = ( + "DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_IMAGE_DEPRECATION"] = ( + "DISABLE_IMAGE_DEPRECATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_IMAGE_DEREGISTRATION_PROTECTION"] = ( + "DISABLE_IMAGE_DEREGISTRATION_PROTECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS"] = ( + "DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT"] = ( + "DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_IPAM_POLICY"] = ( + "DISABLE_IPAM_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_ROUTE_SERVER_PROPAGATION"] = ( + "DISABLE_ROUTE_SERVER_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_SERIAL_CONSOLE_ACCESS"] = ( + "DISABLE_SERIAL_CONSOLE_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS"] = ( + "DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION"] = ( + "DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_VGW_ROUTE_PROPAGATION"] = ( + "DISABLE_VGW_ROUTE_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_VPC_CLASSIC_LINK"] = ( + "DISABLE_VPC_CLASSIC_LINK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT"] = ( + "DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_ADDRESS"] = ( + "DISASSOCIATE_ADDRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_APPLICATION_STATUS_CHECK"] = ( + "DISASSOCIATE_APPLICATION_STATUS_CHECK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER"] = ( + "DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK"] = ( + "DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE"] = ( + "DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_IAM_INSTANCE_PROFILE"] = ( + "DISASSOCIATE_IAM_INSTANCE_PROFILE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_INSTANCE_EVENT_WINDOW"] = ( + "DISASSOCIATE_INSTANCE_EVENT_WINDOW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_IPAM_BYOASN"] = ( + "DISASSOCIATE_IPAM_BYOASN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_IPAM_RESOURCE_DISCOVERY"] = ( + "DISASSOCIATE_IPAM_RESOURCE_DISCOVERY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_NAT_GATEWAY_ADDRESS"] = ( + "DISASSOCIATE_NAT_GATEWAY_ADDRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_ROUTE_SERVER"] = ( + "DISASSOCIATE_ROUTE_SERVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_ROUTE_TABLE"] = ( + "DISASSOCIATE_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_SECURITY_GROUP_VPC"] = ( + "DISASSOCIATE_SECURITY_GROUP_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_SUBNET_CIDR_BLOCK"] = ( + "DISASSOCIATE_SUBNET_CIDR_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN"] = ( + "DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE"] = ( + "DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE"] = ( + "DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_TRUNK_INTERFACE"] = ( + "DISASSOCIATE_TRUNK_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_VPC_CIDR_BLOCK"] = ( + "DISASSOCIATE_VPC_CIDR_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ADDRESS_TRANSFER"] = ( + "ENABLE_ADDRESS_TRANSFER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ALLOWED_IMAGES_SETTINGS"] = ( + "ENABLE_ALLOWED_IMAGES_SETTINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION"] = ( + "ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION"] = ( + "ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_CAPACITY_MANAGER"] = ( + "ENABLE_CAPACITY_MANAGER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_EBS_ENCRYPTION_BY_DEFAULT"] = ( + "ENABLE_EBS_ENCRYPTION_BY_DEFAULT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_FAST_LAUNCH"] = ("ENABLE_FAST_LAUNCH", (), ("aws.auth#sigv4",)) + +_operation_data["ENABLE_FAST_SNAPSHOT_RESTORES"] = ( + "ENABLE_FAST_SNAPSHOT_RESTORES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IMAGE"] = ("ENABLE_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS"] = ( + "ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IMAGE_DEPRECATION"] = ( + "ENABLE_IMAGE_DEPRECATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IMAGE_DEREGISTRATION_PROTECTION"] = ( + "ENABLE_IMAGE_DEREGISTRATION_PROTECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS"] = ( + "ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION"] = ( + "ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT"] = ( + "ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_IPAM_POLICY"] = ("ENABLE_IPAM_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING"] = ( + "ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ROUTE_SERVER_PROPAGATION"] = ( + "ENABLE_ROUTE_SERVER_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_SERIAL_CONSOLE_ACCESS"] = ( + "ENABLE_SERIAL_CONSOLE_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS"] = ( + "ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION"] = ( + "ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_VGW_ROUTE_PROPAGATION"] = ( + "ENABLE_VGW_ROUTE_PROPAGATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_VOLUME_IO"] = ("ENABLE_VOLUME_IO", (), ("aws.auth#sigv4",)) + +_operation_data["ENABLE_VPC_CLASSIC_LINK"] = ( + "ENABLE_VPC_CLASSIC_LINK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT"] = ( + "ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST"] = ( + "EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION"] = ( + "EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["EXPORT_IMAGE"] = ("EXPORT_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["EXPORT_TRANSIT_GATEWAY_ROUTES"] = ( + "EXPORT_TRANSIT_GATEWAY_ROUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION"] = ( + "EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACTIVE_VPN_TUNNEL_STATUS"] = ( + "GET_ACTIVE_VPN_TUNNEL_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ALLOWED_IMAGES_SETTINGS"] = ( + "GET_ALLOWED_IMAGES_SETTINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES"] = ( + "GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ASSOCIATED_IPV6_POOL_CIDRS"] = ( + "GET_ASSOCIATED_IPV6_POOL_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_AWS_NETWORK_PERFORMANCE_DATA"] = ( + "GET_AWS_NETWORK_PERFORMANCE_DATA", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_MANAGER_ATTRIBUTES"] = ( + "GET_CAPACITY_MANAGER_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_MANAGER_METRIC_DATA"] = ( + "GET_CAPACITY_MANAGER_METRIC_DATA", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_MANAGER_METRIC_DIMENSIONS"] = ( + "GET_CAPACITY_MANAGER_METRIC_DIMENSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS"] = ( + "GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES"] = ( + "GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CAPACITY_RESERVATION_USAGE"] = ( + "GET_CAPACITY_RESERVATION_USAGE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY"] = ( + "GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_COIP_POOL_USAGE"] = ( + "GET_COIP_POOL_USAGE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONSOLE_OUTPUT"] = ("GET_CONSOLE_OUTPUT", (), ("aws.auth#sigv4",)) + +_operation_data["GET_CONSOLE_SCREENSHOT"] = ( + "GET_CONSOLE_SCREENSHOT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DECLARATIVE_POLICIES_REPORT_SUMMARY"] = ( + "GET_DECLARATIVE_POLICIES_REPORT_SUMMARY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DEFAULT_CREDIT_SPECIFICATION"] = ( + "GET_DEFAULT_CREDIT_SPECIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_EBS_DEFAULT_KMS_KEY_ID"] = ( + "GET_EBS_DEFAULT_KMS_KEY_ID", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_EBS_ENCRYPTION_BY_DEFAULT"] = ( + "GET_EBS_ENCRYPTION_BY_DEFAULT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ENABLED_IPAM_POLICY"] = ( + "GET_ENABLED_IPAM_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_FLOW_LOGS_INTEGRATION_TEMPLATE"] = ( + "GET_FLOW_LOGS_INTEGRATION_TEMPLATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_GROUPS_FOR_CAPACITY_RESERVATION"] = ( + "GET_GROUPS_FOR_CAPACITY_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_HOST_RESERVATION_PURCHASE_PREVIEW"] = ( + "GET_HOST_RESERVATION_PURCHASE_PREVIEW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IMAGE_ANCESTRY"] = ("GET_IMAGE_ANCESTRY", (), ("aws.auth#sigv4",)) + +_operation_data["GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE"] = ( + "GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IMAGE_FINDINGS"] = ("GET_IMAGE_FINDINGS", (), ("aws.auth#sigv4",)) + +_operation_data["GET_INSTANCE_METADATA_DEFAULTS"] = ( + "GET_INSTANCE_METADATA_DEFAULTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INSTANCE_TPM_EK_PUB"] = ( + "GET_INSTANCE_TPM_EK_PUB", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS"] = ( + "GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INSTANCE_UEFI_DATA"] = ( + "GET_INSTANCE_UEFI_DATA", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_ADDRESS_HISTORY"] = ( + "GET_IPAM_ADDRESS_HISTORY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_DISCOVERED_ACCOUNTS"] = ( + "GET_IPAM_DISCOVERED_ACCOUNTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES"] = ( + "GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_DISCOVERED_RESOURCE_CIDRS"] = ( + "GET_IPAM_DISCOVERED_RESOURCE_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_DISCOVERED_ROUTES"] = ( + "GET_IPAM_DISCOVERED_ROUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS"] = ( + "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS"] = ( + "GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_POLICY_ALLOCATION_RULES"] = ( + "GET_IPAM_POLICY_ALLOCATION_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_POLICY_ORGANIZATION_TARGETS"] = ( + "GET_IPAM_POLICY_ORGANIZATION_TARGETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_POOL_ALLOCATIONS"] = ( + "GET_IPAM_POOL_ALLOCATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_POOL_CIDRS"] = ( + "GET_IPAM_POOL_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_PREFIX_LIST_RESOLVER_RULES"] = ( + "GET_IPAM_PREFIX_LIST_RESOLVER_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES"] = ( + "GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS"] = ( + "GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_RESOURCE_CIDRS"] = ( + "GET_IPAM_RESOURCE_CIDRS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS"] = ( + "GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_ROUTE_PROTECTION_FINDINGS"] = ( + "GET_IPAM_ROUTE_PROTECTION_FINDINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS"] = ( + "GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_IPAM_ROUTING_POLICY_REGISTRATIONS"] = ( + "GET_IPAM_ROUTING_POLICY_REGISTRATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_LAUNCH_TEMPLATE_DATA"] = ( + "GET_LAUNCH_TEMPLATE_DATA", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MANAGED_PREFIX_LIST_ASSOCIATIONS"] = ( + "GET_MANAGED_PREFIX_LIST_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MANAGED_PREFIX_LIST_ENTRIES"] = ( + "GET_MANAGED_PREFIX_LIST_ENTRIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MANAGED_RESOURCE_VISIBILITY"] = ( + "GET_MANAGED_RESOURCE_VISIBILITY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS"] = ( + "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT"] = ( + "GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_PASSWORD_DATA"] = ("GET_PASSWORD_DATA", (), ("aws.auth#sigv4",)) + +_operation_data["GET_RESERVED_INSTANCES_EXCHANGE_QUOTE"] = ( + "GET_RESERVED_INSTANCES_EXCHANGE_QUOTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROUTE_SERVER_ASSOCIATIONS"] = ( + "GET_ROUTE_SERVER_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROUTE_SERVER_PROPAGATIONS"] = ( + "GET_ROUTE_SERVER_PROPAGATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROUTE_SERVER_ROUTING_DATABASE"] = ( + "GET_ROUTE_SERVER_ROUTING_DATABASE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SECURITY_GROUPS_FOR_VPC"] = ( + "GET_SECURITY_GROUPS_FOR_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SERIAL_CONSOLE_ACCESS_STATUS"] = ( + "GET_SERIAL_CONSOLE_ACCESS_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE"] = ( + "GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SPOT_PLACEMENT_SCORES"] = ( + "GET_SPOT_PLACEMENT_SCORES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SUBNET_CIDR_RESERVATIONS"] = ( + "GET_SUBNET_CIDR_RESERVATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION"] = ( + "GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS"] = ( + "GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES"] = ( + "GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS"] = ( + "GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS"] = ( + "GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES"] = ( + "GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES"] = ( + "GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS"] = ( + "GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS"] = ( + "GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VERIFIED_ACCESS_ENDPOINT_POLICY"] = ( + "GET_VERIFIED_ACCESS_ENDPOINT_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VERIFIED_ACCESS_ENDPOINT_TARGETS"] = ( + "GET_VERIFIED_ACCESS_ENDPOINT_TARGETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VERIFIED_ACCESS_GROUP_POLICY"] = ( + "GET_VERIFIED_ACCESS_GROUP_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT"] = ( + "GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION"] = ( + "GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VPN_CONNECTION_DEVICE_TYPES"] = ( + "GET_VPN_CONNECTION_DEVICE_TYPES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_VPN_TUNNEL_REPLACEMENT_STATUS"] = ( + "GET_VPN_TUNNEL_REPLACEMENT_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST"] = ( + "IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["IMPORT_IMAGE"] = ("IMPORT_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["IMPORT_INSTANCE"] = ("IMPORT_INSTANCE", (), ("aws.auth#sigv4",)) + +_operation_data["IMPORT_KEY_PAIR"] = ("IMPORT_KEY_PAIR", (), ("aws.auth#sigv4",)) + +_operation_data["IMPORT_SNAPSHOT"] = ("IMPORT_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["IMPORT_VOLUME"] = ("IMPORT_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_IMAGES_IN_RECYCLE_BIN"] = ( + "LIST_IMAGES_IN_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SNAPSHOTS_IN_RECYCLE_BIN"] = ( + "LIST_SNAPSHOTS_IN_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_VOLUMES_IN_RECYCLE_BIN"] = ( + "LIST_VOLUMES_IN_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LOCK_SNAPSHOT"] = ("LOCK_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL"] = ( + "MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_ADDRESS_ATTRIBUTE"] = ( + "MODIFY_ADDRESS_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_APPLICATION_STATUS_CHECK"] = ( + "MODIFY_APPLICATION_STATUS_CHECK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_AVAILABILITY_ZONE_GROUP"] = ( + "MODIFY_AVAILABILITY_ZONE_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CAPACITY_RESERVATION"] = ( + "MODIFY_CAPACITY_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CAPACITY_RESERVATION_FLEET"] = ( + "MODIFY_CAPACITY_RESERVATION_FLEET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CLIENT_VPN_ENDPOINT"] = ( + "MODIFY_CLIENT_VPN_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY"] = ( + "MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DEFAULT_CREDIT_SPECIFICATION"] = ( + "MODIFY_DEFAULT_CREDIT_SPECIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_EBS_DEFAULT_KMS_KEY_ID"] = ( + "MODIFY_EBS_DEFAULT_KMS_KEY_ID", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_FLEET"] = ("MODIFY_FLEET", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_FPGA_IMAGE_ATTRIBUTE"] = ( + "MODIFY_FPGA_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_HOSTS"] = ("MODIFY_HOSTS", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_IDENTITY_ID_FORMAT"] = ( + "MODIFY_IDENTITY_ID_FORMAT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_ID_FORMAT"] = ("MODIFY_ID_FORMAT", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_IMAGE_ATTRIBUTE"] = ( + "MODIFY_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_ATTRIBUTE"] = ( + "MODIFY_INSTANCE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES"] = ( + "MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_CONNECT_ENDPOINT"] = ( + "MODIFY_INSTANCE_CONNECT_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_CPU_OPTIONS"] = ( + "MODIFY_INSTANCE_CPU_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_CREDIT_SPECIFICATION"] = ( + "MODIFY_INSTANCE_CREDIT_SPECIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_EVENT_START_TIME"] = ( + "MODIFY_INSTANCE_EVENT_START_TIME", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_EVENT_WINDOW"] = ( + "MODIFY_INSTANCE_EVENT_WINDOW", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_MAINTENANCE_OPTIONS"] = ( + "MODIFY_INSTANCE_MAINTENANCE_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_METADATA_DEFAULTS"] = ( + "MODIFY_INSTANCE_METADATA_DEFAULTS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_METADATA_OPTIONS"] = ( + "MODIFY_INSTANCE_METADATA_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS"] = ( + "MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INSTANCE_PLACEMENT"] = ( + "MODIFY_INSTANCE_PLACEMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM"] = ("MODIFY_IPAM", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_IPAM_POLICY_ALLOCATION_RULES"] = ( + "MODIFY_IPAM_POLICY_ALLOCATION_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_POOL"] = ("MODIFY_IPAM_POOL", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_IPAM_POOL_ALLOCATION"] = ( + "MODIFY_IPAM_POOL_ALLOCATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_PREFIX_LIST_RESOLVER"] = ( + "MODIFY_IPAM_PREFIX_LIST_RESOLVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET"] = ( + "MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_RESOURCE_CIDR"] = ( + "MODIFY_IPAM_RESOURCE_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_RESOURCE_DISCOVERY"] = ( + "MODIFY_IPAM_RESOURCE_DISCOVERY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_ROUTING_POLICY_REGISTRATION"] = ( + "MODIFY_IPAM_ROUTING_POLICY_REGISTRATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_IPAM_SCOPE"] = ("MODIFY_IPAM_SCOPE", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_LAUNCH_TEMPLATE"] = ( + "MODIFY_LAUNCH_TEMPLATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_LOCAL_GATEWAY_ROUTE"] = ( + "MODIFY_LOCAL_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_MANAGED_PREFIX_LIST"] = ( + "MODIFY_MANAGED_PREFIX_LIST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_MANAGED_RESOURCE_VISIBILITY"] = ( + "MODIFY_MANAGED_RESOURCE_VISIBILITY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_NETWORK_INTERFACE_ATTRIBUTE"] = ( + "MODIFY_NETWORK_INTERFACE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_PRIVATE_DNS_NAME_OPTIONS"] = ( + "MODIFY_PRIVATE_DNS_NAME_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS"] = ( + "MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_RESERVED_INSTANCES"] = ( + "MODIFY_RESERVED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_ROUTE_SERVER"] = ( + "MODIFY_ROUTE_SERVER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_SECURITY_GROUP_RULES"] = ( + "MODIFY_SECURITY_GROUP_RULES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_SNAPSHOT_ATTRIBUTE"] = ( + "MODIFY_SNAPSHOT_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_SNAPSHOT_TIER"] = ( + "MODIFY_SNAPSHOT_TIER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_SPOT_FLEET_REQUEST"] = ( + "MODIFY_SPOT_FLEET_REQUEST", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_SUBNET_ATTRIBUTE"] = ( + "MODIFY_SUBNET_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES"] = ( + "MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRAFFIC_MIRROR_FILTER_RULE"] = ( + "MODIFY_TRAFFIC_MIRROR_FILTER_RULE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRAFFIC_MIRROR_SESSION"] = ( + "MODIFY_TRAFFIC_MIRROR_SESSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY"] = ( + "MODIFY_TRANSIT_GATEWAY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION"] = ( + "MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY_METERING_POLICY"] = ( + "MODIFY_TRANSIT_GATEWAY_METERING_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY"] = ( + "MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE"] = ( + "MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT"] = ( + "MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_ENDPOINT"] = ( + "MODIFY_VERIFIED_ACCESS_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY"] = ( + "MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_GROUP"] = ( + "MODIFY_VERIFIED_ACCESS_GROUP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_GROUP_POLICY"] = ( + "MODIFY_VERIFIED_ACCESS_GROUP_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_INSTANCE"] = ( + "MODIFY_VERIFIED_ACCESS_INSTANCE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION"] = ( + "MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER"] = ( + "MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VOLUME"] = ("MODIFY_VOLUME", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_VOLUME_ATTRIBUTE"] = ( + "MODIFY_VOLUME_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ATTRIBUTE"] = ( + "MODIFY_VPC_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION"] = ( + "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS"] = ( + "MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENCRYPTION_CONTROL"] = ( + "MODIFY_VPC_ENCRYPTION_CONTROL", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT"] = ( + "MODIFY_VPC_ENDPOINT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION"] = ( + "MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY"] = ( + "MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION"] = ( + "MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY"] = ( + "MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS"] = ( + "MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_PEERING_CONNECTION_OPTIONS"] = ( + "MODIFY_VPC_PEERING_CONNECTION_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPC_TENANCY"] = ("MODIFY_VPC_TENANCY", (), ("aws.auth#sigv4",)) + +_operation_data["MODIFY_VPN_CONNECTION"] = ( + "MODIFY_VPN_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPN_CONNECTION_OPTIONS"] = ( + "MODIFY_VPN_CONNECTION_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPN_TUNNEL_CERTIFICATE"] = ( + "MODIFY_VPN_TUNNEL_CERTIFICATE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_VPN_TUNNEL_OPTIONS"] = ( + "MODIFY_VPN_TUNNEL_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MONITOR_INSTANCES"] = ("MONITOR_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["MOVE_ADDRESS_TO_VPC"] = ( + "MOVE_ADDRESS_TO_VPC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MOVE_BYOIP_CIDR_TO_IPAM"] = ( + "MOVE_BYOIP_CIDR_TO_IPAM", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MOVE_CAPACITY_RESERVATION_INSTANCES"] = ( + "MOVE_CAPACITY_RESERVATION_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PROVISION_BYOIP_CIDR"] = ( + "PROVISION_BYOIP_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PROVISION_IPAM_BYOASN"] = ( + "PROVISION_IPAM_BYOASN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PROVISION_IPAM_POOL_CIDR"] = ( + "PROVISION_IPAM_POOL_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PROVISION_PUBLIC_IPV4_POOL_CIDR"] = ( + "PROVISION_PUBLIC_IPV4_POOL_CIDR", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_CAPACITY_BLOCK"] = ( + "PURCHASE_CAPACITY_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_CAPACITY_BLOCK_EXTENSION"] = ( + "PURCHASE_CAPACITY_BLOCK_EXTENSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_HOST_RESERVATION"] = ( + "PURCHASE_HOST_RESERVATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_RESERVED_INSTANCES_OFFERING"] = ( + "PURCHASE_RESERVED_INSTANCES_OFFERING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_SCHEDULED_INSTANCES"] = ( + "PURCHASE_SCHEDULED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REBOOT_INSTANCES"] = ("REBOOT_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["REGISTER_IMAGE"] = ("REGISTER_IMAGE", (), ("aws.auth#sigv4",)) + +_operation_data["REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES"] = ( + "REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS"] = ( + "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES"] = ( + "REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP"] = ( + "REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT"] = ( + "REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS"] = ( + "REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT"] = ( + "REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT"] = ( + "REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_VPC_ENDPOINT_CONNECTIONS"] = ( + "REJECT_VPC_ENDPOINT_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_VPC_PEERING_CONNECTION"] = ( + "REJECT_VPC_PEERING_CONNECTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RELEASE_ADDRESS"] = ("RELEASE_ADDRESS", (), ("aws.auth#sigv4",)) + +_operation_data["RELEASE_HOSTS"] = ("RELEASE_HOSTS", (), ("aws.auth#sigv4",)) + +_operation_data["RELEASE_IPAM_POOL_ALLOCATION"] = ( + "RELEASE_IPAM_POOL_ALLOCATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION"] = ( + "REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS"] = ( + "REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION"] = ( + "REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_NETWORK_ACL_ASSOCIATION"] = ( + "REPLACE_NETWORK_ACL_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_NETWORK_ACL_ENTRY"] = ( + "REPLACE_NETWORK_ACL_ENTRY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_ROUTE"] = ("REPLACE_ROUTE", (), ("aws.auth#sigv4",)) + +_operation_data["REPLACE_ROUTE_TABLE_ASSOCIATION"] = ( + "REPLACE_ROUTE_TABLE_ASSOCIATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_TRANSIT_GATEWAY_ROUTE"] = ( + "REPLACE_TRANSIT_GATEWAY_ROUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REPLACE_VPN_TUNNEL"] = ("REPLACE_VPN_TUNNEL", (), ("aws.auth#sigv4",)) + +_operation_data["REPORT_INSTANCE_STATUS"] = ( + "REPORT_INSTANCE_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REQUEST_SPOT_FLEET"] = ("REQUEST_SPOT_FLEET", (), ("aws.auth#sigv4",)) + +_operation_data["REQUEST_SPOT_INSTANCES"] = ( + "REQUEST_SPOT_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_ADDRESS_ATTRIBUTE"] = ( + "RESET_ADDRESS_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_EBS_DEFAULT_KMS_KEY_ID"] = ( + "RESET_EBS_DEFAULT_KMS_KEY_ID", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_FPGA_IMAGE_ATTRIBUTE"] = ( + "RESET_FPGA_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_IMAGE_ATTRIBUTE"] = ( + "RESET_IMAGE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_INSTANCE_ATTRIBUTE"] = ( + "RESET_INSTANCE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_NETWORK_INTERFACE_ATTRIBUTE"] = ( + "RESET_NETWORK_INTERFACE_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_SNAPSHOT_ATTRIBUTE"] = ( + "RESET_SNAPSHOT_ATTRIBUTE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_ADDRESS_TO_CLASSIC"] = ( + "RESTORE_ADDRESS_TO_CLASSIC", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_IMAGE_FROM_RECYCLE_BIN"] = ( + "RESTORE_IMAGE_FROM_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_MANAGED_PREFIX_LIST_VERSION"] = ( + "RESTORE_MANAGED_PREFIX_LIST_VERSION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_SNAPSHOT_FROM_RECYCLE_BIN"] = ( + "RESTORE_SNAPSHOT_FROM_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_SNAPSHOT_TIER"] = ( + "RESTORE_SNAPSHOT_TIER", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_VOLUME_FROM_RECYCLE_BIN"] = ( + "RESTORE_VOLUME_FROM_RECYCLE_BIN", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_CLIENT_VPN_INGRESS"] = ( + "REVOKE_CLIENT_VPN_INGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_SECURITY_GROUP_EGRESS"] = ( + "REVOKE_SECURITY_GROUP_EGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_SECURITY_GROUP_INGRESS"] = ( + "REVOKE_SECURITY_GROUP_INGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RUN_INSTANCES"] = ("RUN_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["RUN_SCHEDULED_INSTANCES"] = ( + "RUN_SCHEDULED_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["SEARCH_LOCAL_GATEWAY_ROUTES"] = ( + "SEARCH_LOCAL_GATEWAY_ROUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS"] = ( + "SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["SEARCH_TRANSIT_GATEWAY_ROUTES"] = ( + "SEARCH_TRANSIT_GATEWAY_ROUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["SEND_DIAGNOSTIC_INTERRUPT"] = ( + "SEND_DIAGNOSTIC_INTERRUPT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["START_DECLARATIVE_POLICIES_REPORT"] = ( + "START_DECLARATIVE_POLICIES_REPORT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["START_INSTANCES"] = ("START_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS"] = ( + "START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["START_NETWORK_INSIGHTS_ANALYSIS"] = ( + "START_NETWORK_INSIGHTS_ANALYSIS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION"] = ( + "START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_INSTANCES"] = ("STOP_INSTANCES", (), ("aws.auth#sigv4",)) + +_operation_data["TERMINATE_CLIENT_VPN_CONNECTIONS"] = ( + "TERMINATE_CLIENT_VPN_CONNECTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["TERMINATE_INSTANCES"] = ( + "TERMINATE_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UNASSIGN_IPV6_ADDRESSES"] = ( + "UNASSIGN_IPV6_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UNASSIGN_PRIVATE_IP_ADDRESSES"] = ( + "UNASSIGN_PRIVATE_IP_ADDRESSES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS"] = ( + "UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UNLOCK_SNAPSHOT"] = ("UNLOCK_SNAPSHOT", (), ("aws.auth#sigv4",)) + +_operation_data["UNMONITOR_INSTANCES"] = ( + "UNMONITOR_INSTANCES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS"] = ( + "UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS"] = ( + "UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION"] = ( + "UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS"] = ( + "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS"] = ( + "UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE"] = ( + "VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["WITHDRAW_BYOIP_CIDR"] = ( + "WITHDRAW_BYOIP_CIDR", + (), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.pyi b/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.pyi new file mode 100644 index 00000000..cf68efe9 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/models.pyi @@ -0,0 +1,76615 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AcceleratorCount(_SerdeShape): + """ + The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon + Web Services Inferentia chips) on an instance. + """ + + min: int | None = ... + """ + The minimum number of accelerators. If this parameter is not specified, + there is no minimum limit. + """ + max: int | None = ... + """ + The maximum number of accelerators. If this parameter is not specified, + there is no maximum limit. + """ + +@dataclass(kw_only=True) +class AcceleratorCountRequest(_SerdeShape): + """ + The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon + Web Services Inferentia chips) on an instance. To exclude + accelerator-enabled instance types, set `Max` to `0`. + """ + + min: int | None = ... + """ + The minimum number of accelerators. To specify no minimum limit, omit + this parameter. + """ + max: int | None = ... + """ + The maximum number of accelerators. To specify no maximum limit, omit + this parameter. To exclude accelerator-enabled instance types, set `Max` + to `0`. + """ + +class AcceleratorManufacturer(UnknownEnumMixin, StrEnum): + AMAZON_WEB_SERVICES = "amazon-web-services" + AMD = "amd" + NVIDIA = "nvidia" + XILINX = "xilinx" + HABANA = "habana" + +class AcceleratorName(UnknownEnumMixin, StrEnum): + A100 = "a100" + INFERENTIA = "inferentia" + K520 = "k520" + K80 = "k80" + M60 = "m60" + RADEON_PRO_V520 = "radeon-pro-v520" + T4 = "t4" + VU9_P = "vu9p" + V100 = "v100" + A10_G = "a10g" + H100 = "h100" + T4_G = "t4g" + L40_S = "l40s" + L4 = "l4" + GAUDI_HL_205 = "gaudi-hl-205" + INFERENTIA2 = "inferentia2" + TRAINIUM = "trainium" + TRAINIUM2 = "trainium2" + U30 = "u30" + +@dataclass(kw_only=True) +class AcceleratorTotalMemoryMiB(_SerdeShape): + """The minimum and maximum amount of total accelerator memory, in MiB.""" + + min: int | None = ... + """ + The minimum amount of accelerator memory, in MiB. If this parameter is + not specified, there is no minimum limit. + """ + max: int | None = ... + """ + The maximum amount of accelerator memory, in MiB. If this parameter is + not specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class AcceleratorTotalMemoryMiBRequest(_SerdeShape): + """The minimum and maximum amount of total accelerator memory, in MiB.""" + + min: int | None = ... + """ + The minimum amount of accelerator memory, in MiB. To specify no minimum + limit, omit this parameter. + """ + max: int | None = ... + """ + The maximum amount of accelerator memory, in MiB. To specify no maximum + limit, omit this parameter. + """ + +class AcceleratorType(UnknownEnumMixin, StrEnum): + GPU = "gpu" + FPGA = "fpga" + INFERENCE = "inference" + MEDIA = "media" + +@dataclass(kw_only=True) +class AcceptAddressTransferInput(_SerdeShape): + """Dataclass for AcceptAddressTransferInput structure.""" + + address: str | None = ... + """The Elastic IP address you are accepting for transfer.""" + tag_specifications: list[TagSpecification] | None = ... + """ + `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the + filter name and `TeamA` for the filter value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AcceptAddressTransferOutput(_SerdeShape): + """Dataclass for AcceptAddressTransferOutput structure.""" + + address_transfer: AddressTransfer | None = ... + """An Elastic IP address transfer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptCapacityReservationBillingOwnershipInput(_SerdeShape): + """Dataclass for AcceptCapacityReservationBillingOwnershipInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation for which to accept the request.""" + +@dataclass(kw_only=True) +class AcceptCapacityReservationBillingOwnershipOutput(_SerdeShape): + """Dataclass for AcceptCapacityReservationBillingOwnershipOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptReservedInstancesExchangeQuoteInput(_SerdeShape): + """Contains the parameters for accepting the quote.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + reserved_instance_ids: list[str] | None = ... + """ + The IDs of the Convertible Reserved Instances to exchange for another + Convertible Reserved Instance of the same or higher value. + """ + target_configurations: list[TargetConfigurationRequest] | None = ... + """ + The configuration of the target Convertible Reserved Instance to + exchange for your current Convertible Reserved Instances. + """ + +@dataclass(kw_only=True) +class AcceptReservedInstancesExchangeQuoteOutput(_SerdeShape): + """The result of the exchange and whether it was `successful`.""" + + exchange_id: str | None = ... + """The ID of the successful exchange.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayClientVpnAttachmentInput(_SerdeShape): + """Dataclass for AcceptTransitGatewayClientVpnAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Transit Gateway attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayClientVpnAttachmentOutput(_SerdeShape): + """Dataclass for AcceptTransitGatewayClientVpnAttachmentOutput structure.""" + + transit_gateway_client_vpn_attachment: ( + TransitGatewayClientVpnAttachment | None + ) = ... + """Information about the Transit Gateway Client VPN attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayMulticastDomainAssociationsInput(_SerdeShape): + """ + Dataclass for AcceptTransitGatewayMulticastDomainAssociationsInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets to associate with the transit gateway multicast + domain. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayMulticastDomainAssociationsOutput(_SerdeShape): + """ + Dataclass for AcceptTransitGatewayMulticastDomainAssociationsOutput + structure. + """ + + associations: TransitGatewayMulticastDomainAssociations | None = ... + """Information about the multicast domain associations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayPeeringAttachmentInput(_SerdeShape): + """Dataclass for AcceptTransitGatewayPeeringAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayPeeringAttachmentOutput(_SerdeShape): + """Dataclass for AcceptTransitGatewayPeeringAttachmentOutput structure.""" + + transit_gateway_peering_attachment: TransitGatewayPeeringAttachment | None = ... + """The transit gateway peering attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayVpcAttachmentInput(_SerdeShape): + """Dataclass for AcceptTransitGatewayVpcAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AcceptTransitGatewayVpcAttachmentOutput(_SerdeShape): + """Dataclass for AcceptTransitGatewayVpcAttachmentOutput structure.""" + + transit_gateway_vpc_attachment: TransitGatewayVpcAttachment | None = ... + """The VPC attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptVpcEndpointConnectionsInput(_SerdeShape): + """Dataclass for AcceptVpcEndpointConnectionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the VPC endpoint service.""" + vpc_endpoint_ids: list[str] | None = ... + """The IDs of the interface VPC endpoints.""" + +@dataclass(kw_only=True) +class AcceptVpcEndpointConnectionsOutput(_SerdeShape): + """Dataclass for AcceptVpcEndpointConnectionsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """ + Information about the interface endpoints that were not accepted, if + applicable. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcceptVpcPeeringConnectionInput(_SerdeShape): + """Dataclass for AcceptVpcPeeringConnectionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_peering_connection_id: str | None = ... + """ + The ID of the VPC peering connection. You must specify this parameter in + the request. + """ + +@dataclass(kw_only=True) +class AcceptVpcPeeringConnectionOutput(_SerdeShape): + """Dataclass for AcceptVpcPeeringConnectionOutput structure.""" + + vpc_peering_connection: VpcPeeringConnection | None = ... + """Information about the VPC peering connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AccessScopeAnalysisFinding(_SerdeShape): + """Describes a finding for a Network Access Scope.""" + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + finding_id: str | None = ... + """The ID of the finding.""" + finding_components: list[PathComponent] | None = ... + """The finding components.""" + +@dataclass(kw_only=True) +class AccessScopePath(_SerdeShape): + """Describes a path.""" + + source: PathStatement | None = ... + """The source.""" + destination: PathStatement | None = ... + """The destination.""" + through_resources: list[ThroughResourcesStatement] | None = ... + """The through resources.""" + +@dataclass(kw_only=True) +class AccessScopePathRequest(_SerdeShape): + """Describes a path.""" + + source: PathStatementRequest | None = ... + """The source.""" + destination: PathStatementRequest | None = ... + """The destination.""" + through_resources: list[ThroughResourcesStatementRequest] | None = ... + """The through resources.""" + +@dataclass(kw_only=True) +class AccountAttribute(_SerdeShape): + """Describes an account attribute.""" + + attribute_name: str | None = ... + """The name of the account attribute.""" + attribute_values: list[AccountAttributeValue] | None = ... + """The values for the account attribute.""" + +class AccountAttributeName(UnknownEnumMixin, StrEnum): + SUPPORTED_PLATFORMS = "supported-platforms" + DEFAULT_VPC = "default-vpc" + +@dataclass(kw_only=True) +class AccountAttributeValue(_SerdeShape): + """Describes a value of an account attribute.""" + + attribute_value: str | None = ... + """The value of the attribute.""" + +@dataclass(kw_only=True) +class AccountVpcEncryptionControl(_SerdeShape): + """ + Describes the account-level VPC Encryption Control configuration, + including its mode, state, and exclusions. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + state: str | None = ... + """ + The current state of the account-level VPC Encryption Control + configuration. + """ + mode: str | None = ... + """ + The encryption mode for the account-level VPC Encryption Control + configuration. + """ + exclusions: AccountVpcEncryptionControlExclusions | None = ... + """ + Information about the traffic exclusions for the account-level VPC + Encryption Control configuration. + """ + managed_by: str | None = ... + """ + The entity that manages the account-level VPC Encryption Control + configuration. + """ + last_update_timestamp: datetime | None = ... + """ + The date and time when the account-level VPC Encryption Control + configuration was last updated. + """ + +@dataclass(kw_only=True) +class AccountVpcEncryptionControlExclusions(_SerdeShape): + """ + Describes the exclusion configurations for the various resource types in + the account-level VPC Encryption Control configuration. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + internet_gateway: str | None = ... + """The exclusion configuration for internet gateway resource.""" + egress_only_internet_gateway: str | None = ... + """The exclusion configuration for egress-only internet gateway resource.""" + nat_gateway: str | None = ... + """The exclusion configuration for NAT gateway resource.""" + virtual_private_gateway: str | None = ... + """The exclusion configuration for virtual private gateway resource.""" + vpc_peering: str | None = ... + """The exclusion configuration for VPC peering connection resource.""" + lambda_: str | None = ... + """The exclusion configuration for Lambda service.""" + vpc_lattice: str | None = ... + """The exclusion configuration for VPC Lattice service.""" + elastic_file_system: str | None = ... + """The exclusion configuration for Elastic File System service.""" + +class AccountVpcEncryptionControlMode(UnknownEnumMixin, StrEnum): + UNMANAGED = "unmanaged" + ATTEMPT_MONITOR = "attempt-monitor" + ATTEMPT_ENFORCE = "attempt-enforce" + +class AccountVpcEncryptionControlState(UnknownEnumMixin, StrEnum): + DEFAULT_STATE = "default-state" + TRANSITIONS_IN_PROGRESS = "transitions-in-progress" + TRANSITIONS_PARTIALLY_SUCCESSFUL = "transitions-partially-successful" + TRANSITIONS_SUCCESSFUL = "transitions-successful" + TRANSITIONS_FAILED = "transitions-failed" + +@dataclass(kw_only=True) +class ActiveInstance(_SerdeShape): + """Describes a running instance in a Spot Fleet.""" + + instance_id: str | None = ... + """The ID of the instance.""" + instance_type: str | None = ... + """The instance type.""" + spot_instance_request_id: str | None = ... + """The ID of the Spot Instance request.""" + instance_health: str | None = ... + """ + The health status of the instance. If the status of either the instance + status check or the system status check is `impaired`, the health status + of the instance is `unhealthy`. Otherwise, the health status is + `healthy`. + """ + +@dataclass(kw_only=True) +class ActiveVpnTunnelStatus(_SerdeShape): + """ + Contains information about the current security configuration of an + active VPN tunnel. + """ + + phase1_encryption_algorithm: str | None = ... + """The encryption algorithm negotiated in Phase 1 IKE negotiations.""" + phase2_encryption_algorithm: str | None = ... + """The encryption algorithm negotiated in Phase 2 IKE negotiations.""" + phase1_integrity_algorithm: str | None = ... + """The integrity algorithm negotiated in Phase 1 IKE negotiations.""" + phase2_integrity_algorithm: str | None = ... + """The integrity algorithm negotiated in Phase 2 IKE negotiations.""" + phase1_dh_group: int | None = ... + """The Diffie-Hellman group number being used in Phase 1 IKE negotiations.""" + phase2_dh_group: int | None = ... + """The Diffie-Hellman group number being used in Phase 2 IKE negotiations.""" + ike_version: str | None = ... + """The version of the Internet Key Exchange (IKE) protocol being used.""" + provisioning_status: str | None = ... + """The current provisioning status of the VPN tunnel.""" + provisioning_status_reason: str | None = ... + """The reason for the current provisioning status.""" + +class ActivityStatus(UnknownEnumMixin, StrEnum): + ERROR = "error" + PENDING_FULFILLMENT = "pending_fulfillment" + PENDING_TERMINATION = "pending_termination" + FULFILLED = "fulfilled" + +@dataclass(kw_only=True) +class AddedPrincipal(_SerdeShape): + """Describes a principal.""" + + principal_type: str | None = ... + """The type of principal.""" + principal: str | None = ... + """The Amazon Resource Name (ARN) of the principal.""" + service_permission_id: str | None = ... + """The ID of the service permission.""" + service_id: str | None = ... + """The ID of the service.""" + +@dataclass(kw_only=True) +class AddIpamOperatingRegion(_SerdeShape): + """ + Add an operating Region to an IPAM. Operating Regions are Amazon Web + Services Regions where the IPAM is allowed to manage IP address CIDRs. + IPAM only discovers and monitors resources in the Amazon Web Services + Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + + region_name: str | None = ... + """The name of the operating Region.""" + +@dataclass(kw_only=True) +class AddIpamOrganizationalUnitExclusion(_SerdeShape): + """ + Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is + integrated with Amazon Web Services Organizations and you add an + organizational unit (OU) exclusion, IPAM will not manage the IP + addresses in accounts in that OU exclusion. There is a limit on the + number of exclusions you can create. For more information, see [Quotas + for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + + organizations_entity_path: str | None = ... + """ + An Amazon Web Services Organizations entity path. Build the path for the + OU(s) using Amazon Web Services Organizations IDs separated by a `/`. + Include all child OUs by ending the path with `/*`. + + - Example 1 + + - Path to a child OU: + `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/` + + - In this example, `o-a1b2c3d4e5` is the organization ID, + `r-f6g7h8i9j0example` is the root ID , `ou-ghi0-awsccccc` is an OU + ID, and `ou-jkl0-awsddddd` is a child OU ID. + + - IPAM will not manage the IP addresses in accounts in the child OU. + + - Example 2 + + - Path where all child OUs will be part of the exclusion: + `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/*` + + - In this example, IPAM will not manage the IP addresses in accounts + in the OU (`ou-ghi0-awsccccc`) or in accounts in any OUs that are + children of the OU. + + For more information on how to construct an entity path, see [Understand + the Amazon Web Services Organizations entity + path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) + in the *Amazon Web Services Identity and Access Management User Guide*. + """ + +@dataclass(kw_only=True) +class AdditionalDetail(_SerdeShape): + """ + Describes an additional detail for a path analysis. For more + information, see [Reachability Analyzer additional detail + codes](https://docs.aws.amazon.com/vpc/latest/reachability/additional-detail-codes.html). + """ + + additional_detail_type: str | None = ... + """The additional detail code.""" + component: AnalysisComponent | None = ... + """The path component.""" + vpc_endpoint_service: AnalysisComponent | None = ... + """The VPC endpoint service.""" + rule_options: list[RuleOption] | None = ... + """The rule options.""" + rule_group_type_pairs: list[RuleGroupTypePair] | None = ... + """The rule group type.""" + rule_group_rule_options_pairs: list[RuleGroupRuleOptionsPair] | None = ... + """The rule options.""" + service_name: str | None = ... + """The name of the VPC endpoint service.""" + load_balancers: list[AnalysisComponent] | None = ... + """The load balancers.""" + +@dataclass(kw_only=True) +class AddPrefixListEntry(_SerdeShape): + """An entry for a prefix list.""" + + cidr: str | None = ... + """The CIDR block.""" + description: str | None = ... + """ + A description for the entry. + + Constraints: Up to 255 characters in length. + """ + +@dataclass(kw_only=True) +class Address(_SerdeShape): + """Describes an Elastic IP address, or a carrier IP address.""" + + allocation_id: str | None = ... + """The ID representing the allocation of the address.""" + association_id: str | None = ... + """The ID representing the association of the address with an instance.""" + domain: str | None = ... + """The network (`vpc`).""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + network_interface_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the network + interface. + """ + private_ip_address: str | None = ... + """The private IP address associated with the Elastic IP address.""" + tags: list[Tag] | None = ... + """Any tags assigned to the Elastic IP address.""" + public_ipv4_pool: str | None = ... + """The ID of an address pool.""" + network_border_group: str | None = ... + """ + The name of the unique set of Availability Zones, Local Zones, or + Wavelength Zones from which Amazon Web Services advertises IP addresses. + """ + customer_owned_ip: str | None = ... + """The customer-owned IP address.""" + customer_owned_ipv4_pool: str | None = ... + """The ID of the customer-owned address pool.""" + carrier_ip: str | None = ... + """ + The carrier IP address associated. This option is only available for + network interfaces which reside in a subnet in a Wavelength Zone (for + example an EC2 instance). + """ + subnet_id: str | None = ... + """The ID of the subnet where the IP address is allocated.""" + service_managed: str | None = ... + """ + The service that manages the elastic IP address. + + Note: + The only option supported today is `alb`. + """ + instance_id: str | None = ... + """The ID of the instance that the address is associated with (if any).""" + public_ip: str | None = ... + """The Elastic IP address.""" + +@dataclass(kw_only=True) +class AddressAttribute(_SerdeShape): + """The attributes associated with an Elastic IP address.""" + + public_ip: str | None = ... + """The public IP address.""" + allocation_id: str | None = ... + """[EC2-VPC] The allocation ID.""" + ptr_record: str | None = ... + """The pointer (PTR) record for the IP address.""" + ptr_record_update: PtrUpdateStatus | None = ... + """The updated PTR record for the IP address.""" + +class AddressAttributeName(UnknownEnumMixin, StrEnum): + DOMAIN_NAME = "domain-name" + +class AddressFamily(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + +@dataclass(kw_only=True) +class AddressTransfer(_SerdeShape): + """ + Details on the Elastic IP address transfer. For more information, see + [Transfer Elastic IP + addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) + in the *Amazon VPC User Guide*. + """ + + public_ip: str | None = ... + """The Elastic IP address being transferred.""" + allocation_id: str | None = ... + """The allocation ID of an Elastic IP address.""" + transfer_account_id: str | None = ... + """ + The ID of the account that you want to transfer the Elastic IP address + to. + """ + transfer_offer_expiration_timestamp: datetime | None = ... + """ + The timestamp when the Elastic IP address transfer expired. When the + source account starts the transfer, the transfer account has seven hours + to allocate the Elastic IP address to complete the transfer, or the + Elastic IP address will return to its original owner. + """ + transfer_offer_accepted_timestamp: datetime | None = ... + """The timestamp when the Elastic IP address transfer was accepted.""" + address_transfer_status: str | None = ... + """The Elastic IP address transfer status.""" + +class AddressTransferStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + DISABLED = "disabled" + ACCEPTED = "accepted" + +@dataclass(kw_only=True) +class AdvertiseByoipCidrInput(_SerdeShape): + """Dataclass for AdvertiseByoipCidrInput structure.""" + + cidr: str | None = ... + """ + The address range, in CIDR notation. This must be the exact range that + you provisioned. You can't advertise only a portion of the provisioned + range. + """ + asn: str | None = ... + """The public 2-byte or 4-byte ASN that you want to advertise.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_border_group: str | None = ... + """ + If you have [Local + Zones](https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html) + enabled, you can choose a network border group for Local Zones when you + provision and advertise a BYOIPv4 CIDR. Choose the network border group + carefully as the EIP and the Amazon Web Services resource it is + associated with must reside in the same network border group. + + You can provision BYOIP address ranges to and advertise them in the + following Local Zone network border groups: + + - us-east-1-dfw-2 + + - us-west-2-lax-1 + + - us-west-2-phx-2 + + Note: + You cannot provision or advertise BYOIPv6 address ranges in Local Zones + at this time. + """ + +@dataclass(kw_only=True) +class AdvertiseByoipCidrOutput(_SerdeShape): + """Dataclass for AdvertiseByoipCidrOutput structure.""" + + byoip_cidr: ByoipCidr | None = ... + """Information about the address range.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class Affinity(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + HOST = "host" + +class AggregationStatusEnum(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + EXCLUDED = "excluded" + +@dataclass(kw_only=True) +class AllocateAddressInput(_SerdeShape): + """Dataclass for AllocateAddressInput structure.""" + + domain: str | None = ... + """The network (`vpc`).""" + address: str | None = ... + """ + The Elastic IP address to recover or an IPv4 address from an address + pool. + """ + public_ipv4_pool: str | None = ... + """ + The ID of an address pool that you own. Use this parameter to let Amazon + EC2 select an address from the address pool. To specify a specific + address from the address pool, use the `Address` parameter instead. + """ + network_border_group: str | None = ... + """ + A unique set of Availability Zones, Local Zones, or Wavelength Zones + from which Amazon Web Services advertises IP addresses. Use this + parameter to limit the IP address to this location. IP addresses cannot + move between network border groups. + """ + customer_owned_ipv4_pool: str | None = ... + """ + The ID of a customer-owned address pool. Use this parameter to let + Amazon EC2 select an address from the address pool. Alternatively, + specify a specific address from the address pool. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Elastic IP address.""" + ipam_pool_id: str | None = ... + """ + The ID of an IPAM pool which has an Amazon-provided or BYOIP public IPv4 + CIDR provisioned to it. For more information, see [Allocate sequential + Elastic IP addresses from an IPAM + pool](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-eip-pool.html) + in the *Amazon VPC IPAM User Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AllocateAddressOutput(_SerdeShape): + """Dataclass for AllocateAddressOutput structure.""" + + allocation_id: str | None = ... + """The ID that represents the allocation of the Elastic IP address.""" + public_ipv4_pool: str | None = ... + """The ID of an address pool that you own.""" + network_border_group: str | None = ... + """ + The set of Availability Zones, Local Zones, or Wavelength Zones from + which Amazon Web Services advertises IP addresses. + """ + domain: str | None = ... + """The network (`vpc`).""" + customer_owned_ip: str | None = ... + """The customer-owned IP address.""" + customer_owned_ipv4_pool: str | None = ... + """The ID of the customer-owned address pool.""" + carrier_ip: str | None = ... + """ + The carrier IP address. Available only for network interfaces that + reside in a subnet in a Wavelength Zone. + """ + public_ip: str | None = ... + """ + The Amazon-owned IP address. Not available when using an address pool + that you own. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AllocateHostsInput(_SerdeShape): + """Dataclass for AllocateHostsInput structure.""" + + instance_family: str | None = ... + """ + Specifies the instance family to be supported by the Dedicated Hosts. If + you specify an instance family, the Dedicated Hosts support multiple + instance types within that instance family. + + If you want the Dedicated Hosts to support a specific instance type + only, omit this parameter and specify **InstanceType** instead. You + cannot specify **InstanceFamily** and **InstanceType** in the same + request. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Dedicated Host during creation.""" + host_recovery: str | None = ... + """ + Indicates whether to enable or disable host recovery for the Dedicated + Host. Host recovery is disabled by default. For more information, see + [Host + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) + in the *Amazon EC2 User Guide*. + + Default: `off` + """ + outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on + which to allocate the Dedicated Host. If you specify **OutpostArn**, you + can optionally specify **AssetIds**. + + If you are allocating the Dedicated Host in a Region, omit this + parameter. + """ + host_maintenance: str | None = ... + """ + Indicates whether to enable or disable host maintenance for the + Dedicated Host. For more information, see [Host + maintenance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-maintenance.html) + in the *Amazon EC2 User Guide*. + """ + asset_ids: list[str] | None = ... + """ + The IDs of the Outpost hardware assets on which to allocate the + Dedicated Hosts. Targeting specific hardware assets on an Outpost can + help to minimize latency between your workloads. This parameter is + supported only if you specify **OutpostArn**. If you are allocating the + Dedicated Hosts in a Region, omit this parameter. + + - If you specify this parameter, you can omit **Quantity**. In this + case, Amazon EC2 allocates a Dedicated Host on each specified hardware + asset. + + - If you specify both **AssetIds** and **Quantity**, then the value for + **Quantity** must be equal to the number of asset IDs specified. + """ + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + cpu_options: HostCpuOptionsRequest | None = ... + """The CPU configuration options to apply to the Dedicated Host.""" + auto_placement: str | None = ... + """ + Indicates whether the host accepts any untargeted instance launches that + match its instance type configuration, or if it only accepts Host + tenancy instance launches that specify its unique host ID. For more + information, see [Understanding auto-placement and + affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) + in the *Amazon EC2 User Guide*. + + Default: `off` + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + instance_type: str | None = ... + """ + Specifies the instance type to be supported by the Dedicated Hosts. If + you specify an instance type, the Dedicated Hosts support instances of + the specified instance type only. + + If you want the Dedicated Hosts to support multiple instance types in a + specific instance family, omit this parameter and specify + **InstanceFamily** instead. You cannot specify **InstanceType** and + **InstanceFamily** in the same request. + """ + quantity: int | None = ... + """ + The number of Dedicated Hosts to allocate to your account with these + parameters. If you are allocating the Dedicated Hosts on an Outpost, and + you specify **AssetIds**, you can omit this parameter. In this case, + Amazon EC2 allocates a Dedicated Host on each specified hardware asset. + If you specify both **AssetIds** and **Quantity**, then the value that + you specify for **Quantity** must be equal to the number of asset IDs + specified. + """ + availability_zone: str | None = ... + """The Availability Zone in which to allocate the Dedicated Host.""" + +@dataclass(kw_only=True) +class AllocateHostsOutput(_SerdeShape): + """Contains the output of AllocateHosts.""" + + host_ids: list[str] | None = ... + """ + The ID of the allocated Dedicated Host. This is used to launch an + instance onto a specific host. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AllocateIpamPoolCidrInput(_SerdeShape): + """Dataclass for AllocateIpamPoolCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool from which you would like to allocate a CIDR.""" + cidr: str | None = ... + """ + The CIDR you would like to allocate from the IPAM pool. Note the + following: + + - If there is no DefaultNetmaskLength allocation rule set on the pool, + you must specify either the NetmaskLength or the CIDR. + + - If the DefaultNetmaskLength allocation rule is set on the pool, you + can specify either the NetmaskLength or the CIDR and the + DefaultNetmaskLength allocation rule will be ignored. + + Possible values: Any available IPv4 or IPv6 CIDR. + """ + netmask_length: int | None = ... + """ + The netmask length of the CIDR you would like to allocate from the IPAM + pool. Note the following: + + - If there is no DefaultNetmaskLength allocation rule set on the pool, + you must specify either the NetmaskLength or the CIDR. + + - If the DefaultNetmaskLength allocation rule is set on the pool, you + can specify either the NetmaskLength or the CIDR and the + DefaultNetmaskLength allocation rule will be ignored. + + Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask + lengths for IPv6 addresses are 0 - 128. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + description: str | None = ... + """A description for the allocation.""" + preview_next_cidr: bool | None = ... + """A preview of the next available CIDR in a pool.""" + allowed_cidrs: list[str] | None = ... + """ + Include a particular CIDR range that can be returned by the pool. + Allowed CIDRs are only allowed if using netmask length for allocation. + """ + disallowed_cidrs: list[str] | None = ... + """ + Exclude a particular CIDR range from being returned by the pool. + Disallowed CIDRs are only allowed if using netmask length for + allocation. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + + If you specify tags, the request is authorized against the allocation + resource in addition to the pool resource. + """ + +@dataclass(kw_only=True) +class AllocateIpamPoolCidrOutput(_SerdeShape): + """Dataclass for AllocateIpamPoolCidrOutput structure.""" + + ipam_pool_allocation: IpamPoolAllocation | None = ... + """Information about the allocation created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AllocationState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + UNDER_ASSESSMENT = "under-assessment" + PERMANENT_FAILURE = "permanent-failure" + RELEASED = "released" + RELEASED_PERMANENT_FAILURE = "released-permanent-failure" + PENDING = "pending" + CONFIGURING = "configuring" + +class AllocationStrategy(UnknownEnumMixin, StrEnum): + LOWEST_PRICE = "lowestPrice" + DIVERSIFIED = "diversified" + CAPACITY_OPTIMIZED = "capacityOptimized" + CAPACITY_OPTIMIZED_PRIORITIZED = "capacityOptimizedPrioritized" + PRICE_CAPACITY_OPTIMIZED = "priceCapacityOptimized" + +class AllocationType(UnknownEnumMixin, StrEnum): + USED = "used" + FUTURE = "future" + CANCELLING = "cancelling" + +class AllowedImagesSettingsDisabledState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + +class AllowedImagesSettingsEnabledState(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + AUDIT_MODE = "audit-mode" + +@dataclass(kw_only=True) +class AllowedPrincipal(_SerdeShape): + """Describes a principal.""" + + principal_type: str | None = ... + """The type of principal.""" + principal: str | None = ... + """The Amazon Resource Name (ARN) of the principal.""" + service_permission_id: str | None = ... + """The ID of the service permission.""" + tags: list[Tag] | None = ... + """The tags.""" + service_id: str | None = ... + """The ID of the service.""" + +class AllowsMultipleInstanceTypes(UnknownEnumMixin, StrEnum): + ON = "on" + OFF = "off" + +@dataclass(kw_only=True) +class AlternatePathHint(_SerdeShape): + """Describes an potential intermediate component of a feasible path.""" + + component_id: str | None = ... + """The ID of the component.""" + component_arn: str | None = ... + """The Amazon Resource Name (ARN) of the component.""" + +class AmdSevSnp(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +class AmdSevSnpSpecification(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class AnalysisAclRule(_SerdeShape): + """Describes a network access control (ACL) rule.""" + + cidr: str | None = ... + """The IPv4 address range, in CIDR notation.""" + egress: bool | None = ... + """Indicates whether the rule is an outbound rule.""" + port_range: PortRange | None = ... + """The range of ports.""" + protocol: str | None = ... + """The protocol.""" + rule_action: str | None = ... + """Indicates whether to allow or deny traffic that matches the rule.""" + rule_number: int | None = ... + """The rule number.""" + +@dataclass(kw_only=True) +class AnalysisComponent(_SerdeShape): + """Describes a path component.""" + + id: str | None = ... + """The ID of the component.""" + arn: str | None = ... + """The Amazon Resource Name (ARN) of the component.""" + name: str | None = ... + """The name of the analysis component.""" + +@dataclass(kw_only=True) +class AnalysisLoadBalancerListener(_SerdeShape): + """Describes a load balancer listener.""" + + load_balancer_port: int | None = ... + """The port on which the load balancer is listening.""" + instance_port: int | None = ... + """[Classic Load Balancers] The back-end port for the listener.""" + +@dataclass(kw_only=True) +class AnalysisLoadBalancerTarget(_SerdeShape): + """Describes a load balancer target.""" + + address: str | None = ... + """The IP address.""" + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + instance: AnalysisComponent | None = ... + """Information about the instance.""" + port: int | None = ... + """The port on which the target is listening.""" + +@dataclass(kw_only=True) +class AnalysisPacketHeader(_SerdeShape): + """ + Describes a header. Reflects any changes made by a component as traffic + passes through. The fields of an inbound header are null except for the + first component of a path. + """ + + destination_addresses: list[str] | None = ... + """The destination addresses.""" + destination_port_ranges: list[PortRange] | None = ... + """The destination port ranges.""" + protocol: str | None = ... + """The protocol.""" + source_addresses: list[str] | None = ... + """The source addresses.""" + source_port_ranges: list[PortRange] | None = ... + """The source port ranges.""" + +@dataclass(kw_only=True) +class AnalysisRouteTableRoute(_SerdeShape): + """Describes a route table route.""" + + destination_cidr: str | None = ... + """The destination IPv4 address, in CIDR notation.""" + destination_prefix_list_id: str | None = ... + """The prefix of the Amazon Web Services service.""" + egress_only_internet_gateway_id: str | None = ... + """The ID of an egress-only internet gateway.""" + gateway_id: str | None = ... + """ + The ID of the gateway, such as an internet gateway or virtual private + gateway. + """ + instance_id: str | None = ... + """The ID of the instance, such as a NAT instance.""" + nat_gateway_id: str | None = ... + """The ID of a NAT gateway.""" + network_interface_id: str | None = ... + """The ID of a network interface.""" + origin: str | None = ... + """ + Describes how the route was created. The following are the possible + values: + + - CreateRouteTable - The route was automatically created when the route + table was created. + + - CreateRoute - The route was manually added to the route table. + + - EnableVgwRoutePropagation - The route was propagated by route + propagation. + """ + transit_gateway_id: str | None = ... + """The ID of a transit gateway.""" + vpc_peering_connection_id: str | None = ... + """The ID of a VPC peering connection.""" + state: str | None = ... + """ + The state. The following are the possible values: + + - active + + - blackhole + """ + carrier_gateway_id: str | None = ... + """The ID of a carrier gateway.""" + core_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of a core network.""" + local_gateway_id: str | None = ... + """The ID of a local gateway.""" + +@dataclass(kw_only=True) +class AnalysisSecurityGroupRule(_SerdeShape): + """Describes a security group rule.""" + + cidr: str | None = ... + """The IPv4 address range, in CIDR notation.""" + direction: str | None = ... + """ + The direction. The following are the possible values: + + - egress + + - ingress + """ + security_group_id: str | None = ... + """The security group ID.""" + port_range: PortRange | None = ... + """The port range.""" + prefix_list_id: str | None = ... + """The prefix list ID.""" + protocol: str | None = ... + """The protocol name.""" + +class AnalysisStatus(UnknownEnumMixin, StrEnum): + RUNNING = "running" + SUCCEEDED = "succeeded" + FAILED = "failed" + +@dataclass(kw_only=True) +class AnalysisTransitGatewayPolicyTableEntry(_SerdeShape): + """Describes an entry in a transit gateway policy table.""" + + rule_number: int | None = ... + """ + The rule number for the policy table entry. Entries are evaluated in + ascending order of rule number. + """ + protocol: str | None = ... + """ + The protocol number. A value of `-1` means that the entry matches all + protocols. + """ + source_cidr: str | None = ... + """ + The source CIDR block. If this value is not present, the entry matches + any source address. + """ + destination_cidr: str | None = ... + """ + The destination CIDR block. If this value is not present, the entry + matches any destination address. + """ + source_port_range: PortRange | None = ... + """ + The source port range. If this value is not present, the entry matches + any source port. + """ + destination_port_range: PortRange | None = ... + """ + The destination port range. If this value is not present, the entry + matches any destination port. + """ + target_route_table_id: str | None = ... + """ + The ID of the transit gateway route table to which the entry routes + matching traffic. + """ + +class ApplianceModeSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class ApplicationStatus(_SerdeShape): + """Describes the application-level health status for an instance.""" + + status: str | None = ... + """ + The current instance-level application status. This status is derived + from application status checks with `Aggregation` set to `included`. + Possible values: + + - `ok` -- All included checks passed. + + - `impaired` -- At least one included check failed. + + - `initializing` -- At least one included check is initializing, and no + included check is impaired. + + - `insufficient-data` -- At least one included check has insufficient + data, and no included check is impaired or initializing. + + - `not-applicable` -- No checks with `Aggregation` set to `included` + apply to the instance. + + - `suppressed` -- Application status reporting is suppressed for the + instance. + + Checks with `Aggregation` set to `excluded` do not affect this value. + """ + status_time_stamp: datetime | None = ... + """The date and time of the last status update.""" + status_since: datetime | None = ... + """The date and time when the current status started.""" + resume_at: datetime | None = ... + """ + The date and time when application status reporting resumes after + suppression. + """ + details: list[ApplicationStatusDetail] | None = ... + """Details about the application status checks for the instance.""" + +@dataclass(kw_only=True) +class ApplicationStatusCheckAssociationObject(_SerdeShape): + """ + Information about an application status check association. Each item in + the `associationSet` of a `DescribeApplicationStatusCheckAssociations` + response is of this type. + """ + + application_status_check_id: str | None = ... + """The ID of the application status check.""" + association_type: str | None = ... + """ + The type of target that the application status check is associated with. + Possible values: + + - `tag` -- The check applies to current and future instances with a + matching tag key-value pair. + + - `instance-id` -- The check applies to a specific instance. + """ + key: str | None = ... + """ + The key for the association. This value is present only for tag-based + associations, where it contains the tag key. For instance-based + associations, this value is absent. + """ + value: str | None = ... + """ + The value for the association target. For tag-based associations, this + is the tag value. For instance-based associations, this is the instance + ID (for example, `i-0123456789abcdef0`). + """ + +class ApplicationStatusCheckEnum(UnknownEnumMixin, StrEnum): + PASSED = "passed" + FAILED = "failed" + INITIALIZING = "initializing" + INSUFFICIENT_DATA = "insufficient-data" + NOT_APPLICABLE = "not-applicable" + +@dataclass(kw_only=True) +class ApplicationStatusCheckResponseObject(_SerdeShape): + """Describes an application status check.""" + + application_status_check_id: str | None = ... + """The ID of the application status check.""" + aggregation: str | None = ... + """ + The aggregation setting for the application status check. When set to + `included`, the result of this check contributes to the instance-level + application status. When set to `excluded`, the check runs independently + and does not affect the instance-level status. + """ + health_check_paths: list[HealthCheckPathResponseObject] | None = ... + """The health check paths for the application status check.""" + protocol: str | None = ... + """The protocol used for the health check.""" + port: int | None = ... + """The port used for the health check.""" + path: str | None = ... + """The URL path used for the health check HTTP request.""" + device_index: int | None = ... + """ + The index of the network device used for the health check. The value is + greater than or equal to 0. + """ + ip_version: str | None = ... + """The IP version used for the health check.""" + ip_scope: str | None = ... + """The IP scope used for the health check.""" + interval: int | None = ... + """The interval, in seconds, between health checks. Valid value: 60.""" + timeout: int | None = ... + """ + The amount of time, in seconds, to wait for a health check response. + Valid values: 1 to 30. + """ + failure_threshold: int | None = ... + """ + The number of consecutive failed health checks before the application + status is considered impaired. The value must be greater than 0. + """ + success_threshold: int | None = ... + """ + The number of consecutive successful health checks before the + application status is considered healthy. The value must be greater than + 0. + """ + status_code_matcher: str | None = ... + """ + The comma-separated list of individual HTTP status codes or ranges that + indicate a successful health check response. + """ + initialization_grace_period_seconds: int | None = ... + """ + The number of seconds to wait before starting health checks after an + instance is launched. Valid values: 1 to 600. + """ + last_updated_at: datetime | None = ... + """The date and time when the application status check was last updated.""" + target_tag_associations: list[CustomTagKeyValueResponsePair] | None = ... + """ + The + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + associated with the application status check. Instances with these tags + are automatically monitored by this check. + """ + tags: list[Tag] | None = ... + """The tags assigned to the application status check.""" + creation_time: datetime | None = ... + """The date and time when the application status check was created.""" + modify_time: datetime | None = ... + """The date and time when the application status check was last modified.""" + deletion_time: datetime | None = ... + """The date and time when the application status check was deleted.""" + +@dataclass(kw_only=True) +class ApplicationStatusDetail(_SerdeShape): + """Describes the details of an application status check for an instance.""" + + application_status_check_id: str | None = ... + """The ID of the application status check.""" + check_update_time: datetime | None = ... + """The date and time when the check was last updated.""" + aggregation: str | None = ... + """ + The aggregation setting for the application status check. When set to + `included`, the result of this check contributes to the instance-level + application status. When set to `excluded`, the check runs independently + and does not affect the instance-level status. + """ + status: str | None = ... + """ + The status of the individual application status check. Possible values: + + - `passed` -- The check reached its success threshold. + + - `failed` -- The check reached its failure threshold. + + - `initializing` -- The check is initializing or has not reached a + success or failure threshold. + + - `insufficient-data` -- The check does not have enough data to + determine a result. + + - `not-applicable` -- The check does not apply to the instance. + + This value reflects the check result and is not affected by aggregation + or suppression. + """ + status_time_stamp: datetime | None = ... + """The date and time of the last status update for this check.""" + status_since: datetime | None = ... + """The date and time when the current status started for this check.""" + reason: ApplicationStatusReason | None = ... + """The reason for the current status.""" + +class ApplicationStatusEnum(UnknownEnumMixin, StrEnum): + OK = "ok" + IMPAIRED = "impaired" + INITIALIZING = "initializing" + INSUFFICIENT_DATA = "insufficient-data" + NOT_APPLICABLE = "not-applicable" + SUPPRESSED = "suppressed" + +@dataclass(kw_only=True) +class ApplicationStatusesResponseType(_SerdeShape): + """Describes the application statuses for instances.""" + + instances: list[InstanceApplicationStatus] | None = ... + """The application status information for the instances.""" + +@dataclass(kw_only=True) +class ApplicationStatusReason(_SerdeShape): + """Describes the reason for an application status check result.""" + + code: str | None = ... + """ + The reason code for the application status check result. Possible + values: + + - `ResponseCodeMatched` -- The HTTP status code returned by the health + check matched the configured `StatusCodeMatcher`. + + - `ResponseCodeMismatch` -- The HTTP status code returned by the health + check did not match the configured `StatusCodeMatcher`. + + - `ConnectionTimeout` -- The connection to the target timed out. + + - `ResponseTimeout` -- The health check timed out while waiting for a + response from the target. + + - `ConnectionRefused` -- The target refused the health check connection. + + - `ConnectionReset` -- The target reset the health check connection + before returning a response. + + Current health check results use the values in the preceding list. + Legacy results that do not contain structured reason metadata can + instead contain a producer error type, such as `Http Status Code` or + `HttpConnectTimeoutException`. + + For `ResponseCodeMatched` and `ResponseCodeMismatch`, the `statusCode` + field contains the returned HTTP status code. The `protocol` field + contains the protocol used for the health check. + """ + status_code: int | None = ... + """The HTTP status code returned by the health check.""" + protocol: str | None = ... + """ + The protocol used for the health check. Possible values: `HTTP` and + `HTTPS`. + """ + +@dataclass(kw_only=True) +class ApplicationStatusSummary(_SerdeShape): + """ + Provides a summary of the application-level health status for an + instance. + """ + + status: str | None = ... + """The current status.""" + impaired_since: datetime | None = ... + """The date and time when the application status became impaired.""" + +class ApplyCancellationCharges(UnknownEnumMixin, StrEnum): + COMMITMENT_WIND_DOWN = "commitment-wind-down" + +@dataclass(kw_only=True) +class ApplySecurityGroupsToClientVpnTargetNetworkInput(_SerdeShape): + """ + Dataclass for ApplySecurityGroupsToClientVpnTargetNetworkInput + structure. + """ + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + vpc_id: str | None = ... + """The ID of the VPC in which the associated target network is located.""" + security_group_ids: list[str] | None = ... + """ + The IDs of the security groups to apply to the associated target + network. Up to 5 security groups can be applied to an associated target + network. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ApplySecurityGroupsToClientVpnTargetNetworkOutput(_SerdeShape): + """ + Dataclass for ApplySecurityGroupsToClientVpnTargetNetworkOutput + structure. + """ + + security_group_ids: list[str] | None = ... + """The IDs of the applied security groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ArchitectureType(UnknownEnumMixin, StrEnum): + I386 = "i386" + X86_64 = "x86_64" + ARM64 = "arm64" + X86_64_MAC = "x86_64_mac" + ARM64_MAC = "arm64_mac" + +class ArchitectureValues(UnknownEnumMixin, StrEnum): + I386 = "i386" + X86_64 = "x86_64" + ARM64 = "arm64" + X86_64_MAC = "x86_64_mac" + ARM64_MAC = "arm64_mac" + +@dataclass(kw_only=True) +class AsnAssociation(_SerdeShape): + """An Autonomous System Number (ASN) and BYOIP CIDR association.""" + + asn: str | None = ... + """The association's ASN.""" + cidr: str | None = ... + """The association's CIDR.""" + status_message: str | None = ... + """The association's status message.""" + state: str | None = ... + """The association's state.""" + +class AsnAssociationState(UnknownEnumMixin, StrEnum): + DISASSOCIATED = "disassociated" + FAILED_DISASSOCIATION = "failed-disassociation" + FAILED_ASSOCIATION = "failed-association" + PENDING_DISASSOCIATION = "pending-disassociation" + PENDING_ASSOCIATION = "pending-association" + ASSOCIATED = "associated" + +@dataclass(kw_only=True) +class AsnAuthorizationContext(_SerdeShape): + """ + Provides authorization for Amazon to bring an Autonomous System Number + (ASN) to a specific Amazon Web Services account using bring your own ASN + (BYOASN). For details on the format of the message and signature, see + [Tutorial: Bring your ASN to + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html) + in the *Amazon VPC IPAM guide*. + """ + + message: str | None = ... + """The authorization context's message.""" + signature: str | None = ... + """The authorization context's signature.""" + +class AsnState(UnknownEnumMixin, StrEnum): + DEPROVISIONED = "deprovisioned" + FAILED_DEPROVISION = "failed-deprovision" + FAILED_PROVISION = "failed-provision" + PENDING_DEPROVISION = "pending-deprovision" + PENDING_PROVISION = "pending-provision" + PROVISIONED = "provisioned" + +@dataclass(kw_only=True) +class AssignedPrivateIpAddress(_SerdeShape): + """Describes the private IP addresses assigned to a network interface.""" + + private_ip_address: str | None = ... + """The private IP address assigned to the network interface.""" + +@dataclass(kw_only=True) +class AssignIpv6AddressesInput(_SerdeShape): + """Dataclass for AssignIpv6AddressesInput structure.""" + + ipv6_prefix_count: int | None = ... + """ + The number of IPv6 prefixes that Amazon Web Services automatically + assigns to the network interface. You cannot use this option if you use + the `Ipv6Prefixes` option. + """ + ipv6_prefixes: list[str] | None = ... + """ + One or more IPv6 prefixes assigned to the network interface. You can't + use this option if you use the `Ipv6PrefixCount` option. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + ipv6_addresses: list[str] | None = ... + """ + The IPv6 addresses to be assigned to the network interface. You can't + use this option if you're specifying a number of IPv6 addresses. + """ + ipv6_address_count: int | None = ... + """ + The number of additional IPv6 addresses to assign to the network + interface. The specified number of IPv6 addresses are assigned in + addition to the existing IPv6 addresses that are already assigned to the + network interface. Amazon EC2 automatically selects the IPv6 addresses + from the subnet range. You can't use this option if specifying specific + IPv6 addresses. + """ + +@dataclass(kw_only=True) +class AssignIpv6AddressesOutput(_SerdeShape): + """Dataclass for AssignIpv6AddressesOutput structure.""" + + assigned_ipv6_addresses: list[str] | None = ... + """ + The new IPv6 addresses assigned to the network interface. Existing IPv6 + addresses that were assigned to the network interface before the request + are not included. + """ + assigned_ipv6_prefixes: list[str] | None = ... + """The IPv6 prefixes that are assigned to the network interface.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssignPrivateIpAddressesInput(_SerdeShape): + """Contains the parameters for AssignPrivateIpAddresses.""" + + ipv4_prefixes: list[str] | None = ... + """ + One or more IPv4 prefixes assigned to the network interface. You can't + use this option if you use the `Ipv4PrefixCount` option. + """ + ipv4_prefix_count: int | None = ... + """ + The number of IPv4 prefixes that Amazon Web Services automatically + assigns to the network interface. You can't use this option if you use + the `Ipv4 Prefixes` option. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + private_ip_addresses: list[str] | None = ... + """ + The IP addresses to be assigned as a secondary private IP address to the + network interface. You can't specify this parameter when also + specifying a number of secondary IP addresses. + + If you don't specify an IP address, Amazon EC2 automatically selects an + IP address within the subnet range. + """ + secondary_private_ip_address_count: int | None = ... + """ + The number of secondary IP addresses to assign to the network interface. + You can't specify this parameter when also specifying private IP + addresses. + """ + allow_reassignment: bool | None = ... + """ + Indicates whether to allow an IP address that is already assigned to + another network interface or instance to be reassigned to the specified + network interface. + """ + +@dataclass(kw_only=True) +class AssignPrivateIpAddressesOutput(_SerdeShape): + """Dataclass for AssignPrivateIpAddressesOutput structure.""" + + network_interface_id: str | None = ... + """The ID of the network interface.""" + assigned_private_ip_addresses: list[AssignedPrivateIpAddress] | None = ... + """The private IP addresses assigned to the network interface.""" + assigned_ipv4_prefixes: list[Ipv4PrefixSpecification] | None = ... + """The IPv4 prefixes that are assigned to the network interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssignPrivateNatGatewayAddressInput(_SerdeShape): + """Dataclass for AssignPrivateNatGatewayAddressInput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + private_ip_addresses: list[str] | None = ... + """ + The private IPv4 addresses you want to assign to the private NAT + gateway. + """ + private_ip_address_count: int | None = ... + """ + The number of private IP addresses to assign to the NAT gateway. You + can't specify this parameter when also specifying private IP addresses. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssignPrivateNatGatewayAddressOutput(_SerdeShape): + """Dataclass for AssignPrivateNatGatewayAddressOutput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + nat_gateway_addresses: list[NatGatewayAddress] | None = ... + """NAT gateway IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateAddressInput(_SerdeShape): + """Dataclass for AssociateAddressInput structure.""" + + allocation_id: str | None = ... + """The allocation ID. This is required.""" + instance_id: str | None = ... + """ + The ID of the instance. The instance must have exactly one attached + network interface. You can specify either the instance ID or the network + interface ID, but not both. + """ + public_ip: str | None = ... + """Deprecated.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """ + The ID of the network interface. If the instance has more than one + network interface, you must specify a network interface ID. + + You can specify either the instance ID or the network interface ID, but + not both. + """ + private_ip_address: str | None = ... + """ + The primary or secondary private IP address to associate with the + Elastic IP address. If no private IP address is specified, the Elastic + IP address is associated with the primary private IP address. + """ + allow_reassociation: bool | None = ... + """ + Reassociation is automatic, but you can specify false to ensure the + operation fails if the Elastic IP address is already associated with + another resource. + """ + +@dataclass(kw_only=True) +class AssociateAddressOutput(_SerdeShape): + """Dataclass for AssociateAddressOutput structure.""" + + association_id: str | None = ... + """ + The ID that represents the association of the Elastic IP address with an + instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateApplicationStatusCheckInput(_SerdeShape): + """Dataclass for AssociateApplicationStatusCheckInput structure.""" + + application_status_check_id: str | None = ... + """The ID of the application status check to associate.""" + target_tag_associations: list[CustomTagKeyValueRequestPair] | None = ... + """ + The + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + to associate the application status check with. Each tag is a key-value + pair. When you associate tags, the application status check + automatically monitors all instances that have the specified tags. + """ + instance_ids: list[str] | None = ... + """The IDs of the instances to associate with the application status check.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateApplicationStatusCheckOutput(_SerdeShape): + """Dataclass for AssociateApplicationStatusCheckOutput structure.""" + + successful_results: list[SuccessfulAssociationResponseObject] | None = ... + """The associations that were successfully created.""" + unsuccessful_results: list[UnsuccessfulAssociationResponseObject] | None = ... + """The associations that failed to be created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateCapacityReservationBillingOwnerInput(_SerdeShape): + """Dataclass for AssociateCapacityReservationBillingOwnerInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + unused_reservation_billing_owner_id: str | None = ... + """The ID of the consumer account to which to assign billing.""" + +@dataclass(kw_only=True) +class AssociateCapacityReservationBillingOwnerOutput(_SerdeShape): + """Dataclass for AssociateCapacityReservationBillingOwnerOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateClientVpnTargetNetworkInput(_SerdeShape): + """Dataclass for AssociateClientVpnTargetNetworkInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + subnet_id: str | None = ... + """ + The ID of the subnet to associate with the Client VPN endpoint. Required + for VPC-based endpoints. For Transit Gateway-based endpoints, use + `AvailabilityZone` or `AvailabilityZoneId` instead. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + availability_zone: str | None = ... + """ + The Availability Zone name for the Transit Gateway association. Required + if when associating an Availability Zone with a Client VPN endpoint that + uses a Transit Gateway. You cannot specify both `SubnetId` and + `AvailabilityZone`. + """ + availability_zone_id: str | None = ... + """ + The Availability Zone ID for the Transit Gateway association. Required + if when associating an Availability Zone with a Client VPN endpoint that + uses a Transit Gateway. You cannot specify both `AvailabilityZone` and + `AvailabilityZoneId`. + """ + +@dataclass(kw_only=True) +class AssociateClientVpnTargetNetworkOutput(_SerdeShape): + """Dataclass for AssociateClientVpnTargetNetworkOutput structure.""" + + association_id: str | None = ... + """The unique ID of the target network association.""" + status: AssociationStatus | None = ... + """The current state of the target network association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateDhcpOptionsInput(_SerdeShape): + """Dataclass for AssociateDhcpOptionsInput structure.""" + + dhcp_options_id: str | None = ... + """ + The ID of the DHCP options set, or `default` to associate no DHCP + options with the VPC. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateDhcpOptionsOutput(_SerdeShape): + """Dataclass for AssociateDhcpOptionsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AssociatedNetworkType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + +@dataclass(kw_only=True) +class AssociatedRole(_SerdeShape): + """Information about the associated IAM roles.""" + + associated_role_arn: str | None = ... + """The ARN of the associated IAM role.""" + certificate_s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket in which the Amazon S3 object is + stored. + """ + certificate_s3_object_key: str | None = ... + """ + The key of the Amazon S3 object where the certificate, certificate + chain, and encrypted private key bundle are stored. The object key is + formatted as follows: `role_arn`/`certificate_arn`. + """ + encryption_kms_key_id: str | None = ... + """The ID of the KMS key used to encrypt the private key.""" + +@dataclass(kw_only=True) +class AssociatedTargetNetwork(_SerdeShape): + """ + Describes a target network that is associated with a Client VPN + endpoint. A target network is a subnet in a VPC. + """ + + network_id: str | None = ... + """The ID of the subnet.""" + network_type: str | None = ... + """The target network type.""" + +@dataclass(kw_only=True) +class AssociateEnclaveCertificateIamRoleInput(_SerdeShape): + """Dataclass for AssociateEnclaveCertificateIamRoleInput structure.""" + + certificate_arn: str | None = ... + """The ARN of the ACM certificate with which to associate the IAM role.""" + role_arn: str | None = ... + """ + The ARN of the IAM role to associate with the ACM certificate. You can + associate up to 16 IAM roles with an ACM certificate. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateEnclaveCertificateIamRoleOutput(_SerdeShape): + """Dataclass for AssociateEnclaveCertificateIamRoleOutput structure.""" + + certificate_s3_bucket_name: str | None = ... + """The name of the Amazon S3 bucket to which the certificate was uploaded.""" + certificate_s3_object_key: str | None = ... + """ + The Amazon S3 object key where the certificate, certificate chain, and + encrypted private key bundle are stored. The object key is formatted as + follows: `role_arn`/`certificate_arn`. + """ + encryption_kms_key_id: str | None = ... + """ + The ID of the KMS key used to encrypt the private key of the + certificate. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateIamInstanceProfileInput(_SerdeShape): + """Dataclass for AssociateIamInstanceProfileInput structure.""" + + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + instance_id: str | None = ... + """The ID of the instance.""" + +@dataclass(kw_only=True) +class AssociateIamInstanceProfileOutput(_SerdeShape): + """Dataclass for AssociateIamInstanceProfileOutput structure.""" + + iam_instance_profile_association: IamInstanceProfileAssociation | None = ... + """Information about the IAM instance profile association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateInstanceEventWindowInput(_SerdeShape): + """Dataclass for AssociateInstanceEventWindowInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_event_window_id: str | None = ... + """The ID of the event window.""" + association_target: InstanceEventWindowAssociationRequest | None = ... + """One or more targets associated with the specified event window.""" + +@dataclass(kw_only=True) +class AssociateInstanceEventWindowOutput(_SerdeShape): + """Dataclass for AssociateInstanceEventWindowOutput structure.""" + + instance_event_window: InstanceEventWindow | None = ... + """Information about the event window.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateIpamByoasnInput(_SerdeShape): + """Dataclass for AssociateIpamByoasnInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + asn: str | None = ... + """A public 2-byte or 4-byte ASN.""" + cidr: str | None = ... + """The BYOIP CIDR you want to associate with an ASN.""" + +@dataclass(kw_only=True) +class AssociateIpamByoasnOutput(_SerdeShape): + """Dataclass for AssociateIpamByoasnOutput structure.""" + + asn_association: AsnAssociation | None = ... + """The ASN and BYOIP CIDR association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateIpamResourceDiscoveryInput(_SerdeShape): + """Dataclass for AssociateIpamResourceDiscoveryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """An IPAM ID.""" + ipam_resource_discovery_id: str | None = ... + """A resource discovery ID.""" + tag_specifications: list[TagSpecification] | None = ... + """Tag specifications.""" + client_token: str | None = ... + """A client token.""" + +@dataclass(kw_only=True) +class AssociateIpamResourceDiscoveryOutput(_SerdeShape): + """Dataclass for AssociateIpamResourceDiscoveryOutput structure.""" + + ipam_resource_discovery_association: IpamResourceDiscoveryAssociation | None = ... + """ + A resource discovery association. An associated resource discovery is a + resource discovery that has been associated with an IPAM. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateNatGatewayAddressInput(_SerdeShape): + """Dataclass for AssociateNatGatewayAddressInput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + allocation_ids: list[str] | None = ... + """ + The allocation IDs of EIPs that you want to associate with your NAT + gateway. + """ + private_ip_addresses: list[str] | None = ... + """The private IPv4 addresses that you want to assign to the NAT gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + availability_zone: str | None = ... + """ + For regional NAT gateways only: The Availability Zone where you want to + associate an Elastic IP address (EIP). The regional NAT gateway uses a + separate EIP in each AZ to handle outbound NAT traffic from that AZ. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + """ + availability_zone_id: str | None = ... + """ + For regional NAT gateways only: The ID of the Availability Zone where + you want to associate an Elastic IP address (EIP). The regional NAT + gateway uses a separate EIP in each AZ to handle outbound NAT traffic + from that AZ. Use this instead of AvailabilityZone for consistent + identification of AZs across Amazon Web Services Regions. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + """ + +@dataclass(kw_only=True) +class AssociateNatGatewayAddressOutput(_SerdeShape): + """Dataclass for AssociateNatGatewayAddressOutput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + nat_gateway_addresses: list[NatGatewayAddress] | None = ... + """The IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateRouteServerInput(_SerdeShape): + """Dataclass for AssociateRouteServerInput structure.""" + + route_server_id: str | None = ... + """The unique identifier for the route server to be associated.""" + vpc_id: str | None = ... + """The ID of the VPC to associate with the route server.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateRouteServerOutput(_SerdeShape): + """Dataclass for AssociateRouteServerOutput structure.""" + + route_server_association: RouteServerAssociation | None = ... + """Information about the association between the route server and the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateRouteTableInput(_SerdeShape): + """Dataclass for AssociateRouteTableInput structure.""" + + gateway_id: str | None = ... + """The ID of the internet gateway or virtual private gateway.""" + public_ipv4_pool: str | None = ... + """ + The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 + addresses that you've brought to Amazon Web Services with BYOIP. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + subnet_id: str | None = ... + """The ID of the subnet.""" + route_table_id: str | None = ... + """The ID of the route table.""" + +@dataclass(kw_only=True) +class AssociateRouteTableOutput(_SerdeShape): + """Dataclass for AssociateRouteTableOutput structure.""" + + association_id: str | None = ... + """ + The route table association ID. This ID is required for disassociating + the route table. + """ + association_state: RouteTableAssociationState | None = ... + """The state of the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateSecurityGroupVpcInput(_SerdeShape): + """Dataclass for AssociateSecurityGroupVpcInput structure.""" + + group_id: str | None = ... + """A security group ID.""" + vpc_id: str | None = ... + """A VPC ID.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateSecurityGroupVpcOutput(_SerdeShape): + """Dataclass for AssociateSecurityGroupVpcOutput structure.""" + + state: str | None = ... + """The state of the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateSubnetCidrBlockInput(_SerdeShape): + """Dataclass for AssociateSubnetCidrBlockInput structure.""" + + ipv6_ipam_pool_id: str | None = ... + """An IPv6 IPAM pool ID.""" + ipv6_netmask_length: int | None = ... + """An IPv6 netmask length.""" + subnet_id: str | None = ... + """The ID of your subnet.""" + ipv6_cidr_block: str | None = ... + """The IPv6 CIDR block for your subnet.""" + +@dataclass(kw_only=True) +class AssociateSubnetCidrBlockOutput(_SerdeShape): + """Dataclass for AssociateSubnetCidrBlockOutput structure.""" + + ipv6_cidr_block_association: SubnetIpv6CidrBlockAssociation | None = ... + """Information about the IPv6 association.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayMulticastDomainInput(_SerdeShape): + """Dataclass for AssociateTransitGatewayMulticastDomainInput structure.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_attachment_id: str | None = ... + """ + The ID of the transit gateway attachment to associate with the transit + gateway multicast domain. + """ + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets to associate with the transit gateway multicast + domain. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayMulticastDomainOutput(_SerdeShape): + """Dataclass for AssociateTransitGatewayMulticastDomainOutput structure.""" + + associations: TransitGatewayMulticastDomainAssociations | None = ... + """Information about the transit gateway multicast domain associations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayPolicyTableInput(_SerdeShape): + """Dataclass for AssociateTransitGatewayPolicyTableInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """ + The ID of the transit gateway policy table to associate with the transit + gateway attachment. + """ + transit_gateway_attachment_id: str | None = ... + """ + The ID of the transit gateway attachment to associate with the policy + table. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayPolicyTableOutput(_SerdeShape): + """Dataclass for AssociateTransitGatewayPolicyTableOutput structure.""" + + association: TransitGatewayPolicyTableAssociation | None = ... + """ + Describes the association of a transit gateway and a transit gateway + policy table. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayRouteTableInput(_SerdeShape): + """Dataclass for AssociateTransitGatewayRouteTableInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateTransitGatewayRouteTableOutput(_SerdeShape): + """Dataclass for AssociateTransitGatewayRouteTableOutput structure.""" + + association: TransitGatewayAssociation | None = ... + """The ID of the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateTrunkInterfaceInput(_SerdeShape): + """Dataclass for AssociateTrunkInterfaceInput structure.""" + + branch_interface_id: str | None = ... + """The ID of the branch network interface.""" + trunk_interface_id: str | None = ... + """The ID of the trunk network interface.""" + vlan_id: int | None = ... + """The ID of the VLAN. This applies to the VLAN protocol.""" + gre_key: int | None = ... + """The application key. This applies to the GRE protocol.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AssociateTrunkInterfaceOutput(_SerdeShape): + """Dataclass for AssociateTrunkInterfaceOutput structure.""" + + interface_association: TrunkInterfaceAssociation | None = ... + """ + Information about the association between the trunk network interface + and branch network interface. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociateVpcCidrBlockInput(_SerdeShape): + """Dataclass for AssociateVpcCidrBlockInput structure.""" + + cidr_block: str | None = ... + """An IPv4 CIDR block to associate with the VPC.""" + ipv6_cidr_block_network_border_group: str | None = ... + """ + The name of the location from which we advertise the IPV6 CIDR block. + Use this parameter to limit the CIDR block to this location. + + You must set `AmazonProvidedIpv6CidrBlock` to `true` to use this + parameter. + + You can have one IPv6 CIDR block association per network border group. + """ + ipv6_pool: str | None = ... + """ + The ID of an IPv6 address pool from which to allocate the IPv6 CIDR + block. + """ + ipv6_cidr_block: str | None = ... + """ + An IPv6 CIDR block from the IPv6 address pool. You must also specify + `Ipv6Pool` in the request. + + To let Amazon choose the IPv6 CIDR block for you, omit this parameter. + """ + ipv4_ipam_pool_id: str | None = ... + """ + Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more + information about Amazon VPC IP Address Manager (IPAM), see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv4_netmask_length: int | None = ... + """ + The netmask length of the IPv4 CIDR you would like to associate from an + Amazon VPC IP Address Manager (IPAM) pool. For more information about + IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv6_ipam_pool_id: str | None = ... + """ + Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more + information about Amazon VPC IP Address Manager (IPAM), see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv6_netmask_length: int | None = ... + """ + The netmask length of the IPv6 CIDR you would like to associate from an + Amazon VPC IP Address Manager (IPAM) pool. For more information about + IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + amazon_provided_ipv6_cidr_block: bool | None = ... + """ + Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for + the VPC. You cannot specify the range of IPv6 addresses or the size of + the CIDR block. + """ + +@dataclass(kw_only=True) +class AssociateVpcCidrBlockOutput(_SerdeShape): + """Dataclass for AssociateVpcCidrBlockOutput structure.""" + + ipv6_cidr_block_association: VpcIpv6CidrBlockAssociation | None = ... + """Information about the IPv6 CIDR block association.""" + cidr_block_association: VpcCidrBlockAssociation | None = ... + """Information about the IPv4 CIDR block association.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AssociationStatus(_SerdeShape): + """Describes the state of a target network association.""" + + code: str | None = ... + """The state of the target network association.""" + message: str | None = ... + """ + A message about the status of the target network association, if + applicable. + """ + +class AssociationStatusCode(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + ASSOCIATION_FAILED = "association-failed" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + +class AssociationTypeEnum(UnknownEnumMixin, StrEnum): + TAG = "tag" + INSTANCE_ID = "instance-id" + +@dataclass(kw_only=True) +class AthenaIntegration(_SerdeShape): + """Describes integration options for Amazon Athena.""" + + integration_result_s3_destination_arn: str | None = ... + """ + The location in Amazon S3 to store the generated CloudFormation + template. + """ + partition_load_frequency: str | None = ... + """The schedule for adding new partitions to the table.""" + partition_start_date: datetime | None = ... + """The start date for the partition.""" + partition_end_date: datetime | None = ... + """The end date for the partition.""" + +@dataclass(kw_only=True) +class AttachClassicLinkVpcInput(_SerdeShape): + """Dataclass for AttachClassicLinkVpcInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the EC2-Classic instance.""" + vpc_id: str | None = ... + """The ID of the ClassicLink-enabled VPC.""" + groups: list[str] | None = ... + """ + The IDs of the security groups. You cannot specify security groups from + a different VPC. + """ + +@dataclass(kw_only=True) +class AttachClassicLinkVpcOutput(_SerdeShape): + """Dataclass for AttachClassicLinkVpcOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachImageWatermarkInput(_SerdeShape): + """Dataclass for AttachImageWatermarkInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + watermark_name: str | None = ... + """ + The name for the watermark. Combined with the caller's account ID to + form the `WatermarkKey` (`accountId:watermarkName`). + + Constraints: 3-128 alphanumeric characters, parentheses (()), square + brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), + single quotes ('), at-signs (@), or underscores(_) + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AttachImageWatermarkOutput(_SerdeShape): + """Dataclass for AttachImageWatermarkOutput structure.""" + + watermark_key: str | None = ... + """ + The watermark identifier, in `accountId:watermarkName` format (for + example, `123456789012:approvedAmi`). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachInternetGatewayInput(_SerdeShape): + """Dataclass for AttachInternetGatewayInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + internet_gateway_id: str | None = ... + """The ID of the internet gateway.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class AttachInternetGatewayOutput(_SerdeShape): + """Dataclass for AttachInternetGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachmentEnaSrdSpecification(_SerdeShape): + """ + ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + technology to increase the maximum bandwidth used per stream and + minimize tail latency of network traffic between EC2 instances. With ENA + Express, you can communicate between two EC2 instances in the same + subnet within the same account, or in different accounts. Both sending + and receiving instances must have ENA Express enabled. + + To improve the reliability of network packet delivery, ENA Express + reorders network packets on the receiving end by default. However, some + UDP-based applications are designed to handle network packets that are + out of order to reduce the overhead for packet delivery at the network + layer. When ENA Express is enabled, you can specify whether UDP network + traffic uses it. + """ + + ena_srd_enabled: bool | None = ... + """Indicates whether ENA Express is enabled for the network interface.""" + ena_srd_udp_specification: AttachmentEnaSrdUdpSpecification | None = ... + """Configures ENA Express for UDP network traffic.""" + +@dataclass(kw_only=True) +class AttachmentEnaSrdUdpSpecification(_SerdeShape): + """ + ENA Express is compatible with both TCP and UDP transport protocols. + When it's enabled, TCP traffic automatically uses it. However, some + UDP-based applications are designed to handle network packets that are + out of order, without a need for retransmission, such as live video + broadcasting or other near-real-time applications. For UDP traffic, you + can specify whether to use ENA Express, based on your application + environment needs. + """ + + ena_srd_udp_enabled: bool | None = ... + """ + Indicates whether UDP traffic to and from the instance uses ENA Express. + To specify this setting, you must first enable ENA Express. + """ + +class AttachmentLimitType(UnknownEnumMixin, StrEnum): + SHARED = "shared" + DEDICATED = "dedicated" + +class AttachmentStatus(UnknownEnumMixin, StrEnum): + ATTACHING = "attaching" + ATTACHED = "attached" + DETACHING = "detaching" + DETACHED = "detached" + +@dataclass(kw_only=True) +class AttachNetworkInterfaceInput(_SerdeShape): + """Contains the parameters for AttachNetworkInterface.""" + + network_card_index: int | None = ... + """ + The index of the network card. Some instance types support multiple + network cards. The primary network interface must be assigned to network + card index 0. The default is network card index 0. + """ + ena_srd_specification: EnaSrdSpecification | None = ... + """ + Configures ENA Express for the network interface that this action + attaches to the instance. + """ + ena_queue_count: int | None = ... + """The number of ENA queues to be created with the instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + instance_id: str | None = ... + """The ID of the instance.""" + device_index: int | None = ... + """The index of the device for the network interface attachment.""" + +@dataclass(kw_only=True) +class AttachNetworkInterfaceOutput(_SerdeShape): + """Contains the output of AttachNetworkInterface.""" + + attachment_id: str | None = ... + """The ID of the network interface attachment.""" + network_card_index: int | None = ... + """The index of the network card.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachVerifiedAccessTrustProviderInput(_SerdeShape): + """Dataclass for AttachVerifiedAccessTrustProviderInput structure.""" + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + verified_access_trust_provider_id: str | None = ... + """The ID of the Verified Access trust provider.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AttachVerifiedAccessTrustProviderOutput(_SerdeShape): + """Dataclass for AttachVerifiedAccessTrustProviderOutput structure.""" + + verified_access_trust_provider: VerifiedAccessTrustProvider | None = ... + """Details about the Verified Access trust provider.""" + verified_access_instance: VerifiedAccessInstance | None = ... + """Details about the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachVolumeInput(_SerdeShape): + """Dataclass for AttachVolumeInput structure.""" + + device: str | None = ... + """The device name (for example, `/dev/sdh` or `xvdh`).""" + instance_id: str | None = ... + """The ID of the instance.""" + volume_id: str | None = ... + """ + The ID of the EBS volume. The volume and instance must be within the + same Availability Zone. + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AttachVolumeOutput(_SerdeShape): + """Describes volume attachment details.""" + + delete_on_termination: bool | None = ... + """Indicates whether the EBS volume is deleted on instance termination.""" + associated_resource: str | None = ... + """ + The ARN of the Amazon Web Services-managed resource to which the volume + is attached. + """ + instance_owning_service: str | None = ... + """ + The service principal of the Amazon Web Services service that owns the + underlying resource to which the volume is attached. + + This parameter is returned only for volumes that are attached to Amazon + Web Services-managed resources. + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + volume_id: str | None = ... + """The ID of the volume.""" + instance_id: str | None = ... + """ + The ID of the instance. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + device: str | None = ... + """ + The device name. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + state: str | None = ... + """The attachment state of the volume.""" + attach_time: datetime | None = ... + """The time stamp when the attachment initiated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachVpnGatewayInput(_SerdeShape): + """Contains the parameters for AttachVpnGateway.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + vpn_gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AttachVpnGatewayOutput(_SerdeShape): + """Contains the output of AttachVpnGateway.""" + + vpc_attachment: VpcAttachment | None = ... + """Information about the attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttributeBooleanValue(_SerdeShape): + """Describes a value for a resource attribute that is a Boolean value.""" + + value: bool | None = ... + """The attribute value. The valid values are `true` or `false`.""" + +@dataclass(kw_only=True) +class AttributeSummary(_SerdeShape): + """A summary report for the attribute across all Regions.""" + + attribute_name: str | None = ... + """The name of the attribute.""" + most_frequent_value: str | None = ... + """ + The configuration value that is most frequently observed for the + attribute. + """ + number_of_matched_accounts: int | None = ... + """ + The number of accounts with the same configuration value for the + attribute that is most frequently observed. + """ + number_of_unmatched_accounts: int | None = ... + """ + The number of accounts with a configuration value different from the + most frequently observed value for the attribute. + """ + regional_summaries: list[RegionalSummary] | None = ... + """The summary report for each Region for the attribute.""" + +@dataclass(kw_only=True) +class AttributeValue(_SerdeShape): + """Describes a value for a resource attribute that is a String.""" + + value: str | None = ... + """The attribute value. The value is case-sensitive.""" + +@dataclass(kw_only=True) +class AuthorizationRule(_SerdeShape): + """Information about an authorization rule.""" + + client_vpn_endpoint_id: str | None = ... + """ + The ID of the Client VPN endpoint with which the authorization rule is + associated. + """ + description: str | None = ... + """A brief description of the authorization rule.""" + group_id: str | None = ... + """ + The ID of the Active Directory group to which the authorization rule + grants access. + """ + access_all: bool | None = ... + """Indicates whether the authorization rule grants access to all clients.""" + destination_cidr: str | None = ... + """ + The IPv4 address range, in CIDR notation, of the network to which the + authorization rule applies. + """ + status: ClientVpnAuthorizationRuleStatus | None = ... + """The current state of the authorization rule.""" + +@dataclass(kw_only=True) +class AuthorizeClientVpnIngressInput(_SerdeShape): + """Dataclass for AuthorizeClientVpnIngressInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + target_network_cidr: str | None = ... + """ + The IPv4 address range, in CIDR notation, of the network for which + access is being authorized. + """ + access_group_id: str | None = ... + """ + The ID of the group to grant access to, for example, the Active + Directory group or identity provider (IdP) group. Required if + `AuthorizeAllGroups` is `false` or not specified. + """ + authorize_all_groups: bool | None = ... + """ + Indicates whether to grant access to all clients. Specify `true` to + grant all clients who successfully establish a VPN connection access to + the network. Must be set to `true` if `AccessGroupId` is not specified. + """ + description: str | None = ... + """A brief description of the authorization rule.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AuthorizeClientVpnIngressOutput(_SerdeShape): + """Dataclass for AuthorizeClientVpnIngressOutput structure.""" + + status: ClientVpnAuthorizationRuleStatus | None = ... + """The current state of the authorization rule.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AuthorizeSecurityGroupEgressInput(_SerdeShape): + """Dataclass for AuthorizeSecurityGroupEgressInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags applied to the security group rule.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + group_id: str | None = ... + """The ID of the security group.""" + source_security_group_name: str | None = ... + """Not supported. Use IP permissions instead.""" + source_security_group_owner_id: str | None = ... + """Not supported. Use IP permissions instead.""" + ip_protocol: str | None = ... + """Not supported. Use IP permissions instead.""" + from_port: int | None = ... + """Not supported. Use IP permissions instead.""" + to_port: int | None = ... + """Not supported. Use IP permissions instead.""" + cidr_ip: str | None = ... + """Not supported. Use IP permissions instead.""" + ip_permissions: list[IpPermission] | None = ... + """The permissions for the security group rules.""" + +@dataclass(kw_only=True) +class AuthorizeSecurityGroupEgressOutput(_SerdeShape): + """Dataclass for AuthorizeSecurityGroupEgressOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + security_group_rules: list[SecurityGroupRule] | None = ... + """ + Information about the outbound (egress) security group rules that were + added. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AuthorizeSecurityGroupIngressInput(_SerdeShape): + """Dataclass for AuthorizeSecurityGroupIngressInput structure.""" + + cidr_ip: str | None = ... + """ + The IPv4 address range, in CIDR format. + + Note: + Amazon Web Services + [canonicalizes](https://en.wikipedia.org/wiki/Canonicalization) IPv4 and + IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR + block, Amazon Web Services canonicalizes the CIDR block to + 100.68.0.0/18. Any subsequent DescribeSecurityGroups and + DescribeSecurityGroupRules calls will return the canonicalized form of + the CIDR block. Additionally, if you attempt to add another rule with + the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is + already a rule for the canonicalized form of the CIDR block (such as + 100.68.0.0/18), the API throws an duplicate rule error. + + To specify an IPv6 address range, use IP permissions instead. + + To specify multiple rules and descriptions for the rules, use IP + permissions instead. + """ + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP, this is the ICMP type or -1 (all ICMP types). + + To specify multiple rules and descriptions for the rules, use IP + permissions instead. + """ + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """ + [Default VPC] The name of the security group. For security groups for + a default VPC you can specify either the ID or the name of the security + group. For security groups for a nondefault VPC, you must specify the ID + of the security group. + """ + ip_permissions: list[IpPermission] | None = ... + """The permissions for the security group rules.""" + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`) or number (see [Protocol + Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + To specify all protocols, use `-1`. + + To specify `icmpv6`, use IP permissions instead. + + If you specify a protocol other than one of the supported values, + traffic is allowed on all ports, regardless of any ports that you + specify. + + To specify multiple rules and descriptions for the rules, use IP + permissions instead. + """ + source_security_group_name: str | None = ... + """ + [Default VPC] The name of the source security group. + + The rule grants full ICMP, UDP, and TCP access. To create a rule with a + specific protocol and port range, specify a set of IP permissions + instead. + """ + source_security_group_owner_id: str | None = ... + """ + The Amazon Web Services account ID for the source security group, if the + source security group is in a different account. + + The rule grants full ICMP, UDP, and TCP access. To create a rule with a + specific protocol and port range, use IP permissions instead. + """ + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP, this is the ICMP code or -1 (all ICMP codes). If the + start port is -1 (all ICMP types), then the end port must be -1 (all + ICMP codes). + + To specify multiple rules and descriptions for the rules, use IP + permissions instead. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags applied to the security group rule.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class AuthorizeSecurityGroupIngressOutput(_SerdeShape): + """Dataclass for AuthorizeSecurityGroupIngressOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + security_group_rules: list[SecurityGroupRule] | None = ... + """ + Information about the inbound (ingress) security group rules that were + added. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AutoAcceptSharedAssociationsValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class AutoAcceptSharedAttachmentsValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class AutoPlacement(UnknownEnumMixin, StrEnum): + ON = "on" + OFF = "off" + +class AutoProvisionZonesState(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +class AutoScalingIpsState(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +class AvailabilityMode(UnknownEnumMixin, StrEnum): + ZONAL = "zonal" + REGIONAL = "regional" + +@dataclass(kw_only=True) +class AvailabilityZone(_SerdeShape): + """Describes Availability Zones, Local Zones, and Wavelength Zones.""" + + opt_in_status: str | None = ... + """ + For Availability Zones, this parameter always has the value of + `opt-in-not-required`. + + For Local Zones and Wavelength Zones, this parameter is the opt-in + status. The possible values are `opted-in` and `not-opted-in`. + """ + messages: list[AvailabilityZoneMessage] | None = ... + """ + Any messages about the Availability Zone, Local Zone, or Wavelength + Zone. + """ + region_name: str | None = ... + """The name of the Region.""" + zone_name: str | None = ... + """The name of the Availability Zone, Local Zone, or Wavelength Zone.""" + zone_id: str | None = ... + """The ID of the Availability Zone, Local Zone, or Wavelength Zone.""" + group_name: str | None = ... + """ + The name of the zone group. For example: + + - Availability Zones - `us-east-1-zg-1` + + - Local Zones - `us-west-2-lax-1` + + - Wavelength Zones - `us-east-1-wl1-bos-wlz-1` + """ + network_border_group: str | None = ... + """The name of the network border group.""" + zone_type: str | None = ... + """ + The type of zone. + + Valid values: `availability-zone` | `local-zone` | `wavelength-zone` + """ + parent_zone_name: str | None = ... + """ + The name of the zone that handles some of the Local Zone or Wavelength + Zone control plane operations, such as API calls. + """ + parent_zone_id: str | None = ... + """ + The ID of the zone that handles some of the Local Zone or Wavelength + Zone control plane operations, such as API calls. + """ + group_long_name: str | None = ... + """ + The long name of the Availability Zone group, Local Zone group, or + Wavelength Zone group. + """ + geography: list[AvailabilityZoneGeography] | None = ... + """ + The geography information for the Availability Zone or Local Zone. The + geography is returned as a list. + """ + sub_geography: list[AvailabilityZoneSubGeography] | None = ... + """ + The sub-geography information for the Availability Zone or Local Zone. + The sub-geography is returned as a list. + """ + state: str | None = ... + """ + The state of the Availability Zone, Local Zone, or Wavelength Zone. The + possible values are `available`, `unavailable`, and `constrained`. + """ + +@dataclass(kw_only=True) +class AvailabilityZoneAddress(_SerdeShape): + """ + For regional NAT gateways only: The configuration specifying which + Elastic IP address (EIP) to use for handling outbound NAT traffic from a + specific Availability Zone. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + + availability_zone: str | None = ... + """ + For regional NAT gateways only: The Availability Zone where this + specific NAT gateway configuration will be active. Each AZ in a regional + NAT gateway has its own configuration to handle outbound NAT traffic + from that AZ. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + """ + availability_zone_id: str | None = ... + """ + For regional NAT gateways only: The ID of the Availability Zone where + this specific NAT gateway configuration will be active. Each AZ in a + regional NAT gateway has its own configuration to handle outbound NAT + traffic from that AZ. Use this instead of AvailabilityZone for + consistent identification of AZs across Amazon Web Services Regions. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + """ + allocation_ids: list[str] | None = ... + """ + The allocation IDs of the Elastic IP addresses (EIPs) to be used for + handling outbound NAT traffic in this specific Availability Zone. + """ + +@dataclass(kw_only=True) +class AvailabilityZoneGeography(_SerdeShape): + """ + Describes the geography information for an Availability Zone or Local + Zone. + """ + + name: str | None = ... + """The name of the geography, for example, `United States of America`.""" + +@dataclass(kw_only=True) +class AvailabilityZoneMessage(_SerdeShape): + """ + Describes a message about an Availability Zone, Local Zone, or + Wavelength Zone. + """ + + message: str | None = ... + """The message about the Availability Zone, Local Zone, or Wavelength Zone.""" + +class AvailabilityZoneOptInStatus(UnknownEnumMixin, StrEnum): + OPT_IN_NOT_REQUIRED = "opt-in-not-required" + OPTED_IN = "opted-in" + NOT_OPTED_IN = "not-opted-in" + +class AvailabilityZoneState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + INFORMATION = "information" + IMPAIRED = "impaired" + UNAVAILABLE = "unavailable" + CONSTRAINED = "constrained" + +@dataclass(kw_only=True) +class AvailabilityZoneSubGeography(_SerdeShape): + """ + Describes the sub-geography information for an Availability Zone or + Local Zone. + """ + + name: str | None = ... + """The name of the sub-geography, for example, `Oregon.`""" + +@dataclass(kw_only=True) +class AvailableCapacity(_SerdeShape): + """ + The capacity information for instances that can be launched onto the + Dedicated Host. + """ + + available_instance_capacity: list[InstanceCapacity] | None = ... + """ + The number of instances that can be launched onto the Dedicated Host + depending on the host's available capacity. For Dedicated Hosts that + support multiple instance types, this parameter represents the number of + instances for each instance size that is supported on the host. + """ + available_v_cpus: int | None = ... + """ + The number of vCPUs available for launching instances onto the Dedicated + Host. + """ + +class BandwidthWeightingType(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + VPC_1 = "vpc-1" + EBS_1 = "ebs-1" + +class BareMetal(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +@dataclass(kw_only=True) +class BaselineEbsBandwidthMbps(_SerdeShape): + """ + The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For + more information, see [Amazon EBS--optimized + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) + in the *Amazon EC2 User Guide*. + """ + + min: int | None = ... + """ + The minimum baseline bandwidth, in Mbps. If this parameter is not + specified, there is no minimum limit. + """ + max: int | None = ... + """ + The maximum baseline bandwidth, in Mbps. If this parameter is not + specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class BaselineEbsBandwidthMbpsRequest(_SerdeShape): + """ + The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For + more information, see [Amazon EBS--optimized + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) + in the *Amazon EC2 User Guide*. + """ + + min: int | None = ... + """ + The minimum baseline bandwidth, in Mbps. To specify no minimum limit, + omit this parameter. + """ + max: int | None = ... + """ + The maximum baseline bandwidth, in Mbps. To specify no maximum limit, + omit this parameter. + """ + +@dataclass(kw_only=True) +class BaselinePerformanceFactors(_SerdeShape): + """ + The baseline performance to consider, using an instance family as a + baseline reference. The instance family establishes the lowest + acceptable level of performance. Amazon EC2 uses this baseline to guide + instance type selection, but there is no guarantee that the selected + instance types will always exceed the baseline for every application. + + Currently, this parameter only supports CPU performance as a baseline + performance factor. For example, specifying `c6i` would use the CPU + performance of the `c6i` family as the baseline reference. + """ + + cpu: CpuPerformanceFactor | None = ... + """ + The CPU performance to consider, using an instance family as the + baseline reference. + """ + +@dataclass(kw_only=True) +class BaselinePerformanceFactorsRequest(_SerdeShape): + """ + The baseline performance to consider, using an instance family as a + baseline reference. The instance family establishes the lowest + acceptable level of performance. Amazon EC2 uses this baseline to guide + instance type selection, but there is no guarantee that the selected + instance types will always exceed the baseline for every application. + + Currently, this parameter only supports CPU performance as a baseline + performance factor. For example, specifying `c6i` would use the CPU + performance of the `c6i` family as the baseline reference. + """ + + cpu: CpuPerformanceFactorRequest | None = ... + """ + The CPU performance to consider, using an instance family as the + baseline reference. + """ + +@dataclass(kw_only=True) +class BatchModifyIpamRoutingPolicyRegistrationsInput(_SerdeShape): + """Dataclass for BatchModifyIpamRoutingPolicyRegistrationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + delta_json: str | None = ... + """The batch modifications to apply, in JSON format.""" + force: bool | None = ... + """ + Forces the batch modification even if individual changes conflict with + announced routes. Default: `false`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class BatchModifyIpamRoutingPolicyRegistrationsOutput(_SerdeShape): + """Dataclass for BatchModifyIpamRoutingPolicyRegistrationsOutput structure.""" + + ipam_routing_policy_registration_delta: ( + IpamRoutingPolicyRegistrationDelta | None + ) = ... + """ + Information about the routing policy registration delta created by this + batch operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class BatchState(UnknownEnumMixin, StrEnum): + SUBMITTED = "submitted" + ACTIVE = "active" + CANCELLED = "cancelled" + FAILED = "failed" + CANCELLED_RUNNING = "cancelled_running" + CANCELLED_TERMINATING_INSTANCES = "cancelled_terminating" + MODIFYING = "modifying" + +class BgpStatus(UnknownEnumMixin, StrEnum): + UP = "up" + DOWN = "down" + +@dataclass(kw_only=True) +class BlockDeviceMapping(_SerdeShape): + """ + Describes a block device mapping, which defines the EBS volumes and + instance store volumes to attach to an instance at launch. + """ + + ebs: EbsBlockDevice | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + no_device: str | None = ... + """ + To omit the device from the block device mapping, specify an empty + string. When this property is specified, the device is removed from the + block device mapping regardless of the assigned value. + """ + device_name: str | None = ... + """ + The device name. For available device names, see [Device names for + volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html). + """ + virtual_name: str | None = ... + """ + The virtual device name (`ephemeral`N). Instance store volumes are + numbered starting from 0. An instance type with 2 available instance + store volumes can specify mappings for `ephemeral0` and `ephemeral1`. + The number of available instance store volumes depends on the instance + type. After you connect to the instance, you must mount the volume. + + NVMe instance store volumes are automatically enumerated and assigned a + device name. Including them in your block device mapping has no effect. + + Constraints: For M3 instances, you must specify instance store volumes + in the block device mapping for the instance. When you launch an M3 + instance, we ignore any instance store volumes specified in the block + device mapping for the AMI. + """ + +@dataclass(kw_only=True) +class BlockDeviceMappingResponse(_SerdeShape): + """ + Describes a block device mapping, which defines the EBS volumes and + instance store volumes to attach to an instance at launch. + """ + + device_name: str | None = ... + """The device name (for example, `/dev/sdh` or `xvdh`).""" + virtual_name: str | None = ... + """The virtual device name.""" + ebs: EbsBlockDeviceResponse | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + no_device: str | None = ... + """Suppresses the specified device included in the block device mapping.""" + +class BlockPublicAccessMode(UnknownEnumMixin, StrEnum): + OFF = "off" + BLOCK_BIDIRECTIONAL = "block-bidirectional" + BLOCK_INGRESS = "block-ingress" + +@dataclass(kw_only=True) +class BlockPublicAccessStates(_SerdeShape): + """The state of VPC Block Public Access (BPA).""" + + internet_gateway_block_mode: str | None = ... + """ + The mode of VPC BPA. + + - `off`: VPC BPA is not enabled and traffic is allowed to and from + internet gateways and egress-only internet gateways in this Region. + + - `block-bidirectional`: Block all traffic to and from internet gateways + and egress-only internet gateways in this Region (except for excluded + VPCs and subnets). + + - `block-ingress`: Block all internet traffic to the VPCs in this Region + (except for VPCs or subnets which are excluded). Only traffic to and + from NAT gateways and egress-only internet gateways is allowed because + these gateways only allow outbound connections to be established. + """ + +class BootModeOverrideValues(UnknownEnumMixin, StrEnum): + UEFI = "uefi" + +class BootModeType(UnknownEnumMixin, StrEnum): + LEGACY_BIOS = "legacy-bios" + UEFI = "uefi" + +class BootModeValues(UnknownEnumMixin, StrEnum): + LEGACY_BIOS = "legacy-bios" + UEFI = "uefi" + UEFI_PREFERRED = "uefi-preferred" + +@dataclass(kw_only=True) +class BundleInstanceInput(_SerdeShape): + """Contains the parameters for BundleInstance.""" + + instance_id: str | None = ... + """ + The ID of the instance to bundle. + + Default: None + """ + storage: Storage | None = ... + """ + The bucket in which to store the AMI. You can specify a bucket that you + already own or a new bucket that Amazon EC2 creates on your behalf. If + you specify a bucket that belongs to someone else, Amazon EC2 returns an + error. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class BundleInstanceOutput(_SerdeShape): + """Contains the output of BundleInstance.""" + + bundle_task: BundleTask | None = ... + """Information about the bundle task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BundleTask(_SerdeShape): + """Describes a bundle task.""" + + instance_id: str | None = ... + """The ID of the instance associated with this bundle task.""" + bundle_id: str | None = ... + """The ID of the bundle task.""" + state: str | None = ... + """The state of the task.""" + start_time: datetime | None = ... + """The time this task started.""" + update_time: datetime | None = ... + """The time of the most recent update for the task.""" + storage: Storage | None = ... + """The Amazon S3 storage locations.""" + progress: str | None = ... + """The level of task completion, as a percent (for example, 20%).""" + bundle_task_error: BundleTaskError | None = ... + """If the task fails, a description of the error.""" + +@dataclass(kw_only=True) +class BundleTaskError(_SerdeShape): + """Describes an error for BundleInstance.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message.""" + +class BundleTaskState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + WAITING_FOR_SHUTDOWN = "waiting-for-shutdown" + BUNDLING = "bundling" + STORING = "storing" + CANCELLING = "cancelling" + COMPLETE = "complete" + FAILED = "failed" + +class BurstablePerformance(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +@dataclass(kw_only=True) +class Byoasn(_SerdeShape): + """The Autonomous System Number (ASN) and BYOIP CIDR association.""" + + asn: str | None = ... + """A public 2-byte or 4-byte ASN.""" + ipam_id: str | None = ... + """An IPAM ID.""" + status_message: str | None = ... + """The status message.""" + state: str | None = ... + """The provisioning state of the BYOASN.""" + +@dataclass(kw_only=True) +class ByoipCidr(_SerdeShape): + """ + Information about an address range that is provisioned for use with your + Amazon Web Services resources through bring your own IP addresses + (BYOIP). + """ + + cidr: str | None = ... + """The address range, in CIDR notation.""" + description: str | None = ... + """The description of the address range.""" + asn_associations: list[AsnAssociation] | None = ... + """The BYOIP CIDR associations with ASNs.""" + status_message: str | None = ... + """ + Upon success, contains the ID of the address pool. Otherwise, contains + an error message. + """ + state: str | None = ... + """ + The state of the address range. + + - `advertised`: The address range is being advertised to the internet by + Amazon Web Services. + + - `deprovisioned`: The address range is deprovisioned. + + - `failed-deprovision`: The request to deprovision the address range was + unsuccessful. Ensure that all EIPs from the range have been + deallocated and try again. + + - `failed-provision`: The request to provision the address range was + unsuccessful. + + - `pending-deprovision`: You've submitted a request to deprovision an + address range and it's pending. + + - `pending-provision`: You've submitted a request to provision an + address range and it's pending. + + - `provisioned`: The address range is provisioned and can be advertised. + The range is not currently advertised. + + - `provisioned-not-publicly-advertisable`: The address range is + provisioned and cannot be advertised. + """ + network_border_group: str | None = ... + """ + If you have [Local + Zones](https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html) + enabled, you can choose a network border group for Local Zones when you + provision and advertise a BYOIPv4 CIDR. Choose the network border group + carefully as the EIP and the Amazon Web Services resource it is + associated with must reside in the same network border group. + + You can provision BYOIP address ranges to and advertise them in the + following Local Zone network border groups: + + - us-east-1-dfw-2 + + - us-west-2-lax-1 + + - us-west-2-phx-2 + + Note: + You cannot provision or advertise BYOIPv6 address ranges in Local Zones + at this time. + """ + advertisement_type: str | None = ... + """ + Specifies the advertisement method for the BYOIP CIDR. Valid values are: + + - `unicast`: IP is advertised from a single location (regional services + like EC2) + + - `anycast`: IP is advertised from multiple global locations + simultaneously (global services like CloudFront) + + For more information, see [Bring your own IP to CloudFront using + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html) + in the *Amazon VPC IPAM User Guide*. + """ + pool_id: str | None = ... + """The ID of the address pool associated with the CIDR.""" + ipam_pool_id: str | None = ... + """The ID of the IPAM pool associated with the CIDR.""" + +class ByoipCidrState(UnknownEnumMixin, StrEnum): + ADVERTISED = "advertised" + DEPROVISIONED = "deprovisioned" + FAILED_DEPROVISION = "failed-deprovision" + FAILED_PROVISION = "failed-provision" + PENDING_ADVERTISING = "pending-advertising" + PENDING_DEPROVISION = "pending-deprovision" + PENDING_PROVISION = "pending-provision" + PENDING_WITHDRAWAL = "pending-withdrawal" + PROVISIONED = "provisioned" + PROVISIONED_NOT_PUBLICLY_ADVERTISABLE = "provisioned-not-publicly-advertisable" + +class CallerRole(UnknownEnumMixin, StrEnum): + ODCR_OWNER = "odcr-owner" + UNUSED_RESERVATION_BILLING_OWNER = "unused-reservation-billing-owner" + +class CancelBatchErrorCode(UnknownEnumMixin, StrEnum): + FLEET_REQUEST_ID_DOES_NOT_EXIST = "fleetRequestIdDoesNotExist" + FLEET_REQUEST_ID_MALFORMED = "fleetRequestIdMalformed" + FLEET_REQUEST_NOT_IN_CANCELLABLE_STATE = "fleetRequestNotInCancellableState" + UNEXPECTED_ERROR = "unexpectedError" + +@dataclass(kw_only=True) +class CancelBundleTaskInput(_SerdeShape): + """Contains the parameters for CancelBundleTask.""" + + bundle_id: str | None = ... + """The ID of the bundle task.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CancelBundleTaskOutput(_SerdeShape): + """Contains the output of CancelBundleTask.""" + + bundle_task: BundleTask | None = ... + """Information about the bundle task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelCapacityReservationFleetError(_SerdeShape): + """Describes a Capacity Reservation Fleet cancellation error.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message.""" + +@dataclass(kw_only=True) +class CancelCapacityReservationFleetsInput(_SerdeShape): + """Dataclass for CancelCapacityReservationFleetsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_reservation_fleet_ids: list[str] | None = ... + """The IDs of the Capacity Reservation Fleets to cancel.""" + +@dataclass(kw_only=True) +class CancelCapacityReservationFleetsOutput(_SerdeShape): + """Dataclass for CancelCapacityReservationFleetsOutput structure.""" + + successful_fleet_cancellations: ( + list[CapacityReservationFleetCancellationState] | None + ) = ... + """ + Information about the Capacity Reservation Fleets that were successfully + cancelled. + """ + failed_fleet_cancellations: ( + list[FailedCapacityReservationFleetCancellationResult] | None + ) = ... + """ + Information about the Capacity Reservation Fleets that could not be + cancelled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelCapacityReservationInput(_SerdeShape): + """Dataclass for CancelCapacityReservationInput structure.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation to be cancelled.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + apply_cancellation_charges: str | None = ... + """ + Specifies the cancellation charge type to apply when cancelling a + future-dated Capacity Reservation during its commitment duration. + Possible values include `commitment-wind-down`, which continues billing + for the remaining commitment duration without delivering capacity. + """ + quote_id: str | None = ... + """ + The ID of the cancellation quote to use for the cancellation. You can + generate a cancellation quote by using the + `CreateCapacityReservationCancellationQuote` action. The cancellation + quote must be in an `active` state. + """ + +@dataclass(kw_only=True) +class CancelCapacityReservationOutput(_SerdeShape): + """Dataclass for CancelCapacityReservationOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelConversionTaskInput(_SerdeShape): + """Dataclass for CancelConversionTaskInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + conversion_task_id: str | None = ... + """The ID of the conversion task.""" + reason_message: str | None = ... + """The reason for canceling the conversion task.""" + +@dataclass(kw_only=True) +class CancelConversionTaskOutput(_SerdeShape): + """Dataclass for CancelConversionTaskOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelDeclarativePoliciesReportInput(_SerdeShape): + """Dataclass for CancelDeclarativePoliciesReportInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + report_id: str | None = ... + """The ID of the report.""" + +@dataclass(kw_only=True) +class CancelDeclarativePoliciesReportOutput(_SerdeShape): + """Dataclass for CancelDeclarativePoliciesReportOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelExportTaskInput(_SerdeShape): + """Dataclass for CancelExportTaskInput structure.""" + + export_task_id: str | None = ... + """ + The ID of the export task. This is the ID returned by the + `CreateInstanceExportTask` and `ExportImage` operations. + """ + +@dataclass(kw_only=True) +class CancelExportTaskOutput(_SerdeShape): + """Dataclass for CancelExportTaskOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelImageLaunchPermissionInput(_SerdeShape): + """Dataclass for CancelImageLaunchPermissionInput structure.""" + + image_id: str | None = ... + """The ID of the AMI that was shared with your Amazon Web Services account.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CancelImageLaunchPermissionOutput(_SerdeShape): + """Dataclass for CancelImageLaunchPermissionOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelImportTaskInput(_SerdeShape): + """Dataclass for CancelImportTaskInput structure.""" + + cancel_reason: str | None = ... + """The reason for canceling the task.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + import_task_id: str | None = ... + """The ID of the import image or import snapshot task to be canceled.""" + +@dataclass(kw_only=True) +class CancelImportTaskOutput(_SerdeShape): + """Dataclass for CancelImportTaskOutput structure.""" + + import_task_id: str | None = ... + """The ID of the task being canceled.""" + previous_state: str | None = ... + """The current state of the task being canceled.""" + state: str | None = ... + """The current state of the task being canceled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancellationTerms(_SerdeShape): + """ + Describes the cancellation terms for cancelling a future-dated Capacity + Reservation during its commitment duration. + """ + + cancellation_type: str | None = ... + """ + The type of cancellation charge. Possible values include + `commitment-wind-down`. + """ + reservation_state: str | None = ... + """ + The state that the Capacity Reservation will transition to after + cancellation. + """ + committed_instance_count: int | None = ... + """The number of instances under commitment after cancellation.""" + charge_commitment_duration_hours: int | None = ... + """The number of hours for which cancellation charges will apply.""" + charge_end_date: datetime | None = ... + """The date and time at which cancellation charges will stop.""" + +@dataclass(kw_only=True) +class CancelledSpotInstanceRequest(_SerdeShape): + """Describes a request to cancel a Spot Instance.""" + + spot_instance_request_id: str | None = ... + """The ID of the Spot Instance request.""" + state: str | None = ... + """The state of the Spot Instance request.""" + +@dataclass(kw_only=True) +class CancelReservedInstancesListingInput(_SerdeShape): + """Contains the parameters for CancelReservedInstancesListing.""" + + reserved_instances_listing_id: str | None = ... + """The ID of the Reserved Instance listing.""" + +@dataclass(kw_only=True) +class CancelReservedInstancesListingOutput(_SerdeShape): + """Contains the output of CancelReservedInstancesListing.""" + + reserved_instances_listings: list[ReservedInstancesListing] | None = ... + """The Reserved Instance listing.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelSpotFleetRequestsError(_SerdeShape): + """Describes a Spot Fleet error.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The description for the error code.""" + +@dataclass(kw_only=True) +class CancelSpotFleetRequestsErrorItem(_SerdeShape): + """Describes a Spot Fleet request that was not successfully canceled.""" + + error: CancelSpotFleetRequestsError | None = ... + """The error.""" + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + +@dataclass(kw_only=True) +class CancelSpotFleetRequestsInput(_SerdeShape): + """Contains the parameters for CancelSpotFleetRequests.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_fleet_request_ids: list[str] | None = ... + """ + The IDs of the Spot Fleet requests. + + Constraint: You can specify up to 100 IDs in a single request. + """ + terminate_instances: bool | None = ... + """ + Indicates whether to terminate the associated instances when the Spot + Fleet request is canceled. The default is to terminate the instances. + + To let the instances continue to run after the Spot Fleet request is + canceled, specify `no-terminate-instances`. + """ + +@dataclass(kw_only=True) +class CancelSpotFleetRequestsOutput(_SerdeShape): + """Contains the output of CancelSpotFleetRequests.""" + + successful_fleet_requests: list[CancelSpotFleetRequestsSuccessItem] | None = ... + """ + Information about the Spot Fleet requests that are successfully + canceled. + """ + unsuccessful_fleet_requests: list[CancelSpotFleetRequestsErrorItem] | None = ... + """ + Information about the Spot Fleet requests that are not successfully + canceled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelSpotFleetRequestsSuccessItem(_SerdeShape): + """Describes a Spot Fleet request that was successfully canceled.""" + + current_spot_fleet_request_state: str | None = ... + """The current state of the Spot Fleet request.""" + previous_spot_fleet_request_state: str | None = ... + """The previous state of the Spot Fleet request.""" + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + +@dataclass(kw_only=True) +class CancelSpotInstanceRequestsInput(_SerdeShape): + """Contains the parameters for CancelSpotInstanceRequests.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_instance_request_ids: list[str] | None = ... + """The IDs of the Spot Instance requests.""" + +@dataclass(kw_only=True) +class CancelSpotInstanceRequestsOutput(_SerdeShape): + """Contains the output of CancelSpotInstanceRequests.""" + + cancelled_spot_instance_requests: list[CancelledSpotInstanceRequest] | None = ... + """The Spot Instance requests.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CancelSpotInstanceRequestState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + OPEN = "open" + CLOSED = "closed" + CANCELLED = "cancelled" + COMPLETED = "completed" + +@dataclass(kw_only=True) +class CapacityAllocation(_SerdeShape): + """Information about instance capacity usage for a Capacity Reservation.""" + + allocation_type: str | None = ... + """ + The usage type. `used` indicates that the instance capacity is in use by + instances that are running in the Capacity Reservation. + """ + count: int | None = ... + """ + The amount of instance capacity associated with the usage. For example a + value of `4` indicates that instance capacity for 4 instances is + currently in use. + """ + allocation_metadata: list[CapacityAllocationMetadataEntry] | None = ... + """ + Additional metadata associated with the capacity allocation. Each entry + contains a key-value pair providing context about the allocation. + """ + +@dataclass(kw_only=True) +class CapacityAllocationMetadataEntry(_SerdeShape): + """ + A key-value pair that provides additional metadata about a capacity + allocation. + """ + + key: str | None = ... + """The key of the metadata entry.""" + value: str | None = ... + """The value of the metadata entry.""" + +@dataclass(kw_only=True) +class CapacityBlock(_SerdeShape): + """ + Reserve powerful GPU instances on a future date to support your short + duration machine learning (ML) workloads. Instances that run inside a + Capacity Block are automatically placed close together inside [Amazon + EC2 UltraClusters](http://aws.amazon.com/ec2/ultraclusters/), for + low-latency, petabit-scale, non-blocking networking. + + You can also reserve Amazon EC2 UltraServers. UltraServers connect + multiple EC2 instances using a low-latency, high-bandwidth accelerator + interconnect (NeuronLink). They are built to tackle very large-scale + AI/ML workloads that require significant processing power. For more + information, see Amazon EC2 UltraServers. + """ + + capacity_block_id: str | None = ... + """The ID of the Capacity Block.""" + ultraserver_type: str | None = ... + """The EC2 UltraServer type of the Capacity Block.""" + availability_zone: str | None = ... + """The Availability Zone of the Capacity Block.""" + availability_zone_id: str | None = ... + """The Availability Zone ID of the Capacity Block.""" + capacity_reservation_ids: list[str] | None = ... + """The ID of the Capacity Reservation.""" + start_date: datetime | None = ... + """The date and time at which the Capacity Block was started.""" + end_date: datetime | None = ... + """ + The date and time at which the Capacity Block expires. When a Capacity + Block expires, all instances in the Capacity Block are terminated. + """ + create_date: datetime | None = ... + """The date and time at which the Capacity Block was created.""" + state: str | None = ... + """The state of the Capacity Block.""" + tags: list[Tag] | None = ... + """The tags assigned to the Capacity Block.""" + +@dataclass(kw_only=True) +class CapacityBlockExtension(_SerdeShape): + """ + Describes a Capacity Block extension. With an extension, you can extend + the duration of time for an existing Capacity Block. + """ + + capacity_reservation_id: str | None = ... + """The reservation ID of the Capacity Block extension.""" + instance_type: str | None = ... + """The instance type of the Capacity Block extension.""" + instance_count: int | None = ... + """The number of instances in the Capacity Block extension.""" + availability_zone: str | None = ... + """The Availability Zone of the Capacity Block extension.""" + availability_zone_id: str | None = ... + """The Availability Zone ID of the Capacity Block extension.""" + capacity_block_extension_offering_id: str | None = ... + """The ID of the Capacity Block extension offering.""" + capacity_block_extension_duration_hours: int | None = ... + """The duration of the Capacity Block extension in hours.""" + capacity_block_extension_status: str | None = ... + """ + The status of the Capacity Block extension. A Capacity Block extension + can have one of the following statuses: + + - `payment-pending` - The Capacity Block extension payment is + processing. If your payment can't be processed within 12 hours, the + Capacity Block extension is failed. + + - `payment-failed` - Payment for the Capacity Block extension request + was not successful. + + - `payment-succeeded` - Payment for the Capacity Block extension request + was successful. You receive an invoice that reflects the one-time + upfront payment. In the invoice, you can associate the paid amount + with the Capacity Block reservation ID. + """ + capacity_block_extension_purchase_date: datetime | None = ... + """The date when the Capacity Block extension was purchased.""" + capacity_block_extension_start_date: datetime | None = ... + """The start date of the Capacity Block extension.""" + capacity_block_extension_end_date: datetime | None = ... + """The end date of the Capacity Block extension.""" + upfront_fee: str | None = ... + """The total price to be paid up front.""" + currency_code: str | None = ... + """The currency of the payment for the Capacity Block extension.""" + zone_type: str | None = ... + """The type of zone where the Capacity Block extension is located.""" + +@dataclass(kw_only=True) +class CapacityBlockExtensionOffering(_SerdeShape): + """ + The recommended Capacity Block extension that fits your search + requirements. + """ + + capacity_block_extension_offering_id: str | None = ... + """The ID of the Capacity Block extension offering.""" + instance_type: str | None = ... + """The instance type of the Capacity Block that will be extended.""" + instance_count: int | None = ... + """The number of instances in the Capacity Block extension offering.""" + availability_zone: str | None = ... + """The Availability Zone of the Capacity Block that will be extended.""" + availability_zone_id: str | None = ... + """The Availability Zone ID of the Capacity Block that will be extended.""" + start_date: datetime | None = ... + """The start date of the Capacity Block that will be extended.""" + capacity_block_extension_start_date: datetime | None = ... + """ + The date and time at which the Capacity Block extension will start. This + date is also the same as the end date of the Capacity Block that will be + extended. + """ + capacity_block_extension_end_date: datetime | None = ... + """ + The date and time at which the Capacity Block extension expires. When a + Capacity Block expires, the reserved capacity is released and you can no + longer launch instances into it. The Capacity Block's state changes to + `expired` when it reaches its end date + """ + capacity_block_extension_duration_hours: int | None = ... + """The amount of time of the Capacity Block extension offering in hours.""" + upfront_fee: str | None = ... + """ + The total price of the Capacity Block extension offering, to be paid up + front. + """ + currency_code: str | None = ... + """The currency of the payment for the Capacity Block extension offering.""" + tenancy: str | None = ... + """ + Indicates the tenancy of the Capacity Block extension offering. A + Capacity Block can have one of the following tenancy settings: + + - `default` - The Capacity Block is created on hardware that is shared + with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Block is created on single-tenant hardware + that is dedicated to a single Amazon Web Services account. + """ + zone_type: str | None = ... + """ + The type of zone where the Capacity Block extension offering is + available. + """ + +class CapacityBlockExtensionStatus(UnknownEnumMixin, StrEnum): + PAYMENT_PENDING = "payment-pending" + PAYMENT_FAILED = "payment-failed" + PAYMENT_SUCCEEDED = "payment-succeeded" + +class CapacityBlockInterconnectStatus(UnknownEnumMixin, StrEnum): + OK = "ok" + IMPAIRED = "impaired" + INSUFFICIENT_DATA = "insufficient-data" + +@dataclass(kw_only=True) +class CapacityBlockOffering(_SerdeShape): + """The recommended Capacity Block that fits your search requirements.""" + + capacity_block_offering_id: str | None = ... + """The ID of the Capacity Block offering.""" + instance_type: str | None = ... + """The instance type of the Capacity Block offering.""" + availability_zone: str | None = ... + """The Availability Zone of the Capacity Block offering.""" + instance_count: int | None = ... + """The number of instances in the Capacity Block offering.""" + start_date: datetime | None = ... + """The start date of the Capacity Block offering.""" + end_date: datetime | None = ... + """The end date of the Capacity Block offering.""" + capacity_block_duration_hours: int | None = ... + """ + The number of hours (in addition to `capacityBlockDurationMinutes`) for + the duration of the Capacity Block reservation. For example, if a + Capacity Block starts at **04:55** and ends at **11:30**, the hours + field would be **6**. + """ + upfront_fee: str | None = ... + """The total price to be paid up front.""" + currency_code: str | None = ... + """The currency of the payment for the Capacity Block.""" + tenancy: str | None = ... + """The tenancy of the Capacity Block.""" + ultraserver_type: str | None = ... + """The EC2 UltraServer type of the Capacity Block offering.""" + ultraserver_count: int | None = ... + """The number of EC2 UltraServers in the offering.""" + capacity_block_duration_minutes: int | None = ... + """ + The number of minutes (in addition to `capacityBlockDurationHours`) for + the duration of the Capacity Block reservation. For example, if a + Capacity Block starts at **08:55** and ends at **11:30**, the minutes + field would be **35**. + """ + zone_type: str | None = ... + """The type of zone where the Capacity Block offering is available.""" + +class CapacityBlockResourceState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + EXPIRED = "expired" + UNAVAILABLE = "unavailable" + CANCELLED = "cancelled" + FAILED = "failed" + SCHEDULED = "scheduled" + PAYMENT_PENDING = "payment-pending" + PAYMENT_FAILED = "payment-failed" + +@dataclass(kw_only=True) +class CapacityBlockStatus(_SerdeShape): + """Describes the availability of capacity for a Capacity Block.""" + + capacity_block_id: str | None = ... + """The ID of the Capacity Block.""" + interconnect_status: str | None = ... + """ + The status of the high-bandwidth accelerator interconnect. Possible + states include: + + - `ok` the accelerator interconnect is healthy. + + - `impaired` - accelerator interconnect communication is impaired. + + - `insufficient-data` - insufficient data to determine accelerator + interconnect status. + """ + total_capacity: int | None = ... + """ + The combined amount of `Available` and `Unavailable` capacity in the + Capacity Block. + """ + total_available_capacity: int | None = ... + """ + The remaining capacity. Indicates the number of resources that can be + launched into the Capacity Block. + """ + total_unavailable_capacity: int | None = ... + """ + The unavailable capacity. Indicates the instance capacity that is + unavailable for use due to a system status check failure. + """ + capacity_reservation_statuses: list[CapacityReservationStatus] | None = ... + """The availability of capacity for the Capacity Block reservations.""" + +@dataclass(kw_only=True) +class CapacityManagerCondition(_SerdeShape): + """ + Represents a filter condition for Capacity Manager queries. Contains + dimension-based filtering criteria used to narrow down metric data and + dimension results. + """ + + dimension_condition: DimensionCondition | None = ... + """ + The dimension-based condition that specifies how to filter the data + based on dimension values. + """ + +@dataclass(kw_only=True) +class CapacityManagerDataExportResponse(_SerdeShape): + """ + Contains information about a Capacity Manager data export configuration, + including export settings, delivery status, and recent export activity. + """ + + capacity_manager_data_export_id: str | None = ... + """The unique identifier for the data export configuration.""" + s3_bucket_name: str | None = ... + """The name of the S3 bucket where export files are delivered.""" + s3_bucket_prefix: str | None = ... + """The S3 key prefix used for organizing export files within the bucket.""" + schedule: str | None = ... + """The frequency at which data exports are generated.""" + output_format: str | None = ... + """The file format of the exported data.""" + create_time: datetime | None = ... + """The timestamp when the data export configuration was created.""" + latest_delivery_status: str | None = ... + """The status of the most recent export delivery.""" + latest_delivery_status_message: str | None = ... + """ + A message describing the status of the most recent export delivery, + including any error details if the delivery failed. + """ + latest_delivery_s3_location_uri: str | None = ... + """The S3 URI of the most recently delivered export file.""" + latest_delivery_time: datetime | None = ... + """The timestamp when the most recent export was delivered to S3.""" + tags: list[Tag] | None = ... + """The tags associated with the data export configuration.""" + +class CapacityManagerDataExportStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + IN_PROGRESS = "in-progress" + DELIVERED = "delivered" + FAILED = "failed" + +@dataclass(kw_only=True) +class CapacityManagerDimension(_SerdeShape): + """ + Represents dimension values for capacity metrics, including resource + identifiers, geographic information, and reservation details used for + grouping and filtering capacity data. + """ + + resource_region: str | None = ... + """The Amazon Web Services Region where the capacity resource is located.""" + availability_zone_id: str | None = ... + """ + The unique identifier of the Availability Zone where the capacity + resource is located. + """ + account_id: str | None = ... + """The Amazon Web Services account ID that owns the capacity resource.""" + account_name: str | None = ... + """ + The name of the Amazon Web Services account that owns the capacity + resource. This dimension is only available when Organizations access is + enabled for Capacity Manager. + """ + instance_family: str | None = ... + """The EC2 instance family of the capacity resource.""" + instance_type: str | None = ... + """The specific EC2 instance type of the capacity resource.""" + instance_platform: str | None = ... + """The platform or operating system of the instance.""" + reservation_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the capacity reservation. This + provides a unique identifier that can be used across Amazon Web Services + services to reference the specific reservation. + """ + reservation_id: str | None = ... + """The unique identifier of the capacity reservation.""" + reservation_type: str | None = ... + """The type of capacity reservation.""" + reservation_create_timestamp: datetime | None = ... + """ + The timestamp when the capacity reservation was originally created, in + milliseconds since epoch. This differs from the start timestamp as + reservations can be created before they become active. + """ + reservation_start_timestamp: datetime | None = ... + """ + The timestamp when the capacity reservation becomes active and available + for use, in milliseconds since epoch. This is when the reservation + begins providing capacity. + """ + reservation_end_timestamp: datetime | None = ... + """ + The timestamp when the capacity reservation expires and is no longer + available, in milliseconds since epoch. After this time, the reservation + will not provide any capacity. + """ + reservation_end_date_type: str | None = ... + """ + The type of end date for the capacity reservation. This indicates + whether the reservation has a fixed end date, is open-ended, or follows + a specific termination pattern. + """ + tenancy: str | None = ... + """ + The tenancy of the EC2 instances associated with this capacity + dimension. Valid values are 'default' for shared tenancy, + 'dedicated' for dedicated instances, or 'host' for dedicated hosts. + """ + reservation_state: str | None = ... + """The current state of the capacity reservation.""" + reservation_instance_match_criteria: str | None = ... + """ + The instance matching criteria for the capacity reservation, determining + how instances are matched to the reservation. + """ + reservation_unused_financial_owner: str | None = ... + """ + The Amazon Web Services account ID that is financially responsible for + unused capacity reservation costs. + """ + tags: list[CapacityManagerTagDimension] | None = ... + """ + The tags associated with the capacity resource, represented as key-value + pairs. Only tags that have been activated for monitoring via + `UpdateCapacityManagerMonitoredTagKeys` are included. + """ + +@dataclass(kw_only=True) +class CapacityManagerMonitoredTagKey(_SerdeShape): + """ + Describes a tag key that is being monitored by Capacity Manager, + including its activation status and the earliest available data point. + """ + + tag_key: str | None = ... + """The tag key being monitored.""" + status: str | None = ... + """ + The current status of the monitored tag key. Valid values are + `activating`, `activated`, `deactivating`, and `suspended`. + """ + status_message: str | None = ... + """ + A message providing additional details about the current status of the + monitored tag key. + """ + capacity_manager_provided: bool | None = ... + """ + Indicates whether this tag key is provided by Capacity Manager by + default, rather than being user-activated. + """ + earliest_datapoint_timestamp: datetime | None = ... + """ + The earliest timestamp from which tag data is available for queries, in + UTC ISO 8601 format. + """ + +class CapacityManagerMonitoredTagKeyStatus(UnknownEnumMixin, StrEnum): + ACTIVATING = "activating" + ACTIVATED = "activated" + DEACTIVATING = "deactivating" + SUSPENDED = "suspended" + +class CapacityManagerStatus(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class CapacityManagerSupportabilityScore(_SerdeShape): + """ + The supportability score for a single instance type and Availability + Zone combination. + """ + + instance_type: str | None = ... + """The instance type.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + score: str | None = ... + """ + How well the combination can support the requested capacity right now. + `high` means that the combination holds several times the requested + amount. `medium` means that it can cover the request with little to + spare. `low` means that it holds less than the requested amount. + """ + +@dataclass(kw_only=True) +class CapacityManagerTagDimension(_SerdeShape): + """ + A key-value pair representing a tag associated with a capacity resource + in Capacity Manager. + """ + + key: str | None = ... + """The tag key.""" + value: str | None = ... + """The tag value.""" + +@dataclass(kw_only=True) +class CapacityReservation(_SerdeShape): + """Describes a Capacity Reservation.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the Capacity + Reservation. + """ + capacity_reservation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Capacity Reservation.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone in which the capacity is reserved.""" + instance_type: str | None = ... + """ + The type of instance for which the Capacity Reservation reserves + capacity. + """ + instance_platform: str | None = ... + """ + The type of operating system for which the Capacity Reservation reserves + capacity. + """ + availability_zone: str | None = ... + """The Availability Zone in which the capacity is reserved.""" + tenancy: str | None = ... + """ + Indicates the tenancy of the Capacity Reservation. A Capacity + Reservation can have one of the following tenancy settings: + + - `default` - The Capacity Reservation is created on hardware that is + shared with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Reservation is created on single-tenant + hardware that is dedicated to a single Amazon Web Services account. + """ + total_instance_count: int | None = ... + """ + The total number of instances for which the Capacity Reservation + reserves capacity. + """ + available_instance_count: int | None = ... + """ + The remaining capacity. Indicates the number of instances that can be + launched in the Capacity Reservation. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the Capacity Reservation supports EBS-optimized + instances. This optimization provides dedicated throughput to Amazon EBS + and an optimized configuration stack to provide optimal I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS- optimized instance. + """ + ephemeral_storage: bool | None = ... + """*Deprecated.*""" + state: str | None = ... + """ + The current state of the Capacity Reservation. A Capacity Reservation + can be in one of the following states: + + - `active` - The capacity is available for use. + + - `expired` - The Capacity Reservation expired automatically at the date + and time specified in your reservation request. The reserved capacity + is no longer available for your use. + + - `cancelled` - The Capacity Reservation was canceled. The reserved + capacity is no longer available for your use. + + - `pending` - The Capacity Reservation request was successful but the + capacity provisioning is still pending. + + - `failed` - The Capacity Reservation request has failed. A request can + fail due to request parameters that are not valid, capacity + constraints, or instance limit constraints. You can view a failed + request for 60 minutes. + + - `scheduled` - (*Future-dated Capacity Reservations*) The future-dated + Capacity Reservation request was approved and the Capacity Reservation + is scheduled for delivery on the requested start date. + + - `payment-pending` - (*Capacity Blocks*) The upfront payment has not + been processed yet. + + - `payment-failed` - (*Capacity Blocks*) The upfront payment was not + processed in the 12-hour time frame. Your Capacity Block was released. + + - `assessing` - (*Future-dated Capacity Reservations*) Amazon EC2 is + assessing your request for a future-dated Capacity Reservation. + + - `delayed` - (*Future-dated Capacity Reservations*) Amazon EC2 + encountered a delay in provisioning the requested future-dated + Capacity Reservation. Amazon EC2 is unable to deliver the requested + capacity by the requested start date and time. + + - `unsupported` - (*Future-dated Capacity Reservations*) Amazon EC2 + can't support the future-dated Capacity Reservation request due to + capacity constraints. You can view unsupported requests for 30 days. + The Capacity Reservation will not be delivered. + + - `cancelling` - (*Future-dated Capacity Reservations*) The Capacity + Reservation is being cancelled. Capacity has been released but charges + continue for the commitment wind-down period. The reservation + transitions to `cancelled` when the wind-down completes. + """ + start_date: datetime | None = ... + """The date and time the Capacity Reservation was started.""" + end_date: datetime | None = ... + """ + The date and time the Capacity Reservation expires. When a Capacity + Reservation expires, the reserved capacity is released and you can no + longer launch instances into it. The Capacity Reservation's state + changes to `expired` when it reaches its end date and time. + """ + end_date_type: str | None = ... + """ + Indicates the way in which the Capacity Reservation ends. A Capacity + Reservation can have one of the following end types: + + - `unlimited` - The Capacity Reservation remains active until you + explicitly cancel it. + + - `limited` - The Capacity Reservation expires automatically at a + specified date and time. + """ + instance_match_criteria: str | None = ... + """ + Indicates the type of instance launches that the Capacity Reservation + accepts. The options include: + + - `open` - The Capacity Reservation accepts all instances that have + matching attributes (instance type, platform, and Availability Zone). + Instances that have matching attributes launch into the Capacity + Reservation automatically without specifying any additional + parameters. + + - `targeted` - The Capacity Reservation only accepts instances that have + matching attributes (instance type, platform, and Availability Zone), + and explicitly target the Capacity Reservation. This ensures that only + permitted instances can use the reserved capacity. + """ + create_date: datetime | None = ... + """The date and time the Capacity Reservation was created.""" + tags: list[Tag] | None = ... + """Any tags assigned to the Capacity Reservation.""" + outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Outpost on which the Capacity + Reservation was created. + """ + capacity_reservation_fleet_id: str | None = ... + """ + The ID of the Capacity Reservation Fleet to which the Capacity + Reservation belongs. Only valid for Capacity Reservations that were + created by a Capacity Reservation Fleet. + """ + placement_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the cluster placement group in which + the Capacity Reservation was created. For more information, see + [Capacity Reservations for cluster placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) + in the *Amazon EC2 User Guide*. + """ + capacity_allocations: list[CapacityAllocation] | None = ... + """Information about instance capacity usage.""" + reservation_type: str | None = ... + """The type of Capacity Reservation.""" + unused_reservation_billing_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account to which billing of the unused + capacity of the Capacity Reservation is assigned. + """ + commitment_info: CapacityReservationCommitmentInfo | None = ... + """ + Information about your commitment for a future-dated Capacity + Reservation. + """ + delivery_preference: str | None = ... + """ + The delivery method for a future-dated Capacity Reservation. + `incremental` indicates that the requested capacity is delivered in + addition to any running instances and reserved capacity that you have in + your account at the requested date and time. + """ + capacity_block_id: str | None = ... + """The ID of the Capacity Block.""" + interruptible: bool | None = ... + """ + Indicates whether this Capacity Reservation is interruptible, meaning + instances may be terminated when the owner reclaims capacity. + """ + interruptible_capacity_allocation: InterruptibleCapacityAllocation | None = ... + """ + Contains allocation details for interruptible reservations, including + current allocated instances and target instance counts within the + interruptibleCapacityAllocation object. + """ + interruption_info: InterruptionInfo | None = ... + """ + Information about the interruption configuration and association with + the source reservation for interruptible Capacity Reservations. + """ + adjustment_status: str | None = ... + """ + The status of the most recent modification to the Capacity Reservation. + A Capacity Reservation can have one of the following adjustment + statuses: + + - `requested` - The modification was requested and is being processed. + + - `applied` - The modification was applied to the Capacity Reservation. + + - `rejected` - The modification was not applied and the Capacity + Reservation keeps its existing configuration. + + This field is not returned if the Capacity Reservation has never been + modified. + """ + adjustment_details: CapacityReservationAdjustmentDetails | None = ... + """ + The configuration that the Capacity Reservation will have after the + requested adjustment is applied. + """ + original_start_date: datetime | None = ... + """ + The start date that you originally requested for the Capacity + Reservation, in the ISO8601 format in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). This value doesn't change when you push + out the start date. + """ + zero_size_preference: str | None = ... + """ + The zero-size preference configured for the interruptible Capacity + Reservation. A value of `retain` keeps the interruptible Capacity + Reservation active at zero capacity when you reduce its allocation to + zero. A value of `default` cancels the interruptible Capacity + Reservation when you reduce its allocation to zero. + """ + launch_status: str | None = ... + """ + Note: + Only supported for UltraServers. + + Indicates whether you can launch instances into the Capacity + Reservation. A Capacity Reservation can have the following launch + statuses: + + - `launchable` - You can launch instances into the Capacity Reservation. + + - `unlaunchable` - You can't launch instances into the Capacity + Reservation. For example, the Capacity Reservation is not active. + """ + +@dataclass(kw_only=True) +class CapacityReservationAdjustmentDetails(_SerdeShape): + """ + Describes the configuration that a Capacity Reservation will have after + a pending adjustment is applied. + """ + + start_date: datetime | None = ... + """ + The start date that the Capacity Reservation will have after the + adjustment. + """ + end_date: datetime | None = ... + """ + The end date that the Capacity Reservation will have after the + adjustment. + """ + commitment_end_date: datetime | None = ... + """ + The date and time at which the commitment duration will expire after the + adjustment. + """ + end_date_type: str | None = ... + """ + Indicates the way in which the Capacity Reservation will end after the + adjustment. Possible values are: + + - `unlimited` - The Capacity Reservation remains active until you + explicitly cancel it. + + - `limited` - The Capacity Reservation expires automatically at the date + and time given by `endDate`. + """ + commitment_duration: int | None = ... + """ + The commitment duration, in seconds, that the Capacity Reservation will + have after the adjustment. + """ + +class CapacityReservationAdjustmentStatus(UnknownEnumMixin, StrEnum): + REQUESTED = "requested" + APPLIED = "applied" + REJECTED = "rejected" + +@dataclass(kw_only=True) +class CapacityReservationBillingRequest(_SerdeShape): + """ + Information about a request to assign billing of the unused capacity of + a Capacity Reservation. + """ + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + requested_by: str | None = ... + """The ID of the Amazon Web Services account that initiated the request.""" + unused_reservation_billing_owner_id: str | None = ... + """The ID of the Amazon Web Services account to which the request was sent.""" + last_update_time: datetime | None = ... + """ + The date and time, in UTC time format, at which the request was + initiated. + """ + status: str | None = ... + """ + The status of the request. For more information, see [View billing + assignment requests for a shared Amazon EC2 Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/view-billing-transfers.html). + """ + status_message: str | None = ... + """Information about the status.""" + capacity_reservation_info: CapacityReservationInfo | None = ... + """Information about the Capacity Reservation.""" + +class CapacityReservationBillingRequestStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACCEPTED = "accepted" + REJECTED = "rejected" + CANCELLED = "cancelled" + REVOKED = "revoked" + EXPIRED = "expired" + +@dataclass(kw_only=True) +class CapacityReservationCancellationQuote(_SerdeShape): + """ + Describes a Capacity Reservation cancellation quote, which provides the + cancellation terms for cancelling a future-dated Capacity Reservation + during its commitment duration. + """ + + capacity_reservation_cancellation_quote_id: str | None = ... + """The ID of the cancellation quote.""" + capacity_reservation_id: str | None = ... + """ + The ID of the Capacity Reservation associated with the cancellation + quote. + """ + create_time: datetime | None = ... + """The date and time at which the cancellation quote was created.""" + expiration_time: datetime | None = ... + """The date and time at which the cancellation quote expires.""" + quote_state: str | None = ... + """ + The state of the cancellation quote. Possible values include `pending`, + `active`, and `expired`. + """ + current_configuration: CapacityReservationConfiguration | None = ... + """The current configuration of the Capacity Reservation.""" + cancellation_terms: list[CancellationTerms] | None = ... + """ + The cancellation terms associated with the quote, including the fee type + and charge details. + """ + tags: list[Tag] | None = ... + """The tags assigned to the cancellation quote.""" + +class CapacityReservationCancellationQuoteState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + EXPIRED = "expired" + +@dataclass(kw_only=True) +class CapacityReservationCommitmentInfo(_SerdeShape): + """ + Information about your commitment for a future-dated Capacity + Reservation. + """ + + committed_instance_count: int | None = ... + """ + The instance capacity that you committed to when you requested the + future-dated Capacity Reservation. + """ + commitment_end_date: datetime | None = ... + """ + The date and time at which the commitment duration expires, in the + ISO8601 format in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). You + can't decrease the instance count or cancel the Capacity Reservation + before this date and time. + """ + commitment_duration: int | None = ... + """ + The commitment duration, in seconds, for the future-dated Capacity + Reservation. This is the minimum duration for which you commit to having + the Capacity Reservation in the `active` state in your account after it + has been delivered. + """ + +@dataclass(kw_only=True) +class CapacityReservationConfiguration(_SerdeShape): + """Describes the configuration of a Capacity Reservation.""" + + instance_count: int | None = ... + """The number of instances in the Capacity Reservation.""" + reservation_state: str | None = ... + """The current state of the Capacity Reservation.""" + +class CapacityReservationDeliveryPreference(UnknownEnumMixin, StrEnum): + FIXED = "fixed" + INCREMENTAL = "incremental" + +@dataclass(kw_only=True) +class CapacityReservationFleet(_SerdeShape): + """Information about a Capacity Reservation Fleet.""" + + capacity_reservation_fleet_id: str | None = ... + """The ID of the Capacity Reservation Fleet.""" + capacity_reservation_fleet_arn: str | None = ... + """The ARN of the Capacity Reservation Fleet.""" + state: str | None = ... + """ + The state of the Capacity Reservation Fleet. Possible states include: + + - `submitted` - The Capacity Reservation Fleet request has been + submitted and Amazon Elastic Compute Cloud is preparing to create the + Capacity Reservations. + + - `modifying` - The Capacity Reservation Fleet is being modified. The + Fleet remains in this state until the modification is complete. + + - `active` - The Capacity Reservation Fleet has fulfilled its total + target capacity and it is attempting to maintain this capacity. The + Fleet remains in this state until it is modified or deleted. + + - `partially_fulfilled` - The Capacity Reservation Fleet has partially + fulfilled its total target capacity. There is insufficient Amazon EC2 + to fulfill the total target capacity. The Fleet is attempting to + asynchronously fulfill its total target capacity. + + - `expiring` - The Capacity Reservation Fleet has reach its end date and + it is in the process of expiring. One or more of its Capacity + reservations might still be active. + + - `expired` - The Capacity Reservation Fleet has reach its end date. The + Fleet and its Capacity Reservations are expired. The Fleet can't + create new Capacity Reservations. + + - `cancelling` - The Capacity Reservation Fleet is in the process of + being cancelled. One or more of its Capacity reservations might still + be active. + + - `cancelled` - The Capacity Reservation Fleet has been manually + cancelled. The Fleet and its Capacity Reservations are cancelled and + the Fleet can't create new Capacity Reservations. + + - `failed` - The Capacity Reservation Fleet failed to reserve capacity + for the specified instance types. + """ + total_target_capacity: int | None = ... + """ + The total number of capacity units for which the Capacity Reservation + Fleet reserves capacity. For more information, see [Total target + capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + in the *Amazon EC2 User Guide*. + """ + total_fulfilled_capacity: float | None = ... + """The capacity units that have been fulfilled.""" + tenancy: str | None = ... + """ + The tenancy of the Capacity Reservation Fleet. Tenancies include: + + - `default` - The Capacity Reservation Fleet is created on hardware that + is shared with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Reservation Fleet is created on + single-tenant hardware that is dedicated to a single Amazon Web + Services account. + """ + end_date: datetime | None = ... + """The date and time at which the Capacity Reservation Fleet expires.""" + create_time: datetime | None = ... + """The date and time at which the Capacity Reservation Fleet was created.""" + instance_match_criteria: str | None = ... + """ + Indicates the type of instance launches that the Capacity Reservation + Fleet accepts. All Capacity Reservations in the Fleet inherit this + instance matching criteria. + + Currently, Capacity Reservation Fleets support `open` instance matching + criteria only. This means that instances that have matching attributes + (instance type, platform, and Availability Zone) run in the Capacity + Reservations automatically. Instances do not need to explicitly target a + Capacity Reservation Fleet to use its reserved capacity. + """ + allocation_strategy: str | None = ... + """ + The strategy used by the Capacity Reservation Fleet to determine which + of the specified instance types to use. For more information, see For + more information, see [Allocation + strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) + in the *Amazon EC2 User Guide*. + """ + instance_type_specifications: list[FleetCapacityReservation] | None = ... + """Information about the instance types for which to reserve the capacity.""" + instance_requirements: InstanceRequirementsRequest | None = ... + """Reserved for internal use.""" + availability_zone: str | None = ... + """Reserved for internal use.""" + availability_zone_id: str | None = ... + """Reserved for internal use.""" + tags: list[Tag] | None = ... + """The tags assigned to the Capacity Reservation Fleet.""" + +@dataclass(kw_only=True) +class CapacityReservationFleetCancellationState(_SerdeShape): + """Describes a Capacity Reservation Fleet that was successfully cancelled.""" + + current_fleet_state: str | None = ... + """The current state of the Capacity Reservation Fleet.""" + previous_fleet_state: str | None = ... + """The previous state of the Capacity Reservation Fleet.""" + capacity_reservation_fleet_id: str | None = ... + """ + The ID of the Capacity Reservation Fleet that was successfully + cancelled. + """ + +class CapacityReservationFleetState(UnknownEnumMixin, StrEnum): + SUBMITTED = "submitted" + MODIFYING = "modifying" + ACTIVE = "active" + PARTIALLY_FULFILLED = "partially_fulfilled" + EXPIRING = "expiring" + EXPIRED = "expired" + CANCELLING = "cancelling" + CANCELLED = "cancelled" + FAILED = "failed" + +@dataclass(kw_only=True) +class CapacityReservationGroup(_SerdeShape): + """ + Describes a resource group to which a Capacity Reservation has been + added. + """ + + group_arn: str | None = ... + """The ARN of the resource group.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the resource group.""" + +@dataclass(kw_only=True) +class CapacityReservationInfo(_SerdeShape): + """Information about a Capacity Reservation.""" + + instance_type: str | None = ... + """The instance type for the Capacity Reservation.""" + availability_zone: str | None = ... + """The Availability Zone for the Capacity Reservation.""" + tenancy: str | None = ... + """The tenancy of the Capacity Reservation.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + +class CapacityReservationInstancePlatform(UnknownEnumMixin, StrEnum): + LINUX_UNIX = "Linux/UNIX" + RED_HAT_ENTERPRISE_LINUX = "Red Hat Enterprise Linux" + SUSE_LINUX = "SUSE Linux" + WINDOWS = "Windows" + WINDOWS_WITH_SQL_SERVER = "Windows with SQL Server" + WINDOWS_WITH_SQL_SERVER_ENTERPRISE = "Windows with SQL Server Enterprise" + WINDOWS_WITH_SQL_SERVER_STANDARD = "Windows with SQL Server Standard" + WINDOWS_WITH_SQL_SERVER_WEB = "Windows with SQL Server Web" + LINUX_WITH_SQL_SERVER_STANDARD = "Linux with SQL Server Standard" + LINUX_WITH_SQL_SERVER_WEB = "Linux with SQL Server Web" + LINUX_WITH_SQL_SERVER_ENTERPRISE = "Linux with SQL Server Enterprise" + RHEL_WITH_SQL_SERVER_STANDARD = "RHEL with SQL Server Standard" + RHEL_WITH_SQL_SERVER_ENTERPRISE = "RHEL with SQL Server Enterprise" + RHEL_WITH_SQL_SERVER_WEB = "RHEL with SQL Server Web" + RHEL_WITH_HA = "RHEL with HA" + RHEL_WITH_HA_AND_SQL_SERVER_STANDARD = "RHEL with HA and SQL Server Standard" + RHEL_WITH_HA_AND_SQL_SERVER_ENTERPRISE = "RHEL with HA and SQL Server Enterprise" + UBUNTU_PRO_LINUX = "Ubuntu Pro" + +class CapacityReservationLaunchStatus(UnknownEnumMixin, StrEnum): + LAUNCHABLE = "launchable" + UNLAUNCHABLE = "unlaunchable" + +@dataclass(kw_only=True) +class CapacityReservationModificationQuote(_SerdeShape): + """ + Describes a Capacity Reservation modification quote, which provides the + terms for changing the start date or the commitment of a future-dated + Capacity Reservation. + """ + + capacity_reservation_modification_quote_id: str | None = ... + """The ID of the modification quote.""" + capacity_reservation_id: str | None = ... + """ + The ID of the Capacity Reservation associated with the modification + quote. + """ + create_time: datetime | None = ... + """The date and time at which the modification quote was created.""" + expiration_time: datetime | None = ... + """The date and time at which the modification quote expires.""" + quote_state: str | None = ... + """ + The state of the modification quote itself. Possible values are: + + - `active` - The quote can still be used. + + - `expired` - The quote can no longer be used. A quote becomes `expired` + at its `expirationTime`. + """ + current_configuration: ModificationQuoteCurrentConfiguration | None = ... + """ + The configuration that the Capacity Reservation has at the time the + quote was generated. + """ + modification_terms: ModificationTerms | None = ... + """ + The terms of the modification, including the configuration that the + Capacity Reservation will have if you accept them by using + `ModifyCapacityReservation`. + """ + tags: list[Tag] | None = ... + """The tags assigned to the modification quote.""" + +class CapacityReservationModificationQuoteState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + EXPIRED = "expired" + +@dataclass(kw_only=True) +class CapacityReservationOptions(_SerdeShape): + """ + Describes the strategy for using unused Capacity Reservations for + fulfilling On-Demand capacity. + + Note: + This strategy can only be used if the EC2 Fleet is of type `instant`. + + For more information about Capacity Reservations, see [On-Demand + Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) + in the *Amazon EC2 User Guide*. For examples of using Capacity + Reservations in an EC2 Fleet, see [EC2 Fleet example + configurations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) + in the *Amazon EC2 User Guide*. + """ + + usage_strategy: str | None = ... + """ + Indicates whether to use unused Capacity Reservations for fulfilling + On-Demand capacity. + + If you specify `use-capacity-reservations-first`, the fleet uses unused + Capacity Reservations to fulfill On-Demand capacity up to the target + On-Demand capacity. If multiple instance pools have unused Capacity + Reservations, the On-Demand allocation strategy (`lowest-price` or + `prioritized`) is applied. If the number of unused Capacity Reservations + is less than the On-Demand target capacity, the remaining On-Demand + target capacity is launched according to the On-Demand allocation + strategy (`lowest-price` or `prioritized`). + + If you do not specify a value, the fleet fulfils the On-Demand capacity + according to the chosen On-Demand allocation strategy. + """ + +@dataclass(kw_only=True) +class CapacityReservationOptionsRequest(_SerdeShape): + """ + Describes the strategy for using unused Capacity Reservations for + fulfilling On-Demand capacity. + + Note: + This strategy can only be used if the EC2 Fleet is of type `instant`. + + For more information about Capacity Reservations, see [On-Demand + Capacity + Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) + in the *Amazon EC2 User Guide*. For examples of using Capacity + Reservations in an EC2 Fleet, see [EC2 Fleet example + configurations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) + in the *Amazon EC2 User Guide*. + """ + + usage_strategy: str | None = ... + """ + Indicates whether to use unused Capacity Reservations for fulfilling + On-Demand capacity. + + If you specify `use-capacity-reservations-first`, the fleet uses unused + Capacity Reservations to fulfill On-Demand capacity up to the target + On-Demand capacity. If multiple instance pools have unused Capacity + Reservations, the On-Demand allocation strategy (`lowest-price` or + `prioritized`) is applied. If the number of unused Capacity Reservations + is less than the On-Demand target capacity, the remaining On-Demand + target capacity is launched according to the On-Demand allocation + strategy (`lowest-price` or `prioritized`). + + If you do not specify a value, the fleet fulfils the On-Demand capacity + according to the chosen On-Demand allocation strategy. + """ + +class CapacityReservationPreference(UnknownEnumMixin, StrEnum): + CAPACITY_RESERVATIONS_ONLY = "capacity-reservations-only" + OPEN = "open" + NONE = "none" + +@dataclass(kw_only=True) +class CapacityReservationSpecification(_SerdeShape): + """ + Describes an instance's Capacity Reservation targeting option. + + Use the `CapacityReservationPreference` parameter to configure the + instance to run as an On-Demand Instance, to run in any `open` Capacity + Reservation that has matching attributes, or to run only in a Capacity + Reservation or Capacity Reservation group. Use the + `CapacityReservationTarget` parameter to explicitly target a specific + Capacity Reservation or a Capacity Reservation group. + + You can only specify `CapacityReservationPreference` and + `CapacityReservationTarget` if the `CapacityReservationPreference` is + `capacity-reservations-only`. + """ + + capacity_reservation_preference: str | None = ... + """ + Indicates the instance's Capacity Reservation preferences. Possible + preferences include: + + - `capacity-reservations-only` - The instance will only run in a + Capacity Reservation or Capacity Reservation group. If capacity isn't + available, the instance will fail to launch. + + - `open` - The instance can run in any `open` Capacity Reservation that + has matching attributes (instance type, platform, Availability Zone, + and tenancy). If capacity isn't available, the instance runs as an + On-Demand Instance. + + - `none` - The instance doesn't run in a Capacity Reservation even if + one is available. The instance runs as an On-Demand Instance. + """ + capacity_reservation_target: CapacityReservationTarget | None = ... + """ + Information about the target Capacity Reservation or Capacity + Reservation group. + """ + +@dataclass(kw_only=True) +class CapacityReservationSpecificationResponse(_SerdeShape): + """ + Describes the instance's Capacity Reservation targeting preferences. + The action returns the `capacityReservationPreference` response element + if the instance is configured to run in On-Demand capacity, or if it is + configured in run in any `open` Capacity Reservation that has matching + attributes (instance type, platform, Availability Zone). The action + returns the `capacityReservationTarget` response element if the instance + explicily targets a specific Capacity Reservation or Capacity + Reservation group. + """ + + capacity_reservation_preference: str | None = ... + """ + Describes the instance's Capacity Reservation preferences. Possible + preferences include: + + - `open` - The instance can run in any `open` Capacity Reservation that + has matching attributes (instance type, platform, Availability Zone). + + - `none` - The instance avoids running in a Capacity Reservation even if + one is available. The instance runs in On-Demand capacity. + """ + capacity_reservation_target: CapacityReservationTargetResponse | None = ... + """ + Information about the targeted Capacity Reservation or Capacity + Reservation group. + """ + +class CapacityReservationState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + EXPIRED = "expired" + CANCELLED = "cancelled" + PENDING = "pending" + FAILED = "failed" + SCHEDULED = "scheduled" + PAYMENT_PENDING = "payment-pending" + PAYMENT_FAILED = "payment-failed" + ASSESSING = "assessing" + DELAYED = "delayed" + UNSUPPORTED = "unsupported" + CANCELLING = "cancelling" + UNAVAILABLE = "unavailable" + +@dataclass(kw_only=True) +class CapacityReservationStatus(_SerdeShape): + """Describes the availability of capacity for a Capacity Reservation.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + total_capacity: int | None = ... + """ + The combined amount of `Available` and `Unavailable` capacity in the + Capacity Reservation. + """ + total_available_capacity: int | None = ... + """ + The remaining capacity. Indicates the amount of resources that can be + launched into the Capacity Reservation. + """ + total_unavailable_capacity: int | None = ... + """ + The used capacity. Indicates that the capacity is in use by resources + that are running in the Capacity Reservation. + """ + +@dataclass(kw_only=True) +class CapacityReservationTarget(_SerdeShape): + """Describes a target Capacity Reservation or Capacity Reservation group.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation in which to run the instance.""" + capacity_reservation_resource_group_arn: str | None = ... + """ + The ARN of the Capacity Reservation resource group in which to run the + instance. + """ + +@dataclass(kw_only=True) +class CapacityReservationTargetResponse(_SerdeShape): + """Describes a target Capacity Reservation or Capacity Reservation group.""" + + capacity_reservation_id: str | None = ... + """The ID of the targeted Capacity Reservation.""" + capacity_reservation_resource_group_arn: str | None = ... + """The ARN of the targeted Capacity Reservation group.""" + +class CapacityReservationTenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + DEDICATED = "dedicated" + +@dataclass(kw_only=True) +class CapacityReservationTopology(_SerdeShape): + """Information about the Capacity Reservation topology.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + capacity_block_id: str | None = ... + """ + The ID of the Capacity Block. This parameter is only supported for + UltraServer instances and identifies instances within the UltraServer + domain. + """ + state: str | None = ... + """ + The current state of the Capacity Reservation. For the list of possible + states, see + [DescribeCapacityReservations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCapacityReservations.html). + """ + instance_type: str | None = ... + """The instance type.""" + group_name: str | None = ... + """The name of the placement group that the Capacity Reservation is in.""" + network_nodes: list[str] | None = ... + """ + The network nodes. The nodes are hashed based on your account. Capacity + Reservations from different accounts running under the same server will + return a different hashed list of strings. + + The value is `null` or empty if: + + - The instance type is not supported. + + - The Capacity Reservation is in a state other than `active` or + `pending`. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone or Local Zone that the Capacity + Reservation is in. + """ + availability_zone: str | None = ... + """ + The name of the Availability Zone or Local Zone that the Capacity + Reservation is in. + """ + +class CapacityReservationType(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + CAPACITY_BLOCK = "capacity-block" + +class CapacityTenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + DEDICATED = "dedicated" + +class CapacityUnit(UnknownEnumMixin, StrEnum): + VCPUS = "vcpus" + INSTANCES = "instances" + +@dataclass(kw_only=True) +class CarrierGateway(_SerdeShape): + """Describes a carrier gateway.""" + + carrier_gateway_id: str | None = ... + """The ID of the carrier gateway.""" + vpc_id: str | None = ... + """The ID of the VPC associated with the carrier gateway.""" + state: str | None = ... + """The state of the carrier gateway.""" + owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the carrier gateway.""" + tags: list[Tag] | None = ... + """The tags assigned to the carrier gateway.""" + +class CarrierGatewayState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class CertificateAuthentication(_SerdeShape): + """Information about the client certificate used for authentication.""" + + client_root_certificate_chain: str | None = ... + """The ARN of the client certificate.""" + +@dataclass(kw_only=True) +class CertificateAuthenticationRequest(_SerdeShape): + """Information about the client certificate to be used for authentication.""" + + client_root_certificate_chain_arn: str | None = ... + """ + The ARN of the client certificate. The certificate must be signed by a + certificate authority (CA) and it must be provisioned in Certificate + Manager (ACM). + """ + +class ChronologicalOrder(UnknownEnumMixin, StrEnum): + """The chronological order for returning results.""" + + FORWARD = "forward" + REVERSE = "reverse" + +@dataclass(kw_only=True) +class CidrAuthorizationContext(_SerdeShape): + """ + Provides authorization for Amazon to bring a specific IP address range + to a specific Amazon Web Services account using bring your own IP + addresses (BYOIP). For more information, see [Configuring your BYOIP + address + range](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#prepare-for-byoip) + in the *Amazon EC2 User Guide*. + """ + + message: str | None = ... + """The plain-text authorization message for the prefix and account.""" + signature: str | None = ... + """The signed authorization message for the prefix and account.""" + +@dataclass(kw_only=True) +class CidrBlock(_SerdeShape): + """Describes an IPv4 CIDR block.""" + + cidr_block: str | None = ... + """The IPv4 CIDR block.""" + +@dataclass(kw_only=True) +class ClassicLinkDnsSupport(_SerdeShape): + """ + Note: + Deprecated. + + Describes the ClassicLink DNS support status of a VPC. + """ + + classic_link_dns_supported: bool | None = ... + """Indicates whether ClassicLink DNS support is enabled for the VPC.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class ClassicLinkInstance(_SerdeShape): + """ + Note: + Deprecated. + + Describes a linked EC2-Classic instance. + """ + + groups: list[GroupIdentifier] | None = ... + """The security groups.""" + instance_id: str | None = ... + """The ID of the instance.""" + tags: list[Tag] | None = ... + """Any tags assigned to the instance.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class ClassicLoadBalancer(_SerdeShape): + """Describes a Classic Load Balancer.""" + + name: str | None = ... + """The name of the load balancer.""" + +@dataclass(kw_only=True) +class ClassicLoadBalancersConfig(_SerdeShape): + """ + Describes the Classic Load Balancers to attach to a Spot Fleet. Spot + Fleet registers the running Spot Instances with these Classic Load + Balancers. + """ + + classic_load_balancers: list[ClassicLoadBalancer] | None = ... + """One or more Classic Load Balancers.""" + +@dataclass(kw_only=True) +class ClientCertificateRevocationListStatus(_SerdeShape): + """Describes the state of a client certificate revocation list.""" + + code: str | None = ... + """The state of the client certificate revocation list.""" + message: str | None = ... + """ + A message about the status of the client certificate revocation list, if + applicable. + """ + +class ClientCertificateRevocationListStatusCode(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + +@dataclass(kw_only=True) +class ClientConnectOptions(_SerdeShape): + """ + The options for managing connection authorization for new client + connections. + """ + + enabled: bool | None = ... + """ + Indicates whether client connect options are enabled. The default is + `false` (not enabled). + """ + lambda_function_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Lambda function used for + connection authorization. + """ + +@dataclass(kw_only=True) +class ClientConnectResponseOptions(_SerdeShape): + """ + The options for managing connection authorization for new client + connections. + """ + + enabled: bool | None = ... + """Indicates whether client connect options are enabled.""" + lambda_function_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Lambda function used for + connection authorization. + """ + status: ClientVpnEndpointAttributeStatus | None = ... + """The status of any updates to the client connect options.""" + +@dataclass(kw_only=True) +class ClientData(_SerdeShape): + """Describes the client-specific data.""" + + comment: str | None = ... + """A user-defined comment about the disk upload.""" + upload_end: datetime | None = ... + """The time that the disk upload ends.""" + upload_size: float | None = ... + """The size of the uploaded disk image, in GiB.""" + upload_start: datetime | None = ... + """The time that the disk upload starts.""" + +@dataclass(kw_only=True) +class ClientLoginBannerOptions(_SerdeShape): + """ + Options for enabling a customizable text banner that will be displayed + on Amazon Web Services provided clients when a VPN session is + established. + """ + + enabled: bool | None = ... + """ + Enable or disable a customizable text banner that will be displayed on + Amazon Web Services provided clients when a VPN session is established. + + Valid values: `true | false` + + Default value: `false` + """ + banner_text: str | None = ... + """ + Customizable text that will be displayed in a banner on Amazon Web + Services provided clients when a VPN session is established. UTF-8 + encoded characters only. Maximum of 1400 characters. + """ + +@dataclass(kw_only=True) +class ClientLoginBannerResponseOptions(_SerdeShape): + """ + Current state of options for customizable text banner that will be + displayed on Amazon Web Services provided clients when a VPN session is + established. + """ + + enabled: bool | None = ... + """ + Current state of text banner feature. + + Valid values: `true | false` + """ + banner_text: str | None = ... + """ + Customizable text that will be displayed in a banner on Amazon Web + Services provided clients when a VPN session is established. UTF-8 + encoded characters only. Maximum of 1400 characters. + """ + +@dataclass(kw_only=True) +class ClientRouteEnforcementOptions(_SerdeShape): + """ + Client Route Enforcement is a feature of Client VPN that helps enforce + administrator defined routes on devices connected through the VPN. This + feature helps improve your security posture by ensuring that network + traffic originating from a connected client is not inadvertently sent + outside the VPN tunnel. + + Client Route Enforcement works by monitoring the route table of a + connected device for routing policy changes to the VPN connection. If + the feature detects any VPN routing policy modifications, it will + automatically force an update to the route table, reverting it back to + the expected route configurations. + """ + + enforced: bool | None = ... + """ + Enable or disable Client Route Enforcement. The state can either be + `true` (enabled) or `false` (disabled). The default is `false`. + + Valid values: `true | false` + + Default value: `false` + """ + +@dataclass(kw_only=True) +class ClientRouteEnforcementResponseOptions(_SerdeShape): + """The current status of Client Route Enforcement.""" + + enforced: bool | None = ... + """ + Status of the client route enforcement feature, indicating whether + Client Route Enforcement is `true` (enabled) or `false` (disabled). + + Valid values: `true | false` + + Default value: `false` + """ + +@dataclass(kw_only=True) +class ClientVpnAuthentication(_SerdeShape): + """ + Describes the authentication methods used by a Client VPN endpoint. For + more information, see + [Authentication](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html) + in the *Client VPN Administrator Guide*. + """ + + type: str | None = ... + """The authentication type used.""" + active_directory: DirectoryServiceAuthentication | None = ... + """Information about the Active Directory, if applicable.""" + mutual_authentication: CertificateAuthentication | None = ... + """Information about the authentication certificates, if applicable.""" + federated_authentication: FederatedAuthentication | None = ... + """Information about the IAM SAML identity provider, if applicable.""" + +@dataclass(kw_only=True) +class ClientVpnAuthenticationRequest(_SerdeShape): + """ + Describes the authentication method to be used by a Client VPN endpoint. + For more information, see + [Authentication](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication) + in the *Client VPN Administrator Guide*. + """ + + type: str | None = ... + """The type of client authentication to be used.""" + active_directory: DirectoryServiceAuthenticationRequest | None = ... + """ + Information about the Active Directory to be used, if applicable. You + must provide this information if **Type** is + `directory-service-authentication`. + """ + mutual_authentication: CertificateAuthenticationRequest | None = ... + """ + Information about the authentication certificates to be used, if + applicable. You must provide this information if **Type** is + `certificate-authentication`. + """ + federated_authentication: FederatedAuthenticationRequest | None = ... + """ + Information about the IAM SAML identity provider to be used, if + applicable. You must provide this information if **Type** is + `federated-authentication`. + """ + +class ClientVpnAuthenticationType(UnknownEnumMixin, StrEnum): + CERTIFICATE_AUTHENTICATION = "certificate-authentication" + DIRECTORY_SERVICE_AUTHENTICATION = "directory-service-authentication" + FEDERATED_AUTHENTICATION = "federated-authentication" + +class ClientVpnAuthorizationPolicyShadowMode(UnknownEnumMixin, StrEnum): + """ + Indicates whether the authorization policy for a Client VPN endpoint is + evaluated in shadow mode. Possible values include: + + - `enabled` - The authorization policy is evaluated and the results are + logged, but access is not enforced. + + - `disabled` - The authorization policy is enforced. + """ + + ENABLED = "enabled" + DISABLED = "disabled" + +class ClientVpnAuthorizationPolicyStatus(UnknownEnumMixin, StrEnum): + """ + Describes the state of an authorization policy for a Client VPN + endpoint. Possible states include: + + - `creating` - The authorization policy is being created. + + - `updating` - The authorization policy is being updated. + + - `active` - The authorization policy has been applied to the Client VPN + endpoint. + + - `failed` - The authorization policy could not be applied to the Client + VPN endpoint. + + - `deleting` - The authorization policy is being deleted. + """ + + CREATING = "creating" + UPDATING = "updating" + ACTIVE = "active" + FAILED = "failed" + DELETING = "deleting" + +@dataclass(kw_only=True) +class ClientVpnAuthorizationRuleStatus(_SerdeShape): + """Describes the state of an authorization rule.""" + + code: str | None = ... + """The state of the authorization rule.""" + message: str | None = ... + """A message about the status of the authorization rule, if applicable.""" + +class ClientVpnAuthorizationRuleStatusCode(UnknownEnumMixin, StrEnum): + AUTHORIZING = "authorizing" + ACTIVE = "active" + FAILED = "failed" + REVOKING = "revoking" + +@dataclass(kw_only=True) +class ClientVpnConnection(_SerdeShape): + """Describes a client connection.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint to which the client is connected.""" + timestamp: str | None = ... + """The current date and time.""" + connection_id: str | None = ... + """The ID of the client connection.""" + username: str | None = ... + """ + The username of the client who established the client connection. This + information is only provided if Active Directory client authentication + is used. + """ + connection_established_time: str | None = ... + """The date and time the client connection was established.""" + ingress_bytes: str | None = ... + """The number of bytes sent by the client.""" + egress_bytes: str | None = ... + """The number of bytes received by the client.""" + ingress_packets: str | None = ... + """The number of packets sent by the client.""" + egress_packets: str | None = ... + """The number of packets received by the client.""" + client_ip: str | None = ... + """The IP address of the client.""" + client_ipv6_address: str | None = ... + """ + The IPv6 address assigned to the client connection when using a + dual-stack Client VPN endpoint. This field is only populated when the + endpoint is configured for dual-stack addressing, and the client is + using IPv6 for connectivity. + """ + common_name: str | None = ... + """ + The common name associated with the client. This is either the name of + the client certificate, or the Active Directory user name. + """ + status: ClientVpnConnectionStatus | None = ... + """The current state of the client connection.""" + connection_end_time: str | None = ... + """The date and time the client connection was terminated.""" + posture_compliance_statuses: list[str] | None = ... + """ + The statuses returned by the client connect handler for posture + compliance, if applicable. + """ + authorization_policy_last_evaluated_time: str | None = ... + """ + The date and time the authorization policy was last evaluated for the + client connection, if applicable. + """ + +@dataclass(kw_only=True) +class ClientVpnConnectionStatus(_SerdeShape): + """Describes the status of a client connection.""" + + code: str | None = ... + """The state of the client connection.""" + message: str | None = ... + """A message about the status of the client connection, if applicable.""" + +class ClientVpnConnectionStatusCode(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + FAILED_TO_TERMINATE = "failed-to-terminate" + TERMINATING = "terminating" + TERMINATED = "terminated" + +class ClientVpnDeviceTrustProviderType(UnknownEnumMixin, StrEnum): + CROWDSTRIKE = "crowdstrike" + JAMF = "jamf" + JUMPCLOUD = "jumpcloud" + +@dataclass(kw_only=True) +class ClientVpnEndpoint(_SerdeShape): + """Describes a Client VPN endpoint.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + description: str | None = ... + """A brief description of the endpoint.""" + status: ClientVpnEndpointStatus | None = ... + """The current state of the Client VPN endpoint.""" + creation_time: str | None = ... + """The date and time the Client VPN endpoint was created.""" + deletion_time: str | None = ... + """The date and time the Client VPN endpoint was deleted, if applicable.""" + dns_name: str | None = ... + """ + The DNS name to be used by clients when connecting to the Client VPN + endpoint. + """ + client_cidr_block: str | None = ... + """ + The IPv4 address range, in CIDR notation, from which client IP addresses + are assigned. + """ + dns_servers: list[str] | None = ... + """Information about the DNS servers to be used for DNS resolution.""" + split_tunnel: bool | None = ... + """ + Indicates whether split-tunnel is enabled in the Client VPN endpoint. + + For information about split-tunnel VPN endpoints, see [Split-Tunnel + Client VPN + endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) + in the *Client VPN Administrator Guide*. + """ + vpn_protocol: str | None = ... + """The protocol used by the VPN session.""" + transport_protocol: str | None = ... + """The transport protocol used by the Client VPN endpoint.""" + vpn_port: int | None = ... + """The port number for the Client VPN endpoint.""" + associated_target_networks: list[AssociatedTargetNetwork] | None = ... + """ + Information about the associated target networks. A target network is a + subnet in a VPC. + """ + server_certificate_arn: str | None = ... + """The ARN of the server certificate.""" + authentication_options: list[ClientVpnAuthentication] | None = ... + """ + Information about the authentication method used by the Client VPN + endpoint. + """ + connection_log_options: ConnectionLogResponseOptions | None = ... + """ + Information about the client connection logging options for the Client + VPN endpoint. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the Client VPN endpoint.""" + security_group_ids: list[str] | None = ... + """The IDs of the security groups for the target network.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + self_service_portal_url: str | None = ... + """The URL of the self-service portal.""" + client_connect_options: ClientConnectResponseOptions | None = ... + """ + The options for managing connection authorization for new client + connections. + """ + session_timeout_hours: int | None = ... + """ + The maximum VPN session duration time in hours. + + Valid values: `8 | 10 | 12 | 24` + + Default value: `24` + """ + client_login_banner_options: ClientLoginBannerResponseOptions | None = ... + """ + Options for enabling a customizable text banner that will be displayed + on Amazon Web Services provided clients when a VPN session is + established. + """ + client_route_enforcement_options: ClientRouteEnforcementResponseOptions | None = ... + """ + Client route enforcement is a feature of the Client VPN service that + helps enforce administrator defined routes on devices connected through + the VPN. T his feature helps improve your security posture by ensuring + that network traffic originating from a connected client is not + inadvertently sent outside the VPN tunnel. + + Client route enforcement works by monitoring the route table of a + connected device for routing policy changes to the VPN connection. If + the feature detects any VPN routing policy modifications, it will + automatically force an update to the route table, reverting it back to + the expected route configurations. + """ + disconnect_on_session_timeout: bool | None = ... + """ + Indicates whether the client VPN session is disconnected after the + maximum `sessionTimeoutHours` is reached. If `true`, users are prompted + to reconnect client VPN. If `false`, client VPN attempts to reconnect + automatically. The default value is `true`. + """ + endpoint_ip_address_type: str | None = ... + """ + The IP address type of the Client VPN endpoint. Possible values are + `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, or + `dual-stack `for both IPv4 and IPv6 addressing. + """ + traffic_ip_address_type: str | None = ... + """ + The IP address type of the Client VPN endpoint. Possible values are + either `ipv4` for IPv4 addressing only, `ipv6` for IPv6 addressing only, + or `dual-stack` for both IPv4 and IPv6 addressing. + """ + transit_gateway_configuration: ( + TransitGatewayConfigurationDescribeEndpointStructure | None + ) = ... + """The Transit Gateway configuration for the Client VPN endpoint.""" + device_posture_options: DevicePostureResponseOptions | None = ... + """ + The device trust providers configured for the Client VPN endpoint, if + applicable. + """ + +@dataclass(kw_only=True) +class ClientVpnEndpointAttributeStatus(_SerdeShape): + """Describes the status of the Client VPN endpoint attribute.""" + + code: str | None = ... + """The status code.""" + message: str | None = ... + """The status message.""" + +class ClientVpnEndpointAttributeStatusCode(UnknownEnumMixin, StrEnum): + APPLYING = "applying" + APPLIED = "applied" + +@dataclass(kw_only=True) +class ClientVpnEndpointStatus(_SerdeShape): + """Describes the state of a Client VPN endpoint.""" + + code: str | None = ... + """ + The state of the Client VPN endpoint. Possible states include: + + - `pending-associate` - The Client VPN endpoint has been created but no + target networks have been associated. The Client VPN endpoint cannot + accept connections. + + - `available` - The Client VPN endpoint has been created and a target + network has been associated. The Client VPN endpoint can accept + connections. + + - `deleting` - The Client VPN endpoint is being deleted. The Client VPN + endpoint cannot accept connections. + + - `deleted` - The Client VPN endpoint has been deleted. The Client VPN + endpoint cannot accept connections. + + - `pending` - The Client VPN endpoint has been created with a Transit + Gateway configuration and is waiting for the Transit Gateway + attachment to be accepted. The Client VPN endpoint cannot accept + connections. + """ + message: str | None = ... + """A message about the status of the Client VPN endpoint.""" + +class ClientVpnEndpointStatusCode(UnknownEnumMixin, StrEnum): + PENDING_ASSOCIATE = "pending-associate" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + PENDING = "pending" + +@dataclass(kw_only=True) +class ClientVpnRoute(_SerdeShape): + """Information about a Client VPN endpoint route.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint with which the route is associated.""" + destination_cidr: str | None = ... + """The IPv4 address range, in CIDR notation, of the route destination.""" + target_subnet: str | None = ... + """The ID of the subnet through which traffic is routed.""" + type: str | None = ... + """The route type.""" + origin: str | None = ... + """ + Indicates how the route was associated with the Client VPN endpoint. + `associate` indicates that the route was automatically added when the + target network was associated with the Client VPN endpoint. `add-route` + indicates that the route was manually added using the + **CreateClientVpnRoute** action. + """ + status: ClientVpnRouteStatus | None = ... + """The current state of the route.""" + description: str | None = ... + """A brief description of the route.""" + transit_gateway_attachment_id: str | None = ... + """ + The ID of the Transit Gateway attachment, if the route targets a Transit + Gateway. + """ + +@dataclass(kw_only=True) +class ClientVpnRouteStatus(_SerdeShape): + """Describes the state of a Client VPN endpoint route.""" + + code: str | None = ... + """The state of the Client VPN endpoint route.""" + message: str | None = ... + """ + A message about the status of the Client VPN endpoint route, if + applicable. + """ + +class ClientVpnRouteStatusCode(UnknownEnumMixin, StrEnum): + CREATING = "creating" + ACTIVE = "active" + FAILED = "failed" + DELETING = "deleting" + +@dataclass(kw_only=True) +class ClientVpnTrustProvider(_SerdeShape): + """ + Information about a device trust provider configured for a Client VPN + endpoint. + """ + + trust_provider_type: str | None = ... + """ + The type of the device trust provider. Possible values include: + + - `crowdstrike` - CrowdStrike device trust provider. + + - `jamf` - Jamf device trust provider. + + - `jumpcloud` - JumpCloud device trust provider. + """ + tenant_id: str | None = ... + """The tenant ID associated with your device trust provider account.""" + public_signing_key_url: str | None = ... + """ + The URL of the public signing key that is used to verify the identity + token issued by the device trust provider. + """ + +@dataclass(kw_only=True) +class ClientVpnTrustProviderRequest(_SerdeShape): + """ + Describes a device trust provider to configure for a Client VPN + endpoint. + """ + + trust_provider_type: str | None = ... + """ + The type of the device trust provider. Possible values include: + + - `crowdstrike` - CrowdStrike device trust provider. + + - `jamf` - Jamf device trust provider. + + - `jumpcloud` - JumpCloud device trust provider. + """ + tenant_id: str | None = ... + """The tenant ID associated with your device trust provider account.""" + public_signing_key_url: str | None = ... + """ + The URL of the public signing key that is used to verify the identity + token issued by the device trust provider. + """ + +@dataclass(kw_only=True) +class CloudWatchLogOptions(_SerdeShape): + """Options for sending VPN tunnel logs to CloudWatch.""" + + log_enabled: bool | None = ... + """ + Status of VPN tunnel logging feature. Default value is `False`. + + Valid values: `True` | `False` + """ + log_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudWatch log group to send logs + to. + """ + log_output_format: str | None = ... + """ + Configured log format. Default format is `json`. + + Valid values: `json` | `text` + """ + bgp_log_enabled: bool | None = ... + """ + Indicates whether Border Gateway Protocol (BGP) logging is enabled for + the VPN connection. Default value is `False`. + + Valid values: `True` | `False` + """ + bgp_log_group_arn: str | None = ... + """The Amazon Resource Name (ARN) of the CloudWatch log group for BGP logs.""" + bgp_log_output_format: str | None = ... + """ + The output format for BGP logs sent to CloudWatch. Default format is + `json`. + + Valid values: `json` | `text` + """ + +@dataclass(kw_only=True) +class CloudWatchLogOptionsSpecification(_SerdeShape): + """Options for sending VPN tunnel logs to CloudWatch.""" + + log_enabled: bool | None = ... + """ + Enable or disable VPN tunnel logging feature. Default value is `False`. + + Valid values: `True` | `False` + """ + log_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudWatch log group to send logs + to. + """ + log_output_format: str | None = ... + """ + Set log format. Default format is `json`. + + Valid values: `json` | `text` + """ + bgp_log_enabled: bool | None = ... + """ + Specifies whether to enable BGP logging for the VPN connection. Default + value is `False`. + + Valid values: `True` | `False` + """ + bgp_log_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the CloudWatch log group where BGP + logs will be sent. + """ + bgp_log_output_format: str | None = ... + """ + The desired output format for BGP logs to be sent to CloudWatch. Default + format is `json`. + + Valid values: `json` | `text` + """ + +@dataclass(kw_only=True) +class CoipAddressUsage(_SerdeShape): + """Describes address usage for a customer-owned address pool.""" + + allocation_id: str | None = ... + """The allocation ID of the address.""" + aws_account_id: str | None = ... + """The Amazon Web Services account ID.""" + aws_service: str | None = ... + """The Amazon Web Services service.""" + co_ip: str | None = ... + """The customer-owned IP address.""" + +@dataclass(kw_only=True) +class CoipCidr(_SerdeShape): + """Information about a customer-owned IP address range.""" + + cidr: str | None = ... + """An address range in a customer-owned IP address space.""" + coip_pool_id: str | None = ... + """The ID of the address pool.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + +@dataclass(kw_only=True) +class CoipPool(_SerdeShape): + """Describes a customer-owned address pool.""" + + pool_id: str | None = ... + """The ID of the address pool.""" + pool_cidrs: list[str] | None = ... + """The address ranges of the address pool.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + tags: list[Tag] | None = ... + """The tags.""" + pool_arn: str | None = ... + """The ARN of the address pool.""" + +class Comparison(UnknownEnumMixin, StrEnum): + EQUALS = "equals" + IN_ = "in" + +@dataclass(kw_only=True) +class ConfirmProductInstanceInput(_SerdeShape): + """Dataclass for ConfirmProductInstanceInput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + product_code: str | None = ... + """The product code. This must be a product code that you own.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ConfirmProductInstanceOutput(_SerdeShape): + """Dataclass for ConfirmProductInstanceOutput structure.""" + + return_: bool | None = ... + """ + The return value of the request. Returns `true` if the specified product + code is owned by the requester and associated with the specified + instance. + """ + owner_id: str | None = ... + """ + The Amazon Web Services account ID of the instance owner. This is only + present if the product code is attached to the instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConnectionLogOptions(_SerdeShape): + """ + Describes the client connection logging options for the Client VPN + endpoint. + """ + + enabled: bool | None = ... + """Indicates whether connection logging is enabled.""" + cloudwatch_log_group: str | None = ... + """ + The name of the CloudWatch Logs log group. Required if connection + logging is enabled. + """ + cloudwatch_log_stream: str | None = ... + """ + The name of the CloudWatch Logs log stream to which the connection data + is published. + """ + include_authorization_policy_context: bool | None = ... + """ + Specifies whether to include the authorization policy evaluation context + in the connection logs for the Client VPN endpoint. + """ + +@dataclass(kw_only=True) +class ConnectionLogResponseOptions(_SerdeShape): + """ + Information about the client connection logging options for a Client VPN + endpoint. + """ + + enabled: bool | None = ... + """ + Indicates whether client connection logging is enabled for the Client + VPN endpoint. + """ + cloudwatch_log_group: str | None = ... + """ + The name of the Amazon CloudWatch Logs log group to which connection + logging data is published. + """ + cloudwatch_log_stream: str | None = ... + """ + The name of the Amazon CloudWatch Logs log stream to which connection + logging data is published. + """ + include_authorization_policy_context: bool | None = ... + """ + Specifies whether the authorization policy evaluation context is + included in the connection logs for the Client VPN endpoint. + """ + +@dataclass(kw_only=True) +class ConnectionNotification(_SerdeShape): + """ + Describes a connection notification for a VPC endpoint or VPC endpoint + service. + """ + + connection_notification_id: str | None = ... + """The ID of the notification.""" + service_id: str | None = ... + """The ID of the endpoint service.""" + vpc_endpoint_id: str | None = ... + """The ID of the VPC endpoint.""" + connection_notification_type: str | None = ... + """The type of notification.""" + connection_notification_arn: str | None = ... + """The ARN of the SNS topic for the notification.""" + connection_events: list[str] | None = ... + """ + The events for the notification. Valid values are `Accept`, `Connect`, + `Delete`, and `Reject`. + """ + connection_notification_state: str | None = ... + """The state of the notification.""" + service_region: str | None = ... + """The Region for the endpoint service.""" + +class ConnectionNotificationState(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class ConnectionNotificationType(UnknownEnumMixin, StrEnum): + TOPIC = "Topic" + +@dataclass(kw_only=True) +class ConnectionTrackingConfiguration(_SerdeShape): + """ + A security group connection tracking configuration that enables you to + set the idle timeout for connection tracking on an Elastic network + interface. For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + + tcp_established_timeout: int | None = ... + """ + Timeout (in seconds) for idle TCP connections in an established state. + Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for + Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all + other instance types (including P6e-GB200). Recommended: Less than + 432000 seconds. + """ + udp_stream_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows classified as streams which have + seen more than one request-response transaction. Min: 60 seconds. Max: + 180 seconds (3 minutes). Default: 180 seconds. + """ + udp_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows that have seen traffic only in a + single direction or a single request-response transaction. Min: 30 + seconds. Max: 60 seconds. Default: 30 seconds. + """ + +@dataclass(kw_only=True) +class ConnectionTrackingSpecification(_SerdeShape): + """ + A security group connection tracking specification that enables you to + set the idle timeout for connection tracking on an Elastic network + interface. For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + + tcp_established_timeout: int | None = ... + """ + Timeout (in seconds) for idle TCP connections in an established state. + Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for + Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all + other instance types (including P6e-GB200). Recommended: Less than + 432000 seconds. + """ + udp_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows that have seen traffic only in a + single direction or a single request-response transaction. Min: 30 + seconds. Max: 60 seconds. Default: 30 seconds. + """ + udp_stream_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows classified as streams which have + seen more than one request-response transaction. Min: 60 seconds. Max: + 180 seconds (3 minutes). Default: 180 seconds. + """ + +@dataclass(kw_only=True) +class ConnectionTrackingSpecificationRequest(_SerdeShape): + """ + A security group connection tracking specification request that enables + you to set the idle timeout for connection tracking on an Elastic + network interface. For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + + tcp_established_timeout: int | None = ... + """ + Timeout (in seconds) for idle TCP connections in an established state. + Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for + Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all + other instance types (including P6e-GB200). Recommended: Less than + 432000 seconds. + """ + udp_stream_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows classified as streams which have + seen more than one request-response transaction. Min: 60 seconds. Max: + 180 seconds (3 minutes). Default: 180 seconds. + """ + udp_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows that have seen traffic only in a + single direction or a single request-response transaction. Min: 30 + seconds. Max: 60 seconds. Default: 30 seconds. + """ + +@dataclass(kw_only=True) +class ConnectionTrackingSpecificationResponse(_SerdeShape): + """ + A security group connection tracking specification response that enables + you to set the idle timeout for connection tracking on an Elastic + network interface. For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + + tcp_established_timeout: int | None = ... + """ + Timeout (in seconds) for idle TCP connections in an established state. + Min: 60 seconds. Max: 432000 seconds (5 days). Default: 350 seconds for + Nitro v6 instance types (excluding P6e-GB200); 432000 seconds for all + other instance types (including P6e-GB200). Recommended: Less than + 432000 seconds. + """ + udp_stream_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows classified as streams which have + seen more than one request-response transaction. Min: 60 seconds. Max: + 180 seconds (3 minutes). Default: 180 seconds. + """ + udp_timeout: int | None = ... + """ + Timeout (in seconds) for idle UDP flows that have seen traffic only in a + single direction or a single request-response transaction. Min: 30 + seconds. Max: 60 seconds. Default: 30 seconds. + """ + +class ConnectivityType(UnknownEnumMixin, StrEnum): + PRIVATE = "private" + PUBLIC = "public" + +class ContainerFormat(UnknownEnumMixin, StrEnum): + OVA = "ova" + +@dataclass(kw_only=True) +class ConversionTask(_SerdeShape): + """Describes a conversion task.""" + + conversion_task_id: str | None = ... + """The ID of the conversion task.""" + expiration_time: str | None = ... + """ + The time when the task expires. If the upload isn't complete before the + expiration time, we automatically cancel the task. + """ + import_instance: ImportInstanceTaskDetails | None = ... + """ + If the task is for importing an instance, this contains information + about the import instance task. + """ + import_volume: ImportVolumeTaskDetails | None = ... + """ + If the task is for importing a volume, this contains information about + the import volume task. + """ + state: str | None = ... + """The state of the conversion task.""" + status_message: str | None = ... + """The status message related to the conversion task.""" + tags: list[Tag] | None = ... + """Any tags assigned to the task.""" + +class ConversionTaskState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + CANCELLING = "cancelling" + CANCELLED = "cancelled" + COMPLETED = "completed" + +@dataclass(kw_only=True) +class CopyFpgaImageInput(_SerdeShape): + """Dataclass for CopyFpgaImageInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + source_fpga_image_id: str | None = ... + """The ID of the source AFI.""" + description: str | None = ... + """The description for the new AFI.""" + name: str | None = ... + """The name for the new AFI. The default is the name of the source AFI.""" + source_region: str | None = ... + """The Region that contains the source AFI.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CopyFpgaImageOutput(_SerdeShape): + """Dataclass for CopyFpgaImageOutput structure.""" + + fpga_image_id: str | None = ... + """The ID of the new AFI.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyImageInput(_SerdeShape): + """Contains the parameters for CopyImage.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure idempotency of + the request. For more information, see [Ensuring idempotency in Amazon + EC2 API + requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) + in the *Amazon EC2 API Reference*. + """ + description: str | None = ... + """A description for the new AMI.""" + encrypted: bool | None = ... + """ + Specifies whether to encrypt the snapshots of the copied image. + + You can encrypt a copy of an unencrypted snapshot, but you cannot create + an unencrypted copy of an encrypted snapshot. The default KMS key for + Amazon EBS is used unless you specify a non-default Key Management + Service (KMS) KMS key using `KmsKeyId`. For more information, see [Use + encryption with EBS-backed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) + in the *Amazon EC2 User Guide*. + """ + kms_key_id: str | None = ... + """ + The identifier of the symmetric Key Management Service (KMS) KMS key to + use when creating encrypted volumes. If this parameter is not specified, + your Amazon Web Services managed KMS key for Amazon EBS is used. If you + specify a KMS key, you must also set the encrypted state to `true`. + + You can specify a KMS key using any of the following: + + - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + - Key alias. For example, alias/ExampleAlias. + + - Key ARN. For example, + arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + - Alias ARN. For example, + arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + + Amazon Web Services authenticates the KMS key asynchronously. Therefore, + if you specify an identifier that is not valid, the action can appear to + complete, but eventually fails. + + The specified KMS key must exist in the destination Region. + + Amazon EBS does not support asymmetric KMS keys. + """ + name: str | None = ... + """The name of the new AMI.""" + source_image_id: str | None = ... + """The ID of the AMI to copy.""" + source_region: str | None = ... + """The name of the Region that contains the AMI to copy.""" + destination_outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Outpost for the new AMI. + + Only specify this parameter when copying an AMI from an Amazon Web + Services Region to an Outpost. The AMI must be in the Region of the + destination Outpost. You can't copy an AMI from an Outpost to a Region, + from one Outpost to another, or within the same Outpost. + + For more information, see [Copy AMIs from an Amazon Web Services Region + to an + Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-amis) + in the *Amazon EBS User Guide*. + + Only one of `DestinationAvailabilityZone`, + `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be + specified. + """ + copy_image_tags: bool | None = ... + """ + Specifies whether to copy your user-defined AMI tags to the new AMI. + + The following tags are not be copied: + + - System tags (prefixed with `aws:`) + + - For public and shared AMIs, user-defined tags that are attached by + other Amazon Web Services accounts, except tags with the + `ec2:SharedTag/` prefix. For more information about tag sharing, see + [Sharing + tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#sharing-tags) + in the *Amazon EC2 User Guide*. + + Default: Your user-defined AMI tags are not copied. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the new AMI and new snapshots. You can tag the AMI, + the snapshots, or both. + + - To tag the new AMI, the value for `ResourceType` must be `image`. + + - To tag the new snapshots, the value for `ResourceType` must be + `snapshot`. The same tag is applied to all the new snapshots. + + If you specify other values for `ResourceType`, the request fails. + + To tag an AMI or snapshot after it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + snapshot_copy_completion_duration_minutes: int | None = ... + """ + Specify a completion duration, in 15 minute increments, to initiate a + time-based AMI copy. The specified completion duration applies to each + of the snapshots associated with the AMI. Each snapshot associated with + the AMI will be completed within the specified completion duration, with + copy throughput automatically adjusted for each snapshot based on its + size to meet the timing target. + + If you do not specify a value, the AMI copy operation is completed on a + best-effort basis. + + Note: + This parameter is not supported when copying an AMI to or from a Local + Zone, or to an Outpost. + + For more information, see [Time-based copies for Amazon EBS snapshots + and EBS-backed + AMIs](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html). + """ + destination_availability_zone: str | None = ... + """ + The Local Zone for the new AMI (for example, `cn-north-1-pkx-1a`). + + Only one of `DestinationAvailabilityZone`, + `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be + specified. + """ + destination_availability_zone_id: str | None = ... + """ + The ID of the Local Zone for the new AMI (for example, `cnn1-pkx1-az1`). + + Only one of `DestinationAvailabilityZone`, + `DestinationAvailabilityZoneId`, or `DestinationOutpostArn` can be + specified. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CopyImageOutput(_SerdeShape): + """Contains the output of CopyImage.""" + + image_id: str | None = ... + """The ID of the new AMI.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopySnapshotInput(_SerdeShape): + """Dataclass for CopySnapshotInput structure.""" + + description: str | None = ... + """A description for the EBS snapshot.""" + destination_outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Outpost to which to copy the + snapshot. + + Note: + Only supported when copying a snapshot to an Outpost. + + For more information, see [Copy snapshots from an Amazon Web Services + Region to an + Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#copy-snapshots) + in the *Amazon EBS User Guide*. + """ + destination_region: str | None = ... + """ + The destination Region to use in the `PresignedUrl` parameter of a + snapshot copy operation. This parameter is only valid for specifying the + destination Region in a `PresignedUrl` parameter, where it is required. + + The snapshot copy is sent to the regional endpoint that you sent the + HTTP request to (for example, `ec2.us-east-1.amazonaws.com`). With the + CLI, this is specified using the `--region` parameter or the default + Region in your Amazon Web Services configuration file. + """ + encrypted: bool | None = ... + """ + To encrypt a copy of an unencrypted snapshot if encryption by default is + not enabled, enable encryption using this parameter. Otherwise, omit + this parameter. Copies of encrypted snapshots are encrypted, even if you + omit this parameter and encryption by default is not enabled. You cannot + set this parameter to false. For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + """ + kms_key_id: str | None = ... + """ + The identifier of the KMS key to use for Amazon EBS encryption. If this + parameter is not specified, your KMS key for Amazon EBS is used. If + `KmsKeyId` is specified, the encrypted state must be `true`. + + You can specify the KMS key using any of the following: + + - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + - Key alias. For example, alias/ExampleAlias. + + - Key ARN. For example, + arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + - Alias ARN. For example, + arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + + Amazon Web Services authenticates the KMS key asynchronously. Therefore, + if you specify an ID, alias, or ARN that is not valid, the action can + appear to complete, but eventually fails. + """ + presigned_url: str | None = ... + """ + When you copy an encrypted source snapshot using the Amazon EC2 Query + API, you must supply a pre-signed URL. This parameter is optional for + unencrypted snapshots. For more information, see [Query + requests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html). + + The `PresignedUrl` should use the snapshot source endpoint, the + `CopySnapshot` action, and include the `SourceRegion`, + `SourceSnapshotId`, and `DestinationRegion` parameters. The + `PresignedUrl` must be signed using Amazon Web Services Signature + Version 4. Because EBS snapshots are stored in Amazon S3, the signing + algorithm for this parameter uses the same logic that is described in + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + in the *Amazon S3 API Reference*. An invalid or improperly signed + `PresignedUrl` will cause the copy operation to fail asynchronously, and + the snapshot will move to an `error` state. + """ + source_region: str | None = ... + """The ID of the Region that contains the snapshot to be copied.""" + source_snapshot_id: str | None = ... + """The ID of the EBS snapshot to copy.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the new snapshot.""" + completion_duration_minutes: int | None = ... + """ + Note: + Not supported when copying snapshots to or from Local Zones or Outposts. + + Specify a completion duration, in 15 minute increments, to initiate a + time-based snapshot copy. Time-based snapshot copy operations complete + within the specified duration. For more information, see [Time-based + copies](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html). + + If you do not specify a value, the snapshot copy operation is completed + on a best-effort basis. + """ + destination_availability_zone: str | None = ... + """ + The Local Zone, for example, `cn-north-1-pkx-1a` to which to copy the + snapshot. + + Note: + Only supported when copying a snapshot to a Local Zone. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CopySnapshotOutput(_SerdeShape): + """Dataclass for CopySnapshotOutput structure.""" + + tags: list[Tag] | None = ... + """Any tags applied to the new snapshot.""" + snapshot_id: str | None = ... + """The ID of the new snapshot.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CopyTagsFromSource(UnknownEnumMixin, StrEnum): + VOLUME = "volume" + +@dataclass(kw_only=True) +class CopyVolumesInput(_SerdeShape): + """Dataclass for CopyVolumesInput structure.""" + + source_volume_id: str | None = ... + """The ID of the source EBS volume to copy.""" + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) to provision for the + volume copy. Required for `io1` and `io2` volumes. Optional for `gp3` + volumes. Omit for all other volume types. Full provisioned IOPS + performance can be achieved only once the volume copy is fully + initialized. + + Valid ranges: + + - gp3: `3,000 `(*default*)` - 80,000` IOPS + + - io1: `100 - 64,000` IOPS + + - io2: `100 - 256,000` IOPS + + Note: + [Instances built on the Nitro + System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) + can support up to 256,000 IOPS. Other instances can support up to 32,000 + IOPS. + """ + size: int | None = ... + """ + The size of the volume copy, in GiBs. The size must be equal to or + greater than the size of the source volume. If not specified, the size + defaults to the size of the source volume. + + Maximum supported sizes: + + - gp2: `16,384` GiB + + - gp3: `65,536` GiB + + - io1: `16,384` GiB + + - io2: `65,536` GiB + + - st1 and sc1: `16,384` GiB + + - standard: `1024` GiB + """ + volume_type: str | None = ... + """ + The volume type for the volume copy. If not specified, the volume type + defaults to `gp2`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the volume copy during creation.""" + multi_attach_enabled: bool | None = ... + """ + Indicates whether to enable Amazon EBS Multi-Attach for the volume copy. + If you enable Multi-Attach, you can attach the volume to up to 16 Nitro + instances in the same Availability Zone simultaneously. Supported with + `io1` and `io2` volumes only. For more information, see [Amazon EBS + Multi-Attach](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html). + """ + throughput: int | None = ... + """ + The throughput to provision for the volume copy, in MiB/s. Supported for + `gp3` volumes only. Omit for all other volume types. Full provisioned + throughput performance can be achieved only once the volume copy is + fully initialized. + + Valid Range: `125 - 2000` MiB/s + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + encrypted: bool | None = ... + """ + Indicates whether to encrypt the volume copy. If the source volume is + encrypted, the service always encrypts the copy regardless of this + value. Set to `true` to encrypt a copy of an unencrypted source volume + during the copy operation. If you set `Encrypted` to `true` but do not + specify `KmsKeyId`, the service uses the default KMS key for EBS + encryption in your account. + """ + kms_key_id: str | None = ... + """ + The identifier of the KMS key to use for encryption of the volume copy. + Specify a symmetric encryption KMS key. You can specify a KMS key using + the key ID, key ARN, alias name, or alias ARN. If you set `Encrypted` to + `true` but do not specify this parameter, the service uses the default + KMS key for EBS encryption in your account. For cross-account volume + copies, this must be a KMS key in the calling account. + """ + +@dataclass(kw_only=True) +class CopyVolumesOutput(_SerdeShape): + """Dataclass for CopyVolumesOutput structure.""" + + volumes: list[Volume] | None = ... + """Information about the volume copy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CpuManufacturer(UnknownEnumMixin, StrEnum): + INTEL = "intel" + AMD = "amd" + AMAZON_WEB_SERVICES = "amazon-web-services" + APPLE = "apple" + +@dataclass(kw_only=True) +class CpuOptions(_SerdeShape): + """The CPU options for the instance.""" + + core_count: int | None = ... + """The number of CPU cores for the instance.""" + threads_per_core: int | None = ... + """The number of threads per CPU core.""" + amd_sev_snp: str | None = ... + """ + Indicates whether the instance is enabled for AMD SEV-SNP. For more + information, see [AMD + SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). + """ + nested_virtualization: str | None = ... + """Indicates whether the instance is enabled for nested virtualization.""" + +@dataclass(kw_only=True) +class CpuOptionsRequest(_SerdeShape): + """ + The CPU options for the instance. Both the core count and threads per + core must be specified in the request. + """ + + core_count: int | None = ... + """The number of CPU cores for the instance.""" + threads_per_core: int | None = ... + """ + The number of threads per CPU core. To disable multithreading for the + instance, specify a value of `1`. Otherwise, specify the default value + of `2`. + """ + amd_sev_snp: str | None = ... + """ + Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is + supported with M6a, R6a, and C6a instance types only. For more + information, see [AMD + SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). + """ + nested_virtualization: str | None = ... + """ + Indicates whether to enable the instance for nested virtualization. + Nested virtualization is supported only on 8th generation Intel-based + instance types (c8i, m8i, r8i, and their flex variants). When nested + virtualization is enabled, Virtual Secure Mode (VSM) is automatically + disabled for the instance. + """ + +@dataclass(kw_only=True) +class CpuPerformanceFactor(_SerdeShape): + """ + The CPU performance to consider, using an instance family as the + baseline reference. + """ + + references: list[PerformanceFactorReference] | None = ... + """ + Specify an instance family to use as the baseline reference for CPU + performance. All instance types that match your specified attributes + will be compared against the CPU performance of the referenced instance + family, regardless of CPU manufacturer or architecture differences. + + Note: + Currently, only one instance family can be specified in the list. + """ + +@dataclass(kw_only=True) +class CpuPerformanceFactorRequest(_SerdeShape): + """ + The CPU performance to consider, using an instance family as the + baseline reference. + """ + + references: list[PerformanceFactorReferenceRequest] | None = ... + """ + Specify an instance family to use as the baseline reference for CPU + performance. All instance types that match your specified attributes + will be compared against the CPU performance of the referenced instance + family, regardless of CPU manufacturer or architecture differences. + + Note: + Currently, only one instance family can be specified in the list. + """ + +@dataclass(kw_only=True) +class CreateApplicationStatusCheckInput(_SerdeShape): + """Dataclass for CreateApplicationStatusCheckInput structure.""" + + health_check_paths: list[HealthCheckPathRequestObject] | None = ... + """ + The health check paths to use for the application status check. Health + check paths define the network path from a source subnet to one or more + destination subnets for cross-Availability Zone or Availability Zone to + Local Zone health checking. If omitted, health checks are performed in + the same subnet as the instance. + """ + aggregation: str | None = ... + """ + The aggregation setting for the application status check. When set to + `included`, the result of this check contributes to the instance-level + application status reported by `DescribeApplicationStatus`. When set to + `excluded`, the check runs independently and does not affect the + instance-level status. Valid values: `included` | `excluded`. + """ + protocol: str | None = ... + """ + The protocol to use for the health check. Valid values: `http` | + `https`. + """ + port: int | None = ... + """The port to use for the health check. Valid values: 1 to 65535.""" + path: str | None = ... + """ + The URL path to use for the health check HTTP request (for example, + `/health` or `/status`). + """ + device_index: int | None = ... + """ + The index of the network device to use for the health check. The value + must be greater than or equal to 0. + """ + ip_version: str | None = ... + """ + The IP version to use for the health check. Valid values: `ipv4` and + `ipv6`. + """ + ip_scope: str | None = ... + """The IP scope to use for the health check. Valid value: `private`.""" + interval: int | None = ... + """The interval, in seconds, between health checks. Valid value: 60.""" + timeout: int | None = ... + """ + The amount of time, in seconds, to wait for a health check response + before considering it failed. Valid values: 1 to 30. The value must be + less than `Interval`. + """ + failure_threshold: int | None = ... + """ + The number of consecutive failed health checks before the application + status is considered impaired. The value must be greater than 0. + """ + success_threshold: int | None = ... + """ + The number of consecutive successful health checks before the + application status is considered healthy. The value must be greater than + 0. + """ + status_code_matcher: str | None = ... + """ + The HTTP status codes that indicate a successful health check response. + Specify a comma-separated list of individual status codes or ranges, for + example, `200,202,300-399`. For a range, the first value must be less + than the second value. Maximum length: 64 characters. Default: `200`. + """ + initialization_grace_period_seconds: int | None = ... + """ + The number of seconds to wait before starting health checks after an + instance is launched. Valid values: 1 to 600. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the application status check.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateApplicationStatusCheckOutput(_SerdeShape): + """Dataclass for CreateApplicationStatusCheckOutput structure.""" + + application_status_check: ApplicationStatusCheckResponseObject | None = ... + """Information about the application status check.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityManagerDataExportInput(_SerdeShape): + """Dataclass for CreateCapacityManagerDataExportInput structure.""" + + s3_bucket_name: str | None = ... + """ + The name of the S3 bucket where the capacity data export files will be + delivered. The bucket must exist and you must have write permissions to + it. + """ + s3_bucket_prefix: str | None = ... + """ + The S3 key prefix for the exported data files. This allows you to + organize exports in a specific folder structure within your bucket. If + not specified, files are placed at the bucket root. + """ + schedule: str | None = ... + """The frequency at which data exports are generated.""" + output_format: str | None = ... + """ + The file format for the exported data. Parquet format is recommended for + large datasets and better compression. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see Ensure + Idempotency. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the data export configuration. You can tag the + export for organization and cost tracking purposes. + """ + +@dataclass(kw_only=True) +class CreateCapacityManagerDataExportOutput(_SerdeShape): + """Dataclass for CreateCapacityManagerDataExportOutput structure.""" + + capacity_manager_data_export_id: str | None = ... + """ + The unique identifier for the created data export configuration. Use + this ID to reference the export in other API calls. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationBySplittingInput(_SerdeShape): + """Dataclass for CreateCapacityReservationBySplittingInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + source_capacity_reservation_id: str | None = ... + """ + The ID of the Capacity Reservation from which you want to split the + capacity. + """ + instance_count: int | None = ... + """The number of instances to split from the source Capacity Reservation.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the new Capacity Reservation.""" + +@dataclass(kw_only=True) +class CreateCapacityReservationBySplittingOutput(_SerdeShape): + """Dataclass for CreateCapacityReservationBySplittingOutput structure.""" + + source_capacity_reservation: CapacityReservation | None = ... + """Information about the source Capacity Reservation.""" + destination_capacity_reservation: CapacityReservation | None = ... + """Information about the destination Capacity Reservation.""" + instance_count: int | None = ... + """ + The number of instances in the new Capacity Reservation. The number of + instances in the source Capacity Reservation was reduced by this amount. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationCancellationQuoteInput(_SerdeShape): + """Dataclass for CreateCapacityReservationCancellationQuoteInput structure.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the cancellation quote.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationCancellationQuoteOutput(_SerdeShape): + """ + Dataclass for CreateCapacityReservationCancellationQuoteOutput + structure. + """ + + capacity_reservation_cancellation_quote: ( + CapacityReservationCancellationQuote | None + ) = ... + """Information about the Capacity Reservation cancellation quote.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationDateChangeQuoteInput(_SerdeShape): + """Dataclass for CreateCapacityReservationDateChangeQuoteInput structure.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + new_start_date: datetime | None = ... + """ + The requested new start date for the Capacity Reservation, in the + ISO8601 format in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). The + new start date must be later than the current start date and within the + cumulative 30-day pushout limit. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the date change quote.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationDateChangeQuoteOutput(_SerdeShape): + """Dataclass for CreateCapacityReservationDateChangeQuoteOutput structure.""" + + capacity_reservation_modification_quote: ( + CapacityReservationModificationQuote | None + ) = ... + """Information about the Capacity Reservation date change quote.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationFleetInput(_SerdeShape): + """Dataclass for CreateCapacityReservationFleetInput structure.""" + + allocation_strategy: str | None = ... + """ + The strategy used by the Capacity Reservation Fleet to determine which + of the specified instance types to use. Currently, only the + `prioritized` allocation strategy is supported. For more information, + see [Allocation + strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) + in the *Amazon EC2 User Guide*. + + Valid values: `prioritized` + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + instance_type_specifications: ( + list[ReservationFleetInstanceSpecification] | None + ) = ... + """Information about the instance types for which to reserve the capacity.""" + instance_requirements: InstanceRequirementsRequest | None = ... + """Reserved for internal use.""" + availability_zone: str | None = ... + """Reserved for internal use.""" + availability_zone_id: str | None = ... + """Reserved for internal use.""" + tenancy: str | None = ... + """ + Indicates the tenancy of the Capacity Reservation Fleet. All Capacity + Reservations in the Fleet inherit this tenancy. The Capacity Reservation + Fleet can have one of the following tenancy settings: + + - `default` - The Capacity Reservation Fleet is created on hardware that + is shared with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Reservations are created on single-tenant + hardware that is dedicated to a single Amazon Web Services account. + """ + total_target_capacity: int | None = ... + """ + The total number of capacity units to be reserved by the Capacity + Reservation Fleet. This value, together with the instance type weights + that you assign to each instance type used by the Fleet determine the + number of instances for which the Fleet reserves capacity. Both values + are based on units that make sense for your workload. For more + information, see [Total target + capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + in the *Amazon EC2 User Guide*. + """ + end_date: datetime | None = ... + """ + The date and time at which the Capacity Reservation Fleet expires. When + the Capacity Reservation Fleet expires, its state changes to `expired` + and all of the Capacity Reservations in the Fleet expire. + + The Capacity Reservation Fleet expires within an hour after the + specified time. For example, if you specify `5/31/2019`, `13:30:55`, the + Capacity Reservation Fleet is guaranteed to expire between `13:30:55` + and `14:30:55` on `5/31/2019`. + """ + instance_match_criteria: str | None = ... + """ + Indicates the type of instance launches that the Capacity Reservation + Fleet accepts. All Capacity Reservations in the Fleet inherit this + instance matching criteria. + + Currently, Capacity Reservation Fleets support `open` instance matching + criteria only. This means that instances that have matching attributes + (instance type, platform, and Availability Zone) run in the Capacity + Reservations automatically. Instances do not need to explicitly target a + Capacity Reservation Fleet to use its reserved capacity. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to assign to the Capacity Reservation Fleet. The tags are + automatically assigned to the Capacity Reservations in the Fleet. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationFleetOutput(_SerdeShape): + """Dataclass for CreateCapacityReservationFleetOutput structure.""" + + capacity_reservation_fleet_id: str | None = ... + """The ID of the Capacity Reservation Fleet.""" + state: str | None = ... + """The status of the Capacity Reservation Fleet.""" + total_target_capacity: int | None = ... + """ + The total number of capacity units for which the Capacity Reservation + Fleet reserves capacity. + """ + total_fulfilled_capacity: float | None = ... + """The requested capacity units that have been successfully reserved.""" + instance_match_criteria: str | None = ... + """The instance matching criteria for the Capacity Reservation Fleet.""" + allocation_strategy: str | None = ... + """The allocation strategy used by the Capacity Reservation Fleet.""" + create_time: datetime | None = ... + """The date and time at which the Capacity Reservation Fleet was created.""" + end_date: datetime | None = ... + """The date and time at which the Capacity Reservation Fleet expires.""" + tenancy: str | None = ... + """Indicates the tenancy of Capacity Reservation Fleet.""" + fleet_capacity_reservations: list[FleetCapacityReservation] | None = ... + """ + Information about the individual Capacity Reservations in the Capacity + Reservation Fleet. + """ + tags: list[Tag] | None = ... + """The tags assigned to the Capacity Reservation Fleet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationInput(_SerdeShape): + """Dataclass for CreateCapacityReservationInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + instance_type: str | None = ... + """ + The instance type for which to reserve capacity. + + Note: + You can request future-dated Capacity Reservations for instance types in + the C, M, R, I, T, and G instance families only. + + For more information, see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + """ + instance_platform: str | None = ... + """The type of operating system for which to reserve capacity.""" + availability_zone: str | None = ... + """The Availability Zone in which to create the Capacity Reservation.""" + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which to create the Capacity + Reservation. + """ + tenancy: str | None = ... + """ + Indicates the tenancy of the Capacity Reservation. A Capacity + Reservation can have one of the following tenancy settings: + + - `default` - The Capacity Reservation is created on hardware that is + shared with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Reservation is created on single-tenant + hardware that is dedicated to a single Amazon Web Services account. + """ + instance_count: int | None = ... + """ + The number of instances for which to reserve capacity. + + Note: + You can request future-dated Capacity Reservations for an instance count + with a minimum of 32 vCPUs. For example, if you request a future-dated + Capacity Reservation for `m5.xlarge` instances, you must request at + least 8 instances (*8 * m5.xlarge = 32 vCPUs*). + + Valid range: 1 - 1000 + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the Capacity Reservation supports EBS-optimized + instances. This optimization provides dedicated throughput to Amazon EBS + and an optimized configuration stack to provide optimal I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS- optimized instance. + """ + ephemeral_storage: bool | None = ... + """*Deprecated.*""" + end_date: datetime | None = ... + """ + The date and time at which the Capacity Reservation expires. When a + Capacity Reservation expires, the reserved capacity is released and you + can no longer launch instances into it. The Capacity Reservation's + state changes to `expired` when it reaches its end date and time. + + You must provide an `EndDate` value if `EndDateType` is `limited`. Omit + `EndDate` if `EndDateType` is `unlimited`. + + If the `EndDateType` is `limited`, the Capacity Reservation is cancelled + within an hour from the specified time. For example, if you specify + 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end + between 13:30:55 and 14:30:55 on 5/31/2019. + + If you are requesting a future-dated Capacity Reservation, you can't + specify an end date and time that is within the commitment duration. + """ + end_date_type: str | None = ... + """ + Indicates the way in which the Capacity Reservation ends. A Capacity + Reservation can have one of the following end types: + + - `unlimited` - The Capacity Reservation remains active until you + explicitly cancel it. Do not provide an `EndDate` if the `EndDateType` + is `unlimited`. + + - `limited` - The Capacity Reservation expires automatically at a + specified date and time. You must provide an `EndDate` value if the + `EndDateType` value is `limited`. + """ + instance_match_criteria: str | None = ... + """ + Indicates the type of instance launches that the Capacity Reservation + accepts. The options include: + + - `open` - The Capacity Reservation automatically matches all instances + that have matching attributes (instance type, platform, and + Availability Zone). Instances that have matching attributes run in the + Capacity Reservation automatically without specifying any additional + parameters. + + - `targeted` - The Capacity Reservation only accepts instances that have + matching attributes (instance type, platform, and Availability Zone), + and explicitly target the Capacity Reservation. This ensures that only + permitted instances can use the reserved capacity. + + Note: + If you are requesting a future-dated Capacity Reservation, you must + specify `targeted`. + + Default: `open` + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Capacity Reservation during launch.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + outpost_arn: str | None = ... + """ + Note: + Not supported for future-dated Capacity Reservations. + + The Amazon Resource Name (ARN) of the Outpost on which to create the + Capacity Reservation. + """ + placement_group_arn: str | None = ... + """ + Note: + Not supported for future-dated Capacity Reservations. + + The Amazon Resource Name (ARN) of the cluster placement group in which + to create the Capacity Reservation. For more information, see [Capacity + Reservations for cluster placement + groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) + in the *Amazon EC2 User Guide*. + """ + start_date: datetime | None = ... + """ + Note: + Required for future-dated Capacity Reservations only. To create a + Capacity Reservation for immediate use, omit this parameter. + + The date and time at which the future-dated Capacity Reservation should + become available for use, in the ISO8601 format in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + + You can request a future-dated Capacity Reservation between 5 and 120 + days in advance. + """ + commitment_duration: int | None = ... + """ + Note: + Required for future-dated Capacity Reservations only. To create a + Capacity Reservation for immediate use, omit this parameter. + + Specify a commitment duration, in seconds, for the future-dated Capacity + Reservation. + + The commitment duration is a minimum duration for which you commit to + having the future-dated Capacity Reservation in the `active` state in + your account after it has been delivered. + + For more information, see [Commitment + duration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-concepts.html#cr-commitment-duration). + """ + delivery_preference: str | None = ... + """ + Note: + Required for future-dated Capacity Reservations only. To create a + Capacity Reservation for immediate use, omit this parameter. + + Indicates that the requested capacity will be delivered in addition to + any running instances or reserved capacity that you have in your account + at the requested date and time. + + The only supported value is `incremental`. + """ + +@dataclass(kw_only=True) +class CreateCapacityReservationOutput(_SerdeShape): + """Dataclass for CreateCapacityReservationOutput structure.""" + + capacity_reservation: CapacityReservation | None = ... + """Information about the Capacity Reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCarrierGatewayInput(_SerdeShape): + """Dataclass for CreateCarrierGatewayInput structure.""" + + vpc_id: str | None = ... + """The ID of the VPC to associate with the carrier gateway.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to associate with the carrier gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateCarrierGatewayOutput(_SerdeShape): + """Dataclass for CreateCarrierGatewayOutput structure.""" + + carrier_gateway: CarrierGateway | None = ... + """Information about the carrier gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateClientVpnEndpointInput(_SerdeShape): + """Dataclass for CreateClientVpnEndpointInput structure.""" + + client_cidr_block: str | None = ... + """ + The IPv4 address range, in CIDR notation, from which to assign client IP + addresses. The address range cannot overlap with the local CIDR of the + VPC in which the associated subnet is located, or the routes that you + add manually. The address range cannot be changed after the Client VPN + endpoint has been created. Client CIDR range must have a size of at + least /22 and must not be greater than /12. + """ + server_certificate_arn: str | None = ... + """ + The ARN of the server certificate. For more information, see the + [Certificate Manager User + Guide](https://docs.aws.amazon.com/acm/latest/userguide/). + """ + authentication_options: list[ClientVpnAuthenticationRequest] | None = ... + """ + Information about the authentication method to be used to authenticate + clients. + """ + connection_log_options: ConnectionLogOptions | None = ... + """ + Information about the client connection logging options. + + If you enable client connection logging, data about client connections + is sent to a Cloudwatch Logs log stream. The following information is + logged: + + - Client connection requests + + - Client connection results (successful and unsuccessful) + + - Reasons for unsuccessful client connection requests + + - Client connection termination time + """ + dns_servers: list[str] | None = ... + """ + Information about the DNS servers to be used for DNS resolution. A + Client VPN endpoint can have up to two DNS servers. If no DNS server is + specified, the DNS address configured on the device is used for the DNS + server. + """ + transport_protocol: str | None = ... + """ + The transport protocol to be used by the VPN session. + + Default value: `udp` + """ + vpn_port: int | None = ... + """ + The port number to assign to the Client VPN endpoint for TCP and UDP + traffic. + + Valid Values: `443` | `1194` + + Default Value: `443` + """ + description: str | None = ... + """A brief description of the Client VPN endpoint.""" + split_tunnel: bool | None = ... + """ + Indicates whether split-tunnel is enabled on the Client VPN endpoint. + + By default, split-tunnel on a VPN endpoint is disabled. + + For information about split-tunnel VPN endpoints, see [Split-tunnel + Client VPN + endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) + in the *Client VPN Administrator Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Client VPN endpoint during creation.""" + security_group_ids: list[str] | None = ... + """ + The IDs of one or more security groups to apply to the target network. + You must also specify the ID of the VPC that contains the security + groups. + """ + vpc_id: str | None = ... + """ + The ID of the VPC to associate with the Client VPN endpoint. If no + security group IDs are specified in the request, the default security + group for the VPC is applied. + """ + self_service_portal: str | None = ... + """ + Specify whether to enable the self-service portal for the Client VPN + endpoint. + + Default Value: `enabled` + """ + client_connect_options: ClientConnectOptions | None = ... + """ + The options for managing connection authorization for new client + connections. + """ + session_timeout_hours: int | None = ... + """ + The maximum VPN session duration time in hours. + + Valid values: `8 | 10 | 12 | 24` + + Default value: `24` + """ + client_login_banner_options: ClientLoginBannerOptions | None = ... + """ + Options for enabling a customizable text banner that will be displayed + on Amazon Web Services provided clients when a VPN session is + established. + """ + client_route_enforcement_options: ClientRouteEnforcementOptions | None = ... + """ + Client route enforcement is a feature of the Client VPN service that + helps enforce administrator defined routes on devices connected through + the VPN. T his feature helps improve your security posture by ensuring + that network traffic originating from a connected client is not + inadvertently sent outside the VPN tunnel. + + Client route enforcement works by monitoring the route table of a + connected device for routing policy changes to the VPN connection. If + the feature detects any VPN routing policy modifications, it will + automatically force an update to the route table, reverting it back to + the expected route configurations. + """ + disconnect_on_session_timeout: bool | None = ... + """ + Indicates whether the client VPN session is disconnected after the + maximum timeout specified in `SessionTimeoutHours` is reached. If + `true`, users are prompted to reconnect client VPN. If `false`, client + VPN attempts to reconnect automatically. The default value is `true`. + """ + endpoint_ip_address_type: str | None = ... + """ + The IP address type for the Client VPN endpoint. Valid values are `ipv4` + (default) for IPv4 addressing only, `ipv6` for IPv6 addressing only, or + `dual-stack` for both IPv4 and IPv6 addressing. When set to + `dual-stack,` clients can connect to the endpoint using either IPv4 or + IPv6 addresses.. + """ + traffic_ip_address_type: str | None = ... + """ + The IP address type for traffic within the Client VPN tunnel. Valid + values are `ipv4` (default) for IPv4 traffic only, `ipv6` for IPv6 + addressing only, or `dual-stack` for both IPv4 and IPv6 traffic. When + set to `dual-stack`, clients can access both IPv4 and IPv6 resources + through the VPN . + """ + transit_gateway_configuration: ( + TransitGatewayConfigurationInputStructure | None + ) = ... + """ + The Transit Gateway configuration for the Client VPN endpoint. Use this + parameter to associate the endpoint with a Transit Gateway instead of a + VPC. You cannot specify both `TransitGatewayConfiguration` and + `VpcId`/`SecurityGroupIds`. + """ + device_posture_options: DevicePostureOptions | None = ... + """ + The device posture options for the Client VPN endpoint. Use this + parameter to specify the device trust providers that the endpoint uses + to evaluate the security posture of connecting devices. + """ + +@dataclass(kw_only=True) +class CreateClientVpnEndpointOutput(_SerdeShape): + """Dataclass for CreateClientVpnEndpointOutput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + status: ClientVpnEndpointStatus | None = ... + """The current state of the Client VPN endpoint.""" + dns_name: str | None = ... + """The DNS name to be used by clients when establishing their VPN session.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateClientVpnRouteInput(_SerdeShape): + """Dataclass for CreateClientVpnRouteInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint to which to add the route.""" + destination_cidr_block: str | None = ... + """ + The IPv4 address range, in CIDR notation, of the route destination. For + example: + + - To add a route for Internet access, enter `0.0.0.0/0` + + - To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR + range + + - To add a route for an on-premises network, enter the Amazon Web + Services Site-to-Site VPN connection's IPv4 CIDR range + + - To add a route for the local network, enter the client CIDR range + """ + target_vpc_subnet_id: str | None = ... + """ + The ID of the subnet through which you want to route traffic. The + specified subnet must be an existing target network of the Client VPN + endpoint. + + Alternatively, if you're adding a route for the local network, specify + `local`. + + This parameter is required for VPC-based Client VPN endpoints. For + Transit Gateway-based endpoints, this parameter is not required. + """ + description: str | None = ... + """A brief description of the route.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateClientVpnRouteOutput(_SerdeShape): + """Dataclass for CreateClientVpnRouteOutput structure.""" + + status: ClientVpnRouteStatus | None = ... + """The current state of the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCoipCidrInput(_SerdeShape): + """Dataclass for CreateCoipCidrInput structure.""" + + cidr: str | None = ... + """A customer-owned IP address range to create.""" + coip_pool_id: str | None = ... + """The ID of the address pool.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCoipCidrOutput(_SerdeShape): + """Dataclass for CreateCoipCidrOutput structure.""" + + coip_cidr: CoipCidr | None = ... + """Information about a range of customer-owned IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCoipPoolInput(_SerdeShape): + """Dataclass for CreateCoipPoolInput structure.""" + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the CoIP address pool.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCoipPoolOutput(_SerdeShape): + """Dataclass for CreateCoipPoolOutput structure.""" + + coip_pool: CoipPool | None = ... + """Information about the CoIP address pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCustomerGatewayInput(_SerdeShape): + """Contains the parameters for CreateCustomerGateway.""" + + bgp_asn: int | None = ... + """ + For customer gateway devices that support BGP, specify the device's + ASN. You must specify either `BgpAsn` or `BgpAsnExtended` when creating + the customer gateway. If the ASN is larger than `2,147,483,647`, you + must use `BgpAsnExtended`. + + Default: 65000 + + Valid values: `1` to `2,147,483,647` + """ + public_ip: str | None = ... + """ + *This member has been deprecated.* The Internet-routable IP address for + the customer gateway's outside interface. The address must be static. + """ + certificate_arn: str | None = ... + """The Amazon Resource Name (ARN) for the customer gateway certificate.""" + type: str | None = ... + """ + The type of VPN connection that this customer gateway supports + (`ipsec.1`). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the customer gateway.""" + device_name: str | None = ... + """ + A name for the customer gateway device. + + Length Constraints: Up to 255 characters. + """ + ip_address: str | None = ... + """ + The IP address for the customer gateway device's outside interface. The + address must be static. If `OutsideIpAddressType` in your VPN connection + options is set to `PrivateIpv4`, you can use an RFC6598 or RFC1918 + private IPv4 address. If `OutsideIpAddressType` is set to `Ipv6`, you + can use an IPv6 address. + """ + bgp_asn_extended: int | None = ... + """ + For customer gateway devices that support BGP, specify the device's + ASN. You must specify either `BgpAsn` or `BgpAsnExtended` when creating + the customer gateway. If the ASN is larger than `2,147,483,647`, you + must use `BgpAsnExtended`. + + Valid values: `2,147,483,648` to `4,294,967,295` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateCustomerGatewayOutput(_SerdeShape): + """Contains the output of CreateCustomerGateway.""" + + customer_gateway: CustomerGateway | None = ... + """Information about the customer gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDefaultSubnetInput(_SerdeShape): + """Dataclass for CreateDefaultSubnetInput structure.""" + + availability_zone: str | None = ... + """ + The Availability Zone in which to create the default subnet. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + ipv6_native: bool | None = ... + """ + Indicates whether to create an IPv6 only subnet. If you already have a + default subnet for this Availability Zone, you must delete it before you + can create an IPv6 only subnet. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + +@dataclass(kw_only=True) +class CreateDefaultSubnetOutput(_SerdeShape): + """Dataclass for CreateDefaultSubnetOutput structure.""" + + subnet: Subnet | None = ... + """Information about the subnet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDefaultVpcInput(_SerdeShape): + """Dataclass for CreateDefaultVpcInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateDefaultVpcOutput(_SerdeShape): + """Dataclass for CreateDefaultVpcOutput structure.""" + + vpc: Vpc | None = ... + """Information about the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDelegateMacVolumeOwnershipTaskInput(_SerdeShape): + """Dataclass for CreateDelegateMacVolumeOwnershipTaskInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the Amazon EC2 Mac instance.""" + mac_credentials: str | None = ... + """ + Specifies the following credentials: + + - **Internal disk administrative user** + + - **Username** - Only the default administrative user + (`aws-managed-user`) is supported and it is used by default. You + can't specify a different administrative user. + + - **Password** - If you did not change the default password for + `aws-managed-user`, specify the default password, which is *blank*. + Otherwise, specify your password. + + - **Amazon EBS root volume administrative user** + + - **Username** - If you did not change the default administrative + user, specify `ec2-user`. Otherwise, specify the username for your + administrative user. + + - **Password** - Specify the password for the administrative user. + + The credentials must be specified in the following JSON format: + + `{ "internalDiskPassword":"`*`internal-disk-admin_password`*`", "rootVolumeUsername":"`*`root-volume-admin_username`*`", "rootVolumepassword":"`*`root-volume-admin_password`*`" }` + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the volume ownership delegation task.""" + +@dataclass(kw_only=True) +class CreateDelegateMacVolumeOwnershipTaskOutput(_SerdeShape): + """Dataclass for CreateDelegateMacVolumeOwnershipTaskOutput structure.""" + + mac_modification_task: MacModificationTask | None = ... + """Information about the volume ownership delegation task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDhcpOptionsInput(_SerdeShape): + """Dataclass for CreateDhcpOptionsInput structure.""" + + dhcp_configurations: list[NewDhcpConfiguration] | None = ... + """A DHCP configuration option.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the DHCP option.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateDhcpOptionsOutput(_SerdeShape): + """Dataclass for CreateDhcpOptionsOutput structure.""" + + dhcp_options: DhcpOptions | None = ... + """A set of DHCP options.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateEgressOnlyInternetGatewayInput(_SerdeShape): + """Dataclass for CreateEgressOnlyInternetGatewayInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """The ID of the VPC for which to create the egress-only internet gateway.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the egress-only internet gateway.""" + +@dataclass(kw_only=True) +class CreateEgressOnlyInternetGatewayOutput(_SerdeShape): + """Dataclass for CreateEgressOnlyInternetGatewayOutput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + egress_only_internet_gateway: EgressOnlyInternetGateway | None = ... + """Information about the egress-only internet gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFleetError(_SerdeShape): + """Describes the instances that could not be launched by the fleet.""" + + launch_template_and_overrides: LaunchTemplateAndOverridesResponse | None = ... + """ + The launch templates and overrides that were used for launching the + instances. The values that you specify in the Overrides replace the + values in the launch template. + """ + lifecycle: str | None = ... + """ + Indicates if the instance that could not be launched was a Spot, + On-Demand, Capacity Block for ML, or interruptible Capacity Reservation + instance. If you are using `ReservedCapacityOptions` with + `on-demand-capacity-reservation` in the `ReservationTypes` list, the + value can also be `on-demand-capacity-reservation`. + """ + error_code: str | None = ... + """ + The error code that indicates why the instance could not be launched. + For more information about error codes, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + error_message: str | None = ... + """ + The error message that describes why the instance could not be launched. + For more information about error messages, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + +@dataclass(kw_only=True) +class CreateFleetInput(_SerdeShape): + """Dataclass for CreateFleetInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. If you do not specify a client token, a + randomly generated token is used for the request to ensure idempotency. + + For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + spot_options: SpotOptionsRequest | None = ... + """Describes the configuration of Spot Instances in an EC2 Fleet.""" + on_demand_options: OnDemandOptionsRequest | None = ... + """Describes the configuration of On-Demand Instances in an EC2 Fleet.""" + reserved_capacity_options: ReservedCapacityOptionsRequest | None = ... + """ + Defines EC2 Fleet preferences for utilizing reserved capacity when + DefaultTargetCapacityType is set to `reserved-capacity`. + + Supported only for fleets of type `instant`. + """ + excess_capacity_termination_policy: str | None = ... + """ + Indicates whether running instances should be terminated if the total + target capacity of the EC2 Fleet is decreased below the current size of + the EC2 Fleet. + + Supported only for fleets of type `maintain`. + """ + launch_template_configs: list[FleetLaunchTemplateConfigRequest] | None = ... + """The configuration for the EC2 Fleet.""" + target_capacity_specification: TargetCapacitySpecificationRequest | None = ... + """The number of units to request.""" + terminate_instances_with_expiration: bool | None = ... + """ + Indicates whether running instances should be terminated when the EC2 + Fleet expires. + """ + type: str | None = ... + """ + The fleet type. The default value is `maintain`. + + - `maintain` - The EC2 Fleet places an asynchronous request for your + desired capacity, and continues to maintain your desired Spot capacity + by replenishing interrupted Spot Instances. + + - `request` - The EC2 Fleet places an asynchronous one-time request for + your desired capacity, but does submit Spot requests in alternative + capacity pools if Spot capacity is unavailable, and does not maintain + Spot capacity if Spot Instances are interrupted. + + - `instant` - The EC2 Fleet places a synchronous one-time request for + your desired capacity, and returns errors for any instances that could + not be launched. + + For more information, see [EC2 Fleet request + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) + in the *Amazon EC2 User Guide*. + """ + valid_from: datetime | None = ... + """ + The start date and time of the request, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). The default is to start fulfilling + the request immediately. + """ + valid_until: datetime | None = ... + """ + The end date and time of the request, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). At this point, no new EC2 Fleet + requests are placed or able to fulfill the request. If no value is + specified, the request remains until you cancel it. + """ + replace_unhealthy_instances: bool | None = ... + """ + Indicates whether EC2 Fleet should replace unhealthy Spot Instances. + Supported only for fleets of type `maintain`. For more information, see + [EC2 Fleet health + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) + in the *Amazon EC2 User Guide*. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key-value pair for tagging the EC2 Fleet request on creation. For + more information, see [Tag your + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources). + + If the fleet type is `instant`, specify a resource type of `fleet` to + tag the fleet, `instance` to tag the instances at launch, `volume` to + tag the volumes at launch, or `network-interface` to tag the network + interfaces at launch. + + If the fleet type is `maintain` or `request`, specify a resource type of + `fleet` to tag the fleet. You cannot specify a resource type of + `instance`, `volume`, or `network-interface`. To tag instances at + launch, specify the tags in a [launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template). + """ + context: str | None = ... + """Reserved.""" + +@dataclass(kw_only=True) +class CreateFleetInstance(_SerdeShape): + """Describes the instances that were launched by the fleet.""" + + launch_template_and_overrides: LaunchTemplateAndOverridesResponse | None = ... + """ + The launch templates and overrides that were used for launching the + instances. The values that you specify in the Overrides replace the + values in the launch template. + """ + lifecycle: str | None = ... + """ + Indicates if the instance that was launched is a Spot, On-Demand, + Capacity Block for ML, or interruptible Capacity Reservation instance. + """ + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + instance_type: str | None = ... + """The instance type.""" + platform: str | None = ... + """ + The value is `windows` for Windows instances in an EC2 Fleet. Otherwise, + the value is blank. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which the instance was launched. For + example, `use2-az1`. + + Supported only for fleets of type `instant`. + """ + availability_zone: str | None = ... + """ + The name of the Availability Zone in which the instance was launched. + For example, `us-east-2a`. + + Supported only for fleets of type `instant`. + """ + subnet_id: str | None = ... + """ + The ID of the subnet in which the instance was launched. + + Supported only for fleets of type `instant`. + """ + +@dataclass(kw_only=True) +class CreateFleetOutput(_SerdeShape): + """Dataclass for CreateFleetOutput structure.""" + + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + errors: list[CreateFleetError] | None = ... + """ + Information about the instances that could not be launched by the fleet. + Supported only for fleets of type `instant`. + """ + instances: list[CreateFleetInstance] | None = ... + """ + Information about the instances that were launched by the fleet. + Supported only for fleets of type `instant`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFlowLogsInput(_SerdeShape): + """Dataclass for CreateFlowLogsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + deliver_logs_permission_arn: str | None = ... + """ + The ARN of the IAM role that allows Amazon EC2 to publish flow logs to + the log destination. + + This parameter is required if the destination type is + `cloud-watch-logs`, or if the destination type is + `kinesis-data-firehose` and the delivery stream and the resources to + monitor are in different accounts. + """ + deliver_cross_account_role: str | None = ... + """ + The ARN of the IAM role that allows Amazon EC2 to publish flow logs + across accounts. + """ + log_group_name: str | None = ... + """ + The name of a new or existing CloudWatch Logs log group where Amazon EC2 + publishes your flow logs. + + This parameter is valid only if the destination type is + `cloud-watch-logs`. + """ + resource_ids: list[str] | None = ... + """ + The IDs of the resources to monitor. For example, if the resource type + is `VPC`, specify the IDs of the VPCs. + + Constraints: Maximum of 25 for transit gateway resource types. Maximum + of 300 for the other resource types. + """ + resource_type: str | None = ... + """The type of resource to monitor.""" + traffic_type: str | None = ... + """ + The type of traffic to monitor (accepted traffic, rejected traffic, or + all traffic). This parameter is not supported for transit gateway or + Cloud WAN resource types. It is required for the other resource types. + """ + log_destination_type: str | None = ... + """ + The type of destination for the flow log data. + + Default: `cloud-watch-logs` + """ + log_destination: str | None = ... + """ + The destination for the flow log data. The meaning of this parameter + depends on the destination type. + + - If the destination type is `cloud-watch-logs`, specify the ARN of a + CloudWatch Logs log group. For example: + + arn:aws:logs:*region*:*account_id*:log-group:*my_group* + + Alternatively, use the `LogGroupName` parameter. + + - If the destination type is `s3`, specify the ARN of an S3 bucket. For + example: + + arn:aws:s3\\:::*my_bucket*/*my_subfolder*/ + + The subfolder is optional. Note that you can't use `AWSLogs` as a + subfolder name. + + - If the destination type is `kinesis-data-firehose`, specify the ARN of + a Kinesis Data Firehose delivery stream. For example: + + arn:aws:firehose:*region*:*account_id*:deliverystream:*my_stream* + """ + log_format: str | None = ... + """ + The fields to include in the flow log record. List the fields in the + order in which they should appear. If you omit this parameter, the flow + log is created using the default format. If you specify this parameter, + you must include at least one field. For more information about the + available fields, see [Flow log + records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html) + in the *Amazon VPC User Guide*, [Transit Gateway Flow Log + records](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records) + in the *Amazon Web Services Transit Gateway Guide*, or [Cloud WAN Flow + Log + records](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cwan-flow-logs.html) + in the *Amazon Web Services Cloud WAN User Guide*. + + Specify the fields using the `${field-id}` format, separated by spaces. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the flow logs.""" + max_aggregation_interval: int | None = ... + """ + The maximum interval of time during which a flow of packets is captured + and aggregated into a flow log record. The possible values are 60 + seconds (1 minute) or 600 seconds (10 minutes). This parameter must be + 60 seconds for transit gateway and Cloud WAN resource types. + + When a network interface is attached to a [Nitro-based + instance](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), + the aggregation interval is always 60 seconds or less, regardless of the + value that you specify. + + Default: 600 + """ + destination_options: DestinationOptionsRequest | None = ... + """The destination options.""" + tag_field_specifications: list[TagFieldSpecificationRequest] | None = ... + """ + The tag configuration associated with the Flow Logs Amazon EC2 Tags + feature fields in your custom log format. + """ + +@dataclass(kw_only=True) +class CreateFlowLogsOutput(_SerdeShape): + """Dataclass for CreateFlowLogsOutput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + flow_log_ids: list[str] | None = ... + """The IDs of the flow logs.""" + unsuccessful: list[UnsuccessfulItem] | None = ... + """Information about the flow logs that could not be created successfully.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateFpgaImageInput(_SerdeShape): + """Dataclass for CreateFpgaImageInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + input_storage_location: StorageLocation | None = ... + """ + The location of the encrypted design checkpoint in Amazon S3. The input + must be a tarball. + """ + logs_storage_location: StorageLocation | None = ... + """The location in Amazon S3 for the output logs.""" + description: str | None = ... + """A description for the AFI.""" + name: str | None = ... + """A name for the AFI.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the FPGA image during creation.""" + +@dataclass(kw_only=True) +class CreateFpgaImageOutput(_SerdeShape): + """Dataclass for CreateFpgaImageOutput structure.""" + + fpga_image_id: str | None = ... + """The FPGA image identifier (AFI ID).""" + fpga_image_global_id: str | None = ... + """The global FPGA image identifier (AGFI ID).""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateImageInput(_SerdeShape): + """Dataclass for CreateImageInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the AMI and snapshots on creation. You can tag the + AMI, the snapshots, or both. + + - To tag the AMI, the value for `ResourceType` must be `image`. + + - To tag the snapshots that are created of the root volume and of other + Amazon EBS volumes that are attached to the instance, the value for + `ResourceType` must be `snapshot`. The same tag is applied to all of + the snapshots that are created. + + If you specify other values for `ResourceType`, the request fails. + + To tag an AMI or snapshot after it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + snapshot_location: str | None = ... + """ + Note: + Only supported for instances in Local Zones and for instances on + Outposts that support local snapshots. If the source instance is not in + one of these locations, omit this parameter. + + The Amazon S3 location where the snapshots will be stored. + + - To create local snapshots in the same Local Zone or on the same + Outpost as the source instance, specify `local`. + + - To create regional snapshots in the parent Region of the Local Zone or + Outpost, specify `regional`. + + If the source instance is in a Local Zone and you omit this parameter, + regional snapshots are created in the parent Region of the Local Zone. + + If the source instance is on an Outpost that supports local snapshots, + this parameter is required. If you omit it, the request fails with an + `InvalidParameterValue` error. + + Default: `regional` (for instances in Local Zones only) + """ + boot_mode_override: str | None = ... + """ + The boot mode of the new image, which overrides the default boot mode. + By default, if you do not specify this parameter, the new image inherits + the `boot-mode` from the source instance. + + A value of `uefi` indicates that the image only supports UEFI boot mode. + You can specify this parameter only if the `current-instance-boot-mode` + of the source instance is `uefi`. To find the `boot-mode` or + `current-instance-boot-mode` of an instance, see + [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html). + + Note: + The operating system contained in the AMI must be configured to support + the specified boot mode. + + For more information, see [Instance launch behavior with Amazon EC2 boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + name: str | None = ... + """ + A name for the new image. + + Constraints: 3-128 alphanumeric characters, parentheses (()), square + brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), + single quotes ('), at-signs (@), or underscores(_) + """ + description: str | None = ... + """A description for the new image.""" + no_reboot: bool | None = ... + """ + Indicates whether or not the instance should be automatically rebooted + before creating the image. Specify one of the following values: + + - `true` - The instance is not rebooted before creating the image. This + creates crash-consistent snapshots that include only the data that has + been written to the volumes at the time the snapshots are created. + Buffered data and data in memory that has not yet been written to the + volumes is not included in the snapshots. + + - `false` - The instance is rebooted before creating the image. This + ensures that all buffered data and data in memory is written to the + volumes before the snapshots are created. + + Default: `false` + """ + block_device_mappings: list[BlockDeviceMapping] | None = ... + """ + The block device mappings. + + When using the CreateImage action: + + - You can't change the volume size using the VolumeSize parameter. If + you want a different volume size, you must first change the volume + size of the source instance. + + - You can't modify the encryption status of existing volumes or + snapshots. To create an AMI with volumes or snapshots that have a + different encryption status (for example, where the source volume and + snapshots are unencrypted, and you want to create an AMI with + encrypted volumes or snapshots), copy the image instead. + + - The only option that can be changed for existing mappings or snapshots + is `DeleteOnTermination`. + """ + +@dataclass(kw_only=True) +class CreateImageOutput(_SerdeShape): + """Dataclass for CreateImageOutput structure.""" + + image_id: str | None = ... + """The ID of the new AMI.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateImageUsageReportInput(_SerdeShape): + """Dataclass for CreateImageUsageReportInput structure.""" + + image_id: str | None = ... + """The ID of the image to report on.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + resource_types: list[ImageUsageResourceTypeRequest] | None = ... + """The resource types to include in the report.""" + account_ids: list[str] | None = ... + """ + The Amazon Web Services account IDs to include in the report. To include + all accounts, omit this parameter. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure + idempotency of the request. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the report on creation. The `ResourceType` must be + set to `image-usage-report`; any other value will cause the report + creation to fail. + + To tag a report after it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + +@dataclass(kw_only=True) +class CreateImageUsageReportOutput(_SerdeShape): + """Dataclass for CreateImageUsageReportOutput structure.""" + + report_id: str | None = ... + """The ID of the report.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInstanceConnectEndpointInput(_SerdeShape): + """Dataclass for CreateInstanceConnectEndpointInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + subnet_id: str | None = ... + """ + The ID of the subnet in which to create the EC2 Instance Connect + Endpoint. + """ + security_group_ids: list[str] | None = ... + """ + One or more security groups to associate with the endpoint. If you + don't specify a security group, the default security group for your VPC + will be associated with the endpoint. + """ + preserve_client_ip: bool | None = ... + """ + Indicates whether the client IP address is preserved as the source. The + following are the possible values. + + - `true` - Use the client IP address as the source. + + - `false` - Use the network interface IP address as the source. + + Note: + `PreserveClientIp` is only supported on IPv4 EC2 Instance Connect + Endpoints. To use `PreserveClientIp`, the value for `IpAddressType` must + be `ipv4`. + + Default: `false` + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the EC2 Instance Connect Endpoint during creation.""" + ip_address_type: str | None = ... + """ + The IP address type of the endpoint. + + If no value is specified, the default value is determined by the IP + address type of the subnet: + + - `dualstack` - If the subnet has both IPv4 and IPv6 CIDRs + + - `ipv4` - If the subnet has only IPv4 CIDRs + + - `ipv6` - If the subnet has only IPv6 CIDRs + + Note: + `PreserveClientIp` is only supported on IPv4 EC2 Instance Connect + Endpoints. To use `PreserveClientIp`, the value for `IpAddressType` must + be `ipv4`. + """ + +@dataclass(kw_only=True) +class CreateInstanceConnectEndpointOutput(_SerdeShape): + """Dataclass for CreateInstanceConnectEndpointOutput structure.""" + + instance_connect_endpoint: Ec2InstanceConnectEndpoint | None = ... + """Information about the EC2 Instance Connect Endpoint.""" + client_token: str | None = ... + """ + Unique, case-sensitive idempotency token provided by the client in the + the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInstanceEventWindowInput(_SerdeShape): + """Dataclass for CreateInstanceEventWindowInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + name: str | None = ... + """The name of the event window.""" + time_ranges: list[InstanceEventWindowTimeRangeRequest] | None = ... + """ + The time range for the event window. If you specify a time range, you + can't specify a cron expression. + """ + cron_expression: str | None = ... + """ + The cron expression for the event window, for example, + `* 0-4,20-23 * * 1,5`. If you specify a cron expression, you can't + specify a time range. + + Constraints: + + - Only hour and day of the week values are supported. + + - For day of the week values, you can specify either integers `0` + through `6`, or alternative single values `SUN` through `SAT`. + + - The minute, month, and year must be specified by `*`. + + - The hour value must be one or a multiple range, for example, `0-4` or + `0-4,20-23`. + + - Each hour range must be >= 2 hours, for example, `0-2` or `20-23`. + + - The event window must be >= 4 hours. The combined total time ranges + in the event window must be >= 4 hours. + + For more information about cron expressions, see + [cron](https://en.wikipedia.org/wiki/Cron) on the *Wikipedia website*. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the event window.""" + +@dataclass(kw_only=True) +class CreateInstanceEventWindowOutput(_SerdeShape): + """Dataclass for CreateInstanceEventWindowOutput structure.""" + + instance_event_window: InstanceEventWindow | None = ... + """Information about the event window.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInstanceExportTaskInput(_SerdeShape): + """Dataclass for CreateInstanceExportTaskInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the export instance task during creation.""" + description: str | None = ... + """ + A description for the conversion task or the resource being exported. + The maximum length is 255 characters. + """ + instance_id: str | None = ... + """The ID of the instance.""" + target_environment: str | None = ... + """The target virtualization environment.""" + export_to_s3_task: ExportToS3TaskSpecification | None = ... + """The format and location for an export instance task.""" + +@dataclass(kw_only=True) +class CreateInstanceExportTaskOutput(_SerdeShape): + """Dataclass for CreateInstanceExportTaskOutput structure.""" + + export_task: ExportTask | None = ... + """Information about the export instance task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInternetGatewayInput(_SerdeShape): + """Dataclass for CreateInternetGatewayInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the internet gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateInternetGatewayOutput(_SerdeShape): + """Dataclass for CreateInternetGatewayOutput structure.""" + + internet_gateway: InternetGateway | None = ... + """Information about the internet gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInterruptibleCapacityReservationAllocationInput(_SerdeShape): + """ + Dataclass for CreateInterruptibleCapacityReservationAllocationInput + structure. + """ + + capacity_reservation_id: str | None = ... + """ + The ID of the source Capacity Reservation from which to create the + interruptible Capacity Reservation. Your Capacity Reservation must be in + active state with no end date set and have available capacity for + allocation. + """ + instance_count: int | None = ... + """ + The number of instances to allocate from your source reservation. You + can only allocate available instances (also called unused capacity). + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the interruptible Capacity Reservation during + creation. + """ + zero_size_preference: str | None = ... + """ + Specifies the behavior for the interruptible Capacity Reservation when + you reduce its allocation to zero instances. Specify `retain` to keep + the interruptible Capacity Reservation active at zero capacity so that + you can allocate instances to it again later. Specify `default` to + cancel the interruptible Capacity Reservation and return the capacity to + your source Capacity Reservation. The default value is `default`. + """ + +@dataclass(kw_only=True) +class CreateInterruptibleCapacityReservationAllocationOutput(_SerdeShape): + """ + Dataclass for CreateInterruptibleCapacityReservationAllocationOutput + structure. + """ + + source_capacity_reservation_id: str | None = ... + """ + The ID of the source Capacity Reservation from which the interruptible + Capacity Reservation was created. + """ + target_instance_count: int | None = ... + """The number of instances allocated to the interruptible reservation.""" + status: str | None = ... + """ + The current status of the allocation request (creating, active, + updating). + """ + interruption_type: str | None = ... + """The type of interruption applied to the interruptible reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamExternalResourceVerificationTokenInput(_SerdeShape): + """ + Dataclass for CreateIpamExternalResourceVerificationTokenInput + structure. + """ + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM that will create the token.""" + tag_specifications: list[TagSpecification] | None = ... + """Token tags.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateIpamExternalResourceVerificationTokenOutput(_SerdeShape): + """ + Dataclass for CreateIpamExternalResourceVerificationTokenOutput + structure. + """ + + ipam_external_resource_verification_token: ( + IpamExternalResourceVerificationToken | None + ) = ... + """The verification token.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamInput(_SerdeShape): + """Dataclass for CreateIpamInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + description: str | None = ... + """A description for the IPAM.""" + operating_regions: list[AddIpamOperatingRegion] | None = ... + """ + The operating Regions for the IPAM. Operating Regions are Amazon Web + Services Regions where the IPAM is allowed to manage IP address CIDRs. + IPAM only discovers and monitors resources in the Amazon Web Services + Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tier: str | None = ... + """ + IPAM is offered in a Free Tier and an Advanced Tier. For more + information about the features available in each tier and the costs + associated with the tiers, see [Amazon VPC pricing > IPAM + tab](http://aws.amazon.com/vpc/pricing/). + """ + enable_private_gua: bool | None = ... + """ + Enable this option to use your own GUA ranges as private IPv6 addresses. + This option is disabled by default. + """ + metered_account: str | None = ... + """ + A metered account is an Amazon Web Services account that is charged for + active IP addresses managed in IPAM. For more information, see [Enable + cost + distribution](https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html) + in the *Amazon VPC IPAM User Guide*. + + Possible values: + + - `ipam-owner` (default): The Amazon Web Services account which owns the + IPAM is charged for all active IP addresses managed in IPAM. + + - `resource-owner`: The Amazon Web Services account that owns the IP + address is charged for the active IP address. + """ + +@dataclass(kw_only=True) +class CreateIpamInternetRegistryAssociationInput(_SerdeShape): + """Dataclass for CreateIpamInternetRegistryAssociationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM to associate with the internet registry.""" + rir: str | None = ... + """ + The Regional Internet Registry to associate with. Possible values: + + - `ripe` - RIPE NCC (Europe, the Middle East, and Central Asia). + + - `apnic` - APNIC (Asia Pacific). + + - `arin` - ARIN (North America). + + - `lacnic` - LACNIC (Latin America and the Caribbean). + """ + organization_handle: str | None = ... + """ + The organization handle at the internet registry (for example, a RIPE + NCC organization ID or ARIN Org ID). + """ + description: str | None = ... + """A description for the internet registry association.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the internet registry association.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class CreateIpamInternetRegistryAssociationOutput(_SerdeShape): + """Dataclass for CreateIpamInternetRegistryAssociationOutput structure.""" + + ipam_internet_registry_association: IpamInternetRegistryAssociation | None = ... + """Information about the internet registry association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamOutput(_SerdeShape): + """Dataclass for CreateIpamOutput structure.""" + + ipam: Ipam | None = ... + """Information about the IPAM created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamPolicyInput(_SerdeShape): + """Dataclass for CreateIpamPolicyInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the IPAM policy.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure the idempotency of the + request. + """ + ipam_id: str | None = ... + """The ID of the IPAM for which you're creating the policy.""" + +@dataclass(kw_only=True) +class CreateIpamPolicyOutput(_SerdeShape): + """Dataclass for CreateIpamPolicyOutput structure.""" + + ipam_policy: IpamPolicy | None = ... + """ + Information about the created IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamPoolInput(_SerdeShape): + """Dataclass for CreateIpamPoolInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_scope_id: str | None = ... + """The ID of the scope in which you would like to create the IPAM pool.""" + locale: str | None = ... + """ + The locale for the pool should be one of the following: + + - An Amazon Web Services Region where you want this IPAM pool to be + available for allocations. + + - The network border group for an Amazon Web Services Local Zone where + you want this IPAM pool to be available for allocations ([supported + Local + Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail)). + This option is only available for IPAM IPv4 pools in the public scope. + + Possible values: Any Amazon Web Services Region or supported Amazon Web + Services Local Zone. Default is `none` and means any locale. + """ + source_ipam_pool_id: str | None = ... + """ + The ID of the source IPAM pool. Use this option to create a pool within + an existing pool. Note that the CIDR you provision for the pool within + the source pool must be available in the source pool's CIDR range. + """ + description: str | None = ... + """A description for the IPAM pool.""" + address_family: str | None = ... + """ + The IP protocol assigned to this IPAM pool. You must choose either IPv4 + or IPv6 protocol for a pool. + """ + auto_import: bool | None = ... + """ + If selected, IPAM will continuously look for resources within the CIDR + range of this pool and automatically import them as allocations into + your IPAM. The CIDRs that will be allocated for these resources must not + already be allocated to other resources in order for the import to + succeed. IPAM will import a CIDR regardless of its compliance with the + pool's allocation rules, so a resource might be imported and + subsequently marked as noncompliant. If IPAM discovers multiple CIDRs + that overlap, IPAM will import the largest CIDR only. If IPAM discovers + multiple CIDRs with matching CIDRs, IPAM will randomly import one of + them only. + + A locale must be set on the pool for this feature to work. + """ + publicly_advertisable: bool | None = ... + """ + Determines if the pool is publicly advertisable. The request can only + contain `PubliclyAdvertisable` if `AddressFamily` is `ipv6` and + `PublicIpSource` is `byoip`. + """ + allocation_min_netmask_length: int | None = ... + """ + The minimum netmask length required for CIDR allocations in this IPAM + pool to be compliant. The minimum netmask length must be less than the + maximum netmask length. Possible netmask lengths for IPv4 addresses are + 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. + """ + allocation_max_netmask_length: int | None = ... + """ + The maximum netmask length possible for CIDR allocations in this IPAM + pool to be compliant. The maximum netmask length must be greater than + the minimum netmask length. Possible netmask lengths for IPv4 addresses + are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. + """ + allocation_default_netmask_length: int | None = ... + """ + The default netmask length for allocations added to this pool. If, for + example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 + here, new allocations will default to 10.0.0.0/16. + """ + allocation_resource_tags: list[RequestIpamResourceTag] | None = ... + """ + Tags that are required for resources that use CIDRs from this IPAM pool. + Resources that do not have these tags will not be allowed to allocate + space from the pool. If the resources have their tags changed after they + have allocated space or if the allocation tagging requirements are + changed on the pool, the resource may be marked as noncompliant. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + aws_service: str | None = ... + """ + Limits which service in Amazon Web Services that the pool can be used + in. \"ec2\", for example, allows users to use space for Elastic IP + addresses and VPCs. + """ + public_ip_source: str | None = ... + """ + The IP address source for pools in the public scope. Only used for + provisioning IP address CIDRs to pools in the public scope. Default is + `byoip`. For more information, see [Create IPv6 + pools](https://docs.aws.amazon.com/vpc/latest/ipam/intro-create-ipv6-pools.html) + in the *Amazon VPC IPAM User Guide*. By default, you can add only one + Amazon-provided IPv6 CIDR block to a top-level IPv6 pool if + PublicIpSource is `amazon`. For information on increasing the default + limit, see [Quotas for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + source_resource: IpamPoolSourceResourceRequest | None = ... + """The resource used to provision CIDRs to a resource planning pool.""" + +@dataclass(kw_only=True) +class CreateIpamPoolOutput(_SerdeShape): + """Dataclass for CreateIpamPoolOutput structure.""" + + ipam_pool: IpamPool | None = ... + """Information about the IPAM pool created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamPrefixListResolverInput(_SerdeShape): + """Dataclass for CreateIpamPrefixListResolverInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """ + The ID of the IPAM that will serve as the source of the IP address + database for CIDR selection. The IPAM must be in the Advanced tier to + use this feature. + """ + description: str | None = ... + """ + A description for the IPAM prefix list resolver to help you identify its + purpose and configuration. + """ + address_family: str | None = ... + """ + The address family for the IPAM prefix list resolver. Valid values are + `ipv4` and `ipv6`. You must create separate resolvers for IPv4 and IPv6 + CIDRs as they cannot be mixed in the same resolver. + """ + rules: list[IpamPrefixListResolverRuleRequest] | None = ... + """ + The CIDR selection rules for the resolver. + + CIDR selection rules define the business logic for selecting CIDRs from + IPAM. If a CIDR matches any of the rules, it will be included. If a rule + has multiple conditions, the CIDR has to match every condition of that + rule. You can create a prefix list resolver without any CIDR selection + rules, but it will generate empty versions (containing no CIDRs) until + you add rules. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the IPAM prefix list resolver during creation. Tags + help you organize and manage your Amazon Web Services resources. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateIpamPrefixListResolverOutput(_SerdeShape): + """Dataclass for CreateIpamPrefixListResolverOutput structure.""" + + ipam_prefix_list_resolver: IpamPrefixListResolver | None = ... + """Information about the IPAM prefix list resolver that was created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamPrefixListResolverTargetInput(_SerdeShape): + """Dataclass for CreateIpamPrefixListResolverTargetInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """ + The ID of the IPAM prefix list resolver that will manage the + synchronization of CIDRs to the target prefix list. + """ + prefix_list_id: str | None = ... + """ + The ID of the managed prefix list that will be synchronized with CIDRs + selected by the IPAM prefix list resolver. This prefix list becomes an + IPAM managed prefix list. + + An IPAM-managed prefix list is a customer-managed prefix list that has + been associated with an IPAM prefix list resolver target. When a prefix + list becomes IPAM managed, its CIDRs are automatically synchronized + based on the IPAM prefix list resolver's CIDR selection rules, and + direct CIDR modifications are restricted. + """ + prefix_list_region: str | None = ... + """ + The Amazon Web Services Region where the prefix list is located. This is + required when referencing a prefix list in a different Region. + """ + desired_version: int | None = ... + """ + The specific version of the prefix list to target. If not specified, the + resolver will target the latest version. + """ + track_latest_version: bool | None = ... + """ + Indicates whether the resolver target should automatically track the + latest version of the prefix list. When enabled, the target will always + synchronize with the most current version of the prefix list. + + Choose this for automatic updates when you want your prefix lists to + stay current with infrastructure changes without manual intervention. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the IPAM prefix list resolver target during + creation. Tags help you organize and manage your Amazon Web Services + resources. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateIpamPrefixListResolverTargetOutput(_SerdeShape): + """Dataclass for CreateIpamPrefixListResolverTargetOutput structure.""" + + ipam_prefix_list_resolver_target: IpamPrefixListResolverTarget | None = ... + """Information about the IPAM prefix list resolver target that was created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamResourceDiscoveryInput(_SerdeShape): + """Dataclass for CreateIpamResourceDiscoveryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + description: str | None = ... + """A description for the IPAM resource discovery.""" + operating_regions: list[AddIpamOperatingRegion] | None = ... + """ + Operating Regions for the IPAM resource discovery. Operating Regions are + Amazon Web Services Regions where the IPAM is allowed to manage IP + address CIDRs. IPAM only discovers and monitors resources in the Amazon + Web Services Regions you select as operating Regions. + """ + tag_specifications: list[TagSpecification] | None = ... + """Tag specifications for the IPAM resource discovery.""" + client_token: str | None = ... + """A client token for the IPAM resource discovery.""" + +@dataclass(kw_only=True) +class CreateIpamResourceDiscoveryOutput(_SerdeShape): + """Dataclass for CreateIpamResourceDiscoveryOutput structure.""" + + ipam_resource_discovery: IpamResourceDiscovery | None = ... + """An IPAM resource discovery.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamRoutingPolicyRegistrationInput(_SerdeShape): + """Dataclass for CreateIpamRoutingPolicyRegistrationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + cidr: str | None = ... + """The IP address prefix in CIDR notation to authorize in the ROA.""" + asns: list[str] | None = ... + """The Autonomous System Numbers (ASNs) authorized to originate the prefix.""" + permit_more_specific_announcements: bool | None = ... + """ + Specifies whether to permit more specific route announcements than the + CIDR prefix. When enabled, ASNs can announce sub-prefixes of the + authorized CIDR up to the specified maximum length. Default: `false`. + """ + max_length: int | None = ... + """ + The maximum prefix length that the ASNs are authorized to announce. Must + be greater than or equal to the prefix length of the CIDR. If not + specified, defaults to the prefix length of the CIDR (exact match only). + """ + description: str | None = ... + """A description for the routing policy registration.""" + force: bool | None = ... + """ + Forces the creation of the routing policy registration even if it + conflicts with an announced route. Default: `false`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class CreateIpamRoutingPolicyRegistrationOutput(_SerdeShape): + """Dataclass for CreateIpamRoutingPolicyRegistrationOutput structure.""" + + ipam_routing_policy_registration_delta: ( + IpamRoutingPolicyRegistrationDelta | None + ) = ... + """ + Information about the routing policy registration delta created by this + operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIpamScopeInput(_SerdeShape): + """Dataclass for CreateIpamScopeInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM for which you're creating this scope.""" + description: str | None = ... + """A description for the scope you're creating.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + external_authority_configuration: ExternalAuthorityConfiguration | None = ... + """ + The configuration that links an Amazon VPC IPAM scope to an external + authority system. It specifies the type of external system and the + external resource identifier that identifies your account or instance in + that system. + + In IPAM, an external authority is a third-party IP address management + system that provides CIDR blocks when you provision address space for + top-level IPAM pools. This allows you to use your existing IP management + system to control which address ranges are allocated to Amazon Web + Services while using Amazon VPC IPAM to manage subnets within those + ranges. + """ + +@dataclass(kw_only=True) +class CreateIpamScopeOutput(_SerdeShape): + """Dataclass for CreateIpamScopeOutput structure.""" + + ipam_scope: IpamScope | None = ... + """Information about the created scope.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateKeyPairInput(_SerdeShape): + """Dataclass for CreateKeyPairInput structure.""" + + key_name: str | None = ... + """ + A unique name for the key pair. + + Constraints: Up to 255 ASCII characters + """ + key_type: str | None = ... + """ + The type of key pair. Note that ED25519 keys are not supported for + Windows instances. + + Default: `rsa` + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the new key pair.""" + key_format: str | None = ... + """ + The format of the key pair. + + Default: `pem` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateKeyPairOutput(_SerdeShape): + """Describes a key pair.""" + + key_pair_id: str | None = ... + """The ID of the key pair.""" + tags: list[Tag] | None = ... + """Any tags applied to the key pair.""" + key_name: str | None = ... + """The name of the key pair.""" + key_fingerprint: str | None = ... + """ + - For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER + encoded private key. + + - For ED25519 key pairs, the key fingerprint is the base64-encoded + SHA-256 digest, which is the default for OpenSSH, starting with + OpenSSH 6.8. + """ + key_material: str | None = ... + """An unencrypted PEM encoded RSA or ED25519 private key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLaunchTemplateInput(_SerdeShape): + """Dataclass for CreateLaunchTemplateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. If a client token isn't specified, a randomly generated + token is used in the request to ensure idempotency. + + For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + + Constraint: Maximum 128 ASCII characters. + """ + launch_template_name: str | None = ... + """A name for the launch template.""" + version_description: str | None = ... + """A description for the first version of the launch template.""" + launch_template_data: RequestLaunchTemplateData | None = ... + """The information for the launch template.""" + operator: OperatorRequest | None = ... + """Reserved for internal use.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the launch template on creation. To tag the launch + template, the resource type must be `launch-template`. + + To specify the tags for the resources that are created when an instance + is launched, you must use the `TagSpecifications` parameter in the + [launch template + data](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestLaunchTemplateData.html) + structure. + """ + +@dataclass(kw_only=True) +class CreateLaunchTemplateOutput(_SerdeShape): + """Dataclass for CreateLaunchTemplateOutput structure.""" + + launch_template: LaunchTemplate | None = ... + """Information about the launch template.""" + warning: ValidationWarning | None = ... + """ + If the launch template contains parameters or parameter combinations + that are not valid, an error code and an error message are returned for + each issue that's found. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLaunchTemplateVersionInput(_SerdeShape): + """Dataclass for CreateLaunchTemplateVersionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. If a client token isn't specified, a randomly generated + token is used in the request to ensure idempotency. + + For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + + Constraint: Maximum 128 ASCII characters. + """ + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + source_version: str | None = ... + """ + The version of the launch template on which to base the new version. + Snapshots applied to the block device mapping are ignored when creating + a new version unless they are explicitly included. + + If you specify this parameter, the new version inherits the launch + parameters from the source version. If you specify additional launch + parameters for the new version, they overwrite any corresponding launch + parameters inherited from the source version. + + If you omit this parameter, the new version contains only the launch + parameters that you specify for the new version. + """ + version_description: str | None = ... + """A description for the version of the launch template.""" + launch_template_data: RequestLaunchTemplateData | None = ... + """The information for the launch template.""" + resolve_alias: bool | None = ... + """ + If `true`, and if a Systems Manager parameter is specified for + `ImageId`, the AMI ID is displayed in the response for `imageID`. For + more information, see [Use a Systems Manager parameter instead of an AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + +@dataclass(kw_only=True) +class CreateLaunchTemplateVersionOutput(_SerdeShape): + """Dataclass for CreateLaunchTemplateVersionOutput structure.""" + + launch_template_version: LaunchTemplateVersion | None = ... + """Information about the launch template version.""" + warning: ValidationWarning | None = ... + """ + If the new version of the launch template contains parameters or + parameter combinations that are not valid, an error code and an error + message are returned for each issue that's found. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteInput(_SerdeShape): + """Dataclass for CreateLocalGatewayRouteInput structure.""" + + destination_cidr_block: str | None = ... + """ + The CIDR range used for destination matches. Routing decisions are based + on the most specific match. + """ + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the virtual interface group.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + destination_prefix_list_id: str | None = ... + """ + The ID of the prefix list. Use a prefix list in place of + `DestinationCidrBlock`. You cannot use `DestinationPrefixListId` and + `DestinationCidrBlock` in the same request. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteOutput(_SerdeShape): + """Dataclass for CreateLocalGatewayRouteOutput structure.""" + + route: LocalGatewayRoute | None = ... + """Information about the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableInput(_SerdeShape): + """Dataclass for CreateLocalGatewayRouteTableInput structure.""" + + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + mode: str | None = ... + """The mode of the local gateway route table.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags assigned to the local gateway route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableOutput(_SerdeShape): + """Dataclass for CreateLocalGatewayRouteTableOutput structure.""" + + local_gateway_route_table: LocalGatewayRouteTable | None = ... + """Information about the local gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput(_SerdeShape): + """ + Dataclass for + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput + structure. + """ + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_virtual_interface_group_id: str | None = ... + """ + The ID of the local gateway route table virtual interface group + association. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags assigned to the local gateway route table virtual interface + group association. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput(_SerdeShape): + """ + Dataclass for + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput + structure. + """ + + local_gateway_route_table_virtual_interface_group_association: ( + LocalGatewayRouteTableVirtualInterfaceGroupAssociation | None + ) = ... + """ + Information about the local gateway route table virtual interface group + association. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableVpcAssociationInput(_SerdeShape): + """Dataclass for CreateLocalGatewayRouteTableVpcAssociationInput structure.""" + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the local gateway route table VPC association.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayRouteTableVpcAssociationOutput(_SerdeShape): + """ + Dataclass for CreateLocalGatewayRouteTableVpcAssociationOutput + structure. + """ + + local_gateway_route_table_vpc_association: ( + LocalGatewayRouteTableVpcAssociation | None + ) = ... + """Information about the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayVirtualInterfaceGroupInput(_SerdeShape): + """Dataclass for CreateLocalGatewayVirtualInterfaceGroupInput structure.""" + + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + local_bgp_asn: int | None = ... + """ + The Autonomous System Number(ASN) for the local Border Gateway Protocol + (BGP). + """ + local_bgp_asn_extended: int | None = ... + """The extended 32-bit ASN for the local BGP configuration.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the local gateway virtual interface group when the + resource is being created. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayVirtualInterfaceGroupOutput(_SerdeShape): + """Dataclass for CreateLocalGatewayVirtualInterfaceGroupOutput structure.""" + + local_gateway_virtual_interface_group: ( + LocalGatewayVirtualInterfaceGroup | None + ) = ... + """Information about the created local gateway virtual interface group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLocalGatewayVirtualInterfaceInput(_SerdeShape): + """Dataclass for CreateLocalGatewayVirtualInterfaceInput structure.""" + + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the local gateway virtual interface group.""" + outpost_lag_id: str | None = ... + """ + References the Link Aggregation Group (LAG) that connects the Outpost to + on-premises network devices. + """ + vlan: int | None = ... + """ + The virtual local area network (VLAN) used for the local gateway virtual + interface. + """ + local_address: str | None = ... + """ + The IP address assigned to the local gateway virtual interface on the + Outpost side. Only IPv4 is supported. + """ + peer_address: str | None = ... + """ + The peer IP address for the local gateway virtual interface. Only IPv4 + is supported. + """ + peer_bgp_asn: int | None = ... + """ + The Autonomous System Number (ASN) of the Border Gateway Protocol (BGP) + peer. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to a resource when the local gateway virtual interface + is being created. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + peer_bgp_asn_extended: int | None = ... + """The extended 32-bit ASN of the BGP peer for use with larger ASN values.""" + +@dataclass(kw_only=True) +class CreateLocalGatewayVirtualInterfaceOutput(_SerdeShape): + """Dataclass for CreateLocalGatewayVirtualInterfaceOutput structure.""" + + local_gateway_virtual_interface: LocalGatewayVirtualInterface | None = ... + """Information about the local gateway virtual interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateMacSystemIntegrityProtectionModificationTaskInput(_SerdeShape): + """ + Dataclass for CreateMacSystemIntegrityProtectionModificationTaskInput + structure. + """ + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the Amazon EC2 Mac instance.""" + mac_credentials: str | None = ... + """ + **[Apple silicon Mac instances only]** Specifies the following + credentials: + + - **Internal disk administrative user** + + - **Username** - Only the default administrative user + (`aws-managed-user`) is supported and it is used by default. You + can't specify a different administrative user. + + - **Password** - If you did not change the default password for + `aws-managed-user`, specify the default password, which is *blank*. + Otherwise, specify your password. + + - **Amazon EBS root volume administrative user** + + - **Username** - If you did not change the default administrative + user, specify `ec2-user`. Otherwise, specify the username for your + administrative user. + + - **Password** - Specify the password for the administrative user. + + The credentials must be specified in the following JSON format: + + `{ "internalDiskPassword":"`*`internal-disk-admin_password`*`", "rootVolumeUsername":"`*`root-volume-admin_username`*`", "rootVolumepassword":"`*`root-volume-admin_password`*`" }` + """ + mac_system_integrity_protection_configuration: ( + MacSystemIntegrityProtectionConfigurationRequest | None + ) = ... + """ + Specifies the overrides to selectively enable or disable individual SIP + settings. The individual settings you specify here override the overall + SIP status you specify for **MacSystemIntegrityProtectionStatus**. + """ + mac_system_integrity_protection_status: str | None = ... + """ + Specifies the overall SIP status for the instance. To enable all SIP + settings, specify `enabled`. To disable all SIP settings, specify + `disabled`. + """ + tag_specifications: list[TagSpecification] | None = ... + """Specifies tags to apply to the SIP modification task.""" + +@dataclass(kw_only=True) +class CreateMacSystemIntegrityProtectionModificationTaskOutput(_SerdeShape): + """ + Dataclass for CreateMacSystemIntegrityProtectionModificationTaskOutput + structure. + """ + + mac_modification_task: MacModificationTask | None = ... + """Information about the SIP modification task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateManagedPrefixListInput(_SerdeShape): + """Dataclass for CreateManagedPrefixListInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_name: str | None = ... + """ + A name for the prefix list. + + Constraints: Up to 255 characters in length. The name cannot start with + `com.amazonaws`. + """ + entries: list[AddPrefixListEntry] | None = ... + """One or more entries for the prefix list.""" + max_entries: int | None = ... + """The maximum number of entries for the prefix list.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the prefix list during creation.""" + address_family: str | None = ... + """ + The IP address type. + + Valid Values: `IPv4` | `IPv6` + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + + Constraints: Up to 255 UTF-8 characters in length. + """ + +@dataclass(kw_only=True) +class CreateManagedPrefixListOutput(_SerdeShape): + """Dataclass for CreateManagedPrefixListOutput structure.""" + + prefix_list: ManagedPrefixList | None = ... + """Information about the prefix list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNatGatewayInput(_SerdeShape): + """Dataclass for CreateNatGatewayInput structure.""" + + availability_mode: str | None = ... + """ + Specifies whether to create a zonal (single-AZ) or regional (multi-AZ) + NAT gateway. Defaults to `zonal`. + + A zonal NAT gateway is a NAT Gateway that provides redundancy and + scalability within a single availability zone. A regional NAT gateway is + a single NAT Gateway that works across multiple availability zones (AZs) + in your VPC, providing redundancy, scalability and availability across + all the AZs in a Region. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + allocation_id: str | None = ... + """ + [Public NAT gateways only] The allocation ID of an Elastic IP address + to associate with the NAT gateway. You cannot specify an Elastic IP + address with a private NAT gateway. If the Elastic IP address is + associated with another resource, you must first disassociate it. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + + Constraint: Maximum 64 ASCII characters. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + subnet_id: str | None = ... + """The ID of the subnet in which to create the NAT gateway.""" + vpc_id: str | None = ... + """The ID of the VPC where you want to create a regional NAT gateway.""" + availability_zone_addresses: list[AvailabilityZoneAddress] | None = ... + """ + For regional NAT gateways only: Specifies which Availability Zones you + want the NAT gateway to support and the Elastic IP addresses (EIPs) to + use in each AZ. The regional NAT gateway uses these EIPs to handle + outbound NAT traffic from their respective AZs. If not specified, the + NAT gateway will automatically expand to new AZs and associate EIPs upon + detection of an elastic network interface. If you specify this + parameter, auto-expansion is disabled and you must manually manage AZ + coverage. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the NAT gateway.""" + connectivity_type: str | None = ... + """ + Indicates whether the NAT gateway supports public or private + connectivity. The default is public connectivity. + """ + private_ip_address: str | None = ... + """ + The private IPv4 address to assign to the NAT gateway. If you don't + provide an address, a private IPv4 address will be automatically + assigned. + """ + secondary_allocation_ids: list[str] | None = ... + """ + Secondary EIP allocation IDs. For more information, see [Create a NAT + gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + """ + secondary_private_ip_addresses: list[str] | None = ... + """ + Secondary private IPv4 addresses. For more information about secondary + addresses, see [Create a NAT + gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + """ + secondary_private_ip_address_count: int | None = ... + """ + [Private NAT gateway only] The number of secondary private IPv4 + addresses you want to assign to the NAT gateway. For more information + about secondary addresses, see [Create a NAT + gateway](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html) + in the *Amazon VPC User Guide*. + """ + +@dataclass(kw_only=True) +class CreateNatGatewayOutput(_SerdeShape): + """Dataclass for CreateNatGatewayOutput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + nat_gateway: NatGateway | None = ... + """Information about the NAT gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkAclEntryInput(_SerdeShape): + """Dataclass for CreateNetworkAclEntryInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_acl_id: str | None = ... + """The ID of the network ACL.""" + rule_number: int | None = ... + """ + The rule number for the entry (for example, 100). ACL entries are + processed in ascending order by rule number. + + Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 + is reserved for internal use. + """ + protocol: str | None = ... + """ + The protocol number. A value of \"-1\" means all protocols. If you + specify \"-1\" or a protocol number other than \"6\" (TCP), \"17\" + (UDP), or \"1\" (ICMP), traffic on all ports is allowed, regardless of + any ports or ICMP types or codes that you specify. If you specify + protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all + ICMP types and codes allowed, regardless of any that you specify. If you + specify protocol \"58\" (ICMPv6) and specify an IPv6 CIDR block, you + must specify an ICMP type and code. + """ + rule_action: str | None = ... + """Indicates whether to allow or deny the traffic that matches the rule.""" + egress: bool | None = ... + """ + Indicates whether this is an egress rule (rule is applied to traffic + leaving the subnet). + """ + cidr_block: str | None = ... + """ + The IPv4 network range to allow or deny, in CIDR notation (for example + `172.16.0.0/24`). We modify the specified CIDR block to its canonical + form; for example, if you specify `100.68.0.18/18`, we modify it to + `100.68.0.0/18`. + """ + ipv6_cidr_block: str | None = ... + """ + The IPv6 network range to allow or deny, in CIDR notation (for example + `2001:db8:1234:1a00::/64`). + """ + icmp_type_code: IcmpTypeCode | None = ... + """ + ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying + protocol 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block. + """ + port_range: PortRange | None = ... + """ + TCP or UDP protocols: The range of ports the rule applies to. Required + if specifying protocol 6 (TCP) or 17 (UDP). + """ + +@dataclass(kw_only=True) +class CreateNetworkAclEntryOutput(_SerdeShape): + """Dataclass for CreateNetworkAclEntryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkAclInput(_SerdeShape): + """Dataclass for CreateNetworkAclInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the network ACL.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class CreateNetworkAclOutput(_SerdeShape): + """Dataclass for CreateNetworkAclOutput structure.""" + + network_acl: NetworkAcl | None = ... + """Information about the network ACL.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkInsightsAccessScopeInput(_SerdeShape): + """Dataclass for CreateNetworkInsightsAccessScopeInput structure.""" + + match_paths: list[AccessScopePathRequest] | None = ... + """The paths to match.""" + exclude_paths: list[AccessScopePathRequest] | None = ... + """The paths to exclude.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateNetworkInsightsAccessScopeOutput(_SerdeShape): + """Dataclass for CreateNetworkInsightsAccessScopeOutput structure.""" + + network_insights_access_scope: NetworkInsightsAccessScope | None = ... + """The Network Access Scope.""" + network_insights_access_scope_content: ( + NetworkInsightsAccessScopeContent | None + ) = ... + """The Network Access Scope content.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkInsightsPathInput(_SerdeShape): + """Dataclass for CreateNetworkInsightsPathInput structure.""" + + source_ip: str | None = ... + """The IP address of the source.""" + destination_ip: str | None = ... + """The IP address of the destination.""" + source: str | None = ... + """ + The ID or ARN of the source. If the resource is in another account, you + must specify an ARN. + """ + destination: str | None = ... + """ + The ID or ARN of the destination. If the resource is in another account, + you must specify an ARN. + """ + protocol: str | None = ... + """The protocol.""" + destination_port: int | None = ... + """The destination port.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to add to the path.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + filter_at_source: PathRequestFilter | None = ... + """ + Scopes the analysis to network paths that match specific filters at the + source. If you specify this parameter, you can't specify the parameters + for the source IP address or the destination port. + """ + filter_at_destination: PathRequestFilter | None = ... + """ + Scopes the analysis to network paths that match specific filters at the + destination. If you specify this parameter, you can't specify the + parameter for the destination IP address. + """ + +@dataclass(kw_only=True) +class CreateNetworkInsightsPathOutput(_SerdeShape): + """Dataclass for CreateNetworkInsightsPathOutput structure.""" + + network_insights_path: NetworkInsightsPath | None = ... + """Information about the path.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkInterfaceInput(_SerdeShape): + """Dataclass for CreateNetworkInterfaceInput structure.""" + + ipv4_prefixes: list[Ipv4PrefixSpecificationRequest] | None = ... + """ + The IPv4 prefixes assigned to the network interface. + + You can't specify IPv4 prefixes if you've specified one of the + following: a count of IPv4 prefixes, specific private IPv4 addresses, or + a count of private IPv4 addresses. + """ + ipv4_prefix_count: int | None = ... + """ + The number of IPv4 prefixes that Amazon Web Services automatically + assigns to the network interface. + + You can't specify a count of IPv4 prefixes if you've specified one of + the following: specific IPv4 prefixes, specific private IPv4 addresses, + or a count of private IPv4 addresses. + """ + ipv6_prefixes: list[Ipv6PrefixSpecificationRequest] | None = ... + """ + The IPv6 prefixes assigned to the network interface. + + You can't specify IPv6 prefixes if you've specified one of the + following: a count of IPv6 prefixes, specific IPv6 addresses, or a count + of IPv6 addresses. + """ + ipv6_prefix_count: int | None = ... + """ + The number of IPv6 prefixes that Amazon Web Services automatically + assigns to the network interface. + + You can't specify a count of IPv6 prefixes if you've specified one of + the following: specific IPv6 prefixes, specific IPv6 addresses, or a + count of IPv6 addresses. + """ + interface_type: str | None = ... + """ + The type of network interface. The default is `interface`. + + If you specify `efa-only`, do not assign any IP addresses to the network + interface. EFA-only network interfaces do not support IP addresses. + + The only supported values are `interface`, `efa`, `efa-only`, and + `trunk`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the new network interface.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + enable_primary_ipv6: bool | None = ... + """ + If you're creating a network interface in a dual-stack or IPv6-only + subnet, you have the option to assign a primary IPv6 IP address. A + primary IPv6 address is an IPv6 GUA address associated with an ENI that + you have enabled to use a primary IPv6 address. Use this option if the + instance that this ENI will be attached to relies on its IPv6 address + not changing. Amazon Web Services will automatically assign an IPv6 + address associated with the ENI attached to your instance to be the + primary IPv6 address. Once you enable an IPv6 GUA address to be a + primary IPv6, you cannot disable it. When you enable an IPv6 GUA address + to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 + address until the instance is terminated or the network interface is + detached. If you have multiple IPv6 addresses associated with an ENI + attached to your instance and you enable a primary IPv6 address, the + first IPv6 GUA address associated with the ENI becomes the primary IPv6 + address. + """ + connection_tracking_specification: ( + ConnectionTrackingSpecificationRequest | None + ) = ... + """A connection tracking specification for the network interface.""" + operator: OperatorRequest | None = ... + """Reserved for internal use.""" + subnet_id: str | None = ... + """The ID of the subnet to associate with the network interface.""" + description: str | None = ... + """A description for the network interface.""" + private_ip_address: str | None = ... + """ + The primary private IPv4 address of the network interface. If you don't + specify an IPv4 address, Amazon EC2 selects one for you from the + subnet's IPv4 CIDR range. If you specify an IP address, you cannot + indicate any IP addresses specified in `privateIpAddresses` as primary + (only one IP address can be designated as primary). + """ + groups: list[str] | None = ... + """The IDs of the security groups.""" + private_ip_addresses: list[PrivateIpAddressSpecification] | None = ... + """ + The private IPv4 addresses. + + You can't specify private IPv4 addresses if you've specified one of + the following: a count of private IPv4 addresses, specific IPv4 + prefixes, or a count of IPv4 prefixes. + """ + secondary_private_ip_address_count: int | None = ... + """ + The number of secondary private IPv4 addresses to assign to a network + interface. When you specify a number of secondary IPv4 addresses, Amazon + EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You + can't specify this option and specify more than one private IP address + using `privateIpAddresses`. + + You can't specify a count of private IPv4 addresses if you've + specified one of the following: specific private IPv4 addresses, + specific IPv4 prefixes, or a count of IPv4 prefixes. + """ + ipv6_addresses: list[InstanceIpv6Address] | None = ... + """ + The IPv6 addresses from the IPv6 CIDR block range of your subnet. + + You can't specify IPv6 addresses using this parameter if you've + specified one of the following: a count of IPv6 addresses, specific IPv6 + prefixes, or a count of IPv6 prefixes. + """ + ipv6_address_count: int | None = ... + """ + The number of IPv6 addresses to assign to a network interface. Amazon + EC2 automatically selects the IPv6 addresses from the subnet range. + + You can't specify a count of IPv6 addresses using this parameter if + you've specified one of the following: specific IPv6 addresses, + specific IPv6 prefixes, or a count of IPv6 prefixes. + + If your subnet has the `AssignIpv6AddressOnCreation` attribute set, you + can override that setting by specifying 0 as the IPv6 address count. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateNetworkInterfaceOutput(_SerdeShape): + """Dataclass for CreateNetworkInterfaceOutput structure.""" + + network_interface: NetworkInterface | None = ... + """Information about the network interface.""" + client_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateNetworkInterfacePermissionInput(_SerdeShape): + """Contains the parameters for CreateNetworkInterfacePermission.""" + + network_interface_id: str | None = ... + """The ID of the network interface.""" + aws_account_id: str | None = ... + """The Amazon Web Services account ID.""" + aws_service: str | None = ... + """The Amazon Web Services service. Currently not supported.""" + permission: str | None = ... + """The type of permission to grant.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateNetworkInterfacePermissionOutput(_SerdeShape): + """Contains the output of CreateNetworkInterfacePermission.""" + + interface_permission: NetworkInterfacePermission | None = ... + """Information about the permission for the network interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatePlacementGroupInput(_SerdeShape): + """Dataclass for CreatePlacementGroupInput structure.""" + + partition_count: int | None = ... + """ + The number of partitions. Valid only when **Strategy** is set to + `partition`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the new placement group.""" + spread_level: str | None = ... + """ + Determines how placement groups spread instances. + + - Host -- You can use `host` only with Outpost placement groups. + + - Rack -- No usage restrictions. + """ + linked_group_id: str | None = ... + """Reserved for future use.""" + operator: OperatorRequest | None = ... + """Reserved for internal use.""" + parent_group_id: str | None = ... + """ + The ID of a parent placement group. Valid only when **Strategy** is set + to `cluster`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + group_name: str | None = ... + """ + A name for the placement group. Must be unique within the scope of your + account for the Region. + + Constraints: Up to 255 ASCII characters + """ + strategy: str | None = ... + """The placement strategy.""" + +@dataclass(kw_only=True) +class CreatePlacementGroupOutput(_SerdeShape): + """Dataclass for CreatePlacementGroupOutput structure.""" + + placement_group: PlacementGroup | None = ... + """Information about the placement group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatePublicIpv4PoolInput(_SerdeShape): + """Dataclass for CreatePublicIpv4PoolInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + network_border_group: str | None = ... + """ + The Availability Zone (AZ) or Local Zone (LZ) network border group that + the resource that the IP address is assigned to is in. Defaults to an AZ + network border group. For more information on available Local Zones, see + [Local Zone + availability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class CreatePublicIpv4PoolOutput(_SerdeShape): + """Dataclass for CreatePublicIpv4PoolOutput structure.""" + + pool_id: str | None = ... + """The ID of the public IPv4 pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateReplaceRootVolumeTaskInput(_SerdeShape): + """Dataclass for CreateReplaceRootVolumeTaskInput structure.""" + + instance_id: str | None = ... + """The ID of the instance for which to replace the root volume.""" + snapshot_id: str | None = ... + """ + The ID of the snapshot from which to restore the replacement root + volume. The specified snapshot must be a snapshot that you previously + created from the original root volume. + + If you want to restore the replacement root volume to the initial launch + state, if you want to restore the replacement root volume from an AMI, + or if you want to replace the root volume with a specified volume, omit + this parameter. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. If you do not specify a client token, a randomly + generated token is used for the request to ensure idempotency. For more + information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the root volume replacement task.""" + image_id: str | None = ... + """ + The ID of the AMI to use to restore the root volume. The specified AMI + must have the same product code, billing information, architecture type, + and virtualization type as that of the instance. + + If you want to restore the replacement volume from a specific snapshot, + if you want to restore it to its launch state, or if you want to replace + the root volume with a specified volume, omit this parameter. + """ + delete_replaced_root_volume: bool | None = ... + """ + Indicates whether to automatically delete the original root volume after + the root volume replacement task completes. To delete the original root + volume, specify `true`. If you choose to keep the original root volume + after the replacement task completes, you must manually delete it when + you no longer need it. + """ + volume_initialization_rate: int | None = ... + """ + Specifies the Amazon EBS Provisioned Rate for Volume Initialization + (volume initialization rate), in MiB/s, at which to download the + snapshot blocks from Amazon S3 to the replacement root volume. This is + also known as *volume initialization*. Specifying a volume + initialization rate ensures that the volume is initialized at a + predictable and consistent rate after creation. + + Omit this parameter if: + + - You want to create the volume using fast snapshot restore. You must + specify a snapshot that is enabled for fast snapshot restore. In this + case, the volume is fully initialized at creation. + + Note: + If you specify a snapshot that is enabled for fast snapshot restore + and a volume initialization rate, the volume will be initialized at + the specified rate instead of fast snapshot restore. + + - You want to create a volume that is initialized at the default rate. + + For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EC2 User Guide*. + + Valid range: 100 - 300 MiB/s + """ + volume_id: str | None = ... + """ + The ID of the volume to use as the replacement root volume. The + specified volume must be in the same Availability Zone as the instance, + must be in the `available` state, and must not be attached to an + instance. If the original root volume is encrypted, the specified volume + must also be encrypted. + + If you want to restore the replacement root volume from a specific + snapshot, an AMI, or to its launch state, omit this parameter. + """ + +@dataclass(kw_only=True) +class CreateReplaceRootVolumeTaskOutput(_SerdeShape): + """Dataclass for CreateReplaceRootVolumeTaskOutput structure.""" + + replace_root_volume_task: ReplaceRootVolumeTask | None = ... + """Information about the root volume replacement task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateReservedInstancesListingInput(_SerdeShape): + """Contains the parameters for CreateReservedInstancesListing.""" + + reserved_instances_id: str | None = ... + """The ID of the active Standard Reserved Instance.""" + instance_count: int | None = ... + """ + The number of instances that are a part of a Reserved Instance account + to be listed in the Reserved Instance Marketplace. This number should be + less than or equal to the instance count associated with the Reserved + Instance ID specified in this call. + """ + price_schedules: list[PriceScheduleSpecification] | None = ... + """ + A list specifying the price of the Standard Reserved Instance for each + month remaining in the Reserved Instance term. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure idempotency of + your listings. This helps avoid duplicate listings. For more + information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateReservedInstancesListingOutput(_SerdeShape): + """Contains the output of CreateReservedInstancesListing.""" + + reserved_instances_listings: list[ReservedInstancesListing] | None = ... + """Information about the Standard Reserved Instance listing.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRestoreImageTaskInput(_SerdeShape): + """Dataclass for CreateRestoreImageTaskInput structure.""" + + bucket: str | None = ... + """The name of the Amazon S3 bucket that contains the stored AMI object.""" + object_key: str | None = ... + """The name of the stored AMI object in the bucket.""" + name: str | None = ... + """ + The name for the restored AMI. The name must be unique for AMIs in the + Region for this account. If you do not provide a name, the new AMI gets + the same name as the original AMI. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the AMI and snapshots on restoration. You can tag + the AMI, the snapshots, or both. + + - To tag the AMI, the value for `ResourceType` must be `image`. + + - To tag the snapshots, the value for `ResourceType` must be `snapshot`. + The same tag is applied to all of the snapshots that are created. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateRestoreImageTaskOutput(_SerdeShape): + """Dataclass for CreateRestoreImageTaskOutput structure.""" + + image_id: str | None = ... + """The AMI ID.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRouteInput(_SerdeShape): + """Dataclass for CreateRouteInput structure.""" + + destination_prefix_list_id: str | None = ... + """The ID of a prefix list used for the destination match.""" + vpc_endpoint_id: str | None = ... + """ + The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints + only. + """ + transit_gateway_id: str | None = ... + """The ID of a transit gateway.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + carrier_gateway_id: str | None = ... + """ + The ID of the carrier gateway. + + You can only use this option when the VPC contains a subnet which is + associated with a Wavelength Zone. + """ + core_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the core network.""" + odb_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ODB network.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + route_table_id: str | None = ... + """The ID of the route table for the route.""" + destination_cidr_block: str | None = ... + """ + The IPv4 CIDR address block used for the destination match. Routing + decisions are based on the most specific match. We modify the specified + CIDR block to its canonical form; for example, if you specify + `100.68.0.18/18`, we modify it to `100.68.0.0/18`. + """ + gateway_id: str | None = ... + """ + The ID of an internet gateway or virtual private gateway attached to + your VPC. + """ + destination_ipv6_cidr_block: str | None = ... + """ + The IPv6 CIDR block used for the destination match. Routing decisions + are based on the most specific match. + """ + egress_only_internet_gateway_id: str | None = ... + """[IPv6 traffic only] The ID of an egress-only internet gateway.""" + instance_id: str | None = ... + """ + The ID of a NAT instance in your VPC. The operation fails if you specify + an instance ID unless exactly one network interface is attached. + """ + network_interface_id: str | None = ... + """The ID of a network interface.""" + vpc_peering_connection_id: str | None = ... + """The ID of a VPC peering connection.""" + nat_gateway_id: str | None = ... + """[IPv4 traffic only] The ID of a NAT gateway.""" + +@dataclass(kw_only=True) +class CreateRouteOutput(_SerdeShape): + """Dataclass for CreateRouteOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRouteServerEndpointInput(_SerdeShape): + """Dataclass for CreateRouteServerEndpointInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to create an endpoint.""" + subnet_id: str | None = ... + """The ID of the subnet in which to create the route server endpoint.""" + client_token: str | None = ... + """Unique, case-sensitive identifier to ensure idempotency of the request.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the route server endpoint during creation.""" + +@dataclass(kw_only=True) +class CreateRouteServerEndpointOutput(_SerdeShape): + """Dataclass for CreateRouteServerEndpointOutput structure.""" + + route_server_endpoint: RouteServerEndpoint | None = ... + """Information about the created route server endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRouteServerInput(_SerdeShape): + """Dataclass for CreateRouteServerInput structure.""" + + amazon_side_asn: int | None = ... + """ + The private Autonomous System Number (ASN) for the Amazon side of the + BGP session. Valid values are from 1 to 4294967295. We recommend using a + private ASN in the 64512--65534 (16-bit ASN) or 4200000000--4294967294 + (32-bit ASN) range. + """ + client_token: str | None = ... + """Unique, case-sensitive identifier to ensure idempotency of the request.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + persist_routes: str | None = ... + """ + Indicates whether routes should be persisted after all BGP sessions are + terminated. + """ + persist_routes_duration: int | None = ... + """ + The number of minutes a route server will wait after BGP is + re-established to unpersist the routes in the FIB and RIB. Value must be + in the range of 1-5. Required if PersistRoutes is `enabled`. + + If you set the duration to 1 minute, then when your network appliance + re-establishes BGP with route server, it has 1 minute to relearn it's + adjacent network and advertise those routes to route server before route + server resumes normal functionality. In most cases, 1 minute is probably + sufficient. If, however, you have concerns that your BGP network may not + be capable of fully re-establishing and re-learning everything in 1 + minute, you can increase the duration up to 5 minutes. + """ + sns_notifications_enabled: bool | None = ... + """ + Indicates whether SNS notifications should be enabled for route server + events. Enabling SNS notifications persists BGP status changes to an SNS + topic provisioned by Amazon Web Services. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the route server during creation.""" + +@dataclass(kw_only=True) +class CreateRouteServerOutput(_SerdeShape): + """Dataclass for CreateRouteServerOutput structure.""" + + route_server: RouteServer | None = ... + """Information about the created route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRouteServerPeerInput(_SerdeShape): + """Dataclass for CreateRouteServerPeerInput structure.""" + + route_server_endpoint_id: str | None = ... + """The ID of the route server endpoint for which to create a peer.""" + peer_address: str | None = ... + """The IPv4 address of the peer device.""" + bgp_options: RouteServerBgpOptionsRequest | None = ... + """ + The BGP options for the peer, including ASN (Autonomous System Number) + and BFD (Bidrectional Forwarding Detection) settings. + """ + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the route server peer during creation.""" + +@dataclass(kw_only=True) +class CreateRouteServerPeerOutput(_SerdeShape): + """Dataclass for CreateRouteServerPeerOutput structure.""" + + route_server_peer: RouteServerPeer | None = ... + """Information about the created route server peer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRouteTableInput(_SerdeShape): + """Dataclass for CreateRouteTableInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the route table.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class CreateRouteTableOutput(_SerdeShape): + """Dataclass for CreateRouteTableOutput structure.""" + + route_table: RouteTable | None = ... + """Information about the route table.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSecondaryNetworkInput(_SerdeShape): + """Dataclass for CreateSecondaryNetworkInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + ipv4_cidr_block: str | None = ... + """ + The IPv4 CIDR block for the secondary network. The CIDR block size must + be between /12 and /28. + """ + network_type: str | None = ... + """The type of secondary network.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the secondary network.""" + +@dataclass(kw_only=True) +class CreateSecondaryNetworkOutput(_SerdeShape): + """Dataclass for CreateSecondaryNetworkOutput structure.""" + + secondary_network: SecondaryNetwork | None = ... + """Information about the secondary network.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSecondarySubnetInput(_SerdeShape): + """Dataclass for CreateSecondarySubnetInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + availability_zone: str | None = ... + """ + The Availability Zone for the secondary subnet. You cannot specify both + `AvailabilityZone` and `AvailabilityZoneId` in the same request. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone for the secondary subnet. This option is + preferred over `AvailabilityZone` as it provides a consistent identifier + across Amazon Web Services accounts. You cannot specify both + `AvailabilityZone` and `AvailabilityZoneId` in the same request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + ipv4_cidr_block: str | None = ... + """ + The IPv4 CIDR block for the secondary subnet. The CIDR block size must + be between /12 and /28. + """ + secondary_network_id: str | None = ... + """The ID of the secondary network in which to create the secondary subnet.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the secondary subnet.""" + +@dataclass(kw_only=True) +class CreateSecondarySubnetOutput(_SerdeShape): + """Dataclass for CreateSecondarySubnetOutput structure.""" + + secondary_subnet: SecondarySubnet | None = ... + """Information about the secondary subnet.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSecurityGroupInput(_SerdeShape): + """Dataclass for CreateSecurityGroupInput structure.""" + + description: str | None = ... + """ + A description for the security group. + + Constraints: Up to 255 characters in length + + Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* + """ + group_name: str | None = ... + """ + The name of the security group. Names are case-insensitive and must be + unique within the VPC. + + Constraints: Up to 255 characters in length. Can't start with `sg-`. + + Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* + """ + vpc_id: str | None = ... + """The ID of the VPC. Required for a nondefault VPC.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the security group.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateSecurityGroupOutput(_SerdeShape): + """Dataclass for CreateSecurityGroupOutput structure.""" + + group_id: str | None = ... + """The ID of the security group.""" + tags: list[Tag] | None = ... + """The tags assigned to the security group.""" + security_group_arn: str | None = ... + """The security group ARN.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSnapshotInput(_SerdeShape): + """Dataclass for CreateSnapshotInput structure.""" + + description: str | None = ... + """A description for the snapshot.""" + outpost_arn: str | None = ... + """ + Note: + Only supported for volumes on Outposts. If the source volume is not on + an Outpost, omit this parameter. + + - To create the snapshot on the same Outpost as the source volume, + specify the ARN of that Outpost. The snapshot must be created on the + same Outpost as the volume. + + - To create the snapshot in the parent Region of the Outpost, omit this + parameter. + + For more information, see [Create local snapshots from volumes on an + Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#create-snapshot) + in the *Amazon EBS User Guide*. + """ + volume_id: str | None = ... + """The ID of the Amazon EBS volume.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the snapshot during creation.""" + location: str | None = ... + """ + Note: + Only supported for volumes in Local Zones. If the source volume is not + in a Local Zone, omit this parameter. + + - To create a local snapshot in the same Local Zone as the source + volume, specify `local`. + + - To create a regional snapshot in the parent Region of the Local Zone, + specify `regional` or omit this parameter. + + Default value: `regional` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateSnapshotOutput(_SerdeShape): + """Describes a snapshot.""" + + owner_alias: str | None = ... + """ + The Amazon Web Services owner alias, from an Amazon-maintained list + (`amazon`). This is not the user-configured Amazon Web Services account + alias set using the IAM console. + """ + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the snapshot is stored. For more + information, see [Amazon EBS local snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html) + in the *Amazon EBS User Guide*. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the snapshot.""" + storage_tier: str | None = ... + """ + The storage tier in which the snapshot is stored. `standard` indicates + that the snapshot is stored in the standard snapshot storage tier and + that it is ready for use. `archive` indicates that the snapshot is + currently archived and that it must be restored before it can be used. + """ + restore_expiry_time: datetime | None = ... + """ + Only for archived snapshots that are temporarily restored. Indicates the + date and time when a temporarily restored snapshot will be automatically + re-archived. + """ + sse_type: str | None = ... + """Reserved for future use.""" + availability_zone: str | None = ... + """ + The Availability Zone or Local Zone of the snapshot. For example, + `us-west-1a` (Availability Zone) or `us-west-2-lax-1a` (Local Zone). + """ + transfer_type: str | None = ... + """ + Note: + Only for snapshot copies. + + Indicates whether the snapshot copy was created with a standard or + time-based snapshot copy operation. Time-based snapshot copy operations + complete within the completion duration specified in the request. + Standard snapshot copy operations are completed on a best-effort basis. + + - `standard` - The snapshot copy was created with a standard snapshot + copy operation. + + - `time-based` - The snapshot copy was created with a time-based + snapshot copy operation. + """ + completion_duration_minutes: int | None = ... + """ + Note: + Only for snapshot copies created with time-based snapshot copy + operations. + + The completion duration requested for the time-based snapshot copy + operation. + """ + completion_time: datetime | None = ... + """The time stamp when the snapshot was completed.""" + full_snapshot_size_in_bytes: int | None = ... + """ + The full size of the snapshot, in bytes. + + Warning: + This is **not** the incremental size of the snapshot. This is the full + snapshot size and represents the size of all the blocks that were + written to the source volume at the time the snapshot was created. + """ + snapshot_id: str | None = ... + """ + The ID of the snapshot. Each snapshot receives a unique identifier when + it is created. + """ + volume_id: str | None = ... + """ + The ID of the volume that was used to create the snapshot. Snapshots + created by a copy snapshot operation have an arbitrary volume ID that + you should not use for any purpose. + """ + state: str | None = ... + """The snapshot state.""" + state_message: str | None = ... + """ + Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot + copy operation fails (for example, if the proper KMS permissions are not + obtained) this field displays error state details to help you diagnose + why the error occurred. This parameter is only returned by + DescribeSnapshots. + """ + start_time: datetime | None = ... + """The time stamp when the snapshot was initiated.""" + progress: str | None = ... + """The progress of the snapshot, as a percentage.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the EBS snapshot.""" + description: str | None = ... + """The description for the snapshot.""" + volume_size: int | None = ... + """The size of the volume, in GiB.""" + encrypted: bool | None = ... + """Indicates whether the snapshot is encrypted.""" + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the KMS key that was used to protect + the volume encryption key for the parent volume. + """ + data_encryption_key_id: str | None = ... + """ + The data encryption key identifier for the snapshot. This value is a + unique identifier that corresponds to the data encryption key that was + used to encrypt the original volume or snapshot copy. Because data + encryption keys are inherited by volumes created from snapshots, and + vice versa, if snapshots share the same data encryption key identifier, + then they belong to the same volume/snapshot lineage. This parameter is + only returned by DescribeSnapshots. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSnapshotsInput(_SerdeShape): + """Dataclass for CreateSnapshotsInput structure.""" + + description: str | None = ... + """A description propagated to every snapshot specified by the instance.""" + instance_specification: InstanceSpecification | None = ... + """ + The instance to specify which volumes should be included in the + snapshots. + """ + outpost_arn: str | None = ... + """ + Note: + Only supported for instances on Outposts. If the source instance is not + on an Outpost, omit this parameter. + + - To create the snapshots on the same Outpost as the source instance, + specify the ARN of that Outpost. The snapshots must be created on the + same Outpost as the instance. + + - To create the snapshots in the parent Region of the Outpost, omit this + parameter. + + For more information, see [Create local snapshots from volumes on an + Outpost](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#create-snapshot) + in the *Amazon EBS User Guide*. + """ + tag_specifications: list[TagSpecification] | None = ... + """Tags to apply to every snapshot specified by the instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + copy_tags_from_source: str | None = ... + """Copies the tags from the specified volume to corresponding snapshot.""" + location: str | None = ... + """ + Note: + Only supported for instances in Local Zones. If the source instance is + not in a Local Zone, omit this parameter. + + - To create local snapshots in the same Local Zone as the source + instance, specify `local`. + + - To create regional snapshots in the parent Region of the Local Zone, + specify `regional` or omit this parameter. + + Default value: `regional` + """ + +@dataclass(kw_only=True) +class CreateSnapshotsOutput(_SerdeShape): + """Dataclass for CreateSnapshotsOutput structure.""" + + snapshots: list[SnapshotInfo] | None = ... + """List of snapshots.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSpotDatafeedSubscriptionInput(_SerdeShape): + """Contains the parameters for CreateSpotDatafeedSubscription.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + bucket: str | None = ... + """ + The name of the Amazon S3 bucket in which to store the Spot Instance + data feed. For more information about bucket names, see [Bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) + in the *Amazon S3 User Guide*. + """ + prefix: str | None = ... + """The prefix for the data feed file names.""" + +@dataclass(kw_only=True) +class CreateSpotDatafeedSubscriptionOutput(_SerdeShape): + """Contains the output of CreateSpotDatafeedSubscription.""" + + spot_datafeed_subscription: SpotDatafeedSubscription | None = ... + """The Spot Instance data feed subscription.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStoreImageTaskInput(_SerdeShape): + """Dataclass for CreateStoreImageTaskInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + bucket: str | None = ... + """ + The name of the Amazon S3 bucket in which the AMI object will be stored. + The bucket must be in the Region in which the request is being made. The + AMI object appears in the bucket only after the upload task has + completed. + """ + s3_object_tags: list[S3ObjectTag] | None = ... + """ + The tags to apply to the AMI object that will be stored in the Amazon S3 + bucket. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateStoreImageTaskOutput(_SerdeShape): + """Dataclass for CreateStoreImageTaskOutput structure.""" + + object_key: str | None = ... + """The name of the stored AMI object in the S3 bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSubnetCidrReservationInput(_SerdeShape): + """Dataclass for CreateSubnetCidrReservationInput structure.""" + + subnet_id: str | None = ... + """The ID of the subnet.""" + cidr: str | None = ... + """The IPv4 or IPV6 CIDR range to reserve.""" + reservation_type: str | None = ... + """ + The type of reservation. The reservation type determines how the + reserved IP addresses are assigned to resources. + + - `prefix` - Amazon Web Services assigns the reserved IP addresses to + network interfaces. + + - `explicit` - You assign the reserved IP addresses to network + interfaces. + """ + description: str | None = ... + """The description to assign to the subnet CIDR reservation.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the subnet CIDR reservation.""" + +@dataclass(kw_only=True) +class CreateSubnetCidrReservationOutput(_SerdeShape): + """Dataclass for CreateSubnetCidrReservationOutput structure.""" + + subnet_cidr_reservation: SubnetCidrReservation | None = ... + """Information about the created subnet CIDR reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSubnetInput(_SerdeShape): + """Dataclass for CreateSubnetInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the subnet.""" + availability_zone: str | None = ... + """ + The Availability Zone or Local Zone for the subnet. + + Default: Amazon Web Services selects one for you. If you create more + than one subnet in your VPC, we do not necessarily select a different + zone for each subnet. + + To create a subnet in a Local Zone, set this value to the Local Zone ID, + for example `us-west-2-lax-1a`. For information about the Regions that + support Local Zones, see [Available Local + Zones](https://docs.aws.amazon.com/local-zones/latest/ug/available-local-zones.html). + + To create a subnet in an Outpost, set this value to the Availability + Zone for the Outpost and specify the Outpost ARN. + """ + availability_zone_id: str | None = ... + """The AZ ID or the Local Zone ID of the subnet.""" + cidr_block: str | None = ... + """ + The IPv4 network range for the subnet, in CIDR notation. For example, + `10.0.0.0/24`. We modify the specified CIDR block to its canonical form; + for example, if you specify `100.68.0.18/18`, we modify it to + `100.68.0.0/18`. + + This parameter is not supported for an IPv6 only subnet. + """ + ipv6_cidr_block: str | None = ... + """ + The IPv6 network range for the subnet, in CIDR notation. This parameter + is required for an IPv6 only subnet. + """ + outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Outpost. If you specify an Outpost + ARN, you must also specify the Availability Zone of the Outpost subnet. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + ipv6_native: bool | None = ... + """Indicates whether to create an IPv6 only subnet.""" + ipv4_ipam_pool_id: str | None = ... + """An IPv4 IPAM pool ID for the subnet.""" + ipv4_netmask_length: int | None = ... + """An IPv4 netmask length for the subnet.""" + ipv6_ipam_pool_id: str | None = ... + """An IPv6 IPAM pool ID for the subnet.""" + ipv6_netmask_length: int | None = ... + """An IPv6 netmask length for the subnet.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateSubnetOutput(_SerdeShape): + """Dataclass for CreateSubnetOutput structure.""" + + subnet: Subnet | None = ... + """Information about the subnet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTagsInput(_SerdeShape): + """Dataclass for CreateTagsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + resources: list[str] | None = ... + """ + The IDs of the resources, separated by spaces. + + Constraints: Up to 1000 resource IDs. We recommend breaking up this + request into smaller batches. + """ + tags: list[Tag] | None = ... + """ + The tags. The `value` parameter is required, but if you don't want the + tag to have a value, specify the parameter with no value, and we set the + value to an empty string. + """ + +@dataclass(kw_only=True) +class CreateTagsOutput(_SerdeShape): + """Dataclass for CreateTagsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorFilterInput(_SerdeShape): + """Dataclass for CreateTrafficMirrorFilterInput structure.""" + + description: str | None = ... + """The description of the Traffic Mirror filter.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to a Traffic Mirror filter.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorFilterOutput(_SerdeShape): + """Dataclass for CreateTrafficMirrorFilterOutput structure.""" + + traffic_mirror_filter: TrafficMirrorFilter | None = ... + """Information about the Traffic Mirror filter.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorFilterRuleInput(_SerdeShape): + """Dataclass for CreateTrafficMirrorFilterRuleInput structure.""" + + traffic_mirror_filter_id: str | None = ... + """The ID of the filter that this rule is associated with.""" + traffic_direction: str | None = ... + """The type of traffic.""" + rule_number: int | None = ... + """ + The number of the Traffic Mirror rule. This number must be unique for + each Traffic Mirror rule in a given direction. The rules are processed + in ascending order by rule number. + """ + rule_action: str | None = ... + """The action to take on the filtered traffic.""" + destination_port_range: TrafficMirrorPortRangeRequest | None = ... + """The destination port range.""" + source_port_range: TrafficMirrorPortRangeRequest | None = ... + """The source port range.""" + protocol: int | None = ... + """ + The protocol, for example UDP, to assign to the Traffic Mirror rule. + + For information about the protocol value, see [Protocol + Numbers](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) + on the Internet Assigned Numbers Authority (IANA) website. + """ + destination_cidr_block: str | None = ... + """The destination CIDR block to assign to the Traffic Mirror rule.""" + source_cidr_block: str | None = ... + """The source CIDR block to assign to the Traffic Mirror rule.""" + description: str | None = ... + """The description of the Traffic Mirror rule.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """Traffic Mirroring tags specifications.""" + +@dataclass(kw_only=True) +class CreateTrafficMirrorFilterRuleOutput(_SerdeShape): + """Dataclass for CreateTrafficMirrorFilterRuleOutput structure.""" + + traffic_mirror_filter_rule: TrafficMirrorFilterRule | None = ... + """The Traffic Mirror rule.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorSessionInput(_SerdeShape): + """Dataclass for CreateTrafficMirrorSessionInput structure.""" + + network_interface_id: str | None = ... + """The ID of the source network interface.""" + traffic_mirror_target_id: str | None = ... + """The ID of the Traffic Mirror target.""" + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + packet_length: int | None = ... + """ + The number of bytes in each packet to mirror. These are bytes after the + VXLAN header. Do not specify this parameter when you want to mirror the + entire packet. To mirror a subset of the packet, set this to the length + (in bytes) that you want to mirror. For example, if you set this value + to 100, then the first 100 bytes that meet the filter criteria are + copied to the target. + + If you do not want to mirror the entire packet, use the `PacketLength` + parameter to specify the number of bytes in each packet to mirror. + + For sessions with Network Load Balancer (NLB) Traffic Mirror targets the + default `PacketLength` will be set to 8500. Valid values are 1-8500. + Setting a `PacketLength` greater than 8500 will result in an error + response. + """ + session_number: int | None = ... + """ + The session number determines the order in which sessions are evaluated + when an interface is used by multiple sessions. The first session with a + matching filter is the one that mirrors the packets. + + Valid values are 1-32766. + """ + virtual_network_id: int | None = ... + """ + The VXLAN ID for the Traffic Mirror session. For more information about + the VXLAN protocol, see [RFC + 7348](https://datatracker.ietf.org/doc/html/rfc7348). If you do not + specify a `VirtualNetworkId`, an account-wide unique ID is chosen at + random. + """ + description: str | None = ... + """The description of the Traffic Mirror session.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to a Traffic Mirror session.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorSessionOutput(_SerdeShape): + """Dataclass for CreateTrafficMirrorSessionOutput structure.""" + + traffic_mirror_session: TrafficMirrorSession | None = ... + """Information about the Traffic Mirror session.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTrafficMirrorTargetInput(_SerdeShape): + """Dataclass for CreateTrafficMirrorTargetInput structure.""" + + network_interface_id: str | None = ... + """The network interface ID that is associated with the target.""" + network_load_balancer_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Network Load Balancer that is + associated with the target. + """ + description: str | None = ... + """The description of the Traffic Mirror target.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Traffic Mirror target.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + gateway_load_balancer_endpoint_id: str | None = ... + """The ID of the Gateway Load Balancer endpoint.""" + +@dataclass(kw_only=True) +class CreateTrafficMirrorTargetOutput(_SerdeShape): + """Dataclass for CreateTrafficMirrorTargetOutput structure.""" + + traffic_mirror_target: TrafficMirrorTarget | None = ... + """Information about the Traffic Mirror target.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayConnectInput(_SerdeShape): + """Dataclass for CreateTransitGatewayConnectInput structure.""" + + transport_transit_gateway_attachment_id: str | None = ... + """ + The ID of the transit gateway attachment. You can specify a VPC + attachment or Amazon Web Services Direct Connect attachment. + """ + options: CreateTransitGatewayConnectRequestOptions | None = ... + """The Connect attachment options.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Connect attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayConnectOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayConnectOutput structure.""" + + transit_gateway_connect: TransitGatewayConnect | None = ... + """Information about the Connect attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayConnectPeerInput(_SerdeShape): + """Dataclass for CreateTransitGatewayConnectPeerInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Connect attachment.""" + transit_gateway_address: str | None = ... + """ + The peer IP address (GRE outer IP address) on the transit gateway side + of the Connect peer, which must be specified from a transit gateway CIDR + block. If not specified, Amazon automatically assigns the first + available IP address from the transit gateway CIDR block. + """ + peer_address: str | None = ... + """ + The peer IP address (GRE outer IP address) on the appliance side of the + Connect peer. + """ + bgp_options: TransitGatewayConnectRequestBgpOptions | None = ... + """The BGP options for the Connect peer.""" + inside_cidr_blocks: list[str] | None = ... + """ + The range of inside IP addresses that are used for BGP peering. You must + specify a size /29 IPv4 CIDR block from the `169.254.0.0/16` range. The + first address from the range must be configured on the appliance as the + BGP IP address. You can also optionally specify a size /125 IPv6 CIDR + block from the `fd00::/8` range. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Connect peer.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayConnectPeerOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayConnectPeerOutput structure.""" + + transit_gateway_connect_peer: TransitGatewayConnectPeer | None = ... + """Information about the Connect peer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayConnectRequestOptions(_SerdeShape): + """The options for a Connect attachment.""" + + protocol: str | None = ... + """The tunnel protocol.""" + +@dataclass(kw_only=True) +class CreateTransitGatewayInput(_SerdeShape): + """Dataclass for CreateTransitGatewayInput structure.""" + + description: str | None = ... + """A description of the transit gateway.""" + options: TransitGatewayRequestOptions | None = ... + """The transit gateway options.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the transit gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMeteringPolicyEntryInput(_SerdeShape): + """Dataclass for CreateTransitGatewayMeteringPolicyEntryInput structure.""" + + transit_gateway_metering_policy_id: str | None = ... + """The ID of the transit gateway metering policy to add the entry to.""" + policy_rule_number: int | None = ... + """ + The rule number for the metering policy entry. Rules are processed in + order from lowest to highest number. + """ + source_transit_gateway_attachment_id: str | None = ... + """The ID of the source transit gateway attachment for traffic matching.""" + source_transit_gateway_attachment_type: str | None = ... + """ + The type of the source transit gateway attachment for traffic matching. + Note that the `tgw-peering` resource type has been deprecated. To + configure metering policies for Connect, use the transport attachment + type. + """ + source_cidr_block: str | None = ... + """The source CIDR block for traffic matching.""" + source_port_range: str | None = ... + """The source port range for traffic matching.""" + destination_transit_gateway_attachment_id: str | None = ... + """ + The ID of the destination transit gateway attachment for traffic + matching. + """ + destination_transit_gateway_attachment_type: str | None = ... + """ + The type of the destination transit gateway attachment for traffic + matching. Note that the `tgw-peering` resource type has been deprecated. + To configure metering policies for Connect, use the transport attachment + type. + """ + destination_cidr_block: str | None = ... + """The destination CIDR block for traffic matching.""" + destination_port_range: str | None = ... + """The destination port range for traffic matching.""" + protocol: str | None = ... + """The protocol for traffic matching (1, 6, 17, etc.).""" + metered_account: str | None = ... + """ + The Amazon Web Services account ID to which the metered traffic should + be attributed. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMeteringPolicyEntryOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayMeteringPolicyEntryOutput structure.""" + + transit_gateway_metering_policy_entry: ( + TransitGatewayMeteringPolicyEntry | None + ) = ... + """Information about the created transit gateway metering policy entry.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMeteringPolicyInput(_SerdeShape): + """Dataclass for CreateTransitGatewayMeteringPolicyInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway for which to create the metering policy.""" + middlebox_attachment_ids: list[str] | None = ... + """The IDs of the middlebox attachments to include in the metering policy.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the metering policy.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMeteringPolicyOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayMeteringPolicyOutput structure.""" + + transit_gateway_metering_policy: TransitGatewayMeteringPolicy | None = ... + """Information about the created transit gateway metering policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMulticastDomainInput(_SerdeShape): + """Dataclass for CreateTransitGatewayMulticastDomainInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + options: CreateTransitGatewayMulticastDomainRequestOptions | None = ... + """The options for the transit gateway multicast domain.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags for the transit gateway multicast domain.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMulticastDomainOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayMulticastDomainOutput structure.""" + + transit_gateway_multicast_domain: TransitGatewayMulticastDomain | None = ... + """Information about the transit gateway multicast domain.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayMulticastDomainRequestOptions(_SerdeShape): + """The options for the transit gateway multicast domain.""" + + igmpv2_support: str | None = ... + """ + Specify whether to enable Internet Group Management Protocol (IGMP) + version 2 for the transit gateway multicast domain. + """ + static_sources_support: str | None = ... + """ + Specify whether to enable support for statically configuring multicast + group sources for a domain. + """ + auto_accept_shared_associations: str | None = ... + """ + Indicates whether to automatically accept cross-account subnet + associations that are associated with the transit gateway multicast + domain. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayOutput structure.""" + + transit_gateway: TransitGateway | None = ... + """Information about the transit gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPeeringAttachmentInput(_SerdeShape): + """Dataclass for CreateTransitGatewayPeeringAttachmentInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + peer_transit_gateway_id: str | None = ... + """ + The ID of the peer transit gateway with which to create the peering + attachment. + """ + peer_account_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the peer transit + gateway. + """ + peer_region: str | None = ... + """The Region where the peer transit gateway is located.""" + options: CreateTransitGatewayPeeringAttachmentRequestOptions | None = ... + """Requests a transit gateway peering attachment.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the transit gateway peering attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPeeringAttachmentOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayPeeringAttachmentOutput structure.""" + + transit_gateway_peering_attachment: TransitGatewayPeeringAttachment | None = ... + """The transit gateway peering attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPeeringAttachmentRequestOptions(_SerdeShape): + """ + Describes whether dynamic routing is enabled or disabled for the transit + gateway peering request. + """ + + dynamic_routing: str | None = ... + """Indicates whether dynamic routing is enabled or disabled.""" + +@dataclass(kw_only=True) +class CreateTransitGatewayPolicyTableEntryInput(_SerdeShape): + """Dataclass for CreateTransitGatewayPolicyTableEntryInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + policy_rule_number: str | None = ... + """ + The rule number for the policy table entry. Lower rule numbers are + evaluated first and take precedence. + """ + policy_rule: TransitGatewayRequestPolicyRule | None = ... + """The matching criteria for the policy table entry.""" + target_route_table_id: str | None = ... + """ + The ID of the transit gateway route table to use for traffic matching + this rule. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPolicyTableEntryOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayPolicyTableEntryOutput structure.""" + + transit_gateway_policy_table_entry: TransitGatewayPolicyTableEntry | None = ... + """Describes a transit gateway policy table entry""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPolicyTableInput(_SerdeShape): + """Dataclass for CreateTransitGatewayPolicyTableInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway used for the policy table.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The tags specification for the transit gateway policy table created + during the request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPolicyTableOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayPolicyTableOutput structure.""" + + transit_gateway_policy_table: TransitGatewayPolicyTable | None = ... + """Describes the created transit gateway policy table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPrefixListReferenceInput(_SerdeShape): + """Dataclass for CreateTransitGatewayPrefixListReferenceInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + prefix_list_id: str | None = ... + """The ID of the prefix list that is used for destination matches.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment to which traffic is routed.""" + blackhole: bool | None = ... + """Indicates whether to drop traffic that matches this route.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayPrefixListReferenceOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayPrefixListReferenceOutput structure.""" + + transit_gateway_prefix_list_reference: ( + TransitGatewayPrefixListReference | None + ) = ... + """Information about the prefix list reference.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteInput(_SerdeShape): + """Dataclass for CreateTransitGatewayRouteInput structure.""" + + destination_cidr_block: str | None = ... + """ + The CIDR range used for destination matches. Routing decisions are based + on the most specific match. + """ + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + blackhole: bool | None = ... + """Indicates whether to drop traffic that matches this route.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayRouteOutput structure.""" + + route: TransitGatewayRoute | None = ... + """Information about the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteTableAnnouncementInput(_SerdeShape): + """Dataclass for CreateTransitGatewayRouteTableAnnouncementInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + peering_attachment_id: str | None = ... + """The ID of the peering attachment.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The tags specifications applied to the transit gateway route table + announcement. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteTableAnnouncementOutput(_SerdeShape): + """ + Dataclass for CreateTransitGatewayRouteTableAnnouncementOutput + structure. + """ + + transit_gateway_route_table_announcement: ( + TransitGatewayRouteTableAnnouncement | None + ) = ... + """Provides details about the transit gateway route table announcement.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteTableInput(_SerdeShape): + """Dataclass for CreateTransitGatewayRouteTableInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the transit gateway route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayRouteTableOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayRouteTableOutput structure.""" + + transit_gateway_route_table: TransitGatewayRouteTable | None = ... + """Information about the transit gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayVpcAttachmentInput(_SerdeShape): + """Dataclass for CreateTransitGatewayVpcAttachmentInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + subnet_ids: list[str] | None = ... + """ + The IDs of one or more subnets. You can specify only one subnet per + Availability Zone. You must specify at least one subnet, but we + recommend that you specify two subnets for better availability. The + transit gateway uses one IP address from each specified subnet. + """ + options: CreateTransitGatewayVpcAttachmentRequestOptions | None = ... + """The VPC attachment options.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the VPC attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayVpcAttachmentOutput(_SerdeShape): + """Dataclass for CreateTransitGatewayVpcAttachmentOutput structure.""" + + transit_gateway_vpc_attachment: TransitGatewayVpcAttachment | None = ... + """Information about the VPC attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTransitGatewayVpcAttachmentRequestOptions(_SerdeShape): + """Describes the options for a VPC attachment.""" + + dns_support: str | None = ... + """Enable or disable DNS support. The default is `enable`.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is set to `enable` by default. However, at the transit + gateway level the default is set to `disable`. + + For more information about security group referencing, see [Security + group + referencing](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + in the *Amazon Web Services Transit Gateways Guide*. + """ + ipv6_support: str | None = ... + """ + Specifies whether IPv6 support is enabled for the attachment. When + enabled, the transit gateway network interface receives an IPv6 address. + When you enable route propagation, IPv6 VPC CIDRs propagate to the + transit gateway route tables. When disabled, the network interface does + not receive an IPv6 address, and IPv6 routes do not propagate. The + setting does not filter IPv6 traffic. The default is `disable`. + """ + appliance_mode_support: str | None = ... + """ + Enable or disable support for appliance mode. If enabled, a traffic flow + between a source and destination uses the same Availability Zone for the + VPC attachment for the lifetime of that flow. The default is `disable`. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointCidrOptions(_SerdeShape): + """Describes the CIDR options for a Verified Access endpoint.""" + + protocol: str | None = ... + """The protocol.""" + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + cidr: str | None = ... + """The CIDR.""" + port_ranges: list[CreateVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointEniOptions(_SerdeShape): + """ + Describes the network interface options when creating an Amazon Web + Services Verified Access endpoint using the `network-interface` type. + """ + + network_interface_id: str | None = ... + """The ID of the network interface.""" + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + port_ranges: list[CreateVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointInput(_SerdeShape): + """Dataclass for CreateVerifiedAccessEndpointInput structure.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group to associate the endpoint with.""" + endpoint_type: str | None = ... + """The type of Verified Access endpoint to create.""" + attachment_type: str | None = ... + """The type of attachment.""" + domain_certificate_arn: str | None = ... + """ + The ARN of the public TLS/SSL certificate in Amazon Web Services + Certificate Manager to associate with the endpoint. The CN in the + certificate must match the DNS name your end users will use to reach + your application. + """ + application_domain: str | None = ... + """The DNS name for users to reach your application.""" + endpoint_domain_prefix: str | None = ... + """ + A custom identifier that is prepended to the DNS name that is generated + for the endpoint. + """ + security_group_ids: list[str] | None = ... + """ + The IDs of the security groups to associate with the Verified Access + endpoint. Required if `AttachmentType` is set to `vpc`. + """ + load_balancer_options: CreateVerifiedAccessEndpointLoadBalancerOptions | None = ... + """ + The load balancer details. This parameter is required if the endpoint + type is `load-balancer`. + """ + network_interface_options: CreateVerifiedAccessEndpointEniOptions | None = ... + """ + The network interface details. This parameter is required if the + endpoint type is `network-interface`. + """ + description: str | None = ... + """A description for the Verified Access endpoint.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Verified Access endpoint.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + rds_options: CreateVerifiedAccessEndpointRdsOptions | None = ... + """ + The RDS details. This parameter is required if the endpoint type is + `rds`. + """ + cidr_options: CreateVerifiedAccessEndpointCidrOptions | None = ... + """ + The CIDR options. This parameter is required if the endpoint type is + `cidr`. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointLoadBalancerOptions(_SerdeShape): + """ + Describes the load balancer options when creating an Amazon Web Services + Verified Access endpoint using the `load-balancer` type. + """ + + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + load_balancer_arn: str | None = ... + """The ARN of the load balancer.""" + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets. You can specify only one subnet per Availability + Zone. + """ + port_ranges: list[CreateVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointOutput(_SerdeShape): + """Dataclass for CreateVerifiedAccessEndpointOutput structure.""" + + verified_access_endpoint: VerifiedAccessEndpoint | None = ... + """Details about the Verified Access endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointPortRange(_SerdeShape): + """Describes the port range for a Verified Access endpoint.""" + + from_port: int | None = ... + """The start of the port range.""" + to_port: int | None = ... + """The end of the port range.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessEndpointRdsOptions(_SerdeShape): + """Describes the RDS options for a Verified Access endpoint.""" + + protocol: str | None = ... + """The protocol.""" + port: int | None = ... + """The port.""" + rds_db_instance_arn: str | None = ... + """The ARN of the RDS instance.""" + rds_db_cluster_arn: str | None = ... + """The ARN of the DB cluster.""" + rds_db_proxy_arn: str | None = ... + """The ARN of the RDS proxy.""" + rds_endpoint: str | None = ... + """The RDS endpoint.""" + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets. You can specify only one subnet per Availability + Zone. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessGroupInput(_SerdeShape): + """Dataclass for CreateVerifiedAccessGroupInput structure.""" + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + description: str | None = ... + """A description for the Verified Access group.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Verified Access group.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessGroupOutput(_SerdeShape): + """Dataclass for CreateVerifiedAccessGroupOutput structure.""" + + verified_access_group: VerifiedAccessGroup | None = ... + """Details about the Verified Access group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessInstanceInput(_SerdeShape): + """Dataclass for CreateVerifiedAccessInstanceInput structure.""" + + description: str | None = ... + """A description for the Verified Access instance.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Verified Access instance.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fips_enabled: bool | None = ... + """ + Enable or disable support for Federal Information Processing Standards + (FIPS) on the instance. + """ + cidr_endpoints_custom_sub_domain: str | None = ... + """The custom subdomain.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessInstanceOutput(_SerdeShape): + """Dataclass for CreateVerifiedAccessInstanceOutput structure.""" + + verified_access_instance: VerifiedAccessInstance | None = ... + """Details about the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessNativeApplicationOidcOptions(_SerdeShape): + """Describes the OpenID Connect (OIDC) options.""" + + public_signing_key_endpoint: str | None = ... + """The public signing key endpoint.""" + issuer: str | None = ... + """The OIDC issuer identifier of the IdP.""" + authorization_endpoint: str | None = ... + """The authorization endpoint of the IdP.""" + token_endpoint: str | None = ... + """The token endpoint of the IdP.""" + user_info_endpoint: str | None = ... + """The user info endpoint of the IdP.""" + client_id: str | None = ... + """The OAuth 2.0 client identifier.""" + client_secret: str | None = ... + """The OAuth 2.0 client secret.""" + scope: str | None = ... + """The set of user claims to be requested from the IdP.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessTrustProviderDeviceOptions(_SerdeShape): + """ + Describes the options when creating an Amazon Web Services Verified + Access trust provider using the `device` type. + """ + + tenant_id: str | None = ... + """The ID of the tenant application with the device-identity provider.""" + public_signing_key_url: str | None = ... + """ + The URL Amazon Web Services Verified Access will use to verify the + authenticity of the device tokens. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessTrustProviderInput(_SerdeShape): + """Dataclass for CreateVerifiedAccessTrustProviderInput structure.""" + + trust_provider_type: str | None = ... + """The type of trust provider.""" + user_trust_provider_type: str | None = ... + """ + The type of user-based trust provider. This parameter is required when + the provider type is `user`. + """ + device_trust_provider_type: str | None = ... + """ + The type of device-based trust provider. This parameter is required when + the provider type is `device`. + """ + oidc_options: CreateVerifiedAccessTrustProviderOidcOptions | None = ... + """ + The options for a OpenID Connect-compatible user-identity trust + provider. This parameter is required when the provider type is `user`. + """ + device_options: CreateVerifiedAccessTrustProviderDeviceOptions | None = ... + """ + The options for a device-based trust provider. This parameter is + required when the provider type is `device`. + """ + policy_reference_name: str | None = ... + """The identifier to be used when working with policy rules.""" + description: str | None = ... + """A description for the Verified Access trust provider.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the Verified Access trust provider.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + native_application_oidc_options: ( + CreateVerifiedAccessNativeApplicationOidcOptions | None + ) = ... + """The OpenID Connect (OIDC) options.""" + +@dataclass(kw_only=True) +class CreateVerifiedAccessTrustProviderOidcOptions(_SerdeShape): + """ + Describes the options when creating an Amazon Web Services Verified + Access trust provider using the `user` type. + """ + + issuer: str | None = ... + """The OIDC issuer.""" + authorization_endpoint: str | None = ... + """The OIDC authorization endpoint.""" + token_endpoint: str | None = ... + """The OIDC token endpoint.""" + user_info_endpoint: str | None = ... + """The OIDC user info endpoint.""" + client_id: str | None = ... + """The client identifier.""" + client_secret: str | None = ... + """The client secret.""" + scope: str | None = ... + """ + OpenID Connect (OIDC) scopes are used by an application during + authentication to authorize access to a user's details. Each scope + returns a specific set of user attributes. + """ + +@dataclass(kw_only=True) +class CreateVerifiedAccessTrustProviderOutput(_SerdeShape): + """Dataclass for CreateVerifiedAccessTrustProviderOutput structure.""" + + verified_access_trust_provider: VerifiedAccessTrustProvider | None = ... + """Details about the Verified Access trust provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVolumeInput(_SerdeShape): + """Dataclass for CreateVolumeInput structure.""" + + availability_zone: str | None = ... + """ + The ID of the Availability Zone in which to create the volume. For + example, `us-east-1a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which to create the volume. For + example, `use1-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + encrypted: bool | None = ... + """ + Indicates whether the volume should be encrypted. The effect of setting + the encryption state to `true` depends on the volume origin (new or from + a snapshot), starting encryption state, ownership, and whether + encryption by default is enabled. For more information, see [Encryption + by + default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) + in the *Amazon EBS User Guide*. + + Encrypted Amazon EBS volumes must be attached to instances that support + Amazon EBS encryption. For more information, see [Supported instance + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances). + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) to provision for the + volume. Required for `io1` and `io2` volumes. Optional for `gp3` + volumes. Omit for all other volume types. + + Valid ranges: + + - gp3: `3,000 `(*default*)` - 80,000` IOPS + + - io1: `100 - 64,000` IOPS + + - io2: `100 - 256,000` IOPS + + Note: + [Instances built on the Nitro + System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) + can support up to 256,000 IOPS. Other instances can support up to 32,000 + IOPS. + """ + kms_key_id: str | None = ... + """ + The identifier of the KMS key to use for Amazon EBS encryption. If this + parameter is not specified, your KMS key for Amazon EBS is used. If + `KmsKeyId` is specified, the encrypted state must be `true`. + + You can specify the KMS key using any of the following: + + - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + - Key alias. For example, alias/ExampleAlias. + + - Key ARN. For example, + arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + - Alias ARN. For example, + arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + + Amazon Web Services authenticates the KMS key asynchronously. Therefore, + if you specify an ID, alias, or ARN that is not valid, the action can + appear to complete, but eventually fails. + """ + outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Outpost on which to create the + volume. + + If you intend to use a volume with an instance running on an outpost, + then you must create the volume on the same outpost as the instance. You + can't use a volume created in an Amazon Web Services Region with an + instance on an Amazon Web Services outpost, or the other way around. + """ + size: int | None = ... + """ + The size of the volume, in GiBs. You must specify either a snapshot ID + or a volume size. If you specify a snapshot, the default is the snapshot + size, and you can specify a volume size that is equal to or larger than + the snapshot size. + + Valid sizes: + + - gp2: `1 - 16,384` GiB + + - gp3: `1 - 65,536` GiB + + - io1: `4 - 16,384` GiB + + - io2: `4 - 65,536` GiB + + - st1 and sc1: `125 - 16,384` GiB + + - standard: `1 - 1024` GiB + """ + snapshot_id: str | None = ... + """ + The snapshot from which to create the volume. You must specify either a + snapshot ID or a volume size. + """ + volume_type: str | None = ... + """ + The volume type. This parameter can be one of the following values: + + - General Purpose SSD: `gp2` | `gp3` + + - Provisioned IOPS SSD: `io1` | `io2` + + - Throughput Optimized HDD: `st1` + + - Cold HDD: `sc1` + + - Magnetic: `standard` + + Warning: + Throughput Optimized HDD (`st1`) and Cold HDD (`sc1`) volumes can't be + used as boot volumes. + + For more information, see [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + + Default: `gp2` + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the volume during creation.""" + multi_attach_enabled: bool | None = ... + """ + Indicates whether to enable Amazon EBS Multi-Attach. If you enable + Multi-Attach, you can attach the volume to up to 16 [Instances built on + the Nitro + System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) + in the same Availability Zone. This parameter is supported with `io1` + and `io2` volumes only. For more information, see [Amazon EBS + Multi-Attach](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html) + in the *Amazon EBS User Guide*. + """ + throughput: int | None = ... + """ + The throughput to provision for the volume, in MiB/s. Supported for + `gp3` volumes only. Omit for all other volume types. + + Valid Range: `125 - 2000` MiB/s + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + volume_initialization_rate: int | None = ... + """ + Specifies the Amazon EBS Provisioned Rate for Volume Initialization + (volume initialization rate), in MiB/s, at which to download the + snapshot blocks from Amazon S3 to the volume. This is also known as + *volume initialization*. Specifying a volume initialization rate ensures + that the volume is initialized at a predictable and consistent rate + after creation. + + This parameter is supported only for volumes created from snapshots. + Omit this parameter if: + + - You want to create the volume using fast snapshot restore. You must + specify a snapshot that is enabled for fast snapshot restore. In this + case, the volume is fully initialized at creation. + + Note: + If you specify a snapshot that is enabled for fast snapshot restore + and a volume initialization rate, the volume will be initialized at + the specified rate instead of fast snapshot restore. + + - You want to create a volume that is initialized at the default rate. + + For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EC2 User Guide*. + + Valid range: 100 - 300 MiB/s + """ + operator: OperatorRequest | None = ... + """Reserved for internal use.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateVolumeOutput(_SerdeShape): + """Describes a volume.""" + + availability_zone_id: str | None = ... + """The ID of the Availability Zone for the volume.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + source_volume_id: str | None = ... + """ + The ID of the source volume from which the volume copy was created. Only + for volume copies. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the volume.""" + volume_type: str | None = ... + """The volume type.""" + fast_restored: bool | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Indicates whether the volume was created using fast snapshot restore. + """ + multi_attach_enabled: bool | None = ... + """Indicates whether Amazon EBS Multi-Attach is enabled.""" + throughput: int | None = ... + """The throughput that the volume supports, in MiB/s.""" + sse_type: str | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Reserved for future use. + """ + operator: OperatorResponse | None = ... + """The service provider that manages the volume.""" + volume_initialization_rate: int | None = ... + """ + The Amazon EBS Provisioned Rate for Volume Initialization (volume + initialization rate) specified for the volume during creation, in MiB/s. + If no volume initialization rate was specified, the value is `null`. + """ + volume_arn: str | None = ... + """The Amazon Resource Name (ARN) of the volume.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the volume.""" + volume_id: str | None = ... + """The ID of the volume.""" + size: int | None = ... + """The size of the volume, in GiBs.""" + snapshot_id: str | None = ... + """The snapshot from which the volume was created, if applicable.""" + availability_zone: str | None = ... + """The Availability Zone for the volume.""" + state: str | None = ... + """The volume state.""" + create_time: datetime | None = ... + """The time stamp when volume creation was initiated.""" + attachments: list[VolumeAttachment] | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Information about the volume attachments. + """ + encrypted: bool | None = ... + """Indicates whether the volume is encrypted.""" + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the KMS key that was used to protect + the volume encryption key for the volume. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVolumePermission(_SerdeShape): + """ + Describes the user or group to be added or removed from the list of + create volume permissions for a volume. + """ + + user_id: str | None = ... + """The ID of the Amazon Web Services account to be added or removed.""" + group: str | None = ... + """The group to be added or removed. The possible value is `all`.""" + +@dataclass(kw_only=True) +class CreateVolumePermissionModifications(_SerdeShape): + """ + Describes modifications to the list of create volume permissions for a + volume. + """ + + add: list[CreateVolumePermission] | None = ... + """Adds the specified Amazon Web Services account ID or group to the list.""" + remove: list[CreateVolumePermission] | None = ... + """ + Removes the specified Amazon Web Services account ID or group from the + list. + """ + +@dataclass(kw_only=True) +class CreateVpcBlockPublicAccessExclusionInput(_SerdeShape): + """Dataclass for CreateVpcBlockPublicAccessExclusionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + subnet_id: str | None = ... + """A subnet ID.""" + vpc_id: str | None = ... + """A VPC ID.""" + internet_gateway_exclusion_mode: str | None = ... + """ + The exclusion mode for internet gateway traffic. + + - `allow-bidirectional`: Allow all internet traffic to and from the + excluded VPCs and subnets. + + - `allow-egress`: Allow outbound internet traffic from the excluded VPCs + and subnets. Block inbound internet traffic to the excluded VPCs and + subnets. Only applies when VPC Block Public Access is set to + Bidirectional. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + `tag` - The key/value combination of a tag assigned to the resource. Use + the tag key in the filter name and the tag value as the filter value. + For example, to find all resources that have a tag with the key `Owner` + and the value `TeamA`, specify `tag:Owner` for the filter name and + `TeamA` for the filter value. + """ + +@dataclass(kw_only=True) +class CreateVpcBlockPublicAccessExclusionOutput(_SerdeShape): + """Dataclass for CreateVpcBlockPublicAccessExclusionOutput structure.""" + + vpc_block_public_access_exclusion: VpcBlockPublicAccessExclusion | None = ... + """Details about an exclusion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcEncryptionControlInput(_SerdeShape): + """Dataclass for CreateVpcEncryptionControlInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """ + The ID of the VPC for which to create the encryption control + configuration. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the VPC Encryption Control resource.""" + +@dataclass(kw_only=True) +class CreateVpcEncryptionControlOutput(_SerdeShape): + """Dataclass for CreateVpcEncryptionControlOutput structure.""" + + vpc_encryption_control: VpcEncryptionControl | None = ... + """Information about the VPC Encryption Control configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcEndpointConnectionNotificationInput(_SerdeShape): + """Dataclass for CreateVpcEndpointConnectionNotificationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the endpoint service.""" + vpc_endpoint_id: str | None = ... + """The ID of the endpoint.""" + connection_notification_arn: str | None = ... + """The ARN of the SNS topic for the notifications.""" + connection_events: list[str] | None = ... + """ + The endpoint events for which to receive notifications. Valid values are + `Accept`, `Connect`, `Delete`, and `Reject`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class CreateVpcEndpointConnectionNotificationOutput(_SerdeShape): + """Dataclass for CreateVpcEndpointConnectionNotificationOutput structure.""" + + connection_notification: ConnectionNotification | None = ... + """Information about the notification.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcEndpointInput(_SerdeShape): + """Dataclass for CreateVpcEndpointInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_endpoint_type: str | None = ... + """ + The type of endpoint. + + For more information about the types of VPC endpoints, see [VPC + endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html#concepts-vpc-endpoints) + in the *Amazon Web Services PrivateLink User Guide*. + + Default: Gateway + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + service_name: str | None = ... + """The name of the endpoint service.""" + policy_document: str | None = ... + """ + (Interface and gateway endpoints) A policy to attach to the endpoint + that controls access to the service. The policy must be in valid JSON + format. If this parameter is not specified, we attach a default policy + that allows full access to the service. + """ + route_table_ids: list[str] | None = ... + """(Gateway endpoint) The route table IDs.""" + subnet_ids: list[str] | None = ... + """ + (Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, + and Tunnel endpoints only) The IDs of the subnets in which to create + endpoint network interfaces. For a Gateway Load Balancer endpoint, you + can specify only one subnet. For a `Tunnel` endpoint, the subnets must + be in the Availability Zones of the resource gateway associated with the + shared resource configuration. An endpoint network interface is created + only in an Availability Zone that the resource gateway is also in. + """ + security_group_ids: list[str] | None = ... + """ + (Interface, Resource, ServiceNetwork, and Tunnel endpoints only) The IDs + of the security groups to associate with the endpoint network + interfaces. If this parameter is not specified, we use the default + security group for the VPC. + """ + ip_address_type: str | None = ... + """The IP address type for the endpoint.""" + dns_options: DnsOptionsSpecification | None = ... + """The DNS options for the endpoint.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + private_dns_enabled: bool | None = ... + """ + (Interface endpoint) Indicates whether to associate a private hosted + zone with the specified VPC. The private hosted zone contains a record + set for the default public DNS name for the service for the Region (for + example, `kinesis.us-east-1.amazonaws.com`), which resolves to the + private IP addresses of the endpoint network interfaces in the VPC. This + enables you to make requests to the default public DNS name for the + service instead of the public DNS names that are automatically generated + by the VPC endpoint service. + + To use a private hosted zone, you must set the following VPC attributes + to `true`: `enableDnsHostnames` and `enableDnsSupport`. Use + ModifyVpcAttribute to set the VPC attributes. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to associate with the endpoint.""" + subnet_configurations: list[SubnetConfiguration] | None = ... + """The subnet configurations for the endpoint.""" + service_network_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of a service network that will be + associated with the VPC endpoint of type service-network. + """ + resource_configuration_arn: str | None = ... + """ + (Resource and Tunnel endpoints only) The Amazon Resource Name (ARN) of a + resource configuration associated with the VPC endpoint. The type of + resource configuration depends on the endpoint type: + + - For a Resource endpoint, you can specify a resource configuration that + is of type `SINGLE`, `GROUP`, or `ARN`. To reach a resource that + belongs to a group, specify the parent `GROUP` resource configuration. + + - For a Tunnel endpoint, you can specify a resource configuration that + is of type `CIDR`. + + For more information about the types of resource configurations, see + [Types of resource + configurations](https://docs.aws.amazon.com/vpc/latest/privatelink/resource-configuration.html) + in the *Amazon Web Services PrivateLink User Guide*. + + This request fails if a VPC endpoint owned by a different Amazon Web + Services account already exists on a resource gateway that is enabled + for `ResourceGatewayCharges` payer responsibility. + """ + service_region: str | None = ... + """ + The Region where the service is hosted. The default is the current + Region. + """ + +@dataclass(kw_only=True) +class CreateVpcEndpointOutput(_SerdeShape): + """Dataclass for CreateVpcEndpointOutput structure.""" + + vpc_endpoint: VpcEndpoint | None = ... + """Information about the endpoint.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcEndpointServiceConfigurationInput(_SerdeShape): + """Dataclass for CreateVpcEndpointServiceConfigurationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + acceptance_required: bool | None = ... + """ + Indicates whether requests from service consumers to create an endpoint + to your service must be accepted manually. + """ + private_dns_name: str | None = ... + """ + (Interface endpoint configuration) The private DNS name to assign to the + VPC endpoint service. + """ + network_load_balancer_arns: list[str] | None = ... + """The Amazon Resource Names (ARNs) of the Network Load Balancers.""" + gateway_load_balancer_arns: list[str] | None = ... + """The Amazon Resource Names (ARNs) of the Gateway Load Balancers.""" + supported_ip_address_types: list[str] | None = ... + """ + The supported IP address types. The possible values are `ipv4` and + `ipv6`. + """ + supported_regions: list[str] | None = ... + """The Regions from which service consumers can access the service.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to associate with the service.""" + +@dataclass(kw_only=True) +class CreateVpcEndpointServiceConfigurationOutput(_SerdeShape): + """Dataclass for CreateVpcEndpointServiceConfigurationOutput structure.""" + + service_configuration: ServiceConfiguration | None = ... + """Information about the service configuration.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcInput(_SerdeShape): + """Dataclass for CreateVpcInput structure.""" + + cidr_block: str | None = ... + """ + The IPv4 network range for the VPC, in CIDR notation. For example, + `10.0.0.0/16`. We modify the specified CIDR block to its canonical form; + for example, if you specify `100.68.0.18/18`, we modify it to + `100.68.0.0/18`. + """ + ipv6_pool: str | None = ... + """ + The ID of an IPv6 address pool from which to allocate the IPv6 CIDR + block. + """ + ipv6_cidr_block: str | None = ... + """ + The IPv6 CIDR block from the IPv6 address pool. You must also specify + `Ipv6Pool` in the request. + + To let Amazon choose the IPv6 CIDR block for you, omit this parameter. + """ + ipv4_ipam_pool_id: str | None = ... + """ + The ID of an IPv4 IPAM pool you want to use for allocating this VPC's + CIDR. For more information, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv4_netmask_length: int | None = ... + """ + The netmask length of the IPv4 CIDR you want to allocate to this VPC + from an Amazon VPC IP Address Manager (IPAM) pool. For more information + about IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv6_ipam_pool_id: str | None = ... + """ + The ID of an IPv6 IPAM pool which will be used to allocate this VPC an + IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP + address management workflows including assigning, tracking, + troubleshooting, and auditing IP addresses across Amazon Web Services + Regions and accounts throughout your Amazon Web Services Organization. + For more information, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv6_netmask_length: int | None = ... + """ + The netmask length of the IPv6 CIDR you want to allocate to this VPC + from an Amazon VPC IP Address Manager (IPAM) pool. For more information + about IPAM, see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + ipv6_cidr_block_network_border_group: str | None = ... + """ + The name of the location from which we advertise the IPV6 CIDR block. + Use this parameter to limit the address to this location. + + You must set `AmazonProvidedIpv6CidrBlock` to `true` to use this + parameter. + """ + vpc_encryption_control: VpcEncryptionControlConfiguration | None = ... + """ + Specifies the encryption control configuration to apply to the VPC + during creation. VPC Encryption Control enables you to enforce + encryption for all data in transit within and between VPCs to meet + compliance requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_tenancy: str | None = ... + """ + The tenancy options for instances launched into the VPC. For `default`, + instances are launched with shared tenancy by default. You can launch + instances with any tenancy into a shared tenancy VPC. For `dedicated`, + instances are launched as dedicated tenancy instances by default. You + can only launch instances with a tenancy of `dedicated` or `host` into a + dedicated tenancy VPC. + + **Important:** The `host` value cannot be used with this parameter. Use + the `default` or `dedicated` values only. + + Default: `default` + """ + amazon_provided_ipv6_cidr_block: bool | None = ... + """ + Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for + the VPC. You cannot specify the range of IP addresses, or the size of + the CIDR block. + """ + +@dataclass(kw_only=True) +class CreateVpcOutput(_SerdeShape): + """Dataclass for CreateVpcOutput structure.""" + + vpc: Vpc | None = ... + """Information about the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpcPeeringConnectionInput(_SerdeShape): + """Dataclass for CreateVpcPeeringConnectionInput structure.""" + + peer_region: str | None = ... + """ + The Region code for the accepter VPC, if the accepter VPC is located in + a Region other than the Region in which you make the request. + + Default: The Region in which you make the request. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to assign to the peering connection.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """ + The ID of the requester VPC. You must specify this parameter in the + request. + """ + peer_vpc_id: str | None = ... + """ + The ID of the VPC with which you are creating the VPC peering + connection. You must specify this parameter in the request. + """ + peer_owner_id: str | None = ... + """ + The Amazon Web Services account ID of the owner of the accepter VPC. + + Default: Your Amazon Web Services account ID + """ + +@dataclass(kw_only=True) +class CreateVpcPeeringConnectionOutput(_SerdeShape): + """Dataclass for CreateVpcPeeringConnectionOutput structure.""" + + vpc_peering_connection: VpcPeeringConnection | None = ... + """Information about the VPC peering connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpnConcentratorInput(_SerdeShape): + """Dataclass for CreateVpnConcentratorInput structure.""" + + type: str | None = ... + """The type of VPN concentrator to create.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway to attach the VPN concentrator to.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the VPN concentrator during creation.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateVpnConcentratorOutput(_SerdeShape): + """Dataclass for CreateVpnConcentratorOutput structure.""" + + vpn_concentrator: VpnConcentrator | None = ... + """Information about the VPN concentrator.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpnConnectionInput(_SerdeShape): + """Contains the parameters for CreateVpnConnection.""" + + customer_gateway_id: str | None = ... + """The ID of the customer gateway.""" + type: str | None = ... + """The type of VPN connection (`ipsec.1`).""" + vpn_gateway_id: str | None = ... + """ + The ID of the virtual private gateway. If you specify a virtual private + gateway, you cannot specify a transit gateway. + """ + transit_gateway_id: str | None = ... + """ + The ID of the transit gateway. If you specify a transit gateway, you + cannot specify a virtual private gateway. + """ + vpn_concentrator_id: str | None = ... + """The ID of the VPN concentrator to associate with the VPN connection.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the VPN connection.""" + pre_shared_key_storage: str | None = ... + """ + Specifies the storage mode for the pre-shared key (PSK). Valid values + are `Standard`\" (stored in the Site-to-Site VPN service) or + `SecretsManager` (stored in Amazon Web Services Secrets Manager). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + options: VpnConnectionOptionsSpecification | None = ... + """The options for the VPN connection.""" + +@dataclass(kw_only=True) +class CreateVpnConnectionOutput(_SerdeShape): + """Contains the output of CreateVpnConnection.""" + + vpn_connection: VpnConnection | None = ... + """Information about the VPN connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpnConnectionRouteInput(_SerdeShape): + """Contains the parameters for CreateVpnConnectionRoute.""" + + destination_cidr_block: str | None = ... + """The CIDR block associated with the local subnet of the customer network.""" + vpn_connection_id: str | None = ... + """The ID of the VPN connection.""" + +@dataclass(kw_only=True) +class CreateVpnConnectionRouteOutput(_SerdeShape): + """Dataclass for CreateVpnConnectionRouteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVpnGatewayInput(_SerdeShape): + """Contains the parameters for CreateVpnGateway.""" + + availability_zone: str | None = ... + """The Availability Zone for the virtual private gateway.""" + type: str | None = ... + """The type of VPN connection this virtual private gateway supports.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the virtual private gateway.""" + amazon_side_asn: int | None = ... + """ + A private Autonomous System Number (ASN) for the Amazon side of a BGP + session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 + range. If you're using a 32-bit ASN, it must be in the 4200000000 to + 4294967294 range. + + Default: 64512 + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class CreateVpnGatewayOutput(_SerdeShape): + """Contains the output of CreateVpnGateway.""" + + vpn_gateway: VpnGateway | None = ... + """Information about the virtual private gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreationDateCondition(_SerdeShape): + """The maximum age for allowed images.""" + + maximum_days_since_created: int | None = ... + """ + The maximum number of days that have elapsed since the image was + created. For example, a value of `300` allows images that were created + within the last 300 days. + """ + +@dataclass(kw_only=True) +class CreationDateConditionRequest(_SerdeShape): + """The maximum age for allowed images.""" + + maximum_days_since_created: int | None = ... + """ + The maximum number of days that have elapsed since the image was + created. For example, a value of `300` allows images that were created + within the last 300 days. + """ + +@dataclass(kw_only=True) +class CreditSpecification(_SerdeShape): + """Describes the credit option for CPU usage of a T instance.""" + + cpu_credits: str | None = ... + """ + The credit option for CPU usage of a T instance. + + Valid values: `standard` | `unlimited` + """ + +@dataclass(kw_only=True) +class CreditSpecificationRequest(_SerdeShape): + """The credit option for CPU usage of a T instance.""" + + cpu_credits: str | None = ... + """ + The credit option for CPU usage of a T instance. + + Valid values: `standard` | `unlimited` + """ + +class CurrencyCodeValues(UnknownEnumMixin, StrEnum): + USD = "USD" + +@dataclass(kw_only=True) +class CustomerGateway(_SerdeShape): + """Describes a customer gateway.""" + + certificate_arn: str | None = ... + """The Amazon Resource Name (ARN) for the customer gateway certificate.""" + device_name: str | None = ... + """The name of customer gateway device.""" + tags: list[Tag] | None = ... + """Any tags assigned to the customer gateway.""" + bgp_asn_extended: str | None = ... + """ + The customer gateway device's Border Gateway Protocol (BGP) Autonomous + System Number (ASN). + + Valid values: `2,147,483,648` to `4,294,967,295` + """ + customer_gateway_id: str | None = ... + """The ID of the customer gateway.""" + state: str | None = ... + """ + The current state of the customer gateway + (`pending | available | deleting | deleted`). + """ + type: str | None = ... + """The type of VPN connection the customer gateway supports (`ipsec.1`).""" + ip_address: str | None = ... + """ + The IP address for the customer gateway device's outside interface. The + address must be static. If `OutsideIpAddressType` in your VPN connection + options is set to `PrivateIpv4`, you can use an RFC6598 or RFC1918 + private IPv4 address. If `OutsideIpAddressType` is set to `PublicIpv4`, + you can use a public IPv4 address. If `OutsideIpAddressType` is set to + `Ipv6`, you can use a public IPv6 address. + """ + bgp_asn: str | None = ... + """ + The customer gateway device's Border Gateway Protocol (BGP) Autonomous + System Number (ASN). + + Valid values: `1` to `2,147,483,647` + """ + +@dataclass(kw_only=True) +class CustomTagKeyValueRequestPair(_SerdeShape): + """ + Describes a tag key-value pair for an application status check + association request. + """ + + key: str | None = ... + """The key of the tag.""" + value: str | None = ... + """The value of the tag.""" + +@dataclass(kw_only=True) +class CustomTagKeyValueResponsePair(_SerdeShape): + """ + Describes a tag key-value pair for an application status check + association. + """ + + key: str | None = ... + """The key of the tag.""" + value: str | None = ... + """The value of the tag.""" + +class DatafeedSubscriptionState(UnknownEnumMixin, StrEnum): + ACTIVE = "Active" + INACTIVE = "Inactive" + +@dataclass(kw_only=True) +class DataQuery(_SerdeShape): + """A query used for retrieving network health data.""" + + id: str | None = ... + """ + A user-defined ID associated with a data query that's returned in the + `dataResponse` identifying the query. For example, if you set the Id to + `MyQuery01`in the query, the `dataResponse` identifies the query as + `MyQuery01`. + """ + source: str | None = ... + """ + The Region or Availability Zone that's the source for the data query. + For example, `us-east-1`. + """ + destination: str | None = ... + """ + The Region or Availability Zone that's the target for the data query. + For example, `eu-north-1`. + """ + metric: str | None = ... + """The metric used for the network performance request.""" + statistic: str | None = ... + """ + The metric data aggregation period, `p50`, between the specified + `startDate` and `endDate`. For example, a metric of `five_minutes` is + the median of all the data points gathered within those five minutes. + `p50` is the only supported metric. + """ + period: str | None = ... + """The aggregation period used for the data query.""" + +@dataclass(kw_only=True) +class DataResponse(_SerdeShape): + """The response to a `DataQuery`.""" + + id: str | None = ... + """The ID passed in the `DataQuery`.""" + source: str | None = ... + """ + The Region or Availability Zone that's the source for the data query. + For example, `us-east-1`. + """ + destination: str | None = ... + """ + The Region or Availability Zone that's the destination for the data + query. For example, `eu-west-1`. + """ + metric: str | None = ... + """The metric used for the network performance request.""" + statistic: str | None = ... + """The statistic used for the network performance request.""" + period: str | None = ... + """The period used for the network performance request.""" + metric_points: list[MetricPoint] | None = ... + """A list of `MetricPoint` objects.""" + +@dataclass(kw_only=True) +class DeclarativePoliciesReport(_SerdeShape): + """Describes the metadata of the account status report.""" + + report_id: str | None = ... + """The ID of the report.""" + s3_bucket: str | None = ... + """The name of the Amazon S3 bucket where the report is located.""" + s3_prefix: str | None = ... + """The prefix for your S3 object.""" + target_id: str | None = ... + """ + The root ID, organizational unit ID, or account ID. + + Format: + + - For root: `r-ab12` + + - For OU: `ou-ab12-cdef1234` + + - For account: `123456789012` + """ + start_time: datetime | None = ... + """The time when the report generation started.""" + end_time: datetime | None = ... + """The time when the report generation ended.""" + status: str | None = ... + """The current status of the report.""" + tags: list[Tag] | None = ... + """Any tags assigned to the report.""" + +@dataclass(kw_only=True) +class DefaultConnectionTrackingConfiguration(_SerdeShape): + """ + Indicates default conntrack information for the instance type. For more + information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the Amazon EC2 User Guide. + """ + + default_tcp_established_timeout: int | None = ... + """ + Default timeout (in seconds) for idle TCP connections in an established + state. + """ + default_udp_timeout: int | None = ... + """ + Default timeout (in seconds) for idle UDP flows that have seen traffic + only in a single direction or a single request-response transaction. + """ + default_udp_stream_timeout: int | None = ... + """ + Default timeout (in seconds) for idle UDP flows classified as streams + which have seen more than one request-response transaction. + """ + +class DefaultHttpTokensEnforcedState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + NO_PREFERENCE = "no-preference" + +class DefaultInstanceMetadataEndpointState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + NO_PREFERENCE = "no-preference" + +class DefaultInstanceMetadataTagsState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + NO_PREFERENCE = "no-preference" + +class DefaultRouteTableAssociationValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class DefaultRouteTablePropagationValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class DefaultTargetCapacityType(UnknownEnumMixin, StrEnum): + SPOT = "spot" + ON_DEMAND = "on-demand" + CAPACITY_BLOCK = "capacity-block" + RESERVED_CAPACITY = "reserved-capacity" + +@dataclass(kw_only=True) +class DeleteApplicationStatusCheckInput(_SerdeShape): + """Dataclass for DeleteApplicationStatusCheckInput structure.""" + + application_status_check_id: str | None = ... + """The ID of the application status check to delete.""" + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteApplicationStatusCheckOutput(_SerdeShape): + """Dataclass for DeleteApplicationStatusCheckOutput structure.""" + + application_status_check: ApplicationStatusCheckResponseObject | None = ... + """Information about the deleted application status check.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCapacityManagerDataExportInput(_SerdeShape): + """Dataclass for DeleteCapacityManagerDataExportInput structure.""" + + capacity_manager_data_export_id: str | None = ... + """The unique identifier of the data export configuration to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteCapacityManagerDataExportOutput(_SerdeShape): + """Dataclass for DeleteCapacityManagerDataExportOutput structure.""" + + capacity_manager_data_export_id: str | None = ... + """The unique identifier of the deleted data export configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCarrierGatewayInput(_SerdeShape): + """Dataclass for DeleteCarrierGatewayInput structure.""" + + carrier_gateway_id: str | None = ... + """The ID of the carrier gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteCarrierGatewayOutput(_SerdeShape): + """Dataclass for DeleteCarrierGatewayOutput structure.""" + + carrier_gateway: CarrierGateway | None = ... + """Information about the carrier gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnEndpointAuthorizationPolicyInput(_SerdeShape): + """Dataclass for DeleteClientVpnEndpointAuthorizationPolicyInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnEndpointAuthorizationPolicyOutput(_SerdeShape): + """ + Dataclass for DeleteClientVpnEndpointAuthorizationPolicyOutput + structure. + """ + + status: str | None = ... + """The current state of the authorization policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnEndpointInput(_SerdeShape): + """Dataclass for DeleteClientVpnEndpointInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN to be deleted.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnEndpointOutput(_SerdeShape): + """Dataclass for DeleteClientVpnEndpointOutput structure.""" + + status: ClientVpnEndpointStatus | None = ... + """The current state of the Client VPN endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnRouteInput(_SerdeShape): + """Dataclass for DeleteClientVpnRouteInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint from which the route is to be deleted.""" + target_vpc_subnet_id: str | None = ... + """The ID of the target subnet used by the route.""" + destination_cidr_block: str | None = ... + """The IPv4 address range, in CIDR notation, of the route to be deleted.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteClientVpnRouteOutput(_SerdeShape): + """Dataclass for DeleteClientVpnRouteOutput structure.""" + + status: ClientVpnRouteStatus | None = ... + """The current state of the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCoipCidrInput(_SerdeShape): + """Dataclass for DeleteCoipCidrInput structure.""" + + cidr: str | None = ... + """A customer-owned IP address range that you want to delete.""" + coip_pool_id: str | None = ... + """The ID of the customer-owned address pool.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteCoipCidrOutput(_SerdeShape): + """Dataclass for DeleteCoipCidrOutput structure.""" + + coip_cidr: CoipCidr | None = ... + """Information about a range of customer-owned IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCoipPoolInput(_SerdeShape): + """Dataclass for DeleteCoipPoolInput structure.""" + + coip_pool_id: str | None = ... + """The ID of the CoIP pool that you want to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteCoipPoolOutput(_SerdeShape): + """Dataclass for DeleteCoipPoolOutput structure.""" + + coip_pool: CoipPool | None = ... + """Information about the CoIP address pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCustomerGatewayInput(_SerdeShape): + """Contains the parameters for DeleteCustomerGateway.""" + + customer_gateway_id: str | None = ... + """The ID of the customer gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteCustomerGatewayOutput(_SerdeShape): + """Dataclass for DeleteCustomerGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDhcpOptionsInput(_SerdeShape): + """Dataclass for DeleteDhcpOptionsInput structure.""" + + dhcp_options_id: str | None = ... + """The ID of the DHCP options set.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteDhcpOptionsOutput(_SerdeShape): + """Dataclass for DeleteDhcpOptionsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteEgressOnlyInternetGatewayInput(_SerdeShape): + """Dataclass for DeleteEgressOnlyInternetGatewayInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + egress_only_internet_gateway_id: str | None = ... + """The ID of the egress-only internet gateway.""" + +@dataclass(kw_only=True) +class DeleteEgressOnlyInternetGatewayOutput(_SerdeShape): + """Dataclass for DeleteEgressOnlyInternetGatewayOutput structure.""" + + return_code: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFleetError(_SerdeShape): + """Describes an EC2 Fleet error.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The description for the error code.""" + +class DeleteFleetErrorCode(UnknownEnumMixin, StrEnum): + FLEET_ID_DOES_NOT_EXIST = "fleetIdDoesNotExist" + FLEET_ID_MALFORMED = "fleetIdMalformed" + FLEET_NOT_IN_DELETABLE_STATE = "fleetNotInDeletableState" + UNEXPECTED_ERROR = "unexpectedError" + +@dataclass(kw_only=True) +class DeleteFleetErrorItem(_SerdeShape): + """Describes an EC2 Fleet that was not successfully deleted.""" + + error: DeleteFleetError | None = ... + """The error.""" + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + +@dataclass(kw_only=True) +class DeleteFleetsInput(_SerdeShape): + """Dataclass for DeleteFleetsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fleet_ids: list[str] | None = ... + """ + The IDs of the EC2 Fleets. + + Constraints: In a single request, you can specify up to 25 `instant` + fleet IDs and up to 100 `maintain` or `request` fleet IDs. + """ + terminate_instances: bool | None = ... + """ + Indicates whether to terminate the associated instances when the EC2 + Fleet is deleted. The default is to terminate the instances. + + To let the instances continue to run after the EC2 Fleet is deleted, + specify `no-terminate-instances`. Supported only for fleets of type + `maintain` and `request`. + + For `instant` fleets, you cannot specify `NoTerminateInstances`. A + deleted `instant` fleet with running instances is not supported. + """ + +@dataclass(kw_only=True) +class DeleteFleetsOutput(_SerdeShape): + """Dataclass for DeleteFleetsOutput structure.""" + + successful_fleet_deletions: list[DeleteFleetSuccessItem] | None = ... + """Information about the EC2 Fleets that are successfully deleted.""" + unsuccessful_fleet_deletions: list[DeleteFleetErrorItem] | None = ... + """Information about the EC2 Fleets that are not successfully deleted.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFleetSuccessItem(_SerdeShape): + """Describes an EC2 Fleet that was successfully deleted.""" + + current_fleet_state: str | None = ... + """The current state of the EC2 Fleet.""" + previous_fleet_state: str | None = ... + """The previous state of the EC2 Fleet.""" + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + +@dataclass(kw_only=True) +class DeleteFlowLogsInput(_SerdeShape): + """Dataclass for DeleteFlowLogsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + flow_log_ids: list[str] | None = ... + """ + One or more flow log IDs. + + Constraint: Maximum of 1000 flow log IDs. + """ + +@dataclass(kw_only=True) +class DeleteFlowLogsOutput(_SerdeShape): + """Dataclass for DeleteFlowLogsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """Information about the flow logs that could not be deleted successfully.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteFpgaImageInput(_SerdeShape): + """Dataclass for DeleteFpgaImageInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fpga_image_id: str | None = ... + """The ID of the AFI.""" + +@dataclass(kw_only=True) +class DeleteFpgaImageOutput(_SerdeShape): + """Dataclass for DeleteFpgaImageOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteImageUsageReportInput(_SerdeShape): + """Dataclass for DeleteImageUsageReportInput structure.""" + + report_id: str | None = ... + """The ID of the report to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteImageUsageReportOutput(_SerdeShape): + """Dataclass for DeleteImageUsageReportOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteInstanceConnectEndpointInput(_SerdeShape): + """Dataclass for DeleteInstanceConnectEndpointInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_connect_endpoint_id: str | None = ... + """The ID of the EC2 Instance Connect Endpoint to delete.""" + +@dataclass(kw_only=True) +class DeleteInstanceConnectEndpointOutput(_SerdeShape): + """Dataclass for DeleteInstanceConnectEndpointOutput structure.""" + + instance_connect_endpoint: Ec2InstanceConnectEndpoint | None = ... + """Information about the EC2 Instance Connect Endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteInstanceEventWindowInput(_SerdeShape): + """Dataclass for DeleteInstanceEventWindowInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + force_delete: bool | None = ... + """ + Specify `true` to force delete the event window. Use the force delete + parameter if the event window is currently associated with targets. + """ + instance_event_window_id: str | None = ... + """The ID of the event window.""" + +@dataclass(kw_only=True) +class DeleteInstanceEventWindowOutput(_SerdeShape): + """Dataclass for DeleteInstanceEventWindowOutput structure.""" + + instance_event_window_state: InstanceEventWindowStateChange | None = ... + """The state of the event window.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteInternetGatewayInput(_SerdeShape): + """Dataclass for DeleteInternetGatewayInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + internet_gateway_id: str | None = ... + """The ID of the internet gateway.""" + +@dataclass(kw_only=True) +class DeleteInternetGatewayOutput(_SerdeShape): + """Dataclass for DeleteInternetGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamExternalResourceVerificationTokenInput(_SerdeShape): + """ + Dataclass for DeleteIpamExternalResourceVerificationTokenInput + structure. + """ + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_external_resource_verification_token_id: str | None = ... + """The token ID.""" + +@dataclass(kw_only=True) +class DeleteIpamExternalResourceVerificationTokenOutput(_SerdeShape): + """ + Dataclass for DeleteIpamExternalResourceVerificationTokenOutput + structure. + """ + + ipam_external_resource_verification_token: ( + IpamExternalResourceVerificationToken | None + ) = ... + """The verification token.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamInput(_SerdeShape): + """Dataclass for DeleteIpamInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM to delete.""" + cascade: bool | None = ... + """ + Enables you to quickly delete an IPAM, private scopes, pools in private + scopes, and any allocations in the pools in private scopes. You cannot + delete the IPAM with this option if there is a pool in your public + scope. If you use this option, IPAM does the following: + + - Deallocates any CIDRs allocated to VPC resources (such as VPCs) in + pools in private scopes. + + Note: + No VPC resources are deleted as a result of enabling this option. The + CIDR associated with the resource will no longer be allocated from an + IPAM pool, but the CIDR itself will remain unchanged. + + - Deprovisions all IPv4 CIDRs provisioned to IPAM pools in private + scopes. + + - Deletes all IPAM pools in private scopes. + + - Deletes all non-default private scopes in the IPAM. + + - Deletes the default public and private scopes and the IPAM. + """ + +@dataclass(kw_only=True) +class DeleteIpamInternetRegistryAssociationInput(_SerdeShape): + """Dataclass for DeleteIpamInternetRegistryAssociationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association to delete.""" + +@dataclass(kw_only=True) +class DeleteIpamInternetRegistryAssociationOutput(_SerdeShape): + """Dataclass for DeleteIpamInternetRegistryAssociationOutput structure.""" + + ipam_internet_registry_association: IpamInternetRegistryAssociation | None = ... + """Information about the deleted internet registry association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamOutput(_SerdeShape): + """Dataclass for DeleteIpamOutput structure.""" + + ipam: Ipam | None = ... + """Information about the results of the deletion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamPolicyInput(_SerdeShape): + """Dataclass for DeleteIpamPolicyInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_policy_id: str | None = ... + """The ID of the IPAM policy to delete.""" + +@dataclass(kw_only=True) +class DeleteIpamPolicyOutput(_SerdeShape): + """Dataclass for DeleteIpamPolicyOutput structure.""" + + ipam_policy: IpamPolicy | None = ... + """ + Information about the deleted IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamPoolInput(_SerdeShape): + """Dataclass for DeleteIpamPoolInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the pool to delete.""" + cascade: bool | None = ... + """ + Enables you to quickly delete an IPAM pool and all resources within that + pool, including provisioned CIDRs, allocations, and other pools. + + Warning: + You can only use this option to delete pools in the private scope or + pools in the public scope with a source resource. A source resource is a + resource used to provision CIDRs to a resource planning pool. + """ + +@dataclass(kw_only=True) +class DeleteIpamPoolOutput(_SerdeShape): + """Dataclass for DeleteIpamPoolOutput structure.""" + + ipam_pool: IpamPool | None = ... + """Information about the results of the deletion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamPrefixListResolverInput(_SerdeShape): + """Dataclass for DeleteIpamPrefixListResolverInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """The ID of the IPAM prefix list resolver to delete.""" + +@dataclass(kw_only=True) +class DeleteIpamPrefixListResolverOutput(_SerdeShape): + """Dataclass for DeleteIpamPrefixListResolverOutput structure.""" + + ipam_prefix_list_resolver: IpamPrefixListResolver | None = ... + """Information about the IPAM prefix list resolver that was deleted.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamPrefixListResolverTargetInput(_SerdeShape): + """Dataclass for DeleteIpamPrefixListResolverTargetInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_target_id: str | None = ... + """The ID of the IPAM prefix list resolver target to delete.""" + +@dataclass(kw_only=True) +class DeleteIpamPrefixListResolverTargetOutput(_SerdeShape): + """Dataclass for DeleteIpamPrefixListResolverTargetOutput structure.""" + + ipam_prefix_list_resolver_target: IpamPrefixListResolverTarget | None = ... + """Information about the IPAM prefix list resolver target that was deleted.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamResourceDiscoveryInput(_SerdeShape): + """Dataclass for DeleteIpamResourceDiscoveryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """The IPAM resource discovery ID.""" + +@dataclass(kw_only=True) +class DeleteIpamResourceDiscoveryOutput(_SerdeShape): + """Dataclass for DeleteIpamResourceDiscoveryOutput structure.""" + + ipam_resource_discovery: IpamResourceDiscovery | None = ... + """The IPAM resource discovery.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamRoutingPolicyRegistrationInput(_SerdeShape): + """Dataclass for DeleteIpamRoutingPolicyRegistrationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + cidr: str | None = ... + """ + The IP address prefix in CIDR notation identifying the routing policy + registration to delete. + """ + force: bool | None = ... + """ + Forces the deletion even if it conflicts with an announced route. + Default: `false`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class DeleteIpamRoutingPolicyRegistrationOutput(_SerdeShape): + """Dataclass for DeleteIpamRoutingPolicyRegistrationOutput structure.""" + + ipam_routing_policy_registration_delta: ( + IpamRoutingPolicyRegistrationDelta | None + ) = ... + """ + Information about the routing policy registration delta created by this + deletion. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIpamScopeInput(_SerdeShape): + """Dataclass for DeleteIpamScopeInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_scope_id: str | None = ... + """The ID of the scope to delete.""" + +@dataclass(kw_only=True) +class DeleteIpamScopeOutput(_SerdeShape): + """Dataclass for DeleteIpamScopeOutput structure.""" + + ipam_scope: IpamScope | None = ... + """Information about the results of the deletion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteKeyPairInput(_SerdeShape): + """Dataclass for DeleteKeyPairInput structure.""" + + key_name: str | None = ... + """The name of the key pair.""" + key_pair_id: str | None = ... + """The ID of the key pair.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteKeyPairOutput(_SerdeShape): + """Dataclass for DeleteKeyPairOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + key_pair_id: str | None = ... + """The ID of the key pair.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLaunchTemplateInput(_SerdeShape): + """Dataclass for DeleteLaunchTemplateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + +@dataclass(kw_only=True) +class DeleteLaunchTemplateOutput(_SerdeShape): + """Dataclass for DeleteLaunchTemplateOutput structure.""" + + launch_template: LaunchTemplate | None = ... + """Information about the launch template.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLaunchTemplateVersionsInput(_SerdeShape): + """Dataclass for DeleteLaunchTemplateVersionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + versions: list[str] | None = ... + """ + The version numbers of one or more launch template versions to delete. + You can specify up to 200 launch template version numbers. + """ + +@dataclass(kw_only=True) +class DeleteLaunchTemplateVersionsOutput(_SerdeShape): + """Dataclass for DeleteLaunchTemplateVersionsOutput structure.""" + + successfully_deleted_launch_template_versions: ( + list[DeleteLaunchTemplateVersionsResponseSuccessItem] | None + ) = ... + """ + Information about the launch template versions that were successfully + deleted. + """ + unsuccessfully_deleted_launch_template_versions: ( + list[DeleteLaunchTemplateVersionsResponseErrorItem] | None + ) = ... + """ + Information about the launch template versions that could not be + deleted. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLaunchTemplateVersionsResponseErrorItem(_SerdeShape): + """Describes a launch template version that could not be deleted.""" + + launch_template_id: str | None = ... + """The ID of the launch template.""" + launch_template_name: str | None = ... + """The name of the launch template.""" + version_number: int | None = ... + """The version number of the launch template.""" + response_error: ResponseError | None = ... + """Information about the error.""" + +@dataclass(kw_only=True) +class DeleteLaunchTemplateVersionsResponseSuccessItem(_SerdeShape): + """Describes a launch template version that was successfully deleted.""" + + launch_template_id: str | None = ... + """The ID of the launch template.""" + launch_template_name: str | None = ... + """The name of the launch template.""" + version_number: int | None = ... + """The version number of the launch template.""" + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteInput(_SerdeShape): + """Dataclass for DeleteLocalGatewayRouteInput structure.""" + + destination_cidr_block: str | None = ... + """ + The CIDR range for the route. This must match the CIDR for the route + exactly. + """ + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + destination_prefix_list_id: str | None = ... + """ + Use a prefix list in place of `DestinationCidrBlock`. You cannot use + `DestinationPrefixListId` and `DestinationCidrBlock` in the same + request. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteOutput(_SerdeShape): + """Dataclass for DeleteLocalGatewayRouteOutput structure.""" + + route: LocalGatewayRoute | None = ... + """Information about the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableInput(_SerdeShape): + """Dataclass for DeleteLocalGatewayRouteTableInput structure.""" + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableOutput(_SerdeShape): + """Dataclass for DeleteLocalGatewayRouteTableOutput structure.""" + + local_gateway_route_table: LocalGatewayRouteTable | None = ... + """Information about the local gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput(_SerdeShape): + """ + Dataclass for + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput + structure. + """ + + local_gateway_route_table_virtual_interface_group_association_id: str | None = ... + """ + The ID of the local gateway route table virtual interface group + association. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput(_SerdeShape): + """ + Dataclass for + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput + structure. + """ + + local_gateway_route_table_virtual_interface_group_association: ( + LocalGatewayRouteTableVirtualInterfaceGroupAssociation | None + ) = ... + """Information about the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableVpcAssociationInput(_SerdeShape): + """Dataclass for DeleteLocalGatewayRouteTableVpcAssociationInput structure.""" + + local_gateway_route_table_vpc_association_id: str | None = ... + """The ID of the association.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayRouteTableVpcAssociationOutput(_SerdeShape): + """ + Dataclass for DeleteLocalGatewayRouteTableVpcAssociationOutput + structure. + """ + + local_gateway_route_table_vpc_association: ( + LocalGatewayRouteTableVpcAssociation | None + ) = ... + """Information about the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayVirtualInterfaceGroupInput(_SerdeShape): + """Dataclass for DeleteLocalGatewayVirtualInterfaceGroupInput structure.""" + + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the local gateway virtual interface group to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayVirtualInterfaceGroupOutput(_SerdeShape): + """Dataclass for DeleteLocalGatewayVirtualInterfaceGroupOutput structure.""" + + local_gateway_virtual_interface_group: ( + LocalGatewayVirtualInterfaceGroup | None + ) = ... + """Information about the deleted local gateway virtual interface group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayVirtualInterfaceInput(_SerdeShape): + """Dataclass for DeleteLocalGatewayVirtualInterfaceInput structure.""" + + local_gateway_virtual_interface_id: str | None = ... + """The ID of the local virtual interface to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteLocalGatewayVirtualInterfaceOutput(_SerdeShape): + """Dataclass for DeleteLocalGatewayVirtualInterfaceOutput structure.""" + + local_gateway_virtual_interface: LocalGatewayVirtualInterface | None = ... + """Information about the deleted local gateway virtual interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteManagedPrefixListInput(_SerdeShape): + """Dataclass for DeleteManagedPrefixListInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + +@dataclass(kw_only=True) +class DeleteManagedPrefixListOutput(_SerdeShape): + """Dataclass for DeleteManagedPrefixListOutput structure.""" + + prefix_list: ManagedPrefixList | None = ... + """Information about the prefix list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNatGatewayInput(_SerdeShape): + """Dataclass for DeleteNatGatewayInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + +@dataclass(kw_only=True) +class DeleteNatGatewayOutput(_SerdeShape): + """Dataclass for DeleteNatGatewayOutput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkAclEntryInput(_SerdeShape): + """Dataclass for DeleteNetworkAclEntryInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_acl_id: str | None = ... + """The ID of the network ACL.""" + rule_number: int | None = ... + """The rule number of the entry to delete.""" + egress: bool | None = ... + """Indicates whether the rule is an egress rule.""" + +@dataclass(kw_only=True) +class DeleteNetworkAclEntryOutput(_SerdeShape): + """Dataclass for DeleteNetworkAclEntryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkAclInput(_SerdeShape): + """Dataclass for DeleteNetworkAclInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_acl_id: str | None = ... + """The ID of the network ACL.""" + +@dataclass(kw_only=True) +class DeleteNetworkAclOutput(_SerdeShape): + """Dataclass for DeleteNetworkAclOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAccessScopeAnalysisInput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAccessScopeAnalysisInput structure.""" + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAccessScopeAnalysisOutput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAccessScopeAnalysisOutput structure.""" + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAccessScopeInput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAccessScopeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAccessScopeOutput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAccessScopeOutput structure.""" + + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAnalysisInput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAnalysisInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_insights_analysis_id: str | None = ... + """The ID of the network insights analysis.""" + +@dataclass(kw_only=True) +class DeleteNetworkInsightsAnalysisOutput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsAnalysisOutput structure.""" + + network_insights_analysis_id: str | None = ... + """The ID of the network insights analysis.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInsightsPathInput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsPathInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_insights_path_id: str | None = ... + """The ID of the path.""" + +@dataclass(kw_only=True) +class DeleteNetworkInsightsPathOutput(_SerdeShape): + """Dataclass for DeleteNetworkInsightsPathOutput structure.""" + + network_insights_path_id: str | None = ... + """The ID of the path.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInterfaceInput(_SerdeShape): + """Contains the parameters for DeleteNetworkInterface.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + +@dataclass(kw_only=True) +class DeleteNetworkInterfaceOutput(_SerdeShape): + """Dataclass for DeleteNetworkInterfaceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInterfacePermissionInput(_SerdeShape): + """Contains the parameters for DeleteNetworkInterfacePermission.""" + + network_interface_permission_id: str | None = ... + """The ID of the network interface permission.""" + force: bool | None = ... + """ + Specify `true` to remove the permission even if the network interface is + attached to an instance. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteNetworkInterfacePermissionOutput(_SerdeShape): + """Contains the output for DeleteNetworkInterfacePermission.""" + + return_: bool | None = ... + """Is `true` if the request succeeds and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePlacementGroupInput(_SerdeShape): + """Dataclass for DeletePlacementGroupInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + group_name: str | None = ... + """The name of the placement group.""" + +@dataclass(kw_only=True) +class DeletePlacementGroupOutput(_SerdeShape): + """Dataclass for DeletePlacementGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePublicIpv4PoolInput(_SerdeShape): + """Dataclass for DeletePublicIpv4PoolInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + pool_id: str | None = ... + """The ID of the public IPv4 pool you want to delete.""" + network_border_group: str | None = ... + """ + The Availability Zone (AZ) or Local Zone (LZ) network border group that + the resource that the IP address is assigned to is in. Defaults to an AZ + network border group. For more information on available Local Zones, see + [Local Zone + availability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class DeletePublicIpv4PoolOutput(_SerdeShape): + """Dataclass for DeletePublicIpv4PoolOutput structure.""" + + return_value: bool | None = ... + """Information about the result of deleting the public IPv4 pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteQueuedReservedInstancesError(_SerdeShape): + """ + Describes the error for a Reserved Instance whose queued purchase could + not be deleted. + """ + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message.""" + +class DeleteQueuedReservedInstancesErrorCode(UnknownEnumMixin, StrEnum): + RESERVED_INSTANCES_ID_INVALID = "reserved-instances-id-invalid" + RESERVED_INSTANCES_NOT_IN_QUEUED_STATE = "reserved-instances-not-in-queued-state" + UNEXPECTED_ERROR = "unexpected-error" + +@dataclass(kw_only=True) +class DeleteQueuedReservedInstancesInput(_SerdeShape): + """Dataclass for DeleteQueuedReservedInstancesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + reserved_instances_ids: list[str] | None = ... + """The IDs of the Reserved Instances.""" + +@dataclass(kw_only=True) +class DeleteQueuedReservedInstancesOutput(_SerdeShape): + """Dataclass for DeleteQueuedReservedInstancesOutput structure.""" + + successful_queued_purchase_deletions: ( + list[SuccessfulQueuedPurchaseDeletion] | None + ) = ... + """Information about the queued purchases that were successfully deleted.""" + failed_queued_purchase_deletions: list[FailedQueuedPurchaseDeletion] | None = ... + """Information about the queued purchases that could not be deleted.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRouteInput(_SerdeShape): + """Dataclass for DeleteRouteInput structure.""" + + destination_prefix_list_id: str | None = ... + """The ID of the prefix list for the route.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + route_table_id: str | None = ... + """The ID of the route table.""" + destination_cidr_block: str | None = ... + """ + The IPv4 CIDR range for the route. The value you specify must match the + CIDR for the route exactly. + """ + destination_ipv6_cidr_block: str | None = ... + """ + The IPv6 CIDR range for the route. The value you specify must match the + CIDR for the route exactly. + """ + +@dataclass(kw_only=True) +class DeleteRouteOutput(_SerdeShape): + """Dataclass for DeleteRouteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerEndpointInput(_SerdeShape): + """Dataclass for DeleteRouteServerEndpointInput structure.""" + + route_server_endpoint_id: str | None = ... + """The ID of the route server endpoint to delete.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerEndpointOutput(_SerdeShape): + """Dataclass for DeleteRouteServerEndpointOutput structure.""" + + route_server_endpoint: RouteServerEndpoint | None = ... + """Information about the deleted route server endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerInput(_SerdeShape): + """Dataclass for DeleteRouteServerInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server to delete.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerOutput(_SerdeShape): + """Dataclass for DeleteRouteServerOutput structure.""" + + route_server: RouteServer | None = ... + """Information about the deleted route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerPeerInput(_SerdeShape): + """Dataclass for DeleteRouteServerPeerInput structure.""" + + route_server_peer_id: str | None = ... + """The ID of the route server peer to delete.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteRouteServerPeerOutput(_SerdeShape): + """Dataclass for DeleteRouteServerPeerOutput structure.""" + + route_server_peer: RouteServerPeer | None = ... + """Information about the deleted route server peer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRouteTableInput(_SerdeShape): + """Dataclass for DeleteRouteTableInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + route_table_id: str | None = ... + """The ID of the route table.""" + +@dataclass(kw_only=True) +class DeleteRouteTableOutput(_SerdeShape): + """Dataclass for DeleteRouteTableOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSecondaryNetworkInput(_SerdeShape): + """Dataclass for DeleteSecondaryNetworkInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + secondary_network_id: str | None = ... + """The ID of the secondary network.""" + +@dataclass(kw_only=True) +class DeleteSecondaryNetworkOutput(_SerdeShape): + """Dataclass for DeleteSecondaryNetworkOutput structure.""" + + secondary_network: SecondaryNetwork | None = ... + """Information about the secondary network.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSecondarySubnetInput(_SerdeShape): + """Dataclass for DeleteSecondarySubnetInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet to delete.""" + +@dataclass(kw_only=True) +class DeleteSecondarySubnetOutput(_SerdeShape): + """Dataclass for DeleteSecondarySubnetOutput structure.""" + + secondary_subnet: SecondarySubnet | None = ... + """Information about the secondary subnet being deleted.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier to ensure the idempotency of the + request. Only returned if a client token was provided in the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSecurityGroupInput(_SerdeShape): + """Dataclass for DeleteSecurityGroupInput structure.""" + + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """ + [Default VPC] The name of the security group. You can specify either + the security group name or the security group ID. For security groups in + a nondefault VPC, you must specify the security group ID. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteSecurityGroupOutput(_SerdeShape): + """Dataclass for DeleteSecurityGroupOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + group_id: str | None = ... + """The ID of the deleted security group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSnapshotInput(_SerdeShape): + """Dataclass for DeleteSnapshotInput structure.""" + + snapshot_id: str | None = ... + """The ID of the EBS snapshot.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteSnapshotOutput(_SerdeShape): + """Dataclass for DeleteSnapshotOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSnapshotReturnCode(_SerdeShape): + """The snapshot ID and its deletion result code.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + return_code: str | None = ... + """ + The result code from the snapshot deletion attempt. Possible values: + + - `success` - The snapshot was successfully deleted. + + - `skipped` - The snapshot was not deleted because it's associated with + other AMIs. + + - `missing-permissions` - The snapshot was not deleted because the role + lacks `DeleteSnapshot` permissions. For more information, see [How + Amazon EBS works with + IAM](https://docs.aws.amazon.com/ebs/latest/userguide/security_iam_service-with-iam.html). + + - `internal-error` - The snapshot was not deleted due to a server error. + + - `client-error` - The snapshot was not deleted due to a client + configuration error. + + For details about an error, check the `DeleteSnapshot` event in the + CloudTrail event history. For more information, see [View event + history](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/tutorial-event-history.html) + in the *Amazon Web Services CloudTrail User Guide*. + """ + +@dataclass(kw_only=True) +class DeleteSpotDatafeedSubscriptionInput(_SerdeShape): + """Contains the parameters for DeleteSpotDatafeedSubscription.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteSpotDatafeedSubscriptionOutput(_SerdeShape): + """Dataclass for DeleteSpotDatafeedSubscriptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSubnetCidrReservationInput(_SerdeShape): + """Dataclass for DeleteSubnetCidrReservationInput structure.""" + + subnet_cidr_reservation_id: str | None = ... + """The ID of the subnet CIDR reservation.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteSubnetCidrReservationOutput(_SerdeShape): + """Dataclass for DeleteSubnetCidrReservationOutput structure.""" + + deleted_subnet_cidr_reservation: SubnetCidrReservation | None = ... + """Information about the deleted subnet CIDR reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSubnetInput(_SerdeShape): + """Dataclass for DeleteSubnetInput structure.""" + + subnet_id: str | None = ... + """The ID of the subnet.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteSubnetOutput(_SerdeShape): + """Dataclass for DeleteSubnetOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTagsInput(_SerdeShape): + """Dataclass for DeleteTagsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + resources: list[str] | None = ... + """ + The IDs of the resources, separated by spaces. + + Constraints: Up to 1000 resource IDs. We recommend breaking up this + request into smaller batches. + """ + tags: list[Tag] | None = ... + """ + The tags to delete. Specify a tag key and an optional tag value to + delete specific tags. If you specify a tag key without a tag value, we + delete any tag with this key regardless of its value. If you specify a + tag key with an empty string as the tag value, we delete the tag only if + its value is an empty string. + + If you omit this parameter, we delete all user-defined tags for the + specified resources. We do not delete Amazon Web Services-generated tags + (tags that have the `aws:` prefix). + + Constraints: Up to 1000 tags. + """ + +@dataclass(kw_only=True) +class DeleteTagsOutput(_SerdeShape): + """Dataclass for DeleteTagsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorFilterInput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorFilterInput structure.""" + + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorFilterOutput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorFilterOutput structure.""" + + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorFilterRuleInput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorFilterRuleInput structure.""" + + traffic_mirror_filter_rule_id: str | None = ... + """The ID of the Traffic Mirror rule.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorFilterRuleOutput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorFilterRuleOutput structure.""" + + traffic_mirror_filter_rule_id: str | None = ... + """The ID of the deleted Traffic Mirror rule.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorSessionInput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorSessionInput structure.""" + + traffic_mirror_session_id: str | None = ... + """The ID of the Traffic Mirror session.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorSessionOutput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorSessionOutput structure.""" + + traffic_mirror_session_id: str | None = ... + """The ID of the deleted Traffic Mirror session.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorTargetInput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorTargetInput structure.""" + + traffic_mirror_target_id: str | None = ... + """The ID of the Traffic Mirror target.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTrafficMirrorTargetOutput(_SerdeShape): + """Dataclass for DeleteTrafficMirrorTargetOutput structure.""" + + traffic_mirror_target_id: str | None = ... + """The ID of the deleted Traffic Mirror target.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayClientVpnAttachmentInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayClientVpnAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Transit Gateway attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayClientVpnAttachmentOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayClientVpnAttachmentOutput structure.""" + + transit_gateway_client_vpn_attachment: ( + TransitGatewayClientVpnAttachment | None + ) = ... + """Information about the Transit Gateway Client VPN attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayConnectInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayConnectInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Connect attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayConnectOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayConnectOutput structure.""" + + transit_gateway_connect: TransitGatewayConnect | None = ... + """Information about the deleted Connect attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayConnectPeerInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayConnectPeerInput structure.""" + + transit_gateway_connect_peer_id: str | None = ... + """The ID of the Connect peer.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayConnectPeerOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayConnectPeerOutput structure.""" + + transit_gateway_connect_peer: TransitGatewayConnectPeer | None = ... + """Information about the deleted Connect peer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMeteringPolicyEntryInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMeteringPolicyEntryInput structure.""" + + transit_gateway_metering_policy_id: str | None = ... + """ + The ID of the transit gateway metering policy containing the entry to + delete. + """ + policy_rule_number: int | None = ... + """The rule number of the metering policy entry to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMeteringPolicyEntryOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMeteringPolicyEntryOutput structure.""" + + transit_gateway_metering_policy_entry: ( + TransitGatewayMeteringPolicyEntry | None + ) = ... + """Information about the deleted transit gateway metering policy entry.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMeteringPolicyInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMeteringPolicyInput structure.""" + + transit_gateway_metering_policy_id: str | None = ... + """The ID of the transit gateway metering policy to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMeteringPolicyOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMeteringPolicyOutput structure.""" + + transit_gateway_metering_policy: TransitGatewayMeteringPolicy | None = ... + """Information about the deleted transit gateway metering policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMulticastDomainInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMulticastDomainInput structure.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayMulticastDomainOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayMulticastDomainOutput structure.""" + + transit_gateway_multicast_domain: TransitGatewayMulticastDomain | None = ... + """Information about the deleted transit gateway multicast domain.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayOutput structure.""" + + transit_gateway: TransitGateway | None = ... + """Information about the deleted transit gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPeeringAttachmentInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPeeringAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway peering attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPeeringAttachmentOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPeeringAttachmentOutput structure.""" + + transit_gateway_peering_attachment: TransitGatewayPeeringAttachment | None = ... + """The transit gateway peering attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPolicyTableEntryInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPolicyTableEntryInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + policy_rule_number: str | None = ... + """The rule number of the policy table entry to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPolicyTableEntryOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPolicyTableEntryOutput structure.""" + + transit_gateway_policy_table_entry: TransitGatewayPolicyTableEntry | None = ... + """Describes a transit gateway policy table entry""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPolicyTableInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPolicyTableInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The transit gateway policy table to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPolicyTableOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPolicyTableOutput structure.""" + + transit_gateway_policy_table: TransitGatewayPolicyTable | None = ... + """Provides details about the deleted transit gateway policy table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPrefixListReferenceInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPrefixListReferenceInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the route table.""" + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayPrefixListReferenceOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayPrefixListReferenceOutput structure.""" + + transit_gateway_prefix_list_reference: ( + TransitGatewayPrefixListReference | None + ) = ... + """Information about the deleted prefix list reference.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayRouteInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + destination_cidr_block: str | None = ... + """ + The CIDR range for the route. This must match the CIDR for the route + exactly. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayRouteOutput structure.""" + + route: TransitGatewayRoute | None = ... + """Information about the route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteTableAnnouncementInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayRouteTableAnnouncementInput structure.""" + + transit_gateway_route_table_announcement_id: str | None = ... + """The transit gateway route table ID that's being deleted.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteTableAnnouncementOutput(_SerdeShape): + """ + Dataclass for DeleteTransitGatewayRouteTableAnnouncementOutput + structure. + """ + + transit_gateway_route_table_announcement: ( + TransitGatewayRouteTableAnnouncement | None + ) = ... + """Provides details about a deleted transit gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteTableInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayRouteTableInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayRouteTableOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayRouteTableOutput structure.""" + + transit_gateway_route_table: TransitGatewayRouteTable | None = ... + """Information about the deleted transit gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayVpcAttachmentInput(_SerdeShape): + """Dataclass for DeleteTransitGatewayVpcAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteTransitGatewayVpcAttachmentOutput(_SerdeShape): + """Dataclass for DeleteTransitGatewayVpcAttachmentOutput structure.""" + + transit_gateway_vpc_attachment: TransitGatewayVpcAttachment | None = ... + """Information about the deleted VPC attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessEndpointInput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessEndpointInput structure.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the Verified Access endpoint.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessEndpointOutput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessEndpointOutput structure.""" + + verified_access_endpoint: VerifiedAccessEndpoint | None = ... + """Details about the Verified Access endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessGroupInput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessGroupInput structure.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessGroupOutput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessGroupOutput structure.""" + + verified_access_group: VerifiedAccessGroup | None = ... + """Details about the Verified Access group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessInstanceInput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessInstanceInput structure.""" + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessInstanceOutput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessInstanceOutput structure.""" + + verified_access_instance: VerifiedAccessInstance | None = ... + """Details about the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessTrustProviderInput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessTrustProviderInput structure.""" + + verified_access_trust_provider_id: str | None = ... + """The ID of the Verified Access trust provider.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class DeleteVerifiedAccessTrustProviderOutput(_SerdeShape): + """Dataclass for DeleteVerifiedAccessTrustProviderOutput structure.""" + + verified_access_trust_provider: VerifiedAccessTrustProvider | None = ... + """Details about the Verified Access trust provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVolumeInput(_SerdeShape): + """Dataclass for DeleteVolumeInput structure.""" + + volume_id: str | None = ... + """The ID of the volume.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVolumeOutput(_SerdeShape): + """Dataclass for DeleteVolumeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcBlockPublicAccessExclusionInput(_SerdeShape): + """Dataclass for DeleteVpcBlockPublicAccessExclusionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + exclusion_id: str | None = ... + """The ID of the exclusion.""" + +@dataclass(kw_only=True) +class DeleteVpcBlockPublicAccessExclusionOutput(_SerdeShape): + """Dataclass for DeleteVpcBlockPublicAccessExclusionOutput structure.""" + + vpc_block_public_access_exclusion: VpcBlockPublicAccessExclusion | None = ... + """Details about an exclusion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcEncryptionControlInput(_SerdeShape): + """Dataclass for DeleteVpcEncryptionControlInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_encryption_control_id: str | None = ... + """The ID of the VPC Encryption Control resource to delete.""" + +@dataclass(kw_only=True) +class DeleteVpcEncryptionControlOutput(_SerdeShape): + """Dataclass for DeleteVpcEncryptionControlOutput structure.""" + + vpc_encryption_control: VpcEncryptionControl | None = ... + """Information about the deleted VPC Encryption Control configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcEndpointConnectionNotificationsInput(_SerdeShape): + """Dataclass for DeleteVpcEndpointConnectionNotificationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + connection_notification_ids: list[str] | None = ... + """The IDs of the notifications.""" + +@dataclass(kw_only=True) +class DeleteVpcEndpointConnectionNotificationsOutput(_SerdeShape): + """Dataclass for DeleteVpcEndpointConnectionNotificationsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """ + Information about the notifications that could not be deleted + successfully. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcEndpointServiceConfigurationsInput(_SerdeShape): + """Dataclass for DeleteVpcEndpointServiceConfigurationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_ids: list[str] | None = ... + """The IDs of the services.""" + +@dataclass(kw_only=True) +class DeleteVpcEndpointServiceConfigurationsOutput(_SerdeShape): + """Dataclass for DeleteVpcEndpointServiceConfigurationsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """ + Information about the service configurations that were not deleted, if + applicable. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcEndpointsInput(_SerdeShape): + """Dataclass for DeleteVpcEndpointsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_endpoint_ids: list[str] | None = ... + """The IDs of the VPC endpoints.""" + +@dataclass(kw_only=True) +class DeleteVpcEndpointsOutput(_SerdeShape): + """Dataclass for DeleteVpcEndpointsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """Information about the VPC endpoints that were not successfully deleted.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcInput(_SerdeShape): + """Dataclass for DeleteVpcInput structure.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVpcOutput(_SerdeShape): + """Dataclass for DeleteVpcOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpcPeeringConnectionInput(_SerdeShape): + """Dataclass for DeleteVpcPeeringConnectionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection.""" + +@dataclass(kw_only=True) +class DeleteVpcPeeringConnectionOutput(_SerdeShape): + """Dataclass for DeleteVpcPeeringConnectionOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpnConcentratorInput(_SerdeShape): + """Dataclass for DeleteVpnConcentratorInput structure.""" + + vpn_concentrator_id: str | None = ... + """The ID of the VPN concentrator to delete.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVpnConcentratorOutput(_SerdeShape): + """Dataclass for DeleteVpnConcentratorOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpnConnectionInput(_SerdeShape): + """Contains the parameters for DeleteVpnConnection.""" + + vpn_connection_id: str | None = ... + """The ID of the VPN connection.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVpnConnectionOutput(_SerdeShape): + """Dataclass for DeleteVpnConnectionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpnConnectionRouteInput(_SerdeShape): + """Contains the parameters for DeleteVpnConnectionRoute.""" + + destination_cidr_block: str | None = ... + """The CIDR block associated with the local subnet of the customer network.""" + vpn_connection_id: str | None = ... + """The ID of the VPN connection.""" + +@dataclass(kw_only=True) +class DeleteVpnConnectionRouteOutput(_SerdeShape): + """Dataclass for DeleteVpnConnectionRouteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVpnGatewayInput(_SerdeShape): + """Contains the parameters for DeleteVpnGateway.""" + + vpn_gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeleteVpnGatewayOutput(_SerdeShape): + """Dataclass for DeleteVpnGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeprecationTimeCondition(_SerdeShape): + """The maximum period since deprecation for allowed images.""" + + maximum_days_since_deprecated: int | None = ... + """ + The maximum number of days that have elapsed since the image was + deprecated. When set to `0`, no deprecated images are allowed. + """ + +@dataclass(kw_only=True) +class DeprecationTimeConditionRequest(_SerdeShape): + """The maximum period since deprecation for allowed images.""" + + maximum_days_since_deprecated: int | None = ... + """ + The maximum number of days that have elapsed since the image was + deprecated. Set to `0` to exclude all deprecated images. + """ + +@dataclass(kw_only=True) +class DeprovisionByoipCidrInput(_SerdeShape): + """Dataclass for DeprovisionByoipCidrInput structure.""" + + cidr: str | None = ... + """ + The address range, in CIDR notation. The prefix must be the same prefix + that you specified when you provisioned the address range. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeprovisionByoipCidrOutput(_SerdeShape): + """Dataclass for DeprovisionByoipCidrOutput structure.""" + + byoip_cidr: ByoipCidr | None = ... + """Information about the address range.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeprovisionIpamByoasnInput(_SerdeShape): + """Dataclass for DeprovisionIpamByoasnInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The IPAM ID.""" + asn: str | None = ... + """An ASN.""" + +@dataclass(kw_only=True) +class DeprovisionIpamByoasnOutput(_SerdeShape): + """Dataclass for DeprovisionIpamByoasnOutput structure.""" + + byoasn: Byoasn | None = ... + """An ASN and BYOIP CIDR association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeprovisionIpamPoolCidrInput(_SerdeShape): + """Dataclass for DeprovisionIpamPoolCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the pool that has the CIDR you want to deprovision.""" + cidr: str | None = ... + """The CIDR which you want to deprovision from the pool.""" + +@dataclass(kw_only=True) +class DeprovisionIpamPoolCidrOutput(_SerdeShape): + """Dataclass for DeprovisionIpamPoolCidrOutput structure.""" + + ipam_pool_cidr: IpamPoolCidr | None = ... + """The deprovisioned pool CIDR.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeprovisionPublicIpv4PoolCidrInput(_SerdeShape): + """Dataclass for DeprovisionPublicIpv4PoolCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + pool_id: str | None = ... + """The ID of the pool that you want to deprovision the CIDR from.""" + cidr: str | None = ... + """The CIDR you want to deprovision from the pool.""" + +@dataclass(kw_only=True) +class DeprovisionPublicIpv4PoolCidrOutput(_SerdeShape): + """Dataclass for DeprovisionPublicIpv4PoolCidrOutput structure.""" + + pool_id: str | None = ... + """The ID of the pool that you deprovisioned the CIDR from.""" + deprovisioned_addresses: list[str] | None = ... + """The deprovisioned CIDRs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterImageInput(_SerdeShape): + """Contains the parameters for DeregisterImage.""" + + image_id: str | None = ... + """The ID of the AMI.""" + delete_associated_snapshots: bool | None = ... + """ + Specifies whether to delete the snapshots associated with the AMI during + deregistration. + + Note: + If a snapshot is associated with multiple AMIs, it is not deleted, + regardless of this setting. + + Default: The snapshots are not deleted. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeregisterImageOutput(_SerdeShape): + """Dataclass for DeregisterImageOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + delete_snapshot_results: list[DeleteSnapshotReturnCode] | None = ... + """ + The deletion result for each snapshot associated with the AMI, including + the snapshot ID and its success or error code. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterInstanceEventNotificationAttributesInput(_SerdeShape): + """ + Dataclass for DeregisterInstanceEventNotificationAttributesInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_tag_attribute: DeregisterInstanceTagAttributeRequest | None = ... + """Information about the tag keys to deregister.""" + +@dataclass(kw_only=True) +class DeregisterInstanceEventNotificationAttributesOutput(_SerdeShape): + """ + Dataclass for DeregisterInstanceEventNotificationAttributesOutput + structure. + """ + + instance_tag_attribute: InstanceTagNotificationAttribute | None = ... + """The resulting set of tag keys.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterInstanceTagAttributeRequest(_SerdeShape): + """ + Information about the tag keys to deregister for the current Region. You + can either specify individual tag keys or deregister all tag keys in the + current Region. You must specify either `IncludeAllTagsOfInstance` or + `InstanceTagKeys` in the request + """ + + include_all_tags_of_instance: bool | None = ... + """ + Indicates whether to deregister all tag keys in the current Region. + Specify `false` to deregister all tag keys. + """ + instance_tag_keys: list[str] | None = ... + """Information about the tag keys to deregister.""" + +@dataclass(kw_only=True) +class DeregisterTransitGatewayMulticastGroupMembersInput(_SerdeShape): + """ + Dataclass for DeregisterTransitGatewayMulticastGroupMembersInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + network_interface_ids: list[str] | None = ... + """The IDs of the group members' network interfaces.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeregisterTransitGatewayMulticastGroupMembersOutput(_SerdeShape): + """ + Dataclass for DeregisterTransitGatewayMulticastGroupMembersOutput + structure. + """ + + deregistered_multicast_group_members: ( + TransitGatewayMulticastDeregisteredGroupMembers | None + ) = ... + """Information about the deregistered members.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterTransitGatewayMulticastGroupSourcesInput(_SerdeShape): + """ + Dataclass for DeregisterTransitGatewayMulticastGroupSourcesInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + network_interface_ids: list[str] | None = ... + """The IDs of the group sources' network interfaces.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DeregisterTransitGatewayMulticastGroupSourcesOutput(_SerdeShape): + """ + Dataclass for DeregisterTransitGatewayMulticastGroupSourcesOutput + structure. + """ + + deregistered_multicast_group_sources: ( + TransitGatewayMulticastDeregisteredGroupSources | None + ) = ... + """Information about the deregistered group sources.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAccountAttributesInput(_SerdeShape): + """Dataclass for DescribeAccountAttributesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + attribute_names: list[str] | None = ... + """The account attribute names.""" + +@dataclass(kw_only=True) +class DescribeAccountAttributesOutput(_SerdeShape): + """Dataclass for DescribeAccountAttributesOutput structure.""" + + account_attributes: list[AccountAttribute] | None = ... + """Information about the account attributes.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAccountVpcEncryptionControlInput(_SerdeShape): + """Dataclass for DescribeAccountVpcEncryptionControlInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeAccountVpcEncryptionControlOutput(_SerdeShape): + """Dataclass for DescribeAccountVpcEncryptionControlOutput structure.""" + + account_vpc_encryption_control: AccountVpcEncryptionControl | None = ... + """ + Information about the account-level VPC Encryption Control + configuration. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAddressesAttributeInput(_SerdeShape): + """Dataclass for DescribeAddressesAttributeInput structure.""" + + allocation_ids: list[str] | None = ... + """[EC2-VPC] The allocation IDs.""" + attribute: str | None = ... + """The attribute of the IP address.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeAddressesAttributeOutput(_SerdeShape): + """Dataclass for DescribeAddressesAttributeOutput structure.""" + + addresses: list[AddressAttribute] | None = ... + """Information about the IP addresses.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAddressesInput(_SerdeShape): + """Dataclass for DescribeAddressesInput structure.""" + + public_ips: list[str] | None = ... + """ + One or more Elastic IP addresses. + + Default: Describes all your Elastic IP addresses. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `allocation-id` - The allocation ID for the address. + + - `association-id` - The association ID for the address. + + - `instance-id` - The ID of the instance the address is associated with, + if any. + + - `network-border-group` - A unique set of Availability Zones, Local + Zones, or Wavelength Zones from where Amazon Web Services advertises + IP addresses. + + - `network-interface-id` - The ID of the network interface that the + address is associated with, if any. + + - `network-interface-owner-id` - The Amazon Web Services account ID of + the owner. + + - `private-ip-address` - The private IP address associated with the + Elastic IP address. + + - `public-ip` - The Elastic IP address, or the carrier IP address. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + allocation_ids: list[str] | None = ... + """Information about the allocation IDs.""" + +@dataclass(kw_only=True) +class DescribeAddressesOutput(_SerdeShape): + """Dataclass for DescribeAddressesOutput structure.""" + + addresses: list[Address] | None = ... + """Information about the Elastic IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAddressTransfersInput(_SerdeShape): + """Dataclass for DescribeAddressTransfersInput structure.""" + + allocation_ids: list[str] | None = ... + """The allocation IDs of Elastic IP addresses.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + max_results: int | None = ... + """ + The maximum number of address transfers to return in one page of + results. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeAddressTransfersOutput(_SerdeShape): + """Dataclass for DescribeAddressTransfersOutput structure.""" + + address_transfers: list[AddressTransfer] | None = ... + """The Elastic IP address transfer.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAggregateIdFormatInput(_SerdeShape): + """Dataclass for DescribeAggregateIdFormatInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeAggregateIdFormatOutput(_SerdeShape): + """Dataclass for DescribeAggregateIdFormatOutput structure.""" + + use_long_ids_aggregated: bool | None = ... + """ + Indicates whether all resource types in the Region are configured to use + longer IDs. This value is only `true` if all users are configured to use + longer IDs for all resources types in the Region. + """ + statuses: list[IdFormat] | None = ... + """Information about each resource's ID format.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusCheckAssociationsInput(_SerdeShape): + """Dataclass for DescribeApplicationStatusCheckAssociationsInput structure.""" + + application_status_check_ids: list[str] | None = ... + """ + The IDs of the application status checks for which to describe + associations. + """ + filters: list[Filter] | None = ... + """ + The filters to use to limit the results. + + - `association-type` -- The type of association. Valid values: `tag` and + `instance-id`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusCheckAssociationsOutput(_SerdeShape): + """ + Dataclass for DescribeApplicationStatusCheckAssociationsOutput + structure. + """ + + associations: list[ApplicationStatusCheckAssociationObject] | None = ... + """The associations for the specified application status checks.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + tags: list[Tag] | None = ... + """The tags associated with the application status checks.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusChecksInput(_SerdeShape): + """Dataclass for DescribeApplicationStatusChecksInput structure.""" + + application_status_check_ids: list[str] | None = ... + """The IDs of the application status checks to describe.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `aggregation` -- The aggregation setting. Valid values: `included` and + `excluded`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + include_all: bool | None = ... + """ + Specifies whether to include recently deleted application status checks + that remain available during the deletion grace period. If you omit this + parameter or set it to `false`, the response includes only active + checks. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusChecksOutput(_SerdeShape): + """Dataclass for DescribeApplicationStatusChecksOutput structure.""" + + application_status_checks: list[ApplicationStatusCheckResponseObject] | None = ... + """Information about the application status checks.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusInput(_SerdeShape): + """Dataclass for DescribeApplicationStatusInput structure.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances for which to describe application status.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone-id` -- The ID of the Availability Zone. + + - `status` -- The instance-level application status. For valid values + and their meanings, see `ApplicationStatus`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeApplicationStatusOutput(_SerdeShape): + """Dataclass for DescribeApplicationStatusOutput structure.""" + + application_statuses: ApplicationStatusesResponseType | None = ... + """The application statuses for the specified instances.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAvailabilityZonesInput(_SerdeShape): + """Dataclass for DescribeAvailabilityZonesInput structure.""" + + zone_names: list[str] | None = ... + """The names of the Availability Zones, Local Zones, and Wavelength Zones.""" + zone_ids: list[str] | None = ... + """The IDs of the Availability Zones, Local Zones, and Wavelength Zones.""" + all_availability_zones: bool | None = ... + """ + Include all Availability Zones, Local Zones, and Wavelength Zones + regardless of your opt-in status. + + If you do not use this parameter, the results include only the zones for + the Regions where you have chosen the option to opt in. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `group-long-name` - The long name of the zone group for the + Availability Zone (for example, `US West (Oregon) 1`), the Local Zone + (for example, for Zone group `us-west-2-lax-1`, it is + `US West (Los Angeles)`, or the Wavelength Zone (for example, for Zone + group `us-east-1-wl1`, it is `US East (Verizon)`. + + - `group-name` - The name of the zone group for the Availability Zone + (for example, `us-east-1-zg-1`), the Local Zone (for example, + `us-west-2-lax-1`), or the Wavelength Zone (for example, + `us-east-1-wl1`). + + - `message` - The Zone message. + + - `opt-in-status` - The opt-in status (`opted-in` | `not-opted-in` | + `opt-in-not-required`). + + - `parent-zone-id` - The ID of the zone that handles some of the Local + Zone and Wavelength Zone control plane operations, such as API calls. + + - `parent-zone-name` - The ID of the zone that handles some of the Local + Zone and Wavelength Zone control plane operations, such as API calls. + + - `region-name` - The name of the Region for the Zone (for example, + `us-east-1`). + + - `state` - The state of the Availability Zone, the Local Zone, or the + Wavelength Zone (`available` | `unavailable` | `constrained`). + + - `zone-id` - The ID of the Availability Zone (for example, `use1-az1`), + the Local Zone (for example, `usw2-lax1-az1`), or the Wavelength Zone + (for example, `us-east-1-wl1-bos-wlz-1`). + + - `zone-name` - The name of the Availability Zone (for example, + `us-east-1a`), the Local Zone (for example, `us-west-2-lax-1a`), or + the Wavelength Zone (for example, `us-east-1-wl1-bos-wlz-1`). + + - `zone-type` - The type of zone (`availability-zone` | `local-zone` | + `wavelength-zone`). + """ + +@dataclass(kw_only=True) +class DescribeAvailabilityZonesOutput(_SerdeShape): + """Dataclass for DescribeAvailabilityZonesOutput structure.""" + + availability_zones: list[AvailabilityZone] | None = ... + """ + Information about the Availability Zones, Local Zones, and Wavelength + Zones. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAwsNetworkPerformanceMetricSubscriptionsInput(_SerdeShape): + """ + Dataclass for DescribeAwsNetworkPerformanceMetricSubscriptionsInput + structure. + """ + + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeAwsNetworkPerformanceMetricSubscriptionsOutput(_SerdeShape): + """ + Dataclass for DescribeAwsNetworkPerformanceMetricSubscriptionsOutput + structure. + """ + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + subscriptions: list[Subscription] | None = ... + """Describes the current Infrastructure Performance subscriptions.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeBundleTasksInput(_SerdeShape): + """Dataclass for DescribeBundleTasksInput structure.""" + + bundle_ids: list[str] | None = ... + """ + The bundle task IDs. + + Default: Describes all your bundle tasks. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `bundle-id` - The ID of the bundle task. + + - `error-code` - If the task failed, the error code returned. + + - `error-message` - If the task failed, the error message returned. + + - `instance-id` - The ID of the instance. + + - `progress` - The level of task completion, as a percentage (for + example, 20%). + + - `s3-bucket` - The Amazon S3 bucket to store the AMI. + + - `s3-prefix` - The beginning of the AMI name. + + - `start-time` - The time the task started (for example, + 2013-09-15T17:15:20.000Z). + + - `state` - The state of the task (`pending` | `waiting-for-shutdown` + | `bundling` | `storing` | `cancelling` | `complete` | `failed`). + + - `update-time` - The time of the most recent update for the task. + """ + +@dataclass(kw_only=True) +class DescribeBundleTasksOutput(_SerdeShape): + """Dataclass for DescribeBundleTasksOutput structure.""" + + bundle_tasks: list[BundleTask] | None = ... + """Information about the bundle tasks.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeByoipCidrsInput(_SerdeShape): + """Dataclass for DescribeByoipCidrsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeByoipCidrsOutput(_SerdeShape): + """Dataclass for DescribeByoipCidrsOutput structure.""" + + byoip_cidrs: list[ByoipCidr] | None = ... + """Information about your address ranges.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockExtensionHistoryInput(_SerdeShape): + """Dataclass for DescribeCapacityBlockExtensionHistoryInput structure.""" + + capacity_reservation_ids: list[str] | None = ... + """ + The IDs of Capacity Block reservations that you want to display the + history for. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters + + - `availability-zone` - The Availability Zone of the extension. + + - `availability-zone-id` - The Availability Zone ID of the extension. + + - `capacity-block-extension-offering-id` - The ID of the extension + offering. + + - `capacity-block-extension-status` - The status of the extension + (`payment-pending` | `payment-failed` | `payment-succeeded`). + + - `capacity-reservation-id` - The reservation ID of the extension. + + - `instance-type` - The instance type of the extension. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockExtensionHistoryOutput(_SerdeShape): + """Dataclass for DescribeCapacityBlockExtensionHistoryOutput structure.""" + + capacity_block_extensions: list[CapacityBlockExtension] | None = ... + """ + Describes one or more of your Capacity Block extensions. The results + describe only the Capacity Block extensions in the Amazon Web Services + Region that you're currently using. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockExtensionOfferingsInput(_SerdeShape): + """Dataclass for DescribeCapacityBlockExtensionOfferingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_block_extension_duration_hours: int | None = ... + """The duration of the Capacity Block extension offering in hours.""" + capacity_reservation_id: str | None = ... + """The ID of the Capacity reservation to be extended.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockExtensionOfferingsOutput(_SerdeShape): + """Dataclass for DescribeCapacityBlockExtensionOfferingsOutput structure.""" + + capacity_block_extension_offerings: ( + list[CapacityBlockExtensionOffering] | None + ) = ... + """ + The recommended Capacity Block extension offerings for the dates + specified. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockOfferingsInput(_SerdeShape): + """Dataclass for DescribeCapacityBlockOfferingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_type: str | None = ... + """ + The type of instance for which the Capacity Block offering reserves + capacity. + """ + instance_count: int | None = ... + """ + The number of instances for which to reserve capacity. Each Capacity + Block can have up to 64 instances, and you can have up to 256 instances + across Capacity Blocks. + """ + start_date_range: datetime | None = ... + """The earliest start date for the Capacity Block offering.""" + end_date_range: datetime | None = ... + """The latest end date for the Capacity Block offering.""" + capacity_duration_hours: int | None = ... + """ + The reservation duration for the Capacity Block, in hours. You must + specify the duration in 1-day increments up 14 days, and in 7-day + increments up to 182 days. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + ultraserver_type: str | None = ... + """The EC2 UltraServer type of the Capacity Block offerings.""" + ultraserver_count: int | None = ... + """The number of EC2 UltraServers in the offerings.""" + all_availability_zones: bool | None = ... + """ + Include all Availability Zones and Local Zones, regardless of your + opt-in status. If you do not use this parameter, the results include + available offerings from all Availability Zones in the Amazon Web + Services Region and Local Zones you are opted into. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockOfferingsOutput(_SerdeShape): + """Dataclass for DescribeCapacityBlockOfferingsOutput structure.""" + + capacity_block_offerings: list[CapacityBlockOffering] | None = ... + """The recommended Capacity Block offering for the dates specified.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlocksInput(_SerdeShape): + """Dataclass for DescribeCapacityBlocksInput structure.""" + + capacity_block_ids: list[str] | None = ... + """The IDs of the Capacity Blocks.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `capacity-block-id` - The ID of the Capacity Block. + + - `ultraserver-type` - The Capacity Block type. The type can be + `instances` or `ultraservers`. + + - `availability-zone` - The Availability Zone of the Capacity Block. + + - `start-date` - The date and time at which the Capacity Block was + started. + + - `end-date` - The date and time at which the Capacity Block expires. + When a Capacity Block expires, all instances in the Capacity Block are + terminated. + + - `create-date` - The date and time at which the Capacity Block was + created. + + - `state` - The state of the Capacity Block (`active` | `expired` | + `unavailable` | `cancelled` | `failed` | `scheduled` | + `payment-pending` | `payment-failed`). + + - `tags` - The tags assigned to the Capacity Block. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlocksOutput(_SerdeShape): + """Dataclass for DescribeCapacityBlocksOutput structure.""" + + capacity_blocks: list[CapacityBlock] | None = ... + """The Capacity Blocks.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockStatusInput(_SerdeShape): + """Dataclass for DescribeCapacityBlockStatusInput structure.""" + + capacity_block_ids: list[str] | None = ... + """The ID of the Capacity Block.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `interconnect-status` - The status of the interconnect for the + Capacity Block (`ok` | `impaired` | `insufficient-data`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityBlockStatusOutput(_SerdeShape): + """Dataclass for DescribeCapacityBlockStatusOutput structure.""" + + capacity_block_statuses: list[CapacityBlockStatus] | None = ... + """The availability of capacity for a Capacity Block.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityManagerDataExportsInput(_SerdeShape): + """Dataclass for DescribeCapacityManagerDataExportsInput structure.""" + + capacity_manager_data_export_ids: list[str] | None = ... + """ + The IDs of the data export configurations to describe. If not specified, + all export configurations are returned. + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, up to 1000 results are returned. + """ + next_token: str | None = ... + """ + The token for the next page of results. Use this value in a subsequent + call to retrieve additional results. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters to narrow the results. Supported filters include + export status, creation date, and S3 bucket name. + """ + +@dataclass(kw_only=True) +class DescribeCapacityManagerDataExportsOutput(_SerdeShape): + """Dataclass for DescribeCapacityManagerDataExportsOutput structure.""" + + capacity_manager_data_exports: list[CapacityManagerDataExportResponse] | None = ... + """ + Information about the data export configurations, including export + settings, delivery status, and recent activity. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationBillingRequestsInput(_SerdeShape): + """Dataclass for DescribeCapacityReservationBillingRequestsInput structure.""" + + capacity_reservation_ids: list[str] | None = ... + """The ID of the Capacity Reservation.""" + role: str | None = ... + """ + Specify one of the following: + + - `odcr-owner` - If you are the Capacity Reservation owner, specify this + value to view requests that you have initiated. Not supported with the + `requested-by` filter. + + - `unused-reservation-billing-owner` - If you are the consumer account, + specify this value to view requests that have been sent to you. Not + supported with the `unused-reservation-billing-owner` filter. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `status` - The state of the request (`pending` | `accepted` | + `rejected` | `cancelled` | `revoked` | `expired`). + + - `requested-by` - The account ID of the Capacity Reservation owner that + initiated the request. Not supported if you specify `requested-by` for + **Role**. + + - `unused-reservation-billing-owner` - The ID of the consumer account to + which the request was sent. Not supported if you specify + `unused-reservation-billing-owner` for **Role**. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationBillingRequestsOutput(_SerdeShape): + """ + Dataclass for DescribeCapacityReservationBillingRequestsOutput + structure. + """ + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + capacity_reservation_billing_requests: ( + list[CapacityReservationBillingRequest] | None + ) = ... + """Information about the request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationCancellationQuotesInput(_SerdeShape): + """ + Dataclass for DescribeCapacityReservationCancellationQuotesInput + structure. + """ + + capacity_reservation_cancellation_quote_ids: list[str] | None = ... + """The IDs of the cancellation quotes to describe.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + +@dataclass(kw_only=True) +class DescribeCapacityReservationCancellationQuotesOutput(_SerdeShape): + """ + Dataclass for DescribeCapacityReservationCancellationQuotesOutput + structure. + """ + + capacity_reservation_cancellation_quotes: ( + list[CapacityReservationCancellationQuote] | None + ) = ... + """Information about the Capacity Reservation cancellation quotes.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationDateChangeQuotesInput(_SerdeShape): + """ + Dataclass for DescribeCapacityReservationDateChangeQuotesInput + structure. + """ + + capacity_reservation_modification_quote_ids: list[str] | None = ... + """The IDs of the date change quotes to describe.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + +@dataclass(kw_only=True) +class DescribeCapacityReservationDateChangeQuotesOutput(_SerdeShape): + """ + Dataclass for DescribeCapacityReservationDateChangeQuotesOutput + structure. + """ + + capacity_reservation_modification_quotes: ( + list[CapacityReservationModificationQuote] | None + ) = ... + """Information about the Capacity Reservation date change quotes.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationFleetsInput(_SerdeShape): + """Dataclass for DescribeCapacityReservationFleetsInput structure.""" + + capacity_reservation_fleet_ids: list[str] | None = ... + """The IDs of the Capacity Reservation Fleets to describe.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `state` - The state of the Fleet (`submitted` | `modifying` | + `active` | `partially_fulfilled` | `expiring` | `expired` | + `cancelling` | `cancelled` | `failed`). + + - `instance-match-criteria` - The instance matching criteria for the + Fleet. Only `open` is supported. + + - `tenancy` - The tenancy of the Fleet (`default` | `dedicated`). + + - `allocation-strategy` - The allocation strategy used by the Fleet. + Only `prioritized` is supported. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationFleetsOutput(_SerdeShape): + """Dataclass for DescribeCapacityReservationFleetsOutput structure.""" + + capacity_reservation_fleets: list[CapacityReservationFleet] | None = ... + """Information about the Capacity Reservation Fleets.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationsInput(_SerdeShape): + """Dataclass for DescribeCapacityReservationsInput structure.""" + + capacity_reservation_ids: list[str] | None = ... + """The ID of the Capacity Reservation.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `instance-type` - The type of instance for which the Capacity + Reservation reserves capacity. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + Capacity Reservation. + + - `instance-platform` - The type of operating system for which the + Capacity Reservation reserves capacity. + + - `availability-zone` - The Availability Zone of the Capacity + Reservation. + + - `tenancy` - Indicates the tenancy of the Capacity Reservation. A + Capacity Reservation can have one of the following tenancy settings: + + - `default` - The Capacity Reservation is created on hardware that is + shared with other Amazon Web Services accounts. + + - `dedicated` - The Capacity Reservation is created on single-tenant + hardware that is dedicated to a single Amazon Web Services account. + + - `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost on which + the Capacity Reservation was created. + + - `state` - The current state of the Capacity Reservation. A Capacity + Reservation can be in one of the following states: + + - `active`- The Capacity Reservation is active and the capacity is + available for your use. + + - `expired` - The Capacity Reservation expired automatically at the + date and time specified in your request. The reserved capacity is no + longer available for your use. + + - `cancelled` - The Capacity Reservation was cancelled. The reserved + capacity is no longer available for your use. + + - `pending` - The Capacity Reservation request was successful but the + capacity provisioning is still pending. + + - `failed` - The Capacity Reservation request has failed. A request + might fail due to invalid request parameters, capacity constraints, + or instance limit constraints. Failed requests are retained for 60 + minutes. + + - `start-date` - The date and time at which the Capacity Reservation was + started. + + - `end-date` - The date and time at which the Capacity Reservation + expires. When a Capacity Reservation expires, the reserved capacity is + released and you can no longer launch instances into it. The Capacity + Reservation's state changes to expired when it reaches its end date + and time. + + - `end-date-type` - Indicates the way in which the Capacity Reservation + ends. A Capacity Reservation can have one of the following end types: + + - `unlimited` - The Capacity Reservation remains active until you + explicitly cancel it. + + - `limited` - The Capacity Reservation expires automatically at a + specified date and time. + + - `instance-match-criteria` - Indicates the type of instance launches + that the Capacity Reservation accepts. The options include: + + - `open` - The Capacity Reservation accepts all instances that have + matching attributes (instance type, platform, and Availability + Zone). Instances that have matching attributes launch into the + Capacity Reservation automatically without specifying any additional + parameters. + + - `targeted` - The Capacity Reservation only accepts instances that + have matching attributes (instance type, platform, and Availability + Zone), and explicitly target the Capacity Reservation. This ensures + that only permitted instances can use the reserved capacity. + + - `placement-group-arn` - The ARN of the cluster placement group in + which the Capacity Reservation was created. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationsOutput(_SerdeShape): + """Dataclass for DescribeCapacityReservationsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + capacity_reservations: list[CapacityReservation] | None = ... + """Information about the Capacity Reservations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationTopologyInput(_SerdeShape): + """Dataclass for DescribeCapacityReservationTopologyInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You can't specify this parameter and the Capacity Reservation IDs + parameter in the same request. + + Default: `10` + """ + capacity_reservation_ids: list[str] | None = ... + """ + The Capacity Reservation IDs. + + Default: Describes all your Capacity Reservations. + + Constraints: Maximum 10 explicitly specified Capacity Reservation IDs. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The name of the Availability Zone (for example, + `us-west-2a`) or Local Zone (for example, `us-west-2-lax-1b`) that the + Capacity Reservation is in. + + - `instance-type` - The instance type (for example, `p4d.24xlarge`) or + instance family (for example, `p4d*`). You can use the `*` wildcard to + match zero or more characters, or the `?` wildcard to match zero or + one character. + """ + +@dataclass(kw_only=True) +class DescribeCapacityReservationTopologyOutput(_SerdeShape): + """Dataclass for DescribeCapacityReservationTopologyOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + capacity_reservations: list[CapacityReservationTopology] | None = ... + """Information about the topology of each Capacity Reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCarrierGatewaysInput(_SerdeShape): + """Dataclass for DescribeCarrierGatewaysInput structure.""" + + carrier_gateway_ids: list[str] | None = ... + """One or more carrier gateway IDs.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `carrier-gateway-id` - The ID of the carrier gateway. + + - `state` - The state of the carrier gateway (`pending` | `failed` | + `available` | `deleting` | `deleted`). + + - `owner-id` - The Amazon Web Services account ID of the owner of the + carrier gateway. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC associated with the carrier gateway. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCarrierGatewaysOutput(_SerdeShape): + """Dataclass for DescribeCarrierGatewaysOutput structure.""" + + carrier_gateways: list[CarrierGateway] | None = ... + """Information about the carrier gateway.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClassicLinkInstancesInput(_SerdeShape): + """Dataclass for DescribeClassicLinkInstancesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_ids: list[str] | None = ... + """The instance IDs. Must be instances linked to a VPC through ClassicLink.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `group-id` - The ID of a VPC security group that's associated with + the instance. + + - `instance-id` - The ID of the instance. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC to which the instance is linked. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + Constraint: If the value is greater than 1000, we return only 1000 + items. + """ + +@dataclass(kw_only=True) +class DescribeClassicLinkInstancesOutput(_SerdeShape): + """Dataclass for DescribeClassicLinkInstancesOutput structure.""" + + instances: list[ClassicLinkInstance] | None = ... + """Information about one or more linked EC2-Classic instances.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnAuthorizationRulesInput(_SerdeShape): + """Dataclass for DescribeClientVpnAuthorizationRulesInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `description` - The description of the authorization rule. + + - `destination-cidr` - The CIDR of the network to which the + authorization rule applies. + + - `group-id` - The ID of the Active Directory group to which the + authorization rule grants access. + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the nextToken value. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnAuthorizationRulesOutput(_SerdeShape): + """Dataclass for DescribeClientVpnAuthorizationRulesOutput structure.""" + + authorization_rules: list[AuthorizationRule] | None = ... + """Information about the authorization rules.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnConnectionsInput(_SerdeShape): + """Dataclass for DescribeClientVpnConnectionsInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `connection-id` - The ID of the connection. + + - `username` - For Active Directory client authentication, the user name + of the client who established the client connection. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the nextToken value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnConnectionsOutput(_SerdeShape): + """Dataclass for DescribeClientVpnConnectionsOutput structure.""" + + connections: list[ClientVpnConnection] | None = ... + """Information about the active and terminated client connections.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnEndpointsInput(_SerdeShape): + """Dataclass for DescribeClientVpnEndpointsInput structure.""" + + client_vpn_endpoint_ids: list[str] | None = ... + """The ID of the Client VPN endpoint.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the nextToken value. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `endpoint-id` - The ID of the Client VPN endpoint. + + - `transport-protocol` - The transport protocol (`tcp` | `udp`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnEndpointsOutput(_SerdeShape): + """Dataclass for DescribeClientVpnEndpointsOutput structure.""" + + client_vpn_endpoints: list[ClientVpnEndpoint] | None = ... + """Information about the Client VPN endpoints.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnRoutesInput(_SerdeShape): + """Dataclass for DescribeClientVpnRoutesInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `destination-cidr` - The CIDR of the route destination. + + - `origin` - How the route was associated with the Client VPN endpoint + (`associate` | `add-route`). + + - `target-subnet` - The ID of the subnet through which traffic is + routed. + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the nextToken value. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnRoutesOutput(_SerdeShape): + """Dataclass for DescribeClientVpnRoutesOutput structure.""" + + routes: list[ClientVpnRoute] | None = ... + """Information about the Client VPN endpoint routes.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnTargetNetworksInput(_SerdeShape): + """Dataclass for DescribeClientVpnTargetNetworksInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + association_ids: list[str] | None = ... + """The IDs of the target network associations.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the nextToken value. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `association-id` - The ID of the association. + + - `target-network-id` - The ID of the subnet specified as the target + network. + + - `vpc-id` - The ID of the VPC in which the target network is located. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeClientVpnTargetNetworksOutput(_SerdeShape): + """Dataclass for DescribeClientVpnTargetNetworksOutput structure.""" + + client_vpn_target_networks: list[TargetNetwork] | None = ... + """Information about the associated target networks.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCoipPoolsInput(_SerdeShape): + """Dataclass for DescribeCoipPoolsInput structure.""" + + pool_ids: list[str] | None = ... + """The IDs of the address pools.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `coip-pool.local-gateway-route-table-id` - The ID of the local gateway + route table. + + - `coip-pool.pool-id` - The ID of the address pool. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCoipPoolsOutput(_SerdeShape): + """Dataclass for DescribeCoipPoolsOutput structure.""" + + coip_pools: list[CoipPool] | None = ... + """Information about the address pools.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeConversionTasksInput(_SerdeShape): + """Dataclass for DescribeConversionTasksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + conversion_task_ids: list[str] | None = ... + """The conversion task IDs.""" + +@dataclass(kw_only=True) +class DescribeConversionTasksOutput(_SerdeShape): + """Dataclass for DescribeConversionTasksOutput structure.""" + + conversion_tasks: list[ConversionTask] | None = ... + """Information about the conversion tasks.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCustomerGatewaysInput(_SerdeShape): + """Contains the parameters for DescribeCustomerGateways.""" + + customer_gateway_ids: list[str] | None = ... + """ + One or more customer gateway IDs. + + Default: Describes all your customer gateways. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `bgp-asn` - The customer gateway's Border Gateway Protocol (BGP) + Autonomous System Number (ASN). + + - `customer-gateway-id` - The ID of the customer gateway. + + - `ip-address` - The IP address of the customer gateway device's + external interface. + + - `state` - The state of the customer gateway (`pending` | `available` + | `deleting` | `deleted`). + + - `type` - The type of customer gateway. Currently, the only supported + type is `ipsec.1`. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeCustomerGatewaysOutput(_SerdeShape): + """Contains the output of DescribeCustomerGateways.""" + + customer_gateways: list[CustomerGateway] | None = ... + """Information about one or more customer gateways.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDeclarativePoliciesReportsInput(_SerdeShape): + """Dataclass for DescribeDeclarativePoliciesReportsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + report_ids: list[str] | None = ... + """One or more report IDs.""" + +@dataclass(kw_only=True) +class DescribeDeclarativePoliciesReportsOutput(_SerdeShape): + """Dataclass for DescribeDeclarativePoliciesReportsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + reports: list[DeclarativePoliciesReport] | None = ... + """The report metadata.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDhcpOptionsInput(_SerdeShape): + """Dataclass for DescribeDhcpOptionsInput structure.""" + + dhcp_options_ids: list[str] | None = ... + """The IDs of DHCP option sets.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `dhcp-options-id` - The ID of a DHCP options set. + + - `key` - The key for one of the options (for example, `domain-name`). + + - `value` - The value for one of the options. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + DHCP options set. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeDhcpOptionsOutput(_SerdeShape): + """Dataclass for DescribeDhcpOptionsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + dhcp_options: list[DhcpOptions] | None = ... + """Information about the DHCP options sets.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEgressOnlyInternetGatewaysInput(_SerdeShape): + """Dataclass for DescribeEgressOnlyInternetGatewaysInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + egress_only_internet_gateway_ids: list[str] | None = ... + """The IDs of the egress-only internet gateways.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeEgressOnlyInternetGatewaysOutput(_SerdeShape): + """Dataclass for DescribeEgressOnlyInternetGatewaysOutput structure.""" + + egress_only_internet_gateways: list[EgressOnlyInternetGateway] | None = ... + """Information about the egress-only internet gateways.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeElasticGpusInput(_SerdeShape): + """Dataclass for DescribeElasticGpusInput structure.""" + + elastic_gpu_ids: list[str] | None = ... + """The Elastic Graphics accelerator IDs.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone in which the Elastic + Graphics accelerator resides. + + - `elastic-gpu-health` - The status of the Elastic Graphics accelerator + (`OK` | `IMPAIRED`). + + - `elastic-gpu-state` - The state of the Elastic Graphics accelerator + (`ATTACHED`). + + - `elastic-gpu-type` - The type of Elastic Graphics accelerator; for + example, `eg1.medium`. + + - `instance-id` - The ID of the instance to which the Elastic Graphics + accelerator is associated. + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. This value can be between 5 and 1000. + """ + next_token: str | None = ... + """The token to request the next page of results.""" + +@dataclass(kw_only=True) +class DescribeElasticGpusOutput(_SerdeShape): + """Dataclass for DescribeElasticGpusOutput structure.""" + + elastic_gpu_set: list[ElasticGpus] | None = ... + """Information about the Elastic Graphics accelerators.""" + max_results: int | None = ... + """ + The total number of items to return. If the total number of items + available is more than the value specified in max-items then a + Next-Token will be provided in the output that you can use to resume + pagination. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeExportImageTasksInput(_SerdeShape): + """Dataclass for DescribeExportImageTasksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + Filter tasks using the `task-state` filter and one of the following + values: `active`, `completed`, `deleting`, or `deleted`. + """ + export_image_task_ids: list[str] | None = ... + """The IDs of the export image tasks.""" + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + next_token: str | None = ... + """A token that indicates the next page of results.""" + +@dataclass(kw_only=True) +class DescribeExportImageTasksOutput(_SerdeShape): + """Dataclass for DescribeExportImageTasksOutput structure.""" + + export_image_tasks: list[ExportImageTask] | None = ... + """Information about the export image tasks.""" + next_token: str | None = ... + """ + The token to use to get the next page of results. This value is `null` + when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeExportTasksInput(_SerdeShape): + """Dataclass for DescribeExportTasksInput structure.""" + + filters: list[Filter] | None = ... + """the filters for the export tasks.""" + export_task_ids: list[str] | None = ... + """The export task IDs.""" + +@dataclass(kw_only=True) +class DescribeExportTasksOutput(_SerdeShape): + """Dataclass for DescribeExportTasksOutput structure.""" + + export_tasks: list[ExportTask] | None = ... + """Information about the export tasks.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFastLaunchImagesInput(_SerdeShape): + """Dataclass for DescribeFastLaunchImagesInput structure.""" + + image_ids: list[str] | None = ... + """Specify one or more Windows AMI image IDs for the request.""" + filters: list[Filter] | None = ... + """ + Use the following filters to streamline results. + + - `resource-type` - The resource type for pre-provisioning. + + - `owner-id` - The owner ID for the pre-provisioning resource. + + - `state` - The current state of fast launching for the Windows AMI. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeFastLaunchImagesOutput(_SerdeShape): + """Dataclass for DescribeFastLaunchImagesOutput structure.""" + + fast_launch_images: list[DescribeFastLaunchImagesSuccessItem] | None = ... + """ + A collection of details about the fast-launch enabled Windows images + that meet the requested criteria. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFastLaunchImagesSuccessItem(_SerdeShape): + """ + Describe details about a Windows image with Windows fast launch enabled + that meets the requested criteria. Criteria are defined by the + `DescribeFastLaunchImages` action filters. + """ + + image_id: str | None = ... + """The image ID that identifies the Windows fast launch enabled image.""" + resource_type: str | None = ... + """ + The resource type that Amazon EC2 uses for pre-provisioning the Windows + AMI. Supported values include: `snapshot`. + """ + snapshot_configuration: FastLaunchSnapshotConfigurationResponse | None = ... + """ + A group of parameters that are used for pre-provisioning the associated + Windows AMI using snapshots. + """ + launch_template: FastLaunchLaunchTemplateSpecificationResponse | None = ... + """ + The launch template that the Windows fast launch enabled AMI uses when + it launches Windows instances from pre-provisioned snapshots. + """ + max_parallel_launches: int | None = ... + """ + The maximum number of instances that Amazon EC2 can launch at the same + time to create pre-provisioned snapshots for Windows fast launch. + """ + owner_id: str | None = ... + """The owner ID for the Windows fast launch enabled AMI.""" + state: str | None = ... + """The current state of Windows fast launch for the specified Windows AMI.""" + state_transition_reason: str | None = ... + """ + The reason that Windows fast launch for the AMI changed to the current + state. + """ + state_transition_time: datetime | None = ... + """ + The time that Windows fast launch for the AMI changed to the current + state. + """ + +@dataclass(kw_only=True) +class DescribeFastSnapshotRestoresInput(_SerdeShape): + """Dataclass for DescribeFastSnapshotRestoresInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. The possible values are: + + - `availability-zone`: The Availability Zone of the snapshot. For + example, `us-east-2a`. + + - `availability-zone-id`: The ID of the Availability Zone of the + snapshot. For example, `use2-az1`. + + - `owner-id`: The ID of the Amazon Web Services account that enabled + fast snapshot restore on the snapshot. + + - `snapshot-id`: The ID of the snapshot. + + - `state`: The state of fast snapshot restores for the snapshot + (`enabling` | `optimizing` | `enabled` | `disabling` | + `disabled`). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeFastSnapshotRestoresOutput(_SerdeShape): + """Dataclass for DescribeFastSnapshotRestoresOutput structure.""" + + fast_snapshot_restores: list[DescribeFastSnapshotRestoreSuccessItem] | None = ... + """Information about the state of fast snapshot restores.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFastSnapshotRestoreSuccessItem(_SerdeShape): + """Describes fast snapshot restores for a snapshot.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + state: str | None = ... + """The state of fast snapshot restores.""" + state_transition_reason: str | None = ... + """ + The reason for the state transition. The possible values are as follows: + + - `Client.UserInitiated` - The state successfully transitioned to + `enabling` or `disabling`. + + - `Client.UserInitiated - Lifecycle state transition` - The state + successfully transitioned to `optimizing`, `enabled`, or `disabled`. + """ + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that enabled fast snapshot + restores on the snapshot. + """ + owner_alias: str | None = ... + """ + The Amazon Web Services owner alias that enabled fast snapshot restores + on the snapshot. This is intended for future use. + """ + enabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabling` state.""" + optimizing_time: datetime | None = ... + """The time at which fast snapshot restores entered the `optimizing` state.""" + enabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabled` state.""" + disabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabling` state.""" + disabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabled` state.""" + +@dataclass(kw_only=True) +class DescribeFleetError(_SerdeShape): + """Describes the instances that could not be launched by the fleet.""" + + launch_template_and_overrides: LaunchTemplateAndOverridesResponse | None = ... + """ + The launch templates and overrides that were used for launching the + instances. The values that you specify in the Overrides replace the + values in the launch template. + """ + lifecycle: str | None = ... + """ + Indicates if the instance that could not be launched was a Spot, + On-Demand, Capacity Block for ML, or interruptible Capacity Reservation + instance. If you are using `ReservedCapacityOptions` with + `on-demand-capacity-reservation` in the `ReservationTypes` list, the + value can also be `on-demand-capacity-reservation`. + """ + error_code: str | None = ... + """ + The error code that indicates why the instance could not be launched. + For more information about error codes, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + error_message: str | None = ... + """ + The error message that describes why the instance could not be launched. + For more information about error messages, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + +@dataclass(kw_only=True) +class DescribeFleetHistoryInput(_SerdeShape): + """Dataclass for DescribeFleetHistoryInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + event_type: str | None = ... + """The type of events to describe. By default, all events are described.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + start_time: datetime | None = ... + """ + The start date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + +@dataclass(kw_only=True) +class DescribeFleetHistoryOutput(_SerdeShape): + """Dataclass for DescribeFleetHistoryOutput structure.""" + + history_records: list[HistoryRecordEntry] | None = ... + """Information about the events in the history of the EC2 Fleet.""" + last_evaluated_time: datetime | None = ... + """ + The last date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). All records up to this time were + retrieved. + + If `nextToken` indicates that there are more items, this value is not + present. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + fleet_id: str | None = ... + """The ID of the EC Fleet.""" + start_time: datetime | None = ... + """ + The start date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFleetInstancesInput(_SerdeShape): + """Dataclass for DescribeFleetInstancesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `instance-type` - The instance type. + """ + +@dataclass(kw_only=True) +class DescribeFleetInstancesOutput(_SerdeShape): + """Dataclass for DescribeFleetInstancesOutput structure.""" + + active_instances: list[ActiveInstance] | None = ... + """ + The running instances. This list is refreshed periodically and might be + out of date. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFleetsInput(_SerdeShape): + """Dataclass for DescribeFleetsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + fleet_ids: list[str] | None = ... + """ + The IDs of the EC2 Fleets. + + Note: + If a fleet is of type `instant`, you must specify the fleet ID, + otherwise it does not appear in the response. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `activity-status` - The progress of the EC2 Fleet ( `error` | + `pending-fulfillment` | `pending-termination` | `fulfilled`). + + - `excess-capacity-termination-policy` - Indicates whether to terminate + running instances if the target capacity is decreased below the + current EC2 Fleet size (`true` | `false`). + + - `fleet-state` - The state of the EC2 Fleet (`submitted` | `active` | + `deleted` | `failed` | `deleted-running` | `deleted-terminating` | + `modifying`). + + - `replace-unhealthy-instances` - Indicates whether EC2 Fleet should + replace unhealthy instances (`true` | `false`). + + - `type` - The type of request (`instant` | `request` | `maintain`). + """ + +@dataclass(kw_only=True) +class DescribeFleetsInstances(_SerdeShape): + """Describes the instances that were launched by the fleet.""" + + launch_template_and_overrides: LaunchTemplateAndOverridesResponse | None = ... + """ + The launch templates and overrides that were used for launching the + instances. The values that you specify in the Overrides replace the + values in the launch template. + """ + lifecycle: str | None = ... + """ + Indicates if the instance that was launched is a Spot, On-Demand, + Capacity Block for ML, or interruptible Capacity Reservation instance. + """ + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + instance_type: str | None = ... + """The instance type.""" + platform: str | None = ... + """ + The value is `windows` for Windows instances in an EC2 Fleet. Otherwise, + the value is blank. + """ + +@dataclass(kw_only=True) +class DescribeFleetsOutput(_SerdeShape): + """Dataclass for DescribeFleetsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + fleets: list[FleetData] | None = ... + """Information about the EC2 Fleets.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFlowLogsInput(_SerdeShape): + """Dataclass for DescribeFlowLogsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filter: list[Filter] | None = ... + """ + One or more filters. + + - `deliver-log-status` - The status of the logs delivery (`SUCCESS` | + `FAILED`). + + - `log-destination-type` - The type of destination for the flow log data + (`cloud-watch-logs` | `s3` | `kinesis-data-firehose`). + + - `flow-log-id` - The ID of the flow log. + + - `log-group-name` - The name of the log group. + + - `resource-id` - The ID of the VPC, subnet, or network interface. + + - `traffic-type` - The type of traffic (`ACCEPT` | `REJECT` | `ALL`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + flow_log_ids: list[str] | None = ... + """ + One or more flow log IDs. + + Constraint: Maximum of 1000 flow log IDs. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token to request the next page of items. Pagination continues from + the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeFlowLogsOutput(_SerdeShape): + """Dataclass for DescribeFlowLogsOutput structure.""" + + flow_logs: list[FlowLog] | None = ... + """Information about the flow logs.""" + next_token: str | None = ... + """ + The token to request the next page of items. This value is `null` when + there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFpgaImageAttributeInput(_SerdeShape): + """Dataclass for DescribeFpgaImageAttributeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fpga_image_id: str | None = ... + """The ID of the AFI.""" + attribute: str | None = ... + """The AFI attribute.""" + +@dataclass(kw_only=True) +class DescribeFpgaImageAttributeOutput(_SerdeShape): + """Dataclass for DescribeFpgaImageAttributeOutput structure.""" + + fpga_image_attribute: FpgaImageAttribute | None = ... + """Information about the attribute.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeFpgaImagesInput(_SerdeShape): + """Dataclass for DescribeFpgaImagesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fpga_image_ids: list[str] | None = ... + """The AFI IDs.""" + owners: list[str] | None = ... + """ + Filters the AFI by owner. Specify an Amazon Web Services account ID, + `self` (owner is the sender of the request), or an Amazon Web Services + owner alias (valid values are `amazon` | `aws-marketplace`). + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `create-time` - The creation time of the AFI. + + - `fpga-image-id` - The FPGA image identifier (AFI ID). + + - `fpga-image-global-id` - The global FPGA image identifier (AGFI ID). + + - `name` - The name of the AFI. + + - `owner-id` - The Amazon Web Services account ID of the AFI owner. + + - `product-code` - The product code. + + - `shell-version` - The version of the Amazon Web Services Shell that + was used to create the bitstream. + + - `state` - The state of the AFI (`pending` | `failed` | `available` + | `unavailable`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `update-time` - The time of the most recent update. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + +@dataclass(kw_only=True) +class DescribeFpgaImagesOutput(_SerdeShape): + """Dataclass for DescribeFpgaImagesOutput structure.""" + + fpga_images: list[FpgaImage] | None = ... + """Information about the FPGA images.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeHostReservationOfferingsInput(_SerdeShape): + """Dataclass for DescribeHostReservationOfferingsInput structure.""" + + filter: list[Filter] | None = ... + """ + The filters. + + - `instance-family` - The instance family of the offering (for example, + `m4`). + + - `payment-option` - The payment option (`NoUpfront` | `PartialUpfront` + | `AllUpfront`). + """ + max_duration: int | None = ... + """ + This is the maximum duration of the reservation to purchase, specified + in seconds. Reservations are available in one-year and three-year terms. + The number of seconds specified must be the number of seconds in a year + (365x24x60x60) times one of the supported durations (1 or 3). For + example, specify 94608000 for three years. + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. This value can be between 5 and 500. If + `maxResults` is given a larger value than 500, you receive an error. + """ + min_duration: int | None = ... + """ + This is the minimum duration of the reservation you'd like to purchase, + specified in seconds. Reservations are available in one-year and + three-year terms. The number of seconds specified must be the number of + seconds in a year (365x24x60x60) times one of the supported durations (1 + or 3). For example, specify 31536000 for one year. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + offering_id: str | None = ... + """The ID of the reservation offering.""" + +@dataclass(kw_only=True) +class DescribeHostReservationOfferingsOutput(_SerdeShape): + """Dataclass for DescribeHostReservationOfferingsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + offering_set: list[HostOffering] | None = ... + """Information about the offerings.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeHostReservationsInput(_SerdeShape): + """Dataclass for DescribeHostReservationsInput structure.""" + + filter: list[Filter] | None = ... + """ + The filters. + + - `instance-family` - The instance family (for example, `m4`). + + - `payment-option` - The payment option (`NoUpfront` | `PartialUpfront` + | `AllUpfront`). + + - `state` - The state of the reservation (`payment-pending` | + `payment-failed` | `active` | `retired`). + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + host_reservation_id_set: list[str] | None = ... + """The host reservation IDs.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. This value can be between 5 and 500. If + `maxResults` is given a larger value than 500, you receive an error. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeHostReservationsOutput(_SerdeShape): + """Dataclass for DescribeHostReservationsOutput structure.""" + + host_reservation_set: list[HostReservation] | None = ... + """Details about the reservation's configuration.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeHostsInput(_SerdeShape): + """Dataclass for DescribeHostsInput structure.""" + + host_ids: list[str] | None = ... + """ + The IDs of the Dedicated Hosts. The IDs are used for targeted instance + launches. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. This value can be between 5 and 500. If + `maxResults` is given a larger value than 500, you receive an error. + + You cannot specify this parameter and the host IDs parameter in the same + request. + """ + filter: list[Filter] | None = ... + """ + The filters. + + - `auto-placement` - Whether auto-placement is enabled or disabled (`on` + | `off`). + + - `availability-zone` - The Availability Zone of the host. + + - `client-token` - The idempotency token that you provided when you + allocated the host. + + - `host-reservation-id` - The ID of the reservation assigned to this + host. + + - `instance-type` - The instance type size that the Dedicated Host is + configured to support. + + - `state` - The allocation state of the Dedicated Host (`available` | + `under-assessment` | `permanent-failure` | `released` | + `released-permanent-failure`). + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeHostsOutput(_SerdeShape): + """Dataclass for DescribeHostsOutput structure.""" + + hosts: list[Host] | None = ... + """Information about the Dedicated Hosts.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIamInstanceProfileAssociationsInput(_SerdeShape): + """Dataclass for DescribeIamInstanceProfileAssociationsInput structure.""" + + association_ids: list[str] | None = ... + """The IAM instance profile associations.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `instance-id` - The ID of the instance. + + - `state` - The state of the association (`associating` | `associated` + | `disassociating`). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeIamInstanceProfileAssociationsOutput(_SerdeShape): + """Dataclass for DescribeIamInstanceProfileAssociationsOutput structure.""" + + iam_instance_profile_associations: list[IamInstanceProfileAssociation] | None = ... + """Information about the IAM instance profile associations.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIdentityIdFormatInput(_SerdeShape): + """Dataclass for DescribeIdentityIdFormatInput structure.""" + + resource: str | None = ... + """ + The type of resource: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `instance` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `reservation` | + `route-table` | `route-table-association` | `security-group` | + `snapshot` | `subnet` | `subnet-cidr-block-association` | `volume` | + `vpc` | `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway` + """ + principal_arn: str | None = ... + """ + The ARN of the principal, which can be an IAM role, IAM user, or the + root user. + """ + +@dataclass(kw_only=True) +class DescribeIdentityIdFormatOutput(_SerdeShape): + """Dataclass for DescribeIdentityIdFormatOutput structure.""" + + statuses: list[IdFormat] | None = ... + """Information about the ID format for the resources.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIdFormatInput(_SerdeShape): + """Dataclass for DescribeIdFormatInput structure.""" + + resource: str | None = ... + """ + The type of resource: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `instance` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `reservation` | + `route-table` | `route-table-association` | `security-group` | + `snapshot` | `subnet` | `subnet-cidr-block-association` | `volume` | + `vpc` | `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway` + """ + +@dataclass(kw_only=True) +class DescribeIdFormatOutput(_SerdeShape): + """Dataclass for DescribeIdFormatOutput structure.""" + + statuses: list[IdFormat] | None = ... + """Information about the ID format for the resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImageAttributeInput(_SerdeShape): + """Contains the parameters for DescribeImageAttribute.""" + + attribute: str | None = ... + """ + The AMI attribute. + + **Note**: The `blockDeviceMapping` attribute is deprecated. Using this + attribute returns the `Client.AuthFailure` error. To get information + about the block device mappings for an AMI, describe the image instead. + """ + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeImageAttributeOutput(_SerdeShape): + """Describes an image attribute.""" + + description: AttributeValue | None = ... + """A description for the AMI.""" + kernel_id: AttributeValue | None = ... + """The kernel ID.""" + ramdisk_id: AttributeValue | None = ... + """The RAM disk ID.""" + sriov_net_support: AttributeValue | None = ... + """ + Indicates whether enhanced networking with the Intel 82599 Virtual + Function interface is enabled. + """ + boot_mode: AttributeValue | None = ... + """The boot mode.""" + tpm_support: AttributeValue | None = ... + """If the image is configured for NitroTPM support, the value is `v2.0`.""" + uefi_data: AttributeValue | None = ... + """ + Base64 representation of the non-volatile UEFI variable store. To + retrieve the UEFI data, use the + [GetInstanceUefiData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceUefiData) + command. You can inspect and modify the UEFI data by using the + [python-uefivars tool](https://github.com/awslabs/python-uefivars) on + GitHub. For more information, see [UEFI Secure Boot for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) + in the *Amazon EC2 User Guide*. + """ + last_launched_time: AttributeValue | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the AMI was last used to + launch an EC2 instance. When the AMI is used to launch an instance, + there is a 24-hour delay before that usage is reported. + + Note: + `lastLaunchedTime` data is available starting April 2017. + """ + imds_support: AttributeValue | None = ... + """ + If `v2.0`, it indicates that IMDSv2 is specified in the AMI. Instances + launched from this AMI will have `HttpTokens` automatically set to + `required` so that, by default, the instance requires that IMDSv2 is + used when requesting instance metadata. In addition, + `HttpPutResponseHopLimit` is set to `2`. For more information, see + [Configure the + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) + in the *Amazon EC2 User Guide*. + """ + deregistration_protection: AttributeValue | None = ... + """Indicates whether deregistration protection is enabled for the AMI.""" + image_id: str | None = ... + """The ID of the AMI.""" + launch_permissions: list[LaunchPermission] | None = ... + """The launch permissions.""" + product_codes: list[ProductCode] | None = ... + """The product codes.""" + block_device_mappings: list[BlockDeviceMapping] | None = ... + """The block device mapping entries.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImageReferencesInput(_SerdeShape): + """Dataclass for DescribeImageReferencesInput structure.""" + + image_ids: list[str] | None = ... + """The IDs of the images to check for resource references.""" + include_all_resource_types: bool | None = ... + """ + Specifies whether to check all supported Amazon Web Services resource + types for image references. When specified, default values are applied + for `ResourceTypeOptions`. For the default values, see [How AMI + reference checks + work](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html#how-ami-references-works) + in the *Amazon EC2 User Guide*. If you also specify `ResourceTypes` with + `ResourceTypeOptions`, your specified values override the default + values. + + Supported resource types: `ec2:Instance` | `ec2:LaunchTemplate` | + `ssm:Parameter` | `imagebuilder:ImageRecipe` | + `imagebuilder:ContainerRecipe` + + Either `IncludeAllResourceTypes` or `ResourceTypes` must be specified. + """ + resource_types: list[ResourceTypeRequest] | None = ... + """ + The Amazon Web Services resource types to check for image references. + + Either `IncludeAllResourceTypes` or `ResourceTypes` must be specified. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeImageReferencesOutput(_SerdeShape): + """Dataclass for DescribeImageReferencesOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + image_references: list[ImageReference] | None = ... + """The resources that are referencing the specified images.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImagesInput(_SerdeShape): + """Dataclass for DescribeImagesInput structure.""" + + executable_users: list[str] | None = ... + """ + Scopes the images by users with explicit launch permissions. Specify an + Amazon Web Services account ID, `self` (the sender of the request), or + `all` (public AMIs). + + - If you specify an Amazon Web Services account ID that is not your own, + only AMIs shared with that specific Amazon Web Services account ID are + returned. However, AMIs that are shared with the account's + organization or organizational unit (OU) are not returned. + + - If you specify `self` or your own Amazon Web Services account ID, AMIs + shared with your account are returned. In addition, AMIs that are + shared with the organization or OU of which you are member are also + returned. + + - If you specify `all`, all public AMIs are returned. + """ + image_ids: list[str] | None = ... + """ + The image IDs. + + Default: Describes all images available to you. + """ + owners: list[str] | None = ... + """ + Scopes the results to images with the specified owners. You can specify + a combination of Amazon Web Services account IDs, `self`, `amazon`, + `aws-backup-vault`, and `aws-marketplace`. If you omit this parameter, + the results include all images for which you have launch permissions, + regardless of ownership. + """ + include_deprecated: bool | None = ... + """ + Specifies whether to include deprecated AMIs. + + Default: No deprecated AMIs are included in the response. + + Note: + If you are the AMI owner, all deprecated AMIs appear in the response + regardless of what you specify for this parameter. + """ + include_disabled: bool | None = ... + """ + Specifies whether to include disabled AMIs. + + Default: No disabled AMIs are included in the response. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `architecture` - The image architecture (`i386` | `x86_64` | `arm64` + | `x86_64_mac` | `arm64_mac`). + + - `block-device-mapping.delete-on-termination` - A Boolean value that + indicates whether the Amazon EBS volume is deleted on instance + termination. + + - `block-device-mapping.device-name` - The device name specified in the + block device mapping (for example, `/dev/sdh` or `xvdh`). + + - `block-device-mapping.snapshot-id` - The ID of the snapshot used for + the Amazon EBS volume. + + - `block-device-mapping.volume-size` - The volume size of the Amazon EBS + volume, in GiB. + + - `block-device-mapping.volume-type` - The volume type of the Amazon EBS + volume (`io1` | `io2` | `gp2` | `gp3` | `sc1 `| `st1` | + `standard`). + + - `block-device-mapping.encrypted` - A Boolean that indicates whether + the Amazon EBS volume is encrypted. + + - `boot-mode` -- The boot mode of the image (`legacy-bios` | `uefi` | + `uefi-preferred`). + + - `creation-date` - The time when the image was created, in the ISO 8601 + format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example, + `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`), for example, + `2021-09-29T*`, which matches an entire day. + + - `description` - The description of the image (provided during image + creation). + + - `ena-support` - A Boolean that indicates whether enhanced networking + with ENA is enabled. + + - `free-tier-eligible` - A Boolean that indicates whether this image can + be used under the Amazon Web Services Free Tier (`true` | `false`). + + - `hypervisor` - The hypervisor type (`ovm` | `xen`). + + - `image-allowed` - A Boolean that indicates whether the image meets the + criteria specified for Allowed AMIs. + + - `image-id` - The ID of the image. + + - `image-watermark.source-image-creation-time` - The creation date of + the source AMI, in the ISO 8601 format in the UTC time zone + (` `*`YYYY`*`-`*`MM`*`-`*`DD`*`T`*`HH`*`:`*`MM`*`:`*`SS`*`.`*`ssssss`*`+`*`HH`*`:`*`MM`*` `). + You can use a wildcard (`*`), for example, `2021-09-29T*`, which + matches an entire day. + + - `image-watermark.source-image-id` - The ID of the AMI to which the + watermark was originally attached. + + - `image-watermark.source-image-region` - The Region where the watermark + was originally attached. + + - `image-watermark.watermark-creation-time` - The date and time the + watermark was attached to the AMI, in the ISO 8601 format in the UTC + time zone + (` `*`YYYY`*`-`*`MM`*`-`*`DD`*`T`*`HH`*`:`*`MM`*`:`*`SS`*`.`*`ssssss`*`+`*`HH`*`:`*`MM`*` `). + You can use a wildcard (`*`), for example, `2021-09-29T*`, which + matches an entire day. + + - `image-watermark.watermark-key` - The watermark identifier, in + `accountId:watermarkName` format (for example, + `123456789012:approvedAmi`). + + - `image-type` - The image type (`machine` | `kernel` | `ramdisk`). + + - `instance-type-specification.supported-instance-type` -- The instance + types that are compatible with the AMI, as specified by the AMI owner. + Values can be individual instance types (for example, `t3.micro`) or + wildcard patterns that match multiple instance types (for example, + `t3.*`). + + - `instance-type-specification.unsupported-instance-type` -- The + instance types that are not compatible with the AMI, as specified by + the AMI owner. Values can be individual instance types (for example, + `t3.micro`) or wildcard patterns that match multiple instance types + (for example, `t3.*`). + + - `is-public` - A Boolean that indicates whether the image is public. + + - `kernel-id` - The kernel ID. + + - `manifest-location` - The location of the image manifest. + + - `name` - The name of the AMI (provided during image creation). + + - `owner-alias` - The owner alias (`amazon` | `aws-backup-vault` | + `aws-marketplace`). The valid aliases are defined in an + Amazon-maintained list. This is not the Amazon Web Services account + alias that can be set using the IAM console. We recommend that you use + the **Owner** request parameter instead of this filter. + + - `owner-id` - The Amazon Web Services account ID of the owner. We + recommend that you use the **Owner** request parameter instead of this + filter. + + - `platform` - The platform. The only supported value is `windows`. + + - `product-code` - The product code. + + - `product-code.type` - The type of the product code (`marketplace`). + + - `public-ssm-parameter-name` - The name of a public Systems Manager + parameter associated with the AMI. The parameter must be in a trusted + Amazon Web Services namespace under `aws/service/`. Returns all AMIs + that have ever been associated with the parameter, including previous + versions. + + - `ramdisk-id` - The RAM disk ID. + + - `root-device-name` - The device name of the root device volume (for + example, `/dev/sda1`). + + - `root-device-type` - The type of the root device volume (`ebs` | + `instance-store`). + + - `scan-result.critical-fix-available-since` - The earliest date and + time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix + as available for a `critical` severity finding on the AMI. + + - `scan-result.finding-scan-date` - The date and time, in the ISO 8601 + format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), of the most + recent Amazon Inspector scan of the AMI. + + - `scan-result.high-fix-available-since` - The earliest date and time, + in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix + as available for a `high` severity finding on the AMI. + + - `scan-result.highest-finding-severity-label` - The highest severity + among the AMI's Amazon Inspector findings, whether or not a fix is + available. The valid values are the following Amazon Inspector + severity levels: + + - `informational` - CVSS score of 0. + + - `low` - CVSS score of 0.1 to 3.9. + + - `medium` - CVSS score of 4.0 to 6.9. + + - `high` - CVSS score of 7.0 to 8.9. + + - `critical` - CVSS score of 9.0 to 10.0. + + - `scan-result.informational-fix-available-since` - The earliest date + and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix + as available for an `informational` severity finding on the AMI. + + - `scan-result.low-fix-available-since` - The earliest date and time, in + the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), + at which Amazon Inspector reported a fix as available for a `low` + severity finding on the AMI. + + - `scan-result.medium-fix-available-since` - The earliest date and time, + in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix + as available for a `medium` severity finding on the AMI. + + - `source-image-id` - The ID of the source AMI from which the AMI was + created. + + - `source-image-region` - The Region of the source AMI. + + - `source-instance-id` - The ID of the instance that the AMI was created + from if the AMI was created using CreateImage. This filter is + applicable only if the AMI was created using + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html). + + - `state` - The state of the image (`available` | `pending` | + `failed`). + + - `state-reason-code` - The reason code for the state change. + + - `state-reason-message` - The message for the state change. + + - `sriov-net-support` - A value of `simple` indicates that enhanced + networking with the Intel 82599 VF interface is enabled. + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `virtualization-type` - The virtualization type (`paravirtual` | + `hvm`). + """ + +@dataclass(kw_only=True) +class DescribeImagesOutput(_SerdeShape): + """Dataclass for DescribeImagesOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + images: list[Image] | None = ... + """Information about the images.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImageUsageReportEntriesInput(_SerdeShape): + """Dataclass for DescribeImageUsageReportEntriesInput structure.""" + + image_ids: list[str] | None = ... + """ + The IDs of the images for filtering the report entries. If specified, + only report entries containing these images are returned. + """ + report_ids: list[str] | None = ... + """The IDs of the usage reports.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `account-id` - A 12-digit Amazon Web Services account ID. + + - `creation-time` - The time when the report was created, in the ISO + 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for + example, `2025-11-29T11:04:43.305Z`. You can use a wildcard (`*`), for + example, `2025-11-29T*`, which matches an entire day. + + - `resource-type` - The resource type (`ec2:Instance` | + `ec2:LaunchTemplate`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeImageUsageReportEntriesOutput(_SerdeShape): + """Dataclass for DescribeImageUsageReportEntriesOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + image_usage_report_entries: list[ImageUsageReportEntry] | None = ... + """The content of the usage reports.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImageUsageReportsInput(_SerdeShape): + """Dataclass for DescribeImageUsageReportsInput structure.""" + + image_ids: list[str] | None = ... + """ + The IDs of the images for filtering the reports. If specified, only + reports containing these images are returned. + """ + report_ids: list[str] | None = ... + """The IDs of the image usage reports.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `creation-time` - The time when the report was created, in the ISO + 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for + example, `2025-11-29T11:04:43.305Z`. You can use a wildcard (`*`), for + example, `2025-11-29T*`, which matches an entire day. + + - `state` - The state of the report (`available` | `pending` | + `error`). + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeImageUsageReportsOutput(_SerdeShape): + """Dataclass for DescribeImageUsageReportsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + image_usage_reports: list[ImageUsageReport] | None = ... + """The image usage reports.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImportImageTasksInput(_SerdeShape): + """Dataclass for DescribeImportImageTasksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + Filter tasks using the `task-state` filter and one of the following + values: `active`, `completed`, `deleting`, or `deleted`. + """ + import_task_ids: list[str] | None = ... + """The IDs of the import image tasks.""" + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + next_token: str | None = ... + """A token that indicates the next page of results.""" + +@dataclass(kw_only=True) +class DescribeImportImageTasksOutput(_SerdeShape): + """Dataclass for DescribeImportImageTasksOutput structure.""" + + import_image_tasks: list[ImportImageTask] | None = ... + """ + A list of zero or more import image tasks that are currently active or + were completed or canceled in the previous 7 days. + """ + next_token: str | None = ... + """ + The token to use to get the next page of results. This value is `null` + when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeImportSnapshotTasksInput(_SerdeShape): + """Dataclass for DescribeImportSnapshotTasksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """The filters.""" + import_task_ids: list[str] | None = ... + """A list of import snapshot task IDs.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. + """ + next_token: str | None = ... + """A token that indicates the next page of results.""" + +@dataclass(kw_only=True) +class DescribeImportSnapshotTasksOutput(_SerdeShape): + """Dataclass for DescribeImportSnapshotTasksOutput structure.""" + + import_snapshot_tasks: list[ImportSnapshotTask] | None = ... + """ + A list of zero or more import snapshot tasks that are currently active + or were completed or canceled in the previous 7 days. + """ + next_token: str | None = ... + """ + The token to use to get the next page of results. This value is `null` + when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceAttributeInput(_SerdeShape): + """Dataclass for DescribeInstanceAttributeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + attribute: str | None = ... + """ + The instance attribute. + + Note that the `enaSupport` attribute is not supported. + """ + +@dataclass(kw_only=True) +class DescribeInstanceAttributeOutput(_SerdeShape): + """Describes an instance attribute.""" + + block_device_mappings: list[InstanceBlockDeviceMapping] | None = ... + """The block device mapping of the instance.""" + disable_api_termination: AttributeBooleanValue | None = ... + """ + Indicates whether termination protection is enabled. If the value is + `true`, you can't terminate the instance using the Amazon EC2 console, + command line tools, or API. + """ + ena_support: AttributeBooleanValue | None = ... + """Indicates whether enhanced networking with ENA is enabled.""" + enclave_options: EnclaveOptions | None = ... + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. + """ + ebs_optimized: AttributeBooleanValue | None = ... + """Indicates whether the instance is optimized for Amazon EBS I/O.""" + instance_id: str | None = ... + """The ID of the instance.""" + instance_initiated_shutdown_behavior: AttributeValue | None = ... + """ + Indicates whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + """ + instance_type: AttributeValue | None = ... + """The instance type.""" + kernel_id: AttributeValue | None = ... + """The kernel ID.""" + product_codes: list[ProductCode] | None = ... + """The product codes.""" + ramdisk_id: AttributeValue | None = ... + """The RAM disk ID.""" + root_device_name: AttributeValue | None = ... + """The device name of the root device volume (for example, `/dev/sda1`).""" + source_dest_check: AttributeBooleanValue | None = ... + """Indicates whether source/destination checks are enabled.""" + sriov_net_support: AttributeValue | None = ... + """ + Indicates whether enhanced networking with the Intel 82599 Virtual + Function interface is enabled. + """ + user_data: AttributeValue | None = ... + """The user data.""" + disable_api_stop: AttributeBooleanValue | None = ... + """Indicates whether stop protection is enabled for the instance.""" + groups: list[GroupIdentifier] | None = ... + """The security groups associated with the instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceConnectEndpointsInput(_SerdeShape): + """Dataclass for DescribeInstanceConnectEndpointsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `instance-connect-endpoint-id` - The ID of the EC2 Instance Connect + Endpoint. + + - `state` - The state of the EC2 Instance Connect Endpoint + (`create-in-progress` | `create-complete` | `create-failed` | + `delete-in-progress` | `delete-complete` | `delete-failed`). + + - `subnet-id` - The ID of the subnet in which the EC2 Instance Connect + Endpoint was created. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `tag-value` - The value of a tag assigned to the resource. Use this + filter to find all resources that have a tag with a specific value, + regardless of tag key. + + - `vpc-id` - The ID of the VPC in which the EC2 Instance Connect + Endpoint was created. + """ + instance_connect_endpoint_ids: list[str] | None = ... + """One or more EC2 Instance Connect Endpoint IDs.""" + +@dataclass(kw_only=True) +class DescribeInstanceConnectEndpointsOutput(_SerdeShape): + """Dataclass for DescribeInstanceConnectEndpointsOutput structure.""" + + instance_connect_endpoints: list[Ec2InstanceConnectEndpoint] | None = ... + """Information about the EC2 Instance Connect Endpoints.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceCreditSpecificationsInput(_SerdeShape): + """Dataclass for DescribeInstanceCreditSpecificationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `instance-id` - The ID of the instance. + """ + instance_ids: list[str] | None = ... + """ + The instance IDs. + + Default: Describes all your instances. + + Constraints: Maximum 1000 explicitly specified instance IDs. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You cannot specify this parameter and the instance IDs parameter in the + same call. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeInstanceCreditSpecificationsOutput(_SerdeShape): + """Dataclass for DescribeInstanceCreditSpecificationsOutput structure.""" + + instance_credit_specifications: list[InstanceCreditSpecification] | None = ... + """Information about the credit option for CPU usage of an instance.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceEventNotificationAttributesInput(_SerdeShape): + """ + Dataclass for DescribeInstanceEventNotificationAttributesInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeInstanceEventNotificationAttributesOutput(_SerdeShape): + """ + Dataclass for DescribeInstanceEventNotificationAttributesOutput + structure. + """ + + instance_tag_attribute: InstanceTagNotificationAttribute | None = ... + """Information about the registered tag keys.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceEventWindowsInput(_SerdeShape): + """Describe instance event windows by InstanceEventWindow.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_event_window_ids: list[str] | None = ... + """The IDs of the event windows.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `dedicated-host-id` - The event windows associated with the specified + Dedicated Host ID. + + - `event-window-name` - The event windows associated with the specified + names. + + - `instance-id` - The event windows associated with the specified + instance ID. + + - `instance-tag` - The event windows associated with the specified tag + and value. + + - `instance-tag-key` - The event windows associated with the specified + tag key, regardless of the value. + + - `instance-tag-value` - The event windows associated with the specified + tag value, regardless of the key. + + - `tag:```{=html} - The key/value combination of a tag assigned to + the event window. Use the tag key in the filter name and the tag value + as the filter value. For example, to find all resources that have a + tag with the key `Owner` and the value `CMX`, specify `tag:Owner` for + the filter name and `CMX` for the filter value. + + - `tag-key` - The key of a tag assigned to the event window. Use this + filter to find all event windows that have a tag with a specific key, + regardless of the tag value. + + - `tag-value` - The value of a tag assigned to the event window. Use + this filter to find all event windows that have a tag with a specific + value, regardless of the tag key. + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. This value can be between 20 and 500. You cannot specify this + parameter and the event window IDs parameter in the same call. + """ + next_token: str | None = ... + """The token to request the next page of results.""" + +@dataclass(kw_only=True) +class DescribeInstanceEventWindowsOutput(_SerdeShape): + """Dataclass for DescribeInstanceEventWindowsOutput structure.""" + + instance_event_windows: list[InstanceEventWindow] | None = ... + """Information about the event windows.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceImageMetadataInput(_SerdeShape): + """Dataclass for DescribeInstanceImageMetadataInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The name of the Availability Zone (for example, + `us-west-2a`) or Local Zone (for example, `us-west-2-lax-1b`) of the + instance. + + - `instance-id` - The ID of the instance. + + - `image-allowed` - A Boolean that indicates whether the image meets the + criteria specified for Allowed AMIs. + + - `instance-state-name` - The state of the instance (`pending` | + `running` | `shutting-down` | `terminated` | `stopping` | + `stopped`). + + - `instance-type` - The type of instance (for example, `t3.micro`). + + - `launch-time` - The time when the instance was launched, in the ISO + 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for + example, `2023-09-29T11:04:43.305Z`. You can use a wildcard (`*`), for + example, `2023-09-29T*`, which matches an entire day. + + - `owner-alias` - The owner alias (`amazon` | `aws-marketplace` | + `aws-backup-vault`). The valid aliases are defined in an + Amazon-maintained list. This is not the Amazon Web Services account + alias that can be set using the IAM console. We recommend that you use + the `Owner` request parameter instead of this filter. + + - `owner-id` - The Amazon Web Services account ID of the owner. We + recommend that you use the `Owner` request parameter instead of this + filter. + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `zone-id` - The ID of the Availability Zone (for example, `usw2-az2`) + or Local Zone (for example, `usw2-lax1-az1`) of the instance. + """ + instance_ids: list[str] | None = ... + """ + The instance IDs. + + If you don't specify an instance ID or filters, the output includes + information for all instances. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + Default: 1000 + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeInstanceImageMetadataOutput(_SerdeShape): + """Dataclass for DescribeInstanceImageMetadataOutput structure.""" + + instance_image_metadata: list[InstanceImageMetadata] | None = ... + """Information about the instance and the AMI used to launch the instance.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstancesInput(_SerdeShape): + """Dataclass for DescribeInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """ + The instance IDs. + + Default: Describes all your instances. + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `affinity` - The affinity setting for an instance running on a + Dedicated Host (`default` | `host`). + + - `architecture` - The instance architecture (`i386` | `x86_64` | + `arm64`). + + - `availability-zone` - The Availability Zone of the instance. + + - `availability-zone-id` - The ID of the Availability Zone of the + instance. + + - `block-device-mapping.attach-time` - The attach time for an EBS volume + mapped to the instance, for example, `2022-09-15T17:15:20.000Z`. + + - `block-device-mapping.delete-on-termination` - A Boolean that + indicates whether the EBS volume is deleted on instance termination. + + - `block-device-mapping.device-name` - The device name specified in the + block device mapping (for example, `/dev/sdh` or `xvdh`). + + - `block-device-mapping.status` - The status for the EBS volume + (`attaching` | `attached` | `detaching` | `detached`). + + - `block-device-mapping.volume-id` - The volume ID of the EBS volume. + + - `boot-mode` - The boot mode that was specified by the AMI + (`legacy-bios` | `uefi` | `uefi-preferred`). + + - `capacity-reservation-id` - The ID of the Capacity Reservation into + which the instance was launched. + + - `capacity-reservation-specification.capacity-reservation-preference` - + The instance's Capacity Reservation preference (`open` | `none`). + + - `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id` - + The ID of the targeted Capacity Reservation. + + - `capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn` - + The ARN of the targeted Capacity Reservation group. + + - `client-token` - The idempotency token you provided when you launched + the instance. + + - `current-instance-boot-mode` - The boot mode that is used to launch + the instance at launch or start (`legacy-bios` | `uefi`). + + - `dns-name` - The public DNS name of the instance. + + - `ebs-optimized` - A Boolean that indicates whether the instance is + optimized for Amazon EBS I/O. + + - `ena-support` - A Boolean that indicates whether the instance is + enabled for enhanced networking with ENA. + + - `enclave-options.enabled` - A Boolean that indicates whether the + instance is enabled for Amazon Web Services Nitro Enclaves. + + - `hibernation-options.configured` - A Boolean that indicates whether + the instance is enabled for hibernation. A value of `true` means that + the instance is enabled for hibernation. + + - `host-id` - The ID of the Dedicated Host on which the instance is + running, if applicable. + + - `hypervisor` - The hypervisor type of the instance (`ovm` | `xen`). + The value `xen` is used for both Xen and Nitro hypervisors. + + - `iam-instance-profile.arn` - The instance profile associated with the + instance. Specified as an ARN. + + - `iam-instance-profile.id` - The instance profile associated with the + instance. Specified as an ID. + + - `image-id` - The ID of the image used to launch the instance. + + - `instance-id` - The ID of the instance. + + - `instance-lifecycle` - Indicates whether this is a Spot Instance, a + Scheduled Instance, or a Capacity Block (`spot` | `scheduled` | + `capacity-block`). + + - `instance-state-code` - The state of the instance, as a 16-bit + unsigned integer. The high byte is used for internal purposes and + should be ignored. The low byte is set based on the state represented. + The valid values are: 0 (pending), 16 (running), 32 (shutting-down), + 48 (terminated), 64 (stopping), and 80 (stopped). + + - `instance-state-name` - The state of the instance (`pending` | + `running` | `shutting-down` | `terminated` | `stopping` | + `stopped`). + + - `instance-type` - The type of instance (for example, `t2.micro`). + + - `instance.group-id` - The ID of the security group for the instance. + + - `instance.group-name` - The name of the security group for the + instance. + + - `ip-address` - The public IPv4 address of the instance. + + - `ipv6-address` - The IPv6 address of the instance. + + - `kernel-id` - The kernel ID. + + - `key-name` - The name of the key pair used when the instance was + launched. + + - `launch-index` - When launching multiple instances, this is the index + for the instance in the launch group (for example, 0, 1, 2, and so + on). + + - `launch-time` - The time when the instance was launched, in the ISO + 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for + example, `2021-09-29T11:04:43.305Z`. You can use a wildcard (`*`), for + example, `2021-09-29T*`, which matches an entire day. + + - `maintenance-options.auto-recovery` - The current automatic recovery + behavior of the instance (`disabled` | `default`). + + - `metadata-options.http-endpoint` - The status of access to the HTTP + metadata endpoint on your instance (`enabled` | `disabled`) + + - `metadata-options.http-protocol-ipv4` - Indicates whether the IPv4 + endpoint is enabled (`disabled` | `enabled`). + + - `metadata-options.http-protocol-ipv6` - Indicates whether the IPv6 + endpoint is enabled (`disabled` | `enabled`). + + - `metadata-options.http-put-response-hop-limit` - The HTTP metadata + request put response hop limit (integer, possible values `1` to `64`) + + - `metadata-options.http-tokens` - The metadata request authorization + state (`optional` | `required`) + + - `metadata-options.instance-metadata-tags` - The status of access to + instance tags from the instance metadata (`enabled` | `disabled`) + + - `metadata-options.state` - The state of the metadata option changes + (`pending` | `applied`). + + - `monitoring-state` - Indicates whether detailed monitoring is enabled + (`disabled` | `enabled`). + + - `network-interface.addresses.association.allocation-id` - The + allocation ID. + + - `network-interface.addresses.association.association-id` - The + association ID. + + - `network-interface.addresses.association.carrier-ip` - The carrier IP + address. + + - `network-interface.addresses.association.customer-owned-ip` - The + customer-owned IP address. + + - `network-interface.addresses.association.ip-owner-id` - The owner ID + of the private IPv4 address associated with the network interface. + + - `network-interface.addresses.association.public-dns-name` - The public + DNS name. + + - `network-interface.addresses.association.public-ip` - The ID of the + association of an Elastic IP address (IPv4) with a network interface. + + - `network-interface.addresses.primary` - Specifies whether the IPv4 + address of the network interface is the primary private IPv4 address. + + - `network-interface.addresses.private-dns-name` - The private DNS name. + + - `network-interface.addresses.private-ip-address` - The private IPv4 + address associated with the network interface. + + - `network-interface.association.allocation-id` - The allocation ID + returned when you allocated the Elastic IP address (IPv4) for your + network interface. + + - `network-interface.association.association-id` - The association ID + returned when the network interface was associated with an IPv4 + address. + + - `network-interface.association.carrier-ip` - The customer-owned IP + address. + + - `network-interface.association.customer-owned-ip` - The customer-owned + IP address. + + - `network-interface.association.ip-owner-id` - The owner of the Elastic + IP address (IPv4) associated with the network interface. + + - `network-interface.association.public-dns-name` - The public DNS name. + + - `network-interface.association.public-ip` - The address of the Elastic + IP address (IPv4) bound to the network interface. + + - `network-interface.attachment.attach-time` - The time that the network + interface was attached to an instance. + + - `network-interface.attachment.attachment-id` - The ID of the interface + attachment. + + - `network-interface.attachment.delete-on-termination` - Specifies + whether the attachment is deleted when an instance is terminated. + + - `network-interface.attachment.device-index` - The device index to + which the network interface is attached. + + - `network-interface.attachment.instance-id` - The ID of the instance to + which the network interface is attached. + + - `network-interface.attachment.instance-owner-id` - The owner ID of the + instance to which the network interface is attached. + + - `network-interface.attachment.network-card-index` - The index of the + network card. + + - `network-interface.attachment.status` - The status of the attachment + (`attaching` | `attached` | `detaching` | `detached`). + + - `network-interface.availability-zone` - The Availability Zone for the + network interface. + + - `network-interface.deny-all-igw-traffic` - A Boolean that indicates + whether a network interface with an IPv6 address is unreachable from + the public internet. + + - `network-interface.description` - The description of the network + interface. + + - `network-interface.group-id` - The ID of a security group associated + with the network interface. + + - `network-interface.group-name` - The name of a security group + associated with the network interface. + + - `network-interface.ipv4-prefixes.ipv4-prefix` - The IPv4 prefixes that + are assigned to the network interface. + + - `network-interface.ipv6-address` - The IPv6 address associated with + the network interface. + + - `network-interface.ipv6-addresses.ipv6-address` - The IPv6 address + associated with the network interface. + + - `network-interface.ipv6-addresses.is-primary-ipv6` - A Boolean that + indicates whether this is the primary IPv6 address. + + - `network-interface.ipv6-native` - A Boolean that indicates whether + this is an IPv6 only network interface. + + - `network-interface.ipv6-prefixes.ipv6-prefix` - The IPv6 prefix + assigned to the network interface. + + - `network-interface.mac-address` - The MAC address of the network + interface. + + - `network-interface.network-interface-id` - The ID of the network + interface. + + - `network-interface.operator.managed` - A Boolean that indicates + whether the instance has a managed network interface. + + - `network-interface.operator.principal` - The principal that manages + the network interface. Only valid for instances with managed network + interfaces, where `managed` is `true`. + + - `network-interface.outpost-arn` - The ARN of the Outpost. + + - `network-interface.owner-id` - The ID of the owner of the network + interface. + + - `network-interface.private-dns-name` - The private DNS name of the + network interface. + + - `network-interface.private-ip-address` - The private IPv4 address. + + - `network-interface.public-dns-name` - The public DNS name. + + - `network-interface.requester-id` - The requester ID for the network + interface. + + - `network-interface.requester-managed` - Indicates whether the network + interface is being managed by Amazon Web Services. + + - `network-interface.status` - The status of the network interface + (`available`) | `in-use`). + + - `network-interface.source-dest-check` - Whether the network interface + performs source/destination checking. A value of `true` means that + checking is enabled, and `false` means that checking is disabled. The + value must be `false` for the network interface to perform network + address translation (NAT) in your VPC. + + - `network-interface.subnet-id` - The ID of the subnet for the network + interface. + + - `network-interface.tag-key` - The key of a tag assigned to the network + interface. + + - `network-interface.tag-value` - The value of a tag assigned to the + network interface. + + - `network-interface.vpc-id` - The ID of the VPC for the network + interface. + + - `network-performance-options.bandwidth-weighting` - Where the + performance boost is applied, if applicable. Valid values: `default`, + `vpc-1`, `ebs-1`. + + - `operator.managed` - A Boolean that indicates whether this is a + managed instance. + + - `operator.principal` - The principal that manages the instance. Only + valid for managed instances, where `managed` is `true`. + + - `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost. + + - `owner-id` - The Amazon Web Services account ID of the instance owner. + + - `placement-group-name` - The name of the placement group for the + instance. + + - `placement-partition-number` - The partition in which the instance is + located. + + - `platform` - The platform. To list only Windows instances, use + `windows`. + + - `platform-details` - The platform (`Linux/UNIX` | + `Red Hat BYOL Linux` | ` Red Hat Enterprise Linux` | + `Red Hat Enterprise Linux with HA` | + `Red Hat Enterprise Linux with High Availability` | + `Red Hat Enterprise Linux with SQL Server Standard and HA` | + `Red Hat Enterprise Linux with SQL Server Enterprise and HA` | + `Red Hat Enterprise Linux with SQL Server Standard` | + `Red Hat Enterprise Linux with SQL Server Web` | + `Red Hat Enterprise Linux with SQL Server Enterprise` | + `SQL Server Enterprise` | `SQL Server Standard` | `SQL Server Web` + | `SUSE Linux` | `Ubuntu Pro` | `Windows` | `Windows BYOL` | + `Windows with SQL Server Enterprise` | + `Windows with SQL Server Standard` | `Windows with SQL Server Web`). + + - `private-dns-name` - The private IPv4 DNS name of the instance. + + - `private-dns-name-options.enable-resource-name-dns-a-record` - A + Boolean that indicates whether to respond to DNS queries for instance + hostnames with DNS A records. + + - `private-dns-name-options.enable-resource-name-dns-aaaa-record` - A + Boolean that indicates whether to respond to DNS queries for instance + hostnames with DNS AAAA records. + + - `private-dns-name-options.hostname-type` - The type of hostname + (`ip-name` | `resource-name`). + + - `private-ip-address` - The private IPv4 address of the instance. This + can only be used to filter by the primary IP address of the network + interface attached to the instance. To filter by additional IP + addresses assigned to the network interface, use the filter + `network-interface.addresses.private-ip-address`. + + - `product-code` - The product code associated with the AMI used to + launch the instance. + + - `product-code.type` - The type of product code (`devpay` | + `marketplace`). + + - `ramdisk-id` - The RAM disk ID. + + - `reason` - The reason for the current state of the instance (for + example, shows \"User Initiated [date]\" when you stop or terminate + the instance). Similar to the state-reason-code filter. + + - `requester-id` - The ID of the entity that launched the instance on + your behalf (for example, Amazon Web Services Management Console, Auto + Scaling, and so on). + + - `reservation-id` - The ID of the instance's reservation. A + reservation ID is created any time you launch an instance. A + reservation ID has a one-to-one relationship with an instance launch + request, but can be associated with more than one instance if you + launch multiple instances using the same launch request. For example, + if you launch one instance, you get one reservation ID. If you launch + ten instances using the same launch request, you also get one + reservation ID. + + - `root-device-name` - The device name of the root device volume (for + example, `/dev/sda1`). + + - `root-device-type` - The type of the root device volume (`ebs` | + `instance-store`). + + - `source-dest-check` - Indicates whether the instance performs + source/destination checking. A value of `true` means that checking is + enabled, and `false` means that checking is disabled. The value must + be `false` for the instance to perform network address translation + (NAT) in your VPC. + + - `spot-instance-request-id` - The ID of the Spot Instance request. + + - `state-reason-code` - The reason code for the state change. + + - `state-reason-message` - A message that describes the state change. + + - `subnet-id` - The ID of the subnet for the instance. + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources that have a tag with a specific key, regardless + of the tag value. + + - `tenancy` - The tenancy of an instance (`dedicated` | `default` | + `host`). + + - `tpm-support` - Indicates if the instance is configured for NitroTPM + support (`v2.0`). + + - `usage-operation` - The usage operation value for the instance + (`RunInstances` | `RunInstances:00g0` | `RunInstances:0010` | + `RunInstances:1010` | `RunInstances:1014` | `RunInstances:1110` | + `RunInstances:0014` | `RunInstances:0210` | `RunInstances:0110` | + `RunInstances:0100` | `RunInstances:0004` | `RunInstances:0200` | + `RunInstances:000g` | `RunInstances:0g00` | `RunInstances:0002` | + `RunInstances:0800` | `RunInstances:0102` | `RunInstances:0006` | + `RunInstances:0202`). + + - `usage-operation-update-time` - The time that the usage operation was + last updated, for example, `2022-09-15T17:15:20.000Z`. + + - `virtualization-type` - The virtualization type of the instance + (`paravirtual` | `hvm`). + + - `vpc-id` - The ID of the VPC that the instance is running in. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You cannot specify this parameter and the instance IDs parameter in the + same request. + """ + +@dataclass(kw_only=True) +class DescribeInstancesOutput(_SerdeShape): + """Dataclass for DescribeInstancesOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + reservations: list[Reservation] | None = ... + """Information about the reservations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceSqlHaHistoryStatesInput(_SerdeShape): + """Dataclass for DescribeInstanceSqlHaHistoryStatesInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the SQL Server High Availability instances to describe. If + omitted, the API returns historical states for all SQL Server High + Availability instances. + """ + start_time: datetime | None = ... + """ + The start data and time of the period for which to get the historical + SQL Server High Availability states. If omitted, the API returns all + available historical states. + + Timezone: UTC + + Format: `YYYY-MM-DDThh:mm:ss.sssZ` + """ + end_time: datetime | None = ... + """ + The end data and time of the period for which to get historical SQL + Server High Availability states. If omitted, the API returns historical + states up to the current date and time. + + Timezone: UTC + + Format: `YYYY-MM-DDThh:mm:ss.sssZ` + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. + """ + filters: list[Filter] | None = ... + """ + One or more filters to apply to the results. Supported filters include: + + - `tag:```{=html} - The tag key and value pair assigned to the + instance. For example, to find all instances tagged with + `Owner:TeamA`, specify `tag:Owner` for the filter name and `TeamA` for + the filter value. + + - `tag-key` - The tag key assigned to the instance. + + - `haStatus` - The SQL Server High Availability status of the SQL Server + High Availability instance (`processing` | `active` | `standby` | + `invalid`). + + - `sqlServerLicenseUsage` - The license type for the SQL Server license + (`full` | `waived`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeInstanceSqlHaHistoryStatesOutput(_SerdeShape): + """Dataclass for DescribeInstanceSqlHaHistoryStatesOutput structure.""" + + instances: list[RegisteredInstance] | None = ... + """ + Information about the historical SQL Server High Availability states of + the SQL Server High Availability instances. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceSqlHaStatesInput(_SerdeShape): + """Dataclass for DescribeInstanceSqlHaStatesInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the SQL Server High Availability instances to describe. If + omitted, the API returns SQL Server High Availability states for all SQL + Server High Availability instances. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. + """ + filters: list[Filter] | None = ... + """ + One or more filters to apply to the results. Supported filters include: + + - `tag:```{=html} - The tag key and value pair assigned to the + instance. For example, to find all instances tagged with + `Owner:TeamA`, specify `tag:Owner` for the filter name and `TeamA` for + the filter value. + + - `tag-key` - The tag key assigned to the instance. + + - `haStatus` - The SQL Server High Availability status of the SQL Server + High Availability instance (`processing` | `active` | `standby` | + `invalid`). + + - `sqlServerLicenseUsage` - The license type for the SQL Server license + (`full` | `waived`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeInstanceSqlHaStatesOutput(_SerdeShape): + """Dataclass for DescribeInstanceSqlHaStatesOutput structure.""" + + instances: list[RegisteredInstance] | None = ... + """Information about the SQL Server High Availability instances.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceStatusInput(_SerdeShape): + """Dataclass for DescribeInstanceStatusInput structure.""" + + instance_ids: list[str] | None = ... + """ + The instance IDs. + + Default: Describes all your instances. + + Constraints: Maximum 100 explicitly specified instance IDs. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You cannot specify this parameter and the instance IDs parameter in the + same request. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone of the instance. + + - `availability-zone-id` - The ID of the Availability Zone of the + instance. + + - `event.code` - The code for the scheduled event (`instance-reboot` | + `system-reboot` | `system-maintenance` | `instance-retirement` | + `instance-stop`). + + - `event.description` - A description of the event. + + - `event.instance-event-id` - The ID of the event whose date and time + you are modifying. + + - `event.not-after` - The latest end time for the scheduled event (for + example, `2014-09-15T17:15:20.000Z`). + + - `event.not-before` - The earliest start time for the scheduled event + (for example, `2014-09-15T17:15:20.000Z`). + + - `event.not-before-deadline` - The deadline for starting the event (for + example, `2014-09-15T17:15:20.000Z`). + + - `instance-state-code` - The code for the instance state, as a 16-bit + unsigned integer. The high byte is used for internal purposes and + should be ignored. The low byte is set based on the state represented. + The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 + (terminated), 64 (stopping), and 80 (stopped). + + - `instance-state-name` - The state of the instance (`pending` | + `running` | `shutting-down` | `terminated` | `stopping` | + `stopped`). + + - `instance-status.reachability` - Filters on instance status where the + name is `reachability` (`passed` | `failed` | `initializing` | + `insufficient-data`). + + - `instance-status.status` - The status of the instance (`ok` | + `impaired` | `initializing` | `insufficient-data` | + `not-applicable`). + + - `operator.managed` - A Boolean that indicates whether this is a + managed instance. + + - `operator.principal` - The principal that manages the instance. Only + valid for managed instances, where `managed` is `true`. + + - `system-status.reachability` - Filters on system status where the name + is `reachability` (`passed` | `failed` | `initializing` | + `insufficient-data`). + + - `system-status.status` - The system status of the instance (`ok` | + `impaired` | `initializing` | `insufficient-data` | + `not-applicable`). + + - `attached-ebs-status.status` - The status of the attached EBS volume + for the instance (`ok` | `impaired` | `initializing` | + `insufficient-data` | `not-applicable`). + + - `application-status.status` - The application status of the instance + (`ok` | `impaired` | `initializing` | `insufficient-data` | + `not-applicable`). + """ + include_all_instances: bool | None = ... + """ + When `true`, includes the health status for all instances. When `false`, + includes the health status for running instances only. + + Default: `false` + """ + +@dataclass(kw_only=True) +class DescribeInstanceStatusOutput(_SerdeShape): + """Dataclass for DescribeInstanceStatusOutput structure.""" + + instance_statuses: list[InstanceStatus] | None = ... + """Information about the status of the instances.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTopologyInput(_SerdeShape): + """Dataclass for DescribeInstanceTopologyInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You can't specify this parameter and the instance IDs parameter in the + same request. + + Default: `20` + """ + instance_ids: list[str] | None = ... + """ + The instance IDs. + + Default: Describes all your instances. + + Constraints: Maximum 100 explicitly specified instance IDs. + """ + group_names: list[str] | None = ... + """ + The name of the placement group that each instance is in. + + Constraints: Maximum 100 explicitly specified placement group names. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The name of the Availability Zone (for example, + `us-west-2a`) or Local Zone (for example, `us-west-2-lax-1b`) that the + instance is in. + + - `instance-type` - The instance type (for example, `p4d.24xlarge`) or + instance family (for example, `p4d*`). You can use the `*` wildcard to + match zero or more characters, or the `?` wildcard to match zero or + one character. + + - `zone-id` - The ID of the Availability Zone (for example, `usw2-az2`) + or Local Zone (for example, `usw2-lax1-az1`) that the instance is in. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTopologyOutput(_SerdeShape): + """Dataclass for DescribeInstanceTopologyOutput structure.""" + + instances: list[InstanceTopology] | None = ... + """Information about the topology of each instance.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTypeOfferingsInput(_SerdeShape): + """Dataclass for DescribeInstanceTypeOfferingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + location_type: str | None = ... + """ + The location type. + + - `availability-zone` - The Availability Zone. When you specify a + location filter, it must be an Availability Zone for the current + Region. + + - `availability-zone-id` - The AZ ID. When you specify a location + filter, it must be an AZ ID for the current Region. + + - `outpost` - The Outpost ARN. When you specify a location filter, it + must be an Outpost ARN for the current Region. + + - `region` - The current Region. If you specify a location filter, it + must match the current Region. + """ + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `instance-type` - The instance type. For a list of possible values, + see + [Instance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Instance.html). + + - `location` - The location. For a list of possible identifiers, see + [Regions and + Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTypeOfferingsOutput(_SerdeShape): + """Dataclass for DescribeInstanceTypeOfferingsOutput structure.""" + + instance_type_offerings: list[InstanceTypeOffering] | None = ... + """The instance types offered in the location.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTypesInput(_SerdeShape): + """Dataclass for DescribeInstanceTypesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_types: list[str] | None = ... + """The instance types.""" + filters: list[Filter] | None = ... + """ + One or more filters. Filter names and values are case-sensitive. + + - `auto-recovery-supported` - Indicates whether Amazon CloudWatch action + based recovery is supported (`true` | `false`). + + - `bare-metal` - Indicates whether it is a bare metal instance type + (`true` | `false`). + + - `burstable-performance-supported` - Indicates whether the instance + type is a burstable performance T instance type (`true` | `false`). + + - `current-generation` - Indicates whether this instance type is the + latest generation instance type of an instance family (`true` | + `false`). + + - `dedicated-hosts-supported` - Indicates whether the instance type + supports Dedicated Hosts. (`true` | `false`) + + - `ebs-info.attachment-limit-type` - The type of Amazon EBS volume + attachment limit (`shared` | `dedicated`). + + - `ebs-info.maximum-ebs-attachments` - The maximum number of Amazon EBS + volumes that can be attached to the instance type. + + - `ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps` - The + baseline bandwidth performance for an EBS-optimized instance type, in + Mbps. + + - `ebs-info.ebs-optimized-info.baseline-iops` - The baseline + input/output storage operations per second for an EBS-optimized + instance type. + + - `ebs-info.ebs-optimized-info.baseline-throughput-in-mbps` - The + baseline throughput performance for an EBS-optimized instance type, in + MB/s. + + - `ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps` - The maximum + bandwidth performance for an EBS-optimized instance type, in Mbps. + + - `ebs-info.ebs-optimized-info.maximum-iops` - The maximum input/output + storage operations per second for an EBS-optimized instance type. + + - `ebs-info.ebs-optimized-info.maximum-throughput-in-mbps` - The maximum + throughput performance for an EBS-optimized instance type, in MB/s. + + - `ebs-info.ebs-optimized-support` - Indicates whether the instance type + is EBS-optimized (`supported` | `unsupported` | `default`). + + - `ebs-info.encryption-support` - Indicates whether EBS encryption is + supported (`supported` | `unsupported`). + + - `ebs-info.nvme-support` - Indicates whether non-volatile memory + express (NVMe) is supported for EBS volumes (`required` | `supported` + | `unsupported`). + + - `free-tier-eligible` - A Boolean that indicates whether this instance + type can be used under the Amazon Web Services Free Tier (`true` | + `false`). + + - `hibernation-supported` - Indicates whether On-Demand hibernation is + supported (`true` | `false`). + + - `hypervisor` - The hypervisor (`nitro` | `xen`). + + - `instance-storage-info.disk.count` - The number of local disks. + + - `instance-storage-info.disk.size-in-gb` - The storage size of each + instance storage disk, in GB. + + - `instance-storage-info.disk.type` - The storage technology for the + local instance storage disks (`hdd` | `ssd`). + + - `instance-storage-info.encryption-support` - Indicates whether data is + encrypted at rest (`required` | `supported` | `unsupported`). + + - `instance-storage-info.nvme-support` - Indicates whether non-volatile + memory express (NVMe) is supported for instance store (`required` | + `supported` | `unsupported`). + + - `instance-storage-info.total-size-in-gb` - The total amount of storage + available from all local instance storage, in GB. + + - `instance-storage-supported` - Indicates whether the instance type has + local instance storage (`true` | `false`). + + - `instance-type` - The instance type (for example `c5.2xlarge` or + c5*). + + - `memory-info.size-in-mib` - The memory size. + + - `network-info.bandwidth-weightings` - For instances that support + bandwidth weighting to boost performance (`default`, `vpc-1`, + `ebs-1`). + + - `network-info.efa-info.maximum-efa-interfaces` - The maximum number of + Elastic Fabric Adapters (EFAs) per instance. + + - `network-info.efa-supported` - Indicates whether the instance type + supports Elastic Fabric Adapter (EFA) (`true` | `false`). + + - `network-info.ena-support` - Indicates whether Elastic Network Adapter + (ENA) is supported or required (`required` | `supported` | + `unsupported`). + + - `network-info.flexible-ena-queues-support` - Indicates whether an + instance supports flexible ENA queues (`supported` | `unsupported`). + + - `network-info.encryption-in-transit-supported` - Indicates whether the + instance type automatically encrypts in-transit traffic between + instances (`true` | `false`). + + - `network-info.ipv4-addresses-per-interface` - The maximum number of + private IPv4 addresses per network interface. + + - `network-info.ipv6-addresses-per-interface` - The maximum number of + private IPv6 addresses per network interface. + + - `network-info.ipv6-supported` - Indicates whether the instance type + supports IPv6 (`true` | `false`). + + - `network-info.maximum-network-cards` - The maximum number of network + cards per instance. + + - `network-info.maximum-network-interfaces` - The maximum number of + network interfaces per instance. + + - `network-info.network-performance` - The network performance (for + example, \"25 Gigabit\"). + + - `nitro-enclaves-support` - Indicates whether Nitro Enclaves is + supported (`supported` | `unsupported`). + + - `nitro-tpm-support` - Indicates whether NitroTPM is supported + (`supported` | `unsupported`). + + - `nitro-tpm-info.supported-versions` - The supported NitroTPM version + (`2.0`). + + - `processor-info.supported-architecture` - The CPU architecture + (`arm64` | `i386` | `x86_64`). + + - `processor-info.sustained-clock-speed-in-ghz` - The CPU clock speed, + in GHz. + + - `processor-info.supported-features` - The supported CPU features + (`amd-sev-snp`). + + - `reboot-migration-support` - Indicates whether enabling reboot + migration is supported (`supported` | `unsupported`). + + - `supported-boot-mode` - The boot mode (`legacy-bios` | `uefi`). + + - `supported-root-device-type` - The root device type (`ebs` | + `instance-store`). + + - `supported-usage-class` - The usage class (`on-demand` | `spot` | + `capacity-block`). + + - `supported-virtualization-type` - The virtualization type (`hvm` | + `paravirtual`). + + - `vcpu-info.default-cores` - The default number of cores for the + instance type. + + - `vcpu-info.default-threads-per-core` - The default number of threads + per core for the instance type. + + - `vcpu-info.default-vcpus` - The default number of vCPUs for the + instance type. + + - `vcpu-info.valid-cores` - The number of cores that can be configured + for the instance type. + + - `vcpu-info.valid-threads-per-core` - The number of threads per core + that can be configured for the instance type. For example, \"1\" or + \"1,2\". + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + include_unsupported_in_region: bool | None = ... + """ + If `true`, the response includes instance types that are not supported + in the current Region, in addition to the supported types. Default: + `false`. + """ + +@dataclass(kw_only=True) +class DescribeInstanceTypesOutput(_SerdeShape): + """Dataclass for DescribeInstanceTypesOutput structure.""" + + instance_types: list[InstanceTypeInfo] | None = ... + """The instance type.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeInternetGatewaysInput(_SerdeShape): + """Dataclass for DescribeInternetGatewaysInput structure.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + internet_gateway_ids: list[str] | None = ... + """ + The IDs of the internet gateways. + + Default: Describes all your internet gateways. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `attachment.state` - The current state of the attachment between the + gateway and the VPC (`available`). Present only if a VPC is attached. + + - `attachment.vpc-id` - The ID of an attached VPC. + + - `internet-gateway-id` - The ID of the Internet gateway. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + internet gateway. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeInternetGatewaysOutput(_SerdeShape): + """Dataclass for DescribeInternetGatewaysOutput structure.""" + + internet_gateways: list[InternetGateway] | None = ... + """Information about the internet gateways.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamByoasnInput(_SerdeShape): + """Dataclass for DescribeIpamByoasnInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeIpamByoasnOutput(_SerdeShape): + """Dataclass for DescribeIpamByoasnOutput structure.""" + + byoasns: list[Byoasn] | None = ... + """ASN and BYOIP CIDR associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamExternalResourceVerificationTokensInput(_SerdeShape): + """ + Dataclass for DescribeIpamExternalResourceVerificationTokensInput + structure. + """ + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + + Available filters: + + - `ipam-arn` + + - `ipam-external-resource-verification-token-arn` + + - `ipam-external-resource-verification-token-id` + + - `ipam-id` + + - `ipam-region` + + - `state` + + - `status` + + - `token-name` + + - `token-value` + """ + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """The maximum number of tokens to return in one page of results.""" + ipam_external_resource_verification_token_ids: list[str] | None = ... + """Verification token IDs.""" + +@dataclass(kw_only=True) +class DescribeIpamExternalResourceVerificationTokensOutput(_SerdeShape): + """ + Dataclass for DescribeIpamExternalResourceVerificationTokensOutput + structure. + """ + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_external_resource_verification_tokens: ( + list[IpamExternalResourceVerificationToken] | None + ) = ... + """Verification tokens.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamInternetRegistryAssociationsInput(_SerdeShape): + """Dataclass for DescribeIpamInternetRegistryAssociationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_ids: list[str] | None = ... + """The IDs of the internet registry associations to describe.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the results.""" + +@dataclass(kw_only=True) +class DescribeIpamInternetRegistryAssociationsOutput(_SerdeShape): + """Dataclass for DescribeIpamInternetRegistryAssociationsOutput structure.""" + + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + ipam_internet_registry_associations: ( + list[IpamInternetRegistryAssociation] | None + ) = ... + """The internet registry associations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamPoliciesInput(_SerdeShape): + """Dataclass for DescribeIpamPoliciesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """One or more filters for the IPAM policy description.""" + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + next_token: str | None = ... + """The token for the next page of results.""" + ipam_policy_ids: list[str] | None = ... + """The IDs of the IPAM policies to describe.""" + +@dataclass(kw_only=True) +class DescribeIpamPoliciesOutput(_SerdeShape): + """Dataclass for DescribeIpamPoliciesOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_policies: list[IpamPolicy] | None = ... + """ + Information about the IPAM policies. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamPoolAllocationsInput(_SerdeShape): + """Dataclass for DescribeIpamPoolAllocationsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_allocation_ids: list[str] | None = ... + """The IDs of the IPAM pool allocations you want to describe.""" + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeIpamPoolAllocationsOutput(_SerdeShape): + """Dataclass for DescribeIpamPoolAllocationsOutput structure.""" + + ipam_pool_allocations: list[IpamPoolAllocation] | None = ... + """Information about the IPAM pool allocations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamPoolsInput(_SerdeShape): + """Dataclass for DescribeIpamPoolsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_pool_ids: list[str] | None = ... + """The IDs of the IPAM pools you would like information on.""" + +@dataclass(kw_only=True) +class DescribeIpamPoolsOutput(_SerdeShape): + """Dataclass for DescribeIpamPoolsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_pools: list[IpamPool] | None = ... + """Information about the IPAM pools.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamPrefixListResolversInput(_SerdeShape): + """Dataclass for DescribeIpamPrefixListResolversInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """One or more filters to limit the results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_prefix_list_resolver_ids: list[str] | None = ... + """ + The IDs of the IPAM prefix list resolvers to describe. If not specified, + all resolvers in your account are described. + """ + +@dataclass(kw_only=True) +class DescribeIpamPrefixListResolversOutput(_SerdeShape): + """Dataclass for DescribeIpamPrefixListResolversOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_prefix_list_resolvers: list[IpamPrefixListResolver] | None = ... + """Information about the IPAM prefix list resolvers.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamPrefixListResolverTargetsInput(_SerdeShape): + """Dataclass for DescribeIpamPrefixListResolverTargetsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """One or more filters to limit the results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_prefix_list_resolver_target_ids: list[str] | None = ... + """ + The IDs of the IPAM prefix list resolver Targets to describe. If not + specified, all targets in your account are described. + """ + ipam_prefix_list_resolver_id: str | None = ... + """ + The ID of the IPAM prefix list resolver to filter targets by. Only + targets associated with this resolver will be returned. + """ + +@dataclass(kw_only=True) +class DescribeIpamPrefixListResolverTargetsOutput(_SerdeShape): + """Dataclass for DescribeIpamPrefixListResolverTargetsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_prefix_list_resolver_targets: list[IpamPrefixListResolverTarget] | None = ... + """Information about the IPAM prefix list resolver Targets.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamResourceDiscoveriesInput(_SerdeShape): + """Dataclass for DescribeIpamResourceDiscoveriesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_ids: list[str] | None = ... + """The IPAM resource discovery IDs.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of resource discoveries to return in one page of + results. + """ + filters: list[Filter] | None = ... + """The resource discovery filters.""" + +@dataclass(kw_only=True) +class DescribeIpamResourceDiscoveriesOutput(_SerdeShape): + """Dataclass for DescribeIpamResourceDiscoveriesOutput structure.""" + + ipam_resource_discoveries: list[IpamResourceDiscovery] | None = ... + """The resource discoveries.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamResourceDiscoveryAssociationsInput(_SerdeShape): + """Dataclass for DescribeIpamResourceDiscoveryAssociationsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_association_ids: list[str] | None = ... + """The resource discovery association IDs.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + max_results: int | None = ... + """ + The maximum number of resource discovery associations to return in one + page of results. + """ + filters: list[Filter] | None = ... + """The resource discovery association filters.""" + +@dataclass(kw_only=True) +class DescribeIpamResourceDiscoveryAssociationsOutput(_SerdeShape): + """Dataclass for DescribeIpamResourceDiscoveryAssociationsOutput structure.""" + + ipam_resource_discovery_associations: ( + list[IpamResourceDiscoveryAssociation] | None + ) = ... + """The resource discovery associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamScopesInput(_SerdeShape): + """Dataclass for DescribeIpamScopesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_scope_ids: list[str] | None = ... + """The IDs of the scopes you want information on.""" + +@dataclass(kw_only=True) +class DescribeIpamScopesOutput(_SerdeShape): + """Dataclass for DescribeIpamScopesOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_scopes: list[IpamScope] | None = ... + """The scopes you want information on.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpamsInput(_SerdeShape): + """Dataclass for DescribeIpamsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_ids: list[str] | None = ... + """The IDs of the IPAMs you want information on.""" + +@dataclass(kw_only=True) +class DescribeIpamsOutput(_SerdeShape): + """Dataclass for DescribeIpamsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipams: list[Ipam] | None = ... + """Information about the IPAMs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIpv6PoolsInput(_SerdeShape): + """Dataclass for DescribeIpv6PoolsInput structure.""" + + pool_ids: list[str] | None = ... + """The IDs of the IPv6 address pools.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeIpv6PoolsOutput(_SerdeShape): + """Dataclass for DescribeIpv6PoolsOutput structure.""" + + ipv6_pools: list[Ipv6Pool] | None = ... + """Information about the IPv6 address pools.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeKeyPairsInput(_SerdeShape): + """Dataclass for DescribeKeyPairsInput structure.""" + + key_names: list[str] | None = ... + """ + The key pair names. + + Default: Describes all of your key pairs. + """ + key_pair_ids: list[str] | None = ... + """The IDs of the key pairs.""" + include_public_key: bool | None = ... + """ + If `true`, the public key material is included in the response. + + Default: `false` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `key-pair-id` - The ID of the key pair. + + - `fingerprint` - The fingerprint of the key pair. + + - `key-name` - The name of the key pair. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + """ + +@dataclass(kw_only=True) +class DescribeKeyPairsOutput(_SerdeShape): + """Dataclass for DescribeKeyPairsOutput structure.""" + + key_pairs: list[KeyPairInfo] | None = ... + """Information about the key pairs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLaunchTemplatesInput(_SerdeShape): + """Dataclass for DescribeLaunchTemplatesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + launch_template_ids: list[str] | None = ... + """One or more launch template IDs.""" + launch_template_names: list[str] | None = ... + """One or more launch template names.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `create-time` - The time the launch template was created. + + - `launch-template-name` - The name of the launch template. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + next_token: str | None = ... + """The token to request the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. This value can be between 1 and 200. + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + +@dataclass(kw_only=True) +class DescribeLaunchTemplatesOutput(_SerdeShape): + """Dataclass for DescribeLaunchTemplatesOutput structure.""" + + launch_templates: list[LaunchTemplate] | None = ... + """Information about the launch templates.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLaunchTemplateVersionsInput(_SerdeShape): + """Dataclass for DescribeLaunchTemplateVersionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + launch_template_id: str | None = ... + """ + The ID of the launch template. + + To describe one or more versions of a specified launch template, you + must specify either the launch template ID or the launch template name, + but not both. + + To describe all the latest or default launch template versions in your + account, you must omit this parameter. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + To describe one or more versions of a specified launch template, you + must specify either the launch template name or the launch template ID, + but not both. + + To describe all the latest or default launch template versions in your + account, you must omit this parameter. + """ + versions: list[str] | None = ... + """ + One or more versions of the launch template. Valid values depend on + whether you are describing a specified launch template (by ID or name) + or all launch templates in your account. + + To describe one or more versions of a specified launch template, valid + values are `$Latest`, `$Default`, and numbers. + + To describe all launch templates in your account that are defined as the + latest version, the valid value is `$Latest`. To describe all launch + templates in your account that are defined as the default version, the + valid value is `$Default`. You can specify `$Latest` and `$Default` in + the same request. You cannot specify numbers. + """ + min_version: str | None = ... + """The version number after which to describe launch template versions.""" + max_version: str | None = ... + """The version number up to which to describe launch template versions.""" + next_token: str | None = ... + """The token to request the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. This value can be between 1 and 200. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `create-time` - The time the launch template version was created. + + - `ebs-optimized` - A boolean that indicates whether the instance is + optimized for Amazon EBS I/O. + + - `http-endpoint` - Indicates whether the HTTP metadata endpoint on your + instances is enabled (`enabled` | `disabled`). + + - `http-protocol-ipv4` - Indicates whether the IPv4 endpoint for the + instance metadata service is enabled (`enabled` | `disabled`). + + - `host-resource-group-arn` - The ARN of the host resource group in + which to launch the instances. + + - `http-tokens` - The state of token usage for your instance metadata + requests (`optional` | `required`). + + - `iam-instance-profile` - The ARN of the IAM instance profile. + + - `image-id` - The ID of the AMI. + + - `instance-type` - The instance type. + + - `is-default-version` - A boolean that indicates whether the launch + template version is the default version. + + - `kernel-id` - The kernel ID. + + - `license-configuration-arn` - The ARN of the license configuration. + + - `network-card-index` - The index of the network card. + + - `ram-disk-id` - The RAM disk ID. + """ + resolve_alias: bool | None = ... + """ + If `true`, and if a Systems Manager parameter is specified for + `ImageId`, the AMI ID is displayed in the response for `imageId`. + + If `false`, and if a Systems Manager parameter is specified for + `ImageId`, the parameter is displayed in the response for `imageId`. + + For more information, see [Use a Systems Manager parameter instead of an + AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + +@dataclass(kw_only=True) +class DescribeLaunchTemplateVersionsOutput(_SerdeShape): + """Dataclass for DescribeLaunchTemplateVersionsOutput structure.""" + + launch_template_versions: list[LaunchTemplateVersion] | None = ... + """Information about the launch template versions.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTablesInput(_SerdeShape): + """Dataclass for DescribeLocalGatewayRouteTablesInput structure.""" + + local_gateway_route_table_ids: list[str] | None = ... + """The IDs of the local gateway route tables.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-gateway-id` - The ID of a local gateway. + + - `local-gateway-route-table-arn` - The Amazon Resource Name (ARN) of + the local gateway route table. + + - `local-gateway-route-table-id` - The ID of a local gateway route + table. + + - `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway route table. + + - `state` - The state of the local gateway route table. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTablesOutput(_SerdeShape): + """Dataclass for DescribeLocalGatewayRouteTablesOutput structure.""" + + local_gateway_route_tables: list[LocalGatewayRouteTable] | None = ... + """Information about the local gateway route tables.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput(_SerdeShape): + """ + Dataclass for + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput + structure. + """ + + local_gateway_route_table_virtual_interface_group_association_ids: ( + list[str] | None + ) = ... + """The IDs of the associations.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-gateway-id` - The ID of a local gateway. + + - `local-gateway-route-table-arn` - The Amazon Resource Name (ARN) of + the local gateway route table for the virtual interface group. + + - `local-gateway-route-table-id` - The ID of the local gateway route + table. + + - `local-gateway-route-table-virtual-interface-group-association-id` - + The ID of the association. + + - `local-gateway-route-table-virtual-interface-group-id` - The ID of the + virtual interface group. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway virtual interface group association. + + - `state` - The state of the association. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput( + _SerdeShape +): + """ + Dataclass for + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput + structure. + """ + + local_gateway_route_table_virtual_interface_group_associations: ( + list[LocalGatewayRouteTableVirtualInterfaceGroupAssociation] | None + ) = ... + """Information about the associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTableVpcAssociationsInput(_SerdeShape): + """ + Dataclass for DescribeLocalGatewayRouteTableVpcAssociationsInput + structure. + """ + + local_gateway_route_table_vpc_association_ids: list[str] | None = ... + """The IDs of the associations.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-gateway-id` - The ID of a local gateway. + + - `local-gateway-route-table-arn` - The Amazon Resource Name (ARN) of + the local gateway route table for the association. + + - `local-gateway-route-table-id` - The ID of the local gateway route + table. + + - `local-gateway-route-table-vpc-association-id` - The ID of the + association. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway route table for the association. + + - `state` - The state of the association. + + - `vpc-id` - The ID of the VPC. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayRouteTableVpcAssociationsOutput(_SerdeShape): + """ + Dataclass for DescribeLocalGatewayRouteTableVpcAssociationsOutput + structure. + """ + + local_gateway_route_table_vpc_associations: ( + list[LocalGatewayRouteTableVpcAssociation] | None + ) = ... + """Information about the associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewaysInput(_SerdeShape): + """Dataclass for DescribeLocalGatewaysInput structure.""" + + local_gateway_ids: list[str] | None = ... + """The IDs of the local gateways.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-gateway-id` - The ID of a local gateway. + + - `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway. + + - `state` - The state of the association. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewaysOutput(_SerdeShape): + """Dataclass for DescribeLocalGatewaysOutput structure.""" + + local_gateways: list[LocalGateway] | None = ... + """Information about the local gateways.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayVirtualInterfaceGroupsInput(_SerdeShape): + """Dataclass for DescribeLocalGatewayVirtualInterfaceGroupsInput structure.""" + + local_gateway_virtual_interface_group_ids: list[str] | None = ... + """The IDs of the virtual interface groups.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-gateway-id` - The ID of a local gateway. + + - `local-gateway-virtual-interface-group-id` - The ID of the virtual + interface group. + + - `local-gateway-virtual-interface-id` - The ID of the virtual + interface. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway virtual interface group. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayVirtualInterfaceGroupsOutput(_SerdeShape): + """ + Dataclass for DescribeLocalGatewayVirtualInterfaceGroupsOutput + structure. + """ + + local_gateway_virtual_interface_groups: ( + list[LocalGatewayVirtualInterfaceGroup] | None + ) = ... + """The virtual interface groups.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayVirtualInterfacesInput(_SerdeShape): + """Dataclass for DescribeLocalGatewayVirtualInterfacesInput structure.""" + + local_gateway_virtual_interface_ids: list[str] | None = ... + """The IDs of the virtual interfaces.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `local-address` - The local address. + + - `local-bgp-asn` - The Border Gateway Protocol (BGP) Autonomous System + Number (ASN) of the local gateway. + + - `local-gateway-id` - The ID of the local gateway. + + - `local-gateway-virtual-interface-id` - The ID of the virtual + interface. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + local gateway virtual interface. + + - `peer-address` - The peer address. + + - `peer-bgp-asn` - The peer BGP ASN. + + - `vlan` - The ID of the VLAN. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLocalGatewayVirtualInterfacesOutput(_SerdeShape): + """Dataclass for DescribeLocalGatewayVirtualInterfacesOutput structure.""" + + local_gateway_virtual_interfaces: list[LocalGatewayVirtualInterface] | None = ... + """Information about the virtual interfaces.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLockedSnapshotsInput(_SerdeShape): + """Dataclass for DescribeLockedSnapshotsInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `lock-state` - The state of the snapshot lock (`compliance-cooloff` | + `governance` | `compliance` | `expired`). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + snapshot_ids: list[str] | None = ... + """The IDs of the snapshots for which to view the lock status.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeLockedSnapshotsOutput(_SerdeShape): + """Dataclass for DescribeLockedSnapshotsOutput structure.""" + + snapshots: list[LockedSnapshotsInfo] | None = ... + """Information about the snapshots.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeMacHostsInput(_SerdeShape): + """Dataclass for DescribeMacHostsInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone of the EC2 Mac Dedicated + Host. + + - `instance-type` - The instance type size that the EC2 Mac Dedicated + Host is configured to support. + """ + host_ids: list[str] | None = ... + """The IDs of the EC2 Mac Dedicated Hosts.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. This value can be between 5 and 500. If + `maxResults` is given a larger value than 500, you receive an error. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeMacHostsOutput(_SerdeShape): + """Dataclass for DescribeMacHostsOutput structure.""" + + mac_hosts: list[MacHost] | None = ... + """Information about the EC2 Mac Dedicated Hosts.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeMacModificationTasksInput(_SerdeShape): + """Dataclass for DescribeMacModificationTasksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + Specifies one or more filters for the request: + + - `instance-id` - The ID of the instance for which the task was created. + + - `task-state` - The state of the task (`successful` | `failed` | + `in-progress` | `pending`). + + - `mac-system-integrity-protection-configuration.sip-status` - The + overall SIP state requested in the task (`enabled` | `disabled`). + + - `start-time` - The date and time the task was created. + + - `task-type` - The type of task (`sip-modification` | + `volume-ownership-delegation`). + """ + mac_modification_task_ids: list[str] | None = ... + """The ID of task.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results can be seen by sending another request with + the returned `nextToken` value. This value can be between 5 and 500. If + `maxResults` is given a larger value than 500, you receive an error. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeMacModificationTasksOutput(_SerdeShape): + """Dataclass for DescribeMacModificationTasksOutput structure.""" + + mac_modification_tasks: list[MacModificationTask] | None = ... + """Information about the tasks.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeManagedPrefixListsInput(_SerdeShape): + """Dataclass for DescribeManagedPrefixListsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `owner-id` - The ID of the prefix list owner. + + - `prefix-list-id` - The ID of the prefix list. + + - `prefix-list-name` - The name of the prefix list. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + prefix_list_ids: list[str] | None = ... + """One or more prefix list IDs.""" + +@dataclass(kw_only=True) +class DescribeManagedPrefixListsOutput(_SerdeShape): + """Dataclass for DescribeManagedPrefixListsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + prefix_lists: list[ManagedPrefixList] | None = ... + """Information about the prefix lists.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeMovingAddressesInput(_SerdeShape): + """Dataclass for DescribeMovingAddressesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + public_ips: list[str] | None = ... + """One or more Elastic IP addresses.""" + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `moving-status` - The status of the Elastic IP address (`MovingToVpc` + | `RestoringToClassic`). + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results of the initial request can be seen by + sending another request with the returned `NextToken` value. This value + can be between 5 and 1000; if `MaxResults` is given a value outside of + this range, an error is returned. + + Default: If no value is provided, the default is 1000. + """ + +@dataclass(kw_only=True) +class DescribeMovingAddressesOutput(_SerdeShape): + """Dataclass for DescribeMovingAddressesOutput structure.""" + + moving_address_statuses: list[MovingAddressStatus] | None = ... + """The status for each Elastic IP address.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNatGatewaysInput(_SerdeShape): + """Dataclass for DescribeNatGatewaysInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filter: list[Filter] | None = ... + """ + The filters. + + - `nat-gateway-id` - The ID of the NAT gateway. + + - `state` - The state of the NAT gateway (`pending` | `failed` | + `available` | `deleting` | `deleted`). + + - `subnet-id` - The ID of the subnet in which the NAT gateway resides. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC in which the NAT gateway resides. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + nat_gateway_ids: list[str] | None = ... + """The IDs of the NAT gateways.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeNatGatewaysOutput(_SerdeShape): + """Dataclass for DescribeNatGatewaysOutput structure.""" + + nat_gateways: list[NatGateway] | None = ... + """Information about the NAT gateways.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkAclsInput(_SerdeShape): + """Dataclass for DescribeNetworkAclsInput structure.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_acl_ids: list[str] | None = ... + """The IDs of the network ACLs.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `association.association-id` - The ID of an association ID for the + ACL. + + - `association.network-acl-id` - The ID of the network ACL involved in + the association. + + - `association.subnet-id` - The ID of the subnet involved in the + association. + + - `default` - Indicates whether the ACL is the default network ACL for + the VPC. + + - `entry.cidr` - The IPv4 CIDR range specified in the entry. + + - `entry.icmp.code` - The ICMP code specified in the entry, if any. + + - `entry.icmp.type` - The ICMP type specified in the entry, if any. + + - `entry.ipv6-cidr` - The IPv6 CIDR range specified in the entry. + + - `entry.port-range.from` - The start of the port range specified in the + entry. + + - `entry.port-range.to` - The end of the port range specified in the + entry. + + - `entry.protocol` - The protocol specified in the entry (`tcp` | `udp` + | `icmp` or a protocol number). + + - `entry.rule-action` - Allows or denies the matching traffic (`allow` + | `deny`). + + - `entry.egress` - A Boolean that indicates the type of rule. Specify + `true` for egress rules, or `false` for ingress rules. + + - `entry.rule-number` - The number of an entry (in other words, rule) in + the set of ACL entries. + + - `network-acl-id` - The ID of the network ACL. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + network ACL. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC for the network ACL. + """ + +@dataclass(kw_only=True) +class DescribeNetworkAclsOutput(_SerdeShape): + """Dataclass for DescribeNetworkAclsOutput structure.""" + + network_acls: list[NetworkAcl] | None = ... + """Information about the network ACLs.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAccessScopeAnalysesInput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsAccessScopeAnalysesInput structure.""" + + network_insights_access_scope_analysis_ids: list[str] | None = ... + """The IDs of the Network Access Scope analyses.""" + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + analysis_start_time_begin: datetime | None = ... + """ + Filters the results based on the start time. The analysis must have + started on or after this time. + """ + analysis_start_time_end: datetime | None = ... + """ + Filters the results based on the start time. The analysis must have + started on or before this time. + """ + filters: list[Filter] | None = ... + """There are no supported filters.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAccessScopeAnalysesOutput(_SerdeShape): + """ + Dataclass for DescribeNetworkInsightsAccessScopeAnalysesOutput + structure. + """ + + network_insights_access_scope_analyses: ( + list[NetworkInsightsAccessScopeAnalysis] | None + ) = ... + """The Network Access Scope analyses.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAccessScopesInput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsAccessScopesInput structure.""" + + network_insights_access_scope_ids: list[str] | None = ... + """The IDs of the Network Access Scopes.""" + filters: list[Filter] | None = ... + """There are no supported filters.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAccessScopesOutput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsAccessScopesOutput structure.""" + + network_insights_access_scopes: list[NetworkInsightsAccessScope] | None = ... + """The Network Access Scopes.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAnalysesInput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsAnalysesInput structure.""" + + network_insights_analysis_ids: list[str] | None = ... + """ + The ID of the network insights analyses. You must specify either + analysis IDs or a path ID. + """ + network_insights_path_id: str | None = ... + """The ID of the path. You must specify either a path ID or analysis IDs.""" + analysis_start_time: datetime | None = ... + """The time when the network insights analyses started.""" + analysis_end_time: datetime | None = ... + """The time when the network insights analyses ended.""" + filters: list[Filter] | None = ... + """ + The filters. The following are the possible values: + + - path-found - A Boolean value that indicates whether a feasible path is + found. + + - status - The status of the analysis (running | succeeded | failed). + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeNetworkInsightsAnalysesOutput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsAnalysesOutput structure.""" + + network_insights_analyses: list[NetworkInsightsAnalysis] | None = ... + """Information about the network insights analyses.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInsightsPathsInput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsPathsInput structure.""" + + network_insights_path_ids: list[str] | None = ... + """The IDs of the paths.""" + filters: list[Filter] | None = ... + """ + The filters. The following are the possible values: + + - destination - The ID of the resource. + + - filter-at-source.source-address - The source IPv4 address at the + source. + + - filter-at-source.source-port-range - The source port range at the + source. + + - filter-at-source.destination-address - The destination IPv4 address at + the source. + + - filter-at-source.destination-port-range - The destination port range + at the source. + + - filter-at-destination.source-address - The source IPv4 address at the + destination. + + - filter-at-destination.source-port-range - The source port range at the + destination. + + - filter-at-destination.destination-address - The destination IPv4 + address at the destination. + + - filter-at-destination.destination-port-range - The destination port + range at the destination. + + - protocol - The protocol. + + - source - The ID of the resource. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeNetworkInsightsPathsOutput(_SerdeShape): + """Dataclass for DescribeNetworkInsightsPathsOutput structure.""" + + network_insights_paths: list[NetworkInsightsPath] | None = ... + """Information about the paths.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInterfaceAttributeInput(_SerdeShape): + """Contains the parameters for DescribeNetworkInterfaceAttribute.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + attribute: str | None = ... + """The attribute of the network interface. This parameter is required.""" + +@dataclass(kw_only=True) +class DescribeNetworkInterfaceAttributeOutput(_SerdeShape): + """Contains the output of DescribeNetworkInterfaceAttribute.""" + + attachment: NetworkInterfaceAttachment | None = ... + """The attachment (if any) of the network interface.""" + description: AttributeValue | None = ... + """The description of the network interface.""" + groups: list[GroupIdentifier] | None = ... + """The security groups associated with the network interface.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + source_dest_check: AttributeBooleanValue | None = ... + """Indicates whether source/destination checking is enabled.""" + associate_public_ip_address: bool | None = ... + """ + Indicates whether to assign a public IPv4 address to a network + interface. This option can be enabled for any network interface but will + only apply to the primary network interface (eth0). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInterfacePermissionsInput(_SerdeShape): + """Contains the parameters for DescribeNetworkInterfacePermissions.""" + + network_interface_permission_ids: list[str] | None = ... + """The network interface permission IDs.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `network-interface-permission.network-interface-permission-id` - The + ID of the permission. + + - `network-interface-permission.network-interface-id` - The ID of the + network interface. + + - `network-interface-permission.aws-account-id` - The Amazon Web + Services account ID. + + - `network-interface-permission.aws-service` - The Amazon Web Services + service. + + - `network-interface-permission.permission` - The type of permission + (`INSTANCE-ATTACH` | `EIP-ASSOCIATE`). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. If this parameter is not specified, up to 50 results are + returned by default. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeNetworkInterfacePermissionsOutput(_SerdeShape): + """Contains the output for DescribeNetworkInterfacePermissions.""" + + network_interface_permissions: list[NetworkInterfacePermission] | None = ... + """The network interface permissions.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInterfacesInput(_SerdeShape): + """Contains the parameters for DescribeNetworkInterfaces.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. You cannot specify this parameter and the network interface IDs + parameter in the same request. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_ids: list[str] | None = ... + """ + The network interface IDs. + + Default: Describes all your network interfaces. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `association.allocation-id` - The allocation ID returned when you + allocated the Elastic IP address (IPv4) for your network interface. + + - `association.association-id` - The association ID returned when the + network interface was associated with an IPv4 address. + + - `addresses.association.owner-id` - The owner ID of the addresses + associated with the network interface. + + - `addresses.association.public-ip` - The association ID returned when + the network interface was associated with the Elastic IP address + (IPv4). + + - `addresses.primary` - Whether the private IPv4 address is the primary + IP address associated with the network interface. + + - `addresses.private-ip-address` - The private IPv4 addresses associated + with the network interface. + + - `association.ip-owner-id` - The owner of the Elastic IP address (IPv4) + associated with the network interface. + + - `association.public-ip` - The address of the Elastic IP address (IPv4) + bound to the network interface. + + - `association.public-dns-name` - The public DNS name for the network + interface (IPv4). + + - `attachment.attach-time` - The time that the network interface was + attached to an instance. + + - `attachment.attachment-id` - The ID of the interface attachment. + + - `attachment.delete-on-termination` - Indicates whether the attachment + is deleted when an instance is terminated. + + - `attachment.device-index` - The device index to which the network + interface is attached. + + - `attachment.instance-id` - The ID of the instance to which the network + interface is attached. + + - `attachment.instance-owner-id` - The owner ID of the instance to which + the network interface is attached. + + - `attachment.status` - The status of the attachment (`attaching` | + `attached` | `detaching` | `detached`). + + - `availability-zone` - The Availability Zone of the network interface. + + - `availability-zone-id` - The ID of the Availability Zone of the + network interface. + + - `description` - The description of the network interface. + + - `group-id` - The ID of a security group associated with the network + interface. + + - `ipv6-addresses.ipv6-address` - An IPv6 address associated with the + network interface. + + - `interface-type` - The type of network interface + (`api_gateway_managed` | `aws_codestar_connections_managed` | + `branch` | `ec2_instance_connect_endpoint` | `efa` | `efa-only` | + `efs` | `evs` | `gateway_load_balancer` | + `gateway_load_balancer_endpoint` | `global_accelerator_managed` | + `interface` | `iot_rules_managed` | `lambda` | `load_balancer` | + `nat_gateway` | `network_load_balancer` | `quicksight` | + `transit_gateway` | `trunk` | `vpc_endpoint`). + + - `mac-address` - The MAC address of the network interface. + + - `network-interface-id` - The ID of the network interface. + + - `operator.managed` - A Boolean that indicates whether this is a + managed network interface. + + - `operator.principal` - The principal that manages the network + interface. Only valid for managed network interfaces, where `managed` + is `true`. + + - `owner-id` - The Amazon Web Services account ID of the network + interface owner. + + - `private-dns-name` - The private DNS name of the network interface + (IPv4). + + - `private-ip-address` - The private IPv4 address or addresses of the + network interface. + + - `requester-id` - The alias or Amazon Web Services account ID of the + principal or service that created the network interface. + + - `requester-managed` - Indicates whether the network interface is being + managed by an Amazon Web Services service (for example, Amazon Web + Services Management Console, Auto Scaling, and so on). + + - `source-dest-check` - Indicates whether the network interface performs + source/destination checking. A value of `true` means checking is + enabled, and `false` means checking is disabled. The value must be + `false` for the network interface to perform network address + translation (NAT) in your VPC. + + - `status` - The status of the network interface. If the network + interface is not attached to an instance, the status is `available`; + if a network interface is attached to an instance the status is + `in-use`. + + - `subnet-id` - The ID of the subnet for the network interface. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC for the network interface. + """ + +@dataclass(kw_only=True) +class DescribeNetworkInterfacesOutput(_SerdeShape): + """Dataclass for DescribeNetworkInterfacesOutput structure.""" + + network_interfaces: list[NetworkInterface] | None = ... + """Information about the network interfaces.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeOutpostLagsInput(_SerdeShape): + """Dataclass for DescribeOutpostLagsInput structure.""" + + outpost_lag_ids: list[str] | None = ... + """The IDs of the Outpost LAGs.""" + filters: list[Filter] | None = ... + """ + The filters to use for narrowing down the request. The following filters + are supported: + + - `service-link-virtual-interface-id` - The ID of the service link + virtual interface. + + - `service-link-virtual-interface-arn` - The ARN of the service link + virtual interface. + + - `outpost-id` - The Outpost ID. + + - `outpost-arn` - The Outpost ARN. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + service link virtual interface. + + - `vlan` - The ID of the address pool. + + - `local-address` - The local address. + + - `peer-address` - The peer address. + + - `peer-bgp-asn` - The peer BGP ASN. + + - `outpost-lag-id` - The Outpost LAG ID. + + - `configuration-state` - The configuration state of the service link + virtual interface. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeOutpostLagsOutput(_SerdeShape): + """Dataclass for DescribeOutpostLagsOutput structure.""" + + outpost_lags: list[OutpostLag] | None = ... + """The Outpost LAGs.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePlacementGroupsInput(_SerdeShape): + """Dataclass for DescribePlacementGroupsInput structure.""" + + group_ids: list[str] | None = ... + """The IDs of the placement groups.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + group_names: list[str] | None = ... + """ + The names of the placement groups. + + Constraints: + + - You can specify a name only if the placement group is owned by your + account. + + - If a placement group is *shared* with your account, specifying the + name results in an error. You must use the `GroupId` parameter + instead. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `group-name` - The name of the placement group. + + - `group-arn` - The Amazon Resource Name (ARN) of the placement group. + + - `spread-level` - The spread level for the placement group (`host` | + `rack`). + + - `state` - The state of the placement group (`pending` | `available` + | `deleting` | `deleted`). + + - `strategy` - The strategy of the placement group (`cluster` | + `spread` | `partition` | `precision-time`). + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources that have a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribePlacementGroupsOutput(_SerdeShape): + """Dataclass for DescribePlacementGroupsOutput structure.""" + + placement_groups: list[PlacementGroup] | None = ... + """Information about the placement groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePrefixListsInput(_SerdeShape): + """Dataclass for DescribePrefixListsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `prefix-list-id`: The ID of a prefix list. + + - `prefix-list-name`: The name of a prefix list. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + prefix_list_ids: list[str] | None = ... + """One or more prefix list IDs.""" + +@dataclass(kw_only=True) +class DescribePrefixListsOutput(_SerdeShape): + """Dataclass for DescribePrefixListsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + prefix_lists: list[PrefixList] | None = ... + """All available prefix lists.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePrincipalIdFormatInput(_SerdeShape): + """Dataclass for DescribePrincipalIdFormatInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + resources: list[str] | None = ... + """ + The type of resource: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `instance` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `reservation` | + `route-table` | `route-table-association` | `security-group` | + `snapshot` | `subnet` | `subnet-cidr-block-association` | `volume` | + `vpc` | `vpc-cidr-block-association` | `vpc-endpoint` | + `vpc-peering-connection` | `vpn-connection` | `vpn-gateway` + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned NextToken + value. + """ + next_token: str | None = ... + """The token to request the next page of results.""" + +@dataclass(kw_only=True) +class DescribePrincipalIdFormatOutput(_SerdeShape): + """Dataclass for DescribePrincipalIdFormatOutput structure.""" + + principals: list[PrincipalIdFormat] | None = ... + """Information about the ID format settings for the ARN.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePublicIpv4PoolsInput(_SerdeShape): + """Dataclass for DescribePublicIpv4PoolsInput structure.""" + + pool_ids: list[str] | None = ... + """The IDs of the address pools.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribePublicIpv4PoolsOutput(_SerdeShape): + """Dataclass for DescribePublicIpv4PoolsOutput structure.""" + + public_ipv4_pools: list[PublicIpv4Pool] | None = ... + """Information about the address pools.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeRegionsInput(_SerdeShape): + """Dataclass for DescribeRegionsInput structure.""" + + region_names: list[str] | None = ... + """ + The names of the Regions. You can specify any Regions, whether they are + enabled and disabled for your account. + """ + all_regions: bool | None = ... + """ + Indicates whether to display all Regions, including Regions that are + disabled for your account. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `endpoint` - The endpoint of the Region (for example, + `ec2.us-east-1.amazonaws.com`). + + - `opt-in-status` - The opt-in status of the Region + (`opt-in-not-required` | `opted-in` | `not-opted-in`). + + - `region-name` - The name of the Region (for example, `us-east-1`). + """ + +@dataclass(kw_only=True) +class DescribeRegionsOutput(_SerdeShape): + """Dataclass for DescribeRegionsOutput structure.""" + + regions: list[Region] | None = ... + """Information about the Regions.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReplaceRootVolumeTasksInput(_SerdeShape): + """Dataclass for DescribeReplaceRootVolumeTasksInput structure.""" + + replace_root_volume_task_ids: list[str] | None = ... + """The ID of the root volume replacement task to view.""" + filters: list[Filter] | None = ... + """ + Filter to use: + + - `instance-id` - The ID of the instance for which the root volume + replacement task was created. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeReplaceRootVolumeTasksOutput(_SerdeShape): + """Dataclass for DescribeReplaceRootVolumeTasksOutput structure.""" + + replace_root_volume_tasks: list[ReplaceRootVolumeTask] | None = ... + """Information about the root volume replacement task.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesInput(_SerdeShape): + """Contains the parameters for DescribeReservedInstances.""" + + offering_class: str | None = ... + """Describes whether the Reserved Instance is Standard or Convertible.""" + reserved_instances_ids: list[str] | None = ... + """ + One or more Reserved Instance IDs. + + Default: Describes all your Reserved Instances, or only those otherwise + specified. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `availability-zone` - The Availability Zone where the Reserved + Instance can be used. + + - `availability-zone-id` - The ID of the Availability Zone where the + Reserved Instance can be used. + + - `duration` - The duration of the Reserved Instance (one year or three + years), in seconds (`31536000` | `94608000`). + + - `end` - The time when the Reserved Instance expires (for example, + 2015-08-07T11:54:42.000Z). + + - `fixed-price` - The purchase price of the Reserved Instance (for + example, 9800.0). + + - `instance-type` - The instance type that is covered by the + reservation. + + - `scope` - The scope of the Reserved Instance (`Region` or + `Availability Zone`). + + - `product-description` - The Reserved Instance product platform + description (`Linux/UNIX` | `Linux with SQL Server Standard` | + `Linux with SQL Server Web` | `Linux with SQL Server Enterprise` | + `SUSE Linux` | `Red Hat Enterprise Linux` | + `Red Hat Enterprise Linux with HA` | `Windows` | + `Windows with SQL Server Standard` | `Windows with SQL Server Web` | + `Windows with SQL Server Enterprise`). + + - `reserved-instances-id` - The ID of the Reserved Instance. + + - `start` - The time at which the Reserved Instance purchase request was + placed (for example, 2014-08-07T11:54:42.000Z). + + - `state` - The state of the Reserved Instance (`payment-pending` | + `active` | `payment-failed` | `retired`). + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `usage-price` - The usage price of the Reserved Instance, per hour + (for example, 0.84). + """ + offering_type: str | None = ... + """ + The Reserved Instance offering type. If you are using tools that predate + the 2011-11-01 API version, you only have access to the + `Medium Utilization` Reserved Instance offering type. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesListingsInput(_SerdeShape): + """Contains the parameters for DescribeReservedInstancesListings.""" + + reserved_instances_id: str | None = ... + """One or more Reserved Instance IDs.""" + reserved_instances_listing_id: str | None = ... + """One or more Reserved Instance listing IDs.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `reserved-instances-id` - The ID of the Reserved Instances. + + - `reserved-instances-listing-id` - The ID of the Reserved Instances + listing. + + - `status` - The status of the Reserved Instance listing (`pending` | + `active` | `cancelled` | `closed`). + + - `status-message` - The reason for the status. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesListingsOutput(_SerdeShape): + """Contains the output of DescribeReservedInstancesListings.""" + + reserved_instances_listings: list[ReservedInstancesListing] | None = ... + """Information about the Reserved Instance listing.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesModificationsInput(_SerdeShape): + """Contains the parameters for DescribeReservedInstancesModifications.""" + + reserved_instances_modification_ids: list[str] | None = ... + """IDs for the submitted modification request.""" + next_token: str | None = ... + """The token to retrieve the next page of results.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `client-token` - The idempotency token for the modification request. + + - `create-date` - The time when the modification request was created. + + - `effective-date` - The time when the modification becomes effective. + + - `modification-result.reserved-instances-id` - The ID for the Reserved + Instances created as part of the modification request. This ID is only + available when the status of the modification is `fulfilled`. + + - `modification-result.target-configuration.availability-zone` - The + Availability Zone for the new Reserved Instances. + + - `modification-result.target-configuration.availability-zone-id` - The + ID of the Availability Zone for the new Reserved Instances. + + - `modification-result.target-configuration.instance-count ` - The + number of new Reserved Instances. + + - `modification-result.target-configuration.instance-type` - The + instance type of the new Reserved Instances. + + - `reserved-instances-id` - The ID of the Reserved Instances modified. + + - `reserved-instances-modification-id` - The ID of the modification + request. + + - `status` - The status of the Reserved Instances modification request + (`processing` | `fulfilled` | `failed`). + + - `status-message` - The reason for the status. + + - `update-date` - The time when the modification request was last + updated. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesModificationsOutput(_SerdeShape): + """Contains the output of DescribeReservedInstancesModifications.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + reserved_instances_modifications: list[ReservedInstancesModification] | None = ... + """The Reserved Instance modification information.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesOfferingsInput(_SerdeShape): + """Contains the parameters for DescribeReservedInstancesOfferings.""" + + availability_zone: str | None = ... + """ + The Availability Zone in which the Reserved Instance can be used. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both. + """ + include_marketplace: bool | None = ... + """Include Reserved Instance Marketplace offerings in the response.""" + instance_type: str | None = ... + """ + The instance type that the reservation will cover (for example, + `m1.small`). For more information, see [Amazon EC2 instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + """ + max_duration: int | None = ... + """ + The maximum duration (in seconds) to filter when searching for + offerings. + + Default: 94608000 (3 years) + """ + max_instance_count: int | None = ... + """ + The maximum number of instances to filter when searching for offerings. + + Default: 20 + """ + min_duration: int | None = ... + """ + The minimum duration (in seconds) to filter when searching for + offerings. + + Default: 2592000 (1 month) + """ + offering_class: str | None = ... + """ + The offering class of the Reserved Instance. Can be `standard` or + `convertible`. + """ + product_description: str | None = ... + """ + The Reserved Instance product platform description. Instances that + include `(Amazon VPC)` in the description are for use with Amazon VPC. + """ + reserved_instances_offering_ids: list[str] | None = ... + """One or more Reserved Instances offering IDs.""" + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `availability-zone` - The Availability Zone where the Reserved + Instance can be used. + + - `availability-zone-id` - The ID of the Availability Zone where the + Reserved Instance can be used. + + - `duration` - The duration of the Reserved Instance (for example, one + year or three years), in seconds (`31536000` | `94608000`). + + - `fixed-price` - The purchase price of the Reserved Instance (for + example, 9800.0). + + - `instance-type` - The instance type that is covered by the + reservation. + + - `marketplace` - Set to `true` to show only Reserved Instance + Marketplace offerings. When this filter is not used, which is the + default behavior, all offerings from both Amazon Web Services and the + Reserved Instance Marketplace are listed. + + - `product-description` - The Reserved Instance product platform + description (`Linux/UNIX` | `Linux with SQL Server Standard` | + `Linux with SQL Server Web` | `Linux with SQL Server Enterprise` | + `SUSE Linux` | `Red Hat Enterprise Linux` | + `Red Hat Enterprise Linux with HA` | `Windows` | + `Windows with SQL Server Standard` | `Windows with SQL Server Web` | + `Windows with SQL Server Enterprise`). + + - `reserved-instances-offering-id` - The Reserved Instances offering ID. + + - `scope` - The scope of the Reserved Instance (`Availability Zone` or + `Region`). + + - `usage-price` - The usage price of the Reserved Instance, per hour + (for example, 0.84). + """ + instance_tenancy: str | None = ... + """ + The tenancy of the instances covered by the reservation. A Reserved + Instance with a tenancy of `dedicated` is applied to instances that run + in a VPC on single-tenant hardware (i.e., Dedicated Instances). + + **Important:** The `host` value cannot be used with this parameter. Use + the `default` or `dedicated` values only. + + Default: `default` + """ + offering_type: str | None = ... + """ + The Reserved Instance offering type. If you are using tools that predate + the 2011-11-01 API version, you only have access to the + `Medium Utilization` Reserved Instance offering type. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results of the initial request can be seen by + sending another request with the returned `NextToken` value. The maximum + is 100. + + Default: 100 + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesOfferingsOutput(_SerdeShape): + """Contains the output of DescribeReservedInstancesOfferings.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + reserved_instances_offerings: list[ReservedInstancesOffering] | None = ... + """A list of Reserved Instances offerings.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedInstancesOutput(_SerdeShape): + """Contains the output for DescribeReservedInstances.""" + + reserved_instances: list[ReservedInstances] | None = ... + """A list of Reserved Instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeRouteServerEndpointsInput(_SerdeShape): + """Dataclass for DescribeRouteServerEndpointsInput structure.""" + + route_server_endpoint_ids: list[str] | None = ... + """The IDs of the route server endpoints to describe.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """The maximum number of results to return with a single call.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the describe request.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeRouteServerEndpointsOutput(_SerdeShape): + """Dataclass for DescribeRouteServerEndpointsOutput structure.""" + + route_server_endpoints: list[RouteServerEndpoint] | None = ... + """Information about the described route server endpoints.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeRouteServerPeersInput(_SerdeShape): + """Dataclass for DescribeRouteServerPeersInput structure.""" + + route_server_peer_ids: list[str] | None = ... + """The IDs of the route server peers to describe.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """The maximum number of results to return with a single call.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the describe request.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeRouteServerPeersOutput(_SerdeShape): + """Dataclass for DescribeRouteServerPeersOutput structure.""" + + route_server_peers: list[RouteServerPeer] | None = ... + """Information about the described route server peers.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeRouteServersInput(_SerdeShape): + """Dataclass for DescribeRouteServersInput structure.""" + + route_server_ids: list[str] | None = ... + """The IDs of the route servers to describe.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """The maximum number of results to return with a single call.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the describe request.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeRouteServersOutput(_SerdeShape): + """Dataclass for DescribeRouteServersOutput structure.""" + + route_servers: list[RouteServer] | None = ... + """Information about the described route servers.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeRouteTablesInput(_SerdeShape): + """Dataclass for DescribeRouteTablesInput structure.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + route_table_ids: list[str] | None = ... + """The IDs of the route tables.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `association.gateway-id` - The ID of the gateway involved in the + association. + + - `association.route-table-association-id` - The ID of an association ID + for the route table. + + - `association.route-table-id` - The ID of the route table involved in + the association. + + - `association.subnet-id` - The ID of the subnet involved in the + association. + + - `association.main` - Indicates whether the route table is the main + route table for the VPC (`true` | `false`). Route tables that do not + have an association ID are not returned in the response. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + route table. + + - `route-table-id` - The ID of the route table. + + - `route.destination-cidr-block` - The IPv4 CIDR range specified in a + route in the table. + + - `route.destination-ipv6-cidr-block` - The IPv6 CIDR range specified in + a route in the route table. + + - `route.destination-prefix-list-id` - The ID (prefix) of the Amazon Web + Services service specified in a route in the table. + + - `route.egress-only-internet-gateway-id` - The ID of an egress-only + Internet gateway specified in a route in the route table. + + - `route.gateway-id` - The ID of a gateway specified in a route in the + table. + + - `route.instance-id` - The ID of an instance specified in a route in + the table. + + - `route.nat-gateway-id` - The ID of a NAT gateway. + + - `route.transit-gateway-id` - The ID of a transit gateway. + + - `route.origin` - Describes how the route was created. + `CreateRouteTable` indicates that the route was automatically created + when the route table was created; `CreateRoute` indicates that the + route was manually added to the route table; + `EnableVgwRoutePropagation` indicates that the route was propagated by + route propagation. + + - `route.state` - The state of a route in the route table (`active` | + `blackhole`). The blackhole state indicates that the route's target + isn't available (for example, the specified gateway isn't attached + to the VPC, the specified NAT instance has been terminated, and so + on). + + - `route.vpc-peering-connection-id` - The ID of a VPC peering connection + specified in a route in the table. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC for the route table. + """ + +@dataclass(kw_only=True) +class DescribeRouteTablesOutput(_SerdeShape): + """Contains the output of DescribeRouteTables.""" + + route_tables: list[RouteTable] | None = ... + """Information about the route tables.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeScheduledInstanceAvailabilityInput(_SerdeShape): + """Contains the parameters for DescribeScheduledInstanceAvailability.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone (for example, + `us-west-2a`). + + - `instance-type` - The instance type (for example, `c4.large`). + + - `platform` - The platform (`Linux/UNIX` or `Windows`). + """ + first_slot_start_time_range: SlotDateTimeRangeRequest | None = ... + """The time period for the first schedule to start.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. This value can + be between 5 and 300. The default value is 300. To retrieve the + remaining results, make another call with the returned `NextToken` + value. + """ + max_slot_duration_in_hours: int | None = ... + """ + The maximum available duration, in hours. This value must be greater + than `MinSlotDurationInHours` and less than 1,720. + """ + min_slot_duration_in_hours: int | None = ... + """ + The minimum available duration, in hours. The minimum required duration + is 1,200 hours per year. For example, the minimum daily schedule is 4 + hours, the minimum weekly schedule is 24 hours, and the minimum monthly + schedule is 100 hours. + """ + next_token: str | None = ... + """The token for the next set of results.""" + recurrence: ScheduledInstanceRecurrenceRequest | None = ... + """The schedule recurrence.""" + +@dataclass(kw_only=True) +class DescribeScheduledInstanceAvailabilityOutput(_SerdeShape): + """Contains the output of DescribeScheduledInstanceAvailability.""" + + next_token: str | None = ... + """ + The token required to retrieve the next set of results. This value is + `null` when there are no more results to return. + """ + scheduled_instance_availability_set: ( + list[ScheduledInstanceAvailability] | None + ) = ... + """Information about the available Scheduled Instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeScheduledInstancesInput(_SerdeShape): + """Contains the parameters for DescribeScheduledInstances.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone (for example, + `us-west-2a`). + + - `instance-type` - The instance type (for example, `c4.large`). + + - `platform` - The platform (`Linux/UNIX` or `Windows`). + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. This value can + be between 5 and 300. The default value is 100. To retrieve the + remaining results, make another call with the returned `NextToken` + value. + """ + next_token: str | None = ... + """The token for the next set of results.""" + scheduled_instance_ids: list[str] | None = ... + """The Scheduled Instance IDs.""" + slot_start_time_range: SlotStartTimeRangeRequest | None = ... + """The time period for the first schedule to start.""" + +@dataclass(kw_only=True) +class DescribeScheduledInstancesOutput(_SerdeShape): + """Contains the output of DescribeScheduledInstances.""" + + next_token: str | None = ... + """ + The token required to retrieve the next set of results. This value is + `null` when there are no more results to return. + """ + scheduled_instance_set: list[ScheduledInstance] | None = ... + """Information about the Scheduled Instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecondaryInterfacesInput(_SerdeShape): + """Dataclass for DescribeSecondaryInterfacesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `attachment.attachment-id` - The ID of the secondary interface + attachment. + + - `attachment.instance-id` - The ID of the instance to which the + secondary interface is attached. + + - `attachment.instance-owner-id` - The ID of the Amazon Web Services + account that owns the instance to which the secondary interface is + attached. + + - `attachment.status` - The attachment status (`attaching` | `attached` + | `detaching` | `detached`). + + - `private-ipv4-addresses.private-ip-address` - The private IPv4 address + associated with the secondary interface. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + secondary interface. + + - `secondary-interface-arn` - The ARN of the secondary interface. + + - `secondary-interface-id` - The ID of the secondary interface. + + - `secondary-interface-type` - The type of secondary interface + (`secondary`). + + - `secondary-network-id` - The ID of the secondary network. + + - `secondary-network-type` - The type of the secondary network (`rdma`). + + - `secondary-subnet-id` - The ID of the secondary subnet. + + - `status` - The status of the secondary interface (`available` | + `in-use`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + secondary_interface_ids: list[str] | None = ... + """The IDs of the secondary interfaces.""" + +@dataclass(kw_only=True) +class DescribeSecondaryInterfacesOutput(_SerdeShape): + """Dataclass for DescribeSecondaryInterfacesOutput structure.""" + + secondary_interfaces: list[SecondaryInterface] | None = ... + """Information about the secondary interfaces.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecondaryNetworksInput(_SerdeShape): + """Dataclass for DescribeSecondaryNetworksInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. The following are the possible values: + + - `ipv4-cidr-block-association.association-id` - The association ID for + an IPv4 CIDR block associated with the secondary network. + + - `ipv4-cidr-block-association.cidr-block` - An IPv4 CIDR block + associated with the secondary network. + + - `ipv4-cidr-block-association.state` - The state of an IPv4 CIDR block + associated with the secondary network. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + secondary network. + + - `secondary-network-id` - The ID of the secondary network. + + - `secondary-network-arn` - The ARN of the secondary network. + + - `state` - The state of the secondary network (`create-in-progress` | + `create-complete` | `create-failed` | `delete-in-progress` | + `delete-complete` | `delete-failed`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `type` - The type of the secondary network (`rdma`). + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + secondary_network_ids: list[str] | None = ... + """The IDs of the secondary networks.""" + +@dataclass(kw_only=True) +class DescribeSecondaryNetworksOutput(_SerdeShape): + """Dataclass for DescribeSecondaryNetworksOutput structure.""" + + secondary_networks: list[SecondaryNetwork] | None = ... + """Information about the secondary networks.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecondarySubnetsInput(_SerdeShape): + """Dataclass for DescribeSecondarySubnetsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `ipv4-cidr-block-association.association-id` - The association ID for + an IPv4 CIDR block associated with the secondary subnet. + + - `ipv4-cidr-block-association.cidr-block` - An IPv4 CIDR block + associated with the secondary subnet. + + - `ipv4-cidr-block-association.state` - The state of an IPv4 CIDR block + associated with the secondary subnet. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + secondary subnet. + + - `secondary-network-id` - The ID of the secondary network. + + - `secondary-network-type` - The type of the secondary network (`rdma`). + + - `secondary-subnet-id` - The ID of the secondary subnet. + + - `secondary-subnet-arn` - The ARN of the secondary subnet. + + - `state` - The state of the secondary subnet (`create-in-progress` | + `create-complete` | `create-failed` | `delete-in-progress` | + `delete-complete` | `delete-failed`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + secondary_subnet_ids: list[str] | None = ... + """The IDs of the secondary subnets.""" + +@dataclass(kw_only=True) +class DescribeSecondarySubnetsOutput(_SerdeShape): + """Dataclass for DescribeSecondarySubnetsOutput structure.""" + + secondary_subnets: list[SecondarySubnet] | None = ... + """Information about the secondary subnets.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupReferencesInput(_SerdeShape): + """Dataclass for DescribeSecurityGroupReferencesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + group_id: list[str] | None = ... + """The IDs of the security groups in your account.""" + +@dataclass(kw_only=True) +class DescribeSecurityGroupReferencesOutput(_SerdeShape): + """Dataclass for DescribeSecurityGroupReferencesOutput structure.""" + + security_group_reference_set: list[SecurityGroupReference] | None = ... + """Information about the VPCs with the referencing security groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupRulesInput(_SerdeShape): + """Dataclass for DescribeSecurityGroupRulesInput structure.""" + + filters: list[Filter] | None = ... + """ + One or more filters. + + - `group-id` - The ID of the security group. + + - `security-group-rule-id` - The ID of the security group rule. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + """ + security_group_rule_ids: list[str] | None = ... + """The IDs of the security group rules.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. This value can be between 5 and 1000. If this parameter is not + specified, then all items are returned. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupRulesOutput(_SerdeShape): + """Dataclass for DescribeSecurityGroupRulesOutput structure.""" + + security_group_rules: list[SecurityGroupRule] | None = ... + """Information about security group rules.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupsInput(_SerdeShape): + """Dataclass for DescribeSecurityGroupsInput structure.""" + + group_ids: list[str] | None = ... + """ + The IDs of the security groups. Required for security groups in a + nondefault VPC. + + Default: Describes all of your security groups. + """ + group_names: list[str] | None = ... + """ + [Default VPC] The names of the security groups. You can specify either + the security group name or the security group ID. + + Default: Describes all of your security groups. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. This value can be between 5 and 1000. If this parameter is not + specified, then all items are returned. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. If using multiple filters for rules, the results include + security groups for which any combination of rules - not necessarily a + single rule - match all filters. + + - `description` - The description of the security group. + + - `egress.ip-permission.cidr` - An IPv4 CIDR block for an outbound + security group rule. + + - `egress.ip-permission.from-port` - For an outbound rule, the start of + port range for the TCP and UDP protocols, or an ICMP type number. + + - `egress.ip-permission.group-id` - The ID of a security group that has + been referenced in an outbound security group rule. + + - `egress.ip-permission.group-name` - The name of a security group that + is referenced in an outbound security group rule. + + - `egress.ip-permission.ipv6-cidr` - An IPv6 CIDR block for an outbound + security group rule. + + - `egress.ip-permission.prefix-list-id` - The ID of a prefix list to + which a security group rule allows outbound access. + + - `egress.ip-permission.protocol` - The IP protocol for an outbound + security group rule (`tcp` | `udp` | `icmp`, a protocol number, or + -1 for all protocols). + + - `egress.ip-permission.to-port` - For an outbound rule, the end of port + range for the TCP and UDP protocols, or an ICMP code. + + - `egress.ip-permission.user-id` - The ID of an Amazon Web Services + account that has been referenced in an outbound security group rule. + + - `group-id` - The ID of the security group. + + - `group-name` - The name of the security group. + + - `ip-permission.cidr` - An IPv4 CIDR block for an inbound security + group rule. + + - `ip-permission.from-port` - For an inbound rule, the start of port + range for the TCP and UDP protocols, or an ICMP type number. + + - `ip-permission.group-id` - The ID of a security group that has been + referenced in an inbound security group rule. + + - `ip-permission.group-name` - The name of a security group that is + referenced in an inbound security group rule. + + - `ip-permission.ipv6-cidr` - An IPv6 CIDR block for an inbound security + group rule. + + - `ip-permission.prefix-list-id` - The ID of a prefix list from which a + security group rule allows inbound access. + + - `ip-permission.protocol` - The IP protocol for an inbound security + group rule (`tcp` | `udp` | `icmp`, a protocol number, or -1 for all + protocols). + + - `ip-permission.to-port` - For an inbound rule, the end of port range + for the TCP and UDP protocols, or an ICMP code. + + - `ip-permission.user-id` - The ID of an Amazon Web Services account + that has been referenced in an inbound security group rule. + + - `owner-id` - The Amazon Web Services account ID of the owner of the + security group. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC specified when the security group was + created. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupsOutput(_SerdeShape): + """Dataclass for DescribeSecurityGroupsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + security_groups: list[SecurityGroup] | None = ... + """Information about the security groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupVpcAssociationsInput(_SerdeShape): + """Dataclass for DescribeSecurityGroupVpcAssociationsInput structure.""" + + filters: list[Filter] | None = ... + """ + Security group VPC association filters. + + - `group-id`: The security group ID. + + - `group-owner-id`: The group owner ID. + + - `state`: The state of the association. + + - `vpc-id`: The ID of the associated VPC. + + - `vpc-owner-id`: The account ID of the VPC owner. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeSecurityGroupVpcAssociationsOutput(_SerdeShape): + """Dataclass for DescribeSecurityGroupVpcAssociationsOutput structure.""" + + security_group_vpc_associations: list[SecurityGroupVpcAssociation] | None = ... + """The security group VPC associations.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeServiceLinkVirtualInterfacesInput(_SerdeShape): + """Dataclass for DescribeServiceLinkVirtualInterfacesInput structure.""" + + service_link_virtual_interface_ids: list[str] | None = ... + """The IDs of the service link virtual interfaces.""" + filters: list[Filter] | None = ... + """ + The filters to use for narrowing down the request. The following filters + are supported: + + - `outpost-lag-id` - The ID of the Outpost LAG. + + - `outpost-arn` - The Outpost ARN. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + service link virtual interface. + + - `state` - The state of the Outpost LAG. + + - `vlan` - The ID of the address pool. + + - `service-link-virtual-interface-id` - The ID of the service link + virtual interface. + + - `local-gateway-virtual-interface-id` - The ID of the local gateway + virtual interface. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeServiceLinkVirtualInterfacesOutput(_SerdeShape): + """Dataclass for DescribeServiceLinkVirtualInterfacesOutput structure.""" + + service_link_virtual_interfaces: list[ServiceLinkVirtualInterface] | None = ... + """Describes the service link virtual interfaces.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSnapshotAttributeInput(_SerdeShape): + """Dataclass for DescribeSnapshotAttributeInput structure.""" + + attribute: str | None = ... + """The snapshot attribute you would like to view.""" + snapshot_id: str | None = ... + """The ID of the EBS snapshot.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeSnapshotAttributeOutput(_SerdeShape): + """Dataclass for DescribeSnapshotAttributeOutput structure.""" + + product_codes: list[ProductCode] | None = ... + """The product codes.""" + snapshot_id: str | None = ... + """The ID of the EBS snapshot.""" + create_volume_permissions: list[CreateVolumePermission] | None = ... + """ + The users and groups that have the permissions for creating volumes from + the snapshot. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSnapshotsInput(_SerdeShape): + """Dataclass for DescribeSnapshotsInput structure.""" + + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + owner_ids: list[str] | None = ... + """ + Scopes the results to snapshots with the specified owners. You can + specify a combination of Amazon Web Services account IDs, `self`, and + `amazon`. + """ + restorable_by_user_ids: list[str] | None = ... + """ + The IDs of the Amazon Web Services accounts that can create volumes from + the snapshot. + """ + snapshot_ids: list[str] | None = ... + """ + The snapshot IDs. + + Default: Describes the snapshots for which you have create volume + permissions. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `description` - A description of the snapshot. + + - `encrypted` - Indicates whether the snapshot is encrypted (`true` | + `false`) + + - `owner-alias` - The owner alias, from an Amazon-maintained list + (`amazon`). This is not the user-configured Amazon Web Services + account alias set using the IAM console. We recommend that you use the + related parameter instead of this filter. + + - `owner-id` - The Amazon Web Services account ID of the owner. We + recommend that you use the related parameter instead of this filter. + + - `progress` - The progress of the snapshot, as a percentage (for + example, 80%). + + - `snapshot-id` - The snapshot ID. + + - `start-time` - The time stamp when the snapshot was initiated. + + - `status` - The status of the snapshot (`pending` | `completed` | + `error`). + + - `storage-tier` - The storage tier of the snapshot (`archive` | + `standard`). + + - `transfer-type` - The type of operation used to create the snapshot + (`time-based` | `standard`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `volume-id` - The ID of the volume the snapshot is for. + + - `volume-size` - The size of the volume, in GiB. + """ + +@dataclass(kw_only=True) +class DescribeSnapshotsOutput(_SerdeShape): + """Dataclass for DescribeSnapshotsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + snapshots: list[Snapshot] | None = ... + """Information about the snapshots.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSnapshotTierStatusInput(_SerdeShape): + """Dataclass for DescribeSnapshotTierStatusInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `snapshot-id` - The snapshot ID. + + - `volume-id` - The ID of the volume the snapshot is for. + + - `last-tiering-operation` - The state of the last archive or restore + action. (`archival-in-progress` | `archival-completed` | + `archival-failed` | `permanent-restore-in-progress` | + `permanent-restore-completed` | `permanent-restore-failed` | + `temporary-restore-in-progress` | `temporary-restore-completed` | + `temporary-restore-failed`) + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeSnapshotTierStatusOutput(_SerdeShape): + """Dataclass for DescribeSnapshotTierStatusOutput structure.""" + + snapshot_tier_statuses: list[SnapshotTierStatus] | None = ... + """Information about the snapshot's storage tier.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotDatafeedSubscriptionInput(_SerdeShape): + """Contains the parameters for DescribeSpotDatafeedSubscription.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeSpotDatafeedSubscriptionOutput(_SerdeShape): + """Contains the output of DescribeSpotDatafeedSubscription.""" + + spot_datafeed_subscription: SpotDatafeedSubscription | None = ... + """The Spot Instance data feed subscription.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetInstancesInput(_SerdeShape): + """Contains the parameters for DescribeSpotFleetInstances.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetInstancesOutput(_SerdeShape): + """Contains the output of DescribeSpotFleetInstances.""" + + active_instances: list[ActiveInstance] | None = ... + """ + The running instances. This list is refreshed periodically and might be + out of date. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetRequestHistoryInput(_SerdeShape): + """Contains the parameters for DescribeSpotFleetRequestHistory.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + event_type: str | None = ... + """The type of events to describe. By default, all events are described.""" + start_time: datetime | None = ... + """ + The starting date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetRequestHistoryOutput(_SerdeShape): + """Contains the output of DescribeSpotFleetRequestHistory.""" + + history_records: list[HistoryRecord] | None = ... + """Information about the events in the history of the Spot Fleet request.""" + last_evaluated_time: datetime | None = ... + """ + The last date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). All records up to this time were + retrieved. + + If `nextToken` indicates that there are more items, this value is not + present. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + start_time: datetime | None = ... + """ + The starting date and time for the events, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetRequestsInput(_SerdeShape): + """Contains the parameters for DescribeSpotFleetRequests.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_fleet_request_ids: list[str] | None = ... + """The IDs of the Spot Fleet requests.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeSpotFleetRequestsOutput(_SerdeShape): + """Contains the output of DescribeSpotFleetRequests.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + spot_fleet_request_configs: list[SpotFleetRequestConfig] | None = ... + """Information about the configuration of your Spot Fleet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotInstanceRequestsInput(_SerdeShape): + """Contains the parameters for DescribeSpotInstanceRequests.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_instance_request_ids: list[str] | None = ... + """The IDs of the Spot Instance requests.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone-group` - The Availability Zone group. + + - `create-time` - The time stamp when the Spot Instance request was + created. + + - `fault-code` - The fault code related to the request. + + - `fault-message` - The fault message related to the request. + + - `instance-id` - The ID of the instance that fulfilled the request. + + - `launch-group` - The Spot Instance launch group. + + - `launch.block-device-mapping.delete-on-termination` - Indicates + whether the EBS volume is deleted on instance termination. + + - `launch.block-device-mapping.device-name` - The device name for the + volume in the block device mapping (for example, `/dev/sdh` or + `xvdh`). + + - `launch.block-device-mapping.snapshot-id` - The ID of the snapshot for + the EBS volume. + + - `launch.block-device-mapping.volume-size` - The size of the EBS + volume, in GiB. + + - `launch.block-device-mapping.volume-type` - The type of EBS volume: + `gp2` or `gp3` for General Purpose SSD, `io1` or `io2` for Provisioned + IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for Cold HDD, or + `standard` for Magnetic. + + - `launch.group-id` - The ID of the security group for the instance. + + - `launch.group-name` - The name of the security group for the instance. + + - `launch.image-id` - The ID of the AMI. + + - `launch.instance-type` - The type of instance (for example, + `m3.medium`). + + - `launch.kernel-id` - The kernel ID. + + - `launch.key-name` - The name of the key pair the instance launched + with. + + - `launch.monitoring-enabled` - Whether detailed monitoring is enabled + for the Spot Instance. + + - `launch.ramdisk-id` - The RAM disk ID. + + - `launched-availability-zone` - The Availability Zone in which the + request is launched. + + - `launched-availability-zone-id` - The ID of the Availability Zone in + which the request is launched. + + - `network-interface.addresses.primary` - Indicates whether the IP + address is the primary private IP address. + + - `network-interface.delete-on-termination` - Indicates whether the + network interface is deleted when the instance is terminated. + + - `network-interface.description` - A description of the network + interface. + + - `network-interface.device-index` - The index of the device for the + network interface attachment on the instance. + + - `network-interface.group-id` - The ID of the security group associated + with the network interface. + + - `network-interface.network-interface-id` - The ID of the network + interface. + + - `network-interface.private-ip-address` - The primary private IP + address of the network interface. + + - `network-interface.subnet-id` - The ID of the subnet for the instance. + + - `product-description` - The product description associated with the + instance (`Linux/UNIX` | `Windows`). + + - `spot-instance-request-id` - The Spot Instance request ID. + + - `spot-price` - The maximum hourly price for any Spot Instance launched + to fulfill the request. + + - `state` - The state of the Spot Instance request (`open` | `active` + | `closed` | `cancelled` | `failed`). Spot request status + information can help you track your Amazon EC2 Spot Instance requests. + For more information, see [Spot request + status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-request-status.html) + in the *Amazon EC2 User Guide*. + + - `status-code` - The short code describing the most recent evaluation + of your Spot Instance request. + + - `status-message` - The message explaining the status of the Spot + Instance request. + + - `tag:```{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `type` - The type of Spot Instance request (`one-time` | + `persistent`). + + - `valid-from` - The start date of the request. + + - `valid-until` - The end date of the request. + """ + +@dataclass(kw_only=True) +class DescribeSpotInstanceRequestsOutput(_SerdeShape): + """Contains the output of DescribeSpotInstanceRequests.""" + + spot_instance_requests: list[SpotInstanceRequest] | None = ... + """The Spot Instance requests.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSpotPriceHistoryInput(_SerdeShape): + """Contains the parameters for DescribeSpotPriceHistory.""" + + availability_zone_id: str | None = ... + """ + Filters the results by the specified ID of the Availability Zone. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + start_time: datetime | None = ... + """ + The date and time, up to the past 90 days, from which to start + retrieving the price history data, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + end_time: datetime | None = ... + """ + The date and time, up to the current date, from which to stop retrieving + the price history data, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + instance_types: list[str] | None = ... + """Filters the results by the specified instance types.""" + product_descriptions: list[str] | None = ... + """Filters the results by the specified basic product descriptions.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone for which prices should be + returned. + + - `availability-zone-id` - The ID of the Availability Zone for which + prices should be returned. + + - `instance-type` - The type of instance (for example, `m3.medium`). + + - `product-description` - The product description for the Spot price + (`Linux/UNIX` | `Red Hat Enterprise Linux` | `SUSE Linux` | + `Windows` | `Linux/UNIX (Amazon VPC)` | + `Red Hat Enterprise Linux (Amazon VPC)` | `SUSE Linux (Amazon VPC)` + | `Windows (Amazon VPC)`). + + - `spot-price` - The Spot price. The value must match exactly (or use + wildcards; greater than or less than comparison is not supported). + + - `timestamp` - The time stamp of the Spot price history, in UTC format + (for example, *ddd MMM dd HH*:*mm*:*ss* UTC *YYYY*). You can use + wildcards (`*` and `?`). Greater than or less than comparison is not + supported. + """ + availability_zone: str | None = ... + """ + Filters the results by the specified Availability Zone. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeSpotPriceHistoryOutput(_SerdeShape): + """Contains the output of DescribeSpotPriceHistory.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is an empty string (`""`) or `null` when there are no more + items to return. + """ + spot_price_history: list[SpotPrice] | None = ... + """The historical Spot prices.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStaleSecurityGroupsInput(_SerdeShape): + """Dataclass for DescribeStaleSecurityGroupsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class DescribeStaleSecurityGroupsOutput(_SerdeShape): + """Dataclass for DescribeStaleSecurityGroupsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + stale_security_group_set: list[StaleSecurityGroup] | None = ... + """Information about the stale security groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStoreImageTasksInput(_SerdeShape): + """Dataclass for DescribeStoreImageTasksInput structure.""" + + image_ids: list[str] | None = ... + """ + The AMI IDs for which to show progress. Up to 20 AMI IDs can be included + in a request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `task-state` - Returns tasks in a certain state (`InProgress` | + `Completed` | `Failed`) + + - `bucket` - Returns task information for tasks that targeted a specific + bucket. For the filter value, specify the bucket name. + + Note: + When you specify the `ImageIds` parameter, any filters that you specify + are ignored. To use the filters, you must remove the `ImageIds` + parameter. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + You cannot specify this parameter and the `ImageIds` parameter in the + same call. + """ + +@dataclass(kw_only=True) +class DescribeStoreImageTasksOutput(_SerdeShape): + """Dataclass for DescribeStoreImageTasksOutput structure.""" + + store_image_task_results: list[StoreImageTaskResult] | None = ... + """The information about the AMI store tasks.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSubnetsInput(_SerdeShape): + """Dataclass for DescribeSubnetsInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `availability-zone` - The Availability Zone for the subnet. You can + also use `availabilityZone` as the filter name. + + - `availability-zone-id` - The ID of the Availability Zone for the + subnet. You can also use `availabilityZoneId` as the filter name. + + - `available-ip-address-count` - The number of IPv4 addresses in the + subnet that are available. + + - `cidr-block` - The IPv4 CIDR block of the subnet. The CIDR block you + specify must exactly match the subnet's CIDR block for information to + be returned for the subnet. You can also use `cidr` or `cidrBlock` as + the filter names. + + - `customer-owned-ipv4-pool` - The customer-owned IPv4 address pool + associated with the subnet. + + - `default-for-az` - Indicates whether this is the default subnet for + the Availability Zone (`true` | `false`). You can also use + `defaultForAz` as the filter name. + + - `enable-dns64` - Indicates whether DNS queries made to the + Amazon-provided DNS Resolver in this subnet should return synthetic + IPv6 addresses for IPv4-only destinations. + + - `enable-lni-at-device-index` - Indicates the device position for local + network interfaces in this subnet. For example, `1` indicates local + network interfaces in this subnet are the secondary network interface + (eth1). + + - `ipv6-cidr-block-association.ipv6-cidr-block` - An IPv6 CIDR block + associated with the subnet. + + - `ipv6-cidr-block-association.association-id` - An association ID for + an IPv6 CIDR block associated with the subnet. + + - `ipv6-cidr-block-association.state` - The state of an IPv6 CIDR block + associated with the subnet. + + - `ipv6-native` - Indicates whether this is an IPv6 only subnet (`true` + | `false`). + + - `map-customer-owned-ip-on-launch` - Indicates whether a network + interface created in this subnet (including a network interface + created by RunInstances) receives a customer-owned IPv4 address. + + - `map-public-ip-on-launch` - Indicates whether instances launched in + this subnet receive a public IPv4 address. + + - `outpost-arn` - The Amazon Resource Name (ARN) of the Outpost. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + subnet. + + - `private-dns-name-options-on-launch.hostname-type` - The type of + hostname to assign to instances in the subnet at launch. For IPv4-only + and dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be + based on the instance IPv4 address (ip-name) or the instance ID + (resource-name). For IPv6 only subnets, an instance DNS name must be + based on the instance ID (resource-name). + + - `private-dns-name-options-on-launch.enable-resource-name-dns-a-record` - + Indicates whether to respond to DNS queries for instance hostnames + with DNS A records. + + - `private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record` - + Indicates whether to respond to DNS queries for instance hostnames + with DNS AAAA records. + + - `state` - The state of the subnet (`pending` | `available`). + + - `subnet-arn` - The Amazon Resource Name (ARN) of the subnet. + + - `subnet-id` - The ID of the subnet. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC for the subnet. + """ + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets. + + Default: Describes all your subnets. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeSubnetsOutput(_SerdeShape): + """Dataclass for DescribeSubnetsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + subnets: list[Subnet] | None = ... + """Information about the subnets.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTagsInput(_SerdeShape): + """Dataclass for DescribeTagsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `key` - The tag key. + + - `resource-id` - The ID of the resource. + + - `resource-type` - The resource type. For a list of possible values, + see + [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html). + + - `tag`:``{=html} - The key/value combination of the tag. For + example, specify \"tag:Owner\" for the filter name and \"TeamA\" for + the filter value to find resources with the tag \"Owner=TeamA\". + + - `value` - The tag value. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. This value can + be between 5 and 1000. To get the next page of items, make another + request with the token returned in the output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeTagsOutput(_SerdeShape): + """Dataclass for DescribeTagsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + tags: list[TagDescription] | None = ... + """The tags.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTrafficMirrorFilterRulesInput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorFilterRulesInput structure.""" + + traffic_mirror_filter_rule_ids: list[str] | None = ... + """Traffic filter rule IDs.""" + traffic_mirror_filter_id: str | None = ... + """Traffic filter ID.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + Traffic mirror filters. + + - `traffic-mirror-filter-rule-id`: The ID of the Traffic Mirror rule. + + - `traffic-mirror-filter-id`: The ID of the filter that this rule is + associated with. + + - `rule-number`: The number of the Traffic Mirror rule. + + - `rule-action`: The action taken on the filtered traffic. Possible + actions are `accept` and `reject`. + + - `traffic-direction`: The traffic direction. Possible directions are + `ingress` and `egress`. + + - `protocol`: The protocol, for example UDP, assigned to the Traffic + Mirror rule. + + - `source-cidr-block`: The source CIDR block assigned to the Traffic + Mirror rule. + + - `destination-cidr-block`: The destination CIDR block assigned to the + Traffic Mirror rule. + + - `description`: The description of the Traffic Mirror rule. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeTrafficMirrorFilterRulesOutput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorFilterRulesOutput structure.""" + + traffic_mirror_filter_rules: list[TrafficMirrorFilterRule] | None = ... + """Traffic mirror rules.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. The value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTrafficMirrorFiltersInput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorFiltersInput structure.""" + + traffic_mirror_filter_ids: list[str] | None = ... + """The ID of the Traffic Mirror filter.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `description`: The Traffic Mirror filter description. + + - `traffic-mirror-filter-id`: The ID of the Traffic Mirror filter. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeTrafficMirrorFiltersOutput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorFiltersOutput structure.""" + + traffic_mirror_filters: list[TrafficMirrorFilter] | None = ... + """Information about one or more Traffic Mirror filters.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. The value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTrafficMirrorSessionsInput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorSessionsInput structure.""" + + traffic_mirror_session_ids: list[str] | None = ... + """The ID of the Traffic Mirror session.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `description`: The Traffic Mirror session description. + + - `network-interface-id`: The ID of the Traffic Mirror session network + interface. + + - `owner-id`: The ID of the account that owns the Traffic Mirror + session. + + - `packet-length`: The assigned number of packets to mirror. + + - `session-number`: The assigned session number. + + - `traffic-mirror-filter-id`: The ID of the Traffic Mirror filter. + + - `traffic-mirror-session-id`: The ID of the Traffic Mirror session. + + - `traffic-mirror-target-id`: The ID of the Traffic Mirror target. + + - `virtual-network-id`: The virtual network ID of the Traffic Mirror + session. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeTrafficMirrorSessionsOutput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorSessionsOutput structure.""" + + traffic_mirror_sessions: list[TrafficMirrorSession] | None = ... + """ + Describes one or more Traffic Mirror sessions. By default, all Traffic + Mirror sessions are described. Alternatively, you can filter the + results. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. The value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTrafficMirrorTargetsInput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorTargetsInput structure.""" + + traffic_mirror_target_ids: list[str] | None = ... + """The ID of the Traffic Mirror targets.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `description`: The Traffic Mirror target description. + + - `network-interface-id`: The ID of the Traffic Mirror session network + interface. + + - `network-load-balancer-arn`: The Amazon Resource Name (ARN) of the + Network Load Balancer that is associated with the session. + + - `owner-id`: The ID of the account that owns the Traffic Mirror + session. + + - `traffic-mirror-target-id`: The ID of the Traffic Mirror target. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class DescribeTrafficMirrorTargetsOutput(_SerdeShape): + """Dataclass for DescribeTrafficMirrorTargetsOutput structure.""" + + traffic_mirror_targets: list[TrafficMirrorTarget] | None = ... + """Information about one or more Traffic Mirror targets.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. The value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayAttachmentsInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayAttachmentsInput structure.""" + + transit_gateway_attachment_ids: list[str] | None = ... + """The IDs of the attachments.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `association.state` - The state of the association (`associating` | + `associated` | `disassociating`). + + - `association.transit-gateway-route-table-id` - The ID of the route + table for the transit gateway. + + - `resource-id` - The ID of the resource. + + - `resource-owner-id` - The ID of the Amazon Web Services account that + owns the resource. + + - `resource-type` - The resource type. Valid values are `vpc` | `vpn` + | `direct-connect-gateway` | `peering` | `connect`. + + - `state` - The state of the attachment. Valid values are `available` | + `deleted` | `deleting` | `failed` | `failing` | + `initiatingRequest` | `modifying` | `pendingAcceptance` | `pending` + | `rollingBack` | `rejected` | `rejecting`. + + - `transit-gateway-attachment-id` - The ID of the attachment. + + - `transit-gateway-id` - The ID of the transit gateway. + + - `transit-gateway-owner-id` - The ID of the Amazon Web Services account + that owns the transit gateway. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayAttachmentsOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayAttachmentsOutput structure.""" + + transit_gateway_attachments: list[TransitGatewayAttachment] | None = ... + """Information about the attachments.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayConnectPeersInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayConnectPeersInput structure.""" + + transit_gateway_connect_peer_ids: list[str] | None = ... + """The IDs of the Connect peers.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `state` - The state of the Connect peer (`pending` | `available` | + `deleting` | `deleted`). + + - `transit-gateway-attachment-id` - The ID of the attachment. + + - `transit-gateway-connect-peer-id` - The ID of the Connect peer. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayConnectPeersOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayConnectPeersOutput structure.""" + + transit_gateway_connect_peers: list[TransitGatewayConnectPeer] | None = ... + """Information about the Connect peers.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayConnectsInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayConnectsInput structure.""" + + transit_gateway_attachment_ids: list[str] | None = ... + """The IDs of the attachments.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `options.protocol` - The tunnel protocol (`gre`). + + - `state` - The state of the attachment (`initiating` | + `initiatingRequest` | `pendingAcceptance` | `rollingBack` | + `pending` | `available` | `modifying` | `deleting` | `deleted` | + `failed` | `rejected` | `rejecting` | `failing`). + + - `transit-gateway-attachment-id` - The ID of the Connect attachment. + + - `transit-gateway-id` - The ID of the transit gateway. + + - `transport-transit-gateway-attachment-id` - The ID of the transit + gateway attachment from which the Connect attachment was created. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayConnectsOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayConnectsOutput structure.""" + + transit_gateway_connects: list[TransitGatewayConnect] | None = ... + """Information about the Connect attachments.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayMeteringPoliciesInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayMeteringPoliciesInput structure.""" + + transit_gateway_metering_policy_ids: list[str] | None = ... + """The IDs of the transit gateway metering policies to describe.""" + filters: list[Filter] | None = ... + """ + One or more filters to apply when describing transit gateway metering + policies. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayMeteringPoliciesOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayMeteringPoliciesOutput structure.""" + + transit_gateway_metering_policies: list[TransitGatewayMeteringPolicy] | None = ... + """Information about the transit gateway metering policies.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayMulticastDomainsInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayMulticastDomainsInput structure.""" + + transit_gateway_multicast_domain_ids: list[str] | None = ... + """The ID of the transit gateway multicast domain.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `state` - The state of the transit gateway multicast domain. Valid + values are `pending` | `available` | `deleting` | `deleted`. + + - `transit-gateway-id` - The ID of the transit gateway. + + - `transit-gateway-multicast-domain-id` - The ID of the transit gateway + multicast domain. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayMulticastDomainsOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayMulticastDomainsOutput structure.""" + + transit_gateway_multicast_domains: list[TransitGatewayMulticastDomain] | None = ... + """Information about the transit gateway multicast domains.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayPeeringAttachmentsInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayPeeringAttachmentsInput structure.""" + + transit_gateway_attachment_ids: list[str] | None = ... + """One or more IDs of the transit gateway peering attachments.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `transit-gateway-attachment-id` - The ID of the transit gateway + attachment. + + - `local-owner-id` - The ID of your Amazon Web Services account. + + - `remote-owner-id` - The ID of the Amazon Web Services account in the + remote Region that owns the transit gateway. + + - `state` - The state of the peering attachment. Valid values are + `available` | `deleted` | `deleting` | `failed` | `failing` | + `initiatingRequest` | `modifying` | `pendingAcceptance` | `pending` + | `rollingBack` | `rejected` | `rejecting`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources that have a tag with a specific key, regardless + of the tag value. + + - `transit-gateway-id` - The ID of the transit gateway. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayPeeringAttachmentsOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayPeeringAttachmentsOutput structure.""" + + transit_gateway_peering_attachments: ( + list[TransitGatewayPeeringAttachment] | None + ) = ... + """The transit gateway peering attachments.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayPolicyTablesInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayPolicyTablesInput structure.""" + + transit_gateway_policy_table_ids: list[str] | None = ... + """The IDs of the transit gateway policy tables.""" + filters: list[Filter] | None = ... + """The filters associated with the transit gateway policy table.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayPolicyTablesOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayPolicyTablesOutput structure.""" + + transit_gateway_policy_tables: list[TransitGatewayPolicyTable] | None = ... + """Describes the transit gateway policy tables.""" + next_token: str | None = ... + """The token for the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayRouteTableAnnouncementsInput(_SerdeShape): + """ + Dataclass for DescribeTransitGatewayRouteTableAnnouncementsInput + structure. + """ + + transit_gateway_route_table_announcement_ids: list[str] | None = ... + """The IDs of the transit gateway route tables that are being advertised.""" + filters: list[Filter] | None = ... + """The filters associated with the transit gateway policy table.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayRouteTableAnnouncementsOutput(_SerdeShape): + """ + Dataclass for DescribeTransitGatewayRouteTableAnnouncementsOutput + structure. + """ + + transit_gateway_route_table_announcements: ( + list[TransitGatewayRouteTableAnnouncement] | None + ) = ... + """Describes the transit gateway route table announcement.""" + next_token: str | None = ... + """The token for the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayRouteTablesInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayRouteTablesInput structure.""" + + transit_gateway_route_table_ids: list[str] | None = ... + """The IDs of the transit gateway route tables.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `default-association-route-table` - Indicates whether this is the + default association route table for the transit gateway (`true` | + `false`). + + - `default-propagation-route-table` - Indicates whether this is the + default propagation route table for the transit gateway (`true` | + `false`). + + - `state` - The state of the route table (`available` | `deleting` | + `deleted` | `pending`). + + - `transit-gateway-id` - The ID of the transit gateway. + + - `transit-gateway-route-table-id` - The ID of the transit gateway route + table. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayRouteTablesOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayRouteTablesOutput structure.""" + + transit_gateway_route_tables: list[TransitGatewayRouteTable] | None = ... + """Information about the transit gateway route tables.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewaysInput(_SerdeShape): + """Dataclass for DescribeTransitGatewaysInput structure.""" + + transit_gateway_ids: list[str] | None = ... + """The IDs of the transit gateways.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `options.propagation-default-route-table-id` - The ID of the default + propagation route table. + + - `options.amazon-side-asn` - The private ASN for the Amazon side of a + BGP session. + + - `options.association-default-route-table-id` - The ID of the default + association route table. + + - `options.auto-accept-shared-attachments` - Indicates whether there is + automatic acceptance of attachment requests (`enable` | `disable`). + + - `options.default-route-table-association` - Indicates whether resource + attachments are automatically associated with the default association + route table (`enable` | `disable`). + + - `options.default-route-table-propagation` - Indicates whether resource + attachments automatically propagate routes to the default propagation + route table (`enable` | `disable`). + + - `options.dns-support` - Indicates whether DNS support is enabled + (`enable` | `disable`). + + - `options.vpn-ecmp-support` - Indicates whether Equal Cost Multipath + Protocol support is enabled (`enable` | `disable`). + + - `owner-id` - The ID of the Amazon Web Services account that owns the + transit gateway. + + - `state` - The state of the transit gateway (`available` | `deleted` + | `deleting` | `modifying` | `pending`). + + - `transit-gateway-id` - The ID of the transit gateway. + + - `tag-key `- The key/value combination of a tag assigned to the + resource. Use the tag key in the filter name and the tag value as the + filter value. For example, to find all resources that have a tag with + the key `Owner` and the value `TeamA`, specify `tag:Owner` for the + filter name and `TeamA` for the filter value. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewaysOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewaysOutput structure.""" + + transit_gateways: list[TransitGateway] | None = ... + """Information about the transit gateways.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayVpcAttachmentsInput(_SerdeShape): + """Dataclass for DescribeTransitGatewayVpcAttachmentsInput structure.""" + + transit_gateway_attachment_ids: list[str] | None = ... + """The IDs of the attachments.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `state` - The state of the attachment. Valid values are `available` | + `deleted` | `deleting` | `failed` | `failing` | + `initiatingRequest` | `modifying` | `pendingAcceptance` | `pending` + | `rollingBack` | `rejected` | `rejecting`. + + - `transit-gateway-attachment-id` - The ID of the attachment. + + - `transit-gateway-id` - The ID of the transit gateway. + + - `vpc-id` - The ID of the VPC. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeTransitGatewayVpcAttachmentsOutput(_SerdeShape): + """Dataclass for DescribeTransitGatewayVpcAttachmentsOutput structure.""" + + transit_gateway_vpc_attachments: list[TransitGatewayVpcAttachment] | None = ... + """Information about the VPC attachments.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTrunkInterfaceAssociationsInput(_SerdeShape): + """Dataclass for DescribeTrunkInterfaceAssociationsInput structure.""" + + association_ids: list[str] | None = ... + """The IDs of the associations.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters. + + - `gre-key` - The ID of a trunk interface association. + + - `interface-protocol` - The interface protocol. Valid values are `VLAN` + and `GRE`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + +@dataclass(kw_only=True) +class DescribeTrunkInterfaceAssociationsOutput(_SerdeShape): + """Dataclass for DescribeTrunkInterfaceAssociationsOutput structure.""" + + interface_associations: list[TrunkInterfaceAssociation] | None = ... + """Information about the trunk associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessEndpointsInput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessEndpointsInput structure.""" + + verified_access_endpoint_ids: list[str] | None = ... + """The ID of the Verified Access endpoint.""" + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessEndpointsOutput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessEndpointsOutput structure.""" + + verified_access_endpoints: list[VerifiedAccessEndpoint] | None = ... + """Details about the Verified Access endpoints.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessGroupsInput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessGroupsInput structure.""" + + verified_access_group_ids: list[str] | None = ... + """The ID of the Verified Access groups.""" + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessGroupsOutput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessGroupsOutput structure.""" + + verified_access_groups: list[VerifiedAccessGroup] | None = ... + """Details about the Verified Access groups.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessInstanceLoggingConfigurationsInput(_SerdeShape): + """ + Dataclass for DescribeVerifiedAccessInstanceLoggingConfigurationsInput + structure. + """ + + verified_access_instance_ids: list[str] | None = ... + """The IDs of the Verified Access instances.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessInstanceLoggingConfigurationsOutput(_SerdeShape): + """ + Dataclass for DescribeVerifiedAccessInstanceLoggingConfigurationsOutput + structure. + """ + + logging_configurations: ( + list[VerifiedAccessInstanceLoggingConfiguration] | None + ) = ... + """The logging configuration for the Verified Access instances.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessInstancesInput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessInstancesInput structure.""" + + verified_access_instance_ids: list[str] | None = ... + """The IDs of the Verified Access instances.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessInstancesOutput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessInstancesOutput structure.""" + + verified_access_instances: list[VerifiedAccessInstance] | None = ... + """Details about the Verified Access instances.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessTrustProvidersInput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessTrustProvidersInput structure.""" + + verified_access_trust_provider_ids: list[str] | None = ... + """The IDs of the Verified Access trust providers.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters. Filter names and values are case-sensitive.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVerifiedAccessTrustProvidersOutput(_SerdeShape): + """Dataclass for DescribeVerifiedAccessTrustProvidersOutput structure.""" + + verified_access_trust_providers: list[VerifiedAccessTrustProvider] | None = ... + """Details about the Verified Access trust providers.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVolumeAttributeInput(_SerdeShape): + """Dataclass for DescribeVolumeAttributeInput structure.""" + + attribute: str | None = ... + """The attribute of the volume. This parameter is required.""" + volume_id: str | None = ... + """The ID of the volume.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVolumeAttributeOutput(_SerdeShape): + """Dataclass for DescribeVolumeAttributeOutput structure.""" + + auto_enable_io: AttributeBooleanValue | None = ... + """The state of `autoEnableIO` attribute.""" + product_codes: list[ProductCode] | None = ... + """A list of product codes.""" + volume_id: str | None = ... + """The ID of the volume.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVolumesInput(_SerdeShape): + """Dataclass for DescribeVolumesInput structure.""" + + volume_ids: list[str] | None = ... + """ + The volume IDs. If not specified, then all volumes are included in the + response. + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `attachment.attach-time` - The time stamp when the attachment + initiated. + + - `attachment.delete-on-termination` - Whether the volume is deleted on + instance termination. + + - `attachment.device` - The device name specified in the block device + mapping (for example, `/dev/sda1`). + + - `attachment.instance-id` - The ID of the instance the volume is + attached to. + + - `attachment.status` - The attachment state (`attaching` | `attached` + | `detaching`). + + - `availability-zone` - The Availability Zone in which the volume was + created. + + - `availability-zone-id` - The ID of the Availability Zone in which the + volume was created. + + - `create-time` - The time stamp when the volume was created. + + - `encrypted` - Indicates whether the volume is encrypted (`true` | + `false`) + + - `fast-restored` - Indicates whether the volume was created from a + snapshot that is enabled for fast snapshot restore (`true` | + `false`). + + - `multi-attach-enabled` - Indicates whether the volume is enabled for + Multi-Attach (`true` | `false`) + + - `operator.managed` - A Boolean that indicates whether this is a + managed volume. + + - `operator.principal` - The principal that manages the volume. Only + valid for managed volumes, where `managed` is `true`. + + - `size` - The size of the volume, in GiB. + + - `snapshot-id` - The snapshot from which the volume was created. + + - `status` - The state of the volume (`creating` | `available` | + `in-use` | `deleting` | `deleted` | `error`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `volume-id` - The volume ID. + + - `volume-type` - The Amazon EBS volume type (`gp2` | `gp3` | `io1` | + `io2` | `st1` | `sc1`| `standard`) + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeVolumesModificationsInput(_SerdeShape): + """Dataclass for DescribeVolumesModificationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + volume_ids: list[str] | None = ... + """The IDs of the volumes.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `modification-state` - The current modification state (modifying | + optimizing | completed | failed). + + - `original-iops` - The original IOPS rate of the volume. + + - `original-size` - The original size of the volume, in GiB. + + - `original-volume-type` - The original volume type of the volume + (standard | io1 | io2 | gp2 | sc1 | st1). + + - `originalMultiAttachEnabled` - Indicates whether Multi-Attach support + was enabled (true | false). + + - `start-time` - The modification start time. + + - `target-iops` - The target IOPS rate of the volume. + + - `target-size` - The target size of the volume, in GiB. + + - `target-volume-type` - The target volume type of the volume (standard + | io1 | io2 | gp2 | sc1 | st1). + + - `targetMultiAttachEnabled` - Indicates whether Multi-Attach support is + to be enabled (true | false). + + - `volume-id` - The ID of the volume. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of results (up to a limit of 500) to be returned in a + paginated request. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + +@dataclass(kw_only=True) +class DescribeVolumesModificationsOutput(_SerdeShape): + """Dataclass for DescribeVolumesModificationsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + volumes_modifications: list[VolumeModification] | None = ... + """Information about the volume modifications.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVolumesOutput(_SerdeShape): + """Dataclass for DescribeVolumesOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + volumes: list[Volume] | None = ... + """Information about the volumes.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVolumeStatusInput(_SerdeShape): + """Dataclass for DescribeVolumeStatusInput structure.""" + + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + volume_ids: list[str] | None = ... + """ + The IDs of the volumes. + + Default: Describes all your volumes. + """ + include_managed_resources: bool | None = ... + """ + Indicates whether to include managed resources in the output. If this + parameter is set to `true`, the output includes resources that are + managed by Amazon Web Services services, even if managed resource + visibility is set to hidden. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `action.code` - The action code for the event (for example, + `enable-volume-io`). + + - `action.description` - A description of the action. + + - `action.event-id` - The event ID associated with the action. + + - `availability-zone` - The Availability Zone of the instance. + + - `event.description` - A description of the event. + + - `event.event-id` - The event ID. + + - `event.event-type` - The event type (for `io-enabled`: `passed` | + `failed`; for `io-performance`: `io-performance:degraded` | + `io-performance:severely-degraded` | `io-performance:stalled`). + + - `event.not-after` - The latest end time for the event. + + - `event.not-before` - The earliest start time for the event. + + - `volume-status.details-name` - The cause for `volume-status.status` + (`io-enabled` | `io-performance`). + + - `volume-status.details-status` - The status of + `volume-status.details-name` (for `io-enabled`: `passed` | `failed`; + for `io-performance`: `normal` | `degraded` | `severely-degraded` | + `stalled`). + + - `volume-status.status` - The status of the volume (`ok` | `impaired` + | `warning` | `insufficient-data`). + """ + +@dataclass(kw_only=True) +class DescribeVolumeStatusOutput(_SerdeShape): + """Dataclass for DescribeVolumeStatusOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + volume_statuses: list[VolumeStatusItem] | None = ... + """Information about the status of the volumes.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcAttributeInput(_SerdeShape): + """Dataclass for DescribeVpcAttributeInput structure.""" + + attribute: str | None = ... + """The VPC attribute.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpcAttributeOutput(_SerdeShape): + """Dataclass for DescribeVpcAttributeOutput structure.""" + + enable_dns_hostnames: AttributeBooleanValue | None = ... + """ + Indicates whether the instances launched in the VPC get DNS hostnames. + If this attribute is `true`, instances in the VPC get DNS hostnames; + otherwise, they do not. + """ + enable_dns_support: AttributeBooleanValue | None = ... + """ + Indicates whether DNS resolution is enabled for the VPC. If this + attribute is `true`, the Amazon DNS server resolves DNS hostnames for + your instances to their corresponding IP addresses; otherwise, it does + not. + """ + enable_network_address_usage_metrics: AttributeBooleanValue | None = ... + """ + Indicates whether Network Address Usage metrics are enabled for your + VPC. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcBlockPublicAccessExclusionsInput(_SerdeShape): + """Dataclass for DescribeVpcBlockPublicAccessExclusionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + Filters for the request: + + - `resource-arn` - The Amazon Resource Name (ARN) of a exclusion. + + - `internet-gateway-exclusion-mode` - The mode of a VPC BPA exclusion. + Possible values: `allow-bidirectional | allow-egress`. + + - `state` - The state of VPC BPA. Possible values: + `create-in-progress | create-complete | update-in-progress | update-complete | delete-in-progress | deleted-complete | disable-in-progress | disable-complete` + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `tag-value`: The value of a tag assigned to the resource. Use this + filter to find all resources assigned a tag with a specific value, + regardless of the tag key. + """ + exclusion_ids: list[str] | None = ... + """IDs of exclusions.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeVpcBlockPublicAccessExclusionsOutput(_SerdeShape): + """Dataclass for DescribeVpcBlockPublicAccessExclusionsOutput structure.""" + + vpc_block_public_access_exclusions: list[VpcBlockPublicAccessExclusion] | None = ... + """Details related to the exclusions.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcBlockPublicAccessOptionsInput(_SerdeShape): + """Dataclass for DescribeVpcBlockPublicAccessOptionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpcBlockPublicAccessOptionsOutput(_SerdeShape): + """Dataclass for DescribeVpcBlockPublicAccessOptionsOutput structure.""" + + vpc_block_public_access_options: VpcBlockPublicAccessOptions | None = ... + """Details related to the options.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcClassicLinkDnsSupportInput(_SerdeShape): + """Dataclass for DescribeVpcClassicLinkDnsSupportInput structure.""" + + vpc_ids: list[str] | None = ... + """The IDs of the VPCs.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class DescribeVpcClassicLinkDnsSupportOutput(_SerdeShape): + """Dataclass for DescribeVpcClassicLinkDnsSupportOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + vpcs: list[ClassicLinkDnsSupport] | None = ... + """Information about the ClassicLink DNS support status of the VPCs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcClassicLinkInput(_SerdeShape): + """Dataclass for DescribeVpcClassicLinkInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_ids: list[str] | None = ... + """The VPCs for which you want to describe the ClassicLink status.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `is-classic-link-enabled` - Whether the VPC is enabled for ClassicLink + (`true` | `false`). + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + +@dataclass(kw_only=True) +class DescribeVpcClassicLinkOutput(_SerdeShape): + """Dataclass for DescribeVpcClassicLinkOutput structure.""" + + vpcs: list[VpcClassicLink] | None = ... + """The ClassicLink status of the VPCs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEncryptionControlsInput(_SerdeShape): + """Dataclass for DescribeVpcEncryptionControlsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """The filters to apply to the request.""" + vpc_encryption_control_ids: list[str] | None = ... + """The IDs of the VPC Encryption Control configurations to describe.""" + vpc_ids: list[str] | None = ... + """The IDs of the VPCs to describe encryption control configurations for.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + +@dataclass(kw_only=True) +class DescribeVpcEncryptionControlsOutput(_SerdeShape): + """Dataclass for DescribeVpcEncryptionControlsOutput structure.""" + + vpc_encryption_controls: list[VpcEncryptionControl] | None = ... + """Information about the VPC Encryption Control configurations.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointAssociationsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointAssociationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_endpoint_ids: list[str] | None = ... + """The IDs of the VPC endpoints.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `vpc-endpoint-id` - The ID of the VPC endpoint. + + - `associated-resource-accessibility` - The association state. When the + state is `accessible`, it returns `AVAILABLE`. When the state is + `inaccessible`, it returns `PENDING` or `FAILED`. + + - `association-id` - The ID of the VPC endpoint association. + + - `associated-resource-id` - The ID of the associated resource + configuration. + + - `service-network-arn` - The Amazon Resource Name (ARN) of the + associated service network. Only VPC endpoints of type service network + will be returned. + + - `resource-configuration-group-arn` - The Amazon Resource Name (ARN) of + the resource configuration of type GROUP. + """ + max_results: int | None = ... + """The maximum page size.""" + next_token: str | None = ... + """The pagination token.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointAssociationsOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointAssociationsOutput structure.""" + + vpc_endpoint_associations: list[VpcEndpointAssociation] | None = ... + """Details of the endpoint associations.""" + next_token: str | None = ... + """The pagination token.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointConnectionNotificationsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointConnectionNotificationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + connection_notification_id: str | None = ... + """The ID of the notification.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `connection-notification-arn` - The ARN of the SNS topic for the + notification. + + - `connection-notification-id` - The ID of the notification. + + - `connection-notification-state` - The state of the notification + (`Enabled` | `Disabled`). + + - `connection-notification-type` - The type of notification (`Topic`). + + - `service-id` - The ID of the endpoint service. + + - `vpc-endpoint-id` - The ID of the VPC endpoint. + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another request with the returned + `NextToken` value. + """ + next_token: str | None = ... + """The token to request the next page of results.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointConnectionNotificationsOutput(_SerdeShape): + """ + Dataclass for DescribeVpcEndpointConnectionNotificationsOutput + structure. + """ + + connection_notification_set: list[ConnectionNotification] | None = ... + """The notifications.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointConnectionsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointConnectionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `ip-address-type` - The IP address type (`ipv4` | `ipv6`). + + - `service-id` - The ID of the service. + + - `vpc-endpoint-owner` - The ID of the Amazon Web Services account ID + that owns the endpoint. + + - `vpc-endpoint-region` - The Region of the endpoint or `cross-region` + to find endpoints for other Regions. + + - `vpc-endpoint-state` - The state of the endpoint (`pendingAcceptance` + | `pending` | `available` | `deleting` | `deleted` | `rejected` + | `failed`). + + - `vpc-endpoint-id` - The ID of the endpoint. + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results of the initial request can be seen by + sending another request with the returned `NextToken` value. This value + can be between 5 and 1,000; if `MaxResults` is given a value larger than + 1,000, only 1,000 results are returned. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointConnectionsOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointConnectionsOutput structure.""" + + vpc_endpoint_connections: list[VpcEndpointConnection] | None = ... + """Information about the VPC endpoint connections.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointServiceConfigurationsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServiceConfigurationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_ids: list[str] | None = ... + """The IDs of the endpoint services.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `service-name` - The name of the service. + + - `service-id` - The ID of the service. + + - `service-state` - The state of the service (`Pending` | `Available` + | `Deleting` | `Deleted` | `Failed`). + + - `supported-ip-address-types` - The IP address type (`ipv4` | `ipv6`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results of the initial request can be seen by + sending another request with the returned `NextToken` value. This value + can be between 5 and 1,000; if `MaxResults` is given a value larger than + 1,000, only 1,000 results are returned. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointServiceConfigurationsOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServiceConfigurationsOutput structure.""" + + service_configurations: list[ServiceConfiguration] | None = ... + """Information about the services.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointServicePermissionsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServicePermissionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the service.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `principal` - The ARN of the principal. + + - `principal-type` - The principal type (`All` | `Service` | + `OrganizationUnit` | `Account` | `User` | `Role`). + """ + max_results: int | None = ... + """ + The maximum number of results to return for the request in a single + page. The remaining results of the initial request can be seen by + sending another request with the returned `NextToken` value. This value + can be between 5 and 1,000; if `MaxResults` is given a value larger than + 1,000, only 1,000 results are returned. + """ + next_token: str | None = ... + """The token to retrieve the next page of results.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointServicePermissionsOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServicePermissionsOutput structure.""" + + allowed_principals: list[AllowedPrincipal] | None = ... + """Information about the allowed principals.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointServicesInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServicesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_names: list[str] | None = ... + """The service names.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `owner` - The ID or alias of the Amazon Web Services account that owns + the service. + + - `service-name` - The name of the service. + + - `service-region` - The Region of the service. + + - `service-type` - The type of service (`Interface` | `Gateway` | + `GatewayLoadBalancer`). + + - `supported-ip-address-types` - The IP address type (`ipv4` | `ipv6`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. The request + returns a token that you can specify in a subsequent call to get the + next set of results. + + Constraint: If the value is greater than 1,000, we return only 1,000 + items. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a prior call.) + """ + service_regions: list[str] | None = ... + """The service Regions.""" + +@dataclass(kw_only=True) +class DescribeVpcEndpointServicesOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointServicesOutput structure.""" + + service_names: list[str] | None = ... + """The supported services.""" + service_details: list[ServiceDetail] | None = ... + """Information about the service.""" + next_token: str | None = ... + """ + The token to use when requesting the next set of items. If there are no + additional items to return, the string is empty. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointsInput(_SerdeShape): + """Dataclass for DescribeVpcEndpointsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_endpoint_ids: list[str] | None = ... + """The IDs of the VPC endpoints.""" + filters: list[Filter] | None = ... + """ + The filters. + + - `ip-address-type` - The IP address type (`ipv4` | `ipv6`). + + - `service-name` - The name of the service. + + - `service-region` - The Region of the service. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC in which the endpoint resides. + + - `vpc-endpoint-id` - The ID of the endpoint. + + - `vpc-endpoint-state` - The state of the endpoint (`pendingAcceptance` + | `pending` | `available` | `deleting` | `deleted` | `rejected` + | `failed`). + + - `vpc-endpoint-type` - The type of VPC endpoint (`Interface` | + `Gateway` | `GatewayLoadBalancer` | `Resource` | `ServiceNetwork` + | `Tunnel`). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. The request + returns a token that you can specify in a subsequent call to get the + next set of results. + + Constraint: If the value is greater than 1,000, we return only 1,000 + items. + """ + next_token: str | None = ... + """ + The token for the next set of items to return. (You received this token + from a prior call.) + """ + +@dataclass(kw_only=True) +class DescribeVpcEndpointsOutput(_SerdeShape): + """Dataclass for DescribeVpcEndpointsOutput structure.""" + + vpc_endpoints: list[VpcEndpoint] | None = ... + """Information about the VPC endpoints.""" + next_token: str | None = ... + """ + The token to use when requesting the next set of items. If there are no + additional items to return, the string is empty. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcPeeringConnectionsInput(_SerdeShape): + """Dataclass for DescribeVpcPeeringConnectionsInput structure.""" + + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_peering_connection_ids: list[str] | None = ... + """ + The IDs of the VPC peering connections. + + Default: Describes all your VPC peering connections. + """ + filters: list[Filter] | None = ... + """ + The filters. + + - `accepter-vpc-info.cidr-block` - The IPv4 CIDR block of the accepter + VPC. + + - `accepter-vpc-info.owner-id` - The ID of the Amazon Web Services + account that owns the accepter VPC. + + - `accepter-vpc-info.vpc-id` - The ID of the accepter VPC. + + - `expiration-time` - The expiration date and time for the VPC peering + connection. + + - `requester-vpc-info.cidr-block` - The IPv4 CIDR block of the + requester's VPC. + + - `requester-vpc-info.owner-id` - The ID of the Amazon Web Services + account that owns the requester VPC. + + - `requester-vpc-info.vpc-id` - The ID of the requester VPC. + + - `status-code` - The status of the VPC peering connection + (`pending-acceptance` | `failed` | `expired` | `provisioning` | + `active` | `deleting` | `deleted` | `rejected`). + + - `status-message` - A message that provides more information about the + status of the VPC peering connection, if applicable. + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-peering-connection-id` - The ID of the VPC peering connection. + """ + +@dataclass(kw_only=True) +class DescribeVpcPeeringConnectionsOutput(_SerdeShape): + """Dataclass for DescribeVpcPeeringConnectionsOutput structure.""" + + vpc_peering_connections: list[VpcPeeringConnection] | None = ... + """Information about the VPC peering connections.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpcsInput(_SerdeShape): + """Dataclass for DescribeVpcsInput structure.""" + + filters: list[Filter] | None = ... + """ + The filters. + + - `cidr` - The primary IPv4 CIDR block of the VPC. The CIDR block you + specify must exactly match the VPC's CIDR block for information to be + returned for the VPC. Must contain the slash followed by one or two + digits (for example, `/28`). + + - `cidr-block-association.cidr-block` - An IPv4 CIDR block associated + with the VPC. + + - `cidr-block-association.association-id` - The association ID for an + IPv4 CIDR block associated with the VPC. + + - `cidr-block-association.state` - The state of an IPv4 CIDR block + associated with the VPC. + + - `dhcp-options-id` - The ID of a set of DHCP options. + + - `ipv6-cidr-block-association.ipv6-cidr-block` - An IPv6 CIDR block + associated with the VPC. + + - `ipv6-cidr-block-association.ipv6-pool` - The ID of the IPv6 address + pool from which the IPv6 CIDR block is allocated. + + - `ipv6-cidr-block-association.association-id` - The association ID for + an IPv6 CIDR block associated with the VPC. + + - `ipv6-cidr-block-association.state` - The state of an IPv6 CIDR block + associated with the VPC. + + - `is-default` - Indicates whether the VPC is the default VPC. + + - `owner-id` - The ID of the Amazon Web Services account that owns the + VPC. + + - `state` - The state of the VPC (`pending` | `available`). + + - `tag` - The key/value combination of a tag assigned to the resource. + Use the tag key in the filter name and the tag value as the filter + value. For example, to find all resources that have a tag with the key + `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name + and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `vpc-id` - The ID of the VPC. + """ + vpc_ids: list[str] | None = ... + """The IDs of the VPCs.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpcsOutput(_SerdeShape): + """Dataclass for DescribeVpcsOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + vpcs: list[Vpc] | None = ... + """Information about the VPCs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpnConcentratorsInput(_SerdeShape): + """Dataclass for DescribeVpnConcentratorsInput structure.""" + + vpn_concentrator_ids: list[str] | None = ... + """One or more VPN concentrator IDs.""" + filters: list[Filter] | None = ... + """One or more filters to limit the results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpnConcentratorsOutput(_SerdeShape): + """Dataclass for DescribeVpnConcentratorsOutput structure.""" + + vpn_concentrators: list[VpnConcentrator] | None = ... + """Information about the VPN concentrators.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpnConnectionsInput(_SerdeShape): + """Contains the parameters for DescribeVpnConnections.""" + + filters: list[Filter] | None = ... + """ + One or more filters. + + - `customer-gateway-configuration` - The configuration information for + the customer gateway. + + - `customer-gateway-id` - The ID of a customer gateway associated with + the VPN connection. + + - `state` - The state of the VPN connection (`pending` | `available` | + `deleting` | `deleted`). + + - `option.static-routes-only` - Indicates whether the connection has + static routes only. Used for devices that do not support Border + Gateway Protocol (BGP). + + - `route.destination-cidr-block` - The destination CIDR block. This + corresponds to the subnet used in a customer data center. + + - `bgp-asn` - The BGP Autonomous System Number (ASN) associated with a + BGP device. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `type` - The type of VPN connection. Currently the only supported type + is `ipsec.1`. + + - `vpn-connection-id` - The ID of the VPN connection. + + - `vpn-gateway-id` - The ID of a virtual private gateway associated with + the VPN connection. + + - `transit-gateway-id` - The ID of a transit gateway associated with the + VPN connection. + """ + vpn_connection_ids: list[str] | None = ... + """ + One or more VPN connection IDs. + + Default: Describes your VPN connections. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpnConnectionsOutput(_SerdeShape): + """Contains the output of DescribeVpnConnections.""" + + vpn_connections: list[VpnConnection] | None = ... + """Information about one or more VPN connections.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeVpnGatewaysInput(_SerdeShape): + """Contains the parameters for DescribeVpnGateways.""" + + filters: list[Filter] | None = ... + """ + One or more filters. + + - `amazon-side-asn` - The Autonomous System Number (ASN) for the Amazon + side of the gateway. + + - `attachment.state` - The current state of the attachment between the + gateway and the VPC (`attaching` | `attached` | `detaching` | + `detached`). + + - `attachment.vpc-id` - The ID of an attached VPC. + + - `availability-zone` - The Availability Zone for the virtual private + gateway (if applicable). + + - `state` - The state of the virtual private gateway (`pending` | + `available` | `deleting` | `deleted`). + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + + - `type` - The type of virtual private gateway. Currently the only + supported type is `ipsec.1`. + + - `vpn-gateway-id` - The ID of the virtual private gateway. + """ + vpn_gateway_ids: list[str] | None = ... + """ + One or more virtual private gateway IDs. + + Default: Describes all your virtual private gateways. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DescribeVpnGatewaysOutput(_SerdeShape): + """Contains the output of DescribeVpnGateways.""" + + vpn_gateways: list[VpnGateway] | None = ... + """Information about one or more virtual private gateways.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DestinationFileFormat(UnknownEnumMixin, StrEnum): + PLAIN_TEXT = "plain-text" + PARQUET = "parquet" + +@dataclass(kw_only=True) +class DestinationOptionsRequest(_SerdeShape): + """Describes the destination options for a flow log.""" + + file_format: str | None = ... + """The format for the flow log. The default is `plain-text`.""" + hive_compatible_partitions: bool | None = ... + """ + Indicates whether to use Hive-compatible prefixes for flow logs stored + in Amazon S3. The default is `false`. + """ + per_hour_partition: bool | None = ... + """ + Indicates whether to partition the flow log per hour. This reduces the + cost and response time for queries. The default is `false`. + """ + +@dataclass(kw_only=True) +class DestinationOptionsResponse(_SerdeShape): + """Describes the destination options for a flow log.""" + + file_format: str | None = ... + """The format for the flow log.""" + hive_compatible_partitions: bool | None = ... + """ + Indicates whether to use Hive-compatible prefixes for flow logs stored + in Amazon S3. + """ + per_hour_partition: bool | None = ... + """Indicates whether to partition the flow log per hour.""" + +@dataclass(kw_only=True) +class DetachClassicLinkVpcInput(_SerdeShape): + """Dataclass for DetachClassicLinkVpcInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance to unlink from the VPC.""" + vpc_id: str | None = ... + """The ID of the VPC to which the instance is linked.""" + +@dataclass(kw_only=True) +class DetachClassicLinkVpcOutput(_SerdeShape): + """Dataclass for DetachClassicLinkVpcOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachImageWatermarkInput(_SerdeShape): + """Dataclass for DetachImageWatermarkInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + watermark_key: str | None = ... + """ + The watermark key to remove, in `accountId:watermarkName` format (for + example, `123456789012:approvedAmi`). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DetachImageWatermarkOutput(_SerdeShape): + """Dataclass for DetachImageWatermarkOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachInternetGatewayInput(_SerdeShape): + """Dataclass for DetachInternetGatewayInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + internet_gateway_id: str | None = ... + """The ID of the internet gateway.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class DetachInternetGatewayOutput(_SerdeShape): + """Dataclass for DetachInternetGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachNetworkInterfaceInput(_SerdeShape): + """Contains the parameters for DetachNetworkInterface.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + attachment_id: str | None = ... + """The ID of the attachment.""" + force: bool | None = ... + """ + Specifies whether to force a detachment. + + Note: + - Use the `Force` parameter only as a last resort to detach a network + interface from a failed instance. + + - If you use the `Force` parameter to detach a network interface, you + might not be able to attach a different network interface to the same + index on the instance without first stopping and starting the + instance. + + - If you force the detachment of a network interface, the [instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + might not get updated. This means that the attributes associated with + the detached network interface might still be visible. The instance + metadata will get updated when you stop and start the instance. + """ + +@dataclass(kw_only=True) +class DetachNetworkInterfaceOutput(_SerdeShape): + """Dataclass for DetachNetworkInterfaceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachVerifiedAccessTrustProviderInput(_SerdeShape): + """Dataclass for DetachVerifiedAccessTrustProviderInput structure.""" + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + verified_access_trust_provider_id: str | None = ... + """The ID of the Verified Access trust provider.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DetachVerifiedAccessTrustProviderOutput(_SerdeShape): + """Dataclass for DetachVerifiedAccessTrustProviderOutput structure.""" + + verified_access_trust_provider: VerifiedAccessTrustProvider | None = ... + """Details about the Verified Access trust provider.""" + verified_access_instance: VerifiedAccessInstance | None = ... + """Details about the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachVolumeInput(_SerdeShape): + """Dataclass for DetachVolumeInput structure.""" + + device: str | None = ... + """The device name.""" + force: bool | None = ... + """ + Forces detachment if the previous detachment attempt did not occur + cleanly (for example, logging into an instance, unmounting the volume, + and detaching normally). This option can lead to data loss or a + corrupted file system. Use this option only as a last resort to detach a + volume from a failed instance. The instance won't have an opportunity + to flush file system caches or file system metadata. If you use this + option, you must perform file system check and repair procedures. + """ + instance_id: str | None = ... + """ + The ID of the instance. If you are detaching a Multi-Attach enabled + volume, you must specify an instance ID. + """ + volume_id: str | None = ... + """The ID of the volume.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DetachVolumeOutput(_SerdeShape): + """Describes volume attachment details.""" + + delete_on_termination: bool | None = ... + """Indicates whether the EBS volume is deleted on instance termination.""" + associated_resource: str | None = ... + """ + The ARN of the Amazon Web Services-managed resource to which the volume + is attached. + """ + instance_owning_service: str | None = ... + """ + The service principal of the Amazon Web Services service that owns the + underlying resource to which the volume is attached. + + This parameter is returned only for volumes that are attached to Amazon + Web Services-managed resources. + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + volume_id: str | None = ... + """The ID of the volume.""" + instance_id: str | None = ... + """ + The ID of the instance. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + device: str | None = ... + """ + The device name. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + state: str | None = ... + """The attachment state of the volume.""" + attach_time: datetime | None = ... + """The time stamp when the attachment initiated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachVpnGatewayInput(_SerdeShape): + """Contains the parameters for DetachVpnGateway.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + vpn_gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DetachVpnGatewayOutput(_SerdeShape): + """Dataclass for DetachVpnGatewayOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeviceOptions(_SerdeShape): + """ + Describes the options for an Amazon Web Services Verified Access + device-identity based trust provider. + """ + + tenant_id: str | None = ... + """The ID of the tenant application with the device-identity provider.""" + public_signing_key_url: str | None = ... + """ + The URL Amazon Web Services Verified Access will use to verify the + authenticity of the device tokens. + """ + +@dataclass(kw_only=True) +class DevicePostureOptions(_SerdeShape): + """ + Describes the device posture options for a Client VPN endpoint. Device + posture options specify the device trust providers that the endpoint + uses to evaluate the security posture of connecting devices. + """ + + trust_providers: list[ClientVpnTrustProviderRequest] | None = ... + """The device trust providers to configure for the Client VPN endpoint.""" + enabled: bool | None = ... + """ + Indicates whether device posture evaluation is enabled for the Client + VPN endpoint. Specify `false` to disable device posture, which clears + the configured device trust providers. + """ + +@dataclass(kw_only=True) +class DevicePostureResponseOptions(_SerdeShape): + """Information about the device posture options for a Client VPN endpoint.""" + + trust_providers: list[ClientVpnTrustProvider] | None = ... + """The device trust providers configured for the Client VPN endpoint.""" + +class DeviceTrustProviderType(UnknownEnumMixin, StrEnum): + JAMF = "jamf" + CROWDSTRIKE = "crowdstrike" + JUMPCLOUD = "jumpcloud" + +class DeviceType(UnknownEnumMixin, StrEnum): + EBS = "ebs" + INSTANCE_STORE = "instance-store" + +@dataclass(kw_only=True) +class DhcpConfiguration(_SerdeShape): + """Describes a DHCP configuration option.""" + + key: str | None = ... + """The name of a DHCP option.""" + values: list[AttributeValue] | None = ... + """The values for the DHCP option.""" + +@dataclass(kw_only=True) +class DhcpOptions(_SerdeShape): + """The set of DHCP options.""" + + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the DHCP options + set. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the DHCP options set.""" + dhcp_options_id: str | None = ... + """The ID of the set of DHCP options.""" + dhcp_configurations: list[DhcpConfiguration] | None = ... + """The DHCP options in the set.""" + +@dataclass(kw_only=True) +class DimensionCondition(_SerdeShape): + """ + Specifies a condition for filtering capacity data based on dimension + values. Used to create precise filters for metric queries and dimension + lookups. + """ + + dimension: str | None = ... + """The name of the dimension to filter by.""" + comparison: str | None = ... + """The comparison operator to use for the filter.""" + values: list[str] | None = ... + """ + The list of values to match against the specified dimension. For + 'equals' comparison, only the first value is used. For 'in' + comparison, any matching value will satisfy the condition. + """ + +@dataclass(kw_only=True) +class DirectoryServiceAuthentication(_SerdeShape): + """Describes an Active Directory.""" + + directory_id: str | None = ... + """The ID of the Active Directory used for authentication.""" + +@dataclass(kw_only=True) +class DirectoryServiceAuthenticationRequest(_SerdeShape): + """Describes the Active Directory to be used for client authentication.""" + + directory_id: str | None = ... + """The ID of the Active Directory to be used for authentication.""" + +@dataclass(kw_only=True) +class DisableAddressTransferInput(_SerdeShape): + """Dataclass for DisableAddressTransferInput structure.""" + + allocation_id: str | None = ... + """The allocation ID of an Elastic IP address.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableAddressTransferOutput(_SerdeShape): + """Dataclass for DisableAddressTransferOutput structure.""" + + address_transfer: AddressTransfer | None = ... + """An Elastic IP address transfer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableAllowedImagesSettingsInput(_SerdeShape): + """Dataclass for DisableAllowedImagesSettingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableAllowedImagesSettingsOutput(_SerdeShape): + """Dataclass for DisableAllowedImagesSettingsOutput structure.""" + + allowed_images_settings_state: str | None = ... + """ + Returns `disabled` if the request succeeds; otherwise, it returns an + error. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableApplicationStatusCheckSuppressionInput(_SerdeShape): + """Dataclass for DisableApplicationStatusCheckSuppressionInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the instances for which to disable application status check + suppression. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableApplicationStatusCheckSuppressionOutput(_SerdeShape): + """Dataclass for DisableApplicationStatusCheckSuppressionOutput structure.""" + + successful_results: list[SuccessfulSuppressionResponseObject] | None = ... + """The instances for which suppression was successfully disabled.""" + unsuccessful_results: list[UnsuccessfulSuppressionResponseObject] | None = ... + """The instances for which suppression failed to be disabled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableAwsNetworkPerformanceMetricSubscriptionInput(_SerdeShape): + """ + Dataclass for DisableAwsNetworkPerformanceMetricSubscriptionInput + structure. + """ + + source: str | None = ... + """ + The source Region or Availability Zone that the metric subscription is + disabled for. For example, `us-east-1`. + """ + destination: str | None = ... + """ + The target Region or Availability Zone that the metric subscription is + disabled for. For example, `eu-north-1`. + """ + metric: str | None = ... + """The metric used for the disabled subscription.""" + statistic: str | None = ... + """The statistic used for the disabled subscription.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableAwsNetworkPerformanceMetricSubscriptionOutput(_SerdeShape): + """ + Dataclass for DisableAwsNetworkPerformanceMetricSubscriptionOutput + structure. + """ + + output: bool | None = ... + """Indicates whether the unsubscribe action was successful.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableCapacityManagerInput(_SerdeShape): + """Dataclass for DisableCapacityManagerInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + +@dataclass(kw_only=True) +class DisableCapacityManagerOutput(_SerdeShape): + """Dataclass for DisableCapacityManagerOutput structure.""" + + capacity_manager_status: str | None = ... + """The current status of Capacity Manager after the disable operation.""" + organizations_access: bool | None = ... + """ + Indicates whether Organizations access is enabled. This will be `false` + after disabling Capacity Manager. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableEbsEncryptionByDefaultInput(_SerdeShape): + """Dataclass for DisableEbsEncryptionByDefaultInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableEbsEncryptionByDefaultOutput(_SerdeShape): + """Dataclass for DisableEbsEncryptionByDefaultOutput structure.""" + + ebs_encryption_by_default: bool | None = ... + """The updated status of encryption by default.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableFastLaunchInput(_SerdeShape): + """Dataclass for DisableFastLaunchInput structure.""" + + image_id: str | None = ... + """Specify the ID of the image for which to disable Windows fast launch.""" + force: bool | None = ... + """ + Forces the image settings to turn off Windows fast launch for your + Windows AMI. This parameter overrides any errors that are encountered + while cleaning up resources in your account. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableFastLaunchOutput(_SerdeShape): + """Dataclass for DisableFastLaunchOutput structure.""" + + image_id: str | None = ... + """The ID of the image for which Windows fast launch was disabled.""" + resource_type: str | None = ... + """ + The pre-provisioning resource type that must be cleaned after turning + off Windows fast launch for the Windows AMI. Supported values include: + `snapshot`. + """ + snapshot_configuration: FastLaunchSnapshotConfigurationResponse | None = ... + """ + Parameters that were used for Windows fast launch for the Windows AMI + before Windows fast launch was disabled. This informs the clean-up + process. + """ + launch_template: FastLaunchLaunchTemplateSpecificationResponse | None = ... + """ + The launch template that was used to launch Windows instances from + pre-provisioned snapshots. + """ + max_parallel_launches: int | None = ... + """ + The maximum number of instances that Amazon EC2 can launch at the same + time to create pre-provisioned snapshots for Windows fast launch. + """ + owner_id: str | None = ... + """The owner of the Windows AMI for which Windows fast launch was disabled.""" + state: str | None = ... + """The current state of Windows fast launch for the specified Windows AMI.""" + state_transition_reason: str | None = ... + """ + The reason that the state changed for Windows fast launch for the + Windows AMI. + """ + state_transition_time: datetime | None = ... + """ + The time that the state changed for Windows fast launch for the Windows + AMI. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoreErrorItem(_SerdeShape): + """ + Contains information about the errors that occurred when disabling fast + snapshot restores. + """ + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + fast_snapshot_restore_state_errors: ( + list[DisableFastSnapshotRestoreStateErrorItem] | None + ) = ... + """The errors.""" + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoresInput(_SerdeShape): + """Dataclass for DisableFastSnapshotRestoresInput structure.""" + + availability_zones: list[str] | None = ... + """ + One or more Availability Zones. For example, `us-east-2a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + availability_zone_ids: list[str] | None = ... + """ + One or more Availability Zone IDs. For example, `use2-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + source_snapshot_ids: list[str] | None = ... + """The IDs of one or more snapshots. For example, `snap-1234567890abcdef0`.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoresOutput(_SerdeShape): + """Dataclass for DisableFastSnapshotRestoresOutput structure.""" + + successful: list[DisableFastSnapshotRestoreSuccessItem] | None = ... + """ + Information about the snapshots for which fast snapshot restores were + successfully disabled. + """ + unsuccessful: list[DisableFastSnapshotRestoreErrorItem] | None = ... + """ + Information about the snapshots for which fast snapshot restores could + not be disabled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoreStateError(_SerdeShape): + """Describes an error that occurred when disabling fast snapshot restores.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message.""" + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoreStateErrorItem(_SerdeShape): + """ + Contains information about an error that occurred when disabling fast + snapshot restores. + """ + + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + error: DisableFastSnapshotRestoreStateError | None = ... + """The error.""" + +@dataclass(kw_only=True) +class DisableFastSnapshotRestoreSuccessItem(_SerdeShape): + """Describes fast snapshot restores that were successfully disabled.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + state: str | None = ... + """The state of fast snapshot restores for the snapshot.""" + state_transition_reason: str | None = ... + """ + The reason for the state transition. The possible values are as follows: + + - `Client.UserInitiated` - The state successfully transitioned to + `enabling` or `disabling`. + + - `Client.UserInitiated - Lifecycle state transition` - The state + successfully transitioned to `optimizing`, `enabled`, or `disabled`. + """ + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that enabled fast snapshot + restores on the snapshot. + """ + owner_alias: str | None = ... + """ + The Amazon Web Services owner alias that enabled fast snapshot restores + on the snapshot. This is intended for future use. + """ + enabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabling` state.""" + optimizing_time: datetime | None = ... + """The time at which fast snapshot restores entered the `optimizing` state.""" + enabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabled` state.""" + disabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabling` state.""" + disabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabled` state.""" + +@dataclass(kw_only=True) +class DisableImageBlockPublicAccessInput(_SerdeShape): + """Dataclass for DisableImageBlockPublicAccessInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableImageBlockPublicAccessOutput(_SerdeShape): + """Dataclass for DisableImageBlockPublicAccessOutput structure.""" + + image_block_public_access_state: str | None = ... + """ + Returns `unblocked` if the request succeeds; otherwise, it returns an + error. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableImageDeprecationInput(_SerdeShape): + """Dataclass for DisableImageDeprecationInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableImageDeprecationOutput(_SerdeShape): + """Dataclass for DisableImageDeprecationOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableImageDeregistrationProtectionInput(_SerdeShape): + """Dataclass for DisableImageDeregistrationProtectionInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableImageDeregistrationProtectionOutput(_SerdeShape): + """Dataclass for DisableImageDeregistrationProtectionOutput structure.""" + + return_: str | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableImageInput(_SerdeShape): + """Dataclass for DisableImageInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableImageOutput(_SerdeShape): + """Dataclass for DisableImageOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableInstanceSqlHaStandbyDetectionsInput(_SerdeShape): + """Dataclass for DisableInstanceSqlHaStandbyDetectionsInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the instances to disable from SQL Server High Availability + standby detection monitoring. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableInstanceSqlHaStandbyDetectionsOutput(_SerdeShape): + """Dataclass for DisableInstanceSqlHaStandbyDetectionsOutput structure.""" + + instances: list[RegisteredInstance] | None = ... + """ + Information about the instances that were disabled from SQL Server High + Availability standby detection monitoring. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableIpamOrganizationAdminAccountInput(_SerdeShape): + """Dataclass for DisableIpamOrganizationAdminAccountInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + delegated_admin_account_id: str | None = ... + """ + The Organizations member account ID that you want to disable as IPAM + account. + """ + +@dataclass(kw_only=True) +class DisableIpamOrganizationAdminAccountOutput(_SerdeShape): + """Dataclass for DisableIpamOrganizationAdminAccountOutput structure.""" + + success: bool | None = ... + """The result of disabling the IPAM account.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableIpamPolicyInput(_SerdeShape): + """Dataclass for DisableIpamPolicyInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_policy_id: str | None = ... + """The ID of the IPAM policy to disable.""" + organization_target_id: str | None = ... + """ + The ID of the Amazon Web Services Organizations target for which to + disable the IPAM policy. This parameter is required only when IPAM is + integrated with Amazon Web Services Organizations. When IPAM is not + integrated with Amazon Web Services Organizations, omit this parameter + and the policy will be disabled for the current account. + + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + """ + +@dataclass(kw_only=True) +class DisableIpamPolicyOutput(_SerdeShape): + """Dataclass for DisableIpamPolicyOutput structure.""" + + return_: bool | None = ... + """Returns true if the IPAM policy was successfully disabled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableRouteServerPropagationInput(_SerdeShape): + """Dataclass for DisableRouteServerPropagationInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to disable propagation.""" + route_table_id: str | None = ... + """The ID of the route table for which to disable route server propagation.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableRouteServerPropagationOutput(_SerdeShape): + """Dataclass for DisableRouteServerPropagationOutput structure.""" + + route_server_propagation: RouteServerPropagation | None = ... + """Information about the disabled route server propagation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableSerialConsoleAccessInput(_SerdeShape): + """Dataclass for DisableSerialConsoleAccessInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableSerialConsoleAccessOutput(_SerdeShape): + """Dataclass for DisableSerialConsoleAccessOutput structure.""" + + serial_console_access_enabled: bool | None = ... + """ + If `true`, access to the EC2 serial console of all instances is enabled + for your account. If `false`, access to the EC2 serial console of all + instances is disabled for your account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableSnapshotBlockPublicAccessInput(_SerdeShape): + """Dataclass for DisableSnapshotBlockPublicAccessInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableSnapshotBlockPublicAccessOutput(_SerdeShape): + """Dataclass for DisableSnapshotBlockPublicAccessOutput structure.""" + + state: str | None = ... + """Returns `unblocked` if the request succeeds.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableTransitGatewayRouteTablePropagationInput(_SerdeShape): + """Dataclass for DisableTransitGatewayRouteTablePropagationInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the propagation route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the route table announcement.""" + +@dataclass(kw_only=True) +class DisableTransitGatewayRouteTablePropagationOutput(_SerdeShape): + """ + Dataclass for DisableTransitGatewayRouteTablePropagationOutput + structure. + """ + + propagation: TransitGatewayPropagation | None = ... + """Information about route propagation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableVgwRoutePropagationInput(_SerdeShape): + """Contains the parameters for DisableVgwRoutePropagation.""" + + gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + route_table_id: str | None = ... + """The ID of the route table.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisableVgwRoutePropagationOutput(_SerdeShape): + """Dataclass for DisableVgwRoutePropagationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableVpcClassicLinkDnsSupportInput(_SerdeShape): + """Dataclass for DisableVpcClassicLinkDnsSupportInput structure.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class DisableVpcClassicLinkDnsSupportOutput(_SerdeShape): + """Dataclass for DisableVpcClassicLinkDnsSupportOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableVpcClassicLinkInput(_SerdeShape): + """Dataclass for DisableVpcClassicLinkInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class DisableVpcClassicLinkOutput(_SerdeShape): + """Dataclass for DisableVpcClassicLinkOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateAddressInput(_SerdeShape): + """Dataclass for DisassociateAddressInput structure.""" + + association_id: str | None = ... + """The association ID. This parameter is required.""" + public_ip: str | None = ... + """Deprecated.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateAddressOutput(_SerdeShape): + """Dataclass for DisassociateAddressOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateApplicationStatusCheckInput(_SerdeShape): + """Dataclass for DisassociateApplicationStatusCheckInput structure.""" + + application_status_check_id: str | None = ... + """The ID of the application status check to disassociate.""" + target_tag_associations: list[CustomTagKeyValueRequestPair] | None = ... + """ + The + [tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) + to disassociate from the application status check. Specify the same + key-value pairs that were used during association. + """ + instance_ids: list[str] | None = ... + """ + The IDs of the instances to disassociate from the application status + check. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateApplicationStatusCheckOutput(_SerdeShape): + """Dataclass for DisassociateApplicationStatusCheckOutput structure.""" + + successful_results: list[SuccessfulAssociationResponseObject] | None = ... + """The associations that were successfully removed.""" + unsuccessful_results: list[UnsuccessfulAssociationResponseObject] | None = ... + """The associations that failed to be removed.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateCapacityReservationBillingOwnerInput(_SerdeShape): + """ + Dataclass for DisassociateCapacityReservationBillingOwnerInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + unused_reservation_billing_owner_id: str | None = ... + """The ID of the consumer account to which the request was sent.""" + +@dataclass(kw_only=True) +class DisassociateCapacityReservationBillingOwnerOutput(_SerdeShape): + """ + Dataclass for DisassociateCapacityReservationBillingOwnerOutput + structure. + """ + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateClientVpnTargetNetworkInput(_SerdeShape): + """Dataclass for DisassociateClientVpnTargetNetworkInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """ + The ID of the Client VPN endpoint from which to disassociate the target + network. + """ + association_id: str | None = ... + """The ID of the target network association.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateClientVpnTargetNetworkOutput(_SerdeShape): + """Dataclass for DisassociateClientVpnTargetNetworkOutput structure.""" + + association_id: str | None = ... + """The ID of the target network association.""" + status: AssociationStatus | None = ... + """The current state of the target network association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateEnclaveCertificateIamRoleInput(_SerdeShape): + """Dataclass for DisassociateEnclaveCertificateIamRoleInput structure.""" + + certificate_arn: str | None = ... + """The ARN of the ACM certificate from which to disassociate the IAM role.""" + role_arn: str | None = ... + """The ARN of the IAM role to disassociate.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateEnclaveCertificateIamRoleOutput(_SerdeShape): + """Dataclass for DisassociateEnclaveCertificateIamRoleOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateIamInstanceProfileInput(_SerdeShape): + """Dataclass for DisassociateIamInstanceProfileInput structure.""" + + association_id: str | None = ... + """The ID of the IAM instance profile association.""" + +@dataclass(kw_only=True) +class DisassociateIamInstanceProfileOutput(_SerdeShape): + """Dataclass for DisassociateIamInstanceProfileOutput structure.""" + + iam_instance_profile_association: IamInstanceProfileAssociation | None = ... + """Information about the IAM instance profile association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateInstanceEventWindowInput(_SerdeShape): + """Dataclass for DisassociateInstanceEventWindowInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_event_window_id: str | None = ... + """The ID of the event window.""" + association_target: InstanceEventWindowDisassociationRequest | None = ... + """One or more targets to disassociate from the specified event window.""" + +@dataclass(kw_only=True) +class DisassociateInstanceEventWindowOutput(_SerdeShape): + """Dataclass for DisassociateInstanceEventWindowOutput structure.""" + + instance_event_window: InstanceEventWindow | None = ... + """Information about the event window.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateIpamByoasnInput(_SerdeShape): + """Dataclass for DisassociateIpamByoasnInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + asn: str | None = ... + """A public 2-byte or 4-byte ASN.""" + cidr: str | None = ... + """A BYOIP CIDR.""" + +@dataclass(kw_only=True) +class DisassociateIpamByoasnOutput(_SerdeShape): + """Dataclass for DisassociateIpamByoasnOutput structure.""" + + asn_association: AsnAssociation | None = ... + """An ASN and BYOIP CIDR association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateIpamResourceDiscoveryInput(_SerdeShape): + """Dataclass for DisassociateIpamResourceDiscoveryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_association_id: str | None = ... + """A resource discovery association ID.""" + +@dataclass(kw_only=True) +class DisassociateIpamResourceDiscoveryOutput(_SerdeShape): + """Dataclass for DisassociateIpamResourceDiscoveryOutput structure.""" + + ipam_resource_discovery_association: IpamResourceDiscoveryAssociation | None = ... + """A resource discovery association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateNatGatewayAddressInput(_SerdeShape): + """Dataclass for DisassociateNatGatewayAddressInput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + association_ids: list[str] | None = ... + """ + The association IDs of EIPs that have been associated with the NAT + gateway. + """ + max_drain_duration_seconds: int | None = ... + """ + The maximum amount of time to wait (in seconds) before forcibly + releasing the IP addresses if connections are still in progress. Default + value is 350 seconds. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateNatGatewayAddressOutput(_SerdeShape): + """Dataclass for DisassociateNatGatewayAddressOutput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + nat_gateway_addresses: list[NatGatewayAddress] | None = ... + """Information about the NAT gateway IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateRouteServerInput(_SerdeShape): + """Dataclass for DisassociateRouteServerInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server to disassociate.""" + vpc_id: str | None = ... + """The ID of the VPC to disassociate from the route server.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateRouteServerOutput(_SerdeShape): + """Dataclass for DisassociateRouteServerOutput structure.""" + + route_server_association: RouteServerAssociation | None = ... + """Information about the disassociated route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateRouteTableInput(_SerdeShape): + """Dataclass for DisassociateRouteTableInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + association_id: str | None = ... + """ + The association ID representing the current association between the + route table and subnet or gateway. + """ + +@dataclass(kw_only=True) +class DisassociateRouteTableOutput(_SerdeShape): + """Dataclass for DisassociateRouteTableOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateSecurityGroupVpcInput(_SerdeShape): + """Dataclass for DisassociateSecurityGroupVpcInput structure.""" + + group_id: str | None = ... + """A security group ID.""" + vpc_id: str | None = ... + """A VPC ID.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateSecurityGroupVpcOutput(_SerdeShape): + """Dataclass for DisassociateSecurityGroupVpcOutput structure.""" + + state: str | None = ... + """The state of the disassociation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateSubnetCidrBlockInput(_SerdeShape): + """Dataclass for DisassociateSubnetCidrBlockInput structure.""" + + association_id: str | None = ... + """The association ID for the CIDR block.""" + +@dataclass(kw_only=True) +class DisassociateSubnetCidrBlockOutput(_SerdeShape): + """Dataclass for DisassociateSubnetCidrBlockOutput structure.""" + + ipv6_cidr_block_association: SubnetIpv6CidrBlockAssociation | None = ... + """Information about the IPv6 CIDR block association.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayMulticastDomainInput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayMulticastDomainInput structure.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + subnet_ids: list[str] | None = ... + """The IDs of the subnets;""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayMulticastDomainOutput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayMulticastDomainOutput structure.""" + + associations: TransitGatewayMulticastDomainAssociations | None = ... + """Information about the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayPolicyTableInput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayPolicyTableInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the disassociated policy table.""" + transit_gateway_attachment_id: str | None = ... + """ + The ID of the transit gateway attachment to disassociate from the policy + table. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayPolicyTableOutput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayPolicyTableOutput structure.""" + + association: TransitGatewayPolicyTableAssociation | None = ... + """Returns details about the transit gateway policy table disassociation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayRouteTableInput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayRouteTableInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateTransitGatewayRouteTableOutput(_SerdeShape): + """Dataclass for DisassociateTransitGatewayRouteTableOutput structure.""" + + association: TransitGatewayAssociation | None = ... + """Information about the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateTrunkInterfaceInput(_SerdeShape): + """Dataclass for DisassociateTrunkInterfaceInput structure.""" + + association_id: str | None = ... + """The ID of the association""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class DisassociateTrunkInterfaceOutput(_SerdeShape): + """Dataclass for DisassociateTrunkInterfaceOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds and an error otherwise.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisassociateVpcCidrBlockInput(_SerdeShape): + """Dataclass for DisassociateVpcCidrBlockInput structure.""" + + association_id: str | None = ... + """The association ID for the CIDR block.""" + +@dataclass(kw_only=True) +class DisassociateVpcCidrBlockOutput(_SerdeShape): + """Dataclass for DisassociateVpcCidrBlockOutput structure.""" + + ipv6_cidr_block_association: VpcIpv6CidrBlockAssociation | None = ... + """Information about the IPv6 CIDR block association.""" + cidr_block_association: VpcCidrBlockAssociation | None = ... + """Information about the IPv4 CIDR block association.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DiskImage(_SerdeShape): + """Describes a disk image.""" + + description: str | None = ... + """A description of the disk image.""" + image: DiskImageDetail | None = ... + """Information about the disk image.""" + volume: VolumeDetail | None = ... + """Information about the volume.""" + +@dataclass(kw_only=True) +class DiskImageDescription(_SerdeShape): + """Describes a disk image.""" + + checksum: str | None = ... + """The checksum computed for the disk image.""" + format: str | None = ... + """The disk image format.""" + import_manifest_url: str | None = ... + """ + A presigned URL for the import manifest stored in Amazon S3. For + information about creating a presigned URL for an Amazon S3 object, read + the \"Query String Request Authentication Alternative\" section of the + [Authenticating REST + Requests](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) + topic in the *Amazon Simple Storage Service Developer Guide*. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + """ + size: int | None = ... + """The size of the disk image, in GiB.""" + +@dataclass(kw_only=True) +class DiskImageDetail(_SerdeShape): + """Describes a disk image.""" + + format: str | None = ... + """The disk image format.""" + bytes_: int | None = ... + """The size of the disk image, in GiB.""" + import_manifest_url: str | None = ... + """ + A presigned URL for the import manifest stored in Amazon S3 and + presented here as an Amazon S3 presigned URL. For information about + creating a presigned URL for an Amazon S3 object, read the \"Query + String Request Authentication Alternative\" section of the + [Authenticating REST + Requests](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) + topic in the *Amazon Simple Storage Service Developer Guide*. + + For information about the import manifest referenced by this API action, + see [VM Import + Manifest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html). + """ + +class DiskImageFormat(UnknownEnumMixin, StrEnum): + VMDK = "VMDK" + RAW = "RAW" + VHD = "VHD" + +@dataclass(kw_only=True) +class DiskImageVolumeDescription(_SerdeShape): + """Describes a disk image volume.""" + + id: str | None = ... + """The volume identifier.""" + size: int | None = ... + """The size of the volume, in GiB.""" + +@dataclass(kw_only=True) +class DiskInfo(_SerdeShape): + """Describes a disk.""" + + size_in_gb: int | None = ... + """The size of the disk in GB.""" + count: int | None = ... + """The number of disks with this configuration.""" + type: str | None = ... + """The type of disk.""" + +class DiskType(UnknownEnumMixin, StrEnum): + HDD = "hdd" + SSD = "ssd" + +@dataclass(kw_only=True) +class DnsEntry(_SerdeShape): + """Describes a DNS entry.""" + + dns_name: str | None = ... + """The DNS name.""" + hosted_zone_id: str | None = ... + """The ID of the private hosted zone.""" + +class DnsNameState(UnknownEnumMixin, StrEnum): + PENDING_VERIFICATION = "pendingVerification" + VERIFIED = "verified" + FAILED = "failed" + +@dataclass(kw_only=True) +class DnsOptions(_SerdeShape): + """Describes the DNS options for an endpoint.""" + + dns_record_ip_type: str | None = ... + """The DNS records created for the endpoint.""" + private_dns_only_for_inbound_resolver_endpoint: bool | None = ... + """Indicates whether to enable private DNS only for inbound endpoints.""" + private_dns_preference: str | None = ... + """ + The preference for which private domains have a private hosted zone + created for and associated with the specified VPC. Only supported when + private DNS is enabled and when the VPC endpoint type is ServiceNetwork + or Resource. + + - `ALL_DOMAINS` - VPC Lattice provisions private hosted zones for all + custom domain names. + + - `VERIFIED_DOMAINS_ONLY` - VPC Lattice provisions a private hosted zone + only if custom domain name has been verified by the provider. + + - `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS` - VPC Lattice provisions + private hosted zones for all verified custom domain names and other + domain names that the resource consumer specifies. The resource + consumer specifies the domain names in the PrivateDnsSpecifiedDomains + parameter. + + - `SPECIFIED_DOMAINS_ONLY` - VPC Lattice provisions a private hosted + zone for domain names specified by the resource consumer. The resource + consumer specifies the domain names in the PrivateDnsSpecifiedDomains + parameter. + """ + private_dns_specified_domains: list[str] | None = ... + """ + Indicates which of the private domains to create private hosted zones + for and associate with the specified VPC. Only supported when private + DNS is enabled and the private DNS preference is + `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS` or `SPECIFIED_DOMAINS_ONLY`. + """ + +@dataclass(kw_only=True) +class DnsOptionsSpecification(_SerdeShape): + """Describes the DNS options for an endpoint.""" + + dns_record_ip_type: str | None = ... + """The DNS records created for the endpoint.""" + private_dns_only_for_inbound_resolver_endpoint: bool | None = ... + """ + Indicates whether to enable private DNS only for inbound endpoints. This + option is available only for services that support both gateway and + interface endpoints. It routes traffic that originates from the VPC to + the gateway endpoint and traffic that originates from on-premises to the + interface endpoint. + """ + private_dns_preference: str | None = ... + """ + The preference for which private domains have a private hosted zone + created for and associated with the specified VPC. Only supported when + private DNS is enabled and when the VPC endpoint type is ServiceNetwork + or Resource. + + - `ALL_DOMAINS` - VPC Lattice provisions private hosted zones for all + custom domain names. + + - `VERIFIED_DOMAINS_ONLY` - VPC Lattice provisions a private hosted zone + only if custom domain name has been verified by the provider. + + - `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS` - VPC Lattice provisions + private hosted zones for all verified custom domain names and other + domain names that the resource consumer specifies. The resource + consumer specifies the domain names in the PrivateDnsSpecifiedDomains + parameter. + + - `SPECIFIED_DOMAINS_ONLY` - VPC Lattice provisions a private hosted + zone for domain names specified by the resource consumer. The resource + consumer specifies the domain names in the PrivateDnsSpecifiedDomains + parameter. + """ + private_dns_specified_domains: list[str] | None = ... + """ + Indicates which of the private domains to create private hosted zones + for and associate with the specified VPC. Only supported when private + DNS is enabled and the private DNS preference is + verified-domains-and-specified-domains or specified-domains-only. + """ + +class DnsRecordIpType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + DUALSTACK = "dualstack" + IPV6 = "ipv6" + SERVICE_DEFINED = "service-defined" + +@dataclass(kw_only=True) +class DnsServersOptionsModifyStructure(_SerdeShape): + """Information about the DNS server to be used.""" + + custom_dns_servers: list[str] | None = ... + """ + The IPv4 address range, in CIDR notation, of the DNS servers to be used. + You can specify up to two DNS servers. Ensure that the DNS servers can + be reached by the clients. The specified values overwrite the existing + values. + """ + enabled: bool | None = ... + """ + Indicates whether DNS servers should be used. Specify `False` to delete + the existing DNS servers. + """ + +class DnsSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class DomainType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + STANDARD = "standard" + +class DynamicRoutingValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class EbsBlockDevice(_SerdeShape): + """Describes a block device for an EBS volume.""" + + delete_on_termination: bool | None = ... + """ + Indicates whether the EBS volume is deleted on instance termination. For + more information, see [Preserving Amazon EBS volumes on instance + termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) + in the *Amazon EC2 User Guide*. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + + The following are the supported values for each volume type: + + - `gp3`: 3,000 - 80,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + For `io2` volumes, you can achieve up to 256,000 IOPS on [instances + built on the Nitro + System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). + On other instances, you can achieve performance up to 32,000 IOPS. + + This parameter is required for `io1` and `io2` volumes. The default for + `gp3` volumes is 3,000 IOPS. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """ + The size of the volume, in GiBs. You must specify either a snapshot ID + or a volume size. If you specify a snapshot, the default is the snapshot + size. You can specify a volume size that is equal to or larger than the + snapshot size. + + The following are the supported sizes for each volume type: + + - `gp2`: 1 - 16,384 GiB + + - `gp3`: 1 - 65,536 GiB + + - `io1`: 4 - 16,384 GiB + + - `io2`: 4 - 65,536 GiB + + - `st1` and `sc1`: 125 - 16,384 GiB + + - `standard`: 1 - 1024 GiB + """ + volume_type: str | None = ... + """ + The volume type. For more information, see [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + """ + kms_key_id: str | None = ... + """ + Identifier (key ID, key alias, key ARN, or alias ARN) of the customer + managed KMS key to use for EBS encryption. + + This parameter is only supported on `BlockDeviceMapping` objects called + by + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), + [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), + and + [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html). + """ + throughput: int | None = ... + """ + The throughput that the volume supports, in MiB/s. + + This parameter is valid only for `gp3` volumes. + + Valid Range: Minimum value of 125. Maximum value of 2,000. + """ + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the snapshot is stored. + + This parameter is not supported when using + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html). + """ + availability_zone: str | None = ... + """ + The Availability Zone where the EBS volume will be created (for example, + `us-east-1a`). + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both. If neither is specified, Amazon EC2 automatically selects an + Availability Zone within the Region. + + This parameter is not supported when using + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html), + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html), + [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), + [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html), + and + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + encrypted: bool | None = ... + """ + Indicates whether the encryption state of an EBS volume is changed while + being restored from a backing snapshot. The effect of setting the + encryption state to `true` depends on the volume origin (new or from a + snapshot), starting encryption state, ownership, and whether encryption + by default is enabled. For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html#encryption-parameters) + in the *Amazon EBS User Guide*. + + In no case can you remove encryption from an encrypted volume. + + Encrypted volumes can only be attached to instances that support Amazon + EBS encryption. For more information, see [Supported instance + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances). + + This parameter is not returned by DescribeImageAttribute. + + For CreateImage and RegisterImage, whether you can include this + parameter, and the allowed values differ depending on the type of block + device mapping you are creating. + + - If you are creating a block device mapping for a **new (empty) + volume**, you can include this parameter, and specify either `true` + for an encrypted volume, or `false` for an unencrypted volume. If you + omit this parameter, it defaults to `false` (unencrypted). + + - If you are creating a block device mapping from an **existing + encrypted or unencrypted snapshot**, you must omit this parameter. If + you include this parameter, the request will fail, regardless of the + value that you specify. + + - If you are creating a block device mapping from an **existing + unencrypted volume**, you can include this parameter, but you must + specify `false`. If you specify `true`, the request will fail. In this + case, we recommend that you omit the parameter. + + - If you are creating a block device mapping from an **existing + encrypted volume**, you can include this parameter, and specify either + `true` or `false`. However, if you specify `false`, the parameter is + ignored and the block device mapping is always encrypted. In this + case, we recommend that you omit the parameter. + """ + volume_initialization_rate: int | None = ... + """ + Specifies the Amazon EBS Provisioned Rate for Volume Initialization + (volume initialization rate), in MiB/s, at which to download the + snapshot blocks from Amazon S3 to the volume. This is also known as + *volume initialization*. Specifying a volume initialization rate ensures + that the volume is initialized at a predictable and consistent rate + after creation. For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EC2 User Guide*. + + This parameter is supported only for volumes created from snapshots. + Omit this parameter if: + + - You want to create the volume using fast snapshot restore. You must + specify a snapshot that is enabled for fast snapshot restore. In this + case, the volume is fully initialized at creation. + + Note: + If you specify a snapshot that is enabled for fast snapshot restore + and a volume initialization rate, the volume will be initialized at + the specified rate instead of fast snapshot restore. + + - You want to create a volume that is initialized at the default rate. + + This parameter is not supported when using + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html) + and + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html). + + Valid range: 100 - 300 MiB/s + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone where the EBS volume will be created + (for example, `use1-az1`). + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both. If neither is specified, Amazon EC2 automatically selects an + Availability Zone within the Region. + + This parameter is not supported when using + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html), + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html), + [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), + [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html), + and + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + +@dataclass(kw_only=True) +class EbsBlockDeviceResponse(_SerdeShape): + """Describes a block device for an EBS volume.""" + + encrypted: bool | None = ... + """Indicates whether the volume is encrypted.""" + delete_on_termination: bool | None = ... + """Indicates whether the volume is deleted on instance termination.""" + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + """ + throughput: int | None = ... + """The throughput that the volume supports, in MiB/s.""" + kms_key_id: str | None = ... + """ + Identifier (key ID, key alias, key ARN, or alias ARN) of the customer + managed KMS key to use for EBS encryption. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """The size of the volume, in GiBs.""" + volume_type: str | None = ... + """ + The volume type. For more information, see [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + """ + +@dataclass(kw_only=True) +class EbsCardInfo(_SerdeShape): + """ + Describes the performance characteristics of an EBS card on the instance + type. + """ + + ebs_card_index: int | None = ... + """The index of the EBS card.""" + baseline_bandwidth_in_mbps: int | None = ... + """The baseline bandwidth performance for the EBS card, in Mbps.""" + baseline_throughput_in_m_bps: float | None = ... + """The baseline throughput performance for the EBS card, in MBps.""" + baseline_iops: int | None = ... + """The baseline IOPS performance for the EBS card.""" + maximum_bandwidth_in_mbps: int | None = ... + """The maximum bandwidth performance for the EBS card, in Mbps.""" + maximum_throughput_in_m_bps: float | None = ... + """The maximum throughput performance for the EBS card, in MBps.""" + maximum_iops: int | None = ... + """The maximum IOPS performance for the EBS card.""" + +class EbsEncryptionSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +@dataclass(kw_only=True) +class EbsInfo(_SerdeShape): + """Describes the Amazon EBS features supported by the instance type.""" + + ebs_optimized_support: str | None = ... + """ + Indicates whether the instance type is Amazon EBS-optimized. For more + information, see [Amazon EBS-optimized + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) + in *Amazon EC2 User Guide*. + """ + encryption_support: str | None = ... + """Indicates whether Amazon EBS encryption is supported.""" + ebs_optimized_info: EbsOptimizedInfo | None = ... + """Describes the optimized EBS performance for the instance type.""" + nvme_support: str | None = ... + """Indicates whether non-volatile memory express (NVMe) is supported.""" + maximum_ebs_attachments: int | None = ... + """ + Indicates the maximum number of Amazon EBS volumes that can be attached + to the instance type. For more information, see [Amazon EBS volume + limits for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html) + in the *Amazon EC2 User Guide*. + """ + attachment_limit_type: str | None = ... + """ + Indicates whether the instance type features a shared or dedicated + Amazon EBS volume attachment limit. For more information, see [Amazon + EBS volume limits for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html) + in the *Amazon EC2 User Guide*. + """ + maximum_ebs_cards: int | None = ... + """Indicates the number of EBS cards supported by the instance type.""" + ebs_cards: list[EbsCardInfo] | None = ... + """Describes the EBS cards available for the instance type.""" + +@dataclass(kw_only=True) +class EbsInstanceBlockDevice(_SerdeShape): + """ + Describes a parameter used to set up an EBS volume in a block device + mapping. + """ + + attach_time: datetime | None = ... + """The time stamp when the attachment initiated.""" + delete_on_termination: bool | None = ... + """Indicates whether the volume is deleted on instance termination.""" + status: str | None = ... + """The attachment state.""" + volume_id: str | None = ... + """The ID of the EBS volume.""" + associated_resource: str | None = ... + """ + The ARN of the Amazon Web Services-managed resource to which the volume + is attached. + """ + volume_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the volume. + + This parameter is returned only for volumes that are attached to Amazon + Web Services-managed resources. + """ + operator: OperatorResponse | None = ... + """The service provider that manages the EBS volume.""" + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + +@dataclass(kw_only=True) +class EbsInstanceBlockDeviceSpecification(_SerdeShape): + """ + Describes information used to set up an EBS volume specified in a block + device mapping. + """ + + volume_id: str | None = ... + """The ID of the EBS volume.""" + delete_on_termination: bool | None = ... + """Indicates whether the volume is deleted on instance termination.""" + +class EbsNvmeSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + REQUIRED = "required" + +@dataclass(kw_only=True) +class EbsOptimizedInfo(_SerdeShape): + """Describes the optimized EBS performance for supported instance types.""" + + baseline_bandwidth_in_mbps: int | None = ... + """ + The baseline bandwidth performance for an EBS-optimized instance type, + in Mbps. + """ + baseline_throughput_in_m_bps: float | None = ... + """ + The baseline throughput performance for an EBS-optimized instance type, + in MB/s. + """ + baseline_iops: int | None = ... + """ + The baseline input/output storage operations per seconds for an + EBS-optimized instance type. + """ + maximum_bandwidth_in_mbps: int | None = ... + """ + The maximum bandwidth performance for an EBS-optimized instance type, in + Mbps. + """ + maximum_throughput_in_m_bps: float | None = ... + """ + The maximum throughput performance for an EBS-optimized instance type, + in MB/s. + """ + maximum_iops: int | None = ... + """ + The maximum input/output storage operations per second for an + EBS-optimized instance type. + """ + +class EbsOptimizedSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + DEFAULT = "default" + +@dataclass(kw_only=True) +class EbsStatusDetails(_SerdeShape): + """Describes the attached EBS status check for an instance.""" + + impaired_since: datetime | None = ... + """The date and time when the attached EBS status check failed.""" + name: str | None = ... + """The name of the attached EBS status check.""" + status: str | None = ... + """The result of the attached EBS status check.""" + +@dataclass(kw_only=True) +class EbsStatusSummary(_SerdeShape): + """Provides a summary of the attached EBS volume status for an instance.""" + + details: list[EbsStatusDetails] | None = ... + """Details about the attached EBS status check for an instance.""" + status: str | None = ... + """The current status.""" + +@dataclass(kw_only=True) +class Ec2InstanceConnectEndpoint(_SerdeShape): + """Describes an EC2 Instance Connect Endpoint.""" + + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that created the EC2 Instance + Connect Endpoint. + """ + instance_connect_endpoint_id: str | None = ... + """The ID of the EC2 Instance Connect Endpoint.""" + instance_connect_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint.""" + state: str | None = ... + """The current state of the EC2 Instance Connect Endpoint.""" + state_message: str | None = ... + """ + The message for the current state of the EC2 Instance Connect Endpoint. + Can include a failure message. + """ + dns_name: str | None = ... + """The DNS name of the EC2 Instance Connect Endpoint.""" + fips_dns_name: str | None = ... + """ + The Federal Information Processing Standards (FIPS) compliant DNS name + of the EC2 Instance Connect Endpoint. + """ + network_interface_ids: list[str] | None = ... + """ + The ID of the elastic network interface that Amazon EC2 automatically + created when creating the EC2 Instance Connect Endpoint. + """ + vpc_id: str | None = ... + """ + The ID of the VPC in which the EC2 Instance Connect Endpoint was + created. + """ + availability_zone: str | None = ... + """The Availability Zone of the EC2 Instance Connect Endpoint.""" + created_at: datetime | None = ... + """The date and time that the EC2 Instance Connect Endpoint was created.""" + subnet_id: str | None = ... + """ + The ID of the subnet in which the EC2 Instance Connect Endpoint was + created. + """ + preserve_client_ip: bool | None = ... + """ + Indicates whether your client's IP address is preserved as the source + when you connect to a resource. The following are the possible values. + + - `true` - Use the IP address of the client. Your instance must have an + IPv4 address. + + - `false` - Use the IP address of the network interface. + + Default: `false` + """ + security_group_ids: list[str] | None = ... + """ + The security groups associated with the endpoint. If you didn't specify + a security group, the default security group for your VPC is associated + with the endpoint. + """ + tags: list[Tag] | None = ... + """The tags assigned to the EC2 Instance Connect Endpoint.""" + ip_address_type: str | None = ... + """The IP address type of the endpoint.""" + public_dns_names: InstanceConnectEndpointPublicDnsNames | None = ... + """The public DNS names of the endpoint.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the EC2 Instance Connect Endpoint.""" + +class Ec2InstanceConnectEndpointState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + UPDATE_IN_PROGRESS = "update-in-progress" + UPDATE_COMPLETE = "update-complete" + UPDATE_FAILED = "update-failed" + +@dataclass(kw_only=True) +class EfaInfo(_SerdeShape): + """Describes the Elastic Fabric Adapters for the instance type.""" + + maximum_efa_interfaces: int | None = ... + """The maximum number of Elastic Fabric Adapters for the instance type.""" + +@dataclass(kw_only=True) +class EgressOnlyInternetGateway(_SerdeShape): + """Describes an egress-only internet gateway.""" + + attachments: list[InternetGatewayAttachment] | None = ... + """Information about the attachment of the egress-only internet gateway.""" + egress_only_internet_gateway_id: str | None = ... + """The ID of the egress-only internet gateway.""" + tags: list[Tag] | None = ... + """The tags assigned to the egress-only internet gateway.""" + +class EkPubKeyFormat(UnknownEnumMixin, StrEnum): + DER = "der" + TPMT = "tpmt" + +class EkPubKeyType(UnknownEnumMixin, StrEnum): + RSA_2048 = "rsa-2048" + ECC_SEC_P384 = "ecc-sec-p384" + +@dataclass(kw_only=True) +class ElasticGpuAssociation(_SerdeShape): + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + Describes the association between an instance and an Elastic Graphics + accelerator. + """ + + elastic_gpu_id: str | None = ... + """The ID of the Elastic Graphics accelerator.""" + elastic_gpu_association_id: str | None = ... + """The ID of the association.""" + elastic_gpu_association_state: str | None = ... + """ + The state of the association between the instance and the Elastic + Graphics accelerator. + """ + elastic_gpu_association_time: str | None = ... + """ + The time the Elastic Graphics accelerator was associated with the + instance. + """ + +@dataclass(kw_only=True) +class ElasticGpuHealth(_SerdeShape): + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + Describes the status of an Elastic Graphics accelerator. + """ + + status: str | None = ... + """The health status.""" + +@dataclass(kw_only=True) +class ElasticGpus(_SerdeShape): + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + Describes an Elastic Graphics accelerator. + """ + + elastic_gpu_id: str | None = ... + """The ID of the Elastic Graphics accelerator.""" + availability_zone: str | None = ... + """ + The Availability Zone in the which the Elastic Graphics accelerator + resides. + """ + elastic_gpu_type: str | None = ... + """The type of Elastic Graphics accelerator.""" + elastic_gpu_health: ElasticGpuHealth | None = ... + """The status of the Elastic Graphics accelerator.""" + elastic_gpu_state: str | None = ... + """The state of the Elastic Graphics accelerator.""" + instance_id: str | None = ... + """ + The ID of the instance to which the Elastic Graphics accelerator is + attached. + """ + tags: list[Tag] | None = ... + """The tags assigned to the Elastic Graphics accelerator.""" + +@dataclass(kw_only=True) +class ElasticGpuSpecification(_SerdeShape): + """ + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + + A specification for an Elastic Graphics accelerator. + """ + + type: str | None = ... + """The type of Elastic Graphics accelerator.""" + +@dataclass(kw_only=True) +class ElasticGpuSpecificationResponse(_SerdeShape): + """ + Deprecated. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + + type: str | None = ... + """ + Deprecated. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + +class ElasticGpuState(UnknownEnumMixin, StrEnum): + ATTACHED = "ATTACHED" + +class ElasticGpuStatus(UnknownEnumMixin, StrEnum): + OK = "OK" + IMPAIRED = "IMPAIRED" + +@dataclass(kw_only=True) +class ElasticInferenceAccelerator(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes an elastic inference accelerator. + """ + + type: str | None = ... + """ + The type of elastic inference accelerator. The possible values are + `eia1.medium`, `eia1.large`, `eia1.xlarge`, `eia2.medium`, `eia2.large`, + and `eia2.xlarge`. + """ + count: int | None = ... + """ + The number of elastic inference accelerators to attach to the instance. + + Default: 1 + """ + +@dataclass(kw_only=True) +class ElasticInferenceAcceleratorAssociation(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes the association between an instance and an elastic inference + accelerator. + """ + + elastic_inference_accelerator_arn: str | None = ... + """The Amazon Resource Name (ARN) of the elastic inference accelerator.""" + elastic_inference_accelerator_association_id: str | None = ... + """The ID of the association.""" + elastic_inference_accelerator_association_state: str | None = ... + """The state of the elastic inference accelerator.""" + elastic_inference_accelerator_association_time: datetime | None = ... + """ + The time at which the elastic inference accelerator is associated with + an instance. + """ + +@dataclass(kw_only=True) +class EnableAddressTransferInput(_SerdeShape): + """Dataclass for EnableAddressTransferInput structure.""" + + allocation_id: str | None = ... + """The allocation ID of an Elastic IP address.""" + transfer_account_id: str | None = ... + """ + The ID of the account that you want to transfer the Elastic IP address + to. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableAddressTransferOutput(_SerdeShape): + """Dataclass for EnableAddressTransferOutput structure.""" + + address_transfer: AddressTransfer | None = ... + """An Elastic IP address transfer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableAllowedImagesSettingsInput(_SerdeShape): + """Dataclass for EnableAllowedImagesSettingsInput structure.""" + + allowed_images_settings_state: str | None = ... + """ + Specify `enabled` to apply the image criteria specified by the Allowed + AMIs settings. Specify `audit-mode` so that you can check which AMIs + will be allowed or not allowed by the image criteria. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableAllowedImagesSettingsOutput(_SerdeShape): + """Dataclass for EnableAllowedImagesSettingsOutput structure.""" + + allowed_images_settings_state: str | None = ... + """ + Returns `enabled` or `audit-mode` if the request succeeds; otherwise, it + returns an error. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableApplicationStatusCheckSuppressionInput(_SerdeShape): + """Dataclass for EnableApplicationStatusCheckSuppressionInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the instances for which to suppress application status + checks. + """ + duration_seconds: int | None = ... + """ + The duration, in seconds, for which to suppress application status + checks. If omitted, the application status check is suppressed + indefinitely until you call `DisableApplicationStatusCheckSuppression`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableApplicationStatusCheckSuppressionOutput(_SerdeShape): + """Dataclass for EnableApplicationStatusCheckSuppressionOutput structure.""" + + successful_results: list[SuccessfulSuppressionResponseObject] | None = ... + """The instances for which suppression was successfully enabled.""" + unsuccessful_results: list[UnsuccessfulSuppressionResponseObject] | None = ... + """The instances for which suppression failed to be enabled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableAwsNetworkPerformanceMetricSubscriptionInput(_SerdeShape): + """ + Dataclass for EnableAwsNetworkPerformanceMetricSubscriptionInput + structure. + """ + + source: str | None = ... + """ + The source Region (like `us-east-1`) or Availability Zone ID (like + `use1-az1`) that the metric subscription is enabled for. If you use + Availability Zone IDs, the Source and Destination Availability Zones + must be in the same Region. + """ + destination: str | None = ... + """ + The target Region (like `us-east-2`) or Availability Zone ID (like + `use2-az2`) that the metric subscription is enabled for. If you use + Availability Zone IDs, the Source and Destination Availability Zones + must be in the same Region. + """ + metric: str | None = ... + """The metric used for the enabled subscription.""" + statistic: str | None = ... + """The statistic used for the enabled subscription.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableAwsNetworkPerformanceMetricSubscriptionOutput(_SerdeShape): + """ + Dataclass for EnableAwsNetworkPerformanceMetricSubscriptionOutput + structure. + """ + + output: bool | None = ... + """Indicates whether the subscribe action was successful.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableCapacityManagerInput(_SerdeShape): + """Dataclass for EnableCapacityManagerInput structure.""" + + organizations_access: bool | None = ... + """ + Specifies whether to enable cross-account access for Amazon Web Services + Organizations. When enabled, Capacity Manager can aggregate data from + all accounts in your organization. Default is false. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + +@dataclass(kw_only=True) +class EnableCapacityManagerOutput(_SerdeShape): + """Dataclass for EnableCapacityManagerOutput structure.""" + + capacity_manager_status: str | None = ... + """The current status of Capacity Manager after the enable operation.""" + organizations_access: bool | None = ... + """ + Indicates whether Organizations access is enabled for cross-account data + aggregation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableEbsEncryptionByDefaultInput(_SerdeShape): + """Dataclass for EnableEbsEncryptionByDefaultInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableEbsEncryptionByDefaultOutput(_SerdeShape): + """Dataclass for EnableEbsEncryptionByDefaultOutput structure.""" + + ebs_encryption_by_default: bool | None = ... + """The updated status of encryption by default.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableFastLaunchInput(_SerdeShape): + """Dataclass for EnableFastLaunchInput structure.""" + + image_id: str | None = ... + """Specify the ID of the image for which to enable Windows fast launch.""" + resource_type: str | None = ... + """ + The type of resource to use for pre-provisioning the AMI for Windows + fast launch. Supported values include: `snapshot`, which is the default + value. + """ + snapshot_configuration: FastLaunchSnapshotConfigurationRequest | None = ... + """ + Configuration settings for creating and managing the snapshots that are + used for pre-provisioning the AMI for Windows fast launch. The + associated `ResourceType` must be `snapshot`. + """ + launch_template: FastLaunchLaunchTemplateSpecificationRequest | None = ... + """ + The launch template to use when launching Windows instances from + pre-provisioned snapshots. Launch template parameters can include either + the name or ID of the launch template, but not both. + """ + max_parallel_launches: int | None = ... + """ + The maximum number of instances that Amazon EC2 can launch at the same + time to create pre-provisioned snapshots for Windows fast launch. Value + must be `6` or greater. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableFastLaunchOutput(_SerdeShape): + """Dataclass for EnableFastLaunchOutput structure.""" + + image_id: str | None = ... + """ + The image ID that identifies the AMI for which Windows fast launch was + enabled. + """ + resource_type: str | None = ... + """ + The type of resource that was defined for pre-provisioning the AMI for + Windows fast launch. + """ + snapshot_configuration: FastLaunchSnapshotConfigurationResponse | None = ... + """ + Settings to create and manage the pre-provisioned snapshots that Amazon + EC2 uses for faster launches from the Windows AMI. This property is + returned when the associated `resourceType` is `snapshot`. + """ + launch_template: FastLaunchLaunchTemplateSpecificationResponse | None = ... + """ + The launch template that is used when launching Windows instances from + pre-provisioned snapshots. + """ + max_parallel_launches: int | None = ... + """ + The maximum number of instances that Amazon EC2 can launch at the same + time to create pre-provisioned snapshots for Windows fast launch. + """ + owner_id: str | None = ... + """The owner ID for the AMI for which Windows fast launch was enabled.""" + state: str | None = ... + """The current state of Windows fast launch for the specified AMI.""" + state_transition_reason: str | None = ... + """The reason that the state changed for Windows fast launch for the AMI.""" + state_transition_time: datetime | None = ... + """The time that the state changed for Windows fast launch for the AMI.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoreErrorItem(_SerdeShape): + """ + Contains information about the errors that occurred when enabling fast + snapshot restores. + """ + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + fast_snapshot_restore_state_errors: ( + list[EnableFastSnapshotRestoreStateErrorItem] | None + ) = ... + """The errors.""" + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoresInput(_SerdeShape): + """Dataclass for EnableFastSnapshotRestoresInput structure.""" + + availability_zones: list[str] | None = ... + """ + One or more Availability Zones. For example, `us-east-2a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + availability_zone_ids: list[str] | None = ... + """ + One or more Availability Zone IDs. For example, `use2-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + source_snapshot_ids: list[str] | None = ... + """ + The IDs of one or more snapshots. For example, `snap-1234567890abcdef0`. + You can specify a snapshot that was shared with you from another Amazon + Web Services account. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoresOutput(_SerdeShape): + """Dataclass for EnableFastSnapshotRestoresOutput structure.""" + + successful: list[EnableFastSnapshotRestoreSuccessItem] | None = ... + """ + Information about the snapshots for which fast snapshot restores were + successfully enabled. + """ + unsuccessful: list[EnableFastSnapshotRestoreErrorItem] | None = ... + """ + Information about the snapshots for which fast snapshot restores could + not be enabled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoreStateError(_SerdeShape): + """Describes an error that occurred when enabling fast snapshot restores.""" + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message.""" + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoreStateErrorItem(_SerdeShape): + """ + Contains information about an error that occurred when enabling fast + snapshot restores. + """ + + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + error: EnableFastSnapshotRestoreStateError | None = ... + """The error.""" + +@dataclass(kw_only=True) +class EnableFastSnapshotRestoreSuccessItem(_SerdeShape): + """Describes fast snapshot restores that were successfully enabled.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + state: str | None = ... + """The state of fast snapshot restores.""" + state_transition_reason: str | None = ... + """ + The reason for the state transition. The possible values are as follows: + + - `Client.UserInitiated` - The state successfully transitioned to + `enabling` or `disabling`. + + - `Client.UserInitiated - Lifecycle state transition` - The state + successfully transitioned to `optimizing`, `enabled`, or `disabled`. + """ + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that enabled fast snapshot + restores on the snapshot. + """ + owner_alias: str | None = ... + """ + The Amazon Web Services owner alias that enabled fast snapshot restores + on the snapshot. This is intended for future use. + """ + enabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabling` state.""" + optimizing_time: datetime | None = ... + """The time at which fast snapshot restores entered the `optimizing` state.""" + enabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `enabled` state.""" + disabling_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabling` state.""" + disabled_time: datetime | None = ... + """The time at which fast snapshot restores entered the `disabled` state.""" + +@dataclass(kw_only=True) +class EnableImageBlockPublicAccessInput(_SerdeShape): + """Dataclass for EnableImageBlockPublicAccessInput structure.""" + + image_block_public_access_state: str | None = ... + """ + Specify `block-new-sharing` to enable block public access for AMIs at + the account level in the specified Region. This will block any attempt + to publicly share your AMIs in the specified Region. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableImageBlockPublicAccessOutput(_SerdeShape): + """Dataclass for EnableImageBlockPublicAccessOutput structure.""" + + image_block_public_access_state: str | None = ... + """ + Returns `block-new-sharing` if the request succeeds; otherwise, it + returns an error. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableImageDeprecationInput(_SerdeShape): + """Dataclass for EnableImageDeprecationInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + deprecate_at: datetime | None = ... + """ + The date and time to deprecate the AMI, in UTC, in the following format: + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z. If you specify a value for seconds, + Amazon EC2 rounds the seconds to the nearest minute. + + You can't specify a date in the past. The upper limit for `DeprecateAt` + is 10 years from now, except for public AMIs, where the upper limit is 2 + years from the creation date. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableImageDeprecationOutput(_SerdeShape): + """Dataclass for EnableImageDeprecationOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableImageDeregistrationProtectionInput(_SerdeShape): + """Dataclass for EnableImageDeregistrationProtectionInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + with_cooldown: bool | None = ... + """ + If `true`, enforces deregistration protection for 24 hours after + deregistration protection is disabled. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableImageDeregistrationProtectionOutput(_SerdeShape): + """Dataclass for EnableImageDeregistrationProtectionOutput structure.""" + + return_: str | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableImageInput(_SerdeShape): + """Dataclass for EnableImageInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableImageOutput(_SerdeShape): + """Dataclass for EnableImageOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableInstanceSqlHaStandbyDetectionsInput(_SerdeShape): + """Dataclass for EnableInstanceSqlHaStandbyDetectionsInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the instances to enable for SQL Server High Availability + standby detection monitoring. + """ + sql_server_credentials: str | None = ... + """ + The ARN of the Secrets Manager secret containing the SQL Server access + credentials. The specified secret must contain valid SQL Server + credentials for the specified instances. If not specified, deafult local + user credentials will be used by the Amazon Web Services Systems Manager + agent. To enable instances with different credentials, you must make + separate requests. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableInstanceSqlHaStandbyDetectionsOutput(_SerdeShape): + """Dataclass for EnableInstanceSqlHaStandbyDetectionsOutput structure.""" + + instances: list[RegisteredInstance] | None = ... + """ + Information about the instances that were enabled for SQL Server High + Availability standby detection monitoring. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableIpamInternetRegistryAssociationInput(_SerdeShape): + """Dataclass for EnableIpamInternetRegistryAssociationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association to enable.""" + rpki_version: str | None = ... + """The RPKI version to use from the Parent Response XML.""" + service_uri: str | None = ... + """ + The RPKI service URI for the publication point from the Parent Response + XML. + """ + child_handle: str | None = ... + """ + The child handle for the BPKI certificate hierarchy from the Parent + Response XML. + """ + parent_handle: str | None = ... + """ + The parent handle for the BPKI certificate hierarchy from the Parent + Response XML. + """ + parent_bpki_ta: str | None = ... + """ + The parent BPKI Trust Anchor certificate in PEM format from the Parent + Response XML. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class EnableIpamInternetRegistryAssociationOutput(_SerdeShape): + """Dataclass for EnableIpamInternetRegistryAssociationOutput structure.""" + + ipam_internet_registry_association: IpamInternetRegistryAssociation | None = ... + """Information about the enabled internet registry association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableIpamOrganizationAdminAccountInput(_SerdeShape): + """Dataclass for EnableIpamOrganizationAdminAccountInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + delegated_admin_account_id: str | None = ... + """ + The Organizations member account ID that you want to enable as the IPAM + account. + """ + +@dataclass(kw_only=True) +class EnableIpamOrganizationAdminAccountOutput(_SerdeShape): + """Dataclass for EnableIpamOrganizationAdminAccountOutput structure.""" + + success: bool | None = ... + """The result of enabling the IPAM account.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableIpamPolicyInput(_SerdeShape): + """Dataclass for EnableIpamPolicyInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_policy_id: str | None = ... + """The ID of the IPAM policy to enable.""" + organization_target_id: str | None = ... + """ + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + + The ID of the Amazon Web Services Organizations target for which to + enable the IPAM policy. This parameter is required only when IPAM is + integrated with Amazon Web Services Organizations. When IPAM is not + integrated with Amazon Web Services Organizations, omit this parameter + and the policy will apply to the current account. + """ + +@dataclass(kw_only=True) +class EnableIpamPolicyOutput(_SerdeShape): + """Dataclass for EnableIpamPolicyOutput structure.""" + + ipam_policy_id: str | None = ... + """The ID of the IPAM policy that was enabled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableReachabilityAnalyzerOrganizationSharingInput(_SerdeShape): + """ + Dataclass for EnableReachabilityAnalyzerOrganizationSharingInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableReachabilityAnalyzerOrganizationSharingOutput(_SerdeShape): + """ + Dataclass for EnableReachabilityAnalyzerOrganizationSharingOutput + structure. + """ + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableRouteServerPropagationInput(_SerdeShape): + """Dataclass for EnableRouteServerPropagationInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to enable propagation.""" + route_table_id: str | None = ... + """The ID of the route table to which route server will propagate routes.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableRouteServerPropagationOutput(_SerdeShape): + """Dataclass for EnableRouteServerPropagationOutput structure.""" + + route_server_propagation: RouteServerPropagation | None = ... + """Information about the enabled route server propagation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableSerialConsoleAccessInput(_SerdeShape): + """Dataclass for EnableSerialConsoleAccessInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableSerialConsoleAccessOutput(_SerdeShape): + """Dataclass for EnableSerialConsoleAccessOutput structure.""" + + serial_console_access_enabled: bool | None = ... + """ + If `true`, access to the EC2 serial console of all instances is enabled + for your account. If `false`, access to the EC2 serial console of all + instances is disabled for your account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableSnapshotBlockPublicAccessInput(_SerdeShape): + """Dataclass for EnableSnapshotBlockPublicAccessInput structure.""" + + state: str | None = ... + """ + The mode in which to enable block public access for snapshots for the + Region. Specify one of the following values: + + - `block-all-sharing` - Prevents all public sharing of snapshots in the + Region. Users in the account will no longer be able to request new + public sharing. Additionally, snapshots that are already publicly + shared are treated as private and they are no longer publicly + available. + + - `block-new-sharing` - Prevents only new public sharing of snapshots in + the Region. Users in the account will no longer be able to request new + public sharing. However, snapshots that are already publicly shared, + remain publicly available. + + `unblocked` is not a valid value for + **EnableSnapshotBlockPublicAccess**. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableSnapshotBlockPublicAccessOutput(_SerdeShape): + """Dataclass for EnableSnapshotBlockPublicAccessOutput structure.""" + + state: str | None = ... + """ + The state of block public access for snapshots for the account and + Region. Returns either `block-all-sharing` or `block-new-sharing` if the + request succeeds. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableTransitGatewayRouteTablePropagationInput(_SerdeShape): + """Dataclass for EnableTransitGatewayRouteTablePropagationInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the propagation route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the transit gateway route table announcement.""" + +@dataclass(kw_only=True) +class EnableTransitGatewayRouteTablePropagationOutput(_SerdeShape): + """Dataclass for EnableTransitGatewayRouteTablePropagationOutput structure.""" + + propagation: TransitGatewayPropagation | None = ... + """Information about route propagation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableVgwRoutePropagationInput(_SerdeShape): + """Contains the parameters for EnableVgwRoutePropagation.""" + + gateway_id: str | None = ... + """ + The ID of the virtual private gateway that is attached to a VPC. The + virtual private gateway must be attached to the same VPC that the + routing tables are associated with. + """ + route_table_id: str | None = ... + """ + The ID of the route table. The routing table must be associated with the + same VPC that the virtual private gateway is attached to. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class EnableVgwRoutePropagationOutput(_SerdeShape): + """Dataclass for EnableVgwRoutePropagationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableVolumeIOInput(_SerdeShape): + """Dataclass for EnableVolumeIOInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + volume_id: str | None = ... + """The ID of the volume.""" + +@dataclass(kw_only=True) +class EnableVolumeIOOutput(_SerdeShape): + """Dataclass for EnableVolumeIOOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableVpcClassicLinkDnsSupportInput(_SerdeShape): + """Dataclass for EnableVpcClassicLinkDnsSupportInput structure.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class EnableVpcClassicLinkDnsSupportOutput(_SerdeShape): + """Dataclass for EnableVpcClassicLinkDnsSupportOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableVpcClassicLinkInput(_SerdeShape): + """Dataclass for EnableVpcClassicLinkInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class EnableVpcClassicLinkOutput(_SerdeShape): + """Dataclass for EnableVpcClassicLinkOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnaSrdSpecification(_SerdeShape): + """ + ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + technology to increase the maximum bandwidth used per stream and + minimize tail latency of network traffic between EC2 instances. With ENA + Express, you can communicate between two EC2 instances in the same + subnet within the same account, or in different accounts. Both sending + and receiving instances must have ENA Express enabled. + + To improve the reliability of network packet delivery, ENA Express + reorders network packets on the receiving end by default. However, some + UDP-based applications are designed to handle network packets that are + out of order to reduce the overhead for packet delivery at the network + layer. When ENA Express is enabled, you can specify whether UDP network + traffic uses it. + """ + + ena_srd_enabled: bool | None = ... + """Indicates whether ENA Express is enabled for the network interface.""" + ena_srd_udp_specification: EnaSrdUdpSpecification | None = ... + """Configures ENA Express for UDP network traffic.""" + +@dataclass(kw_only=True) +class EnaSrdSpecificationRequest(_SerdeShape): + """ + Launch instances with ENA Express settings configured from your launch + template. + """ + + ena_srd_enabled: bool | None = ... + """ + Specifies whether ENA Express is enabled for the network interface when + you launch an instance. + """ + ena_srd_udp_specification: EnaSrdUdpSpecificationRequest | None = ... + """ + Contains ENA Express settings for UDP network traffic for the network + interface attached to the instance. + """ + +@dataclass(kw_only=True) +class EnaSrdUdpSpecification(_SerdeShape): + """ + ENA Express is compatible with both TCP and UDP transport protocols. + When it's enabled, TCP traffic automatically uses it. However, some + UDP-based applications are designed to handle network packets that are + out of order, without a need for retransmission, such as live video + broadcasting or other near-real-time applications. For UDP traffic, you + can specify whether to use ENA Express, based on your application + environment needs. + """ + + ena_srd_udp_enabled: bool | None = ... + """ + Indicates whether UDP traffic to and from the instance uses ENA Express. + To specify this setting, you must first enable ENA Express. + """ + +@dataclass(kw_only=True) +class EnaSrdUdpSpecificationRequest(_SerdeShape): + """ + Configures ENA Express for UDP network traffic from your launch + template. + """ + + ena_srd_udp_enabled: bool | None = ... + """ + Indicates whether UDP traffic uses ENA Express for your instance. To + ensure that UDP traffic can use ENA Express when you launch an instance, + you must also set **EnaSrdEnabled** in the + **EnaSrdSpecificationRequest** to `true`. + """ + +class EnaSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + REQUIRED = "required" + +@dataclass(kw_only=True) +class EnclaveOptions(_SerdeShape): + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. + """ + + enabled: bool | None = ... + """ + If this parameter is set to `true`, the instance is enabled for Amazon + Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web + Services Nitro Enclaves. + """ + +@dataclass(kw_only=True) +class EnclaveOptionsRequest(_SerdeShape): + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. For more information, see [What is Amazon Web Services Nitro + Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) + in the *Amazon Web Services Nitro Enclaves User Guide*. + """ + + enabled: bool | None = ... + """ + To enable the instance for Amazon Web Services Nitro Enclaves, set this + parameter to `true`. + """ + +class EncryptionStateValue(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + ENABLED = "enabled" + DISABLING = "disabling" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class EncryptionSupport(_SerdeShape): + """Describes the encryption support status for a transit gateway.""" + + encryption_state: str | None = ... + """The current encryption state of the resource.""" + state_message: str | None = ... + """A message describing the encryption state.""" + +class EncryptionSupportOptionValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class EndDateType(UnknownEnumMixin, StrEnum): + UNLIMITED = "unlimited" + LIMITED = "limited" + +class EndpointIpAddressType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + DUAL_STACK = "dual-stack" + +class EphemeralNvmeSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + REQUIRED = "required" + +class EventCode(UnknownEnumMixin, StrEnum): + INSTANCE_REBOOT = "instance-reboot" + SYSTEM_REBOOT = "system-reboot" + SYSTEM_MAINTENANCE = "system-maintenance" + INSTANCE_RETIREMENT = "instance-retirement" + INSTANCE_STOP = "instance-stop" + +@dataclass(kw_only=True) +class EventInformation(_SerdeShape): + """Describes an EC2 Fleet or Spot Fleet event.""" + + event_description: str | None = ... + """The description of the event.""" + event_sub_type: str | None = ... + """ + The event. + + `error` events: + + - `iamFleetRoleInvalid` - The EC2 Fleet or Spot Fleet does not have the + required permissions either to launch or terminate an instance. + + - `allLaunchSpecsTemporarilyBlacklisted` - None of the configurations + are valid, and several attempts to launch instances have failed. For + more information, see the description of the event. + + - `spotInstanceCountLimitExceeded` - You've reached the limit on the + number of Spot Instances that you can launch. + + - `spotFleetRequestConfigurationInvalid` - The configuration is not + valid. For more information, see the description of the event. + + `fleetRequestChange` events: + + - `active` - The EC2 Fleet or Spot Fleet request has been validated and + Amazon EC2 is attempting to maintain the target number of running + instances. + + - `deleted` (EC2 Fleet) / `cancelled` (Spot Fleet) - The EC2 Fleet is + deleted or the Spot Fleet request is canceled and has no running + instances. The EC2 Fleet or Spot Fleet will be deleted two days after + its instances are terminated. + + - `deleted_running` (EC2 Fleet) / `cancelled_running` (Spot Fleet) - The + EC2 Fleet is deleted or the Spot Fleet request is canceled and does + not launch additional instances. Its existing instances continue to + run until they are interrupted or terminated. The request remains in + this state until all instances are interrupted or terminated. + + - `deleted_terminating` (EC2 Fleet) / `cancelled_terminating` (Spot + Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is + canceled and its instances are terminating. The request remains in + this state until all instances are terminated. + + - `expired` - The EC2 Fleet or Spot Fleet request has expired. If the + request was created with `TerminateInstancesWithExpiration` set, a + subsequent `terminated` event indicates that the instances are + terminated. + + - `modify_in_progress` - The EC2 Fleet or Spot Fleet request is being + modified. The request remains in this state until the modification is + fully processed. + + - `modify_succeeded` - The EC2 Fleet or Spot Fleet request was modified. + + - `submitted` - The EC2 Fleet or Spot Fleet request is being evaluated + and Amazon EC2 is preparing to launch the target number of instances. + + - `progress` - The EC2 Fleet or Spot Fleet request is in the process of + being fulfilled. + + `instanceChange` events: + + - `launched` - A new instance was launched. + + - `terminated` - An instance was terminated by the user. + + - `termination_notified` - An instance termination notification was sent + when a Spot Instance was terminated by Amazon EC2 during scale-down, + when the target capacity of the fleet was modified down, for example, + from a target capacity of 4 to a target capacity of 3. + + `Information` events: + + - `fleetProgressHalted` - The price in every launch specification is not + valid because it is below the Spot price (all the launch + specifications have produced `launchSpecUnusable` events). A launch + specification might become valid if the Spot price changes. + + - `launchSpecTemporarilyBlacklisted` - The configuration is not valid + and several attempts to launch instances have failed. For more + information, see the description of the event. + + - `launchSpecUnusable` - The price specified in a launch specification + is not valid because it is below the Spot price for the requested Spot + pools. + + Note: Even if a fleet with the `maintain` request type is in the + process of being canceled, it may still publish a `launchSpecUnusable` + event. This does not mean that the canceled fleet is attempting to + launch a new instance. + + - `registerWithLoadBalancersFailed` - An attempt to register instances + with load balancers failed. For more information, see the description + of the event. + """ + instance_id: str | None = ... + """ + The ID of the instance. This information is available only for + `instanceChange` events. + """ + +class EventType(UnknownEnumMixin, StrEnum): + INSTANCE_CHANGE = "instanceChange" + BATCH_CHANGE = "fleetRequestChange" + ERROR = "error" + INFORMATION = "information" + +class ExcessCapacityTerminationPolicy(UnknownEnumMixin, StrEnum): + NO_TERMINATION = "noTermination" + DEFAULT = "default" + +@dataclass(kw_only=True) +class Explanation(_SerdeShape): + """ + Describes an explanation code for an unreachable path. For more + information, see [Reachability Analyzer explanation + codes](https://docs.aws.amazon.com/vpc/latest/reachability/explanation-codes.html). + """ + + acl: AnalysisComponent | None = ... + """The network ACL.""" + acl_rule: AnalysisAclRule | None = ... + """The network ACL rule.""" + address: str | None = ... + """The IPv4 address, in CIDR notation.""" + addresses: list[str] | None = ... + """The IPv4 addresses, in CIDR notation.""" + attached_to: AnalysisComponent | None = ... + """The resource to which the component is attached.""" + availability_zones: list[str] | None = ... + """The Availability Zones.""" + availability_zone_ids: list[str] | None = ... + """The IDs of the Availability Zones.""" + cidrs: list[str] | None = ... + """The CIDR ranges.""" + component: AnalysisComponent | None = ... + """The component.""" + customer_gateway: AnalysisComponent | None = ... + """The customer gateway.""" + destination: AnalysisComponent | None = ... + """The destination.""" + destination_vpc: AnalysisComponent | None = ... + """The destination VPC.""" + direction: str | None = ... + """ + The direction. The following are the possible values: + + - egress + + - ingress + """ + explanation_code: str | None = ... + """The explanation code.""" + ingress_route_table: AnalysisComponent | None = ... + """The route table.""" + internet_gateway: AnalysisComponent | None = ... + """The internet gateway.""" + load_balancer_arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer.""" + classic_load_balancer_listener: AnalysisLoadBalancerListener | None = ... + """The listener for a Classic Load Balancer.""" + load_balancer_listener_port: int | None = ... + """The listener port of the load balancer.""" + load_balancer_target: AnalysisLoadBalancerTarget | None = ... + """The target.""" + load_balancer_target_group: AnalysisComponent | None = ... + """The target group.""" + load_balancer_target_groups: list[AnalysisComponent] | None = ... + """The target groups.""" + load_balancer_target_port: int | None = ... + """The target port.""" + elastic_load_balancer_listener: AnalysisComponent | None = ... + """The load balancer listener.""" + missing_component: str | None = ... + """The missing component.""" + nat_gateway: AnalysisComponent | None = ... + """The NAT gateway.""" + network_interface: AnalysisComponent | None = ... + """The network interface.""" + packet_field: str | None = ... + """The packet field.""" + vpc_peering_connection: AnalysisComponent | None = ... + """The VPC peering connection.""" + port: int | None = ... + """The port.""" + port_ranges: list[PortRange] | None = ... + """The port ranges.""" + prefix_list: AnalysisComponent | None = ... + """The prefix list.""" + protocols: list[str] | None = ... + """The protocols.""" + route_table_route: AnalysisRouteTableRoute | None = ... + """The route table route.""" + route_table: AnalysisComponent | None = ... + """The route table.""" + security_group: AnalysisComponent | None = ... + """The security group.""" + security_group_rule: AnalysisSecurityGroupRule | None = ... + """The security group rule.""" + security_groups: list[AnalysisComponent] | None = ... + """The security groups.""" + source_vpc: AnalysisComponent | None = ... + """The source VPC.""" + state: str | None = ... + """The state.""" + subnet: AnalysisComponent | None = ... + """The subnet.""" + subnet_route_table: AnalysisComponent | None = ... + """The route table for the subnet.""" + vpc: AnalysisComponent | None = ... + """The component VPC.""" + vpc_endpoint: AnalysisComponent | None = ... + """The VPC endpoint.""" + vpn_connection: AnalysisComponent | None = ... + """The VPN connection.""" + vpn_gateway: AnalysisComponent | None = ... + """The VPN gateway.""" + transit_gateway: AnalysisComponent | None = ... + """The transit gateway.""" + transit_gateway_route_table: AnalysisComponent | None = ... + """The transit gateway route table.""" + transit_gateway_route_table_route: TransitGatewayRouteTableRoute | None = ... + """The transit gateway route table route.""" + transit_gateway_policy_table: AnalysisComponent | None = ... + """The transit gateway policy table.""" + transit_gateway_policy_table_entry: ( + AnalysisTransitGatewayPolicyTableEntry | None + ) = ... + """The transit gateway policy table entry.""" + transit_gateway_attachment: AnalysisComponent | None = ... + """The transit gateway attachment.""" + component_account: str | None = ... + """The Amazon Web Services account for the component.""" + component_region: str | None = ... + """The Region for the component.""" + firewall_stateless_rule: FirewallStatelessRule | None = ... + """The Network Firewall stateless rule.""" + firewall_stateful_rule: FirewallStatefulRule | None = ... + """The Network Firewall stateful rule.""" + +@dataclass(kw_only=True) +class ExportClientVpnClientCertificateRevocationListInput(_SerdeShape): + """ + Dataclass for ExportClientVpnClientCertificateRevocationListInput + structure. + """ + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ExportClientVpnClientCertificateRevocationListOutput(_SerdeShape): + """ + Dataclass for ExportClientVpnClientCertificateRevocationListOutput + structure. + """ + + certificate_revocation_list: str | None = ... + """Information about the client certificate revocation list.""" + status: ClientCertificateRevocationListStatus | None = ... + """The current state of the client certificate revocation list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExportClientVpnClientConfigurationInput(_SerdeShape): + """Dataclass for ExportClientVpnClientConfigurationInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ExportClientVpnClientConfigurationOutput(_SerdeShape): + """Dataclass for ExportClientVpnClientConfigurationOutput structure.""" + + client_configuration: str | None = ... + """The contents of the Client VPN endpoint configuration file.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ExportEnvironment(UnknownEnumMixin, StrEnum): + CITRIX = "citrix" + VMWARE = "vmware" + MICROSOFT = "microsoft" + +@dataclass(kw_only=True) +class ExportImageInput(_SerdeShape): + """Dataclass for ExportImageInput structure.""" + + client_token: str | None = ... + """Token to enable idempotency for export image requests.""" + description: str | None = ... + """ + A description of the image being exported. The maximum length is 255 + characters. + """ + disk_image_format: str | None = ... + """The disk image format.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + image_id: str | None = ... + """The ID of the image.""" + s3_export_location: ExportTaskS3LocationRequest | None = ... + """ + The Amazon S3 bucket for the destination image. The destination bucket + must exist. + """ + role_name: str | None = ... + """ + The name of the role that grants VM Import/Export permission to export + images to your Amazon S3 bucket. If this parameter is not specified, the + default role is named 'vmimport'. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the export image task during creation.""" + +@dataclass(kw_only=True) +class ExportImageOutput(_SerdeShape): + """Dataclass for ExportImageOutput structure.""" + + description: str | None = ... + """A description of the image being exported.""" + disk_image_format: str | None = ... + """The disk image format for the exported image.""" + export_image_task_id: str | None = ... + """The ID of the export image task.""" + image_id: str | None = ... + """The ID of the image.""" + role_name: str | None = ... + """ + The name of the role that grants VM Import/Export permission to export + images to your Amazon S3 bucket. + """ + progress: str | None = ... + """The percent complete of the export image task.""" + s3_export_location: ExportTaskS3Location | None = ... + """Information about the destination Amazon S3 bucket.""" + status: str | None = ... + """ + The status of the export image task. The possible values are `active`, + `completed`, `deleting`, and `deleted`. + """ + status_message: str | None = ... + """The status message for the export image task.""" + tags: list[Tag] | None = ... + """Any tags assigned to the export image task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExportImageTask(_SerdeShape): + """Describes an export image task.""" + + description: str | None = ... + """A description of the image being exported.""" + export_image_task_id: str | None = ... + """The ID of the export image task.""" + image_id: str | None = ... + """The ID of the image.""" + progress: str | None = ... + """The percent complete of the export image task.""" + s3_export_location: ExportTaskS3Location | None = ... + """Information about the destination Amazon S3 bucket.""" + status: str | None = ... + """ + The status of the export image task. The possible values are `active`, + `completed`, `deleting`, and `deleted`. + """ + status_message: str | None = ... + """The status message for the export image task.""" + tags: list[Tag] | None = ... + """Any tags assigned to the export image task.""" + +@dataclass(kw_only=True) +class ExportTask(_SerdeShape): + """Describes an export instance task.""" + + description: str | None = ... + """A description of the resource being exported.""" + export_task_id: str | None = ... + """The ID of the export task.""" + export_to_s3_task: ExportToS3Task | None = ... + """Information about the export task.""" + instance_export_details: InstanceExportDetails | None = ... + """Information about the instance to export.""" + state: str | None = ... + """The state of the export task.""" + status_message: str | None = ... + """The status message related to the export task.""" + tags: list[Tag] | None = ... + """The tags for the export task.""" + +@dataclass(kw_only=True) +class ExportTaskS3Location(_SerdeShape): + """Describes the destination for an export image task.""" + + s3_bucket: str | None = ... + """The destination Amazon S3 bucket.""" + s3_prefix: str | None = ... + """The prefix (logical hierarchy) in the bucket.""" + +@dataclass(kw_only=True) +class ExportTaskS3LocationRequest(_SerdeShape): + """Describes the destination for an export image task.""" + + s3_bucket: str | None = ... + """The destination Amazon S3 bucket.""" + s3_prefix: str | None = ... + """The prefix (logical hierarchy) in the bucket.""" + +class ExportTaskState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + CANCELLING = "cancelling" + CANCELLED = "cancelled" + COMPLETED = "completed" + +@dataclass(kw_only=True) +class ExportToS3Task(_SerdeShape): + """Describes the format and location for the export task.""" + + container_format: str | None = ... + """ + The container format used to combine disk images with metadata (such as + OVF). If absent, only the disk image is exported. + """ + disk_image_format: str | None = ... + """The format for the exported image.""" + s3_bucket: str | None = ... + """ + The Amazon S3 bucket for the destination image. The destination bucket + must exist and have an access control list (ACL) attached that specifies + the Region-specific canonical account ID for the `Grantee`. For more + information about the ACL to your S3 bucket, see + [Prerequisites](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#vmexport-prerequisites) + in the VM Import/Export User Guide. + """ + s3_key: str | None = ... + """The encryption key for your S3 bucket.""" + +@dataclass(kw_only=True) +class ExportToS3TaskSpecification(_SerdeShape): + """Describes an export instance task.""" + + disk_image_format: str | None = ... + """The format for the exported image.""" + container_format: str | None = ... + """ + The container format used to combine disk images with metadata (such as + OVF). If absent, only the disk image is exported. + """ + s3_bucket: str | None = ... + """ + The Amazon S3 bucket for the destination image. The destination bucket + must exist and have an access control list (ACL) attached that specifies + the Region-specific canonical account ID for the `Grantee`. For more + information about the ACL to your S3 bucket, see + [Prerequisites](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#vmexport-prerequisites) + in the VM Import/Export User Guide. + """ + s3_prefix: str | None = ... + """ + The image is written to a single object in the Amazon S3 bucket at the + S3 key s3prefix + exportTaskId + '.' + diskImageFormat. + """ + +@dataclass(kw_only=True) +class ExportTransitGatewayRoutesInput(_SerdeShape): + """Dataclass for ExportTransitGatewayRoutesInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `attachment.transit-gateway-attachment-id` - The id of the transit + gateway attachment. + + - `attachment.resource-id` - The resource id of the transit gateway + attachment. + + - `route-search.exact-match` - The exact match of the specified filter. + + - `route-search.longest-prefix-match` - The longest prefix that matches + the route. + + - `route-search.subnet-of-match` - The routes with a subnet that match + the specified CIDR filter. + + - `route-search.supernet-of-match` - The routes with a CIDR that + encompass the CIDR filter. For example, if you have 10.0.1.0/29 and + 10.0.1.0/31 routes in your route table and you specify + supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29. + + - `state` - The state of the route (`active` | `blackhole`). + + - `transit-gateway-route-destination-cidr-block` - The CIDR range. + + - `type` - The type of route (`propagated` | `static`). + """ + s3_bucket: str | None = ... + """The name of the S3 bucket.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ExportTransitGatewayRoutesOutput(_SerdeShape): + """Dataclass for ExportTransitGatewayRoutesOutput structure.""" + + s3_location: str | None = ... + """ + The URL of the exported file in Amazon S3. For example, + s3://*bucket_name*/VPCTransitGateway/TransitGatewayRouteTables/*file_name*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExportVerifiedAccessInstanceClientConfigurationInput(_SerdeShape): + """ + Dataclass for ExportVerifiedAccessInstanceClientConfigurationInput + structure. + """ + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ExportVerifiedAccessInstanceClientConfigurationOutput(_SerdeShape): + """ + Dataclass for ExportVerifiedAccessInstanceClientConfigurationOutput + structure. + """ + + version: str | None = ... + """The version.""" + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + region: str | None = ... + """The Region.""" + device_trust_providers: list[str] | None = ... + """The device trust providers.""" + user_trust_provider: ( + VerifiedAccessInstanceUserTrustProviderClientConfiguration | None + ) = ... + """The user identity trust provider.""" + open_vpn_configurations: ( + list[VerifiedAccessInstanceOpenVpnClientConfiguration] | None + ) = ... + """The Open VPN configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExternalAuthorityConfiguration(_SerdeShape): + """ + The configuration that links an Amazon VPC IPAM scope to an external + authority system. It specifies the type of external system and the + external resource identifier that identifies your account or instance in + that system. + + For more information, see [Integrate VPC IPAM with Infoblox + infrastructure](https://docs.aws.amazon.com/vpc/latest/ipam/integrate-infoblox-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + + type: str | None = ... + """The type of external authority.""" + external_resource_identifier: str | None = ... + """ + The identifier for the external resource managing this scope. For + Infoblox integrations, this is the Infoblox resource identifier in the + format + ``{=html}`.identity.account.```{=html}`.```{=html}. + """ + +@dataclass(kw_only=True) +class FailedCapacityReservationFleetCancellationResult(_SerdeShape): + """Describes a Capacity Reservation Fleet that could not be cancelled.""" + + capacity_reservation_fleet_id: str | None = ... + """The ID of the Capacity Reservation Fleet that could not be cancelled.""" + cancel_capacity_reservation_fleet_error: ( + CancelCapacityReservationFleetError | None + ) = ... + """Information about the Capacity Reservation Fleet cancellation error.""" + +@dataclass(kw_only=True) +class FailedQueuedPurchaseDeletion(_SerdeShape): + """Describes a Reserved Instance whose queued purchase was not deleted.""" + + error: DeleteQueuedReservedInstancesError | None = ... + """The error.""" + reserved_instances_id: str | None = ... + """The ID of the Reserved Instance.""" + +@dataclass(kw_only=True) +class FastLaunchLaunchTemplateSpecificationRequest(_SerdeShape): + """ + Request to create a launch template for a Windows fast launch enabled + AMI. + + Note: + Note - You can specify either the `LaunchTemplateName` or the + `LaunchTemplateId`, but not both. + """ + + launch_template_id: str | None = ... + """ + Specify the ID of the launch template that the AMI should use for + Windows fast launch. + """ + launch_template_name: str | None = ... + """ + Specify the name of the launch template that the AMI should use for + Windows fast launch. + """ + version: str | None = ... + """ + Specify the version of the launch template that the AMI should use for + Windows fast launch. + """ + +@dataclass(kw_only=True) +class FastLaunchLaunchTemplateSpecificationResponse(_SerdeShape): + """ + Identifies the launch template that the AMI uses for Windows fast + launch. + """ + + launch_template_id: str | None = ... + """The ID of the launch template that the AMI uses for Windows fast launch.""" + launch_template_name: str | None = ... + """ + The name of the launch template that the AMI uses for Windows fast + launch. + """ + version: str | None = ... + """ + The version of the launch template that the AMI uses for Windows fast + launch. + """ + +class FastLaunchResourceType(UnknownEnumMixin, StrEnum): + SNAPSHOT = "snapshot" + +@dataclass(kw_only=True) +class FastLaunchSnapshotConfigurationRequest(_SerdeShape): + """ + Configuration settings for creating and managing pre-provisioned + snapshots for a Windows fast launch enabled AMI. + """ + + target_resource_count: int | None = ... + """ + The number of pre-provisioned snapshots to keep on hand for a Windows + fast launch enabled AMI. + """ + +@dataclass(kw_only=True) +class FastLaunchSnapshotConfigurationResponse(_SerdeShape): + """ + Configuration settings for creating and managing pre-provisioned + snapshots for a Windows fast launch enabled Windows AMI. + """ + + target_resource_count: int | None = ... + """ + The number of pre-provisioned snapshots requested to keep on hand for a + Windows fast launch enabled AMI. + """ + +class FastLaunchStateCode(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + ENABLING_FAILED = "enabling-failed" + ENABLED = "enabled" + ENABLED_FAILED = "enabled-failed" + DISABLING = "disabling" + DISABLING_FAILED = "disabling-failed" + +class FastSnapshotRestoreStateCode(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + OPTIMIZING = "optimizing" + ENABLED = "enabled" + DISABLING = "disabling" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class FederatedAuthentication(_SerdeShape): + """ + Describes the IAM SAML identity providers used for federated + authentication. + """ + + saml_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IAM SAML identity provider.""" + self_service_saml_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM SAML identity provider for the + self-service portal. + """ + +@dataclass(kw_only=True) +class FederatedAuthenticationRequest(_SerdeShape): + """The IAM SAML identity provider used for federated authentication.""" + + saml_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IAM SAML identity provider.""" + self_service_saml_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM SAML identity provider for the + self-service portal. + """ + +@dataclass(kw_only=True) +class Filter(_SerdeShape): + """ + A filter name and value pair that is used to return a more specific list + of results from a describe operation. Filters can be used to match a set + of resources by specific criteria, such as tags, attributes, or IDs. + + If you specify multiple filters, the filters are joined with an `AND`, + and the request returns only results that match all of the specified + filters. + + For more information, see [List and filter using the CLI and + API](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html#Filtering_Resources_CLI) + in the *Amazon EC2 User Guide*. + """ + + name: str | None = ... + """The name of the filter. Filter names are case-sensitive.""" + values: list[str] | None = ... + """ + The filter values. Filter values are case-sensitive. If you specify + multiple values for a filter, the values are joined with an `OR`, and + the request returns all results that match any of the specified values. + """ + +class FilterByDimension(UnknownEnumMixin, StrEnum): + RESOURCE_REGION = "resource-region" + AVAILABILITY_ZONE_ID = "availability-zone-id" + ACCOUNT_ID = "account-id" + ACCOUNT_NAME = "account-name" + INSTANCE_FAMILY = "instance-family" + INSTANCE_TYPE = "instance-type" + INSTANCE_PLATFORM = "instance-platform" + RESERVATION_ARN = "reservation-arn" + RESERVATION_ID = "reservation-id" + RESERVATION_TYPE = "reservation-type" + RESERVATION_CREATE_TIMESTAMP = "reservation-create-timestamp" + RESERVATION_START_TIMESTAMP = "reservation-start-timestamp" + RESERVATION_END_TIMESTAMP = "reservation-end-timestamp" + RESERVATION_END_DATE_TYPE = "reservation-end-date-type" + TENANCY = "tenancy" + RESERVATION_STATE = "reservation-state" + RESERVATION_INSTANCE_MATCH_CRITERIA = "reservation-instance-match-criteria" + RESERVATION_UNUSED_FINANCIAL_OWNER = "reservation-unused-financial-owner" + +@dataclass(kw_only=True) +class FilterPortRange(_SerdeShape): + """Describes a port range.""" + + from_port: int | None = ... + """The first port in the range.""" + to_port: int | None = ... + """The last port in the range.""" + +class FindingsFound(UnknownEnumMixin, StrEnum): + TRUE = "true" + FALSE = "false" + UNKNOWN = "unknown" + +@dataclass(kw_only=True) +class FirewallStatefulRule(_SerdeShape): + """Describes a stateful rule.""" + + rule_group_arn: str | None = ... + """The ARN of the stateful rule group.""" + sources: list[str] | None = ... + """The source IP addresses, in CIDR notation.""" + destinations: list[str] | None = ... + """The destination IP addresses, in CIDR notation.""" + source_ports: list[PortRange] | None = ... + """The source ports.""" + destination_ports: list[PortRange] | None = ... + """The destination ports.""" + protocol: str | None = ... + """The protocol.""" + rule_action: str | None = ... + """The rule action. The possible values are `pass`, `drop`, and `alert`.""" + direction: str | None = ... + """The direction. The possible values are `FORWARD` and `ANY`.""" + +@dataclass(kw_only=True) +class FirewallStatelessRule(_SerdeShape): + """Describes a stateless rule.""" + + rule_group_arn: str | None = ... + """The ARN of the stateless rule group.""" + sources: list[str] | None = ... + """The source IP addresses, in CIDR notation.""" + destinations: list[str] | None = ... + """The destination IP addresses, in CIDR notation.""" + source_ports: list[PortRange] | None = ... + """The source ports.""" + destination_ports: list[PortRange] | None = ... + """The destination ports.""" + protocols: list[int] | None = ... + """The protocols.""" + rule_action: str | None = ... + """ + The rule action. The possible values are `pass`, `drop`, and + `forward_to_site`. + """ + priority: int | None = ... + """The rule priority.""" + +class FleetActivityStatus(UnknownEnumMixin, StrEnum): + ERROR = "error" + PENDING_FULFILLMENT = "pending_fulfillment" + PENDING_TERMINATION = "pending_termination" + FULFILLED = "fulfilled" + +@dataclass(kw_only=True) +class FleetBlockDeviceMappingRequest(_SerdeShape): + """ + Describes a block device mapping, which defines the EBS volumes and + instance store volumes to attach to an instance at launch. + + To override a block device mapping specified in the launch template: + + - Specify the exact same `DeviceName` here as specified in the launch + template. + + - Only specify the parameters you want to change. + + - Any parameters you don't specify here will keep their original launch + template values. + + To add a new block device mapping: + + - Specify a `DeviceName` that doesn't exist in the launch template. + + - Specify all desired parameters here. + """ + + device_name: str | None = ... + """The device name (for example, `/dev/sdh` or `xvdh`).""" + virtual_name: str | None = ... + """ + The virtual device name (`ephemeralN`). Instance store volumes are + numbered starting from 0. An instance type with 2 available instance + store volumes can specify mappings for `ephemeral0` and `ephemeral1`. + The number of available instance store volumes depends on the instance + type. After you connect to the instance, you must mount the volume. + + NVMe instance store volumes are automatically enumerated and assigned a + device name. Including them in your block device mapping has no effect. + + Constraints: For M3 instances, you must specify instance store volumes + in the block device mapping for the instance. When you launch an M3 + instance, we ignore any instance store volumes specified in the block + device mapping for the AMI. + """ + ebs: FleetEbsBlockDeviceRequest | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + no_device: str | None = ... + """ + To omit the device from the block device mapping, specify an empty + string. When this property is specified, the device is removed from the + block device mapping regardless of the assigned value. + """ + +@dataclass(kw_only=True) +class FleetCapacityReservation(_SerdeShape): + """ + Information about a Capacity Reservation in a Capacity Reservation + Fleet. + """ + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which the Capacity Reservation + reserves capacity. + """ + instance_type: str | None = ... + """The instance type for which the Capacity Reservation reserves capacity.""" + instance_platform: str | None = ... + """ + The type of operating system for which the Capacity Reservation reserves + capacity. + """ + availability_zone: str | None = ... + """ + The Availability Zone in which the Capacity Reservation reserves + capacity. + """ + total_instance_count: int | None = ... + """ + The total number of instances for which the Capacity Reservation + reserves capacity. + """ + fulfilled_capacity: float | None = ... + """ + The number of capacity units fulfilled by the Capacity Reservation. For + more information, see [Total target + capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + in the *Amazon EC2 User Guide*. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the Capacity Reservation reserves capacity for + EBS-optimized instance types. + """ + create_date: datetime | None = ... + """The date and time at which the Capacity Reservation was created.""" + weight: float | None = ... + """ + The weight of the instance type in the Capacity Reservation Fleet. For + more information, see [Instance type + weight](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-weight) + in the *Amazon EC2 User Guide*. + """ + priority: int | None = ... + """ + The priority of the instance type in the Capacity Reservation Fleet. For + more information, see [Instance type + priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class FleetCapacityReservationTargetRequest(_SerdeShape): + """ + Describes the target Capacity Reservations or Capacity Reservation + Resource Groups for an EC2 Fleet that launches into reserved capacity. + You can specify Capacity Reservation IDs or a Capacity Reservation + Resource Group ARN, but not both. + """ + + capacity_reservation_ids: list[str] | None = ... + """The IDs of the Capacity Reservations in which to launch the instances.""" + capacity_reservation_resource_group_arns: list[str] | None = ... + """ + The ARNs of the Capacity Reservation Resource Groups in which to launch + the instances. + """ + +class FleetCapacityReservationTenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + +class FleetCapacityReservationUsageStrategy(UnknownEnumMixin, StrEnum): + USE_CAPACITY_RESERVATIONS_FIRST = "use-capacity-reservations-first" + +@dataclass(kw_only=True) +class FleetData(_SerdeShape): + """Describes an EC2 Fleet.""" + + activity_status: str | None = ... + """ + The progress of the EC2 Fleet. + + For fleets of type `instant`, the status is `fulfilled` after all + requests are placed, regardless of whether target capacity is met (this + is the only possible status for `instant` fleets). + + For fleets of type `request` or `maintain`, the status is + `pending_fulfillment` after all requests are placed, `fulfilled` when + the fleet size meets or exceeds target capacity, `pending_termination` + while instances are terminating when fleet size is decreased, and + `error` if there's an error. + """ + create_time: datetime | None = ... + """The creation date and time of the EC2 Fleet.""" + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + fleet_state: str | None = ... + """The state of the EC2 Fleet.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + + Constraints: Maximum 64 ASCII characters + """ + excess_capacity_termination_policy: str | None = ... + """ + Indicates whether running instances should be terminated if the target + capacity of the EC2 Fleet is decreased below the current size of the EC2 + Fleet. + + Supported only for fleets of type `maintain`. + """ + fulfilled_capacity: float | None = ... + """ + The number of units fulfilled by this request compared to the set target + capacity. + """ + fulfilled_on_demand_capacity: float | None = ... + """ + The number of units fulfilled by this request compared to the set target + On-Demand capacity. + """ + launch_template_configs: list[FleetLaunchTemplateConfig] | None = ... + """The launch template and overrides.""" + target_capacity_specification: TargetCapacitySpecification | None = ... + """ + The number of units to request. You can choose to set the target + capacity in terms of instances or a performance characteristic that is + important to your application workload, such as vCPUs, memory, or I/O. + If the request type is `maintain`, you can specify a target capacity of + 0 and add capacity later. + """ + terminate_instances_with_expiration: bool | None = ... + """ + Indicates whether running instances should be terminated when the EC2 + Fleet expires. + """ + type: str | None = ... + """ + The type of request. Indicates whether the EC2 Fleet only `requests` the + target capacity, or also attempts to `maintain` it. If you request a + certain target capacity, EC2 Fleet only places the required requests; it + does not attempt to replenish instances if capacity is diminished, and + it does not submit requests in alternative capacity pools if capacity is + unavailable. To maintain a certain target capacity, EC2 Fleet places the + required requests to meet this target capacity. It also automatically + replenishes any interrupted Spot Instances. Default: `maintain`. + """ + valid_from: datetime | None = ... + """ + The start date and time of the request, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). The default is to start fulfilling + the request immediately. + """ + valid_until: datetime | None = ... + """ + The end date and time of the request, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). At this point, no new instance + requests are placed or able to fulfill the request. The default end date + is 7 days from the current date. + """ + replace_unhealthy_instances: bool | None = ... + """ + Indicates whether EC2 Fleet should replace unhealthy Spot Instances. + Supported only for fleets of type `maintain`. For more information, see + [EC2 Fleet health + checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) + in the *Amazon EC2 User Guide*. + """ + spot_options: SpotOptions | None = ... + """The configuration of Spot Instances in an EC2 Fleet.""" + on_demand_options: OnDemandOptions | None = ... + """The allocation strategy of On-Demand Instances in an EC2 Fleet.""" + reserved_capacity_options: ReservedCapacityOptions | None = ... + """ + Defines EC2 Fleet preferences for utilizing reserved capacity when + DefaultTargetCapacityType is set to `reserved-capacity`. + """ + tags: list[Tag] | None = ... + """The tags for an EC2 Fleet resource.""" + errors: list[DescribeFleetError] | None = ... + """ + Information about the instances that could not be launched by the fleet. + Valid only when **Type** is set to `instant`. + """ + instances: list[DescribeFleetsInstances] | None = ... + """ + Information about the instances that were launched by the fleet. Valid + only when **Type** is set to `instant`. + """ + context: str | None = ... + """Reserved.""" + +@dataclass(kw_only=True) +class FleetEbsBlockDeviceRequest(_SerdeShape): + """Describes a block device for an EBS volume.""" + + encrypted: bool | None = ... + """ + Indicates whether the encryption state of an EBS volume is changed while + being restored from a backing snapshot. The effect of setting the + encryption state to `true` depends on the volume origin (new or from a + snapshot), starting encryption state, ownership, and whether encryption + by default is enabled. For more information, see [Amazon EBS + encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) + in the *Amazon EBS User Guide*. + + In no case can you remove encryption from an encrypted volume. + + Encrypted volumes can only be attached to instances that support Amazon + EBS encryption. For more information, see [Supported instance + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances). + + This parameter is not returned by + [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute). + + For + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage) + and + [RegisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage), + whether you can include this parameter, and the allowed values differ + depending on the type of block device mapping you are creating. + + - If you are creating a block device mapping for a **new (empty) + volume**, you can include this parameter, and specify either `true` + for an encrypted volume, or `false` for an unencrypted volume. If you + omit this parameter, it defaults to `false` (unencrypted). + + - If you are creating a block device mapping from an **existing + encrypted or unencrypted snapshot**, you must omit this parameter. If + you include this parameter, the request will fail, regardless of the + value that you specify. + + - If you are creating a block device mapping from an **existing + unencrypted volume**, you can include this parameter, but you must + specify `false`. If you specify `true`, the request will fail. In this + case, we recommend that you omit the parameter. + + - If you are creating a block device mapping from an **existing + encrypted volume**, you can include this parameter, and specify either + `true` or `false`. However, if you specify `false`, the parameter is + ignored and the block device mapping is always encrypted. In this + case, we recommend that you omit the parameter. + """ + delete_on_termination: bool | None = ... + """ + Indicates whether the EBS volume is deleted on instance termination. For + more information, see [Preserve data when an instance is + terminated](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/preserving-volumes-on-termination.html) + in the *Amazon EC2 User Guide*. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + + The following are the supported values for each volume type: + + - `gp3`: 3,000 - 80,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + For `io2` volumes, you can achieve up to 256,000 IOPS on [instances + built on the Nitro + System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). + On other instances, you can achieve performance up to 32,000 IOPS. + + This parameter is required for `io1` and `io2` volumes. The default for + `gp3` volumes is 3,000 IOPS. + """ + throughput: int | None = ... + """ + The throughput that the volume supports, in MiB/s. + + This parameter is valid only for `gp3` volumes. + + Valid Range: Minimum value of 125. Maximum value of 2,000. + """ + kms_key_id: str | None = ... + """ + Identifier (key ID, key alias, key ARN, or alias ARN) of the customer + managed KMS key to use for EBS encryption. + + This parameter is only supported on `BlockDeviceMapping` objects called + by + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), + [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html), + and + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """ + The size of the volume, in GiBs. You must specify either a snapshot ID + or a volume size. If you specify a snapshot, the default is the snapshot + size. You can specify a volume size that is equal to or larger than the + snapshot size. + + The following are the supported sizes for each volume type: + + - `gp2`: 1 - 16,384 GiB + + - `gp3`: 1 - 65,536 GiB + + - `io1`: 4 - 16,384 GiB + + - `io2`: 4 - 65,536 GiB + + - `st1` and `sc1`: 125 - 16,384 GiB + + - `standard`: 1 - 1024 GiB + """ + volume_type: str | None = ... + """ + The volume type. For more information, see [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + """ + +class FleetEventType(UnknownEnumMixin, StrEnum): + INSTANCE_CHANGE = "instance-change" + FLEET_CHANGE = "fleet-change" + SERVICE_ERROR = "service-error" + +class FleetExcessCapacityTerminationPolicy(UnknownEnumMixin, StrEnum): + NO_TERMINATION = "no-termination" + TERMINATION = "termination" + +class FleetHttpTokensState(UnknownEnumMixin, StrEnum): + OPTIONAL = "optional" + REQUIRED = "required" + +@dataclass(kw_only=True) +class FleetIamInstanceProfileSpecificationRequest(_SerdeShape): + """ + Describes an IAM instance profile. Supported only for fleets of type + `instant`. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the instance profile.""" + name: str | None = ... + """The name of the instance profile.""" + +class FleetInstanceMatchCriteria(UnknownEnumMixin, StrEnum): + OPEN = "open" + +class FleetInstanceMetadataEndpointState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +@dataclass(kw_only=True) +class FleetInstanceMetadataOptionsRequest(_SerdeShape): + """ + Describes the metadata options for the instances. Supported only for + fleets of type `instant`. + """ + + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional, which means that you can use either + IMDSv2 or IMDSv1. + + - `required` - IMDSv2 is required, which means that IMDSv1 is disabled, + and you must use IMDSv2. + """ + http_put_response_hop_limit: int | None = ... + """ + The desired HTTP PUT response hop limit for instance metadata requests. + The larger the number, the further instance metadata requests can + travel. + + Default: `1` + + Possible values: Integers from 1 to 64 + """ + http_endpoint: str | None = ... + """ + Enables or disables the HTTP metadata endpoint on your instances. + + - `enabled` - The HTTP metadata endpoint is enabled. + + - `disabled` - The HTTP metadata endpoint is disabled. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateConfig(_SerdeShape): + """Describes a launch template and overrides.""" + + launch_template_specification: FleetLaunchTemplateSpecification | None = ... + """The launch template.""" + overrides: list[FleetLaunchTemplateOverrides] | None = ... + """ + Any parameters that you specify override the same parameters in the + launch template. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateConfigRequest(_SerdeShape): + """Describes a launch template and overrides.""" + + launch_template_specification: FleetLaunchTemplateSpecificationRequest | None = ... + """ + The launch template to use. You must specify either the launch template + ID or launch template name in the request. + """ + overrides: list[FleetLaunchTemplateOverridesRequest] | None = ... + """ + Any parameters that you specify override the same parameters in the + launch template. + + For fleets of type `request` and `maintain`, a maximum of 300 items is + allowed across all launch templates. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateOverrides(_SerdeShape): + """Describes overrides for a launch template.""" + + instance_type: str | None = ... + """ + The instance type. + + `mac1.metal` is not supported as a launch template override. + + Note: + If you specify `InstanceType`, you can't specify + `InstanceRequirements`. + """ + max_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + + If you specify a maximum price, it must be more than USD $0.001. + Specifying a value below USD $0.001 will result in an + `InvalidParameterValue` error message. + """ + subnet_id: str | None = ... + """The ID of the subnet in which to launch the instances.""" + availability_zone: str | None = ... + """ + The Availability Zone in which to launch the instances. For example, + `us-east-2a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + weighted_capacity: float | None = ... + """ + The number of units provided by the specified instance type. These are + the same units that you chose to set the target capacity in terms of + instances, or a performance characteristic such as vCPUs, memory, or + I/O. + + If the target capacity divided by this value is not a whole number, + Amazon EC2 rounds the number of instances to the next whole number. If + this value is not specified, the default is 1. + + Note: + When specifying weights, the price used in the `lowest-price` and + `price-capacity-optimized` allocation strategies is per *unit* hour + (where the instance price is divided by the specified weight). However, + if all the specified weights are above the requested `TargetCapacity`, + resulting in only 1 instance being launched, the price used is per + *instance* hour. + """ + priority: float | None = ... + """ + The priority for the launch template override. The highest priority is + launched first. + + If the On-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet + uses priority to determine which launch template override to use first + in fulfilling On-Demand capacity. + + If the Spot `AllocationStrategy` is set to + `capacity-optimized-prioritized`, EC2 Fleet uses priority on a + best-effort basis to determine which launch template override to use in + fulfilling Spot capacity, but optimizes for capacity first. + + Valid values are whole numbers starting at `0`. The lower the number, + the higher the priority. If no number is set, the override has the + lowest priority. You can set the same priority for different launch + template overrides. + """ + placement: PlacementResponse | None = ... + """The location where the instance launched, if applicable.""" + instance_requirements: InstanceRequirements | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with those + attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + """ + image_id: str | None = ... + """ + The ID of the AMI in the format `ami-17characters00000`. + + Alternatively, you can specify a Systems Manager parameter, using one of + the following formats. The Systems Manager parameter will resolve to an + AMI ID on launch. + + To reference a public parameter: + + - `resolve:ssm:`*`public-parameter`*` ` + + To reference a parameter stored in the same account: + + - `resolve:ssm:`*`parameter-name`*` ` + + - `resolve:ssm:`*`parameter-name:version-number`*` ` + + - `resolve:ssm:`*`parameter-name:label`*` ` + + To reference a parameter shared from another Amazon Web Services + account: + + - `resolve:ssm:`*`parameter-ARN`*` ` + + - `resolve:ssm:`*`parameter-ARN:version-number`*` ` + + - `resolve:ssm:`*`parameter-ARN:label`*` ` + + For more information, see [Use a Systems Manager parameter instead of an + AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + + Note: + This parameter is only available for fleets of type `instant`. For + fleets of type `maintain` and `request`, you must specify the AMI ID in + the launch template. + """ + block_device_mappings: list[BlockDeviceMappingResponse] | None = ... + """ + The block device mappings, which define the EBS volumes and instance + store volumes to attach to the instance at launch. + + Supported only for fleets of type `instant`. + + For more information, see [Block device mappings for volumes on Amazon + EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) + in the *Amazon EC2 User Guide*. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which to launch the instances. For + example, `use2-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateOverridesRequest(_SerdeShape): + """Describes overrides for a launch template.""" + + instance_type: str | None = ... + """ + The instance type. + + `mac1.metal` is not supported as a launch template override. + + Note: + If you specify `InstanceType`, you can't specify + `InstanceRequirements`. + """ + max_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + + If you specify a maximum price, it must be more than USD $0.001. + Specifying a value below USD $0.001 will result in an + `InvalidParameterValue` error message. + """ + subnet_id: str | None = ... + """ + The IDs of the subnets in which to launch the instances. Separate + multiple subnet IDs using commas (for example, + `subnet-1234abcdeexample1, subnet-0987cdef6example2`). A request of type + `instant` can have only one subnet ID. + """ + availability_zone: str | None = ... + """ + The Availability Zone in which to launch the instances. For example, + `us-east-2a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + weighted_capacity: float | None = ... + """ + The number of units provided by the specified instance type. These are + the same units that you chose to set the target capacity in terms of + instances, or a performance characteristic such as vCPUs, memory, or + I/O. + + If the target capacity divided by this value is not a whole number, + Amazon EC2 rounds the number of instances to the next whole number. If + this value is not specified, the default is 1. + + Note: + When specifying weights, the price used in the `lowest-price` and + `price-capacity-optimized` allocation strategies is per *unit* hour + (where the instance price is divided by the specified weight). However, + if all the specified weights are above the requested `TargetCapacity`, + resulting in only 1 instance being launched, the price used is per + *instance* hour. + """ + priority: float | None = ... + """ + The priority for the launch template override. The highest priority is + launched first. + + If the On-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet + uses priority to determine which launch template override to use first + in fulfilling On-Demand capacity. + + If the Spot `AllocationStrategy` is set to + `capacity-optimized-prioritized`, EC2 Fleet uses priority on a + best-effort basis to determine which launch template override to use in + fulfilling Spot capacity, but optimizes for capacity first. + + Valid values are whole numbers starting at `0`. The lower the number, + the higher the priority. If no number is set, the launch template + override has the lowest priority. You can set the same priority for + different launch template overrides. + """ + placement: Placement | None = ... + """The location where the instance launched, if applicable.""" + key_name: str | None = ... + """ + The name of the key pair to use for the instances. + + Supported only for fleets of type `instant`. + + For more information, see [Amazon EC2 key + pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + in the *Amazon EC2 User Guide*. + """ + block_device_mappings: list[FleetBlockDeviceMappingRequest] | None = ... + """ + The block device mappings, which define the EBS volumes and instance + store volumes to attach to the instance at launch. + + Supported only for fleets of type `instant`. + + For more information, see [Block device mappings for volumes on Amazon + EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) + in the *Amazon EC2 User Guide*. + """ + iam_instance_profile: FleetIamInstanceProfileSpecificationRequest | None = ... + """ + The IAM instance profile to associate with the instances. + + Supported only for fleets of type `instant`. + + For more information, see [IAM roles for Amazon + EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) + in the *Amazon EC2 User Guide*. + """ + metadata_options: FleetInstanceMetadataOptionsRequest | None = ... + """ + The metadata options for the instances. + + Supported only for fleets of type `instant`. + + For more information, see [Configure the instance metadata + service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) + in the *Amazon EC2 User Guide*. + """ + instance_requirements: InstanceRequirementsRequest | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with those + attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + """ + image_id: str | None = ... + """ + The ID of the AMI in the format `ami-17characters00000`. + + Alternatively, you can specify a Systems Manager parameter, using one of + the following formats. The Systems Manager parameter will resolve to an + AMI ID on launch. + + To reference a public parameter: + + - `resolve:ssm:`*`public-parameter`*` ` + + To reference a parameter stored in the same account: + + - `resolve:ssm:`*`parameter-name`*` ` + + - `resolve:ssm:`*`parameter-name:version-number`*` ` + + - `resolve:ssm:`*`parameter-name:label`*` ` + + To reference a parameter shared from another Amazon Web Services + account: + + - `resolve:ssm:`*`parameter-ARN`*` ` + + - `resolve:ssm:`*`parameter-ARN:version-number`*` ` + + - `resolve:ssm:`*`parameter-ARN:label`*` ` + + For more information, see [Use a Systems Manager parameter instead of an + AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + + Note: + This parameter is only available for fleets of type `instant`. For + fleets of type `maintain` and `request`, you must specify the AMI ID in + the launch template. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which to launch the instances. For + example, `use2-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateSpecification(_SerdeShape): + """ + The Amazon EC2 launch template that can be used by a Spot Fleet to + configure Amazon EC2 instances. You must specify either the ID or name + of the launch template in the request, but not both. + + For information about launch templates, see [Launch an instance from a + launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + """ + + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but + not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but + not both. + """ + version: str | None = ... + """ + The launch template version number, `$Latest`, or `$Default`. You must + specify a value, otherwise the request fails. + + If the value is `$Latest`, Amazon EC2 uses the latest version of the + launch template. + + If the value is `$Default`, Amazon EC2 uses the default version of the + launch template. + """ + +@dataclass(kw_only=True) +class FleetLaunchTemplateSpecificationRequest(_SerdeShape): + """ + The Amazon EC2 launch template that can be used by an EC2 Fleet to + configure Amazon EC2 instances. You must specify either the ID or name + of the launch template in the request, but not both. + + For information about launch templates, see [Launch an instance from a + launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + """ + + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but + not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but + not both. + """ + version: str | None = ... + """ + The launch template version number, `$Latest`, or `$Default`. You must + specify a value, otherwise the request fails. + + If the value is `$Latest`, Amazon EC2 uses the latest version of the + launch template. + + If the value is `$Default`, Amazon EC2 uses the default version of the + launch template. + """ + launch_template_specification_user_data: str | None = ... + """ + The base64-encoded user data for instances launched by the fleet. User + data is limited to 16 KB, in raw form, before it is base64-encoded. + + Supported only for fleets of type `instant`. + """ + +class FleetOnDemandAllocationStrategy(UnknownEnumMixin, StrEnum): + LOWEST_PRICE = "lowest-price" + PRIORITIZED = "prioritized" + +class FleetReplacementStrategy(UnknownEnumMixin, StrEnum): + LAUNCH = "launch" + LAUNCH_BEFORE_TERMINATE = "launch-before-terminate" + +class FleetReservationType(UnknownEnumMixin, StrEnum): + ON_DEMAND_CAPACITY_RESERVATION = "on-demand-capacity-reservation" + CAPACITY_BLOCK = "capacity-block" + INTERRUPTIBLE_CAPACITY_RESERVATION = "interruptible-capacity-reservation" + +@dataclass(kw_only=True) +class FleetSpotCapacityRebalance(_SerdeShape): + """ + The strategy to use when Amazon EC2 emits a signal that your Spot + Instance is at an elevated risk of being interrupted. + """ + + replacement_strategy: str | None = ... + """ + The replacement strategy to use. Only available for fleets of type + `maintain`. + + `launch` - EC2 Fleet launches a new replacement Spot Instance when a + rebalance notification is emitted for an existing Spot Instance in the + fleet. EC2 Fleet does not terminate the instances that receive a + rebalance notification. You can terminate the old instances, or you can + leave them running. You are charged for all instances while they are + running. + + `launch-before-terminate` - EC2 Fleet launches a new replacement Spot + Instance when a rebalance notification is emitted for an existing Spot + Instance in the fleet, and then, after a delay that you specify (in + `TerminationDelay`), terminates the instances that received a rebalance + notification. + """ + termination_delay: int | None = ... + """ + The amount of time (in seconds) that Amazon EC2 waits before terminating + the old Spot Instance after launching a new replacement Spot Instance. + + Required when `ReplacementStrategy` is set to `launch-before-terminate`. + + Not valid when `ReplacementStrategy` is set to `launch`. + + Valid values: Minimum value of `120` seconds. Maximum value of `7200` + seconds. + """ + +@dataclass(kw_only=True) +class FleetSpotCapacityRebalanceRequest(_SerdeShape): + """ + The Spot Instance replacement strategy to use when Amazon EC2 emits a + rebalance notification signal that your Spot Instance is at an elevated + risk of being interrupted. For more information, see [Capacity + rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-capacity-rebalance.html) + in the *Amazon EC2 User Guide*. + """ + + replacement_strategy: str | None = ... + """ + The replacement strategy to use. Only available for fleets of type + `maintain`. + + `launch` - EC2 Fleet launches a replacement Spot Instance when a + rebalance notification is emitted for an existing Spot Instance in the + fleet. EC2 Fleet does not terminate the instances that receive a + rebalance notification. You can terminate the old instances, or you can + leave them running. You are charged for all instances while they are + running. + + `launch-before-terminate` - EC2 Fleet launches a replacement Spot + Instance when a rebalance notification is emitted for an existing Spot + Instance in the fleet, and then, after a delay that you specify (in + `TerminationDelay`), terminates the instances that received a rebalance + notification. + """ + termination_delay: int | None = ... + """ + The amount of time (in seconds) that Amazon EC2 waits before terminating + the old Spot Instance after launching a new replacement Spot Instance. + + Required when `ReplacementStrategy` is set to `launch-before-terminate`. + + Not valid when `ReplacementStrategy` is set to `launch`. + + Valid values: Minimum value of `120` seconds. Maximum value of `7200` + seconds. + """ + +@dataclass(kw_only=True) +class FleetSpotMaintenanceStrategies(_SerdeShape): + """ + The strategies for managing your Spot Instances that are at an elevated + risk of being interrupted. + """ + + capacity_rebalance: FleetSpotCapacityRebalance | None = ... + """ + The strategy to use when Amazon EC2 emits a signal that your Spot + Instance is at an elevated risk of being interrupted. + """ + +@dataclass(kw_only=True) +class FleetSpotMaintenanceStrategiesRequest(_SerdeShape): + """ + The strategies for managing your Spot Instances that are at an elevated + risk of being interrupted. + """ + + capacity_rebalance: FleetSpotCapacityRebalanceRequest | None = ... + """ + The strategy to use when Amazon EC2 emits a signal that your Spot + Instance is at an elevated risk of being interrupted. + """ + +class FleetStateCode(UnknownEnumMixin, StrEnum): + SUBMITTED = "submitted" + ACTIVE = "active" + DELETED = "deleted" + FAILED = "failed" + DELETED_RUNNING = "deleted_running" + DELETED_TERMINATING_INSTANCES = "deleted_terminating" + MODIFYING = "modifying" + +class FleetType(UnknownEnumMixin, StrEnum): + REQUEST = "request" + MAINTAIN = "maintain" + INSTANT = "instant" + +class FlexibleEnaQueuesSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +@dataclass(kw_only=True) +class FlowLog(_SerdeShape): + """Describes a flow log.""" + + creation_time: datetime | None = ... + """The date and time the flow log was created.""" + deliver_logs_error_message: str | None = ... + """ + Information about the error that occurred. `Rate limited` indicates that + CloudWatch Logs throttling has been applied for one or more network + interfaces, or that you've reached the limit on the number of log + groups that you can create. `Access error` indicates that the IAM role + associated with the flow log does not have sufficient permissions to + publish to CloudWatch Logs. `Unknown error` indicates an internal error. + """ + deliver_logs_permission_arn: str | None = ... + """ + The ARN of the IAM role allows the service to publish logs to CloudWatch + Logs. + """ + deliver_cross_account_role: str | None = ... + """ + The ARN of the IAM role that allows the service to publish flow logs + across accounts. + """ + deliver_logs_status: str | None = ... + """The status of the logs delivery (`SUCCESS` | `FAILED`).""" + flow_log_id: str | None = ... + """The ID of the flow log.""" + flow_log_status: str | None = ... + """The status of the flow log (`ACTIVE`).""" + log_group_name: str | None = ... + """The name of the flow log group.""" + resource_id: str | None = ... + """The ID of the resource being monitored.""" + traffic_type: str | None = ... + """The type of traffic captured for the flow log.""" + log_destination_type: str | None = ... + """The type of destination for the flow log data.""" + log_destination: str | None = ... + """The Amazon Resource Name (ARN) of the destination for the flow log data.""" + log_format: str | None = ... + """The format of the flow log record.""" + tags: list[Tag] | None = ... + """The tags for the flow log.""" + max_aggregation_interval: int | None = ... + """ + The maximum interval of time, in seconds, during which a flow of packets + is captured and aggregated into a flow log record. + + When a network interface is attached to a [Nitro-based + instance](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), + the aggregation interval is always 60 seconds (1 minute) or less, + regardless of the specified value. + + Valid Values: `60` | `600` + """ + destination_options: DestinationOptionsResponse | None = ... + """The destination options.""" + tag_field_specifications: list[TagFieldSpecificationResponse] | None = ... + """ + The tag configuration associated with the Flow Logs Amazon EC2 Tags + feature fields in your custom log format. + """ + +class FlowLogsResourceType(UnknownEnumMixin, StrEnum): + VPC = "VPC" + SUBNET = "Subnet" + NETWORK_INTERFACE = "NetworkInterface" + TRANSIT_GATEWAY = "TransitGateway" + TRANSIT_GATEWAY_ATTACHMENT = "TransitGatewayAttachment" + REGIONAL_NAT_GATEWAY = "RegionalNatGateway" + CORE_NETWORK = "CoreNetwork" + CORE_NETWORK_EDGE = "CoreNetworkEdge" + CORE_NETWORK_ATTACHMENT = "CoreNetworkAttachment" + +@dataclass(kw_only=True) +class FpgaDeviceInfo(_SerdeShape): + """Describes the FPGA accelerator for the instance type.""" + + name: str | None = ... + """The name of the FPGA accelerator.""" + manufacturer: str | None = ... + """The manufacturer of the FPGA accelerator.""" + count: int | None = ... + """The count of FPGA accelerators for the instance type.""" + memory_info: FpgaDeviceMemoryInfo | None = ... + """Describes the memory for the FPGA accelerator for the instance type.""" + +@dataclass(kw_only=True) +class FpgaDeviceMemoryInfo(_SerdeShape): + """Describes the memory for the FPGA accelerator for the instance type.""" + + size_in_mi_b: int | None = ... + """The size of the memory available to the FPGA accelerator, in MiB.""" + +@dataclass(kw_only=True) +class FpgaImage(_SerdeShape): + """Describes an Amazon FPGA image (AFI).""" + + fpga_image_id: str | None = ... + """The FPGA image identifier (AFI ID).""" + fpga_image_global_id: str | None = ... + """The global FPGA image identifier (AGFI ID).""" + name: str | None = ... + """The name of the AFI.""" + description: str | None = ... + """The description of the AFI.""" + shell_version: str | None = ... + """ + The version of the Amazon Web Services Shell that was used to create the + bitstream. + """ + pci_id: PciId | None = ... + """Information about the PCI bus.""" + state: FpgaImageState | None = ... + """Information about the state of the AFI.""" + create_time: datetime | None = ... + """The date and time the AFI was created.""" + update_time: datetime | None = ... + """The time of the most recent update to the AFI.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the AFI.""" + owner_alias: str | None = ... + """ + The alias of the AFI owner. Possible values include `self`, `amazon`, + and `aws-marketplace`. + """ + product_codes: list[ProductCode] | None = ... + """The product codes for the AFI.""" + tags: list[Tag] | None = ... + """Any tags assigned to the AFI.""" + public: bool | None = ... + """Indicates whether the AFI is public.""" + data_retention_support: bool | None = ... + """Indicates whether data retention support is enabled for the AFI.""" + instance_types: list[str] | None = ... + """The instance types supported by the AFI.""" + +@dataclass(kw_only=True) +class FpgaImageAttribute(_SerdeShape): + """Describes an Amazon FPGA image (AFI) attribute.""" + + fpga_image_id: str | None = ... + """The ID of the AFI.""" + name: str | None = ... + """The name of the AFI.""" + description: str | None = ... + """The description of the AFI.""" + load_permissions: list[LoadPermission] | None = ... + """The load permissions.""" + product_codes: list[ProductCode] | None = ... + """The product codes.""" + +class FpgaImageAttributeName(UnknownEnumMixin, StrEnum): + DESCRIPTION = "description" + NAME = "name" + LOAD_PERMISSION = "loadPermission" + PRODUCT_CODES = "productCodes" + +@dataclass(kw_only=True) +class FpgaImageState(_SerdeShape): + """ + Describes the state of the bitstream generation process for an Amazon + FPGA image (AFI). + """ + + code: str | None = ... + """ + The state. The following are the possible values: + + - `pending` - AFI bitstream generation is in progress. + + - `available` - The AFI is available for use. + + - `failed` - AFI bitstream generation failed. + + - `unavailable` - The AFI is no longer available for use. + """ + message: str | None = ... + """If the state is `failed`, this is the error message.""" + +class FpgaImageStateCode(UnknownEnumMixin, StrEnum): + PENDING = "pending" + FAILED = "failed" + AVAILABLE = "available" + UNAVAILABLE = "unavailable" + +@dataclass(kw_only=True) +class FpgaInfo(_SerdeShape): + """Describes the FPGAs for the instance type.""" + + fpgas: list[FpgaDeviceInfo] | None = ... + """Describes the FPGAs for the instance type.""" + total_fpga_memory_in_mi_b: int | None = ... + """The total memory of all FPGA accelerators for the instance type.""" + +class GatewayAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATED = "associated" + NOT_ASSOCIATED = "not-associated" + ASSOCIATING = "associating" + DISASSOCIATING = "disassociating" + +class GatewayType(UnknownEnumMixin, StrEnum): + IPSEC_1 = "ipsec.1" + +@dataclass(kw_only=True) +class GetActiveVpnTunnelStatusInput(_SerdeShape): + """Dataclass for GetActiveVpnTunnelStatusInput structure.""" + + vpn_connection_id: str | None = ... + """ + The ID of the VPN connection for which to retrieve the active tunnel + status. + """ + vpn_tunnel_outside_ip_address: str | None = ... + """ + The external IP address of the VPN tunnel for which to retrieve the + active status. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request. + """ + +@dataclass(kw_only=True) +class GetActiveVpnTunnelStatusOutput(_SerdeShape): + """Dataclass for GetActiveVpnTunnelStatusOutput structure.""" + + active_vpn_tunnel_status: ActiveVpnTunnelStatus | None = ... + """Information about the current security configuration of the VPN tunnel.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAllowedImagesSettingsInput(_SerdeShape): + """Dataclass for GetAllowedImagesSettingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetAllowedImagesSettingsOutput(_SerdeShape): + """Dataclass for GetAllowedImagesSettingsOutput structure.""" + + state: str | None = ... + """ + The current state of the Allowed AMIs setting at the account level in + the specified Amazon Web Services Region. + + Possible values: + + - `disabled`: All AMIs are allowed. + + - `audit-mode`: All AMIs are allowed, but the `ImageAllowed` field is + set to `true` if the AMI would be allowed with the current list of + criteria if allowed AMIs was enabled. + + - `enabled`: Only AMIs matching the image criteria are discoverable and + available for use. + """ + image_criteria: list[ImageCriterion] | None = ... + """ + The list of criteria for images that are discoverable and usable in the + account in the specified Amazon Web Services Region. + """ + managed_by: str | None = ... + """ + The entity that manages the Allowed AMIs settings. Possible values + include: + + - `account` - The Allowed AMIs settings is managed by the account. + + - `declarative-policy` - The Allowed AMIs settings is managed by a + declarative policy and can't be modified by the account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAssociatedEnclaveCertificateIamRolesInput(_SerdeShape): + """Dataclass for GetAssociatedEnclaveCertificateIamRolesInput structure.""" + + certificate_arn: str | None = ... + """ + The ARN of the ACM certificate for which to view the associated IAM + roles, encryption keys, and Amazon S3 object information. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetAssociatedEnclaveCertificateIamRolesOutput(_SerdeShape): + """Dataclass for GetAssociatedEnclaveCertificateIamRolesOutput structure.""" + + associated_roles: list[AssociatedRole] | None = ... + """Information about the associated IAM roles.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAssociatedIpv6PoolCidrsInput(_SerdeShape): + """Dataclass for GetAssociatedIpv6PoolCidrsInput structure.""" + + pool_id: str | None = ... + """The ID of the IPv6 address pool.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetAssociatedIpv6PoolCidrsOutput(_SerdeShape): + """Dataclass for GetAssociatedIpv6PoolCidrsOutput structure.""" + + ipv6_cidr_associations: list[Ipv6CidrAssociation] | None = ... + """Information about the IPv6 CIDR block associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAwsNetworkPerformanceDataInput(_SerdeShape): + """Dataclass for GetAwsNetworkPerformanceDataInput structure.""" + + data_queries: list[DataQuery] | None = ... + """A list of network performance data queries.""" + start_time: datetime | None = ... + """ + The starting time for the performance data request. The starting time + must be formatted as `yyyy-mm-ddThh:mm:ss`. For example, + `2022-06-10T12:00:00.000Z`. + """ + end_time: datetime | None = ... + """ + The ending time for the performance data request. The end time must be + formatted as `yyyy-mm-ddThh:mm:ss`. For example, + `2022-06-12T12:00:00.000Z`. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetAwsNetworkPerformanceDataOutput(_SerdeShape): + """Dataclass for GetAwsNetworkPerformanceDataOutput structure.""" + + data_responses: list[DataResponse] | None = ... + """The list of data responses.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerAttributesInput(_SerdeShape): + """Dataclass for GetCapacityManagerAttributesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerAttributesOutput(_SerdeShape): + """Dataclass for GetCapacityManagerAttributesOutput structure.""" + + capacity_manager_status: str | None = ... + """The current status of Capacity Manager.""" + organizations_access: bool | None = ... + """ + Indicates whether Organizations access is enabled for cross-account data + aggregation. + """ + data_export_count: int | None = ... + """ + The number of active data export configurations for this account. This + count includes all data exports regardless of their current delivery + status. + """ + ingestion_status: str | None = ... + """ + The current data ingestion status. Initial ingestion may take several + hours after enabling Capacity Manager. + """ + ingestion_status_message: str | None = ... + """ + A descriptive message providing additional details about the current + ingestion status. This may include error information if ingestion has + failed or progress details during initial setup. + """ + earliest_datapoint_timestamp: datetime | None = ... + """ + The timestamp of the earliest data point available in Capacity Manager, + in milliseconds since epoch. This indicates how far back historical data + is available for queries. + """ + latest_datapoint_timestamp: datetime | None = ... + """ + The timestamp of the most recent data point ingested by Capacity + Manager, in milliseconds since epoch. This indicates how current your + capacity data is. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMetricDataInput(_SerdeShape): + """Dataclass for GetCapacityManagerMetricDataInput structure.""" + + metric_names: list[str] | None = ... + """The names of the metrics to retrieve. Maximum of 10 metrics per request.""" + start_time: datetime | None = ... + """ + The start time for the metric data query, in ISO 8601 format. The time + range (end time - start time) must be a multiple of the specified + period. + """ + end_time: datetime | None = ... + """ + The end time for the metric data query, in ISO 8601 format. If the end + time is beyond the latest ingested data, it will be automatically + adjusted to the latest available data point. + """ + period: int | None = ... + """The granularity, in seconds, of the returned data points.""" + group_by: list[str] | None = ... + """ + The dimensions by which to group the metric data. This determines how + the data is aggregated and returned. + """ + filter_by: list[CapacityManagerCondition] | None = ... + """ + Conditions to filter the metric data. Each filter specifies a dimension, + comparison operator ('equals', 'in'), and values to match against. + """ + max_results: int | None = ... + """ + The maximum number of data points to return. Valid range is 1 to + 100,000. Use with NextToken for pagination of large result sets. + """ + next_token: str | None = ... + """ + The token for the next page of results. Use this value in a subsequent + call to retrieve additional data points. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMetricDataOutput(_SerdeShape): + """Dataclass for GetCapacityManagerMetricDataOutput structure.""" + + metric_data_results: list[MetricDataResult] | None = ... + """ + The metric data points returned by the query. Each result contains + dimension values, timestamp, and metric values with their associated + statistics. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMetricDimensionsInput(_SerdeShape): + """Dataclass for GetCapacityManagerMetricDimensionsInput structure.""" + + group_by: list[str] | None = ... + """ + The dimensions to group by when retrieving available dimension values. + This determines which dimension combinations are returned. Required + parameter. + """ + filter_by: list[CapacityManagerCondition] | None = ... + """ + Conditions to filter which dimension values are returned. Each filter + specifies a dimension, comparison operator, and values to match against. + """ + start_time: datetime | None = ... + """ + The start time for the dimension query, in ISO 8601 format. Only + dimensions with data in this time range will be returned. + """ + end_time: datetime | None = ... + """ + The end time for the dimension query, in ISO 8601 format. Only + dimensions with data in this time range will be returned. + """ + metric_names: list[str] | None = ... + """ + The metric names to use as an additional filter when retrieving + dimensions. Only dimensions that have data for these metrics will be + returned. Required parameter with maximum size of 1 for v1. + """ + max_results: int | None = ... + """ + The maximum number of dimension combinations to return. Valid range is 1 + to 1000. Use with NextToken for pagination. + """ + next_token: str | None = ... + """ + The token for the next page of results. Use this value in a subsequent + call to retrieve additional dimension values. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMetricDimensionsOutput(_SerdeShape): + """Dataclass for GetCapacityManagerMetricDimensionsOutput structure.""" + + metric_dimension_results: list[CapacityManagerDimension] | None = ... + """ + The available dimension combinations that have data within the specified + time range and filters. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMonitoredTagKeysInput(_SerdeShape): + """Dataclass for GetCapacityManagerMonitoredTagKeysInput structure.""" + + max_results: int | None = ... + """ + The maximum number of results to return in a single call. To retrieve + the remaining results, make another call with the returned `NextToken` + value. If not specified, up to 1000 results are returned. + """ + next_token: str | None = ... + """ + The token for the next page of results. Use the value returned from a + previous call to retrieve additional results. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerMonitoredTagKeysOutput(_SerdeShape): + """Dataclass for GetCapacityManagerMonitoredTagKeysOutput structure.""" + + capacity_manager_tag_keys: list[CapacityManagerMonitoredTagKey] | None = ... + """ + The list of tag keys being monitored by Capacity Manager, including + their current status and metadata. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerSupportabilityScoresInput(_SerdeShape): + """Dataclass for GetCapacityManagerSupportabilityScoresInput structure.""" + + market_type: str | None = ... + """The capacity market to score.""" + capacity_amount: int | None = ... + """ + The amount of capacity that you need, in the unit that you specify for + `CapacityUnit`. Each score is relative to this amount. + """ + capacity_unit: str | None = ... + """The unit for `CapacityAmount`.""" + capacity_availability_zone_ids: list[str] | None = ... + """ + The IDs of the Availability Zones to score, such as `use1-az1`. You can + specify Availability Zones in different Regions. You can specify up to + 10 Availability Zones. + """ + instance_types: list[str] | None = ... + """ + The instance types to score. You can specify up to 50 instance types. + + Specify either `InstanceTypes` or `InstanceRequirementsWithMetadata`, + but not both. + """ + instance_requirements_with_metadata: ( + InstanceRequirementsWithMetadataRequest | None + ) = ... + """ + The attributes that the instance types must have, such as vCPU and + memory ranges. Capacity Manager resolves the attributes into matching + instance types and scores each one. + + Specify either `InstanceTypes` or `InstanceRequirementsWithMetadata`, + but not both. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityManagerSupportabilityScoresOutput(_SerdeShape): + """Dataclass for GetCapacityManagerSupportabilityScoresOutput structure.""" + + aggregate_score: str | None = ... + """ + The score for all instance type and Availability Zone combinations in + the request together. A `high` aggregate score with lower individual + scores means that no single combination can support the full request, + but the combinations together can. + """ + capacity_manager_supportability_scores: ( + list[CapacityManagerSupportabilityScore] | None + ) = ... + """ + The score for each instance type and Availability Zone combination in + the request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCapacityReservationUsageInput(_SerdeShape): + """Dataclass for GetCapacityReservationUsageInput structure.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCapacityReservationUsageOutput(_SerdeShape): + """Dataclass for GetCapacityReservationUsageOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + instance_type: str | None = ... + """ + The type of instance for which the Capacity Reservation reserves + capacity. + """ + total_instance_count: int | None = ... + """ + The number of instances for which the Capacity Reservation reserves + capacity. + """ + available_instance_count: int | None = ... + """ + The remaining capacity. Indicates the number of instances that can be + launched in the Capacity Reservation. + """ + state: str | None = ... + """ + The current state of the Capacity Reservation. A Capacity Reservation + can be in one of the following states: + + - `active` - The capacity is available for use. + + - `expired` - The Capacity Reservation expired automatically at the date + and time specified in your reservation request. The reserved capacity + is no longer available for your use. + + - `cancelled` - The Capacity Reservation was canceled. The reserved + capacity is no longer available for your use. + + - `pending` - The Capacity Reservation request was successful but the + capacity provisioning is still pending. + + - `failed` - The Capacity Reservation request has failed. A request can + fail due to request parameters that are not valid, capacity + constraints, or instance limit constraints. You can view a failed + request for 60 minutes. + + - `scheduled` - (*Future-dated Capacity Reservations*) The future-dated + Capacity Reservation request was approved and the Capacity Reservation + is scheduled for delivery on the requested start date. + + - `payment-pending` - (*Capacity Blocks*) The upfront payment has not + been processed yet. + + - `payment-failed` - (*Capacity Blocks*) The upfront payment was not + processed in the 12-hour time frame. Your Capacity Block was released. + + - `assessing` - (*Future-dated Capacity Reservations*) Amazon EC2 is + assessing your request for a future-dated Capacity Reservation. + + - `delayed` - (*Future-dated Capacity Reservations*) Amazon EC2 + encountered a delay in provisioning the requested future-dated + Capacity Reservation. Amazon EC2 is unable to deliver the requested + capacity by the requested start date and time. + + - `unsupported` - (*Future-dated Capacity Reservations*) Amazon EC2 + can't support the future-dated Capacity Reservation request due to + capacity constraints. You can view unsupported requests for 30 days. + The Capacity Reservation will not be delivered. + + - `cancelling` - (*Future-dated Capacity Reservations*) The Capacity + Reservation is being cancelled. Capacity has been released but charges + continue for the commitment wind-down period. The reservation + transitions to `cancelled` when the wind-down completes. + """ + instance_usages: list[InstanceUsage] | None = ... + """Information about the Capacity Reservation usage.""" + interruptible: bool | None = ... + """ + Indicates whether the Capacity Reservation is interruptible, meaning + instances may be terminated when the owner reclaims capacity. + """ + interruptible_capacity_allocation: InterruptibleCapacityAllocation | None = ... + """ + Information about the capacity allocated to the interruptible Capacity + Reservation, including instance counts and allocation status. + """ + interruption_info: InterruptionInfo | None = ... + """ + Details about the interruption configuration and source reservation for + interruptible Capacity Reservations. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetClientVpnEndpointAuthorizationPolicyInput(_SerdeShape): + """Dataclass for GetClientVpnEndpointAuthorizationPolicyInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetClientVpnEndpointAuthorizationPolicyOutput(_SerdeShape): + """Dataclass for GetClientVpnEndpointAuthorizationPolicyOutput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + policy_document: str | None = ... + """The authorization policy document, written in the Cedar policy language.""" + description: str | None = ... + """A brief description of the authorization policy.""" + shadow_mode: str | None = ... + """ + Specifies whether the authorization policy is evaluated in shadow mode. + Possible values include: + + - `enabled` - The authorization policy is evaluated and the results are + logged, but access is not enforced. + + - `disabled` - The authorization policy is enforced. + """ + status: str | None = ... + """The current state of the authorization policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCoipPoolUsageInput(_SerdeShape): + """Dataclass for GetCoipPoolUsageInput structure.""" + + pool_id: str | None = ... + """The ID of the address pool.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `coip-address-usage.allocation-id` - The allocation ID of the address. + + - `coip-address-usage.aws-account-id` - The ID of the Amazon Web + Services account that is using the customer-owned IP address. + + - `coip-address-usage.aws-service` - The Amazon Web Services service + that is using the customer-owned IP address. + + - `coip-address-usage.co-ip` - The customer-owned IP address. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetCoipPoolUsageOutput(_SerdeShape): + """Dataclass for GetCoipPoolUsageOutput structure.""" + + coip_pool_id: str | None = ... + """The ID of the customer-owned address pool.""" + coip_address_usages: list[CoipAddressUsage] | None = ... + """Information about the address usage.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetConsoleOutputInput(_SerdeShape): + """Dataclass for GetConsoleOutputInput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + latest: bool | None = ... + """ + When enabled, retrieves the latest console output for the instance. + + Default: disabled (`false`) + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetConsoleOutputOutput(_SerdeShape): + """Dataclass for GetConsoleOutputOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + timestamp: datetime | None = ... + """The time at which the output was last updated.""" + output: str | None = ... + """ + The console output, base64-encoded. If you are using a command line + tool, the tool decodes the output for you. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetConsoleScreenshotInput(_SerdeShape): + """Dataclass for GetConsoleScreenshotInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + wake_up: bool | None = ... + """ + When set to `true`, acts as keystroke input and wakes up an instance + that's in standby or \"sleep\" mode. + """ + +@dataclass(kw_only=True) +class GetConsoleScreenshotOutput(_SerdeShape): + """Dataclass for GetConsoleScreenshotOutput structure.""" + + image_data: str | None = ... + """The data that comprises the image.""" + instance_id: str | None = ... + """The ID of the instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDeclarativePoliciesReportSummaryInput(_SerdeShape): + """Dataclass for GetDeclarativePoliciesReportSummaryInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + report_id: str | None = ... + """The ID of the report.""" + +@dataclass(kw_only=True) +class GetDeclarativePoliciesReportSummaryOutput(_SerdeShape): + """Dataclass for GetDeclarativePoliciesReportSummaryOutput structure.""" + + report_id: str | None = ... + """The ID of the report.""" + s3_bucket: str | None = ... + """The name of the Amazon S3 bucket where the report is located.""" + s3_prefix: str | None = ... + """The prefix for your S3 object.""" + target_id: str | None = ... + """ + The root ID, organizational unit ID, or account ID. + + Format: + + - For root: `r-ab12` + + - For OU: `ou-ab12-cdef1234` + + - For account: `123456789012` + """ + start_time: datetime | None = ... + """The time when the report generation started.""" + end_time: datetime | None = ... + """The time when the report generation ended.""" + number_of_accounts: int | None = ... + """The total number of accounts associated with the specified `targetId`.""" + number_of_failed_accounts: int | None = ... + """ + The number of accounts where attributes could not be retrieved in any + Region. + """ + attribute_summaries: list[AttributeSummary] | None = ... + """The attributes described in the report.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDefaultCreditSpecificationInput(_SerdeShape): + """Dataclass for GetDefaultCreditSpecificationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_family: str | None = ... + """The instance family.""" + +@dataclass(kw_only=True) +class GetDefaultCreditSpecificationOutput(_SerdeShape): + """Dataclass for GetDefaultCreditSpecificationOutput structure.""" + + instance_family_credit_specification: InstanceFamilyCreditSpecification | None = ... + """The default credit option for CPU usage of the instance family.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetEbsDefaultKmsKeyIdInput(_SerdeShape): + """Dataclass for GetEbsDefaultKmsKeyIdInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetEbsDefaultKmsKeyIdOutput(_SerdeShape): + """Dataclass for GetEbsDefaultKmsKeyIdOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the default KMS key for encryption by + default. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetEbsEncryptionByDefaultInput(_SerdeShape): + """Dataclass for GetEbsEncryptionByDefaultInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetEbsEncryptionByDefaultOutput(_SerdeShape): + """Dataclass for GetEbsEncryptionByDefaultOutput structure.""" + + ebs_encryption_by_default: bool | None = ... + """Indicates whether encryption by default is enabled.""" + sse_type: str | None = ... + """Reserved for future use.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetEnabledIpamPolicyInput(_SerdeShape): + """Dataclass for GetEnabledIpamPolicyInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetEnabledIpamPolicyOutput(_SerdeShape): + """Dataclass for GetEnabledIpamPolicyOutput structure.""" + + ipam_policy_enabled: bool | None = ... + """Indicates whether the IPAM policy is enabled.""" + ipam_policy_id: str | None = ... + """The ID of the enabled IPAM policy.""" + managed_by: str | None = ... + """The entity that manages the IPAM policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetFlowLogsIntegrationTemplateInput(_SerdeShape): + """Dataclass for GetFlowLogsIntegrationTemplateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + flow_log_id: str | None = ... + """The ID of the flow log.""" + config_delivery_s3_destination_arn: str | None = ... + """ + To store the CloudFormation template in Amazon S3, specify the location + in Amazon S3. + """ + integrate_services: IntegrateServices | None = ... + """Information about the service integration.""" + +@dataclass(kw_only=True) +class GetFlowLogsIntegrationTemplateOutput(_SerdeShape): + """Dataclass for GetFlowLogsIntegrationTemplateOutput structure.""" + + result: str | None = ... + """The generated CloudFormation template.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetGroupsForCapacityReservationInput(_SerdeShape): + """Dataclass for GetGroupsForCapacityReservationInput structure.""" + + capacity_reservation_id: str | None = ... + """ + The ID of the Capacity Reservation. If you specify a Capacity + Reservation that is shared with you, the operation returns only Capacity + Reservation groups that you own. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetGroupsForCapacityReservationOutput(_SerdeShape): + """Dataclass for GetGroupsForCapacityReservationOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + capacity_reservation_groups: list[CapacityReservationGroup] | None = ... + """ + Information about the resource groups to which the Capacity Reservation + has been added. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetHostReservationPurchasePreviewInput(_SerdeShape): + """Dataclass for GetHostReservationPurchasePreviewInput structure.""" + + host_id_set: list[str] | None = ... + """The IDs of the Dedicated Hosts with which the reservation is associated.""" + offering_id: str | None = ... + """The offering ID of the reservation.""" + +@dataclass(kw_only=True) +class GetHostReservationPurchasePreviewOutput(_SerdeShape): + """Dataclass for GetHostReservationPurchasePreviewOutput structure.""" + + currency_code: str | None = ... + """ + The currency in which the `totalUpfrontPrice` and `totalHourlyPrice` + amounts are specified. At this time, the only supported currency is + `USD`. + """ + purchase: list[Purchase] | None = ... + """ + The purchase information of the Dedicated Host reservation and the + Dedicated Hosts associated with it. + """ + total_hourly_price: str | None = ... + """The potential total hourly price of the reservation per hour.""" + total_upfront_price: str | None = ... + """The potential total upfront price. This is billed immediately.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetImageAncestryInput(_SerdeShape): + """Dataclass for GetImageAncestryInput structure.""" + + image_id: str | None = ... + """The ID of the AMI whose ancestry you want to trace.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetImageAncestryOutput(_SerdeShape): + """Dataclass for GetImageAncestryOutput structure.""" + + image_ancestry_entries: list[ImageAncestryEntry] | None = ... + """ + A list of entries in the AMI ancestry chain, from the specified AMI to + the root AMI. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetImageBlockPublicAccessStateInput(_SerdeShape): + """Dataclass for GetImageBlockPublicAccessStateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetImageBlockPublicAccessStateOutput(_SerdeShape): + """Dataclass for GetImageBlockPublicAccessStateOutput structure.""" + + image_block_public_access_state: str | None = ... + """ + The current state of block public access for AMIs at the account level + in the specified Amazon Web Services Region. + + Possible values: + + - `block-new-sharing` - Any attempt to publicly share your AMIs in the + specified Region is blocked. + + - `unblocked` - Your AMIs in the specified Region can be publicly + shared. + """ + managed_by: str | None = ... + """ + The entity that manages the state for block public access for AMIs. + Possible values include: + + - `account` - The state is managed by the account. + + - `declarative-policy` - The state is managed by a declarative policy + and can't be modified by the account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetImageFindingsInput(_SerdeShape): + """Dataclass for GetImageFindingsInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetImageFindingsOutput(_SerdeShape): + """Dataclass for GetImageFindingsOutput structure.""" + + image_findings: list[ImageFinding] | None = ... + """The Amazon Inspector findings for the AMI.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInstanceMetadataDefaultsInput(_SerdeShape): + """Dataclass for GetInstanceMetadataDefaultsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetInstanceMetadataDefaultsOutput(_SerdeShape): + """Dataclass for GetInstanceMetadataDefaultsOutput structure.""" + + account_level: InstanceMetadataDefaultsResponse | None = ... + """The account-level default IMDS settings.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInstanceTpmEkPubInput(_SerdeShape): + """Dataclass for GetInstanceTpmEkPubInput structure.""" + + instance_id: str | None = ... + """The ID of the instance for which to get the public endorsement key.""" + key_type: str | None = ... + """The required public endorsement key type.""" + key_format: str | None = ... + """ + The required public endorsement key format. Specify `der` for a + DER-encoded public key that is compatible with OpenSSL. Specify `tpmt` + for a TPM 2.0 format that is compatible with tpm2-tools. The returned + key is base64 encoded. + """ + dry_run: bool | None = ... + """ + Specify this parameter to verify whether the request will succeed, + without actually making the request. If the request will succeed, the + response is `DryRunOperation`. Otherwise, the response is + `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetInstanceTpmEkPubOutput(_SerdeShape): + """Dataclass for GetInstanceTpmEkPubOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + key_type: str | None = ... + """The public endorsement key type.""" + key_format: str | None = ... + """The public endorsement key format.""" + key_value: str | None = ... + """The public endorsement key material.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInstanceTypesFromInstanceRequirementsInput(_SerdeShape): + """Dataclass for GetInstanceTypesFromInstanceRequirementsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + architecture_types: list[str] | None = ... + """The processor architecture type.""" + virtualization_types: list[str] | None = ... + """The virtualization type.""" + instance_requirements: InstanceRequirementsRequest | None = ... + """The attributes required for the instance types.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + context: str | None = ... + """Reserved.""" + +@dataclass(kw_only=True) +class GetInstanceTypesFromInstanceRequirementsOutput(_SerdeShape): + """Dataclass for GetInstanceTypesFromInstanceRequirementsOutput structure.""" + + instance_types: list[InstanceTypeInfoFromInstanceRequirements] | None = ... + """The instance types with the specified instance attributes.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInstanceUefiDataInput(_SerdeShape): + """Dataclass for GetInstanceUefiDataInput structure.""" + + instance_id: str | None = ... + """The ID of the instance from which to retrieve the UEFI data.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetInstanceUefiDataOutput(_SerdeShape): + """Dataclass for GetInstanceUefiDataOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance from which to retrieve the UEFI data.""" + uefi_data: str | None = ... + """Base64 representation of the non-volatile UEFI variable store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamAddressHistoryInput(_SerdeShape): + """Dataclass for GetIpamAddressHistoryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + cidr: str | None = ... + """ + The CIDR you want the history of. The CIDR can be an IPv4 or IPv6 IP + address range. If you enter a /16 IPv4 CIDR, you will get records that + match it exactly. You will not get records for any subnets within the + /16 CIDR. + """ + ipam_scope_id: str | None = ... + """The ID of the IPAM scope that the CIDR is in.""" + vpc_id: str | None = ... + """The ID of the VPC you want your history records filtered by.""" + start_time: datetime | None = ... + """ + The start of the time period for which you are looking for history. If + you omit this option, it will default to the value of EndTime. + """ + end_time: datetime | None = ... + """ + The end of the time period for which you are looking for history. If you + omit this option, it will default to the current time. + """ + max_results: int | None = ... + """ + The maximum number of historical results you would like returned per + page. Defaults to 100. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamAddressHistoryOutput(_SerdeShape): + """Dataclass for GetIpamAddressHistoryOutput structure.""" + + history_records: list[IpamAddressHistoryRecord] | None = ... + """ + A historical record for a CIDR within an IPAM scope. If the CIDR is + associated with an EC2 instance, you will see an object in the response + for the instance and one for the network interface. + """ + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredAccountsInput(_SerdeShape): + """Dataclass for GetIpamDiscoveredAccountsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """A resource discovery ID.""" + discovery_region: str | None = ... + """ + The Amazon Web Services Region that the account information is returned + from. + """ + filters: list[Filter] | None = ... + """Discovered account filters.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + max_results: int | None = ... + """ + The maximum number of discovered accounts to return in one page of + results. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredAccountsOutput(_SerdeShape): + """Dataclass for GetIpamDiscoveredAccountsOutput structure.""" + + ipam_discovered_accounts: list[IpamDiscoveredAccount] | None = ... + """Discovered accounts.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredPublicAddressesInput(_SerdeShape): + """Dataclass for GetIpamDiscoveredPublicAddressesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """An IPAM resource discovery ID.""" + address_region: str | None = ... + """The Amazon Web Services Region for the IP address.""" + filters: list[Filter] | None = ... + """Filters.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of IPAM discovered public addresses to return in one + page of results. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredPublicAddressesOutput(_SerdeShape): + """Dataclass for GetIpamDiscoveredPublicAddressesOutput structure.""" + + ipam_discovered_public_addresses: list[IpamDiscoveredPublicAddress] | None = ... + """IPAM discovered public addresses.""" + oldest_sample_time: datetime | None = ... + """The oldest successful resource discovery time.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredResourceCidrsInput(_SerdeShape): + """Dataclass for GetIpamDiscoveredResourceCidrsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """A resource discovery ID.""" + resource_region: str | None = ... + """A resource Region.""" + filters: list[Filter] | None = ... + """Filters.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + max_results: int | None = ... + """ + The maximum number of discovered resource CIDRs to return in one page of + results. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredResourceCidrsOutput(_SerdeShape): + """Dataclass for GetIpamDiscoveredResourceCidrsOutput structure.""" + + ipam_discovered_resource_cidrs: list[IpamDiscoveredResourceCidr] | None = ... + """Discovered resource CIDRs.""" + next_token: str | None = ... + """ + Specify the pagination token from a previous request to retrieve the + next page of results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredRoutesInput(_SerdeShape): + """Dataclass for GetIpamDiscoveredRoutesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """The ID of the IPAM resource discovery.""" + resource_region: str | None = ... + """The Amazon Web Services Region to retrieve discovered routes for.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the results.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + +@dataclass(kw_only=True) +class GetIpamDiscoveredRoutesOutput(_SerdeShape): + """Dataclass for GetIpamDiscoveredRoutesOutput structure.""" + + ipam_discovered_routes: list[IpamDiscoveredRoute] | None = ... + """The discovered BGP routes.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamInternetRegistryAssociationAsnsInput(_SerdeShape): + """Dataclass for GetIpamInternetRegistryAssociationAsnsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the results.""" + +@dataclass(kw_only=True) +class GetIpamInternetRegistryAssociationAsnsOutput(_SerdeShape): + """Dataclass for GetIpamInternetRegistryAssociationAsnsOutput structure.""" + + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + ipam_internet_registry_association_asns: ( + list[IpamInternetRegistryAssociationAsn] | None + ) = ... + """The ASNs registered with the internet registry.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamInternetRegistryAssociationCidrsInput(_SerdeShape): + """Dataclass for GetIpamInternetRegistryAssociationCidrsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the results.""" + +@dataclass(kw_only=True) +class GetIpamInternetRegistryAssociationCidrsOutput(_SerdeShape): + """Dataclass for GetIpamInternetRegistryAssociationCidrsOutput structure.""" + + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + ipam_internet_registry_association_cidrs: ( + list[IpamInternetRegistryAssociationCidr] | None + ) = ... + """The CIDRs registered with the internet registry.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPolicyAllocationRulesInput(_SerdeShape): + """Dataclass for GetIpamPolicyAllocationRulesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_policy_id: str | None = ... + """The ID of the IPAM policy for which to get allocation rules.""" + filters: list[Filter] | None = ... + """One or more filters for the allocation rules.""" + locale: str | None = ... + """The locale for which to get the allocation rules.""" + resource_type: str | None = ... + """ + The resource type for which to get the allocation rules. + + The Amazon Web Services service or resource type that can use IP + addresses through IPAM policies. Supported services and resource types + include: + + - Elastic IP addresses + """ + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPolicyAllocationRulesOutput(_SerdeShape): + """Dataclass for GetIpamPolicyAllocationRulesOutput structure.""" + + ipam_policy_documents: list[IpamPolicyDocument] | None = ... + """ + The IPAM policy documents containing the allocation rules. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPolicyOrganizationTargetsInput(_SerdeShape): + """Dataclass for GetIpamPolicyOrganizationTargetsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """The maximum number of results to return in a single call.""" + next_token: str | None = ... + """The token for the next page of results.""" + ipam_policy_id: str | None = ... + """ + The ID of the IPAM policy for which to get Amazon Web Services + Organizations targets. + """ + filters: list[Filter] | None = ... + """One or more filters for the Amazon Web Services Organizations targets.""" + +@dataclass(kw_only=True) +class GetIpamPolicyOrganizationTargetsOutput(_SerdeShape): + """Dataclass for GetIpamPolicyOrganizationTargetsOutput structure.""" + + organization_targets: list[IpamPolicyOrganizationTarget] | None = ... + """ + The IDs of the Amazon Web Services Organizations targets. + + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + """ + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPoolAllocationsInput(_SerdeShape): + """Dataclass for GetIpamPoolAllocationsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool you want to see the allocations for.""" + ipam_pool_allocation_id: str | None = ... + """The ID of the allocation.""" + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """The maximum number of results you would like returned per page.""" + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPoolAllocationsOutput(_SerdeShape): + """Dataclass for GetIpamPoolAllocationsOutput structure.""" + + ipam_pool_allocations: list[IpamPoolAllocation] | None = ... + """The IPAM pool allocations you want information on.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPoolCidrsInput(_SerdeShape): + """Dataclass for GetIpamPoolCidrsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool you want the CIDR for.""" + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPoolCidrsOutput(_SerdeShape): + """Dataclass for GetIpamPoolCidrsOutput structure.""" + + ipam_pool_cidrs: list[IpamPoolCidr] | None = ... + """Information about the CIDRs provisioned to an IPAM pool.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverRulesInput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverRulesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """ + The ID of the IPAM prefix list resolver whose rules you want to + retrieve. + """ + filters: list[Filter] | None = ... + """One or more filters to limit the results.""" + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverRulesOutput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverRulesOutput structure.""" + + rules: list[IpamPrefixListResolverRule] | None = ... + """The CIDR selection rules for the IPAM prefix list resolver.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverVersionEntriesInput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverVersionEntriesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """ + The ID of the IPAM prefix list resolver whose version entries you want + to retrieve. + """ + ipam_prefix_list_resolver_version: int | None = ... + """ + The version number of the resolver for which to retrieve CIDR entries. + If not specified, the latest version is used. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverVersionEntriesOutput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverVersionEntriesOutput structure.""" + + entries: list[IpamPrefixListResolverVersionEntry] | None = ... + """The CIDR entries for the specified resolver version.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverVersionsInput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverVersionsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """ + The ID of the IPAM prefix list resolver whose versions you want to + retrieve. + """ + ipam_prefix_list_resolver_versions: list[int] | None = ... + """ + Specific version numbers to retrieve. If not specified, all versions are + returned. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """One or more filters to limit the results.""" + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamPrefixListResolverVersionsOutput(_SerdeShape): + """Dataclass for GetIpamPrefixListResolverVersionsOutput structure.""" + + ipam_prefix_list_resolver_versions: list[IpamPrefixListResolverVersion] | None = ... + """Information about the IPAM prefix list resolver versions.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamResourceCidrsInput(_SerdeShape): + """Dataclass for GetIpamResourceCidrsInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """ + One or more filters for the request. For more information about + filtering, see [Filtering CLI + output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html). + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """The token for the next page of results.""" + ipam_scope_id: str | None = ... + """The ID of the scope that the resource is in.""" + ipam_pool_id: str | None = ... + """The ID of the IPAM pool that the resource is in.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The resource type.""" + resource_tag: RequestIpamResourceTag | None = ... + """The resource tag.""" + resource_owner: str | None = ... + """The ID of the Amazon Web Services account that owns the resource.""" + +@dataclass(kw_only=True) +class GetIpamResourceCidrsOutput(_SerdeShape): + """Dataclass for GetIpamResourceCidrsOutput structure.""" + + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + ipam_resource_cidrs: list[IpamResourceCidr] | None = ... + """The resource CIDRs.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamRouteOriginAuthorizationsInput(_SerdeShape): + """Dataclass for GetIpamRouteOriginAuthorizationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + cidr: str | None = ... + """Filter results to a specific CIDR prefix.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamRouteOriginAuthorizationsOutput(_SerdeShape): + """Dataclass for GetIpamRouteOriginAuthorizationsOutput structure.""" + + ipam_route_origin_authorizations: ( + list[IpamRouteOriginAuthorizationInfo] | None + ) = ... + """The Route Origin Authorizations published to the RPKI.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamRouteProtectionFindingsInput(_SerdeShape): + """Dataclass for GetIpamRouteProtectionFindingsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM to retrieve route protection findings for.""" + filters: list[Filter] | None = ... + """One or more filters to apply to the results.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + +@dataclass(kw_only=True) +class GetIpamRouteProtectionFindingsOutput(_SerdeShape): + """Dataclass for GetIpamRouteProtectionFindingsOutput structure.""" + + ipam_id: str | None = ... + """The ID of the IPAM.""" + route_protection_findings: list[IpamRouteProtectionFinding] | None = ... + """The route protection findings.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamRoutingPolicyRegistrationDeltasInput(_SerdeShape): + """Dataclass for GetIpamRoutingPolicyRegistrationDeltasInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + delta_id: str | None = ... + """Filter results to a specific delta ID.""" + start_time: datetime | None = ... + """The start of the time range to filter deltas by.""" + end_time: datetime | None = ... + """The end of the time range to filter deltas by.""" + chronological_order: str | None = ... + """ + The chronological order to return results in. Valid values: `forward` | + `reverse`. + """ + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamRoutingPolicyRegistrationDeltasOutput(_SerdeShape): + """Dataclass for GetIpamRoutingPolicyRegistrationDeltasOutput structure.""" + + ipam_routing_policy_registration_deltas: ( + list[IpamRoutingPolicyRegistrationDelta] | None + ) = ... + """The routing policy registration deltas.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetIpamRoutingPolicyRegistrationsInput(_SerdeShape): + """Dataclass for GetIpamRoutingPolicyRegistrationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + cidr: str | None = ... + """Filter results to a specific CIDR prefix.""" + max_results: int | None = ... + """ + The maximum number of results to return in a single call. If not + specified, all available results are returned. To retrieve the remaining + results, make another call with the returned `nextToken` value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetIpamRoutingPolicyRegistrationsOutput(_SerdeShape): + """Dataclass for GetIpamRoutingPolicyRegistrationsOutput structure.""" + + ipam_routing_policy_registrations: list[IpamRoutingPolicyRegistration] | None = ... + """The routing policy registrations.""" + next_token: str | None = ... + """The token to use to retrieve the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetLaunchTemplateDataInput(_SerdeShape): + """Dataclass for GetLaunchTemplateDataInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + +@dataclass(kw_only=True) +class GetLaunchTemplateDataOutput(_SerdeShape): + """Dataclass for GetLaunchTemplateDataOutput structure.""" + + launch_template_data: ResponseLaunchTemplateData | None = ... + """The instance data.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetManagedPrefixListAssociationsInput(_SerdeShape): + """Dataclass for GetManagedPrefixListAssociationsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetManagedPrefixListAssociationsOutput(_SerdeShape): + """Dataclass for GetManagedPrefixListAssociationsOutput structure.""" + + prefix_list_associations: list[PrefixListAssociation] | None = ... + """Information about the associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetManagedPrefixListEntriesInput(_SerdeShape): + """Dataclass for GetManagedPrefixListEntriesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + target_version: int | None = ... + """ + The version of the prefix list for which to return the entries. The + default is the current version. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class GetManagedPrefixListEntriesOutput(_SerdeShape): + """Dataclass for GetManagedPrefixListEntriesOutput structure.""" + + entries: list[PrefixListEntry] | None = ... + """Information about the prefix list entries.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetManagedResourceVisibilityInput(_SerdeShape): + """Dataclass for GetManagedResourceVisibilityInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetManagedResourceVisibilityOutput(_SerdeShape): + """Dataclass for GetManagedResourceVisibilityOutput structure.""" + + visibility: ManagedResourceVisibilitySettings | None = ... + """The managed resource visibility settings for the account.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetNetworkInsightsAccessScopeAnalysisFindingsInput(_SerdeShape): + """ + Dataclass for GetNetworkInsightsAccessScopeAnalysisFindingsInput + structure. + """ + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetNetworkInsightsAccessScopeAnalysisFindingsOutput(_SerdeShape): + """ + Dataclass for GetNetworkInsightsAccessScopeAnalysisFindingsOutput + structure. + """ + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + analysis_status: str | None = ... + """The status of Network Access Scope Analysis.""" + analysis_findings: list[AccessScopeAnalysisFinding] | None = ... + """The findings associated with Network Access Scope Analysis.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetNetworkInsightsAccessScopeContentInput(_SerdeShape): + """Dataclass for GetNetworkInsightsAccessScopeContentInput structure.""" + + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetNetworkInsightsAccessScopeContentOutput(_SerdeShape): + """Dataclass for GetNetworkInsightsAccessScopeContentOutput structure.""" + + network_insights_access_scope_content: ( + NetworkInsightsAccessScopeContent | None + ) = ... + """The Network Access Scope content.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPasswordDataInput(_SerdeShape): + """Dataclass for GetPasswordDataInput structure.""" + + instance_id: str | None = ... + """The ID of the Windows instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetPasswordDataOutput(_SerdeShape): + """Dataclass for GetPasswordDataOutput structure.""" + + instance_id: str | None = ... + """The ID of the Windows instance.""" + timestamp: datetime | None = ... + """The time the data was last updated.""" + password_data: str | None = ... + """ + The password of the instance. Returns an empty string if the password is + not available. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetReservedInstancesExchangeQuoteInput(_SerdeShape): + """Contains the parameters for GetReservedInstanceExchangeQuote.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + reserved_instance_ids: list[str] | None = ... + """The IDs of the Convertible Reserved Instances to exchange.""" + target_configurations: list[TargetConfigurationRequest] | None = ... + """ + The configuration of the target Convertible Reserved Instance to + exchange for your current Convertible Reserved Instances. + """ + +@dataclass(kw_only=True) +class GetReservedInstancesExchangeQuoteOutput(_SerdeShape): + """Contains the output of GetReservedInstancesExchangeQuote.""" + + currency_code: str | None = ... + """The currency of the transaction.""" + is_valid_exchange: bool | None = ... + """ + If `true`, the exchange is valid. If `false`, the exchange cannot be + completed. + """ + output_reserved_instances_will_expire_at: datetime | None = ... + """The new end date of the reservation term.""" + payment_due: str | None = ... + """The total true upfront charge for the exchange.""" + reserved_instance_value_rollup: ReservationValue | None = ... + """The cost associated with the Reserved Instance.""" + reserved_instance_value_set: list[ReservedInstanceReservationValue] | None = ... + """The configuration of your Convertible Reserved Instances.""" + target_configuration_value_rollup: ReservationValue | None = ... + """The cost associated with the Reserved Instance.""" + target_configuration_value_set: list[TargetReservationValue] | None = ... + """The values of the target Convertible Reserved Instances.""" + validation_failure_reason: str | None = ... + """Describes the reason why the exchange cannot be completed.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRouteServerAssociationsInput(_SerdeShape): + """Dataclass for GetRouteServerAssociationsInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to get association information.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetRouteServerAssociationsOutput(_SerdeShape): + """Dataclass for GetRouteServerAssociationsOutput structure.""" + + route_server_associations: list[RouteServerAssociation] | None = ... + """Information about the associations for the specified route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRouteServerPropagationsInput(_SerdeShape): + """Dataclass for GetRouteServerPropagationsInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to get propagation information.""" + route_table_id: str | None = ... + """The ID of the route table for which to get propagation information.""" + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetRouteServerPropagationsOutput(_SerdeShape): + """Dataclass for GetRouteServerPropagationsOutput structure.""" + + route_server_propagations: list[RouteServerPropagation] | None = ... + """Information about the route propagations for the specified route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRouteServerRoutingDatabaseInput(_SerdeShape): + """Dataclass for GetRouteServerRoutingDatabaseInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server for which to get the routing database.""" + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of routing database entries to return in a single + response. + """ + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + filters: list[Filter] | None = ... + """Filters to apply to the routing database query.""" + +@dataclass(kw_only=True) +class GetRouteServerRoutingDatabaseOutput(_SerdeShape): + """Dataclass for GetRouteServerRoutingDatabaseOutput structure.""" + + are_routes_persisted: bool | None = ... + """Indicates whether routes are being persisted in the routing database.""" + routes: list[RouteServerRoute] | None = ... + """The collection of routes in the route server's routing database.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSecurityGroupsForVpcInput(_SerdeShape): + """Dataclass for GetSecurityGroupsForVpcInput structure.""" + + vpc_id: str | None = ... + """The VPC ID where the security group can be used.""" + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + filters: list[Filter] | None = ... + """ + The filters. If using multiple filters, the results include security + groups which match all filters. + + - `group-id`: The security group ID. + + - `description`: The security group's description. + + - `group-name`: The security group name. + + - `owner-id`: The security group owner ID. + + - `primary-vpc-id`: The VPC ID in which the security group was created. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetSecurityGroupsForVpcOutput(_SerdeShape): + """Dataclass for GetSecurityGroupsForVpcOutput structure.""" + + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + security_group_for_vpcs: list[SecurityGroupForVpc] | None = ... + """The security group that can be used by interfaces in the VPC.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSerialConsoleAccessStatusInput(_SerdeShape): + """Dataclass for GetSerialConsoleAccessStatusInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetSerialConsoleAccessStatusOutput(_SerdeShape): + """Dataclass for GetSerialConsoleAccessStatusOutput structure.""" + + serial_console_access_enabled: bool | None = ... + """ + If `true`, access to the EC2 serial console of all instances is enabled + for your account. If `false`, access to the EC2 serial console of all + instances is disabled for your account. + """ + managed_by: str | None = ... + """ + The entity that manages access to the serial console. Possible values + include: + + - `account` - Access is managed by the account. + + - `declarative-policy` - Access is managed by a declarative policy and + can't be modified by the account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSnapshotBlockPublicAccessStateInput(_SerdeShape): + """Dataclass for GetSnapshotBlockPublicAccessStateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetSnapshotBlockPublicAccessStateOutput(_SerdeShape): + """Dataclass for GetSnapshotBlockPublicAccessStateOutput structure.""" + + state: str | None = ... + """ + The current state of block public access for snapshots. Possible values + include: + + - `block-all-sharing` - All public sharing of snapshots is blocked. + Users in the account can't request new public sharing. Additionally, + snapshots that were already publicly shared are treated as private and + are not publicly available. + + - `block-new-sharing` - Only new public sharing of snapshots is blocked. + Users in the account can't request new public sharing. However, + snapshots that were already publicly shared, remain publicly + available. + + - `unblocked` - Public sharing is not blocked. Users can publicly share + snapshots. + """ + managed_by: str | None = ... + """ + The entity that manages the state for block public access for snapshots. + Possible values include: + + - `account` - The state is managed by the account. + + - `declarative-policy` - The state is managed by a declarative policy + and can't be modified by the account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSpotPlacementScoresInput(_SerdeShape): + """Dataclass for GetSpotPlacementScoresInput structure.""" + + instance_types: list[str] | None = ... + """ + The instance types. We recommend that you specify at least three + instance types. If you specify one or two instance types, or specify + variations of a single instance type (for example, an `m3.xlarge` with + and without instance storage), the returned placement score will always + be low. + + If you specify `InstanceTypes`, you can't specify + `InstanceRequirementsWithMetadata`. + """ + target_capacity: int | None = ... + """The target capacity.""" + target_capacity_unit_type: str | None = ... + """The unit for the target capacity.""" + single_availability_zone: bool | None = ... + """ + Specify `true` so that the response returns a list of scored + Availability Zones. Otherwise, the response returns a list of scored + Regions. + + A list of scored Availability Zones is useful if you want to launch all + of your Spot capacity into a single Availability Zone. + """ + region_names: list[str] | None = ... + """ + The Regions used to narrow down the list of Regions to be scored. Enter + the Region code, for example, `us-east-1`. + """ + instance_requirements_with_metadata: ( + InstanceRequirementsWithMetadataRequest | None + ) = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with those + attributes. + + If you specify `InstanceRequirementsWithMetadata`, you can't specify + `InstanceTypes`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + include_local_zones: bool | None = ... + """ + Specify `true` so that the response returns scores that include Local + Zones. Otherwise, the response ignores Local Zones. + + When you request regional scores, Local Zone capacity counts toward its + parent Region. + """ + +@dataclass(kw_only=True) +class GetSpotPlacementScoresOutput(_SerdeShape): + """Dataclass for GetSpotPlacementScoresOutput structure.""" + + spot_placement_scores: list[SpotPlacementScore] | None = ... + """ + The Spot placement score for the top 10 Regions or Availability Zones, + scored on a scale from 1 to 10. Each score
 reflects how likely it is + that each Region or Availability Zone will succeed at fulfilling the + specified target capacity
 *at the time of the Spot placement score + request*. A score of `10` means that your Spot capacity request is + highly likely to succeed in that Region or Availability Zone. + + If you request a Spot placement score for Regions, a high score assumes + that your fleet request will be configured to use all Availability Zones + and the `capacity-optimized` allocation strategy. If you request a Spot + placement score for Availability Zones, a high score assumes that your + fleet request will be configured to use a single Availability Zone and + the `capacity-optimized` allocation strategy. + + Different
 Regions or Availability Zones might return the same score. + + Note: + The Spot placement score serves as a recommendation only. No score + guarantees that your Spot request will be fully or partially fulfilled. + """ + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSubnetCidrReservationsInput(_SerdeShape): + """Dataclass for GetSubnetCidrReservationsInput structure.""" + + filters: list[Filter] | None = ... + """ + One or more filters. + + - `reservationType` - The type of reservation (`prefix` | `explicit`). + + - `subnet-id` - The ID of the subnet. + + - `tag`:``{=html} - The key/value combination of a tag assigned to + the resource. Use the tag key in the filter name and the tag value as + the filter value. For example, to find all resources that have a tag + with the key `Owner` and the value `TeamA`, specify `tag:Owner` for + the filter name and `TeamA` for the filter value. + + - `tag-key` - The key of a tag assigned to the resource. Use this filter + to find all resources assigned a tag with a specific key, regardless + of the tag value. + """ + subnet_id: str | None = ... + """The ID of the subnet.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + +@dataclass(kw_only=True) +class GetSubnetCidrReservationsOutput(_SerdeShape): + """Dataclass for GetSubnetCidrReservationsOutput structure.""" + + subnet_ipv4_cidr_reservations: list[SubnetCidrReservation] | None = ... + """Information about the IPv4 subnet CIDR reservations.""" + subnet_ipv6_cidr_reservations: list[SubnetCidrReservation] | None = ... + """Information about the IPv6 subnet CIDR reservations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayAttachmentNatConfigurationInput(_SerdeShape): + """ + Dataclass for GetTransitGatewayAttachmentNatConfigurationInput + structure. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayAttachmentNatConfigurationOutput(_SerdeShape): + """ + Dataclass for GetTransitGatewayAttachmentNatConfigurationOutput + structure. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + nat_gateway_support: str | None = ... + """The state of NAT gateway support for the attachment.""" + nat_system_route_support: str | None = ... + """ + Specifies whether the transit gateway installs routes for the NAT CIDRs + in the route tables to which the attachment propagates. + """ + nat_gateway_rules: list[TransitGatewayNatRule] | None = ... + """The NAT gateway rules for the attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayAttachmentPropagationsInput(_SerdeShape): + """Dataclass for GetTransitGatewayAttachmentPropagationsInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `transit-gateway-route-table-id` - The ID of the transit gateway route + table. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayAttachmentPropagationsOutput(_SerdeShape): + """Dataclass for GetTransitGatewayAttachmentPropagationsOutput structure.""" + + transit_gateway_attachment_propagations: ( + list[TransitGatewayAttachmentPropagation] | None + ) = ... + """Information about the propagation route tables.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayMeteringPolicyEntriesInput(_SerdeShape): + """Dataclass for GetTransitGatewayMeteringPolicyEntriesInput structure.""" + + transit_gateway_metering_policy_id: str | None = ... + """The ID of the transit gateway metering policy to retrieve entries for.""" + filters: list[Filter] | None = ... + """One or more filters to apply when retrieving metering policy entries.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayMeteringPolicyEntriesOutput(_SerdeShape): + """Dataclass for GetTransitGatewayMeteringPolicyEntriesOutput structure.""" + + transit_gateway_metering_policy_entries: ( + list[TransitGatewayMeteringPolicyEntry] | None + ) = ... + """Information about the transit gateway metering policy entries.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayMulticastDomainAssociationsInput(_SerdeShape): + """ + Dataclass for GetTransitGatewayMulticastDomainAssociationsInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `resource-id` - The ID of the resource. + + - `resource-type` - The type of resource. The valid value is: `vpc`. + + - `state` - The state of the subnet association. Valid values are + `associated` | `associating` | `disassociated` | `disassociating`. + + - `subnet-id` - The ID of the subnet. + + - `transit-gateway-attachment-id` - The id of the transit gateway + attachment. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayMulticastDomainAssociationsOutput(_SerdeShape): + """ + Dataclass for GetTransitGatewayMulticastDomainAssociationsOutput + structure. + """ + + multicast_domain_associations: ( + list[TransitGatewayMulticastDomainAssociation] | None + ) = ... + """Information about the multicast domain associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPolicyTableAssociationsInput(_SerdeShape): + """Dataclass for GetTransitGatewayPolicyTableAssociationsInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + filters: list[Filter] | None = ... + """The filters associated with the transit gateway policy table.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPolicyTableAssociationsOutput(_SerdeShape): + """Dataclass for GetTransitGatewayPolicyTableAssociationsOutput structure.""" + + associations: list[TransitGatewayPolicyTableAssociation] | None = ... + """Returns details about the transit gateway policy table association.""" + next_token: str | None = ... + """The token for the next page of results.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPolicyTableEntriesInput(_SerdeShape): + """Dataclass for GetTransitGatewayPolicyTableEntriesInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `policy-rule-number` - The rule number for the transit gateway policy + table entry. + + - `target-route-table-id` - The ID of the target route table. + + - `policy-rule.source-ip` - The source CIDR block for the policy rule. + + - `policy-rule.destination-ip` - The destination CIDR block for the + policy rule. + + - `policy-rule.source-port` - The source port or port range for the + policy rule. + + - `policy-rule.destination-port` - The destination port or port range + for the policy rule. + + - `policy-rule.protocol` - The protocol for the policy rule. + + - `policy-rule.meta-data.key` - The metadata key for the policy rule. + + - `policy-rule.meta-data.value` - The metadata value for the policy + rule. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPolicyTableEntriesOutput(_SerdeShape): + """Dataclass for GetTransitGatewayPolicyTableEntriesOutput structure.""" + + transit_gateway_policy_table_entries: ( + list[TransitGatewayPolicyTableEntry] | None + ) = ... + """The entries for the transit gateway policy table.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPrefixListReferencesInput(_SerdeShape): + """Dataclass for GetTransitGatewayPrefixListReferencesInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `attachment.resource-id` - The ID of the resource for the attachment. + + - `attachment.resource-type` - The type of resource for the attachment. + Valid values are `vpc` | `vpn` | `direct-connect-gateway` | + `peering`. + + - `attachment.transit-gateway-attachment-id` - The ID of the attachment. + + - `is-blackhole` - Whether traffic matching the route is blocked (`true` + | `false`). + + - `prefix-list-id` - The ID of the prefix list. + + - `prefix-list-owner-id` - The ID of the owner of the prefix list. + + - `state` - The state of the prefix list reference (`pending` | + `available` | `modifying` | `deleting`). + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayPrefixListReferencesOutput(_SerdeShape): + """Dataclass for GetTransitGatewayPrefixListReferencesOutput structure.""" + + transit_gateway_prefix_list_references: ( + list[TransitGatewayPrefixListReference] | None + ) = ... + """Information about the prefix list references.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayRouteTableAssociationsInput(_SerdeShape): + """Dataclass for GetTransitGatewayRouteTableAssociationsInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `resource-id` - The ID of the resource. + + - `resource-type` - The resource type. Valid values are `vpc` | `vpn` + | `direct-connect-gateway` | `peering` | `connect`. + + - `transit-gateway-attachment-id` - The ID of the attachment. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayRouteTableAssociationsOutput(_SerdeShape): + """Dataclass for GetTransitGatewayRouteTableAssociationsOutput structure.""" + + associations: list[TransitGatewayRouteTableAssociation] | None = ... + """Information about the associations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayRouteTablePropagationsInput(_SerdeShape): + """Dataclass for GetTransitGatewayRouteTablePropagationsInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `resource-id` - The ID of the resource. + + - `resource-type` - The resource type. Valid values are `vpc` | `vpn` + | `direct-connect-gateway` | `peering` | `connect`. + + - `transit-gateway-attachment-id` - The ID of the attachment. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetTransitGatewayRouteTablePropagationsOutput(_SerdeShape): + """Dataclass for GetTransitGatewayRouteTablePropagationsOutput structure.""" + + transit_gateway_route_table_propagations: ( + list[TransitGatewayRouteTablePropagation] | None + ) = ... + """Information about the route table propagations.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessEndpointPolicyInput(_SerdeShape): + """Dataclass for GetVerifiedAccessEndpointPolicyInput structure.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the Verified Access endpoint.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessEndpointPolicyOutput(_SerdeShape): + """Dataclass for GetVerifiedAccessEndpointPolicyOutput structure.""" + + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessEndpointTargetsInput(_SerdeShape): + """Dataclass for GetVerifiedAccessEndpointTargetsInput structure.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the network CIDR endpoint.""" + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessEndpointTargetsOutput(_SerdeShape): + """Dataclass for GetVerifiedAccessEndpointTargetsOutput structure.""" + + verified_access_endpoint_targets: list[VerifiedAccessEndpointTarget] | None = ... + """The Verified Access targets.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessGroupPolicyInput(_SerdeShape): + """Dataclass for GetVerifiedAccessGroupPolicyInput structure.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVerifiedAccessGroupPolicyOutput(_SerdeShape): + """Dataclass for GetVerifiedAccessGroupPolicyOutput structure.""" + + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVpcResourcesBlockingEncryptionEnforcementInput(_SerdeShape): + """ + Dataclass for GetVpcResourcesBlockingEncryptionEnforcementInput + structure. + """ + + vpc_id: str | None = ... + """ + The ID of the VPC to check for resources blocking encryption + enforcement. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVpcResourcesBlockingEncryptionEnforcementOutput(_SerdeShape): + """ + Dataclass for GetVpcResourcesBlockingEncryptionEnforcementOutput + structure. + """ + + non_compliant_resources: list[VpcEncryptionNonCompliantResource] | None = ... + """Information about resources that are blocking encryption enforcement.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVpnConnectionDeviceSampleConfigurationInput(_SerdeShape): + """Dataclass for GetVpnConnectionDeviceSampleConfigurationInput structure.""" + + vpn_connection_id: str | None = ... + """ + The `VpnConnectionId` specifies the Site-to-Site VPN connection used for + the sample configuration. + """ + vpn_connection_device_type_id: str | None = ... + """Device identifier provided by the `GetVpnConnectionDeviceTypes` API.""" + internet_key_exchange_version: str | None = ... + """ + The IKE version to be used in the sample configuration file for your + customer gateway device. You can specify one of the following versions: + `ikev1` or `ikev2`. + """ + sample_type: str | None = ... + """ + The type of sample configuration to generate. Valid values are + \"compatibility\" (includes IKEv1) or \"recommended\" (throws + UnsupportedOperationException for IKEv1). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVpnConnectionDeviceSampleConfigurationOutput(_SerdeShape): + """Dataclass for GetVpnConnectionDeviceSampleConfigurationOutput structure.""" + + vpn_connection_device_sample_configuration: str | None = ... + """Sample configuration file for the specified customer gateway device.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVpnConnectionDeviceTypesInput(_SerdeShape): + """Dataclass for GetVpnConnectionDeviceTypesInput structure.""" + + max_results: int | None = ... + """ + The maximum number of results returned by `GetVpnConnectionDeviceTypes` + in paginated output. When this parameter is used, + `GetVpnConnectionDeviceTypes` only returns `MaxResults` results in a + single page along with a `NextToken` response element. The remaining + results of the initial request can be seen by sending another + `GetVpnConnectionDeviceTypes` request with the returned `NextToken` + value. This value can be between 200 and 1000. If this parameter is not + used, then `GetVpnConnectionDeviceTypes` returns all results. + """ + next_token: str | None = ... + """ + The `NextToken` value returned from a previous paginated + `GetVpnConnectionDeviceTypes` 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 value is null when there are no more results to return. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVpnConnectionDeviceTypesOutput(_SerdeShape): + """Dataclass for GetVpnConnectionDeviceTypesOutput structure.""" + + vpn_connection_device_types: list[VpnConnectionDeviceType] | None = ... + """ + List of customer gateway devices that have a sample configuration file + available for use. + """ + next_token: str | None = ... + """ + The `NextToken` value to include in a future + `GetVpnConnectionDeviceTypes` request. When the results of a + `GetVpnConnectionDeviceTypes` request exceed `MaxResults`, this value + can be used to retrieve the next page of results. This value is null + when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetVpnTunnelReplacementStatusInput(_SerdeShape): + """Dataclass for GetVpnTunnelReplacementStatusInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Site-to-Site VPN connection.""" + vpn_tunnel_outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class GetVpnTunnelReplacementStatusOutput(_SerdeShape): + """Dataclass for GetVpnTunnelReplacementStatusOutput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Site-to-Site VPN connection.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway associated with the VPN connection.""" + customer_gateway_id: str | None = ... + """The ID of the customer gateway.""" + vpn_gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + vpn_tunnel_outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + maintenance_details: MaintenanceDetails | None = ... + """Get details of pending tunnel endpoint maintenance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GpuDeviceInfo(_SerdeShape): + """Describes the GPU accelerators for the instance type.""" + + name: str | None = ... + """The name of the GPU accelerator.""" + manufacturer: str | None = ... + """The manufacturer of the GPU accelerator.""" + count: int | None = ... + """The number of GPUs for the instance type.""" + logical_gpu_count: int | None = ... + """Total number of GPU devices of this type.""" + gpu_partition_size: float | None = ... + """ + The size of each GPU as a fraction of a full GPU, between 0 (excluded) + and 1 (included). + """ + workloads: list[str] | None = ... + """A list of workload types this GPU supports.""" + memory_info: GpuDeviceMemoryInfo | None = ... + """Describes the memory available to the GPU accelerator.""" + +@dataclass(kw_only=True) +class GpuDeviceMemoryInfo(_SerdeShape): + """Describes the memory available to the GPU accelerator.""" + + size_in_mi_b: int | None = ... + """The size of the memory available to the GPU accelerator, in MiB.""" + +@dataclass(kw_only=True) +class GpuInfo(_SerdeShape): + """Describes the GPU accelerators for the instance type.""" + + gpus: list[GpuDeviceInfo] | None = ... + """Describes the GPU accelerators for the instance type.""" + total_gpu_memory_in_mi_b: int | None = ... + """ + The total size of the memory for the GPU accelerators for the instance + type, in MiB. + """ + +class GroupBy(UnknownEnumMixin, StrEnum): + RESOURCE_REGION = "resource-region" + AVAILABILITY_ZONE_ID = "availability-zone-id" + ACCOUNT_ID = "account-id" + ACCOUNT_NAME = "account-name" + INSTANCE_FAMILY = "instance-family" + INSTANCE_TYPE = "instance-type" + INSTANCE_PLATFORM = "instance-platform" + RESERVATION_ARN = "reservation-arn" + RESERVATION_ID = "reservation-id" + RESERVATION_TYPE = "reservation-type" + RESERVATION_CREATE_TIMESTAMP = "reservation-create-timestamp" + RESERVATION_START_TIMESTAMP = "reservation-start-timestamp" + RESERVATION_END_TIMESTAMP = "reservation-end-timestamp" + RESERVATION_END_DATE_TYPE = "reservation-end-date-type" + TENANCY = "tenancy" + RESERVATION_STATE = "reservation-state" + RESERVATION_INSTANCE_MATCH_CRITERIA = "reservation-instance-match-criteria" + RESERVATION_UNUSED_FINANCIAL_OWNER = "reservation-unused-financial-owner" + +@dataclass(kw_only=True) +class GroupIdentifier(_SerdeShape): + """Describes a security group.""" + + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """The name of the security group.""" + +class HaStatus(UnknownEnumMixin, StrEnum): + PROCESSING = "processing" + ACTIVE = "active" + STANDBY = "standby" + INVALID = "invalid" + +@dataclass(kw_only=True) +class HealthCheckPathDestinationRequestObject(_SerdeShape): + """ + Describes a destination for a health check path in a request. + Destinations can be in a different Availability Zone than the source + (cross-AZ) or in a Local Zone (AZ to Local Zone), enabling remote health + validation of your application. + """ + + subnet_id: str | None = ... + """The ID of the subnet for the destination.""" + security_group_id: str | None = ... + """The ID of the security group for the destination.""" + +@dataclass(kw_only=True) +class HealthCheckPathDestinationResponseObject(_SerdeShape): + """Describes a destination for a health check path.""" + + subnet_id: str | None = ... + """The ID of the subnet for the destination.""" + security_group_id: str | None = ... + """The ID of the security group for the destination.""" + +@dataclass(kw_only=True) +class HealthCheckPathRequestObject(_SerdeShape): + """Describes a health check path for an application status check request.""" + + source: HealthCheckPathSourceRequestObject | None = ... + """The source for the health check path.""" + destinations: list[HealthCheckPathDestinationRequestObject] | None = ... + """The destinations for the health check path.""" + +@dataclass(kw_only=True) +class HealthCheckPathResponseObject(_SerdeShape): + """Describes a health check path for an application status check.""" + + source: HealthCheckPathSourceResponseObject | None = ... + """The source for the health check path.""" + destinations: list[HealthCheckPathDestinationResponseObject] | None = ... + """The destinations for the health check path.""" + +@dataclass(kw_only=True) +class HealthCheckPathSourceRequestObject(_SerdeShape): + """ + Describes the source for a health check path in a request. The source + defines the subnet and security group where a health check elastic + network interface (ENI) is created to originate health check traffic. + """ + + subnet_id: str | None = ... + """The ID of the subnet for the source.""" + security_group_id: str | None = ... + """The ID of the security group for the source.""" + +@dataclass(kw_only=True) +class HealthCheckPathSourceResponseObject(_SerdeShape): + """Describes the source for a health check path.""" + + subnet_id: str | None = ... + """The ID of the subnet for the source.""" + security_group_id: str | None = ... + """The ID of the security group for the source.""" + +@dataclass(kw_only=True) +class HibernationOptions(_SerdeShape): + """ + Indicates whether your instance is configured for hibernation. This + parameter is valid only if the instance meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + For more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + """ + + configured: bool | None = ... + """ + If `true`, your instance is enabled for hibernation; otherwise, it is + not enabled for hibernation. + """ + +@dataclass(kw_only=True) +class HibernationOptionsRequest(_SerdeShape): + """ + Indicates whether your instance is configured for hibernation. This + parameter is valid only if the instance meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + For more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + """ + + configured: bool | None = ... + """ + Set to `true` to enable your instance for hibernation. + + For Spot Instances, if you set `Configured` to `true`, either omit the + `InstanceInterruptionBehavior` parameter (for + [`SpotMarketOptions`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotMarketOptions.html) + ), or set it to `hibernate`. When `Configured` is true: + + - If you omit `InstanceInterruptionBehavior`, it defaults to + `hibernate`. + + - If you set `InstanceInterruptionBehavior` to a value other than + `hibernate`, you'll get an error. + + Default: `false` + """ + +@dataclass(kw_only=True) +class HistoryRecord(_SerdeShape): + """Describes an event in the history of the Spot Fleet request.""" + + event_information: EventInformation | None = ... + """Information about the event.""" + event_type: str | None = ... + """ + The event type. + + - `error` - An error with the Spot Fleet request. + + - `fleetRequestChange` - A change in the status or configuration of the + Spot Fleet request. + + - `instanceChange` - An instance was launched or terminated. + + - `Information` - An informational event. + """ + timestamp: datetime | None = ... + """ + The date and time of the event, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + +@dataclass(kw_only=True) +class HistoryRecordEntry(_SerdeShape): + """Describes an event in the history of an EC2 Fleet.""" + + event_information: EventInformation | None = ... + """Information about the event.""" + event_type: str | None = ... + """The event type.""" + timestamp: datetime | None = ... + """ + The date and time of the event, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + +@dataclass(kw_only=True) +class Host(_SerdeShape): + """Describes the properties of the Dedicated Host.""" + + auto_placement: str | None = ... + """Whether auto-placement is on or off.""" + availability_zone: str | None = ... + """The Availability Zone of the Dedicated Host.""" + available_capacity: AvailableCapacity | None = ... + """Information about the instances running on the Dedicated Host.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + host_id: str | None = ... + """The ID of the Dedicated Host.""" + host_properties: HostProperties | None = ... + """The hardware specifications of the Dedicated Host.""" + host_reservation_id: str | None = ... + """ + The reservation ID of the Dedicated Host. This returns a `null` response + if the Dedicated Host doesn't have an associated reservation. + """ + instances: list[HostInstance] | None = ... + """ + The IDs and instance type that are currently running on the Dedicated + Host. + """ + state: str | None = ... + """The Dedicated Host's state.""" + allocation_time: datetime | None = ... + """The time that the Dedicated Host was allocated.""" + release_time: datetime | None = ... + """The time that the Dedicated Host was released.""" + tags: list[Tag] | None = ... + """Any tags assigned to the Dedicated Host.""" + host_recovery: str | None = ... + """ + Indicates whether host recovery is enabled or disabled for the Dedicated + Host. + """ + allows_multiple_instance_types: str | None = ... + """ + Indicates whether the Dedicated Host supports multiple instance types of + the same instance family. If the value is `on`, the Dedicated Host + supports multiple instance types in the instance family. If the value is + `off`, the Dedicated Host supports a single instance type only. + """ + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the Dedicated Host.""" + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which the Dedicated Host is + allocated. + """ + member_of_service_linked_resource_group: bool | None = ... + """ + Indicates whether the Dedicated Host is in a host resource group. If + **memberOfServiceLinkedResourceGroup** is `true`, the host is in a host + resource group; otherwise, it is not. + """ + outpost_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on + which the Dedicated Host is allocated. + """ + host_maintenance: str | None = ... + """ + Indicates whether host maintenance is enabled or disabled for the + Dedicated Host. + """ + asset_id: str | None = ... + """ + The ID of the Outpost hardware asset on which the Dedicated Host is + allocated. + """ + cpu_options: HostCpuOptions | None = ... + """ + The CPU options for the Dedicated Host, including AMD Secure Encrypted + Virtualization-Secure Nested Paging (AMD SEV-SNP) settings. + """ + +@dataclass(kw_only=True) +class HostCpuOptions(_SerdeShape): + """ + Contains the CPU options for a Dedicated Host, including AMD Secure + Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings. + """ + + amd_sev_snp: str | None = ... + """ + Specifies whether AMD Secure Encrypted Virtualization-Secure Nested + Paging (AMD SEV-SNP) is enabled or disabled for the Dedicated Host. If + you don't specify a value, AMD SEV-SNP is `disabled`. + """ + +@dataclass(kw_only=True) +class HostCpuOptionsRequest(_SerdeShape): + """ + Contains the CPU configuration options for a Dedicated Host allocation + request. Options include AMD Secure Encrypted Virtualization-Secure + Nested Paging (AMD SEV-SNP) settings. + """ + + amd_sev_snp: str | None = ... + """ + Specifies whether AMD Secure Encrypted Virtualization-Secure Nested + Paging (AMD SEV-SNP) is enabled or disabled for the Dedicated Host. If + you don't specify a value, AMD SEV-SNP is `disabled`. + """ + +@dataclass(kw_only=True) +class HostInstance(_SerdeShape): + """Describes an instance running on a Dedicated Host.""" + + instance_id: str | None = ... + """The ID of instance that is running on the Dedicated Host.""" + instance_type: str | None = ... + """The instance type (for example, `m3.medium`) of the running instance.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the instance.""" + +class HostMaintenance(UnknownEnumMixin, StrEnum): + ON = "on" + OFF = "off" + +class HostnameType(UnknownEnumMixin, StrEnum): + IP_NAME = "ip-name" + RESOURCE_NAME = "resource-name" + +@dataclass(kw_only=True) +class HostOffering(_SerdeShape): + """Details about the Dedicated Host Reservation offering.""" + + currency_code: str | None = ... + """The currency of the offering.""" + duration: int | None = ... + """The duration of the offering (in seconds).""" + hourly_price: str | None = ... + """The hourly price of the offering.""" + instance_family: str | None = ... + """The instance family of the offering.""" + offering_id: str | None = ... + """The ID of the offering.""" + payment_option: str | None = ... + """The available payment option.""" + upfront_price: str | None = ... + """ + The upfront price of the offering. Does not apply to No Upfront + offerings. + """ + +@dataclass(kw_only=True) +class HostProperties(_SerdeShape): + """Describes the properties of a Dedicated Host.""" + + cores: int | None = ... + """The number of cores on the Dedicated Host.""" + instance_type: str | None = ... + """ + The instance type supported by the Dedicated Host. For example, + `m5.large`. If the host supports multiple instance types, no + **instanceType** is returned. + """ + instance_family: str | None = ... + """The instance family supported by the Dedicated Host. For example, `m5`.""" + sockets: int | None = ... + """The number of sockets on the Dedicated Host.""" + total_v_cpus: int | None = ... + """The total number of vCPUs on the Dedicated Host.""" + +class HostRecovery(UnknownEnumMixin, StrEnum): + ON = "on" + OFF = "off" + +@dataclass(kw_only=True) +class HostReservation(_SerdeShape): + """ + Details about the Dedicated Host Reservation and associated Dedicated + Hosts. + """ + + count: int | None = ... + """The number of Dedicated Hosts the reservation is associated with.""" + currency_code: str | None = ... + """ + The currency in which the `upfrontPrice` and `hourlyPrice` amounts are + specified. At this time, the only supported currency is `USD`. + """ + duration: int | None = ... + """ + The length of the reservation's term, specified in seconds. Can be + `31536000 (1 year)` | `94608000 (3 years)`. + """ + end: datetime | None = ... + """The date and time that the reservation ends.""" + host_id_set: list[str] | None = ... + """The IDs of the Dedicated Hosts associated with the reservation.""" + host_reservation_id: str | None = ... + """The ID of the reservation that specifies the associated Dedicated Hosts.""" + hourly_price: str | None = ... + """The hourly price of the reservation.""" + instance_family: str | None = ... + """ + The instance family of the Dedicated Host Reservation. The instance + family on the Dedicated Host must be the same in order for it to benefit + from the reservation. + """ + offering_id: str | None = ... + """ + The ID of the reservation. This remains the same regardless of which + Dedicated Hosts are associated with it. + """ + payment_option: str | None = ... + """The payment option selected for this reservation.""" + start: datetime | None = ... + """The date and time that the reservation started.""" + state: str | None = ... + """The state of the reservation.""" + upfront_price: str | None = ... + """The upfront price of the reservation.""" + tags: list[Tag] | None = ... + """Any tags assigned to the Dedicated Host Reservation.""" + +class HostTenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + DEDICATED = "dedicated" + HOST = "host" + +class HttpTokensEnforcedState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +class HttpTokensState(UnknownEnumMixin, StrEnum): + OPTIONAL = "optional" + REQUIRED = "required" + +class HypervisorType(UnknownEnumMixin, StrEnum): + OVM = "ovm" + XEN = "xen" + +@dataclass(kw_only=True) +class IamInstanceProfile(_SerdeShape): + """Describes an IAM instance profile.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the instance profile.""" + id: str | None = ... + """The ID of the instance profile.""" + +@dataclass(kw_only=True) +class IamInstanceProfileAssociation(_SerdeShape): + """ + Describes an association between an IAM instance profile and an + instance. + """ + + association_id: str | None = ... + """The ID of the association.""" + instance_id: str | None = ... + """The ID of the instance.""" + iam_instance_profile: IamInstanceProfile | None = ... + """The IAM instance profile.""" + state: str | None = ... + """The state of the association.""" + timestamp: datetime | None = ... + """The time the IAM instance profile was associated with the instance.""" + +class IamInstanceProfileAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + +@dataclass(kw_only=True) +class IamInstanceProfileSpecification(_SerdeShape): + """Describes an IAM instance profile.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the instance profile.""" + name: str | None = ... + """The name of the instance profile.""" + +@dataclass(kw_only=True) +class IcmpTypeCode(_SerdeShape): + """Describes the ICMP type and code.""" + + code: int | None = ... + """ + The ICMP code. A value of -1 means all codes for the specified ICMP + type. + """ + type: int | None = ... + """The ICMP type. A value of -1 means all types.""" + +@dataclass(kw_only=True) +class IdFormat(_SerdeShape): + """Describes the ID format for a resource.""" + + deadline: datetime | None = ... + """ + The date in UTC at which you are permanently switched over to using + longer IDs. If a deadline is not yet available for this resource type, + this field is not returned. + """ + resource: str | None = ... + """The type of resource.""" + use_long_ids: bool | None = ... + """ + Indicates whether longer IDs (17-character IDs) are enabled for the + resource. + """ + +class Igmpv2SupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class IKEVersionsListValue(_SerdeShape): + """The internet key exchange (IKE) version permitted for the VPN tunnel.""" + + value: str | None = ... + """The IKE version.""" + +@dataclass(kw_only=True) +class IKEVersionsRequestListValue(_SerdeShape): + """The IKE version that is permitted for the VPN tunnel.""" + + value: str | None = ... + """The IKE version.""" + +@dataclass(kw_only=True) +class Image(_SerdeShape): + """Describes an image.""" + + platform_details: str | None = ... + """ + The platform details associated with the billing code of the AMI. For + more information, see [Understand AMI billing + information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) + in the *Amazon EC2 User Guide*. + """ + usage_operation: str | None = ... + """ + The operation of the Amazon EC2 instance and the billing code that is + associated with the AMI. `usageOperation` corresponds to the + [lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation) + column on your Amazon Web Services Cost and Usage Report and in the + [Amazon Web Services Price List + API](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html). + You can view these fields on the **Instances** or **AMIs** pages in the + Amazon EC2 console, or in the responses that are returned by the + [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) + command in the Amazon EC2 API, or the + [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) + command in the CLI. + """ + block_device_mappings: list[BlockDeviceMapping] | None = ... + """Any block device mapping entries.""" + description: str | None = ... + """The description of the AMI that was provided during image creation.""" + ena_support: bool | None = ... + """Specifies whether enhanced networking with ENA is enabled.""" + hypervisor: str | None = ... + """ + The hypervisor type of the image. Only `xen` is supported. `ovm` is not + supported. + """ + image_owner_alias: str | None = ... + """The owner alias (`amazon` | `aws-backup-vault` | `aws-marketplace`).""" + name: str | None = ... + """The name of the AMI that was provided during image creation.""" + root_device_name: str | None = ... + """The device name of the root device volume (for example, `/dev/sda1`).""" + root_device_type: str | None = ... + """ + The type of root device used by the AMI. The AMI can use an Amazon EBS + volume or an instance store volume. + """ + sriov_net_support: str | None = ... + """ + Specifies whether enhanced networking with the Intel 82599 Virtual + Function interface is enabled. + """ + state_reason: StateReason | None = ... + """The reason for the state change.""" + tags: list[Tag] | None = ... + """Any tags assigned to the image.""" + virtualization_type: str | None = ... + """The type of virtualization of the AMI.""" + boot_mode: str | None = ... + """ + The boot mode of the image. For more information, see [Instance launch + behavior with Amazon EC2 boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + tpm_support: str | None = ... + """ + If the image is configured for NitroTPM support, the value is `v2.0`. + For more information, see + [NitroTPM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) + in the *Amazon EC2 User Guide*. + """ + deprecation_time: str | None = ... + """ + The date and time to deprecate the AMI, in UTC, in the following format: + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z. If you specified a value for seconds, + Amazon EC2 rounds the seconds to the nearest minute. + """ + imds_support: str | None = ... + """ + If `v2.0`, it indicates that IMDSv2 is specified in the AMI. Instances + launched from this AMI will have `HttpTokens` automatically set to + `required` so that, by default, the instance requires that IMDSv2 is + used when requesting instance metadata. In addition, + `HttpPutResponseHopLimit` is set to `2`. For more information, see + [Configure the + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) + in the *Amazon EC2 User Guide*. + """ + source_instance_id: str | None = ... + """ + The ID of the instance that the AMI was created from if the AMI was + created using + [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html). + This field only appears if the AMI was created using CreateImage. + """ + deregistration_protection: str | None = ... + """Indicates whether deregistration protection is enabled for the AMI.""" + last_launched_time: str | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the AMI was last used to + launch an EC2 instance. When the AMI is used to launch an instance, + there is a 24-hour delay before that usage is reported. + + Note: + `lastLaunchedTime` data is available starting April 2017. + """ + image_allowed: bool | None = ... + """ + If `true`, the AMI satisfies the criteria for Allowed AMIs and can be + discovered and used in the account. If `false` and Allowed AMIs is set + to `enabled`, the AMI can't be discovered or used in the account. If + `false` and Allowed AMIs is set to `audit-mode`, the AMI can be + discovered and used in the account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + """ + source_image_id: str | None = ... + """The ID of the source AMI from which the AMI was created.""" + source_image_region: str | None = ... + """The Region of the source AMI.""" + free_tier_eligible: bool | None = ... + """ + Indicates whether the image is eligible for Amazon Web Services Free + Tier. + + - If `true`, the AMI is eligible for Free Tier and can be used to launch + instances under the Free Tier limits. + + - If `false`, the AMI is not eligible for Free Tier. + """ + public_ssm_parameter_name: str | None = ... + """ + The name of the public Systems Manager parameter that resolves to this + AMI, under the `aws/service/` namespace. + """ + image_watermarks: list[ImageWatermark] | None = ... + """The watermarks attached to the AMI.""" + scan_results: ScanResults | None = ... + """ + The Amazon Inspector scan results for the AMI. This information is + present only for AMIs that Amazon Inspector has scanned. + + When you share an AMI with other accounts, organizations, or + organizational units (OUs), or make it public, its scan results are + available to the accounts that can use the AMI. + """ + instance_type_specification: InstanceTypeSpecification | None = ... + """ + The instance type specification for the AMI, which defines which + instance types are compatible with this image. + """ + image_id: str | None = ... + """The ID of the AMI.""" + image_location: str | None = ... + """The location of the AMI.""" + state: str | None = ... + """ + The current state of the AMI. If the state is `available`, the image is + successfully registered and can be used to launch an instance. + """ + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the image.""" + creation_date: str | None = ... + """The date and time the image was created.""" + public: bool | None = ... + """ + Indicates whether the image has public launch permissions. The value is + `true` if this image has public launch permissions or `false` if it has + only implicit and explicit launch permissions. + """ + product_codes: list[ProductCode] | None = ... + """Any product codes associated with the AMI.""" + architecture: str | None = ... + """The architecture of the image.""" + image_type: str | None = ... + """The type of image.""" + kernel_id: str | None = ... + """ + The kernel associated with the image, if any. Only applicable for + machine images. + """ + ramdisk_id: str | None = ... + """ + The RAM disk associated with the image, if any. Only applicable for + machine images. + """ + platform: str | None = ... + """This value is set to `windows` for Windows AMIs; otherwise, it is blank.""" + +@dataclass(kw_only=True) +class ImageAncestryEntry(_SerdeShape): + """ + Information about a single AMI in the ancestry chain and its source + (parent) AMI. + """ + + creation_date: datetime | None = ... + """The date and time when this AMI was created.""" + image_id: str | None = ... + """The ID of this AMI.""" + image_owner_alias: str | None = ... + """ + The owner alias (`amazon` | `aws-backup-vault` | `aws-marketplace` ) + of this AMI, if one is assigned. Otherwise, the value is `null`. + """ + source_image_id: str | None = ... + """The ID of the parent AMI.""" + source_image_region: str | None = ... + """The Amazon Web Services Region of the parent AMI.""" + +class ImageAttributeName(UnknownEnumMixin, StrEnum): + DESCRIPTION = "description" + KERNEL = "kernel" + RAMDISK = "ramdisk" + LAUNCH_PERMISSION = "launchPermission" + PRODUCT_CODES = "productCodes" + BLOCK_DEVICE_MAPPING = "blockDeviceMapping" + SRIOV_NET_SUPPORT = "sriovNetSupport" + BOOT_MODE = "bootMode" + TPM_SUPPORT = "tpmSupport" + UEFI_DATA = "uefiData" + LAST_LAUNCHED_TIME = "lastLaunchedTime" + IMDS_SUPPORT = "imdsSupport" + DEREGISTRATION_PROTECTION = "deregistrationProtection" + +class ImageBlockPublicAccessDisabledState(UnknownEnumMixin, StrEnum): + UNBLOCKED = "unblocked" + +class ImageBlockPublicAccessEnabledState(UnknownEnumMixin, StrEnum): + BLOCK_NEW_SHARING = "block-new-sharing" + +@dataclass(kw_only=True) +class ImageCriterion(_SerdeShape): + """ + The criteria that are evaluated to determine which AMIs are discoverable + and usable in your account for the specified Amazon Web Services Region. + + For more information, see [How Allowed AMIs + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#how-allowed-amis-works) + in the *Amazon EC2 User Guide*. + """ + + image_providers: list[str] | None = ... + """ + The image providers whose images are allowed. + + Possible values: + + - `amazon`: Allow AMIs created by Amazon or verified providers. + + - `aws-marketplace`: Allow AMIs created by verified providers in the + Amazon Web Services Marketplace. + + - `aws-backup-vault`: Allow AMIs created by Amazon Web Services Backup. + + - 12-digit account ID: Allow AMIs created by this account. One or more + account IDs can be specified. + + - `none`: Allow AMIs created by your own account only. + + Maximum: 200 values + """ + marketplace_product_codes: list[str] | None = ... + """ + The Amazon Web Services Marketplace product codes for allowed images. + + Length: 1-25 characters + + Valid characters: Letters (`A–Z, a–z`) and numbers (`0–9`) + + Maximum: 50 values + """ + image_names: list[str] | None = ... + """ + The names of allowed images. Names can include wildcards (`?` and `*`). + + Length: 1--128 characters. With `?`, the minimum is 3 characters. + + Valid characters: + + - Letters: `A–Z, a–z` + + - Numbers: `0–9` + + - Special characters: `( ) [ ] . / - ' @ _ * ?` + + - Spaces + + Maximum: 50 values + """ + deprecation_time_condition: DeprecationTimeCondition | None = ... + """The maximum period since deprecation for allowed images.""" + creation_date_condition: CreationDateCondition | None = ... + """The maximum age for allowed images.""" + image_watermarks: list[ImageWatermarkFilterResponse] | None = ... + """ + The watermark criteria that an AMI must match to be allowed. An AMI is + allowed if it carries at least one watermark that satisfies an + ImageWatermarkFilter. A watermark satisfies a filter when all specified + fields in the ImageWatermarkFilter match the corresponding values on the + watermark of the AMI. + + Maximum: 50 values + """ + scan_result_condition: ScanResultCondition | None = ... + """ + The Amazon Inspector scan-result criteria that an AMI must meet to be + allowed. The criteria can limit the highest finding severity, the number + of days since Amazon Inspector last scanned the AMI, and the number of + days since Amazon Inspector reported a fix as available. + """ + +@dataclass(kw_only=True) +class ImageCriterionRequest(_SerdeShape): + """ + The criteria that are evaluated to determine which AMIs are discoverable + and usable in your account for the specified Amazon Web Services Region. + + The `ImageCriteria` can include up to: + + - 10 `ImageCriterion` + + Each `ImageCriterion` can include up to: + + - 200 values for `ImageProviders` + + - 50 values for `ImageNames` + + - 50 values for `MarketplaceProductCodes` + + - 50 values for `ImageWatermarks` + + For more information, see [How Allowed AMIs + works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#how-allowed-amis-works) + in the *Amazon EC2 User Guide*. + """ + + image_providers: list[str] | None = ... + """ + The image providers whose images are allowed. + + Possible values: + + - `amazon`: Allow AMIs created by Amazon or verified providers. + + - `aws-marketplace`: Allow AMIs created by verified providers in the + Amazon Web Services Marketplace. + + - `aws-backup-vault`: Allow AMIs created by Amazon Web Services Backup. + + - 12-digit account ID: Allow AMIs created by the specified accounts. One + or more account IDs can be specified. + + - `none`: Allow AMIs created by your own account only. When `none` is + specified, no other values can be specified. + + Maximum: 200 values + """ + marketplace_product_codes: list[str] | None = ... + """ + The Amazon Web Services Marketplace product codes for allowed images. + + Length: 1-25 characters + + Valid characters: Letters (`A–Z, a–z`) and numbers (`0–9`) + + Maximum: 50 values + """ + image_names: list[str] | None = ... + """ + The names of allowed images. Names can include wildcards (`?` and `*`). + + Length: 1--128 characters. With `?`, the minimum is 3 characters. + + Valid characters: + + - Letters: `A–Z, a–z` + + - Numbers: `0–9` + + - Special characters: `( ) [ ] . / - ' @ _ * ?` + + - Spaces + + Maximum: 50 values + """ + deprecation_time_condition: DeprecationTimeConditionRequest | None = ... + """The maximum period since deprecation for allowed images.""" + creation_date_condition: CreationDateConditionRequest | None = ... + """The maximum age for allowed images.""" + image_watermarks: list[ImageWatermarkFilterRequest] | None = ... + """ + The watermark criteria that an AMI must match to be allowed. An AMI is + allowed if it carries at least one watermark that satisfies an + ImageWatermarkFilter. A watermark satisfies a filter when all specified + fields in the ImageWatermarkFilter match the corresponding values on the + watermark of the AMI. + + Maximum: 50 values + """ + scan_result_condition: ScanResultConditionRequest | None = ... + """ + The Amazon Inspector scan-result criteria that an AMI must meet to be + allowed. The criteria can limit the highest finding severity, the number + of days since Amazon Inspector last scanned the AMI, and the number of + days since Amazon Inspector reported a fix as available. + """ + +@dataclass(kw_only=True) +class ImageDiskContainer(_SerdeShape): + """Describes the disk container object for an import image task.""" + + description: str | None = ... + """The description of the disk image.""" + device_name: str | None = ... + """The block device mapping for the disk.""" + format: str | None = ... + """ + The format of the disk image being imported. + + Valid values: `OVA` | `VHD` | `VHDX` | `VMDK` | `RAW` + """ + snapshot_id: str | None = ... + """The ID of the EBS snapshot to be used for importing the snapshot.""" + url: str | None = ... + """ + The URL to the Amazon S3-based disk image being imported. The URL can + either be a https URL (https://..) or an Amazon S3 URL (s3://..) + """ + user_bucket: UserBucket | None = ... + """The S3 bucket for the disk image.""" + +@dataclass(kw_only=True) +class ImageFinding(_SerdeShape): + """Describes an Amazon Inspector vulnerability finding for an AMI.""" + + fix_available: bool | None = ... + """ + Specifies whether a fix is available for the finding. This value is + `true` when Amazon Inspector reports a full or partial fix for the + finding. + """ + score: float | None = ... + """The Amazon Inspector score for the finding.""" + first_observed_at: datetime | None = ... + """ + The date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), when Amazon Inspector first observed the + finding. + """ + updated_at: datetime | None = ... + """ + The date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), when Amazon Inspector last updated the + finding. + """ + title: str | None = ... + """The title of the finding.""" + paths: list[str] | None = ... + """ + The file paths in the AMI that are affected by the finding. Amazon EC2 + returns up to 10 file paths for each finding. + """ + severity_label: str | None = ... + """ + The severity of the finding. + + The valid values are the following Amazon Inspector severity levels, + which correspond to CVSS score ranges: + + - `informational` - CVSS score of 0. + + - `low` - CVSS score of 0.1 to 3.9. + + - `medium` - CVSS score of 4.0 to 6.9. + + - `high` - CVSS score of 7.0 to 8.9. + + - `critical` - CVSS score of 9.0 to 10.0. + + For more information, see [Software package vulnerability + severity](https://docs.aws.amazon.com/inspector/latest/user/findings-understanding-severity.html#findings-understanding-package-score) + in the *Amazon Inspector User Guide*. + """ + snapshot_id: str | None = ... + """ + The ID of the Amazon EBS snapshot of the AMI in which the finding was + detected. + """ + +@dataclass(kw_only=True) +class ImageMetadata(_SerdeShape): + """Information about the AMI.""" + + image_id: str | None = ... + """The ID of the AMI.""" + name: str | None = ... + """The name of the AMI.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the AMI.""" + state: str | None = ... + """ + The current state of the AMI. If the state is `available`, the AMI is + successfully registered and can be used to launch an instance. + """ + image_owner_alias: str | None = ... + """ + The alias of the AMI owner. + + Valid values: `amazon` | `aws-backup-vault` | `aws-marketplace` + """ + creation_date: str | None = ... + """The date and time the AMI was created.""" + deprecation_time: str | None = ... + """ + The deprecation date and time of the AMI, in UTC, in the following + format: *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z. + """ + image_allowed: bool | None = ... + """ + If `true`, the AMI satisfies the criteria for Allowed AMIs and can be + discovered and used in the account. If `false`, the AMI can't be + discovered or used in the account. + + For more information, see [Control the discovery and use of AMIs in + Amazon EC2 with Allowed + AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) + in *Amazon EC2 User Guide*. + """ + is_public: bool | None = ... + """ + Indicates whether the AMI has public launch permissions. A value of + `true` means this AMI has public launch permissions, while `false` means + it has only implicit (AMI owner) or explicit (shared with your account) + launch permissions. + """ + image_watermarks: list[ImageWatermark] | None = ... + """The watermarks attached to the AMI.""" + +@dataclass(kw_only=True) +class ImageRecycleBinInfo(_SerdeShape): + """Information about an AMI that is currently in the Recycle Bin.""" + + image_id: str | None = ... + """The ID of the AMI.""" + name: str | None = ... + """The name of the AMI.""" + description: str | None = ... + """The description of the AMI.""" + recycle_bin_enter_time: datetime | None = ... + """The date and time when the AMI entered the Recycle Bin.""" + recycle_bin_exit_time: datetime | None = ... + """ + The date and time when the AMI is to be permanently deleted from the + Recycle Bin. + """ + +@dataclass(kw_only=True) +class ImageReference(_SerdeShape): + """A resource that is referencing an image.""" + + image_id: str | None = ... + """The ID of the referenced image.""" + resource_type: str | None = ... + """The type of resource referencing the image.""" + arn: str | None = ... + """The Amazon Resource Name (ARN) of the resource referencing the image.""" + +class ImageReferenceOptionName(UnknownEnumMixin, StrEnum): + STATE_NAME = "state-name" + VERSION_DEPTH = "version-depth" + +class ImageReferenceResourceType(UnknownEnumMixin, StrEnum): + EC2_INSTANCE = "ec2:Instance" + EC2_LAUNCH_TEMPLATE = "ec2:LaunchTemplate" + SSM_PARAMETER = "ssm:Parameter" + IMAGE_BUILDER_IMAGE_RECIPE = "imagebuilder:ImageRecipe" + IMAGE_BUILDER_CONTAINER_RECIPE = "imagebuilder:ContainerRecipe" + +class ImageState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + INVALID = "invalid" + DEREGISTERED = "deregistered" + TRANSIENT = "transient" + FAILED = "failed" + ERROR = "error" + DISABLED = "disabled" + +class ImageTypeValues(UnknownEnumMixin, StrEnum): + MACHINE = "machine" + KERNEL = "kernel" + RAMDISK = "ramdisk" + +@dataclass(kw_only=True) +class ImageUsageReport(_SerdeShape): + """The configuration and status of an image usage report.""" + + image_id: str | None = ... + """The ID of the image that was specified when the report was created.""" + report_id: str | None = ... + """The ID of the report.""" + resource_types: list[ImageUsageResourceType] | None = ... + """The resource types that were specified when the report was created.""" + account_ids: list[str] | None = ... + """ + The IDs of the Amazon Web Services accounts that were specified when the + report was created. + """ + state: str | None = ... + """ + The current state of the report. Possible values: + + - `available` - The report is available to view. + + - `pending` - The report is being created and not available to view. + + - `error` - The report could not be created. + """ + state_reason: str | None = ... + """Provides additional details when the report is in an `error` state.""" + creation_time: datetime | None = ... + """The date and time when the report was created.""" + expiration_time: datetime | None = ... + """ + The date and time when Amazon EC2 will delete the report (30 days after + the report was created). + """ + tags: list[Tag] | None = ... + """Any tags assigned to the report.""" + +@dataclass(kw_only=True) +class ImageUsageReportEntry(_SerdeShape): + """ + A single entry in an image usage report, detailing how an image is being + used by a specific Amazon Web Services account and resource type. + """ + + resource_type: str | None = ... + """The type of resource (`ec2:Instance` or `ec2:LaunchTemplate`).""" + report_id: str | None = ... + """The ID of the report.""" + usage_count: int | None = ... + """ + The number of times resources of this type reference this image in the + account. + """ + account_id: str | None = ... + """The ID of the account that uses the image.""" + image_id: str | None = ... + """The ID of the image.""" + report_creation_time: datetime | None = ... + """The date and time the report creation was initiated.""" + +@dataclass(kw_only=True) +class ImageUsageResourceType(_SerdeShape): + """ + A resource type to include in the report. Associated options can also be + specified if the resource type is a launch template. + """ + + resource_type: str | None = ... + """ + The resource type. + + Valid values: `ec2:Instance` | `ec2:LaunchTemplate` + """ + resource_type_options: list[ImageUsageResourceTypeOption] | None = ... + """ + The options that affect the scope of the report. Valid only when + `ResourceType` is `ec2:LaunchTemplate`. + """ + +@dataclass(kw_only=True) +class ImageUsageResourceTypeOption(_SerdeShape): + """The options that affect the scope of the report.""" + + option_name: str | None = ... + """The name of the option.""" + option_values: list[str] | None = ... + """The number of launch template versions to check.""" + +@dataclass(kw_only=True) +class ImageUsageResourceTypeOptionRequest(_SerdeShape): + """The options that affect the scope of the report.""" + + option_name: str | None = ... + """ + The name of the option. + + Valid value: `version-depth` - The number of launch template versions to + check. + """ + option_values: list[str] | None = ... + """ + A value for the specified option. + + Valid values: Integers between `1` and `10000` + + Default: `20` + """ + +@dataclass(kw_only=True) +class ImageUsageResourceTypeRequest(_SerdeShape): + """ + A resource type to include in the report. Associated options can also be + specified if the resource type is a launch template. + """ + + resource_type: str | None = ... + """ + The resource type. + + Valid values: `ec2:Instance` | `ec2:LaunchTemplate` + """ + resource_type_options: list[ImageUsageResourceTypeOptionRequest] | None = ... + """ + The options that affect the scope of the report. Valid only when + `ResourceType` is `ec2:LaunchTemplate`. + """ + +@dataclass(kw_only=True) +class ImageWatermark(_SerdeShape): + """Describes a watermark attached to an AMI.""" + + watermark_key: str | None = ... + """ + The watermark identifier, in `accountId:watermarkName` format (for + example, `123456789012:approvedAmi`). The `accountId` portion is the + Amazon Web Services account ID of the watermark creator. The + `watermarkName` portion is customer-provided. + """ + source_image_region: str | None = ... + """The Region where the watermark was originally attached.""" + source_image_id: str | None = ... + """The ID of the AMI to which the watermark was originally attached.""" + source_image_creation_time: datetime | None = ... + """ + The creation date of the source AMI, in the following format: + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*.*ssssss*+*HH*:*MM*. + """ + watermark_creation_time: datetime | None = ... + """ + The date and time the watermark was attached to the AMI, in the + following format: *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*.*ssssss*+*HH*:*MM*. + """ + +@dataclass(kw_only=True) +class ImageWatermarkFilterRequest(_SerdeShape): + """ + The watermark filter criteria for an allowed image. Each entry can + specify one or more fields. All specified fields must match the same + watermark on the image. + """ + + watermark_key: str | None = ... + """The `accountId:name` of the watermark. Supports wildcards (`*`, `?`).""" + source_image_region: str | None = ... + """ + The Region where the watermark was originally created. Supports + wildcards (`*`, `?`). + """ + maximum_days_since_source_image_created: int | None = ... + """ + The maximum number of days that have elapsed since the source image was + created. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + maximum_days_since_watermark_created: int | None = ... + """ + The maximum number of days that have elapsed since the watermark was + attached to the image. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + +@dataclass(kw_only=True) +class ImageWatermarkFilterResponse(_SerdeShape): + """ + The watermark filter criteria for an allowed image. Each entry can + specify one or more fields. All specified fields must match the same + watermark on the image. + """ + + watermark_key: str | None = ... + """The `accountId:name` of the watermark. Supports wildcards (`*`, `?`).""" + source_image_region: str | None = ... + """ + The Region where the watermark was originally created. Supports + wildcards (`*`, `?`). + """ + maximum_days_since_source_image_created: int | None = ... + """ + The maximum number of days that have elapsed since the source image was + created. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + maximum_days_since_watermark_created: int | None = ... + """ + The maximum number of days that have elapsed since the watermark was + attached to the image. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + +class ImdsSupportValues(UnknownEnumMixin, StrEnum): + V2_0 = "v2.0" + +@dataclass(kw_only=True) +class ImportClientVpnClientCertificateRevocationListInput(_SerdeShape): + """ + Dataclass for ImportClientVpnClientCertificateRevocationListInput + structure. + """ + + client_vpn_endpoint_id: str | None = ... + """ + The ID of the Client VPN endpoint to which the client certificate + revocation list applies. + """ + certificate_revocation_list: str | None = ... + """ + The client certificate revocation list file. For more information, see + [Generate a Client Certificate Revocation + List](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-certificates.html#cvpn-working-certificates-generate) + in the *Client VPN Administrator Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ImportClientVpnClientCertificateRevocationListOutput(_SerdeShape): + """ + Dataclass for ImportClientVpnClientCertificateRevocationListOutput + structure. + """ + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportImageInput(_SerdeShape): + """Dataclass for ImportImageInput structure.""" + + architecture: str | None = ... + """ + The architecture of the virtual machine. + + Valid values: `i386` | `x86_64` + """ + client_data: ClientData | None = ... + """The client-specific data.""" + client_token: str | None = ... + """The token to enable idempotency for VM import requests.""" + description: str | None = ... + """A description string for the import image task.""" + disk_containers: list[ImageDiskContainer] | None = ... + """Information about the disk containers.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + encrypted: bool | None = ... + """ + Specifies whether the destination AMI of the imported image should be + encrypted. The default KMS key for EBS is used unless you specify a + non-default KMS key using `KmsKeyId`. For more information, see [Amazon + EBS + Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) + in the *Amazon Elastic Compute Cloud User Guide*. + """ + hypervisor: str | None = ... + """ + The target hypervisor platform. + + Valid values: `xen` + """ + kms_key_id: str | None = ... + """ + An identifier for the symmetric KMS key to use when creating the + encrypted AMI. This parameter is only required if you want to use a + non-default KMS key; if this parameter is not specified, the default KMS + key for EBS is used. If a `KmsKeyId` is specified, the `Encrypted` flag + must also be set. + + The KMS key identifier may be provided in any of the following formats: + + - Key ID + + - Key alias + + - ARN using key ID. The ID ARN contains the `arn:aws:kms` namespace, + followed by the Region of the key, the Amazon Web Services account ID + of the key owner, the `key` namespace, and then the key ID. For + example, + arn:aws:kms:*us-east-1*:*012345678910*:key/*abcd1234-a123-456a-a12b-a123b4cd56ef*. + + - ARN using key alias. The alias ARN contains the `arn:aws:kms` + namespace, followed by the Region of the key, the Amazon Web Services + account ID of the key owner, the `alias` namespace, and then the key + alias. For example, + arn:aws:kms:*us-east-1*:*012345678910*:alias/*ExampleAlias*. + + Amazon Web Services parses `KmsKeyId` asynchronously, meaning that the + action you call may appear to complete even though you provided an + invalid identifier. This action will eventually report failure. + + The specified KMS key must exist in the Region that the AMI is being + copied to. + + Amazon EBS does not support asymmetric KMS keys. + """ + license_type: str | None = ... + """ + The license type to be used for the Amazon Machine Image (AMI) after + importing. + + Specify `AWS` to replace the source-system license with an Amazon Web + Services license or `BYOL` to retain the source-system license. Leaving + this parameter undefined is the same as choosing `AWS` when importing a + Windows Server operating system, and the same as choosing `BYOL` when + importing a Windows client operating system (such as Windows 10) or a + Linux operating system. + + To use `BYOL`, you must have existing licenses with rights to use these + licenses in a third party cloud, such as Amazon Web Services. For more + information, see + [Prerequisites](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#prerequisites-image) + in the VM Import/Export User Guide. + """ + platform: str | None = ... + """ + The operating system of the virtual machine. If you import a VM that is + compatible with Unified Extensible Firmware Interface (UEFI) using an + EBS snapshot, you must specify a value for the platform. + + Valid values: `Windows` | `Linux` + """ + role_name: str | None = ... + """ + The name of the role to use when not using the default role, + 'vmimport'. + """ + license_specifications: list[ImportImageLicenseConfigurationRequest] | None = ... + """The ARNs of the license configurations.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the import image task during creation.""" + usage_operation: str | None = ... + """ + The usage operation value. For more information, see [Licensing + options](https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html#prerequisites) + in the *VM Import/Export User Guide*. + """ + boot_mode: str | None = ... + """ + The boot mode of the virtual machine. + + Note: + The `uefi-preferred` boot mode isn't supported for importing images. + For more information, see [Boot + modes](https://docs.aws.amazon.com/vm-import/latest/userguide/prerequisites.html#vmimport-boot-modes) + in the *VM Import/Export User Guide*. + """ + +@dataclass(kw_only=True) +class ImportImageLicenseConfigurationRequest(_SerdeShape): + """The request information of license configurations.""" + + license_configuration_arn: str | None = ... + """The ARN of a license configuration.""" + +@dataclass(kw_only=True) +class ImportImageLicenseConfigurationResponse(_SerdeShape): + """The response information for license configurations.""" + + license_configuration_arn: str | None = ... + """The ARN of a license configuration.""" + +@dataclass(kw_only=True) +class ImportImageOutput(_SerdeShape): + """Dataclass for ImportImageOutput structure.""" + + architecture: str | None = ... + """The architecture of the virtual machine.""" + description: str | None = ... + """A description of the import task.""" + encrypted: bool | None = ... + """Indicates whether the AMI is encrypted.""" + hypervisor: str | None = ... + """The target hypervisor of the import task.""" + image_id: str | None = ... + """The ID of the Amazon Machine Image (AMI) created by the import task.""" + import_task_id: str | None = ... + """The task ID of the import image task.""" + kms_key_id: str | None = ... + """ + The identifier for the symmetric KMS key that was used to create the + encrypted AMI. + """ + license_type: str | None = ... + """The license type of the virtual machine.""" + platform: str | None = ... + """The operating system of the virtual machine.""" + progress: str | None = ... + """The progress of the task.""" + snapshot_details: list[SnapshotDetail] | None = ... + """Information about the snapshots.""" + status: str | None = ... + """A brief status of the task.""" + status_message: str | None = ... + """A detailed status message of the import task.""" + license_specifications: list[ImportImageLicenseConfigurationResponse] | None = ... + """The ARNs of the license configurations.""" + tags: list[Tag] | None = ... + """Any tags assigned to the import image task.""" + usage_operation: str | None = ... + """The usage operation value.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportImageTask(_SerdeShape): + """Describes an import image task.""" + + architecture: str | None = ... + """ + The architecture of the virtual machine. + + Valid values: `i386` | `x86_64` | `arm64` + """ + description: str | None = ... + """A description of the import task.""" + encrypted: bool | None = ... + """Indicates whether the image is encrypted.""" + hypervisor: str | None = ... + """ + The target hypervisor for the import task. + + Valid values: `xen` + """ + image_id: str | None = ... + """ + The ID of the Amazon Machine Image (AMI) of the imported virtual + machine. + """ + import_task_id: str | None = ... + """The ID of the import image task.""" + kms_key_id: str | None = ... + """ + The identifier for the KMS key that was used to create the encrypted + image. + """ + license_type: str | None = ... + """The license type of the virtual machine.""" + platform: str | None = ... + """The description string for the import image task.""" + progress: str | None = ... + """The percentage of progress of the import image task.""" + snapshot_details: list[SnapshotDetail] | None = ... + """Information about the snapshots.""" + status: str | None = ... + """A brief status for the import image task.""" + status_message: str | None = ... + """A descriptive status message for the import image task.""" + tags: list[Tag] | None = ... + """The tags for the import image task.""" + license_specifications: list[ImportImageLicenseConfigurationResponse] | None = ... + """ + The ARNs of the license configurations that are associated with the + import image task. + """ + usage_operation: str | None = ... + """The usage operation value.""" + boot_mode: str | None = ... + """The boot mode of the virtual machine.""" + +@dataclass(kw_only=True) +class ImportInstanceInput(_SerdeShape): + """Dataclass for ImportInstanceInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + description: str | None = ... + """A description for the instance being imported.""" + launch_specification: ImportInstanceLaunchSpecification | None = ... + """The launch specification.""" + disk_images: list[DiskImage] | None = ... + """The disk image.""" + platform: str | None = ... + """The instance operating system.""" + +@dataclass(kw_only=True) +class ImportInstanceLaunchSpecification(_SerdeShape): + """Describes the launch specification for VM import.""" + + architecture: str | None = ... + """The architecture of the instance.""" + group_names: list[str] | None = ... + """The security group names.""" + group_ids: list[str] | None = ... + """The security group IDs.""" + additional_info: str | None = ... + """Reserved.""" + user_data: UserData | None = ... + """The Base64-encoded user data to make available to the instance.""" + instance_type: str | None = ... + """ + The instance type. For more information about the instance types that + you can import, see [Instance + Types](https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html#vmimport-instance-types) + in the VM Import/Export User Guide. + """ + placement: Placement | None = ... + """The placement information for the instance.""" + monitoring: bool | None = ... + """Indicates whether monitoring is enabled.""" + subnet_id: str | None = ... + """[EC2-VPC] The ID of the subnet in which to launch the instance.""" + instance_initiated_shutdown_behavior: str | None = ... + """ + Indicates whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + """ + private_ip_address: str | None = ... + """ + [EC2-VPC] An available IP address from the IP address range of the + subnet. + """ + +@dataclass(kw_only=True) +class ImportInstanceOutput(_SerdeShape): + """Dataclass for ImportInstanceOutput structure.""" + + conversion_task: ConversionTask | None = ... + """Information about the conversion task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportInstanceTaskDetails(_SerdeShape): + """Describes an import instance task.""" + + description: str | None = ... + """A description of the task.""" + instance_id: str | None = ... + """The ID of the instance.""" + platform: str | None = ... + """The instance operating system.""" + volumes: list[ImportInstanceVolumeDetailItem] | None = ... + """The volumes.""" + +@dataclass(kw_only=True) +class ImportInstanceVolumeDetailItem(_SerdeShape): + """Describes an import volume task.""" + + availability_zone: str | None = ... + """The Availability Zone where the resulting instance will reside.""" + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone where the resulting instance will + reside. + """ + bytes_converted: int | None = ... + """The number of bytes converted so far.""" + description: str | None = ... + """A description of the task.""" + image: DiskImageDescription | None = ... + """The image.""" + status: str | None = ... + """The status of the import of this particular disk image.""" + status_message: str | None = ... + """The status information or errors related to the disk image.""" + volume: DiskImageVolumeDescription | None = ... + """The volume.""" + +@dataclass(kw_only=True) +class ImportKeyPairInput(_SerdeShape): + """Dataclass for ImportKeyPairInput structure.""" + + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the imported key pair.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + key_name: str | None = ... + """A unique name for the key pair.""" + public_key_material: bytes | None = ... + """The public key.""" + +@dataclass(kw_only=True) +class ImportKeyPairOutput(_SerdeShape): + """Dataclass for ImportKeyPairOutput structure.""" + + key_fingerprint: str | None = ... + """ + - For RSA key pairs, the key fingerprint is the MD5 public key + fingerprint as specified in section 4 of RFC 4716. + + - For ED25519 key pairs, the key fingerprint is the base64-encoded + SHA-256 digest, which is the default for OpenSSH, starting with + [OpenSSH 6.8](http://www.openssh.com/txt/release-6.8). + """ + key_name: str | None = ... + """The key pair name that you provided.""" + key_pair_id: str | None = ... + """The ID of the resulting key pair.""" + tags: list[Tag] | None = ... + """The tags applied to the imported key pair.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportSnapshotInput(_SerdeShape): + """Dataclass for ImportSnapshotInput structure.""" + + client_data: ClientData | None = ... + """The client-specific data.""" + client_token: str | None = ... + """Token to enable idempotency for VM import requests.""" + description: str | None = ... + """The description string for the import snapshot task.""" + disk_container: SnapshotDiskContainer | None = ... + """Information about the disk container.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + encrypted: bool | None = ... + """ + Specifies whether the destination snapshot of the imported image should + be encrypted. The default KMS key for EBS is used unless you specify a + non-default KMS key using `KmsKeyId`. For more information, see [Amazon + EBS + Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) + in the *Amazon Elastic Compute Cloud User Guide*. + """ + kms_key_id: str | None = ... + """ + An identifier for the symmetric KMS key to use when creating the + encrypted snapshot. This parameter is only required if you want to use a + non-default KMS key; if this parameter is not specified, the default KMS + key for EBS is used. If a `KmsKeyId` is specified, the `Encrypted` flag + must also be set. + + The KMS key identifier may be provided in any of the following formats: + + - Key ID + + - Key alias + + - ARN using key ID. The ID ARN contains the `arn:aws:kms` namespace, + followed by the Region of the key, the Amazon Web Services account ID + of the key owner, the `key` namespace, and then the key ID. For + example, + arn:aws:kms:*us-east-1*:*012345678910*:key/*abcd1234-a123-456a-a12b-a123b4cd56ef*. + + - ARN using key alias. The alias ARN contains the `arn:aws:kms` + namespace, followed by the Region of the key, the Amazon Web Services + account ID of the key owner, the `alias` namespace, and then the key + alias. For example, + arn:aws:kms:*us-east-1*:*012345678910*:alias/*ExampleAlias*. + + Amazon Web Services parses `KmsKeyId` asynchronously, meaning that the + action you call may appear to complete even though you provided an + invalid identifier. This action will eventually report failure. + + The specified KMS key must exist in the Region that the snapshot is + being copied to. + + Amazon EBS does not support asymmetric KMS keys. + """ + role_name: str | None = ... + """ + The name of the role to use when not using the default role, + 'vmimport'. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the import snapshot task during creation.""" + +@dataclass(kw_only=True) +class ImportSnapshotOutput(_SerdeShape): + """Dataclass for ImportSnapshotOutput structure.""" + + description: str | None = ... + """A description of the import snapshot task.""" + import_task_id: str | None = ... + """The ID of the import snapshot task.""" + snapshot_task_detail: SnapshotTaskDetail | None = ... + """Information about the import snapshot task.""" + tags: list[Tag] | None = ... + """Any tags assigned to the import snapshot task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportSnapshotTask(_SerdeShape): + """Describes an import snapshot task.""" + + description: str | None = ... + """A description of the import snapshot task.""" + import_task_id: str | None = ... + """The ID of the import snapshot task.""" + snapshot_task_detail: SnapshotTaskDetail | None = ... + """Describes an import snapshot task.""" + tags: list[Tag] | None = ... + """The tags for the import snapshot task.""" + +@dataclass(kw_only=True) +class ImportVolumeInput(_SerdeShape): + """Dataclass for ImportVolumeInput structure.""" + + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone for the resulting EBS volume. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + availability_zone: str | None = ... + """ + The Availability Zone for the resulting EBS volume. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified, but + not both. + """ + image: DiskImageDetail | None = ... + """The disk image.""" + description: str | None = ... + """A description of the volume.""" + volume: VolumeDetail | None = ... + """The volume size.""" + +@dataclass(kw_only=True) +class ImportVolumeOutput(_SerdeShape): + """Dataclass for ImportVolumeOutput structure.""" + + conversion_task: ConversionTask | None = ... + """Information about the conversion task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ImportVolumeTaskDetails(_SerdeShape): + """Describes an import volume task.""" + + availability_zone: str | None = ... + """The Availability Zone where the resulting volume will reside.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone where the resulting volume will reside.""" + bytes_converted: int | None = ... + """The number of bytes converted so far.""" + description: str | None = ... + """The description you provided when starting the import volume task.""" + image: DiskImageDescription | None = ... + """The image.""" + volume: DiskImageVolumeDescription | None = ... + """The volume.""" + +@dataclass(kw_only=True) +class InferenceAcceleratorInfo(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes the Inference accelerators for the instance type. + """ + + accelerators: list[InferenceDeviceInfo] | None = ... + """Describes the Inference accelerators for the instance type.""" + total_inference_memory_in_mi_b: int | None = ... + """ + The total size of the memory for the inference accelerators for the + instance type, in MiB. + """ + +@dataclass(kw_only=True) +class InferenceDeviceInfo(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes the Inference accelerators for the instance type. + """ + + count: int | None = ... + """The number of Inference accelerators for the instance type.""" + name: str | None = ... + """The name of the Inference accelerator.""" + manufacturer: str | None = ... + """The manufacturer of the Inference accelerator.""" + memory_info: InferenceDeviceMemoryInfo | None = ... + """Describes the memory available to the inference accelerator.""" + +@dataclass(kw_only=True) +class InferenceDeviceMemoryInfo(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes the memory available to the inference accelerator. + """ + + size_in_mi_b: int | None = ... + """The size of the memory available to the inference accelerator, in MiB.""" + +class IngestionStatus(UnknownEnumMixin, StrEnum): + INITIAL_INGESTION_IN_PROGRESS = "initial-ingestion-in-progress" + INGESTION_COMPLETE = "ingestion-complete" + INGESTION_FAILED = "ingestion-failed" + +@dataclass(kw_only=True) +class InitializationStatusDetails(_SerdeShape): + """ + Information about the volume initialization. For more information, see + [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html). + """ + + initialization_type: str | None = ... + """ + The method used for volume initialization. Possible values include: + + - `default` - Volume initialized using the default volume initialization + rate or fast snapshot restore. + + - `provisioned-rate` - Volume initialized using an Amazon EBS + Provisioned Rate for Volume Initialization. + + - `volume-copy` - Volume copy initialized at the rate for volume copies. + """ + progress: int | None = ... + """ + The current volume initialization progress as a percentage (0-100). + Returns `100` when volume initialization has completed. + """ + estimated_time_to_complete_in_seconds: int | None = ... + """ + The estimated remaining time, in seconds, for volume initialization to + complete. Returns `0` when volume initialization has completed. + + Only available for volumes created with Amazon EBS Provisioned Rate for + Volume Initialization. + """ + +class InitializationType(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + PROVISIONED_RATE = "provisioned-rate" + VOLUME_COPY = "volume-copy" + +@dataclass(kw_only=True) +class Instance(_SerdeShape): + """Describes an instance.""" + + architecture: str | None = ... + """The architecture of the image.""" + block_device_mappings: list[InstanceBlockDeviceMapping] | None = ... + """Any block device mapping entries for the instance.""" + client_token: str | None = ... + """ + The idempotency token you provided when you launched the instance, if + applicable. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the instance is optimized for Amazon EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal I/O performance. This + optimization isn't available with all instance types. Additional usage + charges apply when using an EBS Optimized instance. + """ + ena_support: bool | None = ... + """Specifies whether enhanced networking with ENA is enabled.""" + hypervisor: str | None = ... + """ + The hypervisor type of the instance. The value `xen` is used for both + Xen and Nitro hypervisors. + """ + iam_instance_profile: IamInstanceProfile | None = ... + """The IAM instance profile associated with the instance, if applicable.""" + instance_lifecycle: str | None = ... + """Indicates whether this is a Spot Instance or a Scheduled Instance.""" + elastic_gpu_associations: list[ElasticGpuAssociation] | None = ... + """ + Deprecated. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + elastic_inference_accelerator_associations: ( + list[ElasticInferenceAcceleratorAssociation] | None + ) = ... + """ + Deprecated + + Note: + Amazon Elastic Inference is no longer available. + """ + network_interfaces: list[InstanceNetworkInterface] | None = ... + """The network interfaces for the instance.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + root_device_name: str | None = ... + """The device name of the root device volume (for example, `/dev/sda1`).""" + root_device_type: str | None = ... + """ + The root device type used by the AMI. The AMI can use an EBS volume or + an instance store volume. + """ + security_groups: list[GroupIdentifier] | None = ... + """The security groups for the instance.""" + source_dest_check: bool | None = ... + """Indicates whether source/destination checking is enabled.""" + spot_instance_request_id: str | None = ... + """If the request is a Spot Instance request, the ID of the request.""" + sriov_net_support: str | None = ... + """ + Specifies whether enhanced networking with the Intel 82599 Virtual + Function interface is enabled. + """ + state_reason: StateReason | None = ... + """The reason for the most recent state transition.""" + tags: list[Tag] | None = ... + """Any tags assigned to the instance.""" + virtualization_type: str | None = ... + """The virtualization type of the instance.""" + cpu_options: CpuOptions | None = ... + """The CPU options for the instance.""" + capacity_block_id: str | None = ... + """ + The ID of the Capacity Block. + + Note: + For P5 instances, a Capacity Block ID refers to a group of instances. + For Trn2u instances, a capacity block ID refers to an EC2 UltraServer. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + capacity_reservation_specification: ( + CapacityReservationSpecificationResponse | None + ) = ... + """Information about the Capacity Reservation targeting option.""" + hibernation_options: HibernationOptions | None = ... + """Indicates whether the instance is enabled for hibernation.""" + licenses: list[LicenseConfiguration] | None = ... + """The license configurations for the instance.""" + metadata_options: InstanceMetadataOptionsResponse | None = ... + """The metadata options for the instance.""" + enclave_options: EnclaveOptions | None = ... + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. + """ + boot_mode: str | None = ... + """ + The boot mode that was specified by the AMI. If the value is + `uefi-preferred`, the AMI supports both UEFI and Legacy BIOS. The + `currentInstanceBootMode` parameter is the boot mode that is used to + boot the instance at launch or start. + + Note: + The operating system contained in the AMI must be configured to support + the specified boot mode. + + For more information, see [Boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + platform_details: str | None = ... + """ + The platform details value for the instance. For more information, see + [AMI billing information + fields](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html) + in the *Amazon EC2 User Guide*. + """ + usage_operation: str | None = ... + """ + The usage operation value for the instance. For more information, see + [AMI billing information + fields](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html) + in the *Amazon EC2 User Guide*. + """ + usage_operation_update_time: datetime | None = ... + """The time that the usage operation was last updated.""" + private_dns_name_options: PrivateDnsNameOptionsResponse | None = ... + """The options for the instance hostname.""" + ipv6_address: str | None = ... + """The IPv6 address assigned to the instance.""" + tpm_support: str | None = ... + """ + If the instance is configured for NitroTPM support, the value is `v2.0`. + For more information, see + [NitroTPM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) + in the *Amazon EC2 User Guide*. + """ + maintenance_options: InstanceMaintenanceOptions | None = ... + """ + Provides information on the recovery and maintenance options of your + instance. + """ + current_instance_boot_mode: str | None = ... + """ + The boot mode that is used to boot the instance at launch or start. For + more information, see [Boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + network_performance_options: InstanceNetworkPerformanceOptions | None = ... + """Contains settings for the network performance options for your instance.""" + operator: OperatorResponse | None = ... + """The service provider that manages the instance.""" + secondary_interfaces: list[InstanceSecondaryInterface] | None = ... + """The secondary interfaces for the instance.""" + instance_id: str | None = ... + """The ID of the instance.""" + image_id: str | None = ... + """The ID of the AMI used to launch the instance.""" + state: InstanceState | None = ... + """The current state of the instance.""" + private_dns_name: str | None = ... + """ + [IPv4 only] The private DNS hostname name assigned to the instance. + This DNS hostname can only be used inside the Amazon EC2 network. This + name is not available until the instance enters the `running` state. + + The Amazon-provided DNS server resolves Amazon-provided private DNS + hostnames if you've enabled DNS resolution and DNS hostnames in your + VPC. If you are not using the Amazon-provided DNS server in your VPC, + your custom domain name servers must resolve the hostname as + appropriate. + """ + public_dns_name: str | None = ... + """ + The public DNS name assigned to the instance. This name is not available + until the instance enters the `running` state. This name is only + available if you've enabled DNS hostnames for your VPC. The format of + this name depends on the [public hostname + type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hostname-types.html#public-hostnames). + """ + state_transition_reason: str | None = ... + """ + The reason for the most recent state transition. This might be an empty + string. + """ + key_name: str | None = ... + """ + The name of the key pair, if this instance was launched with an + associated key pair. + """ + ami_launch_index: int | None = ... + """ + The AMI launch index, which can be used to find this instance in the + launch group. + """ + product_codes: list[ProductCode] | None = ... + """The product codes attached to this instance, if applicable.""" + instance_type: str | None = ... + """The instance type.""" + launch_time: datetime | None = ... + """ + The time that the instance was last launched. To determine the time that + instance was first launched, see the attachment time for the primary + network interface. + """ + placement: Placement | None = ... + """The location where the instance launched, if applicable.""" + kernel_id: str | None = ... + """The kernel associated with this instance, if applicable.""" + ramdisk_id: str | None = ... + """The RAM disk associated with this instance, if applicable.""" + platform: str | None = ... + """ + The platform. This value is `windows` for Windows instances; otherwise, + it is empty. + """ + monitoring: Monitoring | None = ... + """The monitoring for the instance.""" + subnet_id: str | None = ... + """The ID of the subnet in which the instance is running.""" + vpc_id: str | None = ... + """The ID of the VPC in which the instance is running.""" + private_ip_address: str | None = ... + """The private IPv4 address assigned to the instance.""" + public_ip_address: str | None = ... + """ + The public IPv4 address, or the Carrier IP address assigned to the + instance, if applicable. + + A Carrier IP address only applies to an instance launched in a subnet + associated with a Wavelength Zone. + """ + +@dataclass(kw_only=True) +class InstanceApplicationStatus(_SerdeShape): + """Describes the application status for an instance.""" + + instance_id: str | None = ... + """The ID of the instance.""" + availability_zone: str | None = ... + """The Availability Zone of the instance.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the instance.""" + application_status: ApplicationStatus | None = ... + """The application status for the instance.""" + tags: list[Tag] | None = ... + """The tags assigned to the instance.""" + +@dataclass(kw_only=True) +class InstanceAttachmentEnaSrdSpecification(_SerdeShape): + """ + ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + technology to increase the maximum bandwidth used per stream and + minimize tail latency of network traffic between EC2 instances. With ENA + Express, you can communicate between two EC2 instances in the same + subnet within the same account, or in different accounts. Both sending + and receiving instances must have ENA Express enabled. + + To improve the reliability of network packet delivery, ENA Express + reorders network packets on the receiving end by default. However, some + UDP-based applications are designed to handle network packets that are + out of order to reduce the overhead for packet delivery at the network + layer. When ENA Express is enabled, you can specify whether UDP network + traffic uses it. + """ + + ena_srd_enabled: bool | None = ... + """Indicates whether ENA Express is enabled for the network interface.""" + ena_srd_udp_specification: InstanceAttachmentEnaSrdUdpSpecification | None = ... + """Configures ENA Express for UDP network traffic.""" + +@dataclass(kw_only=True) +class InstanceAttachmentEnaSrdUdpSpecification(_SerdeShape): + """ + ENA Express is compatible with both TCP and UDP transport protocols. + When it's enabled, TCP traffic automatically uses it. However, some + UDP-based applications are designed to handle network packets that are + out of order, without a need for retransmission, such as live video + broadcasting or other near-real-time applications. For UDP traffic, you + can specify whether to use ENA Express, based on your application + environment needs. + """ + + ena_srd_udp_enabled: bool | None = ... + """ + Indicates whether UDP traffic to and from the instance uses ENA Express. + To specify this setting, you must first enable ENA Express. + """ + +class InstanceAttributeName(UnknownEnumMixin, StrEnum): + INSTANCE_TYPE = "instanceType" + KERNEL = "kernel" + RAMDISK = "ramdisk" + USER_DATA = "userData" + DISABLE_API_TERMINATION = "disableApiTermination" + INSTANCE_INITIATED_SHUTDOWN_BEHAVIOR = "instanceInitiatedShutdownBehavior" + ROOT_DEVICE_NAME = "rootDeviceName" + BLOCK_DEVICE_MAPPING = "blockDeviceMapping" + PRODUCT_CODES = "productCodes" + SOURCE_DEST_CHECK = "sourceDestCheck" + GROUP_SET = "groupSet" + EBS_OPTIMIZED = "ebsOptimized" + SRIOV_NET_SUPPORT = "sriovNetSupport" + ENA_SUPPORT = "enaSupport" + ENCLAVE_OPTIONS = "enclaveOptions" + DISABLE_API_STOP = "disableApiStop" + +class InstanceAutoRecoveryState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + DEFAULT = "default" + +class InstanceBandwidthWeighting(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + VPC_1 = "vpc-1" + EBS_1 = "ebs-1" + +@dataclass(kw_only=True) +class InstanceBlockDeviceMapping(_SerdeShape): + """Describes a block device mapping.""" + + device_name: str | None = ... + """The device name.""" + ebs: EbsInstanceBlockDevice | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + +@dataclass(kw_only=True) +class InstanceBlockDeviceMappingSpecification(_SerdeShape): + """Describes a block device mapping entry.""" + + device_name: str | None = ... + """ + The device name. For available device names, see [Device names for + volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html). + """ + ebs: EbsInstanceBlockDeviceSpecification | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + virtual_name: str | None = ... + """The virtual device name.""" + no_device: str | None = ... + """Suppresses the specified device included in the block device mapping.""" + +class InstanceBootModeValues(UnknownEnumMixin, StrEnum): + LEGACY_BIOS = "legacy-bios" + UEFI = "uefi" + +@dataclass(kw_only=True) +class InstanceCapacity(_SerdeShape): + """ + Information about the number of instances that can be launched onto the + Dedicated Host. + """ + + available_capacity: int | None = ... + """ + The number of instances that can be launched onto the Dedicated Host + based on the host's available capacity. + """ + instance_type: str | None = ... + """The instance type supported by the Dedicated Host.""" + total_capacity: int | None = ... + """ + The total number of instances that can be launched onto the Dedicated + Host if there are no instances running on it. + """ + +@dataclass(kw_only=True) +class InstanceConnectEndpointDnsNames(_SerdeShape): + """The DNS names of the endpoint.""" + + dns_name: str | None = ... + """The DNS name of the EC2 Instance Connect Endpoint.""" + fips_dns_name: str | None = ... + """ + The Federal Information Processing Standards (FIPS) compliant DNS name + of the EC2 Instance Connect Endpoint. + """ + +@dataclass(kw_only=True) +class InstanceConnectEndpointPublicDnsNames(_SerdeShape): + """ + The public DNS names of the endpoint, including IPv4-only and dualstack + DNS names. + """ + + ipv4: InstanceConnectEndpointDnsNames | None = ... + """The IPv4-only DNS name of the EC2 Instance Connect Endpoint.""" + dualstack: InstanceConnectEndpointDnsNames | None = ... + """ + The dualstack DNS name of the EC2 Instance Connect Endpoint. A dualstack + DNS name supports connections from both IPv4 and IPv6 clients. + """ + +@dataclass(kw_only=True) +class InstanceCount(_SerdeShape): + """Describes a Reserved Instance listing state.""" + + instance_count: int | None = ... + """ + The number of listed Reserved Instances in the state specified by the + `state`. + """ + state: str | None = ... + """The states of the listed Reserved Instances.""" + +@dataclass(kw_only=True) +class InstanceCreditSpecification(_SerdeShape): + """ + Describes the credit option for CPU usage of a burstable performance + instance. + """ + + instance_id: str | None = ... + """The ID of the instance.""" + cpu_credits: str | None = ... + """ + The credit option for CPU usage of the instance. + + Valid values: `standard` | `unlimited` + """ + +@dataclass(kw_only=True) +class InstanceCreditSpecificationRequest(_SerdeShape): + """ + Describes the credit option for CPU usage of a burstable performance + instance. + """ + + instance_id: str | None = ... + """The ID of the instance.""" + cpu_credits: str | None = ... + """ + The credit option for CPU usage of the instance. + + Valid values: `standard` | `unlimited` + + T3 instances with `host` tenancy do not support the `unlimited` CPU + credit option. + """ + +@dataclass(kw_only=True) +class InstanceEventWindow(_SerdeShape): + """The event window.""" + + instance_event_window_id: str | None = ... + """The ID of the event window.""" + time_ranges: list[InstanceEventWindowTimeRange] | None = ... + """One or more time ranges defined for the event window.""" + name: str | None = ... + """The name of the event window.""" + cron_expression: str | None = ... + """The cron expression defined for the event window.""" + association_target: InstanceEventWindowAssociationTarget | None = ... + """One or more targets associated with the event window.""" + state: str | None = ... + """The current state of the event window.""" + tags: list[Tag] | None = ... + """The instance tags associated with the event window.""" + +@dataclass(kw_only=True) +class InstanceEventWindowAssociationRequest(_SerdeShape): + """ + One or more targets associated with the specified event window. Only one + *type* of target (instance ID, instance tag, or Dedicated Host ID) can + be associated with an event window. + """ + + instance_ids: list[str] | None = ... + """ + The IDs of the instances to associate with the event window. If the + instance is on a Dedicated Host, you can't specify the Instance ID + parameter; you must use the Dedicated Host ID parameter. + """ + instance_tags: list[Tag] | None = ... + """ + The instance tags to associate with the event window. Any instances + associated with the tags will be associated with the event window. + + Note that while you can't create tag keys beginning with `aws:`, you + can specify existing Amazon Web Services managed tag keys (with the + `aws:` prefix) when specifying them as targets to associate with the + event window. + """ + dedicated_host_ids: list[str] | None = ... + """The IDs of the Dedicated Hosts to associate with the event window.""" + +@dataclass(kw_only=True) +class InstanceEventWindowAssociationTarget(_SerdeShape): + """One or more targets associated with the event window.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances associated with the event window.""" + tags: list[Tag] | None = ... + """ + The instance tags associated with the event window. Any instances + associated with the tags will be associated with the event window. + + Note that while you can't create tag keys beginning with `aws:`, you + can specify existing Amazon Web Services managed tag keys (with the + `aws:` prefix) when specifying them as targets to associate with the + event window. + """ + dedicated_host_ids: list[str] | None = ... + """The IDs of the Dedicated Hosts associated with the event window.""" + +@dataclass(kw_only=True) +class InstanceEventWindowDisassociationRequest(_SerdeShape): + """The targets to disassociate from the specified event window.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances to disassociate from the event window.""" + instance_tags: list[Tag] | None = ... + """ + The instance tags to disassociate from the event window. Any instances + associated with the tags will be disassociated from the event window. + """ + dedicated_host_ids: list[str] | None = ... + """The IDs of the Dedicated Hosts to disassociate from the event window.""" + +class InstanceEventWindowState(UnknownEnumMixin, StrEnum): + CREATING = "creating" + DELETING = "deleting" + ACTIVE = "active" + DELETED = "deleted" + +@dataclass(kw_only=True) +class InstanceEventWindowStateChange(_SerdeShape): + """The state of the event window.""" + + instance_event_window_id: str | None = ... + """The ID of the event window.""" + state: str | None = ... + """The current state of the event window.""" + +@dataclass(kw_only=True) +class InstanceEventWindowTimeRange(_SerdeShape): + """ + The start day and time and the end day and time of the time range, in + UTC. + """ + + start_week_day: str | None = ... + """The day on which the time range begins.""" + start_hour: int | None = ... + """The hour when the time range begins.""" + end_week_day: str | None = ... + """The day on which the time range ends.""" + end_hour: int | None = ... + """The hour when the time range ends.""" + +@dataclass(kw_only=True) +class InstanceEventWindowTimeRangeRequest(_SerdeShape): + """ + The start day and time and the end day and time of the time range, in + UTC. + """ + + start_week_day: str | None = ... + """The day on which the time range begins.""" + start_hour: int | None = ... + """The hour when the time range begins.""" + end_week_day: str | None = ... + """The day on which the time range ends.""" + end_hour: int | None = ... + """The hour when the time range ends.""" + +@dataclass(kw_only=True) +class InstanceExportDetails(_SerdeShape): + """Describes an instance to export.""" + + instance_id: str | None = ... + """The ID of the resource being exported.""" + target_environment: str | None = ... + """The target virtualization environment.""" + +@dataclass(kw_only=True) +class InstanceFamilyCreditSpecification(_SerdeShape): + """ + Describes the default credit option for CPU usage of a burstable + performance instance family. + """ + + instance_family: str | None = ... + """The instance family.""" + cpu_credits: str | None = ... + """ + The default credit option for CPU usage of the instance family. Valid + values are `standard` and `unlimited`. + """ + +class InstanceGeneration(UnknownEnumMixin, StrEnum): + CURRENT = "current" + PREVIOUS = "previous" + +class InstanceHealthStatus(UnknownEnumMixin, StrEnum): + HEALTHY_STATUS = "healthy" + UNHEALTHY_STATUS = "unhealthy" + +@dataclass(kw_only=True) +class InstanceImageMetadata(_SerdeShape): + """Information about the instance and the AMI used to launch the instance.""" + + instance_id: str | None = ... + """The ID of the instance.""" + instance_type: str | None = ... + """The instance type.""" + launch_time: datetime | None = ... + """The time the instance was launched.""" + availability_zone: str | None = ... + """The Availability Zone or Local Zone of the instance.""" + zone_id: str | None = ... + """The ID of the Availability Zone or Local Zone of the instance.""" + state: InstanceState | None = ... + """The current state of the instance.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the instance.""" + tags: list[Tag] | None = ... + """Any tags assigned to the instance.""" + image_metadata: ImageMetadata | None = ... + """Information about the AMI used to launch the instance.""" + operator: OperatorResponse | None = ... + """The entity that manages the instance.""" + +class InstanceInterruptionBehavior(UnknownEnumMixin, StrEnum): + HIBERNATE = "hibernate" + STOP = "stop" + TERMINATE = "terminate" + +@dataclass(kw_only=True) +class InstanceIpv4Prefix(_SerdeShape): + """Information about an IPv4 prefix.""" + + ipv4_prefix: str | None = ... + """One or more IPv4 prefixes assigned to the network interface.""" + +@dataclass(kw_only=True) +class InstanceIpv6Address(_SerdeShape): + """Describes an IPv6 address.""" + + ipv6_address: str | None = ... + """The IPv6 address.""" + is_primary_ipv6: bool | None = ... + """ + Determines if an IPv6 address associated with a network interface is the + primary IPv6 address. When you enable an IPv6 GUA address to be a + primary IPv6, the first IPv6 GUA will be made the primary IPv6 address + until the instance is terminated or the network interface is detached. + For more information, see + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + +@dataclass(kw_only=True) +class InstanceIpv6AddressRequest(_SerdeShape): + """Describes an IPv6 address.""" + + ipv6_address: str | None = ... + """The IPv6 address.""" + +@dataclass(kw_only=True) +class InstanceIpv6Prefix(_SerdeShape): + """Information about an IPv6 prefix.""" + + ipv6_prefix: str | None = ... + """One or more IPv6 prefixes assigned to the network interface.""" + +class InstanceLifecycle(UnknownEnumMixin, StrEnum): + SPOT = "spot" + ON_DEMAND = "on-demand" + INTERRUPTIBLE_CAPACITY_RESERVATION = "interruptible-capacity-reservation" + CAPACITY_BLOCK = "capacity-block" + +class InstanceLifecycleType(UnknownEnumMixin, StrEnum): + SPOT = "spot" + SCHEDULED = "scheduled" + CAPACITY_BLOCK = "capacity-block" + INTERRUPTIBLE_CAPACITY_RESERVATION = "interruptible-capacity-reservation" + +@dataclass(kw_only=True) +class InstanceMaintenanceOptions(_SerdeShape): + """The maintenance options for the instance.""" + + auto_recovery: str | None = ... + """ + Provides information on the current automatic recovery behavior of your + instance. + """ + reboot_migration: str | None = ... + """ + Specifies whether to attempt reboot migration during a user-initiated + reboot of an instance that has a scheduled `system-reboot` event: + + - `default` - Amazon EC2 attempts to migrate the instance to new + hardware (reboot migration). If successful, the `system-reboot` event + is cleared. If unsuccessful, an in-place reboot occurs and the event + remains scheduled. + + - `disabled` - Amazon EC2 keeps the instance on the same hardware + (in-place reboot). The `system-reboot` event remains scheduled. + + This setting only applies to supported instances that have a scheduled + reboot event. For more information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class InstanceMaintenanceOptionsRequest(_SerdeShape): + """The maintenance options for the instance.""" + + auto_recovery: str | None = ... + """ + Disables the automatic recovery behavior of your instance or sets it to + default. For more information, see [Simplified automatic + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#instance-configuration-recovery). + """ + +@dataclass(kw_only=True) +class InstanceMarketOptionsRequest(_SerdeShape): + """Describes the market (purchasing) option for the instances.""" + + market_type: str | None = ... + """The market type.""" + spot_options: SpotMarketOptions | None = ... + """The options for Spot Instances.""" + +class InstanceMatchCriteria(UnknownEnumMixin, StrEnum): + OPEN = "open" + TARGETED = "targeted" + +@dataclass(kw_only=True) +class InstanceMetadataDefaultsResponse(_SerdeShape): + """ + The default instance metadata service (IMDS) settings that were set at + the account level in the specified Amazon Web Services
 Region. + """ + + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` -- IMDSv2 is optional, which means that you can use either + IMDSv2 or IMDSv1. + + - `required` -- IMDSv2 is required, which means that IMDSv1 is disabled, + and you must use IMDSv2. + """ + http_put_response_hop_limit: int | None = ... + """The maximum number of hops that the metadata token can travel.""" + http_endpoint: str | None = ... + """ + Indicates whether the IMDS endpoint for an instance is enabled or + disabled. When disabled, the instance metadata can't be accessed. + """ + instance_metadata_tags: str | None = ... + """ + Indicates whether access to instance tags from the instance metadata is + enabled or disabled. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html) + in the *Amazon EC2 User Guide*. + """ + managed_by: str | None = ... + """ + The entity that manages the IMDS default settings. Possible values + include: + + - `account` - The IMDS default settings are managed by the account. + + - `declarative-policy` - The IMDS default settings are managed by a + declarative policy and can't be modified by the account. + """ + managed_exception_message: str | None = ... + """ + The customized exception message that is specified in the declarative + policy. + """ + http_tokens_enforced: str | None = ... + """ + Indicates whether to enforce the requirement of IMDSv2 on an instance at + the time of launch. When enforcement is enabled, the instance can't + launch unless IMDSv2 (`HttpTokens`) is set to `required`. + """ + +class InstanceMetadataEndpointState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +@dataclass(kw_only=True) +class InstanceMetadataOptionsRequest(_SerdeShape): + """The metadata options for the instance.""" + + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional, which means that you can use either + IMDSv2 or IMDSv1. + + - `required` - IMDSv2 is required, which means that IMDSv1 is disabled, + and you must use IMDSv2. + + Default: + + - If the value of `ImdsSupport` for the Amazon Machine Image (AMI) for + your instance is `v2.0` and the account level default is set to + `no-preference`, the default is `required`. + + - If the value of `ImdsSupport` for the Amazon Machine Image (AMI) for + your instance is `v2.0`, but the account level default is set to + `V1 or V2`, the default is `optional`. + + The default value can also be affected by other combinations of + parameters. For more information, see [Order of precedence for instance + metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + """ + http_put_response_hop_limit: int | None = ... + """ + The maximum number of hops that the metadata token can travel. + + Possible values: Integers from 1 to 64 + """ + http_endpoint: str | None = ... + """ + Enables or disables the HTTP metadata endpoint on your instances. + + If you specify a value of `disabled`, you cannot access your instance + metadata. + + Default: `enabled` + """ + http_protocol_ipv6: str | None = ... + """ + Enables or disables the IPv6 endpoint for the instance metadata service. + + Default: `disabled` + """ + instance_metadata_tags: str | None = ... + """ + Set to `enabled` to allow access to instance tags from the instance + metadata. Set to `disabled` to turn off access to instance tags from the + instance metadata. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html). + + Default: `disabled` + """ + +@dataclass(kw_only=True) +class InstanceMetadataOptionsResponse(_SerdeShape): + """The metadata options for the instance.""" + + state: str | None = ... + """ + The state of the metadata option changes. + + `pending` - The metadata options are being updated and the instance is + not ready to process metadata traffic with the new selection. + + `applied` - The metadata options have been successfully applied on the + instance. + """ + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional, which means that you can use either + IMDSv2 or IMDSv1. + + - `required` - IMDSv2 is required, which means that IMDSv1 is disabled, + and you must use IMDSv2. + """ + http_put_response_hop_limit: int | None = ... + """ + The maximum number of hops that the metadata token can travel. + + Possible values: Integers from `1` to `64` + """ + http_endpoint: str | None = ... + """ + Indicates whether the HTTP metadata endpoint on your instances is + enabled or disabled. + + If the value is `disabled`, you cannot access your instance metadata. + """ + http_protocol_ipv6: str | None = ... + """ + Indicates whether the IPv6 endpoint for the instance metadata service is + enabled or disabled. + + Default: `disabled` + """ + instance_metadata_tags: str | None = ... + """ + Indicates whether access to instance tags from the instance metadata is + enabled or disabled. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html). + """ + +class InstanceMetadataOptionsState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + APPLIED = "applied" + +class InstanceMetadataProtocolState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +class InstanceMetadataTagsState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +@dataclass(kw_only=True) +class InstanceMonitoring(_SerdeShape): + """Describes the monitoring of an instance.""" + + instance_id: str | None = ... + """The ID of the instance.""" + monitoring: Monitoring | None = ... + """The monitoring for the instance.""" + +@dataclass(kw_only=True) +class InstanceNetworkInterface(_SerdeShape): + """Describes a network interface.""" + + association: InstanceNetworkInterfaceAssociation | None = ... + """ + The association information for an Elastic IPv4 associated with the + network interface. + """ + attachment: InstanceNetworkInterfaceAttachment | None = ... + """The network interface attachment.""" + description: str | None = ... + """The description.""" + groups: list[GroupIdentifier] | None = ... + """The security groups.""" + ipv6_addresses: list[InstanceIpv6Address] | None = ... + """The IPv6 addresses associated with the network interface.""" + mac_address: str | None = ... + """The MAC address.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that created the network + interface. + """ + private_dns_name: str | None = ... + """The private DNS name.""" + private_ip_address: str | None = ... + """The IPv4 address of the network interface within the subnet.""" + private_ip_addresses: list[InstancePrivateIpAddress] | None = ... + """The private IPv4 addresses associated with the network interface.""" + source_dest_check: bool | None = ... + """Indicates whether source/destination checking is enabled.""" + status: str | None = ... + """The status of the network interface.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + interface_type: str | None = ... + """ + The type of network interface. + + Valid values: `interface` | `efa` | `efa-only` | `evs` | `trunk` + """ + ipv4_prefixes: list[InstanceIpv4Prefix] | None = ... + """The IPv4 delegated prefixes that are assigned to the network interface.""" + ipv6_prefixes: list[InstanceIpv6Prefix] | None = ... + """The IPv6 delegated prefixes that are assigned to the network interface.""" + connection_tracking_configuration: ( + ConnectionTrackingSpecificationResponse | None + ) = ... + """ + A security group connection tracking configuration that enables you to + set the timeout for connection tracking on an Elastic network interface. + For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + operator: OperatorResponse | None = ... + """The service provider that manages the network interface.""" + +@dataclass(kw_only=True) +class InstanceNetworkInterfaceAssociation(_SerdeShape): + """Describes association information for an Elastic IP address (IPv4).""" + + carrier_ip: str | None = ... + """The carrier IP address associated with the network interface.""" + customer_owned_ip: str | None = ... + """The customer-owned IP address associated with the network interface.""" + ip_owner_id: str | None = ... + """The ID of the owner of the Elastic IP address.""" + public_dns_name: str | None = ... + """The public DNS name.""" + public_ip: str | None = ... + """ + The public IP address or Elastic IP address bound to the network + interface. + """ + +@dataclass(kw_only=True) +class InstanceNetworkInterfaceAttachment(_SerdeShape): + """Describes a network interface attachment.""" + + attach_time: datetime | None = ... + """The time stamp when the attachment initiated.""" + attachment_id: str | None = ... + """The ID of the network interface attachment.""" + delete_on_termination: bool | None = ... + """ + Indicates whether the network interface is deleted when the instance is + terminated. + """ + device_index: int | None = ... + """ + The index of the device on the instance for the network interface + attachment. + """ + status: str | None = ... + """The attachment state.""" + network_card_index: int | None = ... + """The index of the network card.""" + ena_srd_specification: InstanceAttachmentEnaSrdSpecification | None = ... + """ + Contains the ENA Express settings for the network interface that's + attached to the instance. + """ + ena_queue_count: int | None = ... + """The number of ENA queues created with the instance.""" + +@dataclass(kw_only=True) +class InstanceNetworkInterfaceSpecification(_SerdeShape): + """Describes a network interface.""" + + associate_public_ip_address: bool | None = ... + """ + Indicates whether to assign a public IPv4 address to an instance you + launch in a VPC. The public IP address can only be assigned to a network + interface for eth0, and can only be assigned to a new network interface, + not an existing one. You cannot specify more than one network interface + in the request. If launching into a default subnet, the default value is + `true`. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + delete_on_termination: bool | None = ... + """ + If set to `true`, the interface is deleted when the instance is + terminated. You can specify `true` only if creating a new network + interface when launching an instance. + """ + description: str | None = ... + """ + The description of the network interface. Applies only if creating a + network interface when launching an instance. + """ + device_index: int | None = ... + """ + The position of the network interface in the attachment order. A primary + network interface has a device index of 0. + + If you specify a network interface when launching an instance, you must + specify the device index. + """ + groups: list[str] | None = ... + """ + The IDs of the security groups for the network interface. Applies only + if creating a network interface when launching an instance. + """ + ipv6_address_count: int | None = ... + """ + A number of IPv6 addresses to assign to the network interface. Amazon + EC2 chooses the IPv6 addresses from the range of the subnet. You cannot + specify this option and the option to assign specific IPv6 addresses in + the same request. You can specify this option if you've specified a + minimum number of instances to launch. + """ + ipv6_addresses: list[InstanceIpv6Address] | None = ... + """ + The IPv6 addresses to assign to the network interface. You cannot + specify this option and the option to assign a number of IPv6 addresses + in the same request. You cannot specify this option if you've specified + a minimum number of instances to launch. + """ + network_interface_id: str | None = ... + """ + The ID of the network interface. + + If you are creating a Spot Fleet, omit this parameter because you can't + specify a network interface ID in a launch specification. + """ + private_ip_address: str | None = ... + """ + The private IPv4 address of the network interface. Applies only if + creating a network interface when launching an instance. You cannot + specify this option if you're launching more than one instance in a + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) + request. + """ + private_ip_addresses: list[PrivateIpAddressSpecification] | None = ... + """ + The private IPv4 addresses to assign to the network interface. Only one + private IPv4 address can be designated as primary. You cannot specify + this option if you're launching more than one instance in a + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) + request. + """ + secondary_private_ip_address_count: int | None = ... + """ + The number of secondary private IPv4 addresses. You can't specify this + parameter and also specify a secondary private IP address using the + `PrivateIpAddress` parameter. + """ + subnet_id: str | None = ... + """ + The ID of the subnet associated with the network interface. Applies only + if creating a network interface when launching an instance. + """ + associate_carrier_ip_address: bool | None = ... + """ + Indicates whether to assign a carrier IP address to the network + interface. + + You can only assign a carrier IP address to a network interface that is + in a subnet in a Wavelength Zone. For more information about carrier IP + addresses, see [Carrier IP + address](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) + in the *Amazon Web Services Wavelength Developer Guide*. + """ + interface_type: str | None = ... + """ + The type of network interface. + + If you specify `efa-only`, do not assign any IP addresses to the network + interface. EFA-only network interfaces do not support IP addresses. + + Valid values: `interface` | `efa` | `efa-only` + """ + network_card_index: int | None = ... + """ + The index of the network card. Some instance types support multiple + network cards. The primary network interface must be assigned to network + card index 0. The default is network card index 0. + + If you are using + [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html) + to create Spot Instances, omit this parameter because you can't specify + the network card index when using this API. To specify the network card + index, use + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + ipv4_prefixes: list[Ipv4PrefixSpecificationRequest] | None = ... + """ + The IPv4 delegated prefixes to be assigned to the network interface. You + cannot use this option if you use the `Ipv4PrefixCount` option. + """ + ipv4_prefix_count: int | None = ... + """ + The number of IPv4 delegated prefixes to be automatically assigned to + the network interface. You cannot use this option if you use the + `Ipv4Prefix` option. + """ + ipv6_prefixes: list[Ipv6PrefixSpecificationRequest] | None = ... + """ + The IPv6 delegated prefixes to be assigned to the network interface. You + cannot use this option if you use the `Ipv6PrefixCount` option. + """ + ipv6_prefix_count: int | None = ... + """ + The number of IPv6 delegated prefixes to be automatically assigned to + the network interface. You cannot use this option if you use the + `Ipv6Prefix` option. + """ + primary_ipv6: bool | None = ... + """ + The primary IPv6 address of the network interface. When you enable an + IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made + the primary IPv6 address until the instance is terminated or the network + interface is detached. For more information about primary IPv6 + addresses, see + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + ena_srd_specification: EnaSrdSpecificationRequest | None = ... + """ + Specifies the ENA Express settings for the network interface that's + attached to the instance. + """ + connection_tracking_specification: ( + ConnectionTrackingSpecificationRequest | None + ) = ... + """ + A security group connection tracking specification that enables you to + set the timeout for connection tracking on an Elastic network interface. + For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + ena_queue_count: int | None = ... + """The number of ENA queues to be created with the instance.""" + +@dataclass(kw_only=True) +class InstanceNetworkPerformanceOptions(_SerdeShape): + """ + With network performance options, you can adjust your bandwidth + preferences to meet the needs of the workload that runs on your + instance. + """ + + bandwidth_weighting: str | None = ... + """ + When you configure network bandwidth weighting, you can boost your + baseline bandwidth for either networking or EBS by up to 25%. The total + available baseline bandwidth for your instance remains the same. The + default option uses the standard bandwidth configuration for your + instance type. + """ + +@dataclass(kw_only=True) +class InstanceNetworkPerformanceOptionsRequest(_SerdeShape): + """ + Configure network performance options for your instance that are geared + towards performance improvements based on the workload that it runs. + """ + + bandwidth_weighting: str | None = ... + """ + Specify the bandwidth weighting option to boost the associated type of + baseline bandwidth, as follows: + + default + + : This option uses the standard bandwidth configuration for your + instance type. + + vpc-1 + + : This option boosts your networking baseline bandwidth and reduces your + EBS baseline bandwidth. + + ebs-1 + + : This option boosts your EBS baseline bandwidth and reduces your + networking baseline bandwidth. + """ + +@dataclass(kw_only=True) +class InstancePrivateIpAddress(_SerdeShape): + """Describes a private IPv4 address.""" + + association: InstanceNetworkInterfaceAssociation | None = ... + """ + The association information for an Elastic IP address for the network + interface. + """ + primary: bool | None = ... + """ + Indicates whether this IPv4 address is the primary private IP address of + the network interface. + """ + private_dns_name: str | None = ... + """The private IPv4 DNS name.""" + private_ip_address: str | None = ... + """The private IPv4 address of the network interface.""" + +class InstanceRebootMigrationState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + DEFAULT = "default" + +@dataclass(kw_only=True) +class InstanceRequirements(_SerdeShape): + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with these + attributes. + + You must specify `VCpuCount` and `MemoryMiB`. All other attributes are + optional. Any unspecified optional attribute is set to its default. + + When you specify multiple attributes, you get instance types that + satisfy all of the specified attributes. If you specify multiple values + for an attribute, you get instance types that satisfy any of the + specified values. + + To limit the list of instance types from which Amazon EC2 can identify + matching instance types, you can use one of the following parameters, + but not both in the same request: + + - `AllowedInstanceTypes` - The instance types to include in the list. + All other instance types are ignored, even if they match your + specified attributes. + + - `ExcludedInstanceTypes` - The instance types to exclude from the list, + even if they match your specified attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + + Attribute-based instance type selection is only supported when using + Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If + you plan to use the launch template in the [launch instance + wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) + or with the [RunInstances + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), + you can't specify `InstanceRequirements`. + + For more information, see [Create mixed instances group using + attribute-based instance type + selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) + in the *Amazon EC2 Auto Scaling User Guide*, and also [Specify + attributes for instance type selection for EC2 Fleet or Spot + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) + and [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*. + """ + + v_cpu_count: VCpuCountRange | None = ... + """The minimum and maximum number of vCPUs.""" + memory_mi_b: MemoryMiB | None = ... + """The minimum and maximum amount of memory, in MiB.""" + cpu_manufacturers: list[str] | None = ... + """ + The CPU manufacturers to include. + + - For instance types with Intel CPUs, specify `intel`. + + - For instance types with AMD CPUs, specify `amd`. + + - For instance types with Amazon Web Services CPUs, specify + `amazon-web-services`. + + - For instance types with Apple CPUs, specify `apple`. + + Note: + Don't confuse the CPU manufacturer with the CPU architecture. Instances + will be launched with a compatible CPU architecture based on the Amazon + Machine Image (AMI) that you specify in your launch template. + + Default: Any manufacturer + """ + memory_gi_b_per_v_cpu: MemoryGiBPerVCpu | None = ... + """ + The minimum and maximum amount of memory per vCPU, in GiB. + + Default: No minimum or maximum limits + """ + excluded_instance_types: list[str] | None = ... + """ + The instance types to exclude. + + You can use strings with one or more wild cards, represented by an + asterisk (`*`), to exclude an instance type, size, or generation. The + following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. + + For example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 + instance family, which includes all C5a and C5n instance types. If you + specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but + not the M5n instance types. + + Note: + If you specify `ExcludedInstanceTypes`, you can't specify + `AllowedInstanceTypes`. + + Default: No excluded instance types + """ + instance_generations: list[str] | None = ... + """ + Indicates whether current or previous generation instance types are + included. The current generation instance types are recommended for use. + Current generation instance types are typically the latest two to three + generations in each instance family. For more information, see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + + For current generation instance types, specify `current`. + + For previous generation instance types, specify `previous`. + + Default: Current and previous generation instance types + """ + spot_max_price_percentage_over_lowest_price: int | None = ... + """ + [Price protection] The price protection threshold for Spot Instances, + as a percentage higher than an identified Spot price. The identified + Spot price is the Spot price of the lowest priced current generation C, + M, or R instance type with your specified attributes. If no current + generation C, M, or R instance type matches your attributes, then the + identified Spot price is from the lowest priced current generation + instance types, and failing that, from the lowest priced previous + generation instance types that match your attributes. When Amazon EC2 + selects instance types with your attributes, it will exclude instance + types whose Spot price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is applied based on the per-vCPU or per-memory + price instead of the per-instance price. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) + and + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + + Note: + Only one of `SpotMaxPricePercentageOverLowestPrice` or + `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` can be specified. If + you don't specify either, Amazon EC2 will automatically apply optimal + price protection to consistently select from a wide range of instance + types. To indicate no price protection threshold for Spot Instances, + meaning you want to consider all instance types that match your + attributes, include one of these parameters and specify a high value, + such as `999999`. + + Default: `100` + """ + on_demand_max_price_percentage_over_lowest_price: int | None = ... + """ + [Price protection] The price protection threshold for On-Demand + Instances, as a percentage higher than an identified On-Demand price. + The identified On-Demand price is the price of the lowest priced current + generation C, M, or R instance type with your specified attributes. When + Amazon EC2 selects instance types with your attributes, it will exclude + instance types whose price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + To turn off price protection, specify a high value, such as `999999`. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) + and + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + + Note: + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is applied based on the per-vCPU or per-memory + price instead of the per-instance price. + + Default: `20` + """ + bare_metal: str | None = ... + """ + Indicates whether bare metal instance types must be included, excluded, + or required. + + - To include bare metal instance types, specify `included`. + + - To require only bare metal instance types, specify `required`. + + - To exclude bare metal instance types, specify `excluded`. + + Default: `excluded` + """ + burstable_performance: str | None = ... + """ + Indicates whether burstable performance T instance types are included, + excluded, or required. For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html). + + - To include burstable performance instance types, specify `included`. + + - To require only burstable performance instance types, specify + `required`. + + - To exclude burstable performance instance types, specify `excluded`. + + Default: `excluded` + """ + require_hibernate_support: bool | None = ... + """ + Indicates whether instance types must support hibernation for On-Demand + Instances. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). + + Default: `false` + """ + network_interface_count: NetworkInterfaceCount | None = ... + """ + The minimum and maximum number of network interfaces. + + Default: No minimum or maximum limits + """ + local_storage: str | None = ... + """ + Indicates whether instance types with instance store volumes are + included, excluded, or required. For more information, [Amazon EC2 + instance + store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) + in the *Amazon EC2 User Guide*. + + - To include instance types with instance store volumes, specify + `included`. + + - To require only instance types with instance store volumes, specify + `required`. + + - To exclude instance types with instance store volumes, specify + `excluded`. + + Default: `included` + """ + local_storage_types: list[str] | None = ... + """ + The type of local storage that is required. + + - For instance types with hard disk drive (HDD) storage, specify `hdd`. + + - For instance types with solid state drive (SSD) storage, specify + `ssd`. + + Default: `hdd` and `ssd` + """ + total_local_storage_gb: TotalLocalStorageGB | None = ... + """ + The minimum and maximum amount of total local storage, in GB. + + Default: No minimum or maximum limits + """ + baseline_ebs_bandwidth_mbps: BaselineEbsBandwidthMbps | None = ... + """ + The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For + more information, see [Amazon EBS--optimized + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) + in the *Amazon EC2 User Guide*. + + Default: No minimum or maximum limits + """ + accelerator_types: list[str] | None = ... + """ + The accelerator types that must be on the instance type. + + - For instance types with FPGA accelerators, specify `fpga`. + + - For instance types with GPU accelerators, specify `gpu`. + + - For instance types with Inference accelerators, specify `inference`. + + - For instance types with Media accelerators, specify `media`. + + Default: Any accelerator type + """ + accelerator_count: AcceleratorCount | None = ... + """ + The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon + Web Services Inferentia chips) on an instance. + + To exclude accelerator-enabled instance types, set `Max` to `0`. + + Default: No minimum or maximum limits + """ + accelerator_manufacturers: list[str] | None = ... + """ + Indicates whether instance types must have accelerators by specific + manufacturers. + + - For instance types with Amazon Web Services devices, specify + `amazon-web-services`. + + - For instance types with AMD devices, specify `amd`. + + - For instance types with Habana devices, specify `habana`. + + - For instance types with NVIDIA devices, specify `nvidia`. + + - For instance types with Xilinx devices, specify `xilinx`. + + Default: Any manufacturer + """ + accelerator_names: list[str] | None = ... + """ + The accelerators that must be on the instance type. + + - For instance types with NVIDIA A10G GPUs, specify `a10g`. + + - For instance types with NVIDIA A100 GPUs, specify `a100`. + + - For instance types with NVIDIA H100 GPUs, specify `h100`. + + - For instance types with Amazon Web Services Inferentia chips, specify + `inferentia`. + + - For instance types with Amazon Web Services Inferentia2 chips, specify + `inferentia2`. + + - For instance types with Habana Gaudi HL-205 GPUs, specify + `gaudi-hl-205`. + + - For instance types with NVIDIA GRID K520 GPUs, specify `k520`. + + - For instance types with NVIDIA K80 GPUs, specify `k80`. + + - For instance types with NVIDIA L4 GPUs, specify `l4`. + + - For instance types with NVIDIA L40S GPUs, specify `l40s`. + + - For instance types with NVIDIA M60 GPUs, specify `m60`. + + - For instance types with AMD Radeon Pro V520 GPUs, specify + `radeon-pro-v520`. + + - For instance types with Amazon Web Services Trainium chips, specify + `trainium`. + + - For instance types with Amazon Web Services Trainium2 chips, specify + `trainium2`. + + - For instance types with NVIDIA T4 GPUs, specify `t4`. + + - For instance types with NVIDIA T4G GPUs, specify `t4g`. + + - For instance types with Xilinx U30 cards, specify `u30`. + + - For instance types with Xilinx VU9P FPGAs, specify `vu9p`. + + - For instance types with NVIDIA V100 GPUs, specify `v100`. + + Default: Any accelerator + """ + accelerator_total_memory_mi_b: AcceleratorTotalMemoryMiB | None = ... + """ + The minimum and maximum amount of total accelerator memory, in MiB. + + Default: No minimum or maximum limits + """ + network_bandwidth_gbps: NetworkBandwidthGbps | None = ... + """ + The minimum and maximum amount of network bandwidth, in gigabits per + second (Gbps). + + Default: No minimum or maximum limits + """ + allowed_instance_types: list[str] | None = ... + """ + The instance types to apply your specified attributes against. All other + instance types are ignored, even if they match your specified + attributes. + + You can use strings with one or more wild cards, represented by an + asterisk (`*`), to allow an instance type, size, or generation. The + following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. + + For example, if you specify `c5*`,Amazon EC2 will allow the entire C5 + instance family, which includes all C5a and C5n instance types. If you + specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but + not the M5n instance types. + + Note: + If you specify `AllowedInstanceTypes`, you can't specify + `ExcludedInstanceTypes`. + + Default: All instance types + """ + max_spot_price_as_percentage_of_optimal_on_demand_price: int | None = ... + """ + [Price protection] The price protection threshold for Spot Instances, + as a percentage of an identified On-Demand price. The identified + On-Demand price is the price of the lowest priced current generation C, + M, or R instance type with your specified attributes. If no current + generation C, M, or R instance type matches your attributes, then the + identified price is from the lowest priced current generation instance + types, and failing that, from the lowest priced previous generation + instance types that match your attributes. When Amazon EC2 selects + instance types with your attributes, it will exclude instance types + whose price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is based on the per vCPU or per memory price + instead of the per instance price. + + Note: + Only one of `SpotMaxPricePercentageOverLowestPrice` or + `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` can be specified. If + you don't specify either, Amazon EC2 will automatically apply optimal + price protection to consistently select from a wide range of instance + types. To indicate no price protection threshold for Spot Instances, + meaning you want to consider all instance types that match your + attributes, include one of these parameters and specify a high value, + such as `999999`. + """ + baseline_performance_factors: BaselinePerformanceFactors | None = ... + """ + The baseline performance to consider, using an instance family as a + baseline reference. The instance family establishes the lowest + acceptable level of performance. Amazon EC2 uses this baseline to guide + instance type selection, but there is no guarantee that the selected + instance types will always exceed the baseline for every application. + Currently, this parameter only supports CPU performance as a baseline + performance factor. For more information, see [Performance + protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-abis-performance-protection) + in the *Amazon EC2 User Guide*. + """ + require_encryption_in_transit: bool | None = ... + """ + Specifies whether instance types must support encrypting in-transit + traffic between instances. For more information, including the supported + instance types, see [Encryption in + transit](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + +@dataclass(kw_only=True) +class InstanceRequirementsRequest(_SerdeShape): + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with these + attributes. + + You must specify `VCpuCount` and `MemoryMiB`. All other attributes are + optional. Any unspecified optional attribute is set to its default. + + When you specify multiple attributes, you get instance types that + satisfy all of the specified attributes. If you specify multiple values + for an attribute, you get instance types that satisfy any of the + specified values. + + To limit the list of instance types from which Amazon EC2 can identify + matching instance types, you can use one of the following parameters, + but not both in the same request: + + - `AllowedInstanceTypes` - The instance types to include in the list. + All other instance types are ignored, even if they match your + specified attributes. + + - `ExcludedInstanceTypes` - The instance types to exclude from the list, + even if they match your specified attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + + Attribute-based instance type selection is only supported when using + Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If + you plan to use the launch template in the [launch instance + wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), + or with the + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) + API or + [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) + Amazon Web Services CloudFormation resource, you can't specify + `InstanceRequirements`. + + For more information, see [Specify attributes for instance type + selection for EC2 Fleet or Spot + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) + and [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*. + """ + + v_cpu_count: VCpuCountRangeRequest | None = ... + """The minimum and maximum number of vCPUs.""" + memory_mi_b: MemoryMiBRequest | None = ... + """The minimum and maximum amount of memory, in MiB.""" + cpu_manufacturers: list[str] | None = ... + """ + The CPU manufacturers to include. + + - For instance types with Intel CPUs, specify `intel`. + + - For instance types with AMD CPUs, specify `amd`. + + - For instance types with Amazon Web Services CPUs, specify + `amazon-web-services`. + + - For instance types with Apple CPUs, specify `apple`. + + Note: + Don't confuse the CPU manufacturer with the CPU architecture. Instances + will be launched with a compatible CPU architecture based on the Amazon + Machine Image (AMI) that you specify in your launch template. + + Default: Any manufacturer + """ + memory_gi_b_per_v_cpu: MemoryGiBPerVCpuRequest | None = ... + """ + The minimum and maximum amount of memory per vCPU, in GiB. + + Default: No minimum or maximum limits + """ + excluded_instance_types: list[str] | None = ... + """ + The instance types to exclude. + + You can use strings with one or more wild cards, represented by an + asterisk (`*`), to exclude an instance family, type, size, or + generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, + `r*`, `*3*`. + + For example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 + instance family, which includes all C5a and C5n instance types. If you + specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but + not the M5n instance types. + + Note: + If you specify `ExcludedInstanceTypes`, you can't specify + `AllowedInstanceTypes`. + + Default: No excluded instance types + """ + instance_generations: list[str] | None = ... + """ + Indicates whether current or previous generation instance types are + included. The current generation instance types are recommended for use. + Current generation instance types are typically the latest two to three + generations in each instance family. For more information, see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + + For current generation instance types, specify `current`. + + For previous generation instance types, specify `previous`. + + Default: Current and previous generation instance types + """ + spot_max_price_percentage_over_lowest_price: int | None = ... + """ + [Price protection] The price protection threshold for Spot Instances, + as a percentage higher than an identified Spot price. The identified + Spot price is the Spot price of the lowest priced current generation C, + M, or R instance type with your specified attributes. If no current + generation C, M, or R instance type matches your attributes, then the + identified Spot price is from the lowest priced current generation + instance types, and failing that, from the lowest priced previous + generation instance types that match your attributes. When Amazon EC2 + selects instance types with your attributes, it will exclude instance + types whose Spot price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is applied based on the per-vCPU or per-memory + price instead of the per-instance price. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) + and + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + + Note: + Only one of `SpotMaxPricePercentageOverLowestPrice` or + `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` can be specified. If + you don't specify either, Amazon EC2 will automatically apply optimal + price protection to consistently select from a wide range of instance + types. To indicate no price protection threshold for Spot Instances, + meaning you want to consider all instance types that match your + attributes, include one of these parameters and specify a high value, + such as `999999`. + + Default: `100` + """ + on_demand_max_price_percentage_over_lowest_price: int | None = ... + """ + [Price protection] The price protection threshold for On-Demand + Instances, as a percentage higher than an identified On-Demand price. + The identified On-Demand price is the price of the lowest priced current + generation C, M, or R instance type with your specified attributes. When + Amazon EC2 selects instance types with your attributes, it will exclude + instance types whose price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + To indicate no price protection threshold, specify a high value, such as + `999999`. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) + and + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + + Note: + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is applied based on the per-vCPU or per-memory + price instead of the per-instance price. + + Default: `20` + """ + bare_metal: str | None = ... + """ + Indicates whether bare metal instance types must be included, excluded, + or required. + + - To include bare metal instance types, specify `included`. + + - To require only bare metal instance types, specify `required`. + + - To exclude bare metal instance types, specify `excluded`. + + Default: `excluded` + """ + burstable_performance: str | None = ... + """ + Indicates whether burstable performance T instance types are included, + excluded, or required. For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html). + + - To include burstable performance instance types, specify `included`. + + - To require only burstable performance instance types, specify + `required`. + + - To exclude burstable performance instance types, specify `excluded`. + + Default: `excluded` + """ + require_hibernate_support: bool | None = ... + """ + Indicates whether instance types must support hibernation for On-Demand + Instances. + + This parameter is not supported for + [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). + + Default: `false` + """ + network_interface_count: NetworkInterfaceCountRequest | None = ... + """ + The minimum and maximum number of network interfaces. + + Default: No minimum or maximum limits + """ + local_storage: str | None = ... + """ + Indicates whether instance types with instance store volumes are + included, excluded, or required. For more information, [Amazon EC2 + instance + store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) + in the *Amazon EC2 User Guide*. + + - To include instance types with instance store volumes, specify + `included`. + + - To require only instance types with instance store volumes, specify + `required`. + + - To exclude instance types with instance store volumes, specify + `excluded`. + + Default: `included` + """ + local_storage_types: list[str] | None = ... + """ + The type of local storage that is required. + + - For instance types with hard disk drive (HDD) storage, specify `hdd`. + + - For instance types with solid state drive (SSD) storage, specify + `ssd`. + + Default: `hdd` and `ssd` + """ + total_local_storage_gb: TotalLocalStorageGBRequest | None = ... + """ + The minimum and maximum amount of total local storage, in GB. + + Default: No minimum or maximum limits + """ + baseline_ebs_bandwidth_mbps: BaselineEbsBandwidthMbpsRequest | None = ... + """ + The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For + more information, see [Amazon EBS--optimized + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) + in the *Amazon EC2 User Guide*. + + Default: No minimum or maximum limits + """ + accelerator_types: list[str] | None = ... + """ + The accelerator types that must be on the instance type. + + - For instance types with FPGA accelerators, specify `fpga`. + + - For instance types with GPU accelerators, specify `gpu`. + + - For instance types with Inference accelerators, specify `inference`. + + - For instance types with Media accelerators, specify `media`. + + Default: Any accelerator type + """ + accelerator_count: AcceleratorCountRequest | None = ... + """ + The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon + Web Services Inferentia chips) on an instance. + + To exclude accelerator-enabled instance types, set `Max` to `0`. + + Default: No minimum or maximum limits + """ + accelerator_manufacturers: list[str] | None = ... + """ + Indicates whether instance types must have accelerators by specific + manufacturers. + + - For instance types with Amazon Web Services devices, specify + `amazon-web-services`. + + - For instance types with AMD devices, specify `amd`. + + - For instance types with Habana devices, specify `habana`. + + - For instance types with NVIDIA devices, specify `nvidia`. + + - For instance types with Xilinx devices, specify `xilinx`. + + Default: Any manufacturer + """ + accelerator_names: list[str] | None = ... + """ + The accelerators that must be on the instance type. + + - For instance types with NVIDIA A10G GPUs, specify `a10g`. + + - For instance types with NVIDIA A100 GPUs, specify `a100`. + + - For instance types with NVIDIA H100 GPUs, specify `h100`. + + - For instance types with Amazon Web Services Inferentia chips, specify + `inferentia`. + + - For instance types with Amazon Web Services Inferentia2 chips, specify + `inferentia2`. + + - For instance types with Habana Gaudi HL-205 GPUs, specify + `gaudi-hl-205`. + + - For instance types with NVIDIA GRID K520 GPUs, specify `k520`. + + - For instance types with NVIDIA K80 GPUs, specify `k80`. + + - For instance types with NVIDIA L4 GPUs, specify `l4`. + + - For instance types with NVIDIA L40S GPUs, specify `l40s`. + + - For instance types with NVIDIA M60 GPUs, specify `m60`. + + - For instance types with AMD Radeon Pro V520 GPUs, specify + `radeon-pro-v520`. + + - For instance types with Amazon Web Services Trainium chips, specify + `trainium`. + + - For instance types with Amazon Web Services Trainium2 chips, specify + `trainium2`. + + - For instance types with NVIDIA T4 GPUs, specify `t4`. + + - For instance types with NVIDIA T4G GPUs, specify `t4g`. + + - For instance types with Xilinx U30 cards, specify `u30`. + + - For instance types with Xilinx VU9P FPGAs, specify `vu9p`. + + - For instance types with NVIDIA V100 GPUs, specify `v100`. + + Default: Any accelerator + """ + accelerator_total_memory_mi_b: AcceleratorTotalMemoryMiBRequest | None = ... + """ + The minimum and maximum amount of total accelerator memory, in MiB. + + Default: No minimum or maximum limits + """ + network_bandwidth_gbps: NetworkBandwidthGbpsRequest | None = ... + """ + The minimum and maximum amount of baseline network bandwidth, in + gigabits per second (Gbps). For more information, see [Amazon EC2 + instance network + bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) + in the *Amazon EC2 User Guide*. + + Default: No minimum or maximum limits + """ + allowed_instance_types: list[str] | None = ... + """ + The instance types to apply your specified attributes against. All other + instance types are ignored, even if they match your specified + attributes. + + You can use strings with one or more wild cards, represented by an + asterisk (`*`), to allow an instance type, size, or generation. The + following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. + + For example, if you specify `c5*`,Amazon EC2 will allow the entire C5 + instance family, which includes all C5a and C5n instance types. If you + specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but + not the M5n instance types. + + Note: + If you specify `AllowedInstanceTypes`, you can't specify + `ExcludedInstanceTypes`. + + Default: All instance types + """ + max_spot_price_as_percentage_of_optimal_on_demand_price: int | None = ... + """ + [Price protection] The price protection threshold for Spot Instances, + as a percentage of an identified On-Demand price. The identified + On-Demand price is the price of the lowest priced current generation C, + M, or R instance type with your specified attributes. If no current + generation C, M, or R instance type matches your attributes, then the + identified price is from the lowest priced current generation instance + types, and failing that, from the lowest priced previous generation + instance types that match your attributes. When Amazon EC2 selects + instance types with your attributes, it will exclude instance types + whose price exceeds your specified threshold. + + The parameter accepts an integer, which Amazon EC2 interprets as a + percentage. + + If you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price + protection threshold is based on the per vCPU or per memory price + instead of the per instance price. + + Note: + Only one of `SpotMaxPricePercentageOverLowestPrice` or + `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` can be specified. If + you don't specify either, Amazon EC2 will automatically apply optimal + price protection to consistently select from a wide range of instance + types. To indicate no price protection threshold for Spot Instances, + meaning you want to consider all instance types that match your + attributes, include one of these parameters and specify a high value, + such as `999999`. + """ + baseline_performance_factors: BaselinePerformanceFactorsRequest | None = ... + """ + The baseline performance to consider, using an instance family as a + baseline reference. The instance family establishes the lowest + acceptable level of performance. Amazon EC2 uses this baseline to guide + instance type selection, but there is no guarantee that the selected + instance types will always exceed the baseline for every application. + Currently, this parameter only supports CPU performance as a baseline + performance factor. For more information, see [Performance + protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-abis-performance-protection) + in the *Amazon EC2 User Guide*. + """ + require_encryption_in_transit: bool | None = ... + """ + Specifies whether instance types must support encrypting in-transit + traffic between instances. For more information, including the supported + instance types, see [Encryption in + transit](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + +@dataclass(kw_only=True) +class InstanceRequirementsWithMetadataRequest(_SerdeShape): + """ + The architecture type, virtualization type, and other attributes for the + instance types. When you specify instance attributes, Amazon EC2 will + identify instance types with those attributes. + + If you specify `InstanceRequirementsWithMetadataRequest`, you can't + specify `InstanceTypes`. + """ + + architecture_types: list[str] | None = ... + """The architecture type.""" + virtualization_types: list[str] | None = ... + """The virtualization type.""" + instance_requirements: InstanceRequirementsRequest | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with those + attributes. + """ + +@dataclass(kw_only=True) +class InstanceSecondaryInterface(_SerdeShape): + """Describes a secondary interface attached to an instance.""" + + attachment: InstanceSecondaryInterfaceAttachment | None = ... + """The attachment information for the secondary interface.""" + mac_address: str | None = ... + """The MAC address of the secondary interface.""" + secondary_interface_id: str | None = ... + """The ID of the secondary interface.""" + owner_id: str | None = ... + """ + The Amazon Web Services account ID of the owner of the secondary + interface. + """ + private_ip_addresses: list[InstanceSecondaryInterfacePrivateIpAddress] | None = ... + """The private IPv4 addresses associated with the secondary interface.""" + source_dest_check: bool | None = ... + """Indicates whether source/destination checking is enabled.""" + status: str | None = ... + """The status of the secondary interface.""" + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + secondary_network_id: str | None = ... + """The ID of the secondary network.""" + interface_type: str | None = ... + """The type of secondary interface.""" + +@dataclass(kw_only=True) +class InstanceSecondaryInterfaceAttachment(_SerdeShape): + """Describes the attachment of a secondary interface to an instance.""" + + attach_time: datetime | None = ... + """The timestamp when the attachment was created.""" + attachment_id: str | None = ... + """The ID of the attachment.""" + delete_on_termination: bool | None = ... + """ + Indicates whether the secondary interface is deleted when the instance + is terminated. + + The only supported value for this field is `true`. + """ + device_index: int | None = ... + """The device index of the secondary interface.""" + status: str | None = ... + """The attachment state.""" + network_card_index: int | None = ... + """The index of the network card.""" + +@dataclass(kw_only=True) +class InstanceSecondaryInterfacePrivateIpAddress(_SerdeShape): + """Describes a private IPv4 address for a secondary interface.""" + + private_ip_address: str | None = ... + """The private IPv4 address.""" + +@dataclass(kw_only=True) +class InstanceSecondaryInterfacePrivateIpAddressRequest(_SerdeShape): + """Describes a private IPv4 address for a secondary interface request.""" + + private_ip_address: str | None = ... + """The private IPv4 address.""" + +@dataclass(kw_only=True) +class InstanceSecondaryInterfaceSpecificationRequest(_SerdeShape): + """Describes a secondary interface specification for launching an instance.""" + + delete_on_termination: bool | None = ... + """ + Indicates whether the secondary interface is deleted when the instance + is terminated. + + The only supported value for this field is `true`. + """ + device_index: int | None = ... + """The device index for the secondary interface attachment.""" + private_ip_addresses: ( + list[InstanceSecondaryInterfacePrivateIpAddressRequest] | None + ) = ... + """The private IPv4 addresses to assign to the secondary interface.""" + private_ip_address_count: int | None = ... + """ + The number of private IPv4 addresses to assign to the secondary + interface. + """ + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + interface_type: str | None = ... + """The type of secondary interface.""" + network_card_index: int | None = ... + """ + The index of the network card. The network card must support secondary + interfaces. + """ + +@dataclass(kw_only=True) +class InstanceSpecification(_SerdeShape): + """The instance details to specify which volumes should be snapshotted.""" + + instance_id: str | None = ... + """The instance to specify which volumes should be snapshotted.""" + exclude_boot_volume: bool | None = ... + """Excludes the root volume from being snapshotted.""" + exclude_data_volume_ids: list[str] | None = ... + """ + The IDs of the data (non-root) volumes to exclude from the multi-volume + snapshot set. If you specify the ID of the root volume, the request + fails. To exclude the root volume, use **ExcludeBootVolume**. + + You can specify up to 40 volume IDs per request. + """ + +@dataclass(kw_only=True) +class InstanceState(_SerdeShape): + """Describes the current state of an instance.""" + + code: int | None = ... + """ + The state of the instance as a 16-bit unsigned integer. + + The high byte is all of the bits between 2^8 and (2^16)-1, which + equals decimal values between 256 and 65,535. These numerical values are + used for internal purposes and should be ignored. + + The low byte is all of the bits between 2^0 and (2^8)-1, which equals + decimal values between 0 and 255. + + The valid values for instance-state-code will all be in the range of the + low byte and they are: + + - `0` : `pending` + + - `16` : `running` + + - `32` : `shutting-down` + + - `48` : `terminated` + + - `64` : `stopping` + + - `80` : `stopped` + + You can ignore the high byte value by zeroing out all of the bits above + 2^8 or 256 in decimal. + """ + name: str | None = ... + """The current state of the instance.""" + +@dataclass(kw_only=True) +class InstanceStateChange(_SerdeShape): + """Describes an instance state change.""" + + instance_id: str | None = ... + """The ID of the instance.""" + current_state: InstanceState | None = ... + """The current state of the instance.""" + previous_state: InstanceState | None = ... + """The previous state of the instance.""" + +class InstanceStateName(UnknownEnumMixin, StrEnum): + PENDING = "pending" + RUNNING = "running" + SHUTTING_DOWN = "shutting-down" + TERMINATED = "terminated" + STOPPING = "stopping" + STOPPED = "stopped" + +@dataclass(kw_only=True) +class InstanceStatus(_SerdeShape): + """ + Describes the status of an instance, including system status, instance + status, attached EBS status, application status, and performance status. + """ + + availability_zone: str | None = ... + """The Availability Zone of the instance.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the instance.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + operator: OperatorResponse | None = ... + """The service provider that manages the instance.""" + events: list[InstanceStatusEvent] | None = ... + """Any scheduled events associated with the instance.""" + instance_id: str | None = ... + """The ID of the instance.""" + instance_state: InstanceState | None = ... + """ + The intended state of the instance. DescribeInstanceStatus requires that + an instance be in the `running` state. + """ + instance_status: InstanceStatusSummary | None = ... + """ + Reports impaired functionality that stems from issues internal to the + instance, such as impaired reachability. + """ + system_status: InstanceStatusSummary | None = ... + """ + Reports impaired functionality that stems from issues related to the + systems that support an instance, such as hardware failures and network + connectivity problems. + """ + attached_ebs_status: EbsStatusSummary | None = ... + """ + Reports impaired functionality that stems from an attached Amazon EBS + volume that is unreachable and unable to complete I/O operations. + """ + application_status: ApplicationStatusSummary | None = ... + """Reports the application-level health status for the instance.""" + performance_status: PerformanceStatusSummary | None = ... + """ + Reports the performance-related health status for the instance. This + information is returned only when performance status checks are enabled + for the instance. + """ + +@dataclass(kw_only=True) +class InstanceStatusDetails(_SerdeShape): + """Describes the instance status.""" + + impaired_since: datetime | None = ... + """ + The time when a status check failed. For an instance that was launched + and impaired, this is the time when the instance was launched. + """ + name: str | None = ... + """The type of instance status.""" + status: str | None = ... + """The status.""" + +@dataclass(kw_only=True) +class InstanceStatusEvent(_SerdeShape): + """Describes a scheduled event for an instance.""" + + instance_event_id: str | None = ... + """The ID of the event.""" + code: str | None = ... + """The event code.""" + description: str | None = ... + """ + A description of the event. + + After a scheduled event is completed, it can still be described for up + to a week. If the event has been completed, this description starts with + the following text: [Completed]. + """ + not_after: datetime | None = ... + """The latest scheduled end time for the event.""" + not_before: datetime | None = ... + """The earliest scheduled start time for the event.""" + not_before_deadline: datetime | None = ... + """The deadline for starting the event.""" + +@dataclass(kw_only=True) +class InstanceStatusSummary(_SerdeShape): + """Describes the status of an instance.""" + + details: list[InstanceStatusDetails] | None = ... + """The system instance health or application instance health.""" + status: str | None = ... + """The status.""" + +class InstanceStorageEncryptionSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + REQUIRED = "required" + +@dataclass(kw_only=True) +class InstanceStorageInfo(_SerdeShape): + """ + Describes the instance store features that are supported by the instance + type. + """ + + total_size_in_gb: int | None = ... + """The total size of the disks, in GB.""" + disks: list[DiskInfo] | None = ... + """Describes the disks that are available for the instance type.""" + nvme_support: str | None = ... + """Indicates whether non-volatile memory express (NVMe) is supported.""" + encryption_support: str | None = ... + """Indicates whether data is encrypted at rest.""" + +@dataclass(kw_only=True) +class InstanceTagNotificationAttribute(_SerdeShape): + """Describes the registered tag keys for the current Region.""" + + instance_tag_keys: list[str] | None = ... + """The registered tag keys.""" + include_all_tags_of_instance: bool | None = ... + """ + Indicates wheter all tag keys in the current Region are registered to + appear in scheduled event notifications. `true` indicates that all tag + keys in the current Region are registered. + """ + +@dataclass(kw_only=True) +class InstanceTopology(_SerdeShape): + """Information about the instance topology.""" + + instance_id: str | None = ... + """The instance ID.""" + instance_type: str | None = ... + """The instance type.""" + group_name: str | None = ... + """The name of the placement group that the instance is in.""" + network_nodes: list[str] | None = ... + """ + The network nodes. The nodes are hashed based on your account. Instances + from different accounts running under the same server will return a + different hashed list of strings. + + The value is `null` or empty if: + + - The instance type is not supported. + + - The instance is in a state other than `running`. + """ + availability_zone: str | None = ... + """The name of the Availability Zone or Local Zone that the instance is in.""" + zone_id: str | None = ... + """The ID of the Availability Zone or Local Zone that the instance is in.""" + capacity_block_id: str | None = ... + """ + The ID of the Capacity Block. This parameter is only supported for + UltraServer instances and identifies instances within the UltraServer + domain. + """ + +class InstanceType(UnknownEnumMixin, StrEnum): + A1_MEDIUM = "a1.medium" + A1_LARGE = "a1.large" + A1_XLARGE = "a1.xlarge" + A1_2XLARGE = "a1.2xlarge" + A1_4XLARGE = "a1.4xlarge" + A1_METAL = "a1.metal" + C1_MEDIUM = "c1.medium" + C1_XLARGE = "c1.xlarge" + C3_LARGE = "c3.large" + C3_XLARGE = "c3.xlarge" + C3_2XLARGE = "c3.2xlarge" + C3_4XLARGE = "c3.4xlarge" + C3_8XLARGE = "c3.8xlarge" + C4_LARGE = "c4.large" + C4_XLARGE = "c4.xlarge" + C4_2XLARGE = "c4.2xlarge" + C4_4XLARGE = "c4.4xlarge" + C4_8XLARGE = "c4.8xlarge" + C5_LARGE = "c5.large" + C5_XLARGE = "c5.xlarge" + C5_2XLARGE = "c5.2xlarge" + C5_4XLARGE = "c5.4xlarge" + C5_9XLARGE = "c5.9xlarge" + C5_12XLARGE = "c5.12xlarge" + C5_18XLARGE = "c5.18xlarge" + C5_24XLARGE = "c5.24xlarge" + C5_METAL = "c5.metal" + C5A_LARGE = "c5a.large" + C5A_XLARGE = "c5a.xlarge" + C5A_2XLARGE = "c5a.2xlarge" + C5A_4XLARGE = "c5a.4xlarge" + C5A_8XLARGE = "c5a.8xlarge" + C5A_12XLARGE = "c5a.12xlarge" + C5A_16XLARGE = "c5a.16xlarge" + C5A_24XLARGE = "c5a.24xlarge" + C5AD_LARGE = "c5ad.large" + C5AD_XLARGE = "c5ad.xlarge" + C5AD_2XLARGE = "c5ad.2xlarge" + C5AD_4XLARGE = "c5ad.4xlarge" + C5AD_8XLARGE = "c5ad.8xlarge" + C5AD_12XLARGE = "c5ad.12xlarge" + C5AD_16XLARGE = "c5ad.16xlarge" + C5AD_24XLARGE = "c5ad.24xlarge" + C5D_LARGE = "c5d.large" + C5D_XLARGE = "c5d.xlarge" + C5D_2XLARGE = "c5d.2xlarge" + C5D_4XLARGE = "c5d.4xlarge" + C5D_9XLARGE = "c5d.9xlarge" + C5D_12XLARGE = "c5d.12xlarge" + C5D_18XLARGE = "c5d.18xlarge" + C5D_24XLARGE = "c5d.24xlarge" + C5D_METAL = "c5d.metal" + C5N_LARGE = "c5n.large" + C5N_XLARGE = "c5n.xlarge" + C5N_2XLARGE = "c5n.2xlarge" + C5N_4XLARGE = "c5n.4xlarge" + C5N_9XLARGE = "c5n.9xlarge" + C5N_18XLARGE = "c5n.18xlarge" + C5N_METAL = "c5n.metal" + C6G_MEDIUM = "c6g.medium" + C6G_LARGE = "c6g.large" + C6G_XLARGE = "c6g.xlarge" + C6G_2XLARGE = "c6g.2xlarge" + C6G_4XLARGE = "c6g.4xlarge" + C6G_8XLARGE = "c6g.8xlarge" + C6G_12XLARGE = "c6g.12xlarge" + C6G_16XLARGE = "c6g.16xlarge" + C6G_METAL = "c6g.metal" + C6GD_MEDIUM = "c6gd.medium" + C6GD_LARGE = "c6gd.large" + C6GD_XLARGE = "c6gd.xlarge" + C6GD_2XLARGE = "c6gd.2xlarge" + C6GD_4XLARGE = "c6gd.4xlarge" + C6GD_8XLARGE = "c6gd.8xlarge" + C6GD_12XLARGE = "c6gd.12xlarge" + C6GD_16XLARGE = "c6gd.16xlarge" + C6GD_METAL = "c6gd.metal" + C6GN_MEDIUM = "c6gn.medium" + C6GN_LARGE = "c6gn.large" + C6GN_XLARGE = "c6gn.xlarge" + C6GN_2XLARGE = "c6gn.2xlarge" + C6GN_4XLARGE = "c6gn.4xlarge" + C6GN_8XLARGE = "c6gn.8xlarge" + C6GN_12XLARGE = "c6gn.12xlarge" + C6GN_16XLARGE = "c6gn.16xlarge" + C6I_LARGE = "c6i.large" + C6I_XLARGE = "c6i.xlarge" + C6I_2XLARGE = "c6i.2xlarge" + C6I_4XLARGE = "c6i.4xlarge" + C6I_8XLARGE = "c6i.8xlarge" + C6I_12XLARGE = "c6i.12xlarge" + C6I_16XLARGE = "c6i.16xlarge" + C6I_24XLARGE = "c6i.24xlarge" + C6I_32XLARGE = "c6i.32xlarge" + C6I_METAL = "c6i.metal" + CC1_4XLARGE = "cc1.4xlarge" + CC2_8XLARGE = "cc2.8xlarge" + CG1_4XLARGE = "cg1.4xlarge" + CR1_8XLARGE = "cr1.8xlarge" + D2_XLARGE = "d2.xlarge" + D2_2XLARGE = "d2.2xlarge" + D2_4XLARGE = "d2.4xlarge" + D2_8XLARGE = "d2.8xlarge" + D3_XLARGE = "d3.xlarge" + D3_2XLARGE = "d3.2xlarge" + D3_4XLARGE = "d3.4xlarge" + D3_8XLARGE = "d3.8xlarge" + D3EN_XLARGE = "d3en.xlarge" + D3EN_2XLARGE = "d3en.2xlarge" + D3EN_4XLARGE = "d3en.4xlarge" + D3EN_6XLARGE = "d3en.6xlarge" + D3EN_8XLARGE = "d3en.8xlarge" + D3EN_12XLARGE = "d3en.12xlarge" + DL1_24XLARGE = "dl1.24xlarge" + F1_2XLARGE = "f1.2xlarge" + F1_4XLARGE = "f1.4xlarge" + F1_16XLARGE = "f1.16xlarge" + G2_2XLARGE = "g2.2xlarge" + G2_8XLARGE = "g2.8xlarge" + G3_4XLARGE = "g3.4xlarge" + G3_8XLARGE = "g3.8xlarge" + G3_16XLARGE = "g3.16xlarge" + G3S_XLARGE = "g3s.xlarge" + G4AD_XLARGE = "g4ad.xlarge" + G4AD_2XLARGE = "g4ad.2xlarge" + G4AD_4XLARGE = "g4ad.4xlarge" + G4AD_8XLARGE = "g4ad.8xlarge" + G4AD_16XLARGE = "g4ad.16xlarge" + G4DN_XLARGE = "g4dn.xlarge" + G4DN_2XLARGE = "g4dn.2xlarge" + G4DN_4XLARGE = "g4dn.4xlarge" + G4DN_8XLARGE = "g4dn.8xlarge" + G4DN_12XLARGE = "g4dn.12xlarge" + G4DN_16XLARGE = "g4dn.16xlarge" + G4DN_METAL = "g4dn.metal" + G5_XLARGE = "g5.xlarge" + G5_2XLARGE = "g5.2xlarge" + G5_4XLARGE = "g5.4xlarge" + G5_8XLARGE = "g5.8xlarge" + G5_12XLARGE = "g5.12xlarge" + G5_16XLARGE = "g5.16xlarge" + G5_24XLARGE = "g5.24xlarge" + G5_48XLARGE = "g5.48xlarge" + G5G_XLARGE = "g5g.xlarge" + G5G_2XLARGE = "g5g.2xlarge" + G5G_4XLARGE = "g5g.4xlarge" + G5G_8XLARGE = "g5g.8xlarge" + G5G_16XLARGE = "g5g.16xlarge" + G5G_METAL = "g5g.metal" + HI1_4XLARGE = "hi1.4xlarge" + HPC6A_48XLARGE = "hpc6a.48xlarge" + HS1_8XLARGE = "hs1.8xlarge" + H1_2XLARGE = "h1.2xlarge" + H1_4XLARGE = "h1.4xlarge" + H1_8XLARGE = "h1.8xlarge" + H1_16XLARGE = "h1.16xlarge" + I2_XLARGE = "i2.xlarge" + I2_2XLARGE = "i2.2xlarge" + I2_4XLARGE = "i2.4xlarge" + I2_8XLARGE = "i2.8xlarge" + I3_LARGE = "i3.large" + I3_XLARGE = "i3.xlarge" + I3_2XLARGE = "i3.2xlarge" + I3_4XLARGE = "i3.4xlarge" + I3_8XLARGE = "i3.8xlarge" + I3_16XLARGE = "i3.16xlarge" + I3_METAL = "i3.metal" + I3EN_LARGE = "i3en.large" + I3EN_XLARGE = "i3en.xlarge" + I3EN_2XLARGE = "i3en.2xlarge" + I3EN_3XLARGE = "i3en.3xlarge" + I3EN_6XLARGE = "i3en.6xlarge" + I3EN_12XLARGE = "i3en.12xlarge" + I3EN_24XLARGE = "i3en.24xlarge" + I3EN_METAL = "i3en.metal" + IM4GN_LARGE = "im4gn.large" + IM4GN_XLARGE = "im4gn.xlarge" + IM4GN_2XLARGE = "im4gn.2xlarge" + IM4GN_4XLARGE = "im4gn.4xlarge" + IM4GN_8XLARGE = "im4gn.8xlarge" + IM4GN_16XLARGE = "im4gn.16xlarge" + INF1_XLARGE = "inf1.xlarge" + INF1_2XLARGE = "inf1.2xlarge" + INF1_6XLARGE = "inf1.6xlarge" + INF1_24XLARGE = "inf1.24xlarge" + IS4GEN_MEDIUM = "is4gen.medium" + IS4GEN_LARGE = "is4gen.large" + IS4GEN_XLARGE = "is4gen.xlarge" + IS4GEN_2XLARGE = "is4gen.2xlarge" + IS4GEN_4XLARGE = "is4gen.4xlarge" + IS4GEN_8XLARGE = "is4gen.8xlarge" + M1_SMALL = "m1.small" + M1_MEDIUM = "m1.medium" + M1_LARGE = "m1.large" + M1_XLARGE = "m1.xlarge" + M2_XLARGE = "m2.xlarge" + M2_2XLARGE = "m2.2xlarge" + M2_4XLARGE = "m2.4xlarge" + M3_MEDIUM = "m3.medium" + M3_LARGE = "m3.large" + M3_XLARGE = "m3.xlarge" + M3_2XLARGE = "m3.2xlarge" + M4_LARGE = "m4.large" + M4_XLARGE = "m4.xlarge" + M4_2XLARGE = "m4.2xlarge" + M4_4XLARGE = "m4.4xlarge" + M4_10XLARGE = "m4.10xlarge" + M4_16XLARGE = "m4.16xlarge" + M5_LARGE = "m5.large" + M5_XLARGE = "m5.xlarge" + M5_2XLARGE = "m5.2xlarge" + M5_4XLARGE = "m5.4xlarge" + M5_8XLARGE = "m5.8xlarge" + M5_12XLARGE = "m5.12xlarge" + M5_16XLARGE = "m5.16xlarge" + M5_24XLARGE = "m5.24xlarge" + M5_METAL = "m5.metal" + M5A_LARGE = "m5a.large" + M5A_XLARGE = "m5a.xlarge" + M5A_2XLARGE = "m5a.2xlarge" + M5A_4XLARGE = "m5a.4xlarge" + M5A_8XLARGE = "m5a.8xlarge" + M5A_12XLARGE = "m5a.12xlarge" + M5A_16XLARGE = "m5a.16xlarge" + M5A_24XLARGE = "m5a.24xlarge" + M5AD_LARGE = "m5ad.large" + M5AD_XLARGE = "m5ad.xlarge" + M5AD_2XLARGE = "m5ad.2xlarge" + M5AD_4XLARGE = "m5ad.4xlarge" + M5AD_8XLARGE = "m5ad.8xlarge" + M5AD_12XLARGE = "m5ad.12xlarge" + M5AD_16XLARGE = "m5ad.16xlarge" + M5AD_24XLARGE = "m5ad.24xlarge" + M5D_LARGE = "m5d.large" + M5D_XLARGE = "m5d.xlarge" + M5D_2XLARGE = "m5d.2xlarge" + M5D_4XLARGE = "m5d.4xlarge" + M5D_8XLARGE = "m5d.8xlarge" + M5D_12XLARGE = "m5d.12xlarge" + M5D_16XLARGE = "m5d.16xlarge" + M5D_24XLARGE = "m5d.24xlarge" + M5D_METAL = "m5d.metal" + M5DN_LARGE = "m5dn.large" + M5DN_XLARGE = "m5dn.xlarge" + M5DN_2XLARGE = "m5dn.2xlarge" + M5DN_4XLARGE = "m5dn.4xlarge" + M5DN_8XLARGE = "m5dn.8xlarge" + M5DN_12XLARGE = "m5dn.12xlarge" + M5DN_16XLARGE = "m5dn.16xlarge" + M5DN_24XLARGE = "m5dn.24xlarge" + M5DN_METAL = "m5dn.metal" + M5N_LARGE = "m5n.large" + M5N_XLARGE = "m5n.xlarge" + M5N_2XLARGE = "m5n.2xlarge" + M5N_4XLARGE = "m5n.4xlarge" + M5N_8XLARGE = "m5n.8xlarge" + M5N_12XLARGE = "m5n.12xlarge" + M5N_16XLARGE = "m5n.16xlarge" + M5N_24XLARGE = "m5n.24xlarge" + M5N_METAL = "m5n.metal" + M5ZN_LARGE = "m5zn.large" + M5ZN_XLARGE = "m5zn.xlarge" + M5ZN_2XLARGE = "m5zn.2xlarge" + M5ZN_3XLARGE = "m5zn.3xlarge" + M5ZN_6XLARGE = "m5zn.6xlarge" + M5ZN_12XLARGE = "m5zn.12xlarge" + M5ZN_METAL = "m5zn.metal" + M6A_LARGE = "m6a.large" + M6A_XLARGE = "m6a.xlarge" + M6A_2XLARGE = "m6a.2xlarge" + M6A_4XLARGE = "m6a.4xlarge" + M6A_8XLARGE = "m6a.8xlarge" + M6A_12XLARGE = "m6a.12xlarge" + M6A_16XLARGE = "m6a.16xlarge" + M6A_24XLARGE = "m6a.24xlarge" + M6A_32XLARGE = "m6a.32xlarge" + M6A_48XLARGE = "m6a.48xlarge" + M6G_METAL = "m6g.metal" + M6G_MEDIUM = "m6g.medium" + M6G_LARGE = "m6g.large" + M6G_XLARGE = "m6g.xlarge" + M6G_2XLARGE = "m6g.2xlarge" + M6G_4XLARGE = "m6g.4xlarge" + M6G_8XLARGE = "m6g.8xlarge" + M6G_12XLARGE = "m6g.12xlarge" + M6G_16XLARGE = "m6g.16xlarge" + M6GD_METAL = "m6gd.metal" + M6GD_MEDIUM = "m6gd.medium" + M6GD_LARGE = "m6gd.large" + M6GD_XLARGE = "m6gd.xlarge" + M6GD_2XLARGE = "m6gd.2xlarge" + M6GD_4XLARGE = "m6gd.4xlarge" + M6GD_8XLARGE = "m6gd.8xlarge" + M6GD_12XLARGE = "m6gd.12xlarge" + M6GD_16XLARGE = "m6gd.16xlarge" + M6I_LARGE = "m6i.large" + M6I_XLARGE = "m6i.xlarge" + M6I_2XLARGE = "m6i.2xlarge" + M6I_4XLARGE = "m6i.4xlarge" + M6I_8XLARGE = "m6i.8xlarge" + M6I_12XLARGE = "m6i.12xlarge" + M6I_16XLARGE = "m6i.16xlarge" + M6I_24XLARGE = "m6i.24xlarge" + M6I_32XLARGE = "m6i.32xlarge" + M6I_METAL = "m6i.metal" + MAC1_METAL = "mac1.metal" + P2_XLARGE = "p2.xlarge" + P2_8XLARGE = "p2.8xlarge" + P2_16XLARGE = "p2.16xlarge" + P3_2XLARGE = "p3.2xlarge" + P3_8XLARGE = "p3.8xlarge" + P3_16XLARGE = "p3.16xlarge" + P3DN_24XLARGE = "p3dn.24xlarge" + P4D_24XLARGE = "p4d.24xlarge" + R3_LARGE = "r3.large" + R3_XLARGE = "r3.xlarge" + R3_2XLARGE = "r3.2xlarge" + R3_4XLARGE = "r3.4xlarge" + R3_8XLARGE = "r3.8xlarge" + R4_LARGE = "r4.large" + R4_XLARGE = "r4.xlarge" + R4_2XLARGE = "r4.2xlarge" + R4_4XLARGE = "r4.4xlarge" + R4_8XLARGE = "r4.8xlarge" + R4_16XLARGE = "r4.16xlarge" + R5_LARGE = "r5.large" + R5_XLARGE = "r5.xlarge" + R5_2XLARGE = "r5.2xlarge" + R5_4XLARGE = "r5.4xlarge" + R5_8XLARGE = "r5.8xlarge" + R5_12XLARGE = "r5.12xlarge" + R5_16XLARGE = "r5.16xlarge" + R5_24XLARGE = "r5.24xlarge" + R5_METAL = "r5.metal" + R5A_LARGE = "r5a.large" + R5A_XLARGE = "r5a.xlarge" + R5A_2XLARGE = "r5a.2xlarge" + R5A_4XLARGE = "r5a.4xlarge" + R5A_8XLARGE = "r5a.8xlarge" + R5A_12XLARGE = "r5a.12xlarge" + R5A_16XLARGE = "r5a.16xlarge" + R5A_24XLARGE = "r5a.24xlarge" + R5AD_LARGE = "r5ad.large" + R5AD_XLARGE = "r5ad.xlarge" + R5AD_2XLARGE = "r5ad.2xlarge" + R5AD_4XLARGE = "r5ad.4xlarge" + R5AD_8XLARGE = "r5ad.8xlarge" + R5AD_12XLARGE = "r5ad.12xlarge" + R5AD_16XLARGE = "r5ad.16xlarge" + R5AD_24XLARGE = "r5ad.24xlarge" + R5B_LARGE = "r5b.large" + R5B_XLARGE = "r5b.xlarge" + R5B_2XLARGE = "r5b.2xlarge" + R5B_4XLARGE = "r5b.4xlarge" + R5B_8XLARGE = "r5b.8xlarge" + R5B_12XLARGE = "r5b.12xlarge" + R5B_16XLARGE = "r5b.16xlarge" + R5B_24XLARGE = "r5b.24xlarge" + R5B_METAL = "r5b.metal" + R5D_LARGE = "r5d.large" + R5D_XLARGE = "r5d.xlarge" + R5D_2XLARGE = "r5d.2xlarge" + R5D_4XLARGE = "r5d.4xlarge" + R5D_8XLARGE = "r5d.8xlarge" + R5D_12XLARGE = "r5d.12xlarge" + R5D_16XLARGE = "r5d.16xlarge" + R5D_24XLARGE = "r5d.24xlarge" + R5D_METAL = "r5d.metal" + R5DN_LARGE = "r5dn.large" + R5DN_XLARGE = "r5dn.xlarge" + R5DN_2XLARGE = "r5dn.2xlarge" + R5DN_4XLARGE = "r5dn.4xlarge" + R5DN_8XLARGE = "r5dn.8xlarge" + R5DN_12XLARGE = "r5dn.12xlarge" + R5DN_16XLARGE = "r5dn.16xlarge" + R5DN_24XLARGE = "r5dn.24xlarge" + R5DN_METAL = "r5dn.metal" + R5N_LARGE = "r5n.large" + R5N_XLARGE = "r5n.xlarge" + R5N_2XLARGE = "r5n.2xlarge" + R5N_4XLARGE = "r5n.4xlarge" + R5N_8XLARGE = "r5n.8xlarge" + R5N_12XLARGE = "r5n.12xlarge" + R5N_16XLARGE = "r5n.16xlarge" + R5N_24XLARGE = "r5n.24xlarge" + R5N_METAL = "r5n.metal" + R6G_MEDIUM = "r6g.medium" + R6G_LARGE = "r6g.large" + R6G_XLARGE = "r6g.xlarge" + R6G_2XLARGE = "r6g.2xlarge" + R6G_4XLARGE = "r6g.4xlarge" + R6G_8XLARGE = "r6g.8xlarge" + R6G_12XLARGE = "r6g.12xlarge" + R6G_16XLARGE = "r6g.16xlarge" + R6G_METAL = "r6g.metal" + R6GD_MEDIUM = "r6gd.medium" + R6GD_LARGE = "r6gd.large" + R6GD_XLARGE = "r6gd.xlarge" + R6GD_2XLARGE = "r6gd.2xlarge" + R6GD_4XLARGE = "r6gd.4xlarge" + R6GD_8XLARGE = "r6gd.8xlarge" + R6GD_12XLARGE = "r6gd.12xlarge" + R6GD_16XLARGE = "r6gd.16xlarge" + R6GD_METAL = "r6gd.metal" + R6I_LARGE = "r6i.large" + R6I_XLARGE = "r6i.xlarge" + R6I_2XLARGE = "r6i.2xlarge" + R6I_4XLARGE = "r6i.4xlarge" + R6I_8XLARGE = "r6i.8xlarge" + R6I_12XLARGE = "r6i.12xlarge" + R6I_16XLARGE = "r6i.16xlarge" + R6I_24XLARGE = "r6i.24xlarge" + R6I_32XLARGE = "r6i.32xlarge" + R6I_METAL = "r6i.metal" + T1_MICRO = "t1.micro" + T2_NANO = "t2.nano" + T2_MICRO = "t2.micro" + T2_SMALL = "t2.small" + T2_MEDIUM = "t2.medium" + T2_LARGE = "t2.large" + T2_XLARGE = "t2.xlarge" + T2_2XLARGE = "t2.2xlarge" + T3_NANO = "t3.nano" + T3_MICRO = "t3.micro" + T3_SMALL = "t3.small" + T3_MEDIUM = "t3.medium" + T3_LARGE = "t3.large" + T3_XLARGE = "t3.xlarge" + T3_2XLARGE = "t3.2xlarge" + T3A_NANO = "t3a.nano" + T3A_MICRO = "t3a.micro" + T3A_SMALL = "t3a.small" + T3A_MEDIUM = "t3a.medium" + T3A_LARGE = "t3a.large" + T3A_XLARGE = "t3a.xlarge" + T3A_2XLARGE = "t3a.2xlarge" + T4G_NANO = "t4g.nano" + T4G_MICRO = "t4g.micro" + T4G_SMALL = "t4g.small" + T4G_MEDIUM = "t4g.medium" + T4G_LARGE = "t4g.large" + T4G_XLARGE = "t4g.xlarge" + T4G_2XLARGE = "t4g.2xlarge" + U_6TB1_56XLARGE = "u-6tb1.56xlarge" + U_6TB1_112XLARGE = "u-6tb1.112xlarge" + U_9TB1_112XLARGE = "u-9tb1.112xlarge" + U_12TB1_112XLARGE = "u-12tb1.112xlarge" + U_6TB1_METAL = "u-6tb1.metal" + U_9TB1_METAL = "u-9tb1.metal" + U_12TB1_METAL = "u-12tb1.metal" + U_18TB1_METAL = "u-18tb1.metal" + U_24TB1_METAL = "u-24tb1.metal" + VT1_3XLARGE = "vt1.3xlarge" + VT1_6XLARGE = "vt1.6xlarge" + VT1_24XLARGE = "vt1.24xlarge" + X1_16XLARGE = "x1.16xlarge" + X1_32XLARGE = "x1.32xlarge" + X1E_XLARGE = "x1e.xlarge" + X1E_2XLARGE = "x1e.2xlarge" + X1E_4XLARGE = "x1e.4xlarge" + X1E_8XLARGE = "x1e.8xlarge" + X1E_16XLARGE = "x1e.16xlarge" + X1E_32XLARGE = "x1e.32xlarge" + X2IEZN_2XLARGE = "x2iezn.2xlarge" + X2IEZN_4XLARGE = "x2iezn.4xlarge" + X2IEZN_6XLARGE = "x2iezn.6xlarge" + X2IEZN_8XLARGE = "x2iezn.8xlarge" + X2IEZN_12XLARGE = "x2iezn.12xlarge" + X2IEZN_METAL = "x2iezn.metal" + X2GD_MEDIUM = "x2gd.medium" + X2GD_LARGE = "x2gd.large" + X2GD_XLARGE = "x2gd.xlarge" + X2GD_2XLARGE = "x2gd.2xlarge" + X2GD_4XLARGE = "x2gd.4xlarge" + X2GD_8XLARGE = "x2gd.8xlarge" + X2GD_12XLARGE = "x2gd.12xlarge" + X2GD_16XLARGE = "x2gd.16xlarge" + X2GD_METAL = "x2gd.metal" + Z1D_LARGE = "z1d.large" + Z1D_XLARGE = "z1d.xlarge" + Z1D_2XLARGE = "z1d.2xlarge" + Z1D_3XLARGE = "z1d.3xlarge" + Z1D_6XLARGE = "z1d.6xlarge" + Z1D_12XLARGE = "z1d.12xlarge" + Z1D_METAL = "z1d.metal" + X2IDN_16XLARGE = "x2idn.16xlarge" + X2IDN_24XLARGE = "x2idn.24xlarge" + X2IDN_32XLARGE = "x2idn.32xlarge" + X2IEDN_XLARGE = "x2iedn.xlarge" + X2IEDN_2XLARGE = "x2iedn.2xlarge" + X2IEDN_4XLARGE = "x2iedn.4xlarge" + X2IEDN_8XLARGE = "x2iedn.8xlarge" + X2IEDN_16XLARGE = "x2iedn.16xlarge" + X2IEDN_24XLARGE = "x2iedn.24xlarge" + X2IEDN_32XLARGE = "x2iedn.32xlarge" + C6A_LARGE = "c6a.large" + C6A_XLARGE = "c6a.xlarge" + C6A_2XLARGE = "c6a.2xlarge" + C6A_4XLARGE = "c6a.4xlarge" + C6A_8XLARGE = "c6a.8xlarge" + C6A_12XLARGE = "c6a.12xlarge" + C6A_16XLARGE = "c6a.16xlarge" + C6A_24XLARGE = "c6a.24xlarge" + C6A_32XLARGE = "c6a.32xlarge" + C6A_48XLARGE = "c6a.48xlarge" + C6A_METAL = "c6a.metal" + M6A_METAL = "m6a.metal" + I4I_LARGE = "i4i.large" + I4I_XLARGE = "i4i.xlarge" + I4I_2XLARGE = "i4i.2xlarge" + I4I_4XLARGE = "i4i.4xlarge" + I4I_8XLARGE = "i4i.8xlarge" + I4I_16XLARGE = "i4i.16xlarge" + I4I_32XLARGE = "i4i.32xlarge" + I4I_METAL = "i4i.metal" + X2IDN_METAL = "x2idn.metal" + X2IEDN_METAL = "x2iedn.metal" + C7G_MEDIUM = "c7g.medium" + C7G_LARGE = "c7g.large" + C7G_XLARGE = "c7g.xlarge" + C7G_2XLARGE = "c7g.2xlarge" + C7G_4XLARGE = "c7g.4xlarge" + C7G_8XLARGE = "c7g.8xlarge" + C7G_12XLARGE = "c7g.12xlarge" + C7G_16XLARGE = "c7g.16xlarge" + MAC2_METAL = "mac2.metal" + C6ID_LARGE = "c6id.large" + C6ID_XLARGE = "c6id.xlarge" + C6ID_2XLARGE = "c6id.2xlarge" + C6ID_4XLARGE = "c6id.4xlarge" + C6ID_8XLARGE = "c6id.8xlarge" + C6ID_12XLARGE = "c6id.12xlarge" + C6ID_16XLARGE = "c6id.16xlarge" + C6ID_24XLARGE = "c6id.24xlarge" + C6ID_32XLARGE = "c6id.32xlarge" + C6ID_METAL = "c6id.metal" + M6ID_LARGE = "m6id.large" + M6ID_XLARGE = "m6id.xlarge" + M6ID_2XLARGE = "m6id.2xlarge" + M6ID_4XLARGE = "m6id.4xlarge" + M6ID_8XLARGE = "m6id.8xlarge" + M6ID_12XLARGE = "m6id.12xlarge" + M6ID_16XLARGE = "m6id.16xlarge" + M6ID_24XLARGE = "m6id.24xlarge" + M6ID_32XLARGE = "m6id.32xlarge" + M6ID_METAL = "m6id.metal" + R6ID_LARGE = "r6id.large" + R6ID_XLARGE = "r6id.xlarge" + R6ID_2XLARGE = "r6id.2xlarge" + R6ID_4XLARGE = "r6id.4xlarge" + R6ID_8XLARGE = "r6id.8xlarge" + R6ID_12XLARGE = "r6id.12xlarge" + R6ID_16XLARGE = "r6id.16xlarge" + R6ID_24XLARGE = "r6id.24xlarge" + R6ID_32XLARGE = "r6id.32xlarge" + R6ID_METAL = "r6id.metal" + R6A_LARGE = "r6a.large" + R6A_XLARGE = "r6a.xlarge" + R6A_2XLARGE = "r6a.2xlarge" + R6A_4XLARGE = "r6a.4xlarge" + R6A_8XLARGE = "r6a.8xlarge" + R6A_12XLARGE = "r6a.12xlarge" + R6A_16XLARGE = "r6a.16xlarge" + R6A_24XLARGE = "r6a.24xlarge" + R6A_32XLARGE = "r6a.32xlarge" + R6A_48XLARGE = "r6a.48xlarge" + R6A_METAL = "r6a.metal" + P4DE_24XLARGE = "p4de.24xlarge" + U_3TB1_56XLARGE = "u-3tb1.56xlarge" + U_18TB1_112XLARGE = "u-18tb1.112xlarge" + U_24TB1_112XLARGE = "u-24tb1.112xlarge" + TRN1_2XLARGE = "trn1.2xlarge" + TRN1_32XLARGE = "trn1.32xlarge" + HPC6ID_32XLARGE = "hpc6id.32xlarge" + C6IN_LARGE = "c6in.large" + C6IN_XLARGE = "c6in.xlarge" + C6IN_2XLARGE = "c6in.2xlarge" + C6IN_4XLARGE = "c6in.4xlarge" + C6IN_8XLARGE = "c6in.8xlarge" + C6IN_12XLARGE = "c6in.12xlarge" + C6IN_16XLARGE = "c6in.16xlarge" + C6IN_24XLARGE = "c6in.24xlarge" + C6IN_32XLARGE = "c6in.32xlarge" + M6IN_LARGE = "m6in.large" + M6IN_XLARGE = "m6in.xlarge" + M6IN_2XLARGE = "m6in.2xlarge" + M6IN_4XLARGE = "m6in.4xlarge" + M6IN_8XLARGE = "m6in.8xlarge" + M6IN_12XLARGE = "m6in.12xlarge" + M6IN_16XLARGE = "m6in.16xlarge" + M6IN_24XLARGE = "m6in.24xlarge" + M6IN_32XLARGE = "m6in.32xlarge" + M6IDN_LARGE = "m6idn.large" + M6IDN_XLARGE = "m6idn.xlarge" + M6IDN_2XLARGE = "m6idn.2xlarge" + M6IDN_4XLARGE = "m6idn.4xlarge" + M6IDN_8XLARGE = "m6idn.8xlarge" + M6IDN_12XLARGE = "m6idn.12xlarge" + M6IDN_16XLARGE = "m6idn.16xlarge" + M6IDN_24XLARGE = "m6idn.24xlarge" + M6IDN_32XLARGE = "m6idn.32xlarge" + R6IN_LARGE = "r6in.large" + R6IN_XLARGE = "r6in.xlarge" + R6IN_2XLARGE = "r6in.2xlarge" + R6IN_4XLARGE = "r6in.4xlarge" + R6IN_8XLARGE = "r6in.8xlarge" + R6IN_12XLARGE = "r6in.12xlarge" + R6IN_16XLARGE = "r6in.16xlarge" + R6IN_24XLARGE = "r6in.24xlarge" + R6IN_32XLARGE = "r6in.32xlarge" + R6IDN_LARGE = "r6idn.large" + R6IDN_XLARGE = "r6idn.xlarge" + R6IDN_2XLARGE = "r6idn.2xlarge" + R6IDN_4XLARGE = "r6idn.4xlarge" + R6IDN_8XLARGE = "r6idn.8xlarge" + R6IDN_12XLARGE = "r6idn.12xlarge" + R6IDN_16XLARGE = "r6idn.16xlarge" + R6IDN_24XLARGE = "r6idn.24xlarge" + R6IDN_32XLARGE = "r6idn.32xlarge" + C7G_METAL = "c7g.metal" + M7G_MEDIUM = "m7g.medium" + M7G_LARGE = "m7g.large" + M7G_XLARGE = "m7g.xlarge" + M7G_2XLARGE = "m7g.2xlarge" + M7G_4XLARGE = "m7g.4xlarge" + M7G_8XLARGE = "m7g.8xlarge" + M7G_12XLARGE = "m7g.12xlarge" + M7G_16XLARGE = "m7g.16xlarge" + M7G_METAL = "m7g.metal" + R7G_MEDIUM = "r7g.medium" + R7G_LARGE = "r7g.large" + R7G_XLARGE = "r7g.xlarge" + R7G_2XLARGE = "r7g.2xlarge" + R7G_4XLARGE = "r7g.4xlarge" + R7G_8XLARGE = "r7g.8xlarge" + R7G_12XLARGE = "r7g.12xlarge" + R7G_16XLARGE = "r7g.16xlarge" + R7G_METAL = "r7g.metal" + C6IN_METAL = "c6in.metal" + M6IN_METAL = "m6in.metal" + M6IDN_METAL = "m6idn.metal" + R6IN_METAL = "r6in.metal" + R6IDN_METAL = "r6idn.metal" + INF2_XLARGE = "inf2.xlarge" + INF2_8XLARGE = "inf2.8xlarge" + INF2_24XLARGE = "inf2.24xlarge" + INF2_48XLARGE = "inf2.48xlarge" + TRN1N_32XLARGE = "trn1n.32xlarge" + I4G_LARGE = "i4g.large" + I4G_XLARGE = "i4g.xlarge" + I4G_2XLARGE = "i4g.2xlarge" + I4G_4XLARGE = "i4g.4xlarge" + I4G_8XLARGE = "i4g.8xlarge" + I4G_16XLARGE = "i4g.16xlarge" + HPC7G_4XLARGE = "hpc7g.4xlarge" + HPC7G_8XLARGE = "hpc7g.8xlarge" + HPC7G_16XLARGE = "hpc7g.16xlarge" + C7GN_MEDIUM = "c7gn.medium" + C7GN_LARGE = "c7gn.large" + C7GN_XLARGE = "c7gn.xlarge" + C7GN_2XLARGE = "c7gn.2xlarge" + C7GN_4XLARGE = "c7gn.4xlarge" + C7GN_8XLARGE = "c7gn.8xlarge" + C7GN_12XLARGE = "c7gn.12xlarge" + C7GN_16XLARGE = "c7gn.16xlarge" + P5_48XLARGE = "p5.48xlarge" + M7I_LARGE = "m7i.large" + M7I_XLARGE = "m7i.xlarge" + M7I_2XLARGE = "m7i.2xlarge" + M7I_4XLARGE = "m7i.4xlarge" + M7I_8XLARGE = "m7i.8xlarge" + M7I_12XLARGE = "m7i.12xlarge" + M7I_16XLARGE = "m7i.16xlarge" + M7I_24XLARGE = "m7i.24xlarge" + M7I_48XLARGE = "m7i.48xlarge" + M7I_FLEX_LARGE = "m7i-flex.large" + M7I_FLEX_XLARGE = "m7i-flex.xlarge" + M7I_FLEX_2XLARGE = "m7i-flex.2xlarge" + M7I_FLEX_4XLARGE = "m7i-flex.4xlarge" + M7I_FLEX_8XLARGE = "m7i-flex.8xlarge" + M7A_MEDIUM = "m7a.medium" + M7A_LARGE = "m7a.large" + M7A_XLARGE = "m7a.xlarge" + M7A_2XLARGE = "m7a.2xlarge" + M7A_4XLARGE = "m7a.4xlarge" + M7A_8XLARGE = "m7a.8xlarge" + M7A_12XLARGE = "m7a.12xlarge" + M7A_16XLARGE = "m7a.16xlarge" + M7A_24XLARGE = "m7a.24xlarge" + M7A_32XLARGE = "m7a.32xlarge" + M7A_48XLARGE = "m7a.48xlarge" + M7A_METAL_48XL = "m7a.metal-48xl" + HPC7A_12XLARGE = "hpc7a.12xlarge" + HPC7A_24XLARGE = "hpc7a.24xlarge" + HPC7A_48XLARGE = "hpc7a.48xlarge" + HPC7A_96XLARGE = "hpc7a.96xlarge" + C7GD_MEDIUM = "c7gd.medium" + C7GD_LARGE = "c7gd.large" + C7GD_XLARGE = "c7gd.xlarge" + C7GD_2XLARGE = "c7gd.2xlarge" + C7GD_4XLARGE = "c7gd.4xlarge" + C7GD_8XLARGE = "c7gd.8xlarge" + C7GD_12XLARGE = "c7gd.12xlarge" + C7GD_16XLARGE = "c7gd.16xlarge" + M7GD_MEDIUM = "m7gd.medium" + M7GD_LARGE = "m7gd.large" + M7GD_XLARGE = "m7gd.xlarge" + M7GD_2XLARGE = "m7gd.2xlarge" + M7GD_4XLARGE = "m7gd.4xlarge" + M7GD_8XLARGE = "m7gd.8xlarge" + M7GD_12XLARGE = "m7gd.12xlarge" + M7GD_16XLARGE = "m7gd.16xlarge" + R7GD_MEDIUM = "r7gd.medium" + R7GD_LARGE = "r7gd.large" + R7GD_XLARGE = "r7gd.xlarge" + R7GD_2XLARGE = "r7gd.2xlarge" + R7GD_4XLARGE = "r7gd.4xlarge" + R7GD_8XLARGE = "r7gd.8xlarge" + R7GD_12XLARGE = "r7gd.12xlarge" + R7GD_16XLARGE = "r7gd.16xlarge" + R7A_MEDIUM = "r7a.medium" + R7A_LARGE = "r7a.large" + R7A_XLARGE = "r7a.xlarge" + R7A_2XLARGE = "r7a.2xlarge" + R7A_4XLARGE = "r7a.4xlarge" + R7A_8XLARGE = "r7a.8xlarge" + R7A_12XLARGE = "r7a.12xlarge" + R7A_16XLARGE = "r7a.16xlarge" + R7A_24XLARGE = "r7a.24xlarge" + R7A_32XLARGE = "r7a.32xlarge" + R7A_48XLARGE = "r7a.48xlarge" + C7I_LARGE = "c7i.large" + C7I_XLARGE = "c7i.xlarge" + C7I_2XLARGE = "c7i.2xlarge" + C7I_4XLARGE = "c7i.4xlarge" + C7I_8XLARGE = "c7i.8xlarge" + C7I_12XLARGE = "c7i.12xlarge" + C7I_16XLARGE = "c7i.16xlarge" + C7I_24XLARGE = "c7i.24xlarge" + C7I_48XLARGE = "c7i.48xlarge" + MAC2_M2PRO_METAL = "mac2-m2pro.metal" + R7IZ_LARGE = "r7iz.large" + R7IZ_XLARGE = "r7iz.xlarge" + R7IZ_2XLARGE = "r7iz.2xlarge" + R7IZ_4XLARGE = "r7iz.4xlarge" + R7IZ_8XLARGE = "r7iz.8xlarge" + R7IZ_12XLARGE = "r7iz.12xlarge" + R7IZ_16XLARGE = "r7iz.16xlarge" + R7IZ_32XLARGE = "r7iz.32xlarge" + C7A_MEDIUM = "c7a.medium" + C7A_LARGE = "c7a.large" + C7A_XLARGE = "c7a.xlarge" + C7A_2XLARGE = "c7a.2xlarge" + C7A_4XLARGE = "c7a.4xlarge" + C7A_8XLARGE = "c7a.8xlarge" + C7A_12XLARGE = "c7a.12xlarge" + C7A_16XLARGE = "c7a.16xlarge" + C7A_24XLARGE = "c7a.24xlarge" + C7A_32XLARGE = "c7a.32xlarge" + C7A_48XLARGE = "c7a.48xlarge" + C7A_METAL_48XL = "c7a.metal-48xl" + R7A_METAL_48XL = "r7a.metal-48xl" + R7I_LARGE = "r7i.large" + R7I_XLARGE = "r7i.xlarge" + R7I_2XLARGE = "r7i.2xlarge" + R7I_4XLARGE = "r7i.4xlarge" + R7I_8XLARGE = "r7i.8xlarge" + R7I_12XLARGE = "r7i.12xlarge" + R7I_16XLARGE = "r7i.16xlarge" + R7I_24XLARGE = "r7i.24xlarge" + R7I_48XLARGE = "r7i.48xlarge" + DL2Q_24XLARGE = "dl2q.24xlarge" + MAC2_M2_METAL = "mac2-m2.metal" + I4I_12XLARGE = "i4i.12xlarge" + I4I_24XLARGE = "i4i.24xlarge" + C7I_METAL_24XL = "c7i.metal-24xl" + C7I_METAL_48XL = "c7i.metal-48xl" + M7I_METAL_24XL = "m7i.metal-24xl" + M7I_METAL_48XL = "m7i.metal-48xl" + R7I_METAL_24XL = "r7i.metal-24xl" + R7I_METAL_48XL = "r7i.metal-48xl" + R7IZ_METAL_16XL = "r7iz.metal-16xl" + R7IZ_METAL_32XL = "r7iz.metal-32xl" + C7GD_METAL = "c7gd.metal" + M7GD_METAL = "m7gd.metal" + R7GD_METAL = "r7gd.metal" + G6_XLARGE = "g6.xlarge" + G6_2XLARGE = "g6.2xlarge" + G6_4XLARGE = "g6.4xlarge" + G6_8XLARGE = "g6.8xlarge" + G6_12XLARGE = "g6.12xlarge" + G6_16XLARGE = "g6.16xlarge" + G6_24XLARGE = "g6.24xlarge" + G6_48XLARGE = "g6.48xlarge" + GR6_4XLARGE = "gr6.4xlarge" + GR6_8XLARGE = "gr6.8xlarge" + C7I_FLEX_LARGE = "c7i-flex.large" + C7I_FLEX_XLARGE = "c7i-flex.xlarge" + C7I_FLEX_2XLARGE = "c7i-flex.2xlarge" + C7I_FLEX_4XLARGE = "c7i-flex.4xlarge" + C7I_FLEX_8XLARGE = "c7i-flex.8xlarge" + U7I_12TB_224XLARGE = "u7i-12tb.224xlarge" + U7IN_16TB_224XLARGE = "u7in-16tb.224xlarge" + U7IN_24TB_224XLARGE = "u7in-24tb.224xlarge" + U7IN_32TB_224XLARGE = "u7in-32tb.224xlarge" + U7IB_12TB_224XLARGE = "u7ib-12tb.224xlarge" + C7GN_METAL = "c7gn.metal" + R8G_MEDIUM = "r8g.medium" + R8G_LARGE = "r8g.large" + R8G_XLARGE = "r8g.xlarge" + R8G_2XLARGE = "r8g.2xlarge" + R8G_4XLARGE = "r8g.4xlarge" + R8G_8XLARGE = "r8g.8xlarge" + R8G_12XLARGE = "r8g.12xlarge" + R8G_16XLARGE = "r8g.16xlarge" + R8G_24XLARGE = "r8g.24xlarge" + R8G_48XLARGE = "r8g.48xlarge" + R8G_METAL_24XL = "r8g.metal-24xl" + R8G_METAL_48XL = "r8g.metal-48xl" + MAC2_M1ULTRA_METAL = "mac2-m1ultra.metal" + G6E_XLARGE = "g6e.xlarge" + G6E_2XLARGE = "g6e.2xlarge" + G6E_4XLARGE = "g6e.4xlarge" + G6E_8XLARGE = "g6e.8xlarge" + G6E_12XLARGE = "g6e.12xlarge" + G6E_16XLARGE = "g6e.16xlarge" + G6E_24XLARGE = "g6e.24xlarge" + G6E_48XLARGE = "g6e.48xlarge" + C8G_MEDIUM = "c8g.medium" + C8G_LARGE = "c8g.large" + C8G_XLARGE = "c8g.xlarge" + C8G_2XLARGE = "c8g.2xlarge" + C8G_4XLARGE = "c8g.4xlarge" + C8G_8XLARGE = "c8g.8xlarge" + C8G_12XLARGE = "c8g.12xlarge" + C8G_16XLARGE = "c8g.16xlarge" + C8G_24XLARGE = "c8g.24xlarge" + C8G_48XLARGE = "c8g.48xlarge" + C8G_METAL_24XL = "c8g.metal-24xl" + C8G_METAL_48XL = "c8g.metal-48xl" + M8G_MEDIUM = "m8g.medium" + M8G_LARGE = "m8g.large" + M8G_XLARGE = "m8g.xlarge" + M8G_2XLARGE = "m8g.2xlarge" + M8G_4XLARGE = "m8g.4xlarge" + M8G_8XLARGE = "m8g.8xlarge" + M8G_12XLARGE = "m8g.12xlarge" + M8G_16XLARGE = "m8g.16xlarge" + M8G_24XLARGE = "m8g.24xlarge" + M8G_48XLARGE = "m8g.48xlarge" + M8G_METAL_24XL = "m8g.metal-24xl" + M8G_METAL_48XL = "m8g.metal-48xl" + X8G_MEDIUM = "x8g.medium" + X8G_LARGE = "x8g.large" + X8G_XLARGE = "x8g.xlarge" + X8G_2XLARGE = "x8g.2xlarge" + X8G_4XLARGE = "x8g.4xlarge" + X8G_8XLARGE = "x8g.8xlarge" + X8G_12XLARGE = "x8g.12xlarge" + X8G_16XLARGE = "x8g.16xlarge" + X8G_24XLARGE = "x8g.24xlarge" + X8G_48XLARGE = "x8g.48xlarge" + X8G_METAL_24XL = "x8g.metal-24xl" + X8G_METAL_48XL = "x8g.metal-48xl" + I7IE_LARGE = "i7ie.large" + I7IE_XLARGE = "i7ie.xlarge" + I7IE_2XLARGE = "i7ie.2xlarge" + I7IE_3XLARGE = "i7ie.3xlarge" + I7IE_6XLARGE = "i7ie.6xlarge" + I7IE_12XLARGE = "i7ie.12xlarge" + I7IE_18XLARGE = "i7ie.18xlarge" + I7IE_24XLARGE = "i7ie.24xlarge" + I7IE_48XLARGE = "i7ie.48xlarge" + I8G_LARGE = "i8g.large" + I8G_XLARGE = "i8g.xlarge" + I8G_2XLARGE = "i8g.2xlarge" + I8G_4XLARGE = "i8g.4xlarge" + I8G_8XLARGE = "i8g.8xlarge" + I8G_12XLARGE = "i8g.12xlarge" + I8G_16XLARGE = "i8g.16xlarge" + I8G_24XLARGE = "i8g.24xlarge" + I8G_METAL_24XL = "i8g.metal-24xl" + U7I_6TB_112XLARGE = "u7i-6tb.112xlarge" + U7I_8TB_112XLARGE = "u7i-8tb.112xlarge" + U7INH_32TB_480XLARGE = "u7inh-32tb.480xlarge" + P5E_48XLARGE = "p5e.48xlarge" + P5EN_48XLARGE = "p5en.48xlarge" + F2_12XLARGE = "f2.12xlarge" + F2_48XLARGE = "f2.48xlarge" + TRN2_48XLARGE = "trn2.48xlarge" + C7I_FLEX_12XLARGE = "c7i-flex.12xlarge" + C7I_FLEX_16XLARGE = "c7i-flex.16xlarge" + M7I_FLEX_12XLARGE = "m7i-flex.12xlarge" + M7I_FLEX_16XLARGE = "m7i-flex.16xlarge" + I7IE_METAL_24XL = "i7ie.metal-24xl" + I7IE_METAL_48XL = "i7ie.metal-48xl" + I8G_48XLARGE = "i8g.48xlarge" + C8GD_MEDIUM = "c8gd.medium" + C8GD_LARGE = "c8gd.large" + C8GD_XLARGE = "c8gd.xlarge" + C8GD_2XLARGE = "c8gd.2xlarge" + C8GD_4XLARGE = "c8gd.4xlarge" + C8GD_8XLARGE = "c8gd.8xlarge" + C8GD_12XLARGE = "c8gd.12xlarge" + C8GD_16XLARGE = "c8gd.16xlarge" + C8GD_24XLARGE = "c8gd.24xlarge" + C8GD_48XLARGE = "c8gd.48xlarge" + C8GD_METAL_24XL = "c8gd.metal-24xl" + C8GD_METAL_48XL = "c8gd.metal-48xl" + I7I_LARGE = "i7i.large" + I7I_XLARGE = "i7i.xlarge" + I7I_2XLARGE = "i7i.2xlarge" + I7I_4XLARGE = "i7i.4xlarge" + I7I_8XLARGE = "i7i.8xlarge" + I7I_12XLARGE = "i7i.12xlarge" + I7I_16XLARGE = "i7i.16xlarge" + I7I_24XLARGE = "i7i.24xlarge" + I7I_48XLARGE = "i7i.48xlarge" + I7I_METAL_24XL = "i7i.metal-24xl" + I7I_METAL_48XL = "i7i.metal-48xl" + P6_B200_48XLARGE = "p6-b200.48xlarge" + M8GD_MEDIUM = "m8gd.medium" + M8GD_LARGE = "m8gd.large" + M8GD_XLARGE = "m8gd.xlarge" + M8GD_2XLARGE = "m8gd.2xlarge" + M8GD_4XLARGE = "m8gd.4xlarge" + M8GD_8XLARGE = "m8gd.8xlarge" + M8GD_12XLARGE = "m8gd.12xlarge" + M8GD_16XLARGE = "m8gd.16xlarge" + M8GD_24XLARGE = "m8gd.24xlarge" + M8GD_48XLARGE = "m8gd.48xlarge" + M8GD_METAL_24XL = "m8gd.metal-24xl" + M8GD_METAL_48XL = "m8gd.metal-48xl" + R8GD_MEDIUM = "r8gd.medium" + R8GD_LARGE = "r8gd.large" + R8GD_XLARGE = "r8gd.xlarge" + R8GD_2XLARGE = "r8gd.2xlarge" + R8GD_4XLARGE = "r8gd.4xlarge" + R8GD_8XLARGE = "r8gd.8xlarge" + R8GD_12XLARGE = "r8gd.12xlarge" + R8GD_16XLARGE = "r8gd.16xlarge" + R8GD_24XLARGE = "r8gd.24xlarge" + R8GD_48XLARGE = "r8gd.48xlarge" + R8GD_METAL_24XL = "r8gd.metal-24xl" + R8GD_METAL_48XL = "r8gd.metal-48xl" + C8GN_MEDIUM = "c8gn.medium" + C8GN_LARGE = "c8gn.large" + C8GN_XLARGE = "c8gn.xlarge" + C8GN_2XLARGE = "c8gn.2xlarge" + C8GN_4XLARGE = "c8gn.4xlarge" + C8GN_8XLARGE = "c8gn.8xlarge" + C8GN_12XLARGE = "c8gn.12xlarge" + C8GN_16XLARGE = "c8gn.16xlarge" + C8GN_24XLARGE = "c8gn.24xlarge" + C8GN_48XLARGE = "c8gn.48xlarge" + C8GN_METAL_24XL = "c8gn.metal-24xl" + C8GN_METAL_48XL = "c8gn.metal-48xl" + F2_6XLARGE = "f2.6xlarge" + P6E_GB200_36XLARGE = "p6e-gb200.36xlarge" + G6F_LARGE = "g6f.large" + G6F_XLARGE = "g6f.xlarge" + G6F_2XLARGE = "g6f.2xlarge" + G6F_4XLARGE = "g6f.4xlarge" + GR6F_4XLARGE = "gr6f.4xlarge" + P5_4XLARGE = "p5.4xlarge" + R8I_LARGE = "r8i.large" + R8I_XLARGE = "r8i.xlarge" + R8I_2XLARGE = "r8i.2xlarge" + R8I_4XLARGE = "r8i.4xlarge" + R8I_8XLARGE = "r8i.8xlarge" + R8I_12XLARGE = "r8i.12xlarge" + R8I_16XLARGE = "r8i.16xlarge" + R8I_24XLARGE = "r8i.24xlarge" + R8I_32XLARGE = "r8i.32xlarge" + R8I_48XLARGE = "r8i.48xlarge" + R8I_96XLARGE = "r8i.96xlarge" + R8I_METAL_48XL = "r8i.metal-48xl" + R8I_METAL_96XL = "r8i.metal-96xl" + R8I_FLEX_LARGE = "r8i-flex.large" + R8I_FLEX_XLARGE = "r8i-flex.xlarge" + R8I_FLEX_2XLARGE = "r8i-flex.2xlarge" + R8I_FLEX_4XLARGE = "r8i-flex.4xlarge" + R8I_FLEX_8XLARGE = "r8i-flex.8xlarge" + R8I_FLEX_12XLARGE = "r8i-flex.12xlarge" + R8I_FLEX_16XLARGE = "r8i-flex.16xlarge" + M8I_LARGE = "m8i.large" + M8I_XLARGE = "m8i.xlarge" + M8I_2XLARGE = "m8i.2xlarge" + M8I_4XLARGE = "m8i.4xlarge" + M8I_8XLARGE = "m8i.8xlarge" + M8I_12XLARGE = "m8i.12xlarge" + M8I_16XLARGE = "m8i.16xlarge" + M8I_24XLARGE = "m8i.24xlarge" + M8I_32XLARGE = "m8i.32xlarge" + M8I_48XLARGE = "m8i.48xlarge" + M8I_96XLARGE = "m8i.96xlarge" + M8I_METAL_48XL = "m8i.metal-48xl" + M8I_METAL_96XL = "m8i.metal-96xl" + M8I_FLEX_LARGE = "m8i-flex.large" + M8I_FLEX_XLARGE = "m8i-flex.xlarge" + M8I_FLEX_2XLARGE = "m8i-flex.2xlarge" + M8I_FLEX_4XLARGE = "m8i-flex.4xlarge" + M8I_FLEX_8XLARGE = "m8i-flex.8xlarge" + M8I_FLEX_12XLARGE = "m8i-flex.12xlarge" + M8I_FLEX_16XLARGE = "m8i-flex.16xlarge" + I8GE_LARGE = "i8ge.large" + I8GE_XLARGE = "i8ge.xlarge" + I8GE_2XLARGE = "i8ge.2xlarge" + I8GE_3XLARGE = "i8ge.3xlarge" + I8GE_6XLARGE = "i8ge.6xlarge" + I8GE_12XLARGE = "i8ge.12xlarge" + I8GE_18XLARGE = "i8ge.18xlarge" + I8GE_24XLARGE = "i8ge.24xlarge" + I8GE_48XLARGE = "i8ge.48xlarge" + I8GE_METAL_24XL = "i8ge.metal-24xl" + I8GE_METAL_48XL = "i8ge.metal-48xl" + MAC_M4_METAL = "mac-m4.metal" + MAC_M4PRO_METAL = "mac-m4pro.metal" + R8GN_MEDIUM = "r8gn.medium" + R8GN_LARGE = "r8gn.large" + R8GN_XLARGE = "r8gn.xlarge" + R8GN_2XLARGE = "r8gn.2xlarge" + R8GN_4XLARGE = "r8gn.4xlarge" + R8GN_8XLARGE = "r8gn.8xlarge" + R8GN_12XLARGE = "r8gn.12xlarge" + R8GN_16XLARGE = "r8gn.16xlarge" + R8GN_24XLARGE = "r8gn.24xlarge" + R8GN_48XLARGE = "r8gn.48xlarge" + R8GN_METAL_24XL = "r8gn.metal-24xl" + R8GN_METAL_48XL = "r8gn.metal-48xl" + C8I_LARGE = "c8i.large" + C8I_XLARGE = "c8i.xlarge" + C8I_2XLARGE = "c8i.2xlarge" + C8I_4XLARGE = "c8i.4xlarge" + C8I_8XLARGE = "c8i.8xlarge" + C8I_12XLARGE = "c8i.12xlarge" + C8I_16XLARGE = "c8i.16xlarge" + C8I_24XLARGE = "c8i.24xlarge" + C8I_32XLARGE = "c8i.32xlarge" + C8I_48XLARGE = "c8i.48xlarge" + C8I_96XLARGE = "c8i.96xlarge" + C8I_METAL_48XL = "c8i.metal-48xl" + C8I_METAL_96XL = "c8i.metal-96xl" + C8I_FLEX_LARGE = "c8i-flex.large" + C8I_FLEX_XLARGE = "c8i-flex.xlarge" + C8I_FLEX_2XLARGE = "c8i-flex.2xlarge" + C8I_FLEX_4XLARGE = "c8i-flex.4xlarge" + C8I_FLEX_8XLARGE = "c8i-flex.8xlarge" + C8I_FLEX_12XLARGE = "c8i-flex.12xlarge" + C8I_FLEX_16XLARGE = "c8i-flex.16xlarge" + R8GB_MEDIUM = "r8gb.medium" + R8GB_LARGE = "r8gb.large" + R8GB_XLARGE = "r8gb.xlarge" + R8GB_2XLARGE = "r8gb.2xlarge" + R8GB_4XLARGE = "r8gb.4xlarge" + R8GB_8XLARGE = "r8gb.8xlarge" + R8GB_12XLARGE = "r8gb.12xlarge" + R8GB_16XLARGE = "r8gb.16xlarge" + R8GB_24XLARGE = "r8gb.24xlarge" + R8GB_METAL_24XL = "r8gb.metal-24xl" + M8A_MEDIUM = "m8a.medium" + M8A_LARGE = "m8a.large" + M8A_XLARGE = "m8a.xlarge" + M8A_2XLARGE = "m8a.2xlarge" + M8A_4XLARGE = "m8a.4xlarge" + M8A_8XLARGE = "m8a.8xlarge" + M8A_12XLARGE = "m8a.12xlarge" + M8A_16XLARGE = "m8a.16xlarge" + M8A_24XLARGE = "m8a.24xlarge" + M8A_48XLARGE = "m8a.48xlarge" + M8A_METAL_24XL = "m8a.metal-24xl" + M8A_METAL_48XL = "m8a.metal-48xl" + TRN2_3XLARGE = "trn2.3xlarge" + R8A_MEDIUM = "r8a.medium" + R8A_LARGE = "r8a.large" + R8A_XLARGE = "r8a.xlarge" + R8A_2XLARGE = "r8a.2xlarge" + R8A_4XLARGE = "r8a.4xlarge" + R8A_8XLARGE = "r8a.8xlarge" + R8A_12XLARGE = "r8a.12xlarge" + R8A_16XLARGE = "r8a.16xlarge" + R8A_24XLARGE = "r8a.24xlarge" + R8A_48XLARGE = "r8a.48xlarge" + R8A_METAL_24XL = "r8a.metal-24xl" + R8A_METAL_48XL = "r8a.metal-48xl" + P6_B300_48XLARGE = "p6-b300.48xlarge" + C8A_MEDIUM = "c8a.medium" + C8A_LARGE = "c8a.large" + C8A_XLARGE = "c8a.xlarge" + C8A_2XLARGE = "c8a.2xlarge" + C8A_4XLARGE = "c8a.4xlarge" + C8A_8XLARGE = "c8a.8xlarge" + C8A_12XLARGE = "c8a.12xlarge" + C8A_16XLARGE = "c8a.16xlarge" + C8A_24XLARGE = "c8a.24xlarge" + C8A_48XLARGE = "c8a.48xlarge" + C8A_METAL_24XL = "c8a.metal-24xl" + C8A_METAL_48XL = "c8a.metal-48xl" + C8GB_12XLARGE = "c8gb.12xlarge" + C8GB_16XLARGE = "c8gb.16xlarge" + C8GB_24XLARGE = "c8gb.24xlarge" + C8GB_2XLARGE = "c8gb.2xlarge" + C8GB_4XLARGE = "c8gb.4xlarge" + C8GB_8XLARGE = "c8gb.8xlarge" + C8GB_LARGE = "c8gb.large" + C8GB_MEDIUM = "c8gb.medium" + C8GB_METAL_24XL = "c8gb.metal-24xl" + C8GB_XLARGE = "c8gb.xlarge" + C8GB_48XLARGE = "c8gb.48xlarge" + C8GB_METAL_48XL = "c8gb.metal-48xl" + M8GB_12XLARGE = "m8gb.12xlarge" + M8GB_16XLARGE = "m8gb.16xlarge" + M8GB_24XLARGE = "m8gb.24xlarge" + M8GB_2XLARGE = "m8gb.2xlarge" + M8GB_4XLARGE = "m8gb.4xlarge" + M8GB_8XLARGE = "m8gb.8xlarge" + M8GB_LARGE = "m8gb.large" + M8GB_MEDIUM = "m8gb.medium" + M8GB_XLARGE = "m8gb.xlarge" + M8GB_48XLARGE = "m8gb.48xlarge" + M8GB_METAL_24XL = "m8gb.metal-24xl" + M8GB_METAL_48XL = "m8gb.metal-48xl" + M8GN_12XLARGE = "m8gn.12xlarge" + M8GN_16XLARGE = "m8gn.16xlarge" + M8GN_24XLARGE = "m8gn.24xlarge" + M8GN_2XLARGE = "m8gn.2xlarge" + M8GN_48XLARGE = "m8gn.48xlarge" + M8GN_4XLARGE = "m8gn.4xlarge" + M8GN_8XLARGE = "m8gn.8xlarge" + M8GN_LARGE = "m8gn.large" + M8GN_MEDIUM = "m8gn.medium" + M8GN_XLARGE = "m8gn.xlarge" + M8GN_METAL_24XL = "m8gn.metal-24xl" + M8GN_METAL_48XL = "m8gn.metal-48xl" + X8AEDZ_12XLARGE = "x8aedz.12xlarge" + X8AEDZ_24XLARGE = "x8aedz.24xlarge" + X8AEDZ_3XLARGE = "x8aedz.3xlarge" + X8AEDZ_6XLARGE = "x8aedz.6xlarge" + X8AEDZ_LARGE = "x8aedz.large" + X8AEDZ_METAL_12XL = "x8aedz.metal-12xl" + X8AEDZ_METAL_24XL = "x8aedz.metal-24xl" + X8AEDZ_XLARGE = "x8aedz.xlarge" + M8AZN_MEDIUM = "m8azn.medium" + M8AZN_LARGE = "m8azn.large" + M8AZN_XLARGE = "m8azn.xlarge" + M8AZN_3XLARGE = "m8azn.3xlarge" + M8AZN_6XLARGE = "m8azn.6xlarge" + M8AZN_12XLARGE = "m8azn.12xlarge" + M8AZN_24XLARGE = "m8azn.24xlarge" + M8AZN_METAL_12XL = "m8azn.metal-12xl" + M8AZN_METAL_24XL = "m8azn.metal-24xl" + X8I_LARGE = "x8i.large" + X8I_XLARGE = "x8i.xlarge" + X8I_2XLARGE = "x8i.2xlarge" + X8I_4XLARGE = "x8i.4xlarge" + X8I_8XLARGE = "x8i.8xlarge" + X8I_12XLARGE = "x8i.12xlarge" + X8I_16XLARGE = "x8i.16xlarge" + X8I_24XLARGE = "x8i.24xlarge" + X8I_32XLARGE = "x8i.32xlarge" + X8I_48XLARGE = "x8i.48xlarge" + X8I_64XLARGE = "x8i.64xlarge" + X8I_96XLARGE = "x8i.96xlarge" + X8I_METAL_48XL = "x8i.metal-48xl" + X8I_METAL_96XL = "x8i.metal-96xl" + MAC_M4MAX_METAL = "mac-m4max.metal" + G7E_2XLARGE = "g7e.2xlarge" + G7E_4XLARGE = "g7e.4xlarge" + G7E_8XLARGE = "g7e.8xlarge" + G7E_12XLARGE = "g7e.12xlarge" + G7E_24XLARGE = "g7e.24xlarge" + G7E_48XLARGE = "g7e.48xlarge" + R8ID_LARGE = "r8id.large" + R8ID_XLARGE = "r8id.xlarge" + R8ID_2XLARGE = "r8id.2xlarge" + R8ID_4XLARGE = "r8id.4xlarge" + R8ID_8XLARGE = "r8id.8xlarge" + R8ID_12XLARGE = "r8id.12xlarge" + R8ID_16XLARGE = "r8id.16xlarge" + R8ID_24XLARGE = "r8id.24xlarge" + R8ID_32XLARGE = "r8id.32xlarge" + R8ID_48XLARGE = "r8id.48xlarge" + R8ID_96XLARGE = "r8id.96xlarge" + R8ID_METAL_48XL = "r8id.metal-48xl" + R8ID_METAL_96XL = "r8id.metal-96xl" + C8ID_LARGE = "c8id.large" + C8ID_XLARGE = "c8id.xlarge" + C8ID_2XLARGE = "c8id.2xlarge" + C8ID_4XLARGE = "c8id.4xlarge" + C8ID_8XLARGE = "c8id.8xlarge" + C8ID_12XLARGE = "c8id.12xlarge" + C8ID_16XLARGE = "c8id.16xlarge" + C8ID_24XLARGE = "c8id.24xlarge" + C8ID_32XLARGE = "c8id.32xlarge" + C8ID_48XLARGE = "c8id.48xlarge" + C8ID_96XLARGE = "c8id.96xlarge" + C8ID_METAL_48XL = "c8id.metal-48xl" + C8ID_METAL_96XL = "c8id.metal-96xl" + M8ID_LARGE = "m8id.large" + M8ID_XLARGE = "m8id.xlarge" + M8ID_2XLARGE = "m8id.2xlarge" + M8ID_4XLARGE = "m8id.4xlarge" + M8ID_8XLARGE = "m8id.8xlarge" + M8ID_12XLARGE = "m8id.12xlarge" + M8ID_16XLARGE = "m8id.16xlarge" + M8ID_24XLARGE = "m8id.24xlarge" + M8ID_32XLARGE = "m8id.32xlarge" + M8ID_48XLARGE = "m8id.48xlarge" + M8ID_96XLARGE = "m8id.96xlarge" + M8ID_METAL_48XL = "m8id.metal-48xl" + M8ID_METAL_96XL = "m8id.metal-96xl" + HPC8A_96XLARGE = "hpc8a.96xlarge" + C8IN_LARGE = "c8in.large" + C8IN_XLARGE = "c8in.xlarge" + C8IN_2XLARGE = "c8in.2xlarge" + C8IN_4XLARGE = "c8in.4xlarge" + C8IN_8XLARGE = "c8in.8xlarge" + C8IN_12XLARGE = "c8in.12xlarge" + C8IN_16XLARGE = "c8in.16xlarge" + C8IN_24XLARGE = "c8in.24xlarge" + C8IN_32XLARGE = "c8in.32xlarge" + C8IN_48XLARGE = "c8in.48xlarge" + C8IN_96XLARGE = "c8in.96xlarge" + C8IN_METAL_48XL = "c8in.metal-48xl" + C8IN_METAL_96XL = "c8in.metal-96xl" + C8IB_LARGE = "c8ib.large" + C8IB_XLARGE = "c8ib.xlarge" + C8IB_2XLARGE = "c8ib.2xlarge" + C8IB_4XLARGE = "c8ib.4xlarge" + C8IB_8XLARGE = "c8ib.8xlarge" + C8IB_12XLARGE = "c8ib.12xlarge" + C8IB_16XLARGE = "c8ib.16xlarge" + C8IB_24XLARGE = "c8ib.24xlarge" + C8IB_32XLARGE = "c8ib.32xlarge" + C8IB_48XLARGE = "c8ib.48xlarge" + C8IB_96XLARGE = "c8ib.96xlarge" + C8IB_METAL_48XL = "c8ib.metal-48xl" + C8IB_METAL_96XL = "c8ib.metal-96xl" + R8IN_LARGE = "r8in.large" + R8IN_XLARGE = "r8in.xlarge" + R8IN_2XLARGE = "r8in.2xlarge" + R8IN_4XLARGE = "r8in.4xlarge" + R8IN_8XLARGE = "r8in.8xlarge" + R8IN_12XLARGE = "r8in.12xlarge" + R8IN_16XLARGE = "r8in.16xlarge" + R8IN_24XLARGE = "r8in.24xlarge" + R8IN_32XLARGE = "r8in.32xlarge" + R8IN_48XLARGE = "r8in.48xlarge" + R8IN_96XLARGE = "r8in.96xlarge" + R8IB_LARGE = "r8ib.large" + R8IB_XLARGE = "r8ib.xlarge" + R8IB_2XLARGE = "r8ib.2xlarge" + R8IB_4XLARGE = "r8ib.4xlarge" + R8IB_8XLARGE = "r8ib.8xlarge" + R8IB_12XLARGE = "r8ib.12xlarge" + R8IB_16XLARGE = "r8ib.16xlarge" + R8IB_24XLARGE = "r8ib.24xlarge" + R8IB_32XLARGE = "r8ib.32xlarge" + R8IB_48XLARGE = "r8ib.48xlarge" + R8IB_96XLARGE = "r8ib.96xlarge" + M8IN_LARGE = "m8in.large" + M8IN_XLARGE = "m8in.xlarge" + M8IN_2XLARGE = "m8in.2xlarge" + M8IN_4XLARGE = "m8in.4xlarge" + M8IN_8XLARGE = "m8in.8xlarge" + M8IN_12XLARGE = "m8in.12xlarge" + M8IN_16XLARGE = "m8in.16xlarge" + M8IN_24XLARGE = "m8in.24xlarge" + M8IN_32XLARGE = "m8in.32xlarge" + M8IN_48XLARGE = "m8in.48xlarge" + M8IN_96XLARGE = "m8in.96xlarge" + M8IB_LARGE = "m8ib.large" + M8IB_XLARGE = "m8ib.xlarge" + M8IB_2XLARGE = "m8ib.2xlarge" + M8IB_4XLARGE = "m8ib.4xlarge" + M8IB_8XLARGE = "m8ib.8xlarge" + M8IB_12XLARGE = "m8ib.12xlarge" + M8IB_16XLARGE = "m8ib.16xlarge" + M8IB_24XLARGE = "m8ib.24xlarge" + M8IB_32XLARGE = "m8ib.32xlarge" + M8IB_48XLARGE = "m8ib.48xlarge" + M8IB_96XLARGE = "m8ib.96xlarge" + M8INE_LARGE = "m8ine.large" + M8INE_XLARGE = "m8ine.xlarge" + M8INE_2XLARGE = "m8ine.2xlarge" + M8INE_4XLARGE = "m8ine.4xlarge" + M8INE_8XLARGE = "m8ine.8xlarge" + M8INE_12XLARGE = "m8ine.12xlarge" + C8INE_LARGE = "c8ine.large" + C8INE_XLARGE = "c8ine.xlarge" + C8INE_2XLARGE = "c8ine.2xlarge" + C8INE_4XLARGE = "c8ine.4xlarge" + C8INE_8XLARGE = "c8ine.8xlarge" + C8INE_12XLARGE = "c8ine.12xlarge" + M8IDN_LARGE = "m8idn.large" + M8IDN_XLARGE = "m8idn.xlarge" + M8IDN_2XLARGE = "m8idn.2xlarge" + M8IDN_4XLARGE = "m8idn.4xlarge" + M8IDN_8XLARGE = "m8idn.8xlarge" + M8IDN_12XLARGE = "m8idn.12xlarge" + M8IDN_16XLARGE = "m8idn.16xlarge" + M8IDN_24XLARGE = "m8idn.24xlarge" + M8IDN_32XLARGE = "m8idn.32xlarge" + M8IDN_48XLARGE = "m8idn.48xlarge" + M8IDN_96XLARGE = "m8idn.96xlarge" + R8IDN_LARGE = "r8idn.large" + R8IDN_XLARGE = "r8idn.xlarge" + R8IDN_2XLARGE = "r8idn.2xlarge" + R8IDN_4XLARGE = "r8idn.4xlarge" + R8IDN_8XLARGE = "r8idn.8xlarge" + R8IDN_12XLARGE = "r8idn.12xlarge" + R8IDN_16XLARGE = "r8idn.16xlarge" + R8IDN_24XLARGE = "r8idn.24xlarge" + R8IDN_32XLARGE = "r8idn.32xlarge" + R8IDN_48XLARGE = "r8idn.48xlarge" + R8IDN_96XLARGE = "r8idn.96xlarge" + M8IDB_LARGE = "m8idb.large" + M8IDB_XLARGE = "m8idb.xlarge" + M8IDB_2XLARGE = "m8idb.2xlarge" + M8IDB_4XLARGE = "m8idb.4xlarge" + M8IDB_8XLARGE = "m8idb.8xlarge" + M8IDB_12XLARGE = "m8idb.12xlarge" + M8IDB_16XLARGE = "m8idb.16xlarge" + M8IDB_24XLARGE = "m8idb.24xlarge" + M8IDB_32XLARGE = "m8idb.32xlarge" + M8IDB_48XLARGE = "m8idb.48xlarge" + M8IDB_96XLARGE = "m8idb.96xlarge" + R8IDB_LARGE = "r8idb.large" + R8IDB_XLARGE = "r8idb.xlarge" + R8IDB_2XLARGE = "r8idb.2xlarge" + R8IDB_4XLARGE = "r8idb.4xlarge" + R8IDB_8XLARGE = "r8idb.8xlarge" + R8IDB_12XLARGE = "r8idb.12xlarge" + R8IDB_16XLARGE = "r8idb.16xlarge" + R8IDB_24XLARGE = "r8idb.24xlarge" + R8IDB_32XLARGE = "r8idb.32xlarge" + R8IDB_48XLARGE = "r8idb.48xlarge" + R8IDB_96XLARGE = "r8idb.96xlarge" + MAC_M3ULTRA_METAL = "mac-m3ultra.metal" + M9G_LARGE = "m9g.large" + M9G_XLARGE = "m9g.xlarge" + M9G_2XLARGE = "m9g.2xlarge" + M9G_4XLARGE = "m9g.4xlarge" + M9G_8XLARGE = "m9g.8xlarge" + M9G_12XLARGE = "m9g.12xlarge" + M9G_16XLARGE = "m9g.16xlarge" + M9G_24XLARGE = "m9g.24xlarge" + M9G_48XLARGE = "m9g.48xlarge" + M9G_METAL_24XL = "m9g.metal-24xl" + M9G_METAL_48XL = "m9g.metal-48xl" + M9GD_LARGE = "m9gd.large" + M9GD_XLARGE = "m9gd.xlarge" + M9GD_2XLARGE = "m9gd.2xlarge" + M9GD_4XLARGE = "m9gd.4xlarge" + M9GD_8XLARGE = "m9gd.8xlarge" + M9GD_12XLARGE = "m9gd.12xlarge" + M9GD_16XLARGE = "m9gd.16xlarge" + M9GD_24XLARGE = "m9gd.24xlarge" + M9GD_48XLARGE = "m9gd.48xlarge" + M9GD_METAL_24XL = "m9gd.metal-24xl" + M9GD_METAL_48XL = "m9gd.metal-48xl" + R8IN_METAL_48XL = "r8in.metal-48xl" + R8IN_METAL_96XL = "r8in.metal-96xl" + R8IB_METAL_48XL = "r8ib.metal-48xl" + R8IB_METAL_96XL = "r8ib.metal-96xl" + R8IDN_METAL_48XL = "r8idn.metal-48xl" + R8IDN_METAL_96XL = "r8idn.metal-96xl" + R8IDB_METAL_48XL = "r8idb.metal-48xl" + R8IDB_METAL_96XL = "r8idb.metal-96xl" + M8IN_METAL_48XL = "m8in.metal-48xl" + M8IN_METAL_96XL = "m8in.metal-96xl" + M8IB_METAL_48XL = "m8ib.metal-48xl" + M8IB_METAL_96XL = "m8ib.metal-96xl" + M8IDN_METAL_48XL = "m8idn.metal-48xl" + M8IDN_METAL_96XL = "m8idn.metal-96xl" + M8IDB_METAL_48XL = "m8idb.metal-48xl" + M8IDB_METAL_96XL = "m8idb.metal-96xl" + G7_2XLARGE = "g7.2xlarge" + G7_4XLARGE = "g7.4xlarge" + G7_8XLARGE = "g7.8xlarge" + G7_12XLARGE = "g7.12xlarge" + G7_24XLARGE = "g7.24xlarge" + G7_48XLARGE = "g7.48xlarge" + C9G_MEDIUM = "c9g.medium" + C9G_LARGE = "c9g.large" + C9G_XLARGE = "c9g.xlarge" + C9G_2XLARGE = "c9g.2xlarge" + C9G_4XLARGE = "c9g.4xlarge" + C9G_8XLARGE = "c9g.8xlarge" + C9G_12XLARGE = "c9g.12xlarge" + C9G_16XLARGE = "c9g.16xlarge" + C9G_24XLARGE = "c9g.24xlarge" + C9G_48XLARGE = "c9g.48xlarge" + C9G_METAL_48XL = "c9g.metal-48xl" + C9GD_MEDIUM = "c9gd.medium" + C9GD_LARGE = "c9gd.large" + C9GD_XLARGE = "c9gd.xlarge" + C9GD_2XLARGE = "c9gd.2xlarge" + C9GD_4XLARGE = "c9gd.4xlarge" + C9GD_8XLARGE = "c9gd.8xlarge" + C9GD_12XLARGE = "c9gd.12xlarge" + C9GD_16XLARGE = "c9gd.16xlarge" + C9GD_24XLARGE = "c9gd.24xlarge" + C9GD_48XLARGE = "c9gd.48xlarge" + C9GD_METAL_48XL = "c9gd.metal-48xl" + R9G_MEDIUM = "r9g.medium" + R9G_LARGE = "r9g.large" + R9G_XLARGE = "r9g.xlarge" + R9G_2XLARGE = "r9g.2xlarge" + R9G_4XLARGE = "r9g.4xlarge" + R9G_8XLARGE = "r9g.8xlarge" + R9G_12XLARGE = "r9g.12xlarge" + R9G_16XLARGE = "r9g.16xlarge" + R9G_24XLARGE = "r9g.24xlarge" + R9G_48XLARGE = "r9g.48xlarge" + R9G_METAL_48XL = "r9g.metal-48xl" + R9GD_MEDIUM = "r9gd.medium" + R9GD_LARGE = "r9gd.large" + R9GD_XLARGE = "r9gd.xlarge" + R9GD_2XLARGE = "r9gd.2xlarge" + R9GD_4XLARGE = "r9gd.4xlarge" + R9GD_8XLARGE = "r9gd.8xlarge" + R9GD_12XLARGE = "r9gd.12xlarge" + R9GD_16XLARGE = "r9gd.16xlarge" + R9GD_24XLARGE = "r9gd.24xlarge" + R9GD_48XLARGE = "r9gd.48xlarge" + R9GD_METAL_48XL = "r9gd.metal-48xl" + M9G_MEDIUM = "m9g.medium" + T8I_NANO = "t8i.nano" + T8I_MICRO = "t8i.micro" + T8I_SMALL = "t8i.small" + T8I_MEDIUM = "t8i.medium" + I8G_METAL_48XL = "i8g.metal-48xl" + R8GB_48XLARGE = "r8gb.48xlarge" + R8GB_METAL_48XL = "r8gb.metal-48xl" + M9GD_MEDIUM = "m9gd.medium" + TRN2U_48XLARGE = "trn2u.48xlarge" + +class InstanceTypeHypervisor(UnknownEnumMixin, StrEnum): + NITRO = "nitro" + XEN = "xen" + +@dataclass(kw_only=True) +class InstanceTypeInfo(_SerdeShape): + """Describes the instance type.""" + + instance_type: str | None = ... + """ + The instance type. For more information, see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + """ + current_generation: bool | None = ... + """Indicates whether the instance type is current generation.""" + free_tier_eligible: bool | None = ... + """Indicates whether the instance type is eligible for the free tier.""" + supported_usage_classes: list[str] | None = ... + """ + Indicates whether the instance type is offered for spot, On-Demand, or + Capacity Blocks. + """ + supported_root_device_types: list[str] | None = ... + """The supported root device types.""" + supported_virtualization_types: list[str] | None = ... + """The supported virtualization types.""" + bare_metal: bool | None = ... + """Indicates whether the instance is a bare metal instance type.""" + hypervisor: str | None = ... + """The hypervisor for the instance type.""" + processor_info: ProcessorInfo | None = ... + """Describes the processor.""" + v_cpu_info: VCpuInfo | None = ... + """Describes the vCPU configurations for the instance type.""" + memory_info: MemoryInfo | None = ... + """Describes the memory for the instance type.""" + instance_storage_supported: bool | None = ... + """Indicates whether instance storage is supported.""" + instance_storage_info: InstanceStorageInfo | None = ... + """Describes the instance storage for the instance type.""" + ebs_info: EbsInfo | None = ... + """Describes the Amazon EBS settings for the instance type.""" + network_info: NetworkInfo | None = ... + """Describes the network settings for the instance type.""" + gpu_info: GpuInfo | None = ... + """Describes the GPU accelerator settings for the instance type.""" + fpga_info: FpgaInfo | None = ... + """Describes the FPGA accelerator settings for the instance type.""" + placement_group_info: PlacementGroupInfo | None = ... + """Describes the placement group settings for the instance type.""" + inference_accelerator_info: InferenceAcceleratorInfo | None = ... + """Describes the Inference accelerator settings for the instance type.""" + hibernation_supported: bool | None = ... + """Indicates whether On-Demand hibernation is supported.""" + burstable_performance_supported: bool | None = ... + """ + Indicates whether the instance type is a burstable performance T + instance type. For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html). + """ + dedicated_hosts_supported: bool | None = ... + """Indicates whether Dedicated Hosts are supported on the instance type.""" + auto_recovery_supported: bool | None = ... + """Indicates whether Amazon CloudWatch action based recovery is supported.""" + supported_boot_modes: list[str] | None = ... + """ + The supported boot modes. For more information, see [Boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + nitro_enclaves_support: str | None = ... + """Indicates whether Nitro Enclaves is supported.""" + nitro_tpm_support: str | None = ... + """Indicates whether NitroTPM is supported.""" + nitro_tpm_info: NitroTpmInfo | None = ... + """Describes the supported NitroTPM versions for the instance type.""" + media_accelerator_info: MediaAcceleratorInfo | None = ... + """Describes the media accelerator settings for the instance type.""" + neuron_info: NeuronInfo | None = ... + """Describes the Neuron accelerator settings for the instance type.""" + phc_support: str | None = ... + """ + Indicates whether a local Precision Time Protocol (PTP) hardware clock + (PHC) is supported. + """ + reboot_migration_support: str | None = ... + """ + Indicates whether reboot migration during a user-initiated reboot is + supported for instances that have a scheduled `system-reboot` event. For + more information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration) + in the *Amazon EC2 User Guide*. + """ + supported_in_region: bool | None = ... + """Indicates whether the instance type is supported in the current Region.""" + +@dataclass(kw_only=True) +class InstanceTypeInfoFromInstanceRequirements(_SerdeShape): + """The list of instance types with the specified instance attributes.""" + + instance_type: str | None = ... + """The matching instance type.""" + +@dataclass(kw_only=True) +class InstanceTypeItem(_SerdeShape): + """ + An instance type name or wildcard pattern in an instance type + specification. + """ + + instance_type: str | None = ... + """ + The instance type or wildcard pattern (for example, `t3.*` or + `m5.large`). + """ + +@dataclass(kw_only=True) +class InstanceTypeOffering(_SerdeShape): + """The instance types offered.""" + + instance_type: str | None = ... + """ + The instance type. For more information, see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + """ + location_type: str | None = ... + """The location type.""" + location: str | None = ... + """ + The identifier for the location. This depends on the location type. For + example, if the location type is `region`, the location is the Region + code (for example, `us-east-2`.) + """ + +@dataclass(kw_only=True) +class InstanceTypeSpecification(_SerdeShape): + """ + Describes the instance type compatibility rules for an AMI, including + lists of supported and unsupported instance type patterns. + """ + + supported_instance_types: list[InstanceTypeItem] | None = ... + """The instance types that the AMI supports.""" + unsupported_instance_types: list[InstanceTypeItem] | None = ... + """The instance types that the AMI does not support.""" + +@dataclass(kw_only=True) +class InstanceTypeSpecificationRequest(_SerdeShape): + """ + The instance type specification for an AMI, which contains lists of + supported and unsupported instance types that define which instance + types are compatible with the AMI. + """ + + supported_instance_types: list[str] | None = ... + """ + The instance types that the AMI supports. You can specify instance type + names or use wildcard patterns (for example, `t3.*`). + + Constraints: Maximum 100 entries. Each entry must be 1-24 characters and + match the pattern `^[A-Za-z0-9_.*-]+$`. Consecutive wildcard characters + (`**`) are not allowed. Entries must be unique within each list and + across both lists; duplicate entries cause the request to fail. + """ + unsupported_instance_types: list[str] | None = ... + """ + The instance types that the AMI does not support. You can specify + instance type names or use wildcard patterns (for example, `t3.*`). + + Constraints: Maximum 100 entries. Each entry must be 1-24 characters and + match the pattern `^[A-Za-z0-9_.*-]+$`. Consecutive wildcard characters + (`**`) are not allowed. Entries must be unique within each list and + across both lists; duplicate entries cause the request to fail. + """ + +@dataclass(kw_only=True) +class InstanceUsage(_SerdeShape): + """Information about the Capacity Reservation usage.""" + + account_id: str | None = ... + """ + The ID of the Amazon Web Services account that is making use of the + Capacity Reservation. + """ + used_instance_count: int | None = ... + """ + The number of instances the Amazon Web Services account currently has in + the Capacity Reservation. + """ + +@dataclass(kw_only=True) +class IntegrateServices(_SerdeShape): + """Describes service integrations with VPC Flow logs.""" + + athena_integrations: list[AthenaIntegration] | None = ... + """Information about the integration with Amazon Athena.""" + +class InterfacePermissionType(UnknownEnumMixin, StrEnum): + INSTANCE_ATTACH = "INSTANCE-ATTACH" + EIP_ASSOCIATE = "EIP-ASSOCIATE" + +class InterfaceProtocolType(UnknownEnumMixin, StrEnum): + VLAN = "VLAN" + GRE = "GRE" + +@dataclass(kw_only=True) +class InternetGateway(_SerdeShape): + """Describes an internet gateway.""" + + attachments: list[InternetGatewayAttachment] | None = ... + """Any VPCs attached to the internet gateway.""" + internet_gateway_id: str | None = ... + """The ID of the internet gateway.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the internet + gateway. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the internet gateway.""" + +@dataclass(kw_only=True) +class InternetGatewayAttachment(_SerdeShape): + """ + Describes the attachment of a VPC to an internet gateway or an + egress-only internet gateway. + """ + + state: str | None = ... + """ + The current state of the attachment. For an internet gateway, the state + is `available` when attached to a VPC; otherwise, this value is not + returned. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + +class InternetGatewayBlockMode(UnknownEnumMixin, StrEnum): + OFF = "off" + BLOCK_BIDIRECTIONAL = "block-bidirectional" + BLOCK_INGRESS = "block-ingress" + +class InternetGatewayExclusionMode(UnknownEnumMixin, StrEnum): + ALLOW_BIDIRECTIONAL = "allow-bidirectional" + ALLOW_EGRESS = "allow-egress" + +@dataclass(kw_only=True) +class InterruptibleCapacityAllocation(_SerdeShape): + """ + Represents the allocation of capacity from a source reservation to an + interruptible reservation, tracking current and target instance counts + for allocation management. + """ + + instance_count: int | None = ... + """ + The current number of instances allocated to the interruptible + reservation. + """ + target_instance_count: int | None = ... + """ + After your modify request, the requested number of instances allocated + to interruptible reservation. + """ + status: str | None = ... + """ + The current status of the allocation (updating during reclamation, + active when complete). + """ + interruptible_capacity_reservation_id: str | None = ... + """ + The ID of the interruptible Capacity Reservation created from the + allocation. + """ + interruption_type: str | None = ... + """ + The type of interruption policy applied to the interruptible + reservation. + """ + zero_size_preference: str | None = ... + """ + Specifies how Amazon EC2 handles the interruptible Capacity Reservation + when you reduce its allocation to zero instances. A value of `retain` + keeps the interruptible Capacity Reservation active at zero capacity so + that you can allocate instances to it again later. A value of `default` + cancels the interruptible Capacity Reservation and returns the capacity + to your source Capacity Reservation. + """ + +class InterruptibleCapacityReservationAllocationStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + UPDATING = "updating" + CANCELING = "canceling" + CANCELED = "canceled" + FAILED = "failed" + +@dataclass(kw_only=True) +class InterruptionInfo(_SerdeShape): + """ + Contains information about how and when instances in an interruptible + reservation can be terminated when capacity is reclaimed. + """ + + source_capacity_reservation_id: str | None = ... + """ + The ID of the source Capacity Reservation from which the interruptible + reservation was created. + """ + interruption_type: str | None = ... + """ + The interruption type that determines how instances are terminated when + capacity is reclaimed. + """ + +class InterruptionType(UnknownEnumMixin, StrEnum): + ADHOC = "adhoc" + +class IpAddressType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + DUALSTACK = "dualstack" + IPV6 = "ipv6" + +@dataclass(kw_only=True) +class Ipam(_SerdeShape): + """ + IPAM is a VPC feature that you can use to automate your IP address + management workflows including assigning, tracking, troubleshooting, and + auditing IP addresses across Amazon Web Services Regions and accounts + throughout your Amazon Web Services Organization. For more information, + see [What is + IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + + owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the IPAM.""" + ipam_id: str | None = ... + """The ID of the IPAM.""" + ipam_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IPAM.""" + ipam_region: str | None = ... + """The Amazon Web Services Region of the IPAM.""" + public_default_scope_id: str | None = ... + """The ID of the IPAM's default public scope.""" + private_default_scope_id: str | None = ... + """The ID of the IPAM's default private scope.""" + scope_count: int | None = ... + """ + The number of scopes in the IPAM. The scope quota is 5. For more + information on quotas, see [Quotas in + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + description: str | None = ... + """The description for the IPAM.""" + operating_regions: list[IpamOperatingRegion] | None = ... + """ + The operating Regions for an IPAM. Operating Regions are Amazon Web + Services Regions where the IPAM is allowed to manage IP address CIDRs. + IPAM only discovers and monitors resources in the Amazon Web Services + Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + state: str | None = ... + """The state of the IPAM.""" + tags: list[Tag] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + default_resource_discovery_id: str | None = ... + """The IPAM's default resource discovery ID.""" + default_resource_discovery_association_id: str | None = ... + """The IPAM's default resource discovery association ID.""" + resource_discovery_association_count: int | None = ... + """The IPAM's resource discovery association count.""" + state_message: str | None = ... + """The state message.""" + tier: str | None = ... + """ + IPAM is offered in a Free Tier and an Advanced Tier. For more + information about the features available in each tier and the costs + associated with the tiers, see [Amazon VPC pricing > IPAM + tab](http://aws.amazon.com/vpc/pricing/). + """ + enable_private_gua: bool | None = ... + """ + Enable this option to use your own GUA ranges as private IPv6 addresses. + This option is disabled by default. + """ + metered_account: str | None = ... + """ + A metered account is an Amazon Web Services account that is charged for + active IP addresses managed in IPAM. For more information, see [Enable + cost + distribution](https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html) + in the *Amazon VPC IPAM User Guide*. + + Possible values: + + - `ipam-owner` (default): The Amazon Web Services account which owns the + IPAM is charged for all active IP addresses managed in IPAM. + + - `resource-owner`: The Amazon Web Services account that owns the IP + address is charged for the active IP address. + """ + +@dataclass(kw_only=True) +class IpamAddressHistoryRecord(_SerdeShape): + """ + The historical record of a CIDR within an IPAM scope. For more + information, see [View the history of IP + addresses](https://docs.aws.amazon.com/vpc/latest/ipam/view-history-cidr-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + + resource_owner_id: str | None = ... + """The ID of the resource owner.""" + resource_region: str | None = ... + """The Amazon Web Services Region of the resource.""" + resource_type: str | None = ... + """The type of the resource.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_cidr: str | None = ... + """The CIDR of the resource.""" + resource_name: str | None = ... + """The name of the resource.""" + resource_compliance_status: str | None = ... + """ + The compliance status of a resource. For more information on compliance + statuses, see [Monitor CIDR usage by + resource](https://docs.aws.amazon.com/vpc/latest/ipam/monitor-cidr-compliance-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + resource_overlap_status: str | None = ... + """ + The overlap status of an IPAM resource. The overlap status tells you if + the CIDR for a resource overlaps with another CIDR in the scope. For + more information on overlap statuses, see [Monitor CIDR usage by + resource](https://docs.aws.amazon.com/vpc/latest/ipam/monitor-cidr-compliance-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + vpc_id: str | None = ... + """The VPC ID of the resource.""" + sampled_start_time: datetime | None = ... + """ + Sampled start time of the resource-to-CIDR association within the IPAM + scope. Changes are picked up in periodic snapshots, so the start time + may have occurred before this specific time. + """ + sampled_end_time: datetime | None = ... + """ + Sampled end time of the resource-to-CIDR association within the IPAM + scope. Changes are picked up in periodic snapshots, so the end time may + have occurred before this specific time. + """ + +class IpamAddressHistoryResourceType(UnknownEnumMixin, StrEnum): + EIP = "eip" + VPC = "vpc" + SUBNET = "subnet" + NETWORK_INTERFACE = "network-interface" + INSTANCE = "instance" + +class IpamAssociatedResourceDiscoveryStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + NOT_FOUND = "not-found" + +class IpamByoipAdvertisementType(UnknownEnumMixin, StrEnum): + """The advertisement type of a BYOIP route.""" + + REGIONAL = "regional" + GLOBAL_ = "global" + +class IpamByoipCidrState(UnknownEnumMixin, StrEnum): + """The state of a BYOIP CIDR.""" + + ADVERTISED = "advertised" + DEPROVISIONED = "deprovisioned" + FAILED_DEPROVISION = "failed-deprovision" + FAILED_PROVISION = "failed-provision" + PENDING_ADVERTISING = "pending-advertising" + PENDING_DEPROVISION = "pending-deprovision" + PENDING_PROVISION = "pending-provision" + PENDING_WITHDRAWAL = "pending-withdrawal" + PROVISIONED = "provisioned" + PROVISIONED_NOT_PUBLICLY_ADVERTISABLE = "provisioned-not-publicly-advertisable" + +@dataclass(kw_only=True) +class IpamCidrAuthorizationContext(_SerdeShape): + """ + A signed document that proves that you are authorized to bring the + specified IP address range to Amazon using BYOIP. + """ + + message: str | None = ... + """The plain-text authorization message for the prefix and account.""" + signature: str | None = ... + """The signed authorization message for the prefix and account.""" + +class IpamComplianceStatus(UnknownEnumMixin, StrEnum): + COMPLIANT = "compliant" + NONCOMPLIANT = "noncompliant" + UNMANAGED = "unmanaged" + IGNORED = "ignored" + +@dataclass(kw_only=True) +class IpamDiscoveredAccount(_SerdeShape): + """ + An IPAM discovered account. A discovered account is an Amazon Web + Services account that is monitored under a resource discovery. If you + have integrated IPAM with Amazon Web Services Organizations, all + accounts in the organization are discovered accounts. + """ + + account_id: str | None = ... + """The account ID.""" + discovery_region: str | None = ... + """ + The Amazon Web Services Region that the account information is returned + from. An account can be discovered in multiple regions and will have a + separate discovered account for each Region. + """ + failure_reason: IpamDiscoveryFailureReason | None = ... + """The resource discovery failure reason.""" + last_attempted_discovery_time: datetime | None = ... + """The last attempted resource discovery time.""" + last_successful_discovery_time: datetime | None = ... + """The last successful resource discovery time.""" + organizational_unit_id: str | None = ... + """The ID of an Organizational Unit in Amazon Web Services Organizations.""" + +@dataclass(kw_only=True) +class IpamDiscoveredPublicAddress(_SerdeShape): + """A public IP Address discovered by IPAM.""" + + ipam_resource_discovery_id: str | None = ... + """The resource discovery ID.""" + address_region: str | None = ... + """The Region of the resource the IP address is assigned to.""" + address: str | None = ... + """The IP address.""" + address_owner_id: str | None = ... + """The ID of the owner of the resource the IP address is assigned to.""" + address_allocation_id: str | None = ... + """The allocation ID of the resource the IP address is assigned to.""" + association_status: str | None = ... + """The association status.""" + address_type: str | None = ... + """The IP address type.""" + service: str | None = ... + """The Amazon Web Services service associated with the IP address.""" + service_resource: str | None = ... + """The resource ARN or ID.""" + vpc_id: str | None = ... + """The ID of the VPC that the resource with the assigned IP address is in.""" + subnet_id: str | None = ... + """ + The ID of the subnet that the resource with the assigned IP address is + in. + """ + public_ipv4_pool_id: str | None = ... + """ + The ID of the public IPv4 pool that the resource with the assigned IP + address is from. + """ + network_interface_id: str | None = ... + """The network interface ID of the resource with the assigned IP address.""" + network_interface_description: str | None = ... + """The description of the network interface that IP address is assigned to.""" + instance_id: str | None = ... + """The instance ID of the instance the assigned IP address is assigned to.""" + tags: IpamPublicAddressTags | None = ... + """Tags associated with the IP address.""" + network_border_group: str | None = ... + """ + The Availability Zone (AZ) or Local Zone (LZ) network border group that + the resource that the IP address is assigned to is in. Defaults to an AZ + network border group. For more information on available Local Zones, see + [Local Zone + availability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail) + in the *Amazon EC2 User Guide*. + """ + security_groups: list[IpamPublicAddressSecurityGroup] | None = ... + """ + Security groups associated with the resource that the IP address is + assigned to. + """ + sample_time: datetime | None = ... + """The last successful resource discovery time.""" + +@dataclass(kw_only=True) +class IpamDiscoveredResourceCidr(_SerdeShape): + """ + An IPAM discovered resource CIDR. A discovered resource is a resource + CIDR monitored under a resource discovery. The following resources can + be discovered: VPCs, Public IPv4 pools, VPC subnets, and Elastic IP + addresses. The discovered resource CIDR is the IP address range in CIDR + notation that is associated with the resource. + """ + + ipam_resource_discovery_id: str | None = ... + """The resource discovery ID.""" + resource_region: str | None = ... + """The resource Region.""" + resource_id: str | None = ... + """The resource ID.""" + resource_owner_id: str | None = ... + """The resource owner ID.""" + resource_cidr: str | None = ... + """The resource CIDR.""" + ip_source: str | None = ... + """ + The source that allocated the IP address space. `byoip` or `amazon` + indicates public IP address space allocated by Amazon or space that you + have allocated with Bring your own IP (BYOIP). `none` indicates private + space. + """ + resource_type: str | None = ... + """The resource type.""" + resource_tags: list[IpamResourceTag] | None = ... + """The resource tags.""" + ip_usage: float | None = ... + """ + The percentage of IP address space in use. To convert the decimal to a + percentage, multiply the decimal by 100. Note the following: + + - For resources that are VPCs, this is the percentage of IP address + space in the VPC that's taken up by subnet CIDRs. + + - For resources that are subnets, if the subnet has an IPv4 CIDR + provisioned to it, this is the percentage of IPv4 address space in the + subnet that's in use. If the subnet has an IPv6 CIDR provisioned to + it, the percentage of IPv6 address space in use is not represented. + The percentage of IPv6 address space in use cannot currently be + calculated. + + - For resources that are public IPv4 pools, this is the percentage of IP + address space in the pool that's been allocated to Elastic IP + addresses (EIPs). + """ + vpc_id: str | None = ... + """The VPC ID.""" + subnet_id: str | None = ... + """The subnet ID.""" + network_interface_attachment_status: str | None = ... + """ + For elastic network interfaces, this is the status of whether or not the + elastic network interface is attached. + """ + sample_time: datetime | None = ... + """The last successful resource discovery time.""" + availability_zone_id: str | None = ... + """The Availability Zone ID.""" + +@dataclass(kw_only=True) +class IpamDiscoveredRoute(_SerdeShape): + """ + Contains information about a BGP route discovered by IPAM resource + discovery. + """ + + ipam_resource_discovery_id: str | None = ... + """The ID of the IPAM resource discovery that discovered the route.""" + resource_region: str | None = ... + """The Amazon Web Services Region where the route was discovered.""" + resource_owner_id: str | None = ... + """The ID of the resource owner.""" + cidr: str | None = ... + """The IP address prefix of the discovered route in CIDR notation.""" + asn: str | None = ... + """The Autonomous System Number (ASN) that originates the route.""" + state: str | None = ... + """ + The state of the BYOIP CIDR. Possible values: + + - `advertised` - The CIDR is being advertised. + + - `deprovisioned` - The CIDR has been deprovisioned. + + - `failed-deprovision` - Deprovisioning failed. + + - `failed-provision` - Provisioning failed. + + - `pending-deprovision` - Deprovisioning is in progress. + + - `pending-provision` - Provisioning is in progress. + + - `provisioned` - The CIDR is provisioned. + + - `provisioned-not-publicly-advertisable` - The CIDR is provisioned but + not publicly advertisable. + """ + advertisement_type: str | None = ... + """ + The advertisement type of the route. Possible values: + + - `regional` - The IP address is advertised from a single location + (regional services such as Amazon EC2). + + - `global` - The IP address is advertised from multiple global locations + simultaneously (global services such as Amazon CloudFront). + """ + network_border_group: str | None = ... + """The network border group for the route.""" + pool_id: str | None = ... + """The ID of the BYOIP pool associated with the route.""" + ipam_pool_id: str | None = ... + """The ID of the IPAM pool associated with the route.""" + sample_time: datetime | None = ... + """The time when the route was last sampled.""" + +class IpamDiscoveryFailureCode(UnknownEnumMixin, StrEnum): + ASSUME_ROLE_FAILURE = "assume-role-failure" + THROTTLING_FAILURE = "throttling-failure" + UNAUTHORIZED_FAILURE = "unauthorized-failure" + +@dataclass(kw_only=True) +class IpamDiscoveryFailureReason(_SerdeShape): + """The discovery failure reason.""" + + code: str | None = ... + """ + The discovery failure code. + + - `assume-role-failure` - IPAM could not assume the Amazon Web Services + IAM service-linked role. This could be because of any of the + following: + + - SLR has not been created yet and IPAM is still creating it. + + - You have opted-out of the IPAM home Region. + + - Account you are using as your IPAM account has been suspended. + + - `throttling-failure` - IPAM account is already using the allotted + transactions per second and IPAM is receiving a throttling error when + assuming the Amazon Web Services IAM SLR. + + - `unauthorized-failure` - Amazon Web Services account making the + request is not authorized. For more information, see + [AuthFailure](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html) + in the *Amazon Elastic Compute Cloud API Reference*. + """ + message: str | None = ... + """The discovery failure message.""" + +@dataclass(kw_only=True) +class IpamExternalResourceVerificationToken(_SerdeShape): + """ + A verification token is an Amazon Web Services-generated random value + that you can use to prove ownership of an external resource. For + example, you can use a verification token to validate that you control a + public IP address range when you bring an IP address range to Amazon Web + Services (BYOIP). + """ + + ipam_external_resource_verification_token_id: str | None = ... + """The ID of the token.""" + ipam_external_resource_verification_token_arn: str | None = ... + """Token ARN.""" + ipam_id: str | None = ... + """The ID of the IPAM that created the token.""" + ipam_arn: str | None = ... + """ARN of the IPAM that created the token.""" + ipam_region: str | None = ... + """Region of the IPAM that created the token.""" + token_value: str | None = ... + """Token value.""" + token_name: str | None = ... + """Token name.""" + not_after: datetime | None = ... + """Token expiration.""" + status: str | None = ... + """Token status.""" + tags: list[Tag] | None = ... + """Token tags.""" + state: str | None = ... + """Token state.""" + +class IpamExternalResourceVerificationTokenState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + +@dataclass(kw_only=True) +class IpamInternetRegistryAssociation(_SerdeShape): + """ + Contains information about an association between an IPAM and a Regional + Internet Registry (RIR) for delegated RPKI management. + """ + + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the internet + registry association. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the internet registry association.""" + ipam_internet_registry_association_arn: str | None = ... + """The Amazon Resource Name (ARN) of the internet registry association.""" + ipam_id: str | None = ... + """The ID of the associated IPAM.""" + ipam_region: str | None = ... + """The Amazon Web Services Region of the IPAM.""" + rir: str | None = ... + """ + The Regional Internet Registry. Possible values: + + - `ripe` - RIPE NCC (Europe, the Middle East, and Central Asia). + + - `apnic` - APNIC (Asia Pacific). + + - `arin` - ARIN (North America). + + - `lacnic` - LACNIC (Latin America and the Caribbean). + """ + organization_handle: str | None = ... + """The organization handle at the internet registry.""" + description: str | None = ... + """The description of the internet registry association.""" + state: str | None = ... + """ + The state of the internet registry association. Valid values: + `pending-activation` | `pending-enable` | `create-in-progress` | + `create-failed` | `enable-in-progress` | `enable-complete` | + `enable-failed` | `delete-in-progress` | `delete-complete` | + `delete-failed`. + """ + state_message: str | None = ... + """ + A message describing the current state of the internet registry + association, including additional details such as the reason for a + failure. + """ + child_request_xml: str | None = ... + """ + The XML content for the child request to be submitted to the internet + registry to complete the BPKI setup. + """ + tags: list[Tag] | None = ... + """The tags assigned to the internet registry association.""" + +@dataclass(kw_only=True) +class IpamInternetRegistryAssociationAsn(_SerdeShape): + """ + Contains information about an Autonomous System Number (ASN) registered + at an internet registry and associated with an IPAM. + """ + + asn: str | None = ... + """The Autonomous System Number.""" + last_observed_at: datetime | None = ... + """The time when the ASN was last observed at the internet registry.""" + +@dataclass(kw_only=True) +class IpamInternetRegistryAssociationCidr(_SerdeShape): + """ + Contains information about an IP address CIDR registered at an internet + registry and associated with an IPAM. + """ + + cidr: str | None = ... + """The IP address prefix in CIDR notation.""" + last_observed_at: datetime | None = ... + """The time when the CIDR was last observed at the internet registry.""" + +class IpamInternetRegistryAssociationState(UnknownEnumMixin, StrEnum): + """The state of an IPAM internet registry association.""" + + PENDING_ENABLE = "pending-enable" + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_FAILED = "create-failed" + ENABLE_IN_PROGRESS = "enable-in-progress" + ENABLE_COMPLETE = "enable-complete" + ENABLE_FAILED = "enable-failed" + DISABLE_IN_PROGRESS = "disable-in-progress" + DISABLE_COMPLETE = "disable-complete" + DISABLE_FAILED = "disable-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + +class IpamManagementState(UnknownEnumMixin, StrEnum): + MANAGED = "managed" + UNMANAGED = "unmanaged" + IGNORED = "ignored" + +class IpamMeteredAccount(UnknownEnumMixin, StrEnum): + IPAM_OWNER = "ipam-owner" + RESOURCE_OWNER = "resource-owner" + +class IpamNetworkInterfaceAttachmentStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + IN_USE = "in-use" + +@dataclass(kw_only=True) +class IpamOperatingRegion(_SerdeShape): + """ + The operating Regions for an IPAM. Operating Regions are Amazon Web + Services Regions where the IPAM is allowed to manage IP address CIDRs. + IPAM only discovers and monitors resources in the Amazon Web Services + Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + + region_name: str | None = ... + """The name of the operating Region.""" + +@dataclass(kw_only=True) +class IpamOrganizationalUnitExclusion(_SerdeShape): + """ + If your IPAM is integrated with Amazon Web Services Organizations and + you add an organizational unit (OU) exclusion, IPAM will not manage the + IP addresses in accounts in that OU exclusion. + """ + + organizations_entity_path: str | None = ... + """ + An Amazon Web Services Organizations entity path. For more information + on the entity path, see [Understand the Amazon Web Services + Organizations entity + path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) + in the *Amazon Web Services Identity and Access Management User Guide*. + """ + +class IpamOverlapStatus(UnknownEnumMixin, StrEnum): + OVERLAPPING = "overlapping" + NONOVERLAPPING = "nonoverlapping" + IGNORED = "ignored" + +@dataclass(kw_only=True) +class IpamPolicy(_SerdeShape): + """ + Information about an IPAM policy. + + An IPAM policy is a set of rules that define how public IPv4 addresses + from IPAM pools are allocated to Amazon Web Services resources. Each + rule maps an Amazon Web Services service to IPAM pools that the service + will use to get IP addresses. A single policy can have multiple rules + and be applied to multiple Amazon Web Services Regions. If the IPAM pool + run out of addresses then the services fallback to Amazon-provided IP + addresses. A policy can be applied to an individual Amazon Web Services + account or an entity within Amazon Web Services Organizations. + """ + + owner_id: str | None = ... + """The account ID that owns the IPAM policy.""" + ipam_policy_id: str | None = ... + """The ID of the IPAM policy.""" + ipam_policy_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IPAM policy.""" + ipam_policy_region: str | None = ... + """The Region of the IPAM policy.""" + state: str | None = ... + """The state of the IPAM policy.""" + state_message: str | None = ... + """A message about the state of the IPAM policy.""" + tags: list[Tag] | None = ... + """The tags assigned to the IPAM policy.""" + ipam_id: str | None = ... + """The ID of the IPAM this policy belongs to.""" + +@dataclass(kw_only=True) +class IpamPolicyAllocationRule(_SerdeShape): + """ + Information about an IPAM policy allocation rule. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + """ + + source_ipam_pool_id: str | None = ... + """ + The ID of the source IPAM pool for the allocation rule. + + An IPAM pool is a collection of IP addresses in IPAM that can be + allocated to Amazon Web Services resources. + """ + +@dataclass(kw_only=True) +class IpamPolicyAllocationRuleRequest(_SerdeShape): + """ + Information about a requested IPAM policy allocation rule. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + """ + + source_ipam_pool_id: str | None = ... + """ + The ID of the source IPAM pool for the requested allocation rule. + + An IPAM pool is a collection of IP addresses in IPAM that can be + allocated to Amazon Web Services resources. + """ + +@dataclass(kw_only=True) +class IpamPolicyDocument(_SerdeShape): + """Information about an IPAM policy.""" + + ipam_policy_id: str | None = ... + """The ID of the IPAM policy.""" + locale: str | None = ... + """The locale of the IPAM policy document.""" + resource_type: str | None = ... + """ + The resource type of the IPAM policy document. + + The Amazon Web Services service or resource type that can use IP + addresses through IPAM policies. Supported services and resource types + include: + + - Elastic IP addresses + """ + allocation_rules: list[IpamPolicyAllocationRule] | None = ... + """ + The allocation rules in the IPAM policy document. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + """ + +class IpamPolicyManagedBy(UnknownEnumMixin, StrEnum): + ACCOUNT = "account" + DELEGATED_ADMINISTRATOR_FOR_IPAM = "delegated-administrator-for-ipam" + +@dataclass(kw_only=True) +class IpamPolicyOrganizationTarget(_SerdeShape): + """The Amazon Web Services Organizations target for an IPAM policy.""" + + organization_target_id: str | None = ... + """ + The ID of the Amazon Web Services Organizations target. + + A target can be an individual Amazon Web Services account or an entity + within an Amazon Web Services Organization to which an IPAM policy can + be applied. + """ + +class IpamPolicyResourceType(UnknownEnumMixin, StrEnum): + ALB = "alb" + EIP = "eip" + RDS = "rds" + RNAT = "rnat" + +class IpamPolicyState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +@dataclass(kw_only=True) +class IpamPool(_SerdeShape): + """ + In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools + enable you to organize your IP addresses according to your routing and + security needs. For example, if you have separate routing and security + needs for development and production applications, you can create a pool + for each. + """ + + owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the IPAM pool.""" + ipam_pool_id: str | None = ... + """The ID of the IPAM pool.""" + source_ipam_pool_id: str | None = ... + """ + The ID of the source IPAM pool. You can use this option to create an + IPAM pool within an existing source pool. + """ + ipam_pool_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IPAM pool.""" + ipam_scope_arn: str | None = ... + """The ARN of the scope of the IPAM pool.""" + ipam_scope_type: str | None = ... + """ + In IPAM, a scope is the highest-level container within IPAM. An IPAM + contains two default scopes. Each scope represents the IP space for a + single network. The private scope is intended for all private IP address + space. The public scope is intended for all public IP address space. + Scopes enable you to reuse IP addresses across multiple unconnected + networks without causing IP address overlap or conflict. + """ + ipam_arn: str | None = ... + """The ARN of the IPAM.""" + ipam_region: str | None = ... + """The Amazon Web Services Region of the IPAM pool.""" + locale: str | None = ... + """ + The locale of the IPAM pool. + + The locale for the pool should be one of the following: + + - An Amazon Web Services Region where you want this IPAM pool to be + available for allocations. + + - The network border group for an Amazon Web Services Local Zone where + you want this IPAM pool to be available for allocations ([supported + Local + Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail)). + This option is only available for IPAM IPv4 pools in the public scope. + + If you choose an Amazon Web Services Region for locale that has not been + configured as an operating Region for the IPAM, you'll get an error. + """ + pool_depth: int | None = ... + """ + The depth of pools in your IPAM pool. The pool depth quota is 10. For + more information, see [Quotas in + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + state: str | None = ... + """The state of the IPAM pool.""" + state_message: str | None = ... + """The state message.""" + description: str | None = ... + """The description of the IPAM pool.""" + auto_import: bool | None = ... + """ + If selected, IPAM will continuously look for resources within the CIDR + range of this pool and automatically import them as allocations into + your IPAM. The CIDRs that will be allocated for these resources must not + already be allocated to other resources in order for the import to + succeed. IPAM will import a CIDR regardless of its compliance with the + pool's allocation rules, so a resource might be imported and + subsequently marked as noncompliant. If IPAM discovers multiple CIDRs + that overlap, IPAM will import the largest CIDR only. If IPAM discovers + multiple CIDRs with matching CIDRs, IPAM will randomly import one of + them only. + + A locale must be set on the pool for this feature to work. + """ + publicly_advertisable: bool | None = ... + """ + Determines if a pool is publicly advertisable. This option is not + available for pools with AddressFamily set to `ipv4`. + """ + address_family: str | None = ... + """The address family of the pool.""" + allocation_min_netmask_length: int | None = ... + """ + The minimum netmask length required for CIDR allocations in this IPAM + pool to be compliant. The minimum netmask length must be less than the + maximum netmask length. Possible netmask lengths for IPv4 addresses are + 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. + """ + allocation_max_netmask_length: int | None = ... + """ + The maximum netmask length possible for CIDR allocations in this IPAM + pool to be compliant. The maximum netmask length must be greater than + the minimum netmask length. Possible netmask lengths for IPv4 addresses + are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. + """ + allocation_default_netmask_length: int | None = ... + """ + The default netmask length for allocations added to this pool. If, for + example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 + here, new allocations will default to 10.0.0.0/16. + """ + allocation_resource_tags: list[IpamResourceTag] | None = ... + """ + Tags that are required for resources that use CIDRs from this IPAM pool. + Resources that do not have these tags will not be allowed to allocate + space from the pool. If the resources have their tags changed after they + have allocated space or if the allocation tagging requirements are + changed on the pool, the resource may be marked as noncompliant. + """ + tags: list[Tag] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + aws_service: str | None = ... + """ + Limits which service in Amazon Web Services that the pool can be used + in. \"ec2\", for example, allows users to use space for Elastic IP + addresses and VPCs. + """ + public_ip_source: str | None = ... + """ + The IP address source for pools in the public scope. Only used for + provisioning IP address CIDRs to pools in the public scope. Default is + `BYOIP`. For more information, see [Create IPv6 + pools](https://docs.aws.amazon.com/vpc/latest/ipam/intro-create-ipv6-pools.html) + in the *Amazon VPC IPAM User Guide*. By default, you can add only one + Amazon-provided IPv6 CIDR block to a top-level IPv6 pool. For + information on increasing the default limit, see [Quotas for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + source_resource: IpamPoolSourceResource | None = ... + """The resource used to provision CIDRs to a resource planning pool.""" + +@dataclass(kw_only=True) +class IpamPoolAllocation(_SerdeShape): + """ + In IPAM, an allocation is a CIDR assignment from an IPAM pool to another + IPAM pool or to a resource. + """ + + cidr: str | None = ... + """ + The CIDR for the allocation. A CIDR is a representation of an IP address + and its associated network mask (or netmask) and refers to a range of IP + addresses. An IPv4 CIDR example is `10.24.34.0/23`. An IPv6 CIDR example + is `2001:DB8::/32`. + """ + ipam_pool_allocation_id: str | None = ... + """The ID of an allocation.""" + description: str | None = ... + """A description of the pool allocation.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The type of the resource.""" + resource_region: str | None = ... + """The Amazon Web Services Region of the resource.""" + resource_owner: str | None = ... + """The owner of the resource.""" + tags: list[Tag] | None = ... + """The tags for the IPAM pool allocation.""" + +class IpamPoolAllocationResourceType(UnknownEnumMixin, StrEnum): + IPAM_POOL = "ipam-pool" + VPC = "vpc" + EC2_PUBLIC_IPV4_POOL = "ec2-public-ipv4-pool" + CUSTOM = "custom" + SUBNET = "subnet" + EIP = "eip" + ANYCAST_IP_LIST = "anycast-ip-list" + +class IpamPoolAwsService(UnknownEnumMixin, StrEnum): + EC2 = "ec2" + GLOBAL_SERVICES = "global-services" + +@dataclass(kw_only=True) +class IpamPoolCidr(_SerdeShape): + """A CIDR provisioned to an IPAM pool.""" + + cidr: str | None = ... + """ + The CIDR provisioned to the IPAM pool. A CIDR is a representation of an + IP address and its associated network mask (or netmask) and refers to a + range of IP addresses. An IPv4 CIDR example is `10.24.34.0/23`. An IPv6 + CIDR example is `2001:DB8::/32`. + """ + state: str | None = ... + """The state of the CIDR.""" + failure_reason: IpamPoolCidrFailureReason | None = ... + """Details related to why an IPAM pool CIDR failed to be provisioned.""" + ipam_pool_cidr_id: str | None = ... + """The IPAM pool CIDR ID.""" + netmask_length: int | None = ... + """ + The netmask length of the CIDR you'd like to provision to a pool. Can + be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools + and for provisioning CIDRs to pools with source pools. Cannot be used to + provision BYOIP CIDRs to top-level pools. \"NetmaskLength\" or \"Cidr\" + is required. + """ + +class IpamPoolCidrFailureCode(UnknownEnumMixin, StrEnum): + CIDR_NOT_AVAILABLE = "cidr-not-available" + LIMIT_EXCEEDED = "limit-exceeded" + +@dataclass(kw_only=True) +class IpamPoolCidrFailureReason(_SerdeShape): + """Details related to why an IPAM pool CIDR failed to be provisioned.""" + + code: str | None = ... + """An error code related to why an IPAM pool CIDR failed to be provisioned.""" + message: str | None = ... + """A message related to why an IPAM pool CIDR failed to be provisioned.""" + +class IpamPoolCidrState(UnknownEnumMixin, StrEnum): + PENDING_PROVISION = "pending-provision" + PROVISIONED = "provisioned" + FAILED_PROVISION = "failed-provision" + PENDING_DEPROVISION = "pending-deprovision" + DEPROVISIONED = "deprovisioned" + FAILED_DEPROVISION = "failed-deprovision" + PENDING_IMPORT = "pending-import" + FAILED_IMPORT = "failed-import" + +class IpamPoolPublicIpSource(UnknownEnumMixin, StrEnum): + AMAZON = "amazon" + BYOIP = "byoip" + +@dataclass(kw_only=True) +class IpamPoolSourceResource(_SerdeShape): + """The resource used to provision CIDRs to a resource planning pool.""" + + resource_id: str | None = ... + """The source resource ID.""" + resource_type: str | None = ... + """The source resource type.""" + resource_region: str | None = ... + """The source resource Region.""" + resource_owner: str | None = ... + """The source resource owner.""" + +@dataclass(kw_only=True) +class IpamPoolSourceResourceRequest(_SerdeShape): + """The resource used to provision CIDRs to a resource planning pool.""" + + resource_id: str | None = ... + """The source resource ID.""" + resource_type: str | None = ... + """The source resource type.""" + resource_region: str | None = ... + """The source resource Region.""" + resource_owner: str | None = ... + """The source resource owner.""" + +class IpamPoolSourceResourceType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + +class IpamPoolState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +@dataclass(kw_only=True) +class IpamPrefixListResolver(_SerdeShape): + """ + Describes an IPAM prefix list resolver. + + An IPAM prefix list resolver is a component that manages the + synchronization between IPAM's CIDR selection rules and + customer-managed prefix lists. It automates connectivity configurations + by selecting CIDRs from IPAM's database based on your business logic + and synchronizing them with prefix lists used in resources such as VPC + route tables and security groups. + """ + + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the IPAM prefix list + resolver. + """ + ipam_prefix_list_resolver_id: str | None = ... + """The ID of the IPAM prefix list resolver.""" + ipam_prefix_list_resolver_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IPAM prefix list resolver.""" + ipam_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IPAM associated with this + resolver. + """ + ipam_region: str | None = ... + """The Amazon Web Services Region where the associated IPAM is located.""" + description: str | None = ... + """The description of the IPAM prefix list resolver.""" + address_family: str | None = ... + """The address family (IPv4 or IPv6) for the IPAM prefix list resolver.""" + state: str | None = ... + """ + The current state of the IPAM prefix list resolver. Valid values include + `create-in-progress`, `create-complete`, `create-failed`, + `modify-in-progress`, `modify-complete`, `modify-failed`, + `delete-in-progress`, `delete-complete`, and `delete-failed`. + """ + tags: list[Tag] | None = ... + """The tags assigned to the IPAM prefix list resolver.""" + last_version_creation_status: str | None = ... + """ + The status for the last time a version was created. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + """ + last_version_creation_status_message: str | None = ... + """ + The status message for the last time a version was created. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + """ + +@dataclass(kw_only=True) +class IpamPrefixListResolverRule(_SerdeShape): + """ + Describes a CIDR selection rule. + + CIDR selection rules define the business logic for selecting CIDRs from + IPAM. If a CIDR matches any of the rules, it will be included. If a rule + has multiple conditions, the CIDR has to match every condition of that + rule. You can create a prefix list resolver without any CIDR selection + rules, but it will generate empty versions (containing no CIDRs) until + you add rules. + """ + + rule_type: str | None = ... + """ + The type of CIDR selection rule. Valid values include `include` for + selecting CIDRs that match the conditions, and `exclude` for excluding + CIDRs that match the conditions. + """ + static_cidr: str | None = ... + """ + A fixed list of CIDRs that do not change (like a manual list replicated + across Regions). + """ + ipam_scope_id: str | None = ... + """ + The ID of the IPAM scope from which to select CIDRs. This determines + whether to select from public or private IP address space. + """ + resource_type: str | None = ... + """For rules of type `ipam-resource-cidr`, this is the resource type.""" + conditions: list[IpamPrefixListResolverRuleCondition] | None = ... + """ + The conditions that determine which CIDRs are selected by this rule. + Conditions specify criteria such as resource type, tags, account IDs, + and Regions. + """ + +@dataclass(kw_only=True) +class IpamPrefixListResolverRuleCondition(_SerdeShape): + """ + Describes a condition within a CIDR selection rule. Conditions define + the criteria for selecting CIDRs from IPAM's database based on resource + attributes. + + CIDR selection rules define the business logic for selecting CIDRs from + IPAM. If a CIDR matches any of the rules, it will be included. If a rule + has multiple conditions, the CIDR has to match every condition of that + rule. You can create a prefix list resolver without any CIDR selection + rules, but it will generate empty versions (containing no CIDRs) until + you add rules. + + There are three rule types. Only 2 of the 3 rule types support + conditions - **IPAM pool CIDR** and **Scope resource CIDR**. **Static + CIDR** rules cannot have conditions. + + - **Static CIDR**: A fixed list of CIDRs that do not change (like a + manual list replicated across Regions) + + - **IPAM pool CIDR**: CIDRs from specific IPAM pools (like all CIDRs + from your IPAM production pool) + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Conditions:** + + - **Property** + + - **IPAM pool ID**: Select an IPAM pool that contains the + resources + + - **CIDR** (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + + - **Scope resource CIDR**: CIDRs from Amazon Web Services resources like + VPCs, subnets, EIPs within an IPAM scope + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Resource type**: Select a resource, like a VPC or subnet. + + - **Conditions**: + + - **Property**: + + - Resource ID: The unique ID of a resource (like + vpc-1234567890abcdef0) + + - Resource owner (like 111122223333) + + - Resource region (like us-east-1) + + - Resource tag (like key: name, value: dev-vpc-1) + + - CIDR (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + """ + + operation: str | None = ... + """ + The operation to perform when evaluating this condition. Valid values + include `equals`, `not-equals`, `contains`, and `not-contains`. + """ + ipam_pool_id: str | None = ... + """ + The ID of the IPAM pool to match against. This condition selects CIDRs + that belong to the specified IPAM pool. + """ + resource_id: str | None = ... + """ + The ID of the Amazon Web Services resource to match against. This + condition selects CIDRs associated with the specified resource. + """ + resource_owner: str | None = ... + """ + The Amazon Web Services account ID that owns the resources to match + against. This condition selects CIDRs from resources owned by the + specified account. + """ + resource_region: str | None = ... + """ + The Amazon Web Services Region where the resources are located. This + condition selects CIDRs from resources in the specified Region. + """ + resource_tag: IpamResourceTag | None = ... + """ + A tag key-value pair to match against. This condition selects CIDRs from + resources that have the specified tag. + """ + cidr: str | None = ... + """ + A CIDR block to match against. This condition selects CIDRs that fall + within or match the specified CIDR range. + """ + +class IpamPrefixListResolverRuleConditionOperation(UnknownEnumMixin, StrEnum): + EQUALS = "equals" + NOT_EQUALS = "not-equals" + SUBNET_OF = "subnet-of" + +@dataclass(kw_only=True) +class IpamPrefixListResolverRuleConditionRequest(_SerdeShape): + """ + Describes a condition used when creating or modifying resolver rules. + + CIDR selection rules define the business logic for selecting CIDRs from + IPAM. If a CIDR matches any of the rules, it will be included. If a rule + has multiple conditions, the CIDR has to match every condition of that + rule. You can create a prefix list resolver without any CIDR selection + rules, but it will generate empty versions (containing no CIDRs) until + you add rules. + + There are three rule types. Only 2 of the 3 rule types support + conditions - **IPAM pool CIDR** and **Scope resource CIDR**. **Static + CIDR** rules cannot have conditions. + + - **Static CIDR**: A fixed list of CIDRs that do not change (like a + manual list replicated across Regions) + + - **IPAM pool CIDR**: CIDRs from specific IPAM pools (like all CIDRs + from your IPAM production pool) + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Conditions:** + + - **Property** + + - **IPAM pool ID**: Select an IPAM pool that contains the + resources + + - **CIDR** (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + + - **Scope resource CIDR**: CIDRs from Amazon Web Services resources like + VPCs, subnets, EIPs within an IPAM scope + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Resource type**: Select a resource, like a VPC or subnet. + + - **Conditions**: + + - **Property**: + + - Resource ID: The unique ID of a resource (like + vpc-1234567890abcdef0) + + - Resource owner (like 111122223333) + + - Resource region (like us-east-1) + + - Resource tag (like key: name, value: dev-vpc-1) + + - CIDR (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + """ + + operation: str | None = ... + """The operation to perform when evaluating this condition.""" + ipam_pool_id: str | None = ... + """ + The ID of the IPAM pool to match against. This condition selects CIDRs + that belong to the specified IPAM pool. + """ + resource_id: str | None = ... + """ + The ID of the Amazon Web Services resource to match against. This + condition selects CIDRs associated with the specified resource. + """ + resource_owner: str | None = ... + """ + The Amazon Web Services account ID that owns the resources to match + against. This condition selects CIDRs from resources owned by the + specified account. + """ + resource_region: str | None = ... + """ + The Amazon Web Services Region where the resources are located. This + condition selects CIDRs from resources in the specified Region. + """ + resource_tag: RequestIpamResourceTag | None = ... + """ + A tag key-value pair to match against. This condition selects CIDRs from + resources that have the specified tag. + """ + cidr: str | None = ... + """ + A CIDR block to match against. This condition selects CIDRs that fall + within or match the specified CIDR range. + """ + +@dataclass(kw_only=True) +class IpamPrefixListResolverRuleRequest(_SerdeShape): + """ + Describes a CIDR selection rule to include in a request. This is used + when creating or modifying resolver rules. + + CIDR selection rules define the business logic for selecting CIDRs from + IPAM. If a CIDR matches any of the rules, it will be included. If a rule + has multiple conditions, the CIDR has to match every condition of that + rule. You can create a prefix list resolver without any CIDR selection + rules, but it will generate empty versions (containing no CIDRs) until + you add rules. + + There are three rule types. Only 2 of the 3 rule types support + conditions - **IPAM pool CIDR** and **Scope resource CIDR**. **Static + CIDR** rules cannot have conditions. + + - **Static CIDR**: A fixed list of CIDRs that do not change (like a + manual list replicated across Regions) + + - **IPAM pool CIDR**: CIDRs from specific IPAM pools (like all CIDRs + from your IPAM production pool) + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Conditions:** + + - **Property** + + - **IPAM pool ID**: Select an IPAM pool that contains the + resources + + - **CIDR** (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + + - **Scope resource CIDR**: CIDRs from Amazon Web Services resources like + VPCs, subnets, EIPs within an IPAM scope + + If you choose this option, choose the following: + + - **IPAM scope**: Select the IPAM scope to search for resources + + - **Resource type**: Select a resource, like a VPC or subnet. + + - **Conditions**: + + - **Property**: + + - Resource ID: The unique ID of a resource (like + vpc-1234567890abcdef0) + + - Resource owner (like 111122223333) + + - Resource region (like us-east-1) + + - Resource tag (like key: name, value: dev-vpc-1) + + - CIDR (like 10.24.34.0/23) + + - **Operation**: Equals/Not equals + + - **Value**: The value on which to match the condition + """ + + rule_type: str | None = ... + """ + The type of CIDR selection rule. Valid values include `include` for + selecting CIDRs that match the conditions, and `exclude` for excluding + CIDRs that match the conditions. + """ + static_cidr: str | None = ... + """ + A fixed list of CIDRs that do not change (like a manual list replicated + across Regions). + """ + ipam_scope_id: str | None = ... + """ + The ID of the IPAM scope from which to select CIDRs. This determines + whether to select from public or private IP address space. + """ + resource_type: str | None = ... + """For rules of type `ipam-resource-cidr`, this is the resource type.""" + conditions: list[IpamPrefixListResolverRuleConditionRequest] | None = ... + """ + The conditions that determine which CIDRs are selected by this rule. + Conditions specify criteria such as resource type, tags, account IDs, + and Regions. + """ + +class IpamPrefixListResolverRuleType(UnknownEnumMixin, StrEnum): + STATIC_CIDR = "static-cidr" + IPAM_RESOURCE_CIDR = "ipam-resource-cidr" + IPAM_POOL_CIDR = "ipam-pool-cidr" + +class IpamPrefixListResolverState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +@dataclass(kw_only=True) +class IpamPrefixListResolverTarget(_SerdeShape): + """ + Describes an IPAM prefix list resolver target. + + An IPAM prefix list resolver target is an association between a specific + customer-managed prefix list and an IPAM prefix list resolver. The + target enables the resolver to synchronize CIDRs selected by its rules + into the specified prefix list, which can then be referenced in Amazon + Web Services resources. + """ + + ipam_prefix_list_resolver_target_id: str | None = ... + """The ID of the IPAM prefix list resolver target.""" + ipam_prefix_list_resolver_target_arn: str | None = ... + """The Amazon Resource Name (ARN) of the IPAM prefix list resolver target.""" + ipam_prefix_list_resolver_id: str | None = ... + """The ID of the IPAM prefix list resolver associated with this target.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the IPAM prefix list + resolver target. + """ + prefix_list_id: str | None = ... + """The ID of the managed prefix list associated with this target.""" + prefix_list_region: str | None = ... + """ + The Amazon Web Services Region where the prefix list associated with + this target is located. + """ + desired_version: int | None = ... + """ + The desired version of the prefix list that this target should + synchronize with. + """ + last_synced_version: int | None = ... + """ + The version of the prefix list that was last successfully synchronized + by this target. + """ + track_latest_version: bool | None = ... + """ + Indicates whether this target automatically tracks the latest version of + the prefix list. + """ + state_message: str | None = ... + """ + A message describing the current state of the IPAM prefix list resolver + target, including any error information. + """ + state: str | None = ... + """ + The current state of the IPAM prefix list resolver target. Valid values + include `create-in-progress`, `create-complete`, `create-failed`, + `modify-in-progress`, `modify-complete`, `modify-failed`, + `delete-in-progress`, `delete-complete`, and `delete-failed`. + """ + tags: list[Tag] | None = ... + """The tags assigned to the IPAM prefix list resolver target.""" + +class IpamPrefixListResolverTargetState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + SYNC_IN_PROGRESS = "sync-in-progress" + SYNC_COMPLETE = "sync-complete" + SYNC_FAILED = "sync-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +@dataclass(kw_only=True) +class IpamPrefixListResolverVersion(_SerdeShape): + """ + Describes a version of an IPAM prefix list resolver. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + + **Version example:** + + **Initial State (Version 1)** + + Production environment: + + - vpc-prod-web (10.1.0.0/16) - tagged env=prod + + - vpc-prod-db (10.2.0.0/16) - tagged env=prod + + Resolver rule: Include all VPCs tagged env=prod + + **Version 1 CIDRs:** 10.1.0.0/16, 10.2.0.0/16 + + **Infrastructure Change (Version 2)** + + New VPC added: + + - vpc-prod-api (10.3.0.0/16) - tagged env=prod + + IPAM automatically detects the change and creates a new version. + + **Version 2 CIDRs:** 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16 + """ + + version: int | None = ... + """ + The version number of the IPAM prefix list resolver. + + Each version is a snapshot of what CIDRs matched your rules at that + moment in time. The version number increments every time the CIDR list + changes due to infrastructure changes. + """ + +class IpamPrefixListResolverVersionCreationStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + SUCCESS = "success" + FAILURE = "failure" + +@dataclass(kw_only=True) +class IpamPrefixListResolverVersionEntry(_SerdeShape): + """ + Describes a CIDR entry in a specific version of an IPAM prefix list + resolver. This represents a CIDR that was selected and synchronized at a + particular point in time. + """ + + cidr: str | None = ... + """ + The CIDR block that was selected and synchronized in this resolver + version. + """ + +class IpamPublicAddressAssociationStatus(UnknownEnumMixin, StrEnum): + ASSOCIATED = "associated" + DISASSOCIATED = "disassociated" + +class IpamPublicAddressAwsService(UnknownEnumMixin, StrEnum): + NAT_GATEWAY = "nat-gateway" + DMS = "database-migration-service" + REDSHIFT = "redshift" + ECS = "elastic-container-service" + RDS = "relational-database-service" + S2_S_VPN = "site-to-site-vpn" + EC2_LB = "load-balancer" + AGA = "global-accelerator" + CLOUDFRONT = "cloudfront" + OTHER = "other" + +@dataclass(kw_only=True) +class IpamPublicAddressSecurityGroup(_SerdeShape): + """The security group that the resource with the public IP address is in.""" + + group_name: str | None = ... + """The security group's name.""" + group_id: str | None = ... + """The security group's ID.""" + +@dataclass(kw_only=True) +class IpamPublicAddressTag(_SerdeShape): + """A tag for a public IP address discovered by IPAM.""" + + key: str | None = ... + """The tag's key.""" + value: str | None = ... + """The tag's value.""" + +@dataclass(kw_only=True) +class IpamPublicAddressTags(_SerdeShape): + """Tags for a public IP address discovered by IPAM.""" + + eip_tags: list[IpamPublicAddressTag] | None = ... + """Tags for an Elastic IP address.""" + +class IpamPublicAddressType(UnknownEnumMixin, StrEnum): + SERVICE_MANAGED_IP = "service-managed-ip" + SERVICE_MANAGED_BYOIP = "service-managed-byoip" + AMAZON_OWNED_EIP = "amazon-owned-eip" + AMAZON_OWNED_CONTIG = "amazon-owned-contig" + BYOIP = "byoip" + EC2_PUBLIC_IP = "ec2-public-ip" + ANYCAST_IP_LIST_IP = "anycast-ip-list-ip" + +@dataclass(kw_only=True) +class IpamResourceCidr(_SerdeShape): + """The CIDR for an IPAM resource.""" + + ipam_id: str | None = ... + """The IPAM ID for an IPAM resource.""" + ipam_scope_id: str | None = ... + """The scope ID for an IPAM resource.""" + ipam_pool_id: str | None = ... + """The pool ID for an IPAM resource.""" + resource_region: str | None = ... + """The Amazon Web Services Region for an IPAM resource.""" + resource_owner_id: str | None = ... + """The Amazon Web Services account number of the owner of an IPAM resource.""" + resource_id: str | None = ... + """The ID of an IPAM resource.""" + resource_name: str | None = ... + """The name of an IPAM resource.""" + resource_cidr: str | None = ... + """The CIDR for an IPAM resource.""" + resource_type: str | None = ... + """The type of IPAM resource.""" + resource_tags: list[IpamResourceTag] | None = ... + """The tags for an IPAM resource.""" + ip_usage: float | None = ... + """ + The percentage of IP address space in use. To convert the decimal to a + percentage, multiply the decimal by 100. Note the following: + + - For resources that are VPCs, this is the percentage of IP address + space in the VPC that's taken up by subnet CIDRs. + + - For resources that are subnets, if the subnet has an IPv4 CIDR + provisioned to it, this is the percentage of IPv4 address space in the + subnet that's in use. If the subnet has an IPv6 CIDR provisioned to + it, the percentage of IPv6 address space in use is not represented. + The percentage of IPv6 address space in use cannot currently be + calculated. + + - For resources that are public IPv4 pools, this is the percentage of IP + address space in the pool that's been allocated to Elastic IP + addresses (EIPs). + """ + compliance_status: str | None = ... + """ + The compliance status of the IPAM resource. For more information on + compliance statuses, see [Monitor CIDR usage by + resource](https://docs.aws.amazon.com/vpc/latest/ipam/monitor-cidr-compliance-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + management_state: str | None = ... + """ + The management state of the resource. For more information about + management states, see [Monitor CIDR usage by + resource](https://docs.aws.amazon.com/vpc/latest/ipam/monitor-cidr-compliance-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + overlap_status: str | None = ... + """ + The overlap status of an IPAM resource. The overlap status tells you if + the CIDR for a resource overlaps with another CIDR in the scope. For + more information on overlap statuses, see [Monitor CIDR usage by + resource](https://docs.aws.amazon.com/vpc/latest/ipam/monitor-cidr-compliance-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + vpc_id: str | None = ... + """The ID of a VPC.""" + availability_zone_id: str | None = ... + """The Availability Zone ID.""" + +class IpamResourceCidrIpSource(UnknownEnumMixin, StrEnum): + AMAZON = "amazon" + BYOIP = "byoip" + NONE = "none" + +@dataclass(kw_only=True) +class IpamResourceDiscovery(_SerdeShape): + """ + A resource discovery is an IPAM component that enables IPAM to manage + and monitor resources that belong to the owning account. + """ + + owner_id: str | None = ... + """The ID of the owner.""" + ipam_resource_discovery_id: str | None = ... + """The resource discovery ID.""" + ipam_resource_discovery_arn: str | None = ... + """The resource discovery Amazon Resource Name (ARN).""" + ipam_resource_discovery_region: str | None = ... + """The resource discovery Region.""" + description: str | None = ... + """The resource discovery description.""" + operating_regions: list[IpamOperatingRegion] | None = ... + """ + The operating Regions for the resource discovery. Operating Regions are + Amazon Web Services Regions where the IPAM is allowed to manage IP + address CIDRs. IPAM only discovers and monitors resources in the Amazon + Web Services Regions you select as operating Regions. + """ + is_default: bool | None = ... + """ + Defines if the resource discovery is the default. The default resource + discovery is the resource discovery automatically created when you + create an IPAM. + """ + state: str | None = ... + """ + The lifecycle state of the resource discovery. + + - `create-in-progress` - Resource discovery is being created. + + - `create-complete` - Resource discovery creation is complete. + + - `create-failed` - Resource discovery creation has failed. + + - `modify-in-progress` - Resource discovery is being modified. + + - `modify-complete` - Resource discovery modification is complete. + + - `modify-failed` - Resource discovery modification has failed. + + - `delete-in-progress` - Resource discovery is being deleted. + + - `delete-complete` - Resource discovery deletion is complete. + + - `delete-failed` - Resource discovery deletion has failed. + + - `isolate-in-progress` - Amazon Web Services account that created the + resource discovery has been removed and the resource discovery is + being isolated. + + - `isolate-complete` - Resource discovery isolation is complete. + + - `restore-in-progress` - Amazon Web Services account that created the + resource discovery and was isolated has been restored. + """ + tags: list[Tag] | None = ... + """ + A tag is a label that you assign to an Amazon Web Services resource. + Each tag consists of a key and an optional value. You can use tags to + search and filter your resources or track your Amazon Web Services + costs. + """ + organizational_unit_exclusions: list[IpamOrganizationalUnitExclusion] | None = ... + """ + If your IPAM is integrated with Amazon Web Services Organizations and + you add an organizational unit (OU) exclusion, IPAM will not manage the + IP addresses in accounts in that OU exclusion. + """ + +@dataclass(kw_only=True) +class IpamResourceDiscoveryAssociation(_SerdeShape): + """ + An IPAM resource discovery association. An associated resource discovery + is a resource discovery that has been associated with an IPAM. IPAM + aggregates the resource CIDRs discovered by the associated resource + discovery. + """ + + owner_id: str | None = ... + """The Amazon Web Services account ID of the resource discovery owner.""" + ipam_resource_discovery_association_id: str | None = ... + """The resource discovery association ID.""" + ipam_resource_discovery_association_arn: str | None = ... + """The resource discovery association Amazon Resource Name (ARN).""" + ipam_resource_discovery_id: str | None = ... + """The resource discovery ID.""" + ipam_id: str | None = ... + """The IPAM ID.""" + ipam_arn: str | None = ... + """The IPAM ARN.""" + ipam_region: str | None = ... + """The IPAM home Region.""" + is_default: bool | None = ... + """ + Defines if the resource discovery is the default. When you create an + IPAM, a default resource discovery is created for your IPAM and it's + associated with your IPAM. + """ + resource_discovery_status: str | None = ... + """ + The resource discovery status. + + - `active` - Connection or permissions required to read the results of + the resource discovery are intact. + + - `not-found` - Connection or permissions required to read the results + of the resource discovery are broken. This may happen if the owner of + the resource discovery stopped sharing it or deleted the resource + discovery. Verify the resource discovery still exists and the Amazon + Web Services RAM resource share is still intact. + """ + state: str | None = ... + """ + The lifecycle state of the association when you associate or + disassociate a resource discovery. + + - `associate-in-progress` - Resource discovery is being associated. + + - `associate-complete` - Resource discovery association is complete. + + - `associate-failed` - Resource discovery association has failed. + + - `disassociate-in-progress` - Resource discovery is being + disassociated. + + - `disassociate-complete` - Resource discovery disassociation is + complete. + + - `disassociate-failed ` - Resource discovery disassociation has failed. + + - `isolate-in-progress` - Amazon Web Services account that created the + resource discovery association has been removed and the resource + discovery association is being isolated. + + - `isolate-complete` - Resource discovery isolation is complete. + + - `restore-in-progress` - Resource discovery is being restored. + """ + tags: list[Tag] | None = ... + """ + A tag is a label that you assign to an Amazon Web Services resource. + Each tag consists of a key and an optional value. You can use tags to + search and filter your resources or track your Amazon Web Services + costs. + """ + +class IpamResourceDiscoveryAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATE_IN_PROGRESS = "associate-in-progress" + ASSOCIATE_COMPLETE = "associate-complete" + ASSOCIATE_FAILED = "associate-failed" + DISASSOCIATE_IN_PROGRESS = "disassociate-in-progress" + DISASSOCIATE_COMPLETE = "disassociate-complete" + DISASSOCIATE_FAILED = "disassociate-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +class IpamResourceDiscoveryState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +@dataclass(kw_only=True) +class IpamResourceTag(_SerdeShape): + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + + key: str | None = ... + """ + The key of a tag assigned to the resource. Use this filter to find all + resources assigned a tag with a specific key, regardless of the tag + value. + """ + value: str | None = ... + """The value of the tag.""" + +class IpamResourceType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + SUBNET = "subnet" + EIP = "eip" + PUBLIC_IPV4_POOL = "public-ipv4-pool" + IPV6_POOL = "ipv6-pool" + ENI = "eni" + ANYCAST_IP_LIST = "anycast-ip-list" + +@dataclass(kw_only=True) +class IpamRouteOriginAuthorization(_SerdeShape): + """ + Contains information about a Route Origin Authorization (ROA) published + in the RPKI. A ROA cryptographically attests that a specific ASN is + authorized to originate a specific IP address prefix. + """ + + asn: str | None = ... + """The Autonomous System Number (ASN) authorized by the ROA.""" + prefix: str | None = ... + """The IP address prefix authorized by the ROA in CIDR notation.""" + max_length: int | None = ... + """The maximum prefix length that the ASN is authorized to announce.""" + match: bool | None = ... + """Specifies whether the ROA matches the route announcement.""" + expiration: datetime | None = ... + """The expiration date of the ROA.""" + +@dataclass(kw_only=True) +class IpamRouteOriginAuthorizationInfo(_SerdeShape): + """ + Contains information about a Route Origin Authorization (ROA) currently + published in the RPKI. + """ + + cidr: str | None = ... + """The IP address prefix in CIDR notation authorized by the ROA.""" + asn: str | None = ... + """The Autonomous System Number (ASN) authorized to originate the prefix.""" + max_length: int | None = ... + """The maximum prefix length that the ASN is authorized to announce.""" + +@dataclass(kw_only=True) +class IpamRouteOverlap(_SerdeShape): + """ + Contains information about an overlapping route detected for a BYOIP + prefix. + """ + + prefix: str | None = ... + """The overlapping IP address prefix in CIDR notation.""" + asn: str | None = ... + """The ASN originating the overlapping route.""" + detected_at: datetime | None = ... + """The time when the overlap was detected.""" + +@dataclass(kw_only=True) +class IpamRouteProtectionFinding(_SerdeShape): + """ + Contains information about a route protection finding, including the + RPKI validation status of a BYOIP route announcement. + """ + + resource_owner_id: str | None = ... + """The ID of the resource owner.""" + resource_region: str | None = ... + """The Amazon Web Services Region of the resource.""" + ipam_pool_id: str | None = ... + """The ID of the IPAM pool associated with the finding.""" + cidr: str | None = ... + """The IP address prefix in CIDR notation.""" + state: str | None = ... + """ + The state of the BYOIP CIDR. Possible values: + + - `advertised` - The CIDR is being advertised. + + - `deprovisioned` - The CIDR has been deprovisioned. + + - `failed-deprovision` - Deprovisioning failed. + + - `failed-provision` - Provisioning failed. + + - `pending-deprovision` - Deprovisioning is in progress. + + - `pending-provision` - Provisioning is in progress. + + - `provisioned` - The CIDR is provisioned. + + - `provisioned-not-publicly-advertisable` - The CIDR is provisioned but + not publicly advertisable. + """ + advertisement_type: str | None = ... + """ + The advertisement type. Possible values: + + - `regional` - The IP address is advertised from a single location + (regional services such as Amazon EC2). + + - `global` - The IP address is advertised from multiple global locations + simultaneously (global services such as Amazon CloudFront). + """ + network_border_group: str | None = ... + """The network border group.""" + pool_id: str | None = ... + """The ID of the BYOIP pool.""" + asn: str | None = ... + """The Autonomous System Number (ASN) that originates the route.""" + rpki_status: str | None = ... + """ + The RPKI validation status of the route. Possible values: + + - `valid` - The route has a matching ROA that covers the prefix and + origin ASN. + + - `invalid` - The route has a ROA for the prefix, but the origin ASN or + prefix length does not match. + + - `unknown` - No ROA exists for the prefix, so RPKI validation cannot be + performed. + """ + rpki_strength: str | None = ... + """ + The RPKI enforcement strength for the route. Possible values: + + - `strict` - Invalid routes are rejected. + + - `permissive` - Invalid routes are accepted but flagged. + """ + roas: list[IpamRouteOriginAuthorization] | None = ... + """The Route Origin Authorizations (ROAs) that cover the prefix.""" + route_overlaps: list[IpamRouteOverlap] | None = ... + """The overlapping routes detected for this prefix.""" + sample_time: datetime | None = ... + """The time when the route was last sampled.""" + roa_sample_time: datetime | None = ... + """The time when the ROA data was last sampled.""" + +@dataclass(kw_only=True) +class IpamRoutingPolicyRegistration(_SerdeShape): + """ + Contains information about a routing policy registration that represents + a Route Origin Authorization (ROA) managed through IPAM. + """ + + cidr: str | None = ... + """The IP address prefix in CIDR notation authorized by the ROA.""" + asns: list[str] | None = ... + """The Autonomous System Numbers (ASNs) authorized to originate the prefix.""" + permit_more_specific_announcements: bool | None = ... + """ + Specifies whether to permit more specific route announcements than the + CIDR prefix. When enabled, ASNs can announce sub-prefixes of the + authorized CIDR up to the specified maximum length. Default: `false`. + """ + max_length: int | None = ... + """The maximum prefix length that the ASNs are authorized to announce.""" + description: str | None = ... + """The description of the routing policy registration.""" + latest_delta_id: str | None = ... + """The ID of the most recent delta that modified this registration.""" + state: str | None = ... + """ + The state of the routing policy registration. Valid values: + `pending-activate` | `activate-failed` | `create-in-progress` | + `create-complete` | `update-in-progress` | `update-complete` | + `delete-in-progress` | `delete-complete`. + """ + +@dataclass(kw_only=True) +class IpamRoutingPolicyRegistrationDelta(_SerdeShape): + """ + Contains information about a routing policy registration change, + including the changes applied and their publication state. + """ + + delta_id: str | None = ... + """The unique identifier of the delta.""" + delta_json: str | None = ... + """The JSON specification describing the changes applied in this delta.""" + state: str | None = ... + """ + The state of the delta. Valid values: `pending` | `published` | + `failed`. + """ + state_message: str | None = ... + """ + A message describing the current state, including error information if + the delta failed. + """ + +class IpamRoutingPolicyRegistrationDeltaState(UnknownEnumMixin, StrEnum): + """The state of a routing policy registration delta.""" + + PENDING = "pending" + PUBLISHED = "published" + FAILED = "failed" + +class IpamRoutingPolicyRegistrationState(UnknownEnumMixin, StrEnum): + """The state of a routing policy registration.""" + + PENDING_ACTIVATE = "pending-activate" + ACTIVATE_FAILED = "activate-failed" + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + UPDATE_IN_PROGRESS = "update-in-progress" + UPDATE_COMPLETE = "update-complete" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + +class IpamRpkiStatus(UnknownEnumMixin, StrEnum): + """The RPKI validation status of a BGP route.""" + + VALID = "valid" + INVALID = "invalid" + UNKNOWN = "unknown" + +class IpamRpkiStrength(UnknownEnumMixin, StrEnum): + """The RPKI enforcement strength for route protection.""" + + STRICT = "strict" + PERMISSIVE = "permissive" + +@dataclass(kw_only=True) +class IpamScope(_SerdeShape): + """ + In IPAM, a scope is the highest-level container within IPAM. An IPAM + contains two default scopes. Each scope represents the IP space for a + single network. The private scope is intended for all private IP address + space. The public scope is intended for all public IP address space. + Scopes enable you to reuse IP addresses across multiple unconnected + networks without causing IP address overlap or conflict. + + For more information, see [How IPAM + works](https://docs.aws.amazon.com/vpc/latest/ipam/how-it-works-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + + owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the scope.""" + ipam_scope_id: str | None = ... + """The ID of the scope.""" + ipam_scope_arn: str | None = ... + """The Amazon Resource Name (ARN) of the scope.""" + ipam_arn: str | None = ... + """The ARN of the IPAM.""" + ipam_region: str | None = ... + """The Amazon Web Services Region of the IPAM scope.""" + ipam_scope_type: str | None = ... + """The type of the scope.""" + is_default: bool | None = ... + """Defines if the scope is the default scope or not.""" + description: str | None = ... + """The description of the scope.""" + pool_count: int | None = ... + """The number of pools in the scope.""" + state: str | None = ... + """The state of the IPAM scope.""" + tags: list[Tag] | None = ... + """ + The key/value combination of a tag assigned to the resource. Use the tag + key in the filter name and the tag value as the filter value. For + example, to find all resources that have a tag with the key `Owner` and + the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` + for the filter value. + """ + external_authority_configuration: ( + IpamScopeExternalAuthorityConfiguration | None + ) = ... + """ + The external authority configuration for this IPAM scope, if configured. + + The configuration that links an Amazon VPC IPAM scope to an external + authority system. It specifies the type of external system and the + external resource identifier that identifies your account or instance in + that system. + + In IPAM, an external authority is a third-party IP address management + system that provides CIDR blocks when you provision address space for + top-level IPAM pools. This allows you to use your existing IP management + system to control which address ranges are allocated to Amazon Web + Services while using Amazon VPC IPAM to manage subnets within those + ranges. + """ + +@dataclass(kw_only=True) +class IpamScopeExternalAuthorityConfiguration(_SerdeShape): + """ + The configuration that links an Amazon VPC IPAM scope to an external + authority system. It specifies the type of external system and the + external resource identifier that identifies your account or instance in + that system. + + In IPAM, an external authority is a third-party IP address management + system that provides CIDR blocks when you provision address space for + top-level IPAM pools. This allows you to use your existing IP management + system to control which address ranges are allocated to Amazon Web + Services while using Amazon VPC IPAM to manage subnets within those + ranges. + """ + + type: str | None = ... + """ + The type of external authority managing this scope. Currently supports + `Infoblox` for integration with Infoblox Universal DDI. + """ + external_resource_identifier: str | None = ... + """ + The identifier for the external resource managing this scope. For + Infoblox integrations, this is the Infoblox resource identifier in the + format + ``{=html}`.identity.account.```{=html}`.```{=html}. + """ + +class IpamScopeExternalAuthorityType(UnknownEnumMixin, StrEnum): + INFOBLOX = "infoblox" + +class IpamScopeState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +class IpamScopeType(UnknownEnumMixin, StrEnum): + PUBLIC = "public" + PRIVATE = "private" + +class IpamState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + ISOLATE_IN_PROGRESS = "isolate-in-progress" + ISOLATE_COMPLETE = "isolate-complete" + RESTORE_IN_PROGRESS = "restore-in-progress" + +class IpamTier(UnknownEnumMixin, StrEnum): + FREE = "free" + ADVANCED = "advanced" + +@dataclass(kw_only=True) +class IpPermission(_SerdeShape): + """Describes the permissions for a security group rule.""" + + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`, `icmpv6`) or number (see + [Protocol + Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + + Use `-1` to specify all protocols. When authorizing security group + rules, specifying `-1` or a protocol number other than `tcp`, `udp`, + `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port + range you specify. For `tcp`, `udp`, and `icmp`, you must specify a port + range. For `icmpv6`, the port range is optional; if you omit the port + range, traffic for all types and codes is allowed. + """ + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP + types). + """ + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP + codes). If the start port is -1 (all ICMP types), then the end port must + be -1 (all ICMP codes). + """ + user_id_group_pairs: list[UserIdGroupPair] | None = ... + """The security group and Amazon Web Services account ID pairs.""" + ip_ranges: list[IpRange] | None = ... + """The IPv4 address ranges.""" + ipv6_ranges: list[Ipv6Range] | None = ... + """The IPv6 address ranges.""" + prefix_list_ids: list[PrefixListId] | None = ... + """The prefix list IDs.""" + +@dataclass(kw_only=True) +class IpRange(_SerdeShape): + """Describes an IPv4 address range.""" + + description: str | None = ... + """ + A description for the security group rule that references this IPv4 + address range. + + Constraints: Up to 255 characters in length. Allowed characters are a-z, + A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* + """ + cidr_ip: str | None = ... + """ + The IPv4 address range. You can either specify a CIDR block or a source + security group, not both. To specify a single IPv4 address, use the /32 + prefix length. + + Note: + Amazon Web Services + [canonicalizes](https://en.wikipedia.org/wiki/Canonicalization) IPv4 and + IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR + block, Amazon Web Services canonicalizes the CIDR block to + 100.68.0.0/18. Any subsequent DescribeSecurityGroups and + DescribeSecurityGroupRules calls will return the canonicalized form of + the CIDR block. Additionally, if you attempt to add another rule with + the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is + already a rule for the canonicalized form of the CIDR block (such as + 100.68.0.0/18), the API throws an duplicate rule error. + """ + +class IpScopeEnum(UnknownEnumMixin, StrEnum): + PRIVATE = "private" + +class IpSource(UnknownEnumMixin, StrEnum): + AMAZON = "amazon" + BYOIP = "byoip" + NONE = "none" + +@dataclass(kw_only=True) +class Ipv4PrefixSpecification(_SerdeShape): + """Describes an IPv4 prefix.""" + + ipv4_prefix: str | None = ... + """ + The IPv4 prefix. For information, see [Assigning prefixes to network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class Ipv4PrefixSpecificationRequest(_SerdeShape): + """Describes the IPv4 prefix option for a network interface.""" + + ipv4_prefix: str | None = ... + """ + The IPv4 prefix. For information, see [Assigning prefixes to network + interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class Ipv4PrefixSpecificationResponse(_SerdeShape): + """ + Information about the IPv4 delegated prefixes assigned to a network + interface. + """ + + ipv4_prefix: str | None = ... + """The IPv4 delegated prefixes assigned to the network interface.""" + +class Ipv6AddressAttribute(UnknownEnumMixin, StrEnum): + PUBLIC = "public" + PRIVATE = "private" + +@dataclass(kw_only=True) +class Ipv6CidrAssociation(_SerdeShape): + """Describes an IPv6 CIDR block association.""" + + ipv6_cidr: str | None = ... + """The IPv6 CIDR block.""" + associated_resource: str | None = ... + """The resource that's associated with the IPv6 CIDR block.""" + +@dataclass(kw_only=True) +class Ipv6CidrBlock(_SerdeShape): + """Describes an IPv6 CIDR block.""" + + ipv6_cidr_block: str | None = ... + """The IPv6 CIDR block.""" + +@dataclass(kw_only=True) +class Ipv6Pool(_SerdeShape): + """Describes an IPv6 address pool.""" + + pool_id: str | None = ... + """The ID of the address pool.""" + description: str | None = ... + """The description for the address pool.""" + pool_cidr_blocks: list[PoolCidrBlock] | None = ... + """The CIDR blocks for the address pool.""" + tags: list[Tag] | None = ... + """Any tags for the address pool.""" + +@dataclass(kw_only=True) +class Ipv6PrefixSpecification(_SerdeShape): + """Describes the IPv6 prefix.""" + + ipv6_prefix: str | None = ... + """The IPv6 prefix.""" + +@dataclass(kw_only=True) +class Ipv6PrefixSpecificationRequest(_SerdeShape): + """Describes the IPv6 prefix option for a network interface.""" + + ipv6_prefix: str | None = ... + """The IPv6 prefix.""" + +@dataclass(kw_only=True) +class Ipv6PrefixSpecificationResponse(_SerdeShape): + """ + Information about the IPv6 delegated prefixes assigned to a network + interface. + """ + + ipv6_prefix: str | None = ... + """The IPv6 delegated prefixes assigned to the network interface.""" + +@dataclass(kw_only=True) +class Ipv6Range(_SerdeShape): + """Describes an IPv6 address range.""" + + description: str | None = ... + """ + A description for the security group rule that references this IPv6 + address range. + + Constraints: Up to 255 characters in length. Allowed characters are a-z, + A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* + """ + cidr_ipv6: str | None = ... + """ + The IPv6 address range. You can either specify a CIDR block or a source + security group, not both. To specify a single IPv6 address, use the /128 + prefix length. + + Note: + Amazon Web Services + [canonicalizes](https://en.wikipedia.org/wiki/Canonicalization) IPv4 and + IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR + block, Amazon Web Services canonicalizes the CIDR block to + 100.68.0.0/18. Any subsequent DescribeSecurityGroups and + DescribeSecurityGroupRules calls will return the canonicalized form of + the CIDR block. Additionally, if you attempt to add another rule with + the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is + already a rule for the canonicalized form of the CIDR block (such as + 100.68.0.0/18), the API throws an duplicate rule error. + """ + +class Ipv6SupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class IpVersionEnum(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + +class KeyFormat(UnknownEnumMixin, StrEnum): + PEM = "pem" + PPK = "ppk" + +@dataclass(kw_only=True) +class KeyPairInfo(_SerdeShape): + """Describes a key pair.""" + + key_pair_id: str | None = ... + """The ID of the key pair.""" + key_type: str | None = ... + """The type of key pair.""" + tags: list[Tag] | None = ... + """Any tags applied to the key pair.""" + public_key: str | None = ... + """The public key material.""" + create_time: datetime | None = ... + """ + If you used Amazon EC2 to create the key pair, this is the date and time + when the key was created, in [ISO 8601 date-time + format](https://www.iso.org/iso-8601-date-and-time-format.html), in the + UTC time zone. + + If you imported an existing key pair to Amazon EC2, this is the date and + time the key was imported, in [ISO 8601 date-time + format](https://www.iso.org/iso-8601-date-and-time-format.html), in the + UTC time zone. + """ + key_name: str | None = ... + """The name of the key pair.""" + key_fingerprint: str | None = ... + """ + If you used CreateKeyPair to create the key pair: + + - For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER + encoded private key. + + - For ED25519 key pairs, the key fingerprint is the base64-encoded + SHA-256 digest, which is the default for OpenSSH, starting with + [OpenSSH 6.8](http://www.openssh.com/txt/release-6.8). + + If you used ImportKeyPair to provide Amazon Web Services the public key: + + - For RSA key pairs, the key fingerprint is the MD5 public key + fingerprint as specified in section 4 of RFC4716. + + - For ED25519 key pairs, the key fingerprint is the base64-encoded + SHA-256 digest, which is the default for OpenSSH, starting with + [OpenSSH 6.8](http://www.openssh.com/txt/release-6.8). + """ + +class KeyType(UnknownEnumMixin, StrEnum): + RSA = "rsa" + ED25519 = "ed25519" + +@dataclass(kw_only=True) +class LastError(_SerdeShape): + """The last error that occurred for a VPC endpoint.""" + + message: str | None = ... + """The error message for the VPC endpoint error.""" + code: str | None = ... + """The error code for the VPC endpoint error.""" + +@dataclass(kw_only=True) +class LaunchPermission(_SerdeShape): + """Describes a launch permission.""" + + organization_arn: str | None = ... + """The Amazon Resource Name (ARN) of an organization.""" + organizational_unit_arn: str | None = ... + """The Amazon Resource Name (ARN) of an organizational unit (OU).""" + user_id: str | None = ... + """ + The Amazon Web Services account ID. + + Constraints: Up to 10 000 account IDs can be specified in a single + request. + """ + group: str | None = ... + """The name of the group.""" + +@dataclass(kw_only=True) +class LaunchPermissionModifications(_SerdeShape): + """Describes a launch permission modification.""" + + add: list[LaunchPermission] | None = ... + """ + The Amazon Web Services account ID, organization ARN, or OU ARN to add + to the list of launch permissions for the AMI. + """ + remove: list[LaunchPermission] | None = ... + """ + The Amazon Web Services account ID, organization ARN, or OU ARN to + remove from the list of launch permissions for the AMI. + """ + +@dataclass(kw_only=True) +class LaunchSpecification(_SerdeShape): + """Describes the launch specification for an instance.""" + + user_data: str | None = ... + """ + The base64-encoded user data that instances use when starting up. User + data is limited to 16 KB. + """ + addressing_type: str | None = ... + """Deprecated.""" + block_device_mappings: list[BlockDeviceMapping] | None = ... + """The block device mapping entries.""" + ebs_optimized: bool | None = ... + """ + Indicates whether the instance is optimized for EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal EBS I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS Optimized instance. + + Default: `false` + """ + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + image_id: str | None = ... + """The ID of the AMI.""" + instance_type: str | None = ... + """The instance type. Only one instance type can be specified.""" + kernel_id: str | None = ... + """The ID of the kernel.""" + key_name: str | None = ... + """The name of the key pair.""" + network_interfaces: list[InstanceNetworkInterfaceSpecification] | None = ... + """ + The network interfaces. If you specify a network interface, you must + specify subnet IDs and security group IDs using the network interface. + """ + placement: SpotPlacement | None = ... + """The placement information for the instance.""" + ramdisk_id: str | None = ... + """The ID of the RAM disk.""" + subnet_id: str | None = ... + """The ID of the subnet in which to launch the instance.""" + security_groups: list[GroupIdentifier] | None = ... + """The IDs of the security groups.""" + monitoring: RunInstancesMonitoringEnabled | None = ... + """Describes the monitoring of an instance.""" + +@dataclass(kw_only=True) +class LaunchTemplate(_SerdeShape): + """Describes a launch template.""" + + launch_template_id: str | None = ... + """The ID of the launch template.""" + launch_template_name: str | None = ... + """The name of the launch template.""" + create_time: datetime | None = ... + """The time launch template was created.""" + created_by: str | None = ... + """The principal that created the launch template.""" + default_version_number: int | None = ... + """The version number of the default version of the launch template.""" + latest_version_number: int | None = ... + """The version number of the latest version of the launch template.""" + tags: list[Tag] | None = ... + """The tags for the launch template.""" + operator: OperatorResponse | None = ... + """The entity that manages the launch template.""" + +@dataclass(kw_only=True) +class LaunchTemplateAndOverridesResponse(_SerdeShape): + """Describes a launch template and overrides.""" + + launch_template_specification: FleetLaunchTemplateSpecification | None = ... + """The launch template.""" + overrides: FleetLaunchTemplateOverrides | None = ... + """ + Any parameters that you specify override the same parameters in the + launch template. + """ + +class LaunchTemplateAutoRecoveryState(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class LaunchTemplateBlockDeviceMapping(_SerdeShape): + """Describes a block device mapping.""" + + device_name: str | None = ... + """The device name.""" + virtual_name: str | None = ... + """The virtual device name (ephemeralN).""" + ebs: LaunchTemplateEbsBlockDevice | None = ... + """Information about the block device for an EBS volume.""" + no_device: str | None = ... + """ + To omit the device from the block device mapping, specify an empty + string. + """ + +@dataclass(kw_only=True) +class LaunchTemplateBlockDeviceMappingRequest(_SerdeShape): + """Describes a block device mapping.""" + + device_name: str | None = ... + """The device name (for example, /dev/sdh or xvdh).""" + virtual_name: str | None = ... + """ + The virtual device name (ephemeralN). Instance store volumes are + numbered starting from 0. An instance type with 2 available instance + store volumes can specify mappings for ephemeral0 and ephemeral1. The + number of available instance store volumes depends on the instance type. + After you connect to the instance, you must mount the volume. + """ + ebs: LaunchTemplateEbsBlockDeviceRequest | None = ... + """ + Parameters used to automatically set up EBS volumes when the instance is + launched. + """ + no_device: str | None = ... + """ + To omit the device from the block device mapping, specify an empty + string. + """ + +@dataclass(kw_only=True) +class LaunchTemplateCapacityReservationSpecificationRequest(_SerdeShape): + """ + Describes an instance's Capacity Reservation targeting option. You can + specify only one option at a time. Use the + `CapacityReservationPreference` parameter to configure the instance to + run in On-Demand capacity or to run in any `open` Capacity Reservation + that has matching attributes (instance type, platform, Availability + Zone). Use the `CapacityReservationTarget` parameter to explicitly + target a specific Capacity Reservation or a Capacity Reservation group. + """ + + capacity_reservation_preference: str | None = ... + """ + Indicates the instance's Capacity Reservation preferences. Possible + preferences include: + + - `capacity-reservations-only` - The instance will only run in a + Capacity Reservation or Capacity Reservation group. If capacity isn't + available, the instance will fail to launch. + + - `open` - The instance can run in any `open` Capacity Reservation that + has matching attributes (instance type, platform, Availability Zone, + tenancy). + + - `none` - The instance avoids running in a Capacity Reservation even if + one is available. The instance runs in On-Demand capacity. + """ + capacity_reservation_target: CapacityReservationTarget | None = ... + """ + Information about the target Capacity Reservation or Capacity + Reservation group. + """ + +@dataclass(kw_only=True) +class LaunchTemplateCapacityReservationSpecificationResponse(_SerdeShape): + """Information about the Capacity Reservation targeting option.""" + + capacity_reservation_preference: str | None = ... + """ + Indicates the instance's Capacity Reservation preferences. Possible + preferences include: + + - `open` - The instance can run in any `open` Capacity Reservation that + has matching attributes (instance type, platform, Availability Zone). + + - `none` - The instance avoids running in a Capacity Reservation even if + one is available. The instance runs in On-Demand capacity. + """ + capacity_reservation_target: CapacityReservationTargetResponse | None = ... + """ + Information about the target Capacity Reservation or Capacity + Reservation group. + """ + +@dataclass(kw_only=True) +class LaunchTemplateConfig(_SerdeShape): + """Describes a launch template and overrides.""" + + launch_template_specification: FleetLaunchTemplateSpecification | None = ... + """ + The launch template to use. Make sure that the launch template does not + contain the `NetworkInterfaceId` parameter because you can't specify a + network interface ID in a Spot Fleet. + """ + overrides: list[LaunchTemplateOverrides] | None = ... + """ + Any parameters that you specify override the same parameters in the + launch template. + """ + +@dataclass(kw_only=True) +class LaunchTemplateCpuOptions(_SerdeShape): + """The CPU options for the instance.""" + + core_count: int | None = ... + """The number of CPU cores for the instance.""" + threads_per_core: int | None = ... + """The number of threads per CPU core.""" + amd_sev_snp: str | None = ... + """ + Indicates whether the instance is enabled for AMD SEV-SNP. For more + information, see [AMD SEV-SNP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). + """ + nested_virtualization: str | None = ... + """Indicates whether the instance is enabled for nested virtualization.""" + +@dataclass(kw_only=True) +class LaunchTemplateCpuOptionsRequest(_SerdeShape): + """ + The CPU options for the instance. Both the core count and threads per + core must be specified in the request. + """ + + core_count: int | None = ... + """The number of CPU cores for the instance.""" + threads_per_core: int | None = ... + """ + The number of threads per CPU core. To disable multithreading for the + instance, specify a value of `1`. Otherwise, specify the default value + of `2`. + """ + amd_sev_snp: str | None = ... + """ + Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is + supported with M6a, R6a, and C6a instance types only. For more + information, see [AMD SEV-SNP for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). + """ + nested_virtualization: str | None = ... + """ + Indicates whether to enable the instance for nested virtualization. + Nested virtualization is supported only on 8th generation Intel-based + instance types (c8i, m8i, r8i, and their flex variants). When nested + virtualization is enabled, Virtual Secure Mode (VSM) is automatically + disabled for the instance. + """ + +@dataclass(kw_only=True) +class LaunchTemplateEbsBlockDevice(_SerdeShape): + """Describes a block device for an EBS volume.""" + + encrypted: bool | None = ... + """Indicates whether the EBS volume is encrypted.""" + delete_on_termination: bool | None = ... + """Indicates whether the EBS volume is deleted on instance termination.""" + iops: int | None = ... + """The number of I/O operations per second (IOPS) that the volume supports.""" + kms_key_id: str | None = ... + """ + Identifier (key ID, key alias, key ARN, or alias ARN) of the customer + managed KMS key to use for EBS encryption. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """The size of the volume, in GiB.""" + volume_type: str | None = ... + """The volume type.""" + throughput: int | None = ... + """The throughput that the volume supports, in MiB/s.""" + volume_initialization_rate: int | None = ... + """ + The Amazon EBS Provisioned Rate for Volume Initialization (volume + initialization rate) specified for the volume, in MiB/s. If no volume + initialization rate was specified, the value is `null`. + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + +@dataclass(kw_only=True) +class LaunchTemplateEbsBlockDeviceRequest(_SerdeShape): + """The parameters for a block device for an EBS volume.""" + + encrypted: bool | None = ... + """ + Indicates whether the EBS volume is encrypted. Encrypted volumes can + only be attached to instances that support Amazon EBS encryption. If you + are creating a volume from a snapshot, you can't specify an encryption + value. + """ + delete_on_termination: bool | None = ... + """Indicates whether the EBS volume is deleted on instance termination.""" + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + + The following are the supported values for each volume type: + + - `gp3`: 3,000 - 80,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + For `io2` volumes, you can achieve up to 256,000 IOPS on [instances + built on the Nitro + System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). + On other instances, you can achieve performance up to 32,000 IOPS. + + This parameter is supported for `io1`, `io2`, and `gp3` volumes only. + """ + kms_key_id: str | None = ... + """ + Identifier (key ID, key alias, key ARN, or alias ARN) of the customer + managed KMS key to use for EBS encryption. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """ + The size of the volume, in GiBs. You must specify either a snapshot ID + or a volume size. The following are the supported volumes sizes for each + volume type: + + - `gp2`: 1 - 16,384 GiB + + - `gp3`: 1 - 65,536 GiB + + - `io1`: 4 - 16,384 GiB + + - `io2`: 4 - 65,536 GiB + + - `st1` and `sc1`: 125 - 16,384 GiB + + - `standard`: 1 - 1024 GiB + """ + volume_type: str | None = ... + """ + The volume type. For more information, see [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + """ + throughput: int | None = ... + """ + The throughput to provision for a `gp3` volume, with a maximum of 2,000 + MiB/s. + + Valid Range: Minimum value of 125. Maximum value of 2,000. + """ + volume_initialization_rate: int | None = ... + """ + Specifies the Amazon EBS Provisioned Rate for Volume Initialization + (volume initialization rate), in MiB/s, at which to download the + snapshot blocks from Amazon S3 to the volume. This is also known as + *volume initialization*. Specifying a volume initialization rate ensures + that the volume is initialized at a predictable and consistent rate + after creation. + + This parameter is supported only for volumes created from snapshots. + Omit this parameter if: + + - You want to create the volume using fast snapshot restore. You must + specify a snapshot that is enabled for fast snapshot restore. In this + case, the volume is fully initialized at creation. + + Note: + If you specify a snapshot that is enabled for fast snapshot restore + and a volume initialization rate, the volume will be initialized at + the specified rate instead of fast snapshot restore. + + - You want to create a volume that is initialized at the default rate. + + For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EC2 User Guide*. + + Valid range: 100 - 300 MiB/s + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + +@dataclass(kw_only=True) +class LaunchTemplateElasticInferenceAccelerator(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes an elastic inference accelerator. + """ + + type: str | None = ... + """ + The type of elastic inference accelerator. The possible values are + eia1.medium, eia1.large, and eia1.xlarge. + """ + count: int | None = ... + """The number of elastic inference accelerators to attach to the instance.""" + +@dataclass(kw_only=True) +class LaunchTemplateElasticInferenceAcceleratorResponse(_SerdeShape): + """ + Note: + Amazon Elastic Inference is no longer available. + + Describes an elastic inference accelerator. + """ + + type: str | None = ... + """ + The type of elastic inference accelerator. The possible values are + eia1.medium, eia1.large, and eia1.xlarge. + """ + count: int | None = ... + """The number of elastic inference accelerators to attach to the instance.""" + +@dataclass(kw_only=True) +class LaunchTemplateEnaSrdSpecification(_SerdeShape): + """ + ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) + technology to increase the maximum bandwidth used per stream and + minimize tail latency of network traffic between EC2 instances. With ENA + Express, you can communicate between two EC2 instances in the same + subnet within the same account, or in different accounts. Both sending + and receiving instances must have ENA Express enabled. + + To improve the reliability of network packet delivery, ENA Express + reorders network packets on the receiving end by default. However, some + UDP-based applications are designed to handle network packets that are + out of order to reduce the overhead for packet delivery at the network + layer. When ENA Express is enabled, you can specify whether UDP network + traffic uses it. + """ + + ena_srd_enabled: bool | None = ... + """Indicates whether ENA Express is enabled for the network interface.""" + ena_srd_udp_specification: LaunchTemplateEnaSrdUdpSpecification | None = ... + """Configures ENA Express for UDP network traffic.""" + +@dataclass(kw_only=True) +class LaunchTemplateEnaSrdUdpSpecification(_SerdeShape): + """ + ENA Express is compatible with both TCP and UDP transport protocols. + When it's enabled, TCP traffic automatically uses it. However, some + UDP-based applications are designed to handle network packets that are + out of order, without a need for retransmission, such as live video + broadcasting or other near-real-time applications. For UDP traffic, you + can specify whether to use ENA Express, based on your application + environment needs. + """ + + ena_srd_udp_enabled: bool | None = ... + """ + Indicates whether UDP traffic to and from the instance uses ENA Express. + To specify this setting, you must first enable ENA Express. + """ + +@dataclass(kw_only=True) +class LaunchTemplateEnclaveOptions(_SerdeShape): + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. + """ + + enabled: bool | None = ... + """ + If this parameter is set to `true`, the instance is enabled for Amazon + Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web + Services Nitro Enclaves. + """ + +@dataclass(kw_only=True) +class LaunchTemplateEnclaveOptionsRequest(_SerdeShape): + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. For more information, see [What is Nitro + Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) + in the *Amazon Web Services Nitro Enclaves User Guide*. + """ + + enabled: bool | None = ... + """ + To enable the instance for Amazon Web Services Nitro Enclaves, set this + parameter to `true`. + """ + +class LaunchTemplateErrorCode(UnknownEnumMixin, StrEnum): + LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST = "launchTemplateIdDoesNotExist" + LAUNCH_TEMPLATE_ID_MALFORMED = "launchTemplateIdMalformed" + LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST = "launchTemplateNameDoesNotExist" + LAUNCH_TEMPLATE_NAME_MALFORMED = "launchTemplateNameMalformed" + LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST = "launchTemplateVersionDoesNotExist" + UNEXPECTED_ERROR = "unexpectedError" + +@dataclass(kw_only=True) +class LaunchTemplateHibernationOptions(_SerdeShape): + """Indicates whether an instance is configured for hibernation.""" + + configured: bool | None = ... + """ + If this parameter is set to `true`, the instance is enabled for + hibernation; otherwise, it is not enabled for hibernation. + """ + +@dataclass(kw_only=True) +class LaunchTemplateHibernationOptionsRequest(_SerdeShape): + """ + Indicates whether the instance is configured for hibernation. This + parameter is valid only if the instance meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + """ + + configured: bool | None = ... + """ + If you set this parameter to `true`, the instance is enabled for + hibernation. + + Default: `false` + """ + +class LaunchTemplateHttpTokensState(UnknownEnumMixin, StrEnum): + OPTIONAL = "optional" + REQUIRED = "required" + +@dataclass(kw_only=True) +class LaunchTemplateIamInstanceProfileSpecification(_SerdeShape): + """Describes an IAM instance profile.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the instance profile.""" + name: str | None = ... + """The name of the instance profile.""" + +@dataclass(kw_only=True) +class LaunchTemplateIamInstanceProfileSpecificationRequest(_SerdeShape): + """An IAM instance profile.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the instance profile.""" + name: str | None = ... + """The name of the instance profile.""" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMaintenanceOptions(_SerdeShape): + """The maintenance options of your instance.""" + + auto_recovery: str | None = ... + """ + Disables the automatic recovery behavior of your instance or sets it to + default. + """ + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMaintenanceOptionsRequest(_SerdeShape): + """The maintenance options of your instance.""" + + auto_recovery: str | None = ... + """ + Disables the automatic recovery behavior of your instance or sets it to + default. For more information, see [Simplified automatic + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#instance-configuration-recovery). + """ + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMarketOptions(_SerdeShape): + """The market (purchasing) option for the instances.""" + + market_type: str | None = ... + """The market type.""" + spot_options: LaunchTemplateSpotMarketOptions | None = ... + """The options for Spot Instances.""" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMarketOptionsRequest(_SerdeShape): + """The market (purchasing) option for the instances.""" + + market_type: str | None = ... + """The market type.""" + spot_options: LaunchTemplateSpotMarketOptionsRequest | None = ... + """The options for Spot Instances.""" + +class LaunchTemplateInstanceMetadataEndpointState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMetadataOptions(_SerdeShape): + """ + The metadata options for the instance. For more information, see [Use + instance metadata to manage your EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + in the *Amazon EC2 User Guide*. + """ + + state: str | None = ... + """ + The state of the metadata option changes. + + `pending` - The metadata options are being updated and the instance is + not ready to process metadata traffic with the new selection. + + `applied` - The metadata options have been successfully applied on the + instance. + """ + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional. You can choose whether to send a + session token in your instance metadata retrieval requests. If you + retrieve IAM role credentials without a session token, you receive the + IMDSv1 role credentials. If you retrieve IAM role credentials using a + valid session token, you receive the IMDSv2 role credentials. + + - `required` - IMDSv2 is required. You must send a session token in your + instance metadata retrieval requests. With this option, retrieving the + IAM role credentials always returns IMDSv2 credentials; IMDSv1 + credentials are not available. + """ + http_put_response_hop_limit: int | None = ... + """ + The desired HTTP PUT response hop limit for instance metadata requests. + The larger the number, the further instance metadata requests can + travel. + + Possible values: Integers from 1 to 64 + """ + http_endpoint: str | None = ... + """ + Enables or disables the HTTP metadata endpoint on your instances. If the + parameter is not specified, the default state is `enabled`. + + Note: + If you specify a value of `disabled`, you will not be able to access + your instance metadata. + """ + http_protocol_ipv6: str | None = ... + """ + Enables or disables the IPv6 endpoint for the instance metadata service. + + Default: `disabled` + """ + instance_metadata_tags: str | None = ... + """ + Set to `enabled` to allow access to instance tags from the instance + metadata. Set to `disabled` to turn off access to instance tags from the + instance metadata. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html). + + Default: `disabled` + """ + +@dataclass(kw_only=True) +class LaunchTemplateInstanceMetadataOptionsRequest(_SerdeShape): + """ + The metadata options for the instance. For more information, see [Use + instance metadata to manage your EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + in the *Amazon EC2 User Guide*. + """ + + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional. You can choose whether to send a + session token in your instance metadata retrieval requests. If you + retrieve IAM role credentials without a session token, you receive the + IMDSv1 role credentials. If you retrieve IAM role credentials using a + valid session token, you receive the IMDSv2 role credentials. + + - `required` - IMDSv2 is required. You must send a session token in your + instance metadata retrieval requests. With this option, retrieving the + IAM role credentials always returns IMDSv2 credentials; IMDSv1 + credentials are not available. + + Default: If the value of `ImdsSupport` for the Amazon Machine Image + (AMI) for your instance is `v2.0`, the default is `required`. + """ + http_put_response_hop_limit: int | None = ... + """ + The desired HTTP PUT response hop limit for instance metadata requests. + The larger the number, the further instance metadata requests can + travel. + + Default: `1` + + Possible values: Integers from 1 to 64 + """ + http_endpoint: str | None = ... + """ + Enables or disables the HTTP metadata endpoint on your instances. If the + parameter is not specified, the default state is `enabled`. + + Note: + If you specify a value of `disabled`, you will not be able to access + your instance metadata. + """ + http_protocol_ipv6: str | None = ... + """ + Enables or disables the IPv6 endpoint for the instance metadata service. + + Default: `disabled` + """ + instance_metadata_tags: str | None = ... + """ + Set to `enabled` to allow access to instance tags from the instance + metadata. Set to `disabled` to turn off access to instance tags from the + instance metadata. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html). + + Default: `disabled` + """ + +class LaunchTemplateInstanceMetadataOptionsState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + APPLIED = "applied" + +class LaunchTemplateInstanceMetadataProtocolIpv6(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +class LaunchTemplateInstanceMetadataTagsState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + ENABLED = "enabled" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceNetworkInterfaceSpecification(_SerdeShape): + """Describes a network interface.""" + + associate_carrier_ip_address: bool | None = ... + """ + Indicates whether to associate a Carrier IP address with eth0 for a new + network interface. + + Use this option when you launch an instance in a Wavelength Zone and + want to associate a Carrier IP address with the network interface. For + more information about Carrier IP addresses, see [Carrier IP + address](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) + in the *Wavelength Developer Guide*. + """ + associate_public_ip_address: bool | None = ... + """ + Indicates whether to associate a public IPv4 address with eth0 for a new + network interface. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + delete_on_termination: bool | None = ... + """ + Indicates whether the network interface is deleted when the instance is + terminated. + """ + description: str | None = ... + """A description for the network interface.""" + device_index: int | None = ... + """The device index for the network interface attachment.""" + groups: list[str] | None = ... + """The IDs of one or more security groups.""" + interface_type: str | None = ... + """The type of network interface.""" + ipv6_address_count: int | None = ... + """The number of IPv6 addresses for the network interface.""" + ipv6_addresses: list[InstanceIpv6Address] | None = ... + """The IPv6 addresses for the network interface.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + private_ip_address: str | None = ... + """The primary private IPv4 address of the network interface.""" + private_ip_addresses: list[PrivateIpAddressSpecification] | None = ... + """One or more private IPv4 addresses.""" + secondary_private_ip_address_count: int | None = ... + """ + The number of secondary private IPv4 addresses for the network + interface. + """ + subnet_id: str | None = ... + """The ID of the subnet for the network interface.""" + network_card_index: int | None = ... + """The index of the network card.""" + ipv4_prefixes: list[Ipv4PrefixSpecificationResponse] | None = ... + """One or more IPv4 prefixes assigned to the network interface.""" + ipv4_prefix_count: int | None = ... + """ + The number of IPv4 prefixes that Amazon Web Services automatically + assigned to the network interface. + """ + ipv6_prefixes: list[Ipv6PrefixSpecificationResponse] | None = ... + """One or more IPv6 prefixes assigned to the network interface.""" + ipv6_prefix_count: int | None = ... + """ + The number of IPv6 prefixes that Amazon Web Services automatically + assigned to the network interface. + """ + primary_ipv6: bool | None = ... + """ + The primary IPv6 address of the network interface. When you enable an + IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made + the primary IPv6 address until the instance is terminated or the network + interface is detached. For more information about primary IPv6 + addresses, see + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + ena_srd_specification: LaunchTemplateEnaSrdSpecification | None = ... + """ + Contains the ENA Express settings for instances launched from your + launch template. + """ + connection_tracking_specification: ConnectionTrackingSpecification | None = ... + """ + A security group connection tracking specification that enables you to + set the timeout for connection tracking on an Elastic network interface. + For more information, see [Idle connection tracking + timeout](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + ena_queue_count: int | None = ... + """The number of ENA queues created with the instance.""" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceNetworkInterfaceSpecificationRequest(_SerdeShape): + """The parameters for a network interface.""" + + associate_carrier_ip_address: bool | None = ... + """ + Associates a Carrier IP address with eth0 for a new network interface. + + Use this option when you launch an instance in a Wavelength Zone and + want to associate a Carrier IP address with the network interface. For + more information about Carrier IP addresses, see [Carrier IP + addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) + in the *Wavelength Developer Guide*. + """ + associate_public_ip_address: bool | None = ... + """ + Associates a public IPv4 address with eth0 for a new network interface. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + delete_on_termination: bool | None = ... + """ + Indicates whether the network interface is deleted when the instance is + terminated. + """ + description: str | None = ... + """A description for the network interface.""" + device_index: int | None = ... + """ + The device index for the network interface attachment. The primary + network interface has a device index of 0. Each network interface is of + type `interface`, you must specify a device index. If you create a + launch template that includes secondary network interfaces but not a + primary network interface, then you must add a primary network interface + as a launch parameter when you launch an instance from the template. + """ + groups: list[str] | None = ... + """The IDs of one or more security groups.""" + interface_type: str | None = ... + """ + The type of network interface. To create an Elastic Fabric Adapter + (EFA), specify `efa` or `efa`. For more information, see [Elastic Fabric + Adapter for AI/ML and HPC workloads on Amazon + EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in + the *Amazon EC2 User Guide*. + + If you are not creating an EFA, specify `interface` or omit this + parameter. + + If you specify `efa-only`, do not assign any IP addresses to the network + interface. EFA-only network interfaces do not support IP addresses. + + Valid values: `interface` | `efa` | `efa-only` + """ + ipv6_address_count: int | None = ... + """ + The number of IPv6 addresses to assign to a network interface. Amazon + EC2 automatically selects the IPv6 addresses from the subnet range. You + can't use this option if specifying specific IPv6 addresses. + """ + ipv6_addresses: list[InstanceIpv6AddressRequest] | None = ... + """ + One or more specific IPv6 addresses from the IPv6 CIDR block range of + your subnet. You can't use this option if you're specifying a number + of IPv6 addresses. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + private_ip_address: str | None = ... + """The primary private IPv4 address of the network interface.""" + private_ip_addresses: list[PrivateIpAddressSpecification] | None = ... + """One or more private IPv4 addresses.""" + secondary_private_ip_address_count: int | None = ... + """ + The number of secondary private IPv4 addresses to assign to a network + interface. + """ + subnet_id: str | None = ... + """The ID of the subnet for the network interface.""" + network_card_index: int | None = ... + """ + The index of the network card. Some instance types support multiple + network cards. The primary network interface must be assigned to network + card index 0. The default is network card index 0. + """ + ipv4_prefixes: list[Ipv4PrefixSpecificationRequest] | None = ... + """ + One or more IPv4 prefixes to be assigned to the network interface. You + cannot use this option if you use the `Ipv4PrefixCount` option. + """ + ipv4_prefix_count: int | None = ... + """ + The number of IPv4 prefixes to be automatically assigned to the network + interface. You cannot use this option if you use the `Ipv4Prefix` + option. + """ + ipv6_prefixes: list[Ipv6PrefixSpecificationRequest] | None = ... + """ + One or more IPv6 prefixes to be assigned to the network interface. You + cannot use this option if you use the `Ipv6PrefixCount` option. + """ + ipv6_prefix_count: int | None = ... + """ + The number of IPv6 prefixes to be automatically assigned to the network + interface. You cannot use this option if you use the `Ipv6Prefix` + option. + """ + primary_ipv6: bool | None = ... + """ + The primary IPv6 address of the network interface. When you enable an + IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made + the primary IPv6 address until the instance is terminated or the network + interface is detached. For more information about primary IPv6 + addresses, see + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). + """ + ena_srd_specification: EnaSrdSpecificationRequest | None = ... + """Configure ENA Express settings for your launch template.""" + connection_tracking_specification: ( + ConnectionTrackingSpecificationRequest | None + ) = ... + """ + A security group connection tracking specification that enables you to + set the timeout for connection tracking on an Elastic network interface. + For more information, see [Idle connection tracking + timeout](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + ena_queue_count: int | None = ... + """The number of ENA queues to be created with the instance.""" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceSecondaryInterfaceSpecification(_SerdeShape): + """Describes a secondary interface specification in a launch template.""" + + delete_on_termination: bool | None = ... + """ + Indicates whether the secondary interface is deleted when the instance + is terminated. + + The only supported value for this field is `true`. + """ + device_index: int | None = ... + """The device index for the secondary interface attachment.""" + private_ip_addresses: ( + list[SecondaryInterfacePrivateIpAddressSpecification] | None + ) = ... + """ + The private IPv4 addresses to assign to the secondary interface. + + If you specify `privateIpAddresses` you cannot specify + `privateIpAddressCount` + """ + private_ip_address_count: int | None = ... + """ + The number of private IPv4 addresses to assign to the secondary + interface. + + If you specify `privateIpAddressCount` you cannot specify + `privateIpAddresses` + """ + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + interface_type: str | None = ... + """The type of secondary interface.""" + network_card_index: int | None = ... + """The index of the network card.""" + +@dataclass(kw_only=True) +class LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest(_SerdeShape): + """ + Describes a secondary interface specification for a launch template + request. + """ + + delete_on_termination: bool | None = ... + """ + Indicates whether the secondary interface is deleted when the instance + is terminated. + + The only supported value for this field is `true`. + """ + device_index: int | None = ... + """The device index for the secondary interface attachment.""" + private_ip_addresses: ( + list[SecondaryInterfacePrivateIpAddressSpecificationRequest] | None + ) = ... + """The private IPv4 addresses to assign to the secondary interface.""" + private_ip_address_count: int | None = ... + """ + The number of private IPv4 addresses to assign to the secondary + interface. + """ + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + interface_type: str | None = ... + """The type of secondary interface.""" + network_card_index: int | None = ... + """The index of the network card.""" + +@dataclass(kw_only=True) +class LaunchTemplateLicenseConfiguration(_SerdeShape): + """Describes a license configuration.""" + + license_configuration_arn: str | None = ... + """The Amazon Resource Name (ARN) of the license configuration.""" + +@dataclass(kw_only=True) +class LaunchTemplateLicenseConfigurationRequest(_SerdeShape): + """Describes a license configuration.""" + + license_configuration_arn: str | None = ... + """The Amazon Resource Name (ARN) of the license configuration.""" + +@dataclass(kw_only=True) +class LaunchTemplateNetworkPerformanceOptions(_SerdeShape): + """ + With network performance options, you can adjust your bandwidth + preferences to meet the needs of the workload that runs on your instance + at launch. + """ + + bandwidth_weighting: str | None = ... + """ + When you configure network bandwidth weighting, you can boost baseline + bandwidth for either networking or EBS by up to 25%. The total available + baseline bandwidth for your instance remains the same. The default + option uses the standard bandwidth configuration for your instance type. + """ + +@dataclass(kw_only=True) +class LaunchTemplateNetworkPerformanceOptionsRequest(_SerdeShape): + """ + When you configure network performance options in your launch template, + your instance is geared for performance improvements based on the + workload that it runs as soon as it's available. + """ + + bandwidth_weighting: str | None = ... + """ + Specify the bandwidth weighting option to boost the associated type of + baseline bandwidth, as follows: + + default + + : This option uses the standard bandwidth configuration for your + instance type. + + vpc-1 + + : This option boosts your networking baseline bandwidth and reduces your + EBS baseline bandwidth. + + ebs-1 + + : This option boosts your EBS baseline bandwidth and reduces your + networking baseline bandwidth. + """ + +@dataclass(kw_only=True) +class LaunchTemplateOverrides(_SerdeShape): + """Describes overrides for a launch template.""" + + instance_type: str | None = ... + """The instance type.""" + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + subnet_id: str | None = ... + """The ID of the subnet in which to launch the instances.""" + availability_zone: str | None = ... + """ + The Availability Zone in which to launch the instances. For example, + `us-east-2a`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + weighted_capacity: float | None = ... + """ + The number of units provided by the specified instance type. These are + the same units that you chose to set the target capacity in terms of + instances, or a performance characteristic such as vCPUs, memory, or + I/O. + + If the target capacity divided by this value is not a whole number, + Amazon EC2 rounds the number of instances to the next whole number. If + this value is not specified, the default is 1. + + Note: + When specifying weights, the price used in the `lowestPrice` and + `priceCapacityOptimized` allocation strategies is per *unit* hour (where + the instance price is divided by the specified weight). However, if all + the specified weights are above the requested `TargetCapacity`, + resulting in only 1 instance being launched, the price used is per + *instance* hour. + """ + priority: float | None = ... + """ + The priority for the launch template override. The highest priority is + launched first. + + If `OnDemandAllocationStrategy` is set to `prioritized`, Spot Fleet uses + priority to determine which launch template override to use first in + fulfilling On-Demand capacity. + + If the Spot `AllocationStrategy` is set to + `capacityOptimizedPrioritized`, Spot Fleet uses priority on a + best-effort basis to determine which launch template override to use in + fulfilling Spot capacity, but optimizes for capacity first. + + Valid values are whole numbers starting at `0`. The lower the number, + the higher the priority. If no number is set, the launch template + override has the lowest priority. You can set the same priority for + different launch template overrides. + """ + instance_requirements: InstanceRequirements | None = ... + """ + The instance requirements. When you specify instance requirements, + Amazon EC2 will identify instance types with the provided requirements, + and then use your On-Demand and Spot allocation strategies to launch + instances from these instance types, in the same way as when you specify + a list of instance types. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which to launch the instances. For + example, `use2-az1`. + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + +@dataclass(kw_only=True) +class LaunchTemplatePlacement(_SerdeShape): + """Describes the placement of an instance.""" + + availability_zone: str | None = ... + """The Availability Zone of the instance.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the instance.""" + affinity: str | None = ... + """The affinity setting for the instance on the Dedicated Host.""" + group_name: str | None = ... + """The name of the placement group for the instance.""" + host_id: str | None = ... + """The ID of the Dedicated Host for the instance.""" + tenancy: str | None = ... + """ + The tenancy of the instance. An instance with a tenancy of `dedicated` + runs on single-tenant hardware. + """ + spread_domain: str | None = ... + """Reserved for future use.""" + host_resource_group_arn: str | None = ... + """The ARN of the host resource group in which to launch the instances.""" + partition_number: int | None = ... + """ + The number of the partition the instance should launch in. Valid only if + the placement group strategy is set to `partition`. + """ + group_id: str | None = ... + """ + The Group ID of the placement group. You must specify the Placement + Group **Group ID** to launch an instance in a shared placement group. + """ + +@dataclass(kw_only=True) +class LaunchTemplatePlacementRequest(_SerdeShape): + """Describes the placement of an instance.""" + + availability_zone: str | None = ... + """ + The Availability Zone for the instance. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone for the instance. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + affinity: str | None = ... + """The affinity setting for an instance on a Dedicated Host.""" + group_name: str | None = ... + """The name of the placement group for the instance.""" + host_id: str | None = ... + """The ID of the Dedicated Host for the instance.""" + tenancy: str | None = ... + """ + The tenancy of the instance. An instance with a tenancy of dedicated + runs on single-tenant hardware. + """ + spread_domain: str | None = ... + """Reserved for future use.""" + host_resource_group_arn: str | None = ... + """ + The ARN of the host resource group in which to launch the instances. If + you specify a host resource group ARN, omit the **Tenancy** parameter or + set it to `host`. + """ + partition_number: int | None = ... + """ + The number of the partition the instance should launch in. Valid only if + the placement group strategy is set to `partition`. + """ + group_id: str | None = ... + """ + The Group Id of a placement group. You must specify the Placement Group + **Group Id** to launch an instance in a shared placement group. + """ + +@dataclass(kw_only=True) +class LaunchTemplatePrivateDnsNameOptions(_SerdeShape): + """Describes the options for instance hostnames.""" + + hostname_type: str | None = ... + """The type of hostname to assign to an instance.""" + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class LaunchTemplatePrivateDnsNameOptionsRequest(_SerdeShape): + """Describes the options for instance hostnames.""" + + hostname_type: str | None = ... + """ + The type of hostname for Amazon EC2 instances. For IPv4 only subnets, an + instance DNS name must be based on the instance IPv4 address. For IPv6 + native subnets, an instance DNS name must be based on the instance ID. + For dual-stack subnets, you can specify whether DNS names use the + instance IPv4 address or the instance ID. + """ + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class LaunchTemplatesMonitoring(_SerdeShape): + """Describes the monitoring for the instance.""" + + enabled: bool | None = ... + """ + Indicates whether detailed monitoring is enabled. Otherwise, basic + monitoring is enabled. + """ + +@dataclass(kw_only=True) +class LaunchTemplatesMonitoringRequest(_SerdeShape): + """Describes the monitoring for the instance.""" + + enabled: bool | None = ... + """ + Specify `true` to enable detailed monitoring. Otherwise, basic + monitoring is enabled. + """ + +@dataclass(kw_only=True) +class LaunchTemplateSpecification(_SerdeShape): + """Describes the launch template to use.""" + + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + version: str | None = ... + """ + The launch template version number, `$Latest`, or `$Default`. + + A value of `$Latest` uses the latest version of the launch template. + + A value of `$Default` uses the default version of the launch template. + + Default: The default version of the launch template. + """ + +@dataclass(kw_only=True) +class LaunchTemplateSpotMarketOptions(_SerdeShape): + """The options for Spot Instances.""" + + max_price: str | None = ... + """ + The maximum hourly price you're willing to pay for a Spot Instance. We + do not recommend using this parameter because it can lead to increased + interruptions. If you do not specify this parameter, you will pay the + current Spot price. If you do specify this parameter, it must be more + than USD $0.001. Specifying a value below USD $0.001 will result in an + `InvalidParameterValue` error message when the launch template is used + to launch an instance. + """ + spot_instance_type: str | None = ... + """The Spot Instance request type.""" + block_duration_minutes: int | None = ... + """ + The required duration for the Spot Instances (also known as Spot + blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, + 240, 300, or 360). + """ + valid_until: datetime | None = ... + """ + The end date of the request. For a one-time request, the request remains + active until all instances launch, the request is canceled, or this date + is reached. If the request is persistent, it remains active until it is + canceled or this date and time is reached. + """ + instance_interruption_behavior: str | None = ... + """The behavior when a Spot Instance is interrupted.""" + +@dataclass(kw_only=True) +class LaunchTemplateSpotMarketOptionsRequest(_SerdeShape): + """The options for Spot Instances.""" + + max_price: str | None = ... + """ + The maximum hourly price you're willing to pay for a Spot Instance. We + do not recommend using this parameter because it can lead to increased + interruptions. If you do not specify this parameter, you will pay the + current Spot price. If you do specify this parameter, it must be more + than USD $0.001. Specifying a value below USD $0.001 will result in an + `InvalidParameterValue` error message when the launch template is used + to launch an instance. + + Warning: + If you specify a maximum price, your Spot Instances will be interrupted + more frequently than if you do not specify this parameter. + """ + spot_instance_type: str | None = ... + """The Spot Instance request type.""" + block_duration_minutes: int | None = ... + """Deprecated.""" + valid_until: datetime | None = ... + """ + The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). + Supported only for persistent requests. + + - For a persistent request, the request remains active until the + `ValidUntil` date and time is reached. Otherwise, the request remains + active until you cancel it. + + - For a one-time request, `ValidUntil` is not supported. The request + remains active until all instances launch or you cancel the request. + + Default: 7 days from the current date + """ + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. The default is + `terminate`. + """ + +@dataclass(kw_only=True) +class LaunchTemplateTagSpecification(_SerdeShape): + """The tags specification for the launch template.""" + + resource_type: str | None = ... + """The type of resource to tag.""" + tags: list[Tag] | None = ... + """The tags for the resource.""" + +@dataclass(kw_only=True) +class LaunchTemplateTagSpecificationRequest(_SerdeShape): + """ + The tags specification for the resources that are created during + instance launch. + """ + + resource_type: str | None = ... + """ + The type of resource to tag. + + Valid Values lists all resource types for Amazon EC2 that can be tagged. + When you create a launch template, you can specify tags for the + following resource types only: `instance` | `volume` | + `network-interface` | `spot-instances-request`. If the instance does + not include the resource type that you specify, the instance launch + fails. For example, not all instance types include a volume. + + To tag a resource after it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + tags: list[Tag] | None = ... + """The tags to apply to the resource.""" + +@dataclass(kw_only=True) +class LaunchTemplateVersion(_SerdeShape): + """Describes a launch template version.""" + + launch_template_id: str | None = ... + """The ID of the launch template.""" + launch_template_name: str | None = ... + """The name of the launch template.""" + version_number: int | None = ... + """The version number.""" + version_description: str | None = ... + """The description for the version.""" + create_time: datetime | None = ... + """The time the version was created.""" + created_by: str | None = ... + """The principal that created the version.""" + default_version: bool | None = ... + """Indicates whether the version is the default version.""" + launch_template_data: ResponseLaunchTemplateData | None = ... + """Information about the launch template.""" + operator: OperatorResponse | None = ... + """The entity that manages the launch template.""" + +@dataclass(kw_only=True) +class LicenseConfiguration(_SerdeShape): + """Describes a license configuration.""" + + license_configuration_arn: str | None = ... + """The Amazon Resource Name (ARN) of the license configuration.""" + +@dataclass(kw_only=True) +class LicenseConfigurationRequest(_SerdeShape): + """Describes a license configuration.""" + + license_configuration_arn: str | None = ... + """The Amazon Resource Name (ARN) of the license configuration.""" + +@dataclass(kw_only=True) +class ListImagesInRecycleBinInput(_SerdeShape): + """Dataclass for ListImagesInRecycleBinInput structure.""" + + image_ids: list[str] | None = ... + """ + The IDs of the AMIs to list. Omit this parameter to list all of the AMIs + that are in the Recycle Bin. You can specify up to 20 IDs in a single + request. + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ListImagesInRecycleBinOutput(_SerdeShape): + """Dataclass for ListImagesInRecycleBinOutput structure.""" + + images: list[ImageRecycleBinInfo] | None = ... + """Information about the AMIs.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ListingState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + SOLD = "sold" + CANCELLED = "cancelled" + PENDING = "pending" + +class ListingStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + PENDING = "pending" + CANCELLED = "cancelled" + CLOSED = "closed" + +@dataclass(kw_only=True) +class ListSnapshotsInRecycleBinInput(_SerdeShape): + """Dataclass for ListSnapshotsInRecycleBinInput structure.""" + + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + snapshot_ids: list[str] | None = ... + """ + The IDs of the snapshots to list. Omit this parameter to list all of the + snapshots that are in the Recycle Bin. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ListSnapshotsInRecycleBinOutput(_SerdeShape): + """Dataclass for ListSnapshotsInRecycleBinOutput structure.""" + + snapshots: list[SnapshotRecycleBinInfo] | None = ... + """Information about the snapshots.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListVolumesInRecycleBinInput(_SerdeShape): + """Dataclass for ListVolumesInRecycleBinInput structure.""" + + volume_ids: list[str] | None = ... + """ + The IDs of the volumes to list. Omit this parameter to list all of the + volumes that are in the Recycle Bin. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + max_results: int | None = ... + """ + The maximum number of items to return for this request. To get the next + page of items, make another request with the token returned in the + output. For more information, see + [Pagination](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination). + + Valid range: 5 - 500 + """ + next_token: str | None = ... + """ + The token returned from a previous paginated request. Pagination + continues from the end of the items returned by the previous request. + """ + +@dataclass(kw_only=True) +class ListVolumesInRecycleBinOutput(_SerdeShape): + """Dataclass for ListVolumesInRecycleBinOutput structure.""" + + volumes: list[VolumeRecycleBinInfo] | None = ... + """Information about the volumes.""" + next_token: str | None = ... + """ + The token to include in another request to get the next page of items. + This value is `null` when there are no more items to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LoadBalancersConfig(_SerdeShape): + """ + Describes the Classic Load Balancers and target groups to attach to a + Spot Fleet request. + """ + + classic_load_balancers_config: ClassicLoadBalancersConfig | None = ... + """The Classic Load Balancers.""" + target_groups_config: TargetGroupsConfig | None = ... + """The target groups.""" + +@dataclass(kw_only=True) +class LoadPermission(_SerdeShape): + """Describes a load permission.""" + + user_id: str | None = ... + """The Amazon Web Services account ID.""" + group: str | None = ... + """The name of the group.""" + +@dataclass(kw_only=True) +class LoadPermissionModifications(_SerdeShape): + """ + Describes modifications to the load permissions of an Amazon FPGA image + (AFI). + """ + + add: list[LoadPermissionRequest] | None = ... + """The load permissions to add.""" + remove: list[LoadPermissionRequest] | None = ... + """The load permissions to remove.""" + +@dataclass(kw_only=True) +class LoadPermissionRequest(_SerdeShape): + """Describes a load permission.""" + + group: str | None = ... + """The name of the group.""" + user_id: str | None = ... + """The Amazon Web Services account ID.""" + +@dataclass(kw_only=True) +class LocalGateway(_SerdeShape): + """Describes a local gateway.""" + + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the local gateway.""" + state: str | None = ... + """The state of the local gateway.""" + tags: list[Tag] | None = ... + """The tags assigned to the local gateway.""" + +@dataclass(kw_only=True) +class LocalGatewayRoute(_SerdeShape): + """Describes a route for a local gateway route table.""" + + destination_cidr_block: str | None = ... + """The CIDR block used for destination matches.""" + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the virtual interface group.""" + type: str | None = ... + """The route type.""" + state: str | None = ... + """The state of the route.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_route_table_arn: str | None = ... + """The Amazon Resource Name (ARN) of the local gateway route table.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + route. + """ + subnet_id: str | None = ... + """The ID of the subnet.""" + coip_pool_id: str | None = ... + """The ID of the customer-owned address pool.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + destination_prefix_list_id: str | None = ... + """The ID of the prefix list.""" + +class LocalGatewayRouteState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + BLACKHOLE = "blackhole" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class LocalGatewayRouteTable(_SerdeShape): + """Describes a local gateway route table.""" + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_route_table_arn: str | None = ... + """The Amazon Resource Name (ARN) of the local gateway route table.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + route table. + """ + state: str | None = ... + """The state of the local gateway route table.""" + tags: list[Tag] | None = ... + """The tags assigned to the local gateway route table.""" + mode: str | None = ... + """The mode of the local gateway route table.""" + state_reason: StateReason | None = ... + """Information about the state change.""" + +class LocalGatewayRouteTableMode(UnknownEnumMixin, StrEnum): + DIRECT_VPC_ROUTING = "direct-vpc-routing" + COIP = "coip" + +@dataclass(kw_only=True) +class LocalGatewayRouteTableVirtualInterfaceGroupAssociation(_SerdeShape): + """ + Describes an association between a local gateway route table and a + virtual interface group. + """ + + local_gateway_route_table_virtual_interface_group_association_id: str | None = ... + """The ID of the association.""" + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the virtual interface group.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_route_table_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the local gateway route table for the + virtual interface group. + """ + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + virtual interface group association. + """ + state: str | None = ... + """The state of the association.""" + tags: list[Tag] | None = ... + """The tags assigned to the association.""" + +@dataclass(kw_only=True) +class LocalGatewayRouteTableVpcAssociation(_SerdeShape): + """Describes an association between a local gateway route table and a VPC.""" + + local_gateway_route_table_vpc_association_id: str | None = ... + """The ID of the association.""" + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_route_table_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the local gateway route table for the + association. + """ + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + route table for the association. + """ + state: str | None = ... + """The state of the association.""" + tags: list[Tag] | None = ... + """The tags assigned to the association.""" + +class LocalGatewayRouteType(UnknownEnumMixin, StrEnum): + STATIC = "static" + PROPAGATED = "propagated" + +@dataclass(kw_only=True) +class LocalGatewayVirtualInterface(_SerdeShape): + """Describes a local gateway virtual interface.""" + + local_gateway_virtual_interface_id: str | None = ... + """The ID of the virtual interface.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the local gateway virtual interface group.""" + local_gateway_virtual_interface_arn: str | None = ... + """The Amazon Resource Number (ARN) of the local gateway virtual interface.""" + outpost_lag_id: str | None = ... + """The Outpost LAG ID.""" + vlan: int | None = ... + """The ID of the VLAN.""" + local_address: str | None = ... + """The local address.""" + peer_address: str | None = ... + """The peer address.""" + local_bgp_asn: int | None = ... + """ + The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the + local gateway. + """ + peer_bgp_asn: int | None = ... + """The peer BGP ASN.""" + peer_bgp_asn_extended: int | None = ... + """The extended 32-bit ASN of the BGP peer for use with larger ASN values.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + virtual interface. + """ + tags: list[Tag] | None = ... + """The tags assigned to the virtual interface.""" + configuration_state: str | None = ... + """The current state of the local gateway virtual interface.""" + +class LocalGatewayVirtualInterfaceConfigurationState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class LocalGatewayVirtualInterfaceGroup(_SerdeShape): + """Describes a local gateway virtual interface group.""" + + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the virtual interface group.""" + local_gateway_virtual_interface_ids: list[str] | None = ... + """The IDs of the virtual interfaces.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the local gateway + virtual interface group. + """ + local_bgp_asn: int | None = ... + """ + The Autonomous System Number(ASN) for the local Border Gateway Protocol + (BGP). + """ + local_bgp_asn_extended: int | None = ... + """The extended 32-bit ASN for the local BGP configuration.""" + local_gateway_virtual_interface_group_arn: str | None = ... + """ + The Amazon Resource Number (ARN) of the local gateway virtual interface + group. + """ + tags: list[Tag] | None = ... + """The tags assigned to the virtual interface group.""" + configuration_state: str | None = ... + """The current state of the local gateway virtual interface group.""" + +class LocalGatewayVirtualInterfaceGroupConfigurationState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + INCOMPLETE = "incomplete" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +class LocalStorage(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +class LocalStorageType(UnknownEnumMixin, StrEnum): + HDD = "hdd" + SSD = "ssd" + +class LocationType(UnknownEnumMixin, StrEnum): + REGION = "region" + AVAILABILITY_ZONE = "availability-zone" + AVAILABILITY_ZONE_ID = "availability-zone-id" + OUTPOST = "outpost" + +@dataclass(kw_only=True) +class LockedSnapshotsInfo(_SerdeShape): + """Information about a locked snapshot.""" + + owner_id: str | None = ... + """ + The account ID of the Amazon Web Services account that owns the + snapshot. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + lock_state: str | None = ... + """ + The state of the snapshot lock. Valid states include: + + - `compliance-cooloff` - The snapshot has been locked in compliance mode + but it is still within the cooling-off period. The snapshot can't be + deleted, but it can be unlocked and the lock settings can be modified + by users with appropriate permissions. + + - `governance` - The snapshot is locked in governance mode. The snapshot + can't be deleted, but it can be unlocked and the lock settings can be + modified by users with appropriate permissions. + + - `compliance` - The snapshot is locked in compliance mode and the + cooling-off period has expired. The snapshot can't be unlocked or + deleted. The lock duration can only be increased by users with + appropriate permissions. + + - `expired` - The snapshot was locked in compliance or governance mode + but the lock duration has expired. The snapshot is not locked and can + be deleted. + """ + lock_duration: int | None = ... + """The period of time for which the snapshot is locked, in days.""" + cool_off_period: int | None = ... + """The compliance mode cooling-off period, in hours.""" + cool_off_period_expires_on: datetime | None = ... + """ + The date and time at which the compliance mode cooling-off period + expires, in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + lock_created_on: datetime | None = ... + """ + The date and time at which the snapshot was locked, in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + lock_duration_start_time: datetime | None = ... + """ + The date and time at which the lock duration started, in the UTC time + zone (`YYYY-MM-DDThh:mm:ss.sssZ`). + + If you lock a snapshot that is in the `pending` state, the lock duration + starts only once the snapshot enters the `completed` state. + """ + lock_expires_on: datetime | None = ... + """ + The date and time at which the lock will expire, in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + +class LockMode(UnknownEnumMixin, StrEnum): + COMPLIANCE = "compliance" + GOVERNANCE = "governance" + +@dataclass(kw_only=True) +class LockSnapshotInput(_SerdeShape): + """Dataclass for LockSnapshotInput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot to lock.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + lock_mode: str | None = ... + """ + The mode in which to lock the snapshot. Specify one of the following: + + - `governance` - Locks the snapshot in governance mode. Snapshots locked + in governance mode can't be deleted until one of the following + conditions are met: + + - The lock duration expires. + + - The snapshot is unlocked by a user with the appropriate permissions. + + Users with the appropriate IAM permissions can unlock the snapshot, + increase or decrease the lock duration, and change the lock mode to + `compliance` at any time. + + If you lock a snapshot in `governance` mode, omit **CoolOffPeriod**. + + - `compliance` - Locks the snapshot in compliance mode. Snapshots locked + in compliance mode can't be unlocked by any user. They can be deleted + only after the lock duration expires. Users can't decrease the lock + duration or change the lock mode to `governance`. However, users with + appropriate IAM permissions can increase the lock duration at any + time. + + If you lock a snapshot in `compliance` mode, you can optionally + specify **CoolOffPeriod**. + """ + cool_off_period: int | None = ... + """ + The cooling-off period during which you can unlock the snapshot or + modify the lock settings after locking the snapshot in compliance mode, + in hours. After the cooling-off period expires, you can't unlock or + delete the snapshot, decrease the lock duration, or change the lock + mode. You can increase the lock duration after the cooling-off period + expires. + + The cooling-off period is optional when locking a snapshot in compliance + mode. If you are locking the snapshot in governance mode, omit this + parameter. + + To lock the snapshot in compliance mode immediately without a + cooling-off period, omit this parameter. + + If you are extending the lock duration for a snapshot that is locked in + compliance mode after the cooling-off period has expired, omit this + parameter. If you specify a cooling-period in a such a request, the + request fails. + + Allowed values: Min 1, max 72. + """ + lock_duration: int | None = ... + """ + The period of time for which to lock the snapshot, in days. The snapshot + lock will automatically expire after this period lapses. + + You must specify either this parameter or **ExpirationDate**, but not + both. + + Allowed values: Min: 1, max 36500 + """ + expiration_date: datetime | None = ... + """ + The date and time at which the snapshot lock is to automatically expire, + in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). + + You must specify either this parameter or **LockDuration**, but not + both. + """ + +@dataclass(kw_only=True) +class LockSnapshotOutput(_SerdeShape): + """Dataclass for LockSnapshotOutput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot""" + lock_state: str | None = ... + """ + The state of the snapshot lock. Valid states include: + + - `compliance-cooloff` - The snapshot has been locked in compliance mode + but it is still within the cooling-off period. The snapshot can't be + deleted, but it can be unlocked and the lock settings can be modified + by users with appropriate permissions. + + - `governance` - The snapshot is locked in governance mode. The snapshot + can't be deleted, but it can be unlocked and the lock settings can be + modified by users with appropriate permissions. + + - `compliance` - The snapshot is locked in compliance mode and the + cooling-off period has expired. The snapshot can't be unlocked or + deleted. The lock duration can only be increased by users with + appropriate permissions. + + - `expired` - The snapshot was locked in compliance or governance mode + but the lock duration has expired. The snapshot is not locked and can + be deleted. + """ + lock_duration: int | None = ... + """The period of time for which the snapshot is locked, in days.""" + cool_off_period: int | None = ... + """The compliance mode cooling-off period, in hours.""" + cool_off_period_expires_on: datetime | None = ... + """ + The date and time at which the compliance mode cooling-off period + expires, in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + lock_created_on: datetime | None = ... + """ + The date and time at which the snapshot was locked, in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + lock_expires_on: datetime | None = ... + """ + The date and time at which the lock will expire, in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + lock_duration_start_time: datetime | None = ... + """ + The date and time at which the lock duration started, in the UTC time + zone (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class LockState(UnknownEnumMixin, StrEnum): + COMPLIANCE = "compliance" + GOVERNANCE = "governance" + COMPLIANCE_COOLOFF = "compliance-cooloff" + EXPIRED = "expired" + +class LogDestinationType(UnknownEnumMixin, StrEnum): + CLOUD_WATCH_LOGS = "cloud-watch-logs" + S3 = "s3" + KINESIS_DATA_FIREHOSE = "kinesis-data-firehose" + +@dataclass(kw_only=True) +class MacHost(_SerdeShape): + """Information about the EC2 Mac Dedicated Host.""" + + host_id: str | None = ... + """The EC2 Mac Dedicated Host ID.""" + mac_os_latest_supported_versions: list[str] | None = ... + """ + The latest macOS versions that the EC2 Mac Dedicated Host can launch + without being upgraded. + """ + +@dataclass(kw_only=True) +class MacModificationTask(_SerdeShape): + """ + Information about a System Integrity Protection (SIP) modification task + or volume ownership delegation task for an Amazon EC2 Mac instance. + """ + + instance_id: str | None = ... + """The ID of the Amazon EC2 Mac instance.""" + mac_modification_task_id: str | None = ... + """The ID of task.""" + mac_system_integrity_protection_config: ( + MacSystemIntegrityProtectionConfiguration | None + ) = ... + """[SIP modification tasks only] Information about the SIP configuration.""" + start_time: datetime | None = ... + """ + The date and time the task was created, in the UTC timezone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + tags: list[Tag] | None = ... + """The tags assigned to the task.""" + task_state: str | None = ... + """The state of the task.""" + task_type: str | None = ... + """The type of task.""" + +class MacModificationTaskState(UnknownEnumMixin, StrEnum): + SUCCESSFUL = "successful" + FAILED = "failed" + INPROGRESS = "in-progress" + PENDING = "pending" + +class MacModificationTaskType(UnknownEnumMixin, StrEnum): + SIP_MODIFICATION = "sip-modification" + VOLUME_OWNERSHIP_DELEGATION = "volume-ownership-delegation" + +@dataclass(kw_only=True) +class MacSystemIntegrityProtectionConfiguration(_SerdeShape): + """ + Describes the configuration for a System Integrity Protection (SIP) + modification task. + """ + + apple_internal: str | None = ... + """Indicates whether Apple Internal was enabled or disabled by the task.""" + base_system: str | None = ... + """Indicates whether Base System was enabled or disabled by the task.""" + debugging_restrictions: str | None = ... + """ + Indicates whether Debugging Restrictions was enabled or disabled by the + task. + """ + d_trace_restrictions: str | None = ... + """ + Indicates whether Dtrace Restrictions was enabled or disabled by the + task. + """ + filesystem_protections: str | None = ... + """ + Indicates whether Filesystem Protections was enabled or disabled by the + task. + """ + kext_signing: str | None = ... + """Indicates whether Kext Signing was enabled or disabled by the task.""" + nvram_protections: str | None = ... + """Indicates whether NVRAM Protections was enabled or disabled by the task.""" + status: str | None = ... + """Indicates SIP was enabled or disabled by the task.""" + +@dataclass(kw_only=True) +class MacSystemIntegrityProtectionConfigurationRequest(_SerdeShape): + """ + Describes a custom configuration for a System Integrity Protection (SIP) + modification task. + """ + + apple_internal: str | None = ... + """Enables or disables Apple Internal.""" + base_system: str | None = ... + """Enables or disables Base System.""" + debugging_restrictions: str | None = ... + """Enables or disables Debugging Restrictions.""" + d_trace_restrictions: str | None = ... + """Enables or disables Dtrace Restrictions.""" + filesystem_protections: str | None = ... + """Enables or disables Filesystem Protections.""" + kext_signing: str | None = ... + """Enables or disables Kext Signing.""" + nvram_protections: str | None = ... + """Enables or disables Nvram Protections.""" + +class MacSystemIntegrityProtectionSettingStatus(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class MaintenanceDetails(_SerdeShape): + """Details for Site-to-Site VPN tunnel endpoint maintenance events.""" + + pending_maintenance: str | None = ... + """Verify existence of a pending maintenance.""" + maintenance_auto_applied_after: datetime | None = ... + """ + The timestamp after which Amazon Web Services will automatically apply + maintenance. + """ + last_maintenance_applied: datetime | None = ... + """Timestamp of last applied maintenance.""" + +class ManagedBy(UnknownEnumMixin, StrEnum): + ACCOUNT = "account" + DECLARATIVE_POLICY = "declarative-policy" + +@dataclass(kw_only=True) +class ManagedPrefixList(_SerdeShape): + """Describes a managed prefix list.""" + + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + address_family: str | None = ... + """The IP address version.""" + state: str | None = ... + """The current state of the prefix list.""" + state_message: str | None = ... + """The state message.""" + prefix_list_arn: str | None = ... + """The Amazon Resource Name (ARN) for the prefix list.""" + prefix_list_name: str | None = ... + """The name of the prefix list.""" + max_entries: int | None = ... + """The maximum number of entries for the prefix list.""" + version: int | None = ... + """The version of the prefix list.""" + tags: list[Tag] | None = ... + """The tags for the prefix list.""" + owner_id: str | None = ... + """The ID of the owner of the prefix list.""" + ipam_prefix_list_resolver_target_id: str | None = ... + """ + The ID of the IPAM prefix list resolver target associated with this + managed prefix list. When set, this prefix list becomes an IPAM managed + prefix list. + + An IPAM-managed prefix list is a customer-managed prefix list that has + been associated with an IPAM prefix list resolver target. When a prefix + list becomes IPAM managed, its CIDRs are automatically synchronized + based on the IPAM prefix list resolver's CIDR selection rules, and + direct CIDR modifications are restricted. + """ + ipam_prefix_list_resolver_sync_enabled: bool | None = ... + """ + Indicates whether synchronization with an IPAM prefix list resolver is + enabled for this managed prefix list. When enabled, the prefix list + CIDRs are automatically updated based on the resolver's CIDR selection + rules. + """ + +class ManagedResourceDefaultVisibility(UnknownEnumMixin, StrEnum): + HIDDEN = "hidden" + VISIBLE = "visible" + +@dataclass(kw_only=True) +class ManagedResourceVisibilitySettings(_SerdeShape): + """Describes the managed resource visibility settings for the account.""" + + default_visibility: str | None = ... + """ + The default visibility setting for managed resources. A value of + `hidden` indicates that managed resources are not included in Describe + operation responses by default. A value of `visible` indicates that + managed resources are included by default. + """ + +class MarketType(UnknownEnumMixin, StrEnum): + SPOT = "spot" + CAPACITY_BLOCK = "capacity-block" + INTERRUPTIBLE_CAPACITY_RESERVATION = "interruptible-capacity-reservation" + ON_DEMAND = "on-demand" + +@dataclass(kw_only=True) +class MediaAcceleratorInfo(_SerdeShape): + """Describes the media accelerators for the instance type.""" + + accelerators: list[MediaDeviceInfo] | None = ... + """Describes the media accelerators for the instance type.""" + total_media_memory_in_mi_b: int | None = ... + """ + The total size of the memory for the media accelerators for the instance + type, in MiB. + """ + +@dataclass(kw_only=True) +class MediaDeviceInfo(_SerdeShape): + """Describes the media accelerators for the instance type.""" + + count: int | None = ... + """The number of media accelerators for the instance type.""" + name: str | None = ... + """The name of the media accelerator.""" + manufacturer: str | None = ... + """The manufacturer of the media accelerator.""" + memory_info: MediaDeviceMemoryInfo | None = ... + """Describes the memory available to the media accelerator.""" + +@dataclass(kw_only=True) +class MediaDeviceMemoryInfo(_SerdeShape): + """Describes the memory available to the media accelerator.""" + + size_in_mi_b: int | None = ... + """The size of the memory available to each media accelerator, in MiB.""" + +class MembershipType(UnknownEnumMixin, StrEnum): + STATIC = "static" + IGMP = "igmp" + +@dataclass(kw_only=True) +class MemoryGiBPerVCpu(_SerdeShape): + """The minimum and maximum amount of memory per vCPU, in GiB.""" + + min: float | None = ... + """ + The minimum amount of memory per vCPU, in GiB. If this parameter is not + specified, there is no minimum limit. + """ + max: float | None = ... + """ + The maximum amount of memory per vCPU, in GiB. If this parameter is not + specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class MemoryGiBPerVCpuRequest(_SerdeShape): + """The minimum and maximum amount of memory per vCPU, in GiB.""" + + min: float | None = ... + """ + The minimum amount of memory per vCPU, in GiB. To specify no minimum + limit, omit this parameter. + """ + max: float | None = ... + """ + The maximum amount of memory per vCPU, in GiB. To specify no maximum + limit, omit this parameter. + """ + +@dataclass(kw_only=True) +class MemoryInfo(_SerdeShape): + """Describes the memory for the instance type.""" + + size_in_mi_b: int | None = ... + """The size of the memory, in MiB.""" + +@dataclass(kw_only=True) +class MemoryMiB(_SerdeShape): + """The minimum and maximum amount of memory, in MiB.""" + + min: int | None = ... + """ + The minimum amount of memory, in MiB. If this parameter is not + specified, there is no minimum limit. + """ + max: int | None = ... + """ + The maximum amount of memory, in MiB. If this parameter is not + specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class MemoryMiBRequest(_SerdeShape): + """The minimum and maximum amount of memory, in MiB.""" + + min: int | None = ... + """ + The minimum amount of memory, in MiB. To specify no minimum limit, + specify `0`. + """ + max: int | None = ... + """ + The maximum amount of memory, in MiB. To specify no maximum limit, omit + this parameter. + """ + +class MetadataDefaultHttpTokensState(UnknownEnumMixin, StrEnum): + OPTIONAL = "optional" + REQUIRED = "required" + NO_PREFERENCE = "no-preference" + +class Metric(UnknownEnumMixin, StrEnum): + RESERVATION_TOTAL_CAPACITY_HRS_VCPU = "reservation-total-capacity-hrs-vcpu" + RESERVATION_TOTAL_CAPACITY_HRS_INST = "reservation-total-capacity-hrs-inst" + RESERVATION_MAX_SIZE_VCPU = "reservation-max-size-vcpu" + RESERVATION_MAX_SIZE_INST = "reservation-max-size-inst" + RESERVATION_MIN_SIZE_VCPU = "reservation-min-size-vcpu" + RESERVATION_MIN_SIZE_INST = "reservation-min-size-inst" + RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_VCPU = ( + "reservation-unused-total-capacity-hrs-vcpu" + ) + RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_INST = ( + "reservation-unused-total-capacity-hrs-inst" + ) + RESERVATION_UNUSED_TOTAL_ESTIMATED_COST = "reservation-unused-total-estimated-cost" + RESERVATION_MAX_UNUSED_SIZE_VCPU = "reservation-max-unused-size-vcpu" + RESERVATION_MAX_UNUSED_SIZE_INST = "reservation-max-unused-size-inst" + RESERVATION_MIN_UNUSED_SIZE_VCPU = "reservation-min-unused-size-vcpu" + RESERVATION_MIN_UNUSED_SIZE_INST = "reservation-min-unused-size-inst" + RESERVATION_MAX_UTILIZATION = "reservation-max-utilization" + RESERVATION_MIN_UTILIZATION = "reservation-min-utilization" + RESERVATION_AVG_UTILIZATION_VCPU = "reservation-avg-utilization-vcpu" + RESERVATION_AVG_UTILIZATION_INST = "reservation-avg-utilization-inst" + RESERVATION_TOTAL_COUNT = "reservation-total-count" + RESERVATION_TOTAL_ESTIMATED_COST = "reservation-total-estimated-cost" + RESERVATION_AVG_FUTURE_SIZE_VCPU = "reservation-avg-future-size-vcpu" + RESERVATION_AVG_FUTURE_SIZE_INST = "reservation-avg-future-size-inst" + RESERVATION_MIN_FUTURE_SIZE_VCPU = "reservation-min-future-size-vcpu" + RESERVATION_MIN_FUTURE_SIZE_INST = "reservation-min-future-size-inst" + RESERVATION_MAX_FUTURE_SIZE_VCPU = "reservation-max-future-size-vcpu" + RESERVATION_MAX_FUTURE_SIZE_INST = "reservation-max-future-size-inst" + RESERVATION_AVG_COMMITTED_SIZE_VCPU = "reservation-avg-committed-size-vcpu" + RESERVATION_AVG_COMMITTED_SIZE_INST = "reservation-avg-committed-size-inst" + RESERVATION_MAX_COMMITTED_SIZE_VCPU = "reservation-max-committed-size-vcpu" + RESERVATION_MAX_COMMITTED_SIZE_INST = "reservation-max-committed-size-inst" + RESERVATION_MIN_COMMITTED_SIZE_VCPU = "reservation-min-committed-size-vcpu" + RESERVATION_MIN_COMMITTED_SIZE_INST = "reservation-min-committed-size-inst" + RESERVED_TOTAL_USAGE_HRS_VCPU = "reserved-total-usage-hrs-vcpu" + RESERVED_TOTAL_USAGE_HRS_INST = "reserved-total-usage-hrs-inst" + RESERVED_TOTAL_ESTIMATED_COST = "reserved-total-estimated-cost" + UNRESERVED_TOTAL_USAGE_HRS_VCPU = "unreserved-total-usage-hrs-vcpu" + UNRESERVED_TOTAL_USAGE_HRS_INST = "unreserved-total-usage-hrs-inst" + UNRESERVED_TOTAL_ESTIMATED_COST = "unreserved-total-estimated-cost" + SPOT_TOTAL_USAGE_HRS_VCPU = "spot-total-usage-hrs-vcpu" + SPOT_TOTAL_USAGE_HRS_INST = "spot-total-usage-hrs-inst" + SPOT_TOTAL_ESTIMATED_COST = "spot-total-estimated-cost" + SPOT_AVG_RUN_TIME_BEFORE_INTERRUPTION_INST = ( + "spot-avg-run-time-before-interruption-inst" + ) + SPOT_MAX_RUN_TIME_BEFORE_INTERRUPTION_INST = ( + "spot-max-run-time-before-interruption-inst" + ) + SPOT_MIN_RUN_TIME_BEFORE_INTERRUPTION_INST = ( + "spot-min-run-time-before-interruption-inst" + ) + SPOT_TOTAL_INTERRUPTIONS_INST = "spot-total-interruptions-inst" + SPOT_TOTAL_INTERRUPTIONS_VCPU = "spot-total-interruptions-vcpu" + SPOT_TOTAL_COUNT_INST = "spot-total-count-inst" + SPOT_TOTAL_COUNT_VCPU = "spot-total-count-vcpu" + SPOT_INTERRUPTION_RATE_INST = "spot-interruption-rate-inst" + SPOT_INTERRUPTION_RATE_VCPU = "spot-interruption-rate-vcpu" + CAPACITY_TOTAL_REQUESTED_VCPU = "capacity-total-requested-vcpu" + CAPACITY_TOTAL_FULFILLED_VCPU = "capacity-total-fulfilled-vcpu" + SPOT_CAPACITY_TOTAL_REQUESTED_VCPU = "spot-capacity-total-requested-vcpu" + SPOT_CAPACITY_TOTAL_FULFILLED_VCPU = "spot-capacity-total-fulfilled-vcpu" + CAPACITY_REQUEST_FULFILLMENT_RATE = "capacity-request-fulfillment-rate" + AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU = "avg-inst-az-count-per-requested-vcpu" + INST_AZ_FULFILLMENT_RATE = "inst-az-fulfillment-rate" + SPOT_CAPACITY_REQUEST_FULFILLMENT_RATE = "spot-capacity-request-fulfillment-rate" + SPOT_AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU = ( + "spot-avg-inst-az-count-per-requested-vcpu" + ) + SPOT_INST_AZ_FULFILLMENT_RATE = "spot-inst-az-fulfillment-rate" + +@dataclass(kw_only=True) +class MetricDataResult(_SerdeShape): + """ + Contains a single data point from a capacity metrics query, including + the dimension values, timestamp, and metric values for that specific + combination. + """ + + dimension: CapacityManagerDimension | None = ... + """ + The dimension values that identify this specific data point, such as + account ID, region, and instance family. + """ + timestamp: datetime | None = ... + """ + The timestamp for this data point, indicating when the capacity usage + occurred. + """ + metric_values: list[MetricValue] | None = ... + """ + The metric values and statistics for this data point, containing the + actual capacity usage numbers. + """ + +@dataclass(kw_only=True) +class MetricPoint(_SerdeShape): + """ + Indicates whether the network was healthy or degraded at a particular + point. The value is aggregated from the `startDate` to the `endDate`. + Currently only `five_minutes` is supported. + """ + + start_date: datetime | None = ... + """ + The start date for the metric point. The starting date for the metric + point. The starting time must be formatted as `yyyy-mm-ddThh:mm:ss`. For + example, `2022-06-10T12:00:00.000Z`. + """ + end_date: datetime | None = ... + """ + The end date for the metric point. The ending time must be formatted as + `yyyy-mm-ddThh:mm:ss`. For example, `2022-06-12T12:00:00.000Z`. + """ + value: float | None = ... + status: str | None = ... + """The status of the metric point.""" + +class MetricType(UnknownEnumMixin, StrEnum): + AGGREGATE_LATENCY = "aggregate-latency" + +@dataclass(kw_only=True) +class MetricValue(_SerdeShape): + """ + Represents a single metric value with its associated statistic, such as + the sum or average of unused capacity hours. + """ + + metric: str | None = ... + """The name of the metric.""" + value: float | None = ... + """ + The numerical value of the metric for the specified statistic and time + period. + """ + +@dataclass(kw_only=True) +class ModificationQuoteCurrentConfiguration(_SerdeShape): + """ + Describes the configuration that a Capacity Reservation has at the time + a modification quote is generated. + """ + + instance_count: int | None = ... + """The number of instances in the Capacity Reservation.""" + reservation_state: str | None = ... + """The current state of the Capacity Reservation.""" + start_date: datetime | None = ... + """ + The start date that the Capacity Reservation has before the quoted + modification is applied. + """ + original_start_date: datetime | None = ... + """ + The start date that the Capacity Reservation was originally requested + with. This value does not change when you push out the start date. + """ + +@dataclass(kw_only=True) +class ModificationReservationUpdate(_SerdeShape): + """ + Describes the changes that a Capacity Reservation modification quote + will apply to a Capacity Reservation. + """ + + new_commitment_end_date: datetime | None = ... + """ + The date and time at which the commitment duration will expire after the + modification, in the ISO8601 format in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + new_start_date: datetime | None = ... + """ + The start date that the Capacity Reservation will have after the + modification, in the ISO8601 format in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + new_commitment_duration: int | None = ... + """ + The commitment duration, in seconds, that the Capacity Reservation will + have after the modification. + """ + +@dataclass(kw_only=True) +class ModificationTerms(_SerdeShape): + """Describes the terms of a Capacity Reservation modification quote.""" + + reservation_update: ModificationReservationUpdate | None = ... + """ + The changes that will be applied to the Capacity Reservation if you + accept the modification terms. + """ + +@dataclass(kw_only=True) +class ModifyAccountVpcEncryptionControlInput(_SerdeShape): + """Dataclass for ModifyAccountVpcEncryptionControlInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + mode: str | None = ... + """The encryption mode for the account encryption control configuration.""" + internet_gateway: str | None = ... + """ + Specifies whether to exclude internet gateway resource from + account-level encryption enforcement. + """ + egress_only_internet_gateway: str | None = ... + """ + Specifies whether to exclude egress-only internet gateway resource from + account-level encryption enforcement. + """ + nat_gateway: str | None = ... + """ + Specifies whether to exclude NAT gateway resource from account-level + encryption enforcement. + """ + virtual_private_gateway: str | None = ... + """ + Specifies whether to exclude virtual private gateway resource from + account-level encryption enforcement. + """ + vpc_peering: str | None = ... + """ + Specifies whether to exclude VPC peering connection resource from + account-level encryption enforcement. + """ + lambda_: str | None = ... + """ + Specifies whether to exclude Lambda service from account-level + encryption enforcement. + """ + vpc_lattice: str | None = ... + """ + Specifies whether to exclude VPC Lattice service from account-level + encryption enforcement. + """ + elastic_file_system: str | None = ... + """ + Specifies whether to exclude Elastic File System service from + account-level encryption enforcement. + """ + +@dataclass(kw_only=True) +class ModifyAccountVpcEncryptionControlOutput(_SerdeShape): + """Dataclass for ModifyAccountVpcEncryptionControlOutput structure.""" + + account_vpc_encryption_control: AccountVpcEncryptionControl | None = ... + """ + Information about the account-level VPC Encryption Control + configuration. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyAddressAttributeInput(_SerdeShape): + """Dataclass for ModifyAddressAttributeInput structure.""" + + allocation_id: str | None = ... + """[EC2-VPC] The allocation ID.""" + domain_name: str | None = ... + """The domain name to modify for the IP address.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyAddressAttributeOutput(_SerdeShape): + """Dataclass for ModifyAddressAttributeOutput structure.""" + + address: AddressAttribute | None = ... + """Information about the Elastic IP address.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyApplicationStatusCheckInput(_SerdeShape): + """Dataclass for ModifyApplicationStatusCheckInput structure.""" + + application_status_check_id: str | None = ... + """The ID of the application status check to modify.""" + aggregation: str | None = ... + """ + The aggregation setting for the application status check. When set to + `included`, the result of this check contributes to the instance-level + application status reported by `DescribeApplicationStatus`. When set to + `excluded`, the check runs independently and does not affect the + instance-level status. Valid values: `included` | `excluded`. + """ + health_check_paths: list[HealthCheckPathRequestObject] | None = ... + """The health check paths to use for the application status check.""" + protocol: str | None = ... + """ + The protocol to use for the health check. Valid values: `http` | + `https`. + """ + port: int | None = ... + """The port to use for the health check. Valid values: 1 to 65535.""" + path: str | None = ... + """ + The URL path to use for the health check HTTP request (for example, + `/health` or `/status`). + """ + device_index: int | None = ... + """ + The index of the network device to use for the health check. The value + must be greater than or equal to 0. + """ + ip_version: str | None = ... + """ + The IP version to use for the health check. Valid values: `ipv4` and + `ipv6`. + """ + ip_scope: str | None = ... + """The IP scope to use for the health check. Valid value: `private`.""" + interval: int | None = ... + """The interval, in seconds, between health checks. Valid value: 60.""" + timeout: int | None = ... + """ + The amount of time, in seconds, to wait for a health check response + before considering it failed. Valid values: 1 to 30. The value must be + less than `Interval`. + """ + failure_threshold: int | None = ... + """ + The number of consecutive failed health checks before the application + status is considered impaired. The value must be greater than 0. + """ + success_threshold: int | None = ... + """ + The number of consecutive successful health checks before the + application status is considered healthy. The value must be greater than + 0. + """ + status_code_matcher: str | None = ... + """ + The HTTP status codes that indicate a successful health check response. + Specify a comma-separated list of individual status codes or ranges, for + example, `200,202,300-399`. For a range, the first value must be less + than the second value. Maximum length: 64 characters. + """ + initialization_grace_period_seconds: int | None = ... + """ + The number of seconds to wait before starting health checks after an + instance is launched. Valid values: 1 to 600. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If you retry a request with + the same token, the service ignores the request but does not return an + error. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyApplicationStatusCheckOutput(_SerdeShape): + """Dataclass for ModifyApplicationStatusCheckOutput structure.""" + + application_status_check: ApplicationStatusCheckResponseObject | None = ... + """Information about the modified application status check.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyAvailabilityZoneGroupInput(_SerdeShape): + """Dataclass for ModifyAvailabilityZoneGroupInput structure.""" + + group_name: str | None = ... + """ + The name of the Availability Zone group, Local Zone group, or Wavelength + Zone group. + """ + opt_in_status: str | None = ... + """ + Indicates whether to opt in to the zone group. The only valid value is + `opted-in`. You must contact Amazon Web Services Support to opt out of a + Local Zone or Wavelength Zone group. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyAvailabilityZoneGroupOutput(_SerdeShape): + """Dataclass for ModifyAvailabilityZoneGroupOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ModifyAvailabilityZoneOptInStatus(UnknownEnumMixin, StrEnum): + OPTED_IN = "opted-in" + NOT_OPTED_IN = "not-opted-in" + +@dataclass(kw_only=True) +class ModifyCapacityReservationFleetInput(_SerdeShape): + """Dataclass for ModifyCapacityReservationFleetInput structure.""" + + capacity_reservation_fleet_id: str | None = ... + """The ID of the Capacity Reservation Fleet to modify.""" + total_target_capacity: int | None = ... + """ + The total number of capacity units to be reserved by the Capacity + Reservation Fleet. This value, together with the instance type weights + that you assign to each instance type used by the Fleet determine the + number of instances for which the Fleet reserves capacity. Both values + are based on units that make sense for your workload. For more + information, see [Total target + capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + in the *Amazon EC2 User Guide*. + """ + end_date: datetime | None = ... + """ + The date and time at which the Capacity Reservation Fleet expires. When + the Capacity Reservation Fleet expires, its state changes to `expired` + and all of the Capacity Reservations in the Fleet expire. + + The Capacity Reservation Fleet expires within an hour after the + specified time. For example, if you specify `5/31/2019`, `13:30:55`, the + Capacity Reservation Fleet is guaranteed to expire between `13:30:55` + and `14:30:55` on `5/31/2019`. + + You can't specify **EndDate** and **RemoveEndDate** in the same + request. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + remove_end_date: bool | None = ... + """ + Indicates whether to remove the end date from the Capacity Reservation + Fleet. If you remove the end date, the Capacity Reservation Fleet does + not expire and it remains active until you explicitly cancel it using + the **CancelCapacityReservationFleet** action. + + You can't specify **RemoveEndDate** and **EndDate** in the same + request. + """ + +@dataclass(kw_only=True) +class ModifyCapacityReservationFleetOutput(_SerdeShape): + """Dataclass for ModifyCapacityReservationFleetOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyCapacityReservationInput(_SerdeShape): + """Dataclass for ModifyCapacityReservationInput structure.""" + + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation.""" + instance_count: int | None = ... + """ + The number of instances for which to reserve capacity. The number of + instances can't be increased or decreased by more than `1000` in a + single request. + """ + end_date: datetime | None = ... + """ + The date and time at which the Capacity Reservation expires. When a + Capacity Reservation expires, the reserved capacity is released and you + can no longer launch instances into it. The Capacity Reservation's + state changes to `expired` when it reaches its end date and time. + + The Capacity Reservation is cancelled within an hour from the specified + time. For example, if you specify 5/31/2019, 13:30:55, the Capacity + Reservation is guaranteed to end between 13:30:55 and 14:30:55 on + 5/31/2019. + + You must provide an `EndDate` value if `EndDateType` is `limited`. Omit + `EndDate` if `EndDateType` is `unlimited`. + """ + end_date_type: str | None = ... + """ + Indicates the way in which the Capacity Reservation ends. A Capacity + Reservation can have one of the following end types: + + - `unlimited` - The Capacity Reservation remains active until you + explicitly cancel it. Do not provide an `EndDate` value if + `EndDateType` is `unlimited`. + + - `limited` - The Capacity Reservation expires automatically at a + specified date and time. You must provide an `EndDate` value if + `EndDateType` is `limited`. + """ + accept: bool | None = ... + """ + Reserved. Capacity Reservations you have created are accepted by + default. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + additional_info: str | None = ... + """Reserved for future use.""" + instance_match_criteria: str | None = ... + """ + The matching criteria (instance eligibility) that you want to use in the + modified Capacity Reservation. If you change the instance eligibility of + an existing Capacity Reservation from `targeted` to `open`, any running + instances that match the attributes of the Capacity Reservation, have + the `CapacityReservationPreference` set to `open`, and are not yet + running in the Capacity Reservation, will automatically use the modified + Capacity Reservation. + + To modify the instance eligibility, the Capacity Reservation must be + completely idle (zero usage). + """ + accept_modification_terms: bool | None = ... + """ + Indicates that you accept the modification terms of the quote identified + by `QuoteId`. To apply a quoted modification, set this parameter to + `true`. + """ + start_date: datetime | None = ... + """ + The new start date for the Capacity Reservation, in the ISO8601 format + in the UTC time zone (`YYYY-MM-DDThh:mm:ss.sssZ`). Applies to + future-dated Capacity Reservations only. Requires a quote from + `CreateCapacityReservationDateChangeQuote`; pass the quote ID in + `QuoteId` with `AcceptModificationTerms` set to `true`. + """ + quote_id: str | None = ... + """ + The ID of the quote that describes the modification you want to apply. + Generate a quote by using `CreateCapacityReservationDateChangeQuote`. + The quote must be in the `active` state, and each quote can be used only + once. + """ + +@dataclass(kw_only=True) +class ModifyCapacityReservationOutput(_SerdeShape): + """Dataclass for ModifyCapacityReservationOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + adjustment_status: str | None = ... + """ + The status of the requested modification. For a description of each + possible value, see the `adjustmentStatus` field of the + `CapacityReservation` data type. + """ + adjustment_details: CapacityReservationAdjustmentDetails | None = ... + """ + The configuration that the Capacity Reservation will have after the + adjustment is applied. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyClientVpnEndpointAuthorizationPolicyInput(_SerdeShape): + """Dataclass for ModifyClientVpnEndpointAuthorizationPolicyInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + policy_document: str | None = ... + """ + The authorization policy document, written in the Cedar policy language. + This parameter is required when you create the authorization policy for + a Client VPN endpoint that does not already have one. + """ + description: str | None = ... + """A brief description of the authorization policy.""" + shadow_mode: str | None = ... + """ + Specifies whether the authorization policy is evaluated in shadow mode. + Possible values include: + + - `enabled` - The authorization policy is evaluated and the results are + logged, but access is not enforced. + + - `disabled` - The authorization policy is enforced. + + The default value is `disabled`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyClientVpnEndpointAuthorizationPolicyOutput(_SerdeShape): + """ + Dataclass for ModifyClientVpnEndpointAuthorizationPolicyOutput + structure. + """ + + status: str | None = ... + """The current state of the authorization policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyClientVpnEndpointInput(_SerdeShape): + """Dataclass for ModifyClientVpnEndpointInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint to modify.""" + server_certificate_arn: str | None = ... + """ + The ARN of the server certificate to be used. The server certificate + must be provisioned in Certificate Manager (ACM). + """ + connection_log_options: ConnectionLogOptions | None = ... + """ + Information about the client connection logging options. + + If you enable client connection logging, data about client connections + is sent to a Cloudwatch Logs log stream. The following information is + logged: + + - Client connection requests + + - Client connection results (successful and unsuccessful) + + - Reasons for unsuccessful client connection requests + + - Client connection termination time + """ + dns_servers: DnsServersOptionsModifyStructure | None = ... + """ + Information about the DNS servers to be used by Client VPN connections. + A Client VPN endpoint can have up to two DNS servers. + """ + vpn_port: int | None = ... + """ + The port number to assign to the Client VPN endpoint for TCP and UDP + traffic. + + Valid Values: `443` | `1194` + + Default Value: `443` + """ + description: str | None = ... + """A brief description of the Client VPN endpoint.""" + split_tunnel: bool | None = ... + """ + Indicates whether the VPN is split-tunnel. + + For information about split-tunnel VPN endpoints, see [Split-tunnel + Client VPN + endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) + in the *Client VPN Administrator Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + security_group_ids: list[str] | None = ... + """The IDs of one or more security groups to apply to the target network.""" + vpc_id: str | None = ... + """The ID of the VPC to associate with the Client VPN endpoint.""" + self_service_portal: str | None = ... + """ + Specify whether to enable the self-service portal for the Client VPN + endpoint. + """ + client_connect_options: ClientConnectOptions | None = ... + """ + The options for managing connection authorization for new client + connections. + """ + session_timeout_hours: int | None = ... + """ + The maximum VPN session duration time in hours. + + Valid values: `8 | 10 | 12 | 24` + + Default value: `24` + """ + client_login_banner_options: ClientLoginBannerOptions | None = ... + """ + Options for enabling a customizable text banner that will be displayed + on Amazon Web Services provided clients when a VPN session is + established. + """ + client_route_enforcement_options: ClientRouteEnforcementOptions | None = ... + """ + Client route enforcement is a feature of the Client VPN service that + helps enforce administrator defined routes on devices connected through + the VPN. T his feature helps improve your security posture by ensuring + that network traffic originating from a connected client is not + inadvertently sent outside the VPN tunnel. + + Client route enforcement works by monitoring the route table of a + connected device for routing policy changes to the VPN connection. If + the feature detects any VPN routing policy modifications, it will + automatically force an update to the route table, reverting it back to + the expected route configurations. + """ + disconnect_on_session_timeout: bool | None = ... + """ + Indicates whether the client VPN session is disconnected after the + maximum timeout specified in `sessionTimeoutHours` is reached. If + `true`, users are prompted to reconnect client VPN. If `false`, client + VPN attempts to reconnect automatically. The default value is `true`. + """ + transit_gateway_configuration: ( + TransitGatewayConfigurationInputStructure | None + ) = ... + """ + The Transit Gateway configuration for the Client VPN endpoint. This + option is currently not supported. + """ + device_posture_options: DevicePostureOptions | None = ... + """ + The device posture options for the Client VPN endpoint. Specifying this + parameter replaces the entire device posture configuration for the + endpoint. To disable device posture and remove all device trust + providers, specify `false` for `Enabled`. + """ + +@dataclass(kw_only=True) +class ModifyClientVpnEndpointOutput(_SerdeShape): + """Dataclass for ModifyClientVpnEndpointOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDefaultCreditSpecificationInput(_SerdeShape): + """Dataclass for ModifyDefaultCreditSpecificationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_family: str | None = ... + """The instance family.""" + cpu_credits: str | None = ... + """ + The credit option for CPU usage of the instance family. + + Valid Values: `standard` | `unlimited` + """ + +@dataclass(kw_only=True) +class ModifyDefaultCreditSpecificationOutput(_SerdeShape): + """Dataclass for ModifyDefaultCreditSpecificationOutput structure.""" + + instance_family_credit_specification: InstanceFamilyCreditSpecification | None = ... + """The default credit option for CPU usage of the instance family.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyEbsDefaultKmsKeyIdInput(_SerdeShape): + """Dataclass for ModifyEbsDefaultKmsKeyIdInput structure.""" + + kms_key_id: str | None = ... + """ + The identifier of the KMS key to use for Amazon EBS encryption. If this + parameter is not specified, your KMS key for Amazon EBS is used. If + `KmsKeyId` is specified, the encrypted state must be `true`. + + You can specify the KMS key using any of the following: + + - Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + - Key alias. For example, alias/ExampleAlias. + + - Key ARN. For example, + arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + - Alias ARN. For example, + arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + + Amazon Web Services authenticates the KMS key asynchronously. Therefore, + if you specify an ID, alias, or ARN that is not valid, the action can + appear to complete, but eventually fails. + + Amazon EBS does not support asymmetric KMS keys. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyEbsDefaultKmsKeyIdOutput(_SerdeShape): + """Dataclass for ModifyEbsDefaultKmsKeyIdOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the default KMS key for encryption by + default. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyFleetInput(_SerdeShape): + """Dataclass for ModifyFleetInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + excess_capacity_termination_policy: str | None = ... + """ + Indicates whether running instances should be terminated if the total + target capacity of the EC2 Fleet is decreased below the current size of + the EC2 Fleet. + + Supported only for fleets of type `maintain`. + """ + launch_template_configs: list[FleetLaunchTemplateConfigRequest] | None = ... + """The launch template and overrides.""" + fleet_id: str | None = ... + """The ID of the EC2 Fleet.""" + target_capacity_specification: TargetCapacitySpecificationRequest | None = ... + """The size of the EC2 Fleet.""" + context: str | None = ... + """Reserved.""" + +@dataclass(kw_only=True) +class ModifyFleetOutput(_SerdeShape): + """Dataclass for ModifyFleetOutput structure.""" + + return_: bool | None = ... + """ + If the request succeeds, the response returns `true`. If the request + fails, no response is returned, and instead an error message is + returned. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyFpgaImageAttributeInput(_SerdeShape): + """Dataclass for ModifyFpgaImageAttributeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fpga_image_id: str | None = ... + """The ID of the AFI.""" + attribute: str | None = ... + """The name of the attribute.""" + operation_type: str | None = ... + """The operation type.""" + user_ids: list[str] | None = ... + """ + The Amazon Web Services account IDs. This parameter is valid only when + modifying the `loadPermission` attribute. + """ + user_groups: list[str] | None = ... + """ + The user groups. This parameter is valid only when modifying the + `loadPermission` attribute. + """ + product_codes: list[str] | None = ... + """ + The product codes. After you add a product code to an AFI, it can't be + removed. This parameter is valid only when modifying the `productCodes` + attribute. + """ + load_permission: LoadPermissionModifications | None = ... + """The load permission for the AFI.""" + description: str | None = ... + """A description for the AFI.""" + name: str | None = ... + """A name for the AFI.""" + +@dataclass(kw_only=True) +class ModifyFpgaImageAttributeOutput(_SerdeShape): + """Dataclass for ModifyFpgaImageAttributeOutput structure.""" + + fpga_image_attribute: FpgaImageAttribute | None = ... + """Information about the attribute.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyHostsInput(_SerdeShape): + """Dataclass for ModifyHostsInput structure.""" + + host_recovery: str | None = ... + """ + Indicates whether to enable or disable host recovery for the Dedicated + Host. For more information, see [Host + recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) + in the *Amazon EC2 User Guide*. + """ + instance_type: str | None = ... + """ + Specifies the instance type to be supported by the Dedicated Host. + Specify this parameter to modify a Dedicated Host to support only a + specific instance type. + + If you want to modify a Dedicated Host to support multiple instance + types in its current instance family, omit this parameter and specify + **InstanceFamily** instead. You cannot specify **InstanceType** and + **InstanceFamily** in the same request. + """ + instance_family: str | None = ... + """ + Specifies the instance family to be supported by the Dedicated Host. + Specify this parameter to modify a Dedicated Host to support multiple + instance types within its current instance family. + + If you want to modify a Dedicated Host to support a specific instance + type only, omit this parameter and specify **InstanceType** instead. You + cannot specify **InstanceFamily** and **InstanceType** in the same + request. + """ + host_maintenance: str | None = ... + """ + Indicates whether to enable or disable host maintenance for the + Dedicated Host. For more information, see [Host + maintenance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-maintenance.html) + in the *Amazon EC2 User Guide*. + """ + host_ids: list[str] | None = ... + """The IDs of the Dedicated Hosts to modify.""" + auto_placement: str | None = ... + """Specify whether to enable or disable auto-placement.""" + +@dataclass(kw_only=True) +class ModifyHostsOutput(_SerdeShape): + """Dataclass for ModifyHostsOutput structure.""" + + successful: list[str] | None = ... + """The IDs of the Dedicated Hosts that were successfully modified.""" + unsuccessful: list[UnsuccessfulItem] | None = ... + """ + The IDs of the Dedicated Hosts that could not be modified. Check whether + the setting you requested can be used. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIdentityIdFormatInput(_SerdeShape): + """Dataclass for ModifyIdentityIdFormatInput structure.""" + + resource: str | None = ... + """ + The type of resource: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + Alternatively, use the `all-current` option to include all resource + types that are currently within their opt-in period for longer IDs. + """ + use_long_ids: bool | None = ... + """Indicates whether the resource should use longer IDs (17-character IDs)""" + principal_arn: str | None = ... + """ + The ARN of the principal, which can be an IAM user, IAM role, or the + root user. Specify `all` to modify the ID format for all IAM users, IAM + roles, and the root user of the account. + """ + +@dataclass(kw_only=True) +class ModifyIdentityIdFormatOutput(_SerdeShape): + """Dataclass for ModifyIdentityIdFormatOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIdFormatInput(_SerdeShape): + """Dataclass for ModifyIdFormatInput structure.""" + + resource: str | None = ... + """ + The type of resource: `bundle` | `conversion-task` | + `customer-gateway` | `dhcp-options` | `elastic-ip-allocation` | + `elastic-ip-association` | `export-task` | `flow-log` | `image` | + `import-task` | `internet-gateway` | `network-acl` | + `network-acl-association` | `network-interface` | + `network-interface-attachment` | `prefix-list` | `route-table` | + `route-table-association` | `security-group` | `subnet` | + `subnet-cidr-block-association` | `vpc` | `vpc-cidr-block-association` + | `vpc-endpoint` | `vpc-peering-connection` | `vpn-connection` | + `vpn-gateway`. + + Alternatively, use the `all-current` option to include all resource + types that are currently within their opt-in period for longer IDs. + """ + use_long_ids: bool | None = ... + """Indicate whether the resource should use longer IDs (17-character IDs).""" + +@dataclass(kw_only=True) +class ModifyIdFormatOutput(_SerdeShape): + """Dataclass for ModifyIdFormatOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyImageAttributeInput(_SerdeShape): + """Contains the parameters for ModifyImageAttribute.""" + + attribute: str | None = ... + """ + The name of the attribute to modify. + + Valid values: `description` | `imdsSupport` | `launchPermission` + """ + description: AttributeValue | None = ... + """A new description for the AMI.""" + image_id: str | None = ... + """The ID of the AMI.""" + launch_permission: LaunchPermissionModifications | None = ... + """A new launch permission for the AMI.""" + operation_type: str | None = ... + """ + The operation type. This parameter can be used only when the `Attribute` + parameter is `launchPermission`. + """ + product_codes: list[str] | None = ... + """Not supported.""" + user_groups: list[str] | None = ... + """ + The user groups. This parameter can be used only when the `Attribute` + parameter is `launchPermission`. + """ + user_ids: list[str] | None = ... + """ + The Amazon Web Services account IDs. This parameter can be used only + when the `Attribute` parameter is `launchPermission`. + """ + value: str | None = ... + """ + The value of the attribute being modified. This parameter can be used + only when the `Attribute` parameter is `description` or `imdsSupport`. + """ + organization_arns: list[str] | None = ... + """ + The Amazon Resource Name (ARN) of an organization. This parameter can be + used only when the `Attribute` parameter is `launchPermission`. + """ + organizational_unit_arns: list[str] | None = ... + """ + The Amazon Resource Name (ARN) of an organizational unit (OU). This + parameter can be used only when the `Attribute` parameter is + `launchPermission`. + """ + imds_support: AttributeValue | None = ... + """ + Set to `v2.0` to indicate that IMDSv2 is specified in the AMI. Instances + launched from this AMI will have `HttpTokens` automatically set to + `required` so that, by default, the instance requires that IMDSv2 is + used when requesting instance metadata. In addition, + `HttpPutResponseHopLimit` is set to `2`. For more information, see + [Configure the + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) + in the *Amazon EC2 User Guide*. + + Warning: + Do not use this parameter unless your AMI software supports IMDSv2. + After you set the value to `v2.0`, you can't undo it. The only way to + "reset" your AMI is to create a new AMI from the underlying snapshot. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyImageAttributeOutput(_SerdeShape): + """Dataclass for ModifyImageAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceAttributeInput(_SerdeShape): + """Dataclass for ModifyInstanceAttributeInput structure.""" + + source_dest_check: AttributeBooleanValue | None = ... + """ + Enable or disable source/destination checks, which ensure that the + instance is either the source or the destination of any traffic that it + receives. If the value is `true`, source/destination checks are enabled; + otherwise, they are disabled. The default value is `true`. You must + disable source/destination checks if the instance runs services such as + network address translation, routing, or firewalls. + """ + enclave_options: EnclaveOptionsRequest | None = ... + """ + Enables or disables the instance for Amazon Web Services Nitro Enclaves. + For more information, see the [Amazon Web Services Nitro Enclaves User + Guide](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). + """ + disable_api_stop: AttributeBooleanValue | None = ... + """ + Indicates whether an instance is enabled for stop protection. For more + information, see [Enable stop protection for your + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + attribute: str | None = ... + """ + The name of the attribute to modify. + + Note: + When changing the instance type: If the original instance type is + configured for configurable bandwidth, and the desired instance type + doesn't support configurable bandwidth, first set the existing + bandwidth configuration to `default` using the + ModifyInstanceNetworkPerformanceOptions operation. + Warning: + You can modify the following attributes only: `disableApiTermination` | + `instanceType` | `kernel` | `ramdisk` | + `instanceInitiatedShutdownBehavior` | `blockDeviceMapping` | + `userData` | `sourceDestCheck` | `groupSet` | `ebsOptimized` | + `sriovNetSupport` | `enaSupport` | `nvmeSupport` | `disableApiStop` + | `enclaveOptions` + """ + value: str | None = ... + """ + A new value for the attribute. Use only with the `kernel`, `ramdisk`, + `userData`, `disableApiTermination`, or + `instanceInitiatedShutdownBehavior` attribute. + """ + block_device_mappings: list[InstanceBlockDeviceMappingSpecification] | None = ... + """ + Modifies the `DeleteOnTermination` attribute for volumes that are + currently attached. The volume must be owned by the caller. If no value + is specified for `DeleteOnTermination`, the default is `true` and the + volume is deleted when the instance is terminated. You can't modify the + `DeleteOnTermination` attribute for volumes that are attached to Amazon + Web Services-managed resources. + + To add instance store volumes to an Amazon EBS-backed instance, you must + add them when you launch the instance. For more information, see [Update + the block device mapping when launching an + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM) + in the *Amazon EC2 User Guide*. + """ + disable_api_termination: AttributeBooleanValue | None = ... + """ + Enable or disable termination protection for the instance. If the value + is `true`, you can't terminate the instance using the Amazon EC2 + console, command line interface, or API. You can't enable termination + protection for Spot Instances. + """ + instance_type: AttributeValue | None = ... + """ + Changes the instance type to the specified value. For more information, + see [Instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. If the instance type is not valid, the + error returned is `InvalidInstanceAttributeValue`. + """ + kernel: AttributeValue | None = ... + """ + Changes the instance's kernel to the specified value. We recommend that + you use PV-GRUB instead of kernels and RAM disks. For more information, + see + [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html). + """ + ramdisk: AttributeValue | None = ... + """ + Changes the instance's RAM disk to the specified value. We recommend + that you use PV-GRUB instead of kernels and RAM disks. For more + information, see + [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html). + """ + user_data: SecureBlobAttributeValue | None = ... + """ + Changes the instance's user data to the specified value. User data must + be base64-encoded. Depending on the tool or SDK that you're using, the + base64-encoding might be performed for you. For more information, see + [Work with instance user + data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-add-user-data.html). + """ + instance_initiated_shutdown_behavior: AttributeValue | None = ... + """ + Specifies whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + """ + groups: list[str] | None = ... + """ + Replaces the security groups of the instance with the specified security + groups. You must specify the ID of at least one security group, even if + it's just the default security group for the VPC. + """ + ebs_optimized: AttributeBooleanValue | None = ... + """ + Specifies whether the instance is optimized for Amazon EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal EBS I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS Optimized instance. + """ + sriov_net_support: AttributeValue | None = ... + """ + Set to `simple` to enable enhanced networking with the Intel 82599 + Virtual Function interface for the instance. + + There is no way to disable enhanced networking with the Intel 82599 + Virtual Function interface at this time. + + This option is supported only for HVM instances. Specifying this option + with a PV instance can make it unreachable. + """ + ena_support: AttributeBooleanValue | None = ... + """ + Set to `true` to enable enhanced networking with ENA for the instance. + + This option is supported only for HVM instances. Specifying this option + with a PV instance can make it unreachable. + """ + +@dataclass(kw_only=True) +class ModifyInstanceAttributeOutput(_SerdeShape): + """Dataclass for ModifyInstanceAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceCapacityReservationAttributesInput(_SerdeShape): + """ + Dataclass for ModifyInstanceCapacityReservationAttributesInput + structure. + """ + + instance_id: str | None = ... + """The ID of the instance to be modified.""" + capacity_reservation_specification: CapacityReservationSpecification | None = ... + """Information about the Capacity Reservation targeting option.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyInstanceCapacityReservationAttributesOutput(_SerdeShape): + """ + Dataclass for ModifyInstanceCapacityReservationAttributesOutput + structure. + """ + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceConnectEndpointInput(_SerdeShape): + """Dataclass for ModifyInstanceConnectEndpointInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_connect_endpoint_id: str | None = ... + """The ID of the EC2 Instance Connect Endpoint to modify.""" + ip_address_type: str | None = ... + """ + The new IP address type for the EC2 Instance Connect Endpoint. + + Note: + `PreserveClientIp` is only supported on IPv4 EC2 Instance Connect + Endpoints. To use `PreserveClientIp`, the value for `IpAddressType` must + be `ipv4`. + """ + security_group_ids: list[str] | None = ... + """ + Changes the security groups for the EC2 Instance Connect Endpoint. The + new set of groups you specify replaces the current set. You must specify + at least one group, even if it's just the default security group in the + VPC. You must specify the ID of the security group, not the name. + """ + preserve_client_ip: bool | None = ... + """ + Indicates whether the client IP address is preserved as the source when + you connect to a resource. The following are the possible values. + + - `true` - Use the IP address of the client. Your instance must have an + IPv4 address. + + - `false` - Use the IP address of the network interface. + """ + +@dataclass(kw_only=True) +class ModifyInstanceConnectEndpointOutput(_SerdeShape): + """Dataclass for ModifyInstanceConnectEndpointOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceCpuOptionsInput(_SerdeShape): + """Dataclass for ModifyInstanceCpuOptionsInput structure.""" + + instance_id: str | None = ... + """The ID of the instance to update.""" + core_count: int | None = ... + """The number of CPU cores to activate for the specified instance.""" + threads_per_core: int | None = ... + """The number of threads to run for each CPU core.""" + nested_virtualization: str | None = ... + """ + Indicates whether to enable or disable nested virtualization for the + instance. When nested virtualization is enabled, Virtual Secure Mode + (VSM) is automatically disabled for the instance. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyInstanceCpuOptionsOutput(_SerdeShape): + """Dataclass for ModifyInstanceCpuOptionsOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance that was updated.""" + core_count: int | None = ... + """ + The number of CPU cores that are running for the specified instance + after the update. + """ + threads_per_core: int | None = ... + """ + The number of threads that are running per CPU core for the specified + instance after the update. + """ + nested_virtualization: str | None = ... + """Indicates whether nested virtualization has been enabled or disabled.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceCreditSpecificationInput(_SerdeShape): + """Dataclass for ModifyInstanceCreditSpecificationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + instance_credit_specifications: ( + list[InstanceCreditSpecificationRequest] | None + ) = ... + """Information about the credit option for CPU usage.""" + +@dataclass(kw_only=True) +class ModifyInstanceCreditSpecificationOutput(_SerdeShape): + """Dataclass for ModifyInstanceCreditSpecificationOutput structure.""" + + successful_instance_credit_specifications: ( + list[SuccessfulInstanceCreditSpecificationItem] | None + ) = ... + """ + Information about the instances whose credit option for CPU usage was + successfully modified. + """ + unsuccessful_instance_credit_specifications: ( + list[UnsuccessfulInstanceCreditSpecificationItem] | None + ) = ... + """ + Information about the instances whose credit option for CPU usage was + not modified. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceEventStartTimeInput(_SerdeShape): + """Dataclass for ModifyInstanceEventStartTimeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance with the scheduled event.""" + instance_event_id: str | None = ... + """The ID of the event whose date and time you are modifying.""" + not_before: datetime | None = ... + """The new date and time when the event will take place.""" + +@dataclass(kw_only=True) +class ModifyInstanceEventStartTimeOutput(_SerdeShape): + """Dataclass for ModifyInstanceEventStartTimeOutput structure.""" + + event: InstanceStatusEvent | None = ... + """Information about the event.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceEventWindowInput(_SerdeShape): + """Dataclass for ModifyInstanceEventWindowInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + name: str | None = ... + """The name of the event window.""" + instance_event_window_id: str | None = ... + """The ID of the event window.""" + time_ranges: list[InstanceEventWindowTimeRangeRequest] | None = ... + """The time ranges of the event window.""" + cron_expression: str | None = ... + """ + The cron expression of the event window, for example, + `* 0-4,20-23 * * 1,5`. + + Constraints: + + - Only hour and day of the week values are supported. + + - For day of the week values, you can specify either integers `0` + through `6`, or alternative single values `SUN` through `SAT`. + + - The minute, month, and year must be specified by `*`. + + - The hour value must be one or a multiple range, for example, `0-4` or + `0-4,20-23`. + + - Each hour range must be >= 2 hours, for example, `0-2` or `20-23`. + + - The event window must be >= 4 hours. The combined total time ranges + in the event window must be >= 4 hours. + + For more information about cron expressions, see + [cron](https://en.wikipedia.org/wiki/Cron) on the *Wikipedia website*. + """ + +@dataclass(kw_only=True) +class ModifyInstanceEventWindowOutput(_SerdeShape): + """Dataclass for ModifyInstanceEventWindowOutput structure.""" + + instance_event_window: InstanceEventWindow | None = ... + """Information about the event window.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceMaintenanceOptionsInput(_SerdeShape): + """Dataclass for ModifyInstanceMaintenanceOptionsInput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + auto_recovery: str | None = ... + """ + Disables the automatic recovery behavior of your instance or sets it to + default. + """ + reboot_migration: str | None = ... + """ + Specifies whether to attempt reboot migration during a user-initiated + reboot of an instance that has a scheduled `system-reboot` event: + + - `default` - Amazon EC2 attempts to migrate the instance to new + hardware (reboot migration). If successful, the `system-reboot` event + is cleared. If unsuccessful, an in-place reboot occurs and the event + remains scheduled. + + - `disabled` - Amazon EC2 keeps the instance on the same hardware + (in-place reboot). The `system-reboot` event remains scheduled. + + This setting only applies to supported instances that have a scheduled + reboot event. For more information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration) + in the *Amazon EC2 User Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyInstanceMaintenanceOptionsOutput(_SerdeShape): + """Dataclass for ModifyInstanceMaintenanceOptionsOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + auto_recovery: str | None = ... + """ + Provides information on the current automatic recovery behavior of your + instance. + """ + reboot_migration: str | None = ... + """ + Specifies whether to attempt reboot migration during a user-initiated + reboot of an instance that has a scheduled `system-reboot` event: + + - `default` - Amazon EC2 attempts to migrate the instance to new + hardware (reboot migration). If successful, the `system-reboot` event + is cleared. If unsuccessful, an in-place reboot occurs and the event + remains scheduled. + + - `disabled` - Amazon EC2 keeps the instance on the same hardware + (in-place reboot). The `system-reboot` event remains scheduled. + + This setting only applies to supported instances that have a scheduled + reboot event. For more information, see [Enable or disable reboot + migration](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration) + in the *Amazon EC2 User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceMetadataDefaultsInput(_SerdeShape): + """Dataclass for ModifyInstanceMetadataDefaultsInput structure.""" + + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` -- IMDSv2 is optional, which means that you can use either + IMDSv2 or IMDSv1. + + - `required` -- IMDSv2 is required, which means that IMDSv1 is disabled, + and you must use IMDSv2. + """ + http_put_response_hop_limit: int | None = ... + """ + The maximum number of hops that the metadata token can travel. To + indicate no preference, specify `-1`. + + Possible values: Integers from `1` to `64`, and `-1` to indicate no + preference + """ + http_endpoint: str | None = ... + """ + Enables or disables the IMDS endpoint on an instance. When disabled, the + instance metadata can't be accessed. + """ + instance_metadata_tags: str | None = ... + """ + Enables or disables access to an instance's tags from the instance + metadata. For more information, see [View tags for your EC2 instances + using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html) + in the *Amazon EC2 User Guide*. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + http_tokens_enforced: str | None = ... + """ + Specifies whether to enforce the requirement of IMDSv2 on an instance at + the time of launch. When enforcement is enabled, the instance can't + launch unless IMDSv2 (`HttpTokens`) is set to `required`. For more + information, see [Enforce IMDSv2 at the account + level](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#enforce-imdsv2-at-the-account-level) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class ModifyInstanceMetadataDefaultsOutput(_SerdeShape): + """Dataclass for ModifyInstanceMetadataDefaultsOutput structure.""" + + return_: bool | None = ... + """ + If the request succeeds, the response returns `true`. If the request + fails, no response is returned, and instead an error message is + returned. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceMetadataOptionsInput(_SerdeShape): + """Dataclass for ModifyInstanceMetadataOptionsInput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + http_tokens: str | None = ... + """ + Indicates whether IMDSv2 is required. + + - `optional` - IMDSv2 is optional. You can choose whether to send a + session token in your instance metadata retrieval requests. If you + retrieve IAM role credentials without a session token, you receive the + IMDSv1 role credentials. If you retrieve IAM role credentials using a + valid session token, you receive the IMDSv2 role credentials. + + - `required` - IMDSv2 is required. You must send a session token in your + instance metadata retrieval requests. With this option, retrieving the + IAM role credentials always returns IMDSv2 credentials; IMDSv1 + credentials are not available. + + Default: + + - If the value of `ImdsSupport` for the Amazon Machine Image (AMI) for + your instance is `v2.0` and the account level default is set to + `no-preference`, the default is `required`. + + - If the value of `ImdsSupport` for the Amazon Machine Image (AMI) for + your instance is `v2.0`, but the account level default is set to + `V1 or V2`, the default is `optional`. + + The default value can also be affected by other combinations of + parameters. For more information, see [Order of precedence for instance + metadata + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + in the *Amazon EC2 User Guide*. + """ + http_put_response_hop_limit: int | None = ... + """ + The desired HTTP PUT response hop limit for instance metadata requests. + The larger the number, the further instance metadata requests can + travel. If no parameter is specified, the existing state is maintained. + + Possible values: Integers from 1 to 64 + """ + http_endpoint: str | None = ... + """ + Enables or disables the HTTP metadata endpoint on your instances. If + this parameter is not specified, the existing state is maintained. + + If you specify a value of `disabled`, you cannot access your instance + metadata. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + http_protocol_ipv6: str | None = ... + """ + Enables or disables the IPv6 endpoint for the instance metadata service. + Applies only if you enabled the HTTP metadata endpoint. + """ + instance_metadata_tags: str | None = ... + """ + Set to `enabled` to allow access to instance tags from the instance + metadata. Set to `disabled` to turn off access to instance tags from the + instance metadata. For more information, see [View tags for your EC2 + instances using instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html). + """ + +@dataclass(kw_only=True) +class ModifyInstanceMetadataOptionsOutput(_SerdeShape): + """Dataclass for ModifyInstanceMetadataOptionsOutput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + instance_metadata_options: InstanceMetadataOptionsResponse | None = ... + """The metadata options for the instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstanceNetworkPerformanceOptionsInput(_SerdeShape): + """Dataclass for ModifyInstanceNetworkPerformanceOptionsInput structure.""" + + instance_id: str | None = ... + """The ID of the instance to update.""" + bandwidth_weighting: str | None = ... + """ + Specify the bandwidth weighting option to boost the associated type of + baseline bandwidth, as follows: + + default + + : This option uses the standard bandwidth configuration for your + instance type. + + vpc-1 + + : This option boosts your networking baseline bandwidth and reduces your + EBS baseline bandwidth. + + ebs-1 + + : This option boosts your EBS baseline bandwidth and reduces your + networking baseline bandwidth. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyInstanceNetworkPerformanceOptionsOutput(_SerdeShape): + """Dataclass for ModifyInstanceNetworkPerformanceOptionsOutput structure.""" + + instance_id: str | None = ... + """The instance ID that was updated.""" + bandwidth_weighting: str | None = ... + """ + Contains the updated configuration for bandwidth weighting on the + specified instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyInstancePlacementInput(_SerdeShape): + """Dataclass for ModifyInstancePlacementInput structure.""" + + group_name: str | None = ... + """ + The name of the placement group in which to place the instance. For + spread placement groups, the instance must have a tenancy of `default`. + For cluster and partition placement groups, the instance must have a + tenancy of `default` or `dedicated`. + + To remove an instance from a placement group, specify an empty string + (\"\"). + """ + partition_number: int | None = ... + """ + The number of the partition in which to place the instance. Valid only + if the placement group strategy is set to `partition`. + """ + host_resource_group_arn: str | None = ... + """ + The ARN of the host resource group in which to place the instance. The + instance must have a tenancy of `host` to specify this parameter. + """ + group_id: str | None = ... + """ + The Group Id of a placement group. You must specify the Placement Group + **Group Id** to launch an instance in a shared placement group. + """ + instance_id: str | None = ... + """The ID of the instance that you are modifying.""" + tenancy: str | None = ... + """ + The tenancy for the instance. + + Note: + For T3 instances, you must launch the instance on a Dedicated Host to + use a tenancy of `host`. You can't change the tenancy from `host` to + `dedicated` or `default`. Attempting to make one of these unsupported + tenancy changes results in an `InvalidRequest` error code. + """ + affinity: str | None = ... + """ + The affinity setting for the instance. For more information, see [Host + affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-affinity) + in the *Amazon EC2 User Guide*. + """ + host_id: str | None = ... + """The ID of the Dedicated Host with which to associate the instance.""" + +@dataclass(kw_only=True) +class ModifyInstancePlacementOutput(_SerdeShape): + """Dataclass for ModifyInstancePlacementOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamInput(_SerdeShape): + """Dataclass for ModifyIpamInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """The ID of the IPAM you want to modify.""" + description: str | None = ... + """The description of the IPAM you want to modify.""" + add_operating_regions: list[AddIpamOperatingRegion] | None = ... + """ + Choose the operating Regions for the IPAM. Operating Regions are Amazon + Web Services Regions where the IPAM is allowed to manage IP address + CIDRs. IPAM only discovers and monitors resources in the Amazon Web + Services Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + remove_operating_regions: list[RemoveIpamOperatingRegion] | None = ... + """The operating Regions to remove.""" + tier: str | None = ... + """ + IPAM is offered in a Free Tier and an Advanced Tier. For more + information about the features available in each tier and the costs + associated with the tiers, see [Amazon VPC pricing > IPAM + tab](http://aws.amazon.com/vpc/pricing/). + """ + enable_private_gua: bool | None = ... + """ + Enable this option to use your own GUA ranges as private IPv6 addresses. + This option is disabled by default. + """ + metered_account: str | None = ... + """ + A metered account is an Amazon Web Services account that is charged for + active IP addresses managed in IPAM. For more information, see [Enable + cost + distribution](https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html) + in the *Amazon VPC IPAM User Guide*. + + Possible values: + + - `ipam-owner` (default): The Amazon Web Services account which owns the + IPAM is charged for all active IP addresses managed in IPAM. + + - `resource-owner`: The Amazon Web Services account that owns the IP + address is charged for the active IP address. + """ + +@dataclass(kw_only=True) +class ModifyIpamOutput(_SerdeShape): + """Dataclass for ModifyIpamOutput structure.""" + + ipam: Ipam | None = ... + """The results of the modification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamPolicyAllocationRulesInput(_SerdeShape): + """Dataclass for ModifyIpamPolicyAllocationRulesInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_policy_id: str | None = ... + """The ID of the IPAM policy whose allocation rules you want to modify.""" + locale: str | None = ... + """The locale for which to modify the allocation rules.""" + resource_type: str | None = ... + """ + The resource type for which to modify the allocation rules. + + The Amazon Web Services service or resource type that can use IP + addresses through IPAM policies. Supported services and resource types + include: + + - Elastic IP addresses + """ + allocation_rules: list[IpamPolicyAllocationRuleRequest] | None = ... + """ + The new allocation rules to apply to the IPAM policy. + + Allocation rules are optional configurations within an IPAM policy that + map Amazon Web Services resource types to specific IPAM pools. If no + rules are defined, the resource types default to using Amazon-provided + IP addresses. + """ + +@dataclass(kw_only=True) +class ModifyIpamPolicyAllocationRulesOutput(_SerdeShape): + """Dataclass for ModifyIpamPolicyAllocationRulesOutput structure.""" + + ipam_policy_document: IpamPolicyDocument | None = ... + """The modified IPAM policy containing the updated allocation rules.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamPoolAllocationInput(_SerdeShape): + """Dataclass for ModifyIpamPoolAllocationInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_allocation_id: str | None = ... + """The ID of the IPAM pool allocation you want to modify.""" + description: str | None = ... + """ + The new description for the IPAM pool allocation. If you submit a `null` + value, the description is removed from the allocation. + """ + +@dataclass(kw_only=True) +class ModifyIpamPoolAllocationOutput(_SerdeShape): + """Dataclass for ModifyIpamPoolAllocationOutput structure.""" + + ipam_pool_allocation: IpamPoolAllocation | None = ... + """The modified IPAM pool allocation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamPoolInput(_SerdeShape): + """Dataclass for ModifyIpamPoolInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool you want to modify.""" + description: str | None = ... + """The description of the IPAM pool you want to modify.""" + auto_import: bool | None = ... + """ + If true, IPAM will continuously look for resources within the CIDR range + of this pool and automatically import them as allocations into your + IPAM. The CIDRs that will be allocated for these resources must not + already be allocated to other resources in order for the import to + succeed. IPAM will import a CIDR regardless of its compliance with the + pool's allocation rules, so a resource might be imported and + subsequently marked as noncompliant. If IPAM discovers multiple CIDRs + that overlap, IPAM will import the largest CIDR only. If IPAM discovers + multiple CIDRs with matching CIDRs, IPAM will randomly import one of + them only. + + A locale must be set on the pool for this feature to work. + """ + allocation_min_netmask_length: int | None = ... + """ + The minimum netmask length required for CIDR allocations in this IPAM + pool to be compliant. Possible netmask lengths for IPv4 addresses are + 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. The + minimum netmask length must be less than the maximum netmask length. + """ + allocation_max_netmask_length: int | None = ... + """ + The maximum netmask length possible for CIDR allocations in this IPAM + pool to be compliant. Possible netmask lengths for IPv4 addresses are + 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.The + maximum netmask length must be greater than the minimum netmask length. + """ + allocation_default_netmask_length: int | None = ... + """ + The default netmask length for allocations added to this pool. If, for + example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 + here, new allocations will default to 10.0.0.0/16. + """ + clear_allocation_default_netmask_length: bool | None = ... + """Clear the default netmask length allocation rule for this pool.""" + add_allocation_resource_tags: list[RequestIpamResourceTag] | None = ... + """ + Add tag allocation rules to a pool. For more information about + allocation rules, see [Create a top-level + pool](https://docs.aws.amazon.com/vpc/latest/ipam/create-top-ipam.html) + in the *Amazon VPC IPAM User Guide*. + """ + remove_allocation_resource_tags: list[RequestIpamResourceTag] | None = ... + """Remove tag allocation rules from a pool.""" + +@dataclass(kw_only=True) +class ModifyIpamPoolOutput(_SerdeShape): + """Dataclass for ModifyIpamPoolOutput structure.""" + + ipam_pool: IpamPool | None = ... + """The results of the modification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamPrefixListResolverInput(_SerdeShape): + """Dataclass for ModifyIpamPrefixListResolverInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_id: str | None = ... + """The ID of the IPAM prefix list resolver to modify.""" + description: str | None = ... + """A new description for the IPAM prefix list resolver.""" + rules: list[IpamPrefixListResolverRuleRequest] | None = ... + """ + The updated CIDR selection rules for the resolver. These rules replace + the existing rules entirely. + """ + +@dataclass(kw_only=True) +class ModifyIpamPrefixListResolverOutput(_SerdeShape): + """Dataclass for ModifyIpamPrefixListResolverOutput structure.""" + + ipam_prefix_list_resolver: IpamPrefixListResolver | None = ... + """Information about the modified IPAM prefix list resolver.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamPrefixListResolverTargetInput(_SerdeShape): + """Dataclass for ModifyIpamPrefixListResolverTargetInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_prefix_list_resolver_target_id: str | None = ... + """The ID of the IPAM prefix list resolver target to modify.""" + desired_version: int | None = ... + """ + The desired version of the prefix list to target. This allows you to pin + the target to a specific version. + """ + track_latest_version: bool | None = ... + """ + Indicates whether the resolver target should automatically track the + latest version of the prefix list. When enabled, the target will always + synchronize with the most current version. + + Choose this for automatic updates when you want your prefix lists to + stay current with infrastructure changes without manual intervention. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class ModifyIpamPrefixListResolverTargetOutput(_SerdeShape): + """Dataclass for ModifyIpamPrefixListResolverTargetOutput structure.""" + + ipam_prefix_list_resolver_target: IpamPrefixListResolverTarget | None = ... + """Information about the modified IPAM prefix list resolver target.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamResourceCidrInput(_SerdeShape): + """Dataclass for ModifyIpamResourceCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + resource_id: str | None = ... + """The ID of the resource you want to modify.""" + resource_cidr: str | None = ... + """The CIDR of the resource you want to modify.""" + resource_region: str | None = ... + """The Amazon Web Services Region of the resource you want to modify.""" + current_ipam_scope_id: str | None = ... + """The ID of the current scope that the resource CIDR is in.""" + destination_ipam_scope_id: str | None = ... + """The ID of the scope you want to transfer the resource CIDR to.""" + monitored: bool | None = ... + """ + Determines if the resource is monitored by IPAM. If a resource is + monitored, the resource is discovered by IPAM and you can view details + about the resource's CIDR. + """ + +@dataclass(kw_only=True) +class ModifyIpamResourceCidrOutput(_SerdeShape): + """Dataclass for ModifyIpamResourceCidrOutput structure.""" + + ipam_resource_cidr: IpamResourceCidr | None = ... + """The CIDR of the resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamResourceDiscoveryInput(_SerdeShape): + """Dataclass for ModifyIpamResourceDiscoveryInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_resource_discovery_id: str | None = ... + """A resource discovery ID.""" + description: str | None = ... + """A resource discovery description.""" + add_operating_regions: list[AddIpamOperatingRegion] | None = ... + """ + Add operating Regions to the resource discovery. Operating Regions are + Amazon Web Services Regions where the IPAM is allowed to manage IP + address CIDRs. IPAM only discovers and monitors resources in the Amazon + Web Services Regions you select as operating Regions. + """ + remove_operating_regions: list[RemoveIpamOperatingRegion] | None = ... + """Remove operating Regions.""" + add_organizational_unit_exclusions: ( + list[AddIpamOrganizationalUnitExclusion] | None + ) = ... + """ + Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is + integrated with Amazon Web Services Organizations and you add an + organizational unit (OU) exclusion, IPAM will not manage the IP + addresses in accounts in that OU exclusion. There is a limit on the + number of exclusions you can create. For more information, see [Quotas + for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Note: + The resulting set of exclusions must not result in \"overlap\", meaning + two or more OU exclusions must not exclude the same OU. For more + information and examples, see the Amazon Web Services CLI request + process in [Add or remove OU + exclusions](https://docs.aws.amazon.com/vpc/latest/ipam/exclude-ous.html#exclude-ous-create-delete) + in the *Amazon VPC User Guide*. + """ + remove_organizational_unit_exclusions: ( + list[RemoveIpamOrganizationalUnitExclusion] | None + ) = ... + """ + Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM + is integrated with Amazon Web Services Organizations and you add an + organizational unit (OU) exclusion, IPAM will not manage the IP + addresses in accounts in that OU exclusion. There is a limit on the + number of exclusions you can create. For more information, see [Quotas + for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + + Note: + The resulting set of exclusions must not result in \"overlap\", meaning + two or more OU exclusions must not exclude the same OU. For more + information and examples, see the Amazon Web Services CLI request + process in [Add or remove OU + exclusions](https://docs.aws.amazon.com/vpc/latest/ipam/exclude-ous.html#exclude-ous-create-delete) + in the *Amazon VPC User Guide*. + """ + +@dataclass(kw_only=True) +class ModifyIpamResourceDiscoveryOutput(_SerdeShape): + """Dataclass for ModifyIpamResourceDiscoveryOutput structure.""" + + ipam_resource_discovery: IpamResourceDiscovery | None = ... + """A resource discovery.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamRoutingPolicyRegistrationInput(_SerdeShape): + """Dataclass for ModifyIpamRoutingPolicyRegistrationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_internet_registry_association_id: str | None = ... + """The ID of the IPAM internet registry association.""" + cidr: str | None = ... + """ + The IP address prefix in CIDR notation identifying the routing policy + registration to modify. + """ + asns: list[str] | None = ... + """ + The updated list of Autonomous System Numbers (ASNs) authorized to + originate the prefix. + """ + permit_more_specific_announcements: bool | None = ... + """ + Specifies whether to permit more specific route announcements than the + CIDR prefix. Default: `false`. + """ + max_length: int | None = ... + """ + The new maximum prefix length that the ASNs are authorized to announce. + Must be greater than or equal to the prefix length of the CIDR. + """ + description: str | None = ... + """A new description for the routing policy registration.""" + force: bool | None = ... + """ + Forces the modification even if it conflicts with an announced route. + Default: `false`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier to ensure that the operation + completes no more than one time. If this token matches a previous + request, the operation ignores the request, but does not return an + error. + """ + +@dataclass(kw_only=True) +class ModifyIpamRoutingPolicyRegistrationOutput(_SerdeShape): + """Dataclass for ModifyIpamRoutingPolicyRegistrationOutput structure.""" + + ipam_routing_policy_registration_delta: ( + IpamRoutingPolicyRegistrationDelta | None + ) = ... + """ + Information about the routing policy registration delta created by this + modification. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIpamScopeInput(_SerdeShape): + """Dataclass for ModifyIpamScopeInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_scope_id: str | None = ... + """The ID of the scope you want to modify.""" + description: str | None = ... + """The description of the scope you want to modify.""" + external_authority_configuration: ExternalAuthorityConfiguration | None = ... + """ + The configuration that links an Amazon VPC IPAM scope to an external + authority system. It specifies the type of external system and the + external resource identifier that identifies your account or instance in + that system. + + In IPAM, an external authority is a third-party IP address management + system that provides CIDR blocks when you provision address space for + top-level IPAM pools. This allows you to use your existing IP management + system to control which address ranges are allocated to Amazon Web + Services while using Amazon VPC IPAM to manage subnets within those + ranges. + """ + remove_external_authority_configuration: bool | None = ... + """Remove the external authority configuration. `true` to remove.""" + +@dataclass(kw_only=True) +class ModifyIpamScopeOutput(_SerdeShape): + """Dataclass for ModifyIpamScopeOutput structure.""" + + ipam_scope: IpamScope | None = ... + """The results of the modification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyLaunchTemplateInput(_SerdeShape): + """Dataclass for ModifyLaunchTemplateInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. If a client token isn't specified, a randomly generated + token is used in the request to ensure idempotency. + + For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + + Constraint: Maximum 128 ASCII characters. + """ + launch_template_id: str | None = ... + """ + The ID of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + launch_template_name: str | None = ... + """ + The name of the launch template. + + You must specify either the launch template ID or the launch template + name, but not both. + """ + default_version: str | None = ... + """The version number of the launch template to set as the default version.""" + +@dataclass(kw_only=True) +class ModifyLaunchTemplateOutput(_SerdeShape): + """Dataclass for ModifyLaunchTemplateOutput structure.""" + + launch_template: LaunchTemplate | None = ... + """Information about the launch template.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyLocalGatewayRouteInput(_SerdeShape): + """Dataclass for ModifyLocalGatewayRouteInput structure.""" + + destination_cidr_block: str | None = ... + """ + The CIDR block used for destination matches. The value that you provide + must match the CIDR of an existing route in the table. + """ + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + local_gateway_virtual_interface_group_id: str | None = ... + """The ID of the virtual interface group.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + destination_prefix_list_id: str | None = ... + """ + The ID of the prefix list. Use a prefix list in place of + `DestinationCidrBlock`. You cannot use `DestinationPrefixListId` and + `DestinationCidrBlock` in the same request. + """ + +@dataclass(kw_only=True) +class ModifyLocalGatewayRouteOutput(_SerdeShape): + """Dataclass for ModifyLocalGatewayRouteOutput structure.""" + + route: LocalGatewayRoute | None = ... + """Information about the local gateway route table.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyManagedPrefixListInput(_SerdeShape): + """Dataclass for ModifyManagedPrefixListInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + current_version: int | None = ... + """The current version of the prefix list.""" + prefix_list_name: str | None = ... + """A name for the prefix list.""" + add_entries: list[AddPrefixListEntry] | None = ... + """One or more entries to add to the prefix list.""" + remove_entries: list[RemovePrefixListEntry] | None = ... + """One or more entries to remove from the prefix list.""" + max_entries: int | None = ... + """ + The maximum number of entries for the prefix list. You cannot modify the + entries of a prefix list and modify the size of a prefix list at the + same time. + + If any of the resources that reference the prefix list cannot support + the new maximum size, the modify operation fails. Check the state + message for the IDs of the first ten resources that do not support the + new maximum size. + """ + ipam_prefix_list_resolver_sync_enabled: bool | None = ... + """ + Indicates whether synchronization with an IPAM prefix list resolver + should be enabled for this managed prefix list. When enabled, the prefix + list CIDRs are automatically updated based on the associated resolver's + CIDR selection rules. + """ + +@dataclass(kw_only=True) +class ModifyManagedPrefixListOutput(_SerdeShape): + """Dataclass for ModifyManagedPrefixListOutput structure.""" + + prefix_list: ManagedPrefixList | None = ... + """Information about the prefix list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyManagedResourceVisibilityInput(_SerdeShape): + """Dataclass for ModifyManagedResourceVisibilityInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + default_visibility: str | None = ... + """ + The default visibility setting for managed resources. Valid values: + `hidden` | `visible`. + """ + +@dataclass(kw_only=True) +class ModifyManagedResourceVisibilityOutput(_SerdeShape): + """Dataclass for ModifyManagedResourceVisibilityOutput structure.""" + + visibility: ManagedResourceVisibilitySettings | None = ... + """The updated managed resource visibility settings for the account.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyNetworkInterfaceAttributeInput(_SerdeShape): + """Contains the parameters for ModifyNetworkInterfaceAttribute.""" + + ena_srd_specification: EnaSrdSpecification | None = ... + """ + Updates the ENA Express configuration for the network interface that's + attached to the instance. + """ + enable_primary_ipv6: bool | None = ... + """ + If you're modifying a network interface in a dual-stack or IPv6-only + subnet, you have the option to assign a primary IPv6 IP address. A + primary IPv6 address is an IPv6 GUA address associated with an ENI that + you have enabled to use a primary IPv6 address. Use this option if the + instance that this ENI will be attached to relies on its IPv6 address + not changing. Amazon Web Services will automatically assign an IPv6 + address associated with the ENI attached to your instance to be the + primary IPv6 address. Once you enable an IPv6 GUA address to be a + primary IPv6, you cannot disable it. When you enable an IPv6 GUA address + to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 + address until the instance is terminated or the network interface is + detached. If you have multiple IPv6 addresses associated with an ENI + attached to your instance and you enable a primary IPv6 address, the + first IPv6 GUA address associated with the ENI becomes the primary IPv6 + address. + """ + connection_tracking_specification: ( + ConnectionTrackingSpecificationRequest | None + ) = ... + """A connection tracking specification.""" + associate_public_ip_address: bool | None = ... + """ + Indicates whether to assign a public IPv4 address to a network + interface. This option can be enabled for any network interface but will + only apply to the primary network interface (eth0). + """ + associated_subnet_ids: list[str] | None = ... + """A list of subnet IDs to associate with the network interface.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + description: AttributeValue | None = ... + """A description for the network interface.""" + source_dest_check: AttributeBooleanValue | None = ... + """ + Enable or disable source/destination checks, which ensure that the + instance is either the source or the destination of any traffic that it + receives. If the value is `true`, source/destination checks are enabled; + otherwise, they are disabled. The default value is `true`. You must + disable source/destination checks if the instance runs services such as + network address translation, routing, or firewalls. + """ + groups: list[str] | None = ... + """ + Changes the security groups for the network interface. The new set of + groups you specify replaces the current set. You must specify at least + one group, even if it's just the default security group in the VPC. You + must specify the ID of the security group, not the name. + """ + attachment: NetworkInterfaceAttachmentChanges | None = ... + """ + Information about the interface attachment. If modifying the + `delete on termination` attribute, you must specify the ID of the + interface attachment. + """ + +@dataclass(kw_only=True) +class ModifyNetworkInterfaceAttributeOutput(_SerdeShape): + """Dataclass for ModifyNetworkInterfaceAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyPrivateDnsNameOptionsInput(_SerdeShape): + """Dataclass for ModifyPrivateDnsNameOptionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + private_dns_hostname_type: str | None = ... + """ + The type of hostname for EC2 instances. For IPv4 only subnets, an + instance DNS name must be based on the instance IPv4 address. For IPv6 + only subnets, an instance DNS name must be based on the instance ID. For + dual-stack subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. + """ + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class ModifyPrivateDnsNameOptionsOutput(_SerdeShape): + """Dataclass for ModifyPrivateDnsNameOptionsOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyPublicIpDnsNameOptionsInput(_SerdeShape): + """Dataclass for ModifyPublicIpDnsNameOptionsInput structure.""" + + network_interface_id: str | None = ... + """A network interface ID.""" + hostname_type: str | None = ... + """ + The public hostname type. For more information, see [EC2 instance + hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + + - `public-dual-stack-dns-name`: A dual-stack public hostname for a + network interface. Requests from within the VPC resolve to both the + private IPv4 address and the IPv6 Global Unicast Address of the + network interface. Requests from the internet resolve to both the + public IPv4 and the IPv6 GUA address of the network interface. + + - `public-ipv4-dns-name`: An IPv4-enabled public hostname for a network + interface. Requests from within the VPC resolve to the private primary + IPv4 address of the network interface. Requests from the internet + resolve to the public IPv4 address of the network interface. + + - `public-ipv6-dns-name`: An IPv6-enabled public hostname for a network + interface. Requests from within the VPC or from the internet resolve + to the IPv6 GUA of the network interface. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyPublicIpDnsNameOptionsOutput(_SerdeShape): + """Dataclass for ModifyPublicIpDnsNameOptionsOutput structure.""" + + successful: bool | None = ... + """Whether or not the request was successful.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyReservedInstancesInput(_SerdeShape): + """Contains the parameters for ModifyReservedInstances.""" + + reserved_instances_ids: list[str] | None = ... + """The IDs of the Reserved Instances to modify.""" + client_token: str | None = ... + """ + A unique, case-sensitive token you provide to ensure idempotency of your + modification request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + target_configurations: list[ReservedInstancesConfiguration] | None = ... + """The configuration settings for the Reserved Instances to modify.""" + +@dataclass(kw_only=True) +class ModifyReservedInstancesOutput(_SerdeShape): + """Contains the output of ModifyReservedInstances.""" + + reserved_instances_modification_id: str | None = ... + """The ID for the modification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyRouteServerInput(_SerdeShape): + """Dataclass for ModifyRouteServerInput structure.""" + + route_server_id: str | None = ... + """The ID of the route server to modify.""" + persist_routes: str | None = ... + """ + Specifies whether to persist routes after all BGP sessions are + terminated. + + - enable: Routes will be persisted in FIB and RIB after all BGP sessions + are terminated. + + - disable: Routes will not be persisted in FIB and RIB after all BGP + sessions are terminated. + + - reset: If a route server has persisted routes due to all BGP sessions + having ended, reset will withdraw all routes and reset route server to + an empty FIB and RIB. + """ + persist_routes_duration: int | None = ... + """ + The number of minutes a route server will wait after BGP is + re-established to unpersist the routes in the FIB and RIB. Value must be + in the range of 1-5. Required if PersistRoutes is `enabled`. + + If you set the duration to 1 minute, then when your network appliance + re-establishes BGP with route server, it has 1 minute to relearn it's + adjacent network and advertise those routes to route server before route + server resumes normal functionality. In most cases, 1 minute is probably + sufficient. If, however, you have concerns that your BGP network may not + be capable of fully re-establishing and re-learning everything in 1 + minute, you can increase the duration up to 5 minutes. + """ + sns_notifications_enabled: bool | None = ... + """ + Specifies whether to enable SNS notifications for route server events. + Enabling SNS notifications persists BGP status changes to an SNS topic + provisioned by Amazon Web Services. + """ + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyRouteServerOutput(_SerdeShape): + """Dataclass for ModifyRouteServerOutput structure.""" + + route_server: RouteServer | None = ... + """Information about the modified route server.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifySecurityGroupRulesInput(_SerdeShape): + """Dataclass for ModifySecurityGroupRulesInput structure.""" + + group_id: str | None = ... + """The ID of the security group.""" + security_group_rules: list[SecurityGroupRuleUpdate] | None = ... + """Information about the security group properties to update.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifySecurityGroupRulesOutput(_SerdeShape): + """Dataclass for ModifySecurityGroupRulesOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifySnapshotAttributeInput(_SerdeShape): + """Dataclass for ModifySnapshotAttributeInput structure.""" + + attribute: str | None = ... + """ + The snapshot attribute to modify. Only volume creation permissions can + be modified. + """ + create_volume_permission: CreateVolumePermissionModifications | None = ... + """A JSON representation of the snapshot attribute modification.""" + group_names: list[str] | None = ... + """The group to modify for the snapshot.""" + operation_type: str | None = ... + """The type of operation to perform to the attribute.""" + snapshot_id: str | None = ... + """The ID of the snapshot.""" + user_ids: list[str] | None = ... + """The account ID to modify for the snapshot.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifySnapshotAttributeOutput(_SerdeShape): + """Dataclass for ModifySnapshotAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifySnapshotTierInput(_SerdeShape): + """Dataclass for ModifySnapshotTierInput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + storage_tier: str | None = ... + """The name of the storage tier. You must specify `archive`.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifySnapshotTierOutput(_SerdeShape): + """Dataclass for ModifySnapshotTierOutput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + tiering_start_time: datetime | None = ... + """The date and time when the archive process was started.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifySpotFleetRequestInput(_SerdeShape): + """Contains the parameters for ModifySpotFleetRequest.""" + + launch_template_configs: list[LaunchTemplateConfig] | None = ... + """ + The launch template and overrides. You can only use this parameter if + you specified a launch template (`LaunchTemplateConfigs`) in your Spot + Fleet request. If you specified `LaunchSpecifications` in your Spot + Fleet request, then omit this parameter. + """ + on_demand_target_capacity: int | None = ... + """The number of On-Demand Instances in the fleet.""" + context: str | None = ... + """Reserved.""" + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + target_capacity: int | None = ... + """The size of the fleet.""" + excess_capacity_termination_policy: str | None = ... + """ + Indicates whether running instances should be terminated if the target + capacity of the Spot Fleet request is decreased below the current size + of the Spot Fleet. + + Supported only for fleets of type `maintain`. + """ + +@dataclass(kw_only=True) +class ModifySpotFleetRequestOutput(_SerdeShape): + """Contains the output of ModifySpotFleetRequest.""" + + return_: bool | None = ... + """ + If the request succeeds, the response returns `true`. If the request + fails, no response is returned, and instead an error message is + returned. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifySubnetAttributeInput(_SerdeShape): + """Dataclass for ModifySubnetAttributeInput structure.""" + + assign_ipv6_address_on_creation: AttributeBooleanValue | None = ... + """ + Specify `true` to indicate that network interfaces created in the + specified subnet should be assigned an IPv6 address. This includes a + network interface that's created when launching an instance into the + subnet (the instance therefore receives an IPv6 address). + + If you enable the IPv6 addressing feature for your subnet, your network + interface or instance only receives an IPv6 address if it's created + using version `2016-11-15` or later of the Amazon EC2 API. + """ + map_public_ip_on_launch: AttributeBooleanValue | None = ... + """ + Specify `true` to indicate that network interfaces attached to instances + created in the specified subnet should be assigned a public IPv4 + address. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + subnet_id: str | None = ... + """The ID of the subnet.""" + map_customer_owned_ip_on_launch: AttributeBooleanValue | None = ... + """ + Specify `true` to indicate that network interfaces attached to instances + created in the specified subnet should be assigned a customer-owned IPv4 + address. + + When this value is `true`, you must specify the customer-owned IP pool + using `CustomerOwnedIpv4Pool`. + """ + customer_owned_ipv4_pool: str | None = ... + """ + The customer-owned IPv4 address pool associated with the subnet. + + You must set this value when you specify `true` for + `MapCustomerOwnedIpOnLaunch`. + """ + enable_dns64: AttributeBooleanValue | None = ... + """ + Indicates whether DNS queries made to the Amazon-provided DNS Resolver + in this subnet should return synthetic IPv6 addresses for IPv4-only + destinations. + + You must first configure a NAT gateway in a public subnet (separate from + the subnet containing the IPv6-only workloads). For example, the subnet + containing the NAT gateway should have a `0.0.0.0/0` route pointing to + the internet gateway. For more information, see [Configure DNS64 and + NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) + in the *Amazon VPC User Guide*. + """ + private_dns_hostname_type_on_launch: str | None = ... + """ + The type of hostname to assign to instances in the subnet at launch. For + IPv4-only and dual-stack (IPv4 and IPv6) subnets, an instance DNS name + can be based on the instance IPv4 address (ip-name) or the instance ID + (resource-name). For IPv6 only subnets, an instance DNS name must be + based on the instance ID (resource-name). + """ + enable_resource_name_dns_a_record_on_launch: AttributeBooleanValue | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record_on_launch: AttributeBooleanValue | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + enable_lni_at_device_index: int | None = ... + """ + Indicates the device position for local network interfaces in this + subnet. For example, `1` indicates local network interfaces in this + subnet are the secondary network interface (eth1). A local network + interface cannot be the primary network interface (eth0). + """ + disable_lni_at_device_index: AttributeBooleanValue | None = ... + """ + Specify `true` to indicate that local network interfaces at the current + position should be disabled. + """ + +@dataclass(kw_only=True) +class ModifySubnetAttributeOutput(_SerdeShape): + """Dataclass for ModifySubnetAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorFilterNetworkServicesInput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorFilterNetworkServicesInput structure.""" + + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + add_network_services: list[str] | None = ... + """The network service, for example Amazon DNS, that you want to mirror.""" + remove_network_services: list[str] | None = ... + """ + The network service, for example Amazon DNS, that you no longer want to + mirror. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorFilterNetworkServicesOutput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorFilterNetworkServicesOutput structure.""" + + traffic_mirror_filter: TrafficMirrorFilter | None = ... + """The Traffic Mirror filter that the network service is associated with.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorFilterRuleInput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorFilterRuleInput structure.""" + + traffic_mirror_filter_rule_id: str | None = ... + """The ID of the Traffic Mirror rule.""" + traffic_direction: str | None = ... + """The type of traffic to assign to the rule.""" + rule_number: int | None = ... + """ + The number of the Traffic Mirror rule. This number must be unique for + each Traffic Mirror rule in a given direction. The rules are processed + in ascending order by rule number. + """ + rule_action: str | None = ... + """The action to assign to the rule.""" + destination_port_range: TrafficMirrorPortRangeRequest | None = ... + """The destination ports that are associated with the Traffic Mirror rule.""" + source_port_range: TrafficMirrorPortRangeRequest | None = ... + """The port range to assign to the Traffic Mirror rule.""" + protocol: int | None = ... + """The protocol, for example TCP, to assign to the Traffic Mirror rule.""" + destination_cidr_block: str | None = ... + """The destination CIDR block to assign to the Traffic Mirror rule.""" + source_cidr_block: str | None = ... + """The source CIDR block to assign to the Traffic Mirror rule.""" + description: str | None = ... + """The description to assign to the Traffic Mirror rule.""" + remove_fields: list[str] | None = ... + """ + The properties that you want to remove from the Traffic Mirror filter + rule. + + When you remove a property from a Traffic Mirror filter rule, the + property is set to the default. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorFilterRuleOutput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorFilterRuleOutput structure.""" + + traffic_mirror_filter_rule: TrafficMirrorFilterRule | None = ... + """ + Note: + Tags are not returned for ModifyTrafficMirrorFilterRule. + + A Traffic Mirror rule. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorSessionInput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorSessionInput structure.""" + + traffic_mirror_session_id: str | None = ... + """The ID of the Traffic Mirror session.""" + traffic_mirror_target_id: str | None = ... + """ + The Traffic Mirror target. The target must be in the same VPC as the + source, or have a VPC peering connection with the source. + """ + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + packet_length: int | None = ... + """ + The number of bytes in each packet to mirror. These are bytes after the + VXLAN header. To mirror a subset, set this to the length (in bytes) to + mirror. For example, if you set this value to 100, then the first 100 + bytes that meet the filter criteria are copied to the target. Do not + specify this parameter when you want to mirror the entire packet. + + For sessions with Network Load Balancer (NLB) traffic mirror targets, + the default `PacketLength` will be set to 8500. Valid values are 1-8500. + Setting a `PacketLength` greater than 8500 will result in an error + response. + """ + session_number: int | None = ... + """ + The session number determines the order in which sessions are evaluated + when an interface is used by multiple sessions. The first session with a + matching filter is the one that mirrors the packets. + + Valid values are 1-32766. + """ + virtual_network_id: int | None = ... + """The virtual network ID of the Traffic Mirror session.""" + description: str | None = ... + """The description to assign to the Traffic Mirror session.""" + remove_fields: list[str] | None = ... + """ + The properties that you want to remove from the Traffic Mirror session. + + When you remove a property from a Traffic Mirror session, the property + is set to the default. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTrafficMirrorSessionOutput(_SerdeShape): + """Dataclass for ModifyTrafficMirrorSessionOutput structure.""" + + traffic_mirror_session: TrafficMirrorSession | None = ... + """Information about the Traffic Mirror session.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayAttachmentNatConfigurationInput(_SerdeShape): + """ + Dataclass for ModifyTransitGatewayAttachmentNatConfigurationInput + structure. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + nat_gateway_support: str | None = ... + """ + Specifies whether to enable or disable NAT gateway support for the + attachment. To enable NAT gateway support, the attachment must have at + least one NAT gateway rule. You can't modify the NAT configuration + while NAT gateway support is `enabling` or `disabling`. If you omit this + parameter, the current value doesn't change. + """ + nat_system_route_support: str | None = ... + """ + Specifies whether the transit gateway installs routes for the NAT CIDRs + in the route tables to which the attachment propagates. For VPC + attachments, the transit gateway always installs these routes. You can + enable or disable this option only for Amazon Web Services Direct + Connect gateway attachments and Site-to-Site VPN attachments that use + dynamic routing. For these attachments, the default is `enable`. If you + omit this parameter, the current value doesn't change. + """ + nat_gateway_rules: list[TransitGatewayNatRuleRequest] | None = ... + """ + The NAT gateway rules for the attachment. The rules that you specify + replace all existing NAT gateway rules for the attachment. You can + specify up to 50 rules for an attachment. If you omit this parameter, + the existing rules don't change. To remove all rules, use + `ResetNatGatewayRules`. + """ + reset_nat_gateway_rules: bool | None = ... + """ + Specifies whether to remove all NAT gateway rules from the attachment. + If you omit this parameter, the transit gateway doesn't remove any + rules. You can't specify this parameter together with + `NatGatewayRules`. Because you can't enable NAT gateway support without + rules, also set `NatGatewaySupport` to `disable` in the same request if + NAT gateway support is currently enabled. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayAttachmentNatConfigurationOutput(_SerdeShape): + """ + Dataclass for ModifyTransitGatewayAttachmentNatConfigurationOutput + structure. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + nat_gateway_support: str | None = ... + """The state of NAT gateway support for the attachment.""" + nat_system_route_support: str | None = ... + """ + Specifies whether the transit gateway installs routes for the NAT CIDRs + in the route tables to which the attachment propagates. + """ + nat_gateway_rules: list[TransitGatewayNatRule] | None = ... + """The NAT gateway rules for the attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayInput(_SerdeShape): + """Dataclass for ModifyTransitGatewayInput structure.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + description: str | None = ... + """The description for the transit gateway.""" + options: ModifyTransitGatewayOptions | None = ... + """The options to modify.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayMeteringPolicyInput(_SerdeShape): + """Dataclass for ModifyTransitGatewayMeteringPolicyInput structure.""" + + transit_gateway_metering_policy_id: str | None = ... + """The ID of the transit gateway metering policy to modify.""" + add_middlebox_attachment_ids: list[str] | None = ... + """The IDs of middlebox attachments to add to the metering policy.""" + remove_middlebox_attachment_ids: list[str] | None = ... + """The IDs of middlebox attachments to remove from the metering policy.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayMeteringPolicyOutput(_SerdeShape): + """Dataclass for ModifyTransitGatewayMeteringPolicyOutput structure.""" + + transit_gateway_metering_policy: TransitGatewayMeteringPolicy | None = ... + """Information about the modified transit gateway metering policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayOptions(_SerdeShape): + """The transit gateway options.""" + + add_transit_gateway_cidr_blocks: list[str] | None = ... + """ + Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size + /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger + for IPv6. + """ + remove_transit_gateway_cidr_blocks: list[str] | None = ... + """Removes CIDR blocks for the transit gateway.""" + vpn_ecmp_support: str | None = ... + """Enable or disable Equal Cost Multipath Protocol support.""" + dns_support: str | None = ... + """Enable or disable DNS support.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is disabled by default. + + For more information about security group referencing, see [Security + group + referencing](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + in the *Amazon Web Services Transit Gateways Guide*. + """ + auto_accept_shared_attachments: str | None = ... + """Enable or disable automatic acceptance of attachment requests.""" + default_route_table_association: str | None = ... + """ + Enable or disable automatic association with the default association + route table. + """ + association_default_route_table_id: str | None = ... + """The ID of the default association route table.""" + default_route_table_propagation: str | None = ... + """ + Indicates whether resource attachments automatically propagate routes to + the default propagation route table. Enabled by default. If + `defaultRouteTablePropagation` is set to `enable`, Amazon Web Services + Transit Gateway will create the default transit gateway route table. + """ + propagation_default_route_table_id: str | None = ... + """The ID of the default propagation route table.""" + amazon_side_asn: int | None = ... + """ + A private Autonomous System Number (ASN) for the Amazon side of a BGP + session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to + 4294967294 for 32-bit ASNs. + + The modify ASN operation is not allowed on a transit gateway if it has + the following attachments: + + - Dynamic VPN + + - Static VPN + + - Direct Connect Gateway + + - Connect + + - VPN Concentrator + + - Client VPN + + You must first delete all transit gateway attachments configured prior + to modifying the ASN on the transit gateway. + """ + encryption_support: str | None = ... + """Enable or disable encryption support for VPC Encryption Control.""" + +@dataclass(kw_only=True) +class ModifyTransitGatewayOutput(_SerdeShape): + """Dataclass for ModifyTransitGatewayOutput structure.""" + + transit_gateway: TransitGateway | None = ... + """Information about the transit gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayPolicyTableEntryInput(_SerdeShape): + """Dataclass for ModifyTransitGatewayPolicyTableEntryInput structure.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + policy_rule_number: str | None = ... + """The rule number of the policy table entry to modify.""" + policy_rule: TransitGatewayRequestPolicyRule | None = ... + """ + The updated matching criteria for the policy table entry. Unspecified + fields retain their current values. + """ + target_route_table_id: str | None = ... + """ + The ID of the transit gateway route table to use for traffic matching + this rule. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayPolicyTableEntryOutput(_SerdeShape): + """Dataclass for ModifyTransitGatewayPolicyTableEntryOutput structure.""" + + transit_gateway_policy_table_entry: TransitGatewayPolicyTableEntry | None = ... + """Describes a transit gateway policy table entry""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayPrefixListReferenceInput(_SerdeShape): + """Dataclass for ModifyTransitGatewayPrefixListReferenceInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment to which traffic is routed.""" + blackhole: bool | None = ... + """Indicates whether to drop traffic that matches this route.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayPrefixListReferenceOutput(_SerdeShape): + """Dataclass for ModifyTransitGatewayPrefixListReferenceOutput structure.""" + + transit_gateway_prefix_list_reference: ( + TransitGatewayPrefixListReference | None + ) = ... + """Information about the prefix list reference.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayVpcAttachmentInput(_SerdeShape): + """Dataclass for ModifyTransitGatewayVpcAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + add_subnet_ids: list[str] | None = ... + """ + The IDs of one or more subnets to add. You can specify at most one + subnet per Availability Zone. + """ + remove_subnet_ids: list[str] | None = ... + """The IDs of one or more subnets to remove.""" + options: ModifyTransitGatewayVpcAttachmentRequestOptions | None = ... + """The new VPC attachment options.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayVpcAttachmentOutput(_SerdeShape): + """Dataclass for ModifyTransitGatewayVpcAttachmentOutput structure.""" + + transit_gateway_vpc_attachment: TransitGatewayVpcAttachment | None = ... + """Information about the modified attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTransitGatewayVpcAttachmentRequestOptions(_SerdeShape): + """Describes the options for a VPC attachment.""" + + dns_support: str | None = ... + """Enable or disable DNS support. The default is `enable`.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is disabled by default. + + For more information about security group referencing, see [Security + group + referencing](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + in the *Amazon Web Services Transit Gateways Guide*. + """ + ipv6_support: str | None = ... + """ + Specifies whether IPv6 support is enabled for the attachment. When + enabled, the transit gateway network interface receives an IPv6 address. + When you enable route propagation, IPv6 VPC CIDRs propagate to the + transit gateway route tables. When disabled, the network interface does + not receive an IPv6 address, and IPv6 routes do not propagate. The + setting does not filter IPv6 traffic. + """ + appliance_mode_support: str | None = ... + """ + Enable or disable support for appliance mode. If enabled, a traffic flow + between a source and destination uses the same Availability Zone for the + VPC attachment for the lifetime of that flow. The default is `disable`. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointCidrOptions(_SerdeShape): + """The CIDR options for a Verified Access endpoint.""" + + port_ranges: list[ModifyVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointEniOptions(_SerdeShape): + """ + Describes the options when modifying a Verified Access endpoint with the + `network-interface` type. + """ + + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + port_ranges: list[ModifyVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessEndpointInput structure.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the Verified Access endpoint.""" + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + load_balancer_options: ModifyVerifiedAccessEndpointLoadBalancerOptions | None = ... + """ + The load balancer details if creating the Verified Access endpoint as + `load-balancer`type. + """ + network_interface_options: ModifyVerifiedAccessEndpointEniOptions | None = ... + """The network interface options.""" + description: str | None = ... + """A description for the Verified Access endpoint.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + rds_options: ModifyVerifiedAccessEndpointRdsOptions | None = ... + """The RDS options.""" + cidr_options: ModifyVerifiedAccessEndpointCidrOptions | None = ... + """The CIDR options.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointLoadBalancerOptions(_SerdeShape): + """ + Describes a load balancer when creating an Amazon Web Services Verified + Access endpoint using the `load-balancer` type. + """ + + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + port_ranges: list[ModifyVerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessEndpointOutput structure.""" + + verified_access_endpoint: VerifiedAccessEndpoint | None = ... + """Details about the Verified Access endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointPolicyInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessEndpointPolicyInput structure.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the Verified Access endpoint.""" + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointPolicyOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessEndpointPolicyOutput structure.""" + + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + sse_specification: VerifiedAccessSseSpecificationResponse | None = ... + """The options in use for server side encryption.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointPortRange(_SerdeShape): + """Describes the port range for a Verified Access endpoint.""" + + from_port: int | None = ... + """The start of the port range.""" + to_port: int | None = ... + """The end of the port range.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessEndpointRdsOptions(_SerdeShape): + """The RDS options for a Verified Access endpoint.""" + + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + port: int | None = ... + """The port.""" + rds_endpoint: str | None = ... + """The RDS endpoint.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessGroupInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessGroupInput structure.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + description: str | None = ... + """A description for the Verified Access group.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessGroupOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessGroupOutput structure.""" + + verified_access_group: VerifiedAccessGroup | None = ... + """Details about the Verified Access group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessGroupPolicyInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessGroupPolicyInput structure.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessGroupPolicyOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessGroupPolicyOutput structure.""" + + policy_enabled: bool | None = ... + """The status of the Verified Access policy.""" + policy_document: str | None = ... + """The Verified Access policy document.""" + sse_specification: VerifiedAccessSseSpecificationResponse | None = ... + """The options in use for server side encryption.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessInstanceInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessInstanceInput structure.""" + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + description: str | None = ... + """A description for the Verified Access instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + cidr_endpoints_custom_sub_domain: str | None = ... + """The custom subdomain.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessInstanceLoggingConfigurationInput(_SerdeShape): + """ + Dataclass for ModifyVerifiedAccessInstanceLoggingConfigurationInput + structure. + """ + + verified_access_instance_id: str | None = ... + """The ID of the Verified Access instance.""" + access_logs: VerifiedAccessLogOptions | None = ... + """The configuration options for Verified Access instances.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessInstanceLoggingConfigurationOutput(_SerdeShape): + """ + Dataclass for ModifyVerifiedAccessInstanceLoggingConfigurationOutput + structure. + """ + + logging_configuration: VerifiedAccessInstanceLoggingConfiguration | None = ... + """The logging configuration for the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessInstanceOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessInstanceOutput structure.""" + + verified_access_instance: VerifiedAccessInstance | None = ... + """Details about the Verified Access instance.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessNativeApplicationOidcOptions(_SerdeShape): + """Describes the OpenID Connect (OIDC) options.""" + + public_signing_key_endpoint: str | None = ... + """The public signing key endpoint.""" + issuer: str | None = ... + """The OIDC issuer identifier of the IdP.""" + authorization_endpoint: str | None = ... + """The authorization endpoint of the IdP.""" + token_endpoint: str | None = ... + """The token endpoint of the IdP.""" + user_info_endpoint: str | None = ... + """The user info endpoint of the IdP.""" + client_id: str | None = ... + """The OAuth 2.0 client identifier.""" + client_secret: str | None = ... + """The OAuth 2.0 client secret.""" + scope: str | None = ... + """The set of user claims to be requested from the IdP.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessTrustProviderDeviceOptions(_SerdeShape): + """ + Modifies the configuration of the specified device-based Amazon Web + Services Verified Access trust provider. + """ + + public_signing_key_url: str | None = ... + """ + The URL Amazon Web Services Verified Access will use to verify the + authenticity of the device tokens. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessTrustProviderInput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessTrustProviderInput structure.""" + + verified_access_trust_provider_id: str | None = ... + """The ID of the Verified Access trust provider.""" + oidc_options: ModifyVerifiedAccessTrustProviderOidcOptions | None = ... + """ + The options for an OpenID Connect-compatible user-identity trust + provider. + """ + device_options: ModifyVerifiedAccessTrustProviderDeviceOptions | None = ... + """ + The options for a device-based trust provider. This parameter is + required when the provider type is `device`. + """ + description: str | None = ... + """A description for the Verified Access trust provider.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + A unique, case-sensitive token that you provide to ensure idempotency of + your modification request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + sse_specification: VerifiedAccessSseSpecificationRequest | None = ... + """The options for server side encryption.""" + native_application_oidc_options: ( + ModifyVerifiedAccessNativeApplicationOidcOptions | None + ) = ... + """The OpenID Connect (OIDC) options.""" + +@dataclass(kw_only=True) +class ModifyVerifiedAccessTrustProviderOidcOptions(_SerdeShape): + """Options for an OpenID Connect-compatible user-identity trust provider.""" + + issuer: str | None = ... + """The OIDC issuer.""" + authorization_endpoint: str | None = ... + """The OIDC authorization endpoint.""" + token_endpoint: str | None = ... + """The OIDC token endpoint.""" + user_info_endpoint: str | None = ... + """The OIDC user info endpoint.""" + client_id: str | None = ... + """The client identifier.""" + client_secret: str | None = ... + """The client secret.""" + scope: str | None = ... + """ + OpenID Connect (OIDC) scopes are used by an application during + authentication to authorize access to a user's details. Each scope + returns a specific set of user attributes. + """ + +@dataclass(kw_only=True) +class ModifyVerifiedAccessTrustProviderOutput(_SerdeShape): + """Dataclass for ModifyVerifiedAccessTrustProviderOutput structure.""" + + verified_access_trust_provider: VerifiedAccessTrustProvider | None = ... + """Details about the Verified Access trust provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVolumeAttributeInput(_SerdeShape): + """Dataclass for ModifyVolumeAttributeInput structure.""" + + auto_enable_io: AttributeBooleanValue | None = ... + """Indicates whether the volume should be auto-enabled for I/O operations.""" + volume_id: str | None = ... + """The ID of the volume.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVolumeAttributeOutput(_SerdeShape): + """Dataclass for ModifyVolumeAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVolumeInput(_SerdeShape): + """Dataclass for ModifyVolumeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + volume_id: str | None = ... + """The ID of the volume.""" + size: int | None = ... + """ + The target size of the volume, in GiB. The target volume size must be + greater than or equal to the existing size of the volume. + + The following are the supported volumes sizes for each volume type: + + - `gp2`: 1 - 16,384 GiB + + - `gp3`: 1 - 65,536 GiB + + - `io1`: 4 - 16,384 GiB + + - `io2`: 4 - 65,536 GiB + + - `st1` and `sc1`: 125 - 16,384 GiB + + - `standard`: 1 - 1024 GiB + + Default: The existing size is retained. + """ + volume_type: str | None = ... + """ + The target EBS volume type of the volume. For more information, see + [Amazon EBS volume + types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) + in the *Amazon EBS User Guide*. + + Default: The existing type is retained. + """ + iops: int | None = ... + """ + The target IOPS rate of the volume. This parameter is valid only for + `gp3`, `io1`, and `io2` volumes. + + The following are the supported values for each volume type: + + - `gp3`: 3,000 - 80,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + Note: + [Instances built on the Nitro + System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) + can support up to 256,000 IOPS. Other instances can support up to 32,000 + IOPS. + + Default: The existing value is retained if you keep the same volume + type. If you change the volume type to `io1`, `io2`, or `gp3`, the + default is 3,000. + """ + throughput: int | None = ... + """ + The target throughput of the volume, in MiB/s. This parameter is valid + only for `gp3` volumes. The maximum value is 2,000. + + Default: The existing value is retained if the source and target volume + type is `gp3`. Otherwise, the default value is 125. + + Valid Range: Minimum value of 125. Maximum value of 2,000. + """ + multi_attach_enabled: bool | None = ... + """ + Specifies whether to enable Amazon EBS Multi-Attach. If you enable + Multi-Attach, you can attach the volume to up to 16 [Nitro-based + instances](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) + in the same Availability Zone. This parameter is supported with `io1` + and `io2` volumes only. For more information, see [Amazon EBS + Multi-Attach](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html) + in the *Amazon EBS User Guide*. + """ + +@dataclass(kw_only=True) +class ModifyVolumeOutput(_SerdeShape): + """Dataclass for ModifyVolumeOutput structure.""" + + volume_modification: VolumeModification | None = ... + """Information about the volume modification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcAttributeInput(_SerdeShape): + """Dataclass for ModifyVpcAttributeInput structure.""" + + enable_dns_hostnames: AttributeBooleanValue | None = ... + """ + Indicates whether the instances launched in the VPC get DNS hostnames. + If enabled, instances in the VPC get DNS hostnames; otherwise, they do + not. + + You cannot modify the DNS resolution and DNS hostnames attributes in the + same request. Use separate requests for each attribute. You can only + enable DNS hostnames if you've enabled DNS support. + """ + enable_dns_support: AttributeBooleanValue | None = ... + """ + Indicates whether the DNS resolution is supported for the VPC. If + enabled, queries to the Amazon provided DNS server at the + 169.254.169.253 IP address, or the reserved IP address at the base of + the VPC network range \"plus two\" succeed. If disabled, the Amazon + provided DNS service in the VPC that resolves public DNS hostnames to IP + addresses is not enabled. + + You cannot modify the DNS resolution and DNS hostnames attributes in the + same request. Use separate requests for each attribute. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + enable_network_address_usage_metrics: AttributeBooleanValue | None = ... + """ + Indicates whether Network Address Usage metrics are enabled for your + VPC. + """ + +@dataclass(kw_only=True) +class ModifyVpcAttributeOutput(_SerdeShape): + """Dataclass for ModifyVpcAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcBlockPublicAccessExclusionInput(_SerdeShape): + """Dataclass for ModifyVpcBlockPublicAccessExclusionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + exclusion_id: str | None = ... + """The ID of an exclusion.""" + internet_gateway_exclusion_mode: str | None = ... + """ + The exclusion mode for internet gateway traffic. + + - `allow-bidirectional`: Allow all internet traffic to and from the + excluded VPCs and subnets. + + - `allow-egress`: Allow outbound internet traffic from the excluded VPCs + and subnets. Block inbound internet traffic to the excluded VPCs and + subnets. Only applies when VPC Block Public Access is set to + Bidirectional. + """ + +@dataclass(kw_only=True) +class ModifyVpcBlockPublicAccessExclusionOutput(_SerdeShape): + """Dataclass for ModifyVpcBlockPublicAccessExclusionOutput structure.""" + + vpc_block_public_access_exclusion: VpcBlockPublicAccessExclusion | None = ... + """Details related to the exclusion.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcBlockPublicAccessOptionsInput(_SerdeShape): + """Dataclass for ModifyVpcBlockPublicAccessOptionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + internet_gateway_block_mode: str | None = ... + """ + The mode of VPC BPA. + + - `off`: VPC BPA is not enabled and traffic is allowed to and from + internet gateways and egress-only internet gateways in this Region. + + - `block-bidirectional`: Block all traffic to and from internet gateways + and egress-only internet gateways in this Region (except for excluded + VPCs and subnets). + + - `block-ingress`: Block all internet traffic to the VPCs in this Region + (except for VPCs or subnets which are excluded). Only traffic to and + from NAT gateways and egress-only internet gateways is allowed because + these gateways only allow outbound connections to be established. + """ + +@dataclass(kw_only=True) +class ModifyVpcBlockPublicAccessOptionsOutput(_SerdeShape): + """Dataclass for ModifyVpcBlockPublicAccessOptionsOutput structure.""" + + vpc_block_public_access_options: VpcBlockPublicAccessOptions | None = ... + """Details related to the VPC Block Public Access (BPA) options.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEncryptionControlInput(_SerdeShape): + """Dataclass for ModifyVpcEncryptionControlInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_encryption_control_id: str | None = ... + """The ID of the VPC Encryption Control resource to modify.""" + mode: str | None = ... + """The encryption mode for the VPC Encryption Control configuration.""" + internet_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude internet gateway traffic from encryption + enforcement. + """ + egress_only_internet_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude egress-only internet gateway traffic from + encryption enforcement. + """ + nat_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude NAT gateway traffic from encryption + enforcement. + """ + virtual_private_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude virtual private gateway traffic from + encryption enforcement. + """ + vpc_peering_exclusion: str | None = ... + """ + Specifies whether to exclude VPC peering connection traffic from + encryption enforcement. + """ + lambda_exclusion: str | None = ... + """ + Specifies whether to exclude Lambda function traffic from encryption + enforcement. + """ + vpc_lattice_exclusion: str | None = ... + """ + Specifies whether to exclude VPC Lattice traffic from encryption + enforcement. + """ + elastic_file_system_exclusion: str | None = ... + """ + Specifies whether to exclude Elastic File System traffic from encryption + enforcement. + """ + +@dataclass(kw_only=True) +class ModifyVpcEncryptionControlOutput(_SerdeShape): + """Dataclass for ModifyVpcEncryptionControlOutput structure.""" + + vpc_encryption_control: VpcEncryptionControl | None = ... + """Information about the VPC Encryption Control configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointConnectionNotificationInput(_SerdeShape): + """Dataclass for ModifyVpcEndpointConnectionNotificationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + connection_notification_id: str | None = ... + """The ID of the notification.""" + connection_notification_arn: str | None = ... + """The ARN for the SNS topic for the notification.""" + connection_events: list[str] | None = ... + """ + The events for the endpoint. Valid values are `Accept`, `Connect`, + `Delete`, and `Reject`. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointConnectionNotificationOutput(_SerdeShape): + """Dataclass for ModifyVpcEndpointConnectionNotificationOutput structure.""" + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointInput(_SerdeShape): + """Dataclass for ModifyVpcEndpointInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_endpoint_id: str | None = ... + """The ID of the endpoint.""" + reset_policy: bool | None = ... + """ + (Gateway endpoint) Specify `true` to reset the policy document to the + default policy. The default policy allows full access to the service. + """ + policy_document: str | None = ... + """ + (Interface and gateway endpoints) A policy to attach to the endpoint + that controls access to the service. The policy must be in valid JSON + format. + """ + add_route_table_ids: list[str] | None = ... + """ + (Gateway endpoint) The IDs of the route tables to associate with the + endpoint. + """ + remove_route_table_ids: list[str] | None = ... + """ + (Gateway endpoint) The IDs of the route tables to disassociate from the + endpoint. + """ + add_subnet_ids: list[str] | None = ... + """ + (Interface and Gateway Load Balancer endpoints) The IDs of the subnets + in which to serve the endpoint. For a Gateway Load Balancer endpoint, + you can specify only one subnet. + """ + remove_subnet_ids: list[str] | None = ... + """ + (Interface endpoint) The IDs of the subnets from which to remove the + endpoint. + """ + add_security_group_ids: list[str] | None = ... + """ + (Interface endpoint) The IDs of the security groups to associate with + the endpoint network interfaces. + """ + remove_security_group_ids: list[str] | None = ... + """ + (Interface endpoint) The IDs of the security groups to disassociate from + the endpoint network interfaces. + """ + ip_address_type: str | None = ... + """The IP address type for the endpoint.""" + dns_options: DnsOptionsSpecification | None = ... + """The DNS options for the endpoint.""" + private_dns_enabled: bool | None = ... + """ + (Interface endpoint) Indicates whether a private hosted zone is + associated with the VPC. + """ + subnet_configurations: list[SubnetConfiguration] | None = ... + """The subnet configurations for the endpoint.""" + +@dataclass(kw_only=True) +class ModifyVpcEndpointOutput(_SerdeShape): + """Dataclass for ModifyVpcEndpointOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointPayerResponsibilityInput(_SerdeShape): + """Dataclass for ModifyVpcEndpointPayerResponsibilityInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the VPC endpoint service.""" + vpc_endpoint_id: str | None = ... + """The ID of the VPC endpoint.""" + payer_responsibility: str | None = ... + """ + The Amazon Web Services account to which the usage of VPC endpoint is + charged. + """ + scope: str | None = ... + """ + The scope of usage/charges for which the billing account is being + modified. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointPayerResponsibilityOutput(_SerdeShape): + """Dataclass for ModifyVpcEndpointPayerResponsibilityOutput structure.""" + + vpc_endpoint_id: str | None = ... + """The ID of the VPC endpoint.""" + payer_responsibilities: list[PayerResponsibilityEntry] | None = ... + """The payer responsibility settings for the VPC endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointServiceConfigurationInput(_SerdeShape): + """Dataclass for ModifyVpcEndpointServiceConfigurationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the service.""" + private_dns_name: str | None = ... + """ + (Interface endpoint configuration) The private DNS name to assign to the + endpoint service. + """ + remove_private_dns_name: bool | None = ... + """ + (Interface endpoint configuration) Removes the private DNS name of the + endpoint service. + """ + acceptance_required: bool | None = ... + """ + Indicates whether requests to create an endpoint to the service must be + accepted. + """ + add_network_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of Network Load Balancers to add to the + service configuration. + """ + remove_network_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of Network Load Balancers to remove + from the service configuration. + """ + add_gateway_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of Gateway Load Balancers to add to the + service configuration. + """ + remove_gateway_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of Gateway Load Balancers to remove + from the service configuration. + """ + add_supported_ip_address_types: list[str] | None = ... + """The IP address types to add to the service configuration.""" + remove_supported_ip_address_types: list[str] | None = ... + """The IP address types to remove from the service configuration.""" + add_supported_regions: list[str] | None = ... + """The supported Regions to add to the service configuration.""" + remove_supported_regions: list[str] | None = ... + """The supported Regions to remove from the service configuration.""" + +@dataclass(kw_only=True) +class ModifyVpcEndpointServiceConfigurationOutput(_SerdeShape): + """Dataclass for ModifyVpcEndpointServiceConfigurationOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointServicePayerResponsibilityInput(_SerdeShape): + """ + Dataclass for ModifyVpcEndpointServicePayerResponsibilityInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the service.""" + payer_responsibility: str | None = ... + """ + The entity that is responsible for the endpoint costs. The default is + the endpoint owner. If you set the payer responsibility to the service + owner, you cannot set it back to the endpoint owner. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointServicePayerResponsibilityOutput(_SerdeShape): + """ + Dataclass for ModifyVpcEndpointServicePayerResponsibilityOutput + structure. + """ + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointServicePermissionsInput(_SerdeShape): + """Dataclass for ModifyVpcEndpointServicePermissionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the service.""" + add_allowed_principals: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the principals. Permissions are + granted to the principals in this list. To grant permissions to all + principals, specify an asterisk (*). + """ + remove_allowed_principals: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the principals. Permissions are + revoked for principals in this list. + """ + +@dataclass(kw_only=True) +class ModifyVpcEndpointServicePermissionsOutput(_SerdeShape): + """Dataclass for ModifyVpcEndpointServicePermissionsOutput structure.""" + + added_principals: list[AddedPrincipal] | None = ... + """Information about the added principals.""" + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcPeeringConnectionOptionsInput(_SerdeShape): + """Dataclass for ModifyVpcPeeringConnectionOptionsInput structure.""" + + accepter_peering_connection_options: PeeringConnectionOptionsRequest | None = ... + """The VPC peering connection options for the accepter VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + requester_peering_connection_options: PeeringConnectionOptionsRequest | None = ... + """The VPC peering connection options for the requester VPC.""" + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection.""" + +@dataclass(kw_only=True) +class ModifyVpcPeeringConnectionOptionsOutput(_SerdeShape): + """Dataclass for ModifyVpcPeeringConnectionOptionsOutput structure.""" + + accepter_peering_connection_options: PeeringConnectionOptions | None = ... + """ + Information about the VPC peering connection options for the accepter + VPC. + """ + requester_peering_connection_options: PeeringConnectionOptions | None = ... + """ + Information about the VPC peering connection options for the requester + VPC. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpcTenancyInput(_SerdeShape): + """Dataclass for ModifyVpcTenancyInput structure.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + instance_tenancy: str | None = ... + """The instance tenancy attribute for the VPC.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVpcTenancyOutput(_SerdeShape): + """Dataclass for ModifyVpcTenancyOutput structure.""" + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpnConnectionInput(_SerdeShape): + """Dataclass for ModifyVpnConnectionInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the VPN connection.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + customer_gateway_id: str | None = ... + """The ID of the customer gateway at your end of the VPN connection.""" + vpn_gateway_id: str | None = ... + """ + The ID of the virtual private gateway at the Amazon Web Services side of + the VPN connection. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVpnConnectionOptionsInput(_SerdeShape): + """Dataclass for ModifyVpnConnectionOptionsInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Site-to-Site VPN connection.""" + local_ipv4_network_cidr: str | None = ... + """ + The IPv4 CIDR on the customer gateway (on-premises) side of the VPN + connection. + + Default: `0.0.0.0/0` + """ + remote_ipv4_network_cidr: str | None = ... + """ + The IPv4 CIDR on the Amazon Web Services side of the VPN connection. + + Default: `0.0.0.0/0` + """ + local_ipv6_network_cidr: str | None = ... + """ + The IPv6 CIDR on the customer gateway (on-premises) side of the VPN + connection. + + Default: `::/0` + """ + remote_ipv6_network_cidr: str | None = ... + """ + The IPv6 CIDR on the Amazon Web Services side of the VPN connection. + + Default: `::/0` + """ + tunnel_bandwidth: str | None = ... + """ + The desired bandwidth specification for the VPN connection. `standard` + supports up to 1.25 Gbps per tunnel, while `large` supports up to 5 Gbps + per tunnel. Large bandwidth is only available for VPN connections + attached to a transit gateway or to Cloud WAN. The default value is + `standard`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVpnConnectionOptionsOutput(_SerdeShape): + """Dataclass for ModifyVpnConnectionOptionsOutput structure.""" + + vpn_connection: VpnConnection | None = ... + """Information about the VPN connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpnConnectionOutput(_SerdeShape): + """Dataclass for ModifyVpnConnectionOutput structure.""" + + vpn_connection: VpnConnection | None = ... + """Information about the VPN connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpnTunnelCertificateInput(_SerdeShape): + """Dataclass for ModifyVpnTunnelCertificateInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Amazon Web Services Site-to-Site VPN connection.""" + vpn_tunnel_outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ModifyVpnTunnelCertificateOutput(_SerdeShape): + """Dataclass for ModifyVpnTunnelCertificateOutput structure.""" + + vpn_connection: VpnConnection | None = ... + """Information about the VPN connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpnTunnelOptionsInput(_SerdeShape): + """Dataclass for ModifyVpnTunnelOptionsInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Amazon Web Services Site-to-Site VPN connection.""" + vpn_tunnel_outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + tunnel_options: ModifyVpnTunnelOptionsSpecification | None = ... + """The tunnel options to modify.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + skip_tunnel_replacement: bool | None = ... + """ + Choose whether or not to trigger immediate tunnel replacement. This is + only applicable when turning on or off `EnableTunnelLifecycleControl`. + + Valid values: `True` | `False` + """ + pre_shared_key_storage: str | None = ... + """ + Specifies the storage mode for the pre-shared key (PSK). Valid values + are `Standard` (stored in Site-to-Site VPN service) or `SecretsManager` + (stored in Amazon Web Services Secrets Manager). + """ + +@dataclass(kw_only=True) +class ModifyVpnTunnelOptionsOutput(_SerdeShape): + """Dataclass for ModifyVpnTunnelOptionsOutput structure.""" + + vpn_connection: VpnConnection | None = ... + """Information about the VPN connection.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyVpnTunnelOptionsSpecification(_SerdeShape): + """The Amazon Web Services Site-to-Site VPN tunnel options to modify.""" + + tunnel_inside_cidr: str | None = ... + """ + The range of inside IPv4 addresses for the tunnel. Any specified CIDR + blocks must be unique across all VPN connections that use the same + virtual private gateway. + + Constraints: A size /30 CIDR block from the `169.254.0.0/16` range. The + following CIDR blocks are reserved and cannot be used: + + - `169.254.0.0/30` + + - `169.254.1.0/30` + + - `169.254.2.0/30` + + - `169.254.3.0/30` + + - `169.254.4.0/30` + + - `169.254.5.0/30` + + - `169.254.169.252/30` + """ + tunnel_inside_ipv6_cidr: str | None = ... + """ + The range of inside IPv6 addresses for the tunnel. Any specified CIDR + blocks must be unique across all VPN connections that use the same + transit gateway. + + Constraints: A size /126 CIDR block from the local `fd00::/8` range. + """ + pre_shared_key: str | None = ... + """ + The pre-shared key (PSK) to establish initial authentication between the + virtual private gateway and the customer gateway. + + Constraints: Allowed characters are alphanumeric characters, periods + (.), and underscores (_). Must be between 8 and 64 characters in length + and cannot start with zero (0). + """ + phase1_lifetime_seconds: int | None = ... + """ + The lifetime for phase 1 of the IKE negotiation, in seconds. + + Constraints: A value between 900 and 28,800. + + Default: `28800` + """ + phase2_lifetime_seconds: int | None = ... + """ + The lifetime for phase 2 of the IKE negotiation, in seconds. + + Constraints: A value between 900 and 3,600. The value must be less than + the value for `Phase1LifetimeSeconds`. + + Default: `3600` + """ + rekey_margin_time_seconds: int | None = ... + """ + The margin time, in seconds, before the phase 2 lifetime expires, during + which the Amazon Web Services side of the VPN connection performs an IKE + rekey. The exact time of the rekey is randomly selected based on the + value for `RekeyFuzzPercentage`. + + Constraints: A value between 60 and half of `Phase2LifetimeSeconds`. + + Default: `270` + """ + rekey_fuzz_percentage: int | None = ... + """ + The percentage of the rekey window (determined by + `RekeyMarginTimeSeconds`) during which the rekey time is randomly + selected. + + Constraints: A value between 0 and 100. + + Default: `100` + """ + replay_window_size: int | None = ... + """ + The number of packets in an IKE replay window. + + Constraints: A value between 64 and 2048. + + Default: `1024` + """ + dpd_timeout_seconds: int | None = ... + """ + The number of seconds after which a DPD timeout occurs. A DPD timeout of + 40 seconds means that the VPN endpoint will consider the peer dead 30 + seconds after the first failed keep-alive. + + Constraints: A value greater than or equal to 30. + + Default: `40` + """ + dpd_timeout_action: str | None = ... + """ + The action to take after DPD timeout occurs. Specify `restart` to + restart the IKE initiation. Specify `clear` to end the IKE session. + + Valid Values: `clear` | `none` | `restart` + + Default: `clear` + """ + phase1_encryption_algorithms: ( + list[Phase1EncryptionAlgorithmsRequestListValue] | None + ) = ... + """ + One or more encryption algorithms that are permitted for the VPN tunnel + for phase 1 IKE negotiations. + + Valid values: `AES128` | `AES256` | `AES128-GCM-16` | `AES256-GCM-16` + """ + phase2_encryption_algorithms: ( + list[Phase2EncryptionAlgorithmsRequestListValue] | None + ) = ... + """ + One or more encryption algorithms that are permitted for the VPN tunnel + for phase 2 IKE negotiations. + + Valid values: `AES128` | `AES256` | `AES128-GCM-16` | `AES256-GCM-16` + """ + phase1_integrity_algorithms: ( + list[Phase1IntegrityAlgorithmsRequestListValue] | None + ) = ... + """ + One or more integrity algorithms that are permitted for the VPN tunnel + for phase 1 IKE negotiations. + + Valid values: `SHA1` | `SHA2-256` | `SHA2-384` | `SHA2-512` + """ + phase2_integrity_algorithms: ( + list[Phase2IntegrityAlgorithmsRequestListValue] | None + ) = ... + """ + One or more integrity algorithms that are permitted for the VPN tunnel + for phase 2 IKE negotiations. + + Valid values: `SHA1` | `SHA2-256` | `SHA2-384` | `SHA2-512` + """ + phase1_dh_group_numbers: list[Phase1DHGroupNumbersRequestListValue] | None = ... + """ + One or more Diffie-Hellman group numbers that are permitted for the VPN + tunnel for phase 1 IKE negotiations. + + Valid values: `2` | `14` | `15` | `16` | `17` | `18` | `19` | + `20` | `21` | `22` | `23` | `24` + """ + phase2_dh_group_numbers: list[Phase2DHGroupNumbersRequestListValue] | None = ... + """ + One or more Diffie-Hellman group numbers that are permitted for the VPN + tunnel for phase 2 IKE negotiations. + + Valid values: `2` | `5` | `14` | `15` | `16` | `17` | `18` | `19` + | `20` | `21` | `22` | `23` | `24` + """ + ike_versions: list[IKEVersionsRequestListValue] | None = ... + """ + The IKE versions that are permitted for the VPN tunnel. + + Valid values: `ikev1` | `ikev2` + """ + startup_action: str | None = ... + """ + The action to take when the establishing the tunnel for the VPN + connection. By default, your customer gateway device must initiate the + IKE negotiation and bring up the tunnel. Specify `start` for Amazon Web + Services to initiate the IKE negotiation. + + Valid Values: `add` | `start` + + Default: `add` + """ + log_options: VpnTunnelLogOptionsSpecification | None = ... + """Options for logging VPN tunnel activity.""" + enable_tunnel_lifecycle_control: bool | None = ... + """Turn on or off tunnel endpoint lifecycle control feature.""" + +@dataclass(kw_only=True) +class Monitoring(_SerdeShape): + """Describes the monitoring of an instance.""" + + state: str | None = ... + """ + Indicates whether detailed monitoring is enabled. Otherwise, basic + monitoring is enabled. + """ + +class MonitoringState(UnknownEnumMixin, StrEnum): + DISABLED = "disabled" + DISABLING = "disabling" + ENABLED = "enabled" + PENDING = "pending" + +@dataclass(kw_only=True) +class MonitorInstancesInput(_SerdeShape): + """Dataclass for MonitorInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class MonitorInstancesOutput(_SerdeShape): + """Dataclass for MonitorInstancesOutput structure.""" + + instance_monitorings: list[InstanceMonitoring] | None = ... + """The monitoring information.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MoveAddressToVpcInput(_SerdeShape): + """Dataclass for MoveAddressToVpcInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + public_ip: str | None = ... + """The Elastic IP address.""" + +@dataclass(kw_only=True) +class MoveAddressToVpcOutput(_SerdeShape): + """Dataclass for MoveAddressToVpcOutput structure.""" + + allocation_id: str | None = ... + """The allocation ID for the Elastic IP address.""" + status: str | None = ... + """The status of the move of the IP address.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MoveByoipCidrToIpamInput(_SerdeShape): + """Dataclass for MoveByoipCidrToIpamInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + cidr: str | None = ... + """The BYOIP CIDR.""" + ipam_pool_id: str | None = ... + """The IPAM pool ID.""" + ipam_pool_owner: str | None = ... + """The Amazon Web Services account ID of the owner of the IPAM pool.""" + +@dataclass(kw_only=True) +class MoveByoipCidrToIpamOutput(_SerdeShape): + """Dataclass for MoveByoipCidrToIpamOutput structure.""" + + byoip_cidr: ByoipCidr | None = ... + """The BYOIP CIDR.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MoveCapacityReservationInstancesInput(_SerdeShape): + """Dataclass for MoveCapacityReservationInstancesInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensure + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + source_capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation from which you want to move capacity.""" + destination_capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation that you want to move capacity into.""" + instance_count: int | None = ... + """ + The number of instances that you want to move from the source Capacity + Reservation. + """ + +@dataclass(kw_only=True) +class MoveCapacityReservationInstancesOutput(_SerdeShape): + """Dataclass for MoveCapacityReservationInstancesOutput structure.""" + + source_capacity_reservation: CapacityReservation | None = ... + """Information about the source Capacity Reservation.""" + destination_capacity_reservation: CapacityReservation | None = ... + """Information about the destination Capacity Reservation.""" + instance_count: int | None = ... + """ + The number of instances that were moved from the source Capacity + Reservation to the destination Capacity Reservation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class MoveStatus(UnknownEnumMixin, StrEnum): + MOVING_TO_VPC = "movingToVpc" + RESTORING_TO_CLASSIC = "restoringToClassic" + +@dataclass(kw_only=True) +class MovingAddressStatus(_SerdeShape): + """ + Note: + This action is deprecated. + + Describes the status of a moving Elastic IP address. + """ + + move_status: str | None = ... + """The status of the Elastic IP address that's being moved or restored.""" + public_ip: str | None = ... + """The Elastic IP address.""" + +class MulticastSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class NatGateway(_SerdeShape): + """Describes a NAT gateway.""" + + create_time: datetime | None = ... + """The date and time the NAT gateway was created.""" + delete_time: datetime | None = ... + """The date and time the NAT gateway was deleted, if applicable.""" + failure_code: str | None = ... + """ + If the NAT gateway could not be created, specifies the error code for + the failure. (`InsufficientFreeAddressesInSubnet` | + `Gateway.NotAttached` | `InvalidAllocationID.NotFound` | + `Resource.AlreadyAssociated` | `InternalError` | + `InvalidSubnetID.NotFound`) + """ + failure_message: str | None = ... + """ + If the NAT gateway could not be created, specifies the error message for + the failure, that corresponds to the error code. + + - For InsufficientFreeAddressesInSubnet: \"Subnet has insufficient free + addresses to create this NAT gateway\" + + - For Gateway.NotAttached: \"Network vpc-xxxxxxxx has no Internet + gateway attached\" + + - For InvalidAllocationID.NotFound: \"Elastic IP address + eipalloc-xxxxxxxx could not be associated with this NAT gateway\" + + - For Resource.AlreadyAssociated: \"Elastic IP address eipalloc-xxxxxxxx + is already associated\" + + - For InternalError: \"Network interface eni-xxxxxxxx, created and used + internally by this NAT gateway is in an invalid state. Please try + again.\" + + - For InvalidSubnetID.NotFound: \"The specified subnet subnet-xxxxxxxx + does not exist or could not be found.\" + """ + nat_gateway_addresses: list[NatGatewayAddress] | None = ... + """ + Information about the IP addresses and network interface associated with + the NAT gateway. + """ + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + provisioned_bandwidth: ProvisionedBandwidth | None = ... + """ + Reserved. If you need to sustain traffic greater than the [documented + limits](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-gateways), + contact Amazon Web Services Support. + """ + state: str | None = ... + """ + The state of the NAT gateway. + + - `pending`: The NAT gateway is being created and is not ready to + process traffic. + + - `failed`: The NAT gateway could not be created. Check the + `failureCode` and `failureMessage` fields for the reason. + + - `available`: The NAT gateway is able to process traffic. This status + remains until you delete the NAT gateway, and does not indicate the + health of the NAT gateway. + + - `deleting`: The NAT gateway is in the process of being terminated and + may still be processing traffic. + + - `deleted`: The NAT gateway has been terminated and is no longer + processing traffic. + """ + subnet_id: str | None = ... + """The ID of the subnet in which the NAT gateway is located.""" + vpc_id: str | None = ... + """The ID of the VPC in which the NAT gateway is located.""" + tags: list[Tag] | None = ... + """The tags for the NAT gateway.""" + connectivity_type: str | None = ... + """ + Indicates whether the NAT gateway supports public or private + connectivity. + """ + availability_mode: str | None = ... + """ + Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT + gateway. + + A zonal NAT gateway is a NAT Gateway that provides redundancy and + scalability within a single availability zone. A regional NAT gateway is + a single NAT Gateway that works across multiple availability zones (AZs) + in your VPC, providing redundancy, scalability and availability across + all the AZs in a Region. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + auto_scaling_ips: str | None = ... + """ + For regional NAT gateways only: Indicates whether Amazon Web Services + automatically allocates additional Elastic IP addresses (EIPs) in an AZ + when the NAT gateway needs more ports due to increased concurrent + connections to a single destination from that AZ. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + auto_provision_zones: str | None = ... + """ + For regional NAT gateways only: Indicates whether Amazon Web Services + automatically manages AZ coverage. When enabled, the NAT gateway + associates EIPs in all AZs where your VPC has subnets to handle outbound + NAT traffic, expands to new AZs when you create subnets there, and + retracts from AZs where you've removed all subnets. When disabled, you + must manually manage which AZs the NAT gateway supports and their + corresponding EIPs. + + A regional NAT gateway is a single NAT Gateway that works across + multiple availability zones (AZs) in your VPC, providing redundancy, + scalability and availability across all the AZs in a Region. + + For more information, see [Regional NAT gateways for automatic multi-AZ + expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) + in the *Amazon VPC User Guide*. + """ + attached_appliances: list[NatGatewayAttachedAppliance] | None = ... + """ + The proxy appliances attached to the NAT Gateway for filtering and + inspecting traffic to prevent data exfiltration. + """ + route_table_id: str | None = ... + """For regional NAT gateways only, this is the ID of the NAT gateway.""" + +@dataclass(kw_only=True) +class NatGatewayAddress(_SerdeShape): + """ + Describes the IP addresses and network interface associated with a NAT + gateway. + """ + + allocation_id: str | None = ... + """ + [Public NAT gateway only] The allocation ID of the Elastic IP address + that's associated with the NAT gateway. + """ + network_interface_id: str | None = ... + """The ID of the network interface associated with the NAT gateway.""" + private_ip: str | None = ... + """The private IP address associated with the NAT gateway.""" + public_ip: str | None = ... + """ + [Public NAT gateway only] The Elastic IP address associated with the + NAT gateway. + """ + association_id: str | None = ... + """ + [Public NAT gateway only] The association ID of the Elastic IP address + that's associated with the NAT gateway. + """ + is_primary: bool | None = ... + """Defines if the IP address is the primary address.""" + failure_message: str | None = ... + """The address failure message.""" + status: str | None = ... + """The address status.""" + availability_zone: str | None = ... + """ + The Availability Zone where this Elastic IP address (EIP) is being used + to handle outbound NAT traffic. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone where this Elastic IP address (EIP) is + being used to handle outbound NAT traffic. Use this instead of + AvailabilityZone for consistent identification of AZs across Amazon Web + Services Regions. + """ + +class NatGatewayAddressStatus(UnknownEnumMixin, StrEnum): + ASSIGNING = "assigning" + UNASSIGNING = "unassigning" + ASSOCIATING = "associating" + DISASSOCIATING = "disassociating" + SUCCEEDED = "succeeded" + FAILED = "failed" + +class NatGatewayApplianceModifyState(UnknownEnumMixin, StrEnum): + MODIFYING = "modifying" + COMPLETED = "completed" + FAILED = "failed" + +class NatGatewayApplianceState(UnknownEnumMixin, StrEnum): + ATTACHING = "attaching" + ATTACHED = "attached" + DETACHING = "detaching" + DETACHED = "detached" + ATTACH_FAILED = "attach-failed" + DETACH_FAILED = "detach-failed" + +class NatGatewayApplianceType(UnknownEnumMixin, StrEnum): + NETWORK_FIREWALL_PROXY = "network-firewall-proxy" + +@dataclass(kw_only=True) +class NatGatewayAttachedAppliance(_SerdeShape): + """ + Information about an appliance attached to a NAT Gateway, providing + managed security solutions for traffic filtering and inspection. + """ + + type: str | None = ... + """ + The type of appliance attached to the NAT Gateway. For network firewall + proxy functionality, this will be \"network-firewall-proxy\". + """ + appliance_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the attached appliance, identifying + the specific proxy or security appliance resource. + """ + vpc_endpoint_id: str | None = ... + """ + The VPC endpoint ID used to route traffic from application VPCs to the + proxy for inspection and filtering. + """ + attachment_state: str | None = ... + """The current attachment state of the appliance.""" + modification_state: str | None = ... + """The current modification state of the appliance.""" + failure_code: str | None = ... + """ + The failure code if the appliance attachment or modification operation + failed. + """ + failure_message: str | None = ... + """ + A descriptive message explaining the failure if the appliance attachment + or modification operation failed. + """ + +class NatGatewayState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + FAILED = "failed" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class NativeApplicationOidcOptions(_SerdeShape): + """Describes the OpenID Connect (OIDC) options.""" + + public_signing_key_endpoint: str | None = ... + """The public signing key endpoint.""" + issuer: str | None = ... + """The OIDC issuer identifier of the IdP.""" + authorization_endpoint: str | None = ... + """The authorization endpoint of the IdP.""" + token_endpoint: str | None = ... + """The token endpoint of the IdP.""" + user_info_endpoint: str | None = ... + """The user info endpoint of the IdP.""" + client_id: str | None = ... + """The OAuth 2.0 client identifier.""" + scope: str | None = ... + """The set of user claims to be requested from the IdP.""" + +class NestedVirtualizationSpecification(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class NetworkAcl(_SerdeShape): + """Describes a network ACL.""" + + associations: list[NetworkAclAssociation] | None = ... + """Any associations between the network ACL and your subnets""" + entries: list[NetworkAclEntry] | None = ... + """The entries (rules) in the network ACL.""" + is_default: bool | None = ... + """Indicates whether this is the default network ACL for the VPC.""" + network_acl_id: str | None = ... + """The ID of the network ACL.""" + tags: list[Tag] | None = ... + """Any tags assigned to the network ACL.""" + vpc_id: str | None = ... + """The ID of the VPC for the network ACL.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the network ACL.""" + +@dataclass(kw_only=True) +class NetworkAclAssociation(_SerdeShape): + """Describes an association between a network ACL and a subnet.""" + + network_acl_association_id: str | None = ... + """The ID of the association between a network ACL and a subnet.""" + network_acl_id: str | None = ... + """The ID of the network ACL.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + +@dataclass(kw_only=True) +class NetworkAclEntry(_SerdeShape): + """Describes an entry in a network ACL.""" + + cidr_block: str | None = ... + """The IPv4 network range to allow or deny, in CIDR notation.""" + egress: bool | None = ... + """ + Indicates whether the rule is an egress rule (applied to traffic leaving + the subnet). + """ + icmp_type_code: IcmpTypeCode | None = ... + """ICMP protocol: The ICMP type and code.""" + ipv6_cidr_block: str | None = ... + """The IPv6 network range to allow or deny, in CIDR notation.""" + port_range: PortRange | None = ... + """TCP or UDP protocols: The range of ports the rule applies to.""" + protocol: str | None = ... + """The protocol number. A value of \"-1\" means all protocols.""" + rule_action: str | None = ... + """Indicates whether to allow or deny the traffic that matches the rule.""" + rule_number: int | None = ... + """ + The rule number for the entry. ACL entries are processed in ascending + order by rule number. + """ + +@dataclass(kw_only=True) +class NetworkBandwidthGbps(_SerdeShape): + """ + The minimum and maximum amount of network bandwidth, in gigabits per + second (Gbps). + + Note: + Setting the minimum bandwidth does not guarantee that your instance will + achieve the minimum bandwidth. Amazon EC2 will identify instance types + that support the specified minimum bandwidth, but the actual bandwidth + of your instance might go below the specified minimum at times. For more + information, see [Available instance + bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth) + in the *Amazon EC2 User Guide*. + """ + + min: float | None = ... + """ + The minimum amount of network bandwidth, in Gbps. If this parameter is + not specified, there is no minimum limit. + """ + max: float | None = ... + """ + The maximum amount of network bandwidth, in Gbps. If this parameter is + not specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class NetworkBandwidthGbpsRequest(_SerdeShape): + """ + The minimum and maximum amount of network bandwidth, in gigabits per + second (Gbps). + + Note: + Setting the minimum bandwidth does not guarantee that your instance will + achieve the minimum bandwidth. Amazon EC2 will identify instance types + that support the specified minimum bandwidth, but the actual bandwidth + of your instance might go below the specified minimum at times. For more + information, see [Available instance + bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth) + in the *Amazon EC2 User Guide*. + """ + + min: float | None = ... + """ + The minimum amount of network bandwidth, in Gbps. To specify no minimum + limit, omit this parameter. + """ + max: float | None = ... + """ + The maximum amount of network bandwidth, in Gbps. To specify no maximum + limit, omit this parameter. + """ + +@dataclass(kw_only=True) +class NetworkCardInfo(_SerdeShape): + """Describes the network card support of the instance type.""" + + network_card_index: int | None = ... + """The index of the network card.""" + network_performance: str | None = ... + """The network performance of the network card.""" + maximum_network_interfaces: int | None = ... + """The maximum number of network interfaces for the network card.""" + additional_flexible_network_interfaces: int | None = ... + """ + The number of additional network interfaces that can be attached to an + instance when using flexible Elastic Network Adapter (ENA) queues. This + number is in addition to the base number specified by + `maximumNetworkInterfaces`. + """ + baseline_bandwidth_in_gbps: float | None = ... + """The baseline network performance of the network card, in Gbps.""" + peak_bandwidth_in_gbps: float | None = ... + """The peak (burst) network performance of the network card, in Gbps.""" + default_ena_queue_count_per_interface: int | None = ... + """The default number of the ENA queues for each interface.""" + maximum_ena_queue_count: int | None = ... + """The maximum number of the ENA queues.""" + maximum_ena_queue_count_per_interface: int | None = ... + """The maximum number of the ENA queues for each interface.""" + interface_types: list[str] | None = ... + """The supported interface types for the network card.""" + +class NetworkCardInterfaceType(UnknownEnumMixin, StrEnum): + INTERFACE = "interface" + EFA = "efa" + EFA_ONLY = "efa-only" + SECONDARY = "secondary" + +@dataclass(kw_only=True) +class NetworkInfo(_SerdeShape): + """Describes the networking features of the instance type.""" + + network_performance: str | None = ... + """The network performance.""" + maximum_network_interfaces: int | None = ... + """The maximum number of network interfaces for the instance type.""" + maximum_network_cards: int | None = ... + """ + The maximum number of physical network cards that can be allocated to + the instance. + """ + default_network_card_index: int | None = ... + """The index of the default network card, starting at 0.""" + network_cards: list[NetworkCardInfo] | None = ... + """Describes the network cards for the instance type.""" + ipv4_addresses_per_interface: int | None = ... + """The maximum number of IPv4 addresses per network interface.""" + ipv6_addresses_per_interface: int | None = ... + """The maximum number of IPv6 addresses per network interface.""" + ipv6_supported: bool | None = ... + """Indicates whether IPv6 is supported.""" + ena_support: str | None = ... + """Indicates whether Elastic Network Adapter (ENA) is supported.""" + efa_supported: bool | None = ... + """Indicates whether Elastic Fabric Adapter (EFA) is supported.""" + efa_info: EfaInfo | None = ... + """Describes the Elastic Fabric Adapters for the instance type.""" + encryption_in_transit_supported: bool | None = ... + """ + Indicates whether the instance type automatically encrypts in-transit + traffic between instances. + """ + ena_srd_supported: bool | None = ... + """ + Indicates whether the instance type supports ENA Express. ENA Express + uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to + increase the maximum bandwidth used per stream and minimize tail latency + of network traffic between EC2 instances. + """ + bandwidth_weightings: list[str] | None = ... + """ + A list of valid settings for configurable bandwidth weighting for the + instance type, if supported. + """ + flexible_ena_queues_support: str | None = ... + """Indicates whether changing the number of ENA queues is supported.""" + connection_tracking_configuration: ( + DefaultConnectionTrackingConfiguration | None + ) = ... + """Indicates conntrack information for the instance type""" + secondary_network_supported: bool | None = ... + """ + Indicates whether secondary interface attachments from secondary network + are supported. + """ + maximum_secondary_network_interfaces: int | None = ... + """The maximum number of secondary interfaces for the instance type.""" + ipv4_addresses_per_secondary_interface: int | None = ... + """The maximum number of IPv4 addresses per secondary interface.""" + +@dataclass(kw_only=True) +class NetworkInsightsAccessScope(_SerdeShape): + """Describes a Network Access Scope.""" + + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + network_insights_access_scope_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Network Access Scope.""" + created_date: datetime | None = ... + """The creation date.""" + updated_date: datetime | None = ... + """The last updated date.""" + tags: list[Tag] | None = ... + """The tags.""" + +@dataclass(kw_only=True) +class NetworkInsightsAccessScopeAnalysis(_SerdeShape): + """Describes a Network Access Scope analysis.""" + + network_insights_access_scope_analysis_id: str | None = ... + """The ID of the Network Access Scope analysis.""" + network_insights_access_scope_analysis_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Network Access Scope analysis.""" + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + status: str | None = ... + """The status.""" + status_message: str | None = ... + """The status message.""" + warning_message: str | None = ... + """The warning message.""" + start_date: datetime | None = ... + """The analysis start date.""" + end_date: datetime | None = ... + """The analysis end date.""" + findings_found: str | None = ... + """Indicates whether there are findings.""" + analyzed_eni_count: int | None = ... + """The number of network interfaces analyzed.""" + tags: list[Tag] | None = ... + """The tags.""" + +@dataclass(kw_only=True) +class NetworkInsightsAccessScopeContent(_SerdeShape): + """Describes the Network Access Scope content.""" + + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + match_paths: list[AccessScopePath] | None = ... + """The paths to match.""" + exclude_paths: list[AccessScopePath] | None = ... + """The paths to exclude.""" + +@dataclass(kw_only=True) +class NetworkInsightsAnalysis(_SerdeShape): + """Describes a network insights analysis.""" + + network_insights_analysis_id: str | None = ... + """The ID of the network insights analysis.""" + network_insights_analysis_arn: str | None = ... + """The Amazon Resource Name (ARN) of the network insights analysis.""" + network_insights_path_id: str | None = ... + """The ID of the path.""" + additional_accounts: list[str] | None = ... + """The member accounts that contain resources that the path can traverse.""" + filter_in_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the resources that the path must + traverse. + """ + filter_out_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the resources that the path must + ignore. + """ + start_date: datetime | None = ... + """The time the analysis started.""" + status: str | None = ... + """The status of the network insights analysis.""" + status_message: str | None = ... + """The status message, if the status is `failed`.""" + warning_message: str | None = ... + """The warning message.""" + network_path_found: bool | None = ... + """Indicates whether the destination is reachable from the source.""" + forward_path_components: list[PathComponent] | None = ... + """The components in the path from source to destination.""" + return_path_components: list[PathComponent] | None = ... + """The components in the path from destination to source.""" + explanations: list[Explanation] | None = ... + """ + The explanations. For more information, see [Reachability Analyzer + explanation + codes](https://docs.aws.amazon.com/vpc/latest/reachability/explanation-codes.html). + """ + alternate_path_hints: list[AlternatePathHint] | None = ... + """Potential intermediate components.""" + suggested_accounts: list[str] | None = ... + """Potential intermediate accounts.""" + tags: list[Tag] | None = ... + """The tags.""" + +@dataclass(kw_only=True) +class NetworkInsightsPath(_SerdeShape): + """Describes a path.""" + + network_insights_path_id: str | None = ... + """The ID of the path.""" + network_insights_path_arn: str | None = ... + """The Amazon Resource Name (ARN) of the path.""" + created_date: datetime | None = ... + """The time stamp when the path was created.""" + source: str | None = ... + """The ID of the source.""" + destination: str | None = ... + """The ID of the destination.""" + source_arn: str | None = ... + """The Amazon Resource Name (ARN) of the source.""" + destination_arn: str | None = ... + """The Amazon Resource Name (ARN) of the destination.""" + source_ip: str | None = ... + """The IP address of the source.""" + destination_ip: str | None = ... + """The IP address of the destination.""" + protocol: str | None = ... + """The protocol.""" + destination_port: int | None = ... + """The destination port.""" + tags: list[Tag] | None = ... + """The tags associated with the path.""" + filter_at_source: PathFilter | None = ... + """ + Scopes the analysis to network paths that match specific filters at the + source. + """ + filter_at_destination: PathFilter | None = ... + """ + Scopes the analysis to network paths that match specific filters at the + destination. + """ + +@dataclass(kw_only=True) +class NetworkInterface(_SerdeShape): + """Describes a network interface.""" + + association: NetworkInterfaceAssociation | None = ... + """ + The association information for an Elastic IP address (IPv4) associated + with the network interface. + """ + attachment: NetworkInterfaceAttachment | None = ... + """The network interface attachment.""" + availability_zone: str | None = ... + """The Availability Zone.""" + connection_tracking_configuration: ConnectionTrackingConfiguration | None = ... + """ + A security group connection tracking configuration that enables you to + set the timeout for connection tracking on an Elastic network interface. + For more information, see [Connection tracking + timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) + in the *Amazon EC2 User Guide*. + """ + description: str | None = ... + """A description.""" + groups: list[GroupIdentifier] | None = ... + """Any security groups for the network interface.""" + interface_type: str | None = ... + """The type of network interface.""" + ipv6_addresses: list[NetworkInterfaceIpv6Address] | None = ... + """The IPv6 addresses associated with the network interface.""" + mac_address: str | None = ... + """The MAC address.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + owner_id: str | None = ... + """ + The Amazon Web Services account ID of the owner of the network + interface. + """ + private_dns_name: str | None = ... + """ + The private hostname. For more information, see [EC2 instance hostnames, + DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + public_dns_name: str | None = ... + """ + A public hostname. For more information, see [EC2 instance hostnames, + DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + public_ip_dns_name_options: PublicIpDnsNameOptions | None = ... + """ + Public hostname type options. For more information, see [EC2 instance + hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + private_ip_address: str | None = ... + """The IPv4 address of the network interface within the subnet.""" + private_ip_addresses: list[NetworkInterfacePrivateIpAddress] | None = ... + """The private IPv4 addresses associated with the network interface.""" + ipv4_prefixes: list[Ipv4PrefixSpecification] | None = ... + """The IPv4 prefixes that are assigned to the network interface.""" + ipv6_prefixes: list[Ipv6PrefixSpecification] | None = ... + """The IPv6 prefixes that are assigned to the network interface.""" + requester_id: str | None = ... + """ + The alias or Amazon Web Services account ID of the principal or service + that created the network interface. + """ + requester_managed: bool | None = ... + """ + Indicates whether the network interface is being managed by Amazon Web + Services. + """ + source_dest_check: bool | None = ... + """Indicates whether source/destination checking is enabled.""" + status: str | None = ... + """The status of the network interface.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + tag_set: list[Tag] | None = ... + """Any tags assigned to the network interface.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + deny_all_igw_traffic: bool | None = ... + """ + Indicates whether a network interface with an IPv6 address is + unreachable from the public internet. If the value is `true`, inbound + traffic from the internet is dropped and you cannot assign an elastic IP + address to the network interface. The network interface is reachable + from peered VPCs and resources connected through a transit gateway, + including on-premises networks. + """ + ipv6_native: bool | None = ... + """Indicates whether this is an IPv6 only network interface.""" + ipv6_address: str | None = ... + """The IPv6 globally unique address associated with the network interface.""" + operator: OperatorResponse | None = ... + """The service provider that manages the network interface.""" + associated_subnets: list[str] | None = ... + """The subnets associated with this network interface.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + +@dataclass(kw_only=True) +class NetworkInterfaceAssociation(_SerdeShape): + """ + Describes association information for an Elastic IP address (IPv4 only), + or a Carrier IP address (for a network interface which resides in a + subnet in a Wavelength Zone). + """ + + allocation_id: str | None = ... + """The allocation ID.""" + association_id: str | None = ... + """The association ID.""" + ip_owner_id: str | None = ... + """The ID of the Elastic IP address owner.""" + public_dns_name: str | None = ... + """The public DNS name.""" + public_ip: str | None = ... + """The address of the Elastic IP address bound to the network interface.""" + customer_owned_ip: str | None = ... + """The customer-owned IP address associated with the network interface.""" + carrier_ip: str | None = ... + """ + The carrier IP address associated with the network interface. + + This option is only available when the network interface is in a subnet + which is associated with a Wavelength Zone. + """ + +@dataclass(kw_only=True) +class NetworkInterfaceAttachment(_SerdeShape): + """Describes a network interface attachment.""" + + attach_time: datetime | None = ... + """The timestamp indicating when the attachment initiated.""" + attachment_id: str | None = ... + """The ID of the network interface attachment.""" + delete_on_termination: bool | None = ... + """ + Indicates whether the network interface is deleted when the instance is + terminated. + """ + device_index: int | None = ... + """The device index of the network interface attachment on the instance.""" + network_card_index: int | None = ... + """The index of the network card.""" + instance_id: str | None = ... + """The ID of the instance.""" + instance_owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the instance.""" + status: str | None = ... + """The attachment state.""" + ena_srd_specification: AttachmentEnaSrdSpecification | None = ... + """ + Configures ENA Express for the network interface that this action + attaches to the instance. + """ + ena_queue_count: int | None = ... + """The number of ENA queues created with the instance.""" + +@dataclass(kw_only=True) +class NetworkInterfaceAttachmentChanges(_SerdeShape): + """Describes an attachment change.""" + + default_ena_queue_count: bool | None = ... + """The default number of the ENA queues.""" + ena_queue_count: int | None = ... + """The number of ENA queues to be created with the instance.""" + attachment_id: str | None = ... + """The ID of the network interface attachment.""" + delete_on_termination: bool | None = ... + """ + Indicates whether the network interface is deleted when the instance is + terminated. + """ + +class NetworkInterfaceAttribute(UnknownEnumMixin, StrEnum): + DESCRIPTION = "description" + GROUP_SET = "groupSet" + SOURCE_DEST_CHECK = "sourceDestCheck" + ATTACHMENT = "attachment" + ASSOCIATE_PUBLIC_IP_ADDRESS = "associatePublicIpAddress" + +@dataclass(kw_only=True) +class NetworkInterfaceCount(_SerdeShape): + """The minimum and maximum number of network interfaces.""" + + min: int | None = ... + """ + The minimum number of network interfaces. If this parameter is not + specified, there is no minimum limit. + """ + max: int | None = ... + """ + The maximum number of network interfaces. If this parameter is not + specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class NetworkInterfaceCountRequest(_SerdeShape): + """The minimum and maximum number of network interfaces.""" + + min: int | None = ... + """ + The minimum number of network interfaces. To specify no minimum limit, + omit this parameter. + """ + max: int | None = ... + """ + The maximum number of network interfaces. To specify no maximum limit, + omit this parameter. + """ + +class NetworkInterfaceCreationType(UnknownEnumMixin, StrEnum): + EFA = "efa" + EFA_ONLY = "efa-only" + BRANCH = "branch" + TRUNK = "trunk" + +@dataclass(kw_only=True) +class NetworkInterfaceIpv6Address(_SerdeShape): + """Describes an IPv6 address associated with a network interface.""" + + ipv6_address: str | None = ... + """The IPv6 address.""" + public_ipv6_dns_name: str | None = ... + """ + An IPv6-enabled public hostname for a network interface. Requests from + within the VPC or from the internet resolve to the IPv6 GUA of the + network interface. For more information, see [EC2 instance hostnames, + DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + is_primary_ipv6: bool | None = ... + """ + Determines if an IPv6 address associated with a network interface is the + primary IPv6 address. When you enable an IPv6 GUA address to be a + primary IPv6, the first IPv6 GUA will be made the primary IPv6 address + until the instance is terminated or the network interface is detached. + For more information, see + [ModifyNetworkInterfaceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyNetworkInterfaceAttribute.html). + """ + +@dataclass(kw_only=True) +class NetworkInterfacePermission(_SerdeShape): + """Describes a permission for a network interface.""" + + network_interface_permission_id: str | None = ... + """The ID of the network interface permission.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + aws_account_id: str | None = ... + """The Amazon Web Services account ID.""" + aws_service: str | None = ... + """The Amazon Web Services service.""" + permission: str | None = ... + """The type of permission.""" + permission_state: NetworkInterfacePermissionState | None = ... + """Information about the state of the permission.""" + +@dataclass(kw_only=True) +class NetworkInterfacePermissionState(_SerdeShape): + """Describes the state of a network interface permission.""" + + state: str | None = ... + """The state of the permission.""" + status_message: str | None = ... + """A status message, if applicable.""" + +class NetworkInterfacePermissionStateCode(UnknownEnumMixin, StrEnum): + PENDING = "pending" + GRANTED = "granted" + REVOKING = "revoking" + REVOKED = "revoked" + +@dataclass(kw_only=True) +class NetworkInterfacePrivateIpAddress(_SerdeShape): + """Describes the private IPv4 address of a network interface.""" + + association: NetworkInterfaceAssociation | None = ... + """ + The association information for an Elastic IP address (IPv4) associated + with the network interface. + """ + primary: bool | None = ... + """ + Indicates whether this IPv4 address is the primary private IPv4 address + of the network interface. + """ + private_dns_name: str | None = ... + """The private DNS name.""" + private_ip_address: str | None = ... + """The private IPv4 address.""" + +class NetworkInterfaceStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + ASSOCIATED = "associated" + ATTACHING = "attaching" + IN_USE = "in-use" + DETACHING = "detaching" + +class NetworkInterfaceType(UnknownEnumMixin, StrEnum): + INTERFACE = "interface" + NAT_GATEWAY = "natGateway" + EFA = "efa" + EFA_ONLY = "efa-only" + TRUNK = "trunk" + LOAD_BALANCER = "load_balancer" + NETWORK_LOAD_BALANCER = "network_load_balancer" + VPC_ENDPOINT = "vpc_endpoint" + BRANCH = "branch" + TRANSIT_GATEWAY = "transit_gateway" + LAMBDA_ = "lambda" + QUICKSIGHT = "quicksight" + GLOBAL_ACCELERATOR_MANAGED = "global_accelerator_managed" + API_GATEWAY_MANAGED = "api_gateway_managed" + GATEWAY_LOAD_BALANCER = "gateway_load_balancer" + GATEWAY_LOAD_BALANCER_ENDPOINT = "gateway_load_balancer_endpoint" + IOT_RULES_MANAGED = "iot_rules_managed" + AWS_CODESTAR_CONNECTIONS_MANAGED = "aws_codestar_connections_managed" + +class NetworkProtocolEnum(UnknownEnumMixin, StrEnum): + HTTP = "http" + HTTPS = "https" + +@dataclass(kw_only=True) +class NeuronDeviceCoreInfo(_SerdeShape): + """Describes the cores available to the neuron accelerator.""" + + count: int | None = ... + """The number of cores available to the neuron accelerator.""" + version: int | None = ... + """The version of the neuron accelerator.""" + +@dataclass(kw_only=True) +class NeuronDeviceInfo(_SerdeShape): + """Describes the neuron accelerators for the instance type.""" + + count: int | None = ... + """The number of neuron accelerators for the instance type.""" + name: str | None = ... + """The name of the neuron accelerator.""" + core_info: NeuronDeviceCoreInfo | None = ... + """Describes the cores available to each neuron accelerator.""" + memory_info: NeuronDeviceMemoryInfo | None = ... + """Describes the memory available to each neuron accelerator.""" + +@dataclass(kw_only=True) +class NeuronDeviceMemoryInfo(_SerdeShape): + """Describes the memory available to the neuron accelerator.""" + + size_in_mi_b: int | None = ... + """The size of the memory available to the neuron accelerator, in MiB.""" + +@dataclass(kw_only=True) +class NeuronInfo(_SerdeShape): + """Describes the neuron accelerators for the instance type.""" + + neuron_devices: list[NeuronDeviceInfo] | None = ... + """Describes the neuron accelerators for the instance type.""" + total_neuron_device_memory_in_mi_b: int | None = ... + """ + The total size of the memory for the neuron accelerators for the + instance type, in MiB. + """ + +@dataclass(kw_only=True) +class NewDhcpConfiguration(_SerdeShape): + """Describes a DHCP configuration option.""" + + key: str | None = ... + """The name of a DHCP option.""" + values: list[str] | None = ... + """The values for the DHCP option.""" + +class NitroEnclavesSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +@dataclass(kw_only=True) +class NitroTpmInfo(_SerdeShape): + """Describes the supported NitroTPM versions for the instance type.""" + + supported_versions: list[str] | None = ... + """Indicates the supported NitroTPM versions.""" + +class NitroTpmSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +class OfferingClassType(UnknownEnumMixin, StrEnum): + STANDARD = "standard" + CONVERTIBLE = "convertible" + +class OfferingTypeValues(UnknownEnumMixin, StrEnum): + HEAVY_UTILIZATION = "Heavy Utilization" + MEDIUM_UTILIZATION = "Medium Utilization" + LIGHT_UTILIZATION = "Light Utilization" + NO_UPFRONT = "No Upfront" + PARTIAL_UPFRONT = "Partial Upfront" + ALL_UPFRONT = "All Upfront" + +@dataclass(kw_only=True) +class OidcOptions(_SerdeShape): + """ + Describes the options for an OpenID Connect-compatible user-identity + trust provider. + """ + + issuer: str | None = ... + """The OIDC issuer.""" + authorization_endpoint: str | None = ... + """The OIDC authorization endpoint.""" + token_endpoint: str | None = ... + """The OIDC token endpoint.""" + user_info_endpoint: str | None = ... + """The OIDC user info endpoint.""" + client_id: str | None = ... + """The client identifier.""" + client_secret: str | None = ... + """The client secret.""" + scope: str | None = ... + """The OpenID Connect (OIDC) scope specified.""" + +class OnDemandAllocationStrategy(UnknownEnumMixin, StrEnum): + LOWEST_PRICE = "lowestPrice" + PRIORITIZED = "prioritized" + +@dataclass(kw_only=True) +class OnDemandOptions(_SerdeShape): + """Describes the configuration of On-Demand Instances in an EC2 Fleet.""" + + allocation_strategy: str | None = ... + """ + The strategy that determines the order of the launch template overrides + to use in fulfilling On-Demand capacity. + + `lowest-price` - EC2 Fleet uses price to determine the order, launching + the lowest price first. + + `prioritized` - EC2 Fleet uses the priority that you assigned to each + launch template override, launching the highest priority first. + + Default: `lowest-price` + """ + capacity_reservation_options: CapacityReservationOptions | None = ... + """ + The strategy for using unused Capacity Reservations for fulfilling + On-Demand capacity. + + Supported only for fleets of type `instant`. + """ + single_instance_type: bool | None = ... + """ + Indicates that the fleet uses a single instance type to launch all + On-Demand Instances in the fleet. + + Supported only for fleets of type `instant`. + """ + single_availability_zone: bool | None = ... + """ + Indicates that the fleet launches all On-Demand Instances into a single + Availability Zone. + + Supported only for fleets of type `instant`. + """ + min_target_capacity: int | None = ... + """ + The minimum target capacity for On-Demand Instances in the fleet. If + this minimum capacity isn't reached, no instances are launched. + + Constraints: Maximum value of `1000`. Supported only for fleets of type + `instant`. + + At least one of the following must be specified: + `SingleAvailabilityZone` | `SingleInstanceType` + """ + max_total_price: str | None = ... + """ + The maximum amount per hour for On-Demand Instances that you're willing + to pay. + + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `maxTotalPrice` does not + account for surplus credits, and, if you use surplus credits, your final + cost might be higher than what you specified for `maxTotalPrice`. For + more information, see [Surplus credits can incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class OnDemandOptionsRequest(_SerdeShape): + """Describes the configuration of On-Demand Instances in an EC2 Fleet.""" + + allocation_strategy: str | None = ... + """ + The strategy that determines the order of the launch template overrides + to use in fulfilling On-Demand capacity. + + `lowest-price` - EC2 Fleet uses price to determine the order, launching + the lowest price first. + + `prioritized` - EC2 Fleet uses the priority that you assigned to each + launch template override, launching the highest priority first. + + Default: `lowest-price` + """ + capacity_reservation_options: CapacityReservationOptionsRequest | None = ... + """ + The strategy for using unused Capacity Reservations for fulfilling + On-Demand capacity. + + Supported only for fleets of type `instant`. + """ + single_instance_type: bool | None = ... + """ + Indicates that the fleet uses a single instance type to launch all + On-Demand Instances in the fleet. + + Supported only for fleets of type `instant`. + """ + single_availability_zone: bool | None = ... + """ + Indicates that the fleet launches all On-Demand Instances into a single + Availability Zone. + + Supported only for fleets of type `instant`. + """ + min_target_capacity: int | None = ... + """ + The minimum target capacity for On-Demand Instances in the fleet. If + this minimum capacity isn't reached, no instances are launched. + + Constraints: Maximum value of `1000`. Supported only for fleets of type + `instant`. + + At least one of the following must be specified: + `SingleAvailabilityZone` | `SingleInstanceType` + """ + max_total_price: str | None = ... + """ + The maximum amount per hour for On-Demand Instances that you're willing + to pay. + + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `MaxTotalPrice` does not + account for surplus credits, and, if you use surplus credits, your final + cost might be higher than what you specified for `MaxTotalPrice`. For + more information, see [Surplus credits can incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + +class OperationType(UnknownEnumMixin, StrEnum): + ADD = "add" + REMOVE = "remove" + +@dataclass(kw_only=True) +class OperatorRequest(_SerdeShape): + """The service provider that manages the resource.""" + + principal: str | None = ... + """The service provider that manages the resource.""" + +@dataclass(kw_only=True) +class OperatorResponse(_SerdeShape): + """ + Describes whether the resource is managed by a service provider and, if + so, describes the service provider that manages it. + """ + + managed: bool | None = ... + """If `true`, the resource is managed by a service provider.""" + principal: str | None = ... + """ + If `managed` is `true`, then the principal is returned. The principal is + the service provider that manages the resource. + """ + hidden_by_default: bool | None = ... + """ + If `true`, the resource is hidden by default based on the managed + resource visibility settings for the account. + """ + +@dataclass(kw_only=True) +class OutpostLag(_SerdeShape): + """Describes an Outpost link aggregation group (LAG).""" + + outpost_arn: str | None = ... + """The Amazon Resource Number (ARN) of the Outpost LAG.""" + owner_id: str | None = ... + """The ID of the Outpost LAG owner.""" + state: str | None = ... + """The current state of the Outpost LAG.""" + outpost_lag_id: str | None = ... + """The ID of the Outpost LAG.""" + local_gateway_virtual_interface_ids: list[str] | None = ... + """ + The IDs of the local gateway virtual interfaces associated with the + Outpost LAG. + """ + service_link_virtual_interface_ids: list[str] | None = ... + """The service link virtual interface IDs associated with the Outpost LAG.""" + tags: list[Tag] | None = ... + """The tags associated with the Outpost LAG.""" + +class OutputFormat(UnknownEnumMixin, StrEnum): + CSV = "csv" + PARQUET = "parquet" + +@dataclass(kw_only=True) +class PacketHeaderStatement(_SerdeShape): + """Describes a packet header statement.""" + + source_addresses: list[str] | None = ... + """The source addresses.""" + destination_addresses: list[str] | None = ... + """The destination addresses.""" + source_ports: list[str] | None = ... + """The source ports.""" + destination_ports: list[str] | None = ... + """The destination ports.""" + source_prefix_lists: list[str] | None = ... + """The source prefix lists.""" + destination_prefix_lists: list[str] | None = ... + """The destination prefix lists.""" + protocols: list[str] | None = ... + """The protocols.""" + +@dataclass(kw_only=True) +class PacketHeaderStatementRequest(_SerdeShape): + """Describes a packet header statement.""" + + source_addresses: list[str] | None = ... + """The source addresses.""" + destination_addresses: list[str] | None = ... + """The destination addresses.""" + source_ports: list[str] | None = ... + """The source ports.""" + destination_ports: list[str] | None = ... + """The destination ports.""" + source_prefix_lists: list[str] | None = ... + """The source prefix lists.""" + destination_prefix_lists: list[str] | None = ... + """The destination prefix lists.""" + protocols: list[str] | None = ... + """The protocols.""" + +class PartitionLoadFrequency(UnknownEnumMixin, StrEnum): + NONE = "none" + DAILY = "daily" + WEEKLY = "weekly" + MONTHLY = "monthly" + +@dataclass(kw_only=True) +class PathComponent(_SerdeShape): + """Describes a path component.""" + + sequence_number: int | None = ... + """The sequence number.""" + acl_rule: AnalysisAclRule | None = ... + """The network ACL rule.""" + attached_to: AnalysisComponent | None = ... + """The resource to which the path component is attached.""" + component: AnalysisComponent | None = ... + """The component.""" + destination_vpc: AnalysisComponent | None = ... + """The destination VPC.""" + outbound_header: AnalysisPacketHeader | None = ... + """The outbound header.""" + inbound_header: AnalysisPacketHeader | None = ... + """The inbound header.""" + route_table_route: AnalysisRouteTableRoute | None = ... + """The route table route.""" + security_group_rule: AnalysisSecurityGroupRule | None = ... + """The security group rule.""" + source_vpc: AnalysisComponent | None = ... + """The source VPC.""" + subnet: AnalysisComponent | None = ... + """The subnet.""" + vpc: AnalysisComponent | None = ... + """The component VPC.""" + additional_details: list[AdditionalDetail] | None = ... + """The additional details.""" + transit_gateway: AnalysisComponent | None = ... + """The transit gateway.""" + transit_gateway_route_table_route: TransitGatewayRouteTableRoute | None = ... + """The route in a transit gateway route table.""" + transit_gateway_policy_table_entry: ( + AnalysisTransitGatewayPolicyTableEntry | None + ) = ... + """The entry in a transit gateway policy table.""" + explanations: list[Explanation] | None = ... + """The explanation codes.""" + elastic_load_balancer_listener: AnalysisComponent | None = ... + """The load balancer listener.""" + firewall_stateless_rule: FirewallStatelessRule | None = ... + """The Network Firewall stateless rule.""" + firewall_stateful_rule: FirewallStatefulRule | None = ... + """The Network Firewall stateful rule.""" + service_name: str | None = ... + """The name of the VPC endpoint service.""" + +@dataclass(kw_only=True) +class PathFilter(_SerdeShape): + """ + Describes a set of filters for a path analysis. Use path filters to + scope the analysis when there can be multiple resulting paths. + """ + + source_address: str | None = ... + """The source IPv4 address.""" + source_port_range: FilterPortRange | None = ... + """The source port range.""" + destination_address: str | None = ... + """The destination IPv4 address.""" + destination_port_range: FilterPortRange | None = ... + """The destination port range.""" + +@dataclass(kw_only=True) +class PathRequestFilter(_SerdeShape): + """ + Describes a set of filters for a path analysis. Use path filters to + scope the analysis when there can be multiple resulting paths. + """ + + source_address: str | None = ... + """The source IPv4 address.""" + source_port_range: RequestFilterPortRange | None = ... + """The source port range.""" + destination_address: str | None = ... + """The destination IPv4 address.""" + destination_port_range: RequestFilterPortRange | None = ... + """The destination port range.""" + +@dataclass(kw_only=True) +class PathStatement(_SerdeShape): + """Describes a path statement.""" + + packet_header_statement: PacketHeaderStatement | None = ... + """The packet header statement.""" + resource_statement: ResourceStatement | None = ... + """The resource statement.""" + +@dataclass(kw_only=True) +class PathStatementRequest(_SerdeShape): + """Describes a path statement.""" + + packet_header_statement: PacketHeaderStatementRequest | None = ... + """The packet header statement.""" + resource_statement: ResourceStatementRequest | None = ... + """The resource statement.""" + +class PayerResponsibility(UnknownEnumMixin, StrEnum): + SERVICE_OWNER = "ServiceOwner" + +@dataclass(kw_only=True) +class PayerResponsibilityEntry(_SerdeShape): + """Describes a payer responsibility setting for a VPC endpoint.""" + + scope: str | None = ... + """The scope of usage/charges.""" + payer_responsibility_type: str | None = ... + """The Amazon Web Services account to which the usage is charged.""" + +class PayerResponsibilityScope(UnknownEnumMixin, StrEnum): + VPC_ENDPOINT_CHARGES = "vpc-endpoint-charges" + RESOURCE_GATEWAY_CHARGES = "resource-gateway-charges" + +class PayerResponsibilityType(UnknownEnumMixin, StrEnum): + VPC_ENDPOINT_ACCOUNT = "vpc-endpoint-account" + RESOURCE_GATEWAY_ACCOUNT = "resource-gateway-account" + VPC_ENDPOINT_SERVICE_ACCOUNT = "vpc-endpoint-service-account" + +class PaymentOption(UnknownEnumMixin, StrEnum): + ALL_UPFRONT = "AllUpfront" + PARTIAL_UPFRONT = "PartialUpfront" + NO_UPFRONT = "NoUpfront" + +@dataclass(kw_only=True) +class PciId(_SerdeShape): + """ + Describes the data that identifies an Amazon FPGA image (AFI) on the PCI + bus. + """ + + device_id: str | None = ... + """The ID of the device.""" + vendor_id: str | None = ... + """The ID of the vendor.""" + subsystem_id: str | None = ... + """The ID of the subsystem.""" + subsystem_vendor_id: str | None = ... + """The ID of the vendor for the subsystem.""" + +@dataclass(kw_only=True) +class PeeringAttachmentStatus(_SerdeShape): + """The status of the transit gateway peering attachment.""" + + code: str | None = ... + """The status code.""" + message: str | None = ... + """The status message, if applicable.""" + +@dataclass(kw_only=True) +class PeeringConnectionOptions(_SerdeShape): + """Describes the VPC peering connection options.""" + + allow_dns_resolution_from_remote_vpc: bool | None = ... + """ + If true, the public DNS hostnames of instances in the specified VPC + resolve to private IP addresses when queried from instances in the peer + VPC. + """ + allow_egress_from_local_classic_link_to_remote_vpc: bool | None = ... + """Deprecated.""" + allow_egress_from_local_vpc_to_remote_classic_link: bool | None = ... + """Deprecated.""" + +@dataclass(kw_only=True) +class PeeringConnectionOptionsRequest(_SerdeShape): + """The VPC peering connection options.""" + + allow_dns_resolution_from_remote_vpc: bool | None = ... + """ + If true, enables a local VPC to resolve public DNS hostnames to private + IP addresses when queried from instances in the peer VPC. + """ + allow_egress_from_local_classic_link_to_remote_vpc: bool | None = ... + """Deprecated.""" + allow_egress_from_local_vpc_to_remote_classic_link: bool | None = ... + """Deprecated.""" + +@dataclass(kw_only=True) +class PeeringTgwInfo(_SerdeShape): + """Information about the transit gateway in the peering attachment.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + core_network_id: str | None = ... + """The ID of the core network where the transit gateway peer is located.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the transit gateway.""" + region: str | None = ... + """The Region of the transit gateway.""" + +@dataclass(kw_only=True) +class PerformanceFactorReference(_SerdeShape): + """ + Specify an instance family to use as the baseline reference for CPU + performance. All instance types that match your specified attributes + will be compared against the CPU performance of the referenced instance + family, regardless of CPU manufacturer or architecture. + + Note: + Currently, only one instance family can be specified in the list. + """ + + instance_family: str | None = ... + """ + The instance family to use as a baseline reference. + + Note: + Ensure that you specify the correct value for the instance family. The + instance family is everything before the period (`.`) in the instance + type name. For example, in the instance type `c6i.large`, the instance + family is `c6i`, not `c6`. For more information, see [Amazon EC2 + instance type naming + conventions](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html) + in *Amazon EC2 Instance Types*. + + The following instance families are *not supported* for performance + protection: + + - `c1` + + - `g3` | `g3s` + + - `hpc7g` + + - `m1` | `m2` + + - `mac1` | `mac2` | `mac2-m1ultra` | `mac2-m2` | `mac2-m2pro` + + - `p3dn` | `p4d` | `p5` + + - `t1` + + - `u-12tb1` | `u-18tb1` | `u-24tb1` | `u-3tb1` | `u-6tb1` | + `u-9tb1` | `u7i-12tb` | `u7in-16tb` | `u7in-24tb` | `u7in-32tb` + + If you enable performance protection by specifying a supported instance + family, the returned instance types will exclude the above unsupported + instance families. + + If you specify an unsupported instance family as a value for baseline + performance, the API returns an empty response for + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements) + and an exception for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet), + [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet), + [ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet), + and + [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest). + """ + +@dataclass(kw_only=True) +class PerformanceFactorReferenceRequest(_SerdeShape): + """ + Specify an instance family to use as the baseline reference for CPU + performance. All instance types that match your specified attributes + will be compared against the CPU performance of the referenced instance + family, regardless of CPU manufacturer or architecture. + + Note: + Currently, only one instance family can be specified in the list. + """ + + instance_family: str | None = ... + """ + The instance family to use as a baseline reference. + + Note: + Ensure that you specify the correct value for the instance family. The + instance family is everything before the period (`.`) in the instance + type name. For example, in the instance type `c6i.large`, the instance + family is `c6i`, not `c6`. For more information, see [Amazon EC2 + instance type naming + conventions](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html) + in *Amazon EC2 Instance Types*. + + The following instance families are *not supported* for performance + protection: + + - `c1` + + - `g3` | `g3s` + + - `hpc7g` + + - `m1` | `m2` + + - `mac1` | `mac2` | `mac2-m1ultra` | `mac2-m2` | `mac2-m2pro` + + - `p3dn` | `p4d` | `p5` + + - `t1` + + - `u-12tb1` | `u-18tb1` | `u-24tb1` | `u-3tb1` | `u-6tb1` | + `u-9tb1` | `u7i-12tb` | `u7in-16tb` | `u7in-24tb` | `u7in-32tb` + + If you enable performance protection by specifying a supported instance + family, the returned instance types will exclude the above unsupported + instance families. + + If you specify an unsupported instance family as a value for baseline + performance, the API returns an empty response for + [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements) + and an exception for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet), + [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet), + [ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet), + and + [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest). + """ + +@dataclass(kw_only=True) +class PerformanceStatusSummary(_SerdeShape): + """ + Provides a summary of the performance status check results for an + instance. + """ + + status: str | None = ... + """The current status.""" + impaired_since: datetime | None = ... + """The date and time when the performance status became impaired.""" + remediation: str | None = ... + """ + The recommended action to remediate the impaired instance, if one is + available. This value is returned only when the instance is impaired. + """ + +class PeriodType(UnknownEnumMixin, StrEnum): + FIVE_MINUTES = "five-minutes" + FIFTEEN_MINUTES = "fifteen-minutes" + ONE_HOUR = "one-hour" + THREE_HOURS = "three-hours" + ONE_DAY = "one-day" + ONE_WEEK = "one-week" + +class PermissionGroup(UnknownEnumMixin, StrEnum): + ALL = "all" + +@dataclass(kw_only=True) +class Phase1DHGroupNumbersListValue(_SerdeShape): + """The Diffie-Hellmann group number for phase 1 IKE negotiations.""" + + value: int | None = ... + """The Diffie-Hellmann group number.""" + +@dataclass(kw_only=True) +class Phase1DHGroupNumbersRequestListValue(_SerdeShape): + """ + Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 + IKE negotiations. + """ + + value: int | None = ... + """The Diffie-Hellmann group number.""" + +@dataclass(kw_only=True) +class Phase1EncryptionAlgorithmsListValue(_SerdeShape): + """The encryption algorithm for phase 1 IKE negotiations.""" + + value: str | None = ... + """The value for the encryption algorithm.""" + +@dataclass(kw_only=True) +class Phase1EncryptionAlgorithmsRequestListValue(_SerdeShape): + """ + Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE + negotiations. + """ + + value: str | None = ... + """The value for the encryption algorithm.""" + +@dataclass(kw_only=True) +class Phase1IntegrityAlgorithmsListValue(_SerdeShape): + """The integrity algorithm for phase 1 IKE negotiations.""" + + value: str | None = ... + """The value for the integrity algorithm.""" + +@dataclass(kw_only=True) +class Phase1IntegrityAlgorithmsRequestListValue(_SerdeShape): + """ + Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE + negotiations. + """ + + value: str | None = ... + """The value for the integrity algorithm.""" + +@dataclass(kw_only=True) +class Phase2DHGroupNumbersListValue(_SerdeShape): + """The Diffie-Hellmann group number for phase 2 IKE negotiations.""" + + value: int | None = ... + """The Diffie-Hellmann group number.""" + +@dataclass(kw_only=True) +class Phase2DHGroupNumbersRequestListValue(_SerdeShape): + """ + Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 + IKE negotiations. + """ + + value: int | None = ... + """The Diffie-Hellmann group number.""" + +@dataclass(kw_only=True) +class Phase2EncryptionAlgorithmsListValue(_SerdeShape): + """The encryption algorithm for phase 2 IKE negotiations.""" + + value: str | None = ... + """The encryption algorithm.""" + +@dataclass(kw_only=True) +class Phase2EncryptionAlgorithmsRequestListValue(_SerdeShape): + """ + Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE + negotiations. + """ + + value: str | None = ... + """The encryption algorithm.""" + +@dataclass(kw_only=True) +class Phase2IntegrityAlgorithmsListValue(_SerdeShape): + """The integrity algorithm for phase 2 IKE negotiations.""" + + value: str | None = ... + """The integrity algorithm.""" + +@dataclass(kw_only=True) +class Phase2IntegrityAlgorithmsRequestListValue(_SerdeShape): + """ + Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE + negotiations. + """ + + value: str | None = ... + """The integrity algorithm.""" + +class PhcSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +@dataclass(kw_only=True) +class Placement(_SerdeShape): + """Describes the placement of an instance.""" + + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone of the instance. + + On input, you can specify `AvailabilityZone` or `AvailabilityZoneId`, + but not both. If you specify neither one, Amazon EC2 automatically + selects an Availability Zone for you. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet). + """ + affinity: str | None = ... + """ + The affinity setting for the instance on the Dedicated Host. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) + or + [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html). + """ + group_name: str | None = ... + """ + The name of the placement group that the instance is in. + + On input, you can specify `GroupId` or `GroupName`, but not both. + """ + partition_number: int | None = ... + """ + The number of the partition that the instance is in. Valid only if the + placement group strategy is set to `partition`. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet). + """ + host_id: str | None = ... + """ + The ID of the Dedicated Host on which the instance resides. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) + or + [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html). + """ + tenancy: str | None = ... + """ + The tenancy of the instance. An instance with a tenancy of `dedicated` + runs on single-tenant hardware. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet). + The `host` tenancy is not supported for + [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) + or for T3 instances that are configured for the `unlimited` CPU credit + option. + """ + spread_domain: str | None = ... + """Reserved for future use.""" + host_resource_group_arn: str | None = ... + """ + The ARN of the host resource group in which to launch the instances. + + On input, if you specify this parameter, either omit the **Tenancy** + parameter or set it to `host`. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet). + """ + group_id: str | None = ... + """ + The ID of the placement group that the instance is in. + + On input, you can specify `GroupId` or `GroupName`, but not both. + """ + availability_zone: str | None = ... + """ + The Availability Zone of the instance. + + On input, you can specify `AvailabilityZone` or `AvailabilityZoneId`, + but not both. If you specify neither one, Amazon EC2 automatically + selects an Availability Zone for you. + + This parameter is not supported for + [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet). + """ + +@dataclass(kw_only=True) +class PlacementGroup(_SerdeShape): + """Describes a placement group.""" + + group_name: str | None = ... + """The name of the placement group.""" + state: str | None = ... + """The state of the placement group.""" + strategy: str | None = ... + """The placement strategy.""" + partition_count: int | None = ... + """ + The number of partitions. Valid only if **strategy** is set to + `partition`. + """ + group_id: str | None = ... + """The ID of the placement group.""" + tags: list[Tag] | None = ... + """Any tags applied to the placement group.""" + group_arn: str | None = ... + """The Amazon Resource Name (ARN) of the placement group.""" + spread_level: str | None = ... + """ + The spread level for the placement group. *Only* Outpost placement + groups can be spread across hosts. + """ + linked_group_id: str | None = ... + """Reserved for future use.""" + operator: OperatorResponse | None = ... + """The service provider that manages the Placement Group.""" + parent_group_id: str | None = ... + """The ID of the parent placement group.""" + +@dataclass(kw_only=True) +class PlacementGroupInfo(_SerdeShape): + """Describes the placement group support of the instance type.""" + + supported_strategies: list[str] | None = ... + """The supported placement group types.""" + +class PlacementGroupState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +class PlacementGroupStrategy(UnknownEnumMixin, StrEnum): + CLUSTER = "cluster" + PARTITION = "partition" + SPREAD = "spread" + +@dataclass(kw_only=True) +class PlacementResponse(_SerdeShape): + """Describes the placement of an instance.""" + + group_name: str | None = ... + """The name of the placement group that the instance is in.""" + +class PlacementStrategy(UnknownEnumMixin, StrEnum): + CLUSTER = "cluster" + SPREAD = "spread" + PARTITION = "partition" + PRECISION_TIME = "precision-time" + +class PlatformValues(UnknownEnumMixin, StrEnum): + WINDOWS = "Windows" + +@dataclass(kw_only=True) +class PoolCidrBlock(_SerdeShape): + """Describes a CIDR block for an address pool.""" + + cidr: str | None = ... + """The CIDR block.""" + +@dataclass(kw_only=True) +class PortRange(_SerdeShape): + """Describes a range of ports.""" + + from_: int | None = ... + """The first port in the range.""" + to: int | None = ... + """The last port in the range.""" + +@dataclass(kw_only=True) +class PrefixList(_SerdeShape): + """Describes prefixes for Amazon Web Services services.""" + + cidrs: list[str] | None = ... + """The IP address range of the Amazon Web Services service.""" + prefix_list_id: str | None = ... + """The ID of the prefix.""" + prefix_list_name: str | None = ... + """The name of the prefix.""" + +@dataclass(kw_only=True) +class PrefixListAssociation(_SerdeShape): + """Describes the resource with which a prefix list is associated.""" + + resource_id: str | None = ... + """The ID of the resource.""" + resource_owner: str | None = ... + """The owner of the resource.""" + +@dataclass(kw_only=True) +class PrefixListEntry(_SerdeShape): + """Describes a prefix list entry.""" + + cidr: str | None = ... + """The CIDR block.""" + description: str | None = ... + """The description.""" + +@dataclass(kw_only=True) +class PrefixListId(_SerdeShape): + """Describes a prefix list ID.""" + + description: str | None = ... + """ + A description for the security group rule that references this prefix + list ID. + + Constraints: Up to 255 characters in length. Allowed characters are a-z, + A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + """ + prefix_list_id: str | None = ... + """The ID of the prefix.""" + +class PrefixListState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + MODIFY_IN_PROGRESS = "modify-in-progress" + MODIFY_COMPLETE = "modify-complete" + MODIFY_FAILED = "modify-failed" + RESTORE_IN_PROGRESS = "restore-in-progress" + RESTORE_COMPLETE = "restore-complete" + RESTORE_FAILED = "restore-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + +@dataclass(kw_only=True) +class PriceSchedule(_SerdeShape): + """Describes the price for a Reserved Instance.""" + + active: bool | None = ... + """ + The current price schedule, as determined by the term remaining for the + Reserved Instance in the listing. + + A specific price schedule is always in effect, but only one price + schedule can be active at any time. Take, for example, a Reserved + Instance listing that has five months remaining in its term. When you + specify price schedules for five months and two months, this means that + schedule 1, covering the first three months of the remaining term, will + be active during months 5, 4, and 3. Then schedule 2, covering the last + two months of the term, will be active for months 2 and 1. + """ + currency_code: str | None = ... + """ + The currency for transacting the Reserved Instance resale. At this time, + the only supported currency is `USD`. + """ + price: float | None = ... + """The fixed price for the term.""" + term: int | None = ... + """ + The number of months remaining in the reservation. For example, 2 is the + second to the last month before the capacity reservation expires. + """ + +@dataclass(kw_only=True) +class PriceScheduleSpecification(_SerdeShape): + """Describes the price for a Reserved Instance.""" + + term: int | None = ... + """ + The number of months remaining in the reservation. For example, 2 is the + second to the last month before the capacity reservation expires. + """ + price: float | None = ... + """The fixed price for the term.""" + currency_code: str | None = ... + """ + The currency for transacting the Reserved Instance resale. At this time, + the only supported currency is `USD`. + """ + +@dataclass(kw_only=True) +class PricingDetail(_SerdeShape): + """Describes a Reserved Instance offering.""" + + count: int | None = ... + """The number of reservations available for the price.""" + price: float | None = ... + """The price per instance.""" + +@dataclass(kw_only=True) +class PrincipalIdFormat(_SerdeShape): + """PrincipalIdFormat description""" + + arn: str | None = ... + """PrincipalIdFormatARN description""" + statuses: list[IdFormat] | None = ... + """PrincipalIdFormatStatuses description""" + +class PrincipalType(UnknownEnumMixin, StrEnum): + ALL = "All" + SERVICE = "Service" + ORGANIZATION_UNIT = "OrganizationUnit" + ACCOUNT = "Account" + USER = "User" + ROLE = "Role" + +@dataclass(kw_only=True) +class PrivateDnsDetails(_SerdeShape): + """Information about the Private DNS name for interface endpoints.""" + + private_dns_name: str | None = ... + """The private DNS name assigned to the VPC endpoint service.""" + +@dataclass(kw_only=True) +class PrivateDnsNameConfiguration(_SerdeShape): + """Information about the private DNS name for the service endpoint.""" + + state: str | None = ... + """ + The verification state of the VPC endpoint service. + + Consumers of the endpoint service can use the private name only when the + state is `verified`. + """ + type: str | None = ... + """The endpoint service verification type, for example TXT.""" + value: str | None = ... + """ + The value the service provider adds to the private DNS name domain + record before verification. + """ + name: str | None = ... + """ + The name of the record subdomain the service provider needs to create. + The service provider adds the `value` text to the `name`. + """ + +@dataclass(kw_only=True) +class PrivateDnsNameOptionsOnLaunch(_SerdeShape): + """Describes the options for instance hostnames.""" + + hostname_type: str | None = ... + """ + The type of hostname for EC2 instances. For IPv4 only subnets, an + instance DNS name must be based on the instance IPv4 address. For IPv6 + only subnets, an instance DNS name must be based on the instance ID. For + dual-stack subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. + """ + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostname with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class PrivateDnsNameOptionsRequest(_SerdeShape): + """Describes the options for instance hostnames.""" + + hostname_type: str | None = ... + """ + The type of hostname for EC2 instances. For IPv4 only subnets, an + instance DNS name must be based on the instance IPv4 address. For IPv6 + only subnets, an instance DNS name must be based on the instance ID. For + dual-stack subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. + """ + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class PrivateDnsNameOptionsResponse(_SerdeShape): + """Describes the options for instance hostnames.""" + + hostname_type: str | None = ... + """The type of hostname to assign to an instance.""" + enable_resource_name_dns_a_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS A records. + """ + enable_resource_name_dns_aaaa_record: bool | None = ... + """ + Indicates whether to respond to DNS queries for instance hostnames with + DNS AAAA records. + """ + +@dataclass(kw_only=True) +class PrivateIpAddressSpecification(_SerdeShape): + """Describes a secondary private IPv4 address for a network interface.""" + + primary: bool | None = ... + """ + Indicates whether the private IPv4 address is the primary private IPv4 + address. Only one IPv4 address can be designated as primary. + """ + private_ip_address: str | None = ... + """The private IPv4 address.""" + +@dataclass(kw_only=True) +class ProcessorInfo(_SerdeShape): + """Describes the processor used by the instance type.""" + + supported_architectures: list[str] | None = ... + """The architectures supported by the instance type.""" + sustained_clock_speed_in_ghz: float | None = ... + """The speed of the processor, in GHz.""" + supported_features: list[str] | None = ... + """ + Indicates whether the instance type supports AMD SEV-SNP. If the request + returns `amd-sev-snp`, AMD SEV-SNP is supported. Otherwise, it is not + supported. For more information, see [AMD + SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). + """ + manufacturer: str | None = ... + """The manufacturer of the processor.""" + +@dataclass(kw_only=True) +class ProductCode(_SerdeShape): + """Describes a product code.""" + + product_code_id: str | None = ... + """The product code.""" + product_code_type: str | None = ... + """The type of product code.""" + +class ProductCodeValues(UnknownEnumMixin, StrEnum): + DEVPAY = "devpay" + MARKETPLACE = "marketplace" + +@dataclass(kw_only=True) +class PropagatingVgw(_SerdeShape): + """Describes a virtual private gateway propagating route.""" + + gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + +class Protocol(UnknownEnumMixin, StrEnum): + TCP = "tcp" + UDP = "udp" + +class ProtocolValue(UnknownEnumMixin, StrEnum): + GRE = "gre" + +@dataclass(kw_only=True) +class ProvisionByoipCidrInput(_SerdeShape): + """Dataclass for ProvisionByoipCidrInput structure.""" + + cidr: str | None = ... + """ + The public IPv4 or IPv6 address range, in CIDR notation. The most + specific IPv4 prefix that you can specify is /24. The most specific IPv6 + address range that you can bring is /48 for CIDRs that are publicly + advertisable and /56 for CIDRs that are not publicly advertisable. The + address range cannot overlap with another address range that you've + brought to this or another Region. + """ + cidr_authorization_context: CidrAuthorizationContext | None = ... + """ + A signed document that proves that you are authorized to bring the + specified IP address range to Amazon using BYOIP. + """ + publicly_advertisable: bool | None = ... + """ + (IPv6 only) Indicate whether the address range will be publicly + advertised to the internet. + + Default: true + """ + description: str | None = ... + """A description for the address range and the address pool.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + pool_tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the address pool.""" + multi_region: bool | None = ... + """Reserved.""" + network_border_group: str | None = ... + """ + If you have [Local + Zones](https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html) + enabled, you can choose a network border group for Local Zones when you + provision and advertise a BYOIPv4 CIDR. Choose the network border group + carefully as the EIP and the Amazon Web Services resource it is + associated with must reside in the same network border group. + + You can provision BYOIP address ranges to and advertise them in the + following Local Zone network border groups: + + - us-east-1-dfw-2 + + - us-west-2-lax-1 + + - us-west-2-phx-2 + + Note: + You cannot provision or advertise BYOIPv6 address ranges in Local Zones + at this time. + """ + +@dataclass(kw_only=True) +class ProvisionByoipCidrOutput(_SerdeShape): + """Dataclass for ProvisionByoipCidrOutput structure.""" + + byoip_cidr: ByoipCidr | None = ... + """Information about the address range.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ProvisionedBandwidth(_SerdeShape): + """ + Reserved. If you need to sustain traffic greater than the [documented + limits](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-gateways), + contact Amazon Web Services Support. + """ + + provision_time: datetime | None = ... + """Reserved.""" + provisioned: str | None = ... + """Reserved.""" + request_time: datetime | None = ... + """Reserved.""" + requested: str | None = ... + """Reserved.""" + status: str | None = ... + """Reserved.""" + +@dataclass(kw_only=True) +class ProvisionIpamByoasnInput(_SerdeShape): + """Dataclass for ProvisionIpamByoasnInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + ipam_id: str | None = ... + """An IPAM ID.""" + asn: str | None = ... + """A public 2-byte or 4-byte ASN.""" + asn_authorization_context: AsnAuthorizationContext | None = ... + """An ASN authorization context.""" + +@dataclass(kw_only=True) +class ProvisionIpamByoasnOutput(_SerdeShape): + """Dataclass for ProvisionIpamByoasnOutput structure.""" + + byoasn: Byoasn | None = ... + """An ASN and BYOIP CIDR association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ProvisionIpamPoolCidrInput(_SerdeShape): + """Dataclass for ProvisionIpamPoolCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool to which you want to assign a CIDR.""" + cidr: str | None = ... + """ + The CIDR you want to assign to the IPAM pool. Either \"NetmaskLength\" + or \"Cidr\" is required. This value will be null if you specify + \"NetmaskLength\" and will be filled in during the provisioning process. + """ + cidr_authorization_context: IpamCidrAuthorizationContext | None = ... + """ + A signed document that proves that you are authorized to bring a + specified IP address range to Amazon using BYOIP. This option only + applies to IPv4 and IPv6 pools in the public scope. + """ + netmask_length: int | None = ... + """ + The netmask length of the CIDR you'd like to provision to a pool. Can + be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools + and for provisioning CIDRs to pools with source pools. Cannot be used to + provision BYOIP CIDRs to top-level pools. Either \"NetmaskLength\" or + \"Cidr\" is required. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + verification_method: str | None = ... + """ + The method for verifying control of a public IP address range. Defaults + to `remarks-x509` if not specified. This option only applies to IPv4 and + IPv6 pools in the public scope. + """ + ipam_external_resource_verification_token_id: str | None = ... + """ + Verification token ID. This option only applies to IPv4 and IPv6 pools + in the public scope. + """ + +@dataclass(kw_only=True) +class ProvisionIpamPoolCidrOutput(_SerdeShape): + """Dataclass for ProvisionIpamPoolCidrOutput structure.""" + + ipam_pool_cidr: IpamPoolCidr | None = ... + """Information about the provisioned CIDR.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ProvisionPublicIpv4PoolCidrInput(_SerdeShape): + """Dataclass for ProvisionPublicIpv4PoolCidrInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """The ID of the IPAM pool you would like to use to allocate this CIDR.""" + pool_id: str | None = ... + """The ID of the public IPv4 pool you would like to use for this CIDR.""" + netmask_length: int | None = ... + """ + The netmask length of the CIDR you would like to allocate to the public + IPv4 pool. The least specific netmask length you can define is 24. + """ + network_border_group: str | None = ... + """ + The Availability Zone (AZ) or Local Zone (LZ) network border group that + the resource that the IP address is assigned to is in. Defaults to an AZ + network border group. For more information on available Local Zones, see + [Local Zone + availability](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class ProvisionPublicIpv4PoolCidrOutput(_SerdeShape): + """Dataclass for ProvisionPublicIpv4PoolCidrOutput structure.""" + + pool_id: str | None = ... + """The ID of the pool that you want to provision the CIDR to.""" + pool_address_range: PublicIpv4PoolRange | None = ... + """Information about the address range of the public IPv4 pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PtrUpdateStatus(_SerdeShape): + """The status of an updated pointer (PTR) record for an Elastic IP address.""" + + value: str | None = ... + """The value for the PTR record update.""" + status: str | None = ... + """The status of the PTR record update.""" + reason: str | None = ... + """The reason for the PTR record update.""" + +@dataclass(kw_only=True) +class PublicIpDnsNameOptions(_SerdeShape): + """ + Public hostname type options. For more information, see [EC2 instance + hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + + dns_hostname_type: str | None = ... + """ + The public hostname type. For more information, see [EC2 instance + hostnames, DNS names, and + domains](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) + in the *Amazon EC2 User Guide*. + """ + public_ipv4_dns_name: str | None = ... + """ + An IPv4-enabled public hostname for a network interface. Requests from + within the VPC resolve to the private primary IPv4 address of the + network interface. Requests from the internet resolve to the public IPv4 + address of the network interface. + """ + public_ipv6_dns_name: str | None = ... + """ + An IPv6-enabled public hostname for a network interface. Requests from + within the VPC or from the internet resolve to the IPv6 GUA of the + network interface. + """ + public_dual_stack_dns_name: str | None = ... + """ + A dual-stack public hostname for a network interface. Requests from + within the VPC resolve to both the private IPv4 address and the IPv6 + Global Unicast Address of the network interface. Requests from the + internet resolve to both the public IPv4 and the IPv6 GUA address of the + network interface. + """ + +class PublicIpDnsOption(UnknownEnumMixin, StrEnum): + PUBLIC_DUAL_STACK_DNS_NAME = "public-dual-stack-dns-name" + PUBLIC_IPV4_DNS_NAME = "public-ipv4-dns-name" + PUBLIC_IPV6_DNS_NAME = "public-ipv6-dns-name" + +@dataclass(kw_only=True) +class PublicIpv4Pool(_SerdeShape): + """Describes an IPv4 address pool.""" + + pool_id: str | None = ... + """The ID of the address pool.""" + description: str | None = ... + """A description of the address pool.""" + pool_address_ranges: list[PublicIpv4PoolRange] | None = ... + """The address ranges.""" + total_address_count: int | None = ... + """The total number of addresses.""" + total_available_address_count: int | None = ... + """The total number of available addresses.""" + network_border_group: str | None = ... + """ + The name of the location from which the address pool is advertised. A + network border group is a unique set of Availability Zones or Local + Zones from where Amazon Web Services advertises public IP addresses. + """ + tags: list[Tag] | None = ... + """Any tags for the address pool.""" + +@dataclass(kw_only=True) +class PublicIpv4PoolRange(_SerdeShape): + """Describes an address range of an IPv4 address pool.""" + + first_address: str | None = ... + """The first IP address in the range.""" + last_address: str | None = ... + """The last IP address in the range.""" + address_count: int | None = ... + """The number of addresses in the range.""" + available_address_count: int | None = ... + """The number of available addresses in the range.""" + +@dataclass(kw_only=True) +class Purchase(_SerdeShape): + """Describes the result of the purchase.""" + + currency_code: str | None = ... + """ + The currency in which the `UpfrontPrice` and `HourlyPrice` amounts are + specified. At this time, the only supported currency is `USD`. + """ + duration: int | None = ... + """The duration of the reservation's term in seconds.""" + host_id_set: list[str] | None = ... + """The IDs of the Dedicated Hosts associated with the reservation.""" + host_reservation_id: str | None = ... + """The ID of the reservation.""" + hourly_price: str | None = ... + """The hourly price of the reservation per hour.""" + instance_family: str | None = ... + """ + The instance family on the Dedicated Host that the reservation can be + associated with. + """ + payment_option: str | None = ... + """The payment option for the reservation.""" + upfront_price: str | None = ... + """The upfront price of the reservation.""" + +@dataclass(kw_only=True) +class PurchaseCapacityBlockExtensionInput(_SerdeShape): + """Dataclass for PurchaseCapacityBlockExtensionInput structure.""" + + capacity_block_extension_offering_id: str | None = ... + """The ID of the Capacity Block extension offering to purchase.""" + capacity_reservation_id: str | None = ... + """The ID of the Capacity reservation to be extended.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class PurchaseCapacityBlockExtensionOutput(_SerdeShape): + """Dataclass for PurchaseCapacityBlockExtensionOutput structure.""" + + capacity_block_extensions: list[CapacityBlockExtension] | None = ... + """The purchased Capacity Block extensions.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PurchaseCapacityBlockInput(_SerdeShape): + """Dataclass for PurchaseCapacityBlockInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Capacity Block during launch.""" + capacity_block_offering_id: str | None = ... + """The ID of the Capacity Block offering.""" + instance_platform: str | None = ... + """The type of operating system for which to reserve capacity.""" + +@dataclass(kw_only=True) +class PurchaseCapacityBlockOutput(_SerdeShape): + """Dataclass for PurchaseCapacityBlockOutput structure.""" + + capacity_reservation: CapacityReservation | None = ... + """The Capacity Reservation.""" + capacity_blocks: list[CapacityBlock] | None = ... + """The Capacity Block.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PurchaseHostReservationInput(_SerdeShape): + """Dataclass for PurchaseHostReservationInput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + currency_code: str | None = ... + """ + The currency in which the `totalUpfrontPrice`, `LimitPrice`, and + `totalHourlyPrice` amounts are specified. At this time, the only + supported currency is `USD`. + """ + host_id_set: list[str] | None = ... + """ + The IDs of the Dedicated Hosts with which the reservation will be + associated. + """ + limit_price: str | None = ... + """ + The specified limit is checked against the total upfront cost of the + reservation (calculated as the offering's upfront cost multiplied by + the host count). If the total upfront cost is greater than the specified + price limit, the request fails. This is used to ensure that the purchase + does not exceed the expected upfront cost of the purchase. At this time, + the only supported currency is `USD`. For example, to indicate a limit + price of USD 100, specify 100.00. + """ + offering_id: str | None = ... + """The ID of the offering.""" + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply to the Dedicated Host Reservation during purchase.""" + +@dataclass(kw_only=True) +class PurchaseHostReservationOutput(_SerdeShape): + """Dataclass for PurchaseHostReservationOutput structure.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + currency_code: str | None = ... + """ + The currency in which the `totalUpfrontPrice` and `totalHourlyPrice` + amounts are specified. At this time, the only supported currency is + `USD`. + """ + purchase: list[Purchase] | None = ... + """Describes the details of the purchase.""" + total_hourly_price: str | None = ... + """The total hourly price of the reservation calculated per hour.""" + total_upfront_price: str | None = ... + """ + The total amount charged to your account when you purchase the + reservation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PurchaseRequest(_SerdeShape): + """Describes a request to purchase Scheduled Instances.""" + + instance_count: int | None = ... + """The number of instances.""" + purchase_token: str | None = ... + """The purchase token.""" + +@dataclass(kw_only=True) +class PurchaseReservedInstancesOfferingInput(_SerdeShape): + """Contains the parameters for PurchaseReservedInstancesOffering.""" + + instance_count: int | None = ... + """The number of Reserved Instances to purchase.""" + reserved_instances_offering_id: str | None = ... + """The ID of the Reserved Instance offering to purchase.""" + purchase_time: datetime | None = ... + """ + The time at which to purchase the Reserved Instance, in UTC format (for + example, *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + limit_price: ReservedInstanceLimitPrice | None = ... + """ + Specified for Reserved Instance Marketplace offerings to limit the total + order and ensure that the Reserved Instances are not purchased at + unexpected prices. + """ + +@dataclass(kw_only=True) +class PurchaseReservedInstancesOfferingOutput(_SerdeShape): + """Contains the output of PurchaseReservedInstancesOffering.""" + + reserved_instances_id: str | None = ... + """ + The IDs of the purchased Reserved Instances. If your purchase crosses + into a discounted pricing tier, the final Reserved Instances IDs might + change. For more information, see [Crossing pricing + tiers](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-reserved-instances-application.html#crossing-pricing-tiers) + in the *Amazon EC2 User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PurchaseScheduledInstancesInput(_SerdeShape): + """Contains the parameters for PurchaseScheduledInstances.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that ensures the idempotency of the + request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + purchase_requests: list[PurchaseRequest] | None = ... + """The purchase requests.""" + +@dataclass(kw_only=True) +class PurchaseScheduledInstancesOutput(_SerdeShape): + """Contains the output of PurchaseScheduledInstances.""" + + scheduled_instance_set: list[ScheduledInstance] | None = ... + """Information about the Scheduled Instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RebootInstancesInput(_SerdeShape): + """Dataclass for RebootInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """The instance IDs.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RebootInstancesOutput(_SerdeShape): + """Dataclass for RebootInstancesOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RebootMigrationSupport(UnknownEnumMixin, StrEnum): + UNSUPPORTED = "unsupported" + SUPPORTED = "supported" + +@dataclass(kw_only=True) +class RecurringCharge(_SerdeShape): + """Describes a recurring charge.""" + + amount: float | None = ... + """The amount of the recurring charge.""" + frequency: str | None = ... + """The frequency of the recurring charge.""" + +class RecurringChargeFrequency(UnknownEnumMixin, StrEnum): + HOURLY = "Hourly" + +@dataclass(kw_only=True) +class ReferencedSecurityGroup(_SerdeShape): + """ + Describes the security group that is referenced in the security group + rule. + """ + + group_id: str | None = ... + """The ID of the security group.""" + peering_status: str | None = ... + """The status of a VPC peering connection, if applicable.""" + user_id: str | None = ... + """The Amazon Web Services account ID.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection (if applicable).""" + +@dataclass(kw_only=True) +class Region(_SerdeShape): + """Describes a Region.""" + + opt_in_status: str | None = ... + """ + The Region opt-in status. The possible values are `opt-in-not-required`, + `opted-in`, and `not-opted-in`. + """ + geography: list[RegionGeography] | None = ... + """ + The geography information for the Region. The geography is returned as a + list. + """ + region_name: str | None = ... + """The name of the Region.""" + endpoint: str | None = ... + """The Region service endpoint.""" + +@dataclass(kw_only=True) +class RegionalSummary(_SerdeShape): + """A summary report for the attribute for a Region.""" + + region_name: str | None = ... + """The Amazon Web Services Region.""" + number_of_matched_accounts: int | None = ... + """ + The number of accounts in the Region with the same configuration value + for the attribute that is most frequently observed. + """ + number_of_unmatched_accounts: int | None = ... + """ + The number of accounts in the Region with a configuration value + different from the most frequently observed value for the attribute. + """ + +@dataclass(kw_only=True) +class RegionGeography(_SerdeShape): + """Describes the geography information for a Region.""" + + name: str | None = ... + """The name of the geography, for example, `United States of America`.""" + +@dataclass(kw_only=True) +class RegisteredInstance(_SerdeShape): + """ + Describes an Amazon EC2 instance that is enabled for SQL Server High + Availability standby detection monitoring. + """ + + instance_id: str | None = ... + """The ID of the SQL Server High Availability instance.""" + sql_server_license_usage: str | None = ... + """ + The license type for the SQL Server license. Valid values include: + + - `full` - The SQL Server High Availability instance is using a full SQL + Server license. + + - `waived` - The SQL Server High Availability instance is waived from + the SQL Server license. + """ + ha_status: str | None = ... + """ + The SQL Server High Availability status of the instance. Valid values + are: + + - `processing` - The SQL Server High Availability status for the SQL + Server High Availability instance is being updated. + + - `active` - The SQL Server High Availability instance is an active node + in an SQL Server High Availability cluster. + + - `standby` - The SQL Server High Availability instance is a standby + failover node in an SQL Server High Availability cluster. + + - `invalid` - An error occurred due to misconfigured permissions, or + unable to dertemine SQL Server High Availability status for the SQL + Server High Availability instance. + """ + processing_status: str | None = ... + """ + A brief description of the SQL Server High Availability status. If the + instance is in the `invalid` High Availability status, this parameter + includes the error message. + """ + last_updated_time: datetime | None = ... + """ + The date and time when the instance's SQL Server High Availability + status was last updated, in the ISO 8601 format in the UTC time zone + (`YYYY-MM-DDThh:mm:ss.sssZ`). + """ + sql_server_credentials: str | None = ... + """ + The ARN of the Secrets Manager secret containing the SQL Server access + credentials for the SQL Server High Availability instance. If not + specified, deafult local user credentials will be used by the Amazon Web + Services Systems Manager agent. + """ + tags: list[Tag] | None = ... + """The tags assigned to the SQL Server High Availability instance.""" + +@dataclass(kw_only=True) +class RegisterImageInput(_SerdeShape): + """Contains the parameters for RegisterImage.""" + + image_location: str | None = ... + """ + The full path to your AMI manifest in Amazon S3 storage. The specified + bucket must have the `aws-exec-read` canned access control list (ACL) to + ensure that it can be accessed by Amazon EC2. For more information, see + [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) + in the *Amazon S3 Service Developer Guide*. + """ + billing_products: list[str] | None = ... + """ + The billing product codes. Your account must be authorized to specify + billing product codes. + + If your account is not authorized to specify billing product codes, you + can publish AMIs that include billable software and list them on the + Amazon Web Services Marketplace. You must first register as a seller on + the Amazon Web Services Marketplace. For more information, see [Getting + started as an Amazon Web Services Marketplace + seller](https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html) + and [AMI-based products in Amazon Web Services + Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html) + in the *Amazon Web Services Marketplace Seller Guide*. + """ + boot_mode: str | None = ... + """ + The boot mode of the AMI. A value of `uefi-preferred` indicates that the + AMI supports both UEFI and Legacy BIOS. + + Note: + The operating system contained in the AMI must be configured to support + the specified boot mode. + + For more information, see [Instance launch behavior with Amazon EC2 boot + modes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) + in the *Amazon EC2 User Guide*. + """ + tpm_support: str | None = ... + """ + Set to `v2.0` to enable Trusted Platform Module (TPM) support. For more + information, see + [NitroTPM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) + in the *Amazon EC2 User Guide*. + """ + uefi_data: str | None = ... + """ + Base64 representation of the non-volatile UEFI variable store. To + retrieve the UEFI data, use the + [GetInstanceUefiData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceUefiData) + command. You can inspect and modify the UEFI data by using the + [python-uefivars tool](https://github.com/awslabs/python-uefivars) on + GitHub. For more information, see [UEFI Secure Boot for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) + in the *Amazon EC2 User Guide*. + """ + imds_support: str | None = ... + """ + Set to `v2.0` to indicate that IMDSv2 is specified in the AMI. Instances + launched from this AMI will have `HttpTokens` automatically set to + `required` so that, by default, the instance requires that IMDSv2 is + used when requesting instance metadata. In addition, + `HttpPutResponseHopLimit` is set to `2`. For more information, see + [Configure the + AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) + in the *Amazon EC2 User Guide*. + + Note: + If you set the value to `v2.0`, make sure that your AMI software can + support IMDSv2. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the AMI. + + To tag the AMI, the value for `ResourceType` must be `image`. If you + specify another value for `ResourceType`, the request fails. + + To tag an AMI after it has been registered, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + name: str | None = ... + """ + A name for your AMI. + + Constraints: 3-128 alphanumeric characters, parentheses (()), square + brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), + single quotes ('), at-signs (@), or underscores(_) + """ + description: str | None = ... + """A description for your AMI.""" + architecture: str | None = ... + """ + The architecture of the AMI. + + Default: For Amazon EBS-backed AMIs, `i386`. For instance store-backed + AMIs, the architecture specified in the manifest file. + """ + kernel_id: str | None = ... + """The ID of the kernel.""" + ramdisk_id: str | None = ... + """The ID of the RAM disk.""" + root_device_name: str | None = ... + """The device name of the root device volume (for example, `/dev/sda1`).""" + block_device_mappings: list[BlockDeviceMapping] | None = ... + """ + The block device mapping entries. + + If you specify an Amazon EBS volume using the ID of an Amazon EBS + snapshot, you can't specify the encryption state of the volume. + + If you create an AMI on an Outpost, then all backing snapshots must be + on the same Outpost or in the Region of that Outpost. AMIs on an Outpost + that include local snapshots can be used to launch instances on the same + Outpost only. For more information, [Create AMIs from local + snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#ami) + in the *Amazon EBS User Guide*. + """ + virtualization_type: str | None = ... + """ + The type of virtualization (`hvm` | `paravirtual`). + + Default: `paravirtual` + """ + sriov_net_support: str | None = ... + """ + Set to `simple` to enable enhanced networking with the Intel 82599 + Virtual Function interface for the AMI and any instances that you launch + from the AMI. + + There is no way to disable `sriovNetSupport` at this time. + + This option is supported only for HVM AMIs. Specifying this option with + a PV AMI can make instances launched from the AMI unreachable. + """ + ena_support: bool | None = ... + """ + Set to `true` to enable enhanced networking with ENA for the AMI and any + instances that you launch from the AMI. + + This option is supported only for HVM AMIs. Specifying this option with + a PV AMI can make instances launched from the AMI unreachable. + """ + +@dataclass(kw_only=True) +class RegisterImageOutput(_SerdeShape): + """Contains the output of RegisterImage.""" + + image_id: str | None = ... + """The ID of the newly registered AMI.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterInstanceEventNotificationAttributesInput(_SerdeShape): + """ + Dataclass for RegisterInstanceEventNotificationAttributesInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_tag_attribute: RegisterInstanceTagAttributeRequest | None = ... + """Information about the tag keys to register.""" + +@dataclass(kw_only=True) +class RegisterInstanceEventNotificationAttributesOutput(_SerdeShape): + """ + Dataclass for RegisterInstanceEventNotificationAttributesOutput + structure. + """ + + instance_tag_attribute: InstanceTagNotificationAttribute | None = ... + """The resulting set of tag keys.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterInstanceTagAttributeRequest(_SerdeShape): + """ + Information about the tag keys to register for the current Region. You + can either specify individual tag keys or register all tag keys in the + current Region. You must specify either `IncludeAllTagsOfInstance` or + `InstanceTagKeys` in the request + """ + + include_all_tags_of_instance: bool | None = ... + """ + Indicates whether to register all tag keys in the current Region. + Specify `true` to register all tag keys. + """ + instance_tag_keys: list[str] | None = ... + """The tag keys to register.""" + +@dataclass(kw_only=True) +class RegisterTransitGatewayMulticastGroupMembersInput(_SerdeShape): + """ + Dataclass for RegisterTransitGatewayMulticastGroupMembersInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + network_interface_ids: list[str] | None = ... + """ + The group members' network interface IDs to register with the transit + gateway multicast group. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RegisterTransitGatewayMulticastGroupMembersOutput(_SerdeShape): + """ + Dataclass for RegisterTransitGatewayMulticastGroupMembersOutput + structure. + """ + + registered_multicast_group_members: ( + TransitGatewayMulticastRegisteredGroupMembers | None + ) = ... + """ + Information about the registered transit gateway multicast group + members. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterTransitGatewayMulticastGroupSourcesInput(_SerdeShape): + """ + Dataclass for RegisterTransitGatewayMulticastGroupSourcesInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + network_interface_ids: list[str] | None = ... + """ + The group sources' network interface IDs to register with the transit + gateway multicast group. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RegisterTransitGatewayMulticastGroupSourcesOutput(_SerdeShape): + """ + Dataclass for RegisterTransitGatewayMulticastGroupSourcesOutput + structure. + """ + + registered_multicast_group_sources: ( + TransitGatewayMulticastRegisteredGroupSources | None + ) = ... + """Information about the transit gateway multicast group sources.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectCapacityReservationBillingOwnershipInput(_SerdeShape): + """Dataclass for RejectCapacityReservationBillingOwnershipInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + capacity_reservation_id: str | None = ... + """The ID of the Capacity Reservation for which to reject the request.""" + +@dataclass(kw_only=True) +class RejectCapacityReservationBillingOwnershipOutput(_SerdeShape): + """Dataclass for RejectCapacityReservationBillingOwnershipOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayClientVpnAttachmentInput(_SerdeShape): + """Dataclass for RejectTransitGatewayClientVpnAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Transit Gateway attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayClientVpnAttachmentOutput(_SerdeShape): + """Dataclass for RejectTransitGatewayClientVpnAttachmentOutput structure.""" + + transit_gateway_client_vpn_attachment: ( + TransitGatewayClientVpnAttachment | None + ) = ... + """Information about the Transit Gateway Client VPN attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayMulticastDomainAssociationsInput(_SerdeShape): + """ + Dataclass for RejectTransitGatewayMulticastDomainAssociationsInput + structure. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + subnet_ids: list[str] | None = ... + """ + The IDs of the subnets to associate with the transit gateway multicast + domain. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayMulticastDomainAssociationsOutput(_SerdeShape): + """ + Dataclass for RejectTransitGatewayMulticastDomainAssociationsOutput + structure. + """ + + associations: TransitGatewayMulticastDomainAssociations | None = ... + """Information about the multicast domain associations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayPeeringAttachmentInput(_SerdeShape): + """Dataclass for RejectTransitGatewayPeeringAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway peering attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayPeeringAttachmentOutput(_SerdeShape): + """Dataclass for RejectTransitGatewayPeeringAttachmentOutput structure.""" + + transit_gateway_peering_attachment: TransitGatewayPeeringAttachment | None = ... + """The transit gateway peering attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayVpcAttachmentInput(_SerdeShape): + """Dataclass for RejectTransitGatewayVpcAttachmentInput structure.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RejectTransitGatewayVpcAttachmentOutput(_SerdeShape): + """Dataclass for RejectTransitGatewayVpcAttachmentOutput structure.""" + + transit_gateway_vpc_attachment: TransitGatewayVpcAttachment | None = ... + """Information about the attachment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectVpcEndpointConnectionsInput(_SerdeShape): + """Dataclass for RejectVpcEndpointConnectionsInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the service.""" + vpc_endpoint_ids: list[str] | None = ... + """The IDs of the VPC endpoints.""" + +@dataclass(kw_only=True) +class RejectVpcEndpointConnectionsOutput(_SerdeShape): + """Dataclass for RejectVpcEndpointConnectionsOutput structure.""" + + unsuccessful: list[UnsuccessfulItem] | None = ... + """Information about the endpoints that were not rejected, if applicable.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectVpcPeeringConnectionInput(_SerdeShape): + """Dataclass for RejectVpcPeeringConnectionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection.""" + +@dataclass(kw_only=True) +class RejectVpcPeeringConnectionOutput(_SerdeShape): + """Dataclass for RejectVpcPeeringConnectionOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReleaseAddressInput(_SerdeShape): + """Dataclass for ReleaseAddressInput structure.""" + + allocation_id: str | None = ... + """The allocation ID. This parameter is required.""" + public_ip: str | None = ... + """Deprecated.""" + network_border_group: str | None = ... + """ + The set of Availability Zones, Local Zones, or Wavelength Zones from + which Amazon Web Services advertises IP addresses. + + If you provide an incorrect network border group, you receive an + `InvalidAddress.NotFound` error. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ReleaseAddressOutput(_SerdeShape): + """Dataclass for ReleaseAddressOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReleaseHostsInput(_SerdeShape): + """Dataclass for ReleaseHostsInput structure.""" + + host_ids: list[str] | None = ... + """The IDs of the Dedicated Hosts to release.""" + +@dataclass(kw_only=True) +class ReleaseHostsOutput(_SerdeShape): + """Dataclass for ReleaseHostsOutput structure.""" + + successful: list[str] | None = ... + """The IDs of the Dedicated Hosts that were successfully released.""" + unsuccessful: list[UnsuccessfulItem] | None = ... + """ + The IDs of the Dedicated Hosts that could not be released, including an + error message. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReleaseIpamPoolAllocationInput(_SerdeShape): + """Dataclass for ReleaseIpamPoolAllocationInput structure.""" + + dry_run: bool | None = ... + """ + A check for whether you have the required permissions for the action + without actually making the request and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + ipam_pool_id: str | None = ... + """ + The ID of the IPAM pool which contains the allocation you want to + release. + """ + cidr: str | None = ... + """The CIDR of the allocation you want to release.""" + ipam_pool_allocation_id: str | None = ... + """The ID of the allocation.""" + +@dataclass(kw_only=True) +class ReleaseIpamPoolAllocationOutput(_SerdeShape): + """Dataclass for ReleaseIpamPoolAllocationOutput structure.""" + + success: bool | None = ... + """Indicates if the release was successful.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveIpamOperatingRegion(_SerdeShape): + """ + Remove an operating Region from an IPAM. Operating Regions are Amazon + Web Services Regions where the IPAM is allowed to manage IP address + CIDRs. IPAM only discovers and monitors resources in the Amazon Web + Services Regions you select as operating Regions. + + For more information about operating Regions, see [Create an + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in + the *Amazon VPC IPAM User Guide* + """ + + region_name: str | None = ... + """The name of the operating Region you want to remove.""" + +@dataclass(kw_only=True) +class RemoveIpamOrganizationalUnitExclusion(_SerdeShape): + """ + Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM + is integrated with Amazon Web Services Organizations and you add an + organizational unit (OU) exclusion, IPAM will not manage the IP + addresses in accounts in that OU exclusion. There is a limit on the + number of exclusions you can create. For more information, see [Quotas + for your + IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html) in + the *Amazon VPC IPAM User Guide*. + """ + + organizations_entity_path: str | None = ... + """ + An Amazon Web Services Organizations entity path. Build the path for the + OU(s) using Amazon Web Services Organizations IDs separated by a `/`. + Include all child OUs by ending the path with `/*`. + + - Example 1 + + - Path to a child OU: + `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/` + + - In this example, `o-a1b2c3d4e5` is the organization ID, + `r-f6g7h8i9j0example` is the root ID , `ou-ghi0-awsccccc` is an OU + ID, and `ou-jkl0-awsddddd` is a child OU ID. + + - IPAM will not manage the IP addresses in accounts in the child OU. + + - Example 2 + + - Path where all child OUs will be part of the exclusion: + `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/*` + + - In this example, IPAM will not manage the IP addresses in accounts + in the OU (`ou-ghi0-awsccccc`) or in accounts in any OUs that are + children of the OU. + + For more information on how to construct an entity path, see [Understand + the Amazon Web Services Organizations entity + path](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_access-advisor-viewing-orgs-entity-path) + in the *Amazon Web Services Identity and Access Management User Guide*. + """ + +@dataclass(kw_only=True) +class RemovePrefixListEntry(_SerdeShape): + """An entry for a prefix list.""" + + cidr: str | None = ... + """The CIDR block.""" + +@dataclass(kw_only=True) +class ReplaceIamInstanceProfileAssociationInput(_SerdeShape): + """Dataclass for ReplaceIamInstanceProfileAssociationInput structure.""" + + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + association_id: str | None = ... + """The ID of the existing IAM instance profile association.""" + +@dataclass(kw_only=True) +class ReplaceIamInstanceProfileAssociationOutput(_SerdeShape): + """Dataclass for ReplaceIamInstanceProfileAssociationOutput structure.""" + + iam_instance_profile_association: IamInstanceProfileAssociation | None = ... + """Information about the IAM instance profile association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceImageCriteriaInAllowedImagesSettingsInput(_SerdeShape): + """ + Dataclass for ReplaceImageCriteriaInAllowedImagesSettingsInput + structure. + """ + + image_criteria: list[ImageCriterionRequest] | None = ... + """ + The list of criteria that are evaluated to determine whether AMIs are + discoverable and usable in the account in the specified Amazon Web + Services Region. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ReplaceImageCriteriaInAllowedImagesSettingsOutput(_SerdeShape): + """ + Dataclass for ReplaceImageCriteriaInAllowedImagesSettingsOutput + structure. + """ + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceImageInstanceTypeSpecificationInput(_SerdeShape): + """Dataclass for ReplaceImageInstanceTypeSpecificationInput structure.""" + + image_id: str | None = ... + """The ID of the AMI.""" + instance_type_specification: InstanceTypeSpecificationRequest | None = ... + """ + The instance type specification to set on the AMI. Omit this parameter + to remove the existing instance type specification. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ReplaceImageInstanceTypeSpecificationOutput(_SerdeShape): + """Dataclass for ReplaceImageInstanceTypeSpecificationOutput structure.""" + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ReplacementStrategy(UnknownEnumMixin, StrEnum): + LAUNCH = "launch" + LAUNCH_BEFORE_TERMINATE = "launch-before-terminate" + +@dataclass(kw_only=True) +class ReplaceNetworkAclAssociationInput(_SerdeShape): + """Dataclass for ReplaceNetworkAclAssociationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + association_id: str | None = ... + """ + The ID of the current association between the original network ACL and + the subnet. + """ + network_acl_id: str | None = ... + """The ID of the new network ACL to associate with the subnet.""" + +@dataclass(kw_only=True) +class ReplaceNetworkAclAssociationOutput(_SerdeShape): + """Dataclass for ReplaceNetworkAclAssociationOutput structure.""" + + new_association_id: str | None = ... + """The ID of the new association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceNetworkAclEntryInput(_SerdeShape): + """Dataclass for ReplaceNetworkAclEntryInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_acl_id: str | None = ... + """The ID of the ACL.""" + rule_number: int | None = ... + """The rule number of the entry to replace.""" + protocol: str | None = ... + """ + The protocol number. A value of \"-1\" means all protocols. If you + specify \"-1\" or a protocol number other than \"6\" (TCP), \"17\" + (UDP), or \"1\" (ICMP), traffic on all ports is allowed, regardless of + any ports or ICMP types or codes that you specify. If you specify + protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all + ICMP types and codes allowed, regardless of any that you specify. If you + specify protocol \"58\" (ICMPv6) and specify an IPv6 CIDR block, you + must specify an ICMP type and code. + """ + rule_action: str | None = ... + """Indicates whether to allow or deny the traffic that matches the rule.""" + egress: bool | None = ... + """ + Indicates whether to replace the egress rule. + + Default: If no value is specified, we replace the ingress rule. + """ + cidr_block: str | None = ... + """ + The IPv4 network range to allow or deny, in CIDR notation (for example + `172.16.0.0/24`). + """ + ipv6_cidr_block: str | None = ... + """ + The IPv6 network range to allow or deny, in CIDR notation (for example + `2001:bd8:1234:1a00::/64`). + """ + icmp_type_code: IcmpTypeCode | None = ... + """ + ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying + protocol 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block. + """ + port_range: PortRange | None = ... + """ + TCP or UDP protocols: The range of ports the rule applies to. Required + if specifying protocol 6 (TCP) or 17 (UDP). + """ + +@dataclass(kw_only=True) +class ReplaceNetworkAclEntryOutput(_SerdeShape): + """Dataclass for ReplaceNetworkAclEntryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceRootVolumeTask(_SerdeShape): + """Information about a root volume replacement task.""" + + replace_root_volume_task_id: str | None = ... + """The ID of the root volume replacement task.""" + instance_id: str | None = ... + """ + The ID of the instance for which the root volume replacement task was + created. + """ + task_state: str | None = ... + """ + The state of the task. The task can be in one of the following states: + + - `pending` - the replacement volume is being created. + + - `in-progress` - the original volume is being detached and the + replacement volume is being attached. + + - `succeeded` - the replacement volume has been successfully attached to + the instance and the instance is available. + + - `failing` - the replacement task is in the process of failing. + + - `failed` - the replacement task has failed but the original root + volume is still attached. + + - `failing-detached` - the replacement task is in the process of + failing. The instance might have no root volume attached. + + - `failed-detached` - the replacement task has failed and the instance + has no root volume attached. + """ + start_time: str | None = ... + """The time the task was started.""" + complete_time: str | None = ... + """The time the task completed.""" + tags: list[Tag] | None = ... + """The tags assigned to the task.""" + image_id: str | None = ... + """The ID of the AMI used to create the replacement root volume.""" + snapshot_id: str | None = ... + """The ID of the snapshot used to create the replacement root volume.""" + delete_replaced_root_volume: bool | None = ... + """ + Indicates whether the original root volume is to be deleted after the + root volume replacement task completes. + """ + +class ReplaceRootVolumeTaskState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + IN_PROGRESS = "in-progress" + FAILING = "failing" + SUCCEEDED = "succeeded" + FAILED = "failed" + FAILED_DETACHED = "failed-detached" + +@dataclass(kw_only=True) +class ReplaceRouteInput(_SerdeShape): + """Dataclass for ReplaceRouteInput structure.""" + + destination_prefix_list_id: str | None = ... + """The ID of the prefix list for the route.""" + vpc_endpoint_id: str | None = ... + """ + The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints + only. + """ + local_target: bool | None = ... + """ + Specifies whether to reset the local route to its default target + (`local`). + """ + transit_gateway_id: str | None = ... + """The ID of a transit gateway.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + carrier_gateway_id: str | None = ... + """[IPv4 traffic only] The ID of a carrier gateway.""" + core_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the core network.""" + odb_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ODB network.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + route_table_id: str | None = ... + """The ID of the route table.""" + destination_cidr_block: str | None = ... + """ + The IPv4 CIDR address block used for the destination match. The value + that you provide must match the CIDR of an existing route in the table. + """ + gateway_id: str | None = ... + """The ID of an internet gateway or virtual private gateway.""" + destination_ipv6_cidr_block: str | None = ... + """ + The IPv6 CIDR address block used for the destination match. The value + that you provide must match the CIDR of an existing route in the table. + """ + egress_only_internet_gateway_id: str | None = ... + """[IPv6 traffic only] The ID of an egress-only internet gateway.""" + instance_id: str | None = ... + """The ID of a NAT instance in your VPC.""" + network_interface_id: str | None = ... + """The ID of a network interface.""" + vpc_peering_connection_id: str | None = ... + """The ID of a VPC peering connection.""" + nat_gateway_id: str | None = ... + """[IPv4 traffic only] The ID of a NAT gateway.""" + +@dataclass(kw_only=True) +class ReplaceRouteOutput(_SerdeShape): + """Dataclass for ReplaceRouteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceRouteTableAssociationInput(_SerdeShape): + """Dataclass for ReplaceRouteTableAssociationInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + association_id: str | None = ... + """The association ID.""" + route_table_id: str | None = ... + """The ID of the new route table to associate with the subnet.""" + +@dataclass(kw_only=True) +class ReplaceRouteTableAssociationOutput(_SerdeShape): + """Dataclass for ReplaceRouteTableAssociationOutput structure.""" + + new_association_id: str | None = ... + """The ID of the new association.""" + association_state: RouteTableAssociationState | None = ... + """The state of the association.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceTransitGatewayRouteInput(_SerdeShape): + """Dataclass for ReplaceTransitGatewayRouteInput structure.""" + + destination_cidr_block: str | None = ... + """ + The CIDR range used for the destination match. Routing decisions are + based on the most specific match. + """ + transit_gateway_route_table_id: str | None = ... + """The ID of the route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + blackhole: bool | None = ... + """Indicates whether traffic matching this route is to be dropped.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ReplaceTransitGatewayRouteOutput(_SerdeShape): + """Dataclass for ReplaceTransitGatewayRouteOutput structure.""" + + route: TransitGatewayRoute | None = ... + """Information about the modified route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplaceVpnTunnelInput(_SerdeShape): + """Dataclass for ReplaceVpnTunnelInput structure.""" + + vpn_connection_id: str | None = ... + """The ID of the Site-to-Site VPN connection.""" + vpn_tunnel_outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + apply_pending_maintenance: bool | None = ... + """Trigger pending tunnel endpoint maintenance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ReplaceVpnTunnelOutput(_SerdeShape): + """Dataclass for ReplaceVpnTunnelOutput structure.""" + + return_: bool | None = ... + """Confirmation of replace tunnel operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ReportInstanceReasonCodes(UnknownEnumMixin, StrEnum): + INSTANCE_STUCK_IN_STATE = "instance-stuck-in-state" + UNRESPONSIVE = "unresponsive" + NOT_ACCEPTING_CREDENTIALS = "not-accepting-credentials" + PASSWORD_NOT_AVAILABLE = "password-not-available" + PERFORMANCE_NETWORK = "performance-network" + PERFORMANCE_INSTANCE_STORE = "performance-instance-store" + PERFORMANCE_EBS_VOLUME = "performance-ebs-volume" + PERFORMANCE_OTHER = "performance-other" + OTHER = "other" + +@dataclass(kw_only=True) +class ReportInstanceStatusInput(_SerdeShape): + """Dataclass for ReportInstanceStatusInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instances: list[str] | None = ... + """The instances.""" + status: str | None = ... + """The status of all instances listed.""" + start_time: datetime | None = ... + """The time at which the reported instance health state began.""" + end_time: datetime | None = ... + """The time at which the reported instance health state ended.""" + reason_codes: list[str] | None = ... + """ + The reason codes that describe the health state of your instance. + + - `instance-stuck-in-state`: My instance is stuck in a state. + + - `unresponsive`: My instance is unresponsive. + + - `not-accepting-credentials`: My instance is not accepting my + credentials. + + - `password-not-available`: A password is not available for my instance. + + - `performance-network`: My instance is experiencing performance + problems that I believe are network related. + + - `performance-instance-store`: My instance is experiencing performance + problems that I believe are related to the instance stores. + + - `performance-ebs-volume`: My instance is experiencing performance + problems that I believe are related to an EBS volume. + + - `performance-other`: My instance is experiencing performance problems. + + - `other`: [explain using the description parameter] + """ + description: str | None = ... + """Descriptive text about the health state of your instance.""" + +@dataclass(kw_only=True) +class ReportInstanceStatusOutput(_SerdeShape): + """Dataclass for ReportInstanceStatusOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ReportState(UnknownEnumMixin, StrEnum): + RUNNING = "running" + CANCELLED = "cancelled" + COMPLETE = "complete" + ERROR = "error" + +class ReportStatusType(UnknownEnumMixin, StrEnum): + OK = "ok" + IMPAIRED = "impaired" + +@dataclass(kw_only=True) +class RequestFilterPortRange(_SerdeShape): + """Describes a port range.""" + + from_port: int | None = ... + """The first port in the range.""" + to_port: int | None = ... + """The last port in the range.""" + +@dataclass(kw_only=True) +class RequestIpamResourceTag(_SerdeShape): + """A tag on an IPAM resource.""" + + key: str | None = ... + """ + The key of a tag assigned to the resource. Use this filter to find all + resources assigned a tag with a specific key, regardless of the tag + value. + """ + value: str | None = ... + """The value for the tag.""" + +@dataclass(kw_only=True) +class RequestLaunchTemplateData(_SerdeShape): + """ + The information to include in the launch template. + + Note: + You must specify at least one parameter for the launch template data. + """ + + kernel_id: str | None = ... + """ + The ID of the kernel. + + Warning: + We recommend that you use PV-GRUB instead of kernels and RAM disks. For + more information, see [User provided + kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html) + in the *Amazon Linux 2 User Guide*. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the instance is optimized for Amazon EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal Amazon EBS I/O + performance. This optimization isn't available with all instance types. + Additional usage charges apply when using an EBS-optimized instance. + """ + iam_instance_profile: ( + LaunchTemplateIamInstanceProfileSpecificationRequest | None + ) = ... + """The name or Amazon Resource Name (ARN) of an IAM instance profile.""" + block_device_mappings: list[LaunchTemplateBlockDeviceMappingRequest] | None = ... + """The block device mapping.""" + network_interfaces: ( + list[LaunchTemplateInstanceNetworkInterfaceSpecificationRequest] | None + ) = ... + """The network interfaces for the instance.""" + image_id: str | None = ... + """ + The ID of the AMI in the format `ami-0ac394d6a3example`. + + Alternatively, you can specify a Systems Manager parameter, using one of + the following formats. The Systems Manager parameter will resolve to an + AMI ID on launch. + + To reference a public parameter: + + - `resolve:ssm:`*`public-parameter`*` ` + + To reference a parameter stored in the same account: + + - `resolve:ssm:`*`parameter-name`*` ` + + - `resolve:ssm:`*`parameter-name:version-number`*` ` + + - `resolve:ssm:`*`parameter-name:label`*` ` + + To reference a parameter shared from another Amazon Web Services + account: + + - `resolve:ssm:`*`parameter-ARN`*` ` + + - `resolve:ssm:`*`parameter-ARN:version-number`*` ` + + - `resolve:ssm:`*`parameter-ARN:label`*` ` + + For more information, see [Use a Systems Manager parameter instead of an + AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + + Note: + If the launch template will be used for an EC2 Fleet or Spot Fleet, note + the following: + + - Only EC2 Fleets of type `instant` support specifying a Systems Manager + parameter. + + - For EC2 Fleets of type `maintain` or `request`, or for Spot Fleets, + you must specify the AMI ID. + """ + instance_type: str | None = ... + """ + The instance type. For more information, see [Amazon EC2 instance + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + in the *Amazon EC2 User Guide*. + + If you specify `InstanceType`, you can't specify + `InstanceRequirements`. + """ + key_name: str | None = ... + """ + The name of the key pair. You can create a key pair using + [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) + or + [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html). + + Warning: + If you do not specify a key pair, you can't connect to the instance + unless you choose an AMI that is configured to allow users another way + to log in. + """ + monitoring: LaunchTemplatesMonitoringRequest | None = ... + """The monitoring for the instance.""" + placement: LaunchTemplatePlacementRequest | None = ... + """The placement for the instance.""" + ram_disk_id: str | None = ... + """ + The ID of the RAM disk. + + Warning: + We recommend that you use PV-GRUB instead of kernels and RAM disks. For + more information, see [User provided + kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) + in the *Amazon EC2 User Guide*. + """ + disable_api_termination: bool | None = ... + """ + Indicates whether termination protection is enabled for the instance. + The default is `false`, which means that you can terminate the instance + using the Amazon EC2 console, command line tools, or API. You can enable + termination protection when you launch an instance, while the instance + is running, or while the instance is stopped. + """ + instance_initiated_shutdown_behavior: str | None = ... + """ + Indicates whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + + Default: `stop` + """ + user_data: str | None = ... + """ + The user data to make available to the instance. You must provide + base64-encoded text. User data is limited to 16 KB. For more + information, see [Run commands when you launch an EC2 instance with user + data + input](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) + in the *Amazon EC2 User Guide*. + + If you are creating the launch template for use with Batch, the user + data must be provided in the [MIME multi-part archive + format](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). + For more information, see [Amazon EC2 user data in launch + templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html#lt-user-data) + in the *Batch User Guide*. + """ + tag_specifications: list[LaunchTemplateTagSpecificationRequest] | None = ... + """ + The tags to apply to the resources that are created during instance + launch. These tags are not applied to the launch template. + """ + elastic_gpu_specifications: list[ElasticGpuSpecification] | None = ... + """ + Deprecated. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + elastic_inference_accelerators: ( + list[LaunchTemplateElasticInferenceAccelerator] | None + ) = ... + """ + Note: + Amazon Elastic Inference is no longer available. + + An elastic inference accelerator to associate with the instance. Elastic + inference accelerators are a resource you can attach to your Amazon EC2 + instances to accelerate your Deep Learning (DL) inference workloads. + + You cannot specify accelerators from different generations in the same + request. + """ + security_group_ids: list[str] | None = ... + """ + The IDs of the security groups. + + If you specify a network interface, you must specify any security groups + as part of the network interface instead of using this parameter. + """ + security_groups: list[str] | None = ... + """ + The names of the security groups. For a nondefault VPC, you must use + security group IDs instead. + + If you specify a network interface, you must specify any security groups + as part of the network interface instead of using this parameter. + """ + instance_market_options: LaunchTemplateInstanceMarketOptionsRequest | None = ... + """The market (purchasing) option for the instances.""" + credit_specification: CreditSpecificationRequest | None = ... + """ + The credit option for CPU usage of the instance. Valid only for T + instances. + """ + cpu_options: LaunchTemplateCpuOptionsRequest | None = ... + """ + The CPU options for the instance. For more information, see [CPU options + for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) + in the *Amazon EC2 User Guide*. + """ + capacity_reservation_specification: ( + LaunchTemplateCapacityReservationSpecificationRequest | None + ) = ... + """ + The Capacity Reservation targeting option. If you do not specify this + parameter, the instance's Capacity Reservation preference defaults to + `open`, which enables it to run in any open Capacity Reservation that + has matching attributes (instance type, platform, Availability Zone). + """ + license_specifications: list[LaunchTemplateLicenseConfigurationRequest] | None = ... + """The license configurations.""" + hibernation_options: LaunchTemplateHibernationOptionsRequest | None = ... + """ + Indicates whether an instance is enabled for hibernation. This parameter + is valid only if the instance meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + For more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + """ + metadata_options: LaunchTemplateInstanceMetadataOptionsRequest | None = ... + """ + The metadata options for the instance. For more information, see + [Configure the Instance Metadata Service + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html) + in the *Amazon EC2 User Guide*. + """ + enclave_options: LaunchTemplateEnclaveOptionsRequest | None = ... + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. For more information, see [What is Nitro + Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) + in the *Amazon Web Services Nitro Enclaves User Guide*. + + You can't enable Amazon Web Services Nitro Enclaves and hibernation on + the same instance. + """ + instance_requirements: InstanceRequirementsRequest | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with these + attributes. + + You must specify `VCpuCount` and `MemoryMiB`. All other attributes are + optional. Any unspecified optional attribute is set to its default. + + When you specify multiple attributes, you get instance types that + satisfy all of the specified attributes. If you specify multiple values + for an attribute, you get instance types that satisfy any of the + specified values. + + To limit the list of instance types from which Amazon EC2 can identify + matching instance types, you can use one of the following parameters, + but not both in the same request: + + - `AllowedInstanceTypes` - The instance types to include in the list. + All other instance types are ignored, even if they match your + specified attributes. + + - `ExcludedInstanceTypes` - The instance types to exclude from the list, + even if they match your specified attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + + Attribute-based instance type selection is only supported when using + Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If + you plan to use the launch template in the [launch instance + wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), + or with the + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) + API or + [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) + Amazon Web Services CloudFormation resource, you can't specify + `InstanceRequirements`. + + For more information, see [Specify attributes for instance type + selection for EC2 Fleet or Spot + Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) + and [Spot placement + score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) + in the *Amazon EC2 User Guide*. + """ + private_dns_name_options: LaunchTemplatePrivateDnsNameOptionsRequest | None = ... + """ + The options for the instance hostname. The default values are inherited + from the subnet. + """ + maintenance_options: LaunchTemplateInstanceMaintenanceOptionsRequest | None = ... + """The maintenance options for the instance.""" + disable_api_stop: bool | None = ... + """ + Indicates whether to enable the instance for stop protection. For more + information, see [Enable stop protection for your EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) + in the *Amazon EC2 User Guide*. + """ + operator: OperatorRequest | None = ... + """The entity that manages the launch template.""" + network_performance_options: ( + LaunchTemplateNetworkPerformanceOptionsRequest | None + ) = ... + """ + Contains launch template settings to boost network performance for the + type of workload that runs on your instance. + """ + secondary_interfaces: ( + list[LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest] | None + ) = ... + """ + The secondary interfaces to associate with instances launched from the + template. + """ + +@dataclass(kw_only=True) +class RequestSpotFleetInput(_SerdeShape): + """Contains the parameters for RequestSpotFleet.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_fleet_request_config: SpotFleetRequestConfigData | None = ... + """The configuration for the Spot Fleet request.""" + +@dataclass(kw_only=True) +class RequestSpotFleetOutput(_SerdeShape): + """Contains the output of RequestSpotFleet.""" + + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RequestSpotInstancesInput(_SerdeShape): + """Contains the parameters for RequestSpotInstances.""" + + launch_specification: RequestSpotLaunchSpecification | None = ... + """The launch specification.""" + tag_specifications: list[TagSpecification] | None = ... + """ + The key-value pair for tagging the Spot Instance request on creation. + The value for `ResourceType` must be `spot-instances-request`, otherwise + the Spot Instance request fails. To tag the Spot Instance request after + it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. The default is + `terminate`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [Ensuring + idempotency in Amazon EC2 API + requests](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html) + in the *Amazon EC2 User Guide*. + """ + instance_count: int | None = ... + """ + The maximum number of Spot Instances to launch. + + Default: 1 + """ + type: str | None = ... + """ + The Spot Instance request type. + + Default: `one-time` + """ + valid_from: datetime | None = ... + """ + The start date of the request. If this is a one-time request, the + request becomes active at this date and time and remains active until + all instances launch, the request expires, or the request is canceled. + If the request is persistent, the request becomes active at this date + and time and remains active until it expires or is canceled. + + The specified start date and time cannot be equal to the current date + and time. You must specify a start date and time that occurs after the + current date and time. + """ + valid_until: datetime | None = ... + """ + The end date of the request, in UTC format + (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + + - For a persistent request, the request remains active until the + `ValidUntil` date and time is reached. Otherwise, the request remains + active until you cancel it. + + - For a one-time request, the request remains active until all instances + launch, the request is canceled, or the `ValidUntil` date and time is + reached. By default, the request is valid for 7 days from the date the + request was created. + """ + launch_group: str | None = ... + """ + The instance launch group. Launch groups are Spot Instances that launch + together and terminate together. + + Default: Instances are launched and terminated individually + """ + availability_zone_group: str | None = ... + """ + The user-specified name for a logical grouping of requests. + + When you specify an Availability Zone group in a Spot Instance request, + all Spot Instances in the request are launched in the same Availability + Zone. Instance proximity is maintained with this parameter, but the + choice of Availability Zone is not. The group applies only to requests + for Spot Instances of the same instance type. Any additional Spot + Instance requests that are specified with the same Availability Zone + group name are launched in that same Availability Zone, as long as at + least one instance from the group is still active. + + If there is no active instance running in the Availability Zone group + that you specify for a new Spot Instance request (all instances are + terminated, the request is expired, or the maximum price you specified + falls below current Spot price), then Amazon EC2 launches the instance + in any Availability Zone where the constraint can be met. Consequently, + the subsequent set of Spot Instances could be placed in a different zone + from the original request, even if you specified the same Availability + Zone group. + + Default: Instances are launched in any available Availability Zone. + """ + block_duration_minutes: int | None = ... + """Deprecated.""" + +@dataclass(kw_only=True) +class RequestSpotInstancesOutput(_SerdeShape): + """Contains the output of RequestSpotInstances.""" + + spot_instance_requests: list[SpotInstanceRequest] | None = ... + """The Spot Instance requests.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RequestSpotLaunchSpecification(_SerdeShape): + """Describes the launch specification for an instance.""" + + security_group_ids: list[str] | None = ... + """The IDs of the security groups.""" + security_groups: list[str] | None = ... + """Not supported.""" + addressing_type: str | None = ... + """Deprecated.""" + block_device_mappings: list[BlockDeviceMapping] | None = ... + """ + The block device mapping entries. You can't specify both a snapshot ID + and an encryption value. This is because only blank volumes can be + encrypted on creation. If a snapshot is the basis for a volume, it is + not blank and its encryption status is used for the volume encryption + status. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the instance is optimized for EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal EBS I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS Optimized instance. + + Default: `false` + """ + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + image_id: str | None = ... + """The ID of the AMI.""" + instance_type: str | None = ... + """The instance type. Only one instance type can be specified.""" + kernel_id: str | None = ... + """The ID of the kernel.""" + key_name: str | None = ... + """The name of the key pair.""" + monitoring: RunInstancesMonitoringEnabled | None = ... + """ + Indicates whether basic or detailed monitoring is enabled for the + instance. + + Default: Disabled + """ + network_interfaces: list[InstanceNetworkInterfaceSpecification] | None = ... + """ + The network interfaces. If you specify a network interface, you must + specify subnet IDs and security group IDs using the network interface. + """ + placement: SpotPlacement | None = ... + """The placement information for the instance.""" + ramdisk_id: str | None = ... + """The ID of the RAM disk.""" + subnet_id: str | None = ... + """The ID of the subnet in which to launch the instance.""" + user_data: str | None = ... + """ + The base64-encoded user data that instances use when starting up. User + data is limited to 16 KB. + """ + +@dataclass(kw_only=True) +class Reservation(_SerdeShape): + """ + Describes a launch request for one or more instances, and includes + owner, requester, and security group information that applies to all + instances in the launch request. + """ + + reservation_id: str | None = ... + """The ID of the reservation.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the reservation.""" + requester_id: str | None = ... + """ + The ID of the requester that launched the instances on your behalf (for + example, Amazon Web Services Management Console or Auto Scaling). + """ + groups: list[GroupIdentifier] | None = ... + """Not supported.""" + instances: list[Instance] | None = ... + """The instances.""" + +class ReservationEndDateType(UnknownEnumMixin, StrEnum): + LIMITED = "limited" + UNLIMITED = "unlimited" + +@dataclass(kw_only=True) +class ReservationFleetInstanceSpecification(_SerdeShape): + """ + Information about an instance type to use in a Capacity Reservation + Fleet. + """ + + instance_type: str | None = ... + """ + The instance type for which the Capacity Reservation Fleet reserves + capacity. + """ + instance_platform: str | None = ... + """ + The type of operating system for which the Capacity Reservation Fleet + reserves capacity. + """ + weight: float | None = ... + """ + The number of capacity units provided by the specified instance type. + This value, together with the total target capacity that you specify for + the Fleet determine the number of instances for which the Fleet reserves + capacity. Both values are based on units that make sense for your + workload. For more information, see [Total target + capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + in the *Amazon EC2 User Guide*. + """ + availability_zone: str | None = ... + """ + The Availability Zone in which the Capacity Reservation Fleet reserves + the capacity. A Capacity Reservation Fleet can't span Availability + Zones. All instance type specifications that you specify for the Fleet + must use the same Availability Zone. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which the Capacity Reservation Fleet + reserves the capacity. A Capacity Reservation Fleet can't span + Availability Zones. All instance type specifications that you specify + for the Fleet must use the same Availability Zone. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the Capacity Reservation Fleet supports EBS-optimized + instances types. This optimization provides dedicated throughput to + Amazon EBS and an optimized configuration stack to provide optimal I/O + performance. This optimization isn't available with all instance types. + Additional usage charges apply when using EBS-optimized instance types. + """ + priority: int | None = ... + """ + The priority to assign to the instance type. This value is used to + determine which of the instance types specified for the Fleet should be + prioritized for use. A lower value indicates a high priority. For more + information, see [Instance type + priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) + in the *Amazon EC2 User Guide*. + """ + +class ReservationState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + EXPIRED = "expired" + CANCELLED = "cancelled" + SCHEDULED = "scheduled" + PENDING = "pending" + FAILED = "failed" + DELAYED = "delayed" + UNSUPPORTED = "unsupported" + PAYMENT_PENDING = "payment-pending" + PAYMENT_FAILED = "payment-failed" + RETIRED = "retired" + +class ReservationType(UnknownEnumMixin, StrEnum): + CAPACITY_BLOCK = "capacity-block" + ODCR = "odcr" + +@dataclass(kw_only=True) +class ReservationValue(_SerdeShape): + """The cost associated with the Reserved Instance.""" + + hourly_price: str | None = ... + """The hourly rate of the reservation.""" + remaining_total_value: str | None = ... + """ + The balance of the total value (the sum of remainingUpfrontValue + + hourlyPrice * number of hours remaining). + """ + remaining_upfront_value: str | None = ... + """The remaining upfront cost of the reservation.""" + +class ReservedCapacityAllocationStrategy(UnknownEnumMixin, StrEnum): + PRIORITIZED = "prioritized" + +class ReservedCapacityFallbackMarketType(UnknownEnumMixin, StrEnum): + ON_DEMAND = "on-demand" + +@dataclass(kw_only=True) +class ReservedCapacityFallbackOptions(_SerdeShape): + """ + Describes the fallback behavior for an EC2 Fleet that uses reserved + capacity when the reserved capacity is not enough to meet the target + capacity. If you don't specify fallback options, EC2 Fleet does not + fall back to any other market type after the specified reservation types + are exhausted. + """ + + market_types: list[str] | None = ... + """ + The instance purchasing options to fall back to when the reserved + capacity is not enough to meet the target capacity. The only supported + value is `on-demand`, which launches On-Demand Instances to fulfill the + remaining target capacity. + """ + +@dataclass(kw_only=True) +class ReservedCapacityFallbackOptionsRequest(_SerdeShape): + """ + Describes the fallback behavior for an EC2 Fleet that uses reserved + capacity when the reserved capacity is not enough to meet the target + capacity. If you don't specify fallback options, EC2 Fleet does not + fall back to any other market type after the specified reservation types + are exhausted. + """ + + market_types: list[str] | None = ... + """ + The instance purchasing options to fall back to when the reserved + capacity is not enough to meet the target capacity. The only supported + value is `on-demand`, which launches On-Demand Instances to fulfill the + remaining target capacity. + """ + +@dataclass(kw_only=True) +class ReservedCapacityOptions(_SerdeShape): + """ + Defines EC2 Fleet preferences for utilizing reserved capacity when + `DefaultTargetCapacityType` is set to `reserved-capacity`. EC2 Fleet can + fulfill reserved capacity using On-Demand Capacity Reservations, + Capacity Blocks for ML, and interruptible Capacity Reservations. + """ + + allocation_strategy: str | None = ... + """ + The strategy that determines the order in which EC2 Fleet launches + instances across the reservation types that you specify. The only + supported value is `prioritized`, which launches instances in the + priority order that you specify in your launch template overrides. If + you don't specify an allocation strategy, instances are launched in a + random order. + """ + reservation_types: list[str] | None = ... + """ + The types of Capacity Reservations used for fulfilling the EC2 Fleet + request. + """ + reserved_capacity_fallback_options: ReservedCapacityFallbackOptions | None = ... + """ + The fallback behavior for the EC2 Fleet when there is not enough + reserved capacity available to meet the target capacity. + """ + +@dataclass(kw_only=True) +class ReservedCapacityOptionsRequest(_SerdeShape): + """ + Defines EC2 Fleet preferences for utilizing reserved capacity when + `DefaultTargetCapacityType` is set to `reserved-capacity`. EC2 Fleet can + fulfill reserved capacity using On-Demand Capacity Reservations, + Capacity Blocks for ML, and interruptible Capacity Reservations. + + Note: + This configuration can only be used if the EC2 Fleet is of type + `instant`. + + When you specify `ReservedCapacityOptions`, you must also set + `DefaultTargetCapacityType` to `reserved-capacity` in the + `TargetCapacitySpecification`. + + For more information about interruptible Capacity Reservations, see + [Launch instances into an interruptible Capacity + Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-launch-instances-interruptible-cr-walkthrough.html) + in the *Amazon EC2 User Guide*. + """ + + allocation_strategy: str | None = ... + """ + The strategy that determines the order in which EC2 Fleet launches + instances across the reservation types that you specify. The only + supported value is `prioritized`, which launches instances in the + priority order that you specify in your launch template overrides. If + you don't specify an allocation strategy, instances are launched in a + random order. + """ + reservation_types: list[str] | None = ... + """ + The types of Capacity Reservations to use for fulfilling the EC2 Fleet + request. This is an ordered list: EC2 Fleet attempts to launch instances + into each Capacity Reservation type in the order that you specify them + before moving on to the next type. + """ + capacity_reservation_target: FleetCapacityReservationTargetRequest | None = ... + """ + The Capacity Reservations or Capacity Reservation Resource Groups to use + for fulfilling the EC2 Fleet request. You can specify Capacity + Reservation IDs or a Capacity Reservation Resource Group ARN, but not + both. + """ + reserved_capacity_fallback_options: ( + ReservedCapacityFallbackOptionsRequest | None + ) = ... + """ + The fallback behavior for the EC2 Fleet when there is not enough + reserved capacity available to meet the target capacity. This member + takes a `ReservedCapacityFallbackOptionsRequest` structure, in which you + set `MarketTypes` to the instance purchasing options to fall back to. + """ + +@dataclass(kw_only=True) +class ReservedInstanceLimitPrice(_SerdeShape): + """Describes the limit price of a Reserved Instance offering.""" + + amount: float | None = ... + """ + Used for Reserved Instance Marketplace offerings. Specifies the limit + price on the total order (instanceCount * price). + """ + currency_code: str | None = ... + """ + The currency in which the `limitPrice` amount is specified. At this + time, the only supported currency is `USD`. + """ + +@dataclass(kw_only=True) +class ReservedInstanceReservationValue(_SerdeShape): + """The total value of the Convertible Reserved Instance.""" + + reservation_value: ReservationValue | None = ... + """ + The total value of the Convertible Reserved Instance that you are + exchanging. + """ + reserved_instance_id: str | None = ... + """The ID of the Convertible Reserved Instance that you are exchanging.""" + +@dataclass(kw_only=True) +class ReservedInstances(_SerdeShape): + """Describes a Reserved Instance.""" + + currency_code: str | None = ... + """ + The currency of the Reserved Instance. It's specified using ISO 4217 + standard currency codes. At this time, the only supported currency is + `USD`. + """ + instance_tenancy: str | None = ... + """The tenancy of the instance.""" + offering_class: str | None = ... + """The offering class of the Reserved Instance.""" + offering_type: str | None = ... + """The Reserved Instance offering type.""" + recurring_charges: list[RecurringCharge] | None = ... + """The recurring charge tag assigned to the resource.""" + scope: str | None = ... + """The scope of the Reserved Instance.""" + tags: list[Tag] | None = ... + """Any tags assigned to the resource.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + reserved_instances_id: str | None = ... + """The ID of the Reserved Instance.""" + instance_type: str | None = ... + """The instance type on which the Reserved Instance can be used.""" + availability_zone: str | None = ... + """The Availability Zone in which the Reserved Instance can be used.""" + start: datetime | None = ... + """The date and time the Reserved Instance started.""" + end: datetime | None = ... + """The time when the Reserved Instance expires.""" + duration: int | None = ... + """The duration of the Reserved Instance, in seconds.""" + usage_price: float | None = ... + """The usage price of the Reserved Instance, per hour.""" + fixed_price: float | None = ... + """The purchase price of the Reserved Instance.""" + instance_count: int | None = ... + """The number of reservations purchased.""" + product_description: str | None = ... + """The Reserved Instance product platform description.""" + state: str | None = ... + """The state of the Reserved Instance purchase.""" + +@dataclass(kw_only=True) +class ReservedInstancesConfiguration(_SerdeShape): + """ + Describes the configuration settings for the modified Reserved + Instances. + """ + + availability_zone: str | None = ... + """The Availability Zone for the modified Reserved Instances.""" + instance_count: int | None = ... + """ + The number of modified Reserved Instances. + + Note: + This is a required field for a request. + """ + instance_type: str | None = ... + """The instance type for the modified Reserved Instances.""" + platform: str | None = ... + """The network platform of the modified Reserved Instances.""" + scope: str | None = ... + """ + Whether the Reserved Instance is applied to instances in a Region or + instances in a specific Availability Zone. + """ + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + +@dataclass(kw_only=True) +class ReservedInstancesId(_SerdeShape): + """Describes the ID of a Reserved Instance.""" + + reserved_instances_id: str | None = ... + """The ID of the Reserved Instance.""" + +@dataclass(kw_only=True) +class ReservedInstancesListing(_SerdeShape): + """Describes a Reserved Instance listing.""" + + client_token: str | None = ... + """ + A unique, case-sensitive key supplied by the client to ensure that the + request is idempotent. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + create_date: datetime | None = ... + """The time the listing was created.""" + instance_counts: list[InstanceCount] | None = ... + """The number of instances in this state.""" + price_schedules: list[PriceSchedule] | None = ... + """The price of the Reserved Instance listing.""" + reserved_instances_id: str | None = ... + """The ID of the Reserved Instance.""" + reserved_instances_listing_id: str | None = ... + """The ID of the Reserved Instance listing.""" + status: str | None = ... + """The status of the Reserved Instance listing.""" + status_message: str | None = ... + """ + The reason for the current status of the Reserved Instance listing. The + response can be blank. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the resource.""" + update_date: datetime | None = ... + """The last modified timestamp of the listing.""" + +@dataclass(kw_only=True) +class ReservedInstancesModification(_SerdeShape): + """Describes a Reserved Instance modification.""" + + client_token: str | None = ... + """ + A unique, case-sensitive key supplied by the client to ensure that the + request is idempotent. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + create_date: datetime | None = ... + """The time when the modification request was created.""" + effective_date: datetime | None = ... + """The time for the modification to become effective.""" + modification_results: list[ReservedInstancesModificationResult] | None = ... + """ + Contains target configurations along with their corresponding new + Reserved Instance IDs. + """ + reserved_instances_ids: list[ReservedInstancesId] | None = ... + """The IDs of one or more Reserved Instances.""" + reserved_instances_modification_id: str | None = ... + """A unique ID for the Reserved Instance modification.""" + status: str | None = ... + """The status of the Reserved Instances modification request.""" + status_message: str | None = ... + """The reason for the status.""" + update_date: datetime | None = ... + """The time when the modification request was last updated.""" + +@dataclass(kw_only=True) +class ReservedInstancesModificationResult(_SerdeShape): + """Describes the modification request/s.""" + + reserved_instances_id: str | None = ... + """ + The ID for the Reserved Instances that were created as part of the + modification request. This field is only available when the modification + is fulfilled. + """ + target_configuration: ReservedInstancesConfiguration | None = ... + """ + The target Reserved Instances configurations supplied as part of the + modification request. + """ + +@dataclass(kw_only=True) +class ReservedInstancesOffering(_SerdeShape): + """Describes a Reserved Instance offering.""" + + currency_code: str | None = ... + """ + The currency of the Reserved Instance offering you are purchasing. It's + specified using ISO 4217 standard currency codes. At this time, the only + supported currency is `USD`. + """ + instance_tenancy: str | None = ... + """The tenancy of the instance.""" + marketplace: bool | None = ... + """ + Indicates whether the offering is available through the Reserved + Instance Marketplace (resale) or Amazon Web Services. If it's a + Reserved Instance Marketplace offering, this is `true`. + """ + offering_class: str | None = ... + """ + If `convertible` it can be exchanged for Reserved Instances of the same + or higher monetary value, with different configurations. If `standard`, + it is not possible to perform an exchange. + """ + offering_type: str | None = ... + """The Reserved Instance offering type.""" + pricing_details: list[PricingDetail] | None = ... + """The pricing details of the Reserved Instance offering.""" + recurring_charges: list[RecurringCharge] | None = ... + """The recurring charge tag assigned to the resource.""" + scope: str | None = ... + """ + Whether the Reserved Instance is applied to instances in a Region or an + Availability Zone. + """ + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + reserved_instances_offering_id: str | None = ... + """ + The ID of the Reserved Instance offering. This is the offering ID used + in GetReservedInstancesExchangeQuote to confirm that an exchange can be + made. + """ + instance_type: str | None = ... + """The instance type on which the Reserved Instance can be used.""" + availability_zone: str | None = ... + """The Availability Zone in which the Reserved Instance can be used.""" + duration: int | None = ... + """The duration of the Reserved Instance, in seconds.""" + usage_price: float | None = ... + """The usage price of the Reserved Instance, per hour.""" + fixed_price: float | None = ... + """The purchase price of the Reserved Instance.""" + product_description: str | None = ... + """The Reserved Instance product platform description.""" + +class ReservedInstanceState(UnknownEnumMixin, StrEnum): + PAYMENT_PENDING = "payment-pending" + ACTIVE = "active" + PAYMENT_FAILED = "payment-failed" + RETIRED = "retired" + QUEUED = "queued" + QUEUED_DELETED = "queued-deleted" + +@dataclass(kw_only=True) +class ResetAddressAttributeInput(_SerdeShape): + """Dataclass for ResetAddressAttributeInput structure.""" + + allocation_id: str | None = ... + """[EC2-VPC] The allocation ID.""" + attribute: str | None = ... + """The attribute of the IP address.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ResetAddressAttributeOutput(_SerdeShape): + """Dataclass for ResetAddressAttributeOutput structure.""" + + address: AddressAttribute | None = ... + """Information about the IP address.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetEbsDefaultKmsKeyIdInput(_SerdeShape): + """Dataclass for ResetEbsDefaultKmsKeyIdInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ResetEbsDefaultKmsKeyIdOutput(_SerdeShape): + """Dataclass for ResetEbsDefaultKmsKeyIdOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the default KMS key for EBS encryption + by default. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetFpgaImageAttributeInput(_SerdeShape): + """Dataclass for ResetFpgaImageAttributeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + fpga_image_id: str | None = ... + """The ID of the AFI.""" + attribute: str | None = ... + """The attribute.""" + +class ResetFpgaImageAttributeName(UnknownEnumMixin, StrEnum): + LOAD_PERMISSION = "loadPermission" + +@dataclass(kw_only=True) +class ResetFpgaImageAttributeOutput(_SerdeShape): + """Dataclass for ResetFpgaImageAttributeOutput structure.""" + + return_: bool | None = ... + """Is `true` if the request succeeds, and an error otherwise.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetImageAttributeInput(_SerdeShape): + """Contains the parameters for ResetImageAttribute.""" + + attribute: str | None = ... + """ + The attribute to reset (currently you can only reset the launch + permission attribute). + """ + image_id: str | None = ... + """The ID of the AMI.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +class ResetImageAttributeName(UnknownEnumMixin, StrEnum): + LAUNCH_PERMISSION = "launchPermission" + +@dataclass(kw_only=True) +class ResetImageAttributeOutput(_SerdeShape): + """Dataclass for ResetImageAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetInstanceAttributeInput(_SerdeShape): + """Dataclass for ResetInstanceAttributeInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + instance_id: str | None = ... + """The ID of the instance.""" + attribute: str | None = ... + """ + The attribute to reset. + + Warning: + You can only reset the following attributes: `kernel` | `ramdisk` | + `sourceDestCheck`. + """ + +@dataclass(kw_only=True) +class ResetInstanceAttributeOutput(_SerdeShape): + """Dataclass for ResetInstanceAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetNetworkInterfaceAttributeInput(_SerdeShape): + """Contains the parameters for ResetNetworkInterfaceAttribute.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + network_interface_id: str | None = ... + """The ID of the network interface.""" + source_dest_check: str | None = ... + """The source/destination checking attribute. Resets the value to `true`.""" + +@dataclass(kw_only=True) +class ResetNetworkInterfaceAttributeOutput(_SerdeShape): + """Dataclass for ResetNetworkInterfaceAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetSnapshotAttributeInput(_SerdeShape): + """Dataclass for ResetSnapshotAttributeInput structure.""" + + attribute: str | None = ... + """ + The attribute to reset. Currently, only the attribute for permission to + create volumes can be reset. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ResetSnapshotAttributeOutput(_SerdeShape): + """Dataclass for ResetSnapshotAttributeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceStatement(_SerdeShape): + """Describes a resource statement.""" + + resources: list[str] | None = ... + """The resources.""" + resource_types: list[str] | None = ... + """The resource types.""" + +@dataclass(kw_only=True) +class ResourceStatementRequest(_SerdeShape): + """Describes a resource statement.""" + + resources: list[str] | None = ... + """The resources.""" + resource_types: list[str] | None = ... + """The resource types.""" + +class ResourceType(UnknownEnumMixin, StrEnum): + CAPACITY_RESERVATION = "capacity-reservation" + CLIENT_VPN_ENDPOINT = "client-vpn-endpoint" + CUSTOMER_GATEWAY = "customer-gateway" + CARRIER_GATEWAY = "carrier-gateway" + COIP_POOL = "coip-pool" + DECLARATIVE_POLICIES_REPORT = "declarative-policies-report" + DEDICATED_HOST = "dedicated-host" + DHCP_OPTIONS = "dhcp-options" + EGRESS_ONLY_INTERNET_GATEWAY = "egress-only-internet-gateway" + ELASTIC_IP = "elastic-ip" + ELASTIC_GPU = "elastic-gpu" + EXPORT_IMAGE_TASK = "export-image-task" + EXPORT_INSTANCE_TASK = "export-instance-task" + FLEET = "fleet" + FPGA_IMAGE = "fpga-image" + HOST_RESERVATION = "host-reservation" + IMAGE = "image" + IMAGE_USAGE_REPORT = "image-usage-report" + IMPORT_IMAGE_TASK = "import-image-task" + IMPORT_SNAPSHOT_TASK = "import-snapshot-task" + INSTANCE = "instance" + INSTANCE_EVENT_WINDOW = "instance-event-window" + INTERNET_GATEWAY = "internet-gateway" + IPAM = "ipam" + IPAM_POOL = "ipam-pool" + IPAM_SCOPE = "ipam-scope" + IPV4POOL_EC2 = "ipv4pool-ec2" + IPV6POOL_EC2 = "ipv6pool-ec2" + KEY_PAIR = "key-pair" + LAUNCH_TEMPLATE = "launch-template" + LOCAL_GATEWAY = "local-gateway" + LOCAL_GATEWAY_ROUTE_TABLE = "local-gateway-route-table" + LOCAL_GATEWAY_VIRTUAL_INTERFACE = "local-gateway-virtual-interface" + LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP = "local-gateway-virtual-interface-group" + LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION = ( + "local-gateway-route-table-vpc-association" + ) + LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION = ( + "local-gateway-route-table-virtual-interface-group-association" + ) + NATGATEWAY = "natgateway" + NETWORK_ACL = "network-acl" + NETWORK_INTERFACE = "network-interface" + NETWORK_INSIGHTS_ANALYSIS = "network-insights-analysis" + NETWORK_INSIGHTS_PATH = "network-insights-path" + NETWORK_INSIGHTS_ACCESS_SCOPE = "network-insights-access-scope" + NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS = "network-insights-access-scope-analysis" + OUTPOST_LAG = "outpost-lag" + PLACEMENT_GROUP = "placement-group" + PREFIX_LIST = "prefix-list" + REPLACE_ROOT_VOLUME_TASK = "replace-root-volume-task" + RESERVED_INSTANCES = "reserved-instances" + ROUTE_TABLE = "route-table" + SECURITY_GROUP = "security-group" + SECURITY_GROUP_RULE = "security-group-rule" + SERVICE_LINK_VIRTUAL_INTERFACE = "service-link-virtual-interface" + SNAPSHOT = "snapshot" + SPOT_FLEET_REQUEST = "spot-fleet-request" + SPOT_INSTANCES_REQUEST = "spot-instances-request" + SUBNET = "subnet" + SUBNET_CIDR_RESERVATION = "subnet-cidr-reservation" + TRAFFIC_MIRROR_FILTER = "traffic-mirror-filter" + TRAFFIC_MIRROR_SESSION = "traffic-mirror-session" + TRAFFIC_MIRROR_TARGET = "traffic-mirror-target" + TRANSIT_GATEWAY = "transit-gateway" + TRANSIT_GATEWAY_ATTACHMENT = "transit-gateway-attachment" + TRANSIT_GATEWAY_CONNECT_PEER = "transit-gateway-connect-peer" + TRANSIT_GATEWAY_MULTICAST_DOMAIN = "transit-gateway-multicast-domain" + TRANSIT_GATEWAY_POLICY_TABLE = "transit-gateway-policy-table" + TRANSIT_GATEWAY_METERING_POLICY = "transit-gateway-metering-policy" + TRANSIT_GATEWAY_ROUTE_TABLE = "transit-gateway-route-table" + TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT = ( + "transit-gateway-route-table-announcement" + ) + VOLUME = "volume" + VPC = "vpc" + VPC_ENDPOINT = "vpc-endpoint" + VPC_ENDPOINT_CONNECTION = "vpc-endpoint-connection" + VPC_ENDPOINT_SERVICE = "vpc-endpoint-service" + VPC_ENDPOINT_SERVICE_PERMISSION = "vpc-endpoint-service-permission" + VPC_PEERING_CONNECTION = "vpc-peering-connection" + VPN_CONNECTION = "vpn-connection" + VPN_GATEWAY = "vpn-gateway" + VPC_FLOW_LOG = "vpc-flow-log" + CAPACITY_RESERVATION_FLEET = "capacity-reservation-fleet" + TRAFFIC_MIRROR_FILTER_RULE = "traffic-mirror-filter-rule" + VPC_ENDPOINT_CONNECTION_DEVICE_TYPE = "vpc-endpoint-connection-device-type" + VERIFIED_ACCESS_INSTANCE = "verified-access-instance" + VERIFIED_ACCESS_GROUP = "verified-access-group" + VERIFIED_ACCESS_ENDPOINT = "verified-access-endpoint" + VERIFIED_ACCESS_POLICY = "verified-access-policy" + VERIFIED_ACCESS_TRUST_PROVIDER = "verified-access-trust-provider" + VPN_CONNECTION_DEVICE_TYPE = "vpn-connection-device-type" + VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION = "vpc-block-public-access-exclusion" + VPC_ENCRYPTION_CONTROL = "vpc-encryption-control" + ROUTE_SERVER = "route-server" + ROUTE_SERVER_ENDPOINT = "route-server-endpoint" + ROUTE_SERVER_PEER = "route-server-peer" + IPAM_RESOURCE_DISCOVERY = "ipam-resource-discovery" + IPAM_RESOURCE_DISCOVERY_ASSOCIATION = "ipam-resource-discovery-association" + INSTANCE_CONNECT_ENDPOINT = "instance-connect-endpoint" + VERIFIED_ACCESS_ENDPOINT_TARGET = "verified-access-endpoint-target" + IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN = ( + "ipam-external-resource-verification-token" + ) + CAPACITY_BLOCK = "capacity-block" + MAC_MODIFICATION_TASK = "mac-modification-task" + IPAM_PREFIX_LIST_RESOLVER = "ipam-prefix-list-resolver" + IPAM_POLICY = "ipam-policy" + IPAM_PREFIX_LIST_RESOLVER_TARGET = "ipam-prefix-list-resolver-target" + IPAM_INTERNET_REGISTRY_ASSOCIATION = "ipam-internet-registry-association" + SECONDARY_INTERFACE = "secondary-interface" + SECONDARY_NETWORK = "secondary-network" + SECONDARY_SUBNET = "secondary-subnet" + CAPACITY_MANAGER_DATA_EXPORT = "capacity-manager-data-export" + VPN_CONCENTRATOR = "vpn-concentrator" + IPAM_POOL_ALLOCATION = "ipam-pool-allocation" + CAPACITY_RESERVATION_CANCELLATION_QUOTE = "capacity-reservation-cancellation-quote" + APPLICATION_STATUS_CHECK = "application-status-check" + CAPACITY_RESERVATION_MODIFICATION_QUOTE = "capacity-reservation-modification-quote" + +@dataclass(kw_only=True) +class ResourceTypeOption(_SerdeShape): + """The options that affect the scope of the response.""" + + option_name: str | None = ... + """ + The name of the option. + + - For `ec2:Instance`: + + Specify `state-name` - The current state of the EC2 instance. + + - For `ec2:LaunchTemplate`: + + Specify `version-depth` - The number of launch template versions to + check, starting from the most recent version. + """ + option_values: list[str] | None = ... + """ + A value for the specified option. + + - For `state-name`: + + - Valid values: `pending` | `running` | `shutting-down` | + `terminated` | `stopping` | `stopped` + + - Default: All states + + - For `version-depth`: + + - Valid values: Integers between `1` and `10000` + + - Default: `10` + """ + +@dataclass(kw_only=True) +class ResourceTypeRequest(_SerdeShape): + """ + A resource type to check for image references. Associated options can + also be specified if the resource type is an EC2 instance or launch + template. + """ + + resource_type: str | None = ... + """The resource type.""" + resource_type_options: list[ResourceTypeOption] | None = ... + """ + The options that affect the scope of the response. Valid only when + `ResourceType` is `ec2:Instance` or `ec2:LaunchTemplate`. + """ + +@dataclass(kw_only=True) +class ResponseError(_SerdeShape): + """ + Describes the error that's returned when you cannot delete a launch + template version. + """ + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message, if applicable.""" + +@dataclass(kw_only=True) +class ResponseLaunchTemplateData(_SerdeShape): + """The information for a launch template.""" + + kernel_id: str | None = ... + """The ID of the kernel, if applicable.""" + ebs_optimized: bool | None = ... + """Indicates whether the instance is optimized for Amazon EBS I/O.""" + iam_instance_profile: LaunchTemplateIamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + block_device_mappings: list[LaunchTemplateBlockDeviceMapping] | None = ... + """The block device mappings.""" + network_interfaces: ( + list[LaunchTemplateInstanceNetworkInterfaceSpecification] | None + ) = ... + """The network interfaces.""" + image_id: str | None = ... + """ + The ID of the AMI or a Systems Manager parameter. The Systems Manager + parameter will resolve to the ID of the AMI at instance launch. + + The value depends on what you specified in the request. The possible + values are: + + - If an AMI ID was specified in the request, then this is the AMI ID. + + - If a Systems Manager parameter was specified in the request, and + `ResolveAlias` was configured as `true`, then this is the AMI ID that + the parameter is mapped to in the Parameter Store. + + - If a Systems Manager parameter was specified in the request, and + `ResolveAlias` was configured as `false`, then this is the parameter + value. + + For more information, see [Use a Systems Manager parameter instead of an + AMI + ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + in the *Amazon EC2 User Guide*. + """ + instance_type: str | None = ... + """The instance type.""" + key_name: str | None = ... + """The name of the key pair.""" + monitoring: LaunchTemplatesMonitoring | None = ... + """The monitoring for the instance.""" + placement: LaunchTemplatePlacement | None = ... + """The placement of the instance.""" + ram_disk_id: str | None = ... + """The ID of the RAM disk, if applicable.""" + disable_api_termination: bool | None = ... + """ + If set to `true`, indicates that the instance cannot be terminated using + the Amazon EC2 console, command line tool, or API. + """ + instance_initiated_shutdown_behavior: str | None = ... + """ + Indicates whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + """ + user_data: str | None = ... + """The user data for the instance.""" + tag_specifications: list[LaunchTemplateTagSpecification] | None = ... + """ + The tags that are applied to the resources that are created during + instance launch. + """ + elastic_gpu_specifications: list[ElasticGpuSpecificationResponse] | None = ... + """ + Deprecated. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + elastic_inference_accelerators: ( + list[LaunchTemplateElasticInferenceAcceleratorResponse] | None + ) = ... + """ + Note: + Amazon Elastic Inference is no longer available. + + An elastic inference accelerator to associate with the instance. Elastic + inference accelerators are a resource you can attach to your Amazon EC2 + instances to accelerate your Deep Learning (DL) inference workloads. + + You cannot specify accelerators from different generations in the same + request. + """ + security_group_ids: list[str] | None = ... + """The security group IDs.""" + security_groups: list[str] | None = ... + """The security group names.""" + instance_market_options: LaunchTemplateInstanceMarketOptions | None = ... + """The market (purchasing) option for the instances.""" + credit_specification: CreditSpecification | None = ... + """The credit option for CPU usage of the instance.""" + cpu_options: LaunchTemplateCpuOptions | None = ... + """ + The CPU options for the instance. For more information, see [CPU options + for Amazon EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) + in the *Amazon EC2 User Guide*. + """ + capacity_reservation_specification: ( + LaunchTemplateCapacityReservationSpecificationResponse | None + ) = ... + """Information about the Capacity Reservation targeting option.""" + license_specifications: list[LaunchTemplateLicenseConfiguration] | None = ... + """The license configurations.""" + hibernation_options: LaunchTemplateHibernationOptions | None = ... + """ + Indicates whether an instance is configured for hibernation. For more + information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + """ + metadata_options: LaunchTemplateInstanceMetadataOptions | None = ... + """ + The metadata options for the instance. For more information, see + [Configure the Instance Metadata Service + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html) + in the *Amazon EC2 User Guide*. + """ + enclave_options: LaunchTemplateEnclaveOptions | None = ... + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. + """ + instance_requirements: InstanceRequirements | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with these + attributes. + + If you specify `InstanceRequirements`, you can't specify + `InstanceTypes`. + """ + private_dns_name_options: LaunchTemplatePrivateDnsNameOptions | None = ... + """The options for the instance hostname.""" + maintenance_options: LaunchTemplateInstanceMaintenanceOptions | None = ... + """The maintenance options for your instance.""" + disable_api_stop: bool | None = ... + """ + Indicates whether the instance is enabled for stop protection. For more + information, see [Enable stop protection for your EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) + in the *Amazon EC2 User Guide*. + """ + operator: OperatorResponse | None = ... + """The entity that manages the launch template.""" + network_performance_options: LaunchTemplateNetworkPerformanceOptions | None = ... + """ + Contains the launch template settings for network performance options + for your instance. + """ + secondary_interfaces: ( + list[LaunchTemplateInstanceSecondaryInterfaceSpecification] | None + ) = ... + """The secondary interfaces associated with the launch template.""" + +@dataclass(kw_only=True) +class RestoreAddressToClassicInput(_SerdeShape): + """Dataclass for RestoreAddressToClassicInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + public_ip: str | None = ... + """The Elastic IP address.""" + +@dataclass(kw_only=True) +class RestoreAddressToClassicOutput(_SerdeShape): + """Dataclass for RestoreAddressToClassicOutput structure.""" + + public_ip: str | None = ... + """The Elastic IP address.""" + status: str | None = ... + """The move status for the IP address.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreImageFromRecycleBinInput(_SerdeShape): + """Dataclass for RestoreImageFromRecycleBinInput structure.""" + + image_id: str | None = ... + """The ID of the AMI to restore.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RestoreImageFromRecycleBinOutput(_SerdeShape): + """Dataclass for RestoreImageFromRecycleBinOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreManagedPrefixListVersionInput(_SerdeShape): + """Dataclass for RestoreManagedPrefixListVersionInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + previous_version: int | None = ... + """The version to restore.""" + current_version: int | None = ... + """The current version number for the prefix list.""" + +@dataclass(kw_only=True) +class RestoreManagedPrefixListVersionOutput(_SerdeShape): + """Dataclass for RestoreManagedPrefixListVersionOutput structure.""" + + prefix_list: ManagedPrefixList | None = ... + """Information about the prefix list.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreSnapshotFromRecycleBinInput(_SerdeShape): + """Dataclass for RestoreSnapshotFromRecycleBinInput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot to restore.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RestoreSnapshotFromRecycleBinOutput(_SerdeShape): + """Dataclass for RestoreSnapshotFromRecycleBinOutput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the snapshot is stored. For more + information, see [Amazon EBS local snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html) + in the *Amazon EBS User Guide*. + """ + description: str | None = ... + """The description for the snapshot.""" + encrypted: bool | None = ... + """Indicates whether the snapshot is encrypted.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the EBS snapshot.""" + progress: str | None = ... + """The progress of the snapshot, as a percentage.""" + start_time: datetime | None = ... + """The time stamp when the snapshot was initiated.""" + state: str | None = ... + """The state of the snapshot.""" + volume_id: str | None = ... + """The ID of the volume that was used to create the snapshot.""" + volume_size: int | None = ... + """The size of the volume, in GiB.""" + sse_type: str | None = ... + """Reserved for future use.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreSnapshotTierInput(_SerdeShape): + """Dataclass for RestoreSnapshotTierInput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot to restore.""" + temporary_restore_days: int | None = ... + """ + Specifies the number of days for which to temporarily restore an + archived snapshot. Required for temporary restores only. The snapshot + will be automatically re-archived after this period. + + To temporarily restore an archived snapshot, specify the number of days + and omit the **PermanentRestore** parameter or set it to `false`. + """ + permanent_restore: bool | None = ... + """ + Indicates whether to permanently restore an archived snapshot. To + permanently restore an archived snapshot, specify `true` and omit the + **RestoreSnapshotTierRequest$TemporaryRestoreDays** parameter. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RestoreSnapshotTierOutput(_SerdeShape): + """Dataclass for RestoreSnapshotTierOutput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + restore_start_time: datetime | None = ... + """The date and time when the snapshot restore process started.""" + restore_duration: int | None = ... + """ + For temporary restores only. The number of days for which the archived + snapshot is temporarily restored. + """ + is_permanent_restore: bool | None = ... + """ + Indicates whether the snapshot is permanently restored. `true` indicates + a permanent restore. `false` indicates a temporary restore. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreVolumeFromRecycleBinInput(_SerdeShape): + """Dataclass for RestoreVolumeFromRecycleBinInput structure.""" + + volume_id: str | None = ... + """The ID of the volume to restore.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RestoreVolumeFromRecycleBinOutput(_SerdeShape): + """Dataclass for RestoreVolumeFromRecycleBinOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokeClientVpnIngressInput(_SerdeShape): + """Dataclass for RevokeClientVpnIngressInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """ + The ID of the Client VPN endpoint with which the authorization rule is + associated. + """ + target_network_cidr: str | None = ... + """ + The IPv4 address range, in CIDR notation, of the network for which + access is being removed. + """ + access_group_id: str | None = ... + """The ID of the Active Directory group for which to revoke access.""" + revoke_all_groups: bool | None = ... + """ + Indicates whether access should be revoked for all groups for a single + `TargetNetworkCidr` that earlier authorized ingress for all groups using + `AuthorizeAllGroups`. This does not impact other authorization rules + that allowed ingress to the same `TargetNetworkCidr` with a specific + `AccessGroupId`. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RevokeClientVpnIngressOutput(_SerdeShape): + """Dataclass for RevokeClientVpnIngressOutput structure.""" + + status: ClientVpnAuthorizationRuleStatus | None = ... + """The current state of the authorization rule.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokedSecurityGroupRule(_SerdeShape): + """ + A security group rule removed with + [RevokeSecurityGroupEgress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RevokeSecurityGroupEgress.html) + or + [RevokeSecurityGroupIngress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RevokeSecurityGroupIngress.html). + """ + + security_group_rule_id: str | None = ... + """A security group rule ID.""" + group_id: str | None = ... + """A security group ID.""" + is_egress: bool | None = ... + """Defines if a security group rule is an outbound rule.""" + ip_protocol: str | None = ... + """The security group rule's protocol.""" + from_port: int | None = ... + """The 'from' port number of the security group rule.""" + to_port: int | None = ... + """The 'to' port number of the security group rule.""" + cidr_ipv4: str | None = ... + """The IPv4 CIDR of the traffic source.""" + cidr_ipv6: str | None = ... + """The IPv6 CIDR of the traffic source.""" + prefix_list_id: str | None = ... + """The ID of a prefix list that's the traffic source.""" + referenced_group_id: str | None = ... + """The ID of a referenced security group.""" + description: str | None = ... + """A description of the revoked security group rule.""" + +@dataclass(kw_only=True) +class RevokeSecurityGroupEgressInput(_SerdeShape): + """Dataclass for RevokeSecurityGroupEgressInput structure.""" + + security_group_rule_ids: list[str] | None = ... + """The IDs of the security group rules.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + group_id: str | None = ... + """The ID of the security group.""" + source_security_group_name: str | None = ... + """ + Not supported. Use a set of IP permissions to specify a destination + security group. + """ + source_security_group_owner_id: str | None = ... + """ + Not supported. Use a set of IP permissions to specify a destination + security group. + """ + ip_protocol: str | None = ... + """ + Not supported. Use a set of IP permissions to specify the protocol name + or number. + """ + from_port: int | None = ... + """Not supported. Use a set of IP permissions to specify the port.""" + to_port: int | None = ... + """Not supported. Use a set of IP permissions to specify the port.""" + cidr_ip: str | None = ... + """Not supported. Use a set of IP permissions to specify the CIDR.""" + ip_permissions: list[IpPermission] | None = ... + """ + The sets of IP permissions. You can't specify a destination security + group and a CIDR IP address range in the same set of permissions. + """ + +@dataclass(kw_only=True) +class RevokeSecurityGroupEgressOutput(_SerdeShape): + """Dataclass for RevokeSecurityGroupEgressOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + unknown_ip_permissions: list[IpPermission] | None = ... + """ + The outbound rules that were unknown to the service. In some cases, + `unknownIpPermissionSet` might be in a different format from the request + parameter. + """ + revoked_security_group_rules: list[RevokedSecurityGroupRule] | None = ... + """Details about the revoked security group rules.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokeSecurityGroupIngressInput(_SerdeShape): + """Dataclass for RevokeSecurityGroupIngressInput structure.""" + + cidr_ip: str | None = ... + """ + The CIDR IP address range. You can't specify this parameter when + specifying a source security group. + """ + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP, this is the ICMP type or -1 (all ICMP types). + """ + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """ + [Default VPC] The name of the security group. You must specify either + the security group ID or the security group name in the request. For + security groups in a nondefault VPC, you must specify the security group + ID. + """ + ip_permissions: list[IpPermission] | None = ... + """ + The sets of IP permissions. You can't specify a source security group + and a CIDR IP address range in the same set of permissions. + """ + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`) or number (see [Protocol + Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + Use `-1` to specify all. + """ + source_security_group_name: str | None = ... + """ + [Default VPC] The name of the source security group. You can't + specify this parameter in combination with the following parameters: the + CIDR IP address range, the start of the port range, the IP protocol, and + the end of the port range. The source security group must be in the same + VPC. To revoke a specific rule for an IP protocol and port range, use a + set of IP permissions instead. + """ + source_security_group_owner_id: str | None = ... + """Not supported.""" + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP, this is the ICMP code or -1 (all ICMP codes). + """ + security_group_rule_ids: list[str] | None = ... + """The IDs of the security group rules.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class RevokeSecurityGroupIngressOutput(_SerdeShape): + """Dataclass for RevokeSecurityGroupIngressOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + unknown_ip_permissions: list[IpPermission] | None = ... + """ + The inbound rules that were unknown to the service. In some cases, + `unknownIpPermissionSet` might be in a different format from the request + parameter. + """ + revoked_security_group_rules: list[RevokedSecurityGroupRule] | None = ... + """Details about the revoked security group rules.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class RIProductDescription(UnknownEnumMixin, StrEnum): + LINUX_UNIX = "Linux/UNIX" + LINUX_UNIX_AMAZON_VPC_ = "Linux/UNIX (Amazon VPC)" + WINDOWS = "Windows" + WINDOWS_AMAZON_VPC_ = "Windows (Amazon VPC)" + +class Rir(UnknownEnumMixin, StrEnum): + """The Regional Internet Registry (RIR).""" + + RIPE = "ripe" + APNIC = "apnic" + ARIN = "arin" + LACNIC = "lacnic" + NICBR = "nicbr" + +class RootDeviceType(UnknownEnumMixin, StrEnum): + EBS = "ebs" + INSTANCE_STORE = "instance-store" + +@dataclass(kw_only=True) +class Route(_SerdeShape): + """Describes a route in a route table.""" + + destination_cidr_block: str | None = ... + """The IPv4 CIDR block used for the destination match.""" + destination_ipv6_cidr_block: str | None = ... + """The IPv6 CIDR block used for the destination match.""" + destination_prefix_list_id: str | None = ... + """The prefix of the Amazon Web Services service.""" + egress_only_internet_gateway_id: str | None = ... + """The ID of the egress-only internet gateway.""" + gateway_id: str | None = ... + """The ID of a gateway attached to your VPC.""" + instance_id: str | None = ... + """The ID of a NAT instance in your VPC.""" + instance_owner_id: str | None = ... + """The ID of Amazon Web Services account that owns the instance.""" + nat_gateway_id: str | None = ... + """The ID of a NAT gateway.""" + transit_gateway_id: str | None = ... + """The ID of a transit gateway.""" + local_gateway_id: str | None = ... + """The ID of the local gateway.""" + carrier_gateway_id: str | None = ... + """The ID of the carrier gateway.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + origin: str | None = ... + """ + Describes how the route was created. + + - `CreateRouteTable` - The route was automatically created when the + route table was created. + + - `CreateRoute` - The route was manually added to the route table. + + - `EnableVgwRoutePropagation` - The route was propagated by route + propagation. + + - `Advertisement` - The route was created dynamically by Amazon VPC + Route Server. + """ + state: str | None = ... + """ + The state of the route. The `blackhole` state indicates that the + route's target isn't available (for example, the specified gateway + isn't attached to the VPC, or the specified NAT instance has been + terminated). + """ + vpc_peering_connection_id: str | None = ... + """The ID of a VPC peering connection.""" + core_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the core network.""" + odb_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the ODB network.""" + ip_address: str | None = ... + """ + The next hop IP address for routes propagated by VPC Route Server into + VPC route tables. + """ + +class RouteOrigin(UnknownEnumMixin, StrEnum): + CREATE_ROUTE_TABLE = "CreateRouteTable" + CREATE_ROUTE = "CreateRoute" + ENABLE_VGW_ROUTE_PROPAGATION = "EnableVgwRoutePropagation" + ADVERTISEMENT = "Advertisement" + +@dataclass(kw_only=True) +class RouteServer(_SerdeShape): + """ + Describes a route server and its configuration. + + Amazon VPC Route Server simplifies routing for traffic between workloads + that are deployed within a VPC and its internet gateways. With this + feature, VPC Route Server dynamically updates VPC and internet gateway + route tables with your preferred IPv4 or IPv6 routes to achieve routing + fault tolerance for those workloads. This enables you to automatically + reroute traffic within a VPC, which increases the manageability of VPC + routing and interoperability with third-party workloads. + + Route server supports the follow route table types: + + - VPC route tables not associated with subnets + + - Subnet route tables + + - Internet gateway route tables + + Route server does not support route tables associated with virtual + private gateways. To propagate routes into a transit gateway route + table, use [Transit Gateway + Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html). + """ + + route_server_id: str | None = ... + """The unique identifier of the route server.""" + amazon_side_asn: int | None = ... + """ + The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the + appliance. Valid values are from 1 to 4294967295. We recommend using a + private ASN in the 64512--65534 (16-bit ASN) or 4200000000--4294967294 + (32-bit ASN) range. + """ + state: str | None = ... + """The current state of the route server.""" + tags: list[Tag] | None = ... + """Any tags assigned to the route server.""" + persist_routes_state: str | None = ... + """The current state of route persistence for the route server.""" + persist_routes_duration: int | None = ... + """ + The number of minutes a route server will wait after BGP is + re-established to unpersist the routes in the FIB and RIB. Value must be + in the range of 1-5. The default value is 1. Only valid if + `persistRoutesState` is 'enabled'. + + If you set the duration to 1 minute, then when your network appliance + re-establishes BGP with route server, it has 1 minute to relearn it's + adjacent network and advertise those routes to route server before route + server resumes normal functionality. In most cases, 1 minute is probably + sufficient. If, however, you have concerns that your BGP network may not + be capable of fully re-establishing and re-learning everything in 1 + minute, you can increase the duration up to 5 minutes. + """ + sns_notifications_enabled: bool | None = ... + """ + Indicates whether SNS notifications are enabled for the route server. + Enabling SNS notifications persists BGP status changes to an SNS topic + provisioned by Amazon Web Services. + """ + sns_topic_arn: str | None = ... + """The ARN of the SNS topic where notifications are published.""" + +@dataclass(kw_only=True) +class RouteServerAssociation(_SerdeShape): + """ + Describes the association between a route server and a VPC. + + A route server association is the connection established between a route + server and a VPC. + """ + + route_server_id: str | None = ... + """The ID of the associated route server.""" + vpc_id: str | None = ... + """The ID of the associated VPC.""" + state: str | None = ... + """The current state of the association.""" + +class RouteServerAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + +class RouteServerBfdState(UnknownEnumMixin, StrEnum): + UP = "up" + DOWN = "down" + +@dataclass(kw_only=True) +class RouteServerBfdStatus(_SerdeShape): + """ + The current status of Bidirectional Forwarding Detection (BFD) for a BGP + session. + """ + + status: str | None = ... + """The operational status of the BFD session.""" + +@dataclass(kw_only=True) +class RouteServerBgpOptions(_SerdeShape): + """The BGP configuration options for a route server peer.""" + + peer_asn: int | None = ... + """ + The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the + appliance. Valid values are from 1 to 4294967295. We recommend using a + private ASN in the 64512--65534 (16-bit ASN) or 4200000000--4294967294 + (32-bit ASN) range. + """ + peer_liveness_detection: str | None = ... + """ + The liveness detection protocol used for the BGP peer. + + The requested liveness detection protocol for the BGP peer. + + - `bgp-keepalive`: The standard BGP keep alive mechanism + ([RFC4271](https://www.rfc-editor.org/rfc/rfc4271#page-21)) that is + stable but may take longer to fail-over in cases of network impact or + router failure. + + - `bfd`: An additional Bidirectional Forwarding Detection (BFD) protocol + ([RFC5880](https://www.rfc-editor.org/rfc/rfc5880)) that enables fast + failover by using more sensitive liveness detection. + + Defaults to `bgp-keepalive`. + """ + +@dataclass(kw_only=True) +class RouteServerBgpOptionsRequest(_SerdeShape): + """The BGP configuration options requested for a route server peer.""" + + peer_asn: int | None = ... + """ + The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the + appliance. Valid values are from 1 to 4294967295. We recommend using a + private ASN in the 64512--65534 (16-bit ASN) or 4200000000--4294967294 + (32-bit ASN) range. + """ + peer_liveness_detection: str | None = ... + """ + The requested liveness detection protocol for the BGP peer. + + - `bgp-keepalive`: The standard BGP keep alive mechanism + ([RFC4271](https://www.rfc-editor.org/rfc/rfc4271#page-21)) that is + stable but may take longer to fail-over in cases of network impact or + router failure. + + - `bfd`: An additional Bidirectional Forwarding Detection (BFD) protocol + ([RFC5880](https://www.rfc-editor.org/rfc/rfc5880)) that enables fast + failover by using more sensitive liveness detection. + + Defaults to `bgp-keepalive`. + """ + +class RouteServerBgpState(UnknownEnumMixin, StrEnum): + UP = "up" + DOWN = "down" + +@dataclass(kw_only=True) +class RouteServerBgpStatus(_SerdeShape): + """The current status of a BGP session.""" + + status: str | None = ... + """ + The operational status of the BGP session. The status enables you to + monitor session liveness if you lack monitoring on your + router/appliance. + """ + +@dataclass(kw_only=True) +class RouteServerEndpoint(_SerdeShape): + """ + Describes a route server endpoint and its properties. + + A route server endpoint is an Amazon Web Services-managed component + inside a subnet that facilitates [BGP (Border Gateway + Protocol)](https://en.wikipedia.org/wiki/Border_Gateway_Protocol) + connections between your route server and your BGP peers. + """ + + route_server_id: str | None = ... + """The ID of the route server associated with this endpoint.""" + route_server_endpoint_id: str | None = ... + """The unique identifier of the route server endpoint.""" + vpc_id: str | None = ... + """The ID of the VPC containing the endpoint.""" + subnet_id: str | None = ... + """The ID of the subnet to place the route server endpoint into.""" + eni_id: str | None = ... + """The ID of the Elastic network interface for the endpoint.""" + eni_address: str | None = ... + """The IP address of the Elastic network interface for the endpoint.""" + state: str | None = ... + """The current state of the route server endpoint.""" + failure_reason: str | None = ... + """The reason for any failure in endpoint creation or operation.""" + tags: list[Tag] | None = ... + """Any tags assigned to the route server endpoint.""" + +class RouteServerEndpointState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + FAILING = "failing" + FAILED = "failed" + DELETE_FAILED = "delete-failed" + +@dataclass(kw_only=True) +class RouteServerPeer(_SerdeShape): + """ + Describes a BGP peer configuration for a route server endpoint. + + A route server peer is a session between a route server endpoint and the + device deployed in Amazon Web Services (such as a firewall appliance or + other network security function running on an EC2 instance). The device + must meet these requirements: + + - Have an elastic network interface in the VPC + + - Support BGP (Border Gateway Protocol) + + - Can initiate BGP sessions + """ + + route_server_peer_id: str | None = ... + """The unique identifier of the route server peer.""" + route_server_endpoint_id: str | None = ... + """The ID of the route server endpoint associated with this peer.""" + route_server_id: str | None = ... + """The ID of the route server associated with this peer.""" + vpc_id: str | None = ... + """The ID of the VPC containing the route server peer.""" + subnet_id: str | None = ... + """The ID of the subnet containing the route server peer.""" + state: str | None = ... + """The current state of the route server peer.""" + failure_reason: str | None = ... + """The reason for any failure in peer creation or operation.""" + endpoint_eni_id: str | None = ... + """The ID of the Elastic network interface for the route server endpoint.""" + endpoint_eni_address: str | None = ... + """ + The IP address of the Elastic network interface for the route server + endpoint. + """ + peer_address: str | None = ... + """The IPv4 address of the peer device.""" + bgp_options: RouteServerBgpOptions | None = ... + """ + The BGP configuration options for this peer, including ASN (Autonomous + System Number) and BFD (Bidrectional Forwarding Detection) settings. + """ + bgp_status: RouteServerBgpStatus | None = ... + """The current status of the BGP session with this peer.""" + bfd_status: RouteServerBfdStatus | None = ... + """The current status of the BFD session with this peer.""" + tags: list[Tag] | None = ... + """Any tags assigned to the route server peer.""" + +class RouteServerPeerLivenessMode(UnknownEnumMixin, StrEnum): + BFD = "bfd" + BGP_KEEPALIVE = "bgp-keepalive" + +class RouteServerPeerState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + FAILING = "failing" + FAILED = "failed" + +class RouteServerPersistRoutesAction(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + RESET = "reset" + +class RouteServerPersistRoutesState(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + ENABLED = "enabled" + RESETTING = "resetting" + DISABLING = "disabling" + DISABLED = "disabled" + MODIFYING = "modifying" + +@dataclass(kw_only=True) +class RouteServerPropagation(_SerdeShape): + """ + Describes the route propagation configuration between a route server and + a route table. + + When enabled, route server propagation installs the routes in the FIB on + the route table you've specified. Route server supports IPv4 and IPv6 + route propagation. + """ + + route_server_id: str | None = ... + """The ID of the route server configured for route propagation.""" + route_table_id: str | None = ... + """The ID of the route table configured for route server propagation.""" + state: str | None = ... + """The current state of route propagation.""" + +class RouteServerPropagationState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + +@dataclass(kw_only=True) +class RouteServerRoute(_SerdeShape): + """Describes a route in the route server's routing database.""" + + route_server_endpoint_id: str | None = ... + """The ID of the route server endpoint that received this route.""" + route_server_peer_id: str | None = ... + """The ID of the route server peer that advertised this route.""" + route_installation_details: list[RouteServerRouteInstallationDetail] | None = ... + """Details about the installation status of this route in route tables.""" + route_status: str | None = ... + """ + The current status of the route in the routing database. Values are + `in-rib` or `in-fib` depending on if the routes are in the RIB or the + FIB database. + + The [Routing Information Base + (RIB)](https://en.wikipedia.org/wiki/Routing_table) serves as a database + that stores all the routing information and network topology data + collected by a router or routing system, such as routes learned from BGP + peers. The RIB is constantly updated as new routing information is + received or existing routes change. This ensures that the route server + always has the most current view of the network topology and can make + optimal routing decisions. + + The [Forwarding Information Base + (FIB)](https://en.wikipedia.org/wiki/Forwarding_information_base) serves + as a forwarding table for what route server has determined are the + best-path routes in the RIB after evaluating all available routing + information and policies. The FIB routes are installed on the route + tables. The FIB is recomputed whenever there are changes to the RIB. + """ + prefix: str | None = ... + """The destination CIDR block of the route.""" + as_paths: list[str] | None = ... + """The AS path attributes of the BGP route.""" + med: int | None = ... + """The Multi-Exit Discriminator (MED) value of the BGP route.""" + next_hop_ip: str | None = ... + """The IP address for the next hop.""" + +@dataclass(kw_only=True) +class RouteServerRouteInstallationDetail(_SerdeShape): + """Describes the installation status of a route in a route table.""" + + route_table_id: str | None = ... + """The ID of the route table where the route is being installed.""" + route_installation_status: str | None = ... + """The current installation status of the route in the route table.""" + route_installation_status_reason: str | None = ... + """The reason for the current installation status of the route.""" + +class RouteServerRouteInstallationStatus(UnknownEnumMixin, StrEnum): + INSTALLED = "installed" + REJECTED = "rejected" + +class RouteServerRouteStatus(UnknownEnumMixin, StrEnum): + IN_RIB = "in-rib" + IN_FIB = "in-fib" + +class RouteServerState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + MODIFYING = "modifying" + DELETING = "deleting" + DELETED = "deleted" + +class RouteState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + BLACKHOLE = "blackhole" + FILTERED = "filtered" + +@dataclass(kw_only=True) +class RouteTable(_SerdeShape): + """Describes a route table.""" + + associations: list[RouteTableAssociation] | None = ... + """The associations between the route table and your subnets or gateways.""" + propagating_vgws: list[PropagatingVgw] | None = ... + """Any virtual private gateway (VGW) propagating routes.""" + route_table_id: str | None = ... + """The ID of the route table.""" + routes: list[Route] | None = ... + """The routes in the route table.""" + tags: list[Tag] | None = ... + """Any tags assigned to the route table.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the route table.""" + +@dataclass(kw_only=True) +class RouteTableAssociation(_SerdeShape): + """Describes an association between a route table and a subnet or gateway.""" + + main: bool | None = ... + """Indicates whether this is the main route table.""" + route_table_association_id: str | None = ... + """The ID of the association.""" + route_table_id: str | None = ... + """The ID of the route table.""" + subnet_id: str | None = ... + """ + The ID of the subnet. A subnet ID is not returned for an implicit + association. + """ + gateway_id: str | None = ... + """The ID of the internet gateway or virtual private gateway.""" + public_ipv4_pool: str | None = ... + """ + The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 + addresses that you've brought to Amazon Web Services with BYOIP. + """ + association_state: RouteTableAssociationState | None = ... + """The state of the association.""" + +@dataclass(kw_only=True) +class RouteTableAssociationState(_SerdeShape): + """ + Describes the state of an association between a route table and a subnet + or gateway. + """ + + state: str | None = ... + """The state of the association.""" + status_message: str | None = ... + """The status message, if applicable.""" + +class RouteTableAssociationStateCode(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + FAILED = "failed" + +class RuleAction(UnknownEnumMixin, StrEnum): + ALLOW = "allow" + DENY = "deny" + +@dataclass(kw_only=True) +class RuleGroupRuleOptionsPair(_SerdeShape): + """Describes the rule options for a stateful rule group.""" + + rule_group_arn: str | None = ... + """The ARN of the rule group.""" + rule_options: list[RuleOption] | None = ... + """The rule options.""" + +@dataclass(kw_only=True) +class RuleGroupTypePair(_SerdeShape): + """Describes the type of a stateful rule group.""" + + rule_group_arn: str | None = ... + """The ARN of the rule group.""" + rule_group_type: str | None = ... + """ + The rule group type. The possible values are `Domain List` and + `Suricata`. + """ + +@dataclass(kw_only=True) +class RuleOption(_SerdeShape): + """Describes additional settings for a stateful rule.""" + + keyword: str | None = ... + """The Suricata keyword.""" + settings: list[str] | None = ... + """The settings for the keyword.""" + +@dataclass(kw_only=True) +class RunInstancesInput(_SerdeShape): + """Dataclass for RunInstancesInput structure.""" + + block_device_mappings: list[BlockDeviceMapping] | None = ... + """ + The block device mapping, which defines the EBS volumes and instance + store volumes to attach to the instance at launch. For more information, + see [Block device + mappings](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) + in the *Amazon EC2 User Guide*. + """ + image_id: str | None = ... + """ + The ID of the AMI. An AMI ID is required to launch an instance and must + be specified here or in a launch template. + """ + instance_type: str | None = ... + """ + The instance type. For more information, see [Amazon EC2 Instance Types + Guide](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html). + """ + ipv6_address_count: int | None = ... + """ + The number of IPv6 addresses to associate with the primary network + interface. Amazon EC2 chooses the IPv6 addresses from the range of your + subnet. You cannot specify this option and the option to assign specific + IPv6 addresses in the same request. You can specify this option if + you've specified a minimum number of instances to launch. + + You cannot specify this option and the network interfaces option in the + same request. + """ + ipv6_addresses: list[InstanceIpv6Address] | None = ... + """ + The IPv6 addresses from the range of the subnet to associate with the + primary network interface. You cannot specify this option and the option + to assign a number of IPv6 addresses in the same request. You cannot + specify this option if you've specified a minimum number of instances + to launch. + + You cannot specify this option and the network interfaces option in the + same request. + """ + kernel_id: str | None = ... + """ + The ID of the kernel. + + Warning: + We recommend that you use PV-GRUB instead of kernels and RAM disks. For + more information, see + [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) + in the *Amazon EC2 User Guide*. + """ + key_name: str | None = ... + """ + The name of the key pair. For more information, see [Create a key pair + for your EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html). + + Warning: + If you do not specify a key pair, you can't connect to the instance + unless you choose an AMI that is configured to allow users another way + to log in. + """ + max_count: int | None = ... + """ + The maximum number of instances to launch. If you specify a value that + is more capacity than Amazon EC2 can launch in the target Availability + Zone, Amazon EC2 launches the largest possible number of instances above + the specified minimum count. + + Constraints: Between 1 and the quota for the specified instance type for + your account for this Region. For more information, see [Amazon EC2 + instance type + quotas](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html). + """ + min_count: int | None = ... + """ + The minimum number of instances to launch. If you specify a value that + is more capacity than Amazon EC2 can provide in the target Availability + Zone, Amazon EC2 does not launch any instances. + + Constraints: Between 1 and the quota for the specified instance type for + your account for this Region. For more information, see [Amazon EC2 + instance type + quotas](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html). + """ + monitoring: RunInstancesMonitoringEnabled | None = ... + """Specifies whether detailed monitoring is enabled for the instance.""" + placement: Placement | None = ... + """The placement for the instance.""" + ramdisk_id: str | None = ... + """ + The ID of the RAM disk to select. Some kernels require additional + drivers at launch. Check the kernel requirements for information about + whether you need to specify a RAM disk. To find kernel requirements, go + to the Amazon Web Services Resource Center and search for the kernel ID. + + Warning: + We recommend that you use PV-GRUB instead of kernels and RAM disks. For + more information, see + [PV-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) + in the *Amazon EC2 User Guide*. + """ + security_group_ids: list[str] | None = ... + """ + The IDs of the security groups. + + If you specify a network interface, you must specify any security groups + as part of the network interface instead of using this parameter. + """ + security_groups: list[str] | None = ... + """ + [Default VPC] The names of the security groups. + + If you specify a network interface, you must specify any security groups + as part of the network interface instead of using this parameter. + + Default: Amazon EC2 uses the default security group. + """ + subnet_id: str | None = ... + """ + The ID of the subnet to launch the instance into. + + If you specify a network interface, you must specify any subnets as part + of the network interface instead of using this parameter. + """ + user_data: str | None = ... + """ + The user data to make available to the instance. User data must be + base64-encoded. Depending on the tool or SDK that you're using, the + base64-encoding might be performed for you. For more information, see + [Run commands at launch using instance user + data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html). + """ + elastic_gpu_specification: list[ElasticGpuSpecification] | None = ... + """ + An elastic GPU to associate with the instance. + + Note: + Amazon Elastic Graphics reached end of life on January 8, 2024. + """ + elastic_inference_accelerators: list[ElasticInferenceAccelerator] | None = ... + """ + An elastic inference accelerator to associate with the instance. + + Note: + Amazon Elastic Inference is no longer available. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The tags to apply to the resources that are created during instance + launch. + + You can specify tags for the following resources only: + + - Instances + + - Volumes + + - Spot Instance requests + + - Network interfaces + + To tag a resource after it has been created, see + [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + """ + launch_template: LaunchTemplateSpecification | None = ... + """ + The launch template. Any additional parameters that you specify for the + new instance overwrite the corresponding parameters included in the + launch template. + """ + instance_market_options: InstanceMarketOptionsRequest | None = ... + """ + The market (purchasing) option for the instances. + + For RunInstances, persistent Spot Instance requests are only supported + when **InstanceInterruptionBehavior** is set to either `hibernate` or + `stop`. + """ + credit_specification: CreditSpecificationRequest | None = ... + """ + The credit option for CPU usage of the burstable performance instance. + Valid values are `standard` and `unlimited`. To change this attribute + after launch, use + [ModifyInstanceCreditSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html). + For more information, see [Burstable performance + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) + in the *Amazon EC2 User Guide*. + + Default: `standard` (T2 instances) or `unlimited` (T3/T3a/T4g instances) + + For T3 instances with `host` tenancy, only `standard` is supported. + """ + cpu_options: CpuOptionsRequest | None = ... + """ + The CPU options for the instance. For more information, see [Optimize + CPU + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) + in the *Amazon EC2 User Guide*. + """ + capacity_reservation_specification: CapacityReservationSpecification | None = ... + """ + Information about the Capacity Reservation targeting option. If you do + not specify this parameter, the instance's Capacity Reservation + preference defaults to `open`, which enables it to run in any open + Capacity Reservation that has matching attributes (instance type, + platform, Availability Zone, and tenancy). + """ + hibernation_options: HibernationOptionsRequest | None = ... + """ + Indicates whether an instance is enabled for hibernation. This parameter + is valid only if the instance meets the [hibernation + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). + For more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + + You can't enable hibernation and Amazon Web Services Nitro Enclaves on + the same instance. + """ + license_specifications: list[LicenseConfigurationRequest] | None = ... + """The license configurations.""" + metadata_options: InstanceMetadataOptionsRequest | None = ... + """ + The metadata options for the instance. For more information, see + [Configure the Instance Metadata Service + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html). + """ + enclave_options: EnclaveOptionsRequest | None = ... + """ + Indicates whether the instance is enabled for Amazon Web Services Nitro + Enclaves. For more information, see [Amazon Web Services Nitro Enclaves + User Guide](https://docs.aws.amazon.com/enclaves/latest/user/). + + You can't enable Amazon Web Services Nitro Enclaves and hibernation on + the same instance. + """ + private_dns_name_options: PrivateDnsNameOptionsRequest | None = ... + """ + The options for the instance hostname. The default values are inherited + from the subnet. Applies only if creating a network interface, not + attaching an existing one. + """ + maintenance_options: InstanceMaintenanceOptionsRequest | None = ... + """The maintenance and recovery options for the instance.""" + disable_api_stop: bool | None = ... + """ + Indicates whether an instance is enabled for stop protection. For more + information, see [Enable stop protection for your EC2 + instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html). + """ + enable_primary_ipv6: bool | None = ... + """ + If you're launching an instance into a dual-stack or IPv6-only subnet, + you can enable assigning a primary IPv6 address. A primary IPv6 address + is an IPv6 GUA address associated with an ENI that you have enabled to + use a primary IPv6 address. Use this option if an instance relies on its + IPv6 address not changing. When you launch the instance, Amazon Web + Services will automatically assign an IPv6 address associated with the + ENI attached to your instance to be the primary IPv6 address. Once you + enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. + When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 + GUA will be made the primary IPv6 address until the instance is + terminated or the network interface is detached. If you have multiple + IPv6 addresses associated with an ENI attached to your instance and you + enable a primary IPv6 address, the first IPv6 GUA address associated + with the ENI becomes the primary IPv6 address. + """ + network_performance_options: InstanceNetworkPerformanceOptionsRequest | None = ... + """Contains settings for the network performance options for the instance.""" + operator: OperatorRequest | None = ... + """Reserved for internal use.""" + secondary_interfaces: ( + list[InstanceSecondaryInterfaceSpecificationRequest] | None + ) = ... + """The secondary interfaces to associate with the instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + disable_api_termination: bool | None = ... + """ + Indicates whether termination protection is enabled for the instance. + The default is `false`, which means that you can terminate the instance + using the Amazon EC2 console, command line tools, or API. You can enable + termination protection when you launch an instance, while the instance + is running, or while the instance is stopped. + """ + instance_initiated_shutdown_behavior: str | None = ... + """ + Indicates whether an instance stops or terminates when you initiate + shutdown from the instance (using the operating system command for + system shutdown). + + Default: `stop` + """ + private_ip_address: str | None = ... + """ + The primary IPv4 address. You must specify a value from the IPv4 address + range of the subnet. + + Only one private IP address can be designated as primary. You can't + specify this option if you've specified the option to designate a + private IP address as the primary IP address in a network interface + specification. You cannot specify this option if you're launching more + than one instance in the request. + + You cannot specify this option and the network interfaces option in the + same request. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier you provide to ensure the idempotency + of the request. If you do not specify a client token, a randomly + generated token is used for the request to ensure idempotency. + + For more information, see [Ensuring idempotency in Amazon EC2 API + requests](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + + Constraints: Maximum 64 ASCII characters + """ + additional_info: str | None = ... + """Reserved.""" + network_interfaces: list[InstanceNetworkInterfaceSpecification] | None = ... + """The network interfaces to associate with the instance.""" + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The name or Amazon Resource Name (ARN) of an IAM instance profile.""" + ebs_optimized: bool | None = ... + """ + Indicates whether the instance is optimized for Amazon EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal Amazon EBS I/O + performance. This optimization isn't available with all instance types. + Additional usage charges apply when using an EBS-optimized instance. + + Default: `false` + """ + +@dataclass(kw_only=True) +class RunInstancesMonitoringEnabled(_SerdeShape): + """Describes the monitoring of an instance.""" + + enabled: bool | None = ... + """ + Indicates whether detailed monitoring is enabled. Otherwise, basic + monitoring is enabled. + """ + +@dataclass(kw_only=True) +class RunInstancesOutput(_SerdeShape): + """ + Describes a launch request for one or more instances, and includes + owner, requester, and security group information that applies to all + instances in the launch request. + """ + + reservation_id: str | None = ... + """The ID of the reservation.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the reservation.""" + requester_id: str | None = ... + """ + The ID of the requester that launched the instances on your behalf (for + example, Amazon Web Services Management Console or Auto Scaling). + """ + groups: list[GroupIdentifier] | None = ... + """Not supported.""" + instances: list[Instance] | None = ... + """The instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RunScheduledInstancesInput(_SerdeShape): + """Contains the parameters for RunScheduledInstances.""" + + client_token: str | None = ... + """ + Unique, case-sensitive identifier that ensures the idempotency of the + request. For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + instance_count: int | None = ... + """ + The number of instances. + + Default: 1 + """ + launch_specification: ScheduledInstancesLaunchSpecification | None = ... + """ + The launch specification. You must match the instance type, Availability + Zone, network, and platform of the schedule that you purchased. + """ + scheduled_instance_id: str | None = ... + """The Scheduled Instance ID.""" + +@dataclass(kw_only=True) +class RunScheduledInstancesOutput(_SerdeShape): + """Contains the output of RunScheduledInstances.""" + + instance_id_set: list[str] | None = ... + """The IDs of the newly launched instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class S3ObjectTag(_SerdeShape): + """ + The tags to apply to the AMI object that will be stored in the Amazon S3 + bucket. For more information, see [Categorizing your storage using + tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html) + in the *Amazon Simple Storage Service User Guide*. + """ + + key: str | None = ... + """ + The key of the tag. + + Constraints: Tag keys are case-sensitive and can be up to 128 Unicode + characters in length. May not begin with `aws`:. + """ + value: str | None = ... + """ + The value of the tag. + + Constraints: Tag values are case-sensitive and can be up to 256 Unicode + characters in length. + """ + +@dataclass(kw_only=True) +class S3Storage(_SerdeShape): + """ + Describes the storage parameters for Amazon S3 and Amazon S3 buckets for + an instance store-backed AMI. + """ + + aws_access_key_id: str | None = ... + """ + The access key ID of the owner of the bucket. Before you specify a value + for your access key ID, review and follow the guidance in [Best + Practices for Amazon Web Services + accounts](https://docs.aws.amazon.com/accounts/latest/reference/best-practices.html) + in the *Account ManagementReference Guide*. + """ + bucket: str | None = ... + """ + The bucket in which to store the AMI. You can specify a bucket that you + already own or a new bucket that Amazon EC2 creates on your behalf. If + you specify a bucket that belongs to someone else, Amazon EC2 returns an + error. + """ + prefix: str | None = ... + """The beginning of the file name of the AMI.""" + upload_policy: bytes | None = ... + """ + An Amazon S3 upload policy that gives Amazon EC2 permission to upload + items into Amazon S3 on your behalf. + """ + upload_policy_signature: str | None = ... + """The signature of the JSON document.""" + +@dataclass(kw_only=True) +class ScanResultCondition(_SerdeShape): + """ + The Amazon Inspector scan-result criteria that an AMI must meet to be + allowed. The criteria can limit the highest finding severity. They can + also limit, for each severity, the days since Amazon Inspector reported + a fix as available. + + The severity limit applies to all findings, whether or not a fix is + available. The day limits for each severity apply only to findings that + have a fix available. A scanned AMI that has no fix-available finding of + a given severity meets that severity's day limit. AMIs that Amazon + Inspector has not scanned are not allowed when you specify this + condition. + """ + + max_days_since_last_finding_scan: int | None = ... + """ + The maximum number of days that have elapsed since Amazon Inspector last + scanned the AMI. For example, a value of `7` allows AMIs that were + scanned within the last 7 days. AMIs that Amazon Inspector has not + scanned are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + maximum_severity_label: str | None = ... + """ + The maximum severity that an AMI's Amazon Inspector findings can have + for the AMI to be allowed. Findings count whether or not a fix is + available. For example, a value of `medium` allows AMIs whose highest + severity is `informational`, `low`, or `medium`. + + The valid values are the following Amazon Inspector severity levels, + which correspond to CVSS score ranges: + + - `informational` - CVSS score of 0. + + - `low` - CVSS score of 0.1 to 3.9. + + - `medium` - CVSS score of 4.0 to 6.9. + + - `high` - CVSS score of 7.0 to 8.9. + + - `critical` - CVSS score of 9.0 to 10.0. + + For more information, see [Software package vulnerability + severity](https://docs.aws.amazon.com/inspector/latest/user/findings-understanding-severity.html#findings-understanding-package-score) + in the *Amazon Inspector User Guide*. + + A scanned AMI that has no findings meets this limit. + + AMIs that Amazon Inspector has not scanned are not allowed when you + specify this condition. + """ + max_days_since_informational_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for an `informational` severity finding on the AMI. For + example, a value of `7` does not allow an AMI if Amazon Inspector + reported such a fix more than 7 days ago. + + A scanned AMI that has no `informational` severity finding with a fix + available meets this limit. AMIs that Amazon Inspector has not scanned + are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_low_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `low` severity finding on the AMI. For example, a value + of `7` does not allow an AMI if Amazon Inspector reported such a fix + more than 7 days ago. + + A scanned AMI that has no `low` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_medium_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `medium` severity finding on the AMI. For example, a + value of `7` does not allow an AMI if Amazon Inspector reported such a + fix more than 7 days ago. + + A scanned AMI that has no `medium` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_high_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `high` severity finding on the AMI. For example, a value + of `7` does not allow an AMI if Amazon Inspector reported such a fix + more than 7 days ago. + + A scanned AMI that has no `high` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_critical_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `critical` severity finding on the AMI. For example, a + value of `7` does not allow an AMI if Amazon Inspector reported such a + fix more than 7 days ago. + + A scanned AMI that has no `critical` severity finding with a fix + available meets this limit. AMIs that Amazon Inspector has not scanned + are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + +@dataclass(kw_only=True) +class ScanResultConditionRequest(_SerdeShape): + """ + The Amazon Inspector scan-result criteria that an AMI must meet to be + allowed. The criteria can limit the highest finding severity. They can + also limit, for each severity, the days since Amazon Inspector reported + a fix as available. + + The severity limit applies to all findings, whether or not a fix is + available. The day limits for each severity apply only to findings that + have a fix available. A scanned AMI that has no fix-available finding of + a given severity meets that severity's day limit. AMIs that Amazon + Inspector has not scanned are not allowed when you specify this + condition. + """ + + max_days_since_last_finding_scan: int | None = ... + """ + The maximum number of days that have elapsed since Amazon Inspector last + scanned the AMI. For example, a value of `7` allows AMIs that were + scanned within the last 7 days. AMIs that Amazon Inspector has not + scanned are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + maximum_severity_label: str | None = ... + """ + The maximum severity that an AMI's Amazon Inspector findings can have + for the AMI to be allowed. Findings count whether or not a fix is + available. For example, a value of `medium` allows AMIs whose highest + severity is `informational`, `low`, or `medium`. + + The valid values are the following Amazon Inspector severity levels, + which correspond to CVSS score ranges: + + - `informational` - CVSS score of 0. + + - `low` - CVSS score of 0.1 to 3.9. + + - `medium` - CVSS score of 4.0 to 6.9. + + - `high` - CVSS score of 7.0 to 8.9. + + - `critical` - CVSS score of 9.0 to 10.0. + + For more information, see [Software package vulnerability + severity](https://docs.aws.amazon.com/inspector/latest/user/findings-understanding-severity.html#findings-understanding-package-score) + in the *Amazon Inspector User Guide*. + + A scanned AMI that has no findings meets this limit. + + AMIs that Amazon Inspector has not scanned are not allowed when you + specify this condition. + """ + max_days_since_informational_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for an `informational` severity finding on the AMI. For + example, a value of `7` does not allow an AMI if Amazon Inspector + reported such a fix more than 7 days ago. + + A scanned AMI that has no `informational` severity finding with a fix + available meets this limit. AMIs that Amazon Inspector has not scanned + are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_low_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `low` severity finding on the AMI. For example, a value + of `7` does not allow an AMI if Amazon Inspector reported such a fix + more than 7 days ago. + + A scanned AMI that has no `low` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_medium_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `medium` severity finding on the AMI. For example, a + value of `7` does not allow an AMI if Amazon Inspector reported such a + fix more than 7 days ago. + + A scanned AMI that has no `medium` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_high_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `high` severity finding on the AMI. For example, a value + of `7` does not allow an AMI if Amazon Inspector reported such a fix + more than 7 days ago. + + A scanned AMI that has no `high` severity finding with a fix available + meets this limit. AMIs that Amazon Inspector has not scanned are not + allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + max_days_since_critical_fix_available: int | None = ... + """ + The maximum number of days since Amazon Inspector reported a fix as + available for a `critical` severity finding on the AMI. For example, a + value of `7` does not allow an AMI if Amazon Inspector reported such a + fix more than 7 days ago. + + A scanned AMI that has no `critical` severity finding with a fix + available meets this limit. AMIs that Amazon Inspector has not scanned + are not allowed. + + Constraints: Minimum value of 0. Maximum value of 2147483647. + """ + +@dataclass(kw_only=True) +class ScanResults(_SerdeShape): + """ + The Amazon Inspector scan results for an AMI. This information is + present only for AMIs that Amazon Inspector has scanned. + + When you share an AMI with other accounts, organizations, or + organizational units (OUs), or make it public, its scan results are + available to the accounts that can use the AMI. + + The fix-available dates are specific to the AMI. Each date reflects when + a fix became available for a finding on that AMI, not when the vendor + released the fix. As a result, a date can be later than the vendor's + release date, and AMIs with the same vulnerability can have different + dates. + """ + + highest_finding_severity_label: str | None = ... + """ + The highest severity among the AMI's Amazon Inspector findings, whether + or not a fix is available. + + The valid values are the following Amazon Inspector severity levels, + which correspond to CVSS score ranges: + + - `informational` - CVSS score of 0. + + - `low` - CVSS score of 0.1 to 3.9. + + - `medium` - CVSS score of 4.0 to 6.9. + + - `high` - CVSS score of 7.0 to 8.9. + + - `critical` - CVSS score of 9.0 to 10.0. + + For more information, see [Software package vulnerability + severity](https://docs.aws.amazon.com/inspector/latest/user/findings-understanding-severity.html#findings-understanding-package-score) + in the *Amazon Inspector User Guide*. + + This value is present only if the AMI has at least one finding. + """ + finding_scan_date: datetime | None = ... + """ + The date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), of the most recent Amazon Inspector scan of + the AMI. + """ + informational_fix_available_since: datetime | None = ... + """ + The earliest date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as + available for an `informational` severity finding on the AMI. This value + is present only if the AMI has at least one `informational` severity + finding with a fix available. Amazon Inspector recomputes this value on + each scan. + """ + low_fix_available_since: datetime | None = ... + """ + The earliest date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as + available for a `low` severity finding on the AMI. This value is present + only if the AMI has at least one `low` severity finding with a fix + available. Amazon Inspector recomputes this value on each scan. + """ + medium_fix_available_since: datetime | None = ... + """ + The earliest date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as + available for a `medium` severity finding on the AMI. This value is + present only if the AMI has at least one `medium` severity finding with + a fix available. Amazon Inspector recomputes this value on each scan. + """ + high_fix_available_since: datetime | None = ... + """ + The earliest date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as + available for a `high` severity finding on the AMI. This value is + present only if the AMI has at least one `high` severity finding with a + fix available. Amazon Inspector recomputes this value on each scan. + """ + critical_fix_available_since: datetime | None = ... + """ + The earliest date and time, in the ISO 8601 format in the UTC time zone + (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as + available for a `critical` severity finding on the AMI. This value is + present only if the AMI has at least one `critical` severity finding + with a fix available. Amazon Inspector recomputes this value on each + scan. + """ + +class Schedule(UnknownEnumMixin, StrEnum): + HOURLY = "hourly" + +@dataclass(kw_only=True) +class ScheduledInstance(_SerdeShape): + """Describes a Scheduled Instance.""" + + availability_zone: str | None = ... + """The Availability Zone.""" + create_date: datetime | None = ... + """The date when the Scheduled Instance was purchased.""" + hourly_price: str | None = ... + """The hourly price for a single instance.""" + instance_count: int | None = ... + """The number of instances.""" + instance_type: str | None = ... + """The instance type.""" + network_platform: str | None = ... + """The network platform.""" + next_slot_start_time: datetime | None = ... + """The time for the next schedule to start.""" + platform: str | None = ... + """The platform (`Linux/UNIX` or `Windows`).""" + previous_slot_end_time: datetime | None = ... + """The time that the previous schedule ended or will end.""" + recurrence: ScheduledInstanceRecurrence | None = ... + """The schedule recurrence.""" + scheduled_instance_id: str | None = ... + """The Scheduled Instance ID.""" + slot_duration_in_hours: int | None = ... + """The number of hours in the schedule.""" + term_end_date: datetime | None = ... + """The end date for the Scheduled Instance.""" + term_start_date: datetime | None = ... + """The start date for the Scheduled Instance.""" + total_scheduled_instance_hours: int | None = ... + """The total number of hours for a single instance for the entire term.""" + +@dataclass(kw_only=True) +class ScheduledInstanceAvailability(_SerdeShape): + """Describes a schedule that is available for your Scheduled Instances.""" + + availability_zone: str | None = ... + """The Availability Zone.""" + available_instance_count: int | None = ... + """The number of available instances.""" + first_slot_start_time: datetime | None = ... + """The time period for the first schedule to start.""" + hourly_price: str | None = ... + """The hourly price for a single instance.""" + instance_type: str | None = ... + """ + The instance type. You can specify one of the C3, C4, M4, or R3 instance + types. + """ + max_term_duration_in_days: int | None = ... + """The maximum term. The only possible value is 365 days.""" + min_term_duration_in_days: int | None = ... + """The minimum term. The only possible value is 365 days.""" + network_platform: str | None = ... + """The network platform.""" + platform: str | None = ... + """The platform (`Linux/UNIX` or `Windows`).""" + purchase_token: str | None = ... + """The purchase token. This token expires in two hours.""" + recurrence: ScheduledInstanceRecurrence | None = ... + """The schedule recurrence.""" + slot_duration_in_hours: int | None = ... + """The number of hours in the schedule.""" + total_scheduled_instance_hours: int | None = ... + """The total number of hours for a single instance for the entire term.""" + +@dataclass(kw_only=True) +class ScheduledInstanceRecurrence(_SerdeShape): + """Describes the recurring schedule for a Scheduled Instance.""" + + frequency: str | None = ... + """The frequency (`Daily`, `Weekly`, or `Monthly`).""" + interval: int | None = ... + """ + The interval quantity. The interval unit depends on the value of + `frequency`. For example, every 2 weeks or every 2 months. + """ + occurrence_day_set: list[int] | None = ... + """ + The days. For a monthly schedule, this is one or more days of the month + (1-31). For a weekly schedule, this is one or more days of the week + (1-7, where 1 is Sunday). + """ + occurrence_relative_to_end: bool | None = ... + """ + Indicates whether the occurrence is relative to the end of the specified + week or month. + """ + occurrence_unit: str | None = ... + """The unit for `occurrenceDaySet` (`DayOfWeek` or `DayOfMonth`).""" + +@dataclass(kw_only=True) +class ScheduledInstanceRecurrenceRequest(_SerdeShape): + """Describes the recurring schedule for a Scheduled Instance.""" + + frequency: str | None = ... + """The frequency (`Daily`, `Weekly`, or `Monthly`).""" + interval: int | None = ... + """ + The interval quantity. The interval unit depends on the value of + `Frequency`. For example, every 2 weeks or every 2 months. + """ + occurrence_days: list[int] | None = ... + """ + The days. For a monthly schedule, this is one or more days of the month + (1-31). For a weekly schedule, this is one or more days of the week + (1-7, where 1 is Sunday). You can't specify this value with a daily + schedule. If the occurrence is relative to the end of the month, you can + specify only a single day. + """ + occurrence_relative_to_end: bool | None = ... + """ + Indicates whether the occurrence is relative to the end of the specified + week or month. You can't specify this value with a daily schedule. + """ + occurrence_unit: str | None = ... + """ + The unit for `OccurrenceDays` (`DayOfWeek` or `DayOfMonth`). This value + is required for a monthly schedule. You can't specify `DayOfWeek` with + a weekly schedule. You can't specify this value with a daily schedule. + """ + +@dataclass(kw_only=True) +class ScheduledInstancesBlockDeviceMapping(_SerdeShape): + """Describes a block device mapping for a Scheduled Instance.""" + + device_name: str | None = ... + """The device name (for example, `/dev/sdh` or `xvdh`).""" + ebs: ScheduledInstancesEbs | None = ... + """ + Parameters used to set up EBS volumes automatically when the instance is + launched. + """ + no_device: str | None = ... + """ + To omit the device from the block device mapping, specify an empty + string. + """ + virtual_name: str | None = ... + """ + The virtual device name (`ephemeral`N). Instance store volumes are + numbered starting from 0. An instance type with two available instance + store volumes can specify mappings for `ephemeral0` and `ephemeral1`. + The number of available instance store volumes depends on the instance + type. After you connect to the instance, you must mount the volume. + + Constraints: For M3 instances, you must specify instance store volumes + in the block device mapping for the instance. When you launch an M3 + instance, we ignore any instance store volumes specified in the block + device mapping for the AMI. + """ + +@dataclass(kw_only=True) +class ScheduledInstancesEbs(_SerdeShape): + """Describes an EBS volume for a Scheduled Instance.""" + + delete_on_termination: bool | None = ... + """Indicates whether the volume is deleted on instance termination.""" + encrypted: bool | None = ... + """ + Indicates whether the volume is encrypted. You can attached encrypted + volumes only to instances that support them. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) to provision for a `gp3`, + `io1`, or `io2` volume. + """ + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_size: int | None = ... + """ + The size of the volume, in GiB. + + Default: If you're creating the volume from a snapshot and don't + specify a volume size, the default is the snapshot size. + """ + volume_type: str | None = ... + """ + The volume type. + + Default: `gp2` + """ + +@dataclass(kw_only=True) +class ScheduledInstancesIamInstanceProfile(_SerdeShape): + """Describes an IAM instance profile for a Scheduled Instance.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN).""" + name: str | None = ... + """The name.""" + +@dataclass(kw_only=True) +class ScheduledInstancesIpv6Address(_SerdeShape): + """Describes an IPv6 address.""" + + ipv6_address: str | None = ... + """The IPv6 address.""" + +@dataclass(kw_only=True) +class ScheduledInstancesLaunchSpecification(_SerdeShape): + """ + Describes the launch specification for a Scheduled Instance. + + If you are launching the Scheduled Instance in EC2-VPC, you must specify + the ID of the subnet. You can specify the subnet using either `SubnetId` + or `NetworkInterface`. + """ + + block_device_mappings: list[ScheduledInstancesBlockDeviceMapping] | None = ... + """The block device mapping entries.""" + ebs_optimized: bool | None = ... + """ + Indicates whether the instances are optimized for EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal EBS I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS-optimized instance. + + Default: `false` + """ + iam_instance_profile: ScheduledInstancesIamInstanceProfile | None = ... + """The IAM instance profile.""" + image_id: str | None = ... + """The ID of the Amazon Machine Image (AMI).""" + instance_type: str | None = ... + """The instance type.""" + kernel_id: str | None = ... + """The ID of the kernel.""" + key_name: str | None = ... + """The name of the key pair.""" + monitoring: ScheduledInstancesMonitoring | None = ... + """Enable or disable monitoring for the instances.""" + network_interfaces: list[ScheduledInstancesNetworkInterface] | None = ... + """The network interfaces.""" + placement: ScheduledInstancesPlacement | None = ... + """The placement information.""" + ramdisk_id: str | None = ... + """The ID of the RAM disk.""" + security_group_ids: list[str] | None = ... + """The IDs of the security groups.""" + subnet_id: str | None = ... + """The ID of the subnet in which to launch the instances.""" + user_data: str | None = ... + """The base64-encoded MIME user data.""" + +@dataclass(kw_only=True) +class ScheduledInstancesMonitoring(_SerdeShape): + """Describes whether monitoring is enabled for a Scheduled Instance.""" + + enabled: bool | None = ... + """Indicates whether monitoring is enabled.""" + +@dataclass(kw_only=True) +class ScheduledInstancesNetworkInterface(_SerdeShape): + """Describes a network interface for a Scheduled Instance.""" + + associate_public_ip_address: bool | None = ... + """ + Indicates whether to assign a public IPv4 address to instances launched + in a VPC. The public IPv4 address can only be assigned to a network + interface for eth0, and can only be assigned to a new network interface, + not an existing one. You cannot specify more than one network interface + in the request. If launching into a default subnet, the default value is + `true`. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + delete_on_termination: bool | None = ... + """ + Indicates whether to delete the interface when the instance is + terminated. + """ + description: str | None = ... + """The description.""" + device_index: int | None = ... + """The index of the device for the network interface attachment.""" + groups: list[str] | None = ... + """The IDs of the security groups.""" + ipv6_address_count: int | None = ... + """ + The number of IPv6 addresses to assign to the network interface. The + IPv6 addresses are automatically selected from the subnet range. + """ + ipv6_addresses: list[ScheduledInstancesIpv6Address] | None = ... + """The specific IPv6 addresses from the subnet range.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + private_ip_address: str | None = ... + """The IPv4 address of the network interface within the subnet.""" + private_ip_address_configs: ( + list[ScheduledInstancesPrivateIpAddressConfig] | None + ) = ... + """The private IPv4 addresses.""" + secondary_private_ip_address_count: int | None = ... + """The number of secondary private IPv4 addresses.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + +@dataclass(kw_only=True) +class ScheduledInstancesPlacement(_SerdeShape): + """Describes the placement for a Scheduled Instance.""" + + availability_zone: str | None = ... + """The Availability Zone.""" + group_name: str | None = ... + """The name of the placement group.""" + +@dataclass(kw_only=True) +class ScheduledInstancesPrivateIpAddressConfig(_SerdeShape): + """Describes a private IPv4 address for a Scheduled Instance.""" + + primary: bool | None = ... + """ + Indicates whether this is a primary IPv4 address. Otherwise, this is a + secondary IPv4 address. + """ + private_ip_address: str | None = ... + """The IPv4 address.""" + +class Scope(UnknownEnumMixin, StrEnum): + AVAILABILITY_ZONE = "Availability Zone" + REGIONAL = "Region" + +@dataclass(kw_only=True) +class SearchLocalGatewayRoutesInput(_SerdeShape): + """Dataclass for SearchLocalGatewayRoutesInput structure.""" + + local_gateway_route_table_id: str | None = ... + """The ID of the local gateway route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. + + - `prefix-list-id` - The ID of the prefix list. + + - `route-search.exact-match` - The exact match of the specified filter. + + - `route-search.longest-prefix-match` - The longest prefix that matches + the route. + + - `route-search.subnet-of-match` - The routes with a subnet that match + the specified CIDR filter. + + - `route-search.supernet-of-match` - The routes with a CIDR that + encompass the CIDR filter. For example, if you have 10.0.1.0/29 and + 10.0.1.0/31 routes in your route table and you specify + `supernet-of-match` as 10.0.1.0/30, then the result returns + 10.0.1.0/29. + + - `state` - The state of the route. + + - `type` - The route type. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class SearchLocalGatewayRoutesOutput(_SerdeShape): + """Dataclass for SearchLocalGatewayRoutesOutput structure.""" + + routes: list[LocalGatewayRoute] | None = ... + """Information about the routes.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SearchTransitGatewayMulticastGroupsInput(_SerdeShape): + """Dataclass for SearchTransitGatewayMulticastGroupsInput structure.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `group-ip-address` - The IP address of the transit gateway multicast + group. + + - `is-group-member` - The resource is a group member. Valid values are + `true` | `false`. + + - `is-group-source` - The resource is a group source. Valid values are + `true` | `false`. + + - `member-type` - The member type. Valid values are `igmp` | `static`. + + - `resource-id` - The ID of the resource. + + - `resource-type` - The type of resource. Valid values are `vpc` | + `vpn` | `direct-connect-gateway` | `tgw-peering`. + + - `source-type` - The source type. Valid values are `igmp` | `static`. + + - `subnet-id` - The ID of the subnet. + + - `transit-gateway-attachment-id` - The id of the transit gateway + attachment. + """ + max_results: int | None = ... + """ + The maximum number of results to return with a single call. To retrieve + the remaining results, make another call with the returned `nextToken` + value. + """ + next_token: str | None = ... + """The token for the next page of results.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class SearchTransitGatewayMulticastGroupsOutput(_SerdeShape): + """Dataclass for SearchTransitGatewayMulticastGroupsOutput structure.""" + + multicast_groups: list[TransitGatewayMulticastGroup] | None = ... + """Information about the transit gateway multicast group.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SearchTransitGatewayRoutesInput(_SerdeShape): + """Dataclass for SearchTransitGatewayRoutesInput structure.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + filters: list[Filter] | None = ... + """ + One or more filters. The possible values are: + + - `attachment.transit-gateway-attachment-id`- The id of the transit + gateway attachment. + + - `attachment.resource-id` - The resource id of the transit gateway + attachment. + + - `attachment.resource-type` - The attachment resource type. Valid + values are `vpc` | `vpn` | `direct-connect-gateway` | `peering` | + `connect`. + + - `prefix-list-id` - The ID of the prefix list. + + - `route-search.exact-match` - The exact match of the specified filter. + + - `route-search.longest-prefix-match` - The longest prefix that matches + the route. + + - `route-search.subnet-of-match` - The routes with a subnet that match + the specified CIDR filter. + + - `route-search.supernet-of-match` - The routes with a CIDR that + encompass the CIDR filter. For example, if you have 10.0.1.0/29 and + 10.0.1.0/31 routes in your route table and you specify + supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29. + + - `state` - The state of the route (`active` | `blackhole`). + + - `type` - The type of route (`propagated` | `static`). + """ + max_results: int | None = ... + """ + The maximum number of routes to return. If a value is not provided, the + default is 1000. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + next_token: str | None = ... + """The token for the next page of results.""" + +@dataclass(kw_only=True) +class SearchTransitGatewayRoutesOutput(_SerdeShape): + """Dataclass for SearchTransitGatewayRoutesOutput structure.""" + + routes: list[TransitGatewayRoute] | None = ... + """Information about the routes.""" + additional_routes_available: bool | None = ... + """Indicates whether there are additional routes available.""" + next_token: str | None = ... + """ + The token to use to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SecondaryInterface(_SerdeShape): + """Describes a secondary interface.""" + + availability_zone: str | None = ... + """The Availability Zone of the secondary interface.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the secondary interface.""" + attachment: SecondaryInterfaceAttachment | None = ... + """The attachment information for the secondary interface.""" + mac_address: str | None = ... + """The MAC address of the secondary interface.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the secondary + interface. + """ + private_ipv4_addresses: list[SecondaryInterfaceIpv4Address] | None = ... + """The private IPv4 addresses associated with the secondary interface.""" + secondary_interface_id: str | None = ... + """The ID of the secondary interface.""" + secondary_interface_arn: str | None = ... + """The Amazon Resource Name (ARN) of the secondary interface.""" + secondary_interface_type: str | None = ... + """The type of secondary interface.""" + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + secondary_network_id: str | None = ... + """The ID of the secondary network.""" + secondary_network_type: str | None = ... + """The type of the secondary network.""" + source_dest_check: bool | None = ... + """Indicates whether source/destination checking is enabled.""" + status: str | None = ... + """The status of the secondary interface.""" + tags: list[Tag] | None = ... + """The tags assigned to the secondary interface.""" + +@dataclass(kw_only=True) +class SecondaryInterfaceAttachment(_SerdeShape): + """Describes the attachment of a secondary interface to an instance.""" + + attachment_id: str | None = ... + """The ID of the attachment.""" + attach_time: datetime | None = ... + """The timestamp when the attachment was created.""" + delete_on_termination: bool | None = ... + """ + Indicates whether the secondary interface is deleted when the instance + is terminated. + + The only supported value for this field is `true`. + """ + device_index: int | None = ... + """The device index of the secondary interface.""" + instance_id: str | None = ... + """The ID of the instance to which the secondary interface is attached.""" + instance_owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the instance.""" + network_card_index: int | None = ... + """The index of the network card.""" + status: str | None = ... + """The attachment state.""" + +@dataclass(kw_only=True) +class SecondaryInterfaceIpv4Address(_SerdeShape): + """Describes a private IPv4 address for a secondary interface.""" + + private_ip_address: str | None = ... + """The private IPv4 address.""" + +@dataclass(kw_only=True) +class SecondaryInterfacePrivateIpAddressSpecification(_SerdeShape): + """ + Describes a private IPv4 address specification for a secondary + interface. + """ + + private_ip_address: str | None = ... + """The private IPv4 address.""" + +@dataclass(kw_only=True) +class SecondaryInterfacePrivateIpAddressSpecificationRequest(_SerdeShape): + """ + Describes a private IPv4 address specification for a secondary interface + request. + """ + + private_ip_address: str | None = ... + """The private IPv4 address.""" + +class SecondaryInterfaceStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + IN_USE = "in-use" + +class SecondaryInterfaceType(UnknownEnumMixin, StrEnum): + SECONDARY = "secondary" + +@dataclass(kw_only=True) +class SecondaryNetwork(_SerdeShape): + """Describes a secondary network.""" + + secondary_network_id: str | None = ... + """The ID of the secondary network.""" + secondary_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the secondary network.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the secondary + network. + """ + type: str | None = ... + """The type of the secondary network.""" + state: str | None = ... + """The state of the secondary network.""" + state_reason: str | None = ... + """The reason for the current state of the secondary network.""" + ipv4_cidr_block_associations: ( + list[SecondaryNetworkIpv4CidrBlockAssociation] | None + ) = ... + """ + Information about the IPv4 CIDR blocks associated with the secondary + network. + """ + tags: list[Tag] | None = ... + """The tags assigned to the secondary network.""" + +class SecondaryNetworkCidrBlockAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + ASSOCIATION_FAILED = "association-failed" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + DISASSOCIATION_FAILED = "disassociation-failed" + +@dataclass(kw_only=True) +class SecondaryNetworkIpv4CidrBlockAssociation(_SerdeShape): + """Describes an IPv4 CIDR block associated with a secondary network.""" + + association_id: str | None = ... + """The association ID for the IPv4 CIDR block.""" + cidr_block: str | None = ... + """The IPv4 CIDR block.""" + state: str | None = ... + """The state of the CIDR block association.""" + state_reason: str | None = ... + """The reason for the current state of the CIDR block association.""" + +class SecondaryNetworkState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + +class SecondaryNetworkType(UnknownEnumMixin, StrEnum): + RDMA = "rdma" + +@dataclass(kw_only=True) +class SecondarySubnet(_SerdeShape): + """Describes a secondary subnet.""" + + secondary_subnet_id: str | None = ... + """The ID of the secondary subnet.""" + secondary_subnet_arn: str | None = ... + """The Amazon Resource Name (ARN) of the secondary subnet.""" + secondary_network_id: str | None = ... + """The ID of the secondary network.""" + secondary_network_type: str | None = ... + """The type of the secondary network.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the secondary + subnet. + """ + availability_zone_id: str | None = ... + """The ID of the Availability Zone of the secondary subnet.""" + availability_zone: str | None = ... + """The Availability Zone of the secondary subnet.""" + ipv4_cidr_block_associations: ( + list[SecondarySubnetIpv4CidrBlockAssociation] | None + ) = ... + """ + Information about the IPv4 CIDR blocks associated with the secondary + subnet. + """ + state: str | None = ... + """The state of the secondary subnet.""" + state_reason: str | None = ... + """The reason for the current state of the secondary subnet.""" + tags: list[Tag] | None = ... + """The tags assigned to the secondary subnet.""" + +class SecondarySubnetCidrBlockAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + ASSOCIATION_FAILED = "association-failed" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + DISASSOCIATION_FAILED = "disassociation-failed" + +@dataclass(kw_only=True) +class SecondarySubnetIpv4CidrBlockAssociation(_SerdeShape): + """Describes an IPv4 CIDR block associated with a secondary subnet.""" + + association_id: str | None = ... + """The association ID for the IPv4 CIDR block.""" + cidr_block: str | None = ... + """The IPv4 CIDR block.""" + state: str | None = ... + """The state of the CIDR block association.""" + state_reason: str | None = ... + """The reason for the current state of the CIDR block association.""" + +class SecondarySubnetState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DELETE_FAILED = "delete-failed" + +@dataclass(kw_only=True) +class SecureBlobAttributeValue(_SerdeShape): + """ + Describes a value for a resource attribute that is a Base64-encoded + binary data object. + """ + + value: bytes | None = ... + """The attribute value.""" + +@dataclass(kw_only=True) +class SecurityGroup(_SerdeShape): + """Describes a security group.""" + + group_id: str | None = ... + """The ID of the security group.""" + ip_permissions_egress: list[IpPermission] | None = ... + """The outbound rules associated with the security group.""" + tags: list[Tag] | None = ... + """Any tags assigned to the security group.""" + vpc_id: str | None = ... + """The ID of the VPC for the security group.""" + security_group_arn: str | None = ... + """The ARN of the security group.""" + owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the security group.""" + group_name: str | None = ... + """The name of the security group.""" + description: str | None = ... + """A description of the security group.""" + ip_permissions: list[IpPermission] | None = ... + """The inbound rules associated with the security group.""" + +@dataclass(kw_only=True) +class SecurityGroupForVpc(_SerdeShape): + """A security group that can be used by interfaces in the VPC.""" + + description: str | None = ... + """The security group's description.""" + group_name: str | None = ... + """The security group name.""" + owner_id: str | None = ... + """The security group owner ID.""" + group_id: str | None = ... + """The security group ID.""" + tags: list[Tag] | None = ... + """The security group tags.""" + primary_vpc_id: str | None = ... + """The VPC ID in which the security group was created.""" + +@dataclass(kw_only=True) +class SecurityGroupIdentifier(_SerdeShape): + """Describes a security group.""" + + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """The name of the security group.""" + +@dataclass(kw_only=True) +class SecurityGroupReference(_SerdeShape): + """ + Describes a VPC with a security group that references your security + group. + """ + + group_id: str | None = ... + """The ID of your security group.""" + referencing_vpc_id: str | None = ... + """The ID of the VPC with the referencing security group.""" + vpc_peering_connection_id: str | None = ... + """ + The ID of the VPC peering connection (if applicable). For more + information about security group referencing for peering connections, + see [Update your security groups to reference peer security + groups](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html) + in the *VPC Peering Guide*. + """ + transit_gateway_id: str | None = ... + """The ID of the transit gateway (if applicable).""" + +class SecurityGroupReferencingSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class SecurityGroupRule(_SerdeShape): + """Describes a security group rule.""" + + security_group_rule_id: str | None = ... + """The ID of the security group rule.""" + group_id: str | None = ... + """The ID of the security group.""" + group_owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the security group.""" + is_egress: bool | None = ... + """Indicates whether the security group rule is an outbound rule.""" + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`, `icmpv6`) or number (see + [Protocol + Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + + Use `-1` to specify all protocols. + """ + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP + types). + """ + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP + codes). If the start port is -1 (all ICMP types), then the end port must + be -1 (all ICMP codes). + """ + cidr_ipv4: str | None = ... + """The IPv4 CIDR range.""" + cidr_ipv6: str | None = ... + """The IPv6 CIDR range.""" + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + referenced_group_info: ReferencedSecurityGroup | None = ... + """Describes the security group that is referenced in the rule.""" + description: str | None = ... + """The security group rule description.""" + tags: list[Tag] | None = ... + """The tags applied to the security group rule.""" + security_group_rule_arn: str | None = ... + """The ARN of the security group rule.""" + +@dataclass(kw_only=True) +class SecurityGroupRuleDescription(_SerdeShape): + """ + Describes the description of a security group rule. + + You can use this when you want to update the security group rule + description for either an inbound or outbound rule. + """ + + security_group_rule_id: str | None = ... + """The ID of the security group rule.""" + description: str | None = ... + """The description of the security group rule.""" + +@dataclass(kw_only=True) +class SecurityGroupRuleRequest(_SerdeShape): + """ + Describes a security group rule. + + You must specify exactly one of the following parameters, based on the + rule type: + + - CidrIpv4 + + - CidrIpv6 + + - PrefixListId + + - ReferencedGroupId + + Note: + Amazon Web Services + [canonicalizes](https://en.wikipedia.org/wiki/Canonicalization) IPv4 and + IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR + block, Amazon Web Services canonicalizes the CIDR block to + 100.68.0.0/18. Any subsequent DescribeSecurityGroups and + DescribeSecurityGroupRules calls will return the canonicalized form of + the CIDR block. Additionally, if you attempt to add another rule with + the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is + already a rule for the canonicalized form of the CIDR block (such as + 100.68.0.0/18), the API throws an duplicate rule error. + + When you modify a rule, you cannot change the rule type. For example, if + the rule uses an IPv4 address range, you must use `CidrIpv4` to specify + a new IPv4 address range. + """ + + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`, `icmpv6`) or number (see + [Protocol + Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + + Use `-1` to specify all protocols. + """ + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP + types). + """ + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP + codes). If the start port is -1 (all ICMP types), then the end port must + be -1 (all ICMP codes). + """ + cidr_ipv4: str | None = ... + """ + The IPv4 CIDR range. To specify a single IPv4 address, use the /32 + prefix length. + """ + cidr_ipv6: str | None = ... + """ + The IPv6 CIDR range. To specify a single IPv6 address, use the /128 + prefix length. + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + referenced_group_id: str | None = ... + """ + The ID of the security group that is referenced in the security group + rule. + """ + description: str | None = ... + """The description of the security group rule.""" + +@dataclass(kw_only=True) +class SecurityGroupRuleUpdate(_SerdeShape): + """Describes an update to a security group rule.""" + + security_group_rule_id: str | None = ... + """The ID of the security group rule.""" + security_group_rule: SecurityGroupRuleRequest | None = ... + """Information about the security group rule.""" + +@dataclass(kw_only=True) +class SecurityGroupVpcAssociation(_SerdeShape): + """ + A security group association with a VPC that you made with + [AssociateSecurityGroupVpc](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateSecurityGroupVpc.html). + """ + + group_id: str | None = ... + """The association's security group ID.""" + vpc_id: str | None = ... + """The association's VPC ID.""" + vpc_owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the VPC.""" + state: str | None = ... + """The association's state.""" + state_reason: str | None = ... + """The association's state reason.""" + group_owner_id: str | None = ... + """The Amazon Web Services account ID of the owner of the security group.""" + +class SecurityGroupVpcAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + ASSOCIATION_FAILED = "association-failed" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + DISASSOCIATION_FAILED = "disassociation-failed" + +class SelfServicePortal(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class SendDiagnosticInterruptInput(_SerdeShape): + """Dataclass for SendDiagnosticInterruptInput structure.""" + + instance_id: str | None = ... + """The ID of the instance.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class SendDiagnosticInterruptOutput(_SerdeShape): + """Dataclass for SendDiagnosticInterruptOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceConfiguration(_SerdeShape): + """Describes a service configuration for a VPC endpoint service.""" + + service_type: list[ServiceTypeDetail] | None = ... + """The type of service.""" + service_id: str | None = ... + """The ID of the service.""" + service_name: str | None = ... + """The name of the service.""" + service_state: str | None = ... + """The service state.""" + availability_zone_ids: list[str] | None = ... + """ + The IDs of the Availability Zones in which the service is available. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + availability_zones: list[str] | None = ... + """ + The Availability Zones in which the service is available. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + acceptance_required: bool | None = ... + """ + Indicates whether requests from other Amazon Web Services accounts to + create an endpoint to the service must first be accepted. + """ + manages_vpc_endpoints: bool | None = ... + """ + Indicates whether the service manages its VPC endpoints. Management of + the service VPC endpoints using the VPC endpoint API is restricted. + """ + network_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the Network Load Balancers for the + service. + """ + gateway_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the + service. + """ + supported_ip_address_types: list[str] | None = ... + """The supported IP address types.""" + base_endpoint_dns_names: list[str] | None = ... + """The DNS names for the service.""" + private_dns_name: str | None = ... + """The private DNS name for the service.""" + private_dns_name_configuration: PrivateDnsNameConfiguration | None = ... + """Information about the endpoint service private DNS name configuration.""" + payer_responsibility: str | None = ... + """The payer responsibility.""" + tags: list[Tag] | None = ... + """The tags assigned to the service.""" + supported_regions: list[SupportedRegionDetail] | None = ... + """The supported Regions.""" + remote_access_enabled: bool | None = ... + """ + Indicates whether consumers can access the service from a Region other + than the Region where the service is hosted. + """ + +class ServiceConnectivityType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + +@dataclass(kw_only=True) +class ServiceDetail(_SerdeShape): + """Describes a VPC endpoint service.""" + + service_name: str | None = ... + """The name of the service.""" + service_id: str | None = ... + """The ID of the endpoint service.""" + service_type: list[ServiceTypeDetail] | None = ... + """The type of service.""" + service_region: str | None = ... + """The Region where the service is hosted.""" + availability_zone_ids: list[str] | None = ... + """ + The IDs of the Availability Zones in which the service is available. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + availability_zones: list[str] | None = ... + """ + The Availability Zones in which the service is available. + + Either `AvailabilityZone` or `AvailabilityZoneId` can be specified, but + not both + """ + owner: str | None = ... + """The Amazon Web Services account ID of the service owner.""" + base_endpoint_dns_names: list[str] | None = ... + """The DNS names for the service.""" + private_dns_name: str | None = ... + """The private DNS name for the service.""" + private_dns_names: list[PrivateDnsDetails] | None = ... + """The private DNS names assigned to the VPC endpoint service.""" + vpc_endpoint_policy_supported: bool | None = ... + """Indicates whether the service supports endpoint policies.""" + acceptance_required: bool | None = ... + """ + Indicates whether VPC endpoint connection requests to the service must + be accepted by the service owner. + """ + manages_vpc_endpoints: bool | None = ... + """ + Indicates whether the service manages its VPC endpoints. Management of + the service VPC endpoints using the VPC endpoint API is restricted. + """ + payer_responsibility: str | None = ... + """The payer responsibility.""" + tags: list[Tag] | None = ... + """The tags assigned to the service.""" + private_dns_name_verification_state: str | None = ... + """ + The verification state of the VPC endpoint service. + + Consumers of the endpoint service cannot use the private name when the + state is not `verified`. + """ + supported_ip_address_types: list[str] | None = ... + """The supported IP address types.""" + +@dataclass(kw_only=True) +class ServiceLinkVirtualInterface(_SerdeShape): + """ + Describes the service link virtual interfaces that establish + connectivity between Amazon Web Services Outpost and on-premises + networks. + """ + + service_link_virtual_interface_id: str | None = ... + """The ID of the service link virtual interface.""" + service_link_virtual_interface_arn: str | None = ... + """The Amazon Resource Number (ARN) for the service link virtual interface.""" + outpost_id: str | None = ... + """The Outpost ID for the service link virtual interface.""" + outpost_arn: str | None = ... + """ + The Outpost Amazon Resource Number (ARN) for the service link virtual + interface. + """ + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the service link + virtual interface.. + """ + local_address: str | None = ... + """ + The IPv4 address assigned to the local gateway virtual interface on the + Outpost side. + """ + peer_address: str | None = ... + """The IPv4 peer address for the service link virtual interface.""" + peer_bgp_asn: int | None = ... + """ + The ASN for the Border Gateway Protocol (BGP) associated with the + service link virtual interface. + """ + vlan: int | None = ... + """The virtual local area network for the service link virtual interface.""" + outpost_lag_id: str | None = ... + """ + The link aggregation group (LAG) ID for the service link virtual + interface. + """ + tags: list[Tag] | None = ... + """The tags associated with the service link virtual interface.""" + configuration_state: str | None = ... + """The current state of the service link virtual interface.""" + +class ServiceLinkVirtualInterfaceConfigurationState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +class ServiceManaged(UnknownEnumMixin, StrEnum): + ALB = "alb" + NLB = "nlb" + RNAT = "rnat" + RDS = "rds" + +class ServiceState(UnknownEnumMixin, StrEnum): + PENDING = "Pending" + AVAILABLE = "Available" + DELETING = "Deleting" + DELETED = "Deleted" + FAILED = "Failed" + +class ServiceType(UnknownEnumMixin, StrEnum): + INTERFACE = "Interface" + GATEWAY = "Gateway" + GATEWAY_LOAD_BALANCER = "GatewayLoadBalancer" + +@dataclass(kw_only=True) +class ServiceTypeDetail(_SerdeShape): + """Describes the type of service for a VPC endpoint.""" + + service_type: str | None = ... + """The type of service.""" + +class SeverityLabel(UnknownEnumMixin, StrEnum): + INFORMATIONAL = "informational" + LOW = "low" + MEDIUM = "medium" + HIGH = "high" + CRITICAL = "critical" + +class ShutdownBehavior(UnknownEnumMixin, StrEnum): + STOP = "stop" + TERMINATE = "terminate" + +@dataclass(kw_only=True) +class SlotDateTimeRangeRequest(_SerdeShape): + """ + Describes the time period for a Scheduled Instance to start its first + schedule. The time period must span less than one day. + """ + + earliest_time: datetime | None = ... + """The earliest date and time, in UTC, for the Scheduled Instance to start.""" + latest_time: datetime | None = ... + """ + The latest date and time, in UTC, for the Scheduled Instance to start. + This value must be later than or equal to the earliest date and at most + three months in the future. + """ + +@dataclass(kw_only=True) +class SlotStartTimeRangeRequest(_SerdeShape): + """ + Describes the time period for a Scheduled Instance to start its first + schedule. + """ + + earliest_time: datetime | None = ... + """The earliest date and time, in UTC, for the Scheduled Instance to start.""" + latest_time: datetime | None = ... + """The latest date and time, in UTC, for the Scheduled Instance to start.""" + +@dataclass(kw_only=True) +class Snapshot(_SerdeShape): + """Describes a snapshot.""" + + owner_alias: str | None = ... + """ + The Amazon Web Services owner alias, from an Amazon-maintained list + (`amazon`). This is not the user-configured Amazon Web Services account + alias set using the IAM console. + """ + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the snapshot is stored. For more + information, see [Amazon EBS local snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html) + in the *Amazon EBS User Guide*. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the snapshot.""" + storage_tier: str | None = ... + """ + The storage tier in which the snapshot is stored. `standard` indicates + that the snapshot is stored in the standard snapshot storage tier and + that it is ready for use. `archive` indicates that the snapshot is + currently archived and that it must be restored before it can be used. + """ + restore_expiry_time: datetime | None = ... + """ + Only for archived snapshots that are temporarily restored. Indicates the + date and time when a temporarily restored snapshot will be automatically + re-archived. + """ + sse_type: str | None = ... + """Reserved for future use.""" + availability_zone: str | None = ... + """ + The Availability Zone or Local Zone of the snapshot. For example, + `us-west-1a` (Availability Zone) or `us-west-2-lax-1a` (Local Zone). + """ + transfer_type: str | None = ... + """ + Note: + Only for snapshot copies. + + Indicates whether the snapshot copy was created with a standard or + time-based snapshot copy operation. Time-based snapshot copy operations + complete within the completion duration specified in the request. + Standard snapshot copy operations are completed on a best-effort basis. + + - `standard` - The snapshot copy was created with a standard snapshot + copy operation. + + - `time-based` - The snapshot copy was created with a time-based + snapshot copy operation. + """ + completion_duration_minutes: int | None = ... + """ + Note: + Only for snapshot copies created with time-based snapshot copy + operations. + + The completion duration requested for the time-based snapshot copy + operation. + """ + completion_time: datetime | None = ... + """The time stamp when the snapshot was completed.""" + full_snapshot_size_in_bytes: int | None = ... + """ + The full size of the snapshot, in bytes. + + Warning: + This is **not** the incremental size of the snapshot. This is the full + snapshot size and represents the size of all the blocks that were + written to the source volume at the time the snapshot was created. + """ + snapshot_id: str | None = ... + """ + The ID of the snapshot. Each snapshot receives a unique identifier when + it is created. + """ + volume_id: str | None = ... + """ + The ID of the volume that was used to create the snapshot. Snapshots + created by a copy snapshot operation have an arbitrary volume ID that + you should not use for any purpose. + """ + state: str | None = ... + """The snapshot state.""" + state_message: str | None = ... + """ + Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot + copy operation fails (for example, if the proper KMS permissions are not + obtained) this field displays error state details to help you diagnose + why the error occurred. This parameter is only returned by + DescribeSnapshots. + """ + start_time: datetime | None = ... + """The time stamp when the snapshot was initiated.""" + progress: str | None = ... + """The progress of the snapshot, as a percentage.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the EBS snapshot.""" + description: str | None = ... + """The description for the snapshot.""" + volume_size: int | None = ... + """The size of the volume, in GiB.""" + encrypted: bool | None = ... + """Indicates whether the snapshot is encrypted.""" + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the KMS key that was used to protect + the volume encryption key for the parent volume. + """ + data_encryption_key_id: str | None = ... + """ + The data encryption key identifier for the snapshot. This value is a + unique identifier that corresponds to the data encryption key that was + used to encrypt the original volume or snapshot copy. Because data + encryption keys are inherited by volumes created from snapshots, and + vice versa, if snapshots share the same data encryption key identifier, + then they belong to the same volume/snapshot lineage. This parameter is + only returned by DescribeSnapshots. + """ + +class SnapshotAttributeName(UnknownEnumMixin, StrEnum): + PRODUCT_CODES = "productCodes" + CREATE_VOLUME_PERMISSION = "createVolumePermission" + +class SnapshotBlockPublicAccessState(UnknownEnumMixin, StrEnum): + BLOCK_ALL_SHARING = "block-all-sharing" + BLOCK_NEW_SHARING = "block-new-sharing" + UNBLOCKED = "unblocked" + +@dataclass(kw_only=True) +class SnapshotDetail(_SerdeShape): + """Describes the snapshot created from the imported disk.""" + + description: str | None = ... + """A description for the snapshot.""" + device_name: str | None = ... + """The block device mapping for the snapshot.""" + disk_image_size: float | None = ... + """The size of the disk in the snapshot, in GiB.""" + format: str | None = ... + """The format of the disk image from which the snapshot is created.""" + progress: str | None = ... + """The percentage of progress for the task.""" + snapshot_id: str | None = ... + """The snapshot ID of the disk being imported.""" + status: str | None = ... + """A brief status of the snapshot creation.""" + status_message: str | None = ... + """A detailed status message for the snapshot creation.""" + url: str | None = ... + """The URL used to access the disk image.""" + user_bucket: UserBucketDetails | None = ... + """The Amazon S3 bucket for the disk image.""" + +@dataclass(kw_only=True) +class SnapshotDiskContainer(_SerdeShape): + """The disk container object for the import snapshot request.""" + + description: str | None = ... + """The description of the disk image being imported.""" + format: str | None = ... + """ + The format of the disk image being imported. + + Valid values: `VHD` | `VMDK` | `RAW` + """ + url: str | None = ... + """ + The URL to the Amazon S3-based disk image being imported. It can either + be a https URL (https://..) or an Amazon S3 URL (s3://..). + """ + user_bucket: UserBucket | None = ... + """The Amazon S3 bucket for the disk image.""" + +@dataclass(kw_only=True) +class SnapshotInfo(_SerdeShape): + """Information about a snapshot.""" + + description: str | None = ... + """ + Description specified by the CreateSnapshotRequest that has been applied + to all snapshots. + """ + tags: list[Tag] | None = ... + """Tags associated with this snapshot.""" + encrypted: bool | None = ... + """Indicates whether the snapshot is encrypted.""" + volume_id: str | None = ... + """Source volume from which this snapshot was created.""" + state: str | None = ... + """Current state of the snapshot.""" + volume_size: int | None = ... + """Size of the volume from which this snapshot was created.""" + start_time: datetime | None = ... + """ + Time this snapshot was started. This is the same for all snapshots + initiated by the same request. + """ + progress: str | None = ... + """Progress this snapshot has made towards completing.""" + owner_id: str | None = ... + """Account id used when creating this snapshot.""" + snapshot_id: str | None = ... + """Snapshot id that can be used to describe this snapshot.""" + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the snapshot is stored. For more + information, see [Amazon EBS local snapshots on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html) + in the *Amazon EBS User Guide*. + """ + sse_type: str | None = ... + """Reserved for future use.""" + availability_zone: str | None = ... + """ + The Availability Zone or Local Zone of the snapshots. For example, + `us-west-1a` (Availability Zone) or `us-west-2-lax-1a` (Local Zone). + """ + +class SnapshotLocationEnum(UnknownEnumMixin, StrEnum): + REGIONAL = "regional" + LOCAL = "local" + +@dataclass(kw_only=True) +class SnapshotRecycleBinInfo(_SerdeShape): + """Information about a snapshot that is currently in the Recycle Bin.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + recycle_bin_enter_time: datetime | None = ... + """The date and time when the snapshot entered the Recycle Bin.""" + recycle_bin_exit_time: datetime | None = ... + """ + The date and time when the snapshot is to be permanently deleted from + the Recycle Bin. + """ + description: str | None = ... + """The description for the snapshot.""" + volume_id: str | None = ... + """The ID of the volume from which the snapshot was created.""" + +class SnapshotReturnCodes(UnknownEnumMixin, StrEnum): + SUCCESS = "success" + WARN_SKIPPED = "skipped" + ERROR_MISSING_PERMISSIONS = "missing-permissions" + ERROR_CODE_INTERNAL_ERROR = "internal-error" + ERROR_CODE_CLIENT_ERROR = "client-error" + +class SnapshotState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + COMPLETED = "completed" + ERROR = "error" + RECOVERABLE = "recoverable" + RECOVERING = "recovering" + +@dataclass(kw_only=True) +class SnapshotTaskDetail(_SerdeShape): + """Details about the import snapshot task.""" + + description: str | None = ... + """The description of the disk image being imported.""" + disk_image_size: float | None = ... + """The size of the disk in the snapshot, in GiB.""" + encrypted: bool | None = ... + """Indicates whether the snapshot is encrypted.""" + format: str | None = ... + """The format of the disk image from which the snapshot is created.""" + kms_key_id: str | None = ... + """ + The identifier for the KMS key that was used to create the encrypted + snapshot. + """ + progress: str | None = ... + """The percentage of completion for the import snapshot task.""" + snapshot_id: str | None = ... + """The snapshot ID of the disk being imported.""" + status: str | None = ... + """A brief status for the import snapshot task.""" + status_message: str | None = ... + """A detailed status message for the import snapshot task.""" + url: str | None = ... + """The URL of the disk image from which the snapshot is created.""" + user_bucket: UserBucketDetails | None = ... + """The Amazon S3 bucket for the disk image.""" + +@dataclass(kw_only=True) +class SnapshotTierStatus(_SerdeShape): + """Provides information about a snapshot's storage tier.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + volume_id: str | None = ... + """The ID of the volume from which the snapshot was created.""" + status: str | None = ... + """The state of the snapshot.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the snapshot.""" + tags: list[Tag] | None = ... + """The tags that are assigned to the snapshot.""" + storage_tier: str | None = ... + """ + The storage tier in which the snapshot is stored. `standard` indicates + that the snapshot is stored in the standard snapshot storage tier and + that it is ready for use. `archive` indicates that the snapshot is + currently archived and that it must be restored before it can be used. + """ + last_tiering_start_time: datetime | None = ... + """The date and time when the last archive or restore process was started.""" + last_tiering_progress: int | None = ... + """The progress of the last archive or restore process, as a percentage.""" + last_tiering_operation_status: str | None = ... + """The status of the last archive or restore process.""" + last_tiering_operation_status_detail: str | None = ... + """A message describing the status of the last archive or restore process.""" + archival_complete_time: datetime | None = ... + """The date and time when the last archive process was completed.""" + restore_expiry_time: datetime | None = ... + """ + Only for archived snapshots that are temporarily restored. Indicates the + date and time when a temporarily restored snapshot will be automatically + re-archived. + """ + +class SpotAllocationStrategy(UnknownEnumMixin, StrEnum): + LOWEST_PRICE = "lowest-price" + DIVERSIFIED = "diversified" + CAPACITY_OPTIMIZED = "capacity-optimized" + CAPACITY_OPTIMIZED_PRIORITIZED = "capacity-optimized-prioritized" + PRICE_CAPACITY_OPTIMIZED = "price-capacity-optimized" + +@dataclass(kw_only=True) +class SpotCapacityRebalance(_SerdeShape): + """ + The Spot Instance replacement strategy to use when Amazon EC2 emits a + signal that your Spot Instance is at an elevated risk of being + interrupted. For more information, see [Capacity + rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) + in the *Amazon EC2 User Guide*. + """ + + replacement_strategy: str | None = ... + """ + The replacement strategy to use. Only available for fleets of type + `maintain`. + + `launch` - Spot Fleet launches a new replacement Spot Instance when a + rebalance notification is emitted for an existing Spot Instance in the + fleet. Spot Fleet does not terminate the instances that receive a + rebalance notification. You can terminate the old instances, or you can + leave them running. You are charged for all instances while they are + running. + + `launch-before-terminate` - Spot Fleet launches a new replacement Spot + Instance when a rebalance notification is emitted for an existing Spot + Instance in the fleet, and then, after a delay that you specify (in + `TerminationDelay`), terminates the instances that received a rebalance + notification. + """ + termination_delay: int | None = ... + """ + The amount of time (in seconds) that Amazon EC2 waits before terminating + the old Spot Instance after launching a new replacement Spot Instance. + + Required when `ReplacementStrategy` is set to `launch-before-terminate`. + + Not valid when `ReplacementStrategy` is set to `launch`. + + Valid values: Minimum value of `120` seconds. Maximum value of `7200` + seconds. + """ + +@dataclass(kw_only=True) +class SpotDatafeedSubscription(_SerdeShape): + """Describes the data feed for a Spot Instance.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket where the Spot Instance data feed is + located. + """ + fault: SpotInstanceStateFault | None = ... + """The fault codes for the Spot Instance request, if any.""" + owner_id: str | None = ... + """The Amazon Web Services account ID of the account.""" + prefix: str | None = ... + """The prefix for the data feed files.""" + state: str | None = ... + """The state of the Spot Instance data feed subscription.""" + +@dataclass(kw_only=True) +class SpotFleetLaunchSpecification(_SerdeShape): + """ + Describes the launch specification for one or more Spot Instances. If + you include On-Demand capacity in your fleet request or want to specify + an EFA network device, you can't use `SpotFleetLaunchSpecification`; + you must use + [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html). + """ + + addressing_type: str | None = ... + """Deprecated.""" + block_device_mappings: list[BlockDeviceMapping] | None = ... + """ + One or more block devices that are mapped to the Spot Instances. You + can't specify both a snapshot ID and an encryption value. This is + because only blank volumes can be encrypted on creation. If a snapshot + is the basis for a volume, it is not blank and its encryption status is + used for the volume encryption status. + """ + ebs_optimized: bool | None = ... + """ + Indicates whether the instances are optimized for EBS I/O. This + optimization provides dedicated throughput to Amazon EBS and an + optimized configuration stack to provide optimal EBS I/O performance. + This optimization isn't available with all instance types. Additional + usage charges apply when using an EBS Optimized instance. + + Default: `false` + """ + iam_instance_profile: IamInstanceProfileSpecification | None = ... + """The IAM instance profile.""" + image_id: str | None = ... + """The ID of the AMI.""" + instance_type: str | None = ... + """The instance type.""" + kernel_id: str | None = ... + """The ID of the kernel.""" + key_name: str | None = ... + """The name of the key pair.""" + monitoring: SpotFleetMonitoring | None = ... + """Enable or disable monitoring for the instances.""" + network_interfaces: list[InstanceNetworkInterfaceSpecification] | None = ... + """ + The network interfaces. + + Note: + `SpotFleetLaunchSpecification` does not support Elastic Fabric Adapter + (EFA). You must use + [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) + instead. + """ + placement: SpotPlacement | None = ... + """The placement information.""" + ramdisk_id: str | None = ... + """ + The ID of the RAM disk. Some kernels require additional drivers at + launch. Check the kernel requirements for information about whether you + need to specify a RAM disk. To find kernel requirements, refer to the + Amazon Web Services Resource Center and search for the kernel ID. + """ + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + subnet_id: str | None = ... + """ + The IDs of the subnets in which to launch the instances. To specify + multiple subnets, separate them using commas; for example, + \"subnet-1234abcdeexample1, subnet-0987cdef6example2\". + + If you specify a network interface, you must specify any subnets as part + of the network interface instead of using this parameter. + """ + user_data: str | None = ... + """ + The base64-encoded user data that instances use when starting up. User + data is limited to 16 KB. + """ + weighted_capacity: float | None = ... + """ + The number of units provided by the specified instance type. These are + the same units that you chose to set the target capacity in terms of + instances, or a performance characteristic such as vCPUs, memory, or + I/O. + + If the target capacity divided by this value is not a whole number, + Amazon EC2 rounds the number of instances to the next whole number. If + this value is not specified, the default is 1. + + Note: + When specifying weights, the price used in the `lowestPrice` and + `priceCapacityOptimized` allocation strategies is per *unit* hour (where + the instance price is divided by the specified weight). However, if all + the specified weights are above the requested `TargetCapacity`, + resulting in only 1 instance being launched, the price used is per + *instance* hour. + """ + tag_specifications: list[SpotFleetTagSpecification] | None = ... + """The tags to apply during creation.""" + instance_requirements: InstanceRequirements | None = ... + """ + The attributes for the instance types. When you specify instance + attributes, Amazon EC2 will identify instance types with those + attributes. + + Note: + If you specify `InstanceRequirements`, you can't specify + `InstanceType`. + """ + security_groups: list[GroupIdentifier] | None = ... + """ + The security groups. + + If you specify a network interface, you must specify any security groups + as part of the network interface instead of using this parameter. + """ + +@dataclass(kw_only=True) +class SpotFleetMonitoring(_SerdeShape): + """Describes whether monitoring is enabled.""" + + enabled: bool | None = ... + """ + Enables monitoring for the instance. + + Default: `false` + """ + +@dataclass(kw_only=True) +class SpotFleetRequestConfig(_SerdeShape): + """Describes a Spot Fleet request.""" + + activity_status: str | None = ... + """ + The progress of the Spot Fleet request. If there is an error, the status + is `error`. After all requests are placed, the status is + `pending_fulfillment`. If the size of the fleet is equal to or greater + than its target capacity, the status is `fulfilled`. If the size of the + fleet is decreased, the status is `pending_termination` while Spot + Instances are terminating. + """ + create_time: datetime | None = ... + """The creation date and time of the request.""" + spot_fleet_request_config: SpotFleetRequestConfigData | None = ... + """The configuration of the Spot Fleet request.""" + spot_fleet_request_id: str | None = ... + """The ID of the Spot Fleet request.""" + spot_fleet_request_state: str | None = ... + """The state of the Spot Fleet request.""" + tags: list[Tag] | None = ... + """The tags for a Spot Fleet resource.""" + +@dataclass(kw_only=True) +class SpotFleetRequestConfigData(_SerdeShape): + """Describes the configuration of a Spot Fleet request.""" + + allocation_strategy: str | None = ... + """ + The strategy that determines how to allocate the target Spot Instance + capacity across the Spot Instance pools specified by the Spot Fleet + launch configuration. For more information, see [Allocation strategies + for Spot + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html) + in the *Amazon EC2 User Guide*. + + priceCapacityOptimized (recommended) + + : Spot Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. Spot Fleet then + requests Spot Instances from the lowest priced of these pools. + + capacityOptimized + + : Spot Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. To give certain + instance types a higher chance of launching first, use + `capacityOptimizedPrioritized`. Set a priority for each instance type + by using the `Priority` parameter for `LaunchTemplateOverrides`. You + can assign the same priority to different `LaunchTemplateOverrides`. + EC2 implements the priorities on a best-effort basis, but optimizes + for capacity first. `capacityOptimizedPrioritized` is supported only + if your Spot Fleet uses a launch template. Note that if the + `OnDemandAllocationStrategy` is set to `prioritized`, the same + priority is applied when fulfilling On-Demand capacity. + + diversified + + : Spot Fleet requests instances from all of the Spot Instance pools that + you specify. + + lowestPrice (not recommended) + + : Warning: + We don't recommend the `lowestPrice` allocation strategy because it + has the highest risk of interruption for your Spot Instances. + Spot Fleet requests instances from the lowest priced Spot Instance + pool that has available capacity. If the lowest priced pool doesn't + have available capacity, the Spot Instances come from the next lowest + priced pool that has available capacity. If a pool runs out of + capacity before fulfilling your desired capacity, Spot Fleet will + continue to fulfill your request by drawing from the next lowest + priced pool. To ensure that your desired capacity is met, you might + receive Spot Instances from several pools. Because this strategy only + considers instance price and not capacity availability, it might lead + to high interruption rates. + + Default: `lowestPrice` + """ + on_demand_allocation_strategy: str | None = ... + """ + The order of the launch template overrides to use in fulfilling + On-Demand capacity. If you specify `lowestPrice`, Spot Fleet uses price + to determine the order, launching the lowest price first. If you specify + `prioritized`, Spot Fleet uses the priority that you assign to each Spot + Fleet launch template override, launching the highest priority first. If + you do not specify a value, Spot Fleet defaults to `lowestPrice`. + """ + spot_maintenance_strategies: SpotMaintenanceStrategies | None = ... + """ + The strategies for managing your Spot Instances that are at an elevated + risk of being interrupted. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure the + idempotency of your listings. This helps to avoid duplicate listings. + For more information, see [Ensuring + Idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + """ + excess_capacity_termination_policy: str | None = ... + """ + Indicates whether running instances should be terminated if you decrease + the target capacity of the Spot Fleet request below the current size of + the Spot Fleet. + + Supported only for fleets of type `maintain`. + """ + fulfilled_capacity: float | None = ... + """ + The number of units fulfilled by this request compared to the set target + capacity. You cannot set this value. + """ + on_demand_fulfilled_capacity: float | None = ... + """ + The number of On-Demand units fulfilled by this request compared to the + set target On-Demand capacity. + """ + iam_fleet_role: str | None = ... + """ + The Amazon Resource Name (ARN) of an Identity and Access Management + (IAM) role that grants the Spot Fleet the permission to request, launch, + terminate, and tag instances on your behalf. For more information, see + [Spot Fleet + prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) + in the *Amazon EC2 User Guide*. Spot Fleet can terminate Spot Instances + on your behalf when you cancel its Spot Fleet request using + [CancelSpotFleetRequests](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests) + or when the Spot Fleet request expires, if you set + `TerminateInstancesWithExpiration`. + """ + launch_specifications: list[SpotFleetLaunchSpecification] | None = ... + """ + The launch specifications for the Spot Fleet request. If you specify + `LaunchSpecifications`, you can't specify `LaunchTemplateConfigs`. If + you include On-Demand capacity in your request, you must use + `LaunchTemplateConfigs`. + + Note: + If an AMI specified in a launch specification is deregistered or + disabled, no new instances can be launched from the AMI. For fleets of + type `maintain`, the target capacity will not be maintained. + """ + launch_template_configs: list[LaunchTemplateConfig] | None = ... + """ + The launch template and overrides. If you specify + `LaunchTemplateConfigs`, you can't specify `LaunchSpecifications`. If + you include On-Demand capacity in your request, you must use + `LaunchTemplateConfigs`. + """ + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + target_capacity: int | None = ... + """ + The number of units to request for the Spot Fleet. You can choose to set + the target capacity in terms of instances or a performance + characteristic that is important to your application workload, such as + vCPUs, memory, or I/O. If the request type is `maintain`, you can + specify a target capacity of 0 and add capacity later. + """ + on_demand_target_capacity: int | None = ... + """ + The number of On-Demand units to request. You can choose to set the + target capacity in terms of instances or a performance characteristic + that is important to your application workload, such as vCPUs, memory, + or I/O. If the request type is `maintain`, you can specify a target + capacity of 0 and add capacity later. + """ + on_demand_max_total_price: str | None = ... + """ + The maximum amount per hour for On-Demand Instances that you're willing + to pay. You can use the `onDemandMaxTotalPrice` parameter, the + `spotMaxTotalPrice` parameter, or both parameters to ensure that your + fleet cost does not exceed your budget. If you set a maximum price per + hour for the On-Demand Instances and Spot Instances in your request, + Spot Fleet will launch instances until it reaches the maximum amount + you're willing to pay. When the maximum amount you're willing to pay + is reached, the fleet stops launching instances even if it hasn't met + the target capacity. + + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `onDemandMaxTotalPrice` + does not account for surplus credits, and, if you use surplus credits, + your final cost might be higher than what you specified for + `onDemandMaxTotalPrice`. For more information, see [Surplus credits can + incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + spot_max_total_price: str | None = ... + """ + The maximum amount per hour for Spot Instances that you're willing to + pay. You can use the `spotMaxTotalPrice` parameter, the + `onDemandMaxTotalPrice` parameter, or both parameters to ensure that + your fleet cost does not exceed your budget. If you set a maximum price + per hour for the On-Demand Instances and Spot Instances in your request, + Spot Fleet will launch instances until it reaches the maximum amount + you're willing to pay. When the maximum amount you're willing to pay + is reached, the fleet stops launching instances even if it hasn't met + the target capacity. + + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `spotMaxTotalPrice` does + not account for surplus credits, and, if you use surplus credits, your + final cost might be higher than what you specified for + `spotMaxTotalPrice`. For more information, see [Surplus credits can + incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + terminate_instances_with_expiration: bool | None = ... + """ + Indicates whether running Spot Instances are terminated when the Spot + Fleet request expires. + """ + type: str | None = ... + """ + The type of request. Indicates whether the Spot Fleet only requests the + target capacity or also attempts to maintain it. When this value is + `request`, the Spot Fleet only places the required requests. It does not + attempt to replenish Spot Instances if capacity is diminished, nor does + it submit requests in alternative Spot pools if capacity is not + available. When this value is `maintain`, the Spot Fleet maintains the + target capacity. The Spot Fleet places the required requests to meet + capacity and automatically replenishes any interrupted instances. + Default: `maintain`. `instant` is listed but is not used by Spot Fleet. + """ + valid_from: datetime | None = ... + """ + The start date and time of the request, in UTC format + (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). By default, Amazon EC2 starts + fulfilling the request immediately. + """ + valid_until: datetime | None = ... + """ + The end date and time of the request, in UTC format + (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). After the end date and time, no new + Spot Instance requests are placed or able to fulfill the request. If no + value is specified, the Spot Fleet request remains until you cancel it. + """ + replace_unhealthy_instances: bool | None = ... + """Indicates whether Spot Fleet should replace unhealthy instances.""" + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. The default is + `terminate`. + """ + load_balancers_config: LoadBalancersConfig | None = ... + """ + One or more Classic Load Balancers and target groups to attach to the + Spot Fleet request. Spot Fleet registers the running Spot Instances with + the specified Classic Load Balancers and target groups. + + With Network Load Balancers, Spot Fleet cannot register instances that + have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, + G2, HI1, HS1, M1, M2, M3, and T1. + """ + instance_pools_to_use_count: int | None = ... + """ + The number of Spot pools across which to allocate your target Spot + capacity. Valid only when Spot **AllocationStrategy** is set to + `lowest-price`. Spot Fleet selects the cheapest Spot pools and evenly + allocates your target Spot capacity across the number of Spot pools that + you specify. + + Note that Spot Fleet attempts to draw Spot Instances from the number of + pools that you specify on a best effort basis. If a pool runs out of + Spot capacity before fulfilling your target capacity, Spot Fleet will + continue to fulfill your request by drawing from the next cheapest pool. + To ensure that your target capacity is met, you might receive Spot + Instances from more than the number of pools that you specified. + Similarly, if most of the pools have no Spot capacity, you might receive + your full target capacity from fewer than the number of pools that you + specified. + """ + context: str | None = ... + """Reserved.""" + target_capacity_unit_type: str | None = ... + """ + The unit for the target capacity. You can specify this parameter only + when using attribute-based instance type selection. + + Default: `units` (the number of instances) + """ + tag_specifications: list[TagSpecification] | None = ... + """ + The key-value pair for tagging the Spot Fleet request on creation. The + value for `ResourceType` must be `spot-fleet-request`, otherwise the + Spot Fleet request fails. To tag instances at launch, specify the tags + in the [launch + template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) + (valid only if you use `LaunchTemplateConfigs`) or in the + ` `[`SpotFleetTagSpecification`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html)` ` + (valid only if you use `LaunchSpecifications`). For information about + tagging after launch, see [Tag your + resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources). + """ + +@dataclass(kw_only=True) +class SpotFleetTagSpecification(_SerdeShape): + """The tags for a Spot Fleet resource.""" + + resource_type: str | None = ... + """ + The type of resource. Currently, the only resource type that is + supported is `instance`. To tag the Spot Fleet request on creation, use + the `TagSpecifications` parameter in + ` `[`SpotFleetRequestConfigData`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html)` `. + """ + tags: list[Tag] | None = ... + """The tags.""" + +class SpotInstanceInterruptionBehavior(UnknownEnumMixin, StrEnum): + HIBERNATE = "hibernate" + STOP = "stop" + TERMINATE = "terminate" + +@dataclass(kw_only=True) +class SpotInstanceRequest(_SerdeShape): + """Describes a Spot Instance request.""" + + actual_block_hourly_price: str | None = ... + """Deprecated.""" + availability_zone_group: str | None = ... + """ + The Availability Zone group. If you specify the same Availability Zone + group for all Spot Instance requests, all Spot Instances are launched in + the same Availability Zone. + """ + block_duration_minutes: int | None = ... + """Deprecated.""" + create_time: datetime | None = ... + """ + The date and time when the Spot Instance request was created, in UTC + format (for example, *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + fault: SpotInstanceStateFault | None = ... + """The fault codes for the Spot Instance request, if any.""" + instance_id: str | None = ... + """ + The instance ID, if an instance has been launched to fulfill the Spot + Instance request. + """ + launch_group: str | None = ... + """ + The instance launch group. Launch groups are Spot Instances that launch + together and terminate together. + """ + launch_specification: LaunchSpecification | None = ... + """Additional information for launching instances.""" + launched_availability_zone: str | None = ... + """ + The Availability Zone in which the request is launched. + + Either `launchedAvailabilityZone` or `launchedAvailabilityZoneId` can be + specified, but not both + """ + launched_availability_zone_id: str | None = ... + """ + The ID of the Availability Zone in which the request is launched. + + Either `launchedAvailabilityZone` or `launchedAvailabilityZoneId` can be + specified, but not both + """ + product_description: str | None = ... + """The product description associated with the Spot Instance.""" + spot_instance_request_id: str | None = ... + """The ID of the Spot Instance request.""" + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + state: str | None = ... + """ + The state of the Spot Instance request. Spot request status information + helps track your Spot Instance requests. For more information, see [Spot + request + status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-request-status.html) + in the *Amazon EC2 User Guide*. + """ + status: SpotInstanceStatus | None = ... + """The status code and status message describing the Spot Instance request.""" + tags: list[Tag] | None = ... + """Any tags assigned to the resource.""" + type: str | None = ... + """The Spot Instance request type.""" + valid_from: datetime | None = ... + """ + The start date of the request, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). The request becomes active at this + date and time. + """ + valid_until: datetime | None = ... + """ + The end date of the request, in UTC format + (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + + - For a persistent request, the request remains active until the + `validUntil` date and time is reached. Otherwise, the request remains + active until you cancel it. + + - For a one-time request, the request remains active until all instances + launch, the request is canceled, or the `validUntil` date and time is + reached. By default, the request is valid for 7 days from the date the + request was created. + """ + instance_interruption_behavior: str | None = ... + """The behavior when a Spot Instance is interrupted.""" + +class SpotInstanceState(UnknownEnumMixin, StrEnum): + OPEN = "open" + ACTIVE = "active" + CLOSED = "closed" + CANCELLED = "cancelled" + FAILED = "failed" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class SpotInstanceStateFault(_SerdeShape): + """Describes a Spot Instance state change.""" + + code: str | None = ... + """The reason code for the Spot Instance state change.""" + message: str | None = ... + """The message for the Spot Instance state change.""" + +@dataclass(kw_only=True) +class SpotInstanceStatus(_SerdeShape): + """Describes the status of a Spot Instance request.""" + + code: str | None = ... + """ + The status code. For a list of status codes, see [Spot request status + codes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-request-status.html#spot-instance-request-status-understand) + in the *Amazon EC2 User Guide*. + """ + message: str | None = ... + """The description for the status code.""" + update_time: datetime | None = ... + """ + The date and time of the most recent status update, in UTC format (for + example, *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + +class SpotInstanceType(UnknownEnumMixin, StrEnum): + ONE_TIME = "one-time" + PERSISTENT = "persistent" + +@dataclass(kw_only=True) +class SpotMaintenanceStrategies(_SerdeShape): + """ + The strategies for managing your Spot Instances that are at an elevated + risk of being interrupted. + """ + + capacity_rebalance: SpotCapacityRebalance | None = ... + """ + The Spot Instance replacement strategy to use when Amazon EC2 emits a + signal that your Spot Instance is at an elevated risk of being + interrupted. For more information, see [Capacity + rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class SpotMarketOptions(_SerdeShape): + """The options for Spot Instances.""" + + max_price: str | None = ... + """ + The maximum hourly price that you're willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your Spot Instances will be interrupted + more frequently than if you do not specify this parameter. + + If you specify a maximum price, it must be more than USD $0.001. + Specifying a value below USD $0.001 will result in an + `InvalidParameterValue` error message. + """ + spot_instance_type: str | None = ... + """ + The Spot Instance request type. For + [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances), + persistent Spot Instance requests are only supported when the instance + interruption behavior is either `hibernate` or `stop`. + """ + block_duration_minutes: int | None = ... + """Deprecated.""" + valid_until: datetime | None = ... + """ + The end date of the request, in UTC format + (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). Supported only for persistent + requests. + + - For a persistent request, the request remains active until the + `ValidUntil` date and time is reached. Otherwise, the request remains + active until you cancel it. + + - For a one-time request, `ValidUntil` is not supported. The request + remains active until all instances launch or you cancel the request. + """ + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. + + If `Configured` (for + [`HibernationOptions`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html) + ) is set to `true`, the `InstanceInterruptionBehavior` parameter is + automatically set to `hibernate`. If you set it to `stop` or + `terminate`, you'll get an error. + + If `Configured` (for + [`HibernationOptions`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html) + ) is set to `false` or `null`, the `InstanceInterruptionBehavior` + parameter is automatically set to `terminate`. You can also set it to + `stop` or `hibernate`. + + For more information, see [Interruption + behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruption-behavior.html) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class SpotOptions(_SerdeShape): + """Describes the configuration of Spot Instances in an EC2 Fleet.""" + + allocation_strategy: str | None = ... + """ + The strategy that determines how to allocate the target Spot Instance + capacity across the Spot Instance pools specified by the EC2 Fleet + launch configuration. For more information, see [Allocation strategies + for Spot + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html) + in the *Amazon EC2 User Guide*. + + price-capacity-optimized (recommended) + + : EC2 Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. EC2 Fleet then + requests Spot Instances from the lowest priced of these pools. + + capacity-optimized + + : EC2 Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. To give certain + instance types a higher chance of launching first, use + `capacity-optimized-prioritized`. Set a priority for each instance + type by using the `Priority` parameter for `LaunchTemplateOverrides`. + You can assign the same priority to different + `LaunchTemplateOverrides`. EC2 implements the priorities on a + best-effort basis, but optimizes for capacity first. + `capacity-optimized-prioritized` is supported only if your EC2 Fleet + uses a launch template. Note that if the On-Demand + `AllocationStrategy` is set to `prioritized`, the same priority is + applied when fulfilling On-Demand capacity. + + diversified + + : EC2 Fleet requests instances from all of the Spot Instance pools that + you specify. + + lowest-price (not recommended) + + : Warning: + We don't recommend the `lowest-price` allocation strategy because it + has the highest risk of interruption for your Spot Instances. + EC2 Fleet requests instances from the lowest priced Spot Instance pool + that has available capacity. If the lowest priced pool doesn't have + available capacity, the Spot Instances come from the next lowest + priced pool that has available capacity. If a pool runs out of + capacity before fulfilling your desired capacity, EC2 Fleet will + continue to fulfill your request by drawing from the next lowest + priced pool. To ensure that your desired capacity is met, you might + receive Spot Instances from several pools. Because this strategy only + considers instance price and not capacity availability, it might lead + to high interruption rates. + + Default: `lowest-price` + """ + maintenance_strategies: FleetSpotMaintenanceStrategies | None = ... + """ + The strategies for managing your workloads on your Spot Instances that + will be interrupted. Currently only the capacity rebalance strategy is + available. + """ + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. + + Default: `terminate` + """ + instance_pools_to_use_count: int | None = ... + """ + The number of Spot pools across which to allocate your target Spot + capacity. Supported only when `AllocationStrategy` is set to + `lowest-price`. EC2 Fleet selects the cheapest Spot pools and evenly + allocates your target Spot capacity across the number of Spot pools that + you specify. + + Note that EC2 Fleet attempts to draw Spot Instances from the number of + pools that you specify on a best effort basis. If a pool runs out of + Spot capacity before fulfilling your target capacity, EC2 Fleet will + continue to fulfill your request by drawing from the next cheapest pool. + To ensure that your target capacity is met, you might receive Spot + Instances from more than the number of pools that you specified. + Similarly, if most of the pools have no Spot capacity, you might receive + your full target capacity from fewer than the number of pools that you + specified. + """ + single_instance_type: bool | None = ... + """ + Indicates that the fleet uses a single instance type to launch all Spot + Instances in the fleet. + + Supported only for fleets of type `instant`. + """ + single_availability_zone: bool | None = ... + """ + Indicates that the fleet launches all Spot Instances into a single + Availability Zone. + + Supported only for fleets of type `instant`. + """ + min_target_capacity: int | None = ... + """ + The minimum target capacity for Spot Instances in the fleet. If this + minimum capacity isn't reached, no instances are launched. + + Constraints: Maximum value of `1000`. Supported only for fleets of type + `instant`. + + At least one of the following must be specified: + `SingleAvailabilityZone` | `SingleInstanceType` + """ + max_total_price: str | None = ... + """ + The maximum amount per hour for Spot Instances that you're willing to + pay. We do not recommend using this parameter because it can lead to + increased interruptions. If you do not specify this parameter, you will + pay the current Spot price. + + Warning: + If you specify a maximum price, your Spot Instances will be interrupted + more frequently than if you do not specify this parameter. + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `maxTotalPrice` does not + account for surplus credits, and, if you use surplus credits, your final + cost might be higher than what you specified for `maxTotalPrice`. For + more information, see [Surplus credits can incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class SpotOptionsRequest(_SerdeShape): + """Describes the configuration of Spot Instances in an EC2 Fleet request.""" + + allocation_strategy: str | None = ... + """ + The strategy that determines how to allocate the target Spot Instance + capacity across the Spot Instance pools specified by the EC2 Fleet + launch configuration. For more information, see [Allocation strategies + for Spot + Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html) + in the *Amazon EC2 User Guide*. + + price-capacity-optimized (recommended) + + : EC2 Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. EC2 Fleet then + requests Spot Instances from the lowest priced of these pools. + + capacity-optimized + + : EC2 Fleet identifies the pools with the highest capacity availability + for the number of instances that are launching. This means that we + will request Spot Instances from the pools that we believe have the + lowest chance of interruption in the near term. To give certain + instance types a higher chance of launching first, use + `capacity-optimized-prioritized`. Set a priority for each instance + type by using the `Priority` parameter for `LaunchTemplateOverrides`. + You can assign the same priority to different + `LaunchTemplateOverrides`. EC2 implements the priorities on a + best-effort basis, but optimizes for capacity first. + `capacity-optimized-prioritized` is supported only if your EC2 Fleet + uses a launch template. Note that if the On-Demand + `AllocationStrategy` is set to `prioritized`, the same priority is + applied when fulfilling On-Demand capacity. + + diversified + + : EC2 Fleet requests instances from all of the Spot Instance pools that + you specify. + + lowest-price (not recommended) + + : Warning: + We don't recommend the `lowest-price` allocation strategy because it + has the highest risk of interruption for your Spot Instances. + EC2 Fleet requests instances from the lowest priced Spot Instance pool + that has available capacity. If the lowest priced pool doesn't have + available capacity, the Spot Instances come from the next lowest + priced pool that has available capacity. If a pool runs out of + capacity before fulfilling your desired capacity, EC2 Fleet will + continue to fulfill your request by drawing from the next lowest + priced pool. To ensure that your desired capacity is met, you might + receive Spot Instances from several pools. Because this strategy only + considers instance price and not capacity availability, it might lead + to high interruption rates. + + Default: `lowest-price` + """ + maintenance_strategies: FleetSpotMaintenanceStrategiesRequest | None = ... + """ + The strategies for managing your Spot Instances that are at an elevated + risk of being interrupted. + """ + instance_interruption_behavior: str | None = ... + """ + The behavior when a Spot Instance is interrupted. + + Default: `terminate` + """ + instance_pools_to_use_count: int | None = ... + """ + The number of Spot pools across which to allocate your target Spot + capacity. Supported only when Spot `AllocationStrategy` is set to + `lowest-price`. EC2 Fleet selects the cheapest Spot pools and evenly + allocates your target Spot capacity across the number of Spot pools that + you specify. + + Note that EC2 Fleet attempts to draw Spot Instances from the number of + pools that you specify on a best effort basis. If a pool runs out of + Spot capacity before fulfilling your target capacity, EC2 Fleet will + continue to fulfill your request by drawing from the next cheapest pool. + To ensure that your target capacity is met, you might receive Spot + Instances from more than the number of pools that you specified. + Similarly, if most of the pools have no Spot capacity, you might receive + your full target capacity from fewer than the number of pools that you + specified. + """ + single_instance_type: bool | None = ... + """ + Indicates that the fleet uses a single instance type to launch all Spot + Instances in the fleet. + + Supported only for fleets of type `instant`. + """ + single_availability_zone: bool | None = ... + """ + Indicates that the fleet launches all Spot Instances into a single + Availability Zone. + + Supported only for fleets of type `instant`. + """ + min_target_capacity: int | None = ... + """ + The minimum target capacity for Spot Instances in the fleet. If this + minimum capacity isn't reached, no instances are launched. + + Constraints: Maximum value of `1000`. Supported only for fleets of type + `instant`. + + At least one of the following must be specified: + `SingleAvailabilityZone` | `SingleInstanceType` + """ + max_total_price: str | None = ... + """ + The maximum amount per hour for Spot Instances that you're willing to + pay. We do not recommend using this parameter because it can lead to + increased interruptions. If you do not specify this parameter, you will + pay the current Spot price. + + Warning: + If you specify a maximum price, your Spot Instances will be interrupted + more frequently than if you do not specify this parameter. + Note: + If your fleet includes T instances that are configured as `unlimited`, + and if their average CPU usage exceeds the baseline utilization, you + will incur a charge for surplus credits. The `MaxTotalPrice` does not + account for surplus credits, and, if you use surplus credits, your final + cost might be higher than what you specified for `MaxTotalPrice`. For + more information, see [Surplus credits can incur + charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) + in the *Amazon EC2 User Guide*. + """ + +@dataclass(kw_only=True) +class SpotPlacement(_SerdeShape): + """Describes Spot Instance placement.""" + + availability_zone: str | None = ... + """ + The Availability Zone. For example, `us-east-2a`. + + [Spot Fleet only] To specify multiple Availability Zones, separate + them using commas; for example, \"`us-east-2a`, `us-east-2b`\". + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + group_name: str | None = ... + """The name of the placement group.""" + tenancy: str | None = ... + """ + The tenancy of the instance (if the instance is running in a VPC). An + instance with a tenancy of `dedicated` runs on single-tenant hardware. + The `host` tenancy is not supported for Spot Instances. + """ + availability_zone_id: str | None = ... + """ + The ID of the Availability Zone. For example, `use2-az1`. + + [Spot Fleet only] To specify multiple Availability Zones, separate + them using commas; for example, \"`use2-az1`, `use2-bz1`\". + + Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in + the request, but not both. + """ + +@dataclass(kw_only=True) +class SpotPlacementScore(_SerdeShape): + """ + The Spot placement score for this Region or Availability Zone. The score + is calculated based on the assumption that the `capacity-optimized` + allocation strategy is used and that all of the Availability Zones in + the Region can be used. + """ + + region: str | None = ... + """The Region.""" + availability_zone_id: str | None = ... + """The Availability Zone.""" + score: int | None = ... + """ + The placement score, on a scale from `1` to `10`. A score of `10` + indicates that your Spot request is highly likely to succeed in this + Region or Availability Zone. A score of `1` indicates that your Spot + request is not likely to succeed. + """ + +@dataclass(kw_only=True) +class SpotPrice(_SerdeShape): + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + + availability_zone: str | None = ... + """The Availability Zone.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + instance_type: str | None = ... + """The instance type.""" + product_description: str | None = ... + """A general description of the AMI.""" + spot_price: str | None = ... + """ + The maximum price per unit hour that you are willing to pay for a Spot + Instance. We do not recommend using this parameter because it can lead + to increased interruptions. If you do not specify this parameter, you + will pay the current Spot price. + + Warning: + If you specify a maximum price, your instances will be interrupted more + frequently than if you do not specify this parameter. + """ + timestamp: datetime | None = ... + """ + The date and time the request was created, in UTC format (for example, + *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). + """ + +class SpreadLevel(UnknownEnumMixin, StrEnum): + HOST = "host" + RACK = "rack" + +class SqlServerLicenseUsage(UnknownEnumMixin, StrEnum): + FULL = "full" + WAIVED = "waived" + +class SSEType(UnknownEnumMixin, StrEnum): + SSE_EBS = "sse-ebs" + SSE_KMS = "sse-kms" + NONE = "none" + +@dataclass(kw_only=True) +class StaleIpPermission(_SerdeShape): + """Describes a stale rule in a security group.""" + + from_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the start of the port range. If + the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP + types). + """ + ip_protocol: str | None = ... + """ + The IP protocol name (`tcp`, `udp`, `icmp`, `icmpv6`) or number (see + [Protocol + Numbers)](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). + """ + ip_ranges: list[str] | None = ... + """The IP ranges. Not applicable for stale security group rules.""" + prefix_list_ids: list[str] | None = ... + """The prefix list IDs. Not applicable for stale security group rules.""" + to_port: int | None = ... + """ + If the protocol is TCP or UDP, this is the end of the port range. If the + protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP + codes). + """ + user_id_group_pairs: list[UserIdGroupPair] | None = ... + """ + The security group pairs. Returns the ID of the referenced security + group and VPC, and the ID and status of the VPC peering connection. + """ + +@dataclass(kw_only=True) +class StaleSecurityGroup(_SerdeShape): + """ + Describes a stale security group (a security group that contains stale + rules). + """ + + description: str | None = ... + """The description of the security group.""" + group_id: str | None = ... + """The ID of the security group.""" + group_name: str | None = ... + """The name of the security group.""" + stale_ip_permissions: list[StaleIpPermission] | None = ... + """Information about the stale inbound rules in the security group.""" + stale_ip_permissions_egress: list[StaleIpPermission] | None = ... + """Information about the stale outbound rules in the security group.""" + vpc_id: str | None = ... + """The ID of the VPC for the security group.""" + +@dataclass(kw_only=True) +class StartDeclarativePoliciesReportInput(_SerdeShape): + """Dataclass for StartDeclarativePoliciesReportInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + s3_bucket: str | None = ... + """ + The name of the S3 bucket where the report will be saved. The bucket + must be in the same Region where the report generation request is made. + """ + s3_prefix: str | None = ... + """The prefix for your S3 object.""" + target_id: str | None = ... + """ + The root ID, organizational unit ID, or account ID. + + Format: + + - For root: `r-ab12` + + - For OU: `ou-ab12-cdef1234` + + - For account: `123456789012` + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply.""" + +@dataclass(kw_only=True) +class StartDeclarativePoliciesReportOutput(_SerdeShape): + """Dataclass for StartDeclarativePoliciesReportOutput structure.""" + + report_id: str | None = ... + """The ID of the report.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartInstancesInput(_SerdeShape): + """Dataclass for StartInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + additional_info: str | None = ... + """Reserved.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class StartInstancesOutput(_SerdeShape): + """Dataclass for StartInstancesOutput structure.""" + + starting_instances: list[InstanceStateChange] | None = ... + """Information about the started instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartNetworkInsightsAccessScopeAnalysisInput(_SerdeShape): + """Dataclass for StartNetworkInsightsAccessScopeAnalysisInput structure.""" + + network_insights_access_scope_id: str | None = ... + """The ID of the Network Access Scope.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class StartNetworkInsightsAccessScopeAnalysisOutput(_SerdeShape): + """Dataclass for StartNetworkInsightsAccessScopeAnalysisOutput structure.""" + + network_insights_access_scope_analysis: ( + NetworkInsightsAccessScopeAnalysis | None + ) = ... + """The Network Access Scope analysis.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartNetworkInsightsAnalysisInput(_SerdeShape): + """Dataclass for StartNetworkInsightsAnalysisInput structure.""" + + network_insights_path_id: str | None = ... + """The ID of the path.""" + additional_accounts: list[str] | None = ... + """The member accounts that contain resources that the path can traverse.""" + filter_in_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the resources that the path must + traverse. + """ + filter_out_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARN) of the resources that the path will + ignore. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + tag_specifications: list[TagSpecification] | None = ... + """The tags to apply.""" + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. For more information, see [How to ensure + idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). + """ + +@dataclass(kw_only=True) +class StartNetworkInsightsAnalysisOutput(_SerdeShape): + """Dataclass for StartNetworkInsightsAnalysisOutput structure.""" + + network_insights_analysis: NetworkInsightsAnalysis | None = ... + """Information about the network insights analysis.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartVpcEndpointServicePrivateDnsVerificationInput(_SerdeShape): + """ + Dataclass for StartVpcEndpointServicePrivateDnsVerificationInput + structure. + """ + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + service_id: str | None = ... + """The ID of the endpoint service.""" + +@dataclass(kw_only=True) +class StartVpcEndpointServicePrivateDnsVerificationOutput(_SerdeShape): + """ + Dataclass for StartVpcEndpointServicePrivateDnsVerificationOutput + structure. + """ + + return_value: bool | None = ... + """Returns `true` if the request succeeds; otherwise, it returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class State(UnknownEnumMixin, StrEnum): + PENDING_ACCEPTANCE = "PendingAcceptance" + PENDING = "Pending" + AVAILABLE = "Available" + DELETING = "Deleting" + DELETED = "Deleted" + REJECTED = "Rejected" + FAILED = "Failed" + EXPIRED = "Expired" + PARTIAL = "Partial" + +@dataclass(kw_only=True) +class StateReason(_SerdeShape): + """Describes a state change.""" + + code: str | None = ... + """The reason code for the state change.""" + message: str | None = ... + """ + The message for the state change. + + - `Server.InsufficientInstanceCapacity`: There was insufficient capacity + available to satisfy the launch request. + + - `Server.InternalError`: An internal error caused the instance to + terminate during launch. + + - `Server.ScheduledStop`: The instance was stopped due to a scheduled + retirement. + + - `Server.SpotInstanceShutdown`: The instance was stopped because the + number of Spot requests with a maximum price equal to or higher than + the Spot price exceeded available capacity or because of an increase + in the Spot price. + + - `Server.SpotInstanceTermination`: The instance was terminated because + the number of Spot requests with a maximum price equal to or higher + than the Spot price exceeded available capacity or because of an + increase in the Spot price. + + - `Client.InstanceInitiatedShutdown`: The instance was shut down from + the operating system of the instance. + + - `Client.InstanceTerminated`: The instance was terminated or rebooted + during AMI creation. + + - `Client.InternalError`: A client error caused the instance to + terminate during launch. + + - `Client.InvalidSnapshot.NotFound`: The specified snapshot was not + found. + + - `Client.UserInitiatedHibernate`: Hibernation was initiated on the + instance. + + - `Client.UserInitiatedShutdown`: The instance was shut down using the + Amazon EC2 API. + + - `Client.VolumeLimitExceeded`: The limit on the number of EBS volumes + or total storage was exceeded. Decrease usage or request an increase + in your account limits. + """ + +class StaticSourcesSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class StatisticType(UnknownEnumMixin, StrEnum): + P50 = "p50" + +class Status(UnknownEnumMixin, StrEnum): + MOVE_IN_PROGRESS = "MoveInProgress" + IN_VPC = "InVpc" + IN_CLASSIC = "InClassic" + +class StatusName(UnknownEnumMixin, StrEnum): + REACHABILITY = "reachability" + +class StatusType(UnknownEnumMixin, StrEnum): + PASSED = "passed" + FAILED = "failed" + INSUFFICIENT_DATA = "insufficient-data" + INITIALIZING = "initializing" + +@dataclass(kw_only=True) +class StopInstancesInput(_SerdeShape): + """Dataclass for StopInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + hibernate: bool | None = ... + """ + Hibernates the instance if the instance was enabled for hibernation at + launch. If the instance cannot hibernate successfully, a normal shutdown + occurs. For more information, see [Hibernate your Amazon EC2 + instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + skip_os_shutdown: bool | None = ... + """ + Specifies whether to bypass the graceful OS shutdown process when the + instance is stopped. + + Warning: + Bypassing the graceful OS shutdown might result in data loss or + corruption (for example, memory contents not flushed to disk or loss of + in-flight IOs) or skipped shutdown scripts. + + Default: `false` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + force: bool | None = ... + """ + Forces the instance to stop. The instance will first attempt a graceful + shutdown, which includes flushing file system caches and metadata. If + the graceful shutdown fails to complete within the timeout period, the + instance shuts down forcibly without flushing the file system caches and + metadata. + + After using this option, you must perform file system check and repair + procedures. This option is not recommended for Windows instances. For + more information, see [Troubleshoot Amazon EC2 instance stop + issues](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) + in the *Amazon EC2 User Guide*. + + Default: `false` + """ + +@dataclass(kw_only=True) +class StopInstancesOutput(_SerdeShape): + """Dataclass for StopInstancesOutput structure.""" + + stopping_instances: list[InstanceStateChange] | None = ... + """Information about the stopped instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Storage(_SerdeShape): + """Describes the storage location for an instance store-backed AMI.""" + + s3: S3Storage | None = ... + """An Amazon S3 storage location.""" + +@dataclass(kw_only=True) +class StorageLocation(_SerdeShape): + """Describes a storage location in Amazon S3.""" + + bucket: str | None = ... + """The name of the S3 bucket.""" + key: str | None = ... + """The key.""" + +class StorageTier(UnknownEnumMixin, StrEnum): + ARCHIVE = "archive" + STANDARD = "standard" + +@dataclass(kw_only=True) +class StoreImageTaskResult(_SerdeShape): + """ + The information about the AMI store task, including the progress of the + task. + """ + + ami_id: str | None = ... + """The ID of the AMI that is being stored.""" + task_start_time: datetime | None = ... + """The time the task started.""" + bucket: str | None = ... + """The name of the Amazon S3 bucket that contains the stored AMI object.""" + s3object_key: str | None = ... + """The name of the stored AMI object in the bucket.""" + progress_percentage: int | None = ... + """The progress of the task as a percentage.""" + store_task_state: str | None = ... + """The state of the store task (`InProgress`, `Completed`, or `Failed`).""" + store_task_failure_reason: str | None = ... + """ + If the tasks fails, the reason for the failure is returned. If the task + succeeds, `null` is returned. + """ + +@dataclass(kw_only=True) +class Subnet(_SerdeShape): + """Describes a subnet.""" + + availability_zone_id: str | None = ... + """The AZ ID of the subnet.""" + enable_lni_at_device_index: int | None = ... + """ + Indicates the device position for local network interfaces in this + subnet. For example, `1` indicates local network interfaces in this + subnet are the secondary network interface (eth1). + """ + map_customer_owned_ip_on_launch: bool | None = ... + """ + Indicates whether a network interface created in this subnet (including + a network interface created by RunInstances) receives a customer-owned + IPv4 address. + """ + customer_owned_ipv4_pool: str | None = ... + """The customer-owned IPv4 address pool associated with the subnet.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the subnet.""" + assign_ipv6_address_on_creation: bool | None = ... + """ + Indicates whether a network interface created in this subnet (including + a network interface created by RunInstances) receives an IPv6 address. + """ + ipv6_cidr_block_association_set: list[SubnetIpv6CidrBlockAssociation] | None = ... + """Information about the IPv6 CIDR blocks associated with the subnet.""" + tags: list[Tag] | None = ... + """Any tags assigned to the subnet.""" + subnet_arn: str | None = ... + """The Amazon Resource Name (ARN) of the subnet.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + enable_dns64: bool | None = ... + """ + Indicates whether DNS queries made to the Amazon-provided DNS Resolver + in this subnet should return synthetic IPv6 addresses for IPv4-only + destinations. + """ + ipv6_native: bool | None = ... + """Indicates whether this is an IPv6 only subnet.""" + private_dns_name_options_on_launch: PrivateDnsNameOptionsOnLaunch | None = ... + """ + The type of hostnames to assign to instances in the subnet at launch. An + instance hostname is based on the IPv4 address or ID of the instance. + """ + block_public_access_states: BlockPublicAccessStates | None = ... + """The state of VPC Block Public Access (BPA).""" + type: str | None = ... + """ + Indicates if this is a subnet used with Amazon Elastic VMware Service + (EVS). Possible values are `Elastic VMware Service` or no value. For + more information about Amazon EVS, see [*Amazon Elastic VMware Service + API + Reference*](https://docs.aws.amazon.com/evs/latest/APIReference/Welcome.html) + . + """ + subnet_id: str | None = ... + """The ID of the subnet.""" + state: str | None = ... + """ + The current state of the subnet. + + - `failed`: The underlying infrastructure to support the subnet failed + to provision as expected. + + - `failed-insufficient-capacity`: The underlying infrastructure to + support the subnet failed to provision due to a shortage of EC2 + instance capacity. + """ + vpc_id: str | None = ... + """The ID of the VPC the subnet is in.""" + cidr_block: str | None = ... + """The IPv4 CIDR block assigned to the subnet.""" + available_ip_address_count: int | None = ... + """ + The number of unused private IPv4 addresses in the subnet. The IPv4 + addresses for any stopped instances are considered unavailable. + """ + availability_zone: str | None = ... + """The Availability Zone of the subnet.""" + default_for_az: bool | None = ... + """Indicates whether this is the default subnet for the Availability Zone.""" + map_public_ip_on_launch: bool | None = ... + """ + Indicates whether instances launched in this subnet receive a public + IPv4 address. + + Amazon Web Services charges for all public IPv4 addresses, including + public IPv4 addresses associated with running instances and Elastic IP + addresses. For more information, see the *Public IPv4 Address* tab on + the [Amazon VPC pricing page](http://aws.amazon.com/vpc/pricing/). + """ + +@dataclass(kw_only=True) +class SubnetAssociation(_SerdeShape): + """ + Describes the subnet association with the transit gateway multicast + domain. + """ + + subnet_id: str | None = ... + """The ID of the subnet.""" + state: str | None = ... + """The state of the subnet association.""" + +@dataclass(kw_only=True) +class SubnetCidrBlockState(_SerdeShape): + """Describes the state of a CIDR block.""" + + state: str | None = ... + """The state of a CIDR block.""" + status_message: str | None = ... + """A message about the status of the CIDR block, if applicable.""" + +class SubnetCidrBlockStateCode(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + FAILING = "failing" + FAILED = "failed" + +@dataclass(kw_only=True) +class SubnetCidrReservation(_SerdeShape): + """Describes a subnet CIDR reservation.""" + + subnet_cidr_reservation_id: str | None = ... + """The ID of the subnet CIDR reservation.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + cidr: str | None = ... + """The CIDR that has been reserved.""" + reservation_type: str | None = ... + """The type of reservation.""" + owner_id: str | None = ... + """The ID of the account that owns the subnet CIDR reservation.""" + description: str | None = ... + """The description assigned to the subnet CIDR reservation.""" + tags: list[Tag] | None = ... + """The tags assigned to the subnet CIDR reservation.""" + +class SubnetCidrReservationType(UnknownEnumMixin, StrEnum): + PREFIX = "prefix" + EXPLICIT = "explicit" + +@dataclass(kw_only=True) +class SubnetConfiguration(_SerdeShape): + """Describes the configuration of a subnet for a VPC endpoint.""" + + subnet_id: str | None = ... + """The ID of the subnet.""" + ipv4: str | None = ... + """ + The IPv4 address to assign to the endpoint network interface in the + subnet. You must provide an IPv4 address if the VPC endpoint supports + IPv4. + + If you specify an IPv4 address when modifying a VPC endpoint, we replace + the existing endpoint network interface with a new endpoint network + interface with this IP address. This process temporarily disconnects the + subnet and the VPC endpoint. + """ + ipv6: str | None = ... + """ + The IPv6 address to assign to the endpoint network interface in the + subnet. You must provide an IPv6 address if the VPC endpoint supports + IPv6. + + If you specify an IPv6 address when modifying a VPC endpoint, we replace + the existing endpoint network interface with a new endpoint network + interface with this IP address. This process temporarily disconnects the + subnet and the VPC endpoint. + """ + +@dataclass(kw_only=True) +class SubnetIpPrefixes(_SerdeShape): + """Prefixes of the subnet IP.""" + + subnet_id: str | None = ... + """ID of the subnet.""" + ip_prefixes: list[str] | None = ... + """Array of SubnetIpPrefixes objects.""" + +@dataclass(kw_only=True) +class SubnetIpv6CidrBlockAssociation(_SerdeShape): + """Describes an association between a subnet and an IPv6 CIDR block.""" + + association_id: str | None = ... + """The ID of the association.""" + ipv6_cidr_block: str | None = ... + """The IPv6 CIDR block.""" + ipv6_cidr_block_state: SubnetCidrBlockState | None = ... + """The state of the CIDR block.""" + ipv6_address_attribute: str | None = ... + """ + Public IPv6 addresses are those advertised on the internet from Amazon + Web Services. Private IP addresses are not and cannot be advertised on + the internet from Amazon Web Services. + """ + ip_source: str | None = ... + """ + The source that allocated the IP address space. `byoip` or `amazon` + indicates public IP address space allocated by Amazon or space that you + have allocated with Bring your own IP (BYOIP). `none` indicates private + space. + """ + +class SubnetState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + UNAVAILABLE = "unavailable" + FAILED = "failed" + FAILED_INSUFFICIENT_CAPACITY = "failed-insufficient-capacity" + +@dataclass(kw_only=True) +class Subscription(_SerdeShape): + """Describes an Infrastructure Performance subscription.""" + + source: str | None = ... + """ + The Region or Availability Zone that's the source for the subscription. + For example, `us-east-1`. + """ + destination: str | None = ... + """ + The Region or Availability Zone that's the target for the subscription. + For example, `eu-west-1`. + """ + metric: str | None = ... + """The metric used for the subscription.""" + statistic: str | None = ... + """The statistic used for the subscription.""" + period: str | None = ... + """The data aggregation time for the subscription.""" + +@dataclass(kw_only=True) +class SuccessfulAssociationResponseObject(_SerdeShape): + """Describes a successful application status check association.""" + + application_status_check_id: str | None = ... + """The ID of the application status check.""" + association_type: str | None = ... + """The type of association. Valid values: `EC2TAG` and `INSTANCE_ID`.""" + association_value: str | None = ... + """ + The association value. For `EC2TAG`, the value is formatted as + `key=value`. For `INSTANCE_ID`, the value is the instance ID. + """ + +@dataclass(kw_only=True) +class SuccessfulInstanceCreditSpecificationItem(_SerdeShape): + """ + Describes the burstable performance instance whose credit option for CPU + usage was successfully modified. + """ + + instance_id: str | None = ... + """The ID of the instance.""" + +@dataclass(kw_only=True) +class SuccessfulQueuedPurchaseDeletion(_SerdeShape): + """ + Describes a Reserved Instance whose queued purchase was successfully + deleted. + """ + + reserved_instances_id: str | None = ... + """The ID of the Reserved Instance.""" + +@dataclass(kw_only=True) +class SuccessfulSuppressionResponseObject(_SerdeShape): + """Describes a successful application status check suppression.""" + + instance_id: str | None = ... + """The ID of the instance.""" + suppress_at: datetime | None = ... + """The date and time when suppression started.""" + resume_at: datetime | None = ... + """The date and time when suppression ends and health checks resume.""" + +class SummaryStatus(UnknownEnumMixin, StrEnum): + OK = "ok" + IMPAIRED = "impaired" + INSUFFICIENT_DATA = "insufficient-data" + NOT_APPLICABLE = "not-applicable" + INITIALIZING = "initializing" + +class SupportabilityMarketType(UnknownEnumMixin, StrEnum): + ON_DEMAND = "on-demand" + SPOT = "spot" + +class SupportabilityScore(UnknownEnumMixin, StrEnum): + HIGH = "high" + MEDIUM = "medium" + LOW = "low" + UNSUPPORTED = "unsupported" + +class SupportedAdditionalProcessorFeature(UnknownEnumMixin, StrEnum): + AMD_SEV_SNP = "amd-sev-snp" + NESTED_VIRTUALIZATION = "nested-virtualization" + +@dataclass(kw_only=True) +class SupportedRegionDetail(_SerdeShape): + """Describes a supported Region.""" + + region: str | None = ... + """The Region code.""" + service_state: str | None = ... + """ + The service state. The possible values are `Pending`, `Available`, + `Deleting`, `Deleted`, `Failed`, and `Closed`. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """Describes a tag.""" + + key: str | None = ... + """ + The key of the tag. + + Constraints: Tag keys are case-sensitive and accept a maximum of 127 + Unicode characters. May not begin with `aws:`. + """ + value: str | None = ... + """ + The value of the tag. + + Constraints: Tag values are case-sensitive and accept a maximum of 256 + Unicode characters. + """ + +@dataclass(kw_only=True) +class TagDescription(_SerdeShape): + """Describes a tag.""" + + key: str | None = ... + """The tag key.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The resource type.""" + value: str | None = ... + """The tag value.""" + +@dataclass(kw_only=True) +class TagFieldSpecificationRequest(_SerdeShape): + """ + A single resource's tag configuration associated with the Flow Logs + Amazon EC2 Tags feature fields in your custom log format. + """ + + resource_type: str | None = ... + """ + The resource type for the tag keys associated with the Flow Logs Amazon + EC2 Tags feature fields in your custom log format. + """ + tag_keys: list[str] | None = ... + """ + The tag keys on your tagged resources to be displayed by the Flow Logs + Amazon EC2 Tags feature fields in your custom log format. + """ + +@dataclass(kw_only=True) +class TagFieldSpecificationResponse(_SerdeShape): + """ + A single resource's tag configuration associated with the Flow Logs + Amazon EC2 Tags feature fields in your custom log format. + """ + + resource_type: str | None = ... + """ + The resource type for the tag keys associated with the Flow Logs Amazon + EC2 Tags feature fields in your custom log format. + """ + tag_keys: list[str] | None = ... + """ + The tag keys on your tagged resources to be displayed by the Flow Logs + Amazon EC2 Tags feature fields in your custom log format. + """ + +class TaggableResourceType(UnknownEnumMixin, StrEnum): + NETWORK_INTERFACE = "network-interface" + INSTANCE = "instance" + AUTO_SCALING_GROUP = "auto-scaling-group" + +@dataclass(kw_only=True) +class TagSpecification(_SerdeShape): + """ + The tags to apply to a resource when the resource is being created. When + you specify a tag, you must specify the resource type to tag, otherwise + the request will fail. + + Note: + The `Valid Values` lists all the resource types that can be tagged. + However, the action you're using might not support tagging all of these + resource types. If you try to tag a resource type that is unsupported + for the action you're using, you'll get an error. + """ + + resource_type: str | None = ... + """The type of resource to tag on creation.""" + tags: list[Tag] | None = ... + """The tags to apply to the resource.""" + +@dataclass(kw_only=True) +class TargetCapacitySpecification(_SerdeShape): + """ + The number of units to request. You can choose to set the target + capacity in terms of instances or a performance characteristic that is + important to your application workload, such as vCPUs, memory, or I/O. + If the request type is `maintain`, you can specify a target capacity of + 0 and add capacity later. + + You can use the On-Demand Instance `MaxTotalPrice` parameter, the Spot + Instance `MaxTotalPrice`, or both to ensure that your fleet cost does + not exceed your budget. If you set a maximum price per hour for the + On-Demand Instances and Spot Instances in your request, EC2 Fleet will + launch instances until it reaches the maximum amount that you're + willing to pay. When the maximum amount you're willing to pay is + reached, the fleet stops launching instances even if it hasn't met the + target capacity. The `MaxTotalPrice` parameters are located in + [OnDemandOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_OnDemandOptions.html) + and + [SpotOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotOptions). + """ + + total_target_capacity: int | None = ... + """The number of units to request, filled the default target capacity type.""" + on_demand_target_capacity: int | None = ... + """ + The number of On-Demand units to request. If you specify a target + capacity for Spot units, you cannot specify a target capacity for + On-Demand units. + """ + spot_target_capacity: int | None = ... + """ + The maximum number of Spot units to launch. If you specify a target + capacity for On-Demand units, you cannot specify a target capacity for + Spot units. + """ + default_target_capacity_type: str | None = ... + """The default target capacity type.""" + target_capacity_unit_type: str | None = ... + """The unit for the target capacity.""" + +@dataclass(kw_only=True) +class TargetCapacitySpecificationRequest(_SerdeShape): + """ + The number of units to request. You can choose to set the target + capacity as the number of instances. Or you can set the target capacity + to a performance characteristic that is important to your application + workload, such as vCPUs, memory, or I/O. If the request type is + `maintain`, you can specify a target capacity of 0 and add capacity + later. + + You can use the On-Demand Instance `MaxTotalPrice` parameter, the Spot + Instance `MaxTotalPrice` parameter, or both parameters to ensure that + your fleet cost does not exceed your budget. If you set a maximum price + per hour for the On-Demand Instances and Spot Instances in your request, + EC2 Fleet will launch instances until it reaches the maximum amount that + you're willing to pay. When the maximum amount you're willing to pay + is reached, the fleet stops launching instances even if it hasn't met + the target capacity. The `MaxTotalPrice` parameters are located in + [OnDemandOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_OnDemandOptionsRequest) + and + [SpotOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotOptionsRequest). + """ + + total_target_capacity: int | None = ... + """ + The number of units to request, filled using the default target capacity + type. + """ + on_demand_target_capacity: int | None = ... + """The number of On-Demand units to request.""" + spot_target_capacity: int | None = ... + """The number of Spot units to request.""" + default_target_capacity_type: str | None = ... + """The default target capacity type.""" + target_capacity_unit_type: str | None = ... + """ + The unit for the target capacity. You can specify this parameter only + when using attributed-based instance type selection. + + Default: `units` (the number of instances) + """ + +class TargetCapacityUnitType(UnknownEnumMixin, StrEnum): + VCPU = "vcpu" + MEMORY_MIB = "memory-mib" + UNITS = "units" + +@dataclass(kw_only=True) +class TargetConfiguration(_SerdeShape): + """Information about the Convertible Reserved Instance offering.""" + + instance_count: int | None = ... + """ + The number of instances the Convertible Reserved Instance offering can + be applied to. This parameter is reserved and cannot be specified in a + request + """ + offering_id: str | None = ... + """The ID of the Convertible Reserved Instance offering.""" + +@dataclass(kw_only=True) +class TargetConfigurationRequest(_SerdeShape): + """Details about the target configuration.""" + + instance_count: int | None = ... + """ + The number of instances the Convertible Reserved Instance offering can + be applied to. This parameter is reserved and cannot be specified in a + request + """ + offering_id: str | None = ... + """The Convertible Reserved Instance offering ID.""" + +@dataclass(kw_only=True) +class TargetGroup(_SerdeShape): + """Describes a load balancer target group.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the target group.""" + +@dataclass(kw_only=True) +class TargetGroupsConfig(_SerdeShape): + """ + Describes the target groups to attach to a Spot Fleet. Spot Fleet + registers the running Spot Instances with these target groups. + """ + + target_groups: list[TargetGroup] | None = ... + """One or more target groups.""" + +@dataclass(kw_only=True) +class TargetNetwork(_SerdeShape): + """Describes a target network associated with a Client VPN endpoint.""" + + association_id: str | None = ... + """The ID of the association.""" + vpc_id: str | None = ... + """The ID of the VPC in which the target network (subnet) is located.""" + target_network_id: str | None = ... + """The ID of the subnet specified as the target network.""" + client_vpn_endpoint_id: str | None = ... + """ + The ID of the Client VPN endpoint with which the target network is + associated. + """ + status: AssociationStatus | None = ... + """The current state of the target network association.""" + security_groups: list[str] | None = ... + """ + The IDs of the security groups applied to the target network + association. + """ + availability_zones: list[str] | None = ... + """ + The Availability Zone names for the target network association, if the + Client VPN endpoint uses a Transit Gateway. + """ + availability_zone_ids: list[str] | None = ... + """ + The Availability Zone IDs for the target network association, if the + Client VPN endpoint uses a Transit Gateway. + """ + +@dataclass(kw_only=True) +class TargetReservationValue(_SerdeShape): + """The total value of the new Convertible Reserved Instances.""" + + reservation_value: ReservationValue | None = ... + """ + The total value of the Convertible Reserved Instances that make up the + exchange. This is the sum of the list value, remaining upfront price, + and additional upfront cost of the exchange. + """ + target_configuration: TargetConfiguration | None = ... + """ + The configuration of the Convertible Reserved Instances that make up the + exchange. + """ + +class TargetStorageTier(UnknownEnumMixin, StrEnum): + ARCHIVE = "archive" + +class TelemetryStatus(UnknownEnumMixin, StrEnum): + UP = "UP" + DOWN = "DOWN" + +class Tenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + DEDICATED = "dedicated" + HOST = "host" + +@dataclass(kw_only=True) +class TerminateClientVpnConnectionsInput(_SerdeShape): + """Dataclass for TerminateClientVpnConnectionsInput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint to which the client is connected.""" + connection_id: str | None = ... + """The ID of the client connection to be terminated.""" + username: str | None = ... + """ + The name of the user who initiated the connection. Use this option to + terminate all active connections for the specified user. This option can + only be used if the user has established up to five connections. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class TerminateClientVpnConnectionsOutput(_SerdeShape): + """Dataclass for TerminateClientVpnConnectionsOutput structure.""" + + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + username: str | None = ... + """The user who established the terminated client connections.""" + connection_statuses: list[TerminateConnectionStatus] | None = ... + """The current state of the client connections.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TerminateConnectionStatus(_SerdeShape): + """Information about a terminated Client VPN endpoint client connection.""" + + connection_id: str | None = ... + """The ID of the client connection.""" + previous_status: ClientVpnConnectionStatus | None = ... + """The state of the client connection.""" + current_status: ClientVpnConnectionStatus | None = ... + """A message about the status of the client connection, if applicable.""" + +@dataclass(kw_only=True) +class TerminateInstancesInput(_SerdeShape): + """Dataclass for TerminateInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """ + The IDs of the instances. + + Constraints: Up to 1000 instance IDs. We recommend breaking up this + request into smaller batches. + """ + force: bool | None = ... + """ + Forces the instances to terminate. The instance will first attempt a + graceful shutdown, which includes flushing file system caches and + metadata. If the graceful shutdown fails to complete within the timeout + period, the instance shuts down forcibly without flushing the file + system caches and metadata. + """ + skip_os_shutdown: bool | None = ... + """ + Specifies whether to bypass the graceful OS shutdown process when the + instance is terminated. + + Default: `false` + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class TerminateInstancesOutput(_SerdeShape): + """Dataclass for TerminateInstancesOutput structure.""" + + terminating_instances: list[InstanceStateChange] | None = ... + """Information about the terminated instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ThroughResourcesStatement(_SerdeShape): + """Describes a through resource statement.""" + + resource_statement: ResourceStatement | None = ... + """The resource statement.""" + +@dataclass(kw_only=True) +class ThroughResourcesStatementRequest(_SerdeShape): + """Describes a through resource statement.""" + + resource_statement: ResourceStatementRequest | None = ... + """The resource statement.""" + +class TieringOperationStatus(UnknownEnumMixin, StrEnum): + ARCHIVAL_IN_PROGRESS = "archival-in-progress" + ARCHIVAL_COMPLETED = "archival-completed" + ARCHIVAL_FAILED = "archival-failed" + TEMPORARY_RESTORE_IN_PROGRESS = "temporary-restore-in-progress" + TEMPORARY_RESTORE_COMPLETED = "temporary-restore-completed" + TEMPORARY_RESTORE_FAILED = "temporary-restore-failed" + PERMANENT_RESTORE_IN_PROGRESS = "permanent-restore-in-progress" + PERMANENT_RESTORE_COMPLETED = "permanent-restore-completed" + PERMANENT_RESTORE_FAILED = "permanent-restore-failed" + +class TokenState(UnknownEnumMixin, StrEnum): + VALID = "valid" + EXPIRED = "expired" + +@dataclass(kw_only=True) +class TotalLocalStorageGB(_SerdeShape): + """The minimum and maximum amount of total local storage, in GB.""" + + min: float | None = ... + """ + The minimum amount of total local storage, in GB. If this parameter is + not specified, there is no minimum limit. + """ + max: float | None = ... + """ + The maximum amount of total local storage, in GB. If this parameter is + not specified, there is no maximum limit. + """ + +@dataclass(kw_only=True) +class TotalLocalStorageGBRequest(_SerdeShape): + """The minimum and maximum amount of total local storage, in GB.""" + + min: float | None = ... + """ + The minimum amount of total local storage, in GB. To specify no minimum + limit, omit this parameter. + """ + max: float | None = ... + """ + The maximum amount of total local storage, in GB. To specify no maximum + limit, omit this parameter. + """ + +class TpmSupportValues(UnknownEnumMixin, StrEnum): + V2_0 = "v2.0" + +class TrafficDirection(UnknownEnumMixin, StrEnum): + INGRESS = "ingress" + EGRESS = "egress" + +class TrafficIpAddressType(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + DUAL_STACK = "dual-stack" + +@dataclass(kw_only=True) +class TrafficMirrorFilter(_SerdeShape): + """Describes the Traffic Mirror filter.""" + + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + ingress_filter_rules: list[TrafficMirrorFilterRule] | None = ... + """ + Information about the ingress rules that are associated with the Traffic + Mirror filter. + """ + egress_filter_rules: list[TrafficMirrorFilterRule] | None = ... + """ + Information about the egress rules that are associated with the Traffic + Mirror filter. + """ + network_services: list[str] | None = ... + """ + The network service traffic that is associated with the Traffic Mirror + filter. + """ + description: str | None = ... + """The description of the Traffic Mirror filter.""" + tags: list[Tag] | None = ... + """The tags assigned to the Traffic Mirror filter.""" + +@dataclass(kw_only=True) +class TrafficMirrorFilterRule(_SerdeShape): + """Describes the Traffic Mirror rule.""" + + traffic_mirror_filter_rule_id: str | None = ... + """The ID of the Traffic Mirror rule.""" + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter that the rule is associated with.""" + traffic_direction: str | None = ... + """The traffic direction assigned to the Traffic Mirror rule.""" + rule_number: int | None = ... + """The rule number of the Traffic Mirror rule.""" + rule_action: str | None = ... + """The action assigned to the Traffic Mirror rule.""" + protocol: int | None = ... + """The protocol assigned to the Traffic Mirror rule.""" + destination_port_range: TrafficMirrorPortRange | None = ... + """The destination port range assigned to the Traffic Mirror rule.""" + source_port_range: TrafficMirrorPortRange | None = ... + """The source port range assigned to the Traffic Mirror rule.""" + destination_cidr_block: str | None = ... + """The destination CIDR block assigned to the Traffic Mirror rule.""" + source_cidr_block: str | None = ... + """The source CIDR block assigned to the Traffic Mirror rule.""" + description: str | None = ... + """The description of the Traffic Mirror rule.""" + tags: list[Tag] | None = ... + """Tags on Traffic Mirroring filter rules.""" + +class TrafficMirrorFilterRuleField(UnknownEnumMixin, StrEnum): + DESTINATION_PORT_RANGE = "destination-port-range" + SOURCE_PORT_RANGE = "source-port-range" + PROTOCOL = "protocol" + DESCRIPTION = "description" + +class TrafficMirrorNetworkService(UnknownEnumMixin, StrEnum): + AMAZON_DNS = "amazon-dns" + +@dataclass(kw_only=True) +class TrafficMirrorPortRange(_SerdeShape): + """Describes the Traffic Mirror port range.""" + + from_port: int | None = ... + """ + The start of the Traffic Mirror port range. This applies to the TCP and + UDP protocols. + """ + to_port: int | None = ... + """ + The end of the Traffic Mirror port range. This applies to the TCP and + UDP protocols. + """ + +@dataclass(kw_only=True) +class TrafficMirrorPortRangeRequest(_SerdeShape): + """Information about the Traffic Mirror filter rule port range.""" + + from_port: int | None = ... + """ + The first port in the Traffic Mirror port range. This applies to the TCP + and UDP protocols. + """ + to_port: int | None = ... + """ + The last port in the Traffic Mirror port range. This applies to the TCP + and UDP protocols. + """ + +class TrafficMirrorRuleAction(UnknownEnumMixin, StrEnum): + ACCEPT = "accept" + REJECT = "reject" + +@dataclass(kw_only=True) +class TrafficMirrorSession(_SerdeShape): + """Describes a Traffic Mirror session.""" + + traffic_mirror_session_id: str | None = ... + """The ID for the Traffic Mirror session.""" + traffic_mirror_target_id: str | None = ... + """The ID of the Traffic Mirror target.""" + traffic_mirror_filter_id: str | None = ... + """The ID of the Traffic Mirror filter.""" + network_interface_id: str | None = ... + """The ID of the Traffic Mirror session's network interface.""" + owner_id: str | None = ... + """The ID of the account that owns the Traffic Mirror session.""" + packet_length: int | None = ... + """ + The number of bytes in each packet to mirror. These are the bytes after + the VXLAN header. To mirror a subset, set this to the length (in bytes) + to mirror. For example, if you set this value to 100, then the first 100 + bytes that meet the filter criteria are copied to the target. Do not + specify this parameter when you want to mirror the entire packet + """ + session_number: int | None = ... + """ + The session number determines the order in which sessions are evaluated + when an interface is used by multiple sessions. The first session with a + matching filter is the one that mirrors the packets. + + Valid values are 1-32766. + """ + virtual_network_id: int | None = ... + """The virtual network ID associated with the Traffic Mirror session.""" + description: str | None = ... + """The description of the Traffic Mirror session.""" + tags: list[Tag] | None = ... + """The tags assigned to the Traffic Mirror session.""" + +class TrafficMirrorSessionField(UnknownEnumMixin, StrEnum): + PACKET_LENGTH = "packet-length" + DESCRIPTION = "description" + VIRTUAL_NETWORK_ID = "virtual-network-id" + +@dataclass(kw_only=True) +class TrafficMirrorTarget(_SerdeShape): + """Describes a Traffic Mirror target.""" + + traffic_mirror_target_id: str | None = ... + """The ID of the Traffic Mirror target.""" + network_interface_id: str | None = ... + """The network interface ID that is attached to the target.""" + network_load_balancer_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Network Load Balancer.""" + type: str | None = ... + """The type of Traffic Mirror target.""" + description: str | None = ... + """Information about the Traffic Mirror target.""" + owner_id: str | None = ... + """The ID of the account that owns the Traffic Mirror target.""" + tags: list[Tag] | None = ... + """The tags assigned to the Traffic Mirror target.""" + gateway_load_balancer_endpoint_id: str | None = ... + """The ID of the Gateway Load Balancer endpoint.""" + +class TrafficMirrorTargetType(UnknownEnumMixin, StrEnum): + NETWORK_INTERFACE = "network-interface" + NETWORK_LOAD_BALANCER = "network-load-balancer" + GATEWAY_LOAD_BALANCER_ENDPOINT = "gateway-load-balancer-endpoint" + +class TrafficType(UnknownEnumMixin, StrEnum): + ACCEPT = "ACCEPT" + REJECT = "REJECT" + ALL = "ALL" + +class TransferType(UnknownEnumMixin, StrEnum): + TIME_BASED = "time-based" + STANDARD = "standard" + +@dataclass(kw_only=True) +class TransitGateway(_SerdeShape): + """Describes a transit gateway.""" + + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + transit_gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the transit gateway.""" + state: str | None = ... + """The state of the transit gateway.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the transit gateway.""" + description: str | None = ... + """The description of the transit gateway.""" + creation_time: datetime | None = ... + """The creation time.""" + options: TransitGatewayOptions | None = ... + """The transit gateway options.""" + tags: list[Tag] | None = ... + """The tags for the transit gateway.""" + +@dataclass(kw_only=True) +class TransitGatewayAssociation(_SerdeShape): + """ + Describes an association between a resource attachment and a transit + gateway route table. + """ + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + state: str | None = ... + """The state of the association.""" + +class TransitGatewayAssociationState(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + +@dataclass(kw_only=True) +class TransitGatewayAttachment(_SerdeShape): + """Describes an attachment between a resource and a transit gateway.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + transit_gateway_owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the transit gateway.""" + resource_owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the resource.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + resource_id: str | None = ... + """The ID of the resource.""" + state: str | None = ... + """ + The attachment state. Note that the `initiating` state has been + deprecated. + """ + association: TransitGatewayAttachmentAssociation | None = ... + """The association.""" + creation_time: datetime | None = ... + """The creation time.""" + tags: list[Tag] | None = ... + """The tags for the attachment.""" + nat_gateway_support: str | None = ... + """ + The state of NAT gateway support for the attachment. Only the owner of + the transit gateway receives this parameter. + """ + +@dataclass(kw_only=True) +class TransitGatewayAttachmentAssociation(_SerdeShape): + """Describes an association.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the route table for the transit gateway.""" + transit_gateway_policy_table_id: str | None = ... + """ + The ID of the transit gateway policy table associated with the + attachment. + """ + state: str | None = ... + """The state of the association.""" + +@dataclass(kw_only=True) +class TransitGatewayAttachmentBgpConfiguration(_SerdeShape): + """The BGP configuration information.""" + + transit_gateway_asn: int | None = ... + """The transit gateway Autonomous System Number (ASN).""" + peer_asn: int | None = ... + """The peer Autonomous System Number (ASN).""" + transit_gateway_address: str | None = ... + """The interior BGP peer IP address for the transit gateway.""" + peer_address: str | None = ... + """The interior BGP peer IP address for the appliance.""" + bgp_status: str | None = ... + """The BGP status.""" + +class TransitGatewayAttachmentNatGatewaySupportState(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + ENABLING = "enabling" + DISABLING = "disabling" + +class TransitGatewayAttachmentNatGatewaySupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class TransitGatewayAttachmentNatSystemRouteSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class TransitGatewayAttachmentPropagation(_SerdeShape): + """Describes a propagation route table.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the propagation route table.""" + state: str | None = ... + """The state of the propagation route table.""" + +class TransitGatewayAttachmentResourceType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + VPN = "vpn" + VPN_CONCENTRATOR = "vpn-concentrator" + DIRECT_CONNECT_GATEWAY = "direct-connect-gateway" + CONNECT = "connect" + PEERING = "peering" + TGW_PEERING = "tgw-peering" + NETWORK_FUNCTION = "network-function" + CLIENT_VPN = "client-vpn" + +class TransitGatewayAttachmentState(UnknownEnumMixin, StrEnum): + INITIATING = "initiating" + INITIATING_REQUEST = "initiatingRequest" + PENDING_ACCEPTANCE = "pendingAcceptance" + ROLLING_BACK = "rollingBack" + PENDING = "pending" + AVAILABLE = "available" + MODIFYING = "modifying" + DELETING = "deleting" + DELETED = "deleted" + FAILED = "failed" + REJECTED = "rejected" + REJECTING = "rejecting" + FAILING = "failing" + +class TransitGatewayAttachmentStatusType(UnknownEnumMixin, StrEnum): + PENDING_ACCEPTANCE = "pending-acceptance" + PENDING = "pending" + REJECTED = "rejected" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayClientVpnAttachment(_SerdeShape): + """Describes a Transit Gateway attachment for a Client VPN endpoint.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Transit Gateway attachment.""" + transit_gateway_id: str | None = ... + """The ID of the Transit Gateway.""" + client_vpn_endpoint_id: str | None = ... + """The ID of the Client VPN endpoint.""" + client_vpn_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the Client VPN + endpoint. + """ + state: str | None = ... + """The state of the Transit Gateway attachment.""" + creation_time: str | None = ... + """The date and time the Transit Gateway attachment was created.""" + +@dataclass(kw_only=True) +class TransitGatewayConfigurationDescribeEndpointStructure(_SerdeShape): + """Describes the Transit Gateway configuration for a Client VPN endpoint.""" + + transit_gateway_id: str | None = ... + """The ID of the Transit Gateway.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the Transit Gateway attachment.""" + availability_zones: list[str] | None = ... + """The Availability Zone names for the Transit Gateway association.""" + availability_zone_ids: list[str] | None = ... + """The Availability Zone IDs for the Transit Gateway association.""" + +@dataclass(kw_only=True) +class TransitGatewayConfigurationInputStructure(_SerdeShape): + """The Transit Gateway configuration for a Client VPN endpoint.""" + + transit_gateway_id: str | None = ... + """The ID of the Transit Gateway to associate with the Client VPN endpoint.""" + availability_zones: list[str] | None = ... + """ + The Availability Zone names for the Transit Gateway association. You can + specify up to the maximum number of Availability Zones supported by the + Transit Gateway. You cannot specify both `AvailabilityZones` and + `AvailabilityZoneIds`. + """ + availability_zone_ids: list[str] | None = ... + """ + The Availability Zone IDs for the Transit Gateway association. You can + specify up to the maximum number of Availability Zones supported by the + Transit Gateway. You cannot specify both `AvailabilityZones` and + `AvailabilityZoneIds`. + """ + +@dataclass(kw_only=True) +class TransitGatewayConnect(_SerdeShape): + """Describes a transit gateway Connect attachment.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Connect attachment.""" + transport_transit_gateway_attachment_id: str | None = ... + """The ID of the attachment from which the Connect attachment was created.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + state: str | None = ... + """The state of the attachment.""" + creation_time: datetime | None = ... + """The creation time.""" + options: TransitGatewayConnectOptions | None = ... + """The Connect attachment options.""" + tags: list[Tag] | None = ... + """The tags for the attachment.""" + +@dataclass(kw_only=True) +class TransitGatewayConnectOptions(_SerdeShape): + """Describes the Connect attachment options.""" + + protocol: str | None = ... + """The tunnel protocol.""" + +@dataclass(kw_only=True) +class TransitGatewayConnectPeer(_SerdeShape): + """Describes a transit gateway Connect peer.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the Connect attachment.""" + transit_gateway_connect_peer_id: str | None = ... + """The ID of the Connect peer.""" + state: str | None = ... + """The state of the Connect peer.""" + creation_time: datetime | None = ... + """The creation time.""" + connect_peer_configuration: TransitGatewayConnectPeerConfiguration | None = ... + """The Connect peer details.""" + tags: list[Tag] | None = ... + """The tags for the Connect peer.""" + +@dataclass(kw_only=True) +class TransitGatewayConnectPeerConfiguration(_SerdeShape): + """Describes the Connect peer details.""" + + transit_gateway_address: str | None = ... + """The Connect peer IP address on the transit gateway side of the tunnel.""" + peer_address: str | None = ... + """The Connect peer IP address on the appliance side of the tunnel.""" + inside_cidr_blocks: list[str] | None = ... + """The range of interior BGP peer IP addresses.""" + protocol: str | None = ... + """The tunnel protocol.""" + bgp_configurations: list[TransitGatewayAttachmentBgpConfiguration] | None = ... + """The BGP configuration details.""" + +class TransitGatewayConnectPeerState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayConnectRequestBgpOptions(_SerdeShape): + """The BGP options for the Connect attachment.""" + + peer_asn: int | None = ... + """The peer Autonomous System Number (ASN).""" + +class TransitGatewayMeteringPayerType(UnknownEnumMixin, StrEnum): + SOURCE_ATTACHMENT_OWNER = "source-attachment-owner" + DESTINATION_ATTACHMENT_OWNER = "destination-attachment-owner" + TRANSIT_GATEWAY_OWNER = "transit-gateway-owner" + +@dataclass(kw_only=True) +class TransitGatewayMeteringPolicy(_SerdeShape): + """Describes a transit gateway metering policy.""" + + transit_gateway_metering_policy_id: str | None = ... + """The ID of the transit gateway metering policy.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway associated with the metering policy.""" + middlebox_attachment_ids: list[str] | None = ... + """ + The IDs of the middlebox attachments associated with the metering + policy. + """ + state: str | None = ... + """The state of the transit gateway metering policy.""" + update_effective_at: datetime | None = ... + """The date and time when the metering policy update becomes effective.""" + tags: list[Tag] | None = ... + """The tags assigned to the transit gateway metering policy.""" + +@dataclass(kw_only=True) +class TransitGatewayMeteringPolicyEntry(_SerdeShape): + """Describes an entry in a transit gateway metering policy.""" + + policy_rule_number: str | None = ... + """The rule number of the metering policy entry.""" + metered_account: str | None = ... + """ + The Amazon Web Services account ID to which the metered traffic is + attributed. + """ + state: str | None = ... + """The state of the metering policy entry.""" + updated_at: datetime | None = ... + """The date and time when the metering policy entry was last updated.""" + update_effective_at: datetime | None = ... + """ + The date and time when the metering policy entry update becomes + effective. + """ + metering_policy_rule: TransitGatewayMeteringPolicyRule | None = ... + """The metering policy rule that defines traffic matching criteria.""" + +class TransitGatewayMeteringPolicyEntryState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayMeteringPolicyRule(_SerdeShape): + """ + Describes the traffic matching criteria for a transit gateway metering + policy rule. + """ + + source_transit_gateway_attachment_id: str | None = ... + """The ID of the source transit gateway attachment.""" + source_transit_gateway_attachment_type: str | None = ... + """ + The type of the source transit gateway attachment. Note that the + `tgw-peering` resource type has been deprecated. To configure metering + policies for Connect, use the transport attachment type. + """ + source_cidr_block: str | None = ... + """The source CIDR block for the rule.""" + source_port_range: str | None = ... + """The source port range for the rule.""" + destination_transit_gateway_attachment_id: str | None = ... + """The ID of the destination transit gateway attachment.""" + destination_transit_gateway_attachment_type: str | None = ... + """ + The type of the destination transit gateway attachment. Note that the + `tgw-peering` resource type has been deprecated. To configure metering + policies for Connect, use the transport attachment type. + """ + destination_cidr_block: str | None = ... + """The destination CIDR block for the rule.""" + destination_port_range: str | None = ... + """The destination port range for the rule.""" + protocol: str | None = ... + """The protocol for the rule (1, 6, 17, etc.).""" + +class TransitGatewayMeteringPolicyState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + DELETED = "deleted" + PENDING = "pending" + MODIFYING = "modifying" + DELETING = "deleting" + +class TransitGatewayMulitcastDomainAssociationState(UnknownEnumMixin, StrEnum): + PENDING_ACCEPTANCE = "pendingAcceptance" + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + REJECTED = "rejected" + FAILED = "failed" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDeregisteredGroupMembers(_SerdeShape): + """Describes the deregistered transit gateway multicast group members.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + deregistered_network_interface_ids: list[str] | None = ... + """The network interface IDs of the deregistered members.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDeregisteredGroupSources(_SerdeShape): + """Describes the deregistered transit gateway multicast group sources.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + deregistered_network_interface_ids: list[str] | None = ... + """The network interface IDs of the non-registered members.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDomain(_SerdeShape): + """Describes the transit gateway multicast domain.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + transit_gateway_multicast_domain_arn: str | None = ... + """The Amazon Resource Name (ARN) of the transit gateway multicast domain.""" + owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the transit gateway + multicast domain. + """ + options: TransitGatewayMulticastDomainOptions | None = ... + """The options for the transit gateway multicast domain.""" + state: str | None = ... + """The state of the transit gateway multicast domain.""" + creation_time: datetime | None = ... + """The time the transit gateway multicast domain was created.""" + tags: list[Tag] | None = ... + """The tags for the transit gateway multicast domain.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDomainAssociation(_SerdeShape): + """ + Describes the resources associated with the transit gateway multicast + domain. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The type of resource, for example a VPC attachment.""" + resource_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the transit gateway + multicast domain association resource. + """ + subnet: SubnetAssociation | None = ... + """The subnet associated with the transit gateway multicast domain.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDomainAssociations(_SerdeShape): + """Describes the multicast domain associations.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The type of resource, for example a VPC attachment.""" + resource_owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the resource.""" + subnets: list[SubnetAssociation] | None = ... + """The subnets associated with the multicast domain.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastDomainOptions(_SerdeShape): + """Describes the options for a transit gateway multicast domain.""" + + igmpv2_support: str | None = ... + """ + Indicates whether Internet Group Management Protocol (IGMP) version 2 is + turned on for the transit gateway multicast domain. + """ + static_sources_support: str | None = ... + """ + Indicates whether support for statically configuring transit gateway + multicast group sources is turned on. + """ + auto_accept_shared_associations: str | None = ... + """ + Indicates whether to automatically cross-account subnet associations + that are associated with the transit gateway multicast domain. + """ + +class TransitGatewayMulticastDomainState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayMulticastGroup(_SerdeShape): + """Describes the transit gateway multicast group resources.""" + + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + subnet_id: str | None = ... + """The ID of the subnet.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """The type of resource, for example a VPC attachment.""" + resource_owner_id: str | None = ... + """ + The ID of the Amazon Web Services account that owns the transit gateway + multicast domain group resource. + """ + network_interface_id: str | None = ... + """The ID of the transit gateway attachment.""" + group_member: bool | None = ... + """Indicates that the resource is a transit gateway multicast group member.""" + group_source: bool | None = ... + """Indicates that the resource is a transit gateway multicast group member.""" + member_type: str | None = ... + """The member type (for example, `static`).""" + source_type: str | None = ... + """The source type.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastRegisteredGroupMembers(_SerdeShape): + """Describes the registered transit gateway multicast group members.""" + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + registered_network_interface_ids: list[str] | None = ... + """The ID of the registered network interfaces.""" + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + +@dataclass(kw_only=True) +class TransitGatewayMulticastRegisteredGroupSources(_SerdeShape): + """ + Describes the members registered with the transit gateway multicast + group. + """ + + transit_gateway_multicast_domain_id: str | None = ... + """The ID of the transit gateway multicast domain.""" + registered_network_interface_ids: list[str] | None = ... + """ + The IDs of the network interfaces members registered with the transit + gateway multicast group. + """ + group_ip_address: str | None = ... + """The IP address assigned to the transit gateway multicast group.""" + +@dataclass(kw_only=True) +class TransitGatewayNatRule(_SerdeShape): + """ + Contains information about a NAT gateway rule for a transit gateway + attachment, including the rule number, the source CIDR block, the + translated CIDR block, and the state of the rule. + """ + + rule_number: int | None = ... + """The rule number.""" + match_source_cidr: str | None = ... + """The IPv4 CIDR block of the source addresses to translate.""" + nat_cidr: str | None = ... + """ + The IPv4 CIDR block that the transit gateway translates the source + addresses to. + """ + state: str | None = ... + """ + The state of the NAT gateway rule. The possible values are: + + - `pending` - The transit gateway is applying a change to the rule. + + - `activated` - The rule is in effect because NAT gateway support is + enabled for the attachment. + + - `deactivated` - The rule isn't in effect because NAT gateway support + is disabled for the attachment. + """ + +@dataclass(kw_only=True) +class TransitGatewayNatRuleRequest(_SerdeShape): + """ + Describes a NAT gateway rule to apply to a transit gateway attachment. A + NAT gateway rule translates source addresses in the `MatchSourceCidr` + range to the corresponding addresses in the `NatCidr` range. + """ + + rule_number: int | None = ... + """ + The rule number. Valid values are 1 to 32766. Each rule number must be + unique within the request. + """ + match_source_cidr: str | None = ... + """ + The IPv4 CIDR block of the source addresses to translate. The CIDR block + can't overlap the multicast range (`224.0.0.0/4`) or the link-local + range (`169.254.0.0/16`). + """ + nat_cidr: str | None = ... + """ + The IPv4 CIDR block to translate the source addresses to. The CIDR block + must be in a private (RFC 1918) or shared address space (RFC 6598) + range, and must have the same prefix length as `MatchSourceCidr`. The + CIDR blocks in the rules for an attachment can't overlap each other. + """ + +class TransitGatewayNatRuleState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVATED = "activated" + DEACTIVATED = "deactivated" + DELETING = "deleting" + +@dataclass(kw_only=True) +class TransitGatewayOptions(_SerdeShape): + """Describes the options for a transit gateway.""" + + amazon_side_asn: int | None = ... + """ + A private Autonomous System Number (ASN) for the Amazon side of a BGP + session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to + 4294967294 for 32-bit ASNs. + """ + transit_gateway_cidr_blocks: list[str] | None = ... + """The transit gateway CIDR blocks.""" + auto_accept_shared_attachments: str | None = ... + """Indicates whether attachment requests are automatically accepted.""" + default_route_table_association: str | None = ... + """ + Indicates whether resource attachments are automatically associated with + the default association route table. Enabled by default. Either + `defaultRouteTableAssociation` or `defaultRouteTablePropagation` must be + set to `enable` for Amazon Web Services Transit Gateway to create the + default transit gateway route table. + """ + association_default_route_table_id: str | None = ... + """The ID of the default association route table.""" + default_route_table_propagation: str | None = ... + """ + Indicates whether resource attachments automatically propagate routes to + the default propagation route table. Enabled by default. If + `defaultRouteTablePropagation` is set to `enable`, Amazon Web Services + Transit Gateway creates the default transit gateway route table. + """ + propagation_default_route_table_id: str | None = ... + """The ID of the default propagation route table.""" + vpn_ecmp_support: str | None = ... + """Indicates whether Equal Cost Multipath Protocol support is enabled.""" + dns_support: str | None = ... + """Indicates whether DNS support is enabled.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is disabled by default. + """ + multicast_support: str | None = ... + """Indicates whether multicast is enabled on the transit gateway""" + encryption_support: EncryptionSupport | None = ... + """Defines if the Transit Gateway supports VPC Encryption Control.""" + +@dataclass(kw_only=True) +class TransitGatewayPeeringAttachment(_SerdeShape): + """Describes the transit gateway peering attachment.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway peering attachment.""" + accepter_transit_gateway_attachment_id: str | None = ... + """The ID of the accepter transit gateway attachment.""" + requester_tgw_info: PeeringTgwInfo | None = ... + """Information about the requester transit gateway.""" + accepter_tgw_info: PeeringTgwInfo | None = ... + """Information about the accepter transit gateway.""" + options: TransitGatewayPeeringAttachmentOptions | None = ... + """Details about the transit gateway peering attachment.""" + status: PeeringAttachmentStatus | None = ... + """The status of the transit gateway peering attachment.""" + state: str | None = ... + """ + The state of the transit gateway peering attachment. Note that the + `initiating` state has been deprecated. + """ + creation_time: datetime | None = ... + """The time the transit gateway peering attachment was created.""" + tags: list[Tag] | None = ... + """The tags for the transit gateway peering attachment.""" + +@dataclass(kw_only=True) +class TransitGatewayPeeringAttachmentOptions(_SerdeShape): + """Describes dynamic routing for the transit gateway peering attachment.""" + + dynamic_routing: str | None = ... + """ + Describes whether dynamic routing is enabled or disabled for the transit + gateway peering attachment. + """ + +@dataclass(kw_only=True) +class TransitGatewayPolicyRule(_SerdeShape): + """Describes a rule associated with a transit gateway policy.""" + + source_cidr_block: str | None = ... + """The source CIDR block for the transit gateway policy rule.""" + source_port_range: str | None = ... + """The source port or port range for the transit gateway policy rule.""" + destination_cidr_block: str | None = ... + """The destination CIDR block for the transit gateway policy rule.""" + destination_port_range: str | None = ... + """The destination port or port range for the transit gateway policy rule.""" + protocol: str | None = ... + """The protocol used by the transit gateway policy rule.""" + meta_data: TransitGatewayPolicyRuleMetaData | None = ... + """The meta data tags used for the transit gateway policy rule.""" + +@dataclass(kw_only=True) +class TransitGatewayPolicyRuleMetaData(_SerdeShape): + """ + Describes the meta data tags associated with a transit gateway policy + rule. + """ + + meta_data_key: str | None = ... + """The key name for the transit gateway policy rule meta data tag.""" + meta_data_value: str | None = ... + """The value of the key for the transit gateway policy rule meta data tag.""" + +@dataclass(kw_only=True) +class TransitGatewayPolicyTable(_SerdeShape): + """Describes a transit gateway policy table.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + state: str | None = ... + """The state of the transit gateway policy table""" + creation_time: datetime | None = ... + """The timestamp when the transit gateway policy table was created.""" + tags: list[Tag] | None = ... + """he key-value pairs associated with the transit gateway policy table.""" + +@dataclass(kw_only=True) +class TransitGatewayPolicyTableAssociation(_SerdeShape): + """Describes a transit gateway policy table association.""" + + transit_gateway_policy_table_id: str | None = ... + """The ID of the transit gateway policy table.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment.""" + resource_id: str | None = ... + """The resource ID of the transit gateway attachment.""" + resource_type: str | None = ... + """The resource type for the transit gateway policy table association.""" + state: str | None = ... + """The state of the transit gateway policy table association.""" + +@dataclass(kw_only=True) +class TransitGatewayPolicyTableEntry(_SerdeShape): + """Describes a transit gateway policy table entry""" + + policy_rule_number: str | None = ... + """The rule number for the transit gateway policy table entry.""" + policy_rule: TransitGatewayPolicyRule | None = ... + """The policy rule associated with the transit gateway policy table.""" + target_route_table_id: str | None = ... + """The ID of the target route table.""" + state: str | None = ... + """The state of the transit gateway policy table entry.""" + +class TransitGatewayPolicyTableEntryState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + DELETED = "deleted" + +class TransitGatewayPolicyTableState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayPrefixListAttachment(_SerdeShape): + """Describes a transit gateway prefix list attachment.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + resource_id: str | None = ... + """The ID of the resource.""" + +@dataclass(kw_only=True) +class TransitGatewayPrefixListReference(_SerdeShape): + """Describes a prefix list reference.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + prefix_list_owner_id: str | None = ... + """The ID of the prefix list owner.""" + state: str | None = ... + """The state of the prefix list reference.""" + blackhole: bool | None = ... + """Indicates whether traffic that matches this route is dropped.""" + transit_gateway_attachment: TransitGatewayPrefixListAttachment | None = ... + """Information about the transit gateway attachment.""" + +class TransitGatewayPrefixListReferenceState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + MODIFYING = "modifying" + DELETING = "deleting" + +@dataclass(kw_only=True) +class TransitGatewayPropagation(_SerdeShape): + """Describes route propagation.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + state: str | None = ... + """The state.""" + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the transit gateway route table announcement.""" + +class TransitGatewayPropagationState(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + ENABLED = "enabled" + DISABLING = "disabling" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class TransitGatewayRequestOptions(_SerdeShape): + """Describes the options for a transit gateway.""" + + amazon_side_asn: int | None = ... + """ + A private Autonomous System Number (ASN) for the Amazon side of a BGP + session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to + 4294967294 for 32-bit ASNs. The default is `64512`. + """ + auto_accept_shared_attachments: str | None = ... + """ + Enable or disable automatic acceptance of attachment requests. Disabled + by default. + """ + default_route_table_association: str | None = ... + """ + Enable or disable automatic association with the default association + route table. Enabled by default. + """ + default_route_table_propagation: str | None = ... + """ + Enable or disable automatic propagation of routes to the default + propagation route table. Enabled by default. + """ + vpn_ecmp_support: str | None = ... + """ + Enable or disable Equal Cost Multipath Protocol support. Enabled by + default. + """ + dns_support: str | None = ... + """Enable or disable DNS support. Enabled by default.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is disabled by default. + + For more information about security group referencing, see [Security + group + referencing](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + in the *Amazon Web Services Transit Gateways Guide*. + """ + multicast_support: str | None = ... + """Indicates whether multicast is enabled on the transit gateway""" + transit_gateway_cidr_blocks: list[str] | None = ... + """ + One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a + size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or + larger for IPv6. + """ + +@dataclass(kw_only=True) +class TransitGatewayRequestPolicyRule(_SerdeShape): + """The matching criteria for a transit gateway policy table entry.""" + + source_cidr_block: str | None = ... + """The source CIDR block for the policy rule.""" + source_port_range: str | None = ... + """ + The source port or port range for the policy rule. You can specify a + port range only when `Protocol` is `6` (TCP) or `17` (UDP); for all + other protocols, this value must be `*`. + """ + destination_cidr_block: str | None = ... + """The destination CIDR block for the policy rule.""" + destination_port_range: str | None = ... + """ + The destination port or port range for the policy rule. You can specify + a port range only when `Protocol` is `6` (TCP) or `17` (UDP); for all + other protocols, this value must be `*`. + """ + protocol: str | None = ... + """ + The protocol for the policy rule. Valid values are `1` (ICMP), `6` + (TCP), `17` (UDP), `47` (GRE), or `*` for all protocols. + """ + meta_data: TransitGatewayRequestPolicyRuleMetaData | None = ... + """The metadata key-value pair for the policy rule.""" + +@dataclass(kw_only=True) +class TransitGatewayRequestPolicyRuleMetaData(_SerdeShape): + """A metadata key-value pair for a transit gateway policy rule.""" + + meta_data_key: str | None = ... + """The key of the metadata pair for the policy rule.""" + meta_data_value: str | None = ... + """The value of the metadata pair for the policy rule.""" + +@dataclass(kw_only=True) +class TransitGatewayRoute(_SerdeShape): + """Describes a route for a transit gateway route table.""" + + destination_cidr_block: str | None = ... + """The CIDR block used for destination matches.""" + prefix_list_id: str | None = ... + """The ID of the prefix list used for destination matches.""" + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the transit gateway route table announcement.""" + transit_gateway_attachments: list[TransitGatewayRouteAttachment] | None = ... + """The attachments.""" + type: str | None = ... + """The route type.""" + state: str | None = ... + """The state of the route.""" + +@dataclass(kw_only=True) +class TransitGatewayRouteAttachment(_SerdeShape): + """Describes a route attachment.""" + + resource_id: str | None = ... + """The ID of the resource.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + +class TransitGatewayRouteState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + BLACKHOLE = "blackhole" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayRouteTable(_SerdeShape): + """Describes a transit gateway route table.""" + + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + state: str | None = ... + """The state of the transit gateway route table.""" + default_association_route_table: bool | None = ... + """ + Indicates whether this is the default association route table for the + transit gateway. + """ + default_propagation_route_table: bool | None = ... + """ + Indicates whether this is the default propagation route table for the + transit gateway. + """ + creation_time: datetime | None = ... + """The creation time.""" + tags: list[Tag] | None = ... + """Any tags assigned to the route table.""" + +@dataclass(kw_only=True) +class TransitGatewayRouteTableAnnouncement(_SerdeShape): + """Describes a transit gateway route table announcement.""" + + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the transit gateway route table announcement.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + core_network_id: str | None = ... + """ + The ID of the core network for the transit gateway route table + announcement. + """ + peer_transit_gateway_id: str | None = ... + """The ID of the peer transit gateway.""" + peer_core_network_id: str | None = ... + """The ID of the core network ID for the peer.""" + peering_attachment_id: str | None = ... + """The ID of the peering attachment.""" + announcement_direction: str | None = ... + """The direction for the route table announcement.""" + transit_gateway_route_table_id: str | None = ... + """The ID of the transit gateway route table.""" + state: str | None = ... + """The state of the transit gateway announcement.""" + creation_time: datetime | None = ... + """ + The timestamp when the transit gateway route table announcement was + created. + """ + tags: list[Tag] | None = ... + """The key-value pairs associated with the route table announcement.""" + +class TransitGatewayRouteTableAnnouncementDirection(UnknownEnumMixin, StrEnum): + OUTGOING = "outgoing" + INCOMING = "incoming" + +class TransitGatewayRouteTableAnnouncementState(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + PENDING = "pending" + FAILING = "failing" + FAILED = "failed" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayRouteTableAssociation(_SerdeShape): + """ + Describes an association between a route table and a resource + attachment. + """ + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """ + The resource type. Note that the `tgw-peering` resource type has been + deprecated. + """ + state: str | None = ... + """The state of the association.""" + +@dataclass(kw_only=True) +class TransitGatewayRouteTablePropagation(_SerdeShape): + """Describes a route table propagation.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + resource_id: str | None = ... + """The ID of the resource.""" + resource_type: str | None = ... + """ + The type of resource. Note that the `tgw-peering` resource type has been + deprecated. + """ + state: str | None = ... + """The state of the resource.""" + transit_gateway_route_table_announcement_id: str | None = ... + """The ID of the transit gateway route table announcement.""" + +@dataclass(kw_only=True) +class TransitGatewayRouteTableRoute(_SerdeShape): + """Describes a route in a transit gateway route table.""" + + destination_cidr: str | None = ... + """The CIDR block used for destination matches.""" + state: str | None = ... + """The state of the route.""" + route_origin: str | None = ... + """ + The route origin. The following are the possible values: + + - static + + - propagated + """ + prefix_list_id: str | None = ... + """The ID of the prefix list.""" + attachment_id: str | None = ... + """The ID of the route attachment.""" + resource_id: str | None = ... + """The ID of the resource for the route attachment.""" + resource_type: str | None = ... + """The resource type for the route attachment.""" + +class TransitGatewayRouteTableState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +class TransitGatewayRouteType(UnknownEnumMixin, StrEnum): + STATIC = "static" + PROPAGATED = "propagated" + SYSTEM = "system" + +class TransitGatewayState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + MODIFYING = "modifying" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class TransitGatewayVpcAttachment(_SerdeShape): + """Describes a VPC attachment.""" + + transit_gateway_attachment_id: str | None = ... + """The ID of the attachment.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + vpc_owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the VPC.""" + state: str | None = ... + """ + The state of the VPC attachment. Note that the `initiating` state has + been deprecated. + """ + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + creation_time: datetime | None = ... + """The creation time.""" + options: TransitGatewayVpcAttachmentOptions | None = ... + """The VPC attachment options.""" + tags: list[Tag] | None = ... + """The tags for the VPC attachment.""" + +@dataclass(kw_only=True) +class TransitGatewayVpcAttachmentOptions(_SerdeShape): + """Describes the VPC attachment options.""" + + dns_support: str | None = ... + """Indicates whether DNS support is enabled.""" + security_group_referencing_support: str | None = ... + """ + Enables you to reference a security group across VPCs attached to a + transit gateway to simplify security group management. + + This option is enabled by default. + + For more information about security group referencing, see [Security + group + referencing](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security) + in the *Amazon Web Services Transit Gateways Guide*. + """ + ipv6_support: str | None = ... + """Indicates whether IPv6 support is disabled.""" + appliance_mode_support: str | None = ... + """Indicates whether appliance mode support is enabled.""" + +class TransportProtocol(UnknownEnumMixin, StrEnum): + TCP = "tcp" + UDP = "udp" + +@dataclass(kw_only=True) +class TrunkInterfaceAssociation(_SerdeShape): + """ + Information about an association between a branch network interface with + a trunk network interface. + """ + + association_id: str | None = ... + """The ID of the association.""" + branch_interface_id: str | None = ... + """The ID of the branch network interface.""" + trunk_interface_id: str | None = ... + """The ID of the trunk network interface.""" + interface_protocol: str | None = ... + """The interface protocol. Valid values are `VLAN` and `GRE`.""" + vlan_id: int | None = ... + """The ID of the VLAN when you use the VLAN protocol.""" + gre_key: int | None = ... + """The application key when you use the GRE protocol.""" + tags: list[Tag] | None = ... + """The tags for the trunk interface association.""" + +class TrustProviderType(UnknownEnumMixin, StrEnum): + USER = "user" + DEVICE = "device" + +class TunnelInsideIpVersion(UnknownEnumMixin, StrEnum): + IPV4 = "ipv4" + IPV6 = "ipv6" + +@dataclass(kw_only=True) +class TunnelOption(_SerdeShape): + """The VPN tunnel options.""" + + outside_ip_address: str | None = ... + """The external IP address of the VPN tunnel.""" + tunnel_inside_cidr: str | None = ... + """The range of inside IPv4 addresses for the tunnel.""" + tunnel_inside_ipv6_cidr: str | None = ... + """The range of inside IPv6 addresses for the tunnel.""" + pre_shared_key: str | None = ... + """ + The pre-shared key (PSK) to establish initial authentication between the + virtual private gateway and the customer gateway. + """ + phase1_lifetime_seconds: int | None = ... + """The lifetime for phase 1 of the IKE negotiation, in seconds.""" + phase2_lifetime_seconds: int | None = ... + """The lifetime for phase 2 of the IKE negotiation, in seconds.""" + rekey_margin_time_seconds: int | None = ... + """ + The margin time, in seconds, before the phase 2 lifetime expires, during + which the Amazon Web Services side of the VPN connection performs an IKE + rekey. + """ + rekey_fuzz_percentage: int | None = ... + """ + The percentage of the rekey window determined by + `RekeyMarginTimeSeconds` during which the rekey time is randomly + selected. + """ + replay_window_size: int | None = ... + """The number of packets in an IKE replay window.""" + dpd_timeout_seconds: int | None = ... + """The number of seconds after which a DPD timeout occurs.""" + dpd_timeout_action: str | None = ... + """The action to take after a DPD timeout occurs.""" + phase1_encryption_algorithms: list[Phase1EncryptionAlgorithmsListValue] | None = ... + """ + The permitted encryption algorithms for the VPN tunnel for phase 1 IKE + negotiations. + """ + phase2_encryption_algorithms: list[Phase2EncryptionAlgorithmsListValue] | None = ... + """ + The permitted encryption algorithms for the VPN tunnel for phase 2 IKE + negotiations. + """ + phase1_integrity_algorithms: list[Phase1IntegrityAlgorithmsListValue] | None = ... + """ + The permitted integrity algorithms for the VPN tunnel for phase 1 IKE + negotiations. + """ + phase2_integrity_algorithms: list[Phase2IntegrityAlgorithmsListValue] | None = ... + """ + The permitted integrity algorithms for the VPN tunnel for phase 2 IKE + negotiations. + """ + phase1_dh_group_numbers: list[Phase1DHGroupNumbersListValue] | None = ... + """ + The permitted Diffie-Hellman group numbers for the VPN tunnel for phase + 1 IKE negotiations. + """ + phase2_dh_group_numbers: list[Phase2DHGroupNumbersListValue] | None = ... + """ + The permitted Diffie-Hellman group numbers for the VPN tunnel for phase + 2 IKE negotiations. + """ + ike_versions: list[IKEVersionsListValue] | None = ... + """The IKE versions that are permitted for the VPN tunnel.""" + startup_action: str | None = ... + """ + The action to take when the establishing the VPN tunnels for a VPN + connection. + """ + log_options: VpnTunnelLogOptions | None = ... + """Options for logging VPN tunnel activity.""" + enable_tunnel_lifecycle_control: bool | None = ... + """Status of tunnel endpoint lifecycle control feature.""" + +@dataclass(kw_only=True) +class UnassignIpv6AddressesInput(_SerdeShape): + """Dataclass for UnassignIpv6AddressesInput structure.""" + + ipv6_prefixes: list[str] | None = ... + """The IPv6 prefixes to unassign from the network interface.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + ipv6_addresses: list[str] | None = ... + """The IPv6 addresses to unassign from the network interface.""" + +@dataclass(kw_only=True) +class UnassignIpv6AddressesOutput(_SerdeShape): + """Dataclass for UnassignIpv6AddressesOutput structure.""" + + network_interface_id: str | None = ... + """The ID of the network interface.""" + unassigned_ipv6_addresses: list[str] | None = ... + """The IPv6 addresses that have been unassigned from the network interface.""" + unassigned_ipv6_prefixes: list[str] | None = ... + """The IPv6 prefixes that have been unassigned from the network interface.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnassignPrivateIpAddressesInput(_SerdeShape): + """Contains the parameters for UnassignPrivateIpAddresses.""" + + ipv4_prefixes: list[str] | None = ... + """The IPv4 prefixes to unassign from the network interface.""" + network_interface_id: str | None = ... + """The ID of the network interface.""" + private_ip_addresses: list[str] | None = ... + """ + The secondary private IP addresses to unassign from the network + interface. You can specify this option multiple times to unassign more + than one IP address. + """ + +@dataclass(kw_only=True) +class UnassignPrivateIpAddressesOutput(_SerdeShape): + """Dataclass for UnassignPrivateIpAddressesOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnassignPrivateNatGatewayAddressInput(_SerdeShape): + """Dataclass for UnassignPrivateNatGatewayAddressInput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + private_ip_addresses: list[str] | None = ... + """The private IPv4 addresses you want to unassign.""" + max_drain_duration_seconds: int | None = ... + """ + The maximum amount of time to wait (in seconds) before forcibly + releasing the IP addresses if connections are still in progress. Default + value is 350 seconds. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class UnassignPrivateNatGatewayAddressOutput(_SerdeShape): + """Dataclass for UnassignPrivateNatGatewayAddressOutput structure.""" + + nat_gateway_id: str | None = ... + """The ID of the NAT gateway.""" + nat_gateway_addresses: list[NatGatewayAddress] | None = ... + """Information about the NAT gateway IP addresses.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class UnlimitedSupportedInstanceFamily(UnknownEnumMixin, StrEnum): + T2 = "t2" + T3 = "t3" + T3A = "t3a" + T4G = "t4g" + T8I = "t8i" + +@dataclass(kw_only=True) +class UnlockSnapshotInput(_SerdeShape): + """Dataclass for UnlockSnapshotInput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot to unlock.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class UnlockSnapshotOutput(_SerdeShape): + """Dataclass for UnlockSnapshotOutput structure.""" + + snapshot_id: str | None = ... + """The ID of the snapshot.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnmonitorInstancesInput(_SerdeShape): + """Dataclass for UnmonitorInstancesInput structure.""" + + instance_ids: list[str] | None = ... + """The IDs of the instances.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the operation, + without actually making the request, and provides an error response. If + you have the required permissions, the error response is + `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class UnmonitorInstancesOutput(_SerdeShape): + """Dataclass for UnmonitorInstancesOutput structure.""" + + instance_monitorings: list[InstanceMonitoring] | None = ... + """The monitoring information.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnsuccessfulAssociationResponseObject(_SerdeShape): + """Describes an unsuccessful application status check association.""" + + application_status_check_id: str | None = ... + """The ID of the application status check.""" + association_type: str | None = ... + """The type of association. Valid values: `EC2TAG` and `INSTANCE_ID`.""" + association_value: str | None = ... + """ + The association value. For `EC2TAG`, the value is formatted as + `key=value`. For `INSTANCE_ID`, the value is the instance ID. + """ + reason: str | None = ... + """The reason the association failed.""" + +class UnsuccessfulInstanceCreditSpecificationErrorCode(UnknownEnumMixin, StrEnum): + INVALID_INSTANCE_ID = "InvalidInstanceID.Malformed" + INSTANCE_NOT_FOUND = "InvalidInstanceID.NotFound" + INCORRECT_INSTANCE_STATE = "IncorrectInstanceState" + INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED = ( + "InstanceCreditSpecification.NotSupported" + ) + +@dataclass(kw_only=True) +class UnsuccessfulInstanceCreditSpecificationItem(_SerdeShape): + """ + Describes the burstable performance instance whose credit option for CPU + usage was not modified. + """ + + instance_id: str | None = ... + """The ID of the instance.""" + error: UnsuccessfulInstanceCreditSpecificationItemError | None = ... + """ + The applicable error for the burstable performance instance whose credit + option for CPU usage was not modified. + """ + +@dataclass(kw_only=True) +class UnsuccessfulInstanceCreditSpecificationItemError(_SerdeShape): + """ + Information about the error for the burstable performance instance whose + credit option for CPU usage was not modified. + """ + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The applicable error message.""" + +@dataclass(kw_only=True) +class UnsuccessfulItem(_SerdeShape): + """ + Information about items that were not successfully processed in a batch + call. + """ + + error: UnsuccessfulItemError | None = ... + """Information about the error.""" + resource_id: str | None = ... + """The ID of the resource.""" + +@dataclass(kw_only=True) +class UnsuccessfulItemError(_SerdeShape): + """ + Information about the error that occurred. For more information about + errors, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + + code: str | None = ... + """The error code.""" + message: str | None = ... + """The error message accompanying the error code.""" + +@dataclass(kw_only=True) +class UnsuccessfulSuppressionResponseObject(_SerdeShape): + """Describes an unsuccessful application status check suppression.""" + + instance_id: str | None = ... + """The ID of the instance.""" + suppress_at: datetime | None = ... + """The date and time when suppression was attempted.""" + resume_at: datetime | None = ... + """The date and time when health checks would have resumed.""" + reason: str | None = ... + """The reason the suppression failed.""" + +@dataclass(kw_only=True) +class UpdateCapacityManagerMonitoredTagKeysInput(_SerdeShape): + """Dataclass for UpdateCapacityManagerMonitoredTagKeysInput structure.""" + + activate_tag_keys: list[str] | None = ... + """ + The tag keys to activate for monitoring. Once activated, these tag keys + will be included as dimensions in capacity metric data. + """ + deactivate_tag_keys: list[str] | None = ... + """ + The tag keys to deactivate. Deactivated tag keys will no longer be + included as dimensions in capacity metric data. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + +@dataclass(kw_only=True) +class UpdateCapacityManagerMonitoredTagKeysOutput(_SerdeShape): + """Dataclass for UpdateCapacityManagerMonitoredTagKeysOutput structure.""" + + capacity_manager_tag_keys: list[CapacityManagerMonitoredTagKey] | None = ... + """ + The list of tag keys affected by the update, including their current + status and metadata. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCapacityManagerOrganizationsAccessInput(_SerdeShape): + """Dataclass for UpdateCapacityManagerOrganizationsAccessInput structure.""" + + organizations_access: bool | None = ... + """ + Specifies whether to enable or disable cross-account access for Amazon + Web Services Organizations. When enabled, Capacity Manager aggregates + data from all accounts in your organization. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + client_token: str | None = ... + """ + Unique, case-sensitive identifier that you provide to ensure the + idempotency of the request. + """ + +@dataclass(kw_only=True) +class UpdateCapacityManagerOrganizationsAccessOutput(_SerdeShape): + """Dataclass for UpdateCapacityManagerOrganizationsAccessOutput structure.""" + + capacity_manager_status: str | None = ... + """The current status of Capacity Manager after the update operation.""" + organizations_access: bool | None = ... + """ + The updated Organizations access setting indicating whether + cross-account data aggregation is enabled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateInterruptibleCapacityReservationAllocationInput(_SerdeShape): + """ + Dataclass for UpdateInterruptibleCapacityReservationAllocationInput + structure. + """ + + capacity_reservation_id: str | None = ... + """ + The ID of the source Capacity Reservation containing the interruptible + allocation to modify. + """ + target_instance_count: int | None = ... + """ + The new number of instances to allocate. Enter a higher number to add + more capacity to share, or a lower number to reclaim capacity to your + source Capacity Reservation. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. + """ + zero_size_preference: str | None = ... + """ + Specifies the updated behavior for the interruptible Capacity + Reservation when you reduce its allocation to zero instances. Specify + `retain` to keep the interruptible Capacity Reservation active at zero + capacity so that you can allocate instances to it again later. Specify + `default` to cancel the interruptible Capacity Reservation and return + the capacity to your source Capacity Reservation. + """ + +@dataclass(kw_only=True) +class UpdateInterruptibleCapacityReservationAllocationOutput(_SerdeShape): + """ + Dataclass for UpdateInterruptibleCapacityReservationAllocationOutput + structure. + """ + + interruptible_capacity_reservation_id: str | None = ... + """The ID of the interruptible Capacity Reservation that was modified.""" + source_capacity_reservation_id: str | None = ... + """ + The ID of the source Capacity Reservation to which capacity was + reclaimed or from which capacity was allocated. + """ + instance_count: int | None = ... + """ + The current number of instances allocated to the interruptible + reservation. + """ + target_instance_count: int | None = ... + """ + The requested number of instances for the interruptible Capacity + Reservation. + """ + status: str | None = ... + """ + The current status of the allocation (updating during reclamation, + active when complete). + """ + interruption_type: str | None = ... + """The interruption type for the interruptible reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateSecurityGroupRuleDescriptionsEgressInput(_SerdeShape): + """Dataclass for UpdateSecurityGroupRuleDescriptionsEgressInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + group_id: str | None = ... + """ + The ID of the security group. You must specify either the security group + ID or the security group name in the request. For security groups in a + nondefault VPC, you must specify the security group ID. + """ + group_name: str | None = ... + """ + [Default VPC] The name of the security group. You must specify either + the security group ID or the security group name. + """ + ip_permissions: list[IpPermission] | None = ... + """ + The IP permissions for the security group rule. You must specify either + the IP permissions or the description. + """ + security_group_rule_descriptions: list[SecurityGroupRuleDescription] | None = ... + """ + The description for the egress security group rules. You must specify + either the description or the IP permissions. + """ + +@dataclass(kw_only=True) +class UpdateSecurityGroupRuleDescriptionsEgressOutput(_SerdeShape): + """Dataclass for UpdateSecurityGroupRuleDescriptionsEgressOutput structure.""" + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateSecurityGroupRuleDescriptionsIngressInput(_SerdeShape): + """Dataclass for UpdateSecurityGroupRuleDescriptionsIngressInput structure.""" + + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + group_id: str | None = ... + """ + The ID of the security group. You must specify either the security group + ID or the security group name in the request. For security groups in a + nondefault VPC, you must specify the security group ID. + """ + group_name: str | None = ... + """ + [Default VPC] The name of the security group. You must specify either + the security group ID or the security group name. For security groups in + a nondefault VPC, you must specify the security group ID. + """ + ip_permissions: list[IpPermission] | None = ... + """ + The IP permissions for the security group rule. You must specify either + IP permissions or a description. + """ + security_group_rule_descriptions: list[SecurityGroupRuleDescription] | None = ... + """ + The description for the ingress security group rules. You must specify + either a description or IP permissions. + """ + +@dataclass(kw_only=True) +class UpdateSecurityGroupRuleDescriptionsIngressOutput(_SerdeShape): + """ + Dataclass for UpdateSecurityGroupRuleDescriptionsIngressOutput + structure. + """ + + return_: bool | None = ... + """Returns `true` if the request succeeds; otherwise, returns an error.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class UsageClassType(UnknownEnumMixin, StrEnum): + SPOT = "spot" + ON_DEMAND = "on-demand" + CAPACITY_BLOCK = "capacity-block" + +@dataclass(kw_only=True) +class UserBucket(_SerdeShape): + """Describes the Amazon S3 bucket for the disk image.""" + + s3_bucket: str | None = ... + """The name of the Amazon S3 bucket where the disk image is located.""" + s3_key: str | None = ... + """The file name of the disk image.""" + +@dataclass(kw_only=True) +class UserBucketDetails(_SerdeShape): + """Describes the Amazon S3 bucket for the disk image.""" + + s3_bucket: str | None = ... + """The Amazon S3 bucket from which the disk image was created.""" + s3_key: str | None = ... + """The file name of the disk image.""" + +@dataclass(kw_only=True) +class UserData(_SerdeShape): + """Describes the user data for an instance.""" + + data: str | None = ... + """ + The user data. If you are using an Amazon Web Services SDK or command + line tool, Base64-encoding is performed for you, and you can load the + text from a file. Otherwise, you must provide Base64-encoded text. + """ + +@dataclass(kw_only=True) +class UserIdGroupPair(_SerdeShape): + """Describes a security group and Amazon Web Services account ID pair.""" + + description: str | None = ... + """ + A description for the security group rule that references this user ID + group pair. + + Constraints: Up to 255 characters in length. Allowed characters are a-z, + A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + """ + user_id: str | None = ... + """ + The ID of an Amazon Web Services account. + + For a referenced security group in another VPC, the account ID of the + referenced security group is returned in the response. If the referenced + security group is deleted, this value is not returned. + """ + group_name: str | None = ... + """ + [Default VPC] The name of the security group. For a security group in + a nondefault VPC, use the security group ID. + + For a referenced security group in another VPC, this value is not + returned if the referenced security group is deleted. + """ + group_id: str | None = ... + """The ID of the security group.""" + vpc_id: str | None = ... + """The ID of the VPC for the referenced security group, if applicable.""" + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection, if applicable.""" + peering_status: str | None = ... + """The status of a VPC peering connection, if applicable.""" + +class UserTrustProviderType(UnknownEnumMixin, StrEnum): + IAM_IDENTITY_CENTER = "iam-identity-center" + OIDC = "oidc" + +@dataclass(kw_only=True) +class ValidateSecurityGroupQuotasForInterfaceInput(_SerdeShape): + """Dataclass for ValidateSecurityGroupQuotasForInterfaceInput structure.""" + + security_group_ids: list[str] | None = ... + """ + The IDs of the security groups to validate for association with a single + network interface. You must specify at least one ID, and each ID must be + unique. The number of IDs cannot exceed the maximum number of security + groups allowed per network interface. + """ + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class ValidateSecurityGroupQuotasForInterfaceOutput(_SerdeShape): + """Dataclass for ValidateSecurityGroupQuotasForInterfaceOutput structure.""" + + valid: bool | None = ... + """ + Specifies whether the specified security groups can be associated with a + single network interface without exceeding the quotas. If associating + the security groups would exceed a quota, the operation returns an + error. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ValidationError(_SerdeShape): + """ + The error code and error message that is returned for a parameter or + parameter combination that is not valid when a new launch template or + new version of a launch template is created. + """ + + code: str | None = ... + """ + The error code that indicates why the parameter or parameter combination + is not valid. For more information about error codes, see [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + message: str | None = ... + """ + The error message that describes why the parameter or parameter + combination is not valid. For more information about error messages, see + [Error + codes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + """ + +@dataclass(kw_only=True) +class ValidationWarning(_SerdeShape): + """ + The error codes and error messages that are returned for the parameters + or parameter combinations that are not valid when a new launch template + or new version of a launch template is created. + """ + + errors: list[ValidationError] | None = ... + """The error codes and error messages.""" + +@dataclass(kw_only=True) +class VCpuCountRange(_SerdeShape): + """The minimum and maximum number of vCPUs.""" + + min: int | None = ... + """ + The minimum number of vCPUs. If the value is `0`, there is no minimum + limit. + """ + max: int | None = ... + """ + The maximum number of vCPUs. If this parameter is not specified, there + is no maximum limit. + """ + +@dataclass(kw_only=True) +class VCpuCountRangeRequest(_SerdeShape): + """The minimum and maximum number of vCPUs.""" + + min: int | None = ... + """The minimum number of vCPUs. To specify no minimum limit, specify `0`.""" + max: int | None = ... + """ + The maximum number of vCPUs. To specify no maximum limit, omit this + parameter. + """ + +@dataclass(kw_only=True) +class VCpuInfo(_SerdeShape): + """Describes the vCPU configurations for the instance type.""" + + default_v_cpus: int | None = ... + """The default number of vCPUs for the instance type.""" + default_cores: int | None = ... + """The default number of cores for the instance type.""" + default_threads_per_core: int | None = ... + """The default number of threads per core for the instance type.""" + valid_cores: list[int] | None = ... + """The valid number of cores that can be configured for the instance type.""" + valid_threads_per_core: list[int] | None = ... + """ + The valid number of threads per core that can be configured for the + instance type. + """ + +class VerificationMethod(UnknownEnumMixin, StrEnum): + REMARKS_X509 = "remarks-x509" + DNS_TOKEN = "dns-token" + +@dataclass(kw_only=True) +class VerifiedAccessEndpoint(_SerdeShape): + """ + An Amazon Web Services Verified Access endpoint specifies the + application that Amazon Web Services Verified Access provides access to. + It must be attached to an Amazon Web Services Verified Access group. An + Amazon Web Services Verified Access endpoint must also have an attached + access policy before you attached it to a group. + """ + + verified_access_instance_id: str | None = ... + """The ID of the Amazon Web Services Verified Access instance.""" + verified_access_group_id: str | None = ... + """The ID of the Amazon Web Services Verified Access group.""" + verified_access_endpoint_id: str | None = ... + """The ID of the Amazon Web Services Verified Access endpoint.""" + application_domain: str | None = ... + """The DNS name for users to reach your application.""" + endpoint_type: str | None = ... + """ + The type of Amazon Web Services Verified Access endpoint. Incoming + application requests will be sent to an IP address, load balancer or a + network interface depending on the endpoint type specified. + """ + attachment_type: str | None = ... + """ + The type of attachment used to provide connectivity between the Amazon + Web Services Verified Access endpoint and the application. + """ + domain_certificate_arn: str | None = ... + """ + The ARN of a public TLS/SSL certificate imported into or created with + ACM. + """ + endpoint_domain: str | None = ... + """A DNS name that is generated for the endpoint.""" + device_validation_domain: str | None = ... + """Returned if endpoint has a device trust provider attached.""" + security_group_ids: list[str] | None = ... + """The IDs of the security groups for the endpoint.""" + load_balancer_options: VerifiedAccessEndpointLoadBalancerOptions | None = ... + """ + The load balancer details if creating the Amazon Web Services Verified + Access endpoint as `load-balancer`type. + """ + network_interface_options: VerifiedAccessEndpointEniOptions | None = ... + """The options for network-interface type endpoint.""" + status: VerifiedAccessEndpointStatus | None = ... + """The endpoint status.""" + description: str | None = ... + """A description for the Amazon Web Services Verified Access endpoint.""" + creation_time: str | None = ... + """The creation time.""" + last_updated_time: str | None = ... + """The last updated time.""" + deletion_time: str | None = ... + """The deletion time.""" + tags: list[Tag] | None = ... + """The tags.""" + sse_specification: VerifiedAccessSseSpecificationResponse | None = ... + """The options in use for server side encryption.""" + rds_options: VerifiedAccessEndpointRdsOptions | None = ... + """The options for an RDS endpoint.""" + cidr_options: VerifiedAccessEndpointCidrOptions | None = ... + """The options for a CIDR endpoint.""" + +class VerifiedAccessEndpointAttachmentType(UnknownEnumMixin, StrEnum): + VPC = "vpc" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointCidrOptions(_SerdeShape): + """Describes the CIDR options for a Verified Access endpoint.""" + + cidr: str | None = ... + """The CIDR.""" + port_ranges: list[VerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + protocol: str | None = ... + """The protocol.""" + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointEniOptions(_SerdeShape): + """Options for a network-interface type endpoint.""" + + network_interface_id: str | None = ... + """The ID of the network interface.""" + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + port_ranges: list[VerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointLoadBalancerOptions(_SerdeShape): + """ + Describes a load balancer when creating an Amazon Web Services Verified + Access endpoint using the `load-balancer` type. + """ + + protocol: str | None = ... + """The IP protocol.""" + port: int | None = ... + """The IP port number.""" + load_balancer_arn: str | None = ... + """The ARN of the load balancer.""" + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + port_ranges: list[VerifiedAccessEndpointPortRange] | None = ... + """The port ranges.""" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointPortRange(_SerdeShape): + """Describes a port range.""" + + from_port: int | None = ... + """The start of the port range.""" + to_port: int | None = ... + """The end of the port range.""" + +class VerifiedAccessEndpointProtocol(UnknownEnumMixin, StrEnum): + HTTP = "http" + HTTPS = "https" + TCP = "tcp" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointRdsOptions(_SerdeShape): + """Describes the RDS options for a Verified Access endpoint.""" + + protocol: str | None = ... + """The protocol.""" + port: int | None = ... + """The port.""" + rds_db_instance_arn: str | None = ... + """The ARN of the RDS instance.""" + rds_db_cluster_arn: str | None = ... + """The ARN of the DB cluster.""" + rds_db_proxy_arn: str | None = ... + """The ARN of the RDS proxy.""" + rds_endpoint: str | None = ... + """The RDS endpoint.""" + subnet_ids: list[str] | None = ... + """The IDs of the subnets.""" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointStatus(_SerdeShape): + """Describes the status of a Verified Access endpoint.""" + + code: str | None = ... + """The status code of the Verified Access endpoint.""" + message: str | None = ... + """The status message of the Verified Access endpoint.""" + +class VerifiedAccessEndpointStatusCode(UnknownEnumMixin, StrEnum): + PENDING = "pending" + ACTIVE = "active" + UPDATING = "updating" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class VerifiedAccessEndpointTarget(_SerdeShape): + """Describes the targets for the specified Verified Access endpoint.""" + + verified_access_endpoint_id: str | None = ... + """The ID of the Verified Access endpoint.""" + verified_access_endpoint_target_ip_address: str | None = ... + """The IP address of the target.""" + verified_access_endpoint_target_dns: str | None = ... + """The DNS name of the target.""" + +class VerifiedAccessEndpointType(UnknownEnumMixin, StrEnum): + LOAD_BALANCER = "load-balancer" + NETWORK_INTERFACE = "network-interface" + RDS = "rds" + CIDR = "cidr" + +@dataclass(kw_only=True) +class VerifiedAccessGroup(_SerdeShape): + """Describes a Verified Access group.""" + + verified_access_group_id: str | None = ... + """The ID of the Verified Access group.""" + verified_access_instance_id: str | None = ... + """The ID of the Amazon Web Services Verified Access instance.""" + description: str | None = ... + """A description for the Amazon Web Services Verified Access group.""" + owner: str | None = ... + """The Amazon Web Services account number that owns the group.""" + verified_access_group_arn: str | None = ... + """The ARN of the Verified Access group.""" + creation_time: str | None = ... + """The creation time.""" + last_updated_time: str | None = ... + """The last updated time.""" + deletion_time: str | None = ... + """The deletion time.""" + tags: list[Tag] | None = ... + """The tags.""" + sse_specification: VerifiedAccessSseSpecificationResponse | None = ... + """The options in use for server side encryption.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstance(_SerdeShape): + """Describes a Verified Access instance.""" + + verified_access_instance_id: str | None = ... + """The ID of the Amazon Web Services Verified Access instance.""" + description: str | None = ... + """A description for the Amazon Web Services Verified Access instance.""" + verified_access_trust_providers: ( + list[VerifiedAccessTrustProviderCondensed] | None + ) = ... + """The IDs of the Amazon Web Services Verified Access trust providers.""" + creation_time: str | None = ... + """The creation time.""" + last_updated_time: str | None = ... + """The last updated time.""" + tags: list[Tag] | None = ... + """The tags.""" + fips_enabled: bool | None = ... + """ + Indicates whether support for Federal Information Processing Standards + (FIPS) is enabled on the instance. + """ + cidr_endpoints_custom_sub_domain: VerifiedAccessInstanceCustomSubDomain | None = ... + """The custom subdomain.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstanceCustomSubDomain(_SerdeShape): + """ + Describes a custom subdomain for a network CIDR endpoint for Verified + Access. + """ + + sub_domain: str | None = ... + """The subdomain.""" + nameservers: list[str] | None = ... + """The name servers.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstanceLoggingConfiguration(_SerdeShape): + """ + Describes logging options for an Amazon Web Services Verified Access + instance. + """ + + verified_access_instance_id: str | None = ... + """The ID of the Amazon Web Services Verified Access instance.""" + access_logs: VerifiedAccessLogs | None = ... + """Details about the logging options.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstanceOpenVpnClientConfiguration(_SerdeShape): + """Describes a set of routes.""" + + config: str | None = ... + """The base64-encoded Open VPN client configuration.""" + routes: list[VerifiedAccessInstanceOpenVpnClientConfigurationRoute] | None = ... + """The routes.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstanceOpenVpnClientConfigurationRoute(_SerdeShape): + """Describes a route.""" + + cidr: str | None = ... + """The CIDR block.""" + +@dataclass(kw_only=True) +class VerifiedAccessInstanceUserTrustProviderClientConfiguration(_SerdeShape): + """Describes the trust provider.""" + + type: str | None = ... + """The trust provider type.""" + scopes: str | None = ... + """The set of user claims to be requested from the IdP.""" + issuer: str | None = ... + """The OIDC issuer identifier of the IdP.""" + authorization_endpoint: str | None = ... + """The authorization endpoint of the IdP.""" + public_signing_key_endpoint: str | None = ... + """The public signing key endpoint.""" + token_endpoint: str | None = ... + """The token endpoint of the IdP.""" + user_info_endpoint: str | None = ... + """The user info endpoint of the IdP.""" + client_id: str | None = ... + """The OAuth 2.0 client identifier.""" + client_secret: str | None = ... + """The OAuth 2.0 client secret.""" + pkce_enabled: bool | None = ... + """Indicates whether Proof of Key Code Exchange (PKCE) is enabled.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogCloudWatchLogsDestination(_SerdeShape): + """Options for CloudWatch Logs as a logging destination.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + delivery_status: VerifiedAccessLogDeliveryStatus | None = ... + """The delivery status for access logs.""" + log_group: str | None = ... + """The ID of the CloudWatch Logs log group.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogCloudWatchLogsDestinationOptions(_SerdeShape): + """Options for CloudWatch Logs as a logging destination.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + log_group: str | None = ... + """The ID of the CloudWatch Logs log group.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogDeliveryStatus(_SerdeShape): + """Describes a log delivery status.""" + + code: str | None = ... + """The status code.""" + message: str | None = ... + """The status message.""" + +class VerifiedAccessLogDeliveryStatusCode(UnknownEnumMixin, StrEnum): + SUCCESS = "success" + FAILED = "failed" + +@dataclass(kw_only=True) +class VerifiedAccessLogKinesisDataFirehoseDestination(_SerdeShape): + """Options for Kinesis as a logging destination.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + delivery_status: VerifiedAccessLogDeliveryStatus | None = ... + """The delivery status.""" + delivery_stream: str | None = ... + """The ID of the delivery stream.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogKinesisDataFirehoseDestinationOptions(_SerdeShape): + """Describes Amazon Kinesis Data Firehose logging options.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + delivery_stream: str | None = ... + """The ID of the delivery stream.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogOptions(_SerdeShape): + """Options for Verified Access logs.""" + + s3: VerifiedAccessLogS3DestinationOptions | None = ... + """Sends Verified Access logs to Amazon S3.""" + cloud_watch_logs: VerifiedAccessLogCloudWatchLogsDestinationOptions | None = ... + """Sends Verified Access logs to CloudWatch Logs.""" + kinesis_data_firehose: ( + VerifiedAccessLogKinesisDataFirehoseDestinationOptions | None + ) = ... + """Sends Verified Access logs to Kinesis.""" + log_version: str | None = ... + """ + The logging version. + + Valid values: `ocsf-0.1` | `ocsf-1.0.0-rc.2` + """ + include_trust_context: bool | None = ... + """ + Indicates whether to include trust data sent by trust providers in the + logs. + """ + +@dataclass(kw_only=True) +class VerifiedAccessLogs(_SerdeShape): + """Describes the options for Verified Access logs.""" + + s3: VerifiedAccessLogS3Destination | None = ... + """Amazon S3 logging options.""" + cloud_watch_logs: VerifiedAccessLogCloudWatchLogsDestination | None = ... + """CloudWatch Logs logging destination.""" + kinesis_data_firehose: VerifiedAccessLogKinesisDataFirehoseDestination | None = ... + """Kinesis logging destination.""" + log_version: str | None = ... + """The log version.""" + include_trust_context: bool | None = ... + """Indicates whether trust data is included in the logs.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogS3Destination(_SerdeShape): + """Options for Amazon S3 as a logging destination.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + delivery_status: VerifiedAccessLogDeliveryStatus | None = ... + """The delivery status.""" + bucket_name: str | None = ... + """The bucket name.""" + prefix: str | None = ... + """The bucket prefix.""" + bucket_owner: str | None = ... + """The Amazon Web Services account number that owns the bucket.""" + +@dataclass(kw_only=True) +class VerifiedAccessLogS3DestinationOptions(_SerdeShape): + """Options for Amazon S3 as a logging destination.""" + + enabled: bool | None = ... + """Indicates whether logging is enabled.""" + bucket_name: str | None = ... + """The bucket name.""" + prefix: str | None = ... + """The bucket prefix.""" + bucket_owner: str | None = ... + """ + The ID of the Amazon Web Services account that owns the Amazon S3 + bucket. + """ + +@dataclass(kw_only=True) +class VerifiedAccessSseSpecificationRequest(_SerdeShape): + """ + Verified Access provides server side encryption by default to data at + rest using Amazon Web Services-owned KMS keys. You also have the option + of using customer managed KMS keys, which can be specified using the + options below. + """ + + customer_managed_key_enabled: bool | None = ... + """ + Enable or disable the use of customer managed KMS keys for server side + encryption. + + Valid values: `True` | `False` + """ + kms_key_arn: str | None = ... + """The ARN of the KMS key.""" + +@dataclass(kw_only=True) +class VerifiedAccessSseSpecificationResponse(_SerdeShape): + """The options in use for server side encryption.""" + + customer_managed_key_enabled: bool | None = ... + """ + Indicates whether customer managed KMS keys are in use for server side + encryption. + + Valid values: `True` | `False` + """ + kms_key_arn: str | None = ... + """The ARN of the KMS key.""" + +@dataclass(kw_only=True) +class VerifiedAccessTrustProvider(_SerdeShape): + """Describes a Verified Access trust provider.""" + + verified_access_trust_provider_id: str | None = ... + """The ID of the Amazon Web Services Verified Access trust provider.""" + description: str | None = ... + """ + A description for the Amazon Web Services Verified Access trust + provider. + """ + trust_provider_type: str | None = ... + """The type of Verified Access trust provider.""" + user_trust_provider_type: str | None = ... + """The type of user-based trust provider.""" + device_trust_provider_type: str | None = ... + """The type of device-based trust provider.""" + oidc_options: OidcOptions | None = ... + """ + The options for an OpenID Connect-compatible user-identity trust + provider. + """ + device_options: DeviceOptions | None = ... + """The options for device-identity trust provider.""" + policy_reference_name: str | None = ... + """The identifier to be used when working with policy rules.""" + creation_time: str | None = ... + """The creation time.""" + last_updated_time: str | None = ... + """The last updated time.""" + tags: list[Tag] | None = ... + """The tags.""" + sse_specification: VerifiedAccessSseSpecificationResponse | None = ... + """The options in use for server side encryption.""" + native_application_oidc_options: NativeApplicationOidcOptions | None = ... + """The OpenID Connect (OIDC) options.""" + +@dataclass(kw_only=True) +class VerifiedAccessTrustProviderCondensed(_SerdeShape): + """Condensed information about a trust provider.""" + + verified_access_trust_provider_id: str | None = ... + """The ID of the trust provider.""" + description: str | None = ... + """The description of trust provider.""" + trust_provider_type: str | None = ... + """The type of trust provider (user- or device-based).""" + user_trust_provider_type: str | None = ... + """The type of user-based trust provider.""" + device_trust_provider_type: str | None = ... + """The type of device-based trust provider.""" + +@dataclass(kw_only=True) +class VgwTelemetry(_SerdeShape): + """Describes telemetry for a VPN tunnel.""" + + accepted_route_count: int | None = ... + """The number of accepted routes.""" + last_status_change: datetime | None = ... + """ + The date and time of the last change in status. This field is updated + when changes in IKE (Phase 1), IPSec (Phase 2), or BGP status are + detected. + """ + outside_ip_address: str | None = ... + """ + The Internet-routable IP address of the virtual private gateway's + outside interface. + """ + status: str | None = ... + """The status of the VPN tunnel.""" + status_message: str | None = ... + """If an error occurs, a description of the error.""" + certificate_arn: str | None = ... + """The Amazon Resource Name (ARN) of the VPN tunnel endpoint certificate.""" + +class VirtualizationType(UnknownEnumMixin, StrEnum): + HVM = "hvm" + PARAVIRTUAL = "paravirtual" + +@dataclass(kw_only=True) +class Volume(_SerdeShape): + """Describes a volume.""" + + availability_zone_id: str | None = ... + """The ID of the Availability Zone for the volume.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + source_volume_id: str | None = ... + """ + The ID of the source volume from which the volume copy was created. Only + for volume copies. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the volume.""" + volume_type: str | None = ... + """The volume type.""" + fast_restored: bool | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Indicates whether the volume was created using fast snapshot restore. + """ + multi_attach_enabled: bool | None = ... + """Indicates whether Amazon EBS Multi-Attach is enabled.""" + throughput: int | None = ... + """The throughput that the volume supports, in MiB/s.""" + sse_type: str | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Reserved for future use. + """ + operator: OperatorResponse | None = ... + """The service provider that manages the volume.""" + volume_initialization_rate: int | None = ... + """ + The Amazon EBS Provisioned Rate for Volume Initialization (volume + initialization rate) specified for the volume during creation, in MiB/s. + If no volume initialization rate was specified, the value is `null`. + """ + volume_arn: str | None = ... + """The Amazon Resource Name (ARN) of the volume.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the volume.""" + volume_id: str | None = ... + """The ID of the volume.""" + size: int | None = ... + """The size of the volume, in GiBs.""" + snapshot_id: str | None = ... + """The snapshot from which the volume was created, if applicable.""" + availability_zone: str | None = ... + """The Availability Zone for the volume.""" + state: str | None = ... + """The volume state.""" + create_time: datetime | None = ... + """The time stamp when volume creation was initiated.""" + attachments: list[VolumeAttachment] | None = ... + """ + Note: + This parameter is not returned by CreateVolume. + + Information about the volume attachments. + """ + encrypted: bool | None = ... + """Indicates whether the volume is encrypted.""" + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) of the KMS key that was used to protect + the volume encryption key for the volume. + """ + +@dataclass(kw_only=True) +class VolumeAttachment(_SerdeShape): + """Describes volume attachment details.""" + + delete_on_termination: bool | None = ... + """Indicates whether the EBS volume is deleted on instance termination.""" + associated_resource: str | None = ... + """ + The ARN of the Amazon Web Services-managed resource to which the volume + is attached. + """ + instance_owning_service: str | None = ... + """ + The service principal of the Amazon Web Services service that owns the + underlying resource to which the volume is attached. + + This parameter is returned only for volumes that are attached to Amazon + Web Services-managed resources. + """ + ebs_card_index: int | None = ... + """ + The index of the EBS card. Some instance types support multiple EBS + cards. The default EBS card index is 0. + """ + volume_id: str | None = ... + """The ID of the volume.""" + instance_id: str | None = ... + """ + The ID of the instance. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + device: str | None = ... + """ + The device name. + + If the volume is attached to an Amazon Web Services-managed resource, + this parameter returns `null`. + """ + state: str | None = ... + """The attachment state of the volume.""" + attach_time: datetime | None = ... + """The time stamp when the attachment initiated.""" + +class VolumeAttachmentState(UnknownEnumMixin, StrEnum): + ATTACHING = "attaching" + ATTACHED = "attached" + DETACHING = "detaching" + DETACHED = "detached" + BUSY = "busy" + +class VolumeAttributeName(UnknownEnumMixin, StrEnum): + AUTO_ENABLE_IO = "autoEnableIO" + PRODUCT_CODES = "productCodes" + +@dataclass(kw_only=True) +class VolumeDetail(_SerdeShape): + """Describes an EBS volume.""" + + size: int | None = ... + """The size of the volume, in GiB.""" + +@dataclass(kw_only=True) +class VolumeModification(_SerdeShape): + """Describes the modification status of an EBS volume.""" + + volume_id: str | None = ... + """The ID of the volume.""" + modification_state: str | None = ... + """The current modification state.""" + status_message: str | None = ... + """A status message about the modification progress or failure.""" + target_size: int | None = ... + """The target size of the volume, in GiB.""" + target_iops: int | None = ... + """The target IOPS rate of the volume.""" + target_volume_type: str | None = ... + """The target EBS volume type of the volume.""" + target_throughput: int | None = ... + """The target throughput of the volume, in MiB/s.""" + target_multi_attach_enabled: bool | None = ... + """The target setting for Amazon EBS Multi-Attach.""" + original_size: int | None = ... + """The original size of the volume, in GiB.""" + original_iops: int | None = ... + """The original IOPS rate of the volume.""" + original_volume_type: str | None = ... + """The original EBS volume type of the volume.""" + original_throughput: int | None = ... + """The original throughput of the volume, in MiB/s.""" + original_multi_attach_enabled: bool | None = ... + """The original setting for Amazon EBS Multi-Attach.""" + progress: int | None = ... + """The modification progress, from 0 to 100 percent complete.""" + start_time: datetime | None = ... + """The modification start time.""" + end_time: datetime | None = ... + """The modification completion or failure time.""" + operator: OperatorResponse | None = ... + """The service provider that manages the resource.""" + +class VolumeModificationState(UnknownEnumMixin, StrEnum): + MODIFYING = "modifying" + OPTIMIZING = "optimizing" + COMPLETED = "completed" + FAILED = "failed" + +@dataclass(kw_only=True) +class VolumeRecycleBinInfo(_SerdeShape): + """Information about a volume that is currently in the Recycle Bin.""" + + volume_id: str | None = ... + """The ID of the volume.""" + volume_type: str | None = ... + """The volume type.""" + state: str | None = ... + """The state of the volume.""" + size: int | None = ... + """The size of the volume, in GiB.""" + iops: int | None = ... + """The number of I/O operations per second (IOPS) for the volume.""" + throughput: int | None = ... + """The throughput that the volume supports, in MiB/s.""" + outpost_arn: str | None = ... + """ + The ARN of the Outpost on which the volume is stored. For more + information, see [Amazon EBS volumes on + Outposts](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-outposts.html) + in the *Amazon EBS User Guide*. + """ + availability_zone: str | None = ... + """The Availability Zone for the volume.""" + availability_zone_id: str | None = ... + """The ID of the Availability Zone for the volume.""" + source_volume_id: str | None = ... + """The ID of the source volume.""" + snapshot_id: str | None = ... + """The snapshot from which the volume was created, if applicable.""" + operator: OperatorResponse | None = ... + """The service provider that manages the volume.""" + create_time: datetime | None = ... + """The time stamp when volume creation was initiated.""" + recycle_bin_enter_time: datetime | None = ... + """The date and time when the volume entered the Recycle Bin.""" + recycle_bin_exit_time: datetime | None = ... + """ + The date and time when the volume is to be permanently deleted from the + Recycle Bin. + """ + +class VolumeState(UnknownEnumMixin, StrEnum): + CREATING = "creating" + AVAILABLE = "available" + IN_USE = "in-use" + DELETING = "deleting" + DELETED = "deleted" + ERROR = "error" + +@dataclass(kw_only=True) +class VolumeStatusAction(_SerdeShape): + """Describes a volume status operation code.""" + + code: str | None = ... + """The code identifying the operation, for example, `enable-volume-io`.""" + description: str | None = ... + """A description of the operation.""" + event_id: str | None = ... + """The ID of the event associated with this operation.""" + event_type: str | None = ... + """The event type associated with this operation.""" + +@dataclass(kw_only=True) +class VolumeStatusAttachmentStatus(_SerdeShape): + """Information about the instances to which the volume is attached.""" + + io_performance: str | None = ... + """The maximum IOPS supported by the attached instance.""" + instance_id: str | None = ... + """The ID of the attached instance.""" + +@dataclass(kw_only=True) +class VolumeStatusDetails(_SerdeShape): + """Describes a volume status.""" + + name: str | None = ... + """ + The name of the volume status. + + - `io-enabled` - Indicates the volume I/O status. For more information, + see [Amazon EBS volume status + checks](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-checks.html). + + - `io-performance` - Indicates the volume performance status. For more + information, see [Amazon EBS volume status + checks](https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-checks.html). + + - `initialization-state` - Indicates the status of the volume + initialization process. For more information, see [Initialize Amazon + EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html). + """ + status: str | None = ... + """The intended status of the volume status.""" + +@dataclass(kw_only=True) +class VolumeStatusEvent(_SerdeShape): + """Describes a volume status event.""" + + description: str | None = ... + """A description of the event.""" + event_id: str | None = ... + """The ID of this event.""" + event_type: str | None = ... + """The type of this event.""" + not_after: datetime | None = ... + """The latest end time of the event.""" + not_before: datetime | None = ... + """The earliest start time of the event.""" + instance_id: str | None = ... + """The ID of the instance associated with the event.""" + +@dataclass(kw_only=True) +class VolumeStatusInfo(_SerdeShape): + """Describes the status of a volume.""" + + details: list[VolumeStatusDetails] | None = ... + """The details of the volume status.""" + status: str | None = ... + """The status of the volume.""" + +class VolumeStatusInfoStatus(UnknownEnumMixin, StrEnum): + OK = "ok" + IMPAIRED = "impaired" + INSUFFICIENT_DATA = "insufficient-data" + WARNING = "warning" + +@dataclass(kw_only=True) +class VolumeStatusItem(_SerdeShape): + """Describes the volume status.""" + + actions: list[VolumeStatusAction] | None = ... + """The details of the operation.""" + availability_zone: str | None = ... + """The Availability Zone of the volume.""" + outpost_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + events: list[VolumeStatusEvent] | None = ... + """A list of events associated with the volume.""" + volume_id: str | None = ... + """The volume ID.""" + volume_status: VolumeStatusInfo | None = ... + """The volume status.""" + attachment_statuses: list[VolumeStatusAttachmentStatus] | None = ... + """Information about the instances to which the volume is attached.""" + initialization_status_details: InitializationStatusDetails | None = ... + """ + Information about the volume initialization. It can take up to 5 minutes + for the volume initialization information to be updated. + + Only available for volumes created from snapshots. Not available for + empty volumes created without a snapshot. + + For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html). + """ + availability_zone_id: str | None = ... + """The ID of the Availability Zone.""" + operator: OperatorResponse | None = ... + """The service provider that manages the resource.""" + +class VolumeStatusName(UnknownEnumMixin, StrEnum): + IO_ENABLED = "io-enabled" + IO_PERFORMANCE = "io-performance" + INITIALIZATION_STATE = "initialization-state" + +class VolumeType(UnknownEnumMixin, StrEnum): + STANDARD = "standard" + IO1 = "io1" + IO2 = "io2" + GP2 = "gp2" + SC1 = "sc1" + ST1 = "st1" + GP3 = "gp3" + +@dataclass(kw_only=True) +class Vpc(_SerdeShape): + """Describes a VPC.""" + + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the VPC.""" + instance_tenancy: str | None = ... + """The allowed tenancy of instances launched into the VPC.""" + ipv6_cidr_block_association_set: list[VpcIpv6CidrBlockAssociation] | None = ... + """Information about the IPv6 CIDR blocks associated with the VPC.""" + cidr_block_association_set: list[VpcCidrBlockAssociation] | None = ... + """Information about the IPv4 CIDR blocks associated with the VPC.""" + is_default: bool | None = ... + """Indicates whether the VPC is the default VPC.""" + encryption_control: VpcEncryptionControl | None = ... + """ + Describes the configuration and state of VPC encryption controls. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the VPC.""" + block_public_access_states: BlockPublicAccessStates | None = ... + """The state of VPC Block Public Access (BPA).""" + vpc_id: str | None = ... + """The ID of the VPC.""" + state: str | None = ... + """The current state of the VPC.""" + cidr_block: str | None = ... + """The primary IPv4 CIDR block for the VPC.""" + dhcp_options_id: str | None = ... + """The ID of the set of DHCP options you've associated with the VPC.""" + +@dataclass(kw_only=True) +class VpcAttachment(_SerdeShape): + """Describes an attachment between a virtual private gateway and a VPC.""" + + vpc_id: str | None = ... + """The ID of the VPC.""" + state: str | None = ... + """The current state of the attachment.""" + +class VpcAttributeName(UnknownEnumMixin, StrEnum): + ENABLE_DNS_SUPPORT = "enableDnsSupport" + ENABLE_DNS_HOSTNAMES = "enableDnsHostnames" + ENABLE_NETWORK_ADDRESS_USAGE_METRICS = "enableNetworkAddressUsageMetrics" + +@dataclass(kw_only=True) +class VpcBlockPublicAccessExclusion(_SerdeShape): + """ + A VPC BPA exclusion is a mode that can be applied to a single VPC or + subnet that exempts it from the account's BPA mode and will allow + bidirectional or egress-only access. You can create BPA exclusions for + VPCs and subnets even when BPA is not enabled on the account to ensure + that there is no traffic disruption to the exclusions when VPC BPA is + turned on. To learn more about VPC BPA, see [Block public access to VPCs + and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + + exclusion_id: str | None = ... + """The ID of the exclusion.""" + internet_gateway_exclusion_mode: str | None = ... + """ + The exclusion mode for internet gateway traffic. + + - `allow-bidirectional`: Allow all internet traffic to and from the + excluded VPCs and subnets. + + - `allow-egress`: Allow outbound internet traffic from the excluded VPCs + and subnets. Block inbound internet traffic to the excluded VPCs and + subnets. Only applies when VPC Block Public Access is set to + Bidirectional. + """ + resource_arn: str | None = ... + """The ARN of the exclusion.""" + state: str | None = ... + """The state of the exclusion.""" + reason: str | None = ... + """The reason for the current exclusion state.""" + creation_timestamp: datetime | None = ... + """When the exclusion was created.""" + last_update_timestamp: datetime | None = ... + """When the exclusion was last updated.""" + deletion_timestamp: datetime | None = ... + """When the exclusion was deleted.""" + tags: list[Tag] | None = ... + """ + `tag` - The key/value combination of a tag assigned to the resource. Use + the tag key in the filter name and the tag value as the filter value. + For example, to find all resources that have a tag with the key `Owner` + and the value `TeamA`, specify `tag:Owner` for the filter name and + `TeamA` for the filter value. + """ + +class VpcBlockPublicAccessExclusionsAllowed(UnknownEnumMixin, StrEnum): + ALLOWED = "allowed" + NOT_ALLOWED = "not-allowed" + +class VpcBlockPublicAccessExclusionState(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "create-in-progress" + CREATE_COMPLETE = "create-complete" + CREATE_FAILED = "create-failed" + UPDATE_IN_PROGRESS = "update-in-progress" + UPDATE_COMPLETE = "update-complete" + UPDATE_FAILED = "update-failed" + DELETE_IN_PROGRESS = "delete-in-progress" + DELETE_COMPLETE = "delete-complete" + DISABLE_IN_PROGRESS = "disable-in-progress" + DISABLE_COMPLETE = "disable-complete" + +@dataclass(kw_only=True) +class VpcBlockPublicAccessOptions(_SerdeShape): + """ + VPC Block Public Access (BPA) enables you to block resources in VPCs and + subnets that you own in a Region from reaching or being reached from the + internet through internet gateways and egress-only internet gateways. To + learn more about VPC BPA, see [Block public access to VPCs and + subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + + aws_account_id: str | None = ... + """An Amazon Web Services account ID.""" + aws_region: str | None = ... + """An Amazon Web Services Region.""" + state: str | None = ... + """The current state of VPC BPA.""" + internet_gateway_block_mode: str | None = ... + """ + The current mode of VPC BPA. + + - `off`: VPC BPA is not enabled and traffic is allowed to and from + internet gateways and egress-only internet gateways in this Region. + + - `block-bidirectional`: Block all traffic to and from internet gateways + and egress-only internet gateways in this Region (except for excluded + VPCs and subnets). + + - `block-ingress`: Block all internet traffic to the VPCs in this Region + (except for VPCs or subnets which are excluded). Only traffic to and + from NAT gateways and egress-only internet gateways is allowed because + these gateways only allow outbound connections to be established. + """ + reason: str | None = ... + """The reason for the current state.""" + last_update_timestamp: datetime | None = ... + """The last time the VPC BPA mode was updated.""" + managed_by: str | None = ... + """ + The entity that manages the state of VPC BPA. Possible values include: + + - `account` - The state is managed by the account. + + - `declarative-policy` - The state is managed by a declarative policy + and can't be modified by the account. + """ + exclusions_allowed: str | None = ... + """ + Determines if exclusions are allowed. If you have [enabled VPC BPA at + the Organization + level](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html#security-vpc-bpa-exclusions-orgs), + exclusions may be `not-allowed`. Otherwise, they are `allowed`. + """ + +class VpcBlockPublicAccessState(UnknownEnumMixin, StrEnum): + DEFAULT_STATE = "default-state" + UPDATE_IN_PROGRESS = "update-in-progress" + UPDATE_COMPLETE = "update-complete" + +@dataclass(kw_only=True) +class VpcCidrBlockAssociation(_SerdeShape): + """Describes an IPv4 CIDR block associated with a VPC.""" + + association_id: str | None = ... + """The association ID for the IPv4 CIDR block.""" + cidr_block: str | None = ... + """The IPv4 CIDR block.""" + cidr_block_state: VpcCidrBlockState | None = ... + """Information about the state of the CIDR block.""" + +@dataclass(kw_only=True) +class VpcCidrBlockState(_SerdeShape): + """Describes the state of a CIDR block.""" + + state: str | None = ... + """The state of the CIDR block.""" + status_message: str | None = ... + """A message about the status of the CIDR block, if applicable.""" + +class VpcCidrBlockStateCode(UnknownEnumMixin, StrEnum): + ASSOCIATING = "associating" + ASSOCIATED = "associated" + DISASSOCIATING = "disassociating" + DISASSOCIATED = "disassociated" + FAILING = "failing" + FAILED = "failed" + +@dataclass(kw_only=True) +class VpcClassicLink(_SerdeShape): + """ + Note: + Deprecated. + + Describes whether a VPC is enabled for ClassicLink. + """ + + classic_link_enabled: bool | None = ... + """Indicates whether the VPC is enabled for ClassicLink.""" + tags: list[Tag] | None = ... + """Any tags assigned to the VPC.""" + vpc_id: str | None = ... + """The ID of the VPC.""" + +@dataclass(kw_only=True) +class VpcEncryptionControl(_SerdeShape): + """ + Describes the configuration and state of VPC encryption controls. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + vpc_id: str | None = ... + """The ID of the VPC associated with the encryption control configuration.""" + vpc_encryption_control_id: str | None = ... + """The ID of the VPC Encryption Control configuration.""" + mode: str | None = ... + """The encryption mode for the VPC Encryption Control configuration.""" + state: str | None = ... + """The current state of the VPC Encryption Control configuration.""" + state_message: str | None = ... + """ + A message providing additional information about the encryption control + state. + """ + resource_exclusions: VpcEncryptionControlExclusions | None = ... + """ + Information about resource exclusions for the VPC Encryption Control + configuration. + """ + tags: list[Tag] | None = ... + """The tags assigned to the VPC Encryption Control configuration.""" + +@dataclass(kw_only=True) +class VpcEncryptionControlConfiguration(_SerdeShape): + """ + Describes the configuration settings for VPC Encryption Control. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + mode: str | None = ... + """The encryption mode for the VPC Encryption Control configuration.""" + internet_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude internet gateway traffic from encryption + enforcement. + """ + egress_only_internet_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude egress-only internet gateway traffic from + encryption enforcement. + """ + nat_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude NAT gateway traffic from encryption + enforcement. + """ + virtual_private_gateway_exclusion: str | None = ... + """ + Specifies whether to exclude virtual private gateway traffic from + encryption enforcement. + """ + vpc_peering_exclusion: str | None = ... + """ + Specifies whether to exclude VPC peering connection traffic from + encryption enforcement. + """ + lambda_exclusion: str | None = ... + """ + Specifies whether to exclude Lambda function traffic from encryption + enforcement. + """ + vpc_lattice_exclusion: str | None = ... + """ + Specifies whether to exclude VPC Lattice traffic from encryption + enforcement. + """ + elastic_file_system_exclusion: str | None = ... + """ + Specifies whether to exclude Elastic File System traffic from encryption + enforcement. + """ + +@dataclass(kw_only=True) +class VpcEncryptionControlExclusion(_SerdeShape): + """ + Describes an exclusion configuration for VPC Encryption Control. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + state: str | None = ... + """The current state of the exclusion configuration.""" + state_message: str | None = ... + """A message providing additional information about the exclusion state.""" + +@dataclass(kw_only=True) +class VpcEncryptionControlExclusions(_SerdeShape): + """ + Describes the exclusion configurations for various resource types in VPC + Encryption Control. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + internet_gateway: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for internet gateway traffic.""" + egress_only_internet_gateway: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for egress-only internet gateway traffic.""" + nat_gateway: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for NAT gateway traffic.""" + virtual_private_gateway: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for virtual private gateway traffic.""" + vpc_peering: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for VPC peering connection traffic.""" + lambda_: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for Lambda function traffic.""" + vpc_lattice: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for VPC Lattice traffic.""" + elastic_file_system: VpcEncryptionControlExclusion | None = ... + """The exclusion configuration for Elastic File System traffic.""" + +class VpcEncryptionControlExclusionState(UnknownEnumMixin, StrEnum): + ENABLING = "enabling" + ENABLED = "enabled" + DISABLING = "disabling" + DISABLED = "disabled" + +class VpcEncryptionControlExclusionStateInput(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +class VpcEncryptionControlMode(UnknownEnumMixin, StrEnum): + MONITOR = "monitor" + ENFORCE = "enforce" + +class VpcEncryptionControlState(UnknownEnumMixin, StrEnum): + ENFORCE_IN_PROGRESS = "enforce-in-progress" + MONITOR_IN_PROGRESS = "monitor-in-progress" + ENFORCE_FAILED = "enforce-failed" + MONITOR_FAILED = "monitor-failed" + DELETING = "deleting" + DELETED = "deleted" + AVAILABLE = "available" + CREATING = "creating" + DELETE_FAILED = "delete-failed" + +@dataclass(kw_only=True) +class VpcEncryptionNonCompliantResource(_SerdeShape): + """ + Describes a resource that is not compliant with VPC encryption + requirements. + + For more information, see [Enforce VPC encryption in + transit](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html) + in the *Amazon VPC User Guide*. + """ + + id: str | None = ... + """The ID of the non-compliant resource.""" + type: str | None = ... + """The type of the non-compliant resource.""" + description: str | None = ... + """A description of the non-compliant resource.""" + is_excludable: bool | None = ... + """ + Indicates whether the resource can be excluded from encryption + enforcement. + """ + +@dataclass(kw_only=True) +class VpcEndpoint(_SerdeShape): + """Describes a VPC endpoint.""" + + vpc_endpoint_id: str | None = ... + """The ID of the endpoint.""" + vpc_endpoint_type: str | None = ... + """ + The type of endpoint. + + For more information about the types of VPC endpoints, see [VPC + endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html#concepts-vpc-endpoints) + in the *Amazon Web Services PrivateLink User Guide*. + """ + vpc_id: str | None = ... + """The ID of the VPC to which the endpoint is associated.""" + service_name: str | None = ... + """The name of the service to which the endpoint is associated.""" + state: str | None = ... + """The state of the endpoint.""" + policy_document: str | None = ... + """The policy document associated with the endpoint, if applicable.""" + route_table_ids: list[str] | None = ... + """ + (Gateway endpoint) The IDs of the route tables associated with the + endpoint. + """ + subnet_ids: list[str] | None = ... + """ + (Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, + and Tunnel endpoints only) The subnets for the endpoint. + """ + groups: list[SecurityGroupIdentifier] | None = ... + """ + (Interface, Resource, ServiceNetwork, and Tunnel endpoints only) + Information about the security groups that are associated with the + network interface. + """ + ip_address_type: str | None = ... + """The IP address type for the endpoint.""" + dns_options: DnsOptions | None = ... + """The DNS options for the endpoint.""" + private_dns_enabled: bool | None = ... + """ + (Interface endpoint) Indicates whether the VPC is associated with a + private hosted zone. + """ + requester_managed: bool | None = ... + """Indicates whether the endpoint is being managed by its service.""" + network_interface_ids: list[str] | None = ... + """ + (Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, + and Tunnel endpoints only) The network interfaces for the endpoint. + """ + dns_entries: list[DnsEntry] | None = ... + """(Interface endpoint) The DNS entries for the endpoint.""" + creation_timestamp: datetime | None = ... + """The date and time that the endpoint was created.""" + tags: list[Tag] | None = ... + """The tags assigned to the endpoint.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the endpoint.""" + last_error: LastError | None = ... + """The last error that occurred for endpoint.""" + ipv4_prefixes: list[SubnetIpPrefixes] | None = ... + """Array of IPv4 prefixes.""" + ipv6_prefixes: list[SubnetIpPrefixes] | None = ... + """Array of IPv6 prefixes.""" + failure_reason: str | None = ... + """Reason for the failure.""" + service_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the service network.""" + resource_configuration_arn: str | None = ... + """The Amazon Resource Name (ARN) of the resource configuration.""" + service_region: str | None = ... + """The Region where the service is hosted.""" + payer_responsibilities: list[PayerResponsibilityEntry] | None = ... + """The payer responsibility settings for the endpoint.""" + +@dataclass(kw_only=True) +class VpcEndpointAssociation(_SerdeShape): + """ + Describes the VPC resources, VPC endpoint services, Lattice services, or + service networks associated with the VPC endpoint. + """ + + id: str | None = ... + """The ID of the VPC endpoint association.""" + vpc_endpoint_id: str | None = ... + """The ID of the VPC endpoint.""" + service_network_arn: str | None = ... + """The Amazon Resource Name (ARN) of the service network.""" + service_network_name: str | None = ... + """The name of the service network.""" + associated_resource_accessibility: str | None = ... + """ + The connectivity status of the resources associated to a VPC endpoint. + The resource is accessible if the associated resource configuration is + `AVAILABLE`, otherwise the resource is inaccessible. + """ + failure_reason: str | None = ... + """A message related to why an VPC endpoint association failed.""" + failure_code: str | None = ... + """An error code related to why an VPC endpoint association failed.""" + dns_entry: DnsEntry | None = ... + """The DNS entry of the VPC endpoint association.""" + private_dns_entry: DnsEntry | None = ... + """The private DNS entry of the VPC endpoint association.""" + associated_resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the associated resource.""" + resource_configuration_group_arn: str | None = ... + """The Amazon Resource Name (ARN) of the resource configuration group.""" + tags: list[Tag] | None = ... + """The tags to apply to the VPC endpoint association.""" + +@dataclass(kw_only=True) +class VpcEndpointConnection(_SerdeShape): + """Describes a VPC endpoint connection to a service.""" + + service_id: str | None = ... + """The ID of the service to which the endpoint is connected.""" + vpc_endpoint_id: str | None = ... + """The ID of the VPC endpoint.""" + vpc_endpoint_owner: str | None = ... + """The ID of the Amazon Web Services account that owns the VPC endpoint.""" + vpc_endpoint_state: str | None = ... + """The state of the VPC endpoint.""" + creation_timestamp: datetime | None = ... + """The date and time that the VPC endpoint was created.""" + dns_entries: list[DnsEntry] | None = ... + """The DNS entries for the VPC endpoint.""" + network_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the network load balancers for the + service. + """ + gateway_load_balancer_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the + service. + """ + ip_address_type: str | None = ... + """The IP address type for the endpoint.""" + vpc_endpoint_connection_id: str | None = ... + """The ID of the VPC endpoint connection.""" + tags: list[Tag] | None = ... + """The tags.""" + vpc_endpoint_region: str | None = ... + """The Region of the endpoint.""" + payer_responsibilities: list[PayerResponsibilityEntry] | None = ... + """The payer responsibility settings for the endpoint.""" + +class VpcEndpointType(UnknownEnumMixin, StrEnum): + INTERFACE = "Interface" + GATEWAY = "Gateway" + GATEWAY_LOAD_BALANCER = "GatewayLoadBalancer" + RESOURCE = "Resource" + SERVICE_NETWORK = "ServiceNetwork" + TUNNEL = "Tunnel" + +@dataclass(kw_only=True) +class VpcIpv6CidrBlockAssociation(_SerdeShape): + """Describes an IPv6 CIDR block associated with a VPC.""" + + association_id: str | None = ... + """The association ID for the IPv6 CIDR block.""" + ipv6_cidr_block: str | None = ... + """The IPv6 CIDR block.""" + ipv6_cidr_block_state: VpcCidrBlockState | None = ... + """Information about the state of the CIDR block.""" + network_border_group: str | None = ... + """ + The name of the unique set of Availability Zones, Local Zones, or + Wavelength Zones from which Amazon Web Services advertises IP addresses, + for example, `us-east-1-wl1-bos-wlz-1`. + """ + ipv6_pool: str | None = ... + """ + The ID of the IPv6 address pool from which the IPv6 CIDR block is + allocated. + """ + ipv6_address_attribute: str | None = ... + """ + Public IPv6 addresses are those advertised on the internet from Amazon + Web Services. Private IP addresses are not and cannot be advertised on + the internet from Amazon Web Services. + """ + ip_source: str | None = ... + """ + The source that allocated the IP address space. `byoip` or `amazon` + indicates public IP address space allocated by Amazon or space that you + have allocated with Bring your own IP (BYOIP). `none` indicates private + space. + """ + +@dataclass(kw_only=True) +class VpcPeeringConnection(_SerdeShape): + """Describes a VPC peering connection.""" + + accepter_vpc_info: VpcPeeringConnectionVpcInfo | None = ... + """ + Information about the accepter VPC. CIDR block information is only + returned when describing an active VPC peering connection. + """ + expiration_time: datetime | None = ... + """The time that an unaccepted VPC peering connection will expire.""" + requester_vpc_info: VpcPeeringConnectionVpcInfo | None = ... + """ + Information about the requester VPC. CIDR block information is only + returned when describing an active VPC peering connection. + """ + status: VpcPeeringConnectionStateReason | None = ... + """The status of the VPC peering connection.""" + tags: list[Tag] | None = ... + """Any tags assigned to the resource.""" + vpc_peering_connection_id: str | None = ... + """The ID of the VPC peering connection.""" + +@dataclass(kw_only=True) +class VpcPeeringConnectionOptionsDescription(_SerdeShape): + """Describes the VPC peering connection options.""" + + allow_dns_resolution_from_remote_vpc: bool | None = ... + """ + Indicates whether a local VPC can resolve public DNS hostnames to + private IP addresses when queried from instances in a peer VPC. + """ + allow_egress_from_local_classic_link_to_remote_vpc: bool | None = ... + """Deprecated.""" + allow_egress_from_local_vpc_to_remote_classic_link: bool | None = ... + """Deprecated.""" + +@dataclass(kw_only=True) +class VpcPeeringConnectionStateReason(_SerdeShape): + """Describes the status of a VPC peering connection.""" + + code: str | None = ... + """The status of the VPC peering connection.""" + message: str | None = ... + """ + A message that provides more information about the status, if + applicable. + """ + +class VpcPeeringConnectionStateReasonCode(UnknownEnumMixin, StrEnum): + INITIATING_REQUEST = "initiating-request" + PENDING_ACCEPTANCE = "pending-acceptance" + ACTIVE = "active" + DELETED = "deleted" + REJECTED = "rejected" + FAILED = "failed" + EXPIRED = "expired" + PROVISIONING = "provisioning" + DELETING = "deleting" + +@dataclass(kw_only=True) +class VpcPeeringConnectionVpcInfo(_SerdeShape): + """Describes a VPC in a VPC peering connection.""" + + cidr_block: str | None = ... + """The IPv4 CIDR block for the VPC.""" + ipv6_cidr_block_set: list[Ipv6CidrBlock] | None = ... + """The IPv6 CIDR block for the VPC.""" + cidr_block_set: list[CidrBlock] | None = ... + """Information about the IPv4 CIDR blocks for the VPC.""" + owner_id: str | None = ... + """The ID of the Amazon Web Services account that owns the VPC.""" + peering_options: VpcPeeringConnectionOptionsDescription | None = ... + """ + Information about the VPC peering connection options for the accepter or + requester VPC. + """ + vpc_id: str | None = ... + """The ID of the VPC.""" + region: str | None = ... + """The Region in which the VPC is located.""" + +class VpcState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + +class VpcTenancy(UnknownEnumMixin, StrEnum): + DEFAULT = "default" + +@dataclass(kw_only=True) +class VpnConcentrator(_SerdeShape): + """Describes a VPN concentrator.""" + + vpn_concentrator_id: str | None = ... + """The ID of the VPN concentrator.""" + state: str | None = ... + """The current state of the VPN concentrator.""" + transit_gateway_id: str | None = ... + """The ID of the transit gateway associated with the VPN concentrator.""" + transit_gateway_attachment_id: str | None = ... + """The ID of the transit gateway attachment for the VPN concentrator.""" + type: str | None = ... + """The type of VPN concentrator.""" + tags: list[Tag] | None = ... + """Any tags assigned to the VPN concentrator.""" + +class VpnConcentratorType(UnknownEnumMixin, StrEnum): + IPSEC_1 = "ipsec.1" + +@dataclass(kw_only=True) +class VpnConnection(_SerdeShape): + """Describes a VPN connection.""" + + category: str | None = ... + """ + The category of the VPN connection. A value of `VPN` indicates an Amazon + Web Services VPN connection. A value of `VPN-Classic` indicates an + Amazon Web Services Classic VPN connection. + """ + transit_gateway_id: str | None = ... + """The ID of the transit gateway associated with the VPN connection.""" + vpn_concentrator_id: str | None = ... + """The ID of the VPN concentrator associated with the VPN connection.""" + core_network_arn: str | None = ... + """The ARN of the core network.""" + core_network_attachment_arn: str | None = ... + """The ARN of the core network attachment.""" + gateway_association_state: str | None = ... + """The current state of the gateway association.""" + options: VpnConnectionOptions | None = ... + """The VPN connection options.""" + routes: list[VpnStaticRoute] | None = ... + """The static routes associated with the VPN connection.""" + tags: list[Tag] | None = ... + """Any tags assigned to the VPN connection.""" + vgw_telemetry: list[VgwTelemetry] | None = ... + """Information about the VPN tunnel.""" + pre_shared_key_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Secrets Manager secret storing the + pre-shared key(s) for the VPN connection. + """ + vpn_connection_id: str | None = ... + """The ID of the VPN connection.""" + state: str | None = ... + """The current state of the VPN connection.""" + customer_gateway_configuration: str | None = ... + """ + The configuration information for the VPN connection's customer gateway + (in the native XML format). This element is always present in the + CreateVpnConnection response; however, it's present in the + DescribeVpnConnections response only if the VPN connection is in the + `pending` or `available` state. + """ + type: str | None = ... + """The type of VPN connection.""" + customer_gateway_id: str | None = ... + """The ID of the customer gateway at your end of the VPN connection.""" + vpn_gateway_id: str | None = ... + """ + The ID of the virtual private gateway at the Amazon Web Services side of + the VPN connection. + """ + +@dataclass(kw_only=True) +class VpnConnectionDeviceType(_SerdeShape): + """ + List of customer gateway devices that have a sample configuration file + available for use. You can also see the list of device types with sample + configuration files available under [Your customer gateway + device](https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html) in + the *Amazon Web Services Site-to-Site VPN User Guide*. + """ + + vpn_connection_device_type_id: str | None = ... + """Customer gateway device identifier.""" + vendor: str | None = ... + """Customer gateway device vendor.""" + platform: str | None = ... + """Customer gateway device platform.""" + software: str | None = ... + """Customer gateway device software version.""" + +@dataclass(kw_only=True) +class VpnConnectionOptions(_SerdeShape): + """Describes VPN connection options.""" + + enable_acceleration: bool | None = ... + """Indicates whether acceleration is enabled for the VPN connection.""" + static_routes_only: bool | None = ... + """ + Indicates whether the VPN connection uses static routes only. Static + routes must be used for devices that don't support BGP. + """ + local_ipv4_network_cidr: str | None = ... + """ + The IPv4 CIDR on the customer gateway (on-premises) side of the VPN + connection. + """ + remote_ipv4_network_cidr: str | None = ... + """The IPv4 CIDR on the Amazon Web Services side of the VPN connection.""" + local_ipv6_network_cidr: str | None = ... + """ + The IPv6 CIDR on the customer gateway (on-premises) side of the VPN + connection. + """ + remote_ipv6_network_cidr: str | None = ... + """The IPv6 CIDR on the Amazon Web Services side of the VPN connection.""" + outside_ip_address_type: str | None = ... + """ + The type of IPv4 address assigned to the outside interface of the + customer gateway. + + Valid values: `PrivateIpv4` | `PublicIpv4` | `Ipv6` + + Default: `PublicIpv4` + """ + transport_transit_gateway_attachment_id: str | None = ... + """The transit gateway attachment ID in use for the VPN tunnel.""" + tunnel_inside_ip_version: str | None = ... + """Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.""" + tunnel_options: list[TunnelOption] | None = ... + """Indicates the VPN tunnel options.""" + tunnel_bandwidth: str | None = ... + """ + The configured bandwidth for the VPN tunnel. Represents the current + throughput capacity setting for the tunnel connection. `standard` tunnel + bandwidth supports up to 1.25 Gbps per tunnel while `large` supports up + to 5 Gbps per tunnel. If no tunnel bandwidth was specified for the + connection, `standard` is used as the default value. + """ + +@dataclass(kw_only=True) +class VpnConnectionOptionsSpecification(_SerdeShape): + """Describes VPN connection options.""" + + enable_acceleration: bool | None = ... + """ + Indicate whether to enable acceleration for the VPN connection. + + Default: `false` + """ + tunnel_inside_ip_version: str | None = ... + """ + Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. + + Default: `ipv4` + """ + tunnel_options: list[VpnTunnelOptionsSpecification] | None = ... + """The tunnel options for the VPN connection.""" + local_ipv4_network_cidr: str | None = ... + """ + The IPv4 CIDR on the customer gateway (on-premises) side of the VPN + connection. + + Default: `0.0.0.0/0` + """ + remote_ipv4_network_cidr: str | None = ... + """ + The IPv4 CIDR on the Amazon Web Services side of the VPN connection. + + Default: `0.0.0.0/0` + """ + local_ipv6_network_cidr: str | None = ... + """ + The IPv6 CIDR on the customer gateway (on-premises) side of the VPN + connection. + + Default: `::/0` + """ + remote_ipv6_network_cidr: str | None = ... + """ + The IPv6 CIDR on the Amazon Web Services side of the VPN connection. + + Default: `::/0` + """ + outside_ip_address_type: str | None = ... + """ + The type of IP address assigned to the outside interface of the customer + gateway device. + + Valid values: `PrivateIpv4` | `PublicIpv4` | `Ipv6` + + Default: `PublicIpv4` + """ + transport_transit_gateway_attachment_id: str | None = ... + """ + The transit gateway attachment ID to use for the VPN tunnel. + + Required if `OutsideIpAddressType` is set to `PrivateIpv4`. + """ + tunnel_bandwidth: str | None = ... + """ + The desired bandwidth specification for the VPN tunnel, used when + creating or modifying VPN connection options to set the tunnel's + throughput capacity. `standard` supports up to 1.25 Gbps per tunnel, + while `large` supports up to 5 Gbps per tunnel. The default value is + `standard`. Existing VPN connections without a bandwidth setting will + automatically default to `standard`. + """ + static_routes_only: bool | None = ... + """ + Indicate whether the VPN connection uses static routes only. If you are + creating a VPN connection for a device that does not support BGP, you + must specify `true`. Use CreateVpnConnectionRoute to create a static + route. + + Default: `false` + """ + +class VpnEcmpSupportValue(UnknownEnumMixin, StrEnum): + ENABLE = "enable" + DISABLE = "disable" + +@dataclass(kw_only=True) +class VpnGateway(_SerdeShape): + """Describes a virtual private gateway.""" + + amazon_side_asn: int | None = ... + """ + The private Autonomous System Number (ASN) for the Amazon side of a BGP + session. + """ + tags: list[Tag] | None = ... + """Any tags assigned to the virtual private gateway.""" + vpn_gateway_id: str | None = ... + """The ID of the virtual private gateway.""" + state: str | None = ... + """The current state of the virtual private gateway.""" + type: str | None = ... + """The type of VPN connection the virtual private gateway supports.""" + availability_zone: str | None = ... + """ + The Availability Zone where the virtual private gateway was created, if + applicable. This field may be empty or not returned. + """ + vpc_attachments: list[VpcAttachment] | None = ... + """Any VPCs attached to the virtual private gateway.""" + +class VpnProtocol(UnknownEnumMixin, StrEnum): + OPENVPN = "openvpn" + +class VpnState(UnknownEnumMixin, StrEnum): + PENDING = "pending" + AVAILABLE = "available" + DELETING = "deleting" + DELETED = "deleted" + +@dataclass(kw_only=True) +class VpnStaticRoute(_SerdeShape): + """Describes a static route for a VPN connection.""" + + destination_cidr_block: str | None = ... + """ + The CIDR block associated with the local subnet of the customer data + center. + """ + source: str | None = ... + """Indicates how the routes were provided.""" + state: str | None = ... + """The current state of the static route.""" + +class VpnStaticRouteSource(UnknownEnumMixin, StrEnum): + STATIC = "Static" + +class VpnTunnelBandwidth(UnknownEnumMixin, StrEnum): + STANDARD = "standard" + LARGE = "large" + +@dataclass(kw_only=True) +class VpnTunnelLogOptions(_SerdeShape): + """Options for logging VPN tunnel activity.""" + + cloud_watch_log_options: CloudWatchLogOptions | None = ... + """Options for sending VPN tunnel logs to CloudWatch.""" + +@dataclass(kw_only=True) +class VpnTunnelLogOptionsSpecification(_SerdeShape): + """Options for logging VPN tunnel activity.""" + + cloud_watch_log_options: CloudWatchLogOptionsSpecification | None = ... + """Options for sending VPN tunnel logs to CloudWatch.""" + +@dataclass(kw_only=True) +class VpnTunnelOptionsSpecification(_SerdeShape): + """The tunnel options for a single VPN tunnel.""" + + tunnel_inside_cidr: str | None = ... + """ + The range of inside IPv4 addresses for the tunnel. Any specified CIDR + blocks must be unique across all VPN connections that use the same + virtual private gateway. + + Constraints: A size /30 CIDR block from the `169.254.0.0/16` range. The + following CIDR blocks are reserved and cannot be used: + + - `169.254.0.0/30` + + - `169.254.1.0/30` + + - `169.254.2.0/30` + + - `169.254.3.0/30` + + - `169.254.4.0/30` + + - `169.254.5.0/30` + + - `169.254.169.252/30` + """ + tunnel_inside_ipv6_cidr: str | None = ... + """ + The range of inside IPv6 addresses for the tunnel. Any specified CIDR + blocks must be unique across all VPN connections that use the same + transit gateway. + + Constraints: A size /126 CIDR block from the local `fd00::/8` range. + """ + pre_shared_key: str | None = ... + """ + The pre-shared key (PSK) to establish initial authentication between the + virtual private gateway and customer gateway. + + Constraints: Allowed characters are alphanumeric characters, periods + (.), and underscores (_). Must be between 8 and 64 characters in length + and cannot start with zero (0). + """ + phase1_lifetime_seconds: int | None = ... + """ + The lifetime for phase 1 of the IKE negotiation, in seconds. + + Constraints: A value between 900 and 28,800. + + Default: `28800` + """ + phase2_lifetime_seconds: int | None = ... + """ + The lifetime for phase 2 of the IKE negotiation, in seconds. + + Constraints: A value between 900 and 3,600. The value must be less than + the value for `Phase1LifetimeSeconds`. + + Default: `3600` + """ + rekey_margin_time_seconds: int | None = ... + """ + The margin time, in seconds, before the phase 2 lifetime expires, during + which the Amazon Web Services side of the VPN connection performs an IKE + rekey. The exact time of the rekey is randomly selected based on the + value for `RekeyFuzzPercentage`. + + Constraints: A value between 60 and half of `Phase2LifetimeSeconds`. + + Default: `270` + """ + rekey_fuzz_percentage: int | None = ... + """ + The percentage of the rekey window (determined by + `RekeyMarginTimeSeconds`) during which the rekey time is randomly + selected. + + Constraints: A value between 0 and 100. + + Default: `100` + """ + replay_window_size: int | None = ... + """ + The number of packets in an IKE replay window. + + Constraints: A value between 64 and 2048. + + Default: `1024` + """ + dpd_timeout_seconds: int | None = ... + """ + The number of seconds after which a DPD timeout occurs. + + Constraints: A value greater than or equal to 30. + + Default: `30` + """ + dpd_timeout_action: str | None = ... + """ + The action to take after DPD timeout occurs. Specify `restart` to + restart the IKE initiation. Specify `clear` to end the IKE session. + + Valid Values: `clear` | `none` | `restart` + + Default: `clear` + """ + phase1_encryption_algorithms: ( + list[Phase1EncryptionAlgorithmsRequestListValue] | None + ) = ... + """ + One or more encryption algorithms that are permitted for the VPN tunnel + for phase 1 IKE negotiations. + + Valid values: `AES128` | `AES256` | `AES128-GCM-16` | `AES256-GCM-16` + """ + phase2_encryption_algorithms: ( + list[Phase2EncryptionAlgorithmsRequestListValue] | None + ) = ... + """ + One or more encryption algorithms that are permitted for the VPN tunnel + for phase 2 IKE negotiations. + + Valid values: `AES128` | `AES256` | `AES128-GCM-16` | `AES256-GCM-16` + """ + phase1_integrity_algorithms: ( + list[Phase1IntegrityAlgorithmsRequestListValue] | None + ) = ... + """ + One or more integrity algorithms that are permitted for the VPN tunnel + for phase 1 IKE negotiations. + + Valid values: `SHA1` | `SHA2-256` | `SHA2-384` | `SHA2-512` + """ + phase2_integrity_algorithms: ( + list[Phase2IntegrityAlgorithmsRequestListValue] | None + ) = ... + """ + One or more integrity algorithms that are permitted for the VPN tunnel + for phase 2 IKE negotiations. + + Valid values: `SHA1` | `SHA2-256` | `SHA2-384` | `SHA2-512` + """ + phase1_dh_group_numbers: list[Phase1DHGroupNumbersRequestListValue] | None = ... + """ + One or more Diffie-Hellman group numbers that are permitted for the VPN + tunnel for phase 1 IKE negotiations. + + Valid values: `2` | `14` | `15` | `16` | `17` | `18` | `19` | + `20` | `21` | `22` | `23` | `24` + """ + phase2_dh_group_numbers: list[Phase2DHGroupNumbersRequestListValue] | None = ... + """ + One or more Diffie-Hellman group numbers that are permitted for the VPN + tunnel for phase 2 IKE negotiations. + + Valid values: `2` | `5` | `14` | `15` | `16` | `17` | `18` | `19` + | `20` | `21` | `22` | `23` | `24` + """ + ike_versions: list[IKEVersionsRequestListValue] | None = ... + """ + The IKE versions that are permitted for the VPN tunnel. + + Valid values: `ikev1` | `ikev2` + """ + startup_action: str | None = ... + """ + The action to take when the establishing the tunnel for the VPN + connection. By default, your customer gateway device must initiate the + IKE negotiation and bring up the tunnel. Specify `start` for Amazon Web + Services to initiate the IKE negotiation. + + Valid Values: `add` | `start` + + Default: `add` + """ + log_options: VpnTunnelLogOptionsSpecification | None = ... + """Options for logging VPN tunnel activity.""" + enable_tunnel_lifecycle_control: bool | None = ... + """Turn on or off tunnel endpoint lifecycle control feature.""" + +class VpnTunnelProvisioningStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + PENDING = "pending" + FAILED = "failed" + +class WeekDay(UnknownEnumMixin, StrEnum): + SUNDAY = "sunday" + MONDAY = "monday" + TUESDAY = "tuesday" + WEDNESDAY = "wednesday" + THURSDAY = "thursday" + FRIDAY = "friday" + SATURDAY = "saturday" + +@dataclass(kw_only=True) +class WithdrawByoipCidrInput(_SerdeShape): + """Dataclass for WithdrawByoipCidrInput structure.""" + + cidr: str | None = ... + """The address range, in CIDR notation.""" + dry_run: bool | None = ... + """ + Checks whether you have the required permissions for the action, without + actually making the request, and provides an error response. If you have + the required permissions, the error response is `DryRunOperation`. + Otherwise, it is `UnauthorizedOperation`. + """ + +@dataclass(kw_only=True) +class WithdrawByoipCidrOutput(_SerdeShape): + """Dataclass for WithdrawByoipCidrOutput structure.""" + + byoip_cidr: ByoipCidr | None = ... + """Information about the address pool.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ZeroSizePreference(UnknownEnumMixin, StrEnum): + RETAIN = "retain" + DEFAULT = "default" + +ACCEPT_ADDRESS_TRANSFER: APIOperation[ + AcceptAddressTransferInput, AcceptAddressTransferOutput +] +ACCEPT_CAPACITY_RESERVATION_BILLING_OWNERSHIP: APIOperation[ + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, +] +ACCEPT_RESERVED_INSTANCES_EXCHANGE_QUOTE: APIOperation[ + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, +] +ACCEPT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: APIOperation[ + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, +] +ACCEPT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: APIOperation[ + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, +] +ACCEPT_TRANSIT_GATEWAY_PEERING_ATTACHMENT: APIOperation[ + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, +] +ACCEPT_TRANSIT_GATEWAY_VPC_ATTACHMENT: APIOperation[ + AcceptTransitGatewayVpcAttachmentInput, AcceptTransitGatewayVpcAttachmentOutput +] +ACCEPT_VPC_ENDPOINT_CONNECTIONS: APIOperation[ + AcceptVpcEndpointConnectionsInput, AcceptVpcEndpointConnectionsOutput +] +ACCEPT_VPC_PEERING_CONNECTION: APIOperation[ + AcceptVpcPeeringConnectionInput, AcceptVpcPeeringConnectionOutput +] +ADVERTISE_BYOIP_CIDR: APIOperation[AdvertiseByoipCidrInput, AdvertiseByoipCidrOutput] +ALLOCATE_ADDRESS: APIOperation[AllocateAddressInput, AllocateAddressOutput] +ALLOCATE_HOSTS: APIOperation[AllocateHostsInput, AllocateHostsOutput] +ALLOCATE_IPAM_POOL_CIDR: APIOperation[ + AllocateIpamPoolCidrInput, AllocateIpamPoolCidrOutput +] +APPLY_SECURITY_GROUPS_TO_CLIENT_VPN_TARGET_NETWORK: APIOperation[ + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, +] +ASSIGN_IPV6_ADDRESSES: APIOperation[AssignIpv6AddressesInput, AssignIpv6AddressesOutput] +ASSIGN_PRIVATE_IP_ADDRESSES: APIOperation[ + AssignPrivateIpAddressesInput, AssignPrivateIpAddressesOutput +] +ASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS: APIOperation[ + AssignPrivateNatGatewayAddressInput, AssignPrivateNatGatewayAddressOutput +] +ASSOCIATE_ADDRESS: APIOperation[AssociateAddressInput, AssociateAddressOutput] +ASSOCIATE_APPLICATION_STATUS_CHECK: APIOperation[ + AssociateApplicationStatusCheckInput, AssociateApplicationStatusCheckOutput +] +ASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER: APIOperation[ + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, +] +ASSOCIATE_CLIENT_VPN_TARGET_NETWORK: APIOperation[ + AssociateClientVpnTargetNetworkInput, AssociateClientVpnTargetNetworkOutput +] +ASSOCIATE_DHCP_OPTIONS: APIOperation[ + AssociateDhcpOptionsInput, AssociateDhcpOptionsOutput +] +ASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE: APIOperation[ + AssociateEnclaveCertificateIamRoleInput, AssociateEnclaveCertificateIamRoleOutput +] +ASSOCIATE_IAM_INSTANCE_PROFILE: APIOperation[ + AssociateIamInstanceProfileInput, AssociateIamInstanceProfileOutput +] +ASSOCIATE_INSTANCE_EVENT_WINDOW: APIOperation[ + AssociateInstanceEventWindowInput, AssociateInstanceEventWindowOutput +] +ASSOCIATE_IPAM_BYOASN: APIOperation[AssociateIpamByoasnInput, AssociateIpamByoasnOutput] +ASSOCIATE_IPAM_RESOURCE_DISCOVERY: APIOperation[ + AssociateIpamResourceDiscoveryInput, AssociateIpamResourceDiscoveryOutput +] +ASSOCIATE_NAT_GATEWAY_ADDRESS: APIOperation[ + AssociateNatGatewayAddressInput, AssociateNatGatewayAddressOutput +] +ASSOCIATE_ROUTE_SERVER: APIOperation[ + AssociateRouteServerInput, AssociateRouteServerOutput +] +ASSOCIATE_ROUTE_TABLE: APIOperation[AssociateRouteTableInput, AssociateRouteTableOutput] +ASSOCIATE_SECURITY_GROUP_VPC: APIOperation[ + AssociateSecurityGroupVpcInput, AssociateSecurityGroupVpcOutput +] +ASSOCIATE_SUBNET_CIDR_BLOCK: APIOperation[ + AssociateSubnetCidrBlockInput, AssociateSubnetCidrBlockOutput +] +ASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: APIOperation[ + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, +] +ASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE: APIOperation[ + AssociateTransitGatewayPolicyTableInput, AssociateTransitGatewayPolicyTableOutput +] +ASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE: APIOperation[ + AssociateTransitGatewayRouteTableInput, AssociateTransitGatewayRouteTableOutput +] +ASSOCIATE_TRUNK_INTERFACE: APIOperation[ + AssociateTrunkInterfaceInput, AssociateTrunkInterfaceOutput +] +ASSOCIATE_VPC_CIDR_BLOCK: APIOperation[ + AssociateVpcCidrBlockInput, AssociateVpcCidrBlockOutput +] +ATTACH_CLASSIC_LINK_VPC: APIOperation[ + AttachClassicLinkVpcInput, AttachClassicLinkVpcOutput +] +ATTACH_IMAGE_WATERMARK: APIOperation[ + AttachImageWatermarkInput, AttachImageWatermarkOutput +] +ATTACH_INTERNET_GATEWAY: APIOperation[ + AttachInternetGatewayInput, AttachInternetGatewayOutput +] +ATTACH_NETWORK_INTERFACE: APIOperation[ + AttachNetworkInterfaceInput, AttachNetworkInterfaceOutput +] +ATTACH_VERIFIED_ACCESS_TRUST_PROVIDER: APIOperation[ + AttachVerifiedAccessTrustProviderInput, AttachVerifiedAccessTrustProviderOutput +] +ATTACH_VOLUME: APIOperation[AttachVolumeInput, AttachVolumeOutput] +ATTACH_VPN_GATEWAY: APIOperation[AttachVpnGatewayInput, AttachVpnGatewayOutput] +AUTHORIZE_CLIENT_VPN_INGRESS: APIOperation[ + AuthorizeClientVpnIngressInput, AuthorizeClientVpnIngressOutput +] +AUTHORIZE_SECURITY_GROUP_EGRESS: APIOperation[ + AuthorizeSecurityGroupEgressInput, AuthorizeSecurityGroupEgressOutput +] +AUTHORIZE_SECURITY_GROUP_INGRESS: APIOperation[ + AuthorizeSecurityGroupIngressInput, AuthorizeSecurityGroupIngressOutput +] +BATCH_MODIFY_IPAM_ROUTING_POLICY_REGISTRATIONS: APIOperation[ + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, +] +BUNDLE_INSTANCE: APIOperation[BundleInstanceInput, BundleInstanceOutput] +CANCEL_BUNDLE_TASK: APIOperation[CancelBundleTaskInput, CancelBundleTaskOutput] +CANCEL_CAPACITY_RESERVATION: APIOperation[ + CancelCapacityReservationInput, CancelCapacityReservationOutput +] +CANCEL_CAPACITY_RESERVATION_FLEETS: APIOperation[ + CancelCapacityReservationFleetsInput, CancelCapacityReservationFleetsOutput +] +CANCEL_CONVERSION_TASK: APIOperation[ + CancelConversionTaskInput, CancelConversionTaskOutput +] +CANCEL_DECLARATIVE_POLICIES_REPORT: APIOperation[ + CancelDeclarativePoliciesReportInput, CancelDeclarativePoliciesReportOutput +] +CANCEL_EXPORT_TASK: APIOperation[CancelExportTaskInput, CancelExportTaskOutput] +CANCEL_IMAGE_LAUNCH_PERMISSION: APIOperation[ + CancelImageLaunchPermissionInput, CancelImageLaunchPermissionOutput +] +CANCEL_IMPORT_TASK: APIOperation[CancelImportTaskInput, CancelImportTaskOutput] +CANCEL_RESERVED_INSTANCES_LISTING: APIOperation[ + CancelReservedInstancesListingInput, CancelReservedInstancesListingOutput +] +CANCEL_SPOT_FLEET_REQUESTS: APIOperation[ + CancelSpotFleetRequestsInput, CancelSpotFleetRequestsOutput +] +CANCEL_SPOT_INSTANCE_REQUESTS: APIOperation[ + CancelSpotInstanceRequestsInput, CancelSpotInstanceRequestsOutput +] +CONFIRM_PRODUCT_INSTANCE: APIOperation[ + ConfirmProductInstanceInput, ConfirmProductInstanceOutput +] +COPY_FPGA_IMAGE: APIOperation[CopyFpgaImageInput, CopyFpgaImageOutput] +COPY_IMAGE: APIOperation[CopyImageInput, CopyImageOutput] +COPY_SNAPSHOT: APIOperation[CopySnapshotInput, CopySnapshotOutput] +COPY_VOLUMES: APIOperation[CopyVolumesInput, CopyVolumesOutput] +CREATE_APPLICATION_STATUS_CHECK: APIOperation[ + CreateApplicationStatusCheckInput, CreateApplicationStatusCheckOutput +] +CREATE_CAPACITY_MANAGER_DATA_EXPORT: APIOperation[ + CreateCapacityManagerDataExportInput, CreateCapacityManagerDataExportOutput +] +CREATE_CAPACITY_RESERVATION: APIOperation[ + CreateCapacityReservationInput, CreateCapacityReservationOutput +] +CREATE_CAPACITY_RESERVATION_BY_SPLITTING: APIOperation[ + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, +] +CREATE_CAPACITY_RESERVATION_CANCELLATION_QUOTE: APIOperation[ + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, +] +CREATE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTE: APIOperation[ + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, +] +CREATE_CAPACITY_RESERVATION_FLEET: APIOperation[ + CreateCapacityReservationFleetInput, CreateCapacityReservationFleetOutput +] +CREATE_CARRIER_GATEWAY: APIOperation[ + CreateCarrierGatewayInput, CreateCarrierGatewayOutput +] +CREATE_CLIENT_VPN_ENDPOINT: APIOperation[ + CreateClientVpnEndpointInput, CreateClientVpnEndpointOutput +] +CREATE_CLIENT_VPN_ROUTE: APIOperation[ + CreateClientVpnRouteInput, CreateClientVpnRouteOutput +] +CREATE_COIP_CIDR: APIOperation[CreateCoipCidrInput, CreateCoipCidrOutput] +CREATE_COIP_POOL: APIOperation[CreateCoipPoolInput, CreateCoipPoolOutput] +CREATE_CUSTOMER_GATEWAY: APIOperation[ + CreateCustomerGatewayInput, CreateCustomerGatewayOutput +] +CREATE_DEFAULT_SUBNET: APIOperation[CreateDefaultSubnetInput, CreateDefaultSubnetOutput] +CREATE_DEFAULT_VPC: APIOperation[CreateDefaultVpcInput, CreateDefaultVpcOutput] +CREATE_DELEGATE_MAC_VOLUME_OWNERSHIP_TASK: APIOperation[ + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, +] +CREATE_DHCP_OPTIONS: APIOperation[CreateDhcpOptionsInput, CreateDhcpOptionsOutput] +CREATE_EGRESS_ONLY_INTERNET_GATEWAY: APIOperation[ + CreateEgressOnlyInternetGatewayInput, CreateEgressOnlyInternetGatewayOutput +] +CREATE_FLEET: APIOperation[CreateFleetInput, CreateFleetOutput] +CREATE_FLOW_LOGS: APIOperation[CreateFlowLogsInput, CreateFlowLogsOutput] +CREATE_FPGA_IMAGE: APIOperation[CreateFpgaImageInput, CreateFpgaImageOutput] +CREATE_IMAGE: APIOperation[CreateImageInput, CreateImageOutput] +CREATE_IMAGE_USAGE_REPORT: APIOperation[ + CreateImageUsageReportInput, CreateImageUsageReportOutput +] +CREATE_INSTANCE_CONNECT_ENDPOINT: APIOperation[ + CreateInstanceConnectEndpointInput, CreateInstanceConnectEndpointOutput +] +CREATE_INSTANCE_EVENT_WINDOW: APIOperation[ + CreateInstanceEventWindowInput, CreateInstanceEventWindowOutput +] +CREATE_INSTANCE_EXPORT_TASK: APIOperation[ + CreateInstanceExportTaskInput, CreateInstanceExportTaskOutput +] +CREATE_INTERNET_GATEWAY: APIOperation[ + CreateInternetGatewayInput, CreateInternetGatewayOutput +] +CREATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION: APIOperation[ + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, +] +CREATE_IPAM: APIOperation[CreateIpamInput, CreateIpamOutput] +CREATE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN: APIOperation[ + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, +] +CREATE_IPAM_INTERNET_REGISTRY_ASSOCIATION: APIOperation[ + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, +] +CREATE_IPAM_POLICY: APIOperation[CreateIpamPolicyInput, CreateIpamPolicyOutput] +CREATE_IPAM_POOL: APIOperation[CreateIpamPoolInput, CreateIpamPoolOutput] +CREATE_IPAM_PREFIX_LIST_RESOLVER: APIOperation[ + CreateIpamPrefixListResolverInput, CreateIpamPrefixListResolverOutput +] +CREATE_IPAM_PREFIX_LIST_RESOLVER_TARGET: APIOperation[ + CreateIpamPrefixListResolverTargetInput, CreateIpamPrefixListResolverTargetOutput +] +CREATE_IPAM_RESOURCE_DISCOVERY: APIOperation[ + CreateIpamResourceDiscoveryInput, CreateIpamResourceDiscoveryOutput +] +CREATE_IPAM_ROUTING_POLICY_REGISTRATION: APIOperation[ + CreateIpamRoutingPolicyRegistrationInput, CreateIpamRoutingPolicyRegistrationOutput +] +CREATE_IPAM_SCOPE: APIOperation[CreateIpamScopeInput, CreateIpamScopeOutput] +CREATE_KEY_PAIR: APIOperation[CreateKeyPairInput, CreateKeyPairOutput] +CREATE_LAUNCH_TEMPLATE: APIOperation[ + CreateLaunchTemplateInput, CreateLaunchTemplateOutput +] +CREATE_LAUNCH_TEMPLATE_VERSION: APIOperation[ + CreateLaunchTemplateVersionInput, CreateLaunchTemplateVersionOutput +] +CREATE_LOCAL_GATEWAY_ROUTE: APIOperation[ + CreateLocalGatewayRouteInput, CreateLocalGatewayRouteOutput +] +CREATE_LOCAL_GATEWAY_ROUTE_TABLE: APIOperation[ + CreateLocalGatewayRouteTableInput, CreateLocalGatewayRouteTableOutput +] +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION: APIOperation[ + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, +] +CREATE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION: APIOperation[ + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, +] +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE: APIOperation[ + CreateLocalGatewayVirtualInterfaceInput, CreateLocalGatewayVirtualInterfaceOutput +] +CREATE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP: APIOperation[ + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, +] +CREATE_MAC_SYSTEM_INTEGRITY_PROTECTION_MODIFICATION_TASK: APIOperation[ + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, +] +CREATE_MANAGED_PREFIX_LIST: APIOperation[ + CreateManagedPrefixListInput, CreateManagedPrefixListOutput +] +CREATE_NAT_GATEWAY: APIOperation[CreateNatGatewayInput, CreateNatGatewayOutput] +CREATE_NETWORK_ACL: APIOperation[CreateNetworkAclInput, CreateNetworkAclOutput] +CREATE_NETWORK_ACL_ENTRY: APIOperation[ + CreateNetworkAclEntryInput, CreateNetworkAclEntryOutput +] +CREATE_NETWORK_INSIGHTS_ACCESS_SCOPE: APIOperation[ + CreateNetworkInsightsAccessScopeInput, CreateNetworkInsightsAccessScopeOutput +] +CREATE_NETWORK_INSIGHTS_PATH: APIOperation[ + CreateNetworkInsightsPathInput, CreateNetworkInsightsPathOutput +] +CREATE_NETWORK_INTERFACE: APIOperation[ + CreateNetworkInterfaceInput, CreateNetworkInterfaceOutput +] +CREATE_NETWORK_INTERFACE_PERMISSION: APIOperation[ + CreateNetworkInterfacePermissionInput, CreateNetworkInterfacePermissionOutput +] +CREATE_PLACEMENT_GROUP: APIOperation[ + CreatePlacementGroupInput, CreatePlacementGroupOutput +] +CREATE_PUBLIC_IPV4_POOL: APIOperation[ + CreatePublicIpv4PoolInput, CreatePublicIpv4PoolOutput +] +CREATE_REPLACE_ROOT_VOLUME_TASK: APIOperation[ + CreateReplaceRootVolumeTaskInput, CreateReplaceRootVolumeTaskOutput +] +CREATE_RESERVED_INSTANCES_LISTING: APIOperation[ + CreateReservedInstancesListingInput, CreateReservedInstancesListingOutput +] +CREATE_RESTORE_IMAGE_TASK: APIOperation[ + CreateRestoreImageTaskInput, CreateRestoreImageTaskOutput +] +CREATE_ROUTE: APIOperation[CreateRouteInput, CreateRouteOutput] +CREATE_ROUTE_SERVER: APIOperation[CreateRouteServerInput, CreateRouteServerOutput] +CREATE_ROUTE_SERVER_ENDPOINT: APIOperation[ + CreateRouteServerEndpointInput, CreateRouteServerEndpointOutput +] +CREATE_ROUTE_SERVER_PEER: APIOperation[ + CreateRouteServerPeerInput, CreateRouteServerPeerOutput +] +CREATE_ROUTE_TABLE: APIOperation[CreateRouteTableInput, CreateRouteTableOutput] +CREATE_SECONDARY_NETWORK: APIOperation[ + CreateSecondaryNetworkInput, CreateSecondaryNetworkOutput +] +CREATE_SECONDARY_SUBNET: APIOperation[ + CreateSecondarySubnetInput, CreateSecondarySubnetOutput +] +CREATE_SECURITY_GROUP: APIOperation[CreateSecurityGroupInput, CreateSecurityGroupOutput] +CREATE_SNAPSHOT: APIOperation[CreateSnapshotInput, CreateSnapshotOutput] +CREATE_SNAPSHOTS: APIOperation[CreateSnapshotsInput, CreateSnapshotsOutput] +CREATE_SPOT_DATAFEED_SUBSCRIPTION: APIOperation[ + CreateSpotDatafeedSubscriptionInput, CreateSpotDatafeedSubscriptionOutput +] +CREATE_STORE_IMAGE_TASK: APIOperation[ + CreateStoreImageTaskInput, CreateStoreImageTaskOutput +] +CREATE_SUBNET: APIOperation[CreateSubnetInput, CreateSubnetOutput] +CREATE_SUBNET_CIDR_RESERVATION: APIOperation[ + CreateSubnetCidrReservationInput, CreateSubnetCidrReservationOutput +] +CREATE_TAGS: APIOperation[CreateTagsInput, CreateTagsOutput] +CREATE_TRAFFIC_MIRROR_FILTER: APIOperation[ + CreateTrafficMirrorFilterInput, CreateTrafficMirrorFilterOutput +] +CREATE_TRAFFIC_MIRROR_FILTER_RULE: APIOperation[ + CreateTrafficMirrorFilterRuleInput, CreateTrafficMirrorFilterRuleOutput +] +CREATE_TRAFFIC_MIRROR_SESSION: APIOperation[ + CreateTrafficMirrorSessionInput, CreateTrafficMirrorSessionOutput +] +CREATE_TRAFFIC_MIRROR_TARGET: APIOperation[ + CreateTrafficMirrorTargetInput, CreateTrafficMirrorTargetOutput +] +CREATE_TRANSIT_GATEWAY: APIOperation[ + CreateTransitGatewayInput, CreateTransitGatewayOutput +] +CREATE_TRANSIT_GATEWAY_CONNECT: APIOperation[ + CreateTransitGatewayConnectInput, CreateTransitGatewayConnectOutput +] +CREATE_TRANSIT_GATEWAY_CONNECT_PEER: APIOperation[ + CreateTransitGatewayConnectPeerInput, CreateTransitGatewayConnectPeerOutput +] +CREATE_TRANSIT_GATEWAY_METERING_POLICY: APIOperation[ + CreateTransitGatewayMeteringPolicyInput, CreateTransitGatewayMeteringPolicyOutput +] +CREATE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY: APIOperation[ + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, +] +CREATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: APIOperation[ + CreateTransitGatewayMulticastDomainInput, CreateTransitGatewayMulticastDomainOutput +] +CREATE_TRANSIT_GATEWAY_PEERING_ATTACHMENT: APIOperation[ + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, +] +CREATE_TRANSIT_GATEWAY_POLICY_TABLE: APIOperation[ + CreateTransitGatewayPolicyTableInput, CreateTransitGatewayPolicyTableOutput +] +CREATE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: APIOperation[ + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, +] +CREATE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: APIOperation[ + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, +] +CREATE_TRANSIT_GATEWAY_ROUTE: APIOperation[ + CreateTransitGatewayRouteInput, CreateTransitGatewayRouteOutput +] +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE: APIOperation[ + CreateTransitGatewayRouteTableInput, CreateTransitGatewayRouteTableOutput +] +CREATE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT: APIOperation[ + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, +] +CREATE_TRANSIT_GATEWAY_VPC_ATTACHMENT: APIOperation[ + CreateTransitGatewayVpcAttachmentInput, CreateTransitGatewayVpcAttachmentOutput +] +CREATE_VERIFIED_ACCESS_ENDPOINT: APIOperation[ + CreateVerifiedAccessEndpointInput, CreateVerifiedAccessEndpointOutput +] +CREATE_VERIFIED_ACCESS_GROUP: APIOperation[ + CreateVerifiedAccessGroupInput, CreateVerifiedAccessGroupOutput +] +CREATE_VERIFIED_ACCESS_INSTANCE: APIOperation[ + CreateVerifiedAccessInstanceInput, CreateVerifiedAccessInstanceOutput +] +CREATE_VERIFIED_ACCESS_TRUST_PROVIDER: APIOperation[ + CreateVerifiedAccessTrustProviderInput, CreateVerifiedAccessTrustProviderOutput +] +CREATE_VOLUME: APIOperation[CreateVolumeInput, CreateVolumeOutput] +CREATE_VPC: APIOperation[CreateVpcInput, CreateVpcOutput] +CREATE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: APIOperation[ + CreateVpcBlockPublicAccessExclusionInput, CreateVpcBlockPublicAccessExclusionOutput +] +CREATE_VPC_ENCRYPTION_CONTROL: APIOperation[ + CreateVpcEncryptionControlInput, CreateVpcEncryptionControlOutput +] +CREATE_VPC_ENDPOINT: APIOperation[CreateVpcEndpointInput, CreateVpcEndpointOutput] +CREATE_VPC_ENDPOINT_CONNECTION_NOTIFICATION: APIOperation[ + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, +] +CREATE_VPC_ENDPOINT_SERVICE_CONFIGURATION: APIOperation[ + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, +] +CREATE_VPC_PEERING_CONNECTION: APIOperation[ + CreateVpcPeeringConnectionInput, CreateVpcPeeringConnectionOutput +] +CREATE_VPN_CONCENTRATOR: APIOperation[ + CreateVpnConcentratorInput, CreateVpnConcentratorOutput +] +CREATE_VPN_CONNECTION: APIOperation[CreateVpnConnectionInput, CreateVpnConnectionOutput] +CREATE_VPN_CONNECTION_ROUTE: APIOperation[ + CreateVpnConnectionRouteInput, CreateVpnConnectionRouteOutput +] +CREATE_VPN_GATEWAY: APIOperation[CreateVpnGatewayInput, CreateVpnGatewayOutput] +DELETE_APPLICATION_STATUS_CHECK: APIOperation[ + DeleteApplicationStatusCheckInput, DeleteApplicationStatusCheckOutput +] +DELETE_CAPACITY_MANAGER_DATA_EXPORT: APIOperation[ + DeleteCapacityManagerDataExportInput, DeleteCapacityManagerDataExportOutput +] +DELETE_CARRIER_GATEWAY: APIOperation[ + DeleteCarrierGatewayInput, DeleteCarrierGatewayOutput +] +DELETE_CLIENT_VPN_ENDPOINT: APIOperation[ + DeleteClientVpnEndpointInput, DeleteClientVpnEndpointOutput +] +DELETE_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: APIOperation[ + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, +] +DELETE_CLIENT_VPN_ROUTE: APIOperation[ + DeleteClientVpnRouteInput, DeleteClientVpnRouteOutput +] +DELETE_COIP_CIDR: APIOperation[DeleteCoipCidrInput, DeleteCoipCidrOutput] +DELETE_COIP_POOL: APIOperation[DeleteCoipPoolInput, DeleteCoipPoolOutput] +DELETE_CUSTOMER_GATEWAY: APIOperation[ + DeleteCustomerGatewayInput, DeleteCustomerGatewayOutput +] +DELETE_DHCP_OPTIONS: APIOperation[DeleteDhcpOptionsInput, DeleteDhcpOptionsOutput] +DELETE_EGRESS_ONLY_INTERNET_GATEWAY: APIOperation[ + DeleteEgressOnlyInternetGatewayInput, DeleteEgressOnlyInternetGatewayOutput +] +DELETE_FLEETS: APIOperation[DeleteFleetsInput, DeleteFleetsOutput] +DELETE_FLOW_LOGS: APIOperation[DeleteFlowLogsInput, DeleteFlowLogsOutput] +DELETE_FPGA_IMAGE: APIOperation[DeleteFpgaImageInput, DeleteFpgaImageOutput] +DELETE_IMAGE_USAGE_REPORT: APIOperation[ + DeleteImageUsageReportInput, DeleteImageUsageReportOutput +] +DELETE_INSTANCE_CONNECT_ENDPOINT: APIOperation[ + DeleteInstanceConnectEndpointInput, DeleteInstanceConnectEndpointOutput +] +DELETE_INSTANCE_EVENT_WINDOW: APIOperation[ + DeleteInstanceEventWindowInput, DeleteInstanceEventWindowOutput +] +DELETE_INTERNET_GATEWAY: APIOperation[ + DeleteInternetGatewayInput, DeleteInternetGatewayOutput +] +DELETE_IPAM: APIOperation[DeleteIpamInput, DeleteIpamOutput] +DELETE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN: APIOperation[ + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, +] +DELETE_IPAM_INTERNET_REGISTRY_ASSOCIATION: APIOperation[ + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, +] +DELETE_IPAM_POLICY: APIOperation[DeleteIpamPolicyInput, DeleteIpamPolicyOutput] +DELETE_IPAM_POOL: APIOperation[DeleteIpamPoolInput, DeleteIpamPoolOutput] +DELETE_IPAM_PREFIX_LIST_RESOLVER: APIOperation[ + DeleteIpamPrefixListResolverInput, DeleteIpamPrefixListResolverOutput +] +DELETE_IPAM_PREFIX_LIST_RESOLVER_TARGET: APIOperation[ + DeleteIpamPrefixListResolverTargetInput, DeleteIpamPrefixListResolverTargetOutput +] +DELETE_IPAM_RESOURCE_DISCOVERY: APIOperation[ + DeleteIpamResourceDiscoveryInput, DeleteIpamResourceDiscoveryOutput +] +DELETE_IPAM_ROUTING_POLICY_REGISTRATION: APIOperation[ + DeleteIpamRoutingPolicyRegistrationInput, DeleteIpamRoutingPolicyRegistrationOutput +] +DELETE_IPAM_SCOPE: APIOperation[DeleteIpamScopeInput, DeleteIpamScopeOutput] +DELETE_KEY_PAIR: APIOperation[DeleteKeyPairInput, DeleteKeyPairOutput] +DELETE_LAUNCH_TEMPLATE: APIOperation[ + DeleteLaunchTemplateInput, DeleteLaunchTemplateOutput +] +DELETE_LAUNCH_TEMPLATE_VERSIONS: APIOperation[ + DeleteLaunchTemplateVersionsInput, DeleteLaunchTemplateVersionsOutput +] +DELETE_LOCAL_GATEWAY_ROUTE: APIOperation[ + DeleteLocalGatewayRouteInput, DeleteLocalGatewayRouteOutput +] +DELETE_LOCAL_GATEWAY_ROUTE_TABLE: APIOperation[ + DeleteLocalGatewayRouteTableInput, DeleteLocalGatewayRouteTableOutput +] +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATION: APIOperation[ + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, +] +DELETE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATION: APIOperation[ + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, +] +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE: APIOperation[ + DeleteLocalGatewayVirtualInterfaceInput, DeleteLocalGatewayVirtualInterfaceOutput +] +DELETE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUP: APIOperation[ + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, +] +DELETE_MANAGED_PREFIX_LIST: APIOperation[ + DeleteManagedPrefixListInput, DeleteManagedPrefixListOutput +] +DELETE_NAT_GATEWAY: APIOperation[DeleteNatGatewayInput, DeleteNatGatewayOutput] +DELETE_NETWORK_ACL: APIOperation[DeleteNetworkAclInput, DeleteNetworkAclOutput] +DELETE_NETWORK_ACL_ENTRY: APIOperation[ + DeleteNetworkAclEntryInput, DeleteNetworkAclEntryOutput +] +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE: APIOperation[ + DeleteNetworkInsightsAccessScopeInput, DeleteNetworkInsightsAccessScopeOutput +] +DELETE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS: APIOperation[ + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, +] +DELETE_NETWORK_INSIGHTS_ANALYSIS: APIOperation[ + DeleteNetworkInsightsAnalysisInput, DeleteNetworkInsightsAnalysisOutput +] +DELETE_NETWORK_INSIGHTS_PATH: APIOperation[ + DeleteNetworkInsightsPathInput, DeleteNetworkInsightsPathOutput +] +DELETE_NETWORK_INTERFACE: APIOperation[ + DeleteNetworkInterfaceInput, DeleteNetworkInterfaceOutput +] +DELETE_NETWORK_INTERFACE_PERMISSION: APIOperation[ + DeleteNetworkInterfacePermissionInput, DeleteNetworkInterfacePermissionOutput +] +DELETE_PLACEMENT_GROUP: APIOperation[ + DeletePlacementGroupInput, DeletePlacementGroupOutput +] +DELETE_PUBLIC_IPV4_POOL: APIOperation[ + DeletePublicIpv4PoolInput, DeletePublicIpv4PoolOutput +] +DELETE_QUEUED_RESERVED_INSTANCES: APIOperation[ + DeleteQueuedReservedInstancesInput, DeleteQueuedReservedInstancesOutput +] +DELETE_ROUTE: APIOperation[DeleteRouteInput, DeleteRouteOutput] +DELETE_ROUTE_SERVER: APIOperation[DeleteRouteServerInput, DeleteRouteServerOutput] +DELETE_ROUTE_SERVER_ENDPOINT: APIOperation[ + DeleteRouteServerEndpointInput, DeleteRouteServerEndpointOutput +] +DELETE_ROUTE_SERVER_PEER: APIOperation[ + DeleteRouteServerPeerInput, DeleteRouteServerPeerOutput +] +DELETE_ROUTE_TABLE: APIOperation[DeleteRouteTableInput, DeleteRouteTableOutput] +DELETE_SECONDARY_NETWORK: APIOperation[ + DeleteSecondaryNetworkInput, DeleteSecondaryNetworkOutput +] +DELETE_SECONDARY_SUBNET: APIOperation[ + DeleteSecondarySubnetInput, DeleteSecondarySubnetOutput +] +DELETE_SECURITY_GROUP: APIOperation[DeleteSecurityGroupInput, DeleteSecurityGroupOutput] +DELETE_SNAPSHOT: APIOperation[DeleteSnapshotInput, DeleteSnapshotOutput] +DELETE_SPOT_DATAFEED_SUBSCRIPTION: APIOperation[ + DeleteSpotDatafeedSubscriptionInput, DeleteSpotDatafeedSubscriptionOutput +] +DELETE_SUBNET: APIOperation[DeleteSubnetInput, DeleteSubnetOutput] +DELETE_SUBNET_CIDR_RESERVATION: APIOperation[ + DeleteSubnetCidrReservationInput, DeleteSubnetCidrReservationOutput +] +DELETE_TAGS: APIOperation[DeleteTagsInput, DeleteTagsOutput] +DELETE_TRAFFIC_MIRROR_FILTER: APIOperation[ + DeleteTrafficMirrorFilterInput, DeleteTrafficMirrorFilterOutput +] +DELETE_TRAFFIC_MIRROR_FILTER_RULE: APIOperation[ + DeleteTrafficMirrorFilterRuleInput, DeleteTrafficMirrorFilterRuleOutput +] +DELETE_TRAFFIC_MIRROR_SESSION: APIOperation[ + DeleteTrafficMirrorSessionInput, DeleteTrafficMirrorSessionOutput +] +DELETE_TRAFFIC_MIRROR_TARGET: APIOperation[ + DeleteTrafficMirrorTargetInput, DeleteTrafficMirrorTargetOutput +] +DELETE_TRANSIT_GATEWAY: APIOperation[ + DeleteTransitGatewayInput, DeleteTransitGatewayOutput +] +DELETE_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: APIOperation[ + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, +] +DELETE_TRANSIT_GATEWAY_CONNECT: APIOperation[ + DeleteTransitGatewayConnectInput, DeleteTransitGatewayConnectOutput +] +DELETE_TRANSIT_GATEWAY_CONNECT_PEER: APIOperation[ + DeleteTransitGatewayConnectPeerInput, DeleteTransitGatewayConnectPeerOutput +] +DELETE_TRANSIT_GATEWAY_METERING_POLICY: APIOperation[ + DeleteTransitGatewayMeteringPolicyInput, DeleteTransitGatewayMeteringPolicyOutput +] +DELETE_TRANSIT_GATEWAY_METERING_POLICY_ENTRY: APIOperation[ + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, +] +DELETE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: APIOperation[ + DeleteTransitGatewayMulticastDomainInput, DeleteTransitGatewayMulticastDomainOutput +] +DELETE_TRANSIT_GATEWAY_PEERING_ATTACHMENT: APIOperation[ + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, +] +DELETE_TRANSIT_GATEWAY_POLICY_TABLE: APIOperation[ + DeleteTransitGatewayPolicyTableInput, DeleteTransitGatewayPolicyTableOutput +] +DELETE_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: APIOperation[ + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, +] +DELETE_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: APIOperation[ + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, +] +DELETE_TRANSIT_GATEWAY_ROUTE: APIOperation[ + DeleteTransitGatewayRouteInput, DeleteTransitGatewayRouteOutput +] +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE: APIOperation[ + DeleteTransitGatewayRouteTableInput, DeleteTransitGatewayRouteTableOutput +] +DELETE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT: APIOperation[ + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, +] +DELETE_TRANSIT_GATEWAY_VPC_ATTACHMENT: APIOperation[ + DeleteTransitGatewayVpcAttachmentInput, DeleteTransitGatewayVpcAttachmentOutput +] +DELETE_VERIFIED_ACCESS_ENDPOINT: APIOperation[ + DeleteVerifiedAccessEndpointInput, DeleteVerifiedAccessEndpointOutput +] +DELETE_VERIFIED_ACCESS_GROUP: APIOperation[ + DeleteVerifiedAccessGroupInput, DeleteVerifiedAccessGroupOutput +] +DELETE_VERIFIED_ACCESS_INSTANCE: APIOperation[ + DeleteVerifiedAccessInstanceInput, DeleteVerifiedAccessInstanceOutput +] +DELETE_VERIFIED_ACCESS_TRUST_PROVIDER: APIOperation[ + DeleteVerifiedAccessTrustProviderInput, DeleteVerifiedAccessTrustProviderOutput +] +DELETE_VOLUME: APIOperation[DeleteVolumeInput, DeleteVolumeOutput] +DELETE_VPC: APIOperation[DeleteVpcInput, DeleteVpcOutput] +DELETE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: APIOperation[ + DeleteVpcBlockPublicAccessExclusionInput, DeleteVpcBlockPublicAccessExclusionOutput +] +DELETE_VPC_ENCRYPTION_CONTROL: APIOperation[ + DeleteVpcEncryptionControlInput, DeleteVpcEncryptionControlOutput +] +DELETE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS: APIOperation[ + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, +] +DELETE_VPC_ENDPOINTS: APIOperation[DeleteVpcEndpointsInput, DeleteVpcEndpointsOutput] +DELETE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS: APIOperation[ + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, +] +DELETE_VPC_PEERING_CONNECTION: APIOperation[ + DeleteVpcPeeringConnectionInput, DeleteVpcPeeringConnectionOutput +] +DELETE_VPN_CONCENTRATOR: APIOperation[ + DeleteVpnConcentratorInput, DeleteVpnConcentratorOutput +] +DELETE_VPN_CONNECTION: APIOperation[DeleteVpnConnectionInput, DeleteVpnConnectionOutput] +DELETE_VPN_CONNECTION_ROUTE: APIOperation[ + DeleteVpnConnectionRouteInput, DeleteVpnConnectionRouteOutput +] +DELETE_VPN_GATEWAY: APIOperation[DeleteVpnGatewayInput, DeleteVpnGatewayOutput] +DEPROVISION_BYOIP_CIDR: APIOperation[ + DeprovisionByoipCidrInput, DeprovisionByoipCidrOutput +] +DEPROVISION_IPAM_BYOASN: APIOperation[ + DeprovisionIpamByoasnInput, DeprovisionIpamByoasnOutput +] +DEPROVISION_IPAM_POOL_CIDR: APIOperation[ + DeprovisionIpamPoolCidrInput, DeprovisionIpamPoolCidrOutput +] +DEPROVISION_PUBLIC_IPV4_POOL_CIDR: APIOperation[ + DeprovisionPublicIpv4PoolCidrInput, DeprovisionPublicIpv4PoolCidrOutput +] +DEREGISTER_IMAGE: APIOperation[DeregisterImageInput, DeregisterImageOutput] +DEREGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: APIOperation[ + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, +] +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS: APIOperation[ + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, +] +DEREGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES: APIOperation[ + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, +] +DESCRIBE_ACCOUNT_ATTRIBUTES: APIOperation[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput +] +DESCRIBE_ACCOUNT_VPC_ENCRYPTION_CONTROL: APIOperation[ + DescribeAccountVpcEncryptionControlInput, DescribeAccountVpcEncryptionControlOutput +] +DESCRIBE_ADDRESSES: APIOperation[DescribeAddressesInput, DescribeAddressesOutput] +DESCRIBE_ADDRESSES_ATTRIBUTE: APIOperation[ + DescribeAddressesAttributeInput, DescribeAddressesAttributeOutput +] +DESCRIBE_ADDRESS_TRANSFERS: APIOperation[ + DescribeAddressTransfersInput, DescribeAddressTransfersOutput +] +DESCRIBE_AGGREGATE_ID_FORMAT: APIOperation[ + DescribeAggregateIdFormatInput, DescribeAggregateIdFormatOutput +] +DESCRIBE_APPLICATION_STATUS: APIOperation[ + DescribeApplicationStatusInput, DescribeApplicationStatusOutput +] +DESCRIBE_APPLICATION_STATUS_CHECK_ASSOCIATIONS: APIOperation[ + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, +] +DESCRIBE_APPLICATION_STATUS_CHECKS: APIOperation[ + DescribeApplicationStatusChecksInput, DescribeApplicationStatusChecksOutput +] +DESCRIBE_AVAILABILITY_ZONES: APIOperation[ + DescribeAvailabilityZonesInput, DescribeAvailabilityZonesOutput +] +DESCRIBE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTIONS: APIOperation[ + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, +] +DESCRIBE_BUNDLE_TASKS: APIOperation[DescribeBundleTasksInput, DescribeBundleTasksOutput] +DESCRIBE_BYOIP_CIDRS: APIOperation[DescribeByoipCidrsInput, DescribeByoipCidrsOutput] +DESCRIBE_CAPACITY_BLOCK_EXTENSION_HISTORY: APIOperation[ + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, +] +DESCRIBE_CAPACITY_BLOCK_EXTENSION_OFFERINGS: APIOperation[ + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, +] +DESCRIBE_CAPACITY_BLOCK_OFFERINGS: APIOperation[ + DescribeCapacityBlockOfferingsInput, DescribeCapacityBlockOfferingsOutput +] +DESCRIBE_CAPACITY_BLOCKS: APIOperation[ + DescribeCapacityBlocksInput, DescribeCapacityBlocksOutput +] +DESCRIBE_CAPACITY_BLOCK_STATUS: APIOperation[ + DescribeCapacityBlockStatusInput, DescribeCapacityBlockStatusOutput +] +DESCRIBE_CAPACITY_MANAGER_DATA_EXPORTS: APIOperation[ + DescribeCapacityManagerDataExportsInput, DescribeCapacityManagerDataExportsOutput +] +DESCRIBE_CAPACITY_RESERVATION_BILLING_REQUESTS: APIOperation[ + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, +] +DESCRIBE_CAPACITY_RESERVATION_CANCELLATION_QUOTES: APIOperation[ + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, +] +DESCRIBE_CAPACITY_RESERVATION_DATE_CHANGE_QUOTES: APIOperation[ + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, +] +DESCRIBE_CAPACITY_RESERVATION_FLEETS: APIOperation[ + DescribeCapacityReservationFleetsInput, DescribeCapacityReservationFleetsOutput +] +DESCRIBE_CAPACITY_RESERVATIONS: APIOperation[ + DescribeCapacityReservationsInput, DescribeCapacityReservationsOutput +] +DESCRIBE_CAPACITY_RESERVATION_TOPOLOGY: APIOperation[ + DescribeCapacityReservationTopologyInput, DescribeCapacityReservationTopologyOutput +] +DESCRIBE_CARRIER_GATEWAYS: APIOperation[ + DescribeCarrierGatewaysInput, DescribeCarrierGatewaysOutput +] +DESCRIBE_CLASSIC_LINK_INSTANCES: APIOperation[ + DescribeClassicLinkInstancesInput, DescribeClassicLinkInstancesOutput +] +DESCRIBE_CLIENT_VPN_AUTHORIZATION_RULES: APIOperation[ + DescribeClientVpnAuthorizationRulesInput, DescribeClientVpnAuthorizationRulesOutput +] +DESCRIBE_CLIENT_VPN_CONNECTIONS: APIOperation[ + DescribeClientVpnConnectionsInput, DescribeClientVpnConnectionsOutput +] +DESCRIBE_CLIENT_VPN_ENDPOINTS: APIOperation[ + DescribeClientVpnEndpointsInput, DescribeClientVpnEndpointsOutput +] +DESCRIBE_CLIENT_VPN_ROUTES: APIOperation[ + DescribeClientVpnRoutesInput, DescribeClientVpnRoutesOutput +] +DESCRIBE_CLIENT_VPN_TARGET_NETWORKS: APIOperation[ + DescribeClientVpnTargetNetworksInput, DescribeClientVpnTargetNetworksOutput +] +DESCRIBE_COIP_POOLS: APIOperation[DescribeCoipPoolsInput, DescribeCoipPoolsOutput] +DESCRIBE_CONVERSION_TASKS: APIOperation[ + DescribeConversionTasksInput, DescribeConversionTasksOutput +] +DESCRIBE_CUSTOMER_GATEWAYS: APIOperation[ + DescribeCustomerGatewaysInput, DescribeCustomerGatewaysOutput +] +DESCRIBE_DECLARATIVE_POLICIES_REPORTS: APIOperation[ + DescribeDeclarativePoliciesReportsInput, DescribeDeclarativePoliciesReportsOutput +] +DESCRIBE_DHCP_OPTIONS: APIOperation[DescribeDhcpOptionsInput, DescribeDhcpOptionsOutput] +DESCRIBE_EGRESS_ONLY_INTERNET_GATEWAYS: APIOperation[ + DescribeEgressOnlyInternetGatewaysInput, DescribeEgressOnlyInternetGatewaysOutput +] +DESCRIBE_ELASTIC_GPUS: APIOperation[DescribeElasticGpusInput, DescribeElasticGpusOutput] +DESCRIBE_EXPORT_IMAGE_TASKS: APIOperation[ + DescribeExportImageTasksInput, DescribeExportImageTasksOutput +] +DESCRIBE_EXPORT_TASKS: APIOperation[DescribeExportTasksInput, DescribeExportTasksOutput] +DESCRIBE_FAST_LAUNCH_IMAGES: APIOperation[ + DescribeFastLaunchImagesInput, DescribeFastLaunchImagesOutput +] +DESCRIBE_FAST_SNAPSHOT_RESTORES: APIOperation[ + DescribeFastSnapshotRestoresInput, DescribeFastSnapshotRestoresOutput +] +DESCRIBE_FLEET_HISTORY: APIOperation[ + DescribeFleetHistoryInput, DescribeFleetHistoryOutput +] +DESCRIBE_FLEET_INSTANCES: APIOperation[ + DescribeFleetInstancesInput, DescribeFleetInstancesOutput +] +DESCRIBE_FLEETS: APIOperation[DescribeFleetsInput, DescribeFleetsOutput] +DESCRIBE_FLOW_LOGS: APIOperation[DescribeFlowLogsInput, DescribeFlowLogsOutput] +DESCRIBE_FPGA_IMAGE_ATTRIBUTE: APIOperation[ + DescribeFpgaImageAttributeInput, DescribeFpgaImageAttributeOutput +] +DESCRIBE_FPGA_IMAGES: APIOperation[DescribeFpgaImagesInput, DescribeFpgaImagesOutput] +DESCRIBE_HOST_RESERVATION_OFFERINGS: APIOperation[ + DescribeHostReservationOfferingsInput, DescribeHostReservationOfferingsOutput +] +DESCRIBE_HOST_RESERVATIONS: APIOperation[ + DescribeHostReservationsInput, DescribeHostReservationsOutput +] +DESCRIBE_HOSTS: APIOperation[DescribeHostsInput, DescribeHostsOutput] +DESCRIBE_IAM_INSTANCE_PROFILE_ASSOCIATIONS: APIOperation[ + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, +] +DESCRIBE_IDENTITY_ID_FORMAT: APIOperation[ + DescribeIdentityIdFormatInput, DescribeIdentityIdFormatOutput +] +DESCRIBE_ID_FORMAT: APIOperation[DescribeIdFormatInput, DescribeIdFormatOutput] +DESCRIBE_IMAGE_ATTRIBUTE: APIOperation[ + DescribeImageAttributeInput, DescribeImageAttributeOutput +] +DESCRIBE_IMAGE_REFERENCES: APIOperation[ + DescribeImageReferencesInput, DescribeImageReferencesOutput +] +DESCRIBE_IMAGES: APIOperation[DescribeImagesInput, DescribeImagesOutput] +DESCRIBE_IMAGE_USAGE_REPORT_ENTRIES: APIOperation[ + DescribeImageUsageReportEntriesInput, DescribeImageUsageReportEntriesOutput +] +DESCRIBE_IMAGE_USAGE_REPORTS: APIOperation[ + DescribeImageUsageReportsInput, DescribeImageUsageReportsOutput +] +DESCRIBE_IMPORT_IMAGE_TASKS: APIOperation[ + DescribeImportImageTasksInput, DescribeImportImageTasksOutput +] +DESCRIBE_IMPORT_SNAPSHOT_TASKS: APIOperation[ + DescribeImportSnapshotTasksInput, DescribeImportSnapshotTasksOutput +] +DESCRIBE_INSTANCE_ATTRIBUTE: APIOperation[ + DescribeInstanceAttributeInput, DescribeInstanceAttributeOutput +] +DESCRIBE_INSTANCE_CONNECT_ENDPOINTS: APIOperation[ + DescribeInstanceConnectEndpointsInput, DescribeInstanceConnectEndpointsOutput +] +DESCRIBE_INSTANCE_CREDIT_SPECIFICATIONS: APIOperation[ + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, +] +DESCRIBE_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: APIOperation[ + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, +] +DESCRIBE_INSTANCE_EVENT_WINDOWS: APIOperation[ + DescribeInstanceEventWindowsInput, DescribeInstanceEventWindowsOutput +] +DESCRIBE_INSTANCE_IMAGE_METADATA: APIOperation[ + DescribeInstanceImageMetadataInput, DescribeInstanceImageMetadataOutput +] +DESCRIBE_INSTANCES: APIOperation[DescribeInstancesInput, DescribeInstancesOutput] +DESCRIBE_INSTANCE_SQL_HA_HISTORY_STATES: APIOperation[ + DescribeInstanceSqlHaHistoryStatesInput, DescribeInstanceSqlHaHistoryStatesOutput +] +DESCRIBE_INSTANCE_SQL_HA_STATES: APIOperation[ + DescribeInstanceSqlHaStatesInput, DescribeInstanceSqlHaStatesOutput +] +DESCRIBE_INSTANCE_STATUS: APIOperation[ + DescribeInstanceStatusInput, DescribeInstanceStatusOutput +] +DESCRIBE_INSTANCE_TOPOLOGY: APIOperation[ + DescribeInstanceTopologyInput, DescribeInstanceTopologyOutput +] +DESCRIBE_INSTANCE_TYPE_OFFERINGS: APIOperation[ + DescribeInstanceTypeOfferingsInput, DescribeInstanceTypeOfferingsOutput +] +DESCRIBE_INSTANCE_TYPES: APIOperation[ + DescribeInstanceTypesInput, DescribeInstanceTypesOutput +] +DESCRIBE_INTERNET_GATEWAYS: APIOperation[ + DescribeInternetGatewaysInput, DescribeInternetGatewaysOutput +] +DESCRIBE_IPAM_BYOASN: APIOperation[DescribeIpamByoasnInput, DescribeIpamByoasnOutput] +DESCRIBE_IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKENS: APIOperation[ + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, +] +DESCRIBE_IPAM_INTERNET_REGISTRY_ASSOCIATIONS: APIOperation[ + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, +] +DESCRIBE_IPAM_POLICIES: APIOperation[ + DescribeIpamPoliciesInput, DescribeIpamPoliciesOutput +] +DESCRIBE_IPAM_POOL_ALLOCATIONS: APIOperation[ + DescribeIpamPoolAllocationsInput, DescribeIpamPoolAllocationsOutput +] +DESCRIBE_IPAM_POOLS: APIOperation[DescribeIpamPoolsInput, DescribeIpamPoolsOutput] +DESCRIBE_IPAM_PREFIX_LIST_RESOLVERS: APIOperation[ + DescribeIpamPrefixListResolversInput, DescribeIpamPrefixListResolversOutput +] +DESCRIBE_IPAM_PREFIX_LIST_RESOLVER_TARGETS: APIOperation[ + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, +] +DESCRIBE_IPAM_RESOURCE_DISCOVERIES: APIOperation[ + DescribeIpamResourceDiscoveriesInput, DescribeIpamResourceDiscoveriesOutput +] +DESCRIBE_IPAM_RESOURCE_DISCOVERY_ASSOCIATIONS: APIOperation[ + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, +] +DESCRIBE_IPAMS: APIOperation[DescribeIpamsInput, DescribeIpamsOutput] +DESCRIBE_IPAM_SCOPES: APIOperation[DescribeIpamScopesInput, DescribeIpamScopesOutput] +DESCRIBE_IPV6_POOLS: APIOperation[DescribeIpv6PoolsInput, DescribeIpv6PoolsOutput] +DESCRIBE_KEY_PAIRS: APIOperation[DescribeKeyPairsInput, DescribeKeyPairsOutput] +DESCRIBE_LAUNCH_TEMPLATES: APIOperation[ + DescribeLaunchTemplatesInput, DescribeLaunchTemplatesOutput +] +DESCRIBE_LAUNCH_TEMPLATE_VERSIONS: APIOperation[ + DescribeLaunchTemplateVersionsInput, DescribeLaunchTemplateVersionsOutput +] +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLES: APIOperation[ + DescribeLocalGatewayRouteTablesInput, DescribeLocalGatewayRouteTablesOutput +] +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VIRTUAL_INTERFACE_GROUP_ASSOCIATIONS: APIOperation[ + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, +] +DESCRIBE_LOCAL_GATEWAY_ROUTE_TABLE_VPC_ASSOCIATIONS: APIOperation[ + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, +] +DESCRIBE_LOCAL_GATEWAYS: APIOperation[ + DescribeLocalGatewaysInput, DescribeLocalGatewaysOutput +] +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACE_GROUPS: APIOperation[ + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, +] +DESCRIBE_LOCAL_GATEWAY_VIRTUAL_INTERFACES: APIOperation[ + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, +] +DESCRIBE_LOCKED_SNAPSHOTS: APIOperation[ + DescribeLockedSnapshotsInput, DescribeLockedSnapshotsOutput +] +DESCRIBE_MAC_HOSTS: APIOperation[DescribeMacHostsInput, DescribeMacHostsOutput] +DESCRIBE_MAC_MODIFICATION_TASKS: APIOperation[ + DescribeMacModificationTasksInput, DescribeMacModificationTasksOutput +] +DESCRIBE_MANAGED_PREFIX_LISTS: APIOperation[ + DescribeManagedPrefixListsInput, DescribeManagedPrefixListsOutput +] +DESCRIBE_MOVING_ADDRESSES: APIOperation[ + DescribeMovingAddressesInput, DescribeMovingAddressesOutput +] +DESCRIBE_NAT_GATEWAYS: APIOperation[DescribeNatGatewaysInput, DescribeNatGatewaysOutput] +DESCRIBE_NETWORK_ACLS: APIOperation[DescribeNetworkAclsInput, DescribeNetworkAclsOutput] +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSES: APIOperation[ + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, +] +DESCRIBE_NETWORK_INSIGHTS_ACCESS_SCOPES: APIOperation[ + DescribeNetworkInsightsAccessScopesInput, DescribeNetworkInsightsAccessScopesOutput +] +DESCRIBE_NETWORK_INSIGHTS_ANALYSES: APIOperation[ + DescribeNetworkInsightsAnalysesInput, DescribeNetworkInsightsAnalysesOutput +] +DESCRIBE_NETWORK_INSIGHTS_PATHS: APIOperation[ + DescribeNetworkInsightsPathsInput, DescribeNetworkInsightsPathsOutput +] +DESCRIBE_NETWORK_INTERFACE_ATTRIBUTE: APIOperation[ + DescribeNetworkInterfaceAttributeInput, DescribeNetworkInterfaceAttributeOutput +] +DESCRIBE_NETWORK_INTERFACE_PERMISSIONS: APIOperation[ + DescribeNetworkInterfacePermissionsInput, DescribeNetworkInterfacePermissionsOutput +] +DESCRIBE_NETWORK_INTERFACES: APIOperation[ + DescribeNetworkInterfacesInput, DescribeNetworkInterfacesOutput +] +DESCRIBE_OUTPOST_LAGS: APIOperation[DescribeOutpostLagsInput, DescribeOutpostLagsOutput] +DESCRIBE_PLACEMENT_GROUPS: APIOperation[ + DescribePlacementGroupsInput, DescribePlacementGroupsOutput +] +DESCRIBE_PREFIX_LISTS: APIOperation[DescribePrefixListsInput, DescribePrefixListsOutput] +DESCRIBE_PRINCIPAL_ID_FORMAT: APIOperation[ + DescribePrincipalIdFormatInput, DescribePrincipalIdFormatOutput +] +DESCRIBE_PUBLIC_IPV4_POOLS: APIOperation[ + DescribePublicIpv4PoolsInput, DescribePublicIpv4PoolsOutput +] +DESCRIBE_REGIONS: APIOperation[DescribeRegionsInput, DescribeRegionsOutput] +DESCRIBE_REPLACE_ROOT_VOLUME_TASKS: APIOperation[ + DescribeReplaceRootVolumeTasksInput, DescribeReplaceRootVolumeTasksOutput +] +DESCRIBE_RESERVED_INSTANCES: APIOperation[ + DescribeReservedInstancesInput, DescribeReservedInstancesOutput +] +DESCRIBE_RESERVED_INSTANCES_LISTINGS: APIOperation[ + DescribeReservedInstancesListingsInput, DescribeReservedInstancesListingsOutput +] +DESCRIBE_RESERVED_INSTANCES_MODIFICATIONS: APIOperation[ + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, +] +DESCRIBE_RESERVED_INSTANCES_OFFERINGS: APIOperation[ + DescribeReservedInstancesOfferingsInput, DescribeReservedInstancesOfferingsOutput +] +DESCRIBE_ROUTE_SERVER_ENDPOINTS: APIOperation[ + DescribeRouteServerEndpointsInput, DescribeRouteServerEndpointsOutput +] +DESCRIBE_ROUTE_SERVER_PEERS: APIOperation[ + DescribeRouteServerPeersInput, DescribeRouteServerPeersOutput +] +DESCRIBE_ROUTE_SERVERS: APIOperation[ + DescribeRouteServersInput, DescribeRouteServersOutput +] +DESCRIBE_ROUTE_TABLES: APIOperation[DescribeRouteTablesInput, DescribeRouteTablesOutput] +DESCRIBE_SCHEDULED_INSTANCE_AVAILABILITY: APIOperation[ + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, +] +DESCRIBE_SCHEDULED_INSTANCES: APIOperation[ + DescribeScheduledInstancesInput, DescribeScheduledInstancesOutput +] +DESCRIBE_SECONDARY_INTERFACES: APIOperation[ + DescribeSecondaryInterfacesInput, DescribeSecondaryInterfacesOutput +] +DESCRIBE_SECONDARY_NETWORKS: APIOperation[ + DescribeSecondaryNetworksInput, DescribeSecondaryNetworksOutput +] +DESCRIBE_SECONDARY_SUBNETS: APIOperation[ + DescribeSecondarySubnetsInput, DescribeSecondarySubnetsOutput +] +DESCRIBE_SECURITY_GROUP_REFERENCES: APIOperation[ + DescribeSecurityGroupReferencesInput, DescribeSecurityGroupReferencesOutput +] +DESCRIBE_SECURITY_GROUP_RULES: APIOperation[ + DescribeSecurityGroupRulesInput, DescribeSecurityGroupRulesOutput +] +DESCRIBE_SECURITY_GROUPS: APIOperation[ + DescribeSecurityGroupsInput, DescribeSecurityGroupsOutput +] +DESCRIBE_SECURITY_GROUP_VPC_ASSOCIATIONS: APIOperation[ + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, +] +DESCRIBE_SERVICE_LINK_VIRTUAL_INTERFACES: APIOperation[ + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, +] +DESCRIBE_SNAPSHOT_ATTRIBUTE: APIOperation[ + DescribeSnapshotAttributeInput, DescribeSnapshotAttributeOutput +] +DESCRIBE_SNAPSHOTS: APIOperation[DescribeSnapshotsInput, DescribeSnapshotsOutput] +DESCRIBE_SNAPSHOT_TIER_STATUS: APIOperation[ + DescribeSnapshotTierStatusInput, DescribeSnapshotTierStatusOutput +] +DESCRIBE_SPOT_DATAFEED_SUBSCRIPTION: APIOperation[ + DescribeSpotDatafeedSubscriptionInput, DescribeSpotDatafeedSubscriptionOutput +] +DESCRIBE_SPOT_FLEET_INSTANCES: APIOperation[ + DescribeSpotFleetInstancesInput, DescribeSpotFleetInstancesOutput +] +DESCRIBE_SPOT_FLEET_REQUEST_HISTORY: APIOperation[ + DescribeSpotFleetRequestHistoryInput, DescribeSpotFleetRequestHistoryOutput +] +DESCRIBE_SPOT_FLEET_REQUESTS: APIOperation[ + DescribeSpotFleetRequestsInput, DescribeSpotFleetRequestsOutput +] +DESCRIBE_SPOT_INSTANCE_REQUESTS: APIOperation[ + DescribeSpotInstanceRequestsInput, DescribeSpotInstanceRequestsOutput +] +DESCRIBE_SPOT_PRICE_HISTORY: APIOperation[ + DescribeSpotPriceHistoryInput, DescribeSpotPriceHistoryOutput +] +DESCRIBE_STALE_SECURITY_GROUPS: APIOperation[ + DescribeStaleSecurityGroupsInput, DescribeStaleSecurityGroupsOutput +] +DESCRIBE_STORE_IMAGE_TASKS: APIOperation[ + DescribeStoreImageTasksInput, DescribeStoreImageTasksOutput +] +DESCRIBE_SUBNETS: APIOperation[DescribeSubnetsInput, DescribeSubnetsOutput] +DESCRIBE_TAGS: APIOperation[DescribeTagsInput, DescribeTagsOutput] +DESCRIBE_TRAFFIC_MIRROR_FILTER_RULES: APIOperation[ + DescribeTrafficMirrorFilterRulesInput, DescribeTrafficMirrorFilterRulesOutput +] +DESCRIBE_TRAFFIC_MIRROR_FILTERS: APIOperation[ + DescribeTrafficMirrorFiltersInput, DescribeTrafficMirrorFiltersOutput +] +DESCRIBE_TRAFFIC_MIRROR_SESSIONS: APIOperation[ + DescribeTrafficMirrorSessionsInput, DescribeTrafficMirrorSessionsOutput +] +DESCRIBE_TRAFFIC_MIRROR_TARGETS: APIOperation[ + DescribeTrafficMirrorTargetsInput, DescribeTrafficMirrorTargetsOutput +] +DESCRIBE_TRANSIT_GATEWAY_ATTACHMENTS: APIOperation[ + DescribeTransitGatewayAttachmentsInput, DescribeTransitGatewayAttachmentsOutput +] +DESCRIBE_TRANSIT_GATEWAY_CONNECT_PEERS: APIOperation[ + DescribeTransitGatewayConnectPeersInput, DescribeTransitGatewayConnectPeersOutput +] +DESCRIBE_TRANSIT_GATEWAY_CONNECTS: APIOperation[ + DescribeTransitGatewayConnectsInput, DescribeTransitGatewayConnectsOutput +] +DESCRIBE_TRANSIT_GATEWAY_METERING_POLICIES: APIOperation[ + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, +] +DESCRIBE_TRANSIT_GATEWAY_MULTICAST_DOMAINS: APIOperation[ + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, +] +DESCRIBE_TRANSIT_GATEWAY_PEERING_ATTACHMENTS: APIOperation[ + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, +] +DESCRIBE_TRANSIT_GATEWAY_POLICY_TABLES: APIOperation[ + DescribeTransitGatewayPolicyTablesInput, DescribeTransitGatewayPolicyTablesOutput +] +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENTS: APIOperation[ + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, +] +DESCRIBE_TRANSIT_GATEWAY_ROUTE_TABLES: APIOperation[ + DescribeTransitGatewayRouteTablesInput, DescribeTransitGatewayRouteTablesOutput +] +DESCRIBE_TRANSIT_GATEWAYS: APIOperation[ + DescribeTransitGatewaysInput, DescribeTransitGatewaysOutput +] +DESCRIBE_TRANSIT_GATEWAY_VPC_ATTACHMENTS: APIOperation[ + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, +] +DESCRIBE_TRUNK_INTERFACE_ASSOCIATIONS: APIOperation[ + DescribeTrunkInterfaceAssociationsInput, DescribeTrunkInterfaceAssociationsOutput +] +DESCRIBE_VERIFIED_ACCESS_ENDPOINTS: APIOperation[ + DescribeVerifiedAccessEndpointsInput, DescribeVerifiedAccessEndpointsOutput +] +DESCRIBE_VERIFIED_ACCESS_GROUPS: APIOperation[ + DescribeVerifiedAccessGroupsInput, DescribeVerifiedAccessGroupsOutput +] +DESCRIBE_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATIONS: APIOperation[ + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, +] +DESCRIBE_VERIFIED_ACCESS_INSTANCES: APIOperation[ + DescribeVerifiedAccessInstancesInput, DescribeVerifiedAccessInstancesOutput +] +DESCRIBE_VERIFIED_ACCESS_TRUST_PROVIDERS: APIOperation[ + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, +] +DESCRIBE_VOLUME_ATTRIBUTE: APIOperation[ + DescribeVolumeAttributeInput, DescribeVolumeAttributeOutput +] +DESCRIBE_VOLUMES: APIOperation[DescribeVolumesInput, DescribeVolumesOutput] +DESCRIBE_VOLUMES_MODIFICATIONS: APIOperation[ + DescribeVolumesModificationsInput, DescribeVolumesModificationsOutput +] +DESCRIBE_VOLUME_STATUS: APIOperation[ + DescribeVolumeStatusInput, DescribeVolumeStatusOutput +] +DESCRIBE_VPC_ATTRIBUTE: APIOperation[ + DescribeVpcAttributeInput, DescribeVpcAttributeOutput +] +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSIONS: APIOperation[ + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, +] +DESCRIBE_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS: APIOperation[ + DescribeVpcBlockPublicAccessOptionsInput, DescribeVpcBlockPublicAccessOptionsOutput +] +DESCRIBE_VPC_CLASSIC_LINK: APIOperation[ + DescribeVpcClassicLinkInput, DescribeVpcClassicLinkOutput +] +DESCRIBE_VPC_CLASSIC_LINK_DNS_SUPPORT: APIOperation[ + DescribeVpcClassicLinkDnsSupportInput, DescribeVpcClassicLinkDnsSupportOutput +] +DESCRIBE_VPC_ENCRYPTION_CONTROLS: APIOperation[ + DescribeVpcEncryptionControlsInput, DescribeVpcEncryptionControlsOutput +] +DESCRIBE_VPC_ENDPOINT_ASSOCIATIONS: APIOperation[ + DescribeVpcEndpointAssociationsInput, DescribeVpcEndpointAssociationsOutput +] +DESCRIBE_VPC_ENDPOINT_CONNECTION_NOTIFICATIONS: APIOperation[ + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, +] +DESCRIBE_VPC_ENDPOINT_CONNECTIONS: APIOperation[ + DescribeVpcEndpointConnectionsInput, DescribeVpcEndpointConnectionsOutput +] +DESCRIBE_VPC_ENDPOINTS: APIOperation[ + DescribeVpcEndpointsInput, DescribeVpcEndpointsOutput +] +DESCRIBE_VPC_ENDPOINT_SERVICE_CONFIGURATIONS: APIOperation[ + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, +] +DESCRIBE_VPC_ENDPOINT_SERVICE_PERMISSIONS: APIOperation[ + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, +] +DESCRIBE_VPC_ENDPOINT_SERVICES: APIOperation[ + DescribeVpcEndpointServicesInput, DescribeVpcEndpointServicesOutput +] +DESCRIBE_VPC_PEERING_CONNECTIONS: APIOperation[ + DescribeVpcPeeringConnectionsInput, DescribeVpcPeeringConnectionsOutput +] +DESCRIBE_VPCS: APIOperation[DescribeVpcsInput, DescribeVpcsOutput] +DESCRIBE_VPN_CONCENTRATORS: APIOperation[ + DescribeVpnConcentratorsInput, DescribeVpnConcentratorsOutput +] +DESCRIBE_VPN_CONNECTIONS: APIOperation[ + DescribeVpnConnectionsInput, DescribeVpnConnectionsOutput +] +DESCRIBE_VPN_GATEWAYS: APIOperation[DescribeVpnGatewaysInput, DescribeVpnGatewaysOutput] +DETACH_CLASSIC_LINK_VPC: APIOperation[ + DetachClassicLinkVpcInput, DetachClassicLinkVpcOutput +] +DETACH_IMAGE_WATERMARK: APIOperation[ + DetachImageWatermarkInput, DetachImageWatermarkOutput +] +DETACH_INTERNET_GATEWAY: APIOperation[ + DetachInternetGatewayInput, DetachInternetGatewayOutput +] +DETACH_NETWORK_INTERFACE: APIOperation[ + DetachNetworkInterfaceInput, DetachNetworkInterfaceOutput +] +DETACH_VERIFIED_ACCESS_TRUST_PROVIDER: APIOperation[ + DetachVerifiedAccessTrustProviderInput, DetachVerifiedAccessTrustProviderOutput +] +DETACH_VOLUME: APIOperation[DetachVolumeInput, DetachVolumeOutput] +DETACH_VPN_GATEWAY: APIOperation[DetachVpnGatewayInput, DetachVpnGatewayOutput] +DISABLE_ADDRESS_TRANSFER: APIOperation[ + DisableAddressTransferInput, DisableAddressTransferOutput +] +DISABLE_ALLOWED_IMAGES_SETTINGS: APIOperation[ + DisableAllowedImagesSettingsInput, DisableAllowedImagesSettingsOutput +] +DISABLE_APPLICATION_STATUS_CHECK_SUPPRESSION: APIOperation[ + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, +] +DISABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION: APIOperation[ + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, +] +DISABLE_CAPACITY_MANAGER: APIOperation[ + DisableCapacityManagerInput, DisableCapacityManagerOutput +] +DISABLE_EBS_ENCRYPTION_BY_DEFAULT: APIOperation[ + DisableEbsEncryptionByDefaultInput, DisableEbsEncryptionByDefaultOutput +] +DISABLE_FAST_LAUNCH: APIOperation[DisableFastLaunchInput, DisableFastLaunchOutput] +DISABLE_FAST_SNAPSHOT_RESTORES: APIOperation[ + DisableFastSnapshotRestoresInput, DisableFastSnapshotRestoresOutput +] +DISABLE_IMAGE: APIOperation[DisableImageInput, DisableImageOutput] +DISABLE_IMAGE_BLOCK_PUBLIC_ACCESS: APIOperation[ + DisableImageBlockPublicAccessInput, DisableImageBlockPublicAccessOutput +] +DISABLE_IMAGE_DEPRECATION: APIOperation[ + DisableImageDeprecationInput, DisableImageDeprecationOutput +] +DISABLE_IMAGE_DEREGISTRATION_PROTECTION: APIOperation[ + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, +] +DISABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS: APIOperation[ + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, +] +DISABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT: APIOperation[ + DisableIpamOrganizationAdminAccountInput, DisableIpamOrganizationAdminAccountOutput +] +DISABLE_IPAM_POLICY: APIOperation[DisableIpamPolicyInput, DisableIpamPolicyOutput] +DISABLE_ROUTE_SERVER_PROPAGATION: APIOperation[ + DisableRouteServerPropagationInput, DisableRouteServerPropagationOutput +] +DISABLE_SERIAL_CONSOLE_ACCESS: APIOperation[ + DisableSerialConsoleAccessInput, DisableSerialConsoleAccessOutput +] +DISABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS: APIOperation[ + DisableSnapshotBlockPublicAccessInput, DisableSnapshotBlockPublicAccessOutput +] +DISABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION: APIOperation[ + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, +] +DISABLE_VGW_ROUTE_PROPAGATION: APIOperation[ + DisableVgwRoutePropagationInput, DisableVgwRoutePropagationOutput +] +DISABLE_VPC_CLASSIC_LINK: APIOperation[ + DisableVpcClassicLinkInput, DisableVpcClassicLinkOutput +] +DISABLE_VPC_CLASSIC_LINK_DNS_SUPPORT: APIOperation[ + DisableVpcClassicLinkDnsSupportInput, DisableVpcClassicLinkDnsSupportOutput +] +DISASSOCIATE_ADDRESS: APIOperation[DisassociateAddressInput, DisassociateAddressOutput] +DISASSOCIATE_APPLICATION_STATUS_CHECK: APIOperation[ + DisassociateApplicationStatusCheckInput, DisassociateApplicationStatusCheckOutput +] +DISASSOCIATE_CAPACITY_RESERVATION_BILLING_OWNER: APIOperation[ + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, +] +DISASSOCIATE_CLIENT_VPN_TARGET_NETWORK: APIOperation[ + DisassociateClientVpnTargetNetworkInput, DisassociateClientVpnTargetNetworkOutput +] +DISASSOCIATE_ENCLAVE_CERTIFICATE_IAM_ROLE: APIOperation[ + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, +] +DISASSOCIATE_IAM_INSTANCE_PROFILE: APIOperation[ + DisassociateIamInstanceProfileInput, DisassociateIamInstanceProfileOutput +] +DISASSOCIATE_INSTANCE_EVENT_WINDOW: APIOperation[ + DisassociateInstanceEventWindowInput, DisassociateInstanceEventWindowOutput +] +DISASSOCIATE_IPAM_BYOASN: APIOperation[ + DisassociateIpamByoasnInput, DisassociateIpamByoasnOutput +] +DISASSOCIATE_IPAM_RESOURCE_DISCOVERY: APIOperation[ + DisassociateIpamResourceDiscoveryInput, DisassociateIpamResourceDiscoveryOutput +] +DISASSOCIATE_NAT_GATEWAY_ADDRESS: APIOperation[ + DisassociateNatGatewayAddressInput, DisassociateNatGatewayAddressOutput +] +DISASSOCIATE_ROUTE_SERVER: APIOperation[ + DisassociateRouteServerInput, DisassociateRouteServerOutput +] +DISASSOCIATE_ROUTE_TABLE: APIOperation[ + DisassociateRouteTableInput, DisassociateRouteTableOutput +] +DISASSOCIATE_SECURITY_GROUP_VPC: APIOperation[ + DisassociateSecurityGroupVpcInput, DisassociateSecurityGroupVpcOutput +] +DISASSOCIATE_SUBNET_CIDR_BLOCK: APIOperation[ + DisassociateSubnetCidrBlockInput, DisassociateSubnetCidrBlockOutput +] +DISASSOCIATE_TRANSIT_GATEWAY_MULTICAST_DOMAIN: APIOperation[ + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, +] +DISASSOCIATE_TRANSIT_GATEWAY_POLICY_TABLE: APIOperation[ + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, +] +DISASSOCIATE_TRANSIT_GATEWAY_ROUTE_TABLE: APIOperation[ + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, +] +DISASSOCIATE_TRUNK_INTERFACE: APIOperation[ + DisassociateTrunkInterfaceInput, DisassociateTrunkInterfaceOutput +] +DISASSOCIATE_VPC_CIDR_BLOCK: APIOperation[ + DisassociateVpcCidrBlockInput, DisassociateVpcCidrBlockOutput +] +ENABLE_ADDRESS_TRANSFER: APIOperation[ + EnableAddressTransferInput, EnableAddressTransferOutput +] +ENABLE_ALLOWED_IMAGES_SETTINGS: APIOperation[ + EnableAllowedImagesSettingsInput, EnableAllowedImagesSettingsOutput +] +ENABLE_APPLICATION_STATUS_CHECK_SUPPRESSION: APIOperation[ + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, +] +ENABLE_AWS_NETWORK_PERFORMANCE_METRIC_SUBSCRIPTION: APIOperation[ + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, +] +ENABLE_CAPACITY_MANAGER: APIOperation[ + EnableCapacityManagerInput, EnableCapacityManagerOutput +] +ENABLE_EBS_ENCRYPTION_BY_DEFAULT: APIOperation[ + EnableEbsEncryptionByDefaultInput, EnableEbsEncryptionByDefaultOutput +] +ENABLE_FAST_LAUNCH: APIOperation[EnableFastLaunchInput, EnableFastLaunchOutput] +ENABLE_FAST_SNAPSHOT_RESTORES: APIOperation[ + EnableFastSnapshotRestoresInput, EnableFastSnapshotRestoresOutput +] +ENABLE_IMAGE: APIOperation[EnableImageInput, EnableImageOutput] +ENABLE_IMAGE_BLOCK_PUBLIC_ACCESS: APIOperation[ + EnableImageBlockPublicAccessInput, EnableImageBlockPublicAccessOutput +] +ENABLE_IMAGE_DEPRECATION: APIOperation[ + EnableImageDeprecationInput, EnableImageDeprecationOutput +] +ENABLE_IMAGE_DEREGISTRATION_PROTECTION: APIOperation[ + EnableImageDeregistrationProtectionInput, EnableImageDeregistrationProtectionOutput +] +ENABLE_INSTANCE_SQL_HA_STANDBY_DETECTIONS: APIOperation[ + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, +] +ENABLE_IPAM_INTERNET_REGISTRY_ASSOCIATION: APIOperation[ + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, +] +ENABLE_IPAM_ORGANIZATION_ADMIN_ACCOUNT: APIOperation[ + EnableIpamOrganizationAdminAccountInput, EnableIpamOrganizationAdminAccountOutput +] +ENABLE_IPAM_POLICY: APIOperation[EnableIpamPolicyInput, EnableIpamPolicyOutput] +ENABLE_REACHABILITY_ANALYZER_ORGANIZATION_SHARING: APIOperation[ + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, +] +ENABLE_ROUTE_SERVER_PROPAGATION: APIOperation[ + EnableRouteServerPropagationInput, EnableRouteServerPropagationOutput +] +ENABLE_SERIAL_CONSOLE_ACCESS: APIOperation[ + EnableSerialConsoleAccessInput, EnableSerialConsoleAccessOutput +] +ENABLE_SNAPSHOT_BLOCK_PUBLIC_ACCESS: APIOperation[ + EnableSnapshotBlockPublicAccessInput, EnableSnapshotBlockPublicAccessOutput +] +ENABLE_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATION: APIOperation[ + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, +] +ENABLE_VGW_ROUTE_PROPAGATION: APIOperation[ + EnableVgwRoutePropagationInput, EnableVgwRoutePropagationOutput +] +ENABLE_VOLUME_IO: APIOperation[EnableVolumeIOInput, EnableVolumeIOOutput] +ENABLE_VPC_CLASSIC_LINK: APIOperation[ + EnableVpcClassicLinkInput, EnableVpcClassicLinkOutput +] +ENABLE_VPC_CLASSIC_LINK_DNS_SUPPORT: APIOperation[ + EnableVpcClassicLinkDnsSupportInput, EnableVpcClassicLinkDnsSupportOutput +] +EXPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST: APIOperation[ + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, +] +EXPORT_CLIENT_VPN_CLIENT_CONFIGURATION: APIOperation[ + ExportClientVpnClientConfigurationInput, ExportClientVpnClientConfigurationOutput +] +EXPORT_IMAGE: APIOperation[ExportImageInput, ExportImageOutput] +EXPORT_TRANSIT_GATEWAY_ROUTES: APIOperation[ + ExportTransitGatewayRoutesInput, ExportTransitGatewayRoutesOutput +] +EXPORT_VERIFIED_ACCESS_INSTANCE_CLIENT_CONFIGURATION: APIOperation[ + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, +] +GET_ACTIVE_VPN_TUNNEL_STATUS: APIOperation[ + GetActiveVpnTunnelStatusInput, GetActiveVpnTunnelStatusOutput +] +GET_ALLOWED_IMAGES_SETTINGS: APIOperation[ + GetAllowedImagesSettingsInput, GetAllowedImagesSettingsOutput +] +GET_ASSOCIATED_ENCLAVE_CERTIFICATE_IAM_ROLES: APIOperation[ + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, +] +GET_ASSOCIATED_IPV6_POOL_CIDRS: APIOperation[ + GetAssociatedIpv6PoolCidrsInput, GetAssociatedIpv6PoolCidrsOutput +] +GET_AWS_NETWORK_PERFORMANCE_DATA: APIOperation[ + GetAwsNetworkPerformanceDataInput, GetAwsNetworkPerformanceDataOutput +] +GET_CAPACITY_MANAGER_ATTRIBUTES: APIOperation[ + GetCapacityManagerAttributesInput, GetCapacityManagerAttributesOutput +] +GET_CAPACITY_MANAGER_METRIC_DATA: APIOperation[ + GetCapacityManagerMetricDataInput, GetCapacityManagerMetricDataOutput +] +GET_CAPACITY_MANAGER_METRIC_DIMENSIONS: APIOperation[ + GetCapacityManagerMetricDimensionsInput, GetCapacityManagerMetricDimensionsOutput +] +GET_CAPACITY_MANAGER_MONITORED_TAG_KEYS: APIOperation[ + GetCapacityManagerMonitoredTagKeysInput, GetCapacityManagerMonitoredTagKeysOutput +] +GET_CAPACITY_MANAGER_SUPPORTABILITY_SCORES: APIOperation[ + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, +] +GET_CAPACITY_RESERVATION_USAGE: APIOperation[ + GetCapacityReservationUsageInput, GetCapacityReservationUsageOutput +] +GET_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: APIOperation[ + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, +] +GET_COIP_POOL_USAGE: APIOperation[GetCoipPoolUsageInput, GetCoipPoolUsageOutput] +GET_CONSOLE_OUTPUT: APIOperation[GetConsoleOutputInput, GetConsoleOutputOutput] +GET_CONSOLE_SCREENSHOT: APIOperation[ + GetConsoleScreenshotInput, GetConsoleScreenshotOutput +] +GET_DECLARATIVE_POLICIES_REPORT_SUMMARY: APIOperation[ + GetDeclarativePoliciesReportSummaryInput, GetDeclarativePoliciesReportSummaryOutput +] +GET_DEFAULT_CREDIT_SPECIFICATION: APIOperation[ + GetDefaultCreditSpecificationInput, GetDefaultCreditSpecificationOutput +] +GET_EBS_DEFAULT_KMS_KEY_ID: APIOperation[ + GetEbsDefaultKmsKeyIdInput, GetEbsDefaultKmsKeyIdOutput +] +GET_EBS_ENCRYPTION_BY_DEFAULT: APIOperation[ + GetEbsEncryptionByDefaultInput, GetEbsEncryptionByDefaultOutput +] +GET_ENABLED_IPAM_POLICY: APIOperation[ + GetEnabledIpamPolicyInput, GetEnabledIpamPolicyOutput +] +GET_FLOW_LOGS_INTEGRATION_TEMPLATE: APIOperation[ + GetFlowLogsIntegrationTemplateInput, GetFlowLogsIntegrationTemplateOutput +] +GET_GROUPS_FOR_CAPACITY_RESERVATION: APIOperation[ + GetGroupsForCapacityReservationInput, GetGroupsForCapacityReservationOutput +] +GET_HOST_RESERVATION_PURCHASE_PREVIEW: APIOperation[ + GetHostReservationPurchasePreviewInput, GetHostReservationPurchasePreviewOutput +] +GET_IMAGE_ANCESTRY: APIOperation[GetImageAncestryInput, GetImageAncestryOutput] +GET_IMAGE_BLOCK_PUBLIC_ACCESS_STATE: APIOperation[ + GetImageBlockPublicAccessStateInput, GetImageBlockPublicAccessStateOutput +] +GET_IMAGE_FINDINGS: APIOperation[GetImageFindingsInput, GetImageFindingsOutput] +GET_INSTANCE_METADATA_DEFAULTS: APIOperation[ + GetInstanceMetadataDefaultsInput, GetInstanceMetadataDefaultsOutput +] +GET_INSTANCE_TPM_EK_PUB: APIOperation[ + GetInstanceTpmEkPubInput, GetInstanceTpmEkPubOutput +] +GET_INSTANCE_TYPES_FROM_INSTANCE_REQUIREMENTS: APIOperation[ + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, +] +GET_INSTANCE_UEFI_DATA: APIOperation[ + GetInstanceUefiDataInput, GetInstanceUefiDataOutput +] +GET_IPAM_ADDRESS_HISTORY: APIOperation[ + GetIpamAddressHistoryInput, GetIpamAddressHistoryOutput +] +GET_IPAM_DISCOVERED_ACCOUNTS: APIOperation[ + GetIpamDiscoveredAccountsInput, GetIpamDiscoveredAccountsOutput +] +GET_IPAM_DISCOVERED_PUBLIC_ADDRESSES: APIOperation[ + GetIpamDiscoveredPublicAddressesInput, GetIpamDiscoveredPublicAddressesOutput +] +GET_IPAM_DISCOVERED_RESOURCE_CIDRS: APIOperation[ + GetIpamDiscoveredResourceCidrsInput, GetIpamDiscoveredResourceCidrsOutput +] +GET_IPAM_DISCOVERED_ROUTES: APIOperation[ + GetIpamDiscoveredRoutesInput, GetIpamDiscoveredRoutesOutput +] +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_ASNS: APIOperation[ + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, +] +GET_IPAM_INTERNET_REGISTRY_ASSOCIATION_CIDRS: APIOperation[ + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, +] +GET_IPAM_POLICY_ALLOCATION_RULES: APIOperation[ + GetIpamPolicyAllocationRulesInput, GetIpamPolicyAllocationRulesOutput +] +GET_IPAM_POLICY_ORGANIZATION_TARGETS: APIOperation[ + GetIpamPolicyOrganizationTargetsInput, GetIpamPolicyOrganizationTargetsOutput +] +GET_IPAM_POOL_ALLOCATIONS: APIOperation[ + GetIpamPoolAllocationsInput, GetIpamPoolAllocationsOutput +] +GET_IPAM_POOL_CIDRS: APIOperation[GetIpamPoolCidrsInput, GetIpamPoolCidrsOutput] +GET_IPAM_PREFIX_LIST_RESOLVER_RULES: APIOperation[ + GetIpamPrefixListResolverRulesInput, GetIpamPrefixListResolverRulesOutput +] +GET_IPAM_PREFIX_LIST_RESOLVER_VERSION_ENTRIES: APIOperation[ + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, +] +GET_IPAM_PREFIX_LIST_RESOLVER_VERSIONS: APIOperation[ + GetIpamPrefixListResolverVersionsInput, GetIpamPrefixListResolverVersionsOutput +] +GET_IPAM_RESOURCE_CIDRS: APIOperation[ + GetIpamResourceCidrsInput, GetIpamResourceCidrsOutput +] +GET_IPAM_ROUTE_ORIGIN_AUTHORIZATIONS: APIOperation[ + GetIpamRouteOriginAuthorizationsInput, GetIpamRouteOriginAuthorizationsOutput +] +GET_IPAM_ROUTE_PROTECTION_FINDINGS: APIOperation[ + GetIpamRouteProtectionFindingsInput, GetIpamRouteProtectionFindingsOutput +] +GET_IPAM_ROUTING_POLICY_REGISTRATION_DELTAS: APIOperation[ + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, +] +GET_IPAM_ROUTING_POLICY_REGISTRATIONS: APIOperation[ + GetIpamRoutingPolicyRegistrationsInput, GetIpamRoutingPolicyRegistrationsOutput +] +GET_LAUNCH_TEMPLATE_DATA: APIOperation[ + GetLaunchTemplateDataInput, GetLaunchTemplateDataOutput +] +GET_MANAGED_PREFIX_LIST_ASSOCIATIONS: APIOperation[ + GetManagedPrefixListAssociationsInput, GetManagedPrefixListAssociationsOutput +] +GET_MANAGED_PREFIX_LIST_ENTRIES: APIOperation[ + GetManagedPrefixListEntriesInput, GetManagedPrefixListEntriesOutput +] +GET_MANAGED_RESOURCE_VISIBILITY: APIOperation[ + GetManagedResourceVisibilityInput, GetManagedResourceVisibilityOutput +] +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS_FINDINGS: APIOperation[ + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, +] +GET_NETWORK_INSIGHTS_ACCESS_SCOPE_CONTENT: APIOperation[ + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, +] +GET_PASSWORD_DATA: APIOperation[GetPasswordDataInput, GetPasswordDataOutput] +GET_RESERVED_INSTANCES_EXCHANGE_QUOTE: APIOperation[ + GetReservedInstancesExchangeQuoteInput, GetReservedInstancesExchangeQuoteOutput +] +GET_ROUTE_SERVER_ASSOCIATIONS: APIOperation[ + GetRouteServerAssociationsInput, GetRouteServerAssociationsOutput +] +GET_ROUTE_SERVER_PROPAGATIONS: APIOperation[ + GetRouteServerPropagationsInput, GetRouteServerPropagationsOutput +] +GET_ROUTE_SERVER_ROUTING_DATABASE: APIOperation[ + GetRouteServerRoutingDatabaseInput, GetRouteServerRoutingDatabaseOutput +] +GET_SECURITY_GROUPS_FOR_VPC: APIOperation[ + GetSecurityGroupsForVpcInput, GetSecurityGroupsForVpcOutput +] +GET_SERIAL_CONSOLE_ACCESS_STATUS: APIOperation[ + GetSerialConsoleAccessStatusInput, GetSerialConsoleAccessStatusOutput +] +GET_SNAPSHOT_BLOCK_PUBLIC_ACCESS_STATE: APIOperation[ + GetSnapshotBlockPublicAccessStateInput, GetSnapshotBlockPublicAccessStateOutput +] +GET_SPOT_PLACEMENT_SCORES: APIOperation[ + GetSpotPlacementScoresInput, GetSpotPlacementScoresOutput +] +GET_SUBNET_CIDR_RESERVATIONS: APIOperation[ + GetSubnetCidrReservationsInput, GetSubnetCidrReservationsOutput +] +GET_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION: APIOperation[ + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, +] +GET_TRANSIT_GATEWAY_ATTACHMENT_PROPAGATIONS: APIOperation[ + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, +] +GET_TRANSIT_GATEWAY_METERING_POLICY_ENTRIES: APIOperation[ + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, +] +GET_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: APIOperation[ + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, +] +GET_TRANSIT_GATEWAY_POLICY_TABLE_ASSOCIATIONS: APIOperation[ + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, +] +GET_TRANSIT_GATEWAY_POLICY_TABLE_ENTRIES: APIOperation[ + GetTransitGatewayPolicyTableEntriesInput, GetTransitGatewayPolicyTableEntriesOutput +] +GET_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCES: APIOperation[ + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, +] +GET_TRANSIT_GATEWAY_ROUTE_TABLE_ASSOCIATIONS: APIOperation[ + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, +] +GET_TRANSIT_GATEWAY_ROUTE_TABLE_PROPAGATIONS: APIOperation[ + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, +] +GET_VERIFIED_ACCESS_ENDPOINT_POLICY: APIOperation[ + GetVerifiedAccessEndpointPolicyInput, GetVerifiedAccessEndpointPolicyOutput +] +GET_VERIFIED_ACCESS_ENDPOINT_TARGETS: APIOperation[ + GetVerifiedAccessEndpointTargetsInput, GetVerifiedAccessEndpointTargetsOutput +] +GET_VERIFIED_ACCESS_GROUP_POLICY: APIOperation[ + GetVerifiedAccessGroupPolicyInput, GetVerifiedAccessGroupPolicyOutput +] +GET_VPC_RESOURCES_BLOCKING_ENCRYPTION_ENFORCEMENT: APIOperation[ + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, +] +GET_VPN_CONNECTION_DEVICE_SAMPLE_CONFIGURATION: APIOperation[ + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, +] +GET_VPN_CONNECTION_DEVICE_TYPES: APIOperation[ + GetVpnConnectionDeviceTypesInput, GetVpnConnectionDeviceTypesOutput +] +GET_VPN_TUNNEL_REPLACEMENT_STATUS: APIOperation[ + GetVpnTunnelReplacementStatusInput, GetVpnTunnelReplacementStatusOutput +] +IMPORT_CLIENT_VPN_CLIENT_CERTIFICATE_REVOCATION_LIST: APIOperation[ + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, +] +IMPORT_IMAGE: APIOperation[ImportImageInput, ImportImageOutput] +IMPORT_INSTANCE: APIOperation[ImportInstanceInput, ImportInstanceOutput] +IMPORT_KEY_PAIR: APIOperation[ImportKeyPairInput, ImportKeyPairOutput] +IMPORT_SNAPSHOT: APIOperation[ImportSnapshotInput, ImportSnapshotOutput] +IMPORT_VOLUME: APIOperation[ImportVolumeInput, ImportVolumeOutput] +LIST_IMAGES_IN_RECYCLE_BIN: APIOperation[ + ListImagesInRecycleBinInput, ListImagesInRecycleBinOutput +] +LIST_SNAPSHOTS_IN_RECYCLE_BIN: APIOperation[ + ListSnapshotsInRecycleBinInput, ListSnapshotsInRecycleBinOutput +] +LIST_VOLUMES_IN_RECYCLE_BIN: APIOperation[ + ListVolumesInRecycleBinInput, ListVolumesInRecycleBinOutput +] +LOCK_SNAPSHOT: APIOperation[LockSnapshotInput, LockSnapshotOutput] +MODIFY_ACCOUNT_VPC_ENCRYPTION_CONTROL: APIOperation[ + ModifyAccountVpcEncryptionControlInput, ModifyAccountVpcEncryptionControlOutput +] +MODIFY_ADDRESS_ATTRIBUTE: APIOperation[ + ModifyAddressAttributeInput, ModifyAddressAttributeOutput +] +MODIFY_APPLICATION_STATUS_CHECK: APIOperation[ + ModifyApplicationStatusCheckInput, ModifyApplicationStatusCheckOutput +] +MODIFY_AVAILABILITY_ZONE_GROUP: APIOperation[ + ModifyAvailabilityZoneGroupInput, ModifyAvailabilityZoneGroupOutput +] +MODIFY_CAPACITY_RESERVATION: APIOperation[ + ModifyCapacityReservationInput, ModifyCapacityReservationOutput +] +MODIFY_CAPACITY_RESERVATION_FLEET: APIOperation[ + ModifyCapacityReservationFleetInput, ModifyCapacityReservationFleetOutput +] +MODIFY_CLIENT_VPN_ENDPOINT: APIOperation[ + ModifyClientVpnEndpointInput, ModifyClientVpnEndpointOutput +] +MODIFY_CLIENT_VPN_ENDPOINT_AUTHORIZATION_POLICY: APIOperation[ + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, +] +MODIFY_DEFAULT_CREDIT_SPECIFICATION: APIOperation[ + ModifyDefaultCreditSpecificationInput, ModifyDefaultCreditSpecificationOutput +] +MODIFY_EBS_DEFAULT_KMS_KEY_ID: APIOperation[ + ModifyEbsDefaultKmsKeyIdInput, ModifyEbsDefaultKmsKeyIdOutput +] +MODIFY_FLEET: APIOperation[ModifyFleetInput, ModifyFleetOutput] +MODIFY_FPGA_IMAGE_ATTRIBUTE: APIOperation[ + ModifyFpgaImageAttributeInput, ModifyFpgaImageAttributeOutput +] +MODIFY_HOSTS: APIOperation[ModifyHostsInput, ModifyHostsOutput] +MODIFY_IDENTITY_ID_FORMAT: APIOperation[ + ModifyIdentityIdFormatInput, ModifyIdentityIdFormatOutput +] +MODIFY_ID_FORMAT: APIOperation[ModifyIdFormatInput, ModifyIdFormatOutput] +MODIFY_IMAGE_ATTRIBUTE: APIOperation[ + ModifyImageAttributeInput, ModifyImageAttributeOutput +] +MODIFY_INSTANCE_ATTRIBUTE: APIOperation[ + ModifyInstanceAttributeInput, ModifyInstanceAttributeOutput +] +MODIFY_INSTANCE_CAPACITY_RESERVATION_ATTRIBUTES: APIOperation[ + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, +] +MODIFY_INSTANCE_CONNECT_ENDPOINT: APIOperation[ + ModifyInstanceConnectEndpointInput, ModifyInstanceConnectEndpointOutput +] +MODIFY_INSTANCE_CPU_OPTIONS: APIOperation[ + ModifyInstanceCpuOptionsInput, ModifyInstanceCpuOptionsOutput +] +MODIFY_INSTANCE_CREDIT_SPECIFICATION: APIOperation[ + ModifyInstanceCreditSpecificationInput, ModifyInstanceCreditSpecificationOutput +] +MODIFY_INSTANCE_EVENT_START_TIME: APIOperation[ + ModifyInstanceEventStartTimeInput, ModifyInstanceEventStartTimeOutput +] +MODIFY_INSTANCE_EVENT_WINDOW: APIOperation[ + ModifyInstanceEventWindowInput, ModifyInstanceEventWindowOutput +] +MODIFY_INSTANCE_MAINTENANCE_OPTIONS: APIOperation[ + ModifyInstanceMaintenanceOptionsInput, ModifyInstanceMaintenanceOptionsOutput +] +MODIFY_INSTANCE_METADATA_DEFAULTS: APIOperation[ + ModifyInstanceMetadataDefaultsInput, ModifyInstanceMetadataDefaultsOutput +] +MODIFY_INSTANCE_METADATA_OPTIONS: APIOperation[ + ModifyInstanceMetadataOptionsInput, ModifyInstanceMetadataOptionsOutput +] +MODIFY_INSTANCE_NETWORK_PERFORMANCE_OPTIONS: APIOperation[ + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, +] +MODIFY_INSTANCE_PLACEMENT: APIOperation[ + ModifyInstancePlacementInput, ModifyInstancePlacementOutput +] +MODIFY_IPAM: APIOperation[ModifyIpamInput, ModifyIpamOutput] +MODIFY_IPAM_POLICY_ALLOCATION_RULES: APIOperation[ + ModifyIpamPolicyAllocationRulesInput, ModifyIpamPolicyAllocationRulesOutput +] +MODIFY_IPAM_POOL: APIOperation[ModifyIpamPoolInput, ModifyIpamPoolOutput] +MODIFY_IPAM_POOL_ALLOCATION: APIOperation[ + ModifyIpamPoolAllocationInput, ModifyIpamPoolAllocationOutput +] +MODIFY_IPAM_PREFIX_LIST_RESOLVER: APIOperation[ + ModifyIpamPrefixListResolverInput, ModifyIpamPrefixListResolverOutput +] +MODIFY_IPAM_PREFIX_LIST_RESOLVER_TARGET: APIOperation[ + ModifyIpamPrefixListResolverTargetInput, ModifyIpamPrefixListResolverTargetOutput +] +MODIFY_IPAM_RESOURCE_CIDR: APIOperation[ + ModifyIpamResourceCidrInput, ModifyIpamResourceCidrOutput +] +MODIFY_IPAM_RESOURCE_DISCOVERY: APIOperation[ + ModifyIpamResourceDiscoveryInput, ModifyIpamResourceDiscoveryOutput +] +MODIFY_IPAM_ROUTING_POLICY_REGISTRATION: APIOperation[ + ModifyIpamRoutingPolicyRegistrationInput, ModifyIpamRoutingPolicyRegistrationOutput +] +MODIFY_IPAM_SCOPE: APIOperation[ModifyIpamScopeInput, ModifyIpamScopeOutput] +MODIFY_LAUNCH_TEMPLATE: APIOperation[ + ModifyLaunchTemplateInput, ModifyLaunchTemplateOutput +] +MODIFY_LOCAL_GATEWAY_ROUTE: APIOperation[ + ModifyLocalGatewayRouteInput, ModifyLocalGatewayRouteOutput +] +MODIFY_MANAGED_PREFIX_LIST: APIOperation[ + ModifyManagedPrefixListInput, ModifyManagedPrefixListOutput +] +MODIFY_MANAGED_RESOURCE_VISIBILITY: APIOperation[ + ModifyManagedResourceVisibilityInput, ModifyManagedResourceVisibilityOutput +] +MODIFY_NETWORK_INTERFACE_ATTRIBUTE: APIOperation[ + ModifyNetworkInterfaceAttributeInput, ModifyNetworkInterfaceAttributeOutput +] +MODIFY_PRIVATE_DNS_NAME_OPTIONS: APIOperation[ + ModifyPrivateDnsNameOptionsInput, ModifyPrivateDnsNameOptionsOutput +] +MODIFY_PUBLIC_IP_DNS_NAME_OPTIONS: APIOperation[ + ModifyPublicIpDnsNameOptionsInput, ModifyPublicIpDnsNameOptionsOutput +] +MODIFY_RESERVED_INSTANCES: APIOperation[ + ModifyReservedInstancesInput, ModifyReservedInstancesOutput +] +MODIFY_ROUTE_SERVER: APIOperation[ModifyRouteServerInput, ModifyRouteServerOutput] +MODIFY_SECURITY_GROUP_RULES: APIOperation[ + ModifySecurityGroupRulesInput, ModifySecurityGroupRulesOutput +] +MODIFY_SNAPSHOT_ATTRIBUTE: APIOperation[ + ModifySnapshotAttributeInput, ModifySnapshotAttributeOutput +] +MODIFY_SNAPSHOT_TIER: APIOperation[ModifySnapshotTierInput, ModifySnapshotTierOutput] +MODIFY_SPOT_FLEET_REQUEST: APIOperation[ + ModifySpotFleetRequestInput, ModifySpotFleetRequestOutput +] +MODIFY_SUBNET_ATTRIBUTE: APIOperation[ + ModifySubnetAttributeInput, ModifySubnetAttributeOutput +] +MODIFY_TRAFFIC_MIRROR_FILTER_NETWORK_SERVICES: APIOperation[ + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, +] +MODIFY_TRAFFIC_MIRROR_FILTER_RULE: APIOperation[ + ModifyTrafficMirrorFilterRuleInput, ModifyTrafficMirrorFilterRuleOutput +] +MODIFY_TRAFFIC_MIRROR_SESSION: APIOperation[ + ModifyTrafficMirrorSessionInput, ModifyTrafficMirrorSessionOutput +] +MODIFY_TRANSIT_GATEWAY: APIOperation[ + ModifyTransitGatewayInput, ModifyTransitGatewayOutput +] +MODIFY_TRANSIT_GATEWAY_ATTACHMENT_NAT_CONFIGURATION: APIOperation[ + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, +] +MODIFY_TRANSIT_GATEWAY_METERING_POLICY: APIOperation[ + ModifyTransitGatewayMeteringPolicyInput, ModifyTransitGatewayMeteringPolicyOutput +] +MODIFY_TRANSIT_GATEWAY_POLICY_TABLE_ENTRY: APIOperation[ + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, +] +MODIFY_TRANSIT_GATEWAY_PREFIX_LIST_REFERENCE: APIOperation[ + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, +] +MODIFY_TRANSIT_GATEWAY_VPC_ATTACHMENT: APIOperation[ + ModifyTransitGatewayVpcAttachmentInput, ModifyTransitGatewayVpcAttachmentOutput +] +MODIFY_VERIFIED_ACCESS_ENDPOINT: APIOperation[ + ModifyVerifiedAccessEndpointInput, ModifyVerifiedAccessEndpointOutput +] +MODIFY_VERIFIED_ACCESS_ENDPOINT_POLICY: APIOperation[ + ModifyVerifiedAccessEndpointPolicyInput, ModifyVerifiedAccessEndpointPolicyOutput +] +MODIFY_VERIFIED_ACCESS_GROUP: APIOperation[ + ModifyVerifiedAccessGroupInput, ModifyVerifiedAccessGroupOutput +] +MODIFY_VERIFIED_ACCESS_GROUP_POLICY: APIOperation[ + ModifyVerifiedAccessGroupPolicyInput, ModifyVerifiedAccessGroupPolicyOutput +] +MODIFY_VERIFIED_ACCESS_INSTANCE: APIOperation[ + ModifyVerifiedAccessInstanceInput, ModifyVerifiedAccessInstanceOutput +] +MODIFY_VERIFIED_ACCESS_INSTANCE_LOGGING_CONFIGURATION: APIOperation[ + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, +] +MODIFY_VERIFIED_ACCESS_TRUST_PROVIDER: APIOperation[ + ModifyVerifiedAccessTrustProviderInput, ModifyVerifiedAccessTrustProviderOutput +] +MODIFY_VOLUME: APIOperation[ModifyVolumeInput, ModifyVolumeOutput] +MODIFY_VOLUME_ATTRIBUTE: APIOperation[ + ModifyVolumeAttributeInput, ModifyVolumeAttributeOutput +] +MODIFY_VPC_ATTRIBUTE: APIOperation[ModifyVpcAttributeInput, ModifyVpcAttributeOutput] +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION: APIOperation[ + ModifyVpcBlockPublicAccessExclusionInput, ModifyVpcBlockPublicAccessExclusionOutput +] +MODIFY_VPC_BLOCK_PUBLIC_ACCESS_OPTIONS: APIOperation[ + ModifyVpcBlockPublicAccessOptionsInput, ModifyVpcBlockPublicAccessOptionsOutput +] +MODIFY_VPC_ENCRYPTION_CONTROL: APIOperation[ + ModifyVpcEncryptionControlInput, ModifyVpcEncryptionControlOutput +] +MODIFY_VPC_ENDPOINT: APIOperation[ModifyVpcEndpointInput, ModifyVpcEndpointOutput] +MODIFY_VPC_ENDPOINT_CONNECTION_NOTIFICATION: APIOperation[ + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, +] +MODIFY_VPC_ENDPOINT_PAYER_RESPONSIBILITY: APIOperation[ + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, +] +MODIFY_VPC_ENDPOINT_SERVICE_CONFIGURATION: APIOperation[ + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, +] +MODIFY_VPC_ENDPOINT_SERVICE_PAYER_RESPONSIBILITY: APIOperation[ + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, +] +MODIFY_VPC_ENDPOINT_SERVICE_PERMISSIONS: APIOperation[ + ModifyVpcEndpointServicePermissionsInput, ModifyVpcEndpointServicePermissionsOutput +] +MODIFY_VPC_PEERING_CONNECTION_OPTIONS: APIOperation[ + ModifyVpcPeeringConnectionOptionsInput, ModifyVpcPeeringConnectionOptionsOutput +] +MODIFY_VPC_TENANCY: APIOperation[ModifyVpcTenancyInput, ModifyVpcTenancyOutput] +MODIFY_VPN_CONNECTION: APIOperation[ModifyVpnConnectionInput, ModifyVpnConnectionOutput] +MODIFY_VPN_CONNECTION_OPTIONS: APIOperation[ + ModifyVpnConnectionOptionsInput, ModifyVpnConnectionOptionsOutput +] +MODIFY_VPN_TUNNEL_CERTIFICATE: APIOperation[ + ModifyVpnTunnelCertificateInput, ModifyVpnTunnelCertificateOutput +] +MODIFY_VPN_TUNNEL_OPTIONS: APIOperation[ + ModifyVpnTunnelOptionsInput, ModifyVpnTunnelOptionsOutput +] +MONITOR_INSTANCES: APIOperation[MonitorInstancesInput, MonitorInstancesOutput] +MOVE_ADDRESS_TO_VPC: APIOperation[MoveAddressToVpcInput, MoveAddressToVpcOutput] +MOVE_BYOIP_CIDR_TO_IPAM: APIOperation[ + MoveByoipCidrToIpamInput, MoveByoipCidrToIpamOutput +] +MOVE_CAPACITY_RESERVATION_INSTANCES: APIOperation[ + MoveCapacityReservationInstancesInput, MoveCapacityReservationInstancesOutput +] +PROVISION_BYOIP_CIDR: APIOperation[ProvisionByoipCidrInput, ProvisionByoipCidrOutput] +PROVISION_IPAM_BYOASN: APIOperation[ProvisionIpamByoasnInput, ProvisionIpamByoasnOutput] +PROVISION_IPAM_POOL_CIDR: APIOperation[ + ProvisionIpamPoolCidrInput, ProvisionIpamPoolCidrOutput +] +PROVISION_PUBLIC_IPV4_POOL_CIDR: APIOperation[ + ProvisionPublicIpv4PoolCidrInput, ProvisionPublicIpv4PoolCidrOutput +] +PURCHASE_CAPACITY_BLOCK: APIOperation[ + PurchaseCapacityBlockInput, PurchaseCapacityBlockOutput +] +PURCHASE_CAPACITY_BLOCK_EXTENSION: APIOperation[ + PurchaseCapacityBlockExtensionInput, PurchaseCapacityBlockExtensionOutput +] +PURCHASE_HOST_RESERVATION: APIOperation[ + PurchaseHostReservationInput, PurchaseHostReservationOutput +] +PURCHASE_RESERVED_INSTANCES_OFFERING: APIOperation[ + PurchaseReservedInstancesOfferingInput, PurchaseReservedInstancesOfferingOutput +] +PURCHASE_SCHEDULED_INSTANCES: APIOperation[ + PurchaseScheduledInstancesInput, PurchaseScheduledInstancesOutput +] +REBOOT_INSTANCES: APIOperation[RebootInstancesInput, RebootInstancesOutput] +REGISTER_IMAGE: APIOperation[RegisterImageInput, RegisterImageOutput] +REGISTER_INSTANCE_EVENT_NOTIFICATION_ATTRIBUTES: APIOperation[ + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, +] +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_MEMBERS: APIOperation[ + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, +] +REGISTER_TRANSIT_GATEWAY_MULTICAST_GROUP_SOURCES: APIOperation[ + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, +] +REJECT_CAPACITY_RESERVATION_BILLING_OWNERSHIP: APIOperation[ + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, +] +REJECT_TRANSIT_GATEWAY_CLIENT_VPN_ATTACHMENT: APIOperation[ + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, +] +REJECT_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ASSOCIATIONS: APIOperation[ + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, +] +REJECT_TRANSIT_GATEWAY_PEERING_ATTACHMENT: APIOperation[ + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, +] +REJECT_TRANSIT_GATEWAY_VPC_ATTACHMENT: APIOperation[ + RejectTransitGatewayVpcAttachmentInput, RejectTransitGatewayVpcAttachmentOutput +] +REJECT_VPC_ENDPOINT_CONNECTIONS: APIOperation[ + RejectVpcEndpointConnectionsInput, RejectVpcEndpointConnectionsOutput +] +REJECT_VPC_PEERING_CONNECTION: APIOperation[ + RejectVpcPeeringConnectionInput, RejectVpcPeeringConnectionOutput +] +RELEASE_ADDRESS: APIOperation[ReleaseAddressInput, ReleaseAddressOutput] +RELEASE_HOSTS: APIOperation[ReleaseHostsInput, ReleaseHostsOutput] +RELEASE_IPAM_POOL_ALLOCATION: APIOperation[ + ReleaseIpamPoolAllocationInput, ReleaseIpamPoolAllocationOutput +] +REPLACE_IAM_INSTANCE_PROFILE_ASSOCIATION: APIOperation[ + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, +] +REPLACE_IMAGE_CRITERIA_IN_ALLOWED_IMAGES_SETTINGS: APIOperation[ + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, +] +REPLACE_IMAGE_INSTANCE_TYPE_SPECIFICATION: APIOperation[ + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, +] +REPLACE_NETWORK_ACL_ASSOCIATION: APIOperation[ + ReplaceNetworkAclAssociationInput, ReplaceNetworkAclAssociationOutput +] +REPLACE_NETWORK_ACL_ENTRY: APIOperation[ + ReplaceNetworkAclEntryInput, ReplaceNetworkAclEntryOutput +] +REPLACE_ROUTE: APIOperation[ReplaceRouteInput, ReplaceRouteOutput] +REPLACE_ROUTE_TABLE_ASSOCIATION: APIOperation[ + ReplaceRouteTableAssociationInput, ReplaceRouteTableAssociationOutput +] +REPLACE_TRANSIT_GATEWAY_ROUTE: APIOperation[ + ReplaceTransitGatewayRouteInput, ReplaceTransitGatewayRouteOutput +] +REPLACE_VPN_TUNNEL: APIOperation[ReplaceVpnTunnelInput, ReplaceVpnTunnelOutput] +REPORT_INSTANCE_STATUS: APIOperation[ + ReportInstanceStatusInput, ReportInstanceStatusOutput +] +REQUEST_SPOT_FLEET: APIOperation[RequestSpotFleetInput, RequestSpotFleetOutput] +REQUEST_SPOT_INSTANCES: APIOperation[ + RequestSpotInstancesInput, RequestSpotInstancesOutput +] +RESET_ADDRESS_ATTRIBUTE: APIOperation[ + ResetAddressAttributeInput, ResetAddressAttributeOutput +] +RESET_EBS_DEFAULT_KMS_KEY_ID: APIOperation[ + ResetEbsDefaultKmsKeyIdInput, ResetEbsDefaultKmsKeyIdOutput +] +RESET_FPGA_IMAGE_ATTRIBUTE: APIOperation[ + ResetFpgaImageAttributeInput, ResetFpgaImageAttributeOutput +] +RESET_IMAGE_ATTRIBUTE: APIOperation[ResetImageAttributeInput, ResetImageAttributeOutput] +RESET_INSTANCE_ATTRIBUTE: APIOperation[ + ResetInstanceAttributeInput, ResetInstanceAttributeOutput +] +RESET_NETWORK_INTERFACE_ATTRIBUTE: APIOperation[ + ResetNetworkInterfaceAttributeInput, ResetNetworkInterfaceAttributeOutput +] +RESET_SNAPSHOT_ATTRIBUTE: APIOperation[ + ResetSnapshotAttributeInput, ResetSnapshotAttributeOutput +] +RESTORE_ADDRESS_TO_CLASSIC: APIOperation[ + RestoreAddressToClassicInput, RestoreAddressToClassicOutput +] +RESTORE_IMAGE_FROM_RECYCLE_BIN: APIOperation[ + RestoreImageFromRecycleBinInput, RestoreImageFromRecycleBinOutput +] +RESTORE_MANAGED_PREFIX_LIST_VERSION: APIOperation[ + RestoreManagedPrefixListVersionInput, RestoreManagedPrefixListVersionOutput +] +RESTORE_SNAPSHOT_FROM_RECYCLE_BIN: APIOperation[ + RestoreSnapshotFromRecycleBinInput, RestoreSnapshotFromRecycleBinOutput +] +RESTORE_SNAPSHOT_TIER: APIOperation[RestoreSnapshotTierInput, RestoreSnapshotTierOutput] +RESTORE_VOLUME_FROM_RECYCLE_BIN: APIOperation[ + RestoreVolumeFromRecycleBinInput, RestoreVolumeFromRecycleBinOutput +] +REVOKE_CLIENT_VPN_INGRESS: APIOperation[ + RevokeClientVpnIngressInput, RevokeClientVpnIngressOutput +] +REVOKE_SECURITY_GROUP_EGRESS: APIOperation[ + RevokeSecurityGroupEgressInput, RevokeSecurityGroupEgressOutput +] +REVOKE_SECURITY_GROUP_INGRESS: APIOperation[ + RevokeSecurityGroupIngressInput, RevokeSecurityGroupIngressOutput +] +RUN_INSTANCES: APIOperation[RunInstancesInput, RunInstancesOutput] +RUN_SCHEDULED_INSTANCES: APIOperation[ + RunScheduledInstancesInput, RunScheduledInstancesOutput +] +SEARCH_LOCAL_GATEWAY_ROUTES: APIOperation[ + SearchLocalGatewayRoutesInput, SearchLocalGatewayRoutesOutput +] +SEARCH_TRANSIT_GATEWAY_MULTICAST_GROUPS: APIOperation[ + SearchTransitGatewayMulticastGroupsInput, SearchTransitGatewayMulticastGroupsOutput +] +SEARCH_TRANSIT_GATEWAY_ROUTES: APIOperation[ + SearchTransitGatewayRoutesInput, SearchTransitGatewayRoutesOutput +] +SEND_DIAGNOSTIC_INTERRUPT: APIOperation[ + SendDiagnosticInterruptInput, SendDiagnosticInterruptOutput +] +START_DECLARATIVE_POLICIES_REPORT: APIOperation[ + StartDeclarativePoliciesReportInput, StartDeclarativePoliciesReportOutput +] +START_INSTANCES: APIOperation[StartInstancesInput, StartInstancesOutput] +START_NETWORK_INSIGHTS_ACCESS_SCOPE_ANALYSIS: APIOperation[ + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, +] +START_NETWORK_INSIGHTS_ANALYSIS: APIOperation[ + StartNetworkInsightsAnalysisInput, StartNetworkInsightsAnalysisOutput +] +START_VPC_ENDPOINT_SERVICE_PRIVATE_DNS_VERIFICATION: APIOperation[ + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, +] +STOP_INSTANCES: APIOperation[StopInstancesInput, StopInstancesOutput] +TERMINATE_CLIENT_VPN_CONNECTIONS: APIOperation[ + TerminateClientVpnConnectionsInput, TerminateClientVpnConnectionsOutput +] +TERMINATE_INSTANCES: APIOperation[TerminateInstancesInput, TerminateInstancesOutput] +UNASSIGN_IPV6_ADDRESSES: APIOperation[ + UnassignIpv6AddressesInput, UnassignIpv6AddressesOutput +] +UNASSIGN_PRIVATE_IP_ADDRESSES: APIOperation[ + UnassignPrivateIpAddressesInput, UnassignPrivateIpAddressesOutput +] +UNASSIGN_PRIVATE_NAT_GATEWAY_ADDRESS: APIOperation[ + UnassignPrivateNatGatewayAddressInput, UnassignPrivateNatGatewayAddressOutput +] +UNLOCK_SNAPSHOT: APIOperation[UnlockSnapshotInput, UnlockSnapshotOutput] +UNMONITOR_INSTANCES: APIOperation[UnmonitorInstancesInput, UnmonitorInstancesOutput] +UPDATE_CAPACITY_MANAGER_MONITORED_TAG_KEYS: APIOperation[ + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, +] +UPDATE_CAPACITY_MANAGER_ORGANIZATIONS_ACCESS: APIOperation[ + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, +] +UPDATE_INTERRUPTIBLE_CAPACITY_RESERVATION_ALLOCATION: APIOperation[ + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, +] +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_EGRESS: APIOperation[ + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, +] +UPDATE_SECURITY_GROUP_RULE_DESCRIPTIONS_INGRESS: APIOperation[ + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, +] +VALIDATE_SECURITY_GROUP_QUOTAS_FOR_INTERFACE: APIOperation[ + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, +] +WITHDRAW_BYOIP_CIDR: APIOperation[WithdrawByoipCidrInput, WithdrawByoipCidrOutput] diff --git a/clients/aws-sdk-ec2/src/aws_sdk_ec2/user_agent.py b/clients/aws-sdk-ec2/src/aws_sdk_ec2/user_agent.py new file mode 100644 index 00000000..8b3210b3 --- /dev/null +++ b/clients/aws-sdk-ec2/src/aws_sdk_ec2/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import EC2Config + + +def aws_user_agent_plugin(config: EC2Config): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="EC2", + ) + ) diff --git a/clients/aws-sdk-ec2/tests/__init__.py b/clients/aws-sdk-ec2/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-ec2/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-ec2/tests/_typecheck.py b/clients/aws-sdk-ec2/tests/_typecheck.py new file mode 100644 index 00000000..f7d5078c --- /dev/null +++ b/clients/aws-sdk-ec2/tests/_typecheck.py @@ -0,0 +1,5219 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_ec2.models import ( + AcceleratorCount, + AcceleratorCountRequest, + AcceleratorTotalMemoryMiB, + AcceleratorTotalMemoryMiBRequest, + AcceptAddressTransferInput, + AcceptAddressTransferOutput, + AcceptCapacityReservationBillingOwnershipInput, + AcceptCapacityReservationBillingOwnershipOutput, + AcceptReservedInstancesExchangeQuoteInput, + AcceptReservedInstancesExchangeQuoteOutput, + AcceptTransitGatewayClientVpnAttachmentInput, + AcceptTransitGatewayClientVpnAttachmentOutput, + AcceptTransitGatewayMulticastDomainAssociationsInput, + AcceptTransitGatewayMulticastDomainAssociationsOutput, + AcceptTransitGatewayPeeringAttachmentInput, + AcceptTransitGatewayPeeringAttachmentOutput, + AcceptTransitGatewayVpcAttachmentInput, + AcceptTransitGatewayVpcAttachmentOutput, + AcceptVpcEndpointConnectionsInput, + AcceptVpcEndpointConnectionsOutput, + AcceptVpcPeeringConnectionInput, + AcceptVpcPeeringConnectionOutput, + AccessScopeAnalysisFinding, + AccessScopePath, + AccessScopePathRequest, + AccountAttribute, + AccountAttributeValue, + AccountVpcEncryptionControl, + AccountVpcEncryptionControlExclusions, + ActiveInstance, + ActiveVpnTunnelStatus, + AddIpamOperatingRegion, + AddIpamOrganizationalUnitExclusion, + AddPrefixListEntry, + AddedPrincipal, + AdditionalDetail, + Address, + AddressAttribute, + AddressTransfer, + AdvertiseByoipCidrInput, + AdvertiseByoipCidrOutput, + AllocateAddressInput, + AllocateAddressOutput, + AllocateHostsInput, + AllocateHostsOutput, + AllocateIpamPoolCidrInput, + AllocateIpamPoolCidrOutput, + AllowedPrincipal, + AlternatePathHint, + AnalysisAclRule, + AnalysisComponent, + AnalysisLoadBalancerListener, + AnalysisLoadBalancerTarget, + AnalysisPacketHeader, + AnalysisRouteTableRoute, + AnalysisSecurityGroupRule, + AnalysisTransitGatewayPolicyTableEntry, + ApplicationStatus, + ApplicationStatusCheckAssociationObject, + ApplicationStatusCheckResponseObject, + ApplicationStatusDetail, + ApplicationStatusReason, + ApplicationStatusSummary, + ApplicationStatusesResponseType, + ApplySecurityGroupsToClientVpnTargetNetworkInput, + ApplySecurityGroupsToClientVpnTargetNetworkOutput, + AsnAssociation, + AsnAuthorizationContext, + AssignIpv6AddressesInput, + AssignIpv6AddressesOutput, + AssignPrivateIpAddressesInput, + AssignPrivateIpAddressesOutput, + AssignPrivateNatGatewayAddressInput, + AssignPrivateNatGatewayAddressOutput, + AssignedPrivateIpAddress, + AssociateAddressInput, + AssociateAddressOutput, + AssociateApplicationStatusCheckInput, + AssociateApplicationStatusCheckOutput, + AssociateCapacityReservationBillingOwnerInput, + AssociateCapacityReservationBillingOwnerOutput, + AssociateClientVpnTargetNetworkInput, + AssociateClientVpnTargetNetworkOutput, + AssociateDhcpOptionsInput, + AssociateDhcpOptionsOutput, + AssociateEnclaveCertificateIamRoleInput, + AssociateEnclaveCertificateIamRoleOutput, + AssociateIamInstanceProfileInput, + AssociateIamInstanceProfileOutput, + AssociateInstanceEventWindowInput, + AssociateInstanceEventWindowOutput, + AssociateIpamByoasnInput, + AssociateIpamByoasnOutput, + AssociateIpamResourceDiscoveryInput, + AssociateIpamResourceDiscoveryOutput, + AssociateNatGatewayAddressInput, + AssociateNatGatewayAddressOutput, + AssociateRouteServerInput, + AssociateRouteServerOutput, + AssociateRouteTableInput, + AssociateRouteTableOutput, + AssociateSecurityGroupVpcInput, + AssociateSecurityGroupVpcOutput, + AssociateSubnetCidrBlockInput, + AssociateSubnetCidrBlockOutput, + AssociateTransitGatewayMulticastDomainInput, + AssociateTransitGatewayMulticastDomainOutput, + AssociateTransitGatewayPolicyTableInput, + AssociateTransitGatewayPolicyTableOutput, + AssociateTransitGatewayRouteTableInput, + AssociateTransitGatewayRouteTableOutput, + AssociateTrunkInterfaceInput, + AssociateTrunkInterfaceOutput, + AssociateVpcCidrBlockInput, + AssociateVpcCidrBlockOutput, + AssociatedRole, + AssociatedTargetNetwork, + AssociationStatus, + AthenaIntegration, + AttachClassicLinkVpcInput, + AttachClassicLinkVpcOutput, + AttachImageWatermarkInput, + AttachImageWatermarkOutput, + AttachInternetGatewayInput, + AttachInternetGatewayOutput, + AttachNetworkInterfaceInput, + AttachNetworkInterfaceOutput, + AttachVerifiedAccessTrustProviderInput, + AttachVerifiedAccessTrustProviderOutput, + AttachVolumeInput, + AttachVolumeOutput, + AttachVpnGatewayInput, + AttachVpnGatewayOutput, + AttachmentEnaSrdSpecification, + AttachmentEnaSrdUdpSpecification, + AttributeBooleanValue, + AttributeSummary, + AttributeValue, + AuthorizationRule, + AuthorizeClientVpnIngressInput, + AuthorizeClientVpnIngressOutput, + AuthorizeSecurityGroupEgressInput, + AuthorizeSecurityGroupEgressOutput, + AuthorizeSecurityGroupIngressInput, + AuthorizeSecurityGroupIngressOutput, + AvailabilityZone, + AvailabilityZoneAddress, + AvailabilityZoneGeography, + AvailabilityZoneMessage, + AvailabilityZoneSubGeography, + AvailableCapacity, + BaselineEbsBandwidthMbps, + BaselineEbsBandwidthMbpsRequest, + BaselinePerformanceFactors, + BaselinePerformanceFactorsRequest, + BatchModifyIpamRoutingPolicyRegistrationsInput, + BatchModifyIpamRoutingPolicyRegistrationsOutput, + BlockDeviceMapping, + BlockDeviceMappingResponse, + BlockPublicAccessStates, + BundleInstanceInput, + BundleInstanceOutput, + BundleTask, + BundleTaskError, + Byoasn, + ByoipCidr, + CancelBundleTaskInput, + CancelBundleTaskOutput, + CancelCapacityReservationFleetError, + CancelCapacityReservationFleetsInput, + CancelCapacityReservationFleetsOutput, + CancelCapacityReservationInput, + CancelCapacityReservationOutput, + CancelConversionTaskInput, + CancelConversionTaskOutput, + CancelDeclarativePoliciesReportInput, + CancelDeclarativePoliciesReportOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CancelImageLaunchPermissionInput, + CancelImageLaunchPermissionOutput, + CancelImportTaskInput, + CancelImportTaskOutput, + CancelReservedInstancesListingInput, + CancelReservedInstancesListingOutput, + CancelSpotFleetRequestsError, + CancelSpotFleetRequestsErrorItem, + CancelSpotFleetRequestsInput, + CancelSpotFleetRequestsOutput, + CancelSpotFleetRequestsSuccessItem, + CancelSpotInstanceRequestsInput, + CancelSpotInstanceRequestsOutput, + CancellationTerms, + CancelledSpotInstanceRequest, + CapacityAllocation, + CapacityAllocationMetadataEntry, + CapacityBlock, + CapacityBlockExtension, + CapacityBlockExtensionOffering, + CapacityBlockOffering, + CapacityBlockStatus, + CapacityManagerCondition, + CapacityManagerDataExportResponse, + CapacityManagerDimension, + CapacityManagerMonitoredTagKey, + CapacityManagerSupportabilityScore, + CapacityManagerTagDimension, + CapacityReservation, + CapacityReservationAdjustmentDetails, + CapacityReservationBillingRequest, + CapacityReservationCancellationQuote, + CapacityReservationCommitmentInfo, + CapacityReservationConfiguration, + CapacityReservationFleet, + CapacityReservationFleetCancellationState, + CapacityReservationGroup, + CapacityReservationInfo, + CapacityReservationModificationQuote, + CapacityReservationOptions, + CapacityReservationOptionsRequest, + CapacityReservationSpecification, + CapacityReservationSpecificationResponse, + CapacityReservationStatus, + CapacityReservationTarget, + CapacityReservationTargetResponse, + CapacityReservationTopology, + CarrierGateway, + CertificateAuthentication, + CertificateAuthenticationRequest, + CidrAuthorizationContext, + CidrBlock, + ClassicLinkDnsSupport, + ClassicLinkInstance, + ClassicLoadBalancer, + ClassicLoadBalancersConfig, + ClientCertificateRevocationListStatus, + ClientConnectOptions, + ClientConnectResponseOptions, + ClientData, + ClientLoginBannerOptions, + ClientLoginBannerResponseOptions, + ClientRouteEnforcementOptions, + ClientRouteEnforcementResponseOptions, + ClientVpnAuthentication, + ClientVpnAuthenticationRequest, + ClientVpnAuthorizationRuleStatus, + ClientVpnConnection, + ClientVpnConnectionStatus, + ClientVpnEndpoint, + ClientVpnEndpointAttributeStatus, + ClientVpnEndpointStatus, + ClientVpnRoute, + ClientVpnRouteStatus, + ClientVpnTrustProvider, + ClientVpnTrustProviderRequest, + CloudWatchLogOptions, + CloudWatchLogOptionsSpecification, + CoipAddressUsage, + CoipCidr, + CoipPool, + ConfirmProductInstanceInput, + ConfirmProductInstanceOutput, + ConnectionLogOptions, + ConnectionLogResponseOptions, + ConnectionNotification, + ConnectionTrackingConfiguration, + ConnectionTrackingSpecification, + ConnectionTrackingSpecificationRequest, + ConnectionTrackingSpecificationResponse, + ConversionTask, + CopyFpgaImageInput, + CopyFpgaImageOutput, + CopyImageInput, + CopyImageOutput, + CopySnapshotInput, + CopySnapshotOutput, + CopyVolumesInput, + CopyVolumesOutput, + CpuOptions, + CpuOptionsRequest, + CpuPerformanceFactor, + CpuPerformanceFactorRequest, + CreateApplicationStatusCheckInput, + CreateApplicationStatusCheckOutput, + CreateCapacityManagerDataExportInput, + CreateCapacityManagerDataExportOutput, + CreateCapacityReservationBySplittingInput, + CreateCapacityReservationBySplittingOutput, + CreateCapacityReservationCancellationQuoteInput, + CreateCapacityReservationCancellationQuoteOutput, + CreateCapacityReservationDateChangeQuoteInput, + CreateCapacityReservationDateChangeQuoteOutput, + CreateCapacityReservationFleetInput, + CreateCapacityReservationFleetOutput, + CreateCapacityReservationInput, + CreateCapacityReservationOutput, + CreateCarrierGatewayInput, + CreateCarrierGatewayOutput, + CreateClientVpnEndpointInput, + CreateClientVpnEndpointOutput, + CreateClientVpnRouteInput, + CreateClientVpnRouteOutput, + CreateCoipCidrInput, + CreateCoipCidrOutput, + CreateCoipPoolInput, + CreateCoipPoolOutput, + CreateCustomerGatewayInput, + CreateCustomerGatewayOutput, + CreateDefaultSubnetInput, + CreateDefaultSubnetOutput, + CreateDefaultVpcInput, + CreateDefaultVpcOutput, + CreateDelegateMacVolumeOwnershipTaskInput, + CreateDelegateMacVolumeOwnershipTaskOutput, + CreateDhcpOptionsInput, + CreateDhcpOptionsOutput, + CreateEgressOnlyInternetGatewayInput, + CreateEgressOnlyInternetGatewayOutput, + CreateFleetError, + CreateFleetInput, + CreateFleetInstance, + CreateFleetOutput, + CreateFlowLogsInput, + CreateFlowLogsOutput, + CreateFpgaImageInput, + CreateFpgaImageOutput, + CreateImageInput, + CreateImageOutput, + CreateImageUsageReportInput, + CreateImageUsageReportOutput, + CreateInstanceConnectEndpointInput, + CreateInstanceConnectEndpointOutput, + CreateInstanceEventWindowInput, + CreateInstanceEventWindowOutput, + CreateInstanceExportTaskInput, + CreateInstanceExportTaskOutput, + CreateInternetGatewayInput, + CreateInternetGatewayOutput, + CreateInterruptibleCapacityReservationAllocationInput, + CreateInterruptibleCapacityReservationAllocationOutput, + CreateIpamExternalResourceVerificationTokenInput, + CreateIpamExternalResourceVerificationTokenOutput, + CreateIpamInput, + CreateIpamInternetRegistryAssociationInput, + CreateIpamInternetRegistryAssociationOutput, + CreateIpamOutput, + CreateIpamPolicyInput, + CreateIpamPolicyOutput, + CreateIpamPoolInput, + CreateIpamPoolOutput, + CreateIpamPrefixListResolverInput, + CreateIpamPrefixListResolverOutput, + CreateIpamPrefixListResolverTargetInput, + CreateIpamPrefixListResolverTargetOutput, + CreateIpamResourceDiscoveryInput, + CreateIpamResourceDiscoveryOutput, + CreateIpamRoutingPolicyRegistrationInput, + CreateIpamRoutingPolicyRegistrationOutput, + CreateIpamScopeInput, + CreateIpamScopeOutput, + CreateKeyPairInput, + CreateKeyPairOutput, + CreateLaunchTemplateInput, + CreateLaunchTemplateOutput, + CreateLaunchTemplateVersionInput, + CreateLaunchTemplateVersionOutput, + CreateLocalGatewayRouteInput, + CreateLocalGatewayRouteOutput, + CreateLocalGatewayRouteTableInput, + CreateLocalGatewayRouteTableOutput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + CreateLocalGatewayRouteTableVpcAssociationInput, + CreateLocalGatewayRouteTableVpcAssociationOutput, + CreateLocalGatewayVirtualInterfaceGroupInput, + CreateLocalGatewayVirtualInterfaceGroupOutput, + CreateLocalGatewayVirtualInterfaceInput, + CreateLocalGatewayVirtualInterfaceOutput, + CreateMacSystemIntegrityProtectionModificationTaskInput, + CreateMacSystemIntegrityProtectionModificationTaskOutput, + CreateManagedPrefixListInput, + CreateManagedPrefixListOutput, + CreateNatGatewayInput, + CreateNatGatewayOutput, + CreateNetworkAclEntryInput, + CreateNetworkAclEntryOutput, + CreateNetworkAclInput, + CreateNetworkAclOutput, + CreateNetworkInsightsAccessScopeInput, + CreateNetworkInsightsAccessScopeOutput, + CreateNetworkInsightsPathInput, + CreateNetworkInsightsPathOutput, + CreateNetworkInterfaceInput, + CreateNetworkInterfaceOutput, + CreateNetworkInterfacePermissionInput, + CreateNetworkInterfacePermissionOutput, + CreatePlacementGroupInput, + CreatePlacementGroupOutput, + CreatePublicIpv4PoolInput, + CreatePublicIpv4PoolOutput, + CreateReplaceRootVolumeTaskInput, + CreateReplaceRootVolumeTaskOutput, + CreateReservedInstancesListingInput, + CreateReservedInstancesListingOutput, + CreateRestoreImageTaskInput, + CreateRestoreImageTaskOutput, + CreateRouteInput, + CreateRouteOutput, + CreateRouteServerEndpointInput, + CreateRouteServerEndpointOutput, + CreateRouteServerInput, + CreateRouteServerOutput, + CreateRouteServerPeerInput, + CreateRouteServerPeerOutput, + CreateRouteTableInput, + CreateRouteTableOutput, + CreateSecondaryNetworkInput, + CreateSecondaryNetworkOutput, + CreateSecondarySubnetInput, + CreateSecondarySubnetOutput, + CreateSecurityGroupInput, + CreateSecurityGroupOutput, + CreateSnapshotInput, + CreateSnapshotOutput, + CreateSnapshotsInput, + CreateSnapshotsOutput, + CreateSpotDatafeedSubscriptionInput, + CreateSpotDatafeedSubscriptionOutput, + CreateStoreImageTaskInput, + CreateStoreImageTaskOutput, + CreateSubnetCidrReservationInput, + CreateSubnetCidrReservationOutput, + CreateSubnetInput, + CreateSubnetOutput, + CreateTagsInput, + CreateTagsOutput, + CreateTrafficMirrorFilterInput, + CreateTrafficMirrorFilterOutput, + CreateTrafficMirrorFilterRuleInput, + CreateTrafficMirrorFilterRuleOutput, + CreateTrafficMirrorSessionInput, + CreateTrafficMirrorSessionOutput, + CreateTrafficMirrorTargetInput, + CreateTrafficMirrorTargetOutput, + CreateTransitGatewayConnectInput, + CreateTransitGatewayConnectOutput, + CreateTransitGatewayConnectPeerInput, + CreateTransitGatewayConnectPeerOutput, + CreateTransitGatewayConnectRequestOptions, + CreateTransitGatewayInput, + CreateTransitGatewayMeteringPolicyEntryInput, + CreateTransitGatewayMeteringPolicyEntryOutput, + CreateTransitGatewayMeteringPolicyInput, + CreateTransitGatewayMeteringPolicyOutput, + CreateTransitGatewayMulticastDomainInput, + CreateTransitGatewayMulticastDomainOutput, + CreateTransitGatewayMulticastDomainRequestOptions, + CreateTransitGatewayOutput, + CreateTransitGatewayPeeringAttachmentInput, + CreateTransitGatewayPeeringAttachmentOutput, + CreateTransitGatewayPeeringAttachmentRequestOptions, + CreateTransitGatewayPolicyTableEntryInput, + CreateTransitGatewayPolicyTableEntryOutput, + CreateTransitGatewayPolicyTableInput, + CreateTransitGatewayPolicyTableOutput, + CreateTransitGatewayPrefixListReferenceInput, + CreateTransitGatewayPrefixListReferenceOutput, + CreateTransitGatewayRouteInput, + CreateTransitGatewayRouteOutput, + CreateTransitGatewayRouteTableAnnouncementInput, + CreateTransitGatewayRouteTableAnnouncementOutput, + CreateTransitGatewayRouteTableInput, + CreateTransitGatewayRouteTableOutput, + CreateTransitGatewayVpcAttachmentInput, + CreateTransitGatewayVpcAttachmentOutput, + CreateTransitGatewayVpcAttachmentRequestOptions, + CreateVerifiedAccessEndpointCidrOptions, + CreateVerifiedAccessEndpointEniOptions, + CreateVerifiedAccessEndpointInput, + CreateVerifiedAccessEndpointLoadBalancerOptions, + CreateVerifiedAccessEndpointOutput, + CreateVerifiedAccessEndpointPortRange, + CreateVerifiedAccessEndpointRdsOptions, + CreateVerifiedAccessGroupInput, + CreateVerifiedAccessGroupOutput, + CreateVerifiedAccessInstanceInput, + CreateVerifiedAccessInstanceOutput, + CreateVerifiedAccessNativeApplicationOidcOptions, + CreateVerifiedAccessTrustProviderDeviceOptions, + CreateVerifiedAccessTrustProviderInput, + CreateVerifiedAccessTrustProviderOidcOptions, + CreateVerifiedAccessTrustProviderOutput, + CreateVolumeInput, + CreateVolumeOutput, + CreateVolumePermission, + CreateVolumePermissionModifications, + CreateVpcBlockPublicAccessExclusionInput, + CreateVpcBlockPublicAccessExclusionOutput, + CreateVpcEncryptionControlInput, + CreateVpcEncryptionControlOutput, + CreateVpcEndpointConnectionNotificationInput, + CreateVpcEndpointConnectionNotificationOutput, + CreateVpcEndpointInput, + CreateVpcEndpointOutput, + CreateVpcEndpointServiceConfigurationInput, + CreateVpcEndpointServiceConfigurationOutput, + CreateVpcInput, + CreateVpcOutput, + CreateVpcPeeringConnectionInput, + CreateVpcPeeringConnectionOutput, + CreateVpnConcentratorInput, + CreateVpnConcentratorOutput, + CreateVpnConnectionInput, + CreateVpnConnectionOutput, + CreateVpnConnectionRouteInput, + CreateVpnConnectionRouteOutput, + CreateVpnGatewayInput, + CreateVpnGatewayOutput, + CreationDateCondition, + CreationDateConditionRequest, + CreditSpecification, + CreditSpecificationRequest, + CustomTagKeyValueRequestPair, + CustomTagKeyValueResponsePair, + CustomerGateway, + DataQuery, + DataResponse, + DeclarativePoliciesReport, + DefaultConnectionTrackingConfiguration, + DeleteApplicationStatusCheckInput, + DeleteApplicationStatusCheckOutput, + DeleteCapacityManagerDataExportInput, + DeleteCapacityManagerDataExportOutput, + DeleteCarrierGatewayInput, + DeleteCarrierGatewayOutput, + DeleteClientVpnEndpointAuthorizationPolicyInput, + DeleteClientVpnEndpointAuthorizationPolicyOutput, + DeleteClientVpnEndpointInput, + DeleteClientVpnEndpointOutput, + DeleteClientVpnRouteInput, + DeleteClientVpnRouteOutput, + DeleteCoipCidrInput, + DeleteCoipCidrOutput, + DeleteCoipPoolInput, + DeleteCoipPoolOutput, + DeleteCustomerGatewayInput, + DeleteCustomerGatewayOutput, + DeleteDhcpOptionsInput, + DeleteDhcpOptionsOutput, + DeleteEgressOnlyInternetGatewayInput, + DeleteEgressOnlyInternetGatewayOutput, + DeleteFleetError, + DeleteFleetErrorItem, + DeleteFleetSuccessItem, + DeleteFleetsInput, + DeleteFleetsOutput, + DeleteFlowLogsInput, + DeleteFlowLogsOutput, + DeleteFpgaImageInput, + DeleteFpgaImageOutput, + DeleteImageUsageReportInput, + DeleteImageUsageReportOutput, + DeleteInstanceConnectEndpointInput, + DeleteInstanceConnectEndpointOutput, + DeleteInstanceEventWindowInput, + DeleteInstanceEventWindowOutput, + DeleteInternetGatewayInput, + DeleteInternetGatewayOutput, + DeleteIpamExternalResourceVerificationTokenInput, + DeleteIpamExternalResourceVerificationTokenOutput, + DeleteIpamInput, + DeleteIpamInternetRegistryAssociationInput, + DeleteIpamInternetRegistryAssociationOutput, + DeleteIpamOutput, + DeleteIpamPolicyInput, + DeleteIpamPolicyOutput, + DeleteIpamPoolInput, + DeleteIpamPoolOutput, + DeleteIpamPrefixListResolverInput, + DeleteIpamPrefixListResolverOutput, + DeleteIpamPrefixListResolverTargetInput, + DeleteIpamPrefixListResolverTargetOutput, + DeleteIpamResourceDiscoveryInput, + DeleteIpamResourceDiscoveryOutput, + DeleteIpamRoutingPolicyRegistrationInput, + DeleteIpamRoutingPolicyRegistrationOutput, + DeleteIpamScopeInput, + DeleteIpamScopeOutput, + DeleteKeyPairInput, + DeleteKeyPairOutput, + DeleteLaunchTemplateInput, + DeleteLaunchTemplateOutput, + DeleteLaunchTemplateVersionsInput, + DeleteLaunchTemplateVersionsOutput, + DeleteLaunchTemplateVersionsResponseErrorItem, + DeleteLaunchTemplateVersionsResponseSuccessItem, + DeleteLocalGatewayRouteInput, + DeleteLocalGatewayRouteOutput, + DeleteLocalGatewayRouteTableInput, + DeleteLocalGatewayRouteTableOutput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, + DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, + DeleteLocalGatewayRouteTableVpcAssociationInput, + DeleteLocalGatewayRouteTableVpcAssociationOutput, + DeleteLocalGatewayVirtualInterfaceGroupInput, + DeleteLocalGatewayVirtualInterfaceGroupOutput, + DeleteLocalGatewayVirtualInterfaceInput, + DeleteLocalGatewayVirtualInterfaceOutput, + DeleteManagedPrefixListInput, + DeleteManagedPrefixListOutput, + DeleteNatGatewayInput, + DeleteNatGatewayOutput, + DeleteNetworkAclEntryInput, + DeleteNetworkAclEntryOutput, + DeleteNetworkAclInput, + DeleteNetworkAclOutput, + DeleteNetworkInsightsAccessScopeAnalysisInput, + DeleteNetworkInsightsAccessScopeAnalysisOutput, + DeleteNetworkInsightsAccessScopeInput, + DeleteNetworkInsightsAccessScopeOutput, + DeleteNetworkInsightsAnalysisInput, + DeleteNetworkInsightsAnalysisOutput, + DeleteNetworkInsightsPathInput, + DeleteNetworkInsightsPathOutput, + DeleteNetworkInterfaceInput, + DeleteNetworkInterfaceOutput, + DeleteNetworkInterfacePermissionInput, + DeleteNetworkInterfacePermissionOutput, + DeletePlacementGroupInput, + DeletePlacementGroupOutput, + DeletePublicIpv4PoolInput, + DeletePublicIpv4PoolOutput, + DeleteQueuedReservedInstancesError, + DeleteQueuedReservedInstancesInput, + DeleteQueuedReservedInstancesOutput, + DeleteRouteInput, + DeleteRouteOutput, + DeleteRouteServerEndpointInput, + DeleteRouteServerEndpointOutput, + DeleteRouteServerInput, + DeleteRouteServerOutput, + DeleteRouteServerPeerInput, + DeleteRouteServerPeerOutput, + DeleteRouteTableInput, + DeleteRouteTableOutput, + DeleteSecondaryNetworkInput, + DeleteSecondaryNetworkOutput, + DeleteSecondarySubnetInput, + DeleteSecondarySubnetOutput, + DeleteSecurityGroupInput, + DeleteSecurityGroupOutput, + DeleteSnapshotInput, + DeleteSnapshotOutput, + DeleteSnapshotReturnCode, + DeleteSpotDatafeedSubscriptionInput, + DeleteSpotDatafeedSubscriptionOutput, + DeleteSubnetCidrReservationInput, + DeleteSubnetCidrReservationOutput, + DeleteSubnetInput, + DeleteSubnetOutput, + DeleteTagsInput, + DeleteTagsOutput, + DeleteTrafficMirrorFilterInput, + DeleteTrafficMirrorFilterOutput, + DeleteTrafficMirrorFilterRuleInput, + DeleteTrafficMirrorFilterRuleOutput, + DeleteTrafficMirrorSessionInput, + DeleteTrafficMirrorSessionOutput, + DeleteTrafficMirrorTargetInput, + DeleteTrafficMirrorTargetOutput, + DeleteTransitGatewayClientVpnAttachmentInput, + DeleteTransitGatewayClientVpnAttachmentOutput, + DeleteTransitGatewayConnectInput, + DeleteTransitGatewayConnectOutput, + DeleteTransitGatewayConnectPeerInput, + DeleteTransitGatewayConnectPeerOutput, + DeleteTransitGatewayInput, + DeleteTransitGatewayMeteringPolicyEntryInput, + DeleteTransitGatewayMeteringPolicyEntryOutput, + DeleteTransitGatewayMeteringPolicyInput, + DeleteTransitGatewayMeteringPolicyOutput, + DeleteTransitGatewayMulticastDomainInput, + DeleteTransitGatewayMulticastDomainOutput, + DeleteTransitGatewayOutput, + DeleteTransitGatewayPeeringAttachmentInput, + DeleteTransitGatewayPeeringAttachmentOutput, + DeleteTransitGatewayPolicyTableEntryInput, + DeleteTransitGatewayPolicyTableEntryOutput, + DeleteTransitGatewayPolicyTableInput, + DeleteTransitGatewayPolicyTableOutput, + DeleteTransitGatewayPrefixListReferenceInput, + DeleteTransitGatewayPrefixListReferenceOutput, + DeleteTransitGatewayRouteInput, + DeleteTransitGatewayRouteOutput, + DeleteTransitGatewayRouteTableAnnouncementInput, + DeleteTransitGatewayRouteTableAnnouncementOutput, + DeleteTransitGatewayRouteTableInput, + DeleteTransitGatewayRouteTableOutput, + DeleteTransitGatewayVpcAttachmentInput, + DeleteTransitGatewayVpcAttachmentOutput, + DeleteVerifiedAccessEndpointInput, + DeleteVerifiedAccessEndpointOutput, + DeleteVerifiedAccessGroupInput, + DeleteVerifiedAccessGroupOutput, + DeleteVerifiedAccessInstanceInput, + DeleteVerifiedAccessInstanceOutput, + DeleteVerifiedAccessTrustProviderInput, + DeleteVerifiedAccessTrustProviderOutput, + DeleteVolumeInput, + DeleteVolumeOutput, + DeleteVpcBlockPublicAccessExclusionInput, + DeleteVpcBlockPublicAccessExclusionOutput, + DeleteVpcEncryptionControlInput, + DeleteVpcEncryptionControlOutput, + DeleteVpcEndpointConnectionNotificationsInput, + DeleteVpcEndpointConnectionNotificationsOutput, + DeleteVpcEndpointServiceConfigurationsInput, + DeleteVpcEndpointServiceConfigurationsOutput, + DeleteVpcEndpointsInput, + DeleteVpcEndpointsOutput, + DeleteVpcInput, + DeleteVpcOutput, + DeleteVpcPeeringConnectionInput, + DeleteVpcPeeringConnectionOutput, + DeleteVpnConcentratorInput, + DeleteVpnConcentratorOutput, + DeleteVpnConnectionInput, + DeleteVpnConnectionOutput, + DeleteVpnConnectionRouteInput, + DeleteVpnConnectionRouteOutput, + DeleteVpnGatewayInput, + DeleteVpnGatewayOutput, + DeprecationTimeCondition, + DeprecationTimeConditionRequest, + DeprovisionByoipCidrInput, + DeprovisionByoipCidrOutput, + DeprovisionIpamByoasnInput, + DeprovisionIpamByoasnOutput, + DeprovisionIpamPoolCidrInput, + DeprovisionIpamPoolCidrOutput, + DeprovisionPublicIpv4PoolCidrInput, + DeprovisionPublicIpv4PoolCidrOutput, + DeregisterImageInput, + DeregisterImageOutput, + DeregisterInstanceEventNotificationAttributesInput, + DeregisterInstanceEventNotificationAttributesOutput, + DeregisterInstanceTagAttributeRequest, + DeregisterTransitGatewayMulticastGroupMembersInput, + DeregisterTransitGatewayMulticastGroupMembersOutput, + DeregisterTransitGatewayMulticastGroupSourcesInput, + DeregisterTransitGatewayMulticastGroupSourcesOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeAccountVpcEncryptionControlInput, + DescribeAccountVpcEncryptionControlOutput, + DescribeAddressTransfersInput, + DescribeAddressTransfersOutput, + DescribeAddressesAttributeInput, + DescribeAddressesAttributeOutput, + DescribeAddressesInput, + DescribeAddressesOutput, + DescribeAggregateIdFormatInput, + DescribeAggregateIdFormatOutput, + DescribeApplicationStatusCheckAssociationsInput, + DescribeApplicationStatusCheckAssociationsOutput, + DescribeApplicationStatusChecksInput, + DescribeApplicationStatusChecksOutput, + DescribeApplicationStatusInput, + DescribeApplicationStatusOutput, + DescribeAvailabilityZonesInput, + DescribeAvailabilityZonesOutput, + DescribeAwsNetworkPerformanceMetricSubscriptionsInput, + DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, + DescribeBundleTasksInput, + DescribeBundleTasksOutput, + DescribeByoipCidrsInput, + DescribeByoipCidrsOutput, + DescribeCapacityBlockExtensionHistoryInput, + DescribeCapacityBlockExtensionHistoryOutput, + DescribeCapacityBlockExtensionOfferingsInput, + DescribeCapacityBlockExtensionOfferingsOutput, + DescribeCapacityBlockOfferingsInput, + DescribeCapacityBlockOfferingsOutput, + DescribeCapacityBlockStatusInput, + DescribeCapacityBlockStatusOutput, + DescribeCapacityBlocksInput, + DescribeCapacityBlocksOutput, + DescribeCapacityManagerDataExportsInput, + DescribeCapacityManagerDataExportsOutput, + DescribeCapacityReservationBillingRequestsInput, + DescribeCapacityReservationBillingRequestsOutput, + DescribeCapacityReservationCancellationQuotesInput, + DescribeCapacityReservationCancellationQuotesOutput, + DescribeCapacityReservationDateChangeQuotesInput, + DescribeCapacityReservationDateChangeQuotesOutput, + DescribeCapacityReservationFleetsInput, + DescribeCapacityReservationFleetsOutput, + DescribeCapacityReservationTopologyInput, + DescribeCapacityReservationTopologyOutput, + DescribeCapacityReservationsInput, + DescribeCapacityReservationsOutput, + DescribeCarrierGatewaysInput, + DescribeCarrierGatewaysOutput, + DescribeClassicLinkInstancesInput, + DescribeClassicLinkInstancesOutput, + DescribeClientVpnAuthorizationRulesInput, + DescribeClientVpnAuthorizationRulesOutput, + DescribeClientVpnConnectionsInput, + DescribeClientVpnConnectionsOutput, + DescribeClientVpnEndpointsInput, + DescribeClientVpnEndpointsOutput, + DescribeClientVpnRoutesInput, + DescribeClientVpnRoutesOutput, + DescribeClientVpnTargetNetworksInput, + DescribeClientVpnTargetNetworksOutput, + DescribeCoipPoolsInput, + DescribeCoipPoolsOutput, + DescribeConversionTasksInput, + DescribeConversionTasksOutput, + DescribeCustomerGatewaysInput, + DescribeCustomerGatewaysOutput, + DescribeDeclarativePoliciesReportsInput, + DescribeDeclarativePoliciesReportsOutput, + DescribeDhcpOptionsInput, + DescribeDhcpOptionsOutput, + DescribeEgressOnlyInternetGatewaysInput, + DescribeEgressOnlyInternetGatewaysOutput, + DescribeElasticGpusInput, + DescribeElasticGpusOutput, + DescribeExportImageTasksInput, + DescribeExportImageTasksOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeFastLaunchImagesInput, + DescribeFastLaunchImagesOutput, + DescribeFastLaunchImagesSuccessItem, + DescribeFastSnapshotRestoreSuccessItem, + DescribeFastSnapshotRestoresInput, + DescribeFastSnapshotRestoresOutput, + DescribeFleetError, + DescribeFleetHistoryInput, + DescribeFleetHistoryOutput, + DescribeFleetInstancesInput, + DescribeFleetInstancesOutput, + DescribeFleetsInput, + DescribeFleetsInstances, + DescribeFleetsOutput, + DescribeFlowLogsInput, + DescribeFlowLogsOutput, + DescribeFpgaImageAttributeInput, + DescribeFpgaImageAttributeOutput, + DescribeFpgaImagesInput, + DescribeFpgaImagesOutput, + DescribeHostReservationOfferingsInput, + DescribeHostReservationOfferingsOutput, + DescribeHostReservationsInput, + DescribeHostReservationsOutput, + DescribeHostsInput, + DescribeHostsOutput, + DescribeIamInstanceProfileAssociationsInput, + DescribeIamInstanceProfileAssociationsOutput, + DescribeIdFormatInput, + DescribeIdFormatOutput, + DescribeIdentityIdFormatInput, + DescribeIdentityIdFormatOutput, + DescribeImageAttributeInput, + DescribeImageAttributeOutput, + DescribeImageReferencesInput, + DescribeImageReferencesOutput, + DescribeImageUsageReportEntriesInput, + DescribeImageUsageReportEntriesOutput, + DescribeImageUsageReportsInput, + DescribeImageUsageReportsOutput, + DescribeImagesInput, + DescribeImagesOutput, + DescribeImportImageTasksInput, + DescribeImportImageTasksOutput, + DescribeImportSnapshotTasksInput, + DescribeImportSnapshotTasksOutput, + DescribeInstanceAttributeInput, + DescribeInstanceAttributeOutput, + DescribeInstanceConnectEndpointsInput, + DescribeInstanceConnectEndpointsOutput, + DescribeInstanceCreditSpecificationsInput, + DescribeInstanceCreditSpecificationsOutput, + DescribeInstanceEventNotificationAttributesInput, + DescribeInstanceEventNotificationAttributesOutput, + DescribeInstanceEventWindowsInput, + DescribeInstanceEventWindowsOutput, + DescribeInstanceImageMetadataInput, + DescribeInstanceImageMetadataOutput, + DescribeInstanceSqlHaHistoryStatesInput, + DescribeInstanceSqlHaHistoryStatesOutput, + DescribeInstanceSqlHaStatesInput, + DescribeInstanceSqlHaStatesOutput, + DescribeInstanceStatusInput, + DescribeInstanceStatusOutput, + DescribeInstanceTopologyInput, + DescribeInstanceTopologyOutput, + DescribeInstanceTypeOfferingsInput, + DescribeInstanceTypeOfferingsOutput, + DescribeInstanceTypesInput, + DescribeInstanceTypesOutput, + DescribeInstancesInput, + DescribeInstancesOutput, + DescribeInternetGatewaysInput, + DescribeInternetGatewaysOutput, + DescribeIpamByoasnInput, + DescribeIpamByoasnOutput, + DescribeIpamExternalResourceVerificationTokensInput, + DescribeIpamExternalResourceVerificationTokensOutput, + DescribeIpamInternetRegistryAssociationsInput, + DescribeIpamInternetRegistryAssociationsOutput, + DescribeIpamPoliciesInput, + DescribeIpamPoliciesOutput, + DescribeIpamPoolAllocationsInput, + DescribeIpamPoolAllocationsOutput, + DescribeIpamPoolsInput, + DescribeIpamPoolsOutput, + DescribeIpamPrefixListResolverTargetsInput, + DescribeIpamPrefixListResolverTargetsOutput, + DescribeIpamPrefixListResolversInput, + DescribeIpamPrefixListResolversOutput, + DescribeIpamResourceDiscoveriesInput, + DescribeIpamResourceDiscoveriesOutput, + DescribeIpamResourceDiscoveryAssociationsInput, + DescribeIpamResourceDiscoveryAssociationsOutput, + DescribeIpamScopesInput, + DescribeIpamScopesOutput, + DescribeIpamsInput, + DescribeIpamsOutput, + DescribeIpv6PoolsInput, + DescribeIpv6PoolsOutput, + DescribeKeyPairsInput, + DescribeKeyPairsOutput, + DescribeLaunchTemplateVersionsInput, + DescribeLaunchTemplateVersionsOutput, + DescribeLaunchTemplatesInput, + DescribeLaunchTemplatesOutput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, + DescribeLocalGatewayRouteTableVpcAssociationsInput, + DescribeLocalGatewayRouteTableVpcAssociationsOutput, + DescribeLocalGatewayRouteTablesInput, + DescribeLocalGatewayRouteTablesOutput, + DescribeLocalGatewayVirtualInterfaceGroupsInput, + DescribeLocalGatewayVirtualInterfaceGroupsOutput, + DescribeLocalGatewayVirtualInterfacesInput, + DescribeLocalGatewayVirtualInterfacesOutput, + DescribeLocalGatewaysInput, + DescribeLocalGatewaysOutput, + DescribeLockedSnapshotsInput, + DescribeLockedSnapshotsOutput, + DescribeMacHostsInput, + DescribeMacHostsOutput, + DescribeMacModificationTasksInput, + DescribeMacModificationTasksOutput, + DescribeManagedPrefixListsInput, + DescribeManagedPrefixListsOutput, + DescribeMovingAddressesInput, + DescribeMovingAddressesOutput, + DescribeNatGatewaysInput, + DescribeNatGatewaysOutput, + DescribeNetworkAclsInput, + DescribeNetworkAclsOutput, + DescribeNetworkInsightsAccessScopeAnalysesInput, + DescribeNetworkInsightsAccessScopeAnalysesOutput, + DescribeNetworkInsightsAccessScopesInput, + DescribeNetworkInsightsAccessScopesOutput, + DescribeNetworkInsightsAnalysesInput, + DescribeNetworkInsightsAnalysesOutput, + DescribeNetworkInsightsPathsInput, + DescribeNetworkInsightsPathsOutput, + DescribeNetworkInterfaceAttributeInput, + DescribeNetworkInterfaceAttributeOutput, + DescribeNetworkInterfacePermissionsInput, + DescribeNetworkInterfacePermissionsOutput, + DescribeNetworkInterfacesInput, + DescribeNetworkInterfacesOutput, + DescribeOutpostLagsInput, + DescribeOutpostLagsOutput, + DescribePlacementGroupsInput, + DescribePlacementGroupsOutput, + DescribePrefixListsInput, + DescribePrefixListsOutput, + DescribePrincipalIdFormatInput, + DescribePrincipalIdFormatOutput, + DescribePublicIpv4PoolsInput, + DescribePublicIpv4PoolsOutput, + DescribeRegionsInput, + DescribeRegionsOutput, + DescribeReplaceRootVolumeTasksInput, + DescribeReplaceRootVolumeTasksOutput, + DescribeReservedInstancesInput, + DescribeReservedInstancesListingsInput, + DescribeReservedInstancesListingsOutput, + DescribeReservedInstancesModificationsInput, + DescribeReservedInstancesModificationsOutput, + DescribeReservedInstancesOfferingsInput, + DescribeReservedInstancesOfferingsOutput, + DescribeReservedInstancesOutput, + DescribeRouteServerEndpointsInput, + DescribeRouteServerEndpointsOutput, + DescribeRouteServerPeersInput, + DescribeRouteServerPeersOutput, + DescribeRouteServersInput, + DescribeRouteServersOutput, + DescribeRouteTablesInput, + DescribeRouteTablesOutput, + DescribeScheduledInstanceAvailabilityInput, + DescribeScheduledInstanceAvailabilityOutput, + DescribeScheduledInstancesInput, + DescribeScheduledInstancesOutput, + DescribeSecondaryInterfacesInput, + DescribeSecondaryInterfacesOutput, + DescribeSecondaryNetworksInput, + DescribeSecondaryNetworksOutput, + DescribeSecondarySubnetsInput, + DescribeSecondarySubnetsOutput, + DescribeSecurityGroupReferencesInput, + DescribeSecurityGroupReferencesOutput, + DescribeSecurityGroupRulesInput, + DescribeSecurityGroupRulesOutput, + DescribeSecurityGroupVpcAssociationsInput, + DescribeSecurityGroupVpcAssociationsOutput, + DescribeSecurityGroupsInput, + DescribeSecurityGroupsOutput, + DescribeServiceLinkVirtualInterfacesInput, + DescribeServiceLinkVirtualInterfacesOutput, + DescribeSnapshotAttributeInput, + DescribeSnapshotAttributeOutput, + DescribeSnapshotTierStatusInput, + DescribeSnapshotTierStatusOutput, + DescribeSnapshotsInput, + DescribeSnapshotsOutput, + DescribeSpotDatafeedSubscriptionInput, + DescribeSpotDatafeedSubscriptionOutput, + DescribeSpotFleetInstancesInput, + DescribeSpotFleetInstancesOutput, + DescribeSpotFleetRequestHistoryInput, + DescribeSpotFleetRequestHistoryOutput, + DescribeSpotFleetRequestsInput, + DescribeSpotFleetRequestsOutput, + DescribeSpotInstanceRequestsInput, + DescribeSpotInstanceRequestsOutput, + DescribeSpotPriceHistoryInput, + DescribeSpotPriceHistoryOutput, + DescribeStaleSecurityGroupsInput, + DescribeStaleSecurityGroupsOutput, + DescribeStoreImageTasksInput, + DescribeStoreImageTasksOutput, + DescribeSubnetsInput, + DescribeSubnetsOutput, + DescribeTagsInput, + DescribeTagsOutput, + DescribeTrafficMirrorFilterRulesInput, + DescribeTrafficMirrorFilterRulesOutput, + DescribeTrafficMirrorFiltersInput, + DescribeTrafficMirrorFiltersOutput, + DescribeTrafficMirrorSessionsInput, + DescribeTrafficMirrorSessionsOutput, + DescribeTrafficMirrorTargetsInput, + DescribeTrafficMirrorTargetsOutput, + DescribeTransitGatewayAttachmentsInput, + DescribeTransitGatewayAttachmentsOutput, + DescribeTransitGatewayConnectPeersInput, + DescribeTransitGatewayConnectPeersOutput, + DescribeTransitGatewayConnectsInput, + DescribeTransitGatewayConnectsOutput, + DescribeTransitGatewayMeteringPoliciesInput, + DescribeTransitGatewayMeteringPoliciesOutput, + DescribeTransitGatewayMulticastDomainsInput, + DescribeTransitGatewayMulticastDomainsOutput, + DescribeTransitGatewayPeeringAttachmentsInput, + DescribeTransitGatewayPeeringAttachmentsOutput, + DescribeTransitGatewayPolicyTablesInput, + DescribeTransitGatewayPolicyTablesOutput, + DescribeTransitGatewayRouteTableAnnouncementsInput, + DescribeTransitGatewayRouteTableAnnouncementsOutput, + DescribeTransitGatewayRouteTablesInput, + DescribeTransitGatewayRouteTablesOutput, + DescribeTransitGatewayVpcAttachmentsInput, + DescribeTransitGatewayVpcAttachmentsOutput, + DescribeTransitGatewaysInput, + DescribeTransitGatewaysOutput, + DescribeTrunkInterfaceAssociationsInput, + DescribeTrunkInterfaceAssociationsOutput, + DescribeVerifiedAccessEndpointsInput, + DescribeVerifiedAccessEndpointsOutput, + DescribeVerifiedAccessGroupsInput, + DescribeVerifiedAccessGroupsOutput, + DescribeVerifiedAccessInstanceLoggingConfigurationsInput, + DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, + DescribeVerifiedAccessInstancesInput, + DescribeVerifiedAccessInstancesOutput, + DescribeVerifiedAccessTrustProvidersInput, + DescribeVerifiedAccessTrustProvidersOutput, + DescribeVolumeAttributeInput, + DescribeVolumeAttributeOutput, + DescribeVolumeStatusInput, + DescribeVolumeStatusOutput, + DescribeVolumesInput, + DescribeVolumesModificationsInput, + DescribeVolumesModificationsOutput, + DescribeVolumesOutput, + DescribeVpcAttributeInput, + DescribeVpcAttributeOutput, + DescribeVpcBlockPublicAccessExclusionsInput, + DescribeVpcBlockPublicAccessExclusionsOutput, + DescribeVpcBlockPublicAccessOptionsInput, + DescribeVpcBlockPublicAccessOptionsOutput, + DescribeVpcClassicLinkDnsSupportInput, + DescribeVpcClassicLinkDnsSupportOutput, + DescribeVpcClassicLinkInput, + DescribeVpcClassicLinkOutput, + DescribeVpcEncryptionControlsInput, + DescribeVpcEncryptionControlsOutput, + DescribeVpcEndpointAssociationsInput, + DescribeVpcEndpointAssociationsOutput, + DescribeVpcEndpointConnectionNotificationsInput, + DescribeVpcEndpointConnectionNotificationsOutput, + DescribeVpcEndpointConnectionsInput, + DescribeVpcEndpointConnectionsOutput, + DescribeVpcEndpointServiceConfigurationsInput, + DescribeVpcEndpointServiceConfigurationsOutput, + DescribeVpcEndpointServicePermissionsInput, + DescribeVpcEndpointServicePermissionsOutput, + DescribeVpcEndpointServicesInput, + DescribeVpcEndpointServicesOutput, + DescribeVpcEndpointsInput, + DescribeVpcEndpointsOutput, + DescribeVpcPeeringConnectionsInput, + DescribeVpcPeeringConnectionsOutput, + DescribeVpcsInput, + DescribeVpcsOutput, + DescribeVpnConcentratorsInput, + DescribeVpnConcentratorsOutput, + DescribeVpnConnectionsInput, + DescribeVpnConnectionsOutput, + DescribeVpnGatewaysInput, + DescribeVpnGatewaysOutput, + DestinationOptionsRequest, + DestinationOptionsResponse, + DetachClassicLinkVpcInput, + DetachClassicLinkVpcOutput, + DetachImageWatermarkInput, + DetachImageWatermarkOutput, + DetachInternetGatewayInput, + DetachInternetGatewayOutput, + DetachNetworkInterfaceInput, + DetachNetworkInterfaceOutput, + DetachVerifiedAccessTrustProviderInput, + DetachVerifiedAccessTrustProviderOutput, + DetachVolumeInput, + DetachVolumeOutput, + DetachVpnGatewayInput, + DetachVpnGatewayOutput, + DeviceOptions, + DevicePostureOptions, + DevicePostureResponseOptions, + DhcpConfiguration, + DhcpOptions, + DimensionCondition, + DirectoryServiceAuthentication, + DirectoryServiceAuthenticationRequest, + DisableAddressTransferInput, + DisableAddressTransferOutput, + DisableAllowedImagesSettingsInput, + DisableAllowedImagesSettingsOutput, + DisableApplicationStatusCheckSuppressionInput, + DisableApplicationStatusCheckSuppressionOutput, + DisableAwsNetworkPerformanceMetricSubscriptionInput, + DisableAwsNetworkPerformanceMetricSubscriptionOutput, + DisableCapacityManagerInput, + DisableCapacityManagerOutput, + DisableEbsEncryptionByDefaultInput, + DisableEbsEncryptionByDefaultOutput, + DisableFastLaunchInput, + DisableFastLaunchOutput, + DisableFastSnapshotRestoreErrorItem, + DisableFastSnapshotRestoreStateError, + DisableFastSnapshotRestoreStateErrorItem, + DisableFastSnapshotRestoreSuccessItem, + DisableFastSnapshotRestoresInput, + DisableFastSnapshotRestoresOutput, + DisableImageBlockPublicAccessInput, + DisableImageBlockPublicAccessOutput, + DisableImageDeprecationInput, + DisableImageDeprecationOutput, + DisableImageDeregistrationProtectionInput, + DisableImageDeregistrationProtectionOutput, + DisableImageInput, + DisableImageOutput, + DisableInstanceSqlHaStandbyDetectionsInput, + DisableInstanceSqlHaStandbyDetectionsOutput, + DisableIpamOrganizationAdminAccountInput, + DisableIpamOrganizationAdminAccountOutput, + DisableIpamPolicyInput, + DisableIpamPolicyOutput, + DisableRouteServerPropagationInput, + DisableRouteServerPropagationOutput, + DisableSerialConsoleAccessInput, + DisableSerialConsoleAccessOutput, + DisableSnapshotBlockPublicAccessInput, + DisableSnapshotBlockPublicAccessOutput, + DisableTransitGatewayRouteTablePropagationInput, + DisableTransitGatewayRouteTablePropagationOutput, + DisableVgwRoutePropagationInput, + DisableVgwRoutePropagationOutput, + DisableVpcClassicLinkDnsSupportInput, + DisableVpcClassicLinkDnsSupportOutput, + DisableVpcClassicLinkInput, + DisableVpcClassicLinkOutput, + DisassociateAddressInput, + DisassociateAddressOutput, + DisassociateApplicationStatusCheckInput, + DisassociateApplicationStatusCheckOutput, + DisassociateCapacityReservationBillingOwnerInput, + DisassociateCapacityReservationBillingOwnerOutput, + DisassociateClientVpnTargetNetworkInput, + DisassociateClientVpnTargetNetworkOutput, + DisassociateEnclaveCertificateIamRoleInput, + DisassociateEnclaveCertificateIamRoleOutput, + DisassociateIamInstanceProfileInput, + DisassociateIamInstanceProfileOutput, + DisassociateInstanceEventWindowInput, + DisassociateInstanceEventWindowOutput, + DisassociateIpamByoasnInput, + DisassociateIpamByoasnOutput, + DisassociateIpamResourceDiscoveryInput, + DisassociateIpamResourceDiscoveryOutput, + DisassociateNatGatewayAddressInput, + DisassociateNatGatewayAddressOutput, + DisassociateRouteServerInput, + DisassociateRouteServerOutput, + DisassociateRouteTableInput, + DisassociateRouteTableOutput, + DisassociateSecurityGroupVpcInput, + DisassociateSecurityGroupVpcOutput, + DisassociateSubnetCidrBlockInput, + DisassociateSubnetCidrBlockOutput, + DisassociateTransitGatewayMulticastDomainInput, + DisassociateTransitGatewayMulticastDomainOutput, + DisassociateTransitGatewayPolicyTableInput, + DisassociateTransitGatewayPolicyTableOutput, + DisassociateTransitGatewayRouteTableInput, + DisassociateTransitGatewayRouteTableOutput, + DisassociateTrunkInterfaceInput, + DisassociateTrunkInterfaceOutput, + DisassociateVpcCidrBlockInput, + DisassociateVpcCidrBlockOutput, + DiskImage, + DiskImageDescription, + DiskImageDetail, + DiskImageVolumeDescription, + DiskInfo, + DnsEntry, + DnsOptions, + DnsOptionsSpecification, + DnsServersOptionsModifyStructure, + EbsBlockDevice, + EbsBlockDeviceResponse, + EbsCardInfo, + EbsInfo, + EbsInstanceBlockDevice, + EbsInstanceBlockDeviceSpecification, + EbsOptimizedInfo, + EbsStatusDetails, + EbsStatusSummary, + Ec2InstanceConnectEndpoint, + EfaInfo, + EgressOnlyInternetGateway, + ElasticGpuAssociation, + ElasticGpuHealth, + ElasticGpuSpecification, + ElasticGpuSpecificationResponse, + ElasticGpus, + ElasticInferenceAccelerator, + ElasticInferenceAcceleratorAssociation, + EnaSrdSpecification, + EnaSrdSpecificationRequest, + EnaSrdUdpSpecification, + EnaSrdUdpSpecificationRequest, + EnableAddressTransferInput, + EnableAddressTransferOutput, + EnableAllowedImagesSettingsInput, + EnableAllowedImagesSettingsOutput, + EnableApplicationStatusCheckSuppressionInput, + EnableApplicationStatusCheckSuppressionOutput, + EnableAwsNetworkPerformanceMetricSubscriptionInput, + EnableAwsNetworkPerformanceMetricSubscriptionOutput, + EnableCapacityManagerInput, + EnableCapacityManagerOutput, + EnableEbsEncryptionByDefaultInput, + EnableEbsEncryptionByDefaultOutput, + EnableFastLaunchInput, + EnableFastLaunchOutput, + EnableFastSnapshotRestoreErrorItem, + EnableFastSnapshotRestoreStateError, + EnableFastSnapshotRestoreStateErrorItem, + EnableFastSnapshotRestoreSuccessItem, + EnableFastSnapshotRestoresInput, + EnableFastSnapshotRestoresOutput, + EnableImageBlockPublicAccessInput, + EnableImageBlockPublicAccessOutput, + EnableImageDeprecationInput, + EnableImageDeprecationOutput, + EnableImageDeregistrationProtectionInput, + EnableImageDeregistrationProtectionOutput, + EnableImageInput, + EnableImageOutput, + EnableInstanceSqlHaStandbyDetectionsInput, + EnableInstanceSqlHaStandbyDetectionsOutput, + EnableIpamInternetRegistryAssociationInput, + EnableIpamInternetRegistryAssociationOutput, + EnableIpamOrganizationAdminAccountInput, + EnableIpamOrganizationAdminAccountOutput, + EnableIpamPolicyInput, + EnableIpamPolicyOutput, + EnableReachabilityAnalyzerOrganizationSharingInput, + EnableReachabilityAnalyzerOrganizationSharingOutput, + EnableRouteServerPropagationInput, + EnableRouteServerPropagationOutput, + EnableSerialConsoleAccessInput, + EnableSerialConsoleAccessOutput, + EnableSnapshotBlockPublicAccessInput, + EnableSnapshotBlockPublicAccessOutput, + EnableTransitGatewayRouteTablePropagationInput, + EnableTransitGatewayRouteTablePropagationOutput, + EnableVgwRoutePropagationInput, + EnableVgwRoutePropagationOutput, + EnableVolumeIOInput, + EnableVolumeIOOutput, + EnableVpcClassicLinkDnsSupportInput, + EnableVpcClassicLinkDnsSupportOutput, + EnableVpcClassicLinkInput, + EnableVpcClassicLinkOutput, + EnclaveOptions, + EnclaveOptionsRequest, + EncryptionSupport, + EventInformation, + Explanation, + ExportClientVpnClientCertificateRevocationListInput, + ExportClientVpnClientCertificateRevocationListOutput, + ExportClientVpnClientConfigurationInput, + ExportClientVpnClientConfigurationOutput, + ExportImageInput, + ExportImageOutput, + ExportImageTask, + ExportTask, + ExportTaskS3Location, + ExportTaskS3LocationRequest, + ExportToS3Task, + ExportToS3TaskSpecification, + ExportTransitGatewayRoutesInput, + ExportTransitGatewayRoutesOutput, + ExportVerifiedAccessInstanceClientConfigurationInput, + ExportVerifiedAccessInstanceClientConfigurationOutput, + ExternalAuthorityConfiguration, + FailedCapacityReservationFleetCancellationResult, + FailedQueuedPurchaseDeletion, + FastLaunchLaunchTemplateSpecificationRequest, + FastLaunchLaunchTemplateSpecificationResponse, + FastLaunchSnapshotConfigurationRequest, + FastLaunchSnapshotConfigurationResponse, + FederatedAuthentication, + FederatedAuthenticationRequest, + Filter, + FilterPortRange, + FirewallStatefulRule, + FirewallStatelessRule, + FleetBlockDeviceMappingRequest, + FleetCapacityReservation, + FleetCapacityReservationTargetRequest, + FleetData, + FleetEbsBlockDeviceRequest, + FleetIamInstanceProfileSpecificationRequest, + FleetInstanceMetadataOptionsRequest, + FleetLaunchTemplateConfig, + FleetLaunchTemplateConfigRequest, + FleetLaunchTemplateOverrides, + FleetLaunchTemplateOverridesRequest, + FleetLaunchTemplateSpecification, + FleetLaunchTemplateSpecificationRequest, + FleetSpotCapacityRebalance, + FleetSpotCapacityRebalanceRequest, + FleetSpotMaintenanceStrategies, + FleetSpotMaintenanceStrategiesRequest, + FlowLog, + FpgaDeviceInfo, + FpgaDeviceMemoryInfo, + FpgaImage, + FpgaImageAttribute, + FpgaImageState, + FpgaInfo, + GetActiveVpnTunnelStatusInput, + GetActiveVpnTunnelStatusOutput, + GetAllowedImagesSettingsInput, + GetAllowedImagesSettingsOutput, + GetAssociatedEnclaveCertificateIamRolesInput, + GetAssociatedEnclaveCertificateIamRolesOutput, + GetAssociatedIpv6PoolCidrsInput, + GetAssociatedIpv6PoolCidrsOutput, + GetAwsNetworkPerformanceDataInput, + GetAwsNetworkPerformanceDataOutput, + GetCapacityManagerAttributesInput, + GetCapacityManagerAttributesOutput, + GetCapacityManagerMetricDataInput, + GetCapacityManagerMetricDataOutput, + GetCapacityManagerMetricDimensionsInput, + GetCapacityManagerMetricDimensionsOutput, + GetCapacityManagerMonitoredTagKeysInput, + GetCapacityManagerMonitoredTagKeysOutput, + GetCapacityManagerSupportabilityScoresInput, + GetCapacityManagerSupportabilityScoresOutput, + GetCapacityReservationUsageInput, + GetCapacityReservationUsageOutput, + GetClientVpnEndpointAuthorizationPolicyInput, + GetClientVpnEndpointAuthorizationPolicyOutput, + GetCoipPoolUsageInput, + GetCoipPoolUsageOutput, + GetConsoleOutputInput, + GetConsoleOutputOutput, + GetConsoleScreenshotInput, + GetConsoleScreenshotOutput, + GetDeclarativePoliciesReportSummaryInput, + GetDeclarativePoliciesReportSummaryOutput, + GetDefaultCreditSpecificationInput, + GetDefaultCreditSpecificationOutput, + GetEbsDefaultKmsKeyIdInput, + GetEbsDefaultKmsKeyIdOutput, + GetEbsEncryptionByDefaultInput, + GetEbsEncryptionByDefaultOutput, + GetEnabledIpamPolicyInput, + GetEnabledIpamPolicyOutput, + GetFlowLogsIntegrationTemplateInput, + GetFlowLogsIntegrationTemplateOutput, + GetGroupsForCapacityReservationInput, + GetGroupsForCapacityReservationOutput, + GetHostReservationPurchasePreviewInput, + GetHostReservationPurchasePreviewOutput, + GetImageAncestryInput, + GetImageAncestryOutput, + GetImageBlockPublicAccessStateInput, + GetImageBlockPublicAccessStateOutput, + GetImageFindingsInput, + GetImageFindingsOutput, + GetInstanceMetadataDefaultsInput, + GetInstanceMetadataDefaultsOutput, + GetInstanceTpmEkPubInput, + GetInstanceTpmEkPubOutput, + GetInstanceTypesFromInstanceRequirementsInput, + GetInstanceTypesFromInstanceRequirementsOutput, + GetInstanceUefiDataInput, + GetInstanceUefiDataOutput, + GetIpamAddressHistoryInput, + GetIpamAddressHistoryOutput, + GetIpamDiscoveredAccountsInput, + GetIpamDiscoveredAccountsOutput, + GetIpamDiscoveredPublicAddressesInput, + GetIpamDiscoveredPublicAddressesOutput, + GetIpamDiscoveredResourceCidrsInput, + GetIpamDiscoveredResourceCidrsOutput, + GetIpamDiscoveredRoutesInput, + GetIpamDiscoveredRoutesOutput, + GetIpamInternetRegistryAssociationAsnsInput, + GetIpamInternetRegistryAssociationAsnsOutput, + GetIpamInternetRegistryAssociationCidrsInput, + GetIpamInternetRegistryAssociationCidrsOutput, + GetIpamPolicyAllocationRulesInput, + GetIpamPolicyAllocationRulesOutput, + GetIpamPolicyOrganizationTargetsInput, + GetIpamPolicyOrganizationTargetsOutput, + GetIpamPoolAllocationsInput, + GetIpamPoolAllocationsOutput, + GetIpamPoolCidrsInput, + GetIpamPoolCidrsOutput, + GetIpamPrefixListResolverRulesInput, + GetIpamPrefixListResolverRulesOutput, + GetIpamPrefixListResolverVersionEntriesInput, + GetIpamPrefixListResolverVersionEntriesOutput, + GetIpamPrefixListResolverVersionsInput, + GetIpamPrefixListResolverVersionsOutput, + GetIpamResourceCidrsInput, + GetIpamResourceCidrsOutput, + GetIpamRouteOriginAuthorizationsInput, + GetIpamRouteOriginAuthorizationsOutput, + GetIpamRouteProtectionFindingsInput, + GetIpamRouteProtectionFindingsOutput, + GetIpamRoutingPolicyRegistrationDeltasInput, + GetIpamRoutingPolicyRegistrationDeltasOutput, + GetIpamRoutingPolicyRegistrationsInput, + GetIpamRoutingPolicyRegistrationsOutput, + GetLaunchTemplateDataInput, + GetLaunchTemplateDataOutput, + GetManagedPrefixListAssociationsInput, + GetManagedPrefixListAssociationsOutput, + GetManagedPrefixListEntriesInput, + GetManagedPrefixListEntriesOutput, + GetManagedResourceVisibilityInput, + GetManagedResourceVisibilityOutput, + GetNetworkInsightsAccessScopeAnalysisFindingsInput, + GetNetworkInsightsAccessScopeAnalysisFindingsOutput, + GetNetworkInsightsAccessScopeContentInput, + GetNetworkInsightsAccessScopeContentOutput, + GetPasswordDataInput, + GetPasswordDataOutput, + GetReservedInstancesExchangeQuoteInput, + GetReservedInstancesExchangeQuoteOutput, + GetRouteServerAssociationsInput, + GetRouteServerAssociationsOutput, + GetRouteServerPropagationsInput, + GetRouteServerPropagationsOutput, + GetRouteServerRoutingDatabaseInput, + GetRouteServerRoutingDatabaseOutput, + GetSecurityGroupsForVpcInput, + GetSecurityGroupsForVpcOutput, + GetSerialConsoleAccessStatusInput, + GetSerialConsoleAccessStatusOutput, + GetSnapshotBlockPublicAccessStateInput, + GetSnapshotBlockPublicAccessStateOutput, + GetSpotPlacementScoresInput, + GetSpotPlacementScoresOutput, + GetSubnetCidrReservationsInput, + GetSubnetCidrReservationsOutput, + GetTransitGatewayAttachmentNatConfigurationInput, + GetTransitGatewayAttachmentNatConfigurationOutput, + GetTransitGatewayAttachmentPropagationsInput, + GetTransitGatewayAttachmentPropagationsOutput, + GetTransitGatewayMeteringPolicyEntriesInput, + GetTransitGatewayMeteringPolicyEntriesOutput, + GetTransitGatewayMulticastDomainAssociationsInput, + GetTransitGatewayMulticastDomainAssociationsOutput, + GetTransitGatewayPolicyTableAssociationsInput, + GetTransitGatewayPolicyTableAssociationsOutput, + GetTransitGatewayPolicyTableEntriesInput, + GetTransitGatewayPolicyTableEntriesOutput, + GetTransitGatewayPrefixListReferencesInput, + GetTransitGatewayPrefixListReferencesOutput, + GetTransitGatewayRouteTableAssociationsInput, + GetTransitGatewayRouteTableAssociationsOutput, + GetTransitGatewayRouteTablePropagationsInput, + GetTransitGatewayRouteTablePropagationsOutput, + GetVerifiedAccessEndpointPolicyInput, + GetVerifiedAccessEndpointPolicyOutput, + GetVerifiedAccessEndpointTargetsInput, + GetVerifiedAccessEndpointTargetsOutput, + GetVerifiedAccessGroupPolicyInput, + GetVerifiedAccessGroupPolicyOutput, + GetVpcResourcesBlockingEncryptionEnforcementInput, + GetVpcResourcesBlockingEncryptionEnforcementOutput, + GetVpnConnectionDeviceSampleConfigurationInput, + GetVpnConnectionDeviceSampleConfigurationOutput, + GetVpnConnectionDeviceTypesInput, + GetVpnConnectionDeviceTypesOutput, + GetVpnTunnelReplacementStatusInput, + GetVpnTunnelReplacementStatusOutput, + GpuDeviceInfo, + GpuDeviceMemoryInfo, + GpuInfo, + GroupIdentifier, + HealthCheckPathDestinationRequestObject, + HealthCheckPathDestinationResponseObject, + HealthCheckPathRequestObject, + HealthCheckPathResponseObject, + HealthCheckPathSourceRequestObject, + HealthCheckPathSourceResponseObject, + HibernationOptions, + HibernationOptionsRequest, + HistoryRecord, + HistoryRecordEntry, + Host, + HostCpuOptions, + HostCpuOptionsRequest, + HostInstance, + HostOffering, + HostProperties, + HostReservation, + IKEVersionsListValue, + IKEVersionsRequestListValue, + IamInstanceProfile, + IamInstanceProfileAssociation, + IamInstanceProfileSpecification, + IcmpTypeCode, + IdFormat, + Image, + ImageAncestryEntry, + ImageCriterion, + ImageCriterionRequest, + ImageDiskContainer, + ImageFinding, + ImageMetadata, + ImageRecycleBinInfo, + ImageReference, + ImageUsageReport, + ImageUsageReportEntry, + ImageUsageResourceType, + ImageUsageResourceTypeOption, + ImageUsageResourceTypeOptionRequest, + ImageUsageResourceTypeRequest, + ImageWatermark, + ImageWatermarkFilterRequest, + ImageWatermarkFilterResponse, + ImportClientVpnClientCertificateRevocationListInput, + ImportClientVpnClientCertificateRevocationListOutput, + ImportImageInput, + ImportImageLicenseConfigurationRequest, + ImportImageLicenseConfigurationResponse, + ImportImageOutput, + ImportImageTask, + ImportInstanceInput, + ImportInstanceLaunchSpecification, + ImportInstanceOutput, + ImportInstanceTaskDetails, + ImportInstanceVolumeDetailItem, + ImportKeyPairInput, + ImportKeyPairOutput, + ImportSnapshotInput, + ImportSnapshotOutput, + ImportSnapshotTask, + ImportVolumeInput, + ImportVolumeOutput, + ImportVolumeTaskDetails, + InferenceAcceleratorInfo, + InferenceDeviceInfo, + InferenceDeviceMemoryInfo, + InitializationStatusDetails, + Instance, + InstanceApplicationStatus, + InstanceAttachmentEnaSrdSpecification, + InstanceAttachmentEnaSrdUdpSpecification, + InstanceBlockDeviceMapping, + InstanceBlockDeviceMappingSpecification, + InstanceCapacity, + InstanceConnectEndpointDnsNames, + InstanceConnectEndpointPublicDnsNames, + InstanceCount, + InstanceCreditSpecification, + InstanceCreditSpecificationRequest, + InstanceEventWindow, + InstanceEventWindowAssociationRequest, + InstanceEventWindowAssociationTarget, + InstanceEventWindowDisassociationRequest, + InstanceEventWindowStateChange, + InstanceEventWindowTimeRange, + InstanceEventWindowTimeRangeRequest, + InstanceExportDetails, + InstanceFamilyCreditSpecification, + InstanceImageMetadata, + InstanceIpv4Prefix, + InstanceIpv6Address, + InstanceIpv6AddressRequest, + InstanceIpv6Prefix, + InstanceMaintenanceOptions, + InstanceMaintenanceOptionsRequest, + InstanceMarketOptionsRequest, + InstanceMetadataDefaultsResponse, + InstanceMetadataOptionsRequest, + InstanceMetadataOptionsResponse, + InstanceMonitoring, + InstanceNetworkInterface, + InstanceNetworkInterfaceAssociation, + InstanceNetworkInterfaceAttachment, + InstanceNetworkInterfaceSpecification, + InstanceNetworkPerformanceOptions, + InstanceNetworkPerformanceOptionsRequest, + InstancePrivateIpAddress, + InstanceRequirements, + InstanceRequirementsRequest, + InstanceRequirementsWithMetadataRequest, + InstanceSecondaryInterface, + InstanceSecondaryInterfaceAttachment, + InstanceSecondaryInterfacePrivateIpAddress, + InstanceSecondaryInterfacePrivateIpAddressRequest, + InstanceSecondaryInterfaceSpecificationRequest, + InstanceSpecification, + InstanceState, + InstanceStateChange, + InstanceStatus, + InstanceStatusDetails, + InstanceStatusEvent, + InstanceStatusSummary, + InstanceStorageInfo, + InstanceTagNotificationAttribute, + InstanceTopology, + InstanceTypeInfo, + InstanceTypeInfoFromInstanceRequirements, + InstanceTypeItem, + InstanceTypeOffering, + InstanceTypeSpecification, + InstanceTypeSpecificationRequest, + InstanceUsage, + IntegrateServices, + InternetGateway, + InternetGatewayAttachment, + InterruptibleCapacityAllocation, + InterruptionInfo, + IpPermission, + IpRange, + Ipam, + IpamAddressHistoryRecord, + IpamCidrAuthorizationContext, + IpamDiscoveredAccount, + IpamDiscoveredPublicAddress, + IpamDiscoveredResourceCidr, + IpamDiscoveredRoute, + IpamDiscoveryFailureReason, + IpamExternalResourceVerificationToken, + IpamInternetRegistryAssociation, + IpamInternetRegistryAssociationAsn, + IpamInternetRegistryAssociationCidr, + IpamOperatingRegion, + IpamOrganizationalUnitExclusion, + IpamPolicy, + IpamPolicyAllocationRule, + IpamPolicyAllocationRuleRequest, + IpamPolicyDocument, + IpamPolicyOrganizationTarget, + IpamPool, + IpamPoolAllocation, + IpamPoolCidr, + IpamPoolCidrFailureReason, + IpamPoolSourceResource, + IpamPoolSourceResourceRequest, + IpamPrefixListResolver, + IpamPrefixListResolverRule, + IpamPrefixListResolverRuleCondition, + IpamPrefixListResolverRuleConditionRequest, + IpamPrefixListResolverRuleRequest, + IpamPrefixListResolverTarget, + IpamPrefixListResolverVersion, + IpamPrefixListResolverVersionEntry, + IpamPublicAddressSecurityGroup, + IpamPublicAddressTag, + IpamPublicAddressTags, + IpamResourceCidr, + IpamResourceDiscovery, + IpamResourceDiscoveryAssociation, + IpamResourceTag, + IpamRouteOriginAuthorization, + IpamRouteOriginAuthorizationInfo, + IpamRouteOverlap, + IpamRouteProtectionFinding, + IpamRoutingPolicyRegistration, + IpamRoutingPolicyRegistrationDelta, + IpamScope, + IpamScopeExternalAuthorityConfiguration, + Ipv4PrefixSpecification, + Ipv4PrefixSpecificationRequest, + Ipv4PrefixSpecificationResponse, + Ipv6CidrAssociation, + Ipv6CidrBlock, + Ipv6Pool, + Ipv6PrefixSpecification, + Ipv6PrefixSpecificationRequest, + Ipv6PrefixSpecificationResponse, + Ipv6Range, + KeyPairInfo, + LastError, + LaunchPermission, + LaunchPermissionModifications, + LaunchSpecification, + LaunchTemplate, + LaunchTemplateAndOverridesResponse, + LaunchTemplateBlockDeviceMapping, + LaunchTemplateBlockDeviceMappingRequest, + LaunchTemplateCapacityReservationSpecificationRequest, + LaunchTemplateCapacityReservationSpecificationResponse, + LaunchTemplateConfig, + LaunchTemplateCpuOptions, + LaunchTemplateCpuOptionsRequest, + LaunchTemplateEbsBlockDevice, + LaunchTemplateEbsBlockDeviceRequest, + LaunchTemplateElasticInferenceAccelerator, + LaunchTemplateElasticInferenceAcceleratorResponse, + LaunchTemplateEnaSrdSpecification, + LaunchTemplateEnaSrdUdpSpecification, + LaunchTemplateEnclaveOptions, + LaunchTemplateEnclaveOptionsRequest, + LaunchTemplateHibernationOptions, + LaunchTemplateHibernationOptionsRequest, + LaunchTemplateIamInstanceProfileSpecification, + LaunchTemplateIamInstanceProfileSpecificationRequest, + LaunchTemplateInstanceMaintenanceOptions, + LaunchTemplateInstanceMaintenanceOptionsRequest, + LaunchTemplateInstanceMarketOptions, + LaunchTemplateInstanceMarketOptionsRequest, + LaunchTemplateInstanceMetadataOptions, + LaunchTemplateInstanceMetadataOptionsRequest, + LaunchTemplateInstanceNetworkInterfaceSpecification, + LaunchTemplateInstanceNetworkInterfaceSpecificationRequest, + LaunchTemplateInstanceSecondaryInterfaceSpecification, + LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest, + LaunchTemplateLicenseConfiguration, + LaunchTemplateLicenseConfigurationRequest, + LaunchTemplateNetworkPerformanceOptions, + LaunchTemplateNetworkPerformanceOptionsRequest, + LaunchTemplateOverrides, + LaunchTemplatePlacement, + LaunchTemplatePlacementRequest, + LaunchTemplatePrivateDnsNameOptions, + LaunchTemplatePrivateDnsNameOptionsRequest, + LaunchTemplateSpecification, + LaunchTemplateSpotMarketOptions, + LaunchTemplateSpotMarketOptionsRequest, + LaunchTemplateTagSpecification, + LaunchTemplateTagSpecificationRequest, + LaunchTemplateVersion, + LaunchTemplatesMonitoring, + LaunchTemplatesMonitoringRequest, + LicenseConfiguration, + LicenseConfigurationRequest, + ListImagesInRecycleBinInput, + ListImagesInRecycleBinOutput, + ListSnapshotsInRecycleBinInput, + ListSnapshotsInRecycleBinOutput, + ListVolumesInRecycleBinInput, + ListVolumesInRecycleBinOutput, + LoadBalancersConfig, + LoadPermission, + LoadPermissionModifications, + LoadPermissionRequest, + LocalGateway, + LocalGatewayRoute, + LocalGatewayRouteTable, + LocalGatewayRouteTableVirtualInterfaceGroupAssociation, + LocalGatewayRouteTableVpcAssociation, + LocalGatewayVirtualInterface, + LocalGatewayVirtualInterfaceGroup, + LockSnapshotInput, + LockSnapshotOutput, + LockedSnapshotsInfo, + MacHost, + MacModificationTask, + MacSystemIntegrityProtectionConfiguration, + MacSystemIntegrityProtectionConfigurationRequest, + MaintenanceDetails, + ManagedPrefixList, + ManagedResourceVisibilitySettings, + MediaAcceleratorInfo, + MediaDeviceInfo, + MediaDeviceMemoryInfo, + MemoryGiBPerVCpu, + MemoryGiBPerVCpuRequest, + MemoryInfo, + MemoryMiB, + MemoryMiBRequest, + MetricDataResult, + MetricPoint, + MetricValue, + ModificationQuoteCurrentConfiguration, + ModificationReservationUpdate, + ModificationTerms, + ModifyAccountVpcEncryptionControlInput, + ModifyAccountVpcEncryptionControlOutput, + ModifyAddressAttributeInput, + ModifyAddressAttributeOutput, + ModifyApplicationStatusCheckInput, + ModifyApplicationStatusCheckOutput, + ModifyAvailabilityZoneGroupInput, + ModifyAvailabilityZoneGroupOutput, + ModifyCapacityReservationFleetInput, + ModifyCapacityReservationFleetOutput, + ModifyCapacityReservationInput, + ModifyCapacityReservationOutput, + ModifyClientVpnEndpointAuthorizationPolicyInput, + ModifyClientVpnEndpointAuthorizationPolicyOutput, + ModifyClientVpnEndpointInput, + ModifyClientVpnEndpointOutput, + ModifyDefaultCreditSpecificationInput, + ModifyDefaultCreditSpecificationOutput, + ModifyEbsDefaultKmsKeyIdInput, + ModifyEbsDefaultKmsKeyIdOutput, + ModifyFleetInput, + ModifyFleetOutput, + ModifyFpgaImageAttributeInput, + ModifyFpgaImageAttributeOutput, + ModifyHostsInput, + ModifyHostsOutput, + ModifyIdFormatInput, + ModifyIdFormatOutput, + ModifyIdentityIdFormatInput, + ModifyIdentityIdFormatOutput, + ModifyImageAttributeInput, + ModifyImageAttributeOutput, + ModifyInstanceAttributeInput, + ModifyInstanceAttributeOutput, + ModifyInstanceCapacityReservationAttributesInput, + ModifyInstanceCapacityReservationAttributesOutput, + ModifyInstanceConnectEndpointInput, + ModifyInstanceConnectEndpointOutput, + ModifyInstanceCpuOptionsInput, + ModifyInstanceCpuOptionsOutput, + ModifyInstanceCreditSpecificationInput, + ModifyInstanceCreditSpecificationOutput, + ModifyInstanceEventStartTimeInput, + ModifyInstanceEventStartTimeOutput, + ModifyInstanceEventWindowInput, + ModifyInstanceEventWindowOutput, + ModifyInstanceMaintenanceOptionsInput, + ModifyInstanceMaintenanceOptionsOutput, + ModifyInstanceMetadataDefaultsInput, + ModifyInstanceMetadataDefaultsOutput, + ModifyInstanceMetadataOptionsInput, + ModifyInstanceMetadataOptionsOutput, + ModifyInstanceNetworkPerformanceOptionsInput, + ModifyInstanceNetworkPerformanceOptionsOutput, + ModifyInstancePlacementInput, + ModifyInstancePlacementOutput, + ModifyIpamInput, + ModifyIpamOutput, + ModifyIpamPolicyAllocationRulesInput, + ModifyIpamPolicyAllocationRulesOutput, + ModifyIpamPoolAllocationInput, + ModifyIpamPoolAllocationOutput, + ModifyIpamPoolInput, + ModifyIpamPoolOutput, + ModifyIpamPrefixListResolverInput, + ModifyIpamPrefixListResolverOutput, + ModifyIpamPrefixListResolverTargetInput, + ModifyIpamPrefixListResolverTargetOutput, + ModifyIpamResourceCidrInput, + ModifyIpamResourceCidrOutput, + ModifyIpamResourceDiscoveryInput, + ModifyIpamResourceDiscoveryOutput, + ModifyIpamRoutingPolicyRegistrationInput, + ModifyIpamRoutingPolicyRegistrationOutput, + ModifyIpamScopeInput, + ModifyIpamScopeOutput, + ModifyLaunchTemplateInput, + ModifyLaunchTemplateOutput, + ModifyLocalGatewayRouteInput, + ModifyLocalGatewayRouteOutput, + ModifyManagedPrefixListInput, + ModifyManagedPrefixListOutput, + ModifyManagedResourceVisibilityInput, + ModifyManagedResourceVisibilityOutput, + ModifyNetworkInterfaceAttributeInput, + ModifyNetworkInterfaceAttributeOutput, + ModifyPrivateDnsNameOptionsInput, + ModifyPrivateDnsNameOptionsOutput, + ModifyPublicIpDnsNameOptionsInput, + ModifyPublicIpDnsNameOptionsOutput, + ModifyReservedInstancesInput, + ModifyReservedInstancesOutput, + ModifyRouteServerInput, + ModifyRouteServerOutput, + ModifySecurityGroupRulesInput, + ModifySecurityGroupRulesOutput, + ModifySnapshotAttributeInput, + ModifySnapshotAttributeOutput, + ModifySnapshotTierInput, + ModifySnapshotTierOutput, + ModifySpotFleetRequestInput, + ModifySpotFleetRequestOutput, + ModifySubnetAttributeInput, + ModifySubnetAttributeOutput, + ModifyTrafficMirrorFilterNetworkServicesInput, + ModifyTrafficMirrorFilterNetworkServicesOutput, + ModifyTrafficMirrorFilterRuleInput, + ModifyTrafficMirrorFilterRuleOutput, + ModifyTrafficMirrorSessionInput, + ModifyTrafficMirrorSessionOutput, + ModifyTransitGatewayAttachmentNatConfigurationInput, + ModifyTransitGatewayAttachmentNatConfigurationOutput, + ModifyTransitGatewayInput, + ModifyTransitGatewayMeteringPolicyInput, + ModifyTransitGatewayMeteringPolicyOutput, + ModifyTransitGatewayOptions, + ModifyTransitGatewayOutput, + ModifyTransitGatewayPolicyTableEntryInput, + ModifyTransitGatewayPolicyTableEntryOutput, + ModifyTransitGatewayPrefixListReferenceInput, + ModifyTransitGatewayPrefixListReferenceOutput, + ModifyTransitGatewayVpcAttachmentInput, + ModifyTransitGatewayVpcAttachmentOutput, + ModifyTransitGatewayVpcAttachmentRequestOptions, + ModifyVerifiedAccessEndpointCidrOptions, + ModifyVerifiedAccessEndpointEniOptions, + ModifyVerifiedAccessEndpointInput, + ModifyVerifiedAccessEndpointLoadBalancerOptions, + ModifyVerifiedAccessEndpointOutput, + ModifyVerifiedAccessEndpointPolicyInput, + ModifyVerifiedAccessEndpointPolicyOutput, + ModifyVerifiedAccessEndpointPortRange, + ModifyVerifiedAccessEndpointRdsOptions, + ModifyVerifiedAccessGroupInput, + ModifyVerifiedAccessGroupOutput, + ModifyVerifiedAccessGroupPolicyInput, + ModifyVerifiedAccessGroupPolicyOutput, + ModifyVerifiedAccessInstanceInput, + ModifyVerifiedAccessInstanceLoggingConfigurationInput, + ModifyVerifiedAccessInstanceLoggingConfigurationOutput, + ModifyVerifiedAccessInstanceOutput, + ModifyVerifiedAccessNativeApplicationOidcOptions, + ModifyVerifiedAccessTrustProviderDeviceOptions, + ModifyVerifiedAccessTrustProviderInput, + ModifyVerifiedAccessTrustProviderOidcOptions, + ModifyVerifiedAccessTrustProviderOutput, + ModifyVolumeAttributeInput, + ModifyVolumeAttributeOutput, + ModifyVolumeInput, + ModifyVolumeOutput, + ModifyVpcAttributeInput, + ModifyVpcAttributeOutput, + ModifyVpcBlockPublicAccessExclusionInput, + ModifyVpcBlockPublicAccessExclusionOutput, + ModifyVpcBlockPublicAccessOptionsInput, + ModifyVpcBlockPublicAccessOptionsOutput, + ModifyVpcEncryptionControlInput, + ModifyVpcEncryptionControlOutput, + ModifyVpcEndpointConnectionNotificationInput, + ModifyVpcEndpointConnectionNotificationOutput, + ModifyVpcEndpointInput, + ModifyVpcEndpointOutput, + ModifyVpcEndpointPayerResponsibilityInput, + ModifyVpcEndpointPayerResponsibilityOutput, + ModifyVpcEndpointServiceConfigurationInput, + ModifyVpcEndpointServiceConfigurationOutput, + ModifyVpcEndpointServicePayerResponsibilityInput, + ModifyVpcEndpointServicePayerResponsibilityOutput, + ModifyVpcEndpointServicePermissionsInput, + ModifyVpcEndpointServicePermissionsOutput, + ModifyVpcPeeringConnectionOptionsInput, + ModifyVpcPeeringConnectionOptionsOutput, + ModifyVpcTenancyInput, + ModifyVpcTenancyOutput, + ModifyVpnConnectionInput, + ModifyVpnConnectionOptionsInput, + ModifyVpnConnectionOptionsOutput, + ModifyVpnConnectionOutput, + ModifyVpnTunnelCertificateInput, + ModifyVpnTunnelCertificateOutput, + ModifyVpnTunnelOptionsInput, + ModifyVpnTunnelOptionsOutput, + ModifyVpnTunnelOptionsSpecification, + MonitorInstancesInput, + MonitorInstancesOutput, + Monitoring, + MoveAddressToVpcInput, + MoveAddressToVpcOutput, + MoveByoipCidrToIpamInput, + MoveByoipCidrToIpamOutput, + MoveCapacityReservationInstancesInput, + MoveCapacityReservationInstancesOutput, + MovingAddressStatus, + NatGateway, + NatGatewayAddress, + NatGatewayAttachedAppliance, + NativeApplicationOidcOptions, + NetworkAcl, + NetworkAclAssociation, + NetworkAclEntry, + NetworkBandwidthGbps, + NetworkBandwidthGbpsRequest, + NetworkCardInfo, + NetworkInfo, + NetworkInsightsAccessScope, + NetworkInsightsAccessScopeAnalysis, + NetworkInsightsAccessScopeContent, + NetworkInsightsAnalysis, + NetworkInsightsPath, + NetworkInterface, + NetworkInterfaceAssociation, + NetworkInterfaceAttachment, + NetworkInterfaceAttachmentChanges, + NetworkInterfaceCount, + NetworkInterfaceCountRequest, + NetworkInterfaceIpv6Address, + NetworkInterfacePermission, + NetworkInterfacePermissionState, + NetworkInterfacePrivateIpAddress, + NeuronDeviceCoreInfo, + NeuronDeviceInfo, + NeuronDeviceMemoryInfo, + NeuronInfo, + NewDhcpConfiguration, + NitroTpmInfo, + OidcOptions, + OnDemandOptions, + OnDemandOptionsRequest, + OperatorRequest, + OperatorResponse, + OutpostLag, + PacketHeaderStatement, + PacketHeaderStatementRequest, + PathComponent, + PathFilter, + PathRequestFilter, + PathStatement, + PathStatementRequest, + PayerResponsibilityEntry, + PciId, + PeeringAttachmentStatus, + PeeringConnectionOptions, + PeeringConnectionOptionsRequest, + PeeringTgwInfo, + PerformanceFactorReference, + PerformanceFactorReferenceRequest, + PerformanceStatusSummary, + Phase1DHGroupNumbersListValue, + Phase1DHGroupNumbersRequestListValue, + Phase1EncryptionAlgorithmsListValue, + Phase1EncryptionAlgorithmsRequestListValue, + Phase1IntegrityAlgorithmsListValue, + Phase1IntegrityAlgorithmsRequestListValue, + Phase2DHGroupNumbersListValue, + Phase2DHGroupNumbersRequestListValue, + Phase2EncryptionAlgorithmsListValue, + Phase2EncryptionAlgorithmsRequestListValue, + Phase2IntegrityAlgorithmsListValue, + Phase2IntegrityAlgorithmsRequestListValue, + Placement, + PlacementGroup, + PlacementGroupInfo, + PlacementResponse, + PoolCidrBlock, + PortRange, + PrefixList, + PrefixListAssociation, + PrefixListEntry, + PrefixListId, + PriceSchedule, + PriceScheduleSpecification, + PricingDetail, + PrincipalIdFormat, + PrivateDnsDetails, + PrivateDnsNameConfiguration, + PrivateDnsNameOptionsOnLaunch, + PrivateDnsNameOptionsRequest, + PrivateDnsNameOptionsResponse, + PrivateIpAddressSpecification, + ProcessorInfo, + ProductCode, + PropagatingVgw, + ProvisionByoipCidrInput, + ProvisionByoipCidrOutput, + ProvisionIpamByoasnInput, + ProvisionIpamByoasnOutput, + ProvisionIpamPoolCidrInput, + ProvisionIpamPoolCidrOutput, + ProvisionPublicIpv4PoolCidrInput, + ProvisionPublicIpv4PoolCidrOutput, + ProvisionedBandwidth, + PtrUpdateStatus, + PublicIpDnsNameOptions, + PublicIpv4Pool, + PublicIpv4PoolRange, + Purchase, + PurchaseCapacityBlockExtensionInput, + PurchaseCapacityBlockExtensionOutput, + PurchaseCapacityBlockInput, + PurchaseCapacityBlockOutput, + PurchaseHostReservationInput, + PurchaseHostReservationOutput, + PurchaseRequest, + PurchaseReservedInstancesOfferingInput, + PurchaseReservedInstancesOfferingOutput, + PurchaseScheduledInstancesInput, + PurchaseScheduledInstancesOutput, + RebootInstancesInput, + RebootInstancesOutput, + RecurringCharge, + ReferencedSecurityGroup, + Region, + RegionGeography, + RegionalSummary, + RegisterImageInput, + RegisterImageOutput, + RegisterInstanceEventNotificationAttributesInput, + RegisterInstanceEventNotificationAttributesOutput, + RegisterInstanceTagAttributeRequest, + RegisterTransitGatewayMulticastGroupMembersInput, + RegisterTransitGatewayMulticastGroupMembersOutput, + RegisterTransitGatewayMulticastGroupSourcesInput, + RegisterTransitGatewayMulticastGroupSourcesOutput, + RegisteredInstance, + RejectCapacityReservationBillingOwnershipInput, + RejectCapacityReservationBillingOwnershipOutput, + RejectTransitGatewayClientVpnAttachmentInput, + RejectTransitGatewayClientVpnAttachmentOutput, + RejectTransitGatewayMulticastDomainAssociationsInput, + RejectTransitGatewayMulticastDomainAssociationsOutput, + RejectTransitGatewayPeeringAttachmentInput, + RejectTransitGatewayPeeringAttachmentOutput, + RejectTransitGatewayVpcAttachmentInput, + RejectTransitGatewayVpcAttachmentOutput, + RejectVpcEndpointConnectionsInput, + RejectVpcEndpointConnectionsOutput, + RejectVpcPeeringConnectionInput, + RejectVpcPeeringConnectionOutput, + ReleaseAddressInput, + ReleaseAddressOutput, + ReleaseHostsInput, + ReleaseHostsOutput, + ReleaseIpamPoolAllocationInput, + ReleaseIpamPoolAllocationOutput, + RemoveIpamOperatingRegion, + RemoveIpamOrganizationalUnitExclusion, + RemovePrefixListEntry, + ReplaceIamInstanceProfileAssociationInput, + ReplaceIamInstanceProfileAssociationOutput, + ReplaceImageCriteriaInAllowedImagesSettingsInput, + ReplaceImageCriteriaInAllowedImagesSettingsOutput, + ReplaceImageInstanceTypeSpecificationInput, + ReplaceImageInstanceTypeSpecificationOutput, + ReplaceNetworkAclAssociationInput, + ReplaceNetworkAclAssociationOutput, + ReplaceNetworkAclEntryInput, + ReplaceNetworkAclEntryOutput, + ReplaceRootVolumeTask, + ReplaceRouteInput, + ReplaceRouteOutput, + ReplaceRouteTableAssociationInput, + ReplaceRouteTableAssociationOutput, + ReplaceTransitGatewayRouteInput, + ReplaceTransitGatewayRouteOutput, + ReplaceVpnTunnelInput, + ReplaceVpnTunnelOutput, + ReportInstanceStatusInput, + ReportInstanceStatusOutput, + RequestFilterPortRange, + RequestIpamResourceTag, + RequestLaunchTemplateData, + RequestSpotFleetInput, + RequestSpotFleetOutput, + RequestSpotInstancesInput, + RequestSpotInstancesOutput, + RequestSpotLaunchSpecification, + Reservation, + ReservationFleetInstanceSpecification, + ReservationValue, + ReservedCapacityFallbackOptions, + ReservedCapacityFallbackOptionsRequest, + ReservedCapacityOptions, + ReservedCapacityOptionsRequest, + ReservedInstanceLimitPrice, + ReservedInstanceReservationValue, + ReservedInstances, + ReservedInstancesConfiguration, + ReservedInstancesId, + ReservedInstancesListing, + ReservedInstancesModification, + ReservedInstancesModificationResult, + ReservedInstancesOffering, + ResetAddressAttributeInput, + ResetAddressAttributeOutput, + ResetEbsDefaultKmsKeyIdInput, + ResetEbsDefaultKmsKeyIdOutput, + ResetFpgaImageAttributeInput, + ResetFpgaImageAttributeOutput, + ResetImageAttributeInput, + ResetImageAttributeOutput, + ResetInstanceAttributeInput, + ResetInstanceAttributeOutput, + ResetNetworkInterfaceAttributeInput, + ResetNetworkInterfaceAttributeOutput, + ResetSnapshotAttributeInput, + ResetSnapshotAttributeOutput, + ResourceStatement, + ResourceStatementRequest, + ResourceTypeOption, + ResourceTypeRequest, + ResponseError, + ResponseLaunchTemplateData, + RestoreAddressToClassicInput, + RestoreAddressToClassicOutput, + RestoreImageFromRecycleBinInput, + RestoreImageFromRecycleBinOutput, + RestoreManagedPrefixListVersionInput, + RestoreManagedPrefixListVersionOutput, + RestoreSnapshotFromRecycleBinInput, + RestoreSnapshotFromRecycleBinOutput, + RestoreSnapshotTierInput, + RestoreSnapshotTierOutput, + RestoreVolumeFromRecycleBinInput, + RestoreVolumeFromRecycleBinOutput, + RevokeClientVpnIngressInput, + RevokeClientVpnIngressOutput, + RevokeSecurityGroupEgressInput, + RevokeSecurityGroupEgressOutput, + RevokeSecurityGroupIngressInput, + RevokeSecurityGroupIngressOutput, + RevokedSecurityGroupRule, + Route, + RouteServer, + RouteServerAssociation, + RouteServerBfdStatus, + RouteServerBgpOptions, + RouteServerBgpOptionsRequest, + RouteServerBgpStatus, + RouteServerEndpoint, + RouteServerPeer, + RouteServerPropagation, + RouteServerRoute, + RouteServerRouteInstallationDetail, + RouteTable, + RouteTableAssociation, + RouteTableAssociationState, + RuleGroupRuleOptionsPair, + RuleGroupTypePair, + RuleOption, + RunInstancesInput, + RunInstancesMonitoringEnabled, + RunInstancesOutput, + RunScheduledInstancesInput, + RunScheduledInstancesOutput, + S3ObjectTag, + S3Storage, + ScanResultCondition, + ScanResultConditionRequest, + ScanResults, + ScheduledInstance, + ScheduledInstanceAvailability, + ScheduledInstanceRecurrence, + ScheduledInstanceRecurrenceRequest, + ScheduledInstancesBlockDeviceMapping, + ScheduledInstancesEbs, + ScheduledInstancesIamInstanceProfile, + ScheduledInstancesIpv6Address, + ScheduledInstancesLaunchSpecification, + ScheduledInstancesMonitoring, + ScheduledInstancesNetworkInterface, + ScheduledInstancesPlacement, + ScheduledInstancesPrivateIpAddressConfig, + SearchLocalGatewayRoutesInput, + SearchLocalGatewayRoutesOutput, + SearchTransitGatewayMulticastGroupsInput, + SearchTransitGatewayMulticastGroupsOutput, + SearchTransitGatewayRoutesInput, + SearchTransitGatewayRoutesOutput, + SecondaryInterface, + SecondaryInterfaceAttachment, + SecondaryInterfaceIpv4Address, + SecondaryInterfacePrivateIpAddressSpecification, + SecondaryInterfacePrivateIpAddressSpecificationRequest, + SecondaryNetwork, + SecondaryNetworkIpv4CidrBlockAssociation, + SecondarySubnet, + SecondarySubnetIpv4CidrBlockAssociation, + SecureBlobAttributeValue, + SecurityGroup, + SecurityGroupForVpc, + SecurityGroupIdentifier, + SecurityGroupReference, + SecurityGroupRule, + SecurityGroupRuleDescription, + SecurityGroupRuleRequest, + SecurityGroupRuleUpdate, + SecurityGroupVpcAssociation, + SendDiagnosticInterruptInput, + SendDiagnosticInterruptOutput, + ServiceConfiguration, + ServiceDetail, + ServiceLinkVirtualInterface, + ServiceTypeDetail, + SlotDateTimeRangeRequest, + SlotStartTimeRangeRequest, + Snapshot, + SnapshotDetail, + SnapshotDiskContainer, + SnapshotInfo, + SnapshotRecycleBinInfo, + SnapshotTaskDetail, + SnapshotTierStatus, + SpotCapacityRebalance, + SpotDatafeedSubscription, + SpotFleetLaunchSpecification, + SpotFleetMonitoring, + SpotFleetRequestConfig, + SpotFleetRequestConfigData, + SpotFleetTagSpecification, + SpotInstanceRequest, + SpotInstanceStateFault, + SpotInstanceStatus, + SpotMaintenanceStrategies, + SpotMarketOptions, + SpotOptions, + SpotOptionsRequest, + SpotPlacement, + SpotPlacementScore, + SpotPrice, + StaleIpPermission, + StaleSecurityGroup, + StartDeclarativePoliciesReportInput, + StartDeclarativePoliciesReportOutput, + StartInstancesInput, + StartInstancesOutput, + StartNetworkInsightsAccessScopeAnalysisInput, + StartNetworkInsightsAccessScopeAnalysisOutput, + StartNetworkInsightsAnalysisInput, + StartNetworkInsightsAnalysisOutput, + StartVpcEndpointServicePrivateDnsVerificationInput, + StartVpcEndpointServicePrivateDnsVerificationOutput, + StateReason, + StopInstancesInput, + StopInstancesOutput, + Storage, + StorageLocation, + StoreImageTaskResult, + Subnet, + SubnetAssociation, + SubnetCidrBlockState, + SubnetCidrReservation, + SubnetConfiguration, + SubnetIpPrefixes, + SubnetIpv6CidrBlockAssociation, + Subscription, + SuccessfulAssociationResponseObject, + SuccessfulInstanceCreditSpecificationItem, + SuccessfulQueuedPurchaseDeletion, + SuccessfulSuppressionResponseObject, + SupportedRegionDetail, + Tag, + TagDescription, + TagFieldSpecificationRequest, + TagFieldSpecificationResponse, + TagSpecification, + TargetCapacitySpecification, + TargetCapacitySpecificationRequest, + TargetConfiguration, + TargetConfigurationRequest, + TargetGroup, + TargetGroupsConfig, + TargetNetwork, + TargetReservationValue, + TerminateClientVpnConnectionsInput, + TerminateClientVpnConnectionsOutput, + TerminateConnectionStatus, + TerminateInstancesInput, + TerminateInstancesOutput, + ThroughResourcesStatement, + ThroughResourcesStatementRequest, + TotalLocalStorageGB, + TotalLocalStorageGBRequest, + TrafficMirrorFilter, + TrafficMirrorFilterRule, + TrafficMirrorPortRange, + TrafficMirrorPortRangeRequest, + TrafficMirrorSession, + TrafficMirrorTarget, + TransitGateway, + TransitGatewayAssociation, + TransitGatewayAttachment, + TransitGatewayAttachmentAssociation, + TransitGatewayAttachmentBgpConfiguration, + TransitGatewayAttachmentPropagation, + TransitGatewayClientVpnAttachment, + TransitGatewayConfigurationDescribeEndpointStructure, + TransitGatewayConfigurationInputStructure, + TransitGatewayConnect, + TransitGatewayConnectOptions, + TransitGatewayConnectPeer, + TransitGatewayConnectPeerConfiguration, + TransitGatewayConnectRequestBgpOptions, + TransitGatewayMeteringPolicy, + TransitGatewayMeteringPolicyEntry, + TransitGatewayMeteringPolicyRule, + TransitGatewayMulticastDeregisteredGroupMembers, + TransitGatewayMulticastDeregisteredGroupSources, + TransitGatewayMulticastDomain, + TransitGatewayMulticastDomainAssociation, + TransitGatewayMulticastDomainAssociations, + TransitGatewayMulticastDomainOptions, + TransitGatewayMulticastGroup, + TransitGatewayMulticastRegisteredGroupMembers, + TransitGatewayMulticastRegisteredGroupSources, + TransitGatewayNatRule, + TransitGatewayNatRuleRequest, + TransitGatewayOptions, + TransitGatewayPeeringAttachment, + TransitGatewayPeeringAttachmentOptions, + TransitGatewayPolicyRule, + TransitGatewayPolicyRuleMetaData, + TransitGatewayPolicyTable, + TransitGatewayPolicyTableAssociation, + TransitGatewayPolicyTableEntry, + TransitGatewayPrefixListAttachment, + TransitGatewayPrefixListReference, + TransitGatewayPropagation, + TransitGatewayRequestOptions, + TransitGatewayRequestPolicyRule, + TransitGatewayRequestPolicyRuleMetaData, + TransitGatewayRoute, + TransitGatewayRouteAttachment, + TransitGatewayRouteTable, + TransitGatewayRouteTableAnnouncement, + TransitGatewayRouteTableAssociation, + TransitGatewayRouteTablePropagation, + TransitGatewayRouteTableRoute, + TransitGatewayVpcAttachment, + TransitGatewayVpcAttachmentOptions, + TrunkInterfaceAssociation, + TunnelOption, + UnassignIpv6AddressesInput, + UnassignIpv6AddressesOutput, + UnassignPrivateIpAddressesInput, + UnassignPrivateIpAddressesOutput, + UnassignPrivateNatGatewayAddressInput, + UnassignPrivateNatGatewayAddressOutput, + UnlockSnapshotInput, + UnlockSnapshotOutput, + UnmonitorInstancesInput, + UnmonitorInstancesOutput, + UnsuccessfulAssociationResponseObject, + UnsuccessfulInstanceCreditSpecificationItem, + UnsuccessfulInstanceCreditSpecificationItemError, + UnsuccessfulItem, + UnsuccessfulItemError, + UnsuccessfulSuppressionResponseObject, + UpdateCapacityManagerMonitoredTagKeysInput, + UpdateCapacityManagerMonitoredTagKeysOutput, + UpdateCapacityManagerOrganizationsAccessInput, + UpdateCapacityManagerOrganizationsAccessOutput, + UpdateInterruptibleCapacityReservationAllocationInput, + UpdateInterruptibleCapacityReservationAllocationOutput, + UpdateSecurityGroupRuleDescriptionsEgressInput, + UpdateSecurityGroupRuleDescriptionsEgressOutput, + UpdateSecurityGroupRuleDescriptionsIngressInput, + UpdateSecurityGroupRuleDescriptionsIngressOutput, + UserBucket, + UserBucketDetails, + UserData, + UserIdGroupPair, + VCpuCountRange, + VCpuCountRangeRequest, + VCpuInfo, + ValidateSecurityGroupQuotasForInterfaceInput, + ValidateSecurityGroupQuotasForInterfaceOutput, + ValidationError, + ValidationWarning, + VerifiedAccessEndpoint, + VerifiedAccessEndpointCidrOptions, + VerifiedAccessEndpointEniOptions, + VerifiedAccessEndpointLoadBalancerOptions, + VerifiedAccessEndpointPortRange, + VerifiedAccessEndpointRdsOptions, + VerifiedAccessEndpointStatus, + VerifiedAccessEndpointTarget, + VerifiedAccessGroup, + VerifiedAccessInstance, + VerifiedAccessInstanceCustomSubDomain, + VerifiedAccessInstanceLoggingConfiguration, + VerifiedAccessInstanceOpenVpnClientConfiguration, + VerifiedAccessInstanceOpenVpnClientConfigurationRoute, + VerifiedAccessInstanceUserTrustProviderClientConfiguration, + VerifiedAccessLogCloudWatchLogsDestination, + VerifiedAccessLogCloudWatchLogsDestinationOptions, + VerifiedAccessLogDeliveryStatus, + VerifiedAccessLogKinesisDataFirehoseDestination, + VerifiedAccessLogKinesisDataFirehoseDestinationOptions, + VerifiedAccessLogOptions, + VerifiedAccessLogS3Destination, + VerifiedAccessLogS3DestinationOptions, + VerifiedAccessLogs, + VerifiedAccessSseSpecificationRequest, + VerifiedAccessSseSpecificationResponse, + VerifiedAccessTrustProvider, + VerifiedAccessTrustProviderCondensed, + VgwTelemetry, + Volume, + VolumeAttachment, + VolumeDetail, + VolumeModification, + VolumeRecycleBinInfo, + VolumeStatusAction, + VolumeStatusAttachmentStatus, + VolumeStatusDetails, + VolumeStatusEvent, + VolumeStatusInfo, + VolumeStatusItem, + Vpc, + VpcAttachment, + VpcBlockPublicAccessExclusion, + VpcBlockPublicAccessOptions, + VpcCidrBlockAssociation, + VpcCidrBlockState, + VpcClassicLink, + VpcEncryptionControl, + VpcEncryptionControlConfiguration, + VpcEncryptionControlExclusion, + VpcEncryptionControlExclusions, + VpcEncryptionNonCompliantResource, + VpcEndpoint, + VpcEndpointAssociation, + VpcEndpointConnection, + VpcIpv6CidrBlockAssociation, + VpcPeeringConnection, + VpcPeeringConnectionOptionsDescription, + VpcPeeringConnectionStateReason, + VpcPeeringConnectionVpcInfo, + VpnConcentrator, + VpnConnection, + VpnConnectionDeviceType, + VpnConnectionOptions, + VpnConnectionOptionsSpecification, + VpnGateway, + VpnStaticRoute, + VpnTunnelLogOptions, + VpnTunnelLogOptionsSpecification, + VpnTunnelOptionsSpecification, + WithdrawByoipCidrInput, + WithdrawByoipCidrOutput, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AcceleratorCount() +AcceleratorCountRequest() +AcceleratorTotalMemoryMiB() +AcceleratorTotalMemoryMiBRequest() +AcceptAddressTransferInput() +AcceptAddressTransferOutput() +AcceptCapacityReservationBillingOwnershipInput() +AcceptCapacityReservationBillingOwnershipOutput() +AcceptReservedInstancesExchangeQuoteInput() +AcceptReservedInstancesExchangeQuoteOutput() +AcceptTransitGatewayClientVpnAttachmentInput() +AcceptTransitGatewayClientVpnAttachmentOutput() +AcceptTransitGatewayMulticastDomainAssociationsInput() +AcceptTransitGatewayMulticastDomainAssociationsOutput() +AcceptTransitGatewayPeeringAttachmentInput() +AcceptTransitGatewayPeeringAttachmentOutput() +AcceptTransitGatewayVpcAttachmentInput() +AcceptTransitGatewayVpcAttachmentOutput() +AcceptVpcEndpointConnectionsInput() +AcceptVpcEndpointConnectionsOutput() +AcceptVpcPeeringConnectionInput() +AcceptVpcPeeringConnectionOutput() +AccessScopeAnalysisFinding() +AccessScopePath() +AccessScopePathRequest() +AccountAttribute() +AccountAttributeValue() +AccountVpcEncryptionControl() +AccountVpcEncryptionControlExclusions() +ActiveInstance() +ActiveVpnTunnelStatus() +AddedPrincipal() +AddIpamOperatingRegion() +AddIpamOrganizationalUnitExclusion() +AdditionalDetail() +AddPrefixListEntry() +Address() +AddressAttribute() +AddressTransfer() +AdvertiseByoipCidrInput() +AdvertiseByoipCidrOutput() +AllocateAddressInput() +AllocateAddressOutput() +AllocateHostsInput() +AllocateHostsOutput() +AllocateIpamPoolCidrInput() +AllocateIpamPoolCidrOutput() +AllowedPrincipal() +AlternatePathHint() +AnalysisAclRule() +AnalysisComponent() +AnalysisLoadBalancerListener() +AnalysisLoadBalancerTarget() +AnalysisPacketHeader() +AnalysisRouteTableRoute() +AnalysisSecurityGroupRule() +AnalysisTransitGatewayPolicyTableEntry() +ApplicationStatus() +ApplicationStatusCheckAssociationObject() +ApplicationStatusCheckResponseObject() +ApplicationStatusDetail() +ApplicationStatusesResponseType() +ApplicationStatusReason() +ApplicationStatusSummary() +ApplySecurityGroupsToClientVpnTargetNetworkInput() +ApplySecurityGroupsToClientVpnTargetNetworkOutput() +AsnAssociation() +AsnAuthorizationContext() +AssignedPrivateIpAddress() +AssignIpv6AddressesInput() +AssignIpv6AddressesOutput() +AssignPrivateIpAddressesInput() +AssignPrivateIpAddressesOutput() +AssignPrivateNatGatewayAddressInput() +AssignPrivateNatGatewayAddressOutput() +AssociateAddressInput() +AssociateAddressOutput() +AssociateApplicationStatusCheckInput() +AssociateApplicationStatusCheckOutput() +AssociateCapacityReservationBillingOwnerInput() +AssociateCapacityReservationBillingOwnerOutput() +AssociateClientVpnTargetNetworkInput() +AssociateClientVpnTargetNetworkOutput() +AssociateDhcpOptionsInput() +AssociateDhcpOptionsOutput() +AssociatedRole() +AssociatedTargetNetwork() +AssociateEnclaveCertificateIamRoleInput() +AssociateEnclaveCertificateIamRoleOutput() +AssociateIamInstanceProfileInput() +AssociateIamInstanceProfileOutput() +AssociateInstanceEventWindowInput() +AssociateInstanceEventWindowOutput() +AssociateIpamByoasnInput() +AssociateIpamByoasnOutput() +AssociateIpamResourceDiscoveryInput() +AssociateIpamResourceDiscoveryOutput() +AssociateNatGatewayAddressInput() +AssociateNatGatewayAddressOutput() +AssociateRouteServerInput() +AssociateRouteServerOutput() +AssociateRouteTableInput() +AssociateRouteTableOutput() +AssociateSecurityGroupVpcInput() +AssociateSecurityGroupVpcOutput() +AssociateSubnetCidrBlockInput() +AssociateSubnetCidrBlockOutput() +AssociateTransitGatewayMulticastDomainInput() +AssociateTransitGatewayMulticastDomainOutput() +AssociateTransitGatewayPolicyTableInput() +AssociateTransitGatewayPolicyTableOutput() +AssociateTransitGatewayRouteTableInput() +AssociateTransitGatewayRouteTableOutput() +AssociateTrunkInterfaceInput() +AssociateTrunkInterfaceOutput() +AssociateVpcCidrBlockInput() +AssociateVpcCidrBlockOutput() +AssociationStatus() +AthenaIntegration() +AttachClassicLinkVpcInput() +AttachClassicLinkVpcOutput() +AttachImageWatermarkInput() +AttachImageWatermarkOutput() +AttachInternetGatewayInput() +AttachInternetGatewayOutput() +AttachmentEnaSrdSpecification() +AttachmentEnaSrdUdpSpecification() +AttachNetworkInterfaceInput() +AttachNetworkInterfaceOutput() +AttachVerifiedAccessTrustProviderInput() +AttachVerifiedAccessTrustProviderOutput() +AttachVolumeInput() +AttachVolumeOutput() +AttachVpnGatewayInput() +AttachVpnGatewayOutput() +AttributeBooleanValue() +AttributeSummary() +AttributeValue() +AuthorizationRule() +AuthorizeClientVpnIngressInput() +AuthorizeClientVpnIngressOutput() +AuthorizeSecurityGroupEgressInput() +AuthorizeSecurityGroupEgressOutput() +AuthorizeSecurityGroupIngressInput() +AuthorizeSecurityGroupIngressOutput() +AvailabilityZone() +AvailabilityZoneAddress() +AvailabilityZoneGeography() +AvailabilityZoneMessage() +AvailabilityZoneSubGeography() +AvailableCapacity() +BaselineEbsBandwidthMbps() +BaselineEbsBandwidthMbpsRequest() +BaselinePerformanceFactors() +BaselinePerformanceFactorsRequest() +BatchModifyIpamRoutingPolicyRegistrationsInput() +BatchModifyIpamRoutingPolicyRegistrationsOutput() +BlockDeviceMapping() +BlockDeviceMappingResponse() +BlockPublicAccessStates() +BundleInstanceInput() +BundleInstanceOutput() +BundleTask() +BundleTaskError() +Byoasn() +ByoipCidr() +CancelBundleTaskInput() +CancelBundleTaskOutput() +CancelCapacityReservationFleetError() +CancelCapacityReservationFleetsInput() +CancelCapacityReservationFleetsOutput() +CancelCapacityReservationInput() +CancelCapacityReservationOutput() +CancelConversionTaskInput() +CancelConversionTaskOutput() +CancelDeclarativePoliciesReportInput() +CancelDeclarativePoliciesReportOutput() +CancelExportTaskInput() +CancelExportTaskOutput() +CancelImageLaunchPermissionInput() +CancelImageLaunchPermissionOutput() +CancelImportTaskInput() +CancelImportTaskOutput() +CancellationTerms() +CancelledSpotInstanceRequest() +CancelReservedInstancesListingInput() +CancelReservedInstancesListingOutput() +CancelSpotFleetRequestsError() +CancelSpotFleetRequestsErrorItem() +CancelSpotFleetRequestsInput() +CancelSpotFleetRequestsOutput() +CancelSpotFleetRequestsSuccessItem() +CancelSpotInstanceRequestsInput() +CancelSpotInstanceRequestsOutput() +CapacityAllocation() +CapacityAllocationMetadataEntry() +CapacityBlock() +CapacityBlockExtension() +CapacityBlockExtensionOffering() +CapacityBlockOffering() +CapacityBlockStatus() +CapacityManagerCondition() +CapacityManagerDataExportResponse() +CapacityManagerDimension() +CapacityManagerMonitoredTagKey() +CapacityManagerSupportabilityScore() +CapacityManagerTagDimension() +CapacityReservation() +CapacityReservationAdjustmentDetails() +CapacityReservationBillingRequest() +CapacityReservationCancellationQuote() +CapacityReservationCommitmentInfo() +CapacityReservationConfiguration() +CapacityReservationFleet() +CapacityReservationFleetCancellationState() +CapacityReservationGroup() +CapacityReservationInfo() +CapacityReservationModificationQuote() +CapacityReservationOptions() +CapacityReservationOptionsRequest() +CapacityReservationSpecification() +CapacityReservationSpecificationResponse() +CapacityReservationStatus() +CapacityReservationTarget() +CapacityReservationTargetResponse() +CapacityReservationTopology() +CarrierGateway() +CertificateAuthentication() +CertificateAuthenticationRequest() +CidrAuthorizationContext() +CidrBlock() +ClassicLinkDnsSupport() +ClassicLinkInstance() +ClassicLoadBalancer() +ClassicLoadBalancersConfig() +ClientCertificateRevocationListStatus() +ClientConnectOptions() +ClientConnectResponseOptions() +ClientData() +ClientLoginBannerOptions() +ClientLoginBannerResponseOptions() +ClientRouteEnforcementOptions() +ClientRouteEnforcementResponseOptions() +ClientVpnAuthentication() +ClientVpnAuthenticationRequest() +ClientVpnAuthorizationRuleStatus() +ClientVpnConnection() +ClientVpnConnectionStatus() +ClientVpnEndpoint() +ClientVpnEndpointAttributeStatus() +ClientVpnEndpointStatus() +ClientVpnRoute() +ClientVpnRouteStatus() +ClientVpnTrustProvider() +ClientVpnTrustProviderRequest() +CloudWatchLogOptions() +CloudWatchLogOptionsSpecification() +CoipAddressUsage() +CoipCidr() +CoipPool() +ConfirmProductInstanceInput() +ConfirmProductInstanceOutput() +ConnectionLogOptions() +ConnectionLogResponseOptions() +ConnectionNotification() +ConnectionTrackingConfiguration() +ConnectionTrackingSpecification() +ConnectionTrackingSpecificationRequest() +ConnectionTrackingSpecificationResponse() +ConversionTask() +CopyFpgaImageInput() +CopyFpgaImageOutput() +CopyImageInput() +CopyImageOutput() +CopySnapshotInput() +CopySnapshotOutput() +CopyVolumesInput() +CopyVolumesOutput() +CpuOptions() +CpuOptionsRequest() +CpuPerformanceFactor() +CpuPerformanceFactorRequest() +CreateApplicationStatusCheckInput() +CreateApplicationStatusCheckOutput() +CreateCapacityManagerDataExportInput() +CreateCapacityManagerDataExportOutput() +CreateCapacityReservationBySplittingInput() +CreateCapacityReservationBySplittingOutput() +CreateCapacityReservationCancellationQuoteInput() +CreateCapacityReservationCancellationQuoteOutput() +CreateCapacityReservationDateChangeQuoteInput() +CreateCapacityReservationDateChangeQuoteOutput() +CreateCapacityReservationFleetInput() +CreateCapacityReservationFleetOutput() +CreateCapacityReservationInput() +CreateCapacityReservationOutput() +CreateCarrierGatewayInput() +CreateCarrierGatewayOutput() +CreateClientVpnEndpointInput() +CreateClientVpnEndpointOutput() +CreateClientVpnRouteInput() +CreateClientVpnRouteOutput() +CreateCoipCidrInput() +CreateCoipCidrOutput() +CreateCoipPoolInput() +CreateCoipPoolOutput() +CreateCustomerGatewayInput() +CreateCustomerGatewayOutput() +CreateDefaultSubnetInput() +CreateDefaultSubnetOutput() +CreateDefaultVpcInput() +CreateDefaultVpcOutput() +CreateDelegateMacVolumeOwnershipTaskInput() +CreateDelegateMacVolumeOwnershipTaskOutput() +CreateDhcpOptionsInput() +CreateDhcpOptionsOutput() +CreateEgressOnlyInternetGatewayInput() +CreateEgressOnlyInternetGatewayOutput() +CreateFleetError() +CreateFleetInput() +CreateFleetInstance() +CreateFleetOutput() +CreateFlowLogsInput() +CreateFlowLogsOutput() +CreateFpgaImageInput() +CreateFpgaImageOutput() +CreateImageInput() +CreateImageOutput() +CreateImageUsageReportInput() +CreateImageUsageReportOutput() +CreateInstanceConnectEndpointInput() +CreateInstanceConnectEndpointOutput() +CreateInstanceEventWindowInput() +CreateInstanceEventWindowOutput() +CreateInstanceExportTaskInput() +CreateInstanceExportTaskOutput() +CreateInternetGatewayInput() +CreateInternetGatewayOutput() +CreateInterruptibleCapacityReservationAllocationInput() +CreateInterruptibleCapacityReservationAllocationOutput() +CreateIpamExternalResourceVerificationTokenInput() +CreateIpamExternalResourceVerificationTokenOutput() +CreateIpamInput() +CreateIpamInternetRegistryAssociationInput() +CreateIpamInternetRegistryAssociationOutput() +CreateIpamOutput() +CreateIpamPolicyInput() +CreateIpamPolicyOutput() +CreateIpamPoolInput() +CreateIpamPoolOutput() +CreateIpamPrefixListResolverInput() +CreateIpamPrefixListResolverOutput() +CreateIpamPrefixListResolverTargetInput() +CreateIpamPrefixListResolverTargetOutput() +CreateIpamResourceDiscoveryInput() +CreateIpamResourceDiscoveryOutput() +CreateIpamRoutingPolicyRegistrationInput() +CreateIpamRoutingPolicyRegistrationOutput() +CreateIpamScopeInput() +CreateIpamScopeOutput() +CreateKeyPairInput() +CreateKeyPairOutput() +CreateLaunchTemplateInput() +CreateLaunchTemplateOutput() +CreateLaunchTemplateVersionInput() +CreateLaunchTemplateVersionOutput() +CreateLocalGatewayRouteInput() +CreateLocalGatewayRouteOutput() +CreateLocalGatewayRouteTableInput() +CreateLocalGatewayRouteTableOutput() +CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput() +CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput() +CreateLocalGatewayRouteTableVpcAssociationInput() +CreateLocalGatewayRouteTableVpcAssociationOutput() +CreateLocalGatewayVirtualInterfaceGroupInput() +CreateLocalGatewayVirtualInterfaceGroupOutput() +CreateLocalGatewayVirtualInterfaceInput() +CreateLocalGatewayVirtualInterfaceOutput() +CreateMacSystemIntegrityProtectionModificationTaskInput() +CreateMacSystemIntegrityProtectionModificationTaskOutput() +CreateManagedPrefixListInput() +CreateManagedPrefixListOutput() +CreateNatGatewayInput() +CreateNatGatewayOutput() +CreateNetworkAclEntryInput() +CreateNetworkAclEntryOutput() +CreateNetworkAclInput() +CreateNetworkAclOutput() +CreateNetworkInsightsAccessScopeInput() +CreateNetworkInsightsAccessScopeOutput() +CreateNetworkInsightsPathInput() +CreateNetworkInsightsPathOutput() +CreateNetworkInterfaceInput() +CreateNetworkInterfaceOutput() +CreateNetworkInterfacePermissionInput() +CreateNetworkInterfacePermissionOutput() +CreatePlacementGroupInput() +CreatePlacementGroupOutput() +CreatePublicIpv4PoolInput() +CreatePublicIpv4PoolOutput() +CreateReplaceRootVolumeTaskInput() +CreateReplaceRootVolumeTaskOutput() +CreateReservedInstancesListingInput() +CreateReservedInstancesListingOutput() +CreateRestoreImageTaskInput() +CreateRestoreImageTaskOutput() +CreateRouteInput() +CreateRouteOutput() +CreateRouteServerEndpointInput() +CreateRouteServerEndpointOutput() +CreateRouteServerInput() +CreateRouteServerOutput() +CreateRouteServerPeerInput() +CreateRouteServerPeerOutput() +CreateRouteTableInput() +CreateRouteTableOutput() +CreateSecondaryNetworkInput() +CreateSecondaryNetworkOutput() +CreateSecondarySubnetInput() +CreateSecondarySubnetOutput() +CreateSecurityGroupInput() +CreateSecurityGroupOutput() +CreateSnapshotInput() +CreateSnapshotOutput() +CreateSnapshotsInput() +CreateSnapshotsOutput() +CreateSpotDatafeedSubscriptionInput() +CreateSpotDatafeedSubscriptionOutput() +CreateStoreImageTaskInput() +CreateStoreImageTaskOutput() +CreateSubnetCidrReservationInput() +CreateSubnetCidrReservationOutput() +CreateSubnetInput() +CreateSubnetOutput() +CreateTagsInput() +CreateTagsOutput() +CreateTrafficMirrorFilterInput() +CreateTrafficMirrorFilterOutput() +CreateTrafficMirrorFilterRuleInput() +CreateTrafficMirrorFilterRuleOutput() +CreateTrafficMirrorSessionInput() +CreateTrafficMirrorSessionOutput() +CreateTrafficMirrorTargetInput() +CreateTrafficMirrorTargetOutput() +CreateTransitGatewayConnectInput() +CreateTransitGatewayConnectOutput() +CreateTransitGatewayConnectPeerInput() +CreateTransitGatewayConnectPeerOutput() +CreateTransitGatewayConnectRequestOptions() +CreateTransitGatewayInput() +CreateTransitGatewayMeteringPolicyEntryInput() +CreateTransitGatewayMeteringPolicyEntryOutput() +CreateTransitGatewayMeteringPolicyInput() +CreateTransitGatewayMeteringPolicyOutput() +CreateTransitGatewayMulticastDomainInput() +CreateTransitGatewayMulticastDomainOutput() +CreateTransitGatewayMulticastDomainRequestOptions() +CreateTransitGatewayOutput() +CreateTransitGatewayPeeringAttachmentInput() +CreateTransitGatewayPeeringAttachmentOutput() +CreateTransitGatewayPeeringAttachmentRequestOptions() +CreateTransitGatewayPolicyTableEntryInput() +CreateTransitGatewayPolicyTableEntryOutput() +CreateTransitGatewayPolicyTableInput() +CreateTransitGatewayPolicyTableOutput() +CreateTransitGatewayPrefixListReferenceInput() +CreateTransitGatewayPrefixListReferenceOutput() +CreateTransitGatewayRouteInput() +CreateTransitGatewayRouteOutput() +CreateTransitGatewayRouteTableAnnouncementInput() +CreateTransitGatewayRouteTableAnnouncementOutput() +CreateTransitGatewayRouteTableInput() +CreateTransitGatewayRouteTableOutput() +CreateTransitGatewayVpcAttachmentInput() +CreateTransitGatewayVpcAttachmentOutput() +CreateTransitGatewayVpcAttachmentRequestOptions() +CreateVerifiedAccessEndpointCidrOptions() +CreateVerifiedAccessEndpointEniOptions() +CreateVerifiedAccessEndpointInput() +CreateVerifiedAccessEndpointLoadBalancerOptions() +CreateVerifiedAccessEndpointOutput() +CreateVerifiedAccessEndpointPortRange() +CreateVerifiedAccessEndpointRdsOptions() +CreateVerifiedAccessGroupInput() +CreateVerifiedAccessGroupOutput() +CreateVerifiedAccessInstanceInput() +CreateVerifiedAccessInstanceOutput() +CreateVerifiedAccessNativeApplicationOidcOptions() +CreateVerifiedAccessTrustProviderDeviceOptions() +CreateVerifiedAccessTrustProviderInput() +CreateVerifiedAccessTrustProviderOidcOptions() +CreateVerifiedAccessTrustProviderOutput() +CreateVolumeInput() +CreateVolumeOutput() +CreateVolumePermission() +CreateVolumePermissionModifications() +CreateVpcBlockPublicAccessExclusionInput() +CreateVpcBlockPublicAccessExclusionOutput() +CreateVpcEncryptionControlInput() +CreateVpcEncryptionControlOutput() +CreateVpcEndpointConnectionNotificationInput() +CreateVpcEndpointConnectionNotificationOutput() +CreateVpcEndpointInput() +CreateVpcEndpointOutput() +CreateVpcEndpointServiceConfigurationInput() +CreateVpcEndpointServiceConfigurationOutput() +CreateVpcInput() +CreateVpcOutput() +CreateVpcPeeringConnectionInput() +CreateVpcPeeringConnectionOutput() +CreateVpnConcentratorInput() +CreateVpnConcentratorOutput() +CreateVpnConnectionInput() +CreateVpnConnectionOutput() +CreateVpnConnectionRouteInput() +CreateVpnConnectionRouteOutput() +CreateVpnGatewayInput() +CreateVpnGatewayOutput() +CreationDateCondition() +CreationDateConditionRequest() +CreditSpecification() +CreditSpecificationRequest() +CustomerGateway() +CustomTagKeyValueRequestPair() +CustomTagKeyValueResponsePair() +DataQuery() +DataResponse() +DeclarativePoliciesReport() +DefaultConnectionTrackingConfiguration() +DeleteApplicationStatusCheckInput() +DeleteApplicationStatusCheckOutput() +DeleteCapacityManagerDataExportInput() +DeleteCapacityManagerDataExportOutput() +DeleteCarrierGatewayInput() +DeleteCarrierGatewayOutput() +DeleteClientVpnEndpointAuthorizationPolicyInput() +DeleteClientVpnEndpointAuthorizationPolicyOutput() +DeleteClientVpnEndpointInput() +DeleteClientVpnEndpointOutput() +DeleteClientVpnRouteInput() +DeleteClientVpnRouteOutput() +DeleteCoipCidrInput() +DeleteCoipCidrOutput() +DeleteCoipPoolInput() +DeleteCoipPoolOutput() +DeleteCustomerGatewayInput() +DeleteCustomerGatewayOutput() +DeleteDhcpOptionsInput() +DeleteDhcpOptionsOutput() +DeleteEgressOnlyInternetGatewayInput() +DeleteEgressOnlyInternetGatewayOutput() +DeleteFleetError() +DeleteFleetErrorItem() +DeleteFleetsInput() +DeleteFleetsOutput() +DeleteFleetSuccessItem() +DeleteFlowLogsInput() +DeleteFlowLogsOutput() +DeleteFpgaImageInput() +DeleteFpgaImageOutput() +DeleteImageUsageReportInput() +DeleteImageUsageReportOutput() +DeleteInstanceConnectEndpointInput() +DeleteInstanceConnectEndpointOutput() +DeleteInstanceEventWindowInput() +DeleteInstanceEventWindowOutput() +DeleteInternetGatewayInput() +DeleteInternetGatewayOutput() +DeleteIpamExternalResourceVerificationTokenInput() +DeleteIpamExternalResourceVerificationTokenOutput() +DeleteIpamInput() +DeleteIpamInternetRegistryAssociationInput() +DeleteIpamInternetRegistryAssociationOutput() +DeleteIpamOutput() +DeleteIpamPolicyInput() +DeleteIpamPolicyOutput() +DeleteIpamPoolInput() +DeleteIpamPoolOutput() +DeleteIpamPrefixListResolverInput() +DeleteIpamPrefixListResolverOutput() +DeleteIpamPrefixListResolverTargetInput() +DeleteIpamPrefixListResolverTargetOutput() +DeleteIpamResourceDiscoveryInput() +DeleteIpamResourceDiscoveryOutput() +DeleteIpamRoutingPolicyRegistrationInput() +DeleteIpamRoutingPolicyRegistrationOutput() +DeleteIpamScopeInput() +DeleteIpamScopeOutput() +DeleteKeyPairInput() +DeleteKeyPairOutput() +DeleteLaunchTemplateInput() +DeleteLaunchTemplateOutput() +DeleteLaunchTemplateVersionsInput() +DeleteLaunchTemplateVersionsOutput() +DeleteLaunchTemplateVersionsResponseErrorItem() +DeleteLaunchTemplateVersionsResponseSuccessItem() +DeleteLocalGatewayRouteInput() +DeleteLocalGatewayRouteOutput() +DeleteLocalGatewayRouteTableInput() +DeleteLocalGatewayRouteTableOutput() +DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput() +DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput() +DeleteLocalGatewayRouteTableVpcAssociationInput() +DeleteLocalGatewayRouteTableVpcAssociationOutput() +DeleteLocalGatewayVirtualInterfaceGroupInput() +DeleteLocalGatewayVirtualInterfaceGroupOutput() +DeleteLocalGatewayVirtualInterfaceInput() +DeleteLocalGatewayVirtualInterfaceOutput() +DeleteManagedPrefixListInput() +DeleteManagedPrefixListOutput() +DeleteNatGatewayInput() +DeleteNatGatewayOutput() +DeleteNetworkAclEntryInput() +DeleteNetworkAclEntryOutput() +DeleteNetworkAclInput() +DeleteNetworkAclOutput() +DeleteNetworkInsightsAccessScopeAnalysisInput() +DeleteNetworkInsightsAccessScopeAnalysisOutput() +DeleteNetworkInsightsAccessScopeInput() +DeleteNetworkInsightsAccessScopeOutput() +DeleteNetworkInsightsAnalysisInput() +DeleteNetworkInsightsAnalysisOutput() +DeleteNetworkInsightsPathInput() +DeleteNetworkInsightsPathOutput() +DeleteNetworkInterfaceInput() +DeleteNetworkInterfaceOutput() +DeleteNetworkInterfacePermissionInput() +DeleteNetworkInterfacePermissionOutput() +DeletePlacementGroupInput() +DeletePlacementGroupOutput() +DeletePublicIpv4PoolInput() +DeletePublicIpv4PoolOutput() +DeleteQueuedReservedInstancesError() +DeleteQueuedReservedInstancesInput() +DeleteQueuedReservedInstancesOutput() +DeleteRouteInput() +DeleteRouteOutput() +DeleteRouteServerEndpointInput() +DeleteRouteServerEndpointOutput() +DeleteRouteServerInput() +DeleteRouteServerOutput() +DeleteRouteServerPeerInput() +DeleteRouteServerPeerOutput() +DeleteRouteTableInput() +DeleteRouteTableOutput() +DeleteSecondaryNetworkInput() +DeleteSecondaryNetworkOutput() +DeleteSecondarySubnetInput() +DeleteSecondarySubnetOutput() +DeleteSecurityGroupInput() +DeleteSecurityGroupOutput() +DeleteSnapshotInput() +DeleteSnapshotOutput() +DeleteSnapshotReturnCode() +DeleteSpotDatafeedSubscriptionInput() +DeleteSpotDatafeedSubscriptionOutput() +DeleteSubnetCidrReservationInput() +DeleteSubnetCidrReservationOutput() +DeleteSubnetInput() +DeleteSubnetOutput() +DeleteTagsInput() +DeleteTagsOutput() +DeleteTrafficMirrorFilterInput() +DeleteTrafficMirrorFilterOutput() +DeleteTrafficMirrorFilterRuleInput() +DeleteTrafficMirrorFilterRuleOutput() +DeleteTrafficMirrorSessionInput() +DeleteTrafficMirrorSessionOutput() +DeleteTrafficMirrorTargetInput() +DeleteTrafficMirrorTargetOutput() +DeleteTransitGatewayClientVpnAttachmentInput() +DeleteTransitGatewayClientVpnAttachmentOutput() +DeleteTransitGatewayConnectInput() +DeleteTransitGatewayConnectOutput() +DeleteTransitGatewayConnectPeerInput() +DeleteTransitGatewayConnectPeerOutput() +DeleteTransitGatewayInput() +DeleteTransitGatewayMeteringPolicyEntryInput() +DeleteTransitGatewayMeteringPolicyEntryOutput() +DeleteTransitGatewayMeteringPolicyInput() +DeleteTransitGatewayMeteringPolicyOutput() +DeleteTransitGatewayMulticastDomainInput() +DeleteTransitGatewayMulticastDomainOutput() +DeleteTransitGatewayOutput() +DeleteTransitGatewayPeeringAttachmentInput() +DeleteTransitGatewayPeeringAttachmentOutput() +DeleteTransitGatewayPolicyTableEntryInput() +DeleteTransitGatewayPolicyTableEntryOutput() +DeleteTransitGatewayPolicyTableInput() +DeleteTransitGatewayPolicyTableOutput() +DeleteTransitGatewayPrefixListReferenceInput() +DeleteTransitGatewayPrefixListReferenceOutput() +DeleteTransitGatewayRouteInput() +DeleteTransitGatewayRouteOutput() +DeleteTransitGatewayRouteTableAnnouncementInput() +DeleteTransitGatewayRouteTableAnnouncementOutput() +DeleteTransitGatewayRouteTableInput() +DeleteTransitGatewayRouteTableOutput() +DeleteTransitGatewayVpcAttachmentInput() +DeleteTransitGatewayVpcAttachmentOutput() +DeleteVerifiedAccessEndpointInput() +DeleteVerifiedAccessEndpointOutput() +DeleteVerifiedAccessGroupInput() +DeleteVerifiedAccessGroupOutput() +DeleteVerifiedAccessInstanceInput() +DeleteVerifiedAccessInstanceOutput() +DeleteVerifiedAccessTrustProviderInput() +DeleteVerifiedAccessTrustProviderOutput() +DeleteVolumeInput() +DeleteVolumeOutput() +DeleteVpcBlockPublicAccessExclusionInput() +DeleteVpcBlockPublicAccessExclusionOutput() +DeleteVpcEncryptionControlInput() +DeleteVpcEncryptionControlOutput() +DeleteVpcEndpointConnectionNotificationsInput() +DeleteVpcEndpointConnectionNotificationsOutput() +DeleteVpcEndpointServiceConfigurationsInput() +DeleteVpcEndpointServiceConfigurationsOutput() +DeleteVpcEndpointsInput() +DeleteVpcEndpointsOutput() +DeleteVpcInput() +DeleteVpcOutput() +DeleteVpcPeeringConnectionInput() +DeleteVpcPeeringConnectionOutput() +DeleteVpnConcentratorInput() +DeleteVpnConcentratorOutput() +DeleteVpnConnectionInput() +DeleteVpnConnectionOutput() +DeleteVpnConnectionRouteInput() +DeleteVpnConnectionRouteOutput() +DeleteVpnGatewayInput() +DeleteVpnGatewayOutput() +DeprecationTimeCondition() +DeprecationTimeConditionRequest() +DeprovisionByoipCidrInput() +DeprovisionByoipCidrOutput() +DeprovisionIpamByoasnInput() +DeprovisionIpamByoasnOutput() +DeprovisionIpamPoolCidrInput() +DeprovisionIpamPoolCidrOutput() +DeprovisionPublicIpv4PoolCidrInput() +DeprovisionPublicIpv4PoolCidrOutput() +DeregisterImageInput() +DeregisterImageOutput() +DeregisterInstanceEventNotificationAttributesInput() +DeregisterInstanceEventNotificationAttributesOutput() +DeregisterInstanceTagAttributeRequest() +DeregisterTransitGatewayMulticastGroupMembersInput() +DeregisterTransitGatewayMulticastGroupMembersOutput() +DeregisterTransitGatewayMulticastGroupSourcesInput() +DeregisterTransitGatewayMulticastGroupSourcesOutput() +DescribeAccountAttributesInput() +DescribeAccountAttributesOutput() +DescribeAccountVpcEncryptionControlInput() +DescribeAccountVpcEncryptionControlOutput() +DescribeAddressesAttributeInput() +DescribeAddressesAttributeOutput() +DescribeAddressesInput() +DescribeAddressesOutput() +DescribeAddressTransfersInput() +DescribeAddressTransfersOutput() +DescribeAggregateIdFormatInput() +DescribeAggregateIdFormatOutput() +DescribeApplicationStatusCheckAssociationsInput() +DescribeApplicationStatusCheckAssociationsOutput() +DescribeApplicationStatusChecksInput() +DescribeApplicationStatusChecksOutput() +DescribeApplicationStatusInput() +DescribeApplicationStatusOutput() +DescribeAvailabilityZonesInput() +DescribeAvailabilityZonesOutput() +DescribeAwsNetworkPerformanceMetricSubscriptionsInput() +DescribeAwsNetworkPerformanceMetricSubscriptionsOutput() +DescribeBundleTasksInput() +DescribeBundleTasksOutput() +DescribeByoipCidrsInput() +DescribeByoipCidrsOutput() +DescribeCapacityBlockExtensionHistoryInput() +DescribeCapacityBlockExtensionHistoryOutput() +DescribeCapacityBlockExtensionOfferingsInput() +DescribeCapacityBlockExtensionOfferingsOutput() +DescribeCapacityBlockOfferingsInput() +DescribeCapacityBlockOfferingsOutput() +DescribeCapacityBlocksInput() +DescribeCapacityBlocksOutput() +DescribeCapacityBlockStatusInput() +DescribeCapacityBlockStatusOutput() +DescribeCapacityManagerDataExportsInput() +DescribeCapacityManagerDataExportsOutput() +DescribeCapacityReservationBillingRequestsInput() +DescribeCapacityReservationBillingRequestsOutput() +DescribeCapacityReservationCancellationQuotesInput() +DescribeCapacityReservationCancellationQuotesOutput() +DescribeCapacityReservationDateChangeQuotesInput() +DescribeCapacityReservationDateChangeQuotesOutput() +DescribeCapacityReservationFleetsInput() +DescribeCapacityReservationFleetsOutput() +DescribeCapacityReservationsInput() +DescribeCapacityReservationsOutput() +DescribeCapacityReservationTopologyInput() +DescribeCapacityReservationTopologyOutput() +DescribeCarrierGatewaysInput() +DescribeCarrierGatewaysOutput() +DescribeClassicLinkInstancesInput() +DescribeClassicLinkInstancesOutput() +DescribeClientVpnAuthorizationRulesInput() +DescribeClientVpnAuthorizationRulesOutput() +DescribeClientVpnConnectionsInput() +DescribeClientVpnConnectionsOutput() +DescribeClientVpnEndpointsInput() +DescribeClientVpnEndpointsOutput() +DescribeClientVpnRoutesInput() +DescribeClientVpnRoutesOutput() +DescribeClientVpnTargetNetworksInput() +DescribeClientVpnTargetNetworksOutput() +DescribeCoipPoolsInput() +DescribeCoipPoolsOutput() +DescribeConversionTasksInput() +DescribeConversionTasksOutput() +DescribeCustomerGatewaysInput() +DescribeCustomerGatewaysOutput() +DescribeDeclarativePoliciesReportsInput() +DescribeDeclarativePoliciesReportsOutput() +DescribeDhcpOptionsInput() +DescribeDhcpOptionsOutput() +DescribeEgressOnlyInternetGatewaysInput() +DescribeEgressOnlyInternetGatewaysOutput() +DescribeElasticGpusInput() +DescribeElasticGpusOutput() +DescribeExportImageTasksInput() +DescribeExportImageTasksOutput() +DescribeExportTasksInput() +DescribeExportTasksOutput() +DescribeFastLaunchImagesInput() +DescribeFastLaunchImagesOutput() +DescribeFastLaunchImagesSuccessItem() +DescribeFastSnapshotRestoresInput() +DescribeFastSnapshotRestoresOutput() +DescribeFastSnapshotRestoreSuccessItem() +DescribeFleetError() +DescribeFleetHistoryInput() +DescribeFleetHistoryOutput() +DescribeFleetInstancesInput() +DescribeFleetInstancesOutput() +DescribeFleetsInput() +DescribeFleetsInstances() +DescribeFleetsOutput() +DescribeFlowLogsInput() +DescribeFlowLogsOutput() +DescribeFpgaImageAttributeInput() +DescribeFpgaImageAttributeOutput() +DescribeFpgaImagesInput() +DescribeFpgaImagesOutput() +DescribeHostReservationOfferingsInput() +DescribeHostReservationOfferingsOutput() +DescribeHostReservationsInput() +DescribeHostReservationsOutput() +DescribeHostsInput() +DescribeHostsOutput() +DescribeIamInstanceProfileAssociationsInput() +DescribeIamInstanceProfileAssociationsOutput() +DescribeIdentityIdFormatInput() +DescribeIdentityIdFormatOutput() +DescribeIdFormatInput() +DescribeIdFormatOutput() +DescribeImageAttributeInput() +DescribeImageAttributeOutput() +DescribeImageReferencesInput() +DescribeImageReferencesOutput() +DescribeImagesInput() +DescribeImagesOutput() +DescribeImageUsageReportEntriesInput() +DescribeImageUsageReportEntriesOutput() +DescribeImageUsageReportsInput() +DescribeImageUsageReportsOutput() +DescribeImportImageTasksInput() +DescribeImportImageTasksOutput() +DescribeImportSnapshotTasksInput() +DescribeImportSnapshotTasksOutput() +DescribeInstanceAttributeInput() +DescribeInstanceAttributeOutput() +DescribeInstanceConnectEndpointsInput() +DescribeInstanceConnectEndpointsOutput() +DescribeInstanceCreditSpecificationsInput() +DescribeInstanceCreditSpecificationsOutput() +DescribeInstanceEventNotificationAttributesInput() +DescribeInstanceEventNotificationAttributesOutput() +DescribeInstanceEventWindowsInput() +DescribeInstanceEventWindowsOutput() +DescribeInstanceImageMetadataInput() +DescribeInstanceImageMetadataOutput() +DescribeInstancesInput() +DescribeInstancesOutput() +DescribeInstanceSqlHaHistoryStatesInput() +DescribeInstanceSqlHaHistoryStatesOutput() +DescribeInstanceSqlHaStatesInput() +DescribeInstanceSqlHaStatesOutput() +DescribeInstanceStatusInput() +DescribeInstanceStatusOutput() +DescribeInstanceTopologyInput() +DescribeInstanceTopologyOutput() +DescribeInstanceTypeOfferingsInput() +DescribeInstanceTypeOfferingsOutput() +DescribeInstanceTypesInput() +DescribeInstanceTypesOutput() +DescribeInternetGatewaysInput() +DescribeInternetGatewaysOutput() +DescribeIpamByoasnInput() +DescribeIpamByoasnOutput() +DescribeIpamExternalResourceVerificationTokensInput() +DescribeIpamExternalResourceVerificationTokensOutput() +DescribeIpamInternetRegistryAssociationsInput() +DescribeIpamInternetRegistryAssociationsOutput() +DescribeIpamPoliciesInput() +DescribeIpamPoliciesOutput() +DescribeIpamPoolAllocationsInput() +DescribeIpamPoolAllocationsOutput() +DescribeIpamPoolsInput() +DescribeIpamPoolsOutput() +DescribeIpamPrefixListResolversInput() +DescribeIpamPrefixListResolversOutput() +DescribeIpamPrefixListResolverTargetsInput() +DescribeIpamPrefixListResolverTargetsOutput() +DescribeIpamResourceDiscoveriesInput() +DescribeIpamResourceDiscoveriesOutput() +DescribeIpamResourceDiscoveryAssociationsInput() +DescribeIpamResourceDiscoveryAssociationsOutput() +DescribeIpamScopesInput() +DescribeIpamScopesOutput() +DescribeIpamsInput() +DescribeIpamsOutput() +DescribeIpv6PoolsInput() +DescribeIpv6PoolsOutput() +DescribeKeyPairsInput() +DescribeKeyPairsOutput() +DescribeLaunchTemplatesInput() +DescribeLaunchTemplatesOutput() +DescribeLaunchTemplateVersionsInput() +DescribeLaunchTemplateVersionsOutput() +DescribeLocalGatewayRouteTablesInput() +DescribeLocalGatewayRouteTablesOutput() +DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput() +DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput() +DescribeLocalGatewayRouteTableVpcAssociationsInput() +DescribeLocalGatewayRouteTableVpcAssociationsOutput() +DescribeLocalGatewaysInput() +DescribeLocalGatewaysOutput() +DescribeLocalGatewayVirtualInterfaceGroupsInput() +DescribeLocalGatewayVirtualInterfaceGroupsOutput() +DescribeLocalGatewayVirtualInterfacesInput() +DescribeLocalGatewayVirtualInterfacesOutput() +DescribeLockedSnapshotsInput() +DescribeLockedSnapshotsOutput() +DescribeMacHostsInput() +DescribeMacHostsOutput() +DescribeMacModificationTasksInput() +DescribeMacModificationTasksOutput() +DescribeManagedPrefixListsInput() +DescribeManagedPrefixListsOutput() +DescribeMovingAddressesInput() +DescribeMovingAddressesOutput() +DescribeNatGatewaysInput() +DescribeNatGatewaysOutput() +DescribeNetworkAclsInput() +DescribeNetworkAclsOutput() +DescribeNetworkInsightsAccessScopeAnalysesInput() +DescribeNetworkInsightsAccessScopeAnalysesOutput() +DescribeNetworkInsightsAccessScopesInput() +DescribeNetworkInsightsAccessScopesOutput() +DescribeNetworkInsightsAnalysesInput() +DescribeNetworkInsightsAnalysesOutput() +DescribeNetworkInsightsPathsInput() +DescribeNetworkInsightsPathsOutput() +DescribeNetworkInterfaceAttributeInput() +DescribeNetworkInterfaceAttributeOutput() +DescribeNetworkInterfacePermissionsInput() +DescribeNetworkInterfacePermissionsOutput() +DescribeNetworkInterfacesInput() +DescribeNetworkInterfacesOutput() +DescribeOutpostLagsInput() +DescribeOutpostLagsOutput() +DescribePlacementGroupsInput() +DescribePlacementGroupsOutput() +DescribePrefixListsInput() +DescribePrefixListsOutput() +DescribePrincipalIdFormatInput() +DescribePrincipalIdFormatOutput() +DescribePublicIpv4PoolsInput() +DescribePublicIpv4PoolsOutput() +DescribeRegionsInput() +DescribeRegionsOutput() +DescribeReplaceRootVolumeTasksInput() +DescribeReplaceRootVolumeTasksOutput() +DescribeReservedInstancesInput() +DescribeReservedInstancesListingsInput() +DescribeReservedInstancesListingsOutput() +DescribeReservedInstancesModificationsInput() +DescribeReservedInstancesModificationsOutput() +DescribeReservedInstancesOfferingsInput() +DescribeReservedInstancesOfferingsOutput() +DescribeReservedInstancesOutput() +DescribeRouteServerEndpointsInput() +DescribeRouteServerEndpointsOutput() +DescribeRouteServerPeersInput() +DescribeRouteServerPeersOutput() +DescribeRouteServersInput() +DescribeRouteServersOutput() +DescribeRouteTablesInput() +DescribeRouteTablesOutput() +DescribeScheduledInstanceAvailabilityInput() +DescribeScheduledInstanceAvailabilityOutput() +DescribeScheduledInstancesInput() +DescribeScheduledInstancesOutput() +DescribeSecondaryInterfacesInput() +DescribeSecondaryInterfacesOutput() +DescribeSecondaryNetworksInput() +DescribeSecondaryNetworksOutput() +DescribeSecondarySubnetsInput() +DescribeSecondarySubnetsOutput() +DescribeSecurityGroupReferencesInput() +DescribeSecurityGroupReferencesOutput() +DescribeSecurityGroupRulesInput() +DescribeSecurityGroupRulesOutput() +DescribeSecurityGroupsInput() +DescribeSecurityGroupsOutput() +DescribeSecurityGroupVpcAssociationsInput() +DescribeSecurityGroupVpcAssociationsOutput() +DescribeServiceLinkVirtualInterfacesInput() +DescribeServiceLinkVirtualInterfacesOutput() +DescribeSnapshotAttributeInput() +DescribeSnapshotAttributeOutput() +DescribeSnapshotsInput() +DescribeSnapshotsOutput() +DescribeSnapshotTierStatusInput() +DescribeSnapshotTierStatusOutput() +DescribeSpotDatafeedSubscriptionInput() +DescribeSpotDatafeedSubscriptionOutput() +DescribeSpotFleetInstancesInput() +DescribeSpotFleetInstancesOutput() +DescribeSpotFleetRequestHistoryInput() +DescribeSpotFleetRequestHistoryOutput() +DescribeSpotFleetRequestsInput() +DescribeSpotFleetRequestsOutput() +DescribeSpotInstanceRequestsInput() +DescribeSpotInstanceRequestsOutput() +DescribeSpotPriceHistoryInput() +DescribeSpotPriceHistoryOutput() +DescribeStaleSecurityGroupsInput() +DescribeStaleSecurityGroupsOutput() +DescribeStoreImageTasksInput() +DescribeStoreImageTasksOutput() +DescribeSubnetsInput() +DescribeSubnetsOutput() +DescribeTagsInput() +DescribeTagsOutput() +DescribeTrafficMirrorFilterRulesInput() +DescribeTrafficMirrorFilterRulesOutput() +DescribeTrafficMirrorFiltersInput() +DescribeTrafficMirrorFiltersOutput() +DescribeTrafficMirrorSessionsInput() +DescribeTrafficMirrorSessionsOutput() +DescribeTrafficMirrorTargetsInput() +DescribeTrafficMirrorTargetsOutput() +DescribeTransitGatewayAttachmentsInput() +DescribeTransitGatewayAttachmentsOutput() +DescribeTransitGatewayConnectPeersInput() +DescribeTransitGatewayConnectPeersOutput() +DescribeTransitGatewayConnectsInput() +DescribeTransitGatewayConnectsOutput() +DescribeTransitGatewayMeteringPoliciesInput() +DescribeTransitGatewayMeteringPoliciesOutput() +DescribeTransitGatewayMulticastDomainsInput() +DescribeTransitGatewayMulticastDomainsOutput() +DescribeTransitGatewayPeeringAttachmentsInput() +DescribeTransitGatewayPeeringAttachmentsOutput() +DescribeTransitGatewayPolicyTablesInput() +DescribeTransitGatewayPolicyTablesOutput() +DescribeTransitGatewayRouteTableAnnouncementsInput() +DescribeTransitGatewayRouteTableAnnouncementsOutput() +DescribeTransitGatewayRouteTablesInput() +DescribeTransitGatewayRouteTablesOutput() +DescribeTransitGatewaysInput() +DescribeTransitGatewaysOutput() +DescribeTransitGatewayVpcAttachmentsInput() +DescribeTransitGatewayVpcAttachmentsOutput() +DescribeTrunkInterfaceAssociationsInput() +DescribeTrunkInterfaceAssociationsOutput() +DescribeVerifiedAccessEndpointsInput() +DescribeVerifiedAccessEndpointsOutput() +DescribeVerifiedAccessGroupsInput() +DescribeVerifiedAccessGroupsOutput() +DescribeVerifiedAccessInstanceLoggingConfigurationsInput() +DescribeVerifiedAccessInstanceLoggingConfigurationsOutput() +DescribeVerifiedAccessInstancesInput() +DescribeVerifiedAccessInstancesOutput() +DescribeVerifiedAccessTrustProvidersInput() +DescribeVerifiedAccessTrustProvidersOutput() +DescribeVolumeAttributeInput() +DescribeVolumeAttributeOutput() +DescribeVolumesInput() +DescribeVolumesModificationsInput() +DescribeVolumesModificationsOutput() +DescribeVolumesOutput() +DescribeVolumeStatusInput() +DescribeVolumeStatusOutput() +DescribeVpcAttributeInput() +DescribeVpcAttributeOutput() +DescribeVpcBlockPublicAccessExclusionsInput() +DescribeVpcBlockPublicAccessExclusionsOutput() +DescribeVpcBlockPublicAccessOptionsInput() +DescribeVpcBlockPublicAccessOptionsOutput() +DescribeVpcClassicLinkDnsSupportInput() +DescribeVpcClassicLinkDnsSupportOutput() +DescribeVpcClassicLinkInput() +DescribeVpcClassicLinkOutput() +DescribeVpcEncryptionControlsInput() +DescribeVpcEncryptionControlsOutput() +DescribeVpcEndpointAssociationsInput() +DescribeVpcEndpointAssociationsOutput() +DescribeVpcEndpointConnectionNotificationsInput() +DescribeVpcEndpointConnectionNotificationsOutput() +DescribeVpcEndpointConnectionsInput() +DescribeVpcEndpointConnectionsOutput() +DescribeVpcEndpointServiceConfigurationsInput() +DescribeVpcEndpointServiceConfigurationsOutput() +DescribeVpcEndpointServicePermissionsInput() +DescribeVpcEndpointServicePermissionsOutput() +DescribeVpcEndpointServicesInput() +DescribeVpcEndpointServicesOutput() +DescribeVpcEndpointsInput() +DescribeVpcEndpointsOutput() +DescribeVpcPeeringConnectionsInput() +DescribeVpcPeeringConnectionsOutput() +DescribeVpcsInput() +DescribeVpcsOutput() +DescribeVpnConcentratorsInput() +DescribeVpnConcentratorsOutput() +DescribeVpnConnectionsInput() +DescribeVpnConnectionsOutput() +DescribeVpnGatewaysInput() +DescribeVpnGatewaysOutput() +DestinationOptionsRequest() +DestinationOptionsResponse() +DetachClassicLinkVpcInput() +DetachClassicLinkVpcOutput() +DetachImageWatermarkInput() +DetachImageWatermarkOutput() +DetachInternetGatewayInput() +DetachInternetGatewayOutput() +DetachNetworkInterfaceInput() +DetachNetworkInterfaceOutput() +DetachVerifiedAccessTrustProviderInput() +DetachVerifiedAccessTrustProviderOutput() +DetachVolumeInput() +DetachVolumeOutput() +DetachVpnGatewayInput() +DetachVpnGatewayOutput() +DeviceOptions() +DevicePostureOptions() +DevicePostureResponseOptions() +DhcpConfiguration() +DhcpOptions() +DimensionCondition() +DirectoryServiceAuthentication() +DirectoryServiceAuthenticationRequest() +DisableAddressTransferInput() +DisableAddressTransferOutput() +DisableAllowedImagesSettingsInput() +DisableAllowedImagesSettingsOutput() +DisableApplicationStatusCheckSuppressionInput() +DisableApplicationStatusCheckSuppressionOutput() +DisableAwsNetworkPerformanceMetricSubscriptionInput() +DisableAwsNetworkPerformanceMetricSubscriptionOutput() +DisableCapacityManagerInput() +DisableCapacityManagerOutput() +DisableEbsEncryptionByDefaultInput() +DisableEbsEncryptionByDefaultOutput() +DisableFastLaunchInput() +DisableFastLaunchOutput() +DisableFastSnapshotRestoreErrorItem() +DisableFastSnapshotRestoresInput() +DisableFastSnapshotRestoresOutput() +DisableFastSnapshotRestoreStateError() +DisableFastSnapshotRestoreStateErrorItem() +DisableFastSnapshotRestoreSuccessItem() +DisableImageBlockPublicAccessInput() +DisableImageBlockPublicAccessOutput() +DisableImageDeprecationInput() +DisableImageDeprecationOutput() +DisableImageDeregistrationProtectionInput() +DisableImageDeregistrationProtectionOutput() +DisableImageInput() +DisableImageOutput() +DisableInstanceSqlHaStandbyDetectionsInput() +DisableInstanceSqlHaStandbyDetectionsOutput() +DisableIpamOrganizationAdminAccountInput() +DisableIpamOrganizationAdminAccountOutput() +DisableIpamPolicyInput() +DisableIpamPolicyOutput() +DisableRouteServerPropagationInput() +DisableRouteServerPropagationOutput() +DisableSerialConsoleAccessInput() +DisableSerialConsoleAccessOutput() +DisableSnapshotBlockPublicAccessInput() +DisableSnapshotBlockPublicAccessOutput() +DisableTransitGatewayRouteTablePropagationInput() +DisableTransitGatewayRouteTablePropagationOutput() +DisableVgwRoutePropagationInput() +DisableVgwRoutePropagationOutput() +DisableVpcClassicLinkDnsSupportInput() +DisableVpcClassicLinkDnsSupportOutput() +DisableVpcClassicLinkInput() +DisableVpcClassicLinkOutput() +DisassociateAddressInput() +DisassociateAddressOutput() +DisassociateApplicationStatusCheckInput() +DisassociateApplicationStatusCheckOutput() +DisassociateCapacityReservationBillingOwnerInput() +DisassociateCapacityReservationBillingOwnerOutput() +DisassociateClientVpnTargetNetworkInput() +DisassociateClientVpnTargetNetworkOutput() +DisassociateEnclaveCertificateIamRoleInput() +DisassociateEnclaveCertificateIamRoleOutput() +DisassociateIamInstanceProfileInput() +DisassociateIamInstanceProfileOutput() +DisassociateInstanceEventWindowInput() +DisassociateInstanceEventWindowOutput() +DisassociateIpamByoasnInput() +DisassociateIpamByoasnOutput() +DisassociateIpamResourceDiscoveryInput() +DisassociateIpamResourceDiscoveryOutput() +DisassociateNatGatewayAddressInput() +DisassociateNatGatewayAddressOutput() +DisassociateRouteServerInput() +DisassociateRouteServerOutput() +DisassociateRouteTableInput() +DisassociateRouteTableOutput() +DisassociateSecurityGroupVpcInput() +DisassociateSecurityGroupVpcOutput() +DisassociateSubnetCidrBlockInput() +DisassociateSubnetCidrBlockOutput() +DisassociateTransitGatewayMulticastDomainInput() +DisassociateTransitGatewayMulticastDomainOutput() +DisassociateTransitGatewayPolicyTableInput() +DisassociateTransitGatewayPolicyTableOutput() +DisassociateTransitGatewayRouteTableInput() +DisassociateTransitGatewayRouteTableOutput() +DisassociateTrunkInterfaceInput() +DisassociateTrunkInterfaceOutput() +DisassociateVpcCidrBlockInput() +DisassociateVpcCidrBlockOutput() +DiskImage() +DiskImageDescription() +DiskImageDetail() +DiskImageVolumeDescription() +DiskInfo() +DnsEntry() +DnsOptions() +DnsOptionsSpecification() +DnsServersOptionsModifyStructure() +EbsBlockDevice() +EbsBlockDeviceResponse() +EbsCardInfo() +EbsInfo() +EbsInstanceBlockDevice() +EbsInstanceBlockDeviceSpecification() +EbsOptimizedInfo() +EbsStatusDetails() +EbsStatusSummary() +Ec2InstanceConnectEndpoint() +EfaInfo() +EgressOnlyInternetGateway() +ElasticGpuAssociation() +ElasticGpuHealth() +ElasticGpus() +ElasticGpuSpecification() +ElasticGpuSpecificationResponse() +ElasticInferenceAccelerator() +ElasticInferenceAcceleratorAssociation() +EnableAddressTransferInput() +EnableAddressTransferOutput() +EnableAllowedImagesSettingsInput() +EnableAllowedImagesSettingsOutput() +EnableApplicationStatusCheckSuppressionInput() +EnableApplicationStatusCheckSuppressionOutput() +EnableAwsNetworkPerformanceMetricSubscriptionInput() +EnableAwsNetworkPerformanceMetricSubscriptionOutput() +EnableCapacityManagerInput() +EnableCapacityManagerOutput() +EnableEbsEncryptionByDefaultInput() +EnableEbsEncryptionByDefaultOutput() +EnableFastLaunchInput() +EnableFastLaunchOutput() +EnableFastSnapshotRestoreErrorItem() +EnableFastSnapshotRestoresInput() +EnableFastSnapshotRestoresOutput() +EnableFastSnapshotRestoreStateError() +EnableFastSnapshotRestoreStateErrorItem() +EnableFastSnapshotRestoreSuccessItem() +EnableImageBlockPublicAccessInput() +EnableImageBlockPublicAccessOutput() +EnableImageDeprecationInput() +EnableImageDeprecationOutput() +EnableImageDeregistrationProtectionInput() +EnableImageDeregistrationProtectionOutput() +EnableImageInput() +EnableImageOutput() +EnableInstanceSqlHaStandbyDetectionsInput() +EnableInstanceSqlHaStandbyDetectionsOutput() +EnableIpamInternetRegistryAssociationInput() +EnableIpamInternetRegistryAssociationOutput() +EnableIpamOrganizationAdminAccountInput() +EnableIpamOrganizationAdminAccountOutput() +EnableIpamPolicyInput() +EnableIpamPolicyOutput() +EnableReachabilityAnalyzerOrganizationSharingInput() +EnableReachabilityAnalyzerOrganizationSharingOutput() +EnableRouteServerPropagationInput() +EnableRouteServerPropagationOutput() +EnableSerialConsoleAccessInput() +EnableSerialConsoleAccessOutput() +EnableSnapshotBlockPublicAccessInput() +EnableSnapshotBlockPublicAccessOutput() +EnableTransitGatewayRouteTablePropagationInput() +EnableTransitGatewayRouteTablePropagationOutput() +EnableVgwRoutePropagationInput() +EnableVgwRoutePropagationOutput() +EnableVolumeIOInput() +EnableVolumeIOOutput() +EnableVpcClassicLinkDnsSupportInput() +EnableVpcClassicLinkDnsSupportOutput() +EnableVpcClassicLinkInput() +EnableVpcClassicLinkOutput() +EnaSrdSpecification() +EnaSrdSpecificationRequest() +EnaSrdUdpSpecification() +EnaSrdUdpSpecificationRequest() +EnclaveOptions() +EnclaveOptionsRequest() +EncryptionSupport() +EventInformation() +Explanation() +ExportClientVpnClientCertificateRevocationListInput() +ExportClientVpnClientCertificateRevocationListOutput() +ExportClientVpnClientConfigurationInput() +ExportClientVpnClientConfigurationOutput() +ExportImageInput() +ExportImageOutput() +ExportImageTask() +ExportTask() +ExportTaskS3Location() +ExportTaskS3LocationRequest() +ExportToS3Task() +ExportToS3TaskSpecification() +ExportTransitGatewayRoutesInput() +ExportTransitGatewayRoutesOutput() +ExportVerifiedAccessInstanceClientConfigurationInput() +ExportVerifiedAccessInstanceClientConfigurationOutput() +ExternalAuthorityConfiguration() +FailedCapacityReservationFleetCancellationResult() +FailedQueuedPurchaseDeletion() +FastLaunchLaunchTemplateSpecificationRequest() +FastLaunchLaunchTemplateSpecificationResponse() +FastLaunchSnapshotConfigurationRequest() +FastLaunchSnapshotConfigurationResponse() +FederatedAuthentication() +FederatedAuthenticationRequest() +Filter() +FilterPortRange() +FirewallStatefulRule() +FirewallStatelessRule() +FleetBlockDeviceMappingRequest() +FleetCapacityReservation() +FleetCapacityReservationTargetRequest() +FleetData() +FleetEbsBlockDeviceRequest() +FleetIamInstanceProfileSpecificationRequest() +FleetInstanceMetadataOptionsRequest() +FleetLaunchTemplateConfig() +FleetLaunchTemplateConfigRequest() +FleetLaunchTemplateOverrides() +FleetLaunchTemplateOverridesRequest() +FleetLaunchTemplateSpecification() +FleetLaunchTemplateSpecificationRequest() +FleetSpotCapacityRebalance() +FleetSpotCapacityRebalanceRequest() +FleetSpotMaintenanceStrategies() +FleetSpotMaintenanceStrategiesRequest() +FlowLog() +FpgaDeviceInfo() +FpgaDeviceMemoryInfo() +FpgaImage() +FpgaImageAttribute() +FpgaImageState() +FpgaInfo() +GetActiveVpnTunnelStatusInput() +GetActiveVpnTunnelStatusOutput() +GetAllowedImagesSettingsInput() +GetAllowedImagesSettingsOutput() +GetAssociatedEnclaveCertificateIamRolesInput() +GetAssociatedEnclaveCertificateIamRolesOutput() +GetAssociatedIpv6PoolCidrsInput() +GetAssociatedIpv6PoolCidrsOutput() +GetAwsNetworkPerformanceDataInput() +GetAwsNetworkPerformanceDataOutput() +GetCapacityManagerAttributesInput() +GetCapacityManagerAttributesOutput() +GetCapacityManagerMetricDataInput() +GetCapacityManagerMetricDataOutput() +GetCapacityManagerMetricDimensionsInput() +GetCapacityManagerMetricDimensionsOutput() +GetCapacityManagerMonitoredTagKeysInput() +GetCapacityManagerMonitoredTagKeysOutput() +GetCapacityManagerSupportabilityScoresInput() +GetCapacityManagerSupportabilityScoresOutput() +GetCapacityReservationUsageInput() +GetCapacityReservationUsageOutput() +GetClientVpnEndpointAuthorizationPolicyInput() +GetClientVpnEndpointAuthorizationPolicyOutput() +GetCoipPoolUsageInput() +GetCoipPoolUsageOutput() +GetConsoleOutputInput() +GetConsoleOutputOutput() +GetConsoleScreenshotInput() +GetConsoleScreenshotOutput() +GetDeclarativePoliciesReportSummaryInput() +GetDeclarativePoliciesReportSummaryOutput() +GetDefaultCreditSpecificationInput() +GetDefaultCreditSpecificationOutput() +GetEbsDefaultKmsKeyIdInput() +GetEbsDefaultKmsKeyIdOutput() +GetEbsEncryptionByDefaultInput() +GetEbsEncryptionByDefaultOutput() +GetEnabledIpamPolicyInput() +GetEnabledIpamPolicyOutput() +GetFlowLogsIntegrationTemplateInput() +GetFlowLogsIntegrationTemplateOutput() +GetGroupsForCapacityReservationInput() +GetGroupsForCapacityReservationOutput() +GetHostReservationPurchasePreviewInput() +GetHostReservationPurchasePreviewOutput() +GetImageAncestryInput() +GetImageAncestryOutput() +GetImageBlockPublicAccessStateInput() +GetImageBlockPublicAccessStateOutput() +GetImageFindingsInput() +GetImageFindingsOutput() +GetInstanceMetadataDefaultsInput() +GetInstanceMetadataDefaultsOutput() +GetInstanceTpmEkPubInput() +GetInstanceTpmEkPubOutput() +GetInstanceTypesFromInstanceRequirementsInput() +GetInstanceTypesFromInstanceRequirementsOutput() +GetInstanceUefiDataInput() +GetInstanceUefiDataOutput() +GetIpamAddressHistoryInput() +GetIpamAddressHistoryOutput() +GetIpamDiscoveredAccountsInput() +GetIpamDiscoveredAccountsOutput() +GetIpamDiscoveredPublicAddressesInput() +GetIpamDiscoveredPublicAddressesOutput() +GetIpamDiscoveredResourceCidrsInput() +GetIpamDiscoveredResourceCidrsOutput() +GetIpamDiscoveredRoutesInput() +GetIpamDiscoveredRoutesOutput() +GetIpamInternetRegistryAssociationAsnsInput() +GetIpamInternetRegistryAssociationAsnsOutput() +GetIpamInternetRegistryAssociationCidrsInput() +GetIpamInternetRegistryAssociationCidrsOutput() +GetIpamPolicyAllocationRulesInput() +GetIpamPolicyAllocationRulesOutput() +GetIpamPolicyOrganizationTargetsInput() +GetIpamPolicyOrganizationTargetsOutput() +GetIpamPoolAllocationsInput() +GetIpamPoolAllocationsOutput() +GetIpamPoolCidrsInput() +GetIpamPoolCidrsOutput() +GetIpamPrefixListResolverRulesInput() +GetIpamPrefixListResolverRulesOutput() +GetIpamPrefixListResolverVersionEntriesInput() +GetIpamPrefixListResolverVersionEntriesOutput() +GetIpamPrefixListResolverVersionsInput() +GetIpamPrefixListResolverVersionsOutput() +GetIpamResourceCidrsInput() +GetIpamResourceCidrsOutput() +GetIpamRouteOriginAuthorizationsInput() +GetIpamRouteOriginAuthorizationsOutput() +GetIpamRouteProtectionFindingsInput() +GetIpamRouteProtectionFindingsOutput() +GetIpamRoutingPolicyRegistrationDeltasInput() +GetIpamRoutingPolicyRegistrationDeltasOutput() +GetIpamRoutingPolicyRegistrationsInput() +GetIpamRoutingPolicyRegistrationsOutput() +GetLaunchTemplateDataInput() +GetLaunchTemplateDataOutput() +GetManagedPrefixListAssociationsInput() +GetManagedPrefixListAssociationsOutput() +GetManagedPrefixListEntriesInput() +GetManagedPrefixListEntriesOutput() +GetManagedResourceVisibilityInput() +GetManagedResourceVisibilityOutput() +GetNetworkInsightsAccessScopeAnalysisFindingsInput() +GetNetworkInsightsAccessScopeAnalysisFindingsOutput() +GetNetworkInsightsAccessScopeContentInput() +GetNetworkInsightsAccessScopeContentOutput() +GetPasswordDataInput() +GetPasswordDataOutput() +GetReservedInstancesExchangeQuoteInput() +GetReservedInstancesExchangeQuoteOutput() +GetRouteServerAssociationsInput() +GetRouteServerAssociationsOutput() +GetRouteServerPropagationsInput() +GetRouteServerPropagationsOutput() +GetRouteServerRoutingDatabaseInput() +GetRouteServerRoutingDatabaseOutput() +GetSecurityGroupsForVpcInput() +GetSecurityGroupsForVpcOutput() +GetSerialConsoleAccessStatusInput() +GetSerialConsoleAccessStatusOutput() +GetSnapshotBlockPublicAccessStateInput() +GetSnapshotBlockPublicAccessStateOutput() +GetSpotPlacementScoresInput() +GetSpotPlacementScoresOutput() +GetSubnetCidrReservationsInput() +GetSubnetCidrReservationsOutput() +GetTransitGatewayAttachmentNatConfigurationInput() +GetTransitGatewayAttachmentNatConfigurationOutput() +GetTransitGatewayAttachmentPropagationsInput() +GetTransitGatewayAttachmentPropagationsOutput() +GetTransitGatewayMeteringPolicyEntriesInput() +GetTransitGatewayMeteringPolicyEntriesOutput() +GetTransitGatewayMulticastDomainAssociationsInput() +GetTransitGatewayMulticastDomainAssociationsOutput() +GetTransitGatewayPolicyTableAssociationsInput() +GetTransitGatewayPolicyTableAssociationsOutput() +GetTransitGatewayPolicyTableEntriesInput() +GetTransitGatewayPolicyTableEntriesOutput() +GetTransitGatewayPrefixListReferencesInput() +GetTransitGatewayPrefixListReferencesOutput() +GetTransitGatewayRouteTableAssociationsInput() +GetTransitGatewayRouteTableAssociationsOutput() +GetTransitGatewayRouteTablePropagationsInput() +GetTransitGatewayRouteTablePropagationsOutput() +GetVerifiedAccessEndpointPolicyInput() +GetVerifiedAccessEndpointPolicyOutput() +GetVerifiedAccessEndpointTargetsInput() +GetVerifiedAccessEndpointTargetsOutput() +GetVerifiedAccessGroupPolicyInput() +GetVerifiedAccessGroupPolicyOutput() +GetVpcResourcesBlockingEncryptionEnforcementInput() +GetVpcResourcesBlockingEncryptionEnforcementOutput() +GetVpnConnectionDeviceSampleConfigurationInput() +GetVpnConnectionDeviceSampleConfigurationOutput() +GetVpnConnectionDeviceTypesInput() +GetVpnConnectionDeviceTypesOutput() +GetVpnTunnelReplacementStatusInput() +GetVpnTunnelReplacementStatusOutput() +GpuDeviceInfo() +GpuDeviceMemoryInfo() +GpuInfo() +GroupIdentifier() +HealthCheckPathDestinationRequestObject() +HealthCheckPathDestinationResponseObject() +HealthCheckPathRequestObject() +HealthCheckPathResponseObject() +HealthCheckPathSourceRequestObject() +HealthCheckPathSourceResponseObject() +HibernationOptions() +HibernationOptionsRequest() +HistoryRecord() +HistoryRecordEntry() +Host() +HostCpuOptions() +HostCpuOptionsRequest() +HostInstance() +HostOffering() +HostProperties() +HostReservation() +IamInstanceProfile() +IamInstanceProfileAssociation() +IamInstanceProfileSpecification() +IcmpTypeCode() +IdFormat() +IKEVersionsListValue() +IKEVersionsRequestListValue() +Image() +ImageAncestryEntry() +ImageCriterion() +ImageCriterionRequest() +ImageDiskContainer() +ImageFinding() +ImageMetadata() +ImageRecycleBinInfo() +ImageReference() +ImageUsageReport() +ImageUsageReportEntry() +ImageUsageResourceType() +ImageUsageResourceTypeOption() +ImageUsageResourceTypeOptionRequest() +ImageUsageResourceTypeRequest() +ImageWatermark() +ImageWatermarkFilterRequest() +ImageWatermarkFilterResponse() +ImportClientVpnClientCertificateRevocationListInput() +ImportClientVpnClientCertificateRevocationListOutput() +ImportImageInput() +ImportImageLicenseConfigurationRequest() +ImportImageLicenseConfigurationResponse() +ImportImageOutput() +ImportImageTask() +ImportInstanceInput() +ImportInstanceLaunchSpecification() +ImportInstanceOutput() +ImportInstanceTaskDetails() +ImportInstanceVolumeDetailItem() +ImportKeyPairInput() +ImportKeyPairOutput() +ImportSnapshotInput() +ImportSnapshotOutput() +ImportSnapshotTask() +ImportVolumeInput() +ImportVolumeOutput() +ImportVolumeTaskDetails() +InferenceAcceleratorInfo() +InferenceDeviceInfo() +InferenceDeviceMemoryInfo() +InitializationStatusDetails() +Instance() +InstanceApplicationStatus() +InstanceAttachmentEnaSrdSpecification() +InstanceAttachmentEnaSrdUdpSpecification() +InstanceBlockDeviceMapping() +InstanceBlockDeviceMappingSpecification() +InstanceCapacity() +InstanceConnectEndpointDnsNames() +InstanceConnectEndpointPublicDnsNames() +InstanceCount() +InstanceCreditSpecification() +InstanceCreditSpecificationRequest() +InstanceEventWindow() +InstanceEventWindowAssociationRequest() +InstanceEventWindowAssociationTarget() +InstanceEventWindowDisassociationRequest() +InstanceEventWindowStateChange() +InstanceEventWindowTimeRange() +InstanceEventWindowTimeRangeRequest() +InstanceExportDetails() +InstanceFamilyCreditSpecification() +InstanceImageMetadata() +InstanceIpv4Prefix() +InstanceIpv6Address() +InstanceIpv6AddressRequest() +InstanceIpv6Prefix() +InstanceMaintenanceOptions() +InstanceMaintenanceOptionsRequest() +InstanceMarketOptionsRequest() +InstanceMetadataDefaultsResponse() +InstanceMetadataOptionsRequest() +InstanceMetadataOptionsResponse() +InstanceMonitoring() +InstanceNetworkInterface() +InstanceNetworkInterfaceAssociation() +InstanceNetworkInterfaceAttachment() +InstanceNetworkInterfaceSpecification() +InstanceNetworkPerformanceOptions() +InstanceNetworkPerformanceOptionsRequest() +InstancePrivateIpAddress() +InstanceRequirements() +InstanceRequirementsRequest() +InstanceRequirementsWithMetadataRequest() +InstanceSecondaryInterface() +InstanceSecondaryInterfaceAttachment() +InstanceSecondaryInterfacePrivateIpAddress() +InstanceSecondaryInterfacePrivateIpAddressRequest() +InstanceSecondaryInterfaceSpecificationRequest() +InstanceSpecification() +InstanceState() +InstanceStateChange() +InstanceStatus() +InstanceStatusDetails() +InstanceStatusEvent() +InstanceStatusSummary() +InstanceStorageInfo() +InstanceTagNotificationAttribute() +InstanceTopology() +InstanceTypeInfo() +InstanceTypeInfoFromInstanceRequirements() +InstanceTypeItem() +InstanceTypeOffering() +InstanceTypeSpecification() +InstanceTypeSpecificationRequest() +InstanceUsage() +IntegrateServices() +InternetGateway() +InternetGatewayAttachment() +InterruptibleCapacityAllocation() +InterruptionInfo() +Ipam() +IpamAddressHistoryRecord() +IpamCidrAuthorizationContext() +IpamDiscoveredAccount() +IpamDiscoveredPublicAddress() +IpamDiscoveredResourceCidr() +IpamDiscoveredRoute() +IpamDiscoveryFailureReason() +IpamExternalResourceVerificationToken() +IpamInternetRegistryAssociation() +IpamInternetRegistryAssociationAsn() +IpamInternetRegistryAssociationCidr() +IpamOperatingRegion() +IpamOrganizationalUnitExclusion() +IpamPolicy() +IpamPolicyAllocationRule() +IpamPolicyAllocationRuleRequest() +IpamPolicyDocument() +IpamPolicyOrganizationTarget() +IpamPool() +IpamPoolAllocation() +IpamPoolCidr() +IpamPoolCidrFailureReason() +IpamPoolSourceResource() +IpamPoolSourceResourceRequest() +IpamPrefixListResolver() +IpamPrefixListResolverRule() +IpamPrefixListResolverRuleCondition() +IpamPrefixListResolverRuleConditionRequest() +IpamPrefixListResolverRuleRequest() +IpamPrefixListResolverTarget() +IpamPrefixListResolverVersion() +IpamPrefixListResolverVersionEntry() +IpamPublicAddressSecurityGroup() +IpamPublicAddressTag() +IpamPublicAddressTags() +IpamResourceCidr() +IpamResourceDiscovery() +IpamResourceDiscoveryAssociation() +IpamResourceTag() +IpamRouteOriginAuthorization() +IpamRouteOriginAuthorizationInfo() +IpamRouteOverlap() +IpamRouteProtectionFinding() +IpamRoutingPolicyRegistration() +IpamRoutingPolicyRegistrationDelta() +IpamScope() +IpamScopeExternalAuthorityConfiguration() +IpPermission() +IpRange() +Ipv4PrefixSpecification() +Ipv4PrefixSpecificationRequest() +Ipv4PrefixSpecificationResponse() +Ipv6CidrAssociation() +Ipv6CidrBlock() +Ipv6Pool() +Ipv6PrefixSpecification() +Ipv6PrefixSpecificationRequest() +Ipv6PrefixSpecificationResponse() +Ipv6Range() +KeyPairInfo() +LastError() +LaunchPermission() +LaunchPermissionModifications() +LaunchSpecification() +LaunchTemplate() +LaunchTemplateAndOverridesResponse() +LaunchTemplateBlockDeviceMapping() +LaunchTemplateBlockDeviceMappingRequest() +LaunchTemplateCapacityReservationSpecificationRequest() +LaunchTemplateCapacityReservationSpecificationResponse() +LaunchTemplateConfig() +LaunchTemplateCpuOptions() +LaunchTemplateCpuOptionsRequest() +LaunchTemplateEbsBlockDevice() +LaunchTemplateEbsBlockDeviceRequest() +LaunchTemplateElasticInferenceAccelerator() +LaunchTemplateElasticInferenceAcceleratorResponse() +LaunchTemplateEnaSrdSpecification() +LaunchTemplateEnaSrdUdpSpecification() +LaunchTemplateEnclaveOptions() +LaunchTemplateEnclaveOptionsRequest() +LaunchTemplateHibernationOptions() +LaunchTemplateHibernationOptionsRequest() +LaunchTemplateIamInstanceProfileSpecification() +LaunchTemplateIamInstanceProfileSpecificationRequest() +LaunchTemplateInstanceMaintenanceOptions() +LaunchTemplateInstanceMaintenanceOptionsRequest() +LaunchTemplateInstanceMarketOptions() +LaunchTemplateInstanceMarketOptionsRequest() +LaunchTemplateInstanceMetadataOptions() +LaunchTemplateInstanceMetadataOptionsRequest() +LaunchTemplateInstanceNetworkInterfaceSpecification() +LaunchTemplateInstanceNetworkInterfaceSpecificationRequest() +LaunchTemplateInstanceSecondaryInterfaceSpecification() +LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest() +LaunchTemplateLicenseConfiguration() +LaunchTemplateLicenseConfigurationRequest() +LaunchTemplateNetworkPerformanceOptions() +LaunchTemplateNetworkPerformanceOptionsRequest() +LaunchTemplateOverrides() +LaunchTemplatePlacement() +LaunchTemplatePlacementRequest() +LaunchTemplatePrivateDnsNameOptions() +LaunchTemplatePrivateDnsNameOptionsRequest() +LaunchTemplatesMonitoring() +LaunchTemplatesMonitoringRequest() +LaunchTemplateSpecification() +LaunchTemplateSpotMarketOptions() +LaunchTemplateSpotMarketOptionsRequest() +LaunchTemplateTagSpecification() +LaunchTemplateTagSpecificationRequest() +LaunchTemplateVersion() +LicenseConfiguration() +LicenseConfigurationRequest() +ListImagesInRecycleBinInput() +ListImagesInRecycleBinOutput() +ListSnapshotsInRecycleBinInput() +ListSnapshotsInRecycleBinOutput() +ListVolumesInRecycleBinInput() +ListVolumesInRecycleBinOutput() +LoadBalancersConfig() +LoadPermission() +LoadPermissionModifications() +LoadPermissionRequest() +LocalGateway() +LocalGatewayRoute() +LocalGatewayRouteTable() +LocalGatewayRouteTableVirtualInterfaceGroupAssociation() +LocalGatewayRouteTableVpcAssociation() +LocalGatewayVirtualInterface() +LocalGatewayVirtualInterfaceGroup() +LockedSnapshotsInfo() +LockSnapshotInput() +LockSnapshotOutput() +MacHost() +MacModificationTask() +MacSystemIntegrityProtectionConfiguration() +MacSystemIntegrityProtectionConfigurationRequest() +MaintenanceDetails() +ManagedPrefixList() +ManagedResourceVisibilitySettings() +MediaAcceleratorInfo() +MediaDeviceInfo() +MediaDeviceMemoryInfo() +MemoryGiBPerVCpu() +MemoryGiBPerVCpuRequest() +MemoryInfo() +MemoryMiB() +MemoryMiBRequest() +MetricDataResult() +MetricPoint() +MetricValue() +ModificationQuoteCurrentConfiguration() +ModificationReservationUpdate() +ModificationTerms() +ModifyAccountVpcEncryptionControlInput() +ModifyAccountVpcEncryptionControlOutput() +ModifyAddressAttributeInput() +ModifyAddressAttributeOutput() +ModifyApplicationStatusCheckInput() +ModifyApplicationStatusCheckOutput() +ModifyAvailabilityZoneGroupInput() +ModifyAvailabilityZoneGroupOutput() +ModifyCapacityReservationFleetInput() +ModifyCapacityReservationFleetOutput() +ModifyCapacityReservationInput() +ModifyCapacityReservationOutput() +ModifyClientVpnEndpointAuthorizationPolicyInput() +ModifyClientVpnEndpointAuthorizationPolicyOutput() +ModifyClientVpnEndpointInput() +ModifyClientVpnEndpointOutput() +ModifyDefaultCreditSpecificationInput() +ModifyDefaultCreditSpecificationOutput() +ModifyEbsDefaultKmsKeyIdInput() +ModifyEbsDefaultKmsKeyIdOutput() +ModifyFleetInput() +ModifyFleetOutput() +ModifyFpgaImageAttributeInput() +ModifyFpgaImageAttributeOutput() +ModifyHostsInput() +ModifyHostsOutput() +ModifyIdentityIdFormatInput() +ModifyIdentityIdFormatOutput() +ModifyIdFormatInput() +ModifyIdFormatOutput() +ModifyImageAttributeInput() +ModifyImageAttributeOutput() +ModifyInstanceAttributeInput() +ModifyInstanceAttributeOutput() +ModifyInstanceCapacityReservationAttributesInput() +ModifyInstanceCapacityReservationAttributesOutput() +ModifyInstanceConnectEndpointInput() +ModifyInstanceConnectEndpointOutput() +ModifyInstanceCpuOptionsInput() +ModifyInstanceCpuOptionsOutput() +ModifyInstanceCreditSpecificationInput() +ModifyInstanceCreditSpecificationOutput() +ModifyInstanceEventStartTimeInput() +ModifyInstanceEventStartTimeOutput() +ModifyInstanceEventWindowInput() +ModifyInstanceEventWindowOutput() +ModifyInstanceMaintenanceOptionsInput() +ModifyInstanceMaintenanceOptionsOutput() +ModifyInstanceMetadataDefaultsInput() +ModifyInstanceMetadataDefaultsOutput() +ModifyInstanceMetadataOptionsInput() +ModifyInstanceMetadataOptionsOutput() +ModifyInstanceNetworkPerformanceOptionsInput() +ModifyInstanceNetworkPerformanceOptionsOutput() +ModifyInstancePlacementInput() +ModifyInstancePlacementOutput() +ModifyIpamInput() +ModifyIpamOutput() +ModifyIpamPolicyAllocationRulesInput() +ModifyIpamPolicyAllocationRulesOutput() +ModifyIpamPoolAllocationInput() +ModifyIpamPoolAllocationOutput() +ModifyIpamPoolInput() +ModifyIpamPoolOutput() +ModifyIpamPrefixListResolverInput() +ModifyIpamPrefixListResolverOutput() +ModifyIpamPrefixListResolverTargetInput() +ModifyIpamPrefixListResolverTargetOutput() +ModifyIpamResourceCidrInput() +ModifyIpamResourceCidrOutput() +ModifyIpamResourceDiscoveryInput() +ModifyIpamResourceDiscoveryOutput() +ModifyIpamRoutingPolicyRegistrationInput() +ModifyIpamRoutingPolicyRegistrationOutput() +ModifyIpamScopeInput() +ModifyIpamScopeOutput() +ModifyLaunchTemplateInput() +ModifyLaunchTemplateOutput() +ModifyLocalGatewayRouteInput() +ModifyLocalGatewayRouteOutput() +ModifyManagedPrefixListInput() +ModifyManagedPrefixListOutput() +ModifyManagedResourceVisibilityInput() +ModifyManagedResourceVisibilityOutput() +ModifyNetworkInterfaceAttributeInput() +ModifyNetworkInterfaceAttributeOutput() +ModifyPrivateDnsNameOptionsInput() +ModifyPrivateDnsNameOptionsOutput() +ModifyPublicIpDnsNameOptionsInput() +ModifyPublicIpDnsNameOptionsOutput() +ModifyReservedInstancesInput() +ModifyReservedInstancesOutput() +ModifyRouteServerInput() +ModifyRouteServerOutput() +ModifySecurityGroupRulesInput() +ModifySecurityGroupRulesOutput() +ModifySnapshotAttributeInput() +ModifySnapshotAttributeOutput() +ModifySnapshotTierInput() +ModifySnapshotTierOutput() +ModifySpotFleetRequestInput() +ModifySpotFleetRequestOutput() +ModifySubnetAttributeInput() +ModifySubnetAttributeOutput() +ModifyTrafficMirrorFilterNetworkServicesInput() +ModifyTrafficMirrorFilterNetworkServicesOutput() +ModifyTrafficMirrorFilterRuleInput() +ModifyTrafficMirrorFilterRuleOutput() +ModifyTrafficMirrorSessionInput() +ModifyTrafficMirrorSessionOutput() +ModifyTransitGatewayAttachmentNatConfigurationInput() +ModifyTransitGatewayAttachmentNatConfigurationOutput() +ModifyTransitGatewayInput() +ModifyTransitGatewayMeteringPolicyInput() +ModifyTransitGatewayMeteringPolicyOutput() +ModifyTransitGatewayOptions() +ModifyTransitGatewayOutput() +ModifyTransitGatewayPolicyTableEntryInput() +ModifyTransitGatewayPolicyTableEntryOutput() +ModifyTransitGatewayPrefixListReferenceInput() +ModifyTransitGatewayPrefixListReferenceOutput() +ModifyTransitGatewayVpcAttachmentInput() +ModifyTransitGatewayVpcAttachmentOutput() +ModifyTransitGatewayVpcAttachmentRequestOptions() +ModifyVerifiedAccessEndpointCidrOptions() +ModifyVerifiedAccessEndpointEniOptions() +ModifyVerifiedAccessEndpointInput() +ModifyVerifiedAccessEndpointLoadBalancerOptions() +ModifyVerifiedAccessEndpointOutput() +ModifyVerifiedAccessEndpointPolicyInput() +ModifyVerifiedAccessEndpointPolicyOutput() +ModifyVerifiedAccessEndpointPortRange() +ModifyVerifiedAccessEndpointRdsOptions() +ModifyVerifiedAccessGroupInput() +ModifyVerifiedAccessGroupOutput() +ModifyVerifiedAccessGroupPolicyInput() +ModifyVerifiedAccessGroupPolicyOutput() +ModifyVerifiedAccessInstanceInput() +ModifyVerifiedAccessInstanceLoggingConfigurationInput() +ModifyVerifiedAccessInstanceLoggingConfigurationOutput() +ModifyVerifiedAccessInstanceOutput() +ModifyVerifiedAccessNativeApplicationOidcOptions() +ModifyVerifiedAccessTrustProviderDeviceOptions() +ModifyVerifiedAccessTrustProviderInput() +ModifyVerifiedAccessTrustProviderOidcOptions() +ModifyVerifiedAccessTrustProviderOutput() +ModifyVolumeAttributeInput() +ModifyVolumeAttributeOutput() +ModifyVolumeInput() +ModifyVolumeOutput() +ModifyVpcAttributeInput() +ModifyVpcAttributeOutput() +ModifyVpcBlockPublicAccessExclusionInput() +ModifyVpcBlockPublicAccessExclusionOutput() +ModifyVpcBlockPublicAccessOptionsInput() +ModifyVpcBlockPublicAccessOptionsOutput() +ModifyVpcEncryptionControlInput() +ModifyVpcEncryptionControlOutput() +ModifyVpcEndpointConnectionNotificationInput() +ModifyVpcEndpointConnectionNotificationOutput() +ModifyVpcEndpointInput() +ModifyVpcEndpointOutput() +ModifyVpcEndpointPayerResponsibilityInput() +ModifyVpcEndpointPayerResponsibilityOutput() +ModifyVpcEndpointServiceConfigurationInput() +ModifyVpcEndpointServiceConfigurationOutput() +ModifyVpcEndpointServicePayerResponsibilityInput() +ModifyVpcEndpointServicePayerResponsibilityOutput() +ModifyVpcEndpointServicePermissionsInput() +ModifyVpcEndpointServicePermissionsOutput() +ModifyVpcPeeringConnectionOptionsInput() +ModifyVpcPeeringConnectionOptionsOutput() +ModifyVpcTenancyInput() +ModifyVpcTenancyOutput() +ModifyVpnConnectionInput() +ModifyVpnConnectionOptionsInput() +ModifyVpnConnectionOptionsOutput() +ModifyVpnConnectionOutput() +ModifyVpnTunnelCertificateInput() +ModifyVpnTunnelCertificateOutput() +ModifyVpnTunnelOptionsInput() +ModifyVpnTunnelOptionsOutput() +ModifyVpnTunnelOptionsSpecification() +Monitoring() +MonitorInstancesInput() +MonitorInstancesOutput() +MoveAddressToVpcInput() +MoveAddressToVpcOutput() +MoveByoipCidrToIpamInput() +MoveByoipCidrToIpamOutput() +MoveCapacityReservationInstancesInput() +MoveCapacityReservationInstancesOutput() +MovingAddressStatus() +NatGateway() +NatGatewayAddress() +NatGatewayAttachedAppliance() +NativeApplicationOidcOptions() +NetworkAcl() +NetworkAclAssociation() +NetworkAclEntry() +NetworkBandwidthGbps() +NetworkBandwidthGbpsRequest() +NetworkCardInfo() +NetworkInfo() +NetworkInsightsAccessScope() +NetworkInsightsAccessScopeAnalysis() +NetworkInsightsAccessScopeContent() +NetworkInsightsAnalysis() +NetworkInsightsPath() +NetworkInterface() +NetworkInterfaceAssociation() +NetworkInterfaceAttachment() +NetworkInterfaceAttachmentChanges() +NetworkInterfaceCount() +NetworkInterfaceCountRequest() +NetworkInterfaceIpv6Address() +NetworkInterfacePermission() +NetworkInterfacePermissionState() +NetworkInterfacePrivateIpAddress() +NeuronDeviceCoreInfo() +NeuronDeviceInfo() +NeuronDeviceMemoryInfo() +NeuronInfo() +NewDhcpConfiguration() +NitroTpmInfo() +OidcOptions() +OnDemandOptions() +OnDemandOptionsRequest() +OperatorRequest() +OperatorResponse() +OutpostLag() +PacketHeaderStatement() +PacketHeaderStatementRequest() +PathComponent() +PathFilter() +PathRequestFilter() +PathStatement() +PathStatementRequest() +PayerResponsibilityEntry() +PciId() +PeeringAttachmentStatus() +PeeringConnectionOptions() +PeeringConnectionOptionsRequest() +PeeringTgwInfo() +PerformanceFactorReference() +PerformanceFactorReferenceRequest() +PerformanceStatusSummary() +Phase1DHGroupNumbersListValue() +Phase1DHGroupNumbersRequestListValue() +Phase1EncryptionAlgorithmsListValue() +Phase1EncryptionAlgorithmsRequestListValue() +Phase1IntegrityAlgorithmsListValue() +Phase1IntegrityAlgorithmsRequestListValue() +Phase2DHGroupNumbersListValue() +Phase2DHGroupNumbersRequestListValue() +Phase2EncryptionAlgorithmsListValue() +Phase2EncryptionAlgorithmsRequestListValue() +Phase2IntegrityAlgorithmsListValue() +Phase2IntegrityAlgorithmsRequestListValue() +Placement() +PlacementGroup() +PlacementGroupInfo() +PlacementResponse() +PoolCidrBlock() +PortRange() +PrefixList() +PrefixListAssociation() +PrefixListEntry() +PrefixListId() +PriceSchedule() +PriceScheduleSpecification() +PricingDetail() +PrincipalIdFormat() +PrivateDnsDetails() +PrivateDnsNameConfiguration() +PrivateDnsNameOptionsOnLaunch() +PrivateDnsNameOptionsRequest() +PrivateDnsNameOptionsResponse() +PrivateIpAddressSpecification() +ProcessorInfo() +ProductCode() +PropagatingVgw() +ProvisionByoipCidrInput() +ProvisionByoipCidrOutput() +ProvisionedBandwidth() +ProvisionIpamByoasnInput() +ProvisionIpamByoasnOutput() +ProvisionIpamPoolCidrInput() +ProvisionIpamPoolCidrOutput() +ProvisionPublicIpv4PoolCidrInput() +ProvisionPublicIpv4PoolCidrOutput() +PtrUpdateStatus() +PublicIpDnsNameOptions() +PublicIpv4Pool() +PublicIpv4PoolRange() +Purchase() +PurchaseCapacityBlockExtensionInput() +PurchaseCapacityBlockExtensionOutput() +PurchaseCapacityBlockInput() +PurchaseCapacityBlockOutput() +PurchaseHostReservationInput() +PurchaseHostReservationOutput() +PurchaseRequest() +PurchaseReservedInstancesOfferingInput() +PurchaseReservedInstancesOfferingOutput() +PurchaseScheduledInstancesInput() +PurchaseScheduledInstancesOutput() +RebootInstancesInput() +RebootInstancesOutput() +RecurringCharge() +ReferencedSecurityGroup() +Region() +RegionalSummary() +RegionGeography() +RegisteredInstance() +RegisterImageInput() +RegisterImageOutput() +RegisterInstanceEventNotificationAttributesInput() +RegisterInstanceEventNotificationAttributesOutput() +RegisterInstanceTagAttributeRequest() +RegisterTransitGatewayMulticastGroupMembersInput() +RegisterTransitGatewayMulticastGroupMembersOutput() +RegisterTransitGatewayMulticastGroupSourcesInput() +RegisterTransitGatewayMulticastGroupSourcesOutput() +RejectCapacityReservationBillingOwnershipInput() +RejectCapacityReservationBillingOwnershipOutput() +RejectTransitGatewayClientVpnAttachmentInput() +RejectTransitGatewayClientVpnAttachmentOutput() +RejectTransitGatewayMulticastDomainAssociationsInput() +RejectTransitGatewayMulticastDomainAssociationsOutput() +RejectTransitGatewayPeeringAttachmentInput() +RejectTransitGatewayPeeringAttachmentOutput() +RejectTransitGatewayVpcAttachmentInput() +RejectTransitGatewayVpcAttachmentOutput() +RejectVpcEndpointConnectionsInput() +RejectVpcEndpointConnectionsOutput() +RejectVpcPeeringConnectionInput() +RejectVpcPeeringConnectionOutput() +ReleaseAddressInput() +ReleaseAddressOutput() +ReleaseHostsInput() +ReleaseHostsOutput() +ReleaseIpamPoolAllocationInput() +ReleaseIpamPoolAllocationOutput() +RemoveIpamOperatingRegion() +RemoveIpamOrganizationalUnitExclusion() +RemovePrefixListEntry() +ReplaceIamInstanceProfileAssociationInput() +ReplaceIamInstanceProfileAssociationOutput() +ReplaceImageCriteriaInAllowedImagesSettingsInput() +ReplaceImageCriteriaInAllowedImagesSettingsOutput() +ReplaceImageInstanceTypeSpecificationInput() +ReplaceImageInstanceTypeSpecificationOutput() +ReplaceNetworkAclAssociationInput() +ReplaceNetworkAclAssociationOutput() +ReplaceNetworkAclEntryInput() +ReplaceNetworkAclEntryOutput() +ReplaceRootVolumeTask() +ReplaceRouteInput() +ReplaceRouteOutput() +ReplaceRouteTableAssociationInput() +ReplaceRouteTableAssociationOutput() +ReplaceTransitGatewayRouteInput() +ReplaceTransitGatewayRouteOutput() +ReplaceVpnTunnelInput() +ReplaceVpnTunnelOutput() +ReportInstanceStatusInput() +ReportInstanceStatusOutput() +RequestFilterPortRange() +RequestIpamResourceTag() +RequestLaunchTemplateData() +RequestSpotFleetInput() +RequestSpotFleetOutput() +RequestSpotInstancesInput() +RequestSpotInstancesOutput() +RequestSpotLaunchSpecification() +Reservation() +ReservationFleetInstanceSpecification() +ReservationValue() +ReservedCapacityFallbackOptions() +ReservedCapacityFallbackOptionsRequest() +ReservedCapacityOptions() +ReservedCapacityOptionsRequest() +ReservedInstanceLimitPrice() +ReservedInstanceReservationValue() +ReservedInstances() +ReservedInstancesConfiguration() +ReservedInstancesId() +ReservedInstancesListing() +ReservedInstancesModification() +ReservedInstancesModificationResult() +ReservedInstancesOffering() +ResetAddressAttributeInput() +ResetAddressAttributeOutput() +ResetEbsDefaultKmsKeyIdInput() +ResetEbsDefaultKmsKeyIdOutput() +ResetFpgaImageAttributeInput() +ResetFpgaImageAttributeOutput() +ResetImageAttributeInput() +ResetImageAttributeOutput() +ResetInstanceAttributeInput() +ResetInstanceAttributeOutput() +ResetNetworkInterfaceAttributeInput() +ResetNetworkInterfaceAttributeOutput() +ResetSnapshotAttributeInput() +ResetSnapshotAttributeOutput() +ResourceStatement() +ResourceStatementRequest() +ResourceTypeOption() +ResourceTypeRequest() +ResponseError() +ResponseLaunchTemplateData() +RestoreAddressToClassicInput() +RestoreAddressToClassicOutput() +RestoreImageFromRecycleBinInput() +RestoreImageFromRecycleBinOutput() +RestoreManagedPrefixListVersionInput() +RestoreManagedPrefixListVersionOutput() +RestoreSnapshotFromRecycleBinInput() +RestoreSnapshotFromRecycleBinOutput() +RestoreSnapshotTierInput() +RestoreSnapshotTierOutput() +RestoreVolumeFromRecycleBinInput() +RestoreVolumeFromRecycleBinOutput() +RevokeClientVpnIngressInput() +RevokeClientVpnIngressOutput() +RevokedSecurityGroupRule() +RevokeSecurityGroupEgressInput() +RevokeSecurityGroupEgressOutput() +RevokeSecurityGroupIngressInput() +RevokeSecurityGroupIngressOutput() +Route() +RouteServer() +RouteServerAssociation() +RouteServerBfdStatus() +RouteServerBgpOptions() +RouteServerBgpOptionsRequest() +RouteServerBgpStatus() +RouteServerEndpoint() +RouteServerPeer() +RouteServerPropagation() +RouteServerRoute() +RouteServerRouteInstallationDetail() +RouteTable() +RouteTableAssociation() +RouteTableAssociationState() +RuleGroupRuleOptionsPair() +RuleGroupTypePair() +RuleOption() +RunInstancesInput() +RunInstancesMonitoringEnabled() +RunInstancesOutput() +RunScheduledInstancesInput() +RunScheduledInstancesOutput() +S3ObjectTag() +S3Storage() +ScanResultCondition() +ScanResultConditionRequest() +ScanResults() +ScheduledInstance() +ScheduledInstanceAvailability() +ScheduledInstanceRecurrence() +ScheduledInstanceRecurrenceRequest() +ScheduledInstancesBlockDeviceMapping() +ScheduledInstancesEbs() +ScheduledInstancesIamInstanceProfile() +ScheduledInstancesIpv6Address() +ScheduledInstancesLaunchSpecification() +ScheduledInstancesMonitoring() +ScheduledInstancesNetworkInterface() +ScheduledInstancesPlacement() +ScheduledInstancesPrivateIpAddressConfig() +SearchLocalGatewayRoutesInput() +SearchLocalGatewayRoutesOutput() +SearchTransitGatewayMulticastGroupsInput() +SearchTransitGatewayMulticastGroupsOutput() +SearchTransitGatewayRoutesInput() +SearchTransitGatewayRoutesOutput() +SecondaryInterface() +SecondaryInterfaceAttachment() +SecondaryInterfaceIpv4Address() +SecondaryInterfacePrivateIpAddressSpecification() +SecondaryInterfacePrivateIpAddressSpecificationRequest() +SecondaryNetwork() +SecondaryNetworkIpv4CidrBlockAssociation() +SecondarySubnet() +SecondarySubnetIpv4CidrBlockAssociation() +SecureBlobAttributeValue() +SecurityGroup() +SecurityGroupForVpc() +SecurityGroupIdentifier() +SecurityGroupReference() +SecurityGroupRule() +SecurityGroupRuleDescription() +SecurityGroupRuleRequest() +SecurityGroupRuleUpdate() +SecurityGroupVpcAssociation() +SendDiagnosticInterruptInput() +SendDiagnosticInterruptOutput() +ServiceConfiguration() +ServiceDetail() +ServiceLinkVirtualInterface() +ServiceTypeDetail() +SlotDateTimeRangeRequest() +SlotStartTimeRangeRequest() +Snapshot() +SnapshotDetail() +SnapshotDiskContainer() +SnapshotInfo() +SnapshotRecycleBinInfo() +SnapshotTaskDetail() +SnapshotTierStatus() +SpotCapacityRebalance() +SpotDatafeedSubscription() +SpotFleetLaunchSpecification() +SpotFleetMonitoring() +SpotFleetRequestConfig() +SpotFleetRequestConfigData() +SpotFleetTagSpecification() +SpotInstanceRequest() +SpotInstanceStateFault() +SpotInstanceStatus() +SpotMaintenanceStrategies() +SpotMarketOptions() +SpotOptions() +SpotOptionsRequest() +SpotPlacement() +SpotPlacementScore() +SpotPrice() +StaleIpPermission() +StaleSecurityGroup() +StartDeclarativePoliciesReportInput() +StartDeclarativePoliciesReportOutput() +StartInstancesInput() +StartInstancesOutput() +StartNetworkInsightsAccessScopeAnalysisInput() +StartNetworkInsightsAccessScopeAnalysisOutput() +StartNetworkInsightsAnalysisInput() +StartNetworkInsightsAnalysisOutput() +StartVpcEndpointServicePrivateDnsVerificationInput() +StartVpcEndpointServicePrivateDnsVerificationOutput() +StateReason() +StopInstancesInput() +StopInstancesOutput() +Storage() +StorageLocation() +StoreImageTaskResult() +Subnet() +SubnetAssociation() +SubnetCidrBlockState() +SubnetCidrReservation() +SubnetConfiguration() +SubnetIpPrefixes() +SubnetIpv6CidrBlockAssociation() +Subscription() +SuccessfulAssociationResponseObject() +SuccessfulInstanceCreditSpecificationItem() +SuccessfulQueuedPurchaseDeletion() +SuccessfulSuppressionResponseObject() +SupportedRegionDetail() +Tag() +TagDescription() +TagFieldSpecificationRequest() +TagFieldSpecificationResponse() +TagSpecification() +TargetCapacitySpecification() +TargetCapacitySpecificationRequest() +TargetConfiguration() +TargetConfigurationRequest() +TargetGroup() +TargetGroupsConfig() +TargetNetwork() +TargetReservationValue() +TerminateClientVpnConnectionsInput() +TerminateClientVpnConnectionsOutput() +TerminateConnectionStatus() +TerminateInstancesInput() +TerminateInstancesOutput() +ThroughResourcesStatement() +ThroughResourcesStatementRequest() +TotalLocalStorageGB() +TotalLocalStorageGBRequest() +TrafficMirrorFilter() +TrafficMirrorFilterRule() +TrafficMirrorPortRange() +TrafficMirrorPortRangeRequest() +TrafficMirrorSession() +TrafficMirrorTarget() +TransitGateway() +TransitGatewayAssociation() +TransitGatewayAttachment() +TransitGatewayAttachmentAssociation() +TransitGatewayAttachmentBgpConfiguration() +TransitGatewayAttachmentPropagation() +TransitGatewayClientVpnAttachment() +TransitGatewayConfigurationDescribeEndpointStructure() +TransitGatewayConfigurationInputStructure() +TransitGatewayConnect() +TransitGatewayConnectOptions() +TransitGatewayConnectPeer() +TransitGatewayConnectPeerConfiguration() +TransitGatewayConnectRequestBgpOptions() +TransitGatewayMeteringPolicy() +TransitGatewayMeteringPolicyEntry() +TransitGatewayMeteringPolicyRule() +TransitGatewayMulticastDeregisteredGroupMembers() +TransitGatewayMulticastDeregisteredGroupSources() +TransitGatewayMulticastDomain() +TransitGatewayMulticastDomainAssociation() +TransitGatewayMulticastDomainAssociations() +TransitGatewayMulticastDomainOptions() +TransitGatewayMulticastGroup() +TransitGatewayMulticastRegisteredGroupMembers() +TransitGatewayMulticastRegisteredGroupSources() +TransitGatewayNatRule() +TransitGatewayNatRuleRequest() +TransitGatewayOptions() +TransitGatewayPeeringAttachment() +TransitGatewayPeeringAttachmentOptions() +TransitGatewayPolicyRule() +TransitGatewayPolicyRuleMetaData() +TransitGatewayPolicyTable() +TransitGatewayPolicyTableAssociation() +TransitGatewayPolicyTableEntry() +TransitGatewayPrefixListAttachment() +TransitGatewayPrefixListReference() +TransitGatewayPropagation() +TransitGatewayRequestOptions() +TransitGatewayRequestPolicyRule() +TransitGatewayRequestPolicyRuleMetaData() +TransitGatewayRoute() +TransitGatewayRouteAttachment() +TransitGatewayRouteTable() +TransitGatewayRouteTableAnnouncement() +TransitGatewayRouteTableAssociation() +TransitGatewayRouteTablePropagation() +TransitGatewayRouteTableRoute() +TransitGatewayVpcAttachment() +TransitGatewayVpcAttachmentOptions() +TrunkInterfaceAssociation() +TunnelOption() +UnassignIpv6AddressesInput() +UnassignIpv6AddressesOutput() +UnassignPrivateIpAddressesInput() +UnassignPrivateIpAddressesOutput() +UnassignPrivateNatGatewayAddressInput() +UnassignPrivateNatGatewayAddressOutput() +UnlockSnapshotInput() +UnlockSnapshotOutput() +UnmonitorInstancesInput() +UnmonitorInstancesOutput() +UnsuccessfulAssociationResponseObject() +UnsuccessfulInstanceCreditSpecificationItem() +UnsuccessfulInstanceCreditSpecificationItemError() +UnsuccessfulItem() +UnsuccessfulItemError() +UnsuccessfulSuppressionResponseObject() +UpdateCapacityManagerMonitoredTagKeysInput() +UpdateCapacityManagerMonitoredTagKeysOutput() +UpdateCapacityManagerOrganizationsAccessInput() +UpdateCapacityManagerOrganizationsAccessOutput() +UpdateInterruptibleCapacityReservationAllocationInput() +UpdateInterruptibleCapacityReservationAllocationOutput() +UpdateSecurityGroupRuleDescriptionsEgressInput() +UpdateSecurityGroupRuleDescriptionsEgressOutput() +UpdateSecurityGroupRuleDescriptionsIngressInput() +UpdateSecurityGroupRuleDescriptionsIngressOutput() +UserBucket() +UserBucketDetails() +UserData() +UserIdGroupPair() +ValidateSecurityGroupQuotasForInterfaceInput() +ValidateSecurityGroupQuotasForInterfaceOutput() +ValidationError() +ValidationWarning() +VCpuCountRange() +VCpuCountRangeRequest() +VCpuInfo() +VerifiedAccessEndpoint() +VerifiedAccessEndpointCidrOptions() +VerifiedAccessEndpointEniOptions() +VerifiedAccessEndpointLoadBalancerOptions() +VerifiedAccessEndpointPortRange() +VerifiedAccessEndpointRdsOptions() +VerifiedAccessEndpointStatus() +VerifiedAccessEndpointTarget() +VerifiedAccessGroup() +VerifiedAccessInstance() +VerifiedAccessInstanceCustomSubDomain() +VerifiedAccessInstanceLoggingConfiguration() +VerifiedAccessInstanceOpenVpnClientConfiguration() +VerifiedAccessInstanceOpenVpnClientConfigurationRoute() +VerifiedAccessInstanceUserTrustProviderClientConfiguration() +VerifiedAccessLogCloudWatchLogsDestination() +VerifiedAccessLogCloudWatchLogsDestinationOptions() +VerifiedAccessLogDeliveryStatus() +VerifiedAccessLogKinesisDataFirehoseDestination() +VerifiedAccessLogKinesisDataFirehoseDestinationOptions() +VerifiedAccessLogOptions() +VerifiedAccessLogs() +VerifiedAccessLogS3Destination() +VerifiedAccessLogS3DestinationOptions() +VerifiedAccessSseSpecificationRequest() +VerifiedAccessSseSpecificationResponse() +VerifiedAccessTrustProvider() +VerifiedAccessTrustProviderCondensed() +VgwTelemetry() +Volume() +VolumeAttachment() +VolumeDetail() +VolumeModification() +VolumeRecycleBinInfo() +VolumeStatusAction() +VolumeStatusAttachmentStatus() +VolumeStatusDetails() +VolumeStatusEvent() +VolumeStatusInfo() +VolumeStatusItem() +Vpc() +VpcAttachment() +VpcBlockPublicAccessExclusion() +VpcBlockPublicAccessOptions() +VpcCidrBlockAssociation() +VpcCidrBlockState() +VpcClassicLink() +VpcEncryptionControl() +VpcEncryptionControlConfiguration() +VpcEncryptionControlExclusion() +VpcEncryptionControlExclusions() +VpcEncryptionNonCompliantResource() +VpcEndpoint() +VpcEndpointAssociation() +VpcEndpointConnection() +VpcIpv6CidrBlockAssociation() +VpcPeeringConnection() +VpcPeeringConnectionOptionsDescription() +VpcPeeringConnectionStateReason() +VpcPeeringConnectionVpcInfo() +VpnConcentrator() +VpnConnection() +VpnConnectionDeviceType() +VpnConnectionOptions() +VpnConnectionOptionsSpecification() +VpnGateway() +VpnStaticRoute() +VpnTunnelLogOptions() +VpnTunnelLogOptionsSpecification() +VpnTunnelOptionsSpecification() +WithdrawByoipCidrInput() +WithdrawByoipCidrOutput() diff --git a/clients/aws-sdk-ec2/tests/test_ec2query_protocol.py b/clients/aws-sdk-ec2/tests/test_ec2query_protocol.py new file mode 100644 index 00000000..ceaa3afa --- /dev/null +++ b/clients/aws-sdk-ec2/tests/test_ec2query_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_ec2.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-ec2/tests/test_endpoints.py b/clients/aws-sdk-ec2/tests/test_endpoints.py new file mode 100644 index 00000000..3107c929 --- /dev/null +++ b/clients/aws-sdk-ec2/tests/test_endpoints.py @@ -0,0 +1,361 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_ec2.aio.client import AsyncEC2Client +from aws_sdk_ec2.aio.config import AsyncEC2Config + + +# Endpoint tests from the endpointTests trait of com.amazonaws.ec2#AmazonEC2. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncEC2Config: + return await AsyncEC2Config.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncEC2Client: + return AsyncEC2Client(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.ap-south-1.api.aws"}}, + id="For region ap-south-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.eu-west-1.api.aws"}}, + id="For region eu-west-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.sa-east-1.api.aws"}}, + id="For region sa-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.us-east-2.api.aws"}}, + id="For region us-east-2 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.us-west-2.api.aws"}}, + id="For region us-west-2 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://ec2-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.cn-north-1.api.amazonwebservices.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ec2.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ec2-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-ec2/tests/test_model_conformance.py b/clients/aws-sdk-ec2/tests/test_model_conformance.py new file mode 100644 index 00000000..6f7fd075 --- /dev/null +++ b/clients/aws-sdk-ec2/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_ec2 import models as _models +from aws_sdk_ec2._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-ecs/README.md b/clients/aws-sdk-ecs/README.md new file mode 100644 index 00000000..1898010b --- /dev/null +++ b/clients/aws-sdk-ecs/README.md @@ -0,0 +1,26 @@ + + +## Amazon EC2 Container Service Client + +aws_sdk_ecs client + +### Documentation + +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. diff --git a/clients/aws-sdk-ecs/pyproject.toml b/clients/aws-sdk-ecs/pyproject.toml new file mode 100644 index 00000000..9442e2cb --- /dev/null +++ b/clients/aws-sdk-ecs/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_ecs" +version = "0.12.0" +description = "aws_sdk_ecs client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_ecs"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/__init__.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/__init__.py new file mode 100644 index 00000000..7f629615 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import ECSClient + from .config import ECSConfig + from .aio.client import AsyncECSClient + from .aio.config import AsyncECSConfig + +__all__ = ["ECSClient", "ECSConfig", "AsyncECSClient", "AsyncECSConfig"] + +_EXPORTS = { + "ECSClient": ".client", + "ECSConfig": ".config", + "AsyncECSClient": ".aio.client", + "AsyncECSConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/__init__.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/endpoints.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/endpoints.py new file mode 100644 index 00000000..e7082b6a --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/endpoints.py @@ -0,0 +1,60 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.ecs#AmazonEC2ContainerServiceV20141113.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 6 + (5, "FIPS is enabled but this partition does not support FIPS"), # 7 + (6, "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 8 + (5, "DualStack is enabled but this partition does not support DualStack"), # 9 + (6, "https://ecs.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 10 + (5, "Invalid Configuration: Missing Region"), # 11 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 12, 3, + 1, 4, 100_000_011, + 2, 5, 100_000_011, + 3, 8, 6, + 4, 7, 100_000_010, + 5, 100_000_008, 100_000_009, + 4, 10, 9, + 6, 100_000_006, 100_000_007, + 5, 11, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 13, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/schemas.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/schemas.py new file mode 100644 index 00000000..25ce9ac0 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/_private/schemas.py @@ -0,0 +1,11349 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.ecs" +_BI = "BoxedInteger" +_ACR = "AcceleratorCountRequest" +_m = "min" +_ma = "max" +_AM = "AcceleratorManufacturer" +_AWS = "AMAZON_WEB_SERVICES" +_sV = "smithy.api#enumValue" +_aws = "amazon-web-services" +_AMD = "AMD" +_a = "amd" +_NVIDIA = "NVIDIA" +_n = "nvidia" +_XILINX = "XILINX" +_x = "xilinx" +_HABANA = "HABANA" +_h = "habana" +_AMS = "AcceleratorManufacturerSet" +_me = "member" +_sN = "smithy.api#xmlName" +_i = "item" +_AN = "AcceleratorName" +_A = "A100" +_a_ = "a100" +_INFERENTIA = "INFERENTIA" +_in = "inferentia" +_K = "K520" +_k = "k520" +_K_ = "K80" +_k_ = "k80" +_M = "M60" +_m_ = "m60" +_RPV = "RADEON_PRO_V520" +_rpv = "radeon-pro-v520" +_T = "T4" +_t = "t4" +_VUP = "VU9P" +_v = "vu9p" +_V = "V100" +_v_ = "v100" +_AG = "A10G" +_ag = "a10g" +_H = "H100" +_h_ = "h100" +_TG = "T4G" +_tg = "t4g" +_LS = "L40S" +_l = "l40s" +_L = "L4" +_l_ = "l4" +_ANS = "AcceleratorNameSet" +_ATMMBR = "AcceleratorTotalMemoryMiBRequest" +_AT = "AcceleratorType" +_GPU = "GPU" +_g = "gpu" +_FPGA = "FPGA" +_f = "fpga" +_INFERENCE = "INFERENCE" +_inf = "inference" +_ATS = "AcceleratorTypeSet" +_S = "String" +_ADE = "AccessDeniedException" +_s = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_mes = "message" +_ATc = "AccessType" +_PUBLIC = "PUBLIC" +_PRIVATE = "PRIVATE" +_ATL = "AccessTypeList" +_AC = "AdvancedConfiguration" +_aTGA = "alternateTargetGroupArn" +_pLR = "productionListenerRule" +_tLR = "testListenerRule" +_rA = "roleArn" +_AUS = "AgentUpdateStatus" +_PENDING = "PENDING" +_STAGING = "STAGING" +_STAGED = "STAGED" +_UPDATING = "UPDATING" +_UPDATED = "UPDATED" +_FAILED = "FAILED" +_AIT = "AllowedInstanceType" +_AITS = "AllowedInstanceTypeSet" +_CE = "ClientException" +_CNFE = "ClusterNotFoundException" +_MD = "ManagedDraining" +_ENABLED = "ENABLED" +_DISABLED = "DISABLED" +_MSIWP = "ManagedScalingInstanceWarmupPeriod" +_MSSS = "ManagedScalingStepSize" +_MSS = "ManagedScalingStatus" +_MSTC = "ManagedScalingTargetCapacity" +_MS = "ManagedScaling" +_st = "status" +_tC = "targetCapacity" +_mSSS = "minimumScalingStepSize" +_mSSSa = "maximumScalingStepSize" +_iWP = "instanceWarmupPeriod" +_MTP = "ManagedTerminationProtection" +_ASGP = "AutoScalingGroupProvider" +_aSGA = "autoScalingGroupArn" +_sm = "smithy.api#required" +_mS = "managedScaling" +_mTP = "managedTerminationProtection" +_mD = "managedDraining" +_ARAS = "AutoRepairActionsStatus" +_ARC = "AutoRepairConfiguration" +_aS = "actionsStatus" +_IO = "InfrastructureOptimization" +_sIA = "scaleInAfter" +_COT = "CapacityOptionType" +_OD = "ON_DEMAND" +_SPOT = "SPOT" +_RESERVED = "RESERVED" +_CRP = "CapacityReservationPreference" +_RO = "RESERVATIONS_ONLY" +_RF = "RESERVATIONS_FIRST" +_RE = "RESERVATIONS_EXCLUDED" +_CRR = "CapacityReservationRequest" +_rGA = "reservationGroupArn" +_rP = "reservationPreference" +_BB = "BoxedBoolean" +_BM = "BareMetal" +_INCLUDED = "INCLUDED" +_inc = "included" +_REQUIRED = "REQUIRED" +_r = "required" +_EXCLUDED = "EXCLUDED" +_e = "excluded" +_BEBMR = "BaselineEbsBandwidthMbpsRequest" +_BP = "BurstablePerformance" +_CM = "CpuManufacturer" +_INTEL = "INTEL" +_int = "intel" +_CMS = "CpuManufacturerSet" +_EIT = "ExcludedInstanceType" +_EITS = "ExcludedInstanceTypeSet" +_IG = "InstanceGeneration" +_CURRENT = "CURRENT" +_cu = "current" +_PREVIOUS = "PREVIOUS" +_p = "previous" +_IGS = "InstanceGenerationSet" +_LSo = "LocalStorage" +_LST = "LocalStorageType" +_HDD = "HDD" +_hd = "hdd" +_SSD = "SSD" +_ss = "ssd" +_LSTS = "LocalStorageTypeSet" +_BD = "BoxedDouble" +_MGBPVCR = "MemoryGiBPerVCpuRequest" +_MMBR = "MemoryMiBRequest" +_NBGR = "NetworkBandwidthGbpsRequest" +_NICR = "NetworkInterfaceCountRequest" +_TLSGBR = "TotalLocalStorageGBRequest" +_VCCRR = "VCpuCountRangeRequest" +_IRR = "InstanceRequirementsRequest" +_vCC = "vCpuCount" +_mMB = "memoryMiB" +_cM = "cpuManufacturers" +_mGBPVC = "memoryGiBPerVCpu" +_eIT = "excludedInstanceTypes" +_iG = "instanceGenerations" +_sMPPOLP = "spotMaxPricePercentageOverLowestPrice" +_oDMPPOLP = "onDemandMaxPricePercentageOverLowestPrice" +_bM = "bareMetal" +_bP = "burstablePerformance" +_rHS = "requireHibernateSupport" +_nIC = "networkInterfaceCount" +_lS = "localStorage" +_lST = "localStorageTypes" +_tLSGB = "totalLocalStorageGB" +_bEBM = "baselineEbsBandwidthMbps" +_aT = "acceleratorTypes" +_aC = "acceleratorCount" +_aM = "acceleratorManufacturers" +_aN = "acceleratorNames" +_aTMMB = "acceleratorTotalMemoryMiB" +_nBG = "networkBandwidthGbps" +_aIT = "allowedInstanceTypes" +_mSPAPOOODP = "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" +_B = "Boolean" +_smi = "smithy.api#default" +_MILSC = "ManagedInstancesLocalStorageConfiguration" +_uLS = "useLocalStorage" +_MIMO = "ManagedInstancesMonitoringOptions" +_BASIC = "BASIC" +_DETAILED = "DETAILED" +_SL = "StringList" +_MINC = "ManagedInstancesNetworkConfiguration" +_su = "subnets" +_sG = "securityGroups" +_TVSGB = "TaskVolumeStorageGiB" +_MISC = "ManagedInstancesStorageConfiguration" +_sSGB = "storageSizeGiB" +_ILT = "InstanceLaunchTemplate" +_eIPA = "ec2InstanceProfileArn" +_nC = "networkConfiguration" +_sC = "storageConfiguration" +_lSC = "localStorageConfiguration" +_mo = "monitoring" +_cOT = "capacityOptionType" +_iMTP = "instanceMetadataTagsPropagation" +_iR = "instanceRequirements" +_fE = "fipsEnabled" +_cR = "capacityReservations" +_nEE = "nitroEnclavesEnabled" +_PMIT = "PropagateMITags" +_CP = "CAPACITY_PROVIDER" +_NONE = "NONE" +_CMIPC = "CreateManagedInstancesProviderConfiguration" +_iRA = "infrastructureRoleArn" +_iLT = "instanceLaunchTemplate" +_pT = "propagateTags" +_iO = "infrastructureOptimization" +_aRC = "autoRepairConfiguration" +_TK = "TagKey" +_TV = "TagValue" +_Ta = "Tag" +_ke = "key" +_va = "value" +_Tag = "Tags" +_CCPI = "CreateCapacityProviderInput" +_sSI = "smithy.synthetic#originalShapeId" +_cCCPR = "com.amazonaws.ecs#CreateCapacityProviderRequest" +_smit = "smithy.api#input" +_na = "name" +_cl = "cluster" +_aSGP = "autoScalingGroupProvider" +_mIP = "managedInstancesProvider" +_ta = "tags" +_MIP = "ManagedInstancesProvider" +_CPS = "CapacityProviderStatus" +_PROVISIONING = "PROVISIONING" +_ACTIVE = "ACTIVE" +_DEPROVISIONING = "DEPROVISIONING" +_INACTIVE = "INACTIVE" +_CPT = "CapacityProviderType" +_EA = "EC2_AUTOSCALING" +_MI = "MANAGED_INSTANCES" +_FARGATE = "FARGATE" +_FS = "FARGATE_SPOT" +_CPUS = "CapacityProviderUpdateStatus" +_CIP = "CREATE_IN_PROGRESS" +_CC = "CREATE_COMPLETE" +_CF = "CREATE_FAILED" +_DIP = "DELETE_IN_PROGRESS" +_DC = "DELETE_COMPLETE" +_DF = "DELETE_FAILED" +_UIP = "UPDATE_IN_PROGRESS" +_UC = "UPDATE_COMPLETE" +_UF = "UPDATE_FAILED" +_CPa = "CapacityProvider" +_cPA = "capacityProviderArn" +_uS = "updateStatus" +_uSR = "updateStatusReason" +_ty = "type" +_CCPO = "CreateCapacityProviderOutput" +_cCCPRo = "com.amazonaws.ecs#CreateCapacityProviderResponse" +_smith = "smithy.api#output" +_cP = "capacityProvider" +_IPE = "InvalidParameterException" +_LEE = "LimitExceededException" +_SE = "ServerException" +_se = "server" +_UFE = "UnsupportedFeatureException" +_UIPE = "UpdateInProgressException" +_CCP = "CreateCapacityProvider" +_DCPI = "DeleteCapacityProviderInput" +_cDCPR = "com.amazonaws.ecs#DeleteCapacityProviderRequest" +_DCPO = "DeleteCapacityProviderOutput" +_cDCPRo = "com.amazonaws.ecs#DeleteCapacityProviderResponse" +_DCP = "DeleteCapacityProvider" +_CPF = "CapacityProviderField" +_TAGS = "TAGS" +_CPFL = "CapacityProviderFieldList" +_DCPIe = "DescribeCapacityProvidersInput" +_cDCPRom = "com.amazonaws.ecs#DescribeCapacityProvidersRequest" +_cPa = "capacityProviders" +_incl = "include" +_mR = "maxResults" +_nT = "nextToken" +_CPap = "CapacityProviders" +_F = "Failure" +_ar = "arn" +_re = "reason" +_d = "detail" +_Fa = "Failures" +_DCPOe = "DescribeCapacityProvidersOutput" +_cDCPRoma = "com.amazonaws.ecs#DescribeCapacityProvidersResponse" +_fa = "failures" +_DCPe = "DescribeCapacityProviders" +_ASGPU = "AutoScalingGroupProviderUpdate" +_ILTU = "InstanceLaunchTemplateUpdate" +_UMIPC = "UpdateManagedInstancesProviderConfiguration" +_UCPI = "UpdateCapacityProviderInput" +_cUCPR = "com.amazonaws.ecs#UpdateCapacityProviderRequest" +_UCPO = "UpdateCapacityProviderOutput" +_cUCPRo = "com.amazonaws.ecs#UpdateCapacityProviderResponse" +_UCP = "UpdateCapacityProvider" +_ECLC = "ExecuteCommandLogConfiguration" +_cWLGN = "cloudWatchLogGroupName" +_cWEE = "cloudWatchEncryptionEnabled" +_sBN = "s3BucketName" +_sEE = "s3EncryptionEnabled" +_sKP = "s3KeyPrefix" +_ECL = "ExecuteCommandLogging" +_DEFAULT = "DEFAULT" +_OVERRIDE = "OVERRIDE" +_ECC = "ExecuteCommandConfiguration" +_kKI = "kmsKeyId" +_lo = "logging" +_lC = "logConfiguration" +_MSC = "ManagedStorageConfiguration" +_fESKKI = "fargateEphemeralStorageKmsKeyId" +_CCl = "ClusterConfiguration" +_eCC = "executeCommandConfiguration" +_mSC = "managedStorageConfiguration" +_CPSIB = "CapacityProviderStrategyItemBase" +_CPSIW = "CapacityProviderStrategyItemWeight" +_CPSI = "CapacityProviderStrategyItem" +_w = "weight" +_b = "base" +_CPSa = "CapacityProviderStrategy" +_CSCDR = "ClusterServiceConnectDefaultsRequest" +_nam = "namespace" +_CSN = "ClusterSettingName" +_CI = "CONTAINER_INSIGHTS" +_cI = "containerInsights" +_CS = "ClusterSetting" +_CSl = "ClusterSettings" +_CCI = "CreateClusterInput" +_cCCR = "com.amazonaws.ecs#CreateClusterRequest" +_cN = "clusterName" +_set = "settings" +_co = "configuration" +_dCPS = "defaultCapacityProviderStrategy" +_sCD = "serviceConnectDefaults" +_I = "Integer" +_KVP = "KeyValuePair" +_AD = "AttachmentDetails" +_At = "Attachment" +_id = "id" +_de = "details" +_Att = "Attachments" +_CSCD = "ClusterServiceConnectDefaults" +_St = "Statistics" +_C = "Cluster" +_cA = "clusterArn" +_rCIC = "registeredContainerInstancesCount" +_rTC = "runningTasksCount" +_pTC = "pendingTasksCount" +_aSC = "activeServicesCount" +_sta = "statistics" +_at = "attachments" +_aSt = "attachmentsStatus" +_CCO = "CreateClusterOutput" +_cCCRo = "com.amazonaws.ecs#CreateClusterResponse" +_NNFE = "NamespaceNotFoundException" +_CCr = "CreateCluster" +_CCCPE = "ClusterContainsCapacityProviderException" +_CCCIE = "ClusterContainsContainerInstancesException" +_CCSE = "ClusterContainsServicesException" +_CCTE = "ClusterContainsTasksException" +_DCI = "DeleteClusterInput" +_cDCR = "com.amazonaws.ecs#DeleteClusterRequest" +_DCO = "DeleteClusterOutput" +_cDCRo = "com.amazonaws.ecs#DeleteClusterResponse" +_DCe = "DeleteCluster" +_DCII = "DeregisterContainerInstanceInput" +_cDCIR = "com.amazonaws.ecs#DeregisterContainerInstanceRequest" +_cIo = "containerInstance" +_fo = "force" +_TT = "TargetType" +_CI_ = "CONTAINER_INSTANCE" +_ci = "container-instance" +_Attr = "Attribute" +_tT = "targetType" +_tI = "targetId" +_Attri = "Attributes" +_GSM = "GpuSharingMode" +_IDLE = "IDLE" +_NM = "NVIDIA_MPS" +_DEDICATED = "DEDICATED" +_GD = "GpuDevice" +_gI = "gpuId" +_sM = "sharingMode" +_tMIMB = "totalMemoryInMiB" +_rMIMB = "remainingMemoryInMiB" +_cC = "containerCount" +_GDp = "GpuDevices" +_Ti = "Timestamp" +_IHCS = "InstanceHealthCheckState" +_OK = "OK" +_IMPAIRED = "IMPAIRED" +_ID = "INSUFFICIENT_DATA" +_INITIALIZING = "INITIALIZING" +_IHCT = "InstanceHealthCheckType" +_CR = "CONTAINER_RUNTIME" +_AC_ = "ACCELERATED_COMPUTE" +_DAEMON = "DAEMON" +_AC__ = "AGENT_CONNECTIVITY" +_IHCR = "InstanceHealthCheckResult" +_sR = "statusReason" +_lU = "lastUpdated" +_lSCa = "lastStatusChange" +_IHCRL = "InstanceHealthCheckResultList" +_CIHS = "ContainerInstanceHealthStatus" +_oS = "overallStatus" +_D = "Double" +_Lo = "Long" +_R = "Resource" +_dV = "doubleValue" +_lV = "longValue" +_iV = "integerValue" +_sSV = "stringSetValue" +_Re = "Resources" +_VI = "VersionInfo" +_aV = "agentVersion" +_aH = "agentHash" +_dVo = "dockerVersion" +_CIo = "ContainerInstance" +_cIA = "containerInstanceArn" +_eII = "ec2InstanceId" +_cPN = "capacityProviderName" +_ve = "version" +_vI = "versionInfo" +_rR = "remainingResources" +_rRe = "registeredResources" +_aCg = "agentConnected" +_aUS = "agentUpdateStatus" +_att = "attributes" +_rAe = "registeredAt" +_hS = "healthStatus" +_gD = "gpuDevices" +_DCIO = "DeregisterContainerInstanceOutput" +_cDCIRo = "com.amazonaws.ecs#DeregisterContainerInstanceResponse" +_DCIe = "DeregisterContainerInstance" +_CFl = "ClusterField" +_ATTACHMENTS = "ATTACHMENTS" +_CONFIGURATIONS = "CONFIGURATIONS" +_SETTINGS = "SETTINGS" +_STATISTICS = "STATISTICS" +_CFL = "ClusterFieldList" +_DCIes = "DescribeClustersInput" +_cDCRom = "com.amazonaws.ecs#DescribeClustersRequest" +_clu = "clusters" +_Cl = "Clusters" +_DCOe = "DescribeClustersOutput" +_cDCRoma = "com.amazonaws.ecs#DescribeClustersResponse" +_DCes = "DescribeClusters" +_ECI = "ExecuteCommandInput" +_cECR = "com.amazonaws.ecs#ExecuteCommandRequest" +_con = "container" +_com = "command" +_inte = "interactive" +_tas = "task" +_SS = "SensitiveString" +_smithy = "smithy.api#sensitive" +_Se = "Session" +_sI = "sessionId" +_sU = "streamUrl" +_tV = "tokenValue" +_ECO = "ExecuteCommandOutput" +_cECRo = "com.amazonaws.ecs#ExecuteCommandResponse" +_cAo = "containerArn" +_cNo = "containerName" +_ses = "session" +_tA = "taskArn" +_TNCE = "TargetNotConnectedException" +_EC = "ExecuteCommand" +_LAI = "ListAttributesInput" +_cLAR = "com.amazonaws.ecs#ListAttributesRequest" +_aNt = "attributeName" +_aVt = "attributeValue" +_LAO = "ListAttributesOutput" +_cLARo = "com.amazonaws.ecs#ListAttributesResponse" +_LA = "ListAttributes" +_LCI = "ListClustersInput" +_cLCR = "com.amazonaws.ecs#ListClustersRequest" +_LCO = "ListClustersOutput" +_cLCRo = "com.amazonaws.ecs#ListClustersResponse" +_cAl = "clusterArns" +_LC = "ListClusters" +_CIS = "ContainerInstanceStatus" +_DRAINING = "DRAINING" +_REGISTERING = "REGISTERING" +_DEREGISTERING = "DEREGISTERING" +_RF_ = "REGISTRATION_FAILED" +_LCII = "ListContainerInstancesInput" +_cLCIR = "com.amazonaws.ecs#ListContainerInstancesRequest" +_fi = "filter" +_LCIO = "ListContainerInstancesOutput" +_cLCIRo = "com.amazonaws.ecs#ListContainerInstancesResponse" +_cIAo = "containerInstanceArns" +_LCIi = "ListContainerInstances" +_PCCPI = "PutClusterCapacityProvidersInput" +_cPCCPR = "com.amazonaws.ecs#PutClusterCapacityProvidersRequest" +_PCCPO = "PutClusterCapacityProvidersOutput" +_cPCCPRo = "com.amazonaws.ecs#PutClusterCapacityProvidersResponse" +_RIUE = "ResourceInUseException" +_PCCP = "PutClusterCapacityProviders" +_ASC = "AttachmentStateChange" +_aA = "attachmentArn" +_ASCt = "AttachmentStateChanges" +_SASCI = "SubmitAttachmentStateChangesInput" +_cSASCR = "com.amazonaws.ecs#SubmitAttachmentStateChangesRequest" +_SASCO = "SubmitAttachmentStateChangesOutput" +_cSASCRo = "com.amazonaws.ecs#SubmitAttachmentStateChangesResponse" +_ac = "acknowledgment" +_SASC = "SubmitAttachmentStateChanges" +_TP = "TransportProtocol" +_TCP = "TCP" +_tc = "tcp" +_UDP = "UDP" +_u = "udp" +_NB = "NetworkBinding" +_bIP = "bindIP" +_cPo = "containerPort" +_hP = "hostPort" +_pr = "protocol" +_cPR = "containerPortRange" +_hPR = "hostPortRange" +_NBe = "NetworkBindings" +_SCSCI = "SubmitContainerStateChangeInput" +_cSCSCR = "com.amazonaws.ecs#SubmitContainerStateChangeRequest" +_rI = "runtimeId" +_eC = "exitCode" +_nB = "networkBindings" +_SCSCO = "SubmitContainerStateChangeOutput" +_cSCSCRo = "com.amazonaws.ecs#SubmitContainerStateChangeResponse" +_SCSC = "SubmitContainerStateChange" +_CSC = "ContainerStateChange" +_iD = "imageDigest" +_CSCo = "ContainerStateChanges" +_MAN = "ManagedAgentName" +_ECA = "ExecuteCommandAgent" +_MASC = "ManagedAgentStateChange" +_mAN = "managedAgentName" +_MASCa = "ManagedAgentStateChanges" +_STSCI = "SubmitTaskStateChangeInput" +_cSTSCR = "com.amazonaws.ecs#SubmitTaskStateChangeRequest" +_cont = "containers" +_mA = "managedAgents" +_pSA = "pullStartedAt" +_pSAu = "pullStoppedAt" +_eSA = "executionStoppedAt" +_STSCO = "SubmitTaskStateChangeOutput" +_cSTSCRo = "com.amazonaws.ecs#SubmitTaskStateChangeResponse" +_STSC = "SubmitTaskStateChange" +_UCI = "UpdateClusterInput" +_cUCR = "com.amazonaws.ecs#UpdateClusterRequest" +_UCO = "UpdateClusterOutput" +_cUCRo = "com.amazonaws.ecs#UpdateClusterResponse" +_UCp = "UpdateCluster" +_UCSI = "UpdateClusterSettingsInput" +_cUCSR = "com.amazonaws.ecs#UpdateClusterSettingsRequest" +_UCSO = "UpdateClusterSettingsOutput" +_cUCSRo = "com.amazonaws.ecs#UpdateClusterSettingsResponse" +_UCS = "UpdateClusterSettings" +_DAI = "DeleteAttributesInput" +_cDAR = "com.amazonaws.ecs#DeleteAttributesRequest" +_DAO = "DeleteAttributesOutput" +_cDARo = "com.amazonaws.ecs#DeleteAttributesResponse" +_TNFE = "TargetNotFoundException" +_DA = "DeleteAttributes" +_CIF = "ContainerInstanceField" +_CIH = "CONTAINER_INSTANCE_HEALTH" +_CIFL = "ContainerInstanceFieldList" +_DCIIe = "DescribeContainerInstancesInput" +_cDCIRom = "com.amazonaws.ecs#DescribeContainerInstancesRequest" +_cIon = "containerInstances" +_CIon = "ContainerInstances" +_DCIOe = "DescribeContainerInstancesOutput" +_cDCIRoma = "com.amazonaws.ecs#DescribeContainerInstancesResponse" +_DCIesc = "DescribeContainerInstances" +_DS = "DesiredStatus" +_RUNNING = "RUNNING" +_STOPPED = "STOPPED" +_LT = "LaunchType" +_EC_ = "EC2" +_EXTERNAL = "EXTERNAL" +_LTI = "ListTasksInput" +_cLTR = "com.amazonaws.ecs#ListTasksRequest" +_fam = "family" +_sB = "startedBy" +_sNe = "serviceName" +_dS = "desiredStatus" +_lT = "launchType" +_dN = "daemonName" +_LTO = "ListTasksOutput" +_cLTRo = "com.amazonaws.ecs#ListTasksResponse" +_tAa = "taskArns" +_SNFE = "ServiceNotFoundException" +_LTi = "ListTasks" +_ALEE = "AttributeLimitExceededException" +_PAI = "PutAttributesInput" +_cPAR = "com.amazonaws.ecs#PutAttributesRequest" +_PAO = "PutAttributesOutput" +_cPARo = "com.amazonaws.ecs#PutAttributesResponse" +_PA = "PutAttributes" +_PDT = "PlatformDeviceType" +_ND = "NEURON_DEVICE" +_PD = "PlatformDevice" +_PDl = "PlatformDevices" +_RCII = "RegisterContainerInstanceInput" +_cRCIR = "com.amazonaws.ecs#RegisterContainerInstanceRequest" +_iID = "instanceIdentityDocument" +_iIDS = "instanceIdentityDocumentSignature" +_tR = "totalResources" +_pD = "platformDevices" +_RCIO = "RegisterContainerInstanceOutput" +_cRCIRo = "com.amazonaws.ecs#RegisterContainerInstanceResponse" +_RCI = "RegisterContainerInstance" +_MVE = "MissingVersionException" +_NUAE = "NoUpdateAvailableException" +_UCAI = "UpdateContainerAgentInput" +_cUCAR = "com.amazonaws.ecs#UpdateContainerAgentRequest" +_UCAO = "UpdateContainerAgentOutput" +_cUCARo = "com.amazonaws.ecs#UpdateContainerAgentResponse" +_UCA = "UpdateContainerAgent" +_UCISI = "UpdateContainerInstancesStateInput" +_cUCISR = "com.amazonaws.ecs#UpdateContainerInstancesStateRequest" +_UCISO = "UpdateContainerInstancesStateOutput" +_cUCISRo = "com.amazonaws.ecs#UpdateContainerInstancesStateResponse" +_UCIS = "UpdateContainerInstancesState" +_DLHA = "DeploymentLifecycleHookAction" +_ROLLBACK = "ROLLBACK" +_CONTINUE = "CONTINUE" +_CSDI = "ContinueServiceDeploymentInput" +_cCSDR = "com.amazonaws.ecs#ContinueServiceDeploymentRequest" +_sDA = "serviceDeploymentArn" +_hI = "hookId" +_act = "action" +_CSDO = "ContinueServiceDeploymentOutput" +_cCSDRo = "com.amazonaws.ecs#ContinueServiceDeploymentResponse" +_SDNFE = "ServiceDeploymentNotFoundException" +_CSD = "ContinueServiceDeployment" +_DDDI = "DescribeDaemonDeploymentsInput" +_cDDDR = "com.amazonaws.ecs#DescribeDaemonDeploymentsRequest" +_dDA = "daemonDeploymentArns" +_DDRMS = "DaemonDeploymentRollbackMonitorsStatus" +_TRIGGERED = "TRIGGERED" +_MONITORING = "MONITORING" +_MC = "MONITORING_COMPLETE" +_DDA = "DaemonDeploymentAlarms" +_aNl = "alarmNames" +_tAN = "triggeredAlarmNames" +_DCB = "DaemonCircuitBreaker" +_fC = "failureCount" +_th = "threshold" +_DAC = "DaemonAlarmConfiguration" +_en = "enable" +_DDP = "DaemonDrainPercent" +_DDC = "DaemonDeploymentConfiguration" +_dP = "drainPercent" +_al = "alarms" +_bTIM = "bakeTimeInMinutes" +_DR = "DaemonRollback" +_sA = "startedAt" +_rTDRA = "rollbackTargetDaemonRevisionArn" +_rCP = "rollbackCapacityProviders" +_DDCP = "DaemonDeploymentCapacityProvider" +_rIC = "runningInstanceCount" +_wDIC = "withoutDaemonInstanceCount" +_dIC = "drainingInstanceCount" +_DDCPL = "DaemonDeploymentCapacityProviderList" +_DDRD = "DaemonDeploymentRevisionDetail" +_tRIC = "totalRunningInstanceCount" +_tWDIC = "totalWithoutDaemonInstanceCount" +_tDIC = "totalDrainingInstanceCount" +_DDRDL = "DaemonDeploymentRevisionDetailList" +_DDS = "DaemonDeploymentStatus" +_SUCCESSFUL = "SUCCESSFUL" +_SR = "STOP_REQUESTED" +_IP = "IN_PROGRESS" +_RIP = "ROLLBACK_IN_PROGRESS" +_RS = "ROLLBACK_SUCCESSFUL" +_RF__ = "ROLLBACK_FAILED" +_DD = "DaemonDeployment" +_dDAa = "daemonDeploymentArn" +_tDR = "targetDaemonRevision" +_sDR = "sourceDaemonRevisions" +_cB = "circuitBreaker" +_ro = "rollback" +_dC = "deploymentConfiguration" +_cAr = "createdAt" +_sAt = "stoppedAt" +_fA = "finishedAt" +_DDL = "DaemonDeploymentList" +_DDDO = "DescribeDaemonDeploymentsOutput" +_cDDDRo = "com.amazonaws.ecs#DescribeDaemonDeploymentsResponse" +_dD = "daemonDeployments" +_DDD = "DescribeDaemonDeployments" +_DPT = "DaemonPropagateTags" +_CDI = "CreateDaemonInput" +_cCDR = "com.amazonaws.ecs#CreateDaemonRequest" +_dTDA = "daemonTaskDefinitionArn" +_cPAa = "capacityProviderArns" +_eECSMT = "enableECSManagedTags" +_eEC = "enableExecuteCommand" +_cT = "clientToken" +_cr = "critical" +_DSa = "DaemonStatus" +_CDO = "CreateDaemonOutput" +_cCDRo = "com.amazonaws.ecs#CreateDaemonResponse" +_dA = "daemonArn" +_dAe = "deploymentArn" +_PUE = "PlatformUnknownException" +_CD = "CreateDaemon" +_DNAE = "DaemonNotActiveException" +_DNFE = "DaemonNotFoundException" +_DDI = "DeleteDaemonInput" +_cDDR = "com.amazonaws.ecs#DeleteDaemonRequest" +_DDO = "DeleteDaemonOutput" +_cDDRo = "com.amazonaws.ecs#DeleteDaemonResponse" +_uA = "updatedAt" +_DDe = "DeleteDaemon" +_DDIe = "DescribeDaemonInput" +_cDDRom = "com.amazonaws.ecs#DescribeDaemonRequest" +_DCPa = "DaemonCapacityProvider" +_rC = "runningCount" +_wDC = "withoutDaemonCount" +_DCPL = "DaemonCapacityProviderList" +_DRD = "DaemonRevisionDetail" +_tRC = "totalRunningCount" +_tWDC = "totalWithoutDaemonCount" +_DRDL = "DaemonRevisionDetailList" +_DDa = "DaemonDetail" +_cRu = "currentRevisions" +_DDOe = "DescribeDaemonOutput" +_cDDRoma = "com.amazonaws.ecs#DescribeDaemonResponse" +_da = "daemon" +_DDes = "DescribeDaemon" +_CA = "CreatedAt" +_be = "before" +_af = "after" +_DDSL = "DaemonDeploymentStatusList" +_LDDI = "ListDaemonDeploymentsInput" +_cLDDR = "com.amazonaws.ecs#ListDaemonDeploymentsRequest" +_DDSa = "DaemonDeploymentSummary" +_tDRA = "targetDaemonRevisionArn" +_DDSLa = "DaemonDeploymentSummaryList" +_LDDO = "ListDaemonDeploymentsOutput" +_cLDDRo = "com.amazonaws.ecs#ListDaemonDeploymentsResponse" +_LDD = "ListDaemonDeployments" +_LDI = "ListDaemonsInput" +_cLDR = "com.amazonaws.ecs#ListDaemonsRequest" +_DSae = "DaemonSummary" +_DSL = "DaemonSummariesList" +_LDO = "ListDaemonsOutput" +_cLDRo = "com.amazonaws.ecs#ListDaemonsResponse" +_dSL = "daemonSummariesList" +_LD = "ListDaemons" +_UDI = "UpdateDaemonInput" +_cUDR = "com.amazonaws.ecs#UpdateDaemonRequest" +_UDO = "UpdateDaemonOutput" +_cUDRo = "com.amazonaws.ecs#UpdateDaemonResponse" +_UD = "UpdateDaemon" +_DDRI = "DescribeDaemonRevisionsInput" +_cDDRR = "com.amazonaws.ecs#DescribeDaemonRevisionsRequest" +_dRA = "daemonRevisionArns" +_DCIa = "DaemonContainerImage" +_im = "image" +_DCIae = "DaemonContainerImages" +_DRa = "DaemonRevision" +_dRAa = "daemonRevisionArn" +_cIont = "containerImages" +_DRae = "DaemonRevisions" +_DDRO = "DescribeDaemonRevisionsOutput" +_cDDRRo = "com.amazonaws.ecs#DescribeDaemonRevisionsResponse" +_dR = "daemonRevisions" +_DDR = "DescribeDaemonRevisions" +_DDTDI = "DeleteDaemonTaskDefinitionInput" +_cDDTDR = "com.amazonaws.ecs#DeleteDaemonTaskDefinitionRequest" +_dTD = "daemonTaskDefinition" +_DDTDO = "DeleteDaemonTaskDefinitionOutput" +_cDDTDRo = "com.amazonaws.ecs#DeleteDaemonTaskDefinitionResponse" +_DDTD = "DeleteDaemonTaskDefinition" +_DDTDIe = "DescribeDaemonTaskDefinitionInput" +_cDDTDRom = "com.amazonaws.ecs#DescribeDaemonTaskDefinitionRequest" +_CCo = "ContainerCondition" +_START = "START" +_COMPLETE = "COMPLETE" +_SUCCESS = "SUCCESS" +_HEALTHY = "HEALTHY" +_CDo = "ContainerDependency" +_cond = "condition" +_CDon = "ContainerDependencies" +_EV = "EnvironmentVariables" +_EFT = "EnvironmentFileType" +_S_ = "S3" +_s_ = "s3" +_EF = "EnvironmentFile" +_EFn = "EnvironmentFiles" +_FCOM = "FirelensConfigurationOptionsMap" +_FCT = "FirelensConfigurationType" +_FLUENTD = "FLUENTD" +_fl = "fluentd" +_FLUENTBIT = "FLUENTBIT" +_flu = "fluentbit" +_FC = "FirelensConfiguration" +_o = "options" +_HC = "HealthCheck" +_inter = "interval" +_ti = "timeout" +_ret = "retries" +_sP = "startPeriod" +_KC = "KernelCapabilities" +_ad = "add" +_dr = "drop" +_DCPev = "DeviceCgroupPermission" +_READ = "READ" +_rea = "read" +_WRITE = "WRITE" +_wr = "write" +_MKNOD = "MKNOD" +_mk = "mknod" +_DCPevi = "DeviceCgroupPermissions" +_De = "Device" +_hPo = "hostPath" +_cPon = "containerPath" +_pe = "permissions" +_DL = "DevicesList" +_Tm = "Tmpfs" +_si = "size" +_mO = "mountOptions" +_TL = "TmpfsList" +_DLP = "DaemonLinuxParameters" +_ca = "capabilities" +_dev = "devices" +_iPE = "initProcessEnabled" +_tm = "tmpfs" +_LDo = "LogDriver" +_JF = "JSON_FILE" +_jf = "json-file" +_SYSLOG = "SYSLOG" +_sy = "syslog" +_JOURNALD = "JOURNALD" +_j = "journald" +_GELF = "GELF" +_ge = "gelf" +_AWSLOGS = "AWSLOGS" +_aw = "awslogs" +_SPLUNK = "SPLUNK" +_sp = "splunk" +_AWSFIRELENS = "AWSFIRELENS" +_awsf = "awsfirelens" +_LCOM = "LogConfigurationOptionsMap" +_Sec = "Secret" +_vF = "valueFrom" +_SLe = "SecretList" +_LCo = "LogConfiguration" +_lD = "logDriver" +_sO = "secretOptions" +_MP = "MountPoint" +_sVo = "sourceVolume" +_rO = "readOnly" +_MPL = "MountPointList" +_RC = "RepositoryCredentials" +_cPr = "credentialsParameter" +_IL = "IntegerList" +_CRPo = "ContainerRestartPolicy" +_ena = "enabled" +_iEC = "ignoredExitCodes" +_rAP = "restartAttemptPeriod" +_SC = "SystemControl" +_SCy = "SystemControls" +_UN = "UlimitName" +_CORE = "CORE" +_cor = "core" +_CPU = "CPU" +_cp = "cpu" +_DATA = "DATA" +_dat = "data" +_FSIZE = "FSIZE" +_fs = "fsize" +_LOCKS = "LOCKS" +_loc = "locks" +_MEMLOCK = "MEMLOCK" +_mem = "memlock" +_MSGQUEUE = "MSGQUEUE" +_ms = "msgqueue" +_NICE = "NICE" +_ni = "nice" +_NOFILE = "NOFILE" +_no = "nofile" +_NPROC = "NPROC" +_np = "nproc" +_RSS = "RSS" +_rs = "rss" +_RTPRIO = "RTPRIO" +_rt = "rtprio" +_RTTIME = "RTTIME" +_rtt = "rttime" +_SIGPENDING = "SIGPENDING" +_sig = "sigpending" +_STACK = "STACK" +_stac = "stack" +_U = "Ulimit" +_sL = "softLimit" +_hL = "hardLimit" +_UL = "UlimitList" +_DCD = "DaemonContainerDefinition" +_memo = "memory" +_mRe = "memoryReservation" +_rCe = "repositoryCredentials" +_hC = "healthCheck" +_es = "essential" +_eP = "entryPoint" +_wD = "workingDirectory" +_eF = "environmentFiles" +_env = "environment" +_sec = "secrets" +_rRF = "readonlyRootFilesystem" +_mP = "mountPoints" +_fCi = "firelensConfiguration" +_pri = "privileged" +_us = "user" +_ul = "ulimits" +_lP = "linuxParameters" +_dO = "dependsOn" +_sT = "startTimeout" +_sTt = "stopTimeout" +_sCy = "systemControls" +_pTs = "pseudoTerminal" +_rPe = "restartPolicy" +_DCDL = "DaemonContainerDefinitionList" +_DIM = "DaemonIpcMode" +_non = "none" +_SHARED = "SHARED" +_sh = "shared" +_DPM = "DaemonPidMode" +_DTDS = "DaemonTaskDefinitionStatus" +_DELETED = "DELETED" +_HVP = "HostVolumeProperties" +_sPo = "sourcePath" +_LDVC = "LogDriverVolumeConfiguration" +_dri = "driver" +_DV = "DaemonVolume" +_ho = "host" +_lDVC = "logDriverVolumeConfiguration" +_DVL = "DaemonVolumeList" +_DTD = "DaemonTaskDefinition" +_rev = "revision" +_tRA = "taskRoleArn" +_eRA = "executionRoleArn" +_cD = "containerDefinitions" +_vo = "volumes" +_dRAe = "deleteRequestedAt" +_rB = "registeredBy" +_pM = "pidMode" +_iM = "ipcMode" +_DDTDOe = "DescribeDaemonTaskDefinitionOutput" +_cDDTDRoma = "com.amazonaws.ecs#DescribeDaemonTaskDefinitionResponse" +_DDTDe = "DescribeDaemonTaskDefinition" +_DTDRF = "DaemonTaskDefinitionRevisionFilter" +_LR = "LAST_REGISTERED" +_SO = "SortOrder" +_ASC_ = "ASC" +_DESC = "DESC" +_DTDSF = "DaemonTaskDefinitionStatusFilter" +_ALL = "ALL" +_LDTDI = "ListDaemonTaskDefinitionsInput" +_cLDTDR = "com.amazonaws.ecs#ListDaemonTaskDefinitionsRequest" +_fP = "familyPrefix" +_so = "sort" +_DTDSa = "DaemonTaskDefinitionSummary" +_DTDSae = "DaemonTaskDefinitionSummaries" +_LDTDO = "ListDaemonTaskDefinitionsOutput" +_cLDTDRo = "com.amazonaws.ecs#ListDaemonTaskDefinitionsResponse" +_dTDa = "daemonTaskDefinitions" +_LDTD = "ListDaemonTaskDefinitions" +_RDTDI = "RegisterDaemonTaskDefinitionInput" +_cRDTDR = "com.amazonaws.ecs#RegisterDaemonTaskDefinitionRequest" +_RDTDO = "RegisterDaemonTaskDefinitionOutput" +_cRDTDRo = "com.amazonaws.ecs#RegisterDaemonTaskDefinitionResponse" +_RDTD = "RegisterDaemonTaskDefinition" +_SN = "SettingName" +_SLAF = "SERVICE_LONG_ARN_FORMAT" +_sLAF = "serviceLongArnFormat" +_TLAF = "TASK_LONG_ARN_FORMAT" +_tLAF = "taskLongArnFormat" +_CILAF = "CONTAINER_INSTANCE_LONG_ARN_FORMAT" +_cILAF = "containerInstanceLongArnFormat" +_AT_ = "AWSVPC_TRUNKING" +_aTw = "awsvpcTrunking" +_FFM = "FARGATE_FIPS_MODE" +_fFIPSM = "fargateFIPSMode" +_TRA = "TAG_RESOURCE_AUTHORIZATION" +_tRAa = "tagResourceAuthorization" +_FTRWP = "FARGATE_TASK_RETIREMENT_WAIT_PERIOD" +_fTRWP = "fargateTaskRetirementWaitPeriod" +_GDA = "GUARD_DUTY_ACTIVATE" +_gDA = "guardDutyActivate" +_DLDM = "DEFAULT_LOG_DRIVER_MODE" +_dLDM = "defaultLogDriverMode" +_FEW = "FARGATE_EVENT_WINDOWS" +_fEW = "fargateEventWindows" +_DASI = "DeleteAccountSettingInput" +_cDASR = "com.amazonaws.ecs#DeleteAccountSettingRequest" +_pA = "principalArn" +_ST = "SettingType" +_USER = "USER" +_AM_ = "AWS_MANAGED" +_am = "aws_managed" +_Set = "Setting" +_DASO = "DeleteAccountSettingOutput" +_cDASRo = "com.amazonaws.ecs#DeleteAccountSettingResponse" +_sett = "setting" +_DAS = "DeleteAccountSetting" +_DTDI = "DeregisterTaskDefinitionInput" +_cDTDR = "com.amazonaws.ecs#DeregisterTaskDefinitionRequest" +_tD = "taskDefinition" +_Co = "Compatibility" +_CL = "CompatibilityList" +_DLM = "DockerLabelsMap" +_HE = "HostEntry" +_hos = "hostname" +_iA = "ipAddress" +_HEL = "HostEntryList" +_LP = "LinuxParameters" +_sMS = "sharedMemorySize" +_mSa = "maxSwap" +_sw = "swappiness" +_AP = "ApplicationProtocol" +_HTTP = "HTTP" +_ht = "http" +_HTTP_ = "HTTP2" +_htt = "http2" +_GRPC = "GRPC" +_gr = "grpc" +_PM = "PortMapping" +_aP = "appProtocol" +_PML = "PortMappingList" +_NMA = "NvidiaMpsAllocation" +_mCP = "maxComputePercent" +_SSh = "SharingStrategy" +_nM = "nvidiaMps" +_RT = "ResourceType" +_IA = "INFERENCE_ACCELERATOR" +_IAn = "InferenceAccelerator" +_NDe = "NeuronDevice" +_RR = "ResourceRequirement" +_v__ = "" +_sS = "sharingStrategy" +_RRe = "ResourceRequirements" +_VC = "VersionConsistency" +_di = "disabled" +_VF = "VolumeFrom" +_sCo = "sourceContainer" +_VFL = "VolumeFromList" +_CDont = "ContainerDefinition" +_li = "links" +_pMo = "portMappings" +_vFo = "volumesFrom" +_vC = "versionConsistency" +_dNi = "disableNetworking" +_dSn = "dnsServers" +_dSD = "dnsSearchDomains" +_eH = "extraHosts" +_dSO = "dockerSecurityOptions" +_dL = "dockerLabels" +_rRes = "resourceRequirements" +_cS = "credentialSpecs" +_CDonta = "ContainerDefinitions" +_ES = "EphemeralStorage" +_sIGB = "sizeInGiB" +_dNe = "deviceName" +_dT = "deviceType" +_IAnf = "InferenceAccelerators" +_IM = "IpcMode" +_HOST = "HOST" +_TASK = "TASK" +_NMe = "NetworkMode" +_BRIDGE = "BRIDGE" +_br = "bridge" +_AWSVPC = "AWSVPC" +_awsv = "awsvpc" +_PMi = "PidMode" +_TDPCT = "TaskDefinitionPlacementConstraintType" +_MO = "MEMBER_OF" +_mOe = "memberOf" +_TDPC = "TaskDefinitionPlacementConstraint" +_ex = "expression" +_TDPCa = "TaskDefinitionPlacementConstraints" +_PCP = "ProxyConfigurationProperties" +_PCT = "ProxyConfigurationType" +_APPMESH = "APPMESH" +_PC = "ProxyConfiguration" +_pro = "properties" +_RA = "RequiresAttributes" +_CPUA = "CPUArchitecture" +_X = "X86_64" +_ARM = "ARM64" +_OSF = "OSFamily" +_WSF = "WINDOWS_SERVER_2019_FULL" +_WSC = "WINDOWS_SERVER_2019_CORE" +_WSF_ = "WINDOWS_SERVER_2016_FULL" +_WSC_ = "WINDOWS_SERVER_2004_CORE" +_WSC__ = "WINDOWS_SERVER_2022_CORE" +_WSF__ = "WINDOWS_SERVER_2022_FULL" +_WSC___ = "WINDOWS_SERVER_2025_CORE" +_WSF___ = "WINDOWS_SERVER_2025_FULL" +_WSC____ = "WINDOWS_SERVER_20H2_CORE" +_LINUX = "LINUX" +_RP = "RuntimePlatform" +_cAp = "cpuArchitecture" +_oSF = "operatingSystemFamily" +_TDS = "TaskDefinitionStatus" +_IMs = "IsolationMode" +_IS = "ISOLATED_SANDBOX" +_CS_ = "CONFIDENTIAL_SANDBOX" +_TEC = "TrustedExecutionConfiguration" +_iMs = "isolationMode" +_aPt = "attestationPolicy" +_SM = "StringMap" +_Sc = "Scope" +_DVC = "DockerVolumeConfiguration" +_sc = "scope" +_au = "autoprovision" +_dOr = "driverOpts" +_la = "labels" +_EFSACIAM = "EFSAuthorizationConfigIAM" +_EFSAC = "EFSAuthorizationConfig" +_aPI = "accessPointId" +_ia = "iam" +_EFSTE = "EFSTransitEncryption" +_EFSVC = "EFSVolumeConfiguration" +_fSI = "fileSystemId" +_rD = "rootDirectory" +_tE = "transitEncryption" +_tEP = "transitEncryptionPort" +_aCu = "authorizationConfig" +_FSWFSAC = "FSxWindowsFileServerAuthorizationConfig" +_do = "domain" +_FSWFSVC = "FSxWindowsFileServerVolumeConfiguration" +_SFVC = "S3FilesVolumeConfiguration" +_fSA = "fileSystemArn" +_aPA = "accessPointArn" +_Vo = "Volume" +_dVC = "dockerVolumeConfiguration" +_eVC = "efsVolumeConfiguration" +_sVC = "s3filesVolumeConfiguration" +_fWFSVC = "fsxWindowsFileServerVolumeConfiguration" +_cAL = "configuredAtLaunch" +_VL = "VolumeList" +_TD = "TaskDefinition" +_tDA = "taskDefinitionArn" +_nMe = "networkMode" +_rAeq = "requiresAttributes" +_pC = "placementConstraints" +_comp = "compatibilities" +_rPu = "runtimePlatform" +_rCeq = "requiresCompatibilities" +_iAn = "inferenceAccelerators" +_pCr = "proxyConfiguration" +_dAer = "deregisteredAt" +_eS = "ephemeralStorage" +_eFI = "enableFaultInjection" +_tEC = "trustedExecutionConfiguration" +_DTDO = "DeregisterTaskDefinitionOutput" +_cDTDRo = "com.amazonaws.ecs#DeregisterTaskDefinitionResponse" +_DTDe = "DeregisterTaskDefinition" +_TDF = "TaskDefinitionField" +_TDFL = "TaskDefinitionFieldList" +_DTDIe = "DescribeTaskDefinitionInput" +_cDTDRom = "com.amazonaws.ecs#DescribeTaskDefinitionRequest" +_DTDOe = "DescribeTaskDefinitionOutput" +_cDTDRoma = "com.amazonaws.ecs#DescribeTaskDefinitionResponse" +_DTDes = "DescribeTaskDefinition" +_DPEI = "DiscoverPollEndpointInput" +_cDPER = "com.amazonaws.ecs#DiscoverPollEndpointRequest" +_DPEO = "DiscoverPollEndpointOutput" +_cDPERo = "com.amazonaws.ecs#DiscoverPollEndpointResponse" +_end = "endpoint" +_tEe = "telemetryEndpoint" +_sCE = "serviceConnectEndpoint" +_DPE = "DiscoverPollEndpoint" +_AGWCI = "AssociateGatewayWithClusterInput" +_cAGWCR = "com.amazonaws.ecs#AssociateGatewayWithClusterRequest" +_ga = "gateway" +_GCAS = "GatewayClusterAssociationStatus" +_DISASSOCIATING = "DISASSOCIATING" +_AGWCO = "AssociateGatewayWithClusterOutput" +_cAGWCRo = "com.amazonaws.ecs#AssociateGatewayWithClusterResponse" +_gA = "gatewayArn" +_GNFE = "GatewayNotFoundException" +_AGWC = "AssociateGatewayWithCluster" +_GEALSD = "GatewayElbAccessLogS3Destination" +_bu = "bucket" +_pre = "prefix" +_GEALD = "GatewayElbAccessLogDestination" +_GEALC = "GatewayElbAccessLogConfiguration" +_des = "destination" +_GADMM = "GatewayAlbDesyncMitigationMode" +_MONITOR = "MONITOR" +_mon = "monitor" +_DEFENSIVE = "DEFENSIVE" +_def = "defensive" +_STRICTEST = "STRICTEST" +_str = "strictest" +_GEIAT = "GatewayElbIpAddressType" +_IPV = "IPV4" +_ip = "ipv4" +_DUALSTACK = "DUALSTACK" +_du = "dualstack" +_DWPI = "DUALSTACK_WITHOUT_PUBLIC_IPV4" +_dwpi = "dualstack-without-public-ipv4" +_GENC = "GatewayElbNetworkConfiguration" +_iSG = "inboundSecurityGroup" +_iAT = "ipAddressType" +_GAP = "GatewayAlbProtocol" +_HTTPS = "HTTPS" +_GES = "GatewayElbScheme" +_IF = "INTERNET_FACING" +_if = "internet-facing" +_INTERNAL = "INTERNAL" +_intern = "internal" +_GTTH = "GatewayTestTrafficHeader" +_val = "values" +_GATTR = "GatewayAlbTestTrafficRules" +_he = "header" +_HSAC = "HostSharedAlbConfiguration" +_sch = "scheme" +_wACLA = "webACLArn" +_aL = "accessLogs" +_po = "port" +_mAC = "maxAlbCount" +_hD = "httpDesync" +_tTR = "testTrafficRules" +_GC = "GatewayConfiguration" +_hSA = "hostSharedAlb" +_PGT = "PropagateGatewayTags" +_GATEWAY = "GATEWAY" +_CGI = "CreateGatewayInput" +_cCGR = "com.amazonaws.ecs#CreateGatewayRequest" +_sTm = "smithy.api#idempotencyToken" +_dPe = "deletionProtection" +_GS = "GatewayStatus" +_CGO = "CreateGatewayOutput" +_cCGRo = "com.amazonaws.ecs#CreateGatewayResponse" +_CG = "CreateGateway" +_DGI = "DeleteGatewayInput" +_cDGR = "com.amazonaws.ecs#DeleteGatewayRequest" +_DGO = "DeleteGatewayOutput" +_cDGRo = "com.amazonaws.ecs#DeleteGatewayResponse" +_DG = "DeleteGateway" +_DGIe = "DescribeGatewayInput" +_cDGRom = "com.amazonaws.ecs#DescribeGatewayRequest" +_DGAC = "DescribeGatewayAlbConfiguration" +_cAC = "currentAlbCount" +_DGC = "DescribeGatewayConfiguration" +_GOE = "GatewayOperationError" +_op = "operation" +_cod = "code" +_GOEL = "GatewayOperationErrorList" +_GRF = "GatewayResourceFailure" +_er = "errors" +_GRFL = "GatewayResourceFailureList" +_G = "Gateway" +_aTc = "accessType" +_DGOe = "DescribeGatewayOutput" +_cDGRoma = "com.amazonaws.ecs#DescribeGatewayResponse" +_DGe = "DescribeGateway" +_DGRI = "DescribeGatewayResourcesInput" +_cDGRR = "com.amazonaws.ecs#DescribeGatewayResourcesRequest" +_EGR = "ElbGatewayResources" +_lBA = "loadBalancerArn" +_lA = "listenerArn" +_sGe = "securityGroup" +_gRA = "gatewayRouteArns" +_EGRL = "ElbGatewayResourcesList" +_GIR = "GatewayInfrastructureResources" +_GR = "GatewayResources" +_res = "resources" +_DGRO = "DescribeGatewayResourcesOutput" +_cDGRRo = "com.amazonaws.ecs#DescribeGatewayResourcesResponse" +_gR = "gatewayResources" +_DGR = "DescribeGatewayResources" +_DGFCI = "DisassociateGatewayFromClusterInput" +_cDGFCR = "com.amazonaws.ecs#DisassociateGatewayFromClusterRequest" +_DGFCO = "DisassociateGatewayFromClusterOutput" +_cDGFCRo = "com.amazonaws.ecs#DisassociateGatewayFromClusterResponse" +_RNFE = "ResourceNotFoundException" +_DGFC = "DisassociateGatewayFromCluster" +_GCASL = "GatewayClusterAssociationStatusList" +_LGCAI = "ListGatewayClusterAssociationsInput" +_cLGCAR = "com.amazonaws.ecs#ListGatewayClusterAssociationsRequest" +_GCASa = "GatewayClusterAssociationSummary" +_GCASLa = "GatewayClusterAssociationSummaryList" +_LGCAO = "ListGatewayClusterAssociationsOutput" +_cLGCARo = "com.amazonaws.ecs#ListGatewayClusterAssociationsResponse" +_gCA = "gatewayClusterAssociations" +_LGCA = "ListGatewayClusterAssociations" +_GSL = "GatewayStatusList" +_LGI = "ListGatewaysInput" +_cLGR = "com.amazonaws.ecs#ListGatewaysRequest" +_name = "names" +_GSa = "GatewaySummary" +_GSLa = "GatewaySummaryList" +_LGO = "ListGatewaysOutput" +_cLGRo = "com.amazonaws.ecs#ListGatewaysResponse" +_gat = "gateways" +_LG = "ListGateways" +_UGNC = "UpdateGatewayNetworkConfiguration" +_UGAC = "UpdateGatewayAlbConfiguration" +_UGC = "UpdateGatewayConfiguration" +_UGI = "UpdateGatewayInput" +_cUGR = "com.amazonaws.ecs#UpdateGatewayRequest" +_UGO = "UpdateGatewayOutput" +_cUGRo = "com.amazonaws.ecs#UpdateGatewayResponse" +_UG = "UpdateGateway" +_DGRIe = "DescribeGatewayRouteInput" +_cDGRRom = "com.amazonaws.ecs#DescribeGatewayRouteRequest" +_gRAa = "gatewayRouteArn" +_GRLBSG = "GatewayRouteLoadBalancerSecurityGroup" +_rAu = "ruleArns" +_GRLBSGL = "GatewayRouteLoadBalancerSecurityGroupList" +_GRAR = "GatewayRouteAlbResources" +_aCA = "acmCertificateArn" +_lRA = "listenerRuleArn" +_tLRA = "testListenerRuleArns" +_lBSG = "loadBalancerSecurityGroups" +_sSGA = "serviceSecurityGroupArn" +_GRARL = "GatewayRouteAlbResourcesList" +_GRR = "GatewayRouteResources" +_GRS = "GatewayRouteStatus" +_GRa = "GatewayRoute" +_sAe = "serviceArn" +_sCPN = "serviceContainerPortName" +_sUe = "serviceUrl" +_DGROe = "DescribeGatewayRouteOutput" +_cDGRRoma = "com.amazonaws.ecs#DescribeGatewayRouteResponse" +_gRa = "gatewayRoute" +_DGRe = "DescribeGatewayRoute" +_GRSL = "GatewayRouteStatusList" +_LGRI = "ListGatewayRoutesInput" +_cLGRR = "com.amazonaws.ecs#ListGatewayRoutesRequest" +_ser = "service" +_GRSa = "GatewayRouteSummary" +_GRSLa = "GatewayRouteSummaryList" +_LGRO = "ListGatewayRoutesOutput" +_cLGRRo = "com.amazonaws.ecs#ListGatewayRoutesResponse" +_gRat = "gatewayRoutes" +_LGR = "ListGatewayRoutes" +_LASI = "ListAccountSettingsInput" +_cLASR = "com.amazonaws.ecs#ListAccountSettingsRequest" +_eSf = "effectiveSettings" +_Sett = "Settings" +_LASO = "ListAccountSettingsOutput" +_cLASRo = "com.amazonaws.ecs#ListAccountSettingsResponse" +_LAS = "ListAccountSettings" +_LSBNI = "ListServicesByNamespaceInput" +_cLSBNR = "com.amazonaws.ecs#ListServicesByNamespaceRequest" +_LSBNO = "ListServicesByNamespaceOutput" +_cLSBNRo = "com.amazonaws.ecs#ListServicesByNamespaceResponse" +_sAer = "serviceArns" +_LSBN = "ListServicesByNamespace" +_LTFRI = "ListTagsForResourceInput" +_cLTFRR = "com.amazonaws.ecs#ListTagsForResourceRequest" +_rAes = "resourceArn" +_LTFRO = "ListTagsForResourceOutput" +_cLTFRRo = "com.amazonaws.ecs#ListTagsForResourceResponse" +_LTFR = "ListTagsForResource" +_TDFS = "TaskDefinitionFamilyStatus" +_LTDFI = "ListTaskDefinitionFamiliesInput" +_cLTDFR = "com.amazonaws.ecs#ListTaskDefinitionFamiliesRequest" +_LTDFO = "ListTaskDefinitionFamiliesOutput" +_cLTDFRo = "com.amazonaws.ecs#ListTaskDefinitionFamiliesResponse" +_fami = "families" +_LTDF = "ListTaskDefinitionFamilies" +_PASI = "PutAccountSettingInput" +_cPASR = "com.amazonaws.ecs#PutAccountSettingRequest" +_PASO = "PutAccountSettingOutput" +_cPASRo = "com.amazonaws.ecs#PutAccountSettingResponse" +_PAS = "PutAccountSetting" +_PASDI = "PutAccountSettingDefaultInput" +_cPASDR = "com.amazonaws.ecs#PutAccountSettingDefaultRequest" +_PASDO = "PutAccountSettingDefaultOutput" +_cPASDRo = "com.amazonaws.ecs#PutAccountSettingDefaultResponse" +_PASD = "PutAccountSettingDefault" +_DSDI = "DescribeServiceDeploymentsInput" +_cDSDR = "com.amazonaws.ecs#DescribeServiceDeploymentsRequest" +_sDAe = "serviceDeploymentArns" +_SDRMS = "ServiceDeploymentRollbackMonitorsStatus" +_SDA = "ServiceDeploymentAlarms" +_SDCB = "ServiceDeploymentCircuitBreaker" +_DAe = "DeploymentAlarms" +_CCa = "CanaryConfiguration" +_cPan = "canaryPercent" +_cBTIM = "canaryBakeTimeInMinutes" +_TTh = "ThresholdType" +_COUNT = "COUNT" +_BP_ = "BOUNDED_PERCENT" +_UP = "UNBOUNDED_PERCENT" +_TC = "ThresholdConfiguration" +_DCBe = "DeploymentCircuitBreaker" +_rOHT = "resetOnHealthyTask" +_tCh = "thresholdConfiguration" +_HPI = "HealthyPercentInteger" +_SRC = "ServiceRevisionCleanup" +_BLOCKING = "BLOCKING" +_DEFERRED = "DEFERRED" +_DESCe = "DeploymentEarlySuccessCriteria" +_hPe = "healthyPercent" +_sSRC = "sourceServiceRevisionCleanup" +_HD = "HookDetails" +_DLHS = "DeploymentLifecycleHookStage" +_RS_ = "RECONCILE_SERVICE" +_PSU = "PRE_SCALE_UP" +_PSU_ = "POST_SCALE_UP" +_TTS = "TEST_TRAFFIC_SHIFT" +_PTTS = "POST_TEST_TRAFFIC_SHIFT" +_PPTS = "PRE_PRODUCTION_TRAFFIC_SHIFT" +_PTS = "PRODUCTION_TRAFFIC_SHIFT" +_PPTS_ = "POST_PRODUCTION_TRAFFIC_SHIFT" +_DLHSL = "DeploymentLifecycleHookStageList" +_IAMRA = "IAMRoleArn" +_DLHTT = "DeploymentLifecycleHookTargetType" +_AL = "AWS_LAMBDA" +_PAUSE = "PAUSE" +_DLHD = "DeploymentLifecycleHookDuration" +_DLHTC = "DeploymentLifecycleHookTimeoutConfiguration" +_tIM = "timeoutInMinutes" +_DLH = "DeploymentLifecycleHook" +_hTA = "hookTargetArn" +_lSi = "lifecycleStages" +_hDo = "hookDetails" +_tCi = "timeoutConfiguration" +_DLHL = "DeploymentLifecycleHookList" +_LCi = "LinearConfiguration" +_sPt = "stepPercent" +_sBTIM = "stepBakeTimeInMinutes" +_DSe = "DeploymentStrategy" +_ROLLING = "ROLLING" +_BG = "BLUE_GREEN" +_LINEAR = "LINEAR" +_CANARY = "CANARY" +_DCep = "DeploymentConfiguration" +_dCB = "deploymentCircuitBreaker" +_mPa = "maximumPercent" +_mHP = "minimumHealthyPercent" +_stra = "strategy" +_lH = "lifecycleHooks" +_lCi = "linearConfiguration" +_cCa = "canaryConfiguration" +_eSC = "earlySuccessCriteria" +_DLHSe = "DeploymentLifecycleHookStatus" +_AA = "AWAITING_ACTION" +_SUCCEEDED = "SUCCEEDED" +_TO = "TIMED_OUT" +_DLHDe = "DeploymentLifecycleHookDetail" +_tAar = "targetArn" +_eA = "expiresAt" +_tAi = "timeoutAction" +_DLHDL = "DeploymentLifecycleHookDetailList" +_SDLS = "ServiceDeploymentLifecycleStage" +_SU = "SCALE_UP" +_BT = "BAKE_TIME" +_CU = "CLEAN_UP" +_Ro = "Rollback" +_sRA = "serviceRevisionArn" +_SRS = "ServiceRevisionSummary" +_rTCe = "requestedTaskCount" +_rTCu = "runningTaskCount" +_pTCe = "pendingTaskCount" +_rTTW = "requestedTestTrafficWeight" +_rPTW = "requestedProductionTrafficWeight" +_SRSL = "ServiceRevisionsSummaryList" +_SDS = "ServiceDeploymentStatus" +_RR_ = "ROLLBACK_REQUESTED" +_SD = "ServiceDeployment" +_sSR = "sourceServiceRevisions" +_tSR = "targetServiceRevision" +_lSif = "lifecycleStage" +_lHD = "lifecycleHookDetails" +_SDe = "ServiceDeployments" +_DSDO = "DescribeServiceDeploymentsOutput" +_cDSDRo = "com.amazonaws.ecs#DescribeServiceDeploymentsResponse" +_sD = "serviceDeployments" +_DSD = "DescribeServiceDeployments" +_ECAx = "ExpressCpuArchitecture" +_EGSNC = "ExpressGatewayServiceNetworkConfiguration" +_EGSALC = "ExpressGatewayServiceAwsLogsConfiguration" +_lG = "logGroup" +_lSP = "logStreamPrefix" +_EGRC = "ExpressGatewayRepositoryCredentials" +_EGC = "ExpressGatewayContainer" +_aLC = "awsLogsConfiguration" +_EGSSM = "ExpressGatewayServiceScalingMetric" +_ACPUU = "AverageCPUUtilization" +_AC___ = "AVERAGE_CPU" +_AMU = "AverageMemoryUtilization" +_AM__ = "AVERAGE_MEMORY" +_RCPT = "RequestCountPerTarget" +_RCPT_ = "REQUEST_COUNT_PER_TARGET" +_EGST = "ExpressGatewayScalingTarget" +_mTC = "minTaskCount" +_mTCa = "maxTaskCount" +_aSM = "autoScalingMetric" +_aSTV = "autoScalingTargetValue" +_CEGSI = "CreateExpressGatewayServiceInput" +_cCEGSR = "com.amazonaws.ecs#CreateExpressGatewayServiceRequest" +_hCP = "healthCheckPath" +_pCri = "primaryContainer" +_sTc = "scalingTarget" +_IPS = "IngressPathSummary" +_IPSn = "IngressPathSummaries" +_EGSC = "ExpressGatewayServiceConfiguration" +_iP = "ingressPaths" +_EGSCx = "ExpressGatewayServiceConfigurations" +_EGSSC = "ExpressGatewayServiceStatusCode" +_EGSS = "ExpressGatewayServiceStatus" +_sCt = "statusCode" +_ECSEGS = "ECSExpressGatewayService" +_cDu = "currentDeployment" +_aCc = "activeConfigurations" +_CEGSO = "CreateExpressGatewayServiceOutput" +_cCEGSRo = "com.amazonaws.ecs#CreateExpressGatewayServiceResponse" +_PTDIE = "PlatformTaskDefinitionIncompatibilityException" +_CEGS = "CreateExpressGatewayService" +_AZR = "AvailabilityZoneRebalancing" +_DCT = "DeploymentControllerType" +_ECS = "ECS" +_CD_ = "CODE_DEPLOY" +_DCepl = "DeploymentController" +_GCF = "GatewayConnectorFilters" +_aTcc = "accessTypes" +_GCHCP = "GatewayConnectorHealthCheckProtocol" +_GCHCM = "GatewayConnectorHealthCheckMatcher" +_hCt = "httpCode" +_gC = "grpcCode" +_GCHC = "GatewayConnectorHealthCheck" +_hCPe = "healthCheckProtocol" +_hCPea = "healthCheckPort" +_hCTS = "healthCheckTimeoutSeconds" +_hCIS = "healthCheckIntervalSeconds" +_hTC = "healthyThresholdCount" +_uTC = "unhealthyThresholdCount" +_mat = "matcher" +_GCa = "GatewayConnector" +_pN = "portName" +_fil = "filters" +_GCL = "GatewayConnectorList" +_LB = "LoadBalancer" +_tGA = "targetGroupArn" +_lBN = "loadBalancerName" +_aCd = "advancedConfiguration" +_LBo = "LoadBalancers" +_MN = "MetricName" +_MNL = "MetricNamesList" +_MRS = "MetricResolutionSeconds" +_MCe = "MetricConfiguration" +_mN = "metricNames" +_rS = "resolutionSeconds" +_MCL = "MetricConfigurationList" +_MCo = "MonitoringConfiguration" +_mC = "metricConfigurations" +_API = "AssignPublicIp" +_AVC = "AwsVpcConfiguration" +_aPIs = "assignPublicIp" +_NC = "NetworkConfiguration" +_aCw = "awsvpcConfiguration" +_PCTl = "PlacementConstraintType" +_DI = "DISTINCT_INSTANCE" +_dI = "distinctInstance" +_PCl = "PlacementConstraint" +_PCla = "PlacementConstraints" +_PST = "PlacementStrategyType" +_RANDOM = "RANDOM" +_ra = "random" +_SPREAD = "SPREAD" +_spr = "spread" +_BINPACK = "BINPACK" +_bi = "binpack" +_PS = "PlacementStrategy" +_fie = "field" +_PSl = "PlacementStrategies" +_PT = "PropagateTags" +_TD_ = "TASK_DEFINITION" +_SERVICE = "SERVICE" +_SSc = "SchedulingStrategy" +_REPLICA = "REPLICA" +_SCALF = "ServiceConnectAccessLoggingFormat" +_TEXT = "TEXT" +_JSON = "JSON" +_SCIQP = "ServiceConnectIncludeQueryParameters" +_SCALC = "ServiceConnectAccessLogConfiguration" +_for = "format" +_iQP = "includeQueryParameters" +_SCCLL = "ServiceConnectContainerLogLevel" +_DEBUG = "DEBUG" +_deb = "debug" +_INFO = "INFO" +_info = "info" +_SCCC = "ServiceConnectContainerConfiguration" +_lL = "logLevel" +_SCCCe = "ServiceConnectContainerConfigurations" +_PN = "PortNumber" +_SCTTHMR = "ServiceConnectTestTrafficHeaderMatchRules" +_exa = "exact" +_SCTTHR = "ServiceConnectTestTrafficHeaderRules" +_SCTTR = "ServiceConnectTestTrafficRules" +_SCCA = "ServiceConnectClientAlias" +_dNn = "dnsName" +_SCCAL = "ServiceConnectClientAliasList" +_Du = "Duration" +_TCi = "TimeoutConfiguration" +_iTS = "idleTimeoutSeconds" +_pRTS = "perRequestTimeoutSeconds" +_SCTCA = "ServiceConnectTlsCertificateAuthority" +_aPAA = "awsPcaAuthorityArn" +_SCTC = "ServiceConnectTlsConfiguration" +_iCA = "issuerCertificateAuthority" +_kK = "kmsKey" +_SCS = "ServiceConnectService" +_dNis = "discoveryName" +_cAli = "clientAliases" +_iPO = "ingressPortOverride" +_tl = "tls" +_SCSL = "ServiceConnectServiceList" +_SCC = "ServiceConnectConfiguration" +_serv = "services" +_aLCc = "accessLogConfiguration" +_cCo = "containerConfigurations" +_SRe = "ServiceRegistry" +_rAeg = "registryArn" +_SRer = "ServiceRegistries" +_TFT = "TaskFilesystemType" +_EXT = "EXT3" +_ext = "ext3" +_EXT_ = "EXT4" +_ext_ = "ext4" +_XFS = "XFS" +_xf = "xfs" +_NTFS = "NTFS" +_nt = "ntfs" +_EBSKMSKI = "EBSKMSKeyId" +_EBSSI = "EBSSnapshotId" +_EBSRT = "EBSResourceType" +_VOLUME = "VOLUME" +_vol = "volume" +_EBSTS = "EBSTagSpecification" +_rT = "resourceType" +_EBSTSa = "EBSTagSpecifications" +_EBSVT = "EBSVolumeType" +_SMEBSVC = "ServiceManagedEBSVolumeConfiguration" +_enc = "encrypted" +_vT = "volumeType" +_sIn = "snapshotId" +_vIR = "volumeInitializationRate" +_io = "iops" +_thr = "throughput" +_tS = "tagSpecifications" +_fT = "filesystemType" +_ECSVN = "ECSVolumeName" +_SVC = "ServiceVolumeConfiguration" +_mEBSV = "managedEBSVolume" +_SVCe = "ServiceVolumeConfigurations" +_VLAC = "VpcLatticeAdvancedConfiguration" +_VLC = "VpcLatticeConfiguration" +_VLCp = "VpcLatticeConfigurations" +_CSI = "CreateServiceInput" +_cCSR = "com.amazonaws.ecs#CreateServiceRequest" +_aZR = "availabilityZoneRebalancing" +_lB = "loadBalancers" +_sRe = "serviceRegistries" +_dCe = "desiredCount" +_cPS = "capacityProviderStrategy" +_pV = "platformVersion" +_rol = "role" +_pS = "placementStrategy" +_hCGPS = "healthCheckGracePeriodSeconds" +_sSc = "schedulingStrategy" +_dCep = "deploymentController" +_sCC = "serviceConnectConfiguration" +_vCo = "volumeConfigurations" +_vLC = "vpcLatticeConfigurations" +_gCa = "gatewayConnectors" +_SCRS = "ServiceCurrentRevisionSummary" +_SCRSL = "ServiceCurrentRevisionSummaryList" +_DES = "DeploymentEphemeralStorage" +_DRS = "DeploymentRolloutState" +_COMPLETED = "COMPLETED" +_SCSR = "ServiceConnectServiceResource" +_dAi = "discoveryArn" +_SCSRL = "ServiceConnectServiceResourceList" +_Dep = "Deployment" +_pCe = "pendingCount" +_fTa = "failedTasks" +_pF = "platformFamily" +_rSo = "rolloutState" +_rSR = "rolloutStateReason" +_sCR = "serviceConnectResources" +_fES = "fargateEphemeralStorage" +_Depl = "Deployments" +_SEe = "ServiceEvent" +_SEer = "ServiceEvents" +_RMT = "ResourceManagementType" +_CUSTOMER = "CUSTOMER" +_SUc = "ScaleUnit" +_PERCENT = "PERCENT" +_Sca = "Scale" +_un = "unit" +_SSt = "StabilityStatus" +_SS_ = "STEADY_STATE" +_STABILIZING = "STABILIZING" +_TS = "TaskSet" +_tSA = "taskSetArn" +_eI = "externalId" +_cDC = "computedDesiredCount" +_sca = "scale" +_sSt = "stabilityStatus" +_sSA = "stabilityStatusAt" +_TSa = "TaskSets" +_Ser = "Service" +_tSa = "taskSets" +_dep = "deployments" +_ev = "events" +_cSD = "currentServiceDeployment" +_cSR = "currentServiceRevisions" +_cBr = "createdBy" +_rMT = "resourceManagementType" +_CSO = "CreateServiceOutput" +_cCSRo = "com.amazonaws.ecs#CreateServiceResponse" +_CSr = "CreateService" +_DEGSI = "DeleteExpressGatewayServiceInput" +_cDEGSR = "com.amazonaws.ecs#DeleteExpressGatewayServiceRequest" +_DEGSO = "DeleteExpressGatewayServiceOutput" +_cDEGSRo = "com.amazonaws.ecs#DeleteExpressGatewayServiceResponse" +_SNAE = "ServiceNotActiveException" +_DEGS = "DeleteExpressGatewayService" +_DSI = "DeleteServiceInput" +_cDSR = "com.amazonaws.ecs#DeleteServiceRequest" +_DSO = "DeleteServiceOutput" +_cDSRo = "com.amazonaws.ecs#DeleteServiceResponse" +_DSel = "DeleteService" +_EGSI = "ExpressGatewayServiceInclude" +_EGSIL = "ExpressGatewayServiceIncludeList" +_DEGSIe = "DescribeExpressGatewayServiceInput" +_cDEGSRom = "com.amazonaws.ecs#DescribeExpressGatewayServiceRequest" +_DEGSOe = "DescribeExpressGatewayServiceOutput" +_cDEGSRoma = "com.amazonaws.ecs#DescribeExpressGatewayServiceResponse" +_DEGSe = "DescribeExpressGatewayService" +_SF = "ServiceField" +_SFL = "ServiceFieldList" +_DSIe = "DescribeServicesInput" +_cDSRom = "com.amazonaws.ecs#DescribeServicesRequest" +_Serv = "Services" +_DSOe = "DescribeServicesOutput" +_cDSRoma = "com.amazonaws.ecs#DescribeServicesResponse" +_DSes = "DescribeServices" +_SDSL = "ServiceDeploymentStatusList" +_LSDI = "ListServiceDeploymentsInput" +_cLSDR = "com.amazonaws.ecs#ListServiceDeploymentsRequest" +_SDB = "ServiceDeploymentBrief" +_tSRA = "targetServiceRevisionArn" +_SDBe = "ServiceDeploymentsBrief" +_LSDO = "ListServiceDeploymentsOutput" +_cLSDRo = "com.amazonaws.ecs#ListServiceDeploymentsResponse" +_LSD = "ListServiceDeployments" +_LSI = "ListServicesInput" +_cLSR = "com.amazonaws.ecs#ListServicesRequest" +_LSO = "ListServicesOutput" +_cLSRo = "com.amazonaws.ecs#ListServicesResponse" +_LSi = "ListServices" +_RI = "ResourceIds" +_CEo = "ConflictException" +_rIe = "resourceIds" +_SSDST = "StopServiceDeploymentStopType" +_ABORT = "ABORT" +_SSDI = "StopServiceDeploymentInput" +_cSSDR = "com.amazonaws.ecs#StopServiceDeploymentRequest" +_sTto = "stopType" +_SSDO = "StopServiceDeploymentOutput" +_cSSDRo = "com.amazonaws.ecs#StopServiceDeploymentResponse" +_SSDt = "StopServiceDeployment" +_UEGSI = "UpdateExpressGatewayServiceInput" +_cUEGSR = "com.amazonaws.ecs#UpdateExpressGatewayServiceRequest" +_UEGS = "UpdatedExpressGatewayService" +_tCa = "targetConfiguration" +_UEGSO = "UpdateExpressGatewayServiceOutput" +_cUEGSRo = "com.amazonaws.ecs#UpdateExpressGatewayServiceResponse" +_UEGSp = "UpdateExpressGatewayService" +_USI = "UpdateServiceInput" +_cUSR = "com.amazonaws.ecs#UpdateServiceRequest" +_fND = "forceNewDeployment" +_USO = "UpdateServiceOutput" +_cUSRo = "com.amazonaws.ecs#UpdateServiceResponse" +_US = "UpdateService" +_TSNFE = "TaskSetNotFoundException" +_USPTSI = "UpdateServicePrimaryTaskSetInput" +_cUSPTSR = "com.amazonaws.ecs#UpdateServicePrimaryTaskSetRequest" +_pTS = "primaryTaskSet" +_USPTSO = "UpdateServicePrimaryTaskSetOutput" +_cUSPTSRo = "com.amazonaws.ecs#UpdateServicePrimaryTaskSetResponse" +_tSas = "taskSet" +_USPTS = "UpdateServicePrimaryTaskSet" +_DSRI = "DescribeServiceRevisionsInput" +_cDSRR = "com.amazonaws.ecs#DescribeServiceRevisionsRequest" +_sRAe = "serviceRevisionArns" +_CIont = "ContainerImage" +_CIonta = "ContainerImages" +_MRSa = "ManagedResourceStatus" +_MAASP = "ManagedApplicationAutoScalingPolicy" +_pTo = "policyType" +_tVa = "targetValue" +_met = "metric" +_MAASPa = "ManagedApplicationAutoScalingPolicies" +_MST = "ManagedScalableTarget" +_mCi = "minCapacity" +_mCa = "maxCapacity" +_MAS = "ManagedAutoScaling" +_sTca = "scalableTarget" +_aASP = "applicationAutoScalingPolicies" +_GCAR = "GatewayConnectionAlbResources" +_lBSGA = "loadBalancerSecurityGroupArns" +_tLRAe = "testListenerRuleArn" +_GCARL = "GatewayConnectionAlbResourcesList" +_GCR = "GatewayConnectionResources" +_GCat = "GatewayConnection" +_GCLa = "GatewayConnectionList" +_MCa = "ManagedCertificate" +_dNo = "domainName" +_ML = "ManagedListener" +_MLB = "ManagedLoadBalancer" +_sIu = "subnetIds" +_sGI = "securityGroupIds" +_MSG = "ManagedSecurityGroup" +_MSGa = "ManagedSecurityGroups" +_MLR = "ManagedListenerRule" +_MTG = "ManagedTargetGroup" +_MTGa = "ManagedTargetGroups" +_MIPa = "ManagedIngressPath" +_lBo = "loadBalancer" +_ce = "certificate" +_lis = "listener" +_ru = "rule" +_tG = "targetGroups" +_MIPan = "ManagedIngressPaths" +_MLG = "ManagedLogGroup" +_lGN = "logGroupName" +_MLGa = "ManagedLogGroups" +_MMA = "ManagedMetricAlarm" +_MMAa = "ManagedMetricAlarms" +_ECSMR = "ECSManagedResources" +_aSu = "autoScaling" +_mAe = "metricAlarms" +_sSG = "serviceSecurityGroups" +_lGo = "logGroups" +_gCat = "gatewayConnections" +_RPO = "RuntimePlatformOverride" +_SRO = "ServiceRevisionOverrides" +_SRLB = "ServiceRevisionLoadBalancer" +_SRLBe = "ServiceRevisionLoadBalancers" +_SRVLC = "ServiceRevisionVpcLatticeConfiguration" +_SRVLCe = "ServiceRevisionVpcLatticeConfigurations" +_RCe = "ResolvedConfiguration" +_SRerv = "ServiceRevision" +_gDE = "guardDutyEnabled" +_rCes = "resolvedConfiguration" +_eMR = "ecsManagedResources" +_ov = "overrides" +_SRervi = "ServiceRevisions" +_DSRO = "DescribeServiceRevisionsOutput" +_cDSRRo = "com.amazonaws.ecs#DescribeServiceRevisionsResponse" +_sRer = "serviceRevisions" +_DSR = "DescribeServiceRevisions" +_TRI = "TagResourceInput" +_cTRR = "com.amazonaws.ecs#TagResourceRequest" +_TRO = "TagResourceOutput" +_cTRRo = "com.amazonaws.ecs#TagResourceResponse" +_TR = "TagResource" +_DTDIel = "DeleteTaskDefinitionsInput" +_cDTDRomam = "com.amazonaws.ecs#DeleteTaskDefinitionsRequest" +_tDa = "taskDefinitions" +_TDL = "TaskDefinitionList" +_DTDOel = "DeleteTaskDefinitionsOutput" +_cDTDRomama = "com.amazonaws.ecs#DeleteTaskDefinitionsResponse" +_DTDel = "DeleteTaskDefinitions" +_LTDI = "ListTaskDefinitionsInput" +_cLTDR = "com.amazonaws.ecs#ListTaskDefinitionsRequest" +_LTDO = "ListTaskDefinitionsOutput" +_cLTDRo = "com.amazonaws.ecs#ListTaskDefinitionsResponse" +_tDAa = "taskDefinitionArns" +_LTD = "ListTaskDefinitions" +_RTDI = "RegisterTaskDefinitionInput" +_cRTDR = "com.amazonaws.ecs#RegisterTaskDefinitionRequest" +_RTDO = "RegisterTaskDefinitionOutput" +_cRTDRo = "com.amazonaws.ecs#RegisterTaskDefinitionResponse" +_RTD = "RegisterTaskDefinition" +_TF = "TaskField" +_TFL = "TaskFieldList" +_DTI = "DescribeTasksInput" +_cDTR = "com.amazonaws.ecs#DescribeTasksRequest" +_task = "tasks" +_Con = "Connectivity" +_CONNECTED = "CONNECTED" +_DISCONNECTED = "DISCONNECTED" +_GI = "GpuIds" +_HS = "HealthStatus" +_UNHEALTHY = "UNHEALTHY" +_UNKNOWN = "UNKNOWN" +_MA = "ManagedAgent" +_lSA = "lastStartedAt" +_lSa = "lastStatus" +_MAa = "ManagedAgents" +_NI = "NetworkInterface" +_aI = "attachmentId" +_pIA = "privateIpv4Address" +_iAp = "ipv6Address" +_NIe = "NetworkInterfaces" +_NDI = "NeuronDeviceIds" +_Cont = "Container" +_nI = "networkInterfaces" +_gIp = "gpuIds" +_nDI = "neuronDeviceIds" +_gSS = "gpuSharingStrategy" +_Conta = "Containers" +_TES = "TaskEphemeralStorage" +_CO = "ContainerOverride" +_COo = "ContainerOverrides" +_IAO = "InferenceAcceleratorOverride" +_IAOn = "InferenceAcceleratorOverrides" +_TOa = "TaskOverride" +_cO = "containerOverrides" +_iAO = "inferenceAcceleratorOverrides" +_TSC = "TaskStopCode" +_TFTS = "TASK_FAILED_TO_START" +_TFTSa = "TaskFailedToStart" +_ECE = "ESSENTIAL_CONTAINER_EXITED" +_ECEs = "EssentialContainerExited" +_UI = "USER_INITIATED" +_UIs = "UserInitiated" +_SSI = "SERVICE_SCHEDULER_INITIATED" +_SSIe = "ServiceSchedulerInitiated" +_SI = "SPOT_INTERRUPTION" +_SIp = "SpotInterruption" +_TN = "TERMINATION_NOTICE" +_TNe = "TerminationNotice" +_IH = "INFRASTRUCTURE_HEALTH" +_IHn = "InfrastructureHealth" +_APS = "AttestationPolicyStatus" +_CONFIGURED = "CONFIGURED" +_TESr = "TrustedExecutionSummary" +_aPS = "attestationPolicyStatus" +_Tas = "Task" +_aZ = "availabilityZone" +_conn = "connectivity" +_cAon = "connectivityAt" +_gro = "group" +_sCto = "stopCode" +_sRt = "stoppedReason" +_sAto = "stoppingAt" +_tES = "trustedExecutionSummary" +_Task = "Tasks" +_DTO = "DescribeTasksOutput" +_cDTRo = "com.amazonaws.ecs#DescribeTasksResponse" +_DT = "DescribeTasks" +_GTPI = "GetTaskProtectionInput" +_cGTPR = "com.amazonaws.ecs#GetTaskProtectionRequest" +_PTr = "ProtectedTask" +_pE = "protectionEnabled" +_eD = "expirationDate" +_PTro = "ProtectedTasks" +_GTPO = "GetTaskProtectionOutput" +_cGTPRo = "com.amazonaws.ecs#GetTaskProtectionResponse" +_pTr = "protectedTasks" +_GTP = "GetTaskProtection" +_BE = "BlockedException" +_TMEBSVTP = "TaskManagedEBSVolumeTerminationPolicy" +_dOT = "deleteOnTermination" +_TMEBSVC = "TaskManagedEBSVolumeConfiguration" +_tP = "terminationPolicy" +_TVC = "TaskVolumeConfiguration" +_TVCa = "TaskVolumeConfigurations" +_RTI = "RunTaskInput" +_cRTR = "com.amazonaws.ecs#RunTaskRequest" +_cou = "count" +_rIef = "referenceId" +_RTO = "RunTaskOutput" +_cRTRo = "com.amazonaws.ecs#RunTaskResponse" +_RTu = "RunTask" +_STI = "StartTaskInput" +_cSTR = "com.amazonaws.ecs#StartTaskRequest" +_STO = "StartTaskOutput" +_cSTRo = "com.amazonaws.ecs#StartTaskResponse" +_STt = "StartTask" +_STIt = "StopTaskInput" +_cSTRom = "com.amazonaws.ecs#StopTaskRequest" +_STOt = "StopTaskOutput" +_cSTRoma = "com.amazonaws.ecs#StopTaskResponse" +_STto = "StopTask" +_UTPI = "UpdateTaskProtectionInput" +_cUTPR = "com.amazonaws.ecs#UpdateTaskProtectionRequest" +_eIM = "expiresInMinutes" +_UTPO = "UpdateTaskProtectionOutput" +_cUTPRo = "com.amazonaws.ecs#UpdateTaskProtectionResponse" +_UTP = "UpdateTaskProtection" +_CTSI = "CreateTaskSetInput" +_cCTSR = "com.amazonaws.ecs#CreateTaskSetRequest" +_CTSO = "CreateTaskSetOutput" +_cCTSRo = "com.amazonaws.ecs#CreateTaskSetResponse" +_CTS = "CreateTaskSet" +_DTSI = "DeleteTaskSetInput" +_cDTSR = "com.amazonaws.ecs#DeleteTaskSetRequest" +_DTSO = "DeleteTaskSetOutput" +_cDTSRo = "com.amazonaws.ecs#DeleteTaskSetResponse" +_DTS = "DeleteTaskSet" +_TSF = "TaskSetField" +_TSFL = "TaskSetFieldList" +_DTSIe = "DescribeTaskSetsInput" +_cDTSRom = "com.amazonaws.ecs#DescribeTaskSetsRequest" +_DTSOe = "DescribeTaskSetsOutput" +_cDTSRoma = "com.amazonaws.ecs#DescribeTaskSetsResponse" +_DTSe = "DescribeTaskSets" +_UTSI = "UpdateTaskSetInput" +_cUTSR = "com.amazonaws.ecs#UpdateTaskSetRequest" +_UTSO = "UpdateTaskSetOutput" +_cUTSRo = "com.amazonaws.ecs#UpdateTaskSetResponse" +_UTS = "UpdateTaskSet" +_TKa = "TagKeys" +_URI = "UntagResourceInput" +_cURR = "com.amazonaws.ecs#UntagResourceRequest" +_tK = "tagKeys" +_URO = "UntagResourceOutput" +_cURRo = "com.amazonaws.ecs#UntagResourceResponse" +_UR = "UntagResource" +_AECCSV = "AmazonEC2ContainerServiceV20141113" +_a__ = "aws.protocols#awsJson1_1" +_awsa = "aws.api#service" +_awsau = "aws.auth#sigv4" +_sNm = "smithy.api#xmlNamespace" + +BOXED_INTEGER: StaticSchema = (7, n0, _BI, 0) + +ACCELERATOR_COUNT_REQUEST: StaticSchema = ( + 18, + n0, + _ACR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 0), (BOXED_INTEGER, 0)), +) + +ACCELERATOR_MANUFACTURER: StaticSchema = ( + 14, + n0, + _AM, + 0, + (_AWS, _AMD, _NVIDIA, _XILINX, _HABANA), + ( + (-1, {_sV: _aws}), + (-1, {_sV: _a}), + (-1, {_sV: _n}), + (-1, {_sV: _x}), + (-1, {_sV: _h}), + ), +) + +ACCELERATOR_MANUFACTURER_SET: StaticSchema = ( + 16, + n0, + _AMS, + 0, + (_me,), + ((ACCELERATOR_MANUFACTURER, {_sN: _i}),), +) + +ACCELERATOR_NAME: StaticSchema = ( + 14, + n0, + _AN, + 0, + (_A, _INFERENTIA, _K, _K_, _M, _RPV, _T, _VUP, _V, _AG, _H, _TG, _LS, _L), + ( + (-1, {_sV: _a_}), + (-1, {_sV: _in}), + (-1, {_sV: _k}), + (-1, {_sV: _k_}), + (-1, {_sV: _m_}), + (-1, {_sV: _rpv}), + (-1, {_sV: _t}), + (-1, {_sV: _v}), + (-1, {_sV: _v_}), + (-1, {_sV: _ag}), + (-1, {_sV: _h_}), + (-1, {_sV: _tg}), + (-1, {_sV: _l}), + (-1, {_sV: _l_}), + ), +) + +ACCELERATOR_NAME_SET: StaticSchema = ( + 16, + n0, + _ANS, + 0, + (_me,), + ((ACCELERATOR_NAME, {_sN: _i}),), +) + +ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST: StaticSchema = ( + 18, + n0, + _ATMMBR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 0), (BOXED_INTEGER, 0)), +) + +ACCELERATOR_TYPE: StaticSchema = ( + 14, + n0, + _AT, + 0, + (_GPU, _FPGA, _INFERENCE), + ((-1, {_sV: _g}), (-1, {_sV: _f}), (-1, {_sV: _inf})), +) + +ACCELERATOR_TYPE_SET: StaticSchema = ( + 16, + n0, + _ATS, + 0, + (_me,), + ((ACCELERATOR_TYPE, {_sN: _i}),), +) + +STRING: StaticSchema = (3, n0, _S, 0) + +ACCESS_DENIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _ADE, + {_s: _c, _sE: 403}, + (_mes,), + ((STRING, 0),), +) + +ACCESS_TYPE: StaticSchema = ( + 14, + n0, + _ATc, + 0, + (_PUBLIC, _PRIVATE), + ((-1, {_sV: _PUBLIC}), (-1, {_sV: _PRIVATE})), +) + +ACCESS_TYPE_LIST: StaticSchema = (16, n0, _ATL, 0, (_me,), ((ACCESS_TYPE, 0),)) + +ADVANCED_CONFIGURATION: StaticSchema = ( + 18, + n0, + _AC, + 0, + (_aTGA, _pLR, _tLR, _rA), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +AGENT_UPDATE_STATUS: StaticSchema = ( + 14, + n0, + _AUS, + 0, + (_PENDING, _STAGING, _STAGED, _UPDATING, _UPDATED, _FAILED), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _STAGING}), + (-1, {_sV: _STAGED}), + (-1, {_sV: _UPDATING}), + (-1, {_sV: _UPDATED}), + (-1, {_sV: _FAILED}), + ), +) + +ALLOWED_INSTANCE_TYPE: StaticSchema = (3, n0, _AIT, 0) + +ALLOWED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _AITS, + 0, + (_me,), + ((ALLOWED_INSTANCE_TYPE, {_sN: _i}),), +) + +CLIENT_EXCEPTION: StaticSchema = (18, n0, _CE, {_s: _c}, (_mes,), ((STRING, 0),)) + +CLUSTER_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _CNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +MANAGED_DRAINING: StaticSchema = ( + 14, + n0, + _MD, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +MANAGED_SCALING_INSTANCE_WARMUP_PERIOD: StaticSchema = (7, n0, _MSIWP, 0) + +MANAGED_SCALING_STEP_SIZE: StaticSchema = (7, n0, _MSSS, 0) + +MANAGED_SCALING_STATUS: StaticSchema = ( + 14, + n0, + _MSS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +MANAGED_SCALING_TARGET_CAPACITY: StaticSchema = (7, n0, _MSTC, 0) + +MANAGED_SCALING: StaticSchema = ( + 18, + n0, + _MS, + 0, + (_st, _tC, _mSSS, _mSSSa, _iWP), + ( + (MANAGED_SCALING_STATUS, 0), + (MANAGED_SCALING_TARGET_CAPACITY, 0), + (MANAGED_SCALING_STEP_SIZE, 0), + (MANAGED_SCALING_STEP_SIZE, 0), + (MANAGED_SCALING_INSTANCE_WARMUP_PERIOD, 0), + ), +) + +MANAGED_TERMINATION_PROTECTION: StaticSchema = ( + 14, + n0, + _MTP, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +AUTO_SCALING_GROUP_PROVIDER: StaticSchema = ( + 18, + n0, + _ASGP, + 0, + (_aSGA, _mS, _mTP, _mD), + ( + (STRING, 1), + (MANAGED_SCALING, 0), + (MANAGED_TERMINATION_PROTECTION, 0), + (MANAGED_DRAINING, 0), + ), +) + +AUTO_REPAIR_ACTIONS_STATUS: StaticSchema = ( + 14, + n0, + _ARAS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +AUTO_REPAIR_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ARC, + 0, + (_aS,), + ((AUTO_REPAIR_ACTIONS_STATUS, 0),), +) + +INFRASTRUCTURE_OPTIMIZATION: StaticSchema = ( + 18, + n0, + _IO, + 0, + (_sIA,), + ((BOXED_INTEGER, 0),), +) + +CAPACITY_OPTION_TYPE: StaticSchema = ( + 14, + n0, + _COT, + 0, + (_OD, _SPOT, _RESERVED), + ((-1, {_sV: _OD}), (-1, {_sV: _SPOT}), (-1, {_sV: _RESERVED})), +) + +CAPACITY_RESERVATION_PREFERENCE: StaticSchema = ( + 14, + n0, + _CRP, + 0, + (_RO, _RF, _RE), + ((-1, {_sV: _RO}), (-1, {_sV: _RF}), (-1, {_sV: _RE})), +) + +CAPACITY_RESERVATION_REQUEST: StaticSchema = ( + 18, + n0, + _CRR, + 0, + (_rGA, _rP), + ((STRING, 0), (CAPACITY_RESERVATION_PREFERENCE, 0)), +) + +BOXED_BOOLEAN: StaticSchema = (2, n0, _BB, 0) + +BARE_METAL: StaticSchema = ( + 14, + n0, + _BM, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _r}), (-1, {_sV: _e})), +) + +BASELINE_EBS_BANDWIDTH_MBPS_REQUEST: StaticSchema = ( + 18, + n0, + _BEBMR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 0), (BOXED_INTEGER, 0)), +) + +BURSTABLE_PERFORMANCE: StaticSchema = ( + 14, + n0, + _BP, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _r}), (-1, {_sV: _e})), +) + +CPU_MANUFACTURER: StaticSchema = ( + 14, + n0, + _CM, + 0, + (_INTEL, _AMD, _AWS), + ((-1, {_sV: _int}), (-1, {_sV: _a}), (-1, {_sV: _aws})), +) + +CPU_MANUFACTURER_SET: StaticSchema = ( + 16, + n0, + _CMS, + 0, + (_me,), + ((CPU_MANUFACTURER, {_sN: _i}),), +) + +EXCLUDED_INSTANCE_TYPE: StaticSchema = (3, n0, _EIT, 0) + +EXCLUDED_INSTANCE_TYPE_SET: StaticSchema = ( + 16, + n0, + _EITS, + 0, + (_me,), + ((EXCLUDED_INSTANCE_TYPE, {_sN: _i}),), +) + +INSTANCE_GENERATION: StaticSchema = ( + 14, + n0, + _IG, + 0, + (_CURRENT, _PREVIOUS), + ((-1, {_sV: _cu}), (-1, {_sV: _p})), +) + +INSTANCE_GENERATION_SET: StaticSchema = ( + 16, + n0, + _IGS, + 0, + (_me,), + ((INSTANCE_GENERATION, {_sN: _i}),), +) + +LOCAL_STORAGE: StaticSchema = ( + 14, + n0, + _LSo, + 0, + (_INCLUDED, _REQUIRED, _EXCLUDED), + ((-1, {_sV: _inc}), (-1, {_sV: _r}), (-1, {_sV: _e})), +) + +LOCAL_STORAGE_TYPE: StaticSchema = ( + 14, + n0, + _LST, + 0, + (_HDD, _SSD), + ((-1, {_sV: _hd}), (-1, {_sV: _ss})), +) + +LOCAL_STORAGE_TYPE_SET: StaticSchema = ( + 16, + n0, + _LSTS, + 0, + (_me,), + ((LOCAL_STORAGE_TYPE, {_sN: _i}),), +) + +BOXED_DOUBLE: StaticSchema = (10, n0, _BD, 0) + +MEMORY_GI_B_PER_V_CPU_REQUEST: StaticSchema = ( + 18, + n0, + _MGBPVCR, + 0, + (_m, _ma), + ((BOXED_DOUBLE, 0), (BOXED_DOUBLE, 0)), +) + +MEMORY_MI_B_REQUEST: StaticSchema = ( + 18, + n0, + _MMBR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 1), (BOXED_INTEGER, 0)), +) + +NETWORK_BANDWIDTH_GBPS_REQUEST: StaticSchema = ( + 18, + n0, + _NBGR, + 0, + (_m, _ma), + ((BOXED_DOUBLE, 0), (BOXED_DOUBLE, 0)), +) + +NETWORK_INTERFACE_COUNT_REQUEST: StaticSchema = ( + 18, + n0, + _NICR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 0), (BOXED_INTEGER, 0)), +) + +TOTAL_LOCAL_STORAGE_GB_REQUEST: StaticSchema = ( + 18, + n0, + _TLSGBR, + 0, + (_m, _ma), + ((BOXED_DOUBLE, 0), (BOXED_DOUBLE, 0)), +) + +V_CPU_COUNT_RANGE_REQUEST: StaticSchema = ( + 18, + n0, + _VCCRR, + 0, + (_m, _ma), + ((BOXED_INTEGER, 1), (BOXED_INTEGER, 0)), +) + +INSTANCE_REQUIREMENTS_REQUEST: StaticSchema = ( + 18, + n0, + _IRR, + 0, + ( + _vCC, + _mMB, + _cM, + _mGBPVC, + _eIT, + _iG, + _sMPPOLP, + _oDMPPOLP, + _bM, + _bP, + _rHS, + _nIC, + _lS, + _lST, + _tLSGB, + _bEBM, + _aT, + _aC, + _aM, + _aN, + _aTMMB, + _nBG, + _aIT, + _mSPAPOOODP, + ), + ( + (V_CPU_COUNT_RANGE_REQUEST, 1), + (MEMORY_MI_B_REQUEST, 1), + (CPU_MANUFACTURER_SET, {_sN: _CM}), + (MEMORY_GI_B_PER_V_CPU_REQUEST, 0), + (EXCLUDED_INSTANCE_TYPE_SET, {_sN: _EIT}), + (INSTANCE_GENERATION_SET, {_sN: _IG}), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BARE_METAL, 0), + (BURSTABLE_PERFORMANCE, 0), + (BOXED_BOOLEAN, 0), + (NETWORK_INTERFACE_COUNT_REQUEST, 0), + (LOCAL_STORAGE, 0), + (LOCAL_STORAGE_TYPE_SET, {_sN: _LST}), + (TOTAL_LOCAL_STORAGE_GB_REQUEST, 0), + (BASELINE_EBS_BANDWIDTH_MBPS_REQUEST, 0), + (ACCELERATOR_TYPE_SET, {_sN: _AT}), + (ACCELERATOR_COUNT_REQUEST, 0), + (ACCELERATOR_MANUFACTURER_SET, {_sN: _AM}), + (ACCELERATOR_NAME_SET, {_sN: _AN}), + (ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST, 0), + (NETWORK_BANDWIDTH_GBPS_REQUEST, 0), + (ALLOWED_INSTANCE_TYPE_SET, {_sN: _AIT}), + (BOXED_INTEGER, 0), + ), +) + +BOOLEAN: StaticSchema = (2, n0, _B, {_smi: False}) + +MANAGED_INSTANCES_LOCAL_STORAGE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MILSC, + 0, + (_uLS,), + ((BOOLEAN, {_smi: False}),), +) + +MANAGED_INSTANCES_MONITORING_OPTIONS: StaticSchema = ( + 14, + n0, + _MIMO, + 0, + (_BASIC, _DETAILED), + ((-1, {_sV: _BASIC}), (-1, {_sV: _DETAILED})), +) + +STRING_LIST: StaticSchema = (16, n0, _SL, 0, (_me,), ((STRING, 0),)) + +MANAGED_INSTANCES_NETWORK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MINC, + 0, + (_su, _sG), + ((STRING_LIST, 0), (STRING_LIST, 0)), +) + +TASK_VOLUME_STORAGE_GI_B: StaticSchema = (7, n0, _TVSGB, 0) + +MANAGED_INSTANCES_STORAGE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MISC, + 0, + (_sSGB,), + ((TASK_VOLUME_STORAGE_GI_B, 0),), +) + +INSTANCE_LAUNCH_TEMPLATE: StaticSchema = ( + 18, + n0, + _ILT, + 0, + (_eIPA, _nC, _sC, _lSC, _mo, _cOT, _iMTP, _iR, _fE, _cR, _nEE), + ( + (STRING, 1), + (MANAGED_INSTANCES_NETWORK_CONFIGURATION, 1), + (MANAGED_INSTANCES_STORAGE_CONFIGURATION, 0), + (MANAGED_INSTANCES_LOCAL_STORAGE_CONFIGURATION, 0), + (MANAGED_INSTANCES_MONITORING_OPTIONS, 0), + (CAPACITY_OPTION_TYPE, 0), + (BOXED_BOOLEAN, 0), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + (BOXED_BOOLEAN, 0), + (CAPACITY_RESERVATION_REQUEST, 0), + (BOXED_BOOLEAN, 0), + ), +) + +PROPAGATE_MI_TAGS: StaticSchema = ( + 14, + n0, + _PMIT, + 0, + (_CP, _NONE), + ((-1, {_sV: _CP}), (-1, {_sV: _NONE})), +) + +CREATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CMIPC, + 0, + (_iRA, _iLT, _pT, _iO, _aRC), + ( + (STRING, 1), + (INSTANCE_LAUNCH_TEMPLATE, 1), + (PROPAGATE_MI_TAGS, 0), + (INFRASTRUCTURE_OPTIMIZATION, 0), + (AUTO_REPAIR_CONFIGURATION, 0), + ), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG: StaticSchema = (18, n0, _Ta, 0, (_ke, _va), ((TAG_KEY, 0), (TAG_VALUE, 0))) + +TAGS: StaticSchema = (16, n0, _Tag, 0, (_me,), ((TAG, 0),)) + +CREATE_CAPACITY_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _CCPI, + {_sSI: _cCCPR, _smit: None}, + (_na, _cl, _aSGP, _mIP, _ta), + ( + (STRING, 1), + (STRING, 0), + (AUTO_SCALING_GROUP_PROVIDER, 0), + (CREATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION, 0), + (TAGS, 0), + ), +) + +MANAGED_INSTANCES_PROVIDER: StaticSchema = ( + 18, + n0, + _MIP, + 0, + (_iRA, _iLT, _pT, _iO, _aRC), + ( + (STRING, 0), + (INSTANCE_LAUNCH_TEMPLATE, 0), + (PROPAGATE_MI_TAGS, 0), + (INFRASTRUCTURE_OPTIMIZATION, 0), + (AUTO_REPAIR_CONFIGURATION, 0), + ), +) + +CAPACITY_PROVIDER_STATUS: StaticSchema = ( + 14, + n0, + _CPS, + 0, + (_PROVISIONING, _ACTIVE, _DEPROVISIONING, _INACTIVE), + ( + (-1, {_sV: _PROVISIONING}), + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _DEPROVISIONING}), + (-1, {_sV: _INACTIVE}), + ), +) + +CAPACITY_PROVIDER_TYPE: StaticSchema = ( + 14, + n0, + _CPT, + 0, + (_EA, _MI, _FARGATE, _FS), + ((-1, {_sV: _EA}), (-1, {_sV: _MI}), (-1, {_sV: _FARGATE}), (-1, {_sV: _FS})), +) + +CAPACITY_PROVIDER_UPDATE_STATUS: StaticSchema = ( + 14, + n0, + _CPUS, + 0, + (_CIP, _CC, _CF, _DIP, _DC, _DF, _UIP, _UC, _UF), + ( + (-1, {_sV: _CIP}), + (-1, {_sV: _CC}), + (-1, {_sV: _CF}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DC}), + (-1, {_sV: _DF}), + (-1, {_sV: _UIP}), + (-1, {_sV: _UC}), + (-1, {_sV: _UF}), + ), +) + +CAPACITY_PROVIDER: StaticSchema = ( + 18, + n0, + _CPa, + 0, + (_cPA, _na, _cl, _st, _aSGP, _mIP, _uS, _uSR, _ta, _ty), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CAPACITY_PROVIDER_STATUS, 0), + (AUTO_SCALING_GROUP_PROVIDER, 0), + (MANAGED_INSTANCES_PROVIDER, 0), + (CAPACITY_PROVIDER_UPDATE_STATUS, 0), + (STRING, 0), + (TAGS, 0), + (CAPACITY_PROVIDER_TYPE, 0), + ), +) + +CREATE_CAPACITY_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _CCPO, + {_sSI: _cCCPRo, _smith: None}, + (_cP,), + ((CAPACITY_PROVIDER, 0),), +) + +INVALID_PARAMETER_EXCEPTION: StaticSchema = ( + 18, + n0, + _IPE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +SERVER_EXCEPTION: StaticSchema = (18, n0, _SE, {_s: _se}, (_mes,), ((STRING, 0),)) + +UNSUPPORTED_FEATURE_EXCEPTION: StaticSchema = ( + 18, + n0, + _UFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +UPDATE_IN_PROGRESS_EXCEPTION: StaticSchema = ( + 18, + n0, + _UIPE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CREATE_CAPACITY_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _CCP, + 0, + CREATE_CAPACITY_PROVIDER_INPUT, + CREATE_CAPACITY_PROVIDER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +DELETE_CAPACITY_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _DCPI, + {_sSI: _cDCPR, _smit: None}, + (_cP, _cl), + ((STRING, 1), (STRING, 0)), +) + +DELETE_CAPACITY_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _DCPO, + {_sSI: _cDCPRo, _smith: None}, + (_cP,), + ((CAPACITY_PROVIDER, 0),), +) + +DELETE_CAPACITY_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _DCP, + 0, + DELETE_CAPACITY_PROVIDER_INPUT, + DELETE_CAPACITY_PROVIDER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +CAPACITY_PROVIDER_FIELD: StaticSchema = ( + 14, + n0, + _CPF, + 0, + (_TAGS,), + ((-1, {_sV: _TAGS}),), +) + +CAPACITY_PROVIDER_FIELD_LIST: StaticSchema = ( + 16, + n0, + _CPFL, + 0, + (_me,), + ((CAPACITY_PROVIDER_FIELD, 0),), +) + +DESCRIBE_CAPACITY_PROVIDERS_INPUT: StaticSchema = ( + 18, + n0, + _DCPIe, + {_sSI: _cDCPRom, _smit: None}, + (_cPa, _cl, _incl, _mR, _nT), + ( + (STRING_LIST, 0), + (STRING, 0), + (CAPACITY_PROVIDER_FIELD_LIST, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + ), +) + +CAPACITY_PROVIDERS: StaticSchema = (16, n0, _CPap, 0, (_me,), ((CAPACITY_PROVIDER, 0),)) + +FAILURE: StaticSchema = ( + 18, + n0, + _F, + 0, + (_ar, _re, _d), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +FAILURES: StaticSchema = (16, n0, _Fa, 0, (_me,), ((FAILURE, 0),)) + +DESCRIBE_CAPACITY_PROVIDERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCPOe, + {_sSI: _cDCPRoma, _smith: None}, + (_cPa, _fa, _nT), + ((CAPACITY_PROVIDERS, 0), (FAILURES, 0), (STRING, 0)), +) + +DESCRIBE_CAPACITY_PROVIDERS: StaticOperationSchema = ( + 23, + n0, + _DCPe, + 0, + DESCRIBE_CAPACITY_PROVIDERS_INPUT, + DESCRIBE_CAPACITY_PROVIDERS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +AUTO_SCALING_GROUP_PROVIDER_UPDATE: StaticSchema = ( + 18, + n0, + _ASGPU, + 0, + (_mS, _mTP, _mD), + ((MANAGED_SCALING, 0), (MANAGED_TERMINATION_PROTECTION, 0), (MANAGED_DRAINING, 0)), +) + +INSTANCE_LAUNCH_TEMPLATE_UPDATE: StaticSchema = ( + 18, + n0, + _ILTU, + 0, + (_eIPA, _nC, _sC, _iMTP, _lSC, _mo, _iR, _cR), + ( + (STRING, 0), + (MANAGED_INSTANCES_NETWORK_CONFIGURATION, 0), + (MANAGED_INSTANCES_STORAGE_CONFIGURATION, 0), + (BOXED_BOOLEAN, 0), + (MANAGED_INSTANCES_LOCAL_STORAGE_CONFIGURATION, 0), + (MANAGED_INSTANCES_MONITORING_OPTIONS, 0), + (INSTANCE_REQUIREMENTS_REQUEST, 0), + (CAPACITY_RESERVATION_REQUEST, 0), + ), +) + +UPDATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _UMIPC, + 0, + (_iRA, _iLT, _pT, _iO, _aRC), + ( + (STRING, 1), + (INSTANCE_LAUNCH_TEMPLATE_UPDATE, 1), + (PROPAGATE_MI_TAGS, 0), + (INFRASTRUCTURE_OPTIMIZATION, 0), + (AUTO_REPAIR_CONFIGURATION, 0), + ), +) + +UPDATE_CAPACITY_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _UCPI, + {_sSI: _cUCPR, _smit: None}, + (_na, _cl, _aSGP, _mIP), + ( + (STRING, 1), + (STRING, 0), + (AUTO_SCALING_GROUP_PROVIDER_UPDATE, 0), + (UPDATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION, 0), + ), +) + +UPDATE_CAPACITY_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _UCPO, + {_sSI: _cUCPRo, _smith: None}, + (_cP,), + ((CAPACITY_PROVIDER, 0),), +) + +UPDATE_CAPACITY_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _UCP, + 0, + UPDATE_CAPACITY_PROVIDER_INPUT, + UPDATE_CAPACITY_PROVIDER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +EXECUTE_COMMAND_LOG_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ECLC, + 0, + (_cWLGN, _cWEE, _sBN, _sEE, _sKP), + ( + (STRING, 0), + (BOOLEAN, {_smi: False}), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (STRING, 0), + ), +) + +EXECUTE_COMMAND_LOGGING: StaticSchema = ( + 14, + n0, + _ECL, + 0, + (_NONE, _DEFAULT, _OVERRIDE), + ((-1, {_sV: _NONE}), (-1, {_sV: _DEFAULT}), (-1, {_sV: _OVERRIDE})), +) + +EXECUTE_COMMAND_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ECC, + 0, + (_kKI, _lo, _lC), + ((STRING, 0), (EXECUTE_COMMAND_LOGGING, 0), (EXECUTE_COMMAND_LOG_CONFIGURATION, 0)), +) + +MANAGED_STORAGE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MSC, + 0, + (_kKI, _fESKKI), + ((STRING, 0), (STRING, 0)), +) + +CLUSTER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CCl, + 0, + (_eCC, _mSC), + ((EXECUTE_COMMAND_CONFIGURATION, 0), (MANAGED_STORAGE_CONFIGURATION, 0)), +) + +CAPACITY_PROVIDER_STRATEGY_ITEM_BASE: StaticSchema = (7, n0, _CPSIB, {_smi: 0}) + +CAPACITY_PROVIDER_STRATEGY_ITEM_WEIGHT: StaticSchema = (7, n0, _CPSIW, {_smi: 0}) + +CAPACITY_PROVIDER_STRATEGY_ITEM: StaticSchema = ( + 18, + n0, + _CPSI, + 0, + (_cP, _w, _b), + ( + (STRING, 1), + (CAPACITY_PROVIDER_STRATEGY_ITEM_WEIGHT, {_smi: 0}), + (CAPACITY_PROVIDER_STRATEGY_ITEM_BASE, {_smi: 0}), + ), +) + +CAPACITY_PROVIDER_STRATEGY: StaticSchema = ( + 16, + n0, + _CPSa, + 0, + (_me,), + ((CAPACITY_PROVIDER_STRATEGY_ITEM, 0),), +) + +CLUSTER_SERVICE_CONNECT_DEFAULTS_REQUEST: StaticSchema = ( + 18, + n0, + _CSCDR, + 0, + (_nam,), + ((STRING, 1),), +) + +CLUSTER_SETTING_NAME: StaticSchema = (14, n0, _CSN, 0, (_CI,), ((-1, {_sV: _cI}),)) + +CLUSTER_SETTING: StaticSchema = ( + 18, + n0, + _CS, + 0, + (_na, _va), + ((CLUSTER_SETTING_NAME, 0), (STRING, 0)), +) + +CLUSTER_SETTINGS: StaticSchema = (16, n0, _CSl, 0, (_me,), ((CLUSTER_SETTING, 0),)) + +CREATE_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _CCI, + {_sSI: _cCCR, _smit: None}, + (_cN, _ta, _set, _co, _cPa, _dCPS, _sCD), + ( + (STRING, 0), + (TAGS, 0), + (CLUSTER_SETTINGS, 0), + (CLUSTER_CONFIGURATION, 0), + (STRING_LIST, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (CLUSTER_SERVICE_CONNECT_DEFAULTS_REQUEST, 0), + ), +) + +INTEGER: StaticSchema = (7, n0, _I, {_smi: 0}) + +KEY_VALUE_PAIR: StaticSchema = (18, n0, _KVP, 0, (_na, _va), ((STRING, 0), (STRING, 0))) + +ATTACHMENT_DETAILS: StaticSchema = (16, n0, _AD, 0, (_me,), ((KEY_VALUE_PAIR, 0),)) + +ATTACHMENT: StaticSchema = ( + 18, + n0, + _At, + 0, + (_id, _ty, _st, _de), + ((STRING, 0), (STRING, 0), (STRING, 0), (ATTACHMENT_DETAILS, 0)), +) + +ATTACHMENTS: StaticSchema = (16, n0, _Att, 0, (_me,), ((ATTACHMENT, 0),)) + +CLUSTER_SERVICE_CONNECT_DEFAULTS: StaticSchema = ( + 18, + n0, + _CSCD, + 0, + (_nam,), + ((STRING, 0),), +) + +STATISTICS: StaticSchema = (16, n0, _St, 0, (_me,), ((KEY_VALUE_PAIR, 0),)) + +CLUSTER: StaticSchema = ( + 18, + n0, + _C, + 0, + ( + _cA, + _cN, + _co, + _st, + _rCIC, + _rTC, + _pTC, + _aSC, + _sta, + _ta, + _set, + _cPa, + _dCPS, + _at, + _aSt, + _sCD, + ), + ( + (STRING, 0), + (STRING, 0), + (CLUSTER_CONFIGURATION, 0), + (STRING, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (STATISTICS, 0), + (TAGS, 0), + (CLUSTER_SETTINGS, 0), + (STRING_LIST, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (ATTACHMENTS, 0), + (STRING, 0), + (CLUSTER_SERVICE_CONNECT_DEFAULTS, 0), + ), +) + +CREATE_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _CCO, + {_sSI: _cCCRo, _smith: None}, + (_cl,), + ((CLUSTER, 0),), +) + +NAMESPACE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _NNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CREATE_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _CCr, + 0, + CREATE_CLUSTER_INPUT, + CREATE_CLUSTER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +CLUSTER_CONTAINS_CAPACITY_PROVIDER_EXCEPTION: StaticSchema = ( + 18, + n0, + _CCCPE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CLUSTER_CONTAINS_CONTAINER_INSTANCES_EXCEPTION: StaticSchema = ( + 18, + n0, + _CCCIE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CLUSTER_CONTAINS_SERVICES_EXCEPTION: StaticSchema = ( + 18, + n0, + _CCSE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CLUSTER_CONTAINS_TASKS_EXCEPTION: StaticSchema = ( + 18, + n0, + _CCTE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DELETE_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _DCI, + {_sSI: _cDCR, _smit: None}, + (_cl,), + ((STRING, 1),), +) + +DELETE_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _DCO, + {_sSI: _cDCRo, _smith: None}, + (_cl,), + ((CLUSTER, 0),), +) + +DELETE_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _DCe, + 0, + DELETE_CLUSTER_INPUT, + DELETE_CLUSTER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_CONTAINS_CAPACITY_PROVIDER_EXCEPTION, + CLUSTER_CONTAINS_CONTAINER_INSTANCES_EXCEPTION, + CLUSTER_CONTAINS_SERVICES_EXCEPTION, + CLUSTER_CONTAINS_TASKS_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +DEREGISTER_CONTAINER_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _DCII, + {_sSI: _cDCIR, _smit: None}, + (_cl, _cIo, _fo), + ((STRING, 0), (STRING, 1), (BOXED_BOOLEAN, 0)), +) + +TARGET_TYPE: StaticSchema = (14, n0, _TT, 0, (_CI_,), ((-1, {_sV: _ci}),)) + +ATTRIBUTE: StaticSchema = ( + 18, + n0, + _Attr, + 0, + (_na, _va, _tT, _tI), + ((STRING, 1), (STRING, 0), (TARGET_TYPE, 0), (STRING, 0)), +) + +ATTRIBUTES: StaticSchema = (16, n0, _Attri, 0, (_me,), ((ATTRIBUTE, 0),)) + +GPU_SHARING_MODE: StaticSchema = ( + 14, + n0, + _GSM, + 0, + (_IDLE, _NM, _DEDICATED), + ((-1, {_sV: _IDLE}), (-1, {_sV: _NM}), (-1, {_sV: _DEDICATED})), +) + +GPU_DEVICE: StaticSchema = ( + 18, + n0, + _GD, + 0, + (_gI, _sM, _tMIMB, _rMIMB, _cC), + ( + (STRING, 0), + (GPU_SHARING_MODE, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + ), +) + +GPU_DEVICES: StaticSchema = (16, n0, _GDp, 0, (_me,), ((GPU_DEVICE, 0),)) + +TIMESTAMP: StaticSchema = (4, n0, _Ti, 0) + +INSTANCE_HEALTH_CHECK_STATE: StaticSchema = ( + 14, + n0, + _IHCS, + 0, + (_OK, _IMPAIRED, _ID, _INITIALIZING), + ( + (-1, {_sV: _OK}), + (-1, {_sV: _IMPAIRED}), + (-1, {_sV: _ID}), + (-1, {_sV: _INITIALIZING}), + ), +) + +INSTANCE_HEALTH_CHECK_TYPE: StaticSchema = ( + 14, + n0, + _IHCT, + 0, + (_CR, _AC_, _DAEMON, _AC__), + ((-1, {_sV: _CR}), (-1, {_sV: _AC_}), (-1, {_sV: _DAEMON}), (-1, {_sV: _AC__})), +) + +INSTANCE_HEALTH_CHECK_RESULT: StaticSchema = ( + 18, + n0, + _IHCR, + 0, + (_ty, _st, _sR, _lU, _lSCa), + ( + (INSTANCE_HEALTH_CHECK_TYPE, 0), + (INSTANCE_HEALTH_CHECK_STATE, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +INSTANCE_HEALTH_CHECK_RESULT_LIST: StaticSchema = ( + 16, + n0, + _IHCRL, + 0, + (_me,), + ((INSTANCE_HEALTH_CHECK_RESULT, 0),), +) + +CONTAINER_INSTANCE_HEALTH_STATUS: StaticSchema = ( + 18, + n0, + _CIHS, + 0, + (_oS, _de), + ((INSTANCE_HEALTH_CHECK_STATE, 0), (INSTANCE_HEALTH_CHECK_RESULT_LIST, 0)), +) + +DOUBLE: StaticSchema = (10, n0, _D, {_smi: 0}) + +LONG: StaticSchema = (8, n0, _Lo, {_smi: 0}) + +RESOURCE: StaticSchema = ( + 18, + n0, + _R, + 0, + (_na, _ty, _dV, _lV, _iV, _sSV), + ( + (STRING, 0), + (STRING, 0), + (DOUBLE, {_smi: 0}), + (LONG, {_smi: 0}), + (INTEGER, {_smi: 0}), + (STRING_LIST, 0), + ), +) + +RESOURCES: StaticSchema = (16, n0, _Re, 0, (_me,), ((RESOURCE, 0),)) + +VERSION_INFO: StaticSchema = ( + 18, + n0, + _VI, + 0, + (_aV, _aH, _dVo), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +CONTAINER_INSTANCE: StaticSchema = ( + 18, + n0, + _CIo, + 0, + ( + _cIA, + _eII, + _cPN, + _ve, + _vI, + _rR, + _rRe, + _st, + _sR, + _aCg, + _rTC, + _pTC, + _aUS, + _att, + _rAe, + _at, + _ta, + _hS, + _gD, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (LONG, {_smi: 0}), + (VERSION_INFO, 0), + (RESOURCES, 0), + (RESOURCES, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (AGENT_UPDATE_STATUS, 0), + (ATTRIBUTES, 0), + (TIMESTAMP, 0), + (ATTACHMENTS, 0), + (TAGS, 0), + (CONTAINER_INSTANCE_HEALTH_STATUS, 0), + (GPU_DEVICES, 0), + ), +) + +DEREGISTER_CONTAINER_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DCIO, + {_sSI: _cDCIRo, _smith: None}, + (_cIo,), + ((CONTAINER_INSTANCE, 0),), +) + +DEREGISTER_CONTAINER_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _DCIe, + 0, + DEREGISTER_CONTAINER_INSTANCE_INPUT, + DEREGISTER_CONTAINER_INSTANCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +CLUSTER_FIELD: StaticSchema = ( + 14, + n0, + _CFl, + 0, + (_ATTACHMENTS, _CONFIGURATIONS, _SETTINGS, _STATISTICS, _TAGS), + ( + (-1, {_sV: _ATTACHMENTS}), + (-1, {_sV: _CONFIGURATIONS}), + (-1, {_sV: _SETTINGS}), + (-1, {_sV: _STATISTICS}), + (-1, {_sV: _TAGS}), + ), +) + +CLUSTER_FIELD_LIST: StaticSchema = (16, n0, _CFL, 0, (_me,), ((CLUSTER_FIELD, 0),)) + +DESCRIBE_CLUSTERS_INPUT: StaticSchema = ( + 18, + n0, + _DCIes, + {_sSI: _cDCRom, _smit: None}, + (_clu, _incl), + ((STRING_LIST, 0), (CLUSTER_FIELD_LIST, 0)), +) + +CLUSTERS: StaticSchema = (16, n0, _Cl, 0, (_me,), ((CLUSTER, 0),)) + +DESCRIBE_CLUSTERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DCOe, + {_sSI: _cDCRoma, _smith: None}, + (_clu, _fa), + ((CLUSTERS, 0), (FAILURES, 0)), +) + +DESCRIBE_CLUSTERS: StaticOperationSchema = ( + 23, + n0, + _DCes, + 0, + DESCRIBE_CLUSTERS_INPUT, + DESCRIBE_CLUSTERS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +EXECUTE_COMMAND_INPUT: StaticSchema = ( + 18, + n0, + _ECI, + {_sSI: _cECR, _smit: None}, + (_cl, _con, _com, _inte, _tas), + ( + (STRING, 0), + (STRING, 0), + (STRING, 1), + (BOOLEAN, {_smi: False, _sm: None}), + (STRING, 1), + ), +) + +SENSITIVE_STRING: StaticSchema = (3, n0, _SS, 4) + +SESSION: StaticSchema = ( + 18, + n0, + _Se, + 0, + (_sI, _sU, _tV), + ((STRING, 0), (STRING, 0), (SENSITIVE_STRING, 0)), +) + +EXECUTE_COMMAND_OUTPUT: StaticSchema = ( + 18, + n0, + _ECO, + {_sSI: _cECRo, _smith: None}, + (_cA, _cAo, _cNo, _inte, _ses, _tA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (SESSION, 0), + (STRING, 0), + ), +) + +TARGET_NOT_CONNECTED_EXCEPTION: StaticSchema = ( + 18, + n0, + _TNCE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +EXECUTE_COMMAND: StaticOperationSchema = ( + 23, + n0, + _EC, + 0, + EXECUTE_COMMAND_INPUT, + EXECUTE_COMMAND_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + TARGET_NOT_CONNECTED_EXCEPTION, + ), +) + +LIST_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _LAI, + {_sSI: _cLAR, _smit: None}, + (_cl, _tT, _aNt, _aVt, _nT, _mR), + ( + (STRING, 0), + (TARGET_TYPE, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + ), +) + +LIST_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _LAO, + {_sSI: _cLARo, _smith: None}, + (_att, _nT), + ((ATTRIBUTES, 0), (STRING, 0)), +) + +LIST_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _LA, + 0, + LIST_ATTRIBUTES_INPUT, + LIST_ATTRIBUTES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +LIST_CLUSTERS_INPUT: StaticSchema = ( + 18, + n0, + _LCI, + {_sSI: _cLCR, _smit: None}, + (_nT, _mR), + ((STRING, 0), (BOXED_INTEGER, 0)), +) + +LIST_CLUSTERS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCO, + {_sSI: _cLCRo, _smith: None}, + (_cAl, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_CLUSTERS: StaticOperationSchema = ( + 23, + n0, + _LC, + 0, + LIST_CLUSTERS_INPUT, + LIST_CLUSTERS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +CONTAINER_INSTANCE_STATUS: StaticSchema = ( + 14, + n0, + _CIS, + 0, + (_ACTIVE, _DRAINING, _REGISTERING, _DEREGISTERING, _RF_), + ( + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _DRAINING}), + (-1, {_sV: _REGISTERING}), + (-1, {_sV: _DEREGISTERING}), + (-1, {_sV: _RF_}), + ), +) + +LIST_CONTAINER_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _LCII, + {_sSI: _cLCIR, _smit: None}, + (_cl, _fi, _nT, _mR, _st), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (CONTAINER_INSTANCE_STATUS, 0), + ), +) + +LIST_CONTAINER_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _LCIO, + {_sSI: _cLCIRo, _smith: None}, + (_cIAo, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_CONTAINER_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _LCIi, + 0, + LIST_CONTAINER_INSTANCES_INPUT, + LIST_CONTAINER_INSTANCES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +PUT_CLUSTER_CAPACITY_PROVIDERS_INPUT: StaticSchema = ( + 18, + n0, + _PCCPI, + {_sSI: _cPCCPR, _smit: None}, + (_cl, _cPa, _dCPS), + ((STRING, 1), (STRING_LIST, 1), (CAPACITY_PROVIDER_STRATEGY, 1)), +) + +PUT_CLUSTER_CAPACITY_PROVIDERS_OUTPUT: StaticSchema = ( + 18, + n0, + _PCCPO, + {_sSI: _cPCCPRo, _smith: None}, + (_cl,), + ((CLUSTER, 0),), +) + +RESOURCE_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _RIUE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +PUT_CLUSTER_CAPACITY_PROVIDERS: StaticOperationSchema = ( + 23, + n0, + _PCCP, + 0, + PUT_CLUSTER_CAPACITY_PROVIDERS_INPUT, + PUT_CLUSTER_CAPACITY_PROVIDERS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + SERVER_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +ATTACHMENT_STATE_CHANGE: StaticSchema = ( + 18, + n0, + _ASC, + 0, + (_aA, _st), + ((STRING, 1), (STRING, 1)), +) + +ATTACHMENT_STATE_CHANGES: StaticSchema = ( + 16, + n0, + _ASCt, + 0, + (_me,), + ((ATTACHMENT_STATE_CHANGE, 0),), +) + +SUBMIT_ATTACHMENT_STATE_CHANGES_INPUT: StaticSchema = ( + 18, + n0, + _SASCI, + {_sSI: _cSASCR, _smit: None}, + (_cl, _at), + ((STRING, 0), (ATTACHMENT_STATE_CHANGES, 1)), +) + +SUBMIT_ATTACHMENT_STATE_CHANGES_OUTPUT: StaticSchema = ( + 18, + n0, + _SASCO, + {_sSI: _cSASCRo, _smith: None}, + (_ac,), + ((STRING, 0),), +) + +SUBMIT_ATTACHMENT_STATE_CHANGES: StaticOperationSchema = ( + 23, + n0, + _SASC, + 0, + SUBMIT_ATTACHMENT_STATE_CHANGES_INPUT, + SUBMIT_ATTACHMENT_STATE_CHANGES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +TRANSPORT_PROTOCOL: StaticSchema = ( + 14, + n0, + _TP, + 0, + (_TCP, _UDP), + ((-1, {_sV: _tc}), (-1, {_sV: _u})), +) + +NETWORK_BINDING: StaticSchema = ( + 18, + n0, + _NB, + 0, + (_bIP, _cPo, _hP, _pr, _cPR, _hPR), + ( + (STRING, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (TRANSPORT_PROTOCOL, 0), + (STRING, 0), + (STRING, 0), + ), +) + +NETWORK_BINDINGS: StaticSchema = (16, n0, _NBe, 0, (_me,), ((NETWORK_BINDING, 0),)) + +SUBMIT_CONTAINER_STATE_CHANGE_INPUT: StaticSchema = ( + 18, + n0, + _SCSCI, + {_sSI: _cSCSCR, _smit: None}, + (_cl, _tas, _cNo, _rI, _st, _eC, _re, _nB), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (NETWORK_BINDINGS, 0), + ), +) + +SUBMIT_CONTAINER_STATE_CHANGE_OUTPUT: StaticSchema = ( + 18, + n0, + _SCSCO, + {_sSI: _cSCSCRo, _smith: None}, + (_ac,), + ((STRING, 0),), +) + +SUBMIT_CONTAINER_STATE_CHANGE: StaticOperationSchema = ( + 23, + n0, + _SCSC, + 0, + SUBMIT_CONTAINER_STATE_CHANGE_INPUT, + SUBMIT_CONTAINER_STATE_CHANGE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +CONTAINER_STATE_CHANGE: StaticSchema = ( + 18, + n0, + _CSC, + 0, + (_cNo, _iD, _rI, _eC, _nB, _re, _st), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (NETWORK_BINDINGS, 0), + (STRING, 0), + (STRING, 0), + ), +) + +CONTAINER_STATE_CHANGES: StaticSchema = ( + 16, + n0, + _CSCo, + 0, + (_me,), + ((CONTAINER_STATE_CHANGE, 0),), +) + +MANAGED_AGENT_NAME: StaticSchema = (14, n0, _MAN, 0, (_ECA,), ((-1, {_sV: _ECA}),)) + +MANAGED_AGENT_STATE_CHANGE: StaticSchema = ( + 18, + n0, + _MASC, + 0, + (_cNo, _mAN, _st, _re), + ((STRING, 1), (MANAGED_AGENT_NAME, 1), (STRING, 1), (STRING, 0)), +) + +MANAGED_AGENT_STATE_CHANGES: StaticSchema = ( + 16, + n0, + _MASCa, + 0, + (_me,), + ((MANAGED_AGENT_STATE_CHANGE, 0),), +) + +SUBMIT_TASK_STATE_CHANGE_INPUT: StaticSchema = ( + 18, + n0, + _STSCI, + {_sSI: _cSTSCR, _smit: None}, + (_cl, _tas, _st, _re, _cont, _at, _mA, _pSA, _pSAu, _eSA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CONTAINER_STATE_CHANGES, 0), + (ATTACHMENT_STATE_CHANGES, 0), + (MANAGED_AGENT_STATE_CHANGES, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +SUBMIT_TASK_STATE_CHANGE_OUTPUT: StaticSchema = ( + 18, + n0, + _STSCO, + {_sSI: _cSTSCRo, _smith: None}, + (_ac,), + ((STRING, 0),), +) + +SUBMIT_TASK_STATE_CHANGE: StaticOperationSchema = ( + 23, + n0, + _STSC, + 0, + SUBMIT_TASK_STATE_CHANGE_INPUT, + SUBMIT_TASK_STATE_CHANGE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +UPDATE_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _UCI, + {_sSI: _cUCR, _smit: None}, + (_cl, _set, _co, _sCD), + ( + (STRING, 1), + (CLUSTER_SETTINGS, 0), + (CLUSTER_CONFIGURATION, 0), + (CLUSTER_SERVICE_CONNECT_DEFAULTS_REQUEST, 0), + ), +) + +UPDATE_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _UCO, + {_sSI: _cUCRo, _smith: None}, + (_cl,), + ((CLUSTER, 0),), +) + +UPDATE_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _UCp, + 0, + UPDATE_CLUSTER_INPUT, + UPDATE_CLUSTER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +UPDATE_CLUSTER_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _UCSI, + {_sSI: _cUCSR, _smit: None}, + (_cl, _set), + ((STRING, 1), (CLUSTER_SETTINGS, 1)), +) + +UPDATE_CLUSTER_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _UCSO, + {_sSI: _cUCSRo, _smith: None}, + (_cl,), + ((CLUSTER, 0),), +) + +UPDATE_CLUSTER_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _UCS, + 0, + UPDATE_CLUSTER_SETTINGS_INPUT, + UPDATE_CLUSTER_SETTINGS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +DELETE_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DAI, + {_sSI: _cDAR, _smit: None}, + (_cl, _att), + ((STRING, 0), (ATTRIBUTES, 1)), +) + +DELETE_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DAO, + {_sSI: _cDARo, _smith: None}, + (_att,), + ((ATTRIBUTES, 0),), +) + +TARGET_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _TNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DELETE_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DA, + 0, + DELETE_ATTRIBUTES_INPUT, + DELETE_ATTRIBUTES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + TARGET_NOT_FOUND_EXCEPTION, + ), +) + +CONTAINER_INSTANCE_FIELD: StaticSchema = ( + 14, + n0, + _CIF, + 0, + (_TAGS, _CIH), + ((-1, {_sV: _TAGS}), (-1, {_sV: _CIH})), +) + +CONTAINER_INSTANCE_FIELD_LIST: StaticSchema = ( + 16, + n0, + _CIFL, + 0, + (_me,), + ((CONTAINER_INSTANCE_FIELD, 0),), +) + +DESCRIBE_CONTAINER_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DCIIe, + {_sSI: _cDCIRom, _smit: None}, + (_cl, _cIon, _incl), + ((STRING, 0), (STRING_LIST, 1), (CONTAINER_INSTANCE_FIELD_LIST, 0)), +) + +CONTAINER_INSTANCES: StaticSchema = ( + 16, + n0, + _CIon, + 0, + (_me,), + ((CONTAINER_INSTANCE, 0),), +) + +DESCRIBE_CONTAINER_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCIOe, + {_sSI: _cDCIRoma, _smith: None}, + (_cIon, _fa), + ((CONTAINER_INSTANCES, 0), (FAILURES, 0)), +) + +DESCRIBE_CONTAINER_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DCIesc, + 0, + DESCRIBE_CONTAINER_INSTANCES_INPUT, + DESCRIBE_CONTAINER_INSTANCES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DESIRED_STATUS: StaticSchema = ( + 14, + n0, + _DS, + 0, + (_RUNNING, _PENDING, _STOPPED), + ((-1, {_sV: _RUNNING}), (-1, {_sV: _PENDING}), (-1, {_sV: _STOPPED})), +) + +LAUNCH_TYPE: StaticSchema = ( + 14, + n0, + _LT, + 0, + (_EC_, _FARGATE, _EXTERNAL, _MI), + ( + (-1, {_sV: _EC_}), + (-1, {_sV: _FARGATE}), + (-1, {_sV: _EXTERNAL}), + (-1, {_sV: _MI}), + ), +) + +LIST_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _LTI, + {_sSI: _cLTR, _smit: None}, + (_cl, _cIo, _fam, _nT, _mR, _sB, _sNe, _dS, _lT, _dN), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (STRING, 0), + (DESIRED_STATUS, 0), + (LAUNCH_TYPE, 0), + (STRING, 0), + ), +) + +LIST_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _LTO, + {_sSI: _cLTRo, _smith: None}, + (_tAa, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +SERVICE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +LIST_TASKS: StaticOperationSchema = ( + 23, + n0, + _LTi, + 0, + LIST_TASKS_INPUT, + LIST_TASKS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + ), +) + +ATTRIBUTE_LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _ALEE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +PUT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _PAI, + {_sSI: _cPAR, _smit: None}, + (_cl, _att), + ((STRING, 0), (ATTRIBUTES, 1)), +) + +PUT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _PAO, + {_sSI: _cPARo, _smith: None}, + (_att,), + ((ATTRIBUTES, 0),), +) + +PUT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _PA, + 0, + PUT_ATTRIBUTES_INPUT, + PUT_ATTRIBUTES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + ATTRIBUTE_LIMIT_EXCEEDED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + TARGET_NOT_FOUND_EXCEPTION, + ), +) + +PLATFORM_DEVICE_TYPE: StaticSchema = ( + 14, + n0, + _PDT, + 0, + (_GPU, _ND), + ((-1, {_sV: _GPU}), (-1, {_sV: _ND})), +) + +PLATFORM_DEVICE: StaticSchema = ( + 18, + n0, + _PD, + 0, + (_id, _ty), + ((STRING, 1), (PLATFORM_DEVICE_TYPE, 1)), +) + +PLATFORM_DEVICES: StaticSchema = (16, n0, _PDl, 0, (_me,), ((PLATFORM_DEVICE, 0),)) + +REGISTER_CONTAINER_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _RCII, + {_sSI: _cRCIR, _smit: None}, + (_cl, _iID, _iIDS, _tR, _vI, _cIA, _att, _pD, _ta), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (RESOURCES, 0), + (VERSION_INFO, 0), + (STRING, 0), + (ATTRIBUTES, 0), + (PLATFORM_DEVICES, 0), + (TAGS, 0), + ), +) + +REGISTER_CONTAINER_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _RCIO, + {_sSI: _cRCIRo, _smith: None}, + (_cIo,), + ((CONTAINER_INSTANCE, 0),), +) + +REGISTER_CONTAINER_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _RCI, + 0, + REGISTER_CONTAINER_INSTANCE_INPUT, + REGISTER_CONTAINER_INSTANCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +MISSING_VERSION_EXCEPTION: StaticSchema = ( + 18, + n0, + _MVE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +NO_UPDATE_AVAILABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _NUAE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +UPDATE_CONTAINER_AGENT_INPUT: StaticSchema = ( + 18, + n0, + _UCAI, + {_sSI: _cUCAR, _smit: None}, + (_cl, _cIo), + ((STRING, 0), (STRING, 1)), +) + +UPDATE_CONTAINER_AGENT_OUTPUT: StaticSchema = ( + 18, + n0, + _UCAO, + {_sSI: _cUCARo, _smith: None}, + (_cIo,), + ((CONTAINER_INSTANCE, 0),), +) + +UPDATE_CONTAINER_AGENT: StaticOperationSchema = ( + 23, + n0, + _UCA, + 0, + UPDATE_CONTAINER_AGENT_INPUT, + UPDATE_CONTAINER_AGENT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + MISSING_VERSION_EXCEPTION, + NO_UPDATE_AVAILABLE_EXCEPTION, + SERVER_EXCEPTION, + UPDATE_IN_PROGRESS_EXCEPTION, + ), +) + +UPDATE_CONTAINER_INSTANCES_STATE_INPUT: StaticSchema = ( + 18, + n0, + _UCISI, + {_sSI: _cUCISR, _smit: None}, + (_cl, _cIon, _st), + ((STRING, 0), (STRING_LIST, 1), (CONTAINER_INSTANCE_STATUS, 1)), +) + +UPDATE_CONTAINER_INSTANCES_STATE_OUTPUT: StaticSchema = ( + 18, + n0, + _UCISO, + {_sSI: _cUCISRo, _smith: None}, + (_cIon, _fa), + ((CONTAINER_INSTANCES, 0), (FAILURES, 0)), +) + +UPDATE_CONTAINER_INSTANCES_STATE: StaticOperationSchema = ( + 23, + n0, + _UCIS, + 0, + UPDATE_CONTAINER_INSTANCES_STATE_INPUT, + UPDATE_CONTAINER_INSTANCES_STATE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_ACTION: StaticSchema = ( + 14, + n0, + _DLHA, + 0, + (_ROLLBACK, _CONTINUE), + ((-1, {_sV: _ROLLBACK}), (-1, {_sV: _CONTINUE})), +) + +CONTINUE_SERVICE_DEPLOYMENT_INPUT: StaticSchema = ( + 18, + n0, + _CSDI, + {_sSI: _cCSDR, _smit: None}, + (_sDA, _hI, _act), + ((STRING, 1), (STRING, 1), (DEPLOYMENT_LIFECYCLE_HOOK_ACTION, 0)), +) + +CONTINUE_SERVICE_DEPLOYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _CSDO, + {_sSI: _cCSDRo, _smith: None}, + (_sDA,), + ((STRING, 0),), +) + +SERVICE_DEPLOYMENT_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _SDNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CONTINUE_SERVICE_DEPLOYMENT: StaticOperationSchema = ( + 23, + n0, + _CSD, + 0, + CONTINUE_SERVICE_DEPLOYMENT_INPUT, + CONTINUE_SERVICE_DEPLOYMENT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_DEPLOYMENT_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_DAEMON_DEPLOYMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DDDI, + {_sSI: _cDDDR, _smit: None}, + (_dDA,), + ((STRING_LIST, 1),), +) + +DAEMON_DEPLOYMENT_ROLLBACK_MONITORS_STATUS: StaticSchema = ( + 14, + n0, + _DDRMS, + 0, + (_TRIGGERED, _MONITORING, _MC, _DISABLED), + ( + (-1, {_sV: _TRIGGERED}), + (-1, {_sV: _MONITORING}), + (-1, {_sV: _MC}), + (-1, {_sV: _DISABLED}), + ), +) + +DAEMON_DEPLOYMENT_ALARMS: StaticSchema = ( + 18, + n0, + _DDA, + 0, + (_st, _aNl, _tAN), + ( + (DAEMON_DEPLOYMENT_ROLLBACK_MONITORS_STATUS, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + ), +) + +DAEMON_CIRCUIT_BREAKER: StaticSchema = ( + 18, + n0, + _DCB, + 0, + (_fC, _st, _th), + ( + (INTEGER, {_smi: 0}), + (DAEMON_DEPLOYMENT_ROLLBACK_MONITORS_STATUS, 0), + (INTEGER, {_smi: 0}), + ), +) + +DAEMON_ALARM_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DAC, + 0, + (_aNl, _en), + ((STRING_LIST, 0), (BOOLEAN, {_smi: False})), +) + +DAEMON_DRAIN_PERCENT: StaticSchema = (10, n0, _DDP, 0) + +DAEMON_DEPLOYMENT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DDC, + 0, + (_dP, _al, _bTIM), + ((DAEMON_DRAIN_PERCENT, 0), (DAEMON_ALARM_CONFIGURATION, 0), (INTEGER, {_smi: 0})), +) + +DAEMON_ROLLBACK: StaticSchema = ( + 18, + n0, + _DR, + 0, + (_re, _sA, _rTDRA, _rCP), + ((STRING, 0), (TIMESTAMP, 0), (STRING, 0), (STRING_LIST, 0)), +) + +DAEMON_DEPLOYMENT_CAPACITY_PROVIDER: StaticSchema = ( + 18, + n0, + _DDCP, + 0, + (_ar, _rIC, _wDIC, _dIC), + ((STRING, 0), (BOXED_INTEGER, 0), (BOXED_INTEGER, 0), (BOXED_INTEGER, 0)), +) + +DAEMON_DEPLOYMENT_CAPACITY_PROVIDER_LIST: StaticSchema = ( + 16, + n0, + _DDCPL, + 0, + (_me,), + ((DAEMON_DEPLOYMENT_CAPACITY_PROVIDER, 0),), +) + +DAEMON_DEPLOYMENT_REVISION_DETAIL: StaticSchema = ( + 18, + n0, + _DDRD, + 0, + (_ar, _cPa, _tRIC, _tWDIC, _tDIC), + ( + (STRING, 0), + (DAEMON_DEPLOYMENT_CAPACITY_PROVIDER_LIST, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + ), +) + +DAEMON_DEPLOYMENT_REVISION_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _DDRDL, + 0, + (_me,), + ((DAEMON_DEPLOYMENT_REVISION_DETAIL, 0),), +) + +DAEMON_DEPLOYMENT_STATUS: StaticSchema = ( + 14, + n0, + _DDS, + 0, + (_PENDING, _SUCCESSFUL, _STOPPED, _SR, _IP, _RIP, _RS, _RF__), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _SUCCESSFUL}), + (-1, {_sV: _STOPPED}), + (-1, {_sV: _SR}), + (-1, {_sV: _IP}), + (-1, {_sV: _RIP}), + (-1, {_sV: _RS}), + (-1, {_sV: _RF__}), + ), +) + +DAEMON_DEPLOYMENT: StaticSchema = ( + 18, + n0, + _DD, + 0, + (_dDAa, _cA, _st, _sR, _tDR, _sDR, _cB, _al, _ro, _dC, _cAr, _sA, _sAt, _fA), + ( + (STRING, 0), + (STRING, 0), + (DAEMON_DEPLOYMENT_STATUS, 0), + (STRING, 0), + (DAEMON_DEPLOYMENT_REVISION_DETAIL, 0), + (DAEMON_DEPLOYMENT_REVISION_DETAIL_LIST, 0), + (DAEMON_CIRCUIT_BREAKER, 0), + (DAEMON_DEPLOYMENT_ALARMS, 0), + (DAEMON_ROLLBACK, 0), + (DAEMON_DEPLOYMENT_CONFIGURATION, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +DAEMON_DEPLOYMENT_LIST: StaticSchema = ( + 16, + n0, + _DDL, + 0, + (_me,), + ((DAEMON_DEPLOYMENT, 0),), +) + +DESCRIBE_DAEMON_DEPLOYMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDDO, + {_sSI: _cDDDRo, _smith: None}, + (_fa, _dD), + ((FAILURES, 0), (DAEMON_DEPLOYMENT_LIST, 0)), +) + +DESCRIBE_DAEMON_DEPLOYMENTS: StaticOperationSchema = ( + 23, + n0, + _DDD, + 0, + DESCRIBE_DAEMON_DEPLOYMENTS_INPUT, + DESCRIBE_DAEMON_DEPLOYMENTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DAEMON_PROPAGATE_TAGS: StaticSchema = ( + 14, + n0, + _DPT, + 0, + (_DAEMON, _NONE), + ((-1, {_sV: _DAEMON}), (-1, {_sV: _NONE})), +) + +CREATE_DAEMON_INPUT: StaticSchema = ( + 18, + n0, + _CDI, + {_sSI: _cCDR, _smit: None}, + (_dN, _cA, _dTDA, _cPAa, _dC, _ta, _pT, _eECSMT, _eEC, _cT, _cr), + ( + (STRING, 1), + (STRING, 0), + (STRING, 1), + (STRING_LIST, 1), + (DAEMON_DEPLOYMENT_CONFIGURATION, 0), + (TAGS, 0), + (DAEMON_PROPAGATE_TAGS, 0), + (BOOLEAN, {_smi: False}), + (BOOLEAN, {_smi: False}), + (STRING, 0), + (BOXED_BOOLEAN, 0), + ), +) + +DAEMON_STATUS: StaticSchema = ( + 14, + n0, + _DSa, + 0, + (_ACTIVE, _DIP), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DIP})), +) + +CREATE_DAEMON_OUTPUT: StaticSchema = ( + 18, + n0, + _CDO, + {_sSI: _cCDRo, _smith: None}, + (_dA, _st, _cAr, _dAe), + ((STRING, 0), (DAEMON_STATUS, 0), (TIMESTAMP, 0), (STRING, 0)), +) + +PLATFORM_UNKNOWN_EXCEPTION: StaticSchema = ( + 18, + n0, + _PUE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CREATE_DAEMON: StaticOperationSchema = ( + 23, + n0, + _CD, + 0, + CREATE_DAEMON_INPUT, + CREATE_DAEMON_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DAEMON_NOT_ACTIVE_EXCEPTION: StaticSchema = ( + 18, + n0, + _DNAE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DAEMON_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _DNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DELETE_DAEMON_INPUT: StaticSchema = ( + 18, + n0, + _DDI, + {_sSI: _cDDR, _smit: None}, + (_dA,), + ((STRING, 1),), +) + +DELETE_DAEMON_OUTPUT: StaticSchema = ( + 18, + n0, + _DDO, + {_sSI: _cDDRo, _smith: None}, + (_dA, _st, _cAr, _uA, _dAe), + ((STRING, 0), (DAEMON_STATUS, 0), (TIMESTAMP, 0), (TIMESTAMP, 0), (STRING, 0)), +) + +DELETE_DAEMON: StaticOperationSchema = ( + 23, + n0, + _DDe, + 0, + DELETE_DAEMON_INPUT, + DELETE_DAEMON_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + DAEMON_NOT_ACTIVE_EXCEPTION, + DAEMON_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_DAEMON_INPUT: StaticSchema = ( + 18, + n0, + _DDIe, + {_sSI: _cDDRom, _smit: None}, + (_dA,), + ((STRING, 1),), +) + +DAEMON_CAPACITY_PROVIDER: StaticSchema = ( + 18, + n0, + _DCPa, + 0, + (_ar, _rC, _wDC), + ((STRING, 0), (INTEGER, {_smi: 0}), (INTEGER, {_smi: 0})), +) + +DAEMON_CAPACITY_PROVIDER_LIST: StaticSchema = ( + 16, + n0, + _DCPL, + 0, + (_me,), + ((DAEMON_CAPACITY_PROVIDER, 0),), +) + +DAEMON_REVISION_DETAIL: StaticSchema = ( + 18, + n0, + _DRD, + 0, + (_ar, _cPa, _tRC, _tWDC), + ( + (STRING, 0), + (DAEMON_CAPACITY_PROVIDER_LIST, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + ), +) + +DAEMON_REVISION_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _DRDL, + 0, + (_me,), + ((DAEMON_REVISION_DETAIL, 0),), +) + +DAEMON_DETAIL: StaticSchema = ( + 18, + n0, + _DDa, + 0, + (_dA, _cA, _st, _cRu, _dAe, _cAr, _uA), + ( + (STRING, 0), + (STRING, 0), + (DAEMON_STATUS, 0), + (DAEMON_REVISION_DETAIL_LIST, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +DESCRIBE_DAEMON_OUTPUT: StaticSchema = ( + 18, + n0, + _DDOe, + {_sSI: _cDDRoma, _smith: None}, + (_da,), + ((DAEMON_DETAIL, 0),), +) + +DESCRIBE_DAEMON: StaticOperationSchema = ( + 23, + n0, + _DDes, + 0, + DESCRIBE_DAEMON_INPUT, + DESCRIBE_DAEMON_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + DAEMON_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +CREATED_AT: StaticSchema = ( + 18, + n0, + _CA, + 0, + (_be, _af), + ((TIMESTAMP, 0), (TIMESTAMP, 0)), +) + +DAEMON_DEPLOYMENT_STATUS_LIST: StaticSchema = ( + 16, + n0, + _DDSL, + 0, + (_me,), + ((DAEMON_DEPLOYMENT_STATUS, 0),), +) + +LIST_DAEMON_DEPLOYMENTS_INPUT: StaticSchema = ( + 18, + n0, + _LDDI, + {_sSI: _cLDDR, _smit: None}, + (_dA, _st, _cAr, _mR, _nT), + ( + (STRING, 1), + (DAEMON_DEPLOYMENT_STATUS_LIST, 0), + (CREATED_AT, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + ), +) + +DAEMON_DEPLOYMENT_SUMMARY: StaticSchema = ( + 18, + n0, + _DDSa, + 0, + (_dDAa, _dA, _cA, _st, _sR, _tDRA, _cAr, _sA, _sAt, _fA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DAEMON_DEPLOYMENT_STATUS, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +DAEMON_DEPLOYMENT_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _DDSLa, + 0, + (_me,), + ((DAEMON_DEPLOYMENT_SUMMARY, 0),), +) + +LIST_DAEMON_DEPLOYMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDDO, + {_sSI: _cLDDRo, _smith: None}, + (_nT, _dD), + ((STRING, 0), (DAEMON_DEPLOYMENT_SUMMARY_LIST, 0)), +) + +LIST_DAEMON_DEPLOYMENTS: StaticOperationSchema = ( + 23, + n0, + _LDD, + 0, + LIST_DAEMON_DEPLOYMENTS_INPUT, + LIST_DAEMON_DEPLOYMENTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +LIST_DAEMONS_INPUT: StaticSchema = ( + 18, + n0, + _LDI, + {_sSI: _cLDR, _smit: None}, + (_cA, _cPAa, _mR, _nT), + ((STRING, 0), (STRING_LIST, 0), (BOXED_INTEGER, 0), (STRING, 0)), +) + +DAEMON_SUMMARY: StaticSchema = ( + 18, + n0, + _DSae, + 0, + (_dA, _st, _cAr, _uA), + ((STRING, 0), (DAEMON_STATUS, 0), (TIMESTAMP, 0), (TIMESTAMP, 0)), +) + +DAEMON_SUMMARIES_LIST: StaticSchema = (16, n0, _DSL, 0, (_me,), ((DAEMON_SUMMARY, 0),)) + +LIST_DAEMONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDO, + {_sSI: _cLDRo, _smith: None}, + (_dSL, _nT), + ((DAEMON_SUMMARIES_LIST, 0), (STRING, 0)), +) + +LIST_DAEMONS: StaticOperationSchema = ( + 23, + n0, + _LD, + 0, + LIST_DAEMONS_INPUT, + LIST_DAEMONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +UPDATE_DAEMON_INPUT: StaticSchema = ( + 18, + n0, + _UDI, + {_sSI: _cUDR, _smit: None}, + (_dA, _dTDA, _cPAa, _dC, _pT, _eECSMT, _eEC, _cr), + ( + (STRING, 1), + (STRING, 1), + (STRING_LIST, 1), + (DAEMON_DEPLOYMENT_CONFIGURATION, 0), + (DAEMON_PROPAGATE_TAGS, 0), + (BOOLEAN, {_smi: False}), + (BOOLEAN, {_smi: False}), + (BOXED_BOOLEAN, 0), + ), +) + +UPDATE_DAEMON_OUTPUT: StaticSchema = ( + 18, + n0, + _UDO, + {_sSI: _cUDRo, _smith: None}, + (_dA, _st, _cAr, _uA, _dAe), + ((STRING, 0), (DAEMON_STATUS, 0), (TIMESTAMP, 0), (TIMESTAMP, 0), (STRING, 0)), +) + +UPDATE_DAEMON: StaticOperationSchema = ( + 23, + n0, + _UD, + 0, + UPDATE_DAEMON_INPUT, + UPDATE_DAEMON_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + DAEMON_NOT_ACTIVE_EXCEPTION, + DAEMON_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_DAEMON_REVISIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDRI, + {_sSI: _cDDRR, _smit: None}, + (_dRA,), + ((STRING_LIST, 1),), +) + +DAEMON_CONTAINER_IMAGE: StaticSchema = ( + 18, + n0, + _DCIa, + 0, + (_cNo, _iD, _im), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +DAEMON_CONTAINER_IMAGES: StaticSchema = ( + 16, + n0, + _DCIae, + 0, + (_me,), + ((DAEMON_CONTAINER_IMAGE, 0),), +) + +DAEMON_REVISION: StaticSchema = ( + 18, + n0, + _DRa, + 0, + (_dRAa, _cA, _dA, _dTDA, _cAr, _cIont, _pT, _eECSMT, _eEC, _cr), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (DAEMON_CONTAINER_IMAGES, 0), + (DAEMON_PROPAGATE_TAGS, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + ), +) + +DAEMON_REVISIONS: StaticSchema = (16, n0, _DRae, 0, (_me,), ((DAEMON_REVISION, 0),)) + +DESCRIBE_DAEMON_REVISIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDRO, + {_sSI: _cDDRRo, _smith: None}, + (_dR, _fa), + ((DAEMON_REVISIONS, 0), (FAILURES, 0)), +) + +DESCRIBE_DAEMON_REVISIONS: StaticOperationSchema = ( + 23, + n0, + _DDR, + 0, + DESCRIBE_DAEMON_REVISIONS_INPUT, + DESCRIBE_DAEMON_REVISIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DELETE_DAEMON_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _DDTDI, + {_sSI: _cDDTDR, _smit: None}, + (_dTD,), + ((STRING, 1),), +) + +DELETE_DAEMON_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _DDTDO, + {_sSI: _cDDTDRo, _smith: None}, + (_dTDA,), + ((STRING, 0),), +) + +DELETE_DAEMON_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _DDTD, + 0, + DELETE_DAEMON_TASK_DEFINITION_INPUT, + DELETE_DAEMON_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DESCRIBE_DAEMON_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _DDTDIe, + {_sSI: _cDDTDRom, _smit: None}, + (_dTD,), + ((STRING, 1),), +) + +CONTAINER_CONDITION: StaticSchema = ( + 14, + n0, + _CCo, + 0, + (_START, _COMPLETE, _SUCCESS, _HEALTHY), + ( + (-1, {_sV: _START}), + (-1, {_sV: _COMPLETE}), + (-1, {_sV: _SUCCESS}), + (-1, {_sV: _HEALTHY}), + ), +) + +CONTAINER_DEPENDENCY: StaticSchema = ( + 18, + n0, + _CDo, + 0, + (_cNo, _cond), + ((STRING, 1), (CONTAINER_CONDITION, 1)), +) + +CONTAINER_DEPENDENCIES: StaticSchema = ( + 16, + n0, + _CDon, + 0, + (_me,), + ((CONTAINER_DEPENDENCY, 0),), +) + +ENVIRONMENT_VARIABLES: StaticSchema = (16, n0, _EV, 4, (_me,), ((KEY_VALUE_PAIR, 0),)) + +ENVIRONMENT_FILE_TYPE: StaticSchema = (14, n0, _EFT, 0, (_S_,), ((-1, {_sV: _s_}),)) + +ENVIRONMENT_FILE: StaticSchema = ( + 18, + n0, + _EF, + 0, + (_va, _ty), + ((STRING, 1), (ENVIRONMENT_FILE_TYPE, 1)), +) + +ENVIRONMENT_FILES: StaticSchema = (16, n0, _EFn, 0, (_me,), ((ENVIRONMENT_FILE, 0),)) + +FIRELENS_CONFIGURATION_OPTIONS_MAP: StaticSchema = ( + 17, + n0, + _FCOM, + 0, + (_ke, _va), + ((STRING, 0), (STRING, 0)), +) + +FIRELENS_CONFIGURATION_TYPE: StaticSchema = ( + 14, + n0, + _FCT, + 0, + (_FLUENTD, _FLUENTBIT), + ((-1, {_sV: _fl}), (-1, {_sV: _flu})), +) + +FIRELENS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _FC, + 0, + (_ty, _o), + ((FIRELENS_CONFIGURATION_TYPE, 1), (FIRELENS_CONFIGURATION_OPTIONS_MAP, 0)), +) + +HEALTH_CHECK: StaticSchema = ( + 18, + n0, + _HC, + 0, + (_com, _inter, _ti, _ret, _sP), + ( + (STRING_LIST, 1), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + ), +) + +KERNEL_CAPABILITIES: StaticSchema = ( + 18, + n0, + _KC, + 0, + (_ad, _dr), + ((STRING_LIST, 0), (STRING_LIST, 0)), +) + +DEVICE_CGROUP_PERMISSION: StaticSchema = ( + 14, + n0, + _DCPev, + 0, + (_READ, _WRITE, _MKNOD), + ((-1, {_sV: _rea}), (-1, {_sV: _wr}), (-1, {_sV: _mk})), +) + +DEVICE_CGROUP_PERMISSIONS: StaticSchema = ( + 16, + n0, + _DCPevi, + 0, + (_me,), + ((DEVICE_CGROUP_PERMISSION, 0),), +) + +DEVICE: StaticSchema = ( + 18, + n0, + _De, + 0, + (_hPo, _cPon, _pe), + ((STRING, 1), (STRING, 0), (DEVICE_CGROUP_PERMISSIONS, 0)), +) + +DEVICES_LIST: StaticSchema = (16, n0, _DL, 0, (_me,), ((DEVICE, 0),)) + +TMPFS: StaticSchema = ( + 18, + n0, + _Tm, + 0, + (_cPon, _si, _mO), + ((STRING, 1), (INTEGER, {_smi: 0, _sm: None}), (STRING_LIST, 0)), +) + +TMPFS_LIST: StaticSchema = (16, n0, _TL, 0, (_me,), ((TMPFS, 0),)) + +DAEMON_LINUX_PARAMETERS: StaticSchema = ( + 18, + n0, + _DLP, + 0, + (_ca, _dev, _iPE, _tm), + ((KERNEL_CAPABILITIES, 0), (DEVICES_LIST, 0), (BOXED_BOOLEAN, 0), (TMPFS_LIST, 0)), +) + +LOG_DRIVER: StaticSchema = ( + 14, + n0, + _LDo, + 0, + (_JF, _SYSLOG, _JOURNALD, _GELF, _FLUENTD, _AWSLOGS, _SPLUNK, _AWSFIRELENS), + ( + (-1, {_sV: _jf}), + (-1, {_sV: _sy}), + (-1, {_sV: _j}), + (-1, {_sV: _ge}), + (-1, {_sV: _fl}), + (-1, {_sV: _aw}), + (-1, {_sV: _sp}), + (-1, {_sV: _awsf}), + ), +) + +LOG_CONFIGURATION_OPTIONS_MAP: StaticSchema = ( + 17, + n0, + _LCOM, + 0, + (_ke, _va), + ((STRING, 0), (STRING, 0)), +) + +SECRET: StaticSchema = (18, n0, _Sec, 0, (_na, _vF), ((STRING, 1), (STRING, 1))) + +SECRET_LIST: StaticSchema = (16, n0, _SLe, 0, (_me,), ((SECRET, 0),)) + +LOG_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LCo, + 0, + (_lD, _o, _sO), + ((LOG_DRIVER, 1), (LOG_CONFIGURATION_OPTIONS_MAP, 0), (SECRET_LIST, 0)), +) + +MOUNT_POINT: StaticSchema = ( + 18, + n0, + _MP, + 0, + (_sVo, _cPon, _rO), + ((STRING, 0), (STRING, 0), (BOXED_BOOLEAN, 0)), +) + +MOUNT_POINT_LIST: StaticSchema = (16, n0, _MPL, 0, (_me,), ((MOUNT_POINT, 0),)) + +REPOSITORY_CREDENTIALS: StaticSchema = (18, n0, _RC, 4, (_cPr,), ((STRING, 1),)) + +INTEGER_LIST: StaticSchema = (16, n0, _IL, 0, (_me,), ((BOXED_INTEGER, 0),)) + +CONTAINER_RESTART_POLICY: StaticSchema = ( + 18, + n0, + _CRPo, + 0, + (_ena, _iEC, _rAP), + ((BOXED_BOOLEAN, 1), (INTEGER_LIST, 0), (BOXED_INTEGER, 0)), +) + +SYSTEM_CONTROL: StaticSchema = (18, n0, _SC, 0, (_nam, _va), ((STRING, 0), (STRING, 0))) + +SYSTEM_CONTROLS: StaticSchema = (16, n0, _SCy, 0, (_me,), ((SYSTEM_CONTROL, 0),)) + +ULIMIT_NAME: StaticSchema = ( + 14, + n0, + _UN, + 0, + ( + _CORE, + _CPU, + _DATA, + _FSIZE, + _LOCKS, + _MEMLOCK, + _MSGQUEUE, + _NICE, + _NOFILE, + _NPROC, + _RSS, + _RTPRIO, + _RTTIME, + _SIGPENDING, + _STACK, + ), + ( + (-1, {_sV: _cor}), + (-1, {_sV: _cp}), + (-1, {_sV: _dat}), + (-1, {_sV: _fs}), + (-1, {_sV: _loc}), + (-1, {_sV: _mem}), + (-1, {_sV: _ms}), + (-1, {_sV: _ni}), + (-1, {_sV: _no}), + (-1, {_sV: _np}), + (-1, {_sV: _rs}), + (-1, {_sV: _rt}), + (-1, {_sV: _rtt}), + (-1, {_sV: _sig}), + (-1, {_sV: _stac}), + ), +) + +ULIMIT: StaticSchema = ( + 18, + n0, + _U, + 0, + (_na, _sL, _hL), + ( + (ULIMIT_NAME, 1), + (INTEGER, {_smi: 0, _sm: None}), + (INTEGER, {_smi: 0, _sm: None}), + ), +) + +ULIMIT_LIST: StaticSchema = (16, n0, _UL, 0, (_me,), ((ULIMIT, 0),)) + +DAEMON_CONTAINER_DEFINITION: StaticSchema = ( + 18, + n0, + _DCD, + 0, + ( + _na, + _im, + _memo, + _mRe, + _rCe, + _hC, + _cp, + _es, + _eP, + _com, + _wD, + _eF, + _env, + _sec, + _rRF, + _mP, + _lC, + _fCi, + _pri, + _us, + _ul, + _lP, + _dO, + _sT, + _sTt, + _sCy, + _inte, + _pTs, + _rPe, + ), + ( + (STRING, 0), + (STRING, 1), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (REPOSITORY_CREDENTIALS, 0), + (HEALTH_CHECK, 0), + (INTEGER, {_smi: 0}), + (BOXED_BOOLEAN, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + (ENVIRONMENT_FILES, 0), + (ENVIRONMENT_VARIABLES, 0), + (SECRET_LIST, 0), + (BOXED_BOOLEAN, 0), + (MOUNT_POINT_LIST, 0), + (LOG_CONFIGURATION, 0), + (FIRELENS_CONFIGURATION, 0), + (BOXED_BOOLEAN, 0), + (STRING, 0), + (ULIMIT_LIST, 0), + (DAEMON_LINUX_PARAMETERS, 0), + (CONTAINER_DEPENDENCIES, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (SYSTEM_CONTROLS, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (CONTAINER_RESTART_POLICY, 0), + ), +) + +DAEMON_CONTAINER_DEFINITION_LIST: StaticSchema = ( + 16, + n0, + _DCDL, + 0, + (_me,), + ((DAEMON_CONTAINER_DEFINITION, 0),), +) + +DAEMON_IPC_MODE: StaticSchema = ( + 14, + n0, + _DIM, + 0, + (_NONE, _SHARED), + ((-1, {_sV: _non}), (-1, {_sV: _sh})), +) + +DAEMON_PID_MODE: StaticSchema = ( + 14, + n0, + _DPM, + 0, + (_NONE, _SHARED), + ((-1, {_sV: _non}), (-1, {_sV: _sh})), +) + +DAEMON_TASK_DEFINITION_STATUS: StaticSchema = ( + 14, + n0, + _DTDS, + 0, + (_ACTIVE, _DIP, _DELETED), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DIP}), (-1, {_sV: _DELETED})), +) + +HOST_VOLUME_PROPERTIES: StaticSchema = (18, n0, _HVP, 0, (_sPo,), ((STRING, 0),)) + +LOG_DRIVER_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LDVC, + 0, + (_dri,), + ((LOG_DRIVER, 1),), +) + +DAEMON_VOLUME: StaticSchema = ( + 18, + n0, + _DV, + 0, + (_na, _ho, _lDVC), + ((STRING, 0), (HOST_VOLUME_PROPERTIES, 0), (LOG_DRIVER_VOLUME_CONFIGURATION, 0)), +) + +DAEMON_VOLUME_LIST: StaticSchema = (16, n0, _DVL, 0, (_me,), ((DAEMON_VOLUME, 0),)) + +DAEMON_TASK_DEFINITION: StaticSchema = ( + 18, + n0, + _DTD, + 0, + ( + _dTDA, + _fam, + _rev, + _tRA, + _eRA, + _cD, + _vo, + _cp, + _memo, + _st, + _rAe, + _dRAe, + _rB, + _pM, + _iM, + ), + ( + (STRING, 0), + (STRING, 0), + (INTEGER, {_smi: 0}), + (STRING, 0), + (STRING, 0), + (DAEMON_CONTAINER_DEFINITION_LIST, 0), + (DAEMON_VOLUME_LIST, 0), + (STRING, 0), + (STRING, 0), + (DAEMON_TASK_DEFINITION_STATUS, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (STRING, 0), + (DAEMON_PID_MODE, 0), + (DAEMON_IPC_MODE, 0), + ), +) + +DESCRIBE_DAEMON_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _DDTDOe, + {_sSI: _cDDTDRoma, _smith: None}, + (_dTD,), + ((DAEMON_TASK_DEFINITION, 0),), +) + +DESCRIBE_DAEMON_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _DDTDe, + 0, + DESCRIBE_DAEMON_TASK_DEFINITION_INPUT, + DESCRIBE_DAEMON_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DAEMON_TASK_DEFINITION_REVISION_FILTER: StaticSchema = ( + 14, + n0, + _DTDRF, + 0, + (_LR,), + ((-1, {_sV: _LR}),), +) + +SORT_ORDER: StaticSchema = ( + 14, + n0, + _SO, + 0, + (_ASC_, _DESC), + ((-1, {_sV: _ASC_}), (-1, {_sV: _DESC})), +) + +DAEMON_TASK_DEFINITION_STATUS_FILTER: StaticSchema = ( + 14, + n0, + _DTDSF, + 0, + (_ACTIVE, _DIP, _ALL), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DIP}), (-1, {_sV: _ALL})), +) + +LIST_DAEMON_TASK_DEFINITIONS_INPUT: StaticSchema = ( + 18, + n0, + _LDTDI, + {_sSI: _cLDTDR, _smit: None}, + (_fP, _fam, _rev, _st, _so, _nT, _mR), + ( + (STRING, 0), + (STRING, 0), + (DAEMON_TASK_DEFINITION_REVISION_FILTER, 0), + (DAEMON_TASK_DEFINITION_STATUS_FILTER, 0), + (SORT_ORDER, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + ), +) + +DAEMON_TASK_DEFINITION_SUMMARY: StaticSchema = ( + 18, + n0, + _DTDSa, + 0, + (_ar, _rAe, _rB, _dRAe, _st), + ( + (STRING, 0), + (TIMESTAMP, 0), + (STRING, 0), + (TIMESTAMP, 0), + (DAEMON_TASK_DEFINITION_STATUS, 0), + ), +) + +DAEMON_TASK_DEFINITION_SUMMARIES: StaticSchema = ( + 16, + n0, + _DTDSae, + 0, + (_me,), + ((DAEMON_TASK_DEFINITION_SUMMARY, 0),), +) + +LIST_DAEMON_TASK_DEFINITIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDTDO, + {_sSI: _cLDTDRo, _smith: None}, + (_dTDa, _nT), + ((DAEMON_TASK_DEFINITION_SUMMARIES, 0), (STRING, 0)), +) + +LIST_DAEMON_TASK_DEFINITIONS: StaticOperationSchema = ( + 23, + n0, + _LDTD, + 0, + LIST_DAEMON_TASK_DEFINITIONS_INPUT, + LIST_DAEMON_TASK_DEFINITIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +REGISTER_DAEMON_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _RDTDI, + {_sSI: _cRDTDR, _smit: None}, + (_fam, _tRA, _eRA, _cD, _cp, _memo, _vo, _ta, _pM, _iM), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (DAEMON_CONTAINER_DEFINITION_LIST, 1), + (STRING, 0), + (STRING, 0), + (DAEMON_VOLUME_LIST, 0), + (TAGS, 0), + (DAEMON_PID_MODE, 0), + (DAEMON_IPC_MODE, 0), + ), +) + +REGISTER_DAEMON_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _RDTDO, + {_sSI: _cRDTDRo, _smith: None}, + (_dTDA,), + ((STRING, 0),), +) + +REGISTER_DAEMON_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _RDTD, + 0, + REGISTER_DAEMON_TASK_DEFINITION_INPUT, + REGISTER_DAEMON_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +SETTING_NAME: StaticSchema = ( + 14, + n0, + _SN, + 0, + (_SLAF, _TLAF, _CILAF, _AT_, _CI, _FFM, _TRA, _FTRWP, _GDA, _DLDM, _FEW), + ( + (-1, {_sV: _sLAF}), + (-1, {_sV: _tLAF}), + (-1, {_sV: _cILAF}), + (-1, {_sV: _aTw}), + (-1, {_sV: _cI}), + (-1, {_sV: _fFIPSM}), + (-1, {_sV: _tRAa}), + (-1, {_sV: _fTRWP}), + (-1, {_sV: _gDA}), + (-1, {_sV: _dLDM}), + (-1, {_sV: _fEW}), + ), +) + +DELETE_ACCOUNT_SETTING_INPUT: StaticSchema = ( + 18, + n0, + _DASI, + {_sSI: _cDASR, _smit: None}, + (_na, _pA), + ((SETTING_NAME, 1), (STRING, 0)), +) + +SETTING_TYPE: StaticSchema = ( + 14, + n0, + _ST, + 0, + (_USER, _AM_), + ((-1, {_sV: _us}), (-1, {_sV: _am})), +) + +SETTING: StaticSchema = ( + 18, + n0, + _Set, + 0, + (_na, _va, _pA, _ty), + ((SETTING_NAME, 0), (STRING, 0), (STRING, 0), (SETTING_TYPE, 0)), +) + +DELETE_ACCOUNT_SETTING_OUTPUT: StaticSchema = ( + 18, + n0, + _DASO, + {_sSI: _cDASRo, _smith: None}, + (_sett,), + ((SETTING, 0),), +) + +DELETE_ACCOUNT_SETTING: StaticOperationSchema = ( + 23, + n0, + _DAS, + 0, + DELETE_ACCOUNT_SETTING_INPUT, + DELETE_ACCOUNT_SETTING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DEREGISTER_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _DTDI, + {_sSI: _cDTDR, _smit: None}, + (_tD,), + ((STRING, 1),), +) + +COMPATIBILITY: StaticSchema = ( + 14, + n0, + _Co, + 0, + (_EC_, _FARGATE, _EXTERNAL, _MI), + ( + (-1, {_sV: _EC_}), + (-1, {_sV: _FARGATE}), + (-1, {_sV: _EXTERNAL}), + (-1, {_sV: _MI}), + ), +) + +COMPATIBILITY_LIST: StaticSchema = (16, n0, _CL, 0, (_me,), ((COMPATIBILITY, 0),)) + +DOCKER_LABELS_MAP: StaticSchema = ( + 17, + n0, + _DLM, + 0, + (_ke, _va), + ((STRING, 0), (STRING, 0)), +) + +HOST_ENTRY: StaticSchema = (18, n0, _HE, 0, (_hos, _iA), ((STRING, 1), (STRING, 1))) + +HOST_ENTRY_LIST: StaticSchema = (16, n0, _HEL, 0, (_me,), ((HOST_ENTRY, 0),)) + +LINUX_PARAMETERS: StaticSchema = ( + 18, + n0, + _LP, + 0, + (_ca, _dev, _iPE, _sMS, _tm, _mSa, _sw), + ( + (KERNEL_CAPABILITIES, 0), + (DEVICES_LIST, 0), + (BOXED_BOOLEAN, 0), + (BOXED_INTEGER, 0), + (TMPFS_LIST, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + ), +) + +APPLICATION_PROTOCOL: StaticSchema = ( + 14, + n0, + _AP, + 0, + (_HTTP, _HTTP_, _GRPC), + ((-1, {_sV: _ht}), (-1, {_sV: _htt}), (-1, {_sV: _gr})), +) + +PORT_MAPPING: StaticSchema = ( + 18, + n0, + _PM, + 0, + (_cPo, _hP, _pr, _na, _aP, _cPR), + ( + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (TRANSPORT_PROTOCOL, 0), + (STRING, 0), + (APPLICATION_PROTOCOL, 0), + (STRING, 0), + ), +) + +PORT_MAPPING_LIST: StaticSchema = (16, n0, _PML, 0, (_me,), ((PORT_MAPPING, 0),)) + +NVIDIA_MPS_ALLOCATION: StaticSchema = ( + 18, + n0, + _NMA, + 0, + (_memo, _mCP), + ((BOXED_INTEGER, 1), (BOXED_INTEGER, 0)), +) + +SHARING_STRATEGY: StaticSchema = ( + 19, + n0, + _SSh, + 0, + (_nM,), + ((NVIDIA_MPS_ALLOCATION, 0),), +) + +RESOURCE_TYPE: StaticSchema = ( + 14, + n0, + _RT, + 0, + (_GPU, _IA, _ND), + ((-1, {_sV: _GPU}), (-1, {_sV: _IAn}), (-1, {_sV: _NDe})), +) + +RESOURCE_REQUIREMENT: StaticSchema = ( + 18, + n0, + _RR, + 0, + (_va, _ty, _sS), + ((STRING, {_smi: _v__}), (RESOURCE_TYPE, 1), (SHARING_STRATEGY, 0)), +) + +RESOURCE_REQUIREMENTS: StaticSchema = ( + 16, + n0, + _RRe, + 0, + (_me,), + ((RESOURCE_REQUIREMENT, 0),), +) + +VERSION_CONSISTENCY: StaticSchema = ( + 14, + n0, + _VC, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ena}), (-1, {_sV: _di})), +) + +VOLUME_FROM: StaticSchema = ( + 18, + n0, + _VF, + 0, + (_sCo, _rO), + ((STRING, 0), (BOXED_BOOLEAN, 0)), +) + +VOLUME_FROM_LIST: StaticSchema = (16, n0, _VFL, 0, (_me,), ((VOLUME_FROM, 0),)) + +CONTAINER_DEFINITION: StaticSchema = ( + 18, + n0, + _CDont, + 0, + ( + _na, + _im, + _rCe, + _cp, + _memo, + _mRe, + _li, + _pMo, + _es, + _rPe, + _eP, + _com, + _env, + _eF, + _mP, + _vFo, + _lP, + _sec, + _dO, + _sT, + _sTt, + _vC, + _hos, + _us, + _wD, + _dNi, + _pri, + _rRF, + _dSn, + _dSD, + _eH, + _dSO, + _inte, + _pTs, + _dL, + _ul, + _lC, + _hC, + _sCy, + _rRes, + _fCi, + _cS, + ), + ( + (STRING, 0), + (STRING, 0), + (REPOSITORY_CREDENTIALS, 0), + (INTEGER, {_smi: 0}), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (STRING_LIST, 0), + (PORT_MAPPING_LIST, 0), + (BOXED_BOOLEAN, 0), + (CONTAINER_RESTART_POLICY, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (ENVIRONMENT_VARIABLES, 0), + (ENVIRONMENT_FILES, 0), + (MOUNT_POINT_LIST, 0), + (VOLUME_FROM_LIST, 0), + (LINUX_PARAMETERS, 0), + (SECRET_LIST, 0), + (CONTAINER_DEPENDENCIES, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (VERSION_CONSISTENCY, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (HOST_ENTRY_LIST, 0), + (STRING_LIST, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (DOCKER_LABELS_MAP, 0), + (ULIMIT_LIST, 0), + (LOG_CONFIGURATION, 0), + (HEALTH_CHECK, 0), + (SYSTEM_CONTROLS, 0), + (RESOURCE_REQUIREMENTS, 0), + (FIRELENS_CONFIGURATION, 0), + (STRING_LIST, 0), + ), +) + +CONTAINER_DEFINITIONS: StaticSchema = ( + 16, + n0, + _CDonta, + 0, + (_me,), + ((CONTAINER_DEFINITION, 0),), +) + +EPHEMERAL_STORAGE: StaticSchema = ( + 18, + n0, + _ES, + 0, + (_sIGB,), + ((INTEGER, {_smi: 0, _sm: None}),), +) + +INFERENCE_ACCELERATOR: StaticSchema = ( + 18, + n0, + _IAn, + 0, + (_dNe, _dT), + ((STRING, 1), (STRING, 1)), +) + +INFERENCE_ACCELERATORS: StaticSchema = ( + 16, + n0, + _IAnf, + 0, + (_me,), + ((INFERENCE_ACCELERATOR, 0),), +) + +IPC_MODE: StaticSchema = ( + 14, + n0, + _IM, + 0, + (_HOST, _TASK, _NONE), + ((-1, {_sV: _ho}), (-1, {_sV: _tas}), (-1, {_sV: _non})), +) + +NETWORK_MODE: StaticSchema = ( + 14, + n0, + _NMe, + 0, + (_BRIDGE, _HOST, _AWSVPC, _NONE), + ((-1, {_sV: _br}), (-1, {_sV: _ho}), (-1, {_sV: _awsv}), (-1, {_sV: _non})), +) + +PID_MODE: StaticSchema = ( + 14, + n0, + _PMi, + 0, + (_HOST, _TASK), + ((-1, {_sV: _ho}), (-1, {_sV: _tas})), +) + +TASK_DEFINITION_PLACEMENT_CONSTRAINT_TYPE: StaticSchema = ( + 14, + n0, + _TDPCT, + 0, + (_MO,), + ((-1, {_sV: _mOe}),), +) + +TASK_DEFINITION_PLACEMENT_CONSTRAINT: StaticSchema = ( + 18, + n0, + _TDPC, + 0, + (_ty, _ex), + ((TASK_DEFINITION_PLACEMENT_CONSTRAINT_TYPE, 0), (STRING, 0)), +) + +TASK_DEFINITION_PLACEMENT_CONSTRAINTS: StaticSchema = ( + 16, + n0, + _TDPCa, + 0, + (_me,), + ((TASK_DEFINITION_PLACEMENT_CONSTRAINT, 0),), +) + +PROXY_CONFIGURATION_PROPERTIES: StaticSchema = ( + 16, + n0, + _PCP, + 0, + (_me,), + ((KEY_VALUE_PAIR, 0),), +) + +PROXY_CONFIGURATION_TYPE: StaticSchema = ( + 14, + n0, + _PCT, + 0, + (_APPMESH,), + ((-1, {_sV: _APPMESH}),), +) + +PROXY_CONFIGURATION: StaticSchema = ( + 18, + n0, + _PC, + 0, + (_ty, _cNo, _pro), + ((PROXY_CONFIGURATION_TYPE, 0), (STRING, 1), (PROXY_CONFIGURATION_PROPERTIES, 0)), +) + +REQUIRES_ATTRIBUTES: StaticSchema = (16, n0, _RA, 0, (_me,), ((ATTRIBUTE, 0),)) + +CPU_ARCHITECTURE: StaticSchema = ( + 14, + n0, + _CPUA, + 0, + (_X, _ARM), + ((-1, {_sV: _X}), (-1, {_sV: _ARM})), +) + +OS_FAMILY: StaticSchema = ( + 14, + n0, + _OSF, + 0, + (_WSF, _WSC, _WSF_, _WSC_, _WSC__, _WSF__, _WSC___, _WSF___, _WSC____, _LINUX), + ( + (-1, {_sV: _WSF}), + (-1, {_sV: _WSC}), + (-1, {_sV: _WSF_}), + (-1, {_sV: _WSC_}), + (-1, {_sV: _WSC__}), + (-1, {_sV: _WSF__}), + (-1, {_sV: _WSC___}), + (-1, {_sV: _WSF___}), + (-1, {_sV: _WSC____}), + (-1, {_sV: _LINUX}), + ), +) + +RUNTIME_PLATFORM: StaticSchema = ( + 18, + n0, + _RP, + 0, + (_cAp, _oSF), + ((CPU_ARCHITECTURE, 0), (OS_FAMILY, 0)), +) + +TASK_DEFINITION_STATUS: StaticSchema = ( + 14, + n0, + _TDS, + 0, + (_ACTIVE, _INACTIVE, _DIP), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _INACTIVE}), (-1, {_sV: _DIP})), +) + +ISOLATION_MODE: StaticSchema = ( + 14, + n0, + _IMs, + 0, + (_SHARED, _IS, _CS_), + ((-1, {_sV: _SHARED}), (-1, {_sV: _IS}), (-1, {_sV: _CS_})), +) + +TRUSTED_EXECUTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TEC, + 0, + (_iMs, _aPt), + ((ISOLATION_MODE, 1), (STRING, 0)), +) + +STRING_MAP: StaticSchema = (17, n0, _SM, 0, (_ke, _va), ((STRING, 0), (STRING, 0))) + +SCOPE: StaticSchema = ( + 14, + n0, + _Sc, + 0, + (_TASK, _SHARED), + ((-1, {_sV: _tas}), (-1, {_sV: _sh})), +) + +DOCKER_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DVC, + 0, + (_sc, _au, _dri, _dOr, _la), + ((SCOPE, 0), (BOXED_BOOLEAN, 0), (STRING, 0), (STRING_MAP, 0), (STRING_MAP, 0)), +) + +EFS_AUTHORIZATION_CONFIG_IAM: StaticSchema = ( + 14, + n0, + _EFSACIAM, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +EFS_AUTHORIZATION_CONFIG: StaticSchema = ( + 18, + n0, + _EFSAC, + 0, + (_aPI, _ia), + ((STRING, 0), (EFS_AUTHORIZATION_CONFIG_IAM, 0)), +) + +EFS_TRANSIT_ENCRYPTION: StaticSchema = ( + 14, + n0, + _EFSTE, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +EFS_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EFSVC, + 0, + (_fSI, _rD, _tE, _tEP, _aCu), + ( + (STRING, 1), + (STRING, 0), + (EFS_TRANSIT_ENCRYPTION, 0), + (BOXED_INTEGER, 0), + (EFS_AUTHORIZATION_CONFIG, 0), + ), +) + +F_SX_WINDOWS_FILE_SERVER_AUTHORIZATION_CONFIG: StaticSchema = ( + 18, + n0, + _FSWFSAC, + 0, + (_cPr, _do), + ((STRING, 1), (STRING, 1)), +) + +F_SX_WINDOWS_FILE_SERVER_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _FSWFSVC, + 0, + (_fSI, _rD, _aCu), + ((STRING, 1), (STRING, 1), (F_SX_WINDOWS_FILE_SERVER_AUTHORIZATION_CONFIG, 1)), +) + +S3_FILES_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SFVC, + 0, + (_fSA, _rD, _tEP, _aPA), + ((STRING, 1), (STRING, 0), (BOXED_INTEGER, 0), (STRING, 0)), +) + +VOLUME: StaticSchema = ( + 18, + n0, + _Vo, + 0, + (_na, _ho, _dVC, _eVC, _sVC, _fWFSVC, _cAL), + ( + (STRING, 0), + (HOST_VOLUME_PROPERTIES, 0), + (DOCKER_VOLUME_CONFIGURATION, 0), + (EFS_VOLUME_CONFIGURATION, 0), + (S3_FILES_VOLUME_CONFIGURATION, 0), + (F_SX_WINDOWS_FILE_SERVER_VOLUME_CONFIGURATION, 0), + (BOXED_BOOLEAN, 0), + ), +) + +VOLUME_LIST: StaticSchema = (16, n0, _VL, 0, (_me,), ((VOLUME, 0),)) + +TASK_DEFINITION: StaticSchema = ( + 18, + n0, + _TD, + 0, + ( + _tDA, + _cD, + _fam, + _tRA, + _eRA, + _nMe, + _rev, + _vo, + _st, + _rAeq, + _pC, + _comp, + _rPu, + _rCeq, + _cp, + _memo, + _iAn, + _pM, + _iM, + _pCr, + _rAe, + _dAer, + _dRAe, + _rB, + _eS, + _eFI, + _tEC, + ), + ( + (STRING, 0), + (CONTAINER_DEFINITIONS, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (NETWORK_MODE, 0), + (INTEGER, {_smi: 0}), + (VOLUME_LIST, 0), + (TASK_DEFINITION_STATUS, 0), + (REQUIRES_ATTRIBUTES, 0), + (TASK_DEFINITION_PLACEMENT_CONSTRAINTS, 0), + (COMPATIBILITY_LIST, 0), + (RUNTIME_PLATFORM, 0), + (COMPATIBILITY_LIST, 0), + (STRING, 0), + (STRING, 0), + (INFERENCE_ACCELERATORS, 0), + (PID_MODE, 0), + (IPC_MODE, 0), + (PROXY_CONFIGURATION, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (STRING, 0), + (EPHEMERAL_STORAGE, 0), + (BOXED_BOOLEAN, 0), + (TRUSTED_EXECUTION_CONFIGURATION, 0), + ), +) + +DEREGISTER_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _DTDO, + {_sSI: _cDTDRo, _smith: None}, + (_tD,), + ((TASK_DEFINITION, 0),), +) + +DEREGISTER_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _DTDe, + 0, + DEREGISTER_TASK_DEFINITION_INPUT, + DEREGISTER_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +TASK_DEFINITION_FIELD: StaticSchema = (14, n0, _TDF, 0, (_TAGS,), ((-1, {_sV: _TAGS}),)) + +TASK_DEFINITION_FIELD_LIST: StaticSchema = ( + 16, + n0, + _TDFL, + 0, + (_me,), + ((TASK_DEFINITION_FIELD, 0),), +) + +DESCRIBE_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _DTDIe, + {_sSI: _cDTDRom, _smit: None}, + (_tD, _incl), + ((STRING, 1), (TASK_DEFINITION_FIELD_LIST, 0)), +) + +DESCRIBE_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _DTDOe, + {_sSI: _cDTDRoma, _smith: None}, + (_tD, _ta), + ((TASK_DEFINITION, 0), (TAGS, 0)), +) + +DESCRIBE_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _DTDes, + 0, + DESCRIBE_TASK_DEFINITION_INPUT, + DESCRIBE_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DISCOVER_POLL_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DPEI, + {_sSI: _cDPER, _smit: None}, + (_cIo, _cl), + ((STRING, 0), (STRING, 0)), +) + +DISCOVER_POLL_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DPEO, + {_sSI: _cDPERo, _smith: None}, + (_end, _tEe, _sCE), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +DISCOVER_POLL_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DPE, + 0, + DISCOVER_POLL_ENDPOINT_INPUT, + DISCOVER_POLL_ENDPOINT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +ASSOCIATE_GATEWAY_WITH_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _AGWCI, + {_sSI: _cAGWCR, _smit: None}, + (_ga, _cl), + ((STRING, 1), (STRING, 1)), +) + +GATEWAY_CLUSTER_ASSOCIATION_STATUS: StaticSchema = ( + 14, + n0, + _GCAS, + 0, + (_ACTIVE, _DISASSOCIATING, _INACTIVE), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DISASSOCIATING}), (-1, {_sV: _INACTIVE})), +) + +ASSOCIATE_GATEWAY_WITH_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _AGWCO, + {_sSI: _cAGWCRo, _smith: None}, + (_gA, _cA, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_CLUSTER_ASSOCIATION_STATUS, 0)), +) + +GATEWAY_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _GNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +ASSOCIATE_GATEWAY_WITH_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _AGWC, + 0, + ASSOCIATE_GATEWAY_WITH_CLUSTER_INPUT, + ASSOCIATE_GATEWAY_WITH_CLUSTER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +GATEWAY_ELB_ACCESS_LOG_S3_DESTINATION: StaticSchema = ( + 18, + n0, + _GEALSD, + 0, + (_bu, _pre), + ((STRING, 1), (STRING, 0)), +) + +GATEWAY_ELB_ACCESS_LOG_DESTINATION: StaticSchema = ( + 19, + n0, + _GEALD, + 0, + (_s_,), + ((GATEWAY_ELB_ACCESS_LOG_S3_DESTINATION, 0),), +) + +GATEWAY_ELB_ACCESS_LOG_CONFIGURATION: StaticSchema = ( + 18, + n0, + _GEALC, + 0, + (_des,), + ((GATEWAY_ELB_ACCESS_LOG_DESTINATION, 0),), +) + +GATEWAY_ALB_DESYNC_MITIGATION_MODE: StaticSchema = ( + 14, + n0, + _GADMM, + 0, + (_MONITOR, _DEFENSIVE, _STRICTEST), + ((-1, {_sV: _mon}), (-1, {_sV: _def}), (-1, {_sV: _str})), +) + +GATEWAY_ELB_IP_ADDRESS_TYPE: StaticSchema = ( + 14, + n0, + _GEIAT, + 0, + (_IPV, _DUALSTACK, _DWPI), + ((-1, {_sV: _ip}), (-1, {_sV: _du}), (-1, {_sV: _dwpi})), +) + +GATEWAY_ELB_NETWORK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _GENC, + 0, + (_iSG, _su, _iAT), + ((STRING, 0), (STRING_LIST, 0), (GATEWAY_ELB_IP_ADDRESS_TYPE, 0)), +) + +GATEWAY_ALB_PROTOCOL: StaticSchema = ( + 14, + n0, + _GAP, + 0, + (_HTTP, _HTTPS), + ((-1, {_sV: _HTTP}), (-1, {_sV: _HTTPS})), +) + +GATEWAY_ELB_SCHEME: StaticSchema = ( + 14, + n0, + _GES, + 0, + (_IF, _INTERNAL), + ((-1, {_sV: _if}), (-1, {_sV: _intern})), +) + +GATEWAY_TEST_TRAFFIC_HEADER: StaticSchema = ( + 18, + n0, + _GTTH, + 0, + (_na, _val), + ((STRING, 1), (STRING_LIST, 1)), +) + +GATEWAY_ALB_TEST_TRAFFIC_RULES: StaticSchema = ( + 18, + n0, + _GATTR, + 0, + (_he,), + ((GATEWAY_TEST_TRAFFIC_HEADER, 0),), +) + +HOST_SHARED_ALB_CONFIGURATION: StaticSchema = ( + 18, + n0, + _HSAC, + 0, + (_nC, _sch, _wACLA, _aL, _po, _pr, _mAC, _hD, _tTR), + ( + (GATEWAY_ELB_NETWORK_CONFIGURATION, 0), + (GATEWAY_ELB_SCHEME, 0), + (STRING, 0), + (GATEWAY_ELB_ACCESS_LOG_CONFIGURATION, 0), + (BOXED_INTEGER, 0), + (GATEWAY_ALB_PROTOCOL, 0), + (BOXED_INTEGER, 0), + (GATEWAY_ALB_DESYNC_MITIGATION_MODE, 0), + (GATEWAY_ALB_TEST_TRAFFIC_RULES, 0), + ), +) + +GATEWAY_CONFIGURATION: StaticSchema = ( + 19, + n0, + _GC, + 0, + (_hSA,), + ((HOST_SHARED_ALB_CONFIGURATION, 0),), +) + +PROPAGATE_GATEWAY_TAGS: StaticSchema = ( + 14, + n0, + _PGT, + 0, + (_NONE, _GATEWAY), + ((-1, {_sV: _NONE}), (-1, {_sV: _GATEWAY})), +) + +CREATE_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _CGI, + {_sSI: _cCGR, _smit: None}, + (_na, _iRA, _cT, _dPe, _co, _ta, _pT), + ( + (STRING, 1), + (STRING, 1), + (STRING, 2), + (BOXED_BOOLEAN, 0), + (GATEWAY_CONFIGURATION, 1), + (TAGS, 0), + (PROPAGATE_GATEWAY_TAGS, 0), + ), +) + +GATEWAY_STATUS: StaticSchema = ( + 14, + n0, + _GS, + 0, + (_ACTIVE, _UIP, _UC, _UF, _DELETED), + ( + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _UIP}), + (-1, {_sV: _UC}), + (-1, {_sV: _UF}), + (-1, {_sV: _DELETED}), + ), +) + +CREATE_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _CGO, + {_sSI: _cCGRo, _smith: None}, + (_gA, _na, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_STATUS, 0)), +) + +CREATE_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _CG, + 0, + CREATE_GATEWAY_INPUT, + CREATE_GATEWAY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DELETE_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DGI, + {_sSI: _cDGR, _smit: None}, + (_ga,), + ((STRING, 1),), +) + +DELETE_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DGO, + {_sSI: _cDGRo, _smith: None}, + (_gA, _na, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_STATUS, 0)), +) + +DELETE_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DG, + 0, + DELETE_GATEWAY_INPUT, + DELETE_GATEWAY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _DGIe, + {_sSI: _cDGRom, _smit: None}, + (_ga,), + ((STRING, 1),), +) + +DESCRIBE_GATEWAY_ALB_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DGAC, + 0, + (_nC, _sch, _aL, _wACLA, _po, _pr, _mAC, _cAC, _hD, _tTR), + ( + (GATEWAY_ELB_NETWORK_CONFIGURATION, 0), + (GATEWAY_ELB_SCHEME, 0), + (GATEWAY_ELB_ACCESS_LOG_CONFIGURATION, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (GATEWAY_ALB_PROTOCOL, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (GATEWAY_ALB_DESYNC_MITIGATION_MODE, 0), + (GATEWAY_ALB_TEST_TRAFFIC_RULES, 0), + ), +) + +DESCRIBE_GATEWAY_CONFIGURATION: StaticSchema = ( + 19, + n0, + _DGC, + 0, + (_hSA,), + ((DESCRIBE_GATEWAY_ALB_CONFIGURATION, 0),), +) + +GATEWAY_OPERATION_ERROR: StaticSchema = ( + 18, + n0, + _GOE, + 0, + (_op, _cod, _mes), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +GATEWAY_OPERATION_ERROR_LIST: StaticSchema = ( + 16, + n0, + _GOEL, + 0, + (_me,), + ((GATEWAY_OPERATION_ERROR, 0),), +) + +GATEWAY_RESOURCE_FAILURE: StaticSchema = ( + 18, + n0, + _GRF, + 0, + (_ar, _er), + ((STRING, 0), (GATEWAY_OPERATION_ERROR_LIST, 0)), +) + +GATEWAY_RESOURCE_FAILURE_LIST: StaticSchema = ( + 16, + n0, + _GRFL, + 0, + (_me,), + ((GATEWAY_RESOURCE_FAILURE, 0),), +) + +GATEWAY: StaticSchema = ( + 18, + n0, + _G, + 0, + (_gA, _na, _st, _sR, _fa, _iRA, _dPe, _co, _aTc, _pT, _ta, _cAr, _uA), + ( + (STRING, 0), + (STRING, 0), + (GATEWAY_STATUS, 0), + (STRING, 0), + (GATEWAY_RESOURCE_FAILURE_LIST, 0), + (STRING, 0), + (BOXED_BOOLEAN, 0), + (DESCRIBE_GATEWAY_CONFIGURATION, 0), + (ACCESS_TYPE, 0), + (PROPAGATE_GATEWAY_TAGS, 0), + (TAGS, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +DESCRIBE_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _DGOe, + {_sSI: _cDGRoma, _smith: None}, + (_ga,), + ((GATEWAY, 0),), +) + +DESCRIBE_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _DGe, + 0, + DESCRIBE_GATEWAY_INPUT, + DESCRIBE_GATEWAY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_GATEWAY_RESOURCES_INPUT: StaticSchema = ( + 18, + n0, + _DGRI, + {_sSI: _cDGRR, _smit: None}, + (_ga, _mR, _nT), + ((STRING, 1), (BOXED_INTEGER, 0), (STRING, 0)), +) + +ELB_GATEWAY_RESOURCES: StaticSchema = ( + 18, + n0, + _EGR, + 0, + (_lBA, _lA, _sGe, _gRA), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING_LIST, 0)), +) + +ELB_GATEWAY_RESOURCES_LIST: StaticSchema = ( + 16, + n0, + _EGRL, + 0, + (_me,), + ((ELB_GATEWAY_RESOURCES, 0),), +) + +GATEWAY_INFRASTRUCTURE_RESOURCES: StaticSchema = ( + 19, + n0, + _GIR, + 0, + (_hSA,), + ((ELB_GATEWAY_RESOURCES_LIST, 0),), +) + +GATEWAY_RESOURCES: StaticSchema = ( + 18, + n0, + _GR, + 0, + (_gA, _res), + ((STRING, 0), (GATEWAY_INFRASTRUCTURE_RESOURCES, 0)), +) + +DESCRIBE_GATEWAY_RESOURCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DGRO, + {_sSI: _cDGRRo, _smith: None}, + (_gR, _nT), + ((GATEWAY_RESOURCES, 0), (STRING, 0)), +) + +DESCRIBE_GATEWAY_RESOURCES: StaticOperationSchema = ( + 23, + n0, + _DGR, + 0, + DESCRIBE_GATEWAY_RESOURCES_INPUT, + DESCRIBE_GATEWAY_RESOURCES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DISASSOCIATE_GATEWAY_FROM_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _DGFCI, + {_sSI: _cDGFCR, _smit: None}, + (_ga, _cl), + ((STRING, 1), (STRING, 1)), +) + +DISASSOCIATE_GATEWAY_FROM_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _DGFCO, + {_sSI: _cDGFCRo, _smith: None}, + (_gA, _cA, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_CLUSTER_ASSOCIATION_STATUS, 0)), +) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DISASSOCIATE_GATEWAY_FROM_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _DGFC, + 0, + DISASSOCIATE_GATEWAY_FROM_CLUSTER_INPUT, + DISASSOCIATE_GATEWAY_FROM_CLUSTER_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +GATEWAY_CLUSTER_ASSOCIATION_STATUS_LIST: StaticSchema = ( + 16, + n0, + _GCASL, + 0, + (_me,), + ((GATEWAY_CLUSTER_ASSOCIATION_STATUS, 0),), +) + +LIST_GATEWAY_CLUSTER_ASSOCIATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LGCAI, + {_sSI: _cLGCAR, _smit: None}, + (_ga, _cl, _st, _mR, _nT), + ( + (STRING, 0), + (STRING, 0), + (GATEWAY_CLUSTER_ASSOCIATION_STATUS_LIST, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + ), +) + +GATEWAY_CLUSTER_ASSOCIATION_SUMMARY: StaticSchema = ( + 18, + n0, + _GCASa, + 0, + (_gA, _cA, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_CLUSTER_ASSOCIATION_STATUS, 0)), +) + +GATEWAY_CLUSTER_ASSOCIATION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _GCASLa, + 0, + (_me,), + ((GATEWAY_CLUSTER_ASSOCIATION_SUMMARY, 0),), +) + +LIST_GATEWAY_CLUSTER_ASSOCIATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LGCAO, + {_sSI: _cLGCARo, _smith: None}, + (_gCA, _nT), + ((GATEWAY_CLUSTER_ASSOCIATION_SUMMARY_LIST, 0), (STRING, 0)), +) + +LIST_GATEWAY_CLUSTER_ASSOCIATIONS: StaticOperationSchema = ( + 23, + n0, + _LGCA, + 0, + LIST_GATEWAY_CLUSTER_ASSOCIATIONS_INPUT, + LIST_GATEWAY_CLUSTER_ASSOCIATIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +GATEWAY_STATUS_LIST: StaticSchema = (16, n0, _GSL, 0, (_me,), ((GATEWAY_STATUS, 0),)) + +LIST_GATEWAYS_INPUT: StaticSchema = ( + 18, + n0, + _LGI, + {_sSI: _cLGR, _smit: None}, + (_name, _st, _mR, _nT), + ((STRING_LIST, 0), (GATEWAY_STATUS_LIST, 0), (BOXED_INTEGER, 0), (STRING, 0)), +) + +GATEWAY_SUMMARY: StaticSchema = ( + 18, + n0, + _GSa, + 0, + (_gA, _na, _st, _cAr), + ((STRING, 0), (STRING, 0), (GATEWAY_STATUS, 0), (TIMESTAMP, 0)), +) + +GATEWAY_SUMMARY_LIST: StaticSchema = (16, n0, _GSLa, 0, (_me,), ((GATEWAY_SUMMARY, 0),)) + +LIST_GATEWAYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LGO, + {_sSI: _cLGRo, _smith: None}, + (_gat, _nT), + ((GATEWAY_SUMMARY_LIST, 0), (STRING, 0)), +) + +LIST_GATEWAYS: StaticOperationSchema = ( + 23, + n0, + _LG, + 0, + LIST_GATEWAYS_INPUT, + LIST_GATEWAYS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +UPDATE_GATEWAY_NETWORK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _UGNC, + 0, + (_iSG,), + ((STRING, 0),), +) + +UPDATE_GATEWAY_ALB_CONFIGURATION: StaticSchema = ( + 18, + n0, + _UGAC, + 0, + (_nC, _mAC, _wACLA, _aL, _hD, _tTR), + ( + (UPDATE_GATEWAY_NETWORK_CONFIGURATION, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (GATEWAY_ELB_ACCESS_LOG_CONFIGURATION, 0), + (GATEWAY_ALB_DESYNC_MITIGATION_MODE, 0), + (GATEWAY_ALB_TEST_TRAFFIC_RULES, 0), + ), +) + +UPDATE_GATEWAY_CONFIGURATION: StaticSchema = ( + 19, + n0, + _UGC, + 0, + (_hSA,), + ((UPDATE_GATEWAY_ALB_CONFIGURATION, 0),), +) + +UPDATE_GATEWAY_INPUT: StaticSchema = ( + 18, + n0, + _UGI, + {_sSI: _cUGR, _smit: None}, + (_ga, _iRA, _dPe, _co, _pT), + ( + (STRING, 1), + (STRING, 0), + (BOXED_BOOLEAN, 0), + (UPDATE_GATEWAY_CONFIGURATION, 0), + (PROPAGATE_GATEWAY_TAGS, 0), + ), +) + +UPDATE_GATEWAY_OUTPUT: StaticSchema = ( + 18, + n0, + _UGO, + {_sSI: _cUGRo, _smith: None}, + (_gA, _na, _st), + ((STRING, 0), (STRING, 0), (GATEWAY_STATUS, 0)), +) + +UPDATE_GATEWAY: StaticOperationSchema = ( + 23, + n0, + _UG, + 0, + UPDATE_GATEWAY_INPUT, + UPDATE_GATEWAY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_GATEWAY_ROUTE_INPUT: StaticSchema = ( + 18, + n0, + _DGRIe, + {_sSI: _cDGRRom, _smit: None}, + (_gRAa,), + ((STRING, 1),), +) + +GATEWAY_ROUTE_LOAD_BALANCER_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _GRLBSG, + 0, + (_ar, _rAu), + ((STRING, 0), (STRING_LIST, 0)), +) + +GATEWAY_ROUTE_LOAD_BALANCER_SECURITY_GROUP_LIST: StaticSchema = ( + 16, + n0, + _GRLBSGL, + 0, + (_me,), + ((GATEWAY_ROUTE_LOAD_BALANCER_SECURITY_GROUP, 0),), +) + +GATEWAY_ROUTE_ALB_RESOURCES: StaticSchema = ( + 18, + n0, + _GRAR, + 0, + (_aCA, _lBA, _lA, _lRA, _tLRA, _lBSG, _sSGA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (GATEWAY_ROUTE_LOAD_BALANCER_SECURITY_GROUP_LIST, 0), + (STRING, 0), + ), +) + +GATEWAY_ROUTE_ALB_RESOURCES_LIST: StaticSchema = ( + 16, + n0, + _GRARL, + 0, + (_me,), + ((GATEWAY_ROUTE_ALB_RESOURCES, 0),), +) + +GATEWAY_ROUTE_RESOURCES: StaticSchema = ( + 19, + n0, + _GRR, + 0, + (_hSA,), + ((GATEWAY_ROUTE_ALB_RESOURCES_LIST, 0),), +) + +GATEWAY_ROUTE_STATUS: StaticSchema = ( + 14, + n0, + _GRS, + 0, + (_ACTIVE, _CIP, _CF, _UIP, _UF, _DIP, _DF), + ( + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _CIP}), + (-1, {_sV: _CF}), + (-1, {_sV: _UIP}), + (-1, {_sV: _UF}), + (-1, {_sV: _DIP}), + (-1, {_sV: _DF}), + ), +) + +GATEWAY_ROUTE: StaticSchema = ( + 18, + n0, + _GRa, + 0, + (_gRAa, _sAe, _sCPN, _st, _sUe, _res), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GATEWAY_ROUTE_STATUS, 0), + (STRING, 0), + (GATEWAY_ROUTE_RESOURCES, 0), + ), +) + +DESCRIBE_GATEWAY_ROUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _DGROe, + {_sSI: _cDGRRoma, _smith: None}, + (_gRa,), + ((GATEWAY_ROUTE, 0),), +) + +DESCRIBE_GATEWAY_ROUTE: StaticOperationSchema = ( + 23, + n0, + _DGRe, + 0, + DESCRIBE_GATEWAY_ROUTE_INPUT, + DESCRIBE_GATEWAY_ROUTE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +GATEWAY_ROUTE_STATUS_LIST: StaticSchema = ( + 16, + n0, + _GRSL, + 0, + (_me,), + ((GATEWAY_ROUTE_STATUS, 0),), +) + +LIST_GATEWAY_ROUTES_INPUT: StaticSchema = ( + 18, + n0, + _LGRI, + {_sSI: _cLGRR, _smit: None}, + (_ga, _cl, _ser, _sCPN, _st, _mR, _nT), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GATEWAY_ROUTE_STATUS_LIST, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + ), +) + +GATEWAY_ROUTE_SUMMARY: StaticSchema = ( + 18, + n0, + _GRSa, + 0, + (_gRAa, _gA, _cA, _sAe, _sCPN, _st), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GATEWAY_ROUTE_STATUS, 0), + ), +) + +GATEWAY_ROUTE_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _GRSLa, + 0, + (_me,), + ((GATEWAY_ROUTE_SUMMARY, 0),), +) + +LIST_GATEWAY_ROUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _LGRO, + {_sSI: _cLGRRo, _smith: None}, + (_gRat, _nT), + ((GATEWAY_ROUTE_SUMMARY_LIST, 0), (STRING, 0)), +) + +LIST_GATEWAY_ROUTES: StaticOperationSchema = ( + 23, + n0, + _LGR, + 0, + LIST_GATEWAY_ROUTES_INPUT, + LIST_GATEWAY_ROUTES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + GATEWAY_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +LIST_ACCOUNT_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _LASI, + {_sSI: _cLASR, _smit: None}, + (_na, _va, _pA, _eSf, _nT, _mR), + ( + (SETTING_NAME, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (STRING, 0), + (INTEGER, {_smi: 0}), + ), +) + +SETTINGS: StaticSchema = (16, n0, _Sett, 0, (_me,), ((SETTING, 0),)) + +LIST_ACCOUNT_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LASO, + {_sSI: _cLASRo, _smith: None}, + (_set, _nT), + ((SETTINGS, 0), (STRING, 0)), +) + +LIST_ACCOUNT_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _LAS, + 0, + LIST_ACCOUNT_SETTINGS_INPUT, + LIST_ACCOUNT_SETTINGS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +LIST_SERVICES_BY_NAMESPACE_INPUT: StaticSchema = ( + 18, + n0, + _LSBNI, + {_sSI: _cLSBNR, _smit: None}, + (_nam, _nT, _mR), + ((STRING, 1), (STRING, 0), (BOXED_INTEGER, 0)), +) + +LIST_SERVICES_BY_NAMESPACE_OUTPUT: StaticSchema = ( + 18, + n0, + _LSBNO, + {_sSI: _cLSBNRo, _smith: None}, + (_sAer, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_SERVICES_BY_NAMESPACE: StaticOperationSchema = ( + 23, + n0, + _LSBN, + 0, + LIST_SERVICES_BY_NAMESPACE_INPUT, + LIST_SERVICES_BY_NAMESPACE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sSI: _cLTFRR, _smit: None}, + (_rAes,), + ((STRING, 1),), +) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_sSI: _cLTFRRo, _smith: None}, + (_ta,), + ((TAGS, 0),), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + 0, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +TASK_DEFINITION_FAMILY_STATUS: StaticSchema = ( + 14, + n0, + _TDFS, + 0, + (_ACTIVE, _INACTIVE, _ALL), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _INACTIVE}), (-1, {_sV: _ALL})), +) + +LIST_TASK_DEFINITION_FAMILIES_INPUT: StaticSchema = ( + 18, + n0, + _LTDFI, + {_sSI: _cLTDFR, _smit: None}, + (_fP, _st, _nT, _mR), + ((STRING, 0), (TASK_DEFINITION_FAMILY_STATUS, 0), (STRING, 0), (BOXED_INTEGER, 0)), +) + +LIST_TASK_DEFINITION_FAMILIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LTDFO, + {_sSI: _cLTDFRo, _smith: None}, + (_fami, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_TASK_DEFINITION_FAMILIES: StaticOperationSchema = ( + 23, + n0, + _LTDF, + 0, + LIST_TASK_DEFINITION_FAMILIES_INPUT, + LIST_TASK_DEFINITION_FAMILIES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +PUT_ACCOUNT_SETTING_INPUT: StaticSchema = ( + 18, + n0, + _PASI, + {_sSI: _cPASR, _smit: None}, + (_na, _va, _pA), + ((SETTING_NAME, 1), (STRING, 1), (STRING, 0)), +) + +PUT_ACCOUNT_SETTING_OUTPUT: StaticSchema = ( + 18, + n0, + _PASO, + {_sSI: _cPASRo, _smith: None}, + (_sett,), + ((SETTING, 0),), +) + +PUT_ACCOUNT_SETTING: StaticOperationSchema = ( + 23, + n0, + _PAS, + 0, + PUT_ACCOUNT_SETTING_INPUT, + PUT_ACCOUNT_SETTING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +PUT_ACCOUNT_SETTING_DEFAULT_INPUT: StaticSchema = ( + 18, + n0, + _PASDI, + {_sSI: _cPASDR, _smit: None}, + (_na, _va), + ((SETTING_NAME, 1), (STRING, 1)), +) + +PUT_ACCOUNT_SETTING_DEFAULT_OUTPUT: StaticSchema = ( + 18, + n0, + _PASDO, + {_sSI: _cPASDRo, _smith: None}, + (_sett,), + ((SETTING, 0),), +) + +PUT_ACCOUNT_SETTING_DEFAULT: StaticOperationSchema = ( + 23, + n0, + _PASD, + 0, + PUT_ACCOUNT_SETTING_DEFAULT_INPUT, + PUT_ACCOUNT_SETTING_DEFAULT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DESCRIBE_SERVICE_DEPLOYMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DSDI, + {_sSI: _cDSDR, _smit: None}, + (_sDAe,), + ((STRING_LIST, 1),), +) + +SERVICE_DEPLOYMENT_ROLLBACK_MONITORS_STATUS: StaticSchema = ( + 14, + n0, + _SDRMS, + 0, + (_TRIGGERED, _MONITORING, _MC, _DISABLED), + ( + (-1, {_sV: _TRIGGERED}), + (-1, {_sV: _MONITORING}), + (-1, {_sV: _MC}), + (-1, {_sV: _DISABLED}), + ), +) + +SERVICE_DEPLOYMENT_ALARMS: StaticSchema = ( + 18, + n0, + _SDA, + 0, + (_st, _aNl, _tAN), + ( + (SERVICE_DEPLOYMENT_ROLLBACK_MONITORS_STATUS, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + ), +) + +SERVICE_DEPLOYMENT_CIRCUIT_BREAKER: StaticSchema = ( + 18, + n0, + _SDCB, + 0, + (_st, _fC, _th), + ( + (SERVICE_DEPLOYMENT_ROLLBACK_MONITORS_STATUS, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + ), +) + +DEPLOYMENT_ALARMS: StaticSchema = ( + 18, + n0, + _DAe, + 0, + (_aNl, _ro, _en), + ( + (STRING_LIST, 1), + (BOOLEAN, {_smi: False, _sm: None}), + (BOOLEAN, {_smi: False, _sm: None}), + ), +) + +CANARY_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CCa, + 0, + (_cPan, _cBTIM), + ((DOUBLE, {_smi: None}), (INTEGER, {_smi: None})), +) + +THRESHOLD_TYPE: StaticSchema = ( + 14, + n0, + _TTh, + 0, + (_COUNT, _BP_, _UP), + ((-1, {_sV: _COUNT}), (-1, {_sV: _BP_}), (-1, {_sV: _UP})), +) + +THRESHOLD_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TC, + 0, + (_ty, _va), + ((THRESHOLD_TYPE, 1), (INTEGER, {_smi: 0, _sm: None})), +) + +DEPLOYMENT_CIRCUIT_BREAKER: StaticSchema = ( + 18, + n0, + _DCBe, + 0, + (_en, _ro, _rOHT, _tCh), + ( + (BOOLEAN, {_smi: False, _sm: None}), + (BOOLEAN, {_smi: False, _sm: None}), + (BOXED_BOOLEAN, 0), + (THRESHOLD_CONFIGURATION, 0), + ), +) + +HEALTHY_PERCENT_INTEGER: StaticSchema = (7, n0, _HPI, 0) + +SERVICE_REVISION_CLEANUP: StaticSchema = ( + 14, + n0, + _SRC, + 0, + (_BLOCKING, _DEFERRED), + ((-1, {_sV: _BLOCKING}), (-1, {_sV: _DEFERRED})), +) + +DEPLOYMENT_EARLY_SUCCESS_CRITERIA: StaticSchema = ( + 18, + n0, + _DESCe, + 0, + (_en, _hPe, _sSRC), + ( + (BOOLEAN, {_smi: False, _sm: None}), + (HEALTHY_PERCENT_INTEGER, 0), + (SERVICE_REVISION_CLEANUP, 0), + ), +) + +HOOK_DETAILS: StaticSchema = (13, n0, _HD, 0) + +DEPLOYMENT_LIFECYCLE_HOOK_STAGE: StaticSchema = ( + 14, + n0, + _DLHS, + 0, + (_RS_, _PSU, _PSU_, _TTS, _PTTS, _PPTS, _PTS, _PPTS_), + ( + (-1, {_sV: _RS_}), + (-1, {_sV: _PSU}), + (-1, {_sV: _PSU_}), + (-1, {_sV: _TTS}), + (-1, {_sV: _PTTS}), + (-1, {_sV: _PPTS}), + (-1, {_sV: _PTS}), + (-1, {_sV: _PPTS_}), + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_STAGE_LIST: StaticSchema = ( + 16, + n0, + _DLHSL, + 0, + (_me,), + ((DEPLOYMENT_LIFECYCLE_HOOK_STAGE, 0),), +) + +IAM_ROLE_ARN: StaticSchema = (3, n0, _IAMRA, 0) + +DEPLOYMENT_LIFECYCLE_HOOK_TARGET_TYPE: StaticSchema = ( + 14, + n0, + _DLHTT, + 0, + (_AL, _PAUSE), + ((-1, {_sV: _AL}), (-1, {_sV: _PAUSE})), +) + +DEPLOYMENT_LIFECYCLE_HOOK_DURATION: StaticSchema = (7, n0, _DLHD, 0) + +DEPLOYMENT_LIFECYCLE_HOOK_TIMEOUT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DLHTC, + 0, + (_tIM, _act), + ((DEPLOYMENT_LIFECYCLE_HOOK_DURATION, 0), (DEPLOYMENT_LIFECYCLE_HOOK_ACTION, 0)), +) + +DEPLOYMENT_LIFECYCLE_HOOK: StaticSchema = ( + 18, + n0, + _DLH, + 0, + (_tT, _hTA, _rA, _lSi, _hDo, _tCi), + ( + (DEPLOYMENT_LIFECYCLE_HOOK_TARGET_TYPE, 0), + (STRING, 0), + (IAM_ROLE_ARN, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_STAGE_LIST, 0), + (HOOK_DETAILS, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_TIMEOUT_CONFIGURATION, 0), + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_LIST: StaticSchema = ( + 16, + n0, + _DLHL, + 0, + (_me,), + ((DEPLOYMENT_LIFECYCLE_HOOK, 0),), +) + +LINEAR_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LCi, + 0, + (_sPt, _sBTIM), + ((DOUBLE, {_smi: None}), (INTEGER, {_smi: None})), +) + +DEPLOYMENT_STRATEGY: StaticSchema = ( + 14, + n0, + _DSe, + 0, + (_ROLLING, _BG, _LINEAR, _CANARY), + ( + (-1, {_sV: _ROLLING}), + (-1, {_sV: _BG}), + (-1, {_sV: _LINEAR}), + (-1, {_sV: _CANARY}), + ), +) + +DEPLOYMENT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DCep, + 0, + (_dCB, _mPa, _mHP, _al, _stra, _bTIM, _lH, _lCi, _cCa, _eSC), + ( + (DEPLOYMENT_CIRCUIT_BREAKER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (DEPLOYMENT_ALARMS, 0), + (DEPLOYMENT_STRATEGY, 0), + (BOXED_INTEGER, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_LIST, 0), + (LINEAR_CONFIGURATION, 0), + (CANARY_CONFIGURATION, 0), + (DEPLOYMENT_EARLY_SUCCESS_CRITERIA, 0), + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_STATUS: StaticSchema = ( + 14, + n0, + _DLHSe, + 0, + (_AA, _IP, _SUCCEEDED, _FAILED, _TO), + ( + (-1, {_sV: _AA}), + (-1, {_sV: _IP}), + (-1, {_sV: _SUCCEEDED}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _TO}), + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_DETAIL: StaticSchema = ( + 18, + n0, + _DLHDe, + 0, + (_hI, _tT, _tAar, _st, _eA, _tAi), + ( + (STRING, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_TARGET_TYPE, 0), + (STRING, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_STATUS, 0), + (TIMESTAMP, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_ACTION, 0), + ), +) + +DEPLOYMENT_LIFECYCLE_HOOK_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _DLHDL, + 0, + (_me,), + ((DEPLOYMENT_LIFECYCLE_HOOK_DETAIL, 0),), +) + +SERVICE_DEPLOYMENT_LIFECYCLE_STAGE: StaticSchema = ( + 14, + n0, + _SDLS, + 0, + (_RS_, _PSU, _SU, _PSU_, _TTS, _PTTS, _PTS, _PPTS_, _BT, _CU), + ( + (-1, {_sV: _RS_}), + (-1, {_sV: _PSU}), + (-1, {_sV: _SU}), + (-1, {_sV: _PSU_}), + (-1, {_sV: _TTS}), + (-1, {_sV: _PTTS}), + (-1, {_sV: _PTS}), + (-1, {_sV: _PPTS_}), + (-1, {_sV: _BT}), + (-1, {_sV: _CU}), + ), +) + +ROLLBACK: StaticSchema = ( + 18, + n0, + _Ro, + 0, + (_re, _sA, _sRA), + ((STRING, 0), (TIMESTAMP, 0), (STRING, 0)), +) + +SERVICE_REVISION_SUMMARY: StaticSchema = ( + 18, + n0, + _SRS, + 0, + (_ar, _rTCe, _rTCu, _pTCe, _rTTW, _rPTW), + ( + (STRING, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (DOUBLE, {_smi: None}), + (DOUBLE, {_smi: None}), + ), +) + +SERVICE_REVISIONS_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _SRSL, + 0, + (_me,), + ((SERVICE_REVISION_SUMMARY, 0),), +) + +SERVICE_DEPLOYMENT_STATUS: StaticSchema = ( + 14, + n0, + _SDS, + 0, + (_PENDING, _SUCCESSFUL, _STOPPED, _SR, _IP, _RR_, _RIP, _RS, _RF__), + ( + (-1, {_sV: _PENDING}), + (-1, {_sV: _SUCCESSFUL}), + (-1, {_sV: _STOPPED}), + (-1, {_sV: _SR}), + (-1, {_sV: _IP}), + (-1, {_sV: _RR_}), + (-1, {_sV: _RIP}), + (-1, {_sV: _RS}), + (-1, {_sV: _RF__}), + ), +) + +SERVICE_DEPLOYMENT: StaticSchema = ( + 18, + n0, + _SD, + 0, + ( + _sDA, + _sAe, + _cA, + _cAr, + _sA, + _fA, + _sAt, + _uA, + _sSR, + _tSR, + _st, + _sR, + _lSif, + _lHD, + _dC, + _ro, + _dCB, + _al, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (SERVICE_REVISIONS_SUMMARY_LIST, 0), + (SERVICE_REVISION_SUMMARY, 0), + (SERVICE_DEPLOYMENT_STATUS, 0), + (STRING, 0), + (SERVICE_DEPLOYMENT_LIFECYCLE_STAGE, 0), + (DEPLOYMENT_LIFECYCLE_HOOK_DETAIL_LIST, 0), + (DEPLOYMENT_CONFIGURATION, 0), + (ROLLBACK, 0), + (SERVICE_DEPLOYMENT_CIRCUIT_BREAKER, 0), + (SERVICE_DEPLOYMENT_ALARMS, 0), + ), +) + +SERVICE_DEPLOYMENTS: StaticSchema = ( + 16, + n0, + _SDe, + 0, + (_me,), + ((SERVICE_DEPLOYMENT, 0),), +) + +DESCRIBE_SERVICE_DEPLOYMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSDO, + {_sSI: _cDSDRo, _smith: None}, + (_sD, _fa), + ((SERVICE_DEPLOYMENTS, 0), (FAILURES, 0)), +) + +DESCRIBE_SERVICE_DEPLOYMENTS: StaticOperationSchema = ( + 23, + n0, + _DSD, + 0, + DESCRIBE_SERVICE_DEPLOYMENTS_INPUT, + DESCRIBE_SERVICE_DEPLOYMENTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +EXPRESS_CPU_ARCHITECTURE: StaticSchema = ( + 14, + n0, + _ECAx, + 0, + (_X, _ARM), + ((-1, {_sV: _X}), (-1, {_sV: _ARM})), +) + +EXPRESS_GATEWAY_SERVICE_NETWORK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EGSNC, + 0, + (_sG, _su), + ((STRING_LIST, 0), (STRING_LIST, 0)), +) + +EXPRESS_GATEWAY_SERVICE_AWS_LOGS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EGSALC, + 0, + (_lG, _lSP), + ((STRING, 1), (STRING, 1)), +) + +EXPRESS_GATEWAY_REPOSITORY_CREDENTIALS: StaticSchema = ( + 18, + n0, + _EGRC, + 0, + (_cPr,), + ((STRING, 0),), +) + +EXPRESS_GATEWAY_CONTAINER: StaticSchema = ( + 18, + n0, + _EGC, + 0, + (_im, _cPo, _aLC, _rCe, _com, _env, _sec), + ( + (STRING, 1), + (BOXED_INTEGER, 0), + (EXPRESS_GATEWAY_SERVICE_AWS_LOGS_CONFIGURATION, 0), + (EXPRESS_GATEWAY_REPOSITORY_CREDENTIALS, 0), + (STRING_LIST, 0), + (ENVIRONMENT_VARIABLES, 0), + (SECRET_LIST, 0), + ), +) + +EXPRESS_GATEWAY_SERVICE_SCALING_METRIC: StaticSchema = ( + 14, + n0, + _EGSSM, + 0, + (_ACPUU, _AMU, _RCPT), + ((-1, {_sV: _AC___}), (-1, {_sV: _AM__}), (-1, {_sV: _RCPT_})), +) + +EXPRESS_GATEWAY_SCALING_TARGET: StaticSchema = ( + 18, + n0, + _EGST, + 0, + (_mTC, _mTCa, _aSM, _aSTV), + ( + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (EXPRESS_GATEWAY_SERVICE_SCALING_METRIC, 0), + (BOXED_INTEGER, 0), + ), +) + +CREATE_EXPRESS_GATEWAY_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _CEGSI, + {_sSI: _cCEGSR, _smit: None}, + (_eRA, _iRA, _sNe, _cl, _hCP, _pCri, _tRA, _nC, _cp, _memo, _cAp, _sTc, _ta, _tDA), + ( + (STRING, 0), + (STRING, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_GATEWAY_CONTAINER, 0), + (STRING, 0), + (EXPRESS_GATEWAY_SERVICE_NETWORK_CONFIGURATION, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_CPU_ARCHITECTURE, 0), + (EXPRESS_GATEWAY_SCALING_TARGET, 0), + (TAGS, 0), + (STRING, 0), + ), +) + +INGRESS_PATH_SUMMARY: StaticSchema = ( + 18, + n0, + _IPS, + 0, + (_aTc, _end), + ((ACCESS_TYPE, 1), (STRING, 1)), +) + +INGRESS_PATH_SUMMARIES: StaticSchema = ( + 16, + n0, + _IPSn, + 0, + (_me,), + ((INGRESS_PATH_SUMMARY, 0),), +) + +EXPRESS_GATEWAY_SERVICE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EGSC, + 0, + (_sRA, _eRA, _tRA, _tDA, _cp, _memo, _cAp, _nC, _hCP, _pCri, _sTc, _iP, _cAr), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_CPU_ARCHITECTURE, 0), + (EXPRESS_GATEWAY_SERVICE_NETWORK_CONFIGURATION, 0), + (STRING, 0), + (EXPRESS_GATEWAY_CONTAINER, 0), + (EXPRESS_GATEWAY_SCALING_TARGET, 0), + (INGRESS_PATH_SUMMARIES, 0), + (TIMESTAMP, 0), + ), +) + +EXPRESS_GATEWAY_SERVICE_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _EGSCx, + 0, + (_me,), + ((EXPRESS_GATEWAY_SERVICE_CONFIGURATION, 0),), +) + +EXPRESS_GATEWAY_SERVICE_STATUS_CODE: StaticSchema = ( + 14, + n0, + _EGSSC, + 0, + (_ACTIVE, _DRAINING, _INACTIVE), + ((-1, {_sV: _ACTIVE}), (-1, {_sV: _DRAINING}), (-1, {_sV: _INACTIVE})), +) + +EXPRESS_GATEWAY_SERVICE_STATUS: StaticSchema = ( + 18, + n0, + _EGSS, + 0, + (_sCt, _sR), + ((EXPRESS_GATEWAY_SERVICE_STATUS_CODE, 0), (STRING, 0)), +) + +ECS_EXPRESS_GATEWAY_SERVICE: StaticSchema = ( + 18, + n0, + _ECSEGS, + 0, + (_cl, _sNe, _sAe, _iRA, _st, _cDu, _aCc, _ta, _cAr, _uA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_GATEWAY_SERVICE_STATUS, 0), + (STRING, 0), + (EXPRESS_GATEWAY_SERVICE_CONFIGURATIONS, 0), + (TAGS, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +CREATE_EXPRESS_GATEWAY_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _CEGSO, + {_sSI: _cCEGSRo, _smith: None}, + (_ser,), + ((ECS_EXPRESS_GATEWAY_SERVICE, 0),), +) + +PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION: StaticSchema = ( + 18, + n0, + _PTDIE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +CREATE_EXPRESS_GATEWAY_SERVICE: StaticOperationSchema = ( + 23, + n0, + _CEGS, + 0, + CREATE_EXPRESS_GATEWAY_SERVICE_INPUT, + CREATE_EXPRESS_GATEWAY_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +AVAILABILITY_ZONE_REBALANCING: StaticSchema = ( + 14, + n0, + _AZR, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +DEPLOYMENT_CONTROLLER_TYPE: StaticSchema = ( + 14, + n0, + _DCT, + 0, + (_ECS, _CD_, _EXTERNAL), + ((-1, {_sV: _ECS}), (-1, {_sV: _CD_}), (-1, {_sV: _EXTERNAL})), +) + +DEPLOYMENT_CONTROLLER: StaticSchema = ( + 18, + n0, + _DCepl, + 0, + (_ty,), + ((DEPLOYMENT_CONTROLLER_TYPE, 1),), +) + +GATEWAY_CONNECTOR_FILTERS: StaticSchema = ( + 18, + n0, + _GCF, + 0, + (_aTcc,), + ((ACCESS_TYPE_LIST, 0),), +) + +GATEWAY_CONNECTOR_HEALTH_CHECK_PROTOCOL: StaticSchema = ( + 14, + n0, + _GCHCP, + 0, + (_HTTP, _HTTPS), + ((-1, {_sV: _HTTP}), (-1, {_sV: _HTTPS})), +) + +GATEWAY_CONNECTOR_HEALTH_CHECK_MATCHER: StaticSchema = ( + 18, + n0, + _GCHCM, + 0, + (_hCt, _gC), + ((STRING, 0), (STRING, 0)), +) + +GATEWAY_CONNECTOR_HEALTH_CHECK: StaticSchema = ( + 18, + n0, + _GCHC, + 0, + (_hCPe, _hCPea, _hCP, _hCTS, _hCIS, _hTC, _uTC, _mat), + ( + (GATEWAY_CONNECTOR_HEALTH_CHECK_PROTOCOL, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (GATEWAY_CONNECTOR_HEALTH_CHECK_MATCHER, 0), + ), +) + +GATEWAY_CONNECTOR: StaticSchema = ( + 18, + n0, + _GCa, + 0, + (_pN, _hC, _fil), + ((STRING, 1), (GATEWAY_CONNECTOR_HEALTH_CHECK, 0), (GATEWAY_CONNECTOR_FILTERS, 0)), +) + +GATEWAY_CONNECTOR_LIST: StaticSchema = ( + 16, + n0, + _GCL, + 0, + (_me,), + ((GATEWAY_CONNECTOR, 0),), +) + +LOAD_BALANCER: StaticSchema = ( + 18, + n0, + _LB, + 0, + (_tGA, _lBN, _cNo, _cPo, _aCd), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (ADVANCED_CONFIGURATION, 0), + ), +) + +LOAD_BALANCERS: StaticSchema = (16, n0, _LBo, 0, (_me,), ((LOAD_BALANCER, 0),)) + +METRIC_NAME: StaticSchema = (3, n0, _MN, 0) + +METRIC_NAMES_LIST: StaticSchema = (16, n0, _MNL, 0, (_me,), ((METRIC_NAME, 0),)) + +METRIC_RESOLUTION_SECONDS: StaticSchema = (7, n0, _MRS, 0) + +METRIC_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MCe, + 0, + (_mN, _rS), + ((METRIC_NAMES_LIST, 1), (METRIC_RESOLUTION_SECONDS, 1)), +) + +METRIC_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _MCL, + 0, + (_me,), + ((METRIC_CONFIGURATION, 0),), +) + +MONITORING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MCo, + 0, + (_mC,), + ((METRIC_CONFIGURATION_LIST, 0),), +) + +ASSIGN_PUBLIC_IP: StaticSchema = ( + 14, + n0, + _API, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +AWS_VPC_CONFIGURATION: StaticSchema = ( + 18, + n0, + _AVC, + 0, + (_su, _sG, _aPIs), + ((STRING_LIST, 1), (STRING_LIST, 0), (ASSIGN_PUBLIC_IP, 0)), +) + +NETWORK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _NC, + 0, + (_aCw,), + ((AWS_VPC_CONFIGURATION, 0),), +) + +PLACEMENT_CONSTRAINT_TYPE: StaticSchema = ( + 14, + n0, + _PCTl, + 0, + (_DI, _MO), + ((-1, {_sV: _dI}), (-1, {_sV: _mOe})), +) + +PLACEMENT_CONSTRAINT: StaticSchema = ( + 18, + n0, + _PCl, + 0, + (_ty, _ex), + ((PLACEMENT_CONSTRAINT_TYPE, 0), (STRING, 0)), +) + +PLACEMENT_CONSTRAINTS: StaticSchema = ( + 16, + n0, + _PCla, + 0, + (_me,), + ((PLACEMENT_CONSTRAINT, 0),), +) + +PLACEMENT_STRATEGY_TYPE: StaticSchema = ( + 14, + n0, + _PST, + 0, + (_RANDOM, _SPREAD, _BINPACK), + ((-1, {_sV: _ra}), (-1, {_sV: _spr}), (-1, {_sV: _bi})), +) + +PLACEMENT_STRATEGY: StaticSchema = ( + 18, + n0, + _PS, + 0, + (_ty, _fie), + ((PLACEMENT_STRATEGY_TYPE, 0), (STRING, 0)), +) + +PLACEMENT_STRATEGIES: StaticSchema = ( + 16, + n0, + _PSl, + 0, + (_me,), + ((PLACEMENT_STRATEGY, 0),), +) + +PROPAGATE_TAGS: StaticSchema = ( + 14, + n0, + _PT, + 0, + (_TD_, _SERVICE, _NONE), + ((-1, {_sV: _TD_}), (-1, {_sV: _SERVICE}), (-1, {_sV: _NONE})), +) + +SCHEDULING_STRATEGY: StaticSchema = ( + 14, + n0, + _SSc, + 0, + (_REPLICA, _DAEMON), + ((-1, {_sV: _REPLICA}), (-1, {_sV: _DAEMON})), +) + +SERVICE_CONNECT_ACCESS_LOGGING_FORMAT: StaticSchema = ( + 14, + n0, + _SCALF, + 0, + (_TEXT, _JSON), + ((-1, {_sV: _TEXT}), (-1, {_sV: _JSON})), +) + +SERVICE_CONNECT_INCLUDE_QUERY_PARAMETERS: StaticSchema = ( + 14, + n0, + _SCIQP, + 0, + (_DISABLED, _ENABLED), + ((-1, {_sV: _DISABLED}), (-1, {_sV: _ENABLED})), +) + +SERVICE_CONNECT_ACCESS_LOG_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCALC, + 0, + (_for, _iQP), + ( + (SERVICE_CONNECT_ACCESS_LOGGING_FORMAT, 1), + (SERVICE_CONNECT_INCLUDE_QUERY_PARAMETERS, 0), + ), +) + +SERVICE_CONNECT_CONTAINER_LOG_LEVEL: StaticSchema = ( + 14, + n0, + _SCCLL, + 0, + (_DEBUG, _INFO), + ((-1, {_sV: _deb}), (-1, {_sV: _info})), +) + +SERVICE_CONNECT_CONTAINER_CONFIGURATION: StaticSchema = ( + 19, + n0, + _SCCC, + 0, + (_lL,), + ((SERVICE_CONNECT_CONTAINER_LOG_LEVEL, 0),), +) + +SERVICE_CONNECT_CONTAINER_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _SCCCe, + 0, + (_me,), + ((SERVICE_CONNECT_CONTAINER_CONFIGURATION, 0),), +) + +PORT_NUMBER: StaticSchema = (7, n0, _PN, 0) + +SERVICE_CONNECT_TEST_TRAFFIC_HEADER_MATCH_RULES: StaticSchema = ( + 18, + n0, + _SCTTHMR, + 0, + (_exa,), + ((STRING, 1),), +) + +SERVICE_CONNECT_TEST_TRAFFIC_HEADER_RULES: StaticSchema = ( + 18, + n0, + _SCTTHR, + 0, + (_na, _va), + ((STRING, 1), (SERVICE_CONNECT_TEST_TRAFFIC_HEADER_MATCH_RULES, 0)), +) + +SERVICE_CONNECT_TEST_TRAFFIC_RULES: StaticSchema = ( + 18, + n0, + _SCTTR, + 0, + (_he,), + ((SERVICE_CONNECT_TEST_TRAFFIC_HEADER_RULES, 1),), +) + +SERVICE_CONNECT_CLIENT_ALIAS: StaticSchema = ( + 18, + n0, + _SCCA, + 0, + (_po, _dNn, _tTR), + ((PORT_NUMBER, 1), (STRING, 0), (SERVICE_CONNECT_TEST_TRAFFIC_RULES, 0)), +) + +SERVICE_CONNECT_CLIENT_ALIAS_LIST: StaticSchema = ( + 16, + n0, + _SCCAL, + 0, + (_me,), + ((SERVICE_CONNECT_CLIENT_ALIAS, 0),), +) + +DURATION: StaticSchema = (7, n0, _Du, 0) + +TIMEOUT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TCi, + 0, + (_iTS, _pRTS), + ((DURATION, 0), (DURATION, 0)), +) + +SERVICE_CONNECT_TLS_CERTIFICATE_AUTHORITY: StaticSchema = ( + 18, + n0, + _SCTCA, + 0, + (_aPAA,), + ((STRING, 0),), +) + +SERVICE_CONNECT_TLS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCTC, + 0, + (_iCA, _kK, _rA), + ((SERVICE_CONNECT_TLS_CERTIFICATE_AUTHORITY, 1), (STRING, 0), (STRING, 0)), +) + +SERVICE_CONNECT_SERVICE: StaticSchema = ( + 18, + n0, + _SCS, + 0, + (_pN, _dNis, _cAli, _iPO, _ti, _tl), + ( + (STRING, 1), + (STRING, 0), + (SERVICE_CONNECT_CLIENT_ALIAS_LIST, 0), + (PORT_NUMBER, 0), + (TIMEOUT_CONFIGURATION, 0), + (SERVICE_CONNECT_TLS_CONFIGURATION, 0), + ), +) + +SERVICE_CONNECT_SERVICE_LIST: StaticSchema = ( + 16, + n0, + _SCSL, + 0, + (_me,), + ((SERVICE_CONNECT_SERVICE, 0),), +) + +SERVICE_CONNECT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SCC, + 0, + (_ena, _nam, _serv, _lC, _aLCc, _cCo), + ( + (BOOLEAN, {_smi: False, _sm: None}), + (STRING, 0), + (SERVICE_CONNECT_SERVICE_LIST, 0), + (LOG_CONFIGURATION, 0), + (SERVICE_CONNECT_ACCESS_LOG_CONFIGURATION, 0), + (SERVICE_CONNECT_CONTAINER_CONFIGURATIONS, 0), + ), +) + +SERVICE_REGISTRY: StaticSchema = ( + 18, + n0, + _SRe, + 0, + (_rAeg, _po, _cNo, _cPo), + ((STRING, 0), (BOXED_INTEGER, 0), (STRING, 0), (BOXED_INTEGER, 0)), +) + +SERVICE_REGISTRIES: StaticSchema = (16, n0, _SRer, 0, (_me,), ((SERVICE_REGISTRY, 0),)) + +TASK_FILESYSTEM_TYPE: StaticSchema = ( + 14, + n0, + _TFT, + 0, + (_EXT, _EXT_, _XFS, _NTFS), + ((-1, {_sV: _ext}), (-1, {_sV: _ext_}), (-1, {_sV: _xf}), (-1, {_sV: _nt})), +) + +EBSKMS_KEY_ID: StaticSchema = (3, n0, _EBSKMSKI, 0) + +EBS_SNAPSHOT_ID: StaticSchema = (3, n0, _EBSSI, 0) + +EBS_RESOURCE_TYPE: StaticSchema = (14, n0, _EBSRT, 0, (_VOLUME,), ((-1, {_sV: _vol}),)) + +EBS_TAG_SPECIFICATION: StaticSchema = ( + 18, + n0, + _EBSTS, + 0, + (_rT, _ta, _pT), + ((EBS_RESOURCE_TYPE, 1), (TAGS, 0), (PROPAGATE_TAGS, 0)), +) + +EBS_TAG_SPECIFICATIONS: StaticSchema = ( + 16, + n0, + _EBSTSa, + 0, + (_me,), + ((EBS_TAG_SPECIFICATION, 0),), +) + +EBS_VOLUME_TYPE: StaticSchema = (3, n0, _EBSVT, 0) + +SERVICE_MANAGED_EBS_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SMEBSVC, + 0, + (_enc, _kKI, _vT, _sIGB, _sIn, _vIR, _io, _thr, _tS, _rA, _fT), + ( + (BOXED_BOOLEAN, 0), + (EBSKMS_KEY_ID, 0), + (EBS_VOLUME_TYPE, 0), + (BOXED_INTEGER, 0), + (EBS_SNAPSHOT_ID, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (EBS_TAG_SPECIFICATIONS, 0), + (IAM_ROLE_ARN, 1), + (TASK_FILESYSTEM_TYPE, 0), + ), +) + +ECS_VOLUME_NAME: StaticSchema = (3, n0, _ECSVN, 0) + +SERVICE_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SVC, + 0, + (_na, _mEBSV), + ((ECS_VOLUME_NAME, 1), (SERVICE_MANAGED_EBS_VOLUME_CONFIGURATION, 0)), +) + +SERVICE_VOLUME_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _SVCe, + 0, + (_me,), + ((SERVICE_VOLUME_CONFIGURATION, 0),), +) + +VPC_LATTICE_ADVANCED_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VLAC, + 0, + (_aTGA, _pLR, _tLR), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +VPC_LATTICE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VLC, + 0, + (_rA, _tGA, _pN, _aCd), + ( + (IAM_ROLE_ARN, 1), + (STRING, 1), + (STRING, 1), + (VPC_LATTICE_ADVANCED_CONFIGURATION, 0), + ), +) + +VPC_LATTICE_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _VLCp, + 0, + (_me,), + ((VPC_LATTICE_CONFIGURATION, 0),), +) + +CREATE_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _CSI, + {_sSI: _cCSR, _smit: None}, + ( + _cl, + _sNe, + _tD, + _aZR, + _lB, + _sRe, + _dCe, + _cT, + _lT, + _cPS, + _pV, + _rol, + _dC, + _pC, + _pS, + _nC, + _hCGPS, + _sSc, + _dCep, + _ta, + _eECSMT, + _pT, + _eEC, + _sCC, + _vCo, + _vLC, + _gCa, + _mo, + ), + ( + (STRING, 0), + (STRING, 1), + (STRING, 0), + (AVAILABILITY_ZONE_REBALANCING, 0), + (LOAD_BALANCERS, 0), + (SERVICE_REGISTRIES, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (LAUNCH_TYPE, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (STRING, 0), + (STRING, 0), + (DEPLOYMENT_CONFIGURATION, 0), + (PLACEMENT_CONSTRAINTS, 0), + (PLACEMENT_STRATEGIES, 0), + (NETWORK_CONFIGURATION, 0), + (BOXED_INTEGER, 0), + (SCHEDULING_STRATEGY, 0), + (DEPLOYMENT_CONTROLLER, 0), + (TAGS, 0), + (BOOLEAN, {_smi: False}), + (PROPAGATE_TAGS, 0), + (BOOLEAN, {_smi: False}), + (SERVICE_CONNECT_CONFIGURATION, 0), + (SERVICE_VOLUME_CONFIGURATIONS, 0), + (VPC_LATTICE_CONFIGURATIONS, 0), + (GATEWAY_CONNECTOR_LIST, 0), + (MONITORING_CONFIGURATION, 0), + ), +) + +SERVICE_CURRENT_REVISION_SUMMARY: StaticSchema = ( + 18, + n0, + _SCRS, + 0, + (_ar, _rTCe, _rTCu, _pTCe), + ((STRING, 0), (INTEGER, {_smi: 0}), (INTEGER, {_smi: 0}), (INTEGER, {_smi: 0})), +) + +SERVICE_CURRENT_REVISION_SUMMARY_LIST: StaticSchema = ( + 16, + n0, + _SCRSL, + 0, + (_me,), + ((SERVICE_CURRENT_REVISION_SUMMARY, 0),), +) + +DEPLOYMENT_EPHEMERAL_STORAGE: StaticSchema = (18, n0, _DES, 0, (_kKI,), ((STRING, 0),)) + +DEPLOYMENT_ROLLOUT_STATE: StaticSchema = ( + 14, + n0, + _DRS, + 0, + (_COMPLETED, _FAILED, _IP), + ((-1, {_sV: _COMPLETED}), (-1, {_sV: _FAILED}), (-1, {_sV: _IP})), +) + +SERVICE_CONNECT_SERVICE_RESOURCE: StaticSchema = ( + 18, + n0, + _SCSR, + 0, + (_dNis, _dAi), + ((STRING, 0), (STRING, 0)), +) + +SERVICE_CONNECT_SERVICE_RESOURCE_LIST: StaticSchema = ( + 16, + n0, + _SCSRL, + 0, + (_me,), + ((SERVICE_CONNECT_SERVICE_RESOURCE, 0),), +) + +DEPLOYMENT: StaticSchema = ( + 18, + n0, + _Dep, + 0, + ( + _id, + _st, + _tD, + _dCe, + _pCe, + _rC, + _fTa, + _cAr, + _uA, + _cPS, + _lT, + _pV, + _pF, + _nC, + _rSo, + _rSR, + _sCC, + _sCR, + _vCo, + _fES, + _vLC, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (LAUNCH_TYPE, 0), + (STRING, 0), + (STRING, 0), + (NETWORK_CONFIGURATION, 0), + (DEPLOYMENT_ROLLOUT_STATE, 0), + (STRING, 0), + (SERVICE_CONNECT_CONFIGURATION, 0), + (SERVICE_CONNECT_SERVICE_RESOURCE_LIST, 0), + (SERVICE_VOLUME_CONFIGURATIONS, 0), + (DEPLOYMENT_EPHEMERAL_STORAGE, 0), + (VPC_LATTICE_CONFIGURATIONS, 0), + ), +) + +DEPLOYMENTS: StaticSchema = (16, n0, _Depl, 0, (_me,), ((DEPLOYMENT, 0),)) + +SERVICE_EVENT: StaticSchema = ( + 18, + n0, + _SEe, + 0, + (_id, _cAr, _mes), + ((STRING, 0), (TIMESTAMP, 0), (STRING, 0)), +) + +SERVICE_EVENTS: StaticSchema = (16, n0, _SEer, 0, (_me,), ((SERVICE_EVENT, 0),)) + +RESOURCE_MANAGEMENT_TYPE: StaticSchema = ( + 14, + n0, + _RMT, + 0, + (_CUSTOMER, _ECS), + ((-1, {_sV: _CUSTOMER}), (-1, {_sV: _ECS})), +) + +SCALE_UNIT: StaticSchema = (14, n0, _SUc, 0, (_PERCENT,), ((-1, {_sV: _PERCENT}),)) + +SCALE: StaticSchema = ( + 18, + n0, + _Sca, + 0, + (_va, _un), + ((DOUBLE, {_smi: 0}), (SCALE_UNIT, 0)), +) + +STABILITY_STATUS: StaticSchema = ( + 14, + n0, + _SSt, + 0, + (_SS_, _STABILIZING), + ((-1, {_sV: _SS_}), (-1, {_sV: _STABILIZING})), +) + +TASK_SET: StaticSchema = ( + 18, + n0, + _TS, + 0, + ( + _id, + _tSA, + _sAe, + _cA, + _sB, + _eI, + _st, + _tD, + _cDC, + _pCe, + _rC, + _cAr, + _uA, + _lT, + _cPS, + _pV, + _pF, + _nC, + _lB, + _sRe, + _sca, + _sSt, + _sSA, + _ta, + _fES, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (LAUNCH_TYPE, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (STRING, 0), + (STRING, 0), + (NETWORK_CONFIGURATION, 0), + (LOAD_BALANCERS, 0), + (SERVICE_REGISTRIES, 0), + (SCALE, 0), + (STABILITY_STATUS, 0), + (TIMESTAMP, 0), + (TAGS, 0), + (DEPLOYMENT_EPHEMERAL_STORAGE, 0), + ), +) + +TASK_SETS: StaticSchema = (16, n0, _TSa, 0, (_me,), ((TASK_SET, 0),)) + +SERVICE: StaticSchema = ( + 18, + n0, + _Ser, + 0, + ( + _sAe, + _sNe, + _cA, + _lB, + _sRe, + _st, + _dCe, + _rC, + _pCe, + _lT, + _cPS, + _pV, + _pF, + _tD, + _dC, + _tSa, + _dep, + _rA, + _ev, + _cAr, + _cSD, + _cSR, + _pC, + _pS, + _nC, + _hCGPS, + _sSc, + _dCep, + _ta, + _cBr, + _eECSMT, + _pT, + _eEC, + _aZR, + _rMT, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (LOAD_BALANCERS, 0), + (SERVICE_REGISTRIES, 0), + (STRING, 0), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (INTEGER, {_smi: 0}), + (LAUNCH_TYPE, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DEPLOYMENT_CONFIGURATION, 0), + (TASK_SETS, 0), + (DEPLOYMENTS, 0), + (STRING, 0), + (SERVICE_EVENTS, 0), + (TIMESTAMP, 0), + (STRING, 0), + (SERVICE_CURRENT_REVISION_SUMMARY_LIST, 0), + (PLACEMENT_CONSTRAINTS, 0), + (PLACEMENT_STRATEGIES, 0), + (NETWORK_CONFIGURATION, 0), + (BOXED_INTEGER, 0), + (SCHEDULING_STRATEGY, 0), + (DEPLOYMENT_CONTROLLER, 0), + (TAGS, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (PROPAGATE_TAGS, 0), + (BOOLEAN, {_smi: False}), + (AVAILABILITY_ZONE_REBALANCING, 0), + (RESOURCE_MANAGEMENT_TYPE, 0), + ), +) + +CREATE_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _CSO, + {_sSI: _cCSRo, _smith: None}, + (_ser,), + ((SERVICE, 0),), +) + +CREATE_SERVICE: StaticOperationSchema = ( + 23, + n0, + _CSr, + 0, + CREATE_SERVICE_INPUT, + CREATE_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DELETE_EXPRESS_GATEWAY_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _DEGSI, + {_sSI: _cDEGSR, _smit: None}, + (_sAe,), + ((STRING, 1),), +) + +DELETE_EXPRESS_GATEWAY_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _DEGSO, + {_sSI: _cDEGSRo, _smith: None}, + (_ser,), + ((ECS_EXPRESS_GATEWAY_SERVICE, 0),), +) + +SERVICE_NOT_ACTIVE_EXCEPTION: StaticSchema = ( + 18, + n0, + _SNAE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +DELETE_EXPRESS_GATEWAY_SERVICE: StaticOperationSchema = ( + 23, + n0, + _DEGS, + 0, + DELETE_EXPRESS_GATEWAY_SERVICE_INPUT, + DELETE_EXPRESS_GATEWAY_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DELETE_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _DSI, + {_sSI: _cDSR, _smit: None}, + (_cl, _ser, _fo), + ((STRING, 0), (STRING, 1), (BOXED_BOOLEAN, 0)), +) + +DELETE_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSO, + {_sSI: _cDSRo, _smith: None}, + (_ser,), + ((SERVICE, 0),), +) + +DELETE_SERVICE: StaticOperationSchema = ( + 23, + n0, + _DSel, + 0, + DELETE_SERVICE_INPUT, + DELETE_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + ), +) + +EXPRESS_GATEWAY_SERVICE_INCLUDE: StaticSchema = ( + 14, + n0, + _EGSI, + 0, + (_TAGS,), + ((-1, {_sV: _TAGS}),), +) + +EXPRESS_GATEWAY_SERVICE_INCLUDE_LIST: StaticSchema = ( + 16, + n0, + _EGSIL, + 0, + (_me,), + ((EXPRESS_GATEWAY_SERVICE_INCLUDE, 0),), +) + +DESCRIBE_EXPRESS_GATEWAY_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _DEGSIe, + {_sSI: _cDEGSRom, _smit: None}, + (_sAe, _incl), + ((STRING, 1), (EXPRESS_GATEWAY_SERVICE_INCLUDE_LIST, 0)), +) + +DESCRIBE_EXPRESS_GATEWAY_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _DEGSOe, + {_sSI: _cDEGSRoma, _smith: None}, + (_ser,), + ((ECS_EXPRESS_GATEWAY_SERVICE, 0),), +) + +DESCRIBE_EXPRESS_GATEWAY_SERVICE: StaticOperationSchema = ( + 23, + n0, + _DEGSe, + 0, + DESCRIBE_EXPRESS_GATEWAY_SERVICE_INPUT, + DESCRIBE_EXPRESS_GATEWAY_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +SERVICE_FIELD: StaticSchema = (14, n0, _SF, 0, (_TAGS,), ((-1, {_sV: _TAGS}),)) + +SERVICE_FIELD_LIST: StaticSchema = (16, n0, _SFL, 0, (_me,), ((SERVICE_FIELD, 0),)) + +DESCRIBE_SERVICES_INPUT: StaticSchema = ( + 18, + n0, + _DSIe, + {_sSI: _cDSRom, _smit: None}, + (_cl, _serv, _incl), + ((STRING, 0), (STRING_LIST, 1), (SERVICE_FIELD_LIST, 0)), +) + +SERVICES: StaticSchema = (16, n0, _Serv, 0, (_me,), ((SERVICE, 0),)) + +DESCRIBE_SERVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _DSOe, + {_sSI: _cDSRoma, _smith: None}, + (_serv, _fa), + ((SERVICES, 0), (FAILURES, 0)), +) + +DESCRIBE_SERVICES: StaticOperationSchema = ( + 23, + n0, + _DSes, + 0, + DESCRIBE_SERVICES_INPUT, + DESCRIBE_SERVICES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +SERVICE_DEPLOYMENT_STATUS_LIST: StaticSchema = ( + 16, + n0, + _SDSL, + 0, + (_me,), + ((SERVICE_DEPLOYMENT_STATUS, 0),), +) + +LIST_SERVICE_DEPLOYMENTS_INPUT: StaticSchema = ( + 18, + n0, + _LSDI, + {_sSI: _cLSDR, _smit: None}, + (_ser, _cl, _st, _cAr, _nT, _mR), + ( + (STRING, 1), + (STRING, 0), + (SERVICE_DEPLOYMENT_STATUS_LIST, 0), + (CREATED_AT, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + ), +) + +SERVICE_DEPLOYMENT_BRIEF: StaticSchema = ( + 18, + n0, + _SDB, + 0, + (_sDA, _sAe, _cA, _sA, _cAr, _fA, _tSRA, _st, _sR), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (STRING, 0), + (SERVICE_DEPLOYMENT_STATUS, 0), + (STRING, 0), + ), +) + +SERVICE_DEPLOYMENTS_BRIEF: StaticSchema = ( + 16, + n0, + _SDBe, + 0, + (_me,), + ((SERVICE_DEPLOYMENT_BRIEF, 0),), +) + +LIST_SERVICE_DEPLOYMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSDO, + {_sSI: _cLSDRo, _smith: None}, + (_sD, _nT), + ((SERVICE_DEPLOYMENTS_BRIEF, 0), (STRING, 0)), +) + +LIST_SERVICE_DEPLOYMENTS: StaticOperationSchema = ( + 23, + n0, + _LSD, + 0, + LIST_SERVICE_DEPLOYMENTS_INPUT, + LIST_SERVICE_DEPLOYMENTS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +LIST_SERVICES_INPUT: StaticSchema = ( + 18, + n0, + _LSI, + {_sSI: _cLSR, _smit: None}, + (_cl, _nT, _mR, _lT, _sSc, _rMT), + ( + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (LAUNCH_TYPE, 0), + (SCHEDULING_STRATEGY, 0), + (RESOURCE_MANAGEMENT_TYPE, 0), + ), +) + +LIST_SERVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _LSO, + {_sSI: _cLSRo, _smith: None}, + (_sAer, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_SERVICES: StaticOperationSchema = ( + 23, + n0, + _LSi, + 0, + LIST_SERVICES_INPUT, + LIST_SERVICES_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +RESOURCE_IDS: StaticSchema = (16, n0, _RI, 0, (_me,), ((STRING, 0),)) + +CONFLICT_EXCEPTION: StaticSchema = ( + 18, + n0, + _CEo, + {_s: _c}, + (_rIe, _mes), + ((RESOURCE_IDS, 0), (STRING, 0)), +) + +STOP_SERVICE_DEPLOYMENT_STOP_TYPE: StaticSchema = ( + 14, + n0, + _SSDST, + 0, + (_ABORT, _ROLLBACK), + ((-1, {_sV: _ABORT}), (-1, {_sV: _ROLLBACK})), +) + +STOP_SERVICE_DEPLOYMENT_INPUT: StaticSchema = ( + 18, + n0, + _SSDI, + {_sSI: _cSSDR, _smit: None}, + (_sDA, _sTto), + ((STRING, 1), (STOP_SERVICE_DEPLOYMENT_STOP_TYPE, 0)), +) + +STOP_SERVICE_DEPLOYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _SSDO, + {_sSI: _cSSDRo, _smith: None}, + (_sDA,), + ((STRING, 0),), +) + +STOP_SERVICE_DEPLOYMENT: StaticOperationSchema = ( + 23, + n0, + _SSDt, + 0, + STOP_SERVICE_DEPLOYMENT_INPUT, + STOP_SERVICE_DEPLOYMENT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CONFLICT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_DEPLOYMENT_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +UPDATE_EXPRESS_GATEWAY_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _UEGSI, + {_sSI: _cUEGSR, _smit: None}, + (_sAe, _eRA, _hCP, _pCri, _tRA, _nC, _cp, _memo, _cAp, _sTc, _tDA), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (EXPRESS_GATEWAY_CONTAINER, 0), + (STRING, 0), + (EXPRESS_GATEWAY_SERVICE_NETWORK_CONFIGURATION, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_CPU_ARCHITECTURE, 0), + (EXPRESS_GATEWAY_SCALING_TARGET, 0), + (STRING, 0), + ), +) + +UPDATED_EXPRESS_GATEWAY_SERVICE: StaticSchema = ( + 18, + n0, + _UEGS, + 0, + (_sAe, _cl, _sNe, _st, _tCa, _cAr, _uA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EXPRESS_GATEWAY_SERVICE_STATUS, 0), + (EXPRESS_GATEWAY_SERVICE_CONFIGURATION, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +UPDATE_EXPRESS_GATEWAY_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _UEGSO, + {_sSI: _cUEGSRo, _smith: None}, + (_ser,), + ((UPDATED_EXPRESS_GATEWAY_SERVICE, 0),), +) + +UPDATE_EXPRESS_GATEWAY_SERVICE: StaticOperationSchema = ( + 23, + n0, + _UEGSp, + 0, + UPDATE_EXPRESS_GATEWAY_SERVICE_INPUT, + UPDATE_EXPRESS_GATEWAY_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +UPDATE_SERVICE_INPUT: StaticSchema = ( + 18, + n0, + _USI, + {_sSI: _cUSR, _smit: None}, + ( + _cl, + _ser, + _dCe, + _tD, + _cPS, + _dC, + _aZR, + _nC, + _pC, + _pS, + _pV, + _fND, + _hCGPS, + _dCep, + _eEC, + _eECSMT, + _lB, + _pT, + _sRe, + _sCC, + _vCo, + _vLC, + _gCa, + _mo, + ), + ( + (STRING, 0), + (STRING, 1), + (BOXED_INTEGER, 0), + (STRING, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (DEPLOYMENT_CONFIGURATION, 0), + (AVAILABILITY_ZONE_REBALANCING, 0), + (NETWORK_CONFIGURATION, 0), + (PLACEMENT_CONSTRAINTS, 0), + (PLACEMENT_STRATEGIES, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (BOXED_INTEGER, 0), + (DEPLOYMENT_CONTROLLER, 0), + (BOXED_BOOLEAN, 0), + (BOXED_BOOLEAN, 0), + (LOAD_BALANCERS, 0), + (PROPAGATE_TAGS, 0), + (SERVICE_REGISTRIES, 0), + (SERVICE_CONNECT_CONFIGURATION, 0), + (SERVICE_VOLUME_CONFIGURATIONS, 0), + (VPC_LATTICE_CONFIGURATIONS, 0), + (GATEWAY_CONNECTOR_LIST, 0), + (MONITORING_CONFIGURATION, 0), + ), +) + +UPDATE_SERVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _USO, + {_sSI: _cUSRo, _smith: None}, + (_ser,), + ((SERVICE, 0),), +) + +UPDATE_SERVICE: StaticOperationSchema = ( + 23, + n0, + _US, + 0, + UPDATE_SERVICE_INPUT, + UPDATE_SERVICE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +TASK_SET_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _TSNFE, + {_s: _c}, + (_mes,), + ((STRING, 0),), +) + +UPDATE_SERVICE_PRIMARY_TASK_SET_INPUT: StaticSchema = ( + 18, + n0, + _USPTSI, + {_sSI: _cUSPTSR, _smit: None}, + (_cl, _ser, _pTS), + ((STRING, 1), (STRING, 1), (STRING, 1)), +) + +UPDATE_SERVICE_PRIMARY_TASK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _USPTSO, + {_sSI: _cUSPTSRo, _smith: None}, + (_tSas,), + ((TASK_SET, 0),), +) + +UPDATE_SERVICE_PRIMARY_TASK_SET: StaticOperationSchema = ( + 23, + n0, + _USPTS, + 0, + UPDATE_SERVICE_PRIMARY_TASK_SET_INPUT, + UPDATE_SERVICE_PRIMARY_TASK_SET_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + TASK_SET_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DESCRIBE_SERVICE_REVISIONS_INPUT: StaticSchema = ( + 18, + n0, + _DSRI, + {_sSI: _cDSRR, _smit: None}, + (_sRAe,), + ((STRING_LIST, 1),), +) + +CONTAINER_IMAGE: StaticSchema = ( + 18, + n0, + _CIont, + 0, + (_cNo, _iD, _im), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +CONTAINER_IMAGES: StaticSchema = (16, n0, _CIonta, 0, (_me,), ((CONTAINER_IMAGE, 0),)) + +MANAGED_RESOURCE_STATUS: StaticSchema = ( + 14, + n0, + _MRSa, + 0, + (_PROVISIONING, _ACTIVE, _DEPROVISIONING, _DELETED, _FAILED), + ( + (-1, {_sV: _PROVISIONING}), + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _DEPROVISIONING}), + (-1, {_sV: _DELETED}), + (-1, {_sV: _FAILED}), + ), +) + +MANAGED_APPLICATION_AUTO_SCALING_POLICY: StaticSchema = ( + 18, + n0, + _MAASP, + 0, + (_ar, _st, _sR, _uA, _pTo, _tVa, _met), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (STRING, 1), + (DOUBLE, {_smi: 0, _sm: None}), + (STRING, 1), + ), +) + +MANAGED_APPLICATION_AUTO_SCALING_POLICIES: StaticSchema = ( + 16, + n0, + _MAASPa, + 0, + (_me,), + ((MANAGED_APPLICATION_AUTO_SCALING_POLICY, 0),), +) + +MANAGED_SCALABLE_TARGET: StaticSchema = ( + 18, + n0, + _MST, + 0, + (_ar, _st, _sR, _uA, _mCi, _mCa), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (INTEGER, {_smi: 0, _sm: None}), + (INTEGER, {_smi: 0, _sm: None}), + ), +) + +MANAGED_AUTO_SCALING: StaticSchema = ( + 18, + n0, + _MAS, + 0, + (_sTca, _aASP), + ((MANAGED_SCALABLE_TARGET, 0), (MANAGED_APPLICATION_AUTO_SCALING_POLICIES, 0)), +) + +GATEWAY_CONNECTION_ALB_RESOURCES: StaticSchema = ( + 18, + n0, + _GCAR, + 0, + (_aCA, _lBA, _lBSGA, _lA, _lRA, _tLRAe, _tGA, _aTGA), + ( + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + ), +) + +GATEWAY_CONNECTION_ALB_RESOURCES_LIST: StaticSchema = ( + 16, + n0, + _GCARL, + 0, + (_me,), + ((GATEWAY_CONNECTION_ALB_RESOURCES, 0),), +) + +GATEWAY_CONNECTION_RESOURCES: StaticSchema = ( + 19, + n0, + _GCR, + 0, + (_hSA,), + ((GATEWAY_CONNECTION_ALB_RESOURCES_LIST, 0),), +) + +GATEWAY_CONNECTION: StaticSchema = ( + 18, + n0, + _GCat, + 0, + (_gA, _gRAa, _pN, _sUe, _aTc, _st, _res), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (ACCESS_TYPE, 0), + (GATEWAY_ROUTE_STATUS, 0), + (GATEWAY_CONNECTION_RESOURCES, 0), + ), +) + +GATEWAY_CONNECTION_LIST: StaticSchema = ( + 16, + n0, + _GCLa, + 0, + (_me,), + ((GATEWAY_CONNECTION, 0),), +) + +MANAGED_CERTIFICATE: StaticSchema = ( + 18, + n0, + _MCa, + 0, + (_ar, _st, _sR, _uA, _dNo), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (STRING, 1), + ), +) + +MANAGED_LISTENER: StaticSchema = ( + 18, + n0, + _ML, + 0, + (_ar, _st, _sR, _uA), + ((STRING, 0), (MANAGED_RESOURCE_STATUS, 1), (STRING, 0), (TIMESTAMP, 1)), +) + +MANAGED_LOAD_BALANCER: StaticSchema = ( + 18, + n0, + _MLB, + 0, + (_ar, _st, _sR, _uA, _sch, _sIu, _sGI), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (STRING, 1), + (STRING_LIST, 0), + (STRING_LIST, 0), + ), +) + +MANAGED_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _MSG, + 0, + (_ar, _st, _sR, _uA), + ((STRING, 0), (MANAGED_RESOURCE_STATUS, 1), (STRING, 0), (TIMESTAMP, 1)), +) + +MANAGED_SECURITY_GROUPS: StaticSchema = ( + 16, + n0, + _MSGa, + 0, + (_me,), + ((MANAGED_SECURITY_GROUP, 0),), +) + +MANAGED_LISTENER_RULE: StaticSchema = ( + 18, + n0, + _MLR, + 0, + (_ar, _st, _sR, _uA), + ((STRING, 0), (MANAGED_RESOURCE_STATUS, 1), (STRING, 0), (TIMESTAMP, 1)), +) + +MANAGED_TARGET_GROUP: StaticSchema = ( + 18, + n0, + _MTG, + 0, + (_ar, _st, _sR, _uA, _hCP, _hCPea, _po), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (STRING, 1), + (INTEGER, {_smi: 0, _sm: None}), + (INTEGER, {_smi: 0, _sm: None}), + ), +) + +MANAGED_TARGET_GROUPS: StaticSchema = ( + 16, + n0, + _MTGa, + 0, + (_me,), + ((MANAGED_TARGET_GROUP, 0),), +) + +MANAGED_INGRESS_PATH: StaticSchema = ( + 18, + n0, + _MIPa, + 0, + (_aTc, _end, _lBo, _lBSG, _ce, _lis, _ru, _tG), + ( + (ACCESS_TYPE, 1), + (STRING, 1), + (MANAGED_LOAD_BALANCER, 0), + (MANAGED_SECURITY_GROUPS, 0), + (MANAGED_CERTIFICATE, 0), + (MANAGED_LISTENER, 0), + (MANAGED_LISTENER_RULE, 0), + (MANAGED_TARGET_GROUPS, 0), + ), +) + +MANAGED_INGRESS_PATHS: StaticSchema = ( + 16, + n0, + _MIPan, + 0, + (_me,), + ((MANAGED_INGRESS_PATH, 0),), +) + +MANAGED_LOG_GROUP: StaticSchema = ( + 18, + n0, + _MLG, + 0, + (_ar, _st, _sR, _uA, _lGN), + ( + (STRING, 0), + (MANAGED_RESOURCE_STATUS, 1), + (STRING, 0), + (TIMESTAMP, 1), + (STRING, 1), + ), +) + +MANAGED_LOG_GROUPS: StaticSchema = (16, n0, _MLGa, 0, (_me,), ((MANAGED_LOG_GROUP, 0),)) + +MANAGED_METRIC_ALARM: StaticSchema = ( + 18, + n0, + _MMA, + 0, + (_ar, _st, _sR, _uA), + ((STRING, 0), (MANAGED_RESOURCE_STATUS, 1), (STRING, 0), (TIMESTAMP, 1)), +) + +MANAGED_METRIC_ALARMS: StaticSchema = ( + 16, + n0, + _MMAa, + 0, + (_me,), + ((MANAGED_METRIC_ALARM, 0),), +) + +ECS_MANAGED_RESOURCES: StaticSchema = ( + 18, + n0, + _ECSMR, + 0, + (_iP, _aSu, _mAe, _sSG, _lGo, _gCat), + ( + (MANAGED_INGRESS_PATHS, 0), + (MANAGED_AUTO_SCALING, 0), + (MANAGED_METRIC_ALARMS, 0), + (MANAGED_SECURITY_GROUPS, 0), + (MANAGED_LOG_GROUPS, 0), + (GATEWAY_CONNECTION_LIST, 0), + ), +) + +RUNTIME_PLATFORM_OVERRIDE: StaticSchema = (18, n0, _RPO, 0, (_cAp,), ((STRING, 0),)) + +SERVICE_REVISION_OVERRIDES: StaticSchema = ( + 18, + n0, + _SRO, + 0, + (_rPu,), + ((RUNTIME_PLATFORM_OVERRIDE, 0),), +) + +SERVICE_REVISION_LOAD_BALANCER: StaticSchema = ( + 18, + n0, + _SRLB, + 0, + (_tGA, _pLR), + ((STRING, 0), (STRING, 0)), +) + +SERVICE_REVISION_LOAD_BALANCERS: StaticSchema = ( + 16, + n0, + _SRLBe, + 0, + (_me,), + ((SERVICE_REVISION_LOAD_BALANCER, 0),), +) + +SERVICE_REVISION_VPC_LATTICE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SRVLC, + 0, + (_tGA, _pLR), + ((STRING, 0), (STRING, 0)), +) + +SERVICE_REVISION_VPC_LATTICE_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _SRVLCe, + 0, + (_me,), + ((SERVICE_REVISION_VPC_LATTICE_CONFIGURATION, 0),), +) + +RESOLVED_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RCe, + 0, + (_lB, _vLC), + ( + (SERVICE_REVISION_LOAD_BALANCERS, 0), + (SERVICE_REVISION_VPC_LATTICE_CONFIGURATIONS, 0), + ), +) + +SERVICE_REVISION: StaticSchema = ( + 18, + n0, + _SRerv, + 0, + ( + _sRA, + _sAe, + _cA, + _tD, + _cPS, + _lT, + _pV, + _pF, + _lB, + _sRe, + _nC, + _cIont, + _gDE, + _sCC, + _vCo, + _fES, + _cAr, + _vLC, + _rCes, + _eMR, + _ov, + _gCa, + _mo, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (LAUNCH_TYPE, 0), + (STRING, 0), + (STRING, 0), + (LOAD_BALANCERS, 0), + (SERVICE_REGISTRIES, 0), + (NETWORK_CONFIGURATION, 0), + (CONTAINER_IMAGES, 0), + (BOOLEAN, {_smi: False}), + (SERVICE_CONNECT_CONFIGURATION, 0), + (SERVICE_VOLUME_CONFIGURATIONS, 0), + (DEPLOYMENT_EPHEMERAL_STORAGE, 0), + (TIMESTAMP, 0), + (VPC_LATTICE_CONFIGURATIONS, 0), + (RESOLVED_CONFIGURATION, 0), + (ECS_MANAGED_RESOURCES, 0), + (SERVICE_REVISION_OVERRIDES, 0), + (GATEWAY_CONNECTOR_LIST, 0), + (MONITORING_CONFIGURATION, 0), + ), +) + +SERVICE_REVISIONS: StaticSchema = (16, n0, _SRervi, 0, (_me,), ((SERVICE_REVISION, 0),)) + +DESCRIBE_SERVICE_REVISIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRO, + {_sSI: _cDSRRo, _smith: None}, + (_sRer, _fa), + ((SERVICE_REVISIONS, 0), (FAILURES, 0)), +) + +DESCRIBE_SERVICE_REVISIONS: StaticOperationSchema = ( + 23, + n0, + _DSR, + 0, + DESCRIBE_SERVICE_REVISIONS_INPUT, + DESCRIBE_SERVICE_REVISIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sSI: _cTRR, _smit: None}, + (_rAes, _ta), + ((STRING, 1), (TAGS, 1)), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _cTRRo, _smith: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TR, + 0, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +DELETE_TASK_DEFINITIONS_INPUT: StaticSchema = ( + 18, + n0, + _DTDIel, + {_sSI: _cDTDRomam, _smit: None}, + (_tDa,), + ((STRING_LIST, 1),), +) + +TASK_DEFINITION_LIST: StaticSchema = (16, n0, _TDL, 0, (_me,), ((TASK_DEFINITION, 0),)) + +DELETE_TASK_DEFINITIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTDOel, + {_sSI: _cDTDRomama, _smith: None}, + (_tDa, _fa), + ((TASK_DEFINITION_LIST, 0), (FAILURES, 0)), +) + +DELETE_TASK_DEFINITIONS: StaticOperationSchema = ( + 23, + n0, + _DTDel, + 0, + DELETE_TASK_DEFINITIONS_INPUT, + DELETE_TASK_DEFINITIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +LIST_TASK_DEFINITIONS_INPUT: StaticSchema = ( + 18, + n0, + _LTDI, + {_sSI: _cLTDR, _smit: None}, + (_fP, _st, _so, _nT, _mR), + ( + (STRING, 0), + (TASK_DEFINITION_STATUS, 0), + (SORT_ORDER, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + ), +) + +LIST_TASK_DEFINITIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LTDO, + {_sSI: _cLTDRo, _smith: None}, + (_tDAa, _nT), + ((STRING_LIST, 0), (STRING, 0)), +) + +LIST_TASK_DEFINITIONS: StaticOperationSchema = ( + 23, + n0, + _LTD, + 0, + LIST_TASK_DEFINITIONS_INPUT, + LIST_TASK_DEFINITIONS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +REGISTER_TASK_DEFINITION_INPUT: StaticSchema = ( + 18, + n0, + _RTDI, + {_sSI: _cRTDR, _smit: None}, + ( + _fam, + _tRA, + _eRA, + _nMe, + _cD, + _vo, + _pC, + _rCeq, + _cp, + _memo, + _ta, + _pM, + _iM, + _pCr, + _iAn, + _eS, + _rPu, + _eFI, + _tEC, + ), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (NETWORK_MODE, 0), + (CONTAINER_DEFINITIONS, 1), + (VOLUME_LIST, 0), + (TASK_DEFINITION_PLACEMENT_CONSTRAINTS, 0), + (COMPATIBILITY_LIST, 0), + (STRING, 0), + (STRING, 0), + (TAGS, 0), + (PID_MODE, 0), + (IPC_MODE, 0), + (PROXY_CONFIGURATION, 0), + (INFERENCE_ACCELERATORS, 0), + (EPHEMERAL_STORAGE, 0), + (RUNTIME_PLATFORM, 0), + (BOXED_BOOLEAN, 0), + (TRUSTED_EXECUTION_CONFIGURATION, 0), + ), +) + +REGISTER_TASK_DEFINITION_OUTPUT: StaticSchema = ( + 18, + n0, + _RTDO, + {_sSI: _cRTDRo, _smith: None}, + (_tD, _ta), + ((TASK_DEFINITION, 0), (TAGS, 0)), +) + +REGISTER_TASK_DEFINITION: StaticOperationSchema = ( + 23, + n0, + _RTD, + 0, + REGISTER_TASK_DEFINITION_INPUT, + REGISTER_TASK_DEFINITION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +TASK_FIELD: StaticSchema = (14, n0, _TF, 0, (_TAGS,), ((-1, {_sV: _TAGS}),)) + +TASK_FIELD_LIST: StaticSchema = (16, n0, _TFL, 0, (_me,), ((TASK_FIELD, 0),)) + +DESCRIBE_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DTI, + {_sSI: _cDTR, _smit: None}, + (_cl, _task, _incl), + ((STRING, 0), (STRING_LIST, 1), (TASK_FIELD_LIST, 0)), +) + +CONNECTIVITY: StaticSchema = ( + 14, + n0, + _Con, + 0, + (_CONNECTED, _DISCONNECTED), + ((-1, {_sV: _CONNECTED}), (-1, {_sV: _DISCONNECTED})), +) + +GPU_IDS: StaticSchema = (16, n0, _GI, 0, (_me,), ((STRING, 0),)) + +HEALTH_STATUS: StaticSchema = ( + 14, + n0, + _HS, + 0, + (_HEALTHY, _UNHEALTHY, _UNKNOWN), + ((-1, {_sV: _HEALTHY}), (-1, {_sV: _UNHEALTHY}), (-1, {_sV: _UNKNOWN})), +) + +MANAGED_AGENT: StaticSchema = ( + 18, + n0, + _MA, + 0, + (_lSA, _na, _re, _lSa), + ((TIMESTAMP, 0), (MANAGED_AGENT_NAME, 0), (STRING, 0), (STRING, 0)), +) + +MANAGED_AGENTS: StaticSchema = (16, n0, _MAa, 0, (_me,), ((MANAGED_AGENT, 0),)) + +NETWORK_INTERFACE: StaticSchema = ( + 18, + n0, + _NI, + 0, + (_aI, _pIA, _iAp), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +NETWORK_INTERFACES: StaticSchema = (16, n0, _NIe, 0, (_me,), ((NETWORK_INTERFACE, 0),)) + +NEURON_DEVICE_IDS: StaticSchema = (16, n0, _NDI, 0, (_me,), ((STRING, 0),)) + +CONTAINER: StaticSchema = ( + 18, + n0, + _Cont, + 0, + ( + _cAo, + _tA, + _na, + _im, + _iD, + _rI, + _lSa, + _eC, + _re, + _nB, + _nI, + _hS, + _mA, + _cp, + _memo, + _mRe, + _gIp, + _nDI, + _gSS, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (STRING, 0), + (NETWORK_BINDINGS, 0), + (NETWORK_INTERFACES, 0), + (HEALTH_STATUS, 0), + (MANAGED_AGENTS, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (GPU_IDS, 0), + (NEURON_DEVICE_IDS, 0), + (SHARING_STRATEGY, 0), + ), +) + +CONTAINERS: StaticSchema = (16, n0, _Conta, 0, (_me,), ((CONTAINER, 0),)) + +TASK_EPHEMERAL_STORAGE: StaticSchema = ( + 18, + n0, + _TES, + 0, + (_sIGB, _kKI), + ((INTEGER, {_smi: 0}), (STRING, 0)), +) + +CONTAINER_OVERRIDE: StaticSchema = ( + 18, + n0, + _CO, + 0, + (_na, _com, _env, _eF, _cp, _memo, _mRe, _rRes), + ( + (STRING, 0), + (STRING_LIST, 0), + (ENVIRONMENT_VARIABLES, 0), + (ENVIRONMENT_FILES, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (RESOURCE_REQUIREMENTS, 0), + ), +) + +CONTAINER_OVERRIDES: StaticSchema = ( + 16, + n0, + _COo, + 0, + (_me,), + ((CONTAINER_OVERRIDE, 0),), +) + +INFERENCE_ACCELERATOR_OVERRIDE: StaticSchema = ( + 18, + n0, + _IAO, + 0, + (_dNe, _dT), + ((STRING, 0), (STRING, 0)), +) + +INFERENCE_ACCELERATOR_OVERRIDES: StaticSchema = ( + 16, + n0, + _IAOn, + 0, + (_me,), + ((INFERENCE_ACCELERATOR_OVERRIDE, 0),), +) + +TASK_OVERRIDE: StaticSchema = ( + 18, + n0, + _TOa, + 0, + (_cO, _cp, _iAO, _eRA, _memo, _tRA, _eS), + ( + (CONTAINER_OVERRIDES, 0), + (STRING, 0), + (INFERENCE_ACCELERATOR_OVERRIDES, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EPHEMERAL_STORAGE, 0), + ), +) + +TASK_STOP_CODE: StaticSchema = ( + 14, + n0, + _TSC, + 0, + (_TFTS, _ECE, _UI, _SSI, _SI, _TN, _IH), + ( + (-1, {_sV: _TFTSa}), + (-1, {_sV: _ECEs}), + (-1, {_sV: _UIs}), + (-1, {_sV: _SSIe}), + (-1, {_sV: _SIp}), + (-1, {_sV: _TNe}), + (-1, {_sV: _IHn}), + ), +) + +ATTESTATION_POLICY_STATUS: StaticSchema = ( + 14, + n0, + _APS, + 0, + (_CONFIGURED,), + ((-1, {_sV: _CONFIGURED}),), +) + +TRUSTED_EXECUTION_SUMMARY: StaticSchema = ( + 18, + n0, + _TESr, + 0, + (_iMs, _aPS), + ((ISOLATION_MODE, 1), (ATTESTATION_POLICY_STATUS, 0)), +) + +TASK: StaticSchema = ( + 18, + n0, + _Tas, + 0, + ( + _at, + _att, + _aZ, + _cPN, + _cA, + _conn, + _cAon, + _cIA, + _cont, + _cp, + _cAr, + _dS, + _eEC, + _eSA, + _gro, + _hS, + _iAn, + _lSa, + _lT, + _memo, + _ov, + _pV, + _pF, + _pSA, + _pSAu, + _sA, + _sB, + _sCto, + _sAt, + _sRt, + _sAto, + _ta, + _tA, + _tDA, + _ve, + _eS, + _fES, + _tES, + ), + ( + (ATTACHMENTS, 0), + (ATTRIBUTES, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CONNECTIVITY, 0), + (TIMESTAMP, 0), + (STRING, 0), + (CONTAINERS, 0), + (STRING, 0), + (TIMESTAMP, 0), + (STRING, 0), + (BOOLEAN, {_smi: False}), + (TIMESTAMP, 0), + (STRING, 0), + (HEALTH_STATUS, 0), + (INFERENCE_ACCELERATORS, 0), + (STRING, 0), + (LAUNCH_TYPE, 0), + (STRING, 0), + (TASK_OVERRIDE, 0), + (STRING, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (STRING, 0), + (TASK_STOP_CODE, 0), + (TIMESTAMP, 0), + (STRING, 0), + (TIMESTAMP, 0), + (TAGS, 0), + (STRING, 0), + (STRING, 0), + (LONG, {_smi: 0}), + (EPHEMERAL_STORAGE, 0), + (TASK_EPHEMERAL_STORAGE, 0), + (TRUSTED_EXECUTION_SUMMARY, 0), + ), +) + +TASKS: StaticSchema = (16, n0, _Task, 0, (_me,), ((TASK, 0),)) + +DESCRIBE_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTO, + {_sSI: _cDTRo, _smith: None}, + (_task, _fa), + ((TASKS, 0), (FAILURES, 0)), +) + +DESCRIBE_TASKS: StaticOperationSchema = ( + 23, + n0, + _DT, + 0, + DESCRIBE_TASKS_INPUT, + DESCRIBE_TASKS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +GET_TASK_PROTECTION_INPUT: StaticSchema = ( + 18, + n0, + _GTPI, + {_sSI: _cGTPR, _smit: None}, + (_cl, _task), + ((STRING, 1), (STRING_LIST, 0)), +) + +PROTECTED_TASK: StaticSchema = ( + 18, + n0, + _PTr, + 0, + (_tA, _pE, _eD), + ((STRING, 0), (BOOLEAN, {_smi: False}), (TIMESTAMP, 0)), +) + +PROTECTED_TASKS: StaticSchema = (16, n0, _PTro, 0, (_me,), ((PROTECTED_TASK, 0),)) + +GET_TASK_PROTECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GTPO, + {_sSI: _cGTPRo, _smith: None}, + (_pTr, _fa), + ((PROTECTED_TASKS, 0), (FAILURES, 0)), +) + +GET_TASK_PROTECTION: StaticOperationSchema = ( + 23, + n0, + _GTP, + 0, + GET_TASK_PROTECTION_INPUT, + GET_TASK_PROTECTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +BLOCKED_EXCEPTION: StaticSchema = (18, n0, _BE, {_s: _c}, (_mes,), ((STRING, 0),)) + +TASK_MANAGED_EBS_VOLUME_TERMINATION_POLICY: StaticSchema = ( + 18, + n0, + _TMEBSVTP, + 0, + (_dOT,), + ((BOXED_BOOLEAN, 1),), +) + +TASK_MANAGED_EBS_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TMEBSVC, + 0, + (_enc, _kKI, _vT, _sIGB, _sIn, _vIR, _io, _thr, _tS, _rA, _tP, _fT), + ( + (BOXED_BOOLEAN, 0), + (EBSKMS_KEY_ID, 0), + (EBS_VOLUME_TYPE, 0), + (BOXED_INTEGER, 0), + (EBS_SNAPSHOT_ID, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (BOXED_INTEGER, 0), + (EBS_TAG_SPECIFICATIONS, 0), + (IAM_ROLE_ARN, 1), + (TASK_MANAGED_EBS_VOLUME_TERMINATION_POLICY, 0), + (TASK_FILESYSTEM_TYPE, 0), + ), +) + +TASK_VOLUME_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TVC, + 0, + (_na, _mEBSV), + ((ECS_VOLUME_NAME, 1), (TASK_MANAGED_EBS_VOLUME_CONFIGURATION, 0)), +) + +TASK_VOLUME_CONFIGURATIONS: StaticSchema = ( + 16, + n0, + _TVCa, + 0, + (_me,), + ((TASK_VOLUME_CONFIGURATION, 0),), +) + +RUN_TASK_INPUT: StaticSchema = ( + 18, + n0, + _RTI, + {_sSI: _cRTR, _smit: None}, + ( + _cPS, + _cl, + _cou, + _eECSMT, + _eEC, + _gro, + _lT, + _nC, + _ov, + _pC, + _pS, + _pV, + _pT, + _rIef, + _sB, + _ta, + _tD, + _cT, + _vCo, + ), + ( + (CAPACITY_PROVIDER_STRATEGY, 0), + (STRING, 0), + (BOXED_INTEGER, 0), + (BOOLEAN, {_smi: False}), + (BOOLEAN, {_smi: False}), + (STRING, 0), + (LAUNCH_TYPE, 0), + (NETWORK_CONFIGURATION, 0), + (TASK_OVERRIDE, 0), + (PLACEMENT_CONSTRAINTS, 0), + (PLACEMENT_STRATEGIES, 0), + (STRING, 0), + (PROPAGATE_TAGS, 0), + (STRING, 0), + (STRING, 0), + (TAGS, 0), + (STRING, 1), + (STRING, 2), + (TASK_VOLUME_CONFIGURATIONS, 0), + ), +) + +RUN_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _RTO, + {_sSI: _cRTRo, _smith: None}, + (_task, _fa), + ((TASKS, 0), (FAILURES, 0)), +) + +RUN_TASK: StaticOperationSchema = ( + 23, + n0, + _RTu, + 0, + RUN_TASK_INPUT, + RUN_TASK_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + BLOCKED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + CONFLICT_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +START_TASK_INPUT: StaticSchema = ( + 18, + n0, + _STI, + {_sSI: _cSTR, _smit: None}, + (_cl, _cIon, _eECSMT, _eEC, _gro, _nC, _ov, _pT, _rIef, _sB, _ta, _tD, _vCo), + ( + (STRING, 0), + (STRING_LIST, 1), + (BOOLEAN, {_smi: False}), + (BOOLEAN, {_smi: False}), + (STRING, 0), + (NETWORK_CONFIGURATION, 0), + (TASK_OVERRIDE, 0), + (PROPAGATE_TAGS, 0), + (STRING, 0), + (STRING, 0), + (TAGS, 0), + (STRING, 1), + (TASK_VOLUME_CONFIGURATIONS, 0), + ), +) + +START_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _STO, + {_sSI: _cSTRo, _smith: None}, + (_task, _fa), + ((TASKS, 0), (FAILURES, 0)), +) + +START_TASK: StaticOperationSchema = ( + 23, + n0, + _STt, + 0, + START_TASK_INPUT, + START_TASK_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +STOP_TASK_INPUT: StaticSchema = ( + 18, + n0, + _STIt, + {_sSI: _cSTRom, _smit: None}, + (_cl, _tas, _re), + ((STRING, 0), (STRING, 1), (STRING, 0)), +) + +STOP_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _STOt, + {_sSI: _cSTRoma, _smith: None}, + (_tas,), + ((TASK, 0),), +) + +STOP_TASK: StaticOperationSchema = ( + 23, + n0, + _STto, + 0, + STOP_TASK_INPUT, + STOP_TASK_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +UPDATE_TASK_PROTECTION_INPUT: StaticSchema = ( + 18, + n0, + _UTPI, + {_sSI: _cUTPR, _smit: None}, + (_cl, _task, _pE, _eIM), + ( + (STRING, 1), + (STRING_LIST, 1), + (BOOLEAN, {_smi: False, _sm: None}), + (BOXED_INTEGER, 0), + ), +) + +UPDATE_TASK_PROTECTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UTPO, + {_sSI: _cUTPRo, _smith: None}, + (_pTr, _fa), + ((PROTECTED_TASKS, 0), (FAILURES, 0)), +) + +UPDATE_TASK_PROTECTION: StaticOperationSchema = ( + 23, + n0, + _UTP, + 0, + UPDATE_TASK_PROTECTION_INPUT, + UPDATE_TASK_PROTECTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +CREATE_TASK_SET_INPUT: StaticSchema = ( + 18, + n0, + _CTSI, + {_sSI: _cCTSR, _smit: None}, + (_ser, _cl, _eI, _tD, _nC, _lB, _sRe, _lT, _cPS, _pV, _sca, _cT, _ta), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (NETWORK_CONFIGURATION, 0), + (LOAD_BALANCERS, 0), + (SERVICE_REGISTRIES, 0), + (LAUNCH_TYPE, 0), + (CAPACITY_PROVIDER_STRATEGY, 0), + (STRING, 0), + (SCALE, 0), + (STRING, 0), + (TAGS, 0), + ), +) + +CREATE_TASK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _CTSO, + {_sSI: _cCTSRo, _smith: None}, + (_tSas,), + ((TASK_SET, 0),), +) + +CREATE_TASK_SET: StaticOperationSchema = ( + 23, + n0, + _CTS, + 0, + CREATE_TASK_SET_INPUT, + CREATE_TASK_SET_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NAMESPACE_NOT_FOUND_EXCEPTION, + PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION, + PLATFORM_UNKNOWN_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +DELETE_TASK_SET_INPUT: StaticSchema = ( + 18, + n0, + _DTSI, + {_sSI: _cDTSR, _smit: None}, + (_cl, _ser, _tSas, _fo), + ((STRING, 1), (STRING, 1), (STRING, 1), (BOXED_BOOLEAN, 0)), +) + +DELETE_TASK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _DTSO, + {_sSI: _cDTSRo, _smith: None}, + (_tSas,), + ((TASK_SET, 0),), +) + +DELETE_TASK_SET: StaticOperationSchema = ( + 23, + n0, + _DTS, + 0, + DELETE_TASK_SET_INPUT, + DELETE_TASK_SET_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + TASK_SET_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +TASK_SET_FIELD: StaticSchema = (14, n0, _TSF, 0, (_TAGS,), ((-1, {_sV: _TAGS}),)) + +TASK_SET_FIELD_LIST: StaticSchema = (16, n0, _TSFL, 0, (_me,), ((TASK_SET_FIELD, 0),)) + +DESCRIBE_TASK_SETS_INPUT: StaticSchema = ( + 18, + n0, + _DTSIe, + {_sSI: _cDTSRom, _smit: None}, + (_cl, _ser, _tSa, _incl), + ((STRING, 1), (STRING, 1), (STRING_LIST, 0), (TASK_SET_FIELD_LIST, 0)), +) + +DESCRIBE_TASK_SETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DTSOe, + {_sSI: _cDTSRoma, _smith: None}, + (_tSa, _fa), + ((TASK_SETS, 0), (FAILURES, 0)), +) + +DESCRIBE_TASK_SETS: StaticOperationSchema = ( + 23, + n0, + _DTSe, + 0, + DESCRIBE_TASK_SETS_INPUT, + DESCRIBE_TASK_SETS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +UPDATE_TASK_SET_INPUT: StaticSchema = ( + 18, + n0, + _UTSI, + {_sSI: _cUTSR, _smit: None}, + (_cl, _ser, _tSas, _sca), + ((STRING, 1), (STRING, 1), (STRING, 1), (SCALE, 1)), +) + +UPDATE_TASK_SET_OUTPUT: StaticSchema = ( + 18, + n0, + _UTSO, + {_sSI: _cUTSRo, _smith: None}, + (_tSas,), + ((TASK_SET, 0),), +) + +UPDATE_TASK_SET: StaticOperationSchema = ( + 23, + n0, + _UTS, + 0, + UPDATE_TASK_SET_INPUT, + UPDATE_TASK_SET_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVER_EXCEPTION, + SERVICE_NOT_ACTIVE_EXCEPTION, + SERVICE_NOT_FOUND_EXCEPTION, + TASK_SET_NOT_FOUND_EXCEPTION, + UNSUPPORTED_FEATURE_EXCEPTION, + ), +) + +TAG_KEYS: StaticSchema = (16, n0, _TKa, 0, (_me,), ((TAG_KEY, 0),)) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sSI: _cURR, _smit: None}, + (_rAes, _tK), + ((STRING, 1), (TAG_KEYS, 1)), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _cURRo, _smith: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + 0, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + CLIENT_EXCEPTION, + CLUSTER_NOT_FOUND_EXCEPTION, + INVALID_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVER_EXCEPTION, + ), +) + +AMAZON_EC2_CONTAINER_SERVICE_V20141113: StaticSchema = ( + 21, + n0, + _AECCSV, + { + _a__: None, + _awsa: MappingProxyType( + { + "sdkId": "ECS", + "arnNamespace": "ecs", + "cloudFormationName": "ECS", + "cloudTrailEventSource": "ecs.amazonaws.com", + "endpointPrefix": "ecs", + "cloudWatchNamespace": "AWS/ECS", + } + ), + _awsau: MappingProxyType({"name": "ecs"}), + _sNm: MappingProxyType({"uri": "http://ecs.amazonaws.com/doc/2014-11-13/"}), + }, +) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/__init__.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/__init__.py new file mode 100644 index 00000000..80882b68 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncECSClient + from .config import AsyncECSConfig + +__all__ = ["AsyncECSClient", "AsyncECSConfig"] + +_EXPORTS = {"AsyncECSClient": ".client", "AsyncECSConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/client.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/client.py new file mode 100644 index 00000000..3e7bbe57 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/client.py @@ -0,0 +1,3191 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncECSConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + ContinueServiceDeploymentInput, + ContinueServiceDeploymentOutput, + CreateCapacityProviderInput, + CreateCapacityProviderOutput, + CreateClusterInput, + CreateClusterOutput, + CreateDaemonInput, + CreateDaemonOutput, + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + CreateGatewayInput, + CreateGatewayOutput, + CreateServiceInput, + CreateServiceOutput, + CreateTaskSetInput, + CreateTaskSetOutput, + DeleteAccountSettingInput, + DeleteAccountSettingOutput, + DeleteAttributesInput, + DeleteAttributesOutput, + DeleteCapacityProviderInput, + DeleteCapacityProviderOutput, + DeleteClusterInput, + DeleteClusterOutput, + DeleteDaemonInput, + DeleteDaemonOutput, + DeleteDaemonTaskDefinitionInput, + DeleteDaemonTaskDefinitionOutput, + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + DeleteGatewayInput, + DeleteGatewayOutput, + DeleteServiceInput, + DeleteServiceOutput, + DeleteTaskDefinitionsInput, + DeleteTaskDefinitionsOutput, + DeleteTaskSetInput, + DeleteTaskSetOutput, + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + DeregisterTaskDefinitionInput, + DeregisterTaskDefinitionOutput, + DescribeCapacityProvidersInput, + DescribeCapacityProvidersOutput, + DescribeClustersInput, + DescribeClustersOutput, + DescribeContainerInstancesInput, + DescribeContainerInstancesOutput, + DescribeDaemonDeploymentsInput, + DescribeDaemonDeploymentsOutput, + DescribeDaemonInput, + DescribeDaemonOutput, + DescribeDaemonRevisionsInput, + DescribeDaemonRevisionsOutput, + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + DescribeGatewayInput, + DescribeGatewayOutput, + DescribeGatewayResourcesInput, + DescribeGatewayResourcesOutput, + DescribeGatewayRouteInput, + DescribeGatewayRouteOutput, + DescribeServiceDeploymentsInput, + DescribeServiceDeploymentsOutput, + DescribeServiceRevisionsInput, + DescribeServiceRevisionsOutput, + DescribeServicesInput, + DescribeServicesOutput, + DescribeTaskDefinitionInput, + DescribeTaskDefinitionOutput, + DescribeTaskSetsInput, + DescribeTaskSetsOutput, + DescribeTasksInput, + DescribeTasksOutput, + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + DiscoverPollEndpointInput, + DiscoverPollEndpointOutput, + ExecuteCommandInput, + ExecuteCommandOutput, + GetTaskProtectionInput, + GetTaskProtectionOutput, + ListAccountSettingsInput, + ListAccountSettingsOutput, + ListAttributesInput, + ListAttributesOutput, + ListClustersInput, + ListClustersOutput, + ListContainerInstancesInput, + ListContainerInstancesOutput, + ListDaemonDeploymentsInput, + ListDaemonDeploymentsOutput, + ListDaemonTaskDefinitionsInput, + ListDaemonTaskDefinitionsOutput, + ListDaemonsInput, + ListDaemonsOutput, + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + ListGatewayRoutesInput, + ListGatewayRoutesOutput, + ListGatewaysInput, + ListGatewaysOutput, + ListServiceDeploymentsInput, + ListServiceDeploymentsOutput, + ListServicesByNamespaceInput, + ListServicesByNamespaceOutput, + ListServicesInput, + ListServicesOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTaskDefinitionFamiliesInput, + ListTaskDefinitionFamiliesOutput, + ListTaskDefinitionsInput, + ListTaskDefinitionsOutput, + ListTasksInput, + ListTasksOutput, + PutAccountSettingDefaultInput, + PutAccountSettingDefaultOutput, + PutAccountSettingInput, + PutAccountSettingOutput, + PutAttributesInput, + PutAttributesOutput, + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + RegisterContainerInstanceInput, + RegisterContainerInstanceOutput, + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + RegisterTaskDefinitionInput, + RegisterTaskDefinitionOutput, + RunTaskInput, + RunTaskOutput, + StartTaskInput, + StartTaskOutput, + StopServiceDeploymentInput, + StopServiceDeploymentOutput, + StopTaskInput, + StopTaskOutput, + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + SubmitContainerStateChangeInput, + SubmitContainerStateChangeOutput, + SubmitTaskStateChangeInput, + SubmitTaskStateChangeOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateCapacityProviderInput, + UpdateCapacityProviderOutput, + UpdateClusterInput, + UpdateClusterOutput, + UpdateClusterSettingsInput, + UpdateClusterSettingsOutput, + UpdateContainerAgentInput, + UpdateContainerAgentOutput, + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + UpdateDaemonInput, + UpdateDaemonOutput, + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + UpdateGatewayInput, + UpdateGatewayOutput, + UpdateServiceInput, + UpdateServiceOutput, + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + UpdateTaskProtectionInput, + UpdateTaskProtectionOutput, + UpdateTaskSetInput, + UpdateTaskSetOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncECSClient(AsyncClient[AsyncECSConfig]): + """ + 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. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def associate_gateway_with_cluster( + self, + input: AssociateGatewayWithClusterInput, + plugins: list[Plugin] | None = None, + ) -> AssociateGatewayWithClusterOutput: + """ + Associates a gateway with an Amazon ECS cluster. After a cluster is + associated with a gateway, services in that cluster can use the gateway + for ingress. No changes take effect until you update a service in the + cluster to use the gateway. A single cluster can be associated with up + to 5 gateways. + + Args: + input: + An instance of `AssociateGatewayWithClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateGatewayWithClusterOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_GATEWAY_WITH_CLUSTER, [], plugins + ) + + async def continue_service_deployment( + self, input: ContinueServiceDeploymentInput, plugins: list[Plugin] | None = None + ) -> ContinueServiceDeploymentOutput: + """ + Continues or rolls back an Amazon ECS service deployment that is paused + at a lifecycle hook. + + When a service deployment reaches a lifecycle stage that has a `PAUSE` + hook configured, the deployment pauses and waits for an explicit action. + Use this API to either continue the deployment to the next stage or roll + back to the previous service revision. + + To find the `hookId` of the paused hook, call + [DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html) + and inspect the `lifecycleHookDetails` field. + + For more information, see [Continuing Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/continue-service-deployment.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ContinueServiceDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ContinueServiceDeploymentOutput`. + """ + return await self._invoke( + input, _models.CONTINUE_SERVICE_DEPLOYMENT, [], plugins + ) + + async def create_capacity_provider( + self, input: CreateCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> CreateCapacityProviderOutput: + """ + Creates a capacity provider. Capacity providers are associated with a + cluster and are used in capacity provider strategies to facilitate + cluster auto scaling. You can create capacity providers for Amazon ECS + Managed Instances and EC2 instances. Fargate has the predefined + `FARGATE` and `FARGATE_SPOT` capacity providers. + + Args: + input: + An instance of `CreateCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityProviderOutput`. + """ + return await self._invoke(input, _models.CREATE_CAPACITY_PROVIDER, [], plugins) + + async def create_cluster( + self, input: CreateClusterInput, plugins: list[Plugin] | None = None + ) -> CreateClusterOutput: + """ + 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. + + Note: + When you call the + [CreateCluster](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html) + 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `CreateClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClusterOutput`. + """ + return await self._invoke(input, _models.CREATE_CLUSTER, [], plugins) + + async def create_daemon( + self, input: CreateDaemonInput, plugins: list[Plugin] | None = None + ) -> CreateDaemonOutput: + """ + Creates a new daemon in the specified cluster and capacity providers. A + daemon deploys cross-cutting software agents such as security + monitoring, telemetry, and logging independently across your Amazon ECS + infrastructure. + + Amazon ECS deploys exactly one daemon task on each container instance of + the specified capacity providers. When a container instance registers + with the cluster, Amazon ECS automatically starts daemon tasks. Amazon + ECS starts a daemon task before scheduling other tasks. + + Daemons are essential for instance health - if a daemon task stops, + Amazon ECS automatically drains and replaces that container instance. + + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `CreateDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDaemonOutput`. + """ + return await self._invoke(input, _models.CREATE_DAEMON, [], plugins) + + async def create_express_gateway_service( + self, + input: CreateExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> CreateExpressGatewayServiceOutput: + """ + Creates an Express service that simplifies deploying containerized web + applications on Amazon ECS with managed Amazon Web Services + infrastructure. This operation provisions and configures Application + Load Balancers, target groups, security groups, and auto-scaling + policies automatically. + + Specify a primary container configuration with your application image + and basic settings. Amazon ECS creates the necessary Amazon Web Services + resources for traffic distribution, health monitoring, network access + control, and capacity management. + + Provide an execution role for task operations and an infrastructure role + for managing Amazon Web Services resources on your behalf. + + Args: + input: + An instance of `CreateExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateExpressGatewayServiceOutput`. + """ + return await self._invoke( + input, _models.CREATE_EXPRESS_GATEWAY_SERVICE, [], plugins + ) + + async def create_gateway( + self, input: CreateGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateGatewayOutput: + """ + Creates a gateway. A gateway defines and dynamically manages ingress + paths for your Amazon ECS services, handling traffic routing and + infrastructure across multiple services while optimizing infrastructure + usage. `CreateGateway` is a synchronous operation and the gateway is + returned with a status of `ACTIVE`. The load balancers and other + infrastructure that a gateway manages aren't created until a service in + an associated cluster begins using the gateway. + + To use this operation, you must have the `iam:PassRole` permission for + the infrastructure role that you specify in `infrastructureRoleArn`. + + Args: + input: + An instance of `CreateGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGatewayOutput`. + """ + return await self._invoke(input, _models.CREATE_GATEWAY, [], plugins) + + async def create_service( + self, input: CreateServiceInput, plugins: list[Plugin] | None = None + ) -> CreateServiceOutput: + """ + Runs and maintains your desired number of tasks from a specified task + definition. If the number of tasks running in a service drops below the + `desiredCount`, Amazon ECS runs another copy of the task in the + specified cluster. To update an existing service, use + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + In addition to maintaining the desired count of tasks in your service, + you can optionally run your service behind one or more load balancers. + The load balancers distribute traffic across the tasks that are + associated with the service. For more information, see [Service load + balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. `volumeConfigurations` is + only supported for REPLICA service and not DAEMON service. For more + information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + Tasks for services that don't use a load balancer are considered + healthy if they're in the `RUNNING` state. Tasks for services that use + a load balancer are considered healthy if they're in the `RUNNING` + state and are reported as healthy by the load balancer. + + There are two service scheduler strategies available: + + - `REPLICA` - The replica scheduling strategy places and maintains your + desired number of tasks across your cluster. By default, the service + scheduler spreads tasks across Availability Zones. You can use task + placement strategies and constraints to customize task placement + decisions. For more information, see [Service scheduler + concepts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `DAEMON` - The daemon scheduling strategy deploys exactly one task on + each active container instance that meets all of the task placement + constraints that you specify in your cluster. The service scheduler + also evaluates the task placement constraints for running tasks. It + also stops tasks that don't meet the placement constraints. When + using this strategy, you don't need to specify a desired number of + tasks, a task placement strategy, or use Service Auto Scaling + policies. For more information, see [Amazon ECS + services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The deployment controller is the mechanism that determines how tasks are + deployed for your service. The valid options are: + + - ECS + + When you create a service which uses the `ECS` deployment controller, + you can choose between the following deployment strategies (which you + can set in the "`strategy`" field in "`deploymentConfiguration`"): : + + - `ROLLING`: When you create a service which uses the *rolling update* + (`ROLLING`) deployment strategy, the Amazon ECS service scheduler + replaces the currently running tasks with new tasks. The number of + tasks that Amazon ECS adds or removes from the service during a + rolling update is controlled by the service deployment + configuration. For more information, see [Deploy Amazon ECS services + by replacing + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Rolling update deployments are best suited for the following + scenarios: + + - Gradual service updates: You need to update your service + incrementally without taking the entire service offline at once. + + - Limited resource requirements: You want to avoid the additional + resource costs of running two complete environments simultaneously + (as required by blue/green deployments). + + - Acceptable deployment time: Your application can tolerate a longer + deployment process, as rolling updates replace tasks one by one. + + - No need for instant roll back: Your service can tolerate a + rollback process that takes minutes rather than seconds. + + - Simple deployment process: You prefer a straightforward deployment + approach without the complexity of managing multiple environments, + target groups, and listeners. + + - No load balancer requirement: Your service doesn't use or require + a load balancer, Application Load Balancer, Network Load Balancer, + or Service Connect (which are required for blue/green + deployments). + + - Stateful applications: Your application maintains state that makes + it difficult to run two parallel environments. + + - Cost sensitivity: You want to minimize deployment costs by not + running duplicate environments during deployment. + + Rolling updates are the default deployment strategy for services and + provide a balance between deployment safety and resource efficiency + for many common application scenarios. + + - `BLUE_GREEN`: A *blue/green* deployment strategy (`BLUE_GREEN`) is a + release methodology that reduces downtime and risk by running two + identical production environments called blue and green. With Amazon + ECS blue/green deployments, you can validate new service revisions + before directing production traffic to them. This approach provides + a safer way to deploy changes with the ability to quickly roll back + if needed. For more information, see [Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-blue-green.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Amazon ECS blue/green deployments are best suited for the following + scenarios: + + - Service validation: When you need to validate new service + revisions before directing production traffic to them + + - Zero downtime: When your service requires zero-downtime + deployments + + - Instant roll back: When you need the ability to quickly roll back + if issues are detected + + - Load balancer requirement: When your service uses Application Load + Balancer, Network Load Balancer, or Service Connect + + - `LINEAR`: A *linear* deployment strategy (`LINEAR`) gradually shifts + traffic from the current production environment to a new environment + in equal percentage increments. With Amazon ECS linear deployments, + you can control the pace of traffic shifting and validate new + service revisions with increasing amounts of production traffic. + + Linear deployments are best suited for the following scenarios: + + - Gradual validation: When you want to gradually validate your new + service version with increasing traffic + + - Performance monitoring: When you need time to monitor metrics and + performance during the deployment + + - Risk minimization: When you want to minimize risk by exposing the + new version to production traffic incrementally + + - Load balancer requirement: When your service uses Application Load + Balancer or Service Connect + + - `CANARY`: A *canary* deployment strategy (`CANARY`) shifts a small + percentage of traffic to the new service revision first, then shifts + the remaining traffic all at once after a specified time period. + This allows you to test the new version with a subset of users + before full deployment. + + Canary deployments are best suited for the following scenarios: + + - Feature testing: When you want to test new features with a small + subset of users before full rollout + + - Production validation: When you need to validate performance and + functionality with real production traffic + + - Blast radius control: When you want to minimize blast radius if + issues are discovered in the new version + + - Load balancer requirement: When your service uses Application Load + Balancer or Service Connect + + - External + + Use a third-party deployment controller. + + - Blue/green deployment (powered by CodeDeploy) + + CodeDeploy installs an updated version of the application as a new + replacement task set and reroutes production traffic from the original + application task set to the replacement task set. The original task + set is terminated after a successful deployment. Use this deployment + controller to verify a new deployment of a service before sending + production traffic to it. + + When creating a service that uses the `EXTERNAL` deployment controller, + you can specify only parameters that aren't controlled at the task set + level. The only required parameter is the service name. You control your + services using the + [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html). + For more information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + When the service scheduler launches new tasks, it determines task + placement. For information about task placement and task placement + strategies, see [Amazon ECS task + placement](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html) + in the *Amazon Elastic Container Service Developer Guide* + + Args: + input: + An instance of `CreateServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceOutput`. + """ + return await self._invoke(input, _models.CREATE_SERVICE, [], plugins) + + async def create_task_set( + self, input: CreateTaskSetInput, plugins: list[Plugin] | None = None + ) -> CreateTaskSetOutput: + """ + Create a task set in the specified cluster and service. This is used + when a service uses the `EXTERNAL` deployment controller type. For more + information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + + For information about the maximum number of task sets and other quotas, + see [Amazon ECS service + quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `CreateTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTaskSetOutput`. + """ + return await self._invoke(input, _models.CREATE_TASK_SET, [], plugins) + + async def delete_account_setting( + self, input: DeleteAccountSettingInput, plugins: list[Plugin] | None = None + ) -> DeleteAccountSettingOutput: + """ + Disables an account setting for a specified user, role, or the root user + for an account. + + Args: + input: + An instance of `DeleteAccountSettingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountSettingOutput`. + """ + return await self._invoke(input, _models.DELETE_ACCOUNT_SETTING, [], plugins) + + async def delete_attributes( + self, input: DeleteAttributesInput, plugins: list[Plugin] | None = None + ) -> DeleteAttributesOutput: + """ + Deletes one or more custom attributes from an Amazon ECS resource. + + Args: + input: + An instance of `DeleteAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAttributesOutput`. + """ + return await self._invoke(input, _models.DELETE_ATTRIBUTES, [], plugins) + + async def delete_capacity_provider( + self, input: DeleteCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> DeleteCapacityProviderOutput: + """ + Deletes the specified capacity provider. + + Note: + The `FARGATE` and `FARGATE_SPOT` capacity providers are reserved and + can't be deleted. You can disassociate them from a cluster using either + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + or by deleting the cluster. + + Prior to a capacity provider being deleted, the capacity provider must + be removed from the capacity provider strategy from all services. The + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) + API can be used to remove a capacity provider from a service's capacity + provider strategy. When updating a service, the `forceNewDeployment` + option can be used to ensure that any tasks using the Amazon EC2 + instance capacity provided by the capacity provider are transitioned to + use the capacity from the remaining capacity providers. Only capacity + providers that aren't associated with a cluster can be deleted. To + remove a capacity provider from a cluster, you can either use + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + or delete the cluster. + + Args: + input: + An instance of `DeleteCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCapacityProviderOutput`. + """ + return await self._invoke(input, _models.DELETE_CAPACITY_PROVIDER, [], plugins) + + async def delete_cluster( + self, input: DeleteClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteClusterOutput: + """ + Deletes the specified cluster. The cluster transitions to the `INACTIVE` + state. Clusters with an `INACTIVE` status might remain discoverable in + your account for a period of time. However, this behavior is subject to + change in the future. We don't recommend that you rely on `INACTIVE` + clusters persisting. + + You must deregister all container instances from this cluster before you + may delete it. You can list the container instances in a cluster with + [ListContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html) + and deregister them with + [DeregisterContainerInstance](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html). + + Args: + input: + An instance of `DeleteClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClusterOutput`. + """ + return await self._invoke(input, _models.DELETE_CLUSTER, [], plugins) + + async def delete_daemon( + self, input: DeleteDaemonInput, plugins: list[Plugin] | None = None + ) -> DeleteDaemonOutput: + """ + Deletes the specified daemon. The daemon must be in an `ACTIVE` state to + be deleted. Deleting a daemon stops all running daemon tasks on the + associated container instances. Amazon ECS drains existing container + instances and provisions new instances without the deleted daemon. + Amazon ECS automatically launches replacement tasks for your Amazon ECS + services. + + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `DeleteDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDaemonOutput`. + """ + return await self._invoke(input, _models.DELETE_DAEMON, [], plugins) + + async def delete_daemon_task_definition( + self, + input: DeleteDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDaemonTaskDefinitionOutput: + """ + Deletes the specified daemon task definition. After a daemon task + definition is deleted, no new daemons can be created using this + definition. Existing daemons that reference the deleted daemon task + definition continue to run. + + A daemon task definition must be in an `ACTIVE` state to be deleted. + + Args: + input: + An instance of `DeleteDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDaemonTaskDefinitionOutput`. + """ + return await self._invoke( + input, _models.DELETE_DAEMON_TASK_DEFINITION, [], plugins + ) + + async def delete_express_gateway_service( + self, + input: DeleteExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteExpressGatewayServiceOutput: + """ + Deletes an Express service and removes all associated Amazon Web + Services resources. This operation stops service tasks, removes the + Application Load Balancer, target groups, security groups, auto-scaling + policies, and other managed infrastructure components. + + The service enters a `DRAINING` state where existing tasks complete + current requests without starting new tasks. After all tasks stop, the + service and infrastructure are permanently removed. + + This operation cannot be reversed. Back up important data and verify the + service is no longer needed before deletion. + + Args: + input: + An instance of `DeleteExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteExpressGatewayServiceOutput`. + """ + return await self._invoke( + input, _models.DELETE_EXPRESS_GATEWAY_SERVICE, [], plugins + ) + + async def delete_gateway( + self, input: DeleteGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteGatewayOutput: + """ + Deletes a gateway. Before you can delete a gateway, deletion protection + must be disabled and the gateway must not have any cluster associations + that are in the `ACTIVE` or `DISASSOCIATING` state. If associations + exist, the operation fails; disassociate all clusters first. + `DeleteGateway` is a synchronous operation. After you delete a gateway, + subsequent requests for it return a `GatewayNotFoundException`. + + Args: + input: + An instance of `DeleteGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGatewayOutput`. + """ + return await self._invoke(input, _models.DELETE_GATEWAY, [], plugins) + + async def delete_service( + self, input: DeleteServiceInput, plugins: list[Plugin] | None = None + ) -> DeleteServiceOutput: + """ + Deletes a specified service within a cluster. You can delete a service + if you have no running tasks in it and the desired task count is zero. + If the service is actively maintaining tasks, you can't delete it, and + you must update the service to a desired task count of zero. For more + information, see + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + Note: + When you delete a service, if there are still running tasks that require + cleanup, the service status moves from `ACTIVE` to `DRAINING`, and the + service is no longer visible in the console or in the + [ListServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html) + API operation. After all tasks have transitioned to either `STOPPING` or + `STOPPED` status, the service status moves from `DRAINING` to + `INACTIVE`. Services in the `DRAINING` or `INACTIVE` status can still be + viewed with the + [DescribeServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html) + API operation. However, in the future, `INACTIVE` services may be + cleaned up and purged from Amazon ECS record keeping, and + [DescribeServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html) + calls on those services return a `ServiceNotFoundException` error. + Warning: + If you attempt to create a new service with the same name as an existing + service in either `ACTIVE` or `DRAINING` status, you receive an error. + + Args: + input: + An instance of `DeleteServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceOutput`. + """ + return await self._invoke(input, _models.DELETE_SERVICE, [], plugins) + + async def delete_task_definitions( + self, input: DeleteTaskDefinitionsInput, plugins: list[Plugin] | None = None + ) -> DeleteTaskDefinitionsOutput: + """ + Deletes one or more task definitions. + + You must deregister a task definition revision before you delete it. For + more information, see + [DeregisterTaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html). + + When you delete a task definition revision, it is immediately + transitions from the `INACTIVE` to `DELETE_IN_PROGRESS`. Existing tasks + and services that reference a `DELETE_IN_PROGRESS` task definition + revision continue to run without disruption. Existing services that + reference a `DELETE_IN_PROGRESS` task definition revision can still + scale up or down by modifying the service's desired count. + + You can't use a `DELETE_IN_PROGRESS` task definition revision to run + new tasks or create new services. You also can't update an existing + service to reference a `DELETE_IN_PROGRESS` task definition revision. + + A task definition revision will stay in `DELETE_IN_PROGRESS` status + until all the associated tasks and services have been terminated. + + When you delete all `INACTIVE` task definition revisions, the task + definition name is not displayed in the console and not returned in the + API. If a task definition revisions are in the `DELETE_IN_PROGRESS` + state, the task definition name is displayed in the console and returned + in the API. The task definition name is retained by Amazon ECS and the + revision is incremented the next time you create a task definition with + that name. + + Args: + input: + An instance of `DeleteTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTaskDefinitionsOutput`. + """ + return await self._invoke(input, _models.DELETE_TASK_DEFINITIONS, [], plugins) + + async def delete_task_set( + self, input: DeleteTaskSetInput, plugins: list[Plugin] | None = None + ) -> DeleteTaskSetOutput: + """ + Deletes a specified task set within a service. This is used when a + service uses the `EXTERNAL` deployment controller type. For more + information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `DeleteTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTaskSetOutput`. + """ + return await self._invoke(input, _models.DELETE_TASK_SET, [], plugins) + + async def deregister_container_instance( + self, + input: DeregisterContainerInstanceInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterContainerInstanceOutput: + """ + Deregisters an Amazon ECS container instance from the specified cluster. + This instance is no longer available to run tasks. + + If you intend to use the container instance for some other purpose after + deregistration, we recommend that you stop all of the tasks running on + the container instance before deregistration. That prevents any orphaned + tasks from consuming resources. + + Deregistering a container instance removes the instance from a cluster, + but it doesn't terminate the EC2 instance. If you are finished using + the instance, be sure to terminate it in the Amazon EC2 console to stop + billing. + + Note: + If you terminate a running container instance, Amazon ECS automatically + deregisters the instance from your cluster (stopped container instances + or instances with disconnected agents aren't automatically deregistered + when terminated). + + Args: + input: + An instance of `DeregisterContainerInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterContainerInstanceOutput`. + """ + return await self._invoke( + input, _models.DEREGISTER_CONTAINER_INSTANCE, [], plugins + ) + + async def deregister_task_definition( + self, input: DeregisterTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> DeregisterTaskDefinitionOutput: + """ + Deregisters the specified task definition by family and revision. Upon + deregistration, the task definition is marked as `INACTIVE`. Existing + tasks and services that reference an `INACTIVE` task definition continue + to run without disruption. Existing services that reference an + `INACTIVE` task definition can still scale up or down by modifying the + service's desired count. If you want to delete a task definition + revision, you must first deregister the task definition revision. + + You can't use an `INACTIVE` task definition to run new tasks or create + new services, and you can't update an existing service to reference an + `INACTIVE` task definition. However, there may be up to a 10-minute + window following deregistration where these restrictions have not yet + taken effect. + + Note: + At this time, `INACTIVE` task definitions remain discoverable in your + account indefinitely. However, this behavior is subject to change in the + future. We don't recommend that you rely on `INACTIVE` task definitions + persisting beyond the lifecycle of any associated tasks and services. + + You must deregister a task definition revision before you delete it. For + more information, see + [DeleteTaskDefinitions](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteTaskDefinitions.html). + + Args: + input: + An instance of `DeregisterTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTaskDefinitionOutput`. + """ + return await self._invoke( + input, _models.DEREGISTER_TASK_DEFINITION, [], plugins + ) + + async def describe_capacity_providers( + self, input: DescribeCapacityProvidersInput, plugins: list[Plugin] | None = None + ) -> DescribeCapacityProvidersOutput: + """ + Describes one or more of your capacity providers. + + Args: + input: + An instance of `DescribeCapacityProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityProvidersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CAPACITY_PROVIDERS, [], plugins + ) + + async def describe_clusters( + self, input: DescribeClustersInput, plugins: list[Plugin] | None = None + ) -> DescribeClustersOutput: + """ + Describes one or more of your clusters. + + For CLI examples, see + [describe-clusters.rst](https://github.com/aws/aws-cli/blob/develop/awscli/examples/ecs/describe-clusters.rst) + on GitHub. + + Args: + input: + An instance of `DescribeClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClustersOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CLUSTERS, [], plugins) + + async def describe_container_instances( + self, + input: DescribeContainerInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeContainerInstancesOutput: + """ + Describes one or more container instances. Returns metadata about each + container instance requested. + + Args: + input: + An instance of `DescribeContainerInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeContainerInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CONTAINER_INSTANCES, [], plugins + ) + + async def describe_daemon( + self, input: DescribeDaemonInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonOutput: + """ + Describes the specified daemon. + + Args: + input: + An instance of `DescribeDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DAEMON, [], plugins) + + async def describe_daemon_deployments( + self, input: DescribeDaemonDeploymentsInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonDeploymentsOutput: + """ + Describes one or more of your daemon deployments. + + A daemon deployment orchestrates the progressive rollout of daemon task + updates across container instances managed by the daemon's capacity + providers. Each deployment includes circuit breaker and alarm-based + rollback capabilities. + + Args: + input: + An instance of `DescribeDaemonDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonDeploymentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DAEMON_DEPLOYMENTS, [], plugins + ) + + async def describe_daemon_revisions( + self, input: DescribeDaemonRevisionsInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonRevisionsOutput: + """ + Describes one or more of your daemon revisions. + + A daemon revision is a snapshot of a daemon's configuration at the time + a deployment was initiated. It captures the daemon task definition, + container images, tag propagation, and execute command settings. Daemon + revisions are immutable. + + Args: + input: + An instance of `DescribeDaemonRevisionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonRevisionsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DAEMON_REVISIONS, [], plugins) + + async def describe_daemon_task_definition( + self, + input: DescribeDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDaemonTaskDefinitionOutput: + """ + Describes a daemon task definition. You can specify a `family` and + `revision` to find information about a specific daemon task definition, + or you can simply specify the family to find the latest `ACTIVE` + revision in that family. + + Args: + input: + An instance of `DescribeDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonTaskDefinitionOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DAEMON_TASK_DEFINITION, [], plugins + ) + + async def describe_express_gateway_service( + self, + input: DescribeExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> DescribeExpressGatewayServiceOutput: + """ + Retrieves detailed information about an Express service, including + current status, configuration, managed infrastructure, and service + revisions. + + Returns comprehensive service details, active service revisions, ingress + paths with endpoints, and managed Amazon Web Services resource status + including load balancers and auto-scaling policies. + + Use the `include` parameter to retrieve additional information such as + resource tags. + + Args: + input: + An instance of `DescribeExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExpressGatewayServiceOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_EXPRESS_GATEWAY_SERVICE, [], plugins + ) + + async def describe_gateway( + self, input: DescribeGatewayInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayOutput: + """ + Describes a gateway, including its configuration, status, and the + type-specific infrastructure settings that it uses. + + Args: + input: + An instance of `DescribeGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_GATEWAY, [], plugins) + + async def describe_gateway_resources( + self, input: DescribeGatewayResourcesInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayResourcesOutput: + """ + Returns the infrastructure that a gateway has created and manages, so + that you can follow the traffic path from top-level shared resources, + such as load balancers, to the service-specific resources represented as + gateway routes. Responses include only the Amazon Resource Names (ARNs) + of gateway-managed infrastructure. For the current state of a resource, + describe it with the corresponding Amazon Web Services service (Elastic + Load Balancing, Amazon EC2, or Amazon Web Services Certificate Manager). + The results are paginated. + + Args: + input: + An instance of `DescribeGatewayResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayResourcesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_GATEWAY_RESOURCES, [], plugins + ) + + async def describe_gateway_route( + self, input: DescribeGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayRouteOutput: + """ + Describes a gateway route, including its status, the service it routes + traffic to, and the service-specific infrastructure, such as target + groups and listener rules, that the gateway manages for it. + + Args: + input: + An instance of `DescribeGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayRouteOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_GATEWAY_ROUTE, [], plugins) + + async def describe_service_deployments( + self, + input: DescribeServiceDeploymentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeServiceDeploymentsOutput: + """ + Describes one or more of your service deployments. + + A service deployment happens when you release a software update for the + service. For more information, see [View service history using Amazon + ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-deployment.html). + + Args: + input: + An instance of `DescribeServiceDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceDeploymentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SERVICE_DEPLOYMENTS, [], plugins + ) + + async def describe_service_revisions( + self, input: DescribeServiceRevisionsInput, plugins: list[Plugin] | None = None + ) -> DescribeServiceRevisionsOutput: + """ + Describes one or more service revisions. + + A service revision is a version of the service that includes the values + for the Amazon ECS resources (for example, task definition) and the + environment resources (for example, load balancers, subnets, and + security groups). For more information, see [Amazon ECS service + revisions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-revision.html). + + You can't describe a service revision that was created before October + 25, 2024. + + Args: + input: + An instance of `DescribeServiceRevisionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceRevisionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SERVICE_REVISIONS, [], plugins + ) + + async def describe_services( + self, input: DescribeServicesInput, plugins: list[Plugin] | None = None + ) -> DescribeServicesOutput: + """ + Describes the specified services running in your cluster. + + Args: + input: + An instance of `DescribeServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServicesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_SERVICES, [], plugins) + + async def describe_task_definition( + self, input: DescribeTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> DescribeTaskDefinitionOutput: + """ + Describes a task definition. You can specify a `family` and `revision` + to find information about a specific task definition, or you can simply + specify the family to find the latest `ACTIVE` revision in that family. + + Note: + You can only describe `INACTIVE` task definitions while an active task + or service references them. + + Args: + input: + An instance of `DescribeTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTaskDefinitionOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TASK_DEFINITION, [], plugins) + + async def describe_tasks( + self, input: DescribeTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeTasksOutput: + """ + Describes a specified task or tasks. + + Currently, stopped tasks appear in the returned results for at least one + hour. + + If you have tasks with tags, and then delete the cluster, the tagged + tasks are returned in the response. If you create a new cluster with the + same name as the deleted cluster, the tagged tasks are not included in + the response. + + Args: + input: + An instance of `DescribeTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTasksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TASKS, [], plugins) + + async def describe_task_sets( + self, input: DescribeTaskSetsInput, plugins: list[Plugin] | None = None + ) -> DescribeTaskSetsOutput: + """ + Describes the task sets in the specified cluster and service. This is + used when a service uses the `EXTERNAL` deployment controller type. For + more information, see [Amazon ECS Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `DescribeTaskSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTaskSetsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TASK_SETS, [], plugins) + + async def disassociate_gateway_from_cluster( + self, + input: DisassociateGatewayFromClusterInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateGatewayFromClusterOutput: + """ + Removes the association between a gateway and an Amazon ECS cluster. The + association remains in the `DISASSOCIATING` state until you remove all + of the gateway routes for the cluster by updating the associated + services. You can use `ListGatewayRoutes` with a cluster filter to + determine which routes are preventing disassociation. No infrastructure + changes are made until the affected services are updated. + + Args: + input: + An instance of `DisassociateGatewayFromClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateGatewayFromClusterOutput`. + """ + return await self._invoke( + input, _models.DISASSOCIATE_GATEWAY_FROM_CLUSTER, [], plugins + ) + + async def discover_poll_endpoint( + self, input: DiscoverPollEndpointInput, plugins: list[Plugin] | None = None + ) -> DiscoverPollEndpointOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Returns an endpoint for the Amazon ECS agent to poll for updates. + + Args: + input: + An instance of `DiscoverPollEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DiscoverPollEndpointOutput`. + """ + return await self._invoke(input, _models.DISCOVER_POLL_ENDPOINT, [], plugins) + + async def execute_command( + self, input: ExecuteCommandInput, plugins: list[Plugin] | None = None + ) -> ExecuteCommandOutput: + """ + Runs a command remotely on a container within a task. + + If you use a condition key in your IAM policy to refine the conditions + for the policy statement, for example limit the actions to a specific + cluster, you receive an `AccessDeniedException` when there is a mismatch + between the condition key value and the corresponding parameter value. + + For information about required permissions and considerations, see + [Using Amazon ECS Exec for + debugging](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) + in the *Amazon ECS Developer Guide*. + + Args: + input: + An instance of `ExecuteCommandInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteCommandOutput`. + """ + return await self._invoke(input, _models.EXECUTE_COMMAND, [], plugins) + + async def get_task_protection( + self, input: GetTaskProtectionInput, plugins: list[Plugin] | None = None + ) -> GetTaskProtectionOutput: + """ + Retrieves the protection status of tasks in an Amazon ECS service. + + Args: + input: + An instance of `GetTaskProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTaskProtectionOutput`. + """ + return await self._invoke(input, _models.GET_TASK_PROTECTION, [], plugins) + + async def list_account_settings( + self, input: ListAccountSettingsInput, plugins: list[Plugin] | None = None + ) -> ListAccountSettingsOutput: + """ + Lists the account settings for a specified principal. + + Args: + input: + An instance of `ListAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccountSettingsOutput`. + """ + return await self._invoke(input, _models.LIST_ACCOUNT_SETTINGS, [], plugins) + + async def list_attributes( + self, input: ListAttributesInput, plugins: list[Plugin] | None = None + ) -> ListAttributesOutput: + """ + Lists the attributes for Amazon ECS resources within a specified target + type and cluster. When you specify a target type and cluster, + `ListAttributes` returns a list of attribute objects, one for each + attribute on each resource. You can filter the list of results to a + single attribute name to only return results that have that name. You + can also filter the results by attribute name and value. You can do + this, for example, to see which container instances in a cluster are + running a Linux AMI (`ecs.os-type=linux`). + + Args: + input: + An instance of `ListAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttributesOutput`. + """ + return await self._invoke(input, _models.LIST_ATTRIBUTES, [], plugins) + + async def list_clusters( + self, input: ListClustersInput, plugins: list[Plugin] | None = None + ) -> ListClustersOutput: + """ + Returns a list of existing clusters. + + Args: + input: + An instance of `ListClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListClustersOutput`. + """ + return await self._invoke(input, _models.LIST_CLUSTERS, [], plugins) + + async def list_container_instances( + self, input: ListContainerInstancesInput, plugins: list[Plugin] | None = None + ) -> ListContainerInstancesOutput: + """ + Returns a list of container instances in a specified cluster. You can + filter the results of a `ListContainerInstances` operation with cluster + query language statements inside the `filter` parameter. For more + information, see [Cluster Query + Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ListContainerInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListContainerInstancesOutput`. + """ + return await self._invoke(input, _models.LIST_CONTAINER_INSTANCES, [], plugins) + + async def list_daemon_deployments( + self, input: ListDaemonDeploymentsInput, plugins: list[Plugin] | None = None + ) -> ListDaemonDeploymentsOutput: + """ + Returns a list of daemon deployments for a specified daemon. You can + filter the results by status or creation time. + + Args: + input: + An instance of `ListDaemonDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonDeploymentsOutput`. + """ + return await self._invoke(input, _models.LIST_DAEMON_DEPLOYMENTS, [], plugins) + + async def list_daemons( + self, input: ListDaemonsInput, plugins: list[Plugin] | None = None + ) -> ListDaemonsOutput: + """ + Returns a list of daemons. You can filter the results by cluster or + capacity provider. + + Args: + input: + An instance of `ListDaemonsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonsOutput`. + """ + return await self._invoke(input, _models.LIST_DAEMONS, [], plugins) + + async def list_daemon_task_definitions( + self, input: ListDaemonTaskDefinitionsInput, plugins: list[Plugin] | None = None + ) -> ListDaemonTaskDefinitionsOutput: + """ + Returns a list of daemon task definitions that are registered to your + account. You can filter the results by family name, status, or both to + find daemon task definitions that match your criteria. + + Args: + input: + An instance of `ListDaemonTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonTaskDefinitionsOutput`. + """ + return await self._invoke( + input, _models.LIST_DAEMON_TASK_DEFINITIONS, [], plugins + ) + + async def list_gateway_cluster_associations( + self, + input: ListGatewayClusterAssociationsInput, + plugins: list[Plugin] | None = None, + ) -> ListGatewayClusterAssociationsOutput: + """ + Returns a list of the associations between gateways and clusters. You + can filter the results by gateway, cluster, and status. The results are + paginated. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `ListGatewayClusterAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewayClusterAssociationsOutput`. + """ + return await self._invoke( + input, _models.LIST_GATEWAY_CLUSTER_ASSOCIATIONS, [], plugins + ) + + async def list_gateway_routes( + self, input: ListGatewayRoutesInput, plugins: list[Plugin] | None = None + ) -> ListGatewayRoutesOutput: + """ + Returns a list of gateway routes. A gateway route represents the + association between a service and a gateway and the service-specific + infrastructure the gateway manages for it. You can filter the results by + gateway, cluster, service, container port name, and status. The results + are paginated. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `ListGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewayRoutesOutput`. + """ + return await self._invoke(input, _models.LIST_GATEWAY_ROUTES, [], plugins) + + async def list_gateways( + self, input: ListGatewaysInput, plugins: list[Plugin] | None = None + ) -> ListGatewaysOutput: + """ + Returns a list of gateways in your account. You can filter the results + by gateway name and status. The results are paginated. We recommend that + you use pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `ListGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewaysOutput`. + """ + return await self._invoke(input, _models.LIST_GATEWAYS, [], plugins) + + async def list_service_deployments( + self, input: ListServiceDeploymentsInput, plugins: list[Plugin] | None = None + ) -> ListServiceDeploymentsOutput: + """ + This operation lists all the service deployments that meet the specified + filter criteria. + + A service deployment happens when you release a software update for the + service. You route traffic from the running service revisions to the new + service revison and control the number of running tasks. + + This API returns the values that you use for the request parameters in + [DescribeServiceRevisions](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceRevisions.html). + + Args: + input: + An instance of `ListServiceDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServiceDeploymentsOutput`. + """ + return await self._invoke(input, _models.LIST_SERVICE_DEPLOYMENTS, [], plugins) + + async def list_services( + self, input: ListServicesInput, plugins: list[Plugin] | None = None + ) -> ListServicesOutput: + """ + Returns a list of services. You can filter the results by cluster, + launch type, and scheduling strategy. + + Args: + input: + An instance of `ListServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServicesOutput`. + """ + return await self._invoke(input, _models.LIST_SERVICES, [], plugins) + + async def list_services_by_namespace( + self, input: ListServicesByNamespaceInput, plugins: list[Plugin] | None = None + ) -> ListServicesByNamespaceOutput: + """ + This operation lists all of the services that are associated with a + Cloud Map namespace. This list might include services in different + clusters. In contrast, `ListServices` can only list services in one + cluster at a time. If you need to filter the list of services in a + single cluster by various parameters, use `ListServices`. For more + information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ListServicesByNamespaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServicesByNamespaceOutput`. + """ + return await self._invoke( + input, _models.LIST_SERVICES_BY_NAMESPACE, [], plugins + ) + + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List the tags for an Amazon ECS resource. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + async def list_task_definition_families( + self, + input: ListTaskDefinitionFamiliesInput, + plugins: list[Plugin] | None = None, + ) -> ListTaskDefinitionFamiliesOutput: + """ + 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. + + Args: + input: + An instance of `ListTaskDefinitionFamiliesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTaskDefinitionFamiliesOutput`. + """ + return await self._invoke( + input, _models.LIST_TASK_DEFINITION_FAMILIES, [], plugins + ) + + async def list_task_definitions( + self, input: ListTaskDefinitionsInput, plugins: list[Plugin] | None = None + ) -> ListTaskDefinitionsOutput: + """ + 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. + + Args: + input: + An instance of `ListTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTaskDefinitionsOutput`. + """ + return await self._invoke(input, _models.LIST_TASK_DEFINITIONS, [], plugins) + + async def list_tasks( + self, input: ListTasksInput, plugins: list[Plugin] | None = None + ) -> ListTasksOutput: + """ + 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. + + Args: + input: + An instance of `ListTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTasksOutput`. + """ + return await self._invoke(input, _models.LIST_TASKS, [], plugins) + + async def put_account_setting( + self, input: PutAccountSettingInput, plugins: list[Plugin] | None = None + ) -> PutAccountSettingOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `PutAccountSettingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountSettingOutput`. + """ + return await self._invoke(input, _models.PUT_ACCOUNT_SETTING, [], plugins) + + async def put_account_setting_default( + self, input: PutAccountSettingDefaultInput, plugins: list[Plugin] | None = None + ) -> PutAccountSettingDefaultOutput: + """ + 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. + + Args: + input: + An instance of `PutAccountSettingDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountSettingDefaultOutput`. + """ + return await self._invoke( + input, _models.PUT_ACCOUNT_SETTING_DEFAULT, [], plugins + ) + + async def put_attributes( + self, input: PutAttributesInput, plugins: list[Plugin] | None = None + ) -> PutAttributesOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html). + For more information, see + [Attributes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `PutAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAttributesOutput`. + """ + return await self._invoke(input, _models.PUT_ATTRIBUTES, [], plugins) + + async def put_cluster_capacity_providers( + self, + input: PutClusterCapacityProvidersInput, + plugins: list[Plugin] | None = None, + ) -> PutClusterCapacityProvidersOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + 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. + + Amazon ECS Managed Instances doesn't support this, because when you + create a capacity provider with Amazon ECS Managed Instances, it becomes + available only within the specified cluster. + + Args: + input: + An instance of `PutClusterCapacityProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutClusterCapacityProvidersOutput`. + """ + return await self._invoke( + input, _models.PUT_CLUSTER_CAPACITY_PROVIDERS, [], plugins + ) + + async def register_container_instance( + self, input: RegisterContainerInstanceInput, plugins: list[Plugin] | None = None + ) -> RegisterContainerInstanceOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Registers an EC2 instance into the specified cluster. This instance + becomes available to place containers on. + + Args: + input: + An instance of `RegisterContainerInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterContainerInstanceOutput`. + """ + return await self._invoke( + input, _models.REGISTER_CONTAINER_INSTANCE, [], plugins + ) + + async def register_daemon_task_definition( + self, + input: RegisterDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> RegisterDaemonTaskDefinitionOutput: + """ + Registers a new daemon task definition from the supplied `family` and + `containerDefinitions`. Optionally, you can add data volumes to your + containers with the `volumes` parameter. For more information, see + [Daemon task + definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-task-definitions.html) + in the *Amazon Elastic Container Service Developer Guide*. + + A daemon task definition is a template that describes the containers + that form a daemon. Daemons deploy cross-cutting software agents such as + security monitoring, telemetry, and logging across your Amazon ECS + infrastructure. + + Each time you call `RegisterDaemonTaskDefinition`, a new revision of the + daemon task definition is created. You can't modify a revision after + you register it. + + Args: + input: + An instance of `RegisterDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterDaemonTaskDefinitionOutput`. + """ + return await self._invoke( + input, _models.REGISTER_DAEMON_TASK_DEFINITION, [], plugins + ) + + async def register_task_definition( + self, input: RegisterTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> RegisterTaskDefinitionOutput: + """ + Registers a new task definition from the supplied `family` and + `containerDefinitions`. Optionally, you can add data volumes to your + containers with the `volumes` parameter. For more information about task + definition parameters and defaults, see [Amazon ECS Task + Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can specify a role for your task with the `taskRoleArn` parameter. + When you specify a role for a task, its containers can then use the + latest versions of the CLI or SDKs to make API requests to the Amazon + Web Services services that are specified in the policy that's + associated with the role. For more information, see [IAM Roles for + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can specify a Docker networking mode for the containers in your task + definition with the `networkMode` parameter. If you specify the `awsvpc` + network mode, the task is allocated an elastic network interface, and + you must specify a + [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) + when you create a service or run a task with the task definition. For + more information, see [Task + Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `RegisterTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTaskDefinitionOutput`. + """ + return await self._invoke(input, _models.REGISTER_TASK_DEFINITION, [], plugins) + + async def run_task( + self, input: RunTaskInput, plugins: list[Plugin] | None = None + ) -> RunTaskOutput: + """ + Starts a new task using the specified task definition. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + You can allow Amazon ECS to place tasks for you, or you can customize + how Amazon ECS places tasks using placement constraints and placement + strategies. For more information, see [Scheduling + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Alternatively, you can use `StartTask` to use your own scheduler or + place tasks manually on specific container instances. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. For more information, see + [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + The Amazon ECS API follows an eventual consistency model. This is + because of the distributed nature of the system supporting the API. This + means that the result of an API command you run that affects your Amazon + ECS resources might not be immediately visible to all subsequent + commands you run. Keep this in mind when you carry out an API command + that immediately follows a previous API command. + + To manage eventual consistency, you can do the following: + + - Confirm the state of the resource before you run a command to modify + it. Run the DescribeTasks command using an exponential backoff + algorithm to ensure that you allow enough time for the previous + command to propagate through the system. To do this, run the + DescribeTasks command repeatedly, starting with a couple of seconds of + wait time and increasing gradually up to five minutes of wait time. + + - Add wait time between subsequent commands, even if the DescribeTasks + command returns an accurate response. Apply an exponential backoff + algorithm starting with a couple of seconds of wait time, and increase + gradually up to about five minutes of wait time. + + If you get a `ConflictException` error, the `RunTask` request could not + be processed due to conflicts. The provided `clientToken` is already in + use with a different `RunTask` request. The `resourceIds` are the + existing task ARNs which are already associated with the `clientToken`. + + To fix this issue: + + - Run `RunTask` with a unique `clientToken`. + + - Run `RunTask` with the `clientToken` and the original set of + parameters + + If you get a `ClientException`error, the `RunTask` could not be + processed because you use managed scaling and there is a capacity error + because the quota of tasks in the `PROVISIONING` per cluster has been + reached. For information about the service quotas, see [Amazon ECS + service + quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html). + + Args: + input: + An instance of `RunTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunTaskOutput`. + """ + return await self._invoke(input, _models.RUN_TASK, [], plugins) + + async def start_task( + self, input: StartTaskInput, plugins: list[Plugin] | None = None + ) -> StartTaskOutput: + """ + Starts a new task from the specified task definition on the specified + container instance or instances. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + Alternatively, you can use`RunTask` to place tasks for you. For more + information, see [Scheduling + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. For more information, see + [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StartTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartTaskOutput`. + """ + return await self._invoke(input, _models.START_TASK, [], plugins) + + async def stop_service_deployment( + self, input: StopServiceDeploymentInput, plugins: list[Plugin] | None = None + ) -> StopServiceDeploymentOutput: + """ + Stops an ongoing service deployment. + + The following stop types are avaiable: + + - ROLLBACK - This option rolls back the service deployment to the + previous service revision. + + You can use this option even if you didn't configure the service + deployment for the rollback option. + + For more information, see [Stopping Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/stop-service-deployment.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StopServiceDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopServiceDeploymentOutput`. + """ + return await self._invoke(input, _models.STOP_SERVICE_DEPLOYMENT, [], plugins) + + async def stop_task( + self, input: StopTaskInput, plugins: list[Plugin] | None = None + ) -> StopTaskOutput: + """ + Stops a running task. Any tags associated with the task will be deleted. + + When you call `StopTask` on a task, the equivalent of `docker stop` is + issued to the containers running in the task. This results in a stop + signal value and a default 30-second timeout, after which the `SIGKILL` + value is sent and the containers are forcibly stopped. This signal can + be defined in your container image with the `STOPSIGNAL` instruction and + will default to `SIGTERM`. If the container handles the `SIGTERM` value + gracefully and exits within 30 seconds from receiving it, no `SIGKILL` + value is sent. + + For Windows containers, POSIX signals do not work and runtime stops the + container by sending a `CTRL_SHUTDOWN_EVENT`. For more information, see + [Unable to react to graceful shutdown of (Windows) container + #25982](https://github.com/moby/moby/issues/25982) on GitHub. + + Note: + The default 30-second timeout can be configured on the Amazon ECS + container agent with the `ECS_CONTAINER_STOP_TIMEOUT` variable. For more + information, see [Amazon ECS Container Agent + Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StopTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopTaskOutput`. + """ + return await self._invoke(input, _models.STOP_TASK, [], plugins) + + async def submit_attachment_state_changes( + self, + input: SubmitAttachmentStateChangesInput, + plugins: list[Plugin] | None = None, + ) -> SubmitAttachmentStateChangesOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that an attachment changed states. + + Args: + input: + An instance of `SubmitAttachmentStateChangesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitAttachmentStateChangesOutput`. + """ + return await self._invoke( + input, _models.SUBMIT_ATTACHMENT_STATE_CHANGES, [], plugins + ) + + async def submit_container_state_change( + self, + input: SubmitContainerStateChangeInput, + plugins: list[Plugin] | None = None, + ) -> SubmitContainerStateChangeOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that a container changed states. + + Args: + input: + An instance of `SubmitContainerStateChangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitContainerStateChangeOutput`. + """ + return await self._invoke( + input, _models.SUBMIT_CONTAINER_STATE_CHANGE, [], plugins + ) + + async def submit_task_state_change( + self, input: SubmitTaskStateChangeInput, plugins: list[Plugin] | None = None + ) -> SubmitTaskStateChangeOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that a task changed states. + + Args: + input: + An instance of `SubmitTaskStateChangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitTaskStateChangeOutput`. + """ + return await self._invoke(input, _models.SUBMIT_TASK_STATE_CHANGE, [], plugins) + + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Associates the specified tags to a resource with the specified + `resourceArn`. If existing tags on a resource aren't specified in the + request parameters, they aren't changed. When a resource is deleted, + the tags that are associated with that resource are deleted as well. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes specified tags from a resource. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + async def update_capacity_provider( + self, input: UpdateCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> UpdateCapacityProviderOutput: + """ + Modifies the parameters for a capacity provider. + + These changes only apply to new Amazon ECS Managed Instances, or EC2 + instances, not existing ones. + + Args: + input: + An instance of `UpdateCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityProviderOutput`. + """ + return await self._invoke(input, _models.UPDATE_CAPACITY_PROVIDER, [], plugins) + + async def update_cluster( + self, input: UpdateClusterInput, plugins: list[Plugin] | None = None + ) -> UpdateClusterOutput: + """ + Updates the cluster. + + Args: + input: + An instance of `UpdateClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateClusterOutput`. + """ + return await self._invoke(input, _models.UPDATE_CLUSTER, [], plugins) + + async def update_cluster_settings( + self, input: UpdateClusterSettingsInput, plugins: list[Plugin] | None = None + ) -> UpdateClusterSettingsOutput: + """ + Modifies the settings to use for a cluster. + + Args: + input: + An instance of `UpdateClusterSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateClusterSettingsOutput`. + """ + return await self._invoke(input, _models.UPDATE_CLUSTER_SETTINGS, [], plugins) + + async def update_container_agent( + self, input: UpdateContainerAgentInput, plugins: list[Plugin] | None = None + ) -> UpdateContainerAgentOutput: + """ + Updates the Amazon ECS container agent on a specified container + instance. Updating the Amazon ECS container agent doesn't interrupt + running tasks or services on the container instance. The process for + updating the agent differs depending on whether your container instance + was launched with the Amazon ECS-optimized AMI or another operating + system. + + Note: + The `UpdateContainerAgent` API isn't supported for container instances + using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the + container agent, you can update the `ecs-init` package. This updates the + agent. For more information, see [Updating the Amazon ECS container + agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html) + in the *Amazon Elastic Container Service Developer Guide*. + Note: + Agent updates with the `UpdateContainerAgent` API operation do not apply + to Windows container instances. We recommend that you launch new + container instances to update the agent version in your Windows + clusters. + + The `UpdateContainerAgent` API requires an Amazon ECS-optimized AMI or + Amazon Linux AMI with the `ecs-init` service installed and running. For + help updating the Amazon ECS container agent on other operating systems, + see [Manually updating the Amazon ECS container + agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateContainerAgentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContainerAgentOutput`. + """ + return await self._invoke(input, _models.UPDATE_CONTAINER_AGENT, [], plugins) + + async def update_container_instances_state( + self, + input: UpdateContainerInstancesStateInput, + plugins: list[Plugin] | None = None, + ) -> UpdateContainerInstancesStateOutput: + """ + Modifies the status of an Amazon ECS container instance. + + Once a container instance has reached an `ACTIVE` state, you can change + the status of a container instance to `DRAINING` to manually remove an + instance from a cluster, for example to perform system updates, update + the Docker daemon, or scale down the cluster size. + + Warning: + A container instance can't be changed to `DRAINING` until it has + reached an `ACTIVE` status. If the instance is in any other status, an + error will be received. + + When you set a container instance to `DRAINING`, Amazon ECS prevents new + tasks from being scheduled for placement on the container instance and + replacement service tasks are started on other container instances in + the cluster if the resources are available. Service tasks on the + container instance that are in the `PENDING` state are stopped + immediately. + + Service tasks on the container instance that are in the `RUNNING` state + are stopped and replaced according to the service's deployment + configuration parameters, `minimumHealthyPercent` and `maximumPercent`. + You can change the deployment configuration of your service using + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + - If `minimumHealthyPercent` is below 100%, the scheduler can ignore + `desiredCount` temporarily during task replacement. For example, + `desiredCount` is four tasks, a minimum of 50% allows the scheduler to + stop two existing tasks before starting two new tasks. If the minimum + is 100%, the service scheduler can't remove existing tasks until the + replacement tasks are considered healthy. Tasks for services that do + not use a load balancer are considered healthy if they're in the + `RUNNING` state. Tasks for services that use a load balancer are + considered healthy if they're in the `RUNNING` state and are reported + as healthy by the load balancer. + + - The `maximumPercent` parameter represents an upper limit on the number + of running tasks during task replacement. You can use this to define + the replacement batch size. For example, if `desiredCount` is four + tasks, a maximum of 200% starts four new tasks before stopping the + four tasks to be drained, provided that the cluster resources required + to do this are available. If the maximum is 100%, then replacement + tasks can't start until the draining tasks have stopped. + + Any `PENDING` or `RUNNING` tasks that do not belong to a service aren't + affected. You must wait for them to finish or stop them manually. + + A container instance has completed draining when it has no more + `RUNNING` tasks. You can verify this using + [ListTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html). + + When a container instance has been drained, you can set a container + instance to `ACTIVE` status and once it has reached that status the + Amazon ECS scheduler can begin scheduling tasks on the instance again. + + Args: + input: + An instance of `UpdateContainerInstancesStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContainerInstancesStateOutput`. + """ + return await self._invoke( + input, _models.UPDATE_CONTAINER_INSTANCES_STATE, [], plugins + ) + + async def update_daemon( + self, input: UpdateDaemonInput, plugins: list[Plugin] | None = None + ) -> UpdateDaemonOutput: + """ + Updates the specified daemon. When you update a daemon, a new deployment + is triggered that progressively rolls out the changes to the container + instances associated with the daemon's capacity providers. For more + information, see [Daemon + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-deployments.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Amazon ECS drains existing container instances and provisions new + instances with the updated daemon. Amazon ECS automatically launches + replacement tasks for your services. + + Warning: + Updating a daemon triggers a rolling deployment that drains and replaces + container instances. Plan updates during maintenance windows to minimize + impact on running services. + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `UpdateDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDaemonOutput`. + """ + return await self._invoke(input, _models.UPDATE_DAEMON, [], plugins) + + async def update_express_gateway_service( + self, + input: UpdateExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> UpdateExpressGatewayServiceOutput: + """ + Updates an existing Express service configuration. Modifies container + settings, resource allocation, auto-scaling configuration, and other + service parameters without recreating the service. + + Amazon ECS creates a new service revision with updated configuration and + performs a rolling deployment to replace existing tasks. The service + remains available during updates, ensuring zero-downtime deployments. + + Some parameters like the infrastructure role cannot be modified after + service creation and require creating a new service. + + Args: + input: + An instance of `UpdateExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateExpressGatewayServiceOutput`. + """ + return await self._invoke( + input, _models.UPDATE_EXPRESS_GATEWAY_SERVICE, [], plugins + ) + + async def update_gateway( + self, input: UpdateGatewayInput, plugins: list[Plugin] | None = None + ) -> UpdateGatewayOutput: + """ + Modifies the configuration of a gateway. You can change only the + properties that can be applied without interrupting traffic, and the + configuration variant that you provide must match the gateway's type. + `UpdateGateway` is an asynchronous operation: the changes are applied to + each load balancer the gateway manages, and the gateway reports a status + of `UPDATE_IN_PROGRESS` until the update completes. If Amazon ECS can't + update one or more resources, it makes a best effort to update the rest + and the gateway status changes to `UPDATE_FAILED`. Use `DescribeGateway` + to inspect the gateway's `statusReason` and failures list, which gives + the ARN of each load balancer that was not updated and the operation, + error code, and message for each failure. + + If you specify `infrastructureRoleArn`, you must have the `iam:PassRole` + permission for that role. + + Args: + input: + An instance of `UpdateGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGatewayOutput`. + """ + return await self._invoke(input, _models.UPDATE_GATEWAY, [], plugins) + + async def update_service( + self, input: UpdateServiceInput, plugins: list[Plugin] | None = None + ) -> UpdateServiceOutput: + """ + Modifies the parameters of a service. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + + For services using the rolling update (`ECS`) you can update the desired + count, deployment configuration, network configuration, load balancers, + service registries, enable ECS managed tags option, propagate tags + option, task placement constraints and strategies, and task definition. + When you update any of these parameters, Amazon ECS starts new tasks + with the new configuration. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when starting or running a task, or when creating or updating a + service. For more information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. You can + update your volume configurations and trigger a new deployment. + `volumeConfigurations` is only supported for REPLICA service and not + DAEMON service. If you leave `volumeConfigurations` `null`, it doesn't + trigger a new deployment. For more information on volumes, see [Amazon + EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + For services using the blue/green (`CODE_DEPLOY`) deployment controller, + only the desired count, deployment configuration, health check grace + period, task placement constraints and strategies, enable ECS managed + tags option, and propagate tags can be updated using this API. If the + network configuration, platform version, task definition, or load + balancer need to be updated, create a new CodeDeploy deployment. For + more information, see + [CreateDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html) + in the *CodeDeploy API Reference*. + + For services using an external deployment controller, you can update + only the desired count, task placement constraints and strategies, + health check grace period, enable ECS managed tags option, and propagate + tags option, using this API. If the launch type, load balancer, network + configuration, platform version, or task definition need to be updated, + create a new task set For more information, see + [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html). + + You can add to or subtract from the number of instantiations of a task + definition in a service by specifying the cluster that the service is + running in and a new `desiredCount` parameter. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when starting or running a task, or when creating or updating a + service. For more information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + If you have updated the container image of your application, you can + create a new task definition with that image and deploy it to your + service. The service scheduler uses the minimum healthy percent and + maximum percent parameters (in the service's deployment configuration) + to determine the deployment strategy. + + Note: + If your updated Docker image uses the same tag as what is in the + existing task definition for your service (for example, + `my_image:latest`), you don't need to create a new revision of your + task definition. You can update the service using the + `forceNewDeployment` option. The new tasks launched by the deployment + pull the current image/tag combination from your repository when they + start. + + You can also update the deployment configuration of a service. When a + deployment is triggered by updating the task definition of a service, + the service scheduler uses the deployment configuration parameters, + `minimumHealthyPercent` and `maximumPercent`, to determine the + deployment strategy. + + - If `minimumHealthyPercent` is below 100%, the scheduler can ignore + `desiredCount` temporarily during a deployment. For example, if + `desiredCount` is four tasks, a minimum of 50% allows the scheduler to + stop two existing tasks before starting two new tasks. Tasks for + services that don't use a load balancer are considered healthy if + they're in the `RUNNING` state. Tasks for services that use a load + balancer are considered healthy if they're in the `RUNNING` state and + are reported as healthy by the load balancer. + + - The `maximumPercent` parameter represents an upper limit on the number + of running tasks during a deployment. You can use it to define the + deployment batch size. For example, if `desiredCount` is four tasks, a + maximum of 200% starts four new tasks before stopping the four older + tasks (provided that the cluster resources required to do this are + available). + + When + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) + stops a task during a deployment, the equivalent of `docker stop` is + issued to the containers running in the task. This results in a + `SIGTERM` and a 30-second timeout. After this, `SIGKILL` is sent and the + containers are forcibly stopped. If the container handles the `SIGTERM` + gracefully and exits within 30 seconds from receiving it, no `SIGKILL` + is sent. + + When the service scheduler launches new tasks, it determines task + placement in your cluster with the following logic. + + - Determine which of the container instances in your cluster can support + your service's task definition. For example, they have the required + CPU, memory, ports, and container instance attributes. + + - By default, the service scheduler attempts to balance tasks across + Availability Zones in this manner even though you can choose a + different placement strategy. + + - Sort the valid container instances by the fewest number of running + tasks for this service in the same Availability Zone as the + instance. For example, if zone A has one running service task and + zones B and C each have zero, valid container instances in either + zone B or C are considered optimal for placement. + + - Place the new service task on a valid container instance in an + optimal Availability Zone (based on the previous steps), favoring + container instances with the fewest number of running tasks for this + service. + + When the service scheduler stops running tasks, it attempts to maintain + balance across the Availability Zones in your cluster using the + following logic: + + - Sort the container instances by the largest number of running tasks + for this service in the same Availability Zone as the instance. For + example, if zone A has one running service task and zones B and C each + have two, container instances in either zone B or C are considered + optimal for termination. + + - Stop the task on a container instance in an optimal Availability Zone + (based on the previous steps), favoring container instances with the + largest number of running tasks for this service. + + Args: + input: + An instance of `UpdateServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServiceOutput`. + """ + return await self._invoke(input, _models.UPDATE_SERVICE, [], plugins) + + async def update_service_primary_task_set( + self, + input: UpdateServicePrimaryTaskSetInput, + plugins: list[Plugin] | None = None, + ) -> UpdateServicePrimaryTaskSetOutput: + """ + Modifies which task set in a service is the primary task set. Any + parameters that are updated on the primary task set in a service will + transition to the service. This is used when a service uses the + `EXTERNAL` deployment controller type. For more information, see [Amazon + ECS Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateServicePrimaryTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServicePrimaryTaskSetOutput`. + """ + return await self._invoke( + input, _models.UPDATE_SERVICE_PRIMARY_TASK_SET, [], plugins + ) + + async def update_task_protection( + self, input: UpdateTaskProtectionInput, plugins: list[Plugin] | None = None + ) -> UpdateTaskProtectionOutput: + """ + Updates the protection status of a task. You can set `protectionEnabled` + to `true` to protect your task from termination during scale-in events + from [Service + Autoscaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html) + or + [deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). + + Task-protection, by default, expires after 2 hours at which point Amazon + ECS clears the `protectionEnabled` property making the task eligible for + termination by a subsequent scale-in event. + + You can specify a custom expiration period for task protection from 1 + minute to up to 2,880 minutes (48 hours). To specify the custom + expiration period, set the `expiresInMinutes` property. The + `expiresInMinutes` property is always reset when you invoke this + operation for a task that already has `protectionEnabled` set to `true`. + You can keep extending the protection expiration period of a task by + invoking this operation repeatedly. + + To learn more about Amazon ECS task protection, see [Task scale-in + protection](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html) + in the Amazon Elastic Container Service Developer Guide . + + Note: + This operation is only supported for tasks belonging to an Amazon ECS + service. Invoking this operation for a standalone task will result in an + `TASK_NOT_VALID` failure. For more information, see [API failure + reasons](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html). + Warning: + If you prefer to set task protection from within the container, we + recommend using the [Task scale-in protection + endpoint](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html). + + Args: + input: + An instance of `UpdateTaskProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTaskProtectionOutput`. + """ + return await self._invoke(input, _models.UPDATE_TASK_PROTECTION, [], plugins) + + async def update_task_set( + self, input: UpdateTaskSetInput, plugins: list[Plugin] | None = None + ) -> UpdateTaskSetOutput: + """ + Modifies a task set. This is used when a service uses the `EXTERNAL` + deployment controller type. For more information, see [Amazon ECS + Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTaskSetOutput`. + """ + return await self._invoke(input, _models.UPDATE_TASK_SET, [], plugins) + + async def _new_config(self) -> AsyncECSConfig: + return await AsyncECSConfig.resolve() + + async def _post_setup(self, config: AsyncECSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/config.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/config.py new file mode 100644 index 00000000..9d813d7c --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/config.py @@ -0,0 +1,604 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncAwsJson11ClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import AMAZON_EC2_CONTAINER_SERVICE_V20141113 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + ContinueServiceDeploymentInput, + ContinueServiceDeploymentOutput, + CreateCapacityProviderInput, + CreateCapacityProviderOutput, + CreateClusterInput, + CreateClusterOutput, + CreateDaemonInput, + CreateDaemonOutput, + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + CreateGatewayInput, + CreateGatewayOutput, + CreateServiceInput, + CreateServiceOutput, + CreateTaskSetInput, + CreateTaskSetOutput, + DeleteAccountSettingInput, + DeleteAccountSettingOutput, + DeleteAttributesInput, + DeleteAttributesOutput, + DeleteCapacityProviderInput, + DeleteCapacityProviderOutput, + DeleteClusterInput, + DeleteClusterOutput, + DeleteDaemonInput, + DeleteDaemonOutput, + DeleteDaemonTaskDefinitionInput, + DeleteDaemonTaskDefinitionOutput, + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + DeleteGatewayInput, + DeleteGatewayOutput, + DeleteServiceInput, + DeleteServiceOutput, + DeleteTaskDefinitionsInput, + DeleteTaskDefinitionsOutput, + DeleteTaskSetInput, + DeleteTaskSetOutput, + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + DeregisterTaskDefinitionInput, + DeregisterTaskDefinitionOutput, + DescribeCapacityProvidersInput, + DescribeCapacityProvidersOutput, + DescribeClustersInput, + DescribeClustersOutput, + DescribeContainerInstancesInput, + DescribeContainerInstancesOutput, + DescribeDaemonDeploymentsInput, + DescribeDaemonDeploymentsOutput, + DescribeDaemonInput, + DescribeDaemonOutput, + DescribeDaemonRevisionsInput, + DescribeDaemonRevisionsOutput, + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + DescribeGatewayInput, + DescribeGatewayOutput, + DescribeGatewayResourcesInput, + DescribeGatewayResourcesOutput, + DescribeGatewayRouteInput, + DescribeGatewayRouteOutput, + DescribeServiceDeploymentsInput, + DescribeServiceDeploymentsOutput, + DescribeServiceRevisionsInput, + DescribeServiceRevisionsOutput, + DescribeServicesInput, + DescribeServicesOutput, + DescribeTaskDefinitionInput, + DescribeTaskDefinitionOutput, + DescribeTaskSetsInput, + DescribeTaskSetsOutput, + DescribeTasksInput, + DescribeTasksOutput, + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + DiscoverPollEndpointInput, + DiscoverPollEndpointOutput, + ExecuteCommandInput, + ExecuteCommandOutput, + GetTaskProtectionInput, + GetTaskProtectionOutput, + ListAccountSettingsInput, + ListAccountSettingsOutput, + ListAttributesInput, + ListAttributesOutput, + ListClustersInput, + ListClustersOutput, + ListContainerInstancesInput, + ListContainerInstancesOutput, + ListDaemonDeploymentsInput, + ListDaemonDeploymentsOutput, + ListDaemonTaskDefinitionsInput, + ListDaemonTaskDefinitionsOutput, + ListDaemonsInput, + ListDaemonsOutput, + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + ListGatewayRoutesInput, + ListGatewayRoutesOutput, + ListGatewaysInput, + ListGatewaysOutput, + ListServiceDeploymentsInput, + ListServiceDeploymentsOutput, + ListServicesByNamespaceInput, + ListServicesByNamespaceOutput, + ListServicesInput, + ListServicesOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTaskDefinitionFamiliesInput, + ListTaskDefinitionFamiliesOutput, + ListTaskDefinitionsInput, + ListTaskDefinitionsOutput, + ListTasksInput, + ListTasksOutput, + PutAccountSettingDefaultInput, + PutAccountSettingDefaultOutput, + PutAccountSettingInput, + PutAccountSettingOutput, + PutAttributesInput, + PutAttributesOutput, + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + RegisterContainerInstanceInput, + RegisterContainerInstanceOutput, + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + RegisterTaskDefinitionInput, + RegisterTaskDefinitionOutput, + RunTaskInput, + RunTaskOutput, + StartTaskInput, + StartTaskOutput, + StopServiceDeploymentInput, + StopServiceDeploymentOutput, + StopTaskInput, + StopTaskOutput, + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + SubmitContainerStateChangeInput, + SubmitContainerStateChangeOutput, + SubmitTaskStateChangeInput, + SubmitTaskStateChangeOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateCapacityProviderInput, + UpdateCapacityProviderOutput, + UpdateClusterInput, + UpdateClusterOutput, + UpdateClusterSettingsInput, + UpdateClusterSettingsOutput, + UpdateContainerAgentInput, + UpdateContainerAgentOutput, + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + UpdateDaemonInput, + UpdateDaemonOutput, + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + UpdateGatewayInput, + UpdateGatewayOutput, + UpdateServiceInput, + UpdateServiceOutput, + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + UpdateTaskProtectionInput, + UpdateTaskProtectionOutput, + UpdateTaskSetInput, + UpdateTaskSetOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + Any, + Any, + ], + Interceptor[ + ContinueServiceDeploymentInput, ContinueServiceDeploymentOutput, Any, Any + ], + Interceptor[ + CreateCapacityProviderInput, CreateCapacityProviderOutput, Any, Any + ], + Interceptor[CreateClusterInput, CreateClusterOutput, Any, Any], + Interceptor[CreateDaemonInput, CreateDaemonOutput, Any, Any], + Interceptor[ + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[CreateGatewayInput, CreateGatewayOutput, Any, Any], + Interceptor[CreateServiceInput, CreateServiceOutput, Any, Any], + Interceptor[CreateTaskSetInput, CreateTaskSetOutput, Any, Any], + Interceptor[DeleteAccountSettingInput, DeleteAccountSettingOutput, Any, Any], + Interceptor[DeleteAttributesInput, DeleteAttributesOutput, Any, Any], + Interceptor[ + DeleteCapacityProviderInput, DeleteCapacityProviderOutput, Any, Any + ], + Interceptor[DeleteClusterInput, DeleteClusterOutput, Any, Any], + Interceptor[DeleteDaemonInput, DeleteDaemonOutput, Any, Any], + Interceptor[ + DeleteDaemonTaskDefinitionInput, DeleteDaemonTaskDefinitionOutput, Any, Any + ], + Interceptor[ + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[DeleteGatewayInput, DeleteGatewayOutput, Any, Any], + Interceptor[DeleteServiceInput, DeleteServiceOutput, Any, Any], + Interceptor[DeleteTaskDefinitionsInput, DeleteTaskDefinitionsOutput, Any, Any], + Interceptor[DeleteTaskSetInput, DeleteTaskSetOutput, Any, Any], + Interceptor[ + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTaskDefinitionInput, DeregisterTaskDefinitionOutput, Any, Any + ], + Interceptor[ + DescribeCapacityProvidersInput, DescribeCapacityProvidersOutput, Any, Any + ], + Interceptor[DescribeClustersInput, DescribeClustersOutput, Any, Any], + Interceptor[ + DescribeContainerInstancesInput, DescribeContainerInstancesOutput, Any, Any + ], + Interceptor[DescribeDaemonInput, DescribeDaemonOutput, Any, Any], + Interceptor[ + DescribeDaemonDeploymentsInput, DescribeDaemonDeploymentsOutput, Any, Any + ], + Interceptor[ + DescribeDaemonRevisionsInput, DescribeDaemonRevisionsOutput, Any, Any + ], + Interceptor[ + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + Any, + Any, + ], + Interceptor[ + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[DescribeGatewayInput, DescribeGatewayOutput, Any, Any], + Interceptor[ + DescribeGatewayResourcesInput, DescribeGatewayResourcesOutput, Any, Any + ], + Interceptor[DescribeGatewayRouteInput, DescribeGatewayRouteOutput, Any, Any], + Interceptor[ + DescribeServiceDeploymentsInput, DescribeServiceDeploymentsOutput, Any, Any + ], + Interceptor[ + DescribeServiceRevisionsInput, DescribeServiceRevisionsOutput, Any, Any + ], + Interceptor[DescribeServicesInput, DescribeServicesOutput, Any, Any], + Interceptor[ + DescribeTaskDefinitionInput, DescribeTaskDefinitionOutput, Any, Any + ], + Interceptor[DescribeTasksInput, DescribeTasksOutput, Any, Any], + Interceptor[DescribeTaskSetsInput, DescribeTaskSetsOutput, Any, Any], + Interceptor[ + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + Any, + Any, + ], + Interceptor[DiscoverPollEndpointInput, DiscoverPollEndpointOutput, Any, Any], + Interceptor[ExecuteCommandInput, ExecuteCommandOutput, Any, Any], + Interceptor[GetTaskProtectionInput, GetTaskProtectionOutput, Any, Any], + Interceptor[ListAccountSettingsInput, ListAccountSettingsOutput, Any, Any], + Interceptor[ListAttributesInput, ListAttributesOutput, Any, Any], + Interceptor[ListClustersInput, ListClustersOutput, Any, Any], + Interceptor[ + ListContainerInstancesInput, ListContainerInstancesOutput, Any, Any + ], + Interceptor[ListDaemonDeploymentsInput, ListDaemonDeploymentsOutput, Any, Any], + Interceptor[ListDaemonsInput, ListDaemonsOutput, Any, Any], + Interceptor[ + ListDaemonTaskDefinitionsInput, ListDaemonTaskDefinitionsOutput, Any, Any + ], + Interceptor[ + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + Any, + Any, + ], + Interceptor[ListGatewayRoutesInput, ListGatewayRoutesOutput, Any, Any], + Interceptor[ListGatewaysInput, ListGatewaysOutput, Any, Any], + Interceptor[ + ListServiceDeploymentsInput, ListServiceDeploymentsOutput, Any, Any + ], + Interceptor[ListServicesInput, ListServicesOutput, Any, Any], + Interceptor[ + ListServicesByNamespaceInput, ListServicesByNamespaceOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ + ListTaskDefinitionFamiliesInput, ListTaskDefinitionFamiliesOutput, Any, Any + ], + Interceptor[ListTaskDefinitionsInput, ListTaskDefinitionsOutput, Any, Any], + Interceptor[ListTasksInput, ListTasksOutput, Any, Any], + Interceptor[PutAccountSettingInput, PutAccountSettingOutput, Any, Any], + Interceptor[ + PutAccountSettingDefaultInput, PutAccountSettingDefaultOutput, Any, Any + ], + Interceptor[PutAttributesInput, PutAttributesOutput, Any, Any], + Interceptor[ + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + Any, + Any, + ], + Interceptor[ + RegisterContainerInstanceInput, RegisterContainerInstanceOutput, Any, Any + ], + Interceptor[ + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + Any, + Any, + ], + Interceptor[ + RegisterTaskDefinitionInput, RegisterTaskDefinitionOutput, Any, Any + ], + Interceptor[RunTaskInput, RunTaskOutput, Any, Any], + Interceptor[StartTaskInput, StartTaskOutput, Any, Any], + Interceptor[StopServiceDeploymentInput, StopServiceDeploymentOutput, Any, Any], + Interceptor[StopTaskInput, StopTaskOutput, Any, Any], + Interceptor[ + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + Any, + Any, + ], + Interceptor[ + SubmitContainerStateChangeInput, SubmitContainerStateChangeOutput, Any, Any + ], + Interceptor[SubmitTaskStateChangeInput, SubmitTaskStateChangeOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[ + UpdateCapacityProviderInput, UpdateCapacityProviderOutput, Any, Any + ], + Interceptor[UpdateClusterInput, UpdateClusterOutput, Any, Any], + Interceptor[UpdateClusterSettingsInput, UpdateClusterSettingsOutput, Any, Any], + Interceptor[UpdateContainerAgentInput, UpdateContainerAgentOutput, Any, Any], + Interceptor[ + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + Any, + Any, + ], + Interceptor[UpdateDaemonInput, UpdateDaemonOutput, Any, Any], + Interceptor[ + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[UpdateGatewayInput, UpdateGatewayOutput, Any, Any], + Interceptor[UpdateServiceInput, UpdateServiceOutput, Any, Any], + Interceptor[ + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + Any, + Any, + ], + Interceptor[UpdateTaskProtectionInput, UpdateTaskProtectionOutput, Any, Any], + Interceptor[UpdateTaskSetInput, UpdateTaskSetOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.ecs", + service_target="AmazonEC2ContainerServiceV20141113", + service_schema=AMAZON_EC2_CONTAINER_SERVICE_V20141113, +) + + +class _AsyncECSConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncECSConfig(AsyncAwsConfig): + """ECS configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("ecs").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncAwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="ecs") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncECSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncECSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/user_agent.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/user_agent.py new file mode 100644 index 00000000..9a0614f9 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncECSConfig + + +def aws_user_agent_plugin(config: AsyncECSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="ECS", + ) + ) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/auth.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/client.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/client.py new file mode 100644 index 00000000..2bf650e6 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/client.py @@ -0,0 +1,3169 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import ECSConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + ContinueServiceDeploymentInput, + ContinueServiceDeploymentOutput, + CreateCapacityProviderInput, + CreateCapacityProviderOutput, + CreateClusterInput, + CreateClusterOutput, + CreateDaemonInput, + CreateDaemonOutput, + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + CreateGatewayInput, + CreateGatewayOutput, + CreateServiceInput, + CreateServiceOutput, + CreateTaskSetInput, + CreateTaskSetOutput, + DeleteAccountSettingInput, + DeleteAccountSettingOutput, + DeleteAttributesInput, + DeleteAttributesOutput, + DeleteCapacityProviderInput, + DeleteCapacityProviderOutput, + DeleteClusterInput, + DeleteClusterOutput, + DeleteDaemonInput, + DeleteDaemonOutput, + DeleteDaemonTaskDefinitionInput, + DeleteDaemonTaskDefinitionOutput, + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + DeleteGatewayInput, + DeleteGatewayOutput, + DeleteServiceInput, + DeleteServiceOutput, + DeleteTaskDefinitionsInput, + DeleteTaskDefinitionsOutput, + DeleteTaskSetInput, + DeleteTaskSetOutput, + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + DeregisterTaskDefinitionInput, + DeregisterTaskDefinitionOutput, + DescribeCapacityProvidersInput, + DescribeCapacityProvidersOutput, + DescribeClustersInput, + DescribeClustersOutput, + DescribeContainerInstancesInput, + DescribeContainerInstancesOutput, + DescribeDaemonDeploymentsInput, + DescribeDaemonDeploymentsOutput, + DescribeDaemonInput, + DescribeDaemonOutput, + DescribeDaemonRevisionsInput, + DescribeDaemonRevisionsOutput, + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + DescribeGatewayInput, + DescribeGatewayOutput, + DescribeGatewayResourcesInput, + DescribeGatewayResourcesOutput, + DescribeGatewayRouteInput, + DescribeGatewayRouteOutput, + DescribeServiceDeploymentsInput, + DescribeServiceDeploymentsOutput, + DescribeServiceRevisionsInput, + DescribeServiceRevisionsOutput, + DescribeServicesInput, + DescribeServicesOutput, + DescribeTaskDefinitionInput, + DescribeTaskDefinitionOutput, + DescribeTaskSetsInput, + DescribeTaskSetsOutput, + DescribeTasksInput, + DescribeTasksOutput, + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + DiscoverPollEndpointInput, + DiscoverPollEndpointOutput, + ExecuteCommandInput, + ExecuteCommandOutput, + GetTaskProtectionInput, + GetTaskProtectionOutput, + ListAccountSettingsInput, + ListAccountSettingsOutput, + ListAttributesInput, + ListAttributesOutput, + ListClustersInput, + ListClustersOutput, + ListContainerInstancesInput, + ListContainerInstancesOutput, + ListDaemonDeploymentsInput, + ListDaemonDeploymentsOutput, + ListDaemonTaskDefinitionsInput, + ListDaemonTaskDefinitionsOutput, + ListDaemonsInput, + ListDaemonsOutput, + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + ListGatewayRoutesInput, + ListGatewayRoutesOutput, + ListGatewaysInput, + ListGatewaysOutput, + ListServiceDeploymentsInput, + ListServiceDeploymentsOutput, + ListServicesByNamespaceInput, + ListServicesByNamespaceOutput, + ListServicesInput, + ListServicesOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTaskDefinitionFamiliesInput, + ListTaskDefinitionFamiliesOutput, + ListTaskDefinitionsInput, + ListTaskDefinitionsOutput, + ListTasksInput, + ListTasksOutput, + PutAccountSettingDefaultInput, + PutAccountSettingDefaultOutput, + PutAccountSettingInput, + PutAccountSettingOutput, + PutAttributesInput, + PutAttributesOutput, + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + RegisterContainerInstanceInput, + RegisterContainerInstanceOutput, + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + RegisterTaskDefinitionInput, + RegisterTaskDefinitionOutput, + RunTaskInput, + RunTaskOutput, + StartTaskInput, + StartTaskOutput, + StopServiceDeploymentInput, + StopServiceDeploymentOutput, + StopTaskInput, + StopTaskOutput, + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + SubmitContainerStateChangeInput, + SubmitContainerStateChangeOutput, + SubmitTaskStateChangeInput, + SubmitTaskStateChangeOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateCapacityProviderInput, + UpdateCapacityProviderOutput, + UpdateClusterInput, + UpdateClusterOutput, + UpdateClusterSettingsInput, + UpdateClusterSettingsOutput, + UpdateContainerAgentInput, + UpdateContainerAgentOutput, + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + UpdateDaemonInput, + UpdateDaemonOutput, + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + UpdateGatewayInput, + UpdateGatewayOutput, + UpdateServiceInput, + UpdateServiceOutput, + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + UpdateTaskProtectionInput, + UpdateTaskProtectionOutput, + UpdateTaskSetInput, + UpdateTaskSetOutput, + ) + + +logger = logging.getLogger(__name__) + + +class ECSClient(Client[ECSConfig]): + """ + 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. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def associate_gateway_with_cluster( + self, + input: AssociateGatewayWithClusterInput, + plugins: list[Plugin] | None = None, + ) -> AssociateGatewayWithClusterOutput: + """ + Associates a gateway with an Amazon ECS cluster. After a cluster is + associated with a gateway, services in that cluster can use the gateway + for ingress. No changes take effect until you update a service in the + cluster to use the gateway. A single cluster can be associated with up + to 5 gateways. + + Args: + input: + An instance of `AssociateGatewayWithClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateGatewayWithClusterOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_GATEWAY_WITH_CLUSTER, [], plugins) + + def continue_service_deployment( + self, input: ContinueServiceDeploymentInput, plugins: list[Plugin] | None = None + ) -> ContinueServiceDeploymentOutput: + """ + Continues or rolls back an Amazon ECS service deployment that is paused + at a lifecycle hook. + + When a service deployment reaches a lifecycle stage that has a `PAUSE` + hook configured, the deployment pauses and waits for an explicit action. + Use this API to either continue the deployment to the next stage or roll + back to the previous service revision. + + To find the `hookId` of the paused hook, call + [DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html) + and inspect the `lifecycleHookDetails` field. + + For more information, see [Continuing Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/continue-service-deployment.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ContinueServiceDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ContinueServiceDeploymentOutput`. + """ + return self._invoke(input, _models.CONTINUE_SERVICE_DEPLOYMENT, [], plugins) + + def create_capacity_provider( + self, input: CreateCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> CreateCapacityProviderOutput: + """ + Creates a capacity provider. Capacity providers are associated with a + cluster and are used in capacity provider strategies to facilitate + cluster auto scaling. You can create capacity providers for Amazon ECS + Managed Instances and EC2 instances. Fargate has the predefined + `FARGATE` and `FARGATE_SPOT` capacity providers. + + Args: + input: + An instance of `CreateCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCapacityProviderOutput`. + """ + return self._invoke(input, _models.CREATE_CAPACITY_PROVIDER, [], plugins) + + def create_cluster( + self, + input: CreateClusterInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateClusterOutput: + """ + 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. + + Note: + When you call the + [CreateCluster](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html) + 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `CreateClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateClusterOutput`. + """ + return self._invoke(input, _models.CREATE_CLUSTER, [], plugins) + + def create_daemon( + self, input: CreateDaemonInput, plugins: list[Plugin] | None = None + ) -> CreateDaemonOutput: + """ + Creates a new daemon in the specified cluster and capacity providers. A + daemon deploys cross-cutting software agents such as security + monitoring, telemetry, and logging independently across your Amazon ECS + infrastructure. + + Amazon ECS deploys exactly one daemon task on each container instance of + the specified capacity providers. When a container instance registers + with the cluster, Amazon ECS automatically starts daemon tasks. Amazon + ECS starts a daemon task before scheduling other tasks. + + Daemons are essential for instance health - if a daemon task stops, + Amazon ECS automatically drains and replaces that container instance. + + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `CreateDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDaemonOutput`. + """ + return self._invoke(input, _models.CREATE_DAEMON, [], plugins) + + def create_express_gateway_service( + self, + input: CreateExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> CreateExpressGatewayServiceOutput: + """ + Creates an Express service that simplifies deploying containerized web + applications on Amazon ECS with managed Amazon Web Services + infrastructure. This operation provisions and configures Application + Load Balancers, target groups, security groups, and auto-scaling + policies automatically. + + Specify a primary container configuration with your application image + and basic settings. Amazon ECS creates the necessary Amazon Web Services + resources for traffic distribution, health monitoring, network access + control, and capacity management. + + Provide an execution role for task operations and an infrastructure role + for managing Amazon Web Services resources on your behalf. + + Args: + input: + An instance of `CreateExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateExpressGatewayServiceOutput`. + """ + return self._invoke(input, _models.CREATE_EXPRESS_GATEWAY_SERVICE, [], plugins) + + def create_gateway( + self, input: CreateGatewayInput, plugins: list[Plugin] | None = None + ) -> CreateGatewayOutput: + """ + Creates a gateway. A gateway defines and dynamically manages ingress + paths for your Amazon ECS services, handling traffic routing and + infrastructure across multiple services while optimizing infrastructure + usage. `CreateGateway` is a synchronous operation and the gateway is + returned with a status of `ACTIVE`. The load balancers and other + infrastructure that a gateway manages aren't created until a service in + an associated cluster begins using the gateway. + + To use this operation, you must have the `iam:PassRole` permission for + the infrastructure role that you specify in `infrastructureRoleArn`. + + Args: + input: + An instance of `CreateGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGatewayOutput`. + """ + return self._invoke(input, _models.CREATE_GATEWAY, [], plugins) + + def create_service( + self, input: CreateServiceInput, plugins: list[Plugin] | None = None + ) -> CreateServiceOutput: + """ + Runs and maintains your desired number of tasks from a specified task + definition. If the number of tasks running in a service drops below the + `desiredCount`, Amazon ECS runs another copy of the task in the + specified cluster. To update an existing service, use + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + In addition to maintaining the desired count of tasks in your service, + you can optionally run your service behind one or more load balancers. + The load balancers distribute traffic across the tasks that are + associated with the service. For more information, see [Service load + balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. `volumeConfigurations` is + only supported for REPLICA service and not DAEMON service. For more + information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + Tasks for services that don't use a load balancer are considered + healthy if they're in the `RUNNING` state. Tasks for services that use + a load balancer are considered healthy if they're in the `RUNNING` + state and are reported as healthy by the load balancer. + + There are two service scheduler strategies available: + + - `REPLICA` - The replica scheduling strategy places and maintains your + desired number of tasks across your cluster. By default, the service + scheduler spreads tasks across Availability Zones. You can use task + placement strategies and constraints to customize task placement + decisions. For more information, see [Service scheduler + concepts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `DAEMON` - The daemon scheduling strategy deploys exactly one task on + each active container instance that meets all of the task placement + constraints that you specify in your cluster. The service scheduler + also evaluates the task placement constraints for running tasks. It + also stops tasks that don't meet the placement constraints. When + using this strategy, you don't need to specify a desired number of + tasks, a task placement strategy, or use Service Auto Scaling + policies. For more information, see [Amazon ECS + services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The deployment controller is the mechanism that determines how tasks are + deployed for your service. The valid options are: + + - ECS + + When you create a service which uses the `ECS` deployment controller, + you can choose between the following deployment strategies (which you + can set in the "`strategy`" field in "`deploymentConfiguration`"): : + + - `ROLLING`: When you create a service which uses the *rolling update* + (`ROLLING`) deployment strategy, the Amazon ECS service scheduler + replaces the currently running tasks with new tasks. The number of + tasks that Amazon ECS adds or removes from the service during a + rolling update is controlled by the service deployment + configuration. For more information, see [Deploy Amazon ECS services + by replacing + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Rolling update deployments are best suited for the following + scenarios: + + - Gradual service updates: You need to update your service + incrementally without taking the entire service offline at once. + + - Limited resource requirements: You want to avoid the additional + resource costs of running two complete environments simultaneously + (as required by blue/green deployments). + + - Acceptable deployment time: Your application can tolerate a longer + deployment process, as rolling updates replace tasks one by one. + + - No need for instant roll back: Your service can tolerate a + rollback process that takes minutes rather than seconds. + + - Simple deployment process: You prefer a straightforward deployment + approach without the complexity of managing multiple environments, + target groups, and listeners. + + - No load balancer requirement: Your service doesn't use or require + a load balancer, Application Load Balancer, Network Load Balancer, + or Service Connect (which are required for blue/green + deployments). + + - Stateful applications: Your application maintains state that makes + it difficult to run two parallel environments. + + - Cost sensitivity: You want to minimize deployment costs by not + running duplicate environments during deployment. + + Rolling updates are the default deployment strategy for services and + provide a balance between deployment safety and resource efficiency + for many common application scenarios. + + - `BLUE_GREEN`: A *blue/green* deployment strategy (`BLUE_GREEN`) is a + release methodology that reduces downtime and risk by running two + identical production environments called blue and green. With Amazon + ECS blue/green deployments, you can validate new service revisions + before directing production traffic to them. This approach provides + a safer way to deploy changes with the ability to quickly roll back + if needed. For more information, see [Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-blue-green.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Amazon ECS blue/green deployments are best suited for the following + scenarios: + + - Service validation: When you need to validate new service + revisions before directing production traffic to them + + - Zero downtime: When your service requires zero-downtime + deployments + + - Instant roll back: When you need the ability to quickly roll back + if issues are detected + + - Load balancer requirement: When your service uses Application Load + Balancer, Network Load Balancer, or Service Connect + + - `LINEAR`: A *linear* deployment strategy (`LINEAR`) gradually shifts + traffic from the current production environment to a new environment + in equal percentage increments. With Amazon ECS linear deployments, + you can control the pace of traffic shifting and validate new + service revisions with increasing amounts of production traffic. + + Linear deployments are best suited for the following scenarios: + + - Gradual validation: When you want to gradually validate your new + service version with increasing traffic + + - Performance monitoring: When you need time to monitor metrics and + performance during the deployment + + - Risk minimization: When you want to minimize risk by exposing the + new version to production traffic incrementally + + - Load balancer requirement: When your service uses Application Load + Balancer or Service Connect + + - `CANARY`: A *canary* deployment strategy (`CANARY`) shifts a small + percentage of traffic to the new service revision first, then shifts + the remaining traffic all at once after a specified time period. + This allows you to test the new version with a subset of users + before full deployment. + + Canary deployments are best suited for the following scenarios: + + - Feature testing: When you want to test new features with a small + subset of users before full rollout + + - Production validation: When you need to validate performance and + functionality with real production traffic + + - Blast radius control: When you want to minimize blast radius if + issues are discovered in the new version + + - Load balancer requirement: When your service uses Application Load + Balancer or Service Connect + + - External + + Use a third-party deployment controller. + + - Blue/green deployment (powered by CodeDeploy) + + CodeDeploy installs an updated version of the application as a new + replacement task set and reroutes production traffic from the original + application task set to the replacement task set. The original task + set is terminated after a successful deployment. Use this deployment + controller to verify a new deployment of a service before sending + production traffic to it. + + When creating a service that uses the `EXTERNAL` deployment controller, + you can specify only parameters that aren't controlled at the task set + level. The only required parameter is the service name. You control your + services using the + [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html). + For more information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + When the service scheduler launches new tasks, it determines task + placement. For information about task placement and task placement + strategies, see [Amazon ECS task + placement](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html) + in the *Amazon Elastic Container Service Developer Guide* + + Args: + input: + An instance of `CreateServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceOutput`. + """ + return self._invoke(input, _models.CREATE_SERVICE, [], plugins) + + def create_task_set( + self, input: CreateTaskSetInput, plugins: list[Plugin] | None = None + ) -> CreateTaskSetOutput: + """ + Create a task set in the specified cluster and service. This is used + when a service uses the `EXTERNAL` deployment controller type. For more + information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + + For information about the maximum number of task sets and other quotas, + see [Amazon ECS service + quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `CreateTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTaskSetOutput`. + """ + return self._invoke(input, _models.CREATE_TASK_SET, [], plugins) + + def delete_account_setting( + self, input: DeleteAccountSettingInput, plugins: list[Plugin] | None = None + ) -> DeleteAccountSettingOutput: + """ + Disables an account setting for a specified user, role, or the root user + for an account. + + Args: + input: + An instance of `DeleteAccountSettingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountSettingOutput`. + """ + return self._invoke(input, _models.DELETE_ACCOUNT_SETTING, [], plugins) + + def delete_attributes( + self, input: DeleteAttributesInput, plugins: list[Plugin] | None = None + ) -> DeleteAttributesOutput: + """ + Deletes one or more custom attributes from an Amazon ECS resource. + + Args: + input: + An instance of `DeleteAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAttributesOutput`. + """ + return self._invoke(input, _models.DELETE_ATTRIBUTES, [], plugins) + + def delete_capacity_provider( + self, input: DeleteCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> DeleteCapacityProviderOutput: + """ + Deletes the specified capacity provider. + + Note: + The `FARGATE` and `FARGATE_SPOT` capacity providers are reserved and + can't be deleted. You can disassociate them from a cluster using either + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + or by deleting the cluster. + + Prior to a capacity provider being deleted, the capacity provider must + be removed from the capacity provider strategy from all services. The + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) + API can be used to remove a capacity provider from a service's capacity + provider strategy. When updating a service, the `forceNewDeployment` + option can be used to ensure that any tasks using the Amazon EC2 + instance capacity provided by the capacity provider are transitioned to + use the capacity from the remaining capacity providers. Only capacity + providers that aren't associated with a cluster can be deleted. To + remove a capacity provider from a cluster, you can either use + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + or delete the cluster. + + Args: + input: + An instance of `DeleteCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCapacityProviderOutput`. + """ + return self._invoke(input, _models.DELETE_CAPACITY_PROVIDER, [], plugins) + + def delete_cluster( + self, input: DeleteClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteClusterOutput: + """ + Deletes the specified cluster. The cluster transitions to the `INACTIVE` + state. Clusters with an `INACTIVE` status might remain discoverable in + your account for a period of time. However, this behavior is subject to + change in the future. We don't recommend that you rely on `INACTIVE` + clusters persisting. + + You must deregister all container instances from this cluster before you + may delete it. You can list the container instances in a cluster with + [ListContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html) + and deregister them with + [DeregisterContainerInstance](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html). + + Args: + input: + An instance of `DeleteClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteClusterOutput`. + """ + return self._invoke(input, _models.DELETE_CLUSTER, [], plugins) + + def delete_daemon( + self, input: DeleteDaemonInput, plugins: list[Plugin] | None = None + ) -> DeleteDaemonOutput: + """ + Deletes the specified daemon. The daemon must be in an `ACTIVE` state to + be deleted. Deleting a daemon stops all running daemon tasks on the + associated container instances. Amazon ECS drains existing container + instances and provisions new instances without the deleted daemon. + Amazon ECS automatically launches replacement tasks for your Amazon ECS + services. + + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `DeleteDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDaemonOutput`. + """ + return self._invoke(input, _models.DELETE_DAEMON, [], plugins) + + def delete_daemon_task_definition( + self, + input: DeleteDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDaemonTaskDefinitionOutput: + """ + Deletes the specified daemon task definition. After a daemon task + definition is deleted, no new daemons can be created using this + definition. Existing daemons that reference the deleted daemon task + definition continue to run. + + A daemon task definition must be in an `ACTIVE` state to be deleted. + + Args: + input: + An instance of `DeleteDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDaemonTaskDefinitionOutput`. + """ + return self._invoke(input, _models.DELETE_DAEMON_TASK_DEFINITION, [], plugins) + + def delete_express_gateway_service( + self, + input: DeleteExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> DeleteExpressGatewayServiceOutput: + """ + Deletes an Express service and removes all associated Amazon Web + Services resources. This operation stops service tasks, removes the + Application Load Balancer, target groups, security groups, auto-scaling + policies, and other managed infrastructure components. + + The service enters a `DRAINING` state where existing tasks complete + current requests without starting new tasks. After all tasks stop, the + service and infrastructure are permanently removed. + + This operation cannot be reversed. Back up important data and verify the + service is no longer needed before deletion. + + Args: + input: + An instance of `DeleteExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteExpressGatewayServiceOutput`. + """ + return self._invoke(input, _models.DELETE_EXPRESS_GATEWAY_SERVICE, [], plugins) + + def delete_gateway( + self, input: DeleteGatewayInput, plugins: list[Plugin] | None = None + ) -> DeleteGatewayOutput: + """ + Deletes a gateway. Before you can delete a gateway, deletion protection + must be disabled and the gateway must not have any cluster associations + that are in the `ACTIVE` or `DISASSOCIATING` state. If associations + exist, the operation fails; disassociate all clusters first. + `DeleteGateway` is a synchronous operation. After you delete a gateway, + subsequent requests for it return a `GatewayNotFoundException`. + + Args: + input: + An instance of `DeleteGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGatewayOutput`. + """ + return self._invoke(input, _models.DELETE_GATEWAY, [], plugins) + + def delete_service( + self, input: DeleteServiceInput, plugins: list[Plugin] | None = None + ) -> DeleteServiceOutput: + """ + Deletes a specified service within a cluster. You can delete a service + if you have no running tasks in it and the desired task count is zero. + If the service is actively maintaining tasks, you can't delete it, and + you must update the service to a desired task count of zero. For more + information, see + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + Note: + When you delete a service, if there are still running tasks that require + cleanup, the service status moves from `ACTIVE` to `DRAINING`, and the + service is no longer visible in the console or in the + [ListServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html) + API operation. After all tasks have transitioned to either `STOPPING` or + `STOPPED` status, the service status moves from `DRAINING` to + `INACTIVE`. Services in the `DRAINING` or `INACTIVE` status can still be + viewed with the + [DescribeServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html) + API operation. However, in the future, `INACTIVE` services may be + cleaned up and purged from Amazon ECS record keeping, and + [DescribeServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html) + calls on those services return a `ServiceNotFoundException` error. + Warning: + If you attempt to create a new service with the same name as an existing + service in either `ACTIVE` or `DRAINING` status, you receive an error. + + Args: + input: + An instance of `DeleteServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceOutput`. + """ + return self._invoke(input, _models.DELETE_SERVICE, [], plugins) + + def delete_task_definitions( + self, input: DeleteTaskDefinitionsInput, plugins: list[Plugin] | None = None + ) -> DeleteTaskDefinitionsOutput: + """ + Deletes one or more task definitions. + + You must deregister a task definition revision before you delete it. For + more information, see + [DeregisterTaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html). + + When you delete a task definition revision, it is immediately + transitions from the `INACTIVE` to `DELETE_IN_PROGRESS`. Existing tasks + and services that reference a `DELETE_IN_PROGRESS` task definition + revision continue to run without disruption. Existing services that + reference a `DELETE_IN_PROGRESS` task definition revision can still + scale up or down by modifying the service's desired count. + + You can't use a `DELETE_IN_PROGRESS` task definition revision to run + new tasks or create new services. You also can't update an existing + service to reference a `DELETE_IN_PROGRESS` task definition revision. + + A task definition revision will stay in `DELETE_IN_PROGRESS` status + until all the associated tasks and services have been terminated. + + When you delete all `INACTIVE` task definition revisions, the task + definition name is not displayed in the console and not returned in the + API. If a task definition revisions are in the `DELETE_IN_PROGRESS` + state, the task definition name is displayed in the console and returned + in the API. The task definition name is retained by Amazon ECS and the + revision is incremented the next time you create a task definition with + that name. + + Args: + input: + An instance of `DeleteTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTaskDefinitionsOutput`. + """ + return self._invoke(input, _models.DELETE_TASK_DEFINITIONS, [], plugins) + + def delete_task_set( + self, input: DeleteTaskSetInput, plugins: list[Plugin] | None = None + ) -> DeleteTaskSetOutput: + """ + Deletes a specified task set within a service. This is used when a + service uses the `EXTERNAL` deployment controller type. For more + information, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `DeleteTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTaskSetOutput`. + """ + return self._invoke(input, _models.DELETE_TASK_SET, [], plugins) + + def deregister_container_instance( + self, + input: DeregisterContainerInstanceInput, + plugins: list[Plugin] | None = None, + ) -> DeregisterContainerInstanceOutput: + """ + Deregisters an Amazon ECS container instance from the specified cluster. + This instance is no longer available to run tasks. + + If you intend to use the container instance for some other purpose after + deregistration, we recommend that you stop all of the tasks running on + the container instance before deregistration. That prevents any orphaned + tasks from consuming resources. + + Deregistering a container instance removes the instance from a cluster, + but it doesn't terminate the EC2 instance. If you are finished using + the instance, be sure to terminate it in the Amazon EC2 console to stop + billing. + + Note: + If you terminate a running container instance, Amazon ECS automatically + deregisters the instance from your cluster (stopped container instances + or instances with disconnected agents aren't automatically deregistered + when terminated). + + Args: + input: + An instance of `DeregisterContainerInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterContainerInstanceOutput`. + """ + return self._invoke(input, _models.DEREGISTER_CONTAINER_INSTANCE, [], plugins) + + def deregister_task_definition( + self, input: DeregisterTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> DeregisterTaskDefinitionOutput: + """ + Deregisters the specified task definition by family and revision. Upon + deregistration, the task definition is marked as `INACTIVE`. Existing + tasks and services that reference an `INACTIVE` task definition continue + to run without disruption. Existing services that reference an + `INACTIVE` task definition can still scale up or down by modifying the + service's desired count. If you want to delete a task definition + revision, you must first deregister the task definition revision. + + You can't use an `INACTIVE` task definition to run new tasks or create + new services, and you can't update an existing service to reference an + `INACTIVE` task definition. However, there may be up to a 10-minute + window following deregistration where these restrictions have not yet + taken effect. + + Note: + At this time, `INACTIVE` task definitions remain discoverable in your + account indefinitely. However, this behavior is subject to change in the + future. We don't recommend that you rely on `INACTIVE` task definitions + persisting beyond the lifecycle of any associated tasks and services. + + You must deregister a task definition revision before you delete it. For + more information, see + [DeleteTaskDefinitions](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteTaskDefinitions.html). + + Args: + input: + An instance of `DeregisterTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterTaskDefinitionOutput`. + """ + return self._invoke(input, _models.DEREGISTER_TASK_DEFINITION, [], plugins) + + def describe_capacity_providers( + self, + input: DescribeCapacityProvidersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCapacityProvidersOutput: + """ + Describes one or more of your capacity providers. + + Args: + input: + An instance of `DescribeCapacityProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCapacityProvidersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CAPACITY_PROVIDERS, [], plugins) + + def describe_clusters( + self, + input: DescribeClustersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeClustersOutput: + """ + Describes one or more of your clusters. + + For CLI examples, see + [describe-clusters.rst](https://github.com/aws/aws-cli/blob/develop/awscli/examples/ecs/describe-clusters.rst) + on GitHub. + + Args: + input: + An instance of `DescribeClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeClustersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CLUSTERS, [], plugins) + + def describe_container_instances( + self, + input: DescribeContainerInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeContainerInstancesOutput: + """ + Describes one or more container instances. Returns metadata about each + container instance requested. + + Args: + input: + An instance of `DescribeContainerInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeContainerInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CONTAINER_INSTANCES, [], plugins) + + def describe_daemon( + self, input: DescribeDaemonInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonOutput: + """ + Describes the specified daemon. + + Args: + input: + An instance of `DescribeDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DAEMON, [], plugins) + + def describe_daemon_deployments( + self, input: DescribeDaemonDeploymentsInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonDeploymentsOutput: + """ + Describes one or more of your daemon deployments. + + A daemon deployment orchestrates the progressive rollout of daemon task + updates across container instances managed by the daemon's capacity + providers. Each deployment includes circuit breaker and alarm-based + rollback capabilities. + + Args: + input: + An instance of `DescribeDaemonDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonDeploymentsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DAEMON_DEPLOYMENTS, [], plugins) + + def describe_daemon_revisions( + self, input: DescribeDaemonRevisionsInput, plugins: list[Plugin] | None = None + ) -> DescribeDaemonRevisionsOutput: + """ + Describes one or more of your daemon revisions. + + A daemon revision is a snapshot of a daemon's configuration at the time + a deployment was initiated. It captures the daemon task definition, + container images, tag propagation, and execute command settings. Daemon + revisions are immutable. + + Args: + input: + An instance of `DescribeDaemonRevisionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonRevisionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DAEMON_REVISIONS, [], plugins) + + def describe_daemon_task_definition( + self, + input: DescribeDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDaemonTaskDefinitionOutput: + """ + Describes a daemon task definition. You can specify a `family` and + `revision` to find information about a specific daemon task definition, + or you can simply specify the family to find the latest `ACTIVE` + revision in that family. + + Args: + input: + An instance of `DescribeDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDaemonTaskDefinitionOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DAEMON_TASK_DEFINITION, [], plugins) + + def describe_express_gateway_service( + self, + input: DescribeExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> DescribeExpressGatewayServiceOutput: + """ + Retrieves detailed information about an Express service, including + current status, configuration, managed infrastructure, and service + revisions. + + Returns comprehensive service details, active service revisions, ingress + paths with endpoints, and managed Amazon Web Services resource status + including load balancers and auto-scaling policies. + + Use the `include` parameter to retrieve additional information such as + resource tags. + + Args: + input: + An instance of `DescribeExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExpressGatewayServiceOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_EXPRESS_GATEWAY_SERVICE, [], plugins + ) + + def describe_gateway( + self, input: DescribeGatewayInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayOutput: + """ + Describes a gateway, including its configuration, status, and the + type-specific infrastructure settings that it uses. + + Args: + input: + An instance of `DescribeGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayOutput`. + """ + return self._invoke(input, _models.DESCRIBE_GATEWAY, [], plugins) + + def describe_gateway_resources( + self, input: DescribeGatewayResourcesInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayResourcesOutput: + """ + Returns the infrastructure that a gateway has created and manages, so + that you can follow the traffic path from top-level shared resources, + such as load balancers, to the service-specific resources represented as + gateway routes. Responses include only the Amazon Resource Names (ARNs) + of gateway-managed infrastructure. For the current state of a resource, + describe it with the corresponding Amazon Web Services service (Elastic + Load Balancing, Amazon EC2, or Amazon Web Services Certificate Manager). + The results are paginated. + + Args: + input: + An instance of `DescribeGatewayResourcesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayResourcesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_GATEWAY_RESOURCES, [], plugins) + + def describe_gateway_route( + self, input: DescribeGatewayRouteInput, plugins: list[Plugin] | None = None + ) -> DescribeGatewayRouteOutput: + """ + Describes a gateway route, including its status, the service it routes + traffic to, and the service-specific infrastructure, such as target + groups and listener rules, that the gateway manages for it. + + Args: + input: + An instance of `DescribeGatewayRouteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGatewayRouteOutput`. + """ + return self._invoke(input, _models.DESCRIBE_GATEWAY_ROUTE, [], plugins) + + def describe_service_deployments( + self, + input: DescribeServiceDeploymentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeServiceDeploymentsOutput: + """ + Describes one or more of your service deployments. + + A service deployment happens when you release a software update for the + service. For more information, see [View service history using Amazon + ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-deployment.html). + + Args: + input: + An instance of `DescribeServiceDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceDeploymentsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SERVICE_DEPLOYMENTS, [], plugins) + + def describe_service_revisions( + self, input: DescribeServiceRevisionsInput, plugins: list[Plugin] | None = None + ) -> DescribeServiceRevisionsOutput: + """ + Describes one or more service revisions. + + A service revision is a version of the service that includes the values + for the Amazon ECS resources (for example, task definition) and the + environment resources (for example, load balancers, subnets, and + security groups). For more information, see [Amazon ECS service + revisions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-revision.html). + + You can't describe a service revision that was created before October + 25, 2024. + + Args: + input: + An instance of `DescribeServiceRevisionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServiceRevisionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SERVICE_REVISIONS, [], plugins) + + def describe_services( + self, input: DescribeServicesInput, plugins: list[Plugin] | None = None + ) -> DescribeServicesOutput: + """ + Describes the specified services running in your cluster. + + Args: + input: + An instance of `DescribeServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServicesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SERVICES, [], plugins) + + def describe_task_definition( + self, input: DescribeTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> DescribeTaskDefinitionOutput: + """ + Describes a task definition. You can specify a `family` and `revision` + to find information about a specific task definition, or you can simply + specify the family to find the latest `ACTIVE` revision in that family. + + Note: + You can only describe `INACTIVE` task definitions while an active task + or service references them. + + Args: + input: + An instance of `DescribeTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTaskDefinitionOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TASK_DEFINITION, [], plugins) + + def describe_tasks( + self, input: DescribeTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeTasksOutput: + """ + Describes a specified task or tasks. + + Currently, stopped tasks appear in the returned results for at least one + hour. + + If you have tasks with tags, and then delete the cluster, the tagged + tasks are returned in the response. If you create a new cluster with the + same name as the deleted cluster, the tagged tasks are not included in + the response. + + Args: + input: + An instance of `DescribeTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TASKS, [], plugins) + + def describe_task_sets( + self, input: DescribeTaskSetsInput, plugins: list[Plugin] | None = None + ) -> DescribeTaskSetsOutput: + """ + Describes the task sets in the specified cluster and service. This is + used when a service uses the `EXTERNAL` deployment controller type. For + more information, see [Amazon ECS Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `DescribeTaskSetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTaskSetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TASK_SETS, [], plugins) + + def disassociate_gateway_from_cluster( + self, + input: DisassociateGatewayFromClusterInput, + plugins: list[Plugin] | None = None, + ) -> DisassociateGatewayFromClusterOutput: + """ + Removes the association between a gateway and an Amazon ECS cluster. The + association remains in the `DISASSOCIATING` state until you remove all + of the gateway routes for the cluster by updating the associated + services. You can use `ListGatewayRoutes` with a cluster filter to + determine which routes are preventing disassociation. No infrastructure + changes are made until the affected services are updated. + + Args: + input: + An instance of `DisassociateGatewayFromClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisassociateGatewayFromClusterOutput`. + """ + return self._invoke( + input, _models.DISASSOCIATE_GATEWAY_FROM_CLUSTER, [], plugins + ) + + def discover_poll_endpoint( + self, + input: DiscoverPollEndpointInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DiscoverPollEndpointOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Returns an endpoint for the Amazon ECS agent to poll for updates. + + Args: + input: + An instance of `DiscoverPollEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DiscoverPollEndpointOutput`. + """ + return self._invoke(input, _models.DISCOVER_POLL_ENDPOINT, [], plugins) + + def execute_command( + self, input: ExecuteCommandInput, plugins: list[Plugin] | None = None + ) -> ExecuteCommandOutput: + """ + Runs a command remotely on a container within a task. + + If you use a condition key in your IAM policy to refine the conditions + for the policy statement, for example limit the actions to a specific + cluster, you receive an `AccessDeniedException` when there is a mismatch + between the condition key value and the corresponding parameter value. + + For information about required permissions and considerations, see + [Using Amazon ECS Exec for + debugging](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) + in the *Amazon ECS Developer Guide*. + + Args: + input: + An instance of `ExecuteCommandInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ExecuteCommandOutput`. + """ + return self._invoke(input, _models.EXECUTE_COMMAND, [], plugins) + + def get_task_protection( + self, input: GetTaskProtectionInput, plugins: list[Plugin] | None = None + ) -> GetTaskProtectionOutput: + """ + Retrieves the protection status of tasks in an Amazon ECS service. + + Args: + input: + An instance of `GetTaskProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetTaskProtectionOutput`. + """ + return self._invoke(input, _models.GET_TASK_PROTECTION, [], plugins) + + def list_account_settings( + self, + input: ListAccountSettingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListAccountSettingsOutput: + """ + Lists the account settings for a specified principal. + + Args: + input: + An instance of `ListAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccountSettingsOutput`. + """ + return self._invoke(input, _models.LIST_ACCOUNT_SETTINGS, [], plugins) + + def list_attributes( + self, input: ListAttributesInput, plugins: list[Plugin] | None = None + ) -> ListAttributesOutput: + """ + Lists the attributes for Amazon ECS resources within a specified target + type and cluster. When you specify a target type and cluster, + `ListAttributes` returns a list of attribute objects, one for each + attribute on each resource. You can filter the list of results to a + single attribute name to only return results that have that name. You + can also filter the results by attribute name and value. You can do + this, for example, to see which container instances in a cluster are + running a Linux AMI (`ecs.os-type=linux`). + + Args: + input: + An instance of `ListAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttributesOutput`. + """ + return self._invoke(input, _models.LIST_ATTRIBUTES, [], plugins) + + def list_clusters( + self, + input: ListClustersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListClustersOutput: + """ + Returns a list of existing clusters. + + Args: + input: + An instance of `ListClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListClustersOutput`. + """ + return self._invoke(input, _models.LIST_CLUSTERS, [], plugins) + + def list_container_instances( + self, + input: ListContainerInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListContainerInstancesOutput: + """ + Returns a list of container instances in a specified cluster. You can + filter the results of a `ListContainerInstances` operation with cluster + query language statements inside the `filter` parameter. For more + information, see [Cluster Query + Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ListContainerInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListContainerInstancesOutput`. + """ + return self._invoke(input, _models.LIST_CONTAINER_INSTANCES, [], plugins) + + def list_daemon_deployments( + self, input: ListDaemonDeploymentsInput, plugins: list[Plugin] | None = None + ) -> ListDaemonDeploymentsOutput: + """ + Returns a list of daemon deployments for a specified daemon. You can + filter the results by status or creation time. + + Args: + input: + An instance of `ListDaemonDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonDeploymentsOutput`. + """ + return self._invoke(input, _models.LIST_DAEMON_DEPLOYMENTS, [], plugins) + + def list_daemons( + self, input: ListDaemonsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListDaemonsOutput: + """ + Returns a list of daemons. You can filter the results by cluster or + capacity provider. + + Args: + input: + An instance of `ListDaemonsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonsOutput`. + """ + return self._invoke(input, _models.LIST_DAEMONS, [], plugins) + + def list_daemon_task_definitions( + self, + input: ListDaemonTaskDefinitionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDaemonTaskDefinitionsOutput: + """ + Returns a list of daemon task definitions that are registered to your + account. You can filter the results by family name, status, or both to + find daemon task definitions that match your criteria. + + Args: + input: + An instance of `ListDaemonTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDaemonTaskDefinitionsOutput`. + """ + return self._invoke(input, _models.LIST_DAEMON_TASK_DEFINITIONS, [], plugins) + + def list_gateway_cluster_associations( + self, + input: ListGatewayClusterAssociationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListGatewayClusterAssociationsOutput: + """ + Returns a list of the associations between gateways and clusters. You + can filter the results by gateway, cluster, and status. The results are + paginated. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `ListGatewayClusterAssociationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewayClusterAssociationsOutput`. + """ + return self._invoke( + input, _models.LIST_GATEWAY_CLUSTER_ASSOCIATIONS, [], plugins + ) + + def list_gateway_routes( + self, + input: ListGatewayRoutesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListGatewayRoutesOutput: + """ + Returns a list of gateway routes. A gateway route represents the + association between a service and a gateway and the service-specific + infrastructure the gateway manages for it. You can filter the results by + gateway, cluster, service, container port name, and status. The results + are paginated. We recommend that you use pagination to ensure that the + operation returns quickly and successfully. + + Args: + input: + An instance of `ListGatewayRoutesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewayRoutesOutput`. + """ + return self._invoke(input, _models.LIST_GATEWAY_ROUTES, [], plugins) + + def list_gateways( + self, + input: ListGatewaysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListGatewaysOutput: + """ + Returns a list of gateways in your account. You can filter the results + by gateway name and status. The results are paginated. We recommend that + you use pagination to ensure that the operation returns quickly and + successfully. + + Args: + input: + An instance of `ListGatewaysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGatewaysOutput`. + """ + return self._invoke(input, _models.LIST_GATEWAYS, [], plugins) + + def list_service_deployments( + self, input: ListServiceDeploymentsInput, plugins: list[Plugin] | None = None + ) -> ListServiceDeploymentsOutput: + """ + This operation lists all the service deployments that meet the specified + filter criteria. + + A service deployment happens when you release a software update for the + service. You route traffic from the running service revisions to the new + service revison and control the number of running tasks. + + This API returns the values that you use for the request parameters in + [DescribeServiceRevisions](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceRevisions.html). + + Args: + input: + An instance of `ListServiceDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServiceDeploymentsOutput`. + """ + return self._invoke(input, _models.LIST_SERVICE_DEPLOYMENTS, [], plugins) + + def list_services( + self, + input: ListServicesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListServicesOutput: + """ + Returns a list of services. You can filter the results by cluster, + launch type, and scheduling strategy. + + Args: + input: + An instance of `ListServicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServicesOutput`. + """ + return self._invoke(input, _models.LIST_SERVICES, [], plugins) + + def list_services_by_namespace( + self, input: ListServicesByNamespaceInput, plugins: list[Plugin] | None = None + ) -> ListServicesByNamespaceOutput: + """ + This operation lists all of the services that are associated with a + Cloud Map namespace. This list might include services in different + clusters. In contrast, `ListServices` can only list services in one + cluster at a time. If you need to filter the list of services in a + single cluster by various parameters, use `ListServices`. For more + information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `ListServicesByNamespaceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServicesByNamespaceOutput`. + """ + return self._invoke(input, _models.LIST_SERVICES_BY_NAMESPACE, [], plugins) + + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List the tags for an Amazon ECS resource. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + def list_task_definition_families( + self, + input: ListTaskDefinitionFamiliesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTaskDefinitionFamiliesOutput: + """ + 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. + + Args: + input: + An instance of `ListTaskDefinitionFamiliesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTaskDefinitionFamiliesOutput`. + """ + return self._invoke(input, _models.LIST_TASK_DEFINITION_FAMILIES, [], plugins) + + def list_task_definitions( + self, + input: ListTaskDefinitionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTaskDefinitionsOutput: + """ + 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. + + Args: + input: + An instance of `ListTaskDefinitionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTaskDefinitionsOutput`. + """ + return self._invoke(input, _models.LIST_TASK_DEFINITIONS, [], plugins) + + def list_tasks( + self, input: ListTasksInput | None = None, plugins: list[Plugin] | None = None + ) -> ListTasksOutput: + """ + 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. + + Args: + input: + An instance of `ListTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTasksOutput`. + """ + return self._invoke(input, _models.LIST_TASKS, [], plugins) + + def put_account_setting( + self, input: PutAccountSettingInput, plugins: list[Plugin] | None = None + ) -> PutAccountSettingOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `PutAccountSettingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountSettingOutput`. + """ + return self._invoke(input, _models.PUT_ACCOUNT_SETTING, [], plugins) + + def put_account_setting_default( + self, input: PutAccountSettingDefaultInput, plugins: list[Plugin] | None = None + ) -> PutAccountSettingDefaultOutput: + """ + 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. + + Args: + input: + An instance of `PutAccountSettingDefaultInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountSettingDefaultOutput`. + """ + return self._invoke(input, _models.PUT_ACCOUNT_SETTING_DEFAULT, [], plugins) + + def put_attributes( + self, input: PutAttributesInput, plugins: list[Plugin] | None = None + ) -> PutAttributesOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html). + For more information, see + [Attributes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `PutAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAttributesOutput`. + """ + return self._invoke(input, _models.PUT_ATTRIBUTES, [], plugins) + + def put_cluster_capacity_providers( + self, + input: PutClusterCapacityProvidersInput, + plugins: list[Plugin] | None = None, + ) -> PutClusterCapacityProvidersOutput: + """ + 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](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + 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. + + Amazon ECS Managed Instances doesn't support this, because when you + create a capacity provider with Amazon ECS Managed Instances, it becomes + available only within the specified cluster. + + Args: + input: + An instance of `PutClusterCapacityProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutClusterCapacityProvidersOutput`. + """ + return self._invoke(input, _models.PUT_CLUSTER_CAPACITY_PROVIDERS, [], plugins) + + def register_container_instance( + self, + input: RegisterContainerInstanceInput | None = None, + plugins: list[Plugin] | None = None, + ) -> RegisterContainerInstanceOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Registers an EC2 instance into the specified cluster. This instance + becomes available to place containers on. + + Args: + input: + An instance of `RegisterContainerInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterContainerInstanceOutput`. + """ + return self._invoke(input, _models.REGISTER_CONTAINER_INSTANCE, [], plugins) + + def register_daemon_task_definition( + self, + input: RegisterDaemonTaskDefinitionInput, + plugins: list[Plugin] | None = None, + ) -> RegisterDaemonTaskDefinitionOutput: + """ + Registers a new daemon task definition from the supplied `family` and + `containerDefinitions`. Optionally, you can add data volumes to your + containers with the `volumes` parameter. For more information, see + [Daemon task + definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-task-definitions.html) + in the *Amazon Elastic Container Service Developer Guide*. + + A daemon task definition is a template that describes the containers + that form a daemon. Daemons deploy cross-cutting software agents such as + security monitoring, telemetry, and logging across your Amazon ECS + infrastructure. + + Each time you call `RegisterDaemonTaskDefinition`, a new revision of the + daemon task definition is created. You can't modify a revision after + you register it. + + Args: + input: + An instance of `RegisterDaemonTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterDaemonTaskDefinitionOutput`. + """ + return self._invoke(input, _models.REGISTER_DAEMON_TASK_DEFINITION, [], plugins) + + def register_task_definition( + self, input: RegisterTaskDefinitionInput, plugins: list[Plugin] | None = None + ) -> RegisterTaskDefinitionOutput: + """ + Registers a new task definition from the supplied `family` and + `containerDefinitions`. Optionally, you can add data volumes to your + containers with the `volumes` parameter. For more information about task + definition parameters and defaults, see [Amazon ECS Task + Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can specify a role for your task with the `taskRoleArn` parameter. + When you specify a role for a task, its containers can then use the + latest versions of the CLI or SDKs to make API requests to the Amazon + Web Services services that are specified in the policy that's + associated with the role. For more information, see [IAM Roles for + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can specify a Docker networking mode for the containers in your task + definition with the `networkMode` parameter. If you specify the `awsvpc` + network mode, the task is allocated an elastic network interface, and + you must specify a + [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) + when you create a service or run a task with the task definition. For + more information, see [Task + Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `RegisterTaskDefinitionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterTaskDefinitionOutput`. + """ + return self._invoke(input, _models.REGISTER_TASK_DEFINITION, [], plugins) + + def run_task( + self, input: RunTaskInput, plugins: list[Plugin] | None = None + ) -> RunTaskOutput: + """ + Starts a new task using the specified task definition. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + You can allow Amazon ECS to place tasks for you, or you can customize + how Amazon ECS places tasks using placement constraints and placement + strategies. For more information, see [Scheduling + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Alternatively, you can use `StartTask` to use your own scheduler or + place tasks manually on specific container instances. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. For more information, see + [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + The Amazon ECS API follows an eventual consistency model. This is + because of the distributed nature of the system supporting the API. This + means that the result of an API command you run that affects your Amazon + ECS resources might not be immediately visible to all subsequent + commands you run. Keep this in mind when you carry out an API command + that immediately follows a previous API command. + + To manage eventual consistency, you can do the following: + + - Confirm the state of the resource before you run a command to modify + it. Run the DescribeTasks command using an exponential backoff + algorithm to ensure that you allow enough time for the previous + command to propagate through the system. To do this, run the + DescribeTasks command repeatedly, starting with a couple of seconds of + wait time and increasing gradually up to five minutes of wait time. + + - Add wait time between subsequent commands, even if the DescribeTasks + command returns an accurate response. Apply an exponential backoff + algorithm starting with a couple of seconds of wait time, and increase + gradually up to about five minutes of wait time. + + If you get a `ConflictException` error, the `RunTask` request could not + be processed due to conflicts. The provided `clientToken` is already in + use with a different `RunTask` request. The `resourceIds` are the + existing task ARNs which are already associated with the `clientToken`. + + To fix this issue: + + - Run `RunTask` with a unique `clientToken`. + + - Run `RunTask` with the `clientToken` and the original set of + parameters + + If you get a `ClientException`error, the `RunTask` could not be + processed because you use managed scaling and there is a capacity error + because the quota of tasks in the `PROVISIONING` per cluster has been + reached. For information about the service quotas, see [Amazon ECS + service + quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html). + + Args: + input: + An instance of `RunTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RunTaskOutput`. + """ + return self._invoke(input, _models.RUN_TASK, [], plugins) + + def start_task( + self, input: StartTaskInput, plugins: list[Plugin] | None = None + ) -> StartTaskOutput: + """ + Starts a new task from the specified task definition on the specified + container instance or instances. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + Note: + Amazon Elastic Inference (EI) is no longer available to customers. + + Alternatively, you can use`RunTask` to place tasks for you. For more + information, see [Scheduling + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when creating or updating a service. For more information, see + [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StartTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartTaskOutput`. + """ + return self._invoke(input, _models.START_TASK, [], plugins) + + def stop_service_deployment( + self, input: StopServiceDeploymentInput, plugins: list[Plugin] | None = None + ) -> StopServiceDeploymentOutput: + """ + Stops an ongoing service deployment. + + The following stop types are avaiable: + + - ROLLBACK - This option rolls back the service deployment to the + previous service revision. + + You can use this option even if you didn't configure the service + deployment for the rollback option. + + For more information, see [Stopping Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/stop-service-deployment.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StopServiceDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopServiceDeploymentOutput`. + """ + return self._invoke(input, _models.STOP_SERVICE_DEPLOYMENT, [], plugins) + + def stop_task( + self, input: StopTaskInput, plugins: list[Plugin] | None = None + ) -> StopTaskOutput: + """ + Stops a running task. Any tags associated with the task will be deleted. + + When you call `StopTask` on a task, the equivalent of `docker stop` is + issued to the containers running in the task. This results in a stop + signal value and a default 30-second timeout, after which the `SIGKILL` + value is sent and the containers are forcibly stopped. This signal can + be defined in your container image with the `STOPSIGNAL` instruction and + will default to `SIGTERM`. If the container handles the `SIGTERM` value + gracefully and exits within 30 seconds from receiving it, no `SIGKILL` + value is sent. + + For Windows containers, POSIX signals do not work and runtime stops the + container by sending a `CTRL_SHUTDOWN_EVENT`. For more information, see + [Unable to react to graceful shutdown of (Windows) container + #25982](https://github.com/moby/moby/issues/25982) on GitHub. + + Note: + The default 30-second timeout can be configured on the Amazon ECS + container agent with the `ECS_CONTAINER_STOP_TIMEOUT` variable. For more + information, see [Amazon ECS Container Agent + Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `StopTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopTaskOutput`. + """ + return self._invoke(input, _models.STOP_TASK, [], plugins) + + def submit_attachment_state_changes( + self, + input: SubmitAttachmentStateChangesInput, + plugins: list[Plugin] | None = None, + ) -> SubmitAttachmentStateChangesOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that an attachment changed states. + + Args: + input: + An instance of `SubmitAttachmentStateChangesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitAttachmentStateChangesOutput`. + """ + return self._invoke(input, _models.SUBMIT_ATTACHMENT_STATE_CHANGES, [], plugins) + + def submit_container_state_change( + self, + input: SubmitContainerStateChangeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> SubmitContainerStateChangeOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that a container changed states. + + Args: + input: + An instance of `SubmitContainerStateChangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitContainerStateChangeOutput`. + """ + return self._invoke(input, _models.SUBMIT_CONTAINER_STATE_CHANGE, [], plugins) + + def submit_task_state_change( + self, + input: SubmitTaskStateChangeInput | None = None, + plugins: list[Plugin] | None = None, + ) -> SubmitTaskStateChangeOutput: + """ + Note: + This action is only used by the Amazon ECS agent, and it is not intended + for use outside of the agent. + + Sent to acknowledge that a task changed states. + + Args: + input: + An instance of `SubmitTaskStateChangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SubmitTaskStateChangeOutput`. + """ + return self._invoke(input, _models.SUBMIT_TASK_STATE_CHANGE, [], plugins) + + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Associates the specified tags to a resource with the specified + `resourceArn`. If existing tags on a resource aren't specified in the + request parameters, they aren't changed. When a resource is deleted, + the tags that are associated with that resource are deleted as well. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes specified tags from a resource. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + def update_capacity_provider( + self, input: UpdateCapacityProviderInput, plugins: list[Plugin] | None = None + ) -> UpdateCapacityProviderOutput: + """ + Modifies the parameters for a capacity provider. + + These changes only apply to new Amazon ECS Managed Instances, or EC2 + instances, not existing ones. + + Args: + input: + An instance of `UpdateCapacityProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCapacityProviderOutput`. + """ + return self._invoke(input, _models.UPDATE_CAPACITY_PROVIDER, [], plugins) + + def update_cluster( + self, input: UpdateClusterInput, plugins: list[Plugin] | None = None + ) -> UpdateClusterOutput: + """ + Updates the cluster. + + Args: + input: + An instance of `UpdateClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateClusterOutput`. + """ + return self._invoke(input, _models.UPDATE_CLUSTER, [], plugins) + + def update_cluster_settings( + self, input: UpdateClusterSettingsInput, plugins: list[Plugin] | None = None + ) -> UpdateClusterSettingsOutput: + """ + Modifies the settings to use for a cluster. + + Args: + input: + An instance of `UpdateClusterSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateClusterSettingsOutput`. + """ + return self._invoke(input, _models.UPDATE_CLUSTER_SETTINGS, [], plugins) + + def update_container_agent( + self, input: UpdateContainerAgentInput, plugins: list[Plugin] | None = None + ) -> UpdateContainerAgentOutput: + """ + Updates the Amazon ECS container agent on a specified container + instance. Updating the Amazon ECS container agent doesn't interrupt + running tasks or services on the container instance. The process for + updating the agent differs depending on whether your container instance + was launched with the Amazon ECS-optimized AMI or another operating + system. + + Note: + The `UpdateContainerAgent` API isn't supported for container instances + using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the + container agent, you can update the `ecs-init` package. This updates the + agent. For more information, see [Updating the Amazon ECS container + agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html) + in the *Amazon Elastic Container Service Developer Guide*. + Note: + Agent updates with the `UpdateContainerAgent` API operation do not apply + to Windows container instances. We recommend that you launch new + container instances to update the agent version in your Windows + clusters. + + The `UpdateContainerAgent` API requires an Amazon ECS-optimized AMI or + Amazon Linux AMI with the `ecs-init` service installed and running. For + help updating the Amazon ECS container agent on other operating systems, + see [Manually updating the Amazon ECS container + agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateContainerAgentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContainerAgentOutput`. + """ + return self._invoke(input, _models.UPDATE_CONTAINER_AGENT, [], plugins) + + def update_container_instances_state( + self, + input: UpdateContainerInstancesStateInput, + plugins: list[Plugin] | None = None, + ) -> UpdateContainerInstancesStateOutput: + """ + Modifies the status of an Amazon ECS container instance. + + Once a container instance has reached an `ACTIVE` state, you can change + the status of a container instance to `DRAINING` to manually remove an + instance from a cluster, for example to perform system updates, update + the Docker daemon, or scale down the cluster size. + + Warning: + A container instance can't be changed to `DRAINING` until it has + reached an `ACTIVE` status. If the instance is in any other status, an + error will be received. + + When you set a container instance to `DRAINING`, Amazon ECS prevents new + tasks from being scheduled for placement on the container instance and + replacement service tasks are started on other container instances in + the cluster if the resources are available. Service tasks on the + container instance that are in the `PENDING` state are stopped + immediately. + + Service tasks on the container instance that are in the `RUNNING` state + are stopped and replaced according to the service's deployment + configuration parameters, `minimumHealthyPercent` and `maximumPercent`. + You can change the deployment configuration of your service using + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + + - If `minimumHealthyPercent` is below 100%, the scheduler can ignore + `desiredCount` temporarily during task replacement. For example, + `desiredCount` is four tasks, a minimum of 50% allows the scheduler to + stop two existing tasks before starting two new tasks. If the minimum + is 100%, the service scheduler can't remove existing tasks until the + replacement tasks are considered healthy. Tasks for services that do + not use a load balancer are considered healthy if they're in the + `RUNNING` state. Tasks for services that use a load balancer are + considered healthy if they're in the `RUNNING` state and are reported + as healthy by the load balancer. + + - The `maximumPercent` parameter represents an upper limit on the number + of running tasks during task replacement. You can use this to define + the replacement batch size. For example, if `desiredCount` is four + tasks, a maximum of 200% starts four new tasks before stopping the + four tasks to be drained, provided that the cluster resources required + to do this are available. If the maximum is 100%, then replacement + tasks can't start until the draining tasks have stopped. + + Any `PENDING` or `RUNNING` tasks that do not belong to a service aren't + affected. You must wait for them to finish or stop them manually. + + A container instance has completed draining when it has no more + `RUNNING` tasks. You can verify this using + [ListTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html). + + When a container instance has been drained, you can set a container + instance to `ACTIVE` status and once it has reached that status the + Amazon ECS scheduler can begin scheduling tasks on the instance again. + + Args: + input: + An instance of `UpdateContainerInstancesStateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateContainerInstancesStateOutput`. + """ + return self._invoke( + input, _models.UPDATE_CONTAINER_INSTANCES_STATE, [], plugins + ) + + def update_daemon( + self, input: UpdateDaemonInput, plugins: list[Plugin] | None = None + ) -> UpdateDaemonOutput: + """ + Updates the specified daemon. When you update a daemon, a new deployment + is triggered that progressively rolls out the changes to the container + instances associated with the daemon's capacity providers. For more + information, see [Daemon + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-deployments.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Amazon ECS drains existing container instances and provisions new + instances with the updated daemon. Amazon ECS automatically launches + replacement tasks for your services. + + Warning: + Updating a daemon triggers a rolling deployment that drains and replaces + container instances. Plan updates during maintenance windows to minimize + impact on running services. + Note: + ECS Managed Daemons is only supported for Amazon ECS Managed Instances + Capacity Providers. + + Args: + input: + An instance of `UpdateDaemonInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDaemonOutput`. + """ + return self._invoke(input, _models.UPDATE_DAEMON, [], plugins) + + def update_express_gateway_service( + self, + input: UpdateExpressGatewayServiceInput, + plugins: list[Plugin] | None = None, + ) -> UpdateExpressGatewayServiceOutput: + """ + Updates an existing Express service configuration. Modifies container + settings, resource allocation, auto-scaling configuration, and other + service parameters without recreating the service. + + Amazon ECS creates a new service revision with updated configuration and + performs a rolling deployment to replace existing tasks. The service + remains available during updates, ensuring zero-downtime deployments. + + Some parameters like the infrastructure role cannot be modified after + service creation and require creating a new service. + + Args: + input: + An instance of `UpdateExpressGatewayServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateExpressGatewayServiceOutput`. + """ + return self._invoke(input, _models.UPDATE_EXPRESS_GATEWAY_SERVICE, [], plugins) + + def update_gateway( + self, input: UpdateGatewayInput, plugins: list[Plugin] | None = None + ) -> UpdateGatewayOutput: + """ + Modifies the configuration of a gateway. You can change only the + properties that can be applied without interrupting traffic, and the + configuration variant that you provide must match the gateway's type. + `UpdateGateway` is an asynchronous operation: the changes are applied to + each load balancer the gateway manages, and the gateway reports a status + of `UPDATE_IN_PROGRESS` until the update completes. If Amazon ECS can't + update one or more resources, it makes a best effort to update the rest + and the gateway status changes to `UPDATE_FAILED`. Use `DescribeGateway` + to inspect the gateway's `statusReason` and failures list, which gives + the ARN of each load balancer that was not updated and the operation, + error code, and message for each failure. + + If you specify `infrastructureRoleArn`, you must have the `iam:PassRole` + permission for that role. + + Args: + input: + An instance of `UpdateGatewayInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGatewayOutput`. + """ + return self._invoke(input, _models.UPDATE_GATEWAY, [], plugins) + + def update_service( + self, input: UpdateServiceInput, plugins: list[Plugin] | None = None + ) -> UpdateServiceOutput: + """ + Modifies the parameters of a service. + + Note: + On March 21, 2024, a change was made to resolve the task definition + revision before authorization. When a task definition revision is not + specified, authorization will occur using the latest revision of a task + definition. + + For services using the rolling update (`ECS`) you can update the desired + count, deployment configuration, network configuration, load balancers, + service registries, enable ECS managed tags option, propagate tags + option, task placement constraints and strategies, and task definition. + When you update any of these parameters, Amazon ECS starts new tasks + with the new configuration. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when starting or running a task, or when creating or updating a + service. For more information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. You can + update your volume configurations and trigger a new deployment. + `volumeConfigurations` is only supported for REPLICA service and not + DAEMON service. If you leave `volumeConfigurations` `null`, it doesn't + trigger a new deployment. For more information on volumes, see [Amazon + EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + For services using the blue/green (`CODE_DEPLOY`) deployment controller, + only the desired count, deployment configuration, health check grace + period, task placement constraints and strategies, enable ECS managed + tags option, and propagate tags can be updated using this API. If the + network configuration, platform version, task definition, or load + balancer need to be updated, create a new CodeDeploy deployment. For + more information, see + [CreateDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html) + in the *CodeDeploy API Reference*. + + For services using an external deployment controller, you can update + only the desired count, task placement constraints and strategies, + health check grace period, enable ECS managed tags option, and propagate + tags option, using this API. If the launch type, load balancer, network + configuration, platform version, or task definition need to be updated, + create a new task set For more information, see + [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html). + + You can add to or subtract from the number of instantiations of a task + definition in a service by specifying the cluster that the service is + running in and a new `desiredCount` parameter. + + You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the + volume when starting or running a task, or when creating or updating a + service. For more information, see [Amazon EBS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) + in the *Amazon Elastic Container Service Developer Guide*. + + If you have updated the container image of your application, you can + create a new task definition with that image and deploy it to your + service. The service scheduler uses the minimum healthy percent and + maximum percent parameters (in the service's deployment configuration) + to determine the deployment strategy. + + Note: + If your updated Docker image uses the same tag as what is in the + existing task definition for your service (for example, + `my_image:latest`), you don't need to create a new revision of your + task definition. You can update the service using the + `forceNewDeployment` option. The new tasks launched by the deployment + pull the current image/tag combination from your repository when they + start. + + You can also update the deployment configuration of a service. When a + deployment is triggered by updating the task definition of a service, + the service scheduler uses the deployment configuration parameters, + `minimumHealthyPercent` and `maximumPercent`, to determine the + deployment strategy. + + - If `minimumHealthyPercent` is below 100%, the scheduler can ignore + `desiredCount` temporarily during a deployment. For example, if + `desiredCount` is four tasks, a minimum of 50% allows the scheduler to + stop two existing tasks before starting two new tasks. Tasks for + services that don't use a load balancer are considered healthy if + they're in the `RUNNING` state. Tasks for services that use a load + balancer are considered healthy if they're in the `RUNNING` state and + are reported as healthy by the load balancer. + + - The `maximumPercent` parameter represents an upper limit on the number + of running tasks during a deployment. You can use it to define the + deployment batch size. For example, if `desiredCount` is four tasks, a + maximum of 200% starts four new tasks before stopping the four older + tasks (provided that the cluster resources required to do this are + available). + + When + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) + stops a task during a deployment, the equivalent of `docker stop` is + issued to the containers running in the task. This results in a + `SIGTERM` and a 30-second timeout. After this, `SIGKILL` is sent and the + containers are forcibly stopped. If the container handles the `SIGTERM` + gracefully and exits within 30 seconds from receiving it, no `SIGKILL` + is sent. + + When the service scheduler launches new tasks, it determines task + placement in your cluster with the following logic. + + - Determine which of the container instances in your cluster can support + your service's task definition. For example, they have the required + CPU, memory, ports, and container instance attributes. + + - By default, the service scheduler attempts to balance tasks across + Availability Zones in this manner even though you can choose a + different placement strategy. + + - Sort the valid container instances by the fewest number of running + tasks for this service in the same Availability Zone as the + instance. For example, if zone A has one running service task and + zones B and C each have zero, valid container instances in either + zone B or C are considered optimal for placement. + + - Place the new service task on a valid container instance in an + optimal Availability Zone (based on the previous steps), favoring + container instances with the fewest number of running tasks for this + service. + + When the service scheduler stops running tasks, it attempts to maintain + balance across the Availability Zones in your cluster using the + following logic: + + - Sort the container instances by the largest number of running tasks + for this service in the same Availability Zone as the instance. For + example, if zone A has one running service task and zones B and C each + have two, container instances in either zone B or C are considered + optimal for termination. + + - Stop the task on a container instance in an optimal Availability Zone + (based on the previous steps), favoring container instances with the + largest number of running tasks for this service. + + Args: + input: + An instance of `UpdateServiceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServiceOutput`. + """ + return self._invoke(input, _models.UPDATE_SERVICE, [], plugins) + + def update_service_primary_task_set( + self, + input: UpdateServicePrimaryTaskSetInput, + plugins: list[Plugin] | None = None, + ) -> UpdateServicePrimaryTaskSetOutput: + """ + Modifies which task set in a service is the primary task set. Any + parameters that are updated on the primary task set in a service will + transition to the service. This is used when a service uses the + `EXTERNAL` deployment controller type. For more information, see [Amazon + ECS Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateServicePrimaryTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServicePrimaryTaskSetOutput`. + """ + return self._invoke(input, _models.UPDATE_SERVICE_PRIMARY_TASK_SET, [], plugins) + + def update_task_protection( + self, input: UpdateTaskProtectionInput, plugins: list[Plugin] | None = None + ) -> UpdateTaskProtectionOutput: + """ + Updates the protection status of a task. You can set `protectionEnabled` + to `true` to protect your task from termination during scale-in events + from [Service + Autoscaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html) + or + [deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). + + Task-protection, by default, expires after 2 hours at which point Amazon + ECS clears the `protectionEnabled` property making the task eligible for + termination by a subsequent scale-in event. + + You can specify a custom expiration period for task protection from 1 + minute to up to 2,880 minutes (48 hours). To specify the custom + expiration period, set the `expiresInMinutes` property. The + `expiresInMinutes` property is always reset when you invoke this + operation for a task that already has `protectionEnabled` set to `true`. + You can keep extending the protection expiration period of a task by + invoking this operation repeatedly. + + To learn more about Amazon ECS task protection, see [Task scale-in + protection](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html) + in the Amazon Elastic Container Service Developer Guide . + + Note: + This operation is only supported for tasks belonging to an Amazon ECS + service. Invoking this operation for a standalone task will result in an + `TASK_NOT_VALID` failure. For more information, see [API failure + reasons](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html). + Warning: + If you prefer to set task protection from within the container, we + recommend using the [Task scale-in protection + endpoint](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html). + + Args: + input: + An instance of `UpdateTaskProtectionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTaskProtectionOutput`. + """ + return self._invoke(input, _models.UPDATE_TASK_PROTECTION, [], plugins) + + def update_task_set( + self, input: UpdateTaskSetInput, plugins: list[Plugin] | None = None + ) -> UpdateTaskSetOutput: + """ + Modifies a task set. This is used when a service uses the `EXTERNAL` + deployment controller type. For more information, see [Amazon ECS + Deployment + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Args: + input: + An instance of `UpdateTaskSetInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateTaskSetOutput`. + """ + return self._invoke(input, _models.UPDATE_TASK_SET, [], plugins) + + def _new_config(self) -> ECSConfig: + return ECSConfig.resolve() + + def _post_setup(self, config: ECSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/config.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/config.py new file mode 100644 index 00000000..3939aa81 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/config.py @@ -0,0 +1,599 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsJson11ClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import AMAZON_EC2_CONTAINER_SERVICE_V20141113 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + ContinueServiceDeploymentInput, + ContinueServiceDeploymentOutput, + CreateCapacityProviderInput, + CreateCapacityProviderOutput, + CreateClusterInput, + CreateClusterOutput, + CreateDaemonInput, + CreateDaemonOutput, + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + CreateGatewayInput, + CreateGatewayOutput, + CreateServiceInput, + CreateServiceOutput, + CreateTaskSetInput, + CreateTaskSetOutput, + DeleteAccountSettingInput, + DeleteAccountSettingOutput, + DeleteAttributesInput, + DeleteAttributesOutput, + DeleteCapacityProviderInput, + DeleteCapacityProviderOutput, + DeleteClusterInput, + DeleteClusterOutput, + DeleteDaemonInput, + DeleteDaemonOutput, + DeleteDaemonTaskDefinitionInput, + DeleteDaemonTaskDefinitionOutput, + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + DeleteGatewayInput, + DeleteGatewayOutput, + DeleteServiceInput, + DeleteServiceOutput, + DeleteTaskDefinitionsInput, + DeleteTaskDefinitionsOutput, + DeleteTaskSetInput, + DeleteTaskSetOutput, + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + DeregisterTaskDefinitionInput, + DeregisterTaskDefinitionOutput, + DescribeCapacityProvidersInput, + DescribeCapacityProvidersOutput, + DescribeClustersInput, + DescribeClustersOutput, + DescribeContainerInstancesInput, + DescribeContainerInstancesOutput, + DescribeDaemonDeploymentsInput, + DescribeDaemonDeploymentsOutput, + DescribeDaemonInput, + DescribeDaemonOutput, + DescribeDaemonRevisionsInput, + DescribeDaemonRevisionsOutput, + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + DescribeGatewayInput, + DescribeGatewayOutput, + DescribeGatewayResourcesInput, + DescribeGatewayResourcesOutput, + DescribeGatewayRouteInput, + DescribeGatewayRouteOutput, + DescribeServiceDeploymentsInput, + DescribeServiceDeploymentsOutput, + DescribeServiceRevisionsInput, + DescribeServiceRevisionsOutput, + DescribeServicesInput, + DescribeServicesOutput, + DescribeTaskDefinitionInput, + DescribeTaskDefinitionOutput, + DescribeTaskSetsInput, + DescribeTaskSetsOutput, + DescribeTasksInput, + DescribeTasksOutput, + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + DiscoverPollEndpointInput, + DiscoverPollEndpointOutput, + ExecuteCommandInput, + ExecuteCommandOutput, + GetTaskProtectionInput, + GetTaskProtectionOutput, + ListAccountSettingsInput, + ListAccountSettingsOutput, + ListAttributesInput, + ListAttributesOutput, + ListClustersInput, + ListClustersOutput, + ListContainerInstancesInput, + ListContainerInstancesOutput, + ListDaemonDeploymentsInput, + ListDaemonDeploymentsOutput, + ListDaemonTaskDefinitionsInput, + ListDaemonTaskDefinitionsOutput, + ListDaemonsInput, + ListDaemonsOutput, + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + ListGatewayRoutesInput, + ListGatewayRoutesOutput, + ListGatewaysInput, + ListGatewaysOutput, + ListServiceDeploymentsInput, + ListServiceDeploymentsOutput, + ListServicesByNamespaceInput, + ListServicesByNamespaceOutput, + ListServicesInput, + ListServicesOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTaskDefinitionFamiliesInput, + ListTaskDefinitionFamiliesOutput, + ListTaskDefinitionsInput, + ListTaskDefinitionsOutput, + ListTasksInput, + ListTasksOutput, + PutAccountSettingDefaultInput, + PutAccountSettingDefaultOutput, + PutAccountSettingInput, + PutAccountSettingOutput, + PutAttributesInput, + PutAttributesOutput, + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + RegisterContainerInstanceInput, + RegisterContainerInstanceOutput, + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + RegisterTaskDefinitionInput, + RegisterTaskDefinitionOutput, + RunTaskInput, + RunTaskOutput, + StartTaskInput, + StartTaskOutput, + StopServiceDeploymentInput, + StopServiceDeploymentOutput, + StopTaskInput, + StopTaskOutput, + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + SubmitContainerStateChangeInput, + SubmitContainerStateChangeOutput, + SubmitTaskStateChangeInput, + SubmitTaskStateChangeOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateCapacityProviderInput, + UpdateCapacityProviderOutput, + UpdateClusterInput, + UpdateClusterOutput, + UpdateClusterSettingsInput, + UpdateClusterSettingsOutput, + UpdateContainerAgentInput, + UpdateContainerAgentOutput, + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + UpdateDaemonInput, + UpdateDaemonOutput, + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + UpdateGatewayInput, + UpdateGatewayOutput, + UpdateServiceInput, + UpdateServiceOutput, + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + UpdateTaskProtectionInput, + UpdateTaskProtectionOutput, + UpdateTaskSetInput, + UpdateTaskSetOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + Any, + Any, + ], + Interceptor[ + ContinueServiceDeploymentInput, ContinueServiceDeploymentOutput, Any, Any + ], + Interceptor[ + CreateCapacityProviderInput, CreateCapacityProviderOutput, Any, Any + ], + Interceptor[CreateClusterInput, CreateClusterOutput, Any, Any], + Interceptor[CreateDaemonInput, CreateDaemonOutput, Any, Any], + Interceptor[ + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[CreateGatewayInput, CreateGatewayOutput, Any, Any], + Interceptor[CreateServiceInput, CreateServiceOutput, Any, Any], + Interceptor[CreateTaskSetInput, CreateTaskSetOutput, Any, Any], + Interceptor[DeleteAccountSettingInput, DeleteAccountSettingOutput, Any, Any], + Interceptor[DeleteAttributesInput, DeleteAttributesOutput, Any, Any], + Interceptor[ + DeleteCapacityProviderInput, DeleteCapacityProviderOutput, Any, Any + ], + Interceptor[DeleteClusterInput, DeleteClusterOutput, Any, Any], + Interceptor[DeleteDaemonInput, DeleteDaemonOutput, Any, Any], + Interceptor[ + DeleteDaemonTaskDefinitionInput, DeleteDaemonTaskDefinitionOutput, Any, Any + ], + Interceptor[ + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[DeleteGatewayInput, DeleteGatewayOutput, Any, Any], + Interceptor[DeleteServiceInput, DeleteServiceOutput, Any, Any], + Interceptor[DeleteTaskDefinitionsInput, DeleteTaskDefinitionsOutput, Any, Any], + Interceptor[DeleteTaskSetInput, DeleteTaskSetOutput, Any, Any], + Interceptor[ + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + Any, + Any, + ], + Interceptor[ + DeregisterTaskDefinitionInput, DeregisterTaskDefinitionOutput, Any, Any + ], + Interceptor[ + DescribeCapacityProvidersInput, DescribeCapacityProvidersOutput, Any, Any + ], + Interceptor[DescribeClustersInput, DescribeClustersOutput, Any, Any], + Interceptor[ + DescribeContainerInstancesInput, DescribeContainerInstancesOutput, Any, Any + ], + Interceptor[DescribeDaemonInput, DescribeDaemonOutput, Any, Any], + Interceptor[ + DescribeDaemonDeploymentsInput, DescribeDaemonDeploymentsOutput, Any, Any + ], + Interceptor[ + DescribeDaemonRevisionsInput, DescribeDaemonRevisionsOutput, Any, Any + ], + Interceptor[ + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + Any, + Any, + ], + Interceptor[ + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[DescribeGatewayInput, DescribeGatewayOutput, Any, Any], + Interceptor[ + DescribeGatewayResourcesInput, DescribeGatewayResourcesOutput, Any, Any + ], + Interceptor[DescribeGatewayRouteInput, DescribeGatewayRouteOutput, Any, Any], + Interceptor[ + DescribeServiceDeploymentsInput, DescribeServiceDeploymentsOutput, Any, Any + ], + Interceptor[ + DescribeServiceRevisionsInput, DescribeServiceRevisionsOutput, Any, Any + ], + Interceptor[DescribeServicesInput, DescribeServicesOutput, Any, Any], + Interceptor[ + DescribeTaskDefinitionInput, DescribeTaskDefinitionOutput, Any, Any + ], + Interceptor[DescribeTasksInput, DescribeTasksOutput, Any, Any], + Interceptor[DescribeTaskSetsInput, DescribeTaskSetsOutput, Any, Any], + Interceptor[ + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + Any, + Any, + ], + Interceptor[DiscoverPollEndpointInput, DiscoverPollEndpointOutput, Any, Any], + Interceptor[ExecuteCommandInput, ExecuteCommandOutput, Any, Any], + Interceptor[GetTaskProtectionInput, GetTaskProtectionOutput, Any, Any], + Interceptor[ListAccountSettingsInput, ListAccountSettingsOutput, Any, Any], + Interceptor[ListAttributesInput, ListAttributesOutput, Any, Any], + Interceptor[ListClustersInput, ListClustersOutput, Any, Any], + Interceptor[ + ListContainerInstancesInput, ListContainerInstancesOutput, Any, Any + ], + Interceptor[ListDaemonDeploymentsInput, ListDaemonDeploymentsOutput, Any, Any], + Interceptor[ListDaemonsInput, ListDaemonsOutput, Any, Any], + Interceptor[ + ListDaemonTaskDefinitionsInput, ListDaemonTaskDefinitionsOutput, Any, Any + ], + Interceptor[ + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + Any, + Any, + ], + Interceptor[ListGatewayRoutesInput, ListGatewayRoutesOutput, Any, Any], + Interceptor[ListGatewaysInput, ListGatewaysOutput, Any, Any], + Interceptor[ + ListServiceDeploymentsInput, ListServiceDeploymentsOutput, Any, Any + ], + Interceptor[ListServicesInput, ListServicesOutput, Any, Any], + Interceptor[ + ListServicesByNamespaceInput, ListServicesByNamespaceOutput, Any, Any + ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ + ListTaskDefinitionFamiliesInput, ListTaskDefinitionFamiliesOutput, Any, Any + ], + Interceptor[ListTaskDefinitionsInput, ListTaskDefinitionsOutput, Any, Any], + Interceptor[ListTasksInput, ListTasksOutput, Any, Any], + Interceptor[PutAccountSettingInput, PutAccountSettingOutput, Any, Any], + Interceptor[ + PutAccountSettingDefaultInput, PutAccountSettingDefaultOutput, Any, Any + ], + Interceptor[PutAttributesInput, PutAttributesOutput, Any, Any], + Interceptor[ + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + Any, + Any, + ], + Interceptor[ + RegisterContainerInstanceInput, RegisterContainerInstanceOutput, Any, Any + ], + Interceptor[ + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + Any, + Any, + ], + Interceptor[ + RegisterTaskDefinitionInput, RegisterTaskDefinitionOutput, Any, Any + ], + Interceptor[RunTaskInput, RunTaskOutput, Any, Any], + Interceptor[StartTaskInput, StartTaskOutput, Any, Any], + Interceptor[StopServiceDeploymentInput, StopServiceDeploymentOutput, Any, Any], + Interceptor[StopTaskInput, StopTaskOutput, Any, Any], + Interceptor[ + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + Any, + Any, + ], + Interceptor[ + SubmitContainerStateChangeInput, SubmitContainerStateChangeOutput, Any, Any + ], + Interceptor[SubmitTaskStateChangeInput, SubmitTaskStateChangeOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[ + UpdateCapacityProviderInput, UpdateCapacityProviderOutput, Any, Any + ], + Interceptor[UpdateClusterInput, UpdateClusterOutput, Any, Any], + Interceptor[UpdateClusterSettingsInput, UpdateClusterSettingsOutput, Any, Any], + Interceptor[UpdateContainerAgentInput, UpdateContainerAgentOutput, Any, Any], + Interceptor[ + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + Any, + Any, + ], + Interceptor[UpdateDaemonInput, UpdateDaemonOutput, Any, Any], + Interceptor[ + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + Any, + Any, + ], + Interceptor[UpdateGatewayInput, UpdateGatewayOutput, Any, Any], + Interceptor[UpdateServiceInput, UpdateServiceOutput, Any, Any], + Interceptor[ + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + Any, + Any, + ], + Interceptor[UpdateTaskProtectionInput, UpdateTaskProtectionOutput, Any, Any], + Interceptor[UpdateTaskSetInput, UpdateTaskSetOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.ecs", + service_target="AmazonEC2ContainerServiceV20141113", + service_schema=AMAZON_EC2_CONTAINER_SERVICE_V20141113, +) + + +class _ECSConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class ECSConfig(AwsConfig): + """ECS configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("ecs").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="ecs") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_ECSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[ECSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.py new file mode 100644 index 00000000..a60f9896 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.py @@ -0,0 +1,2452 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AcceleratorCountRequest": "ACCELERATOR_COUNT_REQUEST", + "AcceleratorManufacturer": "ACCELERATOR_MANUFACTURER", + "AcceleratorName": "ACCELERATOR_NAME", + "AcceleratorTotalMemoryMiBRequest": "ACCELERATOR_TOTAL_MEMORY_MI_B_REQUEST", + "AcceleratorType": "ACCELERATOR_TYPE", + "AccessDeniedException": "ACCESS_DENIED_EXCEPTION", + "AccessType": "ACCESS_TYPE", + "AdvancedConfiguration": "ADVANCED_CONFIGURATION", + "AgentUpdateStatus": "AGENT_UPDATE_STATUS", + "ApplicationProtocol": "APPLICATION_PROTOCOL", + "AssignPublicIp": "ASSIGN_PUBLIC_IP", + "AssociateGatewayWithClusterInput": "ASSOCIATE_GATEWAY_WITH_CLUSTER_INPUT", + "AssociateGatewayWithClusterOutput": "ASSOCIATE_GATEWAY_WITH_CLUSTER_OUTPUT", + "Attachment": "ATTACHMENT", + "AttachmentStateChange": "ATTACHMENT_STATE_CHANGE", + "AttestationPolicyStatus": "ATTESTATION_POLICY_STATUS", + "Attribute": "ATTRIBUTE", + "AttributeLimitExceededException": "ATTRIBUTE_LIMIT_EXCEEDED_EXCEPTION", + "AutoRepairActionsStatus": "AUTO_REPAIR_ACTIONS_STATUS", + "AutoRepairConfiguration": "AUTO_REPAIR_CONFIGURATION", + "AutoScalingGroupProvider": "AUTO_SCALING_GROUP_PROVIDER", + "AutoScalingGroupProviderUpdate": "AUTO_SCALING_GROUP_PROVIDER_UPDATE", + "AvailabilityZoneRebalancing": "AVAILABILITY_ZONE_REBALANCING", + "AwsVpcConfiguration": "AWS_VPC_CONFIGURATION", + "BareMetal": "BARE_METAL", + "BaselineEbsBandwidthMbpsRequest": "BASELINE_EBS_BANDWIDTH_MBPS_REQUEST", + "BlockedException": "BLOCKED_EXCEPTION", + "BurstablePerformance": "BURSTABLE_PERFORMANCE", + "CanaryConfiguration": "CANARY_CONFIGURATION", + "CapacityOptionType": "CAPACITY_OPTION_TYPE", + "CapacityProvider": "CAPACITY_PROVIDER", + "CapacityProviderField": "CAPACITY_PROVIDER_FIELD", + "CapacityProviderStatus": "CAPACITY_PROVIDER_STATUS", + "CapacityProviderStrategyItem": "CAPACITY_PROVIDER_STRATEGY_ITEM", + "CapacityProviderType": "CAPACITY_PROVIDER_TYPE", + "CapacityProviderUpdateStatus": "CAPACITY_PROVIDER_UPDATE_STATUS", + "CapacityReservationPreference": "CAPACITY_RESERVATION_PREFERENCE", + "CapacityReservationRequest": "CAPACITY_RESERVATION_REQUEST", + "ClientException": "CLIENT_EXCEPTION", + "Cluster": "CLUSTER", + "ClusterConfiguration": "CLUSTER_CONFIGURATION", + "ClusterContainsCapacityProviderException": "CLUSTER_CONTAINS_CAPACITY_PROVIDER_EXCEPTION", + "ClusterContainsContainerInstancesException": "CLUSTER_CONTAINS_CONTAINER_INSTANCES_EXCEPTION", + "ClusterContainsServicesException": "CLUSTER_CONTAINS_SERVICES_EXCEPTION", + "ClusterContainsTasksException": "CLUSTER_CONTAINS_TASKS_EXCEPTION", + "ClusterField": "CLUSTER_FIELD", + "ClusterNotFoundException": "CLUSTER_NOT_FOUND_EXCEPTION", + "ClusterServiceConnectDefaults": "CLUSTER_SERVICE_CONNECT_DEFAULTS", + "ClusterServiceConnectDefaultsRequest": "CLUSTER_SERVICE_CONNECT_DEFAULTS_REQUEST", + "ClusterSetting": "CLUSTER_SETTING", + "ClusterSettingName": "CLUSTER_SETTING_NAME", + "Compatibility": "COMPATIBILITY", + "ConflictException": "CONFLICT_EXCEPTION", + "Connectivity": "CONNECTIVITY", + "Container": "CONTAINER", + "ContainerCondition": "CONTAINER_CONDITION", + "ContainerDefinition": "CONTAINER_DEFINITION", + "ContainerDependency": "CONTAINER_DEPENDENCY", + "ContainerImage": "CONTAINER_IMAGE", + "ContainerInstance": "CONTAINER_INSTANCE", + "ContainerInstanceField": "CONTAINER_INSTANCE_FIELD", + "ContainerInstanceHealthStatus": "CONTAINER_INSTANCE_HEALTH_STATUS", + "ContainerInstanceStatus": "CONTAINER_INSTANCE_STATUS", + "ContainerOverride": "CONTAINER_OVERRIDE", + "ContainerRestartPolicy": "CONTAINER_RESTART_POLICY", + "ContainerStateChange": "CONTAINER_STATE_CHANGE", + "ContinueServiceDeploymentInput": "CONTINUE_SERVICE_DEPLOYMENT_INPUT", + "ContinueServiceDeploymentOutput": "CONTINUE_SERVICE_DEPLOYMENT_OUTPUT", + "CPUArchitecture": "CPU_ARCHITECTURE", + "CpuManufacturer": "CPU_MANUFACTURER", + "CreateCapacityProviderInput": "CREATE_CAPACITY_PROVIDER_INPUT", + "CreateCapacityProviderOutput": "CREATE_CAPACITY_PROVIDER_OUTPUT", + "CreateClusterInput": "CREATE_CLUSTER_INPUT", + "CreateClusterOutput": "CREATE_CLUSTER_OUTPUT", + "CreateDaemonInput": "CREATE_DAEMON_INPUT", + "CreateDaemonOutput": "CREATE_DAEMON_OUTPUT", + "CreatedAt": "CREATED_AT", + "CreateExpressGatewayServiceInput": "CREATE_EXPRESS_GATEWAY_SERVICE_INPUT", + "CreateExpressGatewayServiceOutput": "CREATE_EXPRESS_GATEWAY_SERVICE_OUTPUT", + "CreateGatewayInput": "CREATE_GATEWAY_INPUT", + "CreateGatewayOutput": "CREATE_GATEWAY_OUTPUT", + "CreateManagedInstancesProviderConfiguration": "CREATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION", + "CreateServiceInput": "CREATE_SERVICE_INPUT", + "CreateServiceOutput": "CREATE_SERVICE_OUTPUT", + "CreateTaskSetInput": "CREATE_TASK_SET_INPUT", + "CreateTaskSetOutput": "CREATE_TASK_SET_OUTPUT", + "DaemonAlarmConfiguration": "DAEMON_ALARM_CONFIGURATION", + "DaemonCapacityProvider": "DAEMON_CAPACITY_PROVIDER", + "DaemonCircuitBreaker": "DAEMON_CIRCUIT_BREAKER", + "DaemonContainerDefinition": "DAEMON_CONTAINER_DEFINITION", + "DaemonContainerImage": "DAEMON_CONTAINER_IMAGE", + "DaemonDeployment": "DAEMON_DEPLOYMENT", + "DaemonDeploymentAlarms": "DAEMON_DEPLOYMENT_ALARMS", + "DaemonDeploymentCapacityProvider": "DAEMON_DEPLOYMENT_CAPACITY_PROVIDER", + "DaemonDeploymentConfiguration": "DAEMON_DEPLOYMENT_CONFIGURATION", + "DaemonDeploymentRevisionDetail": "DAEMON_DEPLOYMENT_REVISION_DETAIL", + "DaemonDeploymentRollbackMonitorsStatus": "DAEMON_DEPLOYMENT_ROLLBACK_MONITORS_STATUS", + "DaemonDeploymentStatus": "DAEMON_DEPLOYMENT_STATUS", + "DaemonDeploymentSummary": "DAEMON_DEPLOYMENT_SUMMARY", + "DaemonDetail": "DAEMON_DETAIL", + "DaemonIpcMode": "DAEMON_IPC_MODE", + "DaemonLinuxParameters": "DAEMON_LINUX_PARAMETERS", + "DaemonNotActiveException": "DAEMON_NOT_ACTIVE_EXCEPTION", + "DaemonNotFoundException": "DAEMON_NOT_FOUND_EXCEPTION", + "DaemonPidMode": "DAEMON_PID_MODE", + "DaemonPropagateTags": "DAEMON_PROPAGATE_TAGS", + "DaemonRevision": "DAEMON_REVISION", + "DaemonRevisionDetail": "DAEMON_REVISION_DETAIL", + "DaemonRollback": "DAEMON_ROLLBACK", + "DaemonStatus": "DAEMON_STATUS", + "DaemonSummary": "DAEMON_SUMMARY", + "DaemonTaskDefinition": "DAEMON_TASK_DEFINITION", + "DaemonTaskDefinitionRevisionFilter": "DAEMON_TASK_DEFINITION_REVISION_FILTER", + "DaemonTaskDefinitionStatus": "DAEMON_TASK_DEFINITION_STATUS", + "DaemonTaskDefinitionStatusFilter": "DAEMON_TASK_DEFINITION_STATUS_FILTER", + "DaemonTaskDefinitionSummary": "DAEMON_TASK_DEFINITION_SUMMARY", + "DaemonVolume": "DAEMON_VOLUME", + "DeleteAccountSettingInput": "DELETE_ACCOUNT_SETTING_INPUT", + "DeleteAccountSettingOutput": "DELETE_ACCOUNT_SETTING_OUTPUT", + "DeleteAttributesInput": "DELETE_ATTRIBUTES_INPUT", + "DeleteAttributesOutput": "DELETE_ATTRIBUTES_OUTPUT", + "DeleteCapacityProviderInput": "DELETE_CAPACITY_PROVIDER_INPUT", + "DeleteCapacityProviderOutput": "DELETE_CAPACITY_PROVIDER_OUTPUT", + "DeleteClusterInput": "DELETE_CLUSTER_INPUT", + "DeleteClusterOutput": "DELETE_CLUSTER_OUTPUT", + "DeleteDaemonInput": "DELETE_DAEMON_INPUT", + "DeleteDaemonOutput": "DELETE_DAEMON_OUTPUT", + "DeleteDaemonTaskDefinitionInput": "DELETE_DAEMON_TASK_DEFINITION_INPUT", + "DeleteDaemonTaskDefinitionOutput": "DELETE_DAEMON_TASK_DEFINITION_OUTPUT", + "DeleteExpressGatewayServiceInput": "DELETE_EXPRESS_GATEWAY_SERVICE_INPUT", + "DeleteExpressGatewayServiceOutput": "DELETE_EXPRESS_GATEWAY_SERVICE_OUTPUT", + "DeleteGatewayInput": "DELETE_GATEWAY_INPUT", + "DeleteGatewayOutput": "DELETE_GATEWAY_OUTPUT", + "DeleteServiceInput": "DELETE_SERVICE_INPUT", + "DeleteServiceOutput": "DELETE_SERVICE_OUTPUT", + "DeleteTaskDefinitionsInput": "DELETE_TASK_DEFINITIONS_INPUT", + "DeleteTaskDefinitionsOutput": "DELETE_TASK_DEFINITIONS_OUTPUT", + "DeleteTaskSetInput": "DELETE_TASK_SET_INPUT", + "DeleteTaskSetOutput": "DELETE_TASK_SET_OUTPUT", + "Deployment": "DEPLOYMENT", + "DeploymentAlarms": "DEPLOYMENT_ALARMS", + "DeploymentCircuitBreaker": "DEPLOYMENT_CIRCUIT_BREAKER", + "DeploymentConfiguration": "DEPLOYMENT_CONFIGURATION", + "DeploymentController": "DEPLOYMENT_CONTROLLER", + "DeploymentControllerType": "DEPLOYMENT_CONTROLLER_TYPE", + "DeploymentEarlySuccessCriteria": "DEPLOYMENT_EARLY_SUCCESS_CRITERIA", + "DeploymentEphemeralStorage": "DEPLOYMENT_EPHEMERAL_STORAGE", + "DeploymentLifecycleHook": "DEPLOYMENT_LIFECYCLE_HOOK", + "DeploymentLifecycleHookAction": "DEPLOYMENT_LIFECYCLE_HOOK_ACTION", + "DeploymentLifecycleHookDetail": "DEPLOYMENT_LIFECYCLE_HOOK_DETAIL", + "DeploymentLifecycleHookStage": "DEPLOYMENT_LIFECYCLE_HOOK_STAGE", + "DeploymentLifecycleHookStatus": "DEPLOYMENT_LIFECYCLE_HOOK_STATUS", + "DeploymentLifecycleHookTargetType": "DEPLOYMENT_LIFECYCLE_HOOK_TARGET_TYPE", + "DeploymentLifecycleHookTimeoutConfiguration": "DEPLOYMENT_LIFECYCLE_HOOK_TIMEOUT_CONFIGURATION", + "DeploymentRolloutState": "DEPLOYMENT_ROLLOUT_STATE", + "DeploymentStrategy": "DEPLOYMENT_STRATEGY", + "DeregisterContainerInstanceInput": "DEREGISTER_CONTAINER_INSTANCE_INPUT", + "DeregisterContainerInstanceOutput": "DEREGISTER_CONTAINER_INSTANCE_OUTPUT", + "DeregisterTaskDefinitionInput": "DEREGISTER_TASK_DEFINITION_INPUT", + "DeregisterTaskDefinitionOutput": "DEREGISTER_TASK_DEFINITION_OUTPUT", + "DescribeCapacityProvidersInput": "DESCRIBE_CAPACITY_PROVIDERS_INPUT", + "DescribeCapacityProvidersOutput": "DESCRIBE_CAPACITY_PROVIDERS_OUTPUT", + "DescribeClustersInput": "DESCRIBE_CLUSTERS_INPUT", + "DescribeClustersOutput": "DESCRIBE_CLUSTERS_OUTPUT", + "DescribeContainerInstancesInput": "DESCRIBE_CONTAINER_INSTANCES_INPUT", + "DescribeContainerInstancesOutput": "DESCRIBE_CONTAINER_INSTANCES_OUTPUT", + "DescribeDaemonDeploymentsInput": "DESCRIBE_DAEMON_DEPLOYMENTS_INPUT", + "DescribeDaemonDeploymentsOutput": "DESCRIBE_DAEMON_DEPLOYMENTS_OUTPUT", + "DescribeDaemonInput": "DESCRIBE_DAEMON_INPUT", + "DescribeDaemonOutput": "DESCRIBE_DAEMON_OUTPUT", + "DescribeDaemonRevisionsInput": "DESCRIBE_DAEMON_REVISIONS_INPUT", + "DescribeDaemonRevisionsOutput": "DESCRIBE_DAEMON_REVISIONS_OUTPUT", + "DescribeDaemonTaskDefinitionInput": "DESCRIBE_DAEMON_TASK_DEFINITION_INPUT", + "DescribeDaemonTaskDefinitionOutput": "DESCRIBE_DAEMON_TASK_DEFINITION_OUTPUT", + "DescribeExpressGatewayServiceInput": "DESCRIBE_EXPRESS_GATEWAY_SERVICE_INPUT", + "DescribeExpressGatewayServiceOutput": "DESCRIBE_EXPRESS_GATEWAY_SERVICE_OUTPUT", + "DescribeGatewayAlbConfiguration": "DESCRIBE_GATEWAY_ALB_CONFIGURATION", + "DescribeGatewayConfiguration": "DESCRIBE_GATEWAY_CONFIGURATION", + "DescribeGatewayConfigurationHostSharedAlb": "DESCRIBE_GATEWAY_CONFIGURATION", + "DescribeGatewayConfigurationUnknown": "DESCRIBE_GATEWAY_CONFIGURATION", + "DescribeGatewayInput": "DESCRIBE_GATEWAY_INPUT", + "DescribeGatewayOutput": "DESCRIBE_GATEWAY_OUTPUT", + "DescribeGatewayResourcesInput": "DESCRIBE_GATEWAY_RESOURCES_INPUT", + "DescribeGatewayResourcesOutput": "DESCRIBE_GATEWAY_RESOURCES_OUTPUT", + "DescribeGatewayRouteInput": "DESCRIBE_GATEWAY_ROUTE_INPUT", + "DescribeGatewayRouteOutput": "DESCRIBE_GATEWAY_ROUTE_OUTPUT", + "DescribeServiceDeploymentsInput": "DESCRIBE_SERVICE_DEPLOYMENTS_INPUT", + "DescribeServiceDeploymentsOutput": "DESCRIBE_SERVICE_DEPLOYMENTS_OUTPUT", + "DescribeServiceRevisionsInput": "DESCRIBE_SERVICE_REVISIONS_INPUT", + "DescribeServiceRevisionsOutput": "DESCRIBE_SERVICE_REVISIONS_OUTPUT", + "DescribeServicesInput": "DESCRIBE_SERVICES_INPUT", + "DescribeServicesOutput": "DESCRIBE_SERVICES_OUTPUT", + "DescribeTaskDefinitionInput": "DESCRIBE_TASK_DEFINITION_INPUT", + "DescribeTaskDefinitionOutput": "DESCRIBE_TASK_DEFINITION_OUTPUT", + "DescribeTaskSetsInput": "DESCRIBE_TASK_SETS_INPUT", + "DescribeTaskSetsOutput": "DESCRIBE_TASK_SETS_OUTPUT", + "DescribeTasksInput": "DESCRIBE_TASKS_INPUT", + "DescribeTasksOutput": "DESCRIBE_TASKS_OUTPUT", + "DesiredStatus": "DESIRED_STATUS", + "Device": "DEVICE", + "DeviceCgroupPermission": "DEVICE_CGROUP_PERMISSION", + "DisassociateGatewayFromClusterInput": "DISASSOCIATE_GATEWAY_FROM_CLUSTER_INPUT", + "DisassociateGatewayFromClusterOutput": "DISASSOCIATE_GATEWAY_FROM_CLUSTER_OUTPUT", + "DiscoverPollEndpointInput": "DISCOVER_POLL_ENDPOINT_INPUT", + "DiscoverPollEndpointOutput": "DISCOVER_POLL_ENDPOINT_OUTPUT", + "DockerVolumeConfiguration": "DOCKER_VOLUME_CONFIGURATION", + "EBSResourceType": "EBS_RESOURCE_TYPE", + "EBSTagSpecification": "EBS_TAG_SPECIFICATION", + "ECSExpressGatewayService": "ECS_EXPRESS_GATEWAY_SERVICE", + "ECSManagedResources": "ECS_MANAGED_RESOURCES", + "EFSAuthorizationConfig": "EFS_AUTHORIZATION_CONFIG", + "EFSAuthorizationConfigIAM": "EFS_AUTHORIZATION_CONFIG_IAM", + "EFSTransitEncryption": "EFS_TRANSIT_ENCRYPTION", + "EFSVolumeConfiguration": "EFS_VOLUME_CONFIGURATION", + "ElbGatewayResources": "ELB_GATEWAY_RESOURCES", + "EnvironmentFile": "ENVIRONMENT_FILE", + "EnvironmentFileType": "ENVIRONMENT_FILE_TYPE", + "EphemeralStorage": "EPHEMERAL_STORAGE", + "ExecuteCommandConfiguration": "EXECUTE_COMMAND_CONFIGURATION", + "ExecuteCommandInput": "EXECUTE_COMMAND_INPUT", + "ExecuteCommandLogConfiguration": "EXECUTE_COMMAND_LOG_CONFIGURATION", + "ExecuteCommandLogging": "EXECUTE_COMMAND_LOGGING", + "ExecuteCommandOutput": "EXECUTE_COMMAND_OUTPUT", + "ExpressCpuArchitecture": "EXPRESS_CPU_ARCHITECTURE", + "ExpressGatewayContainer": "EXPRESS_GATEWAY_CONTAINER", + "ExpressGatewayRepositoryCredentials": "EXPRESS_GATEWAY_REPOSITORY_CREDENTIALS", + "ExpressGatewayScalingTarget": "EXPRESS_GATEWAY_SCALING_TARGET", + "ExpressGatewayServiceAwsLogsConfiguration": "EXPRESS_GATEWAY_SERVICE_AWS_LOGS_CONFIGURATION", + "ExpressGatewayServiceConfiguration": "EXPRESS_GATEWAY_SERVICE_CONFIGURATION", + "ExpressGatewayServiceInclude": "EXPRESS_GATEWAY_SERVICE_INCLUDE", + "ExpressGatewayServiceNetworkConfiguration": "EXPRESS_GATEWAY_SERVICE_NETWORK_CONFIGURATION", + "ExpressGatewayServiceScalingMetric": "EXPRESS_GATEWAY_SERVICE_SCALING_METRIC", + "ExpressGatewayServiceStatus": "EXPRESS_GATEWAY_SERVICE_STATUS", + "ExpressGatewayServiceStatusCode": "EXPRESS_GATEWAY_SERVICE_STATUS_CODE", + "Failure": "FAILURE", + "FirelensConfiguration": "FIRELENS_CONFIGURATION", + "FirelensConfigurationType": "FIRELENS_CONFIGURATION_TYPE", + "FSxWindowsFileServerAuthorizationConfig": "F_SX_WINDOWS_FILE_SERVER_AUTHORIZATION_CONFIG", + "FSxWindowsFileServerVolumeConfiguration": "F_SX_WINDOWS_FILE_SERVER_VOLUME_CONFIGURATION", + "Gateway": "GATEWAY", + "GatewayAlbDesyncMitigationMode": "GATEWAY_ALB_DESYNC_MITIGATION_MODE", + "GatewayAlbProtocol": "GATEWAY_ALB_PROTOCOL", + "GatewayAlbTestTrafficRules": "GATEWAY_ALB_TEST_TRAFFIC_RULES", + "GatewayClusterAssociationStatus": "GATEWAY_CLUSTER_ASSOCIATION_STATUS", + "GatewayClusterAssociationSummary": "GATEWAY_CLUSTER_ASSOCIATION_SUMMARY", + "GatewayConfiguration": "GATEWAY_CONFIGURATION", + "GatewayConfigurationHostSharedAlb": "GATEWAY_CONFIGURATION", + "GatewayConfigurationUnknown": "GATEWAY_CONFIGURATION", + "GatewayConnection": "GATEWAY_CONNECTION", + "GatewayConnectionAlbResources": "GATEWAY_CONNECTION_ALB_RESOURCES", + "GatewayConnectionResources": "GATEWAY_CONNECTION_RESOURCES", + "GatewayConnectionResourcesHostSharedAlb": "GATEWAY_CONNECTION_RESOURCES", + "GatewayConnectionResourcesUnknown": "GATEWAY_CONNECTION_RESOURCES", + "GatewayConnector": "GATEWAY_CONNECTOR", + "GatewayConnectorFilters": "GATEWAY_CONNECTOR_FILTERS", + "GatewayConnectorHealthCheck": "GATEWAY_CONNECTOR_HEALTH_CHECK", + "GatewayConnectorHealthCheckMatcher": "GATEWAY_CONNECTOR_HEALTH_CHECK_MATCHER", + "GatewayConnectorHealthCheckProtocol": "GATEWAY_CONNECTOR_HEALTH_CHECK_PROTOCOL", + "GatewayElbAccessLogConfiguration": "GATEWAY_ELB_ACCESS_LOG_CONFIGURATION", + "GatewayElbAccessLogDestination": "GATEWAY_ELB_ACCESS_LOG_DESTINATION", + "GatewayElbAccessLogDestinationS3": "GATEWAY_ELB_ACCESS_LOG_DESTINATION", + "GatewayElbAccessLogDestinationUnknown": "GATEWAY_ELB_ACCESS_LOG_DESTINATION", + "GatewayElbAccessLogS3Destination": "GATEWAY_ELB_ACCESS_LOG_S3_DESTINATION", + "GatewayElbIpAddressType": "GATEWAY_ELB_IP_ADDRESS_TYPE", + "GatewayElbNetworkConfiguration": "GATEWAY_ELB_NETWORK_CONFIGURATION", + "GatewayElbScheme": "GATEWAY_ELB_SCHEME", + "GatewayInfrastructureResources": "GATEWAY_INFRASTRUCTURE_RESOURCES", + "GatewayInfrastructureResourcesHostSharedAlb": "GATEWAY_INFRASTRUCTURE_RESOURCES", + "GatewayInfrastructureResourcesUnknown": "GATEWAY_INFRASTRUCTURE_RESOURCES", + "GatewayNotFoundException": "GATEWAY_NOT_FOUND_EXCEPTION", + "GatewayOperationError": "GATEWAY_OPERATION_ERROR", + "GatewayResourceFailure": "GATEWAY_RESOURCE_FAILURE", + "GatewayResources": "GATEWAY_RESOURCES", + "GatewayRoute": "GATEWAY_ROUTE", + "GatewayRouteAlbResources": "GATEWAY_ROUTE_ALB_RESOURCES", + "GatewayRouteLoadBalancerSecurityGroup": "GATEWAY_ROUTE_LOAD_BALANCER_SECURITY_GROUP", + "GatewayRouteResources": "GATEWAY_ROUTE_RESOURCES", + "GatewayRouteResourcesHostSharedAlb": "GATEWAY_ROUTE_RESOURCES", + "GatewayRouteResourcesUnknown": "GATEWAY_ROUTE_RESOURCES", + "GatewayRouteStatus": "GATEWAY_ROUTE_STATUS", + "GatewayRouteSummary": "GATEWAY_ROUTE_SUMMARY", + "GatewayStatus": "GATEWAY_STATUS", + "GatewaySummary": "GATEWAY_SUMMARY", + "GatewayTestTrafficHeader": "GATEWAY_TEST_TRAFFIC_HEADER", + "GetTaskProtectionInput": "GET_TASK_PROTECTION_INPUT", + "GetTaskProtectionOutput": "GET_TASK_PROTECTION_OUTPUT", + "GpuDevice": "GPU_DEVICE", + "GpuSharingMode": "GPU_SHARING_MODE", + "HealthCheck": "HEALTH_CHECK", + "HealthStatus": "HEALTH_STATUS", + "HostEntry": "HOST_ENTRY", + "HostSharedAlbConfiguration": "HOST_SHARED_ALB_CONFIGURATION", + "HostVolumeProperties": "HOST_VOLUME_PROPERTIES", + "InferenceAccelerator": "INFERENCE_ACCELERATOR", + "InferenceAcceleratorOverride": "INFERENCE_ACCELERATOR_OVERRIDE", + "InfrastructureOptimization": "INFRASTRUCTURE_OPTIMIZATION", + "IngressPathSummary": "INGRESS_PATH_SUMMARY", + "InstanceGeneration": "INSTANCE_GENERATION", + "InstanceHealthCheckResult": "INSTANCE_HEALTH_CHECK_RESULT", + "InstanceHealthCheckState": "INSTANCE_HEALTH_CHECK_STATE", + "InstanceHealthCheckType": "INSTANCE_HEALTH_CHECK_TYPE", + "InstanceLaunchTemplate": "INSTANCE_LAUNCH_TEMPLATE", + "InstanceLaunchTemplateUpdate": "INSTANCE_LAUNCH_TEMPLATE_UPDATE", + "InstanceRequirementsRequest": "INSTANCE_REQUIREMENTS_REQUEST", + "InvalidParameterException": "INVALID_PARAMETER_EXCEPTION", + "IpcMode": "IPC_MODE", + "IsolationMode": "ISOLATION_MODE", + "KernelCapabilities": "KERNEL_CAPABILITIES", + "KeyValuePair": "KEY_VALUE_PAIR", + "LaunchType": "LAUNCH_TYPE", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "LinearConfiguration": "LINEAR_CONFIGURATION", + "LinuxParameters": "LINUX_PARAMETERS", + "ListAccountSettingsInput": "LIST_ACCOUNT_SETTINGS_INPUT", + "ListAccountSettingsOutput": "LIST_ACCOUNT_SETTINGS_OUTPUT", + "ListAttributesInput": "LIST_ATTRIBUTES_INPUT", + "ListAttributesOutput": "LIST_ATTRIBUTES_OUTPUT", + "ListClustersInput": "LIST_CLUSTERS_INPUT", + "ListClustersOutput": "LIST_CLUSTERS_OUTPUT", + "ListContainerInstancesInput": "LIST_CONTAINER_INSTANCES_INPUT", + "ListContainerInstancesOutput": "LIST_CONTAINER_INSTANCES_OUTPUT", + "ListDaemonDeploymentsInput": "LIST_DAEMON_DEPLOYMENTS_INPUT", + "ListDaemonDeploymentsOutput": "LIST_DAEMON_DEPLOYMENTS_OUTPUT", + "ListDaemonsInput": "LIST_DAEMONS_INPUT", + "ListDaemonsOutput": "LIST_DAEMONS_OUTPUT", + "ListDaemonTaskDefinitionsInput": "LIST_DAEMON_TASK_DEFINITIONS_INPUT", + "ListDaemonTaskDefinitionsOutput": "LIST_DAEMON_TASK_DEFINITIONS_OUTPUT", + "ListGatewayClusterAssociationsInput": "LIST_GATEWAY_CLUSTER_ASSOCIATIONS_INPUT", + "ListGatewayClusterAssociationsOutput": "LIST_GATEWAY_CLUSTER_ASSOCIATIONS_OUTPUT", + "ListGatewayRoutesInput": "LIST_GATEWAY_ROUTES_INPUT", + "ListGatewayRoutesOutput": "LIST_GATEWAY_ROUTES_OUTPUT", + "ListGatewaysInput": "LIST_GATEWAYS_INPUT", + "ListGatewaysOutput": "LIST_GATEWAYS_OUTPUT", + "ListServiceDeploymentsInput": "LIST_SERVICE_DEPLOYMENTS_INPUT", + "ListServiceDeploymentsOutput": "LIST_SERVICE_DEPLOYMENTS_OUTPUT", + "ListServicesByNamespaceInput": "LIST_SERVICES_BY_NAMESPACE_INPUT", + "ListServicesByNamespaceOutput": "LIST_SERVICES_BY_NAMESPACE_OUTPUT", + "ListServicesInput": "LIST_SERVICES_INPUT", + "ListServicesOutput": "LIST_SERVICES_OUTPUT", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", + "ListTaskDefinitionFamiliesInput": "LIST_TASK_DEFINITION_FAMILIES_INPUT", + "ListTaskDefinitionFamiliesOutput": "LIST_TASK_DEFINITION_FAMILIES_OUTPUT", + "ListTaskDefinitionsInput": "LIST_TASK_DEFINITIONS_INPUT", + "ListTaskDefinitionsOutput": "LIST_TASK_DEFINITIONS_OUTPUT", + "ListTasksInput": "LIST_TASKS_INPUT", + "ListTasksOutput": "LIST_TASKS_OUTPUT", + "LoadBalancer": "LOAD_BALANCER", + "LocalStorage": "LOCAL_STORAGE", + "LocalStorageType": "LOCAL_STORAGE_TYPE", + "LogConfiguration": "LOG_CONFIGURATION", + "LogDriver": "LOG_DRIVER", + "LogDriverVolumeConfiguration": "LOG_DRIVER_VOLUME_CONFIGURATION", + "ManagedAgent": "MANAGED_AGENT", + "ManagedAgentName": "MANAGED_AGENT_NAME", + "ManagedAgentStateChange": "MANAGED_AGENT_STATE_CHANGE", + "ManagedApplicationAutoScalingPolicy": "MANAGED_APPLICATION_AUTO_SCALING_POLICY", + "ManagedAutoScaling": "MANAGED_AUTO_SCALING", + "ManagedCertificate": "MANAGED_CERTIFICATE", + "ManagedDraining": "MANAGED_DRAINING", + "ManagedIngressPath": "MANAGED_INGRESS_PATH", + "ManagedInstancesLocalStorageConfiguration": "MANAGED_INSTANCES_LOCAL_STORAGE_CONFIGURATION", + "ManagedInstancesMonitoringOptions": "MANAGED_INSTANCES_MONITORING_OPTIONS", + "ManagedInstancesNetworkConfiguration": "MANAGED_INSTANCES_NETWORK_CONFIGURATION", + "ManagedInstancesProvider": "MANAGED_INSTANCES_PROVIDER", + "ManagedInstancesStorageConfiguration": "MANAGED_INSTANCES_STORAGE_CONFIGURATION", + "ManagedListener": "MANAGED_LISTENER", + "ManagedListenerRule": "MANAGED_LISTENER_RULE", + "ManagedLoadBalancer": "MANAGED_LOAD_BALANCER", + "ManagedLogGroup": "MANAGED_LOG_GROUP", + "ManagedMetricAlarm": "MANAGED_METRIC_ALARM", + "ManagedResourceStatus": "MANAGED_RESOURCE_STATUS", + "ManagedScalableTarget": "MANAGED_SCALABLE_TARGET", + "ManagedScaling": "MANAGED_SCALING", + "ManagedScalingStatus": "MANAGED_SCALING_STATUS", + "ManagedSecurityGroup": "MANAGED_SECURITY_GROUP", + "ManagedStorageConfiguration": "MANAGED_STORAGE_CONFIGURATION", + "ManagedTargetGroup": "MANAGED_TARGET_GROUP", + "ManagedTerminationProtection": "MANAGED_TERMINATION_PROTECTION", + "MemoryGiBPerVCpuRequest": "MEMORY_GI_B_PER_V_CPU_REQUEST", + "MemoryMiBRequest": "MEMORY_MI_B_REQUEST", + "MetricConfiguration": "METRIC_CONFIGURATION", + "MissingVersionException": "MISSING_VERSION_EXCEPTION", + "MonitoringConfiguration": "MONITORING_CONFIGURATION", + "MountPoint": "MOUNT_POINT", + "NamespaceNotFoundException": "NAMESPACE_NOT_FOUND_EXCEPTION", + "NetworkBandwidthGbpsRequest": "NETWORK_BANDWIDTH_GBPS_REQUEST", + "NetworkBinding": "NETWORK_BINDING", + "NetworkConfiguration": "NETWORK_CONFIGURATION", + "NetworkInterface": "NETWORK_INTERFACE", + "NetworkInterfaceCountRequest": "NETWORK_INTERFACE_COUNT_REQUEST", + "NetworkMode": "NETWORK_MODE", + "NoUpdateAvailableException": "NO_UPDATE_AVAILABLE_EXCEPTION", + "NvidiaMpsAllocation": "NVIDIA_MPS_ALLOCATION", + "OSFamily": "OS_FAMILY", + "PidMode": "PID_MODE", + "PlacementConstraint": "PLACEMENT_CONSTRAINT", + "PlacementConstraintType": "PLACEMENT_CONSTRAINT_TYPE", + "PlacementStrategy": "PLACEMENT_STRATEGY", + "PlacementStrategyType": "PLACEMENT_STRATEGY_TYPE", + "PlatformDevice": "PLATFORM_DEVICE", + "PlatformDeviceType": "PLATFORM_DEVICE_TYPE", + "PlatformTaskDefinitionIncompatibilityException": "PLATFORM_TASK_DEFINITION_INCOMPATIBILITY_EXCEPTION", + "PlatformUnknownException": "PLATFORM_UNKNOWN_EXCEPTION", + "PortMapping": "PORT_MAPPING", + "PropagateGatewayTags": "PROPAGATE_GATEWAY_TAGS", + "PropagateMITags": "PROPAGATE_MI_TAGS", + "PropagateTags": "PROPAGATE_TAGS", + "ProtectedTask": "PROTECTED_TASK", + "ProxyConfiguration": "PROXY_CONFIGURATION", + "ProxyConfigurationType": "PROXY_CONFIGURATION_TYPE", + "PutAccountSettingDefaultInput": "PUT_ACCOUNT_SETTING_DEFAULT_INPUT", + "PutAccountSettingDefaultOutput": "PUT_ACCOUNT_SETTING_DEFAULT_OUTPUT", + "PutAccountSettingInput": "PUT_ACCOUNT_SETTING_INPUT", + "PutAccountSettingOutput": "PUT_ACCOUNT_SETTING_OUTPUT", + "PutAttributesInput": "PUT_ATTRIBUTES_INPUT", + "PutAttributesOutput": "PUT_ATTRIBUTES_OUTPUT", + "PutClusterCapacityProvidersInput": "PUT_CLUSTER_CAPACITY_PROVIDERS_INPUT", + "PutClusterCapacityProvidersOutput": "PUT_CLUSTER_CAPACITY_PROVIDERS_OUTPUT", + "RegisterContainerInstanceInput": "REGISTER_CONTAINER_INSTANCE_INPUT", + "RegisterContainerInstanceOutput": "REGISTER_CONTAINER_INSTANCE_OUTPUT", + "RegisterDaemonTaskDefinitionInput": "REGISTER_DAEMON_TASK_DEFINITION_INPUT", + "RegisterDaemonTaskDefinitionOutput": "REGISTER_DAEMON_TASK_DEFINITION_OUTPUT", + "RegisterTaskDefinitionInput": "REGISTER_TASK_DEFINITION_INPUT", + "RegisterTaskDefinitionOutput": "REGISTER_TASK_DEFINITION_OUTPUT", + "RepositoryCredentials": "REPOSITORY_CREDENTIALS", + "ResolvedConfiguration": "RESOLVED_CONFIGURATION", + "Resource": "RESOURCE", + "ResourceInUseException": "RESOURCE_IN_USE_EXCEPTION", + "ResourceManagementType": "RESOURCE_MANAGEMENT_TYPE", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "ResourceRequirement": "RESOURCE_REQUIREMENT", + "ResourceType": "RESOURCE_TYPE", + "Rollback": "ROLLBACK", + "RunTaskInput": "RUN_TASK_INPUT", + "RunTaskOutput": "RUN_TASK_OUTPUT", + "RuntimePlatform": "RUNTIME_PLATFORM", + "RuntimePlatformOverride": "RUNTIME_PLATFORM_OVERRIDE", + "S3FilesVolumeConfiguration": "S3_FILES_VOLUME_CONFIGURATION", + "Scale": "SCALE", + "ScaleUnit": "SCALE_UNIT", + "SchedulingStrategy": "SCHEDULING_STRATEGY", + "Scope": "SCOPE", + "Secret": "SECRET", + "ServerException": "SERVER_EXCEPTION", + "Service": "SERVICE", + "ServiceConnectAccessLogConfiguration": "SERVICE_CONNECT_ACCESS_LOG_CONFIGURATION", + "ServiceConnectAccessLoggingFormat": "SERVICE_CONNECT_ACCESS_LOGGING_FORMAT", + "ServiceConnectClientAlias": "SERVICE_CONNECT_CLIENT_ALIAS", + "ServiceConnectConfiguration": "SERVICE_CONNECT_CONFIGURATION", + "ServiceConnectContainerConfiguration": "SERVICE_CONNECT_CONTAINER_CONFIGURATION", + "ServiceConnectContainerConfigurationLogLevel": "SERVICE_CONNECT_CONTAINER_CONFIGURATION", + "ServiceConnectContainerConfigurationUnknown": "SERVICE_CONNECT_CONTAINER_CONFIGURATION", + "ServiceConnectContainerLogLevel": "SERVICE_CONNECT_CONTAINER_LOG_LEVEL", + "ServiceConnectIncludeQueryParameters": "SERVICE_CONNECT_INCLUDE_QUERY_PARAMETERS", + "ServiceConnectService": "SERVICE_CONNECT_SERVICE", + "ServiceConnectServiceResource": "SERVICE_CONNECT_SERVICE_RESOURCE", + "ServiceConnectTestTrafficHeaderMatchRules": "SERVICE_CONNECT_TEST_TRAFFIC_HEADER_MATCH_RULES", + "ServiceConnectTestTrafficHeaderRules": "SERVICE_CONNECT_TEST_TRAFFIC_HEADER_RULES", + "ServiceConnectTestTrafficRules": "SERVICE_CONNECT_TEST_TRAFFIC_RULES", + "ServiceConnectTlsCertificateAuthority": "SERVICE_CONNECT_TLS_CERTIFICATE_AUTHORITY", + "ServiceConnectTlsConfiguration": "SERVICE_CONNECT_TLS_CONFIGURATION", + "ServiceCurrentRevisionSummary": "SERVICE_CURRENT_REVISION_SUMMARY", + "ServiceDeployment": "SERVICE_DEPLOYMENT", + "ServiceDeploymentAlarms": "SERVICE_DEPLOYMENT_ALARMS", + "ServiceDeploymentBrief": "SERVICE_DEPLOYMENT_BRIEF", + "ServiceDeploymentCircuitBreaker": "SERVICE_DEPLOYMENT_CIRCUIT_BREAKER", + "ServiceDeploymentLifecycleStage": "SERVICE_DEPLOYMENT_LIFECYCLE_STAGE", + "ServiceDeploymentNotFoundException": "SERVICE_DEPLOYMENT_NOT_FOUND_EXCEPTION", + "ServiceDeploymentRollbackMonitorsStatus": "SERVICE_DEPLOYMENT_ROLLBACK_MONITORS_STATUS", + "ServiceDeploymentStatus": "SERVICE_DEPLOYMENT_STATUS", + "ServiceEvent": "SERVICE_EVENT", + "ServiceField": "SERVICE_FIELD", + "ServiceManagedEBSVolumeConfiguration": "SERVICE_MANAGED_EBS_VOLUME_CONFIGURATION", + "ServiceNotActiveException": "SERVICE_NOT_ACTIVE_EXCEPTION", + "ServiceNotFoundException": "SERVICE_NOT_FOUND_EXCEPTION", + "ServiceRegistry": "SERVICE_REGISTRY", + "ServiceRevision": "SERVICE_REVISION", + "ServiceRevisionCleanup": "SERVICE_REVISION_CLEANUP", + "ServiceRevisionLoadBalancer": "SERVICE_REVISION_LOAD_BALANCER", + "ServiceRevisionOverrides": "SERVICE_REVISION_OVERRIDES", + "ServiceRevisionSummary": "SERVICE_REVISION_SUMMARY", + "ServiceRevisionVpcLatticeConfiguration": "SERVICE_REVISION_VPC_LATTICE_CONFIGURATION", + "ServiceVolumeConfiguration": "SERVICE_VOLUME_CONFIGURATION", + "Session": "SESSION", + "Setting": "SETTING", + "SettingName": "SETTING_NAME", + "SettingType": "SETTING_TYPE", + "SharingStrategy": "SHARING_STRATEGY", + "SharingStrategyNvidiaMps": "SHARING_STRATEGY", + "SharingStrategyUnknown": "SHARING_STRATEGY", + "SortOrder": "SORT_ORDER", + "StabilityStatus": "STABILITY_STATUS", + "StartTaskInput": "START_TASK_INPUT", + "StartTaskOutput": "START_TASK_OUTPUT", + "StopServiceDeploymentInput": "STOP_SERVICE_DEPLOYMENT_INPUT", + "StopServiceDeploymentOutput": "STOP_SERVICE_DEPLOYMENT_OUTPUT", + "StopServiceDeploymentStopType": "STOP_SERVICE_DEPLOYMENT_STOP_TYPE", + "StopTaskInput": "STOP_TASK_INPUT", + "StopTaskOutput": "STOP_TASK_OUTPUT", + "SubmitAttachmentStateChangesInput": "SUBMIT_ATTACHMENT_STATE_CHANGES_INPUT", + "SubmitAttachmentStateChangesOutput": "SUBMIT_ATTACHMENT_STATE_CHANGES_OUTPUT", + "SubmitContainerStateChangeInput": "SUBMIT_CONTAINER_STATE_CHANGE_INPUT", + "SubmitContainerStateChangeOutput": "SUBMIT_CONTAINER_STATE_CHANGE_OUTPUT", + "SubmitTaskStateChangeInput": "SUBMIT_TASK_STATE_CHANGE_INPUT", + "SubmitTaskStateChangeOutput": "SUBMIT_TASK_STATE_CHANGE_OUTPUT", + "SystemControl": "SYSTEM_CONTROL", + "Tag": "TAG", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", + "TargetNotConnectedException": "TARGET_NOT_CONNECTED_EXCEPTION", + "TargetNotFoundException": "TARGET_NOT_FOUND_EXCEPTION", + "TargetType": "TARGET_TYPE", + "Task": "TASK", + "TaskDefinition": "TASK_DEFINITION", + "TaskDefinitionFamilyStatus": "TASK_DEFINITION_FAMILY_STATUS", + "TaskDefinitionField": "TASK_DEFINITION_FIELD", + "TaskDefinitionPlacementConstraint": "TASK_DEFINITION_PLACEMENT_CONSTRAINT", + "TaskDefinitionPlacementConstraintType": "TASK_DEFINITION_PLACEMENT_CONSTRAINT_TYPE", + "TaskDefinitionStatus": "TASK_DEFINITION_STATUS", + "TaskEphemeralStorage": "TASK_EPHEMERAL_STORAGE", + "TaskField": "TASK_FIELD", + "TaskFilesystemType": "TASK_FILESYSTEM_TYPE", + "TaskManagedEBSVolumeConfiguration": "TASK_MANAGED_EBS_VOLUME_CONFIGURATION", + "TaskManagedEBSVolumeTerminationPolicy": "TASK_MANAGED_EBS_VOLUME_TERMINATION_POLICY", + "TaskOverride": "TASK_OVERRIDE", + "TaskSet": "TASK_SET", + "TaskSetField": "TASK_SET_FIELD", + "TaskSetNotFoundException": "TASK_SET_NOT_FOUND_EXCEPTION", + "TaskStopCode": "TASK_STOP_CODE", + "TaskVolumeConfiguration": "TASK_VOLUME_CONFIGURATION", + "ThresholdConfiguration": "THRESHOLD_CONFIGURATION", + "ThresholdType": "THRESHOLD_TYPE", + "TimeoutConfiguration": "TIMEOUT_CONFIGURATION", + "Tmpfs": "TMPFS", + "TotalLocalStorageGBRequest": "TOTAL_LOCAL_STORAGE_GB_REQUEST", + "TransportProtocol": "TRANSPORT_PROTOCOL", + "TrustedExecutionConfiguration": "TRUSTED_EXECUTION_CONFIGURATION", + "TrustedExecutionSummary": "TRUSTED_EXECUTION_SUMMARY", + "Ulimit": "ULIMIT", + "UlimitName": "ULIMIT_NAME", + "UnsupportedFeatureException": "UNSUPPORTED_FEATURE_EXCEPTION", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", + "UpdateCapacityProviderInput": "UPDATE_CAPACITY_PROVIDER_INPUT", + "UpdateCapacityProviderOutput": "UPDATE_CAPACITY_PROVIDER_OUTPUT", + "UpdateClusterInput": "UPDATE_CLUSTER_INPUT", + "UpdateClusterOutput": "UPDATE_CLUSTER_OUTPUT", + "UpdateClusterSettingsInput": "UPDATE_CLUSTER_SETTINGS_INPUT", + "UpdateClusterSettingsOutput": "UPDATE_CLUSTER_SETTINGS_OUTPUT", + "UpdateContainerAgentInput": "UPDATE_CONTAINER_AGENT_INPUT", + "UpdateContainerAgentOutput": "UPDATE_CONTAINER_AGENT_OUTPUT", + "UpdateContainerInstancesStateInput": "UPDATE_CONTAINER_INSTANCES_STATE_INPUT", + "UpdateContainerInstancesStateOutput": "UPDATE_CONTAINER_INSTANCES_STATE_OUTPUT", + "UpdateDaemonInput": "UPDATE_DAEMON_INPUT", + "UpdateDaemonOutput": "UPDATE_DAEMON_OUTPUT", + "UpdatedExpressGatewayService": "UPDATED_EXPRESS_GATEWAY_SERVICE", + "UpdateExpressGatewayServiceInput": "UPDATE_EXPRESS_GATEWAY_SERVICE_INPUT", + "UpdateExpressGatewayServiceOutput": "UPDATE_EXPRESS_GATEWAY_SERVICE_OUTPUT", + "UpdateGatewayAlbConfiguration": "UPDATE_GATEWAY_ALB_CONFIGURATION", + "UpdateGatewayConfiguration": "UPDATE_GATEWAY_CONFIGURATION", + "UpdateGatewayConfigurationHostSharedAlb": "UPDATE_GATEWAY_CONFIGURATION", + "UpdateGatewayConfigurationUnknown": "UPDATE_GATEWAY_CONFIGURATION", + "UpdateGatewayInput": "UPDATE_GATEWAY_INPUT", + "UpdateGatewayNetworkConfiguration": "UPDATE_GATEWAY_NETWORK_CONFIGURATION", + "UpdateGatewayOutput": "UPDATE_GATEWAY_OUTPUT", + "UpdateInProgressException": "UPDATE_IN_PROGRESS_EXCEPTION", + "UpdateManagedInstancesProviderConfiguration": "UPDATE_MANAGED_INSTANCES_PROVIDER_CONFIGURATION", + "UpdateServiceInput": "UPDATE_SERVICE_INPUT", + "UpdateServiceOutput": "UPDATE_SERVICE_OUTPUT", + "UpdateServicePrimaryTaskSetInput": "UPDATE_SERVICE_PRIMARY_TASK_SET_INPUT", + "UpdateServicePrimaryTaskSetOutput": "UPDATE_SERVICE_PRIMARY_TASK_SET_OUTPUT", + "UpdateTaskProtectionInput": "UPDATE_TASK_PROTECTION_INPUT", + "UpdateTaskProtectionOutput": "UPDATE_TASK_PROTECTION_OUTPUT", + "UpdateTaskSetInput": "UPDATE_TASK_SET_INPUT", + "UpdateTaskSetOutput": "UPDATE_TASK_SET_OUTPUT", + "VCpuCountRangeRequest": "V_CPU_COUNT_RANGE_REQUEST", + "VersionConsistency": "VERSION_CONSISTENCY", + "VersionInfo": "VERSION_INFO", + "Volume": "VOLUME", + "VolumeFrom": "VOLUME_FROM", + "VpcLatticeAdvancedConfiguration": "VPC_LATTICE_ADVANCED_CONFIGURATION", + "VpcLatticeConfiguration": "VPC_LATTICE_CONFIGURATION", + }, + shape_names=frozenset( + { + "AcceleratorCountRequest", + "AcceleratorManufacturer", + "AcceleratorName", + "AcceleratorTotalMemoryMiBRequest", + "AcceleratorType", + "AccessDeniedException", + "AccessType", + "AdvancedConfiguration", + "AgentUpdateStatus", + "ApplicationProtocol", + "AssignPublicIp", + "AssociateGatewayWithClusterInput", + "AssociateGatewayWithClusterOutput", + "Attachment", + "AttachmentStateChange", + "AttestationPolicyStatus", + "Attribute", + "AttributeLimitExceededException", + "AutoRepairActionsStatus", + "AutoRepairConfiguration", + "AutoScalingGroupProvider", + "AutoScalingGroupProviderUpdate", + "AvailabilityZoneRebalancing", + "AwsVpcConfiguration", + "BareMetal", + "BaselineEbsBandwidthMbpsRequest", + "BlockedException", + "BurstablePerformance", + "CPUArchitecture", + "CanaryConfiguration", + "CapacityOptionType", + "CapacityProvider", + "CapacityProviderField", + "CapacityProviderStatus", + "CapacityProviderStrategyItem", + "CapacityProviderType", + "CapacityProviderUpdateStatus", + "CapacityReservationPreference", + "CapacityReservationRequest", + "ClientException", + "Cluster", + "ClusterConfiguration", + "ClusterContainsCapacityProviderException", + "ClusterContainsContainerInstancesException", + "ClusterContainsServicesException", + "ClusterContainsTasksException", + "ClusterField", + "ClusterNotFoundException", + "ClusterServiceConnectDefaults", + "ClusterServiceConnectDefaultsRequest", + "ClusterSetting", + "ClusterSettingName", + "Compatibility", + "ConflictException", + "Connectivity", + "Container", + "ContainerCondition", + "ContainerDefinition", + "ContainerDependency", + "ContainerImage", + "ContainerInstance", + "ContainerInstanceField", + "ContainerInstanceHealthStatus", + "ContainerInstanceStatus", + "ContainerOverride", + "ContainerRestartPolicy", + "ContainerStateChange", + "ContinueServiceDeploymentInput", + "ContinueServiceDeploymentOutput", + "CpuManufacturer", + "CreateCapacityProviderInput", + "CreateCapacityProviderOutput", + "CreateClusterInput", + "CreateClusterOutput", + "CreateDaemonInput", + "CreateDaemonOutput", + "CreateExpressGatewayServiceInput", + "CreateExpressGatewayServiceOutput", + "CreateGatewayInput", + "CreateGatewayOutput", + "CreateManagedInstancesProviderConfiguration", + "CreateServiceInput", + "CreateServiceOutput", + "CreateTaskSetInput", + "CreateTaskSetOutput", + "CreatedAt", + "DaemonAlarmConfiguration", + "DaemonCapacityProvider", + "DaemonCircuitBreaker", + "DaemonContainerDefinition", + "DaemonContainerImage", + "DaemonDeployment", + "DaemonDeploymentAlarms", + "DaemonDeploymentCapacityProvider", + "DaemonDeploymentConfiguration", + "DaemonDeploymentRevisionDetail", + "DaemonDeploymentRollbackMonitorsStatus", + "DaemonDeploymentStatus", + "DaemonDeploymentSummary", + "DaemonDetail", + "DaemonIpcMode", + "DaemonLinuxParameters", + "DaemonNotActiveException", + "DaemonNotFoundException", + "DaemonPidMode", + "DaemonPropagateTags", + "DaemonRevision", + "DaemonRevisionDetail", + "DaemonRollback", + "DaemonStatus", + "DaemonSummary", + "DaemonTaskDefinition", + "DaemonTaskDefinitionRevisionFilter", + "DaemonTaskDefinitionStatus", + "DaemonTaskDefinitionStatusFilter", + "DaemonTaskDefinitionSummary", + "DaemonVolume", + "DeleteAccountSettingInput", + "DeleteAccountSettingOutput", + "DeleteAttributesInput", + "DeleteAttributesOutput", + "DeleteCapacityProviderInput", + "DeleteCapacityProviderOutput", + "DeleteClusterInput", + "DeleteClusterOutput", + "DeleteDaemonInput", + "DeleteDaemonOutput", + "DeleteDaemonTaskDefinitionInput", + "DeleteDaemonTaskDefinitionOutput", + "DeleteExpressGatewayServiceInput", + "DeleteExpressGatewayServiceOutput", + "DeleteGatewayInput", + "DeleteGatewayOutput", + "DeleteServiceInput", + "DeleteServiceOutput", + "DeleteTaskDefinitionsInput", + "DeleteTaskDefinitionsOutput", + "DeleteTaskSetInput", + "DeleteTaskSetOutput", + "Deployment", + "DeploymentAlarms", + "DeploymentCircuitBreaker", + "DeploymentConfiguration", + "DeploymentController", + "DeploymentControllerType", + "DeploymentEarlySuccessCriteria", + "DeploymentEphemeralStorage", + "DeploymentLifecycleHook", + "DeploymentLifecycleHookAction", + "DeploymentLifecycleHookDetail", + "DeploymentLifecycleHookStage", + "DeploymentLifecycleHookStatus", + "DeploymentLifecycleHookTargetType", + "DeploymentLifecycleHookTimeoutConfiguration", + "DeploymentRolloutState", + "DeploymentStrategy", + "DeregisterContainerInstanceInput", + "DeregisterContainerInstanceOutput", + "DeregisterTaskDefinitionInput", + "DeregisterTaskDefinitionOutput", + "DescribeCapacityProvidersInput", + "DescribeCapacityProvidersOutput", + "DescribeClustersInput", + "DescribeClustersOutput", + "DescribeContainerInstancesInput", + "DescribeContainerInstancesOutput", + "DescribeDaemonDeploymentsInput", + "DescribeDaemonDeploymentsOutput", + "DescribeDaemonInput", + "DescribeDaemonOutput", + "DescribeDaemonRevisionsInput", + "DescribeDaemonRevisionsOutput", + "DescribeDaemonTaskDefinitionInput", + "DescribeDaemonTaskDefinitionOutput", + "DescribeExpressGatewayServiceInput", + "DescribeExpressGatewayServiceOutput", + "DescribeGatewayAlbConfiguration", + "DescribeGatewayConfiguration", + "DescribeGatewayInput", + "DescribeGatewayOutput", + "DescribeGatewayResourcesInput", + "DescribeGatewayResourcesOutput", + "DescribeGatewayRouteInput", + "DescribeGatewayRouteOutput", + "DescribeServiceDeploymentsInput", + "DescribeServiceDeploymentsOutput", + "DescribeServiceRevisionsInput", + "DescribeServiceRevisionsOutput", + "DescribeServicesInput", + "DescribeServicesOutput", + "DescribeTaskDefinitionInput", + "DescribeTaskDefinitionOutput", + "DescribeTaskSetsInput", + "DescribeTaskSetsOutput", + "DescribeTasksInput", + "DescribeTasksOutput", + "DesiredStatus", + "Device", + "DeviceCgroupPermission", + "DisassociateGatewayFromClusterInput", + "DisassociateGatewayFromClusterOutput", + "DiscoverPollEndpointInput", + "DiscoverPollEndpointOutput", + "DockerVolumeConfiguration", + "EBSResourceType", + "EBSTagSpecification", + "ECSExpressGatewayService", + "ECSManagedResources", + "EFSAuthorizationConfig", + "EFSAuthorizationConfigIAM", + "EFSTransitEncryption", + "EFSVolumeConfiguration", + "ElbGatewayResources", + "EnvironmentFile", + "EnvironmentFileType", + "EphemeralStorage", + "ExecuteCommandConfiguration", + "ExecuteCommandInput", + "ExecuteCommandLogConfiguration", + "ExecuteCommandLogging", + "ExecuteCommandOutput", + "ExpressCpuArchitecture", + "ExpressGatewayContainer", + "ExpressGatewayRepositoryCredentials", + "ExpressGatewayScalingTarget", + "ExpressGatewayServiceAwsLogsConfiguration", + "ExpressGatewayServiceConfiguration", + "ExpressGatewayServiceInclude", + "ExpressGatewayServiceNetworkConfiguration", + "ExpressGatewayServiceScalingMetric", + "ExpressGatewayServiceStatus", + "ExpressGatewayServiceStatusCode", + "FSxWindowsFileServerAuthorizationConfig", + "FSxWindowsFileServerVolumeConfiguration", + "Failure", + "FirelensConfiguration", + "FirelensConfigurationType", + "Gateway", + "GatewayAlbDesyncMitigationMode", + "GatewayAlbProtocol", + "GatewayAlbTestTrafficRules", + "GatewayClusterAssociationStatus", + "GatewayClusterAssociationSummary", + "GatewayConfiguration", + "GatewayConnection", + "GatewayConnectionAlbResources", + "GatewayConnectionResources", + "GatewayConnector", + "GatewayConnectorFilters", + "GatewayConnectorHealthCheck", + "GatewayConnectorHealthCheckMatcher", + "GatewayConnectorHealthCheckProtocol", + "GatewayElbAccessLogConfiguration", + "GatewayElbAccessLogDestination", + "GatewayElbAccessLogS3Destination", + "GatewayElbIpAddressType", + "GatewayElbNetworkConfiguration", + "GatewayElbScheme", + "GatewayInfrastructureResources", + "GatewayNotFoundException", + "GatewayOperationError", + "GatewayResourceFailure", + "GatewayResources", + "GatewayRoute", + "GatewayRouteAlbResources", + "GatewayRouteLoadBalancerSecurityGroup", + "GatewayRouteResources", + "GatewayRouteStatus", + "GatewayRouteSummary", + "GatewayStatus", + "GatewaySummary", + "GatewayTestTrafficHeader", + "GetTaskProtectionInput", + "GetTaskProtectionOutput", + "GpuDevice", + "GpuSharingMode", + "HealthCheck", + "HealthStatus", + "HostEntry", + "HostSharedAlbConfiguration", + "HostVolumeProperties", + "InferenceAccelerator", + "InferenceAcceleratorOverride", + "InfrastructureOptimization", + "IngressPathSummary", + "InstanceGeneration", + "InstanceHealthCheckResult", + "InstanceHealthCheckState", + "InstanceHealthCheckType", + "InstanceLaunchTemplate", + "InstanceLaunchTemplateUpdate", + "InstanceRequirementsRequest", + "InvalidParameterException", + "IpcMode", + "IsolationMode", + "KernelCapabilities", + "KeyValuePair", + "LaunchType", + "LimitExceededException", + "LinearConfiguration", + "LinuxParameters", + "ListAccountSettingsInput", + "ListAccountSettingsOutput", + "ListAttributesInput", + "ListAttributesOutput", + "ListClustersInput", + "ListClustersOutput", + "ListContainerInstancesInput", + "ListContainerInstancesOutput", + "ListDaemonDeploymentsInput", + "ListDaemonDeploymentsOutput", + "ListDaemonTaskDefinitionsInput", + "ListDaemonTaskDefinitionsOutput", + "ListDaemonsInput", + "ListDaemonsOutput", + "ListGatewayClusterAssociationsInput", + "ListGatewayClusterAssociationsOutput", + "ListGatewayRoutesInput", + "ListGatewayRoutesOutput", + "ListGatewaysInput", + "ListGatewaysOutput", + "ListServiceDeploymentsInput", + "ListServiceDeploymentsOutput", + "ListServicesByNamespaceInput", + "ListServicesByNamespaceOutput", + "ListServicesInput", + "ListServicesOutput", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", + "ListTaskDefinitionFamiliesInput", + "ListTaskDefinitionFamiliesOutput", + "ListTaskDefinitionsInput", + "ListTaskDefinitionsOutput", + "ListTasksInput", + "ListTasksOutput", + "LoadBalancer", + "LocalStorage", + "LocalStorageType", + "LogConfiguration", + "LogDriver", + "LogDriverVolumeConfiguration", + "ManagedAgent", + "ManagedAgentName", + "ManagedAgentStateChange", + "ManagedApplicationAutoScalingPolicy", + "ManagedAutoScaling", + "ManagedCertificate", + "ManagedDraining", + "ManagedIngressPath", + "ManagedInstancesLocalStorageConfiguration", + "ManagedInstancesMonitoringOptions", + "ManagedInstancesNetworkConfiguration", + "ManagedInstancesProvider", + "ManagedInstancesStorageConfiguration", + "ManagedListener", + "ManagedListenerRule", + "ManagedLoadBalancer", + "ManagedLogGroup", + "ManagedMetricAlarm", + "ManagedResourceStatus", + "ManagedScalableTarget", + "ManagedScaling", + "ManagedScalingStatus", + "ManagedSecurityGroup", + "ManagedStorageConfiguration", + "ManagedTargetGroup", + "ManagedTerminationProtection", + "MemoryGiBPerVCpuRequest", + "MemoryMiBRequest", + "MetricConfiguration", + "MissingVersionException", + "MonitoringConfiguration", + "MountPoint", + "NamespaceNotFoundException", + "NetworkBandwidthGbpsRequest", + "NetworkBinding", + "NetworkConfiguration", + "NetworkInterface", + "NetworkInterfaceCountRequest", + "NetworkMode", + "NoUpdateAvailableException", + "NvidiaMpsAllocation", + "OSFamily", + "PidMode", + "PlacementConstraint", + "PlacementConstraintType", + "PlacementStrategy", + "PlacementStrategyType", + "PlatformDevice", + "PlatformDeviceType", + "PlatformTaskDefinitionIncompatibilityException", + "PlatformUnknownException", + "PortMapping", + "PropagateGatewayTags", + "PropagateMITags", + "PropagateTags", + "ProtectedTask", + "ProxyConfiguration", + "ProxyConfigurationType", + "PutAccountSettingDefaultInput", + "PutAccountSettingDefaultOutput", + "PutAccountSettingInput", + "PutAccountSettingOutput", + "PutAttributesInput", + "PutAttributesOutput", + "PutClusterCapacityProvidersInput", + "PutClusterCapacityProvidersOutput", + "RegisterContainerInstanceInput", + "RegisterContainerInstanceOutput", + "RegisterDaemonTaskDefinitionInput", + "RegisterDaemonTaskDefinitionOutput", + "RegisterTaskDefinitionInput", + "RegisterTaskDefinitionOutput", + "RepositoryCredentials", + "ResolvedConfiguration", + "Resource", + "ResourceInUseException", + "ResourceManagementType", + "ResourceNotFoundException", + "ResourceRequirement", + "ResourceType", + "Rollback", + "RunTaskInput", + "RunTaskOutput", + "RuntimePlatform", + "RuntimePlatformOverride", + "S3FilesVolumeConfiguration", + "Scale", + "ScaleUnit", + "SchedulingStrategy", + "Scope", + "Secret", + "ServerException", + "Service", + "ServiceConnectAccessLogConfiguration", + "ServiceConnectAccessLoggingFormat", + "ServiceConnectClientAlias", + "ServiceConnectConfiguration", + "ServiceConnectContainerConfiguration", + "ServiceConnectContainerLogLevel", + "ServiceConnectIncludeQueryParameters", + "ServiceConnectService", + "ServiceConnectServiceResource", + "ServiceConnectTestTrafficHeaderMatchRules", + "ServiceConnectTestTrafficHeaderRules", + "ServiceConnectTestTrafficRules", + "ServiceConnectTlsCertificateAuthority", + "ServiceConnectTlsConfiguration", + "ServiceCurrentRevisionSummary", + "ServiceDeployment", + "ServiceDeploymentAlarms", + "ServiceDeploymentBrief", + "ServiceDeploymentCircuitBreaker", + "ServiceDeploymentLifecycleStage", + "ServiceDeploymentNotFoundException", + "ServiceDeploymentRollbackMonitorsStatus", + "ServiceDeploymentStatus", + "ServiceEvent", + "ServiceField", + "ServiceManagedEBSVolumeConfiguration", + "ServiceNotActiveException", + "ServiceNotFoundException", + "ServiceRegistry", + "ServiceRevision", + "ServiceRevisionCleanup", + "ServiceRevisionLoadBalancer", + "ServiceRevisionOverrides", + "ServiceRevisionSummary", + "ServiceRevisionVpcLatticeConfiguration", + "ServiceVolumeConfiguration", + "Session", + "Setting", + "SettingName", + "SettingType", + "SharingStrategy", + "SortOrder", + "StabilityStatus", + "StartTaskInput", + "StartTaskOutput", + "StopServiceDeploymentInput", + "StopServiceDeploymentOutput", + "StopServiceDeploymentStopType", + "StopTaskInput", + "StopTaskOutput", + "SubmitAttachmentStateChangesInput", + "SubmitAttachmentStateChangesOutput", + "SubmitContainerStateChangeInput", + "SubmitContainerStateChangeOutput", + "SubmitTaskStateChangeInput", + "SubmitTaskStateChangeOutput", + "SystemControl", + "Tag", + "TagResourceInput", + "TagResourceOutput", + "TargetNotConnectedException", + "TargetNotFoundException", + "TargetType", + "Task", + "TaskDefinition", + "TaskDefinitionFamilyStatus", + "TaskDefinitionField", + "TaskDefinitionPlacementConstraint", + "TaskDefinitionPlacementConstraintType", + "TaskDefinitionStatus", + "TaskEphemeralStorage", + "TaskField", + "TaskFilesystemType", + "TaskManagedEBSVolumeConfiguration", + "TaskManagedEBSVolumeTerminationPolicy", + "TaskOverride", + "TaskSet", + "TaskSetField", + "TaskSetNotFoundException", + "TaskStopCode", + "TaskVolumeConfiguration", + "ThresholdConfiguration", + "ThresholdType", + "TimeoutConfiguration", + "Tmpfs", + "TotalLocalStorageGBRequest", + "TransportProtocol", + "TrustedExecutionConfiguration", + "TrustedExecutionSummary", + "Ulimit", + "UlimitName", + "UnsupportedFeatureException", + "UntagResourceInput", + "UntagResourceOutput", + "UpdateCapacityProviderInput", + "UpdateCapacityProviderOutput", + "UpdateClusterInput", + "UpdateClusterOutput", + "UpdateClusterSettingsInput", + "UpdateClusterSettingsOutput", + "UpdateContainerAgentInput", + "UpdateContainerAgentOutput", + "UpdateContainerInstancesStateInput", + "UpdateContainerInstancesStateOutput", + "UpdateDaemonInput", + "UpdateDaemonOutput", + "UpdateExpressGatewayServiceInput", + "UpdateExpressGatewayServiceOutput", + "UpdateGatewayAlbConfiguration", + "UpdateGatewayConfiguration", + "UpdateGatewayInput", + "UpdateGatewayNetworkConfiguration", + "UpdateGatewayOutput", + "UpdateInProgressException", + "UpdateManagedInstancesProviderConfiguration", + "UpdateServiceInput", + "UpdateServiceOutput", + "UpdateServicePrimaryTaskSetInput", + "UpdateServicePrimaryTaskSetOutput", + "UpdateTaskProtectionInput", + "UpdateTaskProtectionOutput", + "UpdateTaskSetInput", + "UpdateTaskSetOutput", + "UpdatedExpressGatewayService", + "VCpuCountRangeRequest", + "VersionConsistency", + "VersionInfo", + "Volume", + "VolumeFrom", + "VpcLatticeAdvancedConfiguration", + "VpcLatticeConfiguration", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ASSOCIATE_GATEWAY_WITH_CLUSTER", + "CONTINUE_SERVICE_DEPLOYMENT", + "CREATE_CAPACITY_PROVIDER", + "CREATE_CLUSTER", + "CREATE_DAEMON", + "CREATE_EXPRESS_GATEWAY_SERVICE", + "CREATE_GATEWAY", + "CREATE_SERVICE", + "CREATE_TASK_SET", + "DELETE_ACCOUNT_SETTING", + "DELETE_ATTRIBUTES", + "DELETE_CAPACITY_PROVIDER", + "DELETE_CLUSTER", + "DELETE_DAEMON", + "DELETE_DAEMON_TASK_DEFINITION", + "DELETE_EXPRESS_GATEWAY_SERVICE", + "DELETE_GATEWAY", + "DELETE_SERVICE", + "DELETE_TASK_DEFINITIONS", + "DELETE_TASK_SET", + "DEREGISTER_CONTAINER_INSTANCE", + "DEREGISTER_TASK_DEFINITION", + "DESCRIBE_CAPACITY_PROVIDERS", + "DESCRIBE_CLUSTERS", + "DESCRIBE_CONTAINER_INSTANCES", + "DESCRIBE_DAEMON", + "DESCRIBE_DAEMON_DEPLOYMENTS", + "DESCRIBE_DAEMON_REVISIONS", + "DESCRIBE_DAEMON_TASK_DEFINITION", + "DESCRIBE_EXPRESS_GATEWAY_SERVICE", + "DESCRIBE_GATEWAY", + "DESCRIBE_GATEWAY_RESOURCES", + "DESCRIBE_GATEWAY_ROUTE", + "DESCRIBE_SERVICE_DEPLOYMENTS", + "DESCRIBE_SERVICE_REVISIONS", + "DESCRIBE_SERVICES", + "DESCRIBE_TASK_DEFINITION", + "DESCRIBE_TASKS", + "DESCRIBE_TASK_SETS", + "DISASSOCIATE_GATEWAY_FROM_CLUSTER", + "DISCOVER_POLL_ENDPOINT", + "EXECUTE_COMMAND", + "GET_TASK_PROTECTION", + "LIST_ACCOUNT_SETTINGS", + "LIST_ATTRIBUTES", + "LIST_CLUSTERS", + "LIST_CONTAINER_INSTANCES", + "LIST_DAEMON_DEPLOYMENTS", + "LIST_DAEMONS", + "LIST_DAEMON_TASK_DEFINITIONS", + "LIST_GATEWAY_CLUSTER_ASSOCIATIONS", + "LIST_GATEWAY_ROUTES", + "LIST_GATEWAYS", + "LIST_SERVICE_DEPLOYMENTS", + "LIST_SERVICES", + "LIST_SERVICES_BY_NAMESPACE", + "LIST_TAGS_FOR_RESOURCE", + "LIST_TASK_DEFINITION_FAMILIES", + "LIST_TASK_DEFINITIONS", + "LIST_TASKS", + "PUT_ACCOUNT_SETTING", + "PUT_ACCOUNT_SETTING_DEFAULT", + "PUT_ATTRIBUTES", + "PUT_CLUSTER_CAPACITY_PROVIDERS", + "REGISTER_CONTAINER_INSTANCE", + "REGISTER_DAEMON_TASK_DEFINITION", + "REGISTER_TASK_DEFINITION", + "RUN_TASK", + "START_TASK", + "STOP_SERVICE_DEPLOYMENT", + "STOP_TASK", + "SUBMIT_ATTACHMENT_STATE_CHANGES", + "SUBMIT_CONTAINER_STATE_CHANGE", + "SUBMIT_TASK_STATE_CHANGE", + "TAG_RESOURCE", + "UNTAG_RESOURCE", + "UPDATE_CAPACITY_PROVIDER", + "UPDATE_CLUSTER", + "UPDATE_CLUSTER_SETTINGS", + "UPDATE_CONTAINER_AGENT", + "UPDATE_CONTAINER_INSTANCES_STATE", + "UPDATE_DAEMON", + "UPDATE_EXPRESS_GATEWAY_SERVICE", + "UPDATE_GATEWAY", + "UPDATE_SERVICE", + "UPDATE_SERVICE_PRIMARY_TASK_SET", + "UPDATE_TASK_PROTECTION", + "UPDATE_TASK_SET", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["CREATE_CAPACITY_PROVIDER"] = ( + "CREATE_CAPACITY_PROVIDER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CAPACITY_PROVIDER"] = ( + "DELETE_CAPACITY_PROVIDER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CAPACITY_PROVIDERS"] = ( + "DESCRIBE_CAPACITY_PROVIDERS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CAPACITY_PROVIDER"] = ( + "UPDATE_CAPACITY_PROVIDER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CLUSTER"] = ( + "CREATE_CLUSTER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CLUSTER"] = ( + "DELETE_CLUSTER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterContainsCapacityProviderException", + "com.amazonaws.ecs#ClusterContainsContainerInstancesException", + "com.amazonaws.ecs#ClusterContainsServicesException", + "com.amazonaws.ecs#ClusterContainsTasksException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_CONTAINER_INSTANCE"] = ( + "DEREGISTER_CONTAINER_INSTANCE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CLUSTERS"] = ( + "DESCRIBE_CLUSTERS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["EXECUTE_COMMAND"] = ( + "EXECUTE_COMMAND", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#TargetNotConnectedException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ATTRIBUTES"] = ( + "LIST_ATTRIBUTES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CLUSTERS"] = ( + "LIST_CLUSTERS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CONTAINER_INSTANCES"] = ( + "LIST_CONTAINER_INSTANCES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_CLUSTER_CAPACITY_PROVIDERS"] = ( + "PUT_CLUSTER_CAPACITY_PROVIDERS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceInUseException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SUBMIT_ATTACHMENT_STATE_CHANGES"] = ( + "SUBMIT_ATTACHMENT_STATE_CHANGES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SUBMIT_CONTAINER_STATE_CHANGE"] = ( + "SUBMIT_CONTAINER_STATE_CHANGE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SUBMIT_TASK_STATE_CHANGE"] = ( + "SUBMIT_TASK_STATE_CHANGE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CLUSTER"] = ( + "UPDATE_CLUSTER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CLUSTER_SETTINGS"] = ( + "UPDATE_CLUSTER_SETTINGS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ATTRIBUTES"] = ( + "DELETE_ATTRIBUTES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#TargetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CONTAINER_INSTANCES"] = ( + "DESCRIBE_CONTAINER_INSTANCES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TASKS"] = ( + "LIST_TASKS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ATTRIBUTES"] = ( + "PUT_ATTRIBUTES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#AttributeLimitExceededException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#TargetNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_CONTAINER_INSTANCE"] = ( + "REGISTER_CONTAINER_INSTANCE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CONTAINER_AGENT"] = ( + "UPDATE_CONTAINER_AGENT", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#MissingVersionException", + "com.amazonaws.ecs#NoUpdateAvailableException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UpdateInProgressException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CONTAINER_INSTANCES_STATE"] = ( + "UPDATE_CONTAINER_INSTANCES_STATE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CONTINUE_SERVICE_DEPLOYMENT"] = ( + "CONTINUE_SERVICE_DEPLOYMENT", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceDeploymentNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DAEMON_DEPLOYMENTS"] = ( + "DESCRIBE_DAEMON_DEPLOYMENTS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DAEMON"] = ( + "CREATE_DAEMON", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DAEMON"] = ( + "DELETE_DAEMON", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#DaemonNotActiveException", + "com.amazonaws.ecs#DaemonNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DAEMON"] = ( + "DESCRIBE_DAEMON", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#DaemonNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DAEMON_DEPLOYMENTS"] = ( + "LIST_DAEMON_DEPLOYMENTS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DAEMONS"] = ( + "LIST_DAEMONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DAEMON"] = ( + "UPDATE_DAEMON", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#DaemonNotActiveException", + "com.amazonaws.ecs#DaemonNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DAEMON_REVISIONS"] = ( + "DESCRIBE_DAEMON_REVISIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DAEMON_TASK_DEFINITION"] = ( + "DELETE_DAEMON_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DAEMON_TASK_DEFINITION"] = ( + "DESCRIBE_DAEMON_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DAEMON_TASK_DEFINITIONS"] = ( + "LIST_DAEMON_TASK_DEFINITIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_DAEMON_TASK_DEFINITION"] = ( + "REGISTER_DAEMON_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACCOUNT_SETTING"] = ( + "DELETE_ACCOUNT_SETTING", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_TASK_DEFINITION"] = ( + "DEREGISTER_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TASK_DEFINITION"] = ( + "DESCRIBE_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISCOVER_POLL_ENDPOINT"] = ( + "DISCOVER_POLL_ENDPOINT", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_GATEWAY_WITH_CLUSTER"] = ( + "ASSOCIATE_GATEWAY_WITH_CLUSTER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_GATEWAY"] = ( + "CREATE_GATEWAY", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_GATEWAY"] = ( + "DELETE_GATEWAY", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_GATEWAY"] = ( + "DESCRIBE_GATEWAY", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_GATEWAY_RESOURCES"] = ( + "DESCRIBE_GATEWAY_RESOURCES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISASSOCIATE_GATEWAY_FROM_CLUSTER"] = ( + "DISASSOCIATE_GATEWAY_FROM_CLUSTER", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GATEWAY_CLUSTER_ASSOCIATIONS"] = ( + "LIST_GATEWAY_CLUSTER_ASSOCIATIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GATEWAYS"] = ( + "LIST_GATEWAYS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_GATEWAY"] = ( + "UPDATE_GATEWAY", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_GATEWAY_ROUTE"] = ( + "DESCRIBE_GATEWAY_ROUTE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GATEWAY_ROUTES"] = ( + "LIST_GATEWAY_ROUTES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#GatewayNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACCOUNT_SETTINGS"] = ( + "LIST_ACCOUNT_SETTINGS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVICES_BY_NAMESPACE"] = ( + "LIST_SERVICES_BY_NAMESPACE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TASK_DEFINITION_FAMILIES"] = ( + "LIST_TASK_DEFINITION_FAMILIES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ACCOUNT_SETTING"] = ( + "PUT_ACCOUNT_SETTING", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ACCOUNT_SETTING_DEFAULT"] = ( + "PUT_ACCOUNT_SETTING_DEFAULT", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SERVICE_DEPLOYMENTS"] = ( + "DESCRIBE_SERVICE_DEPLOYMENTS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_EXPRESS_GATEWAY_SERVICE"] = ( + "CREATE_EXPRESS_GATEWAY_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SERVICE"] = ( + "CREATE_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_EXPRESS_GATEWAY_SERVICE"] = ( + "DELETE_EXPRESS_GATEWAY_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SERVICE"] = ( + "DELETE_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EXPRESS_GATEWAY_SERVICE"] = ( + "DESCRIBE_EXPRESS_GATEWAY_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SERVICES"] = ( + "DESCRIBE_SERVICES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVICE_DEPLOYMENTS"] = ( + "LIST_SERVICE_DEPLOYMENTS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVICES"] = ( + "LIST_SERVICES", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_SERVICE_DEPLOYMENT"] = ( + "STOP_SERVICE_DEPLOYMENT", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ConflictException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceDeploymentNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_EXPRESS_GATEWAY_SERVICE"] = ( + "UPDATE_EXPRESS_GATEWAY_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SERVICE"] = ( + "UPDATE_SERVICE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SERVICE_PRIMARY_TASK_SET"] = ( + "UPDATE_SERVICE_PRIMARY_TASK_SET", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#TaskSetNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SERVICE_REVISIONS"] = ( + "DESCRIBE_SERVICE_REVISIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TASK_DEFINITIONS"] = ( + "DELETE_TASK_DEFINITIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TASK_DEFINITIONS"] = ( + "LIST_TASK_DEFINITIONS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_TASK_DEFINITION"] = ( + "REGISTER_TASK_DEFINITION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TASKS"] = ( + "DESCRIBE_TASKS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_TASK_PROTECTION"] = ( + "GET_TASK_PROTECTION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RUN_TASK"] = ( + "RUN_TASK", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#BlockedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#ConflictException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_TASK"] = ( + "START_TASK", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_TASK"] = ( + "STOP_TASK", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_TASK_PROTECTION"] = ( + "UPDATE_TASK_PROTECTION", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TASK_SET"] = ( + "CREATE_TASK_SET", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#NamespaceNotFoundException", + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException", + "com.amazonaws.ecs#PlatformUnknownException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TASK_SET"] = ( + "DELETE_TASK_SET", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#TaskSetNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TASK_SETS"] = ( + "DESCRIBE_TASK_SETS", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_TASK_SET"] = ( + "UPDATE_TASK_SET", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#LimitExceededException", + "com.amazonaws.ecs#ServerException", + "com.amazonaws.ecs#ServiceNotActiveException", + "com.amazonaws.ecs#ServiceNotFoundException", + "com.amazonaws.ecs#TaskSetNotFoundException", + "com.amazonaws.ecs#UnsupportedFeatureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.ecs#AccessDeniedException", + "com.amazonaws.ecs#ClientException", + "com.amazonaws.ecs#ClusterNotFoundException", + "com.amazonaws.ecs#InvalidParameterException", + "com.amazonaws.ecs#ResourceNotFoundException", + "com.amazonaws.ecs#ServerException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.pyi b/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.pyi new file mode 100644 index 00000000..df828727 --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/models.pyi @@ -0,0 +1,18537 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.documents import Document +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AcceleratorCountRequest(_SerdeShape): + """ + The minimum and maximum number of accelerators (such as GPUs) for + instance type selection. This is used for workloads that require + specific numbers of accelerators. + """ + + min: int | None = ... + """ + The minimum number of accelerators. Instance types with fewer + accelerators are excluded from selection. + """ + max: int | None = ... + """ + The maximum number of accelerators. Instance types with more + accelerators are excluded from selection. + """ + +class AcceleratorManufacturer(UnknownEnumMixin, StrEnum): + AMAZON_WEB_SERVICES = "amazon-web-services" + AMD = "amd" + NVIDIA = "nvidia" + XILINX = "xilinx" + HABANA = "habana" + +class AcceleratorName(UnknownEnumMixin, StrEnum): + A100 = "a100" + INFERENTIA = "inferentia" + K520 = "k520" + K80 = "k80" + M60 = "m60" + RADEON_PRO_V520 = "radeon-pro-v520" + T4 = "t4" + VU9_P = "vu9p" + V100 = "v100" + A10_G = "a10g" + H100 = "h100" + T4_G = "t4g" + L40_S = "l40s" + L4 = "l4" + +@dataclass(kw_only=True) +class AcceleratorTotalMemoryMiBRequest(_SerdeShape): + """ + The minimum and maximum total accelerator memory in mebibytes (MiB) for + instance type selection. This is important for GPU workloads that + require specific amounts of video memory. + """ + + min: int | None = ... + """ + The minimum total accelerator memory in MiB. Instance types with less + accelerator memory are excluded from selection. + """ + max: int | None = ... + """ + The maximum total accelerator memory in MiB. Instance types with more + accelerator memory are excluded from selection. + """ + +class AcceleratorType(UnknownEnumMixin, StrEnum): + GPU = "gpu" + FPGA = "fpga" + INFERENCE = "inference" + +@dataclass(kw_only=True) +class AccessDeniedException(ServiceError, _SerdeShape): + """You don't have authorization to perform the requested action.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AccessType(UnknownEnumMixin, StrEnum): + """ + Specifies whether a resource is publicly accessible from the internet or + private to a VPC. + """ + + PUBLIC = "PUBLIC" + """The resource is publicly accessible from the internet.""" + PRIVATE = "PRIVATE" + """The resource is private and reachable only from within the VPC.""" + +@dataclass(kw_only=True) +class AdvancedConfiguration(_SerdeShape): + """ + The advanced settings for a load balancer used in blue/green + deployments. Specify the alternate target group, listener rules, and IAM + role required for traffic shifting during blue/green deployments. For + more information, see [Required resources for Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + alternate_target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the alternate target group for Amazon + ECS blue/green deployments. + """ + production_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) that that identifies the production + listener rule (in the case of an Application Load Balancer) or listener + (in the case for an Network Load Balancer) for routing production + traffic. + """ + test_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies ) that identifies the + test listener rule (in the case of an Application Load Balancer) or + listener (in the case for an Network Load Balancer) for routing test + traffic. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that grants Amazon ECS + permission to call the Elastic Load Balancing APIs for you. + """ + +class AgentUpdateStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + STAGING = "STAGING" + STAGED = "STAGED" + UPDATING = "UPDATING" + UPDATED = "UPDATED" + FAILED = "FAILED" + +class ApplicationProtocol(UnknownEnumMixin, StrEnum): + HTTP = "http" + HTTP2 = "http2" + GRPC = "grpc" + +class AssignPublicIp(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class AssociateGatewayWithClusterInput(_SerdeShape): + """Dataclass for AssociateGatewayWithClusterInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway to associate.""" + cluster: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the cluster to associate the + gateway with. + """ + +@dataclass(kw_only=True) +class AssociateGatewayWithClusterOutput(_SerdeShape): + """Dataclass for AssociateGatewayWithClusterOutput structure.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster.""" + status: str | None = ... + """The status of the association. A new association is `ACTIVE`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Attachment(_SerdeShape): + """An object representing a container instance or task attachment.""" + + id: str | None = ... + """The unique identifier for the attachment.""" + type: str | None = ... + """ + The type of the attachment, such as `ElasticNetworkInterface`, + `Service Connect`, and `AmazonElasticBlockStorage`. + """ + status: str | None = ... + """ + The status of the attachment. Valid values are `PRECREATED`, `CREATED`, + `ATTACHING`, `ATTACHED`, `DETACHING`, `DETACHED`, `DELETED`, and + `FAILED`. + """ + details: list[KeyValuePair] | None = ... + """ + Details of the attachment. + + For elastic network interfaces, this includes the network interface ID, + the MAC address, the subnet ID, and the private IPv4 address. + + For Service Connect services, this includes `portName`, `clientAliases`, + `discoveryName`, and `ingressPortOverride`. + + For Elastic Block Storage, this includes `roleArn`, + `deleteOnTermination`, `volumeName`, `volumeId`, and `statusReason` + (only when the attachment fails to create or attach). + """ + +@dataclass(kw_only=True) +class AttachmentStateChange(_SerdeShape): + """An object representing a change in state for a task attachment.""" + + attachment_arn: str + """The Amazon Resource Name (ARN) of the attachment.""" + status: str + """The status of the attachment.""" + +class AttestationPolicyStatus(UnknownEnumMixin, StrEnum): + """ + The status of the attestation policy for a task that uses the + `CONFIDENTIAL_SANDBOX` isolation mode. + """ + + CONFIGURED = "CONFIGURED" + """An attestation policy is configured for the task.""" + +@dataclass(kw_only=True) +class Attribute(_SerdeShape): + """ + An attribute is a name-value pair that's associated with an Amazon ECS + object. Use attributes to extend the Amazon ECS data model by adding + custom metadata to your resources. For more information, see + [Attributes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + name: str + """ + The name of the attribute. The `name` must contain between 1 and 128 + characters. The name may contain letters (uppercase and lowercase), + numbers, hyphens (-), underscores (_), forward slashes (/), back + slashes (\\), or periods (.). + """ + value: str | None = ... + """ + The value of the attribute. The `value` must contain between 1 and 128 + characters. It can contain letters (uppercase and lowercase), numbers, + hyphens (-), underscores (_), periods (.), at signs (@), forward + slashes (/), back slashes (\\), colons (:), or spaces. The value can't + start or end with a space. + """ + target_type: str | None = ... + """ + The type of the target to attach the attribute with. This parameter is + required if you use the short form ID for a resource instead of the full + ARN. + """ + target_id: str | None = ... + """ + The ID of the target. You can specify the short form ID for a resource + or the full Amazon Resource Name (ARN). + """ + +@dataclass(kw_only=True) +class AttributeLimitExceededException(ServiceError, _SerdeShape): + """ + You can apply up to 10 custom attributes for each resource. You can view + the attributes of a resource with + [ListAttributes](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAttributes.html). + You can remove existing attributes on a resource with + [DeleteAttributes](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AutoRepairActionsStatus(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class AutoRepairConfiguration(_SerdeShape): + """ + The auto repair configuration for an Amazon ECS Managed Instances + capacity provider. When enabled, Amazon ECS automatically replaces + container instances that are detected as unhealthy based on container + instance health checks, including accelerated compute device and daemon + health checks. + """ + + actions_status: str | None = ... + """ + The status of auto repair actions for the capacity provider. When set to + `ENABLED`, Amazon ECS automatically replaces container instances with an + `IMPAIRED` health status. When set to `DISABLED`, Amazon ECS still + monitors container instance health but does not automatically replace + impaired instances. + """ + +@dataclass(kw_only=True) +class AutoScalingGroupProvider(_SerdeShape): + """The details of the Auto Scaling group for the capacity provider.""" + + auto_scaling_group_arn: str + """ + The Amazon Resource Name (ARN) that identifies the Auto Scaling group, + or the Auto Scaling group name. + """ + managed_scaling: ManagedScaling | None = ... + """ + The managed scaling settings for the Auto Scaling group capacity + provider. + """ + managed_termination_protection: str | None = ... + """ + The managed termination protection setting to use for the Auto Scaling + group capacity provider. This determines whether the Auto Scaling group + has managed termination protection. The default is off. + + Warning: + When using managed termination protection, managed scaling must also be + used otherwise managed termination protection doesn't work. + + When managed termination protection is on, Amazon ECS prevents the + Amazon EC2 instances in an Auto Scaling group that contain tasks from + being terminated during a scale-in action. The Auto Scaling group and + each instance in the Auto Scaling group must have instance protection + from scale-in actions on as well. For more information, see [Instance + Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) + in the *Auto Scaling User Guide*. + + When managed termination protection is off, your Amazon EC2 instances + aren't protected from termination when the Auto Scaling group scales + in. + """ + managed_draining: str | None = ... + """ + The managed draining option for the Auto Scaling group capacity + provider. When you enable this, Amazon ECS manages and gracefully drains + the EC2 container instances that are in the Auto Scaling group capacity + provider. + """ + +@dataclass(kw_only=True) +class AutoScalingGroupProviderUpdate(_SerdeShape): + """The details of the Auto Scaling group capacity provider to update.""" + + managed_scaling: ManagedScaling | None = ... + """ + The managed scaling settings for the Auto Scaling group capacity + provider. + """ + managed_termination_protection: str | None = ... + """ + The managed termination protection setting to use for the Auto Scaling + group capacity provider. This determines whether the Auto Scaling group + has managed termination protection. + + Warning: + When using managed termination protection, managed scaling must also be + used otherwise managed termination protection doesn't work. + + When managed termination protection is on, Amazon ECS prevents the + Amazon EC2 instances in an Auto Scaling group that contain tasks from + being terminated during a scale-in action. The Auto Scaling group and + each instance in the Auto Scaling group must have instance protection + from scale-in actions on. For more information, see [Instance + Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) + in the *Auto Scaling User Guide*. + + When managed termination protection is off, your Amazon EC2 instances + aren't protected from termination when the Auto Scaling group scales + in. + """ + managed_draining: str | None = ... + """ + The managed draining option for the Auto Scaling group capacity + provider. When you enable this, Amazon ECS manages and gracefully drains + the EC2 container instances that are in the Auto Scaling group capacity + provider. + """ + +class AvailabilityZoneRebalancing(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class AwsVpcConfiguration(_SerdeShape): + """ + An object representing the networking details for a task or service. For + example + `awsVpcConfiguration={subnets=["subnet-12344321"],securityGroups=["sg-12344321"]}`. + """ + + subnets: list[str] + """ + The IDs of the subnets associated with the task or service. There's a + limit of 16 subnets that can be specified. + + Note: + All specified subnets must be from the same VPC. + """ + security_groups: list[str] | None = ... + """ + The IDs of the security groups associated with the task or service. If + you don't specify a security group, the default security group for the + VPC is used. There's a limit of 5 security groups that can be + specified. + + Note: + All specified security groups must be from the same VPC. + """ + assign_public_ip: str | None = ... + """ + Whether the task's elastic network interface receives a public IP + address. + + Consider the following when you set this value: + + - When you use `create-service` or `update-service`, the default is + `DISABLED`. + + - When the service `deploymentController` is `ECS`, the value must be + `DISABLED`. + """ + +class BareMetal(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +@dataclass(kw_only=True) +class BaselineEbsBandwidthMbpsRequest(_SerdeShape): + """ + The minimum and maximum baseline Amazon EBS bandwidth in megabits per + second (Mbps) for instance type selection. This is important for + workloads with high storage I/O requirements. + """ + + min: int | None = ... + """ + The minimum baseline Amazon EBS bandwidth in Mbps. Instance types with + lower Amazon EBS bandwidth are excluded from selection. + """ + max: int | None = ... + """ + The maximum baseline Amazon EBS bandwidth in Mbps. Instance types with + higher Amazon EBS bandwidth are excluded from selection. + """ + +@dataclass(kw_only=True) +class BlockedException(ServiceError, _SerdeShape): + """ + Your Amazon Web Services account was blocked. For more information, + contact [Amazon Web Services + Support](http://aws.amazon.com/contact-us/). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class BurstablePerformance(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +@dataclass(kw_only=True) +class CanaryConfiguration(_SerdeShape): + """ + Configuration for a canary deployment strategy that shifts a fixed + percentage of traffic to the new service revision, waits for a specified + bake time, then shifts the remaining traffic. + + This is only valid when you run `CreateService` or `UpdateService` with + `deploymentController` set to `ECS` and a `deploymentConfiguration` with + a strategy set to `CANARY`. + """ + + canary_percent: float | None = ... + """ + The percentage of production traffic to shift to the new service + revision during the canary phase. Valid values are multiples of 0.1 from + 0.1 to 100.0. The default value is 5.0. + """ + canary_bake_time_in_minutes: int | None = ... + """ + The amount of time in minutes to wait during the canary phase before + shifting the remaining production traffic to the new service revision. + Valid values are 0 to 1440 minutes (24 hours). The default value is 10. + """ + +class CapacityOptionType(UnknownEnumMixin, StrEnum): + ON_DEMAND = "ON_DEMAND" + SPOT = "SPOT" + RESERVED = "RESERVED" + +@dataclass(kw_only=True) +class CapacityProvider(_SerdeShape): + """The details for a capacity provider.""" + + capacity_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) that identifies the capacity provider.""" + name: str | None = ... + """The name of the capacity provider.""" + cluster: str | None = ... + """ + The cluster that this capacity provider is associated with. Managed + instances capacity providers are cluster-scoped, meaning they can only + be used within their associated cluster. + + This is required for Managed instances. + """ + status: str | None = ... + """ + The current status of the capacity provider. Only capacity providers in + an `ACTIVE` state can be used in a cluster. When a capacity provider is + successfully deleted, it has an `INACTIVE` status. + """ + auto_scaling_group_provider: AutoScalingGroupProvider | None = ... + """The Auto Scaling group settings for the capacity provider.""" + managed_instances_provider: ManagedInstancesProvider | None = ... + """ + The configuration for the Amazon ECS Managed Instances provider. This + includes the infrastructure role, the launch template configuration, and + tag propagation settings. + """ + update_status: str | None = ... + """ + The update status of the capacity provider. The following are the + possible states that is returned. + + DELETE_IN_PROGRESS + + : The capacity provider is in the process of being deleted. + + DELETE_COMPLETE + + : The capacity provider was successfully deleted and has an `INACTIVE` + status. + + DELETE_FAILED + + : The capacity provider can't be deleted. The update status reason + provides further details about why the delete failed. + """ + update_status_reason: str | None = ... + """ + The update status reason. This provides further details about the update + status for the capacity provider. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the capacity provider to help you + categorize and organize it. 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. + """ + type: str | None = ... + """ + The type of capacity provider. For Amazon ECS Managed Instances, this + value is `MANAGED_INSTANCES`, indicating that Amazon ECS manages the + underlying Amazon EC2 instances on your behalf. + """ + +class CapacityProviderField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +class CapacityProviderStatus(UnknownEnumMixin, StrEnum): + PROVISIONING = "PROVISIONING" + ACTIVE = "ACTIVE" + DEPROVISIONING = "DEPROVISIONING" + INACTIVE = "INACTIVE" + +@dataclass(kw_only=True) +class CapacityProviderStrategyItem(_SerdeShape): + """ + The details of a capacity provider strategy. A capacity provider + strategy can be set when using the + [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)or + [CreateCluster](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html) + APIs or as the default capacity provider strategy for a cluster with the + `CreateCluster` API. + + Only capacity providers that are already associated with a cluster and + have an `ACTIVE` or `UPDATING` status can be used in a capacity provider + strategy. The + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + API is used to associate a capacity provider with a cluster. + + If specifying a capacity provider that uses an Auto Scaling group, the + capacity provider must already be created. New Auto Scaling group + capacity providers can be created with the + [CreateClusterCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateClusterCapacityProvider.html) + API operation. + + To use a Fargate capacity provider, specify either the `FARGATE` or + `FARGATE_SPOT` capacity providers. The Fargate capacity providers are + available to all accounts and only need to be associated with a cluster + to be used in a capacity provider strategy. + + With `FARGATE_SPOT`, you can run interruption tolerant tasks at a rate + that's discounted compared to the `FARGATE` price. `FARGATE_SPOT` runs + tasks on spare compute capacity. When Amazon Web Services needs the + capacity back, your tasks are interrupted with a two-minute warning. + `FARGATE_SPOT` supports Linux tasks with the X86_64 architecture on + platform version 1.3.0 or later. `FARGATE_SPOT` supports Linux tasks + with the ARM64 architecture on platform version 1.4.0 or later. + + A capacity provider strategy can contain a maximum of 20 capacity + providers. + """ + + capacity_provider: str + """The short name of the capacity provider.""" + weight: int = ... + """ + The *weight* value designates the relative percentage of the total + number of tasks launched that should use the specified capacity + provider. The `weight` value is taken into consideration after the + `base` value, if defined, is satisfied. + + If no `weight` value is specified, the default value of `0` is used. + When multiple capacity providers are specified within a capacity + provider strategy, at least one of the capacity providers must have a + weight value greater than zero and any capacity providers with a weight + of `0` can't be used to place tasks. If you specify multiple capacity + providers in a strategy that all have a weight of `0`, any `RunTask` or + `CreateService` actions using the capacity provider strategy will fail. + + Weight value characteristics: + + - Weight is considered after the base value is satisfied + + - The default value is `0` if not specified + + - The valid range is 0 to 1,000 + + - At least one capacity provider must have a weight greater than zero + + - Capacity providers with weight of `0` cannot place tasks + + Task distribution logic: + + 1. Base satisfaction: The minimum number of tasks specified by the base + value are placed on that capacity provider + + 2. Weight distribution: After base requirements are met, additional + tasks are distributed according to weight ratios + + Examples: + + Equal Distribution: Two capacity providers both with weight `1` will + split tasks evenly after base requirements are met. + + Weighted Distribution: If capacityProviderA has weight `1` and + capacityProviderB has weight `4`, then for every 1 task on A, 4 tasks + will run on B. + """ + base: int = ... + """ + The *base* value designates how many tasks, at a minimum, to run on the + specified capacity provider for each service. Only one capacity provider + in a capacity provider strategy can have a *base* defined. If no value + is specified, the default value of `0` is used. + + Base value characteristics: + + - Only one capacity provider in a strategy can have a base defined + + - The default value is `0` if not specified + + - The valid range is 0 to 100,000 + + - Base requirements are satisfied first before weight distribution + """ + +class CapacityProviderType(UnknownEnumMixin, StrEnum): + EC2_AUTOSCALING = "EC2_AUTOSCALING" + MANAGED_INSTANCES = "MANAGED_INSTANCES" + FARGATE = "FARGATE" + FARGATE_SPOT = "FARGATE_SPOT" + +class CapacityProviderUpdateStatus(UnknownEnumMixin, StrEnum): + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + CREATE_COMPLETE = "CREATE_COMPLETE" + CREATE_FAILED = "CREATE_FAILED" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETE_COMPLETE = "DELETE_COMPLETE" + DELETE_FAILED = "DELETE_FAILED" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + UPDATE_COMPLETE = "UPDATE_COMPLETE" + UPDATE_FAILED = "UPDATE_FAILED" + +class CapacityReservationPreference(UnknownEnumMixin, StrEnum): + RESERVATIONS_ONLY = "RESERVATIONS_ONLY" + RESERVATIONS_FIRST = "RESERVATIONS_FIRST" + RESERVATIONS_EXCLUDED = "RESERVATIONS_EXCLUDED" + +@dataclass(kw_only=True) +class CapacityReservationRequest(_SerdeShape): + """ + The Capacity Reservation configurations to be used when using the + `RESERVED` capacity option type. + """ + + reservation_group_arn: str | None = ... + """ + The ARN of the Capacity Reservation resource group in which to run the + instance. + """ + reservation_preference: str | None = ... + """ + The preference on when capacity reservations should be used. + + Valid values are: + + - `RESERVATIONS_ONLY` - Exclusively launch instances into capacity + reservations that match the instance requirements configured for the + capacity provider. If none exist, instances will fail to provision. + + - `RESERVATIONS_FIRST` - Prefer to launch instances into a capacity + reservation if any exist that match the instance requirements + configured for the capacity provider. If none exist, fall back to + launching instances On-Demand. + + - `RESERVATIONS_EXCLUDED` - Avoid using capacity reservations and launch + exclusively On-Demand. + """ + +@dataclass(kw_only=True) +class ClientException(ServiceError, _SerdeShape): + """ + These errors are usually caused by a client action. This client action + might be using an action or resource on behalf of a user that doesn't + have permissions to use the action or resource. Or, it might be + specifying an identifier that isn't valid. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Cluster(_SerdeShape): + """ + A regional grouping of one or more container instances where you can run + task requests. Each account receives a default cluster the first time + you use the Amazon ECS service, but you may also create other clusters. + Clusters may contain more than one instance type simultaneously. + """ + + cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the cluster. For more + information about the ARN format, see [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids) + in the *Amazon ECS Developer Guide*. + """ + cluster_name: str | None = ... + """A user-generated string that you use to identify your cluster.""" + configuration: ClusterConfiguration | None = ... + """The execute command and managed storage configuration for the cluster.""" + status: str | None = ... + """ + The status of the cluster. The following are the possible states that + are returned. + + ACTIVE + + : The cluster is ready to accept tasks and if applicable you can + register container instances with the cluster. + + PROVISIONING + + : The cluster has capacity providers that are associated with it and the + resources needed for the capacity provider are being created. + + DEPROVISIONING + + : The cluster has capacity providers that are associated with it and the + resources needed for the capacity provider are being deleted. + + FAILED + + : The cluster has capacity providers that are associated with it and the + resources needed for the capacity provider have failed to create. + + INACTIVE + + : The cluster has been deleted. Clusters with an `INACTIVE` status may + remain discoverable in your account for a period of time. However, + this behavior is subject to change in the future. We don't recommend + that you rely on `INACTIVE` clusters persisting. + """ + registered_container_instances_count: int = ... + """ + The number of container instances registered into the cluster. This + includes container instances in both `ACTIVE` and `DRAINING` status. + """ + running_tasks_count: int = ... + """The number of tasks in the cluster that are in the `RUNNING` state.""" + pending_tasks_count: int = ... + """The number of tasks in the cluster that are in the `PENDING` state.""" + active_services_count: int = ... + """ + The number of services that are running on the cluster in an `ACTIVE` + state. You can view these services with + [ListServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html). + """ + statistics: list[KeyValuePair] | None = ... + """ + Additional information about your clusters that are separated by launch + type. They include the following: + + - runningEC2TasksCount + + - RunningFargateTasksCount + + - pendingEC2TasksCount + + - pendingFargateTasksCount + + - activeEC2ServiceCount + + - activeFargateServiceCount + + - drainingEC2ServiceCount + + - drainingFargateServiceCount + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the cluster to help you categorize and + organize them. 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. + """ + settings: list[ClusterSetting] | None = ... + """ + The settings for the cluster. This parameter indicates whether + CloudWatch Container Insights is on or off for a cluster. + """ + capacity_providers: list[str] | None = ... + """The capacity providers associated with the cluster.""" + default_capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The default capacity provider strategy for the cluster. When services or + tasks are run in the cluster with no launch type or capacity provider + strategy specified, the default capacity provider strategy is used. + """ + attachments: list[Attachment] | None = ... + """ + The resources attached to a cluster. When using a capacity provider with + a cluster, the capacity provider and associated resources are returned + as cluster attachments. + """ + attachments_status: str | None = ... + """ + The status of the capacity providers associated with the cluster. The + following are the states that are returned. + + UPDATE_IN_PROGRESS + + : The available capacity providers for the cluster are updating. + + UPDATE_COMPLETE + + : The capacity providers have successfully updated. + + UPDATE_FAILED + + : The capacity provider updates failed. + """ + service_connect_defaults: ClusterServiceConnectDefaults | None = ... + """ + Use this parameter to set a default Service Connect namespace. After you + set a default Service Connect namespace, any new services with Service + Connect turned on that are created in the cluster are added as client + services in the namespace. This setting only applies to new services + that set the `enabled` parameter to `true` in the + `ServiceConnectConfiguration`. You can set the namespace of each service + individually in the `ServiceConnectConfiguration` to override this + default parameter. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class ClusterConfiguration(_SerdeShape): + """The execute command and managed storage configuration for the cluster.""" + + execute_command_configuration: ExecuteCommandConfiguration | None = ... + """The details of the execute command configuration.""" + managed_storage_configuration: ManagedStorageConfiguration | None = ... + """The details of the managed storage configuration.""" + +@dataclass(kw_only=True) +class ClusterContainsCapacityProviderException(ServiceError, _SerdeShape): + """ + The cluster contains one or more capacity providers that prevent the + requested operation. This exception occurs when you try to delete a + cluster that still has active capacity providers, including Amazon ECS + Managed Instances capacity providers. You must first delete all capacity + providers from the cluster before you can delete the cluster itself. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ClusterContainsContainerInstancesException(ServiceError, _SerdeShape): + """ + You can't delete a cluster that has registered container instances. + First, deregister the container instances before you can delete the + cluster. For more information, see + [DeregisterContainerInstance](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ClusterContainsServicesException(ServiceError, _SerdeShape): + """ + You can't delete a cluster that contains services. First, update the + service to reduce its desired task count to 0, and then delete the + service. For more information, see + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) + and + [DeleteService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteService.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ClusterContainsTasksException(ServiceError, _SerdeShape): + """You can't delete a cluster that has active tasks.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ClusterField(UnknownEnumMixin, StrEnum): + ATTACHMENTS = "ATTACHMENTS" + CONFIGURATIONS = "CONFIGURATIONS" + SETTINGS = "SETTINGS" + STATISTICS = "STATISTICS" + TAGS = "TAGS" + +@dataclass(kw_only=True) +class ClusterNotFoundException(ServiceError, _SerdeShape): + """ + The specified cluster wasn't found. You can view your available + clusters with + [ListClusters](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListClusters.html). + Amazon ECS clusters are Region specific. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ClusterServiceConnectDefaults(_SerdeShape): + """ + Use this parameter to set a default Service Connect namespace. After you + set a default Service Connect namespace, any new services with Service + Connect turned on that are created in the cluster are added as client + services in the namespace. This setting only applies to new services + that set the `enabled` parameter to `true` in the + `ServiceConnectConfiguration`. You can set the namespace of each service + individually in the `ServiceConnectConfiguration` to override this + default parameter. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + namespace: str | None = ... + """ + The namespace name or full Amazon Resource Name (ARN) of the Cloud Map + namespace. When you create a service and don't specify a Service + Connect configuration, this namespace is used. + """ + +@dataclass(kw_only=True) +class ClusterServiceConnectDefaultsRequest(_SerdeShape): + """ + Use this parameter to set a default Service Connect namespace. After you + set a default Service Connect namespace, any new services with Service + Connect turned on that are created in the cluster are added as client + services in the namespace. This setting only applies to new services + that set the `enabled` parameter to `true` in the + `ServiceConnectConfiguration`. You can set the namespace of each service + individually in the `ServiceConnectConfiguration` to override this + default parameter. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + namespace: str + """ + The namespace name or full Amazon Resource Name (ARN) of the Cloud Map + namespace that's used when you create a service and don't specify a + Service Connect configuration. The namespace name can include up to 1024 + characters. The name is case-sensitive. The name can't include greater + than (>), less than (<), double quotation marks (\"), or slash (/). + + If you enter an existing namespace name or ARN, then that namespace will + be used. Any namespace type is supported. The namespace must be in this + account and this Amazon Web Services Region. + + If you enter a new name, a Cloud Map namespace will be created. Amazon + ECS creates a Cloud Map namespace with the \"API calls\" method of + instance discovery only. This instance discovery method is the \"HTTP\" + namespace type in the Command Line Interface. Other types of instance + discovery aren't used by Service Connect. + + If you update the cluster with an empty string `""` for the namespace + name, the cluster configuration for Service Connect is removed. Note + that the namespace will remain in Cloud Map and must be deleted + separately. + + For more information about Cloud Map, see [Working with + Services](https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html) + in the *Cloud Map Developer Guide*. + """ + +@dataclass(kw_only=True) +class ClusterSetting(_SerdeShape): + """ + The settings to use when creating a cluster. This parameter is used to + turn on CloudWatch Container Insights with enhanced observability or + CloudWatch Container Insights for a cluster. + + Container Insights with enhanced observability provides all the + Container Insights metrics, plus additional task and container metrics. + This version supports enhanced observability for Amazon ECS clusters + using the Amazon EC2 and Fargate launch types. After you configure + Container Insights with enhanced observability on Amazon ECS, Container + Insights auto-collects detailed infrastructure telemetry from the + cluster level down to the container level in your environment and + displays these critical performance data in curated dashboards removing + the heavy lifting in observability set-up. + + For more information, see [Monitor Amazon ECS containers using Container + Insights with enhanced + observability](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + name: str | None = ... + """The name of the cluster setting. The value is `containerInsights`.""" + value: str | None = ... + """ + The value to set for the cluster setting. The supported values are + `enhanced`, `enabled`, and `disabled`. + + To use Container Insights with enhanced observability, set the + `containerInsights` account setting to `enhanced`. + + To use Container Insights, set the `containerInsights` account setting + to `enabled`. + + If a cluster value is specified, it will override the + `containerInsights` value set with + [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) + or + [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html). + """ + +class ClusterSettingName(UnknownEnumMixin, StrEnum): + CONTAINER_INSIGHTS = "containerInsights" + +class Compatibility(UnknownEnumMixin, StrEnum): + EC2 = "EC2" + FARGATE = "FARGATE" + EXTERNAL = "EXTERNAL" + MANAGED_INSTANCES = "MANAGED_INSTANCES" + +@dataclass(kw_only=True) +class ConflictException(ServiceError, _SerdeShape): + """ + The request could not be processed because of conflict in the current + state of the resource. + """ + + resource_ids: list[str] | None = ... + """ + The existing task ARNs which are already associated with the + `clientToken`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class Connectivity(UnknownEnumMixin, StrEnum): + CONNECTED = "CONNECTED" + DISCONNECTED = "DISCONNECTED" + +@dataclass(kw_only=True) +class Container(_SerdeShape): + """A Docker container that's part of a task.""" + + container_arn: str | None = ... + """The Amazon Resource Name (ARN) of the container.""" + task_arn: str | None = ... + """The ARN of the task.""" + name: str | None = ... + """The name of the container.""" + image: str | None = ... + """The image used for the container.""" + image_digest: str | None = ... + """The container image manifest digest.""" + runtime_id: str | None = ... + """The ID of the Docker container.""" + last_status: str | None = ... + """The last known status of the container.""" + exit_code: int | None = ... + """The exit code returned from the container.""" + reason: str | None = ... + """ + A short (1024 max characters) human-readable string to provide + additional details about a running or stopped container. + """ + network_bindings: list[NetworkBinding] | None = ... + """The network bindings associated with the container.""" + network_interfaces: list[NetworkInterface] | None = ... + """The network interfaces associated with the container.""" + health_status: str | None = ... + """ + The health status of the container. If health checks aren't configured + for this container in its task definition, then it reports the health + status as `UNKNOWN`. + """ + managed_agents: list[ManagedAgent] | None = ... + """ + The details of any Amazon ECS managed agents associated with the + container. + """ + cpu: str | None = ... + """ + The number of CPU units set for the container. The value is `0` if no + value was specified in the container definition when the task definition + was registered. + """ + memory: str | None = ... + """The hard limit (in MiB) of memory set for the container.""" + memory_reservation: str | None = ... + """The soft limit (in MiB) of memory set for the container.""" + gpu_ids: list[str] | None = ... + """The IDs of each GPU assigned to the container.""" + neuron_device_ids: list[str] | None = ... + """The IDs of each Neuron device assigned to the container.""" + gpu_sharing_strategy: SharingStrategy | None = ... + """ + The GPU sharing strategy that the task definition specifies for the + container. This field is present only for containers whose resource + requirements include `sharingStrategy`. + """ + +class ContainerCondition(UnknownEnumMixin, StrEnum): + START = "START" + COMPLETE = "COMPLETE" + SUCCESS = "SUCCESS" + HEALTHY = "HEALTHY" + +@dataclass(kw_only=True) +class ContainerDefinition(_SerdeShape): + """ + Container definitions are used in task definitions to describe the + different containers that are launched as part of a task. + """ + + name: str | None = ... + """ + The name of a container. If you're linking multiple containers together + in a task definition, the `name` of one container can be entered in the + `links` of another container to connect the containers. Up to 255 + letters (uppercase and lowercase), numbers, underscores, and hyphens are + allowed. This parameter maps to `name` in the docker container create + command and the `--name` option to docker run. + """ + image: str | None = ... + """ + The image used to start a container. This string is passed directly to + the Docker daemon. By default, images in the Docker Hub registry are + available. Other repositories are specified with either + ` `*`repository-url`*`/`*`image`*`:`*`tag`*` ` or + ` `*`repository-url`*`/`*`image`*`@`*`digest`*` `. For images using tags + (repository-url/image:tag), up to 255 characters total are allowed, + including letters (uppercase and lowercase), numbers, hyphens, + underscores, colons, periods, forward slashes, and number signs (#). For + images using digests (repository-url/image@digest), the 255 character + limit applies only to the repository URL and image name (everything + before the @ sign). The only supported hash function is sha256, and the + hash value after sha256: must be exactly 64 characters (only letters + A-F, a-f, and numbers 0-9 are allowed). This parameter maps to `Image` + in the docker container create command and the `IMAGE` parameter of + docker run. + + - When a new task starts, the Amazon ECS container agent pulls the + latest version of the specified image and tag for the container to + use. However, subsequent updates to a repository image aren't + propagated to already running tasks. + + - Images in Amazon ECR repositories can be specified by either using the + full `registry/repository:tag` or `registry/repository@digest`. For + example, + `012345678910.dkr.ecr..amazonaws.com/:latest` + or + `012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE`. + + - Images in official repositories on Docker Hub use a single name (for + example, `ubuntu` or `mongo`). + + - Images in other repositories on Docker Hub are qualified with an + organization name (for example, `amazon/amazon-ecs-agent`). + + - Images in other online repositories are qualified further by a domain + name (for example, `quay.io/assemblyline/ubuntu`). + """ + repository_credentials: RepositoryCredentials | None = ... + """The private repository authentication credentials to use.""" + cpu: int = ... + """ + The number of `cpu` units reserved for the container. This parameter + maps to `CpuShares` in the docker container create command and the + `--cpu-shares` option to docker run. + + This field is optional for tasks using the Fargate launch type, and the + only requirement is that the total amount of CPU reserved for all + containers within a task be lower than the task-level `cpu` value. + + Note: + You can determine the number of CPU units that are available per EC2 + instance type by multiplying the vCPUs listed for that instance type on + the [Amazon EC2 Instances](http://aws.amazon.com/ec2/instance-types/) + detail page by 1,024. + + Linux containers share unallocated CPU units with other containers on + the container instance with the same ratio as their allocated amount. + For example, if you run a single-container task on a single-core + instance type with 512 CPU units specified for that container, and + that's the only task running on the container instance, that container + could use the full 1,024 CPU unit share at any given time. However, if + you launched another copy of the same task on that container instance, + each task is guaranteed a minimum of 512 CPU units when needed. + Moreover, each container could float to higher CPU usage if the other + container was not using it. If both tasks were 100% active all of the + time, they would be limited to 512 CPU units. + + On Linux container instances, the Docker daemon on the container + instance uses the CPU value to calculate the relative CPU share ratios + for running containers. The minimum valid CPU share value that the Linux + kernel allows is 2, and the maximum valid CPU share value that the Linux + kernel allows is 262144. However, the CPU parameter isn't required, and + you can use CPU values below 2 or above 262144 in your container + definitions. For CPU values below 2 (including null) or above 262144, + the behavior varies based on your Amazon ECS container agent version: + + - **Agent versions less than or equal to 1.1.0:** Null and zero CPU + values are passed to Docker as 0, which Docker then converts to 1,024 + CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux + kernel converts to two CPU shares. + + - **Agent versions greater than or equal to 1.2.0:** Null, zero, and CPU + values of 1 are passed to Docker as 2. + + - **Agent versions greater than or equal to 1.84.0:** CPU values greater + than 256 vCPU are passed to Docker as 256, which is equivalent to + 262144 CPU shares. + + On Windows container instances, the CPU limit is enforced as an absolute + limit, or a quota. Windows containers only have access to the specified + amount of CPU that's described in the task definition. A null or zero + CPU value is passed to Docker as `0`, which Windows interprets as 1% of + one CPU. + """ + memory: int | None = ... + """ + The amount (in MiB) of memory to present to the container. If your + container attempts to exceed the memory specified here, the container is + killed. The total amount of memory reserved for all containers within a + task must be lower than the task `memory` value, if one is specified. + This parameter maps to `Memory` in the docker container create command + and the `--memory` option to docker run. + + If using the Fargate launch type, this parameter is optional. + + If using the EC2 launch type, you must specify either a task-level + memory value or a container-level memory value. If you specify both a + container-level `memory` and `memoryReservation` value, `memory` must be + greater than `memoryReservation`. If you specify `memoryReservation`, + then that value is subtracted from the available memory resources for + the container instance where the container is placed. Otherwise, the + value of `memory` is used. + + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory + for a container. So, don't specify less than 6 MiB of memory for your + containers. + + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of + memory for a container. So, don't specify less than 4 MiB of memory for + your containers. + """ + memory_reservation: int | None = ... + """ + The soft limit (in MiB) of memory to reserve for the container. When + system memory is under heavy contention, Docker attempts to keep the + container memory to this soft limit. However, your container can consume + more memory when it needs to, up to either the hard limit specified with + the `memory` parameter (if applicable), or all of the available memory + on the container instance, whichever comes first. This parameter maps to + `MemoryReservation` in the docker container create command and the + `--memory-reservation` option to docker run. + + If a task-level memory value is not specified, you must specify a + non-zero integer for one or both of `memory` or `memoryReservation` in a + container definition. If you specify both, `memory` must be greater than + `memoryReservation`. If you specify `memoryReservation`, then that value + is subtracted from the available memory resources for the container + instance where the container is placed. Otherwise, the value of `memory` + is used. + + For example, if your container normally uses 128 MiB of memory, but + occasionally bursts to 256 MiB of memory for short periods of time, you + can set a `memoryReservation` of 128 MiB, and a `memory` hard limit of + 300 MiB. This configuration would allow the container to only reserve + 128 MiB of memory from the remaining resources on the container + instance, but also allow the container to consume more memory resources + when needed. + + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory + for a container. So, don't specify less than 6 MiB of memory for your + containers. + + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of + memory for a container. So, don't specify less than 4 MiB of memory for + your containers. + """ + links: list[str] | None = ... + """ + The `links` parameter allows containers to communicate with each other + without the need for port mappings. This parameter is only supported if + the network mode of a task definition is `bridge`. The + `name:internalName` construct is analogous to `name:alias` in Docker + links. Up to 255 letters (uppercase and lowercase), numbers, + underscores, and hyphens are allowed.. This parameter maps to `Links` in + the docker container create command and the `--link` option to docker + run. + + Note: + This parameter is not supported for Windows containers. + Warning: + Containers that are collocated on a single container instance may be + able to communicate with each other without requiring links or host port + mappings. Network isolation is achieved on the container instance using + security groups and VPC settings. + """ + port_mappings: list[PortMapping] | None = ... + """ + The list of port mappings for the container. Port mappings allow + containers to access ports on the host container instance to send or + receive traffic. + + For task definitions that use the `awsvpc` network mode, only specify + the `containerPort`. The `hostPort` can be left blank or it must be the + same value as the `containerPort`. + + Port mappings on Windows use the `NetNAT` gateway address rather than + `localhost`. There's no loopback for port mappings on Windows, so you + can't access a container's mapped port from the host itself. + + This parameter maps to `PortBindings` in the docker container create + command and the `--publish` option to docker run. If the network mode of + a task definition is set to `none`, then you can't specify port + mappings. If the network mode of a task definition is set to `host`, + then host ports must either be undefined or they must match the + container port in the port mapping. + + Note: + After a task reaches the `RUNNING` status, manual and automatic host and + container port assignments are visible in the **Network Bindings** + section of a container description for a selected task in the Amazon ECS + console. The assignments are also visible in the `networkBindings` + section + [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) + responses. + """ + essential: bool | None = ... + """ + If the `essential` parameter of a container is marked as `true`, and + that container fails or stops for any reason, all other containers that + are part of the task are stopped. If the `essential` parameter of a + container is marked as `false`, its failure doesn't affect the rest of + the containers in a task. If this parameter is omitted, a container is + assumed to be essential. + + All tasks must have at least one essential container. If you have an + application that's composed of multiple containers, group containers + that are used for a common purpose into components, and separate the + different components into multiple task definitions. For more + information, see [Application + Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + restart_policy: ContainerRestartPolicy | None = ... + """ + The restart policy for a container. When you set up a restart policy, + Amazon ECS can restart the container without needing to replace the + task. For more information, see [Restart individual containers in Amazon + ECS tasks with container restart + policies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-restart-policy.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + entry_point: list[str] | None = ... + """ + Warning: + Early versions of the Amazon ECS container agent don't properly handle + `entryPoint` parameters. If you have problems using `entryPoint`, update + your container agent or enter your commands and arguments as `command` + array items instead. + + The entry point that's passed to the container. This parameter maps to + `Entrypoint` in the docker container create command and the + `--entrypoint` option to docker run. + """ + command: list[str] | None = ... + """ + The command that's passed to the container. This parameter maps to + `Cmd` in the docker container create command and the `COMMAND` parameter + to docker run. If there are multiple arguments, each argument is a + separated string in the array. + """ + environment: list[KeyValuePair] | None = ... + """ + The environment variables to pass to a container. This parameter maps to + `Env` in the docker container create command and the `--env` option to + docker run. + + Warning: + We don't recommend that you use plaintext environment variables for + sensitive information, such as credential data. + """ + environment_files: list[EnvironmentFile] | None = ... + """ + A list of files containing the environment variables to pass to a + container. This parameter maps to the `--env-file` option to docker run. + + You can specify up to ten environment files. The file must have a `.env` + file extension. Each line in an environment file contains an environment + variable in `VARIABLE=VALUE` format. Lines beginning with `#` are + treated as comments and are ignored. + + If there are environment variables specified using the `environment` + parameter in a container definition, they take precedence over the + variables contained within an environment file. If multiple environment + files are specified that contain the same variable, they're processed + from the top down. We recommend that you use unique variable names. For + more information, see [Specifying Environment + Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + mount_points: list[MountPoint] | None = ... + """ + The mount points for data volumes in your container. + + This parameter maps to `Volumes` in the docker container create command + and the `--volume` option to docker run. + + Windows containers can mount whole directories on the same drive as + `$env:ProgramData`. Windows containers can't mount directories on a + different drive, and mount point can't be across drives. + """ + volumes_from: list[VolumeFrom] | None = ... + """ + Data volumes to mount from another container. This parameter maps to + `VolumesFrom` in the docker container create command and the + `--volumes-from` option to docker run. + """ + linux_parameters: LinuxParameters | None = ... + """ + Linux-specific modifications that are applied to the default Docker + container configuration, such as Linux kernel capabilities. For more + information see + [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + + Note: + This parameter is not supported for Windows containers. + """ + secrets: list[Secret] | None = ... + """ + The secrets to pass to the container. For more information, see + [Specifying Sensitive + Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + depends_on: list[ContainerDependency] | None = ... + """ + The dependencies defined for container startup and shutdown. A container + can contain multiple dependencies on other containers in a task + definition. When a dependency is defined for container startup, for + container shutdown it is reversed. + + For tasks using the EC2 launch type, the container instances require at + least version 1.26.0 of the container agent to turn on container + dependencies. However, we recommend using the latest container agent + version. For information about checking your agent version and updating + to the latest version, see [Updating the Amazon ECS Container + Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) + in the *Amazon Elastic Container Service Developer Guide*. If you're + using an Amazon ECS-optimized Linux AMI, your instance needs at least + version 1.26.0-1 of the `ecs-init` package. If your container instances + are launched from version `20190301` or later, then they contain the + required versions of the container agent and `ecs-init`. For more + information, see [Amazon ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + in the *Amazon Elastic Container Service Developer Guide*. + + For tasks using the Fargate launch type, the task or service requires + the following platforms: + + - Linux platform version `1.3.0` or later. + + - Windows platform version `1.0.0` or later. + """ + start_timeout: int | None = ... + """ + Time duration (in seconds) to wait before giving up on resolving + dependencies for a container. For example, you specify two containers in + a task definition with containerA having a dependency on containerB + reaching a `COMPLETE`, `SUCCESS`, or `HEALTHY` status. If a + `startTimeout` value is specified for containerB and it doesn't reach + the desired status within that time then containerA gives up and not + start. This results in the task transitioning to a `STOPPED` state. + + Note: + When the `ECS_CONTAINER_START_TIMEOUT` container agent configuration + variable is used, it's enforced independently from this start timeout + value. + + For tasks using the Fargate launch type, the task or service requires + the following platforms: + + - Linux platform version `1.3.0` or later. + + - Windows platform version `1.0.0` or later. + + For tasks using the EC2 launch type, your container instances require at + least version `1.26.0` of the container agent to use a container start + timeout value. However, we recommend using the latest container agent + version. For information about checking your agent version and updating + to the latest version, see [Updating the Amazon ECS Container + Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) + in the *Amazon Elastic Container Service Developer Guide*. If you're + using an Amazon ECS-optimized Linux AMI, your instance needs at least + version `1.26.0-1` of the `ecs-init` package. If your container + instances are launched from version `20190301` or later, then they + contain the required versions of the container agent and `ecs-init`. For + more information, see [Amazon ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The valid values for Fargate are 2-120 seconds. + """ + stop_timeout: int | None = ... + """ + Time duration (in seconds) to wait before the container is forcefully + killed if it doesn't exit normally on its own. + + For tasks using the Fargate launch type, the task or service requires + the following platforms: + + - Linux platform version `1.3.0` or later. + + - Windows platform version `1.0.0` or later. + + For tasks that use the Fargate launch type, the max stop timeout value + is 120 seconds and if the parameter is not specified, the default value + of 30 seconds is used. + + For tasks that use the EC2 launch type, if the `stopTimeout` parameter + isn't specified, the value set for the Amazon ECS container agent + configuration variable `ECS_CONTAINER_STOP_TIMEOUT` is used. If neither + the `stopTimeout` parameter or the `ECS_CONTAINER_STOP_TIMEOUT` agent + configuration variable are set, then the default values of 30 seconds + for Linux containers and 30 seconds on Windows containers are used. Your + container instances require at least version 1.26.0 of the container + agent to use a container stop timeout value. However, we recommend using + the latest container agent version. For information about checking your + agent version and updating to the latest version, see [Updating the + Amazon ECS Container + Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) + in the *Amazon Elastic Container Service Developer Guide*. If you're + using an Amazon ECS-optimized Linux AMI, your instance needs at least + version 1.26.0-1 of the `ecs-init` package. If your container instances + are launched from version `20190301` or later, then they contain the + required versions of the container agent and `ecs-init`. For more + information, see [Amazon ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The valid values for Fargate are 2-120 seconds. + """ + version_consistency: str | None = ... + """ + Specifies whether Amazon ECS will resolve the container image tag + provided in the container definition to an image digest. By default, the + value is `enabled`. If you set the value for a container as `disabled`, + Amazon ECS will not resolve the provided container image tag to a digest + and will use the original image URI specified in the container + definition for deployment. For more information about container image + resolution, see [Container image + resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) + in the *Amazon ECS Developer Guide*. + """ + hostname: str | None = ... + """ + The hostname to use for your container. This parameter maps to + `Hostname` in the docker container create command and the `--hostname` + option to docker run. + + Note: + The `hostname` parameter is not supported if you're using the `awsvpc` + network mode. + """ + user: str | None = ... + """ + The user to use inside the container. This parameter maps to `User` in + the docker container create command and the `--user` option to docker + run. + + Warning: + When running tasks using the `host` network mode, don't run containers + using the root user (UID 0). We recommend using a non-root user for + better security. + + You can specify the `user` using the following formats. If specifying a + UID or GID, you must specify it as a positive integer. + + - `user` + + - `user:group` + + - `uid` + + - `uid:gid` + + - `user:gid` + + - `uid:group` + + Note: + This parameter is not supported for Windows containers. + """ + working_directory: str | None = ... + """ + The working directory to run commands inside the container in. This + parameter maps to `WorkingDir` in the docker container create command + and the `--workdir` option to docker run. + """ + disable_networking: bool | None = ... + """ + When this parameter is true, networking is off within the container. + This parameter maps to `NetworkDisabled` in the docker container create + command. + + Note: + This parameter is not supported for Windows containers. + """ + privileged: bool | None = ... + """ + When this parameter is true, the container is given elevated privileges + on the host container instance (similar to the `root` user). This + parameter maps to `Privileged` in the docker container create command + and the `--privileged` option to docker run + + Note: + This parameter is not supported for Windows containers or tasks run on + Fargate. + """ + readonly_root_filesystem: bool | None = ... + """ + When this parameter is true, the container is given read-only access to + its root file system. This parameter maps to `ReadonlyRootfs` in the + docker container create command and the `--read-only` option to docker + run. + + Note: + This parameter is not supported for Windows containers. + """ + dns_servers: list[str] | None = ... + """ + A list of DNS servers that are presented to the container. This + parameter maps to `Dns` in the docker container create command and the + `--dns` option to docker run. + + Note: + This parameter is not supported for Windows containers. + """ + dns_search_domains: list[str] | None = ... + """ + A list of DNS search domains that are presented to the container. This + parameter maps to `DnsSearch` in the docker container create command and + the `--dns-search` option to docker run. + + Note: + This parameter is not supported for Windows containers. + """ + extra_hosts: list[HostEntry] | None = ... + """ + A list of hostnames and IP address mappings to append to the + `/etc/hosts` file on the container. This parameter maps to `ExtraHosts` + in the docker container create command and the `--add-host` option to + docker run. + + Note: + This parameter isn't supported for Windows containers or tasks that use + the `awsvpc` network mode. + """ + docker_security_options: list[str] | None = ... + """ + A list of strings to provide custom configuration for multiple security + systems. This field isn't valid for containers in tasks using the + Fargate launch type. + + For Linux tasks on EC2, this parameter can be used to reference custom + labels for SELinux and AppArmor multi-level security systems. + + For any tasks on EC2, this parameter can be used to reference a + credential spec file that configures a container for Active Directory + authentication. For more information, see [Using gMSAs for Windows + Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) + and [Using gMSAs for Linux + Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) + in the *Amazon Elastic Container Service Developer Guide*. + + This parameter maps to `SecurityOpt` in the docker container create + command and the `--security-opt` option to docker run. + + Note: + The Amazon ECS container agent running on a container instance must + register with the `ECS_SELINUX_CAPABLE=true` or + `ECS_APPARMOR_CAPABLE=true` environment variables before containers + placed on that instance can use these security options. For more + information, see [Amazon ECS Container Agent + Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | + \"label:value\" | \"credentialspec:CredentialSpecFilePath\" + """ + interactive: bool | None = ... + """ + When this parameter is `true`, you can deploy containerized applications + that require `stdin` or a `tty` to be allocated. This parameter maps to + `OpenStdin` in the docker container create command and the + `--interactive` option to docker run. + """ + pseudo_terminal: bool | None = ... + """ + When this parameter is `true`, a TTY is allocated. This parameter maps + to `Tty` in the docker container create command and the `--tty` option + to docker run. + """ + docker_labels: dict[str, str] | None = ... + """ + A key/value map of labels to add to the container. This parameter maps + to `Labels` in the docker container create command and the `--label` + option to docker run. This parameter requires version 1.18 of the Docker + Remote API or greater on your container instance. To check the Docker + Remote API version on your container instance, log in to your container + instance and run the following command: + `sudo docker version --format '{{.Server.APIVersion}}'` + """ + ulimits: list[Ulimit] | None = ... + """ + A list of `ulimits` to set in the container. If a `ulimit` value is + specified in a task definition, it overrides the default values set by + Docker. This parameter maps to `Ulimits` in the docker container create + command and the `--ulimit` option to docker run. Valid naming values are + displayed in the + [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) + data type. + + Amazon ECS tasks hosted on Fargate use the default resource limit values + set by the operating system with the exception of the `nofile` resource + limit parameter which Fargate overrides. The `nofile` resource limit + sets a restriction on the number of open files that a container can use. + The default `nofile` soft limit is ` 65535` and the default hard limit + is `65535`. + + This parameter requires version 1.18 of the Docker Remote API or greater + on your container instance. To check the Docker Remote API version on + your container instance, log in to your container instance and run the + following command: + `sudo docker version --format '{{.Server.APIVersion}}'` + + Note: + This parameter is not supported for Windows containers. + """ + log_configuration: LogConfiguration | None = ... + """ + The log configuration specification for the container. + + This parameter maps to `LogConfig` in the docker container create + command and the `--log-driver` option to docker run. By default, + containers use the same logging driver that the Docker daemon uses. + However the container can use a different logging driver than the Docker + daemon by specifying a log driver with this parameter in the container + definition. To use a different logging driver for a container, the log + system must be configured properly on the container instance (or on a + different log server for remote logging options). + + Note: + Amazon ECS currently supports a subset of the logging drivers available + to the Docker daemon (shown in the + [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) + data type). Additional log drivers may be available in future releases + of the Amazon ECS container agent. + + This parameter requires version 1.18 of the Docker Remote API or greater + on your container instance. To check the Docker Remote API version on + your container instance, log in to your container instance and run the + following command: + `sudo docker version --format '{{.Server.APIVersion}}'` + + Note: + The Amazon ECS container agent running on a container instance must + register the logging drivers available on that instance with the + `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers + placed on that instance can use these log configuration options. For + more information, see [Amazon ECS Container Agent + Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + health_check: HealthCheck | None = ... + """ + The container health check command and associated configuration + parameters for the container. This parameter maps to `HealthCheck` in + the docker container create command and the `HEALTHCHECK` parameter of + docker run. + """ + system_controls: list[SystemControl] | None = ... + """ + A list of namespaced kernel parameters to set in the container. This + parameter maps to `Sysctls` in the docker container create command and + the `--sysctl` option to docker run. For example, you can configure + `net.ipv4.tcp_keepalive_time` setting to maintain longer lived + connections. + """ + resource_requirements: list[ResourceRequirement] | None = ... + """ + The type and amount of a resource to assign to a container. The + supported resources are GPUs and Neuron devices. + """ + firelens_configuration: FirelensConfiguration | None = ... + """ + The FireLens configuration for the container. This is used to specify + and configure a log router for container logs. For more information, see + [Custom Log + Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + credential_specs: list[str] | None = ... + """ + A list of ARNs in SSM or Amazon S3 to a credential spec (`CredSpec`) + file that configures the container for Active Directory authentication. + We recommend that you use this parameter instead of the + `dockerSecurityOptions`. The maximum number of ARNs is 1. + + There are two formats for each ARN. + + credentialspecdomainless:MyARN + + : You use `credentialspecdomainless:MyARN` to provide a `CredSpec` with + an additional section for a secret in Secrets Manager. You provide the + login credentials to the domain in the secret. + + Each task that runs on any container instance can join different + domains. + + You can use this format without joining the container instance to a + domain. + + credentialspec:MyARN + + : You use `credentialspec:MyARN` to provide a `CredSpec` for a single + domain. + + You must join the container instance to the domain before you start + any tasks that use this task definition. + + In both formats, replace `MyARN` with the ARN in SSM or Amazon S3. + + If you provide a `credentialspecdomainless:MyARN`, the `credspec` must + provide a ARN in Secrets Manager for a secret containing the username, + password, and the domain to connect to. For better security, the + instance isn't joined to the domain for domainless authentication. + Other applications on the instance can't use the domainless + credentials. You can use this parameter to run tasks on the same + instance, even it the tasks need to join different domains. For more + information, see [Using gMSAs for Windows + Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) + and [Using gMSAs for Linux + Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). + """ + +@dataclass(kw_only=True) +class ContainerDependency(_SerdeShape): + """ + The dependencies defined for container startup and shutdown. A container + can contain multiple dependencies. When a dependency is defined for + container startup, for container shutdown it is reversed. + + Your Amazon ECS container instances require at least version 1.26.0 of + the container agent to use container dependencies. However, we recommend + using the latest container agent version. For information about checking + your agent version and updating to the latest version, see [Updating the + Amazon ECS Container + Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) + in the *Amazon Elastic Container Service Developer Guide*. If you're + using an Amazon ECS-optimized Linux AMI, your instance needs at least + version 1.26.0-1 of the `ecs-init` package. If your container instances + are launched from version `20190301` or later, then they contain the + required versions of the container agent and `ecs-init`. For more + information, see [Amazon ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + For tasks that use the Fargate launch type, the task or service requires + the following platforms: + + - Linux platform version `1.3.0` or later. + + - Windows platform version `1.0.0` or later. + + For more information about how to create a container dependency, see + [Container + dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + container_name: str + """The name of a container.""" + condition: str + """ + The dependency condition of the container. The following are the + available conditions and their behavior: + + - `START` - This condition emulates the behavior of links and volumes + today. It validates that a dependent container is started before + permitting other containers to start. + + - `COMPLETE` - This condition validates that a dependent container runs + to completion (exits) before permitting other containers to start. + This can be useful for nonessential containers that run a script and + then exit. This condition can't be set on an essential container. + + - `SUCCESS` - This condition is the same as `COMPLETE`, but it also + requires that the container exits with a `zero` status. This condition + can't be set on an essential container. + + - `HEALTHY` - This condition validates that the dependent container + passes its Docker health check before permitting other containers to + start. This requires that the dependent container has health checks + configured. This condition is confirmed only at task startup. + """ + +@dataclass(kw_only=True) +class ContainerImage(_SerdeShape): + """ + The details about the container image a service revision uses. + + To ensure that all tasks in a service use the same container image, + Amazon ECS resolves container image names and any image tags specified + in the task definition to container image digests. + + After the container image digest has been established, Amazon ECS uses + the digest to start any other desired tasks, and for any future service + and service revision updates. This leads to all tasks in a service + always running identical container images, resulting in version + consistency for your software. For more information, see [Container + image + resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) + in the Amazon ECS Developer Guide. + """ + + container_name: str | None = ... + """The name of the container.""" + image_digest: str | None = ... + """The container image digest.""" + image: str | None = ... + """The container image.""" + +@dataclass(kw_only=True) +class ContainerInstance(_SerdeShape): + """ + An Amazon EC2 or External instance that's running the Amazon ECS agent + and has been registered with a cluster. + """ + + container_instance_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the container instance. For more + information about the ARN format, see [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids) + in the *Amazon ECS Developer Guide*. + """ + ec2_instance_id: str | None = ... + """ + The ID of the container instance. For Amazon EC2 instances, this value + is the Amazon EC2 instance ID. For external instances, this value is the + Amazon Web Services Systems Manager managed instance ID. + """ + capacity_provider_name: str | None = ... + """The capacity provider that's associated with the container instance.""" + version: int = ... + """ + The version counter for the container instance. Every time a container + instance experiences a change that triggers a CloudWatch event, the + version counter is incremented. If you're replicating your Amazon ECS + container instance state with CloudWatch Events, you can compare the + version of a container instance reported by the Amazon ECS APIs with the + version reported in CloudWatch Events for the container instance (inside + the `detail` object) to verify that the version in your event stream is + current. + """ + version_info: VersionInfo | None = ... + """ + The version information for the Amazon ECS container agent and Docker + daemon running on the container instance. + """ + remaining_resources: list[Resource] | None = ... + """ + For CPU and memory resource types, this parameter describes the + remaining CPU and memory that wasn't already allocated to tasks and is + therefore available for new tasks. For port resource types, this + parameter describes the ports that were reserved by the Amazon ECS + container agent (at instance registration time) and any task containers + that have reserved port mappings on the host (with the `host` or + `bridge` network mode). Any port that's not specified here is available + for new tasks. + """ + registered_resources: list[Resource] | None = ... + """ + For CPU and memory resource types, this parameter describes the amount + of each resource that was available on the container instance when the + container agent registered it with Amazon ECS. This value represents the + total amount of CPU and memory that can be allocated on this container + instance to tasks. For port resource types, this parameter describes the + ports that were reserved by the Amazon ECS container agent when it + registered the container instance with Amazon ECS. + """ + status: str | None = ... + """ + The status of the container instance. The valid values are + `REGISTERING`, `REGISTRATION_FAILED`, `ACTIVE`, `INACTIVE`, + `DEREGISTERING`, or `DRAINING`. + + If your account has opted in to the `awsvpcTrunking` account setting, + then any newly registered container instance will transition to a + `REGISTERING` status while the trunk elastic network interface is + provisioned for the instance. If the registration fails, the instance + will transition to a `REGISTRATION_FAILED` status. You can describe the + container instance and see the reason for failure in the `statusReason` + parameter. Once the container instance is terminated, the instance + transitions to a `DEREGISTERING` status while the trunk elastic network + interface is deprovisioned. The instance then transitions to an + `INACTIVE` status. + + The `ACTIVE` status indicates that the container instance can accept + tasks. The `DRAINING` indicates that new tasks aren't placed on the + container instance and any service tasks running on the container + instance are removed if possible. For more information, see [Container + instance + draining](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + status_reason: str | None = ... + """The reason that the container instance reached its current status.""" + agent_connected: bool = ... + """ + This parameter returns `true` if the agent is connected to Amazon ECS. + An instance with an agent that may be unhealthy or stopped return + `false`. Only instances connected to an agent can accept task placement + requests. + """ + running_tasks_count: int = ... + """ + The number of tasks on the container instance that have a desired status + (`desiredStatus`) of `RUNNING`. + """ + pending_tasks_count: int = ... + """ + The number of tasks on the container instance that are in the `PENDING` + status. + """ + agent_update_status: str | None = ... + """ + The status of the most recent agent update. If an update wasn't ever + requested, this value is `NULL`. + """ + attributes: list[Attribute] | None = ... + """ + The attributes set for the container instance, either by the Amazon ECS + container agent at instance registration or manually with the + [PutAttributes](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAttributes.html) + operation. + """ + registered_at: datetime | None = ... + """ + The Unix timestamp for the time when the container instance was + registered. + """ + attachments: list[Attachment] | None = ... + """ + The resources attached to a container instance, such as an elastic + network interface. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the container instance to help you + categorize and organize them. 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. + """ + health_status: ContainerInstanceHealthStatus | None = ... + """An object representing the health status of the container instance.""" + gpu_devices: list[GpuDevice] | None = ... + """ + The state of each GPU on the container instance, including its sharing + mode and available memory. This field is present only for container + instances that support GPU sharing. + """ + +class ContainerInstanceField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + CONTAINER_INSTANCE_HEALTH = "CONTAINER_INSTANCE_HEALTH" + +@dataclass(kw_only=True) +class ContainerInstanceHealthStatus(_SerdeShape): + """An object representing the health status of the container instance.""" + + overall_status: str | None = ... + """ + The overall health status of the container instance. This is an + aggregate status of all container instance health checks. + """ + details: list[InstanceHealthCheckResult] | None = ... + """ + An array of objects representing the details of the container instance + health status. + """ + +class ContainerInstanceStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DRAINING = "DRAINING" + REGISTERING = "REGISTERING" + DEREGISTERING = "DEREGISTERING" + REGISTRATION_FAILED = "REGISTRATION_FAILED" + +@dataclass(kw_only=True) +class ContainerOverride(_SerdeShape): + """ + The overrides that are sent to a container. An empty container override + can be passed in. An example of an empty container override is + `{"containerOverrides": [ ] }`. If a non-empty container override is + specified, the `name` parameter must be included. + + You can use Secrets Manager or Amazon Web Services Systems Manager + Parameter Store to store the sensitive data. For more information, see + [Retrieve secrets through environment + variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/secrets-envvar.html) + in the Amazon ECS Developer Guide. + """ + + name: str | None = ... + """ + The name of the container that receives the override. This parameter is + required if any override is specified. + """ + command: list[str] | None = ... + """ + The command to send to the container that overrides the default command + from the Docker image or the task definition. You must also specify a + container name. + """ + environment: list[KeyValuePair] | None = ... + """ + The environment variables to send to the container. You can add new + environment variables, which are added to the container at launch, or + you can override the existing environment variables from the Docker + image or the task definition. You must also specify a container name. + """ + environment_files: list[EnvironmentFile] | None = ... + """ + A list of files containing the environment variables to pass to a + container, instead of the value from the container definition. + """ + cpu: int | None = ... + """ + The number of `cpu` units reserved for the container, instead of the + default value from the task definition. You must also specify a + container name. + """ + memory: int | None = ... + """ + The hard limit (in MiB) of memory to present to the container, instead + of the default value from the task definition. If your container + attempts to exceed the memory specified here, the container is killed. + You must also specify a container name. + """ + memory_reservation: int | None = ... + """ + The soft limit (in MiB) of memory to reserve for the container, instead + of the default value from the task definition. You must also specify a + container name. + """ + resource_requirements: list[ResourceRequirement] | None = ... + """ + The type and amount of a resource to assign to a container, instead of + the default value from the task definition. The supported resources are + GPUs and Neuron devices. + """ + +@dataclass(kw_only=True) +class ContainerRestartPolicy(_SerdeShape): + """ + You can enable a restart policy for each container defined in your task + definition, to overcome transient failures faster and maintain task + availability. When you enable a restart policy for a container, Amazon + ECS can restart the container if it exits, without needing to replace + the task. For more information, see [Restart individual containers in + Amazon ECS tasks with container restart + policies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-restart-policy.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + enabled: bool + """Specifies whether a restart policy is enabled for the container.""" + ignored_exit_codes: list[int] | None = ... + """ + A list of exit codes that Amazon ECS will ignore and not attempt a + restart on. You can specify a maximum of 50 container exit codes. By + default, Amazon ECS does not ignore any exit codes. + """ + restart_attempt_period: int | None = ... + """ + A period of time (in seconds) that the container must run for before a + restart can be attempted. A container can be restarted only once every + `restartAttemptPeriod` seconds. If a container isn't able to run for + this time period and exits early, it will not be restarted. You can set + a minimum `restartAttemptPeriod` of 60 seconds and a maximum + `restartAttemptPeriod` of 1800 seconds. By default, a container must run + for 300 seconds before it can be restarted. + """ + +@dataclass(kw_only=True) +class ContainerStateChange(_SerdeShape): + """An object that represents a change in state for a container.""" + + container_name: str | None = ... + """The name of the container.""" + image_digest: str | None = ... + """The container image SHA 256 digest.""" + runtime_id: str | None = ... + """The ID of the Docker container.""" + exit_code: int | None = ... + """ + The exit code for the container, if the state change is a result of the + container exiting. + """ + network_bindings: list[NetworkBinding] | None = ... + """Any network bindings that are associated with the container.""" + reason: str | None = ... + """The reason for the state change.""" + status: str | None = ... + """The status of the container.""" + +@dataclass(kw_only=True) +class ContinueServiceDeploymentInput(_SerdeShape): + """Dataclass for ContinueServiceDeploymentInput structure.""" + + service_deployment_arn: str | None = ... + """The ARN of the service deployment to continue or roll back.""" + hook_id: str | None = ... + """ + The ID of the paused lifecycle hook to act on. You can find the `hookId` + by calling + [DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html) + and inspecting the `lifecycleHookDetails` field of the service + deployment. + """ + action: str | None = ... + """ + The action to take on the paused lifecycle hook. Valid values are: + + - `CONTINUE` - Proceeds the deployment to the next lifecycle stage. + + - `ROLLBACK` - Rolls back the deployment to the previous service + revision. + + If no value is specified, the default action is `CONTINUE`. + """ + +@dataclass(kw_only=True) +class ContinueServiceDeploymentOutput(_SerdeShape): + """Dataclass for ContinueServiceDeploymentOutput structure.""" + + service_deployment_arn: str | None = ... + """The ARN of the service deployment that was continued or rolled back.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CPUArchitecture(UnknownEnumMixin, StrEnum): + X86_64 = "X86_64" + ARM64 = "ARM64" + +class CpuManufacturer(UnknownEnumMixin, StrEnum): + INTEL = "intel" + AMD = "amd" + AMAZON_WEB_SERVICES = "amazon-web-services" + +@dataclass(kw_only=True) +class CreateCapacityProviderInput(_SerdeShape): + """Dataclass for CreateCapacityProviderInput structure.""" + + name: str | None = ... + """ + The name of the capacity provider. Up to 255 characters are allowed. + They include letters (both upper and lowercase letters), numbers, + underscores (_), and hyphens (-). The name can't be prefixed with + \"`aws`\", \"`ecs`\", or \"`fargate`\". + """ + cluster: str | None = ... + """ + The name of the cluster to associate with the capacity provider. When + you create a capacity provider with Amazon ECS Managed Instances, it + becomes available only within the specified cluster. + """ + auto_scaling_group_provider: AutoScalingGroupProvider | None = ... + """The details of the Auto Scaling group for the capacity provider.""" + managed_instances_provider: CreateManagedInstancesProviderConfiguration | None = ... + """ + The configuration for the Amazon ECS Managed Instances provider. This + configuration specifies how Amazon ECS manages Amazon EC2 instances on + your behalf, including the infrastructure role, instance launch + template, and tag propagation settings. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the capacity provider to categorize and + organize them more conveniently. Each tag consists of a key and an + optional value. You define both of 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. + """ + +@dataclass(kw_only=True) +class CreateCapacityProviderOutput(_SerdeShape): + """Dataclass for CreateCapacityProviderOutput structure.""" + + capacity_provider: CapacityProvider | None = ... + """The full description of the new capacity provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateClusterInput(_SerdeShape): + """""" + + cluster_name: str | None = ... + """ + The name of your cluster. If you don't specify a name for your cluster, + you create a cluster that's named `default`. Up to 255 letters + (uppercase and lowercase), numbers, underscores, and hyphens are + allowed. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the cluster to help you categorize and + organize them. 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. + """ + settings: list[ClusterSetting] | None = ... + """ + The setting to use when creating a cluster. This parameter is used to + turn on CloudWatch Container Insights for a cluster. If this value is + specified, it overrides the `containerInsights` value set with + [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) + or + [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html). + """ + configuration: ClusterConfiguration | None = ... + """The `execute` command configuration for the cluster.""" + capacity_providers: list[str] | None = ... + """ + The short name of one or more capacity providers to associate with the + cluster. A capacity provider must be associated with a cluster before it + can be included as part of the default capacity provider strategy of the + cluster or used in a capacity provider strategy when calling the + [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) + or + [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) + actions. + + If specifying a capacity provider that uses an Auto Scaling group, the + capacity provider must be created but not associated with another + cluster. New Auto Scaling group capacity providers can be created with + the + [CreateCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html) + API operation. + + To use a Fargate capacity provider, specify either the `FARGATE` or + `FARGATE_SPOT` capacity providers. The Fargate capacity providers are + available to all accounts and only need to be associated with a cluster + to be used. + + The + [PutCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutCapacityProvider.html) + API operation is used to update the list of available capacity providers + for a cluster after the cluster is created. + """ + default_capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy to set as the default for the cluster. + After a default capacity provider strategy is set for a cluster, when + you call the + [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) + or + [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) + APIs with no capacity provider strategy or launch type specified, the + default capacity provider strategy for the cluster is used. + + If a default capacity provider strategy isn't defined for a cluster + when it was created, it can be defined later with the + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + API operation. + """ + service_connect_defaults: ClusterServiceConnectDefaultsRequest | None = ... + """ + Use this parameter to set a default Service Connect namespace. After you + set a default Service Connect namespace, any new services with Service + Connect turned on that are created in the cluster are added as client + services in the namespace. This setting only applies to new services + that set the `enabled` parameter to `true` in the + `ServiceConnectConfiguration`. You can set the namespace of each service + individually in the `ServiceConnectConfiguration` to override this + default parameter. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class CreateClusterOutput(_SerdeShape): + """""" + + cluster: Cluster | None = ... + """The full description of your new cluster.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDaemonInput(_SerdeShape): + """Dataclass for CreateDaemonInput structure.""" + + daemon_name: str | None = ... + """ + The name of the daemon. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. + """ + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster to create the daemon in.""" + daemon_task_definition_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the daemon task definition to use for + the daemon. + """ + capacity_provider_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the capacity providers to associate + with the daemon. The daemon deploys tasks on container instances managed + by these capacity providers. + """ + deployment_configuration: DaemonDeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how the daemon rolls out + updates, including the drain percentage, alarm-based rollback, and bake + time. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the daemon to help you categorize and + organize them. Each tag consists of a key and an optional value. You + define both of 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. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the daemon to the daemon + tasks. If you don't specify a value, the tags aren't propagated. You + can only propagate tags to daemon tasks during task creation. To add + tags to a task after task creation, use the + [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) + API action. + """ + enable_ecs_managed_tags: bool = ... + """ + Specifies whether to turn on Amazon ECS managed tags for the tasks in + the daemon. For more information, see [Tagging your Amazon ECS + resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + enable_execute_command: bool = ... + """ + Determines whether the execute command functionality is turned on for + the daemon. If `true`, the execute command functionality is turned on + for all tasks in the daemon. + """ + client_token: str | None = ... + """ + An identifier that you provide to ensure the idempotency of the request. + It must be unique and is case sensitive. Up to 36 ASCII characters in + the range of 33-126 (inclusive) are allowed. + """ + critical: bool | None = ... + """ + If the `critical` parameter of a daemon is `true`, and the daemon task + fails, stops, or becomes unhealthy, Amazon ECS drains the container + instance and stops the other tasks running on it. If the `critical` + parameter is `false`, the daemon task failure doesn't affect the other + tasks on the instance. The default value is `true`. + + A non-critical daemon doesn't block instance registration. The + container instance becomes active and continues to run your other tasks, + whether the daemon task fails during scale-out or during a deployment. + + Amazon ECS emits an EventBridge event when a daemon task fails to start, + for both critical and non-critical daemons. + + Daemon task launch failures during a deployment are still counted by the + deployment circuit breaker. The circuit breaker can roll back an + unstable target revision. + """ + +@dataclass(kw_only=True) +class CreateDaemonOutput(_SerdeShape): + """Dataclass for CreateDaemonOutput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + status: str | None = ... + """The status of the daemon.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was created.""" + deployment_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the initial daemon deployment. This + deployment places daemon tasks on each container instance of the + specified capacity providers. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatedAt(_SerdeShape): + """ + The optional filter to narrow the `ListServiceDeployment` results. + + If you do not specify a value, service deployments that were created + before the current time are included in the result. + """ + + before: datetime | None = ... + """ + Include service deployments in the result that were created before this + time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS. + """ + after: datetime | None = ... + """ + Include service deployments in the result that were created after this + time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS. + """ + +@dataclass(kw_only=True) +class CreateExpressGatewayServiceInput(_SerdeShape): + """Dataclass for CreateExpressGatewayServiceInput structure.""" + + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role that grants + the Amazon ECS container agent permission to make Amazon Web Services + API calls on your behalf. This role is required for Amazon ECS to pull + container images from Amazon ECR, send container logs to Amazon + CloudWatch Logs, and retrieve sensitive data from Amazon Web Services + Systems Manager Parameter Store or Amazon Web Services Secrets Manager. + + The execution role must include the `AmazonECSTaskExecutionRolePolicy` + managed policy or equivalent permissions. For Express services, this + role is used during task startup and runtime for container management + operations. + """ + infrastructure_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the infrastructure role that grants + Amazon ECS permission to create and manage Amazon Web Services resources + on your behalf for the Express service. This role is used to provision + and manage Application Load Balancers, target groups, security groups, + auto-scaling policies, and other Amazon Web Services infrastructure + components. + + The infrastructure role must include permissions for Elastic Load + Balancing, Application Auto Scaling, Amazon EC2 (for security groups), + and other services required for managed infrastructure. This role is + only used during Express service creation, updates, and deletion + operations. + """ + service_name: str | None = ... + """ + The name of the Express service. This name must be unique within the + specified cluster and can contain up to 255 letters (uppercase and + lowercase), numbers, underscores, and hyphens. The name is used to + identify the service in the Amazon ECS console and API operations. + + If you don't specify a service name, Amazon ECS generates a unique name + for the service. The service name becomes part of the service ARN and + cannot be changed after the service is created. + """ + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster on + which to create the Express service. If you do not specify a cluster, + the `default` cluster is assumed. + """ + health_check_path: str | None = ... + """ + The path on the container that the Application Load Balancer uses for + health checks. This should be a valid HTTP endpoint that returns a + successful response (HTTP 200) when the application is healthy. + + If not specified, the default health check path is `/ping`. The health + check path must start with a forward slash and can include query + parameters. Examples: `/health`, `/api/status`, `/ping?format=json`. + """ + primary_container: ExpressGatewayContainer | None = ... + """ + The primary container configuration for the Express service. This + defines the main application container that will receive traffic from + the Application Load Balancer. + + The primary container must specify at minimum a container image. You can + also configure the container port (defaults to 80), logging + configuration, environment variables, secrets, and startup commands. The + container image can be from Amazon ECR, Docker Hub, or any other + container registry accessible to your execution role. + """ + task_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that containers in this + task can assume. This role allows your application code to access other + Amazon Web Services services securely. + + The task role is different from the execution role. While the execution + role is used by the Amazon ECS agent to set up the task, the task role + is used by your application code running inside the container to make + Amazon Web Services API calls. If your application doesn't need to + access Amazon Web Services services, you can omit this parameter. + """ + network_configuration: ExpressGatewayServiceNetworkConfiguration | None = ... + """ + The network configuration for the Express service tasks. This specifies + the VPC subnets and security groups for the tasks. + + For Express services, you can specify custom security groups and + subnets. If not provided, Amazon ECS will use the default VPC + configuration and create appropriate security groups automatically. The + network configuration determines how your service integrates with your + VPC and what network access it has. + """ + cpu: str | None = ... + """ + The number of CPU units used by the task. This parameter determines the + CPU allocation for each task in the Express service. The default value + for an Express service is 256 (.25 vCPU). + """ + memory: str | None = ... + """ + The amount of memory (in MiB) used by the task. This parameter + determines the memory allocation for each task in the Express service. + The default value for an express service is 512 MiB. + """ + cpu_architecture: str | None = ... + """ + The CPU architecture that the task runs on. If you don't specify a + value, the default is `X86_64`. + + Valid values: + + - `X86_64` - The x86 64-bit architecture. + + - `ARM64` - The 64-bit ARM architecture. + + Ensure that the container image you specify supports the architecture + you choose. The operating system family for an Express service is always + `LINUX`. + + You can't specify `cpuArchitecture` together with `taskDefinitionArn`. + """ + scaling_target: ExpressGatewayScalingTarget | None = ... + """ + The auto-scaling configuration for the Express service. This defines how + the service automatically adjusts the number of running tasks based on + demand. + + You can specify the minimum and maximum number of tasks, the scaling + metric (CPU utilization, memory utilization, or request count per + target), and the target value for the metric. If not specified, the + default target value for an Express service is 60. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the Express service to help categorize + and organize it. Each tag consists of a key and an optional value. You + can apply up to 50 tags to a service. + """ + task_definition_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of a task definition to use to create the + Express Gateway service. This allows you to manage your own task + definition, giving you more control over the service configuration such + as adding sidecar containers. + + The task definition must have a container named `Main` with a single TCP + port mapping that includes a container port and port name. The task + definition must also have `FARGATE` compatibility. + + If you provide a task definition ARN, you cannot also specify + `primaryContainer`, `executionRoleArn`, `taskRoleArn`, `cpu`, `memory`, + or `cpuArchitecture`. + """ + +@dataclass(kw_only=True) +class CreateExpressGatewayServiceOutput(_SerdeShape): + """Dataclass for CreateExpressGatewayServiceOutput structure.""" + + service: ECSExpressGatewayService | None = ... + """ + The full description of your Express service following the create + operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateGatewayInput(_SerdeShape): + """Dataclass for CreateGatewayInput structure.""" + + name: str | None = ... + """ + The name for the gateway. The name must be unique within your account + and can be up to 255 characters. + """ + infrastructure_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that the gateway assumes + to create and manage infrastructure on your behalf. + """ + client_token: str | None = ... + """ + A unique, case-sensitive identifier that you provide to ensure that the + operation completes no more than one time. If this token matches a + previous request, the service ignores the request, but does not return + an error. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the gateway. When + enabled, the gateway can't be deleted, and the gateway propagates this + setting to the load balancers it manages. The default is `true`. + """ + configuration: GatewayConfiguration | None = ... + """ + The type-specific configuration for the gateway. Exactly one + configuration variant must be set, and it determines the gateway type. + For example, `hostSharedAlb` configures a gateway that uses Application + Load Balancers with host-based routing. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the gateway to help you categorize and + organize it. Each tag consists of a key and an optional value. Depending + on `propagateTags`, these tags can be applied to the infrastructure the + gateway manages. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the gateway to the + infrastructure that the gateway manages. The default is `GATEWAY`. + """ + +@dataclass(kw_only=True) +class CreateGatewayOutput(_SerdeShape): + """Dataclass for CreateGatewayOutput structure.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + name: str | None = ... + """The name of the gateway.""" + status: str | None = ... + """The status of the gateway. A newly created gateway is always `ACTIVE`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateManagedInstancesProviderConfiguration(_SerdeShape): + """ + The configuration for creating a Amazon ECS Managed Instances provider. + This specifies how Amazon ECS should manage Amazon EC2 instances, + including the infrastructure role, instance launch template, and whether + to propagate tags from the capacity provider to the instances. + """ + + infrastructure_role_arn: str + """ + The Amazon Resource Name (ARN) of the infrastructure role that Amazon + ECS uses to manage instances on your behalf. This role must have + permissions to launch, terminate, and manage Amazon EC2 instances, as + well as access to other Amazon Web Services services required for Amazon + ECS Managed Instances functionality. + + For more information, see [Amazon ECS infrastructure IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + in the *Amazon ECS Developer Guide*. + """ + instance_launch_template: InstanceLaunchTemplate + """ + The launch template configuration that specifies how Amazon ECS should + launch Amazon EC2 instances. This includes the instance profile, network + configuration, storage settings, and instance requirements for + attribute-based instance type selection. + + For more information, see [Store instance launch parameters in Amazon + EC2 launch + templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate tags from the capacity provider to the + Amazon ECS Managed Instances. When enabled, tags applied to the capacity + provider are automatically applied to all instances launched by this + provider. + """ + infrastructure_optimization: InfrastructureOptimization | None = ... + """ + Defines how Amazon ECS Managed Instances optimizes the infrastastructure + in your capacity provider. Provides control over the delay between when + EC2 instances become idle or underutilized and when Amazon ECS optimizes + them. + """ + auto_repair_configuration: AutoRepairConfiguration | None = ... + """ + The auto repair configuration for the Amazon ECS Managed Instances + capacity provider. Use this to enable or disable automatic replacement + of container instances that are detected as unhealthy. + """ + +@dataclass(kw_only=True) +class CreateServiceInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + you run your service on. If you do not specify a cluster, the default + cluster is assumed. + """ + service_name: str | None = ... + """ + The name of your service. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. Service names must be + unique within a cluster, but you can have similarly named services in + multiple clusters within a Region or across multiple Regions. + """ + task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full ARN of the task + definition to run in your service. If a `revision` isn't specified, the + latest `ACTIVE` revision is used. + + A task definition must be specified if the service uses either the `ECS` + or `CODE_DEPLOY` deployment controllers. + + For more information about deployment types, see [Amazon ECS deployment + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). + """ + availability_zone_rebalancing: str | None = ... + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across + Availability + Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) + in the Amazon Elastic Container Service Developer Guide . + + The default behavior of `AvailabilityZoneRebalancing` differs between + create and update requests: + + - For create service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults the value to + `ENABLED`. + + - For update service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults to the existing + service's `AvailabilityZoneRebalancing` value. If the service never + had an `AvailabilityZoneRebalancing` value set, Amazon ECS treats this + as `DISABLED`. + """ + load_balancers: list[LoadBalancer] | None = ... + """ + A load balancer object representing the load balancers to use with your + service. For more information, see [Service load + balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If the service uses the `ECS` deployment controller and using either an + Application Load Balancer or Network Load Balancer, you must specify one + or more target group ARNs to attach to the service. The service-linked + role is required for services that use multiple target groups. For more + information, see [Using service-linked roles for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If the service uses the `CODE_DEPLOY` deployment controller, the service + is required to use either an Application Load Balancer or Network Load + Balancer. When creating an CodeDeploy deployment group, you specify two + target groups (referred to as a `targetGroupPair`). During a deployment, + CodeDeploy determines which task set in your service has the status + `PRIMARY`, and it associates one target group with it. Then, it also + associates the other target group with the replacement task set. The + load balancer can also have up to two listeners: a required listener for + production traffic and an optional listener that you can use to perform + validation tests with Lambda functions before routing production traffic + to it. + + If you use the `CODE_DEPLOY` deployment controller, these values can be + changed when updating the service. + + For Application Load Balancers and Network Load Balancers, this object + must contain the load balancer target group ARN, the container name, and + the container port to access from the load balancer. The container name + must be as it appears in a container definition. The load balancer name + parameter must be omitted. When a task from this service is placed on a + container instance, the container instance and port combination is + registered as a target in the target group that's specified here. + + For Classic Load Balancers, this object must contain the load balancer + name, the container name , and the container port to access from the + load balancer. The container name must be as it appears in a container + definition. The target group ARN parameter must be omitted. When a task + from this service is placed on a container instance, the container + instance is registered with the load balancer that's specified here. + + Services with tasks that use the `awsvpc` network mode (for example, + those with the Fargate launch type) only support Application Load + Balancers and Network Load Balancers. Classic Load Balancers aren't + supported. Also, when you create any target groups for these services, + you must choose `ip` as the target type, not `instance`. This is because + tasks that use the `awsvpc` network mode are associated with an elastic + network interface, not an Amazon EC2 instance. + """ + service_registries: list[ServiceRegistry] | None = ... + """ + The details of the service discovery registry to associate with this + service. For more information, see [Service + discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + + Note: + Each service may be associated with one service registry. Multiple + service registries for each service isn't supported. + """ + desired_count: int | None = ... + """ + The number of instantiations of the specified task definition to place + and keep running in your service. + + This is required if `schedulingStrategy` is `REPLICA` or isn't + specified. If `schedulingStrategy` is `DAEMON` then this isn't + required. + """ + client_token: str | None = ... + """ + An identifier that you provide to ensure the idempotency of the request. + It must be unique and is case sensitive. Up to 36 ASCII characters in + the range of 33-126 (inclusive) are allowed. + """ + launch_type: str | None = ... + """ + The infrastructure that you run your service on. For more information, + see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + If you want to use Amazon ECS Managed Instances, you must use the + `capacityProviderStrategy` request parameter and omit the `launchType` + request parameter. + + The `FARGATE` launch type runs your tasks on Fargate On-Demand + infrastructure. + + Note: + Fargate Spot infrastructure is available for use but a capacity provider + strategy must be used. For more information, see [Fargate capacity + providers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-capacity-providers.html) + in the *Amazon ECS Developer Guide*. + + The `EC2` launch type runs your tasks on Amazon EC2 instances registered + to your cluster. + + The `EXTERNAL` launch type runs your tasks on your on-premises server or + virtual machine (VM) capacity registered to your cluster. + + A service can use either a launch type or a capacity provider strategy. + If a `launchType` is specified, the `capacityProviderStrategy` parameter + must be omitted. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy to use for the service. + + Note: + If you want to use Amazon ECS Managed Instances, you must use the + `capacityProviderStrategy` request parameter and omit the `launchType` + request parameter. + + If a `capacityProviderStrategy` is specified, the `launchType` parameter + must be omitted. If no `capacityProviderStrategy` or `launchType` is + specified, the `defaultCapacityProviderStrategy` for the cluster is + used. + + A capacity provider strategy can contain a maximum of 20 capacity + providers. + """ + platform_version: str | None = ... + """ + The platform version that your tasks in the service are running on. A + platform version is specified only for tasks using the Fargate launch + type. If one isn't specified, the `LATEST` platform version is used. + For more information, see [Fargate platform + versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + role: str | None = ... + """ + The name or full Amazon Resource Name (ARN) of the IAM role that allows + Amazon ECS to make calls to your load balancer on your behalf. This + parameter is only permitted if you are using a load balancer with your + service and your task definition doesn't use the `awsvpc` network mode. + If you specify the `role` parameter, you must also specify a load + balancer object with the `loadBalancers` parameter. + + Warning: + If your account has already created the Amazon ECS service-linked role, + that role is used for your service unless you specify a role here. The + service-linked role is required if your task definition uses the + `awsvpc` network mode or if the service is configured to use service + discovery, an external deployment controller, multiple target groups, or + Elastic Inference accelerators in which case you don't specify a role + here. For more information, see [Using service-linked roles for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If your specified role has a path other than `/`, then you must either + specify the full role ARN (this is recommended) or prefix the role name + with the path. For example, if a role with the name `bar` has a path of + `/foo/` then you would specify `/foo/bar` as the role name. For more + information, see [Friendly names and + paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) + in the *IAM User Guide*. + """ + deployment_configuration: DeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how many tasks run during + the deployment and the ordering of stopping and starting tasks. + """ + placement_constraints: list[PlacementConstraint] | None = ... + """ + An array of placement constraint objects to use for tasks in your + service. You can specify a maximum of 10 constraints for each task. This + limit includes constraints in the task definition and those specified at + runtime. + """ + placement_strategy: list[PlacementStrategy] | None = ... + """ + The placement strategy objects to use for tasks in your service. You can + specify a maximum of 5 strategy rules for each service. + """ + network_configuration: NetworkConfiguration | None = ... + """ + The network configuration for the service. This parameter is required + for task definitions that use the `awsvpc` network mode to receive their + own elastic network interface, and it isn't supported for other network + modes. For more information, see [Task + networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + health_check_grace_period_seconds: int | None = ... + """ + The period of time, in seconds, that the Amazon ECS service scheduler + ignores unhealthy Elastic Load Balancing, VPC Lattice, and container + health checks after a task has first started. If you do not specify a + health check grace period value, the default value of 0 is used. If you + do not use any of the health checks, then + `healthCheckGracePeriodSeconds` is unused. + + If your service has more running tasks than desired, unhealthy tasks in + the grace period might be stopped to reach the desired count. + """ + scheduling_strategy: str | None = ... + """ + The scheduling strategy to use for the service. For more information, + see + [Services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). + + There are two service scheduler strategies available: + + - `REPLICA`-The replica scheduling strategy places and maintains the + desired number of tasks across your cluster. By default, the service + scheduler spreads tasks across Availability Zones. You can use task + placement strategies and constraints to customize task placement + decisions. This scheduler strategy is required if the service uses the + `CODE_DEPLOY` or `EXTERNAL` deployment controller types. + + - `DAEMON`-The daemon scheduling strategy deploys exactly one task on + each active container instance that meets all of the task placement + constraints that you specify in your cluster. The service scheduler + also evaluates the task placement constraints for running tasks and + will stop tasks that don't meet the placement constraints. When + you're using this strategy, you don't need to specify a desired + number of tasks, a task placement strategy, or use Service Auto + Scaling policies. + + Note: + Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` + deployment controller types don't support the `DAEMON` scheduling + strategy. + """ + deployment_controller: DeploymentController | None = ... + """ + The deployment controller to use for the service. If no deployment + controller is specified, the default value of `ECS` is used. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the service to help you categorize and + organize them. Each tag consists of a key and an optional value, both of + which you define. When a service is deleted, the tags are deleted as + well. + + 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. + """ + enable_ecs_managed_tags: bool = ... + """ + Specifies whether to turn on Amazon ECS managed tags for the tasks + within the service. For more information, see [Tagging your Amazon ECS + resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + + When you use Amazon ECS managed tags, you must set the `propagateTags` + request parameter. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the task definition to the + task. If no value is specified, the tags aren't propagated. Tags can + only be propagated to the task during task creation. To add tags to a + task after task creation, use the + [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) + API action. + + You must set this to a value other than `NONE` when you use Cost + Explorer. For more information, see [Amazon ECS usage + reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The default is `NONE`. + """ + enable_execute_command: bool = ... + """ + Determines whether the execute command functionality is turned on for + the service. If `true`, this enables execute command functionality on + all containers in the service tasks. + """ + service_connect_configuration: ServiceConnectConfiguration | None = ... + """ + The configuration for this service to discover and connect to services, + and be discovered by, and connected from, other services within a + namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + volume_configurations: list[ServiceVolumeConfiguration] | None = ... + """ + The configuration for a volume specified in the task definition as a + volume that is configured at launch time. Currently, the only supported + volume type is an Amazon EBS volume. + """ + vpc_lattice_configurations: list[VpcLatticeConfiguration] | None = ... + """The VPC Lattice configuration for the service being created.""" + gateway_connectors: list[GatewayConnector] | None = ... + """ + The gateway connectors that attach the service to a gateway ingress + path. You can specify at most one gateway connector. + """ + monitoring: MonitoringConfiguration | None = ... + """ + The optional monitoring configuration for the service, which defines the + resolution for the service-level `CPUUtilization` and + `MemoryUtilization` Amazon CloudWatch metrics. When not specified, + Amazon ECS uses the default resolution of `60` seconds. + """ + +@dataclass(kw_only=True) +class CreateServiceOutput(_SerdeShape): + """""" + + service: Service | None = ... + """ + The full description of your service following the create call. + + A service will return either a `capacityProviderStrategy` or + `launchType` parameter, but not both, depending where one was specified + when it was created. + + If a service is using the `ECS` deployment controller, the + `deploymentController` and `taskSets` parameters will not be returned. + + if the service uses the `CODE_DEPLOY` deployment controller, the + `deploymentController`, `taskSets` and `deployments` parameters will be + returned, however the `deployments` parameter will be an empty list. + + The response includes a `lifecycleHookDetails` field, which is an empty + array when the service is created or updated. The values are populated + when a lifecycle hook executes and are available as part of the service + deployment details + ([DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html)). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTaskSetInput(_SerdeShape): + """Dataclass for CreateTaskSetInput structure.""" + + service: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the service to + create the task set in. + """ + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service to create the task set in. + """ + external_id: str | None = ... + """ + An optional non-unique tag that identifies this task set in external + systems. If the task set is associated with a service discovery + registry, the tasks in this task set will have the + `ECS_TASK_SET_EXTERNAL_ID` Cloud Map attribute set to the provided + value. + """ + task_definition: str | None = ... + """ + The task definition for the tasks in the task set to use. If a revision + isn't specified, the latest `ACTIVE` revision is used. + """ + network_configuration: NetworkConfiguration | None = ... + """An object representing the network configuration for a task set.""" + load_balancers: list[LoadBalancer] | None = ... + """ + A load balancer object representing the load balancer to use with the + task set. The supported load balancer types are either an Application + Load Balancer or a Network Load Balancer. + """ + service_registries: list[ServiceRegistry] | None = ... + """ + The details of the service discovery registries to assign to this task + set. For more information, see [Service + discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + """ + launch_type: str | None = ... + """ + The launch type that new tasks in the task set uses. For more + information, see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If a `launchType` is specified, the `capacityProviderStrategy` parameter + must be omitted. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy to use for the task set. + + A capacity provider strategy consists of one or more capacity providers + along with the `base` and `weight` to assign to them. A capacity + provider must be associated with the cluster to be used in a capacity + provider strategy. The + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + API is used to associate a capacity provider with a cluster. Only + capacity providers with an `ACTIVE` or `UPDATING` status can be used. + + If a `capacityProviderStrategy` is specified, the `launchType` parameter + must be omitted. If no `capacityProviderStrategy` or `launchType` is + specified, the `defaultCapacityProviderStrategy` for the cluster is + used. + + If specifying a capacity provider that uses an Auto Scaling group, the + capacity provider must already be created. New capacity providers can be + created with the + [CreateCapacityProviderProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProviderProvider.html)API + operation. + + To use a Fargate capacity provider, specify either the `FARGATE` or + `FARGATE_SPOT` capacity providers. The Fargate capacity providers are + available to all accounts and only need to be associated with a cluster + to be used. + + The + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + API operation is used to update the list of available capacity providers + for a cluster after the cluster is created. + """ + platform_version: str | None = ... + """ + The platform version that the tasks in the task set uses. A platform + version is specified only for tasks using the Fargate launch type. If + one isn't specified, the `LATEST` platform version is used. + """ + scale: Scale | None = ... + """ + A floating-point percentage of the desired number of tasks to place and + keep running in the task set. + """ + client_token: str | None = ... + """ + An identifier that you provide to ensure the idempotency of the request. + It must be unique and is case sensitive. Up to 36 ASCII characters in + the range of 33-126 (inclusive) are allowed. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task set to help you categorize and + organize them. Each tag consists of a key and an optional value. You + define both. When a service is deleted, the tags are deleted. + + 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. + """ + +@dataclass(kw_only=True) +class CreateTaskSetOutput(_SerdeShape): + """Dataclass for CreateTaskSetOutput structure.""" + + task_set: TaskSet | None = ... + """ + Information about a set of Amazon ECS tasks in either an CodeDeploy or + an `EXTERNAL` deployment. A task set includes details such as the + desired number of tasks, how many tasks are running, and whether the + task set serves production traffic. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DaemonAlarmConfiguration(_SerdeShape): + """ + The CloudWatch alarm configuration for a daemon. When enabled, + CloudWatch alarms determine whether a daemon deployment has failed. + """ + + alarm_names: list[str] | None = ... + """The CloudWatch alarm names to monitor during a daemon deployment.""" + enable: bool = ... + """ + Determines whether to use the CloudWatch alarm option in the daemon + deployment process. The default value is `false`. + """ + +@dataclass(kw_only=True) +class DaemonCapacityProvider(_SerdeShape): + """Information about a capacity provider associated with a daemon revision.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the capacity provider.""" + running_count: int = ... + """The number of daemon tasks running on this capacity provider.""" + without_daemon_count: int = ... + """ + The number of instances on this capacity provider that are running + without the daemon task. This applies to daemons that aren't critical, + where the instance remains available for your other tasks even if the + daemon task can't start or stops. These instances aren't included in + `runningCount`. + """ + +@dataclass(kw_only=True) +class DaemonCircuitBreaker(_SerdeShape): + """ + Information about the circuit breaker used to determine when a daemon + deployment has failed. + """ + + failure_count: int = ... + """ + The number of times the circuit breaker detected a daemon deployment + failure. + """ + status: str | None = ... + """ + The circuit breaker status. Amazon ECS is not using the circuit breaker + for daemon deployment failures when the status is `DISABLED`. + """ + threshold: int = ... + """The threshold which determines that the daemon deployment failed.""" + +@dataclass(kw_only=True) +class DaemonContainerDefinition(_SerdeShape): + """ + A container definition for a daemon task. Daemon container definitions + describe the containers that run as part of a daemon task on container + instances managed by capacity providers. + """ + + name: str | None = ... + """ + The name of the container. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. + """ + image: str + """ + The image used to start the container. This string is passed directly to + the Docker daemon. Images in the Docker Hub registry are available by + default. Other repositories are specified with either + ` `*`repository-url`*`/`*`image`*`:`*`tag`*` ` or + ` `*`repository-url`*`/`*`image`*`@`*`digest`*` `. + """ + memory: int | None = ... + """ + The amount (in MiB) of memory to present to the container. If the + container attempts to exceed the memory specified here, the container is + killed. + """ + memory_reservation: int | None = ... + """The soft limit (in MiB) of memory to reserve for the container.""" + repository_credentials: RepositoryCredentials | None = ... + """The private repository authentication credentials to use.""" + health_check: HealthCheck | None = ... + """ + The container health check command and associated configuration + parameters for the container. + """ + cpu: int = ... + """The number of `cpu` units reserved for the container.""" + essential: bool | None = ... + """ + If the `essential` parameter of a container is marked as `true`, and + that container fails or stops for any reason, all other containers that + are part of the task are stopped. + """ + entry_point: list[str] | None = ... + """The entry point that's passed to the container.""" + command: list[str] | None = ... + """The command that's passed to the container.""" + working_directory: str | None = ... + """The working directory to run commands inside the container in.""" + environment_files: list[EnvironmentFile] | None = ... + """ + A list of files containing the environment variables to pass to a + container. + """ + environment: list[KeyValuePair] | None = ... + """The environment variables to pass to a container.""" + secrets: list[Secret] | None = ... + """The secrets to pass to the container.""" + readonly_root_filesystem: bool | None = ... + """ + When this parameter is true, the container is given read-only access to + its root file system. + """ + mount_points: list[MountPoint] | None = ... + """The mount points for data volumes in your container.""" + log_configuration: LogConfiguration | None = ... + """The log configuration specification for the container.""" + firelens_configuration: FirelensConfiguration | None = ... + """ + The FireLens configuration for the container. This is used to specify + and configure a log router for container logs. + """ + privileged: bool | None = ... + """ + When this parameter is true, the container is given elevated privileges + on the host container instance (similar to the `root` user). + """ + user: str | None = ... + """The user to use inside the container.""" + ulimits: list[Ulimit] | None = ... + """A list of `ulimits` to set in the container.""" + linux_parameters: DaemonLinuxParameters | None = ... + """ + Linux-specific modifications that are applied to the container + configuration, such as Linux kernel capabilities. + """ + depends_on: list[ContainerDependency] | None = ... + """ + The dependencies defined for container startup and shutdown. A container + can contain multiple dependencies on other containers in a task + definition. + """ + start_timeout: int | None = ... + """ + Time duration (in seconds) to wait before giving up on resolving + dependencies for a container. + """ + stop_timeout: int | None = ... + """ + Time duration (in seconds) to wait before the container is forcefully + killed if it doesn't exit normally on its own. + """ + system_controls: list[SystemControl] | None = ... + """A list of namespaced kernel parameters to set in the container.""" + interactive: bool | None = ... + """ + When this parameter is `true`, you can deploy containerized applications + that require `stdin` or a `tty` to be allocated. + """ + pseudo_terminal: bool | None = ... + """When this parameter is `true`, a TTY is allocated.""" + restart_policy: ContainerRestartPolicy | None = ... + """ + The restart policy for the container. When you set up a restart policy, + Amazon ECS can restart the container without needing to replace the + task. + """ + +@dataclass(kw_only=True) +class DaemonContainerImage(_SerdeShape): + """The details about the container image a daemon revision uses.""" + + container_name: str | None = ... + """The name of the container.""" + image_digest: str | None = ... + """The container image digest.""" + image: str | None = ... + """The container image.""" + +@dataclass(kw_only=True) +class DaemonDeployment(_SerdeShape): + """ + Information about a daemon deployment. A daemon deployment orchestrates + the progressive rollout of daemon task updates across container + instances. + """ + + daemon_deployment_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon deployment.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster that hosts the daemon.""" + status: str | None = ... + """The status of the daemon deployment.""" + status_reason: str | None = ... + """Information about why the daemon deployment is in the current status.""" + target_daemon_revision: DaemonDeploymentRevisionDetail | None = ... + """The daemon revision being deployed.""" + source_daemon_revisions: list[DaemonDeploymentRevisionDetail] | None = ... + """The currently deployed daemon revisions that are being replaced.""" + circuit_breaker: DaemonCircuitBreaker | None = ... + """ + The circuit breaker configuration that determines when a daemon + deployment has failed. + """ + alarms: DaemonDeploymentAlarms | None = ... + """The CloudWatch alarms that determine when a daemon deployment fails.""" + rollback: DaemonRollback | None = ... + """The rollback options for the daemon deployment.""" + deployment_configuration: DaemonDeploymentConfiguration | None = ... + """The deployment configuration used for this daemon deployment.""" + created_at: datetime | None = ... + """ + The time the daemon deployment was created. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + started_at: datetime | None = ... + """ + The time the daemon deployment started. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + stopped_at: datetime | None = ... + """ + The time the daemon deployment stopped. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + finished_at: datetime | None = ... + """ + The time the daemon deployment finished. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + +@dataclass(kw_only=True) +class DaemonDeploymentAlarms(_SerdeShape): + """The CloudWatch alarms used to determine a daemon deployment failed.""" + + status: str | None = ... + """ + The status of the alarms check. Amazon ECS is not using alarms for + daemon deployment failures when the status is `DISABLED`. + """ + alarm_names: list[str] | None = ... + """ + The name of the CloudWatch alarms that determine when a daemon + deployment failed. + """ + triggered_alarm_names: list[str] | None = ... + """ + One or more CloudWatch alarm names that have been triggered during the + daemon deployment. + """ + +@dataclass(kw_only=True) +class DaemonDeploymentCapacityProvider(_SerdeShape): + """Information about a capacity provider during a daemon deployment.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the capacity provider.""" + running_instance_count: int | None = ... + """The number of instances running daemon tasks on this capacity provider.""" + without_daemon_instance_count: int | None = ... + """ + The number of instances on this capacity provider that are running + without the daemon task. This applies to daemons that aren't critical, + where the instance remains available for your other tasks even if the + daemon task can't start or stops. These instances aren't included in + `runningInstanceCount`. + """ + draining_instance_count: int | None = ... + """ + The number of instances being drained on this capacity provider during + the deployment. + """ + +@dataclass(kw_only=True) +class DaemonDeploymentConfiguration(_SerdeShape): + """ + Optional deployment parameters that control how a daemon rolls out + updates across container instances. + """ + + drain_percent: float | None = ... + """ + The percentage of container instances to drain simultaneously during a + daemon deployment. Valid values are between 0.0 and 100.0. + """ + alarms: DaemonAlarmConfiguration | None = ... + """ + The CloudWatch alarm configuration for the daemon deployment. When + alarms are triggered during a deployment, the deployment can be + automatically rolled back. + """ + bake_time_in_minutes: int = ... + """ + The amount of time (in minutes) to wait after a successful deployment + step before proceeding. This allows time to monitor for issues before + continuing. The default value is 0. + """ + +@dataclass(kw_only=True) +class DaemonDeploymentRevisionDetail(_SerdeShape): + """ + Details about a daemon revision during a deployment, including running + and draining instance counts per capacity provider. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon revision.""" + capacity_providers: list[DaemonDeploymentCapacityProvider] | None = ... + """ + The capacity providers associated with this daemon revision during the + deployment. + """ + total_running_instance_count: int | None = ... + """The total number of instances running daemon tasks for this revision.""" + total_without_daemon_instance_count: int | None = ... + """ + The total number of instances running without the daemon task for this + revision, across all capacity providers. These instances aren't + included in `totalRunningInstanceCount`. + """ + total_draining_instance_count: int | None = ... + """ + The total number of instances being drained for this revision during the + deployment. + """ + +class DaemonDeploymentRollbackMonitorsStatus(UnknownEnumMixin, StrEnum): + TRIGGERED = "TRIGGERED" + MONITORING = "MONITORING" + MONITORING_COMPLETE = "MONITORING_COMPLETE" + DISABLED = "DISABLED" + +class DaemonDeploymentStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + SUCCESSFUL = "SUCCESSFUL" + STOPPED = "STOPPED" + STOP_REQUESTED = "STOP_REQUESTED" + IN_PROGRESS = "IN_PROGRESS" + ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS" + ROLLBACK_SUCCESSFUL = "ROLLBACK_SUCCESSFUL" + ROLLBACK_FAILED = "ROLLBACK_FAILED" + +@dataclass(kw_only=True) +class DaemonDeploymentSummary(_SerdeShape): + """A summary of a daemon deployment.""" + + daemon_deployment_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon deployment.""" + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster that hosts the daemon.""" + status: str | None = ... + """The status of the daemon deployment.""" + status_reason: str | None = ... + """Information about why the daemon deployment is in the current status.""" + target_daemon_revision_arn: str | None = ... + """The ARN of the daemon revision being deployed.""" + created_at: datetime | None = ... + """The time the daemon deployment was created.""" + started_at: datetime | None = ... + """The time the daemon deployment started.""" + stopped_at: datetime | None = ... + """The time the daemon deployment stopped.""" + finished_at: datetime | None = ... + """The time the daemon deployment finished.""" + +@dataclass(kw_only=True) +class DaemonDetail(_SerdeShape): + """The detailed information about a daemon.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the cluster that the daemon is running + in. + """ + status: str | None = ... + """The status of the daemon.""" + current_revisions: list[DaemonRevisionDetail] | None = ... + """ + The current daemon revision details, including the running task counts + per capacity provider. + """ + deployment_arn: str | None = ... + """The Amazon Resource Name (ARN) of the most recent daemon deployment.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was last updated.""" + +class DaemonIpcMode(UnknownEnumMixin, StrEnum): + NONE = "none" + """The daemon gets its own isolated IPC namespace.""" + SHARED = "shared" + """ + The daemon shares the IPC namespace with co-located tasks on the same + container instance. + """ + +@dataclass(kw_only=True) +class DaemonLinuxParameters(_SerdeShape): + """ + The Linux-specific options that are applied to the daemon container, + such as Linux kernel capabilities. + """ + + capabilities: KernelCapabilities | None = ... + """ + The Linux capabilities for the container that are added to or dropped + from the default configuration provided by Docker. + """ + devices: list[Device] | None = ... + """Any host devices to expose to the container.""" + init_process_enabled: bool | None = ... + """ + Run an `init` process inside the container that forwards signals and + reaps processes. + """ + tmpfs: list[Tmpfs] | None = ... + """The container path, mount options, and size (in MiB) of the tmpfs mount.""" + +@dataclass(kw_only=True) +class DaemonNotActiveException(ServiceError, _SerdeShape): + """ + The specified daemon isn't active. You can't update a daemon that's + inactive. If you have previously deleted a daemon, you can re-create it + with + [CreateDaemon](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateDaemon.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DaemonNotFoundException(ServiceError, _SerdeShape): + """ + The specified daemon wasn't found. You can view your available daemons + with + [ListDaemons](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListDaemons.html). + Amazon ECS daemons are cluster specific and Region specific. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DaemonPidMode(UnknownEnumMixin, StrEnum): + NONE = "none" + """The daemon gets its own isolated PID namespace.""" + SHARED = "shared" + """ + The daemon shares the PID namespace with co-located tasks on the same + container instance. + """ + +class DaemonPropagateTags(UnknownEnumMixin, StrEnum): + DAEMON = "DAEMON" + NONE = "NONE" + +@dataclass(kw_only=True) +class DaemonRevision(_SerdeShape): + """ + Information about a daemon revision. A daemon revision is a snapshot of + the daemon's configuration at the time a deployment was initiated. + """ + + daemon_revision_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon revision.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster that hosts the daemon.""" + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon for this revision.""" + daemon_task_definition_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the daemon task definition used by + this revision. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon revision was created.""" + container_images: list[DaemonContainerImage] | None = ... + """The container images used by the daemon revision.""" + propagate_tags: str | None = ... + """ + Specifies whether tags are propagated from the daemon to the daemon + tasks. + """ + enable_ecs_managed_tags: bool | None = ... + """ + Specifies whether Amazon ECS managed tags are turned on for the daemon + tasks. + """ + enable_execute_command: bool | None = ... + """ + Specifies whether the execute command functionality is turned on for the + daemon tasks. + """ + critical: bool | None = ... + """ + If the `critical` parameter of this daemon revision is `true`, and the + daemon task fails, stops, or becomes unhealthy, Amazon ECS drains the + container instance and stops the other tasks running on it. If the + parameter is `false`, the daemon task failure doesn't affect the other + tasks on the instance, and doesn't block instance registration. The + default value is `true`. + """ + +@dataclass(kw_only=True) +class DaemonRevisionDetail(_SerdeShape): + """ + Details about a daemon revision, including the running task counts per + capacity provider. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon revision.""" + capacity_providers: list[DaemonCapacityProvider] | None = ... + """The capacity providers associated with this daemon revision.""" + total_running_count: int = ... + """The total number of daemon tasks running for this revision.""" + total_without_daemon_count: int = ... + """ + The total number of instances running without the daemon task for this + revision, across all capacity providers. These instances aren't + included in `totalRunningCount`. + """ + +@dataclass(kw_only=True) +class DaemonRollback(_SerdeShape): + """Information about a daemon deployment rollback.""" + + reason: str | None = ... + """ + The reason the rollback happened. For example, the circuit breaker + initiated the rollback operation. + """ + started_at: datetime | None = ... + """ + The time that the rollback started. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + rollback_target_daemon_revision_arn: str | None = ... + """The ARN of the daemon revision deployed as part of the rollback.""" + rollback_capacity_providers: list[str] | None = ... + """The capacity providers involved in the rollback.""" + +class DaemonStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + +@dataclass(kw_only=True) +class DaemonSummary(_SerdeShape): + """A summary of a daemon.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + status: str | None = ... + """The status of the daemon.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was last updated.""" + +@dataclass(kw_only=True) +class DaemonTaskDefinition(_SerdeShape): + """ + The details of a daemon task definition. A daemon task definition is a + template that describes the containers that form a daemon. Daemons + deploy cross-cutting software agents independently across your Amazon + ECS infrastructure. + """ + + daemon_task_definition_arn: str | None = ... + """The full Amazon Resource Name (ARN) of the daemon task definition.""" + family: str | None = ... + """The name of a family that this daemon task definition is registered to.""" + revision: int = ... + """ + The revision of the daemon task in a particular family. The revision is + a version number of a daemon task definition in a family. When you + register a daemon task definition for the first time, the revision is + `1`. Each time that you register a new revision of a daemon task + definition in the same family, the revision value always increases by + one. + """ + task_role_arn: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the IAM role that + grants containers in the daemon task permission to call Amazon Web + Services APIs on your behalf. + """ + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role that grants + the Amazon ECS container agent permission to make Amazon Web Services + API calls on your behalf. + """ + container_definitions: list[DaemonContainerDefinition] | None = ... + """ + A list of container definitions in JSON format that describe the + containers that make up the daemon task. + """ + volumes: list[DaemonVolume] | None = ... + """The list of data volume definitions for the daemon task.""" + cpu: str | None = ... + """The number of CPU units used by the daemon task.""" + memory: str | None = ... + """The amount of memory (in MiB) used by the daemon task.""" + status: str | None = ... + """ + The status of the daemon task definition. The valid values are `ACTIVE`, + `DELETE_IN_PROGRESS`, and `DELETED`. + """ + registered_at: datetime | None = ... + """ + The Unix timestamp for the time when the daemon task definition was + registered. + """ + delete_requested_at: datetime | None = ... + """ + The Unix timestamp for the time when the daemon task definition delete + was requested. + """ + registered_by: str | None = ... + """The principal that registered the daemon task definition.""" + pid_mode: str | None = ... + """ + The PID namespace mode for the daemon. The valid values are `none` and + `shared`. The default is `none`. + + If `none` is specified or no value is provided, the daemon runs with its + own PID namespace, isolated from other tasks. If `shared` is specified, + the daemon joins the host PID namespace, making it accessible to + non-daemon tasks that use `pidMode: "host"` or other daemons that use + `pidMode: "shared"`. + """ + ipc_mode: str | None = ... + """ + The IPC namespace mode for the daemon. The valid values are `none` and + `shared`. The default is `none`. + + If `none` is specified or no value is provided, the daemon runs with its + own IPC namespace, isolated from other tasks. If `shared` is specified, + the daemon joins the host IPC namespace, making it accessible to + non-daemon tasks that use `ipcMode: "host"` or other daemons that use + `ipcMode: "shared"`. + """ + +class DaemonTaskDefinitionRevisionFilter(UnknownEnumMixin, StrEnum): + LAST_REGISTERED = "LAST_REGISTERED" + +class DaemonTaskDefinitionStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + DELETED = "DELETED" + +class DaemonTaskDefinitionStatusFilter(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + ALL = "ALL" + +@dataclass(kw_only=True) +class DaemonTaskDefinitionSummary(_SerdeShape): + """A summary of a daemon task definition.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon task definition.""" + registered_at: datetime | None = ... + """ + The Unix timestamp for the time when the daemon task definition was + registered. + """ + registered_by: str | None = ... + """The principal that registered the daemon task definition.""" + delete_requested_at: datetime | None = ... + """ + The Unix timestamp for the time when the daemon task definition delete + was requested. + """ + status: str | None = ... + """The status of the daemon task definition.""" + +@dataclass(kw_only=True) +class DaemonVolume(_SerdeShape): + """A data volume definition for a daemon task.""" + + name: str | None = ... + """ + The name of the volume. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. + """ + host: HostVolumeProperties | None = ... + """ + The contents of the `host` parameter determine whether your bind mount + host volume persists on the host container instance and where it's + stored. + """ + log_driver_volume_configuration: LogDriverVolumeConfiguration | None = ... + """ + The log driver volume configuration. With a log driver volume, the + containers in a daemon task can read the log files that a log driver + writes for the other tasks on the container instance. To read the log + files, mount the volume into a container in the daemon task with + `mountPoints`. + + Use `host` to bind mount a path on the container instance. Use + `logDriverVolumeConfiguration` to read the log output of other tasks. + You can't specify both for the same volume. + """ + +@dataclass(kw_only=True) +class DeleteAccountSettingInput(_SerdeShape): + """Dataclass for DeleteAccountSettingInput structure.""" + + name: str | None = ... + """ + 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. + """ + principal_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the principal. It can be a user, role, + or the root user. If you specify the root user, it disables the account + setting for all users, roles, and the root user of the account unless a + user or role explicitly overrides these settings. If this field is + omitted, the setting is changed only for the authenticated user. + + In order to use this parameter, you must be the root user, or the + principal. + """ + +@dataclass(kw_only=True) +class DeleteAccountSettingOutput(_SerdeShape): + """Dataclass for DeleteAccountSettingOutput structure.""" + + setting: Setting | None = ... + """The account setting for the specified principal ARN.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAttributesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + contains the resource to delete attributes. If you do not specify a + cluster, the default cluster is assumed. + """ + attributes: list[Attribute] | None = ... + """ + The attributes to delete from your resource. You can specify up to 10 + attributes for each request. For custom attributes, specify the + attribute name and target ID, but don't specify the value. If you + specify the target ID using the short form, you must also specify the + target type. + """ + +@dataclass(kw_only=True) +class DeleteAttributesOutput(_SerdeShape): + """""" + + attributes: list[Attribute] | None = ... + """ + A list of attribute objects that were successfully deleted from your + resource. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCapacityProviderInput(_SerdeShape): + """Dataclass for DeleteCapacityProviderInput structure.""" + + capacity_provider: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the capacity + provider to delete. + """ + cluster: str | None = ... + """ + The name of the cluster that contains the capacity provider to delete. + Managed instances capacity providers are cluster-scoped and can only be + deleted from their associated cluster. + """ + +@dataclass(kw_only=True) +class DeleteCapacityProviderOutput(_SerdeShape): + """Dataclass for DeleteCapacityProviderOutput structure.""" + + capacity_provider: CapacityProvider | None = ... + """The details of the capacity provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteClusterInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to + delete. + """ + +@dataclass(kw_only=True) +class DeleteClusterOutput(_SerdeShape): + """""" + + cluster: Cluster | None = ... + """The full description of the deleted cluster.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDaemonInput(_SerdeShape): + """Dataclass for DeleteDaemonInput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon to delete.""" + +@dataclass(kw_only=True) +class DeleteDaemonOutput(_SerdeShape): + """Dataclass for DeleteDaemonOutput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + status: str | None = ... + """ + The status of the daemon. After you call `DeleteDaemon`, the status + changes to `DELETE_IN_PROGRESS`. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was last updated.""" + deployment_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the daemon deployment that was + triggered by the delete operation. This deployment drains existing + daemon tasks from the container instances. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDaemonTaskDefinitionInput(_SerdeShape): + """Dataclass for DeleteDaemonTaskDefinitionInput structure.""" + + daemon_task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full Amazon Resource + Name (ARN) of the daemon task definition to delete. + """ + +@dataclass(kw_only=True) +class DeleteDaemonTaskDefinitionOutput(_SerdeShape): + """Dataclass for DeleteDaemonTaskDefinitionOutput structure.""" + + daemon_task_definition_arn: str | None = ... + """ + The full Amazon Resource Name (ARN) of the deleted daemon task + definition. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteExpressGatewayServiceInput(_SerdeShape): + """Dataclass for DeleteExpressGatewayServiceInput structure.""" + + service_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Express service to delete. The ARN + uniquely identifies the service within your Amazon Web Services account + and region. + """ + +@dataclass(kw_only=True) +class DeleteExpressGatewayServiceOutput(_SerdeShape): + """Dataclass for DeleteExpressGatewayServiceOutput structure.""" + + service: ECSExpressGatewayService | None = ... + """The full description of the deleted express service.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteGatewayInput(_SerdeShape): + """Dataclass for DeleteGatewayInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway to delete.""" + +@dataclass(kw_only=True) +class DeleteGatewayOutput(_SerdeShape): + """Dataclass for DeleteGatewayOutput structure.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the deleted gateway.""" + name: str | None = ... + """The name of the deleted gateway.""" + status: str | None = ... + """ + The status of the gateway. After a successful delete, the status is + `DELETED`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteServiceInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service to delete. If you do not specify a cluster, the + default cluster is assumed. + """ + service: str | None = ... + """The name of the service to delete.""" + force: bool | None = ... + """ + If `true`, allows you to delete a service even if it wasn't scaled down + to zero tasks. It's only necessary to use this if the service uses the + `REPLICA` scheduling strategy. + """ + +@dataclass(kw_only=True) +class DeleteServiceOutput(_SerdeShape): + """""" + + service: Service | None = ... + """The full description of the deleted service.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTaskDefinitionsInput(_SerdeShape): + """Dataclass for DeleteTaskDefinitionsInput structure.""" + + task_definitions: list[str] | None = ... + """ + The `family` and `revision` (`family:revision`) or full Amazon Resource + Name (ARN) of the task definition to delete. You must specify a + `revision`. + + You can specify up to 10 task definitions as a comma separated list. + """ + +@dataclass(kw_only=True) +class DeleteTaskDefinitionsOutput(_SerdeShape): + """Dataclass for DeleteTaskDefinitionsOutput structure.""" + + task_definitions: list[TaskDefinition] | None = ... + """The list of deleted task definitions.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTaskSetInput(_SerdeShape): + """Dataclass for DeleteTaskSetInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task set found in to delete. + """ + service: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the service that + hosts the task set to delete. + """ + task_set: str | None = ... + """ + The task set ID or full Amazon Resource Name (ARN) of the task set to + delete. + """ + force: bool | None = ... + """ + If `true`, you can delete a task set even if it hasn't been scaled down + to zero. + """ + +@dataclass(kw_only=True) +class DeleteTaskSetOutput(_SerdeShape): + """Dataclass for DeleteTaskSetOutput structure.""" + + task_set: TaskSet | None = ... + """Details about the task set.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Deployment(_SerdeShape): + """ + The details of an Amazon ECS service deployment. This is used only when + a service uses the `ECS` deployment controller type. + """ + + id: str | None = ... + """The ID of the deployment.""" + status: str | None = ... + """ + The status of the deployment. The following describes each state. + + PRIMARY + + : The most recent deployment of a service. + + ACTIVE + + : A service deployment that still has running tasks, but are in the + process of being replaced with a new `PRIMARY` deployment. + + INACTIVE + + : A deployment that has been completely replaced. + """ + task_definition: str | None = ... + """ + The most recent task definition that was specified for the tasks in the + service to use. + """ + desired_count: int = ... + """ + The most recent desired count of tasks that was specified for the + service to deploy or maintain. + """ + pending_count: int = ... + """The number of tasks in the deployment that are in the `PENDING` status.""" + running_count: int = ... + """The number of tasks in the deployment that are in the `RUNNING` status.""" + failed_tasks: int = ... + """ + The number of consecutively failed tasks in the deployment. A task is + considered a failure if the service scheduler can't launch the task, + the task doesn't transition to a `RUNNING` state, or if it fails any of + its defined health checks and is stopped. + + Note: + Once a service deployment has one or more successfully running tasks, + the failed task count resets to zero and stops being evaluated. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the service deployment was created.""" + updated_at: datetime | None = ... + """ + The Unix timestamp for the time when the service deployment was last + updated. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """The capacity provider strategy that the deployment is using.""" + launch_type: str | None = ... + """ + The launch type the tasks in the service are using. For more + information, see [Amazon ECS Launch + Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + platform_version: str | None = ... + """ + The platform version that your tasks in the service run on. A platform + version is only specified for tasks using the Fargate launch type. If + one isn't specified, the `LATEST` platform version is used. For more + information, see [Fargate Platform + Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + platform_family: str | None = ... + """ + The operating system that your tasks in the service, or tasks are + running on. A platform family is specified only for tasks using the + Fargate launch type. + + All tasks that run as part of this service must use the same + `platformFamily` value as the service, for example, ` LINUX.`. + """ + network_configuration: NetworkConfiguration | None = ... + """ + The VPC subnet and security group configuration for tasks that receive + their own elastic network interface by using the `awsvpc` networking + mode. + """ + rollout_state: str | None = ... + """ + Note: + The `rolloutState` of a service is only returned for services that use + the rolling update (`ECS`) deployment type that aren't behind a Classic + Load Balancer. + + The rollout state of the deployment. When a service deployment is + started, it begins in an `IN_PROGRESS` state. When the service reaches a + steady state, the deployment transitions to a `COMPLETED` state. If the + service fails to reach a steady state and circuit breaker is turned on, + the deployment transitions to a `FAILED` state. A deployment in `FAILED` + state doesn't launch any new tasks. For more information, see + [DeploymentCircuitBreaker](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeploymentCircuitBreaker.html). + """ + rollout_state_reason: str | None = ... + """A description of the rollout state of a deployment.""" + service_connect_configuration: ServiceConnectConfiguration | None = ... + """ + The details of the Service Connect configuration that's used by this + deployment. Compare the configuration between multiple deployments when + troubleshooting issues with new deployments. + + The configuration for this service to discover and connect to services, + and be discovered by, and connected from, other services within a + namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + service_connect_resources: list[ServiceConnectServiceResource] | None = ... + """ + The list of Service Connect resources that are associated with this + deployment. Each list entry maps a discovery name to a Cloud Map service + name. + """ + volume_configurations: list[ServiceVolumeConfiguration] | None = ... + """ + The details of the volume that was `configuredAtLaunch`. You can + configure different settings like the size, throughput, volumeType, and + ecryption in + [ServiceManagedEBSVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html). + The `name` of the volume must match the `name` from the task definition. + """ + fargate_ephemeral_storage: DeploymentEphemeralStorage | None = ... + """The Fargate ephemeral storage settings for the deployment.""" + vpc_lattice_configurations: list[VpcLatticeConfiguration] | None = ... + """The VPC Lattice configuration for the service deployment.""" + +@dataclass(kw_only=True) +class DeploymentAlarms(_SerdeShape): + """ + One of the methods which provide a way for you to quickly identify when + a deployment has failed, and then to optionally roll back the failure to + the last working deployment. + + When the alarms are generated, Amazon ECS sets the service deployment to + failed. Set the rollback parameter to have Amazon ECS to roll back your + service to the last completed deployment after a failure. + + You can only use the `DeploymentAlarms` method to detect failures when + the `DeploymentController` is set to `ECS`. + + For more information, see [Rolling + update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) + in the Amazon Elastic Container Service Developer Guide . + """ + + alarm_names: list[str] + """One or more CloudWatch alarm names. Use a \",\" to separate the alarms.""" + rollback: bool = ... + """ + Determines whether to configure Amazon ECS to roll back the service if a + service deployment fails. If rollback is used, when a service deployment + fails, the service is rolled back to the last deployment that completed + successfully. + """ + enable: bool = ... + """ + Determines whether to use the CloudWatch alarm option in the service + deployment process. + """ + +@dataclass(kw_only=True) +class DeploymentCircuitBreaker(_SerdeShape): + """ + Note: + The deployment circuit breaker can only be used for services using the + rolling update (`ECS`) deployment type. + + The **deployment circuit breaker** determines whether a service + deployment will fail if the service can't reach a steady state. If it + is turned on, a service deployment will transition to a failed state and + stop launching new tasks. You can also configure Amazon ECS to roll back + your service to the last completed deployment after a failure. For more + information, see [Rolling + update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) + in the *Amazon Elastic Container Service Developer Guide*. + + For more information about API failure reasons, see [API failure + reasons](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + enable: bool = ... + """ + Determines whether to use the deployment circuit breaker logic for the + service. + """ + rollback: bool = ... + """ + Determines whether to configure Amazon ECS to roll back the service if a + service deployment fails. If rollback is on, when a service deployment + fails, the service is rolled back to the last deployment that completed + successfully. + """ + reset_on_healthy_task: bool | None = ... + """ + Specifies whether the deployment circuit breaker resets its failure + count when a task reaches a healthy state. When set to `true`, a task + that reaches a healthy state resets the failure count to `0`. When set + to `false`, Amazon ECS does not reset the failure count. The default is + `true`. + """ + threshold_configuration: ThresholdConfiguration | None = ... + """ + The threshold configuration that controls when the deployment circuit + breaker triggers. The `type` and `value` together determine how many + task failures are tolerated before the circuit breaker activates. + """ + +@dataclass(kw_only=True) +class DeploymentConfiguration(_SerdeShape): + """ + Optional deployment parameters that control how many tasks run during a + deployment and the ordering of stopping and starting tasks. + """ + + deployment_circuit_breaker: DeploymentCircuitBreaker | None = ... + """ + Note: + The deployment circuit breaker can only be used for services using the + rolling update (`ECS`) deployment type. + + The **deployment circuit breaker** determines whether a service + deployment will fail if the service can't reach a steady state. If you + use the deployment circuit breaker, a service deployment will transition + to a failed state and stop launching new tasks. If you use the rollback + option, when a service deployment fails, the service is rolled back to + the last deployment that completed successfully. For more information, + see [Rolling + update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) + in the *Amazon Elastic Container Service Developer Guide* + """ + maximum_percent: int | None = ... + """ + If a service is using the rolling update (`ECS`) deployment type, the + `maximumPercent` parameter represents an upper limit on the number of + your service's tasks that are allowed in the `RUNNING` or `PENDING` + state during a deployment, as a percentage of the `desiredCount` + (rounded down to the nearest integer). This parameter enables you to + define the deployment batch size. For example, if your service is using + the `REPLICA` service scheduler and has a `desiredCount` of four tasks + and a `maximumPercent` value of 200%, the scheduler may start four new + tasks before stopping the four older tasks (provided that the cluster + resources required to do this are available). The default + `maximumPercent` value for a service using the `REPLICA` service + scheduler is 200%. + + The Amazon ECS scheduler uses this parameter to replace unhealthy tasks + by starting replacement tasks first and then stopping the unhealthy + tasks, as long as cluster resources for starting replacement tasks are + available. For more information about how the scheduler replaces + unhealthy tasks, see [Amazon ECS + services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). + + If a service is using either the blue/green (`CODE_DEPLOY`) or + `EXTERNAL` deployment types, and tasks in the service use the EC2 launch + type, the **maximum percent** value is set to the default value. The + **maximum percent** value is used to define the upper limit on the + number of the tasks in the service that remain in the `RUNNING` state + while the container instances are in the `DRAINING` state. + + Note: + You can't specify a custom `maximumPercent` value for a service that + uses either the blue/green (`CODE_DEPLOY`) or `EXTERNAL` deployment + types and has tasks that use the EC2 launch type. + + If the service uses either the blue/green (`CODE_DEPLOY`) or `EXTERNAL` + deployment types, and the tasks in the service use the Fargate launch + type, the maximum percent value is not used. The value is still returned + when describing your service. + """ + minimum_healthy_percent: int | None = ... + """ + If a service is using the rolling update (`ECS`) deployment type, the + `minimumHealthyPercent` represents a lower limit on the number of your + service's tasks that must remain in the `RUNNING` state during a + deployment, as a percentage of the `desiredCount` (rounded up to the + nearest integer). This parameter enables you to deploy without using + additional cluster capacity. For example, if your service has a + `desiredCount` of four tasks and a `minimumHealthyPercent` of 50%, the + service scheduler may stop two existing tasks to free up cluster + capacity before starting two new tasks. + + If any tasks are unhealthy and if `maximumPercent` doesn't allow the + Amazon ECS scheduler to start replacement tasks, the scheduler stops the + unhealthy tasks one-by-one --- using the `minimumHealthyPercent` as a + constraint --- to clear up capacity to launch replacement tasks. For + more information about how the scheduler replaces unhealthy tasks, see + [Amazon ECS + services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). + + For services that *do not* use a load balancer, the following should be + noted: + + - A service is considered healthy if all essential containers within the + tasks in the service pass their health checks. + + - If a task has no essential containers with a health check defined, the + service scheduler will wait for 40 seconds after a task reaches a + `RUNNING` state before the task is counted towards the minimum healthy + percent total. + + - If a task has one or more essential containers with a health check + defined, the service scheduler will wait for the task to reach a + healthy status before counting it towards the minimum healthy percent + total. A task is considered healthy when all essential containers + within the task have passed their health checks. The amount of time + the service scheduler can wait for is determined by the container + health check settings. + + For services that *do* use a load balancer, the following should be + noted: + + - If a task has no essential containers with a health check defined, the + service scheduler will wait for the load balancer target group health + check to return a healthy status before counting the task towards the + minimum healthy percent total. + + - If a task has an essential container with a health check defined, the + service scheduler will wait for both the task to reach a healthy + status and the load balancer target group health check to return a + healthy status before counting the task towards the minimum healthy + percent total. + + The default value for a replica service for `minimumHealthyPercent` is + 100%. The default `minimumHealthyPercent` value for a service using the + `DAEMON` service schedule is 0% for the CLI, the Amazon Web Services + SDKs, and the APIs and 50% for the Amazon Web Services Management + Console. + + The minimum number of healthy tasks during a deployment is the + `desiredCount` multiplied by the `minimumHealthyPercent`/100, rounded up + to the nearest integer value. + + If a service is using either the blue/green (`CODE_DEPLOY`) or + `EXTERNAL` deployment types and is running tasks that use the EC2 launch + type, the **minimum healthy percent** value is set to the default value. + The **minimum healthy percent** value is used to define the lower limit + on the number of the tasks in the service that remain in the `RUNNING` + state while the container instances are in the `DRAINING` state. + + Note: + You can't specify a custom `minimumHealthyPercent` value for a service + that uses either the blue/green (`CODE_DEPLOY`) or `EXTERNAL` deployment + types and has tasks that use the EC2 launch type. + + If a service is using either the blue/green (`CODE_DEPLOY`) or + `EXTERNAL` deployment types and is running tasks that use the Fargate + launch type, the minimum healthy percent value is not used, although it + is returned when describing your service. + """ + alarms: DeploymentAlarms | None = ... + """Information about the CloudWatch alarms.""" + strategy: str | None = ... + """ + The deployment strategy for the service. Choose from these valid values: + + - `ROLLING` - When you create a service which uses the rolling update + (`ROLLING`) deployment strategy, the Amazon ECS service scheduler + replaces the currently running tasks with new tasks. The number of + tasks that Amazon ECS adds or removes from the service during a + rolling update is controlled by the service deployment configuration. + + - `BLUE_GREEN` - A blue/green deployment strategy (`BLUE_GREEN`) is a + release methodology that reduces downtime and risk by running two + identical production environments called blue and green. With Amazon + ECS blue/green deployments, you can validate new service revisions + before directing production traffic to them. This approach provides a + safer way to deploy changes with the ability to quickly roll back if + needed. + + - `LINEAR` - A *linear* deployment strategy (`LINEAR`) gradually shifts + traffic from the current production environment to a new environment + in equal percentages over time. With Amazon ECS linear deployments, + you can control the pace of traffic shifting and validate new service + revisions with increasing amounts of production traffic. + + - `CANARY` - A *canary* deployment strategy (`CANARY`) shifts a small + percentage of traffic to the new service revision first, then shifts + the remaining traffic all at once after a specified time period. This + allows you to test the new version with a subset of users before full + deployment. + """ + bake_time_in_minutes: int | None = ... + """ + The time period when both blue and green service revisions are running + simultaneously after the production traffic has shifted. + + You must provide this parameter when you use the `BLUE_GREEN` deployment + strategy. + """ + lifecycle_hooks: list[DeploymentLifecycleHook] | None = ... + """ + An array of deployment lifecycle hook objects to run custom logic or + pause the deployment at specific stages of the deployment lifecycle. + """ + linear_configuration: LinearConfiguration | None = ... + """ + Configuration for linear deployment strategy. Only valid when the + deployment strategy is `LINEAR`. This configuration enables progressive + traffic shifting in equal percentage increments with configurable bake + times between each step. + """ + canary_configuration: CanaryConfiguration | None = ... + """ + Configuration for canary deployment strategy. Only valid when the + deployment strategy is `CANARY`. This configuration enables shifting a + fixed percentage of traffic for testing, followed by shifting the + remaining traffic after a bake period. + """ + early_success_criteria: DeploymentEarlySuccessCriteria | None = ... + """ + The early success criteria configuration for a rolling deployment. With + early success criteria, you can configure an Amazon ECS deployment to + complete faster. Amazon ECS declares a deployment successful once a + target percentage of tasks are healthy, instead of waiting for the + service to fully stabilize. + """ + +@dataclass(kw_only=True) +class DeploymentController(_SerdeShape): + """The deployment controller to use for the service.""" + + type: str + """ + The deployment controller type to use. + + The deployment controller is the mechanism that determines how tasks are + deployed for your service. The valid options are: + + - ECS + + When you create a service which uses the `ECS` deployment controller, + you can choose between the following deployment strategies: + + - `ROLLING`: When you create a service which uses the *rolling update* + (`ROLLING`) deployment strategy, the Amazon ECS service scheduler + replaces the currently running tasks with new tasks. The number of + tasks that Amazon ECS adds or removes from the service during a + rolling update is controlled by the service deployment + configuration. + + Rolling update deployments are best suited for the following + scenarios: + + - Gradual service updates: You need to update your service + incrementally without taking the entire service offline at once. + + - Limited resource requirements: You want to avoid the additional + resource costs of running two complete environments simultaneously + (as required by blue/green deployments). + + - Acceptable deployment time: Your application can tolerate a longer + deployment process, as rolling updates replace tasks one by one. + + - No need for instant roll back: Your service can tolerate a + rollback process that takes minutes rather than seconds. + + - Simple deployment process: You prefer a straightforward deployment + approach without the complexity of managing multiple environments, + target groups, and listeners. + + - No load balancer requirement: Your service doesn't use or require + a load balancer, Application Load Balancer, Network Load Balancer, + or Service Connect (which are required for blue/green + deployments). + + - Stateful applications: Your application maintains state that makes + it difficult to run two parallel environments. + + - Cost sensitivity: You want to minimize deployment costs by not + running duplicate environments during deployment. + + Rolling updates are the default deployment strategy for services and + provide a balance between deployment safety and resource efficiency + for many common application scenarios. + + - `BLUE_GREEN`: A *blue/green* deployment strategy (`BLUE_GREEN`) is a + release methodology that reduces downtime and risk by running two + identical production environments called blue and green. With Amazon + ECS blue/green deployments, you can validate new service revisions + before directing production traffic to them. This approach provides + a safer way to deploy changes with the ability to quickly roll back + if needed. + + Amazon ECS blue/green deployments are best suited for the following + scenarios: + + - Service validation: When you need to validate new service + revisions before directing production traffic to them + + - Zero downtime: When your service requires zero-downtime + deployments + + - Instant roll back: When you need the ability to quickly roll back + if issues are detected + + - Load balancer requirement: When your service uses Application Load + Balancer, Network Load Balancer, or Service Connect + + - External + + Use a third-party deployment controller. + + - Blue/green deployment (powered by CodeDeploy) + + CodeDeploy installs an updated version of the application as a new + replacement task set and reroutes production traffic from the original + application task set to the replacement task set. The original task + set is terminated after a successful deployment. Use this deployment + controller to verify a new deployment of a service before sending + production traffic to it. + """ + +class DeploymentControllerType(UnknownEnumMixin, StrEnum): + ECS = "ECS" + CODE_DEPLOY = "CODE_DEPLOY" + EXTERNAL = "EXTERNAL" + +@dataclass(kw_only=True) +class DeploymentEarlySuccessCriteria(_SerdeShape): + """ + Note: + You can use early success criteria only with rolling deployment + strategy. + + The configuration that determines when a rolling update deployment is + considered successful. Early success criteria defines the percentage of + tasks that must be healthy before a deployment completes. It also + controls whether Amazon ECS must remove the previous tasks before a + deployment completes. + """ + + enable: bool = ... + """ + Specifies whether to use the early success criteria for the service + deployment. When set to `false`, the deployment uses the default + behavior, where Amazon ECS considers the deployment successful when the + target service revision fully stabilizes and the previous tasks are + removed. The default value is `false`. + + When set to `true`, Amazon ECS monitors the deployment to meet early + success criteria. You must also specify `healthyPercent` and + `sourceServiceRevisionCleanup`. + """ + healthy_percent: int | None = ... + """ + The percentage of healthy tasks that the target service revision must + reach before Amazon ECS considers the deployment successful. This + percentage is relative to the service's `desiredCount` and must be an + integer between `0` and `100`. This value must be greater than or equal + to the `minimumHealthyPercent` value. + + After this percentage of tasks is healthy and the bake time elapses, + Amazon ECS completes the deployment. Amazon ECS continues to scale the + target service revision to 100 percent in the background. + """ + source_service_revision_cleanup: str | None = ... + """ + The time when Amazon ECS removes the source revisions' tasks relative + to deployment completion. The valid values are: + + - `BLOCKING`---Amazon ECS removes the previous tasks before it marks the + deployment as successful. + + - `DEFERRED`---Amazon ECS marks the deployment successful, and then + removes the previous tasks in the background. + """ + +@dataclass(kw_only=True) +class DeploymentEphemeralStorage(_SerdeShape): + """The amount of ephemeral storage to allocate for the deployment.""" + + kms_key_id: str | None = ... + """ + Specify an Key Management Service key ID to encrypt the ephemeral + storage for deployment. + """ + +@dataclass(kw_only=True) +class DeploymentLifecycleHook(_SerdeShape): + """ + A deployment lifecycle hook runs custom logic or pauses the deployment + at specific stages of the deployment process. You can use Lambda + functions or pause hooks as hook targets. + + For more information, see [Lifecycle hooks for Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-lifecycle-hooks.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + target_type: str | None = ... + """ + The type of action the lifecycle hook performs. Valid values are: + + - `AWS_LAMBDA` - Invokes a Lambda function at the specified lifecycle + stage. This is the default value. + + - `PAUSE` - Pauses the deployment at the specified lifecycle stage until + you call `ContinueServiceDeployment` to continue or roll back. + + This field is optional. If not specified, the default value is + `AWS_LAMBDA`. + """ + hook_target_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the hook target. For `AWS_LAMBDA` + hooks, this is the Lambda function ARN. This field is not applicable for + `PAUSE` hooks. + + You must provide this parameter when configuring an `AWS_LAMBDA` + lifecycle hook. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that grants Amazon ECS + permission to call Lambda functions on your behalf. + + For more information, see [Permissions required for Lambda functions in + Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-permissions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + lifecycle_stages: list[str] | None = ... + """ + The lifecycle stages at which to run the hook. Choose from these valid + values: + + - RECONCILE_SERVICE + + The reconciliation stage that only happens when you start a new + service deployment with more than 1 service revision in an ACTIVE + state. + + You can use a lifecycle hook for this stage. + + - PRE_SCALE_UP + + The green service revision has not started. The blue service revision + is handling 100% of the production traffic. There is no test traffic. + + You can use a lifecycle hook for this stage. + + - POST_SCALE_UP + + The green service revision has started. The blue service revision is + handling 100% of the production traffic. There is no test traffic. + + You can use a lifecycle hook for this stage. + + - TEST_TRAFFIC_SHIFT + + The blue and green service revisions are running. The blue service + revision handles 100% of the production traffic. The green service + revision is migrating from 0% to 100% of test traffic. + + You can use a lifecycle hook for this stage. + + - POST_TEST_TRAFFIC_SHIFT + + The test traffic shift is complete. The green service revision handles + 100% of the test traffic. + + You can use a lifecycle hook for this stage. + + - PRE_PRODUCTION_TRAFFIC_SHIFT + + Occurs before production traffic shift. For linear and canary + deployments, this stage is invoked before every traffic shift step. + + You can use a lifecycle hook for this stage. + + - PRODUCTION_TRAFFIC_SHIFT + + Production traffic is shifting to the green service revision. The + green service revision is migrating from 0% to 100% of production + traffic. For linear and canary deployments, this stage is invoked at + every traffic shift step. + + You can use a lifecycle hook for this stage. + + - POST_PRODUCTION_TRAFFIC_SHIFT + + The production traffic shift is complete. + + You can use a lifecycle hook for this stage. + + Note: + `PAUSE` hooks cannot be configured at `TEST_TRAFFIC_SHIFT` or + `PRODUCTION_TRAFFIC_SHIFT` stages. These stages are only valid for + `AWS_LAMBDA` hooks. + + You must provide this parameter when configuring a deployment lifecycle + hook. + """ + hook_details: Document | None = ... + """ + Use this field to specify custom parameters that Amazon ECS passes to + your Lambda function on each invocation. This field is not used for + `PAUSE` hooks. + """ + timeout_configuration: DeploymentLifecycleHookTimeoutConfiguration | None = ... + """ + The timeout configuration for the lifecycle hook. This specifies how + long Amazon ECS waits before taking the timeout action if the hook is + not resolved. + """ + +class DeploymentLifecycleHookAction(UnknownEnumMixin, StrEnum): + ROLLBACK = "ROLLBACK" + CONTINUE_ = "CONTINUE" + +@dataclass(kw_only=True) +class DeploymentLifecycleHookDetail(_SerdeShape): + """ + The details of a deployment lifecycle hook that is active during a + service deployment. + + You can view lifecycle hook details by calling + [DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html). + """ + + hook_id: str | None = ... + """ + The ID of the lifecycle hook. Use this value when calling + `ContinueServiceDeployment` to continue or roll back a paused + deployment. + """ + target_type: str | None = ... + """ + The type of action the lifecycle hook performs, such as `AWS_LAMBDA` or + `PAUSE`. + """ + target_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the hook target. For `AWS_LAMBDA` + hooks, this is the Lambda function ARN. For `PAUSE` hooks, this field is + not set. + """ + status: str | None = ... + """ + The status of the lifecycle hook. Valid values include + `AWAITING_ACTION`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, and + `TIMED_OUT`. + """ + expires_at: datetime | None = ... + """ + The time when the lifecycle hook times out. If the hook has not been + completed by this time, Amazon ECS takes the timeout action. + """ + timeout_action: str | None = ... + """ + The action Amazon ECS takes when the lifecycle hook times out. Valid + values are `CONTINUE` and `ROLLBACK`. + """ + +class DeploymentLifecycleHookStage(UnknownEnumMixin, StrEnum): + RECONCILE_SERVICE = "RECONCILE_SERVICE" + PRE_SCALE_UP = "PRE_SCALE_UP" + POST_SCALE_UP = "POST_SCALE_UP" + TEST_TRAFFIC_SHIFT = "TEST_TRAFFIC_SHIFT" + POST_TEST_TRAFFIC_SHIFT = "POST_TEST_TRAFFIC_SHIFT" + PRE_PRODUCTION_TRAFFIC_SHIFT = "PRE_PRODUCTION_TRAFFIC_SHIFT" + PRODUCTION_TRAFFIC_SHIFT = "PRODUCTION_TRAFFIC_SHIFT" + POST_PRODUCTION_TRAFFIC_SHIFT = "POST_PRODUCTION_TRAFFIC_SHIFT" + +class DeploymentLifecycleHookStatus(UnknownEnumMixin, StrEnum): + AWAITING_ACTION = "AWAITING_ACTION" + IN_PROGRESS = "IN_PROGRESS" + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + TIMED_OUT = "TIMED_OUT" + +class DeploymentLifecycleHookTargetType(UnknownEnumMixin, StrEnum): + AWS_LAMBDA = "AWS_LAMBDA" + PAUSE = "PAUSE" + +@dataclass(kw_only=True) +class DeploymentLifecycleHookTimeoutConfiguration(_SerdeShape): + """ + The timeout configuration for a deployment lifecycle hook. This + determines how long Amazon ECS waits for the hook to complete before + taking the specified timeout action. + """ + + timeout_in_minutes: int | None = ... + """ + The number of minutes Amazon ECS waits for the lifecycle hook to + complete before taking the timeout action. + + Default: 1440 (24 hours) + """ + action: str | None = ... + """ + The action Amazon ECS takes when the lifecycle hook times out. Valid + values are: + + - `CONTINUE` - Proceeds the deployment to the next lifecycle stage. + + - `ROLLBACK` - Rolls back the deployment to the previous service + revision. + + Default: `ROLLBACK` + """ + +class DeploymentRolloutState(UnknownEnumMixin, StrEnum): + COMPLETED = "COMPLETED" + FAILED = "FAILED" + IN_PROGRESS = "IN_PROGRESS" + +class DeploymentStrategy(UnknownEnumMixin, StrEnum): + ROLLING = "ROLLING" + BLUE_GREEN = "BLUE_GREEN" + LINEAR = "LINEAR" + CANARY = "CANARY" + +@dataclass(kw_only=True) +class DeregisterContainerInstanceInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the container instance to deregister. If you do not specify a + cluster, the default cluster is assumed. + """ + container_instance: str | None = ... + """ + The container instance ID or full ARN of the container instance to + deregister. For more information about the ARN format, see [Amazon + Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids) + in the *Amazon ECS Developer Guide*. + """ + force: bool | None = ... + """ + Forces the container instance to be deregistered. If you have tasks + running on the container instance when you deregister it with the + `force` option, these tasks remain running until you terminate the + instance or the tasks stop through some other means, but they're + orphaned (no longer monitored or accounted for by Amazon ECS). If an + orphaned task on your container instance is part of an Amazon ECS + service, then the service scheduler starts another copy of that task, on + a different container instance if possible. + + Any containers in orphaned service tasks that are registered with a + Classic Load Balancer or an Application Load Balancer target group are + deregistered. They begin connection draining according to the settings + on the load balancer or target group. + """ + +@dataclass(kw_only=True) +class DeregisterContainerInstanceOutput(_SerdeShape): + """""" + + container_instance: ContainerInstance | None = ... + """The container instance that was deregistered.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterTaskDefinitionInput(_SerdeShape): + """""" + + task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full Amazon Resource + Name (ARN) of the task definition to deregister. You must specify a + `revision`. + """ + +@dataclass(kw_only=True) +class DeregisterTaskDefinitionOutput(_SerdeShape): + """""" + + task_definition: TaskDefinition | None = ... + """The full description of the deregistered task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCapacityProvidersInput(_SerdeShape): + """Dataclass for DescribeCapacityProvidersInput structure.""" + + capacity_providers: list[str] | None = ... + """ + The short name or full Amazon Resource Name (ARN) of one or more + capacity providers. Up to `100` capacity providers can be described in + an action. + """ + cluster: str | None = ... + """ + The name of the cluster to describe capacity providers for. When + specified, only capacity providers associated with this cluster are + returned, including Amazon ECS Managed Instances capacity providers. + """ + include: list[str] | None = ... + """ + Specifies whether or not you want to see the resource tags for the + capacity provider. If `TAGS` is specified, the tags are included in the + response. If this field is omitted, tags aren't included in the + response. + """ + max_results: int | None = ... + """ + The maximum number of account setting results returned by + `DescribeCapacityProviders` in paginated output. When this parameter is + used, `DescribeCapacityProviders` only returns `maxResults` results in a + single page along with a `nextToken` response element. The remaining + results of the initial request can be seen by sending another + `DescribeCapacityProviders` request with the returned `nextToken` value. + This value can be between 1 and 10. If this parameter is not used, then + `DescribeCapacityProviders` returns up to 10 results and a `nextToken` + value if applicable. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a previous paginated + `DescribeCapacityProviders` 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. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + +@dataclass(kw_only=True) +class DescribeCapacityProvidersOutput(_SerdeShape): + """Dataclass for DescribeCapacityProvidersOutput structure.""" + + capacity_providers: list[CapacityProvider] | None = ... + """The list of capacity providers.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `DescribeCapacityProviders` + request. When the results of a `DescribeCapacityProviders` request + exceed `maxResults`, this value can be used to retrieve the next page of + results. This value is `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeClustersInput(_SerdeShape): + """""" + + clusters: list[str] | None = ... + """ + A list of up to 100 cluster names or full cluster Amazon Resource Name + (ARN) entries. If you do not specify a cluster, the default cluster is + assumed. + """ + include: list[str] | None = ... + """ + Determines whether to include additional information about the clusters + in the response. If this field is omitted, this information isn't + included. + + If `ATTACHMENTS` is specified, the attachments for the container + instances or tasks within the cluster are included, for example the + capacity providers. + + If `SETTINGS` is specified, the settings for the cluster are included. + + If `CONFIGURATIONS` is specified, the configuration for the cluster is + included. + + If `STATISTICS` is specified, the task and service count is included, + separated by launch type. + + If `TAGS` is specified, the metadata tags associated with the cluster + are included. + """ + +@dataclass(kw_only=True) +class DescribeClustersOutput(_SerdeShape): + """""" + + clusters: list[Cluster] | None = ... + """The list of clusters.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeContainerInstancesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the container instances to describe. If you do not specify a + cluster, the default cluster is assumed. This parameter is required if + the container instance or container instances you are describing were + launched in any cluster other than the default cluster. + """ + container_instances: list[str] | None = ... + """ + A list of up to 100 container instance IDs or full Amazon Resource Name + (ARN) entries. + """ + include: list[str] | None = ... + """ + Specifies whether you want to see the resource tags for the container + instance. If `TAGS` is specified, the tags are included in the response. + If `CONTAINER_INSTANCE_HEALTH` is specified, the container instance + health is included in the response. If this field is omitted, tags and + container instance health status aren't included in the response. + """ + +@dataclass(kw_only=True) +class DescribeContainerInstancesOutput(_SerdeShape): + """""" + + container_instances: list[ContainerInstance] | None = ... + """The list of container instances.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDaemonDeploymentsInput(_SerdeShape): + """Dataclass for DescribeDaemonDeploymentsInput structure.""" + + daemon_deployment_arns: list[str] | None = ... + """ + The ARN of the daemon deployments to describe. You can specify up to 20 + ARNs. + """ + +@dataclass(kw_only=True) +class DescribeDaemonDeploymentsOutput(_SerdeShape): + """Dataclass for DescribeDaemonDeploymentsOutput structure.""" + + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + daemon_deployments: list[DaemonDeployment] | None = ... + """The list of daemon deployments.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDaemonInput(_SerdeShape): + """Dataclass for DescribeDaemonInput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon to describe.""" + +@dataclass(kw_only=True) +class DescribeDaemonOutput(_SerdeShape): + """Dataclass for DescribeDaemonOutput structure.""" + + daemon: DaemonDetail | None = ... + """ + The full description of the daemon, including the current revisions, + deployment ARN, cluster, and status information. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDaemonRevisionsInput(_SerdeShape): + """Dataclass for DescribeDaemonRevisionsInput structure.""" + + daemon_revision_arns: list[str] | None = ... + """ + The ARN of the daemon revisions to describe. You can specify up to 20 + ARNs. + """ + +@dataclass(kw_only=True) +class DescribeDaemonRevisionsOutput(_SerdeShape): + """Dataclass for DescribeDaemonRevisionsOutput structure.""" + + daemon_revisions: list[DaemonRevision] | None = ... + """The list of daemon revisions.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDaemonTaskDefinitionInput(_SerdeShape): + """Dataclass for DescribeDaemonTaskDefinitionInput structure.""" + + daemon_task_definition: str | None = ... + """ + The `family` for the latest `ACTIVE` revision, `family` and `revision` + (`family:revision`) for a specific revision in the family, or full + Amazon Resource Name (ARN) of the daemon task definition to describe. + """ + +@dataclass(kw_only=True) +class DescribeDaemonTaskDefinitionOutput(_SerdeShape): + """Dataclass for DescribeDaemonTaskDefinitionOutput structure.""" + + daemon_task_definition: DaemonTaskDefinition | None = ... + """The full daemon task definition description.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeExpressGatewayServiceInput(_SerdeShape): + """Dataclass for DescribeExpressGatewayServiceInput structure.""" + + service_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Express service to describe. The + ARN uniquely identifies the service within your Amazon Web Services + account and region. + """ + include: list[str] | None = ... + """ + Specifies additional information to include in the response. Valid + values are `TAGS` to include resource tags associated with the Express + service. + """ + +@dataclass(kw_only=True) +class DescribeExpressGatewayServiceOutput(_SerdeShape): + """Dataclass for DescribeExpressGatewayServiceOutput structure.""" + + service: ECSExpressGatewayService | None = ... + """The full description of the described express service.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeGatewayAlbConfiguration(_SerdeShape): + """ + The configuration for a gateway that uses shared Application Load + Balancers, as returned by `DescribeGateway`. This includes the current + number of load balancers in addition to the configured settings. + """ + + network_configuration: GatewayElbNetworkConfiguration | None = ... + """ + The network configuration for the load balancers that the gateway + manages. + """ + scheme: str | None = ... + """ + Specifies whether the load balancers the gateway manages are + `internet-facing` or `internal`. + """ + access_logs: GatewayElbAccessLogConfiguration | None = ... + """ + The access log configuration for the load balancers that the gateway + manages. + """ + web_acl_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the WAF web ACL associated with the + load balancers that the gateway manages. + """ + port: int | None = ... + """ + The port that the load balancer listener uses is 443. The gateway + supports only HTTPS at port 443. + """ + protocol: str | None = ... + """ + The protocol for the load balancer listener is `HTTPS`. No other + protocol is supported. + """ + max_alb_count: int | None = ... + """ + The maximum number of Application Load Balancers that the gateway + manages. + """ + current_alb_count: int | None = ... + """ + The current number of Application Load Balancers that the gateway has + allocated. + """ + http_desync: str | None = ... + """ + The desync mitigation mode for the load balancers that the gateway + manages. + """ + test_traffic_rules: GatewayAlbTestTrafficRules | None = ... + """The rules that route test traffic for progressive deployments.""" + +@dataclass +class DescribeGatewayConfigurationHostSharedAlb(_SerdeShape): + """ + The configuration for a host-based, shared Application Load Balancer + gateway. + """ + + value: DescribeGatewayAlbConfiguration + +@dataclass +class DescribeGatewayConfigurationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +DescribeGatewayConfiguration = Union[ + DescribeGatewayConfigurationHostSharedAlb | DescribeGatewayConfigurationUnknown +] +""" +The type-specific configuration for a gateway that is returned by +`DescribeGateway`. +""" + +class _DescribeGatewayConfigurationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> DescribeGatewayConfiguration: ... + +@dataclass(kw_only=True) +class DescribeGatewayInput(_SerdeShape): + """Dataclass for DescribeGatewayInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway to describe.""" + +@dataclass(kw_only=True) +class DescribeGatewayOutput(_SerdeShape): + """Dataclass for DescribeGatewayOutput structure.""" + + gateway: Gateway | None = ... + """The details of the gateway.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeGatewayResourcesInput(_SerdeShape): + """Dataclass for DescribeGatewayResourcesInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway.""" + max_results: int | None = ... + """ + The maximum number of results that the operation returns in a single + page. The maximum value is 20 and the default is 10. + """ + next_token: str | None = ... + """The `nextToken` value returned from a previous paginated request.""" + +@dataclass(kw_only=True) +class DescribeGatewayResourcesOutput(_SerdeShape): + """Dataclass for DescribeGatewayResourcesOutput structure.""" + + gateway_resources: GatewayResources | None = ... + """ + The infrastructure resources that the gateway manages, grouped by + gateway type. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future request to retrieve the + next page of results. This value is `null` when there are no more + results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeGatewayRouteInput(_SerdeShape): + """Dataclass for DescribeGatewayRouteInput structure.""" + + gateway_route_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway route to describe.""" + +@dataclass(kw_only=True) +class DescribeGatewayRouteOutput(_SerdeShape): + """Dataclass for DescribeGatewayRouteOutput structure.""" + + gateway_route: GatewayRoute | None = ... + """The details of the gateway route.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeServiceDeploymentsInput(_SerdeShape): + """Dataclass for DescribeServiceDeploymentsInput structure.""" + + service_deployment_arns: list[str] | None = ... + """ + The ARN of the service deployment. + + You can specify a maximum of 20 ARNs. + """ + +@dataclass(kw_only=True) +class DescribeServiceDeploymentsOutput(_SerdeShape): + """Dataclass for DescribeServiceDeploymentsOutput structure.""" + + service_deployments: list[ServiceDeployment] | None = ... + """The list of service deployments described.""" + failures: list[Failure] | None = ... + """ + Any failures associated with the call. + + If you decsribe a deployment with a service revision created before + October 25, 2024, the call fails. The failure includes the service + revision ARN and the reason set to `MISSING`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeServiceRevisionsInput(_SerdeShape): + """Dataclass for DescribeServiceRevisionsInput structure.""" + + service_revision_arns: list[str] | None = ... + """ + The ARN of the service revision. + + You can specify a maximum of 20 ARNs. + + You can call + [ListServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServiceDeployments.html) + to get the ARNs. + """ + +@dataclass(kw_only=True) +class DescribeServiceRevisionsOutput(_SerdeShape): + """Dataclass for DescribeServiceRevisionsOutput structure.""" + + service_revisions: list[ServiceRevision] | None = ... + """The list of service revisions described.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeServicesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN)the cluster that hosts + the service to describe. If you do not specify a cluster, the default + cluster is assumed. This parameter is required if the service or + services you are describing were launched in any cluster other than the + default cluster. + """ + services: list[str] | None = ... + """ + A list of services to describe. You may specify up to 10 services to + describe in a single operation. + """ + include: list[str] | None = ... + """ + Determines whether you want to see the resource tags for the service. If + `TAGS` is specified, the tags are included in the response. If this + field is omitted, tags aren't included in the response. + """ + +@dataclass(kw_only=True) +class DescribeServicesOutput(_SerdeShape): + """""" + + services: list[Service] | None = ... + """The list of services described.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTaskDefinitionInput(_SerdeShape): + """""" + + task_definition: str | None = ... + """ + The `family` for the latest `ACTIVE` revision, `family` and `revision` + (`family:revision`) for a specific revision in the family, or full + Amazon Resource Name (ARN) of the task definition to describe. + """ + include: list[str] | None = ... + """ + Determines whether to see the resource tags for the task definition. If + `TAGS` is specified, the tags are included in the response. If this + field is omitted, tags aren't included in the response. + """ + +@dataclass(kw_only=True) +class DescribeTaskDefinitionOutput(_SerdeShape): + """""" + + task_definition: TaskDefinition | None = ... + """The full task definition description.""" + tags: list[Tag] | None = ... + """ + The metadata that's applied to the task definition to help you + categorize and organize them. 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. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTaskSetsInput(_SerdeShape): + """Dataclass for DescribeTaskSetsInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task sets exist in. + """ + service: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the service that + the task sets exist in. + """ + task_sets: list[str] | None = ... + """The ID or full Amazon Resource Name (ARN) of task sets to describe.""" + include: list[str] | None = ... + """ + Specifies whether to see the resource tags for the task set. If `TAGS` + is specified, the tags are included in the response. If this field is + omitted, tags aren't included in the response. + """ + +@dataclass(kw_only=True) +class DescribeTaskSetsOutput(_SerdeShape): + """Dataclass for DescribeTaskSetsOutput structure.""" + + task_sets: list[TaskSet] | None = ... + """The list of task sets described.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTasksInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the task or tasks to describe. If you do not specify a cluster, + the default cluster is assumed. + """ + tasks: list[str] | None = ... + """A list of up to 100 task IDs or full ARN entries.""" + include: list[str] | None = ... + """ + Specifies whether you want to see the resource tags for the task. If + `TAGS` is specified, the tags are included in the response. If this + field is omitted, tags aren't included in the response. + """ + +@dataclass(kw_only=True) +class DescribeTasksOutput(_SerdeShape): + """""" + + tasks: list[Task] | None = ... + """The list of tasks.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DesiredStatus(UnknownEnumMixin, StrEnum): + RUNNING = "RUNNING" + PENDING = "PENDING" + STOPPED = "STOPPED" + +@dataclass(kw_only=True) +class Device(_SerdeShape): + """An object representing a container instance host device.""" + + host_path: str + """The path for the device on the host container instance.""" + container_path: str | None = ... + """The path inside the container at which to expose the host device.""" + permissions: list[str] | None = ... + """ + The explicit permissions to provide to the container for the device. By + default, the container has permissions for `read`, `write`, and `mknod` + for the device. + """ + +class DeviceCgroupPermission(UnknownEnumMixin, StrEnum): + READ = "read" + WRITE = "write" + MKNOD = "mknod" + +@dataclass(kw_only=True) +class DisassociateGatewayFromClusterInput(_SerdeShape): + """Dataclass for DisassociateGatewayFromClusterInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway to disassociate.""" + cluster: str | None = ... + """ + The name or Amazon Resource Name (ARN) of the cluster to disassociate + the gateway from. + """ + +@dataclass(kw_only=True) +class DisassociateGatewayFromClusterOutput(_SerdeShape): + """Dataclass for DisassociateGatewayFromClusterOutput structure.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster.""" + status: str | None = ... + """ + The status of the association. After a successful request, the status is + `DISASSOCIATING` until all routes are removed, after which the + association is deleted. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DiscoverPollEndpointInput(_SerdeShape): + """""" + + container_instance: str | None = ... + """ + The container instance ID or full ARN of the container instance. For + more information about the ARN format, see [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids) + in the *Amazon ECS Developer Guide*. + """ + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + the container instance belongs to. + """ + +@dataclass(kw_only=True) +class DiscoverPollEndpointOutput(_SerdeShape): + """""" + + endpoint: str | None = ... + """The endpoint for the Amazon ECS agent to poll.""" + telemetry_endpoint: str | None = ... + """The telemetry endpoint for the Amazon ECS agent.""" + service_connect_endpoint: str | None = ... + """ + The endpoint for the Amazon ECS agent to poll for Service Connect + configuration. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DockerVolumeConfiguration(_SerdeShape): + """ + This parameter is specified when you're using Docker volumes. Docker + volumes are only supported when you're using the EC2 launch type. + Windows containers only support the use of the `local` driver. To use + bind mounts, specify a `host` instead. + """ + + scope: str | None = ... + """ + The scope for the Docker volume that determines its lifecycle. Docker + volumes that are scoped to a `task` are automatically provisioned when + the task starts and destroyed when the task stops. Docker volumes that + are scoped as `shared` persist after the task stops. + """ + autoprovision: bool | None = ... + """ + If this value is `true`, the Docker volume is created if it doesn't + already exist. + + Note: + This field is only used if the `scope` is `shared`. + """ + driver: str | None = ... + """ + The Docker volume driver to use. The driver value must match the driver + name provided by Docker because it is used for task placement. If the + driver was installed using the Docker plugin CLI, use `docker plugin ls` + to retrieve the driver name from your container instance. If the driver + was installed using another method, use Docker plugin discovery to + retrieve the driver name. This parameter maps to `Driver` in the docker + container create command and the `xxdriver` option to docker volume + create. + """ + driver_opts: dict[str, str] | None = ... + """ + A map of Docker driver-specific options passed through. This parameter + maps to `DriverOpts` in the docker create-volume command and the `xxopt` + option to docker volume create. + """ + labels: dict[str, str] | None = ... + """ + Custom metadata to add to your Docker volume. This parameter maps to + `Labels` in the docker container create command and the `xxlabel` option + to docker volume create. + """ + +class EBSResourceType(UnknownEnumMixin, StrEnum): + VOLUME = "volume" + +@dataclass(kw_only=True) +class EBSTagSpecification(_SerdeShape): + """The tag specifications of an Amazon EBS volume.""" + + resource_type: str + """The type of volume resource.""" + tags: list[Tag] | None = ... + """ + The tags applied to this Amazon EBS volume. `AmazonECSCreated` and + `AmazonECSManaged` are reserved tags that can't be used. + """ + propagate_tags: str | None = ... + """ + Determines whether to propagate the tags from the task definition to the + Amazon EBS volume. Tags can only propagate to a `SERVICE` specified in + `ServiceVolumeConfiguration`. If no value is specified, the tags aren't + propagated. + """ + +@dataclass(kw_only=True) +class ECSExpressGatewayService(_SerdeShape): + """ + Represents an Express service, which provides a simplified way to deploy + containerized web applications on Amazon ECS with managed Amazon Web + Services infrastructure. An Express service automatically provisions and + manages Application Load Balancers, target groups, security groups, and + auto-scaling policies. + + Express services use a service revision architecture where each service + can have multiple active configurations, enabling blue-green deployments + and gradual rollouts. The service maintains a list of active + configurations and manages the lifecycle of the underlying Amazon Web + Services resources. + """ + + cluster: str | None = ... + """ + The short name or full ARN of the cluster that hosts the Express + service. + """ + service_name: str | None = ... + """The name of the Express service.""" + service_arn: str | None = ... + """The ARN that identifies the Express service.""" + infrastructure_role_arn: str | None = ... + """ + The ARN of the infrastructure role that manages Amazon Web Services + resources for the Express service. + """ + status: ExpressGatewayServiceStatus | None = ... + """The current status of the Express service.""" + current_deployment: str | None = ... + """The current deployment configuration for the Express service.""" + active_configurations: list[ExpressGatewayServiceConfiguration] | None = ... + """The list of active service configurations for the Express service.""" + tags: list[Tag] | None = ... + """The metadata applied to the Express service.""" + created_at: datetime | None = ... + """The Unix timestamp for when the Express service was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for when the Express service was last updated.""" + +@dataclass(kw_only=True) +class ECSManagedResources(_SerdeShape): + """ + Represents the Amazon Web Services resources managed by Amazon ECS for + an Express service, including ingress paths, auto-scaling policies, + metric alarms, and security groups. + """ + + ingress_paths: list[ManagedIngressPath] | None = ... + """The ingress paths and endpoints for the Express service.""" + auto_scaling: ManagedAutoScaling | None = ... + """The auto-scaling configuration and policies for the Express service.""" + metric_alarms: list[ManagedMetricAlarm] | None = ... + """The CloudWatch metric alarms associated with the Express service.""" + service_security_groups: list[ManagedSecurityGroup] | None = ... + """The security groups managed by the Express service.""" + log_groups: list[ManagedLogGroup] | None = ... + """The log groups managed by the Express service.""" + gateway_connections: list[GatewayConnection] | None = ... + """ + The gateway-managed connections for the service revision, including the + gateway routes and infrastructure that a gateway created for the + service's connector. + """ + +@dataclass(kw_only=True) +class EFSAuthorizationConfig(_SerdeShape): + """The authorization configuration details for the Amazon EFS file system.""" + + access_point_id: str | None = ... + """ + The Amazon EFS access point ID to use. If an access point is specified, + the root directory value specified in the `EFSVolumeConfiguration` must + either be omitted or set to `/` which will enforce the path set on the + EFS access point. If an access point is used, transit encryption must be + on in the `EFSVolumeConfiguration`. For more information, see [Working + with Amazon EFS access + points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) + in the *Amazon Elastic File System User Guide*. + """ + iam: str | None = ... + """ + Determines whether to use the Amazon ECS task role defined in a task + definition when mounting the Amazon EFS file system. If it is turned on, + transit encryption must be turned on in the `EFSVolumeConfiguration`. If + this parameter is omitted, the default value of `DISABLED` is used. For + more information, see [Using Amazon EFS access + points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +class EFSAuthorizationConfigIAM(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +class EFSTransitEncryption(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class EFSVolumeConfiguration(_SerdeShape): + """ + This parameter is specified when you're using an Amazon Elastic File + System file system for task storage. For more information, see [Amazon + EFS + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + file_system_id: str + """The Amazon EFS file system ID to use.""" + root_directory: str | None = ... + """ + The directory within the Amazon EFS file system to mount as the root + directory inside the host. If this parameter is omitted, the root of the + Amazon EFS volume will be used. Specifying `/` will have the same effect + as omitting this parameter. + + Warning: + If an EFS access point is specified in the `authorizationConfig`, the + root directory parameter must either be omitted or set to `/` which will + enforce the path set on the EFS access point. + """ + transit_encryption: str | None = ... + """ + Determines whether to use encryption for Amazon EFS data in transit + between the Amazon ECS host and the Amazon EFS server. Transit + encryption must be turned on if Amazon EFS IAM authorization is used. If + this parameter is omitted, the default value of `DISABLED` is used. For + more information, see [Encrypting data in + transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) + in the *Amazon Elastic File System User Guide*. + """ + transit_encryption_port: int | None = ... + """ + The port to use when sending encrypted data between the Amazon ECS host + and the Amazon EFS server. If you do not specify a transit encryption + port, it will use the port selection strategy that the Amazon EFS mount + helper uses. For more information, see [EFS mount + helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) + in the *Amazon Elastic File System User Guide*. + """ + authorization_config: EFSAuthorizationConfig | None = ... + """The authorization configuration details for the Amazon EFS file system.""" + +@dataclass(kw_only=True) +class ElbGatewayResources(_SerdeShape): + """ + An Application Load Balancer and its associated resources that a gateway + manages. + """ + + load_balancer_arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer.""" + listener_arn: str | None = ... + """The Amazon Resource Name (ARN) of the listener on the load balancer.""" + security_group: str | None = ... + """The ID of the security group attached to the load balancer.""" + gateway_route_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the gateway routes that use this + load balancer for ingress. + """ + +@dataclass(kw_only=True) +class EnvironmentFile(_SerdeShape): + """ + A list of files containing the environment variables to pass to a + container. You can specify up to ten environment files. The file must + have a `.env` file extension. Each line in an environment file should + contain an environment variable in `VARIABLE=VALUE` format. Lines + beginning with `#` are treated as comments and are ignored. + + If there are environment variables specified using the `environment` + parameter in a container definition, they take precedence over the + variables contained within an environment file. If multiple environment + files are specified that contain the same variable, they're processed + from the top down. We recommend that you use unique variable names. For + more information, see [Use a file to pass environment variables to a + container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Environment variable files are objects in Amazon S3 and all Amazon S3 + security considerations apply. + + You must use the following platforms for the Fargate launch type: + + - Linux platform version `1.4.0` or later. + + Consider the following when using the Fargate launch type: + + - The file is handled like a native Docker env-file. + + - There is no support for shell escape handling. + + - The container entry point interperts the `VARIABLE` values. + """ + + value: str + """ + The Amazon Resource Name (ARN) of the Amazon S3 object containing the + environment variable file. + """ + type: str + """ + The file type to use. Environment files are objects in Amazon S3. The + only supported value is `s3`. + """ + +class EnvironmentFileType(UnknownEnumMixin, StrEnum): + S3 = "s3" + +@dataclass(kw_only=True) +class EphemeralStorage(_SerdeShape): + """ + The amount of ephemeral storage to allocate for the task. This parameter + is used to expand the total amount of ephemeral storage available, + beyond the default amount, for tasks hosted on Fargate. For more + information, see [Using data volumes in + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) + in the *Amazon ECS Developer Guide;*. + + Note: + For tasks using the Fargate launch type, the task requires the following + platforms: + + - Linux platform version `1.4.0` or later. + """ + + size_in_gi_b: int = ... + """ + The total amount, in GiB, of ephemeral storage to set for the task. The + minimum supported value is `21` GiB and the maximum supported value is + `200` GiB. + """ + +@dataclass(kw_only=True) +class ExecuteCommandConfiguration(_SerdeShape): + """The details of the execute command configuration.""" + + kms_key_id: str | None = ... + """ + Specify an Key Management Service key ID to encrypt the data between the + local client and the container. + """ + logging: str | None = ... + """ + The log setting to use for redirecting logs for your execute command + results. The following log settings are available. + + - `NONE`: The execute command session is not logged. + + - `DEFAULT`: The `awslogs` configuration in the task definition is used. + If no logging parameter is specified, it defaults to this value. If no + `awslogs` log driver is configured in the task definition, the output + won't be logged. + + - `OVERRIDE`: Specify the logging details as a part of + `logConfiguration`. If the `OVERRIDE` logging option is specified, the + `logConfiguration` is required. + """ + log_configuration: ExecuteCommandLogConfiguration | None = ... + """ + The log configuration for the results of the execute command actions. + The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When + `logging=OVERRIDE` is specified, a `logConfiguration` must be provided. + """ + +@dataclass(kw_only=True) +class ExecuteCommandInput(_SerdeShape): + """Dataclass for ExecuteCommandInput structure.""" + + cluster: str | None = ... + """ + The Amazon Resource Name (ARN) or short name of the cluster the task is + running in. If you do not specify a cluster, the default cluster is + assumed. + """ + container: str | None = ... + """ + The name of the container to execute the command on. A container name + only needs to be specified for tasks containing multiple containers. + """ + command: str | None = ... + """The command to run on the container.""" + interactive: bool = ... + """Use this flag to run your command in interactive mode.""" + task: str | None = ... + """ + The Amazon Resource Name (ARN) or ID of the task the container is part + of. + """ + +@dataclass(kw_only=True) +class ExecuteCommandLogConfiguration(_SerdeShape): + """ + The log configuration for the results of the execute command actions. + The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. + """ + + cloud_watch_log_group_name: str | None = ... + """ + The name of the CloudWatch log group to send logs to. + + Note: + The CloudWatch log group must already be created. + """ + cloud_watch_encryption_enabled: bool = ... + """ + Determines whether to use encryption on the CloudWatch logs. If not + specified, encryption will be off. + """ + s3_bucket_name: str | None = ... + """ + The name of the S3 bucket to send logs to. + + Note: + The S3 bucket must already be created. + """ + s3_encryption_enabled: bool = ... + """ + Determines whether to use encryption on the S3 logs. If not specified, + encryption is not used. + """ + s3_key_prefix: str | None = ... + """An optional folder in the S3 bucket to place logs in.""" + +class ExecuteCommandLogging(UnknownEnumMixin, StrEnum): + NONE = "NONE" + DEFAULT = "DEFAULT" + OVERRIDE = "OVERRIDE" + +@dataclass(kw_only=True) +class ExecuteCommandOutput(_SerdeShape): + """Dataclass for ExecuteCommandOutput structure.""" + + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster.""" + container_arn: str | None = ... + """The Amazon Resource Name (ARN) of the container.""" + container_name: str | None = ... + """The name of the container.""" + interactive: bool = ... + """ + Determines whether the execute command session is running in interactive + mode. Amazon ECS only supports initiating interactive sessions, so you + must specify `true` for this value. + """ + session: Session | None = ... + """ + The details of the SSM session that was created for this instance of + execute-command. + """ + task_arn: str | None = ... + """The Amazon Resource Name (ARN) of the task.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ExpressCpuArchitecture(UnknownEnumMixin, StrEnum): + X86_64 = "X86_64" + ARM64 = "ARM64" + +@dataclass(kw_only=True) +class ExpressGatewayContainer(_SerdeShape): + """ + Defines the configuration for the primary container in an Express + service. This container receives traffic from the Application Load + Balancer and runs your application code. + + The container configuration includes the container image, port mapping, + logging settings, environment variables, and secrets. The container + image is the only required parameter, with sensible defaults provided + for other settings. + """ + + image: str + """ + The image used to start a container. This string is passed directly to + the Docker daemon. Images in the Docker Hub registry are available by + default. Other repositories are specified with either + `repository-url/image:tag` or `repository-url/image@digest`. + + For Express services, the image typically contains a web application + that listens on the specified container port. The image can be stored in + Amazon ECR, Docker Hub, or any other container registry accessible to + your execution role. + """ + container_port: int | None = ... + """ + The port number on the container that receives traffic from the load + balancer. Default is 80. + """ + aws_logs_configuration: ExpressGatewayServiceAwsLogsConfiguration | None = ... + """The log configuration for the container.""" + repository_credentials: ExpressGatewayRepositoryCredentials | None = ... + """ + The configuration for repository credentials for private registry + authentication. + """ + command: list[str] | None = ... + """The command that is passed to the container.""" + environment: list[KeyValuePair] | None = ... + """The environment variables to pass to the container.""" + secrets: list[Secret] | None = ... + """The secrets to pass to the container.""" + +@dataclass(kw_only=True) +class ExpressGatewayRepositoryCredentials(_SerdeShape): + """ + The repository credentials for private registry authentication to pass + to the container. + """ + + credentials_parameter: str | None = ... + """ + The Amazon Resource Name (ARN) of the secret containing the private + repository credentials. + """ + +@dataclass(kw_only=True) +class ExpressGatewayScalingTarget(_SerdeShape): + """ + Defines the auto-scaling configuration for an Express service. This + determines how the service automatically adjusts the number of running + tasks based on demand metrics such as CPU utilization, memory + utilization, or request count per target. + + Auto-scaling helps ensure your application can handle varying levels of + traffic while optimizing costs by scaling down during low-demand + periods. You can specify the minimum and maximum number of tasks, the + scaling metric, and the target value for that metric. + """ + + min_task_count: int | None = ... + """The minimum number of tasks to run in the Express service.""" + max_task_count: int | None = ... + """The maximum number of tasks to run in the Express service.""" + auto_scaling_metric: str | None = ... + """ + The metric used for auto-scaling decisions. The default metric used for + an Express service is `CPUUtilization`. + """ + auto_scaling_target_value: int | None = ... + """ + The target value for the auto-scaling metric. The default value for an + Express service is 60. + """ + +@dataclass(kw_only=True) +class ExpressGatewayServiceAwsLogsConfiguration(_SerdeShape): + """ + Specifies the Amazon CloudWatch Logs configuration for the Express + service container. + """ + + log_group: str + """The name of the CloudWatch Logs log group to send container logs to.""" + log_stream_prefix: str + """ + The prefix for the CloudWatch Logs log stream names. The default for an + Express service is `ecs`. + """ + +@dataclass(kw_only=True) +class ExpressGatewayServiceConfiguration(_SerdeShape): + """ + Represents a specific configuration revision of an Express service, + containing all the settings and parameters for that revision. + """ + + service_revision_arn: str | None = ... + """The ARN of the service revision.""" + execution_role_arn: str | None = ... + """The ARN of the task execution role for the service revision.""" + task_role_arn: str | None = ... + """The ARN of the task role for the service revision.""" + task_definition_arn: str | None = ... + """ + The ARN of the task definition used by this service revision. This is + present for all Express services and reflects the task definition in + use, whether managed by Amazon ECS or provided by the customer. + """ + cpu: str | None = ... + """The CPU allocation for tasks in this service revision.""" + memory: str | None = ... + """The memory allocation for tasks in this service revision.""" + cpu_architecture: str | None = ... + """ + The CPU architecture that the task runs on. + + Valid values: + + - `X86_64` - The x86 64-bit architecture. + + - `ARM64` - The 64-bit ARM architecture. + + Different service revisions can report different architectures. This + value isn't returned when the service uses a customer-provided task + definition that doesn't specify a CPU architecture. + """ + network_configuration: ExpressGatewayServiceNetworkConfiguration | None = ... + """The network configuration for tasks in this service revision.""" + health_check_path: str | None = ... + """The health check path for this service revision.""" + primary_container: ExpressGatewayContainer | None = ... + """The primary container configuration for this service revision.""" + scaling_target: ExpressGatewayScalingTarget | None = ... + """The auto-scaling configuration for this service revision.""" + ingress_paths: list[IngressPathSummary] | None = ... + """The entry point into this service revision.""" + created_at: datetime | None = ... + """The Unix timestamp for when this service revision was created.""" + +class ExpressGatewayServiceInclude(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +@dataclass(kw_only=True) +class ExpressGatewayServiceNetworkConfiguration(_SerdeShape): + """ + The network configuration for an Express service. By default, an Express + service utilizes subnets and security groups associated with the default + VPC. + """ + + security_groups: list[str] | None = ... + """The IDs of the security groups associated with the Express service.""" + subnets: list[str] | None = ... + """The IDs of the subnets associated with the Express service.""" + +class ExpressGatewayServiceScalingMetric(UnknownEnumMixin, StrEnum): + AVERAGE_CPU_UTILIZATION = "AVERAGE_CPU" + AVERAGE_MEMORY_UTILIZATION = "AVERAGE_MEMORY" + REQUEST_COUNT_PER_TARGET = "REQUEST_COUNT_PER_TARGET" + +@dataclass(kw_only=True) +class ExpressGatewayServiceStatus(_SerdeShape): + """ + An object that defines the status of Express service creation and + information about the status of the service. + """ + + status_code: str | None = ... + """The status of the Express service.""" + status_reason: str | None = ... + """Information about why the Express service is in the current status.""" + +class ExpressGatewayServiceStatusCode(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + DRAINING = "DRAINING" + INACTIVE = "INACTIVE" + +@dataclass(kw_only=True) +class Failure(_SerdeShape): + """ + A failed resource. For a list of common causes, see [API failure + reasons](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the failed resource.""" + reason: str | None = ... + """The reason for the failure.""" + detail: str | None = ... + """The details of the failure.""" + +@dataclass(kw_only=True) +class FirelensConfiguration(_SerdeShape): + """ + The FireLens configuration for the container. This is used to specify + and configure a log router for container logs. For more information, see + [Custom log + routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + type: str + """The log router to use. The valid values are `fluentd` or `fluentbit`.""" + options: dict[str, str] | None = ... + """ + The options to use when configuring the log router. This field is + optional and can be used to specify a custom configuration file or to + add additional metadata, such as the task, task definition, cluster, and + container instance details to the log event. If specified, the syntax to + use is + `"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}`. + For more information, see [Creating a task definition that uses a + FireLens + configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + Tasks hosted on Fargate only support the `file` configuration file type. + """ + +class FirelensConfigurationType(UnknownEnumMixin, StrEnum): + FLUENTD = "fluentd" + FLUENTBIT = "fluentbit" + +@dataclass(kw_only=True) +class FSxWindowsFileServerAuthorizationConfig(_SerdeShape): + """ + The authorization configuration details for Amazon FSx for Windows File + Server file system. See + [FSxWindowsFileServerVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html) + in the *Amazon ECS API Reference*. + + For more information and the input format, see [Amazon FSx for Windows + File Server + Volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + credentials_parameter: str + """ + The authorization credential option to use. The authorization credential + options can be provided using either the Amazon Resource Name (ARN) of + an Secrets Manager secret or SSM Parameter Store parameter. The ARN + refers to the stored credentials. + """ + domain: str + """ + A fully qualified domain name hosted by an [Directory + Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) + Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. + """ + +@dataclass(kw_only=True) +class FSxWindowsFileServerVolumeConfiguration(_SerdeShape): + """ + This parameter is specified when you're using [Amazon FSx for Windows + File + Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) + file system for task storage. + + For more information and the input format, see [Amazon FSx for Windows + File Server + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + file_system_id: str + """The Amazon FSx for Windows File Server file system ID to use.""" + root_directory: str + """ + The directory within the Amazon FSx for Windows File Server file system + to mount as the root directory inside the host. + """ + authorization_config: FSxWindowsFileServerAuthorizationConfig + """ + The authorization configuration details for the Amazon FSx for Windows + File Server file system. + """ + +@dataclass(kw_only=True) +class Gateway(_SerdeShape): + """ + The details of a gateway, including its configuration, status, and the + infrastructure settings for its type. + """ + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + name: str | None = ... + """The name of the gateway.""" + status: str | None = ... + """The status of the gateway.""" + status_reason: str | None = ... + """ + A human-readable explanation of the current status. This value is + populated when the gateway is in a failure state, such as + `UPDATE_FAILED`. + """ + failures: list[GatewayResourceFailure] | None = ... + """ + The per-resource failure details for asynchronous gateway processes, + such as an `UpdateGateway` operation that couldn't update every load + balancer. + """ + infrastructure_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that the gateway uses to + manage infrastructure on your behalf. + """ + deletion_protection: bool | None = ... + """Specifies whether deletion protection is enabled for the gateway.""" + configuration: DescribeGatewayConfiguration | None = ... + """The type-specific configuration for the gateway.""" + access_type: str | None = ... + """ + Specifies whether the gateway is publicly accessible (`PUBLIC`) or + private (`PRIVATE`). The gateway derives this value from its scheme when + you create the gateway, and the value is immutable. + """ + propagate_tags: str | None = ... + """ + Specifies whether the gateway propagates its tags to the infrastructure + it manages. + """ + tags: list[Tag] | None = ... + """ + The metadata applied to the gateway. Each tag consists of a key and an + optional value. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the gateway was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the gateway was last updated.""" + +class GatewayAlbDesyncMitigationMode(UnknownEnumMixin, StrEnum): + """ + The desync mitigation mode for a gateway's load balancers, which + determines how the load balancers handle requests that might pose a + security risk. + """ + + MONITOR = "monitor" + """ + The load balancers forward requests that are considered ambiguous but + allow them to be monitored. + """ + DEFENSIVE = "defensive" + """ + The load balancers allow through most requests but drop those that pose + a significant security risk. + """ + STRICTEST = "strictest" + """ + The load balancers allow through only requests that comply with + HTTP/1.1. + """ + +class GatewayAlbProtocol(UnknownEnumMixin, StrEnum): + """The protocol for a gateway's load balancer listener.""" + + HTTP = "HTTP" + """The listener uses HTTP.""" + HTTPS = "HTTPS" + """The listener uses HTTPS.""" + +@dataclass(kw_only=True) +class GatewayAlbTestTrafficRules(_SerdeShape): + """ + The rules that route test traffic to services behind a gateway during + progressive deployments. + """ + + header: GatewayTestTrafficHeader | None = ... + """The header-based rule that identifies test traffic.""" + +class GatewayClusterAssociationStatus(UnknownEnumMixin, StrEnum): + """The status of an association between a gateway and a cluster.""" + + ACTIVE = "ACTIVE" + """The association is active.""" + DISASSOCIATING = "DISASSOCIATING" + """ + The association is being removed and remains in this state until all + gateway routes for the cluster are removed. + """ + INACTIVE = "INACTIVE" + +@dataclass(kw_only=True) +class GatewayClusterAssociationSummary(_SerdeShape): + """A summary of an association between a gateway and a cluster.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster.""" + status: str | None = ... + """The status of the association.""" + +@dataclass +class GatewayConfigurationHostSharedAlb(_SerdeShape): + """ + The configuration for a host-based, shared Application Load Balancer + gateway. Each service that uses the gateway is assigned a unique DNS + host name. + """ + + value: HostSharedAlbConfiguration + +@dataclass +class GatewayConfigurationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GatewayConfiguration = Union[ + GatewayConfigurationHostSharedAlb | GatewayConfigurationUnknown +] +""" +The type-specific configuration for a gateway that you provide when you +create it. Exactly one variant is set, and it determines the gateway +type. +""" + +class _GatewayConfigurationDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> GatewayConfiguration: ... + +@dataclass(kw_only=True) +class GatewayConnection(_SerdeShape): + """ + A gateway-managed connection for a service revision. A connection + represents the association between the service's gateway connector and + a specific gateway, along with the infrastructure that the gateway + created for it. + """ + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + gateway_route_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway route for the connection.""" + port_name: str | None = ... + """ + The name of the service port that receives gateway-managed ingress + traffic. + """ + service_url: str | None = ... + """The URL that the gateway uses to route ingress traffic to the service.""" + access_type: str | None = ... + """ + The access type of the gateway ingress path. + + Valid values: + + - `PUBLIC` - The ingress path is publicly accessible. + + - `PRIVATE` - The ingress path is only accessible privately. + """ + status: str | None = ... + """The status of the gateway route for the connection.""" + resources: GatewayConnectionResources | None = ... + """The gateway-managed infrastructure resources for the connection.""" + +@dataclass(kw_only=True) +class GatewayConnectionAlbResources(_SerdeShape): + """ + The Application Load Balancer resources that a gateway created and + manages for a connection. + """ + + acm_certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Certificate + Manager certificate that is attached to the load balancer listener. + """ + load_balancer_arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer.""" + load_balancer_security_group_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the security groups that the gateway + attaches to the load balancer. + """ + listener_arn: str | None = ... + """The Amazon Resource Name (ARN) of the listener on the load balancer.""" + listener_rule_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the listener rule that routes + production traffic to the service. + """ + test_listener_rule_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the listener rule that routes test + traffic to the service during progressive deployments. + """ + target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the target group that receives + production traffic. + """ + alternate_target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the alternate target group that the + gateway uses during progressive deployments. + """ + +@dataclass +class GatewayConnectionResourcesHostSharedAlb(_SerdeShape): + """ + The Application Load Balancer resources for a host-based, shared ALB + gateway. + """ + + value: list[GatewayConnectionAlbResources] + +@dataclass +class GatewayConnectionResourcesUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GatewayConnectionResources = Union[ + GatewayConnectionResourcesHostSharedAlb | GatewayConnectionResourcesUnknown +] +""" +The gateway-managed infrastructure resources for a connection, as a +union keyed by gateway type. +""" + +class _GatewayConnectionResourcesDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> GatewayConnectionResources: ... + +@dataclass(kw_only=True) +class GatewayConnector(_SerdeShape): + """ + A gateway connector that attaches an Amazon ECS service to a gateway + ingress path. The connector specifies the service port that receives + gateway-managed ingress traffic, along with the health check and traffic + filters that the gateway applies. A service can have at most one gateway + connector. + """ + + port_name: str + """The name of the service port that the gateway routes ingress traffic to.""" + health_check: GatewayConnectorHealthCheck | None = ... + """ + The health check that the gateway uses to determine whether the targets + for this connector are healthy. + """ + filters: GatewayConnectorFilters | None = ... + """ + The filters that control which gateway ingress paths the connector + applies to. + """ + +@dataclass(kw_only=True) +class GatewayConnectorFilters(_SerdeShape): + """ + The filters that determine which gateway ingress paths a connector + applies to. + """ + + access_types: list[str] | None = ... + """ + The access types of the gateway ingress paths that the connector applies + to. + + The access type can be one of the following values: + + - `PUBLIC` - The ingress path is publicly accessible. + + - `PRIVATE` - The ingress path is only accessible privately. + """ + +@dataclass(kw_only=True) +class GatewayConnectorHealthCheck(_SerdeShape): + """ + The health check configuration that a gateway uses to evaluate the + targets associated with a gateway connector. + """ + + health_check_protocol: str | None = ... + """ + The protocol that the gateway uses to perform health checks. + + Valid values: + + - `HTTP` - Health checks are performed over HTTP. + + - `HTTPS` - Health checks are performed over HTTPS. + """ + health_check_port: int | None = ... + """The port that the gateway uses to perform health checks on the targets.""" + health_check_path: str | None = ... + """The destination path for health check requests.""" + health_check_timeout_seconds: int | None = ... + """ + The amount of time, in seconds, during which no response from a target + means a failed health check. + """ + health_check_interval_seconds: int | None = ... + """ + The approximate amount of time, in seconds, between health checks of an + individual target. + """ + healthy_threshold_count: int | None = ... + """ + The number of consecutive successful health checks that a target must + pass before the gateway considers it healthy. + """ + unhealthy_threshold_count: int | None = ... + """ + The number of consecutive failed health checks that a target must fail + before the gateway considers it unhealthy. + """ + matcher: GatewayConnectorHealthCheckMatcher | None = ... + """ + The HTTP or gRPC codes that indicate a successful health check response + from a target. + """ + +@dataclass(kw_only=True) +class GatewayConnectorHealthCheckMatcher(_SerdeShape): + """ + The codes that indicate a successful health check response from a + target. + """ + + http_code: str | None = ... + """The HTTP codes that indicate a successful response from a target.""" + grpc_code: str | None = ... + """The gRPC codes that indicate a successful response from a target.""" + +class GatewayConnectorHealthCheckProtocol(UnknownEnumMixin, StrEnum): + """ + The protocol that a gateway uses to perform health checks on connector + targets. + """ + + HTTP = "HTTP" + """The gateway performs health checks over HTTP.""" + HTTPS = "HTTPS" + """The gateway performs health checks over HTTPS.""" + +@dataclass(kw_only=True) +class GatewayElbAccessLogConfiguration(_SerdeShape): + """ + The access log configuration for the load balancers that a gateway + manages. + """ + + destination: GatewayElbAccessLogDestination | None = ... + """The destination where access logs are delivered.""" + +@dataclass +class GatewayElbAccessLogDestinationS3(_SerdeShape): + """The Amazon S3 destination for access logs.""" + + value: GatewayElbAccessLogS3Destination + +@dataclass +class GatewayElbAccessLogDestinationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GatewayElbAccessLogDestination = Union[ + GatewayElbAccessLogDestinationS3 | GatewayElbAccessLogDestinationUnknown +] +""" +The destination where the access logs for a gateway's load balancers +are delivered. +""" + +class _GatewayElbAccessLogDestinationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> GatewayElbAccessLogDestination: ... + +@dataclass(kw_only=True) +class GatewayElbAccessLogS3Destination(_SerdeShape): + """ + The Amazon S3 destination for the access logs of a gateway's load + balancers. + """ + + bucket: str + """The name of the Amazon S3 bucket where access logs are delivered.""" + prefix: str | None = ... + """The object key prefix for the access logs in the Amazon S3 bucket.""" + +class GatewayElbIpAddressType(UnknownEnumMixin, StrEnum): + """The IP address type for the load balancers that a gateway manages.""" + + IPV4 = "ipv4" + """The load balancers use IPv4 addresses only.""" + DUALSTACK = "dualstack" + """The load balancers use both IPv4 and IPv6 addresses.""" + DUALSTACK_WITHOUT_PUBLIC_IPV4 = "dualstack-without-public-ipv4" + """ + The load balancers use IPv6 addresses and private IPv4 addresses, + without public IPv4 addresses. + """ + +@dataclass(kw_only=True) +class GatewayElbNetworkConfiguration(_SerdeShape): + """The network configuration for the load balancers that a gateway manages.""" + + inbound_security_group: str | None = ... + """ + The ID of a security group that you provide to control inbound traffic + to the load balancers that the gateway manages. When you specify a + security group, the gateway doesn't create inbound rules on the + security group it manages. + """ + subnets: list[str] | None = ... + """ + The subnets for the load balancers that the gateway manages. The default + is the subnets in the default VPC. + """ + ip_address_type: str | None = ... + """ + The IP address type for the load balancers that the gateway manages. The + default is `dualstack`. + """ + +class GatewayElbScheme(UnknownEnumMixin, StrEnum): + """ + Specifies whether the load balancers that a gateway manages are + internet-facing or internal. + """ + + INTERNET_FACING = "internet-facing" + """The load balancers are internet-facing.""" + INTERNAL = "internal" + """The load balancers are internal.""" + +@dataclass +class GatewayInfrastructureResourcesHostSharedAlb(_SerdeShape): + """ + The Application Load Balancer resource groups for a host-based, shared + ALB gateway. + """ + + value: list[ElbGatewayResources] + +@dataclass +class GatewayInfrastructureResourcesUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GatewayInfrastructureResources = Union[ + GatewayInfrastructureResourcesHostSharedAlb | GatewayInfrastructureResourcesUnknown +] +""" +The gateway-managed infrastructure in a `DescribeGatewayResources` +response, as a union keyed by gateway type. +""" + +class _GatewayInfrastructureResourcesDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> GatewayInfrastructureResources: ... + +@dataclass(kw_only=True) +class GatewayNotFoundException(ServiceError, _SerdeShape): + """ + The specified gateway wasn't found. Check that the gateway name or ARN + is correct and that the gateway exists in your account and Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GatewayOperationError(_SerdeShape): + """A single failed operation against a resource that a gateway manages.""" + + operation: str | None = ... + """ + The IAM-style action identifier of the operation that failed, such as + `elasticloadbalancing:ModifyLoadBalancerAttributes`. + """ + code: str | None = ... + """ + The error code returned by the failed operation, passed through from the + downstream service, such as `AccessDenied`. + """ + message: str | None = ... + """The detailed error message.""" + +@dataclass(kw_only=True) +class GatewayResourceFailure(_SerdeShape): + """ + The failures for a single resource that was touched by an asynchronous + gateway process. + """ + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource that failed to update, + such as a load balancer ARN. + """ + errors: list[GatewayOperationError] | None = ... + """The errors that were encountered while operating on the resource.""" + +@dataclass(kw_only=True) +class GatewayResources(_SerdeShape): + """ + `DescribeGatewayResources` returns the gateway-managed infrastructure, + grouped by gateway type. + """ + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + resources: GatewayInfrastructureResources | None = ... + """The infrastructure resources that the gateway manages.""" + +@dataclass(kw_only=True) +class GatewayRoute(_SerdeShape): + """ + A gateway route, which represents the association between a service and + a gateway and the service-specific infrastructure that the gateway + manages for the service's revisions. + """ + + gateway_route_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway route.""" + service_arn: str | None = ... + """The Amazon Resource Name (ARN) of the service associated with the route.""" + service_container_port_name: str | None = ... + """ + The task definition container port name that the route targets on the + service. + """ + status: str | None = ... + """The status of the gateway route.""" + service_url: str | None = ... + """The URL for accessing the service, including the `https://` scheme.""" + resources: GatewayRouteResources | None = ... + """ + The service-specific infrastructure that the gateway manages for the + route, keyed by gateway type. + """ + +@dataclass(kw_only=True) +class GatewayRouteAlbResources(_SerdeShape): + """ + The Application Load Balancer resources that a gateway manages for a + route. + """ + + acm_certificate_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Certificate + Manager certificate. + """ + load_balancer_arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer.""" + listener_arn: str | None = ... + """The Amazon Resource Name (ARN) of the listener.""" + listener_rule_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the listener rule for production + traffic. + """ + test_listener_rule_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the listener rules for test traffic. + There is one rule except when a test header configuration is being + changed to another. + """ + load_balancer_security_groups: ( + list[GatewayRouteLoadBalancerSecurityGroup] | None + ) = ... + """The security groups attached to the load balancer.""" + service_security_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the service security group in which + the gateway manages the ingress rule for this route. + """ + +@dataclass(kw_only=True) +class GatewayRouteLoadBalancerSecurityGroup(_SerdeShape): + """A security group attached to the load balancer for a gateway route.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the security group.""" + rule_arns: list[str] | None = ... + """The Amazon Resource Names (ARNs) of the security group rules.""" + +@dataclass +class GatewayRouteResourcesHostSharedAlb(_SerdeShape): + """ + The Application Load Balancer resources for a host-based, shared ALB + gateway. + """ + + value: list[GatewayRouteAlbResources] + +@dataclass +class GatewayRouteResourcesUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +GatewayRouteResources = Union[ + GatewayRouteResourcesHostSharedAlb | GatewayRouteResourcesUnknown +] +""" +The service-specific infrastructure that a gateway manages for a route, +keyed by gateway type. +""" + +class _GatewayRouteResourcesDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> GatewayRouteResources: ... + +class GatewayRouteStatus(UnknownEnumMixin, StrEnum): + """The status of a gateway route.""" + + ACTIVE = "ACTIVE" + """The gateway route is active and routing traffic.""" + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + """The gateway route is being created.""" + CREATE_FAILED = "CREATE_FAILED" + """The gateway route couldn't be created.""" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + """The gateway route is being updated.""" + UPDATE_FAILED = "UPDATE_FAILED" + """The gateway route couldn't be updated.""" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + """The gateway route is being deleted.""" + DELETE_FAILED = "DELETE_FAILED" + """The gateway route couldn't be deleted.""" + +@dataclass(kw_only=True) +class GatewayRouteSummary(_SerdeShape): + """ + A summary of a gateway route that is returned by the `ListGatewayRoutes` + operation. + """ + + gateway_route_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway route.""" + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster.""" + service_arn: str | None = ... + """The Amazon Resource Name (ARN) of the service.""" + service_container_port_name: str | None = ... + """ + The task definition container port name that the route targets on the + service. + """ + status: str | None = ... + """The status of the gateway route.""" + +class GatewayStatus(UnknownEnumMixin, StrEnum): + """The status of a gateway.""" + + ACTIVE = "ACTIVE" + """The gateway is active and available for use.""" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + """An update to the gateway is in progress.""" + UPDATE_COMPLETE = "UPDATE_COMPLETE" + """The update to the gateway completed successfully.""" + UPDATE_FAILED = "UPDATE_FAILED" + """The update to the gateway failed. See `statusReason` for details.""" + DELETED = "DELETED" + """The gateway is deleted.""" + +@dataclass(kw_only=True) +class GatewaySummary(_SerdeShape): + """A summary of a gateway that is returned by the `ListGateways` operation.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + name: str | None = ... + """The name of the gateway.""" + status: str | None = ... + """The status of the gateway.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the gateway was created.""" + +@dataclass(kw_only=True) +class GatewayTestTrafficHeader(_SerdeShape): + """ + A header-based rule that identifies test traffic for progressive + deployments. + """ + + name: str + """The name of the header to match for test traffic routing.""" + values: list[str] + """The header values to match for test traffic routing.""" + +@dataclass(kw_only=True) +class GetTaskProtectionInput(_SerdeShape): + """Dataclass for GetTaskProtectionInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task sets exist in. + """ + tasks: list[str] | None = ... + """A list of up to 100 task IDs or full ARN entries.""" + +@dataclass(kw_only=True) +class GetTaskProtectionOutput(_SerdeShape): + """Dataclass for GetTaskProtectionOutput structure.""" + + protected_tasks: list[ProtectedTask] | None = ... + """ + A list of tasks with the following information. + + - `taskArn`: The task ARN. + + - `protectionEnabled`: The protection status of the task. If scale-in + protection is turned on for a task, the value is `true`. Otherwise, it + is `false`. + + - `expirationDate`: The epoch time when protection for the task will + expire. + """ + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GpuDevice(_SerdeShape): + """ + The state of a GPU on a container instance, including its sharing mode + and the memory that's available for new containers. + """ + + gpu_id: str | None = ... + """ + The ID of the GPU. This ID matches the GPU IDs in the `gpuIds` of the + containers that Amazon ECS assigned to the GPU. + """ + sharing_mode: str | None = ... + """ + How the GPU is shared between containers. + + Valid values: + + - `IDLE` - No containers are assigned to the GPU, and all of its memory + is available. + + - `NVIDIA_MPS` - One or more containers share the GPU by using NVIDIA + Multi-Process Service (MPS). + + - `DEDICATED` - One container has exclusive use of the GPU. + """ + total_memory_in_mi_b: int | None = ... + """ + The total amount of GPU memory, in MiB, that the Amazon ECS container + agent reported for the GPU. This is the memory that's available to + containers, and it can be less than the nominal memory of the GPU. + """ + remaining_memory_in_mi_b: int | None = ... + """ + The amount of GPU memory, in MiB, that's available to allocate to new + containers that use the `nvidiaMps` sharing strategy. Amazon ECS + calculates this value from the memory that it allocated to containers on + the GPU, not from the memory that the containers use. + """ + container_count: int | None = ... + """ + The number of containers that Amazon ECS assigned to the GPU. This value + is `0` when the sharing mode is `IDLE` and `1` when the sharing mode is + `DEDICATED`. Amazon ECS counts the containers that it assigned to the + GPU, not the processes that are running on it. + """ + +class GpuSharingMode(UnknownEnumMixin, StrEnum): + """ + Describes how a GPU on a container instance is shared between + containers. + """ + + IDLE = "IDLE" + """ + No containers are assigned to the GPU, and all of its memory is + available. + """ + NVIDIA_MPS = "NVIDIA_MPS" + """ + One or more containers share the GPU by using NVIDIA Multi-Process + Service (MPS). While the GPU is in this mode, Amazon ECS assigns it only + to containers that use the `nvidiaMps` sharing strategy. + """ + DEDICATED = "DEDICATED" + """ + One container has exclusive use of the GPU. Amazon ECS assigns GPUs this + way to containers that specify `value` instead of `sharingStrategy` for + the `GPU` resource type. + """ + +@dataclass(kw_only=True) +class HealthCheck(_SerdeShape): + """ + An object representing a container health check. Health check parameters + that are specified in a container definition override any Docker health + checks that exist in the container image (such as those specified in a + parent image or from the image's Dockerfile). This configuration maps + to the `HEALTHCHECK` parameter of docker run. + + Note: + The Amazon ECS container agent only monitors and reports on the health + checks specified in the task definition. Amazon ECS does not monitor + Docker health checks that are embedded in a container image and not + specified in the container definition. Health check parameters that are + specified in a container definition override any Docker health checks + that exist in the container image. + + You can view the health status of both individual containers and a task + with the DescribeTasks API operation or when viewing the task details in + the console. + + The health check is designed to make sure that your containers survive + agent restarts, upgrades, or temporary unavailability. + + Amazon ECS performs health checks on containers with the default that + launched the container instance or the task. + + The following describes the possible `healthStatus` values for a + container: + + - `HEALTHY`-The container health check has passed successfully. + + - `UNHEALTHY`-The container health check has failed. + + - `UNKNOWN`-The container health check is being evaluated, there's no + container health check defined, or Amazon ECS doesn't have the health + status of the container. + + The following describes the possible `healthStatus` values based on the + container health checker status of essential containers in the task with + the following priority order (high to low): + + - `UNHEALTHY`-One or more essential containers have failed their health + check. + + - `UNKNOWN`-Any essential container running within the task is in an + `UNKNOWN` state and no other essential containers have an `UNHEALTHY` + state. + + - `HEALTHY`-All essential containers within the task have passed their + health checks. + + Consider the following task health example with 2 containers. + + - If Container1 is `UNHEALTHY` and Container2 is `UNKNOWN`, the task + health is `UNHEALTHY`. + + - If Container1 is `UNHEALTHY` and Container2 is `HEALTHY`, the task + health is `UNHEALTHY`. + + - If Container1 is `HEALTHY` and Container2 is `UNKNOWN`, the task + health is `UNKNOWN`. + + - If Container1 is `HEALTHY` and Container2 is `HEALTHY`, the task + health is `HEALTHY`. + + Consider the following task health example with 3 containers. + + - If Container1 is `UNHEALTHY` and Container2 is `UNKNOWN`, and + Container3 is `UNKNOWN`, the task health is `UNHEALTHY`. + + - If Container1 is `UNHEALTHY` and Container2 is `UNKNOWN`, and + Container3 is `HEALTHY`, the task health is `UNHEALTHY`. + + - If Container1 is `UNHEALTHY` and Container2 is `HEALTHY`, and + Container3 is `HEALTHY`, the task health is `UNHEALTHY`. + + - If Container1 is `HEALTHY` and Container2 is `UNKNOWN`, and Container3 + is `HEALTHY`, the task health is `UNKNOWN`. + + - If Container1 is `HEALTHY` and Container2 is `UNKNOWN`, and Container3 + is `UNKNOWN`, the task health is `UNKNOWN`. + + - If Container1 is `HEALTHY` and Container2 is `HEALTHY`, and Container3 + is `HEALTHY`, the task health is `HEALTHY`. + + If a task is run manually, and not as part of a service, the task will + continue its lifecycle regardless of its health status. For tasks that + are part of a service, if the task reports as unhealthy then the task + will be stopped and the service scheduler will replace it. + + When a container health check fails for a task that is part of a + service, the following process occurs: + + 1. The task is marked as `UNHEALTHY`. + + 2. The unhealthy task will be stopped, and during the stopping process, + it will go through the following states: + + - `DEACTIVATING` - In this state, Amazon ECS performs additional + steps before stopping the task. For example, for tasks that are + part of services configured to use Elastic Load Balancing target + groups, target groups will be deregistered in this state. + + - `STOPPING` - The task is in the process of being stopped. + + - `DEPROVISIONING` - Resources associated with the task are being + cleaned up. + + - `STOPPED` - The task has been completely stopped. + + 3. After the old task stops, a new task will be launched to ensure + service operation, and the new task will go through the following + lifecycle: + + - `PROVISIONING` - Resources required for the task are being + provisioned. + + - `PENDING` - The task is waiting to be placed on a container + instance. + + - `ACTIVATING` - In this state, Amazon ECS pulls container images, + creates containers, configures task networking, registers load + balancer target groups, and configures service discovery status. + + - `RUNNING` - The task is running and performing its work. + + For more detailed information about task lifecycle states, see [Task + lifecycle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle-explanation.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The following are notes about container health check support: + + - If the Amazon ECS container agent becomes disconnected from the Amazon + ECS service, this won't cause a container to transition to an + `UNHEALTHY` status. This is by design, to ensure that containers + remain running during agent restarts or temporary unavailability. The + health check status is the \"last heard from\" response from the + Amazon ECS agent, so if the container was considered `HEALTHY` prior + to the disconnect, that status will remain until the agent reconnects + and another health check occurs. There are no assumptions made about + the status of the container health checks. + + - Container health checks require version `1.17.0` or greater of the + Amazon ECS container agent. For more information, see [Updating the + Amazon ECS container + agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + + - Container health checks are supported for Fargate tasks if you're + using platform version `1.1.0` or greater. For more information, see + [Fargate platform + versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + + - Container health checks aren't supported for tasks that are part of a + service that's configured to use a Classic Load Balancer. + + For an example of how to specify a task definition with multiple + containers where container dependency is specified, see [Container + dependency](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-containerdependency) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + command: list[str] + """ + A string array representing the command that the container runs to + determine if it is healthy. The string array must start with `CMD` to + run the command arguments directly, or `CMD-SHELL` to run the command + with the container's default shell. + + When you use the Amazon Web Services Management Console JSON panel, the + Command Line Interface, or the APIs, enclose the list of commands in + double quotes and brackets. + + `[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]` + + You don't include the double quotes and brackets when you use the + Amazon Web Services Management Console. + + ` CMD-SHELL, curl -f http://localhost/ || exit 1` + + An exit code of 0 indicates success, and non-zero exit code indicates + failure. For more information, see `HealthCheck` in the docker container + create command. + """ + interval: int | None = ... + """ + The time period in seconds between each health check execution. You may + specify between 5 and 300 seconds. The default value is 30 seconds. This + value applies only when you specify a `command`. + """ + timeout: int | None = ... + """ + The time period in seconds to wait for a health check to succeed before + it is considered a failure. You may specify between 2 and 60 seconds. + The default value is 5. This value applies only when you specify a + `command`. + """ + retries: int | None = ... + """ + The number of times to retry a failed health check before the container + is considered unhealthy. You may specify between 1 and 10 retries. The + default value is 3. This value applies only when you specify a + `command`. + """ + start_period: int | None = ... + """ + The optional grace period to provide containers time to bootstrap before + failed health checks count towards the maximum number of retries. You + can specify between 0 and 300 seconds. By default, the `startPeriod` is + off. This value applies only when you specify a `command`. + + Note: + If a health check succeeds within the `startPeriod`, then the container + is considered healthy and any subsequent failures count toward the + maximum number of retries. + """ + +class HealthStatus(UnknownEnumMixin, StrEnum): + HEALTHY = "HEALTHY" + UNHEALTHY = "UNHEALTHY" + UNKNOWN = "UNKNOWN" + +@dataclass(kw_only=True) +class HostEntry(_SerdeShape): + """ + Hostnames and IP address entries that are added to the `/etc/hosts` file + of a container via the `extraHosts` parameter of its + [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). + """ + + hostname: str + """The hostname to use in the `/etc/hosts` entry.""" + ip_address: str + """The IP address to use in the `/etc/hosts` entry.""" + +@dataclass(kw_only=True) +class HostSharedAlbConfiguration(_SerdeShape): + """ + The configuration for a gateway that uses shared Application Load + Balancers with host-based routing. Where they apply, the field names and + values are kept consistent with the Elastic Load Balancing API. + """ + + network_configuration: GatewayElbNetworkConfiguration | None = ... + """ + The network configuration for the load balancers that the gateway + manages. + """ + scheme: str | None = ... + """ + Specifies whether the load balancers the gateway manages are + `internet-facing` or `internal`. The default is `internet-facing`. + """ + web_acl_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the WAF web ACL to associate with the + load balancers that the gateway manages. + """ + access_logs: GatewayElbAccessLogConfiguration | None = ... + """ + The access log configuration for the load balancers that the gateway + manages. + """ + port: int | None = ... + """ + The port that the load balancer listener uses is 443. The gateway + supports only HTTPS at port 443. + """ + protocol: str | None = ... + """ + The protocol for the load balancer listener is `HTTPS`. No other + protocol is supported. + """ + max_alb_count: int | None = ... + """ + The maximum number of Application Load Balancers that the gateway + manages. The default is 10. + """ + http_desync: str | None = ... + """ + The desync mitigation mode for the load balancers that the gateway + manages, which determines how the load balancers handle requests that + might pose a security risk. The default is `defensive`. + """ + test_traffic_rules: GatewayAlbTestTrafficRules | None = ... + """ + The rules that route test traffic for progressive deployments. During a + progressive deployment, requests whose headers match these rules are + routed to the new service revision so that it can be validated before + production traffic shifts to it. + """ + +@dataclass(kw_only=True) +class HostVolumeProperties(_SerdeShape): + """Details on a container instance bind mount host volume.""" + + source_path: str | None = ... + """ + When the `host` parameter is used, specify a `sourcePath` to declare the + path on the host container instance that's presented to the container. + If this parameter is empty, then the Docker daemon has assigned a host + path for you. If the `host` parameter contains a `sourcePath` file + location, then the data volume persists at the specified location on the + host container instance until you delete it manually. If the + `sourcePath` value doesn't exist on the host container instance, the + Docker daemon creates it. If the location does exist, the contents of + the source path folder are exported. + + If you're using the Fargate launch type, the `sourcePath` parameter is + not supported. + """ + +@dataclass(kw_only=True) +class InferenceAccelerator(_SerdeShape): + """ + Details on an Elastic Inference accelerator. For more information, see + [Working with Amazon Elastic Inference on Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-inference.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + device_name: str + """ + The Elastic Inference accelerator device name. The `deviceName` must + also be referenced in a container definition as a + [ResourceRequirement](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html). + """ + device_type: str + """The Elastic Inference accelerator type to use.""" + +@dataclass(kw_only=True) +class InferenceAcceleratorOverride(_SerdeShape): + """ + Details on an Elastic Inference accelerator task override. This + parameter is used to override the Elastic Inference accelerator + specified in the task definition. For more information, see [Working + with Amazon Elastic Inference on Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-inference.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + device_name: str | None = ... + """ + The Elastic Inference accelerator device name to override for the task. + This parameter must match a `deviceName` specified in the task + definition. + """ + device_type: str | None = ... + """The Elastic Inference accelerator type to use.""" + +@dataclass(kw_only=True) +class InfrastructureOptimization(_SerdeShape): + """ + The configuration that controls how Amazon ECS optimizes your + infrastructure. + """ + + scale_in_after: int | None = ... + """ + This parameter defines the number of seconds Amazon ECS Managed + Instances waits before optimizing EC2 instances that have become idle or + underutilized. A longer delay increases the likelihood of placing new + tasks on idle or underutilized instances instances, reducing startup + time. A shorter delay helps reduce infrastructure costs by optimizing + idle or underutilized instances,instances more quickly. + + Valid values are: + + - `null` - Uses the default optimization behavior. + + - `-1` - Disables automatic infrastructure optimization. + + - A value between `0` and `3600` (inclusive) - Specifies the number of + seconds to wait before optimizing instances. + """ + +@dataclass(kw_only=True) +class IngressPathSummary(_SerdeShape): + """The entry point into an Express service.""" + + access_type: str + """The type of access to the endpoint for the Express service.""" + endpoint: str + """The endpoint for access to the service.""" + +class InstanceGeneration(UnknownEnumMixin, StrEnum): + CURRENT = "current" + PREVIOUS = "previous" + +@dataclass(kw_only=True) +class InstanceHealthCheckResult(_SerdeShape): + """ + An object representing the result of a container instance health status + check. + """ + + type: str | None = ... + """The type of container instance health status that was verified.""" + status: str | None = ... + """The container instance health status.""" + status_reason: str | None = ... + """The reason for the container instance health status.""" + last_updated: datetime | None = ... + """ + The Unix timestamp for when the container instance health status was + last updated. + """ + last_status_change: datetime | None = ... + """ + The Unix timestamp for when the container instance health status last + changed. + """ + +class InstanceHealthCheckState(UnknownEnumMixin, StrEnum): + OK = "OK" + IMPAIRED = "IMPAIRED" + INSUFFICIENT_DATA = "INSUFFICIENT_DATA" + INITIALIZING = "INITIALIZING" + +class InstanceHealthCheckType(UnknownEnumMixin, StrEnum): + CONTAINER_RUNTIME = "CONTAINER_RUNTIME" + ACCELERATED_COMPUTE = "ACCELERATED_COMPUTE" + DAEMON = "DAEMON" + AGENT_CONNECTIVITY = "AGENT_CONNECTIVITY" + +@dataclass(kw_only=True) +class InstanceLaunchTemplate(_SerdeShape): + """ + The launch template configuration for Amazon ECS Managed Instances. This + defines how Amazon ECS launches Amazon EC2 instances, including the + instance profile for your tasks, network and storage configuration, + capacity options, and instance requirements for flexible instance type + selection. + """ + + ec2_instance_profile_arn: str + """ + The Amazon Resource Name (ARN) of the instance profile that Amazon ECS + applies to Amazon ECS Managed Instances. This instance profile must + include the necessary permissions for your tasks to access Amazon Web + Services services and resources. + + For more information, see [Amazon ECS instance profile for Managed + Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html) + in the *Amazon ECS Developer Guide*. + """ + network_configuration: ManagedInstancesNetworkConfiguration + """ + The network configuration for Amazon ECS Managed Instances. This + specifies the subnets and security groups that instances use for network + connectivity. + """ + storage_configuration: ManagedInstancesStorageConfiguration | None = ... + """ + The storage configuration for Amazon ECS Managed Instances. This defines + the data volume properties for the instances. + """ + local_storage_configuration: ManagedInstancesLocalStorageConfiguration | None = ... + """ + The local storage configuration for Amazon ECS Managed Instances. This + defines how ECS uses instance store volumes available on the container + instance. + """ + monitoring: str | None = ... + """ + CloudWatch provides two categories of monitoring: basic monitoring and + detailed monitoring. By default, your managed instance is configured for + basic monitoring. You can optionally enable detailed monitoring to help + you more quickly identify and act on operational issues. You can enable + or turn off detailed monitoring at launch or when the managed instance + is running or stopped. For more information, see [Detailed monitoring + for Amazon ECS Managed + Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html) + in the Amazon ECS Developer Guide. + """ + capacity_option_type: str | None = ... + """ + The capacity option type. This determines whether Amazon ECS launches + On-Demand, Spot or Capacity Reservation Instances for your managed + instance capacity provider. + + Valid values are: + + - `ON_DEMAND` - Launches standard On-Demand Instances. On-Demand + Instances provide predictable pricing and availability. + + - `SPOT` - Launches Spot Instances that use spare Amazon EC2 capacity at + reduced cost. Spot Instances can be interrupted by Amazon EC2 with a + two-minute notification when the capacity is needed back. + + - `RESERVED` - Launches Instances using Amazon EC2 Capacity + Reservations. Capacity Reservations allow you to reserve compute + capacity for Amazon EC2 instances in a specific Availability Zone. + + The default is On-Demand + + For more information about Amazon EC2 capacity options, see [Instance + purchasing + options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html) + in the *Amazon EC2 User Guide*. + """ + instance_metadata_tags_propagation: bool | None = ... + """ + Determines whether tags are propagated to the instance metadata service + (IMDS) for Amazon EC2 instances launched by the Managed Instances + capacity provider. When enabled, all tags associated with the instance + are available through the instance metadata service. When disabled, tags + are not propagated to IMDS. + + Disable this setting if your tags contain characters that are not + compatible with IMDS, such as `/`. IMDS requires tag keys to match the + pattern `[0-9a-zA-Z\\-_+=,.@:]{1,255}`. + + The default value is `true`. + + For more information, see [Work with instance tags in instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) + in the *Amazon EC2 User Guide*. + """ + instance_requirements: InstanceRequirementsRequest | None = ... + """ + The instance requirements. You can specify: + + - The instance types + + - Instance requirements such as vCPU count, memory, network performance, + and accelerator specifications + + Amazon ECS automatically selects the instances that match the specified + criteria. + """ + fips_enabled: bool | None = ... + """ + Determines whether to enable FIPS 140-2 validated cryptographic modules + on EC2 instances launched by the capacity provider. If `true`, instances + use FIPS-compliant cryptographic algorithms and modules for enhanced + security compliance. If `false`, instances use standard cryptographic + implementations. + + If not specified, instances are launched with FIPS enabled in Amazon Web + Services GovCloud (US) regions and FIPS disabled in other regions. + """ + capacity_reservations: CapacityReservationRequest | None = ... + """ + Capacity reservation specifications. You can specify: + + - Capacity reservation preference + + - Reservation resource group to be used for targeted capacity + reservations + + Amazon ECS will launch instances according to the specified criteria. + """ + nitro_enclaves_enabled: bool | None = ... + """ + Specifies whether instances that this capacity provider launches have + [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html) + enabled. Enable this setting to run tasks that use the + `ISOLATED_SANDBOX` or `CONFIDENTIAL_SANDBOX` isolation mode. + + When you enable this setting, the capacity provider must include at + least one instance type that supports Nitro Sandbox. You can't enable + this setting together with local storage (the `useLocalStorage` setting + in `localStorageConfiguration`). + + The default value is `false`. + + For more information, see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class InstanceLaunchTemplateUpdate(_SerdeShape): + """ + The updated launch template configuration for Amazon ECS Managed + Instances. You can modify the instance profile, network configuration, + storage settings, and instance requirements. Changes apply to new + instances launched after the update. + + For more information, see [Store instance launch parameters in Amazon + EC2 launch + templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + """ + + ec2_instance_profile_arn: str | None = ... + """ + The updated Amazon Resource Name (ARN) of the instance profile. The new + instance profile must have the necessary permissions for your tasks. + + For more information, see [Amazon ECS instance profile for Managed + Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html) + in the *Amazon ECS Developer Guide*. + """ + network_configuration: ManagedInstancesNetworkConfiguration | None = ... + """ + The updated network configuration for Amazon ECS Managed Instances. + Changes to subnets and security groups affect new instances launched + after the update. + """ + storage_configuration: ManagedInstancesStorageConfiguration | None = ... + """ + The updated storage configuration for Amazon ECS Managed Instances. + Changes to storage settings apply to new instances launched after the + update. + """ + instance_metadata_tags_propagation: bool | None = ... + """ + Determines whether tags are propagated to the instance metadata service + (IMDS) for Amazon EC2 instances launched by the Managed Instances + capacity provider. When enabled, all tags associated with the instance + are available through the instance metadata service. When disabled, tags + are not propagated to IMDS. + + Disable this setting if your tags contain characters that are not + compatible with IMDS, such as `/`. IMDS requires tag keys to match the + pattern `[0-9a-zA-Z\\-_+=,.@:]{1,255}`. + + The default value is `true`. + + For more information, see [Work with instance tags in instance + metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) + in the *Amazon EC2 User Guide*. + """ + local_storage_configuration: ManagedInstancesLocalStorageConfiguration | None = ... + """ + The updated local storage configuration for Amazon ECS Managed + Instances. Changes to local storage settings apply to new instances + launched after the update. + """ + monitoring: str | None = ... + """ + CloudWatch provides two categories of monitoring: basic monitoring and + detailed monitoring. By default, your managed instance is configured for + basic monitoring. You can optionally enable detailed monitoring to help + you more quickly identify and act on operational issues. You can enable + or turn off detailed monitoring at launch or when the managed instance + is running or stopped. For more information, see [Detailed monitoring + for Amazon ECS Managed + Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html) + in the Amazon ECS Developer Guide. + """ + instance_requirements: InstanceRequirementsRequest | None = ... + """ + The updated instance requirements for attribute-based instance type + selection. Changes to instance requirements affect which instance types + Amazon ECS selects for new instances. + """ + capacity_reservations: CapacityReservationRequest | None = ... + """ + The updated capacity reservations specifications for Amazon ECS Managed + Instances. Changes to capacity reservations settings apply to new + instances launched after the update. + """ + +@dataclass(kw_only=True) +class InstanceRequirementsRequest(_SerdeShape): + """ + The instance requirements for attribute-based instance type selection. + Instead of specifying exact instance types, you define requirements such + as vCPU count, memory size, network performance, and accelerator + specifications. Amazon ECS automatically selects Amazon EC2 instance + types that match these requirements, providing flexibility and helping + to mitigate capacity constraints. + """ + + v_cpu_count: VCpuCountRangeRequest + """ + The minimum and maximum number of vCPUs for the instance types. Amazon + ECS selects instance types that have vCPU counts within this range. + """ + memory_mi_b: MemoryMiBRequest + """ + The minimum and maximum amount of memory in mebibytes (MiB) for the + instance types. Amazon ECS selects instance types that have memory + within this range. + """ + cpu_manufacturers: list[str] | None = ... + """ + The CPU manufacturers to include or exclude. You can specify `intel`, + `amd`, or `amazon-web-services` to control which CPU types are used for + your workloads. + """ + memory_gi_b_per_v_cpu: MemoryGiBPerVCpuRequest | None = ... + """ + The minimum and maximum amount of memory per vCPU in gibibytes (GiB). + This helps ensure that instance types have the appropriate memory-to-CPU + ratio for your workloads. + """ + excluded_instance_types: list[str] | None = ... + """ + The instance types to exclude from selection. Use this to prevent Amazon + ECS from selecting specific instance types that may not be suitable for + your workloads. + """ + instance_generations: list[str] | None = ... + """ + The instance generations to include. You can specify `current` to use + the latest generation instances, or `previous` to include previous + generation instances for cost optimization. + """ + spot_max_price_percentage_over_lowest_price: int | None = ... + """ + The maximum price for Spot instances as a percentage over the lowest + priced On-Demand instance. This helps control Spot instance costs while + maintaining access to capacity. + """ + on_demand_max_price_percentage_over_lowest_price: int | None = ... + """ + The price protection threshold for On-Demand Instances, as a percentage + higher than an identified On-Demand price. The identified On-Demand + price is the price of the lowest priced current generation C, M, or R + instance type with your specified attributes. If no current generation + C, M, or R instance type matches your attributes, then the identified + price is from either the lowest priced current generation instance types + or, failing that, the lowest priced previous generation instance types + that match your attributes. When Amazon ECS selects instance types with + your attributes, we will exclude instance types whose price exceeds your + specified threshold. + """ + bare_metal: str | None = ... + """ + Indicates whether to include bare metal instance types. Set to + `included` to allow bare metal instances, `excluded` to exclude them, or + `required` to use only bare metal instances. + """ + burstable_performance: str | None = ... + """ + Indicates whether to include burstable performance instance types (T2, + T3, T3a, T4g). Set to `included` to allow burstable instances, + `excluded` to exclude them, or `required` to use only burstable + instances. + """ + require_hibernate_support: bool | None = ... + """ + Indicates whether the instance types must support hibernation. When set + to `true`, only instance types that support hibernation are selected. + """ + network_interface_count: NetworkInterfaceCountRequest | None = ... + """ + The minimum and maximum number of network interfaces for the instance + types. This is useful for workloads that require multiple network + interfaces. + """ + local_storage: str | None = ... + """ + Indicates whether to include instance types with local storage. Set to + `included` to allow local storage, `excluded` to exclude it, or + `required` to use only instances with local storage. + """ + local_storage_types: list[str] | None = ... + """ + The local storage types to include. You can specify `hdd` for hard disk + drives, `ssd` for solid state drives, or both. + """ + total_local_storage_gb: TotalLocalStorageGBRequest | None = ... + """ + The minimum and maximum total local storage in gigabytes (GB) for + instance types with local storage. + """ + baseline_ebs_bandwidth_mbps: BaselineEbsBandwidthMbpsRequest | None = ... + """ + The minimum and maximum baseline Amazon EBS bandwidth in megabits per + second (Mbps). This is important for workloads with high storage I/O + requirements. + """ + accelerator_types: list[str] | None = ... + """ + The accelerator types to include. You can specify `gpu` for graphics + processing units, `fpga` for field programmable gate arrays, or + `inference` for machine learning inference accelerators. + """ + accelerator_count: AcceleratorCountRequest | None = ... + """ + The minimum and maximum number of accelerators for the instance types. + This is used when you need instances with specific numbers of GPUs or + other accelerators. + """ + accelerator_manufacturers: list[str] | None = ... + """ + The accelerator manufacturers to include. You can specify `nvidia`, + `amd`, `amazon-web-services`, or `xilinx` depending on your accelerator + requirements. + """ + accelerator_names: list[str] | None = ... + """ + The specific accelerator names to include. For example, you can specify + `a100`, `v100`, `k80`, or other specific accelerator models. + """ + accelerator_total_memory_mi_b: AcceleratorTotalMemoryMiBRequest | None = ... + """ + The minimum and maximum total accelerator memory in mebibytes (MiB). + This is important for GPU workloads that require specific amounts of + video memory. + """ + network_bandwidth_gbps: NetworkBandwidthGbpsRequest | None = ... + """ + The minimum and maximum network bandwidth in gigabits per second (Gbps). + This is crucial for network-intensive workloads that require high + throughput. + """ + allowed_instance_types: list[str] | None = ... + """ + The instance types to include in the selection. When specified, Amazon + ECS only considers these instance types, subject to the other + requirements specified. + """ + max_spot_price_as_percentage_of_optimal_on_demand_price: int | None = ... + """ + The maximum price for Spot instances as a percentage of the optimal + On-Demand price. This provides more precise cost control for Spot + instance selection. + """ + +@dataclass(kw_only=True) +class InvalidParameterException(ServiceError, _SerdeShape): + """ + The specified parameter isn't valid. Review the available parameters + for the API request. + + For more information about service event errors, see [Amazon ECS service + event + messages](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages-list.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class IpcMode(UnknownEnumMixin, StrEnum): + HOST = "host" + TASK = "task" + NONE = "none" + +class IsolationMode(UnknownEnumMixin, StrEnum): + """ + The isolation mode determines how a task is isolated from other tasks on + the same Amazon EC2 instance. + """ + + SHARED = "SHARED" + """ + The task shares the underlying Amazon EC2 instance with other tasks. + This is the default isolation mode. + """ + ISOLATED_SANDBOX = "ISOLATED_SANDBOX" + """ + The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System. Each task's sandbox is isolated from every + other task's sandbox on the same Amazon EC2 instance. For more + information, see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + """ + CONFIDENTIAL_SANDBOX = "CONFIDENTIAL_SANDBOX" + """ + The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System, with cryptographic attestation. The host + can't access the sandbox's memory or storage. For more information, + see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class KernelCapabilities(_SerdeShape): + """ + The Linux capabilities to add or remove from the default Docker + configuration for a container defined in the task definition. For more + detailed information about these Linux capabilities, see the + [capabilities(7)](http://man7.org/linux/man-pages/man7/capabilities.7.html) + Linux manual page. + + The following describes how Docker processes the Linux capabilities + specified in the `add` and `drop` request parameters. For information + about the latest behavior, see [Docker Compose: order of cap_drop and + cap_add](https://forums.docker.com/t/docker-compose-order-of-cap-drop-and-cap-add/97136/1) + in the Docker Community Forum. + + - When the container is a privleged container, the container + capabilities are all of the default Docker capabilities. The + capabilities specified in the `add` request parameter, and the `drop` + request parameter are ignored. + + - When the `add` request parameter is set to ALL, the container + capabilities are all of the default Docker capabilities, excluding + those specified in the `drop` request parameter. + + - When the `drop` request parameter is set to ALL, the container + capabilities are the capabilities specified in the `add` request + parameter. + + - When the `add` request parameter and the `drop` request parameter are + both empty, the capabilities the container capabilities are all of the + default Docker capabilities. + + - The default is to first drop the capabilities specified in the `drop` + request parameter, and then add the capabilities specified in the + `add` request parameter. + """ + + add: list[str] | None = ... + """ + The Linux capabilities for the container that have been added to the + default configuration provided by Docker. This parameter maps to + `CapAdd` in the docker container create command and the `--cap-add` + option to docker run. + + Note: + Tasks launched on Fargate only support adding the `SYS_PTRACE` kernel + capability. + + Valid values: + `"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"` + """ + drop: list[str] | None = ... + """ + The Linux capabilities for the container that have been removed from the + default configuration provided by Docker. This parameter maps to + `CapDrop` in the docker container create command and the `--cap-drop` + option to docker run. + + Valid values: + `"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"` + """ + +@dataclass(kw_only=True) +class KeyValuePair(_SerdeShape): + """A key-value pair object.""" + + name: str | None = ... + """ + The name of the key-value pair. For environment variables, this is the + name of the environment variable. + """ + value: str | None = ... + """ + The value of the key-value pair. For environment variables, this is the + value of the environment variable. + """ + +class LaunchType(UnknownEnumMixin, StrEnum): + EC2 = "EC2" + FARGATE = "FARGATE" + EXTERNAL = "EXTERNAL" + MANAGED_INSTANCES = "MANAGED_INSTANCES" + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """The limit for the resource was exceeded.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LinearConfiguration(_SerdeShape): + """ + Configuration for linear deployment strategy that shifts production + traffic in equal percentage increments with configurable wait times + between each step until 100% of traffic is shifted to the new service + revision. This is only valid when you run `CreateService` or + `UpdateService` with `deploymentController` set to `ECS` and a + `deploymentConfiguration` with a strategy set to `LINEAR`. + """ + + step_percent: float | None = ... + """ + The percentage of production traffic to shift in each step during a + linear deployment. Valid values are multiples of 0.1 from 3.0 to 100.0. + The default value is 10.0. + """ + step_bake_time_in_minutes: int | None = ... + """ + The amount of time in minutes to wait between each traffic shifting step + during a linear deployment. Valid values are 0 to 1440 minutes (24 + hours). The default value is 6. This bake time is not applied after + reaching 100 percent traffic. + """ + +@dataclass(kw_only=True) +class LinuxParameters(_SerdeShape): + """ + The Linux-specific options that are applied to the container, such as + Linux + [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + """ + + capabilities: KernelCapabilities | None = ... + """ + The Linux capabilities for the container that are added to or dropped + from the default configuration provided by Docker. + + Note: + For tasks that use the Fargate launch type, `capabilities` is supported + for all platform versions but the `add` parameter is only supported if + using platform version 1.4.0 or later. + """ + devices: list[Device] | None = ... + """ + Any host devices to expose to the container. This parameter maps to + `Devices` in the docker container create command and the `--device` + option to docker run. + + Note: + If you're using tasks that use the Fargate launch type, the `devices` + parameter isn't supported. + """ + init_process_enabled: bool | None = ... + """ + Run an `init` process inside the container that forwards signals and + reaps processes. This parameter maps to the `--init` option to docker + run. This parameter requires version 1.25 of the Docker Remote API or + greater on your container instance. To check the Docker Remote API + version on your container instance, log in to your container instance + and run the following command: + `sudo docker version --format '{{.Server.APIVersion}}'` + """ + shared_memory_size: int | None = ... + """ + The value for the size (in MiB) of the `/dev/shm` volume. This parameter + maps to the `--shm-size` option to docker run. + + Note: + If you are using tasks that use the Fargate launch type, the + `sharedMemorySize` parameter is not supported. + """ + tmpfs: list[Tmpfs] | None = ... + """ + The container path, mount options, and size (in MiB) of the tmpfs mount. + This parameter maps to the `--tmpfs` option to docker run. + """ + max_swap: int | None = ... + """ + The total amount of swap memory (in MiB) a container can use. This + parameter will be translated to the `--memory-swap` option to docker run + where the value would be the sum of the container memory plus the + `maxSwap` value. + + If a `maxSwap` value of `0` is specified, the container will not use + swap. Accepted values are `0` or any positive integer. If the `maxSwap` + parameter is omitted, the container will use the swap configuration for + the container instance it is running on. A `maxSwap` value must be set + for the `swappiness` parameter to be used. + + Note: + If you're using tasks that use the Fargate launch type, the `maxSwap` + parameter isn't supported. + + If you're using tasks on Amazon Linux 2023 the `swappiness` parameter + isn't supported. + """ + swappiness: int | None = ... + """ + This allows you to tune a container's memory swappiness behavior. A + `swappiness` value of `0` will cause swapping to not happen unless + absolutely necessary. A `swappiness` value of `100` will cause pages to + be swapped very aggressively. Accepted values are whole numbers between + `0` and `100`. If the `swappiness` parameter is not specified, a default + value of `60` is used. If a value is not specified for `maxSwap` then + this parameter is ignored. This parameter maps to the + `--memory-swappiness` option to docker run. + + Note: + If you're using tasks that use the Fargate launch type, the + `swappiness` parameter isn't supported. + + If you're using tasks on Amazon Linux 2023 the `swappiness` parameter + isn't supported. + """ + +@dataclass(kw_only=True) +class ListAccountSettingsInput(_SerdeShape): + """Dataclass for ListAccountSettingsInput structure.""" + + name: str | None = ... + """The name of the account setting you want to list the settings for.""" + value: str | None = ... + """ + The value of the account settings to filter results with. You must also + specify an account setting name to use this parameter. + """ + principal_arn: str | None = ... + """ + The ARN of the principal, which can be a user, role, or the root user. + If this field is omitted, the account settings are listed only for the + authenticated user. + + In order to use this parameter, you must be the root user, or the + principal. + + Note: + Federated users assume the account setting of the root user and can't + have explicit account settings set for them. + """ + effective_settings: bool = ... + """ + Determines whether to return the effective settings. If `true`, the + account settings for the root user or the default setting for the + `principalArn` are returned. If `false`, the account settings for the + `principalArn` are returned if they're set. Otherwise, no account + settings are returned. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListAccountSettings` request + indicating that more results are available to fulfill the request and + further calls will be needed. If `maxResults` was provided, it's + possible the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int = ... + """ + The maximum number of account setting results returned by + `ListAccountSettings` in paginated output. When this parameter is used, + `ListAccountSettings` only returns `maxResults` results in a single page + along with a `nextToken` response element. The remaining results of the + initial request can be seen by sending another `ListAccountSettings` + request with the returned `nextToken` value. This value can be between 1 + and 10. If this parameter isn't used, then `ListAccountSettings` + returns up to 10 results and a `nextToken` value if applicable. + """ + +@dataclass(kw_only=True) +class ListAccountSettingsOutput(_SerdeShape): + """Dataclass for ListAccountSettingsOutput structure.""" + + settings: list[Setting] | None = ... + """The account settings for the resource.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListAccountSettings` + request. When the results of a `ListAccountSettings` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. This value is `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAttributesInput(_SerdeShape): + """Dataclass for ListAttributesInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to list + attributes. If you do not specify a cluster, the default cluster is + assumed. + """ + target_type: str | None = ... + """The type of the target to list attributes with.""" + attribute_name: str | None = ... + """The name of the attribute to filter the results with.""" + attribute_value: str | None = ... + """ + The value of the attribute to filter results with. You must also specify + an attribute name to use this parameter. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListAttributes` request + indicating that more results are available to fulfill the request and + further calls are needed. If `maxResults` was provided, it's possible + the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of cluster results that `ListAttributes` returned in + paginated output. When this parameter is used, `ListAttributes` only + returns `maxResults` results in a single page along with a `nextToken` + response element. The remaining results of the initial request can be + seen by sending another `ListAttributes` request with the returned + `nextToken` value. This value can be between 1 and 100. If this + parameter isn't used, then `ListAttributes` returns up to 100 results + and a `nextToken` value if applicable. + """ + +@dataclass(kw_only=True) +class ListAttributesOutput(_SerdeShape): + """""" + + attributes: list[Attribute] | None = ... + """A list of attribute objects that meet the criteria of the request.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListAttributes` request. + When the results of a `ListAttributes` request exceed `maxResults`, this + value can be used to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListClustersInput(_SerdeShape): + """""" + + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListClusters` request indicating + that more results are available to fulfill the request and further calls + are needed. If `maxResults` was provided, it's possible the number of + results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of cluster results that `ListClusters` returned in + paginated output. When this parameter is used, `ListClusters` only + returns `maxResults` results in a single page along with a `nextToken` + response element. The remaining results of the initial request can be + seen by sending another `ListClusters` request with the returned + `nextToken` value. This value can be between 1 and 100. If this + parameter isn't used, then `ListClusters` returns up to 100 results and + a `nextToken` value if applicable. + """ + +@dataclass(kw_only=True) +class ListClustersOutput(_SerdeShape): + """""" + + cluster_arns: list[str] | None = ... + """ + The list of full Amazon Resource Name (ARN) entries for each cluster + that's associated with your account. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListClusters` request. + When the results of a `ListClusters` request exceed `maxResults`, this + value can be used to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListContainerInstancesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the container instances to list. If you do not specify a cluster, + the default cluster is assumed. + """ + filter: str | None = ... + """ + You can filter the results of a `ListContainerInstances` operation with + cluster query language statements. For more information, see [Cluster + Query + Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListContainerInstances` request + indicating that more results are available to fulfill the request and + further calls are needed. If `maxResults` was provided, it's possible + the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of container instance results that + `ListContainerInstances` returned in paginated output. When this + parameter is used, `ListContainerInstances` only returns `maxResults` + results in a single page along with a `nextToken` response element. The + remaining results of the initial request can be seen by sending another + `ListContainerInstances` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListContainerInstances` returns up to 100 results and a `nextToken` + value if applicable. + """ + status: str | None = ... + """ + Filters the container instances by status. For example, if you specify + the `DRAINING` status, the results include only container instances that + have been set to `DRAINING` using + [UpdateContainerInstancesState](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateContainerInstancesState.html). + If you don't specify this parameter, the The default is to include + container instances set to all states other than `INACTIVE`. + """ + +@dataclass(kw_only=True) +class ListContainerInstancesOutput(_SerdeShape): + """""" + + container_instance_arns: list[str] | None = ... + """ + The list of container instances with full ARN entries for each container + instance associated with the specified cluster. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListContainerInstances` + request. When the results of a `ListContainerInstances` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. This value is `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDaemonDeploymentsInput(_SerdeShape): + """Dataclass for ListDaemonDeploymentsInput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon to list deployments for.""" + status: list[str] | None = ... + """ + An optional filter to narrow the `ListDaemonDeployments` results by + deployment status. If you don't specify a status, all deployments are + returned. + """ + created_at: CreatedAt | None = ... + """ + An optional filter to narrow the `ListDaemonDeployments` results by + creation time. If you don't specify a time range, all deployments are + returned. + """ + max_results: int | None = ... + """ + The maximum number of daemon deployment results that + `ListDaemonDeployments` returned in paginated output. When this + parameter is used, `ListDaemonDeployments` only returns `maxResults` + results in a single page along with a `nextToken` response element. The + remaining results of the initial request can be seen by sending another + `ListDaemonDeployments` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListDaemonDeployments` returns up to 20 results and a `nextToken` value + if applicable. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListDaemonDeployments` request + indicating that more results are available to fulfill the request and + further calls will be needed. If `maxResults` was provided, it's + possible for the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + +@dataclass(kw_only=True) +class ListDaemonDeploymentsOutput(_SerdeShape): + """Dataclass for ListDaemonDeploymentsOutput structure.""" + + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListDaemonDeployments` + request. When the results of a `ListDaemonDeployments` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. + """ + daemon_deployments: list[DaemonDeploymentSummary] | None = ... + """The list of daemon deployment summaries.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDaemonsInput(_SerdeShape): + """Dataclass for ListDaemonsInput structure.""" + + cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the cluster to filter daemons by. If + you do not specify a cluster, the default cluster is assumed. + """ + capacity_provider_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the capacity providers to filter + daemons by. Only daemons associated with the specified capacity + providers are returned. + """ + max_results: int | None = ... + """ + The maximum number of daemon results that `ListDaemons` returned in + paginated output. When this parameter is used, `ListDaemons` only + returns `maxResults` results in a single page along with a `nextToken` + response element. The remaining results of the initial request can be + seen by sending another `ListDaemons` request with the returned + `nextToken` value. This value can be between 1 and 100. If this + parameter isn't used, then `ListDaemons` returns up to 100 results and + a `nextToken` value if applicable. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListDaemons` request indicating + that more results are available to fulfill the request and further calls + will be needed. If `maxResults` was provided, it's possible for the + number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + +@dataclass(kw_only=True) +class ListDaemonsOutput(_SerdeShape): + """Dataclass for ListDaemonsOutput structure.""" + + daemon_summaries_list: list[DaemonSummary] | None = ... + """The list of daemon summaries.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListDaemons` request. When + the results of a `ListDaemons` request exceed `maxResults`, this value + can be used to retrieve the next page of results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDaemonTaskDefinitionsInput(_SerdeShape): + """Dataclass for ListDaemonTaskDefinitionsInput structure.""" + + family_prefix: str | None = ... + """ + The full family name to filter the `ListDaemonTaskDefinitions` results + with. Specifying a `familyPrefix` limits the listed daemon task + definitions to daemon task definition families that start with the + `familyPrefix` string. + """ + family: str | None = ... + """ + The exact name of the daemon task definition family to filter results + with. + """ + revision: str | None = ... + """ + The revision filter to apply. Specify `LAST_REGISTERED` to return only + the last registered revision for each daemon task definition family. + """ + status: str | None = ... + """ + The daemon task definition status to filter the + `ListDaemonTaskDefinitions` results with. By default, only `ACTIVE` + daemon task definitions are listed. If you set this parameter to + `DELETE_IN_PROGRESS`, only daemon task definitions that are in the + process of being deleted are listed. If you set this parameter to `ALL`, + all daemon task definitions are listed regardless of status. + """ + sort: str | None = ... + """ + The order to sort the results. Valid values are `ASC` and `DESC`. By + default (`ASC`), daemon task definitions are listed in ascending order + by family name and revision number. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListDaemonTaskDefinitions` + request indicating that more results are available to fulfill the + request and further calls will be needed. If `maxResults` was provided, + it's possible for the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of daemon task definition results that + `ListDaemonTaskDefinitions` returned in paginated output. When this + parameter is used, `ListDaemonTaskDefinitions` only returns `maxResults` + results in a single page along with a `nextToken` response element. The + remaining results of the initial request can be seen by sending another + `ListDaemonTaskDefinitions` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListDaemonTaskDefinitions` returns up to 100 results and a `nextToken` + value if applicable. + """ + +@dataclass(kw_only=True) +class ListDaemonTaskDefinitionsOutput(_SerdeShape): + """Dataclass for ListDaemonTaskDefinitionsOutput structure.""" + + daemon_task_definitions: list[DaemonTaskDefinitionSummary] | None = ... + """The list of daemon task definition summaries.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListDaemonTaskDefinitions` + request. When the results of a `ListDaemonTaskDefinitions` request + exceed `maxResults`, this value can be used to retrieve the next page of + results. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGatewayClusterAssociationsInput(_SerdeShape): + """Dataclass for ListGatewayClusterAssociationsInput structure.""" + + gateway: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a gateway to filter the + results by. + """ + cluster: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a cluster to filter the + results by. + """ + status: list[str] | None = ... + """The association status to filter the results by.""" + max_results: int | None = ... + """ + The maximum number of results that the operation returns in a single + page. The default is 100. + """ + next_token: str | None = ... + """The `nextToken` value returned from a previous paginated request.""" + +@dataclass(kw_only=True) +class ListGatewayClusterAssociationsOutput(_SerdeShape): + """Dataclass for ListGatewayClusterAssociationsOutput structure.""" + + gateway_cluster_associations: list[GatewayClusterAssociationSummary] | None = ... + """The gateway-cluster associations that match the request.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future request to retrieve the + next page of results. This value is `null` when there are no more + results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGatewayRoutesInput(_SerdeShape): + """Dataclass for ListGatewayRoutesInput structure.""" + + gateway: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a gateway to filter the + results by. + """ + cluster: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a cluster to filter the + results by. + """ + service: str | None = ... + """ + The name or Amazon Resource Name (ARN) of a service to filter the + results by. Because services can span clusters, a service name isn't + necessarily unique and can match multiple services. + """ + service_container_port_name: str | None = ... + """The name of a task definition container port to filter the results by.""" + status: list[str] | None = ... + """The gateway route status to filter the results by.""" + max_results: int | None = ... + """ + The maximum number of results that the operation returns in a single + page. The default is 100. + """ + next_token: str | None = ... + """The `nextToken` value returned from a previous paginated request.""" + +@dataclass(kw_only=True) +class ListGatewayRoutesOutput(_SerdeShape): + """Dataclass for ListGatewayRoutesOutput structure.""" + + gateway_routes: list[GatewayRouteSummary] | None = ... + """The gateway routes that match the request.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future request to retrieve the + next page of results. This value is `null` when there are no more + results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGatewaysInput(_SerdeShape): + """Dataclass for ListGatewaysInput structure.""" + + names: list[str] | None = ... + """ + The gateway names to filter the results by. You can specify up to 10 + names. + """ + status: list[str] | None = ... + """The gateway statuses to filter the results by.""" + max_results: int | None = ... + """ + The maximum number of gateway results that `ListGateways` returns in a + single page. The default is 100. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a previous paginated `ListGateways` + request where `maxResults` was used and the results exceeded the value + of that parameter. Pagination continues from the end of the previous + results. + """ + +@dataclass(kw_only=True) +class ListGatewaysOutput(_SerdeShape): + """Dataclass for ListGatewaysOutput structure.""" + + gateways: list[GatewaySummary] | None = ... + """The list of gateways that match the request.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListGateways` request. + When the results of a `ListGateways` request exceed `maxResults`, this + value can be used to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServiceDeploymentsInput(_SerdeShape): + """Dataclass for ListServiceDeploymentsInput structure.""" + + service: str | None = ... + """The ARN or name of the service""" + cluster: str | None = ... + """ + The cluster that hosts the service. This can either be the cluster name + or ARN. Starting April 15, 2023, Amazon Web Services will not onboard + new customers to Amazon Elastic Inference (EI), and will help current + customers migrate their workloads to options that offer better price and + performance. If you don't specify a cluster, `default` is used. + """ + status: list[str] | None = ... + """ + An optional filter you can use to narrow the results. If you do not + specify a status, then all status values are included in the result. + """ + created_at: CreatedAt | None = ... + """ + An optional filter you can use to narrow the results by the service + creation date. If you do not specify a value, the result includes all + services created before the current time. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListServiceDeployments` request + indicating that more results are available to fulfill the request and + further calls are needed. If you provided `maxResults`, it's possible + the number of results is fewer than `maxResults`. + """ + max_results: int | None = ... + """ + The maximum number of service deployment results that + `ListServiceDeployments` returned in paginated output. When this + parameter is used, `ListServiceDeployments` only returns `maxResults` + results in a single page along with a `nextToken` response element. The + remaining results of the initial request can be seen by sending another + `ListServiceDeployments` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListServiceDeployments` returns up to 20 results and a `nextToken` + value if applicable. + """ + +@dataclass(kw_only=True) +class ListServiceDeploymentsOutput(_SerdeShape): + """Dataclass for ListServiceDeploymentsOutput structure.""" + + service_deployments: list[ServiceDeploymentBrief] | None = ... + """ + An overview of the service deployment, including the following + properties: + + - The ARN of the service deployment. + + - The ARN of the service being deployed. + + - The ARN of the cluster that hosts the service in the service + deployment. + + - The time that the service deployment started. + + - The time that the service deployment completed. + + - The service deployment status. + + - Information about why the service deployment is in the current state. + + - The ARN of the service revision that is being deployed. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListServiceDeployments` + request. When the results of a `ListServiceDeployments` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. This value is null when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServicesByNamespaceInput(_SerdeShape): + """Dataclass for ListServicesByNamespaceInput structure.""" + + namespace: str | None = ... + """ + The namespace name or full Amazon Resource Name (ARN) of the Cloud Map + namespace to list the services in. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + next_token: str | None = ... + """ + The `nextToken` value that's returned from a `ListServicesByNamespace` + request. It indicates that more results are available to fulfill the + request and further calls are needed. If `maxResults` is returned, it is + possible the number of results is less than `maxResults`. + """ + max_results: int | None = ... + """ + The maximum number of service results that `ListServicesByNamespace` + returns in paginated output. When this parameter is used, + `ListServicesByNamespace` only returns `maxResults` results in a single + page along with a `nextToken` response element. The remaining results of + the initial request can be seen by sending another + `ListServicesByNamespace` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListServicesByNamespace` returns up to 10 results and a `nextToken` + value if applicable. + """ + +@dataclass(kw_only=True) +class ListServicesByNamespaceOutput(_SerdeShape): + """Dataclass for ListServicesByNamespaceOutput structure.""" + + service_arns: list[str] | None = ... + """ + The list of full ARN entries for each service that's associated with + the specified namespace. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListServicesByNamespace` + request. When the results of a `ListServicesByNamespace` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. When there are no more results to return, this value is `null`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServicesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to use + when filtering the `ListServices` results. If you do not specify a + cluster, the default cluster is assumed. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListServices` request indicating + that more results are available to fulfill the request and further calls + will be needed. If `maxResults` was provided, it is possible the number + of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of service results that `ListServices` returned in + paginated output. When this parameter is used, `ListServices` only + returns `maxResults` results in a single page along with a `nextToken` + response element. The remaining results of the initial request can be + seen by sending another `ListServices` request with the returned + `nextToken` value. This value can be between 1 and 100. If this + parameter isn't used, then `ListServices` returns up to 10 results and + a `nextToken` value if applicable. + """ + launch_type: str | None = ... + """The launch type to use when filtering the `ListServices` results.""" + scheduling_strategy: str | None = ... + """ + The scheduling strategy to use when filtering the `ListServices` + results. + """ + resource_management_type: str | None = ... + """ + The resourceManagementType type to use when filtering the `ListServices` + results. + """ + +@dataclass(kw_only=True) +class ListServicesOutput(_SerdeShape): + """""" + + service_arns: list[str] | None = ... + """ + The list of full ARN entries for each service that's associated with + the specified cluster. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListServices` request. + When the results of a `ListServices` request exceed `maxResults`, this + value can be used to retrieve the next page of results. This value is + `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """Dataclass for ListTagsForResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the resource to list the + tags for. Currently, the supported resources are Amazon ECS tasks, + services, task definitions, clusters, and container instances. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """Dataclass for ListTagsForResourceOutput structure.""" + + tags: list[Tag] | None = ... + """The tags for the resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTaskDefinitionFamiliesInput(_SerdeShape): + """""" + + family_prefix: str | None = ... + """ + The `familyPrefix` is a string that's used to filter the results of + `ListTaskDefinitionFamilies`. If you specify a `familyPrefix`, only task + definition family names that begin with the `familyPrefix` string are + returned. + """ + status: str | None = ... + """ + The task definition family status to filter the + `ListTaskDefinitionFamilies` results with. By default, both `ACTIVE` and + `INACTIVE` task definition families are listed. If this parameter is set + to `ACTIVE`, only task definition families that have an `ACTIVE` task + definition revision are returned. If this parameter is set to + `INACTIVE`, only task definition families that do not have any `ACTIVE` + task definition revisions are returned. If you paginate the resulting + output, be sure to keep the `status` value constant in each subsequent + request. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListTaskDefinitionFamilies` + request indicating that more results are available to fulfill the + request and further calls will be needed. If `maxResults` was provided, + it is possible the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of task definition family results that + `ListTaskDefinitionFamilies` returned in paginated output. When this + parameter is used, `ListTaskDefinitions` only returns `maxResults` + results in a single page along with a `nextToken` response element. The + remaining results of the initial request can be seen by sending another + `ListTaskDefinitionFamilies` request with the returned `nextToken` + value. This value can be between 1 and 100. If this parameter isn't + used, then `ListTaskDefinitionFamilies` returns up to 100 results and a + `nextToken` value if applicable. + """ + +@dataclass(kw_only=True) +class ListTaskDefinitionFamiliesOutput(_SerdeShape): + """""" + + families: list[str] | None = ... + """ + The list of task definition family names that match the + `ListTaskDefinitionFamilies` request. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future + `ListTaskDefinitionFamilies` request. When the results of a + `ListTaskDefinitionFamilies` request exceed `maxResults`, this value can + be used to retrieve the next page of results. This value is `null` when + there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTaskDefinitionsInput(_SerdeShape): + """""" + + family_prefix: str | None = ... + """ + The full family name to filter the `ListTaskDefinitions` results with. + Specifying a `familyPrefix` limits the listed task definitions to task + definition revisions that belong to that family. + """ + status: str | None = ... + """ + The task definition status to filter the `ListTaskDefinitions` results + with. By default, only `ACTIVE` task definitions are listed. By setting + this parameter to `INACTIVE`, you can view task definitions that are + `INACTIVE` as long as an active task or service still references them. + If you paginate the resulting output, be sure to keep the `status` value + constant in each subsequent request. + """ + sort: str | None = ... + """ + The order to sort the results in. Valid values are `ASC` and `DESC`. By + default, (`ASC`) task definitions are listed lexicographically by family + name and in ascending numerical order by revision so that the newest + task definitions in a family are listed last. Setting this parameter to + `DESC` reverses the sort order on family name and revision. This is so + that the newest task definitions in a family are listed first. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListTaskDefinitions` request + indicating that more results are available to fulfill the request and + further calls will be needed. If `maxResults` was provided, it is + possible the number of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of task definition results that `ListTaskDefinitions` + returned in paginated output. When this parameter is used, + `ListTaskDefinitions` only returns `maxResults` results in a single page + along with a `nextToken` response element. The remaining results of the + initial request can be seen by sending another `ListTaskDefinitions` + request with the returned `nextToken` value. This value can be between 1 + and 100. If this parameter isn't used, then `ListTaskDefinitions` + returns up to 100 results and a `nextToken` value if applicable. + """ + +@dataclass(kw_only=True) +class ListTaskDefinitionsOutput(_SerdeShape): + """""" + + task_definition_arns: list[str] | None = ... + """ + The list of task definition Amazon Resource Name (ARN) entries for the + `ListTaskDefinitions` request. + """ + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListTaskDefinitions` + request. When the results of a `ListTaskDefinitions` request exceed + `maxResults`, this value can be used to retrieve the next page of + results. This value is `null` when there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTasksInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to use + when filtering the `ListTasks` results. If you do not specify a cluster, + the default cluster is assumed. + """ + container_instance: str | None = ... + """ + The container instance ID or full ARN of the container instance to use + when filtering the `ListTasks` results. Specifying a `containerInstance` + limits the results to tasks that belong to that container instance. + """ + family: str | None = ... + """ + The name of the task definition family to use when filtering the + `ListTasks` results. Specifying a `family` limits the results to tasks + that belong to that family. + """ + next_token: str | None = ... + """ + The `nextToken` value returned from a `ListTasks` request indicating + that more results are available to fulfill the request and further calls + will be needed. If `maxResults` was provided, it's possible the number + of results to be fewer than `maxResults`. + + Note: + This token should be treated as an opaque identifier that is only used + to retrieve the next items in a list and not for other programmatic + purposes. + """ + max_results: int | None = ... + """ + The maximum number of task results that `ListTasks` returned in + paginated output. When this parameter is used, `ListTasks` only returns + `maxResults` results in a single page along with a `nextToken` response + element. The remaining results of the initial request can be seen by + sending another `ListTasks` request with the returned `nextToken` value. + This value can be between 1 and 100. If this parameter isn't used, then + `ListTasks` returns up to 100 results and a `nextToken` value if + applicable. + """ + started_by: str | None = ... + """ + The `startedBy` value to filter the task results with. Specifying a + `startedBy` value limits the results to tasks that were started with + that value. + + When you specify `startedBy` as the filter, it must be the only filter + that you use. + """ + service_name: str | None = ... + """ + The name of the service to use when filtering the `ListTasks` results. + Specifying a `serviceName` limits the results to tasks that belong to + that service. + """ + desired_status: str | None = ... + """ + The task desired status to use when filtering the `ListTasks` results. + Specifying a `desiredStatus` of `STOPPED` limits the results to tasks + that Amazon ECS has set the desired status to `STOPPED`. This can be + useful for debugging tasks that aren't starting properly or have died + or finished. The default status filter is `RUNNING`, which shows tasks + that Amazon ECS has set the desired status to `RUNNING`. + + Note: + Although you can filter results based on a desired status of `PENDING`, + this doesn't return any results. Amazon ECS never sets the desired + status of a task to that value (only a task's `lastStatus` may have a + value of `PENDING`). + """ + launch_type: str | None = ... + """The launch type to use when filtering the `ListTasks` results.""" + daemon_name: str | None = ... + """ + The name of the daemon to use when filtering the `ListTasks` results. + Specifying a `daemonName` limits the results to tasks that belong to + that daemon. + """ + +@dataclass(kw_only=True) +class ListTasksOutput(_SerdeShape): + """""" + + task_arns: list[str] | None = ... + """The list of task ARN entries for the `ListTasks` request.""" + next_token: str | None = ... + """ + The `nextToken` value to include in a future `ListTasks` request. When + the results of a `ListTasks` request exceed `maxResults`, this value can + be used to retrieve the next page of results. This value is `null` when + there are no more results to return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LoadBalancer(_SerdeShape): + """ + The load balancer configuration to use with a service or task set. + + When you add, update, or remove a load balancer configuration, Amazon + ECS starts a new deployment with the updated Elastic Load Balancing + configuration. This causes tasks to register to and deregister from load + balancers. + + We recommend that you verify this on a test environment before you + update the Elastic Load Balancing configuration. + + A service-linked role is required for services that use multiple target + groups. For more information, see [Using service-linked + roles](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + target_group_arn: str | None = ... + """ + The full Amazon Resource Name (ARN) of the Elastic Load Balancing target + group or groups associated with a service or task set. + + A target group ARN is only specified when using an Application Load + Balancer or Network Load Balancer. + + For services using the `ECS` deployment controller, you can specify one + or multiple target groups. For more information, see [Registering + multiple target groups with a + service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) + in the *Amazon Elastic Container Service Developer Guide*. + + For services using the `CODE_DEPLOY` deployment controller, you're + required to define two target groups for the load balancer. For more + information, see [Blue/green deployment with + CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Warning: + If your service's task definition uses the `awsvpc` network mode, you + must choose `ip` as the target type, not `instance`. Do this when + creating your target groups because tasks that use the `awsvpc` network + mode are associated with an elastic network interface, not an Amazon EC2 + instance. This network mode is required for the Fargate launch type. + """ + load_balancer_name: str | None = ... + """ + The name of the load balancer to associate with the Amazon ECS service + or task set. + + If you are using an Application Load Balancer or a Network Load Balancer + the load balancer name parameter should be omitted. + """ + container_name: str | None = ... + """ + The name of the container (as it appears in a container definition) to + associate with the load balancer. + + You need to specify the container name when configuring the target group + for an Amazon ECS load balancer. + """ + container_port: int | None = ... + """ + The port on the container to associate with the load balancer. This port + must correspond to a `containerPort` in the task definition the tasks in + the service are using. For tasks that use the EC2 launch type, the + container instance they're launched on must allow ingress traffic on + the `hostPort` of the port mapping. + """ + advanced_configuration: AdvancedConfiguration | None = ... + """ + The advanced settings for the load balancer used in blue/green + deployments. Specify the alternate target group, listener rules, and IAM + role required for traffic shifting during blue/green deployments. + """ + +class LocalStorage(UnknownEnumMixin, StrEnum): + INCLUDED = "included" + REQUIRED = "required" + EXCLUDED = "excluded" + +class LocalStorageType(UnknownEnumMixin, StrEnum): + HDD = "hdd" + SSD = "ssd" + +@dataclass(kw_only=True) +class LogConfiguration(_SerdeShape): + """ + The log configuration for the container. This parameter maps to + `LogConfig` in the docker container create command and the + `--log-driver` option to docker run. + + By default, containers use the same logging driver that the Docker + daemon uses. However, the container might use a different logging driver + than the Docker daemon by specifying a log driver configuration in the + container definition. + + Understand the following when specifying a log configuration for your + containers. + + - Amazon ECS currently supports a subset of the logging drivers + available to the Docker daemon. Additional log drivers may be + available in future releases of the Amazon ECS container agent. + + For tasks on Fargate, the supported log drivers are `awslogs`, + `splunk`, and `awsfirelens`. + + For tasks hosted on Amazon EC2 instances, the supported log drivers + are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`,`syslog`, + `splunk`, and `awsfirelens`. + + For tasks on Amazon ECS Managed Instances, the supported log drivers + are `awslogs`, `splunk`, `awsfirelens`, and `json-file`. + + - This parameter requires version 1.18 of the Docker Remote API or + greater on your container instance. + + - For tasks that are hosted on Amazon EC2 instances, the Amazon ECS + container agent must register the available logging drivers with the + `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers + placed on that instance can use these log configuration options. For + more information, see [Amazon ECS container agent + configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - For tasks that are on Fargate, because you don't have access to the + underlying infrastructure your tasks are hosted on, any additional + software needed must be installed outside of the task. For example, + the Fluentd output aggregators or a remote host running Logstash to + send Gelf logs to. + """ + + log_driver: str + """ + The log driver to use for the container. + + For tasks on Fargate, the supported log drivers are `awslogs`, `splunk`, + and `awsfirelens`. + + For tasks hosted on Amazon EC2 instances, the supported log drivers are + `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `syslog`, + `splunk`, and `awsfirelens`. + + For tasks on Amazon ECS Managed Instances, the supported log drivers are + `awslogs`, `splunk`, `awsfirelens`, and `json-file`. + + For more information about using the `awslogs` log driver, see [Send + Amazon ECS logs to + CloudWatch](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) + in the *Amazon Elastic Container Service Developer Guide*. + + For more information about using the `awsfirelens` log driver, see [Send + Amazon ECS logs to an Amazon Web Services service or Amazon Web Services + Partner](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html). + + Note: + If you have a custom driver that isn't listed, you can fork the Amazon + ECS container agent project that's [available on + GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to + work with that driver. We encourage you to submit pull requests for + changes that you would like to have included. However, we don't + currently provide support for running modified copies of this software. + """ + options: dict[str, str] | None = ... + """ + The configuration options to send to the log driver. + + The options you can specify depend on the log driver. Some of the + options you can specify when you use the `awslogs` log driver to route + logs to Amazon CloudWatch include the following: + + awslogs-create-group + + : Required: No + + Specify whether you want the log group to be created automatically. If + this option isn't specified, it defaults to `false`. + + Note: + Your IAM policy must include the `logs:CreateLogGroup` permission + before you attempt to use `awslogs-create-group`. + + awslogs-region + + : Required: Yes + + Specify the Amazon Web Services Region that the `awslogs` log driver + is to send your Docker logs to. You can choose to send all of your + logs from clusters in different Regions to a single region in + CloudWatch Logs. This is so that they're all visible in one location. + Otherwise, you can separate them by Region for more granularity. Make + sure that the specified log group exists in the Region that you + specify with this option. + + awslogs-group + + : Required: Yes + + Make sure to specify a log group that the `awslogs` log driver sends + its log streams to. + + awslogs-stream-prefix + + : Required: Yes, when using Fargate.Optional when using EC2. + + Use the `awslogs-stream-prefix` option to associate a log stream with + the specified prefix, the container name, and the ID of the Amazon ECS + task that the container belongs to. If you specify a prefix with this + option, then the log stream takes the format + `prefix-name/container-name/ecs-task-id`. + + If you don't specify a prefix with this option, then the log stream + is named after the container ID that's assigned by the Docker daemon + on the container instance. Because it's difficult to trace logs back + to the container that sent them with just the Docker container ID + (which is only available on the container instance), we recommend that + you specify a prefix with this option. + + For Amazon ECS services, you can use the service name as the prefix. + Doing so, you can trace log streams to the service that the container + belongs to, the name of the container that sent them, and the ID of + the task that the container belongs to. + + You must specify a stream-prefix for your logs to have your logs + appear in the Log pane when using the Amazon ECS console. + + awslogs-datetime-format + + : Required: No + + This option defines a multiline start pattern in Python `strftime` + format. A log message consists of a line that matches the pattern and + any following lines that don't match the pattern. The matched line is + the delimiter between log messages. + + One example of a use case for using this format is for parsing output + such as a stack dump, which might otherwise be logged in multiple + entries. The correct pattern allows it to be captured in a single + entry. + + For more information, see + [awslogs-datetime-format](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format). + + You cannot configure both the `awslogs-datetime-format` and + `awslogs-multiline-pattern` options. + + Note: + Multiline logging performs regular expression parsing and matching of + all log messages. This might have a negative impact on logging + performance. + + awslogs-multiline-pattern + + : Required: No + + This option defines a multiline start pattern that uses a regular + expression. A log message consists of a line that matches the pattern + and any following lines that don't match the pattern. The matched line + is the delimiter between log messages. + + For more information, see + [awslogs-multiline-pattern](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern). + + This option is ignored if `awslogs-datetime-format` is also + configured. + + You cannot configure both the `awslogs-datetime-format` and + `awslogs-multiline-pattern` options. + + Note: + Multiline logging performs regular expression parsing and matching of + all log messages. This might have a negative impact on logging + performance. + + The following options apply to all supported log drivers. + + mode + + : Required: No + + Valid values: `non-blocking` | `blocking` + + This option defines the delivery mode of log messages from the + container to the log driver specified using `logDriver`. The delivery + mode you choose affects application availability when the flow of logs + from container is interrupted. + + If you use the `blocking` mode and the flow of logs is interrupted, + calls from container code to write to the `stdout` and `stderr` + streams will block. The logging thread of the application will block + as a result. This may cause the application to become unresponsive and + lead to container healthcheck failure. + + If you use the `non-blocking` mode, the container's logs are instead + stored in an in-memory intermediate buffer configured with the + `max-buffer-size` option. This prevents the application from becoming + unresponsive when logs cannot be sent. We recommend using this mode if + you want to ensure service availability and are okay with some log + loss. For more information, see [Preventing log loss with non-blocking + mode in the `awslogs` container log + driver](http://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/). + + You can set a default `mode` for all containers in a specific Amazon + Web Services Region by using the `defaultLogDriverMode` account + setting. If you don't specify the `mode` option or configure the + account setting, Amazon ECS will default to the `non-blocking` mode. + For more information about the account setting, see [Default log + driver + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + On June 25, 2025, Amazon ECS changed the default log driver mode from + `blocking` to `non-blocking` to prioritize task availability over + logging. To continue using the `blocking` mode after this change, do + one of the following: + + - Set the `mode` option in your container definition's + `logConfiguration` as `blocking`. + + - Set the `defaultLogDriverMode` account setting to `blocking`. + + max-buffer-size + + : Required: No + + Default value: `10m` + + When `non-blocking` mode is used, the `max-buffer-size` log option + controls the size of the buffer that's used for intermediate message + storage. Make sure to specify an adequate buffer size based on your + application. When the buffer fills up, further logs cannot be stored. + Logs that cannot be stored are lost. + + To route logs using the `splunk` log router, you need to specify a + `splunk-token` and a `splunk-url`. + + When you use the `awsfirelens` log router to route logs to an Amazon Web + Services Service or Amazon Web Services Partner Network destination for + log storage and analytics, you can set the `log-driver-buffer-limit` + option to limit the number of events that are buffered in memory, before + being sent to the log router container. It can help to resolve potential + log loss issue because high throughput might result in memory running + out for the buffer inside of Docker. + + Other options you can specify when using `awsfirelens` to route logs + depend on the destination. When you export logs to Amazon Data Firehose, + you can specify the Amazon Web Services Region with `region` and a name + for the log stream with `delivery_stream`. + + When you export logs to Amazon Kinesis Data Streams, you can specify an + Amazon Web Services Region with `region` and a data stream name with + `stream`. + + When you export logs to Amazon OpenSearch Service, you can specify + options like `Name`, `Host` (OpenSearch Service endpoint without + protocol), `Port`, `Index`, `Type`, `Aws_auth`, `Aws_region`, + `Suppress_Type_Name`, and `tls`. For more information, see [Under the + hood: FireLens for Amazon ECS + Tasks](http://aws.amazon.com/blogs/containers/under-the-hood-firelens-for-amazon-ecs-tasks/). + + When you export logs to Amazon S3, you can specify the bucket using the + `bucket` option. You can also specify `region`, `total_file_size`, + `upload_timeout`, and `use_put_object` as options. + + This parameter requires version 1.19 of the Docker Remote API or greater + on your container instance. To check the Docker Remote API version on + your container instance, log in to your container instance and run the + following command: + `sudo docker version --format '{{.Server.APIVersion}}'` + """ + secret_options: list[Secret] | None = ... + """ + The secrets to pass to the log configuration. For more information, see + [Specifying sensitive + data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +class LogDriver(UnknownEnumMixin, StrEnum): + JSON_FILE = "json-file" + SYSLOG = "syslog" + JOURNALD = "journald" + GELF = "gelf" + FLUENTD = "fluentd" + AWSLOGS = "awslogs" + SPLUNK = "splunk" + AWSFIRELENS = "awsfirelens" + +@dataclass(kw_only=True) +class LogDriverVolumeConfiguration(_SerdeShape): + """ + The configuration for a log driver volume in a daemon task definition. + The volume contains the log files for each container on the container + instance that uses the specified log driver in its `logConfiguration`. + Containers that use a different log driver don't write log files to the + volume. + + For the `json-file` log driver, the volume has one directory for each + container, named with the container ID. Each directory contains the + container's log file, `-json.log`, and any rotated log + files. After a container stops and Amazon ECS removes it, Amazon ECS + deletes the container's directory. Read the log files before the + container is removed. + """ + + driver: str + """ + The log driver whose log files the volume contains. The only supported + value is `json-file`. + """ + +@dataclass(kw_only=True) +class ManagedAgent(_SerdeShape): + """Details about the managed agent status for the container.""" + + last_started_at: datetime | None = ... + """The Unix timestamp for the time when the managed agent was last started.""" + name: str | None = ... + """ + The name of the managed agent. When the execute command feature is + turned on, the managed agent name is `ExecuteCommandAgent`. + """ + reason: str | None = ... + """The reason for why the managed agent is in the state it is in.""" + last_status: str | None = ... + """The last known status of the managed agent.""" + +class ManagedAgentName(UnknownEnumMixin, StrEnum): + EXECUTE_COMMAND_AGENT = "ExecuteCommandAgent" + +@dataclass(kw_only=True) +class ManagedAgentStateChange(_SerdeShape): + """An object representing a change in state for a managed agent.""" + + container_name: str + """The name of the container that's associated with the managed agent.""" + managed_agent_name: str + """The name of the managed agent.""" + status: str + """The status of the managed agent.""" + reason: str | None = ... + """The reason for the status of the managed agent.""" + +@dataclass(kw_only=True) +class ManagedApplicationAutoScalingPolicy(_SerdeShape): + """ + The Application Auto Scaling policy created by Amazon ECS when you + create an Express service. + """ + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Application Auto Scaling policy + associated with the Express service. + """ + status: str + """The status of Application Auto Scaling policy creation.""" + status_reason: str | None = ... + """ + Information about why the Application Auto Scaling policy is in the + current status. + """ + updated_at: datetime + """ + The Unix timestamp for when the Application Auto Scaling policy was last + updated. + """ + policy_type: str + """ + The type of Application Auto Scaling policy associated with the Express + service. Valid values are `TargetTrackingScaling`, `StepScaling`, and + `PredictiveScaling`. + """ + target_value: float = ... + """The target value for the auto scaling metric.""" + metric: str + """ + The metric used for auto scaling decisions. The available metrics are + `ECSServiceAverageCPUUtilization`, `ECSServiceAverageMemoryUtilization`, + and `ALBRequestCOuntPerTarget`. + """ + +@dataclass(kw_only=True) +class ManagedAutoScaling(_SerdeShape): + """ + The auto scaling configuration created by Amazon ECS for an Express + service. + """ + + scalable_target: ManagedScalableTarget | None = ... + """Represents a scalable target.""" + application_auto_scaling_policies: ( + list[ManagedApplicationAutoScalingPolicy] | None + ) = ... + """The policy used for auto scaling.""" + +@dataclass(kw_only=True) +class ManagedCertificate(_SerdeShape): + """ + The ACM certificate associated with the HTTPS domain created for the + Express service. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the ACM certificate.""" + status: str + """The status of the ACM; certificate.""" + status_reason: str | None = ... + """Information about why the ACM certificate is in the current status.""" + updated_at: datetime + """The Unix timestamp for when the ACM certificate was last updated""" + domain_name: str + """ + The fully qualified domain name (FQDN) that is secured with this ACM + certificate. + """ + +class ManagedDraining(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class ManagedIngressPath(_SerdeShape): + """The entry point into the Express service.""" + + access_type: str + """The type of access to the endpoint for the Express service.""" + endpoint: str + """The endpoint for access to the Express service.""" + load_balancer: ManagedLoadBalancer | None = ... + """The Application Load Balancer associated with the Express service.""" + load_balancer_security_groups: list[ManagedSecurityGroup] | None = ... + """The security groups associated with the Application Load Balancer.""" + certificate: ManagedCertificate | None = ... + """The ACM certificate for the Express service's domain.""" + listener: ManagedListener | None = ... + """The listeners associated with the Application Load Balancer.""" + rule: ManagedListenerRule | None = ... + """The listener rules for the Application Load Balancer.""" + target_groups: list[ManagedTargetGroup] | None = ... + """The target groups associated with the Application Load Balancer.""" + +@dataclass(kw_only=True) +class ManagedInstancesLocalStorageConfiguration(_SerdeShape): + """ + The local storage configuration for Amazon ECS Managed Instances. This + defines how ECS uses and configures instance store volumes available on + container instance. + """ + + use_local_storage: bool = ... + """ + Use instance store volumes for data storage when available. EBS volumes + are not provisioned for data storage. If the container instance has + multiple instance store volumes, a single data volume is created. + Consider defining instance store requirements using the `localStorage`, + `localStorageTypes` and `totalLocalStorageGB` properties. + """ + +class ManagedInstancesMonitoringOptions(UnknownEnumMixin, StrEnum): + BASIC = "BASIC" + DETAILED = "DETAILED" + +@dataclass(kw_only=True) +class ManagedInstancesNetworkConfiguration(_SerdeShape): + """ + The network configuration for Amazon ECS Managed Instances. This + specifies the VPC subnets and security groups that instances use for + network connectivity. Amazon ECS Managed Instances support multiple + network modes including `awsvpc` (instances receive ENIs for task + isolation), `host` (instances share network namespace with tasks), and + `none` (no external network connectivity), ensuring backward + compatibility for migrating workloads from Fargate or Amazon EC2. + """ + + subnets: list[str] | None = ... + """ + The list of subnet IDs where Amazon ECS can launch Amazon ECS Managed + Instances. Instances are distributed across the specified subnets for + high availability. All subnets must be in the same VPC. + """ + security_groups: list[str] | None = ... + """ + The list of security group IDs to apply to Amazon ECS Managed Instances. + These security groups control the network traffic allowed to and from + the instances. + """ + +@dataclass(kw_only=True) +class ManagedInstancesProvider(_SerdeShape): + """ + The configuration for a Amazon ECS Managed Instances provider. Amazon + ECS uses this configuration to automatically launch, manage, and + terminate Amazon EC2 instances on your behalf. Managed instances provide + access to the full range of Amazon EC2 instance types and features while + offloading infrastructure management to Amazon Web Services. + """ + + infrastructure_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the infrastructure role that Amazon + ECS assumes to manage instances. This role must include permissions for + Amazon EC2 instance lifecycle management, networking, and any additional + Amazon Web Services services required for your workloads. + + For more information, see [Amazon ECS infrastructure IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + in the *Amazon ECS Developer Guide*. + """ + instance_launch_template: InstanceLaunchTemplate | None = ... + """ + The launch template that defines how Amazon ECS launches Amazon ECS + Managed Instances. This includes the instance profile for your tasks, + network and storage configuration, and instance requirements that + determine which Amazon EC2 instance types can be used. + + For more information, see [Store instance launch parameters in Amazon + EC2 launch + templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) + in the *Amazon EC2 User Guide*. + """ + propagate_tags: str | None = ... + """ + Determines whether tags from the capacity provider are automatically + applied to Amazon ECS Managed Instances. This helps with cost allocation + and resource management by ensuring consistent tagging across your + infrastructure. + """ + infrastructure_optimization: InfrastructureOptimization | None = ... + """ + Defines how Amazon ECS Managed Instances optimizes the infrastastructure + in your capacity provider. Configure it to turn on or off the + infrastructure optimization in your capacity provider, and to control + the idle or underutilized EC2 instances optimization delay. + """ + auto_repair_configuration: AutoRepairConfiguration | None = ... + """ + The auto repair configuration for the Amazon ECS Managed Instances + capacity provider. Indicates whether Amazon ECS automatically replaces + container instances that are detected as unhealthy. + """ + +@dataclass(kw_only=True) +class ManagedInstancesStorageConfiguration(_SerdeShape): + """ + The storage configuration for Amazon ECS Managed Instances. This defines + the data volume configuration for the instances. + """ + + storage_size_gi_b: int | None = ... + """The size of the data volume.""" + +@dataclass(kw_only=True) +class ManagedListener(_SerdeShape): + """ + The listeners associated with the Express service's Application Load + Balancer. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer listener.""" + status: str + """The status of the load balancer listener.""" + status_reason: str | None = ... + """ + Informaion about why the load balancer listener is in the current + status. + """ + updated_at: datetime + """The Unix timestamp for when this listener was most recently updated.""" + +@dataclass(kw_only=True) +class ManagedListenerRule(_SerdeShape): + """ + The listener rule associated with the Express service's Application + Load Balancer. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer listener rule.""" + status: str + """The status of the load balancer listener rule.""" + status_reason: str | None = ... + """ + Information about why the load balancer listener rule is in the current + status. + """ + updated_at: datetime + """ + The Unix timestamp for when this listener rule was most recently + updated. + """ + +@dataclass(kw_only=True) +class ManagedLoadBalancer(_SerdeShape): + """The Application Load Balancer associated with the Express service.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the load balancer.""" + status: str + """The status of the load balancer.""" + status_reason: str | None = ... + """Information about why the load balancer is in the current status.""" + updated_at: datetime + """ + The Unix timestamp for when this load balancer was most recently + updated. + """ + scheme: str + """ + The scheme of the load balancer. By default, the scheme of the load + balancer is `internet-facing`. + """ + subnet_ids: list[str] | None = ... + """The IDs of the subnets associated with the load balancer.""" + security_group_ids: list[str] | None = ... + """The IDs of the security groups associated with the load balancer.""" + +@dataclass(kw_only=True) +class ManagedLogGroup(_SerdeShape): + """The Cloudwatch Log Group created by Amazon ECS for an Express service.""" + + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Cloudwatch Log Group associated + with the Express service. + """ + status: str + """The status of the Cloudwatch LogGroup.""" + status_reason: str | None = ... + """Information about why the Cloudwatch LogGroup is in the current status.""" + updated_at: datetime + """The Unix timestamp for when the Cloudwatch LogGroup was last updated""" + log_group_name: str + """ + The name of the Cloudwatch Log Group associated with the Express + service. + """ + +@dataclass(kw_only=True) +class ManagedMetricAlarm(_SerdeShape): + """ + The CloudWatch metric alarm associated with the Express service's + scaling policy. + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the CloudWatch metric alarm.""" + status: str + """The status of the CloudWatch metric alarm.""" + status_reason: str | None = ... + """ + Information about why the CloudWatch metric alarm is in the current + status. + """ + updated_at: datetime + """ + The Unix timestamp for when the CloudWatch metric alarm was last + updated. + """ + +class ManagedResourceStatus(UnknownEnumMixin, StrEnum): + PROVISIONING = "PROVISIONING" + ACTIVE = "ACTIVE" + DEPROVISIONING = "DEPROVISIONING" + DELETED = "DELETED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class ManagedScalableTarget(_SerdeShape): + """Represents a scalable target.""" + + arn: str | None = ... + """The ARN of the scalable target.""" + status: str + """The status of the scalable target.""" + status_reason: str | None = ... + """Information about why the scalable target is in the current status.""" + updated_at: datetime + """The Unix timestamp for when the target was most recently updated.""" + min_capacity: int = ... + """The minimum value to scale to in response to a scale-in activity.""" + max_capacity: int = ... + """The maximum value to scale to in response to a scale-out activity.""" + +@dataclass(kw_only=True) +class ManagedScaling(_SerdeShape): + """ + The managed scaling settings for the Auto Scaling group capacity + provider. + + When managed scaling is turned on, Amazon ECS manages the scale-in and + scale-out actions of the Auto Scaling group. Amazon ECS manages a target + tracking scaling policy using an Amazon ECS managed CloudWatch metric + with the specified `targetCapacity` value as the target value for the + metric. For more information, see [Using managed + scaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling) + in the *Amazon Elastic Container Service Developer Guide*. + + If managed scaling is off, the user must manage the scaling of the Auto + Scaling group. + """ + + status: str | None = ... + """Determines whether to use managed scaling for the capacity provider.""" + target_capacity: int | None = ... + """ + The target capacity utilization as a percentage for the capacity + provider. The specified value must be greater than `0` and less than or + equal to `100`. For example, if you want the capacity provider to + maintain 10% spare capacity, then that means the utilization is 90%, so + use a `targetCapacity` of `90`. The default value of `100` percent + results in the Amazon EC2 instances in your Auto Scaling group being + completely used. + """ + minimum_scaling_step_size: int | None = ... + """ + The minimum number of Amazon EC2 instances that Amazon ECS will scale + out at one time. The scale in process is not affected by this parameter + If this parameter is omitted, the default value of `1` is used. + + When additional capacity is required, Amazon ECS will scale up the + minimum scaling step size even if the actual demand is less than the + minimum scaling step size. + """ + maximum_scaling_step_size: int | None = ... + """ + The maximum number of Amazon EC2 instances that Amazon ECS will scale + out at one time. If this parameter is omitted, the default value of + `10000` is used. + """ + instance_warmup_period: int | None = ... + """ + The period of time, in seconds, after a newly launched Amazon EC2 + instance can contribute to CloudWatch metrics for Auto Scaling group. If + this parameter is omitted, the default value of `300` seconds is used. + """ + +class ManagedScalingStatus(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class ManagedSecurityGroup(_SerdeShape): + """A security group associated with the Express service.""" + + arn: str | None = ... + """The ARN of the security group.""" + status: str + """The status of the security group.""" + status_reason: str | None = ... + """Information about why the security group is in the current status.""" + updated_at: datetime + """The Unix timestamp for when the security group was last updated.""" + +@dataclass(kw_only=True) +class ManagedStorageConfiguration(_SerdeShape): + """The managed storage configuration for the cluster.""" + + kms_key_id: str | None = ... + """ + Specify a Key Management Service key ID to encrypt Amazon ECS managed + storage. + + When you specify a `kmsKeyId`, Amazon ECS uses the key to encrypt data + volumes managed by Amazon ECS that are attached to tasks in the cluster. + The following data volumes are managed by Amazon ECS: Amazon EBS. For + more information about encryption of Amazon EBS volumes attached to + Amazon ECS tasks, see [Encrypt data stored in Amazon EBS volumes for + Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-kms-encryption.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The key must be a single Region key. + """ + fargate_ephemeral_storage_kms_key_id: str | None = ... + """ + Specify the Key Management Service key ID for Fargate ephemeral storage. + + When you specify a `fargateEphemeralStorageKmsKeyId`, Amazon Web + Services Fargate uses the key to encrypt data at rest in ephemeral + storage. For more information about Fargate ephemeral storage + encryption, see [Customer managed keys for Amazon Web Services Fargate + ephemeral storage for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html) + in the *Amazon Elastic Container Service Developer Guide*. + + The key must be a single Region key. + """ + +@dataclass(kw_only=True) +class ManagedTargetGroup(_SerdeShape): + """ + The target group associated with the Express service's Application Load + Balancer. For more information about load balancer target groups, see + [CreateTargetGroup](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) + in the *Elastic Load Balancing API Reference* + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the target group.""" + status: str + """The status of the target group.""" + status_reason: str | None = ... + """Information about why the target group is in the current status.""" + updated_at: datetime + """The Unix timestamp for when the target group was last updated.""" + health_check_path: str + """The destination for health checks on the targets.""" + health_check_port: int = ... + """ + The port the load balancer uses when performing health checks on + targets. + """ + port: int = ... + """The port on which the targets receive traffic.""" + +class ManagedTerminationProtection(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class MemoryGiBPerVCpuRequest(_SerdeShape): + """ + The minimum and maximum amount of memory per vCPU in gibibytes (GiB). + This helps ensure that instance types have the appropriate memory-to-CPU + ratio for your workloads. + """ + + min: float | None = ... + """ + The minimum amount of memory per vCPU in GiB. Instance types with a + lower memory-to-vCPU ratio are excluded from selection. + """ + max: float | None = ... + """ + The maximum amount of memory per vCPU in GiB. Instance types with a + higher memory-to-vCPU ratio are excluded from selection. + """ + +@dataclass(kw_only=True) +class MemoryMiBRequest(_SerdeShape): + """ + The minimum and maximum amount of memory in mebibytes (MiB) for instance + type selection. This ensures that selected instance types have adequate + memory for your workloads. + """ + + min: int + """ + The minimum amount of memory in MiB. Instance types with less memory + than this value are excluded from selection. + """ + max: int | None = ... + """ + The maximum amount of memory in MiB. Instance types with more memory + than this value are excluded from selection. + """ + +@dataclass(kw_only=True) +class MetricConfiguration(_SerdeShape): + """ + The configuration for a specific set of metrics to collect for a + service. + """ + + metric_names: list[str] + """ + The list of metric names to configure. The supported metric names are + `CPUUtilization` and `MemoryUtilization`. + """ + resolution_seconds: int + """ + The resolution, in seconds, at which to collect the metrics. The valid + values are `20` and `60`. + """ + +@dataclass(kw_only=True) +class MissingVersionException(ServiceError, _SerdeShape): + """ + Amazon ECS can't determine the current version of the Amazon ECS + container agent on the container instance and doesn't have enough + information to proceed with an update. This could be because the agent + running on the container instance is a previous or custom version that + doesn't use our version information. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MonitoringConfiguration(_SerdeShape): + """ + The optional monitoring configuration for a service, which defines the + resolution for the service-level `CPUUtilization` and + `MemoryUtilization` Amazon CloudWatch metrics. When not specified, + Amazon ECS uses the default resolution of `60` seconds. + """ + + metric_configurations: list[MetricConfiguration] | None = ... + """The list of metric configurations for the service monitoring.""" + +@dataclass(kw_only=True) +class MountPoint(_SerdeShape): + """ + The details for a volume mount point that's used in a container + definition. + """ + + source_volume: str | None = ... + """ + The name of the volume to mount. Must be a volume name referenced in the + `name` parameter of task definition `volume`. + """ + container_path: str | None = ... + """The path on the container to mount the host volume at.""" + read_only: bool | None = ... + """ + If this value is `true`, the container has read-only access to the + volume. If this value is `false`, then the container can write to the + volume. The default value is `false`. + """ + +@dataclass(kw_only=True) +class NamespaceNotFoundException(ServiceError, _SerdeShape): + """The specified namespace wasn't found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NetworkBandwidthGbpsRequest(_SerdeShape): + """ + The minimum and maximum network bandwidth in gigabits per second (Gbps) + for instance type selection. This is important for network-intensive + workloads. + """ + + min: float | None = ... + """ + The minimum network bandwidth in Gbps. Instance types with lower network + bandwidth are excluded from selection. + """ + max: float | None = ... + """ + The maximum network bandwidth in Gbps. Instance types with higher + network bandwidth are excluded from selection. + """ + +@dataclass(kw_only=True) +class NetworkBinding(_SerdeShape): + """ + Details on the network bindings between a container and its host + container instance. After a task reaches the `RUNNING` status, manual + and automatic host and container port assignments are visible in the + `networkBindings` section of + [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) + API responses. + """ + + bind_ip: str | None = ... + """The IP address that the container is bound to on the container instance.""" + container_port: int | None = ... + """The port number on the container that's used with the network binding.""" + host_port: int | None = ... + """The port number on the host that's used with the network binding.""" + protocol: str | None = ... + """The protocol used for the network binding.""" + container_port_range: str | None = ... + """ + The port number range on the container that's bound to the dynamically + mapped host port range. + + The following rules apply when you specify a `containerPortRange`: + + - You must use either the `bridge` network mode or the `awsvpc` network + mode. + + - This parameter is available for both the EC2 and Fargate launch types. + + - This parameter is available for both the Linux and Windows operating + systems. + + - The container instance must have at least version 1.67.0 of the + container agent and at least version 1.67.0-1 of the `ecs-init` + package + + - You can specify a maximum of 100 port ranges per container. + + - You do not specify a `hostPortRange`. The value of the `hostPortRange` + is set as follows: + + - For containers in a task with the `awsvpc` network mode, the + `hostPortRange` is set to the same value as the + `containerPortRange`. This is a static mapping strategy. + + - For containers in a task with the `bridge` network mode, the Amazon + ECS agent finds open host ports from the default ephemeral range and + passes it to docker to bind them to the container ports. + + - The `containerPortRange` valid values are between 1 and 65535. + + - A port can only be included in one port mapping per container. + + - You cannot specify overlapping port ranges. + + - The first port in the range must be less than last port in the range. + + - Docker recommends that you turn off the docker-proxy in the Docker + daemon config file when you have a large number of ports. + + For more information, see [Issue + #11185](https://github.com/moby/moby/issues/11185) on the Github + website. + + For information about how to turn off the docker-proxy in the Docker + daemon config file, see [Docker + daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) + in the *Amazon ECS Developer Guide*. + + You can call + [`DescribeTasks`](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) + to view the `hostPortRange` which are the host ports that are bound to + the container ports. + """ + host_port_range: str | None = ... + """ + The port number range on the host that's used with the network binding. + This is assigned is assigned by Docker and delivered by the Amazon ECS + agent. + """ + +@dataclass(kw_only=True) +class NetworkConfiguration(_SerdeShape): + """The network configuration for a task or service.""" + + awsvpc_configuration: AwsVpcConfiguration | None = ... + """ + The VPC subnets and security groups that are associated with a task. + + Note: + All specified subnets and security groups must be from the same VPC. + """ + +@dataclass(kw_only=True) +class NetworkInterface(_SerdeShape): + """ + An object representing the elastic network interface for tasks that use + the `awsvpc` network mode. + """ + + attachment_id: str | None = ... + """The attachment ID for the network interface.""" + private_ipv4_address: str | None = ... + """The private IPv4 address for the network interface.""" + ipv6_address: str | None = ... + """The private IPv6 address for the network interface.""" + +@dataclass(kw_only=True) +class NetworkInterfaceCountRequest(_SerdeShape): + """ + The minimum and maximum number of network interfaces for instance type + selection. This is useful for workloads that require multiple network + interfaces. + """ + + min: int | None = ... + """ + The minimum number of network interfaces. Instance types that support + fewer network interfaces are excluded from selection. + """ + max: int | None = ... + """ + The maximum number of network interfaces. Instance types that support + more network interfaces are excluded from selection. + """ + +class NetworkMode(UnknownEnumMixin, StrEnum): + BRIDGE = "bridge" + HOST = "host" + AWSVPC = "awsvpc" + NONE = "none" + +@dataclass(kw_only=True) +class NoUpdateAvailableException(ServiceError, _SerdeShape): + """ + There's no update available for this Amazon ECS container agent. This + might be because the agent is already running the latest version or + because it's so old that there's no update path to the current + version. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NvidiaMpsAllocation(_SerdeShape): + """ + The GPU memory and compute limits for a container that shares a GPU by + using NVIDIA Multi-Process Service (MPS). Amazon ECS assigns the + container a single GPU that has enough memory available. Other + containers that use MPS can share the same GPU. + """ + + memory: int + """ + The amount of GPU memory, in MiB, to allocate to the container. Amazon + ECS assigns the container a GPU that has at least the specified amount + of memory available, and sets the `CUDA_MPS_PINNED_DEVICE_MEM_LIMIT` + environment variable in the container to limit its memory to this + amount. The memory must be available on a single GPU. If more than one + container in a task uses `nvidiaMps`, Amazon ECS assigns them the same + GPU, which must have enough memory available for all of them. + """ + max_compute_percent: int | None = ... + """ + The maximum percentage of the GPU's compute capacity that the container + can use. Amazon ECS sets the `CUDA_MPS_ACTIVE_THREAD_PERCENTAGE` + environment variable in the container to this value. This value is a + limit, not a reservation. + + If you don't specify this parameter, Amazon ECS doesn't set + `CUDA_MPS_ACTIVE_THREAD_PERCENTAGE`, and the active thread percentage of + the MPS server on the container instance applies. By default, this is + 100 percent. + """ + +class OSFamily(UnknownEnumMixin, StrEnum): + WINDOWS_SERVER_2019_FULL = "WINDOWS_SERVER_2019_FULL" + WINDOWS_SERVER_2019_CORE = "WINDOWS_SERVER_2019_CORE" + WINDOWS_SERVER_2016_FULL = "WINDOWS_SERVER_2016_FULL" + WINDOWS_SERVER_2004_CORE = "WINDOWS_SERVER_2004_CORE" + WINDOWS_SERVER_2022_CORE = "WINDOWS_SERVER_2022_CORE" + WINDOWS_SERVER_2022_FULL = "WINDOWS_SERVER_2022_FULL" + WINDOWS_SERVER_2025_CORE = "WINDOWS_SERVER_2025_CORE" + WINDOWS_SERVER_2025_FULL = "WINDOWS_SERVER_2025_FULL" + WINDOWS_SERVER_20_H2_CORE = "WINDOWS_SERVER_20H2_CORE" + LINUX = "LINUX" + +class PidMode(UnknownEnumMixin, StrEnum): + HOST = "host" + TASK = "task" + +@dataclass(kw_only=True) +class PlacementConstraint(_SerdeShape): + """ + An object representing a constraint on task placement. For more + information, see [Task placement + constraints](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + If you're using the Fargate launch type, task placement constraints + aren't supported. + """ + + type: str | None = ... + """ + The type of constraint. Use `distinctInstance` to ensure that each task + in a particular group is running on a different container instance. Use + `memberOf` to restrict the selection to a group of valid candidates. + """ + expression: str | None = ... + """ + A cluster query language expression to apply to the constraint. The + expression can have a maximum length of 2000 characters. You can't + specify an expression if the constraint type is `distinctInstance`. For + more information, see [Cluster query + language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +class PlacementConstraintType(UnknownEnumMixin, StrEnum): + DISTINCT_INSTANCE = "distinctInstance" + MEMBER_OF = "memberOf" + +@dataclass(kw_only=True) +class PlacementStrategy(_SerdeShape): + """ + The task placement strategy for a task or service. For more information, + see [Task placement + strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + type: str | None = ... + """ + The type of placement strategy. The `random` placement strategy randomly + places tasks on available candidates. The `spread` placement strategy + spreads placement across available candidates evenly based on the + `field` parameter. The `binpack` strategy places tasks on available + candidates that have the least available amount of the resource that's + specified with the `field` parameter. For example, if you binpack on + memory, a task is placed on the instance with the least amount of + remaining memory but still enough to run the task. + """ + field: str | None = ... + """ + The field to apply the placement strategy against. For the `spread` + placement strategy, valid values are `instanceId` (or `host`, which has + the same effect), or any platform or custom attribute that's applied to + a container instance, such as `attribute:ecs.availability-zone`. For the + `binpack` placement strategy, valid values are `cpu` and `memory`. For + the `random` placement strategy, this field is not used. + """ + +class PlacementStrategyType(UnknownEnumMixin, StrEnum): + RANDOM = "random" + SPREAD = "spread" + BINPACK = "binpack" + +@dataclass(kw_only=True) +class PlatformDevice(_SerdeShape): + """ + The devices that are available on the container instance. The supported + device types are GPUs and Neuron devices. + """ + + id: str + """ + The ID for the GPU or Neuron device on the container instance. For GPUs, + the available GPU IDs can also be obtained on the container instance in + the `/var/lib/ecs/gpu/nvidia_gpu_info.json` file. For Neuron devices, + the ID corresponds to the device index (for example, `0` for + `/dev/neuron0`). + """ + type: str + """ + The type of device that's available on the container instance. The + supported values are `GPU` and `NEURON_DEVICE`. + """ + +class PlatformDeviceType(UnknownEnumMixin, StrEnum): + GPU = "GPU" + NEURON_DEVICE = "NEURON_DEVICE" + +@dataclass(kw_only=True) +class PlatformTaskDefinitionIncompatibilityException(ServiceError, _SerdeShape): + """ + The specified platform version doesn't satisfy the required + capabilities of the task definition. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PlatformUnknownException(ServiceError, _SerdeShape): + """The specified platform version doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PortMapping(_SerdeShape): + """ + Port mappings allow containers to access ports on the host container + instance to send or receive traffic. Port mappings are specified as part + of the container definition. + + If you use containers in a task with the `awsvpc` or `host` network + mode, specify the exposed ports using `containerPort`. The `hostPort` + can be left blank or it must be the same value as the `containerPort`. + + Most fields of this parameter (`containerPort`, `hostPort`, `protocol`) + maps to `PortBindings` in the docker container create command and the + `--publish` option to `docker run`. If the network mode of a task + definition is set to `host`, host ports must either be undefined or + match the container port in the port mapping. + + Note: + You can't expose the same container port for multiple protocols. If you + attempt this, an error is returned. + + After a task reaches the `RUNNING` status, manual and automatic host and + container port assignments are visible in the `networkBindings` section + of + [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) + API responses. + """ + + container_port: int | None = ... + """ + The port number on the container that's bound to the user-specified or + automatically assigned host port. + + If you use containers in a task with the `awsvpc` or `host` network + mode, specify the exposed ports using `containerPort`. + + If you use containers in a task with the `bridge` network mode and you + specify a container port and not a host port, your container + automatically receives a host port in the ephemeral port range. For more + information, see `hostPort`. Port mappings that are automatically + assigned in this way do not count toward the 100 reserved ports limit of + a container instance. + """ + host_port: int | None = ... + """ + The port number on the container instance to reserve for your container. + + If you specify a `containerPortRange`, leave this field empty and the + value of the `hostPort` is set as follows: + + - For containers in a task with the `awsvpc` network mode, the + `hostPort` is set to the same value as the `containerPort`. This is a + static mapping strategy. + + - For containers in a task with the `bridge` network mode, the Amazon + ECS agent finds open ports on the host and automatically binds them to + the container ports. This is a dynamic mapping strategy. + + If you use containers in a task with the `awsvpc` or `host` network + mode, the `hostPort` can either be left blank or set to the same value + as the `containerPort`. + + If you use containers in a task with the `bridge` network mode, you can + specify a non-reserved host port for your container port mapping, or you + can omit the `hostPort` (or set it to `0`) while specifying a + `containerPort` and your container automatically receives a port in the + ephemeral port range for your container instance operating system and + Docker version. + + The default ephemeral port range for Docker version 1.6.0 and later is + listed on the instance under `/proc/sys/net/ipv4/ip_local_port_range`. + If this kernel parameter is unavailable, the default ephemeral port + range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) + is used. Do not attempt to specify a host port in the ephemeral port + range as these are reserved for automatic assignment. In general, ports + below 32768 are outside of the ephemeral port range. + + The default reserved ports are 22 for SSH, the Docker ports 2375 and + 2376, and the Amazon ECS container agent ports 51678-51680. Any host + port that was previously specified in a running task is also reserved + while the task is running. That is, after a task stops, the host port is + released. The current reserved ports are displayed in the + `remainingResources` of + [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) + output. A container instance can have up to 100 reserved ports at a + time. This number includes the default reserved ports. Automatically + assigned ports aren't included in the 100 reserved ports quota. + """ + protocol: str | None = ... + """ + The protocol that's used for the port mapping. Valid values are `tcp` + and `udp` (case-sensitive). The default is `tcp`. Amazon ECS treats any + other specified value as `tcp`. `protocol` is immutable in a Service + Connect service. To update this field, you must delete and redeploy the + service. + """ + name: str | None = ... + """ + The name that's used for the port mapping. This parameter is the name + that you use in the `serviceConnectConfiguration` and the + `vpcLatticeConfigurations` of a service. The name can include up to 64 + characters. The characters can include lowercase letters, numbers, + underscores (_), and hyphens (-). The name can't start with a hyphen. + """ + app_protocol: str | None = ... + """ + The application protocol that's used for the port mapping. This + parameter only applies to Service Connect. We recommend that you set + this parameter to be consistent with the protocol that your application + uses. If you set this parameter, Amazon ECS adds protocol-specific + connection handling to the Service Connect proxy. If you set this + parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS + console and CloudWatch. + + If you don't set a value for this parameter, then TCP is used. However, + Amazon ECS doesn't add protocol-specific telemetry for TCP. + + `appProtocol` is immutable in a Service Connect service. Updating this + field requires a service deletion and redeployment. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + container_port_range: str | None = ... + """ + The port number range on the container that's bound to the dynamically + mapped host port range. + + The following rules apply when you specify a `containerPortRange`: + + - You must use either the `bridge` network mode or the `awsvpc` network + mode. + + - This parameter is available for both the EC2 and Fargate launch types. + + - This parameter is available for both the Linux and Windows operating + systems. + + - The container instance must have at least version 1.67.0 of the + container agent and at least version 1.67.0-1 of the `ecs-init` + package + + - You can specify a maximum of 100 port ranges per container. + + - You do not specify a `hostPortRange`. The value of the `hostPortRange` + is set as follows: + + - For containers in a task with the `awsvpc` network mode, the + `hostPortRange` is set to the same value as the + `containerPortRange`. This is a static mapping strategy. + + - For containers in a task with the `bridge` network mode, the Amazon + ECS agent finds open host ports from the default ephemeral range and + passes it to docker to bind them to the container ports. + + - The `containerPortRange` valid values are between 1 and 65535. + + - A port can only be included in one port mapping per container. + + - You cannot specify overlapping port ranges. + + - The first port in the range must be less than last port in the range. + + - Docker recommends that you turn off the docker-proxy in the Docker + daemon config file when you have a large number of ports. + + For more information, see [Issue + #11185](https://github.com/moby/moby/issues/11185) on the Github + website. + + For information about how to turn off the docker-proxy in the Docker + daemon config file, see [Docker + daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) + in the *Amazon ECS Developer Guide*. + + You can call + [`DescribeTasks`](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) + to view the `hostPortRange` which are the host ports that are bound to + the container ports. + """ + +class PropagateGatewayTags(UnknownEnumMixin, StrEnum): + """ + Specifies whether the tags on a gateway are propagated to the + infrastructure that the gateway manages. + """ + + NONE = "NONE" + """Tags aren't propagated to managed infrastructure.""" + GATEWAY = "GATEWAY" + """ + Tags on the gateway are propagated to the infrastructure that the + gateway manages. + """ + +class PropagateMITags(UnknownEnumMixin, StrEnum): + CAPACITY_PROVIDER = "CAPACITY_PROVIDER" + NONE = "NONE" + +class PropagateTags(UnknownEnumMixin, StrEnum): + TASK_DEFINITION = "TASK_DEFINITION" + SERVICE = "SERVICE" + NONE = "NONE" + +@dataclass(kw_only=True) +class ProtectedTask(_SerdeShape): + """ + An object representing the protection status details for a task. You can + set the protection status with the + [UpdateTaskProtection](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateTaskProtection.html) + API and get the status of tasks with the + [GetTaskProtection](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_GetTaskProtection.html) + API. + """ + + task_arn: str | None = ... + """The task ARN.""" + protection_enabled: bool = ... + """ + The protection status of the task. If scale-in protection is on for a + task, the value is `true`. Otherwise, it is `false`. + """ + expiration_date: datetime | None = ... + """The epoch time when protection for the task will expire.""" + +@dataclass(kw_only=True) +class ProxyConfiguration(_SerdeShape): + """ + The configuration details for the App Mesh proxy. + + For tasks that use the EC2 launch type, the container instances require + at least version 1.26.0 of the container agent and at least version + 1.26.0-1 of the `ecs-init` package to use a proxy configuration. If your + container instances are launched from the Amazon ECS optimized AMI + version `20190301` or later, then they contain the required versions of + the container agent and `ecs-init`. For more information, see [Amazon + ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + """ + + type: str | None = ... + """The proxy type. The only supported value is `APPMESH`.""" + container_name: str + """The name of the container that will serve as the App Mesh proxy.""" + properties: list[KeyValuePair] | None = ... + """ + The set of network configuration parameters to provide the Container + Network Interface (CNI) plugin, specified as key-value pairs. + + - `IgnoredUID` - (Required) The user ID (UID) of the proxy container as + defined by the `user` parameter in a container definition. This is + used to ensure the proxy ignores its own traffic. If `IgnoredGID` is + specified, this field can be empty. + + - `IgnoredGID` - (Required) The group ID (GID) of the proxy container as + defined by the `user` parameter in a container definition. This is + used to ensure the proxy ignores its own traffic. If `IgnoredUID` is + specified, this field can be empty. + + - `AppPorts` - (Required) The list of ports that the application uses. + Network traffic to these ports is forwarded to the `ProxyIngressPort` + and `ProxyEgressPort`. + + - `ProxyIngressPort` - (Required) Specifies the port that incoming + traffic to the `AppPorts` is directed to. + + - `ProxyEgressPort` - (Required) Specifies the port that outgoing + traffic from the `AppPorts` is directed to. + + - `EgressIgnoredPorts` - (Required) The egress traffic going to the + specified ports is ignored and not redirected to the + `ProxyEgressPort`. It can be an empty list. + + - `EgressIgnoredIPs` - (Required) The egress traffic going to the + specified IP addresses is ignored and not redirected to the + `ProxyEgressPort`. It can be an empty list. + """ + +class ProxyConfigurationType(UnknownEnumMixin, StrEnum): + APPMESH = "APPMESH" + +@dataclass(kw_only=True) +class PutAccountSettingDefaultInput(_SerdeShape): + """Dataclass for PutAccountSettingDefaultInput structure.""" + + name: str | None = ... + """ + The resource name for which to modify the account setting. + + The following are the valid values for the account setting name. + + - `serviceLongArnFormat` - When modified, 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. + + - `taskLongArnFormat` - When modified, 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. + + - `containerInstanceLongArnFormat` - When modified, 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. + + - `awsvpcTrunking` - When modified, 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `containerInsights` - Container Insights with enhanced observability + provides all the Container Insights metrics, plus additional task and + container metrics. This version supports enhanced observability for + Amazon ECS clusters using the Amazon EC2 and Fargate launch types. + After you configure Container Insights with enhanced observability on + Amazon ECS, Container Insights auto-collects detailed infrastructure + telemetry from the cluster level down to the container level in your + environment and displays these critical performance data in curated + dashboards removing the heavy lifting in observability set-up. + + To use Container Insights with enhanced observability, set the + `containerInsights` account setting to `enhanced`. + + To use Container Insights, set the `containerInsights` account setting + to `enabled`. + + For more information, see [Monitor Amazon ECS containers using + Container Insights with enhanced + observability](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `dualStackIPv6` - When turned on, when using a VPC in dual stack mode, + your tasks using the `awsvpc` network mode can have an IPv6 address + assigned. For more information on using IPv6 with tasks launched on + Amazon EC2 instances, see [Using a VPC in dual-stack + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html#task-networking-vpc-dual-stack). + For more information on using IPv6 with tasks launched on Fargate, see + [Using a VPC in dual-stack + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html#fargate-task-networking-vpc-dual-stack). + + - `fargateFIPSMode` - If you specify `fargateFIPSMode`, Fargate FIPS 140 + compliance is affected. + + - `fargateTaskRetirementWaitPeriod` - 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) + in the *Amazon ECS Developer Guide*. + + - `fargateEventWindows` - 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 `fargateEventWindows` to use EC2 Event Windows + associated with Fargate tasks to configure time windows for task + retirement. + + - `tagResourceAuthorization` - 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html) + in the *Amazon ECS Developer Guide*. + + - `defaultLogDriverMode` -Amazon ECS supports setting a default delivery + mode of log messages from a container to the `logDriver` that you + specify in the container's `logConfiguration`. The delivery mode + affects application stability when the flow of logs from the container + to the log driver is interrupted. The `defaultLogDriverMode` setting + supports two values: `blocking` and `non-blocking`. If you don't + specify a delivery mode in your container definition's + `logConfiguration`, the mode you specify using this account setting + will be used as the default. For more information about log delivery + modes, see + [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html). + + Note: + On June 25, 2025, Amazon ECS changed the default log driver mode from + `blocking` to `non-blocking` to prioritize task availability over + logging. To continue using the `blocking` mode after this change, do + one of the following: + + - Set the `mode` option in your container definition's + `logConfiguration` as `blocking`. + + - Set the `defaultLogDriverMode` account setting to `blocking`. + + - `guardDutyActivate` - 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). + """ + value: str | None = ... + """ + The account setting value for the specified principal ARN. Accepted + values are `enabled`, `disabled`, `on`, `enhanced`, and `off`. + + When you specify `fargateTaskRetirementWaitPeriod` for the `name`, the + following are the valid values: + + - `0` - Amazon Web Services sends the notification, and immediately + retires the affected tasks. + + - `7` - Amazon Web Services sends the notification, and waits 7 calendar + days to retire the tasks. + + - `14` - Amazon Web Services sends the notification, and waits 14 + calendar days to retire the tasks. + """ + +@dataclass(kw_only=True) +class PutAccountSettingDefaultOutput(_SerdeShape): + """Dataclass for PutAccountSettingDefaultOutput structure.""" + + setting: Setting | None = ... + """The current setting for a resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutAccountSettingInput(_SerdeShape): + """Dataclass for PutAccountSettingInput structure.""" + + name: str | None = ... + """ + The Amazon ECS account setting name to modify. + + The following are the valid values for the account setting name. + + - `serviceLongArnFormat` - When modified, 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. + + - `taskLongArnFormat` - When modified, 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. + + - `containerInstanceLongArnFormat` - When modified, 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. + + - `awsvpcTrunking` - When modified, 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `containerInsights` - Container Insights with enhanced observability + provides all the Container Insights metrics, plus additional task and + container metrics. This version supports enhanced observability for + Amazon ECS clusters using the Amazon EC2 and Fargate launch types. + After you configure Container Insights with enhanced observability on + Amazon ECS, Container Insights auto-collects detailed infrastructure + telemetry from the cluster level down to the container level in your + environment and displays these critical performance data in curated + dashboards removing the heavy lifting in observability set-up. + + To use Container Insights with enhanced observability, set the + `containerInsights` account setting to `enhanced`. + + To use Container Insights, set the `containerInsights` account setting + to `enabled`. + + For more information, see [Monitor Amazon ECS containers using + Container Insights with enhanced + observability](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - `dualStackIPv6` - When turned on, when using a VPC in dual stack mode, + your tasks using the `awsvpc` network mode can have an IPv6 address + assigned. For more information on using IPv6 with tasks launched on + Amazon EC2 instances, see [Using a VPC in dual-stack + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html#task-networking-vpc-dual-stack). + For more information on using IPv6 with tasks launched on Fargate, see + [Using a VPC in dual-stack + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html#fargate-task-networking-vpc-dual-stack). + + - `fargateTaskRetirementWaitPeriod` - 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) + in the *Amazon ECS Developer Guide*. + + - `fargateEventWindows` - 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 `fargateEventWindows` to use EC2 Event Windows + associated with Fargate tasks to configure time windows for task + retirement. + + - `tagResourceAuthorization` - 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html) + in the *Amazon ECS Developer Guide*. + + - `defaultLogDriverMode` - Amazon ECS supports setting a default + delivery mode of log messages from a container to the `logDriver` that + you specify in the container's `logConfiguration`. The delivery mode + affects application stability when the flow of logs from the container + to the log driver is interrupted. The `defaultLogDriverMode` setting + supports two values: `blocking` and `non-blocking`. If you don't + specify a delivery mode in your container definition's + `logConfiguration`, the mode you specify using this account setting + will be used as the default. For more information about log delivery + modes, see + [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html). + + Note: + On June 25, 2025, Amazon ECS changed the default log driver mode from + `blocking` to `non-blocking` to prioritize task availability over + logging. To continue using the `blocking` mode after this change, do + one of the following: + + - Set the `mode` option in your container definition's + `logConfiguration` as `blocking`. + + - Set the `defaultLogDriverMode` account setting to `blocking`. + + - `guardDutyActivate` - 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). + """ + value: str | None = ... + """ + The account setting value for the specified principal ARN. Accepted + values are `enabled`, `disabled`, `enhanced`, `on`, and `off`. + + When you specify `fargateTaskRetirementWaitPeriod` for the `name`, the + following are the valid values: + + - `0` - Amazon Web Services sends the notification, and immediately + retires the affected tasks. + + - `7` - Amazon Web Services sends the notification, and waits 7 calendar + days to retire the tasks. + + - `14` - Amazon Web Services sends the notification, and waits 14 + calendar days to retire the tasks. + """ + principal_arn: str | None = ... + """ + The ARN of the principal, which can be a user, role, or the root user. + If you specify the root user, it modifies the account setting for all + users, roles, and the root user of the account unless a user or role + explicitly overrides these settings. If this field is omitted, the + setting is changed only for the authenticated user. + + In order to use this parameter, you must be the root user, or the + principal. + + Note: + You must use the root user when you set the Fargate wait time + (`fargateTaskRetirementWaitPeriod`). + + Federated users assume the account setting of the root user and can't + have explicit account settings set for them. + """ + +@dataclass(kw_only=True) +class PutAccountSettingOutput(_SerdeShape): + """Dataclass for PutAccountSettingOutput structure.""" + + setting: Setting | None = ... + """The current account setting for a resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutAttributesInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + contains the resource to apply attributes. If you do not specify a + cluster, the default cluster is assumed. + """ + attributes: list[Attribute] | None = ... + """ + The attributes to apply to your resource. You can specify up to 10 + custom attributes for each resource. You can specify up to 10 attributes + in a single call. + """ + +@dataclass(kw_only=True) +class PutAttributesOutput(_SerdeShape): + """""" + + attributes: list[Attribute] | None = ... + """The attributes applied to your resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutClusterCapacityProvidersInput(_SerdeShape): + """Dataclass for PutClusterCapacityProvidersInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to + modify the capacity provider settings for. If you don't specify a + cluster, the default cluster is assumed. + """ + capacity_providers: list[str] | None = ... + """ + The name of one or more capacity providers to associate with the + cluster. + + If specifying a capacity provider that uses an Auto Scaling group, the + capacity provider must already be created. New capacity providers can be + created with the + [CreateCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html) + API operation. + + To use a Fargate capacity provider, specify either the `FARGATE` or + `FARGATE_SPOT` capacity providers. The Fargate capacity providers are + available to all accounts and only need to be associated with a cluster + to be used. + """ + default_capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy to use by default for the cluster. + + When creating a service or running a task on a cluster, if no capacity + provider or launch type is specified then the default capacity provider + strategy for the cluster is used. + + A capacity provider strategy consists of one or more capacity providers + along with the `base` and `weight` to assign to them. A capacity + provider must be associated with the cluster to be used in a capacity + provider strategy. The + [PutClusterCapacityProviders](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) + API is used to associate a capacity provider with a cluster. Only + capacity providers with an `ACTIVE` or `UPDATING` status can be used. + + If specifying a capacity provider that uses an Auto Scaling group, the + capacity provider must already be created. New capacity providers can be + created with the + [CreateCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html) + API operation. + + To use a Fargate capacity provider, specify either the `FARGATE` or + `FARGATE_SPOT` capacity providers. The Fargate capacity providers are + available to all accounts and only need to be associated with a cluster + to be used. + """ + +@dataclass(kw_only=True) +class PutClusterCapacityProvidersOutput(_SerdeShape): + """Dataclass for PutClusterCapacityProvidersOutput structure.""" + + cluster: Cluster | None = ... + """Details about the cluster.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterContainerInstanceInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to + register your container instance with. If you do not specify a cluster, + the default cluster is assumed. + """ + instance_identity_document: str | None = ... + """ + The instance identity document for the EC2 instance to register. This + document can be found by running the following command from the + instance: + `curl http://169.254.169.254/latest/dynamic/instance-identity/document/` + """ + instance_identity_document_signature: str | None = ... + """ + The instance identity document signature for the EC2 instance to + register. This signature can be found by running the following command + from the instance: + `curl http://169.254.169.254/latest/dynamic/instance-identity/signature/` + """ + total_resources: list[Resource] | None = ... + """The resources available on the instance.""" + version_info: VersionInfo | None = ... + """ + The version information for the Amazon ECS container agent and Docker + daemon that runs on the container instance. + """ + container_instance_arn: str | None = ... + """The ARN of the container instance (if it was previously registered).""" + attributes: list[Attribute] | None = ... + """The container instance attributes that this container instance supports.""" + platform_devices: list[PlatformDevice] | None = ... + """ + The devices that are available on the container instance. The supported + device types are GPUs and Neuron devices. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the container instance to help you + categorize and organize them. 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. + """ + +@dataclass(kw_only=True) +class RegisterContainerInstanceOutput(_SerdeShape): + """""" + + container_instance: ContainerInstance | None = ... + """The container instance that was registered.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterDaemonTaskDefinitionInput(_SerdeShape): + """Dataclass for RegisterDaemonTaskDefinitionInput structure.""" + + family: str | None = ... + """ + You must specify a `family` for a daemon task definition. This family is + used as a name for your daemon task definition. Up to 255 letters + (uppercase and lowercase), numbers, underscores, and hyphens are + allowed. + """ + task_role_arn: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the IAM role that + containers in this daemon task can assume. All containers in this daemon + task are granted the permissions that are specified in this role. + """ + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role that grants + the Amazon ECS container agent permission to make Amazon Web Services + API calls on your behalf. The task execution role is required for daemon + tasks that pull container images from Amazon ECR or send container logs + to CloudWatch. + """ + container_definitions: list[DaemonContainerDefinition] | None = ... + """ + A list of container definitions in JSON format that describe the + containers that make up your daemon task. + """ + cpu: str | None = ... + """ + The number of CPU units used by the daemon task. It can be expressed as + an integer using CPU units (for example, `1024`). + """ + memory: str | None = ... + """ + The amount of memory (in MiB) used by the daemon task. It can be + expressed as an integer using MiB (for example, `1024`). + """ + volumes: list[DaemonVolume] | None = ... + """ + A list of volume definitions in JSON format that containers in your + daemon task can use. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the daemon task definition to help you + categorize and organize them. Each tag consists of a key and an optional + value. You define both of 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. + """ + pid_mode: str | None = ... + """ + The PID namespace mode for the daemon. The valid values are `none` and + `shared`. The default is `none`. + + If `none` is specified or no value is provided, the daemon runs with its + own PID namespace, isolated from other tasks. If `shared` is specified, + the daemon joins the host PID namespace, making it accessible to + non-daemon tasks that use `pidMode: "host"` or other daemons that use + `pidMode: "shared"`. + """ + ipc_mode: str | None = ... + """ + The IPC namespace mode for the daemon. The valid values are `none` and + `shared`. The default is `none`. + + If `none` is specified or no value is provided, the daemon runs with its + own IPC namespace, isolated from other tasks. If `shared` is specified, + the daemon joins the host IPC namespace, making it accessible to + non-daemon tasks that use `ipcMode: "host"` or other daemons that use + `ipcMode: "shared"`. + """ + +@dataclass(kw_only=True) +class RegisterDaemonTaskDefinitionOutput(_SerdeShape): + """Dataclass for RegisterDaemonTaskDefinitionOutput structure.""" + + daemon_task_definition_arn: str | None = ... + """ + The full Amazon Resource Name (ARN) of the registered daemon task + definition. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RegisterTaskDefinitionInput(_SerdeShape): + """""" + + family: str | None = ... + """ + You must specify a `family` for a task definition. You can use it track + multiple versions of the same task definition. The `family` is used as a + name for your task definition. Up to 255 letters (uppercase and + lowercase), numbers, underscores, and hyphens are allowed. + """ + task_role_arn: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the IAM role that + containers in this task can assume. All containers in this task are + granted the permissions that are specified in this role. For more + information, see [IAM Roles for + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role that grants + the Amazon ECS container agent permission to make Amazon Web Services + API calls on your behalf. For informationabout the required IAM roles + for Amazon ECS, see [IAM roles for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + network_mode: str | None = ... + """ + The Docker networking mode to use for the containers in the task. The + valid values are `none`, `bridge`, `awsvpc`, and `host`. If no network + mode is specified, the default is `bridge`. + + For Amazon ECS tasks on Fargate, the `awsvpc` network mode is required. + For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can + be used. For Amazon ECS tasks on Amazon EC2 Windows instances, + `` or `awsvpc` can be used. If the network mode is set to + `none`, you cannot specify port mappings in your container definitions, + and the tasks containers do not have external connectivity. The `host` + and `awsvpc` network modes offer the highest networking performance for + containers because they use the EC2 network stack instead of the + virtualized network stack provided by the `bridge` mode. + + With the `host` and `awsvpc` network modes, exposed container ports are + mapped directly to the corresponding host port (for the `host` network + mode) or the attached elastic network interface port (for the `awsvpc` + network mode), so you cannot take advantage of dynamic host port + mappings. + + Warning: + When using the `host` network mode, you should not run containers using + the root user (UID 0). It is considered best practice to use a non-root + user. + + If the network mode is `awsvpc`, the task is allocated an elastic + network interface, and you must specify a + [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) + value when you create a service or run a task with the task definition. + For more information, see [Task + Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If the network mode is `host`, you cannot run multiple instantiations of + the same task on a single container instance when port mappings are + used. + """ + container_definitions: list[ContainerDefinition] | None = ... + """ + A list of container definitions in JSON format that describe the + different containers that make up your task. + """ + volumes: list[Volume] | None = ... + """ + A list of volume definitions in JSON format that containers in your task + might use. + """ + placement_constraints: list[TaskDefinitionPlacementConstraint] | None = ... + """ + An array of placement constraint objects to use for the task. You can + specify a maximum of 10 constraints for each task. This limit includes + constraints in the task definition and those specified at runtime. + """ + requires_compatibilities: list[str] | None = ... + """ + The task launch type that Amazon ECS validates the task definition + against. A client exception is returned if the task definition doesn't + validate against the compatibilities specified. If no value is + specified, the parameter is omitted from the response. + """ + cpu: str | None = ... + """ + The number of CPU units used by the task. It can be expressed as an + integer using CPU units (for example, `1024`) or as a string using vCPUs + (for example, `1 vCPU` or `1 vcpu`) in a task definition. String values + are converted to an integer indicating the CPU units when the task + definition is registered. + + Note: + Task-level CPU and memory parameters are ignored for Windows containers. + We recommend specifying container-level resources for Windows + containers. + + If you're using the EC2 launch type or external launch type, this field + is optional. Supported values are between `128` CPU units (`0.125` + vCPUs) and `196608` CPU units (`192` vCPUs). If you do not specify a + value, the parameter is ignored. + + This field is required for Fargate. For information about the valid + values, see [Task + size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size) + in the *Amazon Elastic Container Service Developer Guide*. + """ + memory: str | None = ... + """ + The amount of memory (in MiB) used by the task. It can be expressed as + an integer using MiB (for example ,`1024`) or as a string using GB (for + example, `1GB` or `1 GB`) in a task definition. String values are + converted to an integer indicating the MiB when the task definition is + registered. + + Note: + Task-level CPU and memory parameters are ignored for Windows containers. + We recommend specifying container-level resources for Windows + containers. + + If using the EC2 launch type, this field is optional. + + If using the Fargate launch type, this field is required and you must + use one of the following values. This determines your range of supported + values for the `cpu` parameter. + + The CPU units cannot be less than 1 vCPU when you use Windows containers + on Fargate. + + - 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available `cpu` values: 256 + (.25 vCPU) + + - 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available `cpu` + values: 512 (.5 vCPU) + + - 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 + (7 GB), 8192 (8 GB) - Available `cpu` values: 1024 (1 vCPU) + + - Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 2048 (2 vCPU) + + - Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 4096 (4 vCPU) + + - Between 16 GB and 60 GB in 4 GB increments - Available `cpu` values: + 8192 (8 vCPU) + + This option requires Linux platform `1.4.0` or later. + + - Between 32GB and 120 GB in 8 GB increments - Available `cpu` values: + 16384 (16 vCPU) + + This option requires Linux platform `1.4.0` or later. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task definition to help you + categorize and organize them. Each tag consists of a key and an optional + value. You define both of 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. + """ + pid_mode: str | None = ... + """ + The process namespace to use for the containers in the task. The valid + values are `host` or `task`. On Fargate for Linux containers, the only + valid value is `task`. For example, monitoring sidecars might need + `pidMode` to access information about other containers running in the + same task. + + If `host` is specified, all containers within the tasks that specified + the `host` PID mode on the same container instance share the same + process namespace with the host Amazon EC2 instance. + + If `task` is specified, all containers within the specified task share + the same process namespace. + + If no value is specified, the The default is a private namespace for + each container. + + If the `host` PID mode is used, there's a heightened risk of undesired + process namespace exposure. + + Note: + This parameter is not supported for Windows containers. + Note: + This parameter is only supported for tasks that are hosted on Fargate if + the tasks are using platform version `1.4.0` or later (Linux). This + isn't supported for Windows containers on Fargate. + """ + ipc_mode: str | None = ... + """ + The IPC resource namespace to use for the containers in the task. The + valid values are `host`, `task`, or `none`. If `host` is specified, then + all containers within the tasks that specified the `host` IPC mode on + the same container instance share the same IPC resources with the host + Amazon EC2 instance. If `task` is specified, all containers within the + specified task share the same IPC resources. If `none` is specified, + then IPC resources within the containers of a task are private and not + shared with other containers in a task or on the container instance. If + no value is specified, then the IPC resource namespace sharing depends + on the Docker daemon setting on the container instance. + + If the `host` IPC mode is used, be aware that there is a heightened risk + of undesired IPC namespace expose. + + If you are setting namespaced kernel parameters using `systemControls` + for the containers in the task, the following will apply to your IPC + resource namespace. For more information, see [System + Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - For tasks that use the `host` IPC mode, IPC namespace related + `systemControls` are not supported. + + - For tasks that use the `task` IPC mode, IPC namespace related + `systemControls` will apply to all containers within a task. + + Note: + This parameter is not supported for Windows containers or tasks run on + Fargate. + """ + proxy_configuration: ProxyConfiguration | None = ... + """ + The configuration details for the App Mesh proxy. + + For tasks hosted on Amazon EC2 instances, the container instances + require at least version `1.26.0` of the container agent and at least + version `1.26.0-1` of the `ecs-init` package to use a proxy + configuration. If your container instances are launched from the Amazon + ECS-optimized AMI version `20190301` or later, then they contain the + required versions of the container agent and `ecs-init`. For more + information, see [Amazon ECS-optimized AMI + versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + inference_accelerators: list[InferenceAccelerator] | None = ... + """ + The Elastic Inference accelerators to use for the containers in the + task. + """ + ephemeral_storage: EphemeralStorage | None = ... + """ + The amount of ephemeral storage to allocate for the task. This parameter + is used to expand the total amount of ephemeral storage available, + beyond the default amount, for tasks hosted on Fargate. For more + information, see [Using data volumes in + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) + in the *Amazon ECS Developer Guide*. + + Note: + For tasks using the Fargate launch type, the task requires the following + platforms: + + - Linux platform version `1.4.0` or later. + """ + runtime_platform: RuntimePlatform | None = ... + """The operating system that your tasks definitions run on.""" + enable_fault_injection: bool | None = ... + """ + Enables fault injection when you register your task definition and + allows for fault injection requests to be accepted from the task's + containers. The default value is `false`. + """ + trusted_execution_configuration: TrustedExecutionConfiguration | None = ... + """ + The trusted execution configuration for tasks that use this task + definition, including the isolation mode and, if configured, an + attestation policy. + + Note: + Trusted execution is supported only for Amazon ECS Managed Instances. + """ + +@dataclass(kw_only=True) +class RegisterTaskDefinitionOutput(_SerdeShape): + """""" + + task_definition: TaskDefinition | None = ... + """The full description of the registered task definition.""" + tags: list[Tag] | None = ... + """The list of tags associated with the task definition.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RepositoryCredentials(_SerdeShape): + """The repository credentials for private registry authentication.""" + + credentials_parameter: str + """ + The Amazon Resource Name (ARN) of the secret containing the private + repository credentials. + + Note: + When you use the Amazon ECS API, CLI, or Amazon Web Services SDK, if the + secret exists in the same Region as the task that you're launching then + you can use either the full ARN or the name of the secret. When you use + the Amazon Web Services Management Console, you must specify the full + ARN of the secret. + """ + +@dataclass(kw_only=True) +class ResolvedConfiguration(_SerdeShape): + """ + The resolved configuration for a service revision, which contains the + actual resources your service revision uses, such as which target groups + serve traffic. + """ + + load_balancers: list[ServiceRevisionLoadBalancer] | None = ... + """ + The resolved load balancer configuration for the service revision. This + includes information about which target groups serve traffic and which + listener rules direct traffic to them. + """ + vpc_lattice_configurations: ( + list[ServiceRevisionVpcLatticeConfiguration] | None + ) = ... + """ + The resolved VPC Lattice configuration for the service revision. This + includes information about which target groups serve traffic and which + listener rules direct traffic to them. + """ + +@dataclass(kw_only=True) +class Resource(_SerdeShape): + """Describes the resources available for a container instance.""" + + name: str | None = ... + """ + The name of the resource, such as `CPU`, `MEMORY`, `PORTS`, `PORTS_UDP`, + or a user-defined resource. + """ + type: str | None = ... + """ + The type of the resource. Valid values: `INTEGER`, `DOUBLE`, `LONG`, or + `STRINGSET`. + """ + double_value: float = ... + """ + When the `doubleValue` type is set, the value of the resource must be a + double precision floating-point type. + """ + long_value: int = ... + """ + When the `longValue` type is set, the value of the resource must be an + extended precision floating-point type. + """ + integer_value: int = ... + """ + When the `integerValue` type is set, the value of the resource must be + an integer. + """ + string_set_value: list[str] | None = ... + """ + When the `stringSetValue` type is set, the value of the resource must be + a string type. + """ + +@dataclass(kw_only=True) +class ResourceInUseException(ServiceError, _SerdeShape): + """The specified resource is in-use and can't be removed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ResourceManagementType(UnknownEnumMixin, StrEnum): + CUSTOMER = "CUSTOMER" + ECS = "ECS" + +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """The specified resource wasn't found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceRequirement(_SerdeShape): + """ + The type and amount of a resource to assign to a container. The + supported resource types are GPUs, Neuron devices, and Elastic Inference + accelerators. For more information, see [Working with GPUs on Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html) + or [Working with Amazon Elastic Inference on Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-inference.html) + in the *Amazon Elastic Container Service Developer Guide* + """ + + value: str = ... + """ + The value for the specified resource type. + + You must specify this parameter unless the type is `GPU` and you specify + `sharingStrategy`. + + When the type is `GPU`, the value is the number of physical `GPUs` the + Amazon ECS container agent reserves for the container. The number of + GPUs that's reserved for all containers in a task can't exceed the + number of available GPUs on the container instance that the task is + launched on. You can also specify `ALL` to allocate all available GPUs + on the instance to the container. + + When the type is `NeuronDevice`, the value must be `ALL`. This allocates + all available Neuron devices on the instance to the container. Only one + container in a task can specify `NeuronDevice` resources. This resource + type is only supported on Managed Instances. + + When the type is `InferenceAccelerator`, the `value` matches the + `deviceName` for an + [InferenceAccelerator](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html) + specified in a task definition. + """ + type: str + """The type of resource to assign to a container.""" + sharing_strategy: SharingStrategy | None = ... + """ + The strategy that the container uses to share a GPU with other + containers. Specify a sharing strategy only when the type is `GPU`. For + a GPU resource requirement, specify either `value` or `sharingStrategy`, + but not both. If you don't specify a sharing strategy, the container + has exclusive use of each GPU that Amazon ECS assigns to it. The + containers in a task that request GPUs must all use the same option. + + You can use GPU sharing with tasks that run on Amazon EC2 instances or + Amazon ECS Managed Instances. Task definitions that require `EXTERNAL` + compatibility don't support GPU sharing. + """ + +class ResourceType(UnknownEnumMixin, StrEnum): + GPU = "GPU" + INFERENCE_ACCELERATOR = "InferenceAccelerator" + NEURON_DEVICE = "NeuronDevice" + +@dataclass(kw_only=True) +class Rollback(_SerdeShape): + """Information about the service deployment rollback.""" + + reason: str | None = ... + """ + The reason the rollback happened. For example, the circuit breaker + initiated the rollback operation. + """ + started_at: datetime | None = ... + """ + Time time that the rollback started. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + service_revision_arn: str | None = ... + """The ARN of the service revision deployed as part of the rollback.""" + +@dataclass(kw_only=True) +class RunTaskInput(_SerdeShape): + """""" + + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy to use for the task. + + Note: + If you want to use Amazon ECS Managed Instances, you must use the + `capacityProviderStrategy` request parameter and omit the `launchType` + request parameter. + + If a `capacityProviderStrategy` is specified, the `launchType` parameter + must be omitted. If no `capacityProviderStrategy` or `launchType` is + specified, the `defaultCapacityProviderStrategy` for the cluster is + used. + + When you use cluster auto scaling, you must specify + `capacityProviderStrategy` and not `launchType`. + + A capacity provider strategy can contain a maximum of 20 capacity + providers. + """ + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster to run + your task on. If you do not specify a cluster, the default cluster is + assumed. + + Each account receives a default cluster the first time you use the + service, but you may also create other clusters. + """ + count: int | None = ... + """ + The number of instantiations of the specified task to place on your + cluster. You can specify up to 10 tasks for each call. + """ + enable_ecs_managed_tags: bool = ... + """ + Specifies whether to use Amazon ECS managed tags for the task. For more + information, see [Tagging Your Amazon ECS + Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + enable_execute_command: bool = ... + """ + Determines whether to use the execute command functionality for the + containers in this task. If `true`, this enables execute command + functionality on all containers in the task. + + If `true`, then the task definition must have a task role, or you must + provide one as an override. + """ + group: str | None = ... + """ + The name of the task group to associate with the task. The default value + is the family name of the task definition (for example, + `family:my-family-name`). + """ + launch_type: str | None = ... + """ + The infrastructure to run your standalone task on. For more information, + see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + If you want to use Amazon ECS Managed Instances, you must use the + `capacityProviderStrategy` request parameter and omit the `launchType` + request parameter. + + The `FARGATE` launch type runs your tasks on Fargate On-Demand + infrastructure. + + Note: + Fargate Spot infrastructure is available for use but a capacity provider + strategy must be used. For more information, see [Fargate capacity + providers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-capacity-providers.html) + in the *Amazon ECS Developer Guide*. + + The `EC2` launch type runs your tasks on Amazon EC2 instances registered + to your cluster. + + The `EXTERNAL` launch type runs your tasks on your on-premises server or + virtual machine (VM) capacity registered to your cluster. + + A task can use either a launch type or a capacity provider strategy. If + a `launchType` is specified, the `capacityProviderStrategy` parameter + must be omitted. + + When you use cluster auto scaling, you must specify + `capacityProviderStrategy` and not `launchType`. + """ + network_configuration: NetworkConfiguration | None = ... + """ + The network configuration for the task. This parameter is required for + task definitions that use the `awsvpc` network mode to receive their own + elastic network interface, and it isn't supported for other network + modes. For more information, see [Task + networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + overrides: TaskOverride | None = ... + """ + A list of container overrides in JSON format that specify the name of a + container in the specified task definition and the overrides it should + receive. You can override the default command for a container (that's + specified in the task definition or Docker image) with a `command` + override. You can also override existing environment variables (that are + specified in the task definition or Docker image) on a container or add + new environment variables to it with an `environment` override. + + A total of 8192 characters are allowed for overrides. This limit + includes the JSON formatting characters of the override structure. + """ + placement_constraints: list[PlacementConstraint] | None = ... + """ + An array of placement constraint objects to use for the task. You can + specify up to 10 constraints for each task (including constraints in the + task definition and those specified at runtime). + """ + placement_strategy: list[PlacementStrategy] | None = ... + """ + The placement strategy objects to use for the task. You can specify a + maximum of 5 strategy rules for each task. + """ + platform_version: str | None = ... + """ + The platform version the task uses. A platform version is only specified + for tasks hosted on Fargate. If one isn't specified, the `LATEST` + platform version is used. For more information, see [Fargate platform + versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the task definition to the + task. If no value is specified, the tags aren't propagated. Tags can + only be propagated to the task during task creation. To add tags to a + task after task creation, use + the[TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) + API action. + + Note: + An error will be received if you specify the `SERVICE` option when + running a task. + """ + reference_id: str | None = ... + """ + This parameter is only used by Amazon ECS. It is not intended for use by + customers. + """ + started_by: str | None = ... + """ + An optional tag specified when a task is started. For example, if you + automatically trigger a task to run a batch process job, you could apply + a unique identifier for that job to your task with the `startedBy` + parameter. You can then identify which tasks belong to that job by + filtering the results of a + [ListTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html) + call with the `startedBy` value. Up to 128 letters (uppercase and + lowercase), numbers, hyphens (-), forward slash (/), and underscores + (_) are allowed. + + If a task is started by an Amazon ECS service, then the `startedBy` + parameter contains the deployment ID of the service that starts it. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task to help you categorize and + organize them. Each tag consists of a key and an optional value, both of + which you define. + + 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. + """ + task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full ARN of the task + definition to run. If a `revision` isn't specified, the latest `ACTIVE` + revision is used. + + The full ARN value must match the value that you specified as the + `Resource` of the principal's permissions policy. + + When you specify a task definition, you must either specify a specific + revision, or all revisions in the ARN. + + To specify a specific revision, include the revision number in the ARN. + For example, to specify revision 2, use + `arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2`. + + To specify all revisions, use the wildcard (*) in the ARN. For example, + to specify all revisions, use + `arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*`. + + For more information, see [Policy Resources for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-resources) + in the Amazon Elastic Container Service Developer Guide. + """ + client_token: str | None = ... + """ + An identifier that you provide to ensure the idempotency of the request. + It must be unique and is case sensitive. Up to 64 characters are + allowed. The valid characters are characters in the range of 33-126, + inclusive. For more information, see [Ensuring + idempotency](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/ECS_Idempotency.html). + """ + volume_configurations: list[TaskVolumeConfiguration] | None = ... + """ + The details of the volume that was `configuredAtLaunch`. You can + configure the size, volumeType, IOPS, throughput, snapshot and + encryption in + [TaskManagedEBSVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html). + The `name` of the volume must match the `name` from the task definition. + """ + +@dataclass(kw_only=True) +class RunTaskOutput(_SerdeShape): + """""" + + tasks: list[Task] | None = ... + """ + A full description of the tasks that were run. The tasks that were + successfully placed on your cluster are described here. + """ + failures: list[Failure] | None = ... + """ + Any failures associated with the call. + + For information about how to address failures, see [Service event + messages](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html#service-event-messages-list) + and [API failure + reasons](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RuntimePlatform(_SerdeShape): + """ + Information about the platform for the Amazon ECS service or task. + + For more information about `RuntimePlatform`, see + [RuntimePlatform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + cpu_architecture: str | None = ... + """ + The CPU architecture. + + You can run your Linux tasks on an ARM-based platform by setting the + value to `ARM64`. This option is available for tasks that run on Linux + Amazon EC2 instance, Amazon ECS Managed Instances, or Linux containers + on Fargate. + """ + operating_system_family: str | None = ... + """The operating system.""" + +@dataclass(kw_only=True) +class RuntimePlatformOverride(_SerdeShape): + """ + The runtime platform that Amazon ECS applies to a service revision. This + value overrides the runtime platform specified in the task definition. + You can't set this value. + """ + + cpu_architecture: str | None = ... + """ + The CPU architecture that tasks in this service revision run on. This + value might differ from the architecture declared in the task + definition---for example, when Amazon ECS detects an architecture + mismatch during an Amazon ECS Express deployment and runs tasks on a + different architecture. You can't set this value. + + Valid values: + + - `X86_64` - The x86 64-bit architecture. + + - `ARM64` - The 64-bit ARM architecture. + """ + +@dataclass(kw_only=True) +class S3FilesVolumeConfiguration(_SerdeShape): + """ + This parameter is specified when you're using an Amazon S3 Files file + system for task storage. For more information, see [Amazon S3 Files + volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/s3files-volumes.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Warning: + Your task definition must include a Task IAM Role. See [IAM role for + attaching your file system to Amazon Web Services compute + resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-prereq-policies.html#s3-files-prereq-iam-compute-role) + for required permissions. + """ + + file_system_arn: str + """The full ARN of the S3 Files file system to mount.""" + root_directory: str | None = ... + """ + The directory within the Amazon S3 Files file system to mount as the + root directory. If this parameter is omitted, the root of the Amazon S3 + Files file system will be used. Specifying `/` will have the same effect + as omitting this parameter. + + Warning: + If a S3 Files access point is specified in the `accessPointArn`, the + root directory parameter must either be omitted or set to `/` which will + enforce the path set on the S3 Files access point. + """ + transit_encryption_port: int | None = ... + """ + The port to use for sending encrypted data between the ECS host and the + S3 Files file system. If you do not specify a transit encryption port, + it will use the port selection strategy that the Amazon S3 Files mount + helper uses. For more information, see [S3 Files mount + helper](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-mounting.html). + """ + access_point_arn: str | None = ... + """ + The full ARN of the S3 Files access point to use. If an access point is + specified, the root directory value specified in the + `S3FilesVolumeConfiguration` must either be omitted or set to `/` which + will enforce the path set on the S3 Files access point. For more + information, see [Creating S3 Files access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-access-points-creating.html). + """ + +@dataclass(kw_only=True) +class Scale(_SerdeShape): + """ + A floating-point percentage of the desired number of tasks to place and + keep running in the task set. + """ + + value: float = ... + """ + The value, specified as a percent total of a service's `desiredCount`, + to scale the task set. Accepted values are numbers between 0 and 100. + """ + unit: str | None = ... + """The unit of measure for the scale value.""" + +class ScaleUnit(UnknownEnumMixin, StrEnum): + PERCENT = "PERCENT" + +class SchedulingStrategy(UnknownEnumMixin, StrEnum): + REPLICA = "REPLICA" + DAEMON = "DAEMON" + +class Scope(UnknownEnumMixin, StrEnum): + TASK = "task" + SHARED = "shared" + +@dataclass(kw_only=True) +class Secret(_SerdeShape): + """ + An object representing the secret to expose to your container. Secrets + can be exposed to a container in the following ways: + + - To inject sensitive data into your containers as environment + variables, use the `secrets` container definition parameter. + + - To reference sensitive information in the log configuration of a + container, use the `secretOptions` container definition parameter. + + For more information, see [Specifying sensitive + data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + name: str + """The name of the secret.""" + value_from: str + """ + The secret to expose to the container. The supported values are either + the full ARN of the Secrets Manager secret or the full ARN of the + parameter in the SSM Parameter Store. + + For information about the require Identity and Access Management + permissions, see [Required IAM permissions for Amazon ECS + secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) + (for Secrets Manager) or [Required IAM permissions for Amazon ECS + secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) + (for Systems Manager Parameter store) in the *Amazon Elastic Container + Service Developer Guide*. + + Note: + If the SSM Parameter Store parameter exists in the same Region as the + task you're launching, then you can use either the full ARN or name of + the parameter. If the parameter exists in a different Region, then the + full ARN must be specified. + """ + +@dataclass(kw_only=True) +class ServerException(ServiceError, _SerdeShape): + """These errors are usually caused by a server issue.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Service(_SerdeShape): + """Details on a service within a cluster.""" + + service_arn: str | None = ... + """ + The ARN that identifies the service. For more information about the ARN + format, see [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids) + in the *Amazon ECS Developer Guide*. + """ + service_name: str | None = ... + """ + The name of your service. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. Service names must be + unique within a cluster. However, you can have similarly named services + in multiple clusters within a Region or across multiple Regions. + """ + cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) of the cluster that hosts the service.""" + load_balancers: list[LoadBalancer] | None = ... + """ + A list of Elastic Load Balancing load balancer objects. It contains the + load balancer name, the container name, and the container port to access + from the load balancer. The container name is as it appears in a + container definition. + """ + service_registries: list[ServiceRegistry] | None = ... + """ + The details for the service discovery registries to assign to this + service. For more information, see [Service + Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + """ + status: str | None = ... + """ + The status of the service. The valid values are `ACTIVE`, `DRAINING`, or + `INACTIVE`. + """ + desired_count: int = ... + """ + The desired number of instantiations of the task definition to keep + running on the service. This value is specified when the service is + created with + [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) + , and it can be modified with + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + """ + running_count: int = ... + """The number of tasks in the cluster that are in the `RUNNING` state.""" + pending_count: int = ... + """The number of tasks in the cluster that are in the `PENDING` state.""" + launch_type: str | None = ... + """ + The launch type the service is using. When using the DescribeServices + API, this field is omitted if the service was created using a capacity + provider strategy. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The capacity provider strategy the service uses. When using the + DescribeServices API, this field is omitted if the service was created + using a launch type. + """ + platform_version: str | None = ... + """ + The platform version to run your service on. A platform version is only + specified for tasks that are hosted on Fargate. If one isn't specified, + the `LATEST` platform version is used. For more information, see + [Fargate Platform + Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + platform_family: str | None = ... + """ + The operating system that your tasks in the service run on. A platform + family is specified only for tasks using the Fargate launch type. + + All tasks that run as part of this service must use the same + `platformFamily` value as the service (for example, `LINUX`). + """ + task_definition: str | None = ... + """ + The task definition to use for tasks in the service. This value is + specified when the service is created with + [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html), + and it can be modified with + [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html). + """ + deployment_configuration: DeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how many tasks run during + the deployment and the ordering of stopping and starting tasks. + """ + task_sets: list[TaskSet] | None = ... + """ + Information about a set of Amazon ECS tasks in either an CodeDeploy or + an `EXTERNAL` deployment. An Amazon ECS task set includes details such + as the desired number of tasks, how many tasks are running, and whether + the task set serves production traffic. + """ + deployments: list[Deployment] | None = ... + """The current state of deployments for the service.""" + role_arn: str | None = ... + """ + The ARN of the IAM role that's associated with the service. It allows + the Amazon ECS container agent to register container instances with an + Elastic Load Balancing load balancer. + """ + events: list[ServiceEvent] | None = ... + """ + The event stream for your service. A maximum of 100 of the latest events + are displayed. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the service was created.""" + current_service_deployment: str | None = ... + """The ARN of the current service deployment.""" + current_service_revisions: list[ServiceCurrentRevisionSummary] | None = ... + """The list of the service revisions.""" + placement_constraints: list[PlacementConstraint] | None = ... + """The placement constraints for the tasks in the service.""" + placement_strategy: list[PlacementStrategy] | None = ... + """ + The placement strategy that determines how tasks for the service are + placed. + """ + network_configuration: NetworkConfiguration | None = ... + """ + The VPC subnet and security group configuration for tasks that receive + their own elastic network interface by using the `awsvpc` networking + mode. + """ + health_check_grace_period_seconds: int | None = ... + """ + The period of time, in seconds, that the Amazon ECS service scheduler + ignores unhealthy Elastic Load Balancing, VPC Lattice, and container + health checks after a task has first started. + + If your service has more running tasks than desired, unhealthy tasks in + the grace period might be stopped to reach the desired count. + """ + scheduling_strategy: str | None = ... + """ + The scheduling strategy to use for the service. For more information, + see + [Services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). + + There are two service scheduler strategies available. + + - `REPLICA`-The replica scheduling strategy places and maintains the + desired number of tasks across your cluster. By default, the service + scheduler spreads tasks across Availability Zones. You can use task + placement strategies and constraints to customize task placement + decisions. + + - `DAEMON`-The daemon scheduling strategy deploys exactly one task on + each active container instance. This task meets all of the task + placement constraints that you specify in your cluster. The service + scheduler also evaluates the task placement constraints for running + tasks. It stop tasks that don't meet the placement constraints. + + Note: + Fargate tasks don't support the `DAEMON` scheduling strategy. + """ + deployment_controller: DeploymentController | None = ... + """The deployment controller type the service is using.""" + tags: list[Tag] | None = ... + """ + The metadata that you apply to the service to help you categorize and + organize them. Each tag consists of a key and an optional value. You + define bot the key and value. + + 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. + """ + created_by: str | None = ... + """The principal that created the service.""" + enable_ecs_managed_tags: bool = ... + """ + Determines whether to use Amazon ECS managed tags for the tasks in the + service. For more information, see [Tagging Your Amazon ECS + Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + propagate_tags: str | None = ... + """ + Determines whether to propagate the tags from the task definition or the + service to the task. If no value is specified, the tags aren't + propagated. + """ + enable_execute_command: bool = ... + """ + Determines whether the execute command functionality is turned on for + the service. If `true`, the execute command functionality is turned on + for all containers in tasks as part of the service. + """ + availability_zone_rebalancing: str | None = ... + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across + Availability + Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) + in the Amazon Elastic Container Service Developer Guide . + + The default behavior of `AvailabilityZoneRebalancing` differs between + create and update requests: + + - For create service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults the value to + `ENABLED`. + + - For update service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults to the existing + service's `AvailabilityZoneRebalancing` value. If the service never + had an `AvailabilityZoneRebalancing` value set, Amazon ECS treats this + as `DISABLED`. + """ + resource_management_type: str | None = ... + """ + Identifies whether an ECS Service is an Express Service managed by ECS, + or managed by the customer. The valid values are `ECS` and `CUSTOMER` + """ + +@dataclass(kw_only=True) +class ServiceConnectAccessLogConfiguration(_SerdeShape): + """ + Configuration for Service Connect access logging. Access logs provide + detailed information about requests made to your service, including + request patterns, response codes, and timing data for debugging and + monitoring purposes. + + Note: + To enable access logs, you must also specify a `logConfiguration` in the + `serviceConnectConfiguration`. + """ + + format: str + """ + The format for Service Connect access log output. Choose TEXT for + human-readable logs or JSON for structured data that integrates well + with log analysis tools. + """ + include_query_parameters: str | None = ... + """ + Specifies whether to include query parameters in Service Connect access + logs. + + When enabled, query parameters from HTTP requests are included in the + access logs. Consider security and privacy implications when enabling + this feature, as query parameters may contain sensitive information such + as request IDs and tokens. By default, this parameter is `DISABLED`. + """ + +class ServiceConnectAccessLoggingFormat(UnknownEnumMixin, StrEnum): + """ + The format for Service Connect access log output. Choose TEXT for + human-readable logs or JSON for structured data that integrates well + with log analysis tools. + """ + + TEXT = "TEXT" + JSON = "JSON" + +@dataclass(kw_only=True) +class ServiceConnectClientAlias(_SerdeShape): + """ + Each alias (\"endpoint\") is a fully-qualified name and port number that + other tasks (\"clients\") can use to connect to this service. + + Each name and port mapping must be unique within the namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + port: int + """ + The listening port number for the Service Connect proxy. This port is + available inside of all of the tasks within the same namespace. + + To avoid changing your applications in client Amazon ECS services, set + this to the same port that the client application uses by default. For + more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + dns_name: str | None = ... + """ + The `dnsName` is the name that you use in the applications of client + tasks to connect to this service. The name must be a valid DNS name but + doesn't need to be fully-qualified. The name can include up to 127 + characters. The name can include lowercase letters, numbers, underscores + (_), hyphens (-), and periods (.). The name can't start with a hyphen. + + If this parameter isn't specified, the default value of + `discoveryName.namespace` is used. If the `discoveryName` isn't + specified, the port mapping name from the task definition is used in + `portName.namespace`. + + To avoid changing your applications in client Amazon ECS services, set + this to the same name that the client application uses by default. For + example, a few common names are `database`, `db`, or the lowercase name + of a database, such as `mysql` or `redis`. For more information, see + [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + test_traffic_rules: ServiceConnectTestTrafficRules | None = ... + """ + The configuration for test traffic routing rules used during blue/green + deployments with Amazon ECS Service Connect. This allows you to route a + portion of traffic to the new service revision of your service for + testing before shifting all production traffic. + """ + +@dataclass(kw_only=True) +class ServiceConnectConfiguration(_SerdeShape): + """ + The Service Connect configuration of your Amazon ECS service. The + configuration for this service to discover and connect to services, and + be discovered by, and connected from, other services within a namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + enabled: bool = ... + """Specifies whether to use Service Connect with this service.""" + namespace: str | None = ... + """ + The namespace name or full Amazon Resource Name (ARN) of the Cloud Map + namespace for use with Service Connect. The namespace must be in the + same Amazon Web Services Region as the Amazon ECS service and cluster. + The type of namespace doesn't affect Service Connect. For more + information about Cloud Map, see [Working with + Services](https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html) + in the *Cloud Map Developer Guide*. + """ + services: list[ServiceConnectService] | None = ... + """ + The list of Service Connect service objects. These are names and aliases + (also known as endpoints) that are used by other Amazon ECS services to + connect to this service. + + This field is not required for a \"client\" Amazon ECS service that's a + member of a namespace only to connect to other services within the + namespace. An example of this would be a frontend application that + accepts incoming requests from either a load balancer that's attached + to the service or by other means. + + An object selects a port from the task definition, assigns a name for + the Cloud Map service, and a list of aliases (endpoints) and ports for + client applications to refer to this service. + """ + log_configuration: LogConfiguration | None = ... + """ + The log configuration for the container. This parameter maps to + `LogConfig` in the docker container create command and the + `--log-driver` option to docker run. + + By default, containers use the same logging driver that the Docker + daemon uses. However, the container might use a different logging driver + than the Docker daemon by specifying a log driver configuration in the + container definition. + + Understand the following when specifying a log configuration for your + containers. + + - Amazon ECS currently supports a subset of the logging drivers + available to the Docker daemon. Additional log drivers may be + available in future releases of the Amazon ECS container agent. + + For tasks on Fargate, the supported log drivers are `awslogs`, + `splunk`, and `awsfirelens`. + + For tasks hosted on Amazon EC2 instances, the supported log drivers + are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`,`syslog`, + `splunk`, and `awsfirelens`. + + For tasks on Amazon ECS Managed Instances, the supported log drivers + are `awslogs`, `splunk`, `awsfirelens`, and `json-file`. + + - This parameter requires version 1.18 of the Docker Remote API or + greater on your container instance. + + - For tasks that are hosted on Amazon EC2 instances, the Amazon ECS + container agent must register the available logging drivers with the + `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers + placed on that instance can use these log configuration options. For + more information, see [Amazon ECS container agent + configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - For tasks that are on Fargate, because you don't have access to the + underlying infrastructure your tasks are hosted on, any additional + software needed must be installed outside of the task. For example, + the Fluentd output aggregators or a remote host running Logstash to + send Gelf logs to. + """ + access_log_configuration: ServiceConnectAccessLogConfiguration | None = ... + """ + The configuration for Service Connect access logging. Access logs + capture detailed information about requests made to your service, + including request patterns, response codes, and timing data. They can be + useful for debugging connectivity issues, monitoring service + performance, and auditing service-to-service communication for security + and compliance purposes. + + Note: + To enable access logs, you must also specify a `logConfiguration` in the + `serviceConnectConfiguration`. + """ + container_configurations: list[ServiceConnectContainerConfiguration] | None = ... + """ + The settings for the Service Connect proxy container that Amazon ECS + adds to each task in this service. Each object in the list sets exactly + one setting, and each setting can appear only once in the list. + + Your changes to these settings apply only to tasks that Amazon ECS + launches after you update the service. Your running tasks keep their + existing settings until Amazon ECS replaces them. If you update the + `serviceConnectConfiguration` of your service and don't include + `containerConfigurations`, the proxy container settings return to their + defaults. + """ + +@dataclass +class ServiceConnectContainerConfigurationLogLevel(_SerdeShape): + """ + The log level of the Service Connect proxy container. Set the log level + to `debug` to collect more detailed proxy logs when you troubleshoot + connectivity issues between services, and set it back to `info` when you + finish. Debug logging increases the volume of logs that the proxy + container writes. If you don't specify a log level, the default is + `info`. + """ + + value: str + +@dataclass +class ServiceConnectContainerConfigurationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +ServiceConnectContainerConfiguration = Union[ + ServiceConnectContainerConfigurationLogLevel + | ServiceConnectContainerConfigurationUnknown +] +""" +Contains a configuration setting for the Service Connect proxy +container, such as the log level. Specify exactly one member in each +object. +""" + +class _ServiceConnectContainerConfigurationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> ServiceConnectContainerConfiguration: ... + +class ServiceConnectContainerLogLevel(UnknownEnumMixin, StrEnum): + """ + The log level of the Service Connect proxy container. + + Valid values: + + - `debug` - Collects more detailed proxy logs for troubleshooting + connectivity issues between services. + + - `info` - The default log level. + """ + + DEBUG = "debug" + INFO = "info" + +class ServiceConnectIncludeQueryParameters(UnknownEnumMixin, StrEnum): + """ + Controls whether query parameters are included in Service Connect access + logs. Consider security and privacy implications when enabling this + feature. By default, this parameter is `DISABLED`. + """ + + DISABLED = "DISABLED" + ENABLED = "ENABLED" + +@dataclass(kw_only=True) +class ServiceConnectService(_SerdeShape): + """ + The Service Connect service object configuration. For more information, + see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + port_name: str + """ + The `portName` must match the name of one of the `portMappings` from all + the containers in the task definition of this Amazon ECS service. + """ + discovery_name: str | None = ... + """ + The `discoveryName` is the name of the new Cloud Map service that Amazon + ECS creates for this Amazon ECS service. This must be unique within the + Cloud Map namespace. The name can contain up to 64 characters. The name + can include lowercase letters, numbers, underscores (_), and hyphens + (-). The name can't start with a hyphen. + + If the `discoveryName` isn't specified, the port mapping name from the + task definition is used in `portName.namespace`. + """ + client_aliases: list[ServiceConnectClientAlias] | None = ... + """ + The list of client aliases for this Service Connect service. You use + these to assign names that can be used by client applications. The + maximum number of client aliases that you can have in this list is 1. + + Each alias (\"endpoint\") is a fully-qualified name and port number that + other Amazon ECS tasks (\"clients\") can use to connect to this service. + + Each name and port mapping must be unique within the namespace. + + For each `ServiceConnectService`, you must provide at least one + `clientAlias` with one `port`. + """ + ingress_port_override: int | None = ... + """ + The port number for the Service Connect proxy to listen on. + + Use the value of this field to bypass the proxy for traffic on the port + number specified in the named `portMapping` in the task definition of + this application, and then use it in your VPC security groups to allow + traffic into the proxy for this Amazon ECS service. + + In `awsvpc` mode and Fargate, the default value is the container port + number. The container port number is in the `portMapping` in the task + definition. In bridge mode, the default value is the ephemeral port of + the Service Connect proxy. + """ + timeout: TimeoutConfiguration | None = ... + """ + A reference to an object that represents the configured timeouts for + Service Connect. + """ + tls: ServiceConnectTlsConfiguration | None = ... + """ + A reference to an object that represents a Transport Layer Security + (TLS) configuration. + """ + +@dataclass(kw_only=True) +class ServiceConnectServiceResource(_SerdeShape): + """ + The Service Connect resource. Each configuration maps a discovery name + to a Cloud Map service name. The data is stored in Cloud Map as part of + the Service Connect configuration for each discovery name of this Amazon + ECS service. + + A task can resolve the `dnsName` for each of the `clientAliases` of a + service. However a task can't resolve the discovery names. If you want + to connect to a service, refer to the `ServiceConnectConfiguration` of + that service for the list of `clientAliases` that you can use. + """ + + discovery_name: str | None = ... + """ + The discovery name of this Service Connect resource. + + The `discoveryName` is the name of the new Cloud Map service that Amazon + ECS creates for this Amazon ECS service. This must be unique within the + Cloud Map namespace. The name can contain up to 64 characters. The name + can include lowercase letters, numbers, underscores (_), and hyphens + (-). The name can't start with a hyphen. + + If the `discoveryName` isn't specified, the port mapping name from the + task definition is used in `portName.namespace`. + """ + discovery_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the service in Cloud Map that matches + the discovery name for this Service Connect resource. You can use this + ARN in other integrations with Cloud Map. However, Service Connect + can't ensure connectivity outside of Amazon ECS. + """ + +@dataclass(kw_only=True) +class ServiceConnectTestTrafficHeaderMatchRules(_SerdeShape): + """ + The header matching rules for test traffic routing in Amazon ECS + blue/green deployments. These rules determine how incoming requests are + matched based on HTTP headers to route test traffic to the new service + revision. + """ + + exact: str + """ + The exact value that the HTTP header must match for the test traffic + routing rule to apply. This provides precise control over which requests + are routed to the new service revision during blue/green deployments. + """ + +@dataclass(kw_only=True) +class ServiceConnectTestTrafficHeaderRules(_SerdeShape): + """ + The HTTP header rules used to identify and route test traffic during + Amazon ECS blue/green deployments. These rules specify which HTTP + headers to examine and what values to match for routing decisions. + + For more information, see [Service Connect for Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect-blue-green.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + name: str + """ + The name of the HTTP header to examine for test traffic routing. Common + examples include custom headers like `X-Test-Version` or + `X-Canary-Request` that can be used to identify test traffic. + """ + value: ServiceConnectTestTrafficHeaderMatchRules | None = ... + """ + The header value matching configuration that determines how the HTTP + header value is evaluated for test traffic routing decisions. + """ + +@dataclass(kw_only=True) +class ServiceConnectTestTrafficRules(_SerdeShape): + """ + The test traffic routing configuration for Amazon ECS blue/green + deployments. This configuration allows you to define rules for routing + specific traffic to the new service revision during the deployment + process, allowing for safe testing before full production traffic shift. + + For more information, see [Service Connect for Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect-blue-green.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + header: ServiceConnectTestTrafficHeaderRules + """ + The HTTP header-based routing rules that determine which requests should + be routed to the new service version during blue/green deployment + testing. These rules provide fine-grained control over test traffic + routing based on request headers. + """ + +@dataclass(kw_only=True) +class ServiceConnectTlsCertificateAuthority(_SerdeShape): + """The certificate root authority that secures your service.""" + + aws_pca_authority_arn: str | None = ... + """ + The ARN of the Amazon Web Services Private Certificate Authority + certificate. + """ + +@dataclass(kw_only=True) +class ServiceConnectTlsConfiguration(_SerdeShape): + """ + The key that encrypts and decrypts your resources for Service Connect + TLS. + """ + + issuer_certificate_authority: ServiceConnectTlsCertificateAuthority + """The signer certificate authority.""" + kms_key: str | None = ... + """The Amazon Web Services Key Management Service key.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that's associated with + the Service Connect TLS. + """ + +@dataclass(kw_only=True) +class ServiceCurrentRevisionSummary(_SerdeShape): + """The summary of the current service revision configuration""" + + arn: str | None = ... + """The ARN of the current service revision.""" + requested_task_count: int = ... + """The number of requested tasks in the current service revision""" + running_task_count: int = ... + """The number of running tasks of the current service revision""" + pending_task_count: int = ... + """The number of pending tasks in the current service revision""" + +@dataclass(kw_only=True) +class ServiceDeployment(_SerdeShape): + """ + Information about the service deployment. + + Service deployments provide a comprehensive view of your deployments. + For information about service deployments, see [View service history + using Amazon ECS service + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-deployment.html) + in the Amazon Elastic Container Service Developer Guide . + """ + + service_deployment_arn: str | None = ... + """The ARN of the service deployment.""" + service_arn: str | None = ... + """The ARN of the service for this service deployment.""" + cluster_arn: str | None = ... + """The ARN of the cluster that hosts the service.""" + created_at: datetime | None = ... + """ + The time the service deployment was created. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + started_at: datetime | None = ... + """ + The time the service deployment statred. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + finished_at: datetime | None = ... + """ + The time the service deployment finished. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + stopped_at: datetime | None = ... + """ + The time the service deployment stopped. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + + The service deployment stops when any of the following actions happen: + + - A user manually stops the deployment + + - The rollback option is not in use for the failure detection mechanism + (the circuit breaker or alarm-based) and the service fails. + """ + updated_at: datetime | None = ... + """ + The time that the service deployment was last updated. The format is + yyyy-MM-dd HH:mm:ss.SSSSSS. + """ + source_service_revisions: list[ServiceRevisionSummary] | None = ... + """The currently deployed workload configuration.""" + target_service_revision: ServiceRevisionSummary | None = ... + """The workload configuration being deployed.""" + status: str | None = ... + """The service deployment state.""" + status_reason: str | None = ... + """ + Information about why the service deployment is in the current status. + For example, the circuit breaker detected a failure. + """ + lifecycle_stage: str | None = ... + """ + The current lifecycle stage of the deployment. Possible values include: + + - RECONCILE_SERVICE + + The reconciliation stage that only happens when you start a new + service deployment with more than 1 service revision in an ACTIVE + state. + + - PRE_SCALE_UP + + The green service revision has not started. The blue service revision + is handling 100% of the production traffic. There is no test traffic. + + - SCALE_UP + + The stage when the green service revision scales up to 100% and + launches new tasks. The green service revision is not serving any + traffic at this point. + + - POST_SCALE_UP + + The green service revision has started. The blue service revision is + handling 100% of the production traffic. There is no test traffic. + + - TEST_TRAFFIC_SHIFT + + The blue and green service revisions are running. The blue service + revision handles 100% of the production traffic. The green service + revision is migrating from 0% to 100% of test traffic. + + - POST_TEST_TRAFFIC_SHIFT + + The test traffic shift is complete. The green service revision handles + 100% of the test traffic. + + - PRE_PRODUCTION_TRAFFIC_SHIFT + + Occurs before production traffic shift. For linear and canary + deployments, this stage is invoked before every traffic shift step. + + - PRODUCTION_TRAFFIC_SHIFT + + Production traffic is shifting to the green service revision. The + green service revision is migrating from 0% to 100% of production + traffic. For linear and canary deployments, this stage is invoked at + every traffic shift step. + + - POST_PRODUCTION_TRAFFIC_SHIFT + + The production traffic shift is complete. + + - BAKE_TIME + + The stage when both blue and green service revisions are running + simultaneously after the production traffic has shifted. + + - CLEAN_UP + + The stage when the blue service revision has completely scaled down to + 0 running tasks. The green service revision is now the production + service revision after this stage. + """ + lifecycle_hook_details: list[DeploymentLifecycleHookDetail] | None = ... + """The details of the lifecycle hooks for the current service deployment.""" + deployment_configuration: DeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how many tasks run during a + deployment and the ordering of stopping and starting tasks. + """ + rollback: Rollback | None = ... + """ + The rollback options the service deployment uses when the deployment + fails. + """ + deployment_circuit_breaker: ServiceDeploymentCircuitBreaker | None = ... + """ + The circuit breaker configuration that determines a service deployment + failed. + """ + alarms: ServiceDeploymentAlarms | None = ... + """The CloudWatch alarms that determine when a service deployment fails.""" + +@dataclass(kw_only=True) +class ServiceDeploymentAlarms(_SerdeShape): + """ + The CloudWatch alarms used to determine a service deployment failed. + + Amazon ECS considers the service deployment as failed when any of the + alarms move to the `ALARM` state. For more information, see [How + CloudWatch alarms detect Amazon ECS deployment + failures](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-alarm-failure.html) + in the Amazon ECS Developer Guide. + """ + + status: str | None = ... + """ + The status of the alarms check. Amazon ECS is not using alarms for + service deployment failures when the status is `DISABLED`. + """ + alarm_names: list[str] | None = ... + """ + The name of the CloudWatch alarms that determine when a service + deployment failed. A \",\" separates the alarms. + """ + triggered_alarm_names: list[str] | None = ... + """ + One or more CloudWatch alarm names that have been triggered during the + service deployment. A \",\" separates the alarm names. + """ + +@dataclass(kw_only=True) +class ServiceDeploymentBrief(_SerdeShape): + """ + The service deployment properties that are retured when you call + `ListServiceDeployments`. + + This provides a high-level overview of the service deployment. + """ + + service_deployment_arn: str | None = ... + """The ARN of the service deployment.""" + service_arn: str | None = ... + """The ARN of the service for this service deployment.""" + cluster_arn: str | None = ... + """The ARN of the cluster that hosts the service.""" + started_at: datetime | None = ... + """ + The time that the service deployment statred. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + created_at: datetime | None = ... + """ + The time that the service deployment was created. The format is + yyyy-MM-dd HH:mm:ss.SSSSSS. + """ + finished_at: datetime | None = ... + """ + The time that the service deployment completed. The format is yyyy-MM-dd + HH:mm:ss.SSSSSS. + """ + target_service_revision_arn: str | None = ... + """The ARN of the service revision being deplyed.""" + status: str | None = ... + """The status of the service deployment""" + status_reason: str | None = ... + """ + Information about why the service deployment is in the current status. + For example, the circuit breaker detected a deployment failure. + """ + +@dataclass(kw_only=True) +class ServiceDeploymentCircuitBreaker(_SerdeShape): + """ + Information about the circuit breaker used to determine when a service + deployment has failed. + + The deployment circuit breaker is the rolling update mechanism that + determines if the tasks reach a steady state. The deployment circuit + breaker has an option that will automatically roll back a failed + deployment to the last cpompleted service revision. For more + information, see [How the Amazon ECS deployment circuit breaker detects + failures](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-circuit-breaker.html) + in the *Amazon ECS Developer Guide*. + """ + + status: str | None = ... + """ + The circuit breaker status. Amazon ECS is not using the circuit breaker + for service deployment failures when the status is `DISABLED`. + """ + failure_count: int = ... + """ + The number of times the circuit breaker detected a service deploymeny + failure. + """ + threshold: int = ... + """ + The threshhold which determines that the service deployment failed. + + The deployment circuit breaker calculates the threshold value, and then + uses the value to determine when to move the deployment to a FAILED + state. The deployment circuit breaker has a minimum threshold of 3 and a + maximum threshold of 200. and uses the values in the following formula + to determine the deployment failure. + + `0.5 * desired task count` + """ + +class ServiceDeploymentLifecycleStage(UnknownEnumMixin, StrEnum): + RECONCILE_SERVICE = "RECONCILE_SERVICE" + PRE_SCALE_UP = "PRE_SCALE_UP" + SCALE_UP = "SCALE_UP" + POST_SCALE_UP = "POST_SCALE_UP" + TEST_TRAFFIC_SHIFT = "TEST_TRAFFIC_SHIFT" + POST_TEST_TRAFFIC_SHIFT = "POST_TEST_TRAFFIC_SHIFT" + PRODUCTION_TRAFFIC_SHIFT = "PRODUCTION_TRAFFIC_SHIFT" + POST_PRODUCTION_TRAFFIC_SHIFT = "POST_PRODUCTION_TRAFFIC_SHIFT" + BAKE_TIME = "BAKE_TIME" + CLEAN_UP = "CLEAN_UP" + +@dataclass(kw_only=True) +class ServiceDeploymentNotFoundException(ServiceError, _SerdeShape): + """ + The service deploy ARN that you specified in the + `ContinueServiceDeployment` doesn't exist. You can use + `ListServiceDeployments` to retrieve the service deployment ARNs. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ServiceDeploymentRollbackMonitorsStatus(UnknownEnumMixin, StrEnum): + TRIGGERED = "TRIGGERED" + MONITORING = "MONITORING" + MONITORING_COMPLETE = "MONITORING_COMPLETE" + DISABLED = "DISABLED" + +class ServiceDeploymentStatus(UnknownEnumMixin, StrEnum): + PENDING = "PENDING" + SUCCESSFUL = "SUCCESSFUL" + STOPPED = "STOPPED" + STOP_REQUESTED = "STOP_REQUESTED" + IN_PROGRESS = "IN_PROGRESS" + ROLLBACK_REQUESTED = "ROLLBACK_REQUESTED" + ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS" + ROLLBACK_SUCCESSFUL = "ROLLBACK_SUCCESSFUL" + ROLLBACK_FAILED = "ROLLBACK_FAILED" + +@dataclass(kw_only=True) +class ServiceEvent(_SerdeShape): + """The details for an event that's associated with a service.""" + + id: str | None = ... + """The ID string for the event.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the event was triggered.""" + message: str | None = ... + """The event message.""" + +class ServiceField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +@dataclass(kw_only=True) +class ServiceManagedEBSVolumeConfiguration(_SerdeShape): + """ + The configuration for the Amazon EBS volume that Amazon ECS creates and + manages on your behalf. These settings are used to create each Amazon + EBS volume, with one volume created for each task in the service. For + information about the supported launch types and operating systems, see + [Supported operating systems and launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volumes-configuration) + in the *Amazon Elastic Container Service Developer Guide*. + + Many of these parameters map 1:1 with the Amazon EBS `CreateVolume` API + request parameters. + """ + + encrypted: bool | None = ... + """ + Indicates whether the volume should be encrypted. If you turn on + Region-level Amazon EBS encryption by default but set this value as + `false`, the setting is overridden and the volume is encrypted with the + KMS key specified for Amazon EBS encryption by default. This parameter + maps 1:1 with the `Encrypted` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key + Management Service key to use for Amazon EBS encryption. When a key is + specified using this parameter, it overrides Amazon EBS default + encryption or any KMS key that you specified for cluster-level managed + storage encryption. This parameter maps 1:1 with the `KmsKeyId` + parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. For more information about encrypting + Amazon EBS volumes attached to tasks, see [Encrypt data stored in Amazon + EBS volumes attached to Amazon ECS + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-kms-encryption.html). + + Warning: + Amazon Web Services authenticates the Amazon Web Services Key Management + Service key asynchronously. Therefore, if you specify an ID, alias, or + ARN that is invalid, the action can appear to complete, but eventually + fails. + """ + volume_type: str | None = ... + """ + The volume type. This parameter maps 1:1 with the `VolumeType` parameter + of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. For more information, see [Amazon EBS + volume + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) + in the *Amazon EC2 User Guide*. + + The following are the supported volume types. + + - General Purpose SSD: `gp2`|`gp3` + + - Provisioned IOPS SSD: `io1`|`io2` + + - Throughput Optimized HDD: `st1` + + - Cold HDD: `sc1` + + - Magnetic: `standard` + + Note: + The magnetic volume type is not supported on Fargate. + """ + size_in_gi_b: int | None = ... + """ + The size of the volume in GiB. You must specify either a volume size or + a snapshot ID. If you specify a snapshot ID, the snapshot size is used + for the volume size by default. You can optionally specify a volume size + greater than or equal to the snapshot size. This parameter maps 1:1 with + the `Size` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + + The following are the supported volume size values for each volume type. + + - `gp2` and `gp3`: 1-16,384 + + - `io1` and `io2`: 4-16,384 + + - `st1` and `sc1`: 125-16,384 + + - `standard`: 1-1,024 + """ + snapshot_id: str | None = ... + """ + The snapshot that Amazon ECS uses to create volumes for attachment to + tasks maintained by the service. You must specify either `snapshotId` or + `sizeInGiB` in your volume configuration. This parameter maps 1:1 with + the `SnapshotId` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + volume_initialization_rate: int | None = ... + """ + The rate, in MiB/s, at which data is fetched from a snapshot of an + existing EBS volume to create new volumes for attachment to the tasks + maintained by the service. This property can be specified only if you + specify a `snapshotId`. For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EBS User Guide*. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + + The following are the supported values for each volume type. + + - `gp3`: 3,000 - 16,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + This parameter is required for `io1` and `io2` volume types. The default + for `gp3` volumes is `3,000 IOPS`. This parameter is not supported for + `st1`, `sc1`, or `standard` volume types. + + This parameter maps 1:1 with the `Iops` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + throughput: int | None = ... + """ + The throughput to provision for a volume, in MiB/s, with a maximum of + 1,000 MiB/s. This parameter maps 1:1 with the `Throughput` parameter of + the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + + Warning: + This parameter is only supported for the `gp3` volume type. + """ + tag_specifications: list[EBSTagSpecification] | None = ... + """ + The tags to apply to the volume. Amazon ECS applies service-managed tags + by default. This parameter maps 1:1 with the `TagSpecifications.N` + parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + role_arn: str + """ + The ARN of the IAM role to associate with this volume. This is the + Amazon ECS infrastructure IAM role that is used to manage your Amazon + Web Services infrastructure. We recommend using the Amazon ECS-managed + `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role. + For more information, see [Amazon ECS infrastructure IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + in the *Amazon ECS Developer Guide*. + """ + filesystem_type: str | None = ... + """ + The filesystem type for the volume. For volumes created from a snapshot, + you must specify the same filesystem type that the volume was using when + the snapshot was created. If there is a filesystem type mismatch, the + tasks will fail to start. + + The available Linux filesystem types are `ext3`, `ext4`, and `xfs`. If + no value is specified, the `xfs` filesystem type is used by default. + + The available Windows filesystem types are `NTFS`. + """ + +@dataclass(kw_only=True) +class ServiceNotActiveException(ServiceError, _SerdeShape): + """ + The specified service isn't active. You can't update a service that's + inactive. If you have previously deleted a service, you can re-create it + with + [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceNotFoundException(ServiceError, _SerdeShape): + """ + The specified service wasn't found. You can view your available + services with + [ListServices](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html). + Amazon ECS services are cluster specific and Region specific. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceRegistry(_SerdeShape): + """ + The details for the service registry. + + Each service may be associated with one service registry. Multiple + service registries for each service are not supported. + + When you add, update, or remove the service registries configuration, + Amazon ECS starts a new deployment. New tasks are registered and + deregistered to the updated service registry configuration. + """ + + registry_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the service registry. The currently + supported service registry is Cloud Map. For more information, see + [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html). + """ + port: int | None = ... + """ + The port value used if your service discovery service specified an SRV + record. This field might be used if both the `awsvpc` network mode and + SRV records are used. + """ + container_name: str | None = ... + """ + The container name value to be used for your service discovery service. + It's already specified in the task definition. If the task definition + that your service task specifies uses the `bridge` or `host` network + mode, you must specify a `containerName` and `containerPort` combination + from the task definition. If the task definition that your service task + specifies uses the `awsvpc` network mode and a type SRV DNS record is + used, you must specify either a `containerName` and `containerPort` + combination or a `port` value. However, you can't specify both. + """ + container_port: int | None = ... + """ + The port value to be used for your service discovery service. It's + already specified in the task definition. If the task definition your + service task specifies uses the `bridge` or `host` network mode, you + must specify a `containerName` and `containerPort` combination from the + task definition. If the task definition your service task specifies uses + the `awsvpc` network mode and a type SRV DNS record is used, you must + specify either a `containerName` and `containerPort` combination or a + `port` value. However, you can't specify both. + """ + +@dataclass(kw_only=True) +class ServiceRevision(_SerdeShape): + """ + Information about the service revision. + + A service revision contains a record of the workload configuration + Amazon ECS is attempting to deploy. Whenever you create or deploy a + service, Amazon ECS automatically creates and captures the configuration + that you're trying to deploy in the service revision. For information + about service revisions, see [Amazon ECS service + revisions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-revision.html) + in the Amazon Elastic Container Service Developer Guide . + """ + + service_revision_arn: str | None = ... + """The ARN of the service revision.""" + service_arn: str | None = ... + """The ARN of the service for the service revision.""" + cluster_arn: str | None = ... + """The ARN of the cluster that hosts the service.""" + task_definition: str | None = ... + """The task definition the service revision uses.""" + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """The capacity provider strategy the service revision uses.""" + launch_type: str | None = ... + """The launch type the service revision uses.""" + platform_version: str | None = ... + """ + For the Fargate launch type, the platform version the service revision + uses. + """ + platform_family: str | None = ... + """The platform family the service revision uses.""" + load_balancers: list[LoadBalancer] | None = ... + """The load balancers the service revision uses.""" + service_registries: list[ServiceRegistry] | None = ... + """ + The service registries (for Service Discovery) the service revision + uses. + """ + network_configuration: NetworkConfiguration | None = ... + """The network configuration for a task or service.""" + container_images: list[ContainerImage] | None = ... + """The container images the service revision uses.""" + guard_duty_enabled: bool = ... + """Indicates whether Runtime Monitoring is turned on.""" + service_connect_configuration: ServiceConnectConfiguration | None = ... + """ + The Service Connect configuration of your Amazon ECS service. The + configuration for this service to discover and connect to services, and + be discovered by, and connected from, other services within a namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + volume_configurations: list[ServiceVolumeConfiguration] | None = ... + """ + The volumes that are configured at deployment that the service revision + uses. + """ + fargate_ephemeral_storage: DeploymentEphemeralStorage | None = ... + """The amount of ephemeral storage to allocate for the deployment.""" + created_at: datetime | None = ... + """ + The time that the service revision was created. The format is yyyy-mm-dd + HH:mm:ss.SSSSS. + """ + vpc_lattice_configurations: list[VpcLatticeConfiguration] | None = ... + """The VPC Lattice configuration for the service revision.""" + resolved_configuration: ResolvedConfiguration | None = ... + """ + The resolved configuration for the service revision which contains the + actual resources your service revision uses, such as which target groups + serve traffic. + """ + ecs_managed_resources: ECSManagedResources | None = ... + """ + The resources created and managed by Amazon ECS when you create an + Express service for Amazon ECS. + """ + overrides: ServiceRevisionOverrides | None = ... + """ + The effective runtime overrides that Amazon ECS applies to this service + revision. This value is present only when Amazon ECS detects a + difference between the task definition and the actual runtime + configuration. + """ + gateway_connectors: list[GatewayConnector] | None = ... + """The gateway connectors that are associated with the service revision.""" + monitoring: MonitoringConfiguration | None = ... + """ + The optional monitoring configuration for the service, which defines the + resolution for the service-level `CPUUtilization` and + `MemoryUtilization` Amazon CloudWatch metrics. When not specified, + Amazon ECS uses the default resolution of `60` seconds. + """ + +class ServiceRevisionCleanup(UnknownEnumMixin, StrEnum): + """ + The time when Amazon ECS removes the source revisions' tasks relative + to deployment completion. When set to `BLOCKING`, Amazon ECS removes the + previous tasks before completing the deployment. When set to `DEFERRED`, + Amazon ECS completes the deployment first and removes the previous tasks + in the background. + """ + + BLOCKING = "BLOCKING" + DEFERRED = "DEFERRED" + +@dataclass(kw_only=True) +class ServiceRevisionLoadBalancer(_SerdeShape): + """ + The resolved load balancer configuration for a service revision. This + includes information about which target groups serve traffic and which + listener rules direct traffic to them. + """ + + target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the target group associated with the + service revision. + """ + production_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) of the production listener rule or + listener that directs traffic to the target group associated with the + service revision. + """ + +@dataclass(kw_only=True) +class ServiceRevisionOverrides(_SerdeShape): + """ + Contains the runtime overrides that Amazon ECS automatically applies to + a service revision when the effective runtime configuration differs from + the task definition. This value is read-only. + """ + + runtime_platform: RuntimePlatformOverride | None = ... + """ + The runtime platform override that Amazon ECS automatically applies to + the service revision. You can't set this value. + """ + +@dataclass(kw_only=True) +class ServiceRevisionSummary(_SerdeShape): + """ + The information about the number of requested, pending, and running + tasks for a service revision. + """ + + arn: str | None = ... + """The ARN of the service revision.""" + requested_task_count: int = ... + """The number of requested tasks for the service revision.""" + running_task_count: int = ... + """The number of running tasks for the service revision.""" + pending_task_count: int = ... + """The number of pending tasks for the service revision.""" + requested_test_traffic_weight: float | None = ... + """ + The percentage of test traffic that is directed to this service + revision. This value represents a snapshot of the traffic distribution + and may not reflect real-time changes during active deployments. Valid + values are 0.0 to 100.0. + """ + requested_production_traffic_weight: float | None = ... + """ + The percentage of production traffic that is directed to this service + revision. This value represents a snapshot of the traffic distribution + and may not reflect real-time changes during active deployments. Valid + values are 0.0 to 100.0. + """ + +@dataclass(kw_only=True) +class ServiceRevisionVpcLatticeConfiguration(_SerdeShape): + """ + The resolved VPC Lattice configuration for a service revision. This + includes information about which target groups serve traffic and which + listener rules direct traffic to them. + """ + + target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the target group associated with the + service revision. + """ + production_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) of the production listener rule or + listener that directs traffic to the target group associated with the + service revision. + """ + +@dataclass(kw_only=True) +class ServiceVolumeConfiguration(_SerdeShape): + """ + The configuration for a volume specified in the task definition as a + volume that is configured at launch time. Currently, the only supported + volume type is an Amazon EBS volume. + """ + + name: str + """ + The name of the volume. This value must match the volume name from the + `Volume` object in the task definition. + """ + managed_ebs_volume: ServiceManagedEBSVolumeConfiguration | None = ... + """ + The configuration for the Amazon EBS volume that Amazon ECS creates and + manages on your behalf. These settings are used to create each Amazon + EBS volume, with one volume created for each task in the service. The + Amazon EBS volumes are visible in your account in the Amazon EC2 console + once they are created. + """ + +@dataclass(kw_only=True) +class Session(_SerdeShape): + """The details for the execute command session.""" + + session_id: str | None = ... + """The ID of the execute command session.""" + stream_url: str | None = ... + """ + A URL to the managed agent on the container that the SSM Session Manager + client uses to send commands and receive output from the container. + """ + token_value: str | None = ... + """ + An encrypted token value containing session and caller information. + It's used to authenticate the connection to the container. + """ + +@dataclass(kw_only=True) +class Setting(_SerdeShape): + """The current account setting for a resource.""" + + name: str | None = ... + """The Amazon ECS resource name.""" + value: str | None = ... + """ + Determines whether the account setting is on or off for the specified + resource. + """ + principal_arn: str | None = ... + """ + The ARN of the principal. It can be a user, role, or the root user. If + this field is omitted, the authenticated user is assumed. + """ + type: str | None = ... + """ + 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. + """ + +class SettingName(UnknownEnumMixin, StrEnum): + SERVICE_LONG_ARN_FORMAT = "serviceLongArnFormat" + TASK_LONG_ARN_FORMAT = "taskLongArnFormat" + CONTAINER_INSTANCE_LONG_ARN_FORMAT = "containerInstanceLongArnFormat" + AWSVPC_TRUNKING = "awsvpcTrunking" + CONTAINER_INSIGHTS = "containerInsights" + FARGATE_FIPS_MODE = "fargateFIPSMode" + TAG_RESOURCE_AUTHORIZATION = "tagResourceAuthorization" + FARGATE_TASK_RETIREMENT_WAIT_PERIOD = "fargateTaskRetirementWaitPeriod" + GUARD_DUTY_ACTIVATE = "guardDutyActivate" + DEFAULT_LOG_DRIVER_MODE = "defaultLogDriverMode" + FARGATE_EVENT_WINDOWS = "fargateEventWindows" + +class SettingType(UnknownEnumMixin, StrEnum): + USER = "user" + AWS_MANAGED = "aws_managed" + +@dataclass +class SharingStrategyNvidiaMps(_SerdeShape): + """ + Shares a GPU between containers by using NVIDIA Multi-Process Service + (MPS). You specify the GPU memory to allocate to the container and, + optionally, the maximum percentage of the GPU's compute capacity that + the container can use. + """ + + value: NvidiaMpsAllocation + +@dataclass +class SharingStrategyUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +SharingStrategy = Union[SharingStrategyNvidiaMps | SharingStrategyUnknown] +""" +The strategy that a container uses to share a GPU with other containers. +Specify exactly one member. +""" + +class _SharingStrategyDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> SharingStrategy: ... + +class SortOrder(UnknownEnumMixin, StrEnum): + ASC = "ASC" + DESC = "DESC" + +class StabilityStatus(UnknownEnumMixin, StrEnum): + STEADY_STATE = "STEADY_STATE" + STABILIZING = "STABILIZING" + +@dataclass(kw_only=True) +class StartTaskInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster where + to start your task. If you do not specify a cluster, the default cluster + is assumed. + """ + container_instances: list[str] | None = ... + """ + The container instance IDs or full ARN entries for the container + instances where you would like to place your task. You can specify up to + 10 container instances. + """ + enable_ecs_managed_tags: bool = ... + """ + Specifies whether to use Amazon ECS managed tags for the task. For more + information, see [Tagging Your Amazon ECS + Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + enable_execute_command: bool = ... + """ + Whether or not the execute command functionality is turned on for the + task. If `true`, this turns on the execute command functionality on all + containers in the task. + """ + group: str | None = ... + """ + The name of the task group to associate with the task. The default value + is the family name of the task definition (for example, + family:my-family-name). + """ + network_configuration: NetworkConfiguration | None = ... + """ + The VPC subnet and security group configuration for tasks that receive + their own elastic network interface by using the `awsvpc` networking + mode. + """ + overrides: TaskOverride | None = ... + """ + A list of container overrides in JSON format that specify the name of a + container in the specified task definition and the overrides it + receives. You can override the default command for a container (that's + specified in the task definition or Docker image) with a `command` + override. You can also override existing environment variables (that are + specified in the task definition or Docker image) on a container or add + new environment variables to it with an `environment` override. + + Note: + A total of 8192 characters are allowed for overrides. This limit + includes the JSON formatting characters of the override structure. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the task definition or the + service to the task. If no value is specified, the tags aren't + propagated. + """ + reference_id: str | None = ... + """ + This parameter is only used by Amazon ECS. It is not intended for use by + customers. + """ + started_by: str | None = ... + """ + An optional tag specified when a task is started. For example, if you + automatically trigger a task to run a batch process job, you could apply + a unique identifier for that job to your task with the `startedBy` + parameter. You can then identify which tasks belong to that job by + filtering the results of a + [ListTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html) + call with the `startedBy` value. Up to 36 letters (uppercase and + lowercase), numbers, hyphens (-), forward slash (/), and underscores + (_) are allowed. + + If a task is started by an Amazon ECS service, the `startedBy` parameter + contains the deployment ID of the service that starts it. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task to help you categorize and + organize them. Each tag consists of a key and an optional value, both of + which you define. + + 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. + """ + task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full ARN of the task + definition to start. If a `revision` isn't specified, the latest + `ACTIVE` revision is used. + """ + volume_configurations: list[TaskVolumeConfiguration] | None = ... + """ + The details of the volume that was `configuredAtLaunch`. You can + configure the size, volumeType, IOPS, throughput, snapshot and + encryption in + [TaskManagedEBSVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html). + The `name` of the volume must match the `name` from the task definition. + """ + +@dataclass(kw_only=True) +class StartTaskOutput(_SerdeShape): + """""" + + tasks: list[Task] | None = ... + """ + A full description of the tasks that were started. Each task that was + successfully placed on your container instances is described. + """ + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopServiceDeploymentInput(_SerdeShape): + """Dataclass for StopServiceDeploymentInput structure.""" + + service_deployment_arn: str | None = ... + """The ARN of the service deployment that you want to stop.""" + stop_type: str | None = ... + """ + How you want Amazon ECS to stop the service. + + The valid values are `ROLLBACK`. + """ + +@dataclass(kw_only=True) +class StopServiceDeploymentOutput(_SerdeShape): + """Dataclass for StopServiceDeploymentOutput structure.""" + + service_deployment_arn: str | None = ... + """The ARN of the stopped service deployment.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class StopServiceDeploymentStopType(UnknownEnumMixin, StrEnum): + ABORT = "ABORT" + ROLLBACK = "ROLLBACK" + +@dataclass(kw_only=True) +class StopTaskInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the task to stop. If you do not specify a cluster, the default + cluster is assumed. + """ + task: str | None = ... + """Thefull Amazon Resource Name (ARN) of the task.""" + reason: str | None = ... + """ + An optional message specified when a task is stopped. For example, if + you're using a custom scheduler, you can use this parameter to specify + the reason for stopping the task here, and the message appears in + subsequent + [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)> + API operations on this task. + """ + +@dataclass(kw_only=True) +class StopTaskOutput(_SerdeShape): + """""" + + task: Task | None = ... + """The task that was stopped.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubmitAttachmentStateChangesInput(_SerdeShape): + """Dataclass for SubmitAttachmentStateChangesInput structure.""" + + cluster: str | None = ... + """ + The short name or full ARN of the cluster that hosts the container + instance the attachment belongs to. + """ + attachments: list[AttachmentStateChange] | None = ... + """Any attachments associated with the state change request.""" + +@dataclass(kw_only=True) +class SubmitAttachmentStateChangesOutput(_SerdeShape): + """Dataclass for SubmitAttachmentStateChangesOutput structure.""" + + acknowledgment: str | None = ... + """Acknowledgement of the state change.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubmitContainerStateChangeInput(_SerdeShape): + """""" + + cluster: str | None = ... + """The short name or full ARN of the cluster that hosts the container.""" + task: str | None = ... + """ + The task ID or full Amazon Resource Name (ARN) of the task that hosts + the container. + """ + container_name: str | None = ... + """The name of the container.""" + runtime_id: str | None = ... + """The ID of the Docker container.""" + status: str | None = ... + """The status of the state change request.""" + exit_code: int | None = ... + """The exit code that's returned for the state change request.""" + reason: str | None = ... + """The reason for the state change request.""" + network_bindings: list[NetworkBinding] | None = ... + """The network bindings of the container.""" + +@dataclass(kw_only=True) +class SubmitContainerStateChangeOutput(_SerdeShape): + """""" + + acknowledgment: str | None = ... + """Acknowledgement of the state change.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubmitTaskStateChangeInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the task. + """ + task: str | None = ... + """The task ID or full ARN of the task in the state change request.""" + status: str | None = ... + """The status of the state change request.""" + reason: str | None = ... + """The reason for the state change request.""" + containers: list[ContainerStateChange] | None = ... + """Any containers that's associated with the state change request.""" + attachments: list[AttachmentStateChange] | None = ... + """Any attachments associated with the state change request.""" + managed_agents: list[ManagedAgentStateChange] | None = ... + """The details for the managed agent that's associated with the task.""" + pull_started_at: datetime | None = ... + """The Unix timestamp for the time when the container image pull started.""" + pull_stopped_at: datetime | None = ... + """The Unix timestamp for the time when the container image pull completed.""" + execution_stopped_at: datetime | None = ... + """The Unix timestamp for the time when the task execution stopped.""" + +@dataclass(kw_only=True) +class SubmitTaskStateChangeOutput(_SerdeShape): + """""" + + acknowledgment: str | None = ... + """Acknowledgement of the state change.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SystemControl(_SerdeShape): + """ + A list of namespaced kernel parameters to set in the container. This + parameter maps to `Sysctls` in the docker container create command and + the `--sysctl` option to docker run. For example, you can configure + `net.ipv4.tcp_keepalive_time` setting to maintain longer lived + connections. + + We don't recommend that you specify network-related `systemControls` + parameters for multiple containers in a single task that also uses + either the `awsvpc` or `host` network mode. Doing this has the following + disadvantages: + + - For tasks that use the `awsvpc` network mode including Fargate, if you + set `systemControls` for any container, it applies to all containers + in the task. If you set different `systemControls` for multiple + containers in a single task, the container that's started last + determines which `systemControls` take effect. + + - For tasks that use the `host` network mode, the network namespace + `systemControls` aren't supported. + + If you're setting an IPC resource namespace to use for the containers + in the task, the following conditions apply to your system controls. For + more information, see [IPC + mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + + - For tasks that use the `host` IPC mode, IPC namespace `systemControls` + aren't supported. + + - For tasks that use the `task` IPC mode, IPC namespace `systemControls` + values apply to all containers within a task. + + Note: + This parameter is not supported for Windows containers. + Note: + This parameter is only supported for tasks that are hosted on Fargate if + the tasks are using platform version `1.4.0` or later (Linux). This + isn't supported for Windows containers on Fargate. + """ + + namespace: str | None = ... + """The namespaced kernel parameter to set a `value` for.""" + value: str | None = ... + """ + The namespaced kernel parameter to set a `value` for. + + Valid IPC namespace values: + `"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"`, + and `Sysctls` that start with `"fs.mqueue.*"` + + Valid network namespace values: `Sysctls` that start with `"net.*"`. + Only namespaced `Sysctls` that exist within the container starting with + \"net.* are accepted. + + All of these values are supported by Fargate. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + 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. + """ + + key: str | None = ... + """ + 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. + """ + value: str | None = ... + """ + The optional part of a key-value pair that make up a tag. A `value` acts + as a descriptor within a tag category (key). + """ + +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """Dataclass for TagResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource to add tags to. + Currently, the supported resources are Amazon ECS capacity providers, + tasks, services, task definitions, clusters, and container instances. + + In order to tag a service that has the following ARN format, you need to + migrate the service to the long ARN. For more information, see [Migrate + an Amazon ECS short service ARN to a long + ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) + in the *Amazon Elastic Container Service Developer Guide*. + + `arn:aws:ecs:region:aws_account_id:service/service-name` + + After the migration is complete, the service has the long ARN format, as + shown below. Use this ARN to tag the service. + + `arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name` + + If you try to tag a service with a short ARN, you receive an + `InvalidParameterException` error. + """ + tags: list[Tag] | None = ... + """ + The tags to add to the resource. A tag is an array of key-value pairs. + + 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. + """ + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TargetNotConnectedException(ServiceError, _SerdeShape): + """ + The execute command cannot run. This error can be caused by any of the + following configuration issues: + + - Incorrect IAM permissions + + - The SSM agent is not installed or is not running + + - There is an interface Amazon VPC endpoint for Amazon ECS, but there is + not one for Systems Manager Session Manager + + For information about how to troubleshoot the issues, see + [Troubleshooting issues with ECS + Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TargetNotFoundException(ServiceError, _SerdeShape): + """ + The specified target wasn't found. You can view your available + container instances with + [ListContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html). + Amazon ECS container instances are cluster-specific and Region-specific. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class TargetType(UnknownEnumMixin, StrEnum): + CONTAINER_INSTANCE = "container-instance" + +@dataclass(kw_only=True) +class Task(_SerdeShape): + """Details on a task in a cluster.""" + + attachments: list[Attachment] | None = ... + """ + The Elastic Network Adapter that's associated with the task if the task + uses the `awsvpc` network mode. + """ + attributes: list[Attribute] | None = ... + """The attributes of the task""" + availability_zone: str | None = ... + """The Availability Zone for the task.""" + capacity_provider_name: str | None = ... + """The capacity provider that's associated with the task.""" + cluster_arn: str | None = ... + """The ARN of the cluster that hosts the task.""" + connectivity: str | None = ... + """The connectivity status of a task.""" + connectivity_at: datetime | None = ... + """ + The Unix timestamp for the time when the task last went into `CONNECTED` + status. + """ + container_instance_arn: str | None = ... + """The ARN of the container instances that host the task.""" + containers: list[Container] | None = ... + """The containers that's associated with the task.""" + cpu: str | None = ... + """ + The number of CPU units used by the task as expressed in a task + definition. It can be expressed as an integer using CPU units (for + example, `1024`). It can also be expressed as a string using vCPUs (for + example, `1 vCPU` or `1 vcpu`). String values are converted to an + integer that indicates the CPU units when the task definition is + registered. + + If you're using the EC2 launch type or the external launch type, this + field is optional. Supported values are between `128` CPU units (`0.125` + vCPUs) and `196608` CPU units (`192` vCPUs). If you do not specify a + value, the parameter is ignored. + + This field is required for Fargate. For information about the valid + values, see [Task + size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size) + in the *Amazon Elastic Container Service Developer Guide*. + """ + created_at: datetime | None = ... + """ + The Unix timestamp for the time when the task was created. More + specifically, it's for the time when the task entered the `PENDING` + state. + """ + desired_status: str | None = ... + """ + The desired status of the task. For more information, see [Task + Lifecycle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html). + """ + enable_execute_command: bool = ... + """ + Determines whether execute command functionality is turned on for this + task. If `true`, execute command functionality is turned on all the + containers in the task. + """ + execution_stopped_at: datetime | None = ... + """The Unix timestamp for the time when the task execution stopped.""" + group: str | None = ... + """The name of the task group that's associated with the task.""" + health_status: str | None = ... + """ + The health status for the task. It's determined by the health of the + essential containers in the task. If all essential containers in the + task are reporting as `HEALTHY`, the task status also reports as + `HEALTHY`. If any essential containers in the task are reporting as + `UNHEALTHY` or `UNKNOWN`, the task status also reports as `UNHEALTHY` or + `UNKNOWN`. + + Note: + The Amazon ECS container agent doesn't monitor or report on Docker + health checks that are embedded in a container image and not specified + in the container definition. For example, this includes those specified + in a parent image or from the image's Dockerfile. Health check + parameters that are specified in a container definition override any + Docker health checks that are found in the container image. + """ + inference_accelerators: list[InferenceAccelerator] | None = ... + """The Elastic Inference accelerator that's associated with the task.""" + last_status: str | None = ... + """ + The last known status for the task. For more information, see [Task + Lifecycle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html). + """ + launch_type: str | None = ... + """ + The infrastructure where your task runs on. For more information, see + [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + memory: str | None = ... + """ + The amount of memory (in MiB) that the task uses as expressed in a task + definition. It can be expressed as an integer using MiB (for example, + `1024`). If it's expressed as a string using GB (for example, `1GB` or + `1 GB`), it's converted to an integer indicating the MiB when the task + definition is registered. + + If you use the EC2 launch type, this field is optional. + + If you use the Fargate launch type, this field is required. You must use + one of the following values. The value that you choose determines the + range of supported values for the `cpu` parameter. + + - 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available `cpu` values: 256 + (.25 vCPU) + + - 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available `cpu` + values: 512 (.5 vCPU) + + - 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 + (7 GB), 8192 (8 GB) - Available `cpu` values: 1024 (1 vCPU) + + - Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 2048 (2 vCPU) + + - Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 4096 (4 vCPU) + + - Between 16 GB and 60 GB in 4 GB increments - Available `cpu` values: + 8192 (8 vCPU) + + This option requires Linux platform `1.4.0` or later. + + - Between 32GB and 120 GB in 8 GB increments - Available `cpu` values: + 16384 (16 vCPU) + + This option requires Linux platform `1.4.0` or later. + """ + overrides: TaskOverride | None = ... + """One or more container overrides.""" + platform_version: str | None = ... + """ + The platform version where your task runs on. A platform version is only + specified for tasks that use the Fargate launch type. If you didn't + specify one, the `LATEST` platform version is used. For more + information, see [Fargate Platform + Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + platform_family: str | None = ... + """ + The operating system that your tasks are running on. A platform family + is specified only for tasks that use the Fargate launch type. + + All tasks that run as part of this service must use the same + `platformFamily` value as the service (for example, `LINUX.`). + """ + pull_started_at: datetime | None = ... + """The Unix timestamp for the time when the container image pull began.""" + pull_stopped_at: datetime | None = ... + """The Unix timestamp for the time when the container image pull completed.""" + started_at: datetime | None = ... + """ + The Unix timestamp for the time when the task started. More + specifically, it's for the time when the task transitioned from the + `PENDING` state to the `RUNNING` state. + """ + started_by: str | None = ... + """ + The tag specified when a task is started. If an Amazon ECS service + started the task, the `startedBy` parameter contains the deployment ID + of that service. + """ + stop_code: str | None = ... + """ + The stop code indicating why a task was stopped. The `stoppedReason` + might contain additional details. + + For more information about stop code, see [Stopped tasks error + codes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/stopped-task-error-codes.html) + in the *Amazon ECS Developer Guide*. + """ + stopped_at: datetime | None = ... + """ + The Unix timestamp for the time when the task was stopped. More + specifically, it's for the time when the task transitioned from the + `RUNNING` state to the `STOPPED` state. + """ + stopped_reason: str | None = ... + """The reason that the task was stopped.""" + stopping_at: datetime | None = ... + """ + The Unix timestamp for the time when the task stops. More specifically, + it's for the time when the task transitions from the `RUNNING` state to + `STOPPING`. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task to help you categorize and + organize the task. Each tag consists of a key and an optional value. You + define both the key and value. + + 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. + """ + task_arn: str | None = ... + """The Amazon Resource Name (ARN) of the task.""" + task_definition_arn: str | None = ... + """The ARN of the task definition that creates the task.""" + version: int = ... + """ + The version counter for the task. Every time a task experiences a change + that starts a CloudWatch event, the version counter is incremented. If + you replicate your Amazon ECS task state with CloudWatch Events, you can + compare the version of a task reported by the Amazon ECS API actions + with the version reported in CloudWatch Events for the task (inside the + `detail` object) to verify that the version in your event stream is + current. + """ + ephemeral_storage: EphemeralStorage | None = ... + """The ephemeral storage settings for the task.""" + fargate_ephemeral_storage: TaskEphemeralStorage | None = ... + """The Fargate ephemeral storage settings for the task.""" + trusted_execution_summary: TrustedExecutionSummary | None = ... + """ + A summary of the trusted execution configuration for the task, including + the isolation mode. This is a read-only view of the configuration that + was set on the task definition. + + Note: + Trusted execution is supported only for Amazon ECS Managed Instances. + """ + +@dataclass(kw_only=True) +class TaskDefinition(_SerdeShape): + """ + The details of a task definition which describes the container and + volume definitions of an Amazon Elastic Container Service task. You can + specify which Docker images to use, the required resources, and other + configurations related to launching the task definition through an + Amazon ECS service or task. + """ + + task_definition_arn: str | None = ... + """The full Amazon Resource Name (ARN) of the task definition.""" + container_definitions: list[ContainerDefinition] | None = ... + """ + A list of container definitions in JSON format that describe the + different containers that make up your task. For more information about + container definition parameters and defaults, see [Amazon ECS Task + Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + family: str | None = ... + """ + The name of a family that this task definition is registered to. Up to + 255 characters are allowed. Letters (both uppercase and lowercase + letters), numbers, hyphens (-), and underscores (_) are allowed. + + A family groups multiple versions of a task definition. Amazon ECS gives + the first task definition that you registered to a family a revision + number of 1. Amazon ECS gives sequential revision numbers to each task + definition that you add. + """ + task_role_arn: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the Identity and + Access Management role that grants containers in the task permission to + call Amazon Web Services APIs on your behalf. For informationabout the + required IAM roles for Amazon ECS, see [IAM roles for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role that grants + the Amazon ECS container agent permission to make Amazon Web Services + API calls on your behalf. For informationabout the required IAM roles + for Amazon ECS, see [IAM roles for Amazon + ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + network_mode: str | None = ... + """ + The Docker networking mode to use for the containers in the task. The + valid values are `none`, `bridge`, `awsvpc`, and `host`. If no network + mode is specified, the default is `bridge`. + + For Amazon ECS tasks on Fargate, the `awsvpc` network mode is required. + For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can + be used. For Amazon ECS tasks on Amazon EC2 Windows instances, + `` or `awsvpc` can be used. If the network mode is set to + `none`, you cannot specify port mappings in your container definitions, + and the tasks containers do not have external connectivity. The `host` + and `awsvpc` network modes offer the highest networking performance for + containers because they use the EC2 network stack instead of the + virtualized network stack provided by the `bridge` mode. + + With the `host` and `awsvpc` network modes, exposed container ports are + mapped directly to the corresponding host port (for the `host` network + mode) or the attached elastic network interface port (for the `awsvpc` + network mode), so you cannot take advantage of dynamic host port + mappings. + + Warning: + When using the `host` network mode, you should not run containers using + the root user (UID 0). It is considered best practice to use a non-root + user. + + If the network mode is `awsvpc`, the task is allocated an elastic + network interface, and you must specify a + [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) + value when you create a service or run a task with the task definition. + For more information, see [Task + Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + in the *Amazon Elastic Container Service Developer Guide*. + + If the network mode is `host`, you cannot run multiple instantiations of + the same task on a single container instance when port mappings are + used. + """ + revision: int = ... + """ + The revision of the task in a particular family. The revision is a + version number of a task definition in a family. When you register a + task definition for the first time, the revision is `1`. Each time that + you register a new revision of a task definition in the same family, the + revision value always increases by one. This is even if you deregistered + previous revisions in this family. + """ + volumes: list[Volume] | None = ... + """ + The list of data volume definitions for the task. For more information, + see [Using data volumes in + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + The `host` and `sourcePath` parameters aren't supported for tasks run + on Fargate. + """ + status: str | None = ... + """The status of the task definition.""" + requires_attributes: list[Attribute] | None = ... + """ + The container instance attributes required by your task. When an Amazon + EC2 instance is registered to your cluster, the Amazon ECS container + agent assigns some standard attributes to the instance. You can apply + custom attributes. These are specified as key-value pairs using the + Amazon ECS console or the + [PutAttributes](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAttributes.html) + API. These attributes are used when determining task placement for tasks + hosted on Amazon EC2 instances. For more information, see + [Attributes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + This parameter isn't supported for tasks run on Fargate. + """ + placement_constraints: list[TaskDefinitionPlacementConstraint] | None = ... + """ + An array of placement constraint objects to use for tasks. + + Note: + This parameter isn't supported for tasks run on Fargate. + """ + compatibilities: list[str] | None = ... + """ + Amazon ECS validates the task definition parameters with those supported + by the launch type. For more information, see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + runtime_platform: RuntimePlatform | None = ... + """ + The operating system that your task definitions are running on. A + platform family is specified only for tasks using the Fargate launch + type. + + When you specify a task in a service, this value must match the + `runtimePlatform` value of the service. + """ + requires_compatibilities: list[str] | None = ... + """ + The task launch types the task definition was validated against. The + valid values are `MANAGED_INSTANCES`, `EC2`, `FARGATE`, and `EXTERNAL`. + For more information, see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + cpu: str | None = ... + """ + The number of `cpu` units used by the task. If you use the EC2 launch + type, this field is optional. Any value can be used. If you use the + Fargate launch type, this field is required. You must use one of the + following values. The value that you choose determines your range of + valid values for the `memory` parameter. + + If you're using the EC2 launch type or the external launch type, this + field is optional. Supported values are between `128` CPU units (`0.125` + vCPUs) and `196608` CPU units (`192` vCPUs). + + This field is required for Fargate. For information about the valid + values, see [Task + size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size) + in the *Amazon Elastic Container Service Developer Guide*. + """ + memory: str | None = ... + """ + The amount (in MiB) of memory used by the task. + + If your tasks runs on Amazon EC2 instances, you must specify either a + task-level memory value or a container-level memory value. This field is + optional and any value can be used. If a task-level memory value is + specified, the container-level memory value is optional. For more + information regarding container-level memory and memory reservation, see + [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). + + If your tasks runs on Fargate, this field is required. You must use one + of the following values. The value you choose determines your range of + valid values for the `cpu` parameter. + + - 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available `cpu` values: 256 + (.25 vCPU) + + - 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available `cpu` + values: 512 (.5 vCPU) + + - 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 + (7 GB), 8192 (8 GB) - Available `cpu` values: 1024 (1 vCPU) + + - Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 2048 (2 vCPU) + + - Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + Available `cpu` values: 4096 (4 vCPU) + + - Between 16 GB and 60 GB in 4 GB increments - Available `cpu` values: + 8192 (8 vCPU) + + This option requires Linux platform `1.4.0` or later. + + - Between 32GB and 120 GB in 8 GB increments - Available `cpu` values: + 16384 (16 vCPU) + + This option requires Linux platform `1.4.0` or later. + """ + inference_accelerators: list[InferenceAccelerator] | None = ... + """The Elastic Inference accelerator that's associated with the task.""" + pid_mode: str | None = ... + """ + The process namespace to use for the containers in the task. The valid + values are `host` or `task`. On Fargate for Linux containers, the only + valid value is `task`. For example, monitoring sidecars might need + `pidMode` to access information about other containers running in the + same task. + + If `host` is specified, all containers within the tasks that specified + the `host` PID mode on the same container instance share the same + process namespace with the host Amazon EC2 instance. + + If `task` is specified, all containers within the specified task share + the same process namespace. + + If no value is specified, the The default is a private namespace for + each container. + + If the `host` PID mode is used, there's a heightened risk of undesired + process namespace exposure. + + Note: + This parameter is not supported for Windows containers. + Note: + This parameter is only supported for tasks that are hosted on Fargate if + the tasks are using platform version `1.4.0` or later (Linux). This + isn't supported for Windows containers on Fargate. + """ + ipc_mode: str | None = ... + """ + The IPC resource namespace to use for the containers in the task. The + valid values are `host`, `task`, or `none`. If `host` is specified, then + all containers within the tasks that specified the `host` IPC mode on + the same container instance share the same IPC resources with the host + Amazon EC2 instance. If `task` is specified, all containers within the + specified task share the same IPC resources. If `none` is specified, + then IPC resources within the containers of a task are private and not + shared with other containers in a task or on the container instance. If + no value is specified, then the IPC resource namespace sharing depends + on the Docker daemon setting on the container instance. + + If the `host` IPC mode is used, be aware that there is a heightened risk + of undesired IPC namespace expose. + + If you are setting namespaced kernel parameters using `systemControls` + for the containers in the task, the following will apply to your IPC + resource namespace. For more information, see [System + Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) + in the *Amazon Elastic Container Service Developer Guide*. + + - For tasks that use the `host` IPC mode, IPC namespace related + `systemControls` are not supported. + + - For tasks that use the `task` IPC mode, IPC namespace related + `systemControls` will apply to all containers within a task. + + Note: + This parameter is not supported for Windows containers or tasks run on + Fargate. + """ + proxy_configuration: ProxyConfiguration | None = ... + """ + The configuration details for the App Mesh proxy. + + Your Amazon ECS container instances require at least version 1.26.0 of + the container agent and at least version 1.26.0-1 of the `ecs-init` + package to use a proxy configuration. If your container instances are + launched from the Amazon ECS optimized AMI version `20190301` or later, + they contain the required versions of the container agent and + `ecs-init`. For more information, see [Amazon ECS-optimized Linux + AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + registered_at: datetime | None = ... + """The Unix timestamp for the time when the task definition was registered.""" + deregistered_at: datetime | None = ... + """ + The Unix timestamp for the time when the task definition was + deregistered. + """ + delete_requested_at: datetime | None = ... + """ + The Unix timestamp for the time when the task definition delete was + requested. + """ + registered_by: str | None = ... + """The principal that registered the task definition.""" + ephemeral_storage: EphemeralStorage | None = ... + """ + The ephemeral storage settings to use for tasks run with the task + definition. + """ + enable_fault_injection: bool | None = ... + """ + Enables fault injection and allows for fault injection requests to be + accepted from the task's containers. The default value is `false`. + """ + trusted_execution_configuration: TrustedExecutionConfiguration | None = ... + """ + The trusted execution configuration for tasks that use this task + definition, including the isolation mode and, if configured, an + attestation policy. + + Note: + Trusted execution is supported only for Amazon ECS Managed Instances. + """ + +class TaskDefinitionFamilyStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + ALL = "ALL" + +class TaskDefinitionField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +@dataclass(kw_only=True) +class TaskDefinitionPlacementConstraint(_SerdeShape): + """ + The constraint on task placement in the task definition. For more + information, see [Task placement + constraints](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Note: + Task placement constraints aren't supported for tasks run on Fargate. + """ + + type: str | None = ... + """ + The type of constraint. The `MemberOf` constraint restricts selection to + be from a group of valid candidates. + """ + expression: str | None = ... + """ + A cluster query language expression to apply to the constraint. For more + information, see [Cluster query + language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +class TaskDefinitionPlacementConstraintType(UnknownEnumMixin, StrEnum): + MEMBER_OF = "memberOf" + +class TaskDefinitionStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + +@dataclass(kw_only=True) +class TaskEphemeralStorage(_SerdeShape): + """The amount of ephemeral storage to allocate for the task.""" + + size_in_gi_b: int = ... + """ + The total amount, in GiB, of the ephemeral storage to set for the task. + The minimum supported value is `20` GiB and the maximum supported value + is `200` GiB. + """ + kms_key_id: str | None = ... + """ + Specify an Key Management Service key ID to encrypt the ephemeral + storage for the task. + """ + +class TaskField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +class TaskFilesystemType(UnknownEnumMixin, StrEnum): + EXT3 = "ext3" + EXT4 = "ext4" + XFS = "xfs" + NTFS = "ntfs" + +@dataclass(kw_only=True) +class TaskManagedEBSVolumeConfiguration(_SerdeShape): + """ + The configuration for the Amazon EBS volume that Amazon ECS creates and + manages on your behalf. These settings are used to create each Amazon + EBS volume, with one volume created for each task. + """ + + encrypted: bool | None = ... + """ + Indicates whether the volume should be encrypted. If you turn on + Region-level Amazon EBS encryption by default but set this value as + `false`, the setting is overridden and the volume is encrypted with the + KMS key specified for Amazon EBS encryption by default. This parameter + maps 1:1 with the `Encrypted` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + kms_key_id: str | None = ... + """ + The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key + Management Service key to use for Amazon EBS encryption. When a key is + specified using this parameter, it overrides Amazon EBS default + encryption or any KMS key that you specified for cluster-level managed + storage encryption. This parameter maps 1:1 with the `KmsKeyId` + parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. For more information about encrypting + Amazon EBS volumes attached to a task, see [Encrypt data stored in + Amazon EBS volumes attached to Amazon ECS + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-kms-encryption.html). + + Warning: + Amazon Web Services authenticates the Amazon Web Services Key Management + Service key asynchronously. Therefore, if you specify an ID, alias, or + ARN that is invalid, the action can appear to complete, but eventually + fails. + """ + volume_type: str | None = ... + """ + The volume type. This parameter maps 1:1 with the `VolumeType` parameter + of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. For more information, see [Amazon EBS + volume + types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) + in the *Amazon EC2 User Guide*. + + The following are the supported volume types. + + - General Purpose SSD: `gp2`|`gp3` + + - Provisioned IOPS SSD: `io1`|`io2` + + - Throughput Optimized HDD: `st1` + + - Cold HDD: `sc1` + + - Magnetic: `standard` + + Note: + The magnetic volume type is not supported on Fargate. + """ + size_in_gi_b: int | None = ... + """ + The size of the volume in GiB. You must specify either a volume size or + a snapshot ID. If you specify a snapshot ID, the snapshot size is used + for the volume size by default. You can optionally specify a volume size + greater than or equal to the snapshot size. This parameter maps 1:1 with + the `Size` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + + The following are the supported volume size values for each volume type. + + - `gp2` and `gp3`: 1-16,384 + + - `io1` and `io2`: 4-16,384 + + - `st1` and `sc1`: 125-16,384 + + - `standard`: 1-1,024 + """ + snapshot_id: str | None = ... + """ + The snapshot that Amazon ECS uses to create the volume. You must specify + either a snapshot ID or a volume size. This parameter maps 1:1 with the + `SnapshotId` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + volume_initialization_rate: int | None = ... + """ + The rate, in MiB/s, at which data is fetched from a snapshot of an + existing Amazon EBS volume to create a new volume for attachment to the + task. This property can be specified only if you specify a `snapshotId`. + For more information, see [Initialize Amazon EBS + volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) + in the *Amazon EBS User Guide*. + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS). For `gp3`, `io1`, and + `io2` volumes, this represents the number of IOPS that are provisioned + for the volume. For `gp2` volumes, this represents the baseline + performance of the volume and the rate at which the volume accumulates + I/O credits for bursting. + + The following are the supported values for each volume type. + + - `gp3`: 3,000 - 16,000 IOPS + + - `io1`: 100 - 64,000 IOPS + + - `io2`: 100 - 256,000 IOPS + + This parameter is required for `io1` and `io2` volume types. The default + for `gp3` volumes is `3,000 IOPS`. This parameter is not supported for + `st1`, `sc1`, or `standard` volume types. + + This parameter maps 1:1 with the `Iops` parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + throughput: int | None = ... + """ + The throughput to provision for a volume, in MiB/s, with a maximum of + 1,000 MiB/s. This parameter maps 1:1 with the `Throughput` parameter of + the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + + Warning: + This parameter is only supported for the `gp3` volume type. + """ + tag_specifications: list[EBSTagSpecification] | None = ... + """ + The tags to apply to the volume. Amazon ECS applies service-managed tags + by default. This parameter maps 1:1 with the `TagSpecifications.N` + parameter of the [CreateVolume + API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) + in the *Amazon EC2 API Reference*. + """ + role_arn: str + """ + The ARN of the IAM role to associate with this volume. This is the + Amazon ECS infrastructure IAM role that is used to manage your Amazon + Web Services infrastructure. We recommend using the Amazon ECS-managed + `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role. + For more information, see [Amazon ECS infrastructure IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + in the *Amazon ECS Developer Guide*. + """ + termination_policy: TaskManagedEBSVolumeTerminationPolicy | None = ... + """ + The termination policy for the volume when the task exits. This provides + a way to control whether Amazon ECS terminates the Amazon EBS volume + when the task stops. + """ + filesystem_type: str | None = ... + """ + The Linux filesystem type for the volume. For volumes created from a + snapshot, you must specify the same filesystem type that the volume was + using when the snapshot was created. If there is a filesystem type + mismatch, the task will fail to start. + + The available filesystem types are `ext3`, `ext4`, and `xfs`. If no + value is specified, the `xfs` filesystem type is used by default. + """ + +@dataclass(kw_only=True) +class TaskManagedEBSVolumeTerminationPolicy(_SerdeShape): + """ + The termination policy for the Amazon EBS volume when the task exits. + For more information, see [Amazon ECS volume termination + policy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types). + """ + + delete_on_termination: bool + """ + Indicates whether the volume should be deleted on when the task stops. + If a value of `true` is specified, Amazon ECS deletes the Amazon EBS + volume on your behalf when the task goes into the `STOPPED` state. If no + value is specified, the default value is `true` is used. When set to + `false`, Amazon ECS leaves the volume in your account. + """ + +@dataclass(kw_only=True) +class TaskOverride(_SerdeShape): + """The overrides that are associated with a task.""" + + container_overrides: list[ContainerOverride] | None = ... + """One or more container overrides that are sent to a task.""" + cpu: str | None = ... + """The CPU override for the task.""" + inference_accelerator_overrides: list[InferenceAcceleratorOverride] | None = ... + """The Elastic Inference accelerator override for the task.""" + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role override for + the task. For more information, see [Amazon ECS task execution IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + memory: str | None = ... + """The memory override for the task.""" + task_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the role that containers in this task + can assume. All containers in this task are granted the permissions that + are specified in this role. For more information, see [IAM Role for + Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + ephemeral_storage: EphemeralStorage | None = ... + """ + The ephemeral storage setting override for the task. + + Note: + This parameter is only supported for tasks hosted on Fargate that use + the following platform versions: + + - Linux platform version `1.4.0` or later. + """ + +@dataclass(kw_only=True) +class TaskSet(_SerdeShape): + """ + Information about a set of Amazon ECS tasks in either an CodeDeploy or + an `EXTERNAL` deployment. An Amazon ECS task set includes details such + as the desired number of tasks, how many tasks are running, and whether + the task set serves production traffic. + """ + + id: str | None = ... + """The ID of the task set.""" + task_set_arn: str | None = ... + """The Amazon Resource Name (ARN) of the task set.""" + service_arn: str | None = ... + """The Amazon Resource Name (ARN) of the service the task set exists in.""" + cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the cluster that the service that + hosts the task set exists in. + """ + started_by: str | None = ... + """ + The tag specified when a task set is started. If an CodeDeploy + deployment created the task set, the `startedBy` parameter is + `CODE_DEPLOY`. If an external deployment created the task set, the + `startedBy` field isn't used. + """ + external_id: str | None = ... + """ + The external ID associated with the task set. + + If an CodeDeploy deployment created a task set, the `externalId` + parameter contains the CodeDeploy deployment ID. + + If a task set is created for an external deployment and is associated + with a service discovery registry, the `externalId` parameter contains + the `ECS_TASK_SET_EXTERNAL_ID` Cloud Map attribute. + """ + status: str | None = ... + """ + The status of the task set. The following describes each state. + + PRIMARY + + : The task set is serving production traffic. + + ACTIVE + + : The task set isn't serving production traffic. + + DRAINING + + : The tasks in the task set are being stopped, and their corresponding + targets are being deregistered from their target group. + """ + task_definition: str | None = ... + """The task definition that the task set is using.""" + computed_desired_count: int = ... + """ + The computed desired count for the task set. This is calculated by + multiplying the service's `desiredCount` by the task set's `scale` + percentage. The result is always rounded up. For example, if the + computed desired count is 1.2, it rounds up to 2 tasks. + """ + pending_count: int = ... + """ + The number of tasks in the task set that are in the `PENDING` status + during a deployment. A task in the `PENDING` state is preparing to enter + the `RUNNING` state. A task set enters the `PENDING` status when it + launches for the first time or when it's restarted after being in the + `STOPPED` state. + """ + running_count: int = ... + """ + The number of tasks in the task set that are in the `RUNNING` status + during a deployment. A task in the `RUNNING` state is running and ready + for use. + """ + created_at: datetime | None = ... + """The Unix timestamp for the time when the task set was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the task set was last updated.""" + launch_type: str | None = ... + """ + The launch type the tasks in the task set are using. For more + information, see [Amazon ECS launch + types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """The capacity provider strategy that are associated with the task set.""" + platform_version: str | None = ... + """ + The Fargate platform version where the tasks in the task set are + running. A platform version is only specified for tasks run on Fargate. + For more information, see [Fargate platform + versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + platform_family: str | None = ... + """ + The operating system that your tasks in the set are running on. A + platform family is specified only for tasks that use the Fargate launch + type. + + All tasks in the set must have the same value. + """ + network_configuration: NetworkConfiguration | None = ... + """The network configuration for the task set.""" + load_balancers: list[LoadBalancer] | None = ... + """Details on a load balancer that are used with a task set.""" + service_registries: list[ServiceRegistry] | None = ... + """ + The details for the service discovery registries to assign to this task + set. For more information, see [Service + discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + """ + scale: Scale | None = ... + """ + A floating-point percentage of your desired number of tasks to place and + keep running in the task set. + """ + stability_status: str | None = ... + """ + The stability status. This indicates whether the task set has reached a + steady state. If the following conditions are met, the task set are in + `STEADY_STATE`: + + - The task `runningCount` is equal to the `computedDesiredCount`. + + - The `pendingCount` is `0`. + + - There are no tasks that are running on container instances in the + `DRAINING` status. + + - All tasks are reporting a healthy status from the load balancers, + service discovery, and container health checks. + + If any of those conditions aren't met, the stability status returns + `STABILIZING`. + """ + stability_status_at: datetime | None = ... + """ + The Unix timestamp for the time when the task set stability status was + retrieved. + """ + tags: list[Tag] | None = ... + """ + The metadata that you apply to the task set to help you categorize and + organize them. 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. + """ + fargate_ephemeral_storage: DeploymentEphemeralStorage | None = ... + """The Fargate ephemeral storage settings for the task set.""" + +class TaskSetField(UnknownEnumMixin, StrEnum): + TAGS = "TAGS" + +@dataclass(kw_only=True) +class TaskSetNotFoundException(ServiceError, _SerdeShape): + """ + The specified task set wasn't found. You can view your available task + sets with + [DescribeTaskSets](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskSets.html). + Task sets are specific to each cluster, service and Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class TaskStopCode(UnknownEnumMixin, StrEnum): + TASK_FAILED_TO_START = "TaskFailedToStart" + ESSENTIAL_CONTAINER_EXITED = "EssentialContainerExited" + USER_INITIATED = "UserInitiated" + SERVICE_SCHEDULER_INITIATED = "ServiceSchedulerInitiated" + SPOT_INTERRUPTION = "SpotInterruption" + TERMINATION_NOTICE = "TerminationNotice" + INFRASTRUCTURE_HEALTH = "InfrastructureHealth" + +@dataclass(kw_only=True) +class TaskVolumeConfiguration(_SerdeShape): + """ + Configuration settings for the task volume that was `configuredAtLaunch` + that weren't set during `RegisterTaskDef`. + """ + + name: str + """ + The name of the volume. This value must match the volume name from the + `Volume` object in the task definition. + """ + managed_ebs_volume: TaskManagedEBSVolumeConfiguration | None = ... + """ + The configuration for the Amazon EBS volume that Amazon ECS creates and + manages on your behalf. These settings are used to create each Amazon + EBS volume, with one volume created for each task. The Amazon EBS + volumes are visible in your account in the Amazon EC2 console once they + are created. + """ + +@dataclass(kw_only=True) +class ThresholdConfiguration(_SerdeShape): + """ + Defines the failure threshold that the deployment circuit breaker uses + to monitor a deployment. The `type` and `value` together determine the + number of task failures that are tolerated before the circuit breaker + triggers. + + By default, the threshold configuration uses a `type` of + `BOUNDED_PERCENT` with a `value` of `50`. + """ + + type: str + """ + Determines how Amazon ECS uses `value` to calculate the failure + threshold. For the percentage types (`BOUNDED_PERCENT` and + `UNBOUNDED_PERCENT`), Amazon ECS multiplies `value` by the latest + service desired count. For `COUNT`, Amazon ECS uses `value` directly as + the threshold. The default is `BOUNDED_PERCENT`. + """ + value: int = ... + """ + Specifies the integer that Amazon ECS uses to calculate the failure + threshold. When `type` is `COUNT`, this value is the failure threshold + itself. When `type` is a percentage type, Amazon ECS multiplies this + value by the latest service desired count to produce the failure + threshold. The default is `50`. + """ + +class ThresholdType(UnknownEnumMixin, StrEnum): + """ + Determines how the deployment circuit breaker calculates the number of + task failures tolerated before it triggers, based on the configured + `value`. + """ + + COUNT = "COUNT" + """ + Amazon ECS uses the integer provided in `value` directly as the failure + threshold. + """ + BOUNDED_PERCENT = "BOUNDED_PERCENT" + """ + Amazon ECS calculates the failure threshold by multiplying `value` by + the latest service desired count, then clamping the result to a minimum + of `3` and a maximum of `200`. This is the default threshold type, with + a default `value` of `50`. + """ + UNBOUNDED_PERCENT = "UNBOUNDED_PERCENT" + """ + Amazon ECS calculates the failure threshold by multiplying `value` by + the latest service desired count, without applying the `3`-to-`200` + bounds. Use this when the desired count is large enough that the + calculated threshold should be allowed to exceed `200`. + """ + +@dataclass(kw_only=True) +class TimeoutConfiguration(_SerdeShape): + """ + An object that represents the timeout configurations for Service + Connect. + + Note: + If `idleTimeout` is set to a time that is less than `perRequestTimeout`, + the connection will close when the `idleTimeout` is reached and not the + `perRequestTimeout`. + """ + + idle_timeout_seconds: int | None = ... + """ + The amount of time in seconds a connection will stay active while idle. + A value of `0` can be set to disable `idleTimeout`. + + The `idleTimeout` default for `HTTP`/`HTTP2`/`GRPC` is 5 minutes. + + The `idleTimeout` default for `TCP` is 1 hour. + """ + per_request_timeout_seconds: int | None = ... + """ + The amount of time waiting for the upstream to respond with a complete + response per request. A value of `0` can be set to disable + `perRequestTimeout`. `perRequestTimeout` can only be set if Service + Connect `appProtocol` isn't `TCP`. Only `idleTimeout` is allowed for + `TCP` `appProtocol`. + """ + +@dataclass(kw_only=True) +class Tmpfs(_SerdeShape): + """The container path, mount options, and size of the tmpfs mount.""" + + container_path: str + """The absolute file path where the tmpfs volume is to be mounted.""" + size: int = ... + """The maximum size (in MiB) of the tmpfs volume.""" + mount_options: list[str] | None = ... + """ + The list of tmpfs volume mount options. + + Valid values: + `"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"` + """ + +@dataclass(kw_only=True) +class TotalLocalStorageGBRequest(_SerdeShape): + """ + The minimum and maximum total local storage in gigabytes (GB) for + instance types with local storage. This is useful for workloads that + require local storage for temporary data or caching. + """ + + min: float | None = ... + """ + The minimum total local storage in GB. Instance types with less local + storage are excluded from selection. + """ + max: float | None = ... + """ + The maximum total local storage in GB. Instance types with more local + storage are excluded from selection. + """ + +class TransportProtocol(UnknownEnumMixin, StrEnum): + TCP = "tcp" + UDP = "udp" + +@dataclass(kw_only=True) +class TrustedExecutionConfiguration(_SerdeShape): + """ + The trusted execution configuration for a task. This configuration + controls the isolation mode and attestation policy. You set this + configuration when you register a task definition. + + Note: + Trusted execution is supported only for Amazon ECS Managed Instances. + """ + + isolation_mode: str + """ + The isolation mode for tasks that use this task definition. The + isolation mode determines how a task is isolated from other tasks on the + same Amazon EC2 instance. + + - `SHARED`: The task shares the underlying Amazon EC2 instance with + other tasks. This is the default isolation mode. + + - `ISOLATED_SANDBOX`: The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System. Each task's sandbox is isolated from every + other task's sandbox on the same Amazon EC2 instance, so one task + can't access another task's memory or storage. For more information, + see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + + - `CONFIDENTIAL_SANDBOX`: The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System, with cryptographic attestation. The host + can't access the sandbox's memory or storage, and only the approved + workload can decrypt data that you encrypt with your Key Management + Service key. For more information, see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + """ + attestation_policy: str | None = ... + """ + The base64-encoded attestation policy envelope for the task. The policy + specifies which containers are allowed to run and the runtime + configuration that is cryptographically attested. This parameter is + required when `isolationMode` is `CONFIDENTIAL_SANDBOX`. + """ + +@dataclass(kw_only=True) +class TrustedExecutionSummary(_SerdeShape): + """ + A summary of the trusted execution configuration for a task. This is a + read-only view of the isolation configuration that was set on the task + definition. Use it to see a task's isolation configuration in the + response to `DescribeTasks`, `RunTask`, or `StopTask` without calling + `DescribeTaskDefinition`. This summary never includes the attestation + policy itself. + + Note: + Trusted execution is supported only for Amazon ECS Managed Instances. + """ + + isolation_mode: str + """ + The isolation mode that the task runs in. This value mirrors the + `isolationMode` that was set in the task definition's + `TrustedExecutionConfiguration`. + + - `SHARED`: The task shares the underlying Amazon EC2 instance with + other tasks. This is the default isolation mode. + + - `ISOLATED_SANDBOX`: The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System. Each task's sandbox is isolated from every + other task's sandbox on the same Amazon EC2 instance, so one task + can't access another task's memory or storage. For more information, + see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + + - `CONFIDENTIAL_SANDBOX`: The task runs in its own [Nitro + Sandbox](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-nitro-sandboxes.html), + which is a lightweight virtual machine that is isolated by the Amazon + Web Services Nitro System, with cryptographic attestation. The host + can't access the sandbox's memory or storage, and only the approved + workload can decrypt data that you encrypt with your Key Management + Service key. For more information, see [Isolated and confidential + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/isolated-confidential-tasks.html) + in *Amazon Elastic Container Service Developer Guide*. + """ + attestation_policy_status: str | None = ... + """ + The status of the attestation policy for the task. This value is present + only for tasks that use the `CONFIDENTIAL_SANDBOX` isolation mode. + """ + +@dataclass(kw_only=True) +class Ulimit(_SerdeShape): + """ + The `ulimit` settings to pass to the container. + + Amazon ECS tasks hosted on Fargate use the default resource limit values + set by the operating system with the exception of the `nofile` resource + limit parameter which Fargate overrides. The `nofile` resource limit + sets a restriction on the number of open files that a container can use. + The default `nofile` soft limit is ` 65535` and the default hard limit + is `65535`. + + You can specify the `ulimit` settings for a container in a task + definition. + """ + + name: str + """The `type` of the `ulimit`.""" + soft_limit: int = ... + """ + The soft limit for the `ulimit` type. The value can be specified in + bytes, seconds, or as a count, depending on the `type` of the `ulimit`. + """ + hard_limit: int = ... + """ + The hard limit for the `ulimit` type. The value can be specified in + bytes, seconds, or as a count, depending on the `type` of the `ulimit`. + """ + +class UlimitName(UnknownEnumMixin, StrEnum): + CORE = "core" + CPU = "cpu" + DATA = "data" + FSIZE = "fsize" + LOCKS = "locks" + MEMLOCK = "memlock" + MSGQUEUE = "msgqueue" + NICE = "nice" + NOFILE = "nofile" + NPROC = "nproc" + RSS = "rss" + RTPRIO = "rtprio" + RTTIME = "rttime" + SIGPENDING = "sigpending" + STACK = "stack" + +@dataclass(kw_only=True) +class UnsupportedFeatureException(ServiceError, _SerdeShape): + """The specified task isn't supported in this Region.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """Dataclass for UntagResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource to delete tags from. + Currently, the supported resources are Amazon ECS capacity providers, + tasks, services, task definitions, clusters, and container instances. + """ + tag_keys: list[str] | None = ... + """The keys of the tags to be removed.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCapacityProviderInput(_SerdeShape): + """Dataclass for UpdateCapacityProviderInput structure.""" + + name: str | None = ... + """The name of the capacity provider to update.""" + cluster: str | None = ... + """ + The name of the cluster that contains the capacity provider to update. + Managed instances capacity providers are cluster-scoped and can only be + updated within their associated cluster. + """ + auto_scaling_group_provider: AutoScalingGroupProviderUpdate | None = ... + """ + An object that represent the parameters to update for the Auto Scaling + group capacity provider. + """ + managed_instances_provider: UpdateManagedInstancesProviderConfiguration | None = ... + """ + The updated configuration for the Amazon ECS Managed Instances provider. + You can modify the infrastructure role, instance launch template, and + tag propagation settings. Changes take effect for new instances launched + after the update. + """ + +@dataclass(kw_only=True) +class UpdateCapacityProviderOutput(_SerdeShape): + """Dataclass for UpdateCapacityProviderOutput structure.""" + + capacity_provider: CapacityProvider | None = ... + """Details about the capacity provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateClusterInput(_SerdeShape): + """Dataclass for UpdateClusterInput structure.""" + + cluster: str | None = ... + """The name of the cluster to modify the settings for.""" + settings: list[ClusterSetting] | None = ... + """The cluster settings for your cluster.""" + configuration: ClusterConfiguration | None = ... + """The execute command configuration for the cluster.""" + service_connect_defaults: ClusterServiceConnectDefaultsRequest | None = ... + """ + Use this parameter to set a default Service Connect namespace. After you + set a default Service Connect namespace, any new services with Service + Connect turned on that are created in the cluster are added as client + services in the namespace. This setting only applies to new services + that set the `enabled` parameter to `true` in the + `ServiceConnectConfiguration`. You can set the namespace of each service + individually in the `ServiceConnectConfiguration` to override this + default parameter. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class UpdateClusterOutput(_SerdeShape): + """Dataclass for UpdateClusterOutput structure.""" + + cluster: Cluster | None = ... + """Details about the cluster.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateClusterSettingsInput(_SerdeShape): + """Dataclass for UpdateClusterSettingsInput structure.""" + + cluster: str | None = ... + """The name of the cluster to modify the settings for.""" + settings: list[ClusterSetting] | None = ... + """ + The setting to use by default for a cluster. This parameter is used to + turn on CloudWatch Container Insights for a cluster. If this value is + specified, it overrides the `containerInsights` value set with + [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) + or + [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html). + + Warning: + Currently, if you delete an existing cluster that does not have + Container Insights turned on, and then create a new cluster with the + same name with Container Insights tuned on, Container Insights will not + actually be turned on. If you want to preserve the same name for your + existing cluster and turn on Container Insights, you must wait 7 days + before you can re-create it. + """ + +@dataclass(kw_only=True) +class UpdateClusterSettingsOutput(_SerdeShape): + """Dataclass for UpdateClusterSettingsOutput structure.""" + + cluster: Cluster | None = ... + """Details about the cluster""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateContainerAgentInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + your container instance is running on. If you do not specify a cluster, + the default cluster is assumed. + """ + container_instance: str | None = ... + """ + The container instance ID or full ARN entries for the container instance + where you would like to update the Amazon ECS container agent. + """ + +@dataclass(kw_only=True) +class UpdateContainerAgentOutput(_SerdeShape): + """""" + + container_instance: ContainerInstance | None = ... + """The container instance that the container agent was updated for.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateContainerInstancesStateInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the container instance to update. If you do not specify a cluster, + the default cluster is assumed. + """ + container_instances: list[str] | None = ... + """A list of up to 10 container instance IDs or full ARN entries.""" + status: str | None = ... + """ + The container instance state to update the container instance with. The + only valid values for this action are `ACTIVE` and `DRAINING`. A + container instance can only be updated to `DRAINING` status once it has + reached an `ACTIVE` state. If a container instance is in `REGISTERING`, + `DEREGISTERING`, or `REGISTRATION_FAILED` state you can describe the + container instance but can't update the container instance state. + """ + +@dataclass(kw_only=True) +class UpdateContainerInstancesStateOutput(_SerdeShape): + """""" + + container_instances: list[ContainerInstance] | None = ... + """The list of container instances.""" + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDaemonInput(_SerdeShape): + """Dataclass for UpdateDaemonInput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon to update.""" + daemon_task_definition_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the daemon task definition to use for + the updated daemon. + """ + capacity_provider_arns: list[str] | None = ... + """ + The Amazon Resource Names (ARNs) of the capacity providers to associate + with the daemon. + """ + deployment_configuration: DaemonDeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how the daemon rolls out + updates, including the drain percentage, alarm-based rollback, and bake + time. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the daemon to the daemon + tasks. If you don't specify a value, the tags aren't propagated. You + can only propagate tags to daemon tasks during task creation. + """ + enable_ecs_managed_tags: bool = ... + """ + Specifies whether to turn on Amazon ECS managed tags for the tasks in + the daemon. For more information, see [Tagging your Amazon ECS + resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + enable_execute_command: bool = ... + """ + If `true`, the execute command functionality is turned on for all tasks + in the daemon. If `false`, the execute command functionality is turned + off. + """ + critical: bool | None = ... + """ + If the `critical` parameter of a daemon is `true`, and the daemon task + fails, stops, or becomes unhealthy, Amazon ECS drains the container + instance and stops the other tasks running on it. If the `critical` + parameter is `false`, the daemon task failure doesn't affect the other + tasks on the instance. The default value is `true`. + + A non-critical daemon doesn't block instance registration. The + container instance becomes active and continues to run your other tasks, + whether the daemon task fails during scale-out or during a deployment. + + Amazon ECS emits an EventBridge event when a daemon task fails to start, + for both critical and non-critical daemons. + + Daemon task launch failures during a deployment are still counted by the + deployment circuit breaker. The circuit breaker can roll back an + unstable target revision. + """ + +@dataclass(kw_only=True) +class UpdateDaemonOutput(_SerdeShape): + """Dataclass for UpdateDaemonOutput structure.""" + + daemon_arn: str | None = ... + """The Amazon Resource Name (ARN) of the daemon.""" + status: str | None = ... + """The status of the daemon.""" + created_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was created.""" + updated_at: datetime | None = ... + """The Unix timestamp for the time when the daemon was last updated.""" + deployment_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the daemon deployment that was + triggered by the update. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdatedExpressGatewayService(_SerdeShape): + """An object that describes an Express service to be updated.""" + + service_arn: str | None = ... + """The ARN of the Express service that is being updated.""" + cluster: str | None = ... + """The cluster associated with the Express service that is being updated.""" + service_name: str | None = ... + """The name of the Express service that is being updated.""" + status: ExpressGatewayServiceStatus | None = ... + """The status of the Express service that is being updated.""" + target_configuration: ExpressGatewayServiceConfiguration | None = ... + """ + The configuration to which the current Express service is being updated + to. + """ + created_at: datetime | None = ... + """ + The Unix timestamp for when the Express service that is being updated + was created. + """ + updated_at: datetime | None = ... + """ + The Unix timestamp for when the Express service that is being updated + was most recently updated. + """ + +@dataclass(kw_only=True) +class UpdateExpressGatewayServiceInput(_SerdeShape): + """Dataclass for UpdateExpressGatewayServiceInput structure.""" + + service_arn: str | None = ... + """The Amazon Resource Name (ARN) of the Express service to update.""" + execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the task execution role for the + Express service. + """ + health_check_path: str | None = ... + """The path on the container for Application Load Balancer health checks.""" + primary_container: ExpressGatewayContainer | None = ... + """The primary container configuration for the Express service.""" + task_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role for containers in this + task. + """ + network_configuration: ExpressGatewayServiceNetworkConfiguration | None = ... + """ + The network configuration for the Express service tasks. By default, the + network configuration for an Express service uses the default VPC. + """ + cpu: str | None = ... + """The number of CPU units used by the task.""" + memory: str | None = ... + """The amount of memory (in MiB) used by the task.""" + cpu_architecture: str | None = ... + """ + The CPU architecture that the task runs on. If you don't specify a + value, the service keeps its current architecture. + + Valid values: + + - `X86_64` - The x86 64-bit architecture. + + - `ARM64` - The 64-bit ARM architecture. + + Changing the architecture starts a new deployment that replaces the + running tasks. Ensure that the container image you specify supports the + architecture you choose. The operating system family for an Express + service is always `LINUX`. + + You can't specify `cpuArchitecture` together with `taskDefinitionArn`. + """ + scaling_target: ExpressGatewayScalingTarget | None = ... + """The auto-scaling configuration for the Express service.""" + task_definition_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of a task definition to use to update the + Express Gateway service. This allows you to manage your own task + definition, giving you more control over the service configuration such + as adding sidecar containers. + + The task definition must have a container named `Main` with a single TCP + port mapping that includes a container port and port name. The task + definition must also have `FARGATE` compatibility. + + If you provide a task definition ARN, you cannot also specify + `primaryContainer`, `executionRoleArn`, `taskRoleArn`, `cpu`, `memory`, + or `cpuArchitecture`. + """ + +@dataclass(kw_only=True) +class UpdateExpressGatewayServiceOutput(_SerdeShape): + """Dataclass for UpdateExpressGatewayServiceOutput structure.""" + + service: UpdatedExpressGatewayService | None = ... + """ + The full description of your express gateway service following the + update call. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateGatewayAlbConfiguration(_SerdeShape): + """ + The mutable configuration fields for a gateway that uses shared + Application Load Balancers. Only fields that can be changed without + interrupting traffic are included. + """ + + network_configuration: UpdateGatewayNetworkConfiguration | None = ... + """ + The mutable network configuration for the load balancers that the + gateway manages. + """ + max_alb_count: int | None = ... + """ + The maximum number of Application Load Balancers that the gateway + manages. + """ + web_acl_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the WAF web ACL to associate with the + load balancers that the gateway manages. + """ + access_logs: GatewayElbAccessLogConfiguration | None = ... + """ + The access log configuration for the load balancers that the gateway + manages. + """ + http_desync: str | None = ... + """ + The desync mitigation mode for the load balancers that the gateway + manages. + """ + test_traffic_rules: GatewayAlbTestTrafficRules | None = ... + """The rules that route test traffic for progressive deployments.""" + +@dataclass +class UpdateGatewayConfigurationHostSharedAlb(_SerdeShape): + """ + The mutable configuration for a host-based, shared Application Load + Balancer gateway. + """ + + value: UpdateGatewayAlbConfiguration + +@dataclass +class UpdateGatewayConfigurationUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +UpdateGatewayConfiguration = Union[ + UpdateGatewayConfigurationHostSharedAlb | UpdateGatewayConfigurationUnknown +] +""" +The type-specific configuration to change on a gateway. The variant must +match the gateway's existing type. +""" + +class _UpdateGatewayConfigurationDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> UpdateGatewayConfiguration: ... + +@dataclass(kw_only=True) +class UpdateGatewayInput(_SerdeShape): + """Dataclass for UpdateGatewayInput structure.""" + + gateway: str | None = ... + """The name or Amazon Resource Name (ARN) of the gateway to update.""" + infrastructure_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that the gateway assumes + to manage infrastructure on your behalf. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the gateway. When + enabled, the gateway can't be deleted. + """ + configuration: UpdateGatewayConfiguration | None = ... + """ + The updated type-specific configuration for the gateway. The + configuration variant must match the gateway's existing type, and only + mutable fields can be changed. + """ + propagate_tags: str | None = ... + """ + Specifies whether to propagate the tags from the gateway to the + infrastructure that the gateway manages. If you don't specify a value, + the gateway's existing setting is unchanged. + """ + +@dataclass(kw_only=True) +class UpdateGatewayNetworkConfiguration(_SerdeShape): + """ + The mutable network configuration for the load balancers that a gateway + manages. + """ + + inbound_security_group: str | None = ... + """ + The ID of a security group that you provide to control inbound traffic + to the load balancers that the gateway manages. When you specify a + security group, the gateway doesn't create inbound rules on the + security group it manages. + """ + +@dataclass(kw_only=True) +class UpdateGatewayOutput(_SerdeShape): + """Dataclass for UpdateGatewayOutput structure.""" + + gateway_arn: str | None = ... + """The Amazon Resource Name (ARN) of the gateway.""" + name: str | None = ... + """The name of the gateway.""" + status: str | None = ... + """ + The status of the gateway. After a successful update request, the status + is `UPDATE_IN_PROGRESS`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateInProgressException(ServiceError, _SerdeShape): + """ + There's already a current Amazon ECS container agent update in progress + on the container instance that's specified. If the container agent + becomes disconnected while it's in a transitional stage, such as + `PENDING` or `STAGING`, the update process can get stuck in that state. + However, when the agent reconnects, it resumes where it stopped + previously. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateManagedInstancesProviderConfiguration(_SerdeShape): + """ + The updated configuration for a Amazon ECS Managed Instances provider. + You can modify the infrastructure role, instance launch template, and + tag propagation settings. Changes apply to new instances launched after + the update. + """ + + infrastructure_role_arn: str + """ + The updated Amazon Resource Name (ARN) of the infrastructure role. The + new role must have the necessary permissions to manage instances and + access required Amazon Web Services services. + + For more information, see [Amazon ECS infrastructure IAM + role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) + in the *Amazon ECS Developer Guide*. + """ + instance_launch_template: InstanceLaunchTemplateUpdate + """ + The updated launch template configuration. Changes to the launch + template affect new instances launched after the update, while existing + instances continue to use their original configuration. + """ + propagate_tags: str | None = ... + """ + The updated tag propagation setting. When changed, this affects only new + instances launched after the update. + """ + infrastructure_optimization: InfrastructureOptimization | None = ... + """ + The updated infrastructure optimization configuration. Changes to this + setting affect how Amazon ECS optimizes instances going forward. + """ + auto_repair_configuration: AutoRepairConfiguration | None = ... + """ + The updated auto repair configuration for the Amazon ECS Managed + Instances capacity provider. + """ + +@dataclass(kw_only=True) +class UpdateServiceInput(_SerdeShape): + """""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + your service runs on. If you do not specify a cluster, the default + cluster is assumed. + + You can't change the cluster name. + """ + service: str | None = ... + """The name of the service to update.""" + desired_count: int | None = ... + """ + The number of instantiations of the task to place and keep running in + your service. + + This parameter doesn't trigger a new service deployment. + """ + task_definition: str | None = ... + """ + The `family` and `revision` (`family:revision`) or full ARN of the task + definition to run in your service. If a `revision` is not specified, the + latest `ACTIVE` revision is used. If you modify the task definition with + `UpdateService`, Amazon ECS spawns a task with the new version of the + task definition and then stops an old task after the new version is + running. + + This parameter triggers a new service deployment. + """ + capacity_provider_strategy: list[CapacityProviderStrategyItem] | None = ... + """ + The details of a capacity provider strategy. You can set a capacity + provider when you create a cluster, run a task, or update a service. + + Note: + If you want to use Amazon ECS Managed Instances, you must use the + `capacityProviderStrategy` request parameter. + + When you use Fargate, the capacity providers are `FARGATE` or + `FARGATE_SPOT`. + + When you use Amazon EC2, the capacity providers are Auto Scaling groups. + + You can change capacity providers for rolling deployments and blue/green + deployments. + + The following list provides the valid transitions: + + - Update the Fargate launch type to an Auto Scaling group capacity + provider. + + - Update the Amazon EC2 launch type to a Fargate capacity provider. + + - Update the Fargate capacity provider to an Auto Scaling group capacity + provider. + + - Update the Amazon EC2 capacity provider to a Fargate capacity + provider. + + - Update the Auto Scaling group or Fargate capacity provider back to the + launch type. + + Pass an empty list in the `capacityProviderStrategy` parameter. + + For information about Amazon Web Services CDK considerations, see + [Amazon Web Services CDK + considerations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service-parameters.html). + + This parameter doesn't trigger a new service deployment. + """ + deployment_configuration: DeploymentConfiguration | None = ... + """ + Optional deployment parameters that control how many tasks run during + the deployment and the ordering of stopping and starting tasks. + + This parameter doesn't trigger a new service deployment. + """ + availability_zone_rebalancing: str | None = ... + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across + Availability + Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) + in the Amazon Elastic Container Service Developer Guide . + + The default behavior of `AvailabilityZoneRebalancing` differs between + create and update requests: + + - For create service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults the value to + `ENABLED`. + + - For update service requests, when no value is specified for + `AvailabilityZoneRebalancing`, Amazon ECS defaults to the existing + service's `AvailabilityZoneRebalancing` value. If the service never + had an `AvailabilityZoneRebalancing` value set, Amazon ECS treats this + as `DISABLED`. + + This parameter doesn't trigger a new service deployment. + """ + network_configuration: NetworkConfiguration | None = ... + """ + An object representing the network configuration for the service. + + This parameter triggers a new service deployment. + """ + placement_constraints: list[PlacementConstraint] | None = ... + """ + An array of task placement constraint objects to update the service to + use. If no value is specified, the existing placement constraints for + the service will remain unchanged. If this value is specified, it will + override any existing placement constraints defined for the service. To + remove all existing placement constraints, specify an empty array. + + You can specify a maximum of 10 constraints for each task. This limit + includes constraints in the task definition and those specified at + runtime. + + This parameter doesn't trigger a new service deployment. + """ + placement_strategy: list[PlacementStrategy] | None = ... + """ + The task placement strategy objects to update the service to use. If no + value is specified, the existing placement strategy for the service will + remain unchanged. If this value is specified, it will override the + existing placement strategy defined for the service. To remove an + existing placement strategy, specify an empty object. + + You can specify a maximum of five strategy rules for each service. + + This parameter doesn't trigger a new service deployment. + """ + platform_version: str | None = ... + """ + The platform version that your tasks in the service run on. A platform + version is only specified for tasks using the Fargate launch type. If a + platform version is not specified, the `LATEST` platform version is + used. For more information, see [Fargate Platform + Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + in the *Amazon Elastic Container Service Developer Guide*. + + This parameter triggers a new service deployment. + """ + force_new_deployment: bool = ... + """ + Determines whether to force a new deployment of the service. By default, + deployments aren't forced. You can use this option to start a new + deployment with no service definition changes. For example, you can + update a service's tasks to use a newer Docker image with the same + image/tag combination (`my_image:latest`) or to roll Fargate tasks onto + a newer platform version. + """ + health_check_grace_period_seconds: int | None = ... + """ + The period of time, in seconds, that the Amazon ECS service scheduler + ignores unhealthy Elastic Load Balancing, VPC Lattice, and container + health checks after a task has first started. If you don't specify a + health check grace period value, the default value of `0` is used. If + you don't use any of the health checks, then + `healthCheckGracePeriodSeconds` is unused. + + If your service's tasks take a while to start and respond to health + checks, you can specify a health check grace period of up to + 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS + service scheduler ignores health check status. This grace period can + prevent the service scheduler from marking tasks as unhealthy and + stopping them before they have time to come up. + + If your service has more running tasks than desired, unhealthy tasks in + the grace period might be stopped to reach the desired count. + + This parameter doesn't trigger a new service deployment. + """ + deployment_controller: DeploymentController | None = ... + """The deployment controller to use for the service.""" + enable_execute_command: bool | None = ... + """ + If `true`, this enables execute command functionality on all task + containers. + + If you do not want to override the value that was set when the service + was created, you can set this to `null` when performing this action. + + This parameter doesn't trigger a new service deployment. + """ + enable_ecs_managed_tags: bool | None = ... + """ + Determines whether to turn on Amazon ECS managed tags for the tasks in + the service. For more information, see [Tagging Your Amazon ECS + Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + in the *Amazon Elastic Container Service Developer Guide*. + + Only tasks launched after the update will reflect the update. To update + the tags on all tasks, set `forceNewDeployment` to `true`, so that + Amazon ECS starts new tasks with the updated tags. + + This parameter doesn't trigger a new service deployment. + """ + load_balancers: list[LoadBalancer] | None = ... + """ + Note: + You must have a service-linked role when you update this property + + A list of Elastic Load Balancing load balancer objects. It contains the + load balancer name, the container name, and the container port to access + from the load balancer. The container name is as it appears in a + container definition. + + When you add, update, or remove a load balancer configuration, Amazon + ECS starts new tasks with the updated Elastic Load Balancing + configuration, and then stops the old tasks when the new tasks are + running. + + For services that use rolling updates, you can add, update, or remove + Elastic Load Balancing target groups. You can update from a single + target group to multiple target groups and from multiple target groups + to a single target group. + + For services that use blue/green deployments, you can update Elastic + Load Balancing target groups by using + ` `[`CreateDeployment`](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)` ` + through CodeDeploy. Note that multiple target groups are not supported + for blue/green deployments. For more information see [Register multiple + target groups with a + service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) + in the *Amazon Elastic Container Service Developer Guide*. + + For services that use the external deployment controller, you can add, + update, or remove load balancers by using + [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html). + Note that multiple target groups are not supported for external + deployments. For more information see [Register multiple target groups + with a + service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) + in the *Amazon Elastic Container Service Developer Guide*. + + You can remove existing `loadBalancers` by passing an empty list. + + This parameter triggers a new service deployment. + """ + propagate_tags: str | None = ... + """ + Determines whether to propagate the tags from the task definition or the + service to the task. If no value is specified, the tags aren't + propagated. + + Only tasks launched after the update will reflect the update. To update + the tags on all tasks, set `forceNewDeployment` to `true`, so that + Amazon ECS starts new tasks with the updated tags. + + This parameter doesn't trigger a new service deployment. + """ + service_registries: list[ServiceRegistry] | None = ... + """ + Note: + You must have a service-linked role when you update this property. + + For more information about the role see the `CreateService` request + parameter + [`role`](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html#ECS-CreateService-request-role) + . + + The details for the service discovery registries to assign to this + service. For more information, see [Service + Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + + When you add, update, or remove the service registries configuration, + Amazon ECS starts new tasks with the updated service registries + configuration, and then stops the old tasks when the new tasks are + running. + + You can remove existing `serviceRegistries` by passing an empty list. + + This parameter triggers a new service deployment. + """ + service_connect_configuration: ServiceConnectConfiguration | None = ... + """ + The configuration for this service to discover and connect to services, + and be discovered by, and connected from, other services within a + namespace. + + Tasks that run in a namespace can use short names to connect to services + in the namespace. Tasks can connect to services across all of the + clusters in the namespace. Tasks connect through a managed proxy + container that collects logs and metrics for increased visibility. Only + the tasks that Amazon ECS services create are supported with Service + Connect. For more information, see [Service + Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) + in the *Amazon Elastic Container Service Developer Guide*. + + This parameter triggers a new service deployment. + """ + volume_configurations: list[ServiceVolumeConfiguration] | None = ... + """ + The details of the volume that was `configuredAtLaunch`. You can + configure the size, volumeType, IOPS, throughput, snapshot and + encryption in + [ServiceManagedEBSVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html). + The `name` of the volume must match the `name` from the task definition. + If set to null, no new deployment is triggered. Otherwise, if this + configuration differs from the existing one, it triggers a new + deployment. + + This parameter triggers a new service deployment. + """ + vpc_lattice_configurations: list[VpcLatticeConfiguration] | None = ... + """ + An object representing the VPC Lattice configuration for the service + being updated. + + This parameter triggers a new service deployment. + """ + gateway_connectors: list[GatewayConnector] | None = ... + """ + The updated set of gateway connectors that connect the service to a + gateway ingress path. A service supports no more than one gateway + connector. + """ + monitoring: MonitoringConfiguration | None = ... + """ + The optional monitoring configuration for the service, which defines the + resolution for the service-level `CPUUtilization` and + `MemoryUtilization` Amazon CloudWatch metrics. When not specified, + Amazon ECS uses the default resolution of `60` seconds. + """ + +@dataclass(kw_only=True) +class UpdateServiceOutput(_SerdeShape): + """""" + + service: Service | None = ... + """ + The full description of your service following the update call. + + The response includes a `lifecycleHookDetails` field, which is an empty + array when the service is created or updated. The values are populated + when a lifecycle hook executes and are available as part of the service + deployment details + ([DescribeServiceDeployments](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html)). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateServicePrimaryTaskSetInput(_SerdeShape): + """Dataclass for UpdateServicePrimaryTaskSetInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task set exists in. + """ + service: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the service that + the task set exists in. + """ + primary_task_set: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the task set to set + as the primary task set in the deployment. + """ + +@dataclass(kw_only=True) +class UpdateServicePrimaryTaskSetOutput(_SerdeShape): + """Dataclass for UpdateServicePrimaryTaskSetOutput structure.""" + + task_set: TaskSet | None = ... + """The details about the task set.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateTaskProtectionInput(_SerdeShape): + """Dataclass for UpdateTaskProtectionInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task sets exist in. + """ + tasks: list[str] | None = ... + """A list of up to 10 task IDs or full ARN entries.""" + protection_enabled: bool = ... + """ + Specify `true` to mark a task for protection and `false` to unset + protection, making it eligible for termination. + """ + expires_in_minutes: int | None = ... + """ + If you set `protectionEnabled` to `true`, you can specify the duration + for task protection in minutes. You can specify a value from 1 minute to + up to 2,880 minutes (48 hours). During this time, your task will not be + terminated by scale-in events from Service Auto Scaling or deployments. + After this time period lapses, `protectionEnabled` will be reset to + `false`. + + If you don't specify the time, then the task is automatically protected + for 120 minutes (2 hours). + """ + +@dataclass(kw_only=True) +class UpdateTaskProtectionOutput(_SerdeShape): + """Dataclass for UpdateTaskProtectionOutput structure.""" + + protected_tasks: list[ProtectedTask] | None = ... + """ + A list of tasks with the following information. + + - `taskArn`: The task ARN. + + - `protectionEnabled`: The protection status of the task. If scale-in + protection is turned on for a task, the value is `true`. Otherwise, it + is `false`. + + - `expirationDate`: The epoch time when protection for the task will + expire. + """ + failures: list[Failure] | None = ... + """Any failures associated with the call.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateTaskSetInput(_SerdeShape): + """Dataclass for UpdateTaskSetInput structure.""" + + cluster: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the cluster that + hosts the service that the task set is found in. + """ + service: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the service that + the task set is found in. + """ + task_set: str | None = ... + """ + The short name or full Amazon Resource Name (ARN) of the task set to + update. + """ + scale: Scale | None = ... + """ + A floating-point percentage of the desired number of tasks to place and + keep running in the task set. + """ + +@dataclass(kw_only=True) +class UpdateTaskSetOutput(_SerdeShape): + """Dataclass for UpdateTaskSetOutput structure.""" + + task_set: TaskSet | None = ... + """Details about the task set.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class VCpuCountRangeRequest(_SerdeShape): + """ + The minimum and maximum number of vCPUs for instance type selection. + This allows you to specify a range of vCPU counts that meet your + workload requirements. + """ + + min: int + """ + The minimum number of vCPUs. Instance types with fewer vCPUs than this + value are excluded from selection. + """ + max: int | None = ... + """ + The maximum number of vCPUs. Instance types with more vCPUs than this + value are excluded from selection. + """ + +class VersionConsistency(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + +@dataclass(kw_only=True) +class VersionInfo(_SerdeShape): + """ + The Docker and Amazon ECS container agent version information about a + container instance. + """ + + agent_version: str | None = ... + """The version number of the Amazon ECS container agent.""" + agent_hash: str | None = ... + """ + The Git commit hash for the Amazon ECS container agent build on the + [amazon-ecs-agent](https://github.com/aws/amazon-ecs-agent) GitHub + repository. + """ + docker_version: str | None = ... + """The Docker version that's running on the container instance.""" + +@dataclass(kw_only=True) +class Volume(_SerdeShape): + """ + The data volume configuration for tasks launched using this task + definition. Specifying a volume configuration in a task definition is + optional. The volume configuration may contain multiple volumes but only + one volume configured at launch is supported. Each volume defined in the + volume configuration may only specify a `name` and one of either + `configuredAtLaunch`, `dockerVolumeConfiguration`, + `efsVolumeConfiguration`, `s3filesVolumeConfiguration`, + `fsxWindowsFileServerVolumeConfiguration`, or `host`. If an empty volume + configuration is specified, by default Amazon ECS uses a host volume. + For more information, see [Using data volumes in + tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html). + """ + + name: str | None = ... + """ + The name of the volume. Up to 255 letters (uppercase and lowercase), + numbers, underscores, and hyphens are allowed. + + When using a volume configured at launch, the `name` is required and + must also be specified as the volume name in the + `ServiceVolumeConfiguration` or `TaskVolumeConfiguration` parameter when + creating your service or standalone task. + + For all other types of volumes, this name is referenced in the + `sourceVolume` parameter of the `mountPoints` object in the container + definition. + + When a volume is using the `efsVolumeConfiguration`, the name is + required. + + When a volume is using the `s3filesVolumeConfiguration`, the name is + required. + """ + host: HostVolumeProperties | None = ... + """ + This parameter is specified when you use bind mount host volumes. The + contents of the `host` parameter determine whether your bind mount host + volume persists on the host container instance and where it's stored. + If the `host` parameter is empty, then the Docker daemon assigns a host + path for your data volume. However, the data isn't guaranteed to + persist after the containers that are associated with it stop running. + + Windows containers can mount whole directories on the same drive as + `$env:ProgramData`. Windows containers can't mount directories on a + different drive, and mount point can't be across drives. For example, + you can mount `C:\\my\\path:C:\\my\\path` and `D:\\:D:`, but not + `D:\\my\\path:C:\\my\\path` or `D:\\:C:\\my\\path`. + """ + docker_volume_configuration: DockerVolumeConfiguration | None = ... + """ + This parameter is specified when you use Docker volumes. + + Windows containers only support the use of the `local` driver. To use + bind mounts, specify the `host` parameter instead. + + Note: + Docker volumes aren't supported by tasks run on Fargate. + """ + efs_volume_configuration: EFSVolumeConfiguration | None = ... + """ + This parameter is specified when you use an Amazon Elastic File System + file system for task storage. + """ + s3files_volume_configuration: S3FilesVolumeConfiguration | None = ... + """ + This parameter is specified when you use an Amazon S3 Files file system + for task storage. + """ + fsx_windows_file_server_volume_configuration: ( + FSxWindowsFileServerVolumeConfiguration | None + ) = ... + """ + This parameter is specified when you use Amazon FSx for Windows File + Server file system for task storage. + """ + configured_at_launch: bool | None = ... + """ + Indicates whether the volume should be configured at launch time. This + is used to create Amazon EBS volumes for standalone tasks or tasks + created as part of a service. Each task definition revision may only + have one volume configured at launch in the volume configuration. + + To configure a volume at launch time, use this task definition revision + and specify a `volumeConfigurations` object when calling the + `CreateService`, `UpdateService`, `RunTask` or `StartTask` APIs. + """ + +@dataclass(kw_only=True) +class VolumeFrom(_SerdeShape): + """ + Details on a data volume from another container in the same task + definition. + """ + + source_container: str | None = ... + """ + The name of another container within the same task definition to mount + volumes from. + """ + read_only: bool | None = ... + """ + If this value is `true`, the container has read-only access to the + volume. If this value is `false`, then the container can write to the + volume. The default value is `false`. + """ + +@dataclass(kw_only=True) +class VpcLatticeAdvancedConfiguration(_SerdeShape): + """ + The advanced settings for VPC Lattice used in blue/green deployments. + Specify the alternate target group and listener rules required for + traffic shifting during blue/green deployments. For more information, + see [Required resources for Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + + alternate_target_group_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the alternate target group associated + with the VPC Lattice Configuration for Amazon ECS blue/green + deployments. + """ + production_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the production listener + rule or listener for routing production traffic. + """ + test_listener_rule: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the test listener rule or + listener for routing test traffic. + """ + +@dataclass(kw_only=True) +class VpcLatticeConfiguration(_SerdeShape): + """ + The VPC Lattice configuration for your service that holds the + information for the target group(s) Amazon ECS tasks will be registered + to. + """ + + role_arn: str + """ + The ARN of the IAM role to associate with this VPC Lattice + configuration. This is the Amazon ECS infrastructure IAM role that is + used to manage your VPC Lattice infrastructure. + """ + target_group_arn: str + """ + The full Amazon Resource Name (ARN) of the target group or groups + associated with the VPC Lattice configuration that the Amazon ECS tasks + will be registered to. + """ + port_name: str + """ + The name of the port mapping to register in the VPC Lattice target + group. This is the name of the `portMapping` you defined in your task + definition. + """ + advanced_configuration: VpcLatticeAdvancedConfiguration | None = ... + """ + The advanced settings for VPC Lattice used in blue/green deployments. + Specify the alternate target group and listener rules required for + traffic shifting during blue/green deployments. For more information, + see [Required resources for Amazon ECS blue/green + deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html) + in the *Amazon Elastic Container Service Developer Guide*. + """ + +ASSOCIATE_GATEWAY_WITH_CLUSTER: APIOperation[ + AssociateGatewayWithClusterInput, AssociateGatewayWithClusterOutput +] +CONTINUE_SERVICE_DEPLOYMENT: APIOperation[ + ContinueServiceDeploymentInput, ContinueServiceDeploymentOutput +] +CREATE_CAPACITY_PROVIDER: APIOperation[ + CreateCapacityProviderInput, CreateCapacityProviderOutput +] +CREATE_CLUSTER: APIOperation[CreateClusterInput, CreateClusterOutput] +CREATE_DAEMON: APIOperation[CreateDaemonInput, CreateDaemonOutput] +CREATE_EXPRESS_GATEWAY_SERVICE: APIOperation[ + CreateExpressGatewayServiceInput, CreateExpressGatewayServiceOutput +] +CREATE_GATEWAY: APIOperation[CreateGatewayInput, CreateGatewayOutput] +CREATE_SERVICE: APIOperation[CreateServiceInput, CreateServiceOutput] +CREATE_TASK_SET: APIOperation[CreateTaskSetInput, CreateTaskSetOutput] +DELETE_ACCOUNT_SETTING: APIOperation[ + DeleteAccountSettingInput, DeleteAccountSettingOutput +] +DELETE_ATTRIBUTES: APIOperation[DeleteAttributesInput, DeleteAttributesOutput] +DELETE_CAPACITY_PROVIDER: APIOperation[ + DeleteCapacityProviderInput, DeleteCapacityProviderOutput +] +DELETE_CLUSTER: APIOperation[DeleteClusterInput, DeleteClusterOutput] +DELETE_DAEMON: APIOperation[DeleteDaemonInput, DeleteDaemonOutput] +DELETE_DAEMON_TASK_DEFINITION: APIOperation[ + DeleteDaemonTaskDefinitionInput, DeleteDaemonTaskDefinitionOutput +] +DELETE_EXPRESS_GATEWAY_SERVICE: APIOperation[ + DeleteExpressGatewayServiceInput, DeleteExpressGatewayServiceOutput +] +DELETE_GATEWAY: APIOperation[DeleteGatewayInput, DeleteGatewayOutput] +DELETE_SERVICE: APIOperation[DeleteServiceInput, DeleteServiceOutput] +DELETE_TASK_DEFINITIONS: APIOperation[ + DeleteTaskDefinitionsInput, DeleteTaskDefinitionsOutput +] +DELETE_TASK_SET: APIOperation[DeleteTaskSetInput, DeleteTaskSetOutput] +DEREGISTER_CONTAINER_INSTANCE: APIOperation[ + DeregisterContainerInstanceInput, DeregisterContainerInstanceOutput +] +DEREGISTER_TASK_DEFINITION: APIOperation[ + DeregisterTaskDefinitionInput, DeregisterTaskDefinitionOutput +] +DESCRIBE_CAPACITY_PROVIDERS: APIOperation[ + DescribeCapacityProvidersInput, DescribeCapacityProvidersOutput +] +DESCRIBE_CLUSTERS: APIOperation[DescribeClustersInput, DescribeClustersOutput] +DESCRIBE_CONTAINER_INSTANCES: APIOperation[ + DescribeContainerInstancesInput, DescribeContainerInstancesOutput +] +DESCRIBE_DAEMON: APIOperation[DescribeDaemonInput, DescribeDaemonOutput] +DESCRIBE_DAEMON_DEPLOYMENTS: APIOperation[ + DescribeDaemonDeploymentsInput, DescribeDaemonDeploymentsOutput +] +DESCRIBE_DAEMON_REVISIONS: APIOperation[ + DescribeDaemonRevisionsInput, DescribeDaemonRevisionsOutput +] +DESCRIBE_DAEMON_TASK_DEFINITION: APIOperation[ + DescribeDaemonTaskDefinitionInput, DescribeDaemonTaskDefinitionOutput +] +DESCRIBE_EXPRESS_GATEWAY_SERVICE: APIOperation[ + DescribeExpressGatewayServiceInput, DescribeExpressGatewayServiceOutput +] +DESCRIBE_GATEWAY: APIOperation[DescribeGatewayInput, DescribeGatewayOutput] +DESCRIBE_GATEWAY_RESOURCES: APIOperation[ + DescribeGatewayResourcesInput, DescribeGatewayResourcesOutput +] +DESCRIBE_GATEWAY_ROUTE: APIOperation[ + DescribeGatewayRouteInput, DescribeGatewayRouteOutput +] +DESCRIBE_SERVICE_DEPLOYMENTS: APIOperation[ + DescribeServiceDeploymentsInput, DescribeServiceDeploymentsOutput +] +DESCRIBE_SERVICE_REVISIONS: APIOperation[ + DescribeServiceRevisionsInput, DescribeServiceRevisionsOutput +] +DESCRIBE_SERVICES: APIOperation[DescribeServicesInput, DescribeServicesOutput] +DESCRIBE_TASK_DEFINITION: APIOperation[ + DescribeTaskDefinitionInput, DescribeTaskDefinitionOutput +] +DESCRIBE_TASKS: APIOperation[DescribeTasksInput, DescribeTasksOutput] +DESCRIBE_TASK_SETS: APIOperation[DescribeTaskSetsInput, DescribeTaskSetsOutput] +DISASSOCIATE_GATEWAY_FROM_CLUSTER: APIOperation[ + DisassociateGatewayFromClusterInput, DisassociateGatewayFromClusterOutput +] +DISCOVER_POLL_ENDPOINT: APIOperation[ + DiscoverPollEndpointInput, DiscoverPollEndpointOutput +] +EXECUTE_COMMAND: APIOperation[ExecuteCommandInput, ExecuteCommandOutput] +GET_TASK_PROTECTION: APIOperation[GetTaskProtectionInput, GetTaskProtectionOutput] +LIST_ACCOUNT_SETTINGS: APIOperation[ListAccountSettingsInput, ListAccountSettingsOutput] +LIST_ATTRIBUTES: APIOperation[ListAttributesInput, ListAttributesOutput] +LIST_CLUSTERS: APIOperation[ListClustersInput, ListClustersOutput] +LIST_CONTAINER_INSTANCES: APIOperation[ + ListContainerInstancesInput, ListContainerInstancesOutput +] +LIST_DAEMON_DEPLOYMENTS: APIOperation[ + ListDaemonDeploymentsInput, ListDaemonDeploymentsOutput +] +LIST_DAEMONS: APIOperation[ListDaemonsInput, ListDaemonsOutput] +LIST_DAEMON_TASK_DEFINITIONS: APIOperation[ + ListDaemonTaskDefinitionsInput, ListDaemonTaskDefinitionsOutput +] +LIST_GATEWAY_CLUSTER_ASSOCIATIONS: APIOperation[ + ListGatewayClusterAssociationsInput, ListGatewayClusterAssociationsOutput +] +LIST_GATEWAY_ROUTES: APIOperation[ListGatewayRoutesInput, ListGatewayRoutesOutput] +LIST_GATEWAYS: APIOperation[ListGatewaysInput, ListGatewaysOutput] +LIST_SERVICE_DEPLOYMENTS: APIOperation[ + ListServiceDeploymentsInput, ListServiceDeploymentsOutput +] +LIST_SERVICES: APIOperation[ListServicesInput, ListServicesOutput] +LIST_SERVICES_BY_NAMESPACE: APIOperation[ + ListServicesByNamespaceInput, ListServicesByNamespaceOutput +] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] +LIST_TASK_DEFINITION_FAMILIES: APIOperation[ + ListTaskDefinitionFamiliesInput, ListTaskDefinitionFamiliesOutput +] +LIST_TASK_DEFINITIONS: APIOperation[ListTaskDefinitionsInput, ListTaskDefinitionsOutput] +LIST_TASKS: APIOperation[ListTasksInput, ListTasksOutput] +PUT_ACCOUNT_SETTING: APIOperation[PutAccountSettingInput, PutAccountSettingOutput] +PUT_ACCOUNT_SETTING_DEFAULT: APIOperation[ + PutAccountSettingDefaultInput, PutAccountSettingDefaultOutput +] +PUT_ATTRIBUTES: APIOperation[PutAttributesInput, PutAttributesOutput] +PUT_CLUSTER_CAPACITY_PROVIDERS: APIOperation[ + PutClusterCapacityProvidersInput, PutClusterCapacityProvidersOutput +] +REGISTER_CONTAINER_INSTANCE: APIOperation[ + RegisterContainerInstanceInput, RegisterContainerInstanceOutput +] +REGISTER_DAEMON_TASK_DEFINITION: APIOperation[ + RegisterDaemonTaskDefinitionInput, RegisterDaemonTaskDefinitionOutput +] +REGISTER_TASK_DEFINITION: APIOperation[ + RegisterTaskDefinitionInput, RegisterTaskDefinitionOutput +] +RUN_TASK: APIOperation[RunTaskInput, RunTaskOutput] +START_TASK: APIOperation[StartTaskInput, StartTaskOutput] +STOP_SERVICE_DEPLOYMENT: APIOperation[ + StopServiceDeploymentInput, StopServiceDeploymentOutput +] +STOP_TASK: APIOperation[StopTaskInput, StopTaskOutput] +SUBMIT_ATTACHMENT_STATE_CHANGES: APIOperation[ + SubmitAttachmentStateChangesInput, SubmitAttachmentStateChangesOutput +] +SUBMIT_CONTAINER_STATE_CHANGE: APIOperation[ + SubmitContainerStateChangeInput, SubmitContainerStateChangeOutput +] +SUBMIT_TASK_STATE_CHANGE: APIOperation[ + SubmitTaskStateChangeInput, SubmitTaskStateChangeOutput +] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] +UPDATE_CAPACITY_PROVIDER: APIOperation[ + UpdateCapacityProviderInput, UpdateCapacityProviderOutput +] +UPDATE_CLUSTER: APIOperation[UpdateClusterInput, UpdateClusterOutput] +UPDATE_CLUSTER_SETTINGS: APIOperation[ + UpdateClusterSettingsInput, UpdateClusterSettingsOutput +] +UPDATE_CONTAINER_AGENT: APIOperation[ + UpdateContainerAgentInput, UpdateContainerAgentOutput +] +UPDATE_CONTAINER_INSTANCES_STATE: APIOperation[ + UpdateContainerInstancesStateInput, UpdateContainerInstancesStateOutput +] +UPDATE_DAEMON: APIOperation[UpdateDaemonInput, UpdateDaemonOutput] +UPDATE_EXPRESS_GATEWAY_SERVICE: APIOperation[ + UpdateExpressGatewayServiceInput, UpdateExpressGatewayServiceOutput +] +UPDATE_GATEWAY: APIOperation[UpdateGatewayInput, UpdateGatewayOutput] +UPDATE_SERVICE: APIOperation[UpdateServiceInput, UpdateServiceOutput] +UPDATE_SERVICE_PRIMARY_TASK_SET: APIOperation[ + UpdateServicePrimaryTaskSetInput, UpdateServicePrimaryTaskSetOutput +] +UPDATE_TASK_PROTECTION: APIOperation[ + UpdateTaskProtectionInput, UpdateTaskProtectionOutput +] +UPDATE_TASK_SET: APIOperation[UpdateTaskSetInput, UpdateTaskSetOutput] diff --git a/clients/aws-sdk-ecs/src/aws_sdk_ecs/user_agent.py b/clients/aws-sdk-ecs/src/aws_sdk_ecs/user_agent.py new file mode 100644 index 00000000..78b6e8bb --- /dev/null +++ b/clients/aws-sdk-ecs/src/aws_sdk_ecs/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import ECSConfig + + +def aws_user_agent_plugin(config: ECSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="ECS", + ) + ) diff --git a/clients/aws-sdk-ecs/tests/__init__.py b/clients/aws-sdk-ecs/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-ecs/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-ecs/tests/_typecheck.py b/clients/aws-sdk-ecs/tests/_typecheck.py new file mode 100644 index 00000000..a4e10dfe --- /dev/null +++ b/clients/aws-sdk-ecs/tests/_typecheck.py @@ -0,0 +1,827 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_ecs.models import ( + AcceleratorCountRequest, + AcceleratorTotalMemoryMiBRequest, + AdvancedConfiguration, + AssociateGatewayWithClusterInput, + AssociateGatewayWithClusterOutput, + Attachment, + AttachmentStateChange, + Attribute, + AutoRepairConfiguration, + AutoScalingGroupProvider, + AutoScalingGroupProviderUpdate, + AwsVpcConfiguration, + BaselineEbsBandwidthMbpsRequest, + CanaryConfiguration, + CapacityProvider, + CapacityProviderStrategyItem, + CapacityReservationRequest, + Cluster, + ClusterConfiguration, + ClusterServiceConnectDefaults, + ClusterServiceConnectDefaultsRequest, + ClusterSetting, + Container, + ContainerDefinition, + ContainerDependency, + ContainerImage, + ContainerInstance, + ContainerInstanceHealthStatus, + ContainerOverride, + ContainerRestartPolicy, + ContainerStateChange, + ContinueServiceDeploymentInput, + ContinueServiceDeploymentOutput, + CreateCapacityProviderInput, + CreateCapacityProviderOutput, + CreateClusterInput, + CreateClusterOutput, + CreateDaemonInput, + CreateDaemonOutput, + CreateExpressGatewayServiceInput, + CreateExpressGatewayServiceOutput, + CreateGatewayInput, + CreateGatewayOutput, + CreateManagedInstancesProviderConfiguration, + CreateServiceInput, + CreateServiceOutput, + CreateTaskSetInput, + CreateTaskSetOutput, + CreatedAt, + DaemonAlarmConfiguration, + DaemonCapacityProvider, + DaemonCircuitBreaker, + DaemonContainerDefinition, + DaemonContainerImage, + DaemonDeployment, + DaemonDeploymentAlarms, + DaemonDeploymentCapacityProvider, + DaemonDeploymentConfiguration, + DaemonDeploymentRevisionDetail, + DaemonDeploymentSummary, + DaemonDetail, + DaemonLinuxParameters, + DaemonRevision, + DaemonRevisionDetail, + DaemonRollback, + DaemonSummary, + DaemonTaskDefinition, + DaemonTaskDefinitionSummary, + DaemonVolume, + DeleteAccountSettingInput, + DeleteAccountSettingOutput, + DeleteAttributesInput, + DeleteAttributesOutput, + DeleteCapacityProviderInput, + DeleteCapacityProviderOutput, + DeleteClusterInput, + DeleteClusterOutput, + DeleteDaemonInput, + DeleteDaemonOutput, + DeleteDaemonTaskDefinitionInput, + DeleteDaemonTaskDefinitionOutput, + DeleteExpressGatewayServiceInput, + DeleteExpressGatewayServiceOutput, + DeleteGatewayInput, + DeleteGatewayOutput, + DeleteServiceInput, + DeleteServiceOutput, + DeleteTaskDefinitionsInput, + DeleteTaskDefinitionsOutput, + DeleteTaskSetInput, + DeleteTaskSetOutput, + Deployment, + DeploymentAlarms, + DeploymentCircuitBreaker, + DeploymentConfiguration, + DeploymentController, + DeploymentEarlySuccessCriteria, + DeploymentEphemeralStorage, + DeploymentLifecycleHook, + DeploymentLifecycleHookDetail, + DeploymentLifecycleHookTimeoutConfiguration, + DeregisterContainerInstanceInput, + DeregisterContainerInstanceOutput, + DeregisterTaskDefinitionInput, + DeregisterTaskDefinitionOutput, + DescribeCapacityProvidersInput, + DescribeCapacityProvidersOutput, + DescribeClustersInput, + DescribeClustersOutput, + DescribeContainerInstancesInput, + DescribeContainerInstancesOutput, + DescribeDaemonDeploymentsInput, + DescribeDaemonDeploymentsOutput, + DescribeDaemonInput, + DescribeDaemonOutput, + DescribeDaemonRevisionsInput, + DescribeDaemonRevisionsOutput, + DescribeDaemonTaskDefinitionInput, + DescribeDaemonTaskDefinitionOutput, + DescribeExpressGatewayServiceInput, + DescribeExpressGatewayServiceOutput, + DescribeGatewayAlbConfiguration, + DescribeGatewayInput, + DescribeGatewayOutput, + DescribeGatewayResourcesInput, + DescribeGatewayResourcesOutput, + DescribeGatewayRouteInput, + DescribeGatewayRouteOutput, + DescribeServiceDeploymentsInput, + DescribeServiceDeploymentsOutput, + DescribeServiceRevisionsInput, + DescribeServiceRevisionsOutput, + DescribeServicesInput, + DescribeServicesOutput, + DescribeTaskDefinitionInput, + DescribeTaskDefinitionOutput, + DescribeTaskSetsInput, + DescribeTaskSetsOutput, + DescribeTasksInput, + DescribeTasksOutput, + Device, + DisassociateGatewayFromClusterInput, + DisassociateGatewayFromClusterOutput, + DiscoverPollEndpointInput, + DiscoverPollEndpointOutput, + DockerVolumeConfiguration, + EBSTagSpecification, + ECSExpressGatewayService, + ECSManagedResources, + EFSAuthorizationConfig, + EFSVolumeConfiguration, + ElbGatewayResources, + EnvironmentFile, + EphemeralStorage, + ExecuteCommandConfiguration, + ExecuteCommandInput, + ExecuteCommandLogConfiguration, + ExecuteCommandOutput, + ExpressGatewayContainer, + ExpressGatewayRepositoryCredentials, + ExpressGatewayScalingTarget, + ExpressGatewayServiceAwsLogsConfiguration, + ExpressGatewayServiceConfiguration, + ExpressGatewayServiceNetworkConfiguration, + ExpressGatewayServiceStatus, + FSxWindowsFileServerAuthorizationConfig, + FSxWindowsFileServerVolumeConfiguration, + Failure, + FirelensConfiguration, + Gateway, + GatewayAlbTestTrafficRules, + GatewayClusterAssociationSummary, + GatewayConnection, + GatewayConnectionAlbResources, + GatewayConnector, + GatewayConnectorFilters, + GatewayConnectorHealthCheck, + GatewayConnectorHealthCheckMatcher, + GatewayElbAccessLogConfiguration, + GatewayElbAccessLogS3Destination, + GatewayElbNetworkConfiguration, + GatewayOperationError, + GatewayResourceFailure, + GatewayResources, + GatewayRoute, + GatewayRouteAlbResources, + GatewayRouteLoadBalancerSecurityGroup, + GatewayRouteSummary, + GatewaySummary, + GatewayTestTrafficHeader, + GetTaskProtectionInput, + GetTaskProtectionOutput, + GpuDevice, + HealthCheck, + HostEntry, + HostSharedAlbConfiguration, + HostVolumeProperties, + InferenceAccelerator, + InferenceAcceleratorOverride, + InfrastructureOptimization, + IngressPathSummary, + InstanceHealthCheckResult, + InstanceLaunchTemplate, + InstanceLaunchTemplateUpdate, + InstanceRequirementsRequest, + KernelCapabilities, + KeyValuePair, + LinearConfiguration, + LinuxParameters, + ListAccountSettingsInput, + ListAccountSettingsOutput, + ListAttributesInput, + ListAttributesOutput, + ListClustersInput, + ListClustersOutput, + ListContainerInstancesInput, + ListContainerInstancesOutput, + ListDaemonDeploymentsInput, + ListDaemonDeploymentsOutput, + ListDaemonTaskDefinitionsInput, + ListDaemonTaskDefinitionsOutput, + ListDaemonsInput, + ListDaemonsOutput, + ListGatewayClusterAssociationsInput, + ListGatewayClusterAssociationsOutput, + ListGatewayRoutesInput, + ListGatewayRoutesOutput, + ListGatewaysInput, + ListGatewaysOutput, + ListServiceDeploymentsInput, + ListServiceDeploymentsOutput, + ListServicesByNamespaceInput, + ListServicesByNamespaceOutput, + ListServicesInput, + ListServicesOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTaskDefinitionFamiliesInput, + ListTaskDefinitionFamiliesOutput, + ListTaskDefinitionsInput, + ListTaskDefinitionsOutput, + ListTasksInput, + ListTasksOutput, + LoadBalancer, + LogConfiguration, + LogDriverVolumeConfiguration, + ManagedAgent, + ManagedAgentStateChange, + ManagedApplicationAutoScalingPolicy, + ManagedAutoScaling, + ManagedCertificate, + ManagedIngressPath, + ManagedInstancesLocalStorageConfiguration, + ManagedInstancesNetworkConfiguration, + ManagedInstancesProvider, + ManagedInstancesStorageConfiguration, + ManagedListener, + ManagedListenerRule, + ManagedLoadBalancer, + ManagedLogGroup, + ManagedMetricAlarm, + ManagedScalableTarget, + ManagedScaling, + ManagedSecurityGroup, + ManagedStorageConfiguration, + ManagedTargetGroup, + MemoryGiBPerVCpuRequest, + MemoryMiBRequest, + MetricConfiguration, + MonitoringConfiguration, + MountPoint, + NetworkBandwidthGbpsRequest, + NetworkBinding, + NetworkConfiguration, + NetworkInterface, + NetworkInterfaceCountRequest, + NvidiaMpsAllocation, + PlacementConstraint, + PlacementStrategy, + PlatformDevice, + PortMapping, + ProtectedTask, + ProxyConfiguration, + PutAccountSettingDefaultInput, + PutAccountSettingDefaultOutput, + PutAccountSettingInput, + PutAccountSettingOutput, + PutAttributesInput, + PutAttributesOutput, + PutClusterCapacityProvidersInput, + PutClusterCapacityProvidersOutput, + RegisterContainerInstanceInput, + RegisterContainerInstanceOutput, + RegisterDaemonTaskDefinitionInput, + RegisterDaemonTaskDefinitionOutput, + RegisterTaskDefinitionInput, + RegisterTaskDefinitionOutput, + RepositoryCredentials, + ResolvedConfiguration, + Resource, + ResourceRequirement, + Rollback, + RunTaskInput, + RunTaskOutput, + RuntimePlatform, + RuntimePlatformOverride, + S3FilesVolumeConfiguration, + Scale, + Secret, + Service, + ServiceConnectAccessLogConfiguration, + ServiceConnectClientAlias, + ServiceConnectConfiguration, + ServiceConnectService, + ServiceConnectServiceResource, + ServiceConnectTestTrafficHeaderMatchRules, + ServiceConnectTestTrafficHeaderRules, + ServiceConnectTestTrafficRules, + ServiceConnectTlsCertificateAuthority, + ServiceConnectTlsConfiguration, + ServiceCurrentRevisionSummary, + ServiceDeployment, + ServiceDeploymentAlarms, + ServiceDeploymentBrief, + ServiceDeploymentCircuitBreaker, + ServiceEvent, + ServiceManagedEBSVolumeConfiguration, + ServiceRegistry, + ServiceRevision, + ServiceRevisionLoadBalancer, + ServiceRevisionOverrides, + ServiceRevisionSummary, + ServiceRevisionVpcLatticeConfiguration, + ServiceVolumeConfiguration, + Session, + Setting, + StartTaskInput, + StartTaskOutput, + StopServiceDeploymentInput, + StopServiceDeploymentOutput, + StopTaskInput, + StopTaskOutput, + SubmitAttachmentStateChangesInput, + SubmitAttachmentStateChangesOutput, + SubmitContainerStateChangeInput, + SubmitContainerStateChangeOutput, + SubmitTaskStateChangeInput, + SubmitTaskStateChangeOutput, + SystemControl, + Tag, + TagResourceInput, + TagResourceOutput, + Task, + TaskDefinition, + TaskDefinitionPlacementConstraint, + TaskEphemeralStorage, + TaskManagedEBSVolumeConfiguration, + TaskManagedEBSVolumeTerminationPolicy, + TaskOverride, + TaskSet, + TaskVolumeConfiguration, + ThresholdConfiguration, + TimeoutConfiguration, + Tmpfs, + TotalLocalStorageGBRequest, + TrustedExecutionConfiguration, + TrustedExecutionSummary, + Ulimit, + UntagResourceInput, + UntagResourceOutput, + UpdateCapacityProviderInput, + UpdateCapacityProviderOutput, + UpdateClusterInput, + UpdateClusterOutput, + UpdateClusterSettingsInput, + UpdateClusterSettingsOutput, + UpdateContainerAgentInput, + UpdateContainerAgentOutput, + UpdateContainerInstancesStateInput, + UpdateContainerInstancesStateOutput, + UpdateDaemonInput, + UpdateDaemonOutput, + UpdateExpressGatewayServiceInput, + UpdateExpressGatewayServiceOutput, + UpdateGatewayAlbConfiguration, + UpdateGatewayInput, + UpdateGatewayNetworkConfiguration, + UpdateGatewayOutput, + UpdateManagedInstancesProviderConfiguration, + UpdateServiceInput, + UpdateServiceOutput, + UpdateServicePrimaryTaskSetInput, + UpdateServicePrimaryTaskSetOutput, + UpdateTaskProtectionInput, + UpdateTaskProtectionOutput, + UpdateTaskSetInput, + UpdateTaskSetOutput, + UpdatedExpressGatewayService, + VCpuCountRangeRequest, + VersionInfo, + Volume, + VolumeFrom, + VpcLatticeAdvancedConfiguration, + VpcLatticeConfiguration, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AcceleratorCountRequest() +AcceleratorTotalMemoryMiBRequest() +AdvancedConfiguration() +AssociateGatewayWithClusterInput() +AssociateGatewayWithClusterOutput() +Attachment() +AttachmentStateChange(attachment_arn=_, status=_) +Attribute(name=_) +AutoRepairConfiguration() +AutoScalingGroupProvider(auto_scaling_group_arn=_) +AutoScalingGroupProviderUpdate() +AwsVpcConfiguration(subnets=_) +BaselineEbsBandwidthMbpsRequest() +CanaryConfiguration() +CapacityProvider() +CapacityProviderStrategyItem(capacity_provider=_) +CapacityReservationRequest() +Cluster() +ClusterConfiguration() +ClusterServiceConnectDefaults() +ClusterServiceConnectDefaultsRequest(namespace=_) +ClusterSetting() +Container() +ContainerDefinition() +ContainerDependency(container_name=_, condition=_) +ContainerImage() +ContainerInstance() +ContainerInstanceHealthStatus() +ContainerOverride() +ContainerRestartPolicy(enabled=_) +ContainerStateChange() +ContinueServiceDeploymentInput() +ContinueServiceDeploymentOutput() +CreateCapacityProviderInput() +CreateCapacityProviderOutput() +CreateClusterInput() +CreateClusterOutput() +CreateDaemonInput() +CreateDaemonOutput() +CreatedAt() +CreateExpressGatewayServiceInput() +CreateExpressGatewayServiceOutput() +CreateGatewayInput() +CreateGatewayOutput() +CreateManagedInstancesProviderConfiguration( + infrastructure_role_arn=_, instance_launch_template=_ +) +CreateServiceInput() +CreateServiceOutput() +CreateTaskSetInput() +CreateTaskSetOutput() +DaemonAlarmConfiguration() +DaemonCapacityProvider() +DaemonCircuitBreaker() +DaemonContainerDefinition(image=_) +DaemonContainerImage() +DaemonDeployment() +DaemonDeploymentAlarms() +DaemonDeploymentCapacityProvider() +DaemonDeploymentConfiguration() +DaemonDeploymentRevisionDetail() +DaemonDeploymentSummary() +DaemonDetail() +DaemonLinuxParameters() +DaemonRevision() +DaemonRevisionDetail() +DaemonRollback() +DaemonSummary() +DaemonTaskDefinition() +DaemonTaskDefinitionSummary() +DaemonVolume() +DeleteAccountSettingInput() +DeleteAccountSettingOutput() +DeleteAttributesInput() +DeleteAttributesOutput() +DeleteCapacityProviderInput() +DeleteCapacityProviderOutput() +DeleteClusterInput() +DeleteClusterOutput() +DeleteDaemonInput() +DeleteDaemonOutput() +DeleteDaemonTaskDefinitionInput() +DeleteDaemonTaskDefinitionOutput() +DeleteExpressGatewayServiceInput() +DeleteExpressGatewayServiceOutput() +DeleteGatewayInput() +DeleteGatewayOutput() +DeleteServiceInput() +DeleteServiceOutput() +DeleteTaskDefinitionsInput() +DeleteTaskDefinitionsOutput() +DeleteTaskSetInput() +DeleteTaskSetOutput() +Deployment() +DeploymentAlarms(alarm_names=_) +DeploymentCircuitBreaker() +DeploymentConfiguration() +DeploymentController(type=_) +DeploymentEarlySuccessCriteria() +DeploymentEphemeralStorage() +DeploymentLifecycleHook() +DeploymentLifecycleHookDetail() +DeploymentLifecycleHookTimeoutConfiguration() +DeregisterContainerInstanceInput() +DeregisterContainerInstanceOutput() +DeregisterTaskDefinitionInput() +DeregisterTaskDefinitionOutput() +DescribeCapacityProvidersInput() +DescribeCapacityProvidersOutput() +DescribeClustersInput() +DescribeClustersOutput() +DescribeContainerInstancesInput() +DescribeContainerInstancesOutput() +DescribeDaemonDeploymentsInput() +DescribeDaemonDeploymentsOutput() +DescribeDaemonInput() +DescribeDaemonOutput() +DescribeDaemonRevisionsInput() +DescribeDaemonRevisionsOutput() +DescribeDaemonTaskDefinitionInput() +DescribeDaemonTaskDefinitionOutput() +DescribeExpressGatewayServiceInput() +DescribeExpressGatewayServiceOutput() +DescribeGatewayAlbConfiguration() +DescribeGatewayInput() +DescribeGatewayOutput() +DescribeGatewayResourcesInput() +DescribeGatewayResourcesOutput() +DescribeGatewayRouteInput() +DescribeGatewayRouteOutput() +DescribeServiceDeploymentsInput() +DescribeServiceDeploymentsOutput() +DescribeServiceRevisionsInput() +DescribeServiceRevisionsOutput() +DescribeServicesInput() +DescribeServicesOutput() +DescribeTaskDefinitionInput() +DescribeTaskDefinitionOutput() +DescribeTaskSetsInput() +DescribeTaskSetsOutput() +DescribeTasksInput() +DescribeTasksOutput() +Device(host_path=_) +DisassociateGatewayFromClusterInput() +DisassociateGatewayFromClusterOutput() +DiscoverPollEndpointInput() +DiscoverPollEndpointOutput() +DockerVolumeConfiguration() +EBSTagSpecification(resource_type=_) +ECSExpressGatewayService() +ECSManagedResources() +EFSAuthorizationConfig() +EFSVolumeConfiguration(file_system_id=_) +ElbGatewayResources() +EnvironmentFile(value=_, type=_) +EphemeralStorage() +ExecuteCommandConfiguration() +ExecuteCommandInput() +ExecuteCommandLogConfiguration() +ExecuteCommandOutput() +ExpressGatewayContainer(image=_) +ExpressGatewayRepositoryCredentials() +ExpressGatewayScalingTarget() +ExpressGatewayServiceAwsLogsConfiguration(log_group=_, log_stream_prefix=_) +ExpressGatewayServiceConfiguration() +ExpressGatewayServiceNetworkConfiguration() +ExpressGatewayServiceStatus() +Failure() +FirelensConfiguration(type=_) +FSxWindowsFileServerAuthorizationConfig(credentials_parameter=_, domain=_) +FSxWindowsFileServerVolumeConfiguration( + file_system_id=_, root_directory=_, authorization_config=_ +) +Gateway() +GatewayAlbTestTrafficRules() +GatewayClusterAssociationSummary() +GatewayConnection() +GatewayConnectionAlbResources() +GatewayConnector(port_name=_) +GatewayConnectorFilters() +GatewayConnectorHealthCheck() +GatewayConnectorHealthCheckMatcher() +GatewayElbAccessLogConfiguration() +GatewayElbAccessLogS3Destination(bucket=_) +GatewayElbNetworkConfiguration() +GatewayOperationError() +GatewayResourceFailure() +GatewayResources() +GatewayRoute() +GatewayRouteAlbResources() +GatewayRouteLoadBalancerSecurityGroup() +GatewayRouteSummary() +GatewaySummary() +GatewayTestTrafficHeader(name=_, values=_) +GetTaskProtectionInput() +GetTaskProtectionOutput() +GpuDevice() +HealthCheck(command=_) +HostEntry(hostname=_, ip_address=_) +HostSharedAlbConfiguration() +HostVolumeProperties() +InferenceAccelerator(device_name=_, device_type=_) +InferenceAcceleratorOverride() +InfrastructureOptimization() +IngressPathSummary(access_type=_, endpoint=_) +InstanceHealthCheckResult() +InstanceLaunchTemplate(ec2_instance_profile_arn=_, network_configuration=_) +InstanceLaunchTemplateUpdate() +InstanceRequirementsRequest(v_cpu_count=_, memory_mi_b=_) +KernelCapabilities() +KeyValuePair() +LinearConfiguration() +LinuxParameters() +ListAccountSettingsInput() +ListAccountSettingsOutput() +ListAttributesInput() +ListAttributesOutput() +ListClustersInput() +ListClustersOutput() +ListContainerInstancesInput() +ListContainerInstancesOutput() +ListDaemonDeploymentsInput() +ListDaemonDeploymentsOutput() +ListDaemonsInput() +ListDaemonsOutput() +ListDaemonTaskDefinitionsInput() +ListDaemonTaskDefinitionsOutput() +ListGatewayClusterAssociationsInput() +ListGatewayClusterAssociationsOutput() +ListGatewayRoutesInput() +ListGatewayRoutesOutput() +ListGatewaysInput() +ListGatewaysOutput() +ListServiceDeploymentsInput() +ListServiceDeploymentsOutput() +ListServicesByNamespaceInput() +ListServicesByNamespaceOutput() +ListServicesInput() +ListServicesOutput() +ListTagsForResourceInput() +ListTagsForResourceOutput() +ListTaskDefinitionFamiliesInput() +ListTaskDefinitionFamiliesOutput() +ListTaskDefinitionsInput() +ListTaskDefinitionsOutput() +ListTasksInput() +ListTasksOutput() +LoadBalancer() +LogConfiguration(log_driver=_) +LogDriverVolumeConfiguration(driver=_) +ManagedAgent() +ManagedAgentStateChange(container_name=_, managed_agent_name=_, status=_) +ManagedApplicationAutoScalingPolicy(status=_, updated_at=_, policy_type=_, metric=_) +ManagedAutoScaling() +ManagedCertificate(status=_, updated_at=_, domain_name=_) +ManagedIngressPath(access_type=_, endpoint=_) +ManagedInstancesLocalStorageConfiguration() +ManagedInstancesNetworkConfiguration() +ManagedInstancesProvider() +ManagedInstancesStorageConfiguration() +ManagedListener(status=_, updated_at=_) +ManagedListenerRule(status=_, updated_at=_) +ManagedLoadBalancer(status=_, updated_at=_, scheme=_) +ManagedLogGroup(status=_, updated_at=_, log_group_name=_) +ManagedMetricAlarm(status=_, updated_at=_) +ManagedScalableTarget(status=_, updated_at=_) +ManagedScaling() +ManagedSecurityGroup(status=_, updated_at=_) +ManagedStorageConfiguration() +ManagedTargetGroup(status=_, updated_at=_, health_check_path=_) +MemoryGiBPerVCpuRequest() +MemoryMiBRequest(min=_) +MetricConfiguration(metric_names=_, resolution_seconds=_) +MonitoringConfiguration() +MountPoint() +NetworkBandwidthGbpsRequest() +NetworkBinding() +NetworkConfiguration() +NetworkInterface() +NetworkInterfaceCountRequest() +NvidiaMpsAllocation(memory=_) +PlacementConstraint() +PlacementStrategy() +PlatformDevice(id=_, type=_) +PortMapping() +ProtectedTask() +ProxyConfiguration(container_name=_) +PutAccountSettingDefaultInput() +PutAccountSettingDefaultOutput() +PutAccountSettingInput() +PutAccountSettingOutput() +PutAttributesInput() +PutAttributesOutput() +PutClusterCapacityProvidersInput() +PutClusterCapacityProvidersOutput() +RegisterContainerInstanceInput() +RegisterContainerInstanceOutput() +RegisterDaemonTaskDefinitionInput() +RegisterDaemonTaskDefinitionOutput() +RegisterTaskDefinitionInput() +RegisterTaskDefinitionOutput() +RepositoryCredentials(credentials_parameter=_) +ResolvedConfiguration() +Resource() +ResourceRequirement(type=_) +Rollback() +RunTaskInput() +RunTaskOutput() +RuntimePlatform() +RuntimePlatformOverride() +S3FilesVolumeConfiguration(file_system_arn=_) +Scale() +Secret(name=_, value_from=_) +Service() +ServiceConnectAccessLogConfiguration(format=_) +ServiceConnectClientAlias(port=_) +ServiceConnectConfiguration() +ServiceConnectService(port_name=_) +ServiceConnectServiceResource() +ServiceConnectTestTrafficHeaderMatchRules(exact=_) +ServiceConnectTestTrafficHeaderRules(name=_) +ServiceConnectTestTrafficRules(header=_) +ServiceConnectTlsCertificateAuthority() +ServiceConnectTlsConfiguration(issuer_certificate_authority=_) +ServiceCurrentRevisionSummary() +ServiceDeployment() +ServiceDeploymentAlarms() +ServiceDeploymentBrief() +ServiceDeploymentCircuitBreaker() +ServiceEvent() +ServiceManagedEBSVolumeConfiguration(role_arn=_) +ServiceRegistry() +ServiceRevision() +ServiceRevisionLoadBalancer() +ServiceRevisionOverrides() +ServiceRevisionSummary() +ServiceRevisionVpcLatticeConfiguration() +ServiceVolumeConfiguration(name=_) +Session() +Setting() +StartTaskInput() +StartTaskOutput() +StopServiceDeploymentInput() +StopServiceDeploymentOutput() +StopTaskInput() +StopTaskOutput() +SubmitAttachmentStateChangesInput() +SubmitAttachmentStateChangesOutput() +SubmitContainerStateChangeInput() +SubmitContainerStateChangeOutput() +SubmitTaskStateChangeInput() +SubmitTaskStateChangeOutput() +SystemControl() +Tag() +TagResourceInput() +TagResourceOutput() +Task() +TaskDefinition() +TaskDefinitionPlacementConstraint() +TaskEphemeralStorage() +TaskManagedEBSVolumeConfiguration(role_arn=_) +TaskManagedEBSVolumeTerminationPolicy(delete_on_termination=_) +TaskOverride() +TaskSet() +TaskVolumeConfiguration(name=_) +ThresholdConfiguration(type=_) +TimeoutConfiguration() +Tmpfs(container_path=_) +TotalLocalStorageGBRequest() +TrustedExecutionConfiguration(isolation_mode=_) +TrustedExecutionSummary(isolation_mode=_) +Ulimit(name=_) +UntagResourceInput() +UntagResourceOutput() +UpdateCapacityProviderInput() +UpdateCapacityProviderOutput() +UpdateClusterInput() +UpdateClusterOutput() +UpdateClusterSettingsInput() +UpdateClusterSettingsOutput() +UpdateContainerAgentInput() +UpdateContainerAgentOutput() +UpdateContainerInstancesStateInput() +UpdateContainerInstancesStateOutput() +UpdateDaemonInput() +UpdateDaemonOutput() +UpdatedExpressGatewayService() +UpdateExpressGatewayServiceInput() +UpdateExpressGatewayServiceOutput() +UpdateGatewayAlbConfiguration() +UpdateGatewayInput() +UpdateGatewayNetworkConfiguration() +UpdateGatewayOutput() +UpdateManagedInstancesProviderConfiguration( + infrastructure_role_arn=_, instance_launch_template=_ +) +UpdateServiceInput() +UpdateServiceOutput() +UpdateServicePrimaryTaskSetInput() +UpdateServicePrimaryTaskSetOutput() +UpdateTaskProtectionInput() +UpdateTaskProtectionOutput() +UpdateTaskSetInput() +UpdateTaskSetOutput() +VCpuCountRangeRequest(min=_) +VersionInfo() +Volume() +VolumeFrom() +VpcLatticeAdvancedConfiguration() +VpcLatticeConfiguration(role_arn=_, target_group_arn=_, port_name=_) diff --git a/clients/aws-sdk-ecs/tests/test_awsjson11_protocol.py b/clients/aws-sdk-ecs/tests/test_awsjson11_protocol.py new file mode 100644 index 00000000..cedb78b4 --- /dev/null +++ b/clients/aws-sdk-ecs/tests/test_awsjson11_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_ecs.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-ecs/tests/test_endpoints.py b/clients/aws-sdk-ecs/tests/test_endpoints.py new file mode 100644 index 00000000..2edcae08 --- /dev/null +++ b/clients/aws-sdk-ecs/tests/test_endpoints.py @@ -0,0 +1,336 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_ecs.aio.client import AsyncECSClient +from aws_sdk_ecs.aio.config import AsyncECSConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.ecs#AmazonEC2ContainerServiceV20141113. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncECSConfig: + return await AsyncECSConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncECSClient: + return AsyncECSClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://ecs-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ecs.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://ecs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ecs.cn-north-1.api.amazonwebservices.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://ecs-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://ecs.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://ecs-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-ecs/tests/test_model_conformance.py b/clients/aws-sdk-ecs/tests/test_model_conformance.py new file mode 100644 index 00000000..45c3b90f --- /dev/null +++ b/clients/aws-sdk-ecs/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_ecs import models as _models +from aws_sdk_ecs._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/_private/schemas.py b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/_private/schemas.py index 77245d15..e66ca68e 100644 --- a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/_private/schemas.py +++ b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/_private/schemas.py @@ -677,6 +677,7 @@ _EAM = "EKS_ADDON_MANAGEMENT" _EFAM = "ECS_FARGATE_AGENT_MANAGEMENT" _EAM_ = "EC2_AGENT_MANAGEMENT" +_RDR = "RDS_DATA_RISK" _FS = "FeatureStatus" _DAC = "DetectorAdditionalConfiguration" _DACe = "DetectorAdditionalConfigurations" @@ -1289,12 +1290,19 @@ _Det = "Detection" _an = "anomaly" _seq = "sequence" +_DRAV = "DetectionRuleAgentVersion" _DRCS = "DetectionRuleConfigurationStatus" _PROCESSING = "PROCESSING" _DRDS = "DetectionRuleDataSource" _CME = "CLOUDTRAIL_MANAGEMENT_EVENT" _CTME = "CloudTrailManagementEvent" +_RMu = "RuntimeMonitoring" _DRD = "DetectionRuleDescription" +_DRER = "DetectionRuleEc2Requirements" +_MAV = "MinAgentVersion" +_mAV = "minAgentVersion" +_DREFR = "DetectionRuleEcsFargateRequirements" +_DRERe = "DetectionRuleEksRequirements" _DRFC = "DetectionRuleFilterCondition" _EQUALS = "EQUALS" _CONTAINS = "CONTAINS" @@ -1320,6 +1328,16 @@ _sRt = "statusReason" _DROCS = "DetectionRuleOrgConfigurationSummary" _DROCSL = "DetectionRuleOrgConfigurationSummaryList" +_DRRP = "DetectionRuleRuntimePlatforms" +_Ek = "Eks" +_ek = "eks" +_Ec = "Ec2" +_ec = "ec2" +_EF = "EcsFargate" +_eF = "ecsFargate" +_DRRMD = "DetectionRuleRuntimeMonitoringDetails" +_Pla = "Platforms" +_pla = "platforms" _DRSN = "DetectionRuleServiceName" _DRS = "DetectionRuleSeverity" _CRITICAL = "CRITICAL" @@ -1715,6 +1733,8 @@ _sVc = "schemaVersion" _AASA = "AssociatedAttackSequenceArn" _aASA = "associatedAttackSequenceArn" +_CDRN = "CustomDetectionRuleName" +_cDRN = "customDetectionRuleName" _Find = "Findings" _GBA = "GroupedByAccount" _GBD = "GroupedByDate" @@ -1770,6 +1790,8 @@ _la = "language" _Sch = "Schema" _sch = "schema" +_RMD = "RuntimeMonitoringDetails" +_rMD = "runtimeMonitoringDetails" _GCDRO = "GetCustomDetectionRuleOutput" _cGCDRRo = "com.amazonaws.guardduty#GetCustomDetectionRuleResponse" _Ru = "Rule" @@ -2047,6 +2069,10 @@ _UFs = "UsageFeature" _RDPP = "RDS_DBI_PROTECTION_PROVISIONED" _RDPS = "RDS_DBI_PROTECTION_SERVERLESS" +_RDPL = "RDS_DBI_PROTECTION_LIMITLESS" +_RDADPP = "RDS_DATA_ACTIVITY_DBI_PROTECTION_PROVISIONED" +_RDADPS = "RDS_DATA_ACTIVITY_DBI_PROTECTION_SERVERLESS" +_RDADPL = "RDS_DATA_ACTIVITY_DBI_PROTECTION_LIMITLESS" _UFL = "UsageFeatureList" _RLe = "ResourceList" _UC = "UsageCriteria" @@ -4136,8 +4162,8 @@ n0, _FAC, 0, - (_EAM, _EFAM, _EAM_), - ((-1, {_sV: _EAM}), (-1, {_sV: _EFAM}), (-1, {_sV: _EAM_})), + (_EAM, _EFAM, _EAM_, _RDR), + ((-1, {_sV: _EAM}), (-1, {_sV: _EFAM}), (-1, {_sV: _EAM_}), (-1, {_sV: _RDR})), ) FEATURE_STATUS: StaticSchema = ( @@ -4605,8 +4631,8 @@ n0, _DP, 0, - (_DA, _KKA), - ((STRING, {_sN: _dA}), (STRING, {_sN: _kKA})), + (_DA, _KKA, _EBO), + ((STRING, {_sN: _dA}), (STRING, {_sN: _kKA}), (ACCOUNT_ID, {_sN: _eBO})), ) DESTINATION_TYPE: StaticSchema = (14, n0, _DT, 0, (_S_,), ((-1, {_sV: _S_}),)) @@ -5755,8 +5781,8 @@ n0, _OFAC, 0, - (_EAM, _EFAM, _EAM_), - ((-1, {_sV: _EAM}), (-1, {_sV: _EFAM}), (-1, {_sV: _EAM_})), + (_EAM, _EFAM, _EAM_, _RDR), + ((-1, {_sV: _EAM}), (-1, {_sV: _EFAM}), (-1, {_sV: _EAM_}), (-1, {_sV: _RDR})), ) ORGANIZATION_ADDITIONAL_CONFIGURATION_RESULT: StaticSchema = ( @@ -6584,6 +6610,8 @@ ((ANOMALY, {_sN: _an}), (SEQUENCE, {_sN: _seq})), ) +DETECTION_RULE_AGENT_VERSION: StaticSchema = (3, n0, _DRAV, 0) + DETECTION_RULE_CONFIGURATION_STATUS: StaticSchema = ( 14, n0, @@ -6598,12 +6626,39 @@ n0, _DRDS, 0, - (_CME,), - ((-1, {_sV: _CTME}),), + (_CME, _RM), + ((-1, {_sV: _CTME}), (-1, {_sV: _RMu})), ) DETECTION_RULE_DESCRIPTION: StaticSchema = (3, n0, _DRD, 0) +DETECTION_RULE_EC2_REQUIREMENTS: StaticSchema = ( + 18, + n0, + _DRER, + 0, + (_MAV,), + ((DETECTION_RULE_AGENT_VERSION, {_sN: _mAV}),), +) + +DETECTION_RULE_ECS_FARGATE_REQUIREMENTS: StaticSchema = ( + 18, + n0, + _DREFR, + 0, + (_MAV,), + ((DETECTION_RULE_AGENT_VERSION, {_sN: _mAV}),), +) + +DETECTION_RULE_EKS_REQUIREMENTS: StaticSchema = ( + 18, + n0, + _DRERe, + 0, + (_MAV,), + ((DETECTION_RULE_AGENT_VERSION, {_sN: _mAV}),), +) + DETECTION_RULE_FILTER_CONDITION: StaticSchema = ( 14, n0, @@ -6710,6 +6765,28 @@ ((DETECTION_RULE_ORG_CONFIGURATION_SUMMARY, 0),), ) +DETECTION_RULE_RUNTIME_PLATFORMS: StaticSchema = ( + 18, + n0, + _DRRP, + 0, + (_Ek, _Ec, _EF), + ( + (DETECTION_RULE_EKS_REQUIREMENTS, {_sN: _ek}), + (DETECTION_RULE_EC2_REQUIREMENTS, {_sN: _ec}), + (DETECTION_RULE_ECS_FARGATE_REQUIREMENTS, {_sN: _eF}), + ), +) + +DETECTION_RULE_RUNTIME_MONITORING_DETAILS: StaticSchema = ( + 18, + n0, + _DRRMD, + 0, + (_Pla,), + ((DETECTION_RULE_RUNTIME_PLATFORMS, {_sN: _pla}),), +) + DETECTION_RULE_SERVICE_NAME: StaticSchema = (3, n0, _DRSN, 0) DETECTION_RULE_SEVERITY: StaticSchema = ( @@ -7829,6 +7906,7 @@ _T, _UAp, _AASA, + _CDRN, ), ( (STRING, {_sN: _aIc, _sm: None}), @@ -7847,6 +7925,7 @@ (FINDING_TYPE, {_sN: _t, _sm: None}), (STRING, {_sN: _uAp, _sm: None}), (STRING, {_sN: _aASA}), + (STRING, {_sN: _cDRN}), ), ) @@ -8061,7 +8140,7 @@ n0, _RDule, 0, - (_RI, _Ar, _N, _De, _Sev, _DSa, _Tac, _Tec, _Se, _Def, _Lan, _Sch, _CA, _UAp), + (_RI, _Ar, _N, _De, _Sev, _DSa, _Tac, _Tec, _Se, _Def, _Lan, _Sch, _RMD, _CA, _UAp), ( (RULE_ID, {_sN: _rI, _sm: None}), (DETECTION_RULE_ARN, {_sN: _ar, _sm: None}), @@ -8075,6 +8154,7 @@ (RULE_DEFINITION, {_sN: _def, _sm: None}), (RULE_LANGUAGE, {_sN: _la}), (RULE_SCHEMA, {_sN: _sch}), + (DETECTION_RULE_RUNTIME_MONITORING_DETAILS, {_sN: _rMD}), (TIMESTAMP, {_sN: _cA, _sm: None}), (TIMESTAMP, {_sN: _uAp}), ), @@ -9523,6 +9603,10 @@ _FRM, _RDPP, _RDPS, + _RDPL, + _RDADPP, + _RDADPS, + _RDADPL, _AP, ), ( @@ -9539,6 +9623,10 @@ (-1, {_sV: _FRM}), (-1, {_sV: _RDPP}), (-1, {_sV: _RDPS}), + (-1, {_sV: _RDPL}), + (-1, {_sV: _RDADPP}), + (-1, {_sV: _RDADPS}), + (-1, {_sV: _RDADPL}), (-1, {_sV: _AP}), ), ) diff --git a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.py b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.py index b62d78c1..dd7d0961 100644 --- a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.py +++ b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.py @@ -171,10 +171,15 @@ class ServiceError(ModeledError): "Detection": "DETECTION", "DetectionRuleConfigurationStatus": "DETECTION_RULE_CONFIGURATION_STATUS", "DetectionRuleDataSource": "DETECTION_RULE_DATA_SOURCE", + "DetectionRuleEc2Requirements": "DETECTION_RULE_EC2_REQUIREMENTS", + "DetectionRuleEcsFargateRequirements": "DETECTION_RULE_ECS_FARGATE_REQUIREMENTS", + "DetectionRuleEksRequirements": "DETECTION_RULE_EKS_REQUIREMENTS", "DetectionRuleFilter": "DETECTION_RULE_FILTER", "DetectionRuleFilterCondition": "DETECTION_RULE_FILTER_CONDITION", "DetectionRuleOrgConfiguration": "DETECTION_RULE_ORG_CONFIGURATION", "DetectionRuleOrgConfigurationSummary": "DETECTION_RULE_ORG_CONFIGURATION_SUMMARY", + "DetectionRuleRuntimeMonitoringDetails": "DETECTION_RULE_RUNTIME_MONITORING_DETAILS", + "DetectionRuleRuntimePlatforms": "DETECTION_RULE_RUNTIME_PLATFORMS", "DetectionRuleSeverity": "DETECTION_RULE_SEVERITY", "DetectionSource": "DETECTION_SOURCE", "DetectorAdditionalConfiguration": "DETECTOR_ADDITIONAL_CONFIGURATION", @@ -745,10 +750,15 @@ class ServiceError(ModeledError): "Detection", "DetectionRuleConfigurationStatus", "DetectionRuleDataSource", + "DetectionRuleEc2Requirements", + "DetectionRuleEcsFargateRequirements", + "DetectionRuleEksRequirements", "DetectionRuleFilter", "DetectionRuleFilterCondition", "DetectionRuleOrgConfiguration", "DetectionRuleOrgConfigurationSummary", + "DetectionRuleRuntimeMonitoringDetails", + "DetectionRuleRuntimePlatforms", "DetectionRuleSeverity", "DetectionSource", "DetectorAdditionalConfiguration", diff --git a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.pyi b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.pyi index 0d71485d..45d73650 100644 --- a/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.pyi +++ b/clients/aws-sdk-guardduty/src/aws_sdk_guardduty/models.pyi @@ -3924,6 +3924,30 @@ class DestinationProperties(_SerdeShape): """ kms_key_arn: str | None = ... """The ARN of the KMS key to use for encryption.""" + expected_bucket_owner: str | None = ... + """ + The 12-digit Amazon Web Services account ID of the account that owns the + Amazon S3 bucket specified in the `DestinationArn` parameter. + + When you provide this value, GuardDuty verifies that the specified + account owns the bucket before it exports findings. If the account ID + doesn't match the actual owner of the bucket, GuardDuty doesn't export + findings to that bucket. This helps prevent GuardDuty from exporting + your findings to a bucket that a different Amazon Web Services account + owns (for example, if the original bucket was deleted and its name was + later claimed by another account). If you don't specify this value, + GuardDuty doesn't perform this verification. GuardDuty strongly + recommends that you provide the expected bucket owner when possible. + + When you update a publishing destination, omitting this field leaves the + currently stored value unchanged. This field appears in the response + only if it was provided when the publishing destination was created or + updated. + + For more information, see [Verifying the Amazon S3 bucket + owner](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html#guardduty-exportfindings-expected-bucket-owner) + in the *Amazon GuardDuty User Guide*. + """ class DestinationType(UnknownEnumMixin, StrEnum): S3 = "S3" @@ -3947,6 +3971,46 @@ class DetectionRuleConfigurationStatus(UnknownEnumMixin, StrEnum): class DetectionRuleDataSource(UnknownEnumMixin, StrEnum): CLOUDTRAIL_MANAGEMENT_EVENT = "CloudTrailManagementEvent" + RUNTIME_MONITORING = "RuntimeMonitoring" + +@dataclass(kw_only=True) +class DetectionRuleEc2Requirements(_SerdeShape): + """ + The requirements for running a Runtime Monitoring custom detection rule + on Amazon EC2. + """ + + min_agent_version: str | None = ... + """ + The minimum GuardDuty agent version required to run the rule on Amazon + EC2. + """ + +@dataclass(kw_only=True) +class DetectionRuleEcsFargateRequirements(_SerdeShape): + """ + The requirements for running a Runtime Monitoring custom detection rule + on Amazon ECS with the Fargate launch type. + """ + + min_agent_version: str | None = ... + """ + The minimum GuardDuty agent version required to run the rule on Amazon + ECS with the Fargate launch type. + """ + +@dataclass(kw_only=True) +class DetectionRuleEksRequirements(_SerdeShape): + """ + The requirements for running a Runtime Monitoring custom detection rule + on Amazon EKS. + """ + + min_agent_version: str | None = ... + """ + The minimum GuardDuty agent version required to run the rule on Amazon + EKS. + """ @dataclass(kw_only=True) class DetectionRuleFilter(_SerdeShape): @@ -4029,6 +4093,41 @@ class DetectionRuleOrgConfigurationSummary(_SerdeShape): expires_at: datetime | None = ... """The timestamp when the organization configuration expires.""" +@dataclass(kw_only=True) +class DetectionRuleRuntimeMonitoringDetails(_SerdeShape): + """ + Contains Runtime Monitoring-specific details for a custom detection + rule. + """ + + platforms: DetectionRuleRuntimePlatforms | None = ... + """ + The platforms on which the rule can run. The presence of a platform + member indicates that the rule is supported on that platform; the + absence of a member indicates that the rule cannot run on that platform + at any agent version. + """ + +@dataclass(kw_only=True) +class DetectionRuleRuntimePlatforms(_SerdeShape): + """ + The platforms on which a Runtime Monitoring custom detection rule can + run. A member's presence is the support statement: when present, the + rule runs on that platform and `minAgentVersion` is the minimum + GuardDuty agent version required there. When absent, the rule cannot run + on that platform at any agent version. + """ + + eks: DetectionRuleEksRequirements | None = ... + """The requirements for running the rule on Amazon EKS.""" + ec2: DetectionRuleEc2Requirements | None = ... + """The requirements for running the rule on Amazon EC2.""" + ecs_fargate: DetectionRuleEcsFargateRequirements | None = ... + """ + The requirements for running the rule on Amazon ECS with the Fargate + launch type. + """ + class DetectionRuleSeverity(UnknownEnumMixin, StrEnum): CRITICAL = "CRITICAL" HIGH = "HIGH" @@ -4658,6 +4757,12 @@ class FeatureAdditionalConfiguration(UnknownEnumMixin, StrEnum): EKS_ADDON_MANAGEMENT = "EKS_ADDON_MANAGEMENT" ECS_FARGATE_AGENT_MANAGEMENT = "ECS_FARGATE_AGENT_MANAGEMENT" EC2_AGENT_MANAGEMENT = "EC2_AGENT_MANAGEMENT" + RDS_DATA_RISK = "RDS_DATA_RISK" + """ + RDS Data Activity Monitoring, which monitors data activity on supported + Amazon RDS database engines to detect potentially unauthorized access to + your data. + """ class FeatureStatus(UnknownEnumMixin, StrEnum): ENABLED = "ENABLED" @@ -4782,6 +4887,8 @@ class Finding(_SerdeShape): """The time and date when the finding was last updated.""" associated_attack_sequence_arn: str | None = ... """Amazon Resource Name (ARN) associated with the attack sequence finding.""" + custom_detection_rule_name: str | None = ... + """The name of the custom detection rule that generated this finding.""" @dataclass(kw_only=True) class FindingCriteria(_SerdeShape): @@ -8455,6 +8562,12 @@ class OrgFeatureAdditionalConfiguration(UnknownEnumMixin, StrEnum): EKS_ADDON_MANAGEMENT = "EKS_ADDON_MANAGEMENT" ECS_FARGATE_AGENT_MANAGEMENT = "ECS_FARGATE_AGENT_MANAGEMENT" EC2_AGENT_MANAGEMENT = "EC2_AGENT_MANAGEMENT" + RDS_DATA_RISK = "RDS_DATA_RISK" + """ + RDS Data Activity Monitoring, which monitors data activity on supported + Amazon RDS database engines to detect potentially unauthorized access to + your data. + """ class OrgFeatureStatus(UnknownEnumMixin, StrEnum): NEW = "NEW" @@ -9137,6 +9250,12 @@ class RuleDetail(_SerdeShape): """The language used for the detection logic expression.""" schema: str | None = ... """The schema version used by the rule definition.""" + runtime_monitoring_details: DetectionRuleRuntimeMonitoringDetails | None = ... + """ + Runtime Monitoring-specific details for the rule, including the + platforms on which the rule can run and the minimum GuardDuty agent + version required on each. + """ created_at: datetime | None = ... """The timestamp when the rule was created.""" updated_at: datetime | None = ... @@ -12413,6 +12532,32 @@ class UsageFeature(UnknownEnumMixin, StrEnum): FARGATE_RUNTIME_MONITORING = "FARGATE_RUNTIME_MONITORING" RDS_DBI_PROTECTION_PROVISIONED = "RDS_DBI_PROTECTION_PROVISIONED" RDS_DBI_PROTECTION_SERVERLESS = "RDS_DBI_PROTECTION_SERVERLESS" + RDS_DBI_PROTECTION_LIMITLESS = "RDS_DBI_PROTECTION_LIMITLESS" + """ + Usage attributed to RDS Protection database infrastructure monitoring + for Amazon Aurora DSQL Limitless databases. + """ + RDS_DATA_ACTIVITY_DBI_PROTECTION_PROVISIONED = ( + "RDS_DATA_ACTIVITY_DBI_PROTECTION_PROVISIONED" + ) + """ + Usage attributed to RDS Data Activity Monitoring for provisioned Amazon + RDS databases. + """ + RDS_DATA_ACTIVITY_DBI_PROTECTION_SERVERLESS = ( + "RDS_DATA_ACTIVITY_DBI_PROTECTION_SERVERLESS" + ) + """ + Usage attributed to RDS Data Activity Monitoring for Amazon Aurora + Serverless databases. + """ + RDS_DATA_ACTIVITY_DBI_PROTECTION_LIMITLESS = ( + "RDS_DATA_ACTIVITY_DBI_PROTECTION_LIMITLESS" + ) + """ + Usage attributed to RDS Data Activity Monitoring for Amazon Aurora DSQL + Limitless databases. + """ AI_PROTECTION = "AI_PROTECTION" @dataclass(kw_only=True) diff --git a/clients/aws-sdk-guardduty/tests/_typecheck.py b/clients/aws-sdk-guardduty/tests/_typecheck.py index da80fb63..4db35f60 100644 --- a/clients/aws-sdk-guardduty/tests/_typecheck.py +++ b/clients/aws-sdk-guardduty/tests/_typecheck.py @@ -132,9 +132,14 @@ Destination, DestinationProperties, Detection, + DetectionRuleEc2Requirements, + DetectionRuleEcsFargateRequirements, + DetectionRuleEksRequirements, DetectionRuleFilter, DetectionRuleOrgConfiguration, DetectionRuleOrgConfigurationSummary, + DetectionRuleRuntimeMonitoringDetails, + DetectionRuleRuntimePlatforms, DetectorAdditionalConfiguration, DetectorAdditionalConfigurationResult, DetectorFeatureConfiguration, @@ -616,9 +621,14 @@ Destination() DestinationProperties() Detection() +DetectionRuleEc2Requirements() +DetectionRuleEcsFargateRequirements() +DetectionRuleEksRequirements() DetectionRuleFilter() DetectionRuleOrgConfiguration() DetectionRuleOrgConfigurationSummary() +DetectionRuleRuntimeMonitoringDetails() +DetectionRuleRuntimePlatforms() DetectorAdditionalConfiguration() DetectorAdditionalConfigurationResult() DetectorFeatureConfiguration() diff --git a/clients/aws-sdk-iam/README.md b/clients/aws-sdk-iam/README.md new file mode 100644 index 00000000..4fe6bdea --- /dev/null +++ b/clients/aws-sdk-iam/README.md @@ -0,0 +1,71 @@ + + +## AWS Identity and Access Management Client + +aws_sdk_iam client + +### Documentation + +Identity and Access Management (IAM) is a web service for securely +controlling access to Amazon Web Services services. With IAM, you can +centrally manage users, security credentials such as access keys, and +permissions that control which Amazon Web Services resources users and +applications can access. For more information about IAM, see [Identity +and Access Management (IAM)](http://aws.amazon.com/iam/) and the +[Identity and Access Management User +Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/). + +**Programmatic access to IAM** + +We recommend that you use the Amazon Web Services SDKs to make +programmatic API calls to IAM. The Amazon Web Services SDKs consist of +libraries and sample code for various programming languages and +platforms (for example, Java, Ruby, .NET, iOS, and Android). The SDKs +provide a convenient way to create programmatic access to IAM and Amazon +Web Services. For example, the SDKs take care of tasks such as +cryptographically signing requests, managing errors, and retrying +requests automatically. For more information, see [Tools to build on +Amazon Web Services](http://aws.amazon.com/tools/). + +Alternatively, you can also use the IAM Query API to make direct calls +to the IAM service. For more information about calling the IAM Query +API, see [Making query +requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) +in the *Identity and Access Management User Guide*. IAM supports GET and +POST requests for all actions. That is, the API does not require you to +use GET for some actions and POST for others. However, GET requests are +subject to the limitation size of a URL. Therefore, for operations that +require larger sizes, use a POST request. + +**Signing requests** + +Requests must be signed using an access key ID and a secret access key. +We strongly recommend that you do not use your Amazon Web Services +account access key ID and secret access key for everyday work with IAM. +You can use the access key ID and secret access key for an IAM user or +you can use the Security Token Service to generate temporary security +credentials and use those to sign requests. + +To sign requests, we recommend that you use [Signature Version +4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). +If you have an existing application that uses Signature Version 2, you +do not have to update it to use Signature Version 4. However, some +operations now require Signature Version 4. The documentation for +operations that require version 4 indicate this requirement. + +**Additional resources** + +- [Amazon Web Services security + credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). + This topic provides general information about the types of credentials + used for accessing Amazon Web Services. + +- [IAM best + practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html). + This topic presents a list of suggestions for using the IAM service to + help secure your Amazon Web Services resources. + +- [Signing Amazon Web Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html). + This set of topics walk you through the process of signing a request + using an access key ID and secret access key. diff --git a/clients/aws-sdk-iam/pyproject.toml b/clients/aws-sdk-iam/pyproject.toml new file mode 100644 index 00000000..b282de9d --- /dev/null +++ b/clients/aws-sdk-iam/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_iam" +version = "0.12.0" +description = "aws_sdk_iam client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_iam"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/__init__.py b/clients/aws-sdk-iam/src/aws_sdk_iam/__init__.py new file mode 100644 index 00000000..a44d9836 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import IAMClient + from .config import IAMConfig + from .aio.client import AsyncIAMClient + from .aio.config import AsyncIAMConfig + +__all__ = ["IAMClient", "IAMConfig", "AsyncIAMClient", "AsyncIAMConfig"] + +_EXPORTS = { + "IAMClient": ".client", + "IAMConfig": ".config", + "AsyncIAMClient": ".aio.client", + "AsyncIAMConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/_private/__init__.py b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/_private/endpoints.py b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/endpoints.py new file mode 100644 index 00000000..e8783315 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/endpoints.py @@ -0,0 +1,128 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.iam#AWSIdentityManagementV20100508.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ("Region", "string", False, None, "AWS::Region", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws"), None), # 3: stringEquals(PartitionResult#name, "aws") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-cn"), None), # 4: stringEquals(PartitionResult#name, "aws-cn") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 5: stringEquals(PartitionResult#name, "aws-us-gov") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso"), None), # 6: stringEquals(PartitionResult#name, "aws-iso") + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 7: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 8: booleanEquals(UseDualStack, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso-b"), None), # 9: stringEquals(PartitionResult#name, "aws-iso-b") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso-e"), None), # 10: stringEquals(PartitionResult#name, "aws-iso-e") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso-f"), None), # 11: stringEquals(PartitionResult#name, "aws-iso-f") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-eusc"), None), # 12: stringEquals(PartitionResult#name, "aws-eusc") + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 13: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 14: booleanEquals(PartitionResult#supportsFIPS, true) + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://iam.amazonaws.com", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 4 + (6, "https://iam-fips.amazonaws.com", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 5 + (6, "https://iam.global.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 6 + (6, "https://iam-fips.global.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-east-1"))), ()), # 7 + (6, "https://iam.global.api.amazonwebservices.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-north-1"))), ()), # 8 + (6, "https://iam-fips.api.amazonwebservices.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-north-1"))), ()), # 9 + (6, "https://iam.cn-north-1.amazonaws.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-north-1"))), ()), # 10 + (6, "https://iam-fips.amazonaws.com.cn", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "cn-north-1"))), ()), # 11 + (6, "https://iam.us-gov.api.aws", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-gov-west-1"))), ()), # 12 + (6, "https://iam.us-gov.amazonaws.com", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-gov-west-1"))), ()), # 13 + (6, "https://iam.us-iso-east-1.c2s.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-iso-east-1"))), ()), # 14 + (6, "https://iam-fips.us-iso-east-1.c2s.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-iso-east-1"))), ()), # 15 + (6, "https://iam.api.aws.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-iso-east-1"))), ()), # 16 + (6, "https://iam-fips.api.aws.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-iso-east-1"))), ()), # 17 + (6, "https://iam.us-isob-east-1.sc2s.sgov.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isob-east-1"))), ()), # 18 + (6, "https://iam-fips.us-isob-east-1.sc2s.sgov.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isob-east-1"))), ()), # 19 + (6, "https://iam.api.aws.scloud", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isob-east-1"))), ()), # 20 + (6, "https://iam-fips.api.aws.scloud", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isob-east-1"))), ()), # 21 + (6, "https://iam.eu-isoe-west-1.cloud.adc-e.uk", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eu-isoe-west-1"))), ()), # 22 + (6, "https://iam-fips.cloud.adc-e.uk", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eu-isoe-west-1"))), ()), # 23 + (6, "https://iam.api.cloud-aws.adc-e.uk", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eu-isoe-west-1"))), ()), # 24 + (6, "https://iam-fips.api.cloud-aws.adc-e.uk", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eu-isoe-west-1"))), ()), # 25 + (6, "https://iam.us-isof-south-1.csp.hci.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isof-south-1"))), ()), # 26 + (6, "https://iam-fips.csp.hci.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isof-south-1"))), ()), # 27 + (6, "https://iam.api.aws.hci.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isof-south-1"))), ()), # 28 + (6, "https://iam-fips.api.aws.hci.ic.gov", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "us-isof-south-1"))), ()), # 29 + (6, "https://iam.eusc-de-east-1.amazonaws.eu", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eusc-de-east-1"))), ()), # 30 + (6, "https://iam-fips.amazonaws.eu", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eusc-de-east-1"))), ()), # 31 + (6, "https://iam.global.api.amazonwebservices.eu", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eusc-de-east-1"))), ()), # 32 + (6, "https://iam-fips.api.amazonwebservices.eu", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "eusc-de-east-1"))), ()), # 33 + (6, "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 34 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 35 + (6, "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 36 + (5, "FIPS is enabled but this partition does not support FIPS"), # 37 + (6, "https://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 38 + (5, "DualStack is enabled but this partition does not support DualStack"), # 39 + (6, "https://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("name", "signingRegion"), "sigv4", "{PartitionResult#implicitGlobalRegion}"))), ()), # 40 + (5, "Invalid Configuration: Missing Region"), # 41 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 42, 3, + 1, 4, 100_000_041, + 2, 5, 100_000_041, + 3, 39, 6, + 4, 36, 7, + 5, 35, 8, + 6, 32, 9, + 7, 20, 10, + 8, 15, 11, + 9, 100_000_018, 12, + 10, 100_000_022, 13, + 11, 100_000_026, 14, + 12, 100_000_030, 100_000_040, + 9, 100_000_020, 16, + 10, 100_000_024, 17, + 11, 100_000_028, 18, + 12, 100_000_032, 19, + 13, 100_000_038, 100_000_039, + 8, 26, 21, + 9, 100_000_019, 22, + 10, 100_000_023, 23, + 11, 100_000_027, 24, + 12, 100_000_031, 25, + 14, 100_000_036, 100_000_037, + 9, 100_000_021, 27, + 10, 100_000_025, 28, + 11, 100_000_029, 29, + 12, 100_000_033, 30, + 13, 31, 100_000_035, + 14, 100_000_034, 100_000_035, + 7, 34, 33, + 8, 100_000_016, 100_000_014, + 8, 100_000_017, 100_000_015, + 8, 100_000_012, 100_000_013, + 7, 38, 37, + 8, 100_000_008, 100_000_010, + 8, 100_000_009, 100_000_011, + 7, 41, 40, + 8, 100_000_006, 100_000_004, + 8, 100_000_007, 100_000_005, + 7, 100_000_001, 43, + 8, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/_private/schemas.py b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/schemas.py new file mode 100644 index 00000000..3552a4ae --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/_private/schemas.py @@ -0,0 +1,9560 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.iam" +_dRIT = "delegationRequestIdType" +_ADRI = "AcceptDelegationRequestInput" +_sSI = "smithy.synthetic#originalShapeId" +_cADRR = "com.amazonaws.iam#AcceptDelegationRequestRequest" +_s = "smithy.api#input" +_DRI = "DelegationRequestId" +_sm = "smithy.api#required" +_ADRO = "AcceptDelegationRequestOutput" +_sU = "smithy.api#Unit" +_smi = "smithy.api#output" +_CMM = "ConcurrentModificationMessage" +_CME = "ConcurrentModificationException" +_smit = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_aQE = "aws.protocols#awsQueryError" +_m = "message" +_nSEM = "noSuchEntityMessage" +_NSEE = "NoSuchEntityException" +_sFEM = "serviceFailureExceptionMessage" +_SFE = "ServiceFailureException" +_se = "server" +_ADR = "AcceptDelegationRequest" +_AAUGT = "AccessAdvisorUsageGranularityType" +_SL = "SERVICE_LEVEL" +_sV = "smithy.api#enumValue" +_AL = "ACTION_LEVEL" +_oEPT = "organizationsEntityPathType" +_dT = "dateType" +_sT = "stringType" +_sNT = "serviceNameType" +_sNTe = "serviceNamespaceType" +_iT = "integerType" +_AD = "AccessDetail" +_SN = "ServiceName" +_SNe = "ServiceNamespace" +_R = "Region" +_EP = "EntityPath" +_LAT = "LastAuthenticatedTime" +_TAE = "TotalAuthenticatedEntities" +_ADc = "AccessDetails" +_me = "member" +_aKIT = "accessKeyIdType" +_aKST = "accessKeySecretType" +_smith = "smithy.api#sensitive" +_sTt = "statusType" +_A = "Active" +_I = "Inactive" +_E = "Expired" +_uNT = "userNameType" +_AK = "AccessKey" +_UN = "UserName" +_AKI = "AccessKeyId" +_S = "Status" +_SAK = "SecretAccessKey" +_CD = "CreateDate" +_AKLU = "AccessKeyLastUsed" +_LUD = "LastUsedDate" +_AKM = "AccessKeyMetadata" +_aKMLT = "accessKeyMetadataListType" +_aAT = "accountAliasType" +_aALT = "accountAliasListType" +_aIT = "accountIdType" +_EM = "ExceptionMessage" +_ANMODAE = "AccountNotManagementOrDelegatedAdministratorException" +_M = "Message" +_aPKT = "accountPropertyKeyType" +_aPVT = "accountPropertyValueType" +_aPMT = "accountPropertiesMapType" +_k = "key" +_v = "value" +_rVLT = "replacementValueListType" +_RVE = "ReplacementValueEntry" +_V = "Values" +_mSRVE = "mapStringReplacementValueEntry" +_aT = "arnType" +_ARI = "AcquireRoleInput" +_cARR = "com.amazonaws.iam#AcquireRoleRequest" +_TA = "TemplateArn" +_TMV = "TemplateMinorVersion" +_RV = "ReplacementValues" +_pDT = "policyDocumentType" +_rDT = "roleDescriptionType" +_rMSDT = "roleMaxSessionDurationType" +_pT = "pathType" +_PBAT = "PermissionsBoundaryAttachmentType" +_P = "Policy" +_PBP = "PermissionsBoundaryPolicy" +_APB = "AttachedPermissionsBoundary" +_PBT = "PermissionsBoundaryType" +_PBA = "PermissionsBoundaryArn" +_iTd = "idType" +_RLU = "RoleLastUsed" +_rNT = "roleNameType" +_SRT = "SourceRoleTemplate" +_tKT = "tagKeyType" +_tVT = "tagValueType" +_T = "Tag" +_K = "Key" +_Va = "Value" +_tLT = "tagListType" +_Ro = "Role" +_Pa = "Path" +_RN = "RoleName" +_RI = "RoleId" +_Ar = "Arn" +_ARPD = "AssumeRolePolicyDocument" +_D = "Description" +_MSD = "MaxSessionDuration" +_PB = "PermissionsBoundary" +_Ta = "Tags" +_ARO = "AcquireRoleOutput" +_cARRo = "com.amazonaws.iam#AcquireRoleResponse" +_eAEM = "entityAlreadyExistsMessage" +_EAEE = "EntityAlreadyExistsException" +_iIM = "invalidInputMessage" +_IIE = "InvalidInputException" +_lEM = "limitExceededMessage" +_LEE = "LimitExceededException" +_mPDM = "malformedPolicyDocumentMessage" +_MPDE = "MalformedPolicyDocumentException" +_nCM = "nameConflictMessage" +_NCE = "NameConflictException" +_rMM = "roleModifiedMessage" +_RME = "RoleModifiedException" +_rTDM = "roleTemplateDisabledMessage" +_RTDE = "RoleTemplateDisabledException" +_AR = "AcquireRole" +_ANT = "ActionNameType" +_ANLT = "ActionNameListType" +_cIDT = "clientIDType" +_ACIDTOIDCPI = "AddClientIDToOpenIDConnectProviderInput" +_cACIDTOIDCPR = "com.amazonaws.iam#AddClientIDToOpenIDConnectProviderRequest" +_OIDCPA = "OpenIDConnectProviderArn" +_CID = "ClientID" +_ACIDTOIDCPO = "AddClientIDToOpenIDConnectProviderOutput" +_ACIDTOIDCP = "AddClientIDToOpenIDConnectProvider" +_iPNT = "instanceProfileNameType" +_ARTIPI = "AddRoleToInstanceProfileInput" +_cARTIPR = "com.amazonaws.iam#AddRoleToInstanceProfileRequest" +_IPN = "InstanceProfileName" +_ARTIPO = "AddRoleToInstanceProfileOutput" +_uEM = "unmodifiableEntityMessage" +_UEE = "UnmodifiableEntityException" +_ARTIP = "AddRoleToInstanceProfile" +_gNT = "groupNameType" +_eUNT = "existingUserNameType" +_AUTGI = "AddUserToGroupInput" +_cAUTGR = "com.amazonaws.iam#AddUserToGroupRequest" +_GN = "GroupName" +_AUTGO = "AddUserToGroupOutput" +_AUTG = "AddUserToGroup" +_aU = "allUsers" +_ALT = "ArnListType" +_aEMT = "assertionEncryptionModeType" +_Re = "Required" +_Al = "Allowed" +_aST = "assignmentStatusType" +_As = "Assigned" +_U = "Unassigned" +_An = "Any" +_ADRIs = "AssociateDelegationRequestInput" +_cADRRo = "com.amazonaws.iam#AssociateDelegationRequestRequest" +_ADROs = "AssociateDelegationRequestOutput" +_ADRs = "AssociateDelegationRequest" +_pNT = "policyNameType" +_AP = "AttachedPolicy" +_PN = "PolicyName" +_PA = "PolicyArn" +_aPLT = "attachedPoliciesListType" +_AGPI = "AttachGroupPolicyInput" +_cAGPR = "com.amazonaws.iam#AttachGroupPolicyRequest" +_AGPO = "AttachGroupPolicyOutput" +_pNAM = "policyNotAttachableMessage" +_PNAE = "PolicyNotAttachableException" +_AGP = "AttachGroupPolicy" +_aCT = "attachmentCountType" +_AN = "AttachmentName" +_AT = "AttachmentType" +_USER = "USER" +_u = "user" +_GROUP = "GROUP" +_g = "group" +_ROLE = "ROLE" +_r = "role" +_ARPI = "AttachRolePolicyInput" +_cARPR = "com.amazonaws.iam#AttachRolePolicyRequest" +_ARPO = "AttachRolePolicyOutput" +_ARP = "AttachRolePolicy" +_AUPI = "AttachUserPolicyInput" +_cAUPR = "com.amazonaws.iam#AttachUserPolicyRequest" +_AUPO = "AttachUserPolicyOutput" +_AUP = "AttachUserPolicy" +_aCTu = "authenticationCodeType" +_pTa = "passwordType" +_CPI = "ChangePasswordInput" +_cCPR = "com.amazonaws.iam#ChangePasswordRequest" +_OP = "OldPassword" +_NP = "NewPassword" +_CPO = "ChangePasswordOutput" +_eTUM = "entityTemporarilyUnmodifiableMessage" +_ETUE = "EntityTemporarilyUnmodifiableException" +_iUTM = "invalidUserTypeMessage" +_IUTE = "InvalidUserTypeException" +_pPVM = "passwordPolicyViolationMessage" +_PPVE = "PasswordPolicyViolationException" +_CP = "ChangePassword" +_CAKI = "CreateAccessKeyInput" +_cCAKR = "com.amazonaws.iam#CreateAccessKeyRequest" +_CAKO = "CreateAccessKeyOutput" +_cCAKRo = "com.amazonaws.iam#CreateAccessKeyResponse" +_CAK = "CreateAccessKey" +_CAAI = "CreateAccountAliasInput" +_cCAAR = "com.amazonaws.iam#CreateAccountAliasRequest" +_AA = "AccountAlias" +_CAAO = "CreateAccountAliasOutput" +_CAA = "CreateAccountAlias" +_dRDT = "delegationRequestDescriptionType" +_nCT = "notificationChannelType" +_bT = "booleanType" +_smithy = "smithy.api#default" +_pPNT = "policyParameterNameType" +_PPTE = "PolicyParameterTypeEnum" +_STRING = "STRING" +_st = "string" +_SL_ = "STRING_LIST" +_sL = "stringList" +_pPVT = "policyParameterValueType" +_pPVLT = "policyParameterValuesListType" +_PP = "PolicyParameter" +_N = "Name" +_Ty = "Type" +_pPLT = "policyParameterListType" +_DP = "DelegationPermission" +_PTA = "PolicyTemplateArn" +_Par = "Parameters" +_rUT = "redirectUrlType" +_rMT = "requestMessageType" +_rWIT = "requestorWorkflowIdType" +_sDT = "sessionDurationType" +_CDRI = "CreateDelegationRequestInput" +_cCDRR = "com.amazonaws.iam#CreateDelegationRequestRequest" +_OAI = "OwnerAccountId" +_Pe = "Permissions" +_RM = "RequestMessage" +_RWI = "RequestorWorkflowId" +_RU = "RedirectUrl" +_NC = "NotificationChannel" +_SD = "SessionDuration" +_OSBO = "OnlySendByOwner" +_cDLT = "consoleDeepLinkType" +_CDRO = "CreateDelegationRequestOutput" +_cCDRRo = "com.amazonaws.iam#CreateDelegationRequestResponse" +_CDL = "ConsoleDeepLink" +_CDR = "CreateDelegationRequest" +_CGI = "CreateGroupInput" +_cCGR = "com.amazonaws.iam#CreateGroupRequest" +_G = "Group" +_GI = "GroupId" +_CGO = "CreateGroupOutput" +_cCGRo = "com.amazonaws.iam#CreateGroupResponse" +_CG = "CreateGroup" +_CIPI = "CreateInstanceProfileInput" +_cCIPR = "com.amazonaws.iam#CreateInstanceProfileRequest" +_rLT = "roleListType" +_IP = "InstanceProfile" +_IPI = "InstanceProfileId" +_Rol = "Roles" +_CIPO = "CreateInstanceProfileOutput" +_cCIPRo = "com.amazonaws.iam#CreateInstanceProfileResponse" +_CIP = "CreateInstanceProfile" +_CLPI = "CreateLoginProfileInput" +_cCLPR = "com.amazonaws.iam#CreateLoginProfileRequest" +_Pas = "Password" +_PRR = "PasswordResetRequired" +_LP = "LoginProfile" +_CLPO = "CreateLoginProfileOutput" +_cCLPRo = "com.amazonaws.iam#CreateLoginProfileResponse" +_CLP = "CreateLoginProfile" +_cIDLT = "clientIDListType" +_tT = "thumbprintType" +_tLTh = "thumbprintListType" +_OIDCPUT = "OpenIDConnectProviderUrlType" +_COIDCPI = "CreateOpenIDConnectProviderInput" +_cCOIDCPR = "com.amazonaws.iam#CreateOpenIDConnectProviderRequest" +_Ur = "Url" +_CIDL = "ClientIDList" +_TL = "ThumbprintList" +_COIDCPO = "CreateOpenIDConnectProviderOutput" +_cCOIDCPRo = "com.amazonaws.iam#CreateOpenIDConnectProviderResponse" +_oIICEEM = "openIdIdpCommunicationErrorExceptionMessage" +_OIICEE = "OpenIdIdpCommunicationErrorException" +_COIDCP = "CreateOpenIDConnectProvider" +_pDTo = "policyDescriptionType" +_pPT = "policyPathType" +_CPIr = "CreatePolicyInput" +_cCPRo = "com.amazonaws.iam#CreatePolicyRequest" +_PD = "PolicyDocument" +_pVIT = "policyVersionIdType" +_PI = "PolicyId" +_DVI = "DefaultVersionId" +_AC = "AttachmentCount" +_PBUC = "PermissionsBoundaryUsageCount" +_IA = "IsAttachable" +_UD = "UpdateDate" +_CPOr = "CreatePolicyOutput" +_cCPRom = "com.amazonaws.iam#CreatePolicyResponse" +_CPr = "CreatePolicy" +_CPVI = "CreatePolicyVersionInput" +_cCPVR = "com.amazonaws.iam#CreatePolicyVersionRequest" +_SAD = "SetAsDefault" +_PV = "PolicyVersion" +_Do = "Document" +_VI = "VersionId" +_IDV = "IsDefaultVersion" +_CPVO = "CreatePolicyVersionOutput" +_cCPVRo = "com.amazonaws.iam#CreatePolicyVersionResponse" +_CPV = "CreatePolicyVersion" +_CRI = "CreateRoleInput" +_cCRR = "com.amazonaws.iam#CreateRoleRequest" +_CRO = "CreateRoleOutput" +_cCRRo = "com.amazonaws.iam#CreateRoleResponse" +_CR = "CreateRole" +_pKT = "privateKeyType" +_SAMLPNT = "SAMLProviderNameType" +_SAMLMDT = "SAMLMetadataDocumentType" +_CSAMLPI = "CreateSAMLProviderInput" +_cCSAMLPR = "com.amazonaws.iam#CreateSAMLProviderRequest" +_SAMLMD = "SAMLMetadataDocument" +_AEM = "AssertionEncryptionMode" +_APK = "AddPrivateKey" +_CSAMLPO = "CreateSAMLProviderOutput" +_cCSAMLPRo = "com.amazonaws.iam#CreateSAMLProviderResponse" +_SAMLPA = "SAMLProviderArn" +_CSAMLP = "CreateSAMLProvider" +_cST = "customSuffixType" +_CSLRI = "CreateServiceLinkedRoleInput" +_cCSLRR = "com.amazonaws.iam#CreateServiceLinkedRoleRequest" +_AWSSN = "AWSServiceName" +_CS = "CustomSuffix" +_CSLRO = "CreateServiceLinkedRoleOutput" +_cCSLRRo = "com.amazonaws.iam#CreateServiceLinkedRoleResponse" +_CSLR = "CreateServiceLinkedRole" +_cAD = "credentialAgeDays" +_sN = "serviceName" +_CSSCI = "CreateServiceSpecificCredentialInput" +_cCSSCR = "com.amazonaws.iam#CreateServiceSpecificCredentialRequest" +_CAD = "CredentialAgeDays" +_sCA = "serviceCredentialAlias" +_sCS = "serviceCredentialSecret" +_sP = "servicePassword" +_sSCI = "serviceSpecificCredentialId" +_sUN = "serviceUserName" +_SSC = "ServiceSpecificCredential" +_ED = "ExpirationDate" +_SUN = "ServiceUserName" +_v_ = "" +_SP = "ServicePassword" +_SCA = "ServiceCredentialAlias" +_SCS = "ServiceCredentialSecret" +_SSCI = "ServiceSpecificCredentialId" +_CSSCO = "CreateServiceSpecificCredentialOutput" +_cCSSCRo = "com.amazonaws.iam#CreateServiceSpecificCredentialResponse" +_sNSM = "serviceNotSupportedMessage" +_SNSE = "ServiceNotSupportedException" +_CSSC = "CreateServiceSpecificCredential" +_CUI = "CreateUserInput" +_cCUR = "com.amazonaws.iam#CreateUserRequest" +_Us = "User" +_UI = "UserId" +_PLU = "PasswordLastUsed" +_CUO = "CreateUserOutput" +_cCURo = "com.amazonaws.iam#CreateUserResponse" +_CU = "CreateUser" +_vMFADN = "virtualMFADeviceName" +_CVMFADI = "CreateVirtualMFADeviceInput" +_cCVMFADR = "com.amazonaws.iam#CreateVirtualMFADeviceRequest" +_VMFADN = "VirtualMFADeviceName" +_BD = "BootstrapDatum" +_sNTer = "serialNumberType" +_VMFAD = "VirtualMFADevice" +_SNer = "SerialNumber" +_BSS = "Base32StringSeed" +_QRCPNG = "QRCodePNG" +_EDn = "EnableDate" +_CVMFADO = "CreateVirtualMFADeviceOutput" +_cCVMFADRo = "com.amazonaws.iam#CreateVirtualMFADeviceResponse" +_CVMFAD = "CreateVirtualMFADevice" +_DMFADI = "DeactivateMFADeviceInput" +_cDMFADR = "com.amazonaws.iam#DeactivateMFADeviceRequest" +_DMFADO = "DeactivateMFADeviceOutput" +_DMFAD = "DeactivateMFADevice" +_DAKI = "DeleteAccessKeyInput" +_cDAKR = "com.amazonaws.iam#DeleteAccessKeyRequest" +_DAKO = "DeleteAccessKeyOutput" +_DAK = "DeleteAccessKey" +_DAAI = "DeleteAccountAliasInput" +_cDAAR = "com.amazonaws.iam#DeleteAccountAliasRequest" +_DAAO = "DeleteAccountAliasOutput" +_DAA = "DeleteAccountAlias" +_DAPPI = "DeleteAccountPasswordPolicyInput" +_DAPPO = "DeleteAccountPasswordPolicyOutput" +_DAPP = "DeleteAccountPasswordPolicy" +_dCM = "deleteConflictMessage" +_DCE = "DeleteConflictException" +_DGI = "DeleteGroupInput" +_cDGR = "com.amazonaws.iam#DeleteGroupRequest" +_DGO = "DeleteGroupOutput" +_DG = "DeleteGroup" +_DGPI = "DeleteGroupPolicyInput" +_cDGPR = "com.amazonaws.iam#DeleteGroupPolicyRequest" +_DGPO = "DeleteGroupPolicyOutput" +_DGP = "DeleteGroupPolicy" +_DIPI = "DeleteInstanceProfileInput" +_cDIPR = "com.amazonaws.iam#DeleteInstanceProfileRequest" +_DIPO = "DeleteInstanceProfileOutput" +_DIP = "DeleteInstanceProfile" +_DLPI = "DeleteLoginProfileInput" +_cDLPR = "com.amazonaws.iam#DeleteLoginProfileRequest" +_DLPO = "DeleteLoginProfileOutput" +_DLP = "DeleteLoginProfile" +_DOIDCPI = "DeleteOpenIDConnectProviderInput" +_cDOIDCPR = "com.amazonaws.iam#DeleteOpenIDConnectProviderRequest" +_DOIDCPO = "DeleteOpenIDConnectProviderOutput" +_DOIDCP = "DeleteOpenIDConnectProvider" +_DPI = "DeletePolicyInput" +_cDPR = "com.amazonaws.iam#DeletePolicyRequest" +_DPO = "DeletePolicyOutput" +_DPe = "DeletePolicy" +_DPVI = "DeletePolicyVersionInput" +_cDPVR = "com.amazonaws.iam#DeletePolicyVersionRequest" +_DPVO = "DeletePolicyVersionOutput" +_DPV = "DeletePolicyVersion" +_DRIe = "DeleteRoleInput" +_cDRR = "com.amazonaws.iam#DeleteRoleRequest" +_DRO = "DeleteRoleOutput" +_DR = "DeleteRole" +_DRPBI = "DeleteRolePermissionsBoundaryInput" +_cDRPBR = "com.amazonaws.iam#DeleteRolePermissionsBoundaryRequest" +_DRPBO = "DeleteRolePermissionsBoundaryOutput" +_DRPB = "DeleteRolePermissionsBoundary" +_DRPI = "DeleteRolePolicyInput" +_cDRPR = "com.amazonaws.iam#DeleteRolePolicyRequest" +_DRPO = "DeleteRolePolicyOutput" +_DRP = "DeleteRolePolicy" +_DSAMLPI = "DeleteSAMLProviderInput" +_cDSAMLPR = "com.amazonaws.iam#DeleteSAMLProviderRequest" +_DSAMLPO = "DeleteSAMLProviderOutput" +_DSAMLP = "DeleteSAMLProvider" +_sCNT = "serverCertificateNameType" +_DSCI = "DeleteServerCertificateInput" +_cDSCR = "com.amazonaws.iam#DeleteServerCertificateRequest" +_SCN = "ServerCertificateName" +_DSCO = "DeleteServerCertificateOutput" +_DSC = "DeleteServerCertificate" +_DSLRI = "DeleteServiceLinkedRoleInput" +_cDSLRR = "com.amazonaws.iam#DeleteServiceLinkedRoleRequest" +_DTIT = "DeletionTaskIdType" +_DSLRO = "DeleteServiceLinkedRoleOutput" +_cDSLRRo = "com.amazonaws.iam#DeleteServiceLinkedRoleResponse" +_DTI = "DeletionTaskId" +_DSLR = "DeleteServiceLinkedRole" +_DSSCI = "DeleteServiceSpecificCredentialInput" +_cDSSCR = "com.amazonaws.iam#DeleteServiceSpecificCredentialRequest" +_DSSCO = "DeleteServiceSpecificCredentialOutput" +_DSSC = "DeleteServiceSpecificCredential" +_cIT = "certificateIdType" +_DSCIe = "DeleteSigningCertificateInput" +_cDSCRo = "com.amazonaws.iam#DeleteSigningCertificateRequest" +_CI = "CertificateId" +_DSCOe = "DeleteSigningCertificateOutput" +_DSCe = "DeleteSigningCertificate" +_pKIT = "publicKeyIdType" +_DSSHPKI = "DeleteSSHPublicKeyInput" +_cDSSHPKR = "com.amazonaws.iam#DeleteSSHPublicKeyRequest" +_SSHPKI = "SSHPublicKeyId" +_DSSHPKO = "DeleteSSHPublicKeyOutput" +_DSSHPK = "DeleteSSHPublicKey" +_DUI = "DeleteUserInput" +_cDUR = "com.amazonaws.iam#DeleteUserRequest" +_DUO = "DeleteUserOutput" +_DU = "DeleteUser" +_DUPBI = "DeleteUserPermissionsBoundaryInput" +_cDUPBR = "com.amazonaws.iam#DeleteUserPermissionsBoundaryRequest" +_DUPBO = "DeleteUserPermissionsBoundaryOutput" +_DUPB = "DeleteUserPermissionsBoundary" +_DUPI = "DeleteUserPolicyInput" +_cDUPR = "com.amazonaws.iam#DeleteUserPolicyRequest" +_DUPO = "DeleteUserPolicyOutput" +_DUP = "DeleteUserPolicy" +_DVMFADI = "DeleteVirtualMFADeviceInput" +_cDVMFADR = "com.amazonaws.iam#DeleteVirtualMFADeviceRequest" +_DVMFADO = "DeleteVirtualMFADeviceOutput" +_DVMFAD = "DeleteVirtualMFADevice" +_DGPIe = "DetachGroupPolicyInput" +_cDGPRo = "com.amazonaws.iam#DetachGroupPolicyRequest" +_DGPOe = "DetachGroupPolicyOutput" +_DGPe = "DetachGroupPolicy" +_DRPIe = "DetachRolePolicyInput" +_cDRPRo = "com.amazonaws.iam#DetachRolePolicyRequest" +_DRPOe = "DetachRolePolicyOutput" +_DRPe = "DetachRolePolicy" +_DUPIe = "DetachUserPolicyInput" +_cDUPRo = "com.amazonaws.iam#DetachUserPolicyRequest" +_DUPOe = "DetachUserPolicyOutput" +_DUPe = "DetachUserPolicy" +_DORCMI = "DisableOrganizationsRootCredentialsManagementInput" +_cDORCMR = "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementRequest" +_FT = "FeatureType" +_RCM = "ROOT_CREDENTIALS_MANAGEMENT" +_RCMo = "RootCredentialsManagement" +_RS = "ROOT_SESSIONS" +_RSo = "RootSessions" +_FLT = "FeaturesListType" +_OIT = "OrganizationIdType" +_DORCMO = "DisableOrganizationsRootCredentialsManagementOutput" +_cDORCMRo = "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementResponse" +_OI = "OrganizationId" +_EF = "EnabledFeatures" +_ONFE = "OrganizationNotFoundException" +_ONIAFME = "OrganizationNotInAllFeaturesModeException" +_SANEE = "ServiceAccessNotEnabledException" +_DORCM = "DisableOrganizationsRootCredentialsManagement" +_DORSI = "DisableOrganizationsRootSessionsInput" +_cDORSR = "com.amazonaws.iam#DisableOrganizationsRootSessionsRequest" +_DORSO = "DisableOrganizationsRootSessionsOutput" +_cDORSRo = "com.amazonaws.iam#DisableOrganizationsRootSessionsResponse" +_DORS = "DisableOrganizationsRootSessions" +_DOWIFI = "DisableOutboundWebIdentityFederationInput" +_DOWIFO = "DisableOutboundWebIdentityFederationOutput" +_FDM = "FeatureDisabledMessage" +_FDE = "FeatureDisabledException" +_DOWIF = "DisableOutboundWebIdentityFederation" +_EMFADI = "EnableMFADeviceInput" +_cEMFADR = "com.amazonaws.iam#EnableMFADeviceRequest" +_ACu = "AuthenticationCode1" +_ACut = "AuthenticationCode2" +_EMFADO = "EnableMFADeviceOutput" +_iACM = "invalidAuthenticationCodeMessage" +_IACE = "InvalidAuthenticationCodeException" +_EMFAD = "EnableMFADevice" +_CINMAE = "CallerIsNotManagementAccountException" +_EORCMI = "EnableOrganizationsRootCredentialsManagementInput" +_cEORCMR = "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementRequest" +_EORCMO = "EnableOrganizationsRootCredentialsManagementOutput" +_cEORCMRo = "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementResponse" +_EORCM = "EnableOrganizationsRootCredentialsManagement" +_EORSI = "EnableOrganizationsRootSessionsInput" +_cEORSR = "com.amazonaws.iam#EnableOrganizationsRootSessionsRequest" +_EORSO = "EnableOrganizationsRootSessionsOutput" +_cEORSRo = "com.amazonaws.iam#EnableOrganizationsRootSessionsResponse" +_EORS = "EnableOrganizationsRootSessions" +_EOWIFI = "EnableOutboundWebIdentityFederationInput" +_EOWIFO = "EnableOutboundWebIdentityFederationOutput" +_cEOWIFR = "com.amazonaws.iam#EnableOutboundWebIdentityFederationResponse" +_II = "IssuerIdentifier" +_FEM = "FeatureEnabledMessage" +_FEE = "FeatureEnabledException" +_EOWIF = "EnableOutboundWebIdentityFederation" +_GCRI = "GenerateCredentialReportInput" +_RSDT = "ReportStateDescriptionType" +_RST = "ReportStateType" +_STARTED = "STARTED" +_INPROGRESS = "INPROGRESS" +_COMPLETE = "COMPLETE" +_GCRO = "GenerateCredentialReportOutput" +_cGCRR = "com.amazonaws.iam#GenerateCredentialReportResponse" +_St = "State" +_GCR = "GenerateCredentialReport" +_oPIT = "organizationsPolicyIdType" +_GOARI = "GenerateOrganizationsAccessReportInput" +_cGOARR = "com.amazonaws.iam#GenerateOrganizationsAccessReportRequest" +_OPI = "OrganizationsPolicyId" +_jIDT = "jobIDType" +_GOARO = "GenerateOrganizationsAccessReportOutput" +_cGOARRo = "com.amazonaws.iam#GenerateOrganizationsAccessReportResponse" +_JI = "JobId" +_rGLEM = "reportGenerationLimitExceededMessage" +_RGLEE = "ReportGenerationLimitExceededException" +_GOAR = "GenerateOrganizationsAccessReport" +_GSLADI = "GenerateServiceLastAccessedDetailsInput" +_cGSLADR = "com.amazonaws.iam#GenerateServiceLastAccessedDetailsRequest" +_Gr = "Granularity" +_GSLADO = "GenerateServiceLastAccessedDetailsOutput" +_cGSLADRo = "com.amazonaws.iam#GenerateServiceLastAccessedDetailsResponse" +_GSLAD = "GenerateServiceLastAccessedDetails" +_GAKLUI = "GetAccessKeyLastUsedInput" +_cGAKLUR = "com.amazonaws.iam#GetAccessKeyLastUsedRequest" +_GAKLUO = "GetAccessKeyLastUsedOutput" +_cGAKLURo = "com.amazonaws.iam#GetAccessKeyLastUsedResponse" +_GAKLU = "GetAccessKeyLastUsed" +_ET = "EntityType" +_LMP = "LocalManagedPolicy" +_AWSMP = "AWSManagedPolicy" +_eLT = "entityListType" +_mT = "markerType" +_mIT = "maxItemsType" +_GAADI = "GetAccountAuthorizationDetailsInput" +_cGAADR = "com.amazonaws.iam#GetAccountAuthorizationDetailsRequest" +_F = "Filter" +_MI = "MaxItems" +_Ma = "Marker" +_PDo = "PolicyDetail" +_pDLT = "policyDetailListType" +_GD = "GroupDetail" +_GPL = "GroupPolicyList" +_AMP = "AttachedManagedPolicies" +_gDLT = "groupDetailListType" +_rMTe = "responseMarkerType" +_pDVLT = "policyDocumentVersionListType" +_MPD = "ManagedPolicyDetail" +_PVL = "PolicyVersionList" +_MPDLT = "ManagedPolicyDetailListType" +_iPLT = "instanceProfileListType" +_RD = "RoleDetail" +_IPL = "InstanceProfileList" +_RPL = "RolePolicyList" +_rDLT = "roleDetailListType" +_gNLT = "groupNameListType" +_UDs = "UserDetail" +_UPL = "UserPolicyList" +_GL = "GroupList" +_uDLT = "userDetailListType" +_GAADO = "GetAccountAuthorizationDetailsOutput" +_cGAADRo = "com.amazonaws.iam#GetAccountAuthorizationDetailsResponse" +_UDL = "UserDetailList" +_GDL = "GroupDetailList" +_RDL = "RoleDetailList" +_Po = "Policies" +_IT = "IsTruncated" +_GAAD = "GetAccountAuthorizationDetails" +_GAPPI = "GetAccountPasswordPolicyInput" +_bOT = "booleanObjectType" +_mPAT = "maxPasswordAgeType" +_mPLT = "minimumPasswordLengthType" +_pRPT = "passwordReusePreventionType" +_PPa = "PasswordPolicy" +_MPL = "MinimumPasswordLength" +_RSe = "RequireSymbols" +_RNe = "RequireNumbers" +_RUC = "RequireUppercaseCharacters" +_RLC = "RequireLowercaseCharacters" +_AUTCP = "AllowUsersToChangePassword" +_EPx = "ExpirePasswords" +_MPA = "MaxPasswordAge" +_PRP = "PasswordReusePrevention" +_HE = "HardExpiry" +_GAPPO = "GetAccountPasswordPolicyOutput" +_cGAPPR = "com.amazonaws.iam#GetAccountPasswordPolicyResponse" +_GAPP = "GetAccountPasswordPolicy" +_GAPI = "GetAccountPropertiesInput" +_cGAPR = "com.amazonaws.iam#GetAccountPropertiesRequest" +_GAPO = "GetAccountPropertiesOutput" +_cGAPRo = "com.amazonaws.iam#GetAccountPropertiesResponse" +_Pr = "Properties" +_GAP = "GetAccountProperties" +_GASI = "GetAccountSummaryInput" +_sKT = "summaryKeyType" +_Use = "Users" +_UQ = "UsersQuota" +_Gro = "Groups" +_GQ = "GroupsQuota" +_SC = "ServerCertificates" +_SCQ = "ServerCertificatesQuota" +_UPSQ = "UserPolicySizeQuota" +_GPSQ = "GroupPolicySizeQuota" +_GPUQ = "GroupsPerUserQuota" +_SCPUQ = "SigningCertificatesPerUserQuota" +_AKPUQ = "AccessKeysPerUserQuota" +_MFAD = "MFADevices" +_MFADIU = "MFADevicesInUse" +_AMFAE = "AccountMFAEnabled" +_AAKP = "AccountAccessKeysPresent" +_APP = "AccountPasswordPresent" +_ASCP = "AccountSigningCertificatesPresent" +_APPGQ = "AttachedPoliciesPerGroupQuota" +_APPRQ = "AttachedPoliciesPerRoleQuota" +_APPUQ = "AttachedPoliciesPerUserQuota" +_PQ = "PoliciesQuota" +_PSQ = "PolicySizeQuota" +_PVIU = "PolicyVersionsInUse" +_PVIUQ = "PolicyVersionsInUseQuota" +_VPPQ = "VersionsPerPolicyQuota" +_GETV = "GlobalEndpointTokenVersion" +_ARPSQ = "AssumeRolePolicySizeQuota" +_IPn = "InstanceProfiles" +_IPQ = "InstanceProfilesQuota" +_Pro = "Providers" +_RPSQ = "RolePolicySizeQuota" +_RQ = "RolesQuota" +_sVT = "summaryValueType" +_sMT = "summaryMapType" +_GASO = "GetAccountSummaryOutput" +_cGASR = "com.amazonaws.iam#GetAccountSummaryResponse" +_SM = "SummaryMap" +_GAS = "GetAccountSummary" +_SPLT = "SimulationPolicyListType" +_GCKFCPI = "GetContextKeysForCustomPolicyInput" +_cGCKFCPR = "com.amazonaws.iam#GetContextKeysForCustomPolicyRequest" +_PIL = "PolicyInputList" +_CKNT = "ContextKeyNameType" +_CKNRLT = "ContextKeyNamesResultListType" +_GCKFCPO = "GetContextKeysForCustomPolicyOutput" +_cGCKFPR = "com.amazonaws.iam#GetContextKeysForPolicyResponse" +_CKN = "ContextKeyNames" +_GCKFCP = "GetContextKeysForCustomPolicy" +_GCKFPPI = "GetContextKeysForPrincipalPolicyInput" +_cGCKFPPR = "com.amazonaws.iam#GetContextKeysForPrincipalPolicyRequest" +_PSA = "PolicySourceArn" +_GCKFPPO = "GetContextKeysForPrincipalPolicyOutput" +_GCKFPP = "GetContextKeysForPrincipalPolicy" +_cREEM = "credentialReportExpiredExceptionMessage" +_CREE = "CredentialReportExpiredException" +_cRNPEM = "credentialReportNotPresentExceptionMessage" +_CRNPE = "CredentialReportNotPresentException" +_cRNREM = "credentialReportNotReadyExceptionMessage" +_CRNRE = "CredentialReportNotReadyException" +_GCRIe = "GetCredentialReportInput" +_RCT = "ReportContentType" +_RFT = "ReportFormatType" +_tc = "text_csv" +_t = "text/csv" +_GCROe = "GetCredentialReportOutput" +_cGCRRo = "com.amazonaws.iam#GetCredentialReportResponse" +_C = "Content" +_RF = "ReportFormat" +_GT = "GeneratedTime" +_GCRe = "GetCredentialReport" +_GDRI = "GetDelegationRequestInput" +_cGDRR = "com.amazonaws.iam#GetDelegationRequestRequest" +_DPC = "DelegationPermissionCheck" +_nT = "notesType" +_oIT = "ownerIdType" +_pTe = "permissionType" +_rNTe = "requestorNameType" +_rPRALT = "rolePermissionRestrictionArnListType" +_sTta = "stateType" +_UNASSIGNED = "UNASSIGNED" +_ASSIGNED = "ASSIGNED" +_PA_ = "PENDING_APPROVAL" +_FINALIZED = "FINALIZED" +_ACCEPTED = "ACCEPTED" +_REJECTED = "REJECTED" +_EXPIRED = "EXPIRED" +_DRe = "DelegationRequest" +_PPe = "PermissionPolicy" +_RPRA = "RolePermissionRestrictionArns" +_OIw = "OwnerId" +_AI = "ApproverId" +_ETx = "ExpirationTime" +_RIe = "RequestorId" +_RNeq = "RequestorName" +_No = "Notes" +_RR = "RejectionReason" +_UT = "UpdatedTime" +_pCRT = "permissionCheckResultType" +_ALLOWED = "ALLOWED" +_DENIED = "DENIED" +_UNSURE = "UNSURE" +_pCST = "permissionCheckStatusType" +_IP_ = "IN_PROGRESS" +_FAILED = "FAILED" +_GDRO = "GetDelegationRequestOutput" +_cGDRRo = "com.amazonaws.iam#GetDelegationRequestResponse" +_PCS = "PermissionCheckStatus" +_PCR = "PermissionCheckResult" +_GDR = "GetDelegationRequest" +_GGI = "GetGroupInput" +_cGGR = "com.amazonaws.iam#GetGroupRequest" +_uLT = "userListType" +_GGO = "GetGroupOutput" +_cGGRo = "com.amazonaws.iam#GetGroupResponse" +_GG = "GetGroup" +_GGPI = "GetGroupPolicyInput" +_cGGPR = "com.amazonaws.iam#GetGroupPolicyRequest" +_GGPO = "GetGroupPolicyOutput" +_cGGPRo = "com.amazonaws.iam#GetGroupPolicyResponse" +_GGP = "GetGroupPolicy" +_lT = "localeType" +_GHRSI = "GetHumanReadableSummaryInput" +_cGHRSR = "com.amazonaws.iam#GetHumanReadableSummaryRequest" +_EA = "EntityArn" +_L = "Locale" +_sCT = "summaryContentType" +_sST = "summaryStateType" +_AVAILABLE = "AVAILABLE" +_NA = "NOT_AVAILABLE" +_NS = "NOT_SUPPORTED" +_GHRSO = "GetHumanReadableSummaryOutput" +_cGHRSRo = "com.amazonaws.iam#GetHumanReadableSummaryResponse" +_SCu = "SummaryContent" +_SS = "SummaryState" +_GHRS = "GetHumanReadableSummary" +_GIPI = "GetInstanceProfileInput" +_cGIPR = "com.amazonaws.iam#GetInstanceProfileRequest" +_GIPO = "GetInstanceProfileOutput" +_cGIPRo = "com.amazonaws.iam#GetInstanceProfileResponse" +_GIP = "GetInstanceProfile" +_GLPI = "GetLoginProfileInput" +_cGLPR = "com.amazonaws.iam#GetLoginProfileRequest" +_GLPO = "GetLoginProfileOutput" +_cGLPRo = "com.amazonaws.iam#GetLoginProfileResponse" +_GLP = "GetLoginProfile" +_GMFADI = "GetMFADeviceInput" +_cGMFADR = "com.amazonaws.iam#GetMFADeviceRequest" +_CKT = "CertificationKeyType" +_CVT = "CertificationValueType" +_CMT = "CertificationMapType" +_GMFADO = "GetMFADeviceOutput" +_cGMFADRo = "com.amazonaws.iam#GetMFADeviceResponse" +_Ce = "Certifications" +_GMFAD = "GetMFADevice" +_GOIDCPI = "GetOpenIDConnectProviderInput" +_cGOIDCPR = "com.amazonaws.iam#GetOpenIDConnectProviderRequest" +_GOIDCPO = "GetOpenIDConnectProviderOutput" +_cGOIDCPRo = "com.amazonaws.iam#GetOpenIDConnectProviderResponse" +_GOIDCP = "GetOpenIDConnectProvider" +_sKTo = "sortKeyType" +_SNA = "SERVICE_NAMESPACE_ASCENDING" +_SND = "SERVICE_NAMESPACE_DESCENDING" +_LATA = "LAST_AUTHENTICATED_TIME_ASCENDING" +_LATD = "LAST_AUTHENTICATED_TIME_DESCENDING" +_GOARIe = "GetOrganizationsAccessReportInput" +_cGOARRom = "com.amazonaws.iam#GetOrganizationsAccessReportRequest" +_SK = "SortKey" +_EDr = "ErrorDetails" +_Co = "Code" +_jST = "jobStatusType" +_COMPLETED = "COMPLETED" +_GOAROe = "GetOrganizationsAccessReportOutput" +_cGOARRoma = "com.amazonaws.iam#GetOrganizationsAccessReportResponse" +_JS = "JobStatus" +_JCD = "JobCreationDate" +_JCDo = "JobCompletionDate" +_NOSA = "NumberOfServicesAccessible" +_NOSNA = "NumberOfServicesNotAccessed" +_GOARe = "GetOrganizationsAccessReport" +_GOWIFII = "GetOutboundWebIdentityFederationInfoInput" +_GOWIFIO = "GetOutboundWebIdentityFederationInfoOutput" +_cGOWIFIR = "com.amazonaws.iam#GetOutboundWebIdentityFederationInfoResponse" +_JVE = "JwtVendingEnabled" +_GOWIFI = "GetOutboundWebIdentityFederationInfo" +_GPI = "GetPolicyInput" +_cGPR = "com.amazonaws.iam#GetPolicyRequest" +_GPO = "GetPolicyOutput" +_cGPRo = "com.amazonaws.iam#GetPolicyResponse" +_GP = "GetPolicy" +_GPVI = "GetPolicyVersionInput" +_cGPVR = "com.amazonaws.iam#GetPolicyVersionRequest" +_GPVO = "GetPolicyVersionOutput" +_cGPVRo = "com.amazonaws.iam#GetPolicyVersionResponse" +_GPV = "GetPolicyVersion" +_GRI = "GetRoleInput" +_cGRR = "com.amazonaws.iam#GetRoleRequest" +_GRO = "GetRoleOutput" +_cGRRo = "com.amazonaws.iam#GetRoleResponse" +_GR = "GetRole" +_GRPI = "GetRolePolicyInput" +_cGRPR = "com.amazonaws.iam#GetRolePolicyRequest" +_GRPO = "GetRolePolicyOutput" +_cGRPRo = "com.amazonaws.iam#GetRolePolicyResponse" +_GRP = "GetRolePolicy" +_mVT = "minorVersionType" +_GRTVI = "GetRoleTemplateVersionInput" +_cGRTVR = "com.amazonaws.iam#GetRoleTemplateVersionRequest" +_MV = "MinorVersion" +_rTDT = "roleTemplateDescriptionType" +_IPnl = "InlinePolicy" +_iPTLT = "inlinePolicyTemplateListType" +_mBTT = "managedByTypeType" +_Se = "Service" +_mBVT = "managedByValueType" +_mPALT = "managedPolicyArnListType" +_pDVT = "parameterDefaultValueType" +_pDTa = "parameterDescriptionType" +_pNTa = "parameterNameType" +_pSTT = "parameterSubTypeType" +_pTT = "parameterTypeType" +_Str = "String" +_SLt = "StringList" +_Nu = "Number" +_NL = "NumberList" +_ALr = "ArnList" +_PDa = "ParameterDefinition" +_ST = "SubType" +_IR = "IsRequired" +_DV = "DefaultValue" +_Im = "Immutable" +_pDLTa = "parametersDefinitionListType" +_rDPT = "roleDescriptionPatternType" +_rNPT = "roleNamePatternType" +_rPPT = "rolePathPatternType" +_tTKT = "tagTemplateKeyType" +_tTVT = "tagTemplateValueType" +_TT = "TagTemplate" +_tTLT = "tagTemplateListType" +_rTNT = "roleTemplateNameType" +_RTV = "RoleTemplateVersion" +_TN = "TemplateName" +_TVI = "TemplateVersionId" +_MVa = "MajorVersion" +_DMV = "DefaultMinorVersion" +_MBT = "ManagedByType" +_MBV = "ManagedByValue" +_En = "Enabled" +_RNP = "RoleNamePattern" +_RPP = "RolePathPattern" +_RDP = "RoleDescriptionPattern" +_ARPDT = "AssumeRolePolicyDocumentTemplate" +_IPT = "InlinePolicyTemplates" +_MPAa = "ManagedPolicyArns" +_PBAe = "PermissionBoundaryArn" +_PDar = "ParametersDefinition" +_RTT = "RoleTagsTemplate" +_VE = "VersionEnabled" +_CT = "CreateTimestamp" +_UTp = "UpdateTimestamp" +_GRTVO = "GetRoleTemplateVersionOutput" +_cGRTVRo = "com.amazonaws.iam#GetRoleTemplateVersionResponse" +_GRTV = "GetRoleTemplateVersion" +_GSAMLPI = "GetSAMLProviderInput" +_cGSAMLPR = "com.amazonaws.iam#GetSAMLProviderRequest" +_pKITr = "privateKeyIdType" +_SAMLPK = "SAMLPrivateKey" +_KI = "KeyId" +_Ti = "Timestamp" +_pKL = "privateKeyList" +_GSAMLPO = "GetSAMLProviderOutput" +_cGSAMLPRo = "com.amazonaws.iam#GetSAMLProviderResponse" +_SAMLPUUID = "SAMLProviderUUID" +_VU = "ValidUntil" +_PKL = "PrivateKeyList" +_GSAMLP = "GetSAMLProvider" +_GSCI = "GetServerCertificateInput" +_cGSCR = "com.amazonaws.iam#GetServerCertificateRequest" +_cBT = "certificateBodyType" +_cCT = "certificateChainType" +_SCM = "ServerCertificateMetadata" +_SCI = "ServerCertificateId" +_UDp = "UploadDate" +_Ex = "Expiration" +_SCe = "ServerCertificate" +_CB = "CertificateBody" +_CC = "CertificateChain" +_GSCO = "GetServerCertificateOutput" +_cGSCRo = "com.amazonaws.iam#GetServerCertificateResponse" +_GSC = "GetServerCertificate" +_GSLADIe = "GetServiceLastAccessedDetailsInput" +_cGSLADRom = "com.amazonaws.iam#GetServiceLastAccessedDetailsRequest" +_TALA = "TrackedActionLastAccessed" +_ANc = "ActionName" +_LAE = "LastAccessedEntity" +_LATa = "LastAccessedTime" +_LAR = "LastAccessedRegion" +_TALAr = "TrackedActionsLastAccessed" +_SLA = "ServiceLastAccessed" +_LA = "LastAuthenticated" +_LAEa = "LastAuthenticatedEntity" +_LARa = "LastAuthenticatedRegion" +_SLAe = "ServicesLastAccessed" +_GSLADOe = "GetServiceLastAccessedDetailsOutput" +_cGSLADRoma = "com.amazonaws.iam#GetServiceLastAccessedDetailsResponse" +_JT = "JobType" +_Er = "Error" +_GSLADe = "GetServiceLastAccessedDetails" +_GSLADWEI = "GetServiceLastAccessedDetailsWithEntitiesInput" +_cGSLADWER = "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesRequest" +_pOET = "policyOwnerEntityType" +_EI = "EntityInfo" +_Id = "Id" +_EDnt = "EntityDetails" +_eDLT = "entityDetailsListType" +_GSLADWEO = "GetServiceLastAccessedDetailsWithEntitiesOutput" +_cGSLADWERo = "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesResponse" +_EDL = "EntityDetailsList" +_GSLADWE = "GetServiceLastAccessedDetailsWithEntities" +_GSLRDSI = "GetServiceLinkedRoleDeletionStatusInput" +_cGSLRDSR = "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusRequest" +_RT = "ReasonType" +_RNT = "RegionNameType" +_RUT = "RoleUsageType" +_Res = "Resources" +_RULT = "RoleUsageListType" +_DTFRT = "DeletionTaskFailureReasonType" +_Rea = "Reason" +_RUL = "RoleUsageList" +_DTST = "DeletionTaskStatusType" +_SUCCEEDED = "SUCCEEDED" +_NS_ = "NOT_STARTED" +_GSLRDSO = "GetServiceLinkedRoleDeletionStatusOutput" +_cGSLRDSRo = "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusResponse" +_GSLRDS = "GetServiceLinkedRoleDeletionStatus" +_eT = "encodingType" +_SSH = "SSH" +_PEM = "PEM" +_GSSHPKI = "GetSSHPublicKeyInput" +_cGSSHPKR = "com.amazonaws.iam#GetSSHPublicKeyRequest" +_Enc = "Encoding" +_pKFT = "publicKeyFingerprintType" +_pKMT = "publicKeyMaterialType" +_SSHPK = "SSHPublicKey" +_Fi = "Fingerprint" +_SSHPKB = "SSHPublicKeyBody" +_GSSHPKO = "GetSSHPublicKeyOutput" +_cGSSHPKRo = "com.amazonaws.iam#GetSSHPublicKeyResponse" +_uPKEM = "unrecognizedPublicKeyEncodingMessage" +_UPKEE = "UnrecognizedPublicKeyEncodingException" +_GSSHPK = "GetSSHPublicKey" +_GUI = "GetUserInput" +_cGUR = "com.amazonaws.iam#GetUserRequest" +_GUO = "GetUserOutput" +_cGURo = "com.amazonaws.iam#GetUserResponse" +_GU = "GetUser" +_GUPI = "GetUserPolicyInput" +_cGUPR = "com.amazonaws.iam#GetUserPolicyRequest" +_GUPO = "GetUserPolicyOutput" +_cGUPRo = "com.amazonaws.iam#GetUserPolicyResponse" +_GUP = "GetUserPolicy" +_LAKI = "ListAccessKeysInput" +_cLAKR = "com.amazonaws.iam#ListAccessKeysRequest" +_LAKO = "ListAccessKeysOutput" +_cLAKRo = "com.amazonaws.iam#ListAccessKeysResponse" +_LAK = "ListAccessKeys" +_LAAI = "ListAccountAliasesInput" +_cLAAR = "com.amazonaws.iam#ListAccountAliasesRequest" +_LAAO = "ListAccountAliasesOutput" +_cLAARo = "com.amazonaws.iam#ListAccountAliasesResponse" +_AAc = "AccountAliases" +_LAA = "ListAccountAliases" +_LAGPI = "ListAttachedGroupPoliciesInput" +_cLAGPR = "com.amazonaws.iam#ListAttachedGroupPoliciesRequest" +_PPat = "PathPrefix" +_LAGPO = "ListAttachedGroupPoliciesOutput" +_cLAGPRo = "com.amazonaws.iam#ListAttachedGroupPoliciesResponse" +_APt = "AttachedPolicies" +_LAGP = "ListAttachedGroupPolicies" +_LARPI = "ListAttachedRolePoliciesInput" +_cLARPR = "com.amazonaws.iam#ListAttachedRolePoliciesRequest" +_LARPO = "ListAttachedRolePoliciesOutput" +_cLARPRo = "com.amazonaws.iam#ListAttachedRolePoliciesResponse" +_LARP = "ListAttachedRolePolicies" +_LAUPI = "ListAttachedUserPoliciesInput" +_cLAUPR = "com.amazonaws.iam#ListAttachedUserPoliciesRequest" +_LAUPO = "ListAttachedUserPoliciesOutput" +_cLAUPRo = "com.amazonaws.iam#ListAttachedUserPoliciesResponse" +_LAUP = "ListAttachedUserPolicies" +_LDRI = "ListDelegationRequestsInput" +_cLDRR = "com.amazonaws.iam#ListDelegationRequestsRequest" +_dRLT = "delegationRequestsListType" +_LDRO = "ListDelegationRequestsOutput" +_cLDRRo = "com.amazonaws.iam#ListDelegationRequestsResponse" +_DRel = "DelegationRequests" +_iTs = "isTruncated" +_LDR = "ListDelegationRequests" +_PUT = "PolicyUsageType" +_PPer = "PermissionsPolicy" +_LEFPI = "ListEntitiesForPolicyInput" +_cLEFPR = "com.amazonaws.iam#ListEntitiesForPolicyRequest" +_EFn = "EntityFilter" +_PUF = "PolicyUsageFilter" +_PG = "PolicyGroup" +_PGLT = "PolicyGroupListType" +_PR = "PolicyRole" +_PRLT = "PolicyRoleListType" +_PU = "PolicyUser" +_PULT = "PolicyUserListType" +_LEFPO = "ListEntitiesForPolicyOutput" +_cLEFPRo = "com.amazonaws.iam#ListEntitiesForPolicyResponse" +_PGo = "PolicyGroups" +_PUo = "PolicyUsers" +_PRo = "PolicyRoles" +_LEFP = "ListEntitiesForPolicy" +_LGPI = "ListGroupPoliciesInput" +_cLGPR = "com.amazonaws.iam#ListGroupPoliciesRequest" +_pNLT = "policyNameListType" +_LGPO = "ListGroupPoliciesOutput" +_cLGPRo = "com.amazonaws.iam#ListGroupPoliciesResponse" +_PNo = "PolicyNames" +_LGP = "ListGroupPolicies" +_pPTa = "pathPrefixType" +_LGI = "ListGroupsInput" +_cLGR = "com.amazonaws.iam#ListGroupsRequest" +_gLT = "groupListType" +_LGO = "ListGroupsOutput" +_cLGRo = "com.amazonaws.iam#ListGroupsResponse" +_LG = "ListGroups" +_LGFUI = "ListGroupsForUserInput" +_cLGFUR = "com.amazonaws.iam#ListGroupsForUserRequest" +_LGFUO = "ListGroupsForUserOutput" +_cLGFURo = "com.amazonaws.iam#ListGroupsForUserResponse" +_LGFU = "ListGroupsForUser" +_LIPI = "ListInstanceProfilesInput" +_cLIPR = "com.amazonaws.iam#ListInstanceProfilesRequest" +_LIPO = "ListInstanceProfilesOutput" +_cLIPRo = "com.amazonaws.iam#ListInstanceProfilesResponse" +_LIP = "ListInstanceProfiles" +_LIPFRI = "ListInstanceProfilesForRoleInput" +_cLIPFRR = "com.amazonaws.iam#ListInstanceProfilesForRoleRequest" +_LIPFRO = "ListInstanceProfilesForRoleOutput" +_cLIPFRRo = "com.amazonaws.iam#ListInstanceProfilesForRoleResponse" +_LIPFR = "ListInstanceProfilesForRole" +_LIPTI = "ListInstanceProfileTagsInput" +_cLIPTR = "com.amazonaws.iam#ListInstanceProfileTagsRequest" +_LIPTO = "ListInstanceProfileTagsOutput" +_cLIPTRo = "com.amazonaws.iam#ListInstanceProfileTagsResponse" +_LIPT = "ListInstanceProfileTags" +_LMFADI = "ListMFADevicesInput" +_cLMFADR = "com.amazonaws.iam#ListMFADevicesRequest" +_MFADe = "MFADevice" +_mDLT = "mfaDeviceListType" +_LMFADO = "ListMFADevicesOutput" +_cLMFADRo = "com.amazonaws.iam#ListMFADevicesResponse" +_LMFAD = "ListMFADevices" +_LMFADTI = "ListMFADeviceTagsInput" +_cLMFADTR = "com.amazonaws.iam#ListMFADeviceTagsRequest" +_LMFADTO = "ListMFADeviceTagsOutput" +_cLMFADTRo = "com.amazonaws.iam#ListMFADeviceTagsResponse" +_LMFADT = "ListMFADeviceTags" +_LOIDCPI = "ListOpenIDConnectProvidersInput" +_cLOIDCPR = "com.amazonaws.iam#ListOpenIDConnectProvidersRequest" +_OIDCPLE = "OpenIDConnectProviderListEntry" +_OIDCPLT = "OpenIDConnectProviderListType" +_LOIDCPO = "ListOpenIDConnectProvidersOutput" +_cLOIDCPRo = "com.amazonaws.iam#ListOpenIDConnectProvidersResponse" +_OIDCPL = "OpenIDConnectProviderList" +_LOIDCP = "ListOpenIDConnectProviders" +_LOIDCPTI = "ListOpenIDConnectProviderTagsInput" +_cLOIDCPTR = "com.amazonaws.iam#ListOpenIDConnectProviderTagsRequest" +_LOIDCPTO = "ListOpenIDConnectProviderTagsOutput" +_cLOIDCPTRo = "com.amazonaws.iam#ListOpenIDConnectProviderTagsResponse" +_LOIDCPT = "ListOpenIDConnectProviderTags" +_LOFI = "ListOrganizationsFeaturesInput" +_cLOFR = "com.amazonaws.iam#ListOrganizationsFeaturesRequest" +_LOFO = "ListOrganizationsFeaturesOutput" +_cLOFRo = "com.amazonaws.iam#ListOrganizationsFeaturesResponse" +_LOF = "ListOrganizationsFeatures" +_pST = "policyScopeType" +_All = "All" +_AWS = "AWS" +_Lo = "Local" +_LPI = "ListPoliciesInput" +_cLPR = "com.amazonaws.iam#ListPoliciesRequest" +_Sc = "Scope" +_OA = "OnlyAttached" +_pLT = "policyListType" +_LPO = "ListPoliciesOutput" +_cLPRo = "com.amazonaws.iam#ListPoliciesResponse" +_LPi = "ListPolicies" +_sNLT = "serviceNamespaceListType" +_LPGSAI = "ListPoliciesGrantingServiceAccessInput" +_cLPGSAR = "com.amazonaws.iam#ListPoliciesGrantingServiceAccessRequest" +_SNerv = "ServiceNamespaces" +_eNT = "entityNameType" +_pTo = "policyType" +_INLINE = "INLINE" +_MANAGED = "MANAGED" +_PGSA = "PolicyGrantingServiceAccess" +_PT = "PolicyType" +_EN = "EntityName" +_pGSALT = "policyGrantingServiceAccessListType" +_LPGSAE = "ListPoliciesGrantingServiceAccessEntry" +_lPGSARLT = "listPolicyGrantingServiceAccessResponseListType" +_LPGSAO = "ListPoliciesGrantingServiceAccessOutput" +_cLPGSARo = "com.amazonaws.iam#ListPoliciesGrantingServiceAccessResponse" +_PGSAo = "PoliciesGrantingServiceAccess" +_LPGSA = "ListPoliciesGrantingServiceAccess" +_LPTI = "ListPolicyTagsInput" +_cLPTR = "com.amazonaws.iam#ListPolicyTagsRequest" +_LPTO = "ListPolicyTagsOutput" +_cLPTRo = "com.amazonaws.iam#ListPolicyTagsResponse" +_LPT = "ListPolicyTags" +_LPVI = "ListPolicyVersionsInput" +_cLPVR = "com.amazonaws.iam#ListPolicyVersionsRequest" +_LPVO = "ListPolicyVersionsOutput" +_cLPVRo = "com.amazonaws.iam#ListPolicyVersionsResponse" +_Ve = "Versions" +_LPV = "ListPolicyVersions" +_LRPI = "ListRolePoliciesInput" +_cLRPR = "com.amazonaws.iam#ListRolePoliciesRequest" +_LRPO = "ListRolePoliciesOutput" +_cLRPRo = "com.amazonaws.iam#ListRolePoliciesResponse" +_LRP = "ListRolePolicies" +_LRI = "ListRolesInput" +_cLRR = "com.amazonaws.iam#ListRolesRequest" +_LRO = "ListRolesOutput" +_cLRRo = "com.amazonaws.iam#ListRolesResponse" +_LR = "ListRoles" +_LRTI = "ListRoleTagsInput" +_cLRTR = "com.amazonaws.iam#ListRoleTagsRequest" +_LRTO = "ListRoleTagsOutput" +_cLRTRo = "com.amazonaws.iam#ListRoleTagsResponse" +_LRT = "ListRoleTags" +_LSAMLPI = "ListSAMLProvidersInput" +_cLSAMLPR = "com.amazonaws.iam#ListSAMLProvidersRequest" +_SAMLPLE = "SAMLProviderListEntry" +_SAMLPLT = "SAMLProviderListType" +_LSAMLPO = "ListSAMLProvidersOutput" +_cLSAMLPRo = "com.amazonaws.iam#ListSAMLProvidersResponse" +_SAMLPL = "SAMLProviderList" +_LSAMLP = "ListSAMLProviders" +_LSAMLPTI = "ListSAMLProviderTagsInput" +_cLSAMLPTR = "com.amazonaws.iam#ListSAMLProviderTagsRequest" +_LSAMLPTO = "ListSAMLProviderTagsOutput" +_cLSAMLPTRo = "com.amazonaws.iam#ListSAMLProviderTagsResponse" +_LSAMLPT = "ListSAMLProviderTags" +_LSCI = "ListServerCertificatesInput" +_cLSCR = "com.amazonaws.iam#ListServerCertificatesRequest" +_sCMLT = "serverCertificateMetadataListType" +_LSCO = "ListServerCertificatesOutput" +_cLSCRo = "com.amazonaws.iam#ListServerCertificatesResponse" +_SCML = "ServerCertificateMetadataList" +_LSC = "ListServerCertificates" +_LSCTI = "ListServerCertificateTagsInput" +_cLSCTR = "com.amazonaws.iam#ListServerCertificateTagsRequest" +_LSCTO = "ListServerCertificateTagsOutput" +_cLSCTRo = "com.amazonaws.iam#ListServerCertificateTagsResponse" +_LSCT = "ListServerCertificateTags" +_LSSCI = "ListServiceSpecificCredentialsInput" +_cLSSCR = "com.amazonaws.iam#ListServiceSpecificCredentialsRequest" +_AU = "AllUsers" +_SSCM = "ServiceSpecificCredentialMetadata" +_SSCLT = "ServiceSpecificCredentialsListType" +_LSSCO = "ListServiceSpecificCredentialsOutput" +_cLSSCRo = "com.amazonaws.iam#ListServiceSpecificCredentialsResponse" +_SSCe = "ServiceSpecificCredentials" +_LSSC = "ListServiceSpecificCredentials" +_LSCIi = "ListSigningCertificatesInput" +_cLSCRom = "com.amazonaws.iam#ListSigningCertificatesRequest" +_SCi = "SigningCertificate" +_cLT = "certificateListType" +_LSCOi = "ListSigningCertificatesOutput" +_cLSCRoma = "com.amazonaws.iam#ListSigningCertificatesResponse" +_Cer = "Certificates" +_LSCi = "ListSigningCertificates" +_LSSHPKI = "ListSSHPublicKeysInput" +_cLSSHPKR = "com.amazonaws.iam#ListSSHPublicKeysRequest" +_SSHPKM = "SSHPublicKeyMetadata" +_SSHPKLT = "SSHPublicKeyListType" +_LSSHPKO = "ListSSHPublicKeysOutput" +_cLSSHPKRo = "com.amazonaws.iam#ListSSHPublicKeysResponse" +_SSHPKu = "SSHPublicKeys" +_LSSHPK = "ListSSHPublicKeys" +_LUPI = "ListUserPoliciesInput" +_cLUPR = "com.amazonaws.iam#ListUserPoliciesRequest" +_LUPO = "ListUserPoliciesOutput" +_cLUPRo = "com.amazonaws.iam#ListUserPoliciesResponse" +_LUP = "ListUserPolicies" +_LUI = "ListUsersInput" +_cLUR = "com.amazonaws.iam#ListUsersRequest" +_LUO = "ListUsersOutput" +_cLURo = "com.amazonaws.iam#ListUsersResponse" +_LU = "ListUsers" +_LUTI = "ListUserTagsInput" +_cLUTR = "com.amazonaws.iam#ListUserTagsRequest" +_LUTO = "ListUserTagsOutput" +_cLUTRo = "com.amazonaws.iam#ListUserTagsResponse" +_LUT = "ListUserTags" +_LVMFADI = "ListVirtualMFADevicesInput" +_cLVMFADR = "com.amazonaws.iam#ListVirtualMFADevicesRequest" +_AS = "AssignmentStatus" +_vMFADLT = "virtualMFADeviceListType" +_LVMFADO = "ListVirtualMFADevicesOutput" +_cLVMFADRo = "com.amazonaws.iam#ListVirtualMFADevicesResponse" +_VMFADi = "VirtualMFADevices" +_LVMFAD = "ListVirtualMFADevices" +_PAPI = "PutAccountPropertiesInput" +_cPAPR = "com.amazonaws.iam#PutAccountPropertiesRequest" +_PAPO = "PutAccountPropertiesOutput" +_cPAPRo = "com.amazonaws.iam#PutAccountPropertiesResponse" +_PAP = "PutAccountProperties" +_PGPI = "PutGroupPolicyInput" +_cPGPR = "com.amazonaws.iam#PutGroupPolicyRequest" +_PGPO = "PutGroupPolicyOutput" +_PGP = "PutGroupPolicy" +_PRPBI = "PutRolePermissionsBoundaryInput" +_cPRPBR = "com.amazonaws.iam#PutRolePermissionsBoundaryRequest" +_PRPBO = "PutRolePermissionsBoundaryOutput" +_PRPB = "PutRolePermissionsBoundary" +_PRPI = "PutRolePolicyInput" +_cPRPR = "com.amazonaws.iam#PutRolePolicyRequest" +_PRPO = "PutRolePolicyOutput" +_PRPu = "PutRolePolicy" +_PUPBI = "PutUserPermissionsBoundaryInput" +_cPUPBR = "com.amazonaws.iam#PutUserPermissionsBoundaryRequest" +_PUPBO = "PutUserPermissionsBoundaryOutput" +_PUPB = "PutUserPermissionsBoundary" +_PUPI = "PutUserPolicyInput" +_cPUPR = "com.amazonaws.iam#PutUserPolicyRequest" +_PUPO = "PutUserPolicyOutput" +_PUP = "PutUserPolicy" +_RDRI = "RejectDelegationRequestInput" +_cRDRR = "com.amazonaws.iam#RejectDelegationRequestRequest" +_RDRO = "RejectDelegationRequestOutput" +_RDR = "RejectDelegationRequest" +_RCIDFOIDCPI = "RemoveClientIDFromOpenIDConnectProviderInput" +_cRCIDFOIDCPR = "com.amazonaws.iam#RemoveClientIDFromOpenIDConnectProviderRequest" +_RCIDFOIDCPO = "RemoveClientIDFromOpenIDConnectProviderOutput" +_RCIDFOIDCP = "RemoveClientIDFromOpenIDConnectProvider" +_RRFIPI = "RemoveRoleFromInstanceProfileInput" +_cRRFIPR = "com.amazonaws.iam#RemoveRoleFromInstanceProfileRequest" +_RRFIPO = "RemoveRoleFromInstanceProfileOutput" +_RRFIP = "RemoveRoleFromInstanceProfile" +_RUFGI = "RemoveUserFromGroupInput" +_cRUFGR = "com.amazonaws.iam#RemoveUserFromGroupRequest" +_RUFGO = "RemoveUserFromGroupOutput" +_RUFG = "RemoveUserFromGroup" +_RSSCI = "ResetServiceSpecificCredentialInput" +_cRSSCR = "com.amazonaws.iam#ResetServiceSpecificCredentialRequest" +_RSSCO = "ResetServiceSpecificCredentialOutput" +_cRSSCRo = "com.amazonaws.iam#ResetServiceSpecificCredentialResponse" +_RSSC = "ResetServiceSpecificCredential" +_RMFADI = "ResyncMFADeviceInput" +_cRMFADR = "com.amazonaws.iam#ResyncMFADeviceRequest" +_RMFADO = "ResyncMFADeviceOutput" +_RMFAD = "ResyncMFADevice" +_SDTI = "SendDelegationTokenInput" +_cSDTR = "com.amazonaws.iam#SendDelegationTokenRequest" +_SDTO = "SendDelegationTokenOutput" +_SDT = "SendDelegationToken" +_SDPVI = "SetDefaultPolicyVersionInput" +_cSDPVR = "com.amazonaws.iam#SetDefaultPolicyVersionRequest" +_SDPVO = "SetDefaultPolicyVersionOutput" +_SDPV = "SetDefaultPolicyVersion" +_gETV = "globalEndpointTokenVersion" +_vT = "v1Token" +_vTo = "v2Token" +_SSTSPI = "SetSecurityTokenServicePreferencesInput" +_cSSTSPR = "com.amazonaws.iam#SetSecurityTokenServicePreferencesRequest" +_SSTSPO = "SetSecurityTokenServicePreferencesOutput" +_SSTSP = "SetSecurityTokenServicePreferences" +_pEEM = "policyEvaluationErrorMessage" +_PEE = "PolicyEvaluationException" +_RNTe = "ResourceNameType" +_CKTE = "ContextKeyTypeEnum" +_NUMERIC = "NUMERIC" +_n = "numeric" +_NL_ = "NUMERIC_LIST" +_nL = "numericList" +_BOOLEAN = "BOOLEAN" +_b = "boolean" +_BL = "BOOLEAN_LIST" +_bL = "booleanList" +_IP__ = "IP" +_i = "ip" +_IL = "IP_LIST" +_iL = "ipList" +_BINARY = "BINARY" +_bi = "binary" +_BL_ = "BINARY_LIST" +_bLi = "binaryList" +_DATE = "DATE" +_d = "date" +_DL = "DATE_LIST" +_dL = "dateList" +_CKVT = "ContextKeyValueType" +_CKVLT = "ContextKeyValueListType" +_CE = "ContextEntry" +_CKNo = "ContextKeyName" +_CKV = "ContextKeyValues" +_CKTo = "ContextKeyType" +_CELT = "ContextEntryListType" +_OOPT = "OrderedOrganizationPolicyType" +_SCPIL = "ServiceControlPolicyInputList" +_OPLT = "OrganizationPolicyListType" +_RNLT = "ResourceNameListType" +_RHOT = "ResourceHandlingOptionType" +_SCPI = "SimulateCustomPolicyInput" +_cSCPR = "com.amazonaws.iam#SimulateCustomPolicyRequest" +_PBPIL = "PermissionsBoundaryPolicyInputList" +_OOPIL = "OrderedOrganizationPolicyInputList" +_ANct = "ActionNames" +_RA = "ResourceArns" +_RP = "ResourcePolicy" +_RO = "ResourceOwner" +_CA = "CallerArn" +_CEo = "ContextEntries" +_RHO = "ResourceHandlingOption" +_PEDT = "PolicyEvaluationDecisionType" +_a = "allowed" +_ED_ = "EXPLICIT_DENY" +_eD = "explicitDeny" +_ID = "IMPLICIT_DENY" +_iD = "implicitDeny" +_EDST = "EvalDecisionSourceType" +_EDDT = "EvalDecisionDetailsType" +_CN = "ColumnNumber" +_LN = "LineNumber" +_Pos = "Position" +_Li = "Line" +_Col = "Column" +_PIT = "PolicyIdentifierType" +_PST = "PolicySourceType" +_AM = "AWS_MANAGED" +_am = "aws-managed" +_UM = "USER_MANAGED" +_um = "user-managed" +_RESOURCE = "RESOURCE" +_re = "resource" +_NONE = "NONE" +_no = "none" +_Sta = "Statement" +_SPI = "SourcePolicyId" +_SPT = "SourcePolicyType" +_SPt = "StartPosition" +_EPn = "EndPosition" +_SLT = "StatementListType" +_ODD = "OrganizationsDecisionDetail" +_ABO = "AllowedByOrganizations" +_PBDD = "PermissionsBoundaryDecisionDetail" +_ABPB = "AllowedByPermissionsBoundary" +_RSR = "ResourceSpecificResult" +_ERN = "EvalResourceName" +_ERD = "EvalResourceDecision" +_MS = "MatchedStatements" +_MCV = "MissingContextValues" +_EDD = "EvalDecisionDetails" +_RSRLT = "ResourceSpecificResultListType" +_ER = "EvaluationResult" +_EAN = "EvalActionName" +_EDv = "EvalDecision" +_RSRe = "ResourceSpecificResults" +_ERLT = "EvaluationResultsListType" +_SCPO = "SimulateCustomPolicyOutput" +_cSPR = "com.amazonaws.iam#SimulatePolicyResponse" +_ERv = "EvaluationResults" +_SCP = "SimulateCustomPolicy" +_IPIT = "InlinePolicyIdentifierType" +_PIPT = "PolicyIdentifierPolicyType" +_in = "inline" +_PB_ = "PERMISSION_BOUNDARY" +_pb = "permission-boundary" +_SCP_ = "SCP" +_sc = "scp" +_RCP = "RCP" +_rc = "rcp" +_PIo = "PolicyIdentifier" +_IPIn = "InlinePolicyIdentifier" +_PELT = "PolicyExclusionsListType" +_SPPI = "SimulatePrincipalPolicyInput" +_cSPPR = "com.amazonaws.iam#SimulatePrincipalPolicyRequest" +_PEL = "PolicyExclusionList" +_SPPO = "SimulatePrincipalPolicyOutput" +_SPP = "SimulatePrincipalPolicy" +_TIPI = "TagInstanceProfileInput" +_cTIPR = "com.amazonaws.iam#TagInstanceProfileRequest" +_TIPO = "TagInstanceProfileOutput" +_TIP = "TagInstanceProfile" +_TMFADI = "TagMFADeviceInput" +_cTMFADR = "com.amazonaws.iam#TagMFADeviceRequest" +_TMFADO = "TagMFADeviceOutput" +_TMFAD = "TagMFADevice" +_TOIDCPI = "TagOpenIDConnectProviderInput" +_cTOIDCPR = "com.amazonaws.iam#TagOpenIDConnectProviderRequest" +_TOIDCPO = "TagOpenIDConnectProviderOutput" +_TOIDCP = "TagOpenIDConnectProvider" +_TPI = "TagPolicyInput" +_cTPR = "com.amazonaws.iam#TagPolicyRequest" +_TPO = "TagPolicyOutput" +_TP = "TagPolicy" +_TRI = "TagRoleInput" +_cTRR = "com.amazonaws.iam#TagRoleRequest" +_TRO = "TagRoleOutput" +_TR = "TagRole" +_TSAMLPI = "TagSAMLProviderInput" +_cTSAMLPR = "com.amazonaws.iam#TagSAMLProviderRequest" +_TSAMLPO = "TagSAMLProviderOutput" +_TSAMLP = "TagSAMLProvider" +_TSCI = "TagServerCertificateInput" +_cTSCR = "com.amazonaws.iam#TagServerCertificateRequest" +_TSCO = "TagServerCertificateOutput" +_TSC = "TagServerCertificate" +_TUI = "TagUserInput" +_cTUR = "com.amazonaws.iam#TagUserRequest" +_TUO = "TagUserOutput" +_TU = "TagUser" +_tKLT = "tagKeyListType" +_UIPI = "UntagInstanceProfileInput" +_cUIPR = "com.amazonaws.iam#UntagInstanceProfileRequest" +_TK = "TagKeys" +_UIPO = "UntagInstanceProfileOutput" +_UIP = "UntagInstanceProfile" +_UMFADI = "UntagMFADeviceInput" +_cUMFADR = "com.amazonaws.iam#UntagMFADeviceRequest" +_UMFADO = "UntagMFADeviceOutput" +_UMFAD = "UntagMFADevice" +_UOIDCPI = "UntagOpenIDConnectProviderInput" +_cUOIDCPR = "com.amazonaws.iam#UntagOpenIDConnectProviderRequest" +_UOIDCPO = "UntagOpenIDConnectProviderOutput" +_UOIDCP = "UntagOpenIDConnectProvider" +_UPI = "UntagPolicyInput" +_cUPR = "com.amazonaws.iam#UntagPolicyRequest" +_UPO = "UntagPolicyOutput" +_UP = "UntagPolicy" +_URI = "UntagRoleInput" +_cURR = "com.amazonaws.iam#UntagRoleRequest" +_URO = "UntagRoleOutput" +_UR = "UntagRole" +_USAMLPI = "UntagSAMLProviderInput" +_cUSAMLPR = "com.amazonaws.iam#UntagSAMLProviderRequest" +_USAMLPO = "UntagSAMLProviderOutput" +_USAMLP = "UntagSAMLProvider" +_USCI = "UntagServerCertificateInput" +_cUSCR = "com.amazonaws.iam#UntagServerCertificateRequest" +_USCO = "UntagServerCertificateOutput" +_USC = "UntagServerCertificate" +_UUI = "UntagUserInput" +_cUUR = "com.amazonaws.iam#UntagUserRequest" +_UUO = "UntagUserOutput" +_UU = "UntagUser" +_UAKI = "UpdateAccessKeyInput" +_cUAKR = "com.amazonaws.iam#UpdateAccessKeyRequest" +_UAKO = "UpdateAccessKeyOutput" +_UAK = "UpdateAccessKey" +_UAPPI = "UpdateAccountPasswordPolicyInput" +_cUAPPR = "com.amazonaws.iam#UpdateAccountPasswordPolicyRequest" +_UAPPO = "UpdateAccountPasswordPolicyOutput" +_UAPP = "UpdateAccountPasswordPolicy" +_UARPI = "UpdateAssumeRolePolicyInput" +_cUARPR = "com.amazonaws.iam#UpdateAssumeRolePolicyRequest" +_UARPO = "UpdateAssumeRolePolicyOutput" +_UARP = "UpdateAssumeRolePolicy" +_UDRI = "UpdateDelegationRequestInput" +_cUDRR = "com.amazonaws.iam#UpdateDelegationRequestRequest" +_UDRO = "UpdateDelegationRequestOutput" +_UDR = "UpdateDelegationRequest" +_UGI = "UpdateGroupInput" +_cUGR = "com.amazonaws.iam#UpdateGroupRequest" +_NPe = "NewPath" +_NGN = "NewGroupName" +_UGO = "UpdateGroupOutput" +_UG = "UpdateGroup" +_ULPI = "UpdateLoginProfileInput" +_cULPR = "com.amazonaws.iam#UpdateLoginProfileRequest" +_ULPO = "UpdateLoginProfileOutput" +_ULP = "UpdateLoginProfile" +_UOIDCPTI = "UpdateOpenIDConnectProviderThumbprintInput" +_cUOIDCPTR = "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprintRequest" +_UOIDCPTO = "UpdateOpenIDConnectProviderThumbprintOutput" +_UOIDCPT = "UpdateOpenIDConnectProviderThumbprint" +_URIp = "UpdateRoleInput" +_cURRo = "com.amazonaws.iam#UpdateRoleRequest" +_UROp = "UpdateRoleOutput" +_cURRom = "com.amazonaws.iam#UpdateRoleResponse" +_URp = "UpdateRole" +_URDI = "UpdateRoleDescriptionInput" +_cURDR = "com.amazonaws.iam#UpdateRoleDescriptionRequest" +_URDO = "UpdateRoleDescriptionOutput" +_cURDRo = "com.amazonaws.iam#UpdateRoleDescriptionResponse" +_URD = "UpdateRoleDescription" +_USAMLPIp = "UpdateSAMLProviderInput" +_cUSAMLPRo = "com.amazonaws.iam#UpdateSAMLProviderRequest" +_RPK = "RemovePrivateKey" +_USAMLPOp = "UpdateSAMLProviderOutput" +_cUSAMLPRom = "com.amazonaws.iam#UpdateSAMLProviderResponse" +_USAMLPp = "UpdateSAMLProvider" +_USCIp = "UpdateServerCertificateInput" +_cUSCRo = "com.amazonaws.iam#UpdateServerCertificateRequest" +_NSCN = "NewServerCertificateName" +_USCOp = "UpdateServerCertificateOutput" +_USCp = "UpdateServerCertificate" +_USSCI = "UpdateServiceSpecificCredentialInput" +_cUSSCR = "com.amazonaws.iam#UpdateServiceSpecificCredentialRequest" +_USSCO = "UpdateServiceSpecificCredentialOutput" +_USSC = "UpdateServiceSpecificCredential" +_USCIpd = "UpdateSigningCertificateInput" +_cUSCRom = "com.amazonaws.iam#UpdateSigningCertificateRequest" +_USCOpd = "UpdateSigningCertificateOutput" +_USCpd = "UpdateSigningCertificate" +_USSHPKI = "UpdateSSHPublicKeyInput" +_cUSSHPKR = "com.amazonaws.iam#UpdateSSHPublicKeyRequest" +_USSHPKO = "UpdateSSHPublicKeyOutput" +_USSHPK = "UpdateSSHPublicKey" +_UUIp = "UpdateUserInput" +_cUURo = "com.amazonaws.iam#UpdateUserRequest" +_NUN = "NewUserName" +_UUOp = "UpdateUserOutput" +_UUp = "UpdateUser" +_kPMM = "keyPairMismatchMessage" +_KPME = "KeyPairMismatchException" +_mCM = "malformedCertificateMessage" +_MCE = "MalformedCertificateException" +_USCIpl = "UploadServerCertificateInput" +_cUSCRoma = "com.amazonaws.iam#UploadServerCertificateRequest" +_PK = "PrivateKey" +_USCOpl = "UploadServerCertificateOutput" +_cUSCRomam = "com.amazonaws.iam#UploadServerCertificateResponse" +_USCpl = "UploadServerCertificate" +_dCMu = "duplicateCertificateMessage" +_DCEu = "DuplicateCertificateException" +_iCM = "invalidCertificateMessage" +_ICE = "InvalidCertificateException" +_USCIplo = "UploadSigningCertificateInput" +_cUSCRomama = "com.amazonaws.iam#UploadSigningCertificateRequest" +_USCOplo = "UploadSigningCertificateOutput" +_cUSCRomamaz = "com.amazonaws.iam#UploadSigningCertificateResponse" +_Cert = "Certificate" +_USCplo = "UploadSigningCertificate" +_dSSHPKM = "duplicateSSHPublicKeyMessage" +_DSSHPKE = "DuplicateSSHPublicKeyException" +_iPKM = "invalidPublicKeyMessage" +_IPKE = "InvalidPublicKeyException" +_USSHPKIp = "UploadSSHPublicKeyInput" +_cUSSHPKRo = "com.amazonaws.iam#UploadSSHPublicKeyRequest" +_USSHPKOp = "UploadSSHPublicKeyOutput" +_cUSSHPKRom = "com.amazonaws.iam#UploadSSHPublicKeyResponse" +_USSHPKp = "UploadSSHPublicKey" +_AWSIMV = "AWSIdentityManagementV20100508" +_aw = "aws.auth#sigv4" +_aQ = "aws.protocols#awsQuery" +_aws = "aws.api#service" +_sNm = "smithy.api#xmlNamespace" + +DELEGATION_REQUEST_ID_TYPE: StaticSchema = (3, n0, _dRIT, 0) + +ACCEPT_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _ADRI, + {_sSI: _cADRR, _s: None}, + (_DRI,), + ((DELEGATION_REQUEST_ID_TYPE, 1),), +) + +ACCEPT_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _ADRO, + {_sSI: _sU, _smi: None}, +) + +CONCURRENT_MODIFICATION_MESSAGE: StaticSchema = (3, n0, _CMM, 0) + +CONCURRENT_MODIFICATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _CME, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "ConcurrentModification", "httpResponseCode": 409} + ), + }, + (_m,), + ((CONCURRENT_MODIFICATION_MESSAGE, 0),), +) + +NO_SUCH_ENTITY_MESSAGE: StaticSchema = (3, n0, _nSEM, 0) + +NO_SUCH_ENTITY_EXCEPTION: StaticSchema = ( + 18, + n0, + _NSEE, + { + _smit: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "NoSuchEntity", "httpResponseCode": 404}), + }, + (_m,), + ((NO_SUCH_ENTITY_MESSAGE, 0),), +) + +SERVICE_FAILURE_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _sFEM, 0) + +SERVICE_FAILURE_EXCEPTION: StaticSchema = ( + 18, + n0, + _SFE, + { + _smit: _se, + _sE: 500, + _aQE: MappingProxyType({"code": "ServiceFailure", "httpResponseCode": 500}), + }, + (_m,), + ((SERVICE_FAILURE_EXCEPTION_MESSAGE, 0),), +) + +ACCEPT_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _ADR, + 0, + ACCEPT_DELEGATION_REQUEST_INPUT, + ACCEPT_DELEGATION_REQUEST_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +ACCESS_ADVISOR_USAGE_GRANULARITY_TYPE: StaticSchema = ( + 14, + n0, + _AAUGT, + 0, + (_SL, _AL), + ((-1, {_sV: _SL}), (-1, {_sV: _AL})), +) + +ORGANIZATIONS_ENTITY_PATH_TYPE: StaticSchema = (3, n0, _oEPT, 0) + +DATE_TYPE: StaticSchema = (4, n0, _dT, 0) + +STRING_TYPE: StaticSchema = (3, n0, _sT, 0) + +SERVICE_NAME_TYPE: StaticSchema = (3, n0, _sNT, 0) + +SERVICE_NAMESPACE_TYPE: StaticSchema = (3, n0, _sNTe, 0) + +INTEGER_TYPE: StaticSchema = (7, n0, _iT, 0) + +ACCESS_DETAIL: StaticSchema = ( + 18, + n0, + _AD, + 0, + (_SN, _SNe, _R, _EP, _LAT, _TAE), + ( + (SERVICE_NAME_TYPE, 1), + (SERVICE_NAMESPACE_TYPE, 1), + (STRING_TYPE, 0), + (ORGANIZATIONS_ENTITY_PATH_TYPE, 0), + (DATE_TYPE, 0), + (INTEGER_TYPE, 0), + ), +) + +ACCESS_DETAILS: StaticSchema = (16, n0, _ADc, 0, (_me,), ((ACCESS_DETAIL, 0),)) + +ACCESS_KEY_ID_TYPE: StaticSchema = (3, n0, _aKIT, 0) + +ACCESS_KEY_SECRET_TYPE: StaticSchema = (3, n0, _aKST, 4) + +STATUS_TYPE: StaticSchema = ( + 14, + n0, + _sTt, + 0, + (_A, _I, _E), + ((-1, {_sV: _A}), (-1, {_sV: _I}), (-1, {_sV: _E})), +) + +USER_NAME_TYPE: StaticSchema = (3, n0, _uNT, 0) + +ACCESS_KEY: StaticSchema = ( + 18, + n0, + _AK, + 0, + (_UN, _AKI, _S, _SAK, _CD), + ( + (USER_NAME_TYPE, 1), + (ACCESS_KEY_ID_TYPE, 1), + (STATUS_TYPE, 1), + (ACCESS_KEY_SECRET_TYPE, 1), + (DATE_TYPE, 0), + ), +) + +ACCESS_KEY_LAST_USED: StaticSchema = ( + 18, + n0, + _AKLU, + 0, + (_LUD, _SN, _R), + ((DATE_TYPE, 0), (STRING_TYPE, 1), (STRING_TYPE, 1)), +) + +ACCESS_KEY_METADATA: StaticSchema = ( + 18, + n0, + _AKM, + 0, + (_UN, _AKI, _S, _CD), + ((USER_NAME_TYPE, 0), (ACCESS_KEY_ID_TYPE, 0), (STATUS_TYPE, 0), (DATE_TYPE, 0)), +) + +ACCESS_KEY_METADATA_LIST_TYPE: StaticSchema = ( + 16, + n0, + _aKMLT, + 0, + (_me,), + ((ACCESS_KEY_METADATA, 0),), +) + +ACCOUNT_ALIAS_TYPE: StaticSchema = (3, n0, _aAT, 0) + +ACCOUNT_ALIAS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _aALT, + 0, + (_me,), + ((ACCOUNT_ALIAS_TYPE, 0),), +) + +ACCOUNT_ID_TYPE: StaticSchema = (3, n0, _aIT, 0) + +EXCEPTION_MESSAGE: StaticSchema = (3, n0, _EM, 0) + +ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION: StaticSchema = ( + 18, + n0, + _ANMODAE, + {_smit: _c, _sE: 400}, + (_M,), + ((EXCEPTION_MESSAGE, 0),), +) + +ACCOUNT_PROPERTY_KEY_TYPE: StaticSchema = (3, n0, _aPKT, 0) + +ACCOUNT_PROPERTY_VALUE_TYPE: StaticSchema = (3, n0, _aPVT, 0) + +ACCOUNT_PROPERTIES_MAP_TYPE: StaticSchema = ( + 17, + n0, + _aPMT, + 0, + (_k, _v), + ((ACCOUNT_PROPERTY_KEY_TYPE, 0), (ACCOUNT_PROPERTY_VALUE_TYPE, 0)), +) + +REPLACEMENT_VALUE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _rVLT, + 0, + (_me,), + ((STRING_TYPE, 0),), +) + +REPLACEMENT_VALUE_ENTRY: StaticSchema = ( + 18, + n0, + _RVE, + 0, + (_V,), + ((REPLACEMENT_VALUE_LIST_TYPE, 1),), +) + +MAP_STRING_REPLACEMENT_VALUE_ENTRY: StaticSchema = ( + 17, + n0, + _mSRVE, + 0, + (_k, _v), + ((STRING_TYPE, 0), (REPLACEMENT_VALUE_ENTRY, 0)), +) + +ARN_TYPE: StaticSchema = (3, n0, _aT, 0) + +ACQUIRE_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _ARI, + {_sSI: _cARR, _s: None}, + (_TA, _TMV, _RV), + ((ARN_TYPE, 1), (INTEGER_TYPE, 0), (MAP_STRING_REPLACEMENT_VALUE_ENTRY, 0)), +) + +POLICY_DOCUMENT_TYPE: StaticSchema = (3, n0, _pDT, 0) + +ROLE_DESCRIPTION_TYPE: StaticSchema = (3, n0, _rDT, 0) + +ROLE_MAX_SESSION_DURATION_TYPE: StaticSchema = (7, n0, _rMSDT, 0) + +PATH_TYPE: StaticSchema = (3, n0, _pT, 0) + +PERMISSIONS_BOUNDARY_ATTACHMENT_TYPE: StaticSchema = ( + 14, + n0, + _PBAT, + 0, + (_P,), + ((-1, {_sV: _PBP}),), +) + +ATTACHED_PERMISSIONS_BOUNDARY: StaticSchema = ( + 18, + n0, + _APB, + 0, + (_PBT, _PBA), + ((PERMISSIONS_BOUNDARY_ATTACHMENT_TYPE, 0), (ARN_TYPE, 0)), +) + +ID_TYPE: StaticSchema = (3, n0, _iTd, 0) + +ROLE_LAST_USED: StaticSchema = ( + 18, + n0, + _RLU, + 0, + (_LUD, _R), + ((DATE_TYPE, 0), (STRING_TYPE, 0)), +) + +ROLE_NAME_TYPE: StaticSchema = (3, n0, _rNT, 0) + +SOURCE_ROLE_TEMPLATE: StaticSchema = ( + 18, + n0, + _SRT, + 0, + (_TA, _TMV), + ((ARN_TYPE, 1), (INTEGER_TYPE, 1)), +) + +TAG_KEY_TYPE: StaticSchema = (3, n0, _tKT, 0) + +TAG_VALUE_TYPE: StaticSchema = (3, n0, _tVT, 0) + +TAG: StaticSchema = (18, n0, _T, 0, (_K, _Va), ((TAG_KEY_TYPE, 1), (TAG_VALUE_TYPE, 1))) + +TAG_LIST_TYPE: StaticSchema = (16, n0, _tLT, 0, (_me,), ((TAG, 0),)) + +ROLE: StaticSchema = ( + 18, + n0, + _Ro, + 0, + (_Pa, _RN, _RI, _Ar, _CD, _ARPD, _D, _MSD, _PB, _Ta, _RLU, _SRT), + ( + (PATH_TYPE, 1), + (ROLE_NAME_TYPE, 1), + (ID_TYPE, 1), + (ARN_TYPE, 1), + (DATE_TYPE, 1), + (POLICY_DOCUMENT_TYPE, 0), + (ROLE_DESCRIPTION_TYPE, 0), + (ROLE_MAX_SESSION_DURATION_TYPE, 0), + (ATTACHED_PERMISSIONS_BOUNDARY, 0), + (TAG_LIST_TYPE, 0), + (ROLE_LAST_USED, 0), + (SOURCE_ROLE_TEMPLATE, 0), + ), +) + +ACQUIRE_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _ARO, + {_sSI: _cARRo, _smi: None}, + (_Ro,), + ((ROLE, 1),), +) + +ENTITY_ALREADY_EXISTS_MESSAGE: StaticSchema = (3, n0, _eAEM, 0) + +ENTITY_ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _EAEE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "EntityAlreadyExists", "httpResponseCode": 409} + ), + }, + (_m,), + ((ENTITY_ALREADY_EXISTS_MESSAGE, 0),), +) + +INVALID_INPUT_MESSAGE: StaticSchema = (3, n0, _iIM, 0) + +INVALID_INPUT_EXCEPTION: StaticSchema = ( + 18, + n0, + _IIE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidInput", "httpResponseCode": 400}), + }, + (_m,), + ((INVALID_INPUT_MESSAGE, 0),), +) + +LIMIT_EXCEEDED_MESSAGE: StaticSchema = (3, n0, _lEM, 0) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "LimitExceeded", "httpResponseCode": 409}), + }, + (_m,), + ((LIMIT_EXCEEDED_MESSAGE, 0),), +) + +MALFORMED_POLICY_DOCUMENT_MESSAGE: StaticSchema = (3, n0, _mPDM, 0) + +MALFORMED_POLICY_DOCUMENT_EXCEPTION: StaticSchema = ( + 18, + n0, + _MPDE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "MalformedPolicyDocument", "httpResponseCode": 400} + ), + }, + (_m,), + ((MALFORMED_POLICY_DOCUMENT_MESSAGE, 0),), +) + +NAME_CONFLICT_MESSAGE: StaticSchema = (3, n0, _nCM, 0) + +NAME_CONFLICT_EXCEPTION: StaticSchema = ( + 18, + n0, + _NCE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "NameConflict", "httpResponseCode": 409}), + }, + (_m,), + ((NAME_CONFLICT_MESSAGE, 0),), +) + +ROLE_MODIFIED_MESSAGE: StaticSchema = (3, n0, _rMM, 0) + +ROLE_MODIFIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _RME, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "RoleModified", "httpResponseCode": 409}), + }, + (_m,), + ((ROLE_MODIFIED_MESSAGE, 0),), +) + +ROLE_TEMPLATE_DISABLED_MESSAGE: StaticSchema = (3, n0, _rTDM, 0) + +ROLE_TEMPLATE_DISABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _RTDE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "RoleTemplateDisabled", "httpResponseCode": 400} + ), + }, + (_m,), + ((ROLE_TEMPLATE_DISABLED_MESSAGE, 0),), +) + +ACQUIRE_ROLE: StaticOperationSchema = ( + 23, + n0, + _AR, + 0, + ACQUIRE_ROLE_INPUT, + ACQUIRE_ROLE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NAME_CONFLICT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + ROLE_MODIFIED_EXCEPTION, + ROLE_TEMPLATE_DISABLED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +ACTION_NAME_TYPE: StaticSchema = (3, n0, _ANT, 0) + +ACTION_NAME_LIST_TYPE: StaticSchema = ( + 16, + n0, + _ANLT, + 0, + (_me,), + ((ACTION_NAME_TYPE, 0),), +) + +CLIENT_ID_TYPE: StaticSchema = (3, n0, _cIDT, 0) + +ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _ACIDTOIDCPI, + {_sSI: _cACIDTOIDCPR, _s: None}, + (_OIDCPA, _CID), + ((ARN_TYPE, 1), (CLIENT_ID_TYPE, 1)), +) + +ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _ACIDTOIDCPO, + {_sSI: _sU, _smi: None}, +) + +ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _ACIDTOIDCP, + 0, + ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_INPUT, + ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +INSTANCE_PROFILE_NAME_TYPE: StaticSchema = (3, n0, _iPNT, 0) + +ADD_ROLE_TO_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _ARTIPI, + {_sSI: _cARTIPR, _s: None}, + (_IPN, _RN), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (ROLE_NAME_TYPE, 1)), +) + +ADD_ROLE_TO_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _ARTIPO, + {_sSI: _sU, _smi: None}, +) + +UNMODIFIABLE_ENTITY_MESSAGE: StaticSchema = (3, n0, _uEM, 0) + +UNMODIFIABLE_ENTITY_EXCEPTION: StaticSchema = ( + 18, + n0, + _UEE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "UnmodifiableEntity", "httpResponseCode": 400}), + }, + (_m,), + ((UNMODIFIABLE_ENTITY_MESSAGE, 0),), +) + +ADD_ROLE_TO_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _ARTIP, + 0, + ADD_ROLE_TO_INSTANCE_PROFILE_INPUT, + ADD_ROLE_TO_INSTANCE_PROFILE_OUTPUT, + ( + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +GROUP_NAME_TYPE: StaticSchema = (3, n0, _gNT, 0) + +EXISTING_USER_NAME_TYPE: StaticSchema = (3, n0, _eUNT, 0) + +ADD_USER_TO_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _AUTGI, + {_sSI: _cAUTGR, _s: None}, + (_GN, _UN), + ((GROUP_NAME_TYPE, 1), (EXISTING_USER_NAME_TYPE, 1)), +) + +ADD_USER_TO_GROUP_OUTPUT: StaticSchema = (18, n0, _AUTGO, {_sSI: _sU, _smi: None}) + +ADD_USER_TO_GROUP: StaticOperationSchema = ( + 23, + n0, + _AUTG, + 0, + ADD_USER_TO_GROUP_INPUT, + ADD_USER_TO_GROUP_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +ALL_USERS: StaticSchema = (2, n0, _aU, 0) + +ARN_LIST_TYPE: StaticSchema = (16, n0, _ALT, 0, (_me,), ((ARN_TYPE, 0),)) + +ASSERTION_ENCRYPTION_MODE_TYPE: StaticSchema = ( + 14, + n0, + _aEMT, + 0, + (_Re, _Al), + ((-1, {_sV: _Re}), (-1, {_sV: _Al})), +) + +ASSIGNMENT_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _aST, + 0, + (_As, _U, _An), + ((-1, {_sV: _As}), (-1, {_sV: _U}), (-1, {_sV: _An})), +) + +ASSOCIATE_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _ADRIs, + {_sSI: _cADRRo, _s: None}, + (_DRI,), + ((DELEGATION_REQUEST_ID_TYPE, 1),), +) + +ASSOCIATE_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _ADROs, + {_sSI: _sU, _smi: None}, +) + +ASSOCIATE_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _ADRs, + 0, + ASSOCIATE_DELEGATION_REQUEST_INPUT, + ASSOCIATE_DELEGATION_REQUEST_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +POLICY_NAME_TYPE: StaticSchema = (3, n0, _pNT, 0) + +ATTACHED_POLICY: StaticSchema = ( + 18, + n0, + _AP, + 0, + (_PN, _PA), + ((POLICY_NAME_TYPE, 0), (ARN_TYPE, 0)), +) + +ATTACHED_POLICIES_LIST_TYPE: StaticSchema = ( + 16, + n0, + _aPLT, + 0, + (_me,), + ((ATTACHED_POLICY, 0),), +) + +ATTACH_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _AGPI, + {_sSI: _cAGPR, _s: None}, + (_GN, _PA), + ((GROUP_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +ATTACH_GROUP_POLICY_OUTPUT: StaticSchema = (18, n0, _AGPO, {_sSI: _sU, _smi: None}) + +POLICY_NOT_ATTACHABLE_MESSAGE: StaticSchema = (3, n0, _pNAM, 0) + +POLICY_NOT_ATTACHABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _PNAE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "PolicyNotAttachable", "httpResponseCode": 400} + ), + }, + (_m,), + ((POLICY_NOT_ATTACHABLE_MESSAGE, 0),), +) + +ATTACH_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _AGP, + 0, + ATTACH_GROUP_POLICY_INPUT, + ATTACH_GROUP_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + POLICY_NOT_ATTACHABLE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +ATTACHMENT_COUNT_TYPE: StaticSchema = (7, n0, _aCT, 0) + +ATTACHMENT_NAME: StaticSchema = (3, n0, _AN, 0) + +ATTACHMENT_TYPE: StaticSchema = ( + 14, + n0, + _AT, + 0, + (_USER, _GROUP, _ROLE), + ((-1, {_sV: _u}), (-1, {_sV: _g}), (-1, {_sV: _r})), +) + +ATTACH_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _ARPI, + {_sSI: _cARPR, _s: None}, + (_RN, _PA), + ((ROLE_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +ATTACH_ROLE_POLICY_OUTPUT: StaticSchema = (18, n0, _ARPO, {_sSI: _sU, _smi: None}) + +ATTACH_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _ARP, + 0, + ATTACH_ROLE_POLICY_INPUT, + ATTACH_ROLE_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + POLICY_NOT_ATTACHABLE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +ATTACH_USER_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _AUPI, + {_sSI: _cAUPR, _s: None}, + (_UN, _PA), + ((USER_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +ATTACH_USER_POLICY_OUTPUT: StaticSchema = (18, n0, _AUPO, {_sSI: _sU, _smi: None}) + +ATTACH_USER_POLICY: StaticOperationSchema = ( + 23, + n0, + _AUP, + 0, + ATTACH_USER_POLICY_INPUT, + ATTACH_USER_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + POLICY_NOT_ATTACHABLE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +AUTHENTICATION_CODE_TYPE: StaticSchema = (3, n0, _aCTu, 0) + +PASSWORD_TYPE: StaticSchema = (3, n0, _pTa, 4) + +CHANGE_PASSWORD_INPUT: StaticSchema = ( + 18, + n0, + _CPI, + {_sSI: _cCPR, _s: None}, + (_OP, _NP), + ((PASSWORD_TYPE, 1), (PASSWORD_TYPE, 1)), +) + +CHANGE_PASSWORD_OUTPUT: StaticSchema = (18, n0, _CPO, {_sSI: _sU, _smi: None}) + +ENTITY_TEMPORARILY_UNMODIFIABLE_MESSAGE: StaticSchema = (3, n0, _eTUM, 0) + +ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _ETUE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "EntityTemporarilyUnmodifiable", "httpResponseCode": 409} + ), + }, + (_m,), + ((ENTITY_TEMPORARILY_UNMODIFIABLE_MESSAGE, 0),), +) + +INVALID_USER_TYPE_MESSAGE: StaticSchema = (3, n0, _iUTM, 0) + +INVALID_USER_TYPE_EXCEPTION: StaticSchema = ( + 18, + n0, + _IUTE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidUserType", "httpResponseCode": 400}), + }, + (_m,), + ((INVALID_USER_TYPE_MESSAGE, 0),), +) + +PASSWORD_POLICY_VIOLATION_MESSAGE: StaticSchema = (3, n0, _pPVM, 0) + +PASSWORD_POLICY_VIOLATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _PPVE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "PasswordPolicyViolation", "httpResponseCode": 400} + ), + }, + (_m,), + ((PASSWORD_POLICY_VIOLATION_MESSAGE, 0),), +) + +CHANGE_PASSWORD: StaticOperationSchema = ( + 23, + n0, + _CP, + 0, + CHANGE_PASSWORD_INPUT, + CHANGE_PASSWORD_OUTPUT, + ( + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + INVALID_USER_TYPE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + PASSWORD_POLICY_VIOLATION_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_ACCESS_KEY_INPUT: StaticSchema = ( + 18, + n0, + _CAKI, + {_sSI: _cCAKR, _s: None}, + (_UN,), + ((EXISTING_USER_NAME_TYPE, 0),), +) + +CREATE_ACCESS_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _CAKO, + {_sSI: _cCAKRo, _smi: None}, + (_AK,), + ((ACCESS_KEY, 1),), +) + +CREATE_ACCESS_KEY: StaticOperationSchema = ( + 23, + n0, + _CAK, + 0, + CREATE_ACCESS_KEY_INPUT, + CREATE_ACCESS_KEY_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +CREATE_ACCOUNT_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _CAAI, + {_sSI: _cCAAR, _s: None}, + (_AA,), + ((ACCOUNT_ALIAS_TYPE, 1),), +) + +CREATE_ACCOUNT_ALIAS_OUTPUT: StaticSchema = (18, n0, _CAAO, {_sSI: _sU, _smi: None}) + +CREATE_ACCOUNT_ALIAS: StaticOperationSchema = ( + 23, + n0, + _CAA, + 0, + CREATE_ACCOUNT_ALIAS_INPUT, + CREATE_ACCOUNT_ALIAS_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELEGATION_REQUEST_DESCRIPTION_TYPE: StaticSchema = (3, n0, _dRDT, 0) + +NOTIFICATION_CHANNEL_TYPE: StaticSchema = (3, n0, _nCT, 0) + +BOOLEAN_TYPE: StaticSchema = (2, n0, _bT, {_smithy: False}) + +POLICY_PARAMETER_NAME_TYPE: StaticSchema = (3, n0, _pPNT, 0) + +POLICY_PARAMETER_TYPE_ENUM: StaticSchema = ( + 14, + n0, + _PPTE, + 0, + (_STRING, _SL_), + ((-1, {_sV: _st}), (-1, {_sV: _sL})), +) + +POLICY_PARAMETER_VALUE_TYPE: StaticSchema = (3, n0, _pPVT, 0) + +POLICY_PARAMETER_VALUES_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pPVLT, + 0, + (_me,), + ((POLICY_PARAMETER_VALUE_TYPE, 0),), +) + +POLICY_PARAMETER: StaticSchema = ( + 18, + n0, + _PP, + 0, + (_N, _V, _Ty), + ( + (POLICY_PARAMETER_NAME_TYPE, 0), + (POLICY_PARAMETER_VALUES_LIST_TYPE, 0), + (POLICY_PARAMETER_TYPE_ENUM, 0), + ), +) + +POLICY_PARAMETER_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pPLT, + 0, + (_me,), + ((POLICY_PARAMETER, 0),), +) + +DELEGATION_PERMISSION: StaticSchema = ( + 18, + n0, + _DP, + 0, + (_PTA, _Par), + ((ARN_TYPE, 0), (POLICY_PARAMETER_LIST_TYPE, 0)), +) + +REDIRECT_URL_TYPE: StaticSchema = (3, n0, _rUT, 0) + +REQUEST_MESSAGE_TYPE: StaticSchema = (3, n0, _rMT, 0) + +REQUESTOR_WORKFLOW_ID_TYPE: StaticSchema = (3, n0, _rWIT, 0) + +SESSION_DURATION_TYPE: StaticSchema = (7, n0, _sDT, 0) + +CREATE_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _CDRI, + {_sSI: _cCDRR, _s: None}, + (_OAI, _D, _Pe, _RM, _RWI, _RU, _NC, _SD, _OSBO), + ( + (ACCOUNT_ID_TYPE, 0), + (DELEGATION_REQUEST_DESCRIPTION_TYPE, 1), + (DELEGATION_PERMISSION, 1), + (REQUEST_MESSAGE_TYPE, 0), + (REQUESTOR_WORKFLOW_ID_TYPE, 1), + (REDIRECT_URL_TYPE, 0), + (NOTIFICATION_CHANNEL_TYPE, 1), + (SESSION_DURATION_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + ), +) + +CONSOLE_DEEP_LINK_TYPE: StaticSchema = (3, n0, _cDLT, 0) + +CREATE_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _CDRO, + {_sSI: _cCDRRo, _smi: None}, + (_CDL, _DRI), + ((CONSOLE_DEEP_LINK_TYPE, 0), (DELEGATION_REQUEST_ID_TYPE, 0)), +) + +CREATE_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _CDR, + 0, + CREATE_DELEGATION_REQUEST_INPUT, + CREATE_DELEGATION_REQUEST_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CGI, + {_sSI: _cCGR, _s: None}, + (_Pa, _GN), + ((PATH_TYPE, 0), (GROUP_NAME_TYPE, 1)), +) + +GROUP: StaticSchema = ( + 18, + n0, + _G, + 0, + (_Pa, _GN, _GI, _Ar, _CD), + ((PATH_TYPE, 1), (GROUP_NAME_TYPE, 1), (ID_TYPE, 1), (ARN_TYPE, 1), (DATE_TYPE, 1)), +) + +CREATE_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CGO, + {_sSI: _cCGRo, _smi: None}, + (_G,), + ((GROUP, 1),), +) + +CREATE_GROUP: StaticOperationSchema = ( + 23, + n0, + _CG, + 0, + CREATE_GROUP_INPUT, + CREATE_GROUP_OUTPUT, + ( + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _CIPI, + {_sSI: _cCIPR, _s: None}, + (_IPN, _Pa, _Ta), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (PATH_TYPE, 0), (TAG_LIST_TYPE, 0)), +) + +ROLE_LIST_TYPE: StaticSchema = (16, n0, _rLT, 0, (_me,), ((ROLE, 0),)) + +INSTANCE_PROFILE: StaticSchema = ( + 18, + n0, + _IP, + 0, + (_Pa, _IPN, _IPI, _Ar, _CD, _Rol, _Ta), + ( + (PATH_TYPE, 1), + (INSTANCE_PROFILE_NAME_TYPE, 1), + (ID_TYPE, 1), + (ARN_TYPE, 1), + (DATE_TYPE, 1), + (ROLE_LIST_TYPE, 1), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _CIPO, + {_sSI: _cCIPRo, _smi: None}, + (_IP,), + ((INSTANCE_PROFILE, 1),), +) + +CREATE_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _CIP, + 0, + CREATE_INSTANCE_PROFILE_INPUT, + CREATE_INSTANCE_PROFILE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_LOGIN_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _CLPI, + {_sSI: _cCLPR, _s: None}, + (_UN, _Pas, _PRR), + ((USER_NAME_TYPE, 0), (PASSWORD_TYPE, 0), (BOOLEAN_TYPE, {_smithy: False})), +) + +LOGIN_PROFILE: StaticSchema = ( + 18, + n0, + _LP, + 0, + (_UN, _CD, _PRR), + ((USER_NAME_TYPE, 1), (DATE_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False})), +) + +CREATE_LOGIN_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _CLPO, + {_sSI: _cCLPRo, _smi: None}, + (_LP,), + ((LOGIN_PROFILE, 1),), +) + +CREATE_LOGIN_PROFILE: StaticOperationSchema = ( + 23, + n0, + _CLP, + 0, + CREATE_LOGIN_PROFILE_INPUT, + CREATE_LOGIN_PROFILE_OUTPUT, + ( + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + PASSWORD_POLICY_VIOLATION_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CLIENT_ID_LIST_TYPE: StaticSchema = (16, n0, _cIDLT, 0, (_me,), ((CLIENT_ID_TYPE, 0),)) + +THUMBPRINT_TYPE: StaticSchema = (3, n0, _tT, 0) + +THUMBPRINT_LIST_TYPE: StaticSchema = (16, n0, _tLTh, 0, (_me,), ((THUMBPRINT_TYPE, 0),)) + +OPEN_ID_CONNECT_PROVIDER_URL_TYPE: StaticSchema = (3, n0, _OIDCPUT, 0) + +CREATE_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _COIDCPI, + {_sSI: _cCOIDCPR, _s: None}, + (_Ur, _CIDL, _TL, _Ta), + ( + (OPEN_ID_CONNECT_PROVIDER_URL_TYPE, 1), + (CLIENT_ID_LIST_TYPE, 0), + (THUMBPRINT_LIST_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _COIDCPO, + {_sSI: _cCOIDCPRo, _smi: None}, + (_OIDCPA, _Ta), + ((ARN_TYPE, 0), (TAG_LIST_TYPE, 0)), +) + +OPEN_ID_IDP_COMMUNICATION_ERROR_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _oIICEEM, 0) + +OPEN_ID_IDP_COMMUNICATION_ERROR_EXCEPTION: StaticSchema = ( + 18, + n0, + _OIICEE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "OpenIdIdpCommunicationError", "httpResponseCode": 400} + ), + }, + (_m,), + ((OPEN_ID_IDP_COMMUNICATION_ERROR_EXCEPTION_MESSAGE, 0),), +) + +CREATE_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _COIDCP, + 0, + CREATE_OPEN_ID_CONNECT_PROVIDER_INPUT, + CREATE_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + OPEN_ID_IDP_COMMUNICATION_ERROR_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +POLICY_DESCRIPTION_TYPE: StaticSchema = (3, n0, _pDTo, 0) + +POLICY_PATH_TYPE: StaticSchema = (3, n0, _pPT, 0) + +CREATE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _CPIr, + {_sSI: _cCPRo, _s: None}, + (_PN, _Pa, _PD, _D, _Ta), + ( + (POLICY_NAME_TYPE, 1), + (POLICY_PATH_TYPE, 0), + (POLICY_DOCUMENT_TYPE, 1), + (POLICY_DESCRIPTION_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +POLICY_VERSION_ID_TYPE: StaticSchema = (3, n0, _pVIT, 0) + +POLICY: StaticSchema = ( + 18, + n0, + _P, + 0, + (_PN, _PI, _Ar, _Pa, _DVI, _AC, _PBUC, _IA, _D, _CD, _UD, _Ta), + ( + (POLICY_NAME_TYPE, 0), + (ID_TYPE, 0), + (ARN_TYPE, 0), + (POLICY_PATH_TYPE, 0), + (POLICY_VERSION_ID_TYPE, 0), + (ATTACHMENT_COUNT_TYPE, 0), + (ATTACHMENT_COUNT_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (POLICY_DESCRIPTION_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _CPOr, + {_sSI: _cCPRom, _smi: None}, + (_P,), + ((POLICY, 0),), +) + +CREATE_POLICY: StaticOperationSchema = ( + 23, + n0, + _CPr, + 0, + CREATE_POLICY_INPUT, + CREATE_POLICY_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_POLICY_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _CPVI, + {_sSI: _cCPVR, _s: None}, + (_PA, _PD, _SAD), + ((ARN_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False})), +) + +POLICY_VERSION: StaticSchema = ( + 18, + n0, + _PV, + 0, + (_Do, _VI, _IDV, _CD), + ( + (POLICY_DOCUMENT_TYPE, 0), + (POLICY_VERSION_ID_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (DATE_TYPE, 0), + ), +) + +CREATE_POLICY_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CPVO, + {_sSI: _cCPVRo, _smi: None}, + (_PV,), + ((POLICY_VERSION, 0),), +) + +CREATE_POLICY_VERSION: StaticOperationSchema = ( + 23, + n0, + _CPV, + 0, + CREATE_POLICY_VERSION_INPUT, + CREATE_POLICY_VERSION_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREATE_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _CRI, + {_sSI: _cCRR, _s: None}, + (_Pa, _RN, _ARPD, _D, _MSD, _PB, _Ta), + ( + (PATH_TYPE, 0), + (ROLE_NAME_TYPE, 1), + (POLICY_DOCUMENT_TYPE, 1), + (ROLE_DESCRIPTION_TYPE, 0), + (ROLE_MAX_SESSION_DURATION_TYPE, 0), + (ARN_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CRO, + {_sSI: _cCRRo, _smi: None}, + (_Ro,), + ((ROLE, 1),), +) + +CREATE_ROLE: StaticOperationSchema = ( + 23, + n0, + _CR, + 0, + CREATE_ROLE_INPUT, + CREATE_ROLE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +PRIVATE_KEY_TYPE: StaticSchema = (3, n0, _pKT, 4) + +SAML_PROVIDER_NAME_TYPE: StaticSchema = (3, n0, _SAMLPNT, 0) + +SAML_METADATA_DOCUMENT_TYPE: StaticSchema = (3, n0, _SAMLMDT, 0) + +CREATE_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _CSAMLPI, + {_sSI: _cCSAMLPR, _s: None}, + (_SAMLMD, _N, _Ta, _AEM, _APK), + ( + (SAML_METADATA_DOCUMENT_TYPE, 1), + (SAML_PROVIDER_NAME_TYPE, 1), + (TAG_LIST_TYPE, 0), + (ASSERTION_ENCRYPTION_MODE_TYPE, 0), + (PRIVATE_KEY_TYPE, 0), + ), +) + +CREATE_SAML_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _CSAMLPO, + {_sSI: _cCSAMLPRo, _smi: None}, + (_SAMLPA, _Ta), + ((ARN_TYPE, 0), (TAG_LIST_TYPE, 0)), +) + +CREATE_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _CSAMLP, + 0, + CREATE_SAML_PROVIDER_INPUT, + CREATE_SAML_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CUSTOM_SUFFIX_TYPE: StaticSchema = (3, n0, _cST, 0) + +CREATE_SERVICE_LINKED_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _CSLRI, + {_sSI: _cCSLRR, _s: None}, + (_AWSSN, _D, _CS), + ((GROUP_NAME_TYPE, 1), (ROLE_DESCRIPTION_TYPE, 0), (CUSTOM_SUFFIX_TYPE, 0)), +) + +CREATE_SERVICE_LINKED_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _CSLRO, + {_sSI: _cCSLRRo, _smi: None}, + (_Ro,), + ((ROLE, 0),), +) + +CREATE_SERVICE_LINKED_ROLE: StaticOperationSchema = ( + 23, + n0, + _CSLR, + 0, + CREATE_SERVICE_LINKED_ROLE_INPUT, + CREATE_SERVICE_LINKED_ROLE_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CREDENTIAL_AGE_DAYS: StaticSchema = (7, n0, _cAD, 0) + +SERVICE_NAME: StaticSchema = (3, n0, _sN, 0) + +CREATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT: StaticSchema = ( + 18, + n0, + _CSSCI, + {_sSI: _cCSSCR, _s: None}, + (_UN, _SN, _CAD), + ((USER_NAME_TYPE, 1), (SERVICE_NAME, 1), (CREDENTIAL_AGE_DAYS, 0)), +) + +SERVICE_CREDENTIAL_ALIAS: StaticSchema = (3, n0, _sCA, 0) + +SERVICE_CREDENTIAL_SECRET: StaticSchema = (3, n0, _sCS, 4) + +SERVICE_PASSWORD: StaticSchema = (3, n0, _sP, 4) + +SERVICE_SPECIFIC_CREDENTIAL_ID: StaticSchema = (3, n0, _sSCI, 0) + +SERVICE_USER_NAME: StaticSchema = (3, n0, _sUN, 0) + +SERVICE_SPECIFIC_CREDENTIAL: StaticSchema = ( + 18, + n0, + _SSC, + 0, + (_CD, _ED, _SN, _SUN, _SP, _SCA, _SCS, _SSCI, _UN, _S), + ( + (DATE_TYPE, 1), + (DATE_TYPE, 0), + (SERVICE_NAME, 1), + (SERVICE_USER_NAME, {_smithy: _v_}), + (SERVICE_PASSWORD, {_smithy: _v_}), + (SERVICE_CREDENTIAL_ALIAS, 0), + (SERVICE_CREDENTIAL_SECRET, 0), + (SERVICE_SPECIFIC_CREDENTIAL_ID, 1), + (USER_NAME_TYPE, 1), + (STATUS_TYPE, 1), + ), +) + +CREATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _CSSCO, + {_sSI: _cCSSCRo, _smi: None}, + (_SSC,), + ((SERVICE_SPECIFIC_CREDENTIAL, 0),), +) + +SERVICE_NOT_SUPPORTED_MESSAGE: StaticSchema = (3, n0, _sNSM, 0) + +SERVICE_NOT_SUPPORTED_EXCEPTION: StaticSchema = ( + 18, + n0, + _SNSE, + { + _smit: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "NotSupportedService", "httpResponseCode": 404} + ), + }, + (_m,), + ((SERVICE_NOT_SUPPORTED_MESSAGE, 0),), +) + +CREATE_SERVICE_SPECIFIC_CREDENTIAL: StaticOperationSchema = ( + 23, + n0, + _CSSC, + 0, + CREATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT, + CREATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_NOT_SUPPORTED_EXCEPTION, + ), +) + +CREATE_USER_INPUT: StaticSchema = ( + 18, + n0, + _CUI, + {_sSI: _cCUR, _s: None}, + (_Pa, _UN, _PB, _Ta), + ((PATH_TYPE, 0), (USER_NAME_TYPE, 1), (ARN_TYPE, 0), (TAG_LIST_TYPE, 0)), +) + +USER: StaticSchema = ( + 18, + n0, + _Us, + 0, + (_Pa, _UN, _UI, _Ar, _CD, _PLU, _PB, _Ta), + ( + (PATH_TYPE, 1), + (USER_NAME_TYPE, 1), + (ID_TYPE, 1), + (ARN_TYPE, 1), + (DATE_TYPE, 1), + (DATE_TYPE, 0), + (ATTACHED_PERMISSIONS_BOUNDARY, 0), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_USER_OUTPUT: StaticSchema = ( + 18, + n0, + _CUO, + {_sSI: _cCURo, _smi: None}, + (_Us,), + ((USER, 0),), +) + +CREATE_USER: StaticOperationSchema = ( + 23, + n0, + _CU, + 0, + CREATE_USER_INPUT, + CREATE_USER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +VIRTUAL_MFA_DEVICE_NAME: StaticSchema = (3, n0, _vMFADN, 0) + +CREATE_VIRTUAL_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _CVMFADI, + {_sSI: _cCVMFADR, _s: None}, + (_Pa, _VMFADN, _Ta), + ((PATH_TYPE, 0), (VIRTUAL_MFA_DEVICE_NAME, 1), (TAG_LIST_TYPE, 0)), +) + +BOOTSTRAP_DATUM: StaticSchema = (1, n0, _BD, 4) + +SERIAL_NUMBER_TYPE: StaticSchema = (3, n0, _sNTer, 0) + +VIRTUAL_MFA_DEVICE: StaticSchema = ( + 18, + n0, + _VMFAD, + 0, + (_SNer, _BSS, _QRCPNG, _Us, _EDn, _Ta), + ( + (SERIAL_NUMBER_TYPE, 1), + (BOOTSTRAP_DATUM, 0), + (BOOTSTRAP_DATUM, 0), + (USER, 0), + (DATE_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +CREATE_VIRTUAL_MFA_DEVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _CVMFADO, + {_sSI: _cCVMFADRo, _smi: None}, + (_VMFAD,), + ((VIRTUAL_MFA_DEVICE, 1),), +) + +CREATE_VIRTUAL_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _CVMFAD, + 0, + CREATE_VIRTUAL_MFA_DEVICE_INPUT, + CREATE_VIRTUAL_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DEACTIVATE_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _DMFADI, + {_sSI: _cDMFADR, _s: None}, + (_UN, _SNer), + ((EXISTING_USER_NAME_TYPE, 0), (SERIAL_NUMBER_TYPE, 1)), +) + +DEACTIVATE_MFA_DEVICE_OUTPUT: StaticSchema = (18, n0, _DMFADO, {_sSI: _sU, _smi: None}) + +DEACTIVATE_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _DMFAD, + 0, + DEACTIVATE_MFA_DEVICE_INPUT, + DEACTIVATE_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_ACCESS_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DAKI, + {_sSI: _cDAKR, _s: None}, + (_UN, _AKI), + ((EXISTING_USER_NAME_TYPE, 0), (ACCESS_KEY_ID_TYPE, 1)), +) + +DELETE_ACCESS_KEY_OUTPUT: StaticSchema = (18, n0, _DAKO, {_sSI: _sU, _smi: None}) + +DELETE_ACCESS_KEY: StaticOperationSchema = ( + 23, + n0, + _DAK, + 0, + DELETE_ACCESS_KEY_INPUT, + DELETE_ACCESS_KEY_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_ACCOUNT_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _DAAI, + {_sSI: _cDAAR, _s: None}, + (_AA,), + ((ACCOUNT_ALIAS_TYPE, 1),), +) + +DELETE_ACCOUNT_ALIAS_OUTPUT: StaticSchema = (18, n0, _DAAO, {_sSI: _sU, _smi: None}) + +DELETE_ACCOUNT_ALIAS: StaticOperationSchema = ( + 23, + n0, + _DAA, + 0, + DELETE_ACCOUNT_ALIAS_INPUT, + DELETE_ACCOUNT_ALIAS_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_ACCOUNT_PASSWORD_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DAPPI, + {_sSI: _sU, _s: None}, +) + +DELETE_ACCOUNT_PASSWORD_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _DAPPO, + {_sSI: _sU, _smi: None}, +) + +DELETE_ACCOUNT_PASSWORD_POLICY: StaticOperationSchema = ( + 23, + n0, + _DAPP, + 0, + DELETE_ACCOUNT_PASSWORD_POLICY_INPUT, + DELETE_ACCOUNT_PASSWORD_POLICY_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_CONFLICT_MESSAGE: StaticSchema = (3, n0, _dCM, 0) + +DELETE_CONFLICT_EXCEPTION: StaticSchema = ( + 18, + n0, + _DCE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "DeleteConflict", "httpResponseCode": 409}), + }, + (_m,), + ((DELETE_CONFLICT_MESSAGE, 0),), +) + +DELETE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DGI, + {_sSI: _cDGR, _s: None}, + (_GN,), + ((GROUP_NAME_TYPE, 1),), +) + +DELETE_GROUP_OUTPUT: StaticSchema = (18, n0, _DGO, {_sSI: _sU, _smi: None}) + +DELETE_GROUP: StaticOperationSchema = ( + 23, + n0, + _DG, + 0, + DELETE_GROUP_INPUT, + DELETE_GROUP_OUTPUT, + ( + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DGPI, + {_sSI: _cDGPR, _s: None}, + (_GN, _PN), + ((GROUP_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +DELETE_GROUP_POLICY_OUTPUT: StaticSchema = (18, n0, _DGPO, {_sSI: _sU, _smi: None}) + +DELETE_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _DGP, + 0, + DELETE_GROUP_POLICY_INPUT, + DELETE_GROUP_POLICY_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _DIPI, + {_sSI: _cDIPR, _s: None}, + (_IPN,), + ((INSTANCE_PROFILE_NAME_TYPE, 1),), +) + +DELETE_INSTANCE_PROFILE_OUTPUT: StaticSchema = (18, n0, _DIPO, {_sSI: _sU, _smi: None}) + +DELETE_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _DIP, + 0, + DELETE_INSTANCE_PROFILE_INPUT, + DELETE_INSTANCE_PROFILE_OUTPUT, + ( + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_LOGIN_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _DLPI, + {_sSI: _cDLPR, _s: None}, + (_UN,), + ((USER_NAME_TYPE, 0),), +) + +DELETE_LOGIN_PROFILE_OUTPUT: StaticSchema = (18, n0, _DLPO, {_sSI: _sU, _smi: None}) + +DELETE_LOGIN_PROFILE: StaticOperationSchema = ( + 23, + n0, + _DLP, + 0, + DELETE_LOGIN_PROFILE_INPUT, + DELETE_LOGIN_PROFILE_OUTPUT, + ( + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _DOIDCPI, + {_sSI: _cDOIDCPR, _s: None}, + (_OIDCPA,), + ((ARN_TYPE, 1),), +) + +DELETE_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _DOIDCPO, + {_sSI: _sU, _smi: None}, +) + +DELETE_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _DOIDCP, + 0, + DELETE_OPEN_ID_CONNECT_PROVIDER_INPUT, + DELETE_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DPI, + {_sSI: _cDPR, _s: None}, + (_PA,), + ((ARN_TYPE, 1),), +) + +DELETE_POLICY_OUTPUT: StaticSchema = (18, n0, _DPO, {_sSI: _sU, _smi: None}) + +DELETE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DPe, + 0, + DELETE_POLICY_INPUT, + DELETE_POLICY_OUTPUT, + ( + DELETE_CONFLICT_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_POLICY_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _DPVI, + {_sSI: _cDPVR, _s: None}, + (_PA, _VI), + ((ARN_TYPE, 1), (POLICY_VERSION_ID_TYPE, 1)), +) + +DELETE_POLICY_VERSION_OUTPUT: StaticSchema = (18, n0, _DPVO, {_sSI: _sU, _smi: None}) + +DELETE_POLICY_VERSION: StaticOperationSchema = ( + 23, + n0, + _DPV, + 0, + DELETE_POLICY_VERSION_INPUT, + DELETE_POLICY_VERSION_OUTPUT, + ( + DELETE_CONFLICT_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _DRIe, + {_sSI: _cDRR, _s: None}, + (_RN,), + ((ROLE_NAME_TYPE, 1),), +) + +DELETE_ROLE_OUTPUT: StaticSchema = (18, n0, _DRO, {_sSI: _sU, _smi: None}) + +DELETE_ROLE: StaticOperationSchema = ( + 23, + n0, + _DR, + 0, + DELETE_ROLE_INPUT, + DELETE_ROLE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +DELETE_ROLE_PERMISSIONS_BOUNDARY_INPUT: StaticSchema = ( + 18, + n0, + _DRPBI, + {_sSI: _cDRPBR, _s: None}, + (_RN,), + ((ROLE_NAME_TYPE, 1),), +) + +DELETE_ROLE_PERMISSIONS_BOUNDARY_OUTPUT: StaticSchema = ( + 18, + n0, + _DRPBO, + {_sSI: _sU, _smi: None}, +) + +DELETE_ROLE_PERMISSIONS_BOUNDARY: StaticOperationSchema = ( + 23, + n0, + _DRPB, + 0, + DELETE_ROLE_PERMISSIONS_BOUNDARY_INPUT, + DELETE_ROLE_PERMISSIONS_BOUNDARY_OUTPUT, + ( + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +DELETE_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DRPI, + {_sSI: _cDRPR, _s: None}, + (_RN, _PN), + ((ROLE_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +DELETE_ROLE_POLICY_OUTPUT: StaticSchema = (18, n0, _DRPO, {_sSI: _sU, _smi: None}) + +DELETE_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DRP, + 0, + DELETE_ROLE_POLICY_INPUT, + DELETE_ROLE_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +DELETE_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _DSAMLPI, + {_sSI: _cDSAMLPR, _s: None}, + (_SAMLPA,), + ((ARN_TYPE, 1),), +) + +DELETE_SAML_PROVIDER_OUTPUT: StaticSchema = (18, n0, _DSAMLPO, {_sSI: _sU, _smi: None}) + +DELETE_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _DSAMLP, + 0, + DELETE_SAML_PROVIDER_INPUT, + DELETE_SAML_PROVIDER_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +SERVER_CERTIFICATE_NAME_TYPE: StaticSchema = (3, n0, _sCNT, 0) + +DELETE_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _DSCI, + {_sSI: _cDSCR, _s: None}, + (_SCN,), + ((SERVER_CERTIFICATE_NAME_TYPE, 1),), +) + +DELETE_SERVER_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _DSC, + 0, + DELETE_SERVER_CERTIFICATE_INPUT, + DELETE_SERVER_CERTIFICATE_OUTPUT, + ( + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_SERVICE_LINKED_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _DSLRI, + {_sSI: _cDSLRR, _s: None}, + (_RN,), + ((ROLE_NAME_TYPE, 1),), +) + +DELETION_TASK_ID_TYPE: StaticSchema = (3, n0, _DTIT, 0) + +DELETE_SERVICE_LINKED_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSLRO, + {_sSI: _cDSLRRo, _smi: None}, + (_DTI,), + ((DELETION_TASK_ID_TYPE, 1),), +) + +DELETE_SERVICE_LINKED_ROLE: StaticOperationSchema = ( + 23, + n0, + _DSLR, + 0, + DELETE_SERVICE_LINKED_ROLE_INPUT, + DELETE_SERVICE_LINKED_ROLE_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_SERVICE_SPECIFIC_CREDENTIAL_INPUT: StaticSchema = ( + 18, + n0, + _DSSCI, + {_sSI: _cDSSCR, _s: None}, + (_UN, _SSCI), + ((USER_NAME_TYPE, 0), (SERVICE_SPECIFIC_CREDENTIAL_ID, 1)), +) + +DELETE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_SERVICE_SPECIFIC_CREDENTIAL: StaticOperationSchema = ( + 23, + n0, + _DSSC, + 0, + DELETE_SERVICE_SPECIFIC_CREDENTIAL_INPUT, + DELETE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +CERTIFICATE_ID_TYPE: StaticSchema = (3, n0, _cIT, 0) + +DELETE_SIGNING_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _DSCIe, + {_sSI: _cDSCRo, _s: None}, + (_UN, _CI), + ((EXISTING_USER_NAME_TYPE, 0), (CERTIFICATE_ID_TYPE, 1)), +) + +DELETE_SIGNING_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCOe, + {_sSI: _sU, _smi: None}, +) + +DELETE_SIGNING_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _DSCe, + 0, + DELETE_SIGNING_CERTIFICATE_INPUT, + DELETE_SIGNING_CERTIFICATE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +PUBLIC_KEY_ID_TYPE: StaticSchema = (3, n0, _pKIT, 0) + +DELETE_SSH_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DSSHPKI, + {_sSI: _cDSSHPKR, _s: None}, + (_UN, _SSHPKI), + ((USER_NAME_TYPE, 1), (PUBLIC_KEY_ID_TYPE, 1)), +) + +DELETE_SSH_PUBLIC_KEY_OUTPUT: StaticSchema = (18, n0, _DSSHPKO, {_sSI: _sU, _smi: None}) + +DELETE_SSH_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _DSSHPK, + 0, + DELETE_SSH_PUBLIC_KEY_INPUT, + DELETE_SSH_PUBLIC_KEY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +DELETE_USER_INPUT: StaticSchema = ( + 18, + n0, + _DUI, + {_sSI: _cDUR, _s: None}, + (_UN,), + ((EXISTING_USER_NAME_TYPE, 1),), +) + +DELETE_USER_OUTPUT: StaticSchema = (18, n0, _DUO, {_sSI: _sU, _smi: None}) + +DELETE_USER: StaticOperationSchema = ( + 23, + n0, + _DU, + 0, + DELETE_USER_INPUT, + DELETE_USER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DELETE_USER_PERMISSIONS_BOUNDARY_INPUT: StaticSchema = ( + 18, + n0, + _DUPBI, + {_sSI: _cDUPBR, _s: None}, + (_UN,), + ((USER_NAME_TYPE, 1),), +) + +DELETE_USER_PERMISSIONS_BOUNDARY_OUTPUT: StaticSchema = ( + 18, + n0, + _DUPBO, + {_sSI: _sU, _smi: None}, +) + +DELETE_USER_PERMISSIONS_BOUNDARY: StaticOperationSchema = ( + 23, + n0, + _DUPB, + 0, + DELETE_USER_PERMISSIONS_BOUNDARY_INPUT, + DELETE_USER_PERMISSIONS_BOUNDARY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_USER_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DUPI, + {_sSI: _cDUPR, _s: None}, + (_UN, _PN), + ((EXISTING_USER_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +DELETE_USER_POLICY_OUTPUT: StaticSchema = (18, n0, _DUPO, {_sSI: _sU, _smi: None}) + +DELETE_USER_POLICY: StaticOperationSchema = ( + 23, + n0, + _DUP, + 0, + DELETE_USER_POLICY_INPUT, + DELETE_USER_POLICY_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +DELETE_VIRTUAL_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _DVMFADI, + {_sSI: _cDVMFADR, _s: None}, + (_SNer,), + ((SERIAL_NUMBER_TYPE, 1),), +) + +DELETE_VIRTUAL_MFA_DEVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _DVMFADO, + {_sSI: _sU, _smi: None}, +) + +DELETE_VIRTUAL_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _DVMFAD, + 0, + DELETE_VIRTUAL_MFA_DEVICE_INPUT, + DELETE_VIRTUAL_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + DELETE_CONFLICT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DETACH_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DGPIe, + {_sSI: _cDGPRo, _s: None}, + (_GN, _PA), + ((GROUP_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +DETACH_GROUP_POLICY_OUTPUT: StaticSchema = (18, n0, _DGPOe, {_sSI: _sU, _smi: None}) + +DETACH_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _DGPe, + 0, + DETACH_GROUP_POLICY_INPUT, + DETACH_GROUP_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DETACH_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DRPIe, + {_sSI: _cDRPRo, _s: None}, + (_RN, _PA), + ((ROLE_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +DETACH_ROLE_POLICY_OUTPUT: StaticSchema = (18, n0, _DRPOe, {_sSI: _sU, _smi: None}) + +DETACH_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DRPe, + 0, + DETACH_ROLE_POLICY_INPUT, + DETACH_ROLE_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +DETACH_USER_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DUPIe, + {_sSI: _cDUPRo, _s: None}, + (_UN, _PA), + ((USER_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +DETACH_USER_POLICY_OUTPUT: StaticSchema = (18, n0, _DUPOe, {_sSI: _sU, _smi: None}) + +DETACH_USER_POLICY: StaticOperationSchema = ( + 23, + n0, + _DUPe, + 0, + DETACH_USER_POLICY_INPUT, + DETACH_USER_POLICY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT: StaticSchema = ( + 18, + n0, + _DORCMI, + {_sSI: _cDORCMR, _s: None}, +) + +FEATURE_TYPE: StaticSchema = ( + 14, + n0, + _FT, + 0, + (_RCM, _RS), + ((-1, {_sV: _RCMo}), (-1, {_sV: _RSo})), +) + +FEATURES_LIST_TYPE: StaticSchema = (16, n0, _FLT, 0, (_me,), ((FEATURE_TYPE, 0),)) + +ORGANIZATION_ID_TYPE: StaticSchema = (3, n0, _OIT, 0) + +DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DORCMO, + {_sSI: _cDORCMRo, _smi: None}, + (_OI, _EF), + ((ORGANIZATION_ID_TYPE, 0), (FEATURES_LIST_TYPE, 0)), +) + +ORGANIZATION_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _ONFE, + {_smit: _c, _sE: 400}, + (_M,), + ((EXCEPTION_MESSAGE, 0),), +) + +ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION: StaticSchema = ( + 18, + n0, + _ONIAFME, + {_smit: _c, _sE: 400}, + (_M,), + ((EXCEPTION_MESSAGE, 0),), +) + +SERVICE_ACCESS_NOT_ENABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _SANEE, + {_smit: _c, _sE: 400}, + (_M,), + ((EXCEPTION_MESSAGE, 0),), +) + +DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT: StaticOperationSchema = ( + 23, + n0, + _DORCM, + 0, + DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT, + DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT, + ( + ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION, + ORGANIZATION_NOT_FOUND_EXCEPTION, + ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION, + SERVICE_ACCESS_NOT_ENABLED_EXCEPTION, + ), +) + +DISABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DORSI, + {_sSI: _cDORSR, _s: None}, +) + +DISABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DORSO, + {_sSI: _cDORSRo, _smi: None}, + (_OI, _EF), + ((ORGANIZATION_ID_TYPE, 0), (FEATURES_LIST_TYPE, 0)), +) + +DISABLE_ORGANIZATIONS_ROOT_SESSIONS: StaticOperationSchema = ( + 23, + n0, + _DORS, + 0, + DISABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT, + DISABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT, + ( + ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION, + ORGANIZATION_NOT_FOUND_EXCEPTION, + ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION, + SERVICE_ACCESS_NOT_ENABLED_EXCEPTION, + ), +) + +DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT: StaticSchema = ( + 18, + n0, + _DOWIFI, + {_sSI: _sU, _s: None}, +) + +DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DOWIFO, + {_sSI: _sU, _smi: None}, +) + +FEATURE_DISABLED_MESSAGE: StaticSchema = (3, n0, _FDM, 0) + +FEATURE_DISABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _FDE, + { + _smit: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "FeatureDisabled", "httpResponseCode": 404}), + }, + (_m,), + ((FEATURE_DISABLED_MESSAGE, 0),), +) + +DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION: StaticOperationSchema = ( + 23, + n0, + _DOWIF, + 0, + DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT, + DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT, + (FEATURE_DISABLED_EXCEPTION,), +) + +ENABLE_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _EMFADI, + {_sSI: _cEMFADR, _s: None}, + (_UN, _SNer, _ACu, _ACut), + ( + (EXISTING_USER_NAME_TYPE, 1), + (SERIAL_NUMBER_TYPE, 1), + (AUTHENTICATION_CODE_TYPE, 1), + (AUTHENTICATION_CODE_TYPE, 1), + ), +) + +ENABLE_MFA_DEVICE_OUTPUT: StaticSchema = (18, n0, _EMFADO, {_sSI: _sU, _smi: None}) + +INVALID_AUTHENTICATION_CODE_MESSAGE: StaticSchema = (3, n0, _iACM, 0) + +INVALID_AUTHENTICATION_CODE_EXCEPTION: StaticSchema = ( + 18, + n0, + _IACE, + { + _smit: _c, + _sE: 403, + _aQE: MappingProxyType( + {"code": "InvalidAuthenticationCode", "httpResponseCode": 403} + ), + }, + (_m,), + ((INVALID_AUTHENTICATION_CODE_MESSAGE, 0),), +) + +ENABLE_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _EMFAD, + 0, + ENABLE_MFA_DEVICE_INPUT, + ENABLE_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + INVALID_AUTHENTICATION_CODE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +CALLER_IS_NOT_MANAGEMENT_ACCOUNT_EXCEPTION: StaticSchema = ( + 18, + n0, + _CINMAE, + {_smit: _c, _sE: 400}, + (_M,), + ((EXCEPTION_MESSAGE, 0),), +) + +ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT: StaticSchema = ( + 18, + n0, + _EORCMI, + {_sSI: _cEORCMR, _s: None}, +) + +ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _EORCMO, + {_sSI: _cEORCMRo, _smi: None}, + (_OI, _EF), + ((ORGANIZATION_ID_TYPE, 0), (FEATURES_LIST_TYPE, 0)), +) + +ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT: StaticOperationSchema = ( + 23, + n0, + _EORCM, + 0, + ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT, + ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT, + ( + ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION, + CALLER_IS_NOT_MANAGEMENT_ACCOUNT_EXCEPTION, + ORGANIZATION_NOT_FOUND_EXCEPTION, + ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION, + SERVICE_ACCESS_NOT_ENABLED_EXCEPTION, + ), +) + +ENABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT: StaticSchema = ( + 18, + n0, + _EORSI, + {_sSI: _cEORSR, _s: None}, +) + +ENABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _EORSO, + {_sSI: _cEORSRo, _smi: None}, + (_OI, _EF), + ((ORGANIZATION_ID_TYPE, 0), (FEATURES_LIST_TYPE, 0)), +) + +ENABLE_ORGANIZATIONS_ROOT_SESSIONS: StaticOperationSchema = ( + 23, + n0, + _EORS, + 0, + ENABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT, + ENABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT, + ( + ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION, + CALLER_IS_NOT_MANAGEMENT_ACCOUNT_EXCEPTION, + ORGANIZATION_NOT_FOUND_EXCEPTION, + ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION, + SERVICE_ACCESS_NOT_ENABLED_EXCEPTION, + ), +) + +ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT: StaticSchema = ( + 18, + n0, + _EOWIFI, + {_sSI: _sU, _s: None}, +) + +ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT: StaticSchema = ( + 18, + n0, + _EOWIFO, + {_sSI: _cEOWIFR, _smi: None}, + (_II,), + ((STRING_TYPE, 0),), +) + +FEATURE_ENABLED_MESSAGE: StaticSchema = (3, n0, _FEM, 0) + +FEATURE_ENABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _FEE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "FeatureEnabled", "httpResponseCode": 409}), + }, + (_m,), + ((FEATURE_ENABLED_MESSAGE, 0),), +) + +ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION: StaticOperationSchema = ( + 23, + n0, + _EOWIF, + 0, + ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT, + ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT, + (FEATURE_ENABLED_EXCEPTION,), +) + +GENERATE_CREDENTIAL_REPORT_INPUT: StaticSchema = (18, n0, _GCRI, {_sSI: _sU, _s: None}) + +REPORT_STATE_DESCRIPTION_TYPE: StaticSchema = (3, n0, _RSDT, 0) + +REPORT_STATE_TYPE: StaticSchema = ( + 14, + n0, + _RST, + 0, + (_STARTED, _INPROGRESS, _COMPLETE), + ((-1, {_sV: _STARTED}), (-1, {_sV: _INPROGRESS}), (-1, {_sV: _COMPLETE})), +) + +GENERATE_CREDENTIAL_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _GCRO, + {_sSI: _cGCRR, _smi: None}, + (_St, _D), + ((REPORT_STATE_TYPE, 0), (REPORT_STATE_DESCRIPTION_TYPE, 0)), +) + +GENERATE_CREDENTIAL_REPORT: StaticOperationSchema = ( + 23, + n0, + _GCR, + 0, + GENERATE_CREDENTIAL_REPORT_INPUT, + GENERATE_CREDENTIAL_REPORT_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +ORGANIZATIONS_POLICY_ID_TYPE: StaticSchema = (3, n0, _oPIT, 0) + +GENERATE_ORGANIZATIONS_ACCESS_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _GOARI, + {_sSI: _cGOARR, _s: None}, + (_EP, _OPI), + ((ORGANIZATIONS_ENTITY_PATH_TYPE, 1), (ORGANIZATIONS_POLICY_ID_TYPE, 0)), +) + +JOB_ID_TYPE: StaticSchema = (3, n0, _jIDT, 0) + +GENERATE_ORGANIZATIONS_ACCESS_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _GOARO, + {_sSI: _cGOARRo, _smi: None}, + (_JI,), + ((JOB_ID_TYPE, 0),), +) + +REPORT_GENERATION_LIMIT_EXCEEDED_MESSAGE: StaticSchema = (3, n0, _rGLEM, 0) + +REPORT_GENERATION_LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _RGLEE, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "ReportGenerationLimitExceeded", "httpResponseCode": 409} + ), + }, + (_m,), + ((REPORT_GENERATION_LIMIT_EXCEEDED_MESSAGE, 0),), +) + +GENERATE_ORGANIZATIONS_ACCESS_REPORT: StaticOperationSchema = ( + 23, + n0, + _GOAR, + 0, + GENERATE_ORGANIZATIONS_ACCESS_REPORT_INPUT, + GENERATE_ORGANIZATIONS_ACCESS_REPORT_OUTPUT, + (REPORT_GENERATION_LIMIT_EXCEEDED_EXCEPTION,), +) + +GENERATE_SERVICE_LAST_ACCESSED_DETAILS_INPUT: StaticSchema = ( + 18, + n0, + _GSLADI, + {_sSI: _cGSLADR, _s: None}, + (_Ar, _Gr), + ((ARN_TYPE, 1), (ACCESS_ADVISOR_USAGE_GRANULARITY_TYPE, 0)), +) + +GENERATE_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT: StaticSchema = ( + 18, + n0, + _GSLADO, + {_sSI: _cGSLADRo, _smi: None}, + (_JI,), + ((JOB_ID_TYPE, 0),), +) + +GENERATE_SERVICE_LAST_ACCESSED_DETAILS: StaticOperationSchema = ( + 23, + n0, + _GSLAD, + 0, + GENERATE_SERVICE_LAST_ACCESSED_DETAILS_INPUT, + GENERATE_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +GET_ACCESS_KEY_LAST_USED_INPUT: StaticSchema = ( + 18, + n0, + _GAKLUI, + {_sSI: _cGAKLUR, _s: None}, + (_AKI,), + ((ACCESS_KEY_ID_TYPE, 1),), +) + +GET_ACCESS_KEY_LAST_USED_OUTPUT: StaticSchema = ( + 18, + n0, + _GAKLUO, + {_sSI: _cGAKLURo, _smi: None}, + (_UN, _AKLU), + ((EXISTING_USER_NAME_TYPE, 0), (ACCESS_KEY_LAST_USED, 0)), +) + +GET_ACCESS_KEY_LAST_USED: StaticOperationSchema = ( + 23, + n0, + _GAKLU, + 0, + GET_ACCESS_KEY_LAST_USED_INPUT, + GET_ACCESS_KEY_LAST_USED_OUTPUT, + (), +) + +ENTITY_TYPE: StaticSchema = ( + 14, + n0, + _ET, + 0, + (_Us, _Ro, _G, _LMP, _AWSMP), + ( + (-1, {_sV: _Us}), + (-1, {_sV: _Ro}), + (-1, {_sV: _G}), + (-1, {_sV: _LMP}), + (-1, {_sV: _AWSMP}), + ), +) + +ENTITY_LIST_TYPE: StaticSchema = (16, n0, _eLT, 0, (_me,), ((ENTITY_TYPE, 0),)) + +MARKER_TYPE: StaticSchema = (3, n0, _mT, 0) + +MAX_ITEMS_TYPE: StaticSchema = (7, n0, _mIT, 0) + +GET_ACCOUNT_AUTHORIZATION_DETAILS_INPUT: StaticSchema = ( + 18, + n0, + _GAADI, + {_sSI: _cGAADR, _s: None}, + (_F, _MI, _Ma), + ((ENTITY_LIST_TYPE, 0), (MAX_ITEMS_TYPE, 0), (MARKER_TYPE, 0)), +) + +POLICY_DETAIL: StaticSchema = ( + 18, + n0, + _PDo, + 0, + (_PN, _PD), + ((POLICY_NAME_TYPE, 0), (POLICY_DOCUMENT_TYPE, 0)), +) + +POLICY_DETAIL_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pDLT, + 0, + (_me,), + ((POLICY_DETAIL, 0),), +) + +GROUP_DETAIL: StaticSchema = ( + 18, + n0, + _GD, + 0, + (_Pa, _GN, _GI, _Ar, _CD, _GPL, _AMP), + ( + (PATH_TYPE, 0), + (GROUP_NAME_TYPE, 0), + (ID_TYPE, 0), + (ARN_TYPE, 0), + (DATE_TYPE, 0), + (POLICY_DETAIL_LIST_TYPE, 0), + (ATTACHED_POLICIES_LIST_TYPE, 0), + ), +) + +GROUP_DETAIL_LIST_TYPE: StaticSchema = (16, n0, _gDLT, 0, (_me,), ((GROUP_DETAIL, 0),)) + +RESPONSE_MARKER_TYPE: StaticSchema = (3, n0, _rMTe, 0) + +POLICY_DOCUMENT_VERSION_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pDVLT, + 0, + (_me,), + ((POLICY_VERSION, 0),), +) + +MANAGED_POLICY_DETAIL: StaticSchema = ( + 18, + n0, + _MPD, + 0, + (_PN, _PI, _Ar, _Pa, _DVI, _AC, _PBUC, _IA, _D, _CD, _UD, _PVL), + ( + (POLICY_NAME_TYPE, 0), + (ID_TYPE, 0), + (ARN_TYPE, 0), + (POLICY_PATH_TYPE, 0), + (POLICY_VERSION_ID_TYPE, 0), + (ATTACHMENT_COUNT_TYPE, 0), + (ATTACHMENT_COUNT_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (POLICY_DESCRIPTION_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + (POLICY_DOCUMENT_VERSION_LIST_TYPE, 0), + ), +) + +MANAGED_POLICY_DETAIL_LIST_TYPE: StaticSchema = ( + 16, + n0, + _MPDLT, + 0, + (_me,), + ((MANAGED_POLICY_DETAIL, 0),), +) + +INSTANCE_PROFILE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _iPLT, + 0, + (_me,), + ((INSTANCE_PROFILE, 0),), +) + +ROLE_DETAIL: StaticSchema = ( + 18, + n0, + _RD, + 0, + (_Pa, _RN, _RI, _Ar, _CD, _ARPD, _IPL, _RPL, _AMP, _PB, _Ta, _RLU), + ( + (PATH_TYPE, 0), + (ROLE_NAME_TYPE, 0), + (ID_TYPE, 0), + (ARN_TYPE, 0), + (DATE_TYPE, 0), + (POLICY_DOCUMENT_TYPE, 0), + (INSTANCE_PROFILE_LIST_TYPE, 0), + (POLICY_DETAIL_LIST_TYPE, 0), + (ATTACHED_POLICIES_LIST_TYPE, 0), + (ATTACHED_PERMISSIONS_BOUNDARY, 0), + (TAG_LIST_TYPE, 0), + (ROLE_LAST_USED, 0), + ), +) + +ROLE_DETAIL_LIST_TYPE: StaticSchema = (16, n0, _rDLT, 0, (_me,), ((ROLE_DETAIL, 0),)) + +GROUP_NAME_LIST_TYPE: StaticSchema = (16, n0, _gNLT, 0, (_me,), ((GROUP_NAME_TYPE, 0),)) + +USER_DETAIL: StaticSchema = ( + 18, + n0, + _UDs, + 0, + (_Pa, _UN, _UI, _Ar, _CD, _UPL, _GL, _AMP, _PB, _Ta), + ( + (PATH_TYPE, 0), + (USER_NAME_TYPE, 0), + (ID_TYPE, 0), + (ARN_TYPE, 0), + (DATE_TYPE, 0), + (POLICY_DETAIL_LIST_TYPE, 0), + (GROUP_NAME_LIST_TYPE, 0), + (ATTACHED_POLICIES_LIST_TYPE, 0), + (ATTACHED_PERMISSIONS_BOUNDARY, 0), + (TAG_LIST_TYPE, 0), + ), +) + +USER_DETAIL_LIST_TYPE: StaticSchema = (16, n0, _uDLT, 0, (_me,), ((USER_DETAIL, 0),)) + +GET_ACCOUNT_AUTHORIZATION_DETAILS_OUTPUT: StaticSchema = ( + 18, + n0, + _GAADO, + {_sSI: _cGAADRo, _smi: None}, + (_UDL, _GDL, _RDL, _Po, _IT, _Ma), + ( + (USER_DETAIL_LIST_TYPE, 0), + (GROUP_DETAIL_LIST_TYPE, 0), + (ROLE_DETAIL_LIST_TYPE, 0), + (MANAGED_POLICY_DETAIL_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +GET_ACCOUNT_AUTHORIZATION_DETAILS: StaticOperationSchema = ( + 23, + n0, + _GAAD, + 0, + GET_ACCOUNT_AUTHORIZATION_DETAILS_INPUT, + GET_ACCOUNT_AUTHORIZATION_DETAILS_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +GET_ACCOUNT_PASSWORD_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GAPPI, + {_sSI: _sU, _s: None}, +) + +BOOLEAN_OBJECT_TYPE: StaticSchema = (2, n0, _bOT, 0) + +MAX_PASSWORD_AGE_TYPE: StaticSchema = (7, n0, _mPAT, 0) + +MINIMUM_PASSWORD_LENGTH_TYPE: StaticSchema = (7, n0, _mPLT, 0) + +PASSWORD_REUSE_PREVENTION_TYPE: StaticSchema = (7, n0, _pRPT, 0) + +PASSWORD_POLICY: StaticSchema = ( + 18, + n0, + _PPa, + 0, + (_MPL, _RSe, _RNe, _RUC, _RLC, _AUTCP, _EPx, _MPA, _PRP, _HE), + ( + (MINIMUM_PASSWORD_LENGTH_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (MAX_PASSWORD_AGE_TYPE, 0), + (PASSWORD_REUSE_PREVENTION_TYPE, 0), + (BOOLEAN_OBJECT_TYPE, 0), + ), +) + +GET_ACCOUNT_PASSWORD_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GAPPO, + {_sSI: _cGAPPR, _smi: None}, + (_PPa,), + ((PASSWORD_POLICY, 1),), +) + +GET_ACCOUNT_PASSWORD_POLICY: StaticOperationSchema = ( + 23, + n0, + _GAPP, + 0, + GET_ACCOUNT_PASSWORD_POLICY_INPUT, + GET_ACCOUNT_PASSWORD_POLICY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_ACCOUNT_PROPERTIES_INPUT: StaticSchema = (18, n0, _GAPI, {_sSI: _cGAPR, _s: None}) + +GET_ACCOUNT_PROPERTIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GAPO, + {_sSI: _cGAPRo, _smi: None}, + (_Pr,), + ((ACCOUNT_PROPERTIES_MAP_TYPE, 0),), +) + +GET_ACCOUNT_PROPERTIES: StaticOperationSchema = ( + 23, + n0, + _GAP, + 0, + GET_ACCOUNT_PROPERTIES_INPUT, + GET_ACCOUNT_PROPERTIES_OUTPUT, + (INVALID_INPUT_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_ACCOUNT_SUMMARY_INPUT: StaticSchema = (18, n0, _GASI, {_sSI: _sU, _s: None}) + +SUMMARY_KEY_TYPE: StaticSchema = ( + 14, + n0, + _sKT, + 0, + ( + _Use, + _UQ, + _Gro, + _GQ, + _SC, + _SCQ, + _UPSQ, + _GPSQ, + _GPUQ, + _SCPUQ, + _AKPUQ, + _MFAD, + _MFADIU, + _AMFAE, + _AAKP, + _APP, + _ASCP, + _APPGQ, + _APPRQ, + _APPUQ, + _Po, + _PQ, + _PSQ, + _PVIU, + _PVIUQ, + _VPPQ, + _GETV, + _ARPSQ, + _IPn, + _IPQ, + _Pro, + _RPSQ, + _Rol, + _RQ, + ), + ( + (-1, {_sV: _Use}), + (-1, {_sV: _UQ}), + (-1, {_sV: _Gro}), + (-1, {_sV: _GQ}), + (-1, {_sV: _SC}), + (-1, {_sV: _SCQ}), + (-1, {_sV: _UPSQ}), + (-1, {_sV: _GPSQ}), + (-1, {_sV: _GPUQ}), + (-1, {_sV: _SCPUQ}), + (-1, {_sV: _AKPUQ}), + (-1, {_sV: _MFAD}), + (-1, {_sV: _MFADIU}), + (-1, {_sV: _AMFAE}), + (-1, {_sV: _AAKP}), + (-1, {_sV: _APP}), + (-1, {_sV: _ASCP}), + (-1, {_sV: _APPGQ}), + (-1, {_sV: _APPRQ}), + (-1, {_sV: _APPUQ}), + (-1, {_sV: _Po}), + (-1, {_sV: _PQ}), + (-1, {_sV: _PSQ}), + (-1, {_sV: _PVIU}), + (-1, {_sV: _PVIUQ}), + (-1, {_sV: _VPPQ}), + (-1, {_sV: _GETV}), + (-1, {_sV: _ARPSQ}), + (-1, {_sV: _IPn}), + (-1, {_sV: _IPQ}), + (-1, {_sV: _Pro}), + (-1, {_sV: _RPSQ}), + (-1, {_sV: _Rol}), + (-1, {_sV: _RQ}), + ), +) + +SUMMARY_VALUE_TYPE: StaticSchema = (7, n0, _sVT, 0) + +SUMMARY_MAP_TYPE: StaticSchema = ( + 17, + n0, + _sMT, + 0, + (_k, _v), + ((SUMMARY_KEY_TYPE, 0), (SUMMARY_VALUE_TYPE, 0)), +) + +GET_ACCOUNT_SUMMARY_OUTPUT: StaticSchema = ( + 18, + n0, + _GASO, + {_sSI: _cGASR, _smi: None}, + (_SM,), + ((SUMMARY_MAP_TYPE, 0),), +) + +GET_ACCOUNT_SUMMARY: StaticOperationSchema = ( + 23, + n0, + _GAS, + 0, + GET_ACCOUNT_SUMMARY_INPUT, + GET_ACCOUNT_SUMMARY_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +SIMULATION_POLICY_LIST_TYPE: StaticSchema = ( + 16, + n0, + _SPLT, + 0, + (_me,), + ((POLICY_DOCUMENT_TYPE, 0),), +) + +GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GCKFCPI, + {_sSI: _cGCKFCPR, _s: None}, + (_PIL,), + ((SIMULATION_POLICY_LIST_TYPE, 1),), +) + +CONTEXT_KEY_NAME_TYPE: StaticSchema = (3, n0, _CKNT, 0) + +CONTEXT_KEY_NAMES_RESULT_LIST_TYPE: StaticSchema = ( + 16, + n0, + _CKNRLT, + 0, + (_me,), + ((CONTEXT_KEY_NAME_TYPE, 0),), +) + +GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCKFCPO, + {_sSI: _cGCKFPR, _smi: None}, + (_CKN,), + ((CONTEXT_KEY_NAMES_RESULT_LIST_TYPE, 0),), +) + +GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY: StaticOperationSchema = ( + 23, + n0, + _GCKFCP, + 0, + GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_INPUT, + GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION,), +) + +GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GCKFPPI, + {_sSI: _cGCKFPPR, _s: None}, + (_PSA, _PIL), + ((ARN_TYPE, 1), (SIMULATION_POLICY_LIST_TYPE, 0)), +) + +GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GCKFPPO, + {_sSI: _cGCKFPR, _smi: None}, + (_CKN,), + ((CONTEXT_KEY_NAMES_RESULT_LIST_TYPE, 0),), +) + +GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY: StaticOperationSchema = ( + 23, + n0, + _GCKFPP, + 0, + GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_INPUT, + GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +CREDENTIAL_REPORT_EXPIRED_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _cREEM, 0) + +CREDENTIAL_REPORT_EXPIRED_EXCEPTION: StaticSchema = ( + 18, + n0, + _CREE, + { + _smit: _c, + _sE: 410, + _aQE: MappingProxyType({"code": "ReportExpired", "httpResponseCode": 410}), + }, + (_m,), + ((CREDENTIAL_REPORT_EXPIRED_EXCEPTION_MESSAGE, 0),), +) + +CREDENTIAL_REPORT_NOT_PRESENT_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _cRNPEM, 0) + +CREDENTIAL_REPORT_NOT_PRESENT_EXCEPTION: StaticSchema = ( + 18, + n0, + _CRNPE, + { + _smit: _c, + _sE: 410, + _aQE: MappingProxyType({"code": "ReportNotPresent", "httpResponseCode": 410}), + }, + (_m,), + ((CREDENTIAL_REPORT_NOT_PRESENT_EXCEPTION_MESSAGE, 0),), +) + +CREDENTIAL_REPORT_NOT_READY_EXCEPTION_MESSAGE: StaticSchema = (3, n0, _cRNREM, 0) + +CREDENTIAL_REPORT_NOT_READY_EXCEPTION: StaticSchema = ( + 18, + n0, + _CRNRE, + { + _smit: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "ReportInProgress", "httpResponseCode": 404}), + }, + (_m,), + ((CREDENTIAL_REPORT_NOT_READY_EXCEPTION_MESSAGE, 0),), +) + +GET_CREDENTIAL_REPORT_INPUT: StaticSchema = (18, n0, _GCRIe, {_sSI: _sU, _s: None}) + +REPORT_CONTENT_TYPE: StaticSchema = (1, n0, _RCT, 0) + +REPORT_FORMAT_TYPE: StaticSchema = (14, n0, _RFT, 0, (_tc,), ((-1, {_sV: _t}),)) + +GET_CREDENTIAL_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _GCROe, + {_sSI: _cGCRRo, _smi: None}, + (_C, _RF, _GT), + ((REPORT_CONTENT_TYPE, 0), (REPORT_FORMAT_TYPE, 0), (DATE_TYPE, 0)), +) + +GET_CREDENTIAL_REPORT: StaticOperationSchema = ( + 23, + n0, + _GCRe, + 0, + GET_CREDENTIAL_REPORT_INPUT, + GET_CREDENTIAL_REPORT_OUTPUT, + ( + CREDENTIAL_REPORT_EXPIRED_EXCEPTION, + CREDENTIAL_REPORT_NOT_PRESENT_EXCEPTION, + CREDENTIAL_REPORT_NOT_READY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +GET_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _GDRI, + {_sSI: _cGDRR, _s: None}, + (_DRI, _DPC), + ((DELEGATION_REQUEST_ID_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False})), +) + +NOTES_TYPE: StaticSchema = (3, n0, _nT, 0) + +OWNER_ID_TYPE: StaticSchema = (3, n0, _oIT, 0) + +PERMISSION_TYPE: StaticSchema = (3, n0, _pTe, 0) + +REQUESTOR_NAME_TYPE: StaticSchema = (3, n0, _rNTe, 0) + +ROLE_PERMISSION_RESTRICTION_ARN_LIST_TYPE: StaticSchema = ( + 16, + n0, + _rPRALT, + 0, + (_me,), + ((ARN_TYPE, 0),), +) + +STATE_TYPE: StaticSchema = ( + 14, + n0, + _sTta, + 0, + (_UNASSIGNED, _ASSIGNED, _PA_, _FINALIZED, _ACCEPTED, _REJECTED, _EXPIRED), + ( + (-1, {_sV: _UNASSIGNED}), + (-1, {_sV: _ASSIGNED}), + (-1, {_sV: _PA_}), + (-1, {_sV: _FINALIZED}), + (-1, {_sV: _ACCEPTED}), + (-1, {_sV: _REJECTED}), + (-1, {_sV: _EXPIRED}), + ), +) + +DELEGATION_REQUEST: StaticSchema = ( + 18, + n0, + _DRe, + 0, + ( + _DRI, + _OAI, + _D, + _RM, + _Pe, + _PPe, + _RPRA, + _OIw, + _AI, + _St, + _ETx, + _RIe, + _RNeq, + _CD, + _SD, + _RU, + _No, + _RR, + _OSBO, + _UT, + ), + ( + (DELEGATION_REQUEST_ID_TYPE, 0), + (ACCOUNT_ID_TYPE, 0), + (DELEGATION_REQUEST_DESCRIPTION_TYPE, 0), + (REQUEST_MESSAGE_TYPE, 0), + (DELEGATION_PERMISSION, 0), + (PERMISSION_TYPE, 0), + (ROLE_PERMISSION_RESTRICTION_ARN_LIST_TYPE, 0), + (OWNER_ID_TYPE, 0), + (ARN_TYPE, 0), + (STATE_TYPE, 0), + (DATE_TYPE, 0), + (ACCOUNT_ID_TYPE, 0), + (REQUESTOR_NAME_TYPE, 0), + (DATE_TYPE, 0), + (SESSION_DURATION_TYPE, 0), + (REDIRECT_URL_TYPE, 0), + (NOTES_TYPE, 0), + (NOTES_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (DATE_TYPE, 0), + ), +) + +PERMISSION_CHECK_RESULT_TYPE: StaticSchema = ( + 14, + n0, + _pCRT, + 0, + (_ALLOWED, _DENIED, _UNSURE), + ((-1, {_sV: _ALLOWED}), (-1, {_sV: _DENIED}), (-1, {_sV: _UNSURE})), +) + +PERMISSION_CHECK_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _pCST, + 0, + (_COMPLETE, _IP_, _FAILED), + ((-1, {_sV: _COMPLETE}), (-1, {_sV: _IP_}), (-1, {_sV: _FAILED})), +) + +GET_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _GDRO, + {_sSI: _cGDRRo, _smi: None}, + (_DRe, _PCS, _PCR), + ( + (DELEGATION_REQUEST, 0), + (PERMISSION_CHECK_STATUS_TYPE, 0), + (PERMISSION_CHECK_RESULT_TYPE, 0), + ), +) + +GET_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _GDR, + 0, + GET_DELEGATION_REQUEST_INPUT, + GET_DELEGATION_REQUEST_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _GGI, + {_sSI: _cGGR, _s: None}, + (_GN, _Ma, _MI), + ((GROUP_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +USER_LIST_TYPE: StaticSchema = (16, n0, _uLT, 0, (_me,), ((USER, 0),)) + +GET_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _GGO, + {_sSI: _cGGRo, _smi: None}, + (_G, _Use, _IT, _Ma), + ( + (GROUP, 1), + (USER_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +GET_GROUP: StaticOperationSchema = ( + 23, + n0, + _GG, + 0, + GET_GROUP_INPUT, + GET_GROUP_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GGPI, + {_sSI: _cGGPR, _s: None}, + (_GN, _PN), + ((GROUP_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +GET_GROUP_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GGPO, + {_sSI: _cGGPRo, _smi: None}, + (_GN, _PN, _PD), + ((GROUP_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +GET_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _GGP, + 0, + GET_GROUP_POLICY_INPUT, + GET_GROUP_POLICY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LOCALE_TYPE: StaticSchema = (3, n0, _lT, 0) + +GET_HUMAN_READABLE_SUMMARY_INPUT: StaticSchema = ( + 18, + n0, + _GHRSI, + {_sSI: _cGHRSR, _s: None}, + (_EA, _L), + ((ARN_TYPE, 1), (LOCALE_TYPE, 0)), +) + +SUMMARY_CONTENT_TYPE: StaticSchema = (3, n0, _sCT, 0) + +SUMMARY_STATE_TYPE: StaticSchema = ( + 14, + n0, + _sST, + 0, + (_AVAILABLE, _NA, _NS, _FAILED), + ((-1, {_sV: _AVAILABLE}), (-1, {_sV: _NA}), (-1, {_sV: _NS}), (-1, {_sV: _FAILED})), +) + +GET_HUMAN_READABLE_SUMMARY_OUTPUT: StaticSchema = ( + 18, + n0, + _GHRSO, + {_sSI: _cGHRSRo, _smi: None}, + (_SCu, _L, _SS), + ((SUMMARY_CONTENT_TYPE, 0), (LOCALE_TYPE, 0), (SUMMARY_STATE_TYPE, 0)), +) + +GET_HUMAN_READABLE_SUMMARY: StaticOperationSchema = ( + 23, + n0, + _GHRS, + 0, + GET_HUMAN_READABLE_SUMMARY_INPUT, + GET_HUMAN_READABLE_SUMMARY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _GIPI, + {_sSI: _cGIPR, _s: None}, + (_IPN,), + ((INSTANCE_PROFILE_NAME_TYPE, 1),), +) + +GET_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _GIPO, + {_sSI: _cGIPRo, _smi: None}, + (_IP,), + ((INSTANCE_PROFILE, 1),), +) + +GET_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _GIP, + 0, + GET_INSTANCE_PROFILE_INPUT, + GET_INSTANCE_PROFILE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_LOGIN_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _GLPI, + {_sSI: _cGLPR, _s: None}, + (_UN,), + ((USER_NAME_TYPE, 0),), +) + +GET_LOGIN_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _GLPO, + {_sSI: _cGLPRo, _smi: None}, + (_LP,), + ((LOGIN_PROFILE, 1),), +) + +GET_LOGIN_PROFILE: StaticOperationSchema = ( + 23, + n0, + _GLP, + 0, + GET_LOGIN_PROFILE_INPUT, + GET_LOGIN_PROFILE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _GMFADI, + {_sSI: _cGMFADR, _s: None}, + (_SNer, _UN), + ((SERIAL_NUMBER_TYPE, 1), (USER_NAME_TYPE, 0)), +) + +CERTIFICATION_KEY_TYPE: StaticSchema = (3, n0, _CKT, 0) + +CERTIFICATION_VALUE_TYPE: StaticSchema = (3, n0, _CVT, 0) + +CERTIFICATION_MAP_TYPE: StaticSchema = ( + 17, + n0, + _CMT, + 0, + (_k, _v), + ((CERTIFICATION_KEY_TYPE, 0), (CERTIFICATION_VALUE_TYPE, 0)), +) + +GET_MFA_DEVICE_OUTPUT: StaticSchema = ( + 18, + n0, + _GMFADO, + {_sSI: _cGMFADRo, _smi: None}, + (_UN, _SNer, _EDn, _Ce), + ( + (USER_NAME_TYPE, 0), + (SERIAL_NUMBER_TYPE, 1), + (DATE_TYPE, 0), + (CERTIFICATION_MAP_TYPE, 0), + ), +) + +GET_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _GMFAD, + 0, + GET_MFA_DEVICE_INPUT, + GET_MFA_DEVICE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _GOIDCPI, + {_sSI: _cGOIDCPR, _s: None}, + (_OIDCPA,), + ((ARN_TYPE, 1),), +) + +GET_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _GOIDCPO, + {_sSI: _cGOIDCPRo, _smi: None}, + (_Ur, _CIDL, _TL, _CD, _Ta), + ( + (OPEN_ID_CONNECT_PROVIDER_URL_TYPE, 0), + (CLIENT_ID_LIST_TYPE, 0), + (THUMBPRINT_LIST_TYPE, 0), + (DATE_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +GET_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _GOIDCP, + 0, + GET_OPEN_ID_CONNECT_PROVIDER_INPUT, + GET_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +SORT_KEY_TYPE: StaticSchema = ( + 14, + n0, + _sKTo, + 0, + (_SNA, _SND, _LATA, _LATD), + ((-1, {_sV: _SNA}), (-1, {_sV: _SND}), (-1, {_sV: _LATA}), (-1, {_sV: _LATD})), +) + +GET_ORGANIZATIONS_ACCESS_REPORT_INPUT: StaticSchema = ( + 18, + n0, + _GOARIe, + {_sSI: _cGOARRom, _s: None}, + (_JI, _MI, _Ma, _SK), + ((JOB_ID_TYPE, 1), (MAX_ITEMS_TYPE, 0), (MARKER_TYPE, 0), (SORT_KEY_TYPE, 0)), +) + +ERROR_DETAILS: StaticSchema = ( + 18, + n0, + _EDr, + 0, + (_M, _Co), + ((STRING_TYPE, 1), (STRING_TYPE, 1)), +) + +JOB_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _jST, + 0, + (_IP_, _COMPLETED, _FAILED), + ((-1, {_sV: _IP_}), (-1, {_sV: _COMPLETED}), (-1, {_sV: _FAILED})), +) + +GET_ORGANIZATIONS_ACCESS_REPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _GOAROe, + {_sSI: _cGOARRoma, _smi: None}, + (_JS, _JCD, _JCDo, _NOSA, _NOSNA, _ADc, _IT, _Ma, _EDr), + ( + (JOB_STATUS_TYPE, 1), + (DATE_TYPE, 1), + (DATE_TYPE, 0), + (INTEGER_TYPE, 0), + (INTEGER_TYPE, 0), + (ACCESS_DETAILS, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (MARKER_TYPE, 0), + (ERROR_DETAILS, 0), + ), +) + +GET_ORGANIZATIONS_ACCESS_REPORT: StaticOperationSchema = ( + 23, + n0, + _GOARe, + 0, + GET_ORGANIZATIONS_ACCESS_REPORT_INPUT, + GET_ORGANIZATIONS_ACCESS_REPORT_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_INPUT: StaticSchema = ( + 18, + n0, + _GOWIFII, + {_sSI: _sU, _s: None}, +) + +GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_OUTPUT: StaticSchema = ( + 18, + n0, + _GOWIFIO, + {_sSI: _cGOWIFIR, _smi: None}, + (_II, _JVE), + ((STRING_TYPE, 0), (BOOLEAN_TYPE, {_smithy: False})), +) + +GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO: StaticOperationSchema = ( + 23, + n0, + _GOWIFI, + 0, + GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_INPUT, + GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_OUTPUT, + (FEATURE_DISABLED_EXCEPTION,), +) + +GET_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GPI, + {_sSI: _cGPR, _s: None}, + (_PA,), + ((ARN_TYPE, 1),), +) + +GET_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GPO, + {_sSI: _cGPRo, _smi: None}, + (_P,), + ((POLICY, 0),), +) + +GET_POLICY: StaticOperationSchema = ( + 23, + n0, + _GP, + 0, + GET_POLICY_INPUT, + GET_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_POLICY_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _GPVI, + {_sSI: _cGPVR, _s: None}, + (_PA, _VI), + ((ARN_TYPE, 1), (POLICY_VERSION_ID_TYPE, 1)), +) + +GET_POLICY_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _GPVO, + {_sSI: _cGPVRo, _smi: None}, + (_PV,), + ((POLICY_VERSION, 0),), +) + +GET_POLICY_VERSION: StaticOperationSchema = ( + 23, + n0, + _GPV, + 0, + GET_POLICY_VERSION_INPUT, + GET_POLICY_VERSION_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _GRI, + {_sSI: _cGRR, _s: None}, + (_RN,), + ((ROLE_NAME_TYPE, 1),), +) + +GET_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _GRO, + {_sSI: _cGRRo, _smi: None}, + (_Ro,), + ((ROLE, 1),), +) + +GET_ROLE: StaticOperationSchema = ( + 23, + n0, + _GR, + 0, + GET_ROLE_INPUT, + GET_ROLE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GRPI, + {_sSI: _cGRPR, _s: None}, + (_RN, _PN), + ((ROLE_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +GET_ROLE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GRPO, + {_sSI: _cGRPRo, _smi: None}, + (_RN, _PN, _PD), + ((ROLE_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +GET_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _GRP, + 0, + GET_ROLE_POLICY_INPUT, + GET_ROLE_POLICY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +MINOR_VERSION_TYPE: StaticSchema = (7, n0, _mVT, 0) + +GET_ROLE_TEMPLATE_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _GRTVI, + {_sSI: _cGRTVR, _s: None}, + (_TA, _MV), + ((ARN_TYPE, 1), (MINOR_VERSION_TYPE, 0)), +) + +ROLE_TEMPLATE_DESCRIPTION_TYPE: StaticSchema = (3, n0, _rTDT, 0) + +INLINE_POLICY: StaticSchema = ( + 18, + n0, + _IPnl, + 0, + (_PN, _PD), + ((POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +INLINE_POLICY_TEMPLATE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _iPTLT, + 0, + (_me,), + ((INLINE_POLICY, 0),), +) + +MANAGED_BY_TYPE_TYPE: StaticSchema = (14, n0, _mBTT, 0, (_Se,), ((-1, {_sV: _Se}),)) + +MANAGED_BY_VALUE_TYPE: StaticSchema = (3, n0, _mBVT, 0) + +MANAGED_POLICY_ARN_LIST_TYPE: StaticSchema = ( + 16, + n0, + _mPALT, + 0, + (_me,), + ((ARN_TYPE, 0),), +) + +PARAMETER_DEFAULT_VALUE_TYPE: StaticSchema = (3, n0, _pDVT, 0) + +PARAMETER_DESCRIPTION_TYPE: StaticSchema = (3, n0, _pDTa, 0) + +PARAMETER_NAME_TYPE: StaticSchema = (3, n0, _pNTa, 0) + +PARAMETER_SUB_TYPE_TYPE: StaticSchema = (3, n0, _pSTT, 0) + +PARAMETER_TYPE_TYPE: StaticSchema = ( + 14, + n0, + _pTT, + 0, + (_Str, _SLt, _Nu, _NL, _Ar, _ALr), + ( + (-1, {_sV: _Str}), + (-1, {_sV: _SLt}), + (-1, {_sV: _Nu}), + (-1, {_sV: _NL}), + (-1, {_sV: _Ar}), + (-1, {_sV: _ALr}), + ), +) + +PARAMETER_DEFINITION: StaticSchema = ( + 18, + n0, + _PDa, + 0, + (_N, _Ty, _ST, _D, _IR, _DV, _Im), + ( + (PARAMETER_NAME_TYPE, 1), + (PARAMETER_TYPE_TYPE, 1), + (PARAMETER_SUB_TYPE_TYPE, 0), + (PARAMETER_DESCRIPTION_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (PARAMETER_DEFAULT_VALUE_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + ), +) + +PARAMETERS_DEFINITION_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pDLTa, + 0, + (_me,), + ((PARAMETER_DEFINITION, 0),), +) + +ROLE_DESCRIPTION_PATTERN_TYPE: StaticSchema = (3, n0, _rDPT, 0) + +ROLE_NAME_PATTERN_TYPE: StaticSchema = (3, n0, _rNPT, 0) + +ROLE_PATH_PATTERN_TYPE: StaticSchema = (3, n0, _rPPT, 0) + +TAG_TEMPLATE_KEY_TYPE: StaticSchema = (3, n0, _tTKT, 0) + +TAG_TEMPLATE_VALUE_TYPE: StaticSchema = (3, n0, _tTVT, 0) + +TAG_TEMPLATE: StaticSchema = ( + 18, + n0, + _TT, + 0, + (_K, _Va), + ((TAG_TEMPLATE_KEY_TYPE, 1), (TAG_TEMPLATE_VALUE_TYPE, 1)), +) + +TAG_TEMPLATE_LIST_TYPE: StaticSchema = (16, n0, _tTLT, 0, (_me,), ((TAG_TEMPLATE, 0),)) + +ROLE_TEMPLATE_NAME_TYPE: StaticSchema = (3, n0, _rTNT, 0) + +ROLE_TEMPLATE_VERSION: StaticSchema = ( + 18, + n0, + _RTV, + 0, + ( + _TA, + _TN, + _TVI, + _D, + _MVa, + _DMV, + _MBT, + _MBV, + _En, + _MV, + _RNP, + _RPP, + _RDP, + _ARPDT, + _IPT, + _MPAa, + _PBAe, + _PDar, + _RTT, + _MSD, + _VE, + _CT, + _UTp, + ), + ( + (ARN_TYPE, 0), + (ROLE_TEMPLATE_NAME_TYPE, 0), + (ID_TYPE, 0), + (ROLE_TEMPLATE_DESCRIPTION_TYPE, 0), + (INTEGER_TYPE, 0), + (MINOR_VERSION_TYPE, 0), + (MANAGED_BY_TYPE_TYPE, 0), + (MANAGED_BY_VALUE_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (MINOR_VERSION_TYPE, 0), + (ROLE_NAME_PATTERN_TYPE, 0), + (ROLE_PATH_PATTERN_TYPE, 0), + (ROLE_DESCRIPTION_PATTERN_TYPE, 0), + (POLICY_DOCUMENT_TYPE, 0), + (INLINE_POLICY_TEMPLATE_LIST_TYPE, 0), + (MANAGED_POLICY_ARN_LIST_TYPE, 0), + (ARN_TYPE, 0), + (PARAMETERS_DEFINITION_LIST_TYPE, 0), + (TAG_TEMPLATE_LIST_TYPE, 0), + (ROLE_MAX_SESSION_DURATION_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + ), +) + +GET_ROLE_TEMPLATE_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _GRTVO, + {_sSI: _cGRTVRo, _smi: None}, + (_RTV,), + ((ROLE_TEMPLATE_VERSION, 1),), +) + +GET_ROLE_TEMPLATE_VERSION: StaticOperationSchema = ( + 23, + n0, + _GRTV, + 0, + GET_ROLE_TEMPLATE_VERSION_INPUT, + GET_ROLE_TEMPLATE_VERSION_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _GSAMLPI, + {_sSI: _cGSAMLPR, _s: None}, + (_SAMLPA,), + ((ARN_TYPE, 1),), +) + +PRIVATE_KEY_ID_TYPE: StaticSchema = (3, n0, _pKITr, 0) + +SAML_PRIVATE_KEY: StaticSchema = ( + 18, + n0, + _SAMLPK, + 0, + (_KI, _Ti), + ((PRIVATE_KEY_ID_TYPE, 0), (DATE_TYPE, 0)), +) + +PRIVATE_KEY_LIST: StaticSchema = (16, n0, _pKL, 0, (_me,), ((SAML_PRIVATE_KEY, 0),)) + +GET_SAML_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _GSAMLPO, + {_sSI: _cGSAMLPRo, _smi: None}, + (_SAMLPUUID, _SAMLMD, _CD, _VU, _Ta, _AEM, _PKL), + ( + (PRIVATE_KEY_ID_TYPE, 0), + (SAML_METADATA_DOCUMENT_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + (TAG_LIST_TYPE, 0), + (ASSERTION_ENCRYPTION_MODE_TYPE, 0), + (PRIVATE_KEY_LIST, 0), + ), +) + +GET_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _GSAMLP, + 0, + GET_SAML_PROVIDER_INPUT, + GET_SAML_PROVIDER_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _GSCI, + {_sSI: _cGSCR, _s: None}, + (_SCN,), + ((SERVER_CERTIFICATE_NAME_TYPE, 1),), +) + +CERTIFICATE_BODY_TYPE: StaticSchema = (3, n0, _cBT, 0) + +CERTIFICATE_CHAIN_TYPE: StaticSchema = (3, n0, _cCT, 0) + +SERVER_CERTIFICATE_METADATA: StaticSchema = ( + 18, + n0, + _SCM, + 0, + (_Pa, _SCN, _SCI, _Ar, _UDp, _Ex), + ( + (PATH_TYPE, 1), + (SERVER_CERTIFICATE_NAME_TYPE, 1), + (ID_TYPE, 1), + (ARN_TYPE, 1), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + ), +) + +SERVER_CERTIFICATE: StaticSchema = ( + 18, + n0, + _SCe, + 0, + (_SCM, _CB, _CC, _Ta), + ( + (SERVER_CERTIFICATE_METADATA, 1), + (CERTIFICATE_BODY_TYPE, 1), + (CERTIFICATE_CHAIN_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +GET_SERVER_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _GSCO, + {_sSI: _cGSCRo, _smi: None}, + (_SCe,), + ((SERVER_CERTIFICATE, 1),), +) + +GET_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _GSC, + 0, + GET_SERVER_CERTIFICATE_INPUT, + GET_SERVER_CERTIFICATE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS_INPUT: StaticSchema = ( + 18, + n0, + _GSLADIe, + {_sSI: _cGSLADRom, _s: None}, + (_JI, _MI, _Ma), + ((JOB_ID_TYPE, 1), (MAX_ITEMS_TYPE, 0), (MARKER_TYPE, 0)), +) + +TRACKED_ACTION_LAST_ACCESSED: StaticSchema = ( + 18, + n0, + _TALA, + 0, + (_ANc, _LAE, _LATa, _LAR), + ((STRING_TYPE, 0), (ARN_TYPE, 0), (DATE_TYPE, 0), (STRING_TYPE, 0)), +) + +TRACKED_ACTIONS_LAST_ACCESSED: StaticSchema = ( + 16, + n0, + _TALAr, + 0, + (_me,), + ((TRACKED_ACTION_LAST_ACCESSED, 0),), +) + +SERVICE_LAST_ACCESSED: StaticSchema = ( + 18, + n0, + _SLA, + 0, + (_SN, _LA, _SNe, _LAEa, _LARa, _TAE, _TALAr), + ( + (SERVICE_NAME_TYPE, 1), + (DATE_TYPE, 0), + (SERVICE_NAMESPACE_TYPE, 1), + (ARN_TYPE, 0), + (STRING_TYPE, 0), + (INTEGER_TYPE, 0), + (TRACKED_ACTIONS_LAST_ACCESSED, 0), + ), +) + +SERVICES_LAST_ACCESSED: StaticSchema = ( + 16, + n0, + _SLAe, + 0, + (_me,), + ((SERVICE_LAST_ACCESSED, 0),), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT: StaticSchema = ( + 18, + n0, + _GSLADOe, + {_sSI: _cGSLADRoma, _smi: None}, + (_JS, _JT, _JCD, _SLAe, _JCDo, _IT, _Ma, _Er), + ( + (JOB_STATUS_TYPE, 1), + (ACCESS_ADVISOR_USAGE_GRANULARITY_TYPE, 0), + (DATE_TYPE, 1), + (SERVICES_LAST_ACCESSED, 1), + (DATE_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + (ERROR_DETAILS, 0), + ), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS: StaticOperationSchema = ( + 23, + n0, + _GSLADe, + 0, + GET_SERVICE_LAST_ACCESSED_DETAILS_INPUT, + GET_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_INPUT: StaticSchema = ( + 18, + n0, + _GSLADWEI, + {_sSI: _cGSLADWER, _s: None}, + (_JI, _SNe, _MI, _Ma), + ( + (JOB_ID_TYPE, 1), + (SERVICE_NAMESPACE_TYPE, 1), + (MAX_ITEMS_TYPE, 0), + (MARKER_TYPE, 0), + ), +) + +POLICY_OWNER_ENTITY_TYPE: StaticSchema = ( + 14, + n0, + _pOET, + 0, + (_USER, _ROLE, _GROUP), + ((-1, {_sV: _USER}), (-1, {_sV: _ROLE}), (-1, {_sV: _GROUP})), +) + +ENTITY_INFO: StaticSchema = ( + 18, + n0, + _EI, + 0, + (_Ar, _N, _Ty, _Id, _Pa), + ( + (ARN_TYPE, 1), + (USER_NAME_TYPE, 1), + (POLICY_OWNER_ENTITY_TYPE, 1), + (ID_TYPE, 1), + (PATH_TYPE, 0), + ), +) + +ENTITY_DETAILS: StaticSchema = ( + 18, + n0, + _EDnt, + 0, + (_EI, _LA), + ((ENTITY_INFO, 1), (DATE_TYPE, 0)), +) + +ENTITY_DETAILS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _eDLT, + 0, + (_me,), + ((ENTITY_DETAILS, 0),), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_OUTPUT: StaticSchema = ( + 18, + n0, + _GSLADWEO, + {_sSI: _cGSLADWERo, _smi: None}, + (_JS, _JCD, _JCDo, _EDL, _IT, _Ma, _Er), + ( + (JOB_STATUS_TYPE, 1), + (DATE_TYPE, 1), + (DATE_TYPE, 1), + (ENTITY_DETAILS_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + (ERROR_DETAILS, 0), + ), +) + +GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES: StaticOperationSchema = ( + 23, + n0, + _GSLADWE, + 0, + GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_INPUT, + GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +GET_SERVICE_LINKED_ROLE_DELETION_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GSLRDSI, + {_sSI: _cGSLRDSR, _s: None}, + (_DTI,), + ((DELETION_TASK_ID_TYPE, 1),), +) + +REASON_TYPE: StaticSchema = (3, n0, _RT, 0) + +REGION_NAME_TYPE: StaticSchema = (3, n0, _RNT, 0) + +ROLE_USAGE_TYPE: StaticSchema = ( + 18, + n0, + _RUT, + 0, + (_R, _Res), + ((REGION_NAME_TYPE, 0), (ARN_LIST_TYPE, 0)), +) + +ROLE_USAGE_LIST_TYPE: StaticSchema = (16, n0, _RULT, 0, (_me,), ((ROLE_USAGE_TYPE, 0),)) + +DELETION_TASK_FAILURE_REASON_TYPE: StaticSchema = ( + 18, + n0, + _DTFRT, + 0, + (_Rea, _RUL), + ((REASON_TYPE, 0), (ROLE_USAGE_LIST_TYPE, 0)), +) + +DELETION_TASK_STATUS_TYPE: StaticSchema = ( + 14, + n0, + _DTST, + 0, + (_SUCCEEDED, _IP_, _FAILED, _NS_), + ( + (-1, {_sV: _SUCCEEDED}), + (-1, {_sV: _IP_}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _NS_}), + ), +) + +GET_SERVICE_LINKED_ROLE_DELETION_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GSLRDSO, + {_sSI: _cGSLRDSRo, _smi: None}, + (_S, _Rea), + ((DELETION_TASK_STATUS_TYPE, 1), (DELETION_TASK_FAILURE_REASON_TYPE, 0)), +) + +GET_SERVICE_LINKED_ROLE_DELETION_STATUS: StaticOperationSchema = ( + 23, + n0, + _GSLRDS, + 0, + GET_SERVICE_LINKED_ROLE_DELETION_STATUS_INPUT, + GET_SERVICE_LINKED_ROLE_DELETION_STATUS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +ENCODING_TYPE: StaticSchema = ( + 14, + n0, + _eT, + 0, + (_SSH, _PEM), + ((-1, {_sV: _SSH}), (-1, {_sV: _PEM})), +) + +GET_SSH_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _GSSHPKI, + {_sSI: _cGSSHPKR, _s: None}, + (_UN, _SSHPKI, _Enc), + ((USER_NAME_TYPE, 1), (PUBLIC_KEY_ID_TYPE, 1), (ENCODING_TYPE, 1)), +) + +PUBLIC_KEY_FINGERPRINT_TYPE: StaticSchema = (3, n0, _pKFT, 0) + +PUBLIC_KEY_MATERIAL_TYPE: StaticSchema = (3, n0, _pKMT, 0) + +SSH_PUBLIC_KEY: StaticSchema = ( + 18, + n0, + _SSHPK, + 0, + (_UN, _SSHPKI, _Fi, _SSHPKB, _S, _UDp), + ( + (USER_NAME_TYPE, 1), + (PUBLIC_KEY_ID_TYPE, 1), + (PUBLIC_KEY_FINGERPRINT_TYPE, 1), + (PUBLIC_KEY_MATERIAL_TYPE, 1), + (STATUS_TYPE, 1), + (DATE_TYPE, 0), + ), +) + +GET_SSH_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _GSSHPKO, + {_sSI: _cGSSHPKRo, _smi: None}, + (_SSHPK,), + ((SSH_PUBLIC_KEY, 0),), +) + +UNRECOGNIZED_PUBLIC_KEY_ENCODING_MESSAGE: StaticSchema = (3, n0, _uPKEM, 0) + +UNRECOGNIZED_PUBLIC_KEY_ENCODING_EXCEPTION: StaticSchema = ( + 18, + n0, + _UPKEE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "UnrecognizedPublicKeyEncoding", "httpResponseCode": 400} + ), + }, + (_m,), + ((UNRECOGNIZED_PUBLIC_KEY_ENCODING_MESSAGE, 0),), +) + +GET_SSH_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _GSSHPK, + 0, + GET_SSH_PUBLIC_KEY_INPUT, + GET_SSH_PUBLIC_KEY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, UNRECOGNIZED_PUBLIC_KEY_ENCODING_EXCEPTION), +) + +GET_USER_INPUT: StaticSchema = ( + 18, + n0, + _GUI, + {_sSI: _cGUR, _s: None}, + (_UN,), + ((EXISTING_USER_NAME_TYPE, 0),), +) + +GET_USER_OUTPUT: StaticSchema = ( + 18, + n0, + _GUO, + {_sSI: _cGURo, _smi: None}, + (_Us,), + ((USER, 1),), +) + +GET_USER: StaticOperationSchema = ( + 23, + n0, + _GU, + 0, + GET_USER_INPUT, + GET_USER_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +GET_USER_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GUPI, + {_sSI: _cGUPR, _s: None}, + (_UN, _PN), + ((EXISTING_USER_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1)), +) + +GET_USER_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GUPO, + {_sSI: _cGUPRo, _smi: None}, + (_UN, _PN, _PD), + ((EXISTING_USER_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +GET_USER_POLICY: StaticOperationSchema = ( + 23, + n0, + _GUP, + 0, + GET_USER_POLICY_INPUT, + GET_USER_POLICY_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ACCESS_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _LAKI, + {_sSI: _cLAKR, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ACCESS_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LAKO, + {_sSI: _cLAKRo, _smi: None}, + (_AKM, _IT, _Ma), + ( + (ACCESS_KEY_METADATA_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ACCESS_KEYS: StaticOperationSchema = ( + 23, + n0, + _LAK, + 0, + LIST_ACCESS_KEYS_INPUT, + LIST_ACCESS_KEYS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ACCOUNT_ALIASES_INPUT: StaticSchema = ( + 18, + n0, + _LAAI, + {_sSI: _cLAAR, _s: None}, + (_Ma, _MI), + ((MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ACCOUNT_ALIASES_OUTPUT: StaticSchema = ( + 18, + n0, + _LAAO, + {_sSI: _cLAARo, _smi: None}, + (_AAc, _IT, _Ma), + ( + (ACCOUNT_ALIAS_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ACCOUNT_ALIASES: StaticOperationSchema = ( + 23, + n0, + _LAA, + 0, + LIST_ACCOUNT_ALIASES_INPUT, + LIST_ACCOUNT_ALIASES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_ATTACHED_GROUP_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LAGPI, + {_sSI: _cLAGPR, _s: None}, + (_GN, _PPat, _Ma, _MI), + ( + (GROUP_NAME_TYPE, 1), + (POLICY_PATH_TYPE, 0), + (MARKER_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + ), +) + +LIST_ATTACHED_GROUP_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LAGPO, + {_sSI: _cLAGPRo, _smi: None}, + (_APt, _IT, _Ma), + ( + (ATTACHED_POLICIES_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ATTACHED_GROUP_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LAGP, + 0, + LIST_ATTACHED_GROUP_POLICIES_INPUT, + LIST_ATTACHED_GROUP_POLICIES_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ATTACHED_ROLE_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LARPI, + {_sSI: _cLARPR, _s: None}, + (_RN, _PPat, _Ma, _MI), + ((ROLE_NAME_TYPE, 1), (POLICY_PATH_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ATTACHED_ROLE_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LARPO, + {_sSI: _cLARPRo, _smi: None}, + (_APt, _IT, _Ma), + ( + (ATTACHED_POLICIES_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ATTACHED_ROLE_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LARP, + 0, + LIST_ATTACHED_ROLE_POLICIES_INPUT, + LIST_ATTACHED_ROLE_POLICIES_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ATTACHED_USER_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LAUPI, + {_sSI: _cLAUPR, _s: None}, + (_UN, _PPat, _Ma, _MI), + ((USER_NAME_TYPE, 1), (POLICY_PATH_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ATTACHED_USER_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LAUPO, + {_sSI: _cLAUPRo, _smi: None}, + (_APt, _IT, _Ma), + ( + (ATTACHED_POLICIES_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ATTACHED_USER_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LAUP, + 0, + LIST_ATTACHED_USER_POLICIES_INPUT, + LIST_ATTACHED_USER_POLICIES_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_DELEGATION_REQUESTS_INPUT: StaticSchema = ( + 18, + n0, + _LDRI, + {_sSI: _cLDRR, _s: None}, + (_OIw, _Ma, _MI), + ((OWNER_ID_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +DELEGATION_REQUESTS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _dRLT, + 0, + (_me,), + ((DELEGATION_REQUEST, 0),), +) + +LIST_DELEGATION_REQUESTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDRO, + {_sSI: _cLDRRo, _smi: None}, + (_DRel, _Ma, _iTs), + ( + (DELEGATION_REQUESTS_LIST_TYPE, 0), + (MARKER_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + ), +) + +LIST_DELEGATION_REQUESTS: StaticOperationSchema = ( + 23, + n0, + _LDR, + 0, + LIST_DELEGATION_REQUESTS_INPUT, + LIST_DELEGATION_REQUESTS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +POLICY_USAGE_TYPE: StaticSchema = ( + 14, + n0, + _PUT, + 0, + (_PPer, _PB), + ((-1, {_sV: _PPer}), (-1, {_sV: _PB})), +) + +LIST_ENTITIES_FOR_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _LEFPI, + {_sSI: _cLEFPR, _s: None}, + (_PA, _EFn, _PPat, _PUF, _Ma, _MI), + ( + (ARN_TYPE, 1), + (ENTITY_TYPE, 0), + (PATH_TYPE, 0), + (POLICY_USAGE_TYPE, 0), + (MARKER_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + ), +) + +POLICY_GROUP: StaticSchema = ( + 18, + n0, + _PG, + 0, + (_GN, _GI), + ((GROUP_NAME_TYPE, 0), (ID_TYPE, 0)), +) + +POLICY_GROUP_LIST_TYPE: StaticSchema = (16, n0, _PGLT, 0, (_me,), ((POLICY_GROUP, 0),)) + +POLICY_ROLE: StaticSchema = ( + 18, + n0, + _PR, + 0, + (_RN, _RI), + ((ROLE_NAME_TYPE, 0), (ID_TYPE, 0)), +) + +POLICY_ROLE_LIST_TYPE: StaticSchema = (16, n0, _PRLT, 0, (_me,), ((POLICY_ROLE, 0),)) + +POLICY_USER: StaticSchema = ( + 18, + n0, + _PU, + 0, + (_UN, _UI), + ((USER_NAME_TYPE, 0), (ID_TYPE, 0)), +) + +POLICY_USER_LIST_TYPE: StaticSchema = (16, n0, _PULT, 0, (_me,), ((POLICY_USER, 0),)) + +LIST_ENTITIES_FOR_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _LEFPO, + {_sSI: _cLEFPRo, _smi: None}, + (_PGo, _PUo, _PRo, _IT, _Ma), + ( + (POLICY_GROUP_LIST_TYPE, 0), + (POLICY_USER_LIST_TYPE, 0), + (POLICY_ROLE_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ENTITIES_FOR_POLICY: StaticOperationSchema = ( + 23, + n0, + _LEFP, + 0, + LIST_ENTITIES_FOR_POLICY_INPUT, + LIST_ENTITIES_FOR_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_GROUP_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LGPI, + {_sSI: _cLGPR, _s: None}, + (_GN, _Ma, _MI), + ((GROUP_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +POLICY_NAME_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pNLT, + 0, + (_me,), + ((POLICY_NAME_TYPE, 0),), +) + +LIST_GROUP_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LGPO, + {_sSI: _cLGPRo, _smi: None}, + (_PNo, _IT, _Ma), + ( + (POLICY_NAME_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_GROUP_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LGP, + 0, + LIST_GROUP_POLICIES_INPUT, + LIST_GROUP_POLICIES_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +PATH_PREFIX_TYPE: StaticSchema = (3, n0, _pPTa, 0) + +LIST_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _LGI, + {_sSI: _cLGR, _s: None}, + (_PPat, _Ma, _MI), + ((PATH_PREFIX_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +GROUP_LIST_TYPE: StaticSchema = (16, n0, _gLT, 0, (_me,), ((GROUP, 0),)) + +LIST_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _LGO, + {_sSI: _cLGRo, _smi: None}, + (_Gro, _IT, _Ma), + ((GROUP_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_GROUPS: StaticOperationSchema = ( + 23, + n0, + _LG, + 0, + LIST_GROUPS_INPUT, + LIST_GROUPS_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_GROUPS_FOR_USER_INPUT: StaticSchema = ( + 18, + n0, + _LGFUI, + {_sSI: _cLGFUR, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_GROUPS_FOR_USER_OUTPUT: StaticSchema = ( + 18, + n0, + _LGFUO, + {_sSI: _cLGFURo, _smi: None}, + (_Gro, _IT, _Ma), + ((GROUP_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_GROUPS_FOR_USER: StaticOperationSchema = ( + 23, + n0, + _LGFU, + 0, + LIST_GROUPS_FOR_USER_INPUT, + LIST_GROUPS_FOR_USER_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_INSTANCE_PROFILES_INPUT: StaticSchema = ( + 18, + n0, + _LIPI, + {_sSI: _cLIPR, _s: None}, + (_PPat, _Ma, _MI), + ((PATH_PREFIX_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_INSTANCE_PROFILES_OUTPUT: StaticSchema = ( + 18, + n0, + _LIPO, + {_sSI: _cLIPRo, _smi: None}, + (_IPn, _IT, _Ma), + ( + (INSTANCE_PROFILE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_INSTANCE_PROFILES: StaticOperationSchema = ( + 23, + n0, + _LIP, + 0, + LIST_INSTANCE_PROFILES_INPUT, + LIST_INSTANCE_PROFILES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_INSTANCE_PROFILES_FOR_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _LIPFRI, + {_sSI: _cLIPFRR, _s: None}, + (_RN, _Ma, _MI), + ((ROLE_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_INSTANCE_PROFILES_FOR_ROLE_OUTPUT: StaticSchema = ( + 18, + n0, + _LIPFRO, + {_sSI: _cLIPFRRo, _smi: None}, + (_IPn, _IT, _Ma), + ( + (INSTANCE_PROFILE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_INSTANCE_PROFILES_FOR_ROLE: StaticOperationSchema = ( + 23, + n0, + _LIPFR, + 0, + LIST_INSTANCE_PROFILES_FOR_ROLE_INPUT, + LIST_INSTANCE_PROFILES_FOR_ROLE_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_INSTANCE_PROFILE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LIPTI, + {_sSI: _cLIPTR, _s: None}, + (_IPN, _Ma, _MI), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_INSTANCE_PROFILE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LIPTO, + {_sSI: _cLIPTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_INSTANCE_PROFILE_TAGS: StaticOperationSchema = ( + 23, + n0, + _LIPT, + 0, + LIST_INSTANCE_PROFILE_TAGS_INPUT, + LIST_INSTANCE_PROFILE_TAGS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_MFA_DEVICES_INPUT: StaticSchema = ( + 18, + n0, + _LMFADI, + {_sSI: _cLMFADR, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +MFA_DEVICE: StaticSchema = ( + 18, + n0, + _MFADe, + 0, + (_UN, _SNer, _EDn), + ((USER_NAME_TYPE, 1), (SERIAL_NUMBER_TYPE, 1), (DATE_TYPE, 1)), +) + +MFA_DEVICE_LIST_TYPE: StaticSchema = (16, n0, _mDLT, 0, (_me,), ((MFA_DEVICE, 0),)) + +LIST_MFA_DEVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _LMFADO, + {_sSI: _cLMFADRo, _smi: None}, + (_MFAD, _IT, _Ma), + ( + (MFA_DEVICE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_MFA_DEVICES: StaticOperationSchema = ( + 23, + n0, + _LMFAD, + 0, + LIST_MFA_DEVICES_INPUT, + LIST_MFA_DEVICES_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_MFA_DEVICE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LMFADTI, + {_sSI: _cLMFADTR, _s: None}, + (_SNer, _Ma, _MI), + ((SERIAL_NUMBER_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_MFA_DEVICE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LMFADTO, + {_sSI: _cLMFADTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_MFA_DEVICE_TAGS: StaticOperationSchema = ( + 23, + n0, + _LMFADT, + 0, + LIST_MFA_DEVICE_TAGS_INPUT, + LIST_MFA_DEVICE_TAGS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_OPEN_ID_CONNECT_PROVIDERS_INPUT: StaticSchema = ( + 18, + n0, + _LOIDCPI, + {_sSI: _cLOIDCPR, _s: None}, +) + +OPEN_ID_CONNECT_PROVIDER_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _OIDCPLE, + 0, + (_Ar,), + ((ARN_TYPE, 0),), +) + +OPEN_ID_CONNECT_PROVIDER_LIST_TYPE: StaticSchema = ( + 16, + n0, + _OIDCPLT, + 0, + (_me,), + ((OPEN_ID_CONNECT_PROVIDER_LIST_ENTRY, 0),), +) + +LIST_OPEN_ID_CONNECT_PROVIDERS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOIDCPO, + {_sSI: _cLOIDCPRo, _smi: None}, + (_OIDCPL,), + ((OPEN_ID_CONNECT_PROVIDER_LIST_TYPE, 0),), +) + +LIST_OPEN_ID_CONNECT_PROVIDERS: StaticOperationSchema = ( + 23, + n0, + _LOIDCP, + 0, + LIST_OPEN_ID_CONNECT_PROVIDERS_INPUT, + LIST_OPEN_ID_CONNECT_PROVIDERS_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LOIDCPTI, + {_sSI: _cLOIDCPTR, _s: None}, + (_OIDCPA, _Ma, _MI), + ((ARN_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOIDCPTO, + {_sSI: _cLOIDCPTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_OPEN_ID_CONNECT_PROVIDER_TAGS: StaticOperationSchema = ( + 23, + n0, + _LOIDCPT, + 0, + LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_INPUT, + LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ORGANIZATIONS_FEATURES_INPUT: StaticSchema = ( + 18, + n0, + _LOFI, + {_sSI: _cLOFR, _s: None}, +) + +LIST_ORGANIZATIONS_FEATURES_OUTPUT: StaticSchema = ( + 18, + n0, + _LOFO, + {_sSI: _cLOFRo, _smi: None}, + (_OI, _EF), + ((ORGANIZATION_ID_TYPE, 0), (FEATURES_LIST_TYPE, 0)), +) + +LIST_ORGANIZATIONS_FEATURES: StaticOperationSchema = ( + 23, + n0, + _LOF, + 0, + LIST_ORGANIZATIONS_FEATURES_INPUT, + LIST_ORGANIZATIONS_FEATURES_OUTPUT, + ( + ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION, + ORGANIZATION_NOT_FOUND_EXCEPTION, + ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION, + SERVICE_ACCESS_NOT_ENABLED_EXCEPTION, + ), +) + +POLICY_SCOPE_TYPE: StaticSchema = ( + 14, + n0, + _pST, + 0, + (_All, _AWS, _Lo), + ((-1, {_sV: _All}), (-1, {_sV: _AWS}), (-1, {_sV: _Lo})), +) + +LIST_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LPI, + {_sSI: _cLPR, _s: None}, + (_Sc, _OA, _PPat, _PUF, _Ma, _MI), + ( + (POLICY_SCOPE_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (POLICY_PATH_TYPE, 0), + (POLICY_USAGE_TYPE, 0), + (MARKER_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + ), +) + +POLICY_LIST_TYPE: StaticSchema = (16, n0, _pLT, 0, (_me,), ((POLICY, 0),)) + +LIST_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LPO, + {_sSI: _cLPRo, _smi: None}, + (_Po, _IT, _Ma), + ( + (POLICY_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LPi, + 0, + LIST_POLICIES_INPUT, + LIST_POLICIES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +SERVICE_NAMESPACE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _sNLT, + 0, + (_me,), + ((SERVICE_NAMESPACE_TYPE, 0),), +) + +LIST_POLICIES_GRANTING_SERVICE_ACCESS_INPUT: StaticSchema = ( + 18, + n0, + _LPGSAI, + {_sSI: _cLPGSAR, _s: None}, + (_Ma, _Ar, _SNerv), + ((MARKER_TYPE, 0), (ARN_TYPE, 1), (SERVICE_NAMESPACE_LIST_TYPE, 1)), +) + +ENTITY_NAME_TYPE: StaticSchema = (3, n0, _eNT, 0) + +POLICY_TYPE: StaticSchema = ( + 14, + n0, + _pTo, + 0, + (_INLINE, _MANAGED), + ((-1, {_sV: _INLINE}), (-1, {_sV: _MANAGED})), +) + +POLICY_GRANTING_SERVICE_ACCESS: StaticSchema = ( + 18, + n0, + _PGSA, + 0, + (_PN, _PT, _PA, _ET, _EN), + ( + (POLICY_NAME_TYPE, 1), + (POLICY_TYPE, 1), + (ARN_TYPE, 0), + (POLICY_OWNER_ENTITY_TYPE, 0), + (ENTITY_NAME_TYPE, 0), + ), +) + +POLICY_GRANTING_SERVICE_ACCESS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _pGSALT, + 0, + (_me,), + ((POLICY_GRANTING_SERVICE_ACCESS, 0),), +) + +LIST_POLICIES_GRANTING_SERVICE_ACCESS_ENTRY: StaticSchema = ( + 18, + n0, + _LPGSAE, + 0, + (_SNe, _Po), + ((SERVICE_NAMESPACE_TYPE, 0), (POLICY_GRANTING_SERVICE_ACCESS_LIST_TYPE, 0)), +) + +LIST_POLICY_GRANTING_SERVICE_ACCESS_RESPONSE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _lPGSARLT, + 0, + (_me,), + ((LIST_POLICIES_GRANTING_SERVICE_ACCESS_ENTRY, 0),), +) + +LIST_POLICIES_GRANTING_SERVICE_ACCESS_OUTPUT: StaticSchema = ( + 18, + n0, + _LPGSAO, + {_sSI: _cLPGSARo, _smi: None}, + (_PGSAo, _IT, _Ma), + ( + (LIST_POLICY_GRANTING_SERVICE_ACCESS_RESPONSE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_POLICIES_GRANTING_SERVICE_ACCESS: StaticOperationSchema = ( + 23, + n0, + _LPGSA, + 0, + LIST_POLICIES_GRANTING_SERVICE_ACCESS_INPUT, + LIST_POLICIES_GRANTING_SERVICE_ACCESS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +LIST_POLICY_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LPTI, + {_sSI: _cLPTR, _s: None}, + (_PA, _Ma, _MI), + ((ARN_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_POLICY_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LPTO, + {_sSI: _cLPTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_POLICY_TAGS: StaticOperationSchema = ( + 23, + n0, + _LPT, + 0, + LIST_POLICY_TAGS_INPUT, + LIST_POLICY_TAGS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_POLICY_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _LPVI, + {_sSI: _cLPVR, _s: None}, + (_PA, _Ma, _MI), + ((ARN_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_POLICY_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LPVO, + {_sSI: _cLPVRo, _smi: None}, + (_Ve, _IT, _Ma), + ( + (POLICY_DOCUMENT_VERSION_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_POLICY_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _LPV, + 0, + LIST_POLICY_VERSIONS_INPUT, + LIST_POLICY_VERSIONS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ROLE_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LRPI, + {_sSI: _cLRPR, _s: None}, + (_RN, _Ma, _MI), + ((ROLE_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ROLE_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LRPO, + {_sSI: _cLRPRo, _smi: None}, + (_PNo, _IT, _Ma), + ( + (POLICY_NAME_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_ROLE_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LRP, + 0, + LIST_ROLE_POLICIES_INPUT, + LIST_ROLE_POLICIES_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_ROLES_INPUT: StaticSchema = ( + 18, + n0, + _LRI, + {_sSI: _cLRR, _s: None}, + (_PPat, _Ma, _MI), + ((PATH_PREFIX_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ROLES_OUTPUT: StaticSchema = ( + 18, + n0, + _LRO, + {_sSI: _cLRRo, _smi: None}, + (_Rol, _IT, _Ma), + ((ROLE_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_ROLES: StaticOperationSchema = ( + 23, + n0, + _LR, + 0, + LIST_ROLES_INPUT, + LIST_ROLES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_ROLE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LRTI, + {_sSI: _cLRTR, _s: None}, + (_RN, _Ma, _MI), + ((ROLE_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_ROLE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRTO, + {_sSI: _cLRTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_ROLE_TAGS: StaticOperationSchema = ( + 23, + n0, + _LRT, + 0, + LIST_ROLE_TAGS_INPUT, + LIST_ROLE_TAGS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_SAML_PROVIDERS_INPUT: StaticSchema = ( + 18, + n0, + _LSAMLPI, + {_sSI: _cLSAMLPR, _s: None}, +) + +SAML_PROVIDER_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _SAMLPLE, + 0, + (_Ar, _VU, _CD), + ((ARN_TYPE, 0), (DATE_TYPE, 0), (DATE_TYPE, 0)), +) + +SAML_PROVIDER_LIST_TYPE: StaticSchema = ( + 16, + n0, + _SAMLPLT, + 0, + (_me,), + ((SAML_PROVIDER_LIST_ENTRY, 0),), +) + +LIST_SAML_PROVIDERS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSAMLPO, + {_sSI: _cLSAMLPRo, _smi: None}, + (_SAMLPL,), + ((SAML_PROVIDER_LIST_TYPE, 0),), +) + +LIST_SAML_PROVIDERS: StaticOperationSchema = ( + 23, + n0, + _LSAMLP, + 0, + LIST_SAML_PROVIDERS_INPUT, + LIST_SAML_PROVIDERS_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_SAML_PROVIDER_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LSAMLPTI, + {_sSI: _cLSAMLPTR, _s: None}, + (_SAMLPA, _Ma, _MI), + ((ARN_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_SAML_PROVIDER_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSAMLPTO, + {_sSI: _cLSAMLPTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_SAML_PROVIDER_TAGS: StaticOperationSchema = ( + 23, + n0, + _LSAMLPT, + 0, + LIST_SAML_PROVIDER_TAGS_INPUT, + LIST_SAML_PROVIDER_TAGS_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_SERVER_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _LSCI, + {_sSI: _cLSCR, _s: None}, + (_PPat, _Ma, _MI), + ((PATH_PREFIX_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +SERVER_CERTIFICATE_METADATA_LIST_TYPE: StaticSchema = ( + 16, + n0, + _sCMLT, + 0, + (_me,), + ((SERVER_CERTIFICATE_METADATA, 0),), +) + +LIST_SERVER_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _LSCO, + {_sSI: _cLSCRo, _smi: None}, + (_SCML, _IT, _Ma), + ( + (SERVER_CERTIFICATE_METADATA_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_SERVER_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _LSC, + 0, + LIST_SERVER_CERTIFICATES_INPUT, + LIST_SERVER_CERTIFICATES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_SERVER_CERTIFICATE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LSCTI, + {_sSI: _cLSCTR, _s: None}, + (_SCN, _Ma, _MI), + ((SERVER_CERTIFICATE_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_SERVER_CERTIFICATE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSCTO, + {_sSI: _cLSCTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_SERVER_CERTIFICATE_TAGS: StaticOperationSchema = ( + 23, + n0, + _LSCT, + 0, + LIST_SERVER_CERTIFICATE_TAGS_INPUT, + LIST_SERVER_CERTIFICATE_TAGS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_SERVICE_SPECIFIC_CREDENTIALS_INPUT: StaticSchema = ( + 18, + n0, + _LSSCI, + {_sSI: _cLSSCR, _s: None}, + (_UN, _SN, _AU, _Ma, _MI), + ( + (USER_NAME_TYPE, 0), + (SERVICE_NAME, 0), + (ALL_USERS, 0), + (MARKER_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + ), +) + +SERVICE_SPECIFIC_CREDENTIAL_METADATA: StaticSchema = ( + 18, + n0, + _SSCM, + 0, + (_UN, _S, _SUN, _SCA, _CD, _ED, _SSCI, _SN), + ( + (USER_NAME_TYPE, 1), + (STATUS_TYPE, 1), + (SERVICE_USER_NAME, {_smithy: _v_}), + (SERVICE_CREDENTIAL_ALIAS, 0), + (DATE_TYPE, 1), + (DATE_TYPE, 0), + (SERVICE_SPECIFIC_CREDENTIAL_ID, 1), + (SERVICE_NAME, 1), + ), +) + +SERVICE_SPECIFIC_CREDENTIALS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _SSCLT, + 0, + (_me,), + ((SERVICE_SPECIFIC_CREDENTIAL_METADATA, 0),), +) + +LIST_SERVICE_SPECIFIC_CREDENTIALS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSCO, + {_sSI: _cLSSCRo, _smi: None}, + (_SSCe, _Ma, _IT), + ( + (SERVICE_SPECIFIC_CREDENTIALS_LIST_TYPE, 0), + (RESPONSE_MARKER_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + ), +) + +LIST_SERVICE_SPECIFIC_CREDENTIALS: StaticOperationSchema = ( + 23, + n0, + _LSSC, + 0, + LIST_SERVICE_SPECIFIC_CREDENTIALS_INPUT, + LIST_SERVICE_SPECIFIC_CREDENTIALS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_NOT_SUPPORTED_EXCEPTION), +) + +LIST_SIGNING_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _LSCIi, + {_sSI: _cLSCRom, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +SIGNING_CERTIFICATE: StaticSchema = ( + 18, + n0, + _SCi, + 0, + (_UN, _CI, _CB, _S, _UDp), + ( + (USER_NAME_TYPE, 1), + (CERTIFICATE_ID_TYPE, 1), + (CERTIFICATE_BODY_TYPE, 1), + (STATUS_TYPE, 1), + (DATE_TYPE, 0), + ), +) + +CERTIFICATE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _cLT, + 0, + (_me,), + ((SIGNING_CERTIFICATE, 0),), +) + +LIST_SIGNING_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _LSCOi, + {_sSI: _cLSCRoma, _smi: None}, + (_Cer, _IT, _Ma), + ( + (CERTIFICATE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_SIGNING_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _LSCi, + 0, + LIST_SIGNING_CERTIFICATES_INPUT, + LIST_SIGNING_CERTIFICATES_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_SSH_PUBLIC_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _LSSHPKI, + {_sSI: _cLSSHPKR, _s: None}, + (_UN, _Ma, _MI), + ((USER_NAME_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +SSH_PUBLIC_KEY_METADATA: StaticSchema = ( + 18, + n0, + _SSHPKM, + 0, + (_UN, _SSHPKI, _S, _UDp), + ((USER_NAME_TYPE, 1), (PUBLIC_KEY_ID_TYPE, 1), (STATUS_TYPE, 1), (DATE_TYPE, 1)), +) + +SSH_PUBLIC_KEY_LIST_TYPE: StaticSchema = ( + 16, + n0, + _SSHPKLT, + 0, + (_me,), + ((SSH_PUBLIC_KEY_METADATA, 0),), +) + +LIST_SSH_PUBLIC_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSSHPKO, + {_sSI: _cLSSHPKRo, _smi: None}, + (_SSHPKu, _IT, _Ma), + ( + (SSH_PUBLIC_KEY_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_SSH_PUBLIC_KEYS: StaticOperationSchema = ( + 23, + n0, + _LSSHPK, + 0, + LIST_SSH_PUBLIC_KEYS_INPUT, + LIST_SSH_PUBLIC_KEYS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +LIST_USER_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LUPI, + {_sSI: _cLUPR, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_USER_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LUPO, + {_sSI: _cLUPRo, _smi: None}, + (_PNo, _IT, _Ma), + ( + (POLICY_NAME_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_USER_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LUP, + 0, + LIST_USER_POLICIES_INPUT, + LIST_USER_POLICIES_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_USERS_INPUT: StaticSchema = ( + 18, + n0, + _LUI, + {_sSI: _cLUR, _s: None}, + (_PPat, _Ma, _MI), + ((PATH_PREFIX_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_USERS_OUTPUT: StaticSchema = ( + 18, + n0, + _LUO, + {_sSI: _cLURo, _smi: None}, + (_Use, _IT, _Ma), + ((USER_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_USERS: StaticOperationSchema = ( + 23, + n0, + _LU, + 0, + LIST_USERS_INPUT, + LIST_USERS_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +LIST_USER_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LUTI, + {_sSI: _cLUTR, _s: None}, + (_UN, _Ma, _MI), + ((EXISTING_USER_NAME_TYPE, 1), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +LIST_USER_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LUTO, + {_sSI: _cLUTRo, _smi: None}, + (_Ta, _IT, _Ma), + ((TAG_LIST_TYPE, 1), (BOOLEAN_TYPE, {_smithy: False}), (RESPONSE_MARKER_TYPE, 0)), +) + +LIST_USER_TAGS: StaticOperationSchema = ( + 23, + n0, + _LUT, + 0, + LIST_USER_TAGS_INPUT, + LIST_USER_TAGS_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +LIST_VIRTUAL_MFA_DEVICES_INPUT: StaticSchema = ( + 18, + n0, + _LVMFADI, + {_sSI: _cLVMFADR, _s: None}, + (_AS, _Ma, _MI), + ((ASSIGNMENT_STATUS_TYPE, 0), (MARKER_TYPE, 0), (MAX_ITEMS_TYPE, 0)), +) + +VIRTUAL_MFA_DEVICE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _vMFADLT, + 0, + (_me,), + ((VIRTUAL_MFA_DEVICE, 0),), +) + +LIST_VIRTUAL_MFA_DEVICES_OUTPUT: StaticSchema = ( + 18, + n0, + _LVMFADO, + {_sSI: _cLVMFADRo, _smi: None}, + (_VMFADi, _IT, _Ma), + ( + (VIRTUAL_MFA_DEVICE_LIST_TYPE, 1), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +LIST_VIRTUAL_MFA_DEVICES: StaticOperationSchema = ( + 23, + n0, + _LVMFAD, + 0, + LIST_VIRTUAL_MFA_DEVICES_INPUT, + LIST_VIRTUAL_MFA_DEVICES_OUTPUT, + (), +) + +PUT_ACCOUNT_PROPERTIES_INPUT: StaticSchema = ( + 18, + n0, + _PAPI, + {_sSI: _cPAPR, _s: None}, + (_Pr,), + ((ACCOUNT_PROPERTIES_MAP_TYPE, 1),), +) + +PUT_ACCOUNT_PROPERTIES_OUTPUT: StaticSchema = ( + 18, + n0, + _PAPO, + {_sSI: _cPAPRo, _smi: None}, +) + +PUT_ACCOUNT_PROPERTIES: StaticOperationSchema = ( + 23, + n0, + _PAP, + 0, + PUT_ACCOUNT_PROPERTIES_INPUT, + PUT_ACCOUNT_PROPERTIES_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +PUT_GROUP_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PGPI, + {_sSI: _cPGPR, _s: None}, + (_GN, _PN, _PD), + ((GROUP_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +PUT_GROUP_POLICY_OUTPUT: StaticSchema = (18, n0, _PGPO, {_sSI: _sU, _smi: None}) + +PUT_GROUP_POLICY: StaticOperationSchema = ( + 23, + n0, + _PGP, + 0, + PUT_GROUP_POLICY_INPUT, + PUT_GROUP_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +PUT_ROLE_PERMISSIONS_BOUNDARY_INPUT: StaticSchema = ( + 18, + n0, + _PRPBI, + {_sSI: _cPRPBR, _s: None}, + (_RN, _PB), + ((ROLE_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +PUT_ROLE_PERMISSIONS_BOUNDARY_OUTPUT: StaticSchema = ( + 18, + n0, + _PRPBO, + {_sSI: _sU, _smi: None}, +) + +PUT_ROLE_PERMISSIONS_BOUNDARY: StaticOperationSchema = ( + 23, + n0, + _PRPB, + 0, + PUT_ROLE_PERMISSIONS_BOUNDARY_INPUT, + PUT_ROLE_PERMISSIONS_BOUNDARY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + POLICY_NOT_ATTACHABLE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +PUT_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PRPI, + {_sSI: _cPRPR, _s: None}, + (_RN, _PN, _PD), + ((ROLE_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +PUT_ROLE_POLICY_OUTPUT: StaticSchema = (18, n0, _PRPO, {_sSI: _sU, _smi: None}) + +PUT_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _PRPu, + 0, + PUT_ROLE_POLICY_INPUT, + PUT_ROLE_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +PUT_USER_PERMISSIONS_BOUNDARY_INPUT: StaticSchema = ( + 18, + n0, + _PUPBI, + {_sSI: _cPUPBR, _s: None}, + (_UN, _PB), + ((USER_NAME_TYPE, 1), (ARN_TYPE, 1)), +) + +PUT_USER_PERMISSIONS_BOUNDARY_OUTPUT: StaticSchema = ( + 18, + n0, + _PUPBO, + {_sSI: _sU, _smi: None}, +) + +PUT_USER_PERMISSIONS_BOUNDARY: StaticOperationSchema = ( + 23, + n0, + _PUPB, + 0, + PUT_USER_PERMISSIONS_BOUNDARY_INPUT, + PUT_USER_PERMISSIONS_BOUNDARY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + POLICY_NOT_ATTACHABLE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +PUT_USER_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PUPI, + {_sSI: _cPUPR, _s: None}, + (_UN, _PN, _PD), + ((EXISTING_USER_NAME_TYPE, 1), (POLICY_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +PUT_USER_POLICY_OUTPUT: StaticSchema = (18, n0, _PUPO, {_sSI: _sU, _smi: None}) + +PUT_USER_POLICY: StaticOperationSchema = ( + 23, + n0, + _PUP, + 0, + PUT_USER_POLICY_INPUT, + PUT_USER_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +REJECT_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _RDRI, + {_sSI: _cRDRR, _s: None}, + (_DRI, _No), + ((DELEGATION_REQUEST_ID_TYPE, 1), (NOTES_TYPE, 0)), +) + +REJECT_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _RDRO, + {_sSI: _sU, _smi: None}, +) + +REJECT_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _RDR, + 0, + REJECT_DELEGATION_REQUEST_INPUT, + REJECT_DELEGATION_REQUEST_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _RCIDFOIDCPI, + {_sSI: _cRCIDFOIDCPR, _s: None}, + (_OIDCPA, _CID), + ((ARN_TYPE, 1), (CLIENT_ID_TYPE, 1)), +) + +REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _RCIDFOIDCPO, + {_sSI: _sU, _smi: None}, +) + +REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _RCIDFOIDCP, + 0, + REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_INPUT, + REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +REMOVE_ROLE_FROM_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _RRFIPI, + {_sSI: _cRRFIPR, _s: None}, + (_IPN, _RN), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (ROLE_NAME_TYPE, 1)), +) + +REMOVE_ROLE_FROM_INSTANCE_PROFILE_OUTPUT: StaticSchema = ( + 18, + n0, + _RRFIPO, + {_sSI: _sU, _smi: None}, +) + +REMOVE_ROLE_FROM_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _RRFIP, + 0, + REMOVE_ROLE_FROM_INSTANCE_PROFILE_INPUT, + REMOVE_ROLE_FROM_INSTANCE_PROFILE_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +REMOVE_USER_FROM_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _RUFGI, + {_sSI: _cRUFGR, _s: None}, + (_GN, _UN), + ((GROUP_NAME_TYPE, 1), (EXISTING_USER_NAME_TYPE, 1)), +) + +REMOVE_USER_FROM_GROUP_OUTPUT: StaticSchema = (18, n0, _RUFGO, {_sSI: _sU, _smi: None}) + +REMOVE_USER_FROM_GROUP: StaticOperationSchema = ( + 23, + n0, + _RUFG, + 0, + REMOVE_USER_FROM_GROUP_INPUT, + REMOVE_USER_FROM_GROUP_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, SERVICE_FAILURE_EXCEPTION), +) + +RESET_SERVICE_SPECIFIC_CREDENTIAL_INPUT: StaticSchema = ( + 18, + n0, + _RSSCI, + {_sSI: _cRSSCR, _s: None}, + (_UN, _SSCI), + ((USER_NAME_TYPE, 0), (SERVICE_SPECIFIC_CREDENTIAL_ID, 1)), +) + +RESET_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _RSSCO, + {_sSI: _cRSSCRo, _smi: None}, + (_SSC,), + ((SERVICE_SPECIFIC_CREDENTIAL, 0),), +) + +RESET_SERVICE_SPECIFIC_CREDENTIAL: StaticOperationSchema = ( + 23, + n0, + _RSSC, + 0, + RESET_SERVICE_SPECIFIC_CREDENTIAL_INPUT, + RESET_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +RESYNC_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _RMFADI, + {_sSI: _cRMFADR, _s: None}, + (_UN, _SNer, _ACu, _ACut), + ( + (EXISTING_USER_NAME_TYPE, 1), + (SERIAL_NUMBER_TYPE, 1), + (AUTHENTICATION_CODE_TYPE, 1), + (AUTHENTICATION_CODE_TYPE, 1), + ), +) + +RESYNC_MFA_DEVICE_OUTPUT: StaticSchema = (18, n0, _RMFADO, {_sSI: _sU, _smi: None}) + +RESYNC_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _RMFAD, + 0, + RESYNC_MFA_DEVICE_INPUT, + RESYNC_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_AUTHENTICATION_CODE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +SEND_DELEGATION_TOKEN_INPUT: StaticSchema = ( + 18, + n0, + _SDTI, + {_sSI: _cSDTR, _s: None}, + (_DRI,), + ((DELEGATION_REQUEST_ID_TYPE, 1),), +) + +SEND_DELEGATION_TOKEN_OUTPUT: StaticSchema = (18, n0, _SDTO, {_sSI: _sU, _smi: None}) + +SEND_DELEGATION_TOKEN: StaticOperationSchema = ( + 23, + n0, + _SDT, + 0, + SEND_DELEGATION_TOKEN_INPUT, + SEND_DELEGATION_TOKEN_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +SET_DEFAULT_POLICY_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _SDPVI, + {_sSI: _cSDPVR, _s: None}, + (_PA, _VI), + ((ARN_TYPE, 1), (POLICY_VERSION_ID_TYPE, 1)), +) + +SET_DEFAULT_POLICY_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _SDPVO, + {_sSI: _sU, _smi: None}, +) + +SET_DEFAULT_POLICY_VERSION: StaticOperationSchema = ( + 23, + n0, + _SDPV, + 0, + SET_DEFAULT_POLICY_VERSION_INPUT, + SET_DEFAULT_POLICY_VERSION_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +GLOBAL_ENDPOINT_TOKEN_VERSION: StaticSchema = ( + 14, + n0, + _gETV, + 0, + (_vT, _vTo), + ((-1, {_sV: _vT}), (-1, {_sV: _vTo})), +) + +SET_SECURITY_TOKEN_SERVICE_PREFERENCES_INPUT: StaticSchema = ( + 18, + n0, + _SSTSPI, + {_sSI: _cSSTSPR, _s: None}, + (_GETV,), + ((GLOBAL_ENDPOINT_TOKEN_VERSION, 1),), +) + +SET_SECURITY_TOKEN_SERVICE_PREFERENCES_OUTPUT: StaticSchema = ( + 18, + n0, + _SSTSPO, + {_sSI: _sU, _smi: None}, +) + +SET_SECURITY_TOKEN_SERVICE_PREFERENCES: StaticOperationSchema = ( + 23, + n0, + _SSTSP, + 0, + SET_SECURITY_TOKEN_SERVICE_PREFERENCES_INPUT, + SET_SECURITY_TOKEN_SERVICE_PREFERENCES_OUTPUT, + (SERVICE_FAILURE_EXCEPTION,), +) + +POLICY_EVALUATION_ERROR_MESSAGE: StaticSchema = (3, n0, _pEEM, 0) + +POLICY_EVALUATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _PEE, + { + _smit: _se, + _sE: 500, + _aQE: MappingProxyType({"code": "PolicyEvaluation", "httpResponseCode": 500}), + }, + (_m,), + ((POLICY_EVALUATION_ERROR_MESSAGE, 0),), +) + +RESOURCE_NAME_TYPE: StaticSchema = (3, n0, _RNTe, 0) + +CONTEXT_KEY_TYPE_ENUM: StaticSchema = ( + 14, + n0, + _CKTE, + 0, + ( + _STRING, + _SL_, + _NUMERIC, + _NL_, + _BOOLEAN, + _BL, + _IP__, + _IL, + _BINARY, + _BL_, + _DATE, + _DL, + ), + ( + (-1, {_sV: _st}), + (-1, {_sV: _sL}), + (-1, {_sV: _n}), + (-1, {_sV: _nL}), + (-1, {_sV: _b}), + (-1, {_sV: _bL}), + (-1, {_sV: _i}), + (-1, {_sV: _iL}), + (-1, {_sV: _bi}), + (-1, {_sV: _bLi}), + (-1, {_sV: _d}), + (-1, {_sV: _dL}), + ), +) + +CONTEXT_KEY_VALUE_TYPE: StaticSchema = (3, n0, _CKVT, 0) + +CONTEXT_KEY_VALUE_LIST_TYPE: StaticSchema = ( + 16, + n0, + _CKVLT, + 0, + (_me,), + ((CONTEXT_KEY_VALUE_TYPE, 0),), +) + +CONTEXT_ENTRY: StaticSchema = ( + 18, + n0, + _CE, + 0, + (_CKNo, _CKV, _CKTo), + ( + (CONTEXT_KEY_NAME_TYPE, 0), + (CONTEXT_KEY_VALUE_LIST_TYPE, 0), + (CONTEXT_KEY_TYPE_ENUM, 0), + ), +) + +CONTEXT_ENTRY_LIST_TYPE: StaticSchema = ( + 16, + n0, + _CELT, + 0, + (_me,), + ((CONTEXT_ENTRY, 0),), +) + +ORDERED_ORGANIZATION_POLICY_TYPE: StaticSchema = ( + 18, + n0, + _OOPT, + 0, + (_SCPIL,), + ((SIMULATION_POLICY_LIST_TYPE, 0),), +) + +ORGANIZATION_POLICY_LIST_TYPE: StaticSchema = ( + 16, + n0, + _OPLT, + 0, + (_me,), + ((ORDERED_ORGANIZATION_POLICY_TYPE, 0),), +) + +RESOURCE_NAME_LIST_TYPE: StaticSchema = ( + 16, + n0, + _RNLT, + 0, + (_me,), + ((RESOURCE_NAME_TYPE, 0),), +) + +RESOURCE_HANDLING_OPTION_TYPE: StaticSchema = (3, n0, _RHOT, 0) + +SIMULATE_CUSTOM_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _SCPI, + {_sSI: _cSCPR, _s: None}, + (_PIL, _PBPIL, _OOPIL, _ANct, _RA, _RP, _RO, _CA, _CEo, _RHO, _MI, _Ma), + ( + (SIMULATION_POLICY_LIST_TYPE, 1), + (SIMULATION_POLICY_LIST_TYPE, 0), + (ORGANIZATION_POLICY_LIST_TYPE, 0), + (ACTION_NAME_LIST_TYPE, 1), + (RESOURCE_NAME_LIST_TYPE, 0), + (POLICY_DOCUMENT_TYPE, 0), + (RESOURCE_NAME_TYPE, 0), + (RESOURCE_NAME_TYPE, 0), + (CONTEXT_ENTRY_LIST_TYPE, 0), + (RESOURCE_HANDLING_OPTION_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + (MARKER_TYPE, 0), + ), +) + +POLICY_EVALUATION_DECISION_TYPE: StaticSchema = ( + 14, + n0, + _PEDT, + 0, + (_ALLOWED, _ED_, _ID), + ((-1, {_sV: _a}), (-1, {_sV: _eD}), (-1, {_sV: _iD})), +) + +EVAL_DECISION_SOURCE_TYPE: StaticSchema = (3, n0, _EDST, 0) + +EVAL_DECISION_DETAILS_TYPE: StaticSchema = ( + 17, + n0, + _EDDT, + 0, + (_k, _v), + ((EVAL_DECISION_SOURCE_TYPE, 0), (POLICY_EVALUATION_DECISION_TYPE, 0)), +) + +COLUMN_NUMBER: StaticSchema = (7, n0, _CN, {_smithy: 0}) + +LINE_NUMBER: StaticSchema = (7, n0, _LN, {_smithy: 0}) + +POSITION: StaticSchema = ( + 18, + n0, + _Pos, + 0, + (_Li, _Col), + ((LINE_NUMBER, {_smithy: 0}), (COLUMN_NUMBER, {_smithy: 0})), +) + +POLICY_IDENTIFIER_TYPE: StaticSchema = (3, n0, _PIT, 0) + +POLICY_SOURCE_TYPE: StaticSchema = ( + 14, + n0, + _PST, + 0, + (_USER, _GROUP, _ROLE, _AM, _UM, _RESOURCE, _NONE), + ( + (-1, {_sV: _u}), + (-1, {_sV: _g}), + (-1, {_sV: _r}), + (-1, {_sV: _am}), + (-1, {_sV: _um}), + (-1, {_sV: _re}), + (-1, {_sV: _no}), + ), +) + +STATEMENT: StaticSchema = ( + 18, + n0, + _Sta, + 0, + (_SPI, _SPT, _SPt, _EPn), + ( + (POLICY_IDENTIFIER_TYPE, 0), + (POLICY_SOURCE_TYPE, 0), + (POSITION, 0), + (POSITION, 0), + ), +) + +STATEMENT_LIST_TYPE: StaticSchema = (16, n0, _SLT, 0, (_me,), ((STATEMENT, 0),)) + +ORGANIZATIONS_DECISION_DETAIL: StaticSchema = ( + 18, + n0, + _ODD, + 0, + (_ABO,), + ((BOOLEAN_TYPE, {_smithy: False}),), +) + +PERMISSIONS_BOUNDARY_DECISION_DETAIL: StaticSchema = ( + 18, + n0, + _PBDD, + 0, + (_ABPB,), + ((BOOLEAN_TYPE, {_smithy: False}),), +) + +RESOURCE_SPECIFIC_RESULT: StaticSchema = ( + 18, + n0, + _RSR, + 0, + (_ERN, _ERD, _MS, _MCV, _EDD, _PBDD), + ( + (RESOURCE_NAME_TYPE, 1), + (POLICY_EVALUATION_DECISION_TYPE, 1), + (STATEMENT_LIST_TYPE, 0), + (CONTEXT_KEY_NAMES_RESULT_LIST_TYPE, 0), + (EVAL_DECISION_DETAILS_TYPE, 0), + (PERMISSIONS_BOUNDARY_DECISION_DETAIL, 0), + ), +) + +RESOURCE_SPECIFIC_RESULT_LIST_TYPE: StaticSchema = ( + 16, + n0, + _RSRLT, + 0, + (_me,), + ((RESOURCE_SPECIFIC_RESULT, 0),), +) + +EVALUATION_RESULT: StaticSchema = ( + 18, + n0, + _ER, + 0, + (_EAN, _ERN, _EDv, _MS, _MCV, _ODD, _PBDD, _EDD, _RSRe), + ( + (ACTION_NAME_TYPE, 1), + (RESOURCE_NAME_TYPE, 0), + (POLICY_EVALUATION_DECISION_TYPE, 1), + (STATEMENT_LIST_TYPE, 0), + (CONTEXT_KEY_NAMES_RESULT_LIST_TYPE, 0), + (ORGANIZATIONS_DECISION_DETAIL, 0), + (PERMISSIONS_BOUNDARY_DECISION_DETAIL, 0), + (EVAL_DECISION_DETAILS_TYPE, 0), + (RESOURCE_SPECIFIC_RESULT_LIST_TYPE, 0), + ), +) + +EVALUATION_RESULTS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _ERLT, + 0, + (_me,), + ((EVALUATION_RESULT, 0),), +) + +SIMULATE_CUSTOM_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _SCPO, + {_sSI: _cSPR, _smi: None}, + (_ERv, _IT, _Ma), + ( + (EVALUATION_RESULTS_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +SIMULATE_CUSTOM_POLICY: StaticOperationSchema = ( + 23, + n0, + _SCP, + 0, + SIMULATE_CUSTOM_POLICY_INPUT, + SIMULATE_CUSTOM_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION, POLICY_EVALUATION_EXCEPTION), +) + +INLINE_POLICY_IDENTIFIER_TYPE: StaticSchema = ( + 18, + n0, + _IPIT, + 0, + (_PN, _AT, _AN), + ((POLICY_NAME_TYPE, 1), (ATTACHMENT_TYPE, 1), (ATTACHMENT_NAME, 1)), +) + +POLICY_IDENTIFIER_POLICY_TYPE: StaticSchema = ( + 14, + n0, + _PIPT, + 0, + (_INLINE, _AM, _UM, _PB_, _SCP_, _RCP), + ( + (-1, {_sV: _in}), + (-1, {_sV: _am}), + (-1, {_sV: _um}), + (-1, {_sV: _pb}), + (-1, {_sV: _sc}), + (-1, {_sV: _rc}), + ), +) + +POLICY_IDENTIFIER: StaticSchema = ( + 19, + n0, + _PIo, + 0, + (_PT, _PA, _IPIn), + ( + (POLICY_IDENTIFIER_POLICY_TYPE, 0), + (ARN_TYPE, 0), + (INLINE_POLICY_IDENTIFIER_TYPE, 0), + ), +) + +POLICY_EXCLUSIONS_LIST_TYPE: StaticSchema = ( + 16, + n0, + _PELT, + 0, + (_me,), + ((POLICY_IDENTIFIER, 0),), +) + +SIMULATE_PRINCIPAL_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _SPPI, + {_sSI: _cSPPR, _s: None}, + (_PSA, _PIL, _PBPIL, _PEL, _ANct, _RA, _RP, _RO, _CA, _CEo, _RHO, _MI, _Ma), + ( + (ARN_TYPE, 1), + (SIMULATION_POLICY_LIST_TYPE, 0), + (SIMULATION_POLICY_LIST_TYPE, 0), + (POLICY_EXCLUSIONS_LIST_TYPE, 0), + (ACTION_NAME_LIST_TYPE, 1), + (RESOURCE_NAME_LIST_TYPE, 0), + (POLICY_DOCUMENT_TYPE, 0), + (RESOURCE_NAME_TYPE, 0), + (RESOURCE_NAME_TYPE, 0), + (CONTEXT_ENTRY_LIST_TYPE, 0), + (RESOURCE_HANDLING_OPTION_TYPE, 0), + (MAX_ITEMS_TYPE, 0), + (MARKER_TYPE, 0), + ), +) + +SIMULATE_PRINCIPAL_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _SPPO, + {_sSI: _cSPR, _smi: None}, + (_ERv, _IT, _Ma), + ( + (EVALUATION_RESULTS_LIST_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (RESPONSE_MARKER_TYPE, 0), + ), +) + +SIMULATE_PRINCIPAL_POLICY: StaticOperationSchema = ( + 23, + n0, + _SPP, + 0, + SIMULATE_PRINCIPAL_POLICY_INPUT, + SIMULATE_PRINCIPAL_POLICY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION, POLICY_EVALUATION_EXCEPTION), +) + +TAG_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _TIPI, + {_sSI: _cTIPR, _s: None}, + (_IPN, _Ta), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_INSTANCE_PROFILE_OUTPUT: StaticSchema = (18, n0, _TIPO, {_sSI: _sU, _smi: None}) + +TAG_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _TIP, + 0, + TAG_INSTANCE_PROFILE_INPUT, + TAG_INSTANCE_PROFILE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _TMFADI, + {_sSI: _cTMFADR, _s: None}, + (_SNer, _Ta), + ((SERIAL_NUMBER_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_MFA_DEVICE_OUTPUT: StaticSchema = (18, n0, _TMFADO, {_sSI: _sU, _smi: None}) + +TAG_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _TMFAD, + 0, + TAG_MFA_DEVICE_INPUT, + TAG_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _TOIDCPI, + {_sSI: _cTOIDCPR, _s: None}, + (_OIDCPA, _Ta), + ((ARN_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _TOIDCPO, + {_sSI: _sU, _smi: None}, +) + +TAG_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _TOIDCP, + 0, + TAG_OPEN_ID_CONNECT_PROVIDER_INPUT, + TAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _TPI, + {_sSI: _cTPR, _s: None}, + (_PA, _Ta), + ((ARN_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_POLICY_OUTPUT: StaticSchema = (18, n0, _TPO, {_sSI: _sU, _smi: None}) + +TAG_POLICY: StaticOperationSchema = ( + 23, + n0, + _TP, + 0, + TAG_POLICY_INPUT, + TAG_POLICY_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sSI: _cTRR, _s: None}, + (_RN, _Ta), + ((ROLE_NAME_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_ROLE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _sU, _smi: None}) + +TAG_ROLE: StaticOperationSchema = ( + 23, + n0, + _TR, + 0, + TAG_ROLE_INPUT, + TAG_ROLE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _TSAMLPI, + {_sSI: _cTSAMLPR, _s: None}, + (_SAMLPA, _Ta), + ((ARN_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_SAML_PROVIDER_OUTPUT: StaticSchema = (18, n0, _TSAMLPO, {_sSI: _sU, _smi: None}) + +TAG_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _TSAMLP, + 0, + TAG_SAML_PROVIDER_INPUT, + TAG_SAML_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _TSCI, + {_sSI: _cTSCR, _s: None}, + (_SCN, _Ta), + ((SERVER_CERTIFICATE_NAME_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_SERVER_CERTIFICATE_OUTPUT: StaticSchema = (18, n0, _TSCO, {_sSI: _sU, _smi: None}) + +TAG_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _TSC, + 0, + TAG_SERVER_CERTIFICATE_INPUT, + TAG_SERVER_CERTIFICATE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_USER_INPUT: StaticSchema = ( + 18, + n0, + _TUI, + {_sSI: _cTUR, _s: None}, + (_UN, _Ta), + ((EXISTING_USER_NAME_TYPE, 1), (TAG_LIST_TYPE, 1)), +) + +TAG_USER_OUTPUT: StaticSchema = (18, n0, _TUO, {_sSI: _sU, _smi: None}) + +TAG_USER: StaticOperationSchema = ( + 23, + n0, + _TU, + 0, + TAG_USER_INPUT, + TAG_USER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +TAG_KEY_LIST_TYPE: StaticSchema = (16, n0, _tKLT, 0, (_me,), ((TAG_KEY_TYPE, 0),)) + +UNTAG_INSTANCE_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _UIPI, + {_sSI: _cUIPR, _s: None}, + (_IPN, _TK), + ((INSTANCE_PROFILE_NAME_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_INSTANCE_PROFILE_OUTPUT: StaticSchema = (18, n0, _UIPO, {_sSI: _sU, _smi: None}) + +UNTAG_INSTANCE_PROFILE: StaticOperationSchema = ( + 23, + n0, + _UIP, + 0, + UNTAG_INSTANCE_PROFILE_INPUT, + UNTAG_INSTANCE_PROFILE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_MFA_DEVICE_INPUT: StaticSchema = ( + 18, + n0, + _UMFADI, + {_sSI: _cUMFADR, _s: None}, + (_SNer, _TK), + ((SERIAL_NUMBER_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_MFA_DEVICE_OUTPUT: StaticSchema = (18, n0, _UMFADO, {_sSI: _sU, _smi: None}) + +UNTAG_MFA_DEVICE: StaticOperationSchema = ( + 23, + n0, + _UMFAD, + 0, + UNTAG_MFA_DEVICE_INPUT, + UNTAG_MFA_DEVICE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_OPEN_ID_CONNECT_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _UOIDCPI, + {_sSI: _cUOIDCPR, _s: None}, + (_OIDCPA, _TK), + ((ARN_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _UOIDCPO, + {_sSI: _sU, _smi: None}, +) + +UNTAG_OPEN_ID_CONNECT_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _UOIDCP, + 0, + UNTAG_OPEN_ID_CONNECT_PROVIDER_INPUT, + UNTAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UPI, + {_sSI: _cUPR, _s: None}, + (_PA, _TK), + ((ARN_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_POLICY_OUTPUT: StaticSchema = (18, n0, _UPO, {_sSI: _sU, _smi: None}) + +UNTAG_POLICY: StaticOperationSchema = ( + 23, + n0, + _UP, + 0, + UNTAG_POLICY_INPUT, + UNTAG_POLICY_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sSI: _cURR, _s: None}, + (_RN, _TK), + ((ROLE_NAME_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_ROLE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _sU, _smi: None}) + +UNTAG_ROLE: StaticOperationSchema = ( + 23, + n0, + _UR, + 0, + UNTAG_ROLE_INPUT, + UNTAG_ROLE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _USAMLPI, + {_sSI: _cUSAMLPR, _s: None}, + (_SAMLPA, _TK), + ((ARN_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_SAML_PROVIDER_OUTPUT: StaticSchema = (18, n0, _USAMLPO, {_sSI: _sU, _smi: None}) + +UNTAG_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _USAMLP, + 0, + UNTAG_SAML_PROVIDER_INPUT, + UNTAG_SAML_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _USCI, + {_sSI: _cUSCR, _s: None}, + (_SCN, _TK), + ((SERVER_CERTIFICATE_NAME_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_SERVER_CERTIFICATE_OUTPUT: StaticSchema = (18, n0, _USCO, {_sSI: _sU, _smi: None}) + +UNTAG_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _USC, + 0, + UNTAG_SERVER_CERTIFICATE_INPUT, + UNTAG_SERVER_CERTIFICATE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UNTAG_USER_INPUT: StaticSchema = ( + 18, + n0, + _UUI, + {_sSI: _cUUR, _s: None}, + (_UN, _TK), + ((EXISTING_USER_NAME_TYPE, 1), (TAG_KEY_LIST_TYPE, 1)), +) + +UNTAG_USER_OUTPUT: StaticSchema = (18, n0, _UUO, {_sSI: _sU, _smi: None}) + +UNTAG_USER: StaticOperationSchema = ( + 23, + n0, + _UU, + 0, + UNTAG_USER_INPUT, + UNTAG_USER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_ACCESS_KEY_INPUT: StaticSchema = ( + 18, + n0, + _UAKI, + {_sSI: _cUAKR, _s: None}, + (_UN, _AKI, _S), + ((EXISTING_USER_NAME_TYPE, 0), (ACCESS_KEY_ID_TYPE, 1), (STATUS_TYPE, 1)), +) + +UPDATE_ACCESS_KEY_OUTPUT: StaticSchema = (18, n0, _UAKO, {_sSI: _sU, _smi: None}) + +UPDATE_ACCESS_KEY: StaticOperationSchema = ( + 23, + n0, + _UAK, + 0, + UPDATE_ACCESS_KEY_INPUT, + UPDATE_ACCESS_KEY_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_ACCOUNT_PASSWORD_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UAPPI, + {_sSI: _cUAPPR, _s: None}, + (_MPL, _RSe, _RNe, _RUC, _RLC, _AUTCP, _MPA, _PRP, _HE), + ( + (MINIMUM_PASSWORD_LENGTH_TYPE, 0), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (BOOLEAN_TYPE, {_smithy: False}), + (MAX_PASSWORD_AGE_TYPE, 0), + (PASSWORD_REUSE_PREVENTION_TYPE, 0), + (BOOLEAN_OBJECT_TYPE, 0), + ), +) + +UPDATE_ACCOUNT_PASSWORD_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _UAPPO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_ACCOUNT_PASSWORD_POLICY: StaticOperationSchema = ( + 23, + n0, + _UAPP, + 0, + UPDATE_ACCOUNT_PASSWORD_POLICY_INPUT, + UPDATE_ACCOUNT_PASSWORD_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_ASSUME_ROLE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _UARPI, + {_sSI: _cUARPR, _s: None}, + (_RN, _PD), + ((ROLE_NAME_TYPE, 1), (POLICY_DOCUMENT_TYPE, 1)), +) + +UPDATE_ASSUME_ROLE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _UARPO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_ASSUME_ROLE_POLICY: StaticOperationSchema = ( + 23, + n0, + _UARP, + 0, + UPDATE_ASSUME_ROLE_POLICY_INPUT, + UPDATE_ASSUME_ROLE_POLICY_OUTPUT, + ( + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +UPDATE_DELEGATION_REQUEST_INPUT: StaticSchema = ( + 18, + n0, + _UDRI, + {_sSI: _cUDRR, _s: None}, + (_DRI, _No), + ((DELEGATION_REQUEST_ID_TYPE, 1), (NOTES_TYPE, 0)), +) + +UPDATE_DELEGATION_REQUEST_OUTPUT: StaticSchema = ( + 18, + n0, + _UDRO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_DELEGATION_REQUEST: StaticOperationSchema = ( + 23, + n0, + _UDR, + 0, + UPDATE_DELEGATION_REQUEST_INPUT, + UPDATE_DELEGATION_REQUEST_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _UGI, + {_sSI: _cUGR, _s: None}, + (_GN, _NPe, _NGN), + ((GROUP_NAME_TYPE, 1), (PATH_TYPE, 0), (GROUP_NAME_TYPE, 0)), +) + +UPDATE_GROUP_OUTPUT: StaticSchema = (18, n0, _UGO, {_sSI: _sU, _smi: None}) + +UPDATE_GROUP: StaticOperationSchema = ( + 23, + n0, + _UG, + 0, + UPDATE_GROUP_INPUT, + UPDATE_GROUP_OUTPUT, + ( + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_LOGIN_PROFILE_INPUT: StaticSchema = ( + 18, + n0, + _ULPI, + {_sSI: _cULPR, _s: None}, + (_UN, _Pas, _PRR), + ((USER_NAME_TYPE, 1), (PASSWORD_TYPE, 0), (BOOLEAN_OBJECT_TYPE, 0)), +) + +UPDATE_LOGIN_PROFILE_OUTPUT: StaticSchema = (18, n0, _ULPO, {_sSI: _sU, _smi: None}) + +UPDATE_LOGIN_PROFILE: StaticOperationSchema = ( + 23, + n0, + _ULP, + 0, + UPDATE_LOGIN_PROFILE_INPUT, + UPDATE_LOGIN_PROFILE_OUTPUT, + ( + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + PASSWORD_POLICY_VIOLATION_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_INPUT: StaticSchema = ( + 18, + n0, + _UOIDCPTI, + {_sSI: _cUOIDCPTR, _s: None}, + (_OIDCPA, _TL), + ((ARN_TYPE, 1), (THUMBPRINT_LIST_TYPE, 1)), +) + +UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_OUTPUT: StaticSchema = ( + 18, + n0, + _UOIDCPTO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT: StaticOperationSchema = ( + 23, + n0, + _UOIDCPT, + 0, + UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_INPUT, + UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_ROLE_INPUT: StaticSchema = ( + 18, + n0, + _URIp, + {_sSI: _cURRo, _s: None}, + (_RN, _D, _MSD), + ( + (ROLE_NAME_TYPE, 1), + (ROLE_DESCRIPTION_TYPE, 0), + (ROLE_MAX_SESSION_DURATION_TYPE, 0), + ), +) + +UPDATE_ROLE_OUTPUT: StaticSchema = (18, n0, _UROp, {_sSI: _cURRom, _smi: None}) + +UPDATE_ROLE: StaticOperationSchema = ( + 23, + n0, + _URp, + 0, + UPDATE_ROLE_INPUT, + UPDATE_ROLE_OUTPUT, + ( + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +UPDATE_ROLE_DESCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _URDI, + {_sSI: _cURDR, _s: None}, + (_RN, _D), + ((ROLE_NAME_TYPE, 1), (ROLE_DESCRIPTION_TYPE, 1)), +) + +UPDATE_ROLE_DESCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _URDO, + {_sSI: _cURDRo, _smi: None}, + (_Ro,), + ((ROLE, 0),), +) + +UPDATE_ROLE_DESCRIPTION: StaticOperationSchema = ( + 23, + n0, + _URD, + 0, + UPDATE_ROLE_DESCRIPTION_INPUT, + UPDATE_ROLE_DESCRIPTION_OUTPUT, + ( + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + UNMODIFIABLE_ENTITY_EXCEPTION, + ), +) + +UPDATE_SAML_PROVIDER_INPUT: StaticSchema = ( + 18, + n0, + _USAMLPIp, + {_sSI: _cUSAMLPRo, _s: None}, + (_SAMLMD, _SAMLPA, _AEM, _APK, _RPK), + ( + (SAML_METADATA_DOCUMENT_TYPE, 0), + (ARN_TYPE, 1), + (ASSERTION_ENCRYPTION_MODE_TYPE, 0), + (PRIVATE_KEY_TYPE, 0), + (PRIVATE_KEY_ID_TYPE, 0), + ), +) + +UPDATE_SAML_PROVIDER_OUTPUT: StaticSchema = ( + 18, + n0, + _USAMLPOp, + {_sSI: _cUSAMLPRom, _smi: None}, + (_SAMLPA,), + ((ARN_TYPE, 0),), +) + +UPDATE_SAML_PROVIDER: StaticOperationSchema = ( + 23, + n0, + _USAMLPp, + 0, + UPDATE_SAML_PROVIDER_INPUT, + UPDATE_SAML_PROVIDER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _USCIp, + {_sSI: _cUSCRo, _s: None}, + (_SCN, _NPe, _NSCN), + ( + (SERVER_CERTIFICATE_NAME_TYPE, 1), + (PATH_TYPE, 0), + (SERVER_CERTIFICATE_NAME_TYPE, 0), + ), +) + +UPDATE_SERVER_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _USCOp, + {_sSI: _sU, _smi: None}, +) + +UPDATE_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _USCp, + 0, + UPDATE_SERVER_CERTIFICATE_INPUT, + UPDATE_SERVER_CERTIFICATE_OUTPUT, + ( + ENTITY_ALREADY_EXISTS_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT: StaticSchema = ( + 18, + n0, + _USSCI, + {_sSI: _cUSSCR, _s: None}, + (_UN, _SSCI, _S), + ((USER_NAME_TYPE, 0), (SERVICE_SPECIFIC_CREDENTIAL_ID, 1), (STATUS_TYPE, 1)), +) + +UPDATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _USSCO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_SERVICE_SPECIFIC_CREDENTIAL: StaticOperationSchema = ( + 23, + n0, + _USSC, + 0, + UPDATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT, + UPDATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT, + (NO_SUCH_ENTITY_EXCEPTION,), +) + +UPDATE_SIGNING_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _USCIpd, + {_sSI: _cUSCRom, _s: None}, + (_UN, _CI, _S), + ((EXISTING_USER_NAME_TYPE, 0), (CERTIFICATE_ID_TYPE, 1), (STATUS_TYPE, 1)), +) + +UPDATE_SIGNING_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _USCOpd, + {_sSI: _sU, _smi: None}, +) + +UPDATE_SIGNING_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _USCpd, + 0, + UPDATE_SIGNING_CERTIFICATE_INPUT, + UPDATE_SIGNING_CERTIFICATE_OUTPUT, + ( + INVALID_INPUT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +UPDATE_SSH_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _USSHPKI, + {_sSI: _cUSSHPKR, _s: None}, + (_UN, _SSHPKI, _S), + ((USER_NAME_TYPE, 1), (PUBLIC_KEY_ID_TYPE, 1), (STATUS_TYPE, 1)), +) + +UPDATE_SSH_PUBLIC_KEY_OUTPUT: StaticSchema = (18, n0, _USSHPKO, {_sSI: _sU, _smi: None}) + +UPDATE_SSH_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _USSHPK, + 0, + UPDATE_SSH_PUBLIC_KEY_INPUT, + UPDATE_SSH_PUBLIC_KEY_OUTPUT, + (INVALID_INPUT_EXCEPTION, NO_SUCH_ENTITY_EXCEPTION), +) + +UPDATE_USER_INPUT: StaticSchema = ( + 18, + n0, + _UUIp, + {_sSI: _cUURo, _s: None}, + (_UN, _NPe, _NUN), + ((EXISTING_USER_NAME_TYPE, 1), (PATH_TYPE, 0), (USER_NAME_TYPE, 0)), +) + +UPDATE_USER_OUTPUT: StaticSchema = (18, n0, _UUOp, {_sSI: _sU, _smi: None}) + +UPDATE_USER: StaticOperationSchema = ( + 23, + n0, + _UUp, + 0, + UPDATE_USER_INPUT, + UPDATE_USER_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +KEY_PAIR_MISMATCH_MESSAGE: StaticSchema = (3, n0, _kPMM, 0) + +KEY_PAIR_MISMATCH_EXCEPTION: StaticSchema = ( + 18, + n0, + _KPME, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "KeyPairMismatch", "httpResponseCode": 400}), + }, + (_m,), + ((KEY_PAIR_MISMATCH_MESSAGE, 0),), +) + +MALFORMED_CERTIFICATE_MESSAGE: StaticSchema = (3, n0, _mCM, 0) + +MALFORMED_CERTIFICATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _MCE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "MalformedCertificate", "httpResponseCode": 400} + ), + }, + (_m,), + ((MALFORMED_CERTIFICATE_MESSAGE, 0),), +) + +UPLOAD_SERVER_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _USCIpl, + {_sSI: _cUSCRoma, _s: None}, + (_Pa, _SCN, _CB, _PK, _CC, _Ta), + ( + (PATH_TYPE, 0), + (SERVER_CERTIFICATE_NAME_TYPE, 1), + (CERTIFICATE_BODY_TYPE, 1), + (PRIVATE_KEY_TYPE, 1), + (CERTIFICATE_CHAIN_TYPE, 0), + (TAG_LIST_TYPE, 0), + ), +) + +UPLOAD_SERVER_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _USCOpl, + {_sSI: _cUSCRomam, _smi: None}, + (_SCM, _Ta), + ((SERVER_CERTIFICATE_METADATA, 0), (TAG_LIST_TYPE, 0)), +) + +UPLOAD_SERVER_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _USCpl, + 0, + UPLOAD_SERVER_CERTIFICATE_INPUT, + UPLOAD_SERVER_CERTIFICATE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_INPUT_EXCEPTION, + KEY_PAIR_MISMATCH_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_CERTIFICATE_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DUPLICATE_CERTIFICATE_MESSAGE: StaticSchema = (3, n0, _dCMu, 0) + +DUPLICATE_CERTIFICATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _DCEu, + { + _smit: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "DuplicateCertificate", "httpResponseCode": 409} + ), + }, + (_m,), + ((DUPLICATE_CERTIFICATE_MESSAGE, 0),), +) + +INVALID_CERTIFICATE_MESSAGE: StaticSchema = (3, n0, _iCM, 0) + +INVALID_CERTIFICATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _ICE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidCertificate", "httpResponseCode": 400}), + }, + (_m,), + ((INVALID_CERTIFICATE_MESSAGE, 0),), +) + +UPLOAD_SIGNING_CERTIFICATE_INPUT: StaticSchema = ( + 18, + n0, + _USCIplo, + {_sSI: _cUSCRomama, _s: None}, + (_UN, _CB), + ((EXISTING_USER_NAME_TYPE, 0), (CERTIFICATE_BODY_TYPE, 1)), +) + +UPLOAD_SIGNING_CERTIFICATE_OUTPUT: StaticSchema = ( + 18, + n0, + _USCOplo, + {_sSI: _cUSCRomamaz, _smi: None}, + (_Cert,), + ((SIGNING_CERTIFICATE, 1),), +) + +UPLOAD_SIGNING_CERTIFICATE: StaticOperationSchema = ( + 23, + n0, + _USCplo, + 0, + UPLOAD_SIGNING_CERTIFICATE_INPUT, + UPLOAD_SIGNING_CERTIFICATE_OUTPUT, + ( + CONCURRENT_MODIFICATION_EXCEPTION, + DUPLICATE_CERTIFICATE_EXCEPTION, + ENTITY_ALREADY_EXISTS_EXCEPTION, + INVALID_CERTIFICATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_CERTIFICATE_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + ), +) + +DUPLICATE_SSH_PUBLIC_KEY_MESSAGE: StaticSchema = (3, n0, _dSSHPKM, 0) + +DUPLICATE_SSH_PUBLIC_KEY_EXCEPTION: StaticSchema = ( + 18, + n0, + _DSSHPKE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DuplicateSSHPublicKey", "httpResponseCode": 400} + ), + }, + (_m,), + ((DUPLICATE_SSH_PUBLIC_KEY_MESSAGE, 0),), +) + +INVALID_PUBLIC_KEY_MESSAGE: StaticSchema = (3, n0, _iPKM, 0) + +INVALID_PUBLIC_KEY_EXCEPTION: StaticSchema = ( + 18, + n0, + _IPKE, + { + _smit: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidPublicKey", "httpResponseCode": 400}), + }, + (_m,), + ((INVALID_PUBLIC_KEY_MESSAGE, 0),), +) + +UPLOAD_SSH_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _USSHPKIp, + {_sSI: _cUSSHPKRo, _s: None}, + (_UN, _SSHPKB), + ((USER_NAME_TYPE, 1), (PUBLIC_KEY_MATERIAL_TYPE, 1)), +) + +UPLOAD_SSH_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _USSHPKOp, + {_sSI: _cUSSHPKRom, _smi: None}, + (_SSHPK,), + ((SSH_PUBLIC_KEY, 0),), +) + +UPLOAD_SSH_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _USSHPKp, + 0, + UPLOAD_SSH_PUBLIC_KEY_INPUT, + UPLOAD_SSH_PUBLIC_KEY_OUTPUT, + ( + DUPLICATE_SSH_PUBLIC_KEY_EXCEPTION, + INVALID_PUBLIC_KEY_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NO_SUCH_ENTITY_EXCEPTION, + UNRECOGNIZED_PUBLIC_KEY_ENCODING_EXCEPTION, + ), +) + +AWS_IDENTITY_MANAGEMENT_V20100508: StaticSchema = ( + 21, + n0, + _AWSIMV, + { + _aw: MappingProxyType({"name": "iam"}), + _aQ: None, + _aws: MappingProxyType( + { + "sdkId": "IAM", + "arnNamespace": "iam", + "cloudFormationName": "IAM", + "cloudTrailEventSource": "iam.amazonaws.com", + "endpointPrefix": "iam", + } + ), + _sNm: MappingProxyType({"uri": "https://iam.amazonaws.com/doc/2010-05-08/"}), + }, +) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/aio/__init__.py b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/__init__.py new file mode 100644 index 00000000..4db84838 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncIAMClient + from .config import AsyncIAMConfig + +__all__ = ["AsyncIAMClient", "AsyncIAMConfig"] + +_EXPORTS = {"AsyncIAMClient": ".client", "AsyncIAMConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/aio/client.py b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/client.py new file mode 100644 index 00000000..bc38ba29 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/client.py @@ -0,0 +1,6812 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncIAMConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AcceptDelegationRequestInput, + AcceptDelegationRequestOutput, + AcquireRoleInput, + AcquireRoleOutput, + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + AddRoleToInstanceProfileInput, + AddRoleToInstanceProfileOutput, + AddUserToGroupInput, + AddUserToGroupOutput, + AssociateDelegationRequestInput, + AssociateDelegationRequestOutput, + AttachGroupPolicyInput, + AttachGroupPolicyOutput, + AttachRolePolicyInput, + AttachRolePolicyOutput, + AttachUserPolicyInput, + AttachUserPolicyOutput, + ChangePasswordInput, + ChangePasswordOutput, + CreateAccessKeyInput, + CreateAccessKeyOutput, + CreateAccountAliasInput, + CreateAccountAliasOutput, + CreateDelegationRequestInput, + CreateDelegationRequestOutput, + CreateGroupInput, + CreateGroupOutput, + CreateInstanceProfileInput, + CreateInstanceProfileOutput, + CreateLoginProfileInput, + CreateLoginProfileOutput, + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + CreatePolicyInput, + CreatePolicyOutput, + CreatePolicyVersionInput, + CreatePolicyVersionOutput, + CreateRoleInput, + CreateRoleOutput, + CreateSAMLProviderInput, + CreateSAMLProviderOutput, + CreateServiceLinkedRoleInput, + CreateServiceLinkedRoleOutput, + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + CreateUserInput, + CreateUserOutput, + CreateVirtualMFADeviceInput, + CreateVirtualMFADeviceOutput, + DeactivateMFADeviceInput, + DeactivateMFADeviceOutput, + DeleteAccessKeyInput, + DeleteAccessKeyOutput, + DeleteAccountAliasInput, + DeleteAccountAliasOutput, + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + DeleteGroupInput, + DeleteGroupOutput, + DeleteGroupPolicyInput, + DeleteGroupPolicyOutput, + DeleteInstanceProfileInput, + DeleteInstanceProfileOutput, + DeleteLoginProfileInput, + DeleteLoginProfileOutput, + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + DeletePolicyInput, + DeletePolicyOutput, + DeletePolicyVersionInput, + DeletePolicyVersionOutput, + DeleteRoleInput, + DeleteRoleOutput, + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + DeleteRolePolicyInput, + DeleteRolePolicyOutput, + DeleteSAMLProviderInput, + DeleteSAMLProviderOutput, + DeleteSSHPublicKeyInput, + DeleteSSHPublicKeyOutput, + DeleteServerCertificateInput, + DeleteServerCertificateOutput, + DeleteServiceLinkedRoleInput, + DeleteServiceLinkedRoleOutput, + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + DeleteSigningCertificateInput, + DeleteSigningCertificateOutput, + DeleteUserInput, + DeleteUserOutput, + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + DeleteUserPolicyInput, + DeleteUserPolicyOutput, + DeleteVirtualMFADeviceInput, + DeleteVirtualMFADeviceOutput, + DetachGroupPolicyInput, + DetachGroupPolicyOutput, + DetachRolePolicyInput, + DetachRolePolicyOutput, + DetachUserPolicyInput, + DetachUserPolicyOutput, + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + EnableMFADeviceInput, + EnableMFADeviceOutput, + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + GenerateCredentialReportInput, + GenerateCredentialReportOutput, + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + GetAccessKeyLastUsedInput, + GetAccessKeyLastUsedOutput, + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + GetAccountPasswordPolicyInput, + GetAccountPasswordPolicyOutput, + GetAccountPropertiesInput, + GetAccountPropertiesOutput, + GetAccountSummaryInput, + GetAccountSummaryOutput, + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + GetCredentialReportInput, + GetCredentialReportOutput, + GetDelegationRequestInput, + GetDelegationRequestOutput, + GetGroupInput, + GetGroupOutput, + GetGroupPolicyInput, + GetGroupPolicyOutput, + GetHumanReadableSummaryInput, + GetHumanReadableSummaryOutput, + GetInstanceProfileInput, + GetInstanceProfileOutput, + GetLoginProfileInput, + GetLoginProfileOutput, + GetMFADeviceInput, + GetMFADeviceOutput, + GetOpenIDConnectProviderInput, + GetOpenIDConnectProviderOutput, + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + GetPolicyInput, + GetPolicyOutput, + GetPolicyVersionInput, + GetPolicyVersionOutput, + GetRoleInput, + GetRoleOutput, + GetRolePolicyInput, + GetRolePolicyOutput, + GetRoleTemplateVersionInput, + GetRoleTemplateVersionOutput, + GetSAMLProviderInput, + GetSAMLProviderOutput, + GetSSHPublicKeyInput, + GetSSHPublicKeyOutput, + GetServerCertificateInput, + GetServerCertificateOutput, + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + GetUserInput, + GetUserOutput, + GetUserPolicyInput, + GetUserPolicyOutput, + ListAccessKeysInput, + ListAccessKeysOutput, + ListAccountAliasesInput, + ListAccountAliasesOutput, + ListAttachedGroupPoliciesInput, + ListAttachedGroupPoliciesOutput, + ListAttachedRolePoliciesInput, + ListAttachedRolePoliciesOutput, + ListAttachedUserPoliciesInput, + ListAttachedUserPoliciesOutput, + ListDelegationRequestsInput, + ListDelegationRequestsOutput, + ListEntitiesForPolicyInput, + ListEntitiesForPolicyOutput, + ListGroupPoliciesInput, + ListGroupPoliciesOutput, + ListGroupsForUserInput, + ListGroupsForUserOutput, + ListGroupsInput, + ListGroupsOutput, + ListInstanceProfileTagsInput, + ListInstanceProfileTagsOutput, + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + ListInstanceProfilesInput, + ListInstanceProfilesOutput, + ListMFADeviceTagsInput, + ListMFADeviceTagsOutput, + ListMFADevicesInput, + ListMFADevicesOutput, + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + ListOpenIDConnectProvidersInput, + ListOpenIDConnectProvidersOutput, + ListOrganizationsFeaturesInput, + ListOrganizationsFeaturesOutput, + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + ListPoliciesInput, + ListPoliciesOutput, + ListPolicyTagsInput, + ListPolicyTagsOutput, + ListPolicyVersionsInput, + ListPolicyVersionsOutput, + ListRolePoliciesInput, + ListRolePoliciesOutput, + ListRoleTagsInput, + ListRoleTagsOutput, + ListRolesInput, + ListRolesOutput, + ListSAMLProviderTagsInput, + ListSAMLProviderTagsOutput, + ListSAMLProvidersInput, + ListSAMLProvidersOutput, + ListSSHPublicKeysInput, + ListSSHPublicKeysOutput, + ListServerCertificateTagsInput, + ListServerCertificateTagsOutput, + ListServerCertificatesInput, + ListServerCertificatesOutput, + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + ListSigningCertificatesInput, + ListSigningCertificatesOutput, + ListUserPoliciesInput, + ListUserPoliciesOutput, + ListUserTagsInput, + ListUserTagsOutput, + ListUsersInput, + ListUsersOutput, + ListVirtualMFADevicesInput, + ListVirtualMFADevicesOutput, + PutAccountPropertiesInput, + PutAccountPropertiesOutput, + PutGroupPolicyInput, + PutGroupPolicyOutput, + PutRolePermissionsBoundaryInput, + PutRolePermissionsBoundaryOutput, + PutRolePolicyInput, + PutRolePolicyOutput, + PutUserPermissionsBoundaryInput, + PutUserPermissionsBoundaryOutput, + PutUserPolicyInput, + PutUserPolicyOutput, + RejectDelegationRequestInput, + RejectDelegationRequestOutput, + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + RemoveUserFromGroupInput, + RemoveUserFromGroupOutput, + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + ResyncMFADeviceInput, + ResyncMFADeviceOutput, + SendDelegationTokenInput, + SendDelegationTokenOutput, + SetDefaultPolicyVersionInput, + SetDefaultPolicyVersionOutput, + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + SimulateCustomPolicyInput, + SimulateCustomPolicyOutput, + SimulatePrincipalPolicyInput, + SimulatePrincipalPolicyOutput, + TagInstanceProfileInput, + TagInstanceProfileOutput, + TagMFADeviceInput, + TagMFADeviceOutput, + TagOpenIDConnectProviderInput, + TagOpenIDConnectProviderOutput, + TagPolicyInput, + TagPolicyOutput, + TagRoleInput, + TagRoleOutput, + TagSAMLProviderInput, + TagSAMLProviderOutput, + TagServerCertificateInput, + TagServerCertificateOutput, + TagUserInput, + TagUserOutput, + UntagInstanceProfileInput, + UntagInstanceProfileOutput, + UntagMFADeviceInput, + UntagMFADeviceOutput, + UntagOpenIDConnectProviderInput, + UntagOpenIDConnectProviderOutput, + UntagPolicyInput, + UntagPolicyOutput, + UntagRoleInput, + UntagRoleOutput, + UntagSAMLProviderInput, + UntagSAMLProviderOutput, + UntagServerCertificateInput, + UntagServerCertificateOutput, + UntagUserInput, + UntagUserOutput, + UpdateAccessKeyInput, + UpdateAccessKeyOutput, + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + UpdateAssumeRolePolicyInput, + UpdateAssumeRolePolicyOutput, + UpdateDelegationRequestInput, + UpdateDelegationRequestOutput, + UpdateGroupInput, + UpdateGroupOutput, + UpdateLoginProfileInput, + UpdateLoginProfileOutput, + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + UpdateRoleDescriptionInput, + UpdateRoleDescriptionOutput, + UpdateRoleInput, + UpdateRoleOutput, + UpdateSAMLProviderInput, + UpdateSAMLProviderOutput, + UpdateSSHPublicKeyInput, + UpdateSSHPublicKeyOutput, + UpdateServerCertificateInput, + UpdateServerCertificateOutput, + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + UpdateSigningCertificateInput, + UpdateSigningCertificateOutput, + UpdateUserInput, + UpdateUserOutput, + UploadSSHPublicKeyInput, + UploadSSHPublicKeyOutput, + UploadServerCertificateInput, + UploadServerCertificateOutput, + UploadSigningCertificateInput, + UploadSigningCertificateOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncIAMClient(AsyncClient[AsyncIAMConfig]): + """ + Identity and Access Management (IAM) is a web service for securely + controlling access to Amazon Web Services services. With IAM, you can + centrally manage users, security credentials such as access keys, and + permissions that control which Amazon Web Services resources users and + applications can access. For more information about IAM, see [Identity + and Access Management (IAM)](http://aws.amazon.com/iam/) and the + [Identity and Access Management User + Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/). + + **Programmatic access to IAM** + + We recommend that you use the Amazon Web Services SDKs to make + programmatic API calls to IAM. The Amazon Web Services SDKs consist of + libraries and sample code for various programming languages and + platforms (for example, Java, Ruby, .NET, iOS, and Android). The SDKs + provide a convenient way to create programmatic access to IAM and Amazon + Web Services. For example, the SDKs take care of tasks such as + cryptographically signing requests, managing errors, and retrying + requests automatically. For more information, see [Tools to build on + Amazon Web Services](http://aws.amazon.com/tools/). + + Alternatively, you can also use the IAM Query API to make direct calls + to the IAM service. For more information about calling the IAM Query + API, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *Identity and Access Management User Guide*. IAM supports GET and + POST requests for all actions. That is, the API does not require you to + use GET for some actions and POST for others. However, GET requests are + subject to the limitation size of a URL. Therefore, for operations that + require larger sizes, use a POST request. + + **Signing requests** + + Requests must be signed using an access key ID and a secret access key. + We strongly recommend that you do not use your Amazon Web Services + account access key ID and secret access key for everyday work with IAM. + You can use the access key ID and secret access key for an IAM user or + you can use the Security Token Service to generate temporary security + credentials and use those to sign requests. + + To sign requests, we recommend that you use [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + If you have an existing application that uses Signature Version 2, you + do not have to update it to use Signature Version 4. However, some + operations now require Signature Version 4. The documentation for + operations that require version 4 indicate this requirement. + + **Additional resources** + + - [Amazon Web Services security + credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). + This topic provides general information about the types of credentials + used for accessing Amazon Web Services. + + - [IAM best + practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html). + This topic presents a list of suggestions for using the IAM service to + help secure your Amazon Web Services resources. + + - [Signing Amazon Web Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html). + This set of topics walk you through the process of signing a request + using an access key ID and secret access key. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def accept_delegation_request( + self, input: AcceptDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> AcceptDelegationRequestOutput: + """ + Accepts a delegation request, granting the requested temporary access. + + Once the delegation request is accepted, it is eligible to send the + exchange token to the partner. The + [SendDelegationToken](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SendDelegationToken.html) + API has to be explicitly called to send the delegation token. + + At the time of acceptance, IAM records the details and the state of the + identity that called this API. This is the identity that gets mapped to + the delegated credential. + + An accepted request may be rejected before the exchange token is sent to + the partner. + + Args: + input: + An instance of `AcceptDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptDelegationRequestOutput`. + """ + return await self._invoke(input, _models.ACCEPT_DELEGATION_REQUEST, [], plugins) + + async def acquire_role( + self, input: AcquireRoleInput, plugins: list[Plugin] | None = None + ) -> AcquireRoleOutput: + """ + Creates an IAM role from the specified role template. The new role takes + its configuration---including its name, path, trust policy, inline and + managed policies, permissions boundary, tags, and maximum session + duration---from the role template version that you specify. For more + information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + If the template version defines parameters, use the `ReplacementValues` + parameter to supply the values that the service substitutes into the + role during creation. + + Args: + input: + An instance of `AcquireRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcquireRoleOutput`. + """ + return await self._invoke(input, _models.ACQUIRE_ROLE, [], plugins) + + async def add_client_id_to_open_id_connect_provider( + self, + input: AddClientIDToOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> AddClientIDToOpenIDConnectProviderOutput: + """ + Adds a new client ID (also known as audience) to the list of client IDs + already registered for the specified IAM OpenID Connect (OIDC) provider + resource. + + This operation is idempotent; it does not fail or return an error if you + add an existing client ID to the provider. + + Args: + input: + An instance of `AddClientIDToOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddClientIDToOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def add_role_to_instance_profile( + self, input: AddRoleToInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> AddRoleToInstanceProfileOutput: + """ + Adds the specified IAM role to the specified instance profile. An + instance profile can contain only one role, and this quota cannot be + increased. You can remove the existing role and then add a different + role to an instance profile. You must then wait for the change to appear + across all of Amazon Web Services because of [eventual + consistency](https://en.wikipedia.org/wiki/Eventual_consistency). To + force the change, you must [disassociate the instance + profile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) + and then [associate the instance + profile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), + or you can stop your instance and then restart it. + + Note: + The caller of this operation must be granted the `PassRole` permission + on the IAM role by a permissions policy. + Warning: + When using the + [iam:AssociatedResourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#available-keys-for-iam) + condition in a policy to restrict the + [PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) + IAM action, special considerations apply if the policy is intended to + define access for the `AddRoleToInstanceProfile` action. In this case, + you cannot specify a Region or instance ID in the EC2 instance ARN. The + ARN value must be `arn:aws:ec2:*:CallerAccountId:instance/*`. Using any + other ARN value may lead to unexpected evaluation results. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For more information about instance profiles, + see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AddRoleToInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToInstanceProfileOutput`. + """ + return await self._invoke( + input, _models.ADD_ROLE_TO_INSTANCE_PROFILE, [], plugins + ) + + async def add_user_to_group( + self, input: AddUserToGroupInput, plugins: list[Plugin] | None = None + ) -> AddUserToGroupOutput: + """ + Adds the specified user to the specified group. + + Args: + input: + An instance of `AddUserToGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddUserToGroupOutput`. + """ + return await self._invoke(input, _models.ADD_USER_TO_GROUP, [], plugins) + + async def associate_delegation_request( + self, + input: AssociateDelegationRequestInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDelegationRequestOutput: + """ + Associates a delegation request with the current identity. + + If the partner that created the delegation request has specified the + owner account during creation, only an identity from that owner account + can call the `AssociateDelegationRequest` API for the specified + delegation request. Once the `AssociateDelegationRequest` API call is + successful, the ARN of the current calling identity will be stored as + the `ownerId` of the request. + + If the partner that created the delegation request has not specified the + owner account during creation, any caller from any account can call the + `AssociateDelegationRequest` API for the delegation request. Once this + API call is successful, the ARN of the current calling identity will be + stored as the `ownerId` and the Amazon Web Services account ID of the + current calling identity will be stored as the `ownerAccount` of the + request. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `AssociateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDelegationRequestOutput`. + """ + return await self._invoke( + input, _models.ASSOCIATE_DELEGATION_REQUEST, [], plugins + ) + + async def attach_group_policy( + self, input: AttachGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> AttachGroupPolicyOutput: + """ + Attaches the specified managed policy to the specified IAM group. + + You use this operation to attach a managed policy to a group. To embed + an inline policy in a group, use + [`PutGroupPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html) + . + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachGroupPolicyOutput`. + """ + return await self._invoke(input, _models.ATTACH_GROUP_POLICY, [], plugins) + + async def attach_role_policy( + self, input: AttachRolePolicyInput, plugins: list[Plugin] | None = None + ) -> AttachRolePolicyOutput: + """ + Attaches the specified managed policy to the specified IAM role. When + you attach a managed policy to a role, the managed policy becomes part + of the role's permission (access) policy. + + Note: + You cannot use a managed policy as the role's trust policy. The role's + trust policy is created at the same time as the role, using + [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) + . You can update a role's trust policy using + [`UpdateAssumerolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html) + . + + Use this operation to attach a *managed* policy to a role. To embed an + inline policy in a role, use + [`PutRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html) + . For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachRolePolicyOutput`. + """ + return await self._invoke(input, _models.ATTACH_ROLE_POLICY, [], plugins) + + async def attach_user_policy( + self, input: AttachUserPolicyInput, plugins: list[Plugin] | None = None + ) -> AttachUserPolicyOutput: + """ + Attaches the specified managed policy to the specified user. + + You use this operation to attach a *managed* policy to a user. To embed + an inline policy in a user, use + [`PutUserPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html) + . + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachUserPolicyOutput`. + """ + return await self._invoke(input, _models.ATTACH_USER_POLICY, [], plugins) + + async def change_password( + self, input: ChangePasswordInput, plugins: list[Plugin] | None = None + ) -> ChangePasswordOutput: + """ + Changes the password of the IAM user who is calling this operation. This + operation can be performed using the CLI, the Amazon Web Services API, + or the **My Security Credentials** page in the Amazon Web Services + Management Console. The Amazon Web Services account root user password + is not affected by this operation. + + Use + [UpdateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html) + to use the CLI, the Amazon Web Services API, or the **Users** page in + the IAM console to change the password for any IAM user. For more + information about modifying passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ChangePasswordInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ChangePasswordOutput`. + """ + return await self._invoke(input, _models.CHANGE_PASSWORD, [], plugins) + + async def create_access_key( + self, input: CreateAccessKeyInput, plugins: list[Plugin] | None = None + ) -> CreateAccessKeyOutput: + """ + Creates a new Amazon Web Services secret access key and corresponding + Amazon Web Services access key ID for the specified user. The default + status for new keys is `Active`. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials. This is true even if + the Amazon Web Services account has no associated users. + + For information about quotas on the number of keys you can create, see + [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Warning: + To ensure the security of your Amazon Web Services account, the secret + access key is accessible only during key and user creation. You must + save the key (for example, in a text file) if you want to be able to + access it again. If a secret key is lost, you can delete the access keys + for the associated user and then create new keys. + + Args: + input: + An instance of `CreateAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAccessKeyOutput`. + """ + return await self._invoke(input, _models.CREATE_ACCESS_KEY, [], plugins) + + async def create_account_alias( + self, input: CreateAccountAliasInput, plugins: list[Plugin] | None = None + ) -> CreateAccountAliasOutput: + """ + Creates an alias for your Amazon Web Services account. For information + about using an Amazon Web Services account alias, see [Creating, + deleting, and listing an Amazon Web Services account + alias](https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html) + in the *Amazon Web Services Sign-In User Guide*. + + Args: + input: + An instance of `CreateAccountAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAccountAliasOutput`. + """ + return await self._invoke(input, _models.CREATE_ACCOUNT_ALIAS, [], plugins) + + async def create_delegation_request( + self, input: CreateDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> CreateDelegationRequestOutput: + """ + Creates an IAM delegation request for temporary access delegation. + + This API is not available for general use. In order to use this API, a + caller first need to go through an onboarding process described in the + [partner onboarding + documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation-partner-guide.html). + + Args: + input: + An instance of `CreateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDelegationRequestOutput`. + """ + return await self._invoke(input, _models.CREATE_DELEGATION_REQUEST, [], plugins) + + async def create_group( + self, input: CreateGroupInput, plugins: list[Plugin] | None = None + ) -> CreateGroupOutput: + """ + Creates a new group. + + For information about the number of groups you can create, see [IAM and + STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_GROUP, [], plugins) + + async def create_instance_profile( + self, input: CreateInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> CreateInstanceProfileOutput: + """ + Creates a new instance profile. For information about instance profiles, + see [Using roles for applications on Amazon + EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) + in the *IAM User Guide*, and [Instance + profiles](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile) + in the *Amazon EC2 User Guide*. + + For information about the number of instance profiles you can create, + see [IAM object + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceProfileOutput`. + """ + return await self._invoke(input, _models.CREATE_INSTANCE_PROFILE, [], plugins) + + async def create_login_profile( + self, input: CreateLoginProfileInput, plugins: list[Plugin] | None = None + ) -> CreateLoginProfileOutput: + """ + Creates a password for the specified IAM user. A password allows an IAM + user to access Amazon Web Services services through the Amazon Web + Services Management Console. + + You can use the CLI, the Amazon Web Services API, or the **Users** page + in the IAM console to create a password for any IAM user. Use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to update your own existing password in the **My Security Credentials** + page in the Amazon Web Services Management Console. + + For more information about managing passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLoginProfileOutput`. + """ + return await self._invoke(input, _models.CREATE_LOGIN_PROFILE, [], plugins) + + async def create_open_id_connect_provider( + self, + input: CreateOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> CreateOpenIDConnectProviderOutput: + """ + Creates an IAM entity to describe an identity provider (IdP) that + supports [OpenID Connect (OIDC)](http://openid.net/connect/). + + The OIDC provider that you create with this operation can be used as a + principal in a role's trust policy. Such a policy establishes a trust + relationship between Amazon Web Services and the OIDC provider. + + If you are using an OIDC identity provider from Google, Facebook, or + Amazon Cognito, you don't need to create a separate IAM identity + provider. These OIDC identity providers are already built-in to Amazon + Web Services and are available for your use. Instead, you can move + directly to creating new roles using your identity provider. To learn + more, see [Creating a role for web identity or OpenID connect + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html) + in the *IAM User Guide*. + + When you create the IAM OIDC provider, you specify the following: + + - The URL of the OIDC identity provider (IdP) to trust + + - A list of client IDs (also known as audiences) that identify the + application or applications allowed to authenticate using the OIDC + provider + + - A list of tags that are attached to the specified IAM OIDC provider + + - A list of thumbprints of one or more server certificates that the IdP + uses + + You get all of this information from the OIDC IdP you want to use to + access Amazon Web Services. + + Note: + Amazon Web Services secures communication with OIDC identity providers + (IdPs) using our library of trusted root certificate authorities (CAs) + to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If + your OIDC IdP relies on a certificate that is not signed by one of these + trusted CAs, only then we secure communication using the thumbprints set + in the IdP's configuration. + Note: + The trust for the OIDC provider is derived from the IAM provider that + this operation creates. Therefore, it is best to limit access to the + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) + operation to highly privileged users. + + Args: + input: + An instance of `CreateOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.CREATE_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def create_policy( + self, input: CreatePolicyInput, plugins: list[Plugin] | None = None + ) -> CreatePolicyOutput: + """ + Creates a new managed policy for your Amazon Web Services account. + + This operation creates a policy version with a version identifier of + `v1` and sets v1 as the policy's default version. For more information + about policy versions, see [Versioning for managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about managed policies in general, see [Managed + policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreatePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePolicyOutput`. + """ + return await self._invoke(input, _models.CREATE_POLICY, [], plugins) + + async def create_policy_version( + self, input: CreatePolicyVersionInput, plugins: list[Plugin] | None = None + ) -> CreatePolicyVersionOutput: + """ + Creates a new version of the specified managed policy. To update a + managed policy, you create a new policy version. A managed policy can + have up to five versions. If the policy has five versions, you must + delete an existing version using + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html) + before you create a new version. + + Optionally, you can set the new version as the policy's default + version. The default version is the version that is in effect for the + IAM users, groups, and roles to which the policy is attached. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreatePolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePolicyVersionOutput`. + """ + return await self._invoke(input, _models.CREATE_POLICY_VERSION, [], plugins) + + async def create_role( + self, input: CreateRoleInput, plugins: list[Plugin] | None = None + ) -> CreateRoleOutput: + """ + Creates a new role for your Amazon Web Services account. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For information about quotas for role names and + the number of roles you can create, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRoleOutput`. + """ + return await self._invoke(input, _models.CREATE_ROLE, [], plugins) + + async def create_saml_provider( + self, input: CreateSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> CreateSAMLProviderOutput: + """ + Creates an IAM resource that describes an identity provider (IdP) that + supports SAML 2.0. + + The SAML provider resource that you create with this operation can be + used as a principal in an IAM role's trust policy. Such a policy can + enable federated users who sign in using the SAML IdP to assume the + role. You can create an IAM role that supports Web-based single sign-on + (SSO) to the Amazon Web Services Management Console or one that supports + API access to Amazon Web Services. + + When you create the SAML provider resource, you upload a SAML metadata + document that you get from your IdP. That document includes the + issuer's name, expiration information, and keys that can be used to + validate the SAML authentication response (assertions) that the IdP + sends. You must generate the metadata document using the identity + management software that is used as your organization's IdP. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + For more information, see [Enabling SAML 2.0 federated users to access + the Amazon Web Services Management + Console](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html) + and [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSAMLProviderOutput`. + """ + return await self._invoke(input, _models.CREATE_SAML_PROVIDER, [], plugins) + + async def create_service_linked_role( + self, input: CreateServiceLinkedRoleInput, plugins: list[Plugin] | None = None + ) -> CreateServiceLinkedRoleOutput: + """ + Creates an IAM role that is linked to a specific Amazon Web Services + service. The service controls the attached policies and when the role + can be deleted. This helps ensure that the service is not broken by an + unexpectedly changed or deleted role, which could put your Amazon Web + Services resources into an unknown state. Allowing the service to + control the role helps improve service stability and proper cleanup when + a service and its role are no longer needed. For more information, see + [Using service-linked + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) + in the *IAM User Guide*. + + To attach a policy to this service-linked role, you must make the + request using the Amazon Web Services service that depends on this role. + + Args: + input: + An instance of `CreateServiceLinkedRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceLinkedRoleOutput`. + """ + return await self._invoke( + input, _models.CREATE_SERVICE_LINKED_ROLE, [], plugins + ) + + async def create_service_specific_credential( + self, + input: CreateServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> CreateServiceSpecificCredentialOutput: + """ + Generates a set of credentials consisting of a user name and password + that can be used to access the service specified in the request. These + credentials are generated by IAM, and can be used only for the specified + service. + + You can have a maximum of two sets of service-specific credentials for + each supported service per user. + + You can reset the password to a new service-generated value by calling + [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html). + + For more information about using service-specific credentials to + authenticate to an Amazon Web Services service, refer to the following + docs: + + - For service-specific credentials with CodeCommit, refer to [IAM + credentials for CodeCommit: Git credentials, SSH keys, and Amazon Web + Services access + keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html) + in the *IAM User Guide*. + + - For service-specific credentials with Amazon Keyspaces (for Apache + Cassandra), refer to [Use IAM with Amazon Keyspaces (for Apache + Cassandra)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_keyspaces.html) + in the *IAM User Guide*. + + - For services that support long-term API keys, refer to [API keys for + Amazon Web Services + services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_api_keys_for_aws_services.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceSpecificCredentialOutput`. + """ + return await self._invoke( + input, _models.CREATE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + async def create_user( + self, input: CreateUserInput, plugins: list[Plugin] | None = None + ) -> CreateUserOutput: + """ + Creates a new IAM user for your Amazon Web Services account. + + For information about quotas for the number of IAM users you can create, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateUserOutput`. + """ + return await self._invoke(input, _models.CREATE_USER, [], plugins) + + async def create_virtual_mfa_device( + self, input: CreateVirtualMFADeviceInput, plugins: list[Plugin] | None = None + ) -> CreateVirtualMFADeviceOutput: + """ + Creates a new virtual MFA device for the Amazon Web Services account. + After creating the virtual MFA, use + [EnableMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) + to attach the MFA device to an IAM user. For more information about + creating and working with virtual MFA devices, see [Using a virtual MFA + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + For information about the maximum number of MFA devices you can create, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Warning: + The seed information contained in the QR code and the Base32 string + should be treated like any other secret access information. In other + words, protect the seed information as you would your Amazon Web + Services access keys or your passwords. After you provision your virtual + device, you should ensure that the information is destroyed following + secure procedures. + + Args: + input: + An instance of `CreateVirtualMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVirtualMFADeviceOutput`. + """ + return await self._invoke(input, _models.CREATE_VIRTUAL_MFA_DEVICE, [], plugins) + + async def deactivate_mfa_device( + self, input: DeactivateMFADeviceInput, plugins: list[Plugin] | None = None + ) -> DeactivateMFADeviceOutput: + """ + Deactivates the specified MFA device and removes it from association + with the user name for which it was originally enabled. + + For more information about creating and working with virtual MFA + devices, see [Enabling a virtual multi-factor authentication (MFA) + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeactivateMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateMFADeviceOutput`. + """ + return await self._invoke(input, _models.DEACTIVATE_MFA_DEVICE, [], plugins) + + async def delete_access_key( + self, input: DeleteAccessKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteAccessKeyOutput: + """ + Deletes the access key pair associated with the specified IAM user. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Args: + input: + An instance of `DeleteAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccessKeyOutput`. + """ + return await self._invoke(input, _models.DELETE_ACCESS_KEY, [], plugins) + + async def delete_account_alias( + self, input: DeleteAccountAliasInput, plugins: list[Plugin] | None = None + ) -> DeleteAccountAliasOutput: + """ + Deletes the specified Amazon Web Services account alias. For information + about using an Amazon Web Services account alias, see [Creating, + deleting, and listing an Amazon Web Services account + alias](https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html) + in the *Amazon Web Services Sign-In User Guide*. + + Args: + input: + An instance of `DeleteAccountAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountAliasOutput`. + """ + return await self._invoke(input, _models.DELETE_ACCOUNT_ALIAS, [], plugins) + + async def delete_account_password_policy( + self, + input: DeleteAccountPasswordPolicyInput, + plugins: list[Plugin] | None = None, + ) -> DeleteAccountPasswordPolicyOutput: + """ + Deletes the password policy for the Amazon Web Services account. There + are no parameters. + + Args: + input: + An instance of `DeleteAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountPasswordPolicyOutput`. + """ + return await self._invoke( + input, _models.DELETE_ACCOUNT_PASSWORD_POLICY, [], plugins + ) + + async def delete_group( + self, input: DeleteGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteGroupOutput: + """ + Deletes the specified IAM group. The group must not contain any users or + have any attached policies. + + Args: + input: + An instance of `DeleteGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_GROUP, [], plugins) + + async def delete_group_policy( + self, input: DeleteGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteGroupPolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM group. + + A group can also have managed policies attached to it. To detach a + managed policy from a group, use + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGroupPolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_GROUP_POLICY, [], plugins) + + async def delete_instance_profile( + self, input: DeleteInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> DeleteInstanceProfileOutput: + """ + Deletes the specified instance profile. The instance profile must not + have an associated role. + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + instance profile you are about to delete. Deleting a role or instance + profile that is associated with a running instance will break any + applications running on the instance. + + For more information about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceProfileOutput`. + """ + return await self._invoke(input, _models.DELETE_INSTANCE_PROFILE, [], plugins) + + async def delete_login_profile( + self, input: DeleteLoginProfileInput, plugins: list[Plugin] | None = None + ) -> DeleteLoginProfileOutput: + """ + Deletes the password for the specified IAM user or root user, For more + information, see [Managing passwords for IAM + users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html). + + You can use the CLI, the Amazon Web Services API, or the **Users** page + in the IAM console to delete a password for any IAM user. You can use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to update, but not delete, your own password in the **My Security + Credentials** page in the Amazon Web Services Management Console. + + Warning: + Deleting a user's password does not prevent a user from accessing + Amazon Web Services through the command line interface or the API. To + prevent all user access, you must also either make any access keys + inactive or delete them. For more information about making keys inactive + or deleting them, see + [UpdateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) + and + [DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html). + + Args: + input: + An instance of `DeleteLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLoginProfileOutput`. + """ + return await self._invoke(input, _models.DELETE_LOGIN_PROFILE, [], plugins) + + async def delete_open_id_connect_provider( + self, + input: DeleteOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> DeleteOpenIDConnectProviderOutput: + """ + Deletes an OpenID Connect identity provider (IdP) resource object in + IAM. + + Deleting an IAM OIDC provider resource does not update any roles that + reference the provider as a principal in their trust policies. Any + attempt to assume a role that references a deleted provider fails. + + This operation is idempotent; it does not fail or return an error if you + call the operation for a provider that does not exist. + + Args: + input: + An instance of `DeleteOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.DELETE_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def delete_policy( + self, input: DeletePolicyInput, plugins: list[Plugin] | None = None + ) -> DeletePolicyOutput: + """ + Deletes the specified managed policy. + + Before you can delete a managed policy, you must first detach the policy + from all users, groups, and roles that it is attached to. In addition, + you must delete all the policy's versions. The following steps describe + the process for deleting a managed policy: + + - Detach the policy from all users, groups, and roles that the policy is + attached to, using + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html), + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html), + or + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html). + To list all the users, groups, and roles that a policy is attached to, + use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + + - Delete all versions of the policy using + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html). + To list the policy's versions, use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + You cannot use + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html) + to delete the version that is marked as the default version. You + delete the policy's default version in the next step of the process. + + - Delete the policy (this automatically deletes the policy's default + version) using this operation. + + For information about managed policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeletePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_POLICY, [], plugins) + + async def delete_policy_version( + self, input: DeletePolicyVersionInput, plugins: list[Plugin] | None = None + ) -> DeletePolicyVersionOutput: + """ + Deletes the specified version from the specified managed policy. + + You cannot delete the default version from a policy using this + operation. To delete the default version from a policy, use + [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html). + To find out which version of a policy is marked as the default version, + use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + + For information about versions for managed policies, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeletePolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePolicyVersionOutput`. + """ + return await self._invoke(input, _models.DELETE_POLICY_VERSION, [], plugins) + + async def delete_role( + self, input: DeleteRoleInput, plugins: list[Plugin] | None = None + ) -> DeleteRoleOutput: + """ + Deletes the specified role. Unlike the Amazon Web Services Management + Console, when you delete a role programmatically, you must delete the + items attached to the role manually, or the deletion fails. For more + information, see [Deleting an IAM + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#roles-managingrole-deleting-cli). + Before attempting to delete a role, remove the following attached items: + + - Inline policies + ([DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)) + + - Attached managed policies + ([DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)) + + - Instance profile + ([RemoveRoleFromInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html)) + + - Optional -- Delete instance profile after detaching from role for + resource clean up + ([DeleteInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html)) + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + role you are about to delete. Deleting a role or instance profile that + is associated with a running instance will break any applications + running on the instance. + + Args: + input: + An instance of `DeleteRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRoleOutput`. + """ + return await self._invoke(input, _models.DELETE_ROLE, [], plugins) + + async def delete_role_permissions_boundary( + self, + input: DeleteRolePermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteRolePermissionsBoundaryOutput: + """ + Deletes the permissions boundary for the specified IAM role. + + You cannot set the boundary for a service-linked role. + + Warning: + Deleting the permissions boundary for a role might increase its + permissions. For example, it might allow anyone who assumes the role to + perform all the actions granted in its permissions policies. + + Args: + input: + An instance of `DeleteRolePermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRolePermissionsBoundaryOutput`. + """ + return await self._invoke( + input, _models.DELETE_ROLE_PERMISSIONS_BOUNDARY, [], plugins + ) + + async def delete_role_policy( + self, input: DeleteRolePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteRolePolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM role. + + A role can also have managed policies attached to it. To detach a + managed policy from a role, use + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRolePolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_ROLE_POLICY, [], plugins) + + async def delete_saml_provider( + self, input: DeleteSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> DeleteSAMLProviderOutput: + """ + Deletes a SAML provider resource in IAM. + + Deleting the provider resource from IAM does not update any roles that + reference the SAML provider resource's ARN as a principal in their + trust policies. Any attempt to assume a role that references a + non-existent provider resource ARN fails. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `DeleteSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSAMLProviderOutput`. + """ + return await self._invoke(input, _models.DELETE_SAML_PROVIDER, [], plugins) + + async def delete_server_certificate( + self, input: DeleteServerCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteServerCertificateOutput: + """ + Deletes the specified server certificate. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Warning: + If you are using a server certificate with Elastic Load Balancing, + deleting the certificate could have implications for your application. + If Elastic Load Balancing doesn't detect the deletion of bound + certificates, it may continue to use the certificates. This could cause + Elastic Load Balancing to stop accepting traffic. We recommend that you + remove the reference to the certificate from Elastic Load Balancing + before using this command to delete the certificate. For more + information, see + [DeleteLoadBalancerListeners](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html) + in the *Elastic Load Balancing API Reference*. + + Args: + input: + An instance of `DeleteServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServerCertificateOutput`. + """ + return await self._invoke(input, _models.DELETE_SERVER_CERTIFICATE, [], plugins) + + async def delete_service_linked_role( + self, input: DeleteServiceLinkedRoleInput, plugins: list[Plugin] | None = None + ) -> DeleteServiceLinkedRoleOutput: + """ + Submits a service-linked role deletion request and returns a + `DeletionTaskId`, which you can use to check the status of the deletion. + Before you call this operation, confirm that the role has no active + sessions and that any resources used by the role in the linked service + are deleted. If you call this operation more than once for the same + service-linked role and an earlier deletion task is not complete, then + the `DeletionTaskId` of the earlier request is returned. + + If you submit a deletion request for a service-linked role whose linked + service is still accessing a resource, then the deletion task fails. If + it fails, the + [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) + operation returns the reason for the failure, usually including the + resources that must be deleted. To delete the service-linked role, you + must first remove those resources from the linked service and then + submit the deletion request again. Resources are specific to the service + that is linked to the role. For more information about removing + resources from a service, see the [Amazon Web Services + documentation](http://docs.aws.amazon.com/) for your service. + + For more information about service-linked roles, see [Roles terms and + concepts: Amazon Web Services service-linked + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteServiceLinkedRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceLinkedRoleOutput`. + """ + return await self._invoke( + input, _models.DELETE_SERVICE_LINKED_ROLE, [], plugins + ) + + async def delete_service_specific_credential( + self, + input: DeleteServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> DeleteServiceSpecificCredentialOutput: + """ + Deletes the specified service-specific credential. + + Args: + input: + An instance of `DeleteServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceSpecificCredentialOutput`. + """ + return await self._invoke( + input, _models.DELETE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + async def delete_signing_certificate( + self, input: DeleteSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteSigningCertificateOutput: + """ + Deletes a signing certificate associated with the specified IAM user. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated IAM users. + + Args: + input: + An instance of `DeleteSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSigningCertificateOutput`. + """ + return await self._invoke( + input, _models.DELETE_SIGNING_CERTIFICATE, [], plugins + ) + + async def delete_ssh_public_key( + self, input: DeleteSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteSSHPublicKeyOutput: + """ + Deletes the specified SSH public key. + + The SSH public key deleted by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `DeleteSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSSHPublicKeyOutput`. + """ + return await self._invoke(input, _models.DELETE_SSH_PUBLIC_KEY, [], plugins) + + async def delete_user( + self, input: DeleteUserInput, plugins: list[Plugin] | None = None + ) -> DeleteUserOutput: + """ + Deletes the specified IAM user. Unlike the Amazon Web Services + Management Console, when you delete a user programmatically, you must + delete the items attached to the user manually, or the deletion fails. + For more information, see [Deleting an IAM + user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli). + Before attempting to delete a user, remove the following items: + + - Password + ([DeleteLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html)) + + - Access keys + ([DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)) + + - Signing certificate + ([DeleteSigningCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html)) + + - SSH public key + ([DeleteSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSSHPublicKey.html)) + + - Git credentials + ([DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)) + + - Multi-factor authentication (MFA) device + ([DeactivateMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html), + [DeleteVirtualMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html)) + + - Inline policies + ([DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)) + + - Attached managed policies + ([DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)) + + - Group memberships + ([RemoveUserFromGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html)) + + Args: + input: + An instance of `DeleteUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserOutput`. + """ + return await self._invoke(input, _models.DELETE_USER, [], plugins) + + async def delete_user_permissions_boundary( + self, + input: DeleteUserPermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteUserPermissionsBoundaryOutput: + """ + Deletes the permissions boundary for the specified IAM user. + + Warning: + Deleting the permissions boundary for a user might increase its + permissions by allowing the user to perform all the actions granted in + its permissions policies. + + Args: + input: + An instance of `DeleteUserPermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserPermissionsBoundaryOutput`. + """ + return await self._invoke( + input, _models.DELETE_USER_PERMISSIONS_BOUNDARY, [], plugins + ) + + async def delete_user_policy( + self, input: DeleteUserPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteUserPolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM user. + + A user can also have managed policies attached to it. To detach a + managed policy from a user, use + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserPolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_USER_POLICY, [], plugins) + + async def delete_virtual_mfa_device( + self, input: DeleteVirtualMFADeviceInput, plugins: list[Plugin] | None = None + ) -> DeleteVirtualMFADeviceOutput: + """ + Deletes a virtual MFA device. + + Note: + You must deactivate a user's virtual MFA device before you can delete + it. For information about deactivating MFA devices, see + [DeactivateMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html). + + Args: + input: + An instance of `DeleteVirtualMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVirtualMFADeviceOutput`. + """ + return await self._invoke(input, _models.DELETE_VIRTUAL_MFA_DEVICE, [], plugins) + + async def detach_group_policy( + self, input: DetachGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> DetachGroupPolicyOutput: + """ + Removes the specified managed policy from the specified IAM group. + + A group can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachGroupPolicyOutput`. + """ + return await self._invoke(input, _models.DETACH_GROUP_POLICY, [], plugins) + + async def detach_role_policy( + self, input: DetachRolePolicyInput, plugins: list[Plugin] | None = None + ) -> DetachRolePolicyOutput: + """ + Removes the specified managed policy from the specified role. + + A role can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachRolePolicyOutput`. + """ + return await self._invoke(input, _models.DETACH_ROLE_POLICY, [], plugins) + + async def detach_user_policy( + self, input: DetachUserPolicyInput, plugins: list[Plugin] | None = None + ) -> DetachUserPolicyOutput: + """ + Removes the specified managed policy from the specified user. + + A user can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachUserPolicyOutput`. + """ + return await self._invoke(input, _models.DETACH_USER_POLICY, [], plugins) + + async def disable_organizations_root_credentials_management( + self, + input: DisableOrganizationsRootCredentialsManagementInput, + plugins: list[Plugin] | None = None, + ) -> DisableOrganizationsRootCredentialsManagementOutput: + """ + Disables the management of privileged root user credentials across + member accounts in your organization. When you disable this feature, the + management account and the delegated administrator for IAM can no longer + manage root user credentials for member accounts in your organization. + + Args: + input: + An instance of `DisableOrganizationsRootCredentialsManagementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOrganizationsRootCredentialsManagementOutput`. + """ + return await self._invoke( + input, + _models.DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT, + [], + plugins, + ) + + async def disable_organizations_root_sessions( + self, + input: DisableOrganizationsRootSessionsInput, + plugins: list[Plugin] | None = None, + ) -> DisableOrganizationsRootSessionsOutput: + """ + Disables root user sessions for privileged tasks across member accounts + in your organization. When you disable this feature, the management + account and the delegated administrator for IAM can no longer perform + privileged tasks on member accounts in your organization. + + Args: + input: + An instance of `DisableOrganizationsRootSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOrganizationsRootSessionsOutput`. + """ + return await self._invoke( + input, _models.DISABLE_ORGANIZATIONS_ROOT_SESSIONS, [], plugins + ) + + async def disable_outbound_web_identity_federation( + self, + input: DisableOutboundWebIdentityFederationInput, + plugins: list[Plugin] | None = None, + ) -> DisableOutboundWebIdentityFederationOutput: + """ + Disables the outbound identity federation feature for your Amazon Web + Services account. When disabled, IAM principals in the account cannot + use the `GetWebIdentityToken` API to obtain JSON Web Tokens (JWTs) for + authentication with external services. This operation does not affect + tokens that were issued before the feature was disabled. + + Args: + input: + An instance of `DisableOutboundWebIdentityFederationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOutboundWebIdentityFederationOutput`. + """ + return await self._invoke( + input, _models.DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION, [], plugins + ) + + async def enable_mfa_device( + self, input: EnableMFADeviceInput, plugins: list[Plugin] | None = None + ) -> EnableMFADeviceOutput: + """ + Enables the specified MFA device and associates it with the specified + IAM user. When enabled, the MFA device is required for every subsequent + login by the IAM user associated with the device. + + Args: + input: + An instance of `EnableMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableMFADeviceOutput`. + """ + return await self._invoke(input, _models.ENABLE_MFA_DEVICE, [], plugins) + + async def enable_organizations_root_credentials_management( + self, + input: EnableOrganizationsRootCredentialsManagementInput, + plugins: list[Plugin] | None = None, + ) -> EnableOrganizationsRootCredentialsManagementOutput: + """ + Enables the management of privileged root user credentials across member + accounts in your organization. When you enable root credentials + management for [centralized root + access](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management), + the management account and the delegated administrator for IAM can + manage root user credentials for member accounts in your organization. + + Before you enable centralized root access, you must have an account + configured with the following settings: + + - You must manage your Amazon Web Services accounts in + [Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html). + + - Enable trusted access for Identity and Access Management in + Organizations. For details, see [IAM and + Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-iam.html) + in the *Organizations User Guide*. + + Args: + input: + An instance of `EnableOrganizationsRootCredentialsManagementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOrganizationsRootCredentialsManagementOutput`. + """ + return await self._invoke( + input, _models.ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT, [], plugins + ) + + async def enable_organizations_root_sessions( + self, + input: EnableOrganizationsRootSessionsInput, + plugins: list[Plugin] | None = None, + ) -> EnableOrganizationsRootSessionsOutput: + """ + Allows the management account or delegated administrator to perform + privileged tasks on member accounts in your organization. For more + information, see [Centrally manage root access for member + accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management) + in the *Identity and Access Management User Guide*. + + Before you enable this feature, you must have an account configured with + the following settings: + + - You must manage your Amazon Web Services accounts in + [Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html). + + - Enable trusted access for Identity and Access Management in + Organizations. For details, see [IAM and + Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html) + in the *Organizations User Guide*. + + Args: + input: + An instance of `EnableOrganizationsRootSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOrganizationsRootSessionsOutput`. + """ + return await self._invoke( + input, _models.ENABLE_ORGANIZATIONS_ROOT_SESSIONS, [], plugins + ) + + async def enable_outbound_web_identity_federation( + self, + input: EnableOutboundWebIdentityFederationInput, + plugins: list[Plugin] | None = None, + ) -> EnableOutboundWebIdentityFederationOutput: + """ + Enables the outbound identity federation feature for your Amazon Web + Services account. When enabled, IAM principals in your account can use + the `GetWebIdentityToken` API to obtain JSON Web Tokens (JWTs) for + secure authentication with external services. This operation also + generates a unique issuer URL for your Amazon Web Services account. + + Args: + input: + An instance of `EnableOutboundWebIdentityFederationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOutboundWebIdentityFederationOutput`. + """ + return await self._invoke( + input, _models.ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION, [], plugins + ) + + async def generate_credential_report( + self, input: GenerateCredentialReportInput, plugins: list[Plugin] | None = None + ) -> GenerateCredentialReportOutput: + """ + Generates a credential report for the Amazon Web Services account. For + more information about the credential report, see [Getting credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateCredentialReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateCredentialReportOutput`. + """ + return await self._invoke( + input, _models.GENERATE_CREDENTIAL_REPORT, [], plugins + ) + + async def generate_organizations_access_report( + self, + input: GenerateOrganizationsAccessReportInput, + plugins: list[Plugin] | None = None, + ) -> GenerateOrganizationsAccessReportOutput: + """ + Generates a report for service last accessed data for Organizations. You + can generate a report for any entities (organization root, + organizational unit, or account) or policies in your organization. + + To call this operation, you must be signed in using your Organizations + management account credentials. You can use your long-term IAM user or + root user credentials, or temporary credentials from assuming an IAM + role. SCPs must be enabled for your organization root. You must have the + required IAM and Organizations permissions. For more information, see + [Refining permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + You can generate a service last accessed data report for entities by + specifying only the entity's path. This data includes a list of + services that are allowed by any service control policies (SCPs) that + apply to the entity. + + You can generate a service last accessed data report for a policy by + specifying an entity's path and an optional Organizations policy ID. + This data includes a list of services that are allowed by the specified + SCP. + + For each service in both report types, the data includes the most recent + account activity that the policy allows to account principals in the + entity or the entity's children. For important information about the + data, reporting period, permissions required, troubleshooting, and + supported Regions see [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Warning: + The data includes all attempts to access Amazon Web Services, not just + the successful ones. This includes all attempts that were made using the + Amazon Web Services Management Console, the Amazon Web Services API + through any of the SDKs, or any of the command line tools. An unexpected + entry in the service last accessed data does not mean that an account + has been compromised, because the request might have been denied. Refer + to your CloudTrail logs as the authoritative source for information + about all API calls and whether they were successful or denied access. + For more information, see [Logging IAM events with + CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) + in the *IAM User Guide*. + + This operation returns a `JobId`. Use this parameter in the + ` `[`GetOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)` ` + operation to check the status of the report generation. To check the + status of this request, use the `JobId` parameter in the + ` `[`GetOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)` ` + operation and test the `JobStatus` response parameter. When the job is + complete, you can retrieve the report. + + To generate a service last accessed data report for entities, specify an + entity path without specifying the optional Organizations policy ID. The + type of entity that you specify determines the data returned in the + report. + + - **Root** -- When you specify the organizations root as the entity, the + resulting report lists all of the services allowed by SCPs that are + attached to your root. For each service, the report includes data for + all accounts in your organization except the management account, + because the management account is not limited by SCPs. + + - **OU** -- When you specify an organizational unit (OU) as the entity, + the resulting report lists all of the services allowed by SCPs that + are attached to the OU and its parents. For each service, the report + includes data for all accounts in the OU or its children. This data + excludes the management account, because the management account is not + limited by SCPs. + + - **management account** -- When you specify the management account, the + resulting report lists all Amazon Web Services services, because the + management account is not limited by SCPs. For each service, the + report includes data for only the management account. + + - **Account** -- When you specify another account as the entity, the + resulting report lists all of the services allowed by SCPs that are + attached to the account and its parents. For each service, the report + includes data for only the specified account. + + To generate a service last accessed data report for policies, specify an + entity path and the optional Organizations policy ID. The type of entity + that you specify determines the data returned for each service. + + - **Root** -- When you specify the root entity and a policy ID, the + resulting report lists all of the services that are allowed by the + specified SCP. For each service, the report includes data for all + accounts in your organization to which the SCP applies. This data + excludes the management account, because the management account is not + limited by SCPs. If the SCP is not attached to any entities in the + organization, then the report will return a list of services with no + data. + + - **OU** -- When you specify an OU entity and a policy ID, the resulting + report lists all of the services that are allowed by the specified + SCP. For each service, the report includes data for all accounts in + the OU or its children to which the SCP applies. This means that other + accounts outside the OU that are affected by the SCP might not be + included in the data. This data excludes the management account, + because the management account is not limited by SCPs. If the SCP is + not attached to the OU or one of its children, the report will return + a list of services with no data. + + - **management account** -- When you specify the management account, the + resulting report lists all Amazon Web Services services, because the + management account is not limited by SCPs. If you specify a policy ID + in the CLI or API, the policy is ignored. For each service, the report + includes data for only the management account. + + - **Account** -- When you specify another account entity and a policy + ID, the resulting report lists all of the services that are allowed by + the specified SCP. For each service, the report includes data for only + the specified account. This means that other accounts in the + organization that are affected by the SCP might not be included in the + data. If the SCP is not attached to the account, the report will + return a list of services with no data. + + Note: + Service last accessed data does not use other policy types when + determining whether a principal could access a service. These other + policy types include identity-based policies, resource-based policies, + access control lists, IAM permissions boundaries, and STS assume role + policies. It only applies SCP logic. For more about the evaluation of + policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For more information about service last accessed data, see [Reducing + policy scope by viewing user + activity](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateOrganizationsAccessReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateOrganizationsAccessReportOutput`. + """ + return await self._invoke( + input, _models.GENERATE_ORGANIZATIONS_ACCESS_REPORT, [], plugins + ) + + async def generate_service_last_accessed_details( + self, + input: GenerateServiceLastAccessedDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GenerateServiceLastAccessedDetailsOutput: + """ + Generates a report that includes details about when an IAM resource + (user, group, role, or policy) was last used in an attempt to access + Amazon Web Services services. Recent activity usually appears within + four hours. IAM reports activity for at least the last 400 days, or less + if your Region began supporting this feature within the last year. For + more information, see [Regions where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period). + For more information about services and actions for which action last + accessed information is displayed, see [IAM action last accessed + information services and + actions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-action-last-accessed.html). + + Warning: + The service last accessed data includes all attempts to access an Amazon + Web Services API, not just the successful ones. This includes all + attempts that were made using the Amazon Web Services Management + Console, the Amazon Web Services API through any of the SDKs, or any of + the command line tools. An unexpected entry in the service last accessed + data does not mean that your account has been compromised, because the + request might have been denied. Refer to your CloudTrail logs as the + authoritative source for information about all API calls and whether + they were successful or denied access. For more information, see + [Logging IAM events with + CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) + in the *IAM User Guide*. + + The `GenerateServiceLastAccessedDetails` operation returns a `JobId`. + Use this parameter in the following operations to retrieve the following + details from your report: + + - [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html) + -- Use this operation for users, groups, roles, or policies to list + every Amazon Web Services service that the resource could access using + permissions policies. For each service, the response includes + information about the most recent access attempt. + + The `JobId` returned by `GenerateServiceLastAccessedDetail` must be + used by the same role within a session, or by the same user when used + to call `GetServiceLastAccessedDetail`. + + - [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + -- Use this operation for groups and policies to list information + about the associated entities (users or roles) that attempted to + access a specific Amazon Web Services service. + + To check the status of the `GenerateServiceLastAccessedDetails` request, + use the `JobId` parameter in the same operations and test the + `JobStatus` response parameter. + + For additional information about the permissions policies that allow an + identity (user, group, or role) to access specific services, use the + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html) + operation. + + Note: + Service last accessed data does not use other policy types when + determining whether a resource could access a service. These other + policy types include resource-based policies, access control lists, + Organizations policies, IAM permissions boundaries, and STS assume role + policies. It only applies permissions policy logic. For more about the + evaluation of policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For more information about service and action last accessed data, see + [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateServiceLastAccessedDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateServiceLastAccessedDetailsOutput`. + """ + return await self._invoke( + input, _models.GENERATE_SERVICE_LAST_ACCESSED_DETAILS, [], plugins + ) + + async def get_access_key_last_used( + self, input: GetAccessKeyLastUsedInput, plugins: list[Plugin] | None = None + ) -> GetAccessKeyLastUsedOutput: + """ + Retrieves information about when the specified access key was last used. + The information includes the date and time of last use, along with the + Amazon Web Services service and Region that were specified in the last + request made with that key. + + Args: + input: + An instance of `GetAccessKeyLastUsedInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccessKeyLastUsedOutput`. + """ + return await self._invoke(input, _models.GET_ACCESS_KEY_LAST_USED, [], plugins) + + async def get_account_authorization_details( + self, + input: GetAccountAuthorizationDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GetAccountAuthorizationDetailsOutput: + """ + Retrieves information about all IAM users, groups, roles, and policies + in your Amazon Web Services account, including their relationships to + one another. Use this operation to obtain a snapshot of the + configuration of IAM permissions (users, groups, roles, and policies) in + your account. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + You can optionally filter the results using the `Filter` parameter. You + can paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `GetAccountAuthorizationDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountAuthorizationDetailsOutput`. + """ + return await self._invoke( + input, _models.GET_ACCOUNT_AUTHORIZATION_DETAILS, [], plugins + ) + + async def get_account_password_policy( + self, input: GetAccountPasswordPolicyInput, plugins: list[Plugin] | None = None + ) -> GetAccountPasswordPolicyOutput: + """ + Retrieves the password policy for the Amazon Web Services account. This + tells you the complexity requirements and mandatory rotation periods for + the IAM user passwords in your account. For more information about using + a password policy, see [Managing an IAM password + policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html). + + Args: + input: + An instance of `GetAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountPasswordPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_ACCOUNT_PASSWORD_POLICY, [], plugins + ) + + async def get_account_properties( + self, input: GetAccountPropertiesInput, plugins: list[Plugin] | None = None + ) -> GetAccountPropertiesOutput: + """ + Retrieves the account-level properties for the caller's Amazon Web + Services account. Account properties are configuration settings that + control account-wide IAM features such as Role Manager. + + The service returns properties as key-value pairs in + `Namespace/PropertyName` format. Each namespace groups related + configuration settings. Use + [PutAccountProperties](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutAccountProperties.html) + to modify these properties. + + Args: + input: + An instance of `GetAccountPropertiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountPropertiesOutput`. + """ + return await self._invoke(input, _models.GET_ACCOUNT_PROPERTIES, [], plugins) + + async def get_account_summary( + self, input: GetAccountSummaryInput, plugins: list[Plugin] | None = None + ) -> GetAccountSummaryOutput: + """ + Retrieves information about IAM entity usage and IAM quotas in the + Amazon Web Services account. + + For information about IAM quotas, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetAccountSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountSummaryOutput`. + """ + return await self._invoke(input, _models.GET_ACCOUNT_SUMMARY, [], plugins) + + async def get_context_keys_for_custom_policy( + self, + input: GetContextKeysForCustomPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContextKeysForCustomPolicyOutput: + """ + Gets a list of all of the context keys referenced in the input policies. + The policies are supplied as a list of one or more strings. To get the + context keys from policies associated with an IAM user, group, or role, + use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + Context keys can be evaluated by testing against a value specified in an + IAM policy. Use `GetContextKeysForCustomPolicy` to understand what key + names and values you must supply when you call + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html). + Note that all parameters are shown in unencoded form here for clarity + but must be URL encoded to be included as a part of a real HTML request. + + Args: + input: + An instance of `GetContextKeysForCustomPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContextKeysForCustomPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY, [], plugins + ) + + async def get_context_keys_for_principal_policy( + self, + input: GetContextKeysForPrincipalPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContextKeysForPrincipalPolicyOutput: + """ + Gets a list of all of the context keys referenced in all the IAM + policies that are attached to the specified IAM entity. The entity can + be an IAM user, group, or role. If you specify a user, then the request + also includes all of the policies attached to groups that the user is a + member of. + + You can optionally include a list of one or more additional policies, + specified as strings. If you want to include *only* a list of policies + by string, use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + instead. + + **Note:** This operation discloses information about the permissions + granted to other users. If you do not want users to see other user's + permissions, then consider allowing them to use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + instead. + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + Context keys can be evaluated by testing against a value in an IAM + policy. Use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) + to understand what key names and values you must supply when you call + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + This operation doesn't return context keys referenced by service + control policies (SCPs). Only context keys referenced by the + identity-based policies attached to the specified entity, and any + additional policies that you provide, are included. + + Args: + input: + An instance of `GetContextKeysForPrincipalPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContextKeysForPrincipalPolicyOutput`. + """ + return await self._invoke( + input, _models.GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY, [], plugins + ) + + async def get_credential_report( + self, input: GetCredentialReportInput, plugins: list[Plugin] | None = None + ) -> GetCredentialReportOutput: + """ + Retrieves a credential report for the Amazon Web Services account. For + more information about the credential report, see [Getting credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetCredentialReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCredentialReportOutput`. + """ + return await self._invoke(input, _models.GET_CREDENTIAL_REPORT, [], plugins) + + async def get_delegation_request( + self, input: GetDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> GetDelegationRequestOutput: + """ + Retrieves information about a specific delegation request. + + If a delegation request has no owner or owner account, + `GetDelegationRequest` for that delegation request can be called by any + account. If the owner account is assigned but there is no owner id, only + identities within that owner account can call `GetDelegationRequest` for + the delegation request. Once the delegation request is fully owned, the + owner of the request gets a default permission to get that delegation + request. For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `GetDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDelegationRequestOutput`. + """ + return await self._invoke(input, _models.GET_DELEGATION_REQUEST, [], plugins) + + async def get_group( + self, input: GetGroupInput, plugins: list[Plugin] | None = None + ) -> GetGroupOutput: + """ + Returns a list of IAM users that are in the specified IAM group. You can + paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `GetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupOutput`. + """ + return await self._invoke(input, _models.GET_GROUP, [], plugins) + + async def get_group_policy( + self, input: GetGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> GetGroupPolicyOutput: + """ + Retrieves the specified inline policy document that is embedded in the + specified IAM group. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM group can also have managed policies attached to it. To retrieve + a managed policy document that is attached to a group, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version, then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupPolicyOutput`. + """ + return await self._invoke(input, _models.GET_GROUP_POLICY, [], plugins) + + async def get_human_readable_summary( + self, input: GetHumanReadableSummaryInput, plugins: list[Plugin] | None = None + ) -> GetHumanReadableSummaryOutput: + """ + Retrieves a human readable summary for a given entity. At this time, the + only supported entity type is `delegation-request` + + This method uses a Large Language Model (LLM) to generate the summary. + + If a delegation request has no owner or owner account, + `GetHumanReadableSummary` for that delegation request can be called by + any account. If the owner account is assigned but there is no owner id, + only identities within that owner account can call + `GetHumanReadableSummary` for the delegation request to retrieve a + summary of that request. Once the delegation request is fully owned, the + owner of the request gets a default permission to get that delegation + request. For more details, read [default permissions granted to + delegation requests](). These rules are identical to + [GetDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetDelegationRequest.html) + API behavior, such that a party who has permissions to call + [GetDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetDelegationRequest.html) + for a given delegation request will always be able to retrieve the human + readable summary for that request. + + Args: + input: + An instance of `GetHumanReadableSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHumanReadableSummaryOutput`. + """ + return await self._invoke( + input, _models.GET_HUMAN_READABLE_SUMMARY, [], plugins + ) + + async def get_instance_profile( + self, input: GetInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> GetInstanceProfileOutput: + """ + Retrieves information about the specified instance profile, including + the instance profile's path, GUID, ARN, and role. For more information + about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceProfileOutput`. + """ + return await self._invoke(input, _models.GET_INSTANCE_PROFILE, [], plugins) + + async def get_login_profile( + self, input: GetLoginProfileInput, plugins: list[Plugin] | None = None + ) -> GetLoginProfileOutput: + """ + Retrieves the user name for the specified IAM user. A login profile is + created when you create a password for the user to access the Amazon Web + Services Management Console. If the user does not exist or does not have + a password, the operation returns a 404 (`NoSuchEntity`) error. + + If you create an IAM user with access to the console, the `CreateDate` + reflects the date you created the initial password for the user. + + If you create an IAM user with programmatic access, and then later add a + password for the user to access the Amazon Web Services Management + Console, the `CreateDate` reflects the initial password creation date. A + user with programmatic access does not have a login profile unless you + create a password for the user to access the Amazon Web Services + Management Console. + + Args: + input: + An instance of `GetLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLoginProfileOutput`. + """ + return await self._invoke(input, _models.GET_LOGIN_PROFILE, [], plugins) + + async def get_mfa_device( + self, input: GetMFADeviceInput, plugins: list[Plugin] | None = None + ) -> GetMFADeviceOutput: + """ + Retrieves information about an MFA device for a specified user. + + Args: + input: + An instance of `GetMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetMFADeviceOutput`. + """ + return await self._invoke(input, _models.GET_MFA_DEVICE, [], plugins) + + async def get_open_id_connect_provider( + self, input: GetOpenIDConnectProviderInput, plugins: list[Plugin] | None = None + ) -> GetOpenIDConnectProviderOutput: + """ + Returns information about the specified OpenID Connect (OIDC) provider + resource object in IAM. + + Args: + input: + An instance of `GetOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.GET_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def get_organizations_access_report( + self, + input: GetOrganizationsAccessReportInput, + plugins: list[Plugin] | None = None, + ) -> GetOrganizationsAccessReportOutput: + """ + Retrieves the service last accessed data report for Organizations that + was previously generated using the + ` `[`GenerateOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)` ` + operation. This operation retrieves the status of your report job and + the report contents. + + Depending on the parameters that you passed when you generated the + report, the data returned could include different information. For + details, see + [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html). + + To call this operation, you must be signed in to the management account + in your organization. SCPs must be enabled for your organization root. + You must have permissions to perform this operation. For more + information, see [Refining permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + For each service that principals in an account (root user, IAM users, or + IAM roles) could access using SCPs, the operation returns details about + the most recent access attempt. If there was no attempt, the service is + listed without details about the most recent attempt to access the + service. If the operation fails, it returns the reason that it failed. + + By default, the list is sorted by service namespace. + + Args: + input: + An instance of `GetOrganizationsAccessReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOrganizationsAccessReportOutput`. + """ + return await self._invoke( + input, _models.GET_ORGANIZATIONS_ACCESS_REPORT, [], plugins + ) + + async def get_outbound_web_identity_federation_info( + self, + input: GetOutboundWebIdentityFederationInfoInput, + plugins: list[Plugin] | None = None, + ) -> GetOutboundWebIdentityFederationInfoOutput: + """ + Retrieves the configuration information for the outbound identity + federation feature in your Amazon Web Services account. The response + includes the unique issuer URL for your Amazon Web Services account and + the current enabled/disabled status of the feature. Use this operation + to obtain the issuer URL that you need to configure trust relationships + with external services. + + Args: + input: + An instance of `GetOutboundWebIdentityFederationInfoInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOutboundWebIdentityFederationInfoOutput`. + """ + return await self._invoke( + input, _models.GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO, [], plugins + ) + + async def get_policy( + self, input: GetPolicyInput, plugins: list[Plugin] | None = None + ) -> GetPolicyOutput: + """ + Retrieves information about the specified managed policy, including the + policy's default version and the total number of IAM users, groups, and + roles to which the policy is attached. To retrieve the list of the + specific users, groups, and roles that the policy is attached to, use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + This operation returns metadata about the policy. To retrieve the actual + policy document for a specific version of the policy, use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html). + + This operation retrieves information about managed policies. To retrieve + information about an inline policy that is embedded with an IAM user, + group, or role, use + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html), + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html), + or + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html). + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPolicyOutput`. + """ + return await self._invoke(input, _models.GET_POLICY, [], plugins) + + async def get_policy_version( + self, input: GetPolicyVersionInput, plugins: list[Plugin] | None = None + ) -> GetPolicyVersionOutput: + """ + Retrieves information about the specified version of the specified + managed policy, including the policy document. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + To list the available versions for a policy, use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + + This operation retrieves information about managed policies. To retrieve + information about an inline policy that is embedded in a user, group, or + role, use + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html), + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html), + or + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html). + + For more information about the types of policies, see [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetPolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPolicyVersionOutput`. + """ + return await self._invoke(input, _models.GET_POLICY_VERSION, [], plugins) + + async def get_role( + self, input: GetRoleInput, plugins: list[Plugin] | None = None + ) -> GetRoleOutput: + """ + Retrieves information about the specified role, including the role's + path, GUID, ARN, and the role's trust policy that grants permission to + assume the role. For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + Args: + input: + An instance of `GetRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRoleOutput`. + """ + return await self._invoke(input, _models.GET_ROLE, [], plugins) + + async def get_role_policy( + self, input: GetRolePolicyInput, plugins: list[Plugin] | None = None + ) -> GetRolePolicyOutput: + """ + Retrieves the specified inline policy document that is embedded with the + specified IAM role. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM role can also have managed policies attached to it. To retrieve a + managed policy document that is attached to a role, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version, then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRolePolicyOutput`. + """ + return await self._invoke(input, _models.GET_ROLE_POLICY, [], plugins) + + async def get_role_template_version( + self, input: GetRoleTemplateVersionInput, plugins: list[Plugin] | None = None + ) -> GetRoleTemplateVersionOutput: + """ + Retrieves information about a version of the specified role template. + Role templates define a reusable configuration---including role name and + path patterns, trust policy, inline and managed policies, permissions + boundary, tags, and maximum session duration---that you use to create + IAM roles with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + + If you do not specify a minor version, the service returns the + template's default minor version. + + Args: + input: + An instance of `GetRoleTemplateVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRoleTemplateVersionOutput`. + """ + return await self._invoke(input, _models.GET_ROLE_TEMPLATE_VERSION, [], plugins) + + async def get_saml_provider( + self, input: GetSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> GetSAMLProviderOutput: + """ + Returns the SAML provider metadocument that was uploaded when the IAM + SAML provider resource object was created or updated. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `GetSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSAMLProviderOutput`. + """ + return await self._invoke(input, _models.GET_SAML_PROVIDER, [], plugins) + + async def get_server_certificate( + self, input: GetServerCertificateInput, plugins: list[Plugin] | None = None + ) -> GetServerCertificateOutput: + """ + Retrieves information about the specified server certificate stored in + IAM. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Args: + input: + An instance of `GetServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServerCertificateOutput`. + """ + return await self._invoke(input, _models.GET_SERVER_CERTIFICATE, [], plugins) + + async def get_service_last_accessed_details( + self, + input: GetServiceLastAccessedDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLastAccessedDetailsOutput: + """ + Retrieves a service last accessed report that was created using the + `GenerateServiceLastAccessedDetails` operation. You can use the `JobId` + parameter in `GetServiceLastAccessedDetails` to retrieve the status of + your report job. When the report is complete, you can retrieve the + generated report. The report includes a list of Amazon Web Services + services that the resource (user, group, role, or managed policy) can + access. + + Note: + Service last accessed data does not use other policy types when + determining whether a resource could access a service. These other + policy types include resource-based policies, access control lists, + Organizations policies, IAM permissions boundaries, and STS assume role + policies. It only applies permissions policy logic. For more about the + evaluation of policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For each service that the resource could access using permissions + policies, the operation returns details about the most recent access + attempt. If there was no attempt, the service is listed without details + about the most recent attempt to access the service. If the operation + fails, the `GetServiceLastAccessedDetails` operation returns the reason + that it failed. + + The `GetServiceLastAccessedDetails` operation returns a list of + services. This list includes the number of entities that have attempted + to access the service and the date and time of the last attempt. It also + returns the ARN of the following entity, depending on the resource ARN + that you used to generate the report: + + - **User** -- Returns the user ARN that you used to generate the report + + - **Group** -- Returns the ARN of the group member (user) that last + attempted to access the service + + - **Role** -- Returns the role ARN that you used to generate the report + + - **Policy** -- Returns the ARN of the user or role that last used the + policy to attempt to access the service + + By default, the list is sorted by service namespace. + + If you specified `ACTION_LEVEL` granularity when you generated the + report, this operation returns service and action last accessed data. + This includes the most recent access attempt for each tracked action + within a service. Otherwise, this operation returns only service data. + + For more information about service and action last accessed data, see + [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetServiceLastAccessedDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLastAccessedDetailsOutput`. + """ + return await self._invoke( + input, _models.GET_SERVICE_LAST_ACCESSED_DETAILS, [], plugins + ) + + async def get_service_last_accessed_details_with_entities( + self, + input: GetServiceLastAccessedDetailsWithEntitiesInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLastAccessedDetailsWithEntitiesOutput: + """ + After you generate a group or policy report using the + `GenerateServiceLastAccessedDetails` operation, you can use the `JobId` + parameter in `GetServiceLastAccessedDetailsWithEntities`. This operation + retrieves the status of your report job and a list of entities that + could have used group or policy permissions to access the specified + service. + + - **Group** -- For a group report, this operation returns a list of + users in the group that could have used the group's policies in an + attempt to access the service. + + - **Policy** -- For a policy report, this operation returns a list of + entities (users or roles) that could have used the policy in an + attempt to access the service. + + You can also use this operation for user or role reports to retrieve + details about those entities. + + If the operation fails, the `GetServiceLastAccessedDetailsWithEntities` + operation returns the reason that it failed. + + By default, the list of associated entities is sorted by date, with the + most recent access listed first. + + Args: + input: + An instance of `GetServiceLastAccessedDetailsWithEntitiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLastAccessedDetailsWithEntitiesOutput`. + """ + return await self._invoke( + input, _models.GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES, [], plugins + ) + + async def get_service_linked_role_deletion_status( + self, + input: GetServiceLinkedRoleDeletionStatusInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLinkedRoleDeletionStatusOutput: + """ + Retrieves the status of your service-linked role deletion. After you use + [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) + to submit a service-linked role for deletion, you can use the + `DeletionTaskId` parameter in `GetServiceLinkedRoleDeletionStatus` to + check the status of the deletion. If the deletion fails, this operation + returns the reason that it failed, if that information is returned by + the service. + + Args: + input: + An instance of `GetServiceLinkedRoleDeletionStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLinkedRoleDeletionStatusOutput`. + """ + return await self._invoke( + input, _models.GET_SERVICE_LINKED_ROLE_DELETION_STATUS, [], plugins + ) + + async def get_ssh_public_key( + self, input: GetSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetSSHPublicKeyOutput: + """ + Retrieves the specified SSH public key, including metadata about the + key. + + The SSH public key retrieved by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `GetSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSSHPublicKeyOutput`. + """ + return await self._invoke(input, _models.GET_SSH_PUBLIC_KEY, [], plugins) + + async def get_user( + self, input: GetUserInput, plugins: list[Plugin] | None = None + ) -> GetUserOutput: + """ + Retrieves information about the specified IAM user, including the + user's creation date, path, unique ID, and ARN. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID used to sign + the request to this operation. + + Args: + input: + An instance of `GetUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetUserOutput`. + """ + return await self._invoke(input, _models.GET_USER, [], plugins) + + async def get_user_policy( + self, input: GetUserPolicyInput, plugins: list[Plugin] | None = None + ) -> GetUserPolicyOutput: + """ + Retrieves the specified inline policy document that is embedded in the + specified IAM user. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM user can also have managed policies attached to it. To retrieve a + managed policy document that is attached to a user, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version. Then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetUserPolicyOutput`. + """ + return await self._invoke(input, _models.GET_USER_POLICY, [], plugins) + + async def list_access_keys( + self, input: ListAccessKeysInput, plugins: list[Plugin] | None = None + ) -> ListAccessKeysOutput: + """ + Returns information about the access key IDs associated with the + specified IAM user. If there is none, the operation returns an empty + list. + + Although each user is limited to a small number of keys, you can still + paginate the results using the `MaxItems` and `Marker` parameters. + + If the `UserName` is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. If a temporary access key is used, then `UserName` is + required. If a long-term key is assigned to the user, then `UserName` is + not required. + + This operation works for access keys under the Amazon Web Services + account. If the Amazon Web Services account has no associated users, the + root user returns it's own access key IDs by running this command. + + Note: + To ensure the security of your Amazon Web Services account, the secret + access key is accessible only during key and user creation. + + Args: + input: + An instance of `ListAccessKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccessKeysOutput`. + """ + return await self._invoke(input, _models.LIST_ACCESS_KEYS, [], plugins) + + async def list_account_aliases( + self, input: ListAccountAliasesInput, plugins: list[Plugin] | None = None + ) -> ListAccountAliasesOutput: + """ + Lists the account alias associated with the Amazon Web Services account + (Note: you can have only one). For information about using an Amazon Web + Services account alias, see [Creating, deleting, and listing an Amazon + Web Services account + alias](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#CreateAccountAlias) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListAccountAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccountAliasesOutput`. + """ + return await self._invoke(input, _models.LIST_ACCOUNT_ALIASES, [], plugins) + + async def list_attached_group_policies( + self, input: ListAttachedGroupPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedGroupPoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM group. + + An IAM group can also have inline policies embedded with it. To list the + inline policies for a group, use + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified group (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedGroupPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedGroupPoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_ATTACHED_GROUP_POLICIES, [], plugins + ) + + async def list_attached_role_policies( + self, input: ListAttachedRolePoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedRolePoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM role. + + An IAM role can also have inline policies embedded with it. To list the + inline policies for a role, use + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified role (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedRolePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedRolePoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_ATTACHED_ROLE_POLICIES, [], plugins + ) + + async def list_attached_user_policies( + self, input: ListAttachedUserPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedUserPoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM user. + + An IAM user can also have inline policies embedded with it. To list the + inline policies for a user, use + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified group (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedUserPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedUserPoliciesOutput`. + """ + return await self._invoke( + input, _models.LIST_ATTACHED_USER_POLICIES, [], plugins + ) + + async def list_delegation_requests( + self, input: ListDelegationRequestsInput, plugins: list[Plugin] | None = None + ) -> ListDelegationRequestsOutput: + """ + Lists delegation requests based on the specified criteria. + + If a delegation request has no owner, even if it is assigned to a + specific account, it will not be part of the `ListDelegationRequests` + output for that account. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `ListDelegationRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDelegationRequestsOutput`. + """ + return await self._invoke(input, _models.LIST_DELEGATION_REQUESTS, [], plugins) + + async def list_entities_for_policy( + self, input: ListEntitiesForPolicyInput, plugins: list[Plugin] | None = None + ) -> ListEntitiesForPolicyOutput: + """ + Lists all IAM users, groups, and roles that the specified managed policy + is attached to. + + You can use the optional `EntityFilter` parameter to limit the results + to a particular type of entity (users, groups, or roles). For example, + to list only the roles that are attached to the specified policy, set + `EntityFilter` to `Role`. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListEntitiesForPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListEntitiesForPolicyOutput`. + """ + return await self._invoke(input, _models.LIST_ENTITIES_FOR_POLICY, [], plugins) + + async def list_group_policies( + self, input: ListGroupPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListGroupPoliciesOutput: + """ + Lists the names of the inline policies that are embedded in the + specified IAM group. + + An IAM group can also have managed policies attached to it. To list the + managed policies that are attached to a group, use + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + group, the operation returns an empty list. + + Args: + input: + An instance of `ListGroupPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupPoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_GROUP_POLICIES, [], plugins) + + async def list_groups( + self, input: ListGroupsInput, plugins: list[Plugin] | None = None + ) -> ListGroupsOutput: + """ + Lists the IAM groups that have the specified path prefix. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupsOutput`. + """ + return await self._invoke(input, _models.LIST_GROUPS, [], plugins) + + async def list_groups_for_user( + self, input: ListGroupsForUserInput, plugins: list[Plugin] | None = None + ) -> ListGroupsForUserOutput: + """ + Lists the IAM groups that the specified IAM user belongs to. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListGroupsForUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupsForUserOutput`. + """ + return await self._invoke(input, _models.LIST_GROUPS_FOR_USER, [], plugins) + + async def list_instance_profiles( + self, input: ListInstanceProfilesInput, plugins: list[Plugin] | None = None + ) -> ListInstanceProfilesOutput: + """ + Lists the instance profiles that have the specified path prefix. If + there are none, the operation returns an empty list. For more + information about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for an instance profile, see + [GetInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListInstanceProfilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfilesOutput`. + """ + return await self._invoke(input, _models.LIST_INSTANCE_PROFILES, [], plugins) + + async def list_instance_profiles_for_role( + self, + input: ListInstanceProfilesForRoleInput, + plugins: list[Plugin] | None = None, + ) -> ListInstanceProfilesForRoleOutput: + """ + Lists the instance profiles that have the specified associated IAM role. + If there are none, the operation returns an empty list. For more + information about instance profiles, go to [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListInstanceProfilesForRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfilesForRoleOutput`. + """ + return await self._invoke( + input, _models.LIST_INSTANCE_PROFILES_FOR_ROLE, [], plugins + ) + + async def list_instance_profile_tags( + self, input: ListInstanceProfileTagsInput, plugins: list[Plugin] | None = None + ) -> ListInstanceProfileTagsOutput: + """ + Lists the tags that are attached to the specified IAM instance profile. + The returned list of tags is sorted by tag key. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListInstanceProfileTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfileTagsOutput`. + """ + return await self._invoke( + input, _models.LIST_INSTANCE_PROFILE_TAGS, [], plugins + ) + + async def list_mfa_devices( + self, input: ListMFADevicesInput, plugins: list[Plugin] | None = None + ) -> ListMFADevicesOutput: + """ + Lists the MFA devices for an IAM user. If the request includes a IAM + user name, then this operation lists all the MFA devices associated with + the specified user. If you do not specify a user name, IAM determines + the user name implicitly based on the Amazon Web Services access key ID + signing the request for this operation. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListMFADevicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMFADevicesOutput`. + """ + return await self._invoke(input, _models.LIST_MFA_DEVICES, [], plugins) + + async def list_mfa_device_tags( + self, input: ListMFADeviceTagsInput, plugins: list[Plugin] | None = None + ) -> ListMFADeviceTagsOutput: + """ + Lists the tags that are attached to the specified IAM virtual + multi-factor authentication (MFA) device. The returned list of tags is + sorted by tag key. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListMFADeviceTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMFADeviceTagsOutput`. + """ + return await self._invoke(input, _models.LIST_MFA_DEVICE_TAGS, [], plugins) + + async def list_open_id_connect_providers( + self, + input: ListOpenIDConnectProvidersInput, + plugins: list[Plugin] | None = None, + ) -> ListOpenIDConnectProvidersOutput: + """ + Lists information about the IAM OpenID Connect (OIDC) provider resource + objects defined in the Amazon Web Services account. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for an OIDC provider, see + [GetOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html). + + Args: + input: + An instance of `ListOpenIDConnectProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOpenIDConnectProvidersOutput`. + """ + return await self._invoke( + input, _models.LIST_OPEN_ID_CONNECT_PROVIDERS, [], plugins + ) + + async def list_open_id_connect_provider_tags( + self, + input: ListOpenIDConnectProviderTagsInput, + plugins: list[Plugin] | None = None, + ) -> ListOpenIDConnectProviderTagsOutput: + """ + Lists the tags that are attached to the specified OpenID Connect + (OIDC)-compatible identity provider. The returned list of tags is sorted + by tag key. For more information, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListOpenIDConnectProviderTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOpenIDConnectProviderTagsOutput`. + """ + return await self._invoke( + input, _models.LIST_OPEN_ID_CONNECT_PROVIDER_TAGS, [], plugins + ) + + async def list_organizations_features( + self, input: ListOrganizationsFeaturesInput, plugins: list[Plugin] | None = None + ) -> ListOrganizationsFeaturesOutput: + """ + Lists the centralized root access features enabled for your + organization. For more information, see [Centrally manage root access + for member + accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management). + + Args: + input: + An instance of `ListOrganizationsFeaturesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOrganizationsFeaturesOutput`. + """ + return await self._invoke( + input, _models.LIST_ORGANIZATIONS_FEATURES, [], plugins + ) + + async def list_policies( + self, input: ListPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListPoliciesOutput: + """ + Lists all the managed policies that are available in your Amazon Web + Services account, including your own customer-defined managed policies + and all Amazon Web Services managed policies. + + You can filter the list of policies that is returned using the optional + `OnlyAttached`, `Scope`, and `PathPrefix` parameters. For example, to + list only the customer managed policies in your Amazon Web Services + account, set `Scope` to `Local`. To list only Amazon Web Services + managed policies, set `Scope` to `AWS`. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + For more information about managed policies, see [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a customer manged policy, see + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html). + + Args: + input: + An instance of `ListPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_POLICIES, [], plugins) + + async def list_policies_granting_service_access( + self, + input: ListPoliciesGrantingServiceAccessInput, + plugins: list[Plugin] | None = None, + ) -> ListPoliciesGrantingServiceAccessOutput: + """ + Retrieves a list of policies that the IAM identity (user, group, or + role) can use to access each specified service. + + Note: + This operation does not use other policy types when determining whether + a resource could access a service. These other policy types include + resource-based policies, access control lists, Organizations policies, + IAM permissions boundaries, and STS assume role policies. It only + applies permissions policy logic. For more about the evaluation of + policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + The list of policies returned by the operation depends on the ARN of the + identity that you provide. + + - **User** -- The list of policies includes the managed and inline + policies that are attached to the user directly. The list also + includes any additional managed and inline policies that are attached + to the group to which the user belongs. + + - **Group** -- The list of policies includes only the managed and inline + policies that are attached to the group directly. Policies that are + attached to the group's user are not included. + + - **Role** -- The list of policies includes only the managed and inline + policies that are attached to the role. + + For each managed policy, this operation returns the ARN and policy name. + For each inline policy, it returns the policy name and the entity to + which it is attached. Inline policies do not have an ARN. For more + information about these policy types, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) + in the *IAM User Guide*. + + Policies that are attached to users and roles as permissions boundaries + are not returned. To view which managed policy is currently used to set + the permissions boundary for a user or role, use the + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) + or + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) + operations. + + Args: + input: + An instance of `ListPoliciesGrantingServiceAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPoliciesGrantingServiceAccessOutput`. + """ + return await self._invoke( + input, _models.LIST_POLICIES_GRANTING_SERVICE_ACCESS, [], plugins + ) + + async def list_policy_tags( + self, input: ListPolicyTagsInput, plugins: list[Plugin] | None = None + ) -> ListPolicyTagsOutput: + """ + Lists the tags that are attached to the specified IAM customer managed + policy. The returned list of tags is sorted by tag key. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListPolicyTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPolicyTagsOutput`. + """ + return await self._invoke(input, _models.LIST_POLICY_TAGS, [], plugins) + + async def list_policy_versions( + self, input: ListPolicyVersionsInput, plugins: list[Plugin] | None = None + ) -> ListPolicyVersionsOutput: + """ + Lists information about the versions of the specified managed policy, + including the version that is currently set as the policy's default + version. + + For more information about managed policies, see [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListPolicyVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPolicyVersionsOutput`. + """ + return await self._invoke(input, _models.LIST_POLICY_VERSIONS, [], plugins) + + async def list_role_policies( + self, input: ListRolePoliciesInput, plugins: list[Plugin] | None = None + ) -> ListRolePoliciesOutput: + """ + Lists the names of the inline policies that are embedded in the + specified IAM role. + + An IAM role can also have managed policies attached to it. To list the + managed policies that are attached to a role, use + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + role, the operation returns an empty list. + + Args: + input: + An instance of `ListRolePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRolePoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_ROLE_POLICIES, [], plugins) + + async def list_roles( + self, input: ListRolesInput, plugins: list[Plugin] | None = None + ) -> ListRolesOutput: + """ + Lists the IAM roles that have the specified path prefix. If there are + none, the operation returns an empty list. For more information about + roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. This operation does not return the + following attributes, even though they are an attribute of the returned + object: + + - PermissionsBoundary + + - RoleLastUsed + + - Tags + + To view all of the information for a role, see + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListRolesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRolesOutput`. + """ + return await self._invoke(input, _models.LIST_ROLES, [], plugins) + + async def list_role_tags( + self, input: ListRoleTagsInput, plugins: list[Plugin] | None = None + ) -> ListRoleTagsOutput: + """ + Lists the tags that are attached to the specified role. The returned + list of tags is sorted by tag key. For more information about tagging, + see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListRoleTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRoleTagsOutput`. + """ + return await self._invoke(input, _models.LIST_ROLE_TAGS, [], plugins) + + async def list_saml_providers( + self, input: ListSAMLProvidersInput, plugins: list[Plugin] | None = None + ) -> ListSAMLProvidersOutput: + """ + Lists the SAML provider resource objects defined in IAM in the account. + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a SAML provider, see + [GetSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html). + + Warning: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `ListSAMLProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSAMLProvidersOutput`. + """ + return await self._invoke(input, _models.LIST_SAML_PROVIDERS, [], plugins) + + async def list_saml_provider_tags( + self, input: ListSAMLProviderTagsInput, plugins: list[Plugin] | None = None + ) -> ListSAMLProviderTagsOutput: + """ + Lists the tags that are attached to the specified Security Assertion + Markup Language (SAML) identity provider. The returned list of tags is + sorted by tag key. For more information, see [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html). + + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListSAMLProviderTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSAMLProviderTagsOutput`. + """ + return await self._invoke(input, _models.LIST_SAML_PROVIDER_TAGS, [], plugins) + + async def list_server_certificates( + self, input: ListServerCertificatesInput, plugins: list[Plugin] | None = None + ) -> ListServerCertificatesOutput: + """ + Lists the server certificates stored in IAM that have the specified path + prefix. If none exist, the operation returns an empty list. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a servercertificate, see + [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html). + + Args: + input: + An instance of `ListServerCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServerCertificatesOutput`. + """ + return await self._invoke(input, _models.LIST_SERVER_CERTIFICATES, [], plugins) + + async def list_server_certificate_tags( + self, input: ListServerCertificateTagsInput, plugins: list[Plugin] | None = None + ) -> ListServerCertificateTagsOutput: + """ + Lists the tags that are attached to the specified IAM server + certificate. The returned list of tags is sorted by tag key. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListServerCertificateTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServerCertificateTagsOutput`. + """ + return await self._invoke( + input, _models.LIST_SERVER_CERTIFICATE_TAGS, [], plugins + ) + + async def list_service_specific_credentials( + self, + input: ListServiceSpecificCredentialsInput, + plugins: list[Plugin] | None = None, + ) -> ListServiceSpecificCredentialsOutput: + """ + Returns information about the service-specific credentials associated + with the specified IAM user. If none exists, the operation returns an + empty list. The service-specific credentials returned by this operation + are used only for authenticating the IAM user to a specific service. For + more information about using service-specific credentials to + authenticate to an Amazon Web Services service, refer to the following + docs: + + - For service-specific credentials with CodeCommit, refer to [IAM + credentials for CodeCommit: Git credentials, SSH keys, and Amazon Web + Services access + keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html) + in the *IAM User Guide*. + + - For service-specific credentials with Amazon Keyspaces (for Apache + Cassandra), refer to [Use IAM with Amazon Keyspaces (for Apache + Cassandra)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_keyspaces.html) + in the *IAM User Guide*. + + - For services that support long-term API keys, refer to [API keys for + Amazon Web Services + services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_api_keys_for_aws_services.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListServiceSpecificCredentialsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServiceSpecificCredentialsOutput`. + """ + return await self._invoke( + input, _models.LIST_SERVICE_SPECIFIC_CREDENTIALS, [], plugins + ) + + async def list_signing_certificates( + self, input: ListSigningCertificatesInput, plugins: list[Plugin] | None = None + ) -> ListSigningCertificatesOutput: + """ + Returns information about the signing certificates associated with the + specified IAM user. If none exists, the operation returns an empty list. + + Although each user is limited to a small number of signing certificates, + you can still paginate the results using the `MaxItems` and `Marker` + parameters. + + If the `UserName` field is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request for this operation. This operation works for access keys + under the Amazon Web Services account. Consequently, you can use this + operation to manage Amazon Web Services account root user credentials + even if the Amazon Web Services account has no associated users. + + Args: + input: + An instance of `ListSigningCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSigningCertificatesOutput`. + """ + return await self._invoke(input, _models.LIST_SIGNING_CERTIFICATES, [], plugins) + + async def list_ssh_public_keys( + self, input: ListSSHPublicKeysInput, plugins: list[Plugin] | None = None + ) -> ListSSHPublicKeysOutput: + """ + Returns information about the SSH public keys associated with the + specified IAM user. If none exists, the operation returns an empty list. + + The SSH public keys returned by this operation are used only for + authenticating the IAM user to an CodeCommit repository. For more + information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Although each user is limited to a small number of keys, you can still + paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `ListSSHPublicKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSSHPublicKeysOutput`. + """ + return await self._invoke(input, _models.LIST_SSH_PUBLIC_KEYS, [], plugins) + + async def list_user_policies( + self, input: ListUserPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListUserPoliciesOutput: + """ + Lists the names of the inline policies embedded in the specified IAM + user. + + An IAM user can also have managed policies attached to it. To list the + managed policies that are attached to a user, use + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + user, the operation returns an empty list. + + Args: + input: + An instance of `ListUserPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUserPoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_USER_POLICIES, [], plugins) + + async def list_users( + self, input: ListUsersInput, plugins: list[Plugin] | None = None + ) -> ListUsersOutput: + """ + Lists the IAM users that have the specified path prefix. If no path + prefix is specified, the operation returns all users in the Amazon Web + Services account. If there are none, the operation returns an empty + list. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. This operation does not return the + following attributes, even though they are an attribute of the returned + object: + + - PermissionsBoundary + + - Tags + + To view all of the information for a user, see + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListUsersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUsersOutput`. + """ + return await self._invoke(input, _models.LIST_USERS, [], plugins) + + async def list_user_tags( + self, input: ListUserTagsInput, plugins: list[Plugin] | None = None + ) -> ListUserTagsOutput: + """ + Lists the tags that are attached to the specified IAM user. The returned + list of tags is sorted by tag key. For more information about tagging, + see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListUserTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUserTagsOutput`. + """ + return await self._invoke(input, _models.LIST_USER_TAGS, [], plugins) + + async def list_virtual_mfa_devices( + self, input: ListVirtualMFADevicesInput, plugins: list[Plugin] | None = None + ) -> ListVirtualMFADevicesOutput: + """ + Lists the virtual MFA devices defined in the Amazon Web Services account + by assignment status. If you do not specify an assignment status, the + operation returns a list of all virtual MFA devices. Assignment status + can be `Assigned`, `Unassigned`, or `Any`. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + tag information for a virtual MFA device, see + [ListMFADeviceTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListVirtualMFADevicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVirtualMFADevicesOutput`. + """ + return await self._invoke(input, _models.LIST_VIRTUAL_MFA_DEVICES, [], plugins) + + async def put_account_properties( + self, input: PutAccountPropertiesInput, plugins: list[Plugin] | None = None + ) -> PutAccountPropertiesOutput: + """ + Sets account-level properties for the caller's Amazon Web Services + account. Account properties are configuration settings that control + account-wide IAM features such as Role Manager. + + Specify properties as key-value pairs in `Namespace/PropertyName` + format. All properties in a single request must belong to the same + namespace. Use + [GetAccountProperties](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountProperties.html) + to view the current properties. + + Args: + input: + An instance of `PutAccountPropertiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountPropertiesOutput`. + """ + return await self._invoke(input, _models.PUT_ACCOUNT_PROPERTIES, [], plugins) + + async def put_group_policy( + self, input: PutGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> PutGroupPolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM group. + + A user can also have managed policies attached to it. To attach a + managed policy to a group, use + [`AttachGroupPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed in a group, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutGroupPolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutGroupPolicyOutput`. + """ + return await self._invoke(input, _models.PUT_GROUP_POLICY, [], plugins) + + async def put_role_permissions_boundary( + self, + input: PutRolePermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> PutRolePermissionsBoundaryOutput: + """ + Adds or updates the policy that is specified as the IAM role's + permissions boundary. You can use an Amazon Web Services managed policy + or a customer managed policy to set the boundary for a role. Use the + boundary to control the maximum permissions that the role can have. + Setting a permissions boundary is an advanced feature that can affect + the permissions for the role. + + You cannot set the boundary for a service-linked role. + + Warning: + Policies used as permissions boundaries do not provide permissions. You + must also attach a permissions policy to the role. To learn how the + effective permissions for a role are evaluated, see [IAM JSON policy + evaluation + logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) + in the IAM User Guide. + + Args: + input: + An instance of `PutRolePermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRolePermissionsBoundaryOutput`. + """ + return await self._invoke( + input, _models.PUT_ROLE_PERMISSIONS_BOUNDARY, [], plugins + ) + + async def put_role_policy( + self, input: PutRolePolicyInput, plugins: list[Plugin] | None = None + ) -> PutRolePolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM role. + + When you embed an inline policy in a role, the inline policy is used as + part of the role's access (permissions) policy. The role's trust + policy is created at the same time as the role, using + [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) + . You can update a role's trust policy using + [`UpdateAssumeRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html) + . For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) + in the *IAM User Guide*. + + A role can also have a managed policy attached to it. To attach a + managed policy to a role, use + [`AttachRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed with a role, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutRolePolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRolePolicyOutput`. + """ + return await self._invoke(input, _models.PUT_ROLE_POLICY, [], plugins) + + async def put_user_permissions_boundary( + self, + input: PutUserPermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> PutUserPermissionsBoundaryOutput: + """ + Adds or updates the policy that is specified as the IAM user's + permissions boundary. You can use an Amazon Web Services managed policy + or a customer managed policy to set the boundary for a user. Use the + boundary to control the maximum permissions that the user can have. + Setting a permissions boundary is an advanced feature that can affect + the permissions for the user. + + Warning: + Policies that are used as permissions boundaries do not provide + permissions. You must also attach a permissions policy to the user. To + learn how the effective permissions for a user are evaluated, see [IAM + JSON policy evaluation + logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) + in the IAM User Guide. + + Args: + input: + An instance of `PutUserPermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutUserPermissionsBoundaryOutput`. + """ + return await self._invoke( + input, _models.PUT_USER_PERMISSIONS_BOUNDARY, [], plugins + ) + + async def put_user_policy( + self, input: PutUserPolicyInput, plugins: list[Plugin] | None = None + ) -> PutUserPolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM user. + + An IAM user can also have a managed policy attached to it. To attach a + managed policy to a user, use + [`AttachUserPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed in a user, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutUserPolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutUserPolicyOutput`. + """ + return await self._invoke(input, _models.PUT_USER_POLICY, [], plugins) + + async def reject_delegation_request( + self, input: RejectDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> RejectDelegationRequestOutput: + """ + Rejects a delegation request, denying the requested temporary access. + + Once a request is rejected, it cannot be accepted or updated later. + Rejected requests expire after 7 days. + + When rejecting a request, an optional explanation can be added using the + `Notes` request parameter. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `RejectDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectDelegationRequestOutput`. + """ + return await self._invoke(input, _models.REJECT_DELEGATION_REQUEST, [], plugins) + + async def remove_client_id_from_open_id_connect_provider( + self, + input: RemoveClientIDFromOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> RemoveClientIDFromOpenIDConnectProviderOutput: + """ + Removes the specified client ID (also known as audience) from the list + of client IDs registered for the specified IAM OpenID Connect (OIDC) + provider resource object. + + This operation is idempotent; it does not fail or return an error if you + try to remove a client ID that does not exist. + + Args: + input: + An instance of `RemoveClientIDFromOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveClientIDFromOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def remove_role_from_instance_profile( + self, + input: RemoveRoleFromInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> RemoveRoleFromInstanceProfileOutput: + """ + Removes the specified IAM role from the specified Amazon EC2 instance + profile. + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + role you are about to remove from the instance profile. Removing a role + from an instance profile that is associated with a running instance + might break any applications running on the instance. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For more information about instance profiles, + see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `RemoveRoleFromInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromInstanceProfileOutput`. + """ + return await self._invoke( + input, _models.REMOVE_ROLE_FROM_INSTANCE_PROFILE, [], plugins + ) + + async def remove_user_from_group( + self, input: RemoveUserFromGroupInput, plugins: list[Plugin] | None = None + ) -> RemoveUserFromGroupOutput: + """ + Removes the specified user from the specified group. + + Args: + input: + An instance of `RemoveUserFromGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveUserFromGroupOutput`. + """ + return await self._invoke(input, _models.REMOVE_USER_FROM_GROUP, [], plugins) + + async def reset_service_specific_credential( + self, + input: ResetServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> ResetServiceSpecificCredentialOutput: + """ + Resets the password for a service-specific credential. The new password + is Amazon Web Services generated and cryptographically strong. It cannot + be configured by the user. Resetting the password immediately + invalidates the previous password associated with this user. + + Args: + input: + An instance of `ResetServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetServiceSpecificCredentialOutput`. + """ + return await self._invoke( + input, _models.RESET_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + async def resync_mfa_device( + self, input: ResyncMFADeviceInput, plugins: list[Plugin] | None = None + ) -> ResyncMFADeviceOutput: + """ + Synchronizes the specified MFA device with its IAM resource object on + the Amazon Web Services servers. + + For more information about creating and working with virtual MFA + devices, see [Using a virtual MFA + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ResyncMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResyncMFADeviceOutput`. + """ + return await self._invoke(input, _models.RESYNC_MFA_DEVICE, [], plugins) + + async def send_delegation_token( + self, input: SendDelegationTokenInput, plugins: list[Plugin] | None = None + ) -> SendDelegationTokenOutput: + """ + Sends the exchange token for an accepted delegation request. + + The exchange token is sent to the partner via an asynchronous + notification channel, established by the partner. + + The delegation request must be in the `ACCEPTED` state when calling this + API. After the `SendDelegationToken` API call is successful, the request + transitions to a `FINALIZED` state and cannot be rolled back. However, a + user may reject an accepted request before the `SendDelegationToken` API + is called. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `SendDelegationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SendDelegationTokenOutput`. + """ + return await self._invoke(input, _models.SEND_DELEGATION_TOKEN, [], plugins) + + async def set_default_policy_version( + self, input: SetDefaultPolicyVersionInput, plugins: list[Plugin] | None = None + ) -> SetDefaultPolicyVersionOutput: + """ + Sets the specified version of the specified policy as the policy's + default (operative) version. + + This operation affects all users, groups, and roles that the policy is + attached to. To list the users, groups, and roles that the policy is + attached to, use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + + For information about managed policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SetDefaultPolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetDefaultPolicyVersionOutput`. + """ + return await self._invoke( + input, _models.SET_DEFAULT_POLICY_VERSION, [], plugins + ) + + async def set_security_token_service_preferences( + self, + input: SetSecurityTokenServicePreferencesInput, + plugins: list[Plugin] | None = None, + ) -> SetSecurityTokenServicePreferencesOutput: + """ + Sets the specified version of the global endpoint token as the token + version used for the Amazon Web Services account. + + By default, Security Token Service (STS) is available as a global + service, and all STS requests go to a single endpoint at + `https://sts.amazonaws.com`. Amazon Web Services recommends using + Regional STS endpoints to reduce latency, build in redundancy, and + increase session token availability. For information about Regional + endpoints for STS, see [Security Token Service endpoints and + quotas](https://docs.aws.amazon.com/general/latest/gr/sts.html) in the + *Amazon Web Services General Reference*. + + If you make an STS call to the global endpoint, the resulting session + tokens might be valid in some Regions but not others. It depends on the + version that is set in this operation. Version 1 tokens are valid only + in Amazon Web Services Regions that are available by default. These + tokens do not work in manually enabled Regions, such as Asia Pacific + (Hong Kong). Version 2 tokens are valid in all Regions. However, version + 2 tokens are longer and might affect systems where you temporarily store + tokens. For information, see [Activating and deactivating STS in an + Amazon Web Services + Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + in the *IAM User Guide*. + + To view the current session token version, see the + `GlobalEndpointTokenVersion` entry in the response of the + [GetAccountSummary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html) + operation. + + Args: + input: + An instance of `SetSecurityTokenServicePreferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetSecurityTokenServicePreferencesOutput`. + """ + return await self._invoke( + input, _models.SET_SECURITY_TOKEN_SERVICE_PREFERENCES, [], plugins + ) + + async def simulate_custom_policy( + self, input: SimulateCustomPolicyInput, plugins: list[Plugin] | None = None + ) -> SimulateCustomPolicyOutput: + """ + Simulate how a set of IAM policies and optionally a resource-based + policy works with a list of API operations and Amazon Web Services + resources to determine the policies' effective permissions. The + policies are provided as strings. + + The simulation does not perform the API operations; it only checks the + authorization to determine if the simulated policies allow or deny the + operations. You can simulate resources that don't exist in your + account. + + If you want to simulate existing policies that are attached to an IAM + user, group, or role, use + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) + instead. + + Context keys are variables that are maintained by Amazon Web Services + and its services and which provide details about the context of an API + query request. You can use the `Condition` element of an IAM policy to + evaluate context keys. To get the list of context keys that the policies + require for correct simulation, use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html). + + If the output is long, you can use `MaxItems` and `Marker` parameters to + paginate the results. + + Note: + The IAM policy simulator evaluates statements in identity-based + policies, service control policies (SCPs) including their condition keys + and resource scoping, and the inputs that you provide during simulation. + The policy simulator results can differ from your live Amazon Web + Services environment. We recommend that you check your policies against + your live Amazon Web Services environment after testing using the policy + simulator to confirm that you have the desired results. For more + information about using the policy simulator, see [Testing IAM policies + with the IAM policy + simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SimulateCustomPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SimulateCustomPolicyOutput`. + """ + return await self._invoke(input, _models.SIMULATE_CUSTOM_POLICY, [], plugins) + + async def simulate_principal_policy( + self, input: SimulatePrincipalPolicyInput, plugins: list[Plugin] | None = None + ) -> SimulatePrincipalPolicyOutput: + """ + Simulate how a set of IAM policies attached to an IAM entity works with + a list of API operations and Amazon Web Services resources to determine + the policies' effective permissions. The entity can be an IAM user, + group, or role. If you specify a user, then the simulation also includes + all of the policies that are attached to groups that the user belongs + to. You can simulate resources that don't exist in your account. + + You can optionally include a list of one or more additional policies + specified as strings to include in the simulation. If you want to + simulate only policies specified as strings, use + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + instead. + + You can also optionally include one resource-based policy to be + evaluated with each of the resources included in the simulation for IAM + users only. + + The simulation does not perform the API operations; it only checks the + authorization to determine if the simulated policies allow or deny the + operations. + + For cross-account simulations, `EvalDecisionDetails` returns the + decision for each policy type (identity-based policy, resource-based + policy, and permissions boundary). This helps you identify which policy + type is responsible for an allow or deny decision when policies span + multiple accounts. + + **Note:** This operation discloses information about the permissions + granted to other users. If you do not want users to see other user's + permissions, then consider allowing them to use + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + instead. + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + You can use the `Condition` element of an IAM policy to evaluate context + keys. To get the list of context keys that the policies require for + correct simulation, use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + + If the output is long, you can use the `MaxItems` and `Marker` + parameters to paginate the results. + + Note: + The IAM policy simulator evaluates statements in identity-based + policies, service control policies (SCPs) including their condition keys + and resource scoping, and the inputs that you provide during simulation. + The policy simulator results can differ from your live Amazon Web + Services environment. We recommend that you check your policies against + your live Amazon Web Services environment after testing using the policy + simulator to confirm that you have the desired results. For more + information about using the policy simulator, see [Testing IAM policies + with the IAM policy + simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SimulatePrincipalPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SimulatePrincipalPolicyOutput`. + """ + return await self._invoke(input, _models.SIMULATE_PRINCIPAL_POLICY, [], plugins) + + async def tag_instance_profile( + self, input: TagInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> TagInstanceProfileOutput: + """ + Adds one or more tags to an IAM instance profile. If a tag with the same + key name already exists, then that tag is overwritten with the new + value. + + Each tag consists of a key name and an associated value. By assigning + tags to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM instance + profile that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagInstanceProfileOutput`. + """ + return await self._invoke(input, _models.TAG_INSTANCE_PROFILE, [], plugins) + + async def tag_mfa_device( + self, input: TagMFADeviceInput, plugins: list[Plugin] | None = None + ) -> TagMFADeviceOutput: + """ + Adds one or more tags to an IAM virtual multi-factor authentication + (MFA) device. If a tag with the same key name already exists, then that + tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM virtual + MFA device that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagMFADeviceOutput`. + """ + return await self._invoke(input, _models.TAG_MFA_DEVICE, [], plugins) + + async def tag_open_id_connect_provider( + self, input: TagOpenIDConnectProviderInput, plugins: list[Plugin] | None = None + ) -> TagOpenIDConnectProviderOutput: + """ + Adds one or more tags to an OpenID Connect (OIDC)-compatible identity + provider. For more information about these providers, see [About web + identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + If a tag with the same key name already exists, then that tag is + overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM identity-based and + resource-based policies. You can use tags to restrict access to only + an OIDC provider that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.TAG_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def tag_policy( + self, input: TagPolicyInput, plugins: list[Plugin] | None = None + ) -> TagPolicyOutput: + """ + Adds one or more tags to an IAM customer managed policy. If a tag with + the same key name already exists, then that tag is overwritten with the + new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM customer + managed policy that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagPolicyOutput`. + """ + return await self._invoke(input, _models.TAG_POLICY, [], plugins) + + async def tag_role( + self, input: TagRoleInput, plugins: list[Plugin] | None = None + ) -> TagRoleOutput: + """ + Adds one or more tags to an IAM role. The role can be a regular role or + a service-linked role. If a tag with the same key name already exists, + then that tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM role that + has a specified tag attached. You can also restrict access to only + those resources that have a certain tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + For more information about tagging, see [Tagging IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `TagRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagRoleOutput`. + """ + return await self._invoke(input, _models.TAG_ROLE, [], plugins) + + async def tag_saml_provider( + self, input: TagSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> TagSAMLProviderOutput: + """ + Adds one or more tags to a Security Assertion Markup Language (SAML) + identity provider. For more information about these providers, see + [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) + . If a tag with the same key name already exists, then that tag is + overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only a SAML identity + provider that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagSAMLProviderOutput`. + """ + return await self._invoke(input, _models.TAG_SAML_PROVIDER, [], plugins) + + async def tag_server_certificate( + self, input: TagServerCertificateInput, plugins: list[Plugin] | None = None + ) -> TagServerCertificateOutput: + """ + Adds one or more tags to an IAM server certificate. If a tag with the + same key name already exists, then that tag is overwritten with the new + value. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only a server + certificate that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagServerCertificateOutput`. + """ + return await self._invoke(input, _models.TAG_SERVER_CERTIFICATE, [], plugins) + + async def tag_user( + self, input: TagUserInput, plugins: list[Plugin] | None = None + ) -> TagUserOutput: + """ + Adds one or more tags to an IAM user. If a tag with the same key name + already exists, then that tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM identity-based and + resource-based policies. You can use tags to restrict access to only + an IAM requesting user that has a specified tag attached. You can also + restrict access to only those resources that have a certain tag + attached. For examples of policies that show how to use tags to + control access, see [Control access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + For more information about tagging, see [Tagging IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `TagUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagUserOutput`. + """ + return await self._invoke(input, _models.TAG_USER, [], plugins) + + async def untag_instance_profile( + self, input: UntagInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> UntagInstanceProfileOutput: + """ + Removes the specified tags from the IAM instance profile. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagInstanceProfileOutput`. + """ + return await self._invoke(input, _models.UNTAG_INSTANCE_PROFILE, [], plugins) + + async def untag_mfa_device( + self, input: UntagMFADeviceInput, plugins: list[Plugin] | None = None + ) -> UntagMFADeviceOutput: + """ + Removes the specified tags from the IAM virtual multi-factor + authentication (MFA) device. For more information about tagging, see + [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagMFADeviceOutput`. + """ + return await self._invoke(input, _models.UNTAG_MFA_DEVICE, [], plugins) + + async def untag_open_id_connect_provider( + self, + input: UntagOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> UntagOpenIDConnectProviderOutput: + """ + Removes the specified tags from the specified OpenID Connect + (OIDC)-compatible identity provider in IAM. For more information about + OIDC providers, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagOpenIDConnectProviderOutput`. + """ + return await self._invoke( + input, _models.UNTAG_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + async def untag_policy( + self, input: UntagPolicyInput, plugins: list[Plugin] | None = None + ) -> UntagPolicyOutput: + """ + Removes the specified tags from the customer managed policy. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagPolicyOutput`. + """ + return await self._invoke(input, _models.UNTAG_POLICY, [], plugins) + + async def untag_role( + self, input: UntagRoleInput, plugins: list[Plugin] | None = None + ) -> UntagRoleOutput: + """ + Removes the specified tags from the role. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagRoleOutput`. + """ + return await self._invoke(input, _models.UNTAG_ROLE, [], plugins) + + async def untag_saml_provider( + self, input: UntagSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> UntagSAMLProviderOutput: + """ + Removes the specified tags from the specified Security Assertion Markup + Language (SAML) identity provider in IAM. For more information about + these providers, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagSAMLProviderOutput`. + """ + return await self._invoke(input, _models.UNTAG_SAML_PROVIDER, [], plugins) + + async def untag_server_certificate( + self, input: UntagServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UntagServerCertificateOutput: + """ + Removes the specified tags from the IAM server certificate. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagServerCertificateOutput`. + """ + return await self._invoke(input, _models.UNTAG_SERVER_CERTIFICATE, [], plugins) + + async def untag_user( + self, input: UntagUserInput, plugins: list[Plugin] | None = None + ) -> UntagUserOutput: + """ + Removes the specified tags from the user. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagUserOutput`. + """ + return await self._invoke(input, _models.UNTAG_USER, [], plugins) + + async def update_access_key( + self, input: UpdateAccessKeyInput, plugins: list[Plugin] | None = None + ) -> UpdateAccessKeyOutput: + """ + Changes the status of the specified access key from Active to Inactive, + or vice versa. This operation can be used to disable a user's key as + part of a key rotation workflow. + + If the `UserName` is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. If a temporary access key is used, then `UserName` is + required. If a long-term key is assigned to the user, then `UserName` is + not required. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + For information about rotating keys, see [Managing keys and + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccessKeyOutput`. + """ + return await self._invoke(input, _models.UPDATE_ACCESS_KEY, [], plugins) + + async def update_account_password_policy( + self, + input: UpdateAccountPasswordPolicyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateAccountPasswordPolicyOutput: + """ + Updates the password policy settings for the Amazon Web Services + account. + + Note: + This operation does not support partial updates. No parameters are + required, but if you do not specify a parameter, that parameter's value + reverts to its default value. See the **Request Parameters** section for + each parameter's default value. Also note that some parameters do not + allow the default parameter to be explicitly set. Instead, to invoke the + default value, do not include that parameter when you invoke the + operation. + + For more information about using a password policy, see [Managing an IAM + password + policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccountPasswordPolicyOutput`. + """ + return await self._invoke( + input, _models.UPDATE_ACCOUNT_PASSWORD_POLICY, [], plugins + ) + + async def update_assume_role_policy( + self, input: UpdateAssumeRolePolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateAssumeRolePolicyOutput: + """ + Updates the policy that grants an IAM entity permission to assume a + role. This is typically referred to as the \"role trust policy\". For + more information about roles, see [Using roles to delegate permissions + and federate + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html). + + Args: + input: + An instance of `UpdateAssumeRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAssumeRolePolicyOutput`. + """ + return await self._invoke(input, _models.UPDATE_ASSUME_ROLE_POLICY, [], plugins) + + async def update_delegation_request( + self, input: UpdateDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> UpdateDelegationRequestOutput: + """ + Updates an existing delegation request with additional information. When + the delegation request is updated, it reaches the `PENDING_APPROVAL` + state. + + Once a delegation request has an owner, that owner gets a default + permission to update the delegation request. For more details, see + [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `UpdateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDelegationRequestOutput`. + """ + return await self._invoke(input, _models.UPDATE_DELEGATION_REQUEST, [], plugins) + + async def update_group( + self, input: UpdateGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateGroupOutput: + """ + Updates the name and/or the path of the specified IAM group. + + Warning: + You should understand the implications of changing a group's path or + name. For more information, see [Renaming users and + groups](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html) + in the *IAM User Guide*. + Note: + The person making the request (the principal), must have permission to + change the role group with the old name and the new name. For example, + to change the group named `Managers` to `MGRs`, the principal must have + a policy that allows them to update both groups. If the principal has + permission to update the `Managers` group, but not the `MGRs` group, + then the update fails. For more information about permissions, see + [Access + management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html). + + Args: + input: + An instance of `UpdateGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGroupOutput`. + """ + return await self._invoke(input, _models.UPDATE_GROUP, [], plugins) + + async def update_login_profile( + self, input: UpdateLoginProfileInput, plugins: list[Plugin] | None = None + ) -> UpdateLoginProfileOutput: + """ + Changes the password for the specified IAM user. You can use the CLI, + the Amazon Web Services API, or the **Users** page in the IAM console to + change the password for any IAM user. Use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to change your own password in the **My Security Credentials** page in + the Amazon Web Services Management Console. + + For more information about modifying passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateLoginProfileOutput`. + """ + return await self._invoke(input, _models.UPDATE_LOGIN_PROFILE, [], plugins) + + async def update_open_id_connect_provider_thumbprint( + self, + input: UpdateOpenIDConnectProviderThumbprintInput, + plugins: list[Plugin] | None = None, + ) -> UpdateOpenIDConnectProviderThumbprintOutput: + """ + Replaces the existing list of server certificate thumbprints associated + with an OpenID Connect (OIDC) provider resource object with a new list + of thumbprints. + + The list that you pass with this operation completely replaces the + existing list of thumbprints. (The lists are not merged.) + + Typically, you need to update a thumbprint only when the identity + provider certificate changes, which occurs rarely. However, if the + provider's certificate *does* change, any attempt to assume an IAM role + that specifies the OIDC provider as a principal fails until the + certificate thumbprint is updated. + + Note: + Amazon Web Services secures communication with OIDC identity providers + (IdPs) using our library of trusted root certificate authorities (CAs) + to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If + your OIDC IdP relies on a certificate that is not signed by one of these + trusted CAs, only then we secure communication using the thumbprints set + in the IdP's configuration. + Note: + Trust for the OIDC provider is derived from the provider certificate and + is validated by the thumbprint. Therefore, it is best to limit access to + the `UpdateOpenIDConnectProviderThumbprint` operation to highly + privileged users. + + Args: + input: + An instance of `UpdateOpenIDConnectProviderThumbprintInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOpenIDConnectProviderThumbprintOutput`. + """ + return await self._invoke( + input, _models.UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT, [], plugins + ) + + async def update_role( + self, input: UpdateRoleInput, plugins: list[Plugin] | None = None + ) -> UpdateRoleOutput: + """ + Updates the description or maximum session duration setting of a role. + + Args: + input: + An instance of `UpdateRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRoleOutput`. + """ + return await self._invoke(input, _models.UPDATE_ROLE, [], plugins) + + async def update_role_description( + self, input: UpdateRoleDescriptionInput, plugins: list[Plugin] | None = None + ) -> UpdateRoleDescriptionOutput: + """ + Use + [UpdateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html) + instead. + + Modifies only the description of a role. This operation performs the + same function as the `Description` parameter in the `UpdateRole` + operation. + + Args: + input: + An instance of `UpdateRoleDescriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRoleDescriptionOutput`. + """ + return await self._invoke(input, _models.UPDATE_ROLE_DESCRIPTION, [], plugins) + + async def update_saml_provider( + self, input: UpdateSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> UpdateSAMLProviderOutput: + """ + Updates the metadata document, SAML encryption settings, and private + keys for an existing SAML provider. To rotate private keys, add your new + private key and then remove the old key in a separate request. + + Args: + input: + An instance of `UpdateSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSAMLProviderOutput`. + """ + return await self._invoke(input, _models.UPDATE_SAML_PROVIDER, [], plugins) + + async def update_server_certificate( + self, input: UpdateServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UpdateServerCertificateOutput: + """ + Updates the name and/or the path of the specified server certificate + stored in IAM. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Warning: + You should understand the implications of changing a server + certificate's path or name. For more information, see [Renaming a + server + certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts) + in the *IAM User Guide*. + Note: + The person making the request (the principal), must have permission to + change the server certificate with the old name and the new name. For + example, to change the certificate named `ProductionCert` to `ProdCert`, + the principal must have a policy that allows them to update both + certificates. If the principal has permission to update the + `ProductionCert` group, but not the `ProdCert` certificate, then the + update fails. For more information about permissions, see [Access + management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServerCertificateOutput`. + """ + return await self._invoke(input, _models.UPDATE_SERVER_CERTIFICATE, [], plugins) + + async def update_service_specific_credential( + self, + input: UpdateServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> UpdateServiceSpecificCredentialOutput: + """ + Sets the status of a service-specific credential to `Active` or + `Inactive`. Service-specific credentials that are inactive cannot be + used for authentication to the service. This operation can be used to + disable a user's service-specific credential as part of a credential + rotation work flow. + + Args: + input: + An instance of `UpdateServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServiceSpecificCredentialOutput`. + """ + return await self._invoke( + input, _models.UPDATE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + async def update_signing_certificate( + self, input: UpdateSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> UpdateSigningCertificateOutput: + """ + Changes the status of the specified user signing certificate from active + to disabled, or vice versa. This operation can be used to disable an IAM + user's signing certificate as part of a certificate rotation work flow. + + If the `UserName` field is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Args: + input: + An instance of `UpdateSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSigningCertificateOutput`. + """ + return await self._invoke( + input, _models.UPDATE_SIGNING_CERTIFICATE, [], plugins + ) + + async def update_ssh_public_key( + self, input: UpdateSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> UpdateSSHPublicKeyOutput: + """ + Sets the status of an IAM user's SSH public key to active or inactive. + SSH public keys that are inactive cannot be used for authentication. + This operation can be used to disable a user's SSH public key as part + of a key rotation work flow. + + The SSH public key affected by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `UpdateSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSSHPublicKeyOutput`. + """ + return await self._invoke(input, _models.UPDATE_SSH_PUBLIC_KEY, [], plugins) + + async def update_user( + self, input: UpdateUserInput, plugins: list[Plugin] | None = None + ) -> UpdateUserOutput: + """ + Updates the name and/or the path of the specified IAM user. + + Warning: + You should understand the implications of changing an IAM user's path + or name. For more information, see [Renaming an IAM + user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming) + and [Renaming an IAM + group](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html) + in the *IAM User Guide*. + Note: + To change a user name, the requester must have appropriate permissions + on both the source object and the target object. For example, to change + Bob to Robert, the entity making the request must have permission on Bob + and Robert, or must have permission on all (*). For more information + about permissions, see [Permissions and + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html). + + Args: + input: + An instance of `UpdateUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateUserOutput`. + """ + return await self._invoke(input, _models.UPDATE_USER, [], plugins) + + async def upload_server_certificate( + self, input: UploadServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UploadServerCertificateOutput: + """ + Uploads a server certificate entity for the Amazon Web Services account. + The server certificate entity includes a public key certificate, a + private key, and an optional certificate chain, which should all be + PEM-encoded. + + We recommend that you use [Certificate + Manager](https://docs.aws.amazon.com/acm/) to provision, manage, and + deploy your server certificates. With ACM you can request a certificate, + deploy it to Amazon Web Services resources, and let ACM handle + certificate renewals for you. Certificates provided by ACM are free. For + more information about using ACM, see the [Certificate Manager User + Guide](https://docs.aws.amazon.com/acm/latest/userguide/). + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + For information about the number of server certificates you can upload, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because the body of the public key certificate, private key, and the + certificate chain can be large, you should use POST rather than GET when + calling `UploadServerCertificate`. For information about setting up + signatures and authorization through the API, see [Signing Amazon Web + Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) + in the *Amazon Web Services General Reference*. For general information + about using the Query API with IAM, see [Calling the API by making HTTP + query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UploadServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadServerCertificateOutput`. + """ + return await self._invoke(input, _models.UPLOAD_SERVER_CERTIFICATE, [], plugins) + + async def upload_signing_certificate( + self, input: UploadSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> UploadSigningCertificateOutput: + """ + Uploads an X.509 signing certificate and associates it with the + specified IAM user. Some Amazon Web Services services require you to use + certificates to validate requests that are signed with a corresponding + private key. When you upload the certificate, its default status is + `Active`. + + For information about when you would use an X.509 signing certificate, + see [Managing server certificates in + IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + If the `UserName` is not specified, the IAM user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Note: + Because the body of an X.509 certificate can be large, you should use + POST rather than GET when calling `UploadSigningCertificate`. For + information about setting up signatures and authorization through the + API, see [Signing Amazon Web Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) + in the *Amazon Web Services General Reference*. For general information + about using the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UploadSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadSigningCertificateOutput`. + """ + return await self._invoke( + input, _models.UPLOAD_SIGNING_CERTIFICATE, [], plugins + ) + + async def upload_ssh_public_key( + self, input: UploadSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> UploadSSHPublicKeyOutput: + """ + Uploads an SSH public key and associates it with the specified IAM user. + + The SSH public key uploaded by this operation can be used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `UploadSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadSSHPublicKeyOutput`. + """ + return await self._invoke(input, _models.UPLOAD_SSH_PUBLIC_KEY, [], plugins) + + async def _new_config(self) -> AsyncIAMConfig: + return await AsyncIAMConfig.resolve() + + async def _post_setup(self, config: AsyncIAMConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/aio/config.py b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/config.py new file mode 100644 index 00000000..03db5965 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/config.py @@ -0,0 +1,1018 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import AWS_IDENTITY_MANAGEMENT_V20100508 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AcceptDelegationRequestInput, + AcceptDelegationRequestOutput, + AcquireRoleInput, + AcquireRoleOutput, + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + AddRoleToInstanceProfileInput, + AddRoleToInstanceProfileOutput, + AddUserToGroupInput, + AddUserToGroupOutput, + AssociateDelegationRequestInput, + AssociateDelegationRequestOutput, + AttachGroupPolicyInput, + AttachGroupPolicyOutput, + AttachRolePolicyInput, + AttachRolePolicyOutput, + AttachUserPolicyInput, + AttachUserPolicyOutput, + ChangePasswordInput, + ChangePasswordOutput, + CreateAccessKeyInput, + CreateAccessKeyOutput, + CreateAccountAliasInput, + CreateAccountAliasOutput, + CreateDelegationRequestInput, + CreateDelegationRequestOutput, + CreateGroupInput, + CreateGroupOutput, + CreateInstanceProfileInput, + CreateInstanceProfileOutput, + CreateLoginProfileInput, + CreateLoginProfileOutput, + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + CreatePolicyInput, + CreatePolicyOutput, + CreatePolicyVersionInput, + CreatePolicyVersionOutput, + CreateRoleInput, + CreateRoleOutput, + CreateSAMLProviderInput, + CreateSAMLProviderOutput, + CreateServiceLinkedRoleInput, + CreateServiceLinkedRoleOutput, + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + CreateUserInput, + CreateUserOutput, + CreateVirtualMFADeviceInput, + CreateVirtualMFADeviceOutput, + DeactivateMFADeviceInput, + DeactivateMFADeviceOutput, + DeleteAccessKeyInput, + DeleteAccessKeyOutput, + DeleteAccountAliasInput, + DeleteAccountAliasOutput, + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + DeleteGroupInput, + DeleteGroupOutput, + DeleteGroupPolicyInput, + DeleteGroupPolicyOutput, + DeleteInstanceProfileInput, + DeleteInstanceProfileOutput, + DeleteLoginProfileInput, + DeleteLoginProfileOutput, + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + DeletePolicyInput, + DeletePolicyOutput, + DeletePolicyVersionInput, + DeletePolicyVersionOutput, + DeleteRoleInput, + DeleteRoleOutput, + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + DeleteRolePolicyInput, + DeleteRolePolicyOutput, + DeleteSAMLProviderInput, + DeleteSAMLProviderOutput, + DeleteSSHPublicKeyInput, + DeleteSSHPublicKeyOutput, + DeleteServerCertificateInput, + DeleteServerCertificateOutput, + DeleteServiceLinkedRoleInput, + DeleteServiceLinkedRoleOutput, + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + DeleteSigningCertificateInput, + DeleteSigningCertificateOutput, + DeleteUserInput, + DeleteUserOutput, + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + DeleteUserPolicyInput, + DeleteUserPolicyOutput, + DeleteVirtualMFADeviceInput, + DeleteVirtualMFADeviceOutput, + DetachGroupPolicyInput, + DetachGroupPolicyOutput, + DetachRolePolicyInput, + DetachRolePolicyOutput, + DetachUserPolicyInput, + DetachUserPolicyOutput, + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + EnableMFADeviceInput, + EnableMFADeviceOutput, + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + GenerateCredentialReportInput, + GenerateCredentialReportOutput, + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + GetAccessKeyLastUsedInput, + GetAccessKeyLastUsedOutput, + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + GetAccountPasswordPolicyInput, + GetAccountPasswordPolicyOutput, + GetAccountPropertiesInput, + GetAccountPropertiesOutput, + GetAccountSummaryInput, + GetAccountSummaryOutput, + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + GetCredentialReportInput, + GetCredentialReportOutput, + GetDelegationRequestInput, + GetDelegationRequestOutput, + GetGroupInput, + GetGroupOutput, + GetGroupPolicyInput, + GetGroupPolicyOutput, + GetHumanReadableSummaryInput, + GetHumanReadableSummaryOutput, + GetInstanceProfileInput, + GetInstanceProfileOutput, + GetLoginProfileInput, + GetLoginProfileOutput, + GetMFADeviceInput, + GetMFADeviceOutput, + GetOpenIDConnectProviderInput, + GetOpenIDConnectProviderOutput, + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + GetPolicyInput, + GetPolicyOutput, + GetPolicyVersionInput, + GetPolicyVersionOutput, + GetRoleInput, + GetRoleOutput, + GetRolePolicyInput, + GetRolePolicyOutput, + GetRoleTemplateVersionInput, + GetRoleTemplateVersionOutput, + GetSAMLProviderInput, + GetSAMLProviderOutput, + GetSSHPublicKeyInput, + GetSSHPublicKeyOutput, + GetServerCertificateInput, + GetServerCertificateOutput, + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + GetUserInput, + GetUserOutput, + GetUserPolicyInput, + GetUserPolicyOutput, + ListAccessKeysInput, + ListAccessKeysOutput, + ListAccountAliasesInput, + ListAccountAliasesOutput, + ListAttachedGroupPoliciesInput, + ListAttachedGroupPoliciesOutput, + ListAttachedRolePoliciesInput, + ListAttachedRolePoliciesOutput, + ListAttachedUserPoliciesInput, + ListAttachedUserPoliciesOutput, + ListDelegationRequestsInput, + ListDelegationRequestsOutput, + ListEntitiesForPolicyInput, + ListEntitiesForPolicyOutput, + ListGroupPoliciesInput, + ListGroupPoliciesOutput, + ListGroupsForUserInput, + ListGroupsForUserOutput, + ListGroupsInput, + ListGroupsOutput, + ListInstanceProfileTagsInput, + ListInstanceProfileTagsOutput, + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + ListInstanceProfilesInput, + ListInstanceProfilesOutput, + ListMFADeviceTagsInput, + ListMFADeviceTagsOutput, + ListMFADevicesInput, + ListMFADevicesOutput, + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + ListOpenIDConnectProvidersInput, + ListOpenIDConnectProvidersOutput, + ListOrganizationsFeaturesInput, + ListOrganizationsFeaturesOutput, + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + ListPoliciesInput, + ListPoliciesOutput, + ListPolicyTagsInput, + ListPolicyTagsOutput, + ListPolicyVersionsInput, + ListPolicyVersionsOutput, + ListRolePoliciesInput, + ListRolePoliciesOutput, + ListRoleTagsInput, + ListRoleTagsOutput, + ListRolesInput, + ListRolesOutput, + ListSAMLProviderTagsInput, + ListSAMLProviderTagsOutput, + ListSAMLProvidersInput, + ListSAMLProvidersOutput, + ListSSHPublicKeysInput, + ListSSHPublicKeysOutput, + ListServerCertificateTagsInput, + ListServerCertificateTagsOutput, + ListServerCertificatesInput, + ListServerCertificatesOutput, + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + ListSigningCertificatesInput, + ListSigningCertificatesOutput, + ListUserPoliciesInput, + ListUserPoliciesOutput, + ListUserTagsInput, + ListUserTagsOutput, + ListUsersInput, + ListUsersOutput, + ListVirtualMFADevicesInput, + ListVirtualMFADevicesOutput, + PutAccountPropertiesInput, + PutAccountPropertiesOutput, + PutGroupPolicyInput, + PutGroupPolicyOutput, + PutRolePermissionsBoundaryInput, + PutRolePermissionsBoundaryOutput, + PutRolePolicyInput, + PutRolePolicyOutput, + PutUserPermissionsBoundaryInput, + PutUserPermissionsBoundaryOutput, + PutUserPolicyInput, + PutUserPolicyOutput, + RejectDelegationRequestInput, + RejectDelegationRequestOutput, + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + RemoveUserFromGroupInput, + RemoveUserFromGroupOutput, + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + ResyncMFADeviceInput, + ResyncMFADeviceOutput, + SendDelegationTokenInput, + SendDelegationTokenOutput, + SetDefaultPolicyVersionInput, + SetDefaultPolicyVersionOutput, + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + SimulateCustomPolicyInput, + SimulateCustomPolicyOutput, + SimulatePrincipalPolicyInput, + SimulatePrincipalPolicyOutput, + TagInstanceProfileInput, + TagInstanceProfileOutput, + TagMFADeviceInput, + TagMFADeviceOutput, + TagOpenIDConnectProviderInput, + TagOpenIDConnectProviderOutput, + TagPolicyInput, + TagPolicyOutput, + TagRoleInput, + TagRoleOutput, + TagSAMLProviderInput, + TagSAMLProviderOutput, + TagServerCertificateInput, + TagServerCertificateOutput, + TagUserInput, + TagUserOutput, + UntagInstanceProfileInput, + UntagInstanceProfileOutput, + UntagMFADeviceInput, + UntagMFADeviceOutput, + UntagOpenIDConnectProviderInput, + UntagOpenIDConnectProviderOutput, + UntagPolicyInput, + UntagPolicyOutput, + UntagRoleInput, + UntagRoleOutput, + UntagSAMLProviderInput, + UntagSAMLProviderOutput, + UntagServerCertificateInput, + UntagServerCertificateOutput, + UntagUserInput, + UntagUserOutput, + UpdateAccessKeyInput, + UpdateAccessKeyOutput, + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + UpdateAssumeRolePolicyInput, + UpdateAssumeRolePolicyOutput, + UpdateDelegationRequestInput, + UpdateDelegationRequestOutput, + UpdateGroupInput, + UpdateGroupOutput, + UpdateLoginProfileInput, + UpdateLoginProfileOutput, + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + UpdateRoleDescriptionInput, + UpdateRoleDescriptionOutput, + UpdateRoleInput, + UpdateRoleOutput, + UpdateSAMLProviderInput, + UpdateSAMLProviderOutput, + UpdateSSHPublicKeyInput, + UpdateSSHPublicKeyOutput, + UpdateServerCertificateInput, + UpdateServerCertificateOutput, + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + UpdateSigningCertificateInput, + UpdateSigningCertificateOutput, + UpdateUserInput, + UpdateUserOutput, + UploadSSHPublicKeyInput, + UploadSSHPublicKeyOutput, + UploadServerCertificateInput, + UploadServerCertificateOutput, + UploadSigningCertificateInput, + UploadSigningCertificateOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + AcceptDelegationRequestInput, AcceptDelegationRequestOutput, Any, Any + ], + Interceptor[AcquireRoleInput, AcquireRoleOutput, Any, Any], + Interceptor[ + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[ + AddRoleToInstanceProfileInput, AddRoleToInstanceProfileOutput, Any, Any + ], + Interceptor[AddUserToGroupInput, AddUserToGroupOutput, Any, Any], + Interceptor[ + AssociateDelegationRequestInput, AssociateDelegationRequestOutput, Any, Any + ], + Interceptor[AttachGroupPolicyInput, AttachGroupPolicyOutput, Any, Any], + Interceptor[AttachRolePolicyInput, AttachRolePolicyOutput, Any, Any], + Interceptor[AttachUserPolicyInput, AttachUserPolicyOutput, Any, Any], + Interceptor[ChangePasswordInput, ChangePasswordOutput, Any, Any], + Interceptor[CreateAccessKeyInput, CreateAccessKeyOutput, Any, Any], + Interceptor[CreateAccountAliasInput, CreateAccountAliasOutput, Any, Any], + Interceptor[ + CreateDelegationRequestInput, CreateDelegationRequestOutput, Any, Any + ], + Interceptor[CreateGroupInput, CreateGroupOutput, Any, Any], + Interceptor[CreateInstanceProfileInput, CreateInstanceProfileOutput, Any, Any], + Interceptor[CreateLoginProfileInput, CreateLoginProfileOutput, Any, Any], + Interceptor[ + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[CreatePolicyInput, CreatePolicyOutput, Any, Any], + Interceptor[CreatePolicyVersionInput, CreatePolicyVersionOutput, Any, Any], + Interceptor[CreateRoleInput, CreateRoleOutput, Any, Any], + Interceptor[CreateSAMLProviderInput, CreateSAMLProviderOutput, Any, Any], + Interceptor[ + CreateServiceLinkedRoleInput, CreateServiceLinkedRoleOutput, Any, Any + ], + Interceptor[ + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[CreateUserInput, CreateUserOutput, Any, Any], + Interceptor[ + CreateVirtualMFADeviceInput, CreateVirtualMFADeviceOutput, Any, Any + ], + Interceptor[DeactivateMFADeviceInput, DeactivateMFADeviceOutput, Any, Any], + Interceptor[DeleteAccessKeyInput, DeleteAccessKeyOutput, Any, Any], + Interceptor[DeleteAccountAliasInput, DeleteAccountAliasOutput, Any, Any], + Interceptor[ + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteGroupInput, DeleteGroupOutput, Any, Any], + Interceptor[DeleteGroupPolicyInput, DeleteGroupPolicyOutput, Any, Any], + Interceptor[DeleteInstanceProfileInput, DeleteInstanceProfileOutput, Any, Any], + Interceptor[DeleteLoginProfileInput, DeleteLoginProfileOutput, Any, Any], + Interceptor[ + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[DeletePolicyInput, DeletePolicyOutput, Any, Any], + Interceptor[DeletePolicyVersionInput, DeletePolicyVersionOutput, Any, Any], + Interceptor[DeleteRoleInput, DeleteRoleOutput, Any, Any], + Interceptor[ + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + Any, + Any, + ], + Interceptor[DeleteRolePolicyInput, DeleteRolePolicyOutput, Any, Any], + Interceptor[DeleteSAMLProviderInput, DeleteSAMLProviderOutput, Any, Any], + Interceptor[ + DeleteServerCertificateInput, DeleteServerCertificateOutput, Any, Any + ], + Interceptor[ + DeleteServiceLinkedRoleInput, DeleteServiceLinkedRoleOutput, Any, Any + ], + Interceptor[ + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ + DeleteSigningCertificateInput, DeleteSigningCertificateOutput, Any, Any + ], + Interceptor[DeleteSSHPublicKeyInput, DeleteSSHPublicKeyOutput, Any, Any], + Interceptor[DeleteUserInput, DeleteUserOutput, Any, Any], + Interceptor[ + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + Any, + Any, + ], + Interceptor[DeleteUserPolicyInput, DeleteUserPolicyOutput, Any, Any], + Interceptor[ + DeleteVirtualMFADeviceInput, DeleteVirtualMFADeviceOutput, Any, Any + ], + Interceptor[DetachGroupPolicyInput, DetachGroupPolicyOutput, Any, Any], + Interceptor[DetachRolePolicyInput, DetachRolePolicyOutput, Any, Any], + Interceptor[DetachUserPolicyInput, DetachUserPolicyOutput, Any, Any], + Interceptor[ + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + Any, + Any, + ], + Interceptor[ + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + Any, + Any, + ], + Interceptor[ + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + Any, + Any, + ], + Interceptor[EnableMFADeviceInput, EnableMFADeviceOutput, Any, Any], + Interceptor[ + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + Any, + Any, + ], + Interceptor[ + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + Any, + Any, + ], + Interceptor[ + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + Any, + Any, + ], + Interceptor[ + GenerateCredentialReportInput, GenerateCredentialReportOutput, Any, Any + ], + Interceptor[ + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + Any, + Any, + ], + Interceptor[ + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + Any, + Any, + ], + Interceptor[GetAccessKeyLastUsedInput, GetAccessKeyLastUsedOutput, Any, Any], + Interceptor[ + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetAccountPasswordPolicyInput, GetAccountPasswordPolicyOutput, Any, Any + ], + Interceptor[GetAccountPropertiesInput, GetAccountPropertiesOutput, Any, Any], + Interceptor[GetAccountSummaryInput, GetAccountSummaryOutput, Any, Any], + Interceptor[ + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + Any, + Any, + ], + Interceptor[GetCredentialReportInput, GetCredentialReportOutput, Any, Any], + Interceptor[GetDelegationRequestInput, GetDelegationRequestOutput, Any, Any], + Interceptor[GetGroupInput, GetGroupOutput, Any, Any], + Interceptor[GetGroupPolicyInput, GetGroupPolicyOutput, Any, Any], + Interceptor[ + GetHumanReadableSummaryInput, GetHumanReadableSummaryOutput, Any, Any + ], + Interceptor[GetInstanceProfileInput, GetInstanceProfileOutput, Any, Any], + Interceptor[GetLoginProfileInput, GetLoginProfileOutput, Any, Any], + Interceptor[GetMFADeviceInput, GetMFADeviceOutput, Any, Any], + Interceptor[ + GetOpenIDConnectProviderInput, GetOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[ + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + Any, + Any, + ], + Interceptor[ + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + Any, + Any, + ], + Interceptor[GetPolicyInput, GetPolicyOutput, Any, Any], + Interceptor[GetPolicyVersionInput, GetPolicyVersionOutput, Any, Any], + Interceptor[GetRoleInput, GetRoleOutput, Any, Any], + Interceptor[GetRolePolicyInput, GetRolePolicyOutput, Any, Any], + Interceptor[ + GetRoleTemplateVersionInput, GetRoleTemplateVersionOutput, Any, Any + ], + Interceptor[GetSAMLProviderInput, GetSAMLProviderOutput, Any, Any], + Interceptor[GetServerCertificateInput, GetServerCertificateOutput, Any, Any], + Interceptor[ + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + Any, + Any, + ], + Interceptor[ + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + Any, + Any, + ], + Interceptor[GetSSHPublicKeyInput, GetSSHPublicKeyOutput, Any, Any], + Interceptor[GetUserInput, GetUserOutput, Any, Any], + Interceptor[GetUserPolicyInput, GetUserPolicyOutput, Any, Any], + Interceptor[ListAccessKeysInput, ListAccessKeysOutput, Any, Any], + Interceptor[ListAccountAliasesInput, ListAccountAliasesOutput, Any, Any], + Interceptor[ + ListAttachedGroupPoliciesInput, ListAttachedGroupPoliciesOutput, Any, Any + ], + Interceptor[ + ListAttachedRolePoliciesInput, ListAttachedRolePoliciesOutput, Any, Any + ], + Interceptor[ + ListAttachedUserPoliciesInput, ListAttachedUserPoliciesOutput, Any, Any + ], + Interceptor[ + ListDelegationRequestsInput, ListDelegationRequestsOutput, Any, Any + ], + Interceptor[ListEntitiesForPolicyInput, ListEntitiesForPolicyOutput, Any, Any], + Interceptor[ListGroupPoliciesInput, ListGroupPoliciesOutput, Any, Any], + Interceptor[ListGroupsInput, ListGroupsOutput, Any, Any], + Interceptor[ListGroupsForUserInput, ListGroupsForUserOutput, Any, Any], + Interceptor[ListInstanceProfilesInput, ListInstanceProfilesOutput, Any, Any], + Interceptor[ + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + Any, + Any, + ], + Interceptor[ + ListInstanceProfileTagsInput, ListInstanceProfileTagsOutput, Any, Any + ], + Interceptor[ListMFADevicesInput, ListMFADevicesOutput, Any, Any], + Interceptor[ListMFADeviceTagsInput, ListMFADeviceTagsOutput, Any, Any], + Interceptor[ + ListOpenIDConnectProvidersInput, ListOpenIDConnectProvidersOutput, Any, Any + ], + Interceptor[ + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + Any, + Any, + ], + Interceptor[ + ListOrganizationsFeaturesInput, ListOrganizationsFeaturesOutput, Any, Any + ], + Interceptor[ListPoliciesInput, ListPoliciesOutput, Any, Any], + Interceptor[ + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + Any, + Any, + ], + Interceptor[ListPolicyTagsInput, ListPolicyTagsOutput, Any, Any], + Interceptor[ListPolicyVersionsInput, ListPolicyVersionsOutput, Any, Any], + Interceptor[ListRolePoliciesInput, ListRolePoliciesOutput, Any, Any], + Interceptor[ListRolesInput, ListRolesOutput, Any, Any], + Interceptor[ListRoleTagsInput, ListRoleTagsOutput, Any, Any], + Interceptor[ListSAMLProvidersInput, ListSAMLProvidersOutput, Any, Any], + Interceptor[ListSAMLProviderTagsInput, ListSAMLProviderTagsOutput, Any, Any], + Interceptor[ + ListServerCertificatesInput, ListServerCertificatesOutput, Any, Any + ], + Interceptor[ + ListServerCertificateTagsInput, ListServerCertificateTagsOutput, Any, Any + ], + Interceptor[ + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + Any, + Any, + ], + Interceptor[ + ListSigningCertificatesInput, ListSigningCertificatesOutput, Any, Any + ], + Interceptor[ListSSHPublicKeysInput, ListSSHPublicKeysOutput, Any, Any], + Interceptor[ListUserPoliciesInput, ListUserPoliciesOutput, Any, Any], + Interceptor[ListUsersInput, ListUsersOutput, Any, Any], + Interceptor[ListUserTagsInput, ListUserTagsOutput, Any, Any], + Interceptor[ListVirtualMFADevicesInput, ListVirtualMFADevicesOutput, Any, Any], + Interceptor[PutAccountPropertiesInput, PutAccountPropertiesOutput, Any, Any], + Interceptor[PutGroupPolicyInput, PutGroupPolicyOutput, Any, Any], + Interceptor[ + PutRolePermissionsBoundaryInput, PutRolePermissionsBoundaryOutput, Any, Any + ], + Interceptor[PutRolePolicyInput, PutRolePolicyOutput, Any, Any], + Interceptor[ + PutUserPermissionsBoundaryInput, PutUserPermissionsBoundaryOutput, Any, Any + ], + Interceptor[PutUserPolicyInput, PutUserPolicyOutput, Any, Any], + Interceptor[ + RejectDelegationRequestInput, RejectDelegationRequestOutput, Any, Any + ], + Interceptor[ + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[ + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + Any, + Any, + ], + Interceptor[RemoveUserFromGroupInput, RemoveUserFromGroupOutput, Any, Any], + Interceptor[ + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ResyncMFADeviceInput, ResyncMFADeviceOutput, Any, Any], + Interceptor[SendDelegationTokenInput, SendDelegationTokenOutput, Any, Any], + Interceptor[ + SetDefaultPolicyVersionInput, SetDefaultPolicyVersionOutput, Any, Any + ], + Interceptor[ + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + Any, + Any, + ], + Interceptor[SimulateCustomPolicyInput, SimulateCustomPolicyOutput, Any, Any], + Interceptor[ + SimulatePrincipalPolicyInput, SimulatePrincipalPolicyOutput, Any, Any + ], + Interceptor[TagInstanceProfileInput, TagInstanceProfileOutput, Any, Any], + Interceptor[TagMFADeviceInput, TagMFADeviceOutput, Any, Any], + Interceptor[ + TagOpenIDConnectProviderInput, TagOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[TagPolicyInput, TagPolicyOutput, Any, Any], + Interceptor[TagRoleInput, TagRoleOutput, Any, Any], + Interceptor[TagSAMLProviderInput, TagSAMLProviderOutput, Any, Any], + Interceptor[TagServerCertificateInput, TagServerCertificateOutput, Any, Any], + Interceptor[TagUserInput, TagUserOutput, Any, Any], + Interceptor[UntagInstanceProfileInput, UntagInstanceProfileOutput, Any, Any], + Interceptor[UntagMFADeviceInput, UntagMFADeviceOutput, Any, Any], + Interceptor[ + UntagOpenIDConnectProviderInput, UntagOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[UntagPolicyInput, UntagPolicyOutput, Any, Any], + Interceptor[UntagRoleInput, UntagRoleOutput, Any, Any], + Interceptor[UntagSAMLProviderInput, UntagSAMLProviderOutput, Any, Any], + Interceptor[ + UntagServerCertificateInput, UntagServerCertificateOutput, Any, Any + ], + Interceptor[UntagUserInput, UntagUserOutput, Any, Any], + Interceptor[UpdateAccessKeyInput, UpdateAccessKeyOutput, Any, Any], + Interceptor[ + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + Any, + Any, + ], + Interceptor[ + UpdateAssumeRolePolicyInput, UpdateAssumeRolePolicyOutput, Any, Any + ], + Interceptor[ + UpdateDelegationRequestInput, UpdateDelegationRequestOutput, Any, Any + ], + Interceptor[UpdateGroupInput, UpdateGroupOutput, Any, Any], + Interceptor[UpdateLoginProfileInput, UpdateLoginProfileOutput, Any, Any], + Interceptor[ + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + Any, + Any, + ], + Interceptor[UpdateRoleInput, UpdateRoleOutput, Any, Any], + Interceptor[UpdateRoleDescriptionInput, UpdateRoleDescriptionOutput, Any, Any], + Interceptor[UpdateSAMLProviderInput, UpdateSAMLProviderOutput, Any, Any], + Interceptor[ + UpdateServerCertificateInput, UpdateServerCertificateOutput, Any, Any + ], + Interceptor[ + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ + UpdateSigningCertificateInput, UpdateSigningCertificateOutput, Any, Any + ], + Interceptor[UpdateSSHPublicKeyInput, UpdateSSHPublicKeyOutput, Any, Any], + Interceptor[UpdateUserInput, UpdateUserOutput, Any, Any], + Interceptor[ + UploadServerCertificateInput, UploadServerCertificateOutput, Any, Any + ], + Interceptor[ + UploadSigningCertificateInput, UploadSigningCertificateOutput, Any, Any + ], + Interceptor[UploadSSHPublicKeyInput, UploadSSHPublicKeyOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.iam", + service_target="AWSIdentityManagementV20100508", + version="2010-05-08", + service_schema=AWS_IDENTITY_MANAGEMENT_V20100508, +) + + +class _AsyncIAMConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncIAMConfig(AsyncAwsConfig): + """IAM configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("iam").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="iam") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncIAMConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncIAMConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/aio/user_agent.py b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/user_agent.py new file mode 100644 index 00000000..44e6affa --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncIAMConfig + + +def aws_user_agent_plugin(config: AsyncIAMConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="IAM", + ) + ) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/auth.py b/clients/aws-sdk-iam/src/aws_sdk_iam/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/client.py b/clients/aws-sdk-iam/src/aws_sdk_iam/client.py new file mode 100644 index 00000000..e00e502b --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/client.py @@ -0,0 +1,6796 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import IAMConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AcceptDelegationRequestInput, + AcceptDelegationRequestOutput, + AcquireRoleInput, + AcquireRoleOutput, + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + AddRoleToInstanceProfileInput, + AddRoleToInstanceProfileOutput, + AddUserToGroupInput, + AddUserToGroupOutput, + AssociateDelegationRequestInput, + AssociateDelegationRequestOutput, + AttachGroupPolicyInput, + AttachGroupPolicyOutput, + AttachRolePolicyInput, + AttachRolePolicyOutput, + AttachUserPolicyInput, + AttachUserPolicyOutput, + ChangePasswordInput, + ChangePasswordOutput, + CreateAccessKeyInput, + CreateAccessKeyOutput, + CreateAccountAliasInput, + CreateAccountAliasOutput, + CreateDelegationRequestInput, + CreateDelegationRequestOutput, + CreateGroupInput, + CreateGroupOutput, + CreateInstanceProfileInput, + CreateInstanceProfileOutput, + CreateLoginProfileInput, + CreateLoginProfileOutput, + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + CreatePolicyInput, + CreatePolicyOutput, + CreatePolicyVersionInput, + CreatePolicyVersionOutput, + CreateRoleInput, + CreateRoleOutput, + CreateSAMLProviderInput, + CreateSAMLProviderOutput, + CreateServiceLinkedRoleInput, + CreateServiceLinkedRoleOutput, + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + CreateUserInput, + CreateUserOutput, + CreateVirtualMFADeviceInput, + CreateVirtualMFADeviceOutput, + DeactivateMFADeviceInput, + DeactivateMFADeviceOutput, + DeleteAccessKeyInput, + DeleteAccessKeyOutput, + DeleteAccountAliasInput, + DeleteAccountAliasOutput, + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + DeleteGroupInput, + DeleteGroupOutput, + DeleteGroupPolicyInput, + DeleteGroupPolicyOutput, + DeleteInstanceProfileInput, + DeleteInstanceProfileOutput, + DeleteLoginProfileInput, + DeleteLoginProfileOutput, + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + DeletePolicyInput, + DeletePolicyOutput, + DeletePolicyVersionInput, + DeletePolicyVersionOutput, + DeleteRoleInput, + DeleteRoleOutput, + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + DeleteRolePolicyInput, + DeleteRolePolicyOutput, + DeleteSAMLProviderInput, + DeleteSAMLProviderOutput, + DeleteSSHPublicKeyInput, + DeleteSSHPublicKeyOutput, + DeleteServerCertificateInput, + DeleteServerCertificateOutput, + DeleteServiceLinkedRoleInput, + DeleteServiceLinkedRoleOutput, + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + DeleteSigningCertificateInput, + DeleteSigningCertificateOutput, + DeleteUserInput, + DeleteUserOutput, + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + DeleteUserPolicyInput, + DeleteUserPolicyOutput, + DeleteVirtualMFADeviceInput, + DeleteVirtualMFADeviceOutput, + DetachGroupPolicyInput, + DetachGroupPolicyOutput, + DetachRolePolicyInput, + DetachRolePolicyOutput, + DetachUserPolicyInput, + DetachUserPolicyOutput, + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + EnableMFADeviceInput, + EnableMFADeviceOutput, + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + GenerateCredentialReportInput, + GenerateCredentialReportOutput, + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + GetAccessKeyLastUsedInput, + GetAccessKeyLastUsedOutput, + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + GetAccountPasswordPolicyInput, + GetAccountPasswordPolicyOutput, + GetAccountPropertiesInput, + GetAccountPropertiesOutput, + GetAccountSummaryInput, + GetAccountSummaryOutput, + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + GetCredentialReportInput, + GetCredentialReportOutput, + GetDelegationRequestInput, + GetDelegationRequestOutput, + GetGroupInput, + GetGroupOutput, + GetGroupPolicyInput, + GetGroupPolicyOutput, + GetHumanReadableSummaryInput, + GetHumanReadableSummaryOutput, + GetInstanceProfileInput, + GetInstanceProfileOutput, + GetLoginProfileInput, + GetLoginProfileOutput, + GetMFADeviceInput, + GetMFADeviceOutput, + GetOpenIDConnectProviderInput, + GetOpenIDConnectProviderOutput, + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + GetPolicyInput, + GetPolicyOutput, + GetPolicyVersionInput, + GetPolicyVersionOutput, + GetRoleInput, + GetRoleOutput, + GetRolePolicyInput, + GetRolePolicyOutput, + GetRoleTemplateVersionInput, + GetRoleTemplateVersionOutput, + GetSAMLProviderInput, + GetSAMLProviderOutput, + GetSSHPublicKeyInput, + GetSSHPublicKeyOutput, + GetServerCertificateInput, + GetServerCertificateOutput, + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + GetUserInput, + GetUserOutput, + GetUserPolicyInput, + GetUserPolicyOutput, + ListAccessKeysInput, + ListAccessKeysOutput, + ListAccountAliasesInput, + ListAccountAliasesOutput, + ListAttachedGroupPoliciesInput, + ListAttachedGroupPoliciesOutput, + ListAttachedRolePoliciesInput, + ListAttachedRolePoliciesOutput, + ListAttachedUserPoliciesInput, + ListAttachedUserPoliciesOutput, + ListDelegationRequestsInput, + ListDelegationRequestsOutput, + ListEntitiesForPolicyInput, + ListEntitiesForPolicyOutput, + ListGroupPoliciesInput, + ListGroupPoliciesOutput, + ListGroupsForUserInput, + ListGroupsForUserOutput, + ListGroupsInput, + ListGroupsOutput, + ListInstanceProfileTagsInput, + ListInstanceProfileTagsOutput, + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + ListInstanceProfilesInput, + ListInstanceProfilesOutput, + ListMFADeviceTagsInput, + ListMFADeviceTagsOutput, + ListMFADevicesInput, + ListMFADevicesOutput, + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + ListOpenIDConnectProvidersInput, + ListOpenIDConnectProvidersOutput, + ListOrganizationsFeaturesInput, + ListOrganizationsFeaturesOutput, + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + ListPoliciesInput, + ListPoliciesOutput, + ListPolicyTagsInput, + ListPolicyTagsOutput, + ListPolicyVersionsInput, + ListPolicyVersionsOutput, + ListRolePoliciesInput, + ListRolePoliciesOutput, + ListRoleTagsInput, + ListRoleTagsOutput, + ListRolesInput, + ListRolesOutput, + ListSAMLProviderTagsInput, + ListSAMLProviderTagsOutput, + ListSAMLProvidersInput, + ListSAMLProvidersOutput, + ListSSHPublicKeysInput, + ListSSHPublicKeysOutput, + ListServerCertificateTagsInput, + ListServerCertificateTagsOutput, + ListServerCertificatesInput, + ListServerCertificatesOutput, + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + ListSigningCertificatesInput, + ListSigningCertificatesOutput, + ListUserPoliciesInput, + ListUserPoliciesOutput, + ListUserTagsInput, + ListUserTagsOutput, + ListUsersInput, + ListUsersOutput, + ListVirtualMFADevicesInput, + ListVirtualMFADevicesOutput, + PutAccountPropertiesInput, + PutAccountPropertiesOutput, + PutGroupPolicyInput, + PutGroupPolicyOutput, + PutRolePermissionsBoundaryInput, + PutRolePermissionsBoundaryOutput, + PutRolePolicyInput, + PutRolePolicyOutput, + PutUserPermissionsBoundaryInput, + PutUserPermissionsBoundaryOutput, + PutUserPolicyInput, + PutUserPolicyOutput, + RejectDelegationRequestInput, + RejectDelegationRequestOutput, + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + RemoveUserFromGroupInput, + RemoveUserFromGroupOutput, + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + ResyncMFADeviceInput, + ResyncMFADeviceOutput, + SendDelegationTokenInput, + SendDelegationTokenOutput, + SetDefaultPolicyVersionInput, + SetDefaultPolicyVersionOutput, + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + SimulateCustomPolicyInput, + SimulateCustomPolicyOutput, + SimulatePrincipalPolicyInput, + SimulatePrincipalPolicyOutput, + TagInstanceProfileInput, + TagInstanceProfileOutput, + TagMFADeviceInput, + TagMFADeviceOutput, + TagOpenIDConnectProviderInput, + TagOpenIDConnectProviderOutput, + TagPolicyInput, + TagPolicyOutput, + TagRoleInput, + TagRoleOutput, + TagSAMLProviderInput, + TagSAMLProviderOutput, + TagServerCertificateInput, + TagServerCertificateOutput, + TagUserInput, + TagUserOutput, + UntagInstanceProfileInput, + UntagInstanceProfileOutput, + UntagMFADeviceInput, + UntagMFADeviceOutput, + UntagOpenIDConnectProviderInput, + UntagOpenIDConnectProviderOutput, + UntagPolicyInput, + UntagPolicyOutput, + UntagRoleInput, + UntagRoleOutput, + UntagSAMLProviderInput, + UntagSAMLProviderOutput, + UntagServerCertificateInput, + UntagServerCertificateOutput, + UntagUserInput, + UntagUserOutput, + UpdateAccessKeyInput, + UpdateAccessKeyOutput, + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + UpdateAssumeRolePolicyInput, + UpdateAssumeRolePolicyOutput, + UpdateDelegationRequestInput, + UpdateDelegationRequestOutput, + UpdateGroupInput, + UpdateGroupOutput, + UpdateLoginProfileInput, + UpdateLoginProfileOutput, + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + UpdateRoleDescriptionInput, + UpdateRoleDescriptionOutput, + UpdateRoleInput, + UpdateRoleOutput, + UpdateSAMLProviderInput, + UpdateSAMLProviderOutput, + UpdateSSHPublicKeyInput, + UpdateSSHPublicKeyOutput, + UpdateServerCertificateInput, + UpdateServerCertificateOutput, + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + UpdateSigningCertificateInput, + UpdateSigningCertificateOutput, + UpdateUserInput, + UpdateUserOutput, + UploadSSHPublicKeyInput, + UploadSSHPublicKeyOutput, + UploadServerCertificateInput, + UploadServerCertificateOutput, + UploadSigningCertificateInput, + UploadSigningCertificateOutput, + ) + + +logger = logging.getLogger(__name__) + + +class IAMClient(Client[IAMConfig]): + """ + Identity and Access Management (IAM) is a web service for securely + controlling access to Amazon Web Services services. With IAM, you can + centrally manage users, security credentials such as access keys, and + permissions that control which Amazon Web Services resources users and + applications can access. For more information about IAM, see [Identity + and Access Management (IAM)](http://aws.amazon.com/iam/) and the + [Identity and Access Management User + Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/). + + **Programmatic access to IAM** + + We recommend that you use the Amazon Web Services SDKs to make + programmatic API calls to IAM. The Amazon Web Services SDKs consist of + libraries and sample code for various programming languages and + platforms (for example, Java, Ruby, .NET, iOS, and Android). The SDKs + provide a convenient way to create programmatic access to IAM and Amazon + Web Services. For example, the SDKs take care of tasks such as + cryptographically signing requests, managing errors, and retrying + requests automatically. For more information, see [Tools to build on + Amazon Web Services](http://aws.amazon.com/tools/). + + Alternatively, you can also use the IAM Query API to make direct calls + to the IAM service. For more information about calling the IAM Query + API, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *Identity and Access Management User Guide*. IAM supports GET and + POST requests for all actions. That is, the API does not require you to + use GET for some actions and POST for others. However, GET requests are + subject to the limitation size of a URL. Therefore, for operations that + require larger sizes, use a POST request. + + **Signing requests** + + Requests must be signed using an access key ID and a secret access key. + We strongly recommend that you do not use your Amazon Web Services + account access key ID and secret access key for everyday work with IAM. + You can use the access key ID and secret access key for an IAM user or + you can use the Security Token Service to generate temporary security + credentials and use those to sign requests. + + To sign requests, we recommend that you use [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + If you have an existing application that uses Signature Version 2, you + do not have to update it to use Signature Version 4. However, some + operations now require Signature Version 4. The documentation for + operations that require version 4 indicate this requirement. + + **Additional resources** + + - [Amazon Web Services security + credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). + This topic provides general information about the types of credentials + used for accessing Amazon Web Services. + + - [IAM best + practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html). + This topic presents a list of suggestions for using the IAM service to + help secure your Amazon Web Services resources. + + - [Signing Amazon Web Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html). + This set of topics walk you through the process of signing a request + using an access key ID and secret access key. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def accept_delegation_request( + self, input: AcceptDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> AcceptDelegationRequestOutput: + """ + Accepts a delegation request, granting the requested temporary access. + + Once the delegation request is accepted, it is eligible to send the + exchange token to the partner. The + [SendDelegationToken](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SendDelegationToken.html) + API has to be explicitly called to send the delegation token. + + At the time of acceptance, IAM records the details and the state of the + identity that called this API. This is the identity that gets mapped to + the delegated credential. + + An accepted request may be rejected before the exchange token is sent to + the partner. + + Args: + input: + An instance of `AcceptDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcceptDelegationRequestOutput`. + """ + return self._invoke(input, _models.ACCEPT_DELEGATION_REQUEST, [], plugins) + + def acquire_role( + self, input: AcquireRoleInput, plugins: list[Plugin] | None = None + ) -> AcquireRoleOutput: + """ + Creates an IAM role from the specified role template. The new role takes + its configuration---including its name, path, trust policy, inline and + managed policies, permissions boundary, tags, and maximum session + duration---from the role template version that you specify. For more + information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + If the template version defines parameters, use the `ReplacementValues` + parameter to supply the values that the service substitutes into the + role during creation. + + Args: + input: + An instance of `AcquireRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AcquireRoleOutput`. + """ + return self._invoke(input, _models.ACQUIRE_ROLE, [], plugins) + + def add_client_id_to_open_id_connect_provider( + self, + input: AddClientIDToOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> AddClientIDToOpenIDConnectProviderOutput: + """ + Adds a new client ID (also known as audience) to the list of client IDs + already registered for the specified IAM OpenID Connect (OIDC) provider + resource. + + This operation is idempotent; it does not fail or return an error if you + add an existing client ID to the provider. + + Args: + input: + An instance of `AddClientIDToOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddClientIDToOpenIDConnectProviderOutput`. + """ + return self._invoke( + input, _models.ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + def add_role_to_instance_profile( + self, input: AddRoleToInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> AddRoleToInstanceProfileOutput: + """ + Adds the specified IAM role to the specified instance profile. An + instance profile can contain only one role, and this quota cannot be + increased. You can remove the existing role and then add a different + role to an instance profile. You must then wait for the change to appear + across all of Amazon Web Services because of [eventual + consistency](https://en.wikipedia.org/wiki/Eventual_consistency). To + force the change, you must [disassociate the instance + profile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) + and then [associate the instance + profile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), + or you can stop your instance and then restart it. + + Note: + The caller of this operation must be granted the `PassRole` permission + on the IAM role by a permissions policy. + Warning: + When using the + [iam:AssociatedResourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#available-keys-for-iam) + condition in a policy to restrict the + [PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) + IAM action, special considerations apply if the policy is intended to + define access for the `AddRoleToInstanceProfile` action. In this case, + you cannot specify a Region or instance ID in the EC2 instance ARN. The + ARN value must be `arn:aws:ec2:*:CallerAccountId:instance/*`. Using any + other ARN value may lead to unexpected evaluation results. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For more information about instance profiles, + see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AddRoleToInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToInstanceProfileOutput`. + """ + return self._invoke(input, _models.ADD_ROLE_TO_INSTANCE_PROFILE, [], plugins) + + def add_user_to_group( + self, input: AddUserToGroupInput, plugins: list[Plugin] | None = None + ) -> AddUserToGroupOutput: + """ + Adds the specified user to the specified group. + + Args: + input: + An instance of `AddUserToGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddUserToGroupOutput`. + """ + return self._invoke(input, _models.ADD_USER_TO_GROUP, [], plugins) + + def associate_delegation_request( + self, + input: AssociateDelegationRequestInput, + plugins: list[Plugin] | None = None, + ) -> AssociateDelegationRequestOutput: + """ + Associates a delegation request with the current identity. + + If the partner that created the delegation request has specified the + owner account during creation, only an identity from that owner account + can call the `AssociateDelegationRequest` API for the specified + delegation request. Once the `AssociateDelegationRequest` API call is + successful, the ARN of the current calling identity will be stored as + the `ownerId` of the request. + + If the partner that created the delegation request has not specified the + owner account during creation, any caller from any account can call the + `AssociateDelegationRequest` API for the delegation request. Once this + API call is successful, the ARN of the current calling identity will be + stored as the `ownerId` and the Amazon Web Services account ID of the + current calling identity will be stored as the `ownerAccount` of the + request. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `AssociateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AssociateDelegationRequestOutput`. + """ + return self._invoke(input, _models.ASSOCIATE_DELEGATION_REQUEST, [], plugins) + + def attach_group_policy( + self, input: AttachGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> AttachGroupPolicyOutput: + """ + Attaches the specified managed policy to the specified IAM group. + + You use this operation to attach a managed policy to a group. To embed + an inline policy in a group, use + [`PutGroupPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html) + . + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachGroupPolicyOutput`. + """ + return self._invoke(input, _models.ATTACH_GROUP_POLICY, [], plugins) + + def attach_role_policy( + self, input: AttachRolePolicyInput, plugins: list[Plugin] | None = None + ) -> AttachRolePolicyOutput: + """ + Attaches the specified managed policy to the specified IAM role. When + you attach a managed policy to a role, the managed policy becomes part + of the role's permission (access) policy. + + Note: + You cannot use a managed policy as the role's trust policy. The role's + trust policy is created at the same time as the role, using + [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) + . You can update a role's trust policy using + [`UpdateAssumerolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html) + . + + Use this operation to attach a *managed* policy to a role. To embed an + inline policy in a role, use + [`PutRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html) + . For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachRolePolicyOutput`. + """ + return self._invoke(input, _models.ATTACH_ROLE_POLICY, [], plugins) + + def attach_user_policy( + self, input: AttachUserPolicyInput, plugins: list[Plugin] | None = None + ) -> AttachUserPolicyOutput: + """ + Attaches the specified managed policy to the specified user. + + You use this operation to attach a *managed* policy to a user. To embed + an inline policy in a user, use + [`PutUserPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html) + . + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `AttachUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AttachUserPolicyOutput`. + """ + return self._invoke(input, _models.ATTACH_USER_POLICY, [], plugins) + + def change_password( + self, input: ChangePasswordInput, plugins: list[Plugin] | None = None + ) -> ChangePasswordOutput: + """ + Changes the password of the IAM user who is calling this operation. This + operation can be performed using the CLI, the Amazon Web Services API, + or the **My Security Credentials** page in the Amazon Web Services + Management Console. The Amazon Web Services account root user password + is not affected by this operation. + + Use + [UpdateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html) + to use the CLI, the Amazon Web Services API, or the **Users** page in + the IAM console to change the password for any IAM user. For more + information about modifying passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ChangePasswordInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ChangePasswordOutput`. + """ + return self._invoke(input, _models.CHANGE_PASSWORD, [], plugins) + + def create_access_key( + self, + input: CreateAccessKeyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateAccessKeyOutput: + """ + Creates a new Amazon Web Services secret access key and corresponding + Amazon Web Services access key ID for the specified user. The default + status for new keys is `Active`. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials. This is true even if + the Amazon Web Services account has no associated users. + + For information about quotas on the number of keys you can create, see + [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Warning: + To ensure the security of your Amazon Web Services account, the secret + access key is accessible only during key and user creation. You must + save the key (for example, in a text file) if you want to be able to + access it again. If a secret key is lost, you can delete the access keys + for the associated user and then create new keys. + + Args: + input: + An instance of `CreateAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAccessKeyOutput`. + """ + return self._invoke(input, _models.CREATE_ACCESS_KEY, [], plugins) + + def create_account_alias( + self, input: CreateAccountAliasInput, plugins: list[Plugin] | None = None + ) -> CreateAccountAliasOutput: + """ + Creates an alias for your Amazon Web Services account. For information + about using an Amazon Web Services account alias, see [Creating, + deleting, and listing an Amazon Web Services account + alias](https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html) + in the *Amazon Web Services Sign-In User Guide*. + + Args: + input: + An instance of `CreateAccountAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAccountAliasOutput`. + """ + return self._invoke(input, _models.CREATE_ACCOUNT_ALIAS, [], plugins) + + def create_delegation_request( + self, input: CreateDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> CreateDelegationRequestOutput: + """ + Creates an IAM delegation request for temporary access delegation. + + This API is not available for general use. In order to use this API, a + caller first need to go through an onboarding process described in the + [partner onboarding + documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation-partner-guide.html). + + Args: + input: + An instance of `CreateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDelegationRequestOutput`. + """ + return self._invoke(input, _models.CREATE_DELEGATION_REQUEST, [], plugins) + + def create_group( + self, input: CreateGroupInput, plugins: list[Plugin] | None = None + ) -> CreateGroupOutput: + """ + Creates a new group. + + For information about the number of groups you can create, see [IAM and + STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGroupOutput`. + """ + return self._invoke(input, _models.CREATE_GROUP, [], plugins) + + def create_instance_profile( + self, input: CreateInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> CreateInstanceProfileOutput: + """ + Creates a new instance profile. For information about instance profiles, + see [Using roles for applications on Amazon + EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) + in the *IAM User Guide*, and [Instance + profiles](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile) + in the *Amazon EC2 User Guide*. + + For information about the number of instance profiles you can create, + see [IAM object + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateInstanceProfileOutput`. + """ + return self._invoke(input, _models.CREATE_INSTANCE_PROFILE, [], plugins) + + def create_login_profile( + self, + input: CreateLoginProfileInput | None = None, + plugins: list[Plugin] | None = None, + ) -> CreateLoginProfileOutput: + """ + Creates a password for the specified IAM user. A password allows an IAM + user to access Amazon Web Services services through the Amazon Web + Services Management Console. + + You can use the CLI, the Amazon Web Services API, or the **Users** page + in the IAM console to create a password for any IAM user. Use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to update your own existing password in the **My Security Credentials** + page in the Amazon Web Services Management Console. + + For more information about managing passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateLoginProfileOutput`. + """ + return self._invoke(input, _models.CREATE_LOGIN_PROFILE, [], plugins) + + def create_open_id_connect_provider( + self, + input: CreateOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> CreateOpenIDConnectProviderOutput: + """ + Creates an IAM entity to describe an identity provider (IdP) that + supports [OpenID Connect (OIDC)](http://openid.net/connect/). + + The OIDC provider that you create with this operation can be used as a + principal in a role's trust policy. Such a policy establishes a trust + relationship between Amazon Web Services and the OIDC provider. + + If you are using an OIDC identity provider from Google, Facebook, or + Amazon Cognito, you don't need to create a separate IAM identity + provider. These OIDC identity providers are already built-in to Amazon + Web Services and are available for your use. Instead, you can move + directly to creating new roles using your identity provider. To learn + more, see [Creating a role for web identity or OpenID connect + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html) + in the *IAM User Guide*. + + When you create the IAM OIDC provider, you specify the following: + + - The URL of the OIDC identity provider (IdP) to trust + + - A list of client IDs (also known as audiences) that identify the + application or applications allowed to authenticate using the OIDC + provider + + - A list of tags that are attached to the specified IAM OIDC provider + + - A list of thumbprints of one or more server certificates that the IdP + uses + + You get all of this information from the OIDC IdP you want to use to + access Amazon Web Services. + + Note: + Amazon Web Services secures communication with OIDC identity providers + (IdPs) using our library of trusted root certificate authorities (CAs) + to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If + your OIDC IdP relies on a certificate that is not signed by one of these + trusted CAs, only then we secure communication using the thumbprints set + in the IdP's configuration. + Note: + The trust for the OIDC provider is derived from the IAM provider that + this operation creates. Therefore, it is best to limit access to the + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) + operation to highly privileged users. + + Args: + input: + An instance of `CreateOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOpenIDConnectProviderOutput`. + """ + return self._invoke(input, _models.CREATE_OPEN_ID_CONNECT_PROVIDER, [], plugins) + + def create_policy( + self, input: CreatePolicyInput, plugins: list[Plugin] | None = None + ) -> CreatePolicyOutput: + """ + Creates a new managed policy for your Amazon Web Services account. + + This operation creates a policy version with a version identifier of + `v1` and sets v1 as the policy's default version. For more information + about policy versions, see [Versioning for managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + As a best practice, you can validate your IAM policies. To learn more, + see [Validating IAM + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) + in the *IAM User Guide*. + + For more information about managed policies in general, see [Managed + policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreatePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePolicyOutput`. + """ + return self._invoke(input, _models.CREATE_POLICY, [], plugins) + + def create_policy_version( + self, input: CreatePolicyVersionInput, plugins: list[Plugin] | None = None + ) -> CreatePolicyVersionOutput: + """ + Creates a new version of the specified managed policy. To update a + managed policy, you create a new policy version. A managed policy can + have up to five versions. If the policy has five versions, you must + delete an existing version using + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html) + before you create a new version. + + Optionally, you can set the new version as the policy's default + version. The default version is the version that is in effect for the + IAM users, groups, and roles to which the policy is attached. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreatePolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreatePolicyVersionOutput`. + """ + return self._invoke(input, _models.CREATE_POLICY_VERSION, [], plugins) + + def create_role( + self, input: CreateRoleInput, plugins: list[Plugin] | None = None + ) -> CreateRoleOutput: + """ + Creates a new role for your Amazon Web Services account. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For information about quotas for role names and + the number of roles you can create, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateRoleOutput`. + """ + return self._invoke(input, _models.CREATE_ROLE, [], plugins) + + def create_saml_provider( + self, input: CreateSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> CreateSAMLProviderOutput: + """ + Creates an IAM resource that describes an identity provider (IdP) that + supports SAML 2.0. + + The SAML provider resource that you create with this operation can be + used as a principal in an IAM role's trust policy. Such a policy can + enable federated users who sign in using the SAML IdP to assume the + role. You can create an IAM role that supports Web-based single sign-on + (SSO) to the Amazon Web Services Management Console or one that supports + API access to Amazon Web Services. + + When you create the SAML provider resource, you upload a SAML metadata + document that you get from your IdP. That document includes the + issuer's name, expiration information, and keys that can be used to + validate the SAML authentication response (assertions) that the IdP + sends. You must generate the metadata document using the identity + management software that is used as your organization's IdP. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + For more information, see [Enabling SAML 2.0 federated users to access + the Amazon Web Services Management + Console](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html) + and [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSAMLProviderOutput`. + """ + return self._invoke(input, _models.CREATE_SAML_PROVIDER, [], plugins) + + def create_service_linked_role( + self, input: CreateServiceLinkedRoleInput, plugins: list[Plugin] | None = None + ) -> CreateServiceLinkedRoleOutput: + """ + Creates an IAM role that is linked to a specific Amazon Web Services + service. The service controls the attached policies and when the role + can be deleted. This helps ensure that the service is not broken by an + unexpectedly changed or deleted role, which could put your Amazon Web + Services resources into an unknown state. Allowing the service to + control the role helps improve service stability and proper cleanup when + a service and its role are no longer needed. For more information, see + [Using service-linked + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) + in the *IAM User Guide*. + + To attach a policy to this service-linked role, you must make the + request using the Amazon Web Services service that depends on this role. + + Args: + input: + An instance of `CreateServiceLinkedRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceLinkedRoleOutput`. + """ + return self._invoke(input, _models.CREATE_SERVICE_LINKED_ROLE, [], plugins) + + def create_service_specific_credential( + self, + input: CreateServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> CreateServiceSpecificCredentialOutput: + """ + Generates a set of credentials consisting of a user name and password + that can be used to access the service specified in the request. These + credentials are generated by IAM, and can be used only for the specified + service. + + You can have a maximum of two sets of service-specific credentials for + each supported service per user. + + You can reset the password to a new service-generated value by calling + [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html). + + For more information about using service-specific credentials to + authenticate to an Amazon Web Services service, refer to the following + docs: + + - For service-specific credentials with CodeCommit, refer to [IAM + credentials for CodeCommit: Git credentials, SSH keys, and Amazon Web + Services access + keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html) + in the *IAM User Guide*. + + - For service-specific credentials with Amazon Keyspaces (for Apache + Cassandra), refer to [Use IAM with Amazon Keyspaces (for Apache + Cassandra)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_keyspaces.html) + in the *IAM User Guide*. + + - For services that support long-term API keys, refer to [API keys for + Amazon Web Services + services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_api_keys_for_aws_services.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateServiceSpecificCredentialOutput`. + """ + return self._invoke( + input, _models.CREATE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + def create_user( + self, input: CreateUserInput, plugins: list[Plugin] | None = None + ) -> CreateUserOutput: + """ + Creates a new IAM user for your Amazon Web Services account. + + For information about quotas for the number of IAM users you can create, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `CreateUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateUserOutput`. + """ + return self._invoke(input, _models.CREATE_USER, [], plugins) + + def create_virtual_mfa_device( + self, input: CreateVirtualMFADeviceInput, plugins: list[Plugin] | None = None + ) -> CreateVirtualMFADeviceOutput: + """ + Creates a new virtual MFA device for the Amazon Web Services account. + After creating the virtual MFA, use + [EnableMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) + to attach the MFA device to an IAM user. For more information about + creating and working with virtual MFA devices, see [Using a virtual MFA + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + For information about the maximum number of MFA devices you can create, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Warning: + The seed information contained in the QR code and the Base32 string + should be treated like any other secret access information. In other + words, protect the seed information as you would your Amazon Web + Services access keys or your passwords. After you provision your virtual + device, you should ensure that the information is destroyed following + secure procedures. + + Args: + input: + An instance of `CreateVirtualMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateVirtualMFADeviceOutput`. + """ + return self._invoke(input, _models.CREATE_VIRTUAL_MFA_DEVICE, [], plugins) + + def deactivate_mfa_device( + self, input: DeactivateMFADeviceInput, plugins: list[Plugin] | None = None + ) -> DeactivateMFADeviceOutput: + """ + Deactivates the specified MFA device and removes it from association + with the user name for which it was originally enabled. + + For more information about creating and working with virtual MFA + devices, see [Enabling a virtual multi-factor authentication (MFA) + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeactivateMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeactivateMFADeviceOutput`. + """ + return self._invoke(input, _models.DEACTIVATE_MFA_DEVICE, [], plugins) + + def delete_access_key( + self, input: DeleteAccessKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteAccessKeyOutput: + """ + Deletes the access key pair associated with the specified IAM user. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Args: + input: + An instance of `DeleteAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccessKeyOutput`. + """ + return self._invoke(input, _models.DELETE_ACCESS_KEY, [], plugins) + + def delete_account_alias( + self, input: DeleteAccountAliasInput, plugins: list[Plugin] | None = None + ) -> DeleteAccountAliasOutput: + """ + Deletes the specified Amazon Web Services account alias. For information + about using an Amazon Web Services account alias, see [Creating, + deleting, and listing an Amazon Web Services account + alias](https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html) + in the *Amazon Web Services Sign-In User Guide*. + + Args: + input: + An instance of `DeleteAccountAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountAliasOutput`. + """ + return self._invoke(input, _models.DELETE_ACCOUNT_ALIAS, [], plugins) + + def delete_account_password_policy( + self, + input: DeleteAccountPasswordPolicyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteAccountPasswordPolicyOutput: + """ + Deletes the password policy for the Amazon Web Services account. There + are no parameters. + + Args: + input: + An instance of `DeleteAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAccountPasswordPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_ACCOUNT_PASSWORD_POLICY, [], plugins) + + def delete_group( + self, input: DeleteGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteGroupOutput: + """ + Deletes the specified IAM group. The group must not contain any users or + have any attached policies. + + Args: + input: + An instance of `DeleteGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGroupOutput`. + """ + return self._invoke(input, _models.DELETE_GROUP, [], plugins) + + def delete_group_policy( + self, input: DeleteGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteGroupPolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM group. + + A group can also have managed policies attached to it. To detach a + managed policy from a group, use + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGroupPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_GROUP_POLICY, [], plugins) + + def delete_instance_profile( + self, input: DeleteInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> DeleteInstanceProfileOutput: + """ + Deletes the specified instance profile. The instance profile must not + have an associated role. + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + instance profile you are about to delete. Deleting a role or instance + profile that is associated with a running instance will break any + applications running on the instance. + + For more information about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteInstanceProfileOutput`. + """ + return self._invoke(input, _models.DELETE_INSTANCE_PROFILE, [], plugins) + + def delete_login_profile( + self, + input: DeleteLoginProfileInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteLoginProfileOutput: + """ + Deletes the password for the specified IAM user or root user, For more + information, see [Managing passwords for IAM + users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html). + + You can use the CLI, the Amazon Web Services API, or the **Users** page + in the IAM console to delete a password for any IAM user. You can use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to update, but not delete, your own password in the **My Security + Credentials** page in the Amazon Web Services Management Console. + + Warning: + Deleting a user's password does not prevent a user from accessing + Amazon Web Services through the command line interface or the API. To + prevent all user access, you must also either make any access keys + inactive or delete them. For more information about making keys inactive + or deleting them, see + [UpdateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) + and + [DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html). + + Args: + input: + An instance of `DeleteLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteLoginProfileOutput`. + """ + return self._invoke(input, _models.DELETE_LOGIN_PROFILE, [], plugins) + + def delete_open_id_connect_provider( + self, + input: DeleteOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> DeleteOpenIDConnectProviderOutput: + """ + Deletes an OpenID Connect identity provider (IdP) resource object in + IAM. + + Deleting an IAM OIDC provider resource does not update any roles that + reference the provider as a principal in their trust policies. Any + attempt to assume a role that references a deleted provider fails. + + This operation is idempotent; it does not fail or return an error if you + call the operation for a provider that does not exist. + + Args: + input: + An instance of `DeleteOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOpenIDConnectProviderOutput`. + """ + return self._invoke(input, _models.DELETE_OPEN_ID_CONNECT_PROVIDER, [], plugins) + + def delete_policy( + self, input: DeletePolicyInput, plugins: list[Plugin] | None = None + ) -> DeletePolicyOutput: + """ + Deletes the specified managed policy. + + Before you can delete a managed policy, you must first detach the policy + from all users, groups, and roles that it is attached to. In addition, + you must delete all the policy's versions. The following steps describe + the process for deleting a managed policy: + + - Detach the policy from all users, groups, and roles that the policy is + attached to, using + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html), + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html), + or + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html). + To list all the users, groups, and roles that a policy is attached to, + use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + + - Delete all versions of the policy using + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html). + To list the policy's versions, use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + You cannot use + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html) + to delete the version that is marked as the default version. You + delete the policy's default version in the next step of the process. + + - Delete the policy (this automatically deletes the policy's default + version) using this operation. + + For information about managed policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeletePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePolicyOutput`. + """ + return self._invoke(input, _models.DELETE_POLICY, [], plugins) + + def delete_policy_version( + self, input: DeletePolicyVersionInput, plugins: list[Plugin] | None = None + ) -> DeletePolicyVersionOutput: + """ + Deletes the specified version from the specified managed policy. + + You cannot delete the default version from a policy using this + operation. To delete the default version from a policy, use + [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html). + To find out which version of a policy is marked as the default version, + use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + + For information about versions for managed policies, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeletePolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePolicyVersionOutput`. + """ + return self._invoke(input, _models.DELETE_POLICY_VERSION, [], plugins) + + def delete_role( + self, input: DeleteRoleInput, plugins: list[Plugin] | None = None + ) -> DeleteRoleOutput: + """ + Deletes the specified role. Unlike the Amazon Web Services Management + Console, when you delete a role programmatically, you must delete the + items attached to the role manually, or the deletion fails. For more + information, see [Deleting an IAM + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#roles-managingrole-deleting-cli). + Before attempting to delete a role, remove the following attached items: + + - Inline policies + ([DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)) + + - Attached managed policies + ([DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)) + + - Instance profile + ([RemoveRoleFromInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html)) + + - Optional -- Delete instance profile after detaching from role for + resource clean up + ([DeleteInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html)) + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + role you are about to delete. Deleting a role or instance profile that + is associated with a running instance will break any applications + running on the instance. + + Args: + input: + An instance of `DeleteRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRoleOutput`. + """ + return self._invoke(input, _models.DELETE_ROLE, [], plugins) + + def delete_role_permissions_boundary( + self, + input: DeleteRolePermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteRolePermissionsBoundaryOutput: + """ + Deletes the permissions boundary for the specified IAM role. + + You cannot set the boundary for a service-linked role. + + Warning: + Deleting the permissions boundary for a role might increase its + permissions. For example, it might allow anyone who assumes the role to + perform all the actions granted in its permissions policies. + + Args: + input: + An instance of `DeleteRolePermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRolePermissionsBoundaryOutput`. + """ + return self._invoke( + input, _models.DELETE_ROLE_PERMISSIONS_BOUNDARY, [], plugins + ) + + def delete_role_policy( + self, input: DeleteRolePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteRolePolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM role. + + A role can also have managed policies attached to it. To detach a + managed policy from a role, use + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteRolePolicyOutput`. + """ + return self._invoke(input, _models.DELETE_ROLE_POLICY, [], plugins) + + def delete_saml_provider( + self, input: DeleteSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> DeleteSAMLProviderOutput: + """ + Deletes a SAML provider resource in IAM. + + Deleting the provider resource from IAM does not update any roles that + reference the SAML provider resource's ARN as a principal in their + trust policies. Any attempt to assume a role that references a + non-existent provider resource ARN fails. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `DeleteSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSAMLProviderOutput`. + """ + return self._invoke(input, _models.DELETE_SAML_PROVIDER, [], plugins) + + def delete_server_certificate( + self, input: DeleteServerCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteServerCertificateOutput: + """ + Deletes the specified server certificate. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Warning: + If you are using a server certificate with Elastic Load Balancing, + deleting the certificate could have implications for your application. + If Elastic Load Balancing doesn't detect the deletion of bound + certificates, it may continue to use the certificates. This could cause + Elastic Load Balancing to stop accepting traffic. We recommend that you + remove the reference to the certificate from Elastic Load Balancing + before using this command to delete the certificate. For more + information, see + [DeleteLoadBalancerListeners](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html) + in the *Elastic Load Balancing API Reference*. + + Args: + input: + An instance of `DeleteServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServerCertificateOutput`. + """ + return self._invoke(input, _models.DELETE_SERVER_CERTIFICATE, [], plugins) + + def delete_service_linked_role( + self, input: DeleteServiceLinkedRoleInput, plugins: list[Plugin] | None = None + ) -> DeleteServiceLinkedRoleOutput: + """ + Submits a service-linked role deletion request and returns a + `DeletionTaskId`, which you can use to check the status of the deletion. + Before you call this operation, confirm that the role has no active + sessions and that any resources used by the role in the linked service + are deleted. If you call this operation more than once for the same + service-linked role and an earlier deletion task is not complete, then + the `DeletionTaskId` of the earlier request is returned. + + If you submit a deletion request for a service-linked role whose linked + service is still accessing a resource, then the deletion task fails. If + it fails, the + [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) + operation returns the reason for the failure, usually including the + resources that must be deleted. To delete the service-linked role, you + must first remove those resources from the linked service and then + submit the deletion request again. Resources are specific to the service + that is linked to the role. For more information about removing + resources from a service, see the [Amazon Web Services + documentation](http://docs.aws.amazon.com/) for your service. + + For more information about service-linked roles, see [Roles terms and + concepts: Amazon Web Services service-linked + role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteServiceLinkedRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceLinkedRoleOutput`. + """ + return self._invoke(input, _models.DELETE_SERVICE_LINKED_ROLE, [], plugins) + + def delete_service_specific_credential( + self, + input: DeleteServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> DeleteServiceSpecificCredentialOutput: + """ + Deletes the specified service-specific credential. + + Args: + input: + An instance of `DeleteServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteServiceSpecificCredentialOutput`. + """ + return self._invoke( + input, _models.DELETE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + def delete_signing_certificate( + self, input: DeleteSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> DeleteSigningCertificateOutput: + """ + Deletes a signing certificate associated with the specified IAM user. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID signing the + request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated IAM users. + + Args: + input: + An instance of `DeleteSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSigningCertificateOutput`. + """ + return self._invoke(input, _models.DELETE_SIGNING_CERTIFICATE, [], plugins) + + def delete_ssh_public_key( + self, input: DeleteSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> DeleteSSHPublicKeyOutput: + """ + Deletes the specified SSH public key. + + The SSH public key deleted by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `DeleteSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteSSHPublicKeyOutput`. + """ + return self._invoke(input, _models.DELETE_SSH_PUBLIC_KEY, [], plugins) + + def delete_user( + self, input: DeleteUserInput, plugins: list[Plugin] | None = None + ) -> DeleteUserOutput: + """ + Deletes the specified IAM user. Unlike the Amazon Web Services + Management Console, when you delete a user programmatically, you must + delete the items attached to the user manually, or the deletion fails. + For more information, see [Deleting an IAM + user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli). + Before attempting to delete a user, remove the following items: + + - Password + ([DeleteLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html)) + + - Access keys + ([DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)) + + - Signing certificate + ([DeleteSigningCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html)) + + - SSH public key + ([DeleteSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSSHPublicKey.html)) + + - Git credentials + ([DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)) + + - Multi-factor authentication (MFA) device + ([DeactivateMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html), + [DeleteVirtualMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html)) + + - Inline policies + ([DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)) + + - Attached managed policies + ([DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)) + + - Group memberships + ([RemoveUserFromGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html)) + + Args: + input: + An instance of `DeleteUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserOutput`. + """ + return self._invoke(input, _models.DELETE_USER, [], plugins) + + def delete_user_permissions_boundary( + self, + input: DeleteUserPermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> DeleteUserPermissionsBoundaryOutput: + """ + Deletes the permissions boundary for the specified IAM user. + + Warning: + Deleting the permissions boundary for a user might increase its + permissions by allowing the user to perform all the actions granted in + its permissions policies. + + Args: + input: + An instance of `DeleteUserPermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserPermissionsBoundaryOutput`. + """ + return self._invoke( + input, _models.DELETE_USER_PERMISSIONS_BOUNDARY, [], plugins + ) + + def delete_user_policy( + self, input: DeleteUserPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteUserPolicyOutput: + """ + Deletes the specified inline policy that is embedded in the specified + IAM user. + + A user can also have managed policies attached to it. To detach a + managed policy from a user, use + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html). + For more information about policies, refer to [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DeleteUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteUserPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_USER_POLICY, [], plugins) + + def delete_virtual_mfa_device( + self, input: DeleteVirtualMFADeviceInput, plugins: list[Plugin] | None = None + ) -> DeleteVirtualMFADeviceOutput: + """ + Deletes a virtual MFA device. + + Note: + You must deactivate a user's virtual MFA device before you can delete + it. For information about deactivating MFA devices, see + [DeactivateMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html). + + Args: + input: + An instance of `DeleteVirtualMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteVirtualMFADeviceOutput`. + """ + return self._invoke(input, _models.DELETE_VIRTUAL_MFA_DEVICE, [], plugins) + + def detach_group_policy( + self, input: DetachGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> DetachGroupPolicyOutput: + """ + Removes the specified managed policy from the specified IAM group. + + A group can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachGroupPolicyOutput`. + """ + return self._invoke(input, _models.DETACH_GROUP_POLICY, [], plugins) + + def detach_role_policy( + self, input: DetachRolePolicyInput, plugins: list[Plugin] | None = None + ) -> DetachRolePolicyOutput: + """ + Removes the specified managed policy from the specified role. + + A role can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachRolePolicyOutput`. + """ + return self._invoke(input, _models.DETACH_ROLE_POLICY, [], plugins) + + def detach_user_policy( + self, input: DetachUserPolicyInput, plugins: list[Plugin] | None = None + ) -> DetachUserPolicyOutput: + """ + Removes the specified managed policy from the specified user. + + A user can also have inline policies embedded with it. To delete an + inline policy, use + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `DetachUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DetachUserPolicyOutput`. + """ + return self._invoke(input, _models.DETACH_USER_POLICY, [], plugins) + + def disable_organizations_root_credentials_management( + self, + input: DisableOrganizationsRootCredentialsManagementInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableOrganizationsRootCredentialsManagementOutput: + """ + Disables the management of privileged root user credentials across + member accounts in your organization. When you disable this feature, the + management account and the delegated administrator for IAM can no longer + manage root user credentials for member accounts in your organization. + + Args: + input: + An instance of `DisableOrganizationsRootCredentialsManagementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOrganizationsRootCredentialsManagementOutput`. + """ + return self._invoke( + input, + _models.DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT, + [], + plugins, + ) + + def disable_organizations_root_sessions( + self, + input: DisableOrganizationsRootSessionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableOrganizationsRootSessionsOutput: + """ + Disables root user sessions for privileged tasks across member accounts + in your organization. When you disable this feature, the management + account and the delegated administrator for IAM can no longer perform + privileged tasks on member accounts in your organization. + + Args: + input: + An instance of `DisableOrganizationsRootSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOrganizationsRootSessionsOutput`. + """ + return self._invoke( + input, _models.DISABLE_ORGANIZATIONS_ROOT_SESSIONS, [], plugins + ) + + def disable_outbound_web_identity_federation( + self, + input: DisableOutboundWebIdentityFederationInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DisableOutboundWebIdentityFederationOutput: + """ + Disables the outbound identity federation feature for your Amazon Web + Services account. When disabled, IAM principals in the account cannot + use the `GetWebIdentityToken` API to obtain JSON Web Tokens (JWTs) for + authentication with external services. This operation does not affect + tokens that were issued before the feature was disabled. + + Args: + input: + An instance of `DisableOutboundWebIdentityFederationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableOutboundWebIdentityFederationOutput`. + """ + return self._invoke( + input, _models.DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION, [], plugins + ) + + def enable_mfa_device( + self, input: EnableMFADeviceInput, plugins: list[Plugin] | None = None + ) -> EnableMFADeviceOutput: + """ + Enables the specified MFA device and associates it with the specified + IAM user. When enabled, the MFA device is required for every subsequent + login by the IAM user associated with the device. + + Args: + input: + An instance of `EnableMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableMFADeviceOutput`. + """ + return self._invoke(input, _models.ENABLE_MFA_DEVICE, [], plugins) + + def enable_organizations_root_credentials_management( + self, + input: EnableOrganizationsRootCredentialsManagementInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableOrganizationsRootCredentialsManagementOutput: + """ + Enables the management of privileged root user credentials across member + accounts in your organization. When you enable root credentials + management for [centralized root + access](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management), + the management account and the delegated administrator for IAM can + manage root user credentials for member accounts in your organization. + + Before you enable centralized root access, you must have an account + configured with the following settings: + + - You must manage your Amazon Web Services accounts in + [Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html). + + - Enable trusted access for Identity and Access Management in + Organizations. For details, see [IAM and + Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-iam.html) + in the *Organizations User Guide*. + + Args: + input: + An instance of `EnableOrganizationsRootCredentialsManagementInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOrganizationsRootCredentialsManagementOutput`. + """ + return self._invoke( + input, _models.ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT, [], plugins + ) + + def enable_organizations_root_sessions( + self, + input: EnableOrganizationsRootSessionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableOrganizationsRootSessionsOutput: + """ + Allows the management account or delegated administrator to perform + privileged tasks on member accounts in your organization. For more + information, see [Centrally manage root access for member + accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management) + in the *Identity and Access Management User Guide*. + + Before you enable this feature, you must have an account configured with + the following settings: + + - You must manage your Amazon Web Services accounts in + [Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html). + + - Enable trusted access for Identity and Access Management in + Organizations. For details, see [IAM and + Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html) + in the *Organizations User Guide*. + + Args: + input: + An instance of `EnableOrganizationsRootSessionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOrganizationsRootSessionsOutput`. + """ + return self._invoke( + input, _models.ENABLE_ORGANIZATIONS_ROOT_SESSIONS, [], plugins + ) + + def enable_outbound_web_identity_federation( + self, + input: EnableOutboundWebIdentityFederationInput | None = None, + plugins: list[Plugin] | None = None, + ) -> EnableOutboundWebIdentityFederationOutput: + """ + Enables the outbound identity federation feature for your Amazon Web + Services account. When enabled, IAM principals in your account can use + the `GetWebIdentityToken` API to obtain JSON Web Tokens (JWTs) for + secure authentication with external services. This operation also + generates a unique issuer URL for your Amazon Web Services account. + + Args: + input: + An instance of `EnableOutboundWebIdentityFederationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableOutboundWebIdentityFederationOutput`. + """ + return self._invoke( + input, _models.ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION, [], plugins + ) + + def generate_credential_report( + self, + input: GenerateCredentialReportInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GenerateCredentialReportOutput: + """ + Generates a credential report for the Amazon Web Services account. For + more information about the credential report, see [Getting credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateCredentialReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateCredentialReportOutput`. + """ + return self._invoke(input, _models.GENERATE_CREDENTIAL_REPORT, [], plugins) + + def generate_organizations_access_report( + self, + input: GenerateOrganizationsAccessReportInput, + plugins: list[Plugin] | None = None, + ) -> GenerateOrganizationsAccessReportOutput: + """ + Generates a report for service last accessed data for Organizations. You + can generate a report for any entities (organization root, + organizational unit, or account) or policies in your organization. + + To call this operation, you must be signed in using your Organizations + management account credentials. You can use your long-term IAM user or + root user credentials, or temporary credentials from assuming an IAM + role. SCPs must be enabled for your organization root. You must have the + required IAM and Organizations permissions. For more information, see + [Refining permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + You can generate a service last accessed data report for entities by + specifying only the entity's path. This data includes a list of + services that are allowed by any service control policies (SCPs) that + apply to the entity. + + You can generate a service last accessed data report for a policy by + specifying an entity's path and an optional Organizations policy ID. + This data includes a list of services that are allowed by the specified + SCP. + + For each service in both report types, the data includes the most recent + account activity that the policy allows to account principals in the + entity or the entity's children. For important information about the + data, reporting period, permissions required, troubleshooting, and + supported Regions see [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Warning: + The data includes all attempts to access Amazon Web Services, not just + the successful ones. This includes all attempts that were made using the + Amazon Web Services Management Console, the Amazon Web Services API + through any of the SDKs, or any of the command line tools. An unexpected + entry in the service last accessed data does not mean that an account + has been compromised, because the request might have been denied. Refer + to your CloudTrail logs as the authoritative source for information + about all API calls and whether they were successful or denied access. + For more information, see [Logging IAM events with + CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) + in the *IAM User Guide*. + + This operation returns a `JobId`. Use this parameter in the + ` `[`GetOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)` ` + operation to check the status of the report generation. To check the + status of this request, use the `JobId` parameter in the + ` `[`GetOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)` ` + operation and test the `JobStatus` response parameter. When the job is + complete, you can retrieve the report. + + To generate a service last accessed data report for entities, specify an + entity path without specifying the optional Organizations policy ID. The + type of entity that you specify determines the data returned in the + report. + + - **Root** -- When you specify the organizations root as the entity, the + resulting report lists all of the services allowed by SCPs that are + attached to your root. For each service, the report includes data for + all accounts in your organization except the management account, + because the management account is not limited by SCPs. + + - **OU** -- When you specify an organizational unit (OU) as the entity, + the resulting report lists all of the services allowed by SCPs that + are attached to the OU and its parents. For each service, the report + includes data for all accounts in the OU or its children. This data + excludes the management account, because the management account is not + limited by SCPs. + + - **management account** -- When you specify the management account, the + resulting report lists all Amazon Web Services services, because the + management account is not limited by SCPs. For each service, the + report includes data for only the management account. + + - **Account** -- When you specify another account as the entity, the + resulting report lists all of the services allowed by SCPs that are + attached to the account and its parents. For each service, the report + includes data for only the specified account. + + To generate a service last accessed data report for policies, specify an + entity path and the optional Organizations policy ID. The type of entity + that you specify determines the data returned for each service. + + - **Root** -- When you specify the root entity and a policy ID, the + resulting report lists all of the services that are allowed by the + specified SCP. For each service, the report includes data for all + accounts in your organization to which the SCP applies. This data + excludes the management account, because the management account is not + limited by SCPs. If the SCP is not attached to any entities in the + organization, then the report will return a list of services with no + data. + + - **OU** -- When you specify an OU entity and a policy ID, the resulting + report lists all of the services that are allowed by the specified + SCP. For each service, the report includes data for all accounts in + the OU or its children to which the SCP applies. This means that other + accounts outside the OU that are affected by the SCP might not be + included in the data. This data excludes the management account, + because the management account is not limited by SCPs. If the SCP is + not attached to the OU or one of its children, the report will return + a list of services with no data. + + - **management account** -- When you specify the management account, the + resulting report lists all Amazon Web Services services, because the + management account is not limited by SCPs. If you specify a policy ID + in the CLI or API, the policy is ignored. For each service, the report + includes data for only the management account. + + - **Account** -- When you specify another account entity and a policy + ID, the resulting report lists all of the services that are allowed by + the specified SCP. For each service, the report includes data for only + the specified account. This means that other accounts in the + organization that are affected by the SCP might not be included in the + data. If the SCP is not attached to the account, the report will + return a list of services with no data. + + Note: + Service last accessed data does not use other policy types when + determining whether a principal could access a service. These other + policy types include identity-based policies, resource-based policies, + access control lists, IAM permissions boundaries, and STS assume role + policies. It only applies SCP logic. For more about the evaluation of + policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For more information about service last accessed data, see [Reducing + policy scope by viewing user + activity](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateOrganizationsAccessReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateOrganizationsAccessReportOutput`. + """ + return self._invoke( + input, _models.GENERATE_ORGANIZATIONS_ACCESS_REPORT, [], plugins + ) + + def generate_service_last_accessed_details( + self, + input: GenerateServiceLastAccessedDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GenerateServiceLastAccessedDetailsOutput: + """ + Generates a report that includes details about when an IAM resource + (user, group, role, or policy) was last used in an attempt to access + Amazon Web Services services. Recent activity usually appears within + four hours. IAM reports activity for at least the last 400 days, or less + if your Region began supporting this feature within the last year. For + more information, see [Regions where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period). + For more information about services and actions for which action last + accessed information is displayed, see [IAM action last accessed + information services and + actions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-action-last-accessed.html). + + Warning: + The service last accessed data includes all attempts to access an Amazon + Web Services API, not just the successful ones. This includes all + attempts that were made using the Amazon Web Services Management + Console, the Amazon Web Services API through any of the SDKs, or any of + the command line tools. An unexpected entry in the service last accessed + data does not mean that your account has been compromised, because the + request might have been denied. Refer to your CloudTrail logs as the + authoritative source for information about all API calls and whether + they were successful or denied access. For more information, see + [Logging IAM events with + CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) + in the *IAM User Guide*. + + The `GenerateServiceLastAccessedDetails` operation returns a `JobId`. + Use this parameter in the following operations to retrieve the following + details from your report: + + - [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html) + -- Use this operation for users, groups, roles, or policies to list + every Amazon Web Services service that the resource could access using + permissions policies. For each service, the response includes + information about the most recent access attempt. + + The `JobId` returned by `GenerateServiceLastAccessedDetail` must be + used by the same role within a session, or by the same user when used + to call `GetServiceLastAccessedDetail`. + + - [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + -- Use this operation for groups and policies to list information + about the associated entities (users or roles) that attempted to + access a specific Amazon Web Services service. + + To check the status of the `GenerateServiceLastAccessedDetails` request, + use the `JobId` parameter in the same operations and test the + `JobStatus` response parameter. + + For additional information about the permissions policies that allow an + identity (user, group, or role) to access specific services, use the + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html) + operation. + + Note: + Service last accessed data does not use other policy types when + determining whether a resource could access a service. These other + policy types include resource-based policies, access control lists, + Organizations policies, IAM permissions boundaries, and STS assume role + policies. It only applies permissions policy logic. For more about the + evaluation of policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For more information about service and action last accessed data, see + [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GenerateServiceLastAccessedDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateServiceLastAccessedDetailsOutput`. + """ + return self._invoke( + input, _models.GENERATE_SERVICE_LAST_ACCESSED_DETAILS, [], plugins + ) + + def get_access_key_last_used( + self, input: GetAccessKeyLastUsedInput, plugins: list[Plugin] | None = None + ) -> GetAccessKeyLastUsedOutput: + """ + Retrieves information about when the specified access key was last used. + The information includes the date and time of last use, along with the + Amazon Web Services service and Region that were specified in the last + request made with that key. + + Args: + input: + An instance of `GetAccessKeyLastUsedInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccessKeyLastUsedOutput`. + """ + return self._invoke(input, _models.GET_ACCESS_KEY_LAST_USED, [], plugins) + + def get_account_authorization_details( + self, + input: GetAccountAuthorizationDetailsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAccountAuthorizationDetailsOutput: + """ + Retrieves information about all IAM users, groups, roles, and policies + in your Amazon Web Services account, including their relationships to + one another. Use this operation to obtain a snapshot of the + configuration of IAM permissions (users, groups, roles, and policies) in + your account. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + You can optionally filter the results using the `Filter` parameter. You + can paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `GetAccountAuthorizationDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountAuthorizationDetailsOutput`. + """ + return self._invoke( + input, _models.GET_ACCOUNT_AUTHORIZATION_DETAILS, [], plugins + ) + + def get_account_password_policy( + self, + input: GetAccountPasswordPolicyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAccountPasswordPolicyOutput: + """ + Retrieves the password policy for the Amazon Web Services account. This + tells you the complexity requirements and mandatory rotation periods for + the IAM user passwords in your account. For more information about using + a password policy, see [Managing an IAM password + policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html). + + Args: + input: + An instance of `GetAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountPasswordPolicyOutput`. + """ + return self._invoke(input, _models.GET_ACCOUNT_PASSWORD_POLICY, [], plugins) + + def get_account_properties( + self, + input: GetAccountPropertiesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAccountPropertiesOutput: + """ + Retrieves the account-level properties for the caller's Amazon Web + Services account. Account properties are configuration settings that + control account-wide IAM features such as Role Manager. + + The service returns properties as key-value pairs in + `Namespace/PropertyName` format. Each namespace groups related + configuration settings. Use + [PutAccountProperties](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutAccountProperties.html) + to modify these properties. + + Args: + input: + An instance of `GetAccountPropertiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountPropertiesOutput`. + """ + return self._invoke(input, _models.GET_ACCOUNT_PROPERTIES, [], plugins) + + def get_account_summary( + self, + input: GetAccountSummaryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetAccountSummaryOutput: + """ + Retrieves information about IAM entity usage and IAM quotas in the + Amazon Web Services account. + + For information about IAM quotas, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetAccountSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetAccountSummaryOutput`. + """ + return self._invoke(input, _models.GET_ACCOUNT_SUMMARY, [], plugins) + + def get_context_keys_for_custom_policy( + self, + input: GetContextKeysForCustomPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContextKeysForCustomPolicyOutput: + """ + Gets a list of all of the context keys referenced in the input policies. + The policies are supplied as a list of one or more strings. To get the + context keys from policies associated with an IAM user, group, or role, + use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + Context keys can be evaluated by testing against a value specified in an + IAM policy. Use `GetContextKeysForCustomPolicy` to understand what key + names and values you must supply when you call + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html). + Note that all parameters are shown in unencoded form here for clarity + but must be URL encoded to be included as a part of a real HTML request. + + Args: + input: + An instance of `GetContextKeysForCustomPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContextKeysForCustomPolicyOutput`. + """ + return self._invoke( + input, _models.GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY, [], plugins + ) + + def get_context_keys_for_principal_policy( + self, + input: GetContextKeysForPrincipalPolicyInput, + plugins: list[Plugin] | None = None, + ) -> GetContextKeysForPrincipalPolicyOutput: + """ + Gets a list of all of the context keys referenced in all the IAM + policies that are attached to the specified IAM entity. The entity can + be an IAM user, group, or role. If you specify a user, then the request + also includes all of the policies attached to groups that the user is a + member of. + + You can optionally include a list of one or more additional policies, + specified as strings. If you want to include *only* a list of policies + by string, use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + instead. + + **Note:** This operation discloses information about the permissions + granted to other users. If you do not want users to see other user's + permissions, then consider allowing them to use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + instead. + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + Context keys can be evaluated by testing against a value in an IAM + policy. Use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) + to understand what key names and values you must supply when you call + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + This operation doesn't return context keys referenced by service + control policies (SCPs). Only context keys referenced by the + identity-based policies attached to the specified entity, and any + additional policies that you provide, are included. + + Args: + input: + An instance of `GetContextKeysForPrincipalPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetContextKeysForPrincipalPolicyOutput`. + """ + return self._invoke( + input, _models.GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY, [], plugins + ) + + def get_credential_report( + self, + input: GetCredentialReportInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetCredentialReportOutput: + """ + Retrieves a credential report for the Amazon Web Services account. For + more information about the credential report, see [Getting credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetCredentialReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetCredentialReportOutput`. + """ + return self._invoke(input, _models.GET_CREDENTIAL_REPORT, [], plugins) + + def get_delegation_request( + self, input: GetDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> GetDelegationRequestOutput: + """ + Retrieves information about a specific delegation request. + + If a delegation request has no owner or owner account, + `GetDelegationRequest` for that delegation request can be called by any + account. If the owner account is assigned but there is no owner id, only + identities within that owner account can call `GetDelegationRequest` for + the delegation request. Once the delegation request is fully owned, the + owner of the request gets a default permission to get that delegation + request. For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `GetDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetDelegationRequestOutput`. + """ + return self._invoke(input, _models.GET_DELEGATION_REQUEST, [], plugins) + + def get_group( + self, input: GetGroupInput, plugins: list[Plugin] | None = None + ) -> GetGroupOutput: + """ + Returns a list of IAM users that are in the specified IAM group. You can + paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `GetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupOutput`. + """ + return self._invoke(input, _models.GET_GROUP, [], plugins) + + def get_group_policy( + self, input: GetGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> GetGroupPolicyOutput: + """ + Retrieves the specified inline policy document that is embedded in the + specified IAM group. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM group can also have managed policies attached to it. To retrieve + a managed policy document that is attached to a group, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version, then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetGroupPolicyOutput`. + """ + return self._invoke(input, _models.GET_GROUP_POLICY, [], plugins) + + def get_human_readable_summary( + self, input: GetHumanReadableSummaryInput, plugins: list[Plugin] | None = None + ) -> GetHumanReadableSummaryOutput: + """ + Retrieves a human readable summary for a given entity. At this time, the + only supported entity type is `delegation-request` + + This method uses a Large Language Model (LLM) to generate the summary. + + If a delegation request has no owner or owner account, + `GetHumanReadableSummary` for that delegation request can be called by + any account. If the owner account is assigned but there is no owner id, + only identities within that owner account can call + `GetHumanReadableSummary` for the delegation request to retrieve a + summary of that request. Once the delegation request is fully owned, the + owner of the request gets a default permission to get that delegation + request. For more details, read [default permissions granted to + delegation requests](). These rules are identical to + [GetDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetDelegationRequest.html) + API behavior, such that a party who has permissions to call + [GetDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetDelegationRequest.html) + for a given delegation request will always be able to retrieve the human + readable summary for that request. + + Args: + input: + An instance of `GetHumanReadableSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetHumanReadableSummaryOutput`. + """ + return self._invoke(input, _models.GET_HUMAN_READABLE_SUMMARY, [], plugins) + + def get_instance_profile( + self, input: GetInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> GetInstanceProfileOutput: + """ + Retrieves information about the specified instance profile, including + the instance profile's path, GUID, ARN, and role. For more information + about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetInstanceProfileOutput`. + """ + return self._invoke(input, _models.GET_INSTANCE_PROFILE, [], plugins) + + def get_login_profile( + self, + input: GetLoginProfileInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetLoginProfileOutput: + """ + Retrieves the user name for the specified IAM user. A login profile is + created when you create a password for the user to access the Amazon Web + Services Management Console. If the user does not exist or does not have + a password, the operation returns a 404 (`NoSuchEntity`) error. + + If you create an IAM user with access to the console, the `CreateDate` + reflects the date you created the initial password for the user. + + If you create an IAM user with programmatic access, and then later add a + password for the user to access the Amazon Web Services Management + Console, the `CreateDate` reflects the initial password creation date. A + user with programmatic access does not have a login profile unless you + create a password for the user to access the Amazon Web Services + Management Console. + + Args: + input: + An instance of `GetLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetLoginProfileOutput`. + """ + return self._invoke(input, _models.GET_LOGIN_PROFILE, [], plugins) + + def get_mfa_device( + self, input: GetMFADeviceInput, plugins: list[Plugin] | None = None + ) -> GetMFADeviceOutput: + """ + Retrieves information about an MFA device for a specified user. + + Args: + input: + An instance of `GetMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetMFADeviceOutput`. + """ + return self._invoke(input, _models.GET_MFA_DEVICE, [], plugins) + + def get_open_id_connect_provider( + self, input: GetOpenIDConnectProviderInput, plugins: list[Plugin] | None = None + ) -> GetOpenIDConnectProviderOutput: + """ + Returns information about the specified OpenID Connect (OIDC) provider + resource object in IAM. + + Args: + input: + An instance of `GetOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOpenIDConnectProviderOutput`. + """ + return self._invoke(input, _models.GET_OPEN_ID_CONNECT_PROVIDER, [], plugins) + + def get_organizations_access_report( + self, + input: GetOrganizationsAccessReportInput, + plugins: list[Plugin] | None = None, + ) -> GetOrganizationsAccessReportOutput: + """ + Retrieves the service last accessed data report for Organizations that + was previously generated using the + ` `[`GenerateOrganizationsAccessReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)` ` + operation. This operation retrieves the status of your report job and + the report contents. + + Depending on the parameters that you passed when you generated the + report, the data returned could include different information. For + details, see + [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html). + + To call this operation, you must be signed in to the management account + in your organization. SCPs must be enabled for your organization root. + You must have permissions to perform this operation. For more + information, see [Refining permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + For each service that principals in an account (root user, IAM users, or + IAM roles) could access using SCPs, the operation returns details about + the most recent access attempt. If there was no attempt, the service is + listed without details about the most recent attempt to access the + service. If the operation fails, it returns the reason that it failed. + + By default, the list is sorted by service namespace. + + Args: + input: + An instance of `GetOrganizationsAccessReportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOrganizationsAccessReportOutput`. + """ + return self._invoke(input, _models.GET_ORGANIZATIONS_ACCESS_REPORT, [], plugins) + + def get_outbound_web_identity_federation_info( + self, + input: GetOutboundWebIdentityFederationInfoInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GetOutboundWebIdentityFederationInfoOutput: + """ + Retrieves the configuration information for the outbound identity + federation feature in your Amazon Web Services account. The response + includes the unique issuer URL for your Amazon Web Services account and + the current enabled/disabled status of the feature. Use this operation + to obtain the issuer URL that you need to configure trust relationships + with external services. + + Args: + input: + An instance of `GetOutboundWebIdentityFederationInfoInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetOutboundWebIdentityFederationInfoOutput`. + """ + return self._invoke( + input, _models.GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO, [], plugins + ) + + def get_policy( + self, input: GetPolicyInput, plugins: list[Plugin] | None = None + ) -> GetPolicyOutput: + """ + Retrieves information about the specified managed policy, including the + policy's default version and the total number of IAM users, groups, and + roles to which the policy is attached. To retrieve the list of the + specific users, groups, and roles that the policy is attached to, use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + This operation returns metadata about the policy. To retrieve the actual + policy document for a specific version of the policy, use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html). + + This operation retrieves information about managed policies. To retrieve + information about an inline policy that is embedded with an IAM user, + group, or role, use + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html), + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html), + or + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html). + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPolicyOutput`. + """ + return self._invoke(input, _models.GET_POLICY, [], plugins) + + def get_policy_version( + self, input: GetPolicyVersionInput, plugins: list[Plugin] | None = None + ) -> GetPolicyVersionOutput: + """ + Retrieves information about the specified version of the specified + managed policy, including the policy document. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + To list the available versions for a policy, use + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html). + + This operation retrieves information about managed policies. To retrieve + information about an inline policy that is embedded in a user, group, or + role, use + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html), + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html), + or + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html). + + For more information about the types of policies, see [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetPolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPolicyVersionOutput`. + """ + return self._invoke(input, _models.GET_POLICY_VERSION, [], plugins) + + def get_role( + self, input: GetRoleInput, plugins: list[Plugin] | None = None + ) -> GetRoleOutput: + """ + Retrieves information about the specified role, including the role's + path, GUID, ARN, and the role's trust policy that grants permission to + assume the role. For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + Args: + input: + An instance of `GetRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRoleOutput`. + """ + return self._invoke(input, _models.GET_ROLE, [], plugins) + + def get_role_policy( + self, input: GetRolePolicyInput, plugins: list[Plugin] | None = None + ) -> GetRolePolicyOutput: + """ + Retrieves the specified inline policy document that is embedded with the + specified IAM role. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM role can also have managed policies attached to it. To retrieve a + managed policy document that is attached to a role, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version, then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRolePolicyOutput`. + """ + return self._invoke(input, _models.GET_ROLE_POLICY, [], plugins) + + def get_role_template_version( + self, input: GetRoleTemplateVersionInput, plugins: list[Plugin] | None = None + ) -> GetRoleTemplateVersionOutput: + """ + Retrieves information about a version of the specified role template. + Role templates define a reusable configuration---including role name and + path patterns, trust policy, inline and managed policies, permissions + boundary, tags, and maximum session duration---that you use to create + IAM roles with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + + If you do not specify a minor version, the service returns the + template's default minor version. + + Args: + input: + An instance of `GetRoleTemplateVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRoleTemplateVersionOutput`. + """ + return self._invoke(input, _models.GET_ROLE_TEMPLATE_VERSION, [], plugins) + + def get_saml_provider( + self, input: GetSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> GetSAMLProviderOutput: + """ + Returns the SAML provider metadocument that was uploaded when the IAM + SAML provider resource object was created or updated. + + Note: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `GetSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSAMLProviderOutput`. + """ + return self._invoke(input, _models.GET_SAML_PROVIDER, [], plugins) + + def get_server_certificate( + self, input: GetServerCertificateInput, plugins: list[Plugin] | None = None + ) -> GetServerCertificateOutput: + """ + Retrieves information about the specified server certificate stored in + IAM. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Args: + input: + An instance of `GetServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServerCertificateOutput`. + """ + return self._invoke(input, _models.GET_SERVER_CERTIFICATE, [], plugins) + + def get_service_last_accessed_details( + self, + input: GetServiceLastAccessedDetailsInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLastAccessedDetailsOutput: + """ + Retrieves a service last accessed report that was created using the + `GenerateServiceLastAccessedDetails` operation. You can use the `JobId` + parameter in `GetServiceLastAccessedDetails` to retrieve the status of + your report job. When the report is complete, you can retrieve the + generated report. The report includes a list of Amazon Web Services + services that the resource (user, group, role, or managed policy) can + access. + + Note: + Service last accessed data does not use other policy types when + determining whether a resource could access a service. These other + policy types include resource-based policies, access control lists, + Organizations policies, IAM permissions boundaries, and STS assume role + policies. It only applies permissions policy logic. For more about the + evaluation of policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + For each service that the resource could access using permissions + policies, the operation returns details about the most recent access + attempt. If there was no attempt, the service is listed without details + about the most recent attempt to access the service. If the operation + fails, the `GetServiceLastAccessedDetails` operation returns the reason + that it failed. + + The `GetServiceLastAccessedDetails` operation returns a list of + services. This list includes the number of entities that have attempted + to access the service and the date and time of the last attempt. It also + returns the ARN of the following entity, depending on the resource ARN + that you used to generate the report: + + - **User** -- Returns the user ARN that you used to generate the report + + - **Group** -- Returns the ARN of the group member (user) that last + attempted to access the service + + - **Role** -- Returns the role ARN that you used to generate the report + + - **Policy** -- Returns the ARN of the user or role that last used the + policy to attempt to access the service + + By default, the list is sorted by service namespace. + + If you specified `ACTION_LEVEL` granularity when you generated the + report, this operation returns service and action last accessed data. + This includes the most recent access attempt for each tracked action + within a service. Otherwise, this operation returns only service data. + + For more information about service and action last accessed data, see + [Reducing permissions using service last accessed + data](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetServiceLastAccessedDetailsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLastAccessedDetailsOutput`. + """ + return self._invoke( + input, _models.GET_SERVICE_LAST_ACCESSED_DETAILS, [], plugins + ) + + def get_service_last_accessed_details_with_entities( + self, + input: GetServiceLastAccessedDetailsWithEntitiesInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLastAccessedDetailsWithEntitiesOutput: + """ + After you generate a group or policy report using the + `GenerateServiceLastAccessedDetails` operation, you can use the `JobId` + parameter in `GetServiceLastAccessedDetailsWithEntities`. This operation + retrieves the status of your report job and a list of entities that + could have used group or policy permissions to access the specified + service. + + - **Group** -- For a group report, this operation returns a list of + users in the group that could have used the group's policies in an + attempt to access the service. + + - **Policy** -- For a policy report, this operation returns a list of + entities (users or roles) that could have used the policy in an + attempt to access the service. + + You can also use this operation for user or role reports to retrieve + details about those entities. + + If the operation fails, the `GetServiceLastAccessedDetailsWithEntities` + operation returns the reason that it failed. + + By default, the list of associated entities is sorted by date, with the + most recent access listed first. + + Args: + input: + An instance of `GetServiceLastAccessedDetailsWithEntitiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLastAccessedDetailsWithEntitiesOutput`. + """ + return self._invoke( + input, _models.GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES, [], plugins + ) + + def get_service_linked_role_deletion_status( + self, + input: GetServiceLinkedRoleDeletionStatusInput, + plugins: list[Plugin] | None = None, + ) -> GetServiceLinkedRoleDeletionStatusOutput: + """ + Retrieves the status of your service-linked role deletion. After you use + [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) + to submit a service-linked role for deletion, you can use the + `DeletionTaskId` parameter in `GetServiceLinkedRoleDeletionStatus` to + check the status of the deletion. If the deletion fails, this operation + returns the reason that it failed, if that information is returned by + the service. + + Args: + input: + An instance of `GetServiceLinkedRoleDeletionStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetServiceLinkedRoleDeletionStatusOutput`. + """ + return self._invoke( + input, _models.GET_SERVICE_LINKED_ROLE_DELETION_STATUS, [], plugins + ) + + def get_ssh_public_key( + self, input: GetSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetSSHPublicKeyOutput: + """ + Retrieves the specified SSH public key, including metadata about the + key. + + The SSH public key retrieved by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `GetSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetSSHPublicKeyOutput`. + """ + return self._invoke(input, _models.GET_SSH_PUBLIC_KEY, [], plugins) + + def get_user( + self, input: GetUserInput | None = None, plugins: list[Plugin] | None = None + ) -> GetUserOutput: + """ + Retrieves information about the specified IAM user, including the + user's creation date, path, unique ID, and ARN. + + If you do not specify a user name, IAM determines the user name + implicitly based on the Amazon Web Services access key ID used to sign + the request to this operation. + + Args: + input: + An instance of `GetUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetUserOutput`. + """ + return self._invoke(input, _models.GET_USER, [], plugins) + + def get_user_policy( + self, input: GetUserPolicyInput, plugins: list[Plugin] | None = None + ) -> GetUserPolicyOutput: + """ + Retrieves the specified inline policy document that is embedded in the + specified IAM user. + + Note: + Policies returned by this operation are URL-encoded compliant with [RFC + 3986](https://tools.ietf.org/html/rfc3986). You can use a URL decoding + method to convert the policy back to plain JSON text. For example, if + you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality, and some SDKs do this decoding + automatically. + + An IAM user can also have managed policies attached to it. To retrieve a + managed policy document that is attached to a user, use + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + to determine the policy's default version. Then use + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + to retrieve the policy document. + + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `GetUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetUserPolicyOutput`. + """ + return self._invoke(input, _models.GET_USER_POLICY, [], plugins) + + def list_access_keys( + self, + input: ListAccessKeysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListAccessKeysOutput: + """ + Returns information about the access key IDs associated with the + specified IAM user. If there is none, the operation returns an empty + list. + + Although each user is limited to a small number of keys, you can still + paginate the results using the `MaxItems` and `Marker` parameters. + + If the `UserName` is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. If a temporary access key is used, then `UserName` is + required. If a long-term key is assigned to the user, then `UserName` is + not required. + + This operation works for access keys under the Amazon Web Services + account. If the Amazon Web Services account has no associated users, the + root user returns it's own access key IDs by running this command. + + Note: + To ensure the security of your Amazon Web Services account, the secret + access key is accessible only during key and user creation. + + Args: + input: + An instance of `ListAccessKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccessKeysOutput`. + """ + return self._invoke(input, _models.LIST_ACCESS_KEYS, [], plugins) + + def list_account_aliases( + self, + input: ListAccountAliasesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListAccountAliasesOutput: + """ + Lists the account alias associated with the Amazon Web Services account + (Note: you can have only one). For information about using an Amazon Web + Services account alias, see [Creating, deleting, and listing an Amazon + Web Services account + alias](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#CreateAccountAlias) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListAccountAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAccountAliasesOutput`. + """ + return self._invoke(input, _models.LIST_ACCOUNT_ALIASES, [], plugins) + + def list_attached_group_policies( + self, input: ListAttachedGroupPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedGroupPoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM group. + + An IAM group can also have inline policies embedded with it. To list the + inline policies for a group, use + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified group (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedGroupPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedGroupPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_ATTACHED_GROUP_POLICIES, [], plugins) + + def list_attached_role_policies( + self, input: ListAttachedRolePoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedRolePoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM role. + + An IAM role can also have inline policies embedded with it. To list the + inline policies for a role, use + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified role (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedRolePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedRolePoliciesOutput`. + """ + return self._invoke(input, _models.LIST_ATTACHED_ROLE_POLICIES, [], plugins) + + def list_attached_user_policies( + self, input: ListAttachedUserPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListAttachedUserPoliciesOutput: + """ + Lists all managed policies that are attached to the specified IAM user. + + An IAM user can also have inline policies embedded with it. To list the + inline policies for a user, use + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html). + For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. You can use the `PathPrefix` parameter to limit the list of + policies to only those matching the specified path prefix. If there are + no policies attached to the specified group (or none that match the + specified path prefix), the operation returns an empty list. + + Args: + input: + An instance of `ListAttachedUserPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAttachedUserPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_ATTACHED_USER_POLICIES, [], plugins) + + def list_delegation_requests( + self, + input: ListDelegationRequestsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDelegationRequestsOutput: + """ + Lists delegation requests based on the specified criteria. + + If a delegation request has no owner, even if it is assigned to a + specific account, it will not be part of the `ListDelegationRequests` + output for that account. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `ListDelegationRequestsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDelegationRequestsOutput`. + """ + return self._invoke(input, _models.LIST_DELEGATION_REQUESTS, [], plugins) + + def list_entities_for_policy( + self, input: ListEntitiesForPolicyInput, plugins: list[Plugin] | None = None + ) -> ListEntitiesForPolicyOutput: + """ + Lists all IAM users, groups, and roles that the specified managed policy + is attached to. + + You can use the optional `EntityFilter` parameter to limit the results + to a particular type of entity (users, groups, or roles). For example, + to list only the roles that are attached to the specified policy, set + `EntityFilter` to `Role`. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListEntitiesForPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListEntitiesForPolicyOutput`. + """ + return self._invoke(input, _models.LIST_ENTITIES_FOR_POLICY, [], plugins) + + def list_group_policies( + self, input: ListGroupPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListGroupPoliciesOutput: + """ + Lists the names of the inline policies that are embedded in the + specified IAM group. + + An IAM group can also have managed policies attached to it. To list the + managed policies that are attached to a group, use + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + group, the operation returns an empty list. + + Args: + input: + An instance of `ListGroupPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_GROUP_POLICIES, [], plugins) + + def list_groups( + self, input: ListGroupsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListGroupsOutput: + """ + Lists the IAM groups that have the specified path prefix. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupsOutput`. + """ + return self._invoke(input, _models.LIST_GROUPS, [], plugins) + + def list_groups_for_user( + self, input: ListGroupsForUserInput, plugins: list[Plugin] | None = None + ) -> ListGroupsForUserOutput: + """ + Lists the IAM groups that the specified IAM user belongs to. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListGroupsForUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGroupsForUserOutput`. + """ + return self._invoke(input, _models.LIST_GROUPS_FOR_USER, [], plugins) + + def list_instance_profiles( + self, + input: ListInstanceProfilesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListInstanceProfilesOutput: + """ + Lists the instance profiles that have the specified path prefix. If + there are none, the operation returns an empty list. For more + information about instance profiles, see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for an instance profile, see + [GetInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListInstanceProfilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfilesOutput`. + """ + return self._invoke(input, _models.LIST_INSTANCE_PROFILES, [], plugins) + + def list_instance_profiles_for_role( + self, + input: ListInstanceProfilesForRoleInput, + plugins: list[Plugin] | None = None, + ) -> ListInstanceProfilesForRoleOutput: + """ + Lists the instance profiles that have the specified associated IAM role. + If there are none, the operation returns an empty list. For more + information about instance profiles, go to [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListInstanceProfilesForRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfilesForRoleOutput`. + """ + return self._invoke(input, _models.LIST_INSTANCE_PROFILES_FOR_ROLE, [], plugins) + + def list_instance_profile_tags( + self, input: ListInstanceProfileTagsInput, plugins: list[Plugin] | None = None + ) -> ListInstanceProfileTagsOutput: + """ + Lists the tags that are attached to the specified IAM instance profile. + The returned list of tags is sorted by tag key. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListInstanceProfileTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListInstanceProfileTagsOutput`. + """ + return self._invoke(input, _models.LIST_INSTANCE_PROFILE_TAGS, [], plugins) + + def list_mfa_devices( + self, + input: ListMFADevicesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListMFADevicesOutput: + """ + Lists the MFA devices for an IAM user. If the request includes a IAM + user name, then this operation lists all the MFA devices associated with + the specified user. If you do not specify a user name, IAM determines + the user name implicitly based on the Amazon Web Services access key ID + signing the request for this operation. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListMFADevicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMFADevicesOutput`. + """ + return self._invoke(input, _models.LIST_MFA_DEVICES, [], plugins) + + def list_mfa_device_tags( + self, input: ListMFADeviceTagsInput, plugins: list[Plugin] | None = None + ) -> ListMFADeviceTagsOutput: + """ + Lists the tags that are attached to the specified IAM virtual + multi-factor authentication (MFA) device. The returned list of tags is + sorted by tag key. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListMFADeviceTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMFADeviceTagsOutput`. + """ + return self._invoke(input, _models.LIST_MFA_DEVICE_TAGS, [], plugins) + + def list_open_id_connect_providers( + self, + input: ListOpenIDConnectProvidersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListOpenIDConnectProvidersOutput: + """ + Lists information about the IAM OpenID Connect (OIDC) provider resource + objects defined in the Amazon Web Services account. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for an OIDC provider, see + [GetOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html). + + Args: + input: + An instance of `ListOpenIDConnectProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOpenIDConnectProvidersOutput`. + """ + return self._invoke(input, _models.LIST_OPEN_ID_CONNECT_PROVIDERS, [], plugins) + + def list_open_id_connect_provider_tags( + self, + input: ListOpenIDConnectProviderTagsInput, + plugins: list[Plugin] | None = None, + ) -> ListOpenIDConnectProviderTagsOutput: + """ + Lists the tags that are attached to the specified OpenID Connect + (OIDC)-compatible identity provider. The returned list of tags is sorted + by tag key. For more information, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListOpenIDConnectProviderTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOpenIDConnectProviderTagsOutput`. + """ + return self._invoke( + input, _models.LIST_OPEN_ID_CONNECT_PROVIDER_TAGS, [], plugins + ) + + def list_organizations_features( + self, + input: ListOrganizationsFeaturesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListOrganizationsFeaturesOutput: + """ + Lists the centralized root access features enabled for your + organization. For more information, see [Centrally manage root access + for member + accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management). + + Args: + input: + An instance of `ListOrganizationsFeaturesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListOrganizationsFeaturesOutput`. + """ + return self._invoke(input, _models.LIST_ORGANIZATIONS_FEATURES, [], plugins) + + def list_policies( + self, + input: ListPoliciesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListPoliciesOutput: + """ + Lists all the managed policies that are available in your Amazon Web + Services account, including your own customer-defined managed policies + and all Amazon Web Services managed policies. + + You can filter the list of policies that is returned using the optional + `OnlyAttached`, `Scope`, and `PathPrefix` parameters. For example, to + list only the customer managed policies in your Amazon Web Services + account, set `Scope` to `Local`. To list only Amazon Web Services + managed policies, set `Scope` to `AWS`. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + For more information about managed policies, see [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a customer manged policy, see + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html). + + Args: + input: + An instance of `ListPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_POLICIES, [], plugins) + + def list_policies_granting_service_access( + self, + input: ListPoliciesGrantingServiceAccessInput, + plugins: list[Plugin] | None = None, + ) -> ListPoliciesGrantingServiceAccessOutput: + """ + Retrieves a list of policies that the IAM identity (user, group, or + role) can use to access each specified service. + + Note: + This operation does not use other policy types when determining whether + a resource could access a service. These other policy types include + resource-based policies, access control lists, Organizations policies, + IAM permissions boundaries, and STS assume role policies. It only + applies permissions policy logic. For more about the evaluation of + policy types, see [Evaluating + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics) + in the *IAM User Guide*. + + The list of policies returned by the operation depends on the ARN of the + identity that you provide. + + - **User** -- The list of policies includes the managed and inline + policies that are attached to the user directly. The list also + includes any additional managed and inline policies that are attached + to the group to which the user belongs. + + - **Group** -- The list of policies includes only the managed and inline + policies that are attached to the group directly. Policies that are + attached to the group's user are not included. + + - **Role** -- The list of policies includes only the managed and inline + policies that are attached to the role. + + For each managed policy, this operation returns the ARN and policy name. + For each inline policy, it returns the policy name and the entity to + which it is attached. Inline policies do not have an ARN. For more + information about these policy types, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) + in the *IAM User Guide*. + + Policies that are attached to users and roles as permissions boundaries + are not returned. To view which managed policy is currently used to set + the permissions boundary for a user or role, use the + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) + or + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) + operations. + + Args: + input: + An instance of `ListPoliciesGrantingServiceAccessInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPoliciesGrantingServiceAccessOutput`. + """ + return self._invoke( + input, _models.LIST_POLICIES_GRANTING_SERVICE_ACCESS, [], plugins + ) + + def list_policy_tags( + self, input: ListPolicyTagsInput, plugins: list[Plugin] | None = None + ) -> ListPolicyTagsOutput: + """ + Lists the tags that are attached to the specified IAM customer managed + policy. The returned list of tags is sorted by tag key. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListPolicyTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPolicyTagsOutput`. + """ + return self._invoke(input, _models.LIST_POLICY_TAGS, [], plugins) + + def list_policy_versions( + self, input: ListPolicyVersionsInput, plugins: list[Plugin] | None = None + ) -> ListPolicyVersionsOutput: + """ + Lists information about the versions of the specified managed policy, + including the version that is currently set as the policy's default + version. + + For more information about managed policies, see [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListPolicyVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPolicyVersionsOutput`. + """ + return self._invoke(input, _models.LIST_POLICY_VERSIONS, [], plugins) + + def list_role_policies( + self, input: ListRolePoliciesInput, plugins: list[Plugin] | None = None + ) -> ListRolePoliciesOutput: + """ + Lists the names of the inline policies that are embedded in the + specified IAM role. + + An IAM role can also have managed policies attached to it. To list the + managed policies that are attached to a role, use + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + role, the operation returns an empty list. + + Args: + input: + An instance of `ListRolePoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRolePoliciesOutput`. + """ + return self._invoke(input, _models.LIST_ROLE_POLICIES, [], plugins) + + def list_roles( + self, input: ListRolesInput | None = None, plugins: list[Plugin] | None = None + ) -> ListRolesOutput: + """ + Lists the IAM roles that have the specified path prefix. If there are + none, the operation returns an empty list. For more information about + roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. This operation does not return the + following attributes, even though they are an attribute of the returned + object: + + - PermissionsBoundary + + - RoleLastUsed + + - Tags + + To view all of the information for a role, see + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListRolesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRolesOutput`. + """ + return self._invoke(input, _models.LIST_ROLES, [], plugins) + + def list_role_tags( + self, input: ListRoleTagsInput, plugins: list[Plugin] | None = None + ) -> ListRoleTagsOutput: + """ + Lists the tags that are attached to the specified role. The returned + list of tags is sorted by tag key. For more information about tagging, + see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListRoleTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRoleTagsOutput`. + """ + return self._invoke(input, _models.LIST_ROLE_TAGS, [], plugins) + + def list_saml_providers( + self, + input: ListSAMLProvidersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListSAMLProvidersOutput: + """ + Lists the SAML provider resource objects defined in IAM in the account. + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a SAML provider, see + [GetSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html). + + Warning: + This operation requires [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Args: + input: + An instance of `ListSAMLProvidersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSAMLProvidersOutput`. + """ + return self._invoke(input, _models.LIST_SAML_PROVIDERS, [], plugins) + + def list_saml_provider_tags( + self, input: ListSAMLProviderTagsInput, plugins: list[Plugin] | None = None + ) -> ListSAMLProviderTagsOutput: + """ + Lists the tags that are attached to the specified Security Assertion + Markup Language (SAML) identity provider. The returned list of tags is + sorted by tag key. For more information, see [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html). + + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListSAMLProviderTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSAMLProviderTagsOutput`. + """ + return self._invoke(input, _models.LIST_SAML_PROVIDER_TAGS, [], plugins) + + def list_server_certificates( + self, + input: ListServerCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListServerCertificatesOutput: + """ + Lists the server certificates stored in IAM that have the specified path + prefix. If none exist, the operation returns an empty list. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + all of the information for a servercertificate, see + [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html). + + Args: + input: + An instance of `ListServerCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServerCertificatesOutput`. + """ + return self._invoke(input, _models.LIST_SERVER_CERTIFICATES, [], plugins) + + def list_server_certificate_tags( + self, input: ListServerCertificateTagsInput, plugins: list[Plugin] | None = None + ) -> ListServerCertificateTagsOutput: + """ + Lists the tags that are attached to the specified IAM server + certificate. The returned list of tags is sorted by tag key. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListServerCertificateTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServerCertificateTagsOutput`. + """ + return self._invoke(input, _models.LIST_SERVER_CERTIFICATE_TAGS, [], plugins) + + def list_service_specific_credentials( + self, + input: ListServiceSpecificCredentialsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListServiceSpecificCredentialsOutput: + """ + Returns information about the service-specific credentials associated + with the specified IAM user. If none exists, the operation returns an + empty list. The service-specific credentials returned by this operation + are used only for authenticating the IAM user to a specific service. For + more information about using service-specific credentials to + authenticate to an Amazon Web Services service, refer to the following + docs: + + - For service-specific credentials with CodeCommit, refer to [IAM + credentials for CodeCommit: Git credentials, SSH keys, and Amazon Web + Services access + keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html) + in the *IAM User Guide*. + + - For service-specific credentials with Amazon Keyspaces (for Apache + Cassandra), refer to [Use IAM with Amazon Keyspaces (for Apache + Cassandra)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_keyspaces.html) + in the *IAM User Guide*. + + - For services that support long-term API keys, refer to [API keys for + Amazon Web Services + services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_api_keys_for_aws_services.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListServiceSpecificCredentialsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListServiceSpecificCredentialsOutput`. + """ + return self._invoke( + input, _models.LIST_SERVICE_SPECIFIC_CREDENTIALS, [], plugins + ) + + def list_signing_certificates( + self, + input: ListSigningCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListSigningCertificatesOutput: + """ + Returns information about the signing certificates associated with the + specified IAM user. If none exists, the operation returns an empty list. + + Although each user is limited to a small number of signing certificates, + you can still paginate the results using the `MaxItems` and `Marker` + parameters. + + If the `UserName` field is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request for this operation. This operation works for access keys + under the Amazon Web Services account. Consequently, you can use this + operation to manage Amazon Web Services account root user credentials + even if the Amazon Web Services account has no associated users. + + Args: + input: + An instance of `ListSigningCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSigningCertificatesOutput`. + """ + return self._invoke(input, _models.LIST_SIGNING_CERTIFICATES, [], plugins) + + def list_ssh_public_keys( + self, + input: ListSSHPublicKeysInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListSSHPublicKeysOutput: + """ + Returns information about the SSH public keys associated with the + specified IAM user. If none exists, the operation returns an empty list. + + The SSH public keys returned by this operation are used only for + authenticating the IAM user to an CodeCommit repository. For more + information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Although each user is limited to a small number of keys, you can still + paginate the results using the `MaxItems` and `Marker` parameters. + + Args: + input: + An instance of `ListSSHPublicKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListSSHPublicKeysOutput`. + """ + return self._invoke(input, _models.LIST_SSH_PUBLIC_KEYS, [], plugins) + + def list_user_policies( + self, input: ListUserPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListUserPoliciesOutput: + """ + Lists the names of the inline policies embedded in the specified IAM + user. + + An IAM user can also have managed policies attached to it. To list the + managed policies that are attached to a user, use + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html). + For more information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + You can paginate the results using the `MaxItems` and `Marker` + parameters. If there are no inline policies embedded with the specified + user, the operation returns an empty list. + + Args: + input: + An instance of `ListUserPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUserPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_USER_POLICIES, [], plugins) + + def list_users( + self, input: ListUsersInput | None = None, plugins: list[Plugin] | None = None + ) -> ListUsersOutput: + """ + Lists the IAM users that have the specified path prefix. If no path + prefix is specified, the operation returns all users in the Amazon Web + Services account. If there are none, the operation returns an empty + list. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. This operation does not return the + following attributes, even though they are an attribute of the returned + object: + + - PermissionsBoundary + + - Tags + + To view all of the information for a user, see + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListUsersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUsersOutput`. + """ + return self._invoke(input, _models.LIST_USERS, [], plugins) + + def list_user_tags( + self, input: ListUserTagsInput, plugins: list[Plugin] | None = None + ) -> ListUserTagsOutput: + """ + Lists the tags that are attached to the specified IAM user. The returned + list of tags is sorted by tag key. For more information about tagging, + see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ListUserTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListUserTagsOutput`. + """ + return self._invoke(input, _models.LIST_USER_TAGS, [], plugins) + + def list_virtual_mfa_devices( + self, + input: ListVirtualMFADevicesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListVirtualMFADevicesOutput: + """ + Lists the virtual MFA devices defined in the Amazon Web Services account + by assignment status. If you do not specify an assignment status, the + operation returns a list of all virtual MFA devices. Assignment status + can be `Assigned`, `Unassigned`, or `Any`. + + Note: + IAM resource-listing operations return a subset of the available + attributes for the resource. For example, this operation does not return + tags, even though they are an attribute of the returned object. To view + tag information for a virtual MFA device, see + [ListMFADeviceTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html). + + You can paginate the results using the `MaxItems` and `Marker` + parameters. + + Args: + input: + An instance of `ListVirtualMFADevicesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListVirtualMFADevicesOutput`. + """ + return self._invoke(input, _models.LIST_VIRTUAL_MFA_DEVICES, [], plugins) + + def put_account_properties( + self, input: PutAccountPropertiesInput, plugins: list[Plugin] | None = None + ) -> PutAccountPropertiesOutput: + """ + Sets account-level properties for the caller's Amazon Web Services + account. Account properties are configuration settings that control + account-wide IAM features such as Role Manager. + + Specify properties as key-value pairs in `Namespace/PropertyName` + format. All properties in a single request must belong to the same + namespace. Use + [GetAccountProperties](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountProperties.html) + to view the current properties. + + Args: + input: + An instance of `PutAccountPropertiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutAccountPropertiesOutput`. + """ + return self._invoke(input, _models.PUT_ACCOUNT_PROPERTIES, [], plugins) + + def put_group_policy( + self, input: PutGroupPolicyInput, plugins: list[Plugin] | None = None + ) -> PutGroupPolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM group. + + A user can also have managed policies attached to it. To attach a + managed policy to a group, use + [`AttachGroupPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed in a group, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutGroupPolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutGroupPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutGroupPolicyOutput`. + """ + return self._invoke(input, _models.PUT_GROUP_POLICY, [], plugins) + + def put_role_permissions_boundary( + self, + input: PutRolePermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> PutRolePermissionsBoundaryOutput: + """ + Adds or updates the policy that is specified as the IAM role's + permissions boundary. You can use an Amazon Web Services managed policy + or a customer managed policy to set the boundary for a role. Use the + boundary to control the maximum permissions that the role can have. + Setting a permissions boundary is an advanced feature that can affect + the permissions for the role. + + You cannot set the boundary for a service-linked role. + + Warning: + Policies used as permissions boundaries do not provide permissions. You + must also attach a permissions policy to the role. To learn how the + effective permissions for a role are evaluated, see [IAM JSON policy + evaluation + logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) + in the IAM User Guide. + + Args: + input: + An instance of `PutRolePermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRolePermissionsBoundaryOutput`. + """ + return self._invoke(input, _models.PUT_ROLE_PERMISSIONS_BOUNDARY, [], plugins) + + def put_role_policy( + self, input: PutRolePolicyInput, plugins: list[Plugin] | None = None + ) -> PutRolePolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM role. + + When you embed an inline policy in a role, the inline policy is used as + part of the role's access (permissions) policy. The role's trust + policy is created at the same time as the role, using + [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) + . You can update a role's trust policy using + [`UpdateAssumeRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html) + . For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) + in the *IAM User Guide*. + + A role can also have a managed policy attached to it. To attach a + managed policy to a role, use + [`AttachRolePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed with a role, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutRolePolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRolePolicyOutput`. + """ + return self._invoke(input, _models.PUT_ROLE_POLICY, [], plugins) + + def put_user_permissions_boundary( + self, + input: PutUserPermissionsBoundaryInput, + plugins: list[Plugin] | None = None, + ) -> PutUserPermissionsBoundaryOutput: + """ + Adds or updates the policy that is specified as the IAM user's + permissions boundary. You can use an Amazon Web Services managed policy + or a customer managed policy to set the boundary for a user. Use the + boundary to control the maximum permissions that the user can have. + Setting a permissions boundary is an advanced feature that can affect + the permissions for the user. + + Warning: + Policies that are used as permissions boundaries do not provide + permissions. You must also attach a permissions policy to the user. To + learn how the effective permissions for a user are evaluated, see [IAM + JSON policy evaluation + logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) + in the IAM User Guide. + + Args: + input: + An instance of `PutUserPermissionsBoundaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutUserPermissionsBoundaryOutput`. + """ + return self._invoke(input, _models.PUT_USER_PERMISSIONS_BOUNDARY, [], plugins) + + def put_user_policy( + self, input: PutUserPolicyInput, plugins: list[Plugin] | None = None + ) -> PutUserPolicyOutput: + """ + Adds or updates an inline policy document that is embedded in the + specified IAM user. + + An IAM user can also have a managed policy attached to it. To attach a + managed policy to a user, use + [`AttachUserPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html) + . To create a new managed policy, use + [`CreatePolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + . For information about policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + For information about the maximum number of inline policies that you can + embed in a user, see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because policy documents can be large, you should use POST rather than + GET when calling `PutUserPolicy`. For general information about using + the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `PutUserPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutUserPolicyOutput`. + """ + return self._invoke(input, _models.PUT_USER_POLICY, [], plugins) + + def reject_delegation_request( + self, input: RejectDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> RejectDelegationRequestOutput: + """ + Rejects a delegation request, denying the requested temporary access. + + Once a request is rejected, it cannot be accepted or updated later. + Rejected requests expire after 7 days. + + When rejecting a request, an optional explanation can be added using the + `Notes` request parameter. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `RejectDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RejectDelegationRequestOutput`. + """ + return self._invoke(input, _models.REJECT_DELEGATION_REQUEST, [], plugins) + + def remove_client_id_from_open_id_connect_provider( + self, + input: RemoveClientIDFromOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> RemoveClientIDFromOpenIDConnectProviderOutput: + """ + Removes the specified client ID (also known as audience) from the list + of client IDs registered for the specified IAM OpenID Connect (OIDC) + provider resource object. + + This operation is idempotent; it does not fail or return an error if you + try to remove a client ID that does not exist. + + Args: + input: + An instance of `RemoveClientIDFromOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveClientIDFromOpenIDConnectProviderOutput`. + """ + return self._invoke( + input, _models.REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER, [], plugins + ) + + def remove_role_from_instance_profile( + self, + input: RemoveRoleFromInstanceProfileInput, + plugins: list[Plugin] | None = None, + ) -> RemoveRoleFromInstanceProfileOutput: + """ + Removes the specified IAM role from the specified Amazon EC2 instance + profile. + + Warning: + Make sure that you do not have any Amazon EC2 instances running with the + role you are about to remove from the instance profile. Removing a role + from an instance profile that is associated with a running instance + might break any applications running on the instance. + + For more information about roles, see [IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) + in the *IAM User Guide*. For more information about instance profiles, + see [Using instance + profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `RemoveRoleFromInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromInstanceProfileOutput`. + """ + return self._invoke( + input, _models.REMOVE_ROLE_FROM_INSTANCE_PROFILE, [], plugins + ) + + def remove_user_from_group( + self, input: RemoveUserFromGroupInput, plugins: list[Plugin] | None = None + ) -> RemoveUserFromGroupOutput: + """ + Removes the specified user from the specified group. + + Args: + input: + An instance of `RemoveUserFromGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveUserFromGroupOutput`. + """ + return self._invoke(input, _models.REMOVE_USER_FROM_GROUP, [], plugins) + + def reset_service_specific_credential( + self, + input: ResetServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> ResetServiceSpecificCredentialOutput: + """ + Resets the password for a service-specific credential. The new password + is Amazon Web Services generated and cryptographically strong. It cannot + be configured by the user. Resetting the password immediately + invalidates the previous password associated with this user. + + Args: + input: + An instance of `ResetServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetServiceSpecificCredentialOutput`. + """ + return self._invoke( + input, _models.RESET_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + def resync_mfa_device( + self, input: ResyncMFADeviceInput, plugins: list[Plugin] | None = None + ) -> ResyncMFADeviceOutput: + """ + Synchronizes the specified MFA device with its IAM resource object on + the Amazon Web Services servers. + + For more information about creating and working with virtual MFA + devices, see [Using a virtual MFA + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `ResyncMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResyncMFADeviceOutput`. + """ + return self._invoke(input, _models.RESYNC_MFA_DEVICE, [], plugins) + + def send_delegation_token( + self, input: SendDelegationTokenInput, plugins: list[Plugin] | None = None + ) -> SendDelegationTokenOutput: + """ + Sends the exchange token for an accepted delegation request. + + The exchange token is sent to the partner via an asynchronous + notification channel, established by the partner. + + The delegation request must be in the `ACCEPTED` state when calling this + API. After the `SendDelegationToken` API call is successful, the request + transitions to a `FINALIZED` state and cannot be rolled back. However, a + user may reject an accepted request before the `SendDelegationToken` API + is called. + + For more details, see [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `SendDelegationTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SendDelegationTokenOutput`. + """ + return self._invoke(input, _models.SEND_DELEGATION_TOKEN, [], plugins) + + def set_default_policy_version( + self, input: SetDefaultPolicyVersionInput, plugins: list[Plugin] | None = None + ) -> SetDefaultPolicyVersionOutput: + """ + Sets the specified version of the specified policy as the policy's + default (operative) version. + + This operation affects all users, groups, and roles that the policy is + attached to. To list the users, groups, and roles that the policy is + attached to, use + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html). + + For information about managed policies, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SetDefaultPolicyVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetDefaultPolicyVersionOutput`. + """ + return self._invoke(input, _models.SET_DEFAULT_POLICY_VERSION, [], plugins) + + def set_security_token_service_preferences( + self, + input: SetSecurityTokenServicePreferencesInput, + plugins: list[Plugin] | None = None, + ) -> SetSecurityTokenServicePreferencesOutput: + """ + Sets the specified version of the global endpoint token as the token + version used for the Amazon Web Services account. + + By default, Security Token Service (STS) is available as a global + service, and all STS requests go to a single endpoint at + `https://sts.amazonaws.com`. Amazon Web Services recommends using + Regional STS endpoints to reduce latency, build in redundancy, and + increase session token availability. For information about Regional + endpoints for STS, see [Security Token Service endpoints and + quotas](https://docs.aws.amazon.com/general/latest/gr/sts.html) in the + *Amazon Web Services General Reference*. + + If you make an STS call to the global endpoint, the resulting session + tokens might be valid in some Regions but not others. It depends on the + version that is set in this operation. Version 1 tokens are valid only + in Amazon Web Services Regions that are available by default. These + tokens do not work in manually enabled Regions, such as Asia Pacific + (Hong Kong). Version 2 tokens are valid in all Regions. However, version + 2 tokens are longer and might affect systems where you temporarily store + tokens. For information, see [Activating and deactivating STS in an + Amazon Web Services + Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + in the *IAM User Guide*. + + To view the current session token version, see the + `GlobalEndpointTokenVersion` entry in the response of the + [GetAccountSummary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html) + operation. + + Args: + input: + An instance of `SetSecurityTokenServicePreferencesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SetSecurityTokenServicePreferencesOutput`. + """ + return self._invoke( + input, _models.SET_SECURITY_TOKEN_SERVICE_PREFERENCES, [], plugins + ) + + def simulate_custom_policy( + self, input: SimulateCustomPolicyInput, plugins: list[Plugin] | None = None + ) -> SimulateCustomPolicyOutput: + """ + Simulate how a set of IAM policies and optionally a resource-based + policy works with a list of API operations and Amazon Web Services + resources to determine the policies' effective permissions. The + policies are provided as strings. + + The simulation does not perform the API operations; it only checks the + authorization to determine if the simulated policies allow or deny the + operations. You can simulate resources that don't exist in your + account. + + If you want to simulate existing policies that are attached to an IAM + user, group, or role, use + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) + instead. + + Context keys are variables that are maintained by Amazon Web Services + and its services and which provide details about the context of an API + query request. You can use the `Condition` element of an IAM policy to + evaluate context keys. To get the list of context keys that the policies + require for correct simulation, use + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html). + + If the output is long, you can use `MaxItems` and `Marker` parameters to + paginate the results. + + Note: + The IAM policy simulator evaluates statements in identity-based + policies, service control policies (SCPs) including their condition keys + and resource scoping, and the inputs that you provide during simulation. + The policy simulator results can differ from your live Amazon Web + Services environment. We recommend that you check your policies against + your live Amazon Web Services environment after testing using the policy + simulator to confirm that you have the desired results. For more + information about using the policy simulator, see [Testing IAM policies + with the IAM policy + simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SimulateCustomPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SimulateCustomPolicyOutput`. + """ + return self._invoke(input, _models.SIMULATE_CUSTOM_POLICY, [], plugins) + + def simulate_principal_policy( + self, input: SimulatePrincipalPolicyInput, plugins: list[Plugin] | None = None + ) -> SimulatePrincipalPolicyOutput: + """ + Simulate how a set of IAM policies attached to an IAM entity works with + a list of API operations and Amazon Web Services resources to determine + the policies' effective permissions. The entity can be an IAM user, + group, or role. If you specify a user, then the simulation also includes + all of the policies that are attached to groups that the user belongs + to. You can simulate resources that don't exist in your account. + + You can optionally include a list of one or more additional policies + specified as strings to include in the simulation. If you want to + simulate only policies specified as strings, use + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + instead. + + You can also optionally include one resource-based policy to be + evaluated with each of the resources included in the simulation for IAM + users only. + + The simulation does not perform the API operations; it only checks the + authorization to determine if the simulated policies allow or deny the + operations. + + For cross-account simulations, `EvalDecisionDetails` returns the + decision for each policy type (identity-based policy, resource-based + policy, and permissions boundary). This helps you identify which policy + type is responsible for an allow or deny decision when policies span + multiple accounts. + + **Note:** This operation discloses information about the permissions + granted to other users. If you do not want users to see other user's + permissions, then consider allowing them to use + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + instead. + + Context keys are variables maintained by Amazon Web Services and its + services that provide details about the context of an API query request. + You can use the `Condition` element of an IAM policy to evaluate context + keys. To get the list of context keys that the policies require for + correct simulation, use + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + + If the output is long, you can use the `MaxItems` and `Marker` + parameters to paginate the results. + + Note: + The IAM policy simulator evaluates statements in identity-based + policies, service control policies (SCPs) including their condition keys + and resource scoping, and the inputs that you provide during simulation. + The policy simulator results can differ from your live Amazon Web + Services environment. We recommend that you check your policies against + your live Amazon Web Services environment after testing using the policy + simulator to confirm that you have the desired results. For more + information about using the policy simulator, see [Testing IAM policies + with the IAM policy + simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `SimulatePrincipalPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SimulatePrincipalPolicyOutput`. + """ + return self._invoke(input, _models.SIMULATE_PRINCIPAL_POLICY, [], plugins) + + def tag_instance_profile( + self, input: TagInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> TagInstanceProfileOutput: + """ + Adds one or more tags to an IAM instance profile. If a tag with the same + key name already exists, then that tag is overwritten with the new + value. + + Each tag consists of a key name and an associated value. By assigning + tags to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM instance + profile that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagInstanceProfileOutput`. + """ + return self._invoke(input, _models.TAG_INSTANCE_PROFILE, [], plugins) + + def tag_mfa_device( + self, input: TagMFADeviceInput, plugins: list[Plugin] | None = None + ) -> TagMFADeviceOutput: + """ + Adds one or more tags to an IAM virtual multi-factor authentication + (MFA) device. If a tag with the same key name already exists, then that + tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM virtual + MFA device that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagMFADeviceOutput`. + """ + return self._invoke(input, _models.TAG_MFA_DEVICE, [], plugins) + + def tag_open_id_connect_provider( + self, input: TagOpenIDConnectProviderInput, plugins: list[Plugin] | None = None + ) -> TagOpenIDConnectProviderOutput: + """ + Adds one or more tags to an OpenID Connect (OIDC)-compatible identity + provider. For more information about these providers, see [About web + identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + If a tag with the same key name already exists, then that tag is + overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM identity-based and + resource-based policies. You can use tags to restrict access to only + an OIDC provider that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagOpenIDConnectProviderOutput`. + """ + return self._invoke(input, _models.TAG_OPEN_ID_CONNECT_PROVIDER, [], plugins) + + def tag_policy( + self, input: TagPolicyInput, plugins: list[Plugin] | None = None + ) -> TagPolicyOutput: + """ + Adds one or more tags to an IAM customer managed policy. If a tag with + the same key name already exists, then that tag is overwritten with the + new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM customer + managed policy that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagPolicyOutput`. + """ + return self._invoke(input, _models.TAG_POLICY, [], plugins) + + def tag_role( + self, input: TagRoleInput, plugins: list[Plugin] | None = None + ) -> TagRoleOutput: + """ + Adds one or more tags to an IAM role. The role can be a regular role or + a service-linked role. If a tag with the same key name already exists, + then that tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only an IAM role that + has a specified tag attached. You can also restrict access to only + those resources that have a certain tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + For more information about tagging, see [Tagging IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `TagRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagRoleOutput`. + """ + return self._invoke(input, _models.TAG_ROLE, [], plugins) + + def tag_saml_provider( + self, input: TagSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> TagSAMLProviderOutput: + """ + Adds one or more tags to a Security Assertion Markup Language (SAML) + identity provider. For more information about these providers, see + [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) + . If a tag with the same key name already exists, then that tag is + overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only a SAML identity + provider that has a specified tag attached. For examples of policies + that show how to use tags to control access, see [Control access using + IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagSAMLProviderOutput`. + """ + return self._invoke(input, _models.TAG_SAML_PROVIDER, [], plugins) + + def tag_server_certificate( + self, input: TagServerCertificateInput, plugins: list[Plugin] | None = None + ) -> TagServerCertificateOutput: + """ + Adds one or more tags to an IAM server certificate. If a tag with the + same key name already exists, then that tag is overwritten with the new + value. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM user-based and resource-based + policies. You can use tags to restrict access to only a server + certificate that has a specified tag attached. For examples of + policies that show how to use tags to control access, see [Control + access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + Args: + input: + An instance of `TagServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagServerCertificateOutput`. + """ + return self._invoke(input, _models.TAG_SERVER_CERTIFICATE, [], plugins) + + def tag_user( + self, input: TagUserInput, plugins: list[Plugin] | None = None + ) -> TagUserOutput: + """ + Adds one or more tags to an IAM user. If a tag with the same key name + already exists, then that tag is overwritten with the new value. + + A tag consists of a key name and an associated value. By assigning tags + to your resources, you can do the following: + + - **Administrative grouping and discovery** - Attach tags to resources + to aid in organization and search. For example, you could search for + all resources with the key name *Project* and the value + *MyImportantProject*. Or search for all resources with the key name + *Cost Center* and the value *41200*. + + - **Access control** - Include tags in IAM identity-based and + resource-based policies. You can use tags to restrict access to only + an IAM requesting user that has a specified tag attached. You can also + restrict access to only those resources that have a certain tag + attached. For examples of policies that show how to use tags to + control access, see [Control access using IAM + tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) + in the *IAM User Guide*. + + - **Cost allocation** - Use tags to help track which individuals and + teams are using which Amazon Web Services resources. + + Note: + - If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + - Amazon Web Services always interprets the tag `Value` as a single + string. If you need to store an array, you can store comma-separated + values in the string. However, you must interpret the value in your + code. + + For more information about tagging, see [Tagging IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `TagUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagUserOutput`. + """ + return self._invoke(input, _models.TAG_USER, [], plugins) + + def untag_instance_profile( + self, input: UntagInstanceProfileInput, plugins: list[Plugin] | None = None + ) -> UntagInstanceProfileOutput: + """ + Removes the specified tags from the IAM instance profile. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagInstanceProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagInstanceProfileOutput`. + """ + return self._invoke(input, _models.UNTAG_INSTANCE_PROFILE, [], plugins) + + def untag_mfa_device( + self, input: UntagMFADeviceInput, plugins: list[Plugin] | None = None + ) -> UntagMFADeviceOutput: + """ + Removes the specified tags from the IAM virtual multi-factor + authentication (MFA) device. For more information about tagging, see + [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagMFADeviceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagMFADeviceOutput`. + """ + return self._invoke(input, _models.UNTAG_MFA_DEVICE, [], plugins) + + def untag_open_id_connect_provider( + self, + input: UntagOpenIDConnectProviderInput, + plugins: list[Plugin] | None = None, + ) -> UntagOpenIDConnectProviderOutput: + """ + Removes the specified tags from the specified OpenID Connect + (OIDC)-compatible identity provider in IAM. For more information about + OIDC providers, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagOpenIDConnectProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagOpenIDConnectProviderOutput`. + """ + return self._invoke(input, _models.UNTAG_OPEN_ID_CONNECT_PROVIDER, [], plugins) + + def untag_policy( + self, input: UntagPolicyInput, plugins: list[Plugin] | None = None + ) -> UntagPolicyOutput: + """ + Removes the specified tags from the customer managed policy. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagPolicyOutput`. + """ + return self._invoke(input, _models.UNTAG_POLICY, [], plugins) + + def untag_role( + self, input: UntagRoleInput, plugins: list[Plugin] | None = None + ) -> UntagRoleOutput: + """ + Removes the specified tags from the role. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagRoleOutput`. + """ + return self._invoke(input, _models.UNTAG_ROLE, [], plugins) + + def untag_saml_provider( + self, input: UntagSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> UntagSAMLProviderOutput: + """ + Removes the specified tags from the specified Security Assertion Markup + Language (SAML) identity provider in IAM. For more information about + these providers, see [About web identity + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). + For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagSAMLProviderOutput`. + """ + return self._invoke(input, _models.UNTAG_SAML_PROVIDER, [], plugins) + + def untag_server_certificate( + self, input: UntagServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UntagServerCertificateOutput: + """ + Removes the specified tags from the IAM server certificate. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + For certificates in a Region supported by Certificate Manager (ACM), we + recommend that you don't use IAM server certificates. Instead, use ACM + to provision, manage, and deploy your server certificates. For more + information about IAM server certificates, [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagServerCertificateOutput`. + """ + return self._invoke(input, _models.UNTAG_SERVER_CERTIFICATE, [], plugins) + + def untag_user( + self, input: UntagUserInput, plugins: list[Plugin] | None = None + ) -> UntagUserOutput: + """ + Removes the specified tags from the user. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UntagUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagUserOutput`. + """ + return self._invoke(input, _models.UNTAG_USER, [], plugins) + + def update_access_key( + self, input: UpdateAccessKeyInput, plugins: list[Plugin] | None = None + ) -> UpdateAccessKeyOutput: + """ + Changes the status of the specified access key from Active to Inactive, + or vice versa. This operation can be used to disable a user's key as + part of a key rotation workflow. + + If the `UserName` is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. If a temporary access key is used, then `UserName` is + required. If a long-term key is assigned to the user, then `UserName` is + not required. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + For information about rotating keys, see [Managing keys and + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateAccessKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccessKeyOutput`. + """ + return self._invoke(input, _models.UPDATE_ACCESS_KEY, [], plugins) + + def update_account_password_policy( + self, + input: UpdateAccountPasswordPolicyInput | None = None, + plugins: list[Plugin] | None = None, + ) -> UpdateAccountPasswordPolicyOutput: + """ + Updates the password policy settings for the Amazon Web Services + account. + + Note: + This operation does not support partial updates. No parameters are + required, but if you do not specify a parameter, that parameter's value + reverts to its default value. See the **Request Parameters** section for + each parameter's default value. Also note that some parameters do not + allow the default parameter to be explicitly set. Instead, to invoke the + default value, do not include that parameter when you invoke the + operation. + + For more information about using a password policy, see [Managing an IAM + password + policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateAccountPasswordPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccountPasswordPolicyOutput`. + """ + return self._invoke(input, _models.UPDATE_ACCOUNT_PASSWORD_POLICY, [], plugins) + + def update_assume_role_policy( + self, input: UpdateAssumeRolePolicyInput, plugins: list[Plugin] | None = None + ) -> UpdateAssumeRolePolicyOutput: + """ + Updates the policy that grants an IAM entity permission to assume a + role. This is typically referred to as the \"role trust policy\". For + more information about roles, see [Using roles to delegate permissions + and federate + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html). + + Args: + input: + An instance of `UpdateAssumeRolePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAssumeRolePolicyOutput`. + """ + return self._invoke(input, _models.UPDATE_ASSUME_ROLE_POLICY, [], plugins) + + def update_delegation_request( + self, input: UpdateDelegationRequestInput, plugins: list[Plugin] | None = None + ) -> UpdateDelegationRequestOutput: + """ + Updates an existing delegation request with additional information. When + the delegation request is updated, it reaches the `PENDING_APPROVAL` + state. + + Once a delegation request has an owner, that owner gets a default + permission to update the delegation request. For more details, see + [Managing Permissions for Delegation + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions). + + Args: + input: + An instance of `UpdateDelegationRequestInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateDelegationRequestOutput`. + """ + return self._invoke(input, _models.UPDATE_DELEGATION_REQUEST, [], plugins) + + def update_group( + self, input: UpdateGroupInput, plugins: list[Plugin] | None = None + ) -> UpdateGroupOutput: + """ + Updates the name and/or the path of the specified IAM group. + + Warning: + You should understand the implications of changing a group's path or + name. For more information, see [Renaming users and + groups](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html) + in the *IAM User Guide*. + Note: + The person making the request (the principal), must have permission to + change the role group with the old name and the new name. For example, + to change the group named `Managers` to `MGRs`, the principal must have + a policy that allows them to update both groups. If the principal has + permission to update the `Managers` group, but not the `MGRs` group, + then the update fails. For more information about permissions, see + [Access + management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html). + + Args: + input: + An instance of `UpdateGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateGroupOutput`. + """ + return self._invoke(input, _models.UPDATE_GROUP, [], plugins) + + def update_login_profile( + self, input: UpdateLoginProfileInput, plugins: list[Plugin] | None = None + ) -> UpdateLoginProfileOutput: + """ + Changes the password for the specified IAM user. You can use the CLI, + the Amazon Web Services API, or the **Users** page in the IAM console to + change the password for any IAM user. Use + [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) + to change your own password in the **My Security Credentials** page in + the Amazon Web Services Management Console. + + For more information about modifying passwords, see [Managing + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateLoginProfileInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateLoginProfileOutput`. + """ + return self._invoke(input, _models.UPDATE_LOGIN_PROFILE, [], plugins) + + def update_open_id_connect_provider_thumbprint( + self, + input: UpdateOpenIDConnectProviderThumbprintInput, + plugins: list[Plugin] | None = None, + ) -> UpdateOpenIDConnectProviderThumbprintOutput: + """ + Replaces the existing list of server certificate thumbprints associated + with an OpenID Connect (OIDC) provider resource object with a new list + of thumbprints. + + The list that you pass with this operation completely replaces the + existing list of thumbprints. (The lists are not merged.) + + Typically, you need to update a thumbprint only when the identity + provider certificate changes, which occurs rarely. However, if the + provider's certificate *does* change, any attempt to assume an IAM role + that specifies the OIDC provider as a principal fails until the + certificate thumbprint is updated. + + Note: + Amazon Web Services secures communication with OIDC identity providers + (IdPs) using our library of trusted root certificate authorities (CAs) + to verify the JSON Web Key Set (JWKS) endpoint's TLS certificate. If + your OIDC IdP relies on a certificate that is not signed by one of these + trusted CAs, only then we secure communication using the thumbprints set + in the IdP's configuration. + Note: + Trust for the OIDC provider is derived from the provider certificate and + is validated by the thumbprint. Therefore, it is best to limit access to + the `UpdateOpenIDConnectProviderThumbprint` operation to highly + privileged users. + + Args: + input: + An instance of `UpdateOpenIDConnectProviderThumbprintInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateOpenIDConnectProviderThumbprintOutput`. + """ + return self._invoke( + input, _models.UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT, [], plugins + ) + + def update_role( + self, input: UpdateRoleInput, plugins: list[Plugin] | None = None + ) -> UpdateRoleOutput: + """ + Updates the description or maximum session duration setting of a role. + + Args: + input: + An instance of `UpdateRoleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRoleOutput`. + """ + return self._invoke(input, _models.UPDATE_ROLE, [], plugins) + + def update_role_description( + self, input: UpdateRoleDescriptionInput, plugins: list[Plugin] | None = None + ) -> UpdateRoleDescriptionOutput: + """ + Use + [UpdateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html) + instead. + + Modifies only the description of a role. This operation performs the + same function as the `Description` parameter in the `UpdateRole` + operation. + + Args: + input: + An instance of `UpdateRoleDescriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateRoleDescriptionOutput`. + """ + return self._invoke(input, _models.UPDATE_ROLE_DESCRIPTION, [], plugins) + + def update_saml_provider( + self, input: UpdateSAMLProviderInput, plugins: list[Plugin] | None = None + ) -> UpdateSAMLProviderOutput: + """ + Updates the metadata document, SAML encryption settings, and private + keys for an existing SAML provider. To rotate private keys, add your new + private key and then remove the old key in a separate request. + + Args: + input: + An instance of `UpdateSAMLProviderInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSAMLProviderOutput`. + """ + return self._invoke(input, _models.UPDATE_SAML_PROVIDER, [], plugins) + + def update_server_certificate( + self, input: UpdateServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UpdateServerCertificateOutput: + """ + Updates the name and/or the path of the specified server certificate + stored in IAM. + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic also includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + Warning: + You should understand the implications of changing a server + certificate's path or name. For more information, see [Renaming a + server + certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts) + in the *IAM User Guide*. + Note: + The person making the request (the principal), must have permission to + change the server certificate with the old name and the new name. For + example, to change the certificate named `ProductionCert` to `ProdCert`, + the principal must have a policy that allows them to update both + certificates. If the principal has permission to update the + `ProductionCert` group, but not the `ProdCert` certificate, then the + update fails. For more information about permissions, see [Access + management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UpdateServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServerCertificateOutput`. + """ + return self._invoke(input, _models.UPDATE_SERVER_CERTIFICATE, [], plugins) + + def update_service_specific_credential( + self, + input: UpdateServiceSpecificCredentialInput, + plugins: list[Plugin] | None = None, + ) -> UpdateServiceSpecificCredentialOutput: + """ + Sets the status of a service-specific credential to `Active` or + `Inactive`. Service-specific credentials that are inactive cannot be + used for authentication to the service. This operation can be used to + disable a user's service-specific credential as part of a credential + rotation work flow. + + Args: + input: + An instance of `UpdateServiceSpecificCredentialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateServiceSpecificCredentialOutput`. + """ + return self._invoke( + input, _models.UPDATE_SERVICE_SPECIFIC_CREDENTIAL, [], plugins + ) + + def update_signing_certificate( + self, input: UpdateSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> UpdateSigningCertificateOutput: + """ + Changes the status of the specified user signing certificate from active + to disabled, or vice versa. This operation can be used to disable an IAM + user's signing certificate as part of a certificate rotation work flow. + + If the `UserName` field is not specified, the user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Args: + input: + An instance of `UpdateSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSigningCertificateOutput`. + """ + return self._invoke(input, _models.UPDATE_SIGNING_CERTIFICATE, [], plugins) + + def update_ssh_public_key( + self, input: UpdateSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> UpdateSSHPublicKeyOutput: + """ + Sets the status of an IAM user's SSH public key to active or inactive. + SSH public keys that are inactive cannot be used for authentication. + This operation can be used to disable a user's SSH public key as part + of a key rotation work flow. + + The SSH public key affected by this operation is used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `UpdateSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateSSHPublicKeyOutput`. + """ + return self._invoke(input, _models.UPDATE_SSH_PUBLIC_KEY, [], plugins) + + def update_user( + self, input: UpdateUserInput, plugins: list[Plugin] | None = None + ) -> UpdateUserOutput: + """ + Updates the name and/or the path of the specified IAM user. + + Warning: + You should understand the implications of changing an IAM user's path + or name. For more information, see [Renaming an IAM + user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming) + and [Renaming an IAM + group](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html) + in the *IAM User Guide*. + Note: + To change a user name, the requester must have appropriate permissions + on both the source object and the target object. For example, to change + Bob to Robert, the entity making the request must have permission on Bob + and Robert, or must have permission on all (*). For more information + about permissions, see [Permissions and + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html). + + Args: + input: + An instance of `UpdateUserInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateUserOutput`. + """ + return self._invoke(input, _models.UPDATE_USER, [], plugins) + + def upload_server_certificate( + self, input: UploadServerCertificateInput, plugins: list[Plugin] | None = None + ) -> UploadServerCertificateOutput: + """ + Uploads a server certificate entity for the Amazon Web Services account. + The server certificate entity includes a public key certificate, a + private key, and an optional certificate chain, which should all be + PEM-encoded. + + We recommend that you use [Certificate + Manager](https://docs.aws.amazon.com/acm/) to provision, manage, and + deploy your server certificates. With ACM you can request a certificate, + deploy it to Amazon Web Services resources, and let ACM handle + certificate renewals for you. Certificates provided by ACM are free. For + more information about using ACM, see the [Certificate Manager User + Guide](https://docs.aws.amazon.com/acm/latest/userguide/). + + For more information about working with server certificates, see + [Working with server + certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. This topic includes a list of Amazon Web + Services services that can use the server certificates that you manage + with IAM. + + For information about the number of server certificates you can upload, + see [IAM and STS + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) + in the *IAM User Guide*. + + Note: + Because the body of the public key certificate, private key, and the + certificate chain can be large, you should use POST rather than GET when + calling `UploadServerCertificate`. For information about setting up + signatures and authorization through the API, see [Signing Amazon Web + Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) + in the *Amazon Web Services General Reference*. For general information + about using the Query API with IAM, see [Calling the API by making HTTP + query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UploadServerCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadServerCertificateOutput`. + """ + return self._invoke(input, _models.UPLOAD_SERVER_CERTIFICATE, [], plugins) + + def upload_signing_certificate( + self, input: UploadSigningCertificateInput, plugins: list[Plugin] | None = None + ) -> UploadSigningCertificateOutput: + """ + Uploads an X.509 signing certificate and associates it with the + specified IAM user. Some Amazon Web Services services require you to use + certificates to validate requests that are signed with a corresponding + private key. When you upload the certificate, its default status is + `Active`. + + For information about when you would use an X.509 signing certificate, + see [Managing server certificates in + IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) + in the *IAM User Guide*. + + If the `UserName` is not specified, the IAM user name is determined + implicitly based on the Amazon Web Services access key ID used to sign + the request. This operation works for access keys under the Amazon Web + Services account. Consequently, you can use this operation to manage + Amazon Web Services account root user credentials even if the Amazon Web + Services account has no associated users. + + Note: + Because the body of an X.509 certificate can be large, you should use + POST rather than GET when calling `UploadSigningCertificate`. For + information about setting up signatures and authorization through the + API, see [Signing Amazon Web Services API + requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) + in the *Amazon Web Services General Reference*. For general information + about using the Query API with IAM, see [Making query + requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) + in the *IAM User Guide*. + + Args: + input: + An instance of `UploadSigningCertificateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadSigningCertificateOutput`. + """ + return self._invoke(input, _models.UPLOAD_SIGNING_CERTIFICATE, [], plugins) + + def upload_ssh_public_key( + self, input: UploadSSHPublicKeyInput, plugins: list[Plugin] | None = None + ) -> UploadSSHPublicKeyOutput: + """ + Uploads an SSH public key and associates it with the specified IAM user. + + The SSH public key uploaded by this operation can be used only for + authenticating the associated IAM user to an CodeCommit repository. For + more information about using SSH keys to authenticate to an CodeCommit + repository, see [Set up CodeCommit for SSH + connections](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html) + in the *CodeCommit User Guide*. + + Args: + input: + An instance of `UploadSSHPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadSSHPublicKeyOutput`. + """ + return self._invoke(input, _models.UPLOAD_SSH_PUBLIC_KEY, [], plugins) + + def _new_config(self) -> IAMConfig: + return IAMConfig.resolve() + + def _post_setup(self, config: IAMConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/config.py b/clients/aws-sdk-iam/src/aws_sdk_iam/config.py new file mode 100644 index 00000000..8be3fb3d --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/config.py @@ -0,0 +1,1013 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import AWS_IDENTITY_MANAGEMENT_V20100508 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AcceptDelegationRequestInput, + AcceptDelegationRequestOutput, + AcquireRoleInput, + AcquireRoleOutput, + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + AddRoleToInstanceProfileInput, + AddRoleToInstanceProfileOutput, + AddUserToGroupInput, + AddUserToGroupOutput, + AssociateDelegationRequestInput, + AssociateDelegationRequestOutput, + AttachGroupPolicyInput, + AttachGroupPolicyOutput, + AttachRolePolicyInput, + AttachRolePolicyOutput, + AttachUserPolicyInput, + AttachUserPolicyOutput, + ChangePasswordInput, + ChangePasswordOutput, + CreateAccessKeyInput, + CreateAccessKeyOutput, + CreateAccountAliasInput, + CreateAccountAliasOutput, + CreateDelegationRequestInput, + CreateDelegationRequestOutput, + CreateGroupInput, + CreateGroupOutput, + CreateInstanceProfileInput, + CreateInstanceProfileOutput, + CreateLoginProfileInput, + CreateLoginProfileOutput, + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + CreatePolicyInput, + CreatePolicyOutput, + CreatePolicyVersionInput, + CreatePolicyVersionOutput, + CreateRoleInput, + CreateRoleOutput, + CreateSAMLProviderInput, + CreateSAMLProviderOutput, + CreateServiceLinkedRoleInput, + CreateServiceLinkedRoleOutput, + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + CreateUserInput, + CreateUserOutput, + CreateVirtualMFADeviceInput, + CreateVirtualMFADeviceOutput, + DeactivateMFADeviceInput, + DeactivateMFADeviceOutput, + DeleteAccessKeyInput, + DeleteAccessKeyOutput, + DeleteAccountAliasInput, + DeleteAccountAliasOutput, + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + DeleteGroupInput, + DeleteGroupOutput, + DeleteGroupPolicyInput, + DeleteGroupPolicyOutput, + DeleteInstanceProfileInput, + DeleteInstanceProfileOutput, + DeleteLoginProfileInput, + DeleteLoginProfileOutput, + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + DeletePolicyInput, + DeletePolicyOutput, + DeletePolicyVersionInput, + DeletePolicyVersionOutput, + DeleteRoleInput, + DeleteRoleOutput, + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + DeleteRolePolicyInput, + DeleteRolePolicyOutput, + DeleteSAMLProviderInput, + DeleteSAMLProviderOutput, + DeleteSSHPublicKeyInput, + DeleteSSHPublicKeyOutput, + DeleteServerCertificateInput, + DeleteServerCertificateOutput, + DeleteServiceLinkedRoleInput, + DeleteServiceLinkedRoleOutput, + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + DeleteSigningCertificateInput, + DeleteSigningCertificateOutput, + DeleteUserInput, + DeleteUserOutput, + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + DeleteUserPolicyInput, + DeleteUserPolicyOutput, + DeleteVirtualMFADeviceInput, + DeleteVirtualMFADeviceOutput, + DetachGroupPolicyInput, + DetachGroupPolicyOutput, + DetachRolePolicyInput, + DetachRolePolicyOutput, + DetachUserPolicyInput, + DetachUserPolicyOutput, + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + EnableMFADeviceInput, + EnableMFADeviceOutput, + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + GenerateCredentialReportInput, + GenerateCredentialReportOutput, + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + GetAccessKeyLastUsedInput, + GetAccessKeyLastUsedOutput, + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + GetAccountPasswordPolicyInput, + GetAccountPasswordPolicyOutput, + GetAccountPropertiesInput, + GetAccountPropertiesOutput, + GetAccountSummaryInput, + GetAccountSummaryOutput, + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + GetCredentialReportInput, + GetCredentialReportOutput, + GetDelegationRequestInput, + GetDelegationRequestOutput, + GetGroupInput, + GetGroupOutput, + GetGroupPolicyInput, + GetGroupPolicyOutput, + GetHumanReadableSummaryInput, + GetHumanReadableSummaryOutput, + GetInstanceProfileInput, + GetInstanceProfileOutput, + GetLoginProfileInput, + GetLoginProfileOutput, + GetMFADeviceInput, + GetMFADeviceOutput, + GetOpenIDConnectProviderInput, + GetOpenIDConnectProviderOutput, + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + GetPolicyInput, + GetPolicyOutput, + GetPolicyVersionInput, + GetPolicyVersionOutput, + GetRoleInput, + GetRoleOutput, + GetRolePolicyInput, + GetRolePolicyOutput, + GetRoleTemplateVersionInput, + GetRoleTemplateVersionOutput, + GetSAMLProviderInput, + GetSAMLProviderOutput, + GetSSHPublicKeyInput, + GetSSHPublicKeyOutput, + GetServerCertificateInput, + GetServerCertificateOutput, + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + GetUserInput, + GetUserOutput, + GetUserPolicyInput, + GetUserPolicyOutput, + ListAccessKeysInput, + ListAccessKeysOutput, + ListAccountAliasesInput, + ListAccountAliasesOutput, + ListAttachedGroupPoliciesInput, + ListAttachedGroupPoliciesOutput, + ListAttachedRolePoliciesInput, + ListAttachedRolePoliciesOutput, + ListAttachedUserPoliciesInput, + ListAttachedUserPoliciesOutput, + ListDelegationRequestsInput, + ListDelegationRequestsOutput, + ListEntitiesForPolicyInput, + ListEntitiesForPolicyOutput, + ListGroupPoliciesInput, + ListGroupPoliciesOutput, + ListGroupsForUserInput, + ListGroupsForUserOutput, + ListGroupsInput, + ListGroupsOutput, + ListInstanceProfileTagsInput, + ListInstanceProfileTagsOutput, + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + ListInstanceProfilesInput, + ListInstanceProfilesOutput, + ListMFADeviceTagsInput, + ListMFADeviceTagsOutput, + ListMFADevicesInput, + ListMFADevicesOutput, + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + ListOpenIDConnectProvidersInput, + ListOpenIDConnectProvidersOutput, + ListOrganizationsFeaturesInput, + ListOrganizationsFeaturesOutput, + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + ListPoliciesInput, + ListPoliciesOutput, + ListPolicyTagsInput, + ListPolicyTagsOutput, + ListPolicyVersionsInput, + ListPolicyVersionsOutput, + ListRolePoliciesInput, + ListRolePoliciesOutput, + ListRoleTagsInput, + ListRoleTagsOutput, + ListRolesInput, + ListRolesOutput, + ListSAMLProviderTagsInput, + ListSAMLProviderTagsOutput, + ListSAMLProvidersInput, + ListSAMLProvidersOutput, + ListSSHPublicKeysInput, + ListSSHPublicKeysOutput, + ListServerCertificateTagsInput, + ListServerCertificateTagsOutput, + ListServerCertificatesInput, + ListServerCertificatesOutput, + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + ListSigningCertificatesInput, + ListSigningCertificatesOutput, + ListUserPoliciesInput, + ListUserPoliciesOutput, + ListUserTagsInput, + ListUserTagsOutput, + ListUsersInput, + ListUsersOutput, + ListVirtualMFADevicesInput, + ListVirtualMFADevicesOutput, + PutAccountPropertiesInput, + PutAccountPropertiesOutput, + PutGroupPolicyInput, + PutGroupPolicyOutput, + PutRolePermissionsBoundaryInput, + PutRolePermissionsBoundaryOutput, + PutRolePolicyInput, + PutRolePolicyOutput, + PutUserPermissionsBoundaryInput, + PutUserPermissionsBoundaryOutput, + PutUserPolicyInput, + PutUserPolicyOutput, + RejectDelegationRequestInput, + RejectDelegationRequestOutput, + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + RemoveUserFromGroupInput, + RemoveUserFromGroupOutput, + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + ResyncMFADeviceInput, + ResyncMFADeviceOutput, + SendDelegationTokenInput, + SendDelegationTokenOutput, + SetDefaultPolicyVersionInput, + SetDefaultPolicyVersionOutput, + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + SimulateCustomPolicyInput, + SimulateCustomPolicyOutput, + SimulatePrincipalPolicyInput, + SimulatePrincipalPolicyOutput, + TagInstanceProfileInput, + TagInstanceProfileOutput, + TagMFADeviceInput, + TagMFADeviceOutput, + TagOpenIDConnectProviderInput, + TagOpenIDConnectProviderOutput, + TagPolicyInput, + TagPolicyOutput, + TagRoleInput, + TagRoleOutput, + TagSAMLProviderInput, + TagSAMLProviderOutput, + TagServerCertificateInput, + TagServerCertificateOutput, + TagUserInput, + TagUserOutput, + UntagInstanceProfileInput, + UntagInstanceProfileOutput, + UntagMFADeviceInput, + UntagMFADeviceOutput, + UntagOpenIDConnectProviderInput, + UntagOpenIDConnectProviderOutput, + UntagPolicyInput, + UntagPolicyOutput, + UntagRoleInput, + UntagRoleOutput, + UntagSAMLProviderInput, + UntagSAMLProviderOutput, + UntagServerCertificateInput, + UntagServerCertificateOutput, + UntagUserInput, + UntagUserOutput, + UpdateAccessKeyInput, + UpdateAccessKeyOutput, + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + UpdateAssumeRolePolicyInput, + UpdateAssumeRolePolicyOutput, + UpdateDelegationRequestInput, + UpdateDelegationRequestOutput, + UpdateGroupInput, + UpdateGroupOutput, + UpdateLoginProfileInput, + UpdateLoginProfileOutput, + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + UpdateRoleDescriptionInput, + UpdateRoleDescriptionOutput, + UpdateRoleInput, + UpdateRoleOutput, + UpdateSAMLProviderInput, + UpdateSAMLProviderOutput, + UpdateSSHPublicKeyInput, + UpdateSSHPublicKeyOutput, + UpdateServerCertificateInput, + UpdateServerCertificateOutput, + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + UpdateSigningCertificateInput, + UpdateSigningCertificateOutput, + UpdateUserInput, + UpdateUserOutput, + UploadSSHPublicKeyInput, + UploadSSHPublicKeyOutput, + UploadServerCertificateInput, + UploadServerCertificateOutput, + UploadSigningCertificateInput, + UploadSigningCertificateOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[ + AcceptDelegationRequestInput, AcceptDelegationRequestOutput, Any, Any + ], + Interceptor[AcquireRoleInput, AcquireRoleOutput, Any, Any], + Interceptor[ + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[ + AddRoleToInstanceProfileInput, AddRoleToInstanceProfileOutput, Any, Any + ], + Interceptor[AddUserToGroupInput, AddUserToGroupOutput, Any, Any], + Interceptor[ + AssociateDelegationRequestInput, AssociateDelegationRequestOutput, Any, Any + ], + Interceptor[AttachGroupPolicyInput, AttachGroupPolicyOutput, Any, Any], + Interceptor[AttachRolePolicyInput, AttachRolePolicyOutput, Any, Any], + Interceptor[AttachUserPolicyInput, AttachUserPolicyOutput, Any, Any], + Interceptor[ChangePasswordInput, ChangePasswordOutput, Any, Any], + Interceptor[CreateAccessKeyInput, CreateAccessKeyOutput, Any, Any], + Interceptor[CreateAccountAliasInput, CreateAccountAliasOutput, Any, Any], + Interceptor[ + CreateDelegationRequestInput, CreateDelegationRequestOutput, Any, Any + ], + Interceptor[CreateGroupInput, CreateGroupOutput, Any, Any], + Interceptor[CreateInstanceProfileInput, CreateInstanceProfileOutput, Any, Any], + Interceptor[CreateLoginProfileInput, CreateLoginProfileOutput, Any, Any], + Interceptor[ + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[CreatePolicyInput, CreatePolicyOutput, Any, Any], + Interceptor[CreatePolicyVersionInput, CreatePolicyVersionOutput, Any, Any], + Interceptor[CreateRoleInput, CreateRoleOutput, Any, Any], + Interceptor[CreateSAMLProviderInput, CreateSAMLProviderOutput, Any, Any], + Interceptor[ + CreateServiceLinkedRoleInput, CreateServiceLinkedRoleOutput, Any, Any + ], + Interceptor[ + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[CreateUserInput, CreateUserOutput, Any, Any], + Interceptor[ + CreateVirtualMFADeviceInput, CreateVirtualMFADeviceOutput, Any, Any + ], + Interceptor[DeactivateMFADeviceInput, DeactivateMFADeviceOutput, Any, Any], + Interceptor[DeleteAccessKeyInput, DeleteAccessKeyOutput, Any, Any], + Interceptor[DeleteAccountAliasInput, DeleteAccountAliasOutput, Any, Any], + Interceptor[ + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + Any, + Any, + ], + Interceptor[DeleteGroupInput, DeleteGroupOutput, Any, Any], + Interceptor[DeleteGroupPolicyInput, DeleteGroupPolicyOutput, Any, Any], + Interceptor[DeleteInstanceProfileInput, DeleteInstanceProfileOutput, Any, Any], + Interceptor[DeleteLoginProfileInput, DeleteLoginProfileOutput, Any, Any], + Interceptor[ + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[DeletePolicyInput, DeletePolicyOutput, Any, Any], + Interceptor[DeletePolicyVersionInput, DeletePolicyVersionOutput, Any, Any], + Interceptor[DeleteRoleInput, DeleteRoleOutput, Any, Any], + Interceptor[ + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + Any, + Any, + ], + Interceptor[DeleteRolePolicyInput, DeleteRolePolicyOutput, Any, Any], + Interceptor[DeleteSAMLProviderInput, DeleteSAMLProviderOutput, Any, Any], + Interceptor[ + DeleteServerCertificateInput, DeleteServerCertificateOutput, Any, Any + ], + Interceptor[ + DeleteServiceLinkedRoleInput, DeleteServiceLinkedRoleOutput, Any, Any + ], + Interceptor[ + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ + DeleteSigningCertificateInput, DeleteSigningCertificateOutput, Any, Any + ], + Interceptor[DeleteSSHPublicKeyInput, DeleteSSHPublicKeyOutput, Any, Any], + Interceptor[DeleteUserInput, DeleteUserOutput, Any, Any], + Interceptor[ + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + Any, + Any, + ], + Interceptor[DeleteUserPolicyInput, DeleteUserPolicyOutput, Any, Any], + Interceptor[ + DeleteVirtualMFADeviceInput, DeleteVirtualMFADeviceOutput, Any, Any + ], + Interceptor[DetachGroupPolicyInput, DetachGroupPolicyOutput, Any, Any], + Interceptor[DetachRolePolicyInput, DetachRolePolicyOutput, Any, Any], + Interceptor[DetachUserPolicyInput, DetachUserPolicyOutput, Any, Any], + Interceptor[ + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + Any, + Any, + ], + Interceptor[ + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + Any, + Any, + ], + Interceptor[ + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + Any, + Any, + ], + Interceptor[EnableMFADeviceInput, EnableMFADeviceOutput, Any, Any], + Interceptor[ + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + Any, + Any, + ], + Interceptor[ + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + Any, + Any, + ], + Interceptor[ + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + Any, + Any, + ], + Interceptor[ + GenerateCredentialReportInput, GenerateCredentialReportOutput, Any, Any + ], + Interceptor[ + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + Any, + Any, + ], + Interceptor[ + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + Any, + Any, + ], + Interceptor[GetAccessKeyLastUsedInput, GetAccessKeyLastUsedOutput, Any, Any], + Interceptor[ + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetAccountPasswordPolicyInput, GetAccountPasswordPolicyOutput, Any, Any + ], + Interceptor[GetAccountPropertiesInput, GetAccountPropertiesOutput, Any, Any], + Interceptor[GetAccountSummaryInput, GetAccountSummaryOutput, Any, Any], + Interceptor[ + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + Any, + Any, + ], + Interceptor[ + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + Any, + Any, + ], + Interceptor[GetCredentialReportInput, GetCredentialReportOutput, Any, Any], + Interceptor[GetDelegationRequestInput, GetDelegationRequestOutput, Any, Any], + Interceptor[GetGroupInput, GetGroupOutput, Any, Any], + Interceptor[GetGroupPolicyInput, GetGroupPolicyOutput, Any, Any], + Interceptor[ + GetHumanReadableSummaryInput, GetHumanReadableSummaryOutput, Any, Any + ], + Interceptor[GetInstanceProfileInput, GetInstanceProfileOutput, Any, Any], + Interceptor[GetLoginProfileInput, GetLoginProfileOutput, Any, Any], + Interceptor[GetMFADeviceInput, GetMFADeviceOutput, Any, Any], + Interceptor[ + GetOpenIDConnectProviderInput, GetOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[ + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + Any, + Any, + ], + Interceptor[ + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + Any, + Any, + ], + Interceptor[GetPolicyInput, GetPolicyOutput, Any, Any], + Interceptor[GetPolicyVersionInput, GetPolicyVersionOutput, Any, Any], + Interceptor[GetRoleInput, GetRoleOutput, Any, Any], + Interceptor[GetRolePolicyInput, GetRolePolicyOutput, Any, Any], + Interceptor[ + GetRoleTemplateVersionInput, GetRoleTemplateVersionOutput, Any, Any + ], + Interceptor[GetSAMLProviderInput, GetSAMLProviderOutput, Any, Any], + Interceptor[GetServerCertificateInput, GetServerCertificateOutput, Any, Any], + Interceptor[ + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + Any, + Any, + ], + Interceptor[ + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + Any, + Any, + ], + Interceptor[ + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + Any, + Any, + ], + Interceptor[GetSSHPublicKeyInput, GetSSHPublicKeyOutput, Any, Any], + Interceptor[GetUserInput, GetUserOutput, Any, Any], + Interceptor[GetUserPolicyInput, GetUserPolicyOutput, Any, Any], + Interceptor[ListAccessKeysInput, ListAccessKeysOutput, Any, Any], + Interceptor[ListAccountAliasesInput, ListAccountAliasesOutput, Any, Any], + Interceptor[ + ListAttachedGroupPoliciesInput, ListAttachedGroupPoliciesOutput, Any, Any + ], + Interceptor[ + ListAttachedRolePoliciesInput, ListAttachedRolePoliciesOutput, Any, Any + ], + Interceptor[ + ListAttachedUserPoliciesInput, ListAttachedUserPoliciesOutput, Any, Any + ], + Interceptor[ + ListDelegationRequestsInput, ListDelegationRequestsOutput, Any, Any + ], + Interceptor[ListEntitiesForPolicyInput, ListEntitiesForPolicyOutput, Any, Any], + Interceptor[ListGroupPoliciesInput, ListGroupPoliciesOutput, Any, Any], + Interceptor[ListGroupsInput, ListGroupsOutput, Any, Any], + Interceptor[ListGroupsForUserInput, ListGroupsForUserOutput, Any, Any], + Interceptor[ListInstanceProfilesInput, ListInstanceProfilesOutput, Any, Any], + Interceptor[ + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + Any, + Any, + ], + Interceptor[ + ListInstanceProfileTagsInput, ListInstanceProfileTagsOutput, Any, Any + ], + Interceptor[ListMFADevicesInput, ListMFADevicesOutput, Any, Any], + Interceptor[ListMFADeviceTagsInput, ListMFADeviceTagsOutput, Any, Any], + Interceptor[ + ListOpenIDConnectProvidersInput, ListOpenIDConnectProvidersOutput, Any, Any + ], + Interceptor[ + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + Any, + Any, + ], + Interceptor[ + ListOrganizationsFeaturesInput, ListOrganizationsFeaturesOutput, Any, Any + ], + Interceptor[ListPoliciesInput, ListPoliciesOutput, Any, Any], + Interceptor[ + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + Any, + Any, + ], + Interceptor[ListPolicyTagsInput, ListPolicyTagsOutput, Any, Any], + Interceptor[ListPolicyVersionsInput, ListPolicyVersionsOutput, Any, Any], + Interceptor[ListRolePoliciesInput, ListRolePoliciesOutput, Any, Any], + Interceptor[ListRolesInput, ListRolesOutput, Any, Any], + Interceptor[ListRoleTagsInput, ListRoleTagsOutput, Any, Any], + Interceptor[ListSAMLProvidersInput, ListSAMLProvidersOutput, Any, Any], + Interceptor[ListSAMLProviderTagsInput, ListSAMLProviderTagsOutput, Any, Any], + Interceptor[ + ListServerCertificatesInput, ListServerCertificatesOutput, Any, Any + ], + Interceptor[ + ListServerCertificateTagsInput, ListServerCertificateTagsOutput, Any, Any + ], + Interceptor[ + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + Any, + Any, + ], + Interceptor[ + ListSigningCertificatesInput, ListSigningCertificatesOutput, Any, Any + ], + Interceptor[ListSSHPublicKeysInput, ListSSHPublicKeysOutput, Any, Any], + Interceptor[ListUserPoliciesInput, ListUserPoliciesOutput, Any, Any], + Interceptor[ListUsersInput, ListUsersOutput, Any, Any], + Interceptor[ListUserTagsInput, ListUserTagsOutput, Any, Any], + Interceptor[ListVirtualMFADevicesInput, ListVirtualMFADevicesOutput, Any, Any], + Interceptor[PutAccountPropertiesInput, PutAccountPropertiesOutput, Any, Any], + Interceptor[PutGroupPolicyInput, PutGroupPolicyOutput, Any, Any], + Interceptor[ + PutRolePermissionsBoundaryInput, PutRolePermissionsBoundaryOutput, Any, Any + ], + Interceptor[PutRolePolicyInput, PutRolePolicyOutput, Any, Any], + Interceptor[ + PutUserPermissionsBoundaryInput, PutUserPermissionsBoundaryOutput, Any, Any + ], + Interceptor[PutUserPolicyInput, PutUserPolicyOutput, Any, Any], + Interceptor[ + RejectDelegationRequestInput, RejectDelegationRequestOutput, Any, Any + ], + Interceptor[ + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + Any, + Any, + ], + Interceptor[ + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + Any, + Any, + ], + Interceptor[RemoveUserFromGroupInput, RemoveUserFromGroupOutput, Any, Any], + Interceptor[ + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ResyncMFADeviceInput, ResyncMFADeviceOutput, Any, Any], + Interceptor[SendDelegationTokenInput, SendDelegationTokenOutput, Any, Any], + Interceptor[ + SetDefaultPolicyVersionInput, SetDefaultPolicyVersionOutput, Any, Any + ], + Interceptor[ + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + Any, + Any, + ], + Interceptor[SimulateCustomPolicyInput, SimulateCustomPolicyOutput, Any, Any], + Interceptor[ + SimulatePrincipalPolicyInput, SimulatePrincipalPolicyOutput, Any, Any + ], + Interceptor[TagInstanceProfileInput, TagInstanceProfileOutput, Any, Any], + Interceptor[TagMFADeviceInput, TagMFADeviceOutput, Any, Any], + Interceptor[ + TagOpenIDConnectProviderInput, TagOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[TagPolicyInput, TagPolicyOutput, Any, Any], + Interceptor[TagRoleInput, TagRoleOutput, Any, Any], + Interceptor[TagSAMLProviderInput, TagSAMLProviderOutput, Any, Any], + Interceptor[TagServerCertificateInput, TagServerCertificateOutput, Any, Any], + Interceptor[TagUserInput, TagUserOutput, Any, Any], + Interceptor[UntagInstanceProfileInput, UntagInstanceProfileOutput, Any, Any], + Interceptor[UntagMFADeviceInput, UntagMFADeviceOutput, Any, Any], + Interceptor[ + UntagOpenIDConnectProviderInput, UntagOpenIDConnectProviderOutput, Any, Any + ], + Interceptor[UntagPolicyInput, UntagPolicyOutput, Any, Any], + Interceptor[UntagRoleInput, UntagRoleOutput, Any, Any], + Interceptor[UntagSAMLProviderInput, UntagSAMLProviderOutput, Any, Any], + Interceptor[ + UntagServerCertificateInput, UntagServerCertificateOutput, Any, Any + ], + Interceptor[UntagUserInput, UntagUserOutput, Any, Any], + Interceptor[UpdateAccessKeyInput, UpdateAccessKeyOutput, Any, Any], + Interceptor[ + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + Any, + Any, + ], + Interceptor[ + UpdateAssumeRolePolicyInput, UpdateAssumeRolePolicyOutput, Any, Any + ], + Interceptor[ + UpdateDelegationRequestInput, UpdateDelegationRequestOutput, Any, Any + ], + Interceptor[UpdateGroupInput, UpdateGroupOutput, Any, Any], + Interceptor[UpdateLoginProfileInput, UpdateLoginProfileOutput, Any, Any], + Interceptor[ + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + Any, + Any, + ], + Interceptor[UpdateRoleInput, UpdateRoleOutput, Any, Any], + Interceptor[UpdateRoleDescriptionInput, UpdateRoleDescriptionOutput, Any, Any], + Interceptor[UpdateSAMLProviderInput, UpdateSAMLProviderOutput, Any, Any], + Interceptor[ + UpdateServerCertificateInput, UpdateServerCertificateOutput, Any, Any + ], + Interceptor[ + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + Any, + Any, + ], + Interceptor[ + UpdateSigningCertificateInput, UpdateSigningCertificateOutput, Any, Any + ], + Interceptor[UpdateSSHPublicKeyInput, UpdateSSHPublicKeyOutput, Any, Any], + Interceptor[UpdateUserInput, UpdateUserOutput, Any, Any], + Interceptor[ + UploadServerCertificateInput, UploadServerCertificateOutput, Any, Any + ], + Interceptor[ + UploadSigningCertificateInput, UploadSigningCertificateOutput, Any, Any + ], + Interceptor[UploadSSHPublicKeyInput, UploadSSHPublicKeyOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.iam", + service_target="AWSIdentityManagementV20100508", + version="2010-05-08", + service_schema=AWS_IDENTITY_MANAGEMENT_V20100508, +) + + +class _IAMConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class IAMConfig(AwsConfig): + """IAM configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("iam").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="iam") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_IAMConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[IAMConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/models.py b/clients/aws-sdk-iam/src/aws_sdk_iam/models.py new file mode 100644 index 00000000..dece9003 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/models.py @@ -0,0 +1,3057 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={ + "AssertionEncryptionModeType": "ASSERTION_ENCRYPTION_MODE_TYPE", + "AssignmentStatusType": "ASSIGNMENT_STATUS_TYPE", + "EncodingType": "ENCODING_TYPE", + "GlobalEndpointTokenVersion": "GLOBAL_ENDPOINT_TOKEN_VERSION", + "JobStatusType": "JOB_STATUS_TYPE", + "ManagedByTypeType": "MANAGED_BY_TYPE_TYPE", + "ParameterTypeType": "PARAMETER_TYPE_TYPE", + "PermissionCheckResultType": "PERMISSION_CHECK_RESULT_TYPE", + "PermissionCheckStatusType": "PERMISSION_CHECK_STATUS_TYPE", + "PolicyOwnerEntityType": "POLICY_OWNER_ENTITY_TYPE", + "PolicyScopeType": "POLICY_SCOPE_TYPE", + "PolicyType": "POLICY_TYPE", + "SortKeyType": "SORT_KEY_TYPE", + "StateType": "STATE_TYPE", + "StatusType": "STATUS_TYPE", + "SummaryKeyType": "SUMMARY_KEY_TYPE", + "SummaryStateType": "SUMMARY_STATE_TYPE", + }, + index={ + "AcceptDelegationRequestInput": "ACCEPT_DELEGATION_REQUEST_INPUT", + "AcceptDelegationRequestOutput": "ACCEPT_DELEGATION_REQUEST_OUTPUT", + "AccessAdvisorUsageGranularityType": "ACCESS_ADVISOR_USAGE_GRANULARITY_TYPE", + "AccessDetail": "ACCESS_DETAIL", + "AccessKey": "ACCESS_KEY", + "AccessKeyLastUsed": "ACCESS_KEY_LAST_USED", + "AccessKeyMetadata": "ACCESS_KEY_METADATA", + "AccountNotManagementOrDelegatedAdministratorException": "ACCOUNT_NOT_MANAGEMENT_OR_DELEGATED_ADMINISTRATOR_EXCEPTION", + "AcquireRoleInput": "ACQUIRE_ROLE_INPUT", + "AcquireRoleOutput": "ACQUIRE_ROLE_OUTPUT", + "AddClientIDToOpenIDConnectProviderInput": "ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_INPUT", + "AddClientIDToOpenIDConnectProviderOutput": "ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "AddRoleToInstanceProfileInput": "ADD_ROLE_TO_INSTANCE_PROFILE_INPUT", + "AddRoleToInstanceProfileOutput": "ADD_ROLE_TO_INSTANCE_PROFILE_OUTPUT", + "AddUserToGroupInput": "ADD_USER_TO_GROUP_INPUT", + "AddUserToGroupOutput": "ADD_USER_TO_GROUP_OUTPUT", + "assertionEncryptionModeType": "ASSERTION_ENCRYPTION_MODE_TYPE", + "assignmentStatusType": "ASSIGNMENT_STATUS_TYPE", + "AssociateDelegationRequestInput": "ASSOCIATE_DELEGATION_REQUEST_INPUT", + "AssociateDelegationRequestOutput": "ASSOCIATE_DELEGATION_REQUEST_OUTPUT", + "AttachedPermissionsBoundary": "ATTACHED_PERMISSIONS_BOUNDARY", + "AttachedPolicy": "ATTACHED_POLICY", + "AttachGroupPolicyInput": "ATTACH_GROUP_POLICY_INPUT", + "AttachGroupPolicyOutput": "ATTACH_GROUP_POLICY_OUTPUT", + "AttachmentType": "ATTACHMENT_TYPE", + "AttachRolePolicyInput": "ATTACH_ROLE_POLICY_INPUT", + "AttachRolePolicyOutput": "ATTACH_ROLE_POLICY_OUTPUT", + "AttachUserPolicyInput": "ATTACH_USER_POLICY_INPUT", + "AttachUserPolicyOutput": "ATTACH_USER_POLICY_OUTPUT", + "CallerIsNotManagementAccountException": "CALLER_IS_NOT_MANAGEMENT_ACCOUNT_EXCEPTION", + "ChangePasswordInput": "CHANGE_PASSWORD_INPUT", + "ChangePasswordOutput": "CHANGE_PASSWORD_OUTPUT", + "ConcurrentModificationException": "CONCURRENT_MODIFICATION_EXCEPTION", + "ContextEntry": "CONTEXT_ENTRY", + "ContextKeyTypeEnum": "CONTEXT_KEY_TYPE_ENUM", + "CreateAccessKeyInput": "CREATE_ACCESS_KEY_INPUT", + "CreateAccessKeyOutput": "CREATE_ACCESS_KEY_OUTPUT", + "CreateAccountAliasInput": "CREATE_ACCOUNT_ALIAS_INPUT", + "CreateAccountAliasOutput": "CREATE_ACCOUNT_ALIAS_OUTPUT", + "CreateDelegationRequestInput": "CREATE_DELEGATION_REQUEST_INPUT", + "CreateDelegationRequestOutput": "CREATE_DELEGATION_REQUEST_OUTPUT", + "CreateGroupInput": "CREATE_GROUP_INPUT", + "CreateGroupOutput": "CREATE_GROUP_OUTPUT", + "CreateInstanceProfileInput": "CREATE_INSTANCE_PROFILE_INPUT", + "CreateInstanceProfileOutput": "CREATE_INSTANCE_PROFILE_OUTPUT", + "CreateLoginProfileInput": "CREATE_LOGIN_PROFILE_INPUT", + "CreateLoginProfileOutput": "CREATE_LOGIN_PROFILE_OUTPUT", + "CreateOpenIDConnectProviderInput": "CREATE_OPEN_ID_CONNECT_PROVIDER_INPUT", + "CreateOpenIDConnectProviderOutput": "CREATE_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "CreatePolicyInput": "CREATE_POLICY_INPUT", + "CreatePolicyOutput": "CREATE_POLICY_OUTPUT", + "CreatePolicyVersionInput": "CREATE_POLICY_VERSION_INPUT", + "CreatePolicyVersionOutput": "CREATE_POLICY_VERSION_OUTPUT", + "CreateRoleInput": "CREATE_ROLE_INPUT", + "CreateRoleOutput": "CREATE_ROLE_OUTPUT", + "CreateSAMLProviderInput": "CREATE_SAML_PROVIDER_INPUT", + "CreateSAMLProviderOutput": "CREATE_SAML_PROVIDER_OUTPUT", + "CreateServiceLinkedRoleInput": "CREATE_SERVICE_LINKED_ROLE_INPUT", + "CreateServiceLinkedRoleOutput": "CREATE_SERVICE_LINKED_ROLE_OUTPUT", + "CreateServiceSpecificCredentialInput": "CREATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT", + "CreateServiceSpecificCredentialOutput": "CREATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT", + "CreateUserInput": "CREATE_USER_INPUT", + "CreateUserOutput": "CREATE_USER_OUTPUT", + "CreateVirtualMFADeviceInput": "CREATE_VIRTUAL_MFA_DEVICE_INPUT", + "CreateVirtualMFADeviceOutput": "CREATE_VIRTUAL_MFA_DEVICE_OUTPUT", + "CredentialReportExpiredException": "CREDENTIAL_REPORT_EXPIRED_EXCEPTION", + "CredentialReportNotPresentException": "CREDENTIAL_REPORT_NOT_PRESENT_EXCEPTION", + "CredentialReportNotReadyException": "CREDENTIAL_REPORT_NOT_READY_EXCEPTION", + "DeactivateMFADeviceInput": "DEACTIVATE_MFA_DEVICE_INPUT", + "DeactivateMFADeviceOutput": "DEACTIVATE_MFA_DEVICE_OUTPUT", + "DelegationPermission": "DELEGATION_PERMISSION", + "DelegationRequest": "DELEGATION_REQUEST", + "DeleteAccessKeyInput": "DELETE_ACCESS_KEY_INPUT", + "DeleteAccessKeyOutput": "DELETE_ACCESS_KEY_OUTPUT", + "DeleteAccountAliasInput": "DELETE_ACCOUNT_ALIAS_INPUT", + "DeleteAccountAliasOutput": "DELETE_ACCOUNT_ALIAS_OUTPUT", + "DeleteAccountPasswordPolicyInput": "DELETE_ACCOUNT_PASSWORD_POLICY_INPUT", + "DeleteAccountPasswordPolicyOutput": "DELETE_ACCOUNT_PASSWORD_POLICY_OUTPUT", + "DeleteConflictException": "DELETE_CONFLICT_EXCEPTION", + "DeleteGroupInput": "DELETE_GROUP_INPUT", + "DeleteGroupOutput": "DELETE_GROUP_OUTPUT", + "DeleteGroupPolicyInput": "DELETE_GROUP_POLICY_INPUT", + "DeleteGroupPolicyOutput": "DELETE_GROUP_POLICY_OUTPUT", + "DeleteInstanceProfileInput": "DELETE_INSTANCE_PROFILE_INPUT", + "DeleteInstanceProfileOutput": "DELETE_INSTANCE_PROFILE_OUTPUT", + "DeleteLoginProfileInput": "DELETE_LOGIN_PROFILE_INPUT", + "DeleteLoginProfileOutput": "DELETE_LOGIN_PROFILE_OUTPUT", + "DeleteOpenIDConnectProviderInput": "DELETE_OPEN_ID_CONNECT_PROVIDER_INPUT", + "DeleteOpenIDConnectProviderOutput": "DELETE_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "DeletePolicyInput": "DELETE_POLICY_INPUT", + "DeletePolicyOutput": "DELETE_POLICY_OUTPUT", + "DeletePolicyVersionInput": "DELETE_POLICY_VERSION_INPUT", + "DeletePolicyVersionOutput": "DELETE_POLICY_VERSION_OUTPUT", + "DeleteRoleInput": "DELETE_ROLE_INPUT", + "DeleteRoleOutput": "DELETE_ROLE_OUTPUT", + "DeleteRolePermissionsBoundaryInput": "DELETE_ROLE_PERMISSIONS_BOUNDARY_INPUT", + "DeleteRolePermissionsBoundaryOutput": "DELETE_ROLE_PERMISSIONS_BOUNDARY_OUTPUT", + "DeleteRolePolicyInput": "DELETE_ROLE_POLICY_INPUT", + "DeleteRolePolicyOutput": "DELETE_ROLE_POLICY_OUTPUT", + "DeleteSAMLProviderInput": "DELETE_SAML_PROVIDER_INPUT", + "DeleteSAMLProviderOutput": "DELETE_SAML_PROVIDER_OUTPUT", + "DeleteServerCertificateInput": "DELETE_SERVER_CERTIFICATE_INPUT", + "DeleteServerCertificateOutput": "DELETE_SERVER_CERTIFICATE_OUTPUT", + "DeleteServiceLinkedRoleInput": "DELETE_SERVICE_LINKED_ROLE_INPUT", + "DeleteServiceLinkedRoleOutput": "DELETE_SERVICE_LINKED_ROLE_OUTPUT", + "DeleteServiceSpecificCredentialInput": "DELETE_SERVICE_SPECIFIC_CREDENTIAL_INPUT", + "DeleteServiceSpecificCredentialOutput": "DELETE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT", + "DeleteSigningCertificateInput": "DELETE_SIGNING_CERTIFICATE_INPUT", + "DeleteSigningCertificateOutput": "DELETE_SIGNING_CERTIFICATE_OUTPUT", + "DeleteSSHPublicKeyInput": "DELETE_SSH_PUBLIC_KEY_INPUT", + "DeleteSSHPublicKeyOutput": "DELETE_SSH_PUBLIC_KEY_OUTPUT", + "DeleteUserInput": "DELETE_USER_INPUT", + "DeleteUserOutput": "DELETE_USER_OUTPUT", + "DeleteUserPermissionsBoundaryInput": "DELETE_USER_PERMISSIONS_BOUNDARY_INPUT", + "DeleteUserPermissionsBoundaryOutput": "DELETE_USER_PERMISSIONS_BOUNDARY_OUTPUT", + "DeleteUserPolicyInput": "DELETE_USER_POLICY_INPUT", + "DeleteUserPolicyOutput": "DELETE_USER_POLICY_OUTPUT", + "DeleteVirtualMFADeviceInput": "DELETE_VIRTUAL_MFA_DEVICE_INPUT", + "DeleteVirtualMFADeviceOutput": "DELETE_VIRTUAL_MFA_DEVICE_OUTPUT", + "DeletionTaskFailureReasonType": "DELETION_TASK_FAILURE_REASON_TYPE", + "DeletionTaskStatusType": "DELETION_TASK_STATUS_TYPE", + "DetachGroupPolicyInput": "DETACH_GROUP_POLICY_INPUT", + "DetachGroupPolicyOutput": "DETACH_GROUP_POLICY_OUTPUT", + "DetachRolePolicyInput": "DETACH_ROLE_POLICY_INPUT", + "DetachRolePolicyOutput": "DETACH_ROLE_POLICY_OUTPUT", + "DetachUserPolicyInput": "DETACH_USER_POLICY_INPUT", + "DetachUserPolicyOutput": "DETACH_USER_POLICY_OUTPUT", + "DisableOrganizationsRootCredentialsManagementInput": "DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT", + "DisableOrganizationsRootCredentialsManagementOutput": "DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT", + "DisableOrganizationsRootSessionsInput": "DISABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT", + "DisableOrganizationsRootSessionsOutput": "DISABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT", + "DisableOutboundWebIdentityFederationInput": "DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT", + "DisableOutboundWebIdentityFederationOutput": "DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT", + "DuplicateCertificateException": "DUPLICATE_CERTIFICATE_EXCEPTION", + "DuplicateSSHPublicKeyException": "DUPLICATE_SSH_PUBLIC_KEY_EXCEPTION", + "EnableMFADeviceInput": "ENABLE_MFA_DEVICE_INPUT", + "EnableMFADeviceOutput": "ENABLE_MFA_DEVICE_OUTPUT", + "EnableOrganizationsRootCredentialsManagementInput": "ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_INPUT", + "EnableOrganizationsRootCredentialsManagementOutput": "ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT_OUTPUT", + "EnableOrganizationsRootSessionsInput": "ENABLE_ORGANIZATIONS_ROOT_SESSIONS_INPUT", + "EnableOrganizationsRootSessionsOutput": "ENABLE_ORGANIZATIONS_ROOT_SESSIONS_OUTPUT", + "EnableOutboundWebIdentityFederationInput": "ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_INPUT", + "EnableOutboundWebIdentityFederationOutput": "ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION_OUTPUT", + "encodingType": "ENCODING_TYPE", + "EntityAlreadyExistsException": "ENTITY_ALREADY_EXISTS_EXCEPTION", + "EntityDetails": "ENTITY_DETAILS", + "EntityInfo": "ENTITY_INFO", + "EntityTemporarilyUnmodifiableException": "ENTITY_TEMPORARILY_UNMODIFIABLE_EXCEPTION", + "EntityType": "ENTITY_TYPE", + "ErrorDetails": "ERROR_DETAILS", + "EvaluationResult": "EVALUATION_RESULT", + "FeatureDisabledException": "FEATURE_DISABLED_EXCEPTION", + "FeatureEnabledException": "FEATURE_ENABLED_EXCEPTION", + "FeatureType": "FEATURE_TYPE", + "GenerateCredentialReportInput": "GENERATE_CREDENTIAL_REPORT_INPUT", + "GenerateCredentialReportOutput": "GENERATE_CREDENTIAL_REPORT_OUTPUT", + "GenerateOrganizationsAccessReportInput": "GENERATE_ORGANIZATIONS_ACCESS_REPORT_INPUT", + "GenerateOrganizationsAccessReportOutput": "GENERATE_ORGANIZATIONS_ACCESS_REPORT_OUTPUT", + "GenerateServiceLastAccessedDetailsInput": "GENERATE_SERVICE_LAST_ACCESSED_DETAILS_INPUT", + "GenerateServiceLastAccessedDetailsOutput": "GENERATE_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT", + "GetAccessKeyLastUsedInput": "GET_ACCESS_KEY_LAST_USED_INPUT", + "GetAccessKeyLastUsedOutput": "GET_ACCESS_KEY_LAST_USED_OUTPUT", + "GetAccountAuthorizationDetailsInput": "GET_ACCOUNT_AUTHORIZATION_DETAILS_INPUT", + "GetAccountAuthorizationDetailsOutput": "GET_ACCOUNT_AUTHORIZATION_DETAILS_OUTPUT", + "GetAccountPasswordPolicyInput": "GET_ACCOUNT_PASSWORD_POLICY_INPUT", + "GetAccountPasswordPolicyOutput": "GET_ACCOUNT_PASSWORD_POLICY_OUTPUT", + "GetAccountPropertiesInput": "GET_ACCOUNT_PROPERTIES_INPUT", + "GetAccountPropertiesOutput": "GET_ACCOUNT_PROPERTIES_OUTPUT", + "GetAccountSummaryInput": "GET_ACCOUNT_SUMMARY_INPUT", + "GetAccountSummaryOutput": "GET_ACCOUNT_SUMMARY_OUTPUT", + "GetContextKeysForCustomPolicyInput": "GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_INPUT", + "GetContextKeysForCustomPolicyOutput": "GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY_OUTPUT", + "GetContextKeysForPrincipalPolicyInput": "GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_INPUT", + "GetContextKeysForPrincipalPolicyOutput": "GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY_OUTPUT", + "GetCredentialReportInput": "GET_CREDENTIAL_REPORT_INPUT", + "GetCredentialReportOutput": "GET_CREDENTIAL_REPORT_OUTPUT", + "GetDelegationRequestInput": "GET_DELEGATION_REQUEST_INPUT", + "GetDelegationRequestOutput": "GET_DELEGATION_REQUEST_OUTPUT", + "GetGroupInput": "GET_GROUP_INPUT", + "GetGroupOutput": "GET_GROUP_OUTPUT", + "GetGroupPolicyInput": "GET_GROUP_POLICY_INPUT", + "GetGroupPolicyOutput": "GET_GROUP_POLICY_OUTPUT", + "GetHumanReadableSummaryInput": "GET_HUMAN_READABLE_SUMMARY_INPUT", + "GetHumanReadableSummaryOutput": "GET_HUMAN_READABLE_SUMMARY_OUTPUT", + "GetInstanceProfileInput": "GET_INSTANCE_PROFILE_INPUT", + "GetInstanceProfileOutput": "GET_INSTANCE_PROFILE_OUTPUT", + "GetLoginProfileInput": "GET_LOGIN_PROFILE_INPUT", + "GetLoginProfileOutput": "GET_LOGIN_PROFILE_OUTPUT", + "GetMFADeviceInput": "GET_MFA_DEVICE_INPUT", + "GetMFADeviceOutput": "GET_MFA_DEVICE_OUTPUT", + "GetOpenIDConnectProviderInput": "GET_OPEN_ID_CONNECT_PROVIDER_INPUT", + "GetOpenIDConnectProviderOutput": "GET_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "GetOrganizationsAccessReportInput": "GET_ORGANIZATIONS_ACCESS_REPORT_INPUT", + "GetOrganizationsAccessReportOutput": "GET_ORGANIZATIONS_ACCESS_REPORT_OUTPUT", + "GetOutboundWebIdentityFederationInfoInput": "GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_INPUT", + "GetOutboundWebIdentityFederationInfoOutput": "GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO_OUTPUT", + "GetPolicyInput": "GET_POLICY_INPUT", + "GetPolicyOutput": "GET_POLICY_OUTPUT", + "GetPolicyVersionInput": "GET_POLICY_VERSION_INPUT", + "GetPolicyVersionOutput": "GET_POLICY_VERSION_OUTPUT", + "GetRoleInput": "GET_ROLE_INPUT", + "GetRoleOutput": "GET_ROLE_OUTPUT", + "GetRolePolicyInput": "GET_ROLE_POLICY_INPUT", + "GetRolePolicyOutput": "GET_ROLE_POLICY_OUTPUT", + "GetRoleTemplateVersionInput": "GET_ROLE_TEMPLATE_VERSION_INPUT", + "GetRoleTemplateVersionOutput": "GET_ROLE_TEMPLATE_VERSION_OUTPUT", + "GetSAMLProviderInput": "GET_SAML_PROVIDER_INPUT", + "GetSAMLProviderOutput": "GET_SAML_PROVIDER_OUTPUT", + "GetServerCertificateInput": "GET_SERVER_CERTIFICATE_INPUT", + "GetServerCertificateOutput": "GET_SERVER_CERTIFICATE_OUTPUT", + "GetServiceLastAccessedDetailsInput": "GET_SERVICE_LAST_ACCESSED_DETAILS_INPUT", + "GetServiceLastAccessedDetailsOutput": "GET_SERVICE_LAST_ACCESSED_DETAILS_OUTPUT", + "GetServiceLastAccessedDetailsWithEntitiesInput": "GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_INPUT", + "GetServiceLastAccessedDetailsWithEntitiesOutput": "GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES_OUTPUT", + "GetServiceLinkedRoleDeletionStatusInput": "GET_SERVICE_LINKED_ROLE_DELETION_STATUS_INPUT", + "GetServiceLinkedRoleDeletionStatusOutput": "GET_SERVICE_LINKED_ROLE_DELETION_STATUS_OUTPUT", + "GetSSHPublicKeyInput": "GET_SSH_PUBLIC_KEY_INPUT", + "GetSSHPublicKeyOutput": "GET_SSH_PUBLIC_KEY_OUTPUT", + "GetUserInput": "GET_USER_INPUT", + "GetUserOutput": "GET_USER_OUTPUT", + "GetUserPolicyInput": "GET_USER_POLICY_INPUT", + "GetUserPolicyOutput": "GET_USER_POLICY_OUTPUT", + "globalEndpointTokenVersion": "GLOBAL_ENDPOINT_TOKEN_VERSION", + "Group": "GROUP", + "GroupDetail": "GROUP_DETAIL", + "InlinePolicy": "INLINE_POLICY", + "InlinePolicyIdentifierType": "INLINE_POLICY_IDENTIFIER_TYPE", + "InstanceProfile": "INSTANCE_PROFILE", + "InvalidAuthenticationCodeException": "INVALID_AUTHENTICATION_CODE_EXCEPTION", + "InvalidCertificateException": "INVALID_CERTIFICATE_EXCEPTION", + "InvalidInputException": "INVALID_INPUT_EXCEPTION", + "InvalidPublicKeyException": "INVALID_PUBLIC_KEY_EXCEPTION", + "InvalidUserTypeException": "INVALID_USER_TYPE_EXCEPTION", + "jobStatusType": "JOB_STATUS_TYPE", + "KeyPairMismatchException": "KEY_PAIR_MISMATCH_EXCEPTION", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "ListAccessKeysInput": "LIST_ACCESS_KEYS_INPUT", + "ListAccessKeysOutput": "LIST_ACCESS_KEYS_OUTPUT", + "ListAccountAliasesInput": "LIST_ACCOUNT_ALIASES_INPUT", + "ListAccountAliasesOutput": "LIST_ACCOUNT_ALIASES_OUTPUT", + "ListAttachedGroupPoliciesInput": "LIST_ATTACHED_GROUP_POLICIES_INPUT", + "ListAttachedGroupPoliciesOutput": "LIST_ATTACHED_GROUP_POLICIES_OUTPUT", + "ListAttachedRolePoliciesInput": "LIST_ATTACHED_ROLE_POLICIES_INPUT", + "ListAttachedRolePoliciesOutput": "LIST_ATTACHED_ROLE_POLICIES_OUTPUT", + "ListAttachedUserPoliciesInput": "LIST_ATTACHED_USER_POLICIES_INPUT", + "ListAttachedUserPoliciesOutput": "LIST_ATTACHED_USER_POLICIES_OUTPUT", + "ListDelegationRequestsInput": "LIST_DELEGATION_REQUESTS_INPUT", + "ListDelegationRequestsOutput": "LIST_DELEGATION_REQUESTS_OUTPUT", + "ListEntitiesForPolicyInput": "LIST_ENTITIES_FOR_POLICY_INPUT", + "ListEntitiesForPolicyOutput": "LIST_ENTITIES_FOR_POLICY_OUTPUT", + "ListGroupPoliciesInput": "LIST_GROUP_POLICIES_INPUT", + "ListGroupPoliciesOutput": "LIST_GROUP_POLICIES_OUTPUT", + "ListGroupsForUserInput": "LIST_GROUPS_FOR_USER_INPUT", + "ListGroupsForUserOutput": "LIST_GROUPS_FOR_USER_OUTPUT", + "ListGroupsInput": "LIST_GROUPS_INPUT", + "ListGroupsOutput": "LIST_GROUPS_OUTPUT", + "ListInstanceProfilesForRoleInput": "LIST_INSTANCE_PROFILES_FOR_ROLE_INPUT", + "ListInstanceProfilesForRoleOutput": "LIST_INSTANCE_PROFILES_FOR_ROLE_OUTPUT", + "ListInstanceProfilesInput": "LIST_INSTANCE_PROFILES_INPUT", + "ListInstanceProfilesOutput": "LIST_INSTANCE_PROFILES_OUTPUT", + "ListInstanceProfileTagsInput": "LIST_INSTANCE_PROFILE_TAGS_INPUT", + "ListInstanceProfileTagsOutput": "LIST_INSTANCE_PROFILE_TAGS_OUTPUT", + "ListMFADevicesInput": "LIST_MFA_DEVICES_INPUT", + "ListMFADevicesOutput": "LIST_MFA_DEVICES_OUTPUT", + "ListMFADeviceTagsInput": "LIST_MFA_DEVICE_TAGS_INPUT", + "ListMFADeviceTagsOutput": "LIST_MFA_DEVICE_TAGS_OUTPUT", + "ListOpenIDConnectProvidersInput": "LIST_OPEN_ID_CONNECT_PROVIDERS_INPUT", + "ListOpenIDConnectProvidersOutput": "LIST_OPEN_ID_CONNECT_PROVIDERS_OUTPUT", + "ListOpenIDConnectProviderTagsInput": "LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_INPUT", + "ListOpenIDConnectProviderTagsOutput": "LIST_OPEN_ID_CONNECT_PROVIDER_TAGS_OUTPUT", + "ListOrganizationsFeaturesInput": "LIST_ORGANIZATIONS_FEATURES_INPUT", + "ListOrganizationsFeaturesOutput": "LIST_ORGANIZATIONS_FEATURES_OUTPUT", + "ListPoliciesGrantingServiceAccessEntry": "LIST_POLICIES_GRANTING_SERVICE_ACCESS_ENTRY", + "ListPoliciesGrantingServiceAccessInput": "LIST_POLICIES_GRANTING_SERVICE_ACCESS_INPUT", + "ListPoliciesGrantingServiceAccessOutput": "LIST_POLICIES_GRANTING_SERVICE_ACCESS_OUTPUT", + "ListPoliciesInput": "LIST_POLICIES_INPUT", + "ListPoliciesOutput": "LIST_POLICIES_OUTPUT", + "ListPolicyTagsInput": "LIST_POLICY_TAGS_INPUT", + "ListPolicyTagsOutput": "LIST_POLICY_TAGS_OUTPUT", + "ListPolicyVersionsInput": "LIST_POLICY_VERSIONS_INPUT", + "ListPolicyVersionsOutput": "LIST_POLICY_VERSIONS_OUTPUT", + "ListRolePoliciesInput": "LIST_ROLE_POLICIES_INPUT", + "ListRolePoliciesOutput": "LIST_ROLE_POLICIES_OUTPUT", + "ListRolesInput": "LIST_ROLES_INPUT", + "ListRolesOutput": "LIST_ROLES_OUTPUT", + "ListRoleTagsInput": "LIST_ROLE_TAGS_INPUT", + "ListRoleTagsOutput": "LIST_ROLE_TAGS_OUTPUT", + "ListSAMLProvidersInput": "LIST_SAML_PROVIDERS_INPUT", + "ListSAMLProvidersOutput": "LIST_SAML_PROVIDERS_OUTPUT", + "ListSAMLProviderTagsInput": "LIST_SAML_PROVIDER_TAGS_INPUT", + "ListSAMLProviderTagsOutput": "LIST_SAML_PROVIDER_TAGS_OUTPUT", + "ListServerCertificatesInput": "LIST_SERVER_CERTIFICATES_INPUT", + "ListServerCertificatesOutput": "LIST_SERVER_CERTIFICATES_OUTPUT", + "ListServerCertificateTagsInput": "LIST_SERVER_CERTIFICATE_TAGS_INPUT", + "ListServerCertificateTagsOutput": "LIST_SERVER_CERTIFICATE_TAGS_OUTPUT", + "ListServiceSpecificCredentialsInput": "LIST_SERVICE_SPECIFIC_CREDENTIALS_INPUT", + "ListServiceSpecificCredentialsOutput": "LIST_SERVICE_SPECIFIC_CREDENTIALS_OUTPUT", + "ListSigningCertificatesInput": "LIST_SIGNING_CERTIFICATES_INPUT", + "ListSigningCertificatesOutput": "LIST_SIGNING_CERTIFICATES_OUTPUT", + "ListSSHPublicKeysInput": "LIST_SSH_PUBLIC_KEYS_INPUT", + "ListSSHPublicKeysOutput": "LIST_SSH_PUBLIC_KEYS_OUTPUT", + "ListUserPoliciesInput": "LIST_USER_POLICIES_INPUT", + "ListUserPoliciesOutput": "LIST_USER_POLICIES_OUTPUT", + "ListUsersInput": "LIST_USERS_INPUT", + "ListUsersOutput": "LIST_USERS_OUTPUT", + "ListUserTagsInput": "LIST_USER_TAGS_INPUT", + "ListUserTagsOutput": "LIST_USER_TAGS_OUTPUT", + "ListVirtualMFADevicesInput": "LIST_VIRTUAL_MFA_DEVICES_INPUT", + "ListVirtualMFADevicesOutput": "LIST_VIRTUAL_MFA_DEVICES_OUTPUT", + "LoginProfile": "LOGIN_PROFILE", + "MalformedCertificateException": "MALFORMED_CERTIFICATE_EXCEPTION", + "MalformedPolicyDocumentException": "MALFORMED_POLICY_DOCUMENT_EXCEPTION", + "managedByTypeType": "MANAGED_BY_TYPE_TYPE", + "ManagedPolicyDetail": "MANAGED_POLICY_DETAIL", + "MFADevice": "MFA_DEVICE", + "NameConflictException": "NAME_CONFLICT_EXCEPTION", + "NoSuchEntityException": "NO_SUCH_ENTITY_EXCEPTION", + "OpenIDConnectProviderListEntry": "OPEN_ID_CONNECT_PROVIDER_LIST_ENTRY", + "OpenIdIdpCommunicationErrorException": "OPEN_ID_IDP_COMMUNICATION_ERROR_EXCEPTION", + "OrderedOrganizationPolicyType": "ORDERED_ORGANIZATION_POLICY_TYPE", + "OrganizationNotFoundException": "ORGANIZATION_NOT_FOUND_EXCEPTION", + "OrganizationNotInAllFeaturesModeException": "ORGANIZATION_NOT_IN_ALL_FEATURES_MODE_EXCEPTION", + "OrganizationsDecisionDetail": "ORGANIZATIONS_DECISION_DETAIL", + "ParameterDefinition": "PARAMETER_DEFINITION", + "parameterTypeType": "PARAMETER_TYPE_TYPE", + "PasswordPolicy": "PASSWORD_POLICY", + "PasswordPolicyViolationException": "PASSWORD_POLICY_VIOLATION_EXCEPTION", + "permissionCheckResultType": "PERMISSION_CHECK_RESULT_TYPE", + "permissionCheckStatusType": "PERMISSION_CHECK_STATUS_TYPE", + "PermissionsBoundaryAttachmentType": "PERMISSIONS_BOUNDARY_ATTACHMENT_TYPE", + "PermissionsBoundaryDecisionDetail": "PERMISSIONS_BOUNDARY_DECISION_DETAIL", + "Policy": "POLICY", + "PolicyDetail": "POLICY_DETAIL", + "PolicyEvaluationDecisionType": "POLICY_EVALUATION_DECISION_TYPE", + "PolicyEvaluationException": "POLICY_EVALUATION_EXCEPTION", + "PolicyGrantingServiceAccess": "POLICY_GRANTING_SERVICE_ACCESS", + "PolicyGroup": "POLICY_GROUP", + "PolicyIdentifier": "POLICY_IDENTIFIER", + "PolicyIdentifier_PolicyType": "POLICY_IDENTIFIER", + "PolicyIdentifierPolicyArn": "POLICY_IDENTIFIER", + "PolicyIdentifierInlinePolicyIdentifier": "POLICY_IDENTIFIER", + "PolicyIdentifierUnknown": "POLICY_IDENTIFIER", + "PolicyIdentifierPolicyType": "POLICY_IDENTIFIER_POLICY_TYPE", + "PolicyNotAttachableException": "POLICY_NOT_ATTACHABLE_EXCEPTION", + "policyOwnerEntityType": "POLICY_OWNER_ENTITY_TYPE", + "PolicyParameter": "POLICY_PARAMETER", + "PolicyParameterTypeEnum": "POLICY_PARAMETER_TYPE_ENUM", + "PolicyRole": "POLICY_ROLE", + "policyScopeType": "POLICY_SCOPE_TYPE", + "PolicySourceType": "POLICY_SOURCE_TYPE", + "policyType": "POLICY_TYPE", + "PolicyUsageType": "POLICY_USAGE_TYPE", + "PolicyUser": "POLICY_USER", + "PolicyVersion": "POLICY_VERSION", + "Position": "POSITION", + "PutAccountPropertiesInput": "PUT_ACCOUNT_PROPERTIES_INPUT", + "PutAccountPropertiesOutput": "PUT_ACCOUNT_PROPERTIES_OUTPUT", + "PutGroupPolicyInput": "PUT_GROUP_POLICY_INPUT", + "PutGroupPolicyOutput": "PUT_GROUP_POLICY_OUTPUT", + "PutRolePermissionsBoundaryInput": "PUT_ROLE_PERMISSIONS_BOUNDARY_INPUT", + "PutRolePermissionsBoundaryOutput": "PUT_ROLE_PERMISSIONS_BOUNDARY_OUTPUT", + "PutRolePolicyInput": "PUT_ROLE_POLICY_INPUT", + "PutRolePolicyOutput": "PUT_ROLE_POLICY_OUTPUT", + "PutUserPermissionsBoundaryInput": "PUT_USER_PERMISSIONS_BOUNDARY_INPUT", + "PutUserPermissionsBoundaryOutput": "PUT_USER_PERMISSIONS_BOUNDARY_OUTPUT", + "PutUserPolicyInput": "PUT_USER_POLICY_INPUT", + "PutUserPolicyOutput": "PUT_USER_POLICY_OUTPUT", + "RejectDelegationRequestInput": "REJECT_DELEGATION_REQUEST_INPUT", + "RejectDelegationRequestOutput": "REJECT_DELEGATION_REQUEST_OUTPUT", + "RemoveClientIDFromOpenIDConnectProviderInput": "REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_INPUT", + "RemoveClientIDFromOpenIDConnectProviderOutput": "REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "RemoveRoleFromInstanceProfileInput": "REMOVE_ROLE_FROM_INSTANCE_PROFILE_INPUT", + "RemoveRoleFromInstanceProfileOutput": "REMOVE_ROLE_FROM_INSTANCE_PROFILE_OUTPUT", + "RemoveUserFromGroupInput": "REMOVE_USER_FROM_GROUP_INPUT", + "RemoveUserFromGroupOutput": "REMOVE_USER_FROM_GROUP_OUTPUT", + "ReplacementValueEntry": "REPLACEMENT_VALUE_ENTRY", + "ReportFormatType": "REPORT_FORMAT_TYPE", + "ReportGenerationLimitExceededException": "REPORT_GENERATION_LIMIT_EXCEEDED_EXCEPTION", + "ReportStateType": "REPORT_STATE_TYPE", + "ResetServiceSpecificCredentialInput": "RESET_SERVICE_SPECIFIC_CREDENTIAL_INPUT", + "ResetServiceSpecificCredentialOutput": "RESET_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT", + "ResourceSpecificResult": "RESOURCE_SPECIFIC_RESULT", + "ResyncMFADeviceInput": "RESYNC_MFA_DEVICE_INPUT", + "ResyncMFADeviceOutput": "RESYNC_MFA_DEVICE_OUTPUT", + "Role": "ROLE", + "RoleDetail": "ROLE_DETAIL", + "RoleLastUsed": "ROLE_LAST_USED", + "RoleModifiedException": "ROLE_MODIFIED_EXCEPTION", + "RoleTemplateDisabledException": "ROLE_TEMPLATE_DISABLED_EXCEPTION", + "RoleTemplateVersion": "ROLE_TEMPLATE_VERSION", + "RoleUsageType": "ROLE_USAGE_TYPE", + "SAMLPrivateKey": "SAML_PRIVATE_KEY", + "SAMLProviderListEntry": "SAML_PROVIDER_LIST_ENTRY", + "SendDelegationTokenInput": "SEND_DELEGATION_TOKEN_INPUT", + "SendDelegationTokenOutput": "SEND_DELEGATION_TOKEN_OUTPUT", + "ServerCertificate": "SERVER_CERTIFICATE", + "ServerCertificateMetadata": "SERVER_CERTIFICATE_METADATA", + "ServiceAccessNotEnabledException": "SERVICE_ACCESS_NOT_ENABLED_EXCEPTION", + "ServiceFailureException": "SERVICE_FAILURE_EXCEPTION", + "ServiceLastAccessed": "SERVICE_LAST_ACCESSED", + "ServiceNotSupportedException": "SERVICE_NOT_SUPPORTED_EXCEPTION", + "ServiceSpecificCredential": "SERVICE_SPECIFIC_CREDENTIAL", + "ServiceSpecificCredentialMetadata": "SERVICE_SPECIFIC_CREDENTIAL_METADATA", + "SetDefaultPolicyVersionInput": "SET_DEFAULT_POLICY_VERSION_INPUT", + "SetDefaultPolicyVersionOutput": "SET_DEFAULT_POLICY_VERSION_OUTPUT", + "SetSecurityTokenServicePreferencesInput": "SET_SECURITY_TOKEN_SERVICE_PREFERENCES_INPUT", + "SetSecurityTokenServicePreferencesOutput": "SET_SECURITY_TOKEN_SERVICE_PREFERENCES_OUTPUT", + "SigningCertificate": "SIGNING_CERTIFICATE", + "SimulateCustomPolicyInput": "SIMULATE_CUSTOM_POLICY_INPUT", + "SimulateCustomPolicyOutput": "SIMULATE_CUSTOM_POLICY_OUTPUT", + "SimulatePrincipalPolicyInput": "SIMULATE_PRINCIPAL_POLICY_INPUT", + "SimulatePrincipalPolicyOutput": "SIMULATE_PRINCIPAL_POLICY_OUTPUT", + "sortKeyType": "SORT_KEY_TYPE", + "SourceRoleTemplate": "SOURCE_ROLE_TEMPLATE", + "SSHPublicKey": "SSH_PUBLIC_KEY", + "SSHPublicKeyMetadata": "SSH_PUBLIC_KEY_METADATA", + "Statement": "STATEMENT", + "stateType": "STATE_TYPE", + "statusType": "STATUS_TYPE", + "summaryKeyType": "SUMMARY_KEY_TYPE", + "summaryStateType": "SUMMARY_STATE_TYPE", + "Tag": "TAG", + "TagInstanceProfileInput": "TAG_INSTANCE_PROFILE_INPUT", + "TagInstanceProfileOutput": "TAG_INSTANCE_PROFILE_OUTPUT", + "TagMFADeviceInput": "TAG_MFA_DEVICE_INPUT", + "TagMFADeviceOutput": "TAG_MFA_DEVICE_OUTPUT", + "TagOpenIDConnectProviderInput": "TAG_OPEN_ID_CONNECT_PROVIDER_INPUT", + "TagOpenIDConnectProviderOutput": "TAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "TagPolicyInput": "TAG_POLICY_INPUT", + "TagPolicyOutput": "TAG_POLICY_OUTPUT", + "TagRoleInput": "TAG_ROLE_INPUT", + "TagRoleOutput": "TAG_ROLE_OUTPUT", + "TagSAMLProviderInput": "TAG_SAML_PROVIDER_INPUT", + "TagSAMLProviderOutput": "TAG_SAML_PROVIDER_OUTPUT", + "TagServerCertificateInput": "TAG_SERVER_CERTIFICATE_INPUT", + "TagServerCertificateOutput": "TAG_SERVER_CERTIFICATE_OUTPUT", + "TagTemplate": "TAG_TEMPLATE", + "TagUserInput": "TAG_USER_INPUT", + "TagUserOutput": "TAG_USER_OUTPUT", + "TrackedActionLastAccessed": "TRACKED_ACTION_LAST_ACCESSED", + "UnmodifiableEntityException": "UNMODIFIABLE_ENTITY_EXCEPTION", + "UnrecognizedPublicKeyEncodingException": "UNRECOGNIZED_PUBLIC_KEY_ENCODING_EXCEPTION", + "UntagInstanceProfileInput": "UNTAG_INSTANCE_PROFILE_INPUT", + "UntagInstanceProfileOutput": "UNTAG_INSTANCE_PROFILE_OUTPUT", + "UntagMFADeviceInput": "UNTAG_MFA_DEVICE_INPUT", + "UntagMFADeviceOutput": "UNTAG_MFA_DEVICE_OUTPUT", + "UntagOpenIDConnectProviderInput": "UNTAG_OPEN_ID_CONNECT_PROVIDER_INPUT", + "UntagOpenIDConnectProviderOutput": "UNTAG_OPEN_ID_CONNECT_PROVIDER_OUTPUT", + "UntagPolicyInput": "UNTAG_POLICY_INPUT", + "UntagPolicyOutput": "UNTAG_POLICY_OUTPUT", + "UntagRoleInput": "UNTAG_ROLE_INPUT", + "UntagRoleOutput": "UNTAG_ROLE_OUTPUT", + "UntagSAMLProviderInput": "UNTAG_SAML_PROVIDER_INPUT", + "UntagSAMLProviderOutput": "UNTAG_SAML_PROVIDER_OUTPUT", + "UntagServerCertificateInput": "UNTAG_SERVER_CERTIFICATE_INPUT", + "UntagServerCertificateOutput": "UNTAG_SERVER_CERTIFICATE_OUTPUT", + "UntagUserInput": "UNTAG_USER_INPUT", + "UntagUserOutput": "UNTAG_USER_OUTPUT", + "UpdateAccessKeyInput": "UPDATE_ACCESS_KEY_INPUT", + "UpdateAccessKeyOutput": "UPDATE_ACCESS_KEY_OUTPUT", + "UpdateAccountPasswordPolicyInput": "UPDATE_ACCOUNT_PASSWORD_POLICY_INPUT", + "UpdateAccountPasswordPolicyOutput": "UPDATE_ACCOUNT_PASSWORD_POLICY_OUTPUT", + "UpdateAssumeRolePolicyInput": "UPDATE_ASSUME_ROLE_POLICY_INPUT", + "UpdateAssumeRolePolicyOutput": "UPDATE_ASSUME_ROLE_POLICY_OUTPUT", + "UpdateDelegationRequestInput": "UPDATE_DELEGATION_REQUEST_INPUT", + "UpdateDelegationRequestOutput": "UPDATE_DELEGATION_REQUEST_OUTPUT", + "UpdateGroupInput": "UPDATE_GROUP_INPUT", + "UpdateGroupOutput": "UPDATE_GROUP_OUTPUT", + "UpdateLoginProfileInput": "UPDATE_LOGIN_PROFILE_INPUT", + "UpdateLoginProfileOutput": "UPDATE_LOGIN_PROFILE_OUTPUT", + "UpdateOpenIDConnectProviderThumbprintInput": "UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_INPUT", + "UpdateOpenIDConnectProviderThumbprintOutput": "UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT_OUTPUT", + "UpdateRoleDescriptionInput": "UPDATE_ROLE_DESCRIPTION_INPUT", + "UpdateRoleDescriptionOutput": "UPDATE_ROLE_DESCRIPTION_OUTPUT", + "UpdateRoleInput": "UPDATE_ROLE_INPUT", + "UpdateRoleOutput": "UPDATE_ROLE_OUTPUT", + "UpdateSAMLProviderInput": "UPDATE_SAML_PROVIDER_INPUT", + "UpdateSAMLProviderOutput": "UPDATE_SAML_PROVIDER_OUTPUT", + "UpdateServerCertificateInput": "UPDATE_SERVER_CERTIFICATE_INPUT", + "UpdateServerCertificateOutput": "UPDATE_SERVER_CERTIFICATE_OUTPUT", + "UpdateServiceSpecificCredentialInput": "UPDATE_SERVICE_SPECIFIC_CREDENTIAL_INPUT", + "UpdateServiceSpecificCredentialOutput": "UPDATE_SERVICE_SPECIFIC_CREDENTIAL_OUTPUT", + "UpdateSigningCertificateInput": "UPDATE_SIGNING_CERTIFICATE_INPUT", + "UpdateSigningCertificateOutput": "UPDATE_SIGNING_CERTIFICATE_OUTPUT", + "UpdateSSHPublicKeyInput": "UPDATE_SSH_PUBLIC_KEY_INPUT", + "UpdateSSHPublicKeyOutput": "UPDATE_SSH_PUBLIC_KEY_OUTPUT", + "UpdateUserInput": "UPDATE_USER_INPUT", + "UpdateUserOutput": "UPDATE_USER_OUTPUT", + "UploadServerCertificateInput": "UPLOAD_SERVER_CERTIFICATE_INPUT", + "UploadServerCertificateOutput": "UPLOAD_SERVER_CERTIFICATE_OUTPUT", + "UploadSigningCertificateInput": "UPLOAD_SIGNING_CERTIFICATE_INPUT", + "UploadSigningCertificateOutput": "UPLOAD_SIGNING_CERTIFICATE_OUTPUT", + "UploadSSHPublicKeyInput": "UPLOAD_SSH_PUBLIC_KEY_INPUT", + "UploadSSHPublicKeyOutput": "UPLOAD_SSH_PUBLIC_KEY_OUTPUT", + "User": "USER", + "UserDetail": "USER_DETAIL", + "VirtualMFADevice": "VIRTUAL_MFA_DEVICE", + }, + shape_names=frozenset( + { + "AcceptDelegationRequestInput", + "AcceptDelegationRequestOutput", + "AccessAdvisorUsageGranularityType", + "AccessDetail", + "AccessKey", + "AccessKeyLastUsed", + "AccessKeyMetadata", + "AccountNotManagementOrDelegatedAdministratorException", + "AcquireRoleInput", + "AcquireRoleOutput", + "AddClientIDToOpenIDConnectProviderInput", + "AddClientIDToOpenIDConnectProviderOutput", + "AddRoleToInstanceProfileInput", + "AddRoleToInstanceProfileOutput", + "AddUserToGroupInput", + "AddUserToGroupOutput", + "AssociateDelegationRequestInput", + "AssociateDelegationRequestOutput", + "AttachGroupPolicyInput", + "AttachGroupPolicyOutput", + "AttachRolePolicyInput", + "AttachRolePolicyOutput", + "AttachUserPolicyInput", + "AttachUserPolicyOutput", + "AttachedPermissionsBoundary", + "AttachedPolicy", + "AttachmentType", + "CallerIsNotManagementAccountException", + "ChangePasswordInput", + "ChangePasswordOutput", + "ConcurrentModificationException", + "ContextEntry", + "ContextKeyTypeEnum", + "CreateAccessKeyInput", + "CreateAccessKeyOutput", + "CreateAccountAliasInput", + "CreateAccountAliasOutput", + "CreateDelegationRequestInput", + "CreateDelegationRequestOutput", + "CreateGroupInput", + "CreateGroupOutput", + "CreateInstanceProfileInput", + "CreateInstanceProfileOutput", + "CreateLoginProfileInput", + "CreateLoginProfileOutput", + "CreateOpenIDConnectProviderInput", + "CreateOpenIDConnectProviderOutput", + "CreatePolicyInput", + "CreatePolicyOutput", + "CreatePolicyVersionInput", + "CreatePolicyVersionOutput", + "CreateRoleInput", + "CreateRoleOutput", + "CreateSAMLProviderInput", + "CreateSAMLProviderOutput", + "CreateServiceLinkedRoleInput", + "CreateServiceLinkedRoleOutput", + "CreateServiceSpecificCredentialInput", + "CreateServiceSpecificCredentialOutput", + "CreateUserInput", + "CreateUserOutput", + "CreateVirtualMFADeviceInput", + "CreateVirtualMFADeviceOutput", + "CredentialReportExpiredException", + "CredentialReportNotPresentException", + "CredentialReportNotReadyException", + "DeactivateMFADeviceInput", + "DeactivateMFADeviceOutput", + "DelegationPermission", + "DelegationRequest", + "DeleteAccessKeyInput", + "DeleteAccessKeyOutput", + "DeleteAccountAliasInput", + "DeleteAccountAliasOutput", + "DeleteAccountPasswordPolicyInput", + "DeleteAccountPasswordPolicyOutput", + "DeleteConflictException", + "DeleteGroupInput", + "DeleteGroupOutput", + "DeleteGroupPolicyInput", + "DeleteGroupPolicyOutput", + "DeleteInstanceProfileInput", + "DeleteInstanceProfileOutput", + "DeleteLoginProfileInput", + "DeleteLoginProfileOutput", + "DeleteOpenIDConnectProviderInput", + "DeleteOpenIDConnectProviderOutput", + "DeletePolicyInput", + "DeletePolicyOutput", + "DeletePolicyVersionInput", + "DeletePolicyVersionOutput", + "DeleteRoleInput", + "DeleteRoleOutput", + "DeleteRolePermissionsBoundaryInput", + "DeleteRolePermissionsBoundaryOutput", + "DeleteRolePolicyInput", + "DeleteRolePolicyOutput", + "DeleteSAMLProviderInput", + "DeleteSAMLProviderOutput", + "DeleteSSHPublicKeyInput", + "DeleteSSHPublicKeyOutput", + "DeleteServerCertificateInput", + "DeleteServerCertificateOutput", + "DeleteServiceLinkedRoleInput", + "DeleteServiceLinkedRoleOutput", + "DeleteServiceSpecificCredentialInput", + "DeleteServiceSpecificCredentialOutput", + "DeleteSigningCertificateInput", + "DeleteSigningCertificateOutput", + "DeleteUserInput", + "DeleteUserOutput", + "DeleteUserPermissionsBoundaryInput", + "DeleteUserPermissionsBoundaryOutput", + "DeleteUserPolicyInput", + "DeleteUserPolicyOutput", + "DeleteVirtualMFADeviceInput", + "DeleteVirtualMFADeviceOutput", + "DeletionTaskFailureReasonType", + "DeletionTaskStatusType", + "DetachGroupPolicyInput", + "DetachGroupPolicyOutput", + "DetachRolePolicyInput", + "DetachRolePolicyOutput", + "DetachUserPolicyInput", + "DetachUserPolicyOutput", + "DisableOrganizationsRootCredentialsManagementInput", + "DisableOrganizationsRootCredentialsManagementOutput", + "DisableOrganizationsRootSessionsInput", + "DisableOrganizationsRootSessionsOutput", + "DisableOutboundWebIdentityFederationInput", + "DisableOutboundWebIdentityFederationOutput", + "DuplicateCertificateException", + "DuplicateSSHPublicKeyException", + "EnableMFADeviceInput", + "EnableMFADeviceOutput", + "EnableOrganizationsRootCredentialsManagementInput", + "EnableOrganizationsRootCredentialsManagementOutput", + "EnableOrganizationsRootSessionsInput", + "EnableOrganizationsRootSessionsOutput", + "EnableOutboundWebIdentityFederationInput", + "EnableOutboundWebIdentityFederationOutput", + "EntityAlreadyExistsException", + "EntityDetails", + "EntityInfo", + "EntityTemporarilyUnmodifiableException", + "EntityType", + "ErrorDetails", + "EvaluationResult", + "FeatureDisabledException", + "FeatureEnabledException", + "FeatureType", + "GenerateCredentialReportInput", + "GenerateCredentialReportOutput", + "GenerateOrganizationsAccessReportInput", + "GenerateOrganizationsAccessReportOutput", + "GenerateServiceLastAccessedDetailsInput", + "GenerateServiceLastAccessedDetailsOutput", + "GetAccessKeyLastUsedInput", + "GetAccessKeyLastUsedOutput", + "GetAccountAuthorizationDetailsInput", + "GetAccountAuthorizationDetailsOutput", + "GetAccountPasswordPolicyInput", + "GetAccountPasswordPolicyOutput", + "GetAccountPropertiesInput", + "GetAccountPropertiesOutput", + "GetAccountSummaryInput", + "GetAccountSummaryOutput", + "GetContextKeysForCustomPolicyInput", + "GetContextKeysForCustomPolicyOutput", + "GetContextKeysForPrincipalPolicyInput", + "GetContextKeysForPrincipalPolicyOutput", + "GetCredentialReportInput", + "GetCredentialReportOutput", + "GetDelegationRequestInput", + "GetDelegationRequestOutput", + "GetGroupInput", + "GetGroupOutput", + "GetGroupPolicyInput", + "GetGroupPolicyOutput", + "GetHumanReadableSummaryInput", + "GetHumanReadableSummaryOutput", + "GetInstanceProfileInput", + "GetInstanceProfileOutput", + "GetLoginProfileInput", + "GetLoginProfileOutput", + "GetMFADeviceInput", + "GetMFADeviceOutput", + "GetOpenIDConnectProviderInput", + "GetOpenIDConnectProviderOutput", + "GetOrganizationsAccessReportInput", + "GetOrganizationsAccessReportOutput", + "GetOutboundWebIdentityFederationInfoInput", + "GetOutboundWebIdentityFederationInfoOutput", + "GetPolicyInput", + "GetPolicyOutput", + "GetPolicyVersionInput", + "GetPolicyVersionOutput", + "GetRoleInput", + "GetRoleOutput", + "GetRolePolicyInput", + "GetRolePolicyOutput", + "GetRoleTemplateVersionInput", + "GetRoleTemplateVersionOutput", + "GetSAMLProviderInput", + "GetSAMLProviderOutput", + "GetSSHPublicKeyInput", + "GetSSHPublicKeyOutput", + "GetServerCertificateInput", + "GetServerCertificateOutput", + "GetServiceLastAccessedDetailsInput", + "GetServiceLastAccessedDetailsOutput", + "GetServiceLastAccessedDetailsWithEntitiesInput", + "GetServiceLastAccessedDetailsWithEntitiesOutput", + "GetServiceLinkedRoleDeletionStatusInput", + "GetServiceLinkedRoleDeletionStatusOutput", + "GetUserInput", + "GetUserOutput", + "GetUserPolicyInput", + "GetUserPolicyOutput", + "Group", + "GroupDetail", + "InlinePolicy", + "InlinePolicyIdentifierType", + "InstanceProfile", + "InvalidAuthenticationCodeException", + "InvalidCertificateException", + "InvalidInputException", + "InvalidPublicKeyException", + "InvalidUserTypeException", + "KeyPairMismatchException", + "LimitExceededException", + "ListAccessKeysInput", + "ListAccessKeysOutput", + "ListAccountAliasesInput", + "ListAccountAliasesOutput", + "ListAttachedGroupPoliciesInput", + "ListAttachedGroupPoliciesOutput", + "ListAttachedRolePoliciesInput", + "ListAttachedRolePoliciesOutput", + "ListAttachedUserPoliciesInput", + "ListAttachedUserPoliciesOutput", + "ListDelegationRequestsInput", + "ListDelegationRequestsOutput", + "ListEntitiesForPolicyInput", + "ListEntitiesForPolicyOutput", + "ListGroupPoliciesInput", + "ListGroupPoliciesOutput", + "ListGroupsForUserInput", + "ListGroupsForUserOutput", + "ListGroupsInput", + "ListGroupsOutput", + "ListInstanceProfileTagsInput", + "ListInstanceProfileTagsOutput", + "ListInstanceProfilesForRoleInput", + "ListInstanceProfilesForRoleOutput", + "ListInstanceProfilesInput", + "ListInstanceProfilesOutput", + "ListMFADeviceTagsInput", + "ListMFADeviceTagsOutput", + "ListMFADevicesInput", + "ListMFADevicesOutput", + "ListOpenIDConnectProviderTagsInput", + "ListOpenIDConnectProviderTagsOutput", + "ListOpenIDConnectProvidersInput", + "ListOpenIDConnectProvidersOutput", + "ListOrganizationsFeaturesInput", + "ListOrganizationsFeaturesOutput", + "ListPoliciesGrantingServiceAccessEntry", + "ListPoliciesGrantingServiceAccessInput", + "ListPoliciesGrantingServiceAccessOutput", + "ListPoliciesInput", + "ListPoliciesOutput", + "ListPolicyTagsInput", + "ListPolicyTagsOutput", + "ListPolicyVersionsInput", + "ListPolicyVersionsOutput", + "ListRolePoliciesInput", + "ListRolePoliciesOutput", + "ListRoleTagsInput", + "ListRoleTagsOutput", + "ListRolesInput", + "ListRolesOutput", + "ListSAMLProviderTagsInput", + "ListSAMLProviderTagsOutput", + "ListSAMLProvidersInput", + "ListSAMLProvidersOutput", + "ListSSHPublicKeysInput", + "ListSSHPublicKeysOutput", + "ListServerCertificateTagsInput", + "ListServerCertificateTagsOutput", + "ListServerCertificatesInput", + "ListServerCertificatesOutput", + "ListServiceSpecificCredentialsInput", + "ListServiceSpecificCredentialsOutput", + "ListSigningCertificatesInput", + "ListSigningCertificatesOutput", + "ListUserPoliciesInput", + "ListUserPoliciesOutput", + "ListUserTagsInput", + "ListUserTagsOutput", + "ListUsersInput", + "ListUsersOutput", + "ListVirtualMFADevicesInput", + "ListVirtualMFADevicesOutput", + "LoginProfile", + "MFADevice", + "MalformedCertificateException", + "MalformedPolicyDocumentException", + "ManagedPolicyDetail", + "NameConflictException", + "NoSuchEntityException", + "OpenIDConnectProviderListEntry", + "OpenIdIdpCommunicationErrorException", + "OrderedOrganizationPolicyType", + "OrganizationNotFoundException", + "OrganizationNotInAllFeaturesModeException", + "OrganizationsDecisionDetail", + "ParameterDefinition", + "PasswordPolicy", + "PasswordPolicyViolationException", + "PermissionsBoundaryAttachmentType", + "PermissionsBoundaryDecisionDetail", + "Policy", + "PolicyDetail", + "PolicyEvaluationDecisionType", + "PolicyEvaluationException", + "PolicyGrantingServiceAccess", + "PolicyGroup", + "PolicyIdentifier", + "PolicyIdentifierPolicyType", + "PolicyNotAttachableException", + "PolicyParameter", + "PolicyParameterTypeEnum", + "PolicyRole", + "PolicySourceType", + "PolicyUsageType", + "PolicyUser", + "PolicyVersion", + "Position", + "PutAccountPropertiesInput", + "PutAccountPropertiesOutput", + "PutGroupPolicyInput", + "PutGroupPolicyOutput", + "PutRolePermissionsBoundaryInput", + "PutRolePermissionsBoundaryOutput", + "PutRolePolicyInput", + "PutRolePolicyOutput", + "PutUserPermissionsBoundaryInput", + "PutUserPermissionsBoundaryOutput", + "PutUserPolicyInput", + "PutUserPolicyOutput", + "RejectDelegationRequestInput", + "RejectDelegationRequestOutput", + "RemoveClientIDFromOpenIDConnectProviderInput", + "RemoveClientIDFromOpenIDConnectProviderOutput", + "RemoveRoleFromInstanceProfileInput", + "RemoveRoleFromInstanceProfileOutput", + "RemoveUserFromGroupInput", + "RemoveUserFromGroupOutput", + "ReplacementValueEntry", + "ReportFormatType", + "ReportGenerationLimitExceededException", + "ReportStateType", + "ResetServiceSpecificCredentialInput", + "ResetServiceSpecificCredentialOutput", + "ResourceSpecificResult", + "ResyncMFADeviceInput", + "ResyncMFADeviceOutput", + "Role", + "RoleDetail", + "RoleLastUsed", + "RoleModifiedException", + "RoleTemplateDisabledException", + "RoleTemplateVersion", + "RoleUsageType", + "SAMLPrivateKey", + "SAMLProviderListEntry", + "SSHPublicKey", + "SSHPublicKeyMetadata", + "SendDelegationTokenInput", + "SendDelegationTokenOutput", + "ServerCertificate", + "ServerCertificateMetadata", + "ServiceAccessNotEnabledException", + "ServiceFailureException", + "ServiceLastAccessed", + "ServiceNotSupportedException", + "ServiceSpecificCredential", + "ServiceSpecificCredentialMetadata", + "SetDefaultPolicyVersionInput", + "SetDefaultPolicyVersionOutput", + "SetSecurityTokenServicePreferencesInput", + "SetSecurityTokenServicePreferencesOutput", + "SigningCertificate", + "SimulateCustomPolicyInput", + "SimulateCustomPolicyOutput", + "SimulatePrincipalPolicyInput", + "SimulatePrincipalPolicyOutput", + "SourceRoleTemplate", + "Statement", + "Tag", + "TagInstanceProfileInput", + "TagInstanceProfileOutput", + "TagMFADeviceInput", + "TagMFADeviceOutput", + "TagOpenIDConnectProviderInput", + "TagOpenIDConnectProviderOutput", + "TagPolicyInput", + "TagPolicyOutput", + "TagRoleInput", + "TagRoleOutput", + "TagSAMLProviderInput", + "TagSAMLProviderOutput", + "TagServerCertificateInput", + "TagServerCertificateOutput", + "TagTemplate", + "TagUserInput", + "TagUserOutput", + "TrackedActionLastAccessed", + "UnmodifiableEntityException", + "UnrecognizedPublicKeyEncodingException", + "UntagInstanceProfileInput", + "UntagInstanceProfileOutput", + "UntagMFADeviceInput", + "UntagMFADeviceOutput", + "UntagOpenIDConnectProviderInput", + "UntagOpenIDConnectProviderOutput", + "UntagPolicyInput", + "UntagPolicyOutput", + "UntagRoleInput", + "UntagRoleOutput", + "UntagSAMLProviderInput", + "UntagSAMLProviderOutput", + "UntagServerCertificateInput", + "UntagServerCertificateOutput", + "UntagUserInput", + "UntagUserOutput", + "UpdateAccessKeyInput", + "UpdateAccessKeyOutput", + "UpdateAccountPasswordPolicyInput", + "UpdateAccountPasswordPolicyOutput", + "UpdateAssumeRolePolicyInput", + "UpdateAssumeRolePolicyOutput", + "UpdateDelegationRequestInput", + "UpdateDelegationRequestOutput", + "UpdateGroupInput", + "UpdateGroupOutput", + "UpdateLoginProfileInput", + "UpdateLoginProfileOutput", + "UpdateOpenIDConnectProviderThumbprintInput", + "UpdateOpenIDConnectProviderThumbprintOutput", + "UpdateRoleDescriptionInput", + "UpdateRoleDescriptionOutput", + "UpdateRoleInput", + "UpdateRoleOutput", + "UpdateSAMLProviderInput", + "UpdateSAMLProviderOutput", + "UpdateSSHPublicKeyInput", + "UpdateSSHPublicKeyOutput", + "UpdateServerCertificateInput", + "UpdateServerCertificateOutput", + "UpdateServiceSpecificCredentialInput", + "UpdateServiceSpecificCredentialOutput", + "UpdateSigningCertificateInput", + "UpdateSigningCertificateOutput", + "UpdateUserInput", + "UpdateUserOutput", + "UploadSSHPublicKeyInput", + "UploadSSHPublicKeyOutput", + "UploadServerCertificateInput", + "UploadServerCertificateOutput", + "UploadSigningCertificateInput", + "UploadSigningCertificateOutput", + "User", + "UserDetail", + "VirtualMFADevice", + "assertionEncryptionModeType", + "assignmentStatusType", + "encodingType", + "globalEndpointTokenVersion", + "jobStatusType", + "managedByTypeType", + "parameterTypeType", + "permissionCheckResultType", + "permissionCheckStatusType", + "policyOwnerEntityType", + "policyScopeType", + "policyType", + "sortKeyType", + "stateType", + "statusType", + "summaryKeyType", + "summaryStateType", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ACCEPT_DELEGATION_REQUEST", + "ACQUIRE_ROLE", + "ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER", + "ADD_ROLE_TO_INSTANCE_PROFILE", + "ADD_USER_TO_GROUP", + "ASSOCIATE_DELEGATION_REQUEST", + "ATTACH_GROUP_POLICY", + "ATTACH_ROLE_POLICY", + "ATTACH_USER_POLICY", + "CHANGE_PASSWORD", + "CREATE_ACCESS_KEY", + "CREATE_ACCOUNT_ALIAS", + "CREATE_DELEGATION_REQUEST", + "CREATE_GROUP", + "CREATE_INSTANCE_PROFILE", + "CREATE_LOGIN_PROFILE", + "CREATE_OPEN_ID_CONNECT_PROVIDER", + "CREATE_POLICY", + "CREATE_POLICY_VERSION", + "CREATE_ROLE", + "CREATE_SAML_PROVIDER", + "CREATE_SERVICE_LINKED_ROLE", + "CREATE_SERVICE_SPECIFIC_CREDENTIAL", + "CREATE_USER", + "CREATE_VIRTUAL_MFA_DEVICE", + "DEACTIVATE_MFA_DEVICE", + "DELETE_ACCESS_KEY", + "DELETE_ACCOUNT_ALIAS", + "DELETE_ACCOUNT_PASSWORD_POLICY", + "DELETE_GROUP", + "DELETE_GROUP_POLICY", + "DELETE_INSTANCE_PROFILE", + "DELETE_LOGIN_PROFILE", + "DELETE_OPEN_ID_CONNECT_PROVIDER", + "DELETE_POLICY", + "DELETE_POLICY_VERSION", + "DELETE_ROLE", + "DELETE_ROLE_PERMISSIONS_BOUNDARY", + "DELETE_ROLE_POLICY", + "DELETE_SAML_PROVIDER", + "DELETE_SERVER_CERTIFICATE", + "DELETE_SERVICE_LINKED_ROLE", + "DELETE_SERVICE_SPECIFIC_CREDENTIAL", + "DELETE_SIGNING_CERTIFICATE", + "DELETE_SSH_PUBLIC_KEY", + "DELETE_USER", + "DELETE_USER_PERMISSIONS_BOUNDARY", + "DELETE_USER_POLICY", + "DELETE_VIRTUAL_MFA_DEVICE", + "DETACH_GROUP_POLICY", + "DETACH_ROLE_POLICY", + "DETACH_USER_POLICY", + "DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT", + "DISABLE_ORGANIZATIONS_ROOT_SESSIONS", + "DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION", + "ENABLE_MFA_DEVICE", + "ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT", + "ENABLE_ORGANIZATIONS_ROOT_SESSIONS", + "ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION", + "GENERATE_CREDENTIAL_REPORT", + "GENERATE_ORGANIZATIONS_ACCESS_REPORT", + "GENERATE_SERVICE_LAST_ACCESSED_DETAILS", + "GET_ACCESS_KEY_LAST_USED", + "GET_ACCOUNT_AUTHORIZATION_DETAILS", + "GET_ACCOUNT_PASSWORD_POLICY", + "GET_ACCOUNT_PROPERTIES", + "GET_ACCOUNT_SUMMARY", + "GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY", + "GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY", + "GET_CREDENTIAL_REPORT", + "GET_DELEGATION_REQUEST", + "GET_GROUP", + "GET_GROUP_POLICY", + "GET_HUMAN_READABLE_SUMMARY", + "GET_INSTANCE_PROFILE", + "GET_LOGIN_PROFILE", + "GET_MFA_DEVICE", + "GET_OPEN_ID_CONNECT_PROVIDER", + "GET_ORGANIZATIONS_ACCESS_REPORT", + "GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO", + "GET_POLICY", + "GET_POLICY_VERSION", + "GET_ROLE", + "GET_ROLE_POLICY", + "GET_ROLE_TEMPLATE_VERSION", + "GET_SAML_PROVIDER", + "GET_SERVER_CERTIFICATE", + "GET_SERVICE_LAST_ACCESSED_DETAILS", + "GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES", + "GET_SERVICE_LINKED_ROLE_DELETION_STATUS", + "GET_SSH_PUBLIC_KEY", + "GET_USER", + "GET_USER_POLICY", + "LIST_ACCESS_KEYS", + "LIST_ACCOUNT_ALIASES", + "LIST_ATTACHED_GROUP_POLICIES", + "LIST_ATTACHED_ROLE_POLICIES", + "LIST_ATTACHED_USER_POLICIES", + "LIST_DELEGATION_REQUESTS", + "LIST_ENTITIES_FOR_POLICY", + "LIST_GROUP_POLICIES", + "LIST_GROUPS", + "LIST_GROUPS_FOR_USER", + "LIST_INSTANCE_PROFILES", + "LIST_INSTANCE_PROFILES_FOR_ROLE", + "LIST_INSTANCE_PROFILE_TAGS", + "LIST_MFA_DEVICES", + "LIST_MFA_DEVICE_TAGS", + "LIST_OPEN_ID_CONNECT_PROVIDERS", + "LIST_OPEN_ID_CONNECT_PROVIDER_TAGS", + "LIST_ORGANIZATIONS_FEATURES", + "LIST_POLICIES", + "LIST_POLICIES_GRANTING_SERVICE_ACCESS", + "LIST_POLICY_TAGS", + "LIST_POLICY_VERSIONS", + "LIST_ROLE_POLICIES", + "LIST_ROLES", + "LIST_ROLE_TAGS", + "LIST_SAML_PROVIDERS", + "LIST_SAML_PROVIDER_TAGS", + "LIST_SERVER_CERTIFICATES", + "LIST_SERVER_CERTIFICATE_TAGS", + "LIST_SERVICE_SPECIFIC_CREDENTIALS", + "LIST_SIGNING_CERTIFICATES", + "LIST_SSH_PUBLIC_KEYS", + "LIST_USER_POLICIES", + "LIST_USERS", + "LIST_USER_TAGS", + "LIST_VIRTUAL_MFA_DEVICES", + "PUT_ACCOUNT_PROPERTIES", + "PUT_GROUP_POLICY", + "PUT_ROLE_PERMISSIONS_BOUNDARY", + "PUT_ROLE_POLICY", + "PUT_USER_PERMISSIONS_BOUNDARY", + "PUT_USER_POLICY", + "REJECT_DELEGATION_REQUEST", + "REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER", + "REMOVE_ROLE_FROM_INSTANCE_PROFILE", + "REMOVE_USER_FROM_GROUP", + "RESET_SERVICE_SPECIFIC_CREDENTIAL", + "RESYNC_MFA_DEVICE", + "SEND_DELEGATION_TOKEN", + "SET_DEFAULT_POLICY_VERSION", + "SET_SECURITY_TOKEN_SERVICE_PREFERENCES", + "SIMULATE_CUSTOM_POLICY", + "SIMULATE_PRINCIPAL_POLICY", + "TAG_INSTANCE_PROFILE", + "TAG_MFA_DEVICE", + "TAG_OPEN_ID_CONNECT_PROVIDER", + "TAG_POLICY", + "TAG_ROLE", + "TAG_SAML_PROVIDER", + "TAG_SERVER_CERTIFICATE", + "TAG_USER", + "UNTAG_INSTANCE_PROFILE", + "UNTAG_MFA_DEVICE", + "UNTAG_OPEN_ID_CONNECT_PROVIDER", + "UNTAG_POLICY", + "UNTAG_ROLE", + "UNTAG_SAML_PROVIDER", + "UNTAG_SERVER_CERTIFICATE", + "UNTAG_USER", + "UPDATE_ACCESS_KEY", + "UPDATE_ACCOUNT_PASSWORD_POLICY", + "UPDATE_ASSUME_ROLE_POLICY", + "UPDATE_DELEGATION_REQUEST", + "UPDATE_GROUP", + "UPDATE_LOGIN_PROFILE", + "UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT", + "UPDATE_ROLE", + "UPDATE_ROLE_DESCRIPTION", + "UPDATE_SAML_PROVIDER", + "UPDATE_SERVER_CERTIFICATE", + "UPDATE_SERVICE_SPECIFIC_CREDENTIAL", + "UPDATE_SIGNING_CERTIFICATE", + "UPDATE_SSH_PUBLIC_KEY", + "UPDATE_USER", + "UPLOAD_SERVER_CERTIFICATE", + "UPLOAD_SIGNING_CERTIFICATE", + "UPLOAD_SSH_PUBLIC_KEY", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ACCEPT_DELEGATION_REQUEST"] = ( + "ACCEPT_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ACQUIRE_ROLE"] = ( + "ACQUIRE_ROLE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NameConflictException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#RoleModifiedException", + "com.amazonaws.iam#RoleTemplateDisabledException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER"] = ( + "ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_ROLE_TO_INSTANCE_PROFILE"] = ( + "ADD_ROLE_TO_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_USER_TO_GROUP"] = ( + "ADD_USER_TO_GROUP", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ASSOCIATE_DELEGATION_REQUEST"] = ( + "ASSOCIATE_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_GROUP_POLICY"] = ( + "ATTACH_GROUP_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyNotAttachableException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_ROLE_POLICY"] = ( + "ATTACH_ROLE_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyNotAttachableException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ATTACH_USER_POLICY"] = ( + "ATTACH_USER_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyNotAttachableException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CHANGE_PASSWORD"] = ( + "CHANGE_PASSWORD", + ( + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#InvalidUserTypeException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PasswordPolicyViolationException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ACCESS_KEY"] = ( + "CREATE_ACCESS_KEY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ACCOUNT_ALIAS"] = ( + "CREATE_ACCOUNT_ALIAS", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DELEGATION_REQUEST"] = ( + "CREATE_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_GROUP"] = ( + "CREATE_GROUP", + ( + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INSTANCE_PROFILE"] = ( + "CREATE_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_LOGIN_PROFILE"] = ( + "CREATE_LOGIN_PROFILE", + ( + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PasswordPolicyViolationException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_OPEN_ID_CONNECT_PROVIDER"] = ( + "CREATE_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#OpenIdIdpCommunicationErrorException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_POLICY"] = ( + "CREATE_POLICY", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_POLICY_VERSION"] = ( + "CREATE_POLICY_VERSION", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ROLE"] = ( + "CREATE_ROLE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SAML_PROVIDER"] = ( + "CREATE_SAML_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SERVICE_LINKED_ROLE"] = ( + "CREATE_SERVICE_LINKED_ROLE", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SERVICE_SPECIFIC_CREDENTIAL"] = ( + "CREATE_SERVICE_SPECIFIC_CREDENTIAL", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceNotSupportedException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_USER"] = ( + "CREATE_USER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_VIRTUAL_MFA_DEVICE"] = ( + "CREATE_VIRTUAL_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEACTIVATE_MFA_DEVICE"] = ( + "DEACTIVATE_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACCESS_KEY"] = ( + "DELETE_ACCESS_KEY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACCOUNT_ALIAS"] = ( + "DELETE_ACCOUNT_ALIAS", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ACCOUNT_PASSWORD_POLICY"] = ( + "DELETE_ACCOUNT_PASSWORD_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_GROUP"] = ( + "DELETE_GROUP", + ( + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_GROUP_POLICY"] = ( + "DELETE_GROUP_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_INSTANCE_PROFILE"] = ( + "DELETE_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_LOGIN_PROFILE"] = ( + "DELETE_LOGIN_PROFILE", + ( + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_OPEN_ID_CONNECT_PROVIDER"] = ( + "DELETE_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_POLICY"] = ( + "DELETE_POLICY", + ( + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_POLICY_VERSION"] = ( + "DELETE_POLICY_VERSION", + ( + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROLE"] = ( + "DELETE_ROLE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROLE_PERMISSIONS_BOUNDARY"] = ( + "DELETE_ROLE_PERMISSIONS_BOUNDARY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ROLE_POLICY"] = ( + "DELETE_ROLE_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SAML_PROVIDER"] = ( + "DELETE_SAML_PROVIDER", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SERVER_CERTIFICATE"] = ( + "DELETE_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SERVICE_LINKED_ROLE"] = ( + "DELETE_SERVICE_LINKED_ROLE", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SERVICE_SPECIFIC_CREDENTIAL"] = ( + "DELETE_SERVICE_SPECIFIC_CREDENTIAL", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SIGNING_CERTIFICATE"] = ( + "DELETE_SIGNING_CERTIFICATE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_SSH_PUBLIC_KEY"] = ( + "DELETE_SSH_PUBLIC_KEY", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_USER"] = ( + "DELETE_USER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_USER_PERMISSIONS_BOUNDARY"] = ( + "DELETE_USER_PERMISSIONS_BOUNDARY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_USER_POLICY"] = ( + "DELETE_USER_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_VIRTUAL_MFA_DEVICE"] = ( + "DELETE_VIRTUAL_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#DeleteConflictException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_GROUP_POLICY"] = ( + "DETACH_GROUP_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_ROLE_POLICY"] = ( + "DETACH_ROLE_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DETACH_USER_POLICY"] = ( + "DETACH_USER_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT"] = ( + "DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT", + ( + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException", + "com.amazonaws.iam#OrganizationNotFoundException", + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException", + "com.amazonaws.iam#ServiceAccessNotEnabledException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_ORGANIZATIONS_ROOT_SESSIONS"] = ( + "DISABLE_ORGANIZATIONS_ROOT_SESSIONS", + ( + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException", + "com.amazonaws.iam#OrganizationNotFoundException", + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException", + "com.amazonaws.iam#ServiceAccessNotEnabledException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION"] = ( + "DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION", + ("com.amazonaws.iam#FeatureDisabledException",), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_MFA_DEVICE"] = ( + "ENABLE_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#InvalidAuthenticationCodeException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT"] = ( + "ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT", + ( + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException", + "com.amazonaws.iam#CallerIsNotManagementAccountException", + "com.amazonaws.iam#OrganizationNotFoundException", + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException", + "com.amazonaws.iam#ServiceAccessNotEnabledException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ORGANIZATIONS_ROOT_SESSIONS"] = ( + "ENABLE_ORGANIZATIONS_ROOT_SESSIONS", + ( + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException", + "com.amazonaws.iam#CallerIsNotManagementAccountException", + "com.amazonaws.iam#OrganizationNotFoundException", + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException", + "com.amazonaws.iam#ServiceAccessNotEnabledException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION"] = ( + "ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION", + ("com.amazonaws.iam#FeatureEnabledException",), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_CREDENTIAL_REPORT"] = ( + "GENERATE_CREDENTIAL_REPORT", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_ORGANIZATIONS_ACCESS_REPORT"] = ( + "GENERATE_ORGANIZATIONS_ACCESS_REPORT", + ("com.amazonaws.iam#ReportGenerationLimitExceededException",), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_SERVICE_LAST_ACCESSED_DETAILS"] = ( + "GENERATE_SERVICE_LAST_ACCESSED_DETAILS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCESS_KEY_LAST_USED"] = ( + "GET_ACCESS_KEY_LAST_USED", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCOUNT_AUTHORIZATION_DETAILS"] = ( + "GET_ACCOUNT_AUTHORIZATION_DETAILS", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCOUNT_PASSWORD_POLICY"] = ( + "GET_ACCOUNT_PASSWORD_POLICY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCOUNT_PROPERTIES"] = ( + "GET_ACCOUNT_PROPERTIES", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ACCOUNT_SUMMARY"] = ( + "GET_ACCOUNT_SUMMARY", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY"] = ( + "GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY", + ("com.amazonaws.iam#InvalidInputException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY"] = ( + "GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_CREDENTIAL_REPORT"] = ( + "GET_CREDENTIAL_REPORT", + ( + "com.amazonaws.iam#CredentialReportExpiredException", + "com.amazonaws.iam#CredentialReportNotPresentException", + "com.amazonaws.iam#CredentialReportNotReadyException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_DELEGATION_REQUEST"] = ( + "GET_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_GROUP"] = ( + "GET_GROUP", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_GROUP_POLICY"] = ( + "GET_GROUP_POLICY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_HUMAN_READABLE_SUMMARY"] = ( + "GET_HUMAN_READABLE_SUMMARY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_INSTANCE_PROFILE"] = ( + "GET_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_LOGIN_PROFILE"] = ( + "GET_LOGIN_PROFILE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_MFA_DEVICE"] = ( + "GET_MFA_DEVICE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OPEN_ID_CONNECT_PROVIDER"] = ( + "GET_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ORGANIZATIONS_ACCESS_REPORT"] = ( + "GET_ORGANIZATIONS_ACCESS_REPORT", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO"] = ( + "GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO", + ("com.amazonaws.iam#FeatureDisabledException",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_POLICY"] = ( + "GET_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_POLICY_VERSION"] = ( + "GET_POLICY_VERSION", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROLE"] = ( + "GET_ROLE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROLE_POLICY"] = ( + "GET_ROLE_POLICY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_ROLE_TEMPLATE_VERSION"] = ( + "GET_ROLE_TEMPLATE_VERSION", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SAML_PROVIDER"] = ( + "GET_SAML_PROVIDER", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SERVER_CERTIFICATE"] = ( + "GET_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SERVICE_LAST_ACCESSED_DETAILS"] = ( + "GET_SERVICE_LAST_ACCESSED_DETAILS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES"] = ( + "GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SERVICE_LINKED_ROLE_DELETION_STATUS"] = ( + "GET_SERVICE_LINKED_ROLE_DELETION_STATUS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SSH_PUBLIC_KEY"] = ( + "GET_SSH_PUBLIC_KEY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#UnrecognizedPublicKeyEncodingException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_USER"] = ( + "GET_USER", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_USER_POLICY"] = ( + "GET_USER_POLICY", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACCESS_KEYS"] = ( + "LIST_ACCESS_KEYS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ACCOUNT_ALIASES"] = ( + "LIST_ACCOUNT_ALIASES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ATTACHED_GROUP_POLICIES"] = ( + "LIST_ATTACHED_GROUP_POLICIES", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ATTACHED_ROLE_POLICIES"] = ( + "LIST_ATTACHED_ROLE_POLICIES", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ATTACHED_USER_POLICIES"] = ( + "LIST_ATTACHED_USER_POLICIES", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_DELEGATION_REQUESTS"] = ( + "LIST_DELEGATION_REQUESTS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ENTITIES_FOR_POLICY"] = ( + "LIST_ENTITIES_FOR_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GROUP_POLICIES"] = ( + "LIST_GROUP_POLICIES", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GROUPS"] = ( + "LIST_GROUPS", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GROUPS_FOR_USER"] = ( + "LIST_GROUPS_FOR_USER", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_INSTANCE_PROFILES"] = ( + "LIST_INSTANCE_PROFILES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_INSTANCE_PROFILES_FOR_ROLE"] = ( + "LIST_INSTANCE_PROFILES_FOR_ROLE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_INSTANCE_PROFILE_TAGS"] = ( + "LIST_INSTANCE_PROFILE_TAGS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_MFA_DEVICES"] = ( + "LIST_MFA_DEVICES", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_MFA_DEVICE_TAGS"] = ( + "LIST_MFA_DEVICE_TAGS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OPEN_ID_CONNECT_PROVIDERS"] = ( + "LIST_OPEN_ID_CONNECT_PROVIDERS", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OPEN_ID_CONNECT_PROVIDER_TAGS"] = ( + "LIST_OPEN_ID_CONNECT_PROVIDER_TAGS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ORGANIZATIONS_FEATURES"] = ( + "LIST_ORGANIZATIONS_FEATURES", + ( + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException", + "com.amazonaws.iam#OrganizationNotFoundException", + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException", + "com.amazonaws.iam#ServiceAccessNotEnabledException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_POLICIES"] = ( + "LIST_POLICIES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_POLICIES_GRANTING_SERVICE_ACCESS"] = ( + "LIST_POLICIES_GRANTING_SERVICE_ACCESS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_POLICY_TAGS"] = ( + "LIST_POLICY_TAGS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_POLICY_VERSIONS"] = ( + "LIST_POLICY_VERSIONS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ROLE_POLICIES"] = ( + "LIST_ROLE_POLICIES", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ROLES"] = ( + "LIST_ROLES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ROLE_TAGS"] = ( + "LIST_ROLE_TAGS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SAML_PROVIDERS"] = ( + "LIST_SAML_PROVIDERS", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SAML_PROVIDER_TAGS"] = ( + "LIST_SAML_PROVIDER_TAGS", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVER_CERTIFICATES"] = ( + "LIST_SERVER_CERTIFICATES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVER_CERTIFICATE_TAGS"] = ( + "LIST_SERVER_CERTIFICATE_TAGS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SERVICE_SPECIFIC_CREDENTIALS"] = ( + "LIST_SERVICE_SPECIFIC_CREDENTIALS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceNotSupportedException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SIGNING_CERTIFICATES"] = ( + "LIST_SIGNING_CERTIFICATES", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SSH_PUBLIC_KEYS"] = ( + "LIST_SSH_PUBLIC_KEYS", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_USER_POLICIES"] = ( + "LIST_USER_POLICIES", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_USERS"] = ( + "LIST_USERS", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_USER_TAGS"] = ( + "LIST_USER_TAGS", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_VIRTUAL_MFA_DEVICES"] = ( + "LIST_VIRTUAL_MFA_DEVICES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ACCOUNT_PROPERTIES"] = ( + "PUT_ACCOUNT_PROPERTIES", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_GROUP_POLICY"] = ( + "PUT_GROUP_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ROLE_PERMISSIONS_BOUNDARY"] = ( + "PUT_ROLE_PERMISSIONS_BOUNDARY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyNotAttachableException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_ROLE_POLICY"] = ( + "PUT_ROLE_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_USER_PERMISSIONS_BOUNDARY"] = ( + "PUT_USER_PERMISSIONS_BOUNDARY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyNotAttachableException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_USER_POLICY"] = ( + "PUT_USER_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REJECT_DELEGATION_REQUEST"] = ( + "REJECT_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER"] = ( + "REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_ROLE_FROM_INSTANCE_PROFILE"] = ( + "REMOVE_ROLE_FROM_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_USER_FROM_GROUP"] = ( + "REMOVE_USER_FROM_GROUP", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_SERVICE_SPECIFIC_CREDENTIAL"] = ( + "RESET_SERVICE_SPECIFIC_CREDENTIAL", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["RESYNC_MFA_DEVICE"] = ( + "RESYNC_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidAuthenticationCodeException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SEND_DELEGATION_TOKEN"] = ( + "SEND_DELEGATION_TOKEN", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SET_DEFAULT_POLICY_VERSION"] = ( + "SET_DEFAULT_POLICY_VERSION", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SET_SECURITY_TOKEN_SERVICE_PREFERENCES"] = ( + "SET_SECURITY_TOKEN_SERVICE_PREFERENCES", + ("com.amazonaws.iam#ServiceFailureException",), + ("aws.auth#sigv4",), +) + +_operation_data["SIMULATE_CUSTOM_POLICY"] = ( + "SIMULATE_CUSTOM_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#PolicyEvaluationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SIMULATE_PRINCIPAL_POLICY"] = ( + "SIMULATE_PRINCIPAL_POLICY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PolicyEvaluationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_INSTANCE_PROFILE"] = ( + "TAG_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_MFA_DEVICE"] = ( + "TAG_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_OPEN_ID_CONNECT_PROVIDER"] = ( + "TAG_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_POLICY"] = ( + "TAG_POLICY", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_ROLE"] = ( + "TAG_ROLE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_SAML_PROVIDER"] = ( + "TAG_SAML_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_SERVER_CERTIFICATE"] = ( + "TAG_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_USER"] = ( + "TAG_USER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_INSTANCE_PROFILE"] = ( + "UNTAG_INSTANCE_PROFILE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_MFA_DEVICE"] = ( + "UNTAG_MFA_DEVICE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_OPEN_ID_CONNECT_PROVIDER"] = ( + "UNTAG_OPEN_ID_CONNECT_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_POLICY"] = ( + "UNTAG_POLICY", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_ROLE"] = ( + "UNTAG_ROLE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_SAML_PROVIDER"] = ( + "UNTAG_SAML_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_SERVER_CERTIFICATE"] = ( + "UNTAG_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_USER"] = ( + "UNTAG_USER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ACCESS_KEY"] = ( + "UPDATE_ACCESS_KEY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ACCOUNT_PASSWORD_POLICY"] = ( + "UPDATE_ACCOUNT_PASSWORD_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ASSUME_ROLE_POLICY"] = ( + "UPDATE_ASSUME_ROLE_POLICY", + ( + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedPolicyDocumentException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_DELEGATION_REQUEST"] = ( + "UPDATE_DELEGATION_REQUEST", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_GROUP"] = ( + "UPDATE_GROUP", + ( + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_LOGIN_PROFILE"] = ( + "UPDATE_LOGIN_PROFILE", + ( + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#PasswordPolicyViolationException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT"] = ( + "UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ROLE"] = ( + "UPDATE_ROLE", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ROLE_DESCRIPTION"] = ( + "UPDATE_ROLE_DESCRIPTION", + ( + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + "com.amazonaws.iam#UnmodifiableEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SAML_PROVIDER"] = ( + "UPDATE_SAML_PROVIDER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SERVER_CERTIFICATE"] = ( + "UPDATE_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SERVICE_SPECIFIC_CREDENTIAL"] = ( + "UPDATE_SERVICE_SPECIFIC_CREDENTIAL", + ("com.amazonaws.iam#NoSuchEntityException",), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SIGNING_CERTIFICATE"] = ( + "UPDATE_SIGNING_CERTIFICATE", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SSH_PUBLIC_KEY"] = ( + "UPDATE_SSH_PUBLIC_KEY", + ( + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#NoSuchEntityException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_USER"] = ( + "UPDATE_USER", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPLOAD_SERVER_CERTIFICATE"] = ( + "UPLOAD_SERVER_CERTIFICATE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidInputException", + "com.amazonaws.iam#KeyPairMismatchException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedCertificateException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPLOAD_SIGNING_CERTIFICATE"] = ( + "UPLOAD_SIGNING_CERTIFICATE", + ( + "com.amazonaws.iam#ConcurrentModificationException", + "com.amazonaws.iam#DuplicateCertificateException", + "com.amazonaws.iam#EntityAlreadyExistsException", + "com.amazonaws.iam#InvalidCertificateException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#MalformedCertificateException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#ServiceFailureException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPLOAD_SSH_PUBLIC_KEY"] = ( + "UPLOAD_SSH_PUBLIC_KEY", + ( + "com.amazonaws.iam#DuplicateSSHPublicKeyException", + "com.amazonaws.iam#InvalidPublicKeyException", + "com.amazonaws.iam#LimitExceededException", + "com.amazonaws.iam#NoSuchEntityException", + "com.amazonaws.iam#UnrecognizedPublicKeyEncodingException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/models.pyi b/clients/aws-sdk-iam/src/aws_sdk_iam/models.pyi new file mode 100644 index 00000000..c70079f7 --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/models.pyi @@ -0,0 +1,12832 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AcceptDelegationRequestInput(_SerdeShape): + """Dataclass for AcceptDelegationRequestInput structure.""" + + delegation_request_id: str | None = ... + """The unique identifier of the delegation request to accept.""" + +@dataclass(kw_only=True) +class AcceptDelegationRequestOutput(_SerdeShape): + """Dataclass for AcceptDelegationRequestOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AccessAdvisorUsageGranularityType(UnknownEnumMixin, StrEnum): + SERVICE_LEVEL = "SERVICE_LEVEL" + ACTION_LEVEL = "ACTION_LEVEL" + +@dataclass(kw_only=True) +class AccessDetail(_SerdeShape): + """ + An object that contains details about when a principal in the reported + Organizations entity last attempted to access an Amazon Web Services + service. A principal can be an IAM user, an IAM role, or the Amazon Web + Services account root user within the reported Organizations entity. + + This data type is a response element in the + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html) + operation. + """ + + service_name: str + """The name of the service in which access was attempted.""" + service_namespace: str + """ + The namespace of the service in which access was attempted. + + To learn the service namespace of a service, see [Actions, resources, + and condition keys for Amazon Web Services + services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) + in the *Service Authorization Reference*. Choose the name of the service + to view details for that service. In the first paragraph, find the + service prefix. For example, `(service prefix: a4b)`. For more + information about service namespaces, see [Amazon Web Services service + namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces) + in the *Amazon Web Services General Reference*. + """ + region: str | None = ... + """ + The Region where the last service access attempt occurred. + + This field is null if no principals in the reported Organizations entity + attempted to access the service within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + entity_path: str | None = ... + """ + The path of the Organizations entity (root, organizational unit, or + account) from which an authenticated principal last attempted to access + the service. Amazon Web Services does not report unauthenticated + requests. + + This field is null if no principals (IAM users, IAM roles, or root user) + in the reported Organizations entity attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + last_authenticated_time: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when an authenticated principal + most recently attempted to access the service. Amazon Web Services does + not report unauthenticated requests. + + This field is null if no principals in the reported Organizations entity + attempted to access the service within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + total_authenticated_entities: int | None = ... + """ + The number of accounts with authenticated principals (root user, IAM + users, and IAM roles) that attempted to access the service in the + tracking period. + """ + +@dataclass(kw_only=True) +class AccessKey(_SerdeShape): + """ + Contains information about an Amazon Web Services access key. + + This data type is used as a response element in the + [CreateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) + and + [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) + operations. + + Note: + The `SecretAccessKey` value is returned only in response to + [CreateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html). + You can get a secret access key only when you first create an access + key; you cannot recover the secret access key later. If you lose a + secret access key, you must create a new access key. + """ + + user_name: str + """The name of the IAM user that the access key is associated with.""" + access_key_id: str + """The ID for this access key.""" + status: str + """ + The status of the access key. `Active` means that the key is valid for + API calls, while `Inactive` means it is not. + """ + secret_access_key: str + """The secret key used to sign requests.""" + create_date: datetime | None = ... + """The date when the access key was created.""" + +@dataclass(kw_only=True) +class AccessKeyLastUsed(_SerdeShape): + """ + Contains information about the last time an Amazon Web Services access + key was used since IAM began tracking this information on April 22, + 2015. + + This data type is used as a response element in the + [GetAccessKeyLastUsed](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) + operation. + """ + + last_used_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the access key was most + recently used. This field is null in the following situations: + + - The user does not have an access key. + + - An access key exists but has not been used since IAM began tracking + this information. + + - There is no sign-in data associated with the user. + """ + service_name: str + """ + The name of the Amazon Web Services service with which this access key + was most recently used. The value of this field is \"N/A\" in the + following situations: + + - The user does not have an access key. + + - An access key exists but has not been used since IAM started tracking + this information. + + - There is no sign-in data associated with the user. + """ + region: str + """ + The Amazon Web Services Region where this access key was most recently + used. The value for this field is \"N/A\" in the following situations: + + - The user does not have an access key. + + - An access key exists but has not been used since IAM began tracking + this information. + + - There is no sign-in data associated with the user. + + For more information about Amazon Web Services Regions, see [Regions and + endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) in + the Amazon Web Services General Reference. + """ + +@dataclass(kw_only=True) +class AccessKeyMetadata(_SerdeShape): + """ + Contains information about an Amazon Web Services access key, without + its secret key. + + This data type is used as a response element in the + [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) + operation. + """ + + user_name: str | None = ... + """The name of the IAM user that the key is associated with.""" + access_key_id: str | None = ... + """The ID for this access key.""" + status: str | None = ... + """ + The status of the access key. `Active` means that the key is valid for + API calls; `Inactive` means it is not. + """ + create_date: datetime | None = ... + """The date when the access key was created.""" + +@dataclass(kw_only=True) +class AccountNotManagementOrDelegatedAdministratorException(ServiceError, _SerdeShape): + """ + The request was rejected because the account making the request is not + the management account or delegated administrator account for + [centralized root + access](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AcquireRoleInput(_SerdeShape): + """Dataclass for AcquireRoleInput structure.""" + + template_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the role template to create the role + from. + + For more information about ARNs, 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*. + """ + template_minor_version: int | None = ... + """ + The minor version of the role template to use. If you do not specify a + minor version, the service uses the template's default minor version. + """ + replacement_values: dict[str, ReplacementValueEntry] | None = ... + """ + A map of values to substitute for the parameters that are defined in the + role template version. Each key is a parameter name from the template, + and each value is a structure that contains the replacement values for + that parameter. + """ + +@dataclass(kw_only=True) +class AcquireRoleOutput(_SerdeShape): + """Dataclass for AcquireRoleOutput structure.""" + + role: Role + """A structure that contains details about the IAM role that was created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddClientIDToOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for AddClientIDToOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider + resource to add the client ID to. You can get a list of OIDC provider + ARNs by using the + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + operation. + """ + client_id: str | None = ... + """ + The client ID (also known as audience) to add to the IAM OpenID Connect + provider resource. + """ + +@dataclass(kw_only=True) +class AddClientIDToOpenIDConnectProviderOutput(_SerdeShape): + """Dataclass for AddClientIDToOpenIDConnectProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddRoleToInstanceProfileInput(_SerdeShape): + """Dataclass for AddRoleToInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the instance profile to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + role_name: str | None = ... + """ + The name of the role to add. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class AddRoleToInstanceProfileOutput(_SerdeShape): + """Dataclass for AddRoleToInstanceProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddUserToGroupInput(_SerdeShape): + """Dataclass for AddUserToGroupInput structure.""" + + group_name: str | None = ... + """ + The name of the group to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + user_name: str | None = ... + """ + The name of the user to add. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class AddUserToGroupOutput(_SerdeShape): + """Dataclass for AddUserToGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AssertionEncryptionModeType(UnknownEnumMixin, StrEnum): + REQUIRED = "Required" + ALLOWED = "Allowed" + +class AssignmentStatusType(UnknownEnumMixin, StrEnum): + ASSIGNED = "Assigned" + UNASSIGNED = "Unassigned" + ANY = "Any" + +@dataclass(kw_only=True) +class AssociateDelegationRequestInput(_SerdeShape): + """Dataclass for AssociateDelegationRequestInput structure.""" + + delegation_request_id: str | None = ... + """The unique identifier of the delegation request to associate.""" + +@dataclass(kw_only=True) +class AssociateDelegationRequestOutput(_SerdeShape): + """Dataclass for AssociateDelegationRequestOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachedPermissionsBoundary(_SerdeShape): + """ + Contains information about an attached permissions boundary. + + An attached permissions boundary is a managed policy that has been + attached to a user or role to set the permissions boundary. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + + permissions_boundary_type: str | None = ... + """ + The permissions boundary usage type that indicates what type of IAM + resource is used as the permissions boundary for an entity. This data + type can only have a value of `Policy`. + """ + permissions_boundary_arn: str | None = ... + """ + The ARN of the policy used to set the permissions boundary for the user + or role. + """ + +@dataclass(kw_only=True) +class AttachedPolicy(_SerdeShape): + """ + Contains information about an attached policy. + + An attached policy is a managed policy that has been attached to a user, + group, or role. This data type is used as a response element in the + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html), + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html), + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html), + and + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operations. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + policy_name: str | None = ... + """The friendly name of the attached policy.""" + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + +@dataclass(kw_only=True) +class AttachGroupPolicyInput(_SerdeShape): + """Dataclass for AttachGroupPolicyInput structure.""" + + group_name: str | None = ... + """ + The name (friendly name, not ARN) of the group to attach the policy to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to attach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class AttachGroupPolicyOutput(_SerdeShape): + """Dataclass for AttachGroupPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AttachmentType(UnknownEnumMixin, StrEnum): + USER = "user" + GROUP = "group" + ROLE = "role" + +@dataclass(kw_only=True) +class AttachRolePolicyInput(_SerdeShape): + """Dataclass for AttachRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) of the role to attach the policy to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to attach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class AttachRolePolicyOutput(_SerdeShape): + """Dataclass for AttachRolePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AttachUserPolicyInput(_SerdeShape): + """Dataclass for AttachUserPolicyInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM user to attach the policy + to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to attach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class AttachUserPolicyOutput(_SerdeShape): + """Dataclass for AttachUserPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CallerIsNotManagementAccountException(ServiceError, _SerdeShape): + """ + The request was rejected because the account making the request is not + the management account for the organization. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ChangePasswordInput(_SerdeShape): + """Dataclass for ChangePasswordInput structure.""" + + old_password: str | None = ... + """The IAM user's current password.""" + new_password: str | None = ... + """ + The new password. The new password must conform to the Amazon Web + Services account's password policy, if one exists. + + The [regex pattern](http://wikipedia.org/wiki/regex) that is used to + validate this parameter is a string of characters. That string can + include almost any printable ASCII character from the space (`\u0020`) + through the end of the ASCII character range (`\u00ff`). You can also + include the tab (`\u0009`), line feed (`\u000a`), and carriage return + (`\u000d`) characters. Any of these characters are valid in a password. + However, many tools, such as the Amazon Web Services Management Console, + might restrict the ability to type certain characters because they have + special meaning within that tool. + """ + +@dataclass(kw_only=True) +class ChangePasswordOutput(_SerdeShape): + """Dataclass for ChangePasswordOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConcurrentModificationException(ServiceError, _SerdeShape): + """ + The request was rejected because multiple requests to change this object + were submitted simultaneously. Wait a few minutes and submit your + request again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ContextEntry(_SerdeShape): + """ + Contains information about a condition context key. It includes the name + of the key and specifies the value (or values, if the context key + supports multiple values) to use in the simulation. This information is + used when evaluating the `Condition` elements of the input policies. + + This data type is used as an input parameter to + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + and + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + """ + + context_key_name: str | None = ... + """ + The full name of a condition context key, including the service prefix. + For example, `aws:SourceIp` or `s3:VersionId`. + """ + context_key_values: list[str] | None = ... + """ + The value (or values, if the condition context key supports multiple + values) to provide to the simulation when the key is referenced by a + `Condition` element in an input policy. + """ + context_key_type: str | None = ... + """ + The data type of the value (or values) specified in the + `ContextKeyValues` parameter. + """ + +class ContextKeyTypeEnum(UnknownEnumMixin, StrEnum): + STRING = "string" + STRING_LIST = "stringList" + NUMERIC = "numeric" + NUMERIC_LIST = "numericList" + BOOLEAN = "boolean" + BOOLEAN_LIST = "booleanList" + IP = "ip" + IP_LIST = "ipList" + BINARY = "binary" + BINARY_LIST = "binaryList" + DATE = "date" + DATE_LIST = "dateList" + +@dataclass(kw_only=True) +class CreateAccessKeyInput(_SerdeShape): + """Dataclass for CreateAccessKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user that the new key will belong to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class CreateAccessKeyOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) + request. + """ + + access_key: AccessKey + """A structure with details about the access key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateAccountAliasInput(_SerdeShape): + """Dataclass for CreateAccountAliasInput structure.""" + + account_alias: str | None = ... + """ + The account alias to create. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of lowercase letters, digits, and dashes. You cannot start or + finish with a dash, nor can you have two dashes in a row. + """ + +@dataclass(kw_only=True) +class CreateAccountAliasOutput(_SerdeShape): + """Dataclass for CreateAccountAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDelegationRequestInput(_SerdeShape): + """Dataclass for CreateDelegationRequestInput structure.""" + + owner_account_id: str | None = ... + """ + The Amazon Web Services account ID this delegation request is targeted + to. + + If the account ID is not known, this parameter can be omitted, resulting + in a request that can be associated by any account. If the account ID + passed, then the created delegation request can only be associated with + an identity of that target account. + """ + description: str | None = ... + """A description of the delegation request.""" + permissions: DelegationPermission | None = ... + """The permissions to be delegated in this delegation request.""" + request_message: str | None = ... + """ + A message explaining the reason for the delegation request. + + Requesters can utilize this field to add a custom note to the delegation + request. This field is different from the description such that this is + to be utilized for a custom messaging on a case-by-case basis. + + For example, if the current delegation request is in response to a + previous request being rejected, this explanation can be added to the + request via this field. + """ + requestor_workflow_id: str | None = ... + """ + The workflow ID associated with the requestor. + + This is the unique identifier on the partner side that can be used to + track the progress of the request. + + IAM maintains a uniqueness check on this workflow id for each request - + if a workflow id for an existing request is passed, this API call will + fail. + """ + redirect_url: str | None = ... + """ + The URL to redirect to after the delegation request is processed. + + This URL is used by the IAM console to show a link to the customer to + re-load the partner workflow. + """ + notification_channel: str | None = ... + """ + The notification channel for updates about the delegation request. + + At this time,only SNS topic ARNs are accepted for notification. This + topic ARN must have a resource policy granting `SNS:Publish` permission + to the IAM service principal (`iam.amazonaws.com`). See [partner + onboarding + documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation-partner-guide.html) + for more details. + """ + session_duration: int | None = ... + """ + The duration for which the delegated session should remain active, in + seconds. + + The active time window for the session starts when the customer calls + the + [SendDelegationToken](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SendDelegationToken.html) + API. + """ + only_send_by_owner: bool = ... + """ + Specifies whether the delegation token should only be sent by the owner. + + This flag prevents any party other than the owner from calling + `SendDelegationToken` API for this delegation request. This behavior + becomes useful when the delegation request owner needs to be present for + subsequent partner interactions, but the delegation request was sent to + a more privileged user for approval due to the owner lacking sufficient + delegation permissions. + """ + +@dataclass(kw_only=True) +class CreateDelegationRequestOutput(_SerdeShape): + """Dataclass for CreateDelegationRequestOutput structure.""" + + console_deep_link: str | None = ... + """ + A deep link URL to the Amazon Web Services Management Console for + managing the delegation request. + + For a console based workflow, partners should redirect the customer to + this URL. If the customer is not logged in to any Amazon Web Services + account, the Amazon Web Services workflow will automatically direct the + customer to log in and then display the delegation request approval + page. + """ + delegation_request_id: str | None = ... + """The unique identifier for the created delegation request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateGroupInput(_SerdeShape): + """Dataclass for CreateGroupInput structure.""" + + path: str | None = ... + """ + The path to the group. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + group_name: str | None = ... + """ + The name of the group to create. Do not include the path in this value. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + """ + +@dataclass(kw_only=True) +class CreateGroupOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html) + request. + """ + + group: Group + """A structure containing details about the new group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateInstanceProfileInput(_SerdeShape): + """Dataclass for CreateInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the instance profile to create. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + path: str | None = ... + """ + The path to the instance profile. For more information about paths, see + [IAM + Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the newly created IAM instance + profile. Each tag consists of a key name and an associated value. For + more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreateInstanceProfileOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html) + request. + """ + + instance_profile: InstanceProfile + """A structure containing details about the new instance profile.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateLoginProfileInput(_SerdeShape): + """Dataclass for CreateLoginProfileInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user to create a password for. The user must already + exist. + + This parameter is optional. If no user name is included, it defaults to + the principal making the request. When you make this request with root + user credentials, you must use an + [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) + session to omit the user name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + password: str | None = ... + """ + The new password for the user. + + This parameter must be omitted when you make the request with an + [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) + session. It is required in all other cases. + + The [regex pattern](http://wikipedia.org/wiki/regex) that is used to + validate this parameter is a string of characters. That string can + include almost any printable ASCII character from the space (`\u0020`) + through the end of the ASCII character range (`\u00ff`). You can also + include the tab (`\u0009`), line feed (`\u000a`), and carriage return + (`\u000d`) characters. Any of these characters are valid in a password. + However, many tools, such as the Amazon Web Services Management Console, + might restrict the ability to type certain characters because they have + special meaning within that tool. + """ + password_reset_required: bool = ... + """ + Specifies whether the user is required to set a new password on next + sign-in. + """ + +@dataclass(kw_only=True) +class CreateLoginProfileOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html) + request. + """ + + login_profile: LoginProfile + """A structure containing the user name and password create date.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for CreateOpenIDConnectProviderInput structure.""" + + url: str | None = ... + """ + The URL of the identity provider. The URL must begin with `https://` and + should correspond to the `iss` claim in the provider's OpenID Connect + ID tokens. Per the OIDC standard, path components are allowed but query + parameters are not. Typically the URL consists of only a hostname, like + `https://server.example.org` or `https://example.com`. The URL should + not contain a port number. + + You cannot register the same provider multiple times in a single Amazon + Web Services account. If you try to submit a URL that has already been + used for an OpenID Connect provider in the Amazon Web Services account, + you will get an error. + """ + client_id_list: list[str] | None = ... + """ + Provides a list of client IDs, also known as audiences. When a mobile or + web app registers with an OpenID Connect provider, they establish a + value that identifies the application. This is the value that's sent as + the `client_id` parameter on OAuth requests. + + You can register multiple client IDs with the same provider. For + example, you might have multiple applications that use the same OIDC + provider. You cannot register more than 100 client IDs with a single IAM + OIDC provider. + + There is no defined format for a client ID. The + `CreateOpenIDConnectProviderRequest` operation accepts client IDs up to + 255 characters long. + """ + thumbprint_list: list[str] | None = ... + """ + A list of server certificate thumbprints for the OpenID Connect (OIDC) + identity provider's server certificates. Typically this list includes + only one entry. However, IAM lets you have up to five thumbprints for an + OIDC provider. This lets you maintain multiple thumbprints if the + identity provider is rotating certificates. + + This parameter is optional. If it is not included, IAM will retrieve and + use the top intermediate certificate authority (CA) thumbprint of the + OpenID Connect identity provider server certificate. + + The server certificate thumbprint is the hex-encoded SHA-1 hash value of + the X.509 certificate used by the domain where the OpenID Connect + provider makes its keys available. It is always a 40-character string. + + For example, assume that the OIDC provider is `server.example.com` and + the provider stores its keys at + https://keys.server.example.com/openid-connect. In that case, the + thumbprint string would be the hex-encoded SHA-1 hash value of the + certificate used by `https://keys.server.example.com.` + + For more information about obtaining the OIDC provider thumbprint, see + [Obtaining the thumbprint for an OpenID Connect + provider](https://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc-obtain-thumbprint.html) + in the *IAM user Guide*. + + Note: + If your OIDC provider's discovery endpoint and JWKS endpoint + (`jwks_uri`) use different certificates or hosts, include the + thumbprints for both endpoints in this list. + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new IAM OpenID Connect + (OIDC) provider. Each tag consists of a key name and an associated + value. For more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreateOpenIDConnectProviderOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) + request. + """ + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider + that is created. For more information, see + [OpenIDConnectProviderListEntry](https://docs.aws.amazon.com/IAM/latest/APIReference/API_OpenIDConnectProviderListEntry.html). + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the new IAM OIDC provider. The + returned list of tags is sorted by tag key. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatePolicyInput(_SerdeShape): + """Dataclass for CreatePolicyInput structure.""" + + policy_name: str | None = ... + """ + The friendly name of the policy. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + """ + path: str | None = ... + """ + The path for the policy. + + For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + + Note: + You cannot use an asterisk (*) in the path name. + """ + policy_document: str | None = ... + """ + The JSON policy document that you want to use as the content for the new + policy. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + To learn more about JSON policy grammar, see [Grammar of the IAM JSON + policy + language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) + in the *IAM User Guide*. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + description: str | None = ... + """ + A friendly description of the policy. + + Typically used to store information about the permissions defined in the + policy. For example, \"Grants access to production DynamoDB tables.\" + + The policy description is immutable. After a value is assigned, it + cannot be changed. + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new IAM customer managed + policy. Each tag consists of a key name and an associated value. For + more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreatePolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html) + request. + """ + + policy: Policy | None = ... + """A structure containing details about the new policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreatePolicyVersionInput(_SerdeShape): + """Dataclass for CreatePolicyVersionInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy to which you want to + add a new version. + + For more information about ARNs, 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*. + """ + policy_document: str | None = ... + """ + The JSON policy document that you want to use as the content for this + new version of the policy. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + set_as_default: bool = ... + """ + Specifies whether to set this version as the policy's default version. + + When this parameter is `true`, the new policy version becomes the + operative version. That is, it becomes the version that is in effect for + the IAM users, groups, and roles that the policy is attached to. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class CreatePolicyVersionOutput(_SerdeShape): + """ + Contains the response to a successful + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html) + request. + """ + + policy_version: PolicyVersion | None = ... + """A structure containing details about the new policy version.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateRoleInput(_SerdeShape): + """Dataclass for CreateRoleInput structure.""" + + path: str | None = ... + """ + The path to the role. For more information about paths, see [IAM + Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + role_name: str | None = ... + """ + The name of the role to create. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + assume_role_policy_document: str | None = ... + """ + The trust relationship policy document that grants an entity permission + to assume the role. + + In IAM, you must provide a JSON policy that has been converted to a + string. However, for CloudFormation templates formatted in YAML, you can + provide the policy in JSON or YAML format. CloudFormation always + converts a YAML policy to JSON format before submitting it to IAM. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + + Upon success, the response includes the same trust policy in JSON + format. + """ + description: str | None = ... + """A description of the role.""" + max_session_duration: int | None = ... + """ + The maximum session duration (in seconds) that you want to set for the + specified role. If you do not specify a value for this setting, the + default value of one hour is applied. This setting can have a value from + 1 hour to 12 hours. + + Anyone who assumes the role from the CLI or API can use the + `DurationSeconds` API parameter or the `duration-seconds` CLI parameter + to request a longer session. The `MaxSessionDuration` setting determines + the maximum duration that can be requested using the `DurationSeconds` + parameter. If users don't specify a value for the `DurationSeconds` + parameter, their security credentials are valid for one hour by default. + This applies when you use the `AssumeRole*` API operations or the + `assume-role*` CLI operations but does not apply when you use those + operations to create a console URL. For more information, see [Using IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) + in the *IAM User Guide*. + """ + permissions_boundary: str | None = ... + """ + The ARN of the managed policy that is used to set the permissions + boundary for the role. + + A permissions boundary policy defines the maximum permissions that + identity-based policies can grant to an entity, but does not grant + permissions. Permissions boundaries do not define the maximum + permissions that a resource-based policy can grant to an entity. To + learn more, see [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + + For more information about policy types, see [Policy + types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new role. Each tag + consists of a key name and an associated value. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreateRoleOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) + request. + """ + + role: Role + """A structure containing details about the new role.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSAMLProviderInput(_SerdeShape): + """Dataclass for CreateSAMLProviderInput structure.""" + + saml_metadata_document: str | None = ... + """ + An XML document generated by an identity provider (IdP) that supports + SAML 2.0. The document includes the issuer's name, expiration + information, and keys that can be used to validate the SAML + authentication response (assertions) that are received from the IdP. You + must generate the metadata document using the identity management + software that is used as your organization's IdP. + + For more information, see [About SAML 2.0-based + federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) + in the *IAM User Guide* + """ + name: str | None = ... + """ + The name of the provider to create. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new IAM SAML provider. + Each tag consists of a key name and an associated value. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + assertion_encryption_mode: str | None = ... + """Specifies the encryption setting for the SAML provider.""" + add_private_key: str | None = ... + """ + The private key generated from your external identity provider. The + private key must be a .pem file that uses AES-GCM or AES-CBC encryption + algorithm to decrypt SAML assertions. + """ + +@dataclass(kw_only=True) +class CreateSAMLProviderOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html) + request. + """ + + saml_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) of the new SAML provider resource in IAM.""" + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the new IAM SAML provider. The + returned list of tags is sorted by tag key. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateServiceLinkedRoleInput(_SerdeShape): + """Dataclass for CreateServiceLinkedRoleInput structure.""" + + aws_service_name: str | None = ... + """ + The service principal for the Amazon Web Services service to which this + role is attached. You use a string similar to a URL but without the + http:// in front. For example: `elasticbeanstalk.amazonaws.com`. + + Service principals are unique and case-sensitive. To find the exact + service principal for your service-linked role, see [Amazon Web Services + services that work with + IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) + in the *IAM User Guide*. Look for the services that have **Yes** in the + **Service-Linked Role** column. Choose the **Yes** link to view the + service-linked role documentation for that service. + """ + description: str | None = ... + """The description of the role.""" + custom_suffix: str | None = ... + """ + A string that you provide, which is combined with the service-provided + prefix to form the complete role name. If you make multiple requests for + the same service, then you must supply a different `CustomSuffix` for + each request. Otherwise the request fails with a duplicate role name + error. For example, you could add `-1` or `-debug` to the suffix. + + Some services do not support the `CustomSuffix` parameter. If you + provide an optional suffix and the operation fails, try the operation + again without the suffix. + """ + +@dataclass(kw_only=True) +class CreateServiceLinkedRoleOutput(_SerdeShape): + """Dataclass for CreateServiceLinkedRoleOutput structure.""" + + role: Role | None = ... + """ + A + [Role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Role.html) + object that contains details about the newly created role. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateServiceSpecificCredentialInput(_SerdeShape): + """Dataclass for CreateServiceSpecificCredentialInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user that is to be associated with the credentials. + The new service-specific credentials have the same permissions as the + associated user except that they can be used only to access the + specified service. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + service_name: str | None = ... + """ + The name of the Amazon Web Services service that is to be associated + with the credentials. The service you specify here is the only service + that can be accessed using these credentials. + """ + credential_age_days: int | None = ... + """ + The number of days until the service specific credential expires. This + field is only valid for services that support long-term API keys and + must be a positive integer. When not specified, the credential will not + expire. + + To see which services support long-term API keys, refer to [API keys for + Amazon Web Services + services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_api_keys_for_aws_services.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class CreateServiceSpecificCredentialOutput(_SerdeShape): + """Dataclass for CreateServiceSpecificCredentialOutput structure.""" + + service_specific_credential: ServiceSpecificCredential | None = ... + """ + A structure that contains information about the newly created + service-specific credential. + + Warning: + This is the only time that the password for this credential set is + available. It cannot be recovered later. Instead, you must reset the + password with + [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateUserInput(_SerdeShape): + """Dataclass for CreateUserInput structure.""" + + path: str | None = ... + """ + The path for the user name. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + user_name: str | None = ... + """ + The name of the user to create. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + """ + permissions_boundary: str | None = ... + """ + The ARN of the managed policy that is used to set the permissions + boundary for the user. + + A permissions boundary policy defines the maximum permissions that + identity-based policies can grant to an entity, but does not grant + permissions. Permissions boundaries do not define the maximum + permissions that a resource-based policy can grant to an entity. To + learn more, see [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + + For more information about policy types, see [Policy + types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new user. Each tag + consists of a key name and an associated value. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreateUserOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) + request. + """ + + user: User | None = ... + """A structure with details about the new IAM user.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateVirtualMFADeviceInput(_SerdeShape): + """Dataclass for CreateVirtualMFADeviceInput structure.""" + + path: str | None = ... + """ + The path for the virtual MFA device. For more information about paths, + see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + virtual_mfa_device_name: str | None = ... + """ + The name of the virtual MFA device, which must be unique. Use with path + to uniquely identify a virtual MFA device. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new IAM virtual MFA + device. Each tag consists of a key name and an associated value. For + more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class CreateVirtualMFADeviceOutput(_SerdeShape): + """ + Contains the response to a successful + [CreateVirtualMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html) + request. + """ + + virtual_mfa_device: VirtualMFADevice + """A structure containing details about the new virtual MFA device.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CredentialReportExpiredException(ServiceError, _SerdeShape): + """ + The request was rejected because the most recent credential report has + expired. To generate a new credential report, use + [GenerateCredentialReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html). + For more information about credential report expiration, see [Getting + credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + in the *IAM User Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CredentialReportNotPresentException(ServiceError, _SerdeShape): + """ + The request was rejected because the credential report does not exist. + To generate a credential report, use + [GenerateCredentialReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CredentialReportNotReadyException(ServiceError, _SerdeShape): + """ + The request was rejected because the credential report is still being + generated. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeactivateMFADeviceInput(_SerdeShape): + """Dataclass for DeactivateMFADeviceInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose MFA device you want to deactivate. + + This parameter is optional. If no user name is included, it defaults to + the principal making the request. When you make this request with root + user credentials, you must use an + [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) + session to omit the user name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + serial_number: str | None = ... + """ + The serial number that uniquely identifies the MFA device. For virtual + MFA devices, the serial number is the device ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: =,.@:/- + """ + +@dataclass(kw_only=True) +class DeactivateMFADeviceOutput(_SerdeShape): + """Dataclass for DeactivateMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DelegationPermission(_SerdeShape): + """ + Contains information about the permissions being delegated in a + delegation request. + """ + + policy_template_arn: str | None = ... + """ + This ARN maps to a pre-registered policy content for this partner. See + the [partner onboarding documentation]() to understand how to create a + delegation template. + """ + parameters: list[PolicyParameter] | None = ... + """ + A list of policy parameters that define the scope and constraints of the + delegated permissions. + """ + +@dataclass(kw_only=True) +class DelegationRequest(_SerdeShape): + """ + Contains information about a delegation request, including its status, + permissions, and associated metadata. + """ + + delegation_request_id: str | None = ... + """The unique identifier for the delegation request.""" + owner_account_id: str | None = ... + """Amazon Web Services account ID of the owner of the delegation request.""" + description: str | None = ... + """ + Description of the delegation request. This is a message that is + provided by the Amazon Web Services partner that filed the delegation + request. + """ + request_message: str | None = ... + """ + A custom message that is added to the delegation request by the partner. + + This element is different from the `Description` element such that this + is a request specific message injected by the partner. The `Description` + is typically a generic explanation of what the delegation request is + targeted to do. + """ + permissions: DelegationPermission | None = ... + """ + Contains information about the permissions being delegated in a + delegation request. + """ + permission_policy: str | None = ... + """ + JSON content of the associated permission policy of this delegation + request. + """ + role_permission_restriction_arns: list[str] | None = ... + """ + If the `PermissionPolicy` includes role creation permissions, this + element will include the list of permissions boundary policies + associated with the role creation. See [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + for more details about IAM permission boundaries. + """ + owner_id: str | None = ... + """ARN of the owner of this delegation request.""" + approver_id: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + state: str | None = ... + """ + The state of this delegation request. + + See the [Understanding the Request + Lifecycle](https://docs.aws.amazon.com/IAM/latest/UserGuide/temporary-delegation-building-integration.html#temporary-delegation-request-lifecycle) + for an explanation of how these states are transitioned. + """ + expiration_time: datetime | None = ... + """ + The expiry time of this delegation request + + See the [Understanding the Request + Lifecycle](https://docs.aws.amazon.com/IAM/latest/UserGuide/temporary-delegation-building-integration.html#temporary-delegation-request-lifecycle) + for details on the life time of a delegation request at each state. + """ + requestor_id: str | None = ... + """ + Identity of the requestor of this delegation request. This will be an + Amazon Web Services account ID. + """ + requestor_name: str | None = ... + """A friendly name of the requestor.""" + create_date: datetime | None = ... + """Creation date (timestamp) of this delegation request.""" + session_duration: int | None = ... + """The life-time of the requested session credential.""" + redirect_url: str | None = ... + """ + A URL to be redirected to once the delegation request is approved. + Partners provide this URL when creating the delegation request. + """ + notes: str | None = ... + """ + Notes added to this delegation request, if this request was updated via + the + [UpdateDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateDelegationRequest.html) + API. + """ + rejection_reason: str | None = ... + """ + Reasons for rejecting this delegation request, if this request was + rejected. See also + [RejectDelegationRequest](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RejectDelegationRequest.html) + API documentation. + """ + only_send_by_owner: bool = ... + """ + A flag indicating whether the + [SendDelegationToken](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SendDelegationToken.html) + must be called by the owner of this delegation request. This is set by + the requesting partner. + """ + updated_time: datetime | None = ... + """Last updated timestamp of the request.""" + +@dataclass(kw_only=True) +class DeleteAccessKeyInput(_SerdeShape): + """Dataclass for DeleteAccessKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose access key pair you want to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + access_key_id: str | None = ... + """ + The access key ID for the access key ID and secret access key you want + to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + +@dataclass(kw_only=True) +class DeleteAccessKeyOutput(_SerdeShape): + """Dataclass for DeleteAccessKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAccountAliasInput(_SerdeShape): + """Dataclass for DeleteAccountAliasInput structure.""" + + account_alias: str | None = ... + """ + The name of the account alias to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of lowercase letters, digits, and dashes. You cannot start or + finish with a dash, nor can you have two dashes in a row. + """ + +@dataclass(kw_only=True) +class DeleteAccountAliasOutput(_SerdeShape): + """Dataclass for DeleteAccountAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAccountPasswordPolicyInput(_SerdeShape): + """Dataclass for DeleteAccountPasswordPolicyInput structure.""" + +@dataclass(kw_only=True) +class DeleteAccountPasswordPolicyOutput(_SerdeShape): + """Dataclass for DeleteAccountPasswordPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteConflictException(ServiceError, _SerdeShape): + """ + The request was rejected because it attempted to delete a resource that + has attached subordinate entities. The error message describes these + entities. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteGroupInput(_SerdeShape): + """Dataclass for DeleteGroupInput structure.""" + + group_name: str | None = ... + """ + The name of the IAM group to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteGroupOutput(_SerdeShape): + """Dataclass for DeleteGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteGroupPolicyInput(_SerdeShape): + """Dataclass for DeleteGroupPolicyInput structure.""" + + group_name: str | None = ... + """ + The name (friendly name, not ARN) identifying the group that the policy + is embedded in. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name identifying the policy document to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteGroupPolicyOutput(_SerdeShape): + """Dataclass for DeleteGroupPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteInstanceProfileInput(_SerdeShape): + """Dataclass for DeleteInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the instance profile to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteInstanceProfileOutput(_SerdeShape): + """Dataclass for DeleteInstanceProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteLoginProfileInput(_SerdeShape): + """Dataclass for DeleteLoginProfileInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose password you want to delete. + + This parameter is optional. If no user name is included, it defaults to + the principal making the request. When you make this request with root + user credentials, you must use an + [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) + session to omit the user name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteLoginProfileOutput(_SerdeShape): + """Dataclass for DeleteLoginProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for DeleteOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM OpenID Connect provider + resource object to delete. You can get a list of OpenID Connect provider + resource ARNs by using the + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + operation. + """ + +@dataclass(kw_only=True) +class DeleteOpenIDConnectProviderOutput(_SerdeShape): + """Dataclass for DeleteOpenIDConnectProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePolicyInput(_SerdeShape): + """Dataclass for DeletePolicyInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to delete. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class DeletePolicyOutput(_SerdeShape): + """Dataclass for DeletePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePolicyVersionInput(_SerdeShape): + """Dataclass for DeletePolicyVersionInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy from which you want to + delete a version. + + For more information about ARNs, 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*. + """ + version_id: str | None = ... + """ + The policy version to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + consists of the lowercase letter 'v' followed by one or two digits, + and optionally followed by a period '.' and a string of letters and + digits. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class DeletePolicyVersionOutput(_SerdeShape): + """Dataclass for DeletePolicyVersionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRoleInput(_SerdeShape): + """Dataclass for DeleteRoleInput structure.""" + + role_name: str | None = ... + """ + The name of the role to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteRoleOutput(_SerdeShape): + """Dataclass for DeleteRoleOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRolePermissionsBoundaryInput(_SerdeShape): + """Dataclass for DeleteRolePermissionsBoundaryInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM role from which you want to + remove the permissions boundary. + """ + +@dataclass(kw_only=True) +class DeleteRolePermissionsBoundaryOutput(_SerdeShape): + """Dataclass for DeleteRolePermissionsBoundaryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteRolePolicyInput(_SerdeShape): + """Dataclass for DeleteRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) identifying the role that the policy + is embedded in. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the inline policy to delete from the specified IAM role. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteRolePolicyOutput(_SerdeShape): + """Dataclass for DeleteRolePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSAMLProviderInput(_SerdeShape): + """Dataclass for DeleteSAMLProviderInput structure.""" + + saml_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) of the SAML provider to delete.""" + +@dataclass(kw_only=True) +class DeleteSAMLProviderOutput(_SerdeShape): + """Dataclass for DeleteSAMLProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteServerCertificateInput(_SerdeShape): + """Dataclass for DeleteServerCertificateInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the server certificate you want to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteServerCertificateOutput(_SerdeShape): + """Dataclass for DeleteServerCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteServiceLinkedRoleInput(_SerdeShape): + """Dataclass for DeleteServiceLinkedRoleInput structure.""" + + role_name: str | None = ... + """The name of the service-linked role to be deleted.""" + +@dataclass(kw_only=True) +class DeleteServiceLinkedRoleOutput(_SerdeShape): + """Dataclass for DeleteServiceLinkedRoleOutput structure.""" + + deletion_task_id: str + """ + The deletion task identifier that you can use to check the status of the + deletion. This identifier is returned in the format + `task/aws-service-role/```{=html}`/```{=html}`/```{=html}. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteServiceSpecificCredentialInput(_SerdeShape): + """Dataclass for DeleteServiceSpecificCredentialInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the service-specific + credential. If this value is not specified, then the operation assumes + the user whose credentials are used to call the operation. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + service_specific_credential_id: str | None = ... + """ + The unique identifier of the service-specific credential. You can get + this value by calling + [ListServiceSpecificCredentials](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html). + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + +@dataclass(kw_only=True) +class DeleteServiceSpecificCredentialOutput(_SerdeShape): + """Dataclass for DeleteServiceSpecificCredentialOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSigningCertificateInput(_SerdeShape): + """Dataclass for DeleteSigningCertificateInput structure.""" + + user_name: str | None = ... + """ + The name of the user the signing certificate belongs to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + certificate_id: str | None = ... + """ + The ID of the signing certificate to delete. + + The format of this parameter, as described by its + [regex](http://wikipedia.org/wiki/regex) pattern, is a string of + characters that can be upper- or lower-cased letters or digits. + """ + +@dataclass(kw_only=True) +class DeleteSigningCertificateOutput(_SerdeShape): + """Dataclass for DeleteSigningCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteSSHPublicKeyInput(_SerdeShape): + """Dataclass for DeleteSSHPublicKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + ssh_public_key_id: str | None = ... + """ + The unique identifier for the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + +@dataclass(kw_only=True) +class DeleteSSHPublicKeyOutput(_SerdeShape): + """Dataclass for DeleteSSHPublicKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteUserInput(_SerdeShape): + """Dataclass for DeleteUserInput structure.""" + + user_name: str | None = ... + """ + The name of the user to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteUserOutput(_SerdeShape): + """Dataclass for DeleteUserOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteUserPermissionsBoundaryInput(_SerdeShape): + """Dataclass for DeleteUserPermissionsBoundaryInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM user from which you want to + remove the permissions boundary. + """ + +@dataclass(kw_only=True) +class DeleteUserPermissionsBoundaryOutput(_SerdeShape): + """Dataclass for DeleteUserPermissionsBoundaryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteUserPolicyInput(_SerdeShape): + """Dataclass for DeleteUserPolicyInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) identifying the user that the policy + is embedded in. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name identifying the policy document to delete. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class DeleteUserPolicyOutput(_SerdeShape): + """Dataclass for DeleteUserPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteVirtualMFADeviceInput(_SerdeShape): + """Dataclass for DeleteVirtualMFADeviceInput structure.""" + + serial_number: str | None = ... + """ + The serial number that uniquely identifies the MFA device. For virtual + MFA devices, the serial number is the same as the ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: =,.@:/- + """ + +@dataclass(kw_only=True) +class DeleteVirtualMFADeviceOutput(_SerdeShape): + """Dataclass for DeleteVirtualMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletionTaskFailureReasonType(_SerdeShape): + """ + The reason that the service-linked role deletion failed. + + This data type is used as a response element in the + [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) + operation. + """ + + reason: str | None = ... + """ + A short description of the reason that the service-linked role deletion + failed. + """ + role_usage_list: list[RoleUsageType] | None = ... + """ + A list of objects that contains details about the service-linked role + deletion failure, if that information is returned by the service. If the + service-linked role has active sessions or if any resources that were + used by the role have not been deleted from the linked service, the role + can't be deleted. This parameter includes a list of the resources that + are associated with the role and the Region in which the resources are + being used. + """ + +class DeletionTaskStatusType(UnknownEnumMixin, StrEnum): + SUCCEEDED = "SUCCEEDED" + IN_PROGRESS = "IN_PROGRESS" + FAILED = "FAILED" + NOT_STARTED = "NOT_STARTED" + +@dataclass(kw_only=True) +class DetachGroupPolicyInput(_SerdeShape): + """Dataclass for DetachGroupPolicyInput structure.""" + + group_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM group to detach the policy + from. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to detach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class DetachGroupPolicyOutput(_SerdeShape): + """Dataclass for DetachGroupPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachRolePolicyInput(_SerdeShape): + """Dataclass for DetachRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM role to detach the policy + from. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to detach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class DetachRolePolicyOutput(_SerdeShape): + """Dataclass for DetachRolePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DetachUserPolicyInput(_SerdeShape): + """Dataclass for DetachUserPolicyInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM user to detach the policy + from. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy you want to detach. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class DetachUserPolicyOutput(_SerdeShape): + """Dataclass for DetachUserPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableOrganizationsRootCredentialsManagementInput(_SerdeShape): + """ + Dataclass for DisableOrganizationsRootCredentialsManagementInput + structure. + """ + +@dataclass(kw_only=True) +class DisableOrganizationsRootCredentialsManagementOutput(_SerdeShape): + """ + Dataclass for DisableOrganizationsRootCredentialsManagementOutput + structure. + """ + + organization_id: str | None = ... + """The unique identifier (ID) of an organization.""" + enabled_features: list[str] | None = ... + """ + The features enabled for centralized root access for member accounts in + your organization. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableOrganizationsRootSessionsInput(_SerdeShape): + """Dataclass for DisableOrganizationsRootSessionsInput structure.""" + +@dataclass(kw_only=True) +class DisableOrganizationsRootSessionsOutput(_SerdeShape): + """Dataclass for DisableOrganizationsRootSessionsOutput structure.""" + + organization_id: str | None = ... + """The unique identifier (ID) of an organization.""" + enabled_features: list[str] | None = ... + """ + The features you have enabled for centralized root access of member + accounts in your organization. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableOutboundWebIdentityFederationInput(_SerdeShape): + """Dataclass for DisableOutboundWebIdentityFederationInput structure.""" + +@dataclass(kw_only=True) +class DisableOutboundWebIdentityFederationOutput(_SerdeShape): + """Dataclass for DisableOutboundWebIdentityFederationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DuplicateCertificateException(ServiceError, _SerdeShape): + """ + The request was rejected because the same certificate is associated with + an IAM user in the account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DuplicateSSHPublicKeyException(ServiceError, _SerdeShape): + """ + The request was rejected because the SSH public key is already + associated with the specified IAM user. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableMFADeviceInput(_SerdeShape): + """Dataclass for EnableMFADeviceInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user for whom you want to enable the MFA device. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + serial_number: str | None = ... + """ + The serial number that uniquely identifies the MFA device. For virtual + MFA devices, the serial number is the device ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: =,.@:/- + """ + authentication_code1: str | None = ... + """ + An authentication code emitted by the device. + + The format for this parameter is a string of six digits. + + Warning: + Submit your request immediately after generating the authentication + codes. If you generate the codes and then wait too long to submit the + request, the MFA device successfully associates with the user but the + MFA device becomes out of sync. This happens because time-based one-time + passwords (TOTP) expire after a short period of time. If this happens, + you can [resync the + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html). + """ + authentication_code2: str | None = ... + """ + A subsequent authentication code emitted by the device. + + The format for this parameter is a string of six digits. + + Warning: + Submit your request immediately after generating the authentication + codes. If you generate the codes and then wait too long to submit the + request, the MFA device successfully associates with the user but the + MFA device becomes out of sync. This happens because time-based one-time + passwords (TOTP) expire after a short period of time. If this happens, + you can [resync the + device](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html). + """ + +@dataclass(kw_only=True) +class EnableMFADeviceOutput(_SerdeShape): + """Dataclass for EnableMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableOrganizationsRootCredentialsManagementInput(_SerdeShape): + """ + Dataclass for EnableOrganizationsRootCredentialsManagementInput + structure. + """ + +@dataclass(kw_only=True) +class EnableOrganizationsRootCredentialsManagementOutput(_SerdeShape): + """ + Dataclass for EnableOrganizationsRootCredentialsManagementOutput + structure. + """ + + organization_id: str | None = ... + """The unique identifier (ID) of an organization.""" + enabled_features: list[str] | None = ... + """The features you have enabled for centralized root access.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableOrganizationsRootSessionsInput(_SerdeShape): + """Dataclass for EnableOrganizationsRootSessionsInput structure.""" + +@dataclass(kw_only=True) +class EnableOrganizationsRootSessionsOutput(_SerdeShape): + """Dataclass for EnableOrganizationsRootSessionsOutput structure.""" + + organization_id: str | None = ... + """The unique identifier (ID) of an organization.""" + enabled_features: list[str] | None = ... + """The features you have enabled for centralized root access.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableOutboundWebIdentityFederationInput(_SerdeShape): + """Dataclass for EnableOutboundWebIdentityFederationInput structure.""" + +@dataclass(kw_only=True) +class EnableOutboundWebIdentityFederationOutput(_SerdeShape): + """Dataclass for EnableOutboundWebIdentityFederationOutput structure.""" + + issuer_identifier: str | None = ... + """ + A unique issuer URL for your Amazon Web Services account that hosts the + OpenID Connect (OIDC) discovery endpoints at + `/.well-known/openid-configuration and /.well-known/jwks.json`. The + OpenID Connect (OIDC) discovery endpoints contain verification keys and + metadata necessary for token verification. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EncodingType(UnknownEnumMixin, StrEnum): + SSH = "SSH" + PEM = "PEM" + +@dataclass(kw_only=True) +class EntityAlreadyExistsException(ServiceError, _SerdeShape): + """ + The request was rejected because it attempted to create a resource that + already exists. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EntityDetails(_SerdeShape): + """ + An object that contains details about when the IAM entities (users or + roles) were last used in an attempt to access the specified Amazon Web + Services service. + + This data type is a response element in the + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + operation. + """ + + entity_info: EntityInfo + """ + The `EntityInfo` object that contains details about the entity (user or + role). + """ + last_authenticated: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the authenticated entity + last attempted to access Amazon Web Services. Amazon Web Services does + not report unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + +@dataclass(kw_only=True) +class EntityInfo(_SerdeShape): + """ + Contains details about the specified entity (user or role). + + This data type is an element of the + [EntityDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EntityDetails.html) + object. + """ + + arn: str + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + name: str + """The name of the entity (user or role).""" + type: str + """The type of entity (user or role).""" + id: str + """The identifier of the entity (user or role).""" + path: str | None = ... + """ + The path to the entity (user or role). For more information about paths, + see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class EntityTemporarilyUnmodifiableException(ServiceError, _SerdeShape): + """ + The request was rejected because it referenced an entity that is + temporarily unmodifiable, such as a user name that was deleted and then + recreated. The error indicates that the request is likely to succeed if + you try again after waiting several minutes. The error message describes + the entity. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EntityType(UnknownEnumMixin, StrEnum): + USER = "User" + ROLE = "Role" + GROUP = "Group" + LOCAL_MANAGED_POLICY = "LocalManagedPolicy" + AWS_MANAGED_POLICY = "AWSManagedPolicy" + +@dataclass(kw_only=True) +class ErrorDetails(_SerdeShape): + """ + Contains information about the reason that the operation failed. + + This data type is used as a response element in the + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html), + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html), + and + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + operations. + """ + + message: str + """Detailed information about the reason that the operation failed.""" + code: str + """The error code associated with the operation failure.""" + +@dataclass(kw_only=True) +class EvaluationResult(_SerdeShape): + """ + Contains the results of a simulation. + + This data type is used by the return parameter of + ` `[`SimulateCustomPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)` ` + and + ` `[`SimulatePrincipalPolicy`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)` `. + + Warning: + The simulator now returns a single `EvaluationResult` per action, + regardless of how many resource ARNs are provided. Previously, + simulating one action against N resources returned N evaluation results, + each containing the same aggregate decision. The top-level fields + (`EvalDecision`, `MatchedStatements`, `MissingContextValues`, + `EvalDecisionDetails`) now represent the *aggregate* decision across all + requested resources. The top-level `EvalDecision` reflects the most + restrictive decision across all resources (for example, if any resource + produces `explicitDeny`, the top-level decision is `explicitDeny`). + + To see the decision for each individual resource, use + `ResourceSpecificResults`. If your application parses evaluation results + per resource ARN, update your code to read per-resource decisions from + `ResourceSpecificResults` rather than from the top-level result. + """ + + eval_action_name: str + """The name of the API operation tested on the indicated resource.""" + eval_resource_name: str | None = ... + """ + The ARN template for the simulated resource type (for example, + `arn:${Partition}:s3:::${BucketName}/${KeyName}`), or `*` if no ARN + format is defined for the action. This is not a specific + customer-provided resource ARN. To find the decision for a specific + resource, use `ResourceSpecificResults`. + + Note: + If you previously relied on `EvalResourceName` to identify which + specific resource a result applies to, you must now use the + `EvalResourceName` field within individual entries in + `ResourceSpecificResults` instead. + """ + eval_decision: str + """The result of the simulation.""" + matched_statements: list[Statement] | None = ... + """ + A list of the statements in the input policies that determine the result + for this scenario. Remember that even if multiple statements allow the + operation on the resource, if only one statement denies that operation, + then the explicit deny overrides any allow. In addition, the deny + statement is the only entry included in the result. + + In the top-level result, this field contains the union of matched + statements across all requested resources. Only statements that + contributed to the reported decision are included. For per-resource + matched statements, see `ResourceSpecificResults`. This field doesn't + include statements from service control policies (SCPs). Only statements + from identity-based and resource-based policies appear here. + """ + missing_context_values: list[str] | None = ... + """ + A list of context keys that are required by the included input policies + but that were not provided by one of the input parameters. This list is + used when the resource in a simulation is \"*\", either explicitly, or + when the `ResourceArns` parameter blank. If you include a list of + resources, then any missing context values are instead included under + the `ResourceSpecificResults` section. To discover the context keys used + by a set of policies, you can call + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + or + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + + In the top-level result, this field contains the deduplicated set of + missing context values across all requested resources. This field + doesn't include context keys referenced by service control policies + (SCPs). Only context keys referenced by identity-based and + resource-based policies appear here. + """ + organizations_decision_detail: OrganizationsDecisionDetail | None = ... + """ + A structure that details how Organizations and its service control + policies affect the results of the simulation. Only applies if the + simulated user's account is part of an organization. + + For resources that don't support organization-level evaluation, this + field is omitted from the top-level result. For per-resource details, + see `ResourceSpecificResults`. + """ + permissions_boundary_decision_detail: PermissionsBoundaryDecisionDetail | None = ... + """ + Contains information about the effect that a permissions boundary has on + a policy simulation when the boundary is applied to an IAM entity. + """ + eval_decision_details: dict[str, str] | None = ... + """ + Additional details about the results of the cross-account evaluation + decision. This parameter is populated for only cross-account + simulations. It contains a brief summary of how each policy type + contributes to the final evaluation decision. + + In the top-level result, this map reports the most restrictive decision + per policy type across all requested resources. + + If the simulation evaluates policies within the same account and + includes a resource ARN, then the parameter is present but the response + is empty. If the simulation evaluates policies within the same account + and specifies all resources (`*`), then the parameter is not returned. + + When you make a cross-account request, Amazon Web Services evaluates the + request in the trusting account and the trusted account. The request is + allowed only if both evaluations return `true`. For more information + about how policies are evaluated, see [Evaluating policies within a + single + account](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics). + + If an Organizations SCP included in the evaluation denies access, the + simulation ends. In this case, policy evaluation does not proceed any + further and this parameter is not returned. + """ + resource_specific_results: list[ResourceSpecificResult] | None = ... + """ + The individual results of the simulation of the API operation specified + in EvalActionName on each resource. + """ + +@dataclass(kw_only=True) +class FeatureDisabledException(ServiceError, _SerdeShape): + """ + The request failed because outbound identity federation is already + disabled for your Amazon Web Services account. You cannot disable the + feature multiple times + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FeatureEnabledException(ServiceError, _SerdeShape): + """ + The request failed because outbound identity federation is already + enabled for your Amazon Web Services account. You cannot enable the + feature multiple times. To fetch the current configuration (including + the unique issuer URL), use the `GetOutboundWebIdentityFederationInfo` + operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class FeatureType(UnknownEnumMixin, StrEnum): + ROOT_CREDENTIALS_MANAGEMENT = "RootCredentialsManagement" + ROOT_SESSIONS = "RootSessions" + +@dataclass(kw_only=True) +class GenerateCredentialReportInput(_SerdeShape): + """Dataclass for GenerateCredentialReportInput structure.""" + +@dataclass(kw_only=True) +class GenerateCredentialReportOutput(_SerdeShape): + """ + Contains the response to a successful + [GenerateCredentialReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html) + request. + """ + + state: str | None = ... + """Information about the state of the credential report.""" + description: str | None = ... + """Information about the credential report.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateOrganizationsAccessReportInput(_SerdeShape): + """Dataclass for GenerateOrganizationsAccessReportInput structure.""" + + entity_path: str | None = ... + """ + The path of the Organizations entity (root, OU, or account). You can + build an entity path using the known structure of your organization. For + example, assume that your account ID is `123456789012` and its parent OU + ID is `ou-rge0-awsabcde`. The organization root ID is + `r-f6g7h8i9j0example` and your organization ID is `o-a1b2c3d4e5`. Your + entity path is + `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-rge0-awsabcde/123456789012`. + """ + organizations_policy_id: str | None = ... + """ + The identifier of the Organizations service control policy (SCP). This + parameter is optional. + + This ID is used to generate information about when an account principal + that is limited by the SCP attempted to access an Amazon Web Services + service. + """ + +@dataclass(kw_only=True) +class GenerateOrganizationsAccessReportOutput(_SerdeShape): + """Dataclass for GenerateOrganizationsAccessReportOutput structure.""" + + job_id: str | None = ... + """ + The job identifier that you can use in the + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html) + operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateServiceLastAccessedDetailsInput(_SerdeShape): + """Dataclass for GenerateServiceLastAccessedDetailsInput structure.""" + + arn: str | None = ... + """ + The ARN of the IAM resource (user, group, role, or managed policy) used + to generate information about when the resource was last used in an + attempt to access an Amazon Web Services service. + """ + granularity: str | None = ... + """ + The level of detail that you want to generate. You can specify whether + you want to generate information about the last attempt to access + services or actions. If you specify service-level granularity, this + operation generates only service data. If you specify action-level + granularity, it generates service and action data. If you don't include + this optional parameter, the operation generates service data. + """ + +@dataclass(kw_only=True) +class GenerateServiceLastAccessedDetailsOutput(_SerdeShape): + """Dataclass for GenerateServiceLastAccessedDetailsOutput structure.""" + + job_id: str | None = ... + """ + The `JobId` that you can use in the + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html) + or + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + operations. The `JobId` returned by `GenerateServiceLastAccessedDetail` + must be used by the same role within a session, or by the same user when + used to call `GetServiceLastAccessedDetail`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAccessKeyLastUsedInput(_SerdeShape): + """Dataclass for GetAccessKeyLastUsedInput structure.""" + + access_key_id: str | None = ... + """ + The identifier of an access key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + +@dataclass(kw_only=True) +class GetAccessKeyLastUsedOutput(_SerdeShape): + """ + Contains the response to a successful + [GetAccessKeyLastUsed](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) + request. It is also returned as a member of the + [AccessKeyMetaData](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKeyMetaData.html) + structure returned by the + [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) + action. + """ + + user_name: str | None = ... + """The name of the IAM user that owns this access key.""" + access_key_last_used: AccessKeyLastUsed | None = ... + """Contains information about the last time the access key was used.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAccountAuthorizationDetailsInput(_SerdeShape): + """Dataclass for GetAccountAuthorizationDetailsInput structure.""" + + filter: list[str] | None = ... + """ + A list of entity types used to filter the results. Only the entities + that match the types you specify are included in the output. Use the + value `LocalManagedPolicy` to include customer managed policies. + + The format for this parameter is a comma-separated (if more than one) + list of strings. Each string value in the list must be one of the valid + values listed below. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + +@dataclass(kw_only=True) +class GetAccountAuthorizationDetailsOutput(_SerdeShape): + """ + Contains the response to a successful + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + request. + """ + + user_detail_list: list[UserDetail] | None = ... + """A list containing information about IAM users.""" + group_detail_list: list[GroupDetail] | None = ... + """A list containing information about IAM groups.""" + role_detail_list: list[RoleDetail] | None = ... + """A list containing information about IAM roles.""" + policies: list[ManagedPolicyDetail] | None = ... + """A list containing information about managed policies.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAccountPasswordPolicyInput(_SerdeShape): + """Dataclass for GetAccountPasswordPolicyInput structure.""" + +@dataclass(kw_only=True) +class GetAccountPasswordPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html) + request. + """ + + password_policy: PasswordPolicy + """A structure that contains details about the account's password policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAccountPropertiesInput(_SerdeShape): + """Dataclass for GetAccountPropertiesInput structure.""" + +@dataclass(kw_only=True) +class GetAccountPropertiesOutput(_SerdeShape): + """Dataclass for GetAccountPropertiesOutput structure.""" + + properties: dict[str, str] | None = ... + """ + A map of account property key-value pairs. Keys are in the format + `Namespace/PropertyName`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetAccountSummaryInput(_SerdeShape): + """Dataclass for GetAccountSummaryInput structure.""" + +@dataclass(kw_only=True) +class GetAccountSummaryOutput(_SerdeShape): + """ + Contains the response to a successful + [GetAccountSummary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html) + request. + """ + + summary_map: dict[str, int] | None = ... + """ + A set of key--value pairs containing information about IAM entity usage + and IAM quotas. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetContextKeysForCustomPolicyInput(_SerdeShape): + """Dataclass for GetContextKeysForCustomPolicyInput structure.""" + + policy_input_list: list[str] | None = ... + """ + A list of policies for which you want the list of context keys + referenced in those policies. Each document is specified as a string + containing the complete, valid JSON text of an IAM policy. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class GetContextKeysForCustomPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) + or + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + request. + """ + + context_key_names: list[str] | None = ... + """The list of context keys that are referenced in the input policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetContextKeysForPrincipalPolicyInput(_SerdeShape): + """Dataclass for GetContextKeysForPrincipalPolicyInput structure.""" + + policy_source_arn: str | None = ... + """ + The ARN of a user, group, or role whose policies contain the context + keys that you want listed. If you specify a user, the list includes + context keys that are found in all policies that are attached to the + user. The list also includes all groups that the user is a member of. If + you pick a group or a role, then it includes only those context keys + that are found in policies attached to that entity. Note that all + parameters are shown in unencoded form here for clarity, but must be URL + encoded to be included as a part of a real HTML request. + + For more information about ARNs, 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*. + """ + policy_input_list: list[str] | None = ... + """ + An optional list of additional policies for which you want the list of + context keys that are referenced. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class GetContextKeysForPrincipalPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) + or + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + request. + """ + + context_key_names: list[str] | None = ... + """The list of context keys that are referenced in the input policies.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetCredentialReportInput(_SerdeShape): + """Dataclass for GetCredentialReportInput structure.""" + +@dataclass(kw_only=True) +class GetCredentialReportOutput(_SerdeShape): + """ + Contains the response to a successful + [GetCredentialReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html) + request. + """ + + content: bytes | None = ... + """Contains the credential report. The report is Base64-encoded.""" + report_format: str | None = ... + """The format (MIME type) of the credential report.""" + generated_time: datetime | None = ... + """ + The date and time when the credential report was created, in [ISO 8601 + date-time format](http://www.iso.org/iso/iso8601). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetDelegationRequestInput(_SerdeShape): + """Dataclass for GetDelegationRequestInput structure.""" + + delegation_request_id: str | None = ... + """The unique identifier of the delegation request to retrieve.""" + delegation_permission_check: bool = ... + """ + Specifies whether to perform a permission check for the delegation + request. + + If set to true, the `GetDelegationRequest` API call will start a + permission check process. This process calculates whether the caller has + sufficient permissions to cover the asks from this delegation request. + + Setting this parameter to true does not guarantee an answer in the + response. See the `PermissionCheckStatus` and the + `PermissionCheckResult` response attributes for further details. + """ + +@dataclass(kw_only=True) +class GetDelegationRequestOutput(_SerdeShape): + """Dataclass for GetDelegationRequestOutput structure.""" + + delegation_request: DelegationRequest | None = ... + """The delegation request object containing all details about the request.""" + permission_check_status: str | None = ... + """ + The status of the permission check for the delegation request. + + This value indicates the status of the process to check whether the + caller has sufficient permissions to cover the requested actions in the + delegation request. Since this is an asynchronous process, there are + three potential values: + + - `IN_PROGRESS` : The permission check process has started. + + - `COMPLETED` : The permission check process has completed. The + `PermissionCheckResult` will include the result. + + - `FAILED` : The permission check process has failed. + """ + permission_check_result: str | None = ... + """ + The result of the permission check, indicating whether the caller has + sufficient permissions to cover the requested permissions. This is an + approximate result. + + - `ALLOWED` : The caller has sufficient permissions cover all the + requested permissions. + + - `DENIED` : The caller does not have sufficient permissions to cover + all the requested permissions. + + - `UNSURE` : It is not possible to determine whether the caller has all + the permissions needed. This output is most likely for cases when the + caller has permissions with conditions. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetGroupInput(_SerdeShape): + """Dataclass for GetGroupInput structure.""" + + group_name: str | None = ... + """ + The name of the group. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class GetGroupOutput(_SerdeShape): + """ + Contains the response to a successful + [GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html) + request. + """ + + group: Group + """A structure that contains details about the group.""" + users: list[User] + """A list of users in the group.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetGroupPolicyInput(_SerdeShape): + """Dataclass for GetGroupPolicyInput structure.""" + + group_name: str | None = ... + """ + The name of the group the policy is associated with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the policy document to get. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetGroupPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html) + request. + """ + + group_name: str + """The group the policy is associated with.""" + policy_name: str + """The name of the policy.""" + policy_document: str + """ + The policy document. + + IAM stores policies in JSON format. However, resources that were created + using CloudFormation templates can be formatted in YAML. CloudFormation + always converts a YAML policy to JSON format before submitting it to + IAM. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetHumanReadableSummaryInput(_SerdeShape): + """Dataclass for GetHumanReadableSummaryInput structure.""" + + entity_arn: str | None = ... + """ + Arn of the entity to be summarized. At this time, the only supported + entity type is `delegation-request` + """ + locale: str | None = ... + """ + A string representing the locale to use for the summary generation. The + supported locale strings are based on the [Supported languages of the + Amazon Web Services Management + Console](/awsconsolehelpdocs/latest/gsg/change-language.html#supported-languages) + . + """ + +@dataclass(kw_only=True) +class GetHumanReadableSummaryOutput(_SerdeShape): + """Dataclass for GetHumanReadableSummaryOutput structure.""" + + summary_content: str | None = ... + """ + Summary content in the specified locale. Summary content is non-empty + only if the `SummaryState` is `AVAILABLE`. + """ + locale: str | None = ... + """ + The locale that this response was generated for. This maps to the input + locale. + """ + summary_state: str | None = ... + """ + State of summary generation. This generation process is asynchronous and + this attribute indicates the state of the generation process. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetInstanceProfileInput(_SerdeShape): + """Dataclass for GetInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the instance profile to get information about. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetInstanceProfileOutput(_SerdeShape): + """ + Contains the response to a successful + [GetInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html) + request. + """ + + instance_profile: InstanceProfile + """A structure containing details about the instance profile.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetLoginProfileInput(_SerdeShape): + """Dataclass for GetLoginProfileInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose login profile you want to retrieve. + + This parameter is optional. If no user name is included, it defaults to + the principal making the request. When you make this request with root + user credentials, you must use an + [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) + session to omit the user name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetLoginProfileOutput(_SerdeShape): + """ + Contains the response to a successful + [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html) + request. + """ + + login_profile: LoginProfile + """ + A structure containing the user name and the profile creation date for + the user. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetMFADeviceInput(_SerdeShape): + """Dataclass for GetMFADeviceInput structure.""" + + serial_number: str | None = ... + """ + Serial number that uniquely identifies the MFA device. For this API, we + only accept FIDO security key + [ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). + """ + user_name: str | None = ... + """The friendly name identifying the user.""" + +@dataclass(kw_only=True) +class GetMFADeviceOutput(_SerdeShape): + """Dataclass for GetMFADeviceOutput structure.""" + + user_name: str | None = ... + """The friendly name identifying the user.""" + serial_number: str + """ + Serial number that uniquely identifies the MFA device. For this API, we + only accept FIDO security key + [ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). + """ + enable_date: datetime | None = ... + """The date that a specified user's MFA device was first enabled.""" + certifications: dict[str, str] | None = ... + """ + The certifications of a specified user's MFA device. We currently + provide FIPS-140-2, FIPS-140-3, and FIDO certification levels obtained + from [FIDO Alliance Metadata Service + (MDS)](https://fidoalliance.org/metadata/). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for GetOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the OIDC provider resource object in + IAM to get information for. You can get a list of OIDC provider resource + ARNs by using the + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + operation. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class GetOpenIDConnectProviderOutput(_SerdeShape): + """ + Contains the response to a successful + [GetOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html) + request. + """ + + url: str | None = ... + """ + The URL that the IAM OIDC provider resource object is associated with. + For more information, see + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html). + """ + client_id_list: list[str] | None = ... + """ + A list of client IDs (also known as audiences) that are associated with + the specified IAM OIDC provider resource object. For more information, + see + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html). + """ + thumbprint_list: list[str] | None = ... + """ + A list of certificate thumbprints that are associated with the specified + IAM OIDC provider resource object. For more information, see + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html). + """ + create_date: datetime | None = ... + """ + The date and time when the IAM OIDC provider resource object was created + in the Amazon Web Services account. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the specified IAM OIDC provider. The + returned list of tags is sorted by tag key. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOrganizationsAccessReportInput(_SerdeShape): + """Dataclass for GetOrganizationsAccessReportInput structure.""" + + job_id: str | None = ... + """ + The identifier of the request generated by the + [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html) + operation. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + sort_key: str | None = ... + """ + The key that is used to sort the results. If you choose the namespace + key, the results are returned in alphabetical order. If you choose the + time key, the results are sorted numerically by the date and time. + """ + +@dataclass(kw_only=True) +class GetOrganizationsAccessReportOutput(_SerdeShape): + """Dataclass for GetOrganizationsAccessReportOutput structure.""" + + job_status: str + """The status of the job.""" + job_creation_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the report job was + created. + """ + job_completion_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the generated report job + was completed or failed. + + This field is null if the job is still in progress, as indicated by a + job status value of `IN_PROGRESS`. + """ + number_of_services_accessible: int | None = ... + """ + The number of services that the applicable SCPs allow account principals + to access. + """ + number_of_services_not_accessed: int | None = ... + """ + The number of services that account principals are allowed but did not + attempt to access. + """ + access_details: list[AccessDetail] | None = ... + """ + An object that contains details about the most recent attempt to access + the service. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + error_details: ErrorDetails | None = ... + """ + Contains information about the reason that the operation failed. + + This data type is used as a response element in the + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html), + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html), + and + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) + operations. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetOutboundWebIdentityFederationInfoInput(_SerdeShape): + """Dataclass for GetOutboundWebIdentityFederationInfoInput structure.""" + +@dataclass(kw_only=True) +class GetOutboundWebIdentityFederationInfoOutput(_SerdeShape): + """Dataclass for GetOutboundWebIdentityFederationInfoOutput structure.""" + + issuer_identifier: str | None = ... + """ + A unique issuer URL for your Amazon Web Services account that hosts the + OpenID Connect (OIDC) discovery endpoints at + `/.well-known/openid-configuration and /.well-known/jwks.json`. The + OpenID Connect (OIDC) discovery endpoints contain verification keys and + metadata necessary for token verification. + """ + jwt_vending_enabled: bool = ... + """ + Indicates whether outbound identity federation is currently enabled for + your Amazon Web Services account. When true, IAM principals in the + account can call the `GetWebIdentityToken` API to obtain JSON Web Tokens + (JWTs) for authentication with external services. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPolicyInput(_SerdeShape): + """Dataclass for GetPolicyInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the managed policy that you want + information about. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class GetPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + request. + """ + + policy: Policy | None = ... + """A structure containing details about the policy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPolicyVersionInput(_SerdeShape): + """Dataclass for GetPolicyVersionInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the managed policy that you want + information about. + + For more information about ARNs, 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*. + """ + version_id: str | None = ... + """ + Identifies the policy version to retrieve. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + consists of the lowercase letter 'v' followed by one or two digits, + and optionally followed by a period '.' and a string of letters and + digits. + """ + +@dataclass(kw_only=True) +class GetPolicyVersionOutput(_SerdeShape): + """ + Contains the response to a successful + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + request. + """ + + policy_version: PolicyVersion | None = ... + """A structure containing details about the policy version.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRoleInput(_SerdeShape): + """Dataclass for GetRoleInput structure.""" + + role_name: str | None = ... + """ + The name of the IAM role to get information about. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetRoleOutput(_SerdeShape): + """ + Contains the response to a successful + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) + request. + """ + + role: Role + """A structure containing details about the IAM role.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRolePolicyInput(_SerdeShape): + """Dataclass for GetRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name of the role associated with the policy. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the policy document to get. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetRolePolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html) + request. + """ + + role_name: str + """The role the policy is associated with.""" + policy_name: str + """The name of the policy.""" + policy_document: str + """ + The policy document. + + IAM stores policies in JSON format. However, resources that were created + using CloudFormation templates can be formatted in YAML. CloudFormation + always converts a YAML policy to JSON format before submitting it to + IAM. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRoleTemplateVersionInput(_SerdeShape): + """Dataclass for GetRoleTemplateVersionInput structure.""" + + template_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the role template whose version you + want to retrieve. + + For more information about ARNs, 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*. + """ + minor_version: int | None = ... + """ + The minor version of the role template to retrieve. If you do not + specify a minor version, the service returns the template's default + minor version. + """ + +@dataclass(kw_only=True) +class GetRoleTemplateVersionOutput(_SerdeShape): + """Dataclass for GetRoleTemplateVersionOutput structure.""" + + role_template_version: RoleTemplateVersion + """ + A structure that contains details about the requested role template + version. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSAMLProviderInput(_SerdeShape): + """Dataclass for GetSAMLProviderInput structure.""" + + saml_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the SAML provider resource object in + IAM to get information about. + + For more information about ARNs, 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*. + """ + +@dataclass(kw_only=True) +class GetSAMLProviderOutput(_SerdeShape): + """ + Contains the response to a successful + [GetSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html) + request. + """ + + saml_provider_uuid: str | None = ... + """The unique identifier assigned to the SAML provider.""" + saml_metadata_document: str | None = ... + """ + The XML metadata document that includes information about an identity + provider. + """ + create_date: datetime | None = ... + """The date and time when the SAML provider was created.""" + valid_until: datetime | None = ... + """The expiration date and time for the SAML provider.""" + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the specified IAM SAML provider. The + returned list of tags is sorted by tag key. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + assertion_encryption_mode: str | None = ... + """Specifies the encryption setting for the SAML provider.""" + private_key_list: list[SAMLPrivateKey] | None = ... + """The private key metadata for the SAML provider.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetServerCertificateInput(_SerdeShape): + """Dataclass for GetServerCertificateInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the server certificate you want to retrieve information + about. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetServerCertificateOutput(_SerdeShape): + """ + Contains the response to a successful + [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html) + request. + """ + + server_certificate: ServerCertificate + """A structure containing details about the server certificate.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetServiceLastAccessedDetailsInput(_SerdeShape): + """Dataclass for GetServiceLastAccessedDetailsInput structure.""" + + job_id: str | None = ... + """ + The ID of the request generated by the + [GenerateServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateServiceLastAccessedDetails.html) + operation. The `JobId` returned by `GenerateServiceLastAccessedDetail` + must be used by the same role within a session, or by the same user when + used to call `GetServiceLastAccessedDetail`. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + +@dataclass(kw_only=True) +class GetServiceLastAccessedDetailsOutput(_SerdeShape): + """Dataclass for GetServiceLastAccessedDetailsOutput structure.""" + + job_status: str + """The status of the job.""" + job_type: str | None = ... + """ + The type of job. Service jobs return information about when each service + was last accessed. Action jobs also include information about when + tracked actions within the service were last accessed. + """ + job_creation_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the report job was + created. + """ + services_last_accessed: list[ServiceLastAccessed] + """ + A `ServiceLastAccessed` object that contains details about the most + recent attempt to access the service. + """ + job_completion_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the generated report job + was completed or failed. + + This field is null if the job is still in progress, as indicated by a + job status value of `IN_PROGRESS`. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + error: ErrorDetails | None = ... + """An object that contains details about the reason the operation failed.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetServiceLastAccessedDetailsWithEntitiesInput(_SerdeShape): + """Dataclass for GetServiceLastAccessedDetailsWithEntitiesInput structure.""" + + job_id: str | None = ... + """ + The ID of the request generated by the + `GenerateServiceLastAccessedDetails` operation. + """ + service_namespace: str | None = ... + """ + The service namespace for an Amazon Web Services service. Provide the + service namespace to learn when the IAM entity last attempted to access + the specified service. + + To learn the service namespace for a service, see [Actions, resources, + and condition keys for Amazon Web Services + services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) + in the *IAM User Guide*. Choose the name of the service to view details + for that service. In the first paragraph, find the service prefix. For + example, `(service prefix: a4b)`. For more information about service + namespaces, see [Amazon Web Services service + namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces) + in the *Amazon Web Services General Reference*. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + +@dataclass(kw_only=True) +class GetServiceLastAccessedDetailsWithEntitiesOutput(_SerdeShape): + """Dataclass for GetServiceLastAccessedDetailsWithEntitiesOutput structure.""" + + job_status: str + """The status of the job.""" + job_creation_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the report job was + created. + """ + job_completion_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the generated report job + was completed or failed. + + This field is null if the job is still in progress, as indicated by a + job status value of `IN_PROGRESS`. + """ + entity_details_list: list[EntityDetails] + """ + An `EntityDetailsList` object that contains details about when an IAM + entity (user or role) used group or policy permissions in an attempt to + access the specified Amazon Web Services service. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + error: ErrorDetails | None = ... + """An object that contains details about the reason the operation failed.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetServiceLinkedRoleDeletionStatusInput(_SerdeShape): + """Dataclass for GetServiceLinkedRoleDeletionStatusInput structure.""" + + deletion_task_id: str | None = ... + """ + The deletion task identifier. This identifier is returned by the + [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) + operation in the format + `task/aws-service-role/```{=html}`/```{=html}`/```{=html}. + """ + +@dataclass(kw_only=True) +class GetServiceLinkedRoleDeletionStatusOutput(_SerdeShape): + """Dataclass for GetServiceLinkedRoleDeletionStatusOutput structure.""" + + status: str + """The status of the deletion.""" + reason: DeletionTaskFailureReasonType | None = ... + """An object that contains details about the reason the deletion failed.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetSSHPublicKeyInput(_SerdeShape): + """Dataclass for GetSSHPublicKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + ssh_public_key_id: str | None = ... + """ + The unique identifier for the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + encoding: str | None = ... + """ + Specifies the public key encoding format to use in the response. To + retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the + public key in PEM format, use `PEM`. + """ + +@dataclass(kw_only=True) +class GetSSHPublicKeyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSSHPublicKey.html) + request. + """ + + ssh_public_key: SSHPublicKey | None = ... + """A structure containing details about the SSH public key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetUserInput(_SerdeShape): + """Dataclass for GetUserInput structure.""" + + user_name: str | None = ... + """ + The name of the user to get information about. + + This parameter is optional. If it is not included, it defaults to the + user making the request. This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetUserOutput(_SerdeShape): + """ + Contains the response to a successful + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) + request. + """ + + user: User + """ + A structure containing details about the IAM user. + + Warning: + Due to a service issue, password last used data does not include + password use from May 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This + affects [last + sign-in](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html) + dates shown in the IAM console and password last used dates in the [IAM + credential + report](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html), + and returned by this operation. If users signed in during the affected + time, the password last used date that is returned is the date the user + last signed in before May 3, 2018. For users that signed in after May + 23, 2018 14:08 PDT, the returned password last used date is accurate. + + You can use password last used information to identify unused + credentials for deletion. For example, you might delete users who did + not sign in to Amazon Web Services in the last 90 days. In cases like + this, we recommend that you adjust your evaluation window to include + dates after May 23, 2018. Alternatively, if your users use access keys + to access Amazon Web Services programmatically you can refer to access + key last used information because it is accurate for all dates. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetUserPolicyInput(_SerdeShape): + """Dataclass for GetUserPolicyInput structure.""" + + user_name: str | None = ... + """ + The name of the user who the policy is associated with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the policy document to get. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class GetUserPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html) + request. + """ + + user_name: str + """The user the policy is associated with.""" + policy_name: str + """The name of the policy.""" + policy_document: str + """ + The policy document. + + IAM stores policies in JSON format. However, resources that were created + using CloudFormation templates can be formatted in YAML. CloudFormation + always converts a YAML policy to JSON format before submitting it to + IAM. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class GlobalEndpointTokenVersion(UnknownEnumMixin, StrEnum): + V1_TOKEN = "v1Token" + V2_TOKEN = "v2Token" + +@dataclass(kw_only=True) +class Group(_SerdeShape): + """ + Contains information about an IAM group entity. + + This data type is used as a response element in the following + operations: + + - [CreateGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html) + + - [GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html) + + - [ListGroups](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html) + """ + + path: str + """ + The path to the group. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + group_name: str + """The friendly name that identifies the group.""" + group_id: str + """ + The stable and unique string identifying the group. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str + """ + The Amazon Resource Name (ARN) specifying the group. For more + information about ARNs and how to use them in policies, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + create_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the group was created. + """ + +@dataclass(kw_only=True) +class GroupDetail(_SerdeShape): + """ + Contains information about an IAM group, including all of the group's + policies. + + This data type is used as a response element in the + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operation. + """ + + path: str | None = ... + """ + The path to the group. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + group_name: str | None = ... + """The friendly name that identifies the group.""" + group_id: str | None = ... + """ + The stable and unique string identifying the group. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the group was created. + """ + group_policy_list: list[PolicyDetail] | None = ... + """A list of the inline policies embedded in the group.""" + attached_managed_policies: list[AttachedPolicy] | None = ... + """A list of the managed policies attached to the group.""" + +@dataclass(kw_only=True) +class InlinePolicy(_SerdeShape): + """ + Contains an inline policy template that the service embeds in roles that + you create from a role template. + """ + + policy_name: str + """The name of the inline policy.""" + policy_document: str + """The inline policy document.""" + +@dataclass(kw_only=True) +class InlinePolicyIdentifierType(_SerdeShape): + """ + Identifies one or more inline policies that are embedded in IAM users, + groups, or roles, by the name of the policy together with the type and + name of the entity that it is attached to. Wildcard characters in the + entity name can match multiple entities, so a single identifier can + select more than one attached inline policy. + """ + + policy_name: str + """The name of the inline policy.""" + attachment_type: str + """The type of IAM entity that the inline policy is attached to.""" + attachment_name: str + """ + The name of the IAM user, group, or role that the inline policy is + attached to. Wildcard characters are supported to match multiple + entities: use at most one `*` (matches any sequence of characters, + including none), and any number of `?` (each matches exactly one + character). + """ + +@dataclass(kw_only=True) +class InstanceProfile(_SerdeShape): + """ + Contains information about an instance profile. + + This data type is used as a response element in the following + operations: + + - [CreateInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html) + + - [GetInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html) + + - [ListInstanceProfiles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html) + + - [ListInstanceProfilesForRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html) + """ + + path: str + """ + The path to the instance profile. For more information about paths, see + [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + instance_profile_name: str + """The name identifying the instance profile.""" + instance_profile_id: str + """ + The stable and unique string identifying the instance profile. For more + information about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str + """ + The Amazon Resource Name (ARN) specifying the instance profile. For more + information about ARNs and how to use them in policies, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + create_date: datetime + """The date when the instance profile was created.""" + roles: list[Role] + """The role associated with the instance profile.""" + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the instance profile. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class InvalidAuthenticationCodeException(ServiceError, _SerdeShape): + """ + The request was rejected because the authentication code was not + recognized. The error message describes the specific error. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidCertificateException(ServiceError, _SerdeShape): + """The request was rejected because the certificate is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidInputException(ServiceError, _SerdeShape): + """ + The request was rejected because an invalid or out-of-range value was + supplied for an input parameter. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidPublicKeyException(ServiceError, _SerdeShape): + """ + The request was rejected because the public key is malformed or + otherwise invalid. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidUserTypeException(ServiceError, _SerdeShape): + """ + The request was rejected because the type of user for the transaction + was incorrect. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class JobStatusType(UnknownEnumMixin, StrEnum): + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class KeyPairMismatchException(ServiceError, _SerdeShape): + """ + The request was rejected because the public key certificate and the + private key do not match. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """ + The request was rejected because it attempted to create resources beyond + the current Amazon Web Services account limits. The error message + describes the limit exceeded. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAccessKeysInput(_SerdeShape): + """Dataclass for ListAccessKeysInput structure.""" + + user_name: str | None = ... + """ + The name of the user. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListAccessKeysOutput(_SerdeShape): + """ + Contains the response to a successful + [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) + request. + """ + + access_key_metadata: list[AccessKeyMetadata] + """A list of objects containing metadata about the access keys.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAccountAliasesInput(_SerdeShape): + """Dataclass for ListAccountAliasesInput structure.""" + + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListAccountAliasesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListAccountAliases](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccountAliases.html) + request. + """ + + account_aliases: list[str] + """ + A list of aliases associated with the account. Amazon Web Services + supports only one alias per account. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAttachedGroupPoliciesInput(_SerdeShape): + """Dataclass for ListAttachedGroupPoliciesInput structure.""" + + group_name: str | None = ... + """ + The name (friendly name, not ARN) of the group to list attached policies + for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + path_prefix: str | None = ... + """ + The path prefix for filtering the results. This parameter is optional. + If it is not included, it defaults to a slash (/), listing all policies. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListAttachedGroupPoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html) + request. + """ + + attached_policies: list[AttachedPolicy] | None = ... + """A list of the attached policies.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAttachedRolePoliciesInput(_SerdeShape): + """Dataclass for ListAttachedRolePoliciesInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) of the role to list attached policies + for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + path_prefix: str | None = ... + """ + The path prefix for filtering the results. This parameter is optional. + If it is not included, it defaults to a slash (/), listing all policies. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListAttachedRolePoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html) + request. + """ + + attached_policies: list[AttachedPolicy] | None = ... + """A list of the attached policies.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAttachedUserPoliciesInput(_SerdeShape): + """Dataclass for ListAttachedUserPoliciesInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) of the user to list attached policies + for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + path_prefix: str | None = ... + """ + The path prefix for filtering the results. This parameter is optional. + If it is not included, it defaults to a slash (/), listing all policies. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListAttachedUserPoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html) + request. + """ + + attached_policies: list[AttachedPolicy] | None = ... + """A list of the attached policies.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDelegationRequestsInput(_SerdeShape): + """Dataclass for ListDelegationRequestsInput structure.""" + + owner_id: str | None = ... + """The owner ID to filter delegation requests by.""" + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM may return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListDelegationRequestsOutput(_SerdeShape): + """Dataclass for ListDelegationRequestsOutput structure.""" + + delegation_requests: list[DelegationRequest] | None = ... + """A list of delegation requests that match the specified criteria.""" + marker: str | None = ... + """ + When `isTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListEntitiesForPolicyInput(_SerdeShape): + """Dataclass for ListEntitiesForPolicyInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy for which you want the + versions. + + For more information about ARNs, 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*. + """ + entity_filter: str | None = ... + """ + The entity type to use for filtering the results. + + For example, when `EntityFilter` is `Role`, only the roles that are + attached to the specified policy are returned. This parameter is + optional. If it is not included, all attached entities (users, groups, + and roles) are returned. The argument for this parameter must be one of + the valid values listed below. + """ + path_prefix: str | None = ... + """ + The path prefix for filtering the results. This parameter is optional. + If it is not included, it defaults to a slash (/), listing all entities. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + policy_usage_filter: str | None = ... + """ + The policy usage method to use for filtering the results. + + To list only permissions policies, set `PolicyUsageFilter` to + `PermissionsPolicy`. To list only the policies used to set permissions + boundaries, set the value to `PermissionsBoundary`. + + This parameter is optional. If it is not included, all policies are + returned. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListEntitiesForPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html) + request. + """ + + policy_groups: list[PolicyGroup] | None = ... + """A list of IAM groups that the policy is attached to.""" + policy_users: list[PolicyUser] | None = ... + """A list of IAM users that the policy is attached to.""" + policy_roles: list[PolicyRole] | None = ... + """A list of IAM roles that the policy is attached to.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGroupPoliciesInput(_SerdeShape): + """Dataclass for ListGroupPoliciesInput structure.""" + + group_name: str | None = ... + """ + The name of the group to list policies for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListGroupPoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html) + request. + """ + + policy_names: list[str] + """ + A list of policy names. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGroupsForUserInput(_SerdeShape): + """Dataclass for ListGroupsForUserInput structure.""" + + user_name: str | None = ... + """ + The name of the user to list groups for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListGroupsForUserOutput(_SerdeShape): + """ + Contains the response to a successful + [ListGroupsForUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html) + request. + """ + + groups: list[Group] + """A list of groups.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGroupsInput(_SerdeShape): + """Dataclass for ListGroupsInput structure.""" + + path_prefix: str | None = ... + """ + The path prefix for filtering the results. For example, the prefix + `/division_abc/subdivision_xyz/` gets all groups whose path starts with + `/division_abc/subdivision_xyz/`. + + This parameter is optional. If it is not included, it defaults to a + slash (/), listing all groups. This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListGroupsOutput(_SerdeShape): + """ + Contains the response to a successful + [ListGroups](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html) + request. + """ + + groups: list[Group] + """A list of groups.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListInstanceProfilesForRoleInput(_SerdeShape): + """Dataclass for ListInstanceProfilesForRoleInput structure.""" + + role_name: str | None = ... + """ + The name of the role to list instance profiles for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListInstanceProfilesForRoleOutput(_SerdeShape): + """ + Contains the response to a successful + [ListInstanceProfilesForRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html) + request. + """ + + instance_profiles: list[InstanceProfile] + """A list of instance profiles.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListInstanceProfilesInput(_SerdeShape): + """Dataclass for ListInstanceProfilesInput structure.""" + + path_prefix: str | None = ... + """ + The path prefix for filtering the results. For example, the prefix + `/application_abc/component_xyz/` gets all instance profiles whose path + starts with `/application_abc/component_xyz/`. + + This parameter is optional. If it is not included, it defaults to a + slash (/), listing all instance profiles. This parameter allows (through + its [regex pattern](http://wikipedia.org/wiki/regex)) a string of + characters consisting of either a forward slash (/) by itself or a + string that must begin and end with forward slashes. In addition, it can + contain any ASCII character from the ! (`\u0021`) through the DEL + character (`\u007f`), including most punctuation characters, digits, and + upper and lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListInstanceProfilesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListInstanceProfiles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html) + request. + """ + + instance_profiles: list[InstanceProfile] + """A list of instance profiles.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListInstanceProfileTagsInput(_SerdeShape): + """Dataclass for ListInstanceProfileTagsInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the IAM instance profile whose tags you want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListInstanceProfileTagsOutput(_SerdeShape): + """Dataclass for ListInstanceProfileTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the IAM instance + profile. Each tag consists of a key name and an associated value. If no + tags are attached to the specified resource, the response contains an + empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListMFADevicesInput(_SerdeShape): + """Dataclass for ListMFADevicesInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose MFA devices you want to list. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListMFADevicesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListMFADevices](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html) + request. + """ + + mfa_devices: list[MFADevice] + """A list of MFA devices.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListMFADeviceTagsInput(_SerdeShape): + """Dataclass for ListMFADeviceTagsInput structure.""" + + serial_number: str | None = ... + """ + The unique identifier for the IAM virtual MFA device whose tags you want + to see. For virtual MFA devices, the serial number is the same as the + ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListMFADeviceTagsOutput(_SerdeShape): + """Dataclass for ListMFADeviceTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the virtual MFA device. + Each tag consists of a key name and an associated value. If no tags are + attached to the specified resource, the response contains an empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListOpenIDConnectProvidersInput(_SerdeShape): + """Dataclass for ListOpenIDConnectProvidersInput structure.""" + +@dataclass(kw_only=True) +class ListOpenIDConnectProvidersOutput(_SerdeShape): + """ + Contains the response to a successful + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + request. + """ + + open_id_connect_provider_list: list[OpenIDConnectProviderListEntry] | None = ... + """ + The list of IAM OIDC provider resource objects defined in the Amazon Web + Services account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListOpenIDConnectProviderTagsInput(_SerdeShape): + """Dataclass for ListOpenIDConnectProviderTagsInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The ARN of the OpenID Connect (OIDC) identity provider whose tags you + want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListOpenIDConnectProviderTagsOutput(_SerdeShape): + """Dataclass for ListOpenIDConnectProviderTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the OpenID Connect + (OIDC) identity provider. Each tag consists of a key name and an + associated value. If no tags are attached to the specified resource, the + response contains an empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListOrganizationsFeaturesInput(_SerdeShape): + """Dataclass for ListOrganizationsFeaturesInput structure.""" + +@dataclass(kw_only=True) +class ListOrganizationsFeaturesOutput(_SerdeShape): + """Dataclass for ListOrganizationsFeaturesOutput structure.""" + + organization_id: str | None = ... + """The unique identifier (ID) of an organization.""" + enabled_features: list[str] | None = ... + """ + Specifies the features that are currently available in your + organization. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPoliciesGrantingServiceAccessEntry(_SerdeShape): + """ + Contains details about the permissions policies that are attached to the + specified identity (user, group, or role). + + This data type is used as a response element in the + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html) + operation. + """ + + service_namespace: str | None = ... + """ + The namespace of the service that was accessed. + + To learn the service namespace of a service, see [Actions, resources, + and condition keys for Amazon Web Services + services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) + in the *Service Authorization Reference*. Choose the name of the service + to view details for that service. In the first paragraph, find the + service prefix. For example, `(service prefix: a4b)`. For more + information about service namespaces, see [Amazon Web Services service + namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces) + in the *Amazon Web Services General Reference*. + """ + policies: list[PolicyGrantingServiceAccess] | None = ... + """ + The `PoliciesGrantingServiceAccess` object that contains details about + the policy. + """ + +@dataclass(kw_only=True) +class ListPoliciesGrantingServiceAccessInput(_SerdeShape): + """Dataclass for ListPoliciesGrantingServiceAccessInput structure.""" + + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + arn: str | None = ... + """ + The ARN of the IAM identity (user, group, or role) whose policies you + want to list. + """ + service_namespaces: list[str] | None = ... + """ + The service namespace for the Amazon Web Services services whose + policies you want to list. + + To learn the service namespace for a service, see [Actions, resources, + and condition keys for Amazon Web Services + services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) + in the *IAM User Guide*. Choose the name of the service to view details + for that service. In the first paragraph, find the service prefix. For + example, `(service prefix: a4b)`. For more information about service + namespaces, see [Amazon Web Services service + namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces) + in the *Amazon Web Services General Reference*. + """ + +@dataclass(kw_only=True) +class ListPoliciesGrantingServiceAccessOutput(_SerdeShape): + """Dataclass for ListPoliciesGrantingServiceAccessOutput structure.""" + + policies_granting_service_access: list[ListPoliciesGrantingServiceAccessEntry] + """ + A `ListPoliciesGrantingServiceAccess` object that contains details about + the permissions policies attached to the specified identity (user, + group, or role). + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. We + recommend that you check `IsTruncated` after every call to ensure that + you receive all your results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPoliciesInput(_SerdeShape): + """Dataclass for ListPoliciesInput structure.""" + + scope: str | None = ... + """ + The scope to use for filtering the results. + + To list only Amazon Web Services managed policies, set `Scope` to `AWS`. + To list only the customer managed policies in your Amazon Web Services + account, set `Scope` to `Local`. + + This parameter is optional. If it is not included, or if it is set to + `All`, all policies are returned. + """ + only_attached: bool = ... + """ + A flag to filter the results to only the attached policies. + + When `OnlyAttached` is `true`, the returned list contains only the + policies that are attached to an IAM user, group, or role. When + `OnlyAttached` is `false`, or when the parameter is not included, all + policies are returned. + """ + path_prefix: str | None = ... + """ + The path prefix for filtering the results. This parameter is optional. + If it is not included, it defaults to a slash (/), listing all policies. + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + policy_usage_filter: str | None = ... + """ + The policy usage method to use for filtering the results. + + To list only permissions policies, set `PolicyUsageFilter` to + `PermissionsPolicy`. To list only the policies used to set permissions + boundaries, set the value to `PermissionsBoundary`. + + This parameter is optional. If it is not included, all policies are + returned. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListPoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html) + request. + """ + + policies: list[Policy] | None = ... + """A list of policies.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPolicyTagsInput(_SerdeShape): + """Dataclass for ListPolicyTagsInput structure.""" + + policy_arn: str | None = ... + """ + The ARN of the IAM customer managed policy whose tags you want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListPolicyTagsOutput(_SerdeShape): + """Dataclass for ListPolicyTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the IAM customer managed + policy. Each tag consists of a key name and an associated value. If no + tags are attached to the specified resource, the response contains an + empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPolicyVersionsInput(_SerdeShape): + """Dataclass for ListPolicyVersionsInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy for which you want the + versions. + + For more information about ARNs, 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*. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListPolicyVersionsOutput(_SerdeShape): + """ + Contains the response to a successful + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html) + request. + """ + + versions: list[PolicyVersion] | None = ... + """ + A list of policy versions. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRolePoliciesInput(_SerdeShape): + """Dataclass for ListRolePoliciesInput structure.""" + + role_name: str | None = ... + """ + The name of the role to list policies for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListRolePoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html) + request. + """ + + policy_names: list[str] + """A list of policy names.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRolesInput(_SerdeShape): + """Dataclass for ListRolesInput structure.""" + + path_prefix: str | None = ... + """ + The path prefix for filtering the results. For example, the prefix + `/application_abc/component_xyz/` gets all roles whose path starts with + `/application_abc/component_xyz/`. + + This parameter is optional. If it is not included, it defaults to a + slash (/), listing all roles. This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListRolesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) + request. + """ + + roles: list[Role] + """A list of roles.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRoleTagsInput(_SerdeShape): + """Dataclass for ListRoleTagsInput structure.""" + + role_name: str | None = ... + """ + The name of the IAM role for which you want to see the list of tags. + + This parameter accepts (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + consist of upper and lowercase alphanumeric characters with no spaces. + You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListRoleTagsOutput(_SerdeShape): + """Dataclass for ListRoleTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the role. Each tag + consists of a key name and an associated value. If no tags are attached + to the specified resource, the response contains an empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListSAMLProvidersInput(_SerdeShape): + """Dataclass for ListSAMLProvidersInput structure.""" + +@dataclass(kw_only=True) +class ListSAMLProvidersOutput(_SerdeShape): + """ + Contains the response to a successful + [ListSAMLProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html) + request. + """ + + saml_provider_list: list[SAMLProviderListEntry] | None = ... + """ + The list of SAML provider resource objects defined in IAM for this + Amazon Web Services account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListSAMLProviderTagsInput(_SerdeShape): + """Dataclass for ListSAMLProviderTagsInput structure.""" + + saml_provider_arn: str | None = ... + """ + The ARN of the Security Assertion Markup Language (SAML) identity + provider whose tags you want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListSAMLProviderTagsOutput(_SerdeShape): + """Dataclass for ListSAMLProviderTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the Security Assertion + Markup Language (SAML) identity provider. Each tag consists of a key + name and an associated value. If no tags are attached to the specified + resource, the response contains an empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServerCertificatesInput(_SerdeShape): + """Dataclass for ListServerCertificatesInput structure.""" + + path_prefix: str | None = ... + """ + The path prefix for filtering the results. For example: + `/company/servercerts` would get all server certificates for which the + path starts with `/company/servercerts`. + + This parameter is optional. If it is not included, it defaults to a + slash (/), listing all server certificates. This parameter allows + (through its [regex pattern](http://wikipedia.org/wiki/regex)) a string + of characters consisting of either a forward slash (/) by itself or a + string that must begin and end with forward slashes. In addition, it can + contain any ASCII character from the ! (`\u0021`) through the DEL + character (`\u007f`), including most punctuation characters, digits, and + upper and lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListServerCertificatesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListServerCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html) + request. + """ + + server_certificate_metadata_list: list[ServerCertificateMetadata] + """A list of server certificates.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServerCertificateTagsInput(_SerdeShape): + """Dataclass for ListServerCertificateTagsInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the IAM server certificate whose tags you want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListServerCertificateTagsOutput(_SerdeShape): + """Dataclass for ListServerCertificateTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the IAM server + certificate. Each tag consists of a key name and an associated value. If + no tags are attached to the specified resource, the response contains an + empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListServiceSpecificCredentialsInput(_SerdeShape): + """Dataclass for ListServiceSpecificCredentialsInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose service-specific credentials you want + information about. If this value is not specified, then the operation + assumes the user whose credentials are used to call the operation. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + service_name: str | None = ... + """ + Filters the returned results to only those for the specified Amazon Web + Services service. If not specified, then Amazon Web Services returns + service-specific credentials for all services. + """ + all_users: bool | None = ... + """ + A flag indicating whether to list service specific credentials for all + users. This parameter cannot be specified together with UserName. When + true, returns all credentials associated with the specified service. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the Marker from the response that you received to indicate + where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the IsTruncated response element is true. + """ + +@dataclass(kw_only=True) +class ListServiceSpecificCredentialsOutput(_SerdeShape): + """Dataclass for ListServiceSpecificCredentialsOutput structure.""" + + service_specific_credentials: list[ServiceSpecificCredentialMetadata] | None = ... + """ + A list of structures that each contain details about a service-specific + credential. + """ + marker: str | None = ... + """ + When IsTruncated is true, this element is present and contains the value + to use for the Marker parameter in a subsequent pagination request. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the Marker request parameter to retrieve more items. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListSigningCertificatesInput(_SerdeShape): + """Dataclass for ListSigningCertificatesInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user whose signing certificates you want to examine. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListSigningCertificatesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListSigningCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSigningCertificates.html) + request. + """ + + certificates: list[SigningCertificate] + """A list of the user's signing certificate information.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListSSHPublicKeysInput(_SerdeShape): + """Dataclass for ListSSHPublicKeysInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user to list SSH public keys for. If none is + specified, the `UserName` field is determined implicitly based on the + Amazon Web Services access key used to sign the request. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListSSHPublicKeysOutput(_SerdeShape): + """ + Contains the response to a successful + [ListSSHPublicKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSSHPublicKeys.html) + request. + """ + + ssh_public_keys: list[SSHPublicKeyMetadata] | None = ... + """A list of the SSH public keys assigned to IAM user.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListUserPoliciesInput(_SerdeShape): + """Dataclass for ListUserPoliciesInput structure.""" + + user_name: str | None = ... + """ + The name of the user to list policies for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListUserPoliciesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html) + request. + """ + + policy_names: list[str] + """A list of policy names.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListUsersInput(_SerdeShape): + """Dataclass for ListUsersInput structure.""" + + path_prefix: str | None = ... + """ + The path prefix for filtering the results. For example: + `/division_abc/subdivision_xyz/`, which would get all user names whose + path starts with `/division_abc/subdivision_xyz/`. + + This parameter is optional. If it is not included, it defaults to a + slash (/), listing all user names. This parameter allows (through its + [regex pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListUsersOutput(_SerdeShape): + """ + Contains the response to a successful + [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) + request. + """ + + users: list[User] + """A list of users.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListUserTagsInput(_SerdeShape): + """Dataclass for ListUserTagsInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user whose tags you want to see. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListUserTagsOutput(_SerdeShape): + """Dataclass for ListUserTagsOutput structure.""" + + tags: list[Tag] + """ + The list of tags that are currently attached to the user. Each tag + consists of a key name and an associated value. If no tags are attached + to the specified resource, the response contains an empty list. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListVirtualMFADevicesInput(_SerdeShape): + """Dataclass for ListVirtualMFADevicesInput structure.""" + + assignment_status: str | None = ... + """ + The status (`Unassigned` or `Assigned`) of the devices to list. If you + do not specify an `AssignmentStatus`, the operation defaults to `Any`, + which lists both assigned and unassigned virtual MFA devices., + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + +@dataclass(kw_only=True) +class ListVirtualMFADevicesOutput(_SerdeShape): + """ + Contains the response to a successful + [ListVirtualMFADevices](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) + request. + """ + + virtual_mfa_devices: list[VirtualMFADevice] + """ + The list of virtual MFA devices in the current account that match the + `AssignmentStatus` value that was passed in the request. + """ + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LoginProfile(_SerdeShape): + """ + Contains the user name and password create date for a user. + + This data type is used as a response element in the + [CreateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html) + and + [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html) + operations. + """ + + user_name: str + """ + The name of the user, which can be used for signing in to the Amazon Web + Services Management Console. + """ + create_date: datetime + """The date when the password for the user was created.""" + password_reset_required: bool = ... + """ + Specifies whether the user is required to set a new password on next + sign-in. + """ + +@dataclass(kw_only=True) +class MalformedCertificateException(ServiceError, _SerdeShape): + """ + The request was rejected because the certificate was malformed or + expired. The error message describes the specific error. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MalformedPolicyDocumentException(ServiceError, _SerdeShape): + """ + The request was rejected because the policy document was malformed. The + error message describes the specific error. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ManagedByTypeType(UnknownEnumMixin, StrEnum): + SERVICE = "Service" + +@dataclass(kw_only=True) +class ManagedPolicyDetail(_SerdeShape): + """ + Contains information about a managed policy, including the policy's + ARN, versions, and the number of principal entities (users, groups, and + roles) that the policy is attached to. + + This data type is used as a response element in the + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operation. + + For more information about managed policies, see [Managed policies and + inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + policy_name: str | None = ... + """The friendly name (not ARN) identifying the policy.""" + policy_id: str | None = ... + """ + The stable and unique string identifying the policy. + + For more information about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + path: str | None = ... + """ + The path to the policy. + + For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + default_version_id: str | None = ... + """ + The identifier for the version of the policy that is set as the default + (operative) version. + + For more information about policy versions, see [Versioning for managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + """ + attachment_count: int | None = ... + """ + The number of principal entities (users, groups, and roles) that the + policy is attached to. + """ + permissions_boundary_usage_count: int | None = ... + """ + The number of entities (users and roles) for which the policy is used as + the permissions boundary. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + is_attachable: bool = ... + """ + Specifies whether the policy can be attached to an IAM user, group, or + role. + """ + description: str | None = ... + """A friendly description of the policy.""" + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the policy was created. + """ + update_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the policy was last + updated. + + When a policy has only one version, this field contains the date and + time when the policy was created. When a policy has more than one + version, this field contains the date and time when the most recent + policy version was created. + """ + policy_version_list: list[PolicyVersion] | None = ... + """A list containing information about the versions of the policy.""" + +@dataclass(kw_only=True) +class MFADevice(_SerdeShape): + """ + Contains information about an MFA device. + + This data type is used as a response element in the + [ListMFADevices](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html) + operation. + """ + + user_name: str + """The user with whom the MFA device is associated.""" + serial_number: str + """ + The serial number that uniquely identifies the MFA device. For virtual + MFA devices, the serial number is the device ARN. + """ + enable_date: datetime + """The date when the MFA device was enabled for the user.""" + +@dataclass(kw_only=True) +class NameConflictException(ServiceError, _SerdeShape): + """ + The request was rejected because the resulting role name conflicts with + an existing role in the account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchEntityException(ServiceError, _SerdeShape): + """ + The request was rejected because it referenced a resource entity that + does not exist. The error message describes the resource. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OpenIDConnectProviderListEntry(_SerdeShape): + """ + Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect + provider. + """ + + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + +@dataclass(kw_only=True) +class OpenIdIdpCommunicationErrorException(ServiceError, _SerdeShape): + """ + The request failed because IAM cannot connect to the OpenID Connect + identity provider URL. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OrderedOrganizationPolicyType(_SerdeShape): + """ + Represents one level of an Organizations hierarchy---the organization + root, an organizational unit (OU), or an account---together with the + service control policies (SCPs) that apply at that level. Each element + in the list represents one level of the hierarchy, ordered from the + organization root down to the account. + + For more information about SCPs, see [Service control policies + (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) + in the *Organizations User Guide*. + """ + + service_control_policy_input_list: list[str] | None = ... + """ + A list of SCP documents that apply at this level of the Organizations + hierarchy. Each document is specified as a string containing the + complete, valid JSON text of an SCP. + """ + +@dataclass(kw_only=True) +class OrganizationNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because no organization is associated with your + account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OrganizationNotInAllFeaturesModeException(ServiceError, _SerdeShape): + """ + The request was rejected because your organization does not have All + features enabled. For more information, see [Available feature + sets](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set) + in the *Organizations User Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OrganizationsDecisionDetail(_SerdeShape): + """ + Contains information about the effect that Organizations has on a policy + simulation. + """ + + allowed_by_organizations: bool = ... + """ + Specifies whether the simulated operation is allowed by the + Organizations service control policies that impact the simulated user's + account. + """ + +@dataclass(kw_only=True) +class ParameterDefinition(_SerdeShape): + """ + Defines a parameter that a role template accepts. You supply values for + these parameters when you create a role with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + """ + + name: str + """The name of the parameter.""" + type: str + """ + The data type of the parameter. Valid values are `String`, `StringList`, + `Number`, `NumberList`, `Arn`, and `ArnList`. + """ + sub_type: str | None = ... + """ + An optional subtype that further constrains the values that are allowed + for the parameter. + """ + description: str | None = ... + """A description of the parameter.""" + is_required: bool = ... + """ + Specifies whether you must supply a value for the parameter when you + create a role from the template. + """ + default_value: str | None = ... + """ + The value that the service uses for the parameter when you do not supply + one. + """ + immutable: bool = ... + """ + Specifies whether you can change the parameter value after you create + the role. + """ + +class ParameterTypeType(UnknownEnumMixin, StrEnum): + STRING = "String" + STRING_LIST = "StringList" + NUMBER = "Number" + NUMBER_LIST = "NumberList" + ARN = "Arn" + ARN_LIST = "ArnList" + +@dataclass(kw_only=True) +class PasswordPolicy(_SerdeShape): + """ + Contains information about the account password policy. + + This data type is used as a response element in the + [GetAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html) + operation. + """ + + minimum_password_length: int | None = ... + """Minimum length to require for IAM user passwords.""" + require_symbols: bool = ... + """ + Specifies whether IAM user passwords must contain at least one of the + following symbols: + + ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ' + """ + require_numbers: bool = ... + """ + Specifies whether IAM user passwords must contain at least one numeric + character (0 to 9). + """ + require_uppercase_characters: bool = ... + """ + Specifies whether IAM user passwords must contain at least one uppercase + character (A to Z). + """ + require_lowercase_characters: bool = ... + """ + Specifies whether IAM user passwords must contain at least one lowercase + character (a to z). + """ + allow_users_to_change_password: bool = ... + """ + Specifies whether IAM users are allowed to change their own password. + Gives IAM users permissions to `iam:ChangePassword` for only their user + and to the `iam:GetAccountPasswordPolicy` action. This option does not + attach a permissions policy to each user, rather the permissions are + applied at the account-level for all users by IAM. + """ + expire_passwords: bool = ... + """ + Indicates whether passwords in the account expire. Returns true if + `MaxPasswordAge` contains a value greater than 0. Returns false if + MaxPasswordAge is 0 or not present. + """ + max_password_age: int | None = ... + """The number of days that an IAM user password is valid.""" + password_reuse_prevention: int | None = ... + """ + Specifies the number of previous passwords that IAM users are prevented + from reusing. + """ + hard_expiry: bool | None = ... + """ + Specifies whether IAM users are prevented from setting a new password + via the Amazon Web Services Management Console after their password has + expired. The IAM user cannot access the console until an administrator + resets the password. IAM users with `iam:ChangePassword` permission and + active access keys can reset their own expired console password using + the CLI or API. + """ + +@dataclass(kw_only=True) +class PasswordPolicyViolationException(ServiceError, _SerdeShape): + """ + The request was rejected because the provided password did not meet the + requirements imposed by the account password policy. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class PermissionCheckResultType(UnknownEnumMixin, StrEnum): + ALLOWED = "ALLOWED" + DENIED = "DENIED" + UNSURE = "UNSURE" + +class PermissionCheckStatusType(UnknownEnumMixin, StrEnum): + COMPLETE = "COMPLETE" + IN_PROGRESS = "IN_PROGRESS" + FAILED = "FAILED" + +class PermissionsBoundaryAttachmentType(UnknownEnumMixin, StrEnum): + POLICY = "PermissionsBoundaryPolicy" + +@dataclass(kw_only=True) +class PermissionsBoundaryDecisionDetail(_SerdeShape): + """ + Contains information about the effect that a permissions boundary has on + a policy simulation when the boundary is applied to an IAM entity. + """ + + allowed_by_permissions_boundary: bool = ... + """ + Specifies whether an action is allowed by a permissions boundary that is + applied to an IAM entity (user or role). A value of `true` means that + the permissions boundary does not deny the action. This means that the + policy includes an `Allow` statement that matches the request. In this + case, if an identity-based policy also allows the action, the request is + allowed. A value of `false` means that either the requested action is + not allowed (implicitly denied) or that the action is explicitly denied + by the permissions boundary. In both of these cases, the action is not + allowed, regardless of the identity-based policy. + """ + +@dataclass(kw_only=True) +class Policy(_SerdeShape): + """ + Contains information about a managed policy. + + This data type is used as a response element in the + [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html), + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html), + and + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html) + operations. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + policy_name: str | None = ... + """The friendly name (not ARN) identifying the policy.""" + policy_id: str | None = ... + """ + The stable and unique string identifying the policy. + + For more information about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + path: str | None = ... + """ + The path to the policy. + + For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + default_version_id: str | None = ... + """ + The identifier for the version of the policy that is set as the default + version. + """ + attachment_count: int | None = ... + """ + The number of entities (users, groups, and roles) that the policy is + attached to. + """ + permissions_boundary_usage_count: int | None = ... + """ + The number of entities (users and roles) for which the policy is used to + set the permissions boundary. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + is_attachable: bool = ... + """ + Specifies whether the policy can be attached to an IAM user, group, or + role. + """ + description: str | None = ... + """ + A friendly description of the policy. + + This element is included in the response to the + [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) + operation. It is not included in the response to the + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html) + operation. + """ + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the policy was created. + """ + update_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the policy was last + updated. + + When a policy has only one version, this field contains the date and + time when the policy was created. When a policy has more than one + version, this field contains the date and time when the most recent + policy version was created. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the instance profile. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class PolicyDetail(_SerdeShape): + """ + Contains information about an IAM policy, including the policy document. + + This data type is used as a response element in the + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operation. + """ + + policy_name: str | None = ... + """The name of the policy.""" + policy_document: str | None = ... + """The policy document.""" + +class PolicyEvaluationDecisionType(UnknownEnumMixin, StrEnum): + ALLOWED = "allowed" + EXPLICIT_DENY = "explicitDeny" + IMPLICIT_DENY = "implicitDeny" + +@dataclass(kw_only=True) +class PolicyEvaluationException(ServiceError, _SerdeShape): + """ + The request failed because a provided policy could not be successfully + evaluated. An additional detailed message indicates the source of the + failure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PolicyGrantingServiceAccess(_SerdeShape): + """ + Contains details about the permissions policies that are attached to the + specified identity (user, group, or role). + + This data type is an element of the + [ListPoliciesGrantingServiceAccessEntry](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccessEntry.html) + object. + """ + + policy_name: str + """The policy name.""" + policy_type: str + """ + The policy type. For more information about these policy types, see + [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) + in the *IAM User Guide*. + """ + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + entity_type: str | None = ... + """ + The type of entity (user or role) that used the policy to access the + service to which the inline policy is attached. + + This field is null for managed policies. For more information about + these policy types, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) + in the *IAM User Guide*. + """ + entity_name: str | None = ... + """ + The name of the entity (user or role) to which the inline policy is + attached. + + This field is null for managed policies. For more information about + these policy types, see [Managed policies and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class PolicyGroup(_SerdeShape): + """ + Contains information about a group that a managed policy is attached to. + + This data type is used as a response element in the + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html) + operation. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + group_name: str | None = ... + """The name (friendly name, not ARN) identifying the group.""" + group_id: str | None = ... + """ + The stable and unique string identifying the group. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + in the *IAM User Guide*. + """ + +@dataclass +class PolicyIdentifier_PolicyType(_SerdeShape): + """ + The policy type to identify. All policies of the specified type are + matched. + """ + + value: str + +@dataclass +class PolicyIdentifierPolicyArn(_SerdeShape): + """ + The Amazon Resource Name (ARN) of an Amazon Web Services managed policy + or a customer managed policy that is attached to an IAM user, group, or + role. Wildcard characters are supported in the resource name portion of + the ARN to match multiple managed policies: use at most one `*` (matches + any sequence of characters, including none), and any number of `?` (each + matches exactly one character). + + For more information about ARNs, 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*. + """ + + value: str + +@dataclass +class PolicyIdentifierInlinePolicyIdentifier(_SerdeShape): + """ + An inline policy identifier consisting of a policy name and the entity + it is attached to. Wildcard characters (`*` and `?`) in the entity name + can match multiple entities. + """ + + value: InlinePolicyIdentifierType + +@dataclass +class PolicyIdentifierUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +PolicyIdentifier = Union[ + PolicyIdentifier_PolicyType + | PolicyIdentifierPolicyArn + | PolicyIdentifierInlinePolicyIdentifier + | PolicyIdentifierUnknown +] +""" +Identifies one or more policies as a union type. Specify exactly one of +`PolicyType`, `PolicyArn`, or `InlinePolicyIdentifier` to identify +policies by their type, by Amazon Resource Name (ARN), or by the name of +an inline policy and the entity it is attached to. +""" + +class _PolicyIdentifierDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> PolicyIdentifier: ... + +class PolicyIdentifierPolicyType(UnknownEnumMixin, StrEnum): + INLINE = "inline" + AWS_MANAGED = "aws-managed" + USER_MANAGED = "user-managed" + PERMISSION_BOUNDARY = "permission-boundary" + SCP = "scp" + RCP = "rcp" + +@dataclass(kw_only=True) +class PolicyNotAttachableException(ServiceError, _SerdeShape): + """ + The request failed because Amazon Web Services service role policies can + only be attached to the service-linked role for that service. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class PolicyOwnerEntityType(UnknownEnumMixin, StrEnum): + USER = "USER" + ROLE = "ROLE" + GROUP = "GROUP" + +@dataclass(kw_only=True) +class PolicyParameter(_SerdeShape): + """ + Contains information about a policy parameter used to customize + delegated permissions. + """ + + name: str | None = ... + """The name of the policy parameter.""" + values: list[str] | None = ... + """The allowed values for the policy parameter.""" + type: str | None = ... + """The data type of the policy parameter value.""" + +class PolicyParameterTypeEnum(UnknownEnumMixin, StrEnum): + STRING = "string" + STRING_LIST = "stringList" + +@dataclass(kw_only=True) +class PolicyRole(_SerdeShape): + """ + Contains information about a role that a managed policy is attached to. + + This data type is used as a response element in the + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html) + operation. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + role_name: str | None = ... + """The name (friendly name, not ARN) identifying the role.""" + role_id: str | None = ... + """ + The stable and unique string identifying the role. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + in the *IAM User Guide*. + """ + +class PolicyScopeType(UnknownEnumMixin, StrEnum): + ALL = "All" + AWS = "AWS" + LOCAL = "Local" + +class PolicySourceType(UnknownEnumMixin, StrEnum): + USER = "user" + GROUP = "group" + ROLE = "role" + AWS_MANAGED = "aws-managed" + USER_MANAGED = "user-managed" + RESOURCE = "resource" + NONE = "none" + +class PolicyType(UnknownEnumMixin, StrEnum): + INLINE = "INLINE" + MANAGED = "MANAGED" + +class PolicyUsageType(UnknownEnumMixin, StrEnum): + """ + The policy usage type that indicates whether the policy is used as a + permissions policy or as the permissions boundary for an entity. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + + PERMISSIONS_POLICY = "PermissionsPolicy" + PERMISSIONS_BOUNDARY = "PermissionsBoundary" + +@dataclass(kw_only=True) +class PolicyUser(_SerdeShape): + """ + Contains information about a user that a managed policy is attached to. + + This data type is used as a response element in the + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html) + operation. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + user_name: str | None = ... + """The name (friendly name, not ARN) identifying the user.""" + user_id: str | None = ... + """ + The stable and unique string identifying the user. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class PolicyVersion(_SerdeShape): + """ + Contains information about a version of a managed policy. + + This data type is used as a response element in the + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html), + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html), + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html), + and + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operations. + + For more information about managed policies, refer to [Managed policies + and inline + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) + in the *IAM User Guide*. + """ + + document: str | None = ... + """ + The policy document. + + The policy document is returned in the response to the + [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) + and + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operations. It is not returned in the response to the + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html) + or + [ListPolicyVersions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html) + operations. + + The policy document returned in this structure is URL-encoded compliant + with [RFC 3986](https://tools.ietf.org/html/rfc3986). You can use a URL + decoding method to convert the policy back to plain JSON text. For + example, if you use Java, you can use the `decode` method of the + `java.net.URLDecoder` utility class in the Java SDK. Other languages and + SDKs provide similar functionality. + """ + version_id: str | None = ... + """ + The identifier for the policy version. + + Policy version identifiers always begin with `v` (always lowercase). + When a policy is created, the first policy version is `v1`. + """ + is_default_version: bool = ... + """ + Specifies whether the policy version is set as the policy's default + version. + """ + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the policy version was + created. + """ + +@dataclass(kw_only=True) +class Position(_SerdeShape): + """ + Contains the row and column of a location of a `Statement` element in a + policy document. + + This data type is used as a member of the + ` `[`Statement`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Statement.html)` ` + type. + """ + + line: int = ... + """The line containing the specified position in the document.""" + column: int = ... + """ + The column in the line containing the specified position in the + document. + """ + +@dataclass(kw_only=True) +class PutAccountPropertiesInput(_SerdeShape): + """Dataclass for PutAccountPropertiesInput structure.""" + + properties: dict[str, str] | None = ... + """ + A map of property key-value pairs to set. All keys must belong to the + same namespace. + + Each key uses the format `Namespace/PropertyName`. The key must contain + exactly one `/` separating the namespace from the property name, and + cannot start or end with `/`. + + The service validates each value based on the property key's expected + type. For example, boolean properties expect `true` or `false`. + """ + +@dataclass(kw_only=True) +class PutAccountPropertiesOutput(_SerdeShape): + """Dataclass for PutAccountPropertiesOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutGroupPolicyInput(_SerdeShape): + """Dataclass for PutGroupPolicyInput structure.""" + + group_name: str | None = ... + """ + The name of the group to associate the policy with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@-. + """ + policy_name: str | None = ... + """ + The name of the policy document. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_document: str | None = ... + """ + The policy document. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class PutGroupPolicyOutput(_SerdeShape): + """Dataclass for PutGroupPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutRolePermissionsBoundaryInput(_SerdeShape): + """Dataclass for PutRolePermissionsBoundaryInput structure.""" + + role_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM role for which you want to + set the permissions boundary. + """ + permissions_boundary: str | None = ... + """ + The ARN of the managed policy that is used to set the permissions + boundary for the role. + + A permissions boundary policy defines the maximum permissions that + identity-based policies can grant to an entity, but does not grant + permissions. Permissions boundaries do not define the maximum + permissions that a resource-based policy can grant to an entity. To + learn more, see [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + + For more information about policy types, see [Policy + types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class PutRolePermissionsBoundaryOutput(_SerdeShape): + """Dataclass for PutRolePermissionsBoundaryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutRolePolicyInput(_SerdeShape): + """Dataclass for PutRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name of the role to associate the policy with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the policy document. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_document: str | None = ... + """ + The policy document. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class PutRolePolicyOutput(_SerdeShape): + """Dataclass for PutRolePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutUserPermissionsBoundaryInput(_SerdeShape): + """Dataclass for PutUserPermissionsBoundaryInput structure.""" + + user_name: str | None = ... + """ + The name (friendly name, not ARN) of the IAM user for which you want to + set the permissions boundary. + """ + permissions_boundary: str | None = ... + """ + The ARN of the managed policy that is used to set the permissions + boundary for the user. + + A permissions boundary policy defines the maximum permissions that + identity-based policies can grant to an entity, but does not grant + permissions. Permissions boundaries do not define the maximum + permissions that a resource-based policy can grant to an entity. To + learn more, see [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + + For more information about policy types, see [Policy + types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class PutUserPermissionsBoundaryOutput(_SerdeShape): + """Dataclass for PutUserPermissionsBoundaryOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutUserPolicyInput(_SerdeShape): + """Dataclass for PutUserPolicyInput structure.""" + + user_name: str | None = ... + """ + The name of the user to associate the policy with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_name: str | None = ... + """ + The name of the policy document. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_document: str | None = ... + """ + The policy document. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class PutUserPolicyOutput(_SerdeShape): + """Dataclass for PutUserPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RejectDelegationRequestInput(_SerdeShape): + """Dataclass for RejectDelegationRequestInput structure.""" + + delegation_request_id: str | None = ... + """The unique identifier of the delegation request to reject.""" + notes: str | None = ... + """ + Optional notes explaining the reason for rejecting the delegation + request. + """ + +@dataclass(kw_only=True) +class RejectDelegationRequestOutput(_SerdeShape): + """Dataclass for RejectDelegationRequestOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveClientIDFromOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for RemoveClientIDFromOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM OIDC provider resource to + remove the client ID from. You can get a list of OIDC provider ARNs by + using the + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + operation. + + For more information about ARNs, 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*. + """ + client_id: str | None = ... + """ + The client ID (also known as audience) to remove from the IAM OIDC + provider resource. For more information about client IDs, see + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html). + """ + +@dataclass(kw_only=True) +class RemoveClientIDFromOpenIDConnectProviderOutput(_SerdeShape): + """Dataclass for RemoveClientIDFromOpenIDConnectProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveRoleFromInstanceProfileInput(_SerdeShape): + """Dataclass for RemoveRoleFromInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the instance profile to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + role_name: str | None = ... + """ + The name of the role to remove. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class RemoveRoleFromInstanceProfileOutput(_SerdeShape): + """Dataclass for RemoveRoleFromInstanceProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveUserFromGroupInput(_SerdeShape): + """Dataclass for RemoveUserFromGroupInput structure.""" + + group_name: str | None = ... + """ + The name of the group to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + user_name: str | None = ... + """ + The name of the user to remove. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class RemoveUserFromGroupOutput(_SerdeShape): + """Dataclass for RemoveUserFromGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplacementValueEntry(_SerdeShape): + """ + Contains the list of replacement values for a single template parameter + used when creating a role from a role template. + """ + + values: list[str] + """The list of replacement values for the template parameter.""" + +class ReportFormatType(UnknownEnumMixin, StrEnum): + TEXT_CSV = "text/csv" + +@dataclass(kw_only=True) +class ReportGenerationLimitExceededException(ServiceError, _SerdeShape): + """ + The request failed because the maximum number of concurrent requests for + this account are already running. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ReportStateType(UnknownEnumMixin, StrEnum): + STARTED = "STARTED" + INPROGRESS = "INPROGRESS" + COMPLETE = "COMPLETE" + +@dataclass(kw_only=True) +class ResetServiceSpecificCredentialInput(_SerdeShape): + """Dataclass for ResetServiceSpecificCredentialInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the service-specific + credential. If this value is not specified, then the operation assumes + the user whose credentials are used to call the operation. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + service_specific_credential_id: str | None = ... + """ + The unique identifier of the service-specific credential. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + +@dataclass(kw_only=True) +class ResetServiceSpecificCredentialOutput(_SerdeShape): + """Dataclass for ResetServiceSpecificCredentialOutput structure.""" + + service_specific_credential: ServiceSpecificCredential | None = ... + """ + A structure with details about the updated service-specific credential, + including the new password. + + Warning: + This is the **only** time that you can access the password. You cannot + recover the password later, but you can reset it again. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceSpecificResult(_SerdeShape): + """ + Contains the result of the simulation of a single API operation call on + a single resource. + + This data type is used by a member of the + [EvaluationResult](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EvaluationResult.html) + data type. + """ + + eval_resource_name: str + """ + The name of the simulated resource, in Amazon Resource Name (ARN) + format. + """ + eval_resource_decision: str + """ + The result of the simulation of the simulated API operation on the + resource specified in `EvalResourceName`. + """ + matched_statements: list[Statement] | None = ... + """ + A list of the statements in the input policies that determine the result + for this part of the simulation. Remember that even if multiple + statements allow the operation on the resource, if *any* statement + denies that operation, then the explicit deny overrides any allow. In + addition, the deny statement is the only entry included in the result. + """ + missing_context_values: list[str] | None = ... + """ + A list of context keys that are required by the included input policies + but that were not provided by one of the input parameters. This list is + used when a list of ARNs is included in the `ResourceArns` parameter + instead of \"*\". If you do not specify individual resources, by + setting `ResourceArns` to \"*\" or by not including the `ResourceArns` + parameter, then any missing context values are instead included under + the `EvaluationResults` section. To discover the context keys used by a + set of policies, you can call + [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) + or + [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html). + """ + eval_decision_details: dict[str, str] | None = ... + """ + Additional details about the results of the evaluation decision on a + single resource. This parameter is returned only for cross-account + simulations. This parameter explains how each policy type contributes to + the resource-specific evaluation decision. + """ + permissions_boundary_decision_detail: PermissionsBoundaryDecisionDetail | None = ... + """ + Contains information about the effect that a permissions boundary has on + a policy simulation when that boundary is applied to an IAM entity. + """ + +@dataclass(kw_only=True) +class ResyncMFADeviceInput(_SerdeShape): + """Dataclass for ResyncMFADeviceInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose MFA device you want to resynchronize. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + serial_number: str | None = ... + """ + Serial number that uniquely identifies the MFA device. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + authentication_code1: str | None = ... + """ + An authentication code emitted by the device. + + The format for this parameter is a sequence of six digits. + """ + authentication_code2: str | None = ... + """ + A subsequent authentication code emitted by the device. + + The format for this parameter is a sequence of six digits. + """ + +@dataclass(kw_only=True) +class ResyncMFADeviceOutput(_SerdeShape): + """Dataclass for ResyncMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Role(_SerdeShape): + """ + Contains information about an IAM role. This structure is returned as a + response element in several API operations that interact with roles. + """ + + path: str + """ + The path to the role. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + role_name: str + """The friendly name that identifies the role.""" + role_id: str + """ + The stable and unique string identifying the role. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str + """ + The Amazon Resource Name (ARN) specifying the role. For more information + about ARNs and how to use them in policies, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide* guide. + """ + create_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the role was created. + """ + assume_role_policy_document: str | None = ... + """The policy that grants an entity permission to assume the role.""" + description: str | None = ... + """A description of the role that you provide.""" + max_session_duration: int | None = ... + """ + The maximum session duration (in seconds) for the specified role. Anyone + who uses the CLI, or API to assume the role can specify the duration + using the optional `DurationSeconds` API parameter or `duration-seconds` + CLI parameter. + """ + permissions_boundary: AttachedPermissionsBoundary | None = ... + """ + The ARN of the policy used to set the permissions boundary for the role. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the role. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + role_last_used: RoleLastUsed | None = ... + """ + Contains information about the last time that an IAM role was used. This + includes the date and time and the Region in which the role was last + used. Activity is only reported for the trailing 400 days. This period + can be shorter if your Region began supporting these features within the + last year. The role might have been used more than 400 days ago. For + more information, see [Regions where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) + in the *IAM user Guide*. + """ + source_role_template: SourceRoleTemplate | None = ... + """ + Contains information about the role template that this role was created + from. This member is present only for roles created with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + """ + +@dataclass(kw_only=True) +class RoleDetail(_SerdeShape): + """ + Contains information about an IAM role, including all of the role's + policies. + + This data type is used as a response element in the + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operation. + """ + + path: str | None = ... + """ + The path to the role. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + role_name: str | None = ... + """The friendly name that identifies the role.""" + role_id: str | None = ... + """ + The stable and unique string identifying the role. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the role was created. + """ + assume_role_policy_document: str | None = ... + """The trust policy that grants permission to assume the role.""" + instance_profile_list: list[InstanceProfile] | None = ... + """A list of instance profiles that contain this role.""" + role_policy_list: list[PolicyDetail] | None = ... + """ + A list of inline policies embedded in the role. These policies are the + role's access (permissions) policies. + """ + attached_managed_policies: list[AttachedPolicy] | None = ... + """ + A list of managed policies attached to the role. These policies are the + role's access (permissions) policies. + """ + permissions_boundary: AttachedPermissionsBoundary | None = ... + """ + The ARN of the policy used to set the permissions boundary for the role. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the role. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + role_last_used: RoleLastUsed | None = ... + """ + Contains information about the last time that an IAM role was used. This + includes the date and time and the Region in which the role was last + used. Activity is only reported for the trailing 400 days. This period + can be shorter if your Region began supporting these features within the + last year. The role might have been used more than 400 days ago. For + more information, see [Regions where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class RoleLastUsed(_SerdeShape): + """ + Contains information about the last time that an IAM role was used. This + includes the date and time and the Region in which the role was last + used. Activity is only reported for the trailing 400 days. This period + can be shorter if your Region began supporting these features within the + last year. The role might have been used more than 400 days ago. For + more information, see [Regions where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) + in the *IAM user Guide*. + + This data type is returned as a response element in the + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) + and + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operations. + """ + + last_used_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601) that the role was last used. + + This field is null if the role has not been used within the IAM tracking + period. For more information about the tracking period, see [Regions + where data is + tracked](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) + in the *IAM User Guide*. + """ + region: str | None = ... + """ + The name of the Amazon Web Services Region in which the role was last + used. + """ + +@dataclass(kw_only=True) +class RoleModifiedException(ServiceError, _SerdeShape): + """ + The request was rejected because someone modified the role template + while the service was creating the role. Wait a few minutes and try the + request again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RoleTemplateDisabledException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified role template is + disabled. A disabled role template cannot be used to create new roles. + Contact your administrator to enable the role template, or use a + different role template. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RoleTemplateVersion(_SerdeShape): + """ + Contains information about a version of an IAM role template, including + the configuration that is used to create roles with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + This structure is returned as a response element by the + [GetRoleTemplateVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRoleTemplateVersion.html) + operation. + """ + + template_arn: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the role template. + + For more information about ARNs, 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*. + """ + template_name: str | None = ... + """The friendly name that identifies the role template.""" + template_version_id: str | None = ... + """The identifier of the role template version.""" + description: str | None = ... + """The description of the role template.""" + major_version: int | None = ... + """The major version number of the role template.""" + default_minor_version: int | None = ... + """ + The minor version that the service uses by default when you create a + role from this template without specifying a minor version. + """ + managed_by_type: str | None = ... + """ + Indicates that the role template is managed by an Amazon Web Services + service. + """ + managed_by_value: str | None = ... + """ + The identifier of the Amazon Web Services service that manages the role + template. + """ + enabled: bool = ... + """ + Specifies whether the role template is enabled. When a template is + disabled, you cannot create roles from it. + """ + minor_version: int | None = ... + """The minor version number of this role template version.""" + role_name_pattern: str | None = ... + """ + The pattern that is used to generate the name of a role that is created + from this template. The pattern can include `@{parameter}` placeholders + that are replaced with the values you supply in the `ReplacementValues` + parameter of + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + """ + role_path_pattern: str | None = ... + """ + The pattern that is used to generate the path of a role that is created + from this template. + """ + role_description_pattern: str | None = ... + """ + The pattern that is used to generate the description of a role that is + created from this template. + """ + assume_role_policy_document_template: str | None = ... + """ + The trust policy template that grants an entity permission to assume + roles that you create from this template. + """ + inline_policy_templates: list[InlinePolicy] | None = ... + """ + A list of inline policy templates that the service embeds in roles that + you create from this template. + """ + managed_policy_arns: list[str] | None = ... + """ + A list of the ARNs of the managed policies that the service attaches to + roles that you create from this template. + """ + permission_boundary_arn: str | None = ... + """ + The ARN of the policy that sets the permissions boundary for roles that + you create from this template. + + For more information about ARNs, 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*. + """ + parameters_definition: list[ParameterDefinition] | None = ... + """ + A list of the parameters that are defined for this role template + version. You supply values for these parameters when you create a role + with + [AcquireRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AcquireRole.html). + """ + role_tags_template: list[TagTemplate] | None = ... + """ + A list of tag templates that are applied to roles that are created from + this template. + """ + max_session_duration: int | None = ... + """ + The maximum session duration (in seconds) for roles that are created + from this template. + """ + version_enabled: bool = ... + """ + Specifies whether this specific minor version of the role template is + enabled. + """ + create_timestamp: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the role template version + was created. + """ + update_timestamp: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the role template version + was last updated. + """ + +@dataclass(kw_only=True) +class RoleUsageType(_SerdeShape): + """ + An object that contains details about how a service-linked role is used, + if that information is returned by the service. + + This data type is used as a response element in the + [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) + operation. + """ + + region: str | None = ... + """The name of the Region where the service-linked role is being used.""" + resources: list[str] | None = ... + """The name of the resource that is using the service-linked role.""" + +@dataclass(kw_only=True) +class SAMLPrivateKey(_SerdeShape): + """ + Contains the private keys for the SAML provider. + + This data type is used as a response element in the + [GetSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html) + operation. + """ + + key_id: str | None = ... + """The unique identifier for the SAML private key.""" + timestamp: datetime | None = ... + """ + The date and time, in [ISO 8601 + date-time](http://www.iso.org/iso/iso8601) format, when the private key + was uploaded. + """ + +@dataclass(kw_only=True) +class SAMLProviderListEntry(_SerdeShape): + """Contains the list of SAML providers for this account.""" + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the SAML provider.""" + valid_until: datetime | None = ... + """The expiration date and time for the SAML provider.""" + create_date: datetime | None = ... + """The date and time when the SAML provider was created.""" + +@dataclass(kw_only=True) +class SendDelegationTokenInput(_SerdeShape): + """Dataclass for SendDelegationTokenInput structure.""" + + delegation_request_id: str | None = ... + """ + The unique identifier of the delegation request for which to send the + token. + """ + +@dataclass(kw_only=True) +class SendDelegationTokenOutput(_SerdeShape): + """Dataclass for SendDelegationTokenOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServerCertificate(_SerdeShape): + """ + Contains information about a server certificate. + + This data type is used as a response element in the + [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html) + operation. + """ + + server_certificate_metadata: ServerCertificateMetadata + """ + The meta information of the server certificate, such as its name, path, + ID, and ARN. + """ + certificate_body: str + """The contents of the public key certificate.""" + certificate_chain: str | None = ... + """The contents of the public key certificate chain.""" + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the server certificate. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class ServerCertificateMetadata(_SerdeShape): + """ + Contains information about a server certificate without its certificate + body, certificate chain, and private key. + + This data type is used as a response element in the + [UploadServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html) + and + [ListServerCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html) + operations. + """ + + path: str + """ + The path to the server certificate. For more information about paths, + see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + server_certificate_name: str + """The name that identifies the server certificate.""" + server_certificate_id: str + """ + The stable and unique string identifying the server certificate. For + more information about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str + """ + The Amazon Resource Name (ARN) specifying the server certificate. For + more information about ARNs and how to use them in policies, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + upload_date: datetime | None = ... + """The date when the server certificate was uploaded.""" + expiration: datetime | None = ... + """The date on which the certificate is set to expire.""" + +@dataclass(kw_only=True) +class ServiceAccessNotEnabledException(ServiceError, _SerdeShape): + """ + The request was rejected because trusted access is not enabled for IAM + in Organizations. For details, see IAM and Organizations in the + *Organizations User Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceFailureException(ServiceError, _SerdeShape): + """ + The request processing has failed because of an unknown error, exception + or failure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceLastAccessed(_SerdeShape): + """ + Contains details about the most recent attempt to access the service. + + This data type is used as a response element in the + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html) + operation. + """ + + service_name: str + """The name of the service in which access was attempted.""" + last_authenticated: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when an authenticated entity + most recently attempted to access the service. Amazon Web Services does + not report unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + service_namespace: str + """ + The namespace of the service in which access was attempted. + + To learn the service namespace of a service, see [Actions, resources, + and condition keys for Amazon Web Services + services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) + in the *Service Authorization Reference*. Choose the name of the service + to view details for that service. In the first paragraph, find the + service prefix. For example, `(service prefix: a4b)`. For more + information about service namespaces, see [Amazon Web Services Service + Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces) + in the *Amazon Web Services General Reference*. + """ + last_authenticated_entity: str | None = ... + """ + The ARN of the authenticated entity (user or role) that last attempted + to access the service. Amazon Web Services does not report + unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + last_authenticated_region: str | None = ... + """ + The Region from which the authenticated entity (user or role) last + attempted to access the service. Amazon Web Services does not report + unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + total_authenticated_entities: int | None = ... + """ + The total number of authenticated principals (root user, IAM users, or + IAM roles) that have attempted to access the service. + + This field is null if no principals attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + tracked_actions_last_accessed: list[TrackedActionLastAccessed] | None = ... + """ + An object that contains details about the most recent attempt to access + a tracked action within the service. + + This field is null if there no tracked actions or if the principal did + not use the tracked actions within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + This field is also null if the report was generated at the service level + and not the action level. For more information, see the `Granularity` + field in + [GenerateServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateServiceLastAccessedDetails.html). + """ + +@dataclass(kw_only=True) +class ServiceNotSupportedException(ServiceError, _SerdeShape): + """The specified service does not support service-specific credentials.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ServiceSpecificCredential(_SerdeShape): + """Contains the details of a service-specific credential.""" + + create_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the service-specific + credential were created. + """ + expiration_date: datetime | None = ... + """ + The date and time when the service specific credential expires. This + field is only present for Bedrock API keys and CloudWatch Logs API keys + that were created with an expiration period. + """ + service_name: str + """The name of the service associated with the service-specific credential.""" + service_user_name: str = ... + """ + The generated user name for the service-specific credential. This value + is generated by combining the IAM user's name combined with the ID + number of the Amazon Web Services account, as in `jane-at-123456789012`, + for example. This value cannot be configured by the user. + """ + service_password: str = ... + """The generated password for the service-specific credential.""" + service_credential_alias: str | None = ... + """ + For Bedrock API keys and CloudWatch Logs API keys, this is the public + portion of the credential that includes the IAM user name and a suffix + containing version and creation information. + """ + service_credential_secret: str | None = ... + """ + For Bedrock API keys and CloudWatch Logs API keys, this is the secret + portion of the credential that should be used to authenticate API calls. + This value is returned only when the credential is created. + """ + service_specific_credential_id: str + """The unique identifier for the service-specific credential.""" + user_name: str + """ + The name of the IAM user associated with the service-specific + credential. + """ + status: str + """ + The status of the service-specific credential. `Active` means that the + key is valid for API calls, while `Inactive` means it is not. + """ + +@dataclass(kw_only=True) +class ServiceSpecificCredentialMetadata(_SerdeShape): + """Contains additional details about a service-specific credential.""" + + user_name: str + """ + The name of the IAM user associated with the service-specific + credential. + """ + status: str + """ + The status of the service-specific credential. `Active` means that the + key is valid for API calls, while `Inactive` means it is not. + """ + service_user_name: str = ... + """The generated user name for the service-specific credential.""" + service_credential_alias: str | None = ... + """ + For Bedrock API keys and CloudWatch Logs API keys, this is the public + portion of the credential that includes the IAM user name and a suffix + containing version and creation information. + """ + create_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the service-specific + credential were created. + """ + expiration_date: datetime | None = ... + """ + The date and time when the service specific credential expires. This + field is only present for Bedrock API keys and CloudWatch Logs API keys + that were created with an expiration period. + """ + service_specific_credential_id: str + """The unique identifier for the service-specific credential.""" + service_name: str + """The name of the service associated with the service-specific credential.""" + +@dataclass(kw_only=True) +class SetDefaultPolicyVersionInput(_SerdeShape): + """Dataclass for SetDefaultPolicyVersionInput structure.""" + + policy_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM policy whose default version + you want to set. + + For more information about ARNs, 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*. + """ + version_id: str | None = ... + """ + The version of the policy to set as the default (operative) version. + + For more information about managed policy versions, see [Versioning for + managed + policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class SetDefaultPolicyVersionOutput(_SerdeShape): + """Dataclass for SetDefaultPolicyVersionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SetSecurityTokenServicePreferencesInput(_SerdeShape): + """Dataclass for SetSecurityTokenServicePreferencesInput structure.""" + + global_endpoint_token_version: str | None = ... + """ + The version of the global endpoint token. Version 1 tokens are valid + only in Amazon Web Services Regions that are available by default. These + tokens do not work in manually enabled Regions, such as Asia Pacific + (Hong Kong). Version 2 tokens are valid in all Regions. However, version + 2 tokens are longer and might affect systems where you temporarily store + tokens. + + For information, see [Activating and deactivating STS in an Amazon Web + Services + Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class SetSecurityTokenServicePreferencesOutput(_SerdeShape): + """Dataclass for SetSecurityTokenServicePreferencesOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SigningCertificate(_SerdeShape): + """ + Contains information about an X.509 signing certificate. + + This data type is used as a response element in the + [UploadSigningCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSigningCertificate.html) + and + [ListSigningCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSigningCertificates.html) + operations. + """ + + user_name: str + """The name of the user the signing certificate is associated with.""" + certificate_id: str + """The ID for the signing certificate.""" + certificate_body: str + """The contents of the signing certificate.""" + status: str + """ + The status of the signing certificate. `Active` means that the key is + valid for API calls, while `Inactive` means it is not. + """ + upload_date: datetime | None = ... + """The date when the signing certificate was uploaded.""" + +@dataclass(kw_only=True) +class SimulateCustomPolicyInput(_SerdeShape): + """Dataclass for SimulateCustomPolicyInput structure.""" + + policy_input_list: list[str] | None = ... + """ + A list of policy documents to include in the simulation. Each document + is specified as a string containing the complete, valid JSON text of an + IAM policy. Do not include any resource-based policies in this + parameter. Any resource-based policy must be submitted with the + `ResourcePolicy` parameter. The policies cannot be \"scope-down\" + policies, such as you could include in a call to + [GetFederationToken](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetFederationToken.html) + or one of the + [AssumeRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html) + API operations. In other words, do not use policies designed to restrict + what a user can do while using the temporary credentials. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + permissions_boundary_policy_input_list: list[str] | None = ... + """ + The IAM permissions boundary policy to simulate. The permissions + boundary sets the maximum permissions that an IAM entity can have. You + can input only one permissions boundary when you pass a policy to this + operation. For more information about permissions boundaries, see + [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. The policy input is specified as a string that + contains the complete, valid JSON text of a permissions boundary policy. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + ordered_organization_policy_input_list: ( + list[OrderedOrganizationPolicyType] | None + ) = ... + """ + An ordered list of service control policies (SCPs) to include in the + simulation. Each element represents one level of an Organizations + hierarchy, from the organization root to the account. + + The simulator evaluates SCPs in the order that you provide, consistent + with how Organizations enforces SCPs. The first element must represent + the organization root, and the last element must represent the account. + Any elements between them represent organizational units (OUs) in + descending order. + + Use this parameter to simulate the effect of an SCP hierarchy without + calling + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + """ + action_names: list[str] | None = ... + """ + A list of names of API operations to evaluate in the simulation. Each + operation is evaluated against each resource. Each operation must + include the service identifier, such as `iam:CreateUser`. This operation + does not support using wildcards (*) in an action name. + """ + resource_arns: list[str] | None = ... + """ + A list of ARNs of Amazon Web Services resources to include in the + simulation. If this parameter is not provided, then the value defaults + to `*` (all resources). Each API in the `ActionNames` parameter is + evaluated for each resource in this list. The simulation determines the + access result (allowed or denied) of each combination and reports it in + the response. You can simulate resources that don't exist in your + account. + + The simulation does not automatically retrieve policies for the + specified resources. If you want to include a resource policy in the + simulation, then you must include the policy as a string in the + `ResourcePolicy` parameter. + + If you include a `ResourcePolicy`, then it must be applicable to all of + the resources included in the simulation or you receive an invalid input + error. + + For more information about ARNs, 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*. + + Note: + Simulation of resource-based policies isn't supported for IAM roles. + """ + resource_policy: str | None = ... + """ + A resource-based policy to include in the simulation provided as a + string. Each resource in the simulation is treated as if it had this + policy attached. You can include only one resource-based policy in a + simulation. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + + Note: + Simulation of resource-based policies isn't supported for IAM roles. + """ + resource_owner: str | None = ... + """ + An ARN representing the Amazon Web Services account ID that specifies + the owner of any simulated resource that does not identify its owner in + the resource ARN. Examples of resource ARNs include an S3 bucket or + object. If `ResourceOwner` is specified, it is also used as the account + owner of any `ResourcePolicy` included in the simulation. If the + `ResourceOwner` parameter is not specified, then the owner of the + resources and the resource policy defaults to the account of the + identity provided in `CallerArn`. This parameter is required only if you + specify a resource-based policy and account that owns the resource is + different from the account that owns the simulated calling user + `CallerArn`. + + The ARN for an account uses the following syntax: + `arn:aws:iam::`*`AWS-account-ID`*`:root`. For example, to represent the + account with the 112233445566 ID, use the following ARN: + `arn:aws:iam::112233445566-ID:root`. + """ + caller_arn: str | None = ... + """ + The ARN of the IAM user, group, or role that you want to use as the + simulated caller of the API operations. `CallerArn` is required if you + include a `ResourcePolicy` so that the policy's `Principal` element has + a value to use in evaluating the policy. + + You cannot specify the ARN of an assumed role, federated user, or a + service principal. + """ + context_entries: list[ContextEntry] | None = ... + """ + A list of context keys and corresponding values for the simulation to + use. Whenever a context key is evaluated in one of the simulated IAM + permissions policies, the corresponding value is supplied. + """ + resource_handling_option: str | None = ... + """ + Specifies the type of simulation to run. Different API operations that + support resource-based policies require different combinations of + resources. By specifying the type of simulation to run, you enable the + policy simulator to enforce the presence of the required resources to + ensure reliable simulation results. If your simulation does not match + one of the following scenarios, then you can omit this parameter. The + following list shows each of the supported scenario values and the + resources that you must define to run the simulation. + + Each of the Amazon EC2 scenarios requires that you specify instance, + image, and security group resources. If your scenario includes an EBS + volume, then you must specify that volume as a resource. If the Amazon + EC2 scenario includes VPC, then you must supply the network interface + resource. If it includes an IP subnet, then you must specify the subnet + resource. For more information on the Amazon EC2 scenario options, see + [Supported + platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html) + in the *Amazon EC2 User Guide*. + + - **EC2-VPC-InstanceStore** + + instance, image, security group, network interface + + - **EC2-VPC-InstanceStore-Subnet** + + instance, image, security group, network interface, subnet + + - **EC2-VPC-EBS** + + instance, image, security group, network interface, volume + + - **EC2-VPC-EBS-Subnet** + + instance, image, security group, network interface, subnet, volume + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + +@dataclass(kw_only=True) +class SimulateCustomPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) + or + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + request. + """ + + evaluation_results: list[EvaluationResult] | None = ... + """The results of the simulation.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SimulatePrincipalPolicyInput(_SerdeShape): + """Dataclass for SimulatePrincipalPolicyInput structure.""" + + policy_source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of a user, group, or role whose policies + you want to include in the simulation. If you specify a user, group, or + role, the simulation includes all policies that are associated with that + entity. If you specify a user, the simulation also includes all policies + that are attached to any groups the user belongs to. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + For more information about ARNs, 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*. + """ + policy_input_list: list[str] | None = ... + """ + An optional list of additional policy documents to include in the + simulation. Each document is specified as a string containing the + complete, valid JSON text of an IAM policy. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + permissions_boundary_policy_input_list: list[str] | None = ... + """ + The IAM permissions boundary policy to simulate. The permissions + boundary sets the maximum permissions that the entity can have. You can + input only one permissions boundary when you pass a policy to this + operation. An IAM entity can only have one permissions boundary in + effect at a time. For example, if a permissions boundary is attached to + an entity and you pass in a different permissions boundary policy using + this parameter, then the new permissions boundary policy is used for the + simulation. For more information about permissions boundaries, see + [Permissions boundaries for IAM + entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. The policy input is specified as a string + containing the complete, valid JSON text of a permissions boundary + policy. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + policy_exclusion_list: list[PolicyIdentifier] | None = ... + """ + A list of policies to exclude from the simulation. Use this parameter to + test what the simulation result would be if a policy were removed, + without changing which policies are actually attached to the principal + identified by `PolicySourceArn`. + + Each entry is a + [PolicyIdentifier](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PolicyIdentifier.html) + that identifies one or more policies to exclude by policy type, by + Amazon Resource Name (ARN), or by the name of an inline policy and the + entity it is attached to. + + Syntactically invalid identifiers, such as malformed ARNs or wildcards + in disallowed positions, cause the request to fail with an + `InvalidInput` error. Syntactically valid identifiers that don't match + any attached policy are ignored. Resource control policies (RCPs) are + not supported in this release; identifiers that target RCPs are also + ignored. + """ + action_names: list[str] | None = ... + """ + A list of names of API operations to evaluate in the simulation. Each + operation is evaluated for each resource. Each operation must include + the service identifier, such as `iam:CreateUser`. + """ + resource_arns: list[str] | None = ... + """ + A list of ARNs of Amazon Web Services resources to include in the + simulation. If this parameter is not provided, then the value defaults + to `*` (all resources). Each API in the `ActionNames` parameter is + evaluated for each resource in this list. The simulation determines the + access result (allowed or denied) of each combination and reports it in + the response. You can simulate resources that don't exist in your + account. + + The simulation does not automatically retrieve policies for the + specified resources. If you want to include a resource policy in the + simulation, then you must include the policy as a string in the + `ResourcePolicy` parameter. + + For more information about ARNs, 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*. + + Note: + Simulation of resource-based policies isn't supported for IAM roles. + """ + resource_policy: str | None = ... + """ + A resource-based policy to include in the simulation provided as a + string. Each resource in the simulation is treated as if it had this + policy attached. You can include only one resource-based policy in a + simulation. + + The maximum length of the policy document that you can pass in this + operation, including whitespace, is listed below. To view the maximum + character counts of a managed policy with no whitespaces, see [IAM and + STS character + quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + + Note: + Simulation of resource-based policies isn't supported for IAM roles. + """ + resource_owner: str | None = ... + """ + An Amazon Web Services account ID that specifies the owner of any + simulated resource that does not identify its owner in the resource ARN. + Examples of resource ARNs include an S3 bucket or object. If + `ResourceOwner` is specified, it is also used as the account owner of + any `ResourcePolicy` included in the simulation. If the `ResourceOwner` + parameter is not specified, then the owner of the resources and the + resource policy defaults to the account of the identity provided in + `CallerArn`. This parameter is required only if you specify a + resource-based policy and account that owns the resource is different + from the account that owns the simulated calling user `CallerArn`. + """ + caller_arn: str | None = ... + """ + The ARN of the IAM user, group, or role that you want to specify as the + simulated caller of the API operations. If you do not specify a + `CallerArn`, it defaults to the ARN of the user, group, or role that you + specify in `PolicySourceArn`. If you include both a `PolicySourceArn` + (for example, `arn:aws:iam::123456789012:user/David`) and a `CallerArn` + (for example, `arn:aws:iam::123456789012:user/Bob`), the result is that + you simulate calling the API operations as Bob, as if Bob had David's + policies. + + You can specify the ARN of an IAM user, group, or role. You cannot + specify the ARN of an assumed role, federated user, or a service + principal. + + `CallerArn` is required if you include a `ResourcePolicy` and the + `PolicySourceArn` is not the ARN for an IAM user, group, or role. This + is required so that the resource-based policy's `Principal` element has + a value to use in evaluating the policy. + + For more information about ARNs, 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*. + """ + context_entries: list[ContextEntry] | None = ... + """ + A list of context keys and corresponding values for the simulation to + use. Whenever a context key is evaluated in one of the simulated IAM + permissions policies, the corresponding value is supplied. + """ + resource_handling_option: str | None = ... + """ + Specifies the type of simulation to run. Different API operations that + support resource-based policies require different combinations of + resources. By specifying the type of simulation to run, you enable the + policy simulator to enforce the presence of the required resources to + ensure reliable simulation results. If your simulation does not match + one of the following scenarios, then you can omit this parameter. The + following list shows each of the supported scenario values and the + resources that you must define to run the simulation. + + Each of the Amazon EC2 scenarios requires that you specify instance, + image, and security group resources. If your scenario includes an EBS + volume, then you must specify that volume as a resource. If the Amazon + EC2 scenario includes VPC, then you must supply the network interface + resource. If it includes an IP subnet, then you must specify the subnet + resource. For more information on the Amazon EC2 scenario options, see + [Supported + platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html) + in the *Amazon EC2 User Guide*. + + - **EC2-VPC-InstanceStore** + + instance, image, security group, network interface + + - **EC2-VPC-InstanceStore-Subnet** + + instance, image, security group, network interface, subnet + + - **EC2-VPC-EBS** + + instance, image, security group, network interface, volume + + - **EC2-VPC-EBS-Subnet** + + instance, image, security group, network interface, subnet, volume + """ + max_items: int | None = ... + """ + Use this only when paginating results to indicate the maximum number of + items you want in the response. If additional items exist beyond the + maximum you specify, the `IsTruncated` response element is `true`. + + If you do not include this parameter, the number of items defaults to + 100. Note that IAM might return fewer results, even when there are more + results available. In that case, the `IsTruncated` response element + returns `true`, and `Marker` contains a value to include in the + subsequent call that tells the service where to continue from. + """ + marker: str | None = ... + """ + Use this parameter only when paginating results and only after you + receive a response indicating that the results are truncated. Set it to + the value of the `Marker` element in the response that you received to + indicate where the next call should start. + """ + +@dataclass(kw_only=True) +class SimulatePrincipalPolicyOutput(_SerdeShape): + """ + Contains the response to a successful + [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) + or + [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) + request. + """ + + evaluation_results: list[EvaluationResult] | None = ... + """The results of the simulation.""" + is_truncated: bool = ... + """ + A flag that indicates whether there are more items to return. If your + results were truncated, you can make a subsequent pagination request + using the `Marker` request parameter to retrieve more items. Note that + IAM might return fewer than the `MaxItems` number of results even when + there are more results available. We recommend that you check + `IsTruncated` after every call to ensure that you receive all your + results. + """ + marker: str | None = ... + """ + When `IsTruncated` is `true`, this element is present and contains the + value to use for the `Marker` parameter in a subsequent pagination + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class SortKeyType(UnknownEnumMixin, StrEnum): + SERVICE_NAMESPACE_ASCENDING = "SERVICE_NAMESPACE_ASCENDING" + SERVICE_NAMESPACE_DESCENDING = "SERVICE_NAMESPACE_DESCENDING" + LAST_AUTHENTICATED_TIME_ASCENDING = "LAST_AUTHENTICATED_TIME_ASCENDING" + LAST_AUTHENTICATED_TIME_DESCENDING = "LAST_AUTHENTICATED_TIME_DESCENDING" + +@dataclass(kw_only=True) +class SourceRoleTemplate(_SerdeShape): + """ + Contains information about the role template that a role was created + from. + """ + + template_arn: str + """ + The Amazon Resource Name (ARN) of the role template that the role was + created from. + """ + template_minor_version: int + """The minor version of the role template that was used to create the role.""" + +@dataclass(kw_only=True) +class SSHPublicKey(_SerdeShape): + """ + Contains information about an SSH public key. + + This data type is used as a response element in the + [GetSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSSHPublicKey.html) + and + [UploadSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSSHPublicKey.html) + operations. + """ + + user_name: str + """The name of the IAM user associated with the SSH public key.""" + ssh_public_key_id: str + """The unique identifier for the SSH public key.""" + fingerprint: str + """The MD5 message digest of the SSH public key.""" + ssh_public_key_body: str + """The SSH public key.""" + status: str + """ + The status of the SSH public key. `Active` means that the key can be + used for authentication with an CodeCommit repository. `Inactive` means + that the key cannot be used. + """ + upload_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the SSH public key was + uploaded. + """ + +@dataclass(kw_only=True) +class SSHPublicKeyMetadata(_SerdeShape): + """ + Contains information about an SSH public key, without the key's body or + fingerprint. + + This data type is used as a response element in the + [ListSSHPublicKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSSHPublicKeys.html) + operation. + """ + + user_name: str + """The name of the IAM user associated with the SSH public key.""" + ssh_public_key_id: str + """The unique identifier for the SSH public key.""" + status: str + """ + The status of the SSH public key. `Active` means that the key can be + used for authentication with an CodeCommit repository. `Inactive` means + that the key cannot be used. + """ + upload_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the SSH public key was + uploaded. + """ + +@dataclass(kw_only=True) +class Statement(_SerdeShape): + """ + Contains a reference to a `Statement` element in a policy document that + determines the result of the simulation. + + This data type is used by the `MatchedStatements` member of the + ` `[`EvaluationResult`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EvaluationResult.html)` ` + type. + """ + + source_policy_id: str | None = ... + """The identifier of the policy that was provided as an input.""" + source_policy_type: str | None = ... + """The type of the policy.""" + start_position: Position | None = ... + """The row and column of the beginning of the `Statement` in an IAM policy.""" + end_position: Position | None = ... + """The row and column of the end of a `Statement` in an IAM policy.""" + +class StateType(UnknownEnumMixin, StrEnum): + UNASSIGNED = "UNASSIGNED" + ASSIGNED = "ASSIGNED" + PENDING_APPROVAL = "PENDING_APPROVAL" + FINALIZED = "FINALIZED" + ACCEPTED = "ACCEPTED" + REJECTED = "REJECTED" + EXPIRED = "EXPIRED" + +class StatusType(UnknownEnumMixin, StrEnum): + ACTIVE = "Active" + INACTIVE = "Inactive" + EXPIRED = "Expired" + +class SummaryKeyType(UnknownEnumMixin, StrEnum): + USERS = "Users" + USERS_QUOTA = "UsersQuota" + GROUPS = "Groups" + GROUPS_QUOTA = "GroupsQuota" + SERVER_CERTIFICATES = "ServerCertificates" + SERVER_CERTIFICATES_QUOTA = "ServerCertificatesQuota" + USER_POLICY_SIZE_QUOTA = "UserPolicySizeQuota" + GROUP_POLICY_SIZE_QUOTA = "GroupPolicySizeQuota" + GROUPS_PER_USER_QUOTA = "GroupsPerUserQuota" + SIGNING_CERTIFICATES_PER_USER_QUOTA = "SigningCertificatesPerUserQuota" + ACCESS_KEYS_PER_USER_QUOTA = "AccessKeysPerUserQuota" + MFA_DEVICES = "MFADevices" + MFA_DEVICES_IN_USE = "MFADevicesInUse" + ACCOUNT_MFA_ENABLED = "AccountMFAEnabled" + ACCOUNT_ACCESS_KEYS_PRESENT = "AccountAccessKeysPresent" + ACCOUNT_PASSWORD_PRESENT = "AccountPasswordPresent" + ACCOUNT_SIGNING_CERTIFICATES_PRESENT = "AccountSigningCertificatesPresent" + ATTACHED_POLICIES_PER_GROUP_QUOTA = "AttachedPoliciesPerGroupQuota" + ATTACHED_POLICIES_PER_ROLE_QUOTA = "AttachedPoliciesPerRoleQuota" + ATTACHED_POLICIES_PER_USER_QUOTA = "AttachedPoliciesPerUserQuota" + POLICIES = "Policies" + POLICIES_QUOTA = "PoliciesQuota" + POLICY_SIZE_QUOTA = "PolicySizeQuota" + POLICY_VERSIONS_IN_USE = "PolicyVersionsInUse" + POLICY_VERSIONS_IN_USE_QUOTA = "PolicyVersionsInUseQuota" + VERSIONS_PER_POLICY_QUOTA = "VersionsPerPolicyQuota" + GLOBAL_ENDPOINT_TOKEN_VERSION = "GlobalEndpointTokenVersion" + ASSUME_ROLE_POLICY_SIZE_QUOTA = "AssumeRolePolicySizeQuota" + INSTANCE_PROFILES = "InstanceProfiles" + INSTANCE_PROFILES_QUOTA = "InstanceProfilesQuota" + PROVIDERS = "Providers" + ROLE_POLICY_SIZE_QUOTA = "RolePolicySizeQuota" + ROLES = "Roles" + ROLES_QUOTA = "RolesQuota" + +class SummaryStateType(UnknownEnumMixin, StrEnum): + AVAILABLE = "AVAILABLE" + NOT_AVAILABLE = "NOT_AVAILABLE" + NOT_SUPPORTED = "NOT_SUPPORTED" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + A structure that represents user-provided metadata that can be + associated with an IAM resource. For more information about tagging, see + [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + + key: str + """ + The key name that can be used to look up or retrieve the associated + value. For example, `Department` or `Cost Center` are common choices. + """ + value: str + """ + The value associated with this tag. For example, tags with a key name of + `Department` could have values such as `Human Resources`, `Accounting`, + and `Support`. Tags with a key name of `Cost Center` might have values + that consist of the number associated with the different cost centers in + your company. Typically, many resources have tags with the same key name + but with different values. + """ + +@dataclass(kw_only=True) +class TagInstanceProfileInput(_SerdeShape): + """Dataclass for TagInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the IAM instance profile to which you want to add tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM instance profile. + Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagInstanceProfileOutput(_SerdeShape): + """Dataclass for TagInstanceProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagMFADeviceInput(_SerdeShape): + """Dataclass for TagMFADeviceInput structure.""" + + serial_number: str | None = ... + """ + The unique identifier for the IAM virtual MFA device to which you want + to add tags. For virtual MFA devices, the serial number is the same as + the ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM virtual MFA device. + Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagMFADeviceOutput(_SerdeShape): + """Dataclass for TagMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for TagOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The ARN of the OIDC identity provider in IAM to which you want to add + tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the OIDC identity provider + in IAM. Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagOpenIDConnectProviderOutput(_SerdeShape): + """Dataclass for TagOpenIDConnectProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagPolicyInput(_SerdeShape): + """Dataclass for TagPolicyInput structure.""" + + policy_arn: str | None = ... + """ + The ARN of the IAM customer managed policy to which you want to add + tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM customer managed + policy. Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagPolicyOutput(_SerdeShape): + """Dataclass for TagPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagRoleInput(_SerdeShape): + """Dataclass for TagRoleInput structure.""" + + role_name: str | None = ... + """ + The name of the IAM role to which you want to add tags. + + This parameter accepts (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + consist of upper and lowercase alphanumeric characters with no spaces. + You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM role. Each tag + consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagRoleOutput(_SerdeShape): + """Dataclass for TagRoleOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagSAMLProviderInput(_SerdeShape): + """Dataclass for TagSAMLProviderInput structure.""" + + saml_provider_arn: str | None = ... + """ + The ARN of the SAML identity provider in IAM to which you want to add + tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the SAML identity provider + in IAM. Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagSAMLProviderOutput(_SerdeShape): + """Dataclass for TagSAMLProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagServerCertificateInput(_SerdeShape): + """Dataclass for TagServerCertificateInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the IAM server certificate to which you want to add tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM server certificate. + Each tag consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagServerCertificateOutput(_SerdeShape): + """Dataclass for TagServerCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagTemplate(_SerdeShape): + """ + Represents a tag that is applied to roles that are created from a role + template. The key and value can include `@{parameter}` placeholders that + are replaced with template parameter values when the role is created. + """ + + key: str + """The key name of the tag.""" + value: str + """The value associated with the tag key.""" + +@dataclass(kw_only=True) +class TagUserInput(_SerdeShape): + """Dataclass for TagUserInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user to which you want to add tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tags: list[Tag] | None = ... + """ + The list of tags that you want to attach to the IAM user. Each tag + consists of a key name and an associated value. + """ + +@dataclass(kw_only=True) +class TagUserOutput(_SerdeShape): + """Dataclass for TagUserOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TrackedActionLastAccessed(_SerdeShape): + """ + Contains details about the most recent attempt to access an action + within the service. + + This data type is used as a response element in the + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html) + operation. + """ + + action_name: str | None = ... + """ + The name of the tracked action to which access was attempted. Tracked + actions are actions that report activity to IAM. + """ + last_accessed_entity: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + last_accessed_time: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when an authenticated entity + most recently attempted to access the tracked service. Amazon Web + Services does not report unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + last_accessed_region: str | None = ... + """ + The Region from which the authenticated entity (user or role) last + attempted to access the tracked action. Amazon Web Services does not + report unauthenticated requests. + + This field is null if no IAM entities attempted to access the service + within the [tracking + period](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#service-last-accessed-reporting-period). + """ + +@dataclass(kw_only=True) +class UnmodifiableEntityException(ServiceError, _SerdeShape): + """ + The request was rejected because service-linked roles are protected + Amazon Web Services resources. Only the service that depends on the + service-linked role can modify or delete the role on your behalf. The + error message includes the name of the service that depends on this + service-linked role. You must request the change through that service. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnrecognizedPublicKeyEncodingException(ServiceError, _SerdeShape): + """ + The request was rejected because the public key encoding format is + unsupported or unrecognized. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagInstanceProfileInput(_SerdeShape): + """Dataclass for UntagInstanceProfileInput structure.""" + + instance_profile_name: str | None = ... + """ + The name of the IAM instance profile from which you want to remove tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified instance profile. + """ + +@dataclass(kw_only=True) +class UntagInstanceProfileOutput(_SerdeShape): + """Dataclass for UntagInstanceProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagMFADeviceInput(_SerdeShape): + """Dataclass for UntagMFADeviceInput structure.""" + + serial_number: str | None = ... + """ + The unique identifier for the IAM virtual MFA device from which you want + to remove tags. For virtual MFA devices, the serial number is the same + as the ARN. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified instance profile. + """ + +@dataclass(kw_only=True) +class UntagMFADeviceOutput(_SerdeShape): + """Dataclass for UntagMFADeviceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagOpenIDConnectProviderInput(_SerdeShape): + """Dataclass for UntagOpenIDConnectProviderInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The ARN of the OIDC provider in IAM from which you want to remove tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified OIDC provider. + """ + +@dataclass(kw_only=True) +class UntagOpenIDConnectProviderOutput(_SerdeShape): + """Dataclass for UntagOpenIDConnectProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagPolicyInput(_SerdeShape): + """Dataclass for UntagPolicyInput structure.""" + + policy_arn: str | None = ... + """ + The ARN of the IAM customer managed policy from which you want to remove + tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified policy. + """ + +@dataclass(kw_only=True) +class UntagPolicyOutput(_SerdeShape): + """Dataclass for UntagPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagRoleInput(_SerdeShape): + """Dataclass for UntagRoleInput structure.""" + + role_name: str | None = ... + """ + The name of the IAM role from which you want to remove tags. + + This parameter accepts (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + consist of upper and lowercase alphanumeric characters with no spaces. + You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified role. + """ + +@dataclass(kw_only=True) +class UntagRoleOutput(_SerdeShape): + """Dataclass for UntagRoleOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagSAMLProviderInput(_SerdeShape): + """Dataclass for UntagSAMLProviderInput structure.""" + + saml_provider_arn: str | None = ... + """ + The ARN of the SAML identity provider in IAM from which you want to + remove tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified SAML identity provider. + """ + +@dataclass(kw_only=True) +class UntagSAMLProviderOutput(_SerdeShape): + """Dataclass for UntagSAMLProviderOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagServerCertificateInput(_SerdeShape): + """Dataclass for UntagServerCertificateInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the IAM server certificate from which you want to remove + tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified IAM server certificate. + """ + +@dataclass(kw_only=True) +class UntagServerCertificateOutput(_SerdeShape): + """Dataclass for UntagServerCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagUserInput(_SerdeShape): + """Dataclass for UntagUserInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user from which you want to remove tags. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + tag_keys: list[str] | None = ... + """ + A list of key names as a simple array of strings. The tags with matching + keys are removed from the specified user. + """ + +@dataclass(kw_only=True) +class UntagUserOutput(_SerdeShape): + """Dataclass for UntagUserOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAccessKeyInput(_SerdeShape): + """Dataclass for UpdateAccessKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose key you want to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + access_key_id: str | None = ... + """ + The access key ID of the secret access key you want to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + status: str | None = ... + """ + The status you want to assign to the secret access key. `Active` means + that the key can be used for programmatic calls to Amazon Web Services, + while `Inactive` means that the key cannot be used. + """ + +@dataclass(kw_only=True) +class UpdateAccessKeyOutput(_SerdeShape): + """Dataclass for UpdateAccessKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAccountPasswordPolicyInput(_SerdeShape): + """Dataclass for UpdateAccountPasswordPolicyInput structure.""" + + minimum_password_length: int | None = ... + """ + The minimum number of characters allowed in an IAM user password. + + If you do not specify a value for this parameter, then the operation + uses the default value of `6`. + """ + require_symbols: bool = ... + """ + Specifies whether IAM user passwords must contain at least one of the + following non-alphanumeric characters: + + ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ' + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that passwords do not + require at least one symbol character. + """ + require_numbers: bool = ... + """ + Specifies whether IAM user passwords must contain at least one numeric + character (0 to 9). + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that passwords do not + require at least one numeric character. + """ + require_uppercase_characters: bool = ... + """ + Specifies whether IAM user passwords must contain at least one uppercase + character from the ISO basic Latin alphabet (A to Z). + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that passwords do not + require at least one uppercase character. + """ + require_lowercase_characters: bool = ... + """ + Specifies whether IAM user passwords must contain at least one lowercase + character from the ISO basic Latin alphabet (a to z). + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that passwords do not + require at least one lowercase character. + """ + allow_users_to_change_password: bool = ... + """ + Allows all IAM users in your account to use the Amazon Web Services + Management Console to change their own passwords. For more information, + see [Permitting IAM users to change their own + passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_enable-user-change.html) + in the *IAM User Guide*. + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that IAM users in the + account do not automatically have permissions to change their own + password. + """ + max_password_age: int | None = ... + """ + The number of days that an IAM user password is valid. + + If you do not specify a value for this parameter, then the operation + uses the default value of `0`. The result is that IAM user passwords + never expire. + """ + password_reuse_prevention: int | None = ... + """ + Specifies the number of previous passwords that IAM users are prevented + from reusing. + + If you do not specify a value for this parameter, then the operation + uses the default value of `0`. The result is that IAM users are not + prevented from reusing previous passwords. + """ + hard_expiry: bool | None = ... + """ + Prevents IAM users who are accessing the account via the Amazon Web + Services Management Console from setting a new console password after + their password has expired. The IAM user cannot access the console until + an administrator resets the password. + + If you do not specify a value for this parameter, then the operation + uses the default value of `false`. The result is that IAM users can + change their passwords after they expire and continue to sign in as the + user. + + Note: + In the Amazon Web Services Management Console, the custom password + policy option **Allow users to change their own password** gives IAM + users permissions to `iam:ChangePassword` for only their user and to the + `iam:GetAccountPasswordPolicy` action. This option does not attach a + permissions policy to each user, rather the permissions are applied at + the account-level for all users by IAM. IAM users with + `iam:ChangePassword` permission and active access keys can reset their + own expired console password using the CLI or API. + """ + +@dataclass(kw_only=True) +class UpdateAccountPasswordPolicyOutput(_SerdeShape): + """Dataclass for UpdateAccountPasswordPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAssumeRolePolicyInput(_SerdeShape): + """Dataclass for UpdateAssumeRolePolicyInput structure.""" + + role_name: str | None = ... + """ + The name of the role to update with the new policy. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + policy_document: str | None = ... + """ + The policy that grants an entity permission to assume the role. + + You must provide policies in JSON format in IAM. However, for + CloudFormation templates formatted in YAML, you can provide the policy + in JSON or YAML format. CloudFormation always converts a YAML policy to + JSON format before submitting it to IAM. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class UpdateAssumeRolePolicyOutput(_SerdeShape): + """Dataclass for UpdateAssumeRolePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateDelegationRequestInput(_SerdeShape): + """Dataclass for UpdateDelegationRequestInput structure.""" + + delegation_request_id: str | None = ... + """The unique identifier of the delegation request to update.""" + notes: str | None = ... + """Additional notes or comments to add to the delegation request.""" + +@dataclass(kw_only=True) +class UpdateDelegationRequestOutput(_SerdeShape): + """Dataclass for UpdateDelegationRequestOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateGroupInput(_SerdeShape): + """Dataclass for UpdateGroupInput structure.""" + + group_name: str | None = ... + """ + Name of the IAM group to update. If you're changing the name of the + group, this is the original name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + new_path: str | None = ... + """ + New path for the IAM group. Only include this if changing the group's + path. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + new_group_name: str | None = ... + """ + New name for the IAM group. Only include this if changing the group's + name. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + """ + +@dataclass(kw_only=True) +class UpdateGroupOutput(_SerdeShape): + """Dataclass for UpdateGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateLoginProfileInput(_SerdeShape): + """Dataclass for UpdateLoginProfileInput structure.""" + + user_name: str | None = ... + """ + The name of the user whose password you want to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + password: str | None = ... + """ + The new password for the specified IAM user. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + + However, the format can be further restricted by the account + administrator by setting a password policy on the Amazon Web Services + account. For more information, see + [UpdateAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html). + """ + password_reset_required: bool | None = ... + """ + Allows this new password to be used only once by requiring the specified + IAM user to set a new password on next sign-in. + """ + +@dataclass(kw_only=True) +class UpdateLoginProfileOutput(_SerdeShape): + """Dataclass for UpdateLoginProfileOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateOpenIDConnectProviderThumbprintInput(_SerdeShape): + """Dataclass for UpdateOpenIDConnectProviderThumbprintInput structure.""" + + open_id_connect_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM OIDC provider resource object + for which you want to update the thumbprint. You can get a list of OIDC + provider ARNs by using the + [ListOpenIDConnectProviders](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html) + operation. + + For more information about ARNs, 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*. + """ + thumbprint_list: list[str] | None = ... + """ + A list of certificate thumbprints that are associated with the specified + IAM OpenID Connect provider. For more information, see + [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html). + """ + +@dataclass(kw_only=True) +class UpdateOpenIDConnectProviderThumbprintOutput(_SerdeShape): + """Dataclass for UpdateOpenIDConnectProviderThumbprintOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateRoleDescriptionInput(_SerdeShape): + """Dataclass for UpdateRoleDescriptionInput structure.""" + + role_name: str | None = ... + """The name of the role that you want to modify.""" + description: str | None = ... + """The new description that you want to apply to the specified role.""" + +@dataclass(kw_only=True) +class UpdateRoleDescriptionOutput(_SerdeShape): + """Dataclass for UpdateRoleDescriptionOutput structure.""" + + role: Role | None = ... + """A structure that contains details about the modified role.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateRoleInput(_SerdeShape): + """Dataclass for UpdateRoleInput structure.""" + + role_name: str | None = ... + """The name of the role that you want to modify.""" + description: str | None = ... + """The new description that you want to apply to the specified role.""" + max_session_duration: int | None = ... + """ + The maximum session duration (in seconds) that you want to set for the + specified role. If you do not specify a value for this setting, the + default value of one hour is applied. This setting can have a value from + 1 hour to 12 hours. + + Anyone who assumes the role from the CLI or API can use the + `DurationSeconds` API parameter or the `duration-seconds` CLI parameter + to request a longer session. The `MaxSessionDuration` setting determines + the maximum duration that can be requested using the `DurationSeconds` + parameter. If users don't specify a value for the `DurationSeconds` + parameter, their security credentials are valid for one hour by default. + This applies when you use the `AssumeRole*` API operations or the + `assume-role*` CLI operations but does not apply when you use those + operations to create a console URL. For more information, see [Using IAM + roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) + in the *IAM User Guide*. + + Note: + IAM role credentials provided by Amazon EC2 instances assigned to the + role are not subject to the specified maximum session duration. + """ + +@dataclass(kw_only=True) +class UpdateRoleOutput(_SerdeShape): + """Dataclass for UpdateRoleOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateSAMLProviderInput(_SerdeShape): + """Dataclass for UpdateSAMLProviderInput structure.""" + + saml_metadata_document: str | None = ... + """ + An XML document generated by an identity provider (IdP) that supports + SAML 2.0. The document includes the issuer's name, expiration + information, and keys that can be used to validate the SAML + authentication response (assertions) that are received from the IdP. You + must generate the metadata document using the identity management + software that is used as your IdP. + """ + saml_provider_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the SAML provider to update. + + For more information about ARNs, 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*. + """ + assertion_encryption_mode: str | None = ... + """Specifies the encryption setting for the SAML provider.""" + add_private_key: str | None = ... + """ + Specifies the new private key from your external identity provider. The + private key must be a .pem file that uses AES-GCM or AES-CBC encryption + algorithm to decrypt SAML assertions. + """ + remove_private_key: str | None = ... + """The Key ID of the private key to remove.""" + +@dataclass(kw_only=True) +class UpdateSAMLProviderOutput(_SerdeShape): + """ + Contains the response to a successful + [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) + request. + """ + + saml_provider_arn: str | None = ... + """The Amazon Resource Name (ARN) of the SAML provider that was updated.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateServerCertificateInput(_SerdeShape): + """Dataclass for UpdateServerCertificateInput structure.""" + + server_certificate_name: str | None = ... + """ + The name of the server certificate that you want to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + new_path: str | None = ... + """ + The new path for the server certificate. Include this only if you are + updating the server certificate's path. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + new_server_certificate_name: str | None = ... + """ + The new name for the server certificate. Include this only if you are + updating the server certificate's name. The name of the certificate + cannot contain any spaces. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + +@dataclass(kw_only=True) +class UpdateServerCertificateOutput(_SerdeShape): + """Dataclass for UpdateServerCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateServiceSpecificCredentialInput(_SerdeShape): + """Dataclass for UpdateServiceSpecificCredentialInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the service-specific + credential. If you do not specify this value, then the operation assumes + the user whose credentials are used to call the operation. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + service_specific_credential_id: str | None = ... + """ + The unique identifier of the service-specific credential. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + status: str | None = ... + """The status to be assigned to the service-specific credential.""" + +@dataclass(kw_only=True) +class UpdateServiceSpecificCredentialOutput(_SerdeShape): + """Dataclass for UpdateServiceSpecificCredentialOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateSigningCertificateInput(_SerdeShape): + """Dataclass for UpdateSigningCertificateInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user the signing certificate belongs to. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + certificate_id: str | None = ... + """ + The ID of the signing certificate you want to update. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + status: str | None = ... + """ + The status you want to assign to the certificate. `Active` means that + the certificate can be used for programmatic calls to Amazon Web + Services `Inactive` means that the certificate cannot be used. + """ + +@dataclass(kw_only=True) +class UpdateSigningCertificateOutput(_SerdeShape): + """Dataclass for UpdateSigningCertificateOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateSSHPublicKeyInput(_SerdeShape): + """Dataclass for UpdateSSHPublicKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user associated with the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + ssh_public_key_id: str | None = ... + """ + The unique identifier for the SSH public key. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters that + can consist of any upper or lowercased letter or digit. + """ + status: str | None = ... + """ + The status to assign to the SSH public key. `Active` means that the key + can be used for authentication with an CodeCommit repository. `Inactive` + means that the key cannot be used. + """ + +@dataclass(kw_only=True) +class UpdateSSHPublicKeyOutput(_SerdeShape): + """Dataclass for UpdateSSHPublicKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateUserInput(_SerdeShape): + """Dataclass for UpdateUserInput structure.""" + + user_name: str | None = ... + """ + Name of the user to update. If you're changing the name of the user, + this is the original user name. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + new_path: str | None = ... + """ + New path for the IAM user. Include this parameter only if you're + changing the user's path. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + """ + new_user_name: str | None = ... + """ + New name for the user. Include this parameter only if you're changing + the user's name. + + IAM user, group, role, and policy names must be unique within the + account. Names are not distinguished by case. For example, you cannot + create resources named both \"MyResource\" and \"myresource\". + """ + +@dataclass(kw_only=True) +class UpdateUserOutput(_SerdeShape): + """Dataclass for UpdateUserOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UploadServerCertificateInput(_SerdeShape): + """Dataclass for UploadServerCertificateInput structure.""" + + path: str | None = ... + """ + The path for the server certificate. For more information about paths, + see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + This parameter is optional. If it is not included, it defaults to a + slash (/). This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of either a forward slash (/) by itself or a string that must + begin and end with forward slashes. In addition, it can contain any + ASCII character from the ! (`\u0021`) through the DEL character + (`\u007f`), including most punctuation characters, digits, and upper and + lowercased letters. + + Note: + If you are uploading a server certificate specifically for use with + Amazon CloudFront distributions, you must specify a path using the + `path` parameter. The path must begin with `/cloudfront` and must + include a trailing slash (for example, `/cloudfront/test/`). + """ + server_certificate_name: str | None = ... + """ + The name for the server certificate. Do not include the path in this + value. The name of the certificate cannot contain any spaces. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + certificate_body: str | None = ... + """ + The contents of the public key certificate in PEM-encoded format. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + private_key: str | None = ... + """ + The contents of the private key in PEM-encoded format. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + certificate_chain: str | None = ... + """ + The contents of the certificate chain. This is typically a concatenation + of the PEM-encoded public key certificates of the chain. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + tags: list[Tag] | None = ... + """ + A list of tags that you want to attach to the new IAM server certificate + resource. Each tag consists of a key name and an associated value. For + more information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + + Note: + If any one of the tags is invalid or if you exceed the allowed maximum + number of tags, then the entire request fails and the resource is not + created. + """ + +@dataclass(kw_only=True) +class UploadServerCertificateOutput(_SerdeShape): + """ + Contains the response to a successful + [UploadServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html) + request. + """ + + server_certificate_metadata: ServerCertificateMetadata | None = ... + """ + The meta information of the uploaded server certificate without its + certificate body, certificate chain, and private key. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the new IAM server certificate. The + returned list of tags is sorted by tag key. For more information about + tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UploadSigningCertificateInput(_SerdeShape): + """Dataclass for UploadSigningCertificateInput structure.""" + + user_name: str | None = ... + """ + The name of the user the signing certificate is for. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + certificate_body: str | None = ... + """ + The contents of the signing certificate. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class UploadSigningCertificateOutput(_SerdeShape): + """ + Contains the response to a successful + [UploadSigningCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSigningCertificate.html) + request. + """ + + certificate: SigningCertificate + """Information about the certificate.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UploadSSHPublicKeyInput(_SerdeShape): + """Dataclass for UploadSSHPublicKeyInput structure.""" + + user_name: str | None = ... + """ + The name of the IAM user to associate the SSH public key with. + + This parameter allows (through its [regex + pattern](http://wikipedia.org/wiki/regex)) a string of characters + consisting of upper and lowercase alphanumeric characters with no + spaces. You can also include any of the following characters: _+=,.@- + """ + ssh_public_key_body: str | None = ... + """ + The SSH public key. The public key must be encoded in ssh-rsa format or + PEM format. The minimum bit-length of the public key is 2048 bits. For + example, you can generate a 2048-bit key, and the resulting PEM file is + 1679 bytes long. + + The [regex pattern](http://wikipedia.org/wiki/regex) used to validate + this parameter is a string of characters consisting of the following: + + - Any printable ASCII character ranging from the space character + (`\u0020`) through the end of the ASCII character range + + - The printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`) + + - The special characters tab (`\u0009`), line feed (`\u000a`), and + carriage return (`\u000d`) + """ + +@dataclass(kw_only=True) +class UploadSSHPublicKeyOutput(_SerdeShape): + """ + Contains the response to a successful + [UploadSSHPublicKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadSSHPublicKey.html) + request. + """ + + ssh_public_key: SSHPublicKey | None = ... + """Contains information about the SSH public key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class User(_SerdeShape): + """ + Contains information about an IAM user entity. + + This data type is used as a response element in the following + operations: + + - [CreateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) + + - [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) + + - [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) + """ + + path: str + """ + The path to the user. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + + The ARN of the policy used to set the permissions boundary for the user. + """ + user_name: str + """The friendly name identifying the user.""" + user_id: str + """ + The stable and unique string identifying the user. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str + """ + The Amazon Resource Name (ARN) that identifies the user. For more + information about ARNs and how to use ARNs in policies, see [IAM + Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + create_date: datetime + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the user was created. + """ + password_last_used: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the user's password was + last used to sign in to an Amazon Web Services website. For a list of + Amazon Web Services websites that capture a user's last sign-in time, + see the [Credential + reports](https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html) + topic in the *IAM User Guide*. If a password is used more than once in a + five-minute span, only the first use is returned in this field. If the + field is null (no value), then it indicates that they never signed in + with a password. This can be because: + + - The user never had a password. + + - A password exists but has not been used since IAM started tracking + this information on October 20, 2014. + + A null value does not mean that the user *never* had a password. Also, + if the user does not currently have a password but had one in the past, + then this field contains the date and time the most recent password was + used. + + This value is returned only in the + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) + and + [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) + operations. + """ + permissions_boundary: AttachedPermissionsBoundary | None = ... + """ + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are associated with the user. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class UserDetail(_SerdeShape): + """ + Contains information about an IAM user, including all the user's + policies and all the IAM groups the user is in. + + This data type is used as a response element in the + [GetAccountAuthorizationDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountAuthorizationDetails.html) + operation. + """ + + path: str | None = ... + """ + The path to the user. For more information about paths, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + user_name: str | None = ... + """The friendly name identifying the user.""" + user_id: str | None = ... + """ + The stable and unique string identifying the user. For more information + about IDs, see [IAM + identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) + in the *IAM User Guide*. + """ + arn: str | None = ... + """ + The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon + Web Services resources. + + For more information about ARNs, go to [Amazon Resource Names + (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + in the *Amazon Web Services General Reference*. + """ + create_date: datetime | None = ... + """ + The date and time, in [ISO 8601 date-time + format](http://www.iso.org/iso/iso8601), when the user was created. + """ + user_policy_list: list[PolicyDetail] | None = ... + """A list of the inline policies embedded in the user.""" + group_list: list[str] | None = ... + """A list of IAM groups that the user is in.""" + attached_managed_policies: list[AttachedPolicy] | None = ... + """A list of the managed policies attached to the user.""" + permissions_boundary: AttachedPermissionsBoundary | None = ... + """ + The ARN of the policy used to set the permissions boundary for the user. + + For more information about permissions boundaries, see [Permissions + boundaries for IAM + identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) + in the *IAM User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags that are associated with the user. For more information + about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +@dataclass(kw_only=True) +class VirtualMFADevice(_SerdeShape): + """Contains information about a virtual MFA device.""" + + serial_number: str + """The serial number associated with `VirtualMFADevice`.""" + base32_string_seed: bytes | None = ... + """ + The base32 seed defined as specified in + [RFC3548](https://tools.ietf.org/html/rfc3548.txt). The + `Base32StringSeed` is base32-encoded. + """ + qr_code_png: bytes | None = ... + """ + A QR code PNG image that encodes + `otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String` + where `$virtualMFADeviceName` is one of the create call arguments. + `AccountName` is the user name if set (otherwise, the account ID + otherwise), and `Base32String` is the seed in base32 format. The + `Base32String` value is base64-encoded. + """ + user: User | None = ... + """The IAM user associated with this virtual MFA device.""" + enable_date: datetime | None = ... + """The date and time on which the virtual MFA device was enabled.""" + tags: list[Tag] | None = ... + """ + A list of tags that are attached to the virtual MFA device. For more + information about tagging, see [Tagging IAM + resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) + in the *IAM User Guide*. + """ + +ACCEPT_DELEGATION_REQUEST: APIOperation[ + AcceptDelegationRequestInput, AcceptDelegationRequestOutput +] +ACQUIRE_ROLE: APIOperation[AcquireRoleInput, AcquireRoleOutput] +ADD_CLIENT_ID_TO_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + AddClientIDToOpenIDConnectProviderInput, AddClientIDToOpenIDConnectProviderOutput +] +ADD_ROLE_TO_INSTANCE_PROFILE: APIOperation[ + AddRoleToInstanceProfileInput, AddRoleToInstanceProfileOutput +] +ADD_USER_TO_GROUP: APIOperation[AddUserToGroupInput, AddUserToGroupOutput] +ASSOCIATE_DELEGATION_REQUEST: APIOperation[ + AssociateDelegationRequestInput, AssociateDelegationRequestOutput +] +ATTACH_GROUP_POLICY: APIOperation[AttachGroupPolicyInput, AttachGroupPolicyOutput] +ATTACH_ROLE_POLICY: APIOperation[AttachRolePolicyInput, AttachRolePolicyOutput] +ATTACH_USER_POLICY: APIOperation[AttachUserPolicyInput, AttachUserPolicyOutput] +CHANGE_PASSWORD: APIOperation[ChangePasswordInput, ChangePasswordOutput] +CREATE_ACCESS_KEY: APIOperation[CreateAccessKeyInput, CreateAccessKeyOutput] +CREATE_ACCOUNT_ALIAS: APIOperation[CreateAccountAliasInput, CreateAccountAliasOutput] +CREATE_DELEGATION_REQUEST: APIOperation[ + CreateDelegationRequestInput, CreateDelegationRequestOutput +] +CREATE_GROUP: APIOperation[CreateGroupInput, CreateGroupOutput] +CREATE_INSTANCE_PROFILE: APIOperation[ + CreateInstanceProfileInput, CreateInstanceProfileOutput +] +CREATE_LOGIN_PROFILE: APIOperation[CreateLoginProfileInput, CreateLoginProfileOutput] +CREATE_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + CreateOpenIDConnectProviderInput, CreateOpenIDConnectProviderOutput +] +CREATE_POLICY: APIOperation[CreatePolicyInput, CreatePolicyOutput] +CREATE_POLICY_VERSION: APIOperation[CreatePolicyVersionInput, CreatePolicyVersionOutput] +CREATE_ROLE: APIOperation[CreateRoleInput, CreateRoleOutput] +CREATE_SAML_PROVIDER: APIOperation[CreateSAMLProviderInput, CreateSAMLProviderOutput] +CREATE_SERVICE_LINKED_ROLE: APIOperation[ + CreateServiceLinkedRoleInput, CreateServiceLinkedRoleOutput +] +CREATE_SERVICE_SPECIFIC_CREDENTIAL: APIOperation[ + CreateServiceSpecificCredentialInput, CreateServiceSpecificCredentialOutput +] +CREATE_USER: APIOperation[CreateUserInput, CreateUserOutput] +CREATE_VIRTUAL_MFA_DEVICE: APIOperation[ + CreateVirtualMFADeviceInput, CreateVirtualMFADeviceOutput +] +DEACTIVATE_MFA_DEVICE: APIOperation[DeactivateMFADeviceInput, DeactivateMFADeviceOutput] +DELETE_ACCESS_KEY: APIOperation[DeleteAccessKeyInput, DeleteAccessKeyOutput] +DELETE_ACCOUNT_ALIAS: APIOperation[DeleteAccountAliasInput, DeleteAccountAliasOutput] +DELETE_ACCOUNT_PASSWORD_POLICY: APIOperation[ + DeleteAccountPasswordPolicyInput, DeleteAccountPasswordPolicyOutput +] +DELETE_GROUP: APIOperation[DeleteGroupInput, DeleteGroupOutput] +DELETE_GROUP_POLICY: APIOperation[DeleteGroupPolicyInput, DeleteGroupPolicyOutput] +DELETE_INSTANCE_PROFILE: APIOperation[ + DeleteInstanceProfileInput, DeleteInstanceProfileOutput +] +DELETE_LOGIN_PROFILE: APIOperation[DeleteLoginProfileInput, DeleteLoginProfileOutput] +DELETE_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + DeleteOpenIDConnectProviderInput, DeleteOpenIDConnectProviderOutput +] +DELETE_POLICY: APIOperation[DeletePolicyInput, DeletePolicyOutput] +DELETE_POLICY_VERSION: APIOperation[DeletePolicyVersionInput, DeletePolicyVersionOutput] +DELETE_ROLE: APIOperation[DeleteRoleInput, DeleteRoleOutput] +DELETE_ROLE_PERMISSIONS_BOUNDARY: APIOperation[ + DeleteRolePermissionsBoundaryInput, DeleteRolePermissionsBoundaryOutput +] +DELETE_ROLE_POLICY: APIOperation[DeleteRolePolicyInput, DeleteRolePolicyOutput] +DELETE_SAML_PROVIDER: APIOperation[DeleteSAMLProviderInput, DeleteSAMLProviderOutput] +DELETE_SERVER_CERTIFICATE: APIOperation[ + DeleteServerCertificateInput, DeleteServerCertificateOutput +] +DELETE_SERVICE_LINKED_ROLE: APIOperation[ + DeleteServiceLinkedRoleInput, DeleteServiceLinkedRoleOutput +] +DELETE_SERVICE_SPECIFIC_CREDENTIAL: APIOperation[ + DeleteServiceSpecificCredentialInput, DeleteServiceSpecificCredentialOutput +] +DELETE_SIGNING_CERTIFICATE: APIOperation[ + DeleteSigningCertificateInput, DeleteSigningCertificateOutput +] +DELETE_SSH_PUBLIC_KEY: APIOperation[DeleteSSHPublicKeyInput, DeleteSSHPublicKeyOutput] +DELETE_USER: APIOperation[DeleteUserInput, DeleteUserOutput] +DELETE_USER_PERMISSIONS_BOUNDARY: APIOperation[ + DeleteUserPermissionsBoundaryInput, DeleteUserPermissionsBoundaryOutput +] +DELETE_USER_POLICY: APIOperation[DeleteUserPolicyInput, DeleteUserPolicyOutput] +DELETE_VIRTUAL_MFA_DEVICE: APIOperation[ + DeleteVirtualMFADeviceInput, DeleteVirtualMFADeviceOutput +] +DETACH_GROUP_POLICY: APIOperation[DetachGroupPolicyInput, DetachGroupPolicyOutput] +DETACH_ROLE_POLICY: APIOperation[DetachRolePolicyInput, DetachRolePolicyOutput] +DETACH_USER_POLICY: APIOperation[DetachUserPolicyInput, DetachUserPolicyOutput] +DISABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT: APIOperation[ + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, +] +DISABLE_ORGANIZATIONS_ROOT_SESSIONS: APIOperation[ + DisableOrganizationsRootSessionsInput, DisableOrganizationsRootSessionsOutput +] +DISABLE_OUTBOUND_WEB_IDENTITY_FEDERATION: APIOperation[ + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, +] +ENABLE_MFA_DEVICE: APIOperation[EnableMFADeviceInput, EnableMFADeviceOutput] +ENABLE_ORGANIZATIONS_ROOT_CREDENTIALS_MANAGEMENT: APIOperation[ + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, +] +ENABLE_ORGANIZATIONS_ROOT_SESSIONS: APIOperation[ + EnableOrganizationsRootSessionsInput, EnableOrganizationsRootSessionsOutput +] +ENABLE_OUTBOUND_WEB_IDENTITY_FEDERATION: APIOperation[ + EnableOutboundWebIdentityFederationInput, EnableOutboundWebIdentityFederationOutput +] +GENERATE_CREDENTIAL_REPORT: APIOperation[ + GenerateCredentialReportInput, GenerateCredentialReportOutput +] +GENERATE_ORGANIZATIONS_ACCESS_REPORT: APIOperation[ + GenerateOrganizationsAccessReportInput, GenerateOrganizationsAccessReportOutput +] +GENERATE_SERVICE_LAST_ACCESSED_DETAILS: APIOperation[ + GenerateServiceLastAccessedDetailsInput, GenerateServiceLastAccessedDetailsOutput +] +GET_ACCESS_KEY_LAST_USED: APIOperation[ + GetAccessKeyLastUsedInput, GetAccessKeyLastUsedOutput +] +GET_ACCOUNT_AUTHORIZATION_DETAILS: APIOperation[ + GetAccountAuthorizationDetailsInput, GetAccountAuthorizationDetailsOutput +] +GET_ACCOUNT_PASSWORD_POLICY: APIOperation[ + GetAccountPasswordPolicyInput, GetAccountPasswordPolicyOutput +] +GET_ACCOUNT_PROPERTIES: APIOperation[ + GetAccountPropertiesInput, GetAccountPropertiesOutput +] +GET_ACCOUNT_SUMMARY: APIOperation[GetAccountSummaryInput, GetAccountSummaryOutput] +GET_CONTEXT_KEYS_FOR_CUSTOM_POLICY: APIOperation[ + GetContextKeysForCustomPolicyInput, GetContextKeysForCustomPolicyOutput +] +GET_CONTEXT_KEYS_FOR_PRINCIPAL_POLICY: APIOperation[ + GetContextKeysForPrincipalPolicyInput, GetContextKeysForPrincipalPolicyOutput +] +GET_CREDENTIAL_REPORT: APIOperation[GetCredentialReportInput, GetCredentialReportOutput] +GET_DELEGATION_REQUEST: APIOperation[ + GetDelegationRequestInput, GetDelegationRequestOutput +] +GET_GROUP: APIOperation[GetGroupInput, GetGroupOutput] +GET_GROUP_POLICY: APIOperation[GetGroupPolicyInput, GetGroupPolicyOutput] +GET_HUMAN_READABLE_SUMMARY: APIOperation[ + GetHumanReadableSummaryInput, GetHumanReadableSummaryOutput +] +GET_INSTANCE_PROFILE: APIOperation[GetInstanceProfileInput, GetInstanceProfileOutput] +GET_LOGIN_PROFILE: APIOperation[GetLoginProfileInput, GetLoginProfileOutput] +GET_MFA_DEVICE: APIOperation[GetMFADeviceInput, GetMFADeviceOutput] +GET_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + GetOpenIDConnectProviderInput, GetOpenIDConnectProviderOutput +] +GET_ORGANIZATIONS_ACCESS_REPORT: APIOperation[ + GetOrganizationsAccessReportInput, GetOrganizationsAccessReportOutput +] +GET_OUTBOUND_WEB_IDENTITY_FEDERATION_INFO: APIOperation[ + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, +] +GET_POLICY: APIOperation[GetPolicyInput, GetPolicyOutput] +GET_POLICY_VERSION: APIOperation[GetPolicyVersionInput, GetPolicyVersionOutput] +GET_ROLE: APIOperation[GetRoleInput, GetRoleOutput] +GET_ROLE_POLICY: APIOperation[GetRolePolicyInput, GetRolePolicyOutput] +GET_ROLE_TEMPLATE_VERSION: APIOperation[ + GetRoleTemplateVersionInput, GetRoleTemplateVersionOutput +] +GET_SAML_PROVIDER: APIOperation[GetSAMLProviderInput, GetSAMLProviderOutput] +GET_SERVER_CERTIFICATE: APIOperation[ + GetServerCertificateInput, GetServerCertificateOutput +] +GET_SERVICE_LAST_ACCESSED_DETAILS: APIOperation[ + GetServiceLastAccessedDetailsInput, GetServiceLastAccessedDetailsOutput +] +GET_SERVICE_LAST_ACCESSED_DETAILS_WITH_ENTITIES: APIOperation[ + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, +] +GET_SERVICE_LINKED_ROLE_DELETION_STATUS: APIOperation[ + GetServiceLinkedRoleDeletionStatusInput, GetServiceLinkedRoleDeletionStatusOutput +] +GET_SSH_PUBLIC_KEY: APIOperation[GetSSHPublicKeyInput, GetSSHPublicKeyOutput] +GET_USER: APIOperation[GetUserInput, GetUserOutput] +GET_USER_POLICY: APIOperation[GetUserPolicyInput, GetUserPolicyOutput] +LIST_ACCESS_KEYS: APIOperation[ListAccessKeysInput, ListAccessKeysOutput] +LIST_ACCOUNT_ALIASES: APIOperation[ListAccountAliasesInput, ListAccountAliasesOutput] +LIST_ATTACHED_GROUP_POLICIES: APIOperation[ + ListAttachedGroupPoliciesInput, ListAttachedGroupPoliciesOutput +] +LIST_ATTACHED_ROLE_POLICIES: APIOperation[ + ListAttachedRolePoliciesInput, ListAttachedRolePoliciesOutput +] +LIST_ATTACHED_USER_POLICIES: APIOperation[ + ListAttachedUserPoliciesInput, ListAttachedUserPoliciesOutput +] +LIST_DELEGATION_REQUESTS: APIOperation[ + ListDelegationRequestsInput, ListDelegationRequestsOutput +] +LIST_ENTITIES_FOR_POLICY: APIOperation[ + ListEntitiesForPolicyInput, ListEntitiesForPolicyOutput +] +LIST_GROUP_POLICIES: APIOperation[ListGroupPoliciesInput, ListGroupPoliciesOutput] +LIST_GROUPS: APIOperation[ListGroupsInput, ListGroupsOutput] +LIST_GROUPS_FOR_USER: APIOperation[ListGroupsForUserInput, ListGroupsForUserOutput] +LIST_INSTANCE_PROFILES: APIOperation[ + ListInstanceProfilesInput, ListInstanceProfilesOutput +] +LIST_INSTANCE_PROFILES_FOR_ROLE: APIOperation[ + ListInstanceProfilesForRoleInput, ListInstanceProfilesForRoleOutput +] +LIST_INSTANCE_PROFILE_TAGS: APIOperation[ + ListInstanceProfileTagsInput, ListInstanceProfileTagsOutput +] +LIST_MFA_DEVICES: APIOperation[ListMFADevicesInput, ListMFADevicesOutput] +LIST_MFA_DEVICE_TAGS: APIOperation[ListMFADeviceTagsInput, ListMFADeviceTagsOutput] +LIST_OPEN_ID_CONNECT_PROVIDERS: APIOperation[ + ListOpenIDConnectProvidersInput, ListOpenIDConnectProvidersOutput +] +LIST_OPEN_ID_CONNECT_PROVIDER_TAGS: APIOperation[ + ListOpenIDConnectProviderTagsInput, ListOpenIDConnectProviderTagsOutput +] +LIST_ORGANIZATIONS_FEATURES: APIOperation[ + ListOrganizationsFeaturesInput, ListOrganizationsFeaturesOutput +] +LIST_POLICIES: APIOperation[ListPoliciesInput, ListPoliciesOutput] +LIST_POLICIES_GRANTING_SERVICE_ACCESS: APIOperation[ + ListPoliciesGrantingServiceAccessInput, ListPoliciesGrantingServiceAccessOutput +] +LIST_POLICY_TAGS: APIOperation[ListPolicyTagsInput, ListPolicyTagsOutput] +LIST_POLICY_VERSIONS: APIOperation[ListPolicyVersionsInput, ListPolicyVersionsOutput] +LIST_ROLE_POLICIES: APIOperation[ListRolePoliciesInput, ListRolePoliciesOutput] +LIST_ROLES: APIOperation[ListRolesInput, ListRolesOutput] +LIST_ROLE_TAGS: APIOperation[ListRoleTagsInput, ListRoleTagsOutput] +LIST_SAML_PROVIDERS: APIOperation[ListSAMLProvidersInput, ListSAMLProvidersOutput] +LIST_SAML_PROVIDER_TAGS: APIOperation[ + ListSAMLProviderTagsInput, ListSAMLProviderTagsOutput +] +LIST_SERVER_CERTIFICATES: APIOperation[ + ListServerCertificatesInput, ListServerCertificatesOutput +] +LIST_SERVER_CERTIFICATE_TAGS: APIOperation[ + ListServerCertificateTagsInput, ListServerCertificateTagsOutput +] +LIST_SERVICE_SPECIFIC_CREDENTIALS: APIOperation[ + ListServiceSpecificCredentialsInput, ListServiceSpecificCredentialsOutput +] +LIST_SIGNING_CERTIFICATES: APIOperation[ + ListSigningCertificatesInput, ListSigningCertificatesOutput +] +LIST_SSH_PUBLIC_KEYS: APIOperation[ListSSHPublicKeysInput, ListSSHPublicKeysOutput] +LIST_USER_POLICIES: APIOperation[ListUserPoliciesInput, ListUserPoliciesOutput] +LIST_USERS: APIOperation[ListUsersInput, ListUsersOutput] +LIST_USER_TAGS: APIOperation[ListUserTagsInput, ListUserTagsOutput] +LIST_VIRTUAL_MFA_DEVICES: APIOperation[ + ListVirtualMFADevicesInput, ListVirtualMFADevicesOutput +] +PUT_ACCOUNT_PROPERTIES: APIOperation[ + PutAccountPropertiesInput, PutAccountPropertiesOutput +] +PUT_GROUP_POLICY: APIOperation[PutGroupPolicyInput, PutGroupPolicyOutput] +PUT_ROLE_PERMISSIONS_BOUNDARY: APIOperation[ + PutRolePermissionsBoundaryInput, PutRolePermissionsBoundaryOutput +] +PUT_ROLE_POLICY: APIOperation[PutRolePolicyInput, PutRolePolicyOutput] +PUT_USER_PERMISSIONS_BOUNDARY: APIOperation[ + PutUserPermissionsBoundaryInput, PutUserPermissionsBoundaryOutput +] +PUT_USER_POLICY: APIOperation[PutUserPolicyInput, PutUserPolicyOutput] +REJECT_DELEGATION_REQUEST: APIOperation[ + RejectDelegationRequestInput, RejectDelegationRequestOutput +] +REMOVE_CLIENT_ID_FROM_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, +] +REMOVE_ROLE_FROM_INSTANCE_PROFILE: APIOperation[ + RemoveRoleFromInstanceProfileInput, RemoveRoleFromInstanceProfileOutput +] +REMOVE_USER_FROM_GROUP: APIOperation[ + RemoveUserFromGroupInput, RemoveUserFromGroupOutput +] +RESET_SERVICE_SPECIFIC_CREDENTIAL: APIOperation[ + ResetServiceSpecificCredentialInput, ResetServiceSpecificCredentialOutput +] +RESYNC_MFA_DEVICE: APIOperation[ResyncMFADeviceInput, ResyncMFADeviceOutput] +SEND_DELEGATION_TOKEN: APIOperation[SendDelegationTokenInput, SendDelegationTokenOutput] +SET_DEFAULT_POLICY_VERSION: APIOperation[ + SetDefaultPolicyVersionInput, SetDefaultPolicyVersionOutput +] +SET_SECURITY_TOKEN_SERVICE_PREFERENCES: APIOperation[ + SetSecurityTokenServicePreferencesInput, SetSecurityTokenServicePreferencesOutput +] +SIMULATE_CUSTOM_POLICY: APIOperation[ + SimulateCustomPolicyInput, SimulateCustomPolicyOutput +] +SIMULATE_PRINCIPAL_POLICY: APIOperation[ + SimulatePrincipalPolicyInput, SimulatePrincipalPolicyOutput +] +TAG_INSTANCE_PROFILE: APIOperation[TagInstanceProfileInput, TagInstanceProfileOutput] +TAG_MFA_DEVICE: APIOperation[TagMFADeviceInput, TagMFADeviceOutput] +TAG_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + TagOpenIDConnectProviderInput, TagOpenIDConnectProviderOutput +] +TAG_POLICY: APIOperation[TagPolicyInput, TagPolicyOutput] +TAG_ROLE: APIOperation[TagRoleInput, TagRoleOutput] +TAG_SAML_PROVIDER: APIOperation[TagSAMLProviderInput, TagSAMLProviderOutput] +TAG_SERVER_CERTIFICATE: APIOperation[ + TagServerCertificateInput, TagServerCertificateOutput +] +TAG_USER: APIOperation[TagUserInput, TagUserOutput] +UNTAG_INSTANCE_PROFILE: APIOperation[ + UntagInstanceProfileInput, UntagInstanceProfileOutput +] +UNTAG_MFA_DEVICE: APIOperation[UntagMFADeviceInput, UntagMFADeviceOutput] +UNTAG_OPEN_ID_CONNECT_PROVIDER: APIOperation[ + UntagOpenIDConnectProviderInput, UntagOpenIDConnectProviderOutput +] +UNTAG_POLICY: APIOperation[UntagPolicyInput, UntagPolicyOutput] +UNTAG_ROLE: APIOperation[UntagRoleInput, UntagRoleOutput] +UNTAG_SAML_PROVIDER: APIOperation[UntagSAMLProviderInput, UntagSAMLProviderOutput] +UNTAG_SERVER_CERTIFICATE: APIOperation[ + UntagServerCertificateInput, UntagServerCertificateOutput +] +UNTAG_USER: APIOperation[UntagUserInput, UntagUserOutput] +UPDATE_ACCESS_KEY: APIOperation[UpdateAccessKeyInput, UpdateAccessKeyOutput] +UPDATE_ACCOUNT_PASSWORD_POLICY: APIOperation[ + UpdateAccountPasswordPolicyInput, UpdateAccountPasswordPolicyOutput +] +UPDATE_ASSUME_ROLE_POLICY: APIOperation[ + UpdateAssumeRolePolicyInput, UpdateAssumeRolePolicyOutput +] +UPDATE_DELEGATION_REQUEST: APIOperation[ + UpdateDelegationRequestInput, UpdateDelegationRequestOutput +] +UPDATE_GROUP: APIOperation[UpdateGroupInput, UpdateGroupOutput] +UPDATE_LOGIN_PROFILE: APIOperation[UpdateLoginProfileInput, UpdateLoginProfileOutput] +UPDATE_OPEN_ID_CONNECT_PROVIDER_THUMBPRINT: APIOperation[ + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, +] +UPDATE_ROLE: APIOperation[UpdateRoleInput, UpdateRoleOutput] +UPDATE_ROLE_DESCRIPTION: APIOperation[ + UpdateRoleDescriptionInput, UpdateRoleDescriptionOutput +] +UPDATE_SAML_PROVIDER: APIOperation[UpdateSAMLProviderInput, UpdateSAMLProviderOutput] +UPDATE_SERVER_CERTIFICATE: APIOperation[ + UpdateServerCertificateInput, UpdateServerCertificateOutput +] +UPDATE_SERVICE_SPECIFIC_CREDENTIAL: APIOperation[ + UpdateServiceSpecificCredentialInput, UpdateServiceSpecificCredentialOutput +] +UPDATE_SIGNING_CERTIFICATE: APIOperation[ + UpdateSigningCertificateInput, UpdateSigningCertificateOutput +] +UPDATE_SSH_PUBLIC_KEY: APIOperation[UpdateSSHPublicKeyInput, UpdateSSHPublicKeyOutput] +UPDATE_USER: APIOperation[UpdateUserInput, UpdateUserOutput] +UPLOAD_SERVER_CERTIFICATE: APIOperation[ + UploadServerCertificateInput, UploadServerCertificateOutput +] +UPLOAD_SIGNING_CERTIFICATE: APIOperation[ + UploadSigningCertificateInput, UploadSigningCertificateOutput +] +UPLOAD_SSH_PUBLIC_KEY: APIOperation[UploadSSHPublicKeyInput, UploadSSHPublicKeyOutput] diff --git a/clients/aws-sdk-iam/src/aws_sdk_iam/user_agent.py b/clients/aws-sdk-iam/src/aws_sdk_iam/user_agent.py new file mode 100644 index 00000000..0317a46f --- /dev/null +++ b/clients/aws-sdk-iam/src/aws_sdk_iam/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import IAMConfig + + +def aws_user_agent_plugin(config: IAMConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="IAM", + ) + ) diff --git a/clients/aws-sdk-iam/tests/__init__.py b/clients/aws-sdk-iam/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-iam/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-iam/tests/_typecheck.py b/clients/aws-sdk-iam/tests/_typecheck.py new file mode 100644 index 00000000..17162e1a --- /dev/null +++ b/clients/aws-sdk-iam/tests/_typecheck.py @@ -0,0 +1,886 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_iam.models import ( + AcceptDelegationRequestInput, + AcceptDelegationRequestOutput, + AccessDetail, + AccessKey, + AccessKeyLastUsed, + AccessKeyMetadata, + AcquireRoleInput, + AcquireRoleOutput, + AddClientIDToOpenIDConnectProviderInput, + AddClientIDToOpenIDConnectProviderOutput, + AddRoleToInstanceProfileInput, + AddRoleToInstanceProfileOutput, + AddUserToGroupInput, + AddUserToGroupOutput, + AssociateDelegationRequestInput, + AssociateDelegationRequestOutput, + AttachGroupPolicyInput, + AttachGroupPolicyOutput, + AttachRolePolicyInput, + AttachRolePolicyOutput, + AttachUserPolicyInput, + AttachUserPolicyOutput, + AttachedPermissionsBoundary, + AttachedPolicy, + ChangePasswordInput, + ChangePasswordOutput, + ContextEntry, + CreateAccessKeyInput, + CreateAccessKeyOutput, + CreateAccountAliasInput, + CreateAccountAliasOutput, + CreateDelegationRequestInput, + CreateDelegationRequestOutput, + CreateGroupInput, + CreateGroupOutput, + CreateInstanceProfileInput, + CreateInstanceProfileOutput, + CreateLoginProfileInput, + CreateLoginProfileOutput, + CreateOpenIDConnectProviderInput, + CreateOpenIDConnectProviderOutput, + CreatePolicyInput, + CreatePolicyOutput, + CreatePolicyVersionInput, + CreatePolicyVersionOutput, + CreateRoleInput, + CreateRoleOutput, + CreateSAMLProviderInput, + CreateSAMLProviderOutput, + CreateServiceLinkedRoleInput, + CreateServiceLinkedRoleOutput, + CreateServiceSpecificCredentialInput, + CreateServiceSpecificCredentialOutput, + CreateUserInput, + CreateUserOutput, + CreateVirtualMFADeviceInput, + CreateVirtualMFADeviceOutput, + DeactivateMFADeviceInput, + DeactivateMFADeviceOutput, + DelegationPermission, + DelegationRequest, + DeleteAccessKeyInput, + DeleteAccessKeyOutput, + DeleteAccountAliasInput, + DeleteAccountAliasOutput, + DeleteAccountPasswordPolicyInput, + DeleteAccountPasswordPolicyOutput, + DeleteGroupInput, + DeleteGroupOutput, + DeleteGroupPolicyInput, + DeleteGroupPolicyOutput, + DeleteInstanceProfileInput, + DeleteInstanceProfileOutput, + DeleteLoginProfileInput, + DeleteLoginProfileOutput, + DeleteOpenIDConnectProviderInput, + DeleteOpenIDConnectProviderOutput, + DeletePolicyInput, + DeletePolicyOutput, + DeletePolicyVersionInput, + DeletePolicyVersionOutput, + DeleteRoleInput, + DeleteRoleOutput, + DeleteRolePermissionsBoundaryInput, + DeleteRolePermissionsBoundaryOutput, + DeleteRolePolicyInput, + DeleteRolePolicyOutput, + DeleteSAMLProviderInput, + DeleteSAMLProviderOutput, + DeleteSSHPublicKeyInput, + DeleteSSHPublicKeyOutput, + DeleteServerCertificateInput, + DeleteServerCertificateOutput, + DeleteServiceLinkedRoleInput, + DeleteServiceLinkedRoleOutput, + DeleteServiceSpecificCredentialInput, + DeleteServiceSpecificCredentialOutput, + DeleteSigningCertificateInput, + DeleteSigningCertificateOutput, + DeleteUserInput, + DeleteUserOutput, + DeleteUserPermissionsBoundaryInput, + DeleteUserPermissionsBoundaryOutput, + DeleteUserPolicyInput, + DeleteUserPolicyOutput, + DeleteVirtualMFADeviceInput, + DeleteVirtualMFADeviceOutput, + DeletionTaskFailureReasonType, + DetachGroupPolicyInput, + DetachGroupPolicyOutput, + DetachRolePolicyInput, + DetachRolePolicyOutput, + DetachUserPolicyInput, + DetachUserPolicyOutput, + DisableOrganizationsRootCredentialsManagementInput, + DisableOrganizationsRootCredentialsManagementOutput, + DisableOrganizationsRootSessionsInput, + DisableOrganizationsRootSessionsOutput, + DisableOutboundWebIdentityFederationInput, + DisableOutboundWebIdentityFederationOutput, + EnableMFADeviceInput, + EnableMFADeviceOutput, + EnableOrganizationsRootCredentialsManagementInput, + EnableOrganizationsRootCredentialsManagementOutput, + EnableOrganizationsRootSessionsInput, + EnableOrganizationsRootSessionsOutput, + EnableOutboundWebIdentityFederationInput, + EnableOutboundWebIdentityFederationOutput, + EntityDetails, + EntityInfo, + ErrorDetails, + EvaluationResult, + GenerateCredentialReportInput, + GenerateCredentialReportOutput, + GenerateOrganizationsAccessReportInput, + GenerateOrganizationsAccessReportOutput, + GenerateServiceLastAccessedDetailsInput, + GenerateServiceLastAccessedDetailsOutput, + GetAccessKeyLastUsedInput, + GetAccessKeyLastUsedOutput, + GetAccountAuthorizationDetailsInput, + GetAccountAuthorizationDetailsOutput, + GetAccountPasswordPolicyInput, + GetAccountPasswordPolicyOutput, + GetAccountPropertiesInput, + GetAccountPropertiesOutput, + GetAccountSummaryInput, + GetAccountSummaryOutput, + GetContextKeysForCustomPolicyInput, + GetContextKeysForCustomPolicyOutput, + GetContextKeysForPrincipalPolicyInput, + GetContextKeysForPrincipalPolicyOutput, + GetCredentialReportInput, + GetCredentialReportOutput, + GetDelegationRequestInput, + GetDelegationRequestOutput, + GetGroupInput, + GetGroupOutput, + GetGroupPolicyInput, + GetGroupPolicyOutput, + GetHumanReadableSummaryInput, + GetHumanReadableSummaryOutput, + GetInstanceProfileInput, + GetInstanceProfileOutput, + GetLoginProfileInput, + GetLoginProfileOutput, + GetMFADeviceInput, + GetMFADeviceOutput, + GetOpenIDConnectProviderInput, + GetOpenIDConnectProviderOutput, + GetOrganizationsAccessReportInput, + GetOrganizationsAccessReportOutput, + GetOutboundWebIdentityFederationInfoInput, + GetOutboundWebIdentityFederationInfoOutput, + GetPolicyInput, + GetPolicyOutput, + GetPolicyVersionInput, + GetPolicyVersionOutput, + GetRoleInput, + GetRoleOutput, + GetRolePolicyInput, + GetRolePolicyOutput, + GetRoleTemplateVersionInput, + GetRoleTemplateVersionOutput, + GetSAMLProviderInput, + GetSAMLProviderOutput, + GetSSHPublicKeyInput, + GetSSHPublicKeyOutput, + GetServerCertificateInput, + GetServerCertificateOutput, + GetServiceLastAccessedDetailsInput, + GetServiceLastAccessedDetailsOutput, + GetServiceLastAccessedDetailsWithEntitiesInput, + GetServiceLastAccessedDetailsWithEntitiesOutput, + GetServiceLinkedRoleDeletionStatusInput, + GetServiceLinkedRoleDeletionStatusOutput, + GetUserInput, + GetUserOutput, + GetUserPolicyInput, + GetUserPolicyOutput, + Group, + GroupDetail, + InlinePolicy, + InlinePolicyIdentifierType, + InstanceProfile, + ListAccessKeysInput, + ListAccessKeysOutput, + ListAccountAliasesInput, + ListAccountAliasesOutput, + ListAttachedGroupPoliciesInput, + ListAttachedGroupPoliciesOutput, + ListAttachedRolePoliciesInput, + ListAttachedRolePoliciesOutput, + ListAttachedUserPoliciesInput, + ListAttachedUserPoliciesOutput, + ListDelegationRequestsInput, + ListDelegationRequestsOutput, + ListEntitiesForPolicyInput, + ListEntitiesForPolicyOutput, + ListGroupPoliciesInput, + ListGroupPoliciesOutput, + ListGroupsForUserInput, + ListGroupsForUserOutput, + ListGroupsInput, + ListGroupsOutput, + ListInstanceProfileTagsInput, + ListInstanceProfileTagsOutput, + ListInstanceProfilesForRoleInput, + ListInstanceProfilesForRoleOutput, + ListInstanceProfilesInput, + ListInstanceProfilesOutput, + ListMFADeviceTagsInput, + ListMFADeviceTagsOutput, + ListMFADevicesInput, + ListMFADevicesOutput, + ListOpenIDConnectProviderTagsInput, + ListOpenIDConnectProviderTagsOutput, + ListOpenIDConnectProvidersInput, + ListOpenIDConnectProvidersOutput, + ListOrganizationsFeaturesInput, + ListOrganizationsFeaturesOutput, + ListPoliciesGrantingServiceAccessEntry, + ListPoliciesGrantingServiceAccessInput, + ListPoliciesGrantingServiceAccessOutput, + ListPoliciesInput, + ListPoliciesOutput, + ListPolicyTagsInput, + ListPolicyTagsOutput, + ListPolicyVersionsInput, + ListPolicyVersionsOutput, + ListRolePoliciesInput, + ListRolePoliciesOutput, + ListRoleTagsInput, + ListRoleTagsOutput, + ListRolesInput, + ListRolesOutput, + ListSAMLProviderTagsInput, + ListSAMLProviderTagsOutput, + ListSAMLProvidersInput, + ListSAMLProvidersOutput, + ListSSHPublicKeysInput, + ListSSHPublicKeysOutput, + ListServerCertificateTagsInput, + ListServerCertificateTagsOutput, + ListServerCertificatesInput, + ListServerCertificatesOutput, + ListServiceSpecificCredentialsInput, + ListServiceSpecificCredentialsOutput, + ListSigningCertificatesInput, + ListSigningCertificatesOutput, + ListUserPoliciesInput, + ListUserPoliciesOutput, + ListUserTagsInput, + ListUserTagsOutput, + ListUsersInput, + ListUsersOutput, + ListVirtualMFADevicesInput, + ListVirtualMFADevicesOutput, + LoginProfile, + MFADevice, + ManagedPolicyDetail, + OpenIDConnectProviderListEntry, + OrderedOrganizationPolicyType, + OrganizationsDecisionDetail, + ParameterDefinition, + PasswordPolicy, + PermissionsBoundaryDecisionDetail, + Policy, + PolicyDetail, + PolicyGrantingServiceAccess, + PolicyGroup, + PolicyParameter, + PolicyRole, + PolicyUser, + PolicyVersion, + Position, + PutAccountPropertiesInput, + PutAccountPropertiesOutput, + PutGroupPolicyInput, + PutGroupPolicyOutput, + PutRolePermissionsBoundaryInput, + PutRolePermissionsBoundaryOutput, + PutRolePolicyInput, + PutRolePolicyOutput, + PutUserPermissionsBoundaryInput, + PutUserPermissionsBoundaryOutput, + PutUserPolicyInput, + PutUserPolicyOutput, + RejectDelegationRequestInput, + RejectDelegationRequestOutput, + RemoveClientIDFromOpenIDConnectProviderInput, + RemoveClientIDFromOpenIDConnectProviderOutput, + RemoveRoleFromInstanceProfileInput, + RemoveRoleFromInstanceProfileOutput, + RemoveUserFromGroupInput, + RemoveUserFromGroupOutput, + ReplacementValueEntry, + ResetServiceSpecificCredentialInput, + ResetServiceSpecificCredentialOutput, + ResourceSpecificResult, + ResyncMFADeviceInput, + ResyncMFADeviceOutput, + Role, + RoleDetail, + RoleLastUsed, + RoleTemplateVersion, + RoleUsageType, + SAMLPrivateKey, + SAMLProviderListEntry, + SSHPublicKey, + SSHPublicKeyMetadata, + SendDelegationTokenInput, + SendDelegationTokenOutput, + ServerCertificate, + ServerCertificateMetadata, + ServiceLastAccessed, + ServiceSpecificCredential, + ServiceSpecificCredentialMetadata, + SetDefaultPolicyVersionInput, + SetDefaultPolicyVersionOutput, + SetSecurityTokenServicePreferencesInput, + SetSecurityTokenServicePreferencesOutput, + SigningCertificate, + SimulateCustomPolicyInput, + SimulateCustomPolicyOutput, + SimulatePrincipalPolicyInput, + SimulatePrincipalPolicyOutput, + SourceRoleTemplate, + Statement, + Tag, + TagInstanceProfileInput, + TagInstanceProfileOutput, + TagMFADeviceInput, + TagMFADeviceOutput, + TagOpenIDConnectProviderInput, + TagOpenIDConnectProviderOutput, + TagPolicyInput, + TagPolicyOutput, + TagRoleInput, + TagRoleOutput, + TagSAMLProviderInput, + TagSAMLProviderOutput, + TagServerCertificateInput, + TagServerCertificateOutput, + TagTemplate, + TagUserInput, + TagUserOutput, + TrackedActionLastAccessed, + UntagInstanceProfileInput, + UntagInstanceProfileOutput, + UntagMFADeviceInput, + UntagMFADeviceOutput, + UntagOpenIDConnectProviderInput, + UntagOpenIDConnectProviderOutput, + UntagPolicyInput, + UntagPolicyOutput, + UntagRoleInput, + UntagRoleOutput, + UntagSAMLProviderInput, + UntagSAMLProviderOutput, + UntagServerCertificateInput, + UntagServerCertificateOutput, + UntagUserInput, + UntagUserOutput, + UpdateAccessKeyInput, + UpdateAccessKeyOutput, + UpdateAccountPasswordPolicyInput, + UpdateAccountPasswordPolicyOutput, + UpdateAssumeRolePolicyInput, + UpdateAssumeRolePolicyOutput, + UpdateDelegationRequestInput, + UpdateDelegationRequestOutput, + UpdateGroupInput, + UpdateGroupOutput, + UpdateLoginProfileInput, + UpdateLoginProfileOutput, + UpdateOpenIDConnectProviderThumbprintInput, + UpdateOpenIDConnectProviderThumbprintOutput, + UpdateRoleDescriptionInput, + UpdateRoleDescriptionOutput, + UpdateRoleInput, + UpdateRoleOutput, + UpdateSAMLProviderInput, + UpdateSAMLProviderOutput, + UpdateSSHPublicKeyInput, + UpdateSSHPublicKeyOutput, + UpdateServerCertificateInput, + UpdateServerCertificateOutput, + UpdateServiceSpecificCredentialInput, + UpdateServiceSpecificCredentialOutput, + UpdateSigningCertificateInput, + UpdateSigningCertificateOutput, + UpdateUserInput, + UpdateUserOutput, + UploadSSHPublicKeyInput, + UploadSSHPublicKeyOutput, + UploadServerCertificateInput, + UploadServerCertificateOutput, + UploadSigningCertificateInput, + UploadSigningCertificateOutput, + User, + UserDetail, + VirtualMFADevice, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AcceptDelegationRequestInput() +AcceptDelegationRequestOutput() +AccessDetail(service_name=_, service_namespace=_) +AccessKey(user_name=_, access_key_id=_, status=_, secret_access_key=_) +AccessKeyLastUsed(service_name=_, region=_) +AccessKeyMetadata() +AcquireRoleInput() +AcquireRoleOutput(role=_) +AddClientIDToOpenIDConnectProviderInput() +AddClientIDToOpenIDConnectProviderOutput() +AddRoleToInstanceProfileInput() +AddRoleToInstanceProfileOutput() +AddUserToGroupInput() +AddUserToGroupOutput() +AssociateDelegationRequestInput() +AssociateDelegationRequestOutput() +AttachedPermissionsBoundary() +AttachedPolicy() +AttachGroupPolicyInput() +AttachGroupPolicyOutput() +AttachRolePolicyInput() +AttachRolePolicyOutput() +AttachUserPolicyInput() +AttachUserPolicyOutput() +ChangePasswordInput() +ChangePasswordOutput() +ContextEntry() +CreateAccessKeyInput() +CreateAccessKeyOutput(access_key=_) +CreateAccountAliasInput() +CreateAccountAliasOutput() +CreateDelegationRequestInput() +CreateDelegationRequestOutput() +CreateGroupInput() +CreateGroupOutput(group=_) +CreateInstanceProfileInput() +CreateInstanceProfileOutput(instance_profile=_) +CreateLoginProfileInput() +CreateLoginProfileOutput(login_profile=_) +CreateOpenIDConnectProviderInput() +CreateOpenIDConnectProviderOutput() +CreatePolicyInput() +CreatePolicyOutput() +CreatePolicyVersionInput() +CreatePolicyVersionOutput() +CreateRoleInput() +CreateRoleOutput(role=_) +CreateSAMLProviderInput() +CreateSAMLProviderOutput() +CreateServiceLinkedRoleInput() +CreateServiceLinkedRoleOutput() +CreateServiceSpecificCredentialInput() +CreateServiceSpecificCredentialOutput() +CreateUserInput() +CreateUserOutput() +CreateVirtualMFADeviceInput() +CreateVirtualMFADeviceOutput(virtual_mfa_device=_) +DeactivateMFADeviceInput() +DeactivateMFADeviceOutput() +DelegationPermission() +DelegationRequest() +DeleteAccessKeyInput() +DeleteAccessKeyOutput() +DeleteAccountAliasInput() +DeleteAccountAliasOutput() +DeleteAccountPasswordPolicyInput() +DeleteAccountPasswordPolicyOutput() +DeleteGroupInput() +DeleteGroupOutput() +DeleteGroupPolicyInput() +DeleteGroupPolicyOutput() +DeleteInstanceProfileInput() +DeleteInstanceProfileOutput() +DeleteLoginProfileInput() +DeleteLoginProfileOutput() +DeleteOpenIDConnectProviderInput() +DeleteOpenIDConnectProviderOutput() +DeletePolicyInput() +DeletePolicyOutput() +DeletePolicyVersionInput() +DeletePolicyVersionOutput() +DeleteRoleInput() +DeleteRoleOutput() +DeleteRolePermissionsBoundaryInput() +DeleteRolePermissionsBoundaryOutput() +DeleteRolePolicyInput() +DeleteRolePolicyOutput() +DeleteSAMLProviderInput() +DeleteSAMLProviderOutput() +DeleteServerCertificateInput() +DeleteServerCertificateOutput() +DeleteServiceLinkedRoleInput() +DeleteServiceLinkedRoleOutput(deletion_task_id=_) +DeleteServiceSpecificCredentialInput() +DeleteServiceSpecificCredentialOutput() +DeleteSigningCertificateInput() +DeleteSigningCertificateOutput() +DeleteSSHPublicKeyInput() +DeleteSSHPublicKeyOutput() +DeleteUserInput() +DeleteUserOutput() +DeleteUserPermissionsBoundaryInput() +DeleteUserPermissionsBoundaryOutput() +DeleteUserPolicyInput() +DeleteUserPolicyOutput() +DeleteVirtualMFADeviceInput() +DeleteVirtualMFADeviceOutput() +DeletionTaskFailureReasonType() +DetachGroupPolicyInput() +DetachGroupPolicyOutput() +DetachRolePolicyInput() +DetachRolePolicyOutput() +DetachUserPolicyInput() +DetachUserPolicyOutput() +DisableOrganizationsRootCredentialsManagementInput() +DisableOrganizationsRootCredentialsManagementOutput() +DisableOrganizationsRootSessionsInput() +DisableOrganizationsRootSessionsOutput() +DisableOutboundWebIdentityFederationInput() +DisableOutboundWebIdentityFederationOutput() +EnableMFADeviceInput() +EnableMFADeviceOutput() +EnableOrganizationsRootCredentialsManagementInput() +EnableOrganizationsRootCredentialsManagementOutput() +EnableOrganizationsRootSessionsInput() +EnableOrganizationsRootSessionsOutput() +EnableOutboundWebIdentityFederationInput() +EnableOutboundWebIdentityFederationOutput() +EntityDetails(entity_info=_) +EntityInfo(arn=_, name=_, type=_, id=_) +ErrorDetails(message=_, code=_) +EvaluationResult(eval_action_name=_, eval_decision=_) +GenerateCredentialReportInput() +GenerateCredentialReportOutput() +GenerateOrganizationsAccessReportInput() +GenerateOrganizationsAccessReportOutput() +GenerateServiceLastAccessedDetailsInput() +GenerateServiceLastAccessedDetailsOutput() +GetAccessKeyLastUsedInput() +GetAccessKeyLastUsedOutput() +GetAccountAuthorizationDetailsInput() +GetAccountAuthorizationDetailsOutput() +GetAccountPasswordPolicyInput() +GetAccountPasswordPolicyOutput(password_policy=_) +GetAccountPropertiesInput() +GetAccountPropertiesOutput() +GetAccountSummaryInput() +GetAccountSummaryOutput() +GetContextKeysForCustomPolicyInput() +GetContextKeysForCustomPolicyOutput() +GetContextKeysForPrincipalPolicyInput() +GetContextKeysForPrincipalPolicyOutput() +GetCredentialReportInput() +GetCredentialReportOutput() +GetDelegationRequestInput() +GetDelegationRequestOutput() +GetGroupInput() +GetGroupOutput(group=_, users=_) +GetGroupPolicyInput() +GetGroupPolicyOutput(group_name=_, policy_name=_, policy_document=_) +GetHumanReadableSummaryInput() +GetHumanReadableSummaryOutput() +GetInstanceProfileInput() +GetInstanceProfileOutput(instance_profile=_) +GetLoginProfileInput() +GetLoginProfileOutput(login_profile=_) +GetMFADeviceInput() +GetMFADeviceOutput(serial_number=_) +GetOpenIDConnectProviderInput() +GetOpenIDConnectProviderOutput() +GetOrganizationsAccessReportInput() +GetOrganizationsAccessReportOutput(job_status=_, job_creation_date=_) +GetOutboundWebIdentityFederationInfoInput() +GetOutboundWebIdentityFederationInfoOutput() +GetPolicyInput() +GetPolicyOutput() +GetPolicyVersionInput() +GetPolicyVersionOutput() +GetRoleInput() +GetRoleOutput(role=_) +GetRolePolicyInput() +GetRolePolicyOutput(role_name=_, policy_name=_, policy_document=_) +GetRoleTemplateVersionInput() +GetRoleTemplateVersionOutput(role_template_version=_) +GetSAMLProviderInput() +GetSAMLProviderOutput() +GetServerCertificateInput() +GetServerCertificateOutput(server_certificate=_) +GetServiceLastAccessedDetailsInput() +GetServiceLastAccessedDetailsOutput( + job_status=_, job_creation_date=_, services_last_accessed=_, job_completion_date=_ +) +GetServiceLastAccessedDetailsWithEntitiesInput() +GetServiceLastAccessedDetailsWithEntitiesOutput( + job_status=_, job_creation_date=_, job_completion_date=_, entity_details_list=_ +) +GetServiceLinkedRoleDeletionStatusInput() +GetServiceLinkedRoleDeletionStatusOutput(status=_) +GetSSHPublicKeyInput() +GetSSHPublicKeyOutput() +GetUserInput() +GetUserOutput(user=_) +GetUserPolicyInput() +GetUserPolicyOutput(user_name=_, policy_name=_, policy_document=_) +Group(path=_, group_name=_, group_id=_, arn=_, create_date=_) +GroupDetail() +InlinePolicy(policy_name=_, policy_document=_) +InlinePolicyIdentifierType(policy_name=_, attachment_type=_, attachment_name=_) +InstanceProfile( + path=_, + instance_profile_name=_, + instance_profile_id=_, + arn=_, + create_date=_, + roles=_, +) +ListAccessKeysInput() +ListAccessKeysOutput(access_key_metadata=_) +ListAccountAliasesInput() +ListAccountAliasesOutput(account_aliases=_) +ListAttachedGroupPoliciesInput() +ListAttachedGroupPoliciesOutput() +ListAttachedRolePoliciesInput() +ListAttachedRolePoliciesOutput() +ListAttachedUserPoliciesInput() +ListAttachedUserPoliciesOutput() +ListDelegationRequestsInput() +ListDelegationRequestsOutput() +ListEntitiesForPolicyInput() +ListEntitiesForPolicyOutput() +ListGroupPoliciesInput() +ListGroupPoliciesOutput(policy_names=_) +ListGroupsForUserInput() +ListGroupsForUserOutput(groups=_) +ListGroupsInput() +ListGroupsOutput(groups=_) +ListInstanceProfilesForRoleInput() +ListInstanceProfilesForRoleOutput(instance_profiles=_) +ListInstanceProfilesInput() +ListInstanceProfilesOutput(instance_profiles=_) +ListInstanceProfileTagsInput() +ListInstanceProfileTagsOutput(tags=_) +ListMFADevicesInput() +ListMFADevicesOutput(mfa_devices=_) +ListMFADeviceTagsInput() +ListMFADeviceTagsOutput(tags=_) +ListOpenIDConnectProvidersInput() +ListOpenIDConnectProvidersOutput() +ListOpenIDConnectProviderTagsInput() +ListOpenIDConnectProviderTagsOutput(tags=_) +ListOrganizationsFeaturesInput() +ListOrganizationsFeaturesOutput() +ListPoliciesGrantingServiceAccessEntry() +ListPoliciesGrantingServiceAccessInput() +ListPoliciesGrantingServiceAccessOutput(policies_granting_service_access=_) +ListPoliciesInput() +ListPoliciesOutput() +ListPolicyTagsInput() +ListPolicyTagsOutput(tags=_) +ListPolicyVersionsInput() +ListPolicyVersionsOutput() +ListRolePoliciesInput() +ListRolePoliciesOutput(policy_names=_) +ListRolesInput() +ListRolesOutput(roles=_) +ListRoleTagsInput() +ListRoleTagsOutput(tags=_) +ListSAMLProvidersInput() +ListSAMLProvidersOutput() +ListSAMLProviderTagsInput() +ListSAMLProviderTagsOutput(tags=_) +ListServerCertificatesInput() +ListServerCertificatesOutput(server_certificate_metadata_list=_) +ListServerCertificateTagsInput() +ListServerCertificateTagsOutput(tags=_) +ListServiceSpecificCredentialsInput() +ListServiceSpecificCredentialsOutput() +ListSigningCertificatesInput() +ListSigningCertificatesOutput(certificates=_) +ListSSHPublicKeysInput() +ListSSHPublicKeysOutput() +ListUserPoliciesInput() +ListUserPoliciesOutput(policy_names=_) +ListUsersInput() +ListUsersOutput(users=_) +ListUserTagsInput() +ListUserTagsOutput(tags=_) +ListVirtualMFADevicesInput() +ListVirtualMFADevicesOutput(virtual_mfa_devices=_) +LoginProfile(user_name=_, create_date=_) +ManagedPolicyDetail() +MFADevice(user_name=_, serial_number=_, enable_date=_) +OpenIDConnectProviderListEntry() +OrderedOrganizationPolicyType() +OrganizationsDecisionDetail() +ParameterDefinition(name=_, type=_) +PasswordPolicy() +PermissionsBoundaryDecisionDetail() +Policy() +PolicyDetail() +PolicyGrantingServiceAccess(policy_name=_, policy_type=_) +PolicyGroup() +PolicyParameter() +PolicyRole() +PolicyUser() +PolicyVersion() +Position() +PutAccountPropertiesInput() +PutAccountPropertiesOutput() +PutGroupPolicyInput() +PutGroupPolicyOutput() +PutRolePermissionsBoundaryInput() +PutRolePermissionsBoundaryOutput() +PutRolePolicyInput() +PutRolePolicyOutput() +PutUserPermissionsBoundaryInput() +PutUserPermissionsBoundaryOutput() +PutUserPolicyInput() +PutUserPolicyOutput() +RejectDelegationRequestInput() +RejectDelegationRequestOutput() +RemoveClientIDFromOpenIDConnectProviderInput() +RemoveClientIDFromOpenIDConnectProviderOutput() +RemoveRoleFromInstanceProfileInput() +RemoveRoleFromInstanceProfileOutput() +RemoveUserFromGroupInput() +RemoveUserFromGroupOutput() +ReplacementValueEntry(values=_) +ResetServiceSpecificCredentialInput() +ResetServiceSpecificCredentialOutput() +ResourceSpecificResult(eval_resource_name=_, eval_resource_decision=_) +ResyncMFADeviceInput() +ResyncMFADeviceOutput() +Role(path=_, role_name=_, role_id=_, arn=_, create_date=_) +RoleDetail() +RoleLastUsed() +RoleTemplateVersion() +RoleUsageType() +SAMLPrivateKey() +SAMLProviderListEntry() +SendDelegationTokenInput() +SendDelegationTokenOutput() +ServerCertificate(server_certificate_metadata=_, certificate_body=_) +ServerCertificateMetadata( + path=_, server_certificate_name=_, server_certificate_id=_, arn=_ +) +ServiceLastAccessed(service_name=_, service_namespace=_) +ServiceSpecificCredential( + create_date=_, + service_name=_, + service_specific_credential_id=_, + user_name=_, + status=_, +) +ServiceSpecificCredentialMetadata( + user_name=_, + status=_, + create_date=_, + service_specific_credential_id=_, + service_name=_, +) +SetDefaultPolicyVersionInput() +SetDefaultPolicyVersionOutput() +SetSecurityTokenServicePreferencesInput() +SetSecurityTokenServicePreferencesOutput() +SigningCertificate(user_name=_, certificate_id=_, certificate_body=_, status=_) +SimulateCustomPolicyInput() +SimulateCustomPolicyOutput() +SimulatePrincipalPolicyInput() +SimulatePrincipalPolicyOutput() +SourceRoleTemplate(template_arn=_, template_minor_version=_) +SSHPublicKey( + user_name=_, ssh_public_key_id=_, fingerprint=_, ssh_public_key_body=_, status=_ +) +SSHPublicKeyMetadata(user_name=_, ssh_public_key_id=_, status=_, upload_date=_) +Statement() +Tag(key=_, value=_) +TagInstanceProfileInput() +TagInstanceProfileOutput() +TagMFADeviceInput() +TagMFADeviceOutput() +TagOpenIDConnectProviderInput() +TagOpenIDConnectProviderOutput() +TagPolicyInput() +TagPolicyOutput() +TagRoleInput() +TagRoleOutput() +TagSAMLProviderInput() +TagSAMLProviderOutput() +TagServerCertificateInput() +TagServerCertificateOutput() +TagTemplate(key=_, value=_) +TagUserInput() +TagUserOutput() +TrackedActionLastAccessed() +UntagInstanceProfileInput() +UntagInstanceProfileOutput() +UntagMFADeviceInput() +UntagMFADeviceOutput() +UntagOpenIDConnectProviderInput() +UntagOpenIDConnectProviderOutput() +UntagPolicyInput() +UntagPolicyOutput() +UntagRoleInput() +UntagRoleOutput() +UntagSAMLProviderInput() +UntagSAMLProviderOutput() +UntagServerCertificateInput() +UntagServerCertificateOutput() +UntagUserInput() +UntagUserOutput() +UpdateAccessKeyInput() +UpdateAccessKeyOutput() +UpdateAccountPasswordPolicyInput() +UpdateAccountPasswordPolicyOutput() +UpdateAssumeRolePolicyInput() +UpdateAssumeRolePolicyOutput() +UpdateDelegationRequestInput() +UpdateDelegationRequestOutput() +UpdateGroupInput() +UpdateGroupOutput() +UpdateLoginProfileInput() +UpdateLoginProfileOutput() +UpdateOpenIDConnectProviderThumbprintInput() +UpdateOpenIDConnectProviderThumbprintOutput() +UpdateRoleDescriptionInput() +UpdateRoleDescriptionOutput() +UpdateRoleInput() +UpdateRoleOutput() +UpdateSAMLProviderInput() +UpdateSAMLProviderOutput() +UpdateServerCertificateInput() +UpdateServerCertificateOutput() +UpdateServiceSpecificCredentialInput() +UpdateServiceSpecificCredentialOutput() +UpdateSigningCertificateInput() +UpdateSigningCertificateOutput() +UpdateSSHPublicKeyInput() +UpdateSSHPublicKeyOutput() +UpdateUserInput() +UpdateUserOutput() +UploadServerCertificateInput() +UploadServerCertificateOutput() +UploadSigningCertificateInput() +UploadSigningCertificateOutput(certificate=_) +UploadSSHPublicKeyInput() +UploadSSHPublicKeyOutput() +User(path=_, user_name=_, user_id=_, arn=_, create_date=_) +UserDetail() +VirtualMFADevice(serial_number=_) diff --git a/clients/aws-sdk-iam/tests/test_awsquery_protocol.py b/clients/aws-sdk-iam/tests/test_awsquery_protocol.py new file mode 100644 index 00000000..1f033cfa --- /dev/null +++ b/clients/aws-sdk-iam/tests/test_awsquery_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_iam.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-iam/tests/test_endpoints.py b/clients/aws-sdk-iam/tests/test_endpoints.py new file mode 100644 index 00000000..2197dc3b --- /dev/null +++ b/clients/aws-sdk-iam/tests/test_endpoints.py @@ -0,0 +1,372 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_iam.aio.client import AsyncIAMClient +from aws_sdk_iam.aio.config import AsyncIAMConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.iam#AWSIdentityManagementV20100508. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncIAMConfig: + return await AsyncIAMConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncIAMClient: + return AsyncIAMClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Endpoint": "https://example.com", "UseFIPS": False}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled", + ), + param( + {"Endpoint": "https://example.com", "UseFIPS": True}, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled", + ), + param( + {"Endpoint": "https://example.com", "UseFIPS": False, "UseDualStack": True}, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam-fips.global.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam.global.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-east-1"}] + }, + } + }, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam-fips.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "cn-north-1"}] + }, + } + }, + id="For region cn-northwest-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.amazonaws.com.cn", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "cn-north-1"}] + }, + } + }, + id="For region cn-northwest-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam.global.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "cn-north-1"}] + }, + } + }, + id="For region cn-northwest-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "cn-north-1"}] + }, + } + }, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eusc-de-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.amazonaws.eu", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eusc-de-east-1"} + ] + }, + } + }, + id="For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eusc-de-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.eusc-de-east-1.amazonaws.eu", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eusc-de-east-1"} + ] + }, + } + }, + id="For region eusc-de-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-iso-east-1"}] + }, + } + }, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-iso-east-1"}] + }, + } + }, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isob-east-1"} + ] + }, + } + }, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isob-east-1"} + ] + }, + } + }, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-isoe-west-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eu-isoe-west-1"} + ] + }, + } + }, + id="For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-isoe-west-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.eu-isoe-west-1.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "eu-isoe-west-1"} + ] + }, + } + }, + id="For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isof-south-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam-fips.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isof-south-1"} + ] + }, + } + }, + id="For region us-isof-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isof-south-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.us-isof-south-1.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + {"name": "sigv4", "signingRegion": "us-isof-south-1"} + ] + }, + } + }, + id="For region us-isof-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam.us-gov.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://iam.us-gov.api.aws", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [{"name": "sigv4", "signingRegion": "us-gov-west-1"}] + }, + } + }, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-iam/tests/test_model_conformance.py b/clients/aws-sdk-iam/tests/test_model_conformance.py new file mode 100644 index 00000000..dffe959e --- /dev/null +++ b/clients/aws-sdk-iam/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_iam import models as _models +from aws_sdk_iam._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-kinesis/README.md b/clients/aws-sdk-kinesis/README.md new file mode 100644 index 00000000..e3cda2cb --- /dev/null +++ b/clients/aws-sdk-kinesis/README.md @@ -0,0 +1,10 @@ + + +## Amazon Kinesis Client + +aws_sdk_kinesis client + +### Documentation + +Amazon Kinesis Data Streams is a managed service that scales elastically +for real-time processing of streaming big data. diff --git a/clients/aws-sdk-kinesis/pyproject.toml b/clients/aws-sdk-kinesis/pyproject.toml new file mode 100644 index 00000000..f94c030d --- /dev/null +++ b/clients/aws-sdk-kinesis/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_kinesis" +version = "0.12.0" +description = "aws_sdk_kinesis client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_kinesis"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[eventstream, json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/__init__.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/__init__.py new file mode 100644 index 00000000..e2b875b1 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import KinesisClient + from .config import KinesisConfig + from .aio.client import AsyncKinesisClient + from .aio.config import AsyncKinesisConfig + +__all__ = ["KinesisClient", "KinesisConfig", "AsyncKinesisClient", "AsyncKinesisConfig"] + +_EXPORTS = { + "KinesisClient": ".client", + "KinesisConfig": ".config", + "AsyncKinesisClient": ".aio.client", + "AsyncKinesisConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/__init__.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/endpoints.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/endpoints.py new file mode 100644 index 00000000..767e95fb --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/endpoints.py @@ -0,0 +1,334 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.kinesis#Kinesis_20131202.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ("OperationType", "string", False, None, None, None), + ("StreamId", "string", False, None, None, None), + ("StreamARN", "string", False, None, None, None), + ("ConsumerARN", "string", False, None, None, None), + ("ResourceARN", "string", False, None, None, None), + ("ChannelARN", "string", False, None, None, None), + ("AccountId", "string", False, None, "AWS::Auth::AccountId", None), + ("AccountIdEndpointMode", "string", False, None, "AWS::Auth::AccountIdEndpointMode", None), + ), + functions=("aws.parseArn", "aws.partition", "booleanEquals", "coalesce", "isSet", "isValidHostLabel", "stringEquals", "substring"), + conditions=( + ((2, "isSet", (0, "Region")), None), # 0: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 1: PartitionResult = aws.partition(Region) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso-b"), None), # 2: stringEquals(PartitionResult#name, "aws-iso-b") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-iso"), None), # 3: stringEquals(PartitionResult#name, "aws-iso") + ((2, "isSet", (0, "StreamId")), None), # 4: isSet(StreamId) + ((2, "substring", (0, "StreamId"), 21, 24, False), "StreamIdSuffixValue"), # 5: StreamIdSuffixValue = substring(StreamId, 21, 24, false) + ((2, "substring", (0, "StreamId"), 0, 20, False), "StreamIdPrefixValue"), # 6: StreamIdPrefixValue = substring(StreamId, 0, 20, false) + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "StreamId"), 20, 21, False), ""), "-"), None), # 7: stringEquals(coalesce(substring(StreamId, 20, 21, false), ""), "-") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "StreamId"), 3, 4, True), ""), "-"), None), # 8: stringEquals(coalesce(substring(StreamId, 3, 4, true), ""), "-") + ((2, "isSet", (0, "Endpoint")), None), # 9: isSet(Endpoint) + ((2, "isSet", (0, "StreamARN")), None), # 10: isSet(StreamARN) + ((2, "isSet", (0, "ConsumerARN")), None), # 11: isSet(ConsumerARN) + ((2, "aws.parseArn", (0, "ConsumerARN")), "arn_ssa_2"), # 12: arn_ssa_2 = aws.parseArn(ConsumerARN) + ((2, "substring", (0, "Endpoint"), 15, 20, False), "HttpsCustomEndpointSuffixValue"), # 13: HttpsCustomEndpointSuffixValue = substring(Endpoint, 15, 20, false) + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Endpoint"), 15, 16, False), ""), "-"), None), # 14: stringEquals(coalesce(substring(Endpoint, 15, 16, false), ""), "-") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Endpoint"), 20, 21, False), ""), "."), None), # 15: stringEquals(coalesce(substring(Endpoint, 20, 21, false), ""), ".") + ((2, "substring", (0, "Endpoint"), 7, 12, False), "PlainCustomEndpointSuffixValue"), # 16: PlainCustomEndpointSuffixValue = substring(Endpoint, 7, 12, false) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_2"), "accountId"), False), None), # 17: isValidHostLabel(arn_ssa_2#accountId, false) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_2"), "region"), False), None), # 18: isValidHostLabel(arn_ssa_2#region, false) + ((2, "stringEquals", (1, (0, "arn_ssa_2"), "service"), "kinesis"), None), # 19: stringEquals(arn_ssa_2#service, "kinesis") + ((1, (0, "arn_ssa_2"), "resourceId[0]"), "arnType_ssa_2"), # 20: arnType_ssa_2 = arn_ssa_2#resourceId[0] + ((2, "stringEquals", (0, "arnType_ssa_2"), ""), None), # 21: stringEquals(arnType_ssa_2, "") + ((2, "aws.parseArn", (0, "StreamARN")), "arn_ssa_4"), # 22: arn_ssa_4 = aws.parseArn(StreamARN) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_4"), "accountId"), False), None), # 23: isValidHostLabel(arn_ssa_4#accountId, false) + ((2, "stringEquals", (0, "arnType_ssa_2"), "stream"), None), # 24: stringEquals(arnType_ssa_2, "stream") + ((2, "isValidHostLabel", (1, (0, "arn_ssa_4"), "region"), False), None), # 25: isValidHostLabel(arn_ssa_4#region, false) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), (1, (0, "arn_ssa_2"), "partition")), None), # 26: stringEquals(PartitionResult#name, arn_ssa_2#partition) + ((2, "stringEquals", (1, (0, "arn_ssa_4"), "service"), "kinesis"), None), # 27: stringEquals(arn_ssa_4#service, "kinesis") + ((1, (0, "arn_ssa_4"), "resourceId[0]"), "arnType_ssa_1"), # 28: arnType_ssa_1 = arn_ssa_4#resourceId[0] + ((2, "stringEquals", (0, "arnType_ssa_1"), ""), None), # 29: stringEquals(arnType_ssa_1, "") + ((2, "isSet", (0, "ResourceARN")), None), # 30: isSet(ResourceARN) + ((2, "isSet", (0, "ChannelARN")), None), # 31: isSet(ChannelARN) + ((2, "isSet", (0, "AccountIdEndpointMode")), None), # 32: isSet(AccountIdEndpointMode) + ((2, "isSet", (0, "AccountId")), None), # 33: isSet(AccountId) + ((2, "aws.parseArn", (0, "ChannelARN")), "arn_ssa_1"), # 34: arn_ssa_1 = aws.parseArn(ChannelARN) + ((2, "stringEquals", (0, "AccountIdEndpointMode"), "disabled"), None), # 35: stringEquals(AccountIdEndpointMode, "disabled") + ((2, "isValidHostLabel", (0, "AccountId"), False), None), # 36: isValidHostLabel(AccountId, false) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_1"), "accountId"), False), None), # 37: isValidHostLabel(arn_ssa_1#accountId, false) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_1"), "region"), False), None), # 38: isValidHostLabel(arn_ssa_1#region, false) + ((2, "stringEquals", (1, (0, "arn_ssa_1"), "service"), "kinesis"), None), # 39: stringEquals(arn_ssa_1#service, "kinesis") + ((1, (0, "arn_ssa_1"), "resourceId[0]"), "arnType_ssa_4"), # 40: arnType_ssa_4 = arn_ssa_1#resourceId[0] + ((2, "stringEquals", (0, "arnType_ssa_4"), ""), None), # 41: stringEquals(arnType_ssa_4, "") + ((2, "stringEquals", (0, "arnType_ssa_4"), "channel"), None), # 42: stringEquals(arnType_ssa_4, "channel") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), (1, (0, "arn_ssa_1"), "partition")), None), # 43: stringEquals(PartitionResult#name, arn_ssa_1#partition) + ((2, "aws.parseArn", (0, "ResourceARN")), "arn_ssa_3"), # 44: arn_ssa_3 = aws.parseArn(ResourceARN) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_3"), "accountId"), False), None), # 45: isValidHostLabel(arn_ssa_3#accountId, false) + ((2, "isValidHostLabel", (1, (0, "arn_ssa_3"), "region"), False), None), # 46: isValidHostLabel(arn_ssa_3#region, false) + ((2, "stringEquals", (1, (0, "arn_ssa_3"), "service"), "kinesis"), None), # 47: stringEquals(arn_ssa_3#service, "kinesis") + ((1, (0, "arn_ssa_3"), "resourceId[0]"), "arnType_ssa_3"), # 48: arnType_ssa_3 = arn_ssa_3#resourceId[0] + ((2, "stringEquals", (0, "arnType_ssa_3"), ""), None), # 49: stringEquals(arnType_ssa_3, "") + ((2, "stringEquals", (0, "arnType_ssa_3"), "stream"), None), # 50: stringEquals(arnType_ssa_3, "stream") + ((2, "stringEquals", (0, "arnType_ssa_3"), "channel"), None), # 51: stringEquals(arnType_ssa_3, "channel") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), (1, (0, "arn_ssa_3"), "partition")), None), # 52: stringEquals(PartitionResult#name, arn_ssa_3#partition) + ((2, "stringEquals", (0, "arnType_ssa_1"), "stream"), None), # 53: stringEquals(arnType_ssa_1, "stream") + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), (1, (0, "arn_ssa_4"), "partition")), None), # 54: stringEquals(PartitionResult#name, arn_ssa_4#partition) + ((2, "stringEquals", (0, "AccountIdEndpointMode"), "required"), None), # 55: stringEquals(AccountIdEndpointMode, "required") + ((2, "isSet", (0, "OperationType")), None), # 56: isSet(OperationType) + ((1, (0, "arn_ssa_3"), "resourceId[1]"), "resourceId_ssa_1"), # 57: resourceId_ssa_1 = arn_ssa_3#resourceId[1] + ((2, "isValidHostLabel", (0, "resourceId_ssa_1"), False), None), # 58: isValidHostLabel(resourceId_ssa_1, false) + ((1, (0, "arn_ssa_1"), "resourceId[1]"), "resourceId_ssa_2"), # 59: resourceId_ssa_2 = arn_ssa_1#resourceId[1] + ((2, "isValidHostLabel", (0, "resourceId_ssa_2"), False), None), # 60: isValidHostLabel(resourceId_ssa_2, false) + ((2, "stringEquals", (0, "OperationType"), "data"), None), # 61: stringEquals(OperationType, "data") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Endpoint"), 7, 8, False), ""), "-"), None), # 62: stringEquals(coalesce(substring(Endpoint, 7, 8, false), ""), "-") + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 63: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 64: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 65: booleanEquals(PartitionResult#supportsFIPS, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 66: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 67: stringEquals(PartitionResult#name, "aws-us-gov") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Endpoint"), 12, 13, False), ""), "."), None), # 68: stringEquals(coalesce(substring(Endpoint, 12, 13, false), ""), ".") + ), + results=( + None, # 0: no match + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 1 + (5, "DualStack is enabled, but this partition does not support DualStack."), # 2 + (5, "FIPS is enabled, but this partition does not support FIPS."), # 3 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 4 + (5, "FIPS is enabled but this partition does not support FIPS"), # 5 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 6 + (5, "DualStack is enabled but this partition does not support DualStack"), # 7 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 8 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 10 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 11 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 12 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 13 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 14 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 15 + (6, "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 16 + (5, "Operation Type is not set. Please contact service team for resolution."), # 17 + (6, "https://{arn_ssa_4#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 18 + (6, "https://{arn_ssa_4#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 19 + (6, "https://{arn_ssa_4#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 20 + (6, "https://{arn_ssa_4#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 21 + (5, "Partition: {arn_ssa_4#partition} from ARN doesn't match with partition name: {PartitionResult#name}."), # 22 + (5, "Invalid ARN: Kinesis ARNs don't support `{arnType_ssa_1}` arn types."), # 23 + (5, "Invalid ARN: No ARN type specified"), # 24 + (5, "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_4#service}."), # 25 + (5, "Invalid ARN: Invalid region."), # 26 + (5, "Invalid ARN: Invalid account id."), # 27 + (5, "Invalid ARN: Failed to parse ARN."), # 28 + (6, "https://{arn_ssa_2#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 29 + (6, "https://{arn_ssa_2#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 30 + (6, "https://{arn_ssa_2#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 31 + (6, "https://{arn_ssa_2#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 32 + (5, "Partition: {arn_ssa_2#partition} from ARN doesn't match with partition name: {PartitionResult#name}."), # 33 + (5, "Invalid ARN: Kinesis ARNs don't support `{arnType_ssa_2}` arn types."), # 34 + (5, "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_2#service}."), # 35 + (5, "Invalid ARN: Unsupported resource type `{arnType_ssa_3}`. Expected: stream or channel"), # 36 + (6, "https://{arn_ssa_3#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 37 + (6, "https://{arn_ssa_3#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 38 + (6, "https://{arn_ssa_3#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 39 + (6, "https://{arn_ssa_3#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 40 + (6, "https://{resourceId_ssa_1}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 41 + (6, "https://{resourceId_ssa_1}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 42 + (6, "https://{resourceId_ssa_1}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 43 + (6, "https://{resourceId_ssa_1}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 44 + (5, "Invalid ARN: Invalid channel id."), # 45 + (5, "Invalid ARN: Missing channel id."), # 46 + (5, "Partition: {arn_ssa_3#partition} from ARN doesn't match with partition name: {PartitionResult#name}."), # 47 + (5, "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_3#service}."), # 48 + (6, "https://{resourceId_ssa_2}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 49 + (6, "https://{resourceId_ssa_2}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 50 + (6, "https://{resourceId_ssa_2}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 51 + (6, "https://{resourceId_ssa_2}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 52 + (5, "ChannelARN does not support the `data` operation type."), # 53 + (5, "Partition: {arn_ssa_1#partition} from ARN doesn't match with partition name: {PartitionResult#name}."), # 54 + (5, "Invalid ARN: ChannelARN only supports `channel` arn types, found: `{arnType_ssa_4}`."), # 55 + (5, "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_1#service}."), # 56 + (6, "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 57 + (6, "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 58 + (6, "https://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 59 + (6, "https://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", (4, ("metricValues",), (3, "O")), ()), # 60 + (5, "Invalid account id."), # 61 + (5, "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded"), # 62 + (5, "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition"), # 63 + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 64 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 65 + (6, (0, "Endpoint"), None, ()), # 66 + (6, "https://kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 67 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 68 + (6, "https://kinesis.{Region}.amazonaws.com", None, ()), # 69 + (6, "https://kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 70 + (6, "https://kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 71 + (6, "https://kinesis.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 72 + (5, "Invalid Configuration: Missing Region"), # 73 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 3, 4, + 1, 5, 4, + 9, 154, 100_000_073, + 2, 143, 6, + 3, 143, 7, + 4, 8, 12, + 5, 9, 12, + 6, 10, 12, + 7, 11, 12, + 8, 109, 12, + 9, 154, 13, + 10, 93, 14, + 11, 77, 15, + 30, 49, 16, + 31, 30, 17, + 32, 18, 146, + 33, 19, 29, + 35, 29, 20, + 36, 21, 100_000_061, + 56, 22, 100_000_017, + 63, 25, 23, + 64, 24, 100_000_060, + 66, 100_000_059, 100_000_007, + 64, 27, 26, + 65, 100_000_058, 100_000_005, + 65, 28, 100_000_003, + 66, 100_000_057, 100_000_002, + 55, 100_000_062, 146, + 34, 31, 100_000_028, + 37, 32, 100_000_027, + 38, 33, 100_000_026, + 39, 34, 100_000_056, + 40, 35, 100_000_024, + 41, 100_000_024, 36, + 42, 37, 100_000_055, + 43, 38, 100_000_054, + 56, 39, 100_000_017, + 59, 40, 100_000_046, + 60, 41, 100_000_045, + 61, 100_000_053, 42, + 63, 45, 43, + 64, 44, 100_000_052, + 66, 100_000_051, 100_000_007, + 64, 47, 46, + 65, 100_000_050, 100_000_005, + 65, 48, 100_000_003, + 66, 100_000_049, 100_000_002, + 44, 50, 100_000_028, + 45, 51, 100_000_027, + 46, 52, 100_000_026, + 47, 53, 100_000_048, + 48, 54, 100_000_024, + 49, 100_000_024, 55, + 50, 68, 56, + 51, 57, 100_000_036, + 52, 58, 100_000_047, + 56, 59, 100_000_017, + 57, 60, 100_000_046, + 58, 61, 100_000_045, + 63, 64, 62, + 64, 63, 100_000_044, + 66, 100_000_043, 100_000_007, + 64, 66, 65, + 65, 100_000_042, 100_000_005, + 65, 67, 100_000_003, + 66, 100_000_041, 100_000_002, + 52, 69, 100_000_047, + 56, 70, 100_000_017, + 63, 73, 71, + 64, 72, 100_000_040, + 66, 100_000_039, 100_000_007, + 64, 75, 74, + 65, 100_000_038, 100_000_005, + 65, 76, 100_000_003, + 66, 100_000_037, 100_000_002, + 12, 78, 100_000_028, + 17, 79, 100_000_027, + 18, 80, 100_000_026, + 19, 81, 100_000_035, + 20, 82, 100_000_024, + 21, 100_000_024, 83, + 24, 84, 100_000_034, + 26, 85, 100_000_033, + 56, 86, 100_000_017, + 63, 89, 87, + 64, 88, 100_000_032, + 66, 100_000_031, 100_000_007, + 64, 91, 90, + 65, 100_000_030, 100_000_005, + 65, 92, 100_000_003, + 66, 100_000_029, 100_000_002, + 22, 94, 100_000_028, + 23, 95, 100_000_027, + 25, 96, 100_000_026, + 27, 97, 100_000_025, + 28, 98, 100_000_024, + 29, 100_000_024, 99, + 53, 100, 100_000_023, + 54, 101, 100_000_022, + 56, 102, 100_000_017, + 63, 105, 103, + 64, 104, 100_000_021, + 66, 100_000_020, 100_000_007, + 64, 107, 106, + 65, 100_000_019, 100_000_005, + 65, 108, 100_000_003, + 66, 100_000_018, 100_000_002, + 9, 110, 114, + 13, 111, 113, + 14, 112, 113, + 15, 135, 113, + 16, 115, 114, + 56, 117, 100_000_017, + 56, 116, 100_000_017, + 62, 124, 117, + 63, 120, 118, + 64, 119, 100_000_016, + 66, 100_000_015, 100_000_007, + 64, 122, 121, + 65, 100_000_014, 100_000_005, + 65, 123, 100_000_003, + 66, 100_000_013, 100_000_002, + 63, 129, 125, + 64, 127, 126, + 68, 100_000_012, 100_000_016, + 66, 128, 100_000_007, + 68, 100_000_011, 100_000_015, + 64, 132, 130, + 65, 131, 100_000_005, + 68, 100_000_010, 100_000_014, + 65, 133, 100_000_003, + 66, 134, 100_000_002, + 68, 100_000_009, 100_000_013, + 56, 136, 100_000_017, + 63, 139, 137, + 64, 138, 100_000_008, + 66, 100_000_006, 100_000_007, + 64, 141, 140, + 65, 100_000_004, 100_000_005, + 65, 142, 100_000_003, + 66, 100_000_001, 100_000_002, + 9, 154, 144, + 32, 145, 146, + 55, 100_000_063, 146, + 63, 149, 147, + 64, 148, 100_000_072, + 66, 100_000_071, 100_000_007, + 64, 152, 150, + 65, 151, 100_000_005, + 67, 100_000_069, 100_000_070, + 65, 153, 100_000_068, + 66, 100_000_067, 100_000_068, + 63, 100_000_064, 155, + 64, 100_000_065, 100_000_066, + ), +) +# fmt: on diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/schemas.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/schemas.py new file mode 100644 index 00000000..890e1b0e --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/_private/schemas.py @@ -0,0 +1,3200 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.kinesis" +_EM = "ErrorMessage" +_ADE = "AccessDeniedException" +_s = "smithy.api#error" +_c = "client" +_m = "message" +_SARN = "StreamARN" +_SI = "StreamId" +_SN = "StreamName" +_TK = "TagKey" +_TV = "TagValue" +_TM = "TagMap" +_k = "key" +_v = "value" +_ATTSI = "AddTagsToStreamInput" +_sm = "smithy.api#input" +_T = "Tags" +_smi = "smithy.api#required" +_sP = "smithy.rules#contextParam" +_ATTSO = "AddTagsToStreamOutput" +_sSI = "smithy.synthetic#originalShapeId" +_sU = "smithy.api#Unit" +_smit = "smithy.api#output" +_IAE = "InvalidArgumentException" +_LEE = "LimitExceededException" +_RIUE = "ResourceInUseException" +_RNFE = "ResourceNotFoundException" +_ATTS = "AddTagsToStream" +_sCP = "smithy.rules#staticContextParams" +_BO = "BooleanObject" +_BARN = "BucketARN" +_CARN = "ChannelARN" +_CCO = "ChannelCountObject" +_Ti = "Timestamp" +_CI = "ChannelId" +_CN = "ChannelName" +_CS = "ChannelStatus" +_CREATING = "CREATING" +_sV = "smithy.api#enumValue" +_ACTIVE = "ACTIVE" +_UPDATING = "UPDATING" +_DELETING = "DELETING" +_FAILED = "FAILED" +_CSR = "ChannelStatusReason" +_CET = "ChannelEncryptionType" +_KMS = "KMS" +_KI = "KeyId" +_CEC = "ChannelEncryptionConfiguration" +_ET = "EncryptionType" +_CWLGN = "CloudWatchLogGroupName" +_CWLSN = "CloudWatchLogStreamName" +_CWL = "CloudWatchLogs" +_E = "Enabled" +_LGN = "LogGroupName" +_LSN = "LogStreamName" +_CLC = "ChannelLoggingConfiguration" +_DFIS = "DataFreshnessInSeconds" +_SEOP = "S3ErrorOutputPrefix" +_EBO = "ExpectedBucketOwner" +_DLQSC = "DeadLetterQueueS3Configuration" +_EOP = "ErrorOutputPrefix" +_SCT = "S3CompressionType" +_NONE = "NONE" +_GZIP = "GZIP" +_ZSTD = "ZSTD" +_SOKT = "S3OutputKeyTemplate" +_SSC = "S3StorageClass" +_STANDARD = "STANDARD" +_IT = "INTELLIGENT_TIERING" +_GI = "GLACIER_IR" +_SSCt = "S3StorageConfiguration" +_OKT = "OutputKeyTemplate" +_SC = "StorageClass" +_CT = "CompressionType" +_SDD = "S3DestinationDescription" +_SCt = "StorageConfiguration" +_STCT = "S3TablesCompressionType" +_SNAPPY = "SNAPPY" +_STN = "S3TablesNamespace" +_PSN = "PartitionSourceName" +_PT = "PartitionTransform" +_TH = "TIME_HOUR" +_PF = "PartitionField" +_Tr = "Transform" +_SNo = "SourceName" +_PFL = "PartitionFieldList" +_me = "member" +_PS = "PartitionSpec" +_PFa = "PartitionFields" +_TBARN = "TableBucketARN" +_STTN = "S3TablesTableName" +_STC = "S3TablesConfiguration" +_N = "Namespace" +_TN = "TableName" +_STCL = "S3TablesConfigurationList" +_STDD = "S3TablesDestinationDescription" +_RARN = "RoleARN" +_GSRSARN = "GSRSchemaARN" +_RFT = "RecordFormatType" +_GJ = "GSR_JSON" +_JSON = "JSON" +_STRING = "STRING" +_BA = "BYTE_ARRAY" +_RC = "RecordConfiguration" +_CSD = "ChannelStreamDescription" +_SCTt = "StreamCreationTimestamp" +_CSDL = "ChannelStreamDescriptionList" +_CD = "ChannelDescription" +_CCT = "ChannelCreationTimestamp" +_SERARN = "ServiceExecutionRoleARN" +_SCL = "StreamConfigurationList" +_SDC = "S3DestinationConfiguration" +_STDC = "S3TablesDestinationConfiguration" +_EC = "EncryptionConfiguration" +_LC = "LoggingConfiguration" +_CDT = "ChannelDestinationType" +_S = "S3" +_ST = "S3_TABLES" +_CWLUI = "CloudWatchLogsUpdateInput" +_CLUI = "ChannelLoggingUpdateInput" +_CSC = "ChannelStreamConfiguration" +_CSCL = "ChannelStreamConfigurationList" +_CSI = "ChannelStreamIdentifier" +_CSIL = "ChannelStreamIdentifierList" +_CSh = "ChannelSummary" +_St = "Streams" +_CSL = "ChannelSummaryList" +_HK = "HashKey" +_HKR = "HashKeyRange" +_SHK = "StartingHashKey" +_EHK = "EndingHashKey" +_SIh = "ShardId" +_SIL = "ShardIdList" +_CShi = "ChildShard" +_PSa = "ParentShards" +_CSLh = "ChildShardList" +_CARNo = "ConsumerARN" +_CNo = "ConsumerName" +_CSo = "ConsumerStatus" +_C = "Consumer" +_CCTo = "ConsumerCreationTimestamp" +_CCOo = "ConsumerCountObject" +_CDo = "ConsumerDescription" +_CL = "ConsumerList" +_CCI = "CreateChannelInput" +_CCOr = "CreateChannelOutput" +_KMSADE = "KMSAccessDeniedException" +_KMSDE = "KMSDisabledException" +_KMSISE = "KMSInvalidStateException" +_KMSNFE = "KMSNotFoundException" +_KMSOIR = "KMSOptInRequired" +_KMSTE = "KMSThrottlingException" +_VE = "ValidationException" +_CC = "CreateChannel" +_MRSIKB = "MaxRecordSizeInKiB" +_RDS = "RecordDistributionStrategy" +_AUTO = "AUTO" +_UPK = "USER_PARTITION_KEY" +_PIO = "PositiveIntegerObject" +_SM = "StreamMode" +_PROVISIONED = "PROVISIONED" +_OD = "ON_DEMAND" +_SMD = "StreamModeDetails" +_NIO = "NaturalIntegerObject" +_CSIr = "CreateStreamInput" +_SCh = "ShardCount" +_WTMB = "WarmThroughputMiBps" +_CSO = "CreateStreamOutput" +_CSr = "CreateStream" +_D = "Data" +_RPH = "RetentionPeriodHours" +_DSRPI = "DecreaseStreamRetentionPeriodInput" +_DSRPO = "DecreaseStreamRetentionPeriodOutput" +_DSRP = "DecreaseStreamRetentionPeriod" +_DCI = "DeleteChannelInput" +_DCO = "DeleteChannelOutput" +_DC = "DeleteChannel" +_RARNe = "ResourceARN" +_DRPI = "DeleteResourcePolicyInput" +_DRPO = "DeleteResourcePolicyOutput" +_DRP = "DeleteResourcePolicy" +_DSI = "DeleteStreamInput" +_ECD = "EnforceConsumerDeletion" +_DSO = "DeleteStreamOutput" +_DS = "DeleteStream" +_DSCI = "DeregisterStreamConsumerInput" +_DSCO = "DeregisterStreamConsumerOutput" +_DSC = "DeregisterStreamConsumer" +_DASI = "DescribeAccountSettingsInput" +_MTBCOS = "MinimumThroughputBillingCommitmentOutputStatus" +_ENABLED = "ENABLED" +_DISABLED = "DISABLED" +_EUEAE = "ENABLED_UNTIL_EARLIEST_ALLOWED_END" +_MTBCO = "MinimumThroughputBillingCommitmentOutput" +_Sta = "Status" +_SA = "StartedAt" +_EA = "EndedAt" +_EAEA = "EarliestAllowedEndAt" +_DASO = "DescribeAccountSettingsOutput" +_MTBC = "MinimumThroughputBillingCommitment" +_DAS = "DescribeAccountSettings" +_DCIe = "DescribeChannelInput" +_DCOe = "DescribeChannelOutput" +_DCe = "DescribeChannel" +_DLI = "DescribeLimitsInput" +_ODSCO = "OnDemandStreamCountObject" +_ODSCLO = "OnDemandStreamCountLimitObject" +_SCO = "ShardCountObject" +_DLO = "DescribeLimitsOutput" +_SL = "ShardLimit" +_OSC = "OpenShardCount" +_ODSC = "OnDemandStreamCount" +_ODSCL = "OnDemandStreamCountLimit" +_CCh = "ChannelCount" +_CCL = "ChannelCountLimit" +_DL = "DescribeLimits" +_DSIL = "DescribeStreamInputLimit" +_DSIe = "DescribeStreamInput" +_L = "Limit" +_ESSI = "ExclusiveStartShardId" +_MN = "MetricsName" +_IB = "INCOMING_BYTES" +_IBn = "IncomingBytes" +_IR = "INCOMING_RECORDS" +_IRn = "IncomingRecords" +_OB = "OUTGOING_BYTES" +_OBu = "OutgoingBytes" +_OR = "OUTGOING_RECORDS" +_ORu = "OutgoingRecords" +_WPTE = "WRITE_PROVISIONED_THROUGHPUT_EXCEEDED" +_WPTEr = "WriteProvisionedThroughputExceeded" +_RPTE = "READ_PROVISIONED_THROUGHPUT_EXCEEDED" +_RPTEe = "ReadProvisionedThroughputExceeded" +_IAM = "ITERATOR_AGE_MILLISECONDS" +_IAMt = "IteratorAgeMilliseconds" +_ALL = "ALL" +_MNL = "MetricsNameList" +_EMn = "EnhancedMetrics" +_SLM = "ShardLevelMetrics" +_EML = "EnhancedMonitoringList" +_SNe = "SequenceNumber" +_SNR = "SequenceNumberRange" +_SSN = "StartingSequenceNumber" +_ESN = "EndingSequenceNumber" +_Sh = "Shard" +_PSI = "ParentShardId" +_APSI = "AdjacentParentShardId" +_SLh = "ShardList" +_SS = "StreamStatus" +_SD = "StreamDescription" +_Sha = "Shards" +_HMS = "HasMoreShards" +_EMnh = "EnhancedMonitoring" +_DSOe = "DescribeStreamOutput" +_DSe = "DescribeStream" +_DSCIe = "DescribeStreamConsumerInput" +_DSCOe = "DescribeStreamConsumerOutput" +_DSCe = "DescribeStreamConsumer" +_DSSI = "DescribeStreamSummaryInput" +_WTO = "WarmThroughputObject" +_TMB = "TargetMiBps" +_CMB = "CurrentMiBps" +_SDS = "StreamDescriptionSummary" +_CCo = "ConsumerCount" +_WT = "WarmThroughput" +_DSSO = "DescribeStreamSummaryOutput" +_DSS = "DescribeStreamSummary" +_DEMI = "DisableEnhancedMonitoringInput" +_DEMO = "DisableEnhancedMonitoringOutput" +_cEMO = "com.amazonaws.kinesis#EnhancedMonitoringOutput" +_CSLM = "CurrentShardLevelMetrics" +_DSLM = "DesiredShardLevelMetrics" +_DEM = "DisableEnhancedMonitoring" +_DROE = "DryRunOperationException" +_EEMI = "EnableEnhancedMonitoringInput" +_EEMO = "EnableEnhancedMonitoringOutput" +_EEM = "EnableEnhancedMonitoring" +_ECr = "ErrorCode" +_EIE = "ExpiredIteratorException" +_ENTE = "ExpiredNextTokenException" +_GRIL = "GetRecordsInputLimit" +_SIha = "ShardIterator" +_GRI = "GetRecordsInput" +_DR = "DryRun" +_MBL = "MillisBehindLatest" +_PK = "PartitionKey" +_R = "Record" +_AAT = "ApproximateArrivalTimestamp" +_RL = "RecordList" +_GRO = "GetRecordsOutput" +_Re = "Records" +_NSI = "NextShardIterator" +_CShil = "ChildShards" +_IFE = "InternalFailureException" +_se = "server" +_PTEE = "ProvisionedThroughputExceededException" +_GR = "GetRecords" +_GRPI = "GetResourcePolicyInput" +_P = "Policy" +_GRPO = "GetResourcePolicyOutput" +_GRP = "GetResourcePolicy" +_SIT = "ShardIteratorType" +_ASN = "AT_SEQUENCE_NUMBER" +_ASN_ = "AFTER_SEQUENCE_NUMBER" +_TH_ = "TRIM_HORIZON" +_LATEST = "LATEST" +_AT = "AT_TIMESTAMP" +_GSII = "GetShardIteratorInput" +_GSIO = "GetShardIteratorOutput" +_GSI = "GetShardIterator" +_ISRPI = "IncreaseStreamRetentionPeriodInput" +_ISRPO = "IncreaseStreamRetentionPeriodOutput" +_ISRP = "IncreaseStreamRetentionPeriod" +_LCIL = "ListChannelsInputLimit" +_NT = "NextToken" +_SF = "StreamFilter" +_SFL = "StreamFilterList" +_LCI = "ListChannelsInput" +_MR = "MaxResults" +_LCO = "ListChannelsOutput" +_CSha = "ChannelSummaries" +_LCi = "ListChannels" +_LSIL = "ListShardsInputLimit" +_SFT = "ShardFilterType" +_ASI = "AFTER_SHARD_ID" +_ATH = "AT_TRIM_HORIZON" +_FTH = "FROM_TRIM_HORIZON" +_AL = "AT_LATEST" +_FT = "FROM_TIMESTAMP" +_SFh = "ShardFilter" +_Ty = "Type" +_LSI = "ListShardsInput" +_LSO = "ListShardsOutput" +_LS = "ListShards" +_LSCIL = "ListStreamConsumersInputLimit" +_LSCI = "ListStreamConsumersInput" +_LSCO = "ListStreamConsumersOutput" +_Co = "Consumers" +_LSC = "ListStreamConsumers" +_LSILi = "ListStreamsInputLimit" +_LSIi = "ListStreamsInput" +_ESSN = "ExclusiveStartStreamName" +_SNL = "StreamNameList" +_SSt = "StreamSummary" +_SSL = "StreamSummaryList" +_LSOi = "ListStreamsOutput" +_SNt = "StreamNames" +_HMSa = "HasMoreStreams" +_SStr = "StreamSummaries" +_LSi = "ListStreams" +_LTFRI = "ListTagsForResourceInput" +_Ta = "Tag" +_K = "Key" +_V = "Value" +_TL = "TagList" +_LTFRO = "ListTagsForResourceOutput" +_LTFR = "ListTagsForResource" +_LTFSIL = "ListTagsForStreamInputLimit" +_LTFSI = "ListTagsForStreamInput" +_ESTK = "ExclusiveStartTagKey" +_LTFSO = "ListTagsForStreamOutput" +_HMT = "HasMoreTags" +_LTFS = "ListTagsForStream" +_MSI = "MergeShardsInput" +_STM = "ShardToMerge" +_ASTM = "AdjacentShardToMerge" +_MSO = "MergeShardsOutput" +_MS = "MergeShards" +_PRI = "PutRecordInput" +_EHKx = "ExplicitHashKey" +_SNFO = "SequenceNumberForOrdering" +_PRO = "PutRecordOutput" +_PR = "PutRecord" +_PRRE = "PutRecordsRequestEntry" +_PRREL = "PutRecordsRequestEntryList" +_PRIu = "PutRecordsInput" +_PRREu = "PutRecordsResultEntry" +_PRRELu = "PutRecordsResultEntryList" +_PROu = "PutRecordsOutput" +_FRC = "FailedRecordCount" +_PRu = "PutRecords" +_PRPI = "PutResourcePolicyInput" +_PRPO = "PutResourcePolicyOutput" +_PRP = "PutResourcePolicy" +_RSCI = "RegisterStreamConsumerInput" +_RSCO = "RegisterStreamConsumerOutput" +_RSC = "RegisterStreamConsumer" +_TKL = "TagKeyList" +_RTFSI = "RemoveTagsFromStreamInput" +_TKa = "TagKeys" +_RTFSO = "RemoveTagsFromStreamOutput" +_RTFS = "RemoveTagsFromStream" +_SSI = "SplitShardInput" +_STS = "ShardToSplit" +_NSHK = "NewStartingHashKey" +_SSO = "SplitShardOutput" +_SSp = "SplitShard" +_SSEI = "StartStreamEncryptionInput" +_SSEO = "StartStreamEncryptionOutput" +_SSE = "StartStreamEncryption" +_SSEIt = "StopStreamEncryptionInput" +_SSEOt = "StopStreamEncryptionOutput" +_SSEt = "StopStreamEncryption" +_SP = "StartingPosition" +_STSI = "SubscribeToShardInput" +_STSE = "SubscribeToShardEvent" +_CSN = "ContinuationSequenceNumber" +_STSES = "SubscribeToShardEventStream" +_smith = "smithy.api#streaming" +_STSO = "SubscribeToShardOutput" +_ES = "EventStream" +_STSu = "SubscribeToShard" +_TRI = "TagResourceInput" +_TRO = "TagResourceOutput" +_TR = "TagResource" +_URI = "UntagResourceInput" +_URO = "UntagResourceOutput" +_UR = "UntagResource" +_MTBCIS = "MinimumThroughputBillingCommitmentInputStatus" +_MTBCI = "MinimumThroughputBillingCommitmentInput" +_UASI = "UpdateAccountSettingsInput" +_UASO = "UpdateAccountSettingsOutput" +_UAS = "UpdateAccountSettings" +_SDUI = "S3DestinationUpdateInput" +_STDUI = "S3TablesDestinationUpdateInput" +_UCI = "UpdateChannelInput" +_UCO = "UpdateChannelOutput" +_UC = "UpdateChannel" +_UMRSI = "UpdateMaxRecordSizeInput" +_UMRSO = "UpdateMaxRecordSizeOutput" +_UMRS = "UpdateMaxRecordSize" +_STc = "ScalingType" +_US = "UNIFORM_SCALING" +_USCI = "UpdateShardCountInput" +_TSC = "TargetShardCount" +_USCO = "UpdateShardCountOutput" +_CSCu = "CurrentShardCount" +_USC = "UpdateShardCount" +_USMI = "UpdateStreamModeInput" +_USMO = "UpdateStreamModeOutput" +_USM = "UpdateStreamMode" +_USRDSI = "UpdateStreamRecordDistributionStrategyInput" +_USRDSO = "UpdateStreamRecordDistributionStrategyOutput" +_USRDS = "UpdateStreamRecordDistributionStrategy" +_USWTI = "UpdateStreamWarmThroughputInput" +_USWTO = "UpdateStreamWarmThroughputOutput" +_USWT = "UpdateStreamWarmThroughput" +_K_ = "Kinesis_20131202" +_a = "aws.auth#sigv4" +_a_ = "aws.protocols#awsJson1_1" +_aw = "aws.api#service" +_sN = "smithy.api#xmlNamespace" + +ERROR_MESSAGE: StaticSchema = (3, n0, _EM, 0) + +ACCESS_DENIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _ADE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +STREAM_ARN: StaticSchema = (3, n0, _SARN, 0) + +STREAM_ID: StaticSchema = (3, n0, _SI, 0) + +STREAM_NAME: StaticSchema = (3, n0, _SN, 0) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG_MAP: StaticSchema = (17, n0, _TM, 0, (_k, _v), ((TAG_KEY, 0), (TAG_VALUE, 0))) + +ADD_TAGS_TO_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _ATTSI, + {_sm: None}, + (_SN, _T, _SARN, _SI), + ( + (STREAM_NAME, 0), + (TAG_MAP, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +ADD_TAGS_TO_STREAM_OUTPUT: StaticSchema = (18, n0, _ATTSO, {_sSI: _sU, _smit: None}) + +INVALID_ARGUMENT_EXCEPTION: StaticSchema = ( + 18, + n0, + _IAE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +RESOURCE_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _RIUE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +ADD_TAGS_TO_STREAM: StaticOperationSchema = ( + 23, + n0, + _ATTS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + ADD_TAGS_TO_STREAM_INPUT, + ADD_TAGS_TO_STREAM_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +BOOLEAN_OBJECT: StaticSchema = (2, n0, _BO, 0) + +BUCKET_ARN: StaticSchema = (3, n0, _BARN, 0) + +CHANNEL_ARN: StaticSchema = (3, n0, _CARN, 0) + +CHANNEL_COUNT_OBJECT: StaticSchema = (7, n0, _CCO, 0) + +TIMESTAMP: StaticSchema = (4, n0, _Ti, 0) + +CHANNEL_ID: StaticSchema = (3, n0, _CI, 0) + +CHANNEL_NAME: StaticSchema = (3, n0, _CN, 0) + +CHANNEL_STATUS: StaticSchema = ( + 14, + n0, + _CS, + 0, + (_CREATING, _ACTIVE, _UPDATING, _DELETING, _FAILED), + ( + (-1, {_sV: _CREATING}), + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _UPDATING}), + (-1, {_sV: _DELETING}), + (-1, {_sV: _FAILED}), + ), +) + +CHANNEL_STATUS_REASON: StaticSchema = (3, n0, _CSR, 0) + +CHANNEL_ENCRYPTION_TYPE: StaticSchema = (14, n0, _CET, 0, (_KMS,), ((-1, {_sV: _KMS}),)) + +KEY_ID: StaticSchema = (3, n0, _KI, 0) + +CHANNEL_ENCRYPTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CEC, + 0, + (_ET, _KI), + ((CHANNEL_ENCRYPTION_TYPE, 1), (KEY_ID, 1)), +) + +CLOUD_WATCH_LOG_GROUP_NAME: StaticSchema = (3, n0, _CWLGN, 0) + +CLOUD_WATCH_LOG_STREAM_NAME: StaticSchema = (3, n0, _CWLSN, 0) + +CLOUD_WATCH_LOGS: StaticSchema = ( + 18, + n0, + _CWL, + 0, + (_E, _LGN, _LSN), + ( + (BOOLEAN_OBJECT, 1), + (CLOUD_WATCH_LOG_GROUP_NAME, 0), + (CLOUD_WATCH_LOG_STREAM_NAME, 0), + ), +) + +CHANNEL_LOGGING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CLC, + 0, + (_CWL,), + ((CLOUD_WATCH_LOGS, 1),), +) + +DATA_FRESHNESS_IN_SECONDS: StaticSchema = (7, n0, _DFIS, 0) + +S3_ERROR_OUTPUT_PREFIX: StaticSchema = (3, n0, _SEOP, 0) + +EXPECTED_BUCKET_OWNER: StaticSchema = (3, n0, _EBO, 0) + +DEAD_LETTER_QUEUE_S3_CONFIGURATION: StaticSchema = ( + 18, + n0, + _DLQSC, + 0, + (_BARN, _EBO, _EOP), + ((BUCKET_ARN, 1), (EXPECTED_BUCKET_OWNER, 1), (S3_ERROR_OUTPUT_PREFIX, 0)), +) + +S3_COMPRESSION_TYPE: StaticSchema = ( + 14, + n0, + _SCT, + 0, + (_NONE, _GZIP, _ZSTD), + ((-1, {_sV: _NONE}), (-1, {_sV: _GZIP}), (-1, {_sV: _ZSTD})), +) + +S3_OUTPUT_KEY_TEMPLATE: StaticSchema = (3, n0, _SOKT, 0) + +S3_STORAGE_CLASS: StaticSchema = ( + 14, + n0, + _SSC, + 0, + (_STANDARD, _IT, _GI), + ((-1, {_sV: _STANDARD}), (-1, {_sV: _IT}), (-1, {_sV: _GI})), +) + +S3_STORAGE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SSCt, + 0, + (_BARN, _EBO, _OKT, _SC, _CT), + ( + (BUCKET_ARN, 1), + (EXPECTED_BUCKET_OWNER, 1), + (S3_OUTPUT_KEY_TEMPLATE, 0), + (S3_STORAGE_CLASS, 0), + (S3_COMPRESSION_TYPE, 1), + ), +) + +S3_DESTINATION_DESCRIPTION: StaticSchema = ( + 18, + n0, + _SDD, + 0, + (_DFIS, _DLQSC, _SCt), + ( + (DATA_FRESHNESS_IN_SECONDS, 1), + (DEAD_LETTER_QUEUE_S3_CONFIGURATION, 1), + (S3_STORAGE_CONFIGURATION, 1), + ), +) + +S3_TABLES_COMPRESSION_TYPE: StaticSchema = ( + 14, + n0, + _STCT, + 0, + (_NONE, _ZSTD, _SNAPPY), + ((-1, {_sV: _NONE}), (-1, {_sV: _ZSTD}), (-1, {_sV: _SNAPPY})), +) + +S3_TABLES_NAMESPACE: StaticSchema = (3, n0, _STN, 0) + +PARTITION_SOURCE_NAME: StaticSchema = (3, n0, _PSN, 0) + +PARTITION_TRANSFORM: StaticSchema = (14, n0, _PT, 0, (_TH,), ((-1, {_sV: _TH}),)) + +PARTITION_FIELD: StaticSchema = ( + 18, + n0, + _PF, + 0, + (_Tr, _SNo), + ((PARTITION_TRANSFORM, 1), (PARTITION_SOURCE_NAME, 1)), +) + +PARTITION_FIELD_LIST: StaticSchema = (16, n0, _PFL, 0, (_me,), ((PARTITION_FIELD, 0),)) + +PARTITION_SPEC: StaticSchema = (18, n0, _PS, 0, (_PFa,), ((PARTITION_FIELD_LIST, 1),)) + +TABLE_BUCKET_ARN: StaticSchema = (3, n0, _TBARN, 0) + +S3_TABLES_TABLE_NAME: StaticSchema = (3, n0, _STTN, 0) + +S3_TABLES_CONFIGURATION: StaticSchema = ( + 18, + n0, + _STC, + 0, + (_TBARN, _N, _TN, _CT, _PS), + ( + (TABLE_BUCKET_ARN, 1), + (S3_TABLES_NAMESPACE, 1), + (S3_TABLES_TABLE_NAME, 1), + (S3_TABLES_COMPRESSION_TYPE, 1), + (PARTITION_SPEC, 0), + ), +) + +S3_TABLES_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _STCL, + 0, + (_me,), + ((S3_TABLES_CONFIGURATION, 0),), +) + +S3_TABLES_DESTINATION_DESCRIPTION: StaticSchema = ( + 18, + n0, + _STDD, + 0, + (_DFIS, _DLQSC, _STCL), + ( + (DATA_FRESHNESS_IN_SECONDS, 1), + (DEAD_LETTER_QUEUE_S3_CONFIGURATION, 1), + (S3_TABLES_CONFIGURATION_LIST, 1), + ), +) + +ROLE_ARN: StaticSchema = (3, n0, _RARN, 0) + +GSR_SCHEMA_ARN: StaticSchema = (3, n0, _GSRSARN, 0) + +RECORD_FORMAT_TYPE: StaticSchema = ( + 14, + n0, + _RFT, + 0, + (_GJ, _JSON, _STRING, _BA), + ((-1, {_sV: _GJ}), (-1, {_sV: _JSON}), (-1, {_sV: _STRING}), (-1, {_sV: _BA})), +) + +RECORD_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RC, + 0, + (_RFT, _GSRSARN), + ((RECORD_FORMAT_TYPE, 1), (GSR_SCHEMA_ARN, 0)), +) + +CHANNEL_STREAM_DESCRIPTION: StaticSchema = ( + 18, + n0, + _CSD, + 0, + (_SARN, _SCTt, _RC), + ((STREAM_ARN, 1), (TIMESTAMP, 1), (RECORD_CONFIGURATION, 1)), +) + +CHANNEL_STREAM_DESCRIPTION_LIST: StaticSchema = ( + 16, + n0, + _CSDL, + 0, + (_me,), + ((CHANNEL_STREAM_DESCRIPTION, 0),), +) + +CHANNEL_DESCRIPTION: StaticSchema = ( + 18, + n0, + _CD, + 0, + (_CN, _CARN, _CI, _CS, _CSR, _CCT, _SERARN, _SCL, _SDC, _STDC, _EC, _LC), + ( + (CHANNEL_NAME, 1), + (CHANNEL_ARN, 1), + (CHANNEL_ID, 1), + (CHANNEL_STATUS, 1), + (CHANNEL_STATUS_REASON, 0), + (TIMESTAMP, 1), + (ROLE_ARN, 1), + (CHANNEL_STREAM_DESCRIPTION_LIST, 1), + (S3_DESTINATION_DESCRIPTION, 0), + (S3_TABLES_DESTINATION_DESCRIPTION, 0), + (CHANNEL_ENCRYPTION_CONFIGURATION, 0), + (CHANNEL_LOGGING_CONFIGURATION, 1), + ), +) + +CHANNEL_DESTINATION_TYPE: StaticSchema = ( + 14, + n0, + _CDT, + 0, + (_S, _ST), + ((-1, {_sV: _S}), (-1, {_sV: _ST})), +) + +CLOUD_WATCH_LOGS_UPDATE_INPUT: StaticSchema = ( + 18, + n0, + _CWLUI, + 0, + (_E, _LGN, _LSN), + ( + (BOOLEAN_OBJECT, 1), + (CLOUD_WATCH_LOG_GROUP_NAME, 0), + (CLOUD_WATCH_LOG_STREAM_NAME, 0), + ), +) + +CHANNEL_LOGGING_UPDATE_INPUT: StaticSchema = ( + 18, + n0, + _CLUI, + 0, + (_CWL,), + ((CLOUD_WATCH_LOGS_UPDATE_INPUT, 1),), +) + +CHANNEL_STREAM_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CSC, + 0, + (_SARN, _RC), + ((STREAM_ARN, 1), (RECORD_CONFIGURATION, 1)), +) + +CHANNEL_STREAM_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _CSCL, + 0, + (_me,), + ((CHANNEL_STREAM_CONFIGURATION, 0),), +) + +CHANNEL_STREAM_IDENTIFIER: StaticSchema = ( + 18, + n0, + _CSI, + 0, + (_SARN, _SCTt), + ((STREAM_ARN, 1), (TIMESTAMP, 1)), +) + +CHANNEL_STREAM_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _CSIL, + 0, + (_me,), + ((CHANNEL_STREAM_IDENTIFIER, 0),), +) + +CHANNEL_SUMMARY: StaticSchema = ( + 18, + n0, + _CSh, + 0, + (_CN, _CARN, _CI, _CS, _CSR, _CCT, _CDT, _St), + ( + (CHANNEL_NAME, 1), + (CHANNEL_ARN, 1), + (CHANNEL_ID, 1), + (CHANNEL_STATUS, 1), + (CHANNEL_STATUS_REASON, 0), + (TIMESTAMP, 1), + (CHANNEL_DESTINATION_TYPE, 1), + (CHANNEL_STREAM_IDENTIFIER_LIST, 1), + ), +) + +CHANNEL_SUMMARY_LIST: StaticSchema = (16, n0, _CSL, 0, (_me,), ((CHANNEL_SUMMARY, 0),)) + +HASH_KEY: StaticSchema = (3, n0, _HK, 0) + +HASH_KEY_RANGE: StaticSchema = ( + 18, + n0, + _HKR, + 0, + (_SHK, _EHK), + ((HASH_KEY, 1), (HASH_KEY, 1)), +) + +SHARD_ID: StaticSchema = (3, n0, _SIh, 0) + +SHARD_ID_LIST: StaticSchema = (16, n0, _SIL, 0, (_me,), ((SHARD_ID, 0),)) + +CHILD_SHARD: StaticSchema = ( + 18, + n0, + _CShi, + 0, + (_SIh, _PSa, _HKR), + ((SHARD_ID, 1), (SHARD_ID_LIST, 1), (HASH_KEY_RANGE, 1)), +) + +CHILD_SHARD_LIST: StaticSchema = (16, n0, _CSLh, 0, (_me,), ((CHILD_SHARD, 0),)) + +CONSUMER_ARN: StaticSchema = (3, n0, _CARNo, 0) + +CONSUMER_NAME: StaticSchema = (3, n0, _CNo, 0) + +CONSUMER_STATUS: StaticSchema = ( + 14, + n0, + _CSo, + 0, + (_CREATING, _DELETING, _ACTIVE), + ((-1, {_sV: _CREATING}), (-1, {_sV: _DELETING}), (-1, {_sV: _ACTIVE})), +) + +CONSUMER: StaticSchema = ( + 18, + n0, + _C, + 0, + (_CNo, _CARNo, _CSo, _CCTo), + ((CONSUMER_NAME, 1), (CONSUMER_ARN, 1), (CONSUMER_STATUS, 1), (TIMESTAMP, 1)), +) + +CONSUMER_COUNT_OBJECT: StaticSchema = (7, n0, _CCOo, 0) + +CONSUMER_DESCRIPTION: StaticSchema = ( + 18, + n0, + _CDo, + 0, + (_CNo, _CARNo, _CSo, _CCTo, _SARN), + ( + (CONSUMER_NAME, 1), + (CONSUMER_ARN, 1), + (CONSUMER_STATUS, 1), + (TIMESTAMP, 1), + (STREAM_ARN, 1), + ), +) + +CONSUMER_LIST: StaticSchema = (16, n0, _CL, 0, (_me,), ((CONSUMER, 0),)) + +S3_DESTINATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SDC, + 0, + (_DFIS, _DLQSC, _SCt), + ( + (DATA_FRESHNESS_IN_SECONDS, 0), + (DEAD_LETTER_QUEUE_S3_CONFIGURATION, 0), + (S3_STORAGE_CONFIGURATION, 1), + ), +) + +S3_TABLES_DESTINATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _STDC, + 0, + (_DFIS, _DLQSC, _STCL), + ( + (DATA_FRESHNESS_IN_SECONDS, 0), + (DEAD_LETTER_QUEUE_S3_CONFIGURATION, 1), + (S3_TABLES_CONFIGURATION_LIST, 1), + ), +) + +CREATE_CHANNEL_INPUT: StaticSchema = ( + 18, + n0, + _CCI, + {_sm: None}, + (_CN, _SERARN, _SCL, _SDC, _STDC, _EC, _T, _LC), + ( + (CHANNEL_NAME, 1), + (ROLE_ARN, 1), + (CHANNEL_STREAM_CONFIGURATION_LIST, 1), + (S3_DESTINATION_CONFIGURATION, 0), + (S3_TABLES_DESTINATION_CONFIGURATION, 0), + (CHANNEL_ENCRYPTION_CONFIGURATION, 0), + (TAG_MAP, 0), + (CHANNEL_LOGGING_CONFIGURATION, 0), + ), +) + +CREATE_CHANNEL_OUTPUT: StaticSchema = ( + 18, + n0, + _CCOr, + {_smit: None}, + (_CD,), + ((CHANNEL_DESCRIPTION, 1),), +) + +KMS_ACCESS_DENIED_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSADE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +KMS_DISABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSDE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +KMS_INVALID_STATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSISE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +KMS_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSNFE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +KMS_OPT_IN_REQUIRED: StaticSchema = ( + 18, + n0, + _KMSOIR, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +KMS_THROTTLING_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSTE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +VALIDATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _VE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +CREATE_CHANNEL: StaticOperationSchema = ( + 23, + n0, + _CC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + CREATE_CHANNEL_INPUT, + CREATE_CHANNEL_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + KMS_ACCESS_DENIED_EXCEPTION, + KMS_DISABLED_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + KMS_NOT_FOUND_EXCEPTION, + KMS_OPT_IN_REQUIRED, + KMS_THROTTLING_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +MAX_RECORD_SIZE_IN_KI_B: StaticSchema = (7, n0, _MRSIKB, 0) + +RECORD_DISTRIBUTION_STRATEGY: StaticSchema = ( + 14, + n0, + _RDS, + 0, + (_AUTO, _UPK), + ((-1, {_sV: _AUTO}), (-1, {_sV: _UPK})), +) + +POSITIVE_INTEGER_OBJECT: StaticSchema = (7, n0, _PIO, 0) + +STREAM_MODE: StaticSchema = ( + 14, + n0, + _SM, + 0, + (_PROVISIONED, _OD), + ((-1, {_sV: _PROVISIONED}), (-1, {_sV: _OD})), +) + +STREAM_MODE_DETAILS: StaticSchema = (18, n0, _SMD, 0, (_SM,), ((STREAM_MODE, 1),)) + +NATURAL_INTEGER_OBJECT: StaticSchema = (7, n0, _NIO, 0) + +CREATE_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _CSIr, + {_sm: None}, + (_SN, _SCh, _SMD, _T, _WTMB, _MRSIKB, _RDS), + ( + (STREAM_NAME, 1), + (POSITIVE_INTEGER_OBJECT, 0), + (STREAM_MODE_DETAILS, 0), + (TAG_MAP, 0), + (NATURAL_INTEGER_OBJECT, 0), + (MAX_RECORD_SIZE_IN_KI_B, 0), + (RECORD_DISTRIBUTION_STRATEGY, 0), + ), +) + +CREATE_STREAM_OUTPUT: StaticSchema = (18, n0, _CSO, {_sSI: _sU, _smit: None}) + +CREATE_STREAM: StaticOperationSchema = ( + 23, + n0, + _CSr, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + CREATE_STREAM_INPUT, + CREATE_STREAM_OUTPUT, + ( + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DATA: StaticSchema = (1, n0, _D, 0) + +RETENTION_PERIOD_HOURS: StaticSchema = (7, n0, _RPH, 0) + +DECREASE_STREAM_RETENTION_PERIOD_INPUT: StaticSchema = ( + 18, + n0, + _DSRPI, + {_sm: None}, + (_SN, _RPH, _SARN, _SI), + ( + (STREAM_NAME, 0), + (RETENTION_PERIOD_HOURS, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DECREASE_STREAM_RETENTION_PERIOD_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRPO, + {_sSI: _sU, _smit: None}, +) + +DECREASE_STREAM_RETENTION_PERIOD: StaticOperationSchema = ( + 23, + n0, + _DSRP, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DECREASE_STREAM_RETENTION_PERIOD_INPUT, + DECREASE_STREAM_RETENTION_PERIOD_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DELETE_CHANNEL_INPUT: StaticSchema = ( + 18, + n0, + _DCI, + {_sm: None}, + (_CARN,), + ((CHANNEL_ARN, {_sP: MappingProxyType({"name": "ChannelARN"}), _smi: None}),), +) + +DELETE_CHANNEL_OUTPUT: StaticSchema = (18, n0, _DCO, {_sSI: _sU, _smit: None}) + +DELETE_CHANNEL: StaticOperationSchema = ( + 23, + n0, + _DC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DELETE_CHANNEL_INPUT, + DELETE_CHANNEL_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +RESOURCE_ARN: StaticSchema = (3, n0, _RARNe, 0) + +DELETE_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DRPI, + {_sm: None}, + (_RARNe, _SI), + ( + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DELETE_RESOURCE_POLICY_OUTPUT: StaticSchema = (18, n0, _DRPO, {_sSI: _sU, _smit: None}) + +DELETE_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _DRP, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DELETE_RESOURCE_POLICY_INPUT, + DELETE_RESOURCE_POLICY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DELETE_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _DSI, + {_sm: None}, + (_SN, _ECD, _SARN, _SI), + ( + (STREAM_NAME, 0), + (BOOLEAN_OBJECT, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DELETE_STREAM_OUTPUT: StaticSchema = (18, n0, _DSO, {_sSI: _sU, _smit: None}) + +DELETE_STREAM: StaticOperationSchema = ( + 23, + n0, + _DS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DELETE_STREAM_INPUT, + DELETE_STREAM_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DEREGISTER_STREAM_CONSUMER_INPUT: StaticSchema = ( + 18, + n0, + _DSCI, + {_sm: None}, + (_SARN, _CNo, _CARNo, _SI), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (CONSUMER_NAME, 0), + (CONSUMER_ARN, {_sP: MappingProxyType({"name": "ConsumerARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DEREGISTER_STREAM_CONSUMER_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCO, + {_sSI: _sU, _smit: None}, +) + +DEREGISTER_STREAM_CONSUMER: StaticOperationSchema = ( + 23, + n0, + _DSC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DEREGISTER_STREAM_CONSUMER_INPUT, + DEREGISTER_STREAM_CONSUMER_OUTPUT, + ( + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DESCRIBE_ACCOUNT_SETTINGS_INPUT: StaticSchema = (18, n0, _DASI, {_sm: None}) + +MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT_STATUS: StaticSchema = ( + 14, + n0, + _MTBCOS, + 0, + (_ENABLED, _DISABLED, _EUEAE), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED}), (-1, {_sV: _EUEAE})), +) + +MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _MTBCO, + 0, + (_Sta, _SA, _EA, _EAEA), + ( + (MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT_STATUS, 1), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + (TIMESTAMP, 0), + ), +) + +DESCRIBE_ACCOUNT_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DASO, + {_smit: None}, + (_MTBC,), + ((MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT, 0),), +) + +DESCRIBE_ACCOUNT_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _DAS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_ACCOUNT_SETTINGS_INPUT, + DESCRIBE_ACCOUNT_SETTINGS_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION,), +) + +DESCRIBE_CHANNEL_INPUT: StaticSchema = ( + 18, + n0, + _DCIe, + {_sm: None}, + (_CARN,), + ((CHANNEL_ARN, {_sP: MappingProxyType({"name": "ChannelARN"}), _smi: None}),), +) + +DESCRIBE_CHANNEL_OUTPUT: StaticSchema = ( + 18, + n0, + _DCOe, + {_smit: None}, + (_CD,), + ((CHANNEL_DESCRIPTION, 1),), +) + +DESCRIBE_CHANNEL: StaticOperationSchema = ( + 23, + n0, + _DCe, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_CHANNEL_INPUT, + DESCRIBE_CHANNEL_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +DESCRIBE_LIMITS_INPUT: StaticSchema = (18, n0, _DLI, {_sm: None}) + +ON_DEMAND_STREAM_COUNT_OBJECT: StaticSchema = (7, n0, _ODSCO, 0) + +ON_DEMAND_STREAM_COUNT_LIMIT_OBJECT: StaticSchema = (7, n0, _ODSCLO, 0) + +SHARD_COUNT_OBJECT: StaticSchema = (7, n0, _SCO, 0) + +DESCRIBE_LIMITS_OUTPUT: StaticSchema = ( + 18, + n0, + _DLO, + {_smit: None}, + (_SL, _OSC, _ODSC, _ODSCL, _CCh, _CCL), + ( + (SHARD_COUNT_OBJECT, 1), + (SHARD_COUNT_OBJECT, 1), + (ON_DEMAND_STREAM_COUNT_OBJECT, 1), + (ON_DEMAND_STREAM_COUNT_LIMIT_OBJECT, 1), + (CHANNEL_COUNT_OBJECT, 0), + (CHANNEL_COUNT_OBJECT, 0), + ), +) + +DESCRIBE_LIMITS: StaticOperationSchema = ( + 23, + n0, + _DL, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_LIMITS_INPUT, + DESCRIBE_LIMITS_OUTPUT, + (LIMIT_EXCEEDED_EXCEPTION,), +) + +DESCRIBE_STREAM_INPUT_LIMIT: StaticSchema = (7, n0, _DSIL, 0) + +DESCRIBE_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _DSIe, + {_sm: None}, + (_SN, _L, _ESSI, _SARN, _SI), + ( + (STREAM_NAME, 0), + (DESCRIBE_STREAM_INPUT_LIMIT, 0), + (SHARD_ID, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +ENCRYPTION_TYPE: StaticSchema = ( + 14, + n0, + _ET, + 0, + (_NONE, _KMS), + ((-1, {_sV: _NONE}), (-1, {_sV: _KMS})), +) + +METRICS_NAME: StaticSchema = ( + 14, + n0, + _MN, + 0, + (_IB, _IR, _OB, _OR, _WPTE, _RPTE, _IAM, _ALL), + ( + (-1, {_sV: _IBn}), + (-1, {_sV: _IRn}), + (-1, {_sV: _OBu}), + (-1, {_sV: _ORu}), + (-1, {_sV: _WPTEr}), + (-1, {_sV: _RPTEe}), + (-1, {_sV: _IAMt}), + (-1, {_sV: _ALL}), + ), +) + +METRICS_NAME_LIST: StaticSchema = (16, n0, _MNL, 0, (_me,), ((METRICS_NAME, 0),)) + +ENHANCED_METRICS: StaticSchema = (18, n0, _EMn, 0, (_SLM,), ((METRICS_NAME_LIST, 0),)) + +ENHANCED_MONITORING_LIST: StaticSchema = ( + 16, + n0, + _EML, + 0, + (_me,), + ((ENHANCED_METRICS, 0),), +) + +SEQUENCE_NUMBER: StaticSchema = (3, n0, _SNe, 0) + +SEQUENCE_NUMBER_RANGE: StaticSchema = ( + 18, + n0, + _SNR, + 0, + (_SSN, _ESN), + ((SEQUENCE_NUMBER, 1), (SEQUENCE_NUMBER, 0)), +) + +SHARD: StaticSchema = ( + 18, + n0, + _Sh, + 0, + (_SIh, _PSI, _APSI, _HKR, _SNR), + ( + (SHARD_ID, 1), + (SHARD_ID, 0), + (SHARD_ID, 0), + (HASH_KEY_RANGE, 1), + (SEQUENCE_NUMBER_RANGE, 1), + ), +) + +SHARD_LIST: StaticSchema = (16, n0, _SLh, 0, (_me,), ((SHARD, 0),)) + +STREAM_STATUS: StaticSchema = ( + 14, + n0, + _SS, + 0, + (_CREATING, _DELETING, _ACTIVE, _UPDATING), + ( + (-1, {_sV: _CREATING}), + (-1, {_sV: _DELETING}), + (-1, {_sV: _ACTIVE}), + (-1, {_sV: _UPDATING}), + ), +) + +STREAM_DESCRIPTION: StaticSchema = ( + 18, + n0, + _SD, + 0, + (_SN, _SARN, _SS, _SMD, _Sha, _HMS, _RPH, _SCTt, _EMnh, _ET, _KI), + ( + (STREAM_NAME, 1), + (STREAM_ARN, 1), + (STREAM_STATUS, 1), + (STREAM_MODE_DETAILS, 0), + (SHARD_LIST, 1), + (BOOLEAN_OBJECT, 1), + (RETENTION_PERIOD_HOURS, 1), + (TIMESTAMP, 1), + (ENHANCED_MONITORING_LIST, 1), + (ENCRYPTION_TYPE, 0), + (KEY_ID, 0), + ), +) + +DESCRIBE_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _DSOe, + {_smit: None}, + (_SD,), + ((STREAM_DESCRIPTION, 1),), +) + +DESCRIBE_STREAM: StaticOperationSchema = ( + 23, + n0, + _DSe, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_STREAM_INPUT, + DESCRIBE_STREAM_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DESCRIBE_STREAM_CONSUMER_INPUT: StaticSchema = ( + 18, + n0, + _DSCIe, + {_sm: None}, + (_SARN, _CNo, _CARNo, _SI), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (CONSUMER_NAME, 0), + (CONSUMER_ARN, {_sP: MappingProxyType({"name": "ConsumerARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DESCRIBE_STREAM_CONSUMER_OUTPUT: StaticSchema = ( + 18, + n0, + _DSCOe, + {_smit: None}, + (_CDo,), + ((CONSUMER_DESCRIPTION, 1),), +) + +DESCRIBE_STREAM_CONSUMER: StaticOperationSchema = ( + 23, + n0, + _DSCe, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_STREAM_CONSUMER_INPUT, + DESCRIBE_STREAM_CONSUMER_OUTPUT, + ( + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DESCRIBE_STREAM_SUMMARY_INPUT: StaticSchema = ( + 18, + n0, + _DSSI, + {_sm: None}, + (_SN, _SARN, _SI), + ( + (STREAM_NAME, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +WARM_THROUGHPUT_OBJECT: StaticSchema = ( + 18, + n0, + _WTO, + 0, + (_TMB, _CMB), + ((NATURAL_INTEGER_OBJECT, 0), (NATURAL_INTEGER_OBJECT, 0)), +) + +STREAM_DESCRIPTION_SUMMARY: StaticSchema = ( + 18, + n0, + _SDS, + 0, + ( + _SN, + _SARN, + _SI, + _SS, + _SMD, + _RPH, + _SCTt, + _EMnh, + _ET, + _KI, + _OSC, + _CCo, + _WT, + _MRSIKB, + _CCh, + _RDS, + ), + ( + (STREAM_NAME, 1), + (STREAM_ARN, 1), + (STREAM_ID, 0), + (STREAM_STATUS, 1), + (STREAM_MODE_DETAILS, 0), + (RETENTION_PERIOD_HOURS, 1), + (TIMESTAMP, 1), + (ENHANCED_MONITORING_LIST, 1), + (ENCRYPTION_TYPE, 0), + (KEY_ID, 0), + (SHARD_COUNT_OBJECT, 1), + (CONSUMER_COUNT_OBJECT, 0), + (WARM_THROUGHPUT_OBJECT, 0), + (MAX_RECORD_SIZE_IN_KI_B, 0), + (CHANNEL_COUNT_OBJECT, 0), + (RECORD_DISTRIBUTION_STRATEGY, 0), + ), +) + +DESCRIBE_STREAM_SUMMARY_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSO, + {_smit: None}, + (_SDS,), + ((STREAM_DESCRIPTION_SUMMARY, 1),), +) + +DESCRIBE_STREAM_SUMMARY: StaticOperationSchema = ( + 23, + n0, + _DSS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DESCRIBE_STREAM_SUMMARY_INPUT, + DESCRIBE_STREAM_SUMMARY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DISABLE_ENHANCED_MONITORING_INPUT: StaticSchema = ( + 18, + n0, + _DEMI, + {_sm: None}, + (_SN, _SLM, _SARN, _SI), + ( + (STREAM_NAME, 0), + (METRICS_NAME_LIST, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +DISABLE_ENHANCED_MONITORING_OUTPUT: StaticSchema = ( + 18, + n0, + _DEMO, + {_sSI: _cEMO, _smit: None}, + (_SN, _CSLM, _DSLM, _SARN), + ((STREAM_NAME, 0), (METRICS_NAME_LIST, 0), (METRICS_NAME_LIST, 0), (STREAM_ARN, 0)), +) + +DISABLE_ENHANCED_MONITORING: StaticOperationSchema = ( + 23, + n0, + _DEM, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + DISABLE_ENHANCED_MONITORING_INPUT, + DISABLE_ENHANCED_MONITORING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +DRY_RUN_OPERATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _DROE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +ENABLE_ENHANCED_MONITORING_INPUT: StaticSchema = ( + 18, + n0, + _EEMI, + {_sm: None}, + (_SN, _SLM, _SARN, _SI), + ( + (STREAM_NAME, 0), + (METRICS_NAME_LIST, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +ENABLE_ENHANCED_MONITORING_OUTPUT: StaticSchema = ( + 18, + n0, + _EEMO, + {_sSI: _cEMO, _smit: None}, + (_SN, _CSLM, _DSLM, _SARN), + ((STREAM_NAME, 0), (METRICS_NAME_LIST, 0), (METRICS_NAME_LIST, 0), (STREAM_ARN, 0)), +) + +ENABLE_ENHANCED_MONITORING: StaticOperationSchema = ( + 23, + n0, + _EEM, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + ENABLE_ENHANCED_MONITORING_INPUT, + ENABLE_ENHANCED_MONITORING_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +ERROR_CODE: StaticSchema = (3, n0, _ECr, 0) + +EXPIRED_ITERATOR_EXCEPTION: StaticSchema = ( + 18, + n0, + _EIE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +EXPIRED_NEXT_TOKEN_EXCEPTION: StaticSchema = ( + 18, + n0, + _ENTE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +GET_RECORDS_INPUT_LIMIT: StaticSchema = (7, n0, _GRIL, 0) + +SHARD_ITERATOR: StaticSchema = (3, n0, _SIha, 0) + +GET_RECORDS_INPUT: StaticSchema = ( + 18, + n0, + _GRI, + {_sm: None}, + (_SIha, _L, _SARN, _SI, _DR), + ( + (SHARD_ITERATOR, 1), + (GET_RECORDS_INPUT_LIMIT, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (BOOLEAN_OBJECT, 0), + ), +) + +MILLIS_BEHIND_LATEST: StaticSchema = (8, n0, _MBL, 0) + +PARTITION_KEY: StaticSchema = (3, n0, _PK, 0) + +RECORD: StaticSchema = ( + 18, + n0, + _R, + 0, + (_SNe, _AAT, _D, _PK, _ET), + ( + (SEQUENCE_NUMBER, 1), + (TIMESTAMP, 0), + (DATA, 1), + (PARTITION_KEY, 0), + (ENCRYPTION_TYPE, 0), + ), +) + +RECORD_LIST: StaticSchema = (16, n0, _RL, 0, (_me,), ((RECORD, 0),)) + +GET_RECORDS_OUTPUT: StaticSchema = ( + 18, + n0, + _GRO, + {_smit: None}, + (_Re, _NSI, _MBL, _CShil), + ( + (RECORD_LIST, 1), + (SHARD_ITERATOR, 0), + (MILLIS_BEHIND_LATEST, 0), + (CHILD_SHARD_LIST, 0), + ), +) + +INTERNAL_FAILURE_EXCEPTION: StaticSchema = ( + 18, + n0, + _IFE, + {_s: _se}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _PTEE, + {_s: _c}, + (_m,), + ((ERROR_MESSAGE, 0),), +) + +GET_RECORDS: StaticOperationSchema = ( + 23, + n0, + _GR, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "data"})})}, + GET_RECORDS_INPUT, + GET_RECORDS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + EXPIRED_ITERATOR_EXCEPTION, + INTERNAL_FAILURE_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + KMS_ACCESS_DENIED_EXCEPTION, + KMS_DISABLED_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + KMS_NOT_FOUND_EXCEPTION, + KMS_OPT_IN_REQUIRED, + KMS_THROTTLING_EXCEPTION, + PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +GET_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GRPI, + {_sm: None}, + (_RARNe, _SI), + ( + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +POLICY: StaticSchema = (3, n0, _P, 0) + +GET_RESOURCE_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GRPO, + {_smit: None}, + (_P,), + ((POLICY, 1),), +) + +GET_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _GRP, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + GET_RESOURCE_POLICY_INPUT, + GET_RESOURCE_POLICY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +SHARD_ITERATOR_TYPE: StaticSchema = ( + 14, + n0, + _SIT, + 0, + (_ASN, _ASN_, _TH_, _LATEST, _AT), + ( + (-1, {_sV: _ASN}), + (-1, {_sV: _ASN_}), + (-1, {_sV: _TH_}), + (-1, {_sV: _LATEST}), + (-1, {_sV: _AT}), + ), +) + +GET_SHARD_ITERATOR_INPUT: StaticSchema = ( + 18, + n0, + _GSII, + {_sm: None}, + (_SN, _SIh, _SIT, _SSN, _Ti, _SARN, _SI, _DR), + ( + (STREAM_NAME, 0), + (SHARD_ID, 1), + (SHARD_ITERATOR_TYPE, 1), + (SEQUENCE_NUMBER, 0), + (TIMESTAMP, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (BOOLEAN_OBJECT, 0), + ), +) + +GET_SHARD_ITERATOR_OUTPUT: StaticSchema = ( + 18, + n0, + _GSIO, + {_smit: None}, + (_SIha,), + ((SHARD_ITERATOR, 0),), +) + +GET_SHARD_ITERATOR: StaticOperationSchema = ( + 23, + n0, + _GSI, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "data"})})}, + GET_SHARD_ITERATOR_INPUT, + GET_SHARD_ITERATOR_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INTERNAL_FAILURE_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +INCREASE_STREAM_RETENTION_PERIOD_INPUT: StaticSchema = ( + 18, + n0, + _ISRPI, + {_sm: None}, + (_SN, _RPH, _SARN, _SI), + ( + (STREAM_NAME, 0), + (RETENTION_PERIOD_HOURS, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +INCREASE_STREAM_RETENTION_PERIOD_OUTPUT: StaticSchema = ( + 18, + n0, + _ISRPO, + {_sSI: _sU, _smit: None}, +) + +INCREASE_STREAM_RETENTION_PERIOD: StaticOperationSchema = ( + 23, + n0, + _ISRP, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + INCREASE_STREAM_RETENTION_PERIOD_INPUT, + INCREASE_STREAM_RETENTION_PERIOD_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +LIST_CHANNELS_INPUT_LIMIT: StaticSchema = (7, n0, _LCIL, 0) + +NEXT_TOKEN: StaticSchema = (3, n0, _NT, 0) + +STREAM_FILTER: StaticSchema = ( + 18, + n0, + _SF, + 0, + (_SARN, _SCTt), + ((STREAM_ARN, 1), (TIMESTAMP, 0)), +) + +STREAM_FILTER_LIST: StaticSchema = (16, n0, _SFL, 0, (_me,), ((STREAM_FILTER, 0),)) + +LIST_CHANNELS_INPUT: StaticSchema = ( + 18, + n0, + _LCI, + {_sm: None}, + (_SF, _MR, _NT), + ((STREAM_FILTER_LIST, 0), (LIST_CHANNELS_INPUT_LIMIT, 0), (NEXT_TOKEN, 0)), +) + +LIST_CHANNELS_OUTPUT: StaticSchema = ( + 18, + n0, + _LCO, + {_smit: None}, + (_CSha, _NT), + ((CHANNEL_SUMMARY_LIST, 1), (NEXT_TOKEN, 0)), +) + +LIST_CHANNELS: StaticOperationSchema = ( + 23, + n0, + _LCi, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_CHANNELS_INPUT, + LIST_CHANNELS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + EXPIRED_NEXT_TOKEN_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +LIST_SHARDS_INPUT_LIMIT: StaticSchema = (7, n0, _LSIL, 0) + +SHARD_FILTER_TYPE: StaticSchema = ( + 14, + n0, + _SFT, + 0, + (_ASI, _ATH, _FTH, _AL, _AT, _FT), + ( + (-1, {_sV: _ASI}), + (-1, {_sV: _ATH}), + (-1, {_sV: _FTH}), + (-1, {_sV: _AL}), + (-1, {_sV: _AT}), + (-1, {_sV: _FT}), + ), +) + +SHARD_FILTER: StaticSchema = ( + 18, + n0, + _SFh, + 0, + (_Ty, _SIh, _Ti), + ((SHARD_FILTER_TYPE, 1), (SHARD_ID, 0), (TIMESTAMP, 0)), +) + +LIST_SHARDS_INPUT: StaticSchema = ( + 18, + n0, + _LSI, + {_sm: None}, + (_SN, _NT, _ESSI, _MR, _SCTt, _SFh, _SARN, _SI), + ( + (STREAM_NAME, 0), + (NEXT_TOKEN, 0), + (SHARD_ID, 0), + (LIST_SHARDS_INPUT_LIMIT, 0), + (TIMESTAMP, 0), + (SHARD_FILTER, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +LIST_SHARDS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSO, + {_smit: None}, + (_Sha, _NT), + ((SHARD_LIST, 0), (NEXT_TOKEN, 0)), +) + +LIST_SHARDS: StaticOperationSchema = ( + 23, + n0, + _LS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_SHARDS_INPUT, + LIST_SHARDS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + EXPIRED_NEXT_TOKEN_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +LIST_STREAM_CONSUMERS_INPUT_LIMIT: StaticSchema = (7, n0, _LSCIL, 0) + +LIST_STREAM_CONSUMERS_INPUT: StaticSchema = ( + 18, + n0, + _LSCI, + {_sm: None}, + (_SARN, _NT, _MR, _SCTt, _SI), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"}), _smi: None}), + (NEXT_TOKEN, 0), + (LIST_STREAM_CONSUMERS_INPUT_LIMIT, 0), + (TIMESTAMP, 0), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +LIST_STREAM_CONSUMERS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSCO, + {_smit: None}, + (_Co, _NT), + ((CONSUMER_LIST, 0), (NEXT_TOKEN, 0)), +) + +LIST_STREAM_CONSUMERS: StaticOperationSchema = ( + 23, + n0, + _LSC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_STREAM_CONSUMERS_INPUT, + LIST_STREAM_CONSUMERS_OUTPUT, + ( + EXPIRED_NEXT_TOKEN_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +LIST_STREAMS_INPUT_LIMIT: StaticSchema = (7, n0, _LSILi, 0) + +LIST_STREAMS_INPUT: StaticSchema = ( + 18, + n0, + _LSIi, + {_sm: None}, + (_L, _ESSN, _NT), + ((LIST_STREAMS_INPUT_LIMIT, 0), (STREAM_NAME, 0), (NEXT_TOKEN, 0)), +) + +STREAM_NAME_LIST: StaticSchema = (16, n0, _SNL, 0, (_me,), ((STREAM_NAME, 0),)) + +STREAM_SUMMARY: StaticSchema = ( + 18, + n0, + _SSt, + 0, + (_SN, _SARN, _SS, _SMD, _SCTt), + ( + (STREAM_NAME, 1), + (STREAM_ARN, 1), + (STREAM_STATUS, 1), + (STREAM_MODE_DETAILS, 0), + (TIMESTAMP, 0), + ), +) + +STREAM_SUMMARY_LIST: StaticSchema = (16, n0, _SSL, 0, (_me,), ((STREAM_SUMMARY, 0),)) + +LIST_STREAMS_OUTPUT: StaticSchema = ( + 18, + n0, + _LSOi, + {_smit: None}, + (_SNt, _HMSa, _NT, _SStr), + ( + (STREAM_NAME_LIST, 1), + (BOOLEAN_OBJECT, 1), + (NEXT_TOKEN, 0), + (STREAM_SUMMARY_LIST, 0), + ), +) + +LIST_STREAMS: StaticOperationSchema = ( + 23, + n0, + _LSi, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_STREAMS_INPUT, + LIST_STREAMS_OUTPUT, + ( + EXPIRED_NEXT_TOKEN_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + ), +) + +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sm: None}, + (_RARNe, _SI), + ( + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +TAG: StaticSchema = (18, n0, _Ta, 0, (_K, _V), ((TAG_KEY, 1), (TAG_VALUE, 0))) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_me,), ((TAG, 0),)) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_smit: None}, + (_T,), + ((TAG_LIST, 0),), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +LIST_TAGS_FOR_STREAM_INPUT_LIMIT: StaticSchema = (7, n0, _LTFSIL, 0) + +LIST_TAGS_FOR_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _LTFSI, + {_sm: None}, + (_SN, _ESTK, _L, _SARN, _SI), + ( + (STREAM_NAME, 0), + (TAG_KEY, 0), + (LIST_TAGS_FOR_STREAM_INPUT_LIMIT, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +LIST_TAGS_FOR_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFSO, + {_smit: None}, + (_T, _HMT), + ((TAG_LIST, 1), (BOOLEAN_OBJECT, 1)), +) + +LIST_TAGS_FOR_STREAM: StaticOperationSchema = ( + 23, + n0, + _LTFS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + LIST_TAGS_FOR_STREAM_INPUT, + LIST_TAGS_FOR_STREAM_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +MERGE_SHARDS_INPUT: StaticSchema = ( + 18, + n0, + _MSI, + {_sm: None}, + (_SN, _STM, _ASTM, _SARN, _SI), + ( + (STREAM_NAME, 0), + (SHARD_ID, 1), + (SHARD_ID, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +MERGE_SHARDS_OUTPUT: StaticSchema = (18, n0, _MSO, {_sSI: _sU, _smit: None}) + +MERGE_SHARDS: StaticOperationSchema = ( + 23, + n0, + _MS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + MERGE_SHARDS_INPUT, + MERGE_SHARDS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +PUT_RECORD_INPUT: StaticSchema = ( + 18, + n0, + _PRI, + {_sm: None}, + (_SN, _D, _PK, _EHKx, _SNFO, _SARN, _SI, _DR), + ( + (STREAM_NAME, 0), + (DATA, 1), + (PARTITION_KEY, 0), + (HASH_KEY, 0), + (SEQUENCE_NUMBER, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (BOOLEAN_OBJECT, 0), + ), +) + +PUT_RECORD_OUTPUT: StaticSchema = ( + 18, + n0, + _PRO, + {_smit: None}, + (_SIh, _SNe, _ET), + ((SHARD_ID, 1), (SEQUENCE_NUMBER, 1), (ENCRYPTION_TYPE, 0)), +) + +PUT_RECORD: StaticOperationSchema = ( + 23, + n0, + _PR, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "data"})})}, + PUT_RECORD_INPUT, + PUT_RECORD_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INTERNAL_FAILURE_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + KMS_ACCESS_DENIED_EXCEPTION, + KMS_DISABLED_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + KMS_NOT_FOUND_EXCEPTION, + KMS_OPT_IN_REQUIRED, + KMS_THROTTLING_EXCEPTION, + PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +PUT_RECORDS_REQUEST_ENTRY: StaticSchema = ( + 18, + n0, + _PRRE, + 0, + (_D, _EHKx, _PK), + ((DATA, 1), (HASH_KEY, 0), (PARTITION_KEY, 0)), +) + +PUT_RECORDS_REQUEST_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _PRREL, + 0, + (_me,), + ((PUT_RECORDS_REQUEST_ENTRY, 0),), +) + +PUT_RECORDS_INPUT: StaticSchema = ( + 18, + n0, + _PRIu, + {_sm: None}, + (_Re, _SN, _SARN, _SI, _DR), + ( + (PUT_RECORDS_REQUEST_ENTRY_LIST, 1), + (STREAM_NAME, 0), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (BOOLEAN_OBJECT, 0), + ), +) + +PUT_RECORDS_RESULT_ENTRY: StaticSchema = ( + 18, + n0, + _PRREu, + 0, + (_SNe, _SIh, _ECr, _EM), + ((SEQUENCE_NUMBER, 0), (SHARD_ID, 0), (ERROR_CODE, 0), (ERROR_MESSAGE, 0)), +) + +PUT_RECORDS_RESULT_ENTRY_LIST: StaticSchema = ( + 16, + n0, + _PRRELu, + 0, + (_me,), + ((PUT_RECORDS_RESULT_ENTRY, 0),), +) + +PUT_RECORDS_OUTPUT: StaticSchema = ( + 18, + n0, + _PROu, + {_smit: None}, + (_FRC, _Re, _ET), + ( + (POSITIVE_INTEGER_OBJECT, 0), + (PUT_RECORDS_RESULT_ENTRY_LIST, 1), + (ENCRYPTION_TYPE, 0), + ), +) + +PUT_RECORDS: StaticOperationSchema = ( + 23, + n0, + _PRu, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "data"})})}, + PUT_RECORDS_INPUT, + PUT_RECORDS_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INTERNAL_FAILURE_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + KMS_ACCESS_DENIED_EXCEPTION, + KMS_DISABLED_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + KMS_NOT_FOUND_EXCEPTION, + KMS_OPT_IN_REQUIRED, + KMS_THROTTLING_EXCEPTION, + PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +PUT_RESOURCE_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PRPI, + {_sm: None}, + (_RARNe, _SI, _P), + ( + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (POLICY, 1), + ), +) + +PUT_RESOURCE_POLICY_OUTPUT: StaticSchema = (18, n0, _PRPO, {_sSI: _sU, _smit: None}) + +PUT_RESOURCE_POLICY: StaticOperationSchema = ( + 23, + n0, + _PRP, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + PUT_RESOURCE_POLICY_INPUT, + PUT_RESOURCE_POLICY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +REGISTER_STREAM_CONSUMER_INPUT: StaticSchema = ( + 18, + n0, + _RSCI, + {_sm: None}, + (_SARN, _CNo, _SI, _T), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"}), _smi: None}), + (CONSUMER_NAME, 1), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (TAG_MAP, 0), + ), +) + +REGISTER_STREAM_CONSUMER_OUTPUT: StaticSchema = ( + 18, + n0, + _RSCO, + {_smit: None}, + (_C,), + ((CONSUMER, 1),), +) + +REGISTER_STREAM_CONSUMER: StaticOperationSchema = ( + 23, + n0, + _RSC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + REGISTER_STREAM_CONSUMER_INPUT, + REGISTER_STREAM_CONSUMER_OUTPUT, + ( + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_me,), ((TAG_KEY, 0),)) + +REMOVE_TAGS_FROM_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _RTFSI, + {_sm: None}, + (_SN, _TKa, _SARN, _SI), + ( + (STREAM_NAME, 0), + (TAG_KEY_LIST, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +REMOVE_TAGS_FROM_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _RTFSO, + {_sSI: _sU, _smit: None}, +) + +REMOVE_TAGS_FROM_STREAM: StaticOperationSchema = ( + 23, + n0, + _RTFS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + REMOVE_TAGS_FROM_STREAM_INPUT, + REMOVE_TAGS_FROM_STREAM_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +SPLIT_SHARD_INPUT: StaticSchema = ( + 18, + n0, + _SSI, + {_sm: None}, + (_SN, _STS, _NSHK, _SARN, _SI), + ( + (STREAM_NAME, 0), + (SHARD_ID, 1), + (HASH_KEY, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +SPLIT_SHARD_OUTPUT: StaticSchema = (18, n0, _SSO, {_sSI: _sU, _smit: None}) + +SPLIT_SHARD: StaticOperationSchema = ( + 23, + n0, + _SSp, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + SPLIT_SHARD_INPUT, + SPLIT_SHARD_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +START_STREAM_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _SSEI, + {_sm: None}, + (_SN, _ET, _KI, _SARN, _SI), + ( + (STREAM_NAME, 0), + (ENCRYPTION_TYPE, 1), + (KEY_ID, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +START_STREAM_ENCRYPTION_OUTPUT: StaticSchema = (18, n0, _SSEO, {_sSI: _sU, _smit: None}) + +START_STREAM_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _SSE, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + START_STREAM_ENCRYPTION_INPUT, + START_STREAM_ENCRYPTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + KMS_ACCESS_DENIED_EXCEPTION, + KMS_DISABLED_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + KMS_NOT_FOUND_EXCEPTION, + KMS_OPT_IN_REQUIRED, + KMS_THROTTLING_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +STOP_STREAM_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _SSEIt, + {_sm: None}, + (_SN, _ET, _KI, _SARN, _SI), + ( + (STREAM_NAME, 0), + (ENCRYPTION_TYPE, 1), + (KEY_ID, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +STOP_STREAM_ENCRYPTION_OUTPUT: StaticSchema = (18, n0, _SSEOt, {_sSI: _sU, _smit: None}) + +STOP_STREAM_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _SSEt, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + STOP_STREAM_ENCRYPTION_INPUT, + STOP_STREAM_ENCRYPTION_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +STARTING_POSITION: StaticSchema = ( + 18, + n0, + _SP, + 0, + (_Ty, _SNe, _Ti), + ((SHARD_ITERATOR_TYPE, 1), (SEQUENCE_NUMBER, 0), (TIMESTAMP, 0)), +) + +SUBSCRIBE_TO_SHARD_INPUT: StaticSchema = ( + 18, + n0, + _STSI, + {_sm: None}, + (_CARNo, _SI, _SIh, _SP, _DR), + ( + (CONSUMER_ARN, {_sP: MappingProxyType({"name": "ConsumerARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (SHARD_ID, 1), + (STARTING_POSITION, 1), + (BOOLEAN_OBJECT, 0), + ), +) + +SUBSCRIBE_TO_SHARD_EVENT: StaticSchema = ( + 18, + n0, + _STSE, + 0, + (_Re, _CSN, _MBL, _CShil), + ( + (RECORD_LIST, 1), + (SEQUENCE_NUMBER, 1), + (MILLIS_BEHIND_LATEST, 1), + (CHILD_SHARD_LIST, 0), + ), +) + +SUBSCRIBE_TO_SHARD_EVENT_STREAM: StaticSchema = ( + 19, + n0, + _STSES, + {_smith: None}, + (_STSE, _RNFE, _RIUE, _KMSDE, _KMSISE, _KMSADE, _KMSNFE, _KMSOIR, _KMSTE, _IFE), + ( + (SUBSCRIBE_TO_SHARD_EVENT, 0), + (RESOURCE_NOT_FOUND_EXCEPTION, 0), + (RESOURCE_IN_USE_EXCEPTION, 0), + (KMS_DISABLED_EXCEPTION, 0), + (KMS_INVALID_STATE_EXCEPTION, 0), + (KMS_ACCESS_DENIED_EXCEPTION, 0), + (KMS_NOT_FOUND_EXCEPTION, 0), + (KMS_OPT_IN_REQUIRED, 0), + (KMS_THROTTLING_EXCEPTION, 0), + (INTERNAL_FAILURE_EXCEPTION, 0), + ), +) + +SUBSCRIBE_TO_SHARD_OUTPUT: StaticSchema = ( + 18, + n0, + _STSO, + {_smit: None}, + (_ES,), + ((SUBSCRIBE_TO_SHARD_EVENT_STREAM, 1),), +) + +SUBSCRIBE_TO_SHARD: StaticOperationSchema = ( + 23, + n0, + _STSu, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "data"})})}, + SUBSCRIBE_TO_SHARD_INPUT, + SUBSCRIBE_TO_SHARD_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sm: None}, + (_T, _RARNe, _SI), + ( + (TAG_MAP, 1), + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _sU, _smit: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TR, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sm: None}, + (_TKa, _RARNe, _SI), + ( + (TAG_KEY_LIST, 1), + (RESOURCE_ARN, {_sP: MappingProxyType({"name": "ResourceARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _sU, _smit: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + ), +) + +MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT_STATUS: StaticSchema = ( + 14, + n0, + _MTBCIS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT: StaticSchema = ( + 18, + n0, + _MTBCI, + 0, + (_Sta,), + ((MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT_STATUS, 1),), +) + +UPDATE_ACCOUNT_SETTINGS_INPUT: StaticSchema = ( + 18, + n0, + _UASI, + {_sm: None}, + (_MTBC,), + ((MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT, 1),), +) + +UPDATE_ACCOUNT_SETTINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _UASO, + {_smit: None}, + (_MTBC,), + ((MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT, 0),), +) + +UPDATE_ACCOUNT_SETTINGS: StaticOperationSchema = ( + 23, + n0, + _UAS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_ACCOUNT_SETTINGS_INPUT, + UPDATE_ACCOUNT_SETTINGS_OUTPUT, + (INVALID_ARGUMENT_EXCEPTION, LIMIT_EXCEEDED_EXCEPTION, VALIDATION_EXCEPTION), +) + +S3_DESTINATION_UPDATE_INPUT: StaticSchema = ( + 18, + n0, + _SDUI, + 0, + (_DFIS,), + ((DATA_FRESHNESS_IN_SECONDS, 1),), +) + +S3_TABLES_DESTINATION_UPDATE_INPUT: StaticSchema = ( + 18, + n0, + _STDUI, + 0, + (_DFIS,), + ((DATA_FRESHNESS_IN_SECONDS, 1),), +) + +UPDATE_CHANNEL_INPUT: StaticSchema = ( + 18, + n0, + _UCI, + {_sm: None}, + (_CARN, _SDC, _STDC, _LC), + ( + (CHANNEL_ARN, {_sP: MappingProxyType({"name": "ChannelARN"}), _smi: None}), + (S3_DESTINATION_UPDATE_INPUT, 0), + (S3_TABLES_DESTINATION_UPDATE_INPUT, 0), + (CHANNEL_LOGGING_UPDATE_INPUT, 0), + ), +) + +UPDATE_CHANNEL_OUTPUT: StaticSchema = ( + 18, + n0, + _UCO, + {_smit: None}, + (_CD,), + ((CHANNEL_DESCRIPTION, 1),), +) + +UPDATE_CHANNEL: StaticOperationSchema = ( + 23, + n0, + _UC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_CHANNEL_INPUT, + UPDATE_CHANNEL_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_MAX_RECORD_SIZE_INPUT: StaticSchema = ( + 18, + n0, + _UMRSI, + {_sm: None}, + (_SARN, _SI, _MRSIKB), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (MAX_RECORD_SIZE_IN_KI_B, 1), + ), +) + +UPDATE_MAX_RECORD_SIZE_OUTPUT: StaticSchema = (18, n0, _UMRSO, {_sSI: _sU, _smit: None}) + +UPDATE_MAX_RECORD_SIZE: StaticOperationSchema = ( + 23, + n0, + _UMRS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_MAX_RECORD_SIZE_INPUT, + UPDATE_MAX_RECORD_SIZE_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +SCALING_TYPE: StaticSchema = (14, n0, _STc, 0, (_US,), ((-1, {_sV: _US}),)) + +UPDATE_SHARD_COUNT_INPUT: StaticSchema = ( + 18, + n0, + _USCI, + {_sm: None}, + (_SN, _TSC, _STc, _SARN, _SI), + ( + (STREAM_NAME, 0), + (POSITIVE_INTEGER_OBJECT, 1), + (SCALING_TYPE, 1), + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + ), +) + +UPDATE_SHARD_COUNT_OUTPUT: StaticSchema = ( + 18, + n0, + _USCO, + {_smit: None}, + (_SN, _CSCu, _TSC, _SARN), + ( + (STREAM_NAME, 0), + (POSITIVE_INTEGER_OBJECT, 0), + (POSITIVE_INTEGER_OBJECT, 0), + (STREAM_ARN, 0), + ), +) + +UPDATE_SHARD_COUNT: StaticOperationSchema = ( + 23, + n0, + _USC, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_SHARD_COUNT_INPUT, + UPDATE_SHARD_COUNT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_STREAM_MODE_INPUT: StaticSchema = ( + 18, + n0, + _USMI, + {_sm: None}, + (_SARN, _SI, _SMD, _WTMB), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (STREAM_MODE_DETAILS, 1), + (NATURAL_INTEGER_OBJECT, 0), + ), +) + +UPDATE_STREAM_MODE_OUTPUT: StaticSchema = (18, n0, _USMO, {_sSI: _sU, _smit: None}) + +UPDATE_STREAM_MODE: StaticOperationSchema = ( + 23, + n0, + _USM, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_STREAM_MODE_INPUT, + UPDATE_STREAM_MODE_OUTPUT, + ( + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_INPUT: StaticSchema = ( + 18, + n0, + _USRDSI, + {_sm: None}, + (_SARN, _SI, _RDS), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"}), _smi: None}), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (RECORD_DISTRIBUTION_STRATEGY, 1), + ), +) + +UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_OUTPUT: StaticSchema = ( + 18, + n0, + _USRDSO, + {_sSI: _sU, _smit: None}, +) + +UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY: StaticOperationSchema = ( + 23, + n0, + _USRDS, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_INPUT, + UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +UPDATE_STREAM_WARM_THROUGHPUT_INPUT: StaticSchema = ( + 18, + n0, + _USWTI, + {_sm: None}, + (_SARN, _SN, _SI, _WTMB), + ( + (STREAM_ARN, {_sP: MappingProxyType({"name": "StreamARN"})}), + (STREAM_NAME, 0), + (STREAM_ID, {_sP: MappingProxyType({"name": "StreamId"})}), + (NATURAL_INTEGER_OBJECT, 1), + ), +) + +UPDATE_STREAM_WARM_THROUGHPUT_OUTPUT: StaticSchema = ( + 18, + n0, + _USWTO, + {_smit: None}, + (_SARN, _SN, _WT), + ((STREAM_ARN, 0), (STREAM_NAME, 0), (WARM_THROUGHPUT_OBJECT, 0)), +) + +UPDATE_STREAM_WARM_THROUGHPUT: StaticOperationSchema = ( + 23, + n0, + _USWT, + {_sCP: MappingProxyType({"OperationType": MappingProxyType({"value": "control"})})}, + UPDATE_STREAM_WARM_THROUGHPUT_INPUT, + UPDATE_STREAM_WARM_THROUGHPUT_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INVALID_ARGUMENT_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + RESOURCE_IN_USE_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +KINESIS_20131202: StaticSchema = ( + 21, + n0, + _K_, + { + _a: MappingProxyType({"name": "kinesis"}), + _a_: MappingProxyType({"http": ("http/1.1", "h2"), "eventStreamHttp": ("h2",)}), + _aw: MappingProxyType( + { + "sdkId": "Kinesis", + "arnNamespace": "kinesis", + "cloudFormationName": "Kinesis", + "cloudTrailEventSource": "kinesis.amazonaws.com", + "endpointPrefix": "kinesis", + } + ), + _sN: MappingProxyType({"uri": "http://kinesis.amazonaws.com/doc/2013-12-02"}), + }, +) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/__init__.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/__init__.py new file mode 100644 index 00000000..f1241a05 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncKinesisClient + from .config import AsyncKinesisConfig + +__all__ = ["AsyncKinesisClient", "AsyncKinesisConfig"] + +_EXPORTS = {"AsyncKinesisClient": ".client", "AsyncKinesisConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/client.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/client.py new file mode 100644 index 00000000..7fbfce02 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/client.py @@ -0,0 +1,2067 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_core.aio.eventstream import AsyncOutputEventStream +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from ..models import ( + SubscribeToShardEventStream, + SubscribeToShardInput, + SubscribeToShardOutput, + _SubscribeToShardEventStreamDeserializer, +) +from .config import AsyncKinesisConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AddTagsToStreamInput, + AddTagsToStreamOutput, + CreateChannelInput, + CreateChannelOutput, + CreateStreamInput, + CreateStreamOutput, + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + DeleteChannelInput, + DeleteChannelOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteStreamInput, + DeleteStreamOutput, + DeregisterStreamConsumerInput, + DeregisterStreamConsumerOutput, + DescribeAccountSettingsInput, + DescribeAccountSettingsOutput, + DescribeChannelInput, + DescribeChannelOutput, + DescribeLimitsInput, + DescribeLimitsOutput, + DescribeStreamConsumerInput, + DescribeStreamConsumerOutput, + DescribeStreamInput, + DescribeStreamOutput, + DescribeStreamSummaryInput, + DescribeStreamSummaryOutput, + DisableEnhancedMonitoringInput, + DisableEnhancedMonitoringOutput, + EnableEnhancedMonitoringInput, + EnableEnhancedMonitoringOutput, + GetRecordsInput, + GetRecordsOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetShardIteratorInput, + GetShardIteratorOutput, + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + ListChannelsInput, + ListChannelsOutput, + ListShardsInput, + ListShardsOutput, + ListStreamConsumersInput, + ListStreamConsumersOutput, + ListStreamsInput, + ListStreamsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTagsForStreamInput, + ListTagsForStreamOutput, + MergeShardsInput, + MergeShardsOutput, + PutRecordInput, + PutRecordOutput, + PutRecordsInput, + PutRecordsOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + RegisterStreamConsumerInput, + RegisterStreamConsumerOutput, + RemoveTagsFromStreamInput, + RemoveTagsFromStreamOutput, + SplitShardInput, + SplitShardOutput, + StartStreamEncryptionInput, + StartStreamEncryptionOutput, + StopStreamEncryptionInput, + StopStreamEncryptionOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAccountSettingsInput, + UpdateAccountSettingsOutput, + UpdateChannelInput, + UpdateChannelOutput, + UpdateMaxRecordSizeInput, + UpdateMaxRecordSizeOutput, + UpdateShardCountInput, + UpdateShardCountOutput, + UpdateStreamModeInput, + UpdateStreamModeOutput, + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + UpdateStreamWarmThroughputInput, + UpdateStreamWarmThroughputOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncKinesisClient(AsyncClient[AsyncKinesisConfig]): + """ + Amazon Kinesis Data Streams is a managed service that scales elastically + for real-time processing of streaming big data. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def add_tags_to_stream( + self, input: AddTagsToStreamInput, plugins: list[Plugin] | None = None + ) -> AddTagsToStreamOutput: + """ + Adds or updates tags for the specified Kinesis data stream. You can + assign up to 50 tags to a data stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If tags have already been assigned to the stream, `AddTagsToStream` + overwrites any existing tags that correspond to the specified tag keys. + + AddTagsToStream has a limit of five transactions per second per account. + + Args: + input: + An instance of `AddTagsToStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToStreamOutput`. + """ + return await self._invoke(input, _models.ADD_TAGS_TO_STREAM, [], plugins) + + async def create_channel( + self, input: CreateChannelInput, plugins: list[Plugin] | None = None + ) -> CreateChannelOutput: + """ + Creates a channel that delivers records from a Kinesis data stream to a + destination. A channel reads records from the specified stream and + writes them to streaming tables on Apache Iceberg (Amazon S3 Tables) or + to a general purpose Amazon S3 bucket. + + You must specify either `S3DestinationConfiguration` or + `S3TablesDestinationConfiguration`, but not both. + + To use this operation, you must have permission to pass the specified + service execution IAM role to Amazon Kinesis Data Streams (the + `iam:PassRole` permission on that role). + + Creating a channel is an asynchronous operation. Upon receiving the + request, Amazon Kinesis Data Streams returns immediately with the + channel in the `CREATING` state. After provisioning is complete, Amazon + Kinesis Data Streams sets the state to `ACTIVE`. You can use + DescribeChannel to check the current state. + + This operation is only supported for data streams with the on-demand + capacity mode. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `CreateChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateChannelOutput`. + """ + return await self._invoke(input, _models.CREATE_CHANNEL, [], plugins) + + async def create_stream( + self, input: CreateStreamInput, plugins: list[Plugin] | None = None + ) -> CreateStreamOutput: + """ + Creates a Kinesis data stream. A stream captures and transports data + records that are continuously emitted from different data sources or + *producers*. Scale-out within a stream is explicitly supported by means + of shards, which are uniquely identified groups of data records in a + stream. + + You can create your data stream using either on-demand or provisioned + capacity mode. Data streams with an on-demand mode require no capacity + planning and automatically scale to handle gigabytes of write and read + throughput per minute. With the on-demand mode, Kinesis Data Streams + automatically manages the shards in order to provide the necessary + throughput. + + If you'd still like to proactively scale your on-demand data stream's + capacity, you can unlock the warm throughput feature for on-demand data + streams by enabling `MinimumThroughputBillingCommitment` for your + account. Once your account has `MinimumThroughputBillingCommitment` + enabled, you can specify the warm throughput in MiB per second that your + stream can support in writes. + + For the data streams with a provisioned mode, you must specify the + number of shards for the data stream. Each shard can support reads up to + five transactions per second, up to a maximum data read total of 2 MiB + per second. Each shard can support writes up to 1,000 records per + second, up to a maximum data write total of 1 MiB per second. If the + amount of data input increases or decreases, you can add or remove + shards. + + The stream name identifies the stream. The name is scoped to the Amazon + Web Services account used by the application. It is also scoped by + Amazon Web Services Region. That is, two streams in two different + accounts can have the same name, and two streams in the same account, + but in two different Regions, can have the same name. + + `CreateStream` is an asynchronous operation. Upon receiving a + `CreateStream` request, Kinesis Data Streams immediately returns and + sets the stream status to `CREATING`. After the stream is created, + Kinesis Data Streams sets the stream status to `ACTIVE`. You should + perform read and write operations only on an `ACTIVE` stream. + + You receive a `LimitExceededException` when making a `CreateStream` + request when you try to do one of the following: + + - Have more than five streams in the `CREATING` state at any point in + time. + + - Create more shards than are authorized for your account. + + For the default shard or on-demand throughput limits for an Amazon Web + Services account, see [Amazon Kinesis Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To increase this + limit, [contact Amazon Web Services + Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). + + You can use DescribeStreamSummary to check the stream status, which is + returned in `StreamStatus`. + + CreateStream has a limit of five transactions per second per account. + + You can add tags to the stream when making a `CreateStream` request by + setting the `Tags` parameter. If you pass the `Tags` parameter, in + addition to having the `kinesis:CreateStream` permission, you must also + have the `kinesis:AddTagsToStream` permission for the stream that will + be created. The `kinesis:TagResource` permission won't work to tag + streams on creation. Tags will take effect from the `CREATING` status of + the stream, but you can't make any updates to the tags until the stream + is in `ACTIVE` state. + + Args: + input: + An instance of `CreateStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamOutput`. + """ + return await self._invoke(input, _models.CREATE_STREAM, [], plugins) + + async def decrease_stream_retention_period( + self, + input: DecreaseStreamRetentionPeriodInput, + plugins: list[Plugin] | None = None, + ) -> DecreaseStreamRetentionPeriodOutput: + """ + Decreases the Kinesis data stream's retention period, which is the + length of time data records are accessible after they are added to the + stream. The minimum value of a stream's retention period is 24 hours. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + This operation may result in lost data. For example, if the stream's + retention period is 48 hours and is decreased to 24 hours, any data + already in the stream that is older than 24 hours is inaccessible. + + Args: + input: + An instance of `DecreaseStreamRetentionPeriodInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecreaseStreamRetentionPeriodOutput`. + """ + return await self._invoke( + input, _models.DECREASE_STREAM_RETENTION_PERIOD, [], plugins + ) + + async def delete_channel( + self, input: DeleteChannelInput, plugins: list[Plugin] | None = None + ) -> DeleteChannelOutput: + """ + Deletes the specified channel. Deleting a channel stops delivery from + the source stream to the destination. Data already delivered to the + destination is not deleted. + + A stream cannot be deleted while it has active channels. Use + ListChannels with a stream filter to find the channels attached to a + stream before deleting it. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `DeleteChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteChannelOutput`. + """ + return await self._invoke(input, _models.DELETE_CHANNEL, [], plugins) + + async def delete_resource_policy( + self, input: DeleteResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteResourcePolicyOutput: + """ + Delete a policy for the specified data stream or consumer. Request + patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + Args: + input: + An instance of `DeleteResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResourcePolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + + async def delete_stream( + self, input: DeleteStreamInput, plugins: list[Plugin] | None = None + ) -> DeleteStreamOutput: + """ + Deletes a Kinesis data stream and all its shards and data. You must shut + down any applications that are operating on the stream before you delete + the stream. If an application attempts to operate on a deleted stream, + it receives the exception `ResourceNotFoundException`. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If the stream is in the `ACTIVE` state, you can delete it. After a + `DeleteStream` request, the specified stream is in the `DELETING` state + until Kinesis Data Streams completes the deletion. + + **Note:** Kinesis Data Streams might continue to accept data read and + write operations, such as PutRecord, PutRecords, and GetRecords, on a + stream in the `DELETING` state until the stream deletion is complete. + + When you delete a stream, any shards in that stream are also deleted, + and any tags are dissociated from the stream. + + You can use the DescribeStreamSummary operation to check the state of + the stream, which is returned in `StreamStatus`. + + DeleteStream has a limit of five transactions per second per account. + + Args: + input: + An instance of `DeleteStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStreamOutput`. + """ + return await self._invoke(input, _models.DELETE_STREAM, [], plugins) + + async def deregister_stream_consumer( + self, input: DeregisterStreamConsumerInput, plugins: list[Plugin] | None = None + ) -> DeregisterStreamConsumerOutput: + """ + To deregister a consumer, provide its ARN. Alternatively, you can + provide the ARN of the data stream and the name you gave the consumer + when you registered it. You may also provide all three parameters, as + long as they don't conflict with each other. If you don't know the + name or ARN of the consumer that you want to deregister, you can use the + ListStreamConsumers operation to get a list of the descriptions of all + the consumers that are currently registered with a given data stream. + The description of a consumer contains its name and ARN. + + This operation has a limit of five transactions per second per stream. + + Args: + input: + An instance of `DeregisterStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterStreamConsumerOutput`. + """ + return await self._invoke( + input, _models.DEREGISTER_STREAM_CONSUMER, [], plugins + ) + + async def describe_account_settings( + self, input: DescribeAccountSettingsInput, plugins: list[Plugin] | None = None + ) -> DescribeAccountSettingsOutput: + """ + Describes the account-level settings for Amazon Kinesis Data Streams. + This operation returns information about the minimum throughput billing + commitments and other account-level configurations. + + This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + Args: + input: + An instance of `DescribeAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountSettingsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_ACCOUNT_SETTINGS, [], plugins) + + async def describe_channel( + self, input: DescribeChannelInput, plugins: list[Plugin] | None = None + ) -> DescribeChannelOutput: + """ + Describes the specified channel, including its configuration and current + status. + + Use this operation to verify that a channel reached the `ACTIVE` state + after creation, or to diagnose a channel in the `FAILED` state by + reading the `ChannelStatusReason`. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `DescribeChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChannelOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CHANNEL, [], plugins) + + async def describe_limits( + self, input: DescribeLimitsInput, plugins: list[Plugin] | None = None + ) -> DescribeLimitsOutput: + """ + Describes the shard limits and usage for the account. + + If you update your account limits, the old limits might be returned for + a few minutes. + + This operation has a limit of one transaction per second per account. + + Args: + input: + An instance of `DescribeLimitsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLimitsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_LIMITS, [], plugins) + + async def describe_stream( + self, input: DescribeStreamInput, plugins: list[Plugin] | None = None + ) -> DescribeStreamOutput: + """ + Describes the specified Kinesis data stream. + + Note: + This API has been revised. It's highly recommended that you use the + DescribeStreamSummary API to get a summarized description of the + specified Kinesis data stream and the ListShards API to list the shards + in a specified data stream and obtain information about each shard. + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + The information returned includes the stream name, Amazon Resource Name + (ARN), creation time, enhanced metric configuration, and shard map. The + shard map is an array of shard objects. For each shard object, there is + the hash key and sequence number ranges that the shard spans, and the + IDs of any earlier shards that played in a role in creating the shard. + Every record ingested in the stream is identified by a sequence number, + which is assigned when the record is put into the stream. + + You can limit the number of shards returned by each call. For more + information, see [Retrieving Shards from a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-retrieve-shards.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + There are no guarantees about the chronological order shards returned. + To process shards in chronological order, use the ID of the parent shard + to track the lineage to the oldest shard. + + This operation has a limit of 10 transactions per second per account. + + Args: + input: + An instance of `DescribeStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STREAM, [], plugins) + + async def describe_stream_consumer( + self, input: DescribeStreamConsumerInput, plugins: list[Plugin] | None = None + ) -> DescribeStreamConsumerOutput: + """ + To get the description of a registered consumer, provide the ARN of the + consumer. Alternatively, you can provide the ARN of the data stream and + the name you gave the consumer when you registered it. You may also + provide all three parameters, as long as they don't conflict with each + other. If you don't know the name or ARN of the consumer that you want + to describe, you can use the ListStreamConsumers operation to get a list + of the descriptions of all the consumers that are currently registered + with a given data stream. + + This operation has a limit of 20 transactions per second per stream. + + Note: + When making a cross-account call with `DescribeStreamConsumer`, make + sure to provide the ARN of the consumer. + + Args: + input: + An instance of `DescribeStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamConsumerOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STREAM_CONSUMER, [], plugins) + + async def describe_stream_summary( + self, input: DescribeStreamSummaryInput, plugins: list[Plugin] | None = None + ) -> DescribeStreamSummaryOutput: + """ + Provides a summarized description of the specified Kinesis data stream + without the shard list. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + The information returned includes the stream name, Amazon Resource Name + (ARN), status, record retention period, approximate creation time, + monitoring, encryption details, and open shard count. + + DescribeStreamSummary has a limit of 20 transactions per second per + account. + + Args: + input: + An instance of `DescribeStreamSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamSummaryOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_STREAM_SUMMARY, [], plugins) + + async def disable_enhanced_monitoring( + self, input: DisableEnhancedMonitoringInput, plugins: list[Plugin] | None = None + ) -> DisableEnhancedMonitoringOutput: + """ + Disables enhanced monitoring. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `DisableEnhancedMonitoringInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableEnhancedMonitoringOutput`. + """ + return await self._invoke( + input, _models.DISABLE_ENHANCED_MONITORING, [], plugins + ) + + async def enable_enhanced_monitoring( + self, input: EnableEnhancedMonitoringInput, plugins: list[Plugin] | None = None + ) -> EnableEnhancedMonitoringOutput: + """ + Enables enhanced Kinesis data stream monitoring for shard-level metrics. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `EnableEnhancedMonitoringInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableEnhancedMonitoringOutput`. + """ + return await self._invoke( + input, _models.ENABLE_ENHANCED_MONITORING, [], plugins + ) + + async def get_records( + self, input: GetRecordsInput, plugins: list[Plugin] | None = None + ) -> GetRecordsOutput: + """ + Gets data records from a Kinesis data stream's shard. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Specify a shard iterator using the `ShardIterator` parameter. The shard + iterator specifies the position in the shard from which you want to + start reading data records sequentially. If there are no records + available in the portion of the shard that the iterator points to, + GetRecords returns an empty list. It might take multiple calls to get to + a portion of the shard that contains records. + + You can scale by provisioning multiple shards per stream while + considering service limits (for more information, see [Amazon Kinesis + Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*). Your application + should have one thread per shard, each reading continuously from its + stream. To read from a stream continually, call GetRecords in a loop. + Use GetShardIterator to get the shard iterator to specify in the first + GetRecords call. GetRecords returns a new shard iterator in + `NextShardIterator`. Specify the shard iterator returned in + `NextShardIterator` in subsequent calls to GetRecords. If the shard has + been closed, the shard iterator can't return more data and GetRecords + returns `null` in `NextShardIterator`. You can terminate the loop when + the shard is closed, or when the shard iterator reaches the record with + the sequence number or other attribute that marks it as the last record + to process. + + Each data record can be up to 1 MiB in size by default. Amazon Kinesis + Data Streams supports large records up to 10 MiB in size, but the + average throughput for your stream cannot exceed 1 MiB per second. For + more information about how large records are handled, see [Large + records](https://docs.aws.amazon.com/streams/latest/dev/large-records.html). + Each shard can read up to 2 MiB per second. You can ensure that your + calls don't exceed the maximum supported size or throughput by using + the `Limit` parameter to specify the maximum number of records that + GetRecords can return. Consider your average record size when + determining this limit. The maximum number of records that can be + returned per call is 10,000. + + The size of the data returned by GetRecords varies depending on the + utilization of the shard. It is recommended that consumer applications + retrieve records via the `GetRecords` command using the 5 TPS limit to + remain caught up. Retrieving records less frequently can lead to + consumer applications falling behind. The maximum size of data that + GetRecords can return is 10 MiB. If a call returns this amount of data, + subsequent calls made within the next 5 seconds throw + `ProvisionedThroughputExceededException`. If there is insufficient + provisioned throughput on the stream, subsequent calls made within the + next 1 second throw `ProvisionedThroughputExceededException`. GetRecords + doesn't return any data when it throws an exception. For this reason, + we recommend that you wait 1 second between calls to GetRecords. + However, it's possible that the application will get exceptions for + longer than 1 second. + + To detect whether the application is falling behind in processing, you + can use the `MillisBehindLatest` response attribute. You can also + monitor the stream using CloudWatch metrics and other mechanisms (see + [Monitoring](https://docs.aws.amazon.com/kinesis/latest/dev/monitoring.html) + in the *Amazon Kinesis Data Streams Developer Guide*). + + Each Amazon Kinesis record includes a value, + `ApproximateArrivalTimestamp`, that is set when a stream successfully + receives and stores a record. This is commonly referred to as a + server-side time stamp, whereas a client-side time stamp is set when a + data producer creates or sends the record to a stream (a data producer + is any data source putting data records into a stream, for example with + PutRecords). The time stamp has millisecond precision. There are no + guarantees about the time stamp accuracy, or that the time stamp is + always increasing. For example, records in a shard or across a stream + might have time stamps that are out of order. + + This operation has a limit of five transactions per second per shard. + + Args: + input: + An instance of `GetRecordsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRecordsOutput`. + """ + return await self._invoke(input, _models.GET_RECORDS, [], plugins) + + async def get_resource_policy( + self, input: GetResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> GetResourcePolicyOutput: + """ + Returns a policy attached to the specified data stream or consumer. + Request patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + Args: + input: + An instance of `GetResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResourcePolicyOutput`. + """ + return await self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + + async def get_shard_iterator( + self, input: GetShardIteratorInput, plugins: list[Plugin] | None = None + ) -> GetShardIteratorOutput: + """ + Gets an Amazon Kinesis shard iterator. A shard iterator expires 5 + minutes after it is returned to the requester. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + A shard iterator specifies the shard position from which to start + reading data records sequentially. The position is specified using the + sequence number of a data record in a shard. A sequence number is the + identifier associated with every record ingested in the stream, and is + assigned when a record is put into the stream. Each stream has one or + more shards. + + You must specify the shard iterator type. For example, you can set the + `ShardIteratorType` parameter to read exactly from the position denoted + by a specific sequence number by using the `AT_SEQUENCE_NUMBER` shard + iterator type. Alternatively, the parameter can read right after the + sequence number by using the `AFTER_SEQUENCE_NUMBER` shard iterator + type, using sequence numbers returned by earlier calls to PutRecord, + PutRecords, GetRecords, or DescribeStream. In the request, you can + specify the shard iterator type `AT_TIMESTAMP` to read records from an + arbitrary point in time, `TRIM_HORIZON` to cause `ShardIterator` to + point to the last untrimmed record in the shard in the system (the + oldest data record in the shard), or `LATEST` so that you always read + the most recent data in the shard. + + When you read repeatedly from a stream, use a GetShardIterator request + to get the first shard iterator for use in your first GetRecords request + and for subsequent reads use the shard iterator returned by the + GetRecords request in `NextShardIterator`. A new shard iterator is + returned by every GetRecords request in `NextShardIterator`, which you + use in the `ShardIterator` parameter of the next GetRecords request. + + If a GetShardIterator request is made too often, you receive a + `ProvisionedThroughputExceededException`. For more information about + throughput limits, see GetRecords, and [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + If the shard is closed, GetShardIterator returns a valid iterator for + the last sequence number of the shard. A shard can be closed as a result + of using SplitShard or MergeShards. + + GetShardIterator has a limit of five transactions per second per account + per open shard. + + Args: + input: + An instance of `GetShardIteratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetShardIteratorOutput`. + """ + return await self._invoke(input, _models.GET_SHARD_ITERATOR, [], plugins) + + async def increase_stream_retention_period( + self, + input: IncreaseStreamRetentionPeriodInput, + plugins: list[Plugin] | None = None, + ) -> IncreaseStreamRetentionPeriodOutput: + """ + Increases the Kinesis data stream's retention period, which is the + length of time data records are accessible after they are added to the + stream. The maximum value of a stream's retention period is 8760 hours + (365 days). + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If you choose a longer stream retention period, this operation increases + the time period during which records that have not yet expired are + accessible. However, it does not make previous, expired data (older than + the stream's previous retention period) accessible after the operation + has been called. For example, if a stream's retention period is set to + 24 hours and is increased to 168 hours, any data that is older than 24 + hours remains inaccessible to consumer applications. + + Args: + input: + An instance of `IncreaseStreamRetentionPeriodInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `IncreaseStreamRetentionPeriodOutput`. + """ + return await self._invoke( + input, _models.INCREASE_STREAM_RETENTION_PERIOD, [], plugins + ) + + async def list_channels( + self, input: ListChannelsInput, plugins: list[Plugin] | None = None + ) -> ListChannelsOutput: + """ + Lists the channels in your account. You can filter the results by source + stream. The results are paginated. Use the `NextToken` value returned in + the response to retrieve additional results. + + Use this operation to find channels before deleting a stream, or to + audit the channels configured in an Amazon Web Services Region. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `ListChannelsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListChannelsOutput`. + """ + return await self._invoke(input, _models.LIST_CHANNELS, [], plugins) + + async def list_shards( + self, input: ListShardsInput, plugins: list[Plugin] | None = None + ) -> ListShardsOutput: + """ + Lists the shards in a stream and provides information about each shard. + This operation has a limit of 1000 transactions per second per data + stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + This action does not list expired shards. For information about expired + shards, see [Data Routing, Data Persistence, and Shard State after a + Reshard](https://docs.aws.amazon.com/streams/latest/dev/kinesis-using-sdk-java-after-resharding.html#kinesis-using-sdk-java-resharding-data-routing). + + Warning: + This API is a new operation that is used by the Amazon Kinesis Client + Library (KCL). If you have a fine-grained IAM policy that only allows + specific operations, you must update your policy to allow calls to this + API. For more information, see [Controlling Access to Amazon Kinesis + Data Streams Resources Using + IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). + + Args: + input: + An instance of `ListShardsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListShardsOutput`. + """ + return await self._invoke(input, _models.LIST_SHARDS, [], plugins) + + async def list_stream_consumers( + self, input: ListStreamConsumersInput, plugins: list[Plugin] | None = None + ) -> ListStreamConsumersOutput: + """ + Lists the consumers registered to receive data from a stream using + enhanced fan-out, and provides information about each consumer. + + This operation has a limit of 5 transactions per second per stream. + + Args: + input: + An instance of `ListStreamConsumersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamConsumersOutput`. + """ + return await self._invoke(input, _models.LIST_STREAM_CONSUMERS, [], plugins) + + async def list_streams( + self, input: ListStreamsInput, plugins: list[Plugin] | None = None + ) -> ListStreamsOutput: + """ + Lists your Kinesis data streams. + + The number of streams may be too large to return from a single call to + `ListStreams`. You can limit the number of returned streams using the + `Limit` parameter. If you do not specify a value for the `Limit` + parameter, Kinesis Data Streams uses the default limit, which is + currently 100. + + You can detect if there are more streams available to list by using the + `HasMoreStreams` flag from the returned output. If there are more + streams available, you can request more streams by using the name of the + last stream returned by the `ListStreams` request in the + `ExclusiveStartStreamName` parameter in a subsequent request to + `ListStreams`. The group of stream names returned by the subsequent + request is then added to the list. You can continue this process until + all the stream names have been collected in the list. + + ListStreams has a limit of five transactions per second per account. + + Args: + input: + An instance of `ListStreamsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamsOutput`. + """ + return await self._invoke(input, _models.LIST_STREAMS, [], plugins) + + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List all tags added to the specified Kinesis 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. + + For more information about tagging Kinesis resources, see [Tag your + Amazon Kinesis Data Streams + resources](https://docs.aws.amazon.com/streams/latest/dev/tagging.html). + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + async def list_tags_for_stream( + self, input: ListTagsForStreamInput, plugins: list[Plugin] | None = None + ) -> ListTagsForStreamOutput: + """ + Lists the tags for the specified Kinesis data stream. This operation has + a limit of five transactions per second per account. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `ListTagsForStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForStreamOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_STREAM, [], plugins) + + async def merge_shards( + self, input: MergeShardsInput, plugins: list[Plugin] | None = None + ) -> MergeShardsOutput: + """ + Merges two adjacent shards in a Kinesis data stream and combines them + into a single shard to reduce the stream's capacity to ingest and + transport data. This API is only supported for the data streams with the + provisioned capacity mode. Two shards are considered adjacent if the + union of the hash key ranges for the two shards form a contiguous set + with no gaps. For example, if you have two shards, one with a hash key + range of 276...381 and the other with a hash key range of 382...454, + then you could merge these two shards into a single shard that would + have a hash key range of 276...454. After the merge, the single child + shard receives data for all hash key values covered by the two parent + shards. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + `MergeShards` is called when there is a need to reduce the overall + capacity of a stream because of excess capacity that is not being used. + You must specify the shard to be merged and the adjacent shard for a + stream. For more information about merging shards, see [Merge Two + Shards](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-merge.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + If the stream is in the `ACTIVE` state, you can call `MergeShards`. If a + stream is in the `CREATING`, `UPDATING`, or `DELETING` state, + `MergeShards` returns a `ResourceInUseException`. If the specified + stream does not exist, `MergeShards` returns a + `ResourceNotFoundException`. + + You can use DescribeStreamSummary to check the state of the stream, + which is returned in `StreamStatus`. + + `MergeShards` is an asynchronous operation. Upon receiving a + `MergeShards` request, Amazon Kinesis Data Streams immediately returns a + response and sets the `StreamStatus` to `UPDATING`. After the operation + is completed, Kinesis Data Streams sets the `StreamStatus` to `ACTIVE`. + Read and write operations continue to work while the stream is in the + `UPDATING` state. + + You use DescribeStreamSummary and the ListShards APIs to determine the + shard IDs that are specified in the `MergeShards` request. + + If you try to operate on too many streams in parallel using + CreateStream, DeleteStream, `MergeShards`, or SplitShard, you receive a + `LimitExceededException`. + + `MergeShards` has a limit of five transactions per second per account. + + Args: + input: + An instance of `MergeShardsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MergeShardsOutput`. + """ + return await self._invoke(input, _models.MERGE_SHARDS, [], plugins) + + async def put_record( + self, input: PutRecordInput, plugins: list[Plugin] | None = None + ) -> PutRecordOutput: + """ + Writes a single data record into an Amazon Kinesis data stream. Call + `PutRecord` to send data into the stream for real-time ingestion and + subsequent processing, one record at a time. Each shard can support + writes up to 1,000 records per second, up to a maximum data write total + of 10 MiB per second. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + You must specify the name of the stream that captures, stores, and + transports the data; a partition key; and the data blob itself. + + The data blob can be any type of data; for example, a segment from a log + file, geographic/location data, website clickstream data, and so on. + + The partition key is used by Kinesis Data Streams to distribute data + across shards. Kinesis Data Streams segregates the data records that + belong to a stream into multiple shards, using the partition key + associated with each data record to determine the shard to which a given + data record belongs. + + Partition keys are Unicode strings, with a maximum length limit of 256 + characters for each key. An MD5 hash function is used to map partition + keys to 128-bit integer values and to map associated data records to + shards using the hash key ranges of the shards. You can override hashing + the partition key to determine the shard by explicitly specifying a hash + value using the `ExplicitHashKey` parameter. For more information, see + [Adding Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + `PutRecord` returns the shard ID of where the data record was placed and + the sequence number that was assigned to the data record. + + Sequence numbers increase over time and are specific to a shard within a + stream, not across all shards within a stream. To guarantee strictly + increasing ordering, write serially to a shard and use the + `SequenceNumberForOrdering` parameter. For more information, see [Adding + Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Warning: + After you write a record to a stream, you cannot modify that record or + its order within the stream. + + If a `PutRecord` request cannot be processed because of insufficient + provisioned throughput on the shard involved in the request, `PutRecord` + throws `ProvisionedThroughputExceededException`. + + By default, data records are accessible for 24 hours from the time that + they are added to a stream. You can use IncreaseStreamRetentionPeriod or + DecreaseStreamRetentionPeriod to modify this retention period. + + Args: + input: + An instance of `PutRecordInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRecordOutput`. + """ + return await self._invoke(input, _models.PUT_RECORD, [], plugins) + + async def put_records( + self, input: PutRecordsInput, plugins: list[Plugin] | None = None + ) -> PutRecordsOutput: + """ + Writes multiple data records into a Kinesis data stream in a single call + (also referred to as a `PutRecords` request). Use this operation to send + data into the stream for data ingestion and processing. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Each `PutRecords` request can support up to 500 records. Each record in + the request can be as large as 10 MiB, up to a limit of 10 MiB for the + entire request, including partition keys. Each shard can support writes + up to 1,000 records per second, up to a maximum data write total of 1 MB + per second. + + You must specify the name of the stream that captures, stores, and + transports the data; and an array of request `Records`, with each record + in the array requiring a partition key and data blob. The record size + limit applies to the total size of the partition key and data blob. + + The data blob can be any type of data; for example, a segment from a log + file, geographic/location data, website clickstream data, and so on. + + The partition key is used by Kinesis Data Streams as input to a hash + function that maps the partition key and associated data to a specific + shard. An MD5 hash function is used to map partition keys to 128-bit + integer values and to map associated data records to shards. As a result + of this hashing mechanism, all data records with the same partition key + map to the same shard within the stream. For more information, see + [Adding Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Each record in the `Records` array may include an optional parameter, + `ExplicitHashKey`, which overrides the partition key to shard mapping. + This parameter allows a data producer to determine explicitly the shard + where the record is stored. For more information, see [Adding Multiple + Records with + PutRecords](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-putrecords) + in the *Amazon Kinesis Data Streams Developer Guide*. + + The `PutRecords` response includes an array of response `Records`. Each + record in the response array directly correlates with a record in the + request array using natural ordering, from the top to the bottom of the + request and response. The response `Records` array always includes the + same number of records as the request array. + + The response `Records` array includes both successfully and + unsuccessfully processed records. Kinesis Data Streams attempts to + process all records in each `PutRecords` request. A single record + failure does not stop the processing of subsequent records. As a result, + PutRecords doesn't guarantee the ordering of records. If you need to + read records in the same order they are written to the stream, use + PutRecord instead of `PutRecords`, and write to the same shard. + + A successfully processed record includes `ShardId` and `SequenceNumber` + values. The `ShardId` parameter identifies the shard in the stream where + the record is stored. The `SequenceNumber` parameter is an identifier + assigned to the put record, unique to all records in the stream. + + An unsuccessfully processed record includes `ErrorCode` and + `ErrorMessage` values. `ErrorCode` reflects the type of error and can be + one of the following values: `ProvisionedThroughputExceededException` or + `InternalFailure`. `ErrorMessage` provides more detailed information + about the `ProvisionedThroughputExceededException` exception including + the account ID, stream name, and shard ID of the record that was + throttled. For more information about partially successful responses, + see [Adding Multiple Records with + PutRecords](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-add-data-to-stream.html#kinesis-using-sdk-java-putrecords) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Warning: + After you write a record to a stream, you cannot modify that record or + its order within the stream. + + By default, data records are accessible for 24 hours from the time that + they are added to a stream. You can use IncreaseStreamRetentionPeriod or + DecreaseStreamRetentionPeriod to modify this retention period. + + Args: + input: + An instance of `PutRecordsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRecordsOutput`. + """ + return await self._invoke(input, _models.PUT_RECORDS, [], plugins) + + async def put_resource_policy( + self, input: PutResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> PutResourcePolicyOutput: + """ + Attaches a resource-based policy to a data stream or registered + consumer. If you are using an identity other than the root user of the + Amazon Web Services account that owns the resource, the calling identity + must have the `PutResourcePolicy` permissions on the specified Kinesis + Data Streams resource and belong to the owner's account in order to use + this operation. If you don't have `PutResourcePolicy` permissions, + Amazon Kinesis Data Streams returns a `403 Access Denied error`. If you + receive a `ResourceNotFoundException`, check to see if you passed a + valid stream or consumer resource. + + Request patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + For more information, see [Controlling Access to Amazon Kinesis Data + Streams Resources Using + IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). + + Args: + input: + An instance of `PutResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutResourcePolicyOutput`. + """ + return await self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + + async def register_stream_consumer( + self, input: RegisterStreamConsumerInput, plugins: list[Plugin] | None = None + ) -> RegisterStreamConsumerOutput: + """ + Registers a consumer with a Kinesis data stream. When you use this + operation, the consumer you register can then call SubscribeToShard to + receive data from the stream using enhanced fan-out, at a rate of up to + 2 MiB per second for every shard you subscribe to. This rate is + unaffected by the total number of consumers that read from the same + stream. + + You can add tags to the registered consumer when making a + `RegisterStreamConsumer` request by setting the `Tags` parameter. If you + pass the `Tags` parameter, in addition to having the + `kinesis:RegisterStreamConsumer` permission, you must also have the + `kinesis:TagResource` permission for the consumer that will be + registered. Tags will take effect from the `CREATING` status of the + consumer. + + With On-demand Advantage streams, you can register up to 50 consumers + per stream to use Enhanced Fan-out. With On-demand Standard and + Provisioned streams, you can register up to 20 consumers per stream to + use Enhanced Fan-out. A given consumer can only be registered with one + stream at a time. + + For an example of how to use this operation, see [Enhanced Fan-Out Using + the Kinesis Data Streams + API](https://docs.aws.amazon.com/streams/latest/dev/building-enhanced-consumers-api.html). + + The use of this operation has a limit of five transactions per second + per account. Also, only 5 consumers can be created simultaneously. In + other words, you cannot have more than 5 consumers in a `CREATING` + status at the same time. Registering a 6th consumer while there are 5 in + a `CREATING` status results in a `LimitExceededException`. + + Args: + input: + An instance of `RegisterStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterStreamConsumerOutput`. + """ + return await self._invoke(input, _models.REGISTER_STREAM_CONSUMER, [], plugins) + + async def remove_tags_from_stream( + self, input: RemoveTagsFromStreamInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromStreamOutput: + """ + Removes tags from the specified Kinesis data stream. Removed tags are + deleted and cannot be recovered after this operation successfully + completes. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If you specify a tag that does not exist, it is ignored. + + RemoveTagsFromStream has a limit of five transactions per second per + account. + + Args: + input: + An instance of `RemoveTagsFromStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromStreamOutput`. + """ + return await self._invoke(input, _models.REMOVE_TAGS_FROM_STREAM, [], plugins) + + async def split_shard( + self, input: SplitShardInput, plugins: list[Plugin] | None = None + ) -> SplitShardOutput: + """ + Splits a shard into two new shards in the Kinesis data stream, to + increase the stream's capacity to ingest and transport data. + `SplitShard` is called when there is a need to increase the overall + capacity of a stream because of an expected increase in the volume of + data records being ingested. This API is only supported for the data + streams with the provisioned capacity mode. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + You can also use `SplitShard` when a shard appears to be approaching its + maximum utilization; for example, the producers sending data into the + specific shard are suddenly sending more than previously anticipated. + You can also call `SplitShard` to increase stream capacity, so that more + Kinesis Data Streams applications can simultaneously read data from the + stream for real-time processing. + + You must specify the shard to be split and the new hash key, which is + the position in the shard where the shard gets split in two. In many + cases, the new hash key might be the average of the beginning and ending + hash key, but it can be any hash key value in the range being mapped + into the shard. For more information, see [Split a + Shard](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-split.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + You can use DescribeStreamSummary and the ListShards APIs to determine + the shard ID and hash key values for the `ShardToSplit` and + `NewStartingHashKey` parameters that are specified in the `SplitShard` + request. + + `SplitShard` is an asynchronous operation. Upon receiving a `SplitShard` + request, Kinesis Data Streams immediately returns a response and sets + the stream status to `UPDATING`. After the operation is completed, + Kinesis Data Streams sets the stream status to `ACTIVE`. Read and write + operations continue to work while the stream is in the `UPDATING` state. + + You can use DescribeStreamSummary to check the status of the stream, + which is returned in `StreamStatus`. If the stream is in the `ACTIVE` + state, you can call `SplitShard`. + + If the specified stream does not exist, DescribeStreamSummary returns a + `ResourceNotFoundException`. If you try to create more shards than are + authorized for your account, you receive a `LimitExceededException`. + + For the default shard limit for an Amazon Web Services account, see + [Kinesis Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To increase this + limit, [contact Amazon Web Services + Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). + + If you try to operate on too many streams simultaneously using + CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive + a `LimitExceededException`. + + `SplitShard` has a limit of five transactions per second per account. + + Args: + input: + An instance of `SplitShardInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SplitShardOutput`. + """ + return await self._invoke(input, _models.SPLIT_SHARD, [], plugins) + + async def start_stream_encryption( + self, input: StartStreamEncryptionInput, plugins: list[Plugin] | None = None + ) -> StartStreamEncryptionOutput: + """ + Enables or updates server-side encryption using an Amazon Web Services + KMS key for a specified stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Starting encryption is an asynchronous operation. Upon receiving the + request, Kinesis Data Streams returns immediately and sets the status of + the stream to `UPDATING`. After the update is complete, Kinesis Data + Streams sets the status of the stream back to `ACTIVE`. Updating or + applying encryption normally takes a few seconds to complete, but it can + take minutes. You can continue to read and write data to your stream + while its status is `UPDATING`. Once the status of the stream is + `ACTIVE`, encryption begins for records written to the stream. + + API Limits: You can successfully apply a new Amazon Web Services KMS key + for server-side encryption 25 times in a rolling 24-hour period. + + Note: It can take up to 5 seconds after the stream is in an `ACTIVE` + status before all records written to the stream are encrypted. After you + enable encryption, you can verify that encryption is applied by + inspecting the API response from `PutRecord` or `PutRecords`. + + Args: + input: + An instance of `StartStreamEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartStreamEncryptionOutput`. + """ + return await self._invoke(input, _models.START_STREAM_ENCRYPTION, [], plugins) + + async def stop_stream_encryption( + self, input: StopStreamEncryptionInput, plugins: list[Plugin] | None = None + ) -> StopStreamEncryptionOutput: + """ + Disables server-side encryption for a specified stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Stopping encryption is an asynchronous operation. Upon receiving the + request, Kinesis Data Streams returns immediately and sets the status of + the stream to `UPDATING`. After the update is complete, Kinesis Data + Streams sets the status of the stream back to `ACTIVE`. Stopping + encryption normally takes a few seconds to complete, but it can take + minutes. You can continue to read and write data to your stream while + its status is `UPDATING`. Once the status of the stream is `ACTIVE`, + records written to the stream are no longer encrypted by Kinesis Data + Streams. + + API Limits: You can successfully disable server-side encryption 25 times + in a rolling 24-hour period. + + Note: It can take up to 5 seconds after the stream is in an `ACTIVE` + status before all records written to the stream are no longer subject to + encryption. After you disabled encryption, you can verify that + encryption is not applied by inspecting the API response from + `PutRecord` or `PutRecords`. + + Args: + input: + An instance of `StopStreamEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopStreamEncryptionOutput`. + """ + return await self._invoke(input, _models.STOP_STREAM_ENCRYPTION, [], plugins) + + async def subscribe_to_shard( + self, input: SubscribeToShardInput, plugins: list[Plugin] | None = None + ) -> AsyncOutputEventStream[SubscribeToShardEventStream, SubscribeToShardOutput]: + """ + This operation establishes an HTTP/2 connection between the consumer you + specify in the `ConsumerARN` parameter and the shard you specify in the + `ShardId` parameter. After the connection is successfully established, + Kinesis Data Streams pushes records from the shard to the consumer over + this connection. Before you call this operation, call + RegisterStreamConsumer to register the consumer with Kinesis Data + Streams. + + When the `SubscribeToShard` call succeeds, your consumer starts + receiving events of type SubscribeToShardEvent over the HTTP/2 + connection for up to 5 minutes, after which time you need to call + `SubscribeToShard` again to renew the subscription if you want to + continue to receive records. + + You can make one call to `SubscribeToShard` per second per registered + consumer per shard. For example, if you have a 4000 shard stream and two + registered stream consumers, you can make one `SubscribeToShard` request + per second for each combination of shard and registered consumer, + allowing you to subscribe both consumers to all 4000 shards in one + second. + + If you call `SubscribeToShard` again with the same `ConsumerARN` and + `ShardId` within 5 seconds of a successful call, you'll get a + `ResourceInUseException`. If you call `SubscribeToShard` 5 seconds or + more after a successful call, the second call takes over the + subscription and the previous connection expires or fails with a + `ResourceInUseException`. + + For an example of how to use this operation, see [Enhanced Fan-Out Using + the Kinesis Data Streams + API](https://docs.aws.amazon.com/streams/latest/dev/building-enhanced-consumers-api.html). + + Args: + input: + An instance of `SubscribeToShardInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An `AsyncOutputEventStream` for server-to-client streaming. + """ + pipeline, call = await self._prepare_call( + input, _models.SUBSCRIBE_TO_SHARD, [], plugins + ) + return await pipeline.output_stream( + call, + SubscribeToShardEventStream, + _SubscribeToShardEventStreamDeserializer().deserialize, + ) + + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds or updates tags for the specified Kinesis 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 can + assign up to 50 tags to a Kinesis resource. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Removes tags from the specified Kinesis resource. Removed tags are + deleted and can't be recovered after this operation completes + successfully. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + async def update_account_settings( + self, input: UpdateAccountSettingsInput, plugins: list[Plugin] | None = None + ) -> UpdateAccountSettingsOutput: + """ + Updates the account-level settings for Amazon Kinesis Data Streams. + + Updating account settings is a synchronous operation. Upon receiving the + request, Kinesis Data Streams will return immediately with your + account's updated settings. + + **API limits** + + - Certain account configurations have minimum commitment windows. + Attempting to update your settings prior to the end of the minimum + commitment window might have certain restrictions. + + - This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + Args: + input: + An instance of `UpdateAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccountSettingsOutput`. + """ + return await self._invoke(input, _models.UPDATE_ACCOUNT_SETTINGS, [], plugins) + + async def update_channel( + self, input: UpdateChannelInput, plugins: list[Plugin] | None = None + ) -> UpdateChannelOutput: + """ + Updates the data freshness interval or the Amazon CloudWatch Logs + configuration of an existing channel. You cannot change the destination, + source stream, record format, schema, encryption configuration, or + service execution role of an existing channel. To change any other + setting, delete the channel and create a new one. + + Updating a channel is an asynchronous operation. Upon receiving the + request, Amazon Kinesis Data Streams sets the channel to the `UPDATING` + state and returns immediately. After the change is applied, Amazon + Kinesis Data Streams sets the channel back to the `ACTIVE` state. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `UpdateChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateChannelOutput`. + """ + return await self._invoke(input, _models.UPDATE_CHANNEL, [], plugins) + + async def update_max_record_size( + self, input: UpdateMaxRecordSizeInput, plugins: list[Plugin] | None = None + ) -> UpdateMaxRecordSizeOutput: + """ + This allows you to update the `MaxRecordSize` of a single record that + you can write to, and read from a stream. You can ingest and digest + single records up to 10240 KiB. + + Args: + input: + An instance of `UpdateMaxRecordSizeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateMaxRecordSizeOutput`. + """ + return await self._invoke(input, _models.UPDATE_MAX_RECORD_SIZE, [], plugins) + + async def update_shard_count( + self, input: UpdateShardCountInput, plugins: list[Plugin] | None = None + ) -> UpdateShardCountOutput: + """ + Updates the shard count of the specified stream to the specified number + of shards. This API is only supported for the data streams with the + provisioned capacity mode. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Updating the shard count is an asynchronous operation. Upon receiving + the request, Kinesis Data Streams returns immediately and sets the + status of the stream to `UPDATING`. After the update is complete, + Kinesis Data Streams sets the status of the stream back to `ACTIVE`. + Depending on the size of the stream, the scaling action could take a few + minutes to complete. You can continue to read and write data to your + stream while its status is `UPDATING`. + + To update the shard count, Kinesis Data Streams performs splits or + merges on individual shards. This can cause short-lived shards to be + created, in addition to the final shards. These short-lived shards count + towards your total shard limit for your account in the Region. + + When using this operation, we recommend that you specify a target shard + count that is a multiple of 25% (25%, 50%, 75%, 100%). You can specify + any target value within your shard limit. However, if you specify a + target that isn't a multiple of 25%, the scaling action might take + longer to complete. + + This operation has the following default limits. By default, you cannot + do the following: + + - Scale more than ten times per rolling 24-hour period per stream + + - Scale up to more than double your current shard count for a stream + + - Scale down below half your current shard count for a stream + + - Scale up to more than 10000 shards in a stream + + - Scale a stream with more than 10000 shards down unless the result is + less than 10000 shards + + - Scale up to more than the shard limit for your account + + - Make over 10 TPS. TPS over 10 will trigger the LimitExceededException + + For the default limits for an Amazon Web Services account, see [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To request an + increase in the call rate limit, the shard limit for this API, or your + overall shard limit, use the [limits + form](https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis). + + Args: + input: + An instance of `UpdateShardCountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateShardCountOutput`. + """ + return await self._invoke(input, _models.UPDATE_SHARD_COUNT, [], plugins) + + async def update_stream_mode( + self, input: UpdateStreamModeInput, plugins: list[Plugin] | None = None + ) -> UpdateStreamModeOutput: + """ + Updates the capacity mode of the data stream. Currently, in Kinesis Data + Streams, you can choose between an **on-demand** capacity mode and a + **provisioned** capacity mode for your data stream. + + If you'd still like to proactively scale your on-demand data stream's + capacity, you can unlock the warm throughput feature for on-demand data + streams by enabling `MinimumThroughputBillingCommitment` for your + account. Once your account has `MinimumThroughputBillingCommitment` + enabled, you can specify the warm throughput in MiB per second that your + stream can support in writes. + + Args: + input: + An instance of `UpdateStreamModeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamModeOutput`. + """ + return await self._invoke(input, _models.UPDATE_STREAM_MODE, [], plugins) + + async def update_stream_record_distribution_strategy( + self, + input: UpdateStreamRecordDistributionStrategyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamRecordDistributionStrategyOutput: + """ + Updates the record distribution strategy for the specified Amazon + Kinesis Data Streams on-demand data stream. The record distribution + strategy determines how Amazon Kinesis Data Streams distributes records + across the shards in a stream. + + Note: + You must specify the stream using the `StreamARN` parameter. + + The record distribution strategy is a stream-level setting. You can + switch between the following strategies at any time, and the change + takes effect immediately without downtime, data loss, or disruption to + producer or consumer applications: + + - `AUTO` -- Amazon Kinesis Data Streams distributes records evenly + across shards using service-managed algorithms, and ignores any + partition key and `ExplicitHashKey` that a producer provides. Use this + strategy for stateless workloads that do not require partition-key + ordering. + + - `USER_PARTITION_KEY` -- Producers must provide a partition key, and + Amazon Kinesis Data Streams uses the partition key to determine shard + placement. Records that share a partition key are sent to the same + shard. This is the default strategy. + + This operation is only supported for data streams that use the on-demand + capacity mode. Provisioned capacity mode streams do not support the + record distribution strategy setting. Attempting to set `AUTO` on a + provisioned stream results in an `InvalidArgumentException`. + + New records that arrive after the change are distributed according to + the new strategy. Records already in the stream keep their original + shard assignments and are not redistributed. + + Args: + input: + An instance of `UpdateStreamRecordDistributionStrategyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamRecordDistributionStrategyOutput`. + """ + return await self._invoke( + input, _models.UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY, [], plugins + ) + + async def update_stream_warm_throughput( + self, + input: UpdateStreamWarmThroughputInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamWarmThroughputOutput: + """ + Updates the warm throughput configuration for the specified Amazon + Kinesis Data Streams on-demand data stream. Updates the warm throughput + configuration for the specified on-demand data stream. Use this + operation to scale your stream to a specified throughput level before + anticipated traffic spikes, or to release excess capacity after traffic + has decreased. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Updating the warm throughput is an asynchronous operation. Upon + receiving the request, Kinesis Data Streams returns immediately and sets + the status of the stream to `UPDATING`. After the update is complete, + Kinesis Data Streams sets the status of the stream back to `ACTIVE`. + Depending on the size of the stream, the scaling action could take a few + minutes to complete. You can continue to read and write data to your + stream while its status is `UPDATING`. + + This operation is only supported for data streams with the on-demand + capacity mode in accounts that have `MinimumThroughputBillingCommitment` + enabled. Provisioned capacity mode streams do not support warm + throughput configuration. + + To release excess capacity, call the API again and set the warm + throughput to the same or a lower value. + + This operation has the following default limits. By default, you cannot + do the following: + + - Scale to more than 10 GiBps for an on-demand stream. + + - This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + For the default limits for an Amazon Web Services account, see [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To request an + increase in the call rate limit, the shard limit for this API, or your + overall shard limit, use the [limits + form](https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis). + + Args: + input: + An instance of `UpdateStreamWarmThroughputInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamWarmThroughputOutput`. + """ + return await self._invoke( + input, _models.UPDATE_STREAM_WARM_THROUGHPUT, [], plugins + ) + + async def _new_config(self) -> AsyncKinesisConfig: + return await AsyncKinesisConfig.resolve() + + async def _post_setup(self, config: AsyncKinesisConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/config.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/config.py new file mode 100644 index 00000000..caf0b814 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/config.py @@ -0,0 +1,399 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncAwsJson11ClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_account_id_endpoint_mode_program, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.config.validators import validate_account_id_endpoint_mode +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import KINESIS_20131202 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AddTagsToStreamInput, + AddTagsToStreamOutput, + CreateChannelInput, + CreateChannelOutput, + CreateStreamInput, + CreateStreamOutput, + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + DeleteChannelInput, + DeleteChannelOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteStreamInput, + DeleteStreamOutput, + DeregisterStreamConsumerInput, + DeregisterStreamConsumerOutput, + DescribeAccountSettingsInput, + DescribeAccountSettingsOutput, + DescribeChannelInput, + DescribeChannelOutput, + DescribeLimitsInput, + DescribeLimitsOutput, + DescribeStreamConsumerInput, + DescribeStreamConsumerOutput, + DescribeStreamInput, + DescribeStreamOutput, + DescribeStreamSummaryInput, + DescribeStreamSummaryOutput, + DisableEnhancedMonitoringInput, + DisableEnhancedMonitoringOutput, + EnableEnhancedMonitoringInput, + EnableEnhancedMonitoringOutput, + GetRecordsInput, + GetRecordsOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetShardIteratorInput, + GetShardIteratorOutput, + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + ListChannelsInput, + ListChannelsOutput, + ListShardsInput, + ListShardsOutput, + ListStreamConsumersInput, + ListStreamConsumersOutput, + ListStreamsInput, + ListStreamsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTagsForStreamInput, + ListTagsForStreamOutput, + MergeShardsInput, + MergeShardsOutput, + PutRecordInput, + PutRecordOutput, + PutRecordsInput, + PutRecordsOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + RegisterStreamConsumerInput, + RegisterStreamConsumerOutput, + RemoveTagsFromStreamInput, + RemoveTagsFromStreamOutput, + SplitShardInput, + SplitShardOutput, + StartStreamEncryptionInput, + StartStreamEncryptionOutput, + StopStreamEncryptionInput, + StopStreamEncryptionOutput, + SubscribeToShardInput, + SubscribeToShardOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAccountSettingsInput, + UpdateAccountSettingsOutput, + UpdateChannelInput, + UpdateChannelOutput, + UpdateMaxRecordSizeInput, + UpdateMaxRecordSizeOutput, + UpdateShardCountInput, + UpdateShardCountOutput, + UpdateStreamModeInput, + UpdateStreamModeOutput, + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + UpdateStreamWarmThroughputInput, + UpdateStreamWarmThroughputOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddTagsToStreamInput, AddTagsToStreamOutput, Any, Any], + Interceptor[CreateChannelInput, CreateChannelOutput, Any, Any], + Interceptor[CreateStreamInput, CreateStreamOutput, Any, Any], + Interceptor[ + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + Any, + Any, + ], + Interceptor[DeleteChannelInput, DeleteChannelOutput, Any, Any], + Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[DeleteStreamInput, DeleteStreamOutput, Any, Any], + Interceptor[ + DeregisterStreamConsumerInput, DeregisterStreamConsumerOutput, Any, Any + ], + Interceptor[ + DescribeAccountSettingsInput, DescribeAccountSettingsOutput, Any, Any + ], + Interceptor[DescribeChannelInput, DescribeChannelOutput, Any, Any], + Interceptor[DescribeLimitsInput, DescribeLimitsOutput, Any, Any], + Interceptor[DescribeStreamInput, DescribeStreamOutput, Any, Any], + Interceptor[ + DescribeStreamConsumerInput, DescribeStreamConsumerOutput, Any, Any + ], + Interceptor[DescribeStreamSummaryInput, DescribeStreamSummaryOutput, Any, Any], + Interceptor[ + DisableEnhancedMonitoringInput, DisableEnhancedMonitoringOutput, Any, Any + ], + Interceptor[ + EnableEnhancedMonitoringInput, EnableEnhancedMonitoringOutput, Any, Any + ], + Interceptor[GetRecordsInput, GetRecordsOutput, Any, Any], + Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[GetShardIteratorInput, GetShardIteratorOutput, Any, Any], + Interceptor[ + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + Any, + Any, + ], + Interceptor[ListChannelsInput, ListChannelsOutput, Any, Any], + Interceptor[ListShardsInput, ListShardsOutput, Any, Any], + Interceptor[ListStreamConsumersInput, ListStreamConsumersOutput, Any, Any], + Interceptor[ListStreamsInput, ListStreamsOutput, Any, Any], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ListTagsForStreamInput, ListTagsForStreamOutput, Any, Any], + Interceptor[MergeShardsInput, MergeShardsOutput, Any, Any], + Interceptor[PutRecordInput, PutRecordOutput, Any, Any], + Interceptor[PutRecordsInput, PutRecordsOutput, Any, Any], + Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[ + RegisterStreamConsumerInput, RegisterStreamConsumerOutput, Any, Any + ], + Interceptor[RemoveTagsFromStreamInput, RemoveTagsFromStreamOutput, Any, Any], + Interceptor[SplitShardInput, SplitShardOutput, Any, Any], + Interceptor[StartStreamEncryptionInput, StartStreamEncryptionOutput, Any, Any], + Interceptor[StopStreamEncryptionInput, StopStreamEncryptionOutput, Any, Any], + Interceptor[SubscribeToShardInput, SubscribeToShardOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAccountSettingsInput, UpdateAccountSettingsOutput, Any, Any], + Interceptor[UpdateChannelInput, UpdateChannelOutput, Any, Any], + Interceptor[UpdateMaxRecordSizeInput, UpdateMaxRecordSizeOutput, Any, Any], + Interceptor[UpdateShardCountInput, UpdateShardCountOutput, Any, Any], + Interceptor[UpdateStreamModeInput, UpdateStreamModeOutput, Any, Any], + Interceptor[ + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + Any, + Any, + ], + Interceptor[ + UpdateStreamWarmThroughputInput, UpdateStreamWarmThroughputOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.kinesis", + service_target="Kinesis_20131202", + service_schema=KINESIS_20131202, +) + + +class _AsyncKinesisConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + account_id_endpoint_mode: str | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncKinesisConfig(AsyncAwsConfig): + """Kinesis configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + account_id_endpoint_mode: str | None = None + """The AccountId Endpoint Mode. Defaults to preferred.""" + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "account_id_endpoint_mode": FieldSpec( + default="preferred", + resolver=resolve_account_id_endpoint_mode_program, + validator=validate_account_id_endpoint_mode, + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("kinesis").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncAwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="kinesis") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncKinesisConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncKinesisConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/user_agent.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/user_agent.py new file mode 100644 index 00000000..33a4e271 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncKinesisConfig + + +def aws_user_agent_plugin(config: AsyncKinesisConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="Kinesis", + ) + ) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/auth.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/client.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/client.py new file mode 100644 index 00000000..5a060141 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/client.py @@ -0,0 +1,2013 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import KinesisConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AddTagsToStreamInput, + AddTagsToStreamOutput, + CreateChannelInput, + CreateChannelOutput, + CreateStreamInput, + CreateStreamOutput, + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + DeleteChannelInput, + DeleteChannelOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteStreamInput, + DeleteStreamOutput, + DeregisterStreamConsumerInput, + DeregisterStreamConsumerOutput, + DescribeAccountSettingsInput, + DescribeAccountSettingsOutput, + DescribeChannelInput, + DescribeChannelOutput, + DescribeLimitsInput, + DescribeLimitsOutput, + DescribeStreamConsumerInput, + DescribeStreamConsumerOutput, + DescribeStreamInput, + DescribeStreamOutput, + DescribeStreamSummaryInput, + DescribeStreamSummaryOutput, + DisableEnhancedMonitoringInput, + DisableEnhancedMonitoringOutput, + EnableEnhancedMonitoringInput, + EnableEnhancedMonitoringOutput, + GetRecordsInput, + GetRecordsOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetShardIteratorInput, + GetShardIteratorOutput, + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + ListChannelsInput, + ListChannelsOutput, + ListShardsInput, + ListShardsOutput, + ListStreamConsumersInput, + ListStreamConsumersOutput, + ListStreamsInput, + ListStreamsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTagsForStreamInput, + ListTagsForStreamOutput, + MergeShardsInput, + MergeShardsOutput, + PutRecordInput, + PutRecordOutput, + PutRecordsInput, + PutRecordsOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + RegisterStreamConsumerInput, + RegisterStreamConsumerOutput, + RemoveTagsFromStreamInput, + RemoveTagsFromStreamOutput, + SplitShardInput, + SplitShardOutput, + StartStreamEncryptionInput, + StartStreamEncryptionOutput, + StopStreamEncryptionInput, + StopStreamEncryptionOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAccountSettingsInput, + UpdateAccountSettingsOutput, + UpdateChannelInput, + UpdateChannelOutput, + UpdateMaxRecordSizeInput, + UpdateMaxRecordSizeOutput, + UpdateShardCountInput, + UpdateShardCountOutput, + UpdateStreamModeInput, + UpdateStreamModeOutput, + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + UpdateStreamWarmThroughputInput, + UpdateStreamWarmThroughputOutput, + ) + + +logger = logging.getLogger(__name__) + + +class KinesisClient(Client[KinesisConfig]): + """ + Amazon Kinesis Data Streams is a managed service that scales elastically + for real-time processing of streaming big data. + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def add_tags_to_stream( + self, input: AddTagsToStreamInput, plugins: list[Plugin] | None = None + ) -> AddTagsToStreamOutput: + """ + Adds or updates tags for the specified Kinesis data stream. You can + assign up to 50 tags to a data stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If tags have already been assigned to the stream, `AddTagsToStream` + overwrites any existing tags that correspond to the specified tag keys. + + AddTagsToStream has a limit of five transactions per second per account. + + Args: + input: + An instance of `AddTagsToStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToStreamOutput`. + """ + return self._invoke(input, _models.ADD_TAGS_TO_STREAM, [], plugins) + + def create_channel( + self, input: CreateChannelInput, plugins: list[Plugin] | None = None + ) -> CreateChannelOutput: + """ + Creates a channel that delivers records from a Kinesis data stream to a + destination. A channel reads records from the specified stream and + writes them to streaming tables on Apache Iceberg (Amazon S3 Tables) or + to a general purpose Amazon S3 bucket. + + You must specify either `S3DestinationConfiguration` or + `S3TablesDestinationConfiguration`, but not both. + + To use this operation, you must have permission to pass the specified + service execution IAM role to Amazon Kinesis Data Streams (the + `iam:PassRole` permission on that role). + + Creating a channel is an asynchronous operation. Upon receiving the + request, Amazon Kinesis Data Streams returns immediately with the + channel in the `CREATING` state. After provisioning is complete, Amazon + Kinesis Data Streams sets the state to `ACTIVE`. You can use + DescribeChannel to check the current state. + + This operation is only supported for data streams with the on-demand + capacity mode. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `CreateChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateChannelOutput`. + """ + return self._invoke(input, _models.CREATE_CHANNEL, [], plugins) + + def create_stream( + self, input: CreateStreamInput, plugins: list[Plugin] | None = None + ) -> CreateStreamOutput: + """ + Creates a Kinesis data stream. A stream captures and transports data + records that are continuously emitted from different data sources or + *producers*. Scale-out within a stream is explicitly supported by means + of shards, which are uniquely identified groups of data records in a + stream. + + You can create your data stream using either on-demand or provisioned + capacity mode. Data streams with an on-demand mode require no capacity + planning and automatically scale to handle gigabytes of write and read + throughput per minute. With the on-demand mode, Kinesis Data Streams + automatically manages the shards in order to provide the necessary + throughput. + + If you'd still like to proactively scale your on-demand data stream's + capacity, you can unlock the warm throughput feature for on-demand data + streams by enabling `MinimumThroughputBillingCommitment` for your + account. Once your account has `MinimumThroughputBillingCommitment` + enabled, you can specify the warm throughput in MiB per second that your + stream can support in writes. + + For the data streams with a provisioned mode, you must specify the + number of shards for the data stream. Each shard can support reads up to + five transactions per second, up to a maximum data read total of 2 MiB + per second. Each shard can support writes up to 1,000 records per + second, up to a maximum data write total of 1 MiB per second. If the + amount of data input increases or decreases, you can add or remove + shards. + + The stream name identifies the stream. The name is scoped to the Amazon + Web Services account used by the application. It is also scoped by + Amazon Web Services Region. That is, two streams in two different + accounts can have the same name, and two streams in the same account, + but in two different Regions, can have the same name. + + `CreateStream` is an asynchronous operation. Upon receiving a + `CreateStream` request, Kinesis Data Streams immediately returns and + sets the stream status to `CREATING`. After the stream is created, + Kinesis Data Streams sets the stream status to `ACTIVE`. You should + perform read and write operations only on an `ACTIVE` stream. + + You receive a `LimitExceededException` when making a `CreateStream` + request when you try to do one of the following: + + - Have more than five streams in the `CREATING` state at any point in + time. + + - Create more shards than are authorized for your account. + + For the default shard or on-demand throughput limits for an Amazon Web + Services account, see [Amazon Kinesis Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To increase this + limit, [contact Amazon Web Services + Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). + + You can use DescribeStreamSummary to check the stream status, which is + returned in `StreamStatus`. + + CreateStream has a limit of five transactions per second per account. + + You can add tags to the stream when making a `CreateStream` request by + setting the `Tags` parameter. If you pass the `Tags` parameter, in + addition to having the `kinesis:CreateStream` permission, you must also + have the `kinesis:AddTagsToStream` permission for the stream that will + be created. The `kinesis:TagResource` permission won't work to tag + streams on creation. Tags will take effect from the `CREATING` status of + the stream, but you can't make any updates to the tags until the stream + is in `ACTIVE` state. + + Args: + input: + An instance of `CreateStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateStreamOutput`. + """ + return self._invoke(input, _models.CREATE_STREAM, [], plugins) + + def decrease_stream_retention_period( + self, + input: DecreaseStreamRetentionPeriodInput, + plugins: list[Plugin] | None = None, + ) -> DecreaseStreamRetentionPeriodOutput: + """ + Decreases the Kinesis data stream's retention period, which is the + length of time data records are accessible after they are added to the + stream. The minimum value of a stream's retention period is 24 hours. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + This operation may result in lost data. For example, if the stream's + retention period is 48 hours and is decreased to 24 hours, any data + already in the stream that is older than 24 hours is inaccessible. + + Args: + input: + An instance of `DecreaseStreamRetentionPeriodInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecreaseStreamRetentionPeriodOutput`. + """ + return self._invoke( + input, _models.DECREASE_STREAM_RETENTION_PERIOD, [], plugins + ) + + def delete_channel( + self, input: DeleteChannelInput, plugins: list[Plugin] | None = None + ) -> DeleteChannelOutput: + """ + Deletes the specified channel. Deleting a channel stops delivery from + the source stream to the destination. Data already delivered to the + destination is not deleted. + + A stream cannot be deleted while it has active channels. Use + ListChannels with a stream filter to find the channels attached to a + stream before deleting it. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `DeleteChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteChannelOutput`. + """ + return self._invoke(input, _models.DELETE_CHANNEL, [], plugins) + + def delete_resource_policy( + self, input: DeleteResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteResourcePolicyOutput: + """ + Delete a policy for the specified data stream or consumer. Request + patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + Args: + input: + An instance of `DeleteResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteResourcePolicyOutput`. + """ + return self._invoke(input, _models.DELETE_RESOURCE_POLICY, [], plugins) + + def delete_stream( + self, + input: DeleteStreamInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteStreamOutput: + """ + Deletes a Kinesis data stream and all its shards and data. You must shut + down any applications that are operating on the stream before you delete + the stream. If an application attempts to operate on a deleted stream, + it receives the exception `ResourceNotFoundException`. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If the stream is in the `ACTIVE` state, you can delete it. After a + `DeleteStream` request, the specified stream is in the `DELETING` state + until Kinesis Data Streams completes the deletion. + + **Note:** Kinesis Data Streams might continue to accept data read and + write operations, such as PutRecord, PutRecords, and GetRecords, on a + stream in the `DELETING` state until the stream deletion is complete. + + When you delete a stream, any shards in that stream are also deleted, + and any tags are dissociated from the stream. + + You can use the DescribeStreamSummary operation to check the state of + the stream, which is returned in `StreamStatus`. + + DeleteStream has a limit of five transactions per second per account. + + Args: + input: + An instance of `DeleteStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteStreamOutput`. + """ + return self._invoke(input, _models.DELETE_STREAM, [], plugins) + + def deregister_stream_consumer( + self, + input: DeregisterStreamConsumerInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeregisterStreamConsumerOutput: + """ + To deregister a consumer, provide its ARN. Alternatively, you can + provide the ARN of the data stream and the name you gave the consumer + when you registered it. You may also provide all three parameters, as + long as they don't conflict with each other. If you don't know the + name or ARN of the consumer that you want to deregister, you can use the + ListStreamConsumers operation to get a list of the descriptions of all + the consumers that are currently registered with a given data stream. + The description of a consumer contains its name and ARN. + + This operation has a limit of five transactions per second per stream. + + Args: + input: + An instance of `DeregisterStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterStreamConsumerOutput`. + """ + return self._invoke(input, _models.DEREGISTER_STREAM_CONSUMER, [], plugins) + + def describe_account_settings( + self, + input: DescribeAccountSettingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountSettingsOutput: + """ + Describes the account-level settings for Amazon Kinesis Data Streams. + This operation returns information about the minimum throughput billing + commitments and other account-level configurations. + + This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + Args: + input: + An instance of `DescribeAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountSettingsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACCOUNT_SETTINGS, [], plugins) + + def describe_channel( + self, input: DescribeChannelInput, plugins: list[Plugin] | None = None + ) -> DescribeChannelOutput: + """ + Describes the specified channel, including its configuration and current + status. + + Use this operation to verify that a channel reached the `ACTIVE` state + after creation, or to diagnose a channel in the `FAILED` state by + reading the `ChannelStatusReason`. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `DescribeChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeChannelOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CHANNEL, [], plugins) + + def describe_limits( + self, + input: DescribeLimitsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeLimitsOutput: + """ + Describes the shard limits and usage for the account. + + If you update your account limits, the old limits might be returned for + a few minutes. + + This operation has a limit of one transaction per second per account. + + Args: + input: + An instance of `DescribeLimitsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeLimitsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_LIMITS, [], plugins) + + def describe_stream( + self, + input: DescribeStreamInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStreamOutput: + """ + Describes the specified Kinesis data stream. + + Note: + This API has been revised. It's highly recommended that you use the + DescribeStreamSummary API to get a summarized description of the + specified Kinesis data stream and the ListShards API to list the shards + in a specified data stream and obtain information about each shard. + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + The information returned includes the stream name, Amazon Resource Name + (ARN), creation time, enhanced metric configuration, and shard map. The + shard map is an array of shard objects. For each shard object, there is + the hash key and sequence number ranges that the shard spans, and the + IDs of any earlier shards that played in a role in creating the shard. + Every record ingested in the stream is identified by a sequence number, + which is assigned when the record is put into the stream. + + You can limit the number of shards returned by each call. For more + information, see [Retrieving Shards from a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-retrieve-shards.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + There are no guarantees about the chronological order shards returned. + To process shards in chronological order, use the ID of the parent shard + to track the lineage to the oldest shard. + + This operation has a limit of 10 transactions per second per account. + + Args: + input: + An instance of `DescribeStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STREAM, [], plugins) + + def describe_stream_consumer( + self, + input: DescribeStreamConsumerInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStreamConsumerOutput: + """ + To get the description of a registered consumer, provide the ARN of the + consumer. Alternatively, you can provide the ARN of the data stream and + the name you gave the consumer when you registered it. You may also + provide all three parameters, as long as they don't conflict with each + other. If you don't know the name or ARN of the consumer that you want + to describe, you can use the ListStreamConsumers operation to get a list + of the descriptions of all the consumers that are currently registered + with a given data stream. + + This operation has a limit of 20 transactions per second per stream. + + Note: + When making a cross-account call with `DescribeStreamConsumer`, make + sure to provide the ARN of the consumer. + + Args: + input: + An instance of `DescribeStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamConsumerOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STREAM_CONSUMER, [], plugins) + + def describe_stream_summary( + self, + input: DescribeStreamSummaryInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeStreamSummaryOutput: + """ + Provides a summarized description of the specified Kinesis data stream + without the shard list. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + The information returned includes the stream name, Amazon Resource Name + (ARN), status, record retention period, approximate creation time, + monitoring, encryption details, and open shard count. + + DescribeStreamSummary has a limit of 20 transactions per second per + account. + + Args: + input: + An instance of `DescribeStreamSummaryInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeStreamSummaryOutput`. + """ + return self._invoke(input, _models.DESCRIBE_STREAM_SUMMARY, [], plugins) + + def disable_enhanced_monitoring( + self, input: DisableEnhancedMonitoringInput, plugins: list[Plugin] | None = None + ) -> DisableEnhancedMonitoringOutput: + """ + Disables enhanced monitoring. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `DisableEnhancedMonitoringInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableEnhancedMonitoringOutput`. + """ + return self._invoke(input, _models.DISABLE_ENHANCED_MONITORING, [], plugins) + + def enable_enhanced_monitoring( + self, input: EnableEnhancedMonitoringInput, plugins: list[Plugin] | None = None + ) -> EnableEnhancedMonitoringOutput: + """ + Enables enhanced Kinesis data stream monitoring for shard-level metrics. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `EnableEnhancedMonitoringInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableEnhancedMonitoringOutput`. + """ + return self._invoke(input, _models.ENABLE_ENHANCED_MONITORING, [], plugins) + + def get_records( + self, input: GetRecordsInput, plugins: list[Plugin] | None = None + ) -> GetRecordsOutput: + """ + Gets data records from a Kinesis data stream's shard. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Specify a shard iterator using the `ShardIterator` parameter. The shard + iterator specifies the position in the shard from which you want to + start reading data records sequentially. If there are no records + available in the portion of the shard that the iterator points to, + GetRecords returns an empty list. It might take multiple calls to get to + a portion of the shard that contains records. + + You can scale by provisioning multiple shards per stream while + considering service limits (for more information, see [Amazon Kinesis + Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*). Your application + should have one thread per shard, each reading continuously from its + stream. To read from a stream continually, call GetRecords in a loop. + Use GetShardIterator to get the shard iterator to specify in the first + GetRecords call. GetRecords returns a new shard iterator in + `NextShardIterator`. Specify the shard iterator returned in + `NextShardIterator` in subsequent calls to GetRecords. If the shard has + been closed, the shard iterator can't return more data and GetRecords + returns `null` in `NextShardIterator`. You can terminate the loop when + the shard is closed, or when the shard iterator reaches the record with + the sequence number or other attribute that marks it as the last record + to process. + + Each data record can be up to 1 MiB in size by default. Amazon Kinesis + Data Streams supports large records up to 10 MiB in size, but the + average throughput for your stream cannot exceed 1 MiB per second. For + more information about how large records are handled, see [Large + records](https://docs.aws.amazon.com/streams/latest/dev/large-records.html). + Each shard can read up to 2 MiB per second. You can ensure that your + calls don't exceed the maximum supported size or throughput by using + the `Limit` parameter to specify the maximum number of records that + GetRecords can return. Consider your average record size when + determining this limit. The maximum number of records that can be + returned per call is 10,000. + + The size of the data returned by GetRecords varies depending on the + utilization of the shard. It is recommended that consumer applications + retrieve records via the `GetRecords` command using the 5 TPS limit to + remain caught up. Retrieving records less frequently can lead to + consumer applications falling behind. The maximum size of data that + GetRecords can return is 10 MiB. If a call returns this amount of data, + subsequent calls made within the next 5 seconds throw + `ProvisionedThroughputExceededException`. If there is insufficient + provisioned throughput on the stream, subsequent calls made within the + next 1 second throw `ProvisionedThroughputExceededException`. GetRecords + doesn't return any data when it throws an exception. For this reason, + we recommend that you wait 1 second between calls to GetRecords. + However, it's possible that the application will get exceptions for + longer than 1 second. + + To detect whether the application is falling behind in processing, you + can use the `MillisBehindLatest` response attribute. You can also + monitor the stream using CloudWatch metrics and other mechanisms (see + [Monitoring](https://docs.aws.amazon.com/kinesis/latest/dev/monitoring.html) + in the *Amazon Kinesis Data Streams Developer Guide*). + + Each Amazon Kinesis record includes a value, + `ApproximateArrivalTimestamp`, that is set when a stream successfully + receives and stores a record. This is commonly referred to as a + server-side time stamp, whereas a client-side time stamp is set when a + data producer creates or sends the record to a stream (a data producer + is any data source putting data records into a stream, for example with + PutRecords). The time stamp has millisecond precision. There are no + guarantees about the time stamp accuracy, or that the time stamp is + always increasing. For example, records in a shard or across a stream + might have time stamps that are out of order. + + This operation has a limit of five transactions per second per shard. + + Args: + input: + An instance of `GetRecordsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetRecordsOutput`. + """ + return self._invoke(input, _models.GET_RECORDS, [], plugins) + + def get_resource_policy( + self, input: GetResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> GetResourcePolicyOutput: + """ + Returns a policy attached to the specified data stream or consumer. + Request patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + Args: + input: + An instance of `GetResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetResourcePolicyOutput`. + """ + return self._invoke(input, _models.GET_RESOURCE_POLICY, [], plugins) + + def get_shard_iterator( + self, input: GetShardIteratorInput, plugins: list[Plugin] | None = None + ) -> GetShardIteratorOutput: + """ + Gets an Amazon Kinesis shard iterator. A shard iterator expires 5 + minutes after it is returned to the requester. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + A shard iterator specifies the shard position from which to start + reading data records sequentially. The position is specified using the + sequence number of a data record in a shard. A sequence number is the + identifier associated with every record ingested in the stream, and is + assigned when a record is put into the stream. Each stream has one or + more shards. + + You must specify the shard iterator type. For example, you can set the + `ShardIteratorType` parameter to read exactly from the position denoted + by a specific sequence number by using the `AT_SEQUENCE_NUMBER` shard + iterator type. Alternatively, the parameter can read right after the + sequence number by using the `AFTER_SEQUENCE_NUMBER` shard iterator + type, using sequence numbers returned by earlier calls to PutRecord, + PutRecords, GetRecords, or DescribeStream. In the request, you can + specify the shard iterator type `AT_TIMESTAMP` to read records from an + arbitrary point in time, `TRIM_HORIZON` to cause `ShardIterator` to + point to the last untrimmed record in the shard in the system (the + oldest data record in the shard), or `LATEST` so that you always read + the most recent data in the shard. + + When you read repeatedly from a stream, use a GetShardIterator request + to get the first shard iterator for use in your first GetRecords request + and for subsequent reads use the shard iterator returned by the + GetRecords request in `NextShardIterator`. A new shard iterator is + returned by every GetRecords request in `NextShardIterator`, which you + use in the `ShardIterator` parameter of the next GetRecords request. + + If a GetShardIterator request is made too often, you receive a + `ProvisionedThroughputExceededException`. For more information about + throughput limits, see GetRecords, and [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + If the shard is closed, GetShardIterator returns a valid iterator for + the last sequence number of the shard. A shard can be closed as a result + of using SplitShard or MergeShards. + + GetShardIterator has a limit of five transactions per second per account + per open shard. + + Args: + input: + An instance of `GetShardIteratorInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetShardIteratorOutput`. + """ + return self._invoke(input, _models.GET_SHARD_ITERATOR, [], plugins) + + def increase_stream_retention_period( + self, + input: IncreaseStreamRetentionPeriodInput, + plugins: list[Plugin] | None = None, + ) -> IncreaseStreamRetentionPeriodOutput: + """ + Increases the Kinesis data stream's retention period, which is the + length of time data records are accessible after they are added to the + stream. The maximum value of a stream's retention period is 8760 hours + (365 days). + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If you choose a longer stream retention period, this operation increases + the time period during which records that have not yet expired are + accessible. However, it does not make previous, expired data (older than + the stream's previous retention period) accessible after the operation + has been called. For example, if a stream's retention period is set to + 24 hours and is increased to 168 hours, any data that is older than 24 + hours remains inaccessible to consumer applications. + + Args: + input: + An instance of `IncreaseStreamRetentionPeriodInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `IncreaseStreamRetentionPeriodOutput`. + """ + return self._invoke( + input, _models.INCREASE_STREAM_RETENTION_PERIOD, [], plugins + ) + + def list_channels( + self, + input: ListChannelsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListChannelsOutput: + """ + Lists the channels in your account. You can filter the results by source + stream. The results are paginated. Use the `NextToken` value returned in + the response to retrieve additional results. + + Use this operation to find channels before deleting a stream, or to + audit the channels configured in an Amazon Web Services Region. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `ListChannelsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListChannelsOutput`. + """ + return self._invoke(input, _models.LIST_CHANNELS, [], plugins) + + def list_shards( + self, input: ListShardsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListShardsOutput: + """ + Lists the shards in a stream and provides information about each shard. + This operation has a limit of 1000 transactions per second per data + stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + This action does not list expired shards. For information about expired + shards, see [Data Routing, Data Persistence, and Shard State after a + Reshard](https://docs.aws.amazon.com/streams/latest/dev/kinesis-using-sdk-java-after-resharding.html#kinesis-using-sdk-java-resharding-data-routing). + + Warning: + This API is a new operation that is used by the Amazon Kinesis Client + Library (KCL). If you have a fine-grained IAM policy that only allows + specific operations, you must update your policy to allow calls to this + API. For more information, see [Controlling Access to Amazon Kinesis + Data Streams Resources Using + IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). + + Args: + input: + An instance of `ListShardsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListShardsOutput`. + """ + return self._invoke(input, _models.LIST_SHARDS, [], plugins) + + def list_stream_consumers( + self, input: ListStreamConsumersInput, plugins: list[Plugin] | None = None + ) -> ListStreamConsumersOutput: + """ + Lists the consumers registered to receive data from a stream using + enhanced fan-out, and provides information about each consumer. + + This operation has a limit of 5 transactions per second per stream. + + Args: + input: + An instance of `ListStreamConsumersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamConsumersOutput`. + """ + return self._invoke(input, _models.LIST_STREAM_CONSUMERS, [], plugins) + + def list_streams( + self, input: ListStreamsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListStreamsOutput: + """ + Lists your Kinesis data streams. + + The number of streams may be too large to return from a single call to + `ListStreams`. You can limit the number of returned streams using the + `Limit` parameter. If you do not specify a value for the `Limit` + parameter, Kinesis Data Streams uses the default limit, which is + currently 100. + + You can detect if there are more streams available to list by using the + `HasMoreStreams` flag from the returned output. If there are more + streams available, you can request more streams by using the name of the + last stream returned by the `ListStreams` request in the + `ExclusiveStartStreamName` parameter in a subsequent request to + `ListStreams`. The group of stream names returned by the subsequent + request is then added to the list. You can continue this process until + all the stream names have been collected in the list. + + ListStreams has a limit of five transactions per second per account. + + Args: + input: + An instance of `ListStreamsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListStreamsOutput`. + """ + return self._invoke(input, _models.LIST_STREAMS, [], plugins) + + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + List all tags added to the specified Kinesis 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. + + For more information about tagging Kinesis resources, see [Tag your + Amazon Kinesis Data Streams + resources](https://docs.aws.amazon.com/streams/latest/dev/tagging.html). + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + def list_tags_for_stream( + self, + input: ListTagsForStreamInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListTagsForStreamOutput: + """ + Lists the tags for the specified Kinesis data stream. This operation has + a limit of five transactions per second per account. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Args: + input: + An instance of `ListTagsForStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForStreamOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_STREAM, [], plugins) + + def merge_shards( + self, input: MergeShardsInput, plugins: list[Plugin] | None = None + ) -> MergeShardsOutput: + """ + Merges two adjacent shards in a Kinesis data stream and combines them + into a single shard to reduce the stream's capacity to ingest and + transport data. This API is only supported for the data streams with the + provisioned capacity mode. Two shards are considered adjacent if the + union of the hash key ranges for the two shards form a contiguous set + with no gaps. For example, if you have two shards, one with a hash key + range of 276...381 and the other with a hash key range of 382...454, + then you could merge these two shards into a single shard that would + have a hash key range of 276...454. After the merge, the single child + shard receives data for all hash key values covered by the two parent + shards. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + `MergeShards` is called when there is a need to reduce the overall + capacity of a stream because of excess capacity that is not being used. + You must specify the shard to be merged and the adjacent shard for a + stream. For more information about merging shards, see [Merge Two + Shards](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-merge.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + If the stream is in the `ACTIVE` state, you can call `MergeShards`. If a + stream is in the `CREATING`, `UPDATING`, or `DELETING` state, + `MergeShards` returns a `ResourceInUseException`. If the specified + stream does not exist, `MergeShards` returns a + `ResourceNotFoundException`. + + You can use DescribeStreamSummary to check the state of the stream, + which is returned in `StreamStatus`. + + `MergeShards` is an asynchronous operation. Upon receiving a + `MergeShards` request, Amazon Kinesis Data Streams immediately returns a + response and sets the `StreamStatus` to `UPDATING`. After the operation + is completed, Kinesis Data Streams sets the `StreamStatus` to `ACTIVE`. + Read and write operations continue to work while the stream is in the + `UPDATING` state. + + You use DescribeStreamSummary and the ListShards APIs to determine the + shard IDs that are specified in the `MergeShards` request. + + If you try to operate on too many streams in parallel using + CreateStream, DeleteStream, `MergeShards`, or SplitShard, you receive a + `LimitExceededException`. + + `MergeShards` has a limit of five transactions per second per account. + + Args: + input: + An instance of `MergeShardsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `MergeShardsOutput`. + """ + return self._invoke(input, _models.MERGE_SHARDS, [], plugins) + + def put_record( + self, input: PutRecordInput, plugins: list[Plugin] | None = None + ) -> PutRecordOutput: + """ + Writes a single data record into an Amazon Kinesis data stream. Call + `PutRecord` to send data into the stream for real-time ingestion and + subsequent processing, one record at a time. Each shard can support + writes up to 1,000 records per second, up to a maximum data write total + of 10 MiB per second. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + You must specify the name of the stream that captures, stores, and + transports the data; a partition key; and the data blob itself. + + The data blob can be any type of data; for example, a segment from a log + file, geographic/location data, website clickstream data, and so on. + + The partition key is used by Kinesis Data Streams to distribute data + across shards. Kinesis Data Streams segregates the data records that + belong to a stream into multiple shards, using the partition key + associated with each data record to determine the shard to which a given + data record belongs. + + Partition keys are Unicode strings, with a maximum length limit of 256 + characters for each key. An MD5 hash function is used to map partition + keys to 128-bit integer values and to map associated data records to + shards using the hash key ranges of the shards. You can override hashing + the partition key to determine the shard by explicitly specifying a hash + value using the `ExplicitHashKey` parameter. For more information, see + [Adding Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + `PutRecord` returns the shard ID of where the data record was placed and + the sequence number that was assigned to the data record. + + Sequence numbers increase over time and are specific to a shard within a + stream, not across all shards within a stream. To guarantee strictly + increasing ordering, write serially to a shard and use the + `SequenceNumberForOrdering` parameter. For more information, see [Adding + Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Warning: + After you write a record to a stream, you cannot modify that record or + its order within the stream. + + If a `PutRecord` request cannot be processed because of insufficient + provisioned throughput on the shard involved in the request, `PutRecord` + throws `ProvisionedThroughputExceededException`. + + By default, data records are accessible for 24 hours from the time that + they are added to a stream. You can use IncreaseStreamRetentionPeriod or + DecreaseStreamRetentionPeriod to modify this retention period. + + Args: + input: + An instance of `PutRecordInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRecordOutput`. + """ + return self._invoke(input, _models.PUT_RECORD, [], plugins) + + def put_records( + self, input: PutRecordsInput, plugins: list[Plugin] | None = None + ) -> PutRecordsOutput: + """ + Writes multiple data records into a Kinesis data stream in a single call + (also referred to as a `PutRecords` request). Use this operation to send + data into the stream for data ingestion and processing. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Each `PutRecords` request can support up to 500 records. Each record in + the request can be as large as 10 MiB, up to a limit of 10 MiB for the + entire request, including partition keys. Each shard can support writes + up to 1,000 records per second, up to a maximum data write total of 1 MB + per second. + + You must specify the name of the stream that captures, stores, and + transports the data; and an array of request `Records`, with each record + in the array requiring a partition key and data blob. The record size + limit applies to the total size of the partition key and data blob. + + The data blob can be any type of data; for example, a segment from a log + file, geographic/location data, website clickstream data, and so on. + + The partition key is used by Kinesis Data Streams as input to a hash + function that maps the partition key and associated data to a specific + shard. An MD5 hash function is used to map partition keys to 128-bit + integer values and to map associated data records to shards. As a result + of this hashing mechanism, all data records with the same partition key + map to the same shard within the stream. For more information, see + [Adding Data to a + Stream](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Each record in the `Records` array may include an optional parameter, + `ExplicitHashKey`, which overrides the partition key to shard mapping. + This parameter allows a data producer to determine explicitly the shard + where the record is stored. For more information, see [Adding Multiple + Records with + PutRecords](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-putrecords) + in the *Amazon Kinesis Data Streams Developer Guide*. + + The `PutRecords` response includes an array of response `Records`. Each + record in the response array directly correlates with a record in the + request array using natural ordering, from the top to the bottom of the + request and response. The response `Records` array always includes the + same number of records as the request array. + + The response `Records` array includes both successfully and + unsuccessfully processed records. Kinesis Data Streams attempts to + process all records in each `PutRecords` request. A single record + failure does not stop the processing of subsequent records. As a result, + PutRecords doesn't guarantee the ordering of records. If you need to + read records in the same order they are written to the stream, use + PutRecord instead of `PutRecords`, and write to the same shard. + + A successfully processed record includes `ShardId` and `SequenceNumber` + values. The `ShardId` parameter identifies the shard in the stream where + the record is stored. The `SequenceNumber` parameter is an identifier + assigned to the put record, unique to all records in the stream. + + An unsuccessfully processed record includes `ErrorCode` and + `ErrorMessage` values. `ErrorCode` reflects the type of error and can be + one of the following values: `ProvisionedThroughputExceededException` or + `InternalFailure`. `ErrorMessage` provides more detailed information + about the `ProvisionedThroughputExceededException` exception including + the account ID, stream name, and shard ID of the record that was + throttled. For more information about partially successful responses, + see [Adding Multiple Records with + PutRecords](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-add-data-to-stream.html#kinesis-using-sdk-java-putrecords) + in the *Amazon Kinesis Data Streams Developer Guide*. + + Warning: + After you write a record to a stream, you cannot modify that record or + its order within the stream. + + By default, data records are accessible for 24 hours from the time that + they are added to a stream. You can use IncreaseStreamRetentionPeriod or + DecreaseStreamRetentionPeriod to modify this retention period. + + Args: + input: + An instance of `PutRecordsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutRecordsOutput`. + """ + return self._invoke(input, _models.PUT_RECORDS, [], plugins) + + def put_resource_policy( + self, input: PutResourcePolicyInput, plugins: list[Plugin] | None = None + ) -> PutResourcePolicyOutput: + """ + Attaches a resource-based policy to a data stream or registered + consumer. If you are using an identity other than the root user of the + Amazon Web Services account that owns the resource, the calling identity + must have the `PutResourcePolicy` permissions on the specified Kinesis + Data Streams resource and belong to the owner's account in order to use + this operation. If you don't have `PutResourcePolicy` permissions, + Amazon Kinesis Data Streams returns a `403 Access Denied error`. If you + receive a `ResourceNotFoundException`, check to see if you passed a + valid stream or consumer resource. + + Request patterns can be one of the following: + + - Data stream pattern: `arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+` + + - Consumer pattern: + `^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+` + + For more information, see [Controlling Access to Amazon Kinesis Data + Streams Resources Using + IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). + + Args: + input: + An instance of `PutResourcePolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutResourcePolicyOutput`. + """ + return self._invoke(input, _models.PUT_RESOURCE_POLICY, [], plugins) + + def register_stream_consumer( + self, input: RegisterStreamConsumerInput, plugins: list[Plugin] | None = None + ) -> RegisterStreamConsumerOutput: + """ + Registers a consumer with a Kinesis data stream. When you use this + operation, the consumer you register can then call SubscribeToShard to + receive data from the stream using enhanced fan-out, at a rate of up to + 2 MiB per second for every shard you subscribe to. This rate is + unaffected by the total number of consumers that read from the same + stream. + + You can add tags to the registered consumer when making a + `RegisterStreamConsumer` request by setting the `Tags` parameter. If you + pass the `Tags` parameter, in addition to having the + `kinesis:RegisterStreamConsumer` permission, you must also have the + `kinesis:TagResource` permission for the consumer that will be + registered. Tags will take effect from the `CREATING` status of the + consumer. + + With On-demand Advantage streams, you can register up to 50 consumers + per stream to use Enhanced Fan-out. With On-demand Standard and + Provisioned streams, you can register up to 20 consumers per stream to + use Enhanced Fan-out. A given consumer can only be registered with one + stream at a time. + + For an example of how to use this operation, see [Enhanced Fan-Out Using + the Kinesis Data Streams + API](https://docs.aws.amazon.com/streams/latest/dev/building-enhanced-consumers-api.html). + + The use of this operation has a limit of five transactions per second + per account. Also, only 5 consumers can be created simultaneously. In + other words, you cannot have more than 5 consumers in a `CREATING` + status at the same time. Registering a 6th consumer while there are 5 in + a `CREATING` status results in a `LimitExceededException`. + + Args: + input: + An instance of `RegisterStreamConsumerInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterStreamConsumerOutput`. + """ + return self._invoke(input, _models.REGISTER_STREAM_CONSUMER, [], plugins) + + def remove_tags_from_stream( + self, input: RemoveTagsFromStreamInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromStreamOutput: + """ + Removes tags from the specified Kinesis data stream. Removed tags are + deleted and cannot be recovered after this operation successfully + completes. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + If you specify a tag that does not exist, it is ignored. + + RemoveTagsFromStream has a limit of five transactions per second per + account. + + Args: + input: + An instance of `RemoveTagsFromStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromStreamOutput`. + """ + return self._invoke(input, _models.REMOVE_TAGS_FROM_STREAM, [], plugins) + + def split_shard( + self, input: SplitShardInput, plugins: list[Plugin] | None = None + ) -> SplitShardOutput: + """ + Splits a shard into two new shards in the Kinesis data stream, to + increase the stream's capacity to ingest and transport data. + `SplitShard` is called when there is a need to increase the overall + capacity of a stream because of an expected increase in the volume of + data records being ingested. This API is only supported for the data + streams with the provisioned capacity mode. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + You can also use `SplitShard` when a shard appears to be approaching its + maximum utilization; for example, the producers sending data into the + specific shard are suddenly sending more than previously anticipated. + You can also call `SplitShard` to increase stream capacity, so that more + Kinesis Data Streams applications can simultaneously read data from the + stream for real-time processing. + + You must specify the shard to be split and the new hash key, which is + the position in the shard where the shard gets split in two. In many + cases, the new hash key might be the average of the beginning and ending + hash key, but it can be any hash key value in the range being mapped + into the shard. For more information, see [Split a + Shard](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-split.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + + You can use DescribeStreamSummary and the ListShards APIs to determine + the shard ID and hash key values for the `ShardToSplit` and + `NewStartingHashKey` parameters that are specified in the `SplitShard` + request. + + `SplitShard` is an asynchronous operation. Upon receiving a `SplitShard` + request, Kinesis Data Streams immediately returns a response and sets + the stream status to `UPDATING`. After the operation is completed, + Kinesis Data Streams sets the stream status to `ACTIVE`. Read and write + operations continue to work while the stream is in the `UPDATING` state. + + You can use DescribeStreamSummary to check the status of the stream, + which is returned in `StreamStatus`. If the stream is in the `ACTIVE` + state, you can call `SplitShard`. + + If the specified stream does not exist, DescribeStreamSummary returns a + `ResourceNotFoundException`. If you try to create more shards than are + authorized for your account, you receive a `LimitExceededException`. + + For the default shard limit for an Amazon Web Services account, see + [Kinesis Data Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To increase this + limit, [contact Amazon Web Services + Support](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). + + If you try to operate on too many streams simultaneously using + CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive + a `LimitExceededException`. + + `SplitShard` has a limit of five transactions per second per account. + + Args: + input: + An instance of `SplitShardInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SplitShardOutput`. + """ + return self._invoke(input, _models.SPLIT_SHARD, [], plugins) + + def start_stream_encryption( + self, input: StartStreamEncryptionInput, plugins: list[Plugin] | None = None + ) -> StartStreamEncryptionOutput: + """ + Enables or updates server-side encryption using an Amazon Web Services + KMS key for a specified stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Starting encryption is an asynchronous operation. Upon receiving the + request, Kinesis Data Streams returns immediately and sets the status of + the stream to `UPDATING`. After the update is complete, Kinesis Data + Streams sets the status of the stream back to `ACTIVE`. Updating or + applying encryption normally takes a few seconds to complete, but it can + take minutes. You can continue to read and write data to your stream + while its status is `UPDATING`. Once the status of the stream is + `ACTIVE`, encryption begins for records written to the stream. + + API Limits: You can successfully apply a new Amazon Web Services KMS key + for server-side encryption 25 times in a rolling 24-hour period. + + Note: It can take up to 5 seconds after the stream is in an `ACTIVE` + status before all records written to the stream are encrypted. After you + enable encryption, you can verify that encryption is applied by + inspecting the API response from `PutRecord` or `PutRecords`. + + Args: + input: + An instance of `StartStreamEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartStreamEncryptionOutput`. + """ + return self._invoke(input, _models.START_STREAM_ENCRYPTION, [], plugins) + + def stop_stream_encryption( + self, input: StopStreamEncryptionInput, plugins: list[Plugin] | None = None + ) -> StopStreamEncryptionOutput: + """ + Disables server-side encryption for a specified stream. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Stopping encryption is an asynchronous operation. Upon receiving the + request, Kinesis Data Streams returns immediately and sets the status of + the stream to `UPDATING`. After the update is complete, Kinesis Data + Streams sets the status of the stream back to `ACTIVE`. Stopping + encryption normally takes a few seconds to complete, but it can take + minutes. You can continue to read and write data to your stream while + its status is `UPDATING`. Once the status of the stream is `ACTIVE`, + records written to the stream are no longer encrypted by Kinesis Data + Streams. + + API Limits: You can successfully disable server-side encryption 25 times + in a rolling 24-hour period. + + Note: It can take up to 5 seconds after the stream is in an `ACTIVE` + status before all records written to the stream are no longer subject to + encryption. After you disabled encryption, you can verify that + encryption is not applied by inspecting the API response from + `PutRecord` or `PutRecords`. + + Args: + input: + An instance of `StopStreamEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopStreamEncryptionOutput`. + """ + return self._invoke(input, _models.STOP_STREAM_ENCRYPTION, [], plugins) + + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds or updates tags for the specified Kinesis 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 can + assign up to 50 tags to a Kinesis resource. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Removes tags from the specified Kinesis resource. Removed tags are + deleted and can't be recovered after this operation completes + successfully. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + def update_account_settings( + self, input: UpdateAccountSettingsInput, plugins: list[Plugin] | None = None + ) -> UpdateAccountSettingsOutput: + """ + Updates the account-level settings for Amazon Kinesis Data Streams. + + Updating account settings is a synchronous operation. Upon receiving the + request, Kinesis Data Streams will return immediately with your + account's updated settings. + + **API limits** + + - Certain account configurations have minimum commitment windows. + Attempting to update your settings prior to the end of the minimum + commitment window might have certain restrictions. + + - This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + Args: + input: + An instance of `UpdateAccountSettingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAccountSettingsOutput`. + """ + return self._invoke(input, _models.UPDATE_ACCOUNT_SETTINGS, [], plugins) + + def update_channel( + self, input: UpdateChannelInput, plugins: list[Plugin] | None = None + ) -> UpdateChannelOutput: + """ + Updates the data freshness interval or the Amazon CloudWatch Logs + configuration of an existing channel. You cannot change the destination, + source stream, record format, schema, encryption configuration, or + service execution role of an existing channel. To change any other + setting, delete the channel and create a new one. + + Updating a channel is an asynchronous operation. Upon receiving the + request, Amazon Kinesis Data Streams sets the channel to the `UPDATING` + state and returns immediately. After the change is applied, Amazon + Kinesis Data Streams sets the channel back to the `ACTIVE` state. + + This operation has a call limit of 5 transactions per second (TPS) for + each Amazon Web Services account. Exceeding 5 TPS results in a + `LimitExceededException`. + + Args: + input: + An instance of `UpdateChannelInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateChannelOutput`. + """ + return self._invoke(input, _models.UPDATE_CHANNEL, [], plugins) + + def update_max_record_size( + self, input: UpdateMaxRecordSizeInput, plugins: list[Plugin] | None = None + ) -> UpdateMaxRecordSizeOutput: + """ + This allows you to update the `MaxRecordSize` of a single record that + you can write to, and read from a stream. You can ingest and digest + single records up to 10240 KiB. + + Args: + input: + An instance of `UpdateMaxRecordSizeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateMaxRecordSizeOutput`. + """ + return self._invoke(input, _models.UPDATE_MAX_RECORD_SIZE, [], plugins) + + def update_shard_count( + self, input: UpdateShardCountInput, plugins: list[Plugin] | None = None + ) -> UpdateShardCountOutput: + """ + Updates the shard count of the specified stream to the specified number + of shards. This API is only supported for the data streams with the + provisioned capacity mode. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Updating the shard count is an asynchronous operation. Upon receiving + the request, Kinesis Data Streams returns immediately and sets the + status of the stream to `UPDATING`. After the update is complete, + Kinesis Data Streams sets the status of the stream back to `ACTIVE`. + Depending on the size of the stream, the scaling action could take a few + minutes to complete. You can continue to read and write data to your + stream while its status is `UPDATING`. + + To update the shard count, Kinesis Data Streams performs splits or + merges on individual shards. This can cause short-lived shards to be + created, in addition to the final shards. These short-lived shards count + towards your total shard limit for your account in the Region. + + When using this operation, we recommend that you specify a target shard + count that is a multiple of 25% (25%, 50%, 75%, 100%). You can specify + any target value within your shard limit. However, if you specify a + target that isn't a multiple of 25%, the scaling action might take + longer to complete. + + This operation has the following default limits. By default, you cannot + do the following: + + - Scale more than ten times per rolling 24-hour period per stream + + - Scale up to more than double your current shard count for a stream + + - Scale down below half your current shard count for a stream + + - Scale up to more than 10000 shards in a stream + + - Scale a stream with more than 10000 shards down unless the result is + less than 10000 shards + + - Scale up to more than the shard limit for your account + + - Make over 10 TPS. TPS over 10 will trigger the LimitExceededException + + For the default limits for an Amazon Web Services account, see [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To request an + increase in the call rate limit, the shard limit for this API, or your + overall shard limit, use the [limits + form](https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis). + + Args: + input: + An instance of `UpdateShardCountInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateShardCountOutput`. + """ + return self._invoke(input, _models.UPDATE_SHARD_COUNT, [], plugins) + + def update_stream_mode( + self, input: UpdateStreamModeInput, plugins: list[Plugin] | None = None + ) -> UpdateStreamModeOutput: + """ + Updates the capacity mode of the data stream. Currently, in Kinesis Data + Streams, you can choose between an **on-demand** capacity mode and a + **provisioned** capacity mode for your data stream. + + If you'd still like to proactively scale your on-demand data stream's + capacity, you can unlock the warm throughput feature for on-demand data + streams by enabling `MinimumThroughputBillingCommitment` for your + account. Once your account has `MinimumThroughputBillingCommitment` + enabled, you can specify the warm throughput in MiB per second that your + stream can support in writes. + + Args: + input: + An instance of `UpdateStreamModeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamModeOutput`. + """ + return self._invoke(input, _models.UPDATE_STREAM_MODE, [], plugins) + + def update_stream_record_distribution_strategy( + self, + input: UpdateStreamRecordDistributionStrategyInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamRecordDistributionStrategyOutput: + """ + Updates the record distribution strategy for the specified Amazon + Kinesis Data Streams on-demand data stream. The record distribution + strategy determines how Amazon Kinesis Data Streams distributes records + across the shards in a stream. + + Note: + You must specify the stream using the `StreamARN` parameter. + + The record distribution strategy is a stream-level setting. You can + switch between the following strategies at any time, and the change + takes effect immediately without downtime, data loss, or disruption to + producer or consumer applications: + + - `AUTO` -- Amazon Kinesis Data Streams distributes records evenly + across shards using service-managed algorithms, and ignores any + partition key and `ExplicitHashKey` that a producer provides. Use this + strategy for stateless workloads that do not require partition-key + ordering. + + - `USER_PARTITION_KEY` -- Producers must provide a partition key, and + Amazon Kinesis Data Streams uses the partition key to determine shard + placement. Records that share a partition key are sent to the same + shard. This is the default strategy. + + This operation is only supported for data streams that use the on-demand + capacity mode. Provisioned capacity mode streams do not support the + record distribution strategy setting. Attempting to set `AUTO` on a + provisioned stream results in an `InvalidArgumentException`. + + New records that arrive after the change are distributed according to + the new strategy. Records already in the stream keep their original + shard assignments and are not redistributed. + + Args: + input: + An instance of `UpdateStreamRecordDistributionStrategyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamRecordDistributionStrategyOutput`. + """ + return self._invoke( + input, _models.UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY, [], plugins + ) + + def update_stream_warm_throughput( + self, + input: UpdateStreamWarmThroughputInput, + plugins: list[Plugin] | None = None, + ) -> UpdateStreamWarmThroughputOutput: + """ + Updates the warm throughput configuration for the specified Amazon + Kinesis Data Streams on-demand data stream. Updates the warm throughput + configuration for the specified on-demand data stream. Use this + operation to scale your stream to a specified throughput level before + anticipated traffic spikes, or to release excess capacity after traffic + has decreased. + + Note: + When invoking this API, you must use either the `StreamARN` or the + `StreamName` parameter, or both. It is recommended that you use the + `StreamARN` input parameter when you invoke this API. + + Updating the warm throughput is an asynchronous operation. Upon + receiving the request, Kinesis Data Streams returns immediately and sets + the status of the stream to `UPDATING`. After the update is complete, + Kinesis Data Streams sets the status of the stream back to `ACTIVE`. + Depending on the size of the stream, the scaling action could take a few + minutes to complete. You can continue to read and write data to your + stream while its status is `UPDATING`. + + This operation is only supported for data streams with the on-demand + capacity mode in accounts that have `MinimumThroughputBillingCommitment` + enabled. Provisioned capacity mode streams do not support warm + throughput configuration. + + To release excess capacity, call the API again and set the warm + throughput to the same or a lower value. + + This operation has the following default limits. By default, you cannot + do the following: + + - Scale to more than 10 GiBps for an on-demand stream. + + - This API has a call limit of 5 transactions per second (TPS) for each + Amazon Web Services account. TPS over 5 will initiate the + `LimitExceededException`. + + For the default limits for an Amazon Web Services account, see [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*. To request an + increase in the call rate limit, the shard limit for this API, or your + overall shard limit, use the [limits + form](https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis). + + Args: + input: + An instance of `UpdateStreamWarmThroughputInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateStreamWarmThroughputOutput`. + """ + return self._invoke(input, _models.UPDATE_STREAM_WARM_THROUGHPUT, [], plugins) + + def _new_config(self) -> KinesisConfig: + return KinesisConfig.resolve() + + def _post_setup(self, config: KinesisConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/config.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/config.py new file mode 100644 index 00000000..c4f63d46 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/config.py @@ -0,0 +1,394 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_account_id_endpoint_mode_program, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.config.validators import validate_account_id_endpoint_mode +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsJson11ClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import KINESIS_20131202 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AddTagsToStreamInput, + AddTagsToStreamOutput, + CreateChannelInput, + CreateChannelOutput, + CreateStreamInput, + CreateStreamOutput, + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + DeleteChannelInput, + DeleteChannelOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteStreamInput, + DeleteStreamOutput, + DeregisterStreamConsumerInput, + DeregisterStreamConsumerOutput, + DescribeAccountSettingsInput, + DescribeAccountSettingsOutput, + DescribeChannelInput, + DescribeChannelOutput, + DescribeLimitsInput, + DescribeLimitsOutput, + DescribeStreamConsumerInput, + DescribeStreamConsumerOutput, + DescribeStreamInput, + DescribeStreamOutput, + DescribeStreamSummaryInput, + DescribeStreamSummaryOutput, + DisableEnhancedMonitoringInput, + DisableEnhancedMonitoringOutput, + EnableEnhancedMonitoringInput, + EnableEnhancedMonitoringOutput, + GetRecordsInput, + GetRecordsOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetShardIteratorInput, + GetShardIteratorOutput, + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + ListChannelsInput, + ListChannelsOutput, + ListShardsInput, + ListShardsOutput, + ListStreamConsumersInput, + ListStreamConsumersOutput, + ListStreamsInput, + ListStreamsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTagsForStreamInput, + ListTagsForStreamOutput, + MergeShardsInput, + MergeShardsOutput, + PutRecordInput, + PutRecordOutput, + PutRecordsInput, + PutRecordsOutput, + PutResourcePolicyInput, + PutResourcePolicyOutput, + RegisterStreamConsumerInput, + RegisterStreamConsumerOutput, + RemoveTagsFromStreamInput, + RemoveTagsFromStreamOutput, + SplitShardInput, + SplitShardOutput, + StartStreamEncryptionInput, + StartStreamEncryptionOutput, + StopStreamEncryptionInput, + StopStreamEncryptionOutput, + SubscribeToShardInput, + SubscribeToShardOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAccountSettingsInput, + UpdateAccountSettingsOutput, + UpdateChannelInput, + UpdateChannelOutput, + UpdateMaxRecordSizeInput, + UpdateMaxRecordSizeOutput, + UpdateShardCountInput, + UpdateShardCountOutput, + UpdateStreamModeInput, + UpdateStreamModeOutput, + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + UpdateStreamWarmThroughputInput, + UpdateStreamWarmThroughputOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddTagsToStreamInput, AddTagsToStreamOutput, Any, Any], + Interceptor[CreateChannelInput, CreateChannelOutput, Any, Any], + Interceptor[CreateStreamInput, CreateStreamOutput, Any, Any], + Interceptor[ + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + Any, + Any, + ], + Interceptor[DeleteChannelInput, DeleteChannelOutput, Any, Any], + Interceptor[DeleteResourcePolicyInput, DeleteResourcePolicyOutput, Any, Any], + Interceptor[DeleteStreamInput, DeleteStreamOutput, Any, Any], + Interceptor[ + DeregisterStreamConsumerInput, DeregisterStreamConsumerOutput, Any, Any + ], + Interceptor[ + DescribeAccountSettingsInput, DescribeAccountSettingsOutput, Any, Any + ], + Interceptor[DescribeChannelInput, DescribeChannelOutput, Any, Any], + Interceptor[DescribeLimitsInput, DescribeLimitsOutput, Any, Any], + Interceptor[DescribeStreamInput, DescribeStreamOutput, Any, Any], + Interceptor[ + DescribeStreamConsumerInput, DescribeStreamConsumerOutput, Any, Any + ], + Interceptor[DescribeStreamSummaryInput, DescribeStreamSummaryOutput, Any, Any], + Interceptor[ + DisableEnhancedMonitoringInput, DisableEnhancedMonitoringOutput, Any, Any + ], + Interceptor[ + EnableEnhancedMonitoringInput, EnableEnhancedMonitoringOutput, Any, Any + ], + Interceptor[GetRecordsInput, GetRecordsOutput, Any, Any], + Interceptor[GetResourcePolicyInput, GetResourcePolicyOutput, Any, Any], + Interceptor[GetShardIteratorInput, GetShardIteratorOutput, Any, Any], + Interceptor[ + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + Any, + Any, + ], + Interceptor[ListChannelsInput, ListChannelsOutput, Any, Any], + Interceptor[ListShardsInput, ListShardsOutput, Any, Any], + Interceptor[ListStreamConsumersInput, ListStreamConsumersOutput, Any, Any], + Interceptor[ListStreamsInput, ListStreamsOutput, Any, Any], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ListTagsForStreamInput, ListTagsForStreamOutput, Any, Any], + Interceptor[MergeShardsInput, MergeShardsOutput, Any, Any], + Interceptor[PutRecordInput, PutRecordOutput, Any, Any], + Interceptor[PutRecordsInput, PutRecordsOutput, Any, Any], + Interceptor[PutResourcePolicyInput, PutResourcePolicyOutput, Any, Any], + Interceptor[ + RegisterStreamConsumerInput, RegisterStreamConsumerOutput, Any, Any + ], + Interceptor[RemoveTagsFromStreamInput, RemoveTagsFromStreamOutput, Any, Any], + Interceptor[SplitShardInput, SplitShardOutput, Any, Any], + Interceptor[StartStreamEncryptionInput, StartStreamEncryptionOutput, Any, Any], + Interceptor[StopStreamEncryptionInput, StopStreamEncryptionOutput, Any, Any], + Interceptor[SubscribeToShardInput, SubscribeToShardOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAccountSettingsInput, UpdateAccountSettingsOutput, Any, Any], + Interceptor[UpdateChannelInput, UpdateChannelOutput, Any, Any], + Interceptor[UpdateMaxRecordSizeInput, UpdateMaxRecordSizeOutput, Any, Any], + Interceptor[UpdateShardCountInput, UpdateShardCountOutput, Any, Any], + Interceptor[UpdateStreamModeInput, UpdateStreamModeOutput, Any, Any], + Interceptor[ + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + Any, + Any, + ], + Interceptor[ + UpdateStreamWarmThroughputInput, UpdateStreamWarmThroughputOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.kinesis", + service_target="Kinesis_20131202", + service_schema=KINESIS_20131202, +) + + +class _KinesisConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + account_id_endpoint_mode: str | None + + +@dataclass(kw_only=True, repr=False, init=False) +class KinesisConfig(AwsConfig): + """Kinesis configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + account_id_endpoint_mode: str | None = None + """The AccountId Endpoint Mode. Defaults to preferred.""" + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "account_id_endpoint_mode": FieldSpec( + default="preferred", + resolver=resolve_account_id_endpoint_mode_program, + validator=validate_account_id_endpoint_mode, + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("kinesis").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="kinesis") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_KinesisConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[KinesisConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.py new file mode 100644 index 00000000..4a701d08 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.py @@ -0,0 +1,1014 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccessDeniedException": "ACCESS_DENIED_EXCEPTION", + "AddTagsToStreamInput": "ADD_TAGS_TO_STREAM_INPUT", + "AddTagsToStreamOutput": "ADD_TAGS_TO_STREAM_OUTPUT", + "ChannelDescription": "CHANNEL_DESCRIPTION", + "ChannelDestinationType": "CHANNEL_DESTINATION_TYPE", + "ChannelEncryptionConfiguration": "CHANNEL_ENCRYPTION_CONFIGURATION", + "ChannelEncryptionType": "CHANNEL_ENCRYPTION_TYPE", + "ChannelLoggingConfiguration": "CHANNEL_LOGGING_CONFIGURATION", + "ChannelLoggingUpdateInput": "CHANNEL_LOGGING_UPDATE_INPUT", + "ChannelStatus": "CHANNEL_STATUS", + "ChannelStreamConfiguration": "CHANNEL_STREAM_CONFIGURATION", + "ChannelStreamDescription": "CHANNEL_STREAM_DESCRIPTION", + "ChannelStreamIdentifier": "CHANNEL_STREAM_IDENTIFIER", + "ChannelSummary": "CHANNEL_SUMMARY", + "ChildShard": "CHILD_SHARD", + "CloudWatchLogs": "CLOUD_WATCH_LOGS", + "CloudWatchLogsUpdateInput": "CLOUD_WATCH_LOGS_UPDATE_INPUT", + "Consumer": "CONSUMER", + "ConsumerDescription": "CONSUMER_DESCRIPTION", + "ConsumerStatus": "CONSUMER_STATUS", + "CreateChannelInput": "CREATE_CHANNEL_INPUT", + "CreateChannelOutput": "CREATE_CHANNEL_OUTPUT", + "CreateStreamInput": "CREATE_STREAM_INPUT", + "CreateStreamOutput": "CREATE_STREAM_OUTPUT", + "DeadLetterQueueS3Configuration": "DEAD_LETTER_QUEUE_S3_CONFIGURATION", + "DecreaseStreamRetentionPeriodInput": "DECREASE_STREAM_RETENTION_PERIOD_INPUT", + "DecreaseStreamRetentionPeriodOutput": "DECREASE_STREAM_RETENTION_PERIOD_OUTPUT", + "DeleteChannelInput": "DELETE_CHANNEL_INPUT", + "DeleteChannelOutput": "DELETE_CHANNEL_OUTPUT", + "DeleteResourcePolicyInput": "DELETE_RESOURCE_POLICY_INPUT", + "DeleteResourcePolicyOutput": "DELETE_RESOURCE_POLICY_OUTPUT", + "DeleteStreamInput": "DELETE_STREAM_INPUT", + "DeleteStreamOutput": "DELETE_STREAM_OUTPUT", + "DeregisterStreamConsumerInput": "DEREGISTER_STREAM_CONSUMER_INPUT", + "DeregisterStreamConsumerOutput": "DEREGISTER_STREAM_CONSUMER_OUTPUT", + "DescribeAccountSettingsInput": "DESCRIBE_ACCOUNT_SETTINGS_INPUT", + "DescribeAccountSettingsOutput": "DESCRIBE_ACCOUNT_SETTINGS_OUTPUT", + "DescribeChannelInput": "DESCRIBE_CHANNEL_INPUT", + "DescribeChannelOutput": "DESCRIBE_CHANNEL_OUTPUT", + "DescribeLimitsInput": "DESCRIBE_LIMITS_INPUT", + "DescribeLimitsOutput": "DESCRIBE_LIMITS_OUTPUT", + "DescribeStreamConsumerInput": "DESCRIBE_STREAM_CONSUMER_INPUT", + "DescribeStreamConsumerOutput": "DESCRIBE_STREAM_CONSUMER_OUTPUT", + "DescribeStreamInput": "DESCRIBE_STREAM_INPUT", + "DescribeStreamOutput": "DESCRIBE_STREAM_OUTPUT", + "DescribeStreamSummaryInput": "DESCRIBE_STREAM_SUMMARY_INPUT", + "DescribeStreamSummaryOutput": "DESCRIBE_STREAM_SUMMARY_OUTPUT", + "DisableEnhancedMonitoringInput": "DISABLE_ENHANCED_MONITORING_INPUT", + "DisableEnhancedMonitoringOutput": "DISABLE_ENHANCED_MONITORING_OUTPUT", + "DryRunOperationException": "DRY_RUN_OPERATION_EXCEPTION", + "EnableEnhancedMonitoringInput": "ENABLE_ENHANCED_MONITORING_INPUT", + "EnableEnhancedMonitoringOutput": "ENABLE_ENHANCED_MONITORING_OUTPUT", + "EncryptionType": "ENCRYPTION_TYPE", + "EnhancedMetrics": "ENHANCED_METRICS", + "ExpiredIteratorException": "EXPIRED_ITERATOR_EXCEPTION", + "ExpiredNextTokenException": "EXPIRED_NEXT_TOKEN_EXCEPTION", + "GetRecordsInput": "GET_RECORDS_INPUT", + "GetRecordsOutput": "GET_RECORDS_OUTPUT", + "GetResourcePolicyInput": "GET_RESOURCE_POLICY_INPUT", + "GetResourcePolicyOutput": "GET_RESOURCE_POLICY_OUTPUT", + "GetShardIteratorInput": "GET_SHARD_ITERATOR_INPUT", + "GetShardIteratorOutput": "GET_SHARD_ITERATOR_OUTPUT", + "HashKeyRange": "HASH_KEY_RANGE", + "IncreaseStreamRetentionPeriodInput": "INCREASE_STREAM_RETENTION_PERIOD_INPUT", + "IncreaseStreamRetentionPeriodOutput": "INCREASE_STREAM_RETENTION_PERIOD_OUTPUT", + "InternalFailureException": "INTERNAL_FAILURE_EXCEPTION", + "InvalidArgumentException": "INVALID_ARGUMENT_EXCEPTION", + "KMSAccessDeniedException": "KMS_ACCESS_DENIED_EXCEPTION", + "KMSDisabledException": "KMS_DISABLED_EXCEPTION", + "KMSInvalidStateException": "KMS_INVALID_STATE_EXCEPTION", + "KMSNotFoundException": "KMS_NOT_FOUND_EXCEPTION", + "KMSOptInRequired": "KMS_OPT_IN_REQUIRED", + "KMSThrottlingException": "KMS_THROTTLING_EXCEPTION", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "ListChannelsInput": "LIST_CHANNELS_INPUT", + "ListChannelsOutput": "LIST_CHANNELS_OUTPUT", + "ListShardsInput": "LIST_SHARDS_INPUT", + "ListShardsOutput": "LIST_SHARDS_OUTPUT", + "ListStreamConsumersInput": "LIST_STREAM_CONSUMERS_INPUT", + "ListStreamConsumersOutput": "LIST_STREAM_CONSUMERS_OUTPUT", + "ListStreamsInput": "LIST_STREAMS_INPUT", + "ListStreamsOutput": "LIST_STREAMS_OUTPUT", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", + "ListTagsForStreamInput": "LIST_TAGS_FOR_STREAM_INPUT", + "ListTagsForStreamOutput": "LIST_TAGS_FOR_STREAM_OUTPUT", + "MergeShardsInput": "MERGE_SHARDS_INPUT", + "MergeShardsOutput": "MERGE_SHARDS_OUTPUT", + "MetricsName": "METRICS_NAME", + "MinimumThroughputBillingCommitmentInput": "MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT", + "MinimumThroughputBillingCommitmentInputStatus": "MINIMUM_THROUGHPUT_BILLING_COMMITMENT_INPUT_STATUS", + "MinimumThroughputBillingCommitmentOutput": "MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT", + "MinimumThroughputBillingCommitmentOutputStatus": "MINIMUM_THROUGHPUT_BILLING_COMMITMENT_OUTPUT_STATUS", + "PartitionField": "PARTITION_FIELD", + "PartitionSpec": "PARTITION_SPEC", + "PartitionTransform": "PARTITION_TRANSFORM", + "ProvisionedThroughputExceededException": "PROVISIONED_THROUGHPUT_EXCEEDED_EXCEPTION", + "PutRecordInput": "PUT_RECORD_INPUT", + "PutRecordOutput": "PUT_RECORD_OUTPUT", + "PutRecordsInput": "PUT_RECORDS_INPUT", + "PutRecordsOutput": "PUT_RECORDS_OUTPUT", + "PutRecordsRequestEntry": "PUT_RECORDS_REQUEST_ENTRY", + "PutRecordsResultEntry": "PUT_RECORDS_RESULT_ENTRY", + "PutResourcePolicyInput": "PUT_RESOURCE_POLICY_INPUT", + "PutResourcePolicyOutput": "PUT_RESOURCE_POLICY_OUTPUT", + "Record": "RECORD", + "RecordConfiguration": "RECORD_CONFIGURATION", + "RecordDistributionStrategy": "RECORD_DISTRIBUTION_STRATEGY", + "RecordFormatType": "RECORD_FORMAT_TYPE", + "RegisterStreamConsumerInput": "REGISTER_STREAM_CONSUMER_INPUT", + "RegisterStreamConsumerOutput": "REGISTER_STREAM_CONSUMER_OUTPUT", + "RemoveTagsFromStreamInput": "REMOVE_TAGS_FROM_STREAM_INPUT", + "RemoveTagsFromStreamOutput": "REMOVE_TAGS_FROM_STREAM_OUTPUT", + "ResourceInUseException": "RESOURCE_IN_USE_EXCEPTION", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "S3CompressionType": "S3_COMPRESSION_TYPE", + "S3DestinationConfiguration": "S3_DESTINATION_CONFIGURATION", + "S3DestinationDescription": "S3_DESTINATION_DESCRIPTION", + "S3DestinationUpdateInput": "S3_DESTINATION_UPDATE_INPUT", + "S3StorageClass": "S3_STORAGE_CLASS", + "S3StorageConfiguration": "S3_STORAGE_CONFIGURATION", + "S3TablesCompressionType": "S3_TABLES_COMPRESSION_TYPE", + "S3TablesConfiguration": "S3_TABLES_CONFIGURATION", + "S3TablesDestinationConfiguration": "S3_TABLES_DESTINATION_CONFIGURATION", + "S3TablesDestinationDescription": "S3_TABLES_DESTINATION_DESCRIPTION", + "S3TablesDestinationUpdateInput": "S3_TABLES_DESTINATION_UPDATE_INPUT", + "ScalingType": "SCALING_TYPE", + "SequenceNumberRange": "SEQUENCE_NUMBER_RANGE", + "Shard": "SHARD", + "ShardFilter": "SHARD_FILTER", + "ShardFilterType": "SHARD_FILTER_TYPE", + "ShardIteratorType": "SHARD_ITERATOR_TYPE", + "SplitShardInput": "SPLIT_SHARD_INPUT", + "SplitShardOutput": "SPLIT_SHARD_OUTPUT", + "StartingPosition": "STARTING_POSITION", + "StartStreamEncryptionInput": "START_STREAM_ENCRYPTION_INPUT", + "StartStreamEncryptionOutput": "START_STREAM_ENCRYPTION_OUTPUT", + "StopStreamEncryptionInput": "STOP_STREAM_ENCRYPTION_INPUT", + "StopStreamEncryptionOutput": "STOP_STREAM_ENCRYPTION_OUTPUT", + "StreamDescription": "STREAM_DESCRIPTION", + "StreamDescriptionSummary": "STREAM_DESCRIPTION_SUMMARY", + "StreamFilter": "STREAM_FILTER", + "StreamMode": "STREAM_MODE", + "StreamModeDetails": "STREAM_MODE_DETAILS", + "StreamStatus": "STREAM_STATUS", + "StreamSummary": "STREAM_SUMMARY", + "SubscribeToShardEvent": "SUBSCRIBE_TO_SHARD_EVENT", + "SubscribeToShardEventStream": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamSubscribeToShardEvent": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamResourceNotFoundException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamResourceInUseException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSDisabledException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSInvalidStateException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSAccessDeniedException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSNotFoundException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSOptInRequired": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamKMSThrottlingException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamInternalFailureException": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardEventStreamUnknown": "SUBSCRIBE_TO_SHARD_EVENT_STREAM", + "SubscribeToShardInput": "SUBSCRIBE_TO_SHARD_INPUT", + "SubscribeToShardOutput": "SUBSCRIBE_TO_SHARD_OUTPUT", + "Tag": "TAG", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", + "UpdateAccountSettingsInput": "UPDATE_ACCOUNT_SETTINGS_INPUT", + "UpdateAccountSettingsOutput": "UPDATE_ACCOUNT_SETTINGS_OUTPUT", + "UpdateChannelInput": "UPDATE_CHANNEL_INPUT", + "UpdateChannelOutput": "UPDATE_CHANNEL_OUTPUT", + "UpdateMaxRecordSizeInput": "UPDATE_MAX_RECORD_SIZE_INPUT", + "UpdateMaxRecordSizeOutput": "UPDATE_MAX_RECORD_SIZE_OUTPUT", + "UpdateShardCountInput": "UPDATE_SHARD_COUNT_INPUT", + "UpdateShardCountOutput": "UPDATE_SHARD_COUNT_OUTPUT", + "UpdateStreamModeInput": "UPDATE_STREAM_MODE_INPUT", + "UpdateStreamModeOutput": "UPDATE_STREAM_MODE_OUTPUT", + "UpdateStreamRecordDistributionStrategyInput": "UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_INPUT", + "UpdateStreamRecordDistributionStrategyOutput": "UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY_OUTPUT", + "UpdateStreamWarmThroughputInput": "UPDATE_STREAM_WARM_THROUGHPUT_INPUT", + "UpdateStreamWarmThroughputOutput": "UPDATE_STREAM_WARM_THROUGHPUT_OUTPUT", + "ValidationException": "VALIDATION_EXCEPTION", + "WarmThroughputObject": "WARM_THROUGHPUT_OBJECT", + }, + shape_names=frozenset( + { + "AccessDeniedException", + "AddTagsToStreamInput", + "AddTagsToStreamOutput", + "ChannelDescription", + "ChannelDestinationType", + "ChannelEncryptionConfiguration", + "ChannelEncryptionType", + "ChannelLoggingConfiguration", + "ChannelLoggingUpdateInput", + "ChannelStatus", + "ChannelStreamConfiguration", + "ChannelStreamDescription", + "ChannelStreamIdentifier", + "ChannelSummary", + "ChildShard", + "CloudWatchLogs", + "CloudWatchLogsUpdateInput", + "Consumer", + "ConsumerDescription", + "ConsumerStatus", + "CreateChannelInput", + "CreateChannelOutput", + "CreateStreamInput", + "CreateStreamOutput", + "DeadLetterQueueS3Configuration", + "DecreaseStreamRetentionPeriodInput", + "DecreaseStreamRetentionPeriodOutput", + "DeleteChannelInput", + "DeleteChannelOutput", + "DeleteResourcePolicyInput", + "DeleteResourcePolicyOutput", + "DeleteStreamInput", + "DeleteStreamOutput", + "DeregisterStreamConsumerInput", + "DeregisterStreamConsumerOutput", + "DescribeAccountSettingsInput", + "DescribeAccountSettingsOutput", + "DescribeChannelInput", + "DescribeChannelOutput", + "DescribeLimitsInput", + "DescribeLimitsOutput", + "DescribeStreamConsumerInput", + "DescribeStreamConsumerOutput", + "DescribeStreamInput", + "DescribeStreamOutput", + "DescribeStreamSummaryInput", + "DescribeStreamSummaryOutput", + "DisableEnhancedMonitoringInput", + "DisableEnhancedMonitoringOutput", + "DryRunOperationException", + "EnableEnhancedMonitoringInput", + "EnableEnhancedMonitoringOutput", + "EncryptionType", + "EnhancedMetrics", + "ExpiredIteratorException", + "ExpiredNextTokenException", + "GetRecordsInput", + "GetRecordsOutput", + "GetResourcePolicyInput", + "GetResourcePolicyOutput", + "GetShardIteratorInput", + "GetShardIteratorOutput", + "HashKeyRange", + "IncreaseStreamRetentionPeriodInput", + "IncreaseStreamRetentionPeriodOutput", + "InternalFailureException", + "InvalidArgumentException", + "KMSAccessDeniedException", + "KMSDisabledException", + "KMSInvalidStateException", + "KMSNotFoundException", + "KMSOptInRequired", + "KMSThrottlingException", + "LimitExceededException", + "ListChannelsInput", + "ListChannelsOutput", + "ListShardsInput", + "ListShardsOutput", + "ListStreamConsumersInput", + "ListStreamConsumersOutput", + "ListStreamsInput", + "ListStreamsOutput", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", + "ListTagsForStreamInput", + "ListTagsForStreamOutput", + "MergeShardsInput", + "MergeShardsOutput", + "MetricsName", + "MinimumThroughputBillingCommitmentInput", + "MinimumThroughputBillingCommitmentInputStatus", + "MinimumThroughputBillingCommitmentOutput", + "MinimumThroughputBillingCommitmentOutputStatus", + "PartitionField", + "PartitionSpec", + "PartitionTransform", + "ProvisionedThroughputExceededException", + "PutRecordInput", + "PutRecordOutput", + "PutRecordsInput", + "PutRecordsOutput", + "PutRecordsRequestEntry", + "PutRecordsResultEntry", + "PutResourcePolicyInput", + "PutResourcePolicyOutput", + "Record", + "RecordConfiguration", + "RecordDistributionStrategy", + "RecordFormatType", + "RegisterStreamConsumerInput", + "RegisterStreamConsumerOutput", + "RemoveTagsFromStreamInput", + "RemoveTagsFromStreamOutput", + "ResourceInUseException", + "ResourceNotFoundException", + "S3CompressionType", + "S3DestinationConfiguration", + "S3DestinationDescription", + "S3DestinationUpdateInput", + "S3StorageClass", + "S3StorageConfiguration", + "S3TablesCompressionType", + "S3TablesConfiguration", + "S3TablesDestinationConfiguration", + "S3TablesDestinationDescription", + "S3TablesDestinationUpdateInput", + "ScalingType", + "SequenceNumberRange", + "Shard", + "ShardFilter", + "ShardFilterType", + "ShardIteratorType", + "SplitShardInput", + "SplitShardOutput", + "StartStreamEncryptionInput", + "StartStreamEncryptionOutput", + "StartingPosition", + "StopStreamEncryptionInput", + "StopStreamEncryptionOutput", + "StreamDescription", + "StreamDescriptionSummary", + "StreamFilter", + "StreamMode", + "StreamModeDetails", + "StreamStatus", + "StreamSummary", + "SubscribeToShardEvent", + "SubscribeToShardEventStream", + "SubscribeToShardInput", + "SubscribeToShardOutput", + "Tag", + "TagResourceInput", + "TagResourceOutput", + "UntagResourceInput", + "UntagResourceOutput", + "UpdateAccountSettingsInput", + "UpdateAccountSettingsOutput", + "UpdateChannelInput", + "UpdateChannelOutput", + "UpdateMaxRecordSizeInput", + "UpdateMaxRecordSizeOutput", + "UpdateShardCountInput", + "UpdateShardCountOutput", + "UpdateStreamModeInput", + "UpdateStreamModeOutput", + "UpdateStreamRecordDistributionStrategyInput", + "UpdateStreamRecordDistributionStrategyOutput", + "UpdateStreamWarmThroughputInput", + "UpdateStreamWarmThroughputOutput", + "ValidationException", + "WarmThroughputObject", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ADD_TAGS_TO_STREAM", + "CREATE_CHANNEL", + "CREATE_STREAM", + "DECREASE_STREAM_RETENTION_PERIOD", + "DELETE_CHANNEL", + "DELETE_RESOURCE_POLICY", + "DELETE_STREAM", + "DEREGISTER_STREAM_CONSUMER", + "DESCRIBE_ACCOUNT_SETTINGS", + "DESCRIBE_CHANNEL", + "DESCRIBE_LIMITS", + "DESCRIBE_STREAM", + "DESCRIBE_STREAM_CONSUMER", + "DESCRIBE_STREAM_SUMMARY", + "DISABLE_ENHANCED_MONITORING", + "ENABLE_ENHANCED_MONITORING", + "GET_RECORDS", + "GET_RESOURCE_POLICY", + "GET_SHARD_ITERATOR", + "INCREASE_STREAM_RETENTION_PERIOD", + "LIST_CHANNELS", + "LIST_SHARDS", + "LIST_STREAM_CONSUMERS", + "LIST_STREAMS", + "LIST_TAGS_FOR_RESOURCE", + "LIST_TAGS_FOR_STREAM", + "MERGE_SHARDS", + "PUT_RECORD", + "PUT_RECORDS", + "PUT_RESOURCE_POLICY", + "REGISTER_STREAM_CONSUMER", + "REMOVE_TAGS_FROM_STREAM", + "SPLIT_SHARD", + "START_STREAM_ENCRYPTION", + "STOP_STREAM_ENCRYPTION", + "SUBSCRIBE_TO_SHARD", + "TAG_RESOURCE", + "UNTAG_RESOURCE", + "UPDATE_ACCOUNT_SETTINGS", + "UPDATE_CHANNEL", + "UPDATE_MAX_RECORD_SIZE", + "UPDATE_SHARD_COUNT", + "UPDATE_STREAM_MODE", + "UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY", + "UPDATE_STREAM_WARM_THROUGHPUT", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ADD_TAGS_TO_STREAM"] = ( + "ADD_TAGS_TO_STREAM", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CHANNEL"] = ( + "CREATE_CHANNEL", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#KMSAccessDeniedException", + "com.amazonaws.kinesis#KMSDisabledException", + "com.amazonaws.kinesis#KMSInvalidStateException", + "com.amazonaws.kinesis#KMSNotFoundException", + "com.amazonaws.kinesis#KMSOptInRequired", + "com.amazonaws.kinesis#KMSThrottlingException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_STREAM"] = ( + "CREATE_STREAM", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DECREASE_STREAM_RETENTION_PERIOD"] = ( + "DECREASE_STREAM_RETENTION_PERIOD", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CHANNEL"] = ( + "DELETE_CHANNEL", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_RESOURCE_POLICY"] = ( + "DELETE_RESOURCE_POLICY", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_STREAM"] = ( + "DELETE_STREAM", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_STREAM_CONSUMER"] = ( + "DEREGISTER_STREAM_CONSUMER", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACCOUNT_SETTINGS"] = ( + "DESCRIBE_ACCOUNT_SETTINGS", + ("com.amazonaws.kinesis#LimitExceededException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CHANNEL"] = ( + "DESCRIBE_CHANNEL", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_LIMITS"] = ( + "DESCRIBE_LIMITS", + ("com.amazonaws.kinesis#LimitExceededException",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STREAM"] = ( + "DESCRIBE_STREAM", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STREAM_CONSUMER"] = ( + "DESCRIBE_STREAM_CONSUMER", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_STREAM_SUMMARY"] = ( + "DESCRIBE_STREAM_SUMMARY", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_ENHANCED_MONITORING"] = ( + "DISABLE_ENHANCED_MONITORING", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_ENHANCED_MONITORING"] = ( + "ENABLE_ENHANCED_MONITORING", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RECORDS"] = ( + "GET_RECORDS", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#DryRunOperationException", + "com.amazonaws.kinesis#ExpiredIteratorException", + "com.amazonaws.kinesis#InternalFailureException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#KMSAccessDeniedException", + "com.amazonaws.kinesis#KMSDisabledException", + "com.amazonaws.kinesis#KMSInvalidStateException", + "com.amazonaws.kinesis#KMSNotFoundException", + "com.amazonaws.kinesis#KMSOptInRequired", + "com.amazonaws.kinesis#KMSThrottlingException", + "com.amazonaws.kinesis#ProvisionedThroughputExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_RESOURCE_POLICY"] = ( + "GET_RESOURCE_POLICY", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_SHARD_ITERATOR"] = ( + "GET_SHARD_ITERATOR", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#DryRunOperationException", + "com.amazonaws.kinesis#InternalFailureException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#ProvisionedThroughputExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["INCREASE_STREAM_RETENTION_PERIOD"] = ( + "INCREASE_STREAM_RETENTION_PERIOD", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_CHANNELS"] = ( + "LIST_CHANNELS", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#ExpiredNextTokenException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_SHARDS"] = ( + "LIST_SHARDS", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#ExpiredNextTokenException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STREAM_CONSUMERS"] = ( + "LIST_STREAM_CONSUMERS", + ( + "com.amazonaws.kinesis#ExpiredNextTokenException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_STREAMS"] = ( + "LIST_STREAMS", + ( + "com.amazonaws.kinesis#ExpiredNextTokenException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_STREAM"] = ( + "LIST_TAGS_FOR_STREAM", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MERGE_SHARDS"] = ( + "MERGE_SHARDS", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_RECORD"] = ( + "PUT_RECORD", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#DryRunOperationException", + "com.amazonaws.kinesis#InternalFailureException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#KMSAccessDeniedException", + "com.amazonaws.kinesis#KMSDisabledException", + "com.amazonaws.kinesis#KMSInvalidStateException", + "com.amazonaws.kinesis#KMSNotFoundException", + "com.amazonaws.kinesis#KMSOptInRequired", + "com.amazonaws.kinesis#KMSThrottlingException", + "com.amazonaws.kinesis#ProvisionedThroughputExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_RECORDS"] = ( + "PUT_RECORDS", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#DryRunOperationException", + "com.amazonaws.kinesis#InternalFailureException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#KMSAccessDeniedException", + "com.amazonaws.kinesis#KMSDisabledException", + "com.amazonaws.kinesis#KMSInvalidStateException", + "com.amazonaws.kinesis#KMSNotFoundException", + "com.amazonaws.kinesis#KMSOptInRequired", + "com.amazonaws.kinesis#KMSThrottlingException", + "com.amazonaws.kinesis#ProvisionedThroughputExceededException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_RESOURCE_POLICY"] = ( + "PUT_RESOURCE_POLICY", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_STREAM_CONSUMER"] = ( + "REGISTER_STREAM_CONSUMER", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_TAGS_FROM_STREAM"] = ( + "REMOVE_TAGS_FROM_STREAM", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SPLIT_SHARD"] = ( + "SPLIT_SHARD", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_STREAM_ENCRYPTION"] = ( + "START_STREAM_ENCRYPTION", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#KMSAccessDeniedException", + "com.amazonaws.kinesis#KMSDisabledException", + "com.amazonaws.kinesis#KMSInvalidStateException", + "com.amazonaws.kinesis#KMSNotFoundException", + "com.amazonaws.kinesis#KMSOptInRequired", + "com.amazonaws.kinesis#KMSThrottlingException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_STREAM_ENCRYPTION"] = ( + "STOP_STREAM_ENCRYPTION", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SUBSCRIBE_TO_SHARD"] = ( + "SUBSCRIBE_TO_SHARD", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#DryRunOperationException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ACCOUNT_SETTINGS"] = ( + "UPDATE_ACCOUNT_SETTINGS", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CHANNEL"] = ( + "UPDATE_CHANNEL", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_MAX_RECORD_SIZE"] = ( + "UPDATE_MAX_RECORD_SIZE", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_SHARD_COUNT"] = ( + "UPDATE_SHARD_COUNT", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STREAM_MODE"] = ( + "UPDATE_STREAM_MODE", + ( + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY"] = ( + "UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_STREAM_WARM_THROUGHPUT"] = ( + "UPDATE_STREAM_WARM_THROUGHPUT", + ( + "com.amazonaws.kinesis#AccessDeniedException", + "com.amazonaws.kinesis#InvalidArgumentException", + "com.amazonaws.kinesis#LimitExceededException", + "com.amazonaws.kinesis#ResourceInUseException", + "com.amazonaws.kinesis#ResourceNotFoundException", + "com.amazonaws.kinesis#ValidationException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.pyi b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.pyi new file mode 100644 index 00000000..01012514 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/models.pyi @@ -0,0 +1,3623 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AccessDeniedException(ServiceError, _SerdeShape): + """ + Specifies that you do not have the permissions required to perform this + operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddTagsToStreamInput(_SerdeShape): + """Represents the input for `AddTagsToStream`.""" + + stream_name: str | None = ... + """The name of the stream.""" + tags: dict[str, str] | None = ... + """ + A set of up to 50 key-value pairs to use to create the tags. A tag + consists of a required key and an optional value. You can add up to 50 + tags per resource. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class AddTagsToStreamOutput(_SerdeShape): + """Dataclass for AddTagsToStreamOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ChannelDescription(_SerdeShape): + """Describes the configuration and current status of a channel.""" + + channel_name: str + """The name of the channel.""" + channel_arn: str + """The Amazon Resource Name (ARN) of the channel.""" + channel_id: str + """The unique identifier of the channel.""" + channel_status: str + """ + The current status of the channel. Valid values: + + - `CREATING` - The channel is being created. + + - `ACTIVE` - The channel is ready to deliver records. + + - `UPDATING` - The channel configuration is being updated. + + - `DELETING` - The channel is being deleted. + + - `FAILED` - See `ChannelStatusReason` for the failure cause. + """ + channel_status_reason: str | None = ... + """A message describing the reason for a `FAILED` status.""" + channel_creation_timestamp: datetime + """The time at which the channel was created.""" + service_execution_role_arn: str + """ + The Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Data + Streams assumes to write records to the destination. + """ + stream_configuration_list: list[ChannelStreamDescription] + """The source stream configuration for the channel.""" + s3_destination_configuration: S3DestinationDescription | None = ... + """ + The configuration for delivery to a general purpose Amazon S3 bucket. + Present only when the channel destination is a general purpose Amazon S3 + bucket. + """ + s3_tables_destination_configuration: S3TablesDestinationDescription | None = ... + """ + The configuration for delivery to streaming tables on Apache Iceberg in + Amazon S3 Tables. Present only when the channel destination is a + streaming table. + """ + encryption_configuration: ChannelEncryptionConfiguration | None = ... + """ + The Amazon Web Services KMS key configuration that Amazon Kinesis Data + Streams uses to encrypt data delivered to the channel's destination. + """ + logging_configuration: ChannelLoggingConfiguration + """The Amazon CloudWatch Logs configuration for the channel.""" + +class ChannelDestinationType(UnknownEnumMixin, StrEnum): + S3 = "S3" + S3_TABLES = "S3_TABLES" + +@dataclass(kw_only=True) +class ChannelEncryptionConfiguration(_SerdeShape): + """ + Specifies the Amazon Web Services KMS key that Amazon Kinesis Data + Streams uses to encrypt data delivered to the channel's destination. + """ + + encryption_type: str + """The encryption type. The only valid value is `KMS`.""" + key_id: str + """ + The identifier of the customer managed Amazon Web Services KMS key. You + cannot use the Amazon Kinesis Data Streams service key (`aws/kinesis`). + """ + +class ChannelEncryptionType(UnknownEnumMixin, StrEnum): + KMS = "KMS" + +@dataclass(kw_only=True) +class ChannelLoggingConfiguration(_SerdeShape): + """The Amazon CloudWatch Logs configuration for a channel.""" + + cloud_watch_logs: CloudWatchLogs + """The Amazon CloudWatch Logs settings for the channel.""" + +@dataclass(kw_only=True) +class ChannelLoggingUpdateInput(_SerdeShape): + """ + The updated Amazon CloudWatch Logs configuration for a channel. Used in + UpdateChannel. + """ + + cloud_watch_logs: CloudWatchLogsUpdateInput + """ + The updated Amazon CloudWatch Logs settings, including whether logging + is enabled and the target log group and log stream. + """ + +class ChannelStatus(UnknownEnumMixin, StrEnum): + CREATING = "CREATING" + ACTIVE = "ACTIVE" + UPDATING = "UPDATING" + DELETING = "DELETING" + FAILED = "FAILED" + +@dataclass(kw_only=True) +class ChannelStreamConfiguration(_SerdeShape): + """ + Specifies the source stream and record configuration when creating a + channel. + """ + + stream_arn: str + """The Amazon Resource Name (ARN) of the source Kinesis data stream.""" + record_configuration: RecordConfiguration + """The record format configuration for the source stream.""" + +@dataclass(kw_only=True) +class ChannelStreamDescription(_SerdeShape): + """Describes the source stream of a channel.""" + + stream_arn: str + """The Amazon Resource Name (ARN) of the source Kinesis data stream.""" + stream_creation_timestamp: datetime + """The time at which the source stream was created.""" + record_configuration: RecordConfiguration + """The record format configuration for the source stream.""" + +@dataclass(kw_only=True) +class ChannelStreamIdentifier(_SerdeShape): + """Identifies a source stream associated with a channel.""" + + stream_arn: str + """The Amazon Resource Name (ARN) of the source Kinesis data stream.""" + stream_creation_timestamp: datetime + """The time at which the source stream was created.""" + +@dataclass(kw_only=True) +class ChannelSummary(_SerdeShape): + """A summary of a channel, returned by ListChannels.""" + + channel_name: str + """The name of the channel.""" + channel_arn: str + """The Amazon Resource Name (ARN) of the channel.""" + channel_id: str + """The unique identifier of the channel.""" + channel_status: str + """ + The current status of the channel. Valid values: + + - `CREATING` - The channel is being created. + + - `ACTIVE` - The channel is ready to deliver records. + + - `UPDATING` - The channel configuration is being updated. + + - `DELETING` - The channel is being deleted. + + - `FAILED` - See `ChannelStatusReason` for the failure cause. + """ + channel_status_reason: str | None = ... + """A message describing the reason for a `FAILED` status.""" + channel_creation_timestamp: datetime + """The time at which the channel was created.""" + channel_destination_type: str + """ + The destination type of the channel. Valid values: + + - `S3` - Delivery to a general purpose Amazon S3 bucket. + + - `S3_TABLES` - Delivery to streaming tables on Apache Iceberg. + """ + streams: list[ChannelStreamIdentifier] + """The source streams associated with the channel.""" + +@dataclass(kw_only=True) +class ChildShard(_SerdeShape): + """ + Output parameter of the GetRecords API. The existing child shard of the + current shard. + """ + + shard_id: str + """The shard ID of the existing child shard of the current shard.""" + parent_shards: list[str] + """The current shard that is the parent of the existing child shard.""" + hash_key_range: HashKeyRange + """ + The range of possible hash key values for the shard, which is a set of + ordered contiguous positive integers. + """ + +@dataclass(kw_only=True) +class CloudWatchLogs(_SerdeShape): + """The Amazon CloudWatch Logs settings for channel logging.""" + + enabled: bool + """Specifies whether logging to Amazon CloudWatch Logs is enabled.""" + log_group_name: str | None = ... + """ + The name of the Amazon CloudWatch Logs log group. Defaults to + `/aws/kinesis/{channelName}/{channelId}`. + """ + log_stream_name: str | None = ... + """ + The name of the Amazon CloudWatch Logs log stream. Defaults to + `DestinationDelivery`. + """ + +@dataclass(kw_only=True) +class CloudWatchLogsUpdateInput(_SerdeShape): + """The updated Amazon CloudWatch Logs settings for a channel.""" + + enabled: bool + """Specifies whether logging to Amazon CloudWatch Logs is enabled.""" + log_group_name: str | None = ... + """The name of the Amazon CloudWatch Logs log group.""" + log_stream_name: str | None = ... + """The name of the Amazon CloudWatch Logs log stream.""" + +@dataclass(kw_only=True) +class Consumer(_SerdeShape): + """ + An object that represents the details of the consumer you registered. + This type of object is returned by RegisterStreamConsumer. + """ + + consumer_name: str + """ + The name of the consumer is something you choose when you register the + consumer. + """ + consumer_arn: str + """ + When you register a consumer, Kinesis Data Streams generates an ARN for + it. You need this ARN to be able to call SubscribeToShard. + + If you delete a consumer and then create a new one with the same name, + it won't have the same ARN. That's because consumer ARNs contain the + creation timestamp. This is important to keep in mind if you have IAM + policies that reference consumer ARNs. + """ + consumer_status: str + """ + A consumer can't read data while in the `CREATING` or `DELETING` + states. + """ + consumer_creation_timestamp: datetime + """""" + +@dataclass(kw_only=True) +class ConsumerDescription(_SerdeShape): + """ + An object that represents the details of a registered consumer. This + type of object is returned by DescribeStreamConsumer. + """ + + consumer_name: str + """ + The name of the consumer is something you choose when you register the + consumer. + """ + consumer_arn: str + """ + When you register a consumer, Kinesis Data Streams generates an ARN for + it. You need this ARN to be able to call SubscribeToShard. + + If you delete a consumer and then create a new one with the same name, + it won't have the same ARN. That's because consumer ARNs contain the + creation timestamp. This is important to keep in mind if you have IAM + policies that reference consumer ARNs. + """ + consumer_status: str + """ + A consumer can't read data while in the `CREATING` or `DELETING` + states. + """ + consumer_creation_timestamp: datetime + """""" + stream_arn: str + """The ARN of the stream with which you registered the consumer.""" + +class ConsumerStatus(UnknownEnumMixin, StrEnum): + CREATING = "CREATING" + DELETING = "DELETING" + ACTIVE = "ACTIVE" + +@dataclass(kw_only=True) +class CreateChannelInput(_SerdeShape): + """Dataclass for CreateChannelInput structure.""" + + channel_name: str | None = ... + """ + The name of the channel. The name is unique within your Amazon Web + Services account and Amazon Web Services Region. + """ + service_execution_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Data + Streams assumes to write records to the destination. + """ + stream_configuration_list: list[ChannelStreamConfiguration] | None = ... + """ + The source stream configuration for the channel. Currently, one stream + is supported per channel. + """ + s3_destination_configuration: S3DestinationConfiguration | None = ... + """ + The configuration for delivery to a general purpose Amazon S3 bucket. + Specify this parameter when `S3TablesDestinationConfiguration` is not + specified. + """ + s3_tables_destination_configuration: S3TablesDestinationConfiguration | None = ... + """ + The configuration for delivery to streaming tables on Apache Iceberg in + Amazon S3 Tables. Specify this parameter when + `S3DestinationConfiguration` is not specified. + """ + encryption_configuration: ChannelEncryptionConfiguration | None = ... + """ + The server-side encryption configuration that uses an Amazon Web + Services KMS key to encrypt data delivered to the destination. + """ + tags: dict[str, str] | None = ... + """ + A set of key-value pairs to assign to the channel. A tag consists of a + required key and an optional value. + """ + logging_configuration: ChannelLoggingConfiguration | None = ... + """The Amazon CloudWatch Logs configuration for the channel.""" + +@dataclass(kw_only=True) +class CreateChannelOutput(_SerdeShape): + """Dataclass for CreateChannelOutput structure.""" + + channel_description: ChannelDescription + """ + The configuration and current status of the channel, including its ARN, + destination configuration, and lifecycle state. Immediately after + creation, the state is `CREATING`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateStreamInput(_SerdeShape): + """Represents the input for `CreateStream`.""" + + stream_name: str | None = ... + """ + A name to identify the stream. The stream name is scoped to the Amazon + Web Services account used by the application that creates the stream. It + is also scoped by Amazon Web Services Region. That is, two streams in + two different Amazon Web Services accounts can have the same name. Two + streams in the same Amazon Web Services account but in two different + Regions can also have the same name. + """ + shard_count: int | None = ... + """ + The number of shards that the stream will use. The throughput of the + stream is a function of the number of shards; more shards are required + for greater provisioned throughput. + """ + stream_mode_details: StreamModeDetails | None = ... + """ + Indicates the capacity mode of the data stream. Currently, in Kinesis + Data Streams, you can choose between an **on-demand** capacity mode and + a **provisioned** capacity mode for your data streams. + """ + tags: dict[str, str] | None = ... + """ + A set of up to 50 key-value pairs to use to create the tags. A tag + consists of a required key and an optional value. + """ + warm_throughput_mi_bps: int | None = ... + """ + The target warm throughput in MB/s that the stream should be scaled to + handle. This represents the throughput capacity that will be immediately + available for write operations. + """ + max_record_size_in_ki_b: int | None = ... + """ + The maximum record size of a single record in kibibyte (KiB) that you + can write to, and read from a stream. + """ + record_distribution_strategy: str | None = ... + """ + The record distribution strategy for the stream, which determines how + Amazon Kinesis Data Streams distributes records across shards. Specify + one of the following values: + + - `AUTO` -- Amazon Kinesis Data Streams distributes records evenly + across shards and ignores any partition key and `ExplicitHashKey` that + producers supply. Use this value for stateless workloads that do not + require partition-key ordering. + + - `USER_PARTITION_KEY` -- Producers must supply a partition key, which + Amazon Kinesis Data Streams uses to determine shard placement. This is + the default. + + The record distribution strategy is only supported for streams that use + the on-demand capacity mode. If you do not specify this parameter, the + stream uses `USER_PARTITION_KEY`. + """ + +@dataclass(kw_only=True) +class CreateStreamOutput(_SerdeShape): + """Dataclass for CreateStreamOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeadLetterQueueS3Configuration(_SerdeShape): + """ + The Amazon S3 dead-letter queue configuration for records that cannot be + delivered. + """ + + bucket_arn: str + """ + The Amazon Resource Name (ARN) of the dead-letter queue Amazon S3 + bucket. + """ + expected_bucket_owner: str + """ + The Amazon Web Services account ID of the expected owner of the + dead-letter queue bucket. + """ + error_output_prefix: str | None = ... + """The Amazon S3 key prefix for error records.""" + +@dataclass(kw_only=True) +class DecreaseStreamRetentionPeriodInput(_SerdeShape): + """Represents the input for DecreaseStreamRetentionPeriod.""" + + stream_name: str | None = ... + """The name of the stream to modify.""" + retention_period_hours: int | None = ... + """ + The new retention period of the stream, in hours. Must be less than the + current retention period. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DecreaseStreamRetentionPeriodOutput(_SerdeShape): + """Dataclass for DecreaseStreamRetentionPeriodOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteChannelInput(_SerdeShape): + """Dataclass for DeleteChannelInput structure.""" + + channel_arn: str | None = ... + """The Amazon Resource Name (ARN) of the channel to delete.""" + +@dataclass(kw_only=True) +class DeleteChannelOutput(_SerdeShape): + """Dataclass for DeleteChannelOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteResourcePolicyInput(_SerdeShape): + """Dataclass for DeleteResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the data stream or consumer.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DeleteResourcePolicyOutput(_SerdeShape): + """Dataclass for DeleteResourcePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteStreamInput(_SerdeShape): + """Represents the input for DeleteStream.""" + + stream_name: str | None = ... + """The name of the stream to delete.""" + enforce_consumer_deletion: bool | None = ... + """ + If this parameter is unset (`null`) or if you set it to `false`, and the + stream has registered consumers, the call to `DeleteStream` fails with a + `ResourceInUseException`. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DeleteStreamOutput(_SerdeShape): + """Dataclass for DeleteStreamOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterStreamConsumerInput(_SerdeShape): + """Dataclass for DeregisterStreamConsumerInput structure.""" + + stream_arn: str | None = ... + """ + The ARN of the Kinesis data stream that the consumer is registered with. + For more information, see [Amazon Resource Names (ARNs) and Amazon Web + Services Service + Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams). + """ + consumer_name: str | None = ... + """The name that you gave to the consumer.""" + consumer_arn: str | None = ... + """ + The ARN returned by Kinesis Data Streams when you registered the + consumer. If you don't know the ARN of the consumer that you want to + deregister, you can use the ListStreamConsumers operation to get a list + of the descriptions of all the consumers that are currently registered + with a given data stream. The description of a consumer contains its + ARN. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DeregisterStreamConsumerOutput(_SerdeShape): + """Dataclass for DeregisterStreamConsumerOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAccountSettingsInput(_SerdeShape): + """Dataclass for DescribeAccountSettingsInput structure.""" + +@dataclass(kw_only=True) +class DescribeAccountSettingsOutput(_SerdeShape): + """Dataclass for DescribeAccountSettingsOutput structure.""" + + minimum_throughput_billing_commitment: ( + MinimumThroughputBillingCommitmentOutput | None + ) = ... + """ + The current configuration of the minimum throughput billing commitment + for your Amazon Web Services account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeChannelInput(_SerdeShape): + """Dataclass for DescribeChannelInput structure.""" + + channel_arn: str | None = ... + """The Amazon Resource Name (ARN) of the channel to describe.""" + +@dataclass(kw_only=True) +class DescribeChannelOutput(_SerdeShape): + """Dataclass for DescribeChannelOutput structure.""" + + channel_description: ChannelDescription + """ + The configuration and current status of the channel, including its ARN, + source stream, destination configuration, and lifecycle state. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeLimitsInput(_SerdeShape): + """Dataclass for DescribeLimitsInput structure.""" + +@dataclass(kw_only=True) +class DescribeLimitsOutput(_SerdeShape): + """Dataclass for DescribeLimitsOutput structure.""" + + shard_limit: int + """The maximum number of shards.""" + open_shard_count: int + """The number of open shards.""" + on_demand_stream_count: int + """Indicates the number of data streams with the on-demand capacity mode.""" + on_demand_stream_count_limit: int + """The maximum number of data streams with the on-demand capacity mode.""" + channel_count: int | None = ... + """The number of channels in the account.""" + channel_count_limit: int | None = ... + """The maximum number of channels allowed in the account.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStreamConsumerInput(_SerdeShape): + """Dataclass for DescribeStreamConsumerInput structure.""" + + stream_arn: str | None = ... + """ + The ARN of the Kinesis data stream that the consumer is registered with. + For more information, see [Amazon Resource Names (ARNs) and Amazon Web + Services Service + Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams). + """ + consumer_name: str | None = ... + """The name that you gave to the consumer.""" + consumer_arn: str | None = ... + """ + The ARN returned by Kinesis Data Streams when you registered the + consumer. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DescribeStreamConsumerOutput(_SerdeShape): + """Dataclass for DescribeStreamConsumerOutput structure.""" + + consumer_description: ConsumerDescription + """An object that represents the details of the consumer.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStreamInput(_SerdeShape): + """Represents the input for `DescribeStream`.""" + + stream_name: str | None = ... + """The name of the stream to describe.""" + limit: int | None = ... + """ + The maximum number of shards to return in a single call. The default + value is 100. If you specify a value greater than 100, at most 100 + results are returned. + """ + exclusive_start_shard_id: str | None = ... + """ + The shard ID of the shard to start with. + + Specify this parameter to indicate that you want to describe the stream + starting with the shard whose ID immediately follows + `ExclusiveStartShardId`. + + If you don't specify this parameter, the default behavior for + `DescribeStream` is to describe the stream starting with the first shard + in the stream. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DescribeStreamOutput(_SerdeShape): + """Represents the output for `DescribeStream`.""" + + stream_description: StreamDescription + """ + The current status of the stream, the stream Amazon Resource Name (ARN), + an array of shard objects that comprise the stream, and whether there + are more shards available. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeStreamSummaryInput(_SerdeShape): + """Dataclass for DescribeStreamSummaryInput structure.""" + + stream_name: str | None = ... + """The name of the stream to describe.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DescribeStreamSummaryOutput(_SerdeShape): + """Dataclass for DescribeStreamSummaryOutput structure.""" + + stream_description_summary: StreamDescriptionSummary + """A StreamDescriptionSummary containing information about the stream.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableEnhancedMonitoringInput(_SerdeShape): + """Represents the input for DisableEnhancedMonitoring.""" + + stream_name: str | None = ... + """ + The name of the Kinesis data stream for which to disable enhanced + monitoring. + """ + shard_level_metrics: list[str] | None = ... + """ + List of shard-level metrics to disable. + + The following are the valid shard-level metrics. The value \"`ALL`\" + disables every metric. + + - `IncomingBytes` + + - `IncomingRecords` + + - `OutgoingBytes` + + - `OutgoingRecords` + + - `WriteProvisionedThroughputExceeded` + + - `ReadProvisionedThroughputExceeded` + + - `IteratorAgeMilliseconds` + + - `ALL` + + For more information, see [Monitoring the Amazon Kinesis Data Streams + Service with Amazon + CloudWatch](https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class DisableEnhancedMonitoringOutput(_SerdeShape): + """ + Represents the output for EnableEnhancedMonitoring and + DisableEnhancedMonitoring. + """ + + stream_name: str | None = ... + """The name of the Kinesis data stream.""" + current_shard_level_metrics: list[str] | None = ... + """ + Represents the current state of the metrics that are in the enhanced + state before the operation. + """ + desired_shard_level_metrics: list[str] | None = ... + """ + Represents the list of all the metrics that would be in the enhanced + state after the operation. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DryRunOperationException(ServiceError, _SerdeShape): + """The request was rejected because the DryRun parameter was specified.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableEnhancedMonitoringInput(_SerdeShape): + """Represents the input for EnableEnhancedMonitoring.""" + + stream_name: str | None = ... + """The name of the stream for which to enable enhanced monitoring.""" + shard_level_metrics: list[str] | None = ... + """ + List of shard-level metrics to enable. + + The following are the valid shard-level metrics. The value \"`ALL`\" + enables every metric. + + - `IncomingBytes` + + - `IncomingRecords` + + - `OutgoingBytes` + + - `OutgoingRecords` + + - `WriteProvisionedThroughputExceeded` + + - `ReadProvisionedThroughputExceeded` + + - `IteratorAgeMilliseconds` + + - `ALL` + + For more information, see [Monitoring the Amazon Kinesis Data Streams + Service with Amazon + CloudWatch](https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class EnableEnhancedMonitoringOutput(_SerdeShape): + """ + Represents the output for EnableEnhancedMonitoring and + DisableEnhancedMonitoring. + """ + + stream_name: str | None = ... + """The name of the Kinesis data stream.""" + current_shard_level_metrics: list[str] | None = ... + """ + Represents the current state of the metrics that are in the enhanced + state before the operation. + """ + desired_shard_level_metrics: list[str] | None = ... + """ + Represents the list of all the metrics that would be in the enhanced + state after the operation. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EncryptionType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + KMS = "KMS" + +@dataclass(kw_only=True) +class EnhancedMetrics(_SerdeShape): + """Represents enhanced metrics types.""" + + shard_level_metrics: list[str] | None = ... + """ + List of shard-level metrics. + + The following are the valid shard-level metrics. The value \"`ALL`\" + enhances every metric. + + - `IncomingBytes` + + - `IncomingRecords` + + - `OutgoingBytes` + + - `OutgoingRecords` + + - `WriteProvisionedThroughputExceeded` + + - `ReadProvisionedThroughputExceeded` + + - `IteratorAgeMilliseconds` + + - `ALL` + + For more information, see [Monitoring the Amazon Kinesis Data Streams + Service with Amazon + CloudWatch](https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + in the *Amazon Kinesis Data Streams Developer Guide*. + """ + +@dataclass(kw_only=True) +class ExpiredIteratorException(ServiceError, _SerdeShape): + """The provided iterator exceeds the maximum age allowed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExpiredNextTokenException(ServiceError, _SerdeShape): + """The pagination token passed to the operation is expired.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetRecordsInput(_SerdeShape): + """Represents the input for GetRecords.""" + + shard_iterator: str | None = ... + """ + The position in the shard from which you want to start sequentially + reading data records. A shard iterator specifies this position using the + sequence number of a data record in the shard. + """ + limit: int | None = ... + """ + The maximum number of records to return. Specify a value of up to + 10,000. If you specify a value that is greater than 10,000, GetRecords + throws `InvalidArgumentException`. The default value is 10,000. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + dry_run: bool | None = ... + """Checks if your request will succeed. `DryRun` is an optional parameter.""" + +@dataclass(kw_only=True) +class GetRecordsOutput(_SerdeShape): + """Represents the output for GetRecords.""" + + records: list[Record] + """The data records retrieved from the shard.""" + next_shard_iterator: str | None = ... + """ + The next position in the shard from which to start sequentially reading + data records. If set to `null`, the shard has been closed and the + requested iterator does not return any more data. + """ + millis_behind_latest: int | None = ... + """ + The number of milliseconds the GetRecords response is from the tip of + the stream, indicating how far behind current time the consumer is. A + value of zero indicates that record processing is caught up, and there + are no new records to process at this moment. + """ + child_shards: list[ChildShard] | None = ... + """ + The list of the current shard's child shards, returned in the + `GetRecords` API's response only when the end of the current shard is + reached. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetResourcePolicyInput(_SerdeShape): + """Dataclass for GetResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the data stream or consumer.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class GetResourcePolicyOutput(_SerdeShape): + """Dataclass for GetResourcePolicyOutput structure.""" + + policy: str + """Details of the resource policy. This is formatted as a JSON string.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetShardIteratorInput(_SerdeShape): + """Represents the input for `GetShardIterator`.""" + + stream_name: str | None = ... + """The name of the Amazon Kinesis data stream.""" + shard_id: str | None = ... + """The shard ID of the Kinesis Data Streams shard to get the iterator for.""" + shard_iterator_type: str | None = ... + """ + Determines how the shard iterator is used to start reading data records + from the shard. + + The following are the valid Amazon Kinesis shard iterator types: + + - AT_SEQUENCE_NUMBER - Start reading from the position denoted by a + specific sequence number, provided in the value + `StartingSequenceNumber`. + + - AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted + by a specific sequence number, provided in the value + `StartingSequenceNumber`. + + - AT_TIMESTAMP - Start reading from the position denoted by a specific + time stamp, provided in the value `Timestamp`. + + - TRIM_HORIZON - Start reading at the last untrimmed record in the shard + in the system, which is the oldest data record in the shard. + + - LATEST - Start reading just after the most recent record in the shard, + so that you always read the most recent data in the shard. + """ + starting_sequence_number: str | None = ... + """ + The sequence number of the data record in the shard from which to start + reading. Used with shard iterator type AT_SEQUENCE_NUMBER and + AFTER_SEQUENCE_NUMBER. + """ + timestamp: datetime | None = ... + """ + The time stamp of the data record from which to start reading. Used with + shard iterator type AT_TIMESTAMP. A time stamp is the Unix epoch date + with precision in milliseconds. For example, + `2016-04-04T19:58:46.480-00:00` or `1459799926.480`. If a record with + this exact time stamp does not exist, the iterator returned is for the + next (later) record. If the time stamp is older than the current trim + horizon, the iterator returned is for the oldest untrimmed data record + (TRIM_HORIZON). + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + dry_run: bool | None = ... + """Checks if your request will succeed. `DryRun` is an optional parameter.""" + +@dataclass(kw_only=True) +class GetShardIteratorOutput(_SerdeShape): + """Represents the output for `GetShardIterator`.""" + + shard_iterator: str | None = ... + """ + The position in the shard from which to start reading data records + sequentially. A shard iterator specifies this position using the + sequence number of a data record in a shard. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class HashKeyRange(_SerdeShape): + """ + The range of possible hash key values for the shard, which is a set of + ordered contiguous positive integers. + """ + + starting_hash_key: str + """The starting hash key of the hash key range.""" + ending_hash_key: str + """The ending hash key of the hash key range.""" + +@dataclass(kw_only=True) +class IncreaseStreamRetentionPeriodInput(_SerdeShape): + """Represents the input for IncreaseStreamRetentionPeriod.""" + + stream_name: str | None = ... + """The name of the stream to modify.""" + retention_period_hours: int | None = ... + """ + The new retention period of the stream, in hours. Must be more than the + current retention period. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class IncreaseStreamRetentionPeriodOutput(_SerdeShape): + """Dataclass for IncreaseStreamRetentionPeriodOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InternalFailureException(ServiceError, _SerdeShape): + """ + The processing of the request failed because of an unknown error, + exception, or failure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidArgumentException(ServiceError, _SerdeShape): + """ + A specified parameter exceeds its restrictions, is not supported, or + can't be used. For more information, see the returned message. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSAccessDeniedException(ServiceError, _SerdeShape): + """ + The ciphertext references a key that doesn't exist or that you don't + have access to. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSDisabledException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified customer master key (CMK) + isn't enabled. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSInvalidStateException(ServiceError, _SerdeShape): + """ + The request was rejected because the state of the specified resource + isn't valid for this request. For more information, see [How Key State + Affects Use of a Customer Master + Key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified entity or resource can't + be found. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSOptInRequired(ServiceError, _SerdeShape): + """ + The Amazon Web Services access key ID needs a subscription for the + service. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSThrottlingException(ServiceError, _SerdeShape): + """ + The request was denied due to request throttling. For more information + about throttling, see + [Limits](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """ + The requested resource exceeds the maximum number allowed, or the number + of concurrent stream requests exceeds the maximum number allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListChannelsInput(_SerdeShape): + """Dataclass for ListChannelsInput structure.""" + + stream_filter: list[StreamFilter] | None = ... + """Filters the results to channels associated with the specified streams.""" + max_results: int | None = ... + """ + The maximum number of channels to return in a single call. The default + value is 100. If you specify a value greater than 100, at most 100 + results are returned. + """ + next_token: str | None = ... + """ + The pagination token returned by a previous call. Specify this token to + retrieve the next page of results. + """ + +@dataclass(kw_only=True) +class ListChannelsOutput(_SerdeShape): + """Dataclass for ListChannelsOutput structure.""" + + channel_summaries: list[ChannelSummary] + """A list of channel summaries.""" + next_token: str | None = ... + """ + The pagination token to use in a subsequent call to retrieve the next + page of results. This value is `null` when there are no more results to + return. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListShardsInput(_SerdeShape): + """Dataclass for ListShardsInput structure.""" + + stream_name: str | None = ... + """ + The name of the data stream whose shards you want to list. + + You cannot specify this parameter if you specify the `NextToken` + parameter. + """ + next_token: str | None = ... + """ + When the number of shards in the data stream is greater than the default + value for the `MaxResults` parameter, or if you explicitly specify a + value for `MaxResults` that is less than the number of shards in the + data stream, the response includes a pagination token named `NextToken`. + You can specify this `NextToken` value in a subsequent call to + `ListShards` to list the next set of shards. + + Don't specify `StreamName` or `StreamCreationTimestamp` if you specify + `NextToken` because the latter unambiguously identifies the stream. + + You can optionally specify a value for the `MaxResults` parameter when + you specify `NextToken`. If you specify a `MaxResults` value that is + less than the number of shards that the operation returns if you don't + specify `MaxResults`, the response will contain a new `NextToken` value. + You can use the new `NextToken` value in a subsequent call to the + `ListShards` operation. + + Warning: + Tokens expire after 300 seconds. When you obtain a value for `NextToken` + in the response to a call to `ListShards`, you have 300 seconds to use + that value. If you specify an expired token in a call to `ListShards`, + you get `ExpiredNextTokenException`. + """ + exclusive_start_shard_id: str | None = ... + """ + Specify this parameter to indicate that you want to list the shards + starting with the shard whose ID immediately follows + `ExclusiveStartShardId`. + + If you don't specify this parameter, the default behavior is for + `ListShards` to list the shards starting with the first one in the + stream. + + You cannot specify this parameter if you specify `NextToken`. + """ + max_results: int | None = ... + """ + The maximum number of shards to return in a single call to `ListShards`. + The maximum number of shards to return in a single call. The default + value is 1000. If you specify a value greater than 1000, at most 1000 + results are returned. + + When the number of shards to be listed is greater than the value of + `MaxResults`, the response contains a `NextToken` value that you can use + in a subsequent call to `ListShards` to list the next set of shards. + """ + stream_creation_timestamp: datetime | None = ... + """ + Specify this input parameter to distinguish data streams that have the + same name. For example, if you create a data stream and then delete it, + and you later create another data stream with the same name, you can use + this input parameter to specify which of the two streams you want to + list the shards for. + + You cannot specify this parameter if you specify the `NextToken` + parameter. + """ + shard_filter: ShardFilter | None = ... + """ + Enables you to filter out the response of the `ListShards` API. You can + only specify one filter at a time. + + If you use the `ShardFilter` parameter when invoking the ListShards API, + the `Type` is the required property and must be specified. If you + specify the `AT_TRIM_HORIZON`, `FROM_TRIM_HORIZON`, or `AT_LATEST` + types, you do not need to specify either the `ShardId` or the + `Timestamp` optional properties. + + If you specify the `AFTER_SHARD_ID` type, you must also provide the + value for the optional `ShardId` property. The `ShardId` property is + identical in fuctionality to the `ExclusiveStartShardId` parameter of + the `ListShards` API. When `ShardId` property is specified, the response + includes the shards starting with the shard whose ID immediately follows + the `ShardId` that you provided. + + If you specify the `AT_TIMESTAMP` or `FROM_TIMESTAMP_ID` type, you must + also provide the value for the optional `Timestamp` property. If you + specify the AT_TIMESTAMP type, then all shards that were open at the + provided timestamp are returned. If you specify the FROM_TIMESTAMP type, + then all shards starting from the provided timestamp to TIP are + returned. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class ListShardsOutput(_SerdeShape): + """Dataclass for ListShardsOutput structure.""" + + shards: list[Shard] | None = ... + """ + An array of JSON objects. Each object represents one shard and specifies + the IDs of the shard, the shard's parent, and the shard that's + adjacent to the shard's parent. Each object also contains the starting + and ending hash keys and the starting and ending sequence numbers for + the shard. + """ + next_token: str | None = ... + """ + When the number of shards in the data stream is greater than the default + value for the `MaxResults` parameter, or if you explicitly specify a + value for `MaxResults` that is less than the number of shards in the + data stream, the response includes a pagination token named `NextToken`. + You can specify this `NextToken` value in a subsequent call to + `ListShards` to list the next set of shards. For more information about + the use of this pagination token when calling the `ListShards` + operation, see ListShardsInput$NextToken. + + Warning: + Tokens expire after 300 seconds. When you obtain a value for `NextToken` + in the response to a call to `ListShards`, you have 300 seconds to use + that value. If you specify an expired token in a call to `ListShards`, + you get `ExpiredNextTokenException`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStreamConsumersInput(_SerdeShape): + """Dataclass for ListStreamConsumersInput structure.""" + + stream_arn: str | None = ... + """ + The ARN of the Kinesis data stream for which you want to list the + registered consumers. For more information, see [Amazon Resource Names + (ARNs) and Amazon Web Services Service + Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams). + """ + next_token: str | None = ... + """ + When the number of consumers that are registered with the data stream is + greater than the default value for the `MaxResults` parameter, or if you + explicitly specify a value for `MaxResults` that is less than the number + of consumers that are registered with the data stream, the response + includes a pagination token named `NextToken`. You can specify this + `NextToken` value in a subsequent call to `ListStreamConsumers` to list + the next set of registered consumers. + + Don't specify `StreamName` or `StreamCreationTimestamp` if you specify + `NextToken` because the latter unambiguously identifies the stream. + + You can optionally specify a value for the `MaxResults` parameter when + you specify `NextToken`. If you specify a `MaxResults` value that is + less than the number of consumers that the operation returns if you + don't specify `MaxResults`, the response will contain a new `NextToken` + value. You can use the new `NextToken` value in a subsequent call to the + `ListStreamConsumers` operation to list the next set of consumers. + + Warning: + Tokens expire after 300 seconds. When you obtain a value for `NextToken` + in the response to a call to `ListStreamConsumers`, you have 300 seconds + to use that value. If you specify an expired token in a call to + `ListStreamConsumers`, you get `ExpiredNextTokenException`. + """ + max_results: int | None = ... + """ + The maximum number of consumers that you want a single call of + `ListStreamConsumers` to return. The default value is 100. If you + specify a value greater than 100, at most 100 results are returned. + """ + stream_creation_timestamp: datetime | None = ... + """ + Specify this input parameter to distinguish data streams that have the + same name. For example, if you create a data stream and then delete it, + and you later create another data stream with the same name, you can use + this input parameter to specify which of the two streams you want to + list the consumers for. + + You can't specify this parameter if you specify the NextToken + parameter. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class ListStreamConsumersOutput(_SerdeShape): + """Dataclass for ListStreamConsumersOutput structure.""" + + consumers: list[Consumer] | None = ... + """ + An array of JSON objects. Each object represents one registered + consumer. + """ + next_token: str | None = ... + """ + When the number of consumers that are registered with the data stream is + greater than the default value for the `MaxResults` parameter, or if you + explicitly specify a value for `MaxResults` that is less than the number + of registered consumers, the response includes a pagination token named + `NextToken`. You can specify this `NextToken` value in a subsequent call + to `ListStreamConsumers` to list the next set of registered consumers. + For more information about the use of this pagination token when calling + the `ListStreamConsumers` operation, see + ListStreamConsumersInput$NextToken. + + Warning: + Tokens expire after 300 seconds. When you obtain a value for `NextToken` + in the response to a call to `ListStreamConsumers`, you have 300 seconds + to use that value. If you specify an expired token in a call to + `ListStreamConsumers`, you get `ExpiredNextTokenException`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListStreamsInput(_SerdeShape): + """Represents the input for `ListStreams`.""" + + limit: int | None = ... + """ + The maximum number of streams to list. The default value is 100. If you + specify a value greater than 100, at most 100 results are returned. + """ + exclusive_start_stream_name: str | None = ... + """The name of the stream to start the list with.""" + next_token: str | None = ... + """""" + +@dataclass(kw_only=True) +class ListStreamsOutput(_SerdeShape): + """Represents the output for `ListStreams`.""" + + stream_names: list[str] + """ + The names of the streams that are associated with the Amazon Web + Services account making the `ListStreams` request. + """ + has_more_streams: bool + """If set to `true`, there are more streams available to list.""" + next_token: str | None = ... + """""" + stream_summaries: list[StreamSummary] | None = ... + """""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """Dataclass for ListTagsForResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Kinesis resource for which to list + tags. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """Dataclass for ListTagsForResourceOutput structure.""" + + tags: list[Tag] | None = ... + """An array of tags associated with the specified Kinesis resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListTagsForStreamInput(_SerdeShape): + """Represents the input for `ListTagsForStream`.""" + + stream_name: str | None = ... + """The name of the stream.""" + exclusive_start_tag_key: str | None = ... + """ + The key to use as the starting point for the list of tags. If this + parameter is set, `ListTagsForStream` gets all tags that occur after + `ExclusiveStartTagKey`. + """ + limit: int | None = ... + """ + The number of tags to return. If this number is less than the total + number of tags associated with the stream, `HasMoreTags` is set to + `true`. To list additional tags, set `ExclusiveStartTagKey` to the last + key in the response. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class ListTagsForStreamOutput(_SerdeShape): + """Represents the output for `ListTagsForStream`.""" + + tags: list[Tag] + """ + A list of tags associated with `StreamName`, starting with the first tag + after `ExclusiveStartTagKey` and up to the specified `Limit`. + """ + has_more_tags: bool + """ + If set to `true`, more tags are available. To request additional tags, + set `ExclusiveStartTagKey` to the key of the last tag returned. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class MergeShardsInput(_SerdeShape): + """Represents the input for `MergeShards`.""" + + stream_name: str | None = ... + """The name of the stream for the merge.""" + shard_to_merge: str | None = ... + """ + The shard ID of the shard to combine with the adjacent shard for the + merge. + """ + adjacent_shard_to_merge: str | None = ... + """The shard ID of the adjacent shard for the merge.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class MergeShardsOutput(_SerdeShape): + """Dataclass for MergeShardsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class MetricsName(UnknownEnumMixin, StrEnum): + INCOMING_BYTES = "IncomingBytes" + INCOMING_RECORDS = "IncomingRecords" + OUTGOING_BYTES = "OutgoingBytes" + OUTGOING_RECORDS = "OutgoingRecords" + WRITE_PROVISIONED_THROUGHPUT_EXCEEDED = "WriteProvisionedThroughputExceeded" + READ_PROVISIONED_THROUGHPUT_EXCEEDED = "ReadProvisionedThroughputExceeded" + ITERATOR_AGE_MILLISECONDS = "IteratorAgeMilliseconds" + ALL = "ALL" + +@dataclass(kw_only=True) +class MinimumThroughputBillingCommitmentInput(_SerdeShape): + """ + Represents the request parameters for configuring minimum throughput + billing commitment. + + Note: + - Minimum throughput billing commitments provide cost savings on + on-demand data streams in exchange for committing to a minimum level + of throughput usage. + + - Commitments have a minimum duration of 24 hours that must be honored + before they can be disabled. + + - If you attempt to disable a commitment before the minimum commitment + period ends, the commitment will be scheduled for automatic disable at + the earliest allowed end time. + + - You can cancel a pending disable by enabling the commitment again + before the earliest allowed end time. + """ + + status: str + """The desired status of the minimum throughput billing commitment.""" + +class MinimumThroughputBillingCommitmentInputStatus(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class MinimumThroughputBillingCommitmentOutput(_SerdeShape): + """ + Represents the current status of minimum throughput billing commitment + for an account. + """ + + status: str + """The current status of the minimum throughput billing commitment.""" + started_at: datetime | None = ... + """The timestamp when the commitment was started.""" + ended_at: datetime | None = ... + """The timestamp when the commitment was ended.""" + earliest_allowed_end_at: datetime | None = ... + """The earliest timestamp when the commitment can be ended.""" + +class MinimumThroughputBillingCommitmentOutputStatus(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + ENABLED_UNTIL_EARLIEST_ALLOWED_END = "ENABLED_UNTIL_EARLIEST_ALLOWED_END" + +@dataclass(kw_only=True) +class PartitionField(_SerdeShape): + """Specifies a single partition field.""" + + transform: str + """The partition transform to apply. The only valid value is `TIME_HOUR`.""" + source_name: str + """ + The name of the source column used for partitioning. This column must be + of the `timestamptz` type. + """ + +@dataclass(kw_only=True) +class PartitionSpec(_SerdeShape): + """Specifies how the destination table is partitioned.""" + + partition_fields: list[PartitionField] + """The list of partition fields.""" + +class PartitionTransform(UnknownEnumMixin, StrEnum): + TIME_HOUR = "TIME_HOUR" + +@dataclass(kw_only=True) +class ProvisionedThroughputExceededException(ServiceError, _SerdeShape): + """ + The request rate for the stream is too high, or the requested data is + too large for the available throughput. Reduce the frequency or size of + your requests. For more information, see [Streams + Limits](https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) + in the *Amazon Kinesis Data Streams Developer Guide*, and [Error Retries + and Exponential Backoff in Amazon Web + Services](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) + in the *Amazon Web Services General Reference*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutRecordInput(_SerdeShape): + """Represents the input for `PutRecord`.""" + + stream_name: str | None = ... + """The name of the stream to put the data record into.""" + data: bytes | None = ... + """ + The data blob to put into the record, which is base64-encoded when the + blob is serialized. When the data blob (the payload before + base64-encoding) is added to the partition key size, the total size must + not exceed the maximum record size (10 MiB). + """ + partition_key: str | None = ... + """ + Determines which shard in the stream the data record is assigned to. + Partition keys are Unicode strings with a maximum length limit of 256 + characters for each key. Amazon Kinesis Data Streams uses the partition + key as input to a hash function that maps the partition key and + associated data to a specific shard. Specifically, an MD5 hash function + is used to map partition keys to 128-bit integer values and to map + associated data records to shards. As a result of this hashing + mechanism, all data records with the same partition key map to the same + shard within the stream. + + If the stream uses the `USER_PARTITION_KEY` record distribution strategy + (the default), a partition key is required. If the stream uses the + `AUTO` record distribution strategy, the partition key is optional and + any value you provide is ignored, along with any `ExplicitHashKey` you + provide. In that case, Amazon Kinesis Data Streams distributes the + record across shards using service-managed algorithms. For more + information, see `UpdateStreamRecordDistributionStrategy`. + """ + explicit_hash_key: str | None = ... + """ + The hash value used to explicitly determine the shard the data record is + assigned to by overriding the partition key hash. + """ + sequence_number_for_ordering: str | None = ... + """ + Guarantees strictly increasing sequence numbers, for puts from the same + client and to the same partition key. Usage: set the + `SequenceNumberForOrdering` of record *n* to the sequence number of + record *n-1* (as returned in the result when putting record *n-1*). If + this parameter is not set, records are coarsely ordered based on arrival + time. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + dry_run: bool | None = ... + """Checks if your request will succeed. `DryRun` is an optional parameter.""" + +@dataclass(kw_only=True) +class PutRecordOutput(_SerdeShape): + """Represents the output for `PutRecord`.""" + + shard_id: str + """The shard ID of the shard where the data record was placed.""" + sequence_number: str + """ + The sequence number identifier that was assigned to the put data record. + The sequence number for the record is unique across all records in the + stream. A sequence number is the identifier associated with every record + put into the stream. + """ + encryption_type: str | None = ... + """ + The encryption type to use on the record. This parameter can be one of + the following values: + + - `NONE`: Do not encrypt the records in the stream. + + - `KMS`: Use server-side encryption on the records in the stream using a + customer-managed Amazon Web Services KMS key. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutRecordsInput(_SerdeShape): + """A `PutRecords` request.""" + + records: list[PutRecordsRequestEntry] | None = ... + """The records associated with the request.""" + stream_name: str | None = ... + """The stream name associated with the request.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + dry_run: bool | None = ... + """Checks if your request will succeed. `DryRun` is an optional parameter.""" + +@dataclass(kw_only=True) +class PutRecordsOutput(_SerdeShape): + """`PutRecords` results.""" + + failed_record_count: int | None = ... + """ + The number of unsuccessfully processed records in a `PutRecords` + request. + """ + records: list[PutRecordsResultEntry] + """ + An array of successfully and unsuccessfully processed record results. A + record that is successfully added to a stream includes `SequenceNumber` + and `ShardId` in the result. A record that fails to be added to a stream + includes `ErrorCode` and `ErrorMessage` in the result. + """ + encryption_type: str | None = ... + """ + The encryption type used on the records. This parameter can be one of + the following values: + + - `NONE`: Do not encrypt the records. + + - `KMS`: Use server-side encryption on the records using a + customer-managed Amazon Web Services KMS key. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutRecordsRequestEntry(_SerdeShape): + """Represents the output for `PutRecords`.""" + + data: bytes + """ + The data blob to put into the record, which is base64-encoded when the + blob is serialized. When the data blob (the payload before + base64-encoding) is added to the partition key size, the total size must + not exceed the maximum record size (10 MiB). + """ + explicit_hash_key: str | None = ... + """ + The hash value used to determine explicitly the shard that the data + record is assigned to by overriding the partition key hash. + """ + partition_key: str | None = ... + """ + Determines which shard in the stream the data record is assigned to. + Partition keys are Unicode strings with a maximum length limit of 256 + characters for each key. Amazon Kinesis Data Streams uses the partition + key as input to a hash function that maps the partition key and + associated data to a specific shard. Specifically, an MD5 hash function + is used to map partition keys to 128-bit integer values and to map + associated data records to shards. As a result of this hashing + mechanism, all data records with the same partition key map to the same + shard within the stream. + + If the stream uses the `USER_PARTITION_KEY` record distribution strategy + (the default), a partition key is required for each record. If the + stream uses the `AUTO` record distribution strategy, the partition key + is optional and any value you provide is ignored, along with any + `ExplicitHashKey` you provide. In that case, Amazon Kinesis Data Streams + distributes records across shards using service-managed algorithms. For + more information, see `UpdateStreamRecordDistributionStrategy`. + """ + +@dataclass(kw_only=True) +class PutRecordsResultEntry(_SerdeShape): + """ + Represents the result of an individual record from a `PutRecords` + request. A record that is successfully added to a stream includes + `SequenceNumber` and `ShardId` in the result. A record that fails to be + added to the stream includes `ErrorCode` and `ErrorMessage` in the + result. + """ + + sequence_number: str | None = ... + """The sequence number for an individual record result.""" + shard_id: str | None = ... + """The shard ID for an individual record result.""" + error_code: str | None = ... + """ + The error code for an individual record result. `ErrorCodes` can be + either `ProvisionedThroughputExceededException` or `InternalFailure`. + """ + error_message: str | None = ... + """ + The error message for an individual record result. An `ErrorCode` value + of `ProvisionedThroughputExceededException` has an error message that + includes the account ID, stream name, and shard ID. An `ErrorCode` value + of `InternalFailure` has the error message `"Internal Service Failure"`. + """ + +@dataclass(kw_only=True) +class PutResourcePolicyInput(_SerdeShape): + """Dataclass for PutResourcePolicyInput structure.""" + + resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the data stream or consumer.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + policy: str | None = ... + """ + Details of the resource policy. It must include the identity of the + principal and the actions allowed on this resource. This is formatted as + a JSON string. + """ + +@dataclass(kw_only=True) +class PutResourcePolicyOutput(_SerdeShape): + """Dataclass for PutResourcePolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Record(_SerdeShape): + """ + The unit of data of the Kinesis data stream, which is composed of a + sequence number, a partition key, and a data blob. + """ + + sequence_number: str + """The unique identifier of the record within its shard.""" + approximate_arrival_timestamp: datetime | None = ... + """The approximate time that the record was inserted into the stream.""" + data: bytes + """ + The data blob. The data in the blob is both opaque and immutable to + Kinesis Data Streams, which does not inspect, interpret, or change the + data in the blob in any way. When the data blob (the payload before + base64-encoding) is added to the partition key size, the total size must + not exceed the maximum record size (10 MiB). + """ + partition_key: str | None = ... + """ + Identifies which shard in the stream the data record is assigned to. + + For a stream that uses the `AUTO` record distribution strategy, this + value is not returned if the producer did not provide a partition key + when writing the record. If the producer provided a partition key, the + original value is returned even though it was not used to determine + shard placement. + """ + encryption_type: str | None = ... + """ + The encryption type used on the record. This parameter can be one of the + following values: + + - `NONE`: Do not encrypt the records in the stream. + + - `KMS`: Use server-side encryption on the records in the stream using a + customer-managed Amazon Web Services KMS key. + """ + +@dataclass(kw_only=True) +class RecordConfiguration(_SerdeShape): + """Specifies the format of records read from the source stream.""" + + record_format_type: str + """ + The format of records on the source stream. Valid values: + + - `GSR_JSON` - Supported only for streaming table (Amazon S3 Tables) + destinations. + + - `JSON` - Supported for both general purpose Amazon S3 and streaming + table destinations. + + - `STRING` - Supported only for general purpose Amazon S3 destinations. + + - `BYTE_ARRAY` - Supported only for general purpose Amazon S3 + destinations. + """ + gsr_schema_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Glue Schema + Registry schema used to validate records. Required when the channel + destination is a streaming table. + """ + +class RecordDistributionStrategy(UnknownEnumMixin, StrEnum): + AUTO = "AUTO" + USER_PARTITION_KEY = "USER_PARTITION_KEY" + +class RecordFormatType(UnknownEnumMixin, StrEnum): + GSR_JSON = "GSR_JSON" + JSON = "JSON" + STRING = "STRING" + BYTE_ARRAY = "BYTE_ARRAY" + +@dataclass(kw_only=True) +class RegisterStreamConsumerInput(_SerdeShape): + """Dataclass for RegisterStreamConsumerInput structure.""" + + stream_arn: str | None = ... + """ + The ARN of the Kinesis data stream that you want to register the + consumer with. For more info, see [Amazon Resource Names (ARNs) and + Amazon Web Services Service + Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams). + """ + consumer_name: str | None = ... + """ + For a given Kinesis data stream, each consumer must have a unique name. + However, consumer names don't have to be unique across data streams. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + tags: dict[str, str] | None = ... + """ + A set of up to 50 key-value pairs. A tag consists of a required key and + an optional value. + """ + +@dataclass(kw_only=True) +class RegisterStreamConsumerOutput(_SerdeShape): + """Dataclass for RegisterStreamConsumerOutput structure.""" + + consumer: Consumer + """ + An object that represents the details of the consumer you registered. + When you register a consumer, it gets an ARN that is generated by + Kinesis Data Streams. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveTagsFromStreamInput(_SerdeShape): + """Represents the input for `RemoveTagsFromStream`.""" + + stream_name: str | None = ... + """The name of the stream.""" + tag_keys: list[str] | None = ... + """A list of tag keys. Each corresponding tag is removed from the stream.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class RemoveTagsFromStreamOutput(_SerdeShape): + """Dataclass for RemoveTagsFromStreamOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceInUseException(ServiceError, _SerdeShape): + """ + The resource is not available for this operation. For successful + operation, the resource must be in the `ACTIVE` state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """ + The requested resource could not be found. The stream might not be + specified correctly. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class S3CompressionType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + GZIP = "GZIP" + ZSTD = "ZSTD" + +@dataclass(kw_only=True) +class S3DestinationConfiguration(_SerdeShape): + """ + The configuration for delivery to a general purpose Amazon S3 bucket. + Used in CreateChannel. + """ + + data_freshness_in_seconds: int | None = ... + """ + The maximum age, in seconds, of undelivered data before the channel + delivers it to the destination. The default value is 300 seconds. + """ + dead_letter_queue_s3_configuration: DeadLetterQueueS3Configuration | None = ... + """ + The dead-letter queue configuration for records that cannot be + delivered. Optional for general purpose Amazon S3 destinations. If not + specified, it defaults to the destination bucket with an error prefix. + """ + storage_configuration: S3StorageConfiguration + """The Amazon S3 storage configuration for the channel.""" + +@dataclass(kw_only=True) +class S3DestinationDescription(_SerdeShape): + """ + The configuration for delivery to a general purpose Amazon S3 bucket. + Returned in ChannelDescription. + """ + + data_freshness_in_seconds: int + """The maximum age, in seconds, of undelivered data.""" + dead_letter_queue_s3_configuration: DeadLetterQueueS3Configuration + """ + The dead-letter queue configuration for records that cannot be + delivered. + """ + storage_configuration: S3StorageConfiguration + """The Amazon S3 storage configuration for the channel.""" + +@dataclass(kw_only=True) +class S3DestinationUpdateInput(_SerdeShape): + """ + The updated configuration for a general purpose Amazon S3 destination. + Used in UpdateChannel. Only `DataFreshnessInSeconds` can be updated. + """ + + data_freshness_in_seconds: int + """ + The maximum age, in seconds, of undelivered data before the channel + delivers it to the destination. + """ + +class S3StorageClass(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + INTELLIGENT_TIERING = "INTELLIGENT_TIERING" + GLACIER_IR = "GLACIER_IR" + +@dataclass(kw_only=True) +class S3StorageConfiguration(_SerdeShape): + """ + The Amazon S3 storage settings for a general purpose Amazon S3 + destination. + """ + + bucket_arn: str + """The Amazon Resource Name (ARN) of the destination Amazon S3 bucket.""" + expected_bucket_owner: str + """ + The Amazon Web Services account ID of the expected owner of the + destination bucket. This value helps prevent delivery to an unintended + bucket if ownership changes. + """ + output_key_template: str | None = ... + """ + The template used to construct the Amazon S3 object key for delivered + objects. If not specified, a default template is used. + """ + storage_class: str | None = ... + """ + The Amazon S3 storage class for delivered objects. Valid values: + + - `STANDARD` - The default storage class, for frequently accessed data. + + - `INTELLIGENT_TIERING` - Automatically moves objects to the most + cost-effective access tier based on usage patterns. + + - `GLACIER_IR` - Low-cost storage for rarely accessed data that requires + millisecond retrieval. + """ + compression_type: str + """ + The compression applied to delivered objects. Valid values: + + - `NONE` - No compression. + + - `GZIP` - gzip compression. + + - `ZSTD` - Zstandard compression. + """ + +class S3TablesCompressionType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + ZSTD = "ZSTD" + SNAPPY = "SNAPPY" + +@dataclass(kw_only=True) +class S3TablesConfiguration(_SerdeShape): + """Specifies a destination streaming table on Apache Iceberg.""" + + table_bucket_arn: str + """The Amazon Resource Name (ARN) of the Amazon S3 table bucket.""" + namespace: str + """The namespace (database) of the destination table.""" + table_name: str + """ + The name of the destination table. Amazon Kinesis Data Streams creates + this table in the specified table bucket. + """ + compression_type: str + """ + The compression applied to Parquet data files. Valid values: + + - `NONE` - No compression. + + - `ZSTD` - Zstandard compression. + + - `SNAPPY` - Snappy compression. + """ + partition_spec: PartitionSpec | None = ... + """The partitioning specification for the destination table.""" + +@dataclass(kw_only=True) +class S3TablesDestinationConfiguration(_SerdeShape): + """ + The configuration for delivery to streaming tables on Apache Iceberg. + Used in CreateChannel. + """ + + data_freshness_in_seconds: int | None = ... + """ + The maximum age, in seconds, of undelivered data before the channel + delivers it to the destination. The default value is 300 seconds. + """ + dead_letter_queue_s3_configuration: DeadLetterQueueS3Configuration + """ + The dead-letter queue configuration for records that cannot be + delivered. Required for streaming table destinations. + """ + s3_tables_configuration_list: list[S3TablesConfiguration] + """ + The list of streaming table configurations. Currently, one table is + supported per channel. + """ + +@dataclass(kw_only=True) +class S3TablesDestinationDescription(_SerdeShape): + """ + The configuration for delivery to streaming tables on Apache Iceberg. + Returned in ChannelDescription. + """ + + data_freshness_in_seconds: int + """The maximum age, in seconds, of undelivered data.""" + dead_letter_queue_s3_configuration: DeadLetterQueueS3Configuration + """ + The dead-letter queue configuration for records that cannot be + delivered. + """ + s3_tables_configuration_list: list[S3TablesConfiguration] + """The list of streaming table configurations.""" + +@dataclass(kw_only=True) +class S3TablesDestinationUpdateInput(_SerdeShape): + """ + The updated configuration for a streaming table destination. Used in + UpdateChannel. Only `DataFreshnessInSeconds` can be updated. + """ + + data_freshness_in_seconds: int + """ + The maximum age, in seconds, of undelivered data before the channel + delivers it to the destination. + """ + +class ScalingType(UnknownEnumMixin, StrEnum): + UNIFORM_SCALING = "UNIFORM_SCALING" + +@dataclass(kw_only=True) +class SequenceNumberRange(_SerdeShape): + """The range of possible sequence numbers for the shard.""" + + starting_sequence_number: str + """The starting sequence number for the range.""" + ending_sequence_number: str | None = ... + """ + The ending sequence number for the range. Shards that are in the OPEN + state have an ending sequence number of `null`. + """ + +@dataclass(kw_only=True) +class Shard(_SerdeShape): + """A uniquely identified group of data records in a Kinesis data stream.""" + + shard_id: str + """The unique identifier of the shard within the stream.""" + parent_shard_id: str | None = ... + """The shard ID of the shard's parent.""" + adjacent_parent_shard_id: str | None = ... + """The shard ID of the shard adjacent to the shard's parent.""" + hash_key_range: HashKeyRange + """ + The range of possible hash key values for the shard, which is a set of + ordered contiguous positive integers. + """ + sequence_number_range: SequenceNumberRange + """The range of possible sequence numbers for the shard.""" + +@dataclass(kw_only=True) +class ShardFilter(_SerdeShape): + """ + The request parameter used to filter out the response of the + `ListShards` API. + """ + + type: str + """ + The shard type specified in the `ShardFilter` parameter. This is a + required property of the `ShardFilter` parameter. + + You can specify the following valid values: + + - `AFTER_SHARD_ID` - the response includes all the shards, starting with + the shard whose ID immediately follows the `ShardId` that you + provided. + + - `AT_TRIM_HORIZON` - the response includes all the shards that were + open at `TRIM_HORIZON`. + + - `FROM_TRIM_HORIZON` - (default), the response includes all the shards + within the retention period of the data stream (trim to tip). + + - `AT_LATEST` - the response includes only the currently open shards of + the data stream. + + - `AT_TIMESTAMP` - the response includes all shards whose start + timestamp is less than or equal to the given timestamp and end + timestamp is greater than or equal to the given timestamp or still + open. + + - `FROM_TIMESTAMP` - the response incldues all closed shards whose end + timestamp is greater than or equal to the given timestamp and also all + open shards. Corrected to `TRIM_HORIZON` of the data stream if + `FROM_TIMESTAMP` is less than the `TRIM_HORIZON` value. + """ + shard_id: str | None = ... + """ + The exclusive start `shardID` speified in the `ShardFilter` parameter. + This property can only be used if the `AFTER_SHARD_ID` shard type is + specified. + """ + timestamp: datetime | None = ... + """ + The timestamps specified in the `ShardFilter` parameter. A timestamp is + a Unix epoch date with precision in milliseconds. For example, + 2016-04-04T19:58:46.480-00:00 or 1459799926.480. This property can only + be used if `FROM_TIMESTAMP` or `AT_TIMESTAMP` shard types are specified. + """ + +class ShardFilterType(UnknownEnumMixin, StrEnum): + AFTER_SHARD_ID = "AFTER_SHARD_ID" + AT_TRIM_HORIZON = "AT_TRIM_HORIZON" + FROM_TRIM_HORIZON = "FROM_TRIM_HORIZON" + AT_LATEST = "AT_LATEST" + AT_TIMESTAMP = "AT_TIMESTAMP" + FROM_TIMESTAMP = "FROM_TIMESTAMP" + +class ShardIteratorType(UnknownEnumMixin, StrEnum): + AT_SEQUENCE_NUMBER = "AT_SEQUENCE_NUMBER" + AFTER_SEQUENCE_NUMBER = "AFTER_SEQUENCE_NUMBER" + TRIM_HORIZON = "TRIM_HORIZON" + LATEST = "LATEST" + AT_TIMESTAMP = "AT_TIMESTAMP" + +@dataclass(kw_only=True) +class SplitShardInput(_SerdeShape): + """Represents the input for `SplitShard`.""" + + stream_name: str | None = ... + """The name of the stream for the shard split.""" + shard_to_split: str | None = ... + """The shard ID of the shard to split.""" + new_starting_hash_key: str | None = ... + """ + A hash key value for the starting hash key of one of the child shards + created by the split. The hash key range for a given shard constitutes a + set of ordered contiguous positive integers. The value for + `NewStartingHashKey` must be in the range of hash keys being mapped into + the shard. The `NewStartingHashKey` hash key value and all higher hash + key values in hash key range are distributed to one of the child shards. + All the lower hash key values in the range are distributed to the other + child shard. + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class SplitShardOutput(_SerdeShape): + """Dataclass for SplitShardOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartingPosition(_SerdeShape): + """The starting position in the data stream from which to start streaming.""" + + type: str + """ + You can set the starting position to one of the following values: + + `AT_SEQUENCE_NUMBER`: Start streaming from the position denoted by the + sequence number specified in the `SequenceNumber` field. + + `AFTER_SEQUENCE_NUMBER`: Start streaming right after the position + denoted by the sequence number specified in the `SequenceNumber` field. + + `AT_TIMESTAMP`: Start streaming from the position denoted by the time + stamp specified in the `Timestamp` field. + + `TRIM_HORIZON`: Start streaming at the last untrimmed record in the + shard, which is the oldest data record in the shard. + + `LATEST`: Start streaming just after the most recent record in the + shard, so that you always read the most recent data in the shard. + """ + sequence_number: str | None = ... + """ + The sequence number of the data record in the shard from which to start + streaming. To specify a sequence number, set `StartingPosition` to + `AT_SEQUENCE_NUMBER` or `AFTER_SEQUENCE_NUMBER`. + """ + timestamp: datetime | None = ... + """ + The time stamp of the data record from which to start reading. To + specify a time stamp, set `StartingPosition` to `Type AT_TIMESTAMP`. A + time stamp is the Unix epoch date with precision in milliseconds. For + example, `2016-04-04T19:58:46.480-00:00` or `1459799926.480`. If a + record with this exact time stamp does not exist, records will be + streamed from the next (later) record. If the time stamp is older than + the current trim horizon, records will be streamed from the oldest + untrimmed data record (`TRIM_HORIZON`). + """ + +@dataclass(kw_only=True) +class StartStreamEncryptionInput(_SerdeShape): + """Dataclass for StartStreamEncryptionInput structure.""" + + stream_name: str | None = ... + """The name of the stream for which to start encrypting records.""" + encryption_type: str | None = ... + """The encryption type to use. The only valid value is `KMS`.""" + key_id: str | None = ... + """ + The GUID for the customer-managed Amazon Web Services KMS key to use for + encryption. This value can be a globally unique identifier, a fully + specified Amazon Resource Name (ARN) to either an alias or a key, or an + alias name prefixed by \"alias/\".You can also use a master key owned by + Kinesis Data Streams by specifying the alias `aws/kinesis`. + + - Key ARN example: + `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` + + - Alias ARN example: + `arn:aws:kms:us-east-1:123456789012:alias/MyAliasName` + + - Globally unique key ID example: `12345678-1234-1234-1234-123456789012` + + - Alias name example: `alias/MyAliasName` + + - Master key owned by Kinesis Data Streams: `alias/aws/kinesis` + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class StartStreamEncryptionOutput(_SerdeShape): + """Dataclass for StartStreamEncryptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopStreamEncryptionInput(_SerdeShape): + """Dataclass for StopStreamEncryptionInput structure.""" + + stream_name: str | None = ... + """The name of the stream on which to stop encrypting records.""" + encryption_type: str | None = ... + """The encryption type. The only valid value is `KMS`.""" + key_id: str | None = ... + """ + The GUID for the customer-managed Amazon Web Services KMS key to use for + encryption. This value can be a globally unique identifier, a fully + specified Amazon Resource Name (ARN) to either an alias or a key, or an + alias name prefixed by \"alias/\".You can also use a master key owned by + Kinesis Data Streams by specifying the alias `aws/kinesis`. + + - Key ARN example: + `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` + + - Alias ARN example: + `arn:aws:kms:us-east-1:123456789012:alias/MyAliasName` + + - Globally unique key ID example: `12345678-1234-1234-1234-123456789012` + + - Alias name example: `alias/MyAliasName` + + - Master key owned by Kinesis Data Streams: `alias/aws/kinesis` + """ + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class StopStreamEncryptionOutput(_SerdeShape): + """Dataclass for StopStreamEncryptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StreamDescription(_SerdeShape): + """Represents the output for DescribeStream.""" + + stream_name: str + """The name of the stream being described.""" + stream_arn: str + """The Amazon Resource Name (ARN) for the stream being described.""" + stream_status: str + """ + The current status of the stream being described. The stream status is + one of the following states: + + - `CREATING` - The stream is being created. Kinesis Data Streams + immediately returns and sets `StreamStatus` to `CREATING`. + + - `DELETING` - The stream is being deleted. The specified stream is in + the `DELETING` state until Kinesis Data Streams completes the + deletion. + + - `ACTIVE` - The stream exists and is ready for read and write + operations or deletion. You should perform read and write operations + only on an `ACTIVE` stream. + + - `UPDATING` - Shards in the stream are being merged or split. Read and + write operations continue to work while the stream is in the + `UPDATING` state. + """ + stream_mode_details: StreamModeDetails | None = ... + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** capacity mode and a **provisioned** capacity mode for your + data streams. + """ + shards: list[Shard] + """The shards that comprise the stream.""" + has_more_shards: bool + """If set to `true`, more shards in the stream are available to describe.""" + retention_period_hours: int + """ + The current retention period, in hours. Minimum value of 24. Maximum + value of 168. + """ + stream_creation_timestamp: datetime + """The approximate time that the stream was created.""" + enhanced_monitoring: list[EnhancedMetrics] + """Represents the current enhanced monitoring settings of the stream.""" + encryption_type: str | None = ... + """ + The server-side encryption type used on the stream. This parameter can + be one of the following values: + + - `NONE`: Do not encrypt the records in the stream. + + - `KMS`: Use server-side encryption on the records in the stream using a + customer-managed Amazon Web Services KMS key. + """ + key_id: str | None = ... + """ + The GUID for the customer-managed Amazon Web Services KMS key to use for + encryption. This value can be a globally unique identifier, a fully + specified ARN to either an alias or a key, or an alias name prefixed by + \"alias/\".You can also use a master key owned by Kinesis Data Streams + by specifying the alias `aws/kinesis`. + + - Key ARN example: + `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` + + - Alias ARN example: + `arn:aws:kms:us-east-1:123456789012:alias/MyAliasName` + + - Globally unique key ID example: `12345678-1234-1234-1234-123456789012` + + - Alias name example: `alias/MyAliasName` + + - Master key owned by Kinesis Data Streams: `alias/aws/kinesis` + """ + +@dataclass(kw_only=True) +class StreamDescriptionSummary(_SerdeShape): + """Represents the output for DescribeStreamSummary""" + + stream_name: str + """The name of the stream being described.""" + stream_arn: str + """The Amazon Resource Name (ARN) for the stream being described.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + stream_status: str + """ + The current status of the stream being described. The stream status is + one of the following states: + + - `CREATING` - The stream is being created. Kinesis Data Streams + immediately returns and sets `StreamStatus` to `CREATING`. + + - `DELETING` - The stream is being deleted. The specified stream is in + the `DELETING` state until Kinesis Data Streams completes the + deletion. + + - `ACTIVE` - The stream exists and is ready for read and write + operations or deletion. You should perform read and write operations + only on an `ACTIVE` stream. + + - `UPDATING` - Shards in the stream are being merged or split. Read and + write operations continue to work while the stream is in the + `UPDATING` state. + """ + stream_mode_details: StreamModeDetails | None = ... + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** ycapacity mode and a **provisioned** capacity mode for + your data streams. + """ + retention_period_hours: int + """The current retention period, in hours.""" + stream_creation_timestamp: datetime + """The approximate time that the stream was created.""" + enhanced_monitoring: list[EnhancedMetrics] + """Represents the current enhanced monitoring settings of the stream.""" + encryption_type: str | None = ... + """ + The encryption type used. This value is one of the following: + + - `KMS` + + - `NONE` + """ + key_id: str | None = ... + """ + The GUID for the customer-managed Amazon Web Services KMS key to use for + encryption. This value can be a globally unique identifier, a fully + specified ARN to either an alias or a key, or an alias name prefixed by + \"alias/\".You can also use a master key owned by Kinesis Data Streams + by specifying the alias `aws/kinesis`. + + - Key ARN example: + `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` + + - Alias ARN example: + ` arn:aws:kms:us-east-1:123456789012:alias/MyAliasName` + + - Globally unique key ID example: `12345678-1234-1234-1234-123456789012` + + - Alias name example: `alias/MyAliasName` + + - Master key owned by Kinesis Data Streams: `alias/aws/kinesis` + """ + open_shard_count: int + """The number of open shards in the stream.""" + consumer_count: int | None = ... + """The number of enhanced fan-out consumers registered with the stream.""" + warm_throughput: WarmThroughputObject | None = ... + """ + The warm throughput in MB/s for the stream. This represents the + throughput capacity that will be immediately available for write + operations. + """ + max_record_size_in_ki_b: int | None = ... + """ + The maximum record size of a single record in kibibyte (KiB) that you + can write to, and read from a stream. + """ + channel_count: int | None = ... + """The number of channels associated with the stream.""" + record_distribution_strategy: str | None = ... + """ + The record distribution strategy that the stream currently uses. A value + of `AUTO` indicates that Amazon Kinesis Data Streams distributes records + across shards using service-managed algorithms. A value of + `USER_PARTITION_KEY` indicates that shard placement is determined by the + partition key that producers supply. This field is only present for + streams that use the on-demand capacity mode. + """ + +@dataclass(kw_only=True) +class StreamFilter(_SerdeShape): + """Filters ListChannels results by source stream.""" + + stream_arn: str + """The Amazon Resource Name (ARN) of the source stream to filter by.""" + stream_creation_timestamp: datetime | None = ... + """The creation timestamp of the source stream.""" + +class StreamMode(UnknownEnumMixin, StrEnum): + PROVISIONED = "PROVISIONED" + ON_DEMAND = "ON_DEMAND" + +@dataclass(kw_only=True) +class StreamModeDetails(_SerdeShape): + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** capacity mode and a **provisioned** capacity mode for your + data streams. + """ + + stream_mode: str + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** capacity mode and a **provisioned** capacity mode for your + data streams. + """ + +class StreamStatus(UnknownEnumMixin, StrEnum): + CREATING = "CREATING" + DELETING = "DELETING" + ACTIVE = "ACTIVE" + UPDATING = "UPDATING" + +@dataclass(kw_only=True) +class StreamSummary(_SerdeShape): + """The summary of a stream.""" + + stream_name: str + """The name of a stream.""" + stream_arn: str + """The ARN of the stream.""" + stream_status: str + """The status of the stream.""" + stream_mode_details: StreamModeDetails | None = ... + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** capacity mode and a **provisioned** capacity mode for your + data streams. + """ + stream_creation_timestamp: datetime | None = ... + """The timestamp at which the stream was created.""" + +@dataclass(kw_only=True) +class SubscribeToShardEvent(_SerdeShape): + """ + After you call SubscribeToShard, Kinesis Data Streams sends events of + this type over an HTTP/2 connection to your consumer. + """ + + records: list[Record] + """""" + continuation_sequence_number: str + """ + Use this as `SequenceNumber` in the next call to SubscribeToShard, with + `StartingPosition` set to `AT_SEQUENCE_NUMBER` or + `AFTER_SEQUENCE_NUMBER`. Use `ContinuationSequenceNumber` for + checkpointing because it captures your shard progress even when no data + is written to the shard. + """ + millis_behind_latest: int + """ + The number of milliseconds the read records are from the tip of the + stream, indicating how far behind current time the consumer is. A value + of zero indicates that record processing is caught up, and there are no + new records to process at this moment. + """ + child_shards: list[ChildShard] | None = ... + """ + The list of the child shards of the current shard, returned only at the + end of the current shard. + """ + +@dataclass +class SubscribeToShardEventStreamSubscribeToShardEvent(_SerdeShape): + """ + After you call SubscribeToShard, Kinesis Data Streams sends events of + this type to your consumer. For an example of how to handle these + events, see [Enhanced Fan-Out Using the Kinesis Data Streams + API](/streams/latest/dev/building-enhanced-consumers-api.html). + """ + + value: SubscribeToShardEvent + +@dataclass +class SubscribeToShardEventStreamResourceNotFoundException(_SerdeShape): + """ + The requested resource could not be found. The stream might not be + specified correctly. + """ + + value: ResourceNotFoundException + +@dataclass +class SubscribeToShardEventStreamResourceInUseException(_SerdeShape): + """ + The resource is not available for this operation. For successful + operation, the resource must be in the `ACTIVE` state. + """ + + value: ResourceInUseException + +@dataclass +class SubscribeToShardEventStreamKMSDisabledException(_SerdeShape): + """ + The request was rejected because the specified customer master key (CMK) + isn't enabled. + """ + + value: KMSDisabledException + +@dataclass +class SubscribeToShardEventStreamKMSInvalidStateException(_SerdeShape): + """ + The request was rejected because the state of the specified resource + isn't valid for this request. For more information, see [How Key State + Affects Use of a Customer Master + Key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + + value: KMSInvalidStateException + +@dataclass +class SubscribeToShardEventStreamKMSAccessDeniedException(_SerdeShape): + """ + The ciphertext references a key that doesn't exist or that you don't + have access to. + """ + + value: KMSAccessDeniedException + +@dataclass +class SubscribeToShardEventStreamKMSNotFoundException(_SerdeShape): + """ + The request was rejected because the specified entity or resource can't + be found. + """ + + value: KMSNotFoundException + +@dataclass +class SubscribeToShardEventStreamKMSOptInRequired(_SerdeShape): + """ + The Amazon Web Services access key ID needs a subscription for the + service. + """ + + value: KMSOptInRequired + +@dataclass +class SubscribeToShardEventStreamKMSThrottlingException(_SerdeShape): + """ + The request was denied due to request throttling. For more information + about throttling, see + [Limits](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + + value: KMSThrottlingException + +@dataclass +class SubscribeToShardEventStreamInternalFailureException(_SerdeShape): + """ + The processing of the request failed because of an unknown error, + exception, or failure. + """ + + value: InternalFailureException + +@dataclass +class SubscribeToShardEventStreamUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +SubscribeToShardEventStream = Union[ + SubscribeToShardEventStreamSubscribeToShardEvent + | SubscribeToShardEventStreamResourceNotFoundException + | SubscribeToShardEventStreamResourceInUseException + | SubscribeToShardEventStreamKMSDisabledException + | SubscribeToShardEventStreamKMSInvalidStateException + | SubscribeToShardEventStreamKMSAccessDeniedException + | SubscribeToShardEventStreamKMSNotFoundException + | SubscribeToShardEventStreamKMSOptInRequired + | SubscribeToShardEventStreamKMSThrottlingException + | SubscribeToShardEventStreamInternalFailureException + | SubscribeToShardEventStreamUnknown +] +""" +This is a tagged union for all of the types of events an enhanced +fan-out consumer can receive over HTTP/2 after a call to +SubscribeToShard. +""" + +class _SubscribeToShardEventStreamDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> SubscribeToShardEventStream: ... + +@dataclass(kw_only=True) +class SubscribeToShardInput(_SerdeShape): + """Dataclass for SubscribeToShardInput structure.""" + + consumer_arn: str | None = ... + """ + For this parameter, use the value you obtained when you called + RegisterStreamConsumer. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + shard_id: str | None = ... + """ + The ID of the shard you want to subscribe to. To see a list of all the + shards for a given stream, use ListShards. + """ + starting_position: StartingPosition | None = ... + """The starting position in the data stream from which to start streaming.""" + dry_run: bool | None = ... + """Checks if your request will succeed. `DryRun` is an optional parameter.""" + +@dataclass(kw_only=True) +class SubscribeToShardOutput(_SerdeShape): + """Dataclass for SubscribeToShardOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + Metadata assigned to the stream or consumer, consisting of a key-value + pair. + """ + + key: str + """ + A unique identifier for the tag. Maximum length: 128 characters. Valid + characters: Unicode letters, digits, white space, _ . / = + - % @ + """ + value: str | None = ... + """ + An optional string, typically used to describe or define the tag. + Maximum length: 256 characters. Valid characters: Unicode letters, + digits, white space, _ . / = + - % @ + """ + +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """Dataclass for TagResourceInput structure.""" + + tags: dict[str, str] | None = ... + """ + An array of tags to be added to the Kinesis resource. A tag consists of + a required key and an optional value. You can add up to 50 tags per + resource. + + Tags may only contain Unicode letters, digits, white space, or these + symbols: _ . : / = + - @. + """ + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Kinesis resource to which to add + tags. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """Dataclass for UntagResourceInput structure.""" + + tag_keys: list[str] | None = ... + """ + A list of tag key-value pairs. Existing tags of the resource whose keys + are members of this list will be removed from the Kinesis resource. + """ + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Kinesis resource from which to + remove tags. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAccountSettingsInput(_SerdeShape): + """Dataclass for UpdateAccountSettingsInput structure.""" + + minimum_throughput_billing_commitment: ( + MinimumThroughputBillingCommitmentInput | None + ) = ... + """ + Specifies the minimum throughput billing commitment configuration for + your account. + """ + +@dataclass(kw_only=True) +class UpdateAccountSettingsOutput(_SerdeShape): + """Dataclass for UpdateAccountSettingsOutput structure.""" + + minimum_throughput_billing_commitment: ( + MinimumThroughputBillingCommitmentOutput | None + ) = ... + """ + The updated configuration of the minimum throughput billing commitment + for your account. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateChannelInput(_SerdeShape): + """Dataclass for UpdateChannelInput structure.""" + + channel_arn: str | None = ... + """The Amazon Resource Name (ARN) of the channel to update.""" + s3_destination_configuration: S3DestinationUpdateInput | None = ... + """ + The updated configuration for a general purpose Amazon S3 destination. + Specify this parameter when the channel delivers to a general purpose + Amazon S3 bucket. Only `DataFreshnessInSeconds` can be updated. + """ + s3_tables_destination_configuration: S3TablesDestinationUpdateInput | None = ... + """ + The updated configuration for a streaming table destination. Specify + this parameter when the channel delivers to streaming tables on Apache + Iceberg in Amazon S3 Tables. Only `DataFreshnessInSeconds` can be + updated. + """ + logging_configuration: ChannelLoggingUpdateInput | None = ... + """The updated Amazon CloudWatch Logs configuration for the channel.""" + +@dataclass(kw_only=True) +class UpdateChannelOutput(_SerdeShape): + """Dataclass for UpdateChannelOutput structure.""" + + channel_description: ChannelDescription + """ + The configuration and current status of the channel after the update, + including its ARN, destination configuration, and lifecycle state. + Immediately after the request, the state is `UPDATING`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateMaxRecordSizeInput(_SerdeShape): + """Dataclass for UpdateMaxRecordSizeInput structure.""" + + stream_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the stream for the `MaxRecordSize` + update. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + max_record_size_in_ki_b: int | None = ... + """ + The maximum record size of a single record in KiB that you can write to, + and read from a stream. Specify a value between 1024 and 10240 KiB (1 to + 10 MiB). If you specify a value that is out of this range, + `UpdateMaxRecordSize` sends back an `ValidationException` message. + """ + +@dataclass(kw_only=True) +class UpdateMaxRecordSizeOutput(_SerdeShape): + """Dataclass for UpdateMaxRecordSizeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateShardCountInput(_SerdeShape): + """Dataclass for UpdateShardCountInput structure.""" + + stream_name: str | None = ... + """The name of the stream.""" + target_shard_count: int | None = ... + """ + The new number of shards. This value has the following default limits. + By default, you cannot do the following: + + - Set this value to more than double your current shard count for a + stream. + + - Set this value below half your current shard count for a stream. + + - Set this value to more than 10000 shards in a stream (the default + limit for shard count per stream is 10000 per account per region), + unless you request a limit increase. + + - Scale a stream with more than 10000 shards down unless you set this + value to less than 10000 shards. + """ + scaling_type: str | None = ... + """The scaling type. Uniform scaling creates shards of equal size.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + +@dataclass(kw_only=True) +class UpdateShardCountOutput(_SerdeShape): + """Dataclass for UpdateShardCountOutput structure.""" + + stream_name: str | None = ... + """The name of the stream.""" + current_shard_count: int | None = ... + """The current number of shards.""" + target_shard_count: int | None = ... + """The updated number of shards.""" + stream_arn: str | None = ... + """The ARN of the stream.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStreamModeInput(_SerdeShape): + """Dataclass for UpdateStreamModeInput structure.""" + + stream_arn: str | None = ... + """ + Specifies the ARN of the data stream whose capacity mode you want to + update. + """ + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + stream_mode_details: StreamModeDetails | None = ... + """ + Specifies the capacity mode to which you want to set your data stream. + Currently, in Kinesis Data Streams, you can choose between an + **on-demand** capacity mode and a **provisioned** capacity mode for your + data streams. + """ + warm_throughput_mi_bps: int | None = ... + """ + The target warm throughput in MB/s that the stream should be scaled to + handle. This represents the throughput capacity that will be immediately + available for write operations. This field is only valid when the stream + mode is being updated to on-demand. + """ + +@dataclass(kw_only=True) +class UpdateStreamModeOutput(_SerdeShape): + """Dataclass for UpdateStreamModeOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStreamRecordDistributionStrategyInput(_SerdeShape): + """Dataclass for UpdateStreamRecordDistributionStrategyInput structure.""" + + stream_arn: str | None = ... + """The Amazon Resource Name (ARN) of the stream to update.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + record_distribution_strategy: str | None = ... + """ + The record distribution strategy to apply to the stream. Specify one of + the following values: + + - `AUTO` -- Amazon Kinesis Data Streams distributes records evenly + across shards and ignores any partition key and `ExplicitHashKey` that + producers supply. + + - `USER_PARTITION_KEY` -- Producers must supply a partition key, which + Amazon Kinesis Data Streams uses to determine shard placement. This is + the default. + """ + +@dataclass(kw_only=True) +class UpdateStreamRecordDistributionStrategyOutput(_SerdeShape): + """Dataclass for UpdateStreamRecordDistributionStrategyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateStreamWarmThroughputInput(_SerdeShape): + """Dataclass for UpdateStreamWarmThroughputInput structure.""" + + stream_arn: str | None = ... + """The ARN of the stream to be updated.""" + stream_name: str | None = ... + """The name of the stream to be updated.""" + stream_id: str | None = ... + """Not Implemented. Reserved for future use.""" + warm_throughput_mi_bps: int | None = ... + """ + The target warm throughput in MB/s that the stream should be scaled to + handle. This represents the throughput capacity that will be immediately + available for write operations. + """ + +@dataclass(kw_only=True) +class UpdateStreamWarmThroughputOutput(_SerdeShape): + """Dataclass for UpdateStreamWarmThroughputOutput structure.""" + + stream_arn: str | None = ... + """The ARN of the stream that was updated.""" + stream_name: str | None = ... + """The name of the stream that was updated.""" + warm_throughput: WarmThroughputObject | None = ... + """ + Specifies the updated warm throughput configuration for your data + stream. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ValidationException(ServiceError, _SerdeShape): + """ + Specifies that you tried to invoke this API for a data stream with the + on-demand capacity mode. This API is only supported for data streams + with the provisioned capacity mode. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class WarmThroughputObject(_SerdeShape): + """ + Represents the warm throughput configuration on the stream. This is only + present for On-Demand Kinesis Data Streams in accounts that have + `MinimumThroughputBillingCommitment` enabled. + """ + + target_mi_bps: int | None = ... + """ + The target warm throughput value on the stream. This indicates that the + stream is currently scaling towards this target value. + """ + current_mi_bps: int | None = ... + """ + The current warm throughput value on the stream. This is the write + throughput in MiBps that the stream is currently scaled to handle. + """ + +ADD_TAGS_TO_STREAM: APIOperation[AddTagsToStreamInput, AddTagsToStreamOutput] +CREATE_CHANNEL: APIOperation[CreateChannelInput, CreateChannelOutput] +CREATE_STREAM: APIOperation[CreateStreamInput, CreateStreamOutput] +DECREASE_STREAM_RETENTION_PERIOD: APIOperation[ + DecreaseStreamRetentionPeriodInput, DecreaseStreamRetentionPeriodOutput +] +DELETE_CHANNEL: APIOperation[DeleteChannelInput, DeleteChannelOutput] +DELETE_RESOURCE_POLICY: APIOperation[ + DeleteResourcePolicyInput, DeleteResourcePolicyOutput +] +DELETE_STREAM: APIOperation[DeleteStreamInput, DeleteStreamOutput] +DEREGISTER_STREAM_CONSUMER: APIOperation[ + DeregisterStreamConsumerInput, DeregisterStreamConsumerOutput +] +DESCRIBE_ACCOUNT_SETTINGS: APIOperation[ + DescribeAccountSettingsInput, DescribeAccountSettingsOutput +] +DESCRIBE_CHANNEL: APIOperation[DescribeChannelInput, DescribeChannelOutput] +DESCRIBE_LIMITS: APIOperation[DescribeLimitsInput, DescribeLimitsOutput] +DESCRIBE_STREAM: APIOperation[DescribeStreamInput, DescribeStreamOutput] +DESCRIBE_STREAM_CONSUMER: APIOperation[ + DescribeStreamConsumerInput, DescribeStreamConsumerOutput +] +DESCRIBE_STREAM_SUMMARY: APIOperation[ + DescribeStreamSummaryInput, DescribeStreamSummaryOutput +] +DISABLE_ENHANCED_MONITORING: APIOperation[ + DisableEnhancedMonitoringInput, DisableEnhancedMonitoringOutput +] +ENABLE_ENHANCED_MONITORING: APIOperation[ + EnableEnhancedMonitoringInput, EnableEnhancedMonitoringOutput +] +GET_RECORDS: APIOperation[GetRecordsInput, GetRecordsOutput] +GET_RESOURCE_POLICY: APIOperation[GetResourcePolicyInput, GetResourcePolicyOutput] +GET_SHARD_ITERATOR: APIOperation[GetShardIteratorInput, GetShardIteratorOutput] +INCREASE_STREAM_RETENTION_PERIOD: APIOperation[ + IncreaseStreamRetentionPeriodInput, IncreaseStreamRetentionPeriodOutput +] +LIST_CHANNELS: APIOperation[ListChannelsInput, ListChannelsOutput] +LIST_SHARDS: APIOperation[ListShardsInput, ListShardsOutput] +LIST_STREAM_CONSUMERS: APIOperation[ListStreamConsumersInput, ListStreamConsumersOutput] +LIST_STREAMS: APIOperation[ListStreamsInput, ListStreamsOutput] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] +LIST_TAGS_FOR_STREAM: APIOperation[ListTagsForStreamInput, ListTagsForStreamOutput] +MERGE_SHARDS: APIOperation[MergeShardsInput, MergeShardsOutput] +PUT_RECORD: APIOperation[PutRecordInput, PutRecordOutput] +PUT_RECORDS: APIOperation[PutRecordsInput, PutRecordsOutput] +PUT_RESOURCE_POLICY: APIOperation[PutResourcePolicyInput, PutResourcePolicyOutput] +REGISTER_STREAM_CONSUMER: APIOperation[ + RegisterStreamConsumerInput, RegisterStreamConsumerOutput +] +REMOVE_TAGS_FROM_STREAM: APIOperation[ + RemoveTagsFromStreamInput, RemoveTagsFromStreamOutput +] +SPLIT_SHARD: APIOperation[SplitShardInput, SplitShardOutput] +START_STREAM_ENCRYPTION: APIOperation[ + StartStreamEncryptionInput, StartStreamEncryptionOutput +] +STOP_STREAM_ENCRYPTION: APIOperation[ + StopStreamEncryptionInput, StopStreamEncryptionOutput +] +SUBSCRIBE_TO_SHARD: APIOperation[SubscribeToShardInput, SubscribeToShardOutput] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] +UPDATE_ACCOUNT_SETTINGS: APIOperation[ + UpdateAccountSettingsInput, UpdateAccountSettingsOutput +] +UPDATE_CHANNEL: APIOperation[UpdateChannelInput, UpdateChannelOutput] +UPDATE_MAX_RECORD_SIZE: APIOperation[ + UpdateMaxRecordSizeInput, UpdateMaxRecordSizeOutput +] +UPDATE_SHARD_COUNT: APIOperation[UpdateShardCountInput, UpdateShardCountOutput] +UPDATE_STREAM_MODE: APIOperation[UpdateStreamModeInput, UpdateStreamModeOutput] +UPDATE_STREAM_RECORD_DISTRIBUTION_STRATEGY: APIOperation[ + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, +] +UPDATE_STREAM_WARM_THROUGHPUT: APIOperation[ + UpdateStreamWarmThroughputInput, UpdateStreamWarmThroughputOutput +] diff --git a/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/user_agent.py b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/user_agent.py new file mode 100644 index 00000000..894ec7f3 --- /dev/null +++ b/clients/aws-sdk-kinesis/src/aws_sdk_kinesis/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import KinesisConfig + + +def aws_user_agent_plugin(config: KinesisConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="Kinesis", + ) + ) diff --git a/clients/aws-sdk-kinesis/tests/__init__.py b/clients/aws-sdk-kinesis/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-kinesis/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-kinesis/tests/_typecheck.py b/clients/aws-sdk-kinesis/tests/_typecheck.py new file mode 100644 index 00000000..ba6626fa --- /dev/null +++ b/clients/aws-sdk-kinesis/tests/_typecheck.py @@ -0,0 +1,340 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_kinesis.models import ( + AddTagsToStreamInput, + AddTagsToStreamOutput, + ChannelDescription, + ChannelEncryptionConfiguration, + ChannelLoggingConfiguration, + ChannelLoggingUpdateInput, + ChannelStreamConfiguration, + ChannelStreamDescription, + ChannelStreamIdentifier, + ChannelSummary, + ChildShard, + CloudWatchLogs, + CloudWatchLogsUpdateInput, + Consumer, + ConsumerDescription, + CreateChannelInput, + CreateChannelOutput, + CreateStreamInput, + CreateStreamOutput, + DeadLetterQueueS3Configuration, + DecreaseStreamRetentionPeriodInput, + DecreaseStreamRetentionPeriodOutput, + DeleteChannelInput, + DeleteChannelOutput, + DeleteResourcePolicyInput, + DeleteResourcePolicyOutput, + DeleteStreamInput, + DeleteStreamOutput, + DeregisterStreamConsumerInput, + DeregisterStreamConsumerOutput, + DescribeAccountSettingsInput, + DescribeAccountSettingsOutput, + DescribeChannelInput, + DescribeChannelOutput, + DescribeLimitsInput, + DescribeLimitsOutput, + DescribeStreamConsumerInput, + DescribeStreamConsumerOutput, + DescribeStreamInput, + DescribeStreamOutput, + DescribeStreamSummaryInput, + DescribeStreamSummaryOutput, + DisableEnhancedMonitoringInput, + DisableEnhancedMonitoringOutput, + EnableEnhancedMonitoringInput, + EnableEnhancedMonitoringOutput, + EnhancedMetrics, + GetRecordsInput, + GetRecordsOutput, + GetResourcePolicyInput, + GetResourcePolicyOutput, + GetShardIteratorInput, + GetShardIteratorOutput, + HashKeyRange, + IncreaseStreamRetentionPeriodInput, + IncreaseStreamRetentionPeriodOutput, + ListChannelsInput, + ListChannelsOutput, + ListShardsInput, + ListShardsOutput, + ListStreamConsumersInput, + ListStreamConsumersOutput, + ListStreamsInput, + ListStreamsOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ListTagsForStreamInput, + ListTagsForStreamOutput, + MergeShardsInput, + MergeShardsOutput, + MinimumThroughputBillingCommitmentInput, + MinimumThroughputBillingCommitmentOutput, + PartitionField, + PartitionSpec, + PutRecordInput, + PutRecordOutput, + PutRecordsInput, + PutRecordsOutput, + PutRecordsRequestEntry, + PutRecordsResultEntry, + PutResourcePolicyInput, + PutResourcePolicyOutput, + Record, + RecordConfiguration, + RegisterStreamConsumerInput, + RegisterStreamConsumerOutput, + RemoveTagsFromStreamInput, + RemoveTagsFromStreamOutput, + S3DestinationConfiguration, + S3DestinationDescription, + S3DestinationUpdateInput, + S3StorageConfiguration, + S3TablesConfiguration, + S3TablesDestinationConfiguration, + S3TablesDestinationDescription, + S3TablesDestinationUpdateInput, + SequenceNumberRange, + Shard, + ShardFilter, + SplitShardInput, + SplitShardOutput, + StartStreamEncryptionInput, + StartStreamEncryptionOutput, + StartingPosition, + StopStreamEncryptionInput, + StopStreamEncryptionOutput, + StreamDescription, + StreamDescriptionSummary, + StreamFilter, + StreamModeDetails, + StreamSummary, + SubscribeToShardEvent, + SubscribeToShardInput, + SubscribeToShardOutput, + Tag, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAccountSettingsInput, + UpdateAccountSettingsOutput, + UpdateChannelInput, + UpdateChannelOutput, + UpdateMaxRecordSizeInput, + UpdateMaxRecordSizeOutput, + UpdateShardCountInput, + UpdateShardCountOutput, + UpdateStreamModeInput, + UpdateStreamModeOutput, + UpdateStreamRecordDistributionStrategyInput, + UpdateStreamRecordDistributionStrategyOutput, + UpdateStreamWarmThroughputInput, + UpdateStreamWarmThroughputOutput, + WarmThroughputObject, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AddTagsToStreamInput() +AddTagsToStreamOutput() +ChannelDescription( + channel_name=_, + channel_arn=_, + channel_id=_, + channel_status=_, + channel_creation_timestamp=_, + service_execution_role_arn=_, + stream_configuration_list=_, + logging_configuration=_, +) +ChannelEncryptionConfiguration(encryption_type=_, key_id=_) +ChannelLoggingConfiguration(cloud_watch_logs=_) +ChannelLoggingUpdateInput(cloud_watch_logs=_) +ChannelStreamConfiguration(stream_arn=_, record_configuration=_) +ChannelStreamDescription( + stream_arn=_, stream_creation_timestamp=_, record_configuration=_ +) +ChannelStreamIdentifier(stream_arn=_, stream_creation_timestamp=_) +ChannelSummary( + channel_name=_, + channel_arn=_, + channel_id=_, + channel_status=_, + channel_creation_timestamp=_, + channel_destination_type=_, + streams=_, +) +ChildShard(shard_id=_, parent_shards=_, hash_key_range=_) +CloudWatchLogs(enabled=_) +CloudWatchLogsUpdateInput(enabled=_) +Consumer( + consumer_name=_, consumer_arn=_, consumer_status=_, consumer_creation_timestamp=_ +) +ConsumerDescription( + consumer_name=_, + consumer_arn=_, + consumer_status=_, + consumer_creation_timestamp=_, + stream_arn=_, +) +CreateChannelInput() +CreateChannelOutput(channel_description=_) +CreateStreamInput() +CreateStreamOutput() +DeadLetterQueueS3Configuration(bucket_arn=_, expected_bucket_owner=_) +DecreaseStreamRetentionPeriodInput() +DecreaseStreamRetentionPeriodOutput() +DeleteChannelInput() +DeleteChannelOutput() +DeleteResourcePolicyInput() +DeleteResourcePolicyOutput() +DeleteStreamInput() +DeleteStreamOutput() +DeregisterStreamConsumerInput() +DeregisterStreamConsumerOutput() +DescribeAccountSettingsInput() +DescribeAccountSettingsOutput() +DescribeChannelInput() +DescribeChannelOutput(channel_description=_) +DescribeLimitsInput() +DescribeLimitsOutput( + shard_limit=_, + open_shard_count=_, + on_demand_stream_count=_, + on_demand_stream_count_limit=_, +) +DescribeStreamConsumerInput() +DescribeStreamConsumerOutput(consumer_description=_) +DescribeStreamInput() +DescribeStreamOutput(stream_description=_) +DescribeStreamSummaryInput() +DescribeStreamSummaryOutput(stream_description_summary=_) +DisableEnhancedMonitoringInput() +DisableEnhancedMonitoringOutput() +EnableEnhancedMonitoringInput() +EnableEnhancedMonitoringOutput() +EnhancedMetrics() +GetRecordsInput() +GetRecordsOutput(records=_) +GetResourcePolicyInput() +GetResourcePolicyOutput(policy=_) +GetShardIteratorInput() +GetShardIteratorOutput() +HashKeyRange(starting_hash_key=_, ending_hash_key=_) +IncreaseStreamRetentionPeriodInput() +IncreaseStreamRetentionPeriodOutput() +ListChannelsInput() +ListChannelsOutput(channel_summaries=_) +ListShardsInput() +ListShardsOutput() +ListStreamConsumersInput() +ListStreamConsumersOutput() +ListStreamsInput() +ListStreamsOutput(stream_names=_, has_more_streams=_) +ListTagsForResourceInput() +ListTagsForResourceOutput() +ListTagsForStreamInput() +ListTagsForStreamOutput(tags=_, has_more_tags=_) +MergeShardsInput() +MergeShardsOutput() +MinimumThroughputBillingCommitmentInput(status=_) +MinimumThroughputBillingCommitmentOutput(status=_) +PartitionField(transform=_, source_name=_) +PartitionSpec(partition_fields=_) +PutRecordInput() +PutRecordOutput(shard_id=_, sequence_number=_) +PutRecordsInput() +PutRecordsOutput(records=_) +PutRecordsRequestEntry(data=_) +PutRecordsResultEntry() +PutResourcePolicyInput() +PutResourcePolicyOutput() +Record(sequence_number=_, data=_) +RecordConfiguration(record_format_type=_) +RegisterStreamConsumerInput() +RegisterStreamConsumerOutput(consumer=_) +RemoveTagsFromStreamInput() +RemoveTagsFromStreamOutput() +S3DestinationConfiguration(storage_configuration=_) +S3DestinationDescription( + data_freshness_in_seconds=_, + dead_letter_queue_s3_configuration=_, + storage_configuration=_, +) +S3DestinationUpdateInput(data_freshness_in_seconds=_) +S3StorageConfiguration(bucket_arn=_, expected_bucket_owner=_, compression_type=_) +S3TablesConfiguration(table_bucket_arn=_, namespace=_, table_name=_, compression_type=_) +S3TablesDestinationConfiguration( + dead_letter_queue_s3_configuration=_, s3_tables_configuration_list=_ +) +S3TablesDestinationDescription( + data_freshness_in_seconds=_, + dead_letter_queue_s3_configuration=_, + s3_tables_configuration_list=_, +) +S3TablesDestinationUpdateInput(data_freshness_in_seconds=_) +SequenceNumberRange(starting_sequence_number=_) +Shard(shard_id=_, hash_key_range=_, sequence_number_range=_) +ShardFilter(type=_) +SplitShardInput() +SplitShardOutput() +StartingPosition(type=_) +StartStreamEncryptionInput() +StartStreamEncryptionOutput() +StopStreamEncryptionInput() +StopStreamEncryptionOutput() +StreamDescription( + stream_name=_, + stream_arn=_, + stream_status=_, + shards=_, + has_more_shards=_, + retention_period_hours=_, + stream_creation_timestamp=_, + enhanced_monitoring=_, +) +StreamDescriptionSummary( + stream_name=_, + stream_arn=_, + stream_status=_, + retention_period_hours=_, + stream_creation_timestamp=_, + enhanced_monitoring=_, + open_shard_count=_, +) +StreamFilter(stream_arn=_) +StreamModeDetails(stream_mode=_) +StreamSummary(stream_name=_, stream_arn=_, stream_status=_) +SubscribeToShardEvent(records=_, continuation_sequence_number=_, millis_behind_latest=_) +SubscribeToShardInput() +SubscribeToShardOutput() +Tag(key=_) +TagResourceInput() +TagResourceOutput() +UntagResourceInput() +UntagResourceOutput() +UpdateAccountSettingsInput() +UpdateAccountSettingsOutput() +UpdateChannelInput() +UpdateChannelOutput(channel_description=_) +UpdateMaxRecordSizeInput() +UpdateMaxRecordSizeOutput() +UpdateShardCountInput() +UpdateShardCountOutput() +UpdateStreamModeInput() +UpdateStreamModeOutput() +UpdateStreamRecordDistributionStrategyInput() +UpdateStreamRecordDistributionStrategyOutput() +UpdateStreamWarmThroughputInput() +UpdateStreamWarmThroughputOutput() +WarmThroughputObject() diff --git a/clients/aws-sdk-kinesis/tests/test_awsjson11_protocol.py b/clients/aws-sdk-kinesis/tests/test_awsjson11_protocol.py new file mode 100644 index 00000000..1d7920c5 --- /dev/null +++ b/clients/aws-sdk-kinesis/tests/test_awsjson11_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_kinesis.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-kinesis/tests/test_endpoints.py b/clients/aws-sdk-kinesis/tests/test_endpoints.py new file mode 100644 index 00000000..eea77aa7 --- /dev/null +++ b/clients/aws-sdk-kinesis/tests/test_endpoints.py @@ -0,0 +1,4072 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Awaitable, Callable, Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case +from smithy_test.aio import check_client_case_async + +from aws_sdk_kinesis.aio.client import AsyncKinesisClient +from aws_sdk_kinesis.aio.config import AsyncKinesisConfig +from aws_sdk_kinesis.models import ( + ChannelStreamConfiguration, + CreateChannelInput, + CreateStreamInput, + DeleteChannelInput, + DescribeAccountSettingsInput, + DescribeChannelInput, + DescribeLimitsInput, + GetShardIteratorInput, + ListChannelsInput, + ListShardsInput, + ListStreamsInput, + MinimumThroughputBillingCommitmentInput, + RecordConfiguration, + UpdateAccountSettingsInput, + UpdateChannelInput, +) + + +# Endpoint tests from the endpointTests trait of com.amazonaws.kinesis#Kinesis_20131202. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, + "account_id_endpoint_mode": "preferred", +} + + +async def _config(**fields: Any) -> AsyncKinesisConfig: + return await AsyncKinesisConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncKinesisClient: + return AsyncKinesisClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://kinesis.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://kinesis-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://kinesis.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://kinesis-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://kinesis.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="Invalid ARN: Failed to parse ARN.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn::kinesis:us-west-2:123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="Invalid ARN: partition missing from ARN.", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="Invalid ARN: partitions mismatch.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="Invalid ARN: Not Kinesis", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis::123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Invalid region."}, + id="Invalid ARN: Region is missing in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis: :123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Invalid region."}, + id="Invalid ARN: Region is empty string in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis:us-east-1::stream/testStream", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="Invalid ARN: Invalid account id", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis:us-east-1: :stream/testStream", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="Invalid ARN: Invalid account id (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream", + }, + {"error": "Invalid ARN: Kinesis ARNs don't support `accesspoint` arn types."}, + id="Invalid ARN: Kinesis ARNs only support stream arn types", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="OperationType not set", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="Custom Endpoint is specified", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-east-1.amazonaws.com"}}, + id="Account endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="Account endpoint targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com"}}, + id="Account endpoint with fips targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="Account endpoint with fips targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis-fips.us-east-1.api.aws"}}, + id="Account endpoint with Dual Stack and FIPS enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-west-1.api.aws"}}, + id="Account endpoint with Dual Stack enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-1.amazonaws.com"}}, + id="Account endpoint with FIPS and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/testStream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="RegionMismatch: client region should be used for endpoint region", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + id="Account endpoint with FIPS enabled", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "data", + "StreamARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + id="Account endpoint with FIPS and DualStack enabled for cn regions.", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="Account endpoint targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-iso-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-iso-west-1.c2s.ic.gov"}}, + id="Account endpoint targeting control operation type in ADC regions (2)", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov"}}, + id="Account endpoint targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="Account endpoint with fips targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="Account endpoint with fips targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="Invalid ConsumerARN: Failed to parse ARN.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn::kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="Invalid ConsumerARN: partition missing from ARN.", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="Invalid ARN: partitions mismatch. (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="Invalid ARN: Not Kinesis (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis::123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Invalid region."}, + id="Invalid ARN: Region is missing in ARN (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis: :123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Invalid region."}, + id="Invalid ARN: Region is empty string in ARN (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis:us-east-1::stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="Invalid ARN: Invalid account id (3)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis:us-east-1: :stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="Invalid ARN: Invalid account id (4)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Kinesis ARNs don't support `accesspoint` arn types."}, + id="Invalid ARN: Kinesis ARNs only support stream arn/consumer arn types", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="OperationType not set (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="Custom Endpoint is specified (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-east-1.amazonaws.com"}}, + id="Account endpoint targeting control operation type (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="Account endpoint targeting data operation type (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com"}}, + id="Account endpoint with fips targeting data operation type (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="Account endpoint with fips targeting control operation type (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis-fips.us-east-1.api.aws"}}, + id="Account endpoint with Dual Stack and FIPS enabled (2)", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-west-1.api.aws"}}, + id="Account endpoint with Dual Stack enabled (2)", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-1.amazonaws.com"}}, + id="Account endpoint with FIPS and DualStack disabled (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/testStream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="RegionMismatch: client region should be used for endpoint region (2)", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + id="Account endpoint with FIPS enabled (2)", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "data", + "ConsumerARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + id="Account endpoint with FIPS and DualStack enabled for cn regions. (2)", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="Account endpoint targeting control operation type in ADC regions (3)", + ), + param( + { + "Region": "us-iso-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-iso-west-1.c2s.ic.gov"}}, + id="Account endpoint targeting control operation type in ADC regions (4)", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov"}}, + id="Account endpoint targeting data operation type in ADC regions (2)", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="Account endpoint with fips targeting control operation type in ADC regions (2)", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="Account endpoint with fips targeting data operation type in ADC regions (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789123:stream/foobar/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123456789123.data-kinesis.us-east-1.amazonaws.com" + } + }, + id="ConsumerARN targeting US-EAST-1", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/foobar", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789123:stream/foobar/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="Both StreamARN and ConsumerARN specified. StreamARN should take precedence", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="ResourceARN test: Invalid ARN: Failed to parse ARN.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn::kinesis:us-west-2:123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="ResourceARN as StreamARN test: Invalid ARN: partition missing from ARN.", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="ResourceARN as StreamARN test: Invalid ARN: partitions mismatch.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="ResourceARN as StreamARN test: Invalid ARN: Not Kinesis", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis::123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Invalid region."}, + id="ResourceARN as StreamARN test: Invalid ARN: Region is missing in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis: :123456789012:stream/testStream", + }, + {"error": "Invalid ARN: Invalid region."}, + id="ResourceARN as StreamARN test: Invalid ARN: Region is empty string in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1::stream/testStream", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="ResourceARN as StreamARN test: Invalid ARN: Invalid account id", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1: :stream/testStream", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="ResourceARN as StreamARN test: Invalid ARN: Invalid account id (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream", + }, + { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + id="ResourceARN as StreamARN test: Invalid ARN: Kinesis ARNs only support stream arn types", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="ResourceARN as StreamARN test: OperationType not set", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="ResourceARN as StreamARN test: Custom Endpoint is specified", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as StreamARN test: Account endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as StreamARN test: Account endpoint targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com"}}, + id="ResourceARN as StreamARN test: Account endpoint with fips targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="ResourceARN as StreamARN test: Account endpoint with fips targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis-fips.us-east-1.api.aws"}}, + id="ResourceARN as StreamARN test: Account endpoint with Dual Stack and FIPS enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-west-1.api.aws"}}, + id="ResourceARN as StreamARN test: Account endpoint with Dual Stack enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-1.amazonaws.com"}}, + id="ResourceARN as StreamARN test: Account endpoint with FIPS and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/testStream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as StreamARN test: RegionMismatch: client region should be used for endpoint region", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + id="ResourceARN as StreamARN test: Account endpoint with FIPS enabled", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + id="ResourceARN as StreamARN test: Account endpoint with FIPS and DualStack enabled for cn regions.", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as StreamARN test: Account endpoint targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-iso-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-iso-west-1.c2s.ic.gov"}}, + id="ResourceARN as StreamARN test: Account endpoint targeting control operation type in ADC regions (2)", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov"}}, + id="ResourceARN as StreamARN test: Account endpoint targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as StreamARN test: Account endpoint with fips targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="ResourceARN as StreamARN test: Account endpoint with fips targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn::kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Failed to parse ARN."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: partition missing from ARN.", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="ResourceARN as ConsumerARN test: Invalid ARN: partitions mismatch.", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: Not Kinesis", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis::123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Invalid region."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: Region is missing in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis: :123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + {"error": "Invalid ARN: Invalid region."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: Region is empty string in ARN", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1::stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: Invalid account id", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1: :stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control", + }, + {"error": "Invalid ARN: Invalid account id."}, + id="ResourceARN as ConsumerARN test: Invalid ARN: Invalid account id (2)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream/consumer/test-consumer:1525898737", + }, + { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + id="ResourceARN as ConsumerARN test: Invalid ARN: Kinesis ARNs only support stream arn/consumer arn types", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream/consumer/test-consumer:1525898737", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="ResourceARN as ConsumerARN test: OperationType not set", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="ResourceARN as ConsumerARN test: Custom Endpoint is specified", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as ConsumerARN test: Account endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as ConsumerARN test: Account endpoint targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with fips targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="ResourceARN as ConsumerARN test: Account endpoint with fips targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis-fips.us-east-1.api.aws"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with Dual Stack and FIPS enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-west-1.api.aws"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with Dual Stack enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-1.amazonaws.com"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with FIPS and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/testStream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="ResourceARN as ConsumerARN test: RegionMismatch: client region should be used for endpoint region", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + id="ResourceARN as ConsumerARN test: Account endpoint with FIPS enabled", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + id="ResourceARN as ConsumerARN test: Account endpoint with FIPS and DualStack enabled for cn regions.", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as ConsumerARN test: Account endpoint targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-iso-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-iso-west-1.c2s.ic.gov"}}, + id="ResourceARN as ConsumerARN test: Account endpoint targeting control operation type in ADC regions (2)", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov"}}, + id="ResourceARN as ConsumerARN test: Account endpoint targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with fips targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-isob-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + {"endpoint": {"url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="ResourceARN as ConsumerARN test: Account endpoint with fips targeting data operation type in ADC regions", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:accesspoint/apu0zt8ge6utbndxe", + }, + { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + id="ResourceARN as ChannelARN test: Invalid ARN: unsupported resource type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:s3:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="ResourceARN as ChannelARN test: Invalid ARN: Not Kinesis", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="ResourceARN as ChannelARN test: Invalid ARN: partitions mismatch", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="ResourceARN as ChannelARN test: OperationType not set", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel", + }, + {"error": "Invalid ARN: Missing channel id."}, + id="ResourceARN as ChannelARN test: Missing channel id", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8.ge6utbndxe", + }, + {"error": "Invalid ARN: Invalid channel id."}, + id="ResourceARN as ChannelARN test: Invalid channel id (subdomains not allowed)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="ResourceARN as ChannelARN test: Custom Endpoint is specified", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="ResourceARN as ChannelARN test: endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="ResourceARN as ChannelARN test: endpoint with fips targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.api.aws" + } + }, + id="ResourceARN as ChannelARN test: endpoint with Dual Stack enabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.api.aws" + } + }, + id="ResourceARN as ChannelARN test: endpoint with Dual Stack and FIPS enabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="ResourceARN as ChannelARN test: RegionMismatch: client region should be used for endpoint region", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + id="ResourceARN as ChannelARN test: Account endpoint with FIPS enabled for cn regions", + ), + param( + { + "Region": "cn-northwest-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + id="ResourceARN as ChannelARN test: Account endpoint with FIPS and DualStack enabled for cn regions", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as ChannelARN test: Account endpoint targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + {"endpoint": {"url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov"}}, + id="ResourceARN as ChannelARN test: Account endpoint with fips targeting control operation type in ADC regions", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "StreamId": "af4lwng4k01746835071-xyz", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="StreamId test: OperationType not set with StreamId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with fips targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with fips targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-fips.us-east-1.api.aws" + } + }, + id="StreamId test: Stream endpoint with Dual Stack and FIPS enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-west-1.api.aws" + } + }, + id="StreamId test: Stream endpoint with Dual Stack enabled", + ), + param( + { + "Region": "us-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with FIPS and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint FIPS and DualStack disabled with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint targeting data operation type with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with fips targeting data operation type with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with fips targeting control operation type with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + id="StreamId test: Stream endpoint with Dual Stack and FIPS enabled with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.api.aws" + } + }, + id="StreamId test: Stream endpoint with Dual Stack enabled with endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint targeting data operation type with https endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: HTTPS endpoint with FIPS enabled targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + id="StreamId test: HTTPS endpoint with FIPS enabled targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1.us-east-1.api.aws" + } + }, + id="StreamId test: HTTPS endpoint with DualStack enabled targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.api.aws" + } + }, + id="StreamId test: HTTPS endpoint with DualStack enabled targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + id="StreamId test: HTTPS endpoint with FIPS and DualStack enabled targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + id="StreamId test: HTTPS endpoint with FIPS and DualStack enabled targeting data operation type", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod2-fips.us-west-2.amazonaws.com" + } + }, + id="StreamId test: HTTPS endpoint with FIPS enabled in different region", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod2.us-west-2.api.aws" + } + }, + id="StreamId test: HTTPS endpoint with DualStack enabled in different region", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with ConsumerARN targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with ConsumerARN targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with ResourceARN targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with ResourceARN targeting data operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071=xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.data-kinesis.us-east-1.amazonaws.com"}}, + id="StreamId test: Invalid StreamId with ARN", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com", + }, + {"endpoint": {"url": "https://kinesis-pod2.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with custom endpoint", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://kinesis-pod2.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with custom endpoint and ARN", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k0174683507123-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with longer prefix", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with shorter prefix", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-wxyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with longer suffix", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-yz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="StreamId test: Invalid streamId with shorter suffix", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="ChannelARN: endpoint targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="ChannelARN: endpoint with FIPS targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.api.aws" + } + }, + id="ChannelARN: endpoint with DualStack targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.api.aws" + } + }, + id="ChannelARN: endpoint with FIPS and DualStack targeting control operation type", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:stream/test-stream", + }, + { + "error": "Invalid ARN: ChannelARN only supports `channel` arn types, found: `stream`." + }, + id="Invalid ChannelARN: ChannelARN only supports channel arn types", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ChannelARN": "arn:aws:s3:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + {"error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3."}, + id="Invalid ChannelARN: ARN was not for the Kinesis service", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + id="Invalid ChannelARN: OperationType not set", + ), + param( + { + "Region": "us-gov-west-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-west-2:298091445058:channel/apu0zt8ge6utbndxe", + }, + { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + id="Invalid ChannelARN: partitions mismatch", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel", + }, + {"error": "Invalid ARN: Missing channel id."}, + id="Invalid ChannelARN: missing channel id", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8.ge6utbndxe", + }, + {"error": "Invalid ARN: Invalid channel id."}, + id="Invalid ChannelARN: channel id contains a period (subdomains not allowed)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + }, + {"error": "Invalid ARN: Invalid channel id."}, + id="Invalid ChannelARN: channel id exceeds 63 character host label limit", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/-pu0zt8ge6utbndxe", + }, + {"error": "Invalid ARN: Invalid channel id."}, + id="Invalid ChannelARN: channel id starts with a hyphen", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8_ge6utbndxe", + }, + {"error": "Invalid ARN: Invalid channel id."}, + id="Invalid ChannelARN: channel id contains an invalid character", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + }, + {"error": "ChannelARN does not support the `data` operation type."}, + id="Invalid ChannelARN: data operation type is not supported for channel", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "data", + "AccountId": "012345678901", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://012345678901.data-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "required", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present with fips", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present with dual stack", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present with fips and dual stack", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + id="Account Id present with streamId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id present with stream ARN", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-west-2:123:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id present with consumer ARN", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:123:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://123.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id present with resource ARN", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://456.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id present and stream ARN with different accountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://456.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id present and consumer ARN with different accountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + id="Account Id, streamId and resource ARN with different accountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="Account Id with account id endpoint mode disabled", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountId": "123", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://456.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id and StreamArn with account id endpoint mode disabled", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountIdEndpointMode": "required", + }, + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="Account Id missing with account id endpoint mode required", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountIdEndpointMode": "required", + }, + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="Account Id missing with account id endpoint mode required, fips and dual stack enabled", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountIdEndpointMode": "required", + }, + { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + }, + id="Account Id missing with account id endpoint mode required in ADC region", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "required", + }, + { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + }, + id="Account Id present with account id endpoint mode required in ADC region", + ), + param( + { + "Region": "us-iso-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://kinesis.us-iso-east-1.c2s.ic.gov"}}, + id="Account Id present with account id endpoint mode preferred in ADC region", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "Endpoint": "https://kinesis-pod1.us-west-2.amazonaws.com", + "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://kinesis-pod1.us-west-2.amazonaws.com"}}, + id="Account Id missing with account id endpoint mode required and endpoint override", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountIdEndpointMode": "required", + }, + {"endpoint": {"url": "https://456.control-kinesis.us-west-2.amazonaws.com"}}, + id="Account Id missing with StreamArn and account id endpoint mode required", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "AccountIdEndpointMode": "required", + }, + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + id="Account Id missing with StreamId and account id endpoint mode required", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountIdEndpointMode": "preferred", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="Account Id missing with account id endpoint mode preferred", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="Account Id missing with account id endpoint mode disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateStream: control operation type with AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateStream: control operation type with FIPS and AccountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListStreams: control operation type with AccountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListStreams: control operation type with FIPS and DualStack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeLimits: control operation type with AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeLimits: control operation type with FIPS", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeAccountSettings: control operation type with AccountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeAccountSettings: control operation type with FIPS and DualStack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="UpdateAccountSettings: control operation type with AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="UpdateAccountSettings: control operation type with FIPS", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="CreateStream: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="ListStreams: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="DescribeLimits: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="DescribeAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="UpdateAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.amazonaws.com"}}, + id="CreateStream: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.api.aws"}}, + id="CreateStream: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.api.aws"}}, + id="CreateStream: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with FIPS and AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with DualStack and AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with FIPS and DualStack and AccountId", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="CreateChannel: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.amazonaws.com"}}, + id="CreateChannel: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-east-1.api.aws"}}, + id="CreateChannel: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis-fips.us-east-1.api.aws"}}, + id="CreateChannel: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListChannels: control operation type with AccountId", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": True, + "UseDualStack": True, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred", + }, + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListChannels: control operation type with FIPS and DualStack", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled", + }, + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="ListChannels: account id endpoint mode disabled falls back to regional endpoint", + ), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) + + +CLIENT_CASES = [ + param( + {"region": "us-east-1"}, + AsyncKinesisClient.get_shard_iterator, + GetShardIteratorInput( + shard_id="shardId-000000000001", + shard_iterator_type="LATEST", + stream_id="af4lwng4k01746835071-xyz", + ), + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint targeting data operation type", + ), + param( + {"region": "us-west-1"}, + AsyncKinesisClient.list_shards, + ListShardsInput(stream_id="af4lwng4k01746835071-xyz"), + { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-1.amazonaws.com" + } + }, + id="StreamId test: Stream endpoint with FIPS and DualStack disabled", + ), + param( + {"region": "us-east-1"}, + AsyncKinesisClient.describe_channel, + DescribeChannelInput( + channel_arn="arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + ), + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + id="ChannelARN: endpoint targeting control operation type", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncKinesisClient.delete_channel, + DeleteChannelInput( + channel_arn="arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + ), + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + id="ChannelARN: endpoint with FIPS targeting control operation type", + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncKinesisClient.update_channel, + UpdateChannelInput( + channel_arn="arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + ), + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.api.aws" + } + }, + id="ChannelARN: endpoint with DualStack targeting control operation type", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.describe_channel, + DescribeChannelInput( + channel_arn="arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + ), + { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.api.aws" + } + }, + id="ChannelARN: endpoint with FIPS and DualStack targeting control operation type", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="012345678901", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.get_shard_iterator, + GetShardIteratorInput( + stream_name="test-stream", + shard_id="shardId-000000000001", + shard_iterator_type="LATEST", + ), + { + "endpoint": { + "url": "https://012345678901.data-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123", + ) + ), + "account_id_endpoint_mode": "required", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.list_shards, + ListShardsInput(stream_name="testStream"), + { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="AccountId test: Account Id present with fips", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.list_shards, + ListShardsInput(stream_name="testStream"), + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="Account Id with account id endpoint mode disabled", + ), + param( + {"region": "us-west-2", "account_id_endpoint_mode": "required"}, + AsyncKinesisClient.list_shards, + ListShardsInput(stream_name="testStream"), + { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + id="Account Id missing with account id endpoint mode required", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateStream: control operation type with AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateStream: control operation type with FIPS and AccountId", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.list_streams, + ListStreamsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListStreams: control operation type with AccountId", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.list_streams, + ListStreamsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListStreams: control operation type with FIPS and DualStack", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.describe_limits, + DescribeLimitsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeLimits: control operation type with AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.describe_limits, + DescribeLimitsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeLimits: control operation type with FIPS", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.describe_account_settings, + DescribeAccountSettingsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeAccountSettings: control operation type with AccountId", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.describe_account_settings, + DescribeAccountSettingsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="DescribeAccountSettings: control operation type with FIPS and DualStack", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.update_account_settings, + UpdateAccountSettingsInput( + minimum_throughput_billing_commitment=MinimumThroughputBillingCommitmentInput( + status="ENABLED" + ) + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="UpdateAccountSettings: control operation type with AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.update_account_settings, + UpdateAccountSettingsInput( + minimum_throughput_billing_commitment=MinimumThroughputBillingCommitmentInput( + status="ENABLED" + ) + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="UpdateAccountSettings: control operation type with FIPS", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="CreateStream: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.list_streams, + ListStreamsInput(), + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="ListStreams: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.describe_limits, + DescribeLimitsInput(), + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="DescribeLimits: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.describe_account_settings, + DescribeAccountSettingsInput(), + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="DescribeAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.update_account_settings, + UpdateAccountSettingsInput( + minimum_throughput_billing_commitment=MinimumThroughputBillingCommitmentInput( + status="ENABLED" + ) + ), + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="UpdateAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + {"endpoint": {"url": "https://kinesis-fips.us-east-1.amazonaws.com"}}, + id="CreateStream: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + {"endpoint": {"url": "https://kinesis.us-east-1.api.aws"}}, + id="CreateStream: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_stream, + CreateStreamInput(stream_name="test-stream", shard_count=1), + {"endpoint": {"url": "https://kinesis-fips.us-east-1.api.aws"}}, + id="CreateStream: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with FIPS and AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with DualStack and AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-east-1.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="CreateChannel: control operation type with FIPS and DualStack and AccountId", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + {"endpoint": {"url": "https://kinesis.us-east-1.amazonaws.com"}}, + id="CreateChannel: account id endpoint mode disabled falls back to regional endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + {"endpoint": {"url": "https://kinesis-fips.us-east-1.amazonaws.com"}}, + id="CreateChannel: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + {"endpoint": {"url": "https://kinesis.us-east-1.api.aws"}}, + id="CreateChannel: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + ), + param( + { + "region": "us-east-1", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.create_channel, + CreateChannelInput( + channel_name="test-channel", + service_execution_role_arn="arn:aws:iam::123456789012:role/test-role", + stream_configuration_list=[ + ChannelStreamConfiguration( + stream_arn="arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + record_configuration=RecordConfiguration(record_format_type="JSON"), + ) + ], + ), + {"endpoint": {"url": "https://kinesis-fips.us-east-1.api.aws"}}, + id="CreateChannel: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + }, + AsyncKinesisClient.list_channels, + ListChannelsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListChannels: control operation type with AccountId", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "preferred", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncKinesisClient.list_channels, + ListChannelsInput(), + { + "endpoint": { + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws", + "properties": {"metricValues": ["O"]}, + } + }, + id="ListChannels: control operation type with FIPS and DualStack", + ), + param( + { + "region": "us-west-2", + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + account_id="123456789012", + ) + ), + "account_id_endpoint_mode": "disabled", + }, + AsyncKinesisClient.list_channels, + ListChannelsInput(), + {"endpoint": {"url": "https://kinesis.us-west-2.amazonaws.com"}}, + id="ListChannels: account id endpoint mode disabled falls back to regional endpoint", + ), +] + + +@mark.parametrize(("config", "operation", "input", "expect"), CLIENT_CASES) +async def test_endpoint_client( + config: dict[str, Any], + operation: Callable[[AsyncKinesisClient, Any], Awaitable[Any]], + input: Any, + expect: dict[str, Any], +) -> None: + await check_client_case_async( + lambda capture: _client(config, capture), + operation, + input, + expect, + extensions=_RULES_EXTENSIONS, + ) diff --git a/clients/aws-sdk-kinesis/tests/test_model_conformance.py b/clients/aws-sdk-kinesis/tests/test_model_conformance.py new file mode 100644 index 00000000..1de36b42 --- /dev/null +++ b/clients/aws-sdk-kinesis/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_kinesis import models as _models +from aws_sdk_kinesis._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-kms/README.md b/clients/aws-sdk-kms/README.md new file mode 100644 index 00000000..8daa821d --- /dev/null +++ b/clients/aws-sdk-kms/README.md @@ -0,0 +1,123 @@ + + +## AWS Key Management Service Client + +aws_sdk_kms client + +### Documentation + +Key Management Service (KMS) is an encryption and key management web +service. This guide describes the KMS operations that you can call +programmatically. For general information about KMS, see the [*Key +Management Service Developer +Guide*](https://docs.aws.amazon.com/kms/latest/developerguide/) . + +Note: + KMS has replaced the term *customer master key (CMK)* with *Key + Management Service key* and *KMS key*. The concept has not changed. To + prevent breaking changes, KMS is keeping some variations of this term. + + Amazon Web Services provides SDKs that consist of libraries and sample + code for various programming languages and platforms (Java, Rust, + Python, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient + way to create programmatic access to KMS and other Amazon Web Services + services. For example, the SDKs take care of tasks such as signing + requests (see below), managing errors, and retrying requests + automatically. For more information about the Amazon Web Services SDKs, + including how to download and install them, see [Tools for Amazon Web + Services](http://aws.amazon.com/tools/). + +We recommend that you use the Amazon Web Services SDKs to make +programmatic API calls to KMS. + +If you need to use FIPS 140-2 validated cryptographic modules when +communicating with Amazon Web Services, use one of the FIPS endpoints in +your preferred Amazon Web Services Region. If you need communicate over +IPv6, use the dual-stack endpoint in your preferred Amazon Web Services +Region. For more information see [Service +endpoints](https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) +in the Key Management Service topic of the *Amazon Web Services General +Reference* and [Dual-stack endpoint +support](https://docs.aws.amazon.com/kms/latest/developerguide/ipv6-kms.html) +in the KMS Developer Guide. + +All KMS API calls must be signed and be transmitted using Transport +Layer Security (TLS). KMS recommends you always use the latest supported +TLS version. Clients must also support cipher suites with Perfect +Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic +Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java +7 and later support these modes. + +Note: + With current technology, brute force attacks on KMS TLS cipher suite key + exchange mechanisms are not feasible. However, cipher suites that use + Rivest--Shamir--Adleman (RSA) or Diffie-Hellman (DH) key exchange will + be susceptible if large-scale quantum computing becomes practical. [NIST + IR 8547](https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf) + on the NIST website establishes a timeline to phase out + quantum-vulnerable algorithms by 2030 and disallow them entirely by + 2035. If your applications rely on the long-term confidentiality of KMS + API traffic, we recommend that you [use post-quantum TLS with + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqtls.html). + For more information about post-quantum cybersecurity, see [Post-Quantum + Cybersecurity + Resources](https://www.nsa.gov/Cybersecurity/Post-Quantum-Cybersecurity-Resources/) + on the National Security Agency (NSA) website. + +**Signing Requests** + +Requests must be signed using an access key ID and a secret access key. +We strongly recommend that you do not use your Amazon Web Services +account root access key ID and secret access key for everyday work. You +can use the access key ID and secret access key for an IAM user or you +can use the Security Token Service (STS) to generate temporary security +credentials and use those to sign requests. + +All KMS requests must be signed with [Signature Version +4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + +**Logging API Requests** + +KMS supports CloudTrail, a service that logs Amazon Web Services API +calls and related events for your Amazon Web Services account and +delivers them to an Amazon S3 bucket that you specify. By using the +information collected by CloudTrail, you can determine what requests +were made to KMS, who made the request, when it was made, and so on. To +learn more about CloudTrail, including how to turn it on and find your +log files, see the [CloudTrail User +Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). + +**Additional Resources** + +For more information about credentials and request signing, see the +following: + +- [Amazon Web Services Security + Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) - + This topic provides general information about the types of credentials + used to access Amazon Web Services. + +- [Temporary Security + Credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) - + This section of the *IAM User Guide* describes how to create and use + temporary security credentials. + +- [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) - + This set of topics walks you through the process of signing a request + using an access key ID and a secret access key. + +**Commonly Used API Operations** + +Of the API operations discussed in this guide, the following will prove +the most useful for most applications. You will likely perform +operations other than these, such as creating keys and assigning +policies, by using the console. + +- Encrypt + +- Decrypt + +- GenerateDataKey + +- GenerateDataKeyWithoutPlaintext diff --git a/clients/aws-sdk-kms/pyproject.toml b/clients/aws-sdk-kms/pyproject.toml new file mode 100644 index 00000000..6ab6fe11 --- /dev/null +++ b/clients/aws-sdk-kms/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_kms" +version = "0.12.0" +description = "aws_sdk_kms client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_kms"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[json]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/__init__.py b/clients/aws-sdk-kms/src/aws_sdk_kms/__init__.py new file mode 100644 index 00000000..a57cdb4e --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import KMSClient + from .config import KMSConfig + from .aio.client import AsyncKMSClient + from .aio.config import AsyncKMSConfig + +__all__ = ["KMSClient", "KMSConfig", "AsyncKMSClient", "AsyncKMSConfig"] + +_EXPORTS = { + "KMSClient": ".client", + "KMSConfig": ".config", + "AsyncKMSClient": ".aio.client", + "AsyncKMSConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/_private/__init__.py b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/_private/endpoints.py b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/endpoints.py new file mode 100644 index 00000000..3fbeaac1 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/endpoints.py @@ -0,0 +1,60 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.kms#TrentService.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 6 + (5, "FIPS is enabled but this partition does not support FIPS"), # 7 + (6, "https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 8 + (5, "DualStack is enabled but this partition does not support DualStack"), # 9 + (6, "https://kms.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 10 + (5, "Invalid Configuration: Missing Region"), # 11 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 12, 3, + 1, 4, 100_000_011, + 2, 5, 100_000_011, + 3, 8, 6, + 4, 7, 100_000_010, + 5, 100_000_008, 100_000_009, + 4, 10, 9, + 6, 100_000_006, 100_000_007, + 5, 11, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 13, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/_private/schemas.py b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/schemas.py new file mode 100644 index 00000000..415f2392 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/_private/schemas.py @@ -0,0 +1,4545 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.kms" +_AIT = "AccountIdType" +_AS = "AlgorithmSpec" +_RPV = "RSAES_PKCS1_V1_5" +_sV = "smithy.api#enumValue" +_ROS = "RSAES_OAEP_SHA_1" +_ROS_ = "RSAES_OAEP_SHA_256" +_RAKWS = "RSA_AES_KEY_WRAP_SHA_1" +_RAKWS_ = "RSA_AES_KEY_WRAP_SHA_256" +_SMPKE = "SM2PKE" +_AT = "ArnType" +_ANT = "AliasNameType" +_DT = "DateType" +_KIT = "KeyIdType" +_ALE = "AliasListEntry" +_AN = "AliasName" +_AA = "AliasArn" +_TKI = "TargetKeyId" +_CD = "CreationDate" +_LUD = "LastUpdatedDate" +_AL = "AliasList" +_m = "member" +_EMT = "ErrorMessageType" +_AEE = "AlreadyExistsException" +_s = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_aQE = "aws.protocols#awsQueryError" +_me = "message" +_ADT = "AttestationDocumentType" +_AWSAIT = "AWSAccountIdType" +_BKIRT = "BackingKeyIdResponseType" +_BKIT = "BackingKeyIdType" +_BT = "BooleanType" +_sm = "smithy.api#default" +_CKDI = "CancelKeyDeletionInput" +_sSI = "smithy.synthetic#originalShapeId" +_cCKDR = "com.amazonaws.kms#CancelKeyDeletionRequest" +_smi = "smithy.api#input" +_KI = "KeyId" +_smit = "smithy.api#required" +_CKDO = "CancelKeyDeletionOutput" +_cCKDRo = "com.amazonaws.kms#CancelKeyDeletionResponse" +_smith = "smithy.api#output" +_DTE = "DependencyTimeoutException" +_se = "server" +_IAE = "InvalidArnException" +_KMSIE = "KMSInternalException" +_KMSISE = "KMSInvalidStateException" +_NFE = "NotFoundException" +_CKD = "CancelKeyDeletion" +_CT = "CiphertextType" +_CHCIT = "CloudHsmClusterIdType" +_CHCIUE = "CloudHsmClusterInUseException" +_CHCICE = "CloudHsmClusterInvalidConfigurationException" +_CHCNAE = "CloudHsmClusterNotActiveException" +_CHCNFE = "CloudHsmClusterNotFoundException" +_CHCNRE = "CloudHsmClusterNotRelatedException" +_CTEIT = "CloudTrailEventIdType" +_CE = "ConflictException" +_CKSIT = "CustomKeyStoreIdType" +_CCKSI = "ConnectCustomKeyStoreInput" +_cCCKSR = "com.amazonaws.kms#ConnectCustomKeyStoreRequest" +_CKSI = "CustomKeyStoreId" +_CCKSO = "ConnectCustomKeyStoreOutput" +_cCCKSRo = "com.amazonaws.kms#ConnectCustomKeyStoreResponse" +_CKSISE = "CustomKeyStoreInvalidStateException" +_CKSNFE = "CustomKeyStoreNotFoundException" +_CCKS = "ConnectCustomKeyStore" +_CECT = "ConnectionErrorCodeType" +_IC = "INVALID_CREDENTIALS" +_CNF = "CLUSTER_NOT_FOUND" +_NE = "NETWORK_ERRORS" +_IE = "INTERNAL_ERROR" +_ICH = "INSUFFICIENT_CLOUDHSM_HSMS" +_ULO = "USER_LOCKED_OUT" +_UNF = "USER_NOT_FOUND" +_ULI = "USER_LOGGED_IN" +_SNF = "SUBNET_NOT_FOUND" +_IFAIS = "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET" +_XPAD = "XKS_PROXY_ACCESS_DENIED" +_XPNR = "XKS_PROXY_NOT_REACHABLE" +_XVESNF = "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND" +_XPIR = "XKS_PROXY_INVALID_RESPONSE" +_XPIC = "XKS_PROXY_INVALID_CONFIGURATION" +_XVESIC = "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION" +_XPTO = "XKS_PROXY_TIMED_OUT" +_XPITC = "XKS_PROXY_INVALID_TLS_CONFIGURATION" +_CST = "ConnectionStateType" +_CONNECTED = "CONNECTED" +_CONNECTING = "CONNECTING" +_FAILED = "FAILED" +_DISCONNECTED = "DISCONNECTED" +_DISCONNECTING = "DISCONNECTING" +_CAI = "CreateAliasInput" +_cCAR = "com.amazonaws.kms#CreateAliasRequest" +_CAO = "CreateAliasOutput" +_sU = "smithy.api#Unit" +_IANE = "InvalidAliasNameException" +_LEE = "LimitExceededException" +_CA = "CreateAlias" +_CKSNT = "CustomKeyStoreNameType" +_CKST = "CustomKeyStoreType" +_AC = "AWS_CLOUDHSM" +_EKS = "EXTERNAL_KEY_STORE" +_KSPT = "KeyStorePasswordType" +_smithy = "smithy.api#sensitive" +_TACT = "TrustAnchorCertificateType" +_XPAAKIT = "XksProxyAuthenticationAccessKeyIdType" +_XPARSAKT = "XksProxyAuthenticationRawSecretAccessKeyType" +_XPACT = "XksProxyAuthenticationCredentialType" +_AKI = "AccessKeyId" +_RSAK = "RawSecretAccessKey" +_XPCT = "XksProxyConnectivityType" +_PE = "PUBLIC_ENDPOINT" +_VES = "VPC_ENDPOINT_SERVICE" +_XPUET = "XksProxyUriEndpointType" +_XPUPT = "XksProxyUriPathType" +_XPVESNT = "XksProxyVpcEndpointServiceNameType" +_CCKSIr = "CreateCustomKeyStoreInput" +_cCCKSRom = "com.amazonaws.kms#CreateCustomKeyStoreRequest" +_CKSN = "CustomKeyStoreName" +_CHCI = "CloudHsmClusterId" +_TAC = "TrustAnchorCertificate" +_KSP = "KeyStorePassword" +_XPUE = "XksProxyUriEndpoint" +_XPUP = "XksProxyUriPath" +_XPVESN = "XksProxyVpcEndpointServiceName" +_XPVESO = "XksProxyVpcEndpointServiceOwner" +_XPAC = "XksProxyAuthenticationCredential" +_XPC = "XksProxyConnectivity" +_CCKSOr = "CreateCustomKeyStoreOutput" +_cCCKSRoma = "com.amazonaws.kms#CreateCustomKeyStoreResponse" +_CKSNIUE = "CustomKeyStoreNameInUseException" +_ITAE = "IncorrectTrustAnchorException" +_XPIACE = "XksProxyIncorrectAuthenticationCredentialException" +_XPICE = "XksProxyInvalidConfigurationException" +_XPIRE = "XksProxyInvalidResponseException" +_XPUEIUE = "XksProxyUriEndpointInUseException" +_XPUIUE = "XksProxyUriInUseException" +_XPUUE = "XksProxyUriUnreachableException" +_XPVESIUE = "XksProxyVpcEndpointServiceInUseException" +_XPVESICE = "XksProxyVpcEndpointServiceInvalidConfigurationException" +_XPVESNFE = "XksProxyVpcEndpointServiceNotFoundException" +_CCKSr = "CreateCustomKeyStore" +_ECK = "EncryptionContextKey" +_ECV = "EncryptionContextValue" +_ECT = "EncryptionContextType" +_k = "key" +_v = "value" +_GCSAT = "GrantConstraintSourceArnType" +_GC = "GrantConstraints" +_ECS = "EncryptionContextSubset" +_ECE = "EncryptionContextEquals" +_SA = "SourceArn" +_NBT = "NullableBooleanType" +_PIT = "PrincipalIdType" +_SPT = "ServicePrincipalType" +_GTT = "GrantTokenType" +_GTL = "GrantTokenList" +_GNT = "GrantNameType" +_GO = "GrantOperation" +_D = "Decrypt" +_E = "Encrypt" +_GDK = "GenerateDataKey" +_GDKWP = "GenerateDataKeyWithoutPlaintext" +_REF = "ReEncryptFrom" +_RET = "ReEncryptTo" +_S = "Sign" +_V = "Verify" +_GPK = "GetPublicKey" +_CG = "CreateGrant" +_RG = "RetireGrant" +_DK = "DescribeKey" +_GDKP = "GenerateDataKeyPair" +_GDKPWP = "GenerateDataKeyPairWithoutPlaintext" +_GM = "GenerateMac" +_VM = "VerifyMac" +_DSS = "DeriveSharedSecret" +_En = "Encapsulate" +_De = "Decapsulate" +_GOL = "GrantOperationList" +_CGI = "CreateGrantInput" +_cCGR = "com.amazonaws.kms#CreateGrantRequest" +_GP = "GranteePrincipal" +_RP = "RetiringPrincipal" +_O = "Operations" +_C = "Constraints" +_GT = "GrantTokens" +_N = "Name" +_DR = "DryRun" +_GSP = "GranteeServicePrincipal" +_RSP = "RetiringServicePrincipal" +_GIT = "GrantIdType" +_CGO = "CreateGrantOutput" +_cCGRo = "com.amazonaws.kms#CreateGrantResponse" +_GTr = "GrantToken" +_GI = "GrantId" +_DE = "DisabledException" +_DROE = "DryRunOperationException" +_IGTE = "InvalidGrantTokenException" +_CMKS = "CustomerMasterKeySpec" +_R = "RSA_2048" +_R_ = "RSA_3072" +_R__ = "RSA_4096" +_ENP = "ECC_NIST_P256" +_ENP_ = "ECC_NIST_P384" +_ENP__ = "ECC_NIST_P521" +_ESP = "ECC_SECG_P256K1" +_SD = "SYMMETRIC_DEFAULT" +_H = "HMAC_224" +_H_ = "HMAC_256" +_H__ = "HMAC_384" +_H___ = "HMAC_512" +_SM = "SM2" +_DTe = "DescriptionType" +_KS = "KeySpec" +_MD = "ML_DSA_44" +_MD_ = "ML_DSA_65" +_MD__ = "ML_DSA_87" +_ENE = "ECC_NIST_EDWARDS25519" +_MK = "ML_KEM_512" +_MK_ = "ML_KEM_768" +_MK__ = "ML_KEM_1024" +_KUT = "KeyUsageType" +_SV = "SIGN_VERIFY" +_ED = "ENCRYPT_DECRYPT" +_GVM = "GENERATE_VERIFY_MAC" +_KA = "KEY_AGREEMENT" +_ED_ = "ENCAPSULATE_DECAPSULATE" +_OT = "OriginType" +_AK = "AWS_KMS" +_EXTERNAL = "EXTERNAL" +_PT = "PolicyType" +_TKT = "TagKeyType" +_TVT = "TagValueType" +_T = "Tag" +_TK = "TagKey" +_TV = "TagValue" +_TL = "TagList" +_XKIT = "XksKeyIdType" +_CKI = "CreateKeyInput" +_cCKR = "com.amazonaws.kms#CreateKeyRequest" +_P = "Policy" +_Des = "Description" +_KU = "KeyUsage" +_Or = "Origin" +_BPLSC = "BypassPolicyLockoutSafetyCheck" +_Ta = "Tags" +_MR = "MultiRegion" +_XKI = "XksKeyId" +_EAS = "EncapsulationAlgorithmSpec" +_MK___ = "ML_KEM" +_EASL = "EncapsulationAlgorithmSpecList" +_EASn = "EncryptionAlgorithmSpec" +_EASLn = "EncryptionAlgorithmSpecList" +_EMTx = "ExpirationModelType" +_KME = "KEY_MATERIAL_EXPIRES" +_KMDNE = "KEY_MATERIAL_DOES_NOT_EXPIRE" +_KAAS = "KeyAgreementAlgorithmSpec" +_ECDH = "ECDH" +_KAASL = "KeyAgreementAlgorithmSpecList" +_KMT = "KeyManagerType" +_AWS = "AWS" +_CUSTOMER = "CUSTOMER" +_KSe = "KeyState" +_Cr = "Creating" +_Ena = "Enabled" +_Di = "Disabled" +_PD = "PendingDeletion" +_PI = "PendingImport" +_PRD = "PendingReplicaDeletion" +_U = "Unavailable" +_Up = "Updating" +_MAS = "MacAlgorithmSpec" +_HS = "HMAC_SHA_224" +_HS_ = "HMAC_SHA_256" +_HS__ = "HMAC_SHA_384" +_HS___ = "HMAC_SHA_512" +_MASL = "MacAlgorithmSpecList" +_MRKT = "MultiRegionKeyType" +_PRIMARY = "PRIMARY" +_REPLICA = "REPLICA" +_RT = "RegionType" +_MRK = "MultiRegionKey" +_A = "Arn" +_Re = "Region" +_MRKL = "MultiRegionKeyList" +_MRC = "MultiRegionConfiguration" +_PK = "PrimaryKey" +_RK = "ReplicaKeys" +_PWIDT = "PendingWindowInDaysType" +_SAS = "SigningAlgorithmSpec" +_RPS = "RSASSA_PSS_SHA_256" +_RPS_ = "RSASSA_PSS_SHA_384" +_RPS__ = "RSASSA_PSS_SHA_512" +_RPVS = "RSASSA_PKCS1_V1_5_SHA_256" +_RPVS_ = "RSASSA_PKCS1_V1_5_SHA_384" +_RPVS__ = "RSASSA_PKCS1_V1_5_SHA_512" +_ES = "ECDSA_SHA_256" +_ES_ = "ECDSA_SHA_384" +_ES__ = "ECDSA_SHA_512" +_SMDSA = "SM2DSA" +_MDS = "ML_DSA_SHAKE_256" +_ES___ = "ED25519_SHA_512" +_EPS = "ED25519_PH_SHA_512" +_SASL = "SigningAlgorithmSpecList" +_XKCT = "XksKeyConfigurationType" +_I = "Id" +_KM = "KeyMetadata" +_AWSAI = "AWSAccountId" +_DD = "DeletionDate" +_VT = "ValidTo" +_EM = "ExpirationModel" +_KMe = "KeyManager" +_EA = "EncryptionAlgorithms" +_SAi = "SigningAlgorithms" +_KAA = "KeyAgreementAlgorithms" +_EAn = "EncapsulationAlgorithms" +_PDWID = "PendingDeletionWindowInDays" +_MA = "MacAlgorithms" +_XKC = "XksKeyConfiguration" +_CKMI = "CurrentKeyMaterialId" +_CKO = "CreateKeyOutput" +_cCKRo = "com.amazonaws.kms#CreateKeyResponse" +_MPDE = "MalformedPolicyDocumentException" +_TE = "TagException" +_UOE = "UnsupportedOperationException" +_XKAIUE = "XksKeyAlreadyInUseException" +_XKICE = "XksKeyInvalidConfigurationException" +_XKNFE = "XksKeyNotFoundException" +_CK = "CreateKey" +_CKSHCMKE = "CustomKeyStoreHasCMKsException" +_XPCTk = "XksProxyConfigurationType" +_Co = "Connectivity" +_UE = "UriEndpoint" +_UP = "UriPath" +_VESN = "VpcEndpointServiceName" +_VESO = "VpcEndpointServiceOwner" +_CKSLE = "CustomKeyStoresListEntry" +_CS = "ConnectionState" +_CEC = "ConnectionErrorCode" +_XPCk = "XksProxyConfiguration" +_CKSL = "CustomKeyStoresList" +_DKPS = "DataKeyPairSpec" +_DKS = "DataKeySpec" +_A_ = "AES_256" +_A__ = "AES_128" +_DI = "DecapsulateInput" +_cDR = "com.amazonaws.kms#DecapsulateRequest" +_SSCB = "SharedSecretCiphertextBlob" +_EAnc = "EncapsulationAlgorithm" +_PTl = "PlaintextType" +_DO = "DecapsulateOutput" +_cDRo = "com.amazonaws.kms#DecapsulateResponse" +_SS = "SharedSecret" +_ICE = "InvalidCiphertextException" +_IKUE = "InvalidKeyUsageException" +_KUE = "KeyUnavailableException" +_DRMT = "DryRunModifierType" +_IC_ = "IGNORE_CIPHERTEXT" +_DRML = "DryRunModifierList" +_KEM = "KeyEncryptionMechanism" +_RI = "RecipientInfo" +_KEA = "KeyEncryptionAlgorithm" +_AD = "AttestationDocument" +_DIe = "DecryptInput" +_cDRom = "com.amazonaws.kms#DecryptRequest" +_CB = "CiphertextBlob" +_EC = "EncryptionContext" +_EAncr = "EncryptionAlgorithm" +_Rec = "Recipient" +_DRM = "DryRunModifiers" +_DOe = "DecryptOutput" +_cDRoma = "com.amazonaws.kms#DecryptResponse" +_Pl = "Plaintext" +_CFR = "CiphertextForRecipient" +_KMI = "KeyMaterialId" +_IKE = "IncorrectKeyException" +_DAI = "DeleteAliasInput" +_cDAR = "com.amazonaws.kms#DeleteAliasRequest" +_DAO = "DeleteAliasOutput" +_DA = "DeleteAlias" +_DCKSI = "DeleteCustomKeyStoreInput" +_cDCKSR = "com.amazonaws.kms#DeleteCustomKeyStoreRequest" +_DCKSO = "DeleteCustomKeyStoreOutput" +_cDCKSRo = "com.amazonaws.kms#DeleteCustomKeyStoreResponse" +_DCKS = "DeleteCustomKeyStore" +_DIKMI = "DeleteImportedKeyMaterialInput" +_cDIKMR = "com.amazonaws.kms#DeleteImportedKeyMaterialRequest" +_DIKMO = "DeleteImportedKeyMaterialOutput" +_cDIKMRo = "com.amazonaws.kms#DeleteImportedKeyMaterialResponse" +_DIKM = "DeleteImportedKeyMaterial" +_PKT = "PublicKeyType" +_DSSI = "DeriveSharedSecretInput" +_cDSSR = "com.amazonaws.kms#DeriveSharedSecretRequest" +_KAAe = "KeyAgreementAlgorithm" +_PKu = "PublicKey" +_DSSO = "DeriveSharedSecretOutput" +_cDSSRo = "com.amazonaws.kms#DeriveSharedSecretResponse" +_KO = "KeyOrigin" +_LT = "LimitType" +_MT = "MarkerType" +_DCKSIe = "DescribeCustomKeyStoresInput" +_cDCKSRom = "com.amazonaws.kms#DescribeCustomKeyStoresRequest" +_L = "Limit" +_M = "Marker" +_DCKSOe = "DescribeCustomKeyStoresOutput" +_cDCKSRoma = "com.amazonaws.kms#DescribeCustomKeyStoresResponse" +_CKS = "CustomKeyStores" +_NM = "NextMarker" +_Tr = "Truncated" +_IME = "InvalidMarkerException" +_DCKSe = "DescribeCustomKeyStores" +_DKI = "DescribeKeyInput" +_cDKR = "com.amazonaws.kms#DescribeKeyRequest" +_DKO = "DescribeKeyOutput" +_cDKRo = "com.amazonaws.kms#DescribeKeyResponse" +_DKIi = "DisableKeyInput" +_cDKRom = "com.amazonaws.kms#DisableKeyRequest" +_DKOi = "DisableKeyOutput" +_DKi = "DisableKey" +_DKRI = "DisableKeyRotationInput" +_cDKRR = "com.amazonaws.kms#DisableKeyRotationRequest" +_DKRO = "DisableKeyRotationOutput" +_DKR = "DisableKeyRotation" +_DCKSIi = "DisconnectCustomKeyStoreInput" +_cDCKSRomam = "com.amazonaws.kms#DisconnectCustomKeyStoreRequest" +_DCKSOi = "DisconnectCustomKeyStoreOutput" +_cDCKSRomama = "com.amazonaws.kms#DisconnectCustomKeyStoreResponse" +_DCKSi = "DisconnectCustomKeyStore" +_EKI = "EnableKeyInput" +_cEKR = "com.amazonaws.kms#EnableKeyRequest" +_EKO = "EnableKeyOutput" +_EK = "EnableKey" +_RPIDT = "RotationPeriodInDaysType" +_EKRI = "EnableKeyRotationInput" +_cEKRR = "com.amazonaws.kms#EnableKeyRotationRequest" +_RPID = "RotationPeriodInDays" +_EKRO = "EnableKeyRotationOutput" +_EKR = "EnableKeyRotation" +_EI = "EncapsulateInput" +_cER = "com.amazonaws.kms#EncapsulateRequest" +_EO = "EncapsulateOutput" +_cERo = "com.amazonaws.kms#EncapsulateResponse" +_EIn = "EncryptInput" +_cERom = "com.amazonaws.kms#EncryptRequest" +_EOn = "EncryptOutput" +_cERoma = "com.amazonaws.kms#EncryptResponse" +_EITE = "ExpiredImportTokenException" +_NOBT = "NumberOfBytesType" +_GDKI = "GenerateDataKeyInput" +_cGDKR = "com.amazonaws.kms#GenerateDataKeyRequest" +_NOB = "NumberOfBytes" +_GDKO = "GenerateDataKeyOutput" +_cGDKRo = "com.amazonaws.kms#GenerateDataKeyResponse" +_GDKPI = "GenerateDataKeyPairInput" +_cGDKPR = "com.amazonaws.kms#GenerateDataKeyPairRequest" +_KPS = "KeyPairSpec" +_GDKPO = "GenerateDataKeyPairOutput" +_cGDKPRo = "com.amazonaws.kms#GenerateDataKeyPairResponse" +_PKCB = "PrivateKeyCiphertextBlob" +_PKP = "PrivateKeyPlaintext" +_GDKPWPI = "GenerateDataKeyPairWithoutPlaintextInput" +_cGDKPWPR = "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest" +_GDKPWPO = "GenerateDataKeyPairWithoutPlaintextOutput" +_cGDKPWPRo = "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextResponse" +_GDKWPI = "GenerateDataKeyWithoutPlaintextInput" +_cGDKWPR = "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest" +_GDKWPO = "GenerateDataKeyWithoutPlaintextOutput" +_cGDKWPRo = "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextResponse" +_GMI = "GenerateMacInput" +_cGMR = "com.amazonaws.kms#GenerateMacRequest" +_Me = "Message" +_MAa = "MacAlgorithm" +_GMO = "GenerateMacOutput" +_cGMRo = "com.amazonaws.kms#GenerateMacResponse" +_Ma = "Mac" +_GRI = "GenerateRandomInput" +_cGRR = "com.amazonaws.kms#GenerateRandomRequest" +_GRO = "GenerateRandomOutput" +_cGRRo = "com.amazonaws.kms#GenerateRandomResponse" +_GR = "GenerateRandom" +_GKLUI = "GetKeyLastUsageInput" +_cGKLUR = "com.amazonaws.kms#GetKeyLastUsageRequest" +_KRIT = "KmsRequestIdType" +_KLUTO = "KeyLastUsageTrackingOperation" +_RE = "ReEncrypt" +_KLUD = "KeyLastUsageData" +_Op = "Operation" +_Ti = "Timestamp" +_CTEI = "CloudTrailEventId" +_KRI = "KmsRequestId" +_GKLUO = "GetKeyLastUsageOutput" +_cGKLURo = "com.amazonaws.kms#GetKeyLastUsageResponse" +_KLU = "KeyLastUsage" +_TSD = "TrackingStartDate" +_KCD = "KeyCreationDate" +_GKLU = "GetKeyLastUsage" +_PNT = "PolicyNameType" +_GKPI = "GetKeyPolicyInput" +_cGKPR = "com.amazonaws.kms#GetKeyPolicyRequest" +_PN = "PolicyName" +_GKPO = "GetKeyPolicyOutput" +_cGKPRo = "com.amazonaws.kms#GetKeyPolicyResponse" +_GKP = "GetKeyPolicy" +_GKRSI = "GetKeyRotationStatusInput" +_cGKRSR = "com.amazonaws.kms#GetKeyRotationStatusRequest" +_GKRSO = "GetKeyRotationStatusOutput" +_cGKRSRo = "com.amazonaws.kms#GetKeyRotationStatusResponse" +_KRE = "KeyRotationEnabled" +_NRD = "NextRotationDate" +_ODRSD = "OnDemandRotationStartDate" +_GKRS = "GetKeyRotationStatus" +_WKS = "WrappingKeySpec" +_GPFII = "GetParametersForImportInput" +_cGPFIR = "com.amazonaws.kms#GetParametersForImportRequest" +_WA = "WrappingAlgorithm" +_GPFIO = "GetParametersForImportOutput" +_cGPFIRo = "com.amazonaws.kms#GetParametersForImportResponse" +_IT = "ImportToken" +_PVT = "ParametersValidTo" +_GPFI = "GetParametersForImport" +_GPKI = "GetPublicKeyInput" +_cGPKR = "com.amazonaws.kms#GetPublicKeyRequest" +_GPKO = "GetPublicKeyOutput" +_cGPKRo = "com.amazonaws.kms#GetPublicKeyResponse" +_GLE = "GrantListEntry" +_IA = "IssuingAccount" +_GL = "GrantList" +_ITm = "ImportType" +_NKM = "NEW_KEY_MATERIAL" +_EKM = "EXISTING_KEY_MATERIAL" +_KMDT = "KeyMaterialDescriptionType" +_IKMI = "ImportKeyMaterialInput" +_cIKMR = "com.amazonaws.kms#ImportKeyMaterialRequest" +_EKMn = "EncryptedKeyMaterial" +_KMD = "KeyMaterialDescription" +_IKMO = "ImportKeyMaterialOutput" +_cIKMRo = "com.amazonaws.kms#ImportKeyMaterialResponse" +_IKME = "IncorrectKeyMaterialException" +_IITE = "InvalidImportTokenException" +_IKM = "ImportKeyMaterial" +_IS = "ImportState" +_IMPORTED = "IMPORTED" +_PI_ = "PENDING_IMPORT" +_IKMn = "IncludeKeyMaterial" +_AKM = "ALL_KEY_MATERIAL" +_RO = "ROTATIONS_ONLY" +_IGIE = "InvalidGrantIdException" +_KLE = "KeyListEntry" +_KAe = "KeyArn" +_KL = "KeyList" +_KMS = "KeyMaterialState" +_NC = "NON_CURRENT" +_CURRENT = "CURRENT" +_PR = "PENDING_ROTATION" +_PMRIAR = "PENDING_MULTI_REGION_IMPORT_AND_ROTATION" +_KMSIME = "KMSInvalidMacException" +_KMSISEn = "KMSInvalidSignatureException" +_LAI = "ListAliasesInput" +_cLAR = "com.amazonaws.kms#ListAliasesRequest" +_LAO = "ListAliasesOutput" +_cLARo = "com.amazonaws.kms#ListAliasesResponse" +_Al = "Aliases" +_LA = "ListAliases" +_LGI = "ListGrantsInput" +_cLGR = "com.amazonaws.kms#ListGrantsRequest" +_LGO = "ListGrantsOutput" +_cLGRo = "com.amazonaws.kms#ListGrantsResponse" +_G = "Grants" +_LG = "ListGrants" +_LKPI = "ListKeyPoliciesInput" +_cLKPR = "com.amazonaws.kms#ListKeyPoliciesRequest" +_PNL = "PolicyNameList" +_LKPO = "ListKeyPoliciesOutput" +_cLKPRo = "com.amazonaws.kms#ListKeyPoliciesResponse" +_PNo = "PolicyNames" +_LKP = "ListKeyPolicies" +_LKRI = "ListKeyRotationsInput" +_cLKRR = "com.amazonaws.kms#ListKeyRotationsRequest" +_RTo = "RotationType" +_AUTOMATIC = "AUTOMATIC" +_OD = "ON_DEMAND" +_RLE = "RotationsListEntry" +_RD = "RotationDate" +_RL = "RotationsList" +_LKRO = "ListKeyRotationsOutput" +_cLKRRo = "com.amazonaws.kms#ListKeyRotationsResponse" +_Ro = "Rotations" +_LKR = "ListKeyRotations" +_LKI = "ListKeysInput" +_cLKR = "com.amazonaws.kms#ListKeysRequest" +_LKO = "ListKeysOutput" +_cLKRo = "com.amazonaws.kms#ListKeysResponse" +_K = "Keys" +_LK = "ListKeys" +_LRTI = "ListResourceTagsInput" +_cLRTR = "com.amazonaws.kms#ListResourceTagsRequest" +_LRTO = "ListResourceTagsOutput" +_cLRTRo = "com.amazonaws.kms#ListResourceTagsResponse" +_LRT = "ListResourceTags" +_LRGI = "ListRetirableGrantsInput" +_cLRGR = "com.amazonaws.kms#ListRetirableGrantsRequest" +_LRGO = "ListRetirableGrantsOutput" +_LRG = "ListRetirableGrants" +_MTe = "MessageType" +_RAW = "RAW" +_DIGEST = "DIGEST" +_EM_ = "EXTERNAL_MU" +_PKPI = "PutKeyPolicyInput" +_cPKPR = "com.amazonaws.kms#PutKeyPolicyRequest" +_PKPO = "PutKeyPolicyOutput" +_PKPu = "PutKeyPolicy" +_REI = "ReEncryptInput" +_cRER = "com.amazonaws.kms#ReEncryptRequest" +_SEC = "SourceEncryptionContext" +_SKI = "SourceKeyId" +_DKIe = "DestinationKeyId" +_DEC = "DestinationEncryptionContext" +_SEA = "SourceEncryptionAlgorithm" +_DEA = "DestinationEncryptionAlgorithm" +_REO = "ReEncryptOutput" +_cRERo = "com.amazonaws.kms#ReEncryptResponse" +_SKMI = "SourceKeyMaterialId" +_DKMI = "DestinationKeyMaterialId" +_RKI = "ReplicateKeyInput" +_cRKR = "com.amazonaws.kms#ReplicateKeyRequest" +_RR = "ReplicaRegion" +_RKO = "ReplicateKeyOutput" +_cRKRo = "com.amazonaws.kms#ReplicateKeyResponse" +_RKM = "ReplicaKeyMetadata" +_RPe = "ReplicaPolicy" +_RTe = "ReplicaTags" +_RKe = "ReplicateKey" +_RGI = "RetireGrantInput" +_cRGR = "com.amazonaws.kms#RetireGrantRequest" +_RGO = "RetireGrantOutput" +_RGIe = "RevokeGrantInput" +_cRGRo = "com.amazonaws.kms#RevokeGrantRequest" +_RGOe = "RevokeGrantOutput" +_RGe = "RevokeGrant" +_RKODI = "RotateKeyOnDemandInput" +_cRKODR = "com.amazonaws.kms#RotateKeyOnDemandRequest" +_RKODO = "RotateKeyOnDemandOutput" +_cRKODRo = "com.amazonaws.kms#RotateKeyOnDemandResponse" +_RKOD = "RotateKeyOnDemand" +_SKDI = "ScheduleKeyDeletionInput" +_cSKDR = "com.amazonaws.kms#ScheduleKeyDeletionRequest" +_PWID = "PendingWindowInDays" +_SKDO = "ScheduleKeyDeletionOutput" +_cSKDRo = "com.amazonaws.kms#ScheduleKeyDeletionResponse" +_SKD = "ScheduleKeyDeletion" +_SI = "SignInput" +_cSR = "com.amazonaws.kms#SignRequest" +_SAig = "SigningAlgorithm" +_SO = "SignOutput" +_cSRo = "com.amazonaws.kms#SignResponse" +_Si = "Signature" +_TKL = "TagKeyList" +_TRI = "TagResourceInput" +_cTRR = "com.amazonaws.kms#TagResourceRequest" +_TRO = "TagResourceOutput" +_TR = "TagResource" +_URI = "UntagResourceInput" +_cURR = "com.amazonaws.kms#UntagResourceRequest" +_TKa = "TagKeys" +_URO = "UntagResourceOutput" +_UR = "UntagResource" +_UAI = "UpdateAliasInput" +_cUAR = "com.amazonaws.kms#UpdateAliasRequest" +_UAO = "UpdateAliasOutput" +_UA = "UpdateAlias" +_UCKSI = "UpdateCustomKeyStoreInput" +_cUCKSR = "com.amazonaws.kms#UpdateCustomKeyStoreRequest" +_NCKSN = "NewCustomKeyStoreName" +_UCKSO = "UpdateCustomKeyStoreOutput" +_cUCKSRo = "com.amazonaws.kms#UpdateCustomKeyStoreResponse" +_UCKS = "UpdateCustomKeyStore" +_UKDI = "UpdateKeyDescriptionInput" +_cUKDR = "com.amazonaws.kms#UpdateKeyDescriptionRequest" +_UKDO = "UpdateKeyDescriptionOutput" +_UKD = "UpdateKeyDescription" +_UPRI = "UpdatePrimaryRegionInput" +_cUPRR = "com.amazonaws.kms#UpdatePrimaryRegionRequest" +_PRr = "PrimaryRegion" +_UPRO = "UpdatePrimaryRegionOutput" +_UPR = "UpdatePrimaryRegion" +_VI = "VerifyInput" +_cVR = "com.amazonaws.kms#VerifyRequest" +_VO = "VerifyOutput" +_cVRo = "com.amazonaws.kms#VerifyResponse" +_SVi = "SignatureValid" +_VMI = "VerifyMacInput" +_cVMR = "com.amazonaws.kms#VerifyMacRequest" +_VMO = "VerifyMacOutput" +_cVMRo = "com.amazonaws.kms#VerifyMacResponse" +_MV = "MacValid" +_TS = "TrentService" +_a = "aws.auth#sigv4" +_a_ = "aws.protocols#awsJson1_1" +_aw = "aws.api#service" +_sN = "smithy.api#xmlNamespace" + +ACCOUNT_ID_TYPE: StaticSchema = (3, n0, _AIT, 0) + +ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _AS, + 0, + (_RPV, _ROS, _ROS_, _RAKWS, _RAKWS_, _SMPKE), + ( + (-1, {_sV: _RPV}), + (-1, {_sV: _ROS}), + (-1, {_sV: _ROS_}), + (-1, {_sV: _RAKWS}), + (-1, {_sV: _RAKWS_}), + (-1, {_sV: _SMPKE}), + ), +) + +ARN_TYPE: StaticSchema = (3, n0, _AT, 0) + +ALIAS_NAME_TYPE: StaticSchema = (3, n0, _ANT, 0) + +DATE_TYPE: StaticSchema = (4, n0, _DT, 0) + +KEY_ID_TYPE: StaticSchema = (3, n0, _KIT, 0) + +ALIAS_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _ALE, + 0, + (_AN, _AA, _TKI, _CD, _LUD), + ( + (ALIAS_NAME_TYPE, 0), + (ARN_TYPE, 0), + (KEY_ID_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + ), +) + +ALIAS_LIST: StaticSchema = (16, n0, _AL, 0, (_m,), ((ALIAS_LIST_ENTRY, 0),)) + +ERROR_MESSAGE_TYPE: StaticSchema = (3, n0, _EMT, 0) + +ALREADY_EXISTS_EXCEPTION: StaticSchema = ( + 18, + n0, + _AEE, + { + _s: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "AlreadyExists", "httpResponseCode": 409}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +ATTESTATION_DOCUMENT_TYPE: StaticSchema = (1, n0, _ADT, 0) + +AWS_ACCOUNT_ID_TYPE: StaticSchema = (3, n0, _AWSAIT, 0) + +BACKING_KEY_ID_RESPONSE_TYPE: StaticSchema = (3, n0, _BKIRT, 0) + +BACKING_KEY_ID_TYPE: StaticSchema = (3, n0, _BKIT, 0) + +BOOLEAN_TYPE: StaticSchema = (2, n0, _BT, {_sm: False}) + +CANCEL_KEY_DELETION_INPUT: StaticSchema = ( + 18, + n0, + _CKDI, + {_sSI: _cCKDR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +CANCEL_KEY_DELETION_OUTPUT: StaticSchema = ( + 18, + n0, + _CKDO, + {_sSI: _cCKDRo, _smith: None}, + (_KI,), + ((KEY_ID_TYPE, 0),), +) + +DEPENDENCY_TIMEOUT_EXCEPTION: StaticSchema = ( + 18, + n0, + _DTE, + { + _s: _se, + _sE: 503, + _aQE: MappingProxyType({"code": "DependencyTimeout", "httpResponseCode": 503}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +INVALID_ARN_EXCEPTION: StaticSchema = ( + 18, + n0, + _IAE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidArn", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +KMS_INTERNAL_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSIE, + { + _s: _se, + _sE: 500, + _aQE: MappingProxyType({"code": "KMSInternal", "httpResponseCode": 500}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +KMS_INVALID_STATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSISE, + { + _s: _c, + _sE: 409, + _aQE: MappingProxyType( + {"code": "KMSInvalidStateException", "httpResponseCode": 409} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _NFE, + { + _s: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "NotFound", "httpResponseCode": 404}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CANCEL_KEY_DELETION: StaticOperationSchema = ( + 23, + n0, + _CKD, + 0, + CANCEL_KEY_DELETION_INPUT, + CANCEL_KEY_DELETION_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +CIPHERTEXT_TYPE: StaticSchema = (1, n0, _CT, 0) + +CLOUD_HSM_CLUSTER_ID_TYPE: StaticSchema = (3, n0, _CHCIT, 0) + +CLOUD_HSM_CLUSTER_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _CHCIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CloudHsmClusterInUseException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _CHCICE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "CloudHsmClusterInvalidConfigurationException", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CLOUD_HSM_CLUSTER_NOT_ACTIVE_EXCEPTION: StaticSchema = ( + 18, + n0, + _CHCNAE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CloudHsmClusterNotActiveException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CLOUD_HSM_CLUSTER_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _CHCNFE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CloudHsmClusterNotFoundException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CLOUD_HSM_CLUSTER_NOT_RELATED_EXCEPTION: StaticSchema = ( + 18, + n0, + _CHCNRE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CloudHsmClusterNotRelatedException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CLOUD_TRAIL_EVENT_ID_TYPE: StaticSchema = (3, n0, _CTEIT, 0) + +CONFLICT_EXCEPTION: StaticSchema = ( + 18, + n0, + _CE, + { + _s: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "ConflictException", "httpResponseCode": 409}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CUSTOM_KEY_STORE_ID_TYPE: StaticSchema = (3, n0, _CKSIT, 0) + +CONNECT_CUSTOM_KEY_STORE_INPUT: StaticSchema = ( + 18, + n0, + _CCKSI, + {_sSI: _cCCKSR, _smi: None}, + (_CKSI,), + ((CUSTOM_KEY_STORE_ID_TYPE, 1),), +) + +CONNECT_CUSTOM_KEY_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _CCKSO, + {_sSI: _cCCKSRo, _smith: None}, +) + +CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION: StaticSchema = ( + 18, + n0, + _CKSISE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomKeyStoreInvalidStateException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _CKSNFE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomKeyStoreNotFoundException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CONNECT_CUSTOM_KEY_STORE: StaticOperationSchema = ( + 23, + n0, + _CCKS, + 0, + CONNECT_CUSTOM_KEY_STORE_INPUT, + CONNECT_CUSTOM_KEY_STORE_OUTPUT, + ( + CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_ACTIVE_EXCEPTION, + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + ), +) + +CONNECTION_ERROR_CODE_TYPE: StaticSchema = ( + 14, + n0, + _CECT, + 0, + ( + _IC, + _CNF, + _NE, + _IE, + _ICH, + _ULO, + _UNF, + _ULI, + _SNF, + _IFAIS, + _XPAD, + _XPNR, + _XVESNF, + _XPIR, + _XPIC, + _XVESIC, + _XPTO, + _XPITC, + ), + ( + (-1, {_sV: _IC}), + (-1, {_sV: _CNF}), + (-1, {_sV: _NE}), + (-1, {_sV: _IE}), + (-1, {_sV: _ICH}), + (-1, {_sV: _ULO}), + (-1, {_sV: _UNF}), + (-1, {_sV: _ULI}), + (-1, {_sV: _SNF}), + (-1, {_sV: _IFAIS}), + (-1, {_sV: _XPAD}), + (-1, {_sV: _XPNR}), + (-1, {_sV: _XVESNF}), + (-1, {_sV: _XPIR}), + (-1, {_sV: _XPIC}), + (-1, {_sV: _XVESIC}), + (-1, {_sV: _XPTO}), + (-1, {_sV: _XPITC}), + ), +) + +CONNECTION_STATE_TYPE: StaticSchema = ( + 14, + n0, + _CST, + 0, + (_CONNECTED, _CONNECTING, _FAILED, _DISCONNECTED, _DISCONNECTING), + ( + (-1, {_sV: _CONNECTED}), + (-1, {_sV: _CONNECTING}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _DISCONNECTED}), + (-1, {_sV: _DISCONNECTING}), + ), +) + +CREATE_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _CAI, + {_sSI: _cCAR, _smi: None}, + (_AN, _TKI), + ((ALIAS_NAME_TYPE, 1), (KEY_ID_TYPE, 1)), +) + +CREATE_ALIAS_OUTPUT: StaticSchema = (18, n0, _CAO, {_sSI: _sU, _smith: None}) + +INVALID_ALIAS_NAME_EXCEPTION: StaticSchema = ( + 18, + n0, + _IANE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidAliasName", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +LIMIT_EXCEEDED_EXCEPTION: StaticSchema = ( + 18, + n0, + _LEE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "LimitExceeded", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CREATE_ALIAS: StaticOperationSchema = ( + 23, + n0, + _CA, + 0, + CREATE_ALIAS_INPUT, + CREATE_ALIAS_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ALIAS_NAME_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +CUSTOM_KEY_STORE_NAME_TYPE: StaticSchema = (3, n0, _CKSNT, 0) + +CUSTOM_KEY_STORE_TYPE: StaticSchema = ( + 14, + n0, + _CKST, + 0, + (_AC, _EKS), + ((-1, {_sV: _AC}), (-1, {_sV: _EKS})), +) + +KEY_STORE_PASSWORD_TYPE: StaticSchema = (3, n0, _KSPT, 4) + +TRUST_ANCHOR_CERTIFICATE_TYPE: StaticSchema = (3, n0, _TACT, 0) + +XKS_PROXY_AUTHENTICATION_ACCESS_KEY_ID_TYPE: StaticSchema = (3, n0, _XPAAKIT, 4) + +XKS_PROXY_AUTHENTICATION_RAW_SECRET_ACCESS_KEY_TYPE: StaticSchema = ( + 3, + n0, + _XPARSAKT, + 4, +) + +XKS_PROXY_AUTHENTICATION_CREDENTIAL_TYPE: StaticSchema = ( + 18, + n0, + _XPACT, + 0, + (_AKI, _RSAK), + ( + (XKS_PROXY_AUTHENTICATION_ACCESS_KEY_ID_TYPE, 1), + (XKS_PROXY_AUTHENTICATION_RAW_SECRET_ACCESS_KEY_TYPE, 1), + ), +) + +XKS_PROXY_CONNECTIVITY_TYPE: StaticSchema = ( + 14, + n0, + _XPCT, + 0, + (_PE, _VES), + ((-1, {_sV: _PE}), (-1, {_sV: _VES})), +) + +XKS_PROXY_URI_ENDPOINT_TYPE: StaticSchema = (3, n0, _XPUET, 0) + +XKS_PROXY_URI_PATH_TYPE: StaticSchema = (3, n0, _XPUPT, 0) + +XKS_PROXY_VPC_ENDPOINT_SERVICE_NAME_TYPE: StaticSchema = (3, n0, _XPVESNT, 0) + +CREATE_CUSTOM_KEY_STORE_INPUT: StaticSchema = ( + 18, + n0, + _CCKSIr, + {_sSI: _cCCKSRom, _smi: None}, + (_CKSN, _CHCI, _TAC, _KSP, _CKST, _XPUE, _XPUP, _XPVESN, _XPVESO, _XPAC, _XPC), + ( + (CUSTOM_KEY_STORE_NAME_TYPE, 1), + (CLOUD_HSM_CLUSTER_ID_TYPE, 0), + (TRUST_ANCHOR_CERTIFICATE_TYPE, 0), + (KEY_STORE_PASSWORD_TYPE, 0), + (CUSTOM_KEY_STORE_TYPE, 0), + (XKS_PROXY_URI_ENDPOINT_TYPE, 0), + (XKS_PROXY_URI_PATH_TYPE, 0), + (XKS_PROXY_VPC_ENDPOINT_SERVICE_NAME_TYPE, 0), + (ACCOUNT_ID_TYPE, 0), + (XKS_PROXY_AUTHENTICATION_CREDENTIAL_TYPE, 0), + (XKS_PROXY_CONNECTIVITY_TYPE, 0), + ), +) + +CREATE_CUSTOM_KEY_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _CCKSOr, + {_sSI: _cCCKSRoma, _smith: None}, + (_CKSI,), + ((CUSTOM_KEY_STORE_ID_TYPE, 0),), +) + +CUSTOM_KEY_STORE_NAME_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _CKSNIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomKeyStoreNameInUseException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +INCORRECT_TRUST_ANCHOR_EXCEPTION: StaticSchema = ( + 18, + n0, + _ITAE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IncorrectTrustAnchorException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_INCORRECT_AUTHENTICATION_CREDENTIAL_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPIACE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "XksProxyIncorrectAuthenticationCredentialException", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_INVALID_CONFIGURATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPICE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksProxyInvalidConfigurationException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_INVALID_RESPONSE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPIRE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksProxyInvalidResponseException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_URI_ENDPOINT_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPUEIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksProxyUriEndpointInUseException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_URI_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPUIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksProxyUriInUseException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_URI_UNREACHABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPUUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksProxyUriUnreachableException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_VPC_ENDPOINT_SERVICE_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPVESIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "XksProxyVpcEndpointServiceInUseException", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPVESICE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "XksProxyVpcEndpointServiceInvalidConfigurationException", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_VPC_ENDPOINT_SERVICE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _XPVESNFE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "XksProxyVpcEndpointServiceNotFoundException", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CREATE_CUSTOM_KEY_STORE: StaticOperationSchema = ( + 23, + n0, + _CCKSr, + 0, + CREATE_CUSTOM_KEY_STORE_INPUT, + CREATE_CUSTOM_KEY_STORE_OUTPUT, + ( + CLOUD_HSM_CLUSTER_IN_USE_EXCEPTION, + CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_ACTIVE_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_FOUND_EXCEPTION, + CUSTOM_KEY_STORE_NAME_IN_USE_EXCEPTION, + INCORRECT_TRUST_ANCHOR_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + XKS_PROXY_INCORRECT_AUTHENTICATION_CREDENTIAL_EXCEPTION, + XKS_PROXY_INVALID_CONFIGURATION_EXCEPTION, + XKS_PROXY_INVALID_RESPONSE_EXCEPTION, + XKS_PROXY_URI_ENDPOINT_IN_USE_EXCEPTION, + XKS_PROXY_URI_IN_USE_EXCEPTION, + XKS_PROXY_URI_UNREACHABLE_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_IN_USE_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_NOT_FOUND_EXCEPTION, + ), +) + +ENCRYPTION_CONTEXT_KEY: StaticSchema = (3, n0, _ECK, 0) + +ENCRYPTION_CONTEXT_VALUE: StaticSchema = (3, n0, _ECV, 0) + +ENCRYPTION_CONTEXT_TYPE: StaticSchema = ( + 17, + n0, + _ECT, + 0, + (_k, _v), + ((ENCRYPTION_CONTEXT_KEY, 0), (ENCRYPTION_CONTEXT_VALUE, 0)), +) + +GRANT_CONSTRAINT_SOURCE_ARN_TYPE: StaticSchema = (3, n0, _GCSAT, 0) + +GRANT_CONSTRAINTS: StaticSchema = ( + 18, + n0, + _GC, + 0, + (_ECS, _ECE, _SA), + ( + (ENCRYPTION_CONTEXT_TYPE, 0), + (ENCRYPTION_CONTEXT_TYPE, 0), + (GRANT_CONSTRAINT_SOURCE_ARN_TYPE, 0), + ), +) + +NULLABLE_BOOLEAN_TYPE: StaticSchema = (2, n0, _NBT, 0) + +PRINCIPAL_ID_TYPE: StaticSchema = (3, n0, _PIT, 0) + +SERVICE_PRINCIPAL_TYPE: StaticSchema = (3, n0, _SPT, 0) + +GRANT_TOKEN_TYPE: StaticSchema = (3, n0, _GTT, 0) + +GRANT_TOKEN_LIST: StaticSchema = (16, n0, _GTL, 0, (_m,), ((GRANT_TOKEN_TYPE, 0),)) + +GRANT_NAME_TYPE: StaticSchema = (3, n0, _GNT, 0) + +GRANT_OPERATION: StaticSchema = ( + 14, + n0, + _GO, + 0, + ( + _D, + _E, + _GDK, + _GDKWP, + _REF, + _RET, + _S, + _V, + _GPK, + _CG, + _RG, + _DK, + _GDKP, + _GDKPWP, + _GM, + _VM, + _DSS, + _En, + _De, + ), + ( + (-1, {_sV: _D}), + (-1, {_sV: _E}), + (-1, {_sV: _GDK}), + (-1, {_sV: _GDKWP}), + (-1, {_sV: _REF}), + (-1, {_sV: _RET}), + (-1, {_sV: _S}), + (-1, {_sV: _V}), + (-1, {_sV: _GPK}), + (-1, {_sV: _CG}), + (-1, {_sV: _RG}), + (-1, {_sV: _DK}), + (-1, {_sV: _GDKP}), + (-1, {_sV: _GDKPWP}), + (-1, {_sV: _GM}), + (-1, {_sV: _VM}), + (-1, {_sV: _DSS}), + (-1, {_sV: _En}), + (-1, {_sV: _De}), + ), +) + +GRANT_OPERATION_LIST: StaticSchema = (16, n0, _GOL, 0, (_m,), ((GRANT_OPERATION, 0),)) + +CREATE_GRANT_INPUT: StaticSchema = ( + 18, + n0, + _CGI, + {_sSI: _cCGR, _smi: None}, + (_KI, _GP, _RP, _O, _C, _GT, _N, _DR, _GSP, _RSP), + ( + (KEY_ID_TYPE, 1), + (PRINCIPAL_ID_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (GRANT_OPERATION_LIST, 1), + (GRANT_CONSTRAINTS, 0), + (GRANT_TOKEN_LIST, 0), + (GRANT_NAME_TYPE, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + ), +) + +GRANT_ID_TYPE: StaticSchema = (3, n0, _GIT, 0) + +CREATE_GRANT_OUTPUT: StaticSchema = ( + 18, + n0, + _CGO, + {_sSI: _cCGRo, _smith: None}, + (_GTr, _GI), + ((GRANT_TOKEN_TYPE, 0), (GRANT_ID_TYPE, 0)), +) + +DISABLED_EXCEPTION: StaticSchema = ( + 18, + n0, + _DE, + { + _s: _c, + _sE: 409, + _aQE: MappingProxyType({"code": "Disabled", "httpResponseCode": 409}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +DRY_RUN_OPERATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _DROE, + { + _s: _c, + _sE: 412, + _aQE: MappingProxyType({"code": "DryRunOperation", "httpResponseCode": 412}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +INVALID_GRANT_TOKEN_EXCEPTION: StaticSchema = ( + 18, + n0, + _IGTE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidGrantToken", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CREATE_GRANT: StaticOperationSchema = ( + 23, + n0, + _CG, + 0, + CREATE_GRANT_INPUT, + CREATE_GRANT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +CUSTOMER_MASTER_KEY_SPEC: StaticSchema = ( + 14, + n0, + _CMKS, + 0, + (_R, _R_, _R__, _ENP, _ENP_, _ENP__, _ESP, _SD, _H, _H_, _H__, _H___, _SM), + ( + (-1, {_sV: _R}), + (-1, {_sV: _R_}), + (-1, {_sV: _R__}), + (-1, {_sV: _ENP}), + (-1, {_sV: _ENP_}), + (-1, {_sV: _ENP__}), + (-1, {_sV: _ESP}), + (-1, {_sV: _SD}), + (-1, {_sV: _H}), + (-1, {_sV: _H_}), + (-1, {_sV: _H__}), + (-1, {_sV: _H___}), + (-1, {_sV: _SM}), + ), +) + +DESCRIPTION_TYPE: StaticSchema = (3, n0, _DTe, 0) + +KEY_SPEC: StaticSchema = ( + 14, + n0, + _KS, + 0, + ( + _R, + _R_, + _R__, + _ENP, + _ENP_, + _ENP__, + _ESP, + _SD, + _H, + _H_, + _H__, + _H___, + _SM, + _MD, + _MD_, + _MD__, + _ENE, + _MK, + _MK_, + _MK__, + ), + ( + (-1, {_sV: _R}), + (-1, {_sV: _R_}), + (-1, {_sV: _R__}), + (-1, {_sV: _ENP}), + (-1, {_sV: _ENP_}), + (-1, {_sV: _ENP__}), + (-1, {_sV: _ESP}), + (-1, {_sV: _SD}), + (-1, {_sV: _H}), + (-1, {_sV: _H_}), + (-1, {_sV: _H__}), + (-1, {_sV: _H___}), + (-1, {_sV: _SM}), + (-1, {_sV: _MD}), + (-1, {_sV: _MD_}), + (-1, {_sV: _MD__}), + (-1, {_sV: _ENE}), + (-1, {_sV: _MK}), + (-1, {_sV: _MK_}), + (-1, {_sV: _MK__}), + ), +) + +KEY_USAGE_TYPE: StaticSchema = ( + 14, + n0, + _KUT, + 0, + (_SV, _ED, _GVM, _KA, _ED_), + ( + (-1, {_sV: _SV}), + (-1, {_sV: _ED}), + (-1, {_sV: _GVM}), + (-1, {_sV: _KA}), + (-1, {_sV: _ED_}), + ), +) + +ORIGIN_TYPE: StaticSchema = ( + 14, + n0, + _OT, + 0, + (_AK, _EXTERNAL, _AC, _EKS), + ((-1, {_sV: _AK}), (-1, {_sV: _EXTERNAL}), (-1, {_sV: _AC}), (-1, {_sV: _EKS})), +) + +POLICY_TYPE: StaticSchema = (3, n0, _PT, 0) + +TAG_KEY_TYPE: StaticSchema = (3, n0, _TKT, 0) + +TAG_VALUE_TYPE: StaticSchema = (3, n0, _TVT, 0) + +TAG: StaticSchema = ( + 18, + n0, + _T, + 0, + (_TK, _TV), + ((TAG_KEY_TYPE, 1), (TAG_VALUE_TYPE, 1)), +) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TAG, 0),)) + +XKS_KEY_ID_TYPE: StaticSchema = (3, n0, _XKIT, 0) + +CREATE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _CKI, + {_sSI: _cCKR, _smi: None}, + (_P, _Des, _KU, _CMKS, _KS, _Or, _CKSI, _BPLSC, _Ta, _MR, _XKI), + ( + (POLICY_TYPE, 0), + (DESCRIPTION_TYPE, 0), + (KEY_USAGE_TYPE, 0), + (CUSTOMER_MASTER_KEY_SPEC, 0), + (KEY_SPEC, 0), + (ORIGIN_TYPE, 0), + (CUSTOM_KEY_STORE_ID_TYPE, 0), + (BOOLEAN_TYPE, {_sm: False}), + (TAG_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (XKS_KEY_ID_TYPE, 0), + ), +) + +ENCAPSULATION_ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _EAS, + 0, + (_MK___,), + ((-1, {_sV: _MK___}),), +) + +ENCAPSULATION_ALGORITHM_SPEC_LIST: StaticSchema = ( + 16, + n0, + _EASL, + 0, + (_m,), + ((ENCAPSULATION_ALGORITHM_SPEC, 0),), +) + +ENCRYPTION_ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _EASn, + 0, + (_SD, _ROS, _ROS_, _SMPKE), + ((-1, {_sV: _SD}), (-1, {_sV: _ROS}), (-1, {_sV: _ROS_}), (-1, {_sV: _SMPKE})), +) + +ENCRYPTION_ALGORITHM_SPEC_LIST: StaticSchema = ( + 16, + n0, + _EASLn, + 0, + (_m,), + ((ENCRYPTION_ALGORITHM_SPEC, 0),), +) + +EXPIRATION_MODEL_TYPE: StaticSchema = ( + 14, + n0, + _EMTx, + 0, + (_KME, _KMDNE), + ((-1, {_sV: _KME}), (-1, {_sV: _KMDNE})), +) + +KEY_AGREEMENT_ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _KAAS, + 0, + (_ECDH,), + ((-1, {_sV: _ECDH}),), +) + +KEY_AGREEMENT_ALGORITHM_SPEC_LIST: StaticSchema = ( + 16, + n0, + _KAASL, + 0, + (_m,), + ((KEY_AGREEMENT_ALGORITHM_SPEC, 0),), +) + +KEY_MANAGER_TYPE: StaticSchema = ( + 14, + n0, + _KMT, + 0, + (_AWS, _CUSTOMER), + ((-1, {_sV: _AWS}), (-1, {_sV: _CUSTOMER})), +) + +KEY_STATE: StaticSchema = ( + 14, + n0, + _KSe, + 0, + (_Cr, _Ena, _Di, _PD, _PI, _PRD, _U, _Up), + ( + (-1, {_sV: _Cr}), + (-1, {_sV: _Ena}), + (-1, {_sV: _Di}), + (-1, {_sV: _PD}), + (-1, {_sV: _PI}), + (-1, {_sV: _PRD}), + (-1, {_sV: _U}), + (-1, {_sV: _Up}), + ), +) + +MAC_ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _MAS, + 0, + (_HS, _HS_, _HS__, _HS___), + ((-1, {_sV: _HS}), (-1, {_sV: _HS_}), (-1, {_sV: _HS__}), (-1, {_sV: _HS___})), +) + +MAC_ALGORITHM_SPEC_LIST: StaticSchema = ( + 16, + n0, + _MASL, + 0, + (_m,), + ((MAC_ALGORITHM_SPEC, 0),), +) + +MULTI_REGION_KEY_TYPE: StaticSchema = ( + 14, + n0, + _MRKT, + 0, + (_PRIMARY, _REPLICA), + ((-1, {_sV: _PRIMARY}), (-1, {_sV: _REPLICA})), +) + +REGION_TYPE: StaticSchema = (3, n0, _RT, 0) + +MULTI_REGION_KEY: StaticSchema = ( + 18, + n0, + _MRK, + 0, + (_A, _Re), + ((ARN_TYPE, 0), (REGION_TYPE, 0)), +) + +MULTI_REGION_KEY_LIST: StaticSchema = ( + 16, + n0, + _MRKL, + 0, + (_m,), + ((MULTI_REGION_KEY, 0),), +) + +MULTI_REGION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MRC, + 0, + (_MRKT, _PK, _RK), + ((MULTI_REGION_KEY_TYPE, 0), (MULTI_REGION_KEY, 0), (MULTI_REGION_KEY_LIST, 0)), +) + +PENDING_WINDOW_IN_DAYS_TYPE: StaticSchema = (7, n0, _PWIDT, 0) + +SIGNING_ALGORITHM_SPEC: StaticSchema = ( + 14, + n0, + _SAS, + 0, + ( + _RPS, + _RPS_, + _RPS__, + _RPVS, + _RPVS_, + _RPVS__, + _ES, + _ES_, + _ES__, + _SMDSA, + _MDS, + _ES___, + _EPS, + ), + ( + (-1, {_sV: _RPS}), + (-1, {_sV: _RPS_}), + (-1, {_sV: _RPS__}), + (-1, {_sV: _RPVS}), + (-1, {_sV: _RPVS_}), + (-1, {_sV: _RPVS__}), + (-1, {_sV: _ES}), + (-1, {_sV: _ES_}), + (-1, {_sV: _ES__}), + (-1, {_sV: _SMDSA}), + (-1, {_sV: _MDS}), + (-1, {_sV: _ES___}), + (-1, {_sV: _EPS}), + ), +) + +SIGNING_ALGORITHM_SPEC_LIST: StaticSchema = ( + 16, + n0, + _SASL, + 0, + (_m,), + ((SIGNING_ALGORITHM_SPEC, 0),), +) + +XKS_KEY_CONFIGURATION_TYPE: StaticSchema = ( + 18, + n0, + _XKCT, + 0, + (_I,), + ((XKS_KEY_ID_TYPE, 0),), +) + +KEY_METADATA: StaticSchema = ( + 18, + n0, + _KM, + 0, + ( + _AWSAI, + _KI, + _A, + _CD, + _Ena, + _Des, + _KU, + _KSe, + _DD, + _VT, + _Or, + _CKSI, + _CHCI, + _EM, + _KMe, + _CMKS, + _KS, + _EA, + _SAi, + _KAA, + _EAn, + _MR, + _MRC, + _PDWID, + _MA, + _XKC, + _CKMI, + ), + ( + (AWS_ACCOUNT_ID_TYPE, 0), + (KEY_ID_TYPE, 1), + (ARN_TYPE, 0), + (DATE_TYPE, 0), + (BOOLEAN_TYPE, {_sm: False}), + (DESCRIPTION_TYPE, 0), + (KEY_USAGE_TYPE, 0), + (KEY_STATE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + (ORIGIN_TYPE, 0), + (CUSTOM_KEY_STORE_ID_TYPE, 0), + (CLOUD_HSM_CLUSTER_ID_TYPE, 0), + (EXPIRATION_MODEL_TYPE, 0), + (KEY_MANAGER_TYPE, 0), + (CUSTOMER_MASTER_KEY_SPEC, 0), + (KEY_SPEC, 0), + (ENCRYPTION_ALGORITHM_SPEC_LIST, 0), + (SIGNING_ALGORITHM_SPEC_LIST, 0), + (KEY_AGREEMENT_ALGORITHM_SPEC_LIST, 0), + (ENCAPSULATION_ALGORITHM_SPEC_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (MULTI_REGION_CONFIGURATION, 0), + (PENDING_WINDOW_IN_DAYS_TYPE, 0), + (MAC_ALGORITHM_SPEC_LIST, 0), + (XKS_KEY_CONFIGURATION_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +CREATE_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _CKO, + {_sSI: _cCKRo, _smith: None}, + (_KM,), + ((KEY_METADATA, 0),), +) + +MALFORMED_POLICY_DOCUMENT_EXCEPTION: StaticSchema = ( + 18, + n0, + _MPDE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "MalformedPolicyDocument", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +TAG_EXCEPTION: StaticSchema = ( + 18, + n0, + _TE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "TagException", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +UNSUPPORTED_OPERATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _UOE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "UnsupportedOperation", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_KEY_ALREADY_IN_USE_EXCEPTION: StaticSchema = ( + 18, + n0, + _XKAIUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "XksKeyAlreadyInUse", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_KEY_INVALID_CONFIGURATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _XKICE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksKeyInvalidConfiguration", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_KEY_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _XKNFE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "XksKeyNotFoundException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +CREATE_KEY: StaticOperationSchema = ( + 23, + n0, + _CK, + 0, + CREATE_KEY_INPUT, + CREATE_KEY_OUTPUT, + ( + CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION, + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + TAG_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + XKS_KEY_ALREADY_IN_USE_EXCEPTION, + XKS_KEY_INVALID_CONFIGURATION_EXCEPTION, + XKS_KEY_NOT_FOUND_EXCEPTION, + ), +) + +CUSTOM_KEY_STORE_HAS_CM_KS_EXCEPTION: StaticSchema = ( + 18, + n0, + _CKSHCMKE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomKeyStoreHasCMKsException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +XKS_PROXY_CONFIGURATION_TYPE: StaticSchema = ( + 18, + n0, + _XPCTk, + 0, + (_Co, _AKI, _UE, _UP, _VESN, _VESO), + ( + (XKS_PROXY_CONNECTIVITY_TYPE, 0), + (XKS_PROXY_AUTHENTICATION_ACCESS_KEY_ID_TYPE, 0), + (XKS_PROXY_URI_ENDPOINT_TYPE, 0), + (XKS_PROXY_URI_PATH_TYPE, 0), + (XKS_PROXY_VPC_ENDPOINT_SERVICE_NAME_TYPE, 0), + (ACCOUNT_ID_TYPE, 0), + ), +) + +CUSTOM_KEY_STORES_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _CKSLE, + 0, + (_CKSI, _CKSN, _CHCI, _TAC, _CS, _CEC, _CD, _CKST, _XPCk), + ( + (CUSTOM_KEY_STORE_ID_TYPE, 0), + (CUSTOM_KEY_STORE_NAME_TYPE, 0), + (CLOUD_HSM_CLUSTER_ID_TYPE, 0), + (TRUST_ANCHOR_CERTIFICATE_TYPE, 0), + (CONNECTION_STATE_TYPE, 0), + (CONNECTION_ERROR_CODE_TYPE, 0), + (DATE_TYPE, 0), + (CUSTOM_KEY_STORE_TYPE, 0), + (XKS_PROXY_CONFIGURATION_TYPE, 0), + ), +) + +CUSTOM_KEY_STORES_LIST: StaticSchema = ( + 16, + n0, + _CKSL, + 0, + (_m,), + ((CUSTOM_KEY_STORES_LIST_ENTRY, 0),), +) + +DATA_KEY_PAIR_SPEC: StaticSchema = ( + 14, + n0, + _DKPS, + 0, + (_R, _R_, _R__, _ENP, _ENP_, _ENP__, _ESP, _SM, _ENE, _MK, _MK_, _MK__), + ( + (-1, {_sV: _R}), + (-1, {_sV: _R_}), + (-1, {_sV: _R__}), + (-1, {_sV: _ENP}), + (-1, {_sV: _ENP_}), + (-1, {_sV: _ENP__}), + (-1, {_sV: _ESP}), + (-1, {_sV: _SM}), + (-1, {_sV: _ENE}), + (-1, {_sV: _MK}), + (-1, {_sV: _MK_}), + (-1, {_sV: _MK__}), + ), +) + +DATA_KEY_SPEC: StaticSchema = ( + 14, + n0, + _DKS, + 0, + (_A_, _A__), + ((-1, {_sV: _A_}), (-1, {_sV: _A__})), +) + +DECAPSULATE_INPUT: StaticSchema = ( + 18, + n0, + _DI, + {_sSI: _cDR, _smi: None}, + (_KI, _SSCB, _EAnc, _GT, _DR), + ( + (KEY_ID_TYPE, 1), + (CIPHERTEXT_TYPE, 1), + (ENCAPSULATION_ALGORITHM_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +PLAINTEXT_TYPE: StaticSchema = (1, n0, _PTl, 4) + +DECAPSULATE_OUTPUT: StaticSchema = ( + 18, + n0, + _DO, + {_sSI: _cDRo, _smith: None}, + (_KI, _SS, _EAnc), + ((KEY_ID_TYPE, 0), (PLAINTEXT_TYPE, 0), (ENCAPSULATION_ALGORITHM_SPEC, 0)), +) + +INVALID_CIPHERTEXT_EXCEPTION: StaticSchema = ( + 18, + n0, + _ICE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidCiphertext", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +INVALID_KEY_USAGE_EXCEPTION: StaticSchema = ( + 18, + n0, + _IKUE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidKeyUsage", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +KEY_UNAVAILABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _KUE, + { + _s: _se, + _sE: 500, + _aQE: MappingProxyType({"code": "KeyUnavailable", "httpResponseCode": 500}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +DECAPSULATE: StaticOperationSchema = ( + 23, + n0, + _De, + 0, + DECAPSULATE_INPUT, + DECAPSULATE_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_CIPHERTEXT_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +DRY_RUN_MODIFIER_TYPE: StaticSchema = (14, n0, _DRMT, 0, (_IC_,), ((-1, {_sV: _IC_}),)) + +DRY_RUN_MODIFIER_LIST: StaticSchema = ( + 16, + n0, + _DRML, + 0, + (_m,), + ((DRY_RUN_MODIFIER_TYPE, 0),), +) + +KEY_ENCRYPTION_MECHANISM: StaticSchema = ( + 14, + n0, + _KEM, + 0, + (_ROS_,), + ((-1, {_sV: _ROS_}),), +) + +RECIPIENT_INFO: StaticSchema = ( + 18, + n0, + _RI, + 0, + (_KEA, _AD), + ((KEY_ENCRYPTION_MECHANISM, 0), (ATTESTATION_DOCUMENT_TYPE, 0)), +) + +DECRYPT_INPUT: StaticSchema = ( + 18, + n0, + _DIe, + {_sSI: _cDRom, _smi: None}, + (_CB, _EC, _GT, _KI, _EAncr, _Rec, _DR, _DRM), + ( + (CIPHERTEXT_TYPE, 0), + (ENCRYPTION_CONTEXT_TYPE, 0), + (GRANT_TOKEN_LIST, 0), + (KEY_ID_TYPE, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (RECIPIENT_INFO, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (DRY_RUN_MODIFIER_LIST, 0), + ), +) + +DECRYPT_OUTPUT: StaticSchema = ( + 18, + n0, + _DOe, + {_sSI: _cDRoma, _smith: None}, + (_KI, _Pl, _EAncr, _CFR, _KMI), + ( + (KEY_ID_TYPE, 0), + (PLAINTEXT_TYPE, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (CIPHERTEXT_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +INCORRECT_KEY_EXCEPTION: StaticSchema = ( + 18, + n0, + _IKE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IncorrectKeyException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +DECRYPT: StaticOperationSchema = ( + 23, + n0, + _D, + 0, + DECRYPT_INPUT, + DECRYPT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INCORRECT_KEY_EXCEPTION, + INVALID_CIPHERTEXT_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +DELETE_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _DAI, + {_sSI: _cDAR, _smi: None}, + (_AN,), + ((ALIAS_NAME_TYPE, 1),), +) + +DELETE_ALIAS_OUTPUT: StaticSchema = (18, n0, _DAO, {_sSI: _sU, _smith: None}) + +DELETE_ALIAS: StaticOperationSchema = ( + 23, + n0, + _DA, + 0, + DELETE_ALIAS_INPUT, + DELETE_ALIAS_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +DELETE_CUSTOM_KEY_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DCKSI, + {_sSI: _cDCKSR, _smi: None}, + (_CKSI,), + ((CUSTOM_KEY_STORE_ID_TYPE, 1),), +) + +DELETE_CUSTOM_KEY_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _DCKSO, + {_sSI: _cDCKSRo, _smith: None}, +) + +DELETE_CUSTOM_KEY_STORE: StaticOperationSchema = ( + 23, + n0, + _DCKS, + 0, + DELETE_CUSTOM_KEY_STORE_INPUT, + DELETE_CUSTOM_KEY_STORE_OUTPUT, + ( + CUSTOM_KEY_STORE_HAS_CM_KS_EXCEPTION, + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + ), +) + +DELETE_IMPORTED_KEY_MATERIAL_INPUT: StaticSchema = ( + 18, + n0, + _DIKMI, + {_sSI: _cDIKMR, _smi: None}, + (_KI, _KMI), + ((KEY_ID_TYPE, 1), (BACKING_KEY_ID_TYPE, 0)), +) + +DELETE_IMPORTED_KEY_MATERIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _DIKMO, + {_sSI: _cDIKMRo, _smith: None}, + (_KI, _KMI), + ((KEY_ID_TYPE, 0), (BACKING_KEY_ID_RESPONSE_TYPE, 0)), +) + +DELETE_IMPORTED_KEY_MATERIAL: StaticOperationSchema = ( + 23, + n0, + _DIKM, + 0, + DELETE_IMPORTED_KEY_MATERIAL_INPUT, + DELETE_IMPORTED_KEY_MATERIAL_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +PUBLIC_KEY_TYPE: StaticSchema = (1, n0, _PKT, 0) + +DERIVE_SHARED_SECRET_INPUT: StaticSchema = ( + 18, + n0, + _DSSI, + {_sSI: _cDSSR, _smi: None}, + (_KI, _KAAe, _PKu, _GT, _DR, _Rec), + ( + (KEY_ID_TYPE, 1), + (KEY_AGREEMENT_ALGORITHM_SPEC, 1), + (PUBLIC_KEY_TYPE, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (RECIPIENT_INFO, 0), + ), +) + +DERIVE_SHARED_SECRET_OUTPUT: StaticSchema = ( + 18, + n0, + _DSSO, + {_sSI: _cDSSRo, _smith: None}, + (_KI, _SS, _CFR, _KAAe, _KO), + ( + (KEY_ID_TYPE, 0), + (PLAINTEXT_TYPE, 0), + (CIPHERTEXT_TYPE, 0), + (KEY_AGREEMENT_ALGORITHM_SPEC, 0), + (ORIGIN_TYPE, 0), + ), +) + +DERIVE_SHARED_SECRET: StaticOperationSchema = ( + 23, + n0, + _DSS, + 0, + DERIVE_SHARED_SECRET_INPUT, + DERIVE_SHARED_SECRET_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +LIMIT_TYPE: StaticSchema = (7, n0, _LT, 0) + +MARKER_TYPE: StaticSchema = (3, n0, _MT, 0) + +DESCRIBE_CUSTOM_KEY_STORES_INPUT: StaticSchema = ( + 18, + n0, + _DCKSIe, + {_sSI: _cDCKSRom, _smi: None}, + (_CKSI, _CKSN, _L, _M), + ( + (CUSTOM_KEY_STORE_ID_TYPE, 0), + (CUSTOM_KEY_STORE_NAME_TYPE, 0), + (LIMIT_TYPE, 0), + (MARKER_TYPE, 0), + ), +) + +DESCRIBE_CUSTOM_KEY_STORES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCKSOe, + {_sSI: _cDCKSRoma, _smith: None}, + (_CKS, _NM, _Tr), + ((CUSTOM_KEY_STORES_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +INVALID_MARKER_EXCEPTION: StaticSchema = ( + 18, + n0, + _IME, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidMarker", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +DESCRIBE_CUSTOM_KEY_STORES: StaticOperationSchema = ( + 23, + n0, + _DCKSe, + 0, + DESCRIBE_CUSTOM_KEY_STORES_INPUT, + DESCRIBE_CUSTOM_KEY_STORES_OUTPUT, + ( + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + ), +) + +DESCRIBE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DKI, + {_sSI: _cDKR, _smi: None}, + (_KI, _GT), + ((KEY_ID_TYPE, 1), (GRANT_TOKEN_LIST, 0)), +) + +DESCRIBE_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _DKO, + {_sSI: _cDKRo, _smith: None}, + (_KM,), + ((KEY_METADATA, 0),), +) + +DESCRIBE_KEY: StaticOperationSchema = ( + 23, + n0, + _DK, + 0, + DESCRIBE_KEY_INPUT, + DESCRIBE_KEY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +DISABLE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _DKIi, + {_sSI: _cDKRom, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +DISABLE_KEY_OUTPUT: StaticSchema = (18, n0, _DKOi, {_sSI: _sU, _smith: None}) + +DISABLE_KEY: StaticOperationSchema = ( + 23, + n0, + _DKi, + 0, + DISABLE_KEY_INPUT, + DISABLE_KEY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +DISABLE_KEY_ROTATION_INPUT: StaticSchema = ( + 18, + n0, + _DKRI, + {_sSI: _cDKRR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +DISABLE_KEY_ROTATION_OUTPUT: StaticSchema = (18, n0, _DKRO, {_sSI: _sU, _smith: None}) + +DISABLE_KEY_ROTATION: StaticOperationSchema = ( + 23, + n0, + _DKR, + 0, + DISABLE_KEY_ROTATION_INPUT, + DISABLE_KEY_ROTATION_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +DISCONNECT_CUSTOM_KEY_STORE_INPUT: StaticSchema = ( + 18, + n0, + _DCKSIi, + {_sSI: _cDCKSRomam, _smi: None}, + (_CKSI,), + ((CUSTOM_KEY_STORE_ID_TYPE, 1),), +) + +DISCONNECT_CUSTOM_KEY_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _DCKSOi, + {_sSI: _cDCKSRomama, _smith: None}, +) + +DISCONNECT_CUSTOM_KEY_STORE: StaticOperationSchema = ( + 23, + n0, + _DCKSi, + 0, + DISCONNECT_CUSTOM_KEY_STORE_INPUT, + DISCONNECT_CUSTOM_KEY_STORE_OUTPUT, + ( + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + ), +) + +ENABLE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _EKI, + {_sSI: _cEKR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +ENABLE_KEY_OUTPUT: StaticSchema = (18, n0, _EKO, {_sSI: _sU, _smith: None}) + +ENABLE_KEY: StaticOperationSchema = ( + 23, + n0, + _EK, + 0, + ENABLE_KEY_INPUT, + ENABLE_KEY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +ROTATION_PERIOD_IN_DAYS_TYPE: StaticSchema = (7, n0, _RPIDT, 0) + +ENABLE_KEY_ROTATION_INPUT: StaticSchema = ( + 18, + n0, + _EKRI, + {_sSI: _cEKRR, _smi: None}, + (_KI, _RPID), + ((KEY_ID_TYPE, 1), (ROTATION_PERIOD_IN_DAYS_TYPE, 0)), +) + +ENABLE_KEY_ROTATION_OUTPUT: StaticSchema = (18, n0, _EKRO, {_sSI: _sU, _smith: None}) + +ENABLE_KEY_ROTATION: StaticOperationSchema = ( + 23, + n0, + _EKR, + 0, + ENABLE_KEY_ROTATION_INPUT, + ENABLE_KEY_ROTATION_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +ENCAPSULATE_INPUT: StaticSchema = ( + 18, + n0, + _EI, + {_sSI: _cER, _smi: None}, + (_KI, _EAnc, _GT, _DR), + ( + (KEY_ID_TYPE, 1), + (ENCAPSULATION_ALGORITHM_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +ENCAPSULATE_OUTPUT: StaticSchema = ( + 18, + n0, + _EO, + {_sSI: _cERo, _smith: None}, + (_KI, _SS, _SSCB, _EAnc), + ( + (KEY_ID_TYPE, 0), + (PLAINTEXT_TYPE, 0), + (CIPHERTEXT_TYPE, 0), + (ENCAPSULATION_ALGORITHM_SPEC, 0), + ), +) + +ENCAPSULATE: StaticOperationSchema = ( + 23, + n0, + _En, + 0, + ENCAPSULATE_INPUT, + ENCAPSULATE_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +ENCRYPT_INPUT: StaticSchema = ( + 18, + n0, + _EIn, + {_sSI: _cERom, _smi: None}, + (_KI, _Pl, _EC, _GT, _EAncr, _DR), + ( + (KEY_ID_TYPE, 1), + (PLAINTEXT_TYPE, 1), + (ENCRYPTION_CONTEXT_TYPE, 0), + (GRANT_TOKEN_LIST, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +ENCRYPT_OUTPUT: StaticSchema = ( + 18, + n0, + _EOn, + {_sSI: _cERoma, _smith: None}, + (_CB, _KI, _EAncr), + ((CIPHERTEXT_TYPE, 0), (KEY_ID_TYPE, 0), (ENCRYPTION_ALGORITHM_SPEC, 0)), +) + +ENCRYPT: StaticOperationSchema = ( + 23, + n0, + _E, + 0, + ENCRYPT_INPUT, + ENCRYPT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +EXPIRED_IMPORT_TOKEN_EXCEPTION: StaticSchema = ( + 18, + n0, + _EITE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ExpiredImportTokenException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +NUMBER_OF_BYTES_TYPE: StaticSchema = (7, n0, _NOBT, 0) + +GENERATE_DATA_KEY_INPUT: StaticSchema = ( + 18, + n0, + _GDKI, + {_sSI: _cGDKR, _smi: None}, + (_KI, _EC, _NOB, _KS, _GT, _Rec, _DR), + ( + (KEY_ID_TYPE, 1), + (ENCRYPTION_CONTEXT_TYPE, 0), + (NUMBER_OF_BYTES_TYPE, 0), + (DATA_KEY_SPEC, 0), + (GRANT_TOKEN_LIST, 0), + (RECIPIENT_INFO, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _GDKO, + {_sSI: _cGDKRo, _smith: None}, + (_CB, _Pl, _KI, _CFR, _KMI), + ( + (CIPHERTEXT_TYPE, 0), + (PLAINTEXT_TYPE, 0), + (KEY_ID_TYPE, 0), + (CIPHERTEXT_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +GENERATE_DATA_KEY: StaticOperationSchema = ( + 23, + n0, + _GDK, + 0, + GENERATE_DATA_KEY_INPUT, + GENERATE_DATA_KEY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +GENERATE_DATA_KEY_PAIR_INPUT: StaticSchema = ( + 18, + n0, + _GDKPI, + {_sSI: _cGDKPR, _smi: None}, + (_EC, _KI, _KPS, _GT, _Rec, _DR), + ( + (ENCRYPTION_CONTEXT_TYPE, 0), + (KEY_ID_TYPE, 1), + (DATA_KEY_PAIR_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (RECIPIENT_INFO, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_PAIR_OUTPUT: StaticSchema = ( + 18, + n0, + _GDKPO, + {_sSI: _cGDKPRo, _smith: None}, + (_PKCB, _PKP, _PKu, _KI, _KPS, _CFR, _KMI), + ( + (CIPHERTEXT_TYPE, 0), + (PLAINTEXT_TYPE, 0), + (PUBLIC_KEY_TYPE, 0), + (KEY_ID_TYPE, 0), + (DATA_KEY_PAIR_SPEC, 0), + (CIPHERTEXT_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_PAIR: StaticOperationSchema = ( + 23, + n0, + _GDKP, + 0, + GENERATE_DATA_KEY_PAIR_INPUT, + GENERATE_DATA_KEY_PAIR_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_INPUT: StaticSchema = ( + 18, + n0, + _GDKPWPI, + {_sSI: _cGDKPWPR, _smi: None}, + (_EC, _KI, _KPS, _GT, _DR), + ( + (ENCRYPTION_CONTEXT_TYPE, 0), + (KEY_ID_TYPE, 1), + (DATA_KEY_PAIR_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_OUTPUT: StaticSchema = ( + 18, + n0, + _GDKPWPO, + {_sSI: _cGDKPWPRo, _smith: None}, + (_PKCB, _PKu, _KI, _KPS, _KMI), + ( + (CIPHERTEXT_TYPE, 0), + (PUBLIC_KEY_TYPE, 0), + (KEY_ID_TYPE, 0), + (DATA_KEY_PAIR_SPEC, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT: StaticOperationSchema = ( + 23, + n0, + _GDKPWP, + 0, + GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_INPUT, + GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_INPUT: StaticSchema = ( + 18, + n0, + _GDKWPI, + {_sSI: _cGDKWPR, _smi: None}, + (_KI, _EC, _KS, _NOB, _GT, _DR), + ( + (KEY_ID_TYPE, 1), + (ENCRYPTION_CONTEXT_TYPE, 0), + (DATA_KEY_SPEC, 0), + (NUMBER_OF_BYTES_TYPE, 0), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_OUTPUT: StaticSchema = ( + 18, + n0, + _GDKWPO, + {_sSI: _cGDKWPRo, _smith: None}, + (_CB, _KI, _KMI), + ((CIPHERTEXT_TYPE, 0), (KEY_ID_TYPE, 0), (BACKING_KEY_ID_TYPE, 0)), +) + +GENERATE_DATA_KEY_WITHOUT_PLAINTEXT: StaticOperationSchema = ( + 23, + n0, + _GDKWP, + 0, + GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_INPUT, + GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +GENERATE_MAC_INPUT: StaticSchema = ( + 18, + n0, + _GMI, + {_sSI: _cGMR, _smi: None}, + (_Me, _KI, _MAa, _GT, _DR), + ( + (PLAINTEXT_TYPE, 1), + (KEY_ID_TYPE, 1), + (MAC_ALGORITHM_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +GENERATE_MAC_OUTPUT: StaticSchema = ( + 18, + n0, + _GMO, + {_sSI: _cGMRo, _smith: None}, + (_Ma, _MAa, _KI), + ((CIPHERTEXT_TYPE, 0), (MAC_ALGORITHM_SPEC, 0), (KEY_ID_TYPE, 0)), +) + +GENERATE_MAC: StaticOperationSchema = ( + 23, + n0, + _GM, + 0, + GENERATE_MAC_INPUT, + GENERATE_MAC_OUTPUT, + ( + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +GENERATE_RANDOM_INPUT: StaticSchema = ( + 18, + n0, + _GRI, + {_sSI: _cGRR, _smi: None}, + (_NOB, _CKSI, _Rec), + ((NUMBER_OF_BYTES_TYPE, 0), (CUSTOM_KEY_STORE_ID_TYPE, 0), (RECIPIENT_INFO, 0)), +) + +GENERATE_RANDOM_OUTPUT: StaticSchema = ( + 18, + n0, + _GRO, + {_sSI: _cGRRo, _smith: None}, + (_Pl, _CFR), + ((PLAINTEXT_TYPE, 0), (CIPHERTEXT_TYPE, 0)), +) + +GENERATE_RANDOM: StaticOperationSchema = ( + 23, + n0, + _GR, + 0, + GENERATE_RANDOM_INPUT, + GENERATE_RANDOM_OUTPUT, + ( + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + DEPENDENCY_TIMEOUT_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +GET_KEY_LAST_USAGE_INPUT: StaticSchema = ( + 18, + n0, + _GKLUI, + {_sSI: _cGKLUR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +KMS_REQUEST_ID_TYPE: StaticSchema = (3, n0, _KRIT, 0) + +KEY_LAST_USAGE_TRACKING_OPERATION: StaticSchema = ( + 14, + n0, + _KLUTO, + 0, + (_D, _DSS, _E, _GDK, _GDKP, _GDKPWP, _GDKWP, _GM, _RE, _S, _V, _VM, _En, _De), + ( + (-1, {_sV: _D}), + (-1, {_sV: _DSS}), + (-1, {_sV: _E}), + (-1, {_sV: _GDK}), + (-1, {_sV: _GDKP}), + (-1, {_sV: _GDKPWP}), + (-1, {_sV: _GDKWP}), + (-1, {_sV: _GM}), + (-1, {_sV: _RE}), + (-1, {_sV: _S}), + (-1, {_sV: _V}), + (-1, {_sV: _VM}), + (-1, {_sV: _En}), + (-1, {_sV: _De}), + ), +) + +KEY_LAST_USAGE_DATA: StaticSchema = ( + 18, + n0, + _KLUD, + 0, + (_Op, _Ti, _CTEI, _KRI), + ( + (KEY_LAST_USAGE_TRACKING_OPERATION, 0), + (DATE_TYPE, 0), + (CLOUD_TRAIL_EVENT_ID_TYPE, 0), + (KMS_REQUEST_ID_TYPE, 0), + ), +) + +GET_KEY_LAST_USAGE_OUTPUT: StaticSchema = ( + 18, + n0, + _GKLUO, + {_sSI: _cGKLURo, _smith: None}, + (_KI, _KLU, _TSD, _KCD), + ((KEY_ID_TYPE, 0), (KEY_LAST_USAGE_DATA, 0), (DATE_TYPE, 0), (DATE_TYPE, 0)), +) + +GET_KEY_LAST_USAGE: StaticOperationSchema = ( + 23, + n0, + _GKLU, + 0, + GET_KEY_LAST_USAGE_INPUT, + GET_KEY_LAST_USAGE_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +POLICY_NAME_TYPE: StaticSchema = (3, n0, _PNT, 0) + +GET_KEY_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GKPI, + {_sSI: _cGKPR, _smi: None}, + (_KI, _PN), + ((KEY_ID_TYPE, 1), (POLICY_NAME_TYPE, 0)), +) + +GET_KEY_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GKPO, + {_sSI: _cGKPRo, _smith: None}, + (_P, _PN), + ((POLICY_TYPE, 0), (POLICY_NAME_TYPE, 0)), +) + +GET_KEY_POLICY: StaticOperationSchema = ( + 23, + n0, + _GKP, + 0, + GET_KEY_POLICY_INPUT, + GET_KEY_POLICY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +GET_KEY_ROTATION_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GKRSI, + {_sSI: _cGKRSR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +GET_KEY_ROTATION_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GKRSO, + {_sSI: _cGKRSRo, _smith: None}, + (_KRE, _KI, _RPID, _NRD, _ODRSD), + ( + (BOOLEAN_TYPE, {_sm: False}), + (KEY_ID_TYPE, 0), + (ROTATION_PERIOD_IN_DAYS_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + ), +) + +GET_KEY_ROTATION_STATUS: StaticOperationSchema = ( + 23, + n0, + _GKRS, + 0, + GET_KEY_ROTATION_STATUS_INPUT, + GET_KEY_ROTATION_STATUS_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +WRAPPING_KEY_SPEC: StaticSchema = ( + 14, + n0, + _WKS, + 0, + (_R, _R_, _R__, _SM), + ((-1, {_sV: _R}), (-1, {_sV: _R_}), (-1, {_sV: _R__}), (-1, {_sV: _SM})), +) + +GET_PARAMETERS_FOR_IMPORT_INPUT: StaticSchema = ( + 18, + n0, + _GPFII, + {_sSI: _cGPFIR, _smi: None}, + (_KI, _WA, _WKS), + ((KEY_ID_TYPE, 1), (ALGORITHM_SPEC, 1), (WRAPPING_KEY_SPEC, 1)), +) + +GET_PARAMETERS_FOR_IMPORT_OUTPUT: StaticSchema = ( + 18, + n0, + _GPFIO, + {_sSI: _cGPFIRo, _smith: None}, + (_KI, _IT, _PKu, _PVT), + ((KEY_ID_TYPE, 0), (CIPHERTEXT_TYPE, 0), (PLAINTEXT_TYPE, 0), (DATE_TYPE, 0)), +) + +GET_PARAMETERS_FOR_IMPORT: StaticOperationSchema = ( + 23, + n0, + _GPFI, + 0, + GET_PARAMETERS_FOR_IMPORT_INPUT, + GET_PARAMETERS_FOR_IMPORT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +GET_PUBLIC_KEY_INPUT: StaticSchema = ( + 18, + n0, + _GPKI, + {_sSI: _cGPKR, _smi: None}, + (_KI, _GT), + ((KEY_ID_TYPE, 1), (GRANT_TOKEN_LIST, 0)), +) + +GET_PUBLIC_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _GPKO, + {_sSI: _cGPKRo, _smith: None}, + (_KI, _PKu, _CMKS, _KS, _KU, _EA, _SAi, _KAA, _EAn), + ( + (KEY_ID_TYPE, 0), + (PUBLIC_KEY_TYPE, 0), + (CUSTOMER_MASTER_KEY_SPEC, 0), + (KEY_SPEC, 0), + (KEY_USAGE_TYPE, 0), + (ENCRYPTION_ALGORITHM_SPEC_LIST, 0), + (SIGNING_ALGORITHM_SPEC_LIST, 0), + (KEY_AGREEMENT_ALGORITHM_SPEC_LIST, 0), + (ENCAPSULATION_ALGORITHM_SPEC_LIST, 0), + ), +) + +GET_PUBLIC_KEY: StaticOperationSchema = ( + 23, + n0, + _GPK, + 0, + GET_PUBLIC_KEY_INPUT, + GET_PUBLIC_KEY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +GRANT_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _GLE, + 0, + (_KI, _GI, _N, _CD, _GP, _RP, _IA, _O, _C, _GSP, _RSP), + ( + (KEY_ID_TYPE, 0), + (GRANT_ID_TYPE, 0), + (GRANT_NAME_TYPE, 0), + (DATE_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (GRANT_OPERATION_LIST, 0), + (GRANT_CONSTRAINTS, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + ), +) + +GRANT_LIST: StaticSchema = (16, n0, _GL, 0, (_m,), ((GRANT_LIST_ENTRY, 0),)) + +IMPORT_TYPE: StaticSchema = ( + 14, + n0, + _ITm, + 0, + (_NKM, _EKM), + ((-1, {_sV: _NKM}), (-1, {_sV: _EKM})), +) + +KEY_MATERIAL_DESCRIPTION_TYPE: StaticSchema = (3, n0, _KMDT, 0) + +IMPORT_KEY_MATERIAL_INPUT: StaticSchema = ( + 18, + n0, + _IKMI, + {_sSI: _cIKMR, _smi: None}, + (_KI, _IT, _EKMn, _VT, _EM, _ITm, _KMD, _KMI), + ( + (KEY_ID_TYPE, 1), + (CIPHERTEXT_TYPE, 1), + (CIPHERTEXT_TYPE, 1), + (DATE_TYPE, 0), + (EXPIRATION_MODEL_TYPE, 0), + (IMPORT_TYPE, 0), + (KEY_MATERIAL_DESCRIPTION_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +IMPORT_KEY_MATERIAL_OUTPUT: StaticSchema = ( + 18, + n0, + _IKMO, + {_sSI: _cIKMRo, _smith: None}, + (_KI, _KMI), + ((KEY_ID_TYPE, 0), (BACKING_KEY_ID_TYPE, 0)), +) + +INCORRECT_KEY_MATERIAL_EXCEPTION: StaticSchema = ( + 18, + n0, + _IKME, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IncorrectKeyMaterialException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +INVALID_IMPORT_TOKEN_EXCEPTION: StaticSchema = ( + 18, + n0, + _IITE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidImportTokenException", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +IMPORT_KEY_MATERIAL: StaticOperationSchema = ( + 23, + n0, + _IKM, + 0, + IMPORT_KEY_MATERIAL_INPUT, + IMPORT_KEY_MATERIAL_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + EXPIRED_IMPORT_TOKEN_EXCEPTION, + INCORRECT_KEY_MATERIAL_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_CIPHERTEXT_EXCEPTION, + INVALID_IMPORT_TOKEN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +IMPORT_STATE: StaticSchema = ( + 14, + n0, + _IS, + 0, + (_IMPORTED, _PI_), + ((-1, {_sV: _IMPORTED}), (-1, {_sV: _PI_})), +) + +INCLUDE_KEY_MATERIAL: StaticSchema = ( + 14, + n0, + _IKMn, + 0, + (_AKM, _RO), + ((-1, {_sV: _AKM}), (-1, {_sV: _RO})), +) + +INVALID_GRANT_ID_EXCEPTION: StaticSchema = ( + 18, + n0, + _IGIE, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidGrantId", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +KEY_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _KLE, + 0, + (_KI, _KAe), + ((KEY_ID_TYPE, 0), (ARN_TYPE, 0)), +) + +KEY_LIST: StaticSchema = (16, n0, _KL, 0, (_m,), ((KEY_LIST_ENTRY, 0),)) + +KEY_MATERIAL_STATE: StaticSchema = ( + 14, + n0, + _KMS, + 0, + (_NC, _CURRENT, _PR, _PMRIAR), + ((-1, {_sV: _NC}), (-1, {_sV: _CURRENT}), (-1, {_sV: _PR}), (-1, {_sV: _PMRIAR})), +) + +KMS_INVALID_MAC_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSIME, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "KMSInvalidMac", "httpResponseCode": 400}), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +KMS_INVALID_SIGNATURE_EXCEPTION: StaticSchema = ( + 18, + n0, + _KMSISEn, + { + _s: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "KMSInvalidSignature", "httpResponseCode": 400} + ), + }, + (_me,), + ((ERROR_MESSAGE_TYPE, 0),), +) + +LIST_ALIASES_INPUT: StaticSchema = ( + 18, + n0, + _LAI, + {_sSI: _cLAR, _smi: None}, + (_KI, _L, _M), + ((KEY_ID_TYPE, 0), (LIMIT_TYPE, 0), (MARKER_TYPE, 0)), +) + +LIST_ALIASES_OUTPUT: StaticSchema = ( + 18, + n0, + _LAO, + {_sSI: _cLARo, _smith: None}, + (_Al, _NM, _Tr), + ((ALIAS_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_ALIASES: StaticOperationSchema = ( + 23, + n0, + _LA, + 0, + LIST_ALIASES_INPUT, + LIST_ALIASES_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +LIST_GRANTS_INPUT: StaticSchema = ( + 18, + n0, + _LGI, + {_sSI: _cLGR, _smi: None}, + (_L, _M, _KI, _GI, _GP, _GSP), + ( + (LIMIT_TYPE, 0), + (MARKER_TYPE, 0), + (KEY_ID_TYPE, 1), + (GRANT_ID_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + ), +) + +LIST_GRANTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LGO, + {_sSI: _cLGRo, _smith: None}, + (_G, _NM, _Tr), + ((GRANT_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_GRANTS: StaticOperationSchema = ( + 23, + n0, + _LG, + 0, + LIST_GRANTS_INPUT, + LIST_GRANTS_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_GRANT_ID_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +LIST_KEY_POLICIES_INPUT: StaticSchema = ( + 18, + n0, + _LKPI, + {_sSI: _cLKPR, _smi: None}, + (_KI, _L, _M), + ((KEY_ID_TYPE, 1), (LIMIT_TYPE, 0), (MARKER_TYPE, 0)), +) + +POLICY_NAME_LIST: StaticSchema = (16, n0, _PNL, 0, (_m,), ((POLICY_NAME_TYPE, 0),)) + +LIST_KEY_POLICIES_OUTPUT: StaticSchema = ( + 18, + n0, + _LKPO, + {_sSI: _cLKPRo, _smith: None}, + (_PNo, _NM, _Tr), + ((POLICY_NAME_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_KEY_POLICIES: StaticOperationSchema = ( + 23, + n0, + _LKP, + 0, + LIST_KEY_POLICIES_INPUT, + LIST_KEY_POLICIES_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +LIST_KEY_ROTATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LKRI, + {_sSI: _cLKRR, _smi: None}, + (_KI, _IKMn, _L, _M), + ((KEY_ID_TYPE, 1), (INCLUDE_KEY_MATERIAL, 0), (LIMIT_TYPE, 0), (MARKER_TYPE, 0)), +) + +ROTATION_TYPE: StaticSchema = ( + 14, + n0, + _RTo, + 0, + (_AUTOMATIC, _OD), + ((-1, {_sV: _AUTOMATIC}), (-1, {_sV: _OD})), +) + +ROTATIONS_LIST_ENTRY: StaticSchema = ( + 18, + n0, + _RLE, + 0, + (_KI, _KMI, _KMD, _IS, _KMS, _EM, _VT, _RD, _RTo), + ( + (KEY_ID_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + (KEY_MATERIAL_DESCRIPTION_TYPE, 0), + (IMPORT_STATE, 0), + (KEY_MATERIAL_STATE, 0), + (EXPIRATION_MODEL_TYPE, 0), + (DATE_TYPE, 0), + (DATE_TYPE, 0), + (ROTATION_TYPE, 0), + ), +) + +ROTATIONS_LIST: StaticSchema = (16, n0, _RL, 0, (_m,), ((ROTATIONS_LIST_ENTRY, 0),)) + +LIST_KEY_ROTATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LKRO, + {_sSI: _cLKRRo, _smith: None}, + (_Ro, _NM, _Tr), + ((ROTATIONS_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_KEY_ROTATIONS: StaticOperationSchema = ( + 23, + n0, + _LKR, + 0, + LIST_KEY_ROTATIONS_INPUT, + LIST_KEY_ROTATIONS_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +LIST_KEYS_INPUT: StaticSchema = ( + 18, + n0, + _LKI, + {_sSI: _cLKR, _smi: None}, + (_L, _M), + ((LIMIT_TYPE, 0), (MARKER_TYPE, 0)), +) + +LIST_KEYS_OUTPUT: StaticSchema = ( + 18, + n0, + _LKO, + {_sSI: _cLKRo, _smith: None}, + (_K, _NM, _Tr), + ((KEY_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_KEYS: StaticOperationSchema = ( + 23, + n0, + _LK, + 0, + LIST_KEYS_INPUT, + LIST_KEYS_OUTPUT, + (DEPENDENCY_TIMEOUT_EXCEPTION, INVALID_MARKER_EXCEPTION, KMS_INTERNAL_EXCEPTION), +) + +LIST_RESOURCE_TAGS_INPUT: StaticSchema = ( + 18, + n0, + _LRTI, + {_sSI: _cLRTR, _smi: None}, + (_KI, _L, _M), + ((KEY_ID_TYPE, 1), (LIMIT_TYPE, 0), (MARKER_TYPE, 0)), +) + +LIST_RESOURCE_TAGS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRTO, + {_sSI: _cLRTRo, _smith: None}, + (_Ta, _NM, _Tr), + ((TAG_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_RESOURCE_TAGS: StaticOperationSchema = ( + 23, + n0, + _LRT, + 0, + LIST_RESOURCE_TAGS_INPUT, + LIST_RESOURCE_TAGS_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +LIST_RETIRABLE_GRANTS_INPUT: StaticSchema = ( + 18, + n0, + _LRGI, + {_sSI: _cLRGR, _smi: None}, + (_L, _M, _RP, _RSP), + ( + (LIMIT_TYPE, 0), + (MARKER_TYPE, 0), + (PRINCIPAL_ID_TYPE, 0), + (SERVICE_PRINCIPAL_TYPE, 0), + ), +) + +LIST_RETIRABLE_GRANTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LRGO, + {_sSI: _cLGRo, _smith: None}, + (_G, _NM, _Tr), + ((GRANT_LIST, 0), (MARKER_TYPE, 0), (BOOLEAN_TYPE, {_sm: False})), +) + +LIST_RETIRABLE_GRANTS: StaticOperationSchema = ( + 23, + n0, + _LRG, + 0, + LIST_RETIRABLE_GRANTS_INPUT, + LIST_RETIRABLE_GRANTS_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_MARKER_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +MESSAGE_TYPE: StaticSchema = ( + 14, + n0, + _MTe, + 0, + (_RAW, _DIGEST, _EM_), + ((-1, {_sV: _RAW}), (-1, {_sV: _DIGEST}), (-1, {_sV: _EM_})), +) + +PUT_KEY_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PKPI, + {_sSI: _cPKPR, _smi: None}, + (_KI, _PN, _P, _BPLSC), + ( + (KEY_ID_TYPE, 1), + (POLICY_NAME_TYPE, 0), + (POLICY_TYPE, 1), + (BOOLEAN_TYPE, {_sm: False}), + ), +) + +PUT_KEY_POLICY_OUTPUT: StaticSchema = (18, n0, _PKPO, {_sSI: _sU, _smith: None}) + +PUT_KEY_POLICY: StaticOperationSchema = ( + 23, + n0, + _PKPu, + 0, + PUT_KEY_POLICY_INPUT, + PUT_KEY_POLICY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +RE_ENCRYPT_INPUT: StaticSchema = ( + 18, + n0, + _REI, + {_sSI: _cRER, _smi: None}, + (_CB, _SEC, _SKI, _DKIe, _DEC, _SEA, _DEA, _GT, _DR, _DRM), + ( + (CIPHERTEXT_TYPE, 0), + (ENCRYPTION_CONTEXT_TYPE, 0), + (KEY_ID_TYPE, 0), + (KEY_ID_TYPE, 1), + (ENCRYPTION_CONTEXT_TYPE, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + (DRY_RUN_MODIFIER_LIST, 0), + ), +) + +RE_ENCRYPT_OUTPUT: StaticSchema = ( + 18, + n0, + _REO, + {_sSI: _cRERo, _smith: None}, + (_CB, _SKI, _KI, _SEA, _DEA, _SKMI, _DKMI), + ( + (CIPHERTEXT_TYPE, 0), + (KEY_ID_TYPE, 0), + (KEY_ID_TYPE, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (ENCRYPTION_ALGORITHM_SPEC, 0), + (BACKING_KEY_ID_TYPE, 0), + (BACKING_KEY_ID_TYPE, 0), + ), +) + +RE_ENCRYPT: StaticOperationSchema = ( + 23, + n0, + _RE, + 0, + RE_ENCRYPT_INPUT, + RE_ENCRYPT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INCORRECT_KEY_EXCEPTION, + INVALID_CIPHERTEXT_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +REPLICATE_KEY_INPUT: StaticSchema = ( + 18, + n0, + _RKI, + {_sSI: _cRKR, _smi: None}, + (_KI, _RR, _P, _BPLSC, _Des, _Ta), + ( + (KEY_ID_TYPE, 1), + (REGION_TYPE, 1), + (POLICY_TYPE, 0), + (BOOLEAN_TYPE, {_sm: False}), + (DESCRIPTION_TYPE, 0), + (TAG_LIST, 0), + ), +) + +REPLICATE_KEY_OUTPUT: StaticSchema = ( + 18, + n0, + _RKO, + {_sSI: _cRKRo, _smith: None}, + (_RKM, _RPe, _RTe), + ((KEY_METADATA, 0), (POLICY_TYPE, 0), (TAG_LIST, 0)), +) + +REPLICATE_KEY: StaticOperationSchema = ( + 23, + n0, + _RKe, + 0, + REPLICATE_KEY_INPUT, + REPLICATE_KEY_OUTPUT, + ( + ALREADY_EXISTS_EXCEPTION, + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + MALFORMED_POLICY_DOCUMENT_EXCEPTION, + NOT_FOUND_EXCEPTION, + TAG_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +RETIRE_GRANT_INPUT: StaticSchema = ( + 18, + n0, + _RGI, + {_sSI: _cRGR, _smi: None}, + (_GTr, _KI, _GI, _DR), + ( + (GRANT_TOKEN_TYPE, 0), + (KEY_ID_TYPE, 0), + (GRANT_ID_TYPE, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +RETIRE_GRANT_OUTPUT: StaticSchema = (18, n0, _RGO, {_sSI: _sU, _smith: None}) + +RETIRE_GRANT: StaticOperationSchema = ( + 23, + n0, + _RG, + 0, + RETIRE_GRANT_INPUT, + RETIRE_GRANT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_GRANT_ID_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +REVOKE_GRANT_INPUT: StaticSchema = ( + 18, + n0, + _RGIe, + {_sSI: _cRGRo, _smi: None}, + (_KI, _GI, _DR), + ((KEY_ID_TYPE, 1), (GRANT_ID_TYPE, 1), (NULLABLE_BOOLEAN_TYPE, 0)), +) + +REVOKE_GRANT_OUTPUT: StaticSchema = (18, n0, _RGOe, {_sSI: _sU, _smith: None}) + +REVOKE_GRANT: StaticOperationSchema = ( + 23, + n0, + _RGe, + 0, + REVOKE_GRANT_INPUT, + REVOKE_GRANT_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_ARN_EXCEPTION, + INVALID_GRANT_ID_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +ROTATE_KEY_ON_DEMAND_INPUT: StaticSchema = ( + 18, + n0, + _RKODI, + {_sSI: _cRKODR, _smi: None}, + (_KI,), + ((KEY_ID_TYPE, 1),), +) + +ROTATE_KEY_ON_DEMAND_OUTPUT: StaticSchema = ( + 18, + n0, + _RKODO, + {_sSI: _cRKODRo, _smith: None}, + (_KI,), + ((KEY_ID_TYPE, 0),), +) + +ROTATE_KEY_ON_DEMAND: StaticOperationSchema = ( + 23, + n0, + _RKOD, + 0, + ROTATE_KEY_ON_DEMAND_INPUT, + ROTATE_KEY_ON_DEMAND_OUTPUT, + ( + CONFLICT_EXCEPTION, + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +SCHEDULE_KEY_DELETION_INPUT: StaticSchema = ( + 18, + n0, + _SKDI, + {_sSI: _cSKDR, _smi: None}, + (_KI, _PWID), + ((KEY_ID_TYPE, 1), (PENDING_WINDOW_IN_DAYS_TYPE, 0)), +) + +SCHEDULE_KEY_DELETION_OUTPUT: StaticSchema = ( + 18, + n0, + _SKDO, + {_sSI: _cSKDRo, _smith: None}, + (_KI, _DD, _KSe, _PWID), + ( + (KEY_ID_TYPE, 0), + (DATE_TYPE, 0), + (KEY_STATE, 0), + (PENDING_WINDOW_IN_DAYS_TYPE, 0), + ), +) + +SCHEDULE_KEY_DELETION: StaticOperationSchema = ( + 23, + n0, + _SKD, + 0, + SCHEDULE_KEY_DELETION_INPUT, + SCHEDULE_KEY_DELETION_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +SIGN_INPUT: StaticSchema = ( + 18, + n0, + _SI, + {_sSI: _cSR, _smi: None}, + (_KI, _Me, _MTe, _GT, _SAig, _DR), + ( + (KEY_ID_TYPE, 1), + (PLAINTEXT_TYPE, 1), + (MESSAGE_TYPE, 0), + (GRANT_TOKEN_LIST, 0), + (SIGNING_ALGORITHM_SPEC, 1), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +SIGN_OUTPUT: StaticSchema = ( + 18, + n0, + _SO, + {_sSI: _cSRo, _smith: None}, + (_KI, _Si, _SAig), + ((KEY_ID_TYPE, 0), (CIPHERTEXT_TYPE, 0), (SIGNING_ALGORITHM_SPEC, 0)), +) + +SIGN: StaticOperationSchema = ( + 23, + n0, + _S, + 0, + SIGN_INPUT, + SIGN_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_m,), ((TAG_KEY_TYPE, 0),)) + +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sSI: _cTRR, _smi: None}, + (_KI, _Ta), + ((KEY_ID_TYPE, 1), (TAG_LIST, 1)), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_sSI: _sU, _smith: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TR, + 0, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + TAG_EXCEPTION, + ), +) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sSI: _cURR, _smi: None}, + (_KI, _TKa), + ((KEY_ID_TYPE, 1), (TAG_KEY_LIST, 1)), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_sSI: _sU, _smith: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + 0, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + ( + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + TAG_EXCEPTION, + ), +) + +UPDATE_ALIAS_INPUT: StaticSchema = ( + 18, + n0, + _UAI, + {_sSI: _cUAR, _smi: None}, + (_AN, _TKI), + ((ALIAS_NAME_TYPE, 1), (KEY_ID_TYPE, 1)), +) + +UPDATE_ALIAS_OUTPUT: StaticSchema = (18, n0, _UAO, {_sSI: _sU, _smith: None}) + +UPDATE_ALIAS: StaticOperationSchema = ( + 23, + n0, + _UA, + 0, + UPDATE_ALIAS_INPUT, + UPDATE_ALIAS_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + LIMIT_EXCEEDED_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +UPDATE_CUSTOM_KEY_STORE_INPUT: StaticSchema = ( + 18, + n0, + _UCKSI, + {_sSI: _cUCKSR, _smi: None}, + (_CKSI, _NCKSN, _KSP, _CHCI, _XPUE, _XPUP, _XPVESN, _XPVESO, _XPAC, _XPC), + ( + (CUSTOM_KEY_STORE_ID_TYPE, 1), + (CUSTOM_KEY_STORE_NAME_TYPE, 0), + (KEY_STORE_PASSWORD_TYPE, 0), + (CLOUD_HSM_CLUSTER_ID_TYPE, 0), + (XKS_PROXY_URI_ENDPOINT_TYPE, 0), + (XKS_PROXY_URI_PATH_TYPE, 0), + (XKS_PROXY_VPC_ENDPOINT_SERVICE_NAME_TYPE, 0), + (ACCOUNT_ID_TYPE, 0), + (XKS_PROXY_AUTHENTICATION_CREDENTIAL_TYPE, 0), + (XKS_PROXY_CONNECTIVITY_TYPE, 0), + ), +) + +UPDATE_CUSTOM_KEY_STORE_OUTPUT: StaticSchema = ( + 18, + n0, + _UCKSO, + {_sSI: _cUCKSRo, _smith: None}, +) + +UPDATE_CUSTOM_KEY_STORE: StaticOperationSchema = ( + 23, + n0, + _UCKS, + 0, + UPDATE_CUSTOM_KEY_STORE_INPUT, + UPDATE_CUSTOM_KEY_STORE_OUTPUT, + ( + CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_ACTIVE_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_FOUND_EXCEPTION, + CLOUD_HSM_CLUSTER_NOT_RELATED_EXCEPTION, + CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION, + CUSTOM_KEY_STORE_NAME_IN_USE_EXCEPTION, + CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + XKS_PROXY_INCORRECT_AUTHENTICATION_CREDENTIAL_EXCEPTION, + XKS_PROXY_INVALID_CONFIGURATION_EXCEPTION, + XKS_PROXY_INVALID_RESPONSE_EXCEPTION, + XKS_PROXY_URI_ENDPOINT_IN_USE_EXCEPTION, + XKS_PROXY_URI_IN_USE_EXCEPTION, + XKS_PROXY_URI_UNREACHABLE_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_IN_USE_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION_EXCEPTION, + XKS_PROXY_VPC_ENDPOINT_SERVICE_NOT_FOUND_EXCEPTION, + ), +) + +UPDATE_KEY_DESCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _UKDI, + {_sSI: _cUKDR, _smi: None}, + (_KI, _Des), + ((KEY_ID_TYPE, 1), (DESCRIPTION_TYPE, 1)), +) + +UPDATE_KEY_DESCRIPTION_OUTPUT: StaticSchema = (18, n0, _UKDO, {_sSI: _sU, _smith: None}) + +UPDATE_KEY_DESCRIPTION: StaticOperationSchema = ( + 23, + n0, + _UKD, + 0, + UPDATE_KEY_DESCRIPTION_INPUT, + UPDATE_KEY_DESCRIPTION_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +UPDATE_PRIMARY_REGION_INPUT: StaticSchema = ( + 18, + n0, + _UPRI, + {_sSI: _cUPRR, _smi: None}, + (_KI, _PRr), + ((KEY_ID_TYPE, 1), (REGION_TYPE, 1)), +) + +UPDATE_PRIMARY_REGION_OUTPUT: StaticSchema = (18, n0, _UPRO, {_sSI: _sU, _smith: None}) + +UPDATE_PRIMARY_REGION: StaticOperationSchema = ( + 23, + n0, + _UPR, + 0, + UPDATE_PRIMARY_REGION_INPUT, + UPDATE_PRIMARY_REGION_OUTPUT, + ( + DISABLED_EXCEPTION, + INVALID_ARN_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + UNSUPPORTED_OPERATION_EXCEPTION, + ), +) + +VERIFY_INPUT: StaticSchema = ( + 18, + n0, + _VI, + {_sSI: _cVR, _smi: None}, + (_KI, _Me, _MTe, _Si, _SAig, _GT, _DR), + ( + (KEY_ID_TYPE, 1), + (PLAINTEXT_TYPE, 1), + (MESSAGE_TYPE, 0), + (CIPHERTEXT_TYPE, 1), + (SIGNING_ALGORITHM_SPEC, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +VERIFY_OUTPUT: StaticSchema = ( + 18, + n0, + _VO, + {_sSI: _cVRo, _smith: None}, + (_KI, _SVi, _SAig), + ((KEY_ID_TYPE, 0), (BOOLEAN_TYPE, {_sm: False}), (SIGNING_ALGORITHM_SPEC, 0)), +) + +VERIFY: StaticOperationSchema = ( + 23, + n0, + _V, + 0, + VERIFY_INPUT, + VERIFY_OUTPUT, + ( + DEPENDENCY_TIMEOUT_EXCEPTION, + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_SIGNATURE_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +VERIFY_MAC_INPUT: StaticSchema = ( + 18, + n0, + _VMI, + {_sSI: _cVMR, _smi: None}, + (_Me, _KI, _MAa, _Ma, _GT, _DR), + ( + (PLAINTEXT_TYPE, 1), + (KEY_ID_TYPE, 1), + (MAC_ALGORITHM_SPEC, 1), + (CIPHERTEXT_TYPE, 1), + (GRANT_TOKEN_LIST, 0), + (NULLABLE_BOOLEAN_TYPE, 0), + ), +) + +VERIFY_MAC_OUTPUT: StaticSchema = ( + 18, + n0, + _VMO, + {_sSI: _cVMRo, _smith: None}, + (_KI, _MV, _MAa), + ((KEY_ID_TYPE, 0), (BOOLEAN_TYPE, {_sm: False}), (MAC_ALGORITHM_SPEC, 0)), +) + +VERIFY_MAC: StaticOperationSchema = ( + 23, + n0, + _VM, + 0, + VERIFY_MAC_INPUT, + VERIFY_MAC_OUTPUT, + ( + DISABLED_EXCEPTION, + DRY_RUN_OPERATION_EXCEPTION, + INVALID_GRANT_TOKEN_EXCEPTION, + INVALID_KEY_USAGE_EXCEPTION, + KEY_UNAVAILABLE_EXCEPTION, + KMS_INTERNAL_EXCEPTION, + KMS_INVALID_MAC_EXCEPTION, + KMS_INVALID_STATE_EXCEPTION, + NOT_FOUND_EXCEPTION, + ), +) + +TRENT_SERVICE: StaticSchema = ( + 21, + n0, + _TS, + { + _a: MappingProxyType({"name": "kms"}), + _a_: None, + _aw: MappingProxyType( + { + "sdkId": "KMS", + "arnNamespace": "kms", + "cloudFormationName": "KMS", + "cloudTrailEventSource": "kms.amazonaws.com", + "endpointPrefix": "kms", + } + ), + _sN: MappingProxyType({"uri": "https://trent.amazonaws.com/doc/2014-11-01/"}), + }, +) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/aio/__init__.py b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/__init__.py new file mode 100644 index 00000000..a1b8725e --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncKMSClient + from .config import AsyncKMSConfig + +__all__ = ["AsyncKMSClient", "AsyncKMSConfig"] + +_EXPORTS = {"AsyncKMSClient": ".client", "AsyncKMSConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/aio/client.py b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/client.py new file mode 100644 index 00000000..6723e60b --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/client.py @@ -0,0 +1,4971 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncKMSConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + CancelKeyDeletionInput, + CancelKeyDeletionOutput, + ConnectCustomKeyStoreInput, + ConnectCustomKeyStoreOutput, + CreateAliasInput, + CreateAliasOutput, + CreateCustomKeyStoreInput, + CreateCustomKeyStoreOutput, + CreateGrantInput, + CreateGrantOutput, + CreateKeyInput, + CreateKeyOutput, + DecapsulateInput, + DecapsulateOutput, + DecryptInput, + DecryptOutput, + DeleteAliasInput, + DeleteAliasOutput, + DeleteCustomKeyStoreInput, + DeleteCustomKeyStoreOutput, + DeleteImportedKeyMaterialInput, + DeleteImportedKeyMaterialOutput, + DeriveSharedSecretInput, + DeriveSharedSecretOutput, + DescribeCustomKeyStoresInput, + DescribeCustomKeyStoresOutput, + DescribeKeyInput, + DescribeKeyOutput, + DisableKeyInput, + DisableKeyOutput, + DisableKeyRotationInput, + DisableKeyRotationOutput, + DisconnectCustomKeyStoreInput, + DisconnectCustomKeyStoreOutput, + EnableKeyInput, + EnableKeyOutput, + EnableKeyRotationInput, + EnableKeyRotationOutput, + EncapsulateInput, + EncapsulateOutput, + EncryptInput, + EncryptOutput, + GenerateDataKeyInput, + GenerateDataKeyOutput, + GenerateDataKeyPairInput, + GenerateDataKeyPairOutput, + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + GenerateMacInput, + GenerateMacOutput, + GenerateRandomInput, + GenerateRandomOutput, + GetKeyLastUsageInput, + GetKeyLastUsageOutput, + GetKeyPolicyInput, + GetKeyPolicyOutput, + GetKeyRotationStatusInput, + GetKeyRotationStatusOutput, + GetParametersForImportInput, + GetParametersForImportOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + ImportKeyMaterialInput, + ImportKeyMaterialOutput, + ListAliasesInput, + ListAliasesOutput, + ListGrantsInput, + ListGrantsOutput, + ListKeyPoliciesInput, + ListKeyPoliciesOutput, + ListKeyRotationsInput, + ListKeyRotationsOutput, + ListKeysInput, + ListKeysOutput, + ListResourceTagsInput, + ListResourceTagsOutput, + ListRetirableGrantsInput, + ListRetirableGrantsOutput, + PutKeyPolicyInput, + PutKeyPolicyOutput, + ReEncryptInput, + ReEncryptOutput, + ReplicateKeyInput, + ReplicateKeyOutput, + RetireGrantInput, + RetireGrantOutput, + RevokeGrantInput, + RevokeGrantOutput, + RotateKeyOnDemandInput, + RotateKeyOnDemandOutput, + ScheduleKeyDeletionInput, + ScheduleKeyDeletionOutput, + SignInput, + SignOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAliasInput, + UpdateAliasOutput, + UpdateCustomKeyStoreInput, + UpdateCustomKeyStoreOutput, + UpdateKeyDescriptionInput, + UpdateKeyDescriptionOutput, + UpdatePrimaryRegionInput, + UpdatePrimaryRegionOutput, + VerifyInput, + VerifyMacInput, + VerifyMacOutput, + VerifyOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncKMSClient(AsyncClient[AsyncKMSConfig]): + """ + Key Management Service (KMS) is an encryption and key management web + service. This guide describes the KMS operations that you can call + programmatically. For general information about KMS, see the [*Key + Management Service Developer + Guide*](https://docs.aws.amazon.com/kms/latest/developerguide/) . + + Note: + KMS has replaced the term *customer master key (CMK)* with *Key + Management Service key* and *KMS key*. The concept has not changed. To + prevent breaking changes, KMS is keeping some variations of this term. + + Amazon Web Services provides SDKs that consist of libraries and sample + code for various programming languages and platforms (Java, Rust, + Python, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient + way to create programmatic access to KMS and other Amazon Web Services + services. For example, the SDKs take care of tasks such as signing + requests (see below), managing errors, and retrying requests + automatically. For more information about the Amazon Web Services SDKs, + including how to download and install them, see [Tools for Amazon Web + Services](http://aws.amazon.com/tools/). + + We recommend that you use the Amazon Web Services SDKs to make + programmatic API calls to KMS. + + If you need to use FIPS 140-2 validated cryptographic modules when + communicating with Amazon Web Services, use one of the FIPS endpoints in + your preferred Amazon Web Services Region. If you need communicate over + IPv6, use the dual-stack endpoint in your preferred Amazon Web Services + Region. For more information see [Service + endpoints](https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) + in the Key Management Service topic of the *Amazon Web Services General + Reference* and [Dual-stack endpoint + support](https://docs.aws.amazon.com/kms/latest/developerguide/ipv6-kms.html) + in the KMS Developer Guide. + + All KMS API calls must be signed and be transmitted using Transport + Layer Security (TLS). KMS recommends you always use the latest supported + TLS version. Clients must also support cipher suites with Perfect + Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic + Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java + 7 and later support these modes. + + Note: + With current technology, brute force attacks on KMS TLS cipher suite key + exchange mechanisms are not feasible. However, cipher suites that use + Rivest--Shamir--Adleman (RSA) or Diffie-Hellman (DH) key exchange will + be susceptible if large-scale quantum computing becomes practical. [NIST + IR 8547](https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf) + on the NIST website establishes a timeline to phase out + quantum-vulnerable algorithms by 2030 and disallow them entirely by + 2035. If your applications rely on the long-term confidentiality of KMS + API traffic, we recommend that you [use post-quantum TLS with + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqtls.html). + For more information about post-quantum cybersecurity, see [Post-Quantum + Cybersecurity + Resources](https://www.nsa.gov/Cybersecurity/Post-Quantum-Cybersecurity-Resources/) + on the National Security Agency (NSA) website. + + **Signing Requests** + + Requests must be signed using an access key ID and a secret access key. + We strongly recommend that you do not use your Amazon Web Services + account root access key ID and secret access key for everyday work. You + can use the access key ID and secret access key for an IAM user or you + can use the Security Token Service (STS) to generate temporary security + credentials and use those to sign requests. + + All KMS requests must be signed with [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + **Logging API Requests** + + KMS supports CloudTrail, a service that logs Amazon Web Services API + calls and related events for your Amazon Web Services account and + delivers them to an Amazon S3 bucket that you specify. By using the + information collected by CloudTrail, you can determine what requests + were made to KMS, who made the request, when it was made, and so on. To + learn more about CloudTrail, including how to turn it on and find your + log files, see the [CloudTrail User + Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). + + **Additional Resources** + + For more information about credentials and request signing, see the + following: + + - [Amazon Web Services Security + Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) - + This topic provides general information about the types of credentials + used to access Amazon Web Services. + + - [Temporary Security + Credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) - + This section of the *IAM User Guide* describes how to create and use + temporary security credentials. + + - [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) - + This set of topics walks you through the process of signing a request + using an access key ID and a secret access key. + + **Commonly Used API Operations** + + Of the API operations discussed in this guide, the following will prove + the most useful for most applications. You will likely perform + operations other than these, such as creating keys and assigning + policies, by using the console. + + - Encrypt + + - Decrypt + + - GenerateDataKey + + - GenerateDataKeyWithoutPlaintext + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def cancel_key_deletion( + self, input: CancelKeyDeletionInput, plugins: list[Plugin] | None = None + ) -> CancelKeyDeletionOutput: + """ + Cancels the deletion of a KMS key. When this operation succeeds, the key + state of the KMS key is `Disabled`. To enable the KMS key, use + EnableKey. + + For more information about scheduling and canceling deletion of a KMS + key, see [Deleting KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CancelKeyDeletionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelKeyDeletionOutput`. + """ + return await self._invoke(input, _models.CANCEL_KEY_DELETION, [], plugins) + + async def connect_custom_key_store( + self, input: ConnectCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> ConnectCustomKeyStoreOutput: + """ + Connects or reconnects a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + to its backing key store. For an CloudHSM key store, + `ConnectCustomKeyStore` connects the key store to its associated + CloudHSM cluster. For an external key store, `ConnectCustomKeyStore` + connects the key store to the external key store proxy that communicates + with your external key manager. + + The custom key store must be connected before you can create KMS keys in + the key store or use the KMS keys it contains. You can disconnect and + reconnect a custom key store at any time. + + The connection process for a custom key store can take an extended + amount of time to complete. This operation starts the connection + process, but it does not wait for it to complete. When it succeeds, this + operation quickly returns an HTTP 200 response and a JSON object with no + properties. However, this response does not indicate that the custom key + store is connected. To get the connection state of the custom key store, + use the DescribeCustomKeyStores operation. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + The `ConnectCustomKeyStore` operation might fail for various reasons. To + find the reason, use the DescribeCustomKeyStores operation and see the + `ConnectionErrorCode` in the response. For help interpreting the + `ConnectionErrorCode`, see CustomKeyStoresListEntry. + + To fix the failure, use the DisconnectCustomKeyStore operation to + disconnect the custom key store, correct the error, use the + UpdateCustomKeyStore operation if necessary, and then use + `ConnectCustomKeyStore` again. + + **CloudHSM key store** + + During the connection process for an CloudHSM key store, KMS finds the + CloudHSM cluster that is associated with the custom key store, creates + the connection infrastructure, connects to the cluster, logs into the + CloudHSM client as the `kmsuser` CU, and rotates its password. + + To connect an CloudHSM key store, its associated CloudHSM cluster must + have at least one active HSM. To get the number of active HSMs in a + cluster, use the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. To add HSMs to the cluster, use the + [CreateHsm](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) + operation. Also, the [`kmsuser` crypto + user](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser) + (CU) must not be logged into the cluster. This prevents KMS from using + this account to log in. + + If you are having trouble connecting or disconnecting a CloudHSM key + store, see [Troubleshooting an CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) + in the *Key Management Service Developer Guide*. + + **External key store** + + When you connect an external key store that uses public endpoint + connectivity, KMS tests its ability to communicate with your external + key manager by sending a request via the external key store proxy. + + When you connect to an external key store that uses VPC endpoint service + connectivity, KMS establishes the networking elements that it needs to + communicate with your external key manager via the external key store + proxy. This includes creating an interface endpoint to the VPC endpoint + service and a private hosted zone for traffic between KMS and the VPC + endpoint service. + + To connect an external key store, KMS must be able to connect to the + external key store proxy, the external key store proxy must be able to + communicate with your external key manager, and the external key manager + must be available for cryptographic operations. + + If you are having trouble connecting or disconnecting an external key + store, see [Troubleshooting an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations** + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ConnectCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ConnectCustomKeyStoreOutput`. + """ + return await self._invoke(input, _models.CONNECT_CUSTOM_KEY_STORE, [], plugins) + + async def create_alias( + self, input: CreateAliasInput, plugins: list[Plugin] | None = None + ) -> CreateAliasOutput: + """ + Creates a friendly name for a KMS key. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + You can use an alias to identify a KMS key in the KMS console, in the + DescribeKey operation and in [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations), + such as Encrypt and GenerateDataKey. You can also change the KMS key + that's associated with the alias (UpdateAlias) or delete the alias + (DeleteAlias) at any time. These operations don't affect the underlying + KMS key. + + You can associate the alias with any customer managed key in the same + Amazon Web Services Region. Each alias is associated with only one KMS + key at a time, but a KMS key can have multiple aliases. A valid KMS key + is required. You can't create an alias without a KMS key. + + The alias must be unique in the account and Region, but you can have + aliases with the same name in different Regions. For detailed + information about aliases, see [Aliases in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) + in the *Key Management Service Developer Guide*. + + This operation does not return a response. To get the alias that you + created, use the ListAliases operation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on an alias + in a different Amazon Web Services account. + + **Required permissions** + + - [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - DeleteAlias + + - ListAliases + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAliasOutput`. + """ + return await self._invoke(input, _models.CREATE_ALIAS, [], plugins) + + async def create_custom_key_store( + self, input: CreateCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> CreateCustomKeyStoreOutput: + """ + Creates a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + backed by a key store that you own and manage. When you use a KMS key in + a custom key store for a cryptographic operation, the cryptographic + operation is actually performed in your key store using your keys. KMS + supports [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) + backed by an [CloudHSM + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html) + and [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html) + backed by an external key store proxy and external key manager outside + of Amazon Web Services. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + Before you create the custom key store, the required elements must be in + place and operational. We recommend that you use the test tools that KMS + provides to verify the configuration your external key store proxy. For + details about the required elements and verification tests, see + [Assemble the prerequisites (for CloudHSM key + stores)](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) + or [Assemble the prerequisites (for external key + stores)](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements) + in the *Key Management Service Developer Guide*. + + To create a custom key store, use the following parameters. + + - To create an CloudHSM key store, specify the `CustomKeyStoreName`, + `CloudHsmClusterId`, `KeyStorePassword`, and `TrustAnchorCertificate`. + The `CustomKeyStoreType` parameter is optional for CloudHSM key + stores. If you include it, set it to the default value, + `AWS_CLOUDHSM`. For help with failures, see [Troubleshooting an + CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) + in the *Key Management Service Developer Guide*. + + - To create an external key store, specify the `CustomKeyStoreName` and + a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. Also, specify values + for `XksProxyConnectivity`, `XksProxyAuthenticationCredential`, + `XksProxyUriEndpoint`, and `XksProxyUriPath`. If your + `XksProxyConnectivity` value is `VPC_ENDPOINT_SERVICE`, specify the + `XksProxyVpcEndpointServiceName` parameter. For help with failures, + see [Troubleshooting an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html) + in the *Key Management Service Developer Guide*. + + Note: + For external key stores: + + Some external key managers provide a simpler method for creating an + external key store. For details, see your external key manager + documentation. + + When creating an external key store in the KMS console, you can upload a + JSON-based proxy configuration file with the desired values. You cannot + use a proxy configuration with the `CreateCustomKeyStore` operation. + However, you can use the values in the file to help you determine the + correct values for the `CreateCustomKeyStore` parameters. + + When the operation completes successfully, it returns the ID of the new + custom key store. Before you can use your new custom key store, you need + to use the ConnectCustomKeyStore operation to connect a new CloudHSM key + store to its CloudHSM cluster, or to connect a new external key store to + the external key store proxy for your external key manager. Even if you + are not going to use your custom key store immediately, you might want + to connect it to verify that all settings are correct and then + disconnect it until you are ready to use it. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). + + **Related operations:** + + - ConnectCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomKeyStoreOutput`. + """ + return await self._invoke(input, _models.CREATE_CUSTOM_KEY_STORE, [], plugins) + + async def create_grant( + self, input: CreateGrantInput, plugins: list[Plugin] | None = None + ) -> CreateGrantOutput: + """ + Adds a grant to a KMS key. + + A *grant* is a policy instrument that allows Amazon Web Services + principals to use KMS keys in cryptographic operations. It also can + allow them to view a KMS key (DescribeKey) and create and manage grants. + When authorizing access to a KMS key, grants are considered along with + key policies and IAM policies. Grants are often used for temporary + permissions because you can create one, use its permissions, and delete + it without changing your key policies or IAM policies. + + You can create a grant for an Amazon Web Services principal (IAM user, + IAM role, or Amazon Web Services account) by specifying the + `GranteePrincipal` parameter. You can also create a grant for an Amazon + Web Services service principal by specifying the + `GranteeServicePrincipal` parameter. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + The `CreateGrant` operation returns a `GrantToken` and a `GrantId`. + + - When you create, retire, or revoke a grant, there might be a brief + delay, usually less than five minutes, until the grant is available + throughout KMS. This state is known as *eventual consistency*. Once + the grant has achieved eventual consistency, the grantee principal can + use the permissions in the grant without identifying the grant. + + However, to use the permissions in the grant immediately, use the + `GrantToken` that `CreateGrant` returns. For details, see [Using a + grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the Key Management Service Developer Guide . + + - The `CreateGrant` operation also returns a `GrantId`. You can use the + `GrantId` and a key identifier to identify the grant in the + RetireGrant and RevokeGrant operations. To find the grant ID, use the + ListGrants or ListRetirableGrants operations. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - ListGrants + + - ListRetirableGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGrantOutput`. + """ + return await self._invoke(input, _models.CREATE_GRANT, [], plugins) + + async def create_key( + self, input: CreateKeyInput, plugins: list[Plugin] | None = None + ) -> CreateKeyOutput: + """ + Creates a unique customer managed [KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys) + in your Amazon Web Services account and Region. You can use a KMS key in + cryptographic operations, such as encryption and signing. Some Amazon + Web Services services let you use KMS keys that you create and manage to + protect your service resources. + + A KMS key is a logical representation of a cryptographic key. In + addition to the key material used in cryptographic operations, a KMS key + includes metadata, such as the key ID, key policy, creation date, + description, and key state. + + Use the parameters of `CreateKey` to specify the type of KMS key, the + source of its key material, its key policy, description, tags, and other + properties. + + Note: + KMS has replaced the term *customer master key (CMK)* with *Key + Management Service key* and *KMS key*. The concept has not changed. To + prevent breaking changes, KMS is keeping some variations of this term. + + To create different types of KMS keys, use the following guidance: + + Symmetric encryption KMS key + + : By default, `CreateKey` creates a symmetric encryption KMS key with + key material that KMS generates. This is the basic and most widely + used type of KMS key, and provides the best performance. + + To create a symmetric encryption KMS key, you don't need to specify + any parameters. The default value for `KeySpec`, `SYMMETRIC_DEFAULT`, + the default value for `KeyUsage`, `ENCRYPT_DECRYPT`, and the default + value for `Origin`, `AWS_KMS`, create a symmetric encryption KMS key + with KMS key material. + + If you need a key for basic encryption and decryption or you are + creating a KMS key to protect your resources in an Amazon Web Services + service, create a symmetric encryption KMS key. The key material in a + symmetric encryption key never leaves KMS unencrypted. You can use a + symmetric encryption KMS key to encrypt and decrypt data up to 4,096 + bytes, but they are typically used to generate data keys and data keys + pairs. For details, see GenerateDataKey and GenerateDataKeyPair. + + Asymmetric KMS keys + + : To create an asymmetric KMS key, use the `KeySpec` parameter to + specify the type of key material in the KMS key. Then, use the + `KeyUsage` parameter to determine whether the KMS key will be used to + encrypt and decrypt or sign and verify. You can't change these + properties after the KMS key is created. + + Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key + pair, ML-DSA key pair or an SM2 key pair (China Regions only). The + private key in an asymmetric KMS key never leaves KMS unencrypted. + However, you can use the GetPublicKey operation to download the public + key so it can be used outside of KMS. Each KMS key can have only one + key usage. KMS keys with RSA key pairs can be used to encrypt and + decrypt data or sign and verify messages (but not both). KMS keys with + NIST-standard ECC key pairs can be used to sign and verify messages or + derive shared secrets (but not both). KMS keys with `ECC_SECG_P256K1` + can be used only to sign and verify messages. KMS keys with ML-DSA key + pairs can be used to sign and verify messages. KMS keys with SM2 key + pairs (China Regions only) can be used to either encrypt and decrypt + data, sign and verify messages, or derive shared secrets (you must + choose one key usage type). For information about asymmetric KMS keys, + see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + HMAC KMS key + + : To create an HMAC KMS key, set the `KeySpec` parameter to a key spec + value for HMAC KMS keys. Then set the `KeyUsage` parameter to + `GENERATE_VERIFY_MAC`. You must set the key usage even though + `GENERATE_VERIFY_MAC` is the only valid key usage value for HMAC KMS + keys. You can't change these properties after the KMS key is created. + + HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You + can use HMAC keys to generate (GenerateMac) and verify (VerifyMac) + HMAC codes for messages up to 4096 bytes. + + Multi-Region primary keys + + : To create a multi-Region *primary key* in the local Amazon Web + Services Region, use the `MultiRegion` parameter with a value of + `True`. To create a multi-Region *replica key*, that is, a KMS key + with the same key ID and key material as a primary key, but in a + different Amazon Web Services Region, use the ReplicateKey operation. + To change a replica key to a primary key, and its primary key to a + replica key, use the UpdatePrimaryRegion operation. + + You can create multi-Region KMS keys for all supported KMS key types: + symmetric encryption KMS keys, HMAC KMS keys, asymmetric encryption + KMS keys, and asymmetric signing KMS keys. You can also create + multi-Region keys with imported key material. However, you can't + create multi-Region keys in a custom key store. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + Imported key material + + : To import your own key material into a KMS key, begin by creating a + KMS key with no key material. To do this, use the `Origin` parameter + of `CreateKey` with a value of `EXTERNAL`. Next, use + GetParametersForImport operation to get a public key and import token. + Use the wrapping public key to encrypt your key material. Then, use + ImportKeyMaterial with your import token to import the key material. + For step-by-step instructions, see [Importing Key + Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) + in the Key Management Service Developer Guide . + + You can import key material into KMS keys of all supported KMS key + types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric + encryption KMS keys, and asymmetric signing KMS keys. You can also + create multi-Region keys with imported key material. However, you + can't import key material into a KMS key in a custom key store. + + To create a multi-Region primary key with imported key material, use + the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and + the `MultiRegion` parameter with a value of `True`. To create replicas + of the multi-Region primary key, use the ReplicateKey operation. For + instructions, see [Importing key material step + 1](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html). + For more information about multi-Region keys, see [Multi-Region keys + in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + Custom key store + + : A [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + lets you protect your Amazon Web Services resources using keys in a + backing key store that you own and manage. When you request a + cryptographic operation with a KMS key in a custom key store, the + operation is performed in the backing key store using its + cryptographic keys. + + KMS supports [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) + backed by an CloudHSM cluster and [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html) + backed by an external key manager outside of Amazon Web Services. When + you create a KMS key in an CloudHSM key store, KMS generates an + encryption key in the CloudHSM cluster and associates it with the KMS + key. When you create a KMS key in an external key store, you specify + an existing encryption key in the external key manager. + + Note: + Some external key managers provide a simpler method for creating a KMS + key in an external key store. For details, see your external key + manager documentation. + Before you create a KMS key in a custom key store, the + `ConnectionState` of the key store must be `CONNECTED`. To connect the + custom key store, use the ConnectCustomKeyStore operation. To find the + `ConnectionState`, use the DescribeCustomKeyStores operation. + + To create a KMS key in a custom key store, use the `CustomKeyStoreId`. + Use the default `KeySpec` value, `SYMMETRIC_DEFAULT`, and the default + `KeyUsage` value, `ENCRYPT_DECRYPT` to create a symmetric encryption + key. No other key type is supported in a custom key store. + + To create a KMS key in an [CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html), + use the `Origin` parameter with a value of `AWS_CLOUDHSM`. The + CloudHSM cluster that is associated with the custom key store must + have at least two active HSMs in different Availability Zones in the + Amazon Web Services Region. + + To create a KMS key in an [external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html), + use the `Origin` parameter with a value of `EXTERNAL_KEY_STORE` and an + `XksKeyId` parameter that identifies an existing external key. + + Note: + Some external key managers provide a simpler method for creating a KMS + key in an external key store. For details, see your external key + manager documentation. + + **Cross-account use**: No. You cannot use this operation to create a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). To use the `Tags` parameter, + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). For examples and information about related permissions, + see [Allow a user to create KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/customer-managed-policies.html#iam-policy-example-create-key) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - DescribeKey + + - ListKeys + + - ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyOutput`. + """ + return await self._invoke(input, _models.CREATE_KEY, [], plugins) + + async def decapsulate( + self, input: DecapsulateInput, plugins: list[Plugin] | None = None + ) -> DecapsulateOutput: + """ + Recovers the shared secret that was encapsulated with the public key of + an ML-KEM KMS key. Module-Lattice-Based Key-Encapsulation Mechanism + (ML-KEM), specified in [FIPS + 203](https://csrc.nist.gov/pubs/fips/203/final) on the NIST website, is + a post-quantum algorithm for establishing a shared secret between two + parties. For an example of how two parties establish a shared secret + over an insecure channel using ML-KEM, see [ML-KEM keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem) + in the *Key Management Service Developer Guide*. + + The Decapsulate operation is not available in China Regions. + + `Decapsulate` returns the shared secret as a 32-byte value. You can use + it directly as key material, or run it through a key derivation function + to derive multiple keys and nonces. + + Warning: + `Decapsulate` returns an `InvalidCiphertextException` when the length of + the `SharedSecretCiphertextBlob` is inconsistent with the ML-KEM key + spec. In all other cases, `Decapsulate` returns a 32-byte pseudo-random + value. This is true even when the `SharedSecretCiphertextBlob` was + created using a different ML-KEM key or altered from its original value. + This behavior is a security feature called *implicit rejection* that + helps protect against chosen-ciphertext attacks. + + Because a response does not indicate that the ciphertext and key are + valid, confirm the two parties derived the same shared secret before + using it. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Decapsulate](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Encapsulate + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DecapsulateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecapsulateOutput`. + """ + return await self._invoke(input, _models.DECAPSULATE, [], plugins) + + async def decrypt( + self, input: DecryptInput, plugins: list[Plugin] | None = None + ) -> DecryptOutput: + """ + Decrypts ciphertext that was encrypted by a KMS key using any of the + following operations: + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyWithoutPlaintext + + - GenerateDataKeyPairWithoutPlaintext + + You can use this operation to decrypt ciphertext that was encrypted + under a symmetric encryption KMS key or an asymmetric encryption KMS + key. When the KMS key is asymmetric, you must specify the KMS key and + the encryption algorithm that was used to encrypt the ciphertext. For + information about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + The `Decrypt` operation also decrypts ciphertext that was encrypted + outside of KMS by the public key in an KMS asymmetric KMS key. However, + it cannot decrypt symmetric ciphertext produced by other libraries, such + as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). + These libraries return a ciphertext format that is incompatible with + KMS. + + If the ciphertext was encrypted under a symmetric encryption KMS key, + the `KeyId` parameter is optional. KMS can get this information from + metadata that it adds to the symmetric ciphertext blob. This feature + adds durability to your implementation by ensuring that authorized users + can decrypt ciphertext decades after it was encrypted, even if they've + lost track of the key ID. However, specifying the KMS key is always + recommended as a best practice. When you use the `KeyId` parameter to + specify a KMS key, KMS only uses the KMS key you specify. If the + ciphertext was encrypted under a different KMS key, the `Decrypt` + operation fails. This practice ensures that you use the KMS key that you + intend. + + Whenever possible, use key policies to give users permission to call the + `Decrypt` operation on a particular KMS key, instead of using IAM + policies. Otherwise, you might create an IAM policy that gives the user + `Decrypt` permission on all KMS keys. This user could decrypt ciphertext + that was encrypted by KMS keys in other accounts if the key policy for + the cross-account KMS key permits it. If you must use an IAM policy for + `Decrypt` permissions, limit the user to particular KMS keys or + particular trusted accounts. For details, see [Best practices for IAM + policies](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices) + in the *Key Management Service Developer Guide*. + + `Decrypt` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html) + and NitroTPM, which provide attested environments in Amazon EC2. To call + `Decrypt` for a Nitro enclave or NitroTPM, use the [Amazon Web Services + Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. Instead of the + plaintext data, the response includes the plaintext data encrypted with + the public key from the attestation document (`CiphertextForRecipient`). + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To specify a KMS key in a different Amazon + Web Services account, use the [key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) + or [alias + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-alias-ARN). + A short [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + is also acceptable when decrypting symmetric ciphertexts, though using a + full key ARN is recommended to be more explicit about the intended KMS + key. + + **Required permissions**: + [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - ReEncrypt + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DecryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecryptOutput`. + """ + return await self._invoke(input, _models.DECRYPT, [], plugins) + + async def delete_alias( + self, input: DeleteAliasInput, plugins: list[Plugin] | None = None + ) -> DeleteAliasOutput: + """ + Deletes the specified alias. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + Because an alias is not a property of a KMS key, you can delete and + change the aliases of a KMS key without affecting the KMS key. Also, + aliases do not appear in the response from the DescribeKey operation. To + get the aliases of all KMS keys, use the ListAliases operation. + + Each KMS key can have multiple aliases. To change the alias of a KMS + key, use DeleteAlias to delete the current alias and CreateAlias to + create a new alias. To associate an existing alias with a different KMS + key, call UpdateAlias. + + **Cross-account use**: No. You cannot perform this operation on an alias + in a different Amazon Web Services account. + + **Required permissions** + + - [kms:DeleteAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:DeleteAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - ListAliases + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAliasOutput`. + """ + return await self._invoke(input, _models.DELETE_ALIAS, [], plugins) + + async def delete_custom_key_store( + self, input: DeleteCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteCustomKeyStoreOutput: + """ + Deletes a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + This operation does not affect any backing elements of the custom key + store. It does not delete the CloudHSM cluster that is associated with + an CloudHSM key store, or affect any users or keys in the cluster. For + an external key store, it does not affect the external key store proxy, + external key manager, or any external keys. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + The custom key store that you delete cannot contain any [KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). + Before deleting the key store, verify that you will never need to use + any of the KMS keys in the key store for any [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + Then, use ScheduleKeyDeletion to delete the KMS keys from the key store. + After the required waiting period expires and all KMS keys are deleted + from the custom key store, use DisconnectCustomKeyStore to disconnect + the key store from KMS. Then, you can delete the custom key store. + + For keys in an CloudHSM key store, the `ScheduleKeyDeletion` operation + makes a best effort to delete the key material from the associated + cluster. However, you might need to manually [delete the orphaned key + material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) + from the cluster and its backups. KMS never creates, manages, or deletes + cryptographic keys in the external key manager associated with an + external key store. You must manage them using your external key manager + tools. + + Instead of deleting the custom key store, consider using the + DisconnectCustomKeyStore operation to disconnect the custom key store + from its backing key store. While the key store is disconnected, you + cannot create or use the KMS keys in the key store. But, you do not need + to delete KMS keys and you can reconnect a disconnected custom key store + at any time. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomKeyStoreOutput`. + """ + return await self._invoke(input, _models.DELETE_CUSTOM_KEY_STORE, [], plugins) + + async def delete_imported_key_material( + self, input: DeleteImportedKeyMaterialInput, plugins: list[Plugin] | None = None + ) -> DeleteImportedKeyMaterialOutput: + """ + Deletes key material that was previously imported. This operation makes + the specified KMS key temporarily unusable. To restore the usability of + the KMS key, reimport the same key material. For more information about + importing key material into KMS, see [Importing Key + Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) + in the *Key Management Service Developer Guide*. + + When the specified KMS key is in the `PendingDeletion` state, this + operation does not change the KMS key's state. Otherwise, it changes + the KMS key's state to `PendingImport`. + + **Considerations for multi-Region symmetric encryption keys** + + - When you delete the key material of a primary Region key that is in + `PENDING_ROTATION` or `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`state, + you'll also be deleting the key materials for the replica Region + keys. + + - If you delete any key material of a replica Region key, the primary + Region key and other replica Region keys remain unchanged. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetParametersForImport + + - ListKeyRotations + + - ImportKeyMaterial + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteImportedKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteImportedKeyMaterialOutput`. + """ + return await self._invoke( + input, _models.DELETE_IMPORTED_KEY_MATERIAL, [], plugins + ) + + async def derive_shared_secret( + self, input: DeriveSharedSecretInput, plugins: list[Plugin] | None = None + ) -> DeriveSharedSecretOutput: + """ + Derives a shared secret using a key agreement algorithm. + + Note: + You must use an asymmetric NIST-standard elliptic curve (ECC) or SM2 + (China Regions only) KMS key pair with a `KeyUsage` value of + `KEY_AGREEMENT` to call DeriveSharedSecret. + + DeriveSharedSecret uses the [Elliptic Curve Cryptography Cofactor + Diffie-Hellman + Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60) + (ECDH) to establish a key agreement between two peers by deriving a + shared secret from their elliptic curve public-private key pairs. You + can use the raw shared secret that DeriveSharedSecret returns to derive + a symmetric key that can encrypt and decrypt data that is sent between + the two peers, or that can generate and verify HMACs. KMS recommends + that you follow [NIST recommendations for key + derivation](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf) + when using the raw shared secret to derive a symmetric key. + + The following workflow demonstrates how to establish key agreement over + an insecure communication channel using DeriveSharedSecret. + + 1. **Alice** calls CreateKey to create an asymmetric KMS key pair with + a `KeyUsage` value of `KEY_AGREEMENT`. + + The asymmetric KMS key must use a NIST-standard elliptic curve (ECC) + or SM2 (China Regions only) key spec. + + 2. **Bob** creates an elliptic curve key pair. + + Bob can call CreateKey to create an asymmetric KMS key pair or + generate a key pair outside of KMS. Bob's key pair must use the + same NIST-standard elliptic curve (ECC) or SM2 (China Regions ony) + curve as Alice. + + 3. Alice and Bob **exchange their public keys** through an insecure + communication channel (like the internet). + + Use GetPublicKey to download the public key of your asymmetric KMS + key pair. + + Note: + KMS strongly recommends verifying that the public key you receive + came from the expected party before using it to derive a shared + secret. + + 4. **Alice** calls DeriveSharedSecret. + + KMS uses the private key from the KMS key pair generated in **Step + 1**, Bob's public key, and the Elliptic Curve Cryptography Cofactor + Diffie-Hellman Primitive to derive the shared secret. The private + key in your KMS key pair never leaves KMS unencrypted. + DeriveSharedSecret returns the raw shared secret. + + 5. **Bob** uses the Elliptic Curve Cryptography Cofactor Diffie-Hellman + Primitive to calculate the same raw secret using his private key and + Alice's public key. + + To derive a shared secret you must provide a key agreement algorithm, + the private key of the caller's asymmetric NIST-standard elliptic curve + or SM2 (China Regions only) KMS key pair, and the public key from your + peer's NIST-standard elliptic curve or SM2 (China Regions only) key + pair. The public key can be from another asymmetric KMS key pair or from + a key pair generated outside of KMS, but both key pairs must be on the + same elliptic curve. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeriveSharedSecretInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeriveSharedSecretOutput`. + """ + return await self._invoke(input, _models.DERIVE_SHARED_SECRET, [], plugins) + + async def describe_custom_key_stores( + self, input: DescribeCustomKeyStoresInput, plugins: list[Plugin] | None = None + ) -> DescribeCustomKeyStoresOutput: + """ + Gets information about [custom key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + in the account and Region. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + By default, this operation returns information about all custom key + stores in the account and Region. To get only information about a + particular custom key store, use either the `CustomKeyStoreName` or + `CustomKeyStoreId` parameter (but not both). + + To determine whether the custom key store is connected to its CloudHSM + cluster or external key store proxy, use the `ConnectionState` element + in the response. If an attempt to connect the custom key store failed, + the `ConnectionState` value is `FAILED` and the `ConnectionErrorCode` + element in the response indicates the cause of the failure. For help + interpreting the `ConnectionErrorCode`, see CustomKeyStoresListEntry. + + Custom key stores have a `DISCONNECTED` connection state if the key + store has never been connected or you used the DisconnectCustomKeyStore + operation to disconnect it. Otherwise, the connection state is + CONNECTED. If your custom key store connection state is `CONNECTED` but + you are having trouble using it, verify that the backing store is active + and available. For an CloudHSM key store, verify that the associated + CloudHSM cluster is active and contains the minimum number of HSMs + required for the operation, if any. For an external key store, verify + that the external key store proxy and its associated external key + manager are reachable and enabled. + + For help repairing your CloudHSM key store, see the [Troubleshooting + CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html). + For help repairing your external key store, see the [Troubleshooting + external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html). + Both topics are in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DescribeCustomKeyStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCustomKeyStoresOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_CUSTOM_KEY_STORES, [], plugins + ) + + async def describe_key( + self, input: DescribeKeyInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyOutput: + """ + Provides detailed information about a KMS key. You can run `DescribeKey` + on a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) + or an [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + + This detailed information includes the key ARN, creation date (and + deletion date, if applicable), the key state, and the origin and + expiration date (if any) of the key material. It includes fields, like + `KeySpec`, that help you distinguish different types of KMS keys. It + also displays the key usage (encryption, signing, or generating and + verifying MACs) and the algorithms that the KMS key supports. + + For [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html), + `DescribeKey` displays the primary key and all related replica keys. For + KMS keys in [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html), + it includes information about the key store, such as the key store ID + and the CloudHSM cluster ID. For KMS keys in [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html), + it includes the custom key store ID and the ID of the external key. + + `DescribeKey` does not return the following information: + + - Aliases associated with the KMS key. To get this information, use + ListAliases. + + - Whether automatic key rotation is enabled on the KMS key. To get this + information, use GetKeyRotationStatus. Also, some key states prevent a + KMS key from being automatically rotated. For details, see [How key + rotation + works](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works) + in the *Key Management Service Developer Guide*. + + - Tags on the KMS key. To get this information, use ListResourceTags. + + - Key policies and grants on the KMS key. To get this information, use + GetKeyPolicy and ListGrants. + + In general, `DescribeKey` is a non-mutating operation. It returns data + about KMS keys, but doesn't change them. However, Amazon Web Services + services use `DescribeKey` to create [Amazon Web Services managed + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + from a *predefined Amazon Web Services alias* with no key ID. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetKeyPolicy + + - GetKeyRotationStatus + + - ListAliases + + - ListGrants + + - ListKeys + + - ListResourceTags + + - ListRetirableGrants + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DescribeKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_KEY, [], plugins) + + async def disable_key( + self, input: DisableKeyInput, plugins: list[Plugin] | None = None + ) -> DisableKeyOutput: + """ + Sets the state of a KMS key to disabled. This change temporarily + prevents use of the KMS key for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + + The KMS key that you use for this operation must be in a compatible key + state. For more information about how key state affects the use of a KMS + key, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the Key Management Service Developer Guide . + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisableKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: EnableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisableKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableKeyOutput`. + """ + return await self._invoke(input, _models.DISABLE_KEY, [], plugins) + + async def disable_key_rotation( + self, input: DisableKeyRotationInput, plugins: list[Plugin] | None = None + ) -> DisableKeyRotationOutput: + """ + Disables [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + of the specified symmetric encryption KMS key. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You can enable (EnableKeyRotation) and disable automatic rotation of the + key material in [customer managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + Key material rotation of [Amazon Web Services managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + is not configurable. KMS always rotates the key material for every year. + Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + varies. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years to every year. For details, see + EnableKeyRotation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisableKeyRotation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - GetKeyRotationStatus + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisableKeyRotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableKeyRotationOutput`. + """ + return await self._invoke(input, _models.DISABLE_KEY_ROTATION, [], plugins) + + async def disconnect_custom_key_store( + self, input: DisconnectCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> DisconnectCustomKeyStoreOutput: + """ + Disconnects the [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + from its backing key store. This operation disconnects an CloudHSM key + store from its associated CloudHSM cluster or disconnects an external + key store from the external key store proxy that communicates with your + external key manager. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + While a custom key store is disconnected, you can manage the custom key + store and its KMS keys, but you cannot create or use its KMS keys. You + can reconnect the custom key store at any time. + + Note: + While a custom key store is disconnected, all attempts to create KMS + keys in the custom key store or to use existing KMS keys in + [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + will fail. This action can prevent users from storing and accessing + sensitive data. + + When you disconnect a custom key store, its `ConnectionState` changes to + `Disconnected`. To find the connection state of a custom key store, use + the DescribeCustomKeyStores operation. To reconnect a custom key store, + use the ConnectCustomKeyStore operation. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisconnectCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisconnectCustomKeyStoreOutput`. + """ + return await self._invoke( + input, _models.DISCONNECT_CUSTOM_KEY_STORE, [], plugins + ) + + async def enable_key( + self, input: EnableKeyInput, plugins: list[Plugin] | None = None + ) -> EnableKeyOutput: + """ + Sets the key state of a KMS key to enabled. This allows you to use the + KMS key for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:EnableKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: DisableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EnableKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableKeyOutput`. + """ + return await self._invoke(input, _models.ENABLE_KEY, [], plugins) + + async def enable_key_rotation( + self, input: EnableKeyRotationInput, plugins: list[Plugin] | None = None + ) -> EnableKeyRotationOutput: + """ + Enables [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + of the specified symmetric encryption KMS key. + + By default, when you enable automatic rotation of a [customer managed + KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key), + KMS rotates the key material of the KMS key one year (approximately 365 + days) from the enable date and every year thereafter. You can use the + optional `RotationPeriodInDays` parameter to specify a custom rotation + period when you enable key rotation, or you can use + `RotationPeriodInDays` to modify the rotation period of a key that you + previously enabled automatic key rotation on. + + You can monitor rotation of the key material for your KMS keys in + CloudTrail and Amazon CloudWatch. To disable rotation of the key + material in a customer managed KMS key, use the DisableKeyRotation + operation. You can use the GetKeyRotationStatus operation to identify + any in progress rotations. You can use the ListKeyRotations operation to + view the details of completed rotations. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You cannot enable or disable automatic rotation of [Amazon Web Services + managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + KMS always rotates the key material of Amazon Web Services managed keys + every year. Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + is managed by the Amazon Web Services service that owns the key. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years (approximately 1,095 days) to every + year (approximately 365 days). + + New Amazon Web Services managed keys are automatically rotated one year + after they are created, and approximately every year thereafter. + + Existing Amazon Web Services managed keys are automatically rotated one + year after their most recent rotation, and every year thereafter. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ListKeyRotations + + - RotateKeyOnDemand + + Note: + You can perform on-demand (RotateKeyOnDemand) rotation of the key + material in customer managed KMS keys, regardless of whether or not + automatic key rotation is enabled. + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EnableKeyRotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableKeyRotationOutput`. + """ + return await self._invoke(input, _models.ENABLE_KEY_ROTATION, [], plugins) + + async def encapsulate( + self, input: EncapsulateInput, plugins: list[Plugin] | None = None + ) -> EncapsulateOutput: + """ + Generates a shared secret and its encapsulated (ciphertext) form using + the public key of an ML-KEM KMS key pair. Module-Lattice-Based + Key-Encapsulation Mechanism (ML-KEM), specified in [FIPS + 203](https://csrc.nist.gov/pubs/fips/203/final) on the NIST website, is + a post-quantum algorithm for establishing a shared secret between two + parties. + + For an example of how two parties establish a shared secret over an + insecure channel using ML-KEM, see [ML-KEM keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem) + in the *Key Management Service Developer Guide*. + + The Encapsulate operation is not available in China Regions. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Encapsulate](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decapsulate + + - DeriveSharedSecret + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EncapsulateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EncapsulateOutput`. + """ + return await self._invoke(input, _models.ENCAPSULATE, [], plugins) + + async def encrypt( + self, input: EncryptInput, plugins: list[Plugin] | None = None + ) -> EncryptOutput: + """ + Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a + symmetric or asymmetric KMS key with a `KeyUsage` of `ENCRYPT_DECRYPT`. + + You can use this operation to encrypt small amounts of arbitrary data, + such as a personal identifier or database password, or other sensitive + information. You don't need to use the `Encrypt` operation to encrypt a + data key. The GenerateDataKey and GenerateDataKeyPair operations return + a plaintext data key and an encrypted copy of that data key. + + If you use a symmetric encryption KMS key, you can use an encryption + context to add additional security to your encryption operation. If you + specify an `EncryptionContext` when encrypting data, you must specify + the same encryption context (a case-sensitive exact match) when + decrypting the data. Otherwise, the request to decrypt fails with an + `InvalidCiphertextException`. For more information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + If you specify an asymmetric KMS key, you must also specify the + encryption algorithm. The algorithm must be compatible with the KMS key + spec. + + Warning: + When you use an asymmetric KMS key to encrypt or reencrypt data, be sure + to record the KMS key and encryption algorithm that you choose. You will + be required to provide the same KMS key and encryption algorithm when + you decrypt the data. If the KMS key and algorithm do not match the + values used to encrypt the data, the decrypt operation fails. + + You are not required to supply the key ID and encryption algorithm when + you decrypt with symmetric encryption KMS keys because KMS stores this + information in the ciphertext blob. KMS cannot store metadata in + ciphertext generated with asymmetric keys. The standard format for + asymmetric key ciphertext does not include configurable fields. + + The maximum size of the data that you can encrypt varies with the type + of KMS key and the encryption algorithm that you choose. + + - Symmetric encryption KMS keys + + - `SYMMETRIC_DEFAULT`: 4096 bytes + + - `RSA_2048` + + - `RSAES_OAEP_SHA_1`: 214 bytes + + - `RSAES_OAEP_SHA_256`: 190 bytes + + - `RSA_3072` + + - `RSAES_OAEP_SHA_1`: 342 bytes + + - `RSAES_OAEP_SHA_256`: 318 bytes + + - `RSA_4096` + + - `RSAES_OAEP_SHA_1`: 470 bytes + + - `RSAES_OAEP_SHA_256`: 446 bytes + + - `SM2PKE`: 1024 bytes (China Regions only) + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EncryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EncryptOutput`. + """ + return await self._invoke(input, _models.ENCRYPT, [], plugins) + + async def generate_data_key( + self, input: GenerateDataKeyInput, plugins: list[Plugin] | None = None + ) -> GenerateDataKeyOutput: + """ + Returns a unique symmetric data key for use outside of KMS. This + operation returns a plaintext copy of the data key and a copy that is + encrypted under a symmetric encryption KMS key that you specify. The + bytes in the plaintext key are random; they are not related to the + caller or the KMS key. You can use the plaintext key to encrypt your + data outside of KMS and store the encrypted data key with the encrypted + data. + + To generate a data key, specify the symmetric encryption KMS key that + will be used to encrypt the data key. You cannot use an asymmetric KMS + key to encrypt data keys. To get the type of your KMS key, use the + DescribeKey operation. + + You must also specify the length of the data key. Use either the + `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit and + 256-bit data keys, use the `KeySpec` parameter. + + To generate a 128-bit SM4 data key (China Regions only), specify a + `KeySpec` value of `AES_128` or a `NumberOfBytes` value of `16`. The + symmetric encryption key used in China Regions to encrypt your data key + is an SM4 encryption key. + + To get only an encrypted copy of the data key, use + GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key + pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext + operation. To get a cryptographically secure random byte string, use + GenerateRandom. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + `GenerateDataKey` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateDataKey` for an Amazon Web Services Nitro enclave or NitroTPM, + use the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. `GenerateDataKey` + returns a copy of the data key encrypted under the specified KMS key, as + usual. But instead of a plaintext copy of the data key, the response + includes a copy of the data key encrypted under the public key from the + attestation document (`CiphertextForRecipient`). For information about + the interaction between KMS and Amazon Web Services Nitro Enclaves or + Amazon Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **How to use your data key** + + We recommend that you use the following pattern to encrypt data locally + in your application. You can write your own code or use a client-side + encryption library, such as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/), + the [Amazon DynamoDB Encryption + Client](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/), + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html) + to do these tasks for you. + + To encrypt data outside of KMS: + + 1. Use the `GenerateDataKey` operation to get a data key. + + 2. Use the plaintext data key (in the `Plaintext` field of the + response) to encrypt your data outside of KMS. Then erase the + plaintext data key from memory. + + 3. Store the encrypted data key (in the `CiphertextBlob` field of the + response) with the encrypted data. + + To decrypt data outside of KMS: + + 1. Use the Decrypt operation to decrypt the encrypted data key. The + operation returns a plaintext copy of the data key. + + 2. Use the plaintext data key to decrypt data outside of KMS, then + erase the plaintext data key from memory. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKeyPair + + - GenerateDataKeyPairWithoutPlaintext + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyOutput`. + """ + return await self._invoke(input, _models.GENERATE_DATA_KEY, [], plugins) + + async def generate_data_key_pair( + self, input: GenerateDataKeyPairInput, plugins: list[Plugin] | None = None + ) -> GenerateDataKeyPairOutput: + """ + Returns a unique asymmetric data key pair for use outside of KMS. This + operation returns a plaintext public key, a plaintext private key, and a + copy of the private key that is encrypted under the symmetric encryption + KMS key you specify. You can use the data key pair to perform asymmetric + cryptography and implement digital signatures outside of KMS. The bytes + in the keys are random; they are not related to the caller or to the KMS + key that is used to encrypt the private key. + + You can use the public key that `GenerateDataKeyPair` returns to encrypt + data or verify a signature outside of KMS. Then, store the encrypted + private key with the data. When you are ready to decrypt data or sign a + message, you can use the Decrypt operation to decrypt the encrypted + private key. + + To generate a data key pair, you must specify a symmetric encryption KMS + key to encrypt the private key in a data key pair. You cannot use an + asymmetric KMS key or a KMS key in a custom key store. To get the type + and origin of your KMS key, use the DescribeKey operation. + + Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve (ECC) + data key pair. In China Regions, you can also choose an SM2 data key + pair. KMS recommends that you use ECC key pairs for signing, and use RSA + and SM2 key pairs for either encryption or signing, but not both. + However, KMS cannot enforce any restrictions on the use of data key + pairs outside of KMS. + + If you are using the data key pair to encrypt data, or for any operation + where you don't immediately need a private key, consider using the + GenerateDataKeyPairWithoutPlaintext operation. + `GenerateDataKeyPairWithoutPlaintext` returns a plaintext public key and + an encrypted private key, but omits the plaintext private key that you + need only to decrypt ciphertext or sign a message. Later, when you need + to decrypt the data or sign a message, use the Decrypt operation to + decrypt the encrypted private key in the data key pair. + + `GenerateDataKeyPair` returns a unique data key pair for each request. + The bytes in the keys are random; they are not related to the caller or + the KMS key that is used to encrypt the private key. The public key is a + DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + 5280](https://tools.ietf.org/html/rfc5280). The private key is a + DER-encoded PKCS8 PrivateKeyInfo, as specified in [RFC + 5958](https://tools.ietf.org/html/rfc5958). + + Note: + For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains + the private key in seed format. As a result, the length of the private + key is the same for all ML-KEM key pair specs. + + `GenerateDataKeyPair` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateDataKeyPair` for an Amazon Web Services Nitro enclave or + NitroTPM, use the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. + `GenerateDataKeyPair` returns the public data key and a copy of the + private data key encrypted under the specified KMS key, as usual. But + instead of a plaintext copy of the private data key + (`PrivateKeyPlaintext`), the response includes a copy of the private + data key encrypted under the public key from the attestation document + (`CiphertextForRecipient`). For information about the interaction + between KMS and Amazon Web Services Nitro Enclaves or Amazon Web + Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPairWithoutPlaintext + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyPairOutput`. + """ + return await self._invoke(input, _models.GENERATE_DATA_KEY_PAIR, [], plugins) + + async def generate_data_key_pair_without_plaintext( + self, + input: GenerateDataKeyPairWithoutPlaintextInput, + plugins: list[Plugin] | None = None, + ) -> GenerateDataKeyPairWithoutPlaintextOutput: + """ + Returns a unique asymmetric data key pair for use outside of KMS. This + operation returns a plaintext public key and a copy of the private key + that is encrypted under the symmetric encryption KMS key you specify. + Unlike GenerateDataKeyPair, this operation does not return a plaintext + private key. The bytes in the keys are random; they are not related to + the caller or to the KMS key that is used to encrypt the private key. + + You can use the public key that `GenerateDataKeyPairWithoutPlaintext` + returns to encrypt data or verify a signature outside of KMS. Then, + store the encrypted private key with the data. When you are ready to + decrypt data or sign a message, you can use the Decrypt operation to + decrypt the encrypted private key. + + To generate a data key pair, you must specify a symmetric encryption KMS + key to encrypt the private key in a data key pair. You cannot use an + asymmetric KMS key or a KMS key in a custom key store. To get the type + and origin of your KMS key, use the DescribeKey operation. + + Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve (ECC) + data key pair. In China Regions, you can also choose an SM2 data key + pair. KMS recommends that you use ECC key pairs for signing, and use RSA + and SM2 key pairs for either encryption or signing, but not both. + However, KMS cannot enforce any restrictions on the use of data key + pairs outside of KMS. + + `GenerateDataKeyPairWithoutPlaintext` returns a unique data key pair for + each request. The bytes in the key are not related to the caller or KMS + key that is used to encrypt the private key. The public key is a + DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + 5280](https://tools.ietf.org/html/rfc5280). + + Note: + For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains + the private key in seed format. As a result, the length of the private + key is the same for all ML-KEM key pair specs. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyPairWithoutPlaintextInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyPairWithoutPlaintextOutput`. + """ + return await self._invoke( + input, _models.GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT, [], plugins + ) + + async def generate_data_key_without_plaintext( + self, + input: GenerateDataKeyWithoutPlaintextInput, + plugins: list[Plugin] | None = None, + ) -> GenerateDataKeyWithoutPlaintextOutput: + """ + Returns a unique symmetric data key for use outside of KMS. This + operation returns a data key that is encrypted under a symmetric + encryption KMS key that you specify. The bytes in the key are random; + they are not related to the caller or to the KMS key. + + `GenerateDataKeyWithoutPlaintext` is identical to the GenerateDataKey + operation except that it does not return a plaintext copy of the data + key. + + This operation is useful for systems that need to encrypt data at some + point, but not immediately. When you need to encrypt the data, you call + the Decrypt operation on the encrypted copy of the key. + + It's also useful in distributed systems with different levels of trust. + For example, you might store encrypted data in containers. One component + of your system creates new containers and stores an encrypted data key + with each container. Then, a different component puts the data into the + containers. That component first decrypts the data key, uses the + plaintext data key to encrypt data, puts the encrypted data into the + container, and then destroys the plaintext data key. In this system, the + component that creates the containers never sees the plaintext data key. + + To request an asymmetric data key pair, use the GenerateDataKeyPair or + GenerateDataKeyPairWithoutPlaintext operations. + + To generate a data key, you must specify the symmetric encryption KMS + key that is used to encrypt the data key. You cannot use an asymmetric + KMS key or a key in a custom key store to generate a data key. To get + the type of your KMS key, use the DescribeKey operation. + + You must also specify the length of the data key. Use either the + `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit and + 256-bit data keys, use the `KeySpec` parameter. + + To generate an SM4 data key (China Regions only), specify a `KeySpec` + value of `AES_128` or `NumberOfBytes` value of `16`. The symmetric + encryption key used in China Regions to encrypt your data key is an SM4 + encryption key. + + If the operation succeeds, you will find the encrypted copy of the data + key in the `CiphertextBlob` field. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyPairWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyWithoutPlaintextInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyWithoutPlaintextOutput`. + """ + return await self._invoke( + input, _models.GENERATE_DATA_KEY_WITHOUT_PLAINTEXT, [], plugins + ) + + async def generate_mac( + self, input: GenerateMacInput, plugins: list[Plugin] | None = None + ) -> GenerateMacOutput: + """ + Generates a hash-based message authentication code (HMAC) for a message + using an HMAC KMS key and a MAC algorithm that the key supports. HMAC + KMS keys and the HMAC algorithms that KMS uses conform to industry + standards defined in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + + You can use value that GenerateMac returns in the VerifyMac operation to + demonstrate that the original message has not changed. Also, because a + secret key is used to create the hash, you can verify that the party + that generated the hash has the required secret key. You can also use + the raw result to implement HMAC-based algorithms such as key derivation + functions. This operation is part of KMS support for HMAC KMS keys. For + details, see [HMAC keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in + the Key Management Service Developer Guide . + + Note: + Best practices recommend that you limit the time during which any + signing mechanism, including an HMAC, is effective. This deters an + attack where the actor uses a signed message to establish validity + repeatedly or long after the message is superseded. HMAC tags do not + include a timestamp, but you can include a timestamp in the token or + message to help you detect when its time to refresh the HMAC. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateMac](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: VerifyMac + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateMacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateMacOutput`. + """ + return await self._invoke(input, _models.GENERATE_MAC, [], plugins) + + async def generate_random( + self, input: GenerateRandomInput, plugins: list[Plugin] | None = None + ) -> GenerateRandomOutput: + """ + Returns a random byte string that is cryptographically secure. + + You must use the `NumberOfBytes` parameter to specify the length of the + random byte string. There is no default value for string length. + + By default, the random byte string is generated in KMS. To generate the + byte string in the CloudHSM cluster associated with an CloudHSM key + store, use the `CustomKeyStoreId` parameter. + + `GenerateRandom` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateRandom` for a Nitro enclave or NitroTPM, use the [Amazon Web + Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. Instead of + plaintext bytes, the response includes the plaintext bytes encrypted + under the public key from the attestation document + (`CiphertextForRecipient`). For information about the interaction + between KMS and Amazon Web Services Nitro Enclaves or Amazon Web + Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + For more information about entropy and random number generation, see + [Entropy and random number + generation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#entropy-and-random-numbers) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Not applicable. `GenerateRandom` does not use any + account-specific resources, such as KMS keys. + + **Required permissions**: + [kms:GenerateRandom](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateRandomInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateRandomOutput`. + """ + return await self._invoke(input, _models.GENERATE_RANDOM, [], plugins) + + async def get_key_last_usage( + self, input: GetKeyLastUsageInput, plugins: list[Plugin] | None = None + ) -> GetKeyLastUsageOutput: + """ + Returns usage information about the last successful cryptographic + operation performed with a specified KMS key, including the operation + type, timestamp, and associated CloudTrail event ID. + + The `TrackingStartDate` in the `GetKeyLastUsage` response indicates the + date from which KMS began recording cryptographic activity for a given + key. Use this value together with `KeyCreationDate` to understand the + key's usage history: + + - If the `KeyLastUsage` response element is *present*, the key has been + used for a successful cryptographic operation since the + `TrackingStartDate`. The response includes the operation type, + timestamp, and associated CloudTrail event ID. + + - If the `KeyLastUsage` response element is *empty* and + `KeyCreationDate` is on or after `TrackingStartDate`, the key has not + been used for a successful cryptographic operation since it was + created. + + - If the `KeyLastUsage` response element is *empty* and + `KeyCreationDate` is before `TrackingStartDate`, there is no record of + the key being used for a successful cryptographic operation since the + `TrackingStartDate`. However, the key may have been used before + tracking began. To determine whether the key was used before the + `TrackingStartDate`, examine your past CloudTrail logs. + + For multi-Region KMS keys, primary and replica keys track last usage + independently. Each key in a multi-Region key set maintains its own + usage information. + + The `ReEncrypt` operation uses two keys: a source key for decryption and + a destination key for encryption. Usage information is recorded for both + keys independently, each with the CloudTrail event ID from the + respective key owner's account. + + Note: + Do not use `GetKeyLastUsage` as the sole indicator when scheduling a key + for deletion. Instead, first [disable the + key](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) + and monitor CloudTrail for `DisabledException` entries, as there could + be infrequent workflows that are dependent on the key. By looking for + this exception, you can identify potential dependencies and workload + failures before they occur. CloudTrail remains the authoritative source + for all API calls made to your key. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetKeyLastUsage](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DescribeKey + + - DisableKey + + - ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyLastUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyLastUsageOutput`. + """ + return await self._invoke(input, _models.GET_KEY_LAST_USAGE, [], plugins) + + async def get_key_policy( + self, input: GetKeyPolicyInput, plugins: list[Plugin] | None = None + ) -> GetKeyPolicyOutput: + """ + Gets a key policy attached to the specified KMS key. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: + [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyPolicyOutput`. + """ + return await self._invoke(input, _models.GET_KEY_POLICY, [], plugins) + + async def get_key_rotation_status( + self, input: GetKeyRotationStatusInput, plugins: list[Plugin] | None = None + ) -> GetKeyRotationStatusOutput: + """ + Provides detailed information about the rotation status for a KMS key, + including whether [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + is enabled for the specified KMS key, the [rotation + period](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period), + and the next scheduled rotation date. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You can enable (EnableKeyRotation) and disable automatic rotation + (DisableKeyRotation) of the key material in customer managed KMS keys. + Key material rotation of [Amazon Web Services managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + is not configurable. KMS always rotates the key material in Amazon Web + Services managed KMS keys every year. The key rotation status for Amazon + Web Services managed KMS keys is always `true`. + + You can perform on-demand (RotateKeyOnDemand) rotation of the key + material in customer managed KMS keys, regardless of whether or not + automatic key rotation is enabled. You can use GetKeyRotationStatus to + identify the date and time that an in progress on-demand rotation was + initiated. You can use ListKeyRotations to view the details of completed + rotations. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years to every year. For details, see + EnableKeyRotation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + - Disabled: The key rotation status does not change when you disable a + KMS key. However, while the KMS key is disabled, KMS does not rotate + the key material. When you re-enable the KMS key, rotation resumes. If + the key material in the re-enabled KMS key hasn't been rotated in one + year, KMS rotates it immediately, and every year thereafter. If it's + been less than a year since the key material in the re-enabled KMS key + was rotated, the KMS key resumes its prior rotation schedule. + + - Pending deletion: While a KMS key is pending deletion, its key + rotation status is `false` and KMS does not rotate the key material. + If you cancel the deletion, the original key rotation status returns + to `true`. + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DisableKeyRotation + + - EnableKeyRotation + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyRotationStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyRotationStatusOutput`. + """ + return await self._invoke(input, _models.GET_KEY_ROTATION_STATUS, [], plugins) + + async def get_parameters_for_import( + self, input: GetParametersForImportInput, plugins: list[Plugin] | None = None + ) -> GetParametersForImportOutput: + """ + Returns the public key and an import token you need to import or + reimport key material for a KMS key. + + By default, KMS keys are created with key material that KMS generates. + This operation supports [Importing key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + an advanced feature that lets you generate and import the cryptographic + key material for a KMS key. + + Before calling `GetParametersForImport`, use the CreateKey operation + with an `Origin` value of `EXTERNAL` to create a KMS key with no key + material. You can import key material for a symmetric encryption KMS + key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric signing + KMS key. You can also import key material into a [multi-Region + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + of any supported type. However, you can't import key material into a + KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + You can also use `GetParametersForImport` to get a public key and import + token to [reimport the original key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material) + into a KMS key whose key material expired or was deleted. + + `GetParametersForImport` returns the items that you need to import your + key material. + + - The public key (or \"wrapping key\") of an RSA key pair that KMS + generates. + + You will use this public key to encrypt (\"wrap\") your key material + while it's in transit to KMS. + + - A import token that ensures that KMS can decrypt your key material and + associate it with the correct KMS key. + + The public key and its import token are permanently linked and must be + used together. Each public key and import token set is valid for 24 + hours. The expiration date and time appear in the `ParametersValidTo` + field in the `GetParametersForImport` response. You cannot use an + expired public key or import token in an ImportKeyMaterial request. If + your key and token expire, send another `GetParametersForImport` + request. + + `GetParametersForImport` requires the following information: + + - The key ID of the KMS key for which you are importing the key + material. + + - The key spec of the public key (\"wrapping key\") that you will use to + encrypt your key material during import. + + - The wrapping algorithm that you will use with the public key to + encrypt your key material. + + You can use the same or a different public key spec and wrapping + algorithm each time you import or reimport the same key material. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - ImportKeyMaterial + + - DeleteImportedKeyMaterial + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetParametersForImportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetParametersForImportOutput`. + """ + return await self._invoke(input, _models.GET_PARAMETERS_FOR_IMPORT, [], plugins) + + async def get_public_key( + self, input: GetPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyOutput: + """ + Returns the public key of an asymmetric KMS key. Unlike the private key + of a asymmetric KMS key, which never leaves KMS unencrypted, callers + with `kms:GetPublicKey` permission can download the public key of an + asymmetric KMS key. You can share the public key to allow others to + encrypt messages and verify signatures outside of KMS. For information + about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + You do not need to download the public key. Instead, you can use the + public key within KMS by calling the Encrypt, ReEncrypt, or Verify + operations with the identifier of an asymmetric KMS key. When you use + the public key within KMS, you benefit from the authentication, + authorization, and logging that are part of every KMS operation. You + also reduce of risk of encrypting data that cannot be decrypted. These + features are not effective outside of KMS. + + To help you use the public key safely outside of KMS, `GetPublicKey` + returns important information about the public key in the response, + including: + + - [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec): + The type of key material in the public key, such as `RSA_4096` or + `ECC_NIST_P521`. + + - [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage): + Whether the key is used for encryption, signing, or deriving a shared + secret. + + - [EncryptionAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms), + [KeyAgreementAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyAgreementAlgorithms), + or + [SigningAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms): + A list of the encryption algorithms, key agreement algorithms, or + signing algorithms for the key. + + Although KMS cannot enforce these restrictions on external operations, + it is crucial that you use this information to prevent the public key + from being used improperly. For example, you can prevent a public + signing key from being used encrypt data, or prevent a public key from + being used with an encryption algorithm that is not supported by KMS. + You can also avoid errors, such as using the wrong signing algorithm in + a verification operation. + + To verify a signature outside of KMS with an SM2 public key (China + Regions only), you must specify the distinguishing ID. By default, KMS + uses `1234567812345678` as the distinguishing ID. For more information, + see [Offline verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GetPublicKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: CreateKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyOutput`. + """ + return await self._invoke(input, _models.GET_PUBLIC_KEY, [], plugins) + + async def import_key_material( + self, input: ImportKeyMaterialInput, plugins: list[Plugin] | None = None + ) -> ImportKeyMaterialOutput: + """ + Imports or reimports key material into an existing KMS key that was + created without key material. You can also use this operation to set or + update the expiration model and expiration date of the imported key + material. + + By default, KMS creates KMS keys with key material that it generates. + You can also generate and import your own key material. For more + information about importing key material, see [Importing key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html). + + For asymmetric and HMAC keys, you cannot change the key material after + the initial import. You can import multiple key materials into symmetric + encryption keys and rotate the key material on demand using + `RotateKeyOnDemand`. + + You can import new key materials into multi-Region symmetric encryption + keys. To do so, you must import the new key material into the primary + Region key. Then you can import the same key materials into the replica + Region keys. You cannot directly import new key material into the + replica Region keys. + + To import new key material for a multi-Region symmetric key, you'll need + to complete the following: + + 1. Call `ImportKeyMaterial` on the primary Region key with the + `ImportType`set to `NEW_KEY_MATERIAL`. + + 2. Call `ImportKeyMaterial` on the replica Region key with the + `ImportType` set to `EXISTING_KEY_MATERIAL` using the same key + material imported to the primary Region key. You must do this for + every replica Region key before you can perform the + RotateKeyOnDemand operation on the primary Region key. + + After you import key material, you can [reimport the same key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material) + into that KMS key or, if the key supports on-demand rotation, import new + key material. You can use the `ImportType` parameter to indicate whether + you are importing new key material or re-importing previously imported + key material. You might reimport key material to replace key material + that expired or key material that you deleted. You might also reimport + key material to change the expiration model or expiration date of the + key material. + + Each time you import key material into KMS, you can determine whether + (`ExpirationModel`) and when (`ValidTo`) the key material expires. To + change the expiration of your key material, you must import it again, + either by calling `ImportKeyMaterial` or using the [import + features](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console) + of the KMS console. + + Before you call `ImportKeyMaterial`, complete these steps: + + - Create or identify a KMS key with `EXTERNAL` origin, which indicates + that the KMS key is designed for imported key material. + + To create a new KMS key for imported key material, call the CreateKey + operation with an `Origin` value of `EXTERNAL`. You can create a + symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS + key, asymmetric key agreement key, or asymmetric signing KMS key. You + can also import key material into a [multi-Region + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + of any supported type. However, you can't import key material into a + KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + + - Call the GetParametersForImport operation to get a public key and + import token set for importing key material. + + - Use the public key in the GetParametersForImport response to encrypt + your key material. + + Then, in an `ImportKeyMaterial` request, you submit your encrypted key + material and import token. When calling this operation, you must specify + the following values: + + - The key ID or key ARN of the KMS key to associate with the imported + key material. Its `Origin` must be `EXTERNAL` and its `KeyState` must + be `PendingImport` or `Enabled`. You cannot perform this operation on + a KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html), + or on a KMS key in a different Amazon Web Services account. To get the + `Origin` and `KeyState` of a KMS key, call DescribeKey. + + - The encrypted key material. + + - The import token that GetParametersForImport returned. You must use a + public key and token from the same `GetParametersForImport` response. + + - Whether the key material expires (`ExpirationModel`) and, if so, when + (`ValidTo`). For help with this choice, see [Setting an expiration + time](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration) + in the *Key Management Service Developer Guide*. + + If you set an expiration date, KMS deletes the key material from the + KMS key on the specified date, making the KMS key unusable. To use the + KMS key in cryptographic operations again, you must reimport the same + key material. However, you can delete and reimport the key material at + any time, including before the key material expires. Each time you + reimport, you can eliminate or reset the expiration time. + + When this operation is successful, the state of the KMS key changes to + `Enabled`, and you can use the KMS key in cryptographic operations. For + symmetric encryption keys, you will need to import all of the key + materials associated with the KMS key to change its state to `Enabled`. + Use the `ListKeyRotations` operation to list the ID and import state of + each key material associated with a KMS key. + + If this operation fails, use the exception to help determine the + problem. If the error is related to the key material, the import token, + or wrapping key, use GetParametersForImport to get a new public key and + import token for the KMS key and repeat the import procedure. For help, + see [Create a KMS key with imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-conceptual.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DeleteImportedKeyMaterial + + - GetParametersForImport + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ImportKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportKeyMaterialOutput`. + """ + return await self._invoke(input, _models.IMPORT_KEY_MATERIAL, [], plugins) + + async def list_aliases( + self, input: ListAliasesInput, plugins: list[Plugin] | None = None + ) -> ListAliasesOutput: + """ + Gets a list of aliases in the caller's Amazon Web Services account and + region. For more information about aliases, see CreateAlias. + + By default, the `ListAliases` operation returns all aliases in the + account and region. To get only the aliases associated with a particular + KMS key, use the `KeyId` parameter. + + The `ListAliases` response can include aliases that you created and + associated with your customer managed keys, and aliases that Amazon Web + Services created and associated with Amazon Web Services managed keys in + your account. You can recognize Amazon Web Services aliases because + their names have the format `aws/```{=html}, such as + `aws/dynamodb`. + + The response might also include aliases that have no `TargetKeyId` + field. These are predefined aliases that Amazon Web Services has created + but has not yet associated with a KMS key. Aliases that Amazon Web + Services creates in your account, including predefined aliases, do not + count against your [KMS aliases + quota](https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html#aliases-per-key). + + **Cross-account use**: No. `ListAliases` does not return aliases in + other Amazon Web Services accounts. + + **Required permissions**: + [kms:ListAliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - DeleteAlias + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAliasesOutput`. + """ + return await self._invoke(input, _models.LIST_ALIASES, [], plugins) + + async def list_grants( + self, input: ListGrantsInput, plugins: list[Plugin] | None = None + ) -> ListGrantsOutput: + """ + Gets a list of all grants for the specified KMS key. + + You must specify the KMS key in all requests. You can filter the grant + list by grant ID, grantee principal, or grantee service principal. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + Note: + When a grant is created with the `GranteePrincipal` field, the + `ListGrants` response usually contains the user or role designated as + the grantee principal in the grant. However, if the grantee principal is + an Amazon Web Services service, the `GranteePrincipal` field contains an + Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), + which might correspond to several different grantee principals, such as + an IAM user, IAM role, or Amazon Web Services account. + + When a grant is created with the `GranteeServicePrincipal` field, the + `ListGrants` response always includes a `GranteeServicePrincipal` that + indicates the grantee is actually an Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:ListGrants](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateGrant + + - ListRetirableGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListGrantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGrantsOutput`. + """ + return await self._invoke(input, _models.LIST_GRANTS, [], plugins) + + async def list_key_policies( + self, input: ListKeyPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListKeyPoliciesOutput: + """ + Gets the names of the key policies that are attached to a KMS key. This + operation is designed to get policy names that you can use in a + GetKeyPolicy operation. However, the only valid policy name is + `default`. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeyPolicies](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetKeyPolicy + + - [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeyPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyPoliciesOutput`. + """ + return await self._invoke(input, _models.LIST_KEY_POLICIES, [], plugins) + + async def list_key_rotations( + self, input: ListKeyRotationsInput, plugins: list[Plugin] | None = None + ) -> ListKeyRotationsOutput: + """ + Returns information about the key materials associated with the + specified KMS key. You can use the optional `IncludeKeyMaterial` + parameter to control which key materials are included in the response. + + You must specify the KMS key in all requests. You can refine the key + rotations list by limiting the number of rotations returned. + + For detailed information about automatic and on-demand key rotations, + see [Rotate KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeyRotations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - DeleteImportedKeyMaterial + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ImportKeyMaterial + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeyRotationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyRotationsOutput`. + """ + return await self._invoke(input, _models.LIST_KEY_ROTATIONS, [], plugins) + + async def list_keys( + self, input: ListKeysInput, plugins: list[Plugin] | None = None + ) -> ListKeysOutput: + """ + Gets a list of all KMS keys in the caller's Amazon Web Services account + and Region. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeys](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - CreateKey + + - DescribeKey + + - ListAliases + + - ListResourceTags + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeysOutput`. + """ + return await self._invoke(input, _models.LIST_KEYS, [], plugins) + + async def list_resource_tags( + self, input: ListResourceTagsInput, plugins: list[Plugin] | None = None + ) -> ListResourceTagsOutput: + """ + Returns all tags on the specified KMS key. + + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. For information about + using tags in KMS, see [Tags in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListResourceTags](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateKey + + - ReplicateKey + + - TagResource + + - UntagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListResourceTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceTagsOutput`. + """ + return await self._invoke(input, _models.LIST_RESOURCE_TAGS, [], plugins) + + async def list_retirable_grants( + self, input: ListRetirableGrantsInput, plugins: list[Plugin] | None = None + ) -> ListRetirableGrantsOutput: + """ + Returns information about all grants in the Amazon Web Services account + and Region that have the specified retiring principal or retiring + service principal. + + You can specify any principal in your Amazon Web Services account. The + grants that are returned include grants for KMS keys in your Amazon Web + Services account and other Amazon Web Services accounts. You might use + this operation to determine which grants you may retire. To retire a + grant, use the RetireGrant operation. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: You must specify a principal in your Amazon Web + Services account. This operation returns a list of grants where the + retiring principal specified in the `ListRetirableGrants` request is the + same retiring principal on the grant. This can include grants on KMS + keys owned by other Amazon Web Services accounts, but you do not need + `kms:ListRetirableGrants` permission (or any other additional + permission) in any Amazon Web Services account other than your own. + + **Required permissions**: + [kms:ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) in your Amazon Web Services account. + + Note: + When listing retirable grants by `RetiringPrincipal`, KMS authorizes + `ListRetirableGrants` requests by evaluating the caller account's + kms:ListRetirableGrants permissions. The authorized resource in + `ListRetirableGrants` calls is the retiring principal specified in the + request. KMS does not evaluate the caller's permissions to verify their + access to any KMS keys or grants that might be returned by the + `ListRetirableGrants` call. + + The `RetiringServicePrincipal` filter is only usable by callers in a + service principal. + + **Related operations:** + + - CreateGrant + + - ListGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListRetirableGrantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetirableGrantsOutput`. + """ + return await self._invoke(input, _models.LIST_RETIRABLE_GRANTS, [], plugins) + + async def put_key_policy( + self, input: PutKeyPolicyInput, plugins: list[Plugin] | None = None + ) -> PutKeyPolicyOutput: + """ + Attaches a key policy to the specified KMS key. + + For more information about key policies, see [Key + Policies](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + in the *Key Management Service Developer Guide*. For help writing and + formatting a JSON policy document, see the [IAM JSON Policy + Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) + in the Identity and Access Management User Guide . For examples of + adding a key policy in multiple programming languages, see [Use + PutKeyPolicy with an Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_PutKeyPolicy_section.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: GetKeyPolicy + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `PutKeyPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutKeyPolicyOutput`. + """ + return await self._invoke(input, _models.PUT_KEY_POLICY, [], plugins) + + async def re_encrypt( + self, input: ReEncryptInput, plugins: list[Plugin] | None = None + ) -> ReEncryptOutput: + """ + Decrypts ciphertext and then reencrypts it entirely within KMS. You can + use this operation to change the KMS key under which data is encrypted, + such as when you [manually + rotate](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys-manually.html) + a KMS key or change the KMS key that protects a ciphertext. You can also + use it to reencrypt ciphertext under the same KMS key, such as to change + the [encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + of a ciphertext. + + The `ReEncrypt` operation can decrypt ciphertext that was encrypted by + using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. + It can also decrypt ciphertext that was encrypted by using the public + key of an [asymmetric KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + outside of KMS. However, it cannot decrypt ciphertext produced by other + libraries, such as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). + These libraries return a ciphertext format that is incompatible with + KMS. + + When you use the `ReEncrypt` operation, you need to provide information + for the decrypt operation and the subsequent encrypt operation. + + - If your ciphertext was encrypted under an asymmetric KMS key, you must + use the `SourceKeyId` parameter to identify the KMS key that encrypted + the ciphertext. You must also supply the encryption algorithm that was + used. This information is required to decrypt the data. + + - If your ciphertext was encrypted under a symmetric encryption KMS key, + the `SourceKeyId` parameter is optional. KMS can get this information + from metadata that it adds to the symmetric ciphertext blob. This + feature adds durability to your implementation by ensuring that + authorized users can decrypt ciphertext decades after it was + encrypted, even if they've lost track of the key ID. However, + specifying the source KMS key is always recommended as a best + practice. When you use the `SourceKeyId` parameter to specify a KMS + key, KMS uses only the KMS key you specify. If the ciphertext was + encrypted under a different KMS key, the `ReEncrypt` operation fails. + This practice ensures that you use the KMS key that you intend. + + - To reencrypt the data, you must use the `DestinationKeyId` parameter + to specify the KMS key that re-encrypts the data after it is + decrypted. If the destination KMS key is an asymmetric KMS key, you + must also provide the encryption algorithm. The algorithm that you + choose must be compatible with the KMS key. + + Warning: + When you use an asymmetric KMS key to encrypt or reencrypt data, be + sure to record the KMS key and encryption algorithm that you choose. + You will be required to provide the same KMS key and encryption + algorithm when you decrypt the data. If the KMS key and algorithm do + not match the values used to encrypt the data, the decrypt operation + fails. + + You are not required to supply the key ID and encryption algorithm + when you decrypt with symmetric encryption KMS keys because KMS stores + this information in the ciphertext blob. KMS cannot store metadata in + ciphertext generated with asymmetric keys. The standard format for + asymmetric key ciphertext does not include configurable fields. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + Note: + When using grants with `SourceArn` constraints for `ReEncrypt` + operations, the grants on both the source KMS key (for `ReEncryptFrom`) + and the destination KMS key (for `ReEncryptTo`) must specify the same + `SourceArn` value. + + **Cross-account use**: Yes. The source KMS key and destination KMS key + can be in different Amazon Web Services accounts. Either or both KMS + keys can be in a different account than the caller. To specify a KMS key + in a different account, use the [key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) + or [alias + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-alias-ARN). + A short [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + is also acceptable for the source key when decrypting symmetric + ciphertexts, though using a full key ARN is recommended to be more + explicit about the intended KMS key. + + **Required permissions**: + + - [kms:ReEncryptFrom](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission on the source KMS key (key policy) + + - [kms:ReEncryptTo](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission on the destination KMS key (key policy) + + To permit reencryption from or to a KMS key, include the + `"kms:ReEncrypt*"` permission in your [key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). + This permission is automatically included in the key policy when you use + the console to create a KMS key. But you must include it manually when + you create a KMS key programmatically or when you use the PutKeyPolicy + operation to set a key policy. + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ReEncryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReEncryptOutput`. + """ + return await self._invoke(input, _models.RE_ENCRYPT, [], plugins) + + async def replicate_key( + self, input: ReplicateKeyInput, plugins: list[Plugin] | None = None + ) -> ReplicateKeyOutput: + """ + Replicates a multi-Region key into the specified Region. This operation + creates a multi-Region replica key based on a multi-Region primary key + in a different Region of the same Amazon Web Services partition. You can + create multiple replicas of a primary key, but each must be in a + different Region. To create a multi-Region primary key, use the + CreateKey operation. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + A *replica key* is a fully-functional KMS key that can be used + independently of its primary and peer replica keys. A primary key and + its replica keys share properties that make them interoperable. They + have the same [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + and key material. They also have the same key spec, key usage, key + material origin, and automatic key rotation status. KMS automatically + synchronizes these shared properties among related multi-Region keys. + All other properties of a replica key can differ, including its [key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), + [tags](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html), + [aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html), + and [key + state](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). + KMS pricing and quotas for KMS keys apply to each primary key and + replica key. + + When this operation completes, the new replica key has a transient key + state of `Creating`. This key state changes to `Enabled` (or + `PendingImport`) after a few seconds when the process of creating the + new replica key is complete. While the key state is `Creating`, you can + manage key, but you cannot yet use it in cryptographic operations. If + you are creating and using the replica key programmatically, retry on + `KMSInvalidStateException` or call `DescribeKey` to check its `KeyState` + value before using it. For details about the `Creating` key state, see + [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + You cannot create more than one replica of a primary key in any Region. + If the Region already includes a replica of the key you're trying to + replicate, `ReplicateKey` returns an `AlreadyExistsException` error. If + the key state of the existing replica is `PendingDeletion`, you can + cancel the scheduled key deletion (CancelKeyDeletion) or wait for the + key to be deleted. The new replica key you create will have the same + [shared + properties](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties) + as the original replica key. + + The CloudTrail log of a `ReplicateKey` operation records a + `ReplicateKey` operation in the primary key's Region and a CreateKey + operation in the replica key's Region. + + If you replicate a multi-Region primary key with imported key material, + the replica key is created with no key material. You must import the + same key material that you imported into the primary key. + + To convert a replica key to a primary key, use the UpdatePrimaryRegion + operation. + + Note: + `ReplicateKey` uses different default values for the `KeyPolicy` and + `Tags` parameters than those used in the KMS console. For details, see + the parameter descriptions. + + **Cross-account use**: No. You cannot use this operation to create a + replica key in a different Amazon Web Services account. + + **Required permissions**: + + - `kms:ReplicateKey` on the primary key (in the primary key's Region). + Include this permission in the primary key's key policy. + + - `kms:CreateKey` in an IAM policy in the replica Region. + + - To use the `Tags` parameter, `kms:TagResource` in an IAM policy in the + replica Region. + + **Related operations** + + - CreateKey + + - UpdatePrimaryRegion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ReplicateKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplicateKeyOutput`. + """ + return await self._invoke(input, _models.REPLICATE_KEY, [], plugins) + + async def retire_grant( + self, input: RetireGrantInput, plugins: list[Plugin] | None = None + ) -> RetireGrantOutput: + """ + Deletes a grant. Typically, you retire a grant when you no longer need + its permissions. To identify the grant to retire, use a [grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token), + or both the grant ID and a key identifier (key ID or key ARN) of the KMS + key. The CreateGrant operation returns both values. + + This operation can be called by the *retiring principal* for a grant, by + the *grantee principal* if the grant allows the `RetireGrant` operation, + and by the Amazon Web Services account in which the grant is created. It + can also be called by principals to whom permission for retiring a grant + is delegated. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: Yes. You can retire a grant on a KMS key in a + different Amazon Web Services account. + + **Required permissions**: Permission to retire a grant is determined + primarily by the grant. For details, see [Retiring and revoking + grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateGrant + + - ListGrants + + - ListRetirableGrants + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RetireGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RetireGrantOutput`. + """ + return await self._invoke(input, _models.RETIRE_GRANT, [], plugins) + + async def revoke_grant( + self, input: RevokeGrantInput, plugins: list[Plugin] | None = None + ) -> RevokeGrantOutput: + """ + Deletes the specified grant. You revoke a grant to terminate the + permissions that the grant allows. For more information, see [Retiring + and revoking + grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html) + in the Key Management Service Developer Guide . + + When you create, retire, or revoke a grant, there might be a brief + delay, usually less than five minutes, until the grant is available + throughout KMS. This state is known as *eventual consistency*. For + details, see [Eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency) + in the Key Management Service Developer Guide . + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:RevokeGrant](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy). + + **Related operations:** + + - CreateGrant + + - ListGrants + + - ListRetirableGrants + + - RetireGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RevokeGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeGrantOutput`. + """ + return await self._invoke(input, _models.REVOKE_GRANT, [], plugins) + + async def rotate_key_on_demand( + self, input: RotateKeyOnDemandInput, plugins: list[Plugin] | None = None + ) -> RotateKeyOnDemandOutput: + """ + Immediately initiates rotation of the key material of the specified + symmetric encryption KMS key. + + You can perform [on-demand + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html) + of the key material in customer managed KMS keys, regardless of whether + or not [automatic key + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + is enabled. On-demand rotations do not change existing automatic + rotation schedules. For example, consider a KMS key that has automatic + key rotation enabled with a rotation period of 730 days. If the key is + scheduled to automatically rotate on April 14, 2024, and you perform an + on-demand rotation on April 10, 2024, the key will automatically rotate, + as scheduled, on April 14, 2024 and every 730 days thereafter. + + Note: + You can perform on-demand key rotation a **maximum of 25 times** per KMS + key. You can use the KMS console to view the number of remaining + on-demand rotations available for a KMS key. + + You can use GetKeyRotationStatus to identify any in progress on-demand + rotations. You can use ListKeyRotations to identify the date that + completed on-demand rotations were performed. You can monitor rotation + of the key material for your KMS keys in CloudTrail and Amazon + CloudWatch. + + On-demand key rotation is supported only on symmetric encryption KMS + keys. You cannot perform on-demand rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + When you initiate on-demand key rotation on a symmetric encryption KMS + key with imported key material, you must have already imported [new key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html) + and that key material's state should be `PENDING_ROTATION`. Use the + `ListKeyRotations` operation to check the state of all key materials + associated with a KMS key. To perform on-demand rotation of a set of + related [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + import new key material in the primary Region key, import the same key + material in each replica Region key, and invoke the on-demand rotation + on the primary Region key. + + You cannot initiate on-demand rotation of [Amazon Web Services managed + KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + KMS always rotates the key material of Amazon Web Services managed keys + every year. Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + is managed by the Amazon Web Services service that owns the key. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:RotateKeyOnDemand](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ImportKeyMaterial + + - ListKeyRotations + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RotateKeyOnDemandInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RotateKeyOnDemandOutput`. + """ + return await self._invoke(input, _models.ROTATE_KEY_ON_DEMAND, [], plugins) + + async def schedule_key_deletion( + self, input: ScheduleKeyDeletionInput, plugins: list[Plugin] | None = None + ) -> ScheduleKeyDeletionOutput: + """ + Schedules the deletion of a KMS key. By default, KMS applies a waiting + period of 30 days, but you can specify a waiting period of 7-30 days. + When this operation is successful, the key state of the KMS key changes + to `PendingDeletion` and the key can't be used in any cryptographic + operations. It remains in this state for the duration of the waiting + period. Before the waiting period ends, you can use CancelKeyDeletion to + cancel the deletion of the KMS key. After the waiting period ends, KMS + deletes the KMS key, its key material, and all KMS data associated with + it, including all aliases that refer to it. + + Warning: + Deleting a KMS key is a destructive and potentially dangerous operation. + When a KMS key is deleted, all data that was encrypted under the KMS key + is unrecoverable. (The only exception is a [multi-Region replica + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html), + or an [asymmetric or HMAC KMS key with imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#import-delete-key).) + To prevent the use of a KMS key without deleting it, use DisableKey. + + You can schedule the deletion of a multi-Region primary key and its + replica keys at any time. However, KMS will not delete a multi-Region + primary key with existing replica keys. If you schedule the deletion of + a primary key with replicas, its key state changes to + `PendingReplicaDeletion` and it cannot be replicated or used in + cryptographic operations. This status can continue indefinitely. When + the last of its replicas keys is deleted (not just scheduled), the key + state of the primary key changes to `PendingDeletion` and its waiting + period (`PendingWindowInDays`) begins. For details, see [Deleting + multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-mrks) + in the *Key Management Service Developer Guide*. + + When KMS [deletes a KMS key from an CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-cmk-keystore), + it makes a best effort to delete the associated key material from the + associated CloudHSM cluster. However, you might need to manually [delete + the orphaned key + material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) + from the cluster and its backups. [Deleting a KMS key from an external + key + store](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-xks-key) + has no effect on the associated external key. However, for both types of + custom key stores, deleting a KMS key is destructive and irreversible. + You cannot decrypt ciphertext encrypted under the KMS key by using only + its associated external key or CloudHSM key. Also, you cannot recreate a + KMS key in an external key store by creating a new KMS key with the same + key material. + + For more information about scheduling a KMS key for deletion, see + [Deleting KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: kms:ScheduleKeyDeletion (key policy) + + **Related operations** + + - CancelKeyDeletion + + - DisableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ScheduleKeyDeletionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ScheduleKeyDeletionOutput`. + """ + return await self._invoke(input, _models.SCHEDULE_KEY_DELETION, [], plugins) + + async def sign( + self, input: SignInput, plugins: list[Plugin] | None = None + ) -> SignOutput: + """ + Creates a [digital + signature](https://en.wikipedia.org/wiki/Digital_signature) for a + message or message digest by using the private key in an asymmetric + signing KMS key. To verify the signature, use the Verify operation, or + use the public key in the same asymmetric KMS key outside of KMS. For + information about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + Digital signatures are generated and verified by using asymmetric key + pair, such as an RSA, ECC, or ML-DSA pair that is represented by an + asymmetric KMS key. The key owner (or an authorized user) uses their + private key to sign a message. Anyone with the public key can verify + that the message was signed with that particular private key and that + the message hasn't changed since it was signed. + + To use the `Sign` operation, provide the following information: + + - Use the `KeyId` parameter to identify an asymmetric KMS key with a + `KeyUsage` value of `SIGN_VERIFY`. To get the `KeyUsage` value of a + KMS key, use the DescribeKey operation. The caller must have + `kms:Sign` permission on the KMS key. + + - Use the `Message` parameter to specify the message or message digest + to sign. You can submit messages of up to 4096 bytes. To sign a larger + message, generate a hash digest of the message, and then provide the + hash digest in the `Message` parameter. To indicate whether the + message is a full message, a digest, or an ML-DSA EXTERNAL_MU, use the + `MessageType` parameter. + + - Choose a signing algorithm that is compatible with the KMS key. + + Warning: + When signing a message, be sure to record the KMS key and the signing + algorithm. This information is required to verify the signature. + Note: + Best practices recommend that you limit the time during which any + signature is effective. This deters an attack where the actor uses a + signed message to establish validity repeatedly or long after the + message is superseded. Signatures do not include a timestamp, but you + can include a timestamp in the signed message to help you detect when + its time to refresh the signature. + + To verify the signature that this operation generates, use the Verify + operation. Or use the GetPublicKey operation to download the public key + and then use the public key to verify the signature outside of KMS. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Sign](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: Verify + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `SignInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SignOutput`. + """ + return await self._invoke(input, _models.SIGN, [], plugins) + + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds or edits tags on a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + Each tag consists of a tag key and a tag value, both of which are + case-sensitive strings. The tag value can be an empty (null) string. To + add a tag, specify a new tag key and a tag value. To edit a tag, specify + an existing tag key and a new tag value. + + You can use this operation to tag a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key), + but you cannot tag an [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key), + an [Amazon Web Services owned + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key), + a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html), + or an + [alias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html). + + You can also add tags to a KMS key while creating it (CreateKey) or + replicating it (ReplicateKey). + + For information about using tags in KMS, see [Tagging + keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - ListResourceTags + + - ReplicateKey + + - UntagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes tags from a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + To delete a tag, specify the tag key and the KMS key. + + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + When it succeeds, the `UntagResource` operation doesn't return any + output. Also, if the specified tag key isn't found on the KMS key, it + doesn't throw an exception or return a response. To confirm that the + operation worked, use the ListResourceTags operation. + + For information about using tags in KMS, see [Tagging + keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:UntagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - ListResourceTags + + - ReplicateKey + + - TagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + async def update_alias( + self, input: UpdateAliasInput, plugins: list[Plugin] | None = None + ) -> UpdateAliasOutput: + """ + Associates an existing KMS alias with a different KMS key. Each alias is + associated with only one KMS key at a time, although a KMS key can have + multiple aliases. The alias and the KMS key must be in the same Amazon + Web Services account and Region. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + The current and new KMS key must be the same type (both symmetric or + both asymmetric or both HMAC), and they must have the same key usage. + This restriction prevents errors in code that uses aliases. If you must + assign an alias to a different type of KMS key, use DeleteAlias to + delete the old alias and CreateAlias to create a new alias. + + You cannot use `UpdateAlias` to change an alias name. To change an alias + name, use DeleteAlias to delete the old alias and CreateAlias to create + a new alias. + + Because an alias is not a property of a KMS key, you can create, update, + and delete the aliases of a KMS key without affecting the KMS key. Also, + aliases do not appear in the response from the DescribeKey operation. To + get the aliases of all KMS keys in the account, use the ListAliases + operation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions** + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the current KMS key (key policy). + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the new KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - DeleteAlias + + - ListAliases + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAliasOutput`. + """ + return await self._invoke(input, _models.UPDATE_ALIAS, [], plugins) + + async def update_custom_key_store( + self, input: UpdateCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateCustomKeyStoreOutput: + """ + Changes the properties of a custom key store. You can use this operation + to change the properties of an CloudHSM key store or an external key + store. + + Use the required `CustomKeyStoreId` parameter to identify the custom key + store. Use the remaining optional parameters to change its properties. + This operation does not return any property values. To verify the + updated property values, use the DescribeCustomKeyStores operation. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + Warning: + When updating the properties of an external key store, verify that the + updated settings connect your key store, via the external key store + proxy, to the same external key manager as the previous settings, or to + a backup or snapshot of the external key manager with the same + cryptographic keys. If the updated connection settings fail, you can fix + them and retry, although an extended delay might disrupt Amazon Web + Services services. However, if KMS permanently loses its access to + cryptographic keys, ciphertext encrypted under those keys is + unrecoverable. + Note: + For external key stores: + + Some external key managers provide a simpler method for updating an + external key store. For details, see your external key manager + documentation. + + When updating an external key store in the KMS console, you can upload a + JSON-based proxy configuration file with the desired values. You cannot + upload the proxy configuration file to the `UpdateCustomKeyStore` + operation. However, you can use the file to help you determine the + correct values for the `UpdateCustomKeyStore` parameters. + + For an CloudHSM key store, you can use this operation to change the + custom key store friendly name (`NewCustomKeyStoreName`), to tell KMS + about a change to the `kmsuser` crypto user password + (`KeyStorePassword`), or to associate the custom key store with a + different, but related, CloudHSM cluster (`CloudHsmClusterId`). To + update most properties of an CloudHSM key store, the `ConnectionState` + of the CloudHSM key store must be `DISCONNECTED`. However, you can + update the `CustomKeyStoreName` of an AWS CloudHSM key store when it is + in the `CONNECTED` or `DISCONNECTED` state. + + For an external key store, you can use this operation to change the + custom key store friendly name (`NewCustomKeyStoreName`), or to tell KMS + about a change to the external key store proxy authentication + credentials (`XksProxyAuthenticationCredential`), connection method + (`XksProxyConnectivity`), external proxy endpoint + (`XksProxyUriEndpoint`) and path (`XksProxyUriPath`). For external key + stores with an `XksProxyConnectivity` of `VPC_ENDPOINT_SERVICE`, you can + also update the Amazon VPC endpoint service name + (`XksProxyVpcEndpointServiceName`). To update most properties of an + external key store, the `ConnectionState` of the external key store must + be `DISCONNECTED`. However, you can update the `CustomKeyStoreName`, + `XksProxyAuthenticationCredential`, and `XksProxyUriPath` of an external + key store when it is in the CONNECTED or DISCONNECTED state. + + If your update requires a `DISCONNECTED` state, before using + `UpdateCustomKeyStore`, use the DisconnectCustomKeyStore operation to + disconnect the custom key store. After the `UpdateCustomKeyStore` + operation completes, use the ConnectCustomKeyStore to reconnect the + custom key store. To find the `ConnectionState` of the custom key store, + use the DescribeCustomKeyStores operation. + + Before updating the custom key store, verify that the new values allow + KMS to connect the custom key store to its backing key store. For + example, before you change the `XksProxyUriPath` value, verify that the + external key store proxy is reachable at the new path. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCustomKeyStoreOutput`. + """ + return await self._invoke(input, _models.UPDATE_CUSTOM_KEY_STORE, [], plugins) + + async def update_key_description( + self, input: UpdateKeyDescriptionInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyDescriptionOutput: + """ + Updates the description of a KMS key. To see the description of a KMS + key, use DescribeKey. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateKeyDescriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyDescriptionOutput`. + """ + return await self._invoke(input, _models.UPDATE_KEY_DESCRIPTION, [], plugins) + + async def update_primary_region( + self, input: UpdatePrimaryRegionInput, plugins: list[Plugin] | None = None + ) -> UpdatePrimaryRegionOutput: + """ + Changes the primary key of a multi-Region key. + + This operation changes the replica key in the specified Region to a + primary key and changes the former primary key to a replica key. For + example, suppose you have a primary key in `us-east-1` and a replica key + in `eu-west-2`. If you run `UpdatePrimaryRegion` with a `PrimaryRegion` + value of `eu-west-2`, the primary key is now the key in `eu-west-2`, and + the key in `us-east-1` becomes a replica key. For details, see [Change + the primary key in a set of multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-update.html) + in the *Key Management Service Developer Guide*. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + The *primary key* of a multi-Region key is the source for properties + that are always shared by primary and replica keys, including the key + material, [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id), + [key + spec](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec), + [key + usage](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage), + [key material + origin](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin), + and [automatic key + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). + It's the only key that can be replicated. You cannot [delete the + primary + key](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) + until all replica keys are deleted. + + The key ID and primary Region that you specify uniquely identify the + replica key that will become the primary key. The primary Region must + already have a replica key. This operation does not create a KMS key in + the specified Region. To find the replica keys, use the DescribeKey + operation on the primary key or any replica key. To create a replica + key, use the ReplicateKey operation. + + You can run this operation while using the affected multi-Region keys in + cryptographic operations. This operation should not delay, interrupt, or + cause failures in cryptographic operations. + + Even after this operation completes, the process of updating the primary + Region might still be in progress for a few more seconds. Operations + such as `DescribeKey` might display both the old and new primary keys as + replicas. The old and new primary keys have a transient key state of + `Updating`. The original key state is restored when the update is + complete. While the key state is `Updating`, you can use the keys in + cryptographic operations, but you cannot replicate the new primary key + or perform certain management operations, such as enabling or disabling + these keys. For details about the `Updating` key state, see [Key states + of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + This operation does not return any output. To verify that primary key is + changed, use the DescribeKey operation. + + **Cross-account use**: No. You cannot use this operation in a different + Amazon Web Services account. + + **Required permissions**: + + - `kms:UpdatePrimaryRegion` on the current primary key (in the primary + key's Region). Include this permission primary key's key policy. + + - `kms:UpdatePrimaryRegion` on the current replica key (in the replica + key's Region). Include this permission in the replica key's key + policy. + + **Related operations** + + - CreateKey + + - ReplicateKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdatePrimaryRegionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdatePrimaryRegionOutput`. + """ + return await self._invoke(input, _models.UPDATE_PRIMARY_REGION, [], plugins) + + async def verify( + self, input: VerifyInput, plugins: list[Plugin] | None = None + ) -> VerifyOutput: + """ + Verifies a digital signature that was generated by the Sign operation. + + Verification confirms that an authorized user signed the message with + the specified KMS key and signing algorithm, and the message hasn't + changed since it was signed. If the signature is verified, the value of + the `SignatureValid` field in the response is `True`. If the signature + verification fails, the `Verify` operation fails with an + `KMSInvalidSignatureException` exception. + + A digital signature is generated by using the private key in an + asymmetric KMS key. The signature is verified by using the public key in + the same asymmetric KMS key. For information about asymmetric KMS keys, + see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + To use the `Verify` operation, specify the same asymmetric KMS key, + message, and signing algorithm that were used to produce the signature. + The message type does not need to be the same as the one used for + signing, but it must indicate whether the value of the `Message` + parameter should be hashed as part of the verification process. + + You can also verify the digital signature by using the public key of the + KMS key outside of KMS. Use the GetPublicKey operation to download the + public key in the asymmetric KMS key and then use the public key to + verify the signature outside of KMS. The advantage of using the `Verify` + operation is that it is performed within KMS. As a result, it's easy to + call, the operation is performed within the FIPS boundary, it is logged + in CloudTrail, and you can use key policy and IAM policy to determine + who is authorized to use the KMS key to verify signatures. + + To verify a signature outside of KMS with an SM2 public key (China + Regions only), you must specify the distinguishing ID. By default, KMS + uses `1234567812345678` as the distinguishing ID. For more information, + see [Offline verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Verify](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: Sign + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `VerifyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyOutput`. + """ + return await self._invoke(input, _models.VERIFY, [], plugins) + + async def verify_mac( + self, input: VerifyMacInput, plugins: list[Plugin] | None = None + ) -> VerifyMacOutput: + """ + Verifies the hash-based message authentication code (HMAC) for a + specified message, HMAC KMS key, and MAC algorithm. To verify the HMAC, + `VerifyMac` computes an HMAC using the message, HMAC KMS key, and MAC + algorithm that you specify, and compares the computed HMAC to the HMAC + that you specify. If the HMACs are identical, the verification succeeds; + otherwise, it fails. Verification indicates that the message hasn't + changed since the HMAC was calculated, and the specified key was used to + generate and verify the HMAC. + + HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry + standards defined in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + + This operation is part of KMS support for HMAC KMS keys. For details, + see [HMAC keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in + the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:VerifyMac](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: GenerateMac + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `VerifyMacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyMacOutput`. + """ + return await self._invoke(input, _models.VERIFY_MAC, [], plugins) + + async def _new_config(self) -> AsyncKMSConfig: + return await AsyncKMSConfig.resolve() + + async def _post_setup(self, config: AsyncKMSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/aio/config.py b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/config.py new file mode 100644 index 00000000..4d3cac0f --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/config.py @@ -0,0 +1,410 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncAwsJson11ClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import TRENT_SERVICE +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + CancelKeyDeletionInput, + CancelKeyDeletionOutput, + ConnectCustomKeyStoreInput, + ConnectCustomKeyStoreOutput, + CreateAliasInput, + CreateAliasOutput, + CreateCustomKeyStoreInput, + CreateCustomKeyStoreOutput, + CreateGrantInput, + CreateGrantOutput, + CreateKeyInput, + CreateKeyOutput, + DecapsulateInput, + DecapsulateOutput, + DecryptInput, + DecryptOutput, + DeleteAliasInput, + DeleteAliasOutput, + DeleteCustomKeyStoreInput, + DeleteCustomKeyStoreOutput, + DeleteImportedKeyMaterialInput, + DeleteImportedKeyMaterialOutput, + DeriveSharedSecretInput, + DeriveSharedSecretOutput, + DescribeCustomKeyStoresInput, + DescribeCustomKeyStoresOutput, + DescribeKeyInput, + DescribeKeyOutput, + DisableKeyInput, + DisableKeyOutput, + DisableKeyRotationInput, + DisableKeyRotationOutput, + DisconnectCustomKeyStoreInput, + DisconnectCustomKeyStoreOutput, + EnableKeyInput, + EnableKeyOutput, + EnableKeyRotationInput, + EnableKeyRotationOutput, + EncapsulateInput, + EncapsulateOutput, + EncryptInput, + EncryptOutput, + GenerateDataKeyInput, + GenerateDataKeyOutput, + GenerateDataKeyPairInput, + GenerateDataKeyPairOutput, + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + GenerateMacInput, + GenerateMacOutput, + GenerateRandomInput, + GenerateRandomOutput, + GetKeyLastUsageInput, + GetKeyLastUsageOutput, + GetKeyPolicyInput, + GetKeyPolicyOutput, + GetKeyRotationStatusInput, + GetKeyRotationStatusOutput, + GetParametersForImportInput, + GetParametersForImportOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + ImportKeyMaterialInput, + ImportKeyMaterialOutput, + ListAliasesInput, + ListAliasesOutput, + ListGrantsInput, + ListGrantsOutput, + ListKeyPoliciesInput, + ListKeyPoliciesOutput, + ListKeyRotationsInput, + ListKeyRotationsOutput, + ListKeysInput, + ListKeysOutput, + ListResourceTagsInput, + ListResourceTagsOutput, + ListRetirableGrantsInput, + ListRetirableGrantsOutput, + PutKeyPolicyInput, + PutKeyPolicyOutput, + ReEncryptInput, + ReEncryptOutput, + ReplicateKeyInput, + ReplicateKeyOutput, + RetireGrantInput, + RetireGrantOutput, + RevokeGrantInput, + RevokeGrantOutput, + RotateKeyOnDemandInput, + RotateKeyOnDemandOutput, + ScheduleKeyDeletionInput, + ScheduleKeyDeletionOutput, + SignInput, + SignOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAliasInput, + UpdateAliasOutput, + UpdateCustomKeyStoreInput, + UpdateCustomKeyStoreOutput, + UpdateKeyDescriptionInput, + UpdateKeyDescriptionOutput, + UpdatePrimaryRegionInput, + UpdatePrimaryRegionOutput, + VerifyInput, + VerifyMacInput, + VerifyMacOutput, + VerifyOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[CancelKeyDeletionInput, CancelKeyDeletionOutput, Any, Any], + Interceptor[ConnectCustomKeyStoreInput, ConnectCustomKeyStoreOutput, Any, Any], + Interceptor[CreateAliasInput, CreateAliasOutput, Any, Any], + Interceptor[CreateCustomKeyStoreInput, CreateCustomKeyStoreOutput, Any, Any], + Interceptor[CreateGrantInput, CreateGrantOutput, Any, Any], + Interceptor[CreateKeyInput, CreateKeyOutput, Any, Any], + Interceptor[DecapsulateInput, DecapsulateOutput, Any, Any], + Interceptor[DecryptInput, DecryptOutput, Any, Any], + Interceptor[DeleteAliasInput, DeleteAliasOutput, Any, Any], + Interceptor[DeleteCustomKeyStoreInput, DeleteCustomKeyStoreOutput, Any, Any], + Interceptor[ + DeleteImportedKeyMaterialInput, DeleteImportedKeyMaterialOutput, Any, Any + ], + Interceptor[DeriveSharedSecretInput, DeriveSharedSecretOutput, Any, Any], + Interceptor[ + DescribeCustomKeyStoresInput, DescribeCustomKeyStoresOutput, Any, Any + ], + Interceptor[DescribeKeyInput, DescribeKeyOutput, Any, Any], + Interceptor[DisableKeyInput, DisableKeyOutput, Any, Any], + Interceptor[DisableKeyRotationInput, DisableKeyRotationOutput, Any, Any], + Interceptor[ + DisconnectCustomKeyStoreInput, DisconnectCustomKeyStoreOutput, Any, Any + ], + Interceptor[EnableKeyInput, EnableKeyOutput, Any, Any], + Interceptor[EnableKeyRotationInput, EnableKeyRotationOutput, Any, Any], + Interceptor[EncapsulateInput, EncapsulateOutput, Any, Any], + Interceptor[EncryptInput, EncryptOutput, Any, Any], + Interceptor[GenerateDataKeyInput, GenerateDataKeyOutput, Any, Any], + Interceptor[GenerateDataKeyPairInput, GenerateDataKeyPairOutput, Any, Any], + Interceptor[ + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + Any, + Any, + ], + Interceptor[ + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + Any, + Any, + ], + Interceptor[GenerateMacInput, GenerateMacOutput, Any, Any], + Interceptor[GenerateRandomInput, GenerateRandomOutput, Any, Any], + Interceptor[GetKeyLastUsageInput, GetKeyLastUsageOutput, Any, Any], + Interceptor[GetKeyPolicyInput, GetKeyPolicyOutput, Any, Any], + Interceptor[GetKeyRotationStatusInput, GetKeyRotationStatusOutput, Any, Any], + Interceptor[ + GetParametersForImportInput, GetParametersForImportOutput, Any, Any + ], + Interceptor[GetPublicKeyInput, GetPublicKeyOutput, Any, Any], + Interceptor[ImportKeyMaterialInput, ImportKeyMaterialOutput, Any, Any], + Interceptor[ListAliasesInput, ListAliasesOutput, Any, Any], + Interceptor[ListGrantsInput, ListGrantsOutput, Any, Any], + Interceptor[ListKeyPoliciesInput, ListKeyPoliciesOutput, Any, Any], + Interceptor[ListKeyRotationsInput, ListKeyRotationsOutput, Any, Any], + Interceptor[ListKeysInput, ListKeysOutput, Any, Any], + Interceptor[ListResourceTagsInput, ListResourceTagsOutput, Any, Any], + Interceptor[ListRetirableGrantsInput, ListRetirableGrantsOutput, Any, Any], + Interceptor[PutKeyPolicyInput, PutKeyPolicyOutput, Any, Any], + Interceptor[ReEncryptInput, ReEncryptOutput, Any, Any], + Interceptor[ReplicateKeyInput, ReplicateKeyOutput, Any, Any], + Interceptor[RetireGrantInput, RetireGrantOutput, Any, Any], + Interceptor[RevokeGrantInput, RevokeGrantOutput, Any, Any], + Interceptor[RotateKeyOnDemandInput, RotateKeyOnDemandOutput, Any, Any], + Interceptor[ScheduleKeyDeletionInput, ScheduleKeyDeletionOutput, Any, Any], + Interceptor[SignInput, SignOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAliasInput, UpdateAliasOutput, Any, Any], + Interceptor[UpdateCustomKeyStoreInput, UpdateCustomKeyStoreOutput, Any, Any], + Interceptor[UpdateKeyDescriptionInput, UpdateKeyDescriptionOutput, Any, Any], + Interceptor[UpdatePrimaryRegionInput, UpdatePrimaryRegionOutput, Any, Any], + Interceptor[VerifyInput, VerifyOutput, Any, Any], + Interceptor[VerifyMacInput, VerifyMacOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.kms", + service_target="TrentService", + service_schema=TRENT_SERVICE, +) + + +class _AsyncKMSConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncKMSConfig(AsyncAwsConfig): + """KMS configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("kms").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncAwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="kms") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncKMSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncKMSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/aio/user_agent.py b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/user_agent.py new file mode 100644 index 00000000..cf7389c9 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncKMSConfig + + +def aws_user_agent_plugin(config: AsyncKMSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="KMS", + ) + ) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/auth.py b/clients/aws-sdk-kms/src/aws_sdk_kms/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/client.py b/clients/aws-sdk-kms/src/aws_sdk_kms/client.py new file mode 100644 index 00000000..156cc0f2 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/client.py @@ -0,0 +1,4969 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import KMSConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + CancelKeyDeletionInput, + CancelKeyDeletionOutput, + ConnectCustomKeyStoreInput, + ConnectCustomKeyStoreOutput, + CreateAliasInput, + CreateAliasOutput, + CreateCustomKeyStoreInput, + CreateCustomKeyStoreOutput, + CreateGrantInput, + CreateGrantOutput, + CreateKeyInput, + CreateKeyOutput, + DecapsulateInput, + DecapsulateOutput, + DecryptInput, + DecryptOutput, + DeleteAliasInput, + DeleteAliasOutput, + DeleteCustomKeyStoreInput, + DeleteCustomKeyStoreOutput, + DeleteImportedKeyMaterialInput, + DeleteImportedKeyMaterialOutput, + DeriveSharedSecretInput, + DeriveSharedSecretOutput, + DescribeCustomKeyStoresInput, + DescribeCustomKeyStoresOutput, + DescribeKeyInput, + DescribeKeyOutput, + DisableKeyInput, + DisableKeyOutput, + DisableKeyRotationInput, + DisableKeyRotationOutput, + DisconnectCustomKeyStoreInput, + DisconnectCustomKeyStoreOutput, + EnableKeyInput, + EnableKeyOutput, + EnableKeyRotationInput, + EnableKeyRotationOutput, + EncapsulateInput, + EncapsulateOutput, + EncryptInput, + EncryptOutput, + GenerateDataKeyInput, + GenerateDataKeyOutput, + GenerateDataKeyPairInput, + GenerateDataKeyPairOutput, + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + GenerateMacInput, + GenerateMacOutput, + GenerateRandomInput, + GenerateRandomOutput, + GetKeyLastUsageInput, + GetKeyLastUsageOutput, + GetKeyPolicyInput, + GetKeyPolicyOutput, + GetKeyRotationStatusInput, + GetKeyRotationStatusOutput, + GetParametersForImportInput, + GetParametersForImportOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + ImportKeyMaterialInput, + ImportKeyMaterialOutput, + ListAliasesInput, + ListAliasesOutput, + ListGrantsInput, + ListGrantsOutput, + ListKeyPoliciesInput, + ListKeyPoliciesOutput, + ListKeyRotationsInput, + ListKeyRotationsOutput, + ListKeysInput, + ListKeysOutput, + ListResourceTagsInput, + ListResourceTagsOutput, + ListRetirableGrantsInput, + ListRetirableGrantsOutput, + PutKeyPolicyInput, + PutKeyPolicyOutput, + ReEncryptInput, + ReEncryptOutput, + ReplicateKeyInput, + ReplicateKeyOutput, + RetireGrantInput, + RetireGrantOutput, + RevokeGrantInput, + RevokeGrantOutput, + RotateKeyOnDemandInput, + RotateKeyOnDemandOutput, + ScheduleKeyDeletionInput, + ScheduleKeyDeletionOutput, + SignInput, + SignOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAliasInput, + UpdateAliasOutput, + UpdateCustomKeyStoreInput, + UpdateCustomKeyStoreOutput, + UpdateKeyDescriptionInput, + UpdateKeyDescriptionOutput, + UpdatePrimaryRegionInput, + UpdatePrimaryRegionOutput, + VerifyInput, + VerifyMacInput, + VerifyMacOutput, + VerifyOutput, + ) + + +logger = logging.getLogger(__name__) + + +class KMSClient(Client[KMSConfig]): + """ + Key Management Service (KMS) is an encryption and key management web + service. This guide describes the KMS operations that you can call + programmatically. For general information about KMS, see the [*Key + Management Service Developer + Guide*](https://docs.aws.amazon.com/kms/latest/developerguide/) . + + Note: + KMS has replaced the term *customer master key (CMK)* with *Key + Management Service key* and *KMS key*. The concept has not changed. To + prevent breaking changes, KMS is keeping some variations of this term. + + Amazon Web Services provides SDKs that consist of libraries and sample + code for various programming languages and platforms (Java, Rust, + Python, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient + way to create programmatic access to KMS and other Amazon Web Services + services. For example, the SDKs take care of tasks such as signing + requests (see below), managing errors, and retrying requests + automatically. For more information about the Amazon Web Services SDKs, + including how to download and install them, see [Tools for Amazon Web + Services](http://aws.amazon.com/tools/). + + We recommend that you use the Amazon Web Services SDKs to make + programmatic API calls to KMS. + + If you need to use FIPS 140-2 validated cryptographic modules when + communicating with Amazon Web Services, use one of the FIPS endpoints in + your preferred Amazon Web Services Region. If you need communicate over + IPv6, use the dual-stack endpoint in your preferred Amazon Web Services + Region. For more information see [Service + endpoints](https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) + in the Key Management Service topic of the *Amazon Web Services General + Reference* and [Dual-stack endpoint + support](https://docs.aws.amazon.com/kms/latest/developerguide/ipv6-kms.html) + in the KMS Developer Guide. + + All KMS API calls must be signed and be transmitted using Transport + Layer Security (TLS). KMS recommends you always use the latest supported + TLS version. Clients must also support cipher suites with Perfect + Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic + Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java + 7 and later support these modes. + + Note: + With current technology, brute force attacks on KMS TLS cipher suite key + exchange mechanisms are not feasible. However, cipher suites that use + Rivest--Shamir--Adleman (RSA) or Diffie-Hellman (DH) key exchange will + be susceptible if large-scale quantum computing becomes practical. [NIST + IR 8547](https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf) + on the NIST website establishes a timeline to phase out + quantum-vulnerable algorithms by 2030 and disallow them entirely by + 2035. If your applications rely on the long-term confidentiality of KMS + API traffic, we recommend that you [use post-quantum TLS with + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqtls.html). + For more information about post-quantum cybersecurity, see [Post-Quantum + Cybersecurity + Resources](https://www.nsa.gov/Cybersecurity/Post-Quantum-Cybersecurity-Resources/) + on the National Security Agency (NSA) website. + + **Signing Requests** + + Requests must be signed using an access key ID and a secret access key. + We strongly recommend that you do not use your Amazon Web Services + account root access key ID and secret access key for everyday work. You + can use the access key ID and secret access key for an IAM user or you + can use the Security Token Service (STS) to generate temporary security + credentials and use those to sign requests. + + All KMS requests must be signed with [Signature Version + 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + **Logging API Requests** + + KMS supports CloudTrail, a service that logs Amazon Web Services API + calls and related events for your Amazon Web Services account and + delivers them to an Amazon S3 bucket that you specify. By using the + information collected by CloudTrail, you can determine what requests + were made to KMS, who made the request, when it was made, and so on. To + learn more about CloudTrail, including how to turn it on and find your + log files, see the [CloudTrail User + Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). + + **Additional Resources** + + For more information about credentials and request signing, see the + following: + + - [Amazon Web Services Security + Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) - + This topic provides general information about the types of credentials + used to access Amazon Web Services. + + - [Temporary Security + Credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) - + This section of the *IAM User Guide* describes how to create and use + temporary security credentials. + + - [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) - + This set of topics walks you through the process of signing a request + using an access key ID and a secret access key. + + **Commonly Used API Operations** + + Of the API operations discussed in this guide, the following will prove + the most useful for most applications. You will likely perform + operations other than these, such as creating keys and assigning + policies, by using the console. + + - Encrypt + + - Decrypt + + - GenerateDataKey + + - GenerateDataKeyWithoutPlaintext + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def cancel_key_deletion( + self, input: CancelKeyDeletionInput, plugins: list[Plugin] | None = None + ) -> CancelKeyDeletionOutput: + """ + Cancels the deletion of a KMS key. When this operation succeeds, the key + state of the KMS key is `Disabled`. To enable the KMS key, use + EnableKey. + + For more information about scheduling and canceling deletion of a KMS + key, see [Deleting KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CancelKeyDeletionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelKeyDeletionOutput`. + """ + return self._invoke(input, _models.CANCEL_KEY_DELETION, [], plugins) + + def connect_custom_key_store( + self, input: ConnectCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> ConnectCustomKeyStoreOutput: + """ + Connects or reconnects a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + to its backing key store. For an CloudHSM key store, + `ConnectCustomKeyStore` connects the key store to its associated + CloudHSM cluster. For an external key store, `ConnectCustomKeyStore` + connects the key store to the external key store proxy that communicates + with your external key manager. + + The custom key store must be connected before you can create KMS keys in + the key store or use the KMS keys it contains. You can disconnect and + reconnect a custom key store at any time. + + The connection process for a custom key store can take an extended + amount of time to complete. This operation starts the connection + process, but it does not wait for it to complete. When it succeeds, this + operation quickly returns an HTTP 200 response and a JSON object with no + properties. However, this response does not indicate that the custom key + store is connected. To get the connection state of the custom key store, + use the DescribeCustomKeyStores operation. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + The `ConnectCustomKeyStore` operation might fail for various reasons. To + find the reason, use the DescribeCustomKeyStores operation and see the + `ConnectionErrorCode` in the response. For help interpreting the + `ConnectionErrorCode`, see CustomKeyStoresListEntry. + + To fix the failure, use the DisconnectCustomKeyStore operation to + disconnect the custom key store, correct the error, use the + UpdateCustomKeyStore operation if necessary, and then use + `ConnectCustomKeyStore` again. + + **CloudHSM key store** + + During the connection process for an CloudHSM key store, KMS finds the + CloudHSM cluster that is associated with the custom key store, creates + the connection infrastructure, connects to the cluster, logs into the + CloudHSM client as the `kmsuser` CU, and rotates its password. + + To connect an CloudHSM key store, its associated CloudHSM cluster must + have at least one active HSM. To get the number of active HSMs in a + cluster, use the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. To add HSMs to the cluster, use the + [CreateHsm](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) + operation. Also, the [`kmsuser` crypto + user](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser) + (CU) must not be logged into the cluster. This prevents KMS from using + this account to log in. + + If you are having trouble connecting or disconnecting a CloudHSM key + store, see [Troubleshooting an CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) + in the *Key Management Service Developer Guide*. + + **External key store** + + When you connect an external key store that uses public endpoint + connectivity, KMS tests its ability to communicate with your external + key manager by sending a request via the external key store proxy. + + When you connect to an external key store that uses VPC endpoint service + connectivity, KMS establishes the networking elements that it needs to + communicate with your external key manager via the external key store + proxy. This includes creating an interface endpoint to the VPC endpoint + service and a private hosted zone for traffic between KMS and the VPC + endpoint service. + + To connect an external key store, KMS must be able to connect to the + external key store proxy, the external key store proxy must be able to + communicate with your external key manager, and the external key manager + must be available for cryptographic operations. + + If you are having trouble connecting or disconnecting an external key + store, see [Troubleshooting an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations** + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ConnectCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ConnectCustomKeyStoreOutput`. + """ + return self._invoke(input, _models.CONNECT_CUSTOM_KEY_STORE, [], plugins) + + def create_alias( + self, input: CreateAliasInput, plugins: list[Plugin] | None = None + ) -> CreateAliasOutput: + """ + Creates a friendly name for a KMS key. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + You can use an alias to identify a KMS key in the KMS console, in the + DescribeKey operation and in [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations), + such as Encrypt and GenerateDataKey. You can also change the KMS key + that's associated with the alias (UpdateAlias) or delete the alias + (DeleteAlias) at any time. These operations don't affect the underlying + KMS key. + + You can associate the alias with any customer managed key in the same + Amazon Web Services Region. Each alias is associated with only one KMS + key at a time, but a KMS key can have multiple aliases. A valid KMS key + is required. You can't create an alias without a KMS key. + + The alias must be unique in the account and Region, but you can have + aliases with the same name in different Regions. For detailed + information about aliases, see [Aliases in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) + in the *Key Management Service Developer Guide*. + + This operation does not return a response. To get the alias that you + created, use the ListAliases operation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on an alias + in a different Amazon Web Services account. + + **Required permissions** + + - [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - DeleteAlias + + - ListAliases + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateAliasOutput`. + """ + return self._invoke(input, _models.CREATE_ALIAS, [], plugins) + + def create_custom_key_store( + self, input: CreateCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> CreateCustomKeyStoreOutput: + """ + Creates a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + backed by a key store that you own and manage. When you use a KMS key in + a custom key store for a cryptographic operation, the cryptographic + operation is actually performed in your key store using your keys. KMS + supports [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) + backed by an [CloudHSM + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html) + and [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html) + backed by an external key store proxy and external key manager outside + of Amazon Web Services. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + Before you create the custom key store, the required elements must be in + place and operational. We recommend that you use the test tools that KMS + provides to verify the configuration your external key store proxy. For + details about the required elements and verification tests, see + [Assemble the prerequisites (for CloudHSM key + stores)](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) + or [Assemble the prerequisites (for external key + stores)](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements) + in the *Key Management Service Developer Guide*. + + To create a custom key store, use the following parameters. + + - To create an CloudHSM key store, specify the `CustomKeyStoreName`, + `CloudHsmClusterId`, `KeyStorePassword`, and `TrustAnchorCertificate`. + The `CustomKeyStoreType` parameter is optional for CloudHSM key + stores. If you include it, set it to the default value, + `AWS_CLOUDHSM`. For help with failures, see [Troubleshooting an + CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) + in the *Key Management Service Developer Guide*. + + - To create an external key store, specify the `CustomKeyStoreName` and + a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. Also, specify values + for `XksProxyConnectivity`, `XksProxyAuthenticationCredential`, + `XksProxyUriEndpoint`, and `XksProxyUriPath`. If your + `XksProxyConnectivity` value is `VPC_ENDPOINT_SERVICE`, specify the + `XksProxyVpcEndpointServiceName` parameter. For help with failures, + see [Troubleshooting an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html) + in the *Key Management Service Developer Guide*. + + Note: + For external key stores: + + Some external key managers provide a simpler method for creating an + external key store. For details, see your external key manager + documentation. + + When creating an external key store in the KMS console, you can upload a + JSON-based proxy configuration file with the desired values. You cannot + use a proxy configuration with the `CreateCustomKeyStore` operation. + However, you can use the values in the file to help you determine the + correct values for the `CreateCustomKeyStore` parameters. + + When the operation completes successfully, it returns the ID of the new + custom key store. Before you can use your new custom key store, you need + to use the ConnectCustomKeyStore operation to connect a new CloudHSM key + store to its CloudHSM cluster, or to connect a new external key store to + the external key store proxy for your external key manager. Even if you + are not going to use your custom key store immediately, you might want + to connect it to verify that all settings are correct and then + disconnect it until you are ready to use it. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). + + **Related operations:** + + - ConnectCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomKeyStoreOutput`. + """ + return self._invoke(input, _models.CREATE_CUSTOM_KEY_STORE, [], plugins) + + def create_grant( + self, input: CreateGrantInput, plugins: list[Plugin] | None = None + ) -> CreateGrantOutput: + """ + Adds a grant to a KMS key. + + A *grant* is a policy instrument that allows Amazon Web Services + principals to use KMS keys in cryptographic operations. It also can + allow them to view a KMS key (DescribeKey) and create and manage grants. + When authorizing access to a KMS key, grants are considered along with + key policies and IAM policies. Grants are often used for temporary + permissions because you can create one, use its permissions, and delete + it without changing your key policies or IAM policies. + + You can create a grant for an Amazon Web Services principal (IAM user, + IAM role, or Amazon Web Services account) by specifying the + `GranteePrincipal` parameter. You can also create a grant for an Amazon + Web Services service principal by specifying the + `GranteeServicePrincipal` parameter. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + The `CreateGrant` operation returns a `GrantToken` and a `GrantId`. + + - When you create, retire, or revoke a grant, there might be a brief + delay, usually less than five minutes, until the grant is available + throughout KMS. This state is known as *eventual consistency*. Once + the grant has achieved eventual consistency, the grantee principal can + use the permissions in the grant without identifying the grant. + + However, to use the permissions in the grant immediately, use the + `GrantToken` that `CreateGrant` returns. For details, see [Using a + grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the Key Management Service Developer Guide . + + - The `CreateGrant` operation also returns a `GrantId`. You can use the + `GrantId` and a key identifier to identify the grant in the + RetireGrant and RevokeGrant operations. To find the grant ID, use the + ListGrants or ListRetirableGrants operations. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - ListGrants + + - ListRetirableGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGrantOutput`. + """ + return self._invoke(input, _models.CREATE_GRANT, [], plugins) + + def create_key( + self, input: CreateKeyInput | None = None, plugins: list[Plugin] | None = None + ) -> CreateKeyOutput: + """ + Creates a unique customer managed [KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys) + in your Amazon Web Services account and Region. You can use a KMS key in + cryptographic operations, such as encryption and signing. Some Amazon + Web Services services let you use KMS keys that you create and manage to + protect your service resources. + + A KMS key is a logical representation of a cryptographic key. In + addition to the key material used in cryptographic operations, a KMS key + includes metadata, such as the key ID, key policy, creation date, + description, and key state. + + Use the parameters of `CreateKey` to specify the type of KMS key, the + source of its key material, its key policy, description, tags, and other + properties. + + Note: + KMS has replaced the term *customer master key (CMK)* with *Key + Management Service key* and *KMS key*. The concept has not changed. To + prevent breaking changes, KMS is keeping some variations of this term. + + To create different types of KMS keys, use the following guidance: + + Symmetric encryption KMS key + + : By default, `CreateKey` creates a symmetric encryption KMS key with + key material that KMS generates. This is the basic and most widely + used type of KMS key, and provides the best performance. + + To create a symmetric encryption KMS key, you don't need to specify + any parameters. The default value for `KeySpec`, `SYMMETRIC_DEFAULT`, + the default value for `KeyUsage`, `ENCRYPT_DECRYPT`, and the default + value for `Origin`, `AWS_KMS`, create a symmetric encryption KMS key + with KMS key material. + + If you need a key for basic encryption and decryption or you are + creating a KMS key to protect your resources in an Amazon Web Services + service, create a symmetric encryption KMS key. The key material in a + symmetric encryption key never leaves KMS unencrypted. You can use a + symmetric encryption KMS key to encrypt and decrypt data up to 4,096 + bytes, but they are typically used to generate data keys and data keys + pairs. For details, see GenerateDataKey and GenerateDataKeyPair. + + Asymmetric KMS keys + + : To create an asymmetric KMS key, use the `KeySpec` parameter to + specify the type of key material in the KMS key. Then, use the + `KeyUsage` parameter to determine whether the KMS key will be used to + encrypt and decrypt or sign and verify. You can't change these + properties after the KMS key is created. + + Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key + pair, ML-DSA key pair or an SM2 key pair (China Regions only). The + private key in an asymmetric KMS key never leaves KMS unencrypted. + However, you can use the GetPublicKey operation to download the public + key so it can be used outside of KMS. Each KMS key can have only one + key usage. KMS keys with RSA key pairs can be used to encrypt and + decrypt data or sign and verify messages (but not both). KMS keys with + NIST-standard ECC key pairs can be used to sign and verify messages or + derive shared secrets (but not both). KMS keys with `ECC_SECG_P256K1` + can be used only to sign and verify messages. KMS keys with ML-DSA key + pairs can be used to sign and verify messages. KMS keys with SM2 key + pairs (China Regions only) can be used to either encrypt and decrypt + data, sign and verify messages, or derive shared secrets (you must + choose one key usage type). For information about asymmetric KMS keys, + see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + HMAC KMS key + + : To create an HMAC KMS key, set the `KeySpec` parameter to a key spec + value for HMAC KMS keys. Then set the `KeyUsage` parameter to + `GENERATE_VERIFY_MAC`. You must set the key usage even though + `GENERATE_VERIFY_MAC` is the only valid key usage value for HMAC KMS + keys. You can't change these properties after the KMS key is created. + + HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You + can use HMAC keys to generate (GenerateMac) and verify (VerifyMac) + HMAC codes for messages up to 4096 bytes. + + Multi-Region primary keys + + : To create a multi-Region *primary key* in the local Amazon Web + Services Region, use the `MultiRegion` parameter with a value of + `True`. To create a multi-Region *replica key*, that is, a KMS key + with the same key ID and key material as a primary key, but in a + different Amazon Web Services Region, use the ReplicateKey operation. + To change a replica key to a primary key, and its primary key to a + replica key, use the UpdatePrimaryRegion operation. + + You can create multi-Region KMS keys for all supported KMS key types: + symmetric encryption KMS keys, HMAC KMS keys, asymmetric encryption + KMS keys, and asymmetric signing KMS keys. You can also create + multi-Region keys with imported key material. However, you can't + create multi-Region keys in a custom key store. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + Imported key material + + : To import your own key material into a KMS key, begin by creating a + KMS key with no key material. To do this, use the `Origin` parameter + of `CreateKey` with a value of `EXTERNAL`. Next, use + GetParametersForImport operation to get a public key and import token. + Use the wrapping public key to encrypt your key material. Then, use + ImportKeyMaterial with your import token to import the key material. + For step-by-step instructions, see [Importing Key + Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) + in the Key Management Service Developer Guide . + + You can import key material into KMS keys of all supported KMS key + types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric + encryption KMS keys, and asymmetric signing KMS keys. You can also + create multi-Region keys with imported key material. However, you + can't import key material into a KMS key in a custom key store. + + To create a multi-Region primary key with imported key material, use + the `Origin` parameter of `CreateKey` with a value of `EXTERNAL` and + the `MultiRegion` parameter with a value of `True`. To create replicas + of the multi-Region primary key, use the ReplicateKey operation. For + instructions, see [Importing key material step + 1](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html). + For more information about multi-Region keys, see [Multi-Region keys + in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + Custom key store + + : A [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + lets you protect your Amazon Web Services resources using keys in a + backing key store that you own and manage. When you request a + cryptographic operation with a KMS key in a custom key store, the + operation is performed in the backing key store using its + cryptographic keys. + + KMS supports [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) + backed by an CloudHSM cluster and [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html) + backed by an external key manager outside of Amazon Web Services. When + you create a KMS key in an CloudHSM key store, KMS generates an + encryption key in the CloudHSM cluster and associates it with the KMS + key. When you create a KMS key in an external key store, you specify + an existing encryption key in the external key manager. + + Note: + Some external key managers provide a simpler method for creating a KMS + key in an external key store. For details, see your external key + manager documentation. + Before you create a KMS key in a custom key store, the + `ConnectionState` of the key store must be `CONNECTED`. To connect the + custom key store, use the ConnectCustomKeyStore operation. To find the + `ConnectionState`, use the DescribeCustomKeyStores operation. + + To create a KMS key in a custom key store, use the `CustomKeyStoreId`. + Use the default `KeySpec` value, `SYMMETRIC_DEFAULT`, and the default + `KeyUsage` value, `ENCRYPT_DECRYPT` to create a symmetric encryption + key. No other key type is supported in a custom key store. + + To create a KMS key in an [CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html), + use the `Origin` parameter with a value of `AWS_CLOUDHSM`. The + CloudHSM cluster that is associated with the custom key store must + have at least two active HSMs in different Availability Zones in the + Amazon Web Services Region. + + To create a KMS key in an [external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html), + use the `Origin` parameter with a value of `EXTERNAL_KEY_STORE` and an + `XksKeyId` parameter that identifies an existing external key. + + Note: + Some external key managers provide a simpler method for creating a KMS + key in an external key store. For details, see your external key + manager documentation. + + **Cross-account use**: No. You cannot use this operation to create a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). To use the `Tags` parameter, + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy). For examples and information about related permissions, + see [Allow a user to create KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/customer-managed-policies.html#iam-policy-example-create-key) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - DescribeKey + + - ListKeys + + - ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `CreateKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateKeyOutput`. + """ + return self._invoke(input, _models.CREATE_KEY, [], plugins) + + def decapsulate( + self, input: DecapsulateInput, plugins: list[Plugin] | None = None + ) -> DecapsulateOutput: + """ + Recovers the shared secret that was encapsulated with the public key of + an ML-KEM KMS key. Module-Lattice-Based Key-Encapsulation Mechanism + (ML-KEM), specified in [FIPS + 203](https://csrc.nist.gov/pubs/fips/203/final) on the NIST website, is + a post-quantum algorithm for establishing a shared secret between two + parties. For an example of how two parties establish a shared secret + over an insecure channel using ML-KEM, see [ML-KEM keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem) + in the *Key Management Service Developer Guide*. + + The Decapsulate operation is not available in China Regions. + + `Decapsulate` returns the shared secret as a 32-byte value. You can use + it directly as key material, or run it through a key derivation function + to derive multiple keys and nonces. + + Warning: + `Decapsulate` returns an `InvalidCiphertextException` when the length of + the `SharedSecretCiphertextBlob` is inconsistent with the ML-KEM key + spec. In all other cases, `Decapsulate` returns a 32-byte pseudo-random + value. This is true even when the `SharedSecretCiphertextBlob` was + created using a different ML-KEM key or altered from its original value. + This behavior is a security feature called *implicit rejection* that + helps protect against chosen-ciphertext attacks. + + Because a response does not indicate that the ciphertext and key are + valid, confirm the two parties derived the same shared secret before + using it. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Decapsulate](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Encapsulate + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DecapsulateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecapsulateOutput`. + """ + return self._invoke(input, _models.DECAPSULATE, [], plugins) + + def decrypt( + self, input: DecryptInput | None = None, plugins: list[Plugin] | None = None + ) -> DecryptOutput: + """ + Decrypts ciphertext that was encrypted by a KMS key using any of the + following operations: + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyWithoutPlaintext + + - GenerateDataKeyPairWithoutPlaintext + + You can use this operation to decrypt ciphertext that was encrypted + under a symmetric encryption KMS key or an asymmetric encryption KMS + key. When the KMS key is asymmetric, you must specify the KMS key and + the encryption algorithm that was used to encrypt the ciphertext. For + information about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + The `Decrypt` operation also decrypts ciphertext that was encrypted + outside of KMS by the public key in an KMS asymmetric KMS key. However, + it cannot decrypt symmetric ciphertext produced by other libraries, such + as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). + These libraries return a ciphertext format that is incompatible with + KMS. + + If the ciphertext was encrypted under a symmetric encryption KMS key, + the `KeyId` parameter is optional. KMS can get this information from + metadata that it adds to the symmetric ciphertext blob. This feature + adds durability to your implementation by ensuring that authorized users + can decrypt ciphertext decades after it was encrypted, even if they've + lost track of the key ID. However, specifying the KMS key is always + recommended as a best practice. When you use the `KeyId` parameter to + specify a KMS key, KMS only uses the KMS key you specify. If the + ciphertext was encrypted under a different KMS key, the `Decrypt` + operation fails. This practice ensures that you use the KMS key that you + intend. + + Whenever possible, use key policies to give users permission to call the + `Decrypt` operation on a particular KMS key, instead of using IAM + policies. Otherwise, you might create an IAM policy that gives the user + `Decrypt` permission on all KMS keys. This user could decrypt ciphertext + that was encrypted by KMS keys in other accounts if the key policy for + the cross-account KMS key permits it. If you must use an IAM policy for + `Decrypt` permissions, limit the user to particular KMS keys or + particular trusted accounts. For details, see [Best practices for IAM + policies](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices) + in the *Key Management Service Developer Guide*. + + `Decrypt` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html) + and NitroTPM, which provide attested environments in Amazon EC2. To call + `Decrypt` for a Nitro enclave or NitroTPM, use the [Amazon Web Services + Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. Instead of the + plaintext data, the response includes the plaintext data encrypted with + the public key from the attestation document (`CiphertextForRecipient`). + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To specify a KMS key in a different Amazon + Web Services account, use the [key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) + or [alias + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-alias-ARN). + A short [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + is also acceptable when decrypting symmetric ciphertexts, though using a + full key ARN is recommended to be more explicit about the intended KMS + key. + + **Required permissions**: + [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - ReEncrypt + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DecryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DecryptOutput`. + """ + return self._invoke(input, _models.DECRYPT, [], plugins) + + def delete_alias( + self, input: DeleteAliasInput, plugins: list[Plugin] | None = None + ) -> DeleteAliasOutput: + """ + Deletes the specified alias. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + Because an alias is not a property of a KMS key, you can delete and + change the aliases of a KMS key without affecting the KMS key. Also, + aliases do not appear in the response from the DescribeKey operation. To + get the aliases of all KMS keys, use the ListAliases operation. + + Each KMS key can have multiple aliases. To change the alias of a KMS + key, use DeleteAlias to delete the current alias and CreateAlias to + create a new alias. To associate an existing alias with a different KMS + key, call UpdateAlias. + + **Cross-account use**: No. You cannot perform this operation on an alias + in a different Amazon Web Services account. + + **Required permissions** + + - [kms:DeleteAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:DeleteAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - ListAliases + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteAliasOutput`. + """ + return self._invoke(input, _models.DELETE_ALIAS, [], plugins) + + def delete_custom_key_store( + self, input: DeleteCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> DeleteCustomKeyStoreOutput: + """ + Deletes a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + This operation does not affect any backing elements of the custom key + store. It does not delete the CloudHSM cluster that is associated with + an CloudHSM key store, or affect any users or keys in the cluster. For + an external key store, it does not affect the external key store proxy, + external key manager, or any external keys. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + The custom key store that you delete cannot contain any [KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). + Before deleting the key store, verify that you will never need to use + any of the KMS keys in the key store for any [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + Then, use ScheduleKeyDeletion to delete the KMS keys from the key store. + After the required waiting period expires and all KMS keys are deleted + from the custom key store, use DisconnectCustomKeyStore to disconnect + the key store from KMS. Then, you can delete the custom key store. + + For keys in an CloudHSM key store, the `ScheduleKeyDeletion` operation + makes a best effort to delete the key material from the associated + cluster. However, you might need to manually [delete the orphaned key + material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) + from the cluster and its backups. KMS never creates, manages, or deletes + cryptographic keys in the external key manager associated with an + external key store. You must manage them using your external key manager + tools. + + Instead of deleting the custom key store, consider using the + DisconnectCustomKeyStore operation to disconnect the custom key store + from its backing key store. While the key store is disconnected, you + cannot create or use the KMS keys in the key store. But, you do not need + to delete KMS keys and you can reconnect a disconnected custom key store + at any time. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomKeyStoreOutput`. + """ + return self._invoke(input, _models.DELETE_CUSTOM_KEY_STORE, [], plugins) + + def delete_imported_key_material( + self, input: DeleteImportedKeyMaterialInput, plugins: list[Plugin] | None = None + ) -> DeleteImportedKeyMaterialOutput: + """ + Deletes key material that was previously imported. This operation makes + the specified KMS key temporarily unusable. To restore the usability of + the KMS key, reimport the same key material. For more information about + importing key material into KMS, see [Importing Key + Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) + in the *Key Management Service Developer Guide*. + + When the specified KMS key is in the `PendingDeletion` state, this + operation does not change the KMS key's state. Otherwise, it changes + the KMS key's state to `PendingImport`. + + **Considerations for multi-Region symmetric encryption keys** + + - When you delete the key material of a primary Region key that is in + `PENDING_ROTATION` or `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`state, + you'll also be deleting the key materials for the replica Region + keys. + + - If you delete any key material of a replica Region key, the primary + Region key and other replica Region keys remain unchanged. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetParametersForImport + + - ListKeyRotations + + - ImportKeyMaterial + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeleteImportedKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteImportedKeyMaterialOutput`. + """ + return self._invoke(input, _models.DELETE_IMPORTED_KEY_MATERIAL, [], plugins) + + def derive_shared_secret( + self, input: DeriveSharedSecretInput, plugins: list[Plugin] | None = None + ) -> DeriveSharedSecretOutput: + """ + Derives a shared secret using a key agreement algorithm. + + Note: + You must use an asymmetric NIST-standard elliptic curve (ECC) or SM2 + (China Regions only) KMS key pair with a `KeyUsage` value of + `KEY_AGREEMENT` to call DeriveSharedSecret. + + DeriveSharedSecret uses the [Elliptic Curve Cryptography Cofactor + Diffie-Hellman + Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60) + (ECDH) to establish a key agreement between two peers by deriving a + shared secret from their elliptic curve public-private key pairs. You + can use the raw shared secret that DeriveSharedSecret returns to derive + a symmetric key that can encrypt and decrypt data that is sent between + the two peers, or that can generate and verify HMACs. KMS recommends + that you follow [NIST recommendations for key + derivation](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf) + when using the raw shared secret to derive a symmetric key. + + The following workflow demonstrates how to establish key agreement over + an insecure communication channel using DeriveSharedSecret. + + 1. **Alice** calls CreateKey to create an asymmetric KMS key pair with + a `KeyUsage` value of `KEY_AGREEMENT`. + + The asymmetric KMS key must use a NIST-standard elliptic curve (ECC) + or SM2 (China Regions only) key spec. + + 2. **Bob** creates an elliptic curve key pair. + + Bob can call CreateKey to create an asymmetric KMS key pair or + generate a key pair outside of KMS. Bob's key pair must use the + same NIST-standard elliptic curve (ECC) or SM2 (China Regions ony) + curve as Alice. + + 3. Alice and Bob **exchange their public keys** through an insecure + communication channel (like the internet). + + Use GetPublicKey to download the public key of your asymmetric KMS + key pair. + + Note: + KMS strongly recommends verifying that the public key you receive + came from the expected party before using it to derive a shared + secret. + + 4. **Alice** calls DeriveSharedSecret. + + KMS uses the private key from the KMS key pair generated in **Step + 1**, Bob's public key, and the Elliptic Curve Cryptography Cofactor + Diffie-Hellman Primitive to derive the shared secret. The private + key in your KMS key pair never leaves KMS unencrypted. + DeriveSharedSecret returns the raw shared secret. + + 5. **Bob** uses the Elliptic Curve Cryptography Cofactor Diffie-Hellman + Primitive to calculate the same raw secret using his private key and + Alice's public key. + + To derive a shared secret you must provide a key agreement algorithm, + the private key of the caller's asymmetric NIST-standard elliptic curve + or SM2 (China Regions only) KMS key pair, and the public key from your + peer's NIST-standard elliptic curve or SM2 (China Regions only) key + pair. The public key can be from another asymmetric KMS key pair or from + a key pair generated outside of KMS, but both key pairs must be on the + same elliptic curve. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DeriveSharedSecretInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeriveSharedSecretOutput`. + """ + return self._invoke(input, _models.DERIVE_SHARED_SECRET, [], plugins) + + def describe_custom_key_stores( + self, + input: DescribeCustomKeyStoresInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCustomKeyStoresOutput: + """ + Gets information about [custom key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + in the account and Region. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + By default, this operation returns information about all custom key + stores in the account and Region. To get only information about a + particular custom key store, use either the `CustomKeyStoreName` or + `CustomKeyStoreId` parameter (but not both). + + To determine whether the custom key store is connected to its CloudHSM + cluster or external key store proxy, use the `ConnectionState` element + in the response. If an attempt to connect the custom key store failed, + the `ConnectionState` value is `FAILED` and the `ConnectionErrorCode` + element in the response indicates the cause of the failure. For help + interpreting the `ConnectionErrorCode`, see CustomKeyStoresListEntry. + + Custom key stores have a `DISCONNECTED` connection state if the key + store has never been connected or you used the DisconnectCustomKeyStore + operation to disconnect it. Otherwise, the connection state is + CONNECTED. If your custom key store connection state is `CONNECTED` but + you are having trouble using it, verify that the backing store is active + and available. For an CloudHSM key store, verify that the associated + CloudHSM cluster is active and contains the minimum number of HSMs + required for the operation, if any. For an external key store, verify + that the external key store proxy and its associated external key + manager are reachable and enabled. + + For help repairing your CloudHSM key store, see the [Troubleshooting + CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html). + For help repairing your external key store, see the [Troubleshooting + external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html). + Both topics are in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DisconnectCustomKeyStore + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DescribeCustomKeyStoresInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCustomKeyStoresOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CUSTOM_KEY_STORES, [], plugins) + + def describe_key( + self, input: DescribeKeyInput, plugins: list[Plugin] | None = None + ) -> DescribeKeyOutput: + """ + Provides detailed information about a KMS key. You can run `DescribeKey` + on a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) + or an [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + + This detailed information includes the key ARN, creation date (and + deletion date, if applicable), the key state, and the origin and + expiration date (if any) of the key material. It includes fields, like + `KeySpec`, that help you distinguish different types of KMS keys. It + also displays the key usage (encryption, signing, or generating and + verifying MACs) and the algorithms that the KMS key supports. + + For [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html), + `DescribeKey` displays the primary key and all related replica keys. For + KMS keys in [CloudHSM key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html), + it includes information about the key store, such as the key store ID + and the CloudHSM cluster ID. For KMS keys in [external key + stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html), + it includes the custom key store ID and the ID of the external key. + + `DescribeKey` does not return the following information: + + - Aliases associated with the KMS key. To get this information, use + ListAliases. + + - Whether automatic key rotation is enabled on the KMS key. To get this + information, use GetKeyRotationStatus. Also, some key states prevent a + KMS key from being automatically rotated. For details, see [How key + rotation + works](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works) + in the *Key Management Service Developer Guide*. + + - Tags on the KMS key. To get this information, use ListResourceTags. + + - Key policies and grants on the KMS key. To get this information, use + GetKeyPolicy and ListGrants. + + In general, `DescribeKey` is a non-mutating operation. It returns data + about KMS keys, but doesn't change them. However, Amazon Web Services + services use `DescribeKey` to create [Amazon Web Services managed + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + from a *predefined Amazon Web Services alias* with no key ID. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetKeyPolicy + + - GetKeyRotationStatus + + - ListAliases + + - ListGrants + + - ListKeys + + - ListResourceTags + + - ListRetirableGrants + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DescribeKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeKeyOutput`. + """ + return self._invoke(input, _models.DESCRIBE_KEY, [], plugins) + + def disable_key( + self, input: DisableKeyInput, plugins: list[Plugin] | None = None + ) -> DisableKeyOutput: + """ + Sets the state of a KMS key to disabled. This change temporarily + prevents use of the KMS key for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + + The KMS key that you use for this operation must be in a compatible key + state. For more information about how key state affects the use of a KMS + key, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the Key Management Service Developer Guide . + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisableKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: EnableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisableKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableKeyOutput`. + """ + return self._invoke(input, _models.DISABLE_KEY, [], plugins) + + def disable_key_rotation( + self, input: DisableKeyRotationInput, plugins: list[Plugin] | None = None + ) -> DisableKeyRotationOutput: + """ + Disables [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + of the specified symmetric encryption KMS key. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You can enable (EnableKeyRotation) and disable automatic rotation of the + key material in [customer managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + Key material rotation of [Amazon Web Services managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + is not configurable. KMS always rotates the key material for every year. + Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + varies. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years to every year. For details, see + EnableKeyRotation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisableKeyRotation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - GetKeyRotationStatus + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisableKeyRotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableKeyRotationOutput`. + """ + return self._invoke(input, _models.DISABLE_KEY_ROTATION, [], plugins) + + def disconnect_custom_key_store( + self, input: DisconnectCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> DisconnectCustomKeyStoreOutput: + """ + Disconnects the [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + from its backing key store. This operation disconnects an CloudHSM key + store from its associated CloudHSM cluster or disconnects an external + key store from the external key store proxy that communicates with your + external key manager. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + While a custom key store is disconnected, you can manage the custom key + store and its KMS keys, but you cannot create or use its KMS keys. You + can reconnect the custom key store at any time. + + Note: + While a custom key store is disconnected, all attempts to create KMS + keys in the custom key store or to use existing KMS keys in + [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + will fail. This action can prevent users from storing and accessing + sensitive data. + + When you disconnect a custom key store, its `ConnectionState` changes to + `Disconnected`. To find the connection state of a custom key store, use + the DescribeCustomKeyStores operation. To reconnect a custom key store, + use the ConnectCustomKeyStore operation. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - UpdateCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `DisconnectCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisconnectCustomKeyStoreOutput`. + """ + return self._invoke(input, _models.DISCONNECT_CUSTOM_KEY_STORE, [], plugins) + + def enable_key( + self, input: EnableKeyInput, plugins: list[Plugin] | None = None + ) -> EnableKeyOutput: + """ + Sets the key state of a KMS key to enabled. This allows you to use the + KMS key for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:EnableKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: DisableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EnableKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableKeyOutput`. + """ + return self._invoke(input, _models.ENABLE_KEY, [], plugins) + + def enable_key_rotation( + self, input: EnableKeyRotationInput, plugins: list[Plugin] | None = None + ) -> EnableKeyRotationOutput: + """ + Enables [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + of the specified symmetric encryption KMS key. + + By default, when you enable automatic rotation of a [customer managed + KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key), + KMS rotates the key material of the KMS key one year (approximately 365 + days) from the enable date and every year thereafter. You can use the + optional `RotationPeriodInDays` parameter to specify a custom rotation + period when you enable key rotation, or you can use + `RotationPeriodInDays` to modify the rotation period of a key that you + previously enabled automatic key rotation on. + + You can monitor rotation of the key material for your KMS keys in + CloudTrail and Amazon CloudWatch. To disable rotation of the key + material in a customer managed KMS key, use the DisableKeyRotation + operation. You can use the GetKeyRotationStatus operation to identify + any in progress rotations. You can use the ListKeyRotations operation to + view the details of completed rotations. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You cannot enable or disable automatic rotation of [Amazon Web Services + managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + KMS always rotates the key material of Amazon Web Services managed keys + every year. Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + is managed by the Amazon Web Services service that owns the key. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years (approximately 1,095 days) to every + year (approximately 365 days). + + New Amazon Web Services managed keys are automatically rotated one year + after they are created, and approximately every year thereafter. + + Existing Amazon Web Services managed keys are automatically rotated one + year after their most recent rotation, and every year thereafter. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ListKeyRotations + + - RotateKeyOnDemand + + Note: + You can perform on-demand (RotateKeyOnDemand) rotation of the key + material in customer managed KMS keys, regardless of whether or not + automatic key rotation is enabled. + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EnableKeyRotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableKeyRotationOutput`. + """ + return self._invoke(input, _models.ENABLE_KEY_ROTATION, [], plugins) + + def encapsulate( + self, input: EncapsulateInput, plugins: list[Plugin] | None = None + ) -> EncapsulateOutput: + """ + Generates a shared secret and its encapsulated (ciphertext) form using + the public key of an ML-KEM KMS key pair. Module-Lattice-Based + Key-Encapsulation Mechanism (ML-KEM), specified in [FIPS + 203](https://csrc.nist.gov/pubs/fips/203/final) on the NIST website, is + a post-quantum algorithm for establishing a shared secret between two + parties. + + For an example of how two parties establish a shared secret over an + insecure channel using ML-KEM, see [ML-KEM keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem) + in the *Key Management Service Developer Guide*. + + The Encapsulate operation is not available in China Regions. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Encapsulate](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decapsulate + + - DeriveSharedSecret + + - CreateKey + + - GetPublicKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EncapsulateInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EncapsulateOutput`. + """ + return self._invoke(input, _models.ENCAPSULATE, [], plugins) + + def encrypt( + self, input: EncryptInput, plugins: list[Plugin] | None = None + ) -> EncryptOutput: + """ + Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a + symmetric or asymmetric KMS key with a `KeyUsage` of `ENCRYPT_DECRYPT`. + + You can use this operation to encrypt small amounts of arbitrary data, + such as a personal identifier or database password, or other sensitive + information. You don't need to use the `Encrypt` operation to encrypt a + data key. The GenerateDataKey and GenerateDataKeyPair operations return + a plaintext data key and an encrypted copy of that data key. + + If you use a symmetric encryption KMS key, you can use an encryption + context to add additional security to your encryption operation. If you + specify an `EncryptionContext` when encrypting data, you must specify + the same encryption context (a case-sensitive exact match) when + decrypting the data. Otherwise, the request to decrypt fails with an + `InvalidCiphertextException`. For more information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + If you specify an asymmetric KMS key, you must also specify the + encryption algorithm. The algorithm must be compatible with the KMS key + spec. + + Warning: + When you use an asymmetric KMS key to encrypt or reencrypt data, be sure + to record the KMS key and encryption algorithm that you choose. You will + be required to provide the same KMS key and encryption algorithm when + you decrypt the data. If the KMS key and algorithm do not match the + values used to encrypt the data, the decrypt operation fails. + + You are not required to supply the key ID and encryption algorithm when + you decrypt with symmetric encryption KMS keys because KMS stores this + information in the ciphertext blob. KMS cannot store metadata in + ciphertext generated with asymmetric keys. The standard format for + asymmetric key ciphertext does not include configurable fields. + + The maximum size of the data that you can encrypt varies with the type + of KMS key and the encryption algorithm that you choose. + + - Symmetric encryption KMS keys + + - `SYMMETRIC_DEFAULT`: 4096 bytes + + - `RSA_2048` + + - `RSAES_OAEP_SHA_1`: 214 bytes + + - `RSAES_OAEP_SHA_256`: 190 bytes + + - `RSA_3072` + + - `RSAES_OAEP_SHA_1`: 342 bytes + + - `RSAES_OAEP_SHA_256`: 318 bytes + + - `RSA_4096` + + - `RSAES_OAEP_SHA_1`: 470 bytes + + - `RSAES_OAEP_SHA_256`: 446 bytes + + - `SM2PKE`: 1024 bytes (China Regions only) + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `EncryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EncryptOutput`. + """ + return self._invoke(input, _models.ENCRYPT, [], plugins) + + def generate_data_key( + self, input: GenerateDataKeyInput, plugins: list[Plugin] | None = None + ) -> GenerateDataKeyOutput: + """ + Returns a unique symmetric data key for use outside of KMS. This + operation returns a plaintext copy of the data key and a copy that is + encrypted under a symmetric encryption KMS key that you specify. The + bytes in the plaintext key are random; they are not related to the + caller or the KMS key. You can use the plaintext key to encrypt your + data outside of KMS and store the encrypted data key with the encrypted + data. + + To generate a data key, specify the symmetric encryption KMS key that + will be used to encrypt the data key. You cannot use an asymmetric KMS + key to encrypt data keys. To get the type of your KMS key, use the + DescribeKey operation. + + You must also specify the length of the data key. Use either the + `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit and + 256-bit data keys, use the `KeySpec` parameter. + + To generate a 128-bit SM4 data key (China Regions only), specify a + `KeySpec` value of `AES_128` or a `NumberOfBytes` value of `16`. The + symmetric encryption key used in China Regions to encrypt your data key + is an SM4 encryption key. + + To get only an encrypted copy of the data key, use + GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key + pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext + operation. To get a cryptographically secure random byte string, use + GenerateRandom. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + `GenerateDataKey` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateDataKey` for an Amazon Web Services Nitro enclave or NitroTPM, + use the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. `GenerateDataKey` + returns a copy of the data key encrypted under the specified KMS key, as + usual. But instead of a plaintext copy of the data key, the response + includes a copy of the data key encrypted under the public key from the + attestation document (`CiphertextForRecipient`). For information about + the interaction between KMS and Amazon Web Services Nitro Enclaves or + Amazon Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **How to use your data key** + + We recommend that you use the following pattern to encrypt data locally + in your application. You can write your own code or use a client-side + encryption library, such as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/), + the [Amazon DynamoDB Encryption + Client](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/), + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html) + to do these tasks for you. + + To encrypt data outside of KMS: + + 1. Use the `GenerateDataKey` operation to get a data key. + + 2. Use the plaintext data key (in the `Plaintext` field of the + response) to encrypt your data outside of KMS. Then erase the + plaintext data key from memory. + + 3. Store the encrypted data key (in the `CiphertextBlob` field of the + response) with the encrypted data. + + To decrypt data outside of KMS: + + 1. Use the Decrypt operation to decrypt the encrypted data key. The + operation returns a plaintext copy of the data key. + + 2. Use the plaintext data key to decrypt data outside of KMS, then + erase the plaintext data key from memory. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKeyPair + + - GenerateDataKeyPairWithoutPlaintext + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyOutput`. + """ + return self._invoke(input, _models.GENERATE_DATA_KEY, [], plugins) + + def generate_data_key_pair( + self, input: GenerateDataKeyPairInput, plugins: list[Plugin] | None = None + ) -> GenerateDataKeyPairOutput: + """ + Returns a unique asymmetric data key pair for use outside of KMS. This + operation returns a plaintext public key, a plaintext private key, and a + copy of the private key that is encrypted under the symmetric encryption + KMS key you specify. You can use the data key pair to perform asymmetric + cryptography and implement digital signatures outside of KMS. The bytes + in the keys are random; they are not related to the caller or to the KMS + key that is used to encrypt the private key. + + You can use the public key that `GenerateDataKeyPair` returns to encrypt + data or verify a signature outside of KMS. Then, store the encrypted + private key with the data. When you are ready to decrypt data or sign a + message, you can use the Decrypt operation to decrypt the encrypted + private key. + + To generate a data key pair, you must specify a symmetric encryption KMS + key to encrypt the private key in a data key pair. You cannot use an + asymmetric KMS key or a KMS key in a custom key store. To get the type + and origin of your KMS key, use the DescribeKey operation. + + Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve (ECC) + data key pair. In China Regions, you can also choose an SM2 data key + pair. KMS recommends that you use ECC key pairs for signing, and use RSA + and SM2 key pairs for either encryption or signing, but not both. + However, KMS cannot enforce any restrictions on the use of data key + pairs outside of KMS. + + If you are using the data key pair to encrypt data, or for any operation + where you don't immediately need a private key, consider using the + GenerateDataKeyPairWithoutPlaintext operation. + `GenerateDataKeyPairWithoutPlaintext` returns a plaintext public key and + an encrypted private key, but omits the plaintext private key that you + need only to decrypt ciphertext or sign a message. Later, when you need + to decrypt the data or sign a message, use the Decrypt operation to + decrypt the encrypted private key in the data key pair. + + `GenerateDataKeyPair` returns a unique data key pair for each request. + The bytes in the keys are random; they are not related to the caller or + the KMS key that is used to encrypt the private key. The public key is a + DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + 5280](https://tools.ietf.org/html/rfc5280). The private key is a + DER-encoded PKCS8 PrivateKeyInfo, as specified in [RFC + 5958](https://tools.ietf.org/html/rfc5958). + + Note: + For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains + the private key in seed format. As a result, the length of the private + key is the same for all ML-KEM key pair specs. + + `GenerateDataKeyPair` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateDataKeyPair` for an Amazon Web Services Nitro enclave or + NitroTPM, use the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. + `GenerateDataKeyPair` returns the public data key and a copy of the + private data key encrypted under the specified KMS key, as usual. But + instead of a plaintext copy of the private data key + (`PrivateKeyPlaintext`), the response includes a copy of the private + data key encrypted under the public key from the attestation document + (`CiphertextForRecipient`). For information about the interaction + between KMS and Amazon Web Services Nitro Enclaves or Amazon Web + Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPairWithoutPlaintext + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyPairInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyPairOutput`. + """ + return self._invoke(input, _models.GENERATE_DATA_KEY_PAIR, [], plugins) + + def generate_data_key_pair_without_plaintext( + self, + input: GenerateDataKeyPairWithoutPlaintextInput, + plugins: list[Plugin] | None = None, + ) -> GenerateDataKeyPairWithoutPlaintextOutput: + """ + Returns a unique asymmetric data key pair for use outside of KMS. This + operation returns a plaintext public key and a copy of the private key + that is encrypted under the symmetric encryption KMS key you specify. + Unlike GenerateDataKeyPair, this operation does not return a plaintext + private key. The bytes in the keys are random; they are not related to + the caller or to the KMS key that is used to encrypt the private key. + + You can use the public key that `GenerateDataKeyPairWithoutPlaintext` + returns to encrypt data or verify a signature outside of KMS. Then, + store the encrypted private key with the data. When you are ready to + decrypt data or sign a message, you can use the Decrypt operation to + decrypt the encrypted private key. + + To generate a data key pair, you must specify a symmetric encryption KMS + key to encrypt the private key in a data key pair. You cannot use an + asymmetric KMS key or a KMS key in a custom key store. To get the type + and origin of your KMS key, use the DescribeKey operation. + + Use the `KeyPairSpec` parameter to choose an RSA or Elliptic Curve (ECC) + data key pair. In China Regions, you can also choose an SM2 data key + pair. KMS recommends that you use ECC key pairs for signing, and use RSA + and SM2 key pairs for either encryption or signing, but not both. + However, KMS cannot enforce any restrictions on the use of data key + pairs outside of KMS. + + `GenerateDataKeyPairWithoutPlaintext` returns a unique data key pair for + each request. The bytes in the key are not related to the caller or KMS + key that is used to encrypt the private key. The public key is a + DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC + 5280](https://tools.ietf.org/html/rfc5280). + + Note: + For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains + the private key in seed format. As a result, the length of the private + key is the same for all ML-KEM key pair specs. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyPairWithoutPlaintextInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyPairWithoutPlaintextOutput`. + """ + return self._invoke( + input, _models.GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT, [], plugins + ) + + def generate_data_key_without_plaintext( + self, + input: GenerateDataKeyWithoutPlaintextInput, + plugins: list[Plugin] | None = None, + ) -> GenerateDataKeyWithoutPlaintextOutput: + """ + Returns a unique symmetric data key for use outside of KMS. This + operation returns a data key that is encrypted under a symmetric + encryption KMS key that you specify. The bytes in the key are random; + they are not related to the caller or to the KMS key. + + `GenerateDataKeyWithoutPlaintext` is identical to the GenerateDataKey + operation except that it does not return a plaintext copy of the data + key. + + This operation is useful for systems that need to encrypt data at some + point, but not immediately. When you need to encrypt the data, you call + the Decrypt operation on the encrypted copy of the key. + + It's also useful in distributed systems with different levels of trust. + For example, you might store encrypted data in containers. One component + of your system creates new containers and stores an encrypted data key + with each container. Then, a different component puts the data into the + containers. That component first decrypts the data key, uses the + plaintext data key to encrypt data, puts the encrypted data into the + container, and then destroys the plaintext data key. In this system, the + component that creates the containers never sees the plaintext data key. + + To request an asymmetric data key pair, use the GenerateDataKeyPair or + GenerateDataKeyPairWithoutPlaintext operations. + + To generate a data key, you must specify the symmetric encryption KMS + key that is used to encrypt the data key. You cannot use an asymmetric + KMS key or a key in a custom key store to generate a data key. To get + the type of your KMS key, use the DescribeKey operation. + + You must also specify the length of the data key. Use either the + `KeySpec` or `NumberOfBytes` parameters (but not both). For 128-bit and + 256-bit data keys, use the `KeySpec` parameter. + + To generate an SM4 data key (China Regions only), specify a `KeySpec` + value of `AES_128` or `NumberOfBytes` value of `16`. The symmetric + encryption key used in China Regions to encrypt your data key is an SM4 + encryption key. + + If the operation succeeds, you will find the encrypted copy of the data + key in the `CiphertextBlob` field. + + You can use an optional encryption context to add additional security to + the encryption operation. If you specify an `EncryptionContext`, you + must specify the same encryption context (a case-sensitive exact match) + when decrypting the encrypted data key. Otherwise, the request to + decrypt fails with an `InvalidCiphertextException`. For more + information, see [Encryption + Context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + - GenerateDataKeyPairWithoutPlaintext + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateDataKeyWithoutPlaintextInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateDataKeyWithoutPlaintextOutput`. + """ + return self._invoke( + input, _models.GENERATE_DATA_KEY_WITHOUT_PLAINTEXT, [], plugins + ) + + def generate_mac( + self, input: GenerateMacInput, plugins: list[Plugin] | None = None + ) -> GenerateMacOutput: + """ + Generates a hash-based message authentication code (HMAC) for a message + using an HMAC KMS key and a MAC algorithm that the key supports. HMAC + KMS keys and the HMAC algorithms that KMS uses conform to industry + standards defined in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + + You can use value that GenerateMac returns in the VerifyMac operation to + demonstrate that the original message has not changed. Also, because a + secret key is used to create the hash, you can verify that the party + that generated the hash has the required secret key. You can also use + the raw result to implement HMAC-based algorithms such as key derivation + functions. This operation is part of KMS support for HMAC KMS keys. For + details, see [HMAC keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in + the Key Management Service Developer Guide . + + Note: + Best practices recommend that you limit the time during which any + signing mechanism, including an HMAC, is effective. This deters an + attack where the actor uses a signed message to establish validity + repeatedly or long after the message is superseded. HMAC tags do not + include a timestamp, but you can include a timestamp in the token or + message to help you detect when its time to refresh the HMAC. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GenerateMac](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: VerifyMac + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateMacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateMacOutput`. + """ + return self._invoke(input, _models.GENERATE_MAC, [], plugins) + + def generate_random( + self, + input: GenerateRandomInput | None = None, + plugins: list[Plugin] | None = None, + ) -> GenerateRandomOutput: + """ + Returns a random byte string that is cryptographically secure. + + You must use the `NumberOfBytes` parameter to specify the length of the + random byte string. There is no default value for string length. + + By default, the random byte string is generated in KMS. To generate the + byte string in the CloudHSM cluster associated with an CloudHSM key + store, use the `CustomKeyStoreId` parameter. + + `GenerateRandom` also supports [Amazon Web Services Nitro + Enclaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html), + which provide an isolated compute environment in Amazon EC2. To call + `GenerateRandom` for a Nitro enclave or NitroTPM, use the [Amazon Web + Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK. Use the `Recipient` parameter to provide + the attestation document for the attested environment. Instead of + plaintext bytes, the response includes the plaintext bytes encrypted + under the public key from the attestation document + (`CiphertextForRecipient`). For information about the interaction + between KMS and Amazon Web Services Nitro Enclaves or Amazon Web + Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + + For more information about entropy and random number generation, see + [Entropy and random number + generation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#entropy-and-random-numbers) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Not applicable. `GenerateRandom` does not use any + account-specific resources, such as KMS keys. + + **Required permissions**: + [kms:GenerateRandom](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GenerateRandomInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GenerateRandomOutput`. + """ + return self._invoke(input, _models.GENERATE_RANDOM, [], plugins) + + def get_key_last_usage( + self, input: GetKeyLastUsageInput, plugins: list[Plugin] | None = None + ) -> GetKeyLastUsageOutput: + """ + Returns usage information about the last successful cryptographic + operation performed with a specified KMS key, including the operation + type, timestamp, and associated CloudTrail event ID. + + The `TrackingStartDate` in the `GetKeyLastUsage` response indicates the + date from which KMS began recording cryptographic activity for a given + key. Use this value together with `KeyCreationDate` to understand the + key's usage history: + + - If the `KeyLastUsage` response element is *present*, the key has been + used for a successful cryptographic operation since the + `TrackingStartDate`. The response includes the operation type, + timestamp, and associated CloudTrail event ID. + + - If the `KeyLastUsage` response element is *empty* and + `KeyCreationDate` is on or after `TrackingStartDate`, the key has not + been used for a successful cryptographic operation since it was + created. + + - If the `KeyLastUsage` response element is *empty* and + `KeyCreationDate` is before `TrackingStartDate`, there is no record of + the key being used for a successful cryptographic operation since the + `TrackingStartDate`. However, the key may have been used before + tracking began. To determine whether the key was used before the + `TrackingStartDate`, examine your past CloudTrail logs. + + For multi-Region KMS keys, primary and replica keys track last usage + independently. Each key in a multi-Region key set maintains its own + usage information. + + The `ReEncrypt` operation uses two keys: a source key for decryption and + a destination key for encryption. Usage information is recorded for both + keys independently, each with the CloudTrail event ID from the + respective key owner's account. + + Note: + Do not use `GetKeyLastUsage` as the sole indicator when scheduling a key + for deletion. Instead, first [disable the + key](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) + and monitor CloudTrail for `DisabledException` entries, as there could + be infrequent workflows that are dependent on the key. By looking for + this exception, you can identify potential dependencies and workload + failures before they occur. CloudTrail remains the authoritative source + for all API calls made to your key. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetKeyLastUsage](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DescribeKey + + - DisableKey + + - ScheduleKeyDeletion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyLastUsageInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyLastUsageOutput`. + """ + return self._invoke(input, _models.GET_KEY_LAST_USAGE, [], plugins) + + def get_key_policy( + self, input: GetKeyPolicyInput, plugins: list[Plugin] | None = None + ) -> GetKeyPolicyOutput: + """ + Gets a key policy attached to the specified KMS key. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: + [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyPolicyOutput`. + """ + return self._invoke(input, _models.GET_KEY_POLICY, [], plugins) + + def get_key_rotation_status( + self, input: GetKeyRotationStatusInput, plugins: list[Plugin] | None = None + ) -> GetKeyRotationStatusOutput: + """ + Provides detailed information about the rotation status for a KMS key, + including whether [automatic rotation of the key + material](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + is enabled for the specified KMS key, the [rotation + period](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotation-period), + and the next scheduled rotation date. + + Automatic key rotation is supported only on symmetric encryption KMS + keys. You cannot enable automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + You can enable (EnableKeyRotation) and disable automatic rotation + (DisableKeyRotation) of the key material in customer managed KMS keys. + Key material rotation of [Amazon Web Services managed KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + is not configurable. KMS always rotates the key material in Amazon Web + Services managed KMS keys every year. The key rotation status for Amazon + Web Services managed KMS keys is always `true`. + + You can perform on-demand (RotateKeyOnDemand) rotation of the key + material in customer managed KMS keys, regardless of whether or not + automatic key rotation is enabled. You can use GetKeyRotationStatus to + identify the date and time that an in progress on-demand rotation was + initiated. You can use ListKeyRotations to view the details of completed + rotations. + + Note: + In May 2022, KMS changed the rotation schedule for Amazon Web Services + managed keys from every three years to every year. For details, see + EnableKeyRotation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + - Disabled: The key rotation status does not change when you disable a + KMS key. However, while the KMS key is disabled, KMS does not rotate + the key material. When you re-enable the KMS key, rotation resumes. If + the key material in the re-enabled KMS key hasn't been rotated in one + year, KMS rotates it immediately, and every year thereafter. If it's + been less than a year since the key material in the re-enabled KMS key + was rotated, the KMS key resumes its prior rotation schedule. + + - Pending deletion: While a KMS key is pending deletion, its key + rotation status is `false` and KMS does not rotate the key material. + If you cancel the deletion, the original key rotation status returns + to `true`. + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DisableKeyRotation + + - EnableKeyRotation + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetKeyRotationStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetKeyRotationStatusOutput`. + """ + return self._invoke(input, _models.GET_KEY_ROTATION_STATUS, [], plugins) + + def get_parameters_for_import( + self, input: GetParametersForImportInput, plugins: list[Plugin] | None = None + ) -> GetParametersForImportOutput: + """ + Returns the public key and an import token you need to import or + reimport key material for a KMS key. + + By default, KMS keys are created with key material that KMS generates. + This operation supports [Importing key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + an advanced feature that lets you generate and import the cryptographic + key material for a KMS key. + + Before calling `GetParametersForImport`, use the CreateKey operation + with an `Origin` value of `EXTERNAL` to create a KMS key with no key + material. You can import key material for a symmetric encryption KMS + key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric signing + KMS key. You can also import key material into a [multi-Region + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + of any supported type. However, you can't import key material into a + KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + You can also use `GetParametersForImport` to get a public key and import + token to [reimport the original key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material) + into a KMS key whose key material expired or was deleted. + + `GetParametersForImport` returns the items that you need to import your + key material. + + - The public key (or \"wrapping key\") of an RSA key pair that KMS + generates. + + You will use this public key to encrypt (\"wrap\") your key material + while it's in transit to KMS. + + - A import token that ensures that KMS can decrypt your key material and + associate it with the correct KMS key. + + The public key and its import token are permanently linked and must be + used together. Each public key and import token set is valid for 24 + hours. The expiration date and time appear in the `ParametersValidTo` + field in the `GetParametersForImport` response. You cannot use an + expired public key or import token in an ImportKeyMaterial request. If + your key and token expire, send another `GetParametersForImport` + request. + + `GetParametersForImport` requires the following information: + + - The key ID of the KMS key for which you are importing the key + material. + + - The key spec of the public key (\"wrapping key\") that you will use to + encrypt your key material during import. + + - The wrapping algorithm that you will use with the public key to + encrypt your key material. + + You can use the same or a different public key spec and wrapping + algorithm each time you import or reimport the same key material. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - ImportKeyMaterial + + - DeleteImportedKeyMaterial + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetParametersForImportInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetParametersForImportOutput`. + """ + return self._invoke(input, _models.GET_PARAMETERS_FOR_IMPORT, [], plugins) + + def get_public_key( + self, input: GetPublicKeyInput, plugins: list[Plugin] | None = None + ) -> GetPublicKeyOutput: + """ + Returns the public key of an asymmetric KMS key. Unlike the private key + of a asymmetric KMS key, which never leaves KMS unencrypted, callers + with `kms:GetPublicKey` permission can download the public key of an + asymmetric KMS key. You can share the public key to allow others to + encrypt messages and verify signatures outside of KMS. For information + about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + You do not need to download the public key. Instead, you can use the + public key within KMS by calling the Encrypt, ReEncrypt, or Verify + operations with the identifier of an asymmetric KMS key. When you use + the public key within KMS, you benefit from the authentication, + authorization, and logging that are part of every KMS operation. You + also reduce of risk of encrypting data that cannot be decrypted. These + features are not effective outside of KMS. + + To help you use the public key safely outside of KMS, `GetPublicKey` + returns important information about the public key in the response, + including: + + - [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec): + The type of key material in the public key, such as `RSA_4096` or + `ECC_NIST_P521`. + + - [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage): + Whether the key is used for encryption, signing, or deriving a shared + secret. + + - [EncryptionAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms), + [KeyAgreementAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyAgreementAlgorithms), + or + [SigningAlgorithms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms): + A list of the encryption algorithms, key agreement algorithms, or + signing algorithms for the key. + + Although KMS cannot enforce these restrictions on external operations, + it is crucial that you use this information to prevent the public key + from being used improperly. For example, you can prevent a public + signing key from being used encrypt data, or prevent a public key from + being used with an encryption algorithm that is not supported by KMS. + You can also avoid errors, such as using the wrong signing algorithm in + a verification operation. + + To verify a signature outside of KMS with an SM2 public key (China + Regions only), you must specify the distinguishing ID. By default, KMS + uses `1234567812345678` as the distinguishing ID. For more information, + see [Offline verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:GetPublicKey](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: CreateKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `GetPublicKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicKeyOutput`. + """ + return self._invoke(input, _models.GET_PUBLIC_KEY, [], plugins) + + def import_key_material( + self, input: ImportKeyMaterialInput, plugins: list[Plugin] | None = None + ) -> ImportKeyMaterialOutput: + """ + Imports or reimports key material into an existing KMS key that was + created without key material. You can also use this operation to set or + update the expiration model and expiration date of the imported key + material. + + By default, KMS creates KMS keys with key material that it generates. + You can also generate and import your own key material. For more + information about importing key material, see [Importing key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html). + + For asymmetric and HMAC keys, you cannot change the key material after + the initial import. You can import multiple key materials into symmetric + encryption keys and rotate the key material on demand using + `RotateKeyOnDemand`. + + You can import new key materials into multi-Region symmetric encryption + keys. To do so, you must import the new key material into the primary + Region key. Then you can import the same key materials into the replica + Region keys. You cannot directly import new key material into the + replica Region keys. + + To import new key material for a multi-Region symmetric key, you'll need + to complete the following: + + 1. Call `ImportKeyMaterial` on the primary Region key with the + `ImportType`set to `NEW_KEY_MATERIAL`. + + 2. Call `ImportKeyMaterial` on the replica Region key with the + `ImportType` set to `EXISTING_KEY_MATERIAL` using the same key + material imported to the primary Region key. You must do this for + every replica Region key before you can perform the + RotateKeyOnDemand operation on the primary Region key. + + After you import key material, you can [reimport the same key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#reimport-key-material) + into that KMS key or, if the key supports on-demand rotation, import new + key material. You can use the `ImportType` parameter to indicate whether + you are importing new key material or re-importing previously imported + key material. You might reimport key material to replace key material + that expired or key material that you deleted. You might also reimport + key material to change the expiration model or expiration date of the + key material. + + Each time you import key material into KMS, you can determine whether + (`ExpirationModel`) and when (`ValidTo`) the key material expires. To + change the expiration of your key material, you must import it again, + either by calling `ImportKeyMaterial` or using the [import + features](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console) + of the KMS console. + + Before you call `ImportKeyMaterial`, complete these steps: + + - Create or identify a KMS key with `EXTERNAL` origin, which indicates + that the KMS key is designed for imported key material. + + To create a new KMS key for imported key material, call the CreateKey + operation with an `Origin` value of `EXTERNAL`. You can create a + symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS + key, asymmetric key agreement key, or asymmetric signing KMS key. You + can also import key material into a [multi-Region + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + of any supported type. However, you can't import key material into a + KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + + - Call the GetParametersForImport operation to get a public key and + import token set for importing key material. + + - Use the public key in the GetParametersForImport response to encrypt + your key material. + + Then, in an `ImportKeyMaterial` request, you submit your encrypted key + material and import token. When calling this operation, you must specify + the following values: + + - The key ID or key ARN of the KMS key to associate with the imported + key material. Its `Origin` must be `EXTERNAL` and its `KeyState` must + be `PendingImport` or `Enabled`. You cannot perform this operation on + a KMS key in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html), + or on a KMS key in a different Amazon Web Services account. To get the + `Origin` and `KeyState` of a KMS key, call DescribeKey. + + - The encrypted key material. + + - The import token that GetParametersForImport returned. You must use a + public key and token from the same `GetParametersForImport` response. + + - Whether the key material expires (`ExpirationModel`) and, if so, when + (`ValidTo`). For help with this choice, see [Setting an expiration + time](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration) + in the *Key Management Service Developer Guide*. + + If you set an expiration date, KMS deletes the key material from the + KMS key on the specified date, making the KMS key unusable. To use the + KMS key in cryptographic operations again, you must reimport the same + key material. However, you can delete and reimport the key material at + any time, including before the key material expires. Each time you + reimport, you can eliminate or reset the expiration time. + + When this operation is successful, the state of the KMS key changes to + `Enabled`, and you can use the KMS key in cryptographic operations. For + symmetric encryption keys, you will need to import all of the key + materials associated with the KMS key to change its state to `Enabled`. + Use the `ListKeyRotations` operation to list the ID and import state of + each key material associated with a KMS key. + + If this operation fails, use the exception to help determine the + problem. If the error is related to the key material, the import token, + or wrapping key, use GetParametersForImport to get a new public key and + import token for the KMS key and repeat the import procedure. For help, + see [Create a KMS key with imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-conceptual.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - DeleteImportedKeyMaterial + + - GetParametersForImport + + - ListKeyRotations + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ImportKeyMaterialInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ImportKeyMaterialOutput`. + """ + return self._invoke(input, _models.IMPORT_KEY_MATERIAL, [], plugins) + + def list_aliases( + self, input: ListAliasesInput | None = None, plugins: list[Plugin] | None = None + ) -> ListAliasesOutput: + """ + Gets a list of aliases in the caller's Amazon Web Services account and + region. For more information about aliases, see CreateAlias. + + By default, the `ListAliases` operation returns all aliases in the + account and region. To get only the aliases associated with a particular + KMS key, use the `KeyId` parameter. + + The `ListAliases` response can include aliases that you created and + associated with your customer managed keys, and aliases that Amazon Web + Services created and associated with Amazon Web Services managed keys in + your account. You can recognize Amazon Web Services aliases because + their names have the format `aws/```{=html}, such as + `aws/dynamodb`. + + The response might also include aliases that have no `TargetKeyId` + field. These are predefined aliases that Amazon Web Services has created + but has not yet associated with a KMS key. Aliases that Amazon Web + Services creates in your account, including predefined aliases, do not + count against your [KMS aliases + quota](https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html#aliases-per-key). + + **Cross-account use**: No. `ListAliases` does not return aliases in + other Amazon Web Services accounts. + + **Required permissions**: + [kms:ListAliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-access.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - DeleteAlias + + - UpdateAlias + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListAliasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListAliasesOutput`. + """ + return self._invoke(input, _models.LIST_ALIASES, [], plugins) + + def list_grants( + self, input: ListGrantsInput, plugins: list[Plugin] | None = None + ) -> ListGrantsOutput: + """ + Gets a list of all grants for the specified KMS key. + + You must specify the KMS key in all requests. You can filter the grant + list by grant ID, grantee principal, or grantee service principal. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + Note: + When a grant is created with the `GranteePrincipal` field, the + `ListGrants` response usually contains the user or role designated as + the grantee principal in the grant. However, if the grantee principal is + an Amazon Web Services service, the `GranteePrincipal` field contains an + Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), + which might correspond to several different grantee principals, such as + an IAM user, IAM role, or Amazon Web Services account. + + When a grant is created with the `GranteeServicePrincipal` field, the + `ListGrants` response always includes a `GranteeServicePrincipal` that + indicates the grantee is actually an Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:ListGrants](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateGrant + + - ListRetirableGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListGrantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListGrantsOutput`. + """ + return self._invoke(input, _models.LIST_GRANTS, [], plugins) + + def list_key_policies( + self, input: ListKeyPoliciesInput, plugins: list[Plugin] | None = None + ) -> ListKeyPoliciesOutput: + """ + Gets the names of the key policies that are attached to a KMS key. This + operation is designed to get policy names that you can use in a + GetKeyPolicy operation. However, the only valid policy name is + `default`. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeyPolicies](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - GetKeyPolicy + + - [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeyPoliciesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyPoliciesOutput`. + """ + return self._invoke(input, _models.LIST_KEY_POLICIES, [], plugins) + + def list_key_rotations( + self, input: ListKeyRotationsInput, plugins: list[Plugin] | None = None + ) -> ListKeyRotationsOutput: + """ + Returns information about the key materials associated with the + specified KMS key. You can use the optional `IncludeKeyMaterial` + parameter to control which key materials are included in the response. + + You must specify the KMS key in all requests. You can refine the key + rotations list by limiting the number of rotations returned. + + For detailed information about automatic and on-demand key rotations, + see [Rotate KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeyRotations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - DeleteImportedKeyMaterial + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ImportKeyMaterial + + - RotateKeyOnDemand + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeyRotationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeyRotationsOutput`. + """ + return self._invoke(input, _models.LIST_KEY_ROTATIONS, [], plugins) + + def list_keys( + self, input: ListKeysInput | None = None, plugins: list[Plugin] | None = None + ) -> ListKeysOutput: + """ + Gets a list of all KMS keys in the caller's Amazon Web Services account + and Region. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListKeys](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - CreateKey + + - DescribeKey + + - ListAliases + + - ListResourceTags + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListKeysInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListKeysOutput`. + """ + return self._invoke(input, _models.LIST_KEYS, [], plugins) + + def list_resource_tags( + self, input: ListResourceTagsInput, plugins: list[Plugin] | None = None + ) -> ListResourceTagsOutput: + """ + Returns all tags on the specified KMS key. + + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. For information about + using tags in KMS, see [Tags in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:ListResourceTags](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - CreateKey + + - ReplicateKey + + - TagResource + + - UntagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListResourceTagsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListResourceTagsOutput`. + """ + return self._invoke(input, _models.LIST_RESOURCE_TAGS, [], plugins) + + def list_retirable_grants( + self, + input: ListRetirableGrantsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListRetirableGrantsOutput: + """ + Returns information about all grants in the Amazon Web Services account + and Region that have the specified retiring principal or retiring + service principal. + + You can specify any principal in your Amazon Web Services account. The + grants that are returned include grants for KMS keys in your Amazon Web + Services account and other Amazon Web Services accounts. You might use + this operation to determine which grants you may retire. To retire a + grant, use the RetireGrant operation. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: You must specify a principal in your Amazon Web + Services account. This operation returns a list of grants where the + retiring principal specified in the `ListRetirableGrants` request is the + same retiring principal on the grant. This can include grants on KMS + keys owned by other Amazon Web Services accounts, but you do not need + `kms:ListRetirableGrants` permission (or any other additional + permission) in any Amazon Web Services account other than your own. + + **Required permissions**: + [kms:ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) in your Amazon Web Services account. + + Note: + When listing retirable grants by `RetiringPrincipal`, KMS authorizes + `ListRetirableGrants` requests by evaluating the caller account's + kms:ListRetirableGrants permissions. The authorized resource in + `ListRetirableGrants` calls is the retiring principal specified in the + request. KMS does not evaluate the caller's permissions to verify their + access to any KMS keys or grants that might be returned by the + `ListRetirableGrants` call. + + The `RetiringServicePrincipal` filter is only usable by callers in a + service principal. + + **Related operations:** + + - CreateGrant + + - ListGrants + + - RetireGrant + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ListRetirableGrantsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListRetirableGrantsOutput`. + """ + return self._invoke(input, _models.LIST_RETIRABLE_GRANTS, [], plugins) + + def put_key_policy( + self, input: PutKeyPolicyInput, plugins: list[Plugin] | None = None + ) -> PutKeyPolicyOutput: + """ + Attaches a key policy to the specified KMS key. + + For more information about key policies, see [Key + Policies](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + in the *Key Management Service Developer Guide*. For help writing and + formatting a JSON policy document, see the [IAM JSON Policy + Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) + in the Identity and Access Management User Guide . For examples of + adding a key policy in multiple programming languages, see [Use + PutKeyPolicy with an Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_PutKeyPolicy_section.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: GetKeyPolicy + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `PutKeyPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutKeyPolicyOutput`. + """ + return self._invoke(input, _models.PUT_KEY_POLICY, [], plugins) + + def re_encrypt( + self, input: ReEncryptInput, plugins: list[Plugin] | None = None + ) -> ReEncryptOutput: + """ + Decrypts ciphertext and then reencrypts it entirely within KMS. You can + use this operation to change the KMS key under which data is encrypted, + such as when you [manually + rotate](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys-manually.html) + a KMS key or change the KMS key that protects a ciphertext. You can also + use it to reencrypt ciphertext under the same KMS key, such as to change + the [encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + of a ciphertext. + + The `ReEncrypt` operation can decrypt ciphertext that was encrypted by + using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. + It can also decrypt ciphertext that was encrypted by using the public + key of an [asymmetric KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + outside of KMS. However, it cannot decrypt ciphertext produced by other + libraries, such as the [Amazon Web Services Encryption + SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) + or [Amazon S3 client-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). + These libraries return a ciphertext format that is incompatible with + KMS. + + When you use the `ReEncrypt` operation, you need to provide information + for the decrypt operation and the subsequent encrypt operation. + + - If your ciphertext was encrypted under an asymmetric KMS key, you must + use the `SourceKeyId` parameter to identify the KMS key that encrypted + the ciphertext. You must also supply the encryption algorithm that was + used. This information is required to decrypt the data. + + - If your ciphertext was encrypted under a symmetric encryption KMS key, + the `SourceKeyId` parameter is optional. KMS can get this information + from metadata that it adds to the symmetric ciphertext blob. This + feature adds durability to your implementation by ensuring that + authorized users can decrypt ciphertext decades after it was + encrypted, even if they've lost track of the key ID. However, + specifying the source KMS key is always recommended as a best + practice. When you use the `SourceKeyId` parameter to specify a KMS + key, KMS uses only the KMS key you specify. If the ciphertext was + encrypted under a different KMS key, the `ReEncrypt` operation fails. + This practice ensures that you use the KMS key that you intend. + + - To reencrypt the data, you must use the `DestinationKeyId` parameter + to specify the KMS key that re-encrypts the data after it is + decrypted. If the destination KMS key is an asymmetric KMS key, you + must also provide the encryption algorithm. The algorithm that you + choose must be compatible with the KMS key. + + Warning: + When you use an asymmetric KMS key to encrypt or reencrypt data, be + sure to record the KMS key and encryption algorithm that you choose. + You will be required to provide the same KMS key and encryption + algorithm when you decrypt the data. If the KMS key and algorithm do + not match the values used to encrypt the data, the decrypt operation + fails. + + You are not required to supply the key ID and encryption algorithm + when you decrypt with symmetric encryption KMS keys because KMS stores + this information in the ciphertext blob. KMS cannot store metadata in + ciphertext generated with asymmetric keys. The standard format for + asymmetric key ciphertext does not include configurable fields. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + Note: + When using grants with `SourceArn` constraints for `ReEncrypt` + operations, the grants on both the source KMS key (for `ReEncryptFrom`) + and the destination KMS key (for `ReEncryptTo`) must specify the same + `SourceArn` value. + + **Cross-account use**: Yes. The source KMS key and destination KMS key + can be in different Amazon Web Services accounts. Either or both KMS + keys can be in a different account than the caller. To specify a KMS key + in a different account, use the [key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) + or [alias + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-alias-ARN). + A short [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + is also acceptable for the source key when decrypting symmetric + ciphertexts, though using a full key ARN is recommended to be more + explicit about the intended KMS key. + + **Required permissions**: + + - [kms:ReEncryptFrom](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission on the source KMS key (key policy) + + - [kms:ReEncryptTo](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission on the destination KMS key (key policy) + + To permit reencryption from or to a KMS key, include the + `"kms:ReEncrypt*"` permission in your [key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). + This permission is automatically included in the key policy when you use + the console to create a KMS key. But you must include it manually when + you create a KMS key programmatically or when you use the PutKeyPolicy + operation to set a key policy. + + **Related operations:** + + - Decrypt + + - Encrypt + + - GenerateDataKey + + - GenerateDataKeyPair + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ReEncryptInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReEncryptOutput`. + """ + return self._invoke(input, _models.RE_ENCRYPT, [], plugins) + + def replicate_key( + self, input: ReplicateKeyInput, plugins: list[Plugin] | None = None + ) -> ReplicateKeyOutput: + """ + Replicates a multi-Region key into the specified Region. This operation + creates a multi-Region replica key based on a multi-Region primary key + in a different Region of the same Amazon Web Services partition. You can + create multiple replicas of a primary key, but each must be in a + different Region. To create a multi-Region primary key, use the + CreateKey operation. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + A *replica key* is a fully-functional KMS key that can be used + independently of its primary and peer replica keys. A primary key and + its replica keys share properties that make them interoperable. They + have the same [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) + and key material. They also have the same key spec, key usage, key + material origin, and automatic key rotation status. KMS automatically + synchronizes these shared properties among related multi-Region keys. + All other properties of a replica key can differ, including its [key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), + [tags](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html), + [aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html), + and [key + state](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). + KMS pricing and quotas for KMS keys apply to each primary key and + replica key. + + When this operation completes, the new replica key has a transient key + state of `Creating`. This key state changes to `Enabled` (or + `PendingImport`) after a few seconds when the process of creating the + new replica key is complete. While the key state is `Creating`, you can + manage key, but you cannot yet use it in cryptographic operations. If + you are creating and using the replica key programmatically, retry on + `KMSInvalidStateException` or call `DescribeKey` to check its `KeyState` + value before using it. For details about the `Creating` key state, see + [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + You cannot create more than one replica of a primary key in any Region. + If the Region already includes a replica of the key you're trying to + replicate, `ReplicateKey` returns an `AlreadyExistsException` error. If + the key state of the existing replica is `PendingDeletion`, you can + cancel the scheduled key deletion (CancelKeyDeletion) or wait for the + key to be deleted. The new replica key you create will have the same + [shared + properties](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties) + as the original replica key. + + The CloudTrail log of a `ReplicateKey` operation records a + `ReplicateKey` operation in the primary key's Region and a CreateKey + operation in the replica key's Region. + + If you replicate a multi-Region primary key with imported key material, + the replica key is created with no key material. You must import the + same key material that you imported into the primary key. + + To convert a replica key to a primary key, use the UpdatePrimaryRegion + operation. + + Note: + `ReplicateKey` uses different default values for the `KeyPolicy` and + `Tags` parameters than those used in the KMS console. For details, see + the parameter descriptions. + + **Cross-account use**: No. You cannot use this operation to create a + replica key in a different Amazon Web Services account. + + **Required permissions**: + + - `kms:ReplicateKey` on the primary key (in the primary key's Region). + Include this permission in the primary key's key policy. + + - `kms:CreateKey` in an IAM policy in the replica Region. + + - To use the `Tags` parameter, `kms:TagResource` in an IAM policy in the + replica Region. + + **Related operations** + + - CreateKey + + - UpdatePrimaryRegion + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ReplicateKeyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ReplicateKeyOutput`. + """ + return self._invoke(input, _models.REPLICATE_KEY, [], plugins) + + def retire_grant( + self, input: RetireGrantInput | None = None, plugins: list[Plugin] | None = None + ) -> RetireGrantOutput: + """ + Deletes a grant. Typically, you retire a grant when you no longer need + its permissions. To identify the grant to retire, use a [grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token), + or both the grant ID and a key identifier (key ID or key ARN) of the KMS + key. The CreateGrant operation returns both values. + + This operation can be called by the *retiring principal* for a grant, by + the *grantee principal* if the grant allows the `RetireGrant` operation, + and by the Amazon Web Services account in which the grant is created. It + can also be called by principals to whom permission for retiring a grant + is delegated. + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: Yes. You can retire a grant on a KMS key in a + different Amazon Web Services account. + + **Required permissions**: Permission to retire a grant is determined + primarily by the grant. For details, see [Retiring and revoking + grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateGrant + + - ListGrants + + - ListRetirableGrants + + - RevokeGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RetireGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RetireGrantOutput`. + """ + return self._invoke(input, _models.RETIRE_GRANT, [], plugins) + + def revoke_grant( + self, input: RevokeGrantInput, plugins: list[Plugin] | None = None + ) -> RevokeGrantOutput: + """ + Deletes the specified grant. You revoke a grant to terminate the + permissions that the grant allows. For more information, see [Retiring + and revoking + grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html) + in the Key Management Service Developer Guide . + + When you create, retire, or revoke a grant, there might be a brief + delay, usually less than five minutes, until the grant is available + throughout KMS. This state is known as *eventual consistency*. For + details, see [Eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency) + in the Key Management Service Developer Guide . + + For detailed information about grants, including grant terminology, see + [Grants in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) + in the Key Management Service Developer Guide . For examples of creating + grants in several programming languages, see [Use CreateGrant with an + Amazon Web Services SDK or + CLI](https://docs.aws.amazon.com/kms/latest/developerguide/example_kms_CreateGrant_section.html). + + **Cross-account use**: Yes. To perform this operation on a KMS key in a + different Amazon Web Services account, specify the key ARN in the value + of the `KeyId` parameter. + + **Required permissions**: + [kms:RevokeGrant](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy). + + **Related operations:** + + - CreateGrant + + - ListGrants + + - ListRetirableGrants + + - RetireGrant + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RevokeGrantInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeGrantOutput`. + """ + return self._invoke(input, _models.REVOKE_GRANT, [], plugins) + + def rotate_key_on_demand( + self, input: RotateKeyOnDemandInput, plugins: list[Plugin] | None = None + ) -> RotateKeyOnDemandOutput: + """ + Immediately initiates rotation of the key material of the specified + symmetric encryption KMS key. + + You can perform [on-demand + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html) + of the key material in customer managed KMS keys, regardless of whether + or not [automatic key + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + is enabled. On-demand rotations do not change existing automatic + rotation schedules. For example, consider a KMS key that has automatic + key rotation enabled with a rotation period of 730 days. If the key is + scheduled to automatically rotate on April 14, 2024, and you perform an + on-demand rotation on April 10, 2024, the key will automatically rotate, + as scheduled, on April 14, 2024 and every 730 days thereafter. + + Note: + You can perform on-demand key rotation a **maximum of 25 times** per KMS + key. You can use the KMS console to view the number of remaining + on-demand rotations available for a KMS key. + + You can use GetKeyRotationStatus to identify any in progress on-demand + rotations. You can use ListKeyRotations to identify the date that + completed on-demand rotations were performed. You can monitor rotation + of the key material for your KMS keys in CloudTrail and Amazon + CloudWatch. + + On-demand key rotation is supported only on symmetric encryption KMS + keys. You cannot perform on-demand rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + When you initiate on-demand key rotation on a symmetric encryption KMS + key with imported key material, you must have already imported [new key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html) + and that key material's state should be `PENDING_ROTATION`. Use the + `ListKeyRotations` operation to check the state of all key materials + associated with a KMS key. To perform on-demand rotation of a set of + related [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + import new key material in the primary Region key, import the same key + material in each replica Region key, and invoke the on-demand rotation + on the primary Region key. + + You cannot initiate on-demand rotation of [Amazon Web Services managed + KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + KMS always rotates the key material of Amazon Web Services managed keys + every year. Rotation of [Amazon Web Services owned KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) + is managed by the Amazon Web Services service that owns the key. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:RotateKeyOnDemand](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations:** + + - EnableKeyRotation + + - DisableKeyRotation + + - GetKeyRotationStatus + + - ImportKeyMaterial + + - ListKeyRotations + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `RotateKeyOnDemandInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RotateKeyOnDemandOutput`. + """ + return self._invoke(input, _models.ROTATE_KEY_ON_DEMAND, [], plugins) + + def schedule_key_deletion( + self, input: ScheduleKeyDeletionInput, plugins: list[Plugin] | None = None + ) -> ScheduleKeyDeletionOutput: + """ + Schedules the deletion of a KMS key. By default, KMS applies a waiting + period of 30 days, but you can specify a waiting period of 7-30 days. + When this operation is successful, the key state of the KMS key changes + to `PendingDeletion` and the key can't be used in any cryptographic + operations. It remains in this state for the duration of the waiting + period. Before the waiting period ends, you can use CancelKeyDeletion to + cancel the deletion of the KMS key. After the waiting period ends, KMS + deletes the KMS key, its key material, and all KMS data associated with + it, including all aliases that refer to it. + + Warning: + Deleting a KMS key is a destructive and potentially dangerous operation. + When a KMS key is deleted, all data that was encrypted under the KMS key + is unrecoverable. (The only exception is a [multi-Region replica + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html), + or an [asymmetric or HMAC KMS key with imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#import-delete-key).) + To prevent the use of a KMS key without deleting it, use DisableKey. + + You can schedule the deletion of a multi-Region primary key and its + replica keys at any time. However, KMS will not delete a multi-Region + primary key with existing replica keys. If you schedule the deletion of + a primary key with replicas, its key state changes to + `PendingReplicaDeletion` and it cannot be replicated or used in + cryptographic operations. This status can continue indefinitely. When + the last of its replicas keys is deleted (not just scheduled), the key + state of the primary key changes to `PendingDeletion` and its waiting + period (`PendingWindowInDays`) begins. For details, see [Deleting + multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-mrks) + in the *Key Management Service Developer Guide*. + + When KMS [deletes a KMS key from an CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-cmk-keystore), + it makes a best effort to delete the associated key material from the + associated CloudHSM cluster. However, you might need to manually [delete + the orphaned key + material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) + from the cluster and its backups. [Deleting a KMS key from an external + key + store](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#delete-xks-key) + has no effect on the associated external key. However, for both types of + custom key stores, deleting a KMS key is destructive and irreversible. + You cannot decrypt ciphertext encrypted under the KMS key by using only + its associated external key or CloudHSM key. Also, you cannot recreate a + KMS key in an external key store by creating a new KMS key with the same + key material. + + For more information about scheduling a KMS key for deletion, see + [Deleting KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) + in the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: kms:ScheduleKeyDeletion (key policy) + + **Related operations** + + - CancelKeyDeletion + + - DisableKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `ScheduleKeyDeletionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ScheduleKeyDeletionOutput`. + """ + return self._invoke(input, _models.SCHEDULE_KEY_DELETION, [], plugins) + + def sign(self, input: SignInput, plugins: list[Plugin] | None = None) -> SignOutput: + """ + Creates a [digital + signature](https://en.wikipedia.org/wiki/Digital_signature) for a + message or message digest by using the private key in an asymmetric + signing KMS key. To verify the signature, use the Verify operation, or + use the public key in the same asymmetric KMS key outside of KMS. For + information about asymmetric KMS keys, see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + Digital signatures are generated and verified by using asymmetric key + pair, such as an RSA, ECC, or ML-DSA pair that is represented by an + asymmetric KMS key. The key owner (or an authorized user) uses their + private key to sign a message. Anyone with the public key can verify + that the message was signed with that particular private key and that + the message hasn't changed since it was signed. + + To use the `Sign` operation, provide the following information: + + - Use the `KeyId` parameter to identify an asymmetric KMS key with a + `KeyUsage` value of `SIGN_VERIFY`. To get the `KeyUsage` value of a + KMS key, use the DescribeKey operation. The caller must have + `kms:Sign` permission on the KMS key. + + - Use the `Message` parameter to specify the message or message digest + to sign. You can submit messages of up to 4096 bytes. To sign a larger + message, generate a hash digest of the message, and then provide the + hash digest in the `Message` parameter. To indicate whether the + message is a full message, a digest, or an ML-DSA EXTERNAL_MU, use the + `MessageType` parameter. + + - Choose a signing algorithm that is compatible with the KMS key. + + Warning: + When signing a message, be sure to record the KMS key and the signing + algorithm. This information is required to verify the signature. + Note: + Best practices recommend that you limit the time during which any + signature is effective. This deters an attack where the actor uses a + signed message to establish validity repeatedly or long after the + message is superseded. Signatures do not include a timestamp, but you + can include a timestamp in the signed message to help you detect when + its time to refresh the signature. + + To verify the signature that this operation generates, use the Verify + operation. Or use the GetPublicKey operation to download the public key + and then use the public key to verify the signature outside of KMS. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Sign](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: Verify + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `SignInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SignOutput`. + """ + return self._invoke(input, _models.SIGN, [], plugins) + + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds or edits tags on a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + Each tag consists of a tag key and a tag value, both of which are + case-sensitive strings. The tag value can be an empty (null) string. To + add a tag, specify a new tag key and a tag value. To edit a tag, specify + an existing tag key and a new tag value. + + You can use this operation to tag a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key), + but you cannot tag an [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key), + an [Amazon Web Services owned + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key), + a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html), + or an + [alias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html). + + You can also add tags to a KMS key while creating it (CreateKey) or + replicating it (ReplicateKey). + + For information about using tags in KMS, see [Tagging + keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - ListResourceTags + + - ReplicateKey + + - UntagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes tags from a [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + To delete a tag, specify the tag key and the KMS key. + + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + When it succeeds, the `UntagResource` operation doesn't return any + output. Also, if the specified tag key isn't found on the KMS key, it + doesn't throw an exception or return a response. To confirm that the + operation worked, use the ListResourceTags operation. + + For information about using tags in KMS, see [Tagging + keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + For general information about tags, including the format and syntax, see + [Tagging Amazon Web Services + resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the *Amazon Web Services General Reference*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:UntagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - ListResourceTags + + - ReplicateKey + + - TagResource + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + + def update_alias( + self, input: UpdateAliasInput, plugins: list[Plugin] | None = None + ) -> UpdateAliasOutput: + """ + Associates an existing KMS alias with a different KMS key. Each alias is + associated with only one KMS key at a time, although a KMS key can have + multiple aliases. The alias and the KMS key must be in the same Amazon + Web Services account and Region. + + Note: + Adding, deleting, or updating an alias can allow or deny permission to + the KMS key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + The current and new KMS key must be the same type (both symmetric or + both asymmetric or both HMAC), and they must have the same key usage. + This restriction prevents errors in code that uses aliases. If you must + assign an alias to a different type of KMS key, use DeleteAlias to + delete the old alias and CreateAlias to create a new alias. + + You cannot use `UpdateAlias` to change an alias name. To change an alias + name, use DeleteAlias to delete the old alias and CreateAlias to create + a new alias. + + Because an alias is not a property of a KMS key, you can create, update, + and delete the aliases of a KMS key without affecting the KMS key. Also, + aliases do not appear in the response from the DescribeKey operation. To + get the aliases of all KMS keys in the account, use the ListAliases + operation. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions** + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the alias (IAM policy). + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the current KMS key (key policy). + + - [kms:UpdateAlias](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + on the new KMS key (key policy). + + For details, see [Controlling access to + aliases](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) + in the *Key Management Service Developer Guide*. + + **Related operations:** + + - CreateAlias + + - DeleteAlias + + - ListAliases + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateAliasInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateAliasOutput`. + """ + return self._invoke(input, _models.UPDATE_ALIAS, [], plugins) + + def update_custom_key_store( + self, input: UpdateCustomKeyStoreInput, plugins: list[Plugin] | None = None + ) -> UpdateCustomKeyStoreOutput: + """ + Changes the properties of a custom key store. You can use this operation + to change the properties of an CloudHSM key store or an external key + store. + + Use the required `CustomKeyStoreId` parameter to identify the custom key + store. Use the remaining optional parameters to change its properties. + This operation does not return any property values. To verify the + updated property values, use the DescribeCustomKeyStores operation. + + This operation is part of the custom key stores feature in KMS, which + combines the convenience and extensive integration of KMS with the + isolation and control of a key store that you own and manage. + + Warning: + When updating the properties of an external key store, verify that the + updated settings connect your key store, via the external key store + proxy, to the same external key manager as the previous settings, or to + a backup or snapshot of the external key manager with the same + cryptographic keys. If the updated connection settings fail, you can fix + them and retry, although an extended delay might disrupt Amazon Web + Services services. However, if KMS permanently loses its access to + cryptographic keys, ciphertext encrypted under those keys is + unrecoverable. + Note: + For external key stores: + + Some external key managers provide a simpler method for updating an + external key store. For details, see your external key manager + documentation. + + When updating an external key store in the KMS console, you can upload a + JSON-based proxy configuration file with the desired values. You cannot + upload the proxy configuration file to the `UpdateCustomKeyStore` + operation. However, you can use the file to help you determine the + correct values for the `UpdateCustomKeyStore` parameters. + + For an CloudHSM key store, you can use this operation to change the + custom key store friendly name (`NewCustomKeyStoreName`), to tell KMS + about a change to the `kmsuser` crypto user password + (`KeyStorePassword`), or to associate the custom key store with a + different, but related, CloudHSM cluster (`CloudHsmClusterId`). To + update most properties of an CloudHSM key store, the `ConnectionState` + of the CloudHSM key store must be `DISCONNECTED`. However, you can + update the `CustomKeyStoreName` of an AWS CloudHSM key store when it is + in the `CONNECTED` or `DISCONNECTED` state. + + For an external key store, you can use this operation to change the + custom key store friendly name (`NewCustomKeyStoreName`), or to tell KMS + about a change to the external key store proxy authentication + credentials (`XksProxyAuthenticationCredential`), connection method + (`XksProxyConnectivity`), external proxy endpoint + (`XksProxyUriEndpoint`) and path (`XksProxyUriPath`). For external key + stores with an `XksProxyConnectivity` of `VPC_ENDPOINT_SERVICE`, you can + also update the Amazon VPC endpoint service name + (`XksProxyVpcEndpointServiceName`). To update most properties of an + external key store, the `ConnectionState` of the external key store must + be `DISCONNECTED`. However, you can update the `CustomKeyStoreName`, + `XksProxyAuthenticationCredential`, and `XksProxyUriPath` of an external + key store when it is in the CONNECTED or DISCONNECTED state. + + If your update requires a `DISCONNECTED` state, before using + `UpdateCustomKeyStore`, use the DisconnectCustomKeyStore operation to + disconnect the custom key store. After the `UpdateCustomKeyStore` + operation completes, use the ConnectCustomKeyStore to reconnect the + custom key store. To find the `ConnectionState` of the custom key store, + use the DescribeCustomKeyStores operation. + + Before updating the custom key store, verify that the new values allow + KMS to connect the custom key store to its backing key store. For + example, before you change the `XksProxyUriPath` value, verify that the + external key store proxy is reachable at the new path. + + If the operation succeeds, it returns a JSON object with no properties. + + **Cross-account use**: No. You cannot perform this operation on a custom + key store in a different Amazon Web Services account. + + **Required permissions**: + [kms:UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (IAM policy) + + **Related operations:** + + - ConnectCustomKeyStore + + - CreateCustomKeyStore + + - DeleteCustomKeyStore + + - DescribeCustomKeyStores + + - DisconnectCustomKeyStore + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateCustomKeyStoreInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateCustomKeyStoreOutput`. + """ + return self._invoke(input, _models.UPDATE_CUSTOM_KEY_STORE, [], plugins) + + def update_key_description( + self, input: UpdateKeyDescriptionInput, plugins: list[Plugin] | None = None + ) -> UpdateKeyDescriptionOutput: + """ + Updates the description of a KMS key. To see the description of a KMS + key, use DescribeKey. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: No. You cannot perform this operation on a KMS + key in a different Amazon Web Services account. + + **Required permissions**: + [kms:UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations** + + - CreateKey + + - DescribeKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdateKeyDescriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateKeyDescriptionOutput`. + """ + return self._invoke(input, _models.UPDATE_KEY_DESCRIPTION, [], plugins) + + def update_primary_region( + self, input: UpdatePrimaryRegionInput, plugins: list[Plugin] | None = None + ) -> UpdatePrimaryRegionOutput: + """ + Changes the primary key of a multi-Region key. + + This operation changes the replica key in the specified Region to a + primary key and changes the former primary key to a replica key. For + example, suppose you have a primary key in `us-east-1` and a replica key + in `eu-west-2`. If you run `UpdatePrimaryRegion` with a `PrimaryRegion` + value of `eu-west-2`, the primary key is now the key in `eu-west-2`, and + the key in `us-east-1` becomes a replica key. For details, see [Change + the primary key in a set of multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-update.html) + in the *Key Management Service Developer Guide*. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + The *primary key* of a multi-Region key is the source for properties + that are always shared by primary and replica keys, including the key + material, [key + ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id), + [key + spec](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec), + [key + usage](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage), + [key material + origin](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin), + and [automatic key + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). + It's the only key that can be replicated. You cannot [delete the + primary + key](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) + until all replica keys are deleted. + + The key ID and primary Region that you specify uniquely identify the + replica key that will become the primary key. The primary Region must + already have a replica key. This operation does not create a KMS key in + the specified Region. To find the replica keys, use the DescribeKey + operation on the primary key or any replica key. To create a replica + key, use the ReplicateKey operation. + + You can run this operation while using the affected multi-Region keys in + cryptographic operations. This operation should not delay, interrupt, or + cause failures in cryptographic operations. + + Even after this operation completes, the process of updating the primary + Region might still be in progress for a few more seconds. Operations + such as `DescribeKey` might display both the old and new primary keys as + replicas. The old and new primary keys have a transient key state of + `Updating`. The original key state is restored when the update is + complete. While the key state is `Updating`, you can use the keys in + cryptographic operations, but you cannot replicate the new primary key + or perform certain management operations, such as enabling or disabling + these keys. For details about the `Updating` key state, see [Key states + of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + This operation does not return any output. To verify that primary key is + changed, use the DescribeKey operation. + + **Cross-account use**: No. You cannot use this operation in a different + Amazon Web Services account. + + **Required permissions**: + + - `kms:UpdatePrimaryRegion` on the current primary key (in the primary + key's Region). Include this permission primary key's key policy. + + - `kms:UpdatePrimaryRegion` on the current replica key (in the replica + key's Region). Include this permission in the replica key's key + policy. + + **Related operations** + + - CreateKey + + - ReplicateKey + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `UpdatePrimaryRegionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdatePrimaryRegionOutput`. + """ + return self._invoke(input, _models.UPDATE_PRIMARY_REGION, [], plugins) + + def verify( + self, input: VerifyInput, plugins: list[Plugin] | None = None + ) -> VerifyOutput: + """ + Verifies a digital signature that was generated by the Sign operation. + + Verification confirms that an authorized user signed the message with + the specified KMS key and signing algorithm, and the message hasn't + changed since it was signed. If the signature is verified, the value of + the `SignatureValid` field in the response is `True`. If the signature + verification fails, the `Verify` operation fails with an + `KMSInvalidSignatureException` exception. + + A digital signature is generated by using the private key in an + asymmetric KMS key. The signature is verified by using the public key in + the same asymmetric KMS key. For information about asymmetric KMS keys, + see [Asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Key Management Service Developer Guide*. + + To use the `Verify` operation, specify the same asymmetric KMS key, + message, and signing algorithm that were used to produce the signature. + The message type does not need to be the same as the one used for + signing, but it must indicate whether the value of the `Message` + parameter should be hashed as part of the verification process. + + You can also verify the digital signature by using the public key of the + KMS key outside of KMS. Use the GetPublicKey operation to download the + public key in the asymmetric KMS key and then use the public key to + verify the signature outside of KMS. The advantage of using the `Verify` + operation is that it is performed within KMS. As a result, it's easy to + call, the operation is performed within the FIPS boundary, it is logged + in CloudTrail, and you can use key policy and IAM policy to determine + who is authorized to use the KMS key to verify signatures. + + To verify a signature outside of KMS with an SM2 public key (China + Regions only), you must specify the distinguishing ID. By default, KMS + uses `1234567812345678` as the distinguishing ID. For more information, + see [Offline verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:Verify](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: Sign + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `VerifyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyOutput`. + """ + return self._invoke(input, _models.VERIFY, [], plugins) + + def verify_mac( + self, input: VerifyMacInput, plugins: list[Plugin] | None = None + ) -> VerifyMacOutput: + """ + Verifies the hash-based message authentication code (HMAC) for a + specified message, HMAC KMS key, and MAC algorithm. To verify the HMAC, + `VerifyMac` computes an HMAC using the message, HMAC KMS key, and MAC + algorithm that you specify, and compares the computed HMAC to the HMAC + that you specify. If the HMACs are identical, the verification succeeds; + otherwise, it fails. Verification indicates that the message hasn't + changed since the HMAC was calculated, and the specified key was used to + generate and verify the HMAC. + + HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry + standards defined in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + + This operation is part of KMS support for HMAC KMS keys. For details, + see [HMAC keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in + the *Key Management Service Developer Guide*. + + The KMS key that you use for this operation must be in a compatible key + state. For details, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + + **Cross-account use**: Yes. To perform this operation with a KMS key in + a different Amazon Web Services account, specify the key ARN or alias + ARN in the value of the `KeyId` parameter. + + **Required permissions**: + [kms:VerifyMac](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + (key policy) + + **Related operations**: GenerateMac + + **Eventual consistency**: The KMS API follows an eventual consistency + model. For more information, see [KMS eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency). + + Args: + input: + An instance of `VerifyMacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `VerifyMacOutput`. + """ + return self._invoke(input, _models.VERIFY_MAC, [], plugins) + + def _new_config(self) -> KMSConfig: + return KMSConfig.resolve() + + def _post_setup(self, config: KMSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/config.py b/clients/aws-sdk-kms/src/aws_sdk_kms/config.py new file mode 100644 index 00000000..47500f2c --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/config.py @@ -0,0 +1,405 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsJson11ClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import TRENT_SERVICE +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + CancelKeyDeletionInput, + CancelKeyDeletionOutput, + ConnectCustomKeyStoreInput, + ConnectCustomKeyStoreOutput, + CreateAliasInput, + CreateAliasOutput, + CreateCustomKeyStoreInput, + CreateCustomKeyStoreOutput, + CreateGrantInput, + CreateGrantOutput, + CreateKeyInput, + CreateKeyOutput, + DecapsulateInput, + DecapsulateOutput, + DecryptInput, + DecryptOutput, + DeleteAliasInput, + DeleteAliasOutput, + DeleteCustomKeyStoreInput, + DeleteCustomKeyStoreOutput, + DeleteImportedKeyMaterialInput, + DeleteImportedKeyMaterialOutput, + DeriveSharedSecretInput, + DeriveSharedSecretOutput, + DescribeCustomKeyStoresInput, + DescribeCustomKeyStoresOutput, + DescribeKeyInput, + DescribeKeyOutput, + DisableKeyInput, + DisableKeyOutput, + DisableKeyRotationInput, + DisableKeyRotationOutput, + DisconnectCustomKeyStoreInput, + DisconnectCustomKeyStoreOutput, + EnableKeyInput, + EnableKeyOutput, + EnableKeyRotationInput, + EnableKeyRotationOutput, + EncapsulateInput, + EncapsulateOutput, + EncryptInput, + EncryptOutput, + GenerateDataKeyInput, + GenerateDataKeyOutput, + GenerateDataKeyPairInput, + GenerateDataKeyPairOutput, + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + GenerateMacInput, + GenerateMacOutput, + GenerateRandomInput, + GenerateRandomOutput, + GetKeyLastUsageInput, + GetKeyLastUsageOutput, + GetKeyPolicyInput, + GetKeyPolicyOutput, + GetKeyRotationStatusInput, + GetKeyRotationStatusOutput, + GetParametersForImportInput, + GetParametersForImportOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + ImportKeyMaterialInput, + ImportKeyMaterialOutput, + ListAliasesInput, + ListAliasesOutput, + ListGrantsInput, + ListGrantsOutput, + ListKeyPoliciesInput, + ListKeyPoliciesOutput, + ListKeyRotationsInput, + ListKeyRotationsOutput, + ListKeysInput, + ListKeysOutput, + ListResourceTagsInput, + ListResourceTagsOutput, + ListRetirableGrantsInput, + ListRetirableGrantsOutput, + PutKeyPolicyInput, + PutKeyPolicyOutput, + ReEncryptInput, + ReEncryptOutput, + ReplicateKeyInput, + ReplicateKeyOutput, + RetireGrantInput, + RetireGrantOutput, + RevokeGrantInput, + RevokeGrantOutput, + RotateKeyOnDemandInput, + RotateKeyOnDemandOutput, + ScheduleKeyDeletionInput, + ScheduleKeyDeletionOutput, + SignInput, + SignOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAliasInput, + UpdateAliasOutput, + UpdateCustomKeyStoreInput, + UpdateCustomKeyStoreOutput, + UpdateKeyDescriptionInput, + UpdateKeyDescriptionOutput, + UpdatePrimaryRegionInput, + UpdatePrimaryRegionOutput, + VerifyInput, + VerifyMacInput, + VerifyMacOutput, + VerifyOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[CancelKeyDeletionInput, CancelKeyDeletionOutput, Any, Any], + Interceptor[ConnectCustomKeyStoreInput, ConnectCustomKeyStoreOutput, Any, Any], + Interceptor[CreateAliasInput, CreateAliasOutput, Any, Any], + Interceptor[CreateCustomKeyStoreInput, CreateCustomKeyStoreOutput, Any, Any], + Interceptor[CreateGrantInput, CreateGrantOutput, Any, Any], + Interceptor[CreateKeyInput, CreateKeyOutput, Any, Any], + Interceptor[DecapsulateInput, DecapsulateOutput, Any, Any], + Interceptor[DecryptInput, DecryptOutput, Any, Any], + Interceptor[DeleteAliasInput, DeleteAliasOutput, Any, Any], + Interceptor[DeleteCustomKeyStoreInput, DeleteCustomKeyStoreOutput, Any, Any], + Interceptor[ + DeleteImportedKeyMaterialInput, DeleteImportedKeyMaterialOutput, Any, Any + ], + Interceptor[DeriveSharedSecretInput, DeriveSharedSecretOutput, Any, Any], + Interceptor[ + DescribeCustomKeyStoresInput, DescribeCustomKeyStoresOutput, Any, Any + ], + Interceptor[DescribeKeyInput, DescribeKeyOutput, Any, Any], + Interceptor[DisableKeyInput, DisableKeyOutput, Any, Any], + Interceptor[DisableKeyRotationInput, DisableKeyRotationOutput, Any, Any], + Interceptor[ + DisconnectCustomKeyStoreInput, DisconnectCustomKeyStoreOutput, Any, Any + ], + Interceptor[EnableKeyInput, EnableKeyOutput, Any, Any], + Interceptor[EnableKeyRotationInput, EnableKeyRotationOutput, Any, Any], + Interceptor[EncapsulateInput, EncapsulateOutput, Any, Any], + Interceptor[EncryptInput, EncryptOutput, Any, Any], + Interceptor[GenerateDataKeyInput, GenerateDataKeyOutput, Any, Any], + Interceptor[GenerateDataKeyPairInput, GenerateDataKeyPairOutput, Any, Any], + Interceptor[ + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + Any, + Any, + ], + Interceptor[ + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + Any, + Any, + ], + Interceptor[GenerateMacInput, GenerateMacOutput, Any, Any], + Interceptor[GenerateRandomInput, GenerateRandomOutput, Any, Any], + Interceptor[GetKeyLastUsageInput, GetKeyLastUsageOutput, Any, Any], + Interceptor[GetKeyPolicyInput, GetKeyPolicyOutput, Any, Any], + Interceptor[GetKeyRotationStatusInput, GetKeyRotationStatusOutput, Any, Any], + Interceptor[ + GetParametersForImportInput, GetParametersForImportOutput, Any, Any + ], + Interceptor[GetPublicKeyInput, GetPublicKeyOutput, Any, Any], + Interceptor[ImportKeyMaterialInput, ImportKeyMaterialOutput, Any, Any], + Interceptor[ListAliasesInput, ListAliasesOutput, Any, Any], + Interceptor[ListGrantsInput, ListGrantsOutput, Any, Any], + Interceptor[ListKeyPoliciesInput, ListKeyPoliciesOutput, Any, Any], + Interceptor[ListKeyRotationsInput, ListKeyRotationsOutput, Any, Any], + Interceptor[ListKeysInput, ListKeysOutput, Any, Any], + Interceptor[ListResourceTagsInput, ListResourceTagsOutput, Any, Any], + Interceptor[ListRetirableGrantsInput, ListRetirableGrantsOutput, Any, Any], + Interceptor[PutKeyPolicyInput, PutKeyPolicyOutput, Any, Any], + Interceptor[ReEncryptInput, ReEncryptOutput, Any, Any], + Interceptor[ReplicateKeyInput, ReplicateKeyOutput, Any, Any], + Interceptor[RetireGrantInput, RetireGrantOutput, Any, Any], + Interceptor[RevokeGrantInput, RevokeGrantOutput, Any, Any], + Interceptor[RotateKeyOnDemandInput, RotateKeyOnDemandOutput, Any, Any], + Interceptor[ScheduleKeyDeletionInput, ScheduleKeyDeletionOutput, Any, Any], + Interceptor[SignInput, SignOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], + Interceptor[UpdateAliasInput, UpdateAliasOutput, Any, Any], + Interceptor[UpdateCustomKeyStoreInput, UpdateCustomKeyStoreOutput, Any, Any], + Interceptor[UpdateKeyDescriptionInput, UpdateKeyDescriptionOutput, Any, Any], + Interceptor[UpdatePrimaryRegionInput, UpdatePrimaryRegionOutput, Any, Any], + Interceptor[VerifyInput, VerifyOutput, Any, Any], + Interceptor[VerifyMacInput, VerifyMacOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.kms", + service_target="TrentService", + service_schema=TRENT_SERVICE, +) + + +class _KMSConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class KMSConfig(AwsConfig): + """KMS configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("kms").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsJson11ClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="kms") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_KMSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[KMSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/models.py b/clients/aws-sdk-kms/src/aws_sdk_kms/models.py new file mode 100644 index 00000000..b5caea05 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/models.py @@ -0,0 +1,1326 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AlgorithmSpec": "ALGORITHM_SPEC", + "AliasListEntry": "ALIAS_LIST_ENTRY", + "AlreadyExistsException": "ALREADY_EXISTS_EXCEPTION", + "CancelKeyDeletionInput": "CANCEL_KEY_DELETION_INPUT", + "CancelKeyDeletionOutput": "CANCEL_KEY_DELETION_OUTPUT", + "CloudHsmClusterInUseException": "CLOUD_HSM_CLUSTER_IN_USE_EXCEPTION", + "CloudHsmClusterInvalidConfigurationException": "CLOUD_HSM_CLUSTER_INVALID_CONFIGURATION_EXCEPTION", + "CloudHsmClusterNotActiveException": "CLOUD_HSM_CLUSTER_NOT_ACTIVE_EXCEPTION", + "CloudHsmClusterNotFoundException": "CLOUD_HSM_CLUSTER_NOT_FOUND_EXCEPTION", + "CloudHsmClusterNotRelatedException": "CLOUD_HSM_CLUSTER_NOT_RELATED_EXCEPTION", + "ConflictException": "CONFLICT_EXCEPTION", + "ConnectCustomKeyStoreInput": "CONNECT_CUSTOM_KEY_STORE_INPUT", + "ConnectCustomKeyStoreOutput": "CONNECT_CUSTOM_KEY_STORE_OUTPUT", + "ConnectionErrorCodeType": "CONNECTION_ERROR_CODE_TYPE", + "ConnectionStateType": "CONNECTION_STATE_TYPE", + "CreateAliasInput": "CREATE_ALIAS_INPUT", + "CreateAliasOutput": "CREATE_ALIAS_OUTPUT", + "CreateCustomKeyStoreInput": "CREATE_CUSTOM_KEY_STORE_INPUT", + "CreateCustomKeyStoreOutput": "CREATE_CUSTOM_KEY_STORE_OUTPUT", + "CreateGrantInput": "CREATE_GRANT_INPUT", + "CreateGrantOutput": "CREATE_GRANT_OUTPUT", + "CreateKeyInput": "CREATE_KEY_INPUT", + "CreateKeyOutput": "CREATE_KEY_OUTPUT", + "CustomerMasterKeySpec": "CUSTOMER_MASTER_KEY_SPEC", + "CustomKeyStoreHasCMKsException": "CUSTOM_KEY_STORE_HAS_CM_KS_EXCEPTION", + "CustomKeyStoreInvalidStateException": "CUSTOM_KEY_STORE_INVALID_STATE_EXCEPTION", + "CustomKeyStoreNameInUseException": "CUSTOM_KEY_STORE_NAME_IN_USE_EXCEPTION", + "CustomKeyStoreNotFoundException": "CUSTOM_KEY_STORE_NOT_FOUND_EXCEPTION", + "CustomKeyStoresListEntry": "CUSTOM_KEY_STORES_LIST_ENTRY", + "CustomKeyStoreType": "CUSTOM_KEY_STORE_TYPE", + "DataKeyPairSpec": "DATA_KEY_PAIR_SPEC", + "DataKeySpec": "DATA_KEY_SPEC", + "DecapsulateInput": "DECAPSULATE_INPUT", + "DecapsulateOutput": "DECAPSULATE_OUTPUT", + "DecryptInput": "DECRYPT_INPUT", + "DecryptOutput": "DECRYPT_OUTPUT", + "DeleteAliasInput": "DELETE_ALIAS_INPUT", + "DeleteAliasOutput": "DELETE_ALIAS_OUTPUT", + "DeleteCustomKeyStoreInput": "DELETE_CUSTOM_KEY_STORE_INPUT", + "DeleteCustomKeyStoreOutput": "DELETE_CUSTOM_KEY_STORE_OUTPUT", + "DeleteImportedKeyMaterialInput": "DELETE_IMPORTED_KEY_MATERIAL_INPUT", + "DeleteImportedKeyMaterialOutput": "DELETE_IMPORTED_KEY_MATERIAL_OUTPUT", + "DependencyTimeoutException": "DEPENDENCY_TIMEOUT_EXCEPTION", + "DeriveSharedSecretInput": "DERIVE_SHARED_SECRET_INPUT", + "DeriveSharedSecretOutput": "DERIVE_SHARED_SECRET_OUTPUT", + "DescribeCustomKeyStoresInput": "DESCRIBE_CUSTOM_KEY_STORES_INPUT", + "DescribeCustomKeyStoresOutput": "DESCRIBE_CUSTOM_KEY_STORES_OUTPUT", + "DescribeKeyInput": "DESCRIBE_KEY_INPUT", + "DescribeKeyOutput": "DESCRIBE_KEY_OUTPUT", + "DisabledException": "DISABLED_EXCEPTION", + "DisableKeyInput": "DISABLE_KEY_INPUT", + "DisableKeyOutput": "DISABLE_KEY_OUTPUT", + "DisableKeyRotationInput": "DISABLE_KEY_ROTATION_INPUT", + "DisableKeyRotationOutput": "DISABLE_KEY_ROTATION_OUTPUT", + "DisconnectCustomKeyStoreInput": "DISCONNECT_CUSTOM_KEY_STORE_INPUT", + "DisconnectCustomKeyStoreOutput": "DISCONNECT_CUSTOM_KEY_STORE_OUTPUT", + "DryRunModifierType": "DRY_RUN_MODIFIER_TYPE", + "DryRunOperationException": "DRY_RUN_OPERATION_EXCEPTION", + "EnableKeyInput": "ENABLE_KEY_INPUT", + "EnableKeyOutput": "ENABLE_KEY_OUTPUT", + "EnableKeyRotationInput": "ENABLE_KEY_ROTATION_INPUT", + "EnableKeyRotationOutput": "ENABLE_KEY_ROTATION_OUTPUT", + "EncapsulateInput": "ENCAPSULATE_INPUT", + "EncapsulateOutput": "ENCAPSULATE_OUTPUT", + "EncapsulationAlgorithmSpec": "ENCAPSULATION_ALGORITHM_SPEC", + "EncryptInput": "ENCRYPT_INPUT", + "EncryptionAlgorithmSpec": "ENCRYPTION_ALGORITHM_SPEC", + "EncryptOutput": "ENCRYPT_OUTPUT", + "ExpirationModelType": "EXPIRATION_MODEL_TYPE", + "ExpiredImportTokenException": "EXPIRED_IMPORT_TOKEN_EXCEPTION", + "GenerateDataKeyInput": "GENERATE_DATA_KEY_INPUT", + "GenerateDataKeyOutput": "GENERATE_DATA_KEY_OUTPUT", + "GenerateDataKeyPairInput": "GENERATE_DATA_KEY_PAIR_INPUT", + "GenerateDataKeyPairOutput": "GENERATE_DATA_KEY_PAIR_OUTPUT", + "GenerateDataKeyPairWithoutPlaintextInput": "GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_INPUT", + "GenerateDataKeyPairWithoutPlaintextOutput": "GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT_OUTPUT", + "GenerateDataKeyWithoutPlaintextInput": "GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_INPUT", + "GenerateDataKeyWithoutPlaintextOutput": "GENERATE_DATA_KEY_WITHOUT_PLAINTEXT_OUTPUT", + "GenerateMacInput": "GENERATE_MAC_INPUT", + "GenerateMacOutput": "GENERATE_MAC_OUTPUT", + "GenerateRandomInput": "GENERATE_RANDOM_INPUT", + "GenerateRandomOutput": "GENERATE_RANDOM_OUTPUT", + "GetKeyLastUsageInput": "GET_KEY_LAST_USAGE_INPUT", + "GetKeyLastUsageOutput": "GET_KEY_LAST_USAGE_OUTPUT", + "GetKeyPolicyInput": "GET_KEY_POLICY_INPUT", + "GetKeyPolicyOutput": "GET_KEY_POLICY_OUTPUT", + "GetKeyRotationStatusInput": "GET_KEY_ROTATION_STATUS_INPUT", + "GetKeyRotationStatusOutput": "GET_KEY_ROTATION_STATUS_OUTPUT", + "GetParametersForImportInput": "GET_PARAMETERS_FOR_IMPORT_INPUT", + "GetParametersForImportOutput": "GET_PARAMETERS_FOR_IMPORT_OUTPUT", + "GetPublicKeyInput": "GET_PUBLIC_KEY_INPUT", + "GetPublicKeyOutput": "GET_PUBLIC_KEY_OUTPUT", + "GrantConstraints": "GRANT_CONSTRAINTS", + "GrantListEntry": "GRANT_LIST_ENTRY", + "GrantOperation": "GRANT_OPERATION", + "ImportKeyMaterialInput": "IMPORT_KEY_MATERIAL_INPUT", + "ImportKeyMaterialOutput": "IMPORT_KEY_MATERIAL_OUTPUT", + "ImportState": "IMPORT_STATE", + "ImportType": "IMPORT_TYPE", + "IncludeKeyMaterial": "INCLUDE_KEY_MATERIAL", + "IncorrectKeyException": "INCORRECT_KEY_EXCEPTION", + "IncorrectKeyMaterialException": "INCORRECT_KEY_MATERIAL_EXCEPTION", + "IncorrectTrustAnchorException": "INCORRECT_TRUST_ANCHOR_EXCEPTION", + "InvalidAliasNameException": "INVALID_ALIAS_NAME_EXCEPTION", + "InvalidArnException": "INVALID_ARN_EXCEPTION", + "InvalidCiphertextException": "INVALID_CIPHERTEXT_EXCEPTION", + "InvalidGrantIdException": "INVALID_GRANT_ID_EXCEPTION", + "InvalidGrantTokenException": "INVALID_GRANT_TOKEN_EXCEPTION", + "InvalidImportTokenException": "INVALID_IMPORT_TOKEN_EXCEPTION", + "InvalidKeyUsageException": "INVALID_KEY_USAGE_EXCEPTION", + "InvalidMarkerException": "INVALID_MARKER_EXCEPTION", + "KeyAgreementAlgorithmSpec": "KEY_AGREEMENT_ALGORITHM_SPEC", + "KeyEncryptionMechanism": "KEY_ENCRYPTION_MECHANISM", + "KeyLastUsageData": "KEY_LAST_USAGE_DATA", + "KeyLastUsageTrackingOperation": "KEY_LAST_USAGE_TRACKING_OPERATION", + "KeyListEntry": "KEY_LIST_ENTRY", + "KeyManagerType": "KEY_MANAGER_TYPE", + "KeyMaterialState": "KEY_MATERIAL_STATE", + "KeyMetadata": "KEY_METADATA", + "KeySpec": "KEY_SPEC", + "KeyState": "KEY_STATE", + "KeyUnavailableException": "KEY_UNAVAILABLE_EXCEPTION", + "KeyUsageType": "KEY_USAGE_TYPE", + "KMSInternalException": "KMS_INTERNAL_EXCEPTION", + "KMSInvalidMacException": "KMS_INVALID_MAC_EXCEPTION", + "KMSInvalidSignatureException": "KMS_INVALID_SIGNATURE_EXCEPTION", + "KMSInvalidStateException": "KMS_INVALID_STATE_EXCEPTION", + "LimitExceededException": "LIMIT_EXCEEDED_EXCEPTION", + "ListAliasesInput": "LIST_ALIASES_INPUT", + "ListAliasesOutput": "LIST_ALIASES_OUTPUT", + "ListGrantsInput": "LIST_GRANTS_INPUT", + "ListGrantsOutput": "LIST_GRANTS_OUTPUT", + "ListKeyPoliciesInput": "LIST_KEY_POLICIES_INPUT", + "ListKeyPoliciesOutput": "LIST_KEY_POLICIES_OUTPUT", + "ListKeyRotationsInput": "LIST_KEY_ROTATIONS_INPUT", + "ListKeyRotationsOutput": "LIST_KEY_ROTATIONS_OUTPUT", + "ListKeysInput": "LIST_KEYS_INPUT", + "ListKeysOutput": "LIST_KEYS_OUTPUT", + "ListResourceTagsInput": "LIST_RESOURCE_TAGS_INPUT", + "ListResourceTagsOutput": "LIST_RESOURCE_TAGS_OUTPUT", + "ListRetirableGrantsInput": "LIST_RETIRABLE_GRANTS_INPUT", + "ListRetirableGrantsOutput": "LIST_RETIRABLE_GRANTS_OUTPUT", + "MacAlgorithmSpec": "MAC_ALGORITHM_SPEC", + "MalformedPolicyDocumentException": "MALFORMED_POLICY_DOCUMENT_EXCEPTION", + "MessageType": "MESSAGE_TYPE", + "MultiRegionConfiguration": "MULTI_REGION_CONFIGURATION", + "MultiRegionKey": "MULTI_REGION_KEY", + "MultiRegionKeyType": "MULTI_REGION_KEY_TYPE", + "NotFoundException": "NOT_FOUND_EXCEPTION", + "OriginType": "ORIGIN_TYPE", + "PutKeyPolicyInput": "PUT_KEY_POLICY_INPUT", + "PutKeyPolicyOutput": "PUT_KEY_POLICY_OUTPUT", + "RecipientInfo": "RECIPIENT_INFO", + "ReEncryptInput": "RE_ENCRYPT_INPUT", + "ReEncryptOutput": "RE_ENCRYPT_OUTPUT", + "ReplicateKeyInput": "REPLICATE_KEY_INPUT", + "ReplicateKeyOutput": "REPLICATE_KEY_OUTPUT", + "RetireGrantInput": "RETIRE_GRANT_INPUT", + "RetireGrantOutput": "RETIRE_GRANT_OUTPUT", + "RevokeGrantInput": "REVOKE_GRANT_INPUT", + "RevokeGrantOutput": "REVOKE_GRANT_OUTPUT", + "RotateKeyOnDemandInput": "ROTATE_KEY_ON_DEMAND_INPUT", + "RotateKeyOnDemandOutput": "ROTATE_KEY_ON_DEMAND_OUTPUT", + "RotationsListEntry": "ROTATIONS_LIST_ENTRY", + "RotationType": "ROTATION_TYPE", + "ScheduleKeyDeletionInput": "SCHEDULE_KEY_DELETION_INPUT", + "ScheduleKeyDeletionOutput": "SCHEDULE_KEY_DELETION_OUTPUT", + "SigningAlgorithmSpec": "SIGNING_ALGORITHM_SPEC", + "SignInput": "SIGN_INPUT", + "SignOutput": "SIGN_OUTPUT", + "Tag": "TAG", + "TagException": "TAG_EXCEPTION", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", + "UnsupportedOperationException": "UNSUPPORTED_OPERATION_EXCEPTION", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", + "UpdateAliasInput": "UPDATE_ALIAS_INPUT", + "UpdateAliasOutput": "UPDATE_ALIAS_OUTPUT", + "UpdateCustomKeyStoreInput": "UPDATE_CUSTOM_KEY_STORE_INPUT", + "UpdateCustomKeyStoreOutput": "UPDATE_CUSTOM_KEY_STORE_OUTPUT", + "UpdateKeyDescriptionInput": "UPDATE_KEY_DESCRIPTION_INPUT", + "UpdateKeyDescriptionOutput": "UPDATE_KEY_DESCRIPTION_OUTPUT", + "UpdatePrimaryRegionInput": "UPDATE_PRIMARY_REGION_INPUT", + "UpdatePrimaryRegionOutput": "UPDATE_PRIMARY_REGION_OUTPUT", + "VerifyInput": "VERIFY_INPUT", + "VerifyMacInput": "VERIFY_MAC_INPUT", + "VerifyMacOutput": "VERIFY_MAC_OUTPUT", + "VerifyOutput": "VERIFY_OUTPUT", + "WrappingKeySpec": "WRAPPING_KEY_SPEC", + "XksKeyAlreadyInUseException": "XKS_KEY_ALREADY_IN_USE_EXCEPTION", + "XksKeyConfigurationType": "XKS_KEY_CONFIGURATION_TYPE", + "XksKeyInvalidConfigurationException": "XKS_KEY_INVALID_CONFIGURATION_EXCEPTION", + "XksKeyNotFoundException": "XKS_KEY_NOT_FOUND_EXCEPTION", + "XksProxyAuthenticationCredentialType": "XKS_PROXY_AUTHENTICATION_CREDENTIAL_TYPE", + "XksProxyConfigurationType": "XKS_PROXY_CONFIGURATION_TYPE", + "XksProxyConnectivityType": "XKS_PROXY_CONNECTIVITY_TYPE", + "XksProxyIncorrectAuthenticationCredentialException": "XKS_PROXY_INCORRECT_AUTHENTICATION_CREDENTIAL_EXCEPTION", + "XksProxyInvalidConfigurationException": "XKS_PROXY_INVALID_CONFIGURATION_EXCEPTION", + "XksProxyInvalidResponseException": "XKS_PROXY_INVALID_RESPONSE_EXCEPTION", + "XksProxyUriEndpointInUseException": "XKS_PROXY_URI_ENDPOINT_IN_USE_EXCEPTION", + "XksProxyUriInUseException": "XKS_PROXY_URI_IN_USE_EXCEPTION", + "XksProxyUriUnreachableException": "XKS_PROXY_URI_UNREACHABLE_EXCEPTION", + "XksProxyVpcEndpointServiceInUseException": "XKS_PROXY_VPC_ENDPOINT_SERVICE_IN_USE_EXCEPTION", + "XksProxyVpcEndpointServiceInvalidConfigurationException": "XKS_PROXY_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION_EXCEPTION", + "XksProxyVpcEndpointServiceNotFoundException": "XKS_PROXY_VPC_ENDPOINT_SERVICE_NOT_FOUND_EXCEPTION", + }, + shape_names=frozenset( + { + "AlgorithmSpec", + "AliasListEntry", + "AlreadyExistsException", + "CancelKeyDeletionInput", + "CancelKeyDeletionOutput", + "CloudHsmClusterInUseException", + "CloudHsmClusterInvalidConfigurationException", + "CloudHsmClusterNotActiveException", + "CloudHsmClusterNotFoundException", + "CloudHsmClusterNotRelatedException", + "ConflictException", + "ConnectCustomKeyStoreInput", + "ConnectCustomKeyStoreOutput", + "ConnectionErrorCodeType", + "ConnectionStateType", + "CreateAliasInput", + "CreateAliasOutput", + "CreateCustomKeyStoreInput", + "CreateCustomKeyStoreOutput", + "CreateGrantInput", + "CreateGrantOutput", + "CreateKeyInput", + "CreateKeyOutput", + "CustomKeyStoreHasCMKsException", + "CustomKeyStoreInvalidStateException", + "CustomKeyStoreNameInUseException", + "CustomKeyStoreNotFoundException", + "CustomKeyStoreType", + "CustomKeyStoresListEntry", + "CustomerMasterKeySpec", + "DataKeyPairSpec", + "DataKeySpec", + "DecapsulateInput", + "DecapsulateOutput", + "DecryptInput", + "DecryptOutput", + "DeleteAliasInput", + "DeleteAliasOutput", + "DeleteCustomKeyStoreInput", + "DeleteCustomKeyStoreOutput", + "DeleteImportedKeyMaterialInput", + "DeleteImportedKeyMaterialOutput", + "DependencyTimeoutException", + "DeriveSharedSecretInput", + "DeriveSharedSecretOutput", + "DescribeCustomKeyStoresInput", + "DescribeCustomKeyStoresOutput", + "DescribeKeyInput", + "DescribeKeyOutput", + "DisableKeyInput", + "DisableKeyOutput", + "DisableKeyRotationInput", + "DisableKeyRotationOutput", + "DisabledException", + "DisconnectCustomKeyStoreInput", + "DisconnectCustomKeyStoreOutput", + "DryRunModifierType", + "DryRunOperationException", + "EnableKeyInput", + "EnableKeyOutput", + "EnableKeyRotationInput", + "EnableKeyRotationOutput", + "EncapsulateInput", + "EncapsulateOutput", + "EncapsulationAlgorithmSpec", + "EncryptInput", + "EncryptOutput", + "EncryptionAlgorithmSpec", + "ExpirationModelType", + "ExpiredImportTokenException", + "GenerateDataKeyInput", + "GenerateDataKeyOutput", + "GenerateDataKeyPairInput", + "GenerateDataKeyPairOutput", + "GenerateDataKeyPairWithoutPlaintextInput", + "GenerateDataKeyPairWithoutPlaintextOutput", + "GenerateDataKeyWithoutPlaintextInput", + "GenerateDataKeyWithoutPlaintextOutput", + "GenerateMacInput", + "GenerateMacOutput", + "GenerateRandomInput", + "GenerateRandomOutput", + "GetKeyLastUsageInput", + "GetKeyLastUsageOutput", + "GetKeyPolicyInput", + "GetKeyPolicyOutput", + "GetKeyRotationStatusInput", + "GetKeyRotationStatusOutput", + "GetParametersForImportInput", + "GetParametersForImportOutput", + "GetPublicKeyInput", + "GetPublicKeyOutput", + "GrantConstraints", + "GrantListEntry", + "GrantOperation", + "ImportKeyMaterialInput", + "ImportKeyMaterialOutput", + "ImportState", + "ImportType", + "IncludeKeyMaterial", + "IncorrectKeyException", + "IncorrectKeyMaterialException", + "IncorrectTrustAnchorException", + "InvalidAliasNameException", + "InvalidArnException", + "InvalidCiphertextException", + "InvalidGrantIdException", + "InvalidGrantTokenException", + "InvalidImportTokenException", + "InvalidKeyUsageException", + "InvalidMarkerException", + "KMSInternalException", + "KMSInvalidMacException", + "KMSInvalidSignatureException", + "KMSInvalidStateException", + "KeyAgreementAlgorithmSpec", + "KeyEncryptionMechanism", + "KeyLastUsageData", + "KeyLastUsageTrackingOperation", + "KeyListEntry", + "KeyManagerType", + "KeyMaterialState", + "KeyMetadata", + "KeySpec", + "KeyState", + "KeyUnavailableException", + "KeyUsageType", + "LimitExceededException", + "ListAliasesInput", + "ListAliasesOutput", + "ListGrantsInput", + "ListGrantsOutput", + "ListKeyPoliciesInput", + "ListKeyPoliciesOutput", + "ListKeyRotationsInput", + "ListKeyRotationsOutput", + "ListKeysInput", + "ListKeysOutput", + "ListResourceTagsInput", + "ListResourceTagsOutput", + "ListRetirableGrantsInput", + "ListRetirableGrantsOutput", + "MacAlgorithmSpec", + "MalformedPolicyDocumentException", + "MessageType", + "MultiRegionConfiguration", + "MultiRegionKey", + "MultiRegionKeyType", + "NotFoundException", + "OriginType", + "PutKeyPolicyInput", + "PutKeyPolicyOutput", + "ReEncryptInput", + "ReEncryptOutput", + "RecipientInfo", + "ReplicateKeyInput", + "ReplicateKeyOutput", + "RetireGrantInput", + "RetireGrantOutput", + "RevokeGrantInput", + "RevokeGrantOutput", + "RotateKeyOnDemandInput", + "RotateKeyOnDemandOutput", + "RotationType", + "RotationsListEntry", + "ScheduleKeyDeletionInput", + "ScheduleKeyDeletionOutput", + "SignInput", + "SignOutput", + "SigningAlgorithmSpec", + "Tag", + "TagException", + "TagResourceInput", + "TagResourceOutput", + "UnsupportedOperationException", + "UntagResourceInput", + "UntagResourceOutput", + "UpdateAliasInput", + "UpdateAliasOutput", + "UpdateCustomKeyStoreInput", + "UpdateCustomKeyStoreOutput", + "UpdateKeyDescriptionInput", + "UpdateKeyDescriptionOutput", + "UpdatePrimaryRegionInput", + "UpdatePrimaryRegionOutput", + "VerifyInput", + "VerifyMacInput", + "VerifyMacOutput", + "VerifyOutput", + "WrappingKeySpec", + "XksKeyAlreadyInUseException", + "XksKeyConfigurationType", + "XksKeyInvalidConfigurationException", + "XksKeyNotFoundException", + "XksProxyAuthenticationCredentialType", + "XksProxyConfigurationType", + "XksProxyConnectivityType", + "XksProxyIncorrectAuthenticationCredentialException", + "XksProxyInvalidConfigurationException", + "XksProxyInvalidResponseException", + "XksProxyUriEndpointInUseException", + "XksProxyUriInUseException", + "XksProxyUriUnreachableException", + "XksProxyVpcEndpointServiceInUseException", + "XksProxyVpcEndpointServiceInvalidConfigurationException", + "XksProxyVpcEndpointServiceNotFoundException", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "CANCEL_KEY_DELETION", + "CONNECT_CUSTOM_KEY_STORE", + "CREATE_ALIAS", + "CREATE_CUSTOM_KEY_STORE", + "CREATE_GRANT", + "CREATE_KEY", + "DECAPSULATE", + "DECRYPT", + "DELETE_ALIAS", + "DELETE_CUSTOM_KEY_STORE", + "DELETE_IMPORTED_KEY_MATERIAL", + "DERIVE_SHARED_SECRET", + "DESCRIBE_CUSTOM_KEY_STORES", + "DESCRIBE_KEY", + "DISABLE_KEY", + "DISABLE_KEY_ROTATION", + "DISCONNECT_CUSTOM_KEY_STORE", + "ENABLE_KEY", + "ENABLE_KEY_ROTATION", + "ENCAPSULATE", + "ENCRYPT", + "GENERATE_DATA_KEY", + "GENERATE_DATA_KEY_PAIR", + "GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT", + "GENERATE_DATA_KEY_WITHOUT_PLAINTEXT", + "GENERATE_MAC", + "GENERATE_RANDOM", + "GET_KEY_LAST_USAGE", + "GET_KEY_POLICY", + "GET_KEY_ROTATION_STATUS", + "GET_PARAMETERS_FOR_IMPORT", + "GET_PUBLIC_KEY", + "IMPORT_KEY_MATERIAL", + "LIST_ALIASES", + "LIST_GRANTS", + "LIST_KEY_POLICIES", + "LIST_KEY_ROTATIONS", + "LIST_KEYS", + "LIST_RESOURCE_TAGS", + "LIST_RETIRABLE_GRANTS", + "PUT_KEY_POLICY", + "RE_ENCRYPT", + "REPLICATE_KEY", + "RETIRE_GRANT", + "REVOKE_GRANT", + "ROTATE_KEY_ON_DEMAND", + "SCHEDULE_KEY_DELETION", + "SIGN", + "TAG_RESOURCE", + "UNTAG_RESOURCE", + "UPDATE_ALIAS", + "UPDATE_CUSTOM_KEY_STORE", + "UPDATE_KEY_DESCRIPTION", + "UPDATE_PRIMARY_REGION", + "VERIFY", + "VERIFY_MAC", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["CANCEL_KEY_DELETION"] = ( + "CANCEL_KEY_DELETION", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CONNECT_CUSTOM_KEY_STORE"] = ( + "CONNECT_CUSTOM_KEY_STORE", + ( + "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException", + "com.amazonaws.kms#CloudHsmClusterNotActiveException", + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#KMSInternalException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_ALIAS"] = ( + "CREATE_ALIAS", + ( + "com.amazonaws.kms#AlreadyExistsException", + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidAliasNameException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CUSTOM_KEY_STORE"] = ( + "CREATE_CUSTOM_KEY_STORE", + ( + "com.amazonaws.kms#CloudHsmClusterInUseException", + "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException", + "com.amazonaws.kms#CloudHsmClusterNotActiveException", + "com.amazonaws.kms#CloudHsmClusterNotFoundException", + "com.amazonaws.kms#CustomKeyStoreNameInUseException", + "com.amazonaws.kms#IncorrectTrustAnchorException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException", + "com.amazonaws.kms#XksProxyInvalidConfigurationException", + "com.amazonaws.kms#XksProxyInvalidResponseException", + "com.amazonaws.kms#XksProxyUriEndpointInUseException", + "com.amazonaws.kms#XksProxyUriInUseException", + "com.amazonaws.kms#XksProxyUriUnreachableException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_GRANT"] = ( + "CREATE_GRANT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_KEY"] = ( + "CREATE_KEY", + ( + "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException", + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#MalformedPolicyDocumentException", + "com.amazonaws.kms#TagException", + "com.amazonaws.kms#UnsupportedOperationException", + "com.amazonaws.kms#XksKeyAlreadyInUseException", + "com.amazonaws.kms#XksKeyInvalidConfigurationException", + "com.amazonaws.kms#XksKeyNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DECAPSULATE"] = ( + "DECAPSULATE", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidCiphertextException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DECRYPT"] = ( + "DECRYPT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#IncorrectKeyException", + "com.amazonaws.kms#InvalidCiphertextException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_ALIAS"] = ( + "DELETE_ALIAS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CUSTOM_KEY_STORE"] = ( + "DELETE_CUSTOM_KEY_STORE", + ( + "com.amazonaws.kms#CustomKeyStoreHasCMKsException", + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#KMSInternalException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_IMPORTED_KEY_MATERIAL"] = ( + "DELETE_IMPORTED_KEY_MATERIAL", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DERIVE_SHARED_SECRET"] = ( + "DERIVE_SHARED_SECRET", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CUSTOM_KEY_STORES"] = ( + "DESCRIBE_CUSTOM_KEY_STORES", + ( + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_KEY"] = ( + "DESCRIBE_KEY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_KEY"] = ( + "DISABLE_KEY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_KEY_ROTATION"] = ( + "DISABLE_KEY_ROTATION", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISCONNECT_CUSTOM_KEY_STORE"] = ( + "DISCONNECT_CUSTOM_KEY_STORE", + ( + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#KMSInternalException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_KEY"] = ( + "ENABLE_KEY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_KEY_ROTATION"] = ( + "ENABLE_KEY_ROTATION", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENCAPSULATE"] = ( + "ENCAPSULATE", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENCRYPT"] = ( + "ENCRYPT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_DATA_KEY"] = ( + "GENERATE_DATA_KEY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_DATA_KEY_PAIR"] = ( + "GENERATE_DATA_KEY_PAIR", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT"] = ( + "GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_DATA_KEY_WITHOUT_PLAINTEXT"] = ( + "GENERATE_DATA_KEY_WITHOUT_PLAINTEXT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_MAC"] = ( + "GENERATE_MAC", + ( + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GENERATE_RANDOM"] = ( + "GENERATE_RANDOM", + ( + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY_LAST_USAGE"] = ( + "GET_KEY_LAST_USAGE", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY_POLICY"] = ( + "GET_KEY_POLICY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_KEY_ROTATION_STATUS"] = ( + "GET_KEY_ROTATION_STATUS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_PARAMETERS_FOR_IMPORT"] = ( + "GET_PARAMETERS_FOR_IMPORT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_PUBLIC_KEY"] = ( + "GET_PUBLIC_KEY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["IMPORT_KEY_MATERIAL"] = ( + "IMPORT_KEY_MATERIAL", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#ExpiredImportTokenException", + "com.amazonaws.kms#IncorrectKeyMaterialException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidCiphertextException", + "com.amazonaws.kms#InvalidImportTokenException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_ALIASES"] = ( + "LIST_ALIASES", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_GRANTS"] = ( + "LIST_GRANTS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidGrantIdException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEY_POLICIES"] = ( + "LIST_KEY_POLICIES", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEY_ROTATIONS"] = ( + "LIST_KEY_ROTATIONS", + ( + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_KEYS"] = ( + "LIST_KEYS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RESOURCE_TAGS"] = ( + "LIST_RESOURCE_TAGS", + ( + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_RETIRABLE_GRANTS"] = ( + "LIST_RETIRABLE_GRANTS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidMarkerException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_KEY_POLICY"] = ( + "PUT_KEY_POLICY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#MalformedPolicyDocumentException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RE_ENCRYPT"] = ( + "RE_ENCRYPT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#IncorrectKeyException", + "com.amazonaws.kms#InvalidCiphertextException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REPLICATE_KEY"] = ( + "REPLICATE_KEY", + ( + "com.amazonaws.kms#AlreadyExistsException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#MalformedPolicyDocumentException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#TagException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RETIRE_GRANT"] = ( + "RETIRE_GRANT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidGrantIdException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_GRANT"] = ( + "REVOKE_GRANT", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#InvalidGrantIdException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ROTATE_KEY_ON_DEMAND"] = ( + "ROTATE_KEY_ON_DEMAND", + ( + "com.amazonaws.kms#ConflictException", + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SCHEDULE_KEY_DELETION"] = ( + "SCHEDULE_KEY_DELETION", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SIGN"] = ( + "SIGN", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#TagException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#TagException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_ALIAS"] = ( + "UPDATE_ALIAS", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#LimitExceededException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_CUSTOM_KEY_STORE"] = ( + "UPDATE_CUSTOM_KEY_STORE", + ( + "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException", + "com.amazonaws.kms#CloudHsmClusterNotActiveException", + "com.amazonaws.kms#CloudHsmClusterNotFoundException", + "com.amazonaws.kms#CloudHsmClusterNotRelatedException", + "com.amazonaws.kms#CustomKeyStoreInvalidStateException", + "com.amazonaws.kms#CustomKeyStoreNameInUseException", + "com.amazonaws.kms#CustomKeyStoreNotFoundException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException", + "com.amazonaws.kms#XksProxyInvalidConfigurationException", + "com.amazonaws.kms#XksProxyInvalidResponseException", + "com.amazonaws.kms#XksProxyUriEndpointInUseException", + "com.amazonaws.kms#XksProxyUriInUseException", + "com.amazonaws.kms#XksProxyUriUnreachableException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException", + "com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_KEY_DESCRIPTION"] = ( + "UPDATE_KEY_DESCRIPTION", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_PRIMARY_REGION"] = ( + "UPDATE_PRIMARY_REGION", + ( + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#InvalidArnException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + "com.amazonaws.kms#UnsupportedOperationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["VERIFY"] = ( + "VERIFY", + ( + "com.amazonaws.kms#DependencyTimeoutException", + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidSignatureException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["VERIFY_MAC"] = ( + "VERIFY_MAC", + ( + "com.amazonaws.kms#DisabledException", + "com.amazonaws.kms#DryRunOperationException", + "com.amazonaws.kms#InvalidGrantTokenException", + "com.amazonaws.kms#InvalidKeyUsageException", + "com.amazonaws.kms#KeyUnavailableException", + "com.amazonaws.kms#KMSInternalException", + "com.amazonaws.kms#KMSInvalidMacException", + "com.amazonaws.kms#KMSInvalidStateException", + "com.amazonaws.kms#NotFoundException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/models.pyi b/clients/aws-sdk-kms/src/aws_sdk_kms/models.pyi new file mode 100644 index 00000000..4910e64b --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/models.pyi @@ -0,0 +1,7414 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +class AlgorithmSpec(UnknownEnumMixin, StrEnum): + RSAES_PKCS1_V1_5 = "RSAES_PKCS1_V1_5" + RSAES_OAEP_SHA_1 = "RSAES_OAEP_SHA_1" + RSAES_OAEP_SHA_256 = "RSAES_OAEP_SHA_256" + RSA_AES_KEY_WRAP_SHA_1 = "RSA_AES_KEY_WRAP_SHA_1" + RSA_AES_KEY_WRAP_SHA_256 = "RSA_AES_KEY_WRAP_SHA_256" + SM2_PKE = "SM2PKE" + +@dataclass(kw_only=True) +class AliasListEntry(_SerdeShape): + """Contains information about an alias.""" + + alias_name: str | None = ... + """String that contains the alias. This value begins with `alias/`.""" + alias_arn: str | None = ... + """String that contains the key ARN.""" + target_key_id: str | None = ... + """ + String that contains the key identifier of the KMS key associated with + the alias. + """ + creation_date: datetime | None = ... + """ + Date and time that the alias was most recently created in the account + and Region. Formatted as Unix time. + """ + last_updated_date: datetime | None = ... + """ + Date and time that the alias was most recently associated with a KMS key + in the account and Region. Formatted as Unix time. + """ + +@dataclass(kw_only=True) +class AlreadyExistsException(ServiceError, _SerdeShape): + """ + The request was rejected because it attempted to create a resource that + already exists. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelKeyDeletionInput(_SerdeShape): + """Dataclass for CancelKeyDeletionInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key whose deletion is being canceled. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class CancelKeyDeletionOutput(_SerdeShape): + """Dataclass for CancelKeyDeletionOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key whose deletion is canceled. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudHsmClusterInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified CloudHSM cluster is + already associated with an CloudHSM key store in the account, or it + shares a backup history with an CloudHSM key store in the account. Each + CloudHSM key store in the account must be associated with a different + CloudHSM cluster. + + CloudHSM clusters that share a backup history have the same cluster + certificate. To view the cluster certificate of an CloudHSM cluster, use + the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudHsmClusterInvalidConfigurationException(ServiceError, _SerdeShape): + """ + The request was rejected because the associated CloudHSM cluster did not + meet the configuration requirements for an CloudHSM key store. + + - The CloudHSM cluster must be configured with private subnets in at + least two different Availability Zones in the Region. + + - The [security group for the + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html) + (cloudhsm-cluster-*``{=html}*-sg) must include inbound + rules and outbound rules that allow TCP traffic on ports 2223-2225. + The **Source** in the inbound rules and the **Destination** in the + outbound rules must match the security group ID. These rules are set + by default when you create the CloudHSM cluster. Do not delete or + change them. To get information about a particular security group, use + the + [DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html) + operation. + + - The CloudHSM cluster must contain at least as many HSMs as the + operation requires. To add HSMs, use the CloudHSM + [CreateHsm](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) + operation. + + For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey + operations, the CloudHSM cluster must have at least two active HSMs, + each in a different Availability Zone. For the ConnectCustomKeyStore + operation, the CloudHSM must contain at least one active HSM. + + For information about the requirements for an CloudHSM cluster that is + associated with an CloudHSM key store, see [Assemble the + Prerequisites](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) + in the *Key Management Service Developer Guide*. For information about + creating a private subnet for an CloudHSM cluster, see [Create a Private + Subnet](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html) + in the *CloudHSM User Guide*. For information about cluster security + groups, see [Configure a Default Security + Group](https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html) + in the CloudHSM User Guide . + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudHsmClusterNotActiveException(ServiceError, _SerdeShape): + """ + The request was rejected because the CloudHSM cluster associated with + the CloudHSM key store is not active. Initialize and activate the + cluster and try the command again. For detailed instructions, see + [Getting + Started](https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html) + in the *CloudHSM User Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudHsmClusterNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because KMS cannot find the CloudHSM cluster + with the specified cluster ID. Retry the request with a different + cluster ID. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CloudHsmClusterNotRelatedException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified CloudHSM cluster has a + different cluster certificate than the original cluster. You cannot use + the operation to specify an unrelated cluster for an CloudHSM key store. + + Specify an CloudHSM cluster that shares a backup history with the + original cluster. This includes clusters that were created from a backup + of the current cluster, and clusters that were created from the same + backup that produced the current cluster. + + CloudHSM clusters that share a backup history have the same cluster + certificate. To view the cluster certificate of an CloudHSM cluster, use + the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConflictException(ServiceError, _SerdeShape): + """ + The request was rejected because an automatic rotation of this key is + currently in progress or scheduled to begin within the next 20 minutes. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ConnectCustomKeyStoreInput(_SerdeShape): + """Dataclass for ConnectCustomKeyStoreInput structure.""" + + custom_key_store_id: str | None = ... + """ + Enter the key store ID of the custom key store that you want to connect. + To find the ID of a custom key store, use the DescribeCustomKeyStores + operation. + """ + +@dataclass(kw_only=True) +class ConnectCustomKeyStoreOutput(_SerdeShape): + """Dataclass for ConnectCustomKeyStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ConnectionErrorCodeType(UnknownEnumMixin, StrEnum): + INVALID_CREDENTIALS = "INVALID_CREDENTIALS" + CLUSTER_NOT_FOUND = "CLUSTER_NOT_FOUND" + NETWORK_ERRORS = "NETWORK_ERRORS" + INTERNAL_ERROR = "INTERNAL_ERROR" + INSUFFICIENT_CLOUDHSM_HSMS = "INSUFFICIENT_CLOUDHSM_HSMS" + USER_LOCKED_OUT = "USER_LOCKED_OUT" + USER_NOT_FOUND = "USER_NOT_FOUND" + USER_LOGGED_IN = "USER_LOGGED_IN" + SUBNET_NOT_FOUND = "SUBNET_NOT_FOUND" + INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET = "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET" + XKS_PROXY_ACCESS_DENIED = "XKS_PROXY_ACCESS_DENIED" + XKS_PROXY_NOT_REACHABLE = "XKS_PROXY_NOT_REACHABLE" + XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND = "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND" + XKS_PROXY_INVALID_RESPONSE = "XKS_PROXY_INVALID_RESPONSE" + XKS_PROXY_INVALID_CONFIGURATION = "XKS_PROXY_INVALID_CONFIGURATION" + XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION = ( + "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION" + ) + XKS_PROXY_TIMED_OUT = "XKS_PROXY_TIMED_OUT" + XKS_PROXY_INVALID_TLS_CONFIGURATION = "XKS_PROXY_INVALID_TLS_CONFIGURATION" + +class ConnectionStateType(UnknownEnumMixin, StrEnum): + CONNECTED = "CONNECTED" + CONNECTING = "CONNECTING" + FAILED = "FAILED" + DISCONNECTED = "DISCONNECTED" + DISCONNECTING = "DISCONNECTING" + +@dataclass(kw_only=True) +class CreateAliasInput(_SerdeShape): + """Dataclass for CreateAliasInput structure.""" + + alias_name: str | None = ... + """ + Specifies the alias name. This value must begin with `alias/` followed + by a name, such as `alias/ExampleAlias`. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + The `AliasName` value must be string of 1-256 characters. It can contain + only alphanumeric characters, forward slashes (/), underscores (_), and + dashes (-). The alias name cannot begin with `alias/aws/`. The + `alias/aws/` prefix is reserved for [Amazon Web Services managed + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + """ + target_key_id: str | None = ... + """ + Associates the alias with the specified [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key). + The KMS key must be in the same Amazon Web Services Region. + + A valid key ID is required. If you supply a null or empty string value, + this operation returns an error. + + For help finding the key ID and ARN, see [Find the key ID and key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html) + in the Key Management Service Developer Guide . + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class CreateAliasOutput(_SerdeShape): + """Dataclass for CreateAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCustomKeyStoreInput(_SerdeShape): + """Dataclass for CreateCustomKeyStoreInput structure.""" + + custom_key_store_name: str | None = ... + """ + Specifies a friendly name for the custom key store. The name must be + unique in your Amazon Web Services account and Region. This parameter is + required for all custom key stores. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + """ + cloud_hsm_cluster_id: str | None = ... + """ + Identifies the CloudHSM cluster for an CloudHSM key store. This + parameter is required for custom key stores with `CustomKeyStoreType` of + `AWS_CLOUDHSM`. + + Enter the cluster ID of any active CloudHSM cluster that is not already + associated with a custom key store. To find the cluster ID, use the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. + """ + trust_anchor_certificate: str | None = ... + """ + Specifies the certificate for an CloudHSM key store. This parameter is + required for custom key stores with a `CustomKeyStoreType` of + `AWS_CLOUDHSM`. + + Enter the content of the trust anchor certificate for the CloudHSM + cluster. This is the content of the `customerCA.crt` file that you + created when you [initialized the + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html). + """ + key_store_password: str | None = ... + """ + Specifies the `kmsuser` password for an CloudHSM key store. This + parameter is required for custom key stores with a `CustomKeyStoreType` + of `AWS_CLOUDHSM`. + + Enter the password of the [`kmsuser` crypto user (CU) + account](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html#concept-kmsuser) + in the specified CloudHSM cluster. KMS logs into the cluster as this + user to manage key material on your behalf. + + The password must be a string of 7 to 32 characters. Its value is case + sensitive. + + This parameter tells KMS the `kmsuser` account password; it does not + change the password in the CloudHSM cluster. + """ + custom_key_store_type: str | None = ... + """ + Specifies the type of custom key store. The default value is + `AWS_CLOUDHSM`. + + For a custom key store backed by an CloudHSM cluster, omit the parameter + or enter `AWS_CLOUDHSM`. For a custom key store backed by an external + key manager outside of Amazon Web Services, enter `EXTERNAL_KEY_STORE`. + You cannot change this property after the key store is created. + """ + xks_proxy_uri_endpoint: str | None = ... + """ + Specifies the endpoint that KMS uses to send requests to the external + key store proxy (XKS proxy). This parameter is required for custom key + stores with a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + The protocol must be HTTPS. KMS communicates on port 443. Do not specify + the port in the `XksProxyUriEndpoint` value. + + For external key stores with `XksProxyConnectivity` value of + `VPC_ENDPOINT_SERVICE`, specify `https://` followed by the private DNS + name of the VPC endpoint service. + + For external key stores with `PUBLIC_ENDPOINT` connectivity, this + endpoint must be reachable before you create the custom key store. KMS + connects to the external key store proxy while creating the custom key + store. For external key stores with `VPC_ENDPOINT_SERVICE` connectivity, + KMS connects when you call the ConnectCustomKeyStore operation. + + The value of this parameter must begin with `https://`. The remainder + can contain upper and lower case letters (A-Z and a-z), numbers (0-9), + dots (`.`), and hyphens (`-`). Additional slashes (`/` and ``) are not + permitted. + + **Uniqueness requirements:** + + - The combined `XksProxyUriEndpoint` and `XksProxyUriPath` values must + be unique in the Amazon Web Services account and Region. + + - An external key store with `PUBLIC_ENDPOINT` connectivity cannot use + the same `XksProxyUriEndpoint` value as an external key store with + `VPC_ENDPOINT_SERVICE` connectivity in this Amazon Web Services + Region. + + - Each external key store with `VPC_ENDPOINT_SERVICE` connectivity must + have its own private DNS name. The `XksProxyUriEndpoint` value for + external key stores with `VPC_ENDPOINT_SERVICE` connectivity (private + DNS name) must be unique in the Amazon Web Services account and + Region. + """ + xks_proxy_uri_path: str | None = ... + """ + Specifies the base path to the proxy APIs for this external key store. + To find this value, see the documentation for your external key store + proxy. This parameter is required for all custom key stores with a + `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + The value must start with `/` and must end with `/kms/xks/v1` where `v1` + represents the version of the KMS external key store proxy API. This + path can include an optional prefix between the required elements such + as `/`*`prefix`*`/kms/xks/v1`. + + **Uniqueness requirements:** + + - The combined `XksProxyUriEndpoint` and `XksProxyUriPath` values must + be unique in the Amazon Web Services account and Region. + """ + xks_proxy_vpc_endpoint_service_name: str | None = ... + """ + Specifies the name of the Amazon VPC endpoint service for interface + endpoints that is used to communicate with your external key store proxy + (XKS proxy). This parameter is required when the value of + `CustomKeyStoreType` is `EXTERNAL_KEY_STORE` and the value of + `XksProxyConnectivity` is `VPC_ENDPOINT_SERVICE`. + + The Amazon VPC endpoint service must [fulfill all + requirements](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements) + for use with an external key store. + + **Uniqueness requirements:** + + - External key stores with `VPC_ENDPOINT_SERVICE` connectivity can share + an Amazon VPC, but each external key store must have its own VPC + endpoint service and private DNS name. + """ + xks_proxy_vpc_endpoint_service_owner: str | None = ... + """ + Specifies the Amazon Web Services account ID that owns the Amazon VPC + service endpoint for the interface that is used to communicate with your + external key store proxy (XKS proxy). This parameter is optional. If not + provided, the Amazon Web Services account ID calling the action will be + used. + """ + xks_proxy_authentication_credential: ( + XksProxyAuthenticationCredentialType | None + ) = ... + """ + Specifies an authentication credential for the external key store proxy + (XKS proxy). This parameter is required for all custom key stores with a + `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + The `XksProxyAuthenticationCredential` has two required elements: + `RawSecretAccessKey`, a secret key, and `AccessKeyId`, a unique + identifier for the `RawSecretAccessKey`. For character requirements, see + [XksProxyAuthenticationCredentialType](API_XksProxyAuthenticationCredentialType.html). + + KMS uses this authentication credential to sign requests to the external + key store proxy on your behalf. This credential is unrelated to Identity + and Access Management (IAM) and Amazon Web Services credentials. + + This parameter doesn't set or change the authentication credentials on + the XKS proxy. It just tells KMS the credential that you established on + your external key store proxy. If you rotate your proxy authentication + credential, use the UpdateCustomKeyStore operation to provide the new + credential to KMS. + """ + xks_proxy_connectivity: str | None = ... + """ + Indicates how KMS communicates with the external key store proxy. This + parameter is required for custom key stores with a `CustomKeyStoreType` + of `EXTERNAL_KEY_STORE`. + + If the external key store proxy uses a public endpoint, specify + `PUBLIC_ENDPOINT`. If the external key store proxy uses a Amazon VPC + endpoint service for communication with KMS, specify + `VPC_ENDPOINT_SERVICE`. For help making this choice, see [Choosing a + connectivity + option](https://docs.aws.amazon.com/kms/latest/developerguide/choose-xks-connectivity.html) + in the *Key Management Service Developer Guide*. + + An Amazon VPC endpoint service keeps your communication with KMS in a + private address space entirely within Amazon Web Services, but it + requires more configuration, including establishing a Amazon VPC with + multiple subnets, a VPC endpoint service, a network load balancer, and a + verified private DNS name. A public endpoint is simpler to set up, but + it might be slower and might not fulfill your security requirements. You + might consider testing with a public endpoint, and then establishing a + VPC endpoint service for production tasks. Note that this choice does + not determine the location of the external key store proxy. Even if you + choose a VPC endpoint service, the proxy can be hosted within the VPC or + outside of Amazon Web Services such as in your corporate data center. + """ + +@dataclass(kw_only=True) +class CreateCustomKeyStoreOutput(_SerdeShape): + """Dataclass for CreateCustomKeyStoreOutput structure.""" + + custom_key_store_id: str | None = ... + """A unique identifier for the new custom key store.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateGrantInput(_SerdeShape): + """Dataclass for CreateGrantInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key for the grant. The grant gives principals + permission to use this KMS key. + + Specify the key ID or key ARN of the KMS key. To specify a KMS key in a + different Amazon Web Services account, you must use the key ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + grantee_principal: str | None = ... + """ + The identity that gets the permissions specified in the grant. + + To specify the grantee principal, use the Amazon Resource Name (ARN) of + an Amazon Web Services principal. Valid principals include Amazon Web + Services accounts, IAM users, IAM roles, federated users, and assumed + role users. For help with the ARN syntax for a principal, see [IAM + ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) + in the Identity and Access Management User Guide . + + You must specify either `GranteePrincipal` or `GranteeServicePrincipal`, + but not both. + """ + retiring_principal: str | None = ... + """ + The principal that has permission to use the RetireGrant operation to + retire the grant. + + To specify the principal, use the [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of an Amazon Web Services principal. Valid principals include Amazon Web + Services accounts, IAM users, IAM roles, federated users, and assumed + role users. For help with the ARN syntax for a principal, see [IAM + ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) + in the Identity and Access Management User Guide . + + The grant determines the retiring principal. Other principals might have + permission to retire the grant or revoke the grant. For details, see + RevokeGrant and [Retiring and revoking + grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-delete.html) + in the *Key Management Service Developer Guide*. + + You can specify either `RetiringPrincipal` or + `RetiringServicePrincipal`, but not both. + """ + operations: list[str] | None = ... + """ + A list of operations that the grant permits. + + This list must include only operations that are permitted in a grant. + Also, the operation must be supported on the KMS key. For example, you + cannot create a grant for a symmetric encryption KMS key that allows the + Sign operation, or a grant for an asymmetric KMS key that allows the + GenerateDataKey operation. If you try, KMS returns a `ValidationError` + exception. For details, see [Grant + operations](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) + in the *Key Management Service Developer Guide*. + """ + constraints: GrantConstraints | None = ... + """ + Specifies a grant constraint. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + KMS supports the following grant constraints. + + - `EncryptionContextEquals` and `EncryptionContextSubset` --- These + encryption context grant constraints allow the permissions in the + grant only when the encryption context in the request matches + (`EncryptionContextEquals`) or includes (`EncryptionContextSubset`) + the encryption context specified in the constraint. + + Encryption context grant constraints are supported only on [grant + operations](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) + that include an `EncryptionContext` parameter, such as cryptographic + operations on symmetric encryption KMS keys. You cannot use an + encryption context grant constraint for cryptographic operations with + asymmetric KMS keys or HMAC KMS keys. Operations with these keys + don't support an encryption context. Grants with encryption context + grant constraints can include the DescribeKey and RetireGrant + operations, but the constraint doesn't apply to these operations. If + a grant with an encryption context grant constraint includes the + `CreateGrant` operation, the constraint requires that any grants + created with the `CreateGrant` permission have an equally strict or + stricter encryption context constraint. + + Each constraint value can include up to 8 encryption context pairs. + The encryption context value in each constraint cannot exceed 384 + characters. For more information about encryption context, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the Key Management Service Developer Guide . + + - `SourceArn` --- This grant constraint allows the permissions in the + grant only when the request is made on behalf of a specific Amazon Web + Services resource, identified by its [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + This is effectively the same as having the + [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) + global condition key in the grant. The SourceArn constraint is + supported on grants for all types of KMS keys and can also be applied + to the DescribeKey operation when specified in the request. However, + it does not apply to RetireGrant operation. + + For information about grant constraints, see [Using grant + constraints](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) + in the *Key Management Service Developer Guide*. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + name: str | None = ... + """ + A friendly name for the grant. Use this value to prevent the unintended + creation of duplicate grants when retrying this request. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + When this value is absent, all `CreateGrant` requests result in a new + grant with a unique `GrantId` even if all the supplied parameters are + identical. This can result in unintended duplicates when you retry the + `CreateGrant` request. + + When this value is present, you can retry a `CreateGrant` request with + identical parameters; if the grant already exists, the original + `GrantId` is returned without creating a new grant. Note that the + returned grant token is unique with every `CreateGrant` request, even + when a duplicate `GrantId` is returned. All grant tokens for the same + grant ID can be used interchangeably. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + grantee_service_principal: str | None = ... + """ + The Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) + that gets the permissions specified in the grant. + + When you specify a `GranteeServicePrincipal`, you must also specify a + `SourceArn` grant constraint. In addition, you must specify either a + `RetiringPrincipal` or a `RetiringServicePrincipal`. + + You must specify either `GranteePrincipal` or `GranteeServicePrincipal`, + but not both. + """ + retiring_service_principal: str | None = ... + """ + The Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) + that has permission to use the RetireGrant operation to retire the + grant. + + You can specify either `RetiringPrincipal` or + `RetiringServicePrincipal`, but not both. + """ + +@dataclass(kw_only=True) +class CreateGrantOutput(_SerdeShape): + """Dataclass for CreateGrantOutput structure.""" + + grant_token: str | None = ... + """ + The grant token. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + grant_id: str | None = ... + """ + The unique identifier for the grant. + + You can use the `GrantId` in a ListGrants, RetireGrant, or RevokeGrant + operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateKeyInput(_SerdeShape): + """Dataclass for CreateKeyInput structure.""" + + policy: str | None = ... + """ + The key policy to attach to the KMS key. + + If you provide a key policy, it must meet the following criteria: + + - The key policy must allow the calling principal to make a subsequent + `PutKeyPolicy` request on the KMS key. This reduces the risk that the + KMS key becomes unmanageable. For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. (To omit this + condition, set `BypassPolicyLockoutSafetyCheck` to true.) + + - Each statement in the key policy must contain one or more principals. + The principals in the key policy must exist and be visible to KMS. + When you create a new Amazon Web Services principal, you might need to + enforce a delay before including the new principal in a key policy + because the new principal might not be immediately visible to KMS. For + more information, see [Changes that I make are not always immediately + visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) + in the *Amazon Web Services Identity and Access Management User + Guide*. + + Note: + If either of the required `Resource` or `Action` elements are missing + from a key policy statement, the policy statement has no effect. When a + key policy statement is missing one of these elements, the KMS console + correctly reports an error, but the `CreateKey` and `PutKeyPolicy` API + requests succeed, even though the policy statement is ineffective. + + For more information on required key policy elements, see [Elements in a + key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements) + in the *Key Management Service Developer Guide*. + + If you do not provide a key policy, KMS attaches a default key policy to + the KMS key. For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) + in the *Key Management Service Developer Guide*. + + Note: + If the key policy exceeds the length constraint, KMS returns a + `LimitExceededException`. + + For help writing and formatting a JSON policy document, see the [IAM + JSON Policy + Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) + in the Identity and Access Management User Guide . + """ + description: str | None = ... + """ + A description of the KMS key. Use a description that helps you decide + whether the KMS key is appropriate for a task. The default value is an + empty string (no description). + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + To set or change the description after the key is created, use + UpdateKeyDescription. + """ + key_usage: str | None = ... + """ + Determines the [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + for which you can use the KMS key. The default value is + `ENCRYPT_DECRYPT`. This parameter is optional when you are creating a + symmetric encryption KMS key; otherwise, it is required. You can't + change the + [`KeyUsage`](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#key-usage) + value after the KMS key is created. Each KMS key can have only one key + usage. This follows key usage best practices according to [NIST SP + 800-57 Recommendations for Key + Management](https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final), section + 5.2, Key usage. + + Select only one valid value. + + - For symmetric encryption KMS keys, omit the parameter or specify + `ENCRYPT_DECRYPT`. + + - For HMAC KMS keys (symmetric), specify `GENERATE_VERIFY_MAC`. + + - For asymmetric KMS keys with RSA key pairs, specify `ENCRYPT_DECRYPT` + or `SIGN_VERIFY`. + + - For asymmetric KMS keys with NIST-standard elliptic curve key pairs, + specify `SIGN_VERIFY` or `KEY_AGREEMENT`. + + - For asymmetric KMS keys with `ECC_SECG_P256K1` key pairs, specify + `SIGN_VERIFY`. + + - For asymmetric KMS keys with ML-DSA key pairs, specify `SIGN_VERIFY`. + + - For asymmetric KMS keys with ML-KEM key pairs, specify + `ENCAPSULATE_DECAPSULATE`. + + - For asymmetric KMS keys with SM2 key pairs (China Regions only), + specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`. + """ + customer_master_key_spec: str | None = ... + """ + Instead, use the `KeySpec` parameter. + + The `KeySpec` and `CustomerMasterKeySpec` parameters work the same way. + Only the names differ. We recommend that you use `KeySpec` parameter in + your code. However, to avoid breaking changes, KMS supports both + parameters. + """ + key_spec: str | None = ... + """ + Specifies the type of KMS key to create. The default value, + `SYMMETRIC_DEFAULT`, creates a KMS key with a 256-bit AES-GCM key that + is used for encryption and decryption, except in China Regions, where it + creates a 128-bit symmetric key that uses SM4 encryption. For a detailed + description of all supported key specs, see [Key spec + reference](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html) + in the Key Management Service Developer Guide . + + The `KeySpec` determines whether the KMS key contains a symmetric key or + an asymmetric key pair. It also determines the algorithms that the KMS + key supports. You can't change the `KeySpec` after the KMS key is + created. To further restrict the algorithms that can be used with the + KMS key, use a condition key in its key policy or IAM policy. For more + information, see + [kms:EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-algorithm), + [kms:MacAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-mac-algorithm), + [kms:KeyAgreementAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-key-agreement-algorithm), + or + [kms:SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-signing-algorithm) + in the Key Management Service Developer Guide . + + Warning: + [Amazon Web Services services that are integrated with + KMS](http://aws.amazon.com/kms/features/#AWS_Service_Integration) use + symmetric encryption KMS keys to protect your data. These services do + not support asymmetric KMS keys or HMAC KMS keys. + + KMS supports the following key specs for KMS keys: + + - Symmetric encryption key (default) + + - `SYMMETRIC_DEFAULT` + + - HMAC keys (symmetric) + + - `HMAC_224` + + - `HMAC_256` + + - `HMAC_384` + + - `HMAC_512` + + - Asymmetric RSA key pairs (encryption and decryption -or- signing and + verification) + + - `RSA_2048` + + - `RSA_3072` + + - `RSA_4096` + + - Asymmetric NIST-standard elliptic curve key pairs (signing and + verification -or- deriving shared secrets) + + - `ECC_NIST_P256` (secp256r1) + + - `ECC_NIST_P384` (secp384r1) + + - `ECC_NIST_P521` (secp521r1) + + - `ECC_NIST_EDWARDS25519` (ed25519) - signing and verification only + + - **Note:** For ECC_NIST_EDWARDS25519 KMS keys, the ED25519_SHA_512 + signing algorithm requires + [`MessageType:RAW`](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType) + , while ED25519_PH_SHA_512 requires + [`MessageType:DIGEST`](kms/latest/APIReference/API_Sign.html#KMS-Sign-request-MessageType) + . These message types cannot be used interchangeably. + + - Other asymmetric elliptic curve key pairs (signing and verification) + + - `ECC_SECG_P256K1` (secp256k1), commonly used for cryptocurrencies. + + - Asymmetric ML-DSA key pairs (signing and verification) + + - `ML_DSA_44` + + - `ML_DSA_65` + + - `ML_DSA_87` + + - Asymmetric ML-KEM key pairs (establishing shared secrets) + + - `ML_KEM_512` + + - `ML_KEM_768` + + - `ML_KEM_1024` + + The ML-KEM key specs are not available in China Regions. + + - SM2 key pairs (encryption and decryption -or- signing and verification + -or- deriving shared secrets) + + - `SM2` (China Regions only) + """ + origin: str | None = ... + """ + The source of the key material for the KMS key. You cannot change the + origin after you create the KMS key. The default is `AWS_KMS`, which + means that KMS creates the key material. + + To [create a KMS key with no key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html) + (for imported key material), set this value to `EXTERNAL`. For more + information about importing key material into KMS, see [Importing Key + Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) + in the *Key Management Service Developer Guide*. The `EXTERNAL` origin + value is valid only for symmetric KMS keys. + + To [create a KMS key in an CloudHSM key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html) + and create its key material in the associated CloudHSM cluster, set this + value to `AWS_CLOUDHSM`. You must also use the `CustomKeyStoreId` + parameter to identify the CloudHSM key store. The `KeySpec` value must + be `SYMMETRIC_DEFAULT`. + + To [create a KMS key in an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html), + set this value to `EXTERNAL_KEY_STORE`. You must also use the + `CustomKeyStoreId` parameter to identify the external key store and the + `XksKeyId` parameter to identify the associated external key. The + `KeySpec` value must be `SYMMETRIC_DEFAULT`. + """ + custom_key_store_id: str | None = ... + """ + Creates the KMS key in the specified [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + The `ConnectionState` of the custom key store must be `CONNECTED`. To + find the CustomKeyStoreID and ConnectionState use the + DescribeCustomKeyStores operation. + + This parameter is valid only for symmetric encryption KMS keys in a + single Region. You cannot create any other type of KMS key in a custom + key store. + + When you create a KMS key in an CloudHSM key store, KMS generates a + non-exportable 256-bit symmetric key in its associated CloudHSM cluster + and associates it with the KMS key. When you create a KMS key in an + external key store, you must use the `XksKeyId` parameter to specify an + external key that serves as key material for the KMS key. + """ + bypass_policy_lockout_safety_check: bool = ... + """ + Skips (\"bypasses\") the key policy lockout safety check. The default + value is false. + + Warning: + Setting this value to true increases the risk that the KMS key becomes + unmanageable. Do not set this value to true indiscriminately. + + For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. + + Use this parameter only when you intend to prevent the principal that is + making the request from making a subsequent + [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + request on the KMS key. + """ + tags: list[Tag] | None = ... + """ + Assigns one or more tags to the KMS key. Use this parameter to tag the + KMS key when it is created. To tag an existing KMS key, use the + TagResource operation. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + To use this parameter, you must have + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission in an IAM policy. + + Each tag consists of a tag key and a tag value. Both the tag key and the + tag value are required, but the tag value can be an empty (null) string. + You cannot have more than one tag on a KMS key with the same tag key. If + you specify an existing tag key with a different tag value, KMS replaces + the current tag value with the specified one. + + When you add tags to an Amazon Web Services resource, Amazon Web + Services generates a cost allocation report with usage and costs + aggregated by tags. Tags can also be used to control access to a KMS + key. For details, see [Tags in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + """ + multi_region: bool | None = ... + """ + Creates a multi-Region primary key that you can replicate into other + Amazon Web Services Regions. You cannot change this value after you + create the KMS key. + + For a multi-Region key, set this parameter to `True`. For a + single-Region KMS key, omit this parameter or set it to `False`. The + default value is `False`. + + This operation supports *multi-Region keys*, an KMS feature that lets + you create multiple interoperable KMS keys in different Amazon Web + Services Regions. Because these KMS keys have the same key ID, key + material, and other metadata, you can use them interchangeably to + encrypt data in one Amazon Web Services Region and decrypt it in a + different Amazon Web Services Region without re-encrypting the data or + making a cross-Region call. For more information about multi-Region + keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + + This value creates a *primary key*, not a replica. To create a *replica + key*, use the ReplicateKey operation. + + You can create a symmetric or asymmetric multi-Region key, and you can + create a multi-Region key with imported key material. However, you + cannot create a multi-Region key in a custom key store. + """ + xks_key_id: str | None = ... + """ + Identifies the [external + key](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key) + that serves as key material for the KMS key in an [external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html). + Specify the ID that the [external key store + proxy](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-xks-proxy) + uses to refer to the external key. For help, see the documentation for + your external key store proxy. + + This parameter is required for a KMS key with an `Origin` value of + `EXTERNAL_KEY_STORE`. It is not valid for KMS keys with any other + `Origin` value. + + The external key must be an existing 256-bit AES symmetric encryption + key hosted outside of Amazon Web Services in an external key manager + associated with the external key store specified by the + `CustomKeyStoreId` parameter. This key must be enabled and configured to + perform encryption and decryption. Each KMS key in an external key store + must use a different external key. For details, see [Requirements for a + KMS key in an external key + store](https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html#xks-key-requirements) + in the *Key Management Service Developer Guide*. + + Each KMS key in an external key store is associated two backing keys. + One is key material that KMS generates. The other is the external key + specified by this parameter. When you use the KMS key in an external key + store to encrypt data, the encryption operation is performed first by + KMS using the KMS key material, and then by the external key manager + using the specified external key, a process known as *double + encryption*. For details, see [Double + encryption](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-double-encryption) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class CreateKeyOutput(_SerdeShape): + """Dataclass for CreateKeyOutput structure.""" + + key_metadata: KeyMetadata | None = ... + """Metadata associated with the KMS key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CustomerMasterKeySpec(UnknownEnumMixin, StrEnum): + RSA_2048 = "RSA_2048" + RSA_3072 = "RSA_3072" + RSA_4096 = "RSA_4096" + ECC_NIST_P256 = "ECC_NIST_P256" + ECC_NIST_P384 = "ECC_NIST_P384" + ECC_NIST_P521 = "ECC_NIST_P521" + ECC_SECG_P256_K1 = "ECC_SECG_P256K1" + SYMMETRIC_DEFAULT = "SYMMETRIC_DEFAULT" + HMAC_224 = "HMAC_224" + HMAC_256 = "HMAC_256" + HMAC_384 = "HMAC_384" + HMAC_512 = "HMAC_512" + SM2 = "SM2" + +@dataclass(kw_only=True) +class CustomKeyStoreHasCMKsException(ServiceError, _SerdeShape): + """ + The request was rejected because the custom key store contains KMS keys. + After verifying that you do not need to use the KMS keys, use the + ScheduleKeyDeletion operation to delete the KMS keys. After they are + deleted, you can delete the custom key store. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomKeyStoreInvalidStateException(ServiceError, _SerdeShape): + """ + The request was rejected because of the `ConnectionState` of the custom + key store. To get the `ConnectionState` of a custom key store, use the + DescribeCustomKeyStores operation. + + This exception is thrown under the following conditions: + + - You requested the ConnectCustomKeyStore operation on a custom key + store with a `ConnectionState` of `DISCONNECTING` or `FAILED`. This + operation is valid for all other `ConnectionState` values. To + reconnect a custom key store in a `FAILED` state, disconnect it + (DisconnectCustomKeyStore), then connect it (`ConnectCustomKeyStore`). + + - You requested the CreateKey operation in a custom key store that is + not connected. This operations is valid only when the custom key store + `ConnectionState` is `CONNECTED`. + + - You requested the DisconnectCustomKeyStore operation on a custom key + store with a `ConnectionState` of `DISCONNECTING` or `DISCONNECTED`. + This operation is valid for all other `ConnectionState` values. + + - You requested the UpdateCustomKeyStore or DeleteCustomKeyStore + operation on a custom key store that is not disconnected. + `UpdateCustomKeyStore` can be called on a custom key store in the + `CONNECTED` state only to update `NewCustomKeyStoreName`. For all + other properties, the custom key store `ConnectionState` must be + `DISCONNECTED`. + + - You requested the GenerateRandom operation in an CloudHSM key store + that is not connected. This operation is valid only when the CloudHSM + key store `ConnectionState` is `CONNECTED`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomKeyStoreNameInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified custom key store name is + already assigned to another custom key store in the account. Try again + with a custom key store name that is unique in the account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomKeyStoreNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because KMS cannot find a custom key store with + the specified key store name or ID. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomKeyStoresListEntry(_SerdeShape): + """ + Contains information about each custom key store in the custom key store + list. + """ + + custom_key_store_id: str | None = ... + """A unique identifier for the custom key store.""" + custom_key_store_name: str | None = ... + """The user-specified friendly name for the custom key store.""" + cloud_hsm_cluster_id: str | None = ... + """ + A unique identifier for the CloudHSM cluster that is associated with an + CloudHSM key store. This field appears only when the + `CustomKeyStoreType` is `AWS_CLOUDHSM`. + """ + trust_anchor_certificate: str | None = ... + """ + The trust anchor certificate of the CloudHSM cluster associated with an + CloudHSM key store. When you [initialize the + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr), + you create this certificate and save it in the `customerCA.crt` file. + + This field appears only when the `CustomKeyStoreType` is `AWS_CLOUDHSM`. + """ + connection_state: str | None = ... + """ + Indicates whether the custom key store is connected to its backing key + store. For an CloudHSM key store, the `ConnectionState` indicates + whether it is connected to its CloudHSM cluster. For an external key + store, the `ConnectionState` indicates whether it is connected to the + external key store proxy that communicates with your external key + manager. + + You can create and use KMS keys in your custom key stores only when its + `ConnectionState` is `CONNECTED`. + + The `ConnectionState` value is `DISCONNECTED` only if the key store has + never been connected or you use the DisconnectCustomKeyStore operation + to disconnect it. If the value is `CONNECTED` but you are having trouble + using the custom key store, make sure that the backing key store is + reachable and active. For an CloudHSM key store, verify that its + associated CloudHSM cluster is active and contains at least one active + HSM. For an external key store, verify that the external key store proxy + and external key manager are connected and enabled. + + A value of `FAILED` indicates that an attempt to connect was + unsuccessful. The `ConnectionErrorCode` field in the response indicates + the cause of the failure. For help resolving a connection failure, see + [Troubleshooting a custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) + in the *Key Management Service Developer Guide*. + """ + connection_error_code: str | None = ... + """ + Describes the connection error. This field appears in the response only + when the `ConnectionState` is `FAILED`. + + Many failures can be resolved by updating the properties of the custom + key store. To update a custom key store, disconnect it + (DisconnectCustomKeyStore), correct the errors (UpdateCustomKeyStore), + and try to connect again (ConnectCustomKeyStore). For additional help + resolving these errors, see [How to Fix a Connection + Failure](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed) + in *Key Management Service Developer Guide*. + + **All custom key stores:** + + - `INTERNAL_ERROR` --- KMS could not complete the request due to an + internal error. Retry the request. For `ConnectCustomKeyStore` + requests, disconnect the custom key store before trying to connect + again. + + - `NETWORK_ERRORS` --- Network errors are preventing KMS from connecting + the custom key store to its backing key store. + + **CloudHSM key stores:** + + - `CLUSTER_NOT_FOUND` --- KMS cannot find the CloudHSM cluster with the + specified cluster ID. + + - `INSUFFICIENT_CLOUDHSM_HSMS` --- The associated CloudHSM cluster does + not contain any active HSMs. To connect a custom key store to its + CloudHSM cluster, the cluster must contain at least one active HSM. + + - `INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET` --- At least one private + subnet associated with the CloudHSM cluster doesn't have any + available IP addresses. A CloudHSM key store connection requires one + free IP address in each of the associated private subnets, although + two are preferable. For details, see [How to Fix a Connection + Failure](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed) + in the *Key Management Service Developer Guide*. + + - `INVALID_CREDENTIALS` --- The `KeyStorePassword` for the custom key + store doesn't match the current password of the `kmsuser` crypto user + in the CloudHSM cluster. Before you can connect your custom key store + to its CloudHSM cluster, you must change the `kmsuser` account + password and update the `KeyStorePassword` value for the custom key + store. + + - `SUBNET_NOT_FOUND` --- A subnet in the CloudHSM cluster configuration + was deleted. If KMS cannot find all of the subnets in the cluster + configuration, attempts to connect the custom key store to the + CloudHSM cluster fail. To fix this error, create a cluster from a + recent backup and associate it with your custom key store. (This + process creates a new cluster configuration with a VPC and private + subnets.) For details, see [How to Fix a Connection + Failure](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed) + in the *Key Management Service Developer Guide*. + + - `USER_LOCKED_OUT` --- The `kmsuser` CU account is locked out of the + associated CloudHSM cluster due to too many failed password attempts. + Before you can connect your custom key store to its CloudHSM cluster, + you must change the `kmsuser` account password and update the key + store password value for the custom key store. + + - `USER_LOGGED_IN` --- The `kmsuser` CU account is logged into the + associated CloudHSM cluster. This prevents KMS from rotating the + `kmsuser` account password and logging into the cluster. Before you + can connect your custom key store to its CloudHSM cluster, you must + log the `kmsuser` CU out of the cluster. If you changed the `kmsuser` + password to log into the cluster, you must also and update the key + store password value for the custom key store. For help, see [How to + Log Out and + Reconnect](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2) + in the *Key Management Service Developer Guide*. + + - `USER_NOT_FOUND` --- KMS cannot find a `kmsuser` CU account in the + associated CloudHSM cluster. Before you can connect your custom key + store to its CloudHSM cluster, you must create a `kmsuser` CU account + in the cluster, and then update the key store password value for the + custom key store. + + **External key stores:** + + - `INVALID_CREDENTIALS` --- One or both of the + `XksProxyAuthenticationCredential` values is not valid on the + specified external key store proxy. + + - `XKS_PROXY_ACCESS_DENIED` --- KMS requests are denied access to the + external key store proxy. If the external key store proxy has + authorization rules, verify that they permit KMS to communicate with + the proxy on your behalf. + + - `XKS_PROXY_INVALID_CONFIGURATION` --- A configuration error is + preventing the external key store from connecting to its proxy. Verify + the value of the `XksProxyUriPath`. + + - `XKS_PROXY_INVALID_RESPONSE` --- KMS cannot interpret the response + from the external key store proxy. If you see this connection error + code repeatedly, notify your external key store proxy vendor. + + - `XKS_PROXY_INVALID_TLS_CONFIGURATION` --- KMS cannot connect to the + external key store proxy because the TLS configuration is invalid. + Verify that the XKS proxy supports TLS 1.2 or 1.3. Also, verify that + the TLS certificate is not expired, and that it matches the hostname + in the `XksProxyUriEndpoint` value, and that it is signed by a + certificate authority included in the [Trusted Certificate + Authorities](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities) + list. + + - `XKS_PROXY_NOT_REACHABLE` --- KMS can't communicate with your + external key store proxy. Verify that the `XksProxyUriEndpoint` and + `XksProxyUriPath` are correct. Use the tools for your external key + store proxy to verify that the proxy is active and available on its + network. Also, verify that your external key manager instances are + operating properly. Connection attempts fail with this connection + error code if the proxy reports that all external key manager + instances are unavailable. + + - `XKS_PROXY_TIMED_OUT` --- KMS can connect to the external key store + proxy, but the proxy does not respond to KMS in the time allotted. If + you see this connection error code repeatedly, notify your external + key store proxy vendor. + + - `XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION` --- The Amazon VPC + endpoint service configuration doesn't conform to the requirements + for an KMS external key store. + + - The VPC endpoint service must be an endpoint service for interface + endpoints in the caller's Amazon Web Services account. + + - It must have a network load balancer (NLB) connected to at least two + subnets, each in a different Availability Zone. + + - The `Allow principals` list must include the KMS service principal + for the Region, `cks.kms.```{=html}`.amazonaws.com`, such as + `cks.kms.us-east-1.amazonaws.com`. + + - It must *not* require + [acceptance](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html) + of connection requests. + + - It must have a private DNS name. The private DNS name for an + external key store with `VPC_ENDPOINT_SERVICE` connectivity must be + unique in its Amazon Web Services Region. + + - The domain of the private DNS name must have a [verification + status](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) + of `verified`. + + - The [TLS + certificate](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html) + specifies the private DNS hostname at which the endpoint is + reachable. + + - `XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND` --- KMS can't find the VPC + endpoint service that it uses to communicate with the external key + store proxy. Verify that the `XksProxyVpcEndpointServiceName` is + correct and the KMS service principal has service consumer permissions + on the Amazon VPC endpoint service. + """ + creation_date: datetime | None = ... + """The date and time when the custom key store was created.""" + custom_key_store_type: str | None = ... + """ + Indicates the type of the custom key store. `AWS_CLOUDHSM` indicates a + custom key store backed by an CloudHSM cluster. `EXTERNAL_KEY_STORE` + indicates a custom key store backed by an external key store proxy and + external key manager outside of Amazon Web Services. + """ + xks_proxy_configuration: XksProxyConfigurationType | None = ... + """ + Configuration settings for the external key store proxy (XKS proxy). The + external key store proxy translates KMS requests into a format that your + external key manager can understand. The proxy configuration includes + connection information that KMS requires. + + This field appears only when the `CustomKeyStoreType` is + `EXTERNAL_KEY_STORE`. + """ + +class CustomKeyStoreType(UnknownEnumMixin, StrEnum): + AWS_CLOUDHSM = "AWS_CLOUDHSM" + EXTERNAL_KEY_STORE = "EXTERNAL_KEY_STORE" + +class DataKeyPairSpec(UnknownEnumMixin, StrEnum): + RSA_2048 = "RSA_2048" + RSA_3072 = "RSA_3072" + RSA_4096 = "RSA_4096" + ECC_NIST_P256 = "ECC_NIST_P256" + ECC_NIST_P384 = "ECC_NIST_P384" + ECC_NIST_P521 = "ECC_NIST_P521" + ECC_SECG_P256_K1 = "ECC_SECG_P256K1" + SM2 = "SM2" + ECC_NIST_EDWARDS25519 = "ECC_NIST_EDWARDS25519" + ML_KEM_512 = "ML_KEM_512" + ML_KEM_768 = "ML_KEM_768" + ML_KEM_1024 = "ML_KEM_1024" + +class DataKeySpec(UnknownEnumMixin, StrEnum): + AES_256 = "AES_256" + AES_128 = "AES_128" + +@dataclass(kw_only=True) +class DecapsulateInput(_SerdeShape): + """Dataclass for DecapsulateInput structure.""" + + key_id: str | None = ... + """ + Identifies the asymmetric ML-KEM KMS key whose public key was used to + produce the encapsulated shared secret. KMS uses the private key in the + specified key pair to decapsulate the shared secret. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + shared_secret_ciphertext_blob: bytes | None = ... + """ + The encapsulated (ciphertext) form of the shared secret to recover. This + is the `SharedSecretCiphertextBlob` value that the Encapsulate operation + returns. When you use the HTTP API or the Amazon Web Services CLI, the + value is Base64-encoded. Otherwise, it is not Base64-encoded. + """ + encapsulation_algorithm: str | None = ... + """ + Specifies the key encapsulation algorithm used to recover the shared + secret. The only valid value is `ML_KEM`. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class DecapsulateOutput(_SerdeShape): + """Dataclass for DecapsulateOutput structure.""" + + key_id: str | None = ... + """ + The identifier of the ML-KEM KMS key used to decapsulate the shared + secret. + """ + shared_secret: bytes | None = ... + """ + The plaintext shared secret recovered from the encapsulated form. It is + a 32-byte value that matches the shared secret held by the encapsulating + party. When you use the HTTP API or the Amazon Web Services CLI, the + value is Base64-encoded. Otherwise, it is not Base64-encoded. + """ + encapsulation_algorithm: str | None = ... + """The key encapsulation algorithm used to recover the shared secret.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DecryptInput(_SerdeShape): + """Dataclass for DecryptInput structure.""" + + ciphertext_blob: bytes | None = ... + """ + Ciphertext to be decrypted. The blob includes metadata. + + This parameter is required in all cases except when `DryRun` is `true` + and `DryRunModifiers` is set to `IGNORE_CIPHERTEXT`. + """ + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context to use when decrypting the data. An + encryption context is valid only for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + with a symmetric encryption KMS key. The standard asymmetric encryption + algorithms and HMAC algorithms that KMS uses do not support an + encryption context. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + key_id: str | None = ... + """ + Specifies the KMS key that KMS uses to decrypt the ciphertext. + + Enter a key ID of the KMS key that was used to encrypt the ciphertext. + If you identify a different KMS key, the `Decrypt` operation throws an + `IncorrectKeyException`. + + This parameter is required only when the ciphertext was encrypted under + an asymmetric KMS key or when `DryRun` is `true` and `DryRunModifiers` + is set to `IGNORE_CIPHERTEXT`. If you used a symmetric encryption KMS + key, KMS can get the KMS key from metadata that it adds to the symmetric + ciphertext blob. However, it is always recommended as a best practice. + This practice ensures that you use the KMS key that you intend. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you should use the key + ARN or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + encryption_algorithm: str | None = ... + """ + Specifies the encryption algorithm that will be used to decrypt the + ciphertext. Specify the same algorithm that was used to encrypt the + data. If you specify a different algorithm, the `Decrypt` operation + fails. + + This parameter is required only when the ciphertext was encrypted under + an asymmetric KMS key. The default value, `SYMMETRIC_DEFAULT`, + represents the only supported algorithm that is valid for symmetric + encryption KMS keys. + """ + recipient: RecipientInfo | None = ... + """ + A signed [attestation + document](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-attestdoc) + from an Amazon Web Services Nitro enclave or NitroTPM, and the + encryption algorithm to use with the public key in the attestation + document. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`. + + This parameter supports the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK for Amazon Web Services Nitro Enclaves. + It supports any Amazon Web Services SDK for Amazon Web Services + NitroTPM. + + When you use this parameter, instead of returning the plaintext data, + KMS encrypts the plaintext data with the public key in the attestation + document, and returns the resulting ciphertext in the + `CiphertextForRecipient` field in the response. This ciphertext can be + decrypted only with the private key in the attested environment. The + `Plaintext` field in the response is null or empty. + + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + dry_run_modifiers: list[str] | None = ... + """ + Specifies the modifiers to apply to the dry run operation. + `DryRunModifiers` is an optional parameter that only applies when + `DryRun` is set to `true`. + + When set to `IGNORE_CIPHERTEXT`, KMS performs only authorization + validation without ciphertext validation. This allows you to test + permissions without requiring a valid ciphertext blob. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class DecryptOutput(_SerdeShape): + """Dataclass for DecryptOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that was used to decrypt the ciphertext. + """ + plaintext: bytes | None = ... + """ + Decrypted plaintext data. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + + If the response includes the `CiphertextForRecipient` field, the + `Plaintext` field is null or empty. + """ + encryption_algorithm: str | None = ... + """The encryption algorithm that was used to decrypt the ciphertext.""" + ciphertext_for_recipient: bytes | None = ... + """ + The plaintext data encrypted with the public key from the attestation + document. This ciphertext can be decrypted only by using a private key + from the attested environment. + + This field is included in the response only when the `Recipient` + parameter in the request includes a valid attestation document from an + Amazon Web Services Nitro enclave or NitroTPM. For information about the + interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon + Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + key_material_id: str | None = ... + """ + The identifier of the key material used to decrypt the ciphertext. This + field is present only when the operation uses a symmetric encryption KMS + key. This field is omitted if the request includes the `Recipient` + parameter. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteAliasInput(_SerdeShape): + """Dataclass for DeleteAliasInput structure.""" + + alias_name: str | None = ... + """ + The alias to be deleted. The alias name must begin with `alias/` + followed by the alias name, such as `alias/ExampleAlias`. + """ + +@dataclass(kw_only=True) +class DeleteAliasOutput(_SerdeShape): + """Dataclass for DeleteAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCustomKeyStoreInput(_SerdeShape): + """Dataclass for DeleteCustomKeyStoreInput structure.""" + + custom_key_store_id: str | None = ... + """ + Enter the ID of the custom key store you want to delete. To find the ID + of a custom key store, use the DescribeCustomKeyStores operation. + """ + +@dataclass(kw_only=True) +class DeleteCustomKeyStoreOutput(_SerdeShape): + """Dataclass for DeleteCustomKeyStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteImportedKeyMaterialInput(_SerdeShape): + """Dataclass for DeleteImportedKeyMaterialInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key from which you are deleting imported key + material. The `Origin` of the KMS key must be `EXTERNAL`. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + key_material_id: str | None = ... + """ + Identifies the imported key material you are deleting. + + Warning: + If no KeyMaterialId is specified, KMS deletes the current key material. + + To get the list of key material IDs associated with a KMS key, use + ListKeyRotations. + """ + +@dataclass(kw_only=True) +class DeleteImportedKeyMaterialOutput(_SerdeShape): + """Dataclass for DeleteImportedKeyMaterialOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key from which the key material was deleted. + """ + key_material_id: str | None = ... + """Identifies the deleted key material.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DependencyTimeoutException(ServiceError, _SerdeShape): + """ + The system timed out while trying to fulfill the request. You can retry + the request. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeriveSharedSecretInput(_SerdeShape): + """Dataclass for DeriveSharedSecretInput structure.""" + + key_id: str | None = ... + """ + Identifies an asymmetric NIST-standard ECC or SM2 (China Regions only) + KMS key. KMS uses the private key in the specified key pair to derive + the shared secret. The key usage of the KMS key must be `KEY_AGREEMENT`. + To find the `KeyUsage` of a KMS key, use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + key_agreement_algorithm: str | None = ... + """ + Specifies the key agreement algorithm used to derive the shared secret. + The only valid value is `ECDH`. + """ + public_key: bytes | None = ... + """ + Specifies the public key in your peer's NIST-standard elliptic curve + (ECC) or SM2 (China Regions only) key pair. + + The public key must be a DER-encoded X.509 public key, also known as + `SubjectPublicKeyInfo` (SPKI), as defined in [RFC + 5280](https://tools.ietf.org/html/rfc5280). + + GetPublicKey returns the public key of an asymmetric KMS key pair in the + required DER-encoded format. + + Note: + If you use [Amazon Web Services CLI version + 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html), + you must provide the DER-encoded X.509 public key in a file. Otherwise, + the Amazon Web Services CLI Base64-encodes the public key a second time, + resulting in a `ValidationException`. + + You can specify the public key as binary data in a file using fileb + (`fileb://```{=html}) or in-line using a Base64 encoded + string. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + recipient: RecipientInfo | None = ... + """ + A signed [attestation + document](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc) + from an Amazon Web Services Nitro enclave or NitroTPM, and the + encryption algorithm to use with the public key in the attestation + document. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`. + + This parameter only supports attestation documents for Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM. To call + DeriveSharedSecret generate an attestation document use either [Amazon + Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + for an Amazon Web Services Nitro Enclaves or [Amazon Web Services + NitroTPM + tools](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html) + for Amazon Web Services NitroTPM. Then use the Recipient parameter from + any Amazon Web Services SDK to provide the attestation document for the + attested environment. + + When you use this parameter, instead of returning a plaintext copy of + the shared secret, KMS encrypts the plaintext shared secret under the + public key in the attestation document, and returns the resulting + ciphertext in the `CiphertextForRecipient` field in the response. This + ciphertext can be decrypted only with the private key in the attested + environment. The `CiphertextBlob` field in the response contains the + encrypted shared secret derived from the KMS key specified by the + `KeyId` parameter and public key specified by the `PublicKey` parameter. + The `SharedSecret` field in the response is null or empty. + + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class DeriveSharedSecretOutput(_SerdeShape): + """Dataclass for DeriveSharedSecretOutput structure.""" + + key_id: str | None = ... + """Identifies the KMS key used to derive the shared secret.""" + shared_secret: bytes | None = ... + """ + The raw secret derived from the specified key agreement algorithm, + private key in the asymmetric KMS key, and your peer's public key. + + If the response includes the `CiphertextForRecipient` field, the + `SharedSecret` field is null or empty. + """ + ciphertext_for_recipient: bytes | None = ... + """ + The plaintext shared secret encrypted with the public key from the + attestation document. This ciphertext can be decrypted only by using a + private key from the attested environment. + + This field is included in the response only when the `Recipient` + parameter in the request includes a valid attestation document from an + Amazon Web Services Nitro enclave or NitroTPM. For information about the + interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon + Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + key_agreement_algorithm: str | None = ... + """Identifies the key agreement algorithm used to derive the shared secret.""" + key_origin: str | None = ... + """ + The source of the key material for the specified KMS key. + + When this value is `AWS_KMS`, KMS created the key material. When this + value is `EXTERNAL`, the key material was imported or the KMS key + doesn't have any key material. + + The only valid values for DeriveSharedSecret are `AWS_KMS` and + `EXTERNAL`. DeriveSharedSecret does not support KMS keys with a + `KeyOrigin` value of `AWS_CLOUDHSM` or `EXTERNAL_KEY_STORE`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCustomKeyStoresInput(_SerdeShape): + """Dataclass for DescribeCustomKeyStoresInput structure.""" + + custom_key_store_id: str | None = ... + """ + Gets only information about the specified custom key store. Enter the + key store ID. + + By default, this operation gets information about all custom key stores + in the account and Region. To limit the output to a particular custom + key store, provide either the `CustomKeyStoreId` or `CustomKeyStoreName` + parameter, but not both. + """ + custom_key_store_name: str | None = ... + """ + Gets only information about the specified custom key store. Enter the + friendly name of the custom key store. + + By default, this operation gets information about all custom key stores + in the account and Region. To limit the output to a particular custom + key store, provide either the `CustomKeyStoreId` or `CustomKeyStoreName` + parameter, but not both. + """ + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + +@dataclass(kw_only=True) +class DescribeCustomKeyStoresOutput(_SerdeShape): + """Dataclass for DescribeCustomKeyStoresOutput structure.""" + + custom_key_stores: list[CustomKeyStoresListEntry] | None = ... + """Contains metadata about each custom key store.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeKeyInput(_SerdeShape): + """Dataclass for DescribeKeyInput structure.""" + + key_id: str | None = ... + """ + Describes the specified KMS key. + + If you specify a predefined Amazon Web Services alias (an Amazon Web + Services alias with no key ID), KMS associates the alias with an [Amazon + Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key) + and returns its `KeyId` and `Arn` in the response. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class DescribeKeyOutput(_SerdeShape): + """Dataclass for DescribeKeyOutput structure.""" + + key_metadata: KeyMetadata | None = ... + """Metadata associated with the key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisabledException(ServiceError, _SerdeShape): + """The request was rejected because the specified KMS key is not enabled.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableKeyInput(_SerdeShape): + """Dataclass for DisableKeyInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key to disable. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class DisableKeyOutput(_SerdeShape): + """Dataclass for DisableKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableKeyRotationInput(_SerdeShape): + """Dataclass for DisableKeyRotationInput structure.""" + + key_id: str | None = ... + """ + Identifies a symmetric encryption KMS key. You cannot enable or disable + automatic rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class DisableKeyRotationOutput(_SerdeShape): + """Dataclass for DisableKeyRotationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisconnectCustomKeyStoreInput(_SerdeShape): + """Dataclass for DisconnectCustomKeyStoreInput structure.""" + + custom_key_store_id: str | None = ... + """ + Enter the ID of the custom key store you want to disconnect. To find the + ID of a custom key store, use the DescribeCustomKeyStores operation. + """ + +@dataclass(kw_only=True) +class DisconnectCustomKeyStoreOutput(_SerdeShape): + """Dataclass for DisconnectCustomKeyStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DryRunModifierType(UnknownEnumMixin, StrEnum): + IGNORE_CIPHERTEXT = "IGNORE_CIPHERTEXT" + +@dataclass(kw_only=True) +class DryRunOperationException(ServiceError, _SerdeShape): + """The request was rejected because the DryRun parameter was specified.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableKeyInput(_SerdeShape): + """Dataclass for EnableKeyInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key to enable. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class EnableKeyOutput(_SerdeShape): + """Dataclass for EnableKeyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EnableKeyRotationInput(_SerdeShape): + """Dataclass for EnableKeyRotationInput structure.""" + + key_id: str | None = ... + """ + Identifies a symmetric encryption KMS key. You cannot enable automatic + rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To enable or disable automatic rotation of a set of related + [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + set the property on the primary key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + rotation_period_in_days: int | None = ... + """ + Use this parameter to specify a custom period of time between each + rotation date. If no value is specified, the default value is 365 days. + + The rotation period defines the number of days after you enable + automatic key rotation that KMS will rotate your key material, and the + number of days between each automatic rotation thereafter. + + You can use the + [`kms:RotationPeriodInDays`](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-rotation-period-in-days) + condition key to further constrain the values that principals can + specify in the `RotationPeriodInDays` parameter. + """ + +@dataclass(kw_only=True) +class EnableKeyRotationOutput(_SerdeShape): + """Dataclass for EnableKeyRotationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EncapsulateInput(_SerdeShape): + """Dataclass for EncapsulateInput structure.""" + + key_id: str | None = ... + """ + Identifies an asymmetric ML-KEM KMS key. KMS uses the public key in the + specified key pair to encapsulate the shared secret. ML-KEM KMS keys + have a `KeySpec` value of `ML_KEM_512`, `ML_KEM_768`, or `ML_KEM_1024` + and a `KeyUsage` value of `ENCAPSULATE_DECAPSULATE`. To find the + `KeySpec` and `KeyUsage` of a KMS key, use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + encapsulation_algorithm: str | None = ... + """ + Specifies the key encapsulation algorithm used to generate the shared + secret and its encapsulated form. The only valid value is `ML_KEM`. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class EncapsulateOutput(_SerdeShape): + """Dataclass for EncapsulateOutput structure.""" + + key_id: str | None = ... + """ + The identifier of the ML-KEM KMS key used to encapsulate the shared + secret. + """ + shared_secret: bytes | None = ... + """ + The plaintext shared secret. It is a 32-byte cryptographically random + value that both parties can use directly as key material or pass through + a key derivation function to generate multiple keys and nonces. When you + use the HTTP API or the Amazon Web Services CLI, the value is + Base64-encoded. Otherwise, it is not Base64-encoded. + """ + shared_secret_ciphertext_blob: bytes | None = ... + """ + The encapsulated form of the shared secret. Pass this value to the + Decapsulate operation to recover the shared secret. When you use the + HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. + Otherwise, it is not Base64-encoded. The length of + `SharedSecretCiphertextBlob` depends on the ML-KEM key spec. Before + Base64 encoding, the encapsulated shared secret is 768 bytes for + `ML_KEM_512`, 1088 bytes for `ML_KEM_768`, and 1568 bytes for + `ML_KEM_1024`. + """ + encapsulation_algorithm: str | None = ... + """The key encapsulation algorithm used to generate the shared secret.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EncapsulationAlgorithmSpec(UnknownEnumMixin, StrEnum): + ML_KEM = "ML_KEM" + +@dataclass(kw_only=True) +class EncryptInput(_SerdeShape): + """Dataclass for EncryptInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key to use in the encryption operation. The KMS key + must have a `KeyUsage` of `ENCRYPT_DECRYPT`. To find the `KeyUsage` of a + KMS key, use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + plaintext: bytes | None = ... + """Data to be encrypted.""" + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context that will be used to encrypt the data. + An encryption context is valid only for [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + with a symmetric encryption KMS key. The standard asymmetric encryption + algorithms and HMAC algorithms that KMS uses do not support an + encryption context. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + encryption_algorithm: str | None = ... + """ + Specifies the encryption algorithm that KMS will use to encrypt the + plaintext message. The algorithm must be compatible with the KMS key + that you specify. + + This parameter is required only for asymmetric KMS keys. The default + value, `SYMMETRIC_DEFAULT`, is the algorithm used for symmetric + encryption KMS keys. If you are using an asymmetric KMS key, we + recommend RSAES_OAEP_SHA_256. + + The SM2PKE algorithm is only available in China Regions. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +class EncryptionAlgorithmSpec(UnknownEnumMixin, StrEnum): + SYMMETRIC_DEFAULT = "SYMMETRIC_DEFAULT" + RSAES_OAEP_SHA_1 = "RSAES_OAEP_SHA_1" + RSAES_OAEP_SHA_256 = "RSAES_OAEP_SHA_256" + SM2_PKE = "SM2PKE" + +@dataclass(kw_only=True) +class EncryptOutput(_SerdeShape): + """Dataclass for EncryptOutput structure.""" + + ciphertext_blob: bytes | None = ... + """ + The encrypted plaintext. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + """ + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that was used to encrypt the plaintext. + """ + encryption_algorithm: str | None = ... + """The encryption algorithm that was used to encrypt the plaintext.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ExpirationModelType(UnknownEnumMixin, StrEnum): + KEY_MATERIAL_EXPIRES = "KEY_MATERIAL_EXPIRES" + KEY_MATERIAL_DOES_NOT_EXPIRE = "KEY_MATERIAL_DOES_NOT_EXPIRE" + +@dataclass(kw_only=True) +class ExpiredImportTokenException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified import token is expired. + Use GetParametersForImport to get a new import token and public key, use + the new public key to encrypt the key material, and then try the request + again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyInput(_SerdeShape): + """Dataclass for GenerateDataKeyInput structure.""" + + key_id: str | None = ... + """ + Specifies the symmetric encryption KMS key that encrypts the data key. + You cannot specify an asymmetric KMS key or a KMS key in a custom key + store. To get the type and origin of your KMS key, use the DescribeKey + operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context that will be used when encrypting the + data key. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + number_of_bytes: int | None = ... + """ + Specifies the length of the data key in bytes. For example, use the + value 64 to generate a 512-bit data key (64 bytes is 512 bits). For + 128-bit (16-byte) and 256-bit (32-byte) data keys, use the `KeySpec` + parameter. + + You must specify either the `KeySpec` or the `NumberOfBytes` parameter + (but not both) in every `GenerateDataKey` request. + """ + key_spec: str | None = ... + """ + Specifies the length of the data key. Use `AES_128` to generate a + 128-bit symmetric key, or `AES_256` to generate a 256-bit symmetric key. + + You must specify either the `KeySpec` or the `NumberOfBytes` parameter + (but not both) in every `GenerateDataKey` request. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + recipient: RecipientInfo | None = ... + """ + A signed [attestation + document](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc) + from an Amazon Web Services Nitro enclave or NitroTPM, and the + encryption algorithm to use with the public key in the attestation + document. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`. + + This parameter supports the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK for Amazon Web Services Nitro Enclaves. + It supports any Amazon Web Services SDK for Amazon Web Services + NitroTPM. + + When you use this parameter, instead of returning the plaintext data + key, KMS encrypts the plaintext data key under the public key in the + attestation document, and returns the resulting ciphertext in the + `CiphertextForRecipient` field in the response. This ciphertext can be + decrypted only with the private key in the enclave. The `CiphertextBlob` + field in the response contains a copy of the data key encrypted under + the KMS key specified by the `KeyId` parameter. The `Plaintext` field in + the response is null or empty. + + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyOutput(_SerdeShape): + """Dataclass for GenerateDataKeyOutput structure.""" + + ciphertext_blob: bytes | None = ... + """ + The encrypted copy of the data key. When you use the HTTP API or the + Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is + not Base64-encoded. + """ + plaintext: bytes | None = ... + """ + The plaintext data key. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. Use this data key to encrypt your data outside of KMS. + Then, remove it from memory as soon as possible. + + If the response includes the `CiphertextForRecipient` field, the + `Plaintext` field is null or empty. + """ + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that encrypted the data key. + """ + ciphertext_for_recipient: bytes | None = ... + """ + The plaintext data key encrypted with the public key from the + attestation document. This ciphertext can be decrypted only by using a + private key from the attested environment. + + This field is included in the response only when the `Recipient` + parameter in the request includes a valid attestation document from an + Amazon Web Services Nitro enclave or NitroTPM. For information about the + interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon + Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + key_material_id: str | None = ... + """ + The identifier of the key material used to encrypt the data key. This + field is omitted if the request includes the `Recipient` parameter. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyPairInput(_SerdeShape): + """Dataclass for GenerateDataKeyPairInput structure.""" + + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context that will be used when encrypting the + private key in the data key pair. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + key_id: str | None = ... + """ + Specifies the symmetric encryption KMS key that encrypts the private key + in the data key pair. You cannot specify an asymmetric KMS key or a KMS + key in a custom key store. To get the type and origin of your KMS key, + use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + key_pair_spec: str | None = ... + """ + Determines the type of data key pair that is generated. + + The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys + to encrypt and decrypt or to sign and verify (but not both), the rule + that permits you to use ECC KMS keys only to sign and verify, and the + rule that permits you to use ML-DSA key pairs to sign and verify only + are not effective on data key pairs, which are used outside of KMS. The + SM2 key spec is only available in China Regions. The ML-KEM key specs + are not available in China Regions. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + recipient: RecipientInfo | None = ... + """ + A signed [attestation + document](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc) + from an Amazon Web Services Nitro enclave or NitroTPM, and the + encryption algorithm to use with the public key in the attestation + document. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`. + + This parameter only supports attestation documents for Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM. To call + GenerateDataKeyPair generate an attestation document use either [Amazon + Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + for an Amazon Web Services Nitro Enclaves or [Amazon Web Services + NitroTPM + tools](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attestation-get-doc.html) + for Amazon Web Services NitroTPM. Then use the Recipient parameter from + any Amazon Web Services SDK to provide the attestation document for the + attested environment. + + When you use this parameter, instead of returning a plaintext copy of + the private data key, KMS encrypts the plaintext private data key under + the public key in the attestation document, and returns the resulting + ciphertext in the `CiphertextForRecipient` field in the response. This + ciphertext can be decrypted only with the private key in the attested + environment. The `CiphertextBlob` field in the response contains a copy + of the private data key encrypted under the KMS key specified by the + `KeyId` parameter. The `PrivateKeyPlaintext` field in the response is + null or empty. + + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyPairOutput(_SerdeShape): + """Dataclass for GenerateDataKeyPairOutput structure.""" + + private_key_ciphertext_blob: bytes | None = ... + """ + The encrypted copy of the private key. When you use the HTTP API or the + Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is + not Base64-encoded. + """ + private_key_plaintext: bytes | None = ... + """ + The plaintext copy of the private key. When you use the HTTP API or the + Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is + not Base64-encoded. + + If the response includes the `CiphertextForRecipient` field, the + `PrivateKeyPlaintext` field is null or empty. + """ + public_key: bytes | None = ... + """ + The public key (in plaintext). When you use the HTTP API or the Amazon + Web Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + """ + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that encrypted the private key. + """ + key_pair_spec: str | None = ... + """The type of data key pair that was generated.""" + ciphertext_for_recipient: bytes | None = ... + """ + The plaintext private data key encrypted with the public key from the + attestation document. This ciphertext can be decrypted only by using a + private key from the attested environment. + + This field is included in the response only when the `Recipient` + parameter in the request includes a valid attestation document from an + Amazon Web Services Nitro enclave or NitroTPM. For information about the + interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon + Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + key_material_id: str | None = ... + """The identifier of the key material used to encrypt the private key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyPairWithoutPlaintextInput(_SerdeShape): + """Dataclass for GenerateDataKeyPairWithoutPlaintextInput structure.""" + + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context that will be used when encrypting the + private key in the data key pair. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + key_id: str | None = ... + """ + Specifies the symmetric encryption KMS key that encrypts the private key + in the data key pair. You cannot specify an asymmetric KMS key or a KMS + key in a custom key store. To get the type and origin of your KMS key, + use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + key_pair_spec: str | None = ... + """ + Determines the type of data key pair that is generated. + + The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys + to encrypt and decrypt or to sign and verify (but not both), the rule + that permits you to use ECC KMS keys only to sign and verify, and the + rule that permits you to use ML-DSA key pairs to sign and verify only + are not effective on data key pairs, which are used outside of KMS. The + SM2 key spec is only available in China Regions. The ML-KEM key specs + are not available in China Regions. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyPairWithoutPlaintextOutput(_SerdeShape): + """Dataclass for GenerateDataKeyPairWithoutPlaintextOutput structure.""" + + private_key_ciphertext_blob: bytes | None = ... + """ + The encrypted copy of the private key. When you use the HTTP API or the + Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is + not Base64-encoded. + """ + public_key: bytes | None = ... + """ + The public key (in plaintext). When you use the HTTP API or the Amazon + Web Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + """ + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that encrypted the private key. + """ + key_pair_spec: str | None = ... + """The type of data key pair that was generated.""" + key_material_id: str | None = ... + """The identifier of the key material used to encrypt the private key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyWithoutPlaintextInput(_SerdeShape): + """Dataclass for GenerateDataKeyWithoutPlaintextInput structure.""" + + key_id: str | None = ... + """ + Specifies the symmetric encryption KMS key that encrypts the data key. + You cannot specify an asymmetric KMS key or a KMS key in a custom key + store. To get the type and origin of your KMS key, use the DescribeKey + operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context that will be used when encrypting the + data key. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + key_spec: str | None = ... + """ + The length of the data key. Use `AES_128` to generate a 128-bit + symmetric key, or `AES_256` to generate a 256-bit symmetric key. + """ + number_of_bytes: int | None = ... + """ + The length of the data key in bytes. For example, use the value 64 to + generate a 512-bit data key (64 bytes is 512 bits). For common key + lengths (128-bit and 256-bit symmetric keys), we recommend that you use + the `KeySpec` field instead of this one. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateDataKeyWithoutPlaintextOutput(_SerdeShape): + """Dataclass for GenerateDataKeyWithoutPlaintextOutput structure.""" + + ciphertext_blob: bytes | None = ... + """ + The encrypted data key. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + """ + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that encrypted the data key. + """ + key_material_id: str | None = ... + """The identifier of the key material used to encrypt the data key.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateMacInput(_SerdeShape): + """Dataclass for GenerateMacInput structure.""" + + message: bytes | None = ... + """ + The message to be hashed. Specify a message of up to 4,096 bytes. + + `GenerateMac` and VerifyMac do not provide special handling for message + digests. If you generate an HMAC for a hash digest of a message, you + must verify the HMAC of the same hash digest. + """ + key_id: str | None = ... + """ + The HMAC KMS key to use in the operation. The MAC algorithm computes the + HMAC for the message and the key as described in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + + To identify an HMAC KMS key, use the DescribeKey operation and see the + `KeySpec` field in the response. + """ + mac_algorithm: str | None = ... + """ + The MAC algorithm used in the operation. + + The algorithm must be compatible with the HMAC KMS key that you specify. + To find the MAC algorithms that your HMAC KMS key supports, use the + DescribeKey operation and see the `MacAlgorithms` field in the + `DescribeKey` response. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateMacOutput(_SerdeShape): + """Dataclass for GenerateMacOutput structure.""" + + mac: bytes | None = ... + """ + The hash-based message authentication code (HMAC) that was generated for + the specified message, HMAC KMS key, and MAC algorithm. + + This is the standard, raw HMAC defined in [RFC + 2104](https://datatracker.ietf.org/doc/html/rfc2104). + """ + mac_algorithm: str | None = ... + """The MAC algorithm that was used to generate the HMAC.""" + key_id: str | None = ... + """The HMAC KMS key used in the operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GenerateRandomInput(_SerdeShape): + """Dataclass for GenerateRandomInput structure.""" + + number_of_bytes: int | None = ... + """The length of the random byte string. This parameter is required.""" + custom_key_store_id: str | None = ... + """ + Generates the random byte string in the CloudHSM cluster that is + associated with the specified CloudHSM key store. To find the ID of a + custom key store, use the DescribeCustomKeyStores operation. + + External key store IDs are not valid for this parameter. If you specify + the ID of an external key store, `GenerateRandom` throws an + `UnsupportedOperationException`. + """ + recipient: RecipientInfo | None = ... + """ + A signed [attestation + document](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc) + from an Amazon Web Services Nitro enclave or NitroTPM, and the + encryption algorithm to use with the public key in the attestation + document. The only valid encryption algorithm is `RSAES_OAEP_SHA_256`. + + This parameter supports the [Amazon Web Services Nitro Enclaves + SDK](https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk) + or any Amazon Web Services SDK for Amazon Web Services Nitro Enclaves. + It supports any Amazon Web Services SDK for Amazon Web Services + NitroTPM. + + When you use this parameter, instead of returning plaintext bytes, KMS + encrypts the plaintext bytes under the public key in the attestation + document, and returns the resulting ciphertext in the + `CiphertextForRecipient` field in the response. This ciphertext can be + decrypted only with the private key in the attested environment. The + `Plaintext` field in the response is null or empty. + + For information about the interaction between KMS and Amazon Web + Services Nitro Enclaves or Amazon Web Services NitroTPM, see + [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GenerateRandomOutput(_SerdeShape): + """Dataclass for GenerateRandomOutput structure.""" + + plaintext: bytes | None = ... + """ + The random byte string. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + + If the response includes the `CiphertextForRecipient` field, the + `Plaintext` field is null or empty. + """ + ciphertext_for_recipient: bytes | None = ... + """ + The plaintext random bytes encrypted with the public key from the + attestation document. This ciphertext can be decrypted only by using a + private key from the attested environment. + + This field is included in the response only when the `Recipient` + parameter in the request includes a valid attestation document from an + Amazon Web Services Nitro enclave or NitroTPM. For information about the + interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon + Web Services NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyLastUsageInput(_SerdeShape): + """Dataclass for GetKeyLastUsageInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key to get usage information for. To specify a KMS + key, use its key ID or key ARN. Alias names are not supported. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class GetKeyLastUsageOutput(_SerdeShape): + """Dataclass for GetKeyLastUsageOutput structure.""" + + key_id: str | None = ... + """The globally unique identifier for the KMS key.""" + key_last_usage: KeyLastUsageData | None = ... + """ + Contains usage information about the last time the KMS key was used for + a successful cryptographic operation. If the key has not been used since + tracking began, this response element is an empty object. + """ + tracking_start_date: datetime | None = ... + """ + The date from which KMS began recording cryptographic activity for this + key, or the date the KMS key was created, whichever is later. + """ + key_creation_date: datetime | None = ... + """The date and time when the KMS key was created.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyPolicyInput(_SerdeShape): + """Dataclass for GetKeyPolicyInput structure.""" + + key_id: str | None = ... + """ + Gets the key policy for the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + policy_name: str | None = ... + """ + Specifies the name of the key policy. If no policy name is specified, + the default value is `default`. The only valid name is `default`. To get + the names of key policies, use ListKeyPolicies. + """ + +@dataclass(kw_only=True) +class GetKeyPolicyOutput(_SerdeShape): + """Dataclass for GetKeyPolicyOutput structure.""" + + policy: str | None = ... + """A key policy document in JSON format.""" + policy_name: str | None = ... + """The name of the key policy. The only valid value is `default`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetKeyRotationStatusInput(_SerdeShape): + """Dataclass for GetKeyRotationStatusInput structure.""" + + key_id: str | None = ... + """ + Gets the rotation status for the specified KMS key. + + Specify the key ID or key ARN of the KMS key. To specify a KMS key in a + different Amazon Web Services account, you must use the key ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class GetKeyRotationStatusOutput(_SerdeShape): + """Dataclass for GetKeyRotationStatusOutput structure.""" + + key_rotation_enabled: bool = ... + """A Boolean value that specifies whether key rotation is enabled.""" + key_id: str | None = ... + """Identifies the specified symmetric encryption KMS key.""" + rotation_period_in_days: int | None = ... + """ + The number of days between each automatic rotation. The default value is + 365 days. + """ + next_rotation_date: datetime | None = ... + """The next date that KMS will automatically rotate the key material.""" + on_demand_rotation_start_date: datetime | None = ... + """ + Identifies the date and time that an in progress on-demand rotation was + initiated. + + KMS uses a background process to perform rotations. As a result, there + might be a slight delay between initiating on-demand key rotation and + the rotation's completion. Once the on-demand rotation is complete, KMS + removes this field from the response. You can use ListKeyRotations to + view the details of the completed on-demand rotation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetParametersForImportInput(_SerdeShape): + """Dataclass for GetParametersForImportInput structure.""" + + key_id: str | None = ... + """ + The identifier of the KMS key that will be associated with the imported + key material. The `Origin` of the KMS key must be `EXTERNAL`. + + All KMS key types are supported, including multi-Region keys. However, + you cannot import key material into a KMS key in a custom key store. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + wrapping_algorithm: str | None = ... + """ + The algorithm you will use with the RSA public key (`PublicKey`) in the + response to protect your key material during import. For more + information, see [Select a wrapping + algorithm](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm) + in the *Key Management Service Developer Guide*. + + For RSA_AES wrapping algorithms, you encrypt your key material with an + AES key that you generate, then encrypt your AES key with the RSA public + key from KMS. For RSAES wrapping algorithms, you encrypt your key + material directly with the RSA public key from KMS. + + The wrapping algorithms that you can use depend on the type of key + material that you are importing. To import an RSA private key, you must + use an RSA_AES wrapping algorithm. + + - **RSA_AES_KEY_WRAP_SHA_256** --- Supported for wrapping RSA and ECC + key material. + + - **RSA_AES_KEY_WRAP_SHA_1** --- Supported for wrapping RSA and ECC key + material. + + - **RSAES_OAEP_SHA_256** --- Supported for all types of key material, + except RSA key material (private key). + + You cannot use the RSAES_OAEP_SHA_256 wrapping algorithm with the + RSA_2048 wrapping key spec to wrap ECC_NIST_P521 key material. + + - **RSAES_OAEP_SHA_1** --- Supported for all types of key material, + except RSA key material (private key). + + You cannot use the RSAES_OAEP_SHA_1 wrapping algorithm with the + RSA_2048 wrapping key spec to wrap ECC_NIST_P521 key material. + + - **RSAES_PKCS1_V1_5** (Deprecated) --- As of October 10, 2023, KMS does + not support the RSAES_PKCS1_V1_5 wrapping algorithm. + """ + wrapping_key_spec: str | None = ... + """ + The type of RSA public key to return in the response. You will use this + wrapping key with the specified wrapping algorithm to protect your key + material during import. + + Use the longest RSA wrapping key that is practical. + + You cannot use an RSA_2048 public key to directly wrap an ECC_NIST_P521 + private key. Instead, use an RSA_AES wrapping algorithm or choose a + longer RSA public key. + """ + +@dataclass(kw_only=True) +class GetParametersForImportOutput(_SerdeShape): + """Dataclass for GetParametersForImportOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key to use in a subsequent ImportKeyMaterial request. This is + the same KMS key specified in the `GetParametersForImport` request. + """ + import_token: bytes | None = ... + """The import token to send in a subsequent ImportKeyMaterial request.""" + public_key: bytes | None = ... + """ + The public key to use to encrypt the key material before importing it + with ImportKeyMaterial. + """ + parameters_valid_to: datetime | None = ... + """ + The time at which the import token and public key are no longer valid. + After this time, you cannot use them to make an ImportKeyMaterial + request and you must send another `GetParametersForImport` request to + get new ones. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPublicKeyInput(_SerdeShape): + """Dataclass for GetPublicKeyInput structure.""" + + key_id: str | None = ... + """ + Identifies the asymmetric KMS key that includes the public key. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class GetPublicKeyOutput(_SerdeShape): + """Dataclass for GetPublicKeyOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the asymmetric KMS key from which the public key was downloaded. + """ + public_key: bytes | None = ... + """ + The exported public key. + + The value is a DER-encoded X.509 public key, also known as + `SubjectPublicKeyInfo` (SPKI), as defined in [RFC + 5280](https://tools.ietf.org/html/rfc5280). When you use the HTTP API or + the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it + is not Base64-encoded. + """ + customer_master_key_spec: str | None = ... + """ + Instead, use the `KeySpec` field in the `GetPublicKey` response. + + The `KeySpec` and `CustomerMasterKeySpec` fields have the same value. We + recommend that you use the `KeySpec` field in your code. However, to + avoid breaking changes, KMS supports both fields. + """ + key_spec: str | None = ... + """The type of the of the public key that was downloaded.""" + key_usage: str | None = ... + """ + The permitted use of the public key. Valid values for asymmetric key + pairs are `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, and `KEY_AGREEMENT`. + + This information is critical. For example, if a public key with + `SIGN_VERIFY` key usage encrypts data outside of KMS, the ciphertext + cannot be decrypted. + """ + encryption_algorithms: list[str] | None = ... + """ + The encryption algorithms that KMS supports for this key. + + This information is critical. If a public key encrypts data outside of + KMS by using an unsupported encryption algorithm, the ciphertext cannot + be decrypted. + + This field appears in the response only when the `KeyUsage` of the + public key is `ENCRYPT_DECRYPT`. + """ + signing_algorithms: list[str] | None = ... + """ + The signing algorithms that KMS supports for this key. + + This field appears in the response only when the `KeyUsage` of the + public key is `SIGN_VERIFY`. + """ + key_agreement_algorithms: list[str] | None = ... + """ + The key agreement algorithm used to derive a shared secret. This field + is present only when the KMS key has a `KeyUsage` value of + `KEY_AGREEMENT`. + """ + encapsulation_algorithms: list[str] | None = ... + """ + The key encapsulation algorithm used to establish a shared secret. This + field is present only when the KMS key has a `KeyUsage` value of + `ENCAPSULATE_DECAPSULATE`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GrantConstraints(_SerdeShape): + """ + Use this structure to allow [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + in the grant only when the operation request meets the specified + constraints. + + KMS supports the following grant constraints: + + - `EncryptionContextEquals` and `EncryptionContextSubset` --- These + encryption context constraints apply only to cryptographic operations + that support an encryption context, that is, all cryptographic + operations with a symmetric KMS key. Encryption context grant + constraints are not applied to operations that do not support an + encryption context, such as cryptographic operations with asymmetric + KMS keys and management operations, such as DescribeKey or + RetireGrant. + + Warning: + In a cryptographic operation, the encryption context in the decryption + operation must be an exact, case-sensitive match for the keys and + values in the encryption context of the encryption operation. Only the + order of the pairs can vary. + + However, in a grant constraint, the key in each key-value pair is not + case sensitive, but the value is case sensitive. + + To avoid confusion, do not use multiple encryption context pairs that + differ only by case. To require a fully case-sensitive encryption + context, use the `kms:EncryptionContext:` and + `kms:EncryptionContextKeys` conditions in an IAM or key policy. For + details, see + [kms:EncryptionContext:context-key](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context) + in the Key Management Service Developer Guide . + + - `SourceArn` --- This grant constraint allows the permissions in the + grant only when the request is made on behalf of a specific Amazon Web + Services resource, identified by its [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + This is effectively the same as having the + [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) + global condition key in the grant. The SourceArn constraint is + supported on grants for all types of KMS keys and can also be applied + to the DescribeKey operation when specified in the request. However, + it does not apply to RetireGrant operation. + """ + + encryption_context_subset: dict[str, str] | None = ... + """ + A list of key-value pairs that must be included in the encryption + context of the [cryptographic + operation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + request. The grant allows the cryptographic operation only when the + encryption context in the request includes the key-value pairs specified + in this constraint, although it can include additional key-value pairs. + """ + encryption_context_equals: dict[str, str] | None = ... + """ + A list of key-value pairs that must match the encryption context in the + [cryptographic + operation](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + request. The grant allows the operation only when the encryption context + in the request is the same as the encryption context specified in this + constraint. + """ + source_arn: str | None = ... + """ + The [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of an Amazon Web Services resource on behalf of which the request is + made. This is effectively the same as having the + [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) + global condition key in the grant. The SourceArn constraint ensures that + the principal can use the KMS key only when the request is made on + behalf of the specified resource. + """ + +@dataclass(kw_only=True) +class GrantListEntry(_SerdeShape): + """Contains information about a grant.""" + + key_id: str | None = ... + """The unique identifier for the KMS key to which the grant applies.""" + grant_id: str | None = ... + """The unique identifier for the grant.""" + name: str | None = ... + """ + The friendly name that identifies the grant. If a name was provided in + the CreateGrant request, that name is returned. Otherwise this value is + null. + """ + creation_date: datetime | None = ... + """The date and time when the grant was created.""" + grantee_principal: str | None = ... + """ + The identity that gets the permissions in the grant. + + When a grant is created with the `GranteePrincipal` field, the + `ListGrants` response usually contains the user or role designated as + the grantee principal in the grant. However, if the grantee principal is + an Amazon Web Services service, the `GranteePrincipal` field contains an + Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), + which might correspond to several different grantee principals, such as + an IAM user, IAM role, or Amazon Web Services account. + """ + retiring_principal: str | None = ... + """The principal that can retire the grant.""" + issuing_account: str | None = ... + """The Amazon Web Services account under which the grant was issued.""" + operations: list[str] | None = ... + """The list of operations permitted by the grant.""" + constraints: GrantConstraints | None = ... + """ + The constraints on the grant, such as encryption context pairs or a + SourceArn, that restrict the subsequent operations the grant allows. + """ + grantee_service_principal: str | None = ... + """ + The Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) + that gets the permissions in the grant. + """ + retiring_service_principal: str | None = ... + """ + The Amazon Web Services [service + principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) + that can retire the grant. + """ + +class GrantOperation(UnknownEnumMixin, StrEnum): + DECRYPT = "Decrypt" + ENCRYPT = "Encrypt" + GENERATE_DATA_KEY = "GenerateDataKey" + GENERATE_DATA_KEY_WITHOUT_PLAINTEXT = "GenerateDataKeyWithoutPlaintext" + RE_ENCRYPT_FROM = "ReEncryptFrom" + RE_ENCRYPT_TO = "ReEncryptTo" + SIGN = "Sign" + VERIFY = "Verify" + GET_PUBLIC_KEY = "GetPublicKey" + CREATE_GRANT = "CreateGrant" + RETIRE_GRANT = "RetireGrant" + DESCRIBE_KEY = "DescribeKey" + GENERATE_DATA_KEY_PAIR = "GenerateDataKeyPair" + GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT = "GenerateDataKeyPairWithoutPlaintext" + GENERATE_MAC = "GenerateMac" + VERIFY_MAC = "VerifyMac" + DERIVE_SHARED_SECRET = "DeriveSharedSecret" + ENCAPSULATE = "Encapsulate" + DECAPSULATE = "Decapsulate" + +@dataclass(kw_only=True) +class ImportKeyMaterialInput(_SerdeShape): + """Dataclass for ImportKeyMaterialInput structure.""" + + key_id: str | None = ... + """ + The identifier of the KMS key that will be associated with the imported + key material. This must be the same KMS key specified in the `KeyID` + parameter of the corresponding GetParametersForImport request. The + `Origin` of the KMS key must be `EXTERNAL` and its `KeyState` must be + `PendingImport`. + + The KMS key can be a symmetric encryption KMS key, HMAC KMS key, + asymmetric encryption KMS key, or asymmetric signing KMS key, including + a [multi-Region + key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + of any supported type. You cannot perform this operation on a KMS key in + a custom key store, or on a KMS key in a different Amazon Web Services + account. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + import_token: bytes | None = ... + """ + The import token that you received in the response to a previous + GetParametersForImport request. It must be from the same response that + contained the public key that you used to encrypt the key material. + """ + encrypted_key_material: bytes | None = ... + """ + The encrypted key material to import. The key material must be encrypted + under the public wrapping key that GetParametersForImport returned, + using the wrapping algorithm that you specified in the same + `GetParametersForImport` request. + """ + valid_to: datetime | None = ... + """ + The date and time when the imported key material expires. This parameter + is required when the value of the `ExpirationModel` parameter is + `KEY_MATERIAL_EXPIRES`. Otherwise it is not valid. + + The value of this parameter must be a future date and time. The maximum + value is 365 days from the request date. + + When the key material expires, KMS deletes the key material from the KMS + key. Without its key material, the KMS key is unusable. To use the KMS + key in cryptographic operations, you must reimport the same key + material. + + You cannot change the `ExpirationModel` or `ValidTo` values for the + current import after the request completes. To change either value, you + must delete (DeleteImportedKeyMaterial) and reimport the key material. + """ + expiration_model: str | None = ... + """ + Specifies whether the key material expires. The default is + `KEY_MATERIAL_EXPIRES`. For help with this choice, see [Setting an + expiration + time](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-expiration) + in the *Key Management Service Developer Guide*. + + When the value of `ExpirationModel` is `KEY_MATERIAL_EXPIRES`, you must + specify a value for the `ValidTo` parameter. When value is + `KEY_MATERIAL_DOES_NOT_EXPIRE`, you must omit the `ValidTo` parameter. + + You cannot change the `ExpirationModel` or `ValidTo` values for the + current import after the request completes. To change either value, you + must reimport the key material. + """ + import_type: str | None = ... + """ + Indicates whether the key material being imported is previously + associated with this KMS key or not. This parameter is optional and only + usable with symmetric encryption keys. If no key material has ever been + imported into the KMS key, and this parameter is omitted, the parameter + defaults to `NEW_KEY_MATERIAL`. After the first key material is + imported, if this parameter is omitted then the parameter defaults to + `EXISTING_KEY_MATERIAL`. + + For multi-Region keys, you must first import new key material into the + primary Region key. You should use the `NEW_KEY_MATERIAL` import type + when importing key material into the primary Region key. Then, you can + import the same key material into the replica Region key. The import + type for the replica Region key should be `EXISTING_KEY_MATERIAL`. + """ + key_material_description: str | None = ... + """ + Description for the key material being imported. This parameter is + optional and only usable with symmetric encryption keys. If you do not + specify a key material description, KMS retains the value you specified + when you last imported the same key material into this KMS key. + """ + key_material_id: str | None = ... + """ + Identifies the key material being imported. This parameter is optional + and only usable with symmetric encryption keys. You cannot specify a key + material ID with `ImportType` set to `NEW_KEY_MATERIAL`. Whenever you + import key material into a symmetric encryption key, KMS assigns a + unique identifier to the key material based on the KMS key ID and the + imported key material. When you re-import key material with a specified + key material ID, KMS: + + - Computes the identifier for the key material + + - Matches the computed identifier against the specified key material ID + + - Verifies that the key material ID is already associated with the KMS + key + + To get the list of key material IDs associated with a KMS key, use + ListKeyRotations. + """ + +@dataclass(kw_only=True) +class ImportKeyMaterialOutput(_SerdeShape): + """Dataclass for ImportKeyMaterialOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key into which key material was imported. + """ + key_material_id: str | None = ... + """Identifies the imported key material.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ImportState(UnknownEnumMixin, StrEnum): + IMPORTED = "IMPORTED" + PENDING_IMPORT = "PENDING_IMPORT" + +class ImportType(UnknownEnumMixin, StrEnum): + NEW_KEY_MATERIAL = "NEW_KEY_MATERIAL" + EXISTING_KEY_MATERIAL = "EXISTING_KEY_MATERIAL" + +class IncludeKeyMaterial(UnknownEnumMixin, StrEnum): + ALL_KEY_MATERIAL = "ALL_KEY_MATERIAL" + ROTATIONS_ONLY = "ROTATIONS_ONLY" + +@dataclass(kw_only=True) +class IncorrectKeyException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified KMS key cannot decrypt + the data. The `KeyId` in a Decrypt request and the `SourceKeyId` in a + ReEncrypt request must identify the same KMS key that was used to + encrypt the ciphertext. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IncorrectKeyMaterialException(ServiceError, _SerdeShape): + """ + The request was rejected because the key material in the request is, + expired, invalid, or does not meet expectations. For example, it is not + the same key material that was previously imported or KMS expected new + key material but the key material being imported is already associated + with the KMS key. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IncorrectTrustAnchorException(ServiceError, _SerdeShape): + """ + The request was rejected because the trust anchor certificate in the + request to create an CloudHSM key store is not the trust anchor + certificate for the specified CloudHSM cluster. + + When you [initialize the CloudHSM + cluster](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr), + you create the trust anchor certificate and save it in the + `customerCA.crt` file. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidAliasNameException(ServiceError, _SerdeShape): + """The request was rejected because the specified alias name is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidArnException(ServiceError, _SerdeShape): + """ + The request was rejected because a specified ARN, or an ARN in a key + policy, is not valid. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidCiphertextException(ServiceError, _SerdeShape): + """ + From the Decrypt or ReEncrypt operation, the request was rejected + because the specified ciphertext, or additional authenticated data + incorporated into the ciphertext, such as the encryption context, is + corrupted, missing, or otherwise invalid. + + From the ImportKeyMaterial operation, the request was rejected because + KMS could not decrypt the encrypted (wrapped) key material. + + From the Decapsulate operation, the request was rejected because the + length of the `SharedSecretCiphertextBlob` is inconsistent with the + specified ML-KEM key spec. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidGrantIdException(ServiceError, _SerdeShape): + """The request was rejected because the specified `GrantId` is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidGrantTokenException(ServiceError, _SerdeShape): + """The request was rejected because the specified grant token is not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidImportTokenException(ServiceError, _SerdeShape): + """ + The request was rejected because the provided import token is invalid or + is associated with a different KMS key. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidKeyUsageException(ServiceError, _SerdeShape): + """ + The request was rejected for one of the following reasons: + + - The `KeyUsage` value of the KMS key is incompatible with the API + operation. + + - The encryption algorithm or signing algorithm specified for the + operation is incompatible with the type of key material in the KMS key + `(KeySpec`). + + For encrypting, decrypting, re-encrypting, and generating data keys, the + `KeyUsage` must be `ENCRYPT_DECRYPT`. For signing and verifying + messages, the `KeyUsage` must be `SIGN_VERIFY`. For generating and + verifying message authentication codes (MACs), the `KeyUsage` must be + `GENERATE_VERIFY_MAC`. For deriving key agreement secrets, the + `KeyUsage` must be `KEY_AGREEMENT`. For encapsulating and decapsulating + shared secrets, the `KeyUsage` must be `ENCAPSULATE_DECAPSULATE`. To + find the `KeyUsage` of a KMS key, use the DescribeKey operation. + + To find the encryption or signing algorithms supported for a particular + KMS key, use the DescribeKey operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidMarkerException(ServiceError, _SerdeShape): + """ + The request was rejected because the marker that specifies where + pagination should next begin is not valid. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class KeyAgreementAlgorithmSpec(UnknownEnumMixin, StrEnum): + ECDH = "ECDH" + +class KeyEncryptionMechanism(UnknownEnumMixin, StrEnum): + RSAES_OAEP_SHA_256 = "RSAES_OAEP_SHA_256" + +@dataclass(kw_only=True) +class KeyLastUsageData(_SerdeShape): + """ + Contains usage information about the last time the KMS key was used for + a successful cryptographic operation. + """ + + operation: str | None = ... + """ + The last successful cryptographic operation the KMS key was used for. + Absent if the key has not been used since KMS began tracking. + """ + timestamp: datetime | None = ... + """ + The date and time when the KMS key was most recently used for a + successful cryptographic operation. Absent if the key has not been used + since KMS began tracking. + """ + cloud_trail_event_id: str | None = ... + """ + The CloudTrail `eventId` associated with the last successful + cryptographic operation. Absent if the key has not been used since KMS + began tracking. + """ + kms_request_id: str | None = ... + """ + The KMS request ID associated with the last successful cryptographic + operation. Absent if the key has not been used since KMS began tracking. + """ + +class KeyLastUsageTrackingOperation(UnknownEnumMixin, StrEnum): + DECRYPT = "Decrypt" + DERIVE_SHARED_SECRET = "DeriveSharedSecret" + ENCRYPT = "Encrypt" + GENERATE_DATA_KEY = "GenerateDataKey" + GENERATE_DATA_KEY_PAIR = "GenerateDataKeyPair" + GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT = "GenerateDataKeyPairWithoutPlaintext" + GENERATE_DATA_KEY_WITHOUT_PLAINTEXT = "GenerateDataKeyWithoutPlaintext" + GENERATE_MAC = "GenerateMac" + RE_ENCRYPT = "ReEncrypt" + SIGN = "Sign" + VERIFY = "Verify" + VERIFY_MAC = "VerifyMac" + ENCAPSULATE = "Encapsulate" + DECAPSULATE = "Decapsulate" + +@dataclass(kw_only=True) +class KeyListEntry(_SerdeShape): + """Contains information about each entry in the key list.""" + + key_id: str | None = ... + """Unique identifier of the key.""" + key_arn: str | None = ... + """ARN of the key.""" + +class KeyManagerType(UnknownEnumMixin, StrEnum): + AWS = "AWS" + CUSTOMER = "CUSTOMER" + +class KeyMaterialState(UnknownEnumMixin, StrEnum): + NON_CURRENT = "NON_CURRENT" + CURRENT = "CURRENT" + PENDING_ROTATION = "PENDING_ROTATION" + PENDING_MULTI_REGION_IMPORT_AND_ROTATION = ( + "PENDING_MULTI_REGION_IMPORT_AND_ROTATION" + ) + +@dataclass(kw_only=True) +class KeyMetadata(_SerdeShape): + """ + Contains metadata about a KMS key. + + This data type is used as a response element for the CreateKey, + DescribeKey, and ReplicateKey operations. + """ + + aws_account_id: str | None = ... + """ + The twelve-digit account ID of the Amazon Web Services account that owns + the KMS key. + """ + key_id: str + """The globally unique identifier for the KMS key.""" + arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the KMS key. For examples, see [Key + Management Service + (KMS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms) + in the Example ARNs section of the *Amazon Web Services General + Reference*. + """ + creation_date: datetime | None = ... + """The date and time when the KMS key was created.""" + enabled: bool = ... + """ + Specifies whether the KMS key is enabled. When `KeyState` is `Enabled` + this value is true, otherwise it is false. + """ + description: str | None = ... + """The description of the KMS key.""" + key_usage: str | None = ... + """ + The [cryptographic + operations](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#cryptographic-operations) + for which you can use the KMS key. + """ + key_state: str | None = ... + """ + The current status of the KMS key. + + For more information about how key state affects the use of a KMS key, + see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + """ + deletion_date: datetime | None = ... + """ + The date and time after which KMS deletes this KMS key. This value is + present only when the KMS key is scheduled for deletion, that is, when + its `KeyState` is `PendingDeletion`. + + When the primary key in a multi-Region key is scheduled for deletion but + still has replica keys, its key state is `PendingReplicaDeletion` and + the length of its waiting period is displayed in the + `PendingDeletionWindowInDays` field. + """ + valid_to: datetime | None = ... + """ + The earliest time at which any imported key material permanently + associated with this KMS key expires. When a key material expires, KMS + deletes the key material and the KMS key becomes unusable. This value is + present only for KMS keys whose `Origin` is `EXTERNAL` and the + `ExpirationModel` is `KEY_MATERIAL_EXPIRES`, otherwise this value is + omitted. + """ + origin: str | None = ... + """ + The source of the key material for the KMS key. When this value is + `AWS_KMS`, KMS created the key material. When this value is `EXTERNAL`, + the key material was imported or the KMS key doesn't have any key + material. When this value is `AWS_CLOUDHSM`, the key material was + created in the CloudHSM cluster associated with a custom key store. + """ + custom_key_store_id: str | None = ... + """ + A unique identifier for the [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html) + that contains the KMS key. This field is present only when the KMS key + is created in a custom key store. + """ + cloud_hsm_cluster_id: str | None = ... + """ + The cluster ID of the CloudHSM cluster that contains the key material + for the KMS key. When you create a KMS key in an CloudHSM [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html), + KMS creates the key material for the KMS key in the associated CloudHSM + cluster. This field is present only when the KMS key is created in an + CloudHSM key store. + """ + expiration_model: str | None = ... + """ + Specifies whether the KMS key's key material expires. This value is + present only when `Origin` is `EXTERNAL`, otherwise this value is + omitted. + """ + key_manager: str | None = ... + """ + The manager of the KMS key. KMS keys in your Amazon Web Services account + are either customer managed or Amazon Web Services managed. For more + information about the difference, see [KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) + in the *Key Management Service Developer Guide*. + """ + customer_master_key_spec: str | None = ... + """ + Instead, use the `KeySpec` field. + + The `KeySpec` and `CustomerMasterKeySpec` fields have the same value. We + recommend that you use the `KeySpec` field in your code. However, to + avoid breaking changes, KMS supports both fields. + """ + key_spec: str | None = ... + """Describes the type of key material in the KMS key.""" + encryption_algorithms: list[str] | None = ... + """ + The encryption algorithms that the KMS key supports. You cannot use the + KMS key with other encryption algorithms within KMS. + + This value is present only when the `KeyUsage` of the KMS key is + `ENCRYPT_DECRYPT`. + """ + signing_algorithms: list[str] | None = ... + """ + The signing algorithms that the KMS key supports. You cannot use the KMS + key with other signing algorithms within KMS. + + This field appears only when the `KeyUsage` of the KMS key is + `SIGN_VERIFY`. + """ + key_agreement_algorithms: list[str] | None = ... + """The key agreement algorithm used to derive a shared secret.""" + encapsulation_algorithms: list[str] | None = ... + """ + The key encapsulation algorithm that the KMS key supports. This field + appears only for KMS keys with a `KeyUsage` value of + `ENCAPSULATE_DECAPSULATE`. + """ + multi_region: bool | None = ... + """ + Indicates whether the KMS key is a multi-Region (`True`) or regional + (`False`) key. This value is `True` for multi-Region primary and replica + keys and `False` for regional KMS keys. + + For more information about multi-Region keys, see [Multi-Region keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + in the *Key Management Service Developer Guide*. + """ + multi_region_configuration: MultiRegionConfiguration | None = ... + """ + Lists the primary and replica keys in same multi-Region key. This field + is present only when the value of the `MultiRegion` field is `True`. + + For more information about any listed KMS key, use the DescribeKey + operation. + + - `MultiRegionKeyType` indicates whether the KMS key is a `PRIMARY` or + `REPLICA` key. + + - `PrimaryKey` displays the key ARN and Region of the primary key. This + field displays the current KMS key if it is the primary key. + + - `ReplicaKeys` displays the key ARNs and Regions of all replica keys. + This field includes the current KMS key if it is a replica key. + """ + pending_deletion_window_in_days: int | None = ... + """ + The waiting period before the primary key in a multi-Region key is + deleted. This waiting period begins when the last of its replica keys is + deleted. This value is present only when the `KeyState` of the KMS key + is `PendingReplicaDeletion`. That indicates that the KMS key is the + primary key in a multi-Region key, it is scheduled for deletion, and it + still has existing replica keys. + + When a single-Region KMS key or a multi-Region replica key is scheduled + for deletion, its deletion date is displayed in the `DeletionDate` + field. However, when the primary key in a multi-Region key is scheduled + for deletion, its waiting period doesn't begin until all of its replica + keys are deleted. This value displays that waiting period. When the last + replica key in the multi-Region key is deleted, the `KeyState` of the + scheduled primary key changes from `PendingReplicaDeletion` to + `PendingDeletion` and the deletion date appears in the `DeletionDate` + field. + """ + mac_algorithms: list[str] | None = ... + """ + The message authentication code (MAC) algorithm that the HMAC KMS key + supports. + + This value is present only when the `KeyUsage` of the KMS key is + `GENERATE_VERIFY_MAC`. + """ + xks_key_configuration: XksKeyConfigurationType | None = ... + """ + Information about the external key that is associated with a KMS key in + an external key store. + + For more information, see [External + key](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key) + in the *Key Management Service Developer Guide*. + """ + current_key_material_id: str | None = ... + """ + Identifies the current key material. This value is present for symmetric + encryption keys with `AWS_KMS` or `EXTERNAL` origin. These KMS keys + support automatic or on-demand key rotation and can have multiple key + materials associated with them. KMS uses the current key material for + both encryption and decryption, and the non-current key material for + decryption operations only. + """ + +class KeySpec(UnknownEnumMixin, StrEnum): + RSA_2048 = "RSA_2048" + RSA_3072 = "RSA_3072" + RSA_4096 = "RSA_4096" + ECC_NIST_P256 = "ECC_NIST_P256" + ECC_NIST_P384 = "ECC_NIST_P384" + ECC_NIST_P521 = "ECC_NIST_P521" + ECC_SECG_P256_K1 = "ECC_SECG_P256K1" + SYMMETRIC_DEFAULT = "SYMMETRIC_DEFAULT" + HMAC_224 = "HMAC_224" + HMAC_256 = "HMAC_256" + HMAC_384 = "HMAC_384" + HMAC_512 = "HMAC_512" + SM2 = "SM2" + ML_DSA_44 = "ML_DSA_44" + ML_DSA_65 = "ML_DSA_65" + ML_DSA_87 = "ML_DSA_87" + ECC_NIST_EDWARDS25519 = "ECC_NIST_EDWARDS25519" + ML_KEM_512 = "ML_KEM_512" + ML_KEM_768 = "ML_KEM_768" + ML_KEM_1024 = "ML_KEM_1024" + +class KeyState(UnknownEnumMixin, StrEnum): + CREATING = "Creating" + ENABLED = "Enabled" + DISABLED = "Disabled" + PENDING_DELETION = "PendingDeletion" + PENDING_IMPORT = "PendingImport" + PENDING_REPLICA_DELETION = "PendingReplicaDeletion" + UNAVAILABLE = "Unavailable" + UPDATING = "Updating" + +@dataclass(kw_only=True) +class KeyUnavailableException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified KMS key was not + available. You can retry the request. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class KeyUsageType(UnknownEnumMixin, StrEnum): + SIGN_VERIFY = "SIGN_VERIFY" + ENCRYPT_DECRYPT = "ENCRYPT_DECRYPT" + GENERATE_VERIFY_MAC = "GENERATE_VERIFY_MAC" + KEY_AGREEMENT = "KEY_AGREEMENT" + ENCAPSULATE_DECAPSULATE = "ENCAPSULATE_DECAPSULATE" + +@dataclass(kw_only=True) +class KMSInternalException(ServiceError, _SerdeShape): + """ + The request was rejected because an internal exception occurred. The + request can be retried. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSInvalidMacException(ServiceError, _SerdeShape): + """ + The request was rejected because the HMAC verification failed. HMAC + verification fails when the HMAC computed by using the specified + message, HMAC KMS key, and MAC algorithm does not match the HMAC + specified in the request. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSInvalidSignatureException(ServiceError, _SerdeShape): + """ + The request was rejected because the signature verification failed. + Signature verification fails when it cannot confirm that signature was + produced by signing the specified message with the specified KMS key and + signing algorithm. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class KMSInvalidStateException(ServiceError, _SerdeShape): + """ + The request was rejected because the state of the specified resource is + not valid for this request. + + This exceptions means one of the following: + + - The key state of the KMS key is not compatible with the operation. + + To find the key state, use the DescribeKey operation. For more + information about which key states are compatible with each KMS + operation, see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the Key Management Service Developer Guide . + + - For cryptographic operations on KMS keys in custom key stores, this + exception represents a general failure with many possible causes. To + identify the cause, see the error message that accompanies the + exception. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LimitExceededException(ServiceError, _SerdeShape): + """ + The request was rejected because a length constraint or quota was + exceeded. For more information, see + [Quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) + in the *Key Management Service Developer Guide*. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListAliasesInput(_SerdeShape): + """Dataclass for ListAliasesInput structure.""" + + key_id: str | None = ... + """ + Lists only aliases that are associated with the specified KMS key. Enter + a KMS key in your Amazon Web Services account. + + This parameter is optional. If you omit it, `ListAliases` returns all + aliases in the account and Region. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 100, inclusive. If you do not include a value, it defaults to 50. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + +@dataclass(kw_only=True) +class ListAliasesOutput(_SerdeShape): + """Dataclass for ListAliasesOutput structure.""" + + aliases: list[AliasListEntry] | None = ... + """A list of aliases.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListGrantsInput(_SerdeShape): + """Dataclass for ListGrantsInput structure.""" + + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 100, inclusive. If you do not include a value, it defaults to 50. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + key_id: str | None = ... + """ + Returns only grants for the specified KMS key. This parameter is + required. + + Specify the key ID or key ARN of the KMS key. To specify a KMS key in a + different Amazon Web Services account, you must use the key ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + grant_id: str | None = ... + """ + Returns only the grant with the specified grant ID. The grant ID + uniquely identifies the grant. + """ + grantee_principal: str | None = ... + """ + Returns only grants where the specified principal is the grantee + principal for the grant. + + You can specify either `GranteePrincipal` or `GranteeServicePrincipal`, + but not both. + """ + grantee_service_principal: str | None = ... + """ + Returns only grants where the specified Amazon Web Services service + principal is the grantee service principal for the grant. This filter is + only usable by callers in a service principal. + + You can specify either `GranteePrincipal` or `GranteeServicePrincipal`, + but not both. + """ + +@dataclass(kw_only=True) +class ListGrantsOutput(_SerdeShape): + """Dataclass for ListGrantsOutput structure.""" + + grants: list[GrantListEntry] | None = ... + """A list of grants.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeyPoliciesInput(_SerdeShape): + """Dataclass for ListKeyPoliciesInput structure.""" + + key_id: str | None = ... + """ + Gets the names of key policies for the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 1000, inclusive. If you do not include a value, it defaults to 100. + + Only one policy can be attached to a key. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + +@dataclass(kw_only=True) +class ListKeyPoliciesOutput(_SerdeShape): + """Dataclass for ListKeyPoliciesOutput structure.""" + + policy_names: list[str] | None = ... + """A list of key policy names. The only valid value is `default`.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeyRotationsInput(_SerdeShape): + """Dataclass for ListKeyRotationsInput structure.""" + + key_id: str | None = ... + """ + Gets the key rotations for the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + include_key_material: str | None = ... + """ + Use this optional parameter to control which key materials associated + with this key are listed in the response. The default value of this + parameter is `ROTATIONS_ONLY`. If you omit this parameter, KMS returns + information on the key materials created by automatic or on-demand key + rotation. When you specify a value of `ALL_KEY_MATERIAL`, KMS adds the + first key material and any imported key material pending rotation to the + response. This parameter can only be used with KMS keys that support + automatic or on-demand key rotation. + """ + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 1000, inclusive. If you do not include a value, it defaults to 100. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + +@dataclass(kw_only=True) +class ListKeyRotationsOutput(_SerdeShape): + """Dataclass for ListKeyRotationsOutput structure.""" + + rotations: list[RotationsListEntry] | None = ... + """ + A list of completed key material rotations. When the optional input + parameter `IncludeKeyMaterial` is specified with a value of + `ALL_KEY_MATERIAL`, this list includes the first key material and any + imported key material pending rotation. + """ + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListKeysInput(_SerdeShape): + """Dataclass for ListKeysInput structure.""" + + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 1000, inclusive. If you do not include a value, it defaults to 100. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + +@dataclass(kw_only=True) +class ListKeysOutput(_SerdeShape): + """Dataclass for ListKeysOutput structure.""" + + keys: list[KeyListEntry] | None = ... + """A list of KMS keys.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListResourceTagsInput(_SerdeShape): + """Dataclass for ListResourceTagsInput structure.""" + + key_id: str | None = ... + """ + Gets tags on the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 50, inclusive. If you do not include a value, it defaults to 50. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + + Do not attempt to construct this value. Use only the value of + `NextMarker` from the truncated response you just received. + """ + +@dataclass(kw_only=True) +class ListResourceTagsOutput(_SerdeShape): + """Dataclass for ListResourceTagsOutput structure.""" + + tags: list[Tag] | None = ... + """ + A list of tags. Each tag consists of a tag key and a tag value. + + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + """ + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + + Do not assume or infer any information from this value. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListRetirableGrantsInput(_SerdeShape): + """Dataclass for ListRetirableGrantsInput structure.""" + + limit: int | None = ... + """ + Use this parameter to specify the maximum number of items to return. + When this value is present, KMS does not return more than the specified + number of items, but it might return fewer. + + This value is optional. If you include a value, it must be between 1 and + 100, inclusive. If you do not include a value, it defaults to 50. + """ + marker: str | None = ... + """ + Use this parameter in a subsequent request after you receive a response + with truncated results. Set it to the value of `NextMarker` from the + truncated response you just received. + """ + retiring_principal: str | None = ... + """ + The retiring principal for which to list grants. Enter a principal in + your Amazon Web Services account. + + To specify the retiring principal, use the [Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + of an Amazon Web Services principal. Valid principals include Amazon Web + Services accounts, IAM users, IAM roles, federated users, and assumed + role users. For help with the ARN syntax for a principal, see [IAM + ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) + in the Identity and Access Management User Guide . + + You must specify either `RetiringPrincipal` or + `RetiringServicePrincipal`, but not both. + """ + retiring_service_principal: str | None = ... + """ + The retiring service principal for which to list grants. This filter is + only usable by callers in a service principal. + + You must specify either `RetiringPrincipal` or + `RetiringServicePrincipal`, but not both. + """ + +@dataclass(kw_only=True) +class ListRetirableGrantsOutput(_SerdeShape): + """Dataclass for ListRetirableGrantsOutput structure.""" + + grants: list[GrantListEntry] | None = ... + """A list of grants.""" + next_marker: str | None = ... + """ + When `Truncated` is true, this element is present and contains the value + to use for the `Marker` parameter in a subsequent request. + """ + truncated: bool = ... + """ + A flag that indicates whether there are more items in the list. When + this value is true, the list in this response is truncated. To get more + items, pass the value of the `NextMarker` element in this response to + the `Marker` parameter in a subsequent request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class MacAlgorithmSpec(UnknownEnumMixin, StrEnum): + HMAC_SHA_224 = "HMAC_SHA_224" + HMAC_SHA_256 = "HMAC_SHA_256" + HMAC_SHA_384 = "HMAC_SHA_384" + HMAC_SHA_512 = "HMAC_SHA_512" + +@dataclass(kw_only=True) +class MalformedPolicyDocumentException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified policy is not + syntactically or semantically correct. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class MessageType(UnknownEnumMixin, StrEnum): + RAW = "RAW" + DIGEST = "DIGEST" + EXTERNAL_MU = "EXTERNAL_MU" + +@dataclass(kw_only=True) +class MultiRegionConfiguration(_SerdeShape): + """ + Describes the configuration of this multi-Region key. This field appears + only when the KMS key is a primary or replica of a multi-Region key. + + For more information about any listed KMS key, use the DescribeKey + operation. + """ + + multi_region_key_type: str | None = ... + """Indicates whether the KMS key is a `PRIMARY` or `REPLICA` key.""" + primary_key: MultiRegionKey | None = ... + """ + Displays the key ARN and Region of the primary key. This field includes + the current KMS key if it is the primary key. + """ + replica_keys: list[MultiRegionKey] | None = ... + """ + displays the key ARNs and Regions of all replica keys. This field + includes the current KMS key if it is a replica key. + """ + +@dataclass(kw_only=True) +class MultiRegionKey(_SerdeShape): + """Describes the primary or replica key in a multi-Region key.""" + + arn: str | None = ... + """Displays the key ARN of a primary or replica key of a multi-Region key.""" + region: str | None = ... + """ + Displays the Amazon Web Services Region of a primary or replica key in a + multi-Region key. + """ + +class MultiRegionKeyType(UnknownEnumMixin, StrEnum): + PRIMARY = "PRIMARY" + REPLICA = "REPLICA" + +@dataclass(kw_only=True) +class NotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified entity or resource could + not be found. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class OriginType(UnknownEnumMixin, StrEnum): + AWS_KMS = "AWS_KMS" + EXTERNAL = "EXTERNAL" + AWS_CLOUDHSM = "AWS_CLOUDHSM" + EXTERNAL_KEY_STORE = "EXTERNAL_KEY_STORE" + +@dataclass(kw_only=True) +class PutKeyPolicyInput(_SerdeShape): + """Dataclass for PutKeyPolicyInput structure.""" + + key_id: str | None = ... + """ + Sets the key policy on the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + policy_name: str | None = ... + """ + The name of the key policy. If no policy name is specified, the default + value is `default`. The only valid value is `default`. + """ + policy: str | None = ... + """ + The key policy to attach to the KMS key. + + The key policy must meet the following criteria: + + - The key policy must allow the calling principal to make a subsequent + `PutKeyPolicy` request on the KMS key. This reduces the risk that the + KMS key becomes unmanageable. For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. (To omit this + condition, set `BypassPolicyLockoutSafetyCheck` to true.) + + - Each statement in the key policy must contain one or more principals. + The principals in the key policy must exist and be visible to KMS. + When you create a new Amazon Web Services principal, you might need to + enforce a delay before including the new principal in a key policy + because the new principal might not be immediately visible to KMS. For + more information, see [Changes that I make are not always immediately + visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) + in the *Amazon Web Services Identity and Access Management User + Guide*. + + Note: + If either of the required `Resource` or `Action` elements are missing + from a key policy statement, the policy statement has no effect. When a + key policy statement is missing one of these elements, the KMS console + correctly reports an error, but the `PutKeyPolicy` API request succeeds, + even though the policy statement is ineffective. + + For more information on required key policy elements, see [Elements in a + key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html#key-policy-elements) + in the *Key Management Service Developer Guide*. + + A key policy document can include only the following characters: + + - Printable ASCII characters from the space character (`\u0020`) through + the end of the ASCII character range. + + - Printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`). + + - The tab (`\u0009`), line feed (`\u000a`), and carriage return + (`\u000d`) special characters + + Note: + If the key policy exceeds the length constraint, KMS returns a + `LimitExceededException`. + + For information about key policies, see [Key policies in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + in the *Key Management Service Developer Guide*.For help writing and + formatting a JSON policy document, see the [IAM JSON Policy + Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) + in the Identity and Access Management User Guide . + """ + bypass_policy_lockout_safety_check: bool = ... + """ + Skips (\"bypasses\") the key policy lockout safety check. The default + value is false. + + Warning: + Setting this value to true increases the risk that the KMS key becomes + unmanageable. Do not set this value to true indiscriminately. + + For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. + + Use this parameter only when you intend to prevent the principal that is + making the request from making a subsequent + [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + request on the KMS key. + """ + +@dataclass(kw_only=True) +class PutKeyPolicyOutput(_SerdeShape): + """Dataclass for PutKeyPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RecipientInfo(_SerdeShape): + """ + Contains information about the party that receives the response from the + API operation. + + This data type is designed to support Amazon Web Services Nitro Enclaves + and Amazon Web Services NitroTPM, which lets you create an attested + environment in Amazon EC2. For information about the interaction between + KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services + NitroTPM, see [Cryptographic attestation support in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/cryptographic-attestation.html) + in the *Key Management Service Developer Guide*. + """ + + key_encryption_algorithm: str | None = ... + """ + The encryption algorithm that KMS should use with the public key for an + Amazon Web Services Nitro Enclave or NitroTPM to encrypt plaintext + values for the response. The only valid value is `RSAES_OAEP_SHA_256`. + """ + attestation_document: bytes | None = ... + """ + The attestation document for an Amazon Web Services Nitro Enclave or a + NitroTPM. This document includes the enclave's public key. + """ + +@dataclass(kw_only=True) +class ReEncryptInput(_SerdeShape): + """Dataclass for ReEncryptInput structure.""" + + ciphertext_blob: bytes | None = ... + """ + Ciphertext of the data to reencrypt. + + This parameter is required in all cases except when `DryRun` is `true` + and `DryRunModifiers` is set to `IGNORE_CIPHERTEXT`. + """ + source_encryption_context: dict[str, str] | None = ... + """ + Specifies the encryption context to use to decrypt the ciphertext. Enter + the same encryption context that was used to encrypt the ciphertext. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + source_key_id: str | None = ... + """ + Specifies the KMS key that KMS will use to decrypt the ciphertext before + it is re-encrypted. + + Enter a key ID of the KMS key that was used to encrypt the ciphertext. + If you identify a different KMS key, the `ReEncrypt` operation throws an + `IncorrectKeyException`. + + This parameter is required only when the ciphertext was encrypted under + an asymmetric KMS key or when `DryRun` is `true` and `DryRunModifiers` + is set to `IGNORE_CIPHERTEXT`. If you used a symmetric encryption KMS + key, KMS can get the KMS key from metadata that it adds to the symmetric + ciphertext blob. However, it is always recommended as a best practice. + This practice ensures that you use the KMS key that you intend. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you should use the key + ARN or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + destination_key_id: str | None = ... + """ + A unique identifier for the KMS key that is used to reencrypt the data. + Specify a symmetric encryption KMS key or an asymmetric KMS key with a + `KeyUsage` value of `ENCRYPT_DECRYPT`. To find the `KeyUsage` value of a + KMS key, use the DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + destination_encryption_context: dict[str, str] | None = ... + """ + Specifies that encryption context to use when the reencrypting the data. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + A destination encryption context is valid only when the destination KMS + key is a symmetric encryption KMS key. The standard ciphertext format + for asymmetric KMS keys does not include fields for metadata. + + An *encryption context* is a collection of non-secret key-value pairs + that represent additional authenticated data. When you use an encryption + context to encrypt data, you must specify the same (an exact + case-sensitive match) encryption context to decrypt the data. An + encryption context is supported only on operations with symmetric + encryption KMS keys. On operations with symmetric encryption KMS keys, + an encryption context is optional, but it is strongly recommended. + + For more information, see [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) + in the *Key Management Service Developer Guide*. + """ + source_encryption_algorithm: str | None = ... + """ + Specifies the encryption algorithm that KMS will use to decrypt the + ciphertext before it is reencrypted. The default value, + `SYMMETRIC_DEFAULT`, represents the algorithm used for symmetric + encryption KMS keys. + + Specify the same algorithm that was used to encrypt the ciphertext. If + you specify a different algorithm, the decrypt attempt fails. + + This parameter is required only when the ciphertext was encrypted under + an asymmetric KMS key. + """ + destination_encryption_algorithm: str | None = ... + """ + Specifies the encryption algorithm that KMS will use to reecrypt the + data after it has decrypted it. The default value, `SYMMETRIC_DEFAULT`, + represents the encryption algorithm used for symmetric encryption KMS + keys. + + This parameter is required only when the destination KMS key is an + asymmetric KMS key. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + dry_run_modifiers: list[str] | None = ... + """ + Specifies the modifiers to apply to the dry run operation. + `DryRunModifiers` is an optional parameter that only applies when + `DryRun` is set to `true`. + + When set to `IGNORE_CIPHERTEXT`, KMS performs only authorization + validation without ciphertext validation. This allows you to test + permissions without requiring a valid ciphertext blob. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class ReEncryptOutput(_SerdeShape): + """Dataclass for ReEncryptOutput structure.""" + + ciphertext_blob: bytes | None = ... + """ + The reencrypted data. When you use the HTTP API or the Amazon Web + Services CLI, the value is Base64-encoded. Otherwise, it is not + Base64-encoded. + """ + source_key_id: str | None = ... + """Unique identifier of the KMS key used to originally encrypt the data.""" + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key that was used to reencrypt the data. + """ + source_encryption_algorithm: str | None = ... + """ + The encryption algorithm that was used to decrypt the ciphertext before + it was reencrypted. + """ + destination_encryption_algorithm: str | None = ... + """The encryption algorithm that was used to reencrypt the data.""" + source_key_material_id: str | None = ... + """ + The identifier of the key material used to originally encrypt the data. + This field is present only when the original encryption used a symmetric + encryption KMS key. + """ + destination_key_material_id: str | None = ... + """ + The identifier of the key material used to reencrypt the data. This + field is present only when data is reencrypted using a symmetric + encryption KMS key. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplicateKeyInput(_SerdeShape): + """Dataclass for ReplicateKeyInput structure.""" + + key_id: str | None = ... + """ + Identifies the multi-Region primary key that is being replicated. To + determine whether a KMS key is a multi-Region primary key, use the + DescribeKey operation to check the value of the `MultiRegionKeyType` + property. + + Specify the key ID or key ARN of a multi-Region primary key. + + For example: + + - Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + replica_region: str | None = ... + """ + The Region ID of the Amazon Web Services Region for this replica key. + + Enter the Region ID, such as `us-east-1` or `ap-southeast-2`. For a list + of Amazon Web Services Regions in which KMS is supported, see [KMS + service + endpoints](https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) + in the *Amazon Web Services General Reference*. + + The replica must be in a different Amazon Web Services Region than its + primary key and other replicas of that primary key, but in the same + Amazon Web Services partition. KMS must be available in the replica + Region. If the Region is not enabled by default, the Amazon Web Services + account must be enabled in the Region. For information about Amazon Web + Services partitions, 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*. For information about + enabling and disabling Regions, see [Enabling a + Region](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) + and [Disabling a + Region](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable) + in the *Amazon Web Services General Reference*. + """ + policy: str | None = ... + """ + The key policy to attach to the KMS key. This parameter is optional. If + you do not provide a key policy, KMS attaches the [default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html) + to the KMS key. + + The key policy is not a shared property of multi-Region keys. You can + specify the same key policy or a different key policy for each key in a + set of related multi-Region keys. KMS does not synchronize this + property. + + If you provide a key policy, it must meet the following criteria: + + - The key policy must allow the calling principal to make a subsequent + `PutKeyPolicy` request on the KMS key. This reduces the risk that the + KMS key becomes unmanageable. For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. (To omit this + condition, set `BypassPolicyLockoutSafetyCheck` to true.) + + - Each statement in the key policy must contain one or more principals. + The principals in the key policy must exist and be visible to KMS. + When you create a new Amazon Web Services principal, you might need to + enforce a delay before including the new principal in a key policy + because the new principal might not be immediately visible to KMS. For + more information, see [Changes that I make are not always immediately + visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) + in the *Amazon Web Services Identity and Access Management User + Guide*. + + A key policy document can include only the following characters: + + - Printable ASCII characters from the space character (`\u0020`) through + the end of the ASCII character range. + + - Printable characters in the Basic Latin and Latin-1 Supplement + character set (through `\u00ff`). + + - The tab (`\u0009`), line feed (`\u000a`), and carriage return + (`\u000d`) special characters + + For information about key policies, see [Key policies in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + in the *Key Management Service Developer Guide*. For help writing and + formatting a JSON policy document, see the [IAM JSON Policy + Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) + in the Identity and Access Management User Guide . + """ + bypass_policy_lockout_safety_check: bool = ... + """ + Skips (\"bypasses\") the key policy lockout safety check. The default + value is false. + + Warning: + Setting this value to true increases the risk that the KMS key becomes + unmanageable. Do not set this value to true indiscriminately. + + For more information, see [Default key + policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) + in the *Key Management Service Developer Guide*. + + Use this parameter only when you intend to prevent the principal that is + making the request from making a subsequent + [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) + request on the KMS key. + """ + description: str | None = ... + """ + A description of the KMS key. The default value is an empty string (no + description). + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + The description is not a shared property of multi-Region keys. You can + specify the same description or a different description for each key in + a set of related multi-Region keys. KMS does not synchronize this + property. + """ + tags: list[Tag] | None = ... + """ + Assigns one or more tags to the replica key. Use this parameter to tag + the KMS key when it is created. To tag an existing KMS key, use the + TagResource operation. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + Note: + Tagging or untagging a KMS key can allow or deny permission to the KMS + key. For details, see [ABAC for + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in + the *Key Management Service Developer Guide*. + + To use this parameter, you must have + [kms:TagResource](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) + permission in an IAM policy. + + Tags are not a shared property of multi-Region keys. You can specify the + same tags or different tags for each key in a set of related + multi-Region keys. KMS does not synchronize this property. + + Each tag consists of a tag key and a tag value. Both the tag key and the + tag value are required, but the tag value can be an empty (null) string. + You cannot have more than one tag on a KMS key with the same tag key. If + you specify an existing tag key with a different tag value, KMS replaces + the current tag value with the specified one. + + When you add tags to an Amazon Web Services resource, Amazon Web + Services generates a cost allocation report with usage and costs + aggregated by tags. Tags can also be used to control access to a KMS + key. For details, see [Tags in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + """ + +@dataclass(kw_only=True) +class ReplicateKeyOutput(_SerdeShape): + """Dataclass for ReplicateKeyOutput structure.""" + + replica_key_metadata: KeyMetadata | None = ... + """ + Displays details about the new replica key, including its Amazon + Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + and [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). + It also includes the ARN and Amazon Web Services Region of its primary + key and other replica keys. + """ + replica_policy: str | None = ... + """ + The key policy of the new replica key. The value is a key policy + document in JSON format. + """ + replica_tags: list[Tag] | None = ... + """ + The tags on the new replica key. The value is a list of tag key and tag + value pairs. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RetireGrantInput(_SerdeShape): + """Dataclass for RetireGrantInput structure.""" + + grant_token: str | None = ... + """ + Identifies the grant to be retired. You can use a grant token to + identify a new grant even before it has achieved eventual consistency. + + Only the CreateGrant operation returns a grant token. For details, see + [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Eventual + consistency](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency) + in the *Key Management Service Developer Guide*. + """ + key_id: str | None = ... + """ + The key ARN KMS key associated with the grant. To find the key ARN, use + the ListKeys operation. + + For example: + `arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab` + """ + grant_id: str | None = ... + """ + Identifies the grant to retire. To get the grant ID, use CreateGrant, + ListGrants, or ListRetirableGrants. + + - Grant ID Example - + 0123456789012345678901234567890123456789012345678901234567890123 + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class RetireGrantOutput(_SerdeShape): + """Dataclass for RetireGrantOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RevokeGrantInput(_SerdeShape): + """Dataclass for RevokeGrantInput structure.""" + + key_id: str | None = ... + """ + A unique identifier for the KMS key associated with the grant. To get + the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. + + Specify the key ID or key ARN of the KMS key. To specify a KMS key in a + different Amazon Web Services account, you must use the key ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + grant_id: str | None = ... + """ + Identifies the grant to revoke. To get the grant ID, use CreateGrant, + ListGrants, or ListRetirableGrants. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class RevokeGrantOutput(_SerdeShape): + """Dataclass for RevokeGrantOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RotateKeyOnDemandInput(_SerdeShape): + """Dataclass for RotateKeyOnDemandInput structure.""" + + key_id: str | None = ... + """ + Identifies a symmetric encryption KMS key. You cannot perform on-demand + rotation of [asymmetric KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), + [HMAC KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html), + multi-Region KMS keys with [imported key + material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + or KMS keys in a [custom key + store](https://docs.aws.amazon.com/kms/latest/developerguide/key-store-overview.html). + To perform on-demand rotation of a set of related [multi-Region + keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#multi-region-rotate), + invoke the on-demand rotation on the primary key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + +@dataclass(kw_only=True) +class RotateKeyOnDemandOutput(_SerdeShape): + """Dataclass for RotateKeyOnDemandOutput structure.""" + + key_id: str | None = ... + """ + Identifies the symmetric encryption KMS key that you initiated on-demand + rotation on. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RotationsListEntry(_SerdeShape): + """ + Each entry contains information about one of the key materials + associated with a KMS key. + """ + + key_id: str | None = ... + """Unique identifier of the key.""" + key_material_id: str | None = ... + """Unique identifier of the key material.""" + key_material_description: str | None = ... + """ + User-specified description of the key material. This field is only + present for symmetric encryption KMS keys with `EXTERNAL` origin. + """ + import_state: str | None = ... + """ + Indicates if the key material is currently imported into KMS. It has two + possible values: `IMPORTED` or `PENDING_IMPORT`. This field is only + present for symmetric encryption KMS keys with `EXTERNAL` origin. + """ + key_material_state: str | None = ... + """ + There are four possible values for this field: `CURRENT`, `NON_CURRENT`, + `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and `PENDING_ROTATION`. KMS + uses `CURRENT` key material for both encryption and decryption and + `NON_CURRENT` key material only for decryption. `PENDING_ROTATION` + identifies key material that has been imported for on-demand key + rotation but the rotation hasn't completed. The key material state + `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` is unique to multi-region, + symmetric encryption keys with imported key material. It indicates key + material that has been imported into the primary Region key but not all + of the replica Region keys. When this key material is imported in to all + of the replica Region keys, the key material state will change to + `PENDING_ROTATION`. Key material in + `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` or `PENDING_ROTATION` state + is not permanently associated with the KMS key. You can delete this key + material and import different key material in its place. The + `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` and `PENDING_ROTATION` values + are only used in symmetric encryption keys with imported key material. + The other values, `CURRENT` and `NON_CURRENT`, are used for all KMS keys + that support automatic or on-demand key rotation. + """ + expiration_model: str | None = ... + """ + Indicates if the key material is configured to automatically expire. + There are two possible values for this field: `KEY_MATERIAL_EXPIRES` and + `KEY_MATERIAL_DOES_NOT_EXPIRE`. For any key material that expires, the + expiration date and time is indicated in `ValidTo`. This field is only + present for symmetric encryption KMS keys with `EXTERNAL` origin. + """ + valid_to: datetime | None = ... + """ + Date and time at which the key material expires. This field is only + present for symmetric encryption KMS keys with `EXTERNAL` origin in + rotation list entries with an `ExpirationModel` value of + `KEY_MATERIAL_EXPIRES`. + """ + rotation_date: datetime | None = ... + """ + Date and time that the key material rotation completed. Formatted as + Unix time. This field is not present for the first key material or an + imported key material in `PENDING_ROTATION` state. + """ + rotation_type: str | None = ... + """ + Identifies whether the key material rotation was a scheduled [automatic + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-enable-disable.html) + or an [on-demand + rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotating-keys-on-demand.html). + This field is not present for the first key material or an imported key + material in `PENDING_ROTATION` state. + """ + +class RotationType(UnknownEnumMixin, StrEnum): + AUTOMATIC = "AUTOMATIC" + ON_DEMAND = "ON_DEMAND" + +@dataclass(kw_only=True) +class ScheduleKeyDeletionInput(_SerdeShape): + """Dataclass for ScheduleKeyDeletionInput structure.""" + + key_id: str | None = ... + """ + The unique identifier of the KMS key to delete. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + pending_window_in_days: int | None = ... + """ + The waiting period, specified in number of days. After the waiting + period ends, KMS deletes the KMS key. + + If the KMS key is a multi-Region primary key with replica keys, the + waiting period begins when the last of its replica keys is deleted. + Otherwise, the waiting period begins immediately. + + This value is optional. If you include a value, it must be between 7 and + 30, inclusive. If you do not include a value, it defaults to 30. You can + use the + [`kms:ScheduleKeyDeletionPendingWindowInDays`](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-schedule-key-deletion-pending-window-in-days) + condition key to further constrain the values that principals can + specify in the `PendingWindowInDays` parameter. + """ + +@dataclass(kw_only=True) +class ScheduleKeyDeletionOutput(_SerdeShape): + """Dataclass for ScheduleKeyDeletionOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the KMS key whose deletion is scheduled. + """ + deletion_date: datetime | None = ... + """ + The date and time after which KMS deletes the KMS key. + + If the KMS key is a multi-Region primary key with replica keys, this + field does not appear. The deletion date for the primary key isn't + known until its last replica key is deleted. + """ + key_state: str | None = ... + """ + The current status of the KMS key. + + For more information about how key state affects the use of a KMS key, + see [Key states of KMS + keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) + in the *Key Management Service Developer Guide*. + """ + pending_window_in_days: int | None = ... + """ + The waiting period before the KMS key is deleted. + + If the KMS key is a multi-Region primary key with replicas, the waiting + period begins when the last of its replica keys is deleted. Otherwise, + the waiting period begins immediately. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class SigningAlgorithmSpec(UnknownEnumMixin, StrEnum): + RSASSA_PSS_SHA_256 = "RSASSA_PSS_SHA_256" + RSASSA_PSS_SHA_384 = "RSASSA_PSS_SHA_384" + RSASSA_PSS_SHA_512 = "RSASSA_PSS_SHA_512" + RSASSA_PKCS1_V1_5_SHA_256 = "RSASSA_PKCS1_V1_5_SHA_256" + RSASSA_PKCS1_V1_5_SHA_384 = "RSASSA_PKCS1_V1_5_SHA_384" + RSASSA_PKCS1_V1_5_SHA_512 = "RSASSA_PKCS1_V1_5_SHA_512" + ECDSA_SHA_256 = "ECDSA_SHA_256" + ECDSA_SHA_384 = "ECDSA_SHA_384" + ECDSA_SHA_512 = "ECDSA_SHA_512" + SM2_DSA = "SM2DSA" + ML_DSA_SHAKE_256 = "ML_DSA_SHAKE_256" + ED25519_SHA_512 = "ED25519_SHA_512" + ED25519_PH_SHA_512 = "ED25519_PH_SHA_512" + +@dataclass(kw_only=True) +class SignInput(_SerdeShape): + """Dataclass for SignInput structure.""" + + key_id: str | None = ... + """ + Identifies an asymmetric KMS key. KMS uses the private key in the + asymmetric KMS key to sign the message. The `KeyUsage` type of the KMS + key must be `SIGN_VERIFY`. To find the `KeyUsage` of a KMS key, use the + DescribeKey operation. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + message: bytes | None = ... + """ + Specifies the message or message digest to sign. Messages can be 0-4096 + bytes. To sign a larger message, provide a message digest. + + If you provide a message digest, use the `DIGEST` value of `MessageType` + to prevent the digest from being hashed again while signing. + """ + message_type: str | None = ... + """ + Tells KMS whether the value of the `Message` parameter should be hashed + as part of the signing algorithm. Use `RAW` for unhashed messages; use + `DIGEST` for message digests, which are already hashed; use + `EXTERNAL_MU` for 64-byte representative μ used in ML-DSA signing as + defined in NIST FIPS 204 Section 6.2. + + When the value of `MessageType` is `RAW`, KMS uses the standard signing + algorithm, which begins with a hash function. When the value is + `DIGEST`, KMS skips the hashing step in the signing algorithm. When the + value is `EXTERNAL_MU` KMS skips the concatenated hashing of the public + key hash and the message done in the ML-DSA signing algorithm. + + Warning: + Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the + `Message` parameter is a message digest. If you use the `DIGEST` value + with an unhashed message, the security of the signing operation can be + compromised. + + When using ECC_NIST_EDWARDS25519 KMS keys: + + - ED25519_SHA_512 signing algorithm requires KMS `MessageType:RAW` + + - ED25519_PH_SHA_512 signing algorithm requires KMS `MessageType:DIGEST` + + Warning: + When you specify the ED25519_PH_SHA_512 signing algorithm with + `MessageType:DIGEST`, KMS still performs the SHA-512 prehash described + in [Step 1 of Section 7.8.1 in FIPS + 186-5](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf#page=39). + This means the input is hashed twice: once by you and once by KMS. + + When the value of `MessageType` is `DIGEST`, the length of the `Message` + value must match the length of hashed messages for the specified signing + algorithm. + + When the value of `MessageType` is `EXTERNAL_MU` the length of the + `Message` value must be 64 bytes. + + You can submit a message digest and omit the `MessageType` or specify + `RAW` so the digest is hashed again while signing. However, this can + cause verification failures when verifying with a system that assumes a + single hash. + + The hashing algorithm that `Sign` uses is based on the + `SigningAlgorithm` value. + + - Signing algorithms that end in SHA_256 use the SHA_256 hashing + algorithm. + + - Signing algorithms that end in SHA_384 use the SHA_384 hashing + algorithm. + + - Signing algorithms that end in SHA_512 use the SHA_512 hashing + algorithm. + + - Signing algorithms that end in SHAKE_256 use the SHAKE_256 hashing + algorithm. + + - SM2DSA uses the SM3 hashing algorithm. For details, see [Offline + verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + signing_algorithm: str | None = ... + """ + Specifies the signing algorithm to use when signing the message. + + Choose an algorithm that is compatible with the type and size of the + specified asymmetric KMS key. When signing with RSA key pairs, + RSASSA-PSS algorithms are preferred. We include RSASSA-PKCS1-v1_5 + algorithms for compatibility with existing applications. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class SignOutput(_SerdeShape): + """Dataclass for SignOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the asymmetric KMS key that was used to sign the message. + """ + signature: bytes | None = ... + """ + The cryptographic signature that was generated for the message. + + - When used with the supported RSA signing algorithms, the encoding of + this value is defined by [PKCS #1 in RFC + 8017](https://tools.ietf.org/html/rfc8017). + + - When used with the `ECDSA_SHA_256`, `ECDSA_SHA_384`, or + `ECDSA_SHA_512` signing algorithms, this value is a DER-encoded object + as defined by ANSI X9.62--2005 and [RFC 3279 Section + 2.2.3](https://tools.ietf.org/html/rfc3279#section-2.2.3). This is the + most commonly used signature format and is appropriate for most uses. + + When you use the HTTP API or the Amazon Web Services CLI, the value is + Base64-encoded. Otherwise, it is not Base64-encoded. + """ + signing_algorithm: str | None = ... + """The signing algorithm that was used to sign the message.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + A key-value pair. A tag consists of a tag key and a tag value. Tag keys + and tag values are both required, but tag values can be empty (null) + strings. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + For information about the rules that apply to tag keys and tag values, + see [User-Defined Tag + Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) + in the *Amazon Web Services Billing and Cost Management User Guide*. + """ + + tag_key: str + """The key of the tag.""" + tag_value: str + """The value of the tag.""" + +@dataclass(kw_only=True) +class TagException(ServiceError, _SerdeShape): + """The request was rejected because one or more tags are not valid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """Dataclass for TagResourceInput structure.""" + + key_id: str | None = ... + """ + Identifies a customer managed key in the account and Region. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + tags: list[Tag] | None = ... + """ + One or more tags. Each tag consists of a tag key and a tag value. The + tag value can be an empty (null) string. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + You cannot have more than one tag on a KMS key with the same tag key. If + you specify an existing tag key with a different tag value, KMS replaces + the current tag value with the specified one. + """ + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UnsupportedOperationException(ServiceError, _SerdeShape): + """ + The request was rejected because a specified parameter is not supported + or a specified resource is not valid for this operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """Dataclass for UntagResourceInput structure.""" + + key_id: str | None = ... + """ + Identifies the KMS key from which you are removing tags. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + tag_keys: list[str] | None = ... + """One or more tag keys. Specify only the tag keys, not the tag values.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateAliasInput(_SerdeShape): + """Dataclass for UpdateAliasInput structure.""" + + alias_name: str | None = ... + """ + Identifies the alias that is changing its KMS key. This value must begin + with `alias/` followed by the alias name, such as `alias/ExampleAlias`. + You cannot use `UpdateAlias` to change the alias name. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + """ + target_key_id: str | None = ... + """ + Identifies the [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) + to associate with the alias. You don't have permission to associate an + alias with an [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-key). + + The KMS key must be in the same Amazon Web Services account and Region + as the alias. Also, the new target KMS key must be the same type as the + current target KMS key (both symmetric or both asymmetric or both HMAC) + and they must have the same key usage. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + + To verify that the alias is mapped to the correct KMS key, use + ListAliases. + """ + +@dataclass(kw_only=True) +class UpdateAliasOutput(_SerdeShape): + """Dataclass for UpdateAliasOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateCustomKeyStoreInput(_SerdeShape): + """Dataclass for UpdateCustomKeyStoreInput structure.""" + + custom_key_store_id: str | None = ... + """ + Identifies the custom key store that you want to update. Enter the ID of + the custom key store. To find the ID of a custom key store, use the + DescribeCustomKeyStores operation. + """ + new_custom_key_store_name: str | None = ... + """ + Changes the friendly name of the custom key store to the value that you + specify. The custom key store name must be unique in the Amazon Web + Services account. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + + To change this value, the custom key store can be connected or + disconnected. + """ + key_store_password: str | None = ... + """ + Enter the current password of the `kmsuser` crypto user (CU) in the + CloudHSM cluster that is associated with the custom key store. This + parameter is valid only for custom key stores with a + `CustomKeyStoreType` of `AWS_CLOUDHSM`. + + This parameter tells KMS the current password of the `kmsuser` crypto + user (CU). It does not set or change the password of any users in the + CloudHSM cluster. + + To change this value, the CloudHSM key store must be disconnected. + """ + cloud_hsm_cluster_id: str | None = ... + """ + Associates the custom key store with a related CloudHSM cluster. This + parameter is valid only for custom key stores with a + `CustomKeyStoreType` of `AWS_CLOUDHSM`. + + Enter the cluster ID of the cluster that you used to create the custom + key store or a cluster that shares a backup history and has the same + cluster certificate as the original cluster. You cannot use this + parameter to associate a custom key store with an unrelated cluster. In + addition, the replacement cluster must [fulfill the + requirements](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) + for a cluster associated with a custom key store. To view the cluster + certificate of a cluster, use the + [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) + operation. + + To change this value, the CloudHSM key store must be disconnected. + """ + xks_proxy_uri_endpoint: str | None = ... + """ + Changes the URI endpoint that KMS uses to connect to your external key + store proxy (XKS proxy). This parameter is valid only for custom key + stores with a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + For external key stores with an `XksProxyConnectivity` value of + `PUBLIC_ENDPOINT`, the protocol must be HTTPS. + + For external key stores with an `XksProxyConnectivity` value of + `VPC_ENDPOINT_SERVICE`, specify `https://` followed by the private DNS + name associated with the VPC endpoint service. Each external key store + must use a different private DNS name. + + The combined `XksProxyUriEndpoint` and `XksProxyUriPath` values must be + unique in the Amazon Web Services account and Region. + + To change this value, the external key store must be disconnected. + """ + xks_proxy_uri_path: str | None = ... + """ + Changes the base path to the proxy APIs for this external key store. To + find this value, see the documentation for your external key manager and + external key store proxy (XKS proxy). This parameter is valid only for + custom key stores with a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + The value must start with `/` and must end with `/kms/xks/v1`, where + `v1` represents the version of the KMS external key store proxy API. You + can include an optional prefix between the required elements such as + `/`*`example`*`/kms/xks/v1`. + + The combined `XksProxyUriEndpoint` and `XksProxyUriPath` values must be + unique in the Amazon Web Services account and Region. + + You can change this value when the external key store is connected or + disconnected. + """ + xks_proxy_vpc_endpoint_service_name: str | None = ... + """ + Changes the name that KMS uses to identify the Amazon VPC endpoint + service for your external key store proxy (XKS proxy). This parameter is + valid when the `CustomKeyStoreType` is `EXTERNAL_KEY_STORE` and the + `XksProxyConnectivity` is `VPC_ENDPOINT_SERVICE`. + + To change this value, the external key store must be disconnected. + """ + xks_proxy_vpc_endpoint_service_owner: str | None = ... + """ + Changes the Amazon Web Services account ID that KMS uses to identify the + Amazon VPC endpoint service for your external key store proxy (XKS + proxy). This parameter is optional. If not specified, the current Amazon + Web Services account ID for the VPC endpoint service will not be + updated. + + To change this value, the external key store must be disconnected. + """ + xks_proxy_authentication_credential: ( + XksProxyAuthenticationCredentialType | None + ) = ... + """ + Changes the credentials that KMS uses to sign requests to the external + key store proxy (XKS proxy). This parameter is valid only for custom key + stores with a `CustomKeyStoreType` of `EXTERNAL_KEY_STORE`. + + You must specify both the `AccessKeyId` and `SecretAccessKey` value in + the authentication credential, even if you are only updating one value. + + This parameter doesn't establish or change your authentication + credentials on the proxy. It just tells KMS the credential that you + established with your external key store proxy. For example, if you + rotate the credential on your external key store proxy, you can use this + parameter to update the credential in KMS. + + You can change this value when the external key store is connected or + disconnected. + """ + xks_proxy_connectivity: str | None = ... + """ + Changes the connectivity setting for the external key store. To indicate + that the external key store proxy uses a Amazon VPC endpoint service to + communicate with KMS, specify `VPC_ENDPOINT_SERVICE`. Otherwise, specify + `PUBLIC_ENDPOINT`. + + If you change the `XksProxyConnectivity` to `VPC_ENDPOINT_SERVICE`, you + must also change the `XksProxyUriEndpoint` and add an + `XksProxyVpcEndpointServiceName` value. + + If you change the `XksProxyConnectivity` to `PUBLIC_ENDPOINT`, you must + also change the `XksProxyUriEndpoint` and specify a null or empty string + for the `XksProxyVpcEndpointServiceName` value. + + To change this value, the external key store must be disconnected. + """ + +@dataclass(kw_only=True) +class UpdateCustomKeyStoreOutput(_SerdeShape): + """Dataclass for UpdateCustomKeyStoreOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateKeyDescriptionInput(_SerdeShape): + """Dataclass for UpdateKeyDescriptionInput structure.""" + + key_id: str | None = ... + """ + Updates the description of the specified KMS key. + + Specify the key ID or key ARN of the KMS key. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + description: str | None = ... + """ + New description for the KMS key. + + Warning: + Do not include confidential or sensitive information in this field. This + field may be displayed in plaintext in CloudTrail logs and other output. + """ + +@dataclass(kw_only=True) +class UpdateKeyDescriptionOutput(_SerdeShape): + """Dataclass for UpdateKeyDescriptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdatePrimaryRegionInput(_SerdeShape): + """Dataclass for UpdatePrimaryRegionInput structure.""" + + key_id: str | None = ... + """ + Identifies the current primary key. When the operation completes, this + KMS key will be a replica key. + + Specify the key ID or key ARN of a multi-Region primary key. + + For example: + + - Key ID: `mrk-1234abcd12ab34cd56ef1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. + """ + primary_region: str | None = ... + """ + The Amazon Web Services Region of the new primary key. Enter the Region + ID, such as `us-east-1` or `ap-southeast-2`. There must be an existing + replica key in this Region. + + When the operation completes, the multi-Region key in this Region will + be the primary key. + """ + +@dataclass(kw_only=True) +class UpdatePrimaryRegionOutput(_SerdeShape): + """Dataclass for UpdatePrimaryRegionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class VerifyInput(_SerdeShape): + """Dataclass for VerifyInput structure.""" + + key_id: str | None = ... + """ + Identifies the asymmetric KMS key that will be used to verify the + signature. This must be the same KMS key that was used to generate the + signature. If you specify a different KMS key, the signature + verification fails. + + To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. + When using an alias name, prefix it with `"alias/"`. To specify a KMS + key in a different Amazon Web Services account, you must use the key ARN + or alias ARN. + + For example: + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Alias name: `alias/ExampleAlias` + + - Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias` + + To get the key ID and key ARN for a KMS key, use ListKeys or + DescribeKey. To get the alias name and alias ARN, use ListAliases. + """ + message: bytes | None = ... + """ + Specifies the message that was signed. You can submit a raw message of + up to 4096 bytes, or a hash digest of the message. If you submit a + digest, use the `MessageType` parameter with a value of `DIGEST`. + + If the message specified here is different from the message that was + signed, the signature verification fails. A message and its hash digest + are considered to be the same message. + """ + message_type: str | None = ... + """ + Tells KMS whether the value of the `Message` parameter should be hashed + as part of the signing algorithm. Use `RAW` for unhashed messages; use + `DIGEST` for message digests, which are already hashed; use + `EXTERNAL_MU` for 64-byte representative μ used in ML-DSA signing as + defined in NIST FIPS 204 Section 6.2. + + When the value of `MessageType` is `RAW`, KMS uses the standard signing + algorithm, which begins with a hash function. When the value is + `DIGEST`, KMS skips the hashing step in the signing algorithm. When the + value is `EXTERNAL_MU` KMS skips the concatenated hashing of the public + key hash and the message done in the ML-DSA signing algorithm. + + Warning: + Use the `DIGEST` or `EXTERNAL_MU` value only when the value of the + `Message` parameter is a message digest. If you use the `DIGEST` value + with an unhashed message, the security of the signing operation can be + compromised. + + When using ECC_NIST_EDWARDS25519 KMS keys: + + - ED25519_SHA_512 signing algorithm requires KMS `MessageType:RAW` + + - ED25519_PH_SHA_512 signing algorithm requires KMS `MessageType:DIGEST` + + Warning: + When you specify the ED25519_PH_SHA_512 signing algorithm with + `MessageType:DIGEST`, KMS still performs the SHA-512 prehash described + in [Step 1 of Section 7.8.1 in FIPS + 186-5](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf#page=39). + This means the input is hashed twice: once by you and once by KMS. + + When the value of `MessageType` is `DIGEST`, the length of the `Message` + value must match the length of hashed messages for the specified signing + algorithm. + + When the value of `MessageType` is `EXTERNAL_MU` the length of the + `Message` value must be 64 bytes. + + You can submit a message digest and omit the `MessageType` or specify + `RAW` so the digest is hashed again while signing. However, if the + signed message is hashed once while signing, but twice while verifying, + verification fails, even when the message hasn't changed. + + The hashing algorithm that `Verify` uses is based on the + `SigningAlgorithm` value. + + - Signing algorithms that end in SHA_256 use the SHA_256 hashing + algorithm. + + - Signing algorithms that end in SHA_384 use the SHA_384 hashing + algorithm. + + - Signing algorithms that end in SHA_512 use the SHA_512 hashing + algorithm. + + - Signing algorithms that end in SHAKE_256 use the SHAKE_256 hashing + algorithm. + + - SM2DSA uses the SM3 hashing algorithm. For details, see [Offline + verification with SM2 key + pairs](https://docs.aws.amazon.com/kms/latest/developerguide/offline-operations.html#key-spec-sm-offline-verification). + """ + signature: bytes | None = ... + """The signature that the `Sign` operation generated.""" + signing_algorithm: str | None = ... + """ + The signing algorithm that was used to sign the message. If you submit a + different algorithm, the signature verification fails. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class VerifyMacInput(_SerdeShape): + """Dataclass for VerifyMacInput structure.""" + + message: bytes | None = ... + """ + The message that will be used in the verification. Enter the same + message that was used to generate the HMAC. + + GenerateMac and `VerifyMac` do not provide special handling for message + digests. If you generated an HMAC for a hash digest of a message, you + must verify the HMAC for the same hash digest. + """ + key_id: str | None = ... + """ + The KMS key that will be used in the verification. + + Enter a key ID of the KMS key that was used to generate the HMAC. If you + identify a different KMS key, the `VerifyMac` operation fails. + """ + mac_algorithm: str | None = ... + """ + The MAC algorithm that will be used in the verification. Enter the same + MAC algorithm that was used to compute the HMAC. This algorithm must be + supported by the HMAC KMS key identified by the `KeyId` parameter. + """ + mac: bytes | None = ... + """ + The HMAC to verify. Enter the HMAC that was generated by the GenerateMac + operation when you specified the same message, HMAC KMS key, and MAC + algorithm as the values specified in this request. + """ + grant_tokens: list[str] | None = ... + """ + A list of grant tokens. + + Use a grant token when your permission to call this operation comes from + a new grant that has not yet achieved *eventual consistency*. For more + information, see [Grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + and [Using a grant + token](https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) + in the *Key Management Service Developer Guide*. + """ + dry_run: bool | None = ... + """ + Checks if your request will succeed. `DryRun` is an optional parameter. + + To learn more about how to use this parameter, see [Testing your + permissions](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) + in the *Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class VerifyMacOutput(_SerdeShape): + """Dataclass for VerifyMacOutput structure.""" + + key_id: str | None = ... + """The HMAC KMS key used in the verification.""" + mac_valid: bool = ... + """ + A Boolean value that indicates whether the HMAC was verified. A value of + `True` indicates that the HMAC (`Mac`) was generated with the specified + `Message`, HMAC KMS key (`KeyID`) and `MacAlgorithm.`. + + If the HMAC is not verified, the `VerifyMac` operation fails with a + `KMSInvalidMacException` exception. This exception indicates that one or + more of the inputs changed since the HMAC was computed. + """ + mac_algorithm: str | None = ... + """The MAC algorithm used in the verification.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class VerifyOutput(_SerdeShape): + """Dataclass for VerifyOutput structure.""" + + key_id: str | None = ... + """ + The Amazon Resource Name ([key + ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) + of the asymmetric KMS key that was used to verify the signature. + """ + signature_valid: bool = ... + """ + A Boolean value that indicates whether the signature was verified. A + value of `True` indicates that the `Signature` was produced by signing + the `Message` with the specified `KeyID` and `SigningAlgorithm.` If the + signature is not verified, the `Verify` operation fails with a + `KMSInvalidSignatureException` exception. + """ + signing_algorithm: str | None = ... + """The signing algorithm that was used to verify the signature.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class WrappingKeySpec(UnknownEnumMixin, StrEnum): + RSA_2048 = "RSA_2048" + RSA_3072 = "RSA_3072" + RSA_4096 = "RSA_4096" + SM2 = "SM2" + +@dataclass(kw_only=True) +class XksKeyAlreadyInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the (`XksKeyId`) is already associated + with another KMS key in this external key store. Each KMS key in an + external key store must be associated with a different external key. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksKeyConfigurationType(_SerdeShape): + """ + Information about the [external + key](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key) + that is associated with a KMS key in an external key store. + + This element appears in a CreateKey or DescribeKey response only for a + KMS key in an external key store. + + The *external key* is a symmetric encryption key that is hosted by an + external key manager outside of Amazon Web Services. When you use the + KMS key in an external key store in a cryptographic operation, the + cryptographic operation is performed in the external key manager using + the specified external key. For more information, see [External + key](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key) + in the *Key Management Service Developer Guide*. + """ + + id: str | None = ... + """ + The ID of the external key in its external key manager. This is the ID + that the external key store proxy uses to identify the external key. + """ + +@dataclass(kw_only=True) +class XksKeyInvalidConfigurationException(ServiceError, _SerdeShape): + """ + The request was rejected because the external key specified by the + `XksKeyId` parameter did not meet the configuration requirements for an + external key store. + + The external key must be an AES-256 symmetric key that is enabled and + performs encryption and decryption. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksKeyNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because the external key store proxy could not + find the external key. This exception is thrown when the value of the + `XksKeyId` parameter doesn't identify a key in the external key manager + associated with the external key proxy. + + Verify that the `XksKeyId` represents an existing key in the external + key manager. Use the key identifier that the external key store proxy + uses to identify the key. For details, see the documentation provided + with your external key store proxy or key manager. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyAuthenticationCredentialType(_SerdeShape): + """ + KMS uses the authentication credential to sign requests that it sends to + the external key store proxy (XKS proxy) on your behalf. You establish + these credentials on your external key store proxy and report them to + KMS. + + The `XksProxyAuthenticationCredential` includes two required elements. + """ + + access_key_id: str + """A unique identifier for the raw secret access key.""" + raw_secret_access_key: str + """ + A secret string of 43-64 characters. Valid characters are a-z, A-Z, 0-9, + /, +, and =. + """ + +@dataclass(kw_only=True) +class XksProxyConfigurationType(_SerdeShape): + """ + Detailed information about the external key store proxy (XKS proxy). + Your external key store proxy translates KMS requests into a format that + your external key manager can understand. These fields appear in a + DescribeCustomKeyStores response only when the `CustomKeyStoreType` is + `EXTERNAL_KEY_STORE`. + """ + + connectivity: str | None = ... + """ + Indicates whether the external key store proxy uses a public endpoint or + an Amazon VPC endpoint service to communicate with KMS. + """ + access_key_id: str | None = ... + """ + The part of the external key store [proxy authentication + credential](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#KMS-CreateCustomKeyStore-request-XksProxyAuthenticationCredential) + that uniquely identifies the secret access key. + """ + uri_endpoint: str | None = ... + """ + The URI endpoint for the external key store proxy. + + If the external key store proxy has a public endpoint, it is displayed + here. + + If the external key store proxy uses an Amazon VPC endpoint service + name, this field displays the private DNS name associated with the VPC + endpoint service. + """ + uri_path: str | None = ... + """The path to the external key store proxy APIs.""" + vpc_endpoint_service_name: str | None = ... + """ + The Amazon VPC endpoint service used to communicate with the external + key store proxy. This field appears only when the external key store + proxy uses an Amazon VPC endpoint service to communicate with KMS. + """ + vpc_endpoint_service_owner: str | None = ... + """ + The Amazon Web Services account ID that owns the Amazon VPC endpoint + service used to communicate with the external key store proxy (XKS). + This field appears only when the XKS uses an VPC endpoint service to + communicate with KMS. + """ + +class XksProxyConnectivityType(UnknownEnumMixin, StrEnum): + PUBLIC_ENDPOINT = "PUBLIC_ENDPOINT" + VPC_ENDPOINT_SERVICE = "VPC_ENDPOINT_SERVICE" + +@dataclass(kw_only=True) +class XksProxyIncorrectAuthenticationCredentialException(ServiceError, _SerdeShape): + """ + The request was rejected because the proxy credentials failed to + authenticate to the specified external key store proxy. The specified + external key store proxy rejected a status request from KMS due to + invalid credentials. This can indicate an error in the credentials or in + the identification of the external key store proxy. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyInvalidConfigurationException(ServiceError, _SerdeShape): + """ + The request was rejected because the external key store proxy is not + configured correctly. To identify the cause, see the error message that + accompanies the exception. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyInvalidResponseException(ServiceError, _SerdeShape): + """ + KMS cannot interpret the response it received from the external key + store proxy. The problem might be a poorly constructed response, but it + could also be a transient network issue. If you see this error + repeatedly, report it to the proxy vendor. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyUriEndpointInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the `XksProxyUriEndpoint` is already + associated with another external key store in this Amazon Web Services + Region. To identify the cause, see the error message that accompanies + the exception. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyUriInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the concatenation of the + `XksProxyUriEndpoint` and `XksProxyUriPath` is already associated with + another external key store in this Amazon Web Services Region. Each + external key store in a Region must use a unique external key store + proxy API address. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyUriUnreachableException(ServiceError, _SerdeShape): + """ + KMS was unable to reach the specified `XksProxyUriPath`. The path must + be reachable before you create the external key store or update its + settings. + + This exception is also thrown when the external key store proxy response + to a `GetHealthStatus` request indicates that all external key manager + instances are unavailable. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyVpcEndpointServiceInUseException(ServiceError, _SerdeShape): + """ + The request was rejected because the specified Amazon VPC endpoint + service is already associated with another external key store in this + Amazon Web Services Region. Each external key store in a Region must use + a different Amazon VPC endpoint service. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyVpcEndpointServiceInvalidConfigurationException( + ServiceError, _SerdeShape +): + """ + The request was rejected because the Amazon VPC endpoint service + configuration does not fulfill the requirements for an external key + store. To identify the cause, see the error message that accompanies the + exception and [review the + requirements](https://docs.aws.amazon.com/kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements) + for Amazon VPC endpoint service connectivity for an external key store. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class XksProxyVpcEndpointServiceNotFoundException(ServiceError, _SerdeShape): + """ + The request was rejected because KMS could not find the specified VPC + endpoint service. Use DescribeCustomKeyStores to verify the VPC endpoint + service name for the external key store. Also, confirm that the + `Allow principals` list for the VPC endpoint service includes the KMS + service principal for the Region, such as + `cks.kms.us-east-1.amazonaws.com`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +CANCEL_KEY_DELETION: APIOperation[CancelKeyDeletionInput, CancelKeyDeletionOutput] +CONNECT_CUSTOM_KEY_STORE: APIOperation[ + ConnectCustomKeyStoreInput, ConnectCustomKeyStoreOutput +] +CREATE_ALIAS: APIOperation[CreateAliasInput, CreateAliasOutput] +CREATE_CUSTOM_KEY_STORE: APIOperation[ + CreateCustomKeyStoreInput, CreateCustomKeyStoreOutput +] +CREATE_GRANT: APIOperation[CreateGrantInput, CreateGrantOutput] +CREATE_KEY: APIOperation[CreateKeyInput, CreateKeyOutput] +DECAPSULATE: APIOperation[DecapsulateInput, DecapsulateOutput] +DECRYPT: APIOperation[DecryptInput, DecryptOutput] +DELETE_ALIAS: APIOperation[DeleteAliasInput, DeleteAliasOutput] +DELETE_CUSTOM_KEY_STORE: APIOperation[ + DeleteCustomKeyStoreInput, DeleteCustomKeyStoreOutput +] +DELETE_IMPORTED_KEY_MATERIAL: APIOperation[ + DeleteImportedKeyMaterialInput, DeleteImportedKeyMaterialOutput +] +DERIVE_SHARED_SECRET: APIOperation[DeriveSharedSecretInput, DeriveSharedSecretOutput] +DESCRIBE_CUSTOM_KEY_STORES: APIOperation[ + DescribeCustomKeyStoresInput, DescribeCustomKeyStoresOutput +] +DESCRIBE_KEY: APIOperation[DescribeKeyInput, DescribeKeyOutput] +DISABLE_KEY: APIOperation[DisableKeyInput, DisableKeyOutput] +DISABLE_KEY_ROTATION: APIOperation[DisableKeyRotationInput, DisableKeyRotationOutput] +DISCONNECT_CUSTOM_KEY_STORE: APIOperation[ + DisconnectCustomKeyStoreInput, DisconnectCustomKeyStoreOutput +] +ENABLE_KEY: APIOperation[EnableKeyInput, EnableKeyOutput] +ENABLE_KEY_ROTATION: APIOperation[EnableKeyRotationInput, EnableKeyRotationOutput] +ENCAPSULATE: APIOperation[EncapsulateInput, EncapsulateOutput] +ENCRYPT: APIOperation[EncryptInput, EncryptOutput] +GENERATE_DATA_KEY: APIOperation[GenerateDataKeyInput, GenerateDataKeyOutput] +GENERATE_DATA_KEY_PAIR: APIOperation[ + GenerateDataKeyPairInput, GenerateDataKeyPairOutput +] +GENERATE_DATA_KEY_PAIR_WITHOUT_PLAINTEXT: APIOperation[ + GenerateDataKeyPairWithoutPlaintextInput, GenerateDataKeyPairWithoutPlaintextOutput +] +GENERATE_DATA_KEY_WITHOUT_PLAINTEXT: APIOperation[ + GenerateDataKeyWithoutPlaintextInput, GenerateDataKeyWithoutPlaintextOutput +] +GENERATE_MAC: APIOperation[GenerateMacInput, GenerateMacOutput] +GENERATE_RANDOM: APIOperation[GenerateRandomInput, GenerateRandomOutput] +GET_KEY_LAST_USAGE: APIOperation[GetKeyLastUsageInput, GetKeyLastUsageOutput] +GET_KEY_POLICY: APIOperation[GetKeyPolicyInput, GetKeyPolicyOutput] +GET_KEY_ROTATION_STATUS: APIOperation[ + GetKeyRotationStatusInput, GetKeyRotationStatusOutput +] +GET_PARAMETERS_FOR_IMPORT: APIOperation[ + GetParametersForImportInput, GetParametersForImportOutput +] +GET_PUBLIC_KEY: APIOperation[GetPublicKeyInput, GetPublicKeyOutput] +IMPORT_KEY_MATERIAL: APIOperation[ImportKeyMaterialInput, ImportKeyMaterialOutput] +LIST_ALIASES: APIOperation[ListAliasesInput, ListAliasesOutput] +LIST_GRANTS: APIOperation[ListGrantsInput, ListGrantsOutput] +LIST_KEY_POLICIES: APIOperation[ListKeyPoliciesInput, ListKeyPoliciesOutput] +LIST_KEY_ROTATIONS: APIOperation[ListKeyRotationsInput, ListKeyRotationsOutput] +LIST_KEYS: APIOperation[ListKeysInput, ListKeysOutput] +LIST_RESOURCE_TAGS: APIOperation[ListResourceTagsInput, ListResourceTagsOutput] +LIST_RETIRABLE_GRANTS: APIOperation[ListRetirableGrantsInput, ListRetirableGrantsOutput] +PUT_KEY_POLICY: APIOperation[PutKeyPolicyInput, PutKeyPolicyOutput] +RE_ENCRYPT: APIOperation[ReEncryptInput, ReEncryptOutput] +REPLICATE_KEY: APIOperation[ReplicateKeyInput, ReplicateKeyOutput] +RETIRE_GRANT: APIOperation[RetireGrantInput, RetireGrantOutput] +REVOKE_GRANT: APIOperation[RevokeGrantInput, RevokeGrantOutput] +ROTATE_KEY_ON_DEMAND: APIOperation[RotateKeyOnDemandInput, RotateKeyOnDemandOutput] +SCHEDULE_KEY_DELETION: APIOperation[ScheduleKeyDeletionInput, ScheduleKeyDeletionOutput] +SIGN: APIOperation[SignInput, SignOutput] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] +UPDATE_ALIAS: APIOperation[UpdateAliasInput, UpdateAliasOutput] +UPDATE_CUSTOM_KEY_STORE: APIOperation[ + UpdateCustomKeyStoreInput, UpdateCustomKeyStoreOutput +] +UPDATE_KEY_DESCRIPTION: APIOperation[ + UpdateKeyDescriptionInput, UpdateKeyDescriptionOutput +] +UPDATE_PRIMARY_REGION: APIOperation[UpdatePrimaryRegionInput, UpdatePrimaryRegionOutput] +VERIFY: APIOperation[VerifyInput, VerifyOutput] +VERIFY_MAC: APIOperation[VerifyMacInput, VerifyMacOutput] diff --git a/clients/aws-sdk-kms/src/aws_sdk_kms/user_agent.py b/clients/aws-sdk-kms/src/aws_sdk_kms/user_agent.py new file mode 100644 index 00000000..236f13d5 --- /dev/null +++ b/clients/aws-sdk-kms/src/aws_sdk_kms/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import KMSConfig + + +def aws_user_agent_plugin(config: KMSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="KMS", + ) + ) diff --git a/clients/aws-sdk-kms/tests/__init__.py b/clients/aws-sdk-kms/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-kms/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-kms/tests/_typecheck.py b/clients/aws-sdk-kms/tests/_typecheck.py new file mode 100644 index 00000000..dc89606e --- /dev/null +++ b/clients/aws-sdk-kms/tests/_typecheck.py @@ -0,0 +1,267 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_kms.models import ( + AliasListEntry, + CancelKeyDeletionInput, + CancelKeyDeletionOutput, + ConnectCustomKeyStoreInput, + ConnectCustomKeyStoreOutput, + CreateAliasInput, + CreateAliasOutput, + CreateCustomKeyStoreInput, + CreateCustomKeyStoreOutput, + CreateGrantInput, + CreateGrantOutput, + CreateKeyInput, + CreateKeyOutput, + CustomKeyStoresListEntry, + DecapsulateInput, + DecapsulateOutput, + DecryptInput, + DecryptOutput, + DeleteAliasInput, + DeleteAliasOutput, + DeleteCustomKeyStoreInput, + DeleteCustomKeyStoreOutput, + DeleteImportedKeyMaterialInput, + DeleteImportedKeyMaterialOutput, + DeriveSharedSecretInput, + DeriveSharedSecretOutput, + DescribeCustomKeyStoresInput, + DescribeCustomKeyStoresOutput, + DescribeKeyInput, + DescribeKeyOutput, + DisableKeyInput, + DisableKeyOutput, + DisableKeyRotationInput, + DisableKeyRotationOutput, + DisconnectCustomKeyStoreInput, + DisconnectCustomKeyStoreOutput, + EnableKeyInput, + EnableKeyOutput, + EnableKeyRotationInput, + EnableKeyRotationOutput, + EncapsulateInput, + EncapsulateOutput, + EncryptInput, + EncryptOutput, + GenerateDataKeyInput, + GenerateDataKeyOutput, + GenerateDataKeyPairInput, + GenerateDataKeyPairOutput, + GenerateDataKeyPairWithoutPlaintextInput, + GenerateDataKeyPairWithoutPlaintextOutput, + GenerateDataKeyWithoutPlaintextInput, + GenerateDataKeyWithoutPlaintextOutput, + GenerateMacInput, + GenerateMacOutput, + GenerateRandomInput, + GenerateRandomOutput, + GetKeyLastUsageInput, + GetKeyLastUsageOutput, + GetKeyPolicyInput, + GetKeyPolicyOutput, + GetKeyRotationStatusInput, + GetKeyRotationStatusOutput, + GetParametersForImportInput, + GetParametersForImportOutput, + GetPublicKeyInput, + GetPublicKeyOutput, + GrantConstraints, + GrantListEntry, + ImportKeyMaterialInput, + ImportKeyMaterialOutput, + KeyLastUsageData, + KeyListEntry, + KeyMetadata, + ListAliasesInput, + ListAliasesOutput, + ListGrantsInput, + ListGrantsOutput, + ListKeyPoliciesInput, + ListKeyPoliciesOutput, + ListKeyRotationsInput, + ListKeyRotationsOutput, + ListKeysInput, + ListKeysOutput, + ListResourceTagsInput, + ListResourceTagsOutput, + ListRetirableGrantsInput, + ListRetirableGrantsOutput, + MultiRegionConfiguration, + MultiRegionKey, + PutKeyPolicyInput, + PutKeyPolicyOutput, + ReEncryptInput, + ReEncryptOutput, + RecipientInfo, + ReplicateKeyInput, + ReplicateKeyOutput, + RetireGrantInput, + RetireGrantOutput, + RevokeGrantInput, + RevokeGrantOutput, + RotateKeyOnDemandInput, + RotateKeyOnDemandOutput, + RotationsListEntry, + ScheduleKeyDeletionInput, + ScheduleKeyDeletionOutput, + SignInput, + SignOutput, + Tag, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, + UpdateAliasInput, + UpdateAliasOutput, + UpdateCustomKeyStoreInput, + UpdateCustomKeyStoreOutput, + UpdateKeyDescriptionInput, + UpdateKeyDescriptionOutput, + UpdatePrimaryRegionInput, + UpdatePrimaryRegionOutput, + VerifyInput, + VerifyMacInput, + VerifyMacOutput, + VerifyOutput, + XksKeyConfigurationType, + XksProxyAuthenticationCredentialType, + XksProxyConfigurationType, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AliasListEntry() +CancelKeyDeletionInput() +CancelKeyDeletionOutput() +ConnectCustomKeyStoreInput() +ConnectCustomKeyStoreOutput() +CreateAliasInput() +CreateAliasOutput() +CreateCustomKeyStoreInput() +CreateCustomKeyStoreOutput() +CreateGrantInput() +CreateGrantOutput() +CreateKeyInput() +CreateKeyOutput() +CustomKeyStoresListEntry() +DecapsulateInput() +DecapsulateOutput() +DecryptInput() +DecryptOutput() +DeleteAliasInput() +DeleteAliasOutput() +DeleteCustomKeyStoreInput() +DeleteCustomKeyStoreOutput() +DeleteImportedKeyMaterialInput() +DeleteImportedKeyMaterialOutput() +DeriveSharedSecretInput() +DeriveSharedSecretOutput() +DescribeCustomKeyStoresInput() +DescribeCustomKeyStoresOutput() +DescribeKeyInput() +DescribeKeyOutput() +DisableKeyInput() +DisableKeyOutput() +DisableKeyRotationInput() +DisableKeyRotationOutput() +DisconnectCustomKeyStoreInput() +DisconnectCustomKeyStoreOutput() +EnableKeyInput() +EnableKeyOutput() +EnableKeyRotationInput() +EnableKeyRotationOutput() +EncapsulateInput() +EncapsulateOutput() +EncryptInput() +EncryptOutput() +GenerateDataKeyInput() +GenerateDataKeyOutput() +GenerateDataKeyPairInput() +GenerateDataKeyPairOutput() +GenerateDataKeyPairWithoutPlaintextInput() +GenerateDataKeyPairWithoutPlaintextOutput() +GenerateDataKeyWithoutPlaintextInput() +GenerateDataKeyWithoutPlaintextOutput() +GenerateMacInput() +GenerateMacOutput() +GenerateRandomInput() +GenerateRandomOutput() +GetKeyLastUsageInput() +GetKeyLastUsageOutput() +GetKeyPolicyInput() +GetKeyPolicyOutput() +GetKeyRotationStatusInput() +GetKeyRotationStatusOutput() +GetParametersForImportInput() +GetParametersForImportOutput() +GetPublicKeyInput() +GetPublicKeyOutput() +GrantConstraints() +GrantListEntry() +ImportKeyMaterialInput() +ImportKeyMaterialOutput() +KeyLastUsageData() +KeyListEntry() +KeyMetadata(key_id=_) +ListAliasesInput() +ListAliasesOutput() +ListGrantsInput() +ListGrantsOutput() +ListKeyPoliciesInput() +ListKeyPoliciesOutput() +ListKeyRotationsInput() +ListKeyRotationsOutput() +ListKeysInput() +ListKeysOutput() +ListResourceTagsInput() +ListResourceTagsOutput() +ListRetirableGrantsInput() +ListRetirableGrantsOutput() +MultiRegionConfiguration() +MultiRegionKey() +PutKeyPolicyInput() +PutKeyPolicyOutput() +RecipientInfo() +ReEncryptInput() +ReEncryptOutput() +ReplicateKeyInput() +ReplicateKeyOutput() +RetireGrantInput() +RetireGrantOutput() +RevokeGrantInput() +RevokeGrantOutput() +RotateKeyOnDemandInput() +RotateKeyOnDemandOutput() +RotationsListEntry() +ScheduleKeyDeletionInput() +ScheduleKeyDeletionOutput() +SignInput() +SignOutput() +Tag(tag_key=_, tag_value=_) +TagResourceInput() +TagResourceOutput() +UntagResourceInput() +UntagResourceOutput() +UpdateAliasInput() +UpdateAliasOutput() +UpdateCustomKeyStoreInput() +UpdateCustomKeyStoreOutput() +UpdateKeyDescriptionInput() +UpdateKeyDescriptionOutput() +UpdatePrimaryRegionInput() +UpdatePrimaryRegionOutput() +VerifyInput() +VerifyMacInput() +VerifyMacOutput() +VerifyOutput() +XksKeyConfigurationType() +XksProxyAuthenticationCredentialType(access_key_id=_, raw_secret_access_key=_) +XksProxyConfigurationType() diff --git a/clients/aws-sdk-kms/tests/test_awsjson11_protocol.py b/clients/aws-sdk-kms/tests/test_awsjson11_protocol.py new file mode 100644 index 00000000..5cbc46a6 --- /dev/null +++ b/clients/aws-sdk-kms/tests/test_awsjson11_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_kms.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-kms/tests/test_endpoints.py b/clients/aws-sdk-kms/tests/test_endpoints.py new file mode 100644 index 00000000..3a1d111d --- /dev/null +++ b/clients/aws-sdk-kms/tests/test_endpoints.py @@ -0,0 +1,431 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_kms.aio.client import AsyncKMSClient +from aws_sdk_kms.aio.config import AsyncKMSConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.kms#TrentService. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncKMSConfig: + return await AsyncKMSConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncKMSClient: + return AsyncKMSClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "af-south-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://kms-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://kms.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://kms-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://kms.cn-north-1.api.amazonwebservices.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://kms-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://kms.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://kms.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://kms-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-kms/tests/test_model_conformance.py b/clients/aws-sdk-kms/tests/test_model_conformance.py new file mode 100644 index 00000000..e86d7a5f --- /dev/null +++ b/clients/aws-sdk-kms/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_kms import models as _models +from aws_sdk_kms._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-lambda/src/aws_sdk_lambda/_private/schemas.py b/clients/aws-sdk-lambda/src/aws_sdk_lambda/_private/schemas.py index c597b1df..cad57c34 100644 --- a/clients/aws-sdk-lambda/src/aws_sdk_lambda/_private/schemas.py +++ b/clients/aws-sdk-lambda/src/aws_sdk_lambda/_private/schemas.py @@ -117,6 +117,7 @@ _BA = "BASIC_AUTH" _CCTA = "CLIENT_CERTIFICATE_TLS_AUTH" _SRCC = "SERVER_ROOT_CA_CERTIFICATE" +_OA = "OAUTHBEARER_AUTH" _KSRAC = "KafkaSchemaRegistryAccessConfig" _KSRACL = "KafkaSchemaRegistryAccessConfigList" _SRERF = "SchemaRegistryEventRecordFormat" @@ -325,7 +326,7 @@ _CT = "CheckpointToken" _CTl = "ClientToken" _DEA = "DurableExecutionArn" -_OA = "OperationAction" +_OAp = "OperationAction" _START = "START" _SUCCEED = "SUCCEED" _FAIL = "FAIL" @@ -336,6 +337,7 @@ _TS = "TimeoutSeconds" _HTS = "HeartbeatTimeoutSeconds" _TI = "TenantId" +_XATI = "XAmznTraceId" _CIO = "ChainedInvokeOptions" _RCe = "ReplayChildren" _COo = "ContextOptions" @@ -419,7 +421,6 @@ _OPu = "OutputPayload" _ES = "ExecutionStatus" _RUNNING = "RUNNING" -_XATI = "XAmznTraceId" _TH = "TraceHeader" _VWLP = "VersionWithLatestPublished" _GDEO = "GetDurableExecutionOutput" @@ -561,13 +562,22 @@ _EL = "EndpointLists" _Endp = "Endpoints" _SMES = "SelfManagedEventSource" +_KESMCM = "KafkaEventSourceMappingConsumptionMode" +_Str = "Stream" _SMKESC = "SelfManagedKafkaEventSourceConfig" +_CM = "ConsumptionMode" _SAT = "SourceAccessType" _VS = "VPC_SUBNET" _VSG = "VPC_SECURITY_GROUP" _SSA = "SASL_SCRAM_512_AUTH" _SSA_ = "SASL_SCRAM_256_AUTH" _VH = "VIRTUAL_HOST" +_OS_ = "OAUTHBEARER_SCOPE" +_OA_ = "OAUTHBEARER_AUDIENCE" +_OLC = "OAUTHBEARER_LOGICAL_CLUSTER" +_OIP = "OAUTHBEARER_IDENTITY_POOL" +_IA = "IAM_AUTH" +_IOA = "IAM_OAUTHBEARER_AUTH" _SAC = "SourceAccessConfiguration" _SACo = "SourceAccessConfigurations" _ESP = "EventSourcePosition" @@ -1037,11 +1047,11 @@ _smithyap = "smithy.api#streaming" _IAI = "InvokeAsyncInput" _cIAR = "com.amazonaws.lambda#InvokeAsyncRequest" -_IA = "InvokeArgs" +_IAn = "InvokeArgs" _HS = "HttpStatus" _IAO = "InvokeAsyncOutput" _cIARo = "com.amazonaws.lambda#InvokeAsyncResponse" -_IAn = "InvokeAsync" +_IAnv = "InvokeAsync" _RSIT = "ResponseStreamingInvocationType" _IWRSI = "InvokeWithResponseStreamInput" _cIWRSR = "com.amazonaws.lambda#InvokeWithResponseStreamRequest" @@ -1685,8 +1695,8 @@ n0, _KSRAT, 0, - (_BA, _CCTA, _SRCC), - ((-1, {_sV: _BA}), (-1, {_sV: _CCTA}), (-1, {_sV: _SRCC})), + (_BA, _CCTA, _SRCC, _OA), + ((-1, {_sV: _BA}), (-1, {_sV: _CCTA}), (-1, {_sV: _SRCC}), (-1, {_sV: _OA})), ) KAFKA_SCHEMA_REGISTRY_ACCESS_CONFIG: StaticSchema = ( @@ -2730,7 +2740,7 @@ OPERATION_ACTION: StaticSchema = ( 14, n0, - _OA, + _OAp, 0, (_START, _SUCCEED, _FAIL, _RETRY, _CANCEL), ( @@ -2755,13 +2765,15 @@ TENANT_ID: StaticSchema = (3, n0, _TI, 0) +X_AMZN_TRACE_ID: StaticSchema = (3, n0, _XATI, 0) + CHAINED_INVOKE_OPTIONS: StaticSchema = ( 18, n0, _CIO, 0, - (_FN, _TI), - ((NAMESPACED_FUNCTION_NAME, 1), (TENANT_ID, 0)), + (_FN, _TI, _XATI), + ((NAMESPACED_FUNCTION_NAME, 1), (TENANT_ID, 0), (X_AMZN_TRACE_ID, 0)), ) REPLAY_CHILDREN: StaticSchema = (2, n0, _RCe, 0) @@ -3081,8 +3093,6 @@ ), ) -X_AMZN_TRACE_ID: StaticSchema = (3, n0, _XATI, 0) - TRACE_HEADER: StaticSchema = (18, n0, _TH, 0, (_XATI,), ((X_AMZN_TRACE_ID, 0),)) VERSION_WITH_LATEST_PUBLISHED: StaticSchema = (3, n0, _VWLP, 0) @@ -3806,13 +3816,26 @@ ((ENDPOINTS, 0),), ) +KAFKA_EVENT_SOURCE_MAPPING_CONSUMPTION_MODE: StaticSchema = ( + 14, + n0, + _KESMCM, + 0, + (_Str, _Qu), + ((-1, {_sV: _Str}), (-1, {_sV: _Qu})), +) + SELF_MANAGED_KAFKA_EVENT_SOURCE_CONFIG: StaticSchema = ( 18, n0, _SMKESC, 0, - (_CGI, _SRC), - ((URI, 0), (KAFKA_SCHEMA_REGISTRY_CONFIG, 0)), + (_CGI, _SRC, _CM), + ( + (URI, 0), + (KAFKA_SCHEMA_REGISTRY_CONFIG, 0), + (KAFKA_EVENT_SOURCE_MAPPING_CONSUMPTION_MODE, 0), + ), ) SOURCE_ACCESS_TYPE: StaticSchema = ( @@ -3820,7 +3843,23 @@ n0, _SAT, 0, - (_BA, _VS, _VSG, _SSA, _SSA_, _VH, _CCTA, _SRCC), + ( + _BA, + _VS, + _VSG, + _SSA, + _SSA_, + _VH, + _CCTA, + _SRCC, + _OA, + _OS_, + _OA_, + _OLC, + _OIP, + _IA, + _IOA, + ), ( (-1, {_sV: _BA}), (-1, {_sV: _VS}), @@ -3830,6 +3869,13 @@ (-1, {_sV: _VH}), (-1, {_sV: _CCTA}), (-1, {_sV: _SRCC}), + (-1, {_sV: _OA}), + (-1, {_sV: _OS_}), + (-1, {_sV: _OA_}), + (-1, {_sV: _OLC}), + (-1, {_sV: _OIP}), + (-1, {_sV: _IA}), + (-1, {_sV: _IOA}), ), ) @@ -6732,7 +6778,7 @@ n0, _IAI, {_sSI: _cIAR, _sm: None}, - (_FN, _IA), + (_FN, _IAn), ((NAMESPACED_FUNCTION_NAME, 9), (BLOB_STREAM, 17)), ) @@ -6750,7 +6796,7 @@ INVOKE_ASYNC: StaticOperationSchema = ( 23, n0, - _IAn, + _IAnv, { _smithy: MappingProxyType( { @@ -6881,6 +6927,9 @@ INVOKE_WITH_RESPONSE_STREAM_INPUT, INVOKE_WITH_RESPONSE_STREAM_OUTPUT, ( + CODE_ARTIFACT_USER_DELETED_EXCEPTION, + CODE_ARTIFACT_USER_FAILED_EXCEPTION, + CODE_ARTIFACT_USER_PENDING_EXCEPTION, EC2_ACCESS_DENIED_EXCEPTION, EC2_THROTTLED_EXCEPTION, EC2_UNEXPECTED_EXCEPTION, diff --git a/clients/aws-sdk-lambda/src/aws_sdk_lambda/aio/client.py b/clients/aws-sdk-lambda/src/aws_sdk_lambda/aio/client.py index 8509dc58..785a39da 100644 --- a/clients/aws-sdk-lambda/src/aws_sdk_lambda/aio/client.py +++ b/clients/aws-sdk-lambda/src/aws_sdk_lambda/aio/client.py @@ -222,9 +222,15 @@ class AsyncLambdaClient(AsyncClient[AsyncLambdaConfig]): Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) in the **Lambda Developer Guide**. + Lambda Event Functions, previously known as Lambda functions, run your + code in response to events and API calls. In the Lambda API, the Amazon + Web Services SDKs, and the CLI, Event Functions are still called + *functions*, for example in `CreateFunction` and `Invoke`. You don't + need to change any existing code. + The *Lambda API Reference* provides information about each of the API - methods, including details about the parameters in each API request and - response. + methods for Lambda Event Functions, including details about the + parameters in each API request and response. You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. @@ -400,8 +406,8 @@ async def create_alias( """ Creates an [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - for a Lambda function version. Use aliases to provide clients with a - function identifier that you can update to invoke a different version. + for a Lambda Event Function version. Use aliases to provide clients with + a function identifier that you can update to invoke a different version. You can also map an alias to split invocation requests between two versions. Use the `RoutingConfig` parameter to specify a second version @@ -426,7 +432,7 @@ async def create_capacity_provider( ) -> CreateCapacityProviderOutput: """ Creates a capacity provider that manages compute resources for Lambda - functions + Event Functions Args: input: @@ -472,8 +478,8 @@ async def create_event_source_mapping( self, input: CreateEventSourceMappingInput, plugins: list[Plugin] | None = None ) -> CreateEventSourceMappingOutput: """ - Creates a mapping between an event source and an Lambda function. Lambda - reads items from the event source and invokes the function. + Creates a mapping between an event source and an Lambda Event Function. + Lambda reads items from the event source and invokes the function. For details about how to configure different event sources, see the following topics. @@ -568,7 +574,8 @@ async def create_function( self, input: CreateFunctionInput, plugins: list[Plugin] | None = None ) -> CreateFunctionOutput: """ - Creates a Lambda function. To create a function, you need a [deployment + Creates a Lambda Event Function. To create a function, you need a + [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role). @@ -678,7 +685,7 @@ async def delete_alias( self, input: DeleteAliasInput, plugins: list[Plugin] | None = None ) -> DeleteAliasOutput: """ - Deletes a Lambda function + Deletes a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -771,8 +778,8 @@ async def delete_function( self, input: DeleteFunctionInput, plugins: list[Plugin] | None = None ) -> DeleteFunctionOutput: """ - Deletes a Lambda function. To delete a specific function version, use - the `Qualifier` parameter. Otherwise, all versions and aliases are + Deletes a Lambda Event Function. To delete a specific function version, + use the `Qualifier` parameter. Otherwise, all versions and aliases are deleted. This doesn't require the user to have explicit permissions for DeleteAlias. @@ -827,7 +834,7 @@ async def delete_function_concurrency( self, input: DeleteFunctionConcurrencyInput, plugins: list[Plugin] | None = None ) -> DeleteFunctionConcurrencyOutput: """ - Removes a concurrent execution limit from a function. + Removes a concurrent execution limit from a Lambda Event Function. Args: input: @@ -993,7 +1000,7 @@ async def get_alias( self, input: GetAliasInput, plugins: list[Plugin] | None = None ) -> GetAliasOutput: """ - Returns details about a Lambda function + Returns details about a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -1164,10 +1171,10 @@ async def get_function( self, input: GetFunctionInput, plugins: list[Plugin] | None = None ) -> GetFunctionOutput: """ - Returns information about the function or function version, with a link - to download the deployment package that's valid for 10 minutes. If you - specify a function version, only details that are specific to that - version are returned. + Returns information about a Lambda Event Function or function version, + with a link to download the deployment package that's valid for 10 + minutes. If you specify a function version, only details that are + specific to that version are returned. Args: input: @@ -1233,9 +1240,10 @@ async def get_function_configuration( self, input: GetFunctionConfigurationInput, plugins: list[Plugin] | None = None ) -> GetFunctionConfigurationOutput: """ - Returns the version-specific settings of a Lambda function or version. - The output includes only options that can vary between versions of a - function. To modify these settings, use UpdateFunctionConfiguration. + Returns the version-specific settings of a Lambda Event Function or + version. The output includes only options that can vary between versions + of a function. To modify these settings, use + UpdateFunctionConfiguration. To get all of a function's details, including function-level settings, use GetFunction. @@ -1522,9 +1530,9 @@ async def invoke( self, input: InvokeInput, plugins: list[Plugin] | None = None ) -> InvokeOutput: """ - Invokes a Lambda function. You can invoke a function synchronously (and - wait for the response), or asynchronously. By default, Lambda invokes - your function synchronously (i.e. the`InvocationType` is + Invokes a Lambda Event Function. You can invoke a function synchronously + (and wait for the response), or asynchronously. By default, Lambda + invokes your function synchronously (i.e. the`InvocationType` is `RequestResponse`). To invoke a function asynchronously, set `InvocationType` to `Event`. Lambda passes the `ClientContext` object to your function for synchronous invocations only. @@ -1629,8 +1637,8 @@ async def invoke_with_response_stream( InvokeWithResponseStreamResponseEvent, InvokeWithResponseStreamOutput ]: """ - Configure your Lambda functions to stream response payloads back to - clients. For more information, see [Configuring a Lambda function to + Configure your Lambda Event Functions to stream response payloads back + to clients. For more information, see [Configuring a Lambda function to stream responses](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html). @@ -1667,7 +1675,7 @@ async def list_aliases( """ Returns a list of [aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - for a Lambda function. + for a Lambda Event Function. Args: input: @@ -1784,7 +1792,8 @@ async def list_function_event_invoke_configs( ) -> ListFunctionEventInvokeConfigsOutput: """ Retrieves a list of configurations for asynchronous invocation for a - function. + Lambda Event Function. To retrieve more configurations, use the `Marker` + parameter. To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. @@ -1809,7 +1818,7 @@ async def list_functions( self, input: ListFunctionsInput, plugins: list[Plugin] | None = None ) -> ListFunctionsOutput: """ - Returns a list of Lambda functions, with the version-specific + Returns a list of Lambda Event Functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call. Set `FunctionVersion` to `ALL` to include all published versions of each @@ -2014,9 +2023,9 @@ async def list_versions_by_function( ) -> ListVersionsByFunctionOutput: """ Returns a list of - [versions](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html), - with the version-specific configuration of each. Lambda returns up to 50 - versions per call. + [versions](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html) + of a Lambda Event Function, with the version-specific configuration of + each. Lambda returns up to 50 versions per call. Args: input: @@ -2064,9 +2073,9 @@ async def publish_version( """ Creates a [version](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html) - from the current code and configuration of a function. Use versions to - create a snapshot of your function code and configuration that doesn't - change. + from the current code and configuration of a Lambda Event Function. Use + versions to create a snapshot of your function code and configuration + that doesn't change. Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use UpdateFunctionCode or @@ -2120,8 +2129,8 @@ async def put_function_concurrency( self, input: PutFunctionConcurrencyInput, plugins: list[Plugin] | None = None ) -> PutFunctionConcurrencyOutput: """ - Sets the maximum number of simultaneous executions for a function, and - reserves capacity for that concurrency level. + Sets the maximum number of simultaneous executions for a Lambda Event + Function, and reserves capacity for that concurrency level. Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency @@ -2205,9 +2214,9 @@ async def put_function_recursion_config( plugins: list[Plugin] | None = None, ) -> PutFunctionRecursionConfigOutput: """ - Sets your function's [recursive loop + Sets the [recursive loop detection](https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html) - configuration. + configuration for a Lambda Event Function. When you configure a Lambda function to output to the same service or resource that invokes the function, it's possible to create an infinite @@ -2544,7 +2553,7 @@ async def update_alias( self, input: UpdateAliasInput, plugins: list[Plugin] | None = None ) -> UpdateAliasOutput: """ - Updates the configuration of a Lambda function + Updates the configuration of a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -2705,9 +2714,9 @@ async def update_function_code( self, input: UpdateFunctionCodeInput, plugins: list[Plugin] | None = None ) -> UpdateFunctionCodeOutput: """ - Updates a Lambda function's code. If code signing is enabled for the - function, the code package must be signed by a trusted publisher. For - more information, see [Configuring code signing for + Updates a Lambda Event Function's code. If code signing is enabled for + the function, the code package must be signed by a trusted publisher. + For more information, see [Configuring code signing for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html). If the function's package type is `Image`, then you must specify the @@ -2752,7 +2761,7 @@ async def update_function_configuration( plugins: list[Plugin] | None = None, ) -> UpdateFunctionConfigurationOutput: """ - Modify the version-specific settings of a Lambda function. + Modifies the version-specific settings of a Lambda Event Function. When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a @@ -2820,7 +2829,7 @@ async def update_function_url_config( self, input: UpdateFunctionUrlConfigInput, plugins: list[Plugin] | None = None ) -> UpdateFunctionUrlConfigOutput: """ - Updates the configuration for a Lambda function URL. + Updates the configuration for a function URL of a Lambda Event Function. Args: input: diff --git a/clients/aws-sdk-lambda/src/aws_sdk_lambda/client.py b/clients/aws-sdk-lambda/src/aws_sdk_lambda/client.py index 550a933e..113514fe 100644 --- a/clients/aws-sdk-lambda/src/aws_sdk_lambda/client.py +++ b/clients/aws-sdk-lambda/src/aws_sdk_lambda/client.py @@ -215,9 +215,15 @@ class LambdaClient(Client[LambdaConfig]): Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) in the **Lambda Developer Guide**. + Lambda Event Functions, previously known as Lambda functions, run your + code in response to events and API calls. In the Lambda API, the Amazon + Web Services SDKs, and the CLI, Event Functions are still called + *functions*, for example in `CreateFunction` and `Invoke`. You don't + need to change any existing code. + The *Lambda API Reference* provides information about each of the API - methods, including details about the parameters in each API request and - response. + methods for Lambda Event Functions, including details about the + parameters in each API request and response. You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. @@ -389,8 +395,8 @@ def create_alias( """ Creates an [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - for a Lambda function version. Use aliases to provide clients with a - function identifier that you can update to invoke a different version. + for a Lambda Event Function version. Use aliases to provide clients with + a function identifier that you can update to invoke a different version. You can also map an alias to split invocation requests between two versions. Use the `RoutingConfig` parameter to specify a second version @@ -415,7 +421,7 @@ def create_capacity_provider( ) -> CreateCapacityProviderOutput: """ Creates a capacity provider that manages compute resources for Lambda - functions + Event Functions Args: input: @@ -459,8 +465,8 @@ def create_event_source_mapping( self, input: CreateEventSourceMappingInput, plugins: list[Plugin] | None = None ) -> CreateEventSourceMappingOutput: """ - Creates a mapping between an event source and an Lambda function. Lambda - reads items from the event source and invokes the function. + Creates a mapping between an event source and an Lambda Event Function. + Lambda reads items from the event source and invokes the function. For details about how to configure different event sources, see the following topics. @@ -553,7 +559,8 @@ def create_function( self, input: CreateFunctionInput, plugins: list[Plugin] | None = None ) -> CreateFunctionOutput: """ - Creates a Lambda function. To create a function, you need a [deployment + Creates a Lambda Event Function. To create a function, you need a + [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role). @@ -661,7 +668,7 @@ def delete_alias( self, input: DeleteAliasInput, plugins: list[Plugin] | None = None ) -> DeleteAliasOutput: """ - Deletes a Lambda function + Deletes a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -750,8 +757,8 @@ def delete_function( self, input: DeleteFunctionInput, plugins: list[Plugin] | None = None ) -> DeleteFunctionOutput: """ - Deletes a Lambda function. To delete a specific function version, use - the `Qualifier` parameter. Otherwise, all versions and aliases are + Deletes a Lambda Event Function. To delete a specific function version, + use the `Qualifier` parameter. Otherwise, all versions and aliases are deleted. This doesn't require the user to have explicit permissions for DeleteAlias. @@ -806,7 +813,7 @@ def delete_function_concurrency( self, input: DeleteFunctionConcurrencyInput, plugins: list[Plugin] | None = None ) -> DeleteFunctionConcurrencyOutput: """ - Removes a concurrent execution limit from a function. + Removes a concurrent execution limit from a Lambda Event Function. Args: input: @@ -970,7 +977,7 @@ def get_alias( self, input: GetAliasInput, plugins: list[Plugin] | None = None ) -> GetAliasOutput: """ - Returns details about a Lambda function + Returns details about a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -1137,10 +1144,10 @@ def get_function( self, input: GetFunctionInput, plugins: list[Plugin] | None = None ) -> GetFunctionOutput: """ - Returns information about the function or function version, with a link - to download the deployment package that's valid for 10 minutes. If you - specify a function version, only details that are specific to that - version are returned. + Returns information about a Lambda Event Function or function version, + with a link to download the deployment package that's valid for 10 + minutes. If you specify a function version, only details that are + specific to that version are returned. Args: input: @@ -1206,9 +1213,10 @@ def get_function_configuration( self, input: GetFunctionConfigurationInput, plugins: list[Plugin] | None = None ) -> GetFunctionConfigurationOutput: """ - Returns the version-specific settings of a Lambda function or version. - The output includes only options that can vary between versions of a - function. To modify these settings, use UpdateFunctionConfiguration. + Returns the version-specific settings of a Lambda Event Function or + version. The output includes only options that can vary between versions + of a function. To modify these settings, use + UpdateFunctionConfiguration. To get all of a function's details, including function-level settings, use GetFunction. @@ -1487,9 +1495,9 @@ def invoke( self, input: InvokeInput, plugins: list[Plugin] | None = None ) -> InvokeOutput: """ - Invokes a Lambda function. You can invoke a function synchronously (and - wait for the response), or asynchronously. By default, Lambda invokes - your function synchronously (i.e. the`InvocationType` is + Invokes a Lambda Event Function. You can invoke a function synchronously + (and wait for the response), or asynchronously. By default, Lambda + invokes your function synchronously (i.e. the`InvocationType` is `RequestResponse`). To invoke a function asynchronously, set `InvocationType` to `Event`. Lambda passes the `ClientContext` object to your function for synchronous invocations only. @@ -1594,7 +1602,7 @@ def list_aliases( """ Returns a list of [aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - for a Lambda function. + for a Lambda Event Function. Args: input: @@ -1715,7 +1723,8 @@ def list_function_event_invoke_configs( ) -> ListFunctionEventInvokeConfigsOutput: """ Retrieves a list of configurations for asynchronous invocation for a - function. + Lambda Event Function. To retrieve more configurations, use the `Marker` + parameter. To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. @@ -1742,7 +1751,7 @@ def list_functions( plugins: list[Plugin] | None = None, ) -> ListFunctionsOutput: """ - Returns a list of Lambda functions, with the version-specific + Returns a list of Lambda Event Functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call. Set `FunctionVersion` to `ALL` to include all published versions of each @@ -1947,9 +1956,9 @@ def list_versions_by_function( ) -> ListVersionsByFunctionOutput: """ Returns a list of - [versions](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html), - with the version-specific configuration of each. Lambda returns up to 50 - versions per call. + [versions](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html) + of a Lambda Event Function, with the version-specific configuration of + each. Lambda returns up to 50 versions per call. Args: input: @@ -1997,9 +2006,9 @@ def publish_version( """ Creates a [version](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html) - from the current code and configuration of a function. Use versions to - create a snapshot of your function code and configuration that doesn't - change. + from the current code and configuration of a Lambda Event Function. Use + versions to create a snapshot of your function code and configuration + that doesn't change. Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use UpdateFunctionCode or @@ -2053,8 +2062,8 @@ def put_function_concurrency( self, input: PutFunctionConcurrencyInput, plugins: list[Plugin] | None = None ) -> PutFunctionConcurrencyOutput: """ - Sets the maximum number of simultaneous executions for a function, and - reserves capacity for that concurrency level. + Sets the maximum number of simultaneous executions for a Lambda Event + Function, and reserves capacity for that concurrency level. Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency @@ -2138,9 +2147,9 @@ def put_function_recursion_config( plugins: list[Plugin] | None = None, ) -> PutFunctionRecursionConfigOutput: """ - Sets your function's [recursive loop + Sets the [recursive loop detection](https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html) - configuration. + configuration for a Lambda Event Function. When you configure a Lambda function to output to the same service or resource that invokes the function, it's possible to create an infinite @@ -2469,7 +2478,7 @@ def update_alias( self, input: UpdateAliasInput, plugins: list[Plugin] | None = None ) -> UpdateAliasOutput: """ - Updates the configuration of a Lambda function + Updates the configuration of a Lambda Event Function [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html). Args: @@ -2626,9 +2635,9 @@ def update_function_code( self, input: UpdateFunctionCodeInput, plugins: list[Plugin] | None = None ) -> UpdateFunctionCodeOutput: """ - Updates a Lambda function's code. If code signing is enabled for the - function, the code package must be signed by a trusted publisher. For - more information, see [Configuring code signing for + Updates a Lambda Event Function's code. If code signing is enabled for + the function, the code package must be signed by a trusted publisher. + For more information, see [Configuring code signing for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html). If the function's package type is `Image`, then you must specify the @@ -2673,7 +2682,7 @@ def update_function_configuration( plugins: list[Plugin] | None = None, ) -> UpdateFunctionConfigurationOutput: """ - Modify the version-specific settings of a Lambda function. + Modifies the version-specific settings of a Lambda Event Function. When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a @@ -2739,7 +2748,7 @@ def update_function_url_config( self, input: UpdateFunctionUrlConfigInput, plugins: list[Plugin] | None = None ) -> UpdateFunctionUrlConfigOutput: """ - Updates the configuration for a Lambda function URL. + Updates the configuration for a function URL of a Lambda Event Function. Args: input: diff --git a/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.py b/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.py index 894a386e..0dc910bd 100644 --- a/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.py +++ b/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.py @@ -243,6 +243,7 @@ class ServiceError(ModeledError): "InvokeWithResponseStreamResponseEventPayloadChunk": "INVOKE_WITH_RESPONSE_STREAM_RESPONSE_EVENT", "InvokeWithResponseStreamResponseEventInvokeComplete": "INVOKE_WITH_RESPONSE_STREAM_RESPONSE_EVENT", "InvokeWithResponseStreamResponseEventUnknown": "INVOKE_WITH_RESPONSE_STREAM_RESPONSE_EVENT", + "KafkaEventSourceMappingConsumptionMode": "KAFKA_EVENT_SOURCE_MAPPING_CONSUMPTION_MODE", "KafkaSchemaRegistryAccessConfig": "KAFKA_SCHEMA_REGISTRY_ACCESS_CONFIG", "KafkaSchemaRegistryAuthType": "KAFKA_SCHEMA_REGISTRY_AUTH_TYPE", "KafkaSchemaRegistryConfig": "KAFKA_SCHEMA_REGISTRY_CONFIG", @@ -654,6 +655,7 @@ class ServiceError(ModeledError): "KMSDisabledException", "KMSInvalidStateException", "KMSNotFoundException", + "KafkaEventSourceMappingConsumptionMode", "KafkaSchemaRegistryAccessConfig", "KafkaSchemaRegistryAuthType", "KafkaSchemaRegistryConfig", @@ -1535,6 +1537,9 @@ def __dir__(): _operation_data["INVOKE_WITH_RESPONSE_STREAM"] = ( "INVOKE_WITH_RESPONSE_STREAM", ( + "com.amazonaws.lambda#CodeArtifactUserDeletedException", + "com.amazonaws.lambda#CodeArtifactUserFailedException", + "com.amazonaws.lambda#CodeArtifactUserPendingException", "com.amazonaws.lambda#EC2AccessDeniedException", "com.amazonaws.lambda#EC2ThrottledException", "com.amazonaws.lambda#EC2UnexpectedException", diff --git a/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.pyi b/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.pyi index 38385226..b1097288 100644 --- a/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.pyi +++ b/clients/aws-sdk-lambda/src/aws_sdk_lambda/models.pyi @@ -624,6 +624,17 @@ class ChainedInvokeOptions(_SerdeShape): """The name or ARN of the Lambda function to invoke.""" tenant_id: str | None = ... """The tenant identifier for the chained invocation.""" + x_amzn_trace_id: str | None = ... + """ + The X-Ray trace header to use when starting the chained invocation. This + parameter is optional. If you omit this value, the child invocation + inherits the parent durable execution's trace header. + + Specify this value on the `START` update for the chained invocation + operation. For more information about the header format, see [Tracing + header](https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader) + in the *X-Ray Developer Guide*. + """ @dataclass(kw_only=True) class ChainedInvokeStartedDetails(_SerdeShape): @@ -1263,6 +1274,9 @@ class CreateEventSourceMappingInput(_SerdeShape): Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set `BatchSize` to a value greater than 10, you must set `MaximumBatchingWindowInSeconds` to at least 1. + + Not supported for Kafka event source mappings when `ConsumptionMode` is + `Queue`. """ parallelization_factor: int | None = ... """ @@ -1275,11 +1289,17 @@ class CreateEventSourceMappingInput(_SerdeShape): Amazon Kinesis and Amazon DynamoDB Stream event sources. `AT_TIMESTAMP` is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka. + + Not supported for Kafka event source mappings when `ConsumptionMode` is + `Queue`. """ starting_position_timestamp: datetime | None = ... """ With `StartingPosition` set to `AT_TIMESTAMP`, the time from which to start reading. `StartingPositionTimestamp` cannot be in the future. + + Not supported for Kafka event source mappings when `ConsumptionMode` is + `Queue`. """ destination_config: DestinationConfig | None = ... """ @@ -1304,6 +1324,11 @@ class CreateEventSourceMappingInput(_SerdeShape): Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + + For Kafka `Stream` consumption mode, the default is `-1` (infinite + retries; capped at 10 when an on-failure destination is configured). For + Kafka `Queue` consumption mode, the default is `0`, and if no on-failure + destination is configured the Kafka broker performs retries. """ tags: dict[str, str] | None = ... """A list of tags to apply to the event source mapping.""" @@ -4171,21 +4196,22 @@ class GetDurableExecutionOutput(_SerdeShape): """ input_payload: str | None = ... """ - The JSON input payload that was provided when the durable execution was - started. For asynchronous invocations, this is limited to 256 KB. For - synchronous invocations, this can be up to 6 MB. + The JSON input payload that you provided when you started the durable + execution. Asynchronous invocations support up to 1 MB, and synchronous + invocations support up to 6 MB. """ result: str | None = ... """ The JSON result returned by the durable execution if it completed successfully. This field is only present when the execution status is - `SUCCEEDED`. The result is limited to 256 KB. + `SUCCEEDED`. Asynchronous invocations support up to 1 MB, and + synchronous invocations support up to 6 MB. """ error: ErrorObject | None = ... """ Error information if the durable execution failed. This field is only present when the execution status is `FAILED`, `TIMED_OUT`, or - `STOPPED`. The combined size of all error fields is limited to 256 KB. + `STOPPED`. The combined size of all error fields is limited to 1 MB. """ start_timestamp: datetime """ @@ -5883,6 +5909,10 @@ class _InvokeWithResponseStreamResponseEventDeserializer: self, deserializer: ShapeDeserializer ) -> InvokeWithResponseStreamResponseEvent: ... +class KafkaEventSourceMappingConsumptionMode(UnknownEnumMixin, StrEnum): + STREAM = "Stream" + QUEUE = "Queue" + @dataclass(kw_only=True) class KafkaSchemaRegistryAccessConfig(_SerdeShape): """ @@ -5900,7 +5930,27 @@ class KafkaSchemaRegistryAccessConfig(_SerdeShape): """ type: str | None = ... - """The type of authentication Lambda uses to access your schema registry.""" + """ + The type of authentication Lambda uses to access your schema registry. + + - `BASIC_AUTH` -- The Secrets Manager ARN of your secret key used for + basic authentication with your Confluent schema registry. + + - `CLIENT_CERTIFICATE_TLS_AUTH` -- The Secrets Manager ARN of your + secret key containing the certificate chain (X.509 PEM), private key + (PKCS#8 PEM), and private key password (optional) used for mutual TLS + authentication with your Confluent schema registry. + + - `SERVER_ROOT_CA_CERTIFICATE` -- The Secrets Manager ARN of your secret + key containing the root CA certificate (X.509 PEM) used for TLS + encryption with your Confluent schema registry. + + - `OAUTHBEARER_AUTH` -- The Secrets Manager ARN of your secret key + containing the OAuth 2.0 credentials that Lambda uses to acquire an + access token for your Confluent schema registry. For the contents of + the secret, see [Configuring the OAuth + secret](https://docs.aws.amazon.com/lambda/latest/dg/kafka-cluster-auth.html#smaa-auth-oauth-secret). + """ uri: str | None = ... """ The URI of the secret (Secrets Manager secret ARN) to authenticate with @@ -5911,6 +5961,7 @@ class KafkaSchemaRegistryAuthType(UnknownEnumMixin, StrEnum): BASIC_AUTH = "BASIC_AUTH" CLIENT_CERTIFICATE_TLS_AUTH = "CLIENT_CERTIFICATE_TLS_AUTH" SERVER_ROOT_CA_CERTIFICATE = "SERVER_ROOT_CA_CERTIFICATE" + OAUTHBEARER_AUTH = "OAUTHBEARER_AUTH" @dataclass(kw_only=True) class KafkaSchemaRegistryConfig(_SerdeShape): @@ -6331,8 +6382,9 @@ class ListDurableExecutionsByFunctionInput(_SerdeShape): """ qualifier: str | None = ... """ - The function version or alias. If not specified, lists executions for - the $LATEST version. + The function version to filter executions by. If you don't specify a + qualifier, this operation returns executions across all versions of the + Lambda function. """ durable_execution_name: str | None = ... """ @@ -7095,12 +7147,14 @@ class OperationUpdate(_SerdeShape): """ The payload for successful operations. The maximum payload size is 6 MB for synchronous `EXECUTION` operations (RequestResponse invocationType), - 1 MB for asynchronous `EXECUTION` (Event invocationType) and - `CHAINED_INVOKE` operations, and 256 KB for `CONTEXT`, `STEP`, `WAIT`, - and `CALLBACK` operations. + and 1 MB for asynchronous `EXECUTION` (Event invocationType), + `CHAINED_INVOKE`, `CONTEXT`, `STEP`, `WAIT`, and `CALLBACK` operations. """ error: ErrorObject | None = ... - """The error information for failed operations.""" + """ + The error information for failed operations. The combined size of all + error fields is limited to 1 MB. + """ context_options: ContextOptions | None = ... """Options for context operations.""" step_options: StepOptions | None = ... @@ -8511,6 +8565,29 @@ class SelfManagedKafkaEventSourceConfig(_SerdeShape): """ schema_registry_config: KafkaSchemaRegistryConfig | None = ... """Specific configuration settings for a Kafka schema registry.""" + consumption_mode: str | None = ... + """ + The mode that Lambda uses to consume records from your self-managed + Apache Kafka topic. The default is `Stream`. + + - `Stream` -- Lambda consumes records using a Kafka consumer group and + preserves the order of records within each partition. This is the + default when you omit `ConsumptionMode`. + + - `Queue` -- Lambda consumes records using a Kafka share group. Multiple + consumers can process records from the same partitions concurrently. + Queue mode does not preserve per-partition order. Queue mode requires + an Apache Kafka cluster running version 4.2 or later with share groups + enabled. + + You cannot change `ConsumptionMode` after you create the event source + mapping. To use a different consumption mode, create a new event source + mapping. + + When `ConsumptionMode` is `Queue`, the `StartingPosition`, + `StartingPositionTimestamp`, and `MaximumBatchingWindowInSeconds` + parameters are not supported. + """ @dataclass(kw_only=True) class SendDurableExecutionCallbackFailureInput(_SerdeShape): @@ -8519,7 +8596,10 @@ class SendDurableExecutionCallbackFailureInput(_SerdeShape): callback_id: str | None = ... """The unique identifier for the callback operation.""" error: ErrorObject | None = ... - """Error details describing why the callback operation failed.""" + """ + Error details describing why the callback operation failed. The combined + size of all error fields is limited to 1 MB. + """ @dataclass(kw_only=True) class SendDurableExecutionCallbackFailureOutput(_SerdeShape): @@ -8561,7 +8641,7 @@ class SendDurableExecutionCallbackSuccessInput(_SerdeShape): result: bytes | None = ... """ The result data from the successful callback operation. Maximum size is - 256 KB. + 1 MB. """ @dataclass(kw_only=True) @@ -8791,6 +8871,44 @@ class SourceAccessConfiguration(_SerdeShape): Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. + + - `OAUTHBEARER_AUTH` -- (Self-managed Apache Kafka) The Secrets Manager + ARN of your secret key containing the OAuth 2.0 credentials that + Lambda uses for SASL/OAUTHBEARER authentication with your Apache Kafka + brokers. For the contents of the secret, see [Configuring the OAuth + secret](https://docs.aws.amazon.com/lambda/latest/dg/kafka-cluster-auth.html#smaa-auth-oauth-secret). + + - `OAUTHBEARER_SCOPE` -- (Self-managed Apache Kafka) The OAuth 2.0 scope + that Lambda requests when it acquires an access token. The `URI` field + holds the scope value, not a secret ARN. This type requires + `OAUTHBEARER_AUTH`. + + - `OAUTHBEARER_AUDIENCE` -- (Self-managed Apache Kafka) The OAuth 2.0 + audience that Lambda requests when it acquires an access token. The + `URI` field holds the audience value, not a secret ARN. This type + requires either `OAUTHBEARER_AUTH` or `IAM_OAUTHBEARER_AUTH`. + + - `OAUTHBEARER_LOGICAL_CLUSTER` -- (Self-managed Apache Kafka) The + logical cluster identifier that Lambda sends to a Confluent Cloud + broker. The `URI` field holds the identifier, not a secret ARN. This + type requires `OAUTHBEARER_AUTH`. + + - `OAUTHBEARER_IDENTITY_POOL` -- (Self-managed Apache Kafka) The + identity pool identifier that Lambda sends to a Confluent Cloud + broker. The `URI` field holds the identifier, not a secret ARN. This + type requires `OAUTHBEARER_AUTH`. + + - `IAM_AUTH` -- (Self-managed Apache Kafka) Authenticate with Identity + and Access Management (IAM). Your function's execution role signs + each connection, so there is no secret to provide. Omit the `URI` + field for this type. + + - `IAM_OAUTHBEARER_AUTH` -- (Self-managed Apache Kafka) Authenticate + with an Amazon Web Services web identity token over SASL/OAUTHBEARER. + Lambda requests the token for your function's execution role, so + there is no secret to provide. Omit the `URI` field for this type. + This type requires `OAUTHBEARER_AUDIENCE` and does not support the + other `OAUTHBEARER` types. """ uri: str | None = ... """ @@ -8807,6 +8925,13 @@ class SourceAccessType(UnknownEnumMixin, StrEnum): VIRTUAL_HOST = "VIRTUAL_HOST" CLIENT_CERTIFICATE_TLS_AUTH = "CLIENT_CERTIFICATE_TLS_AUTH" SERVER_ROOT_CA_CERTIFICATE = "SERVER_ROOT_CA_CERTIFICATE" + OAUTHBEARER_AUTH = "OAUTHBEARER_AUTH" + OAUTHBEARER_SCOPE = "OAUTHBEARER_SCOPE" + OAUTHBEARER_AUDIENCE = "OAUTHBEARER_AUDIENCE" + OAUTHBEARER_LOGICAL_CLUSTER = "OAUTHBEARER_LOGICAL_CLUSTER" + OAUTHBEARER_IDENTITY_POOL = "OAUTHBEARER_IDENTITY_POOL" + IAM_AUTH = "IAM_AUTH" + IAM_OAUTHBEARER_AUTH = "IAM_OAUTHBEARER_AUTH" class State(UnknownEnumMixin, StrEnum): PENDING = "Pending" @@ -8913,7 +9038,10 @@ class StopDurableExecutionInput(_SerdeShape): durable_execution_arn: str | None = ... """The Amazon Resource Name (ARN) of the durable execution.""" error: ErrorObject | None = ... - """Optional error details explaining why the execution is being stopped.""" + """ + Optional error details explaining why the execution is being stopped. + The combined size of all error fields is limited to 1 MB. + """ @dataclass(kw_only=True) class StopDurableExecutionOutput(_SerdeShape): @@ -9346,6 +9474,9 @@ class UpdateEventSourceMappingInput(_SerdeShape): Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set `BatchSize` to a value greater than 10, you must set `MaximumBatchingWindowInSeconds` to at least 1. + + Not supported for Kafka event source mappings when `ConsumptionMode` is + `Queue`. """ parallelization_factor: int | None = ... """ @@ -9375,6 +9506,11 @@ class UpdateEventSourceMappingInput(_SerdeShape): Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + + For Kafka `Stream` consumption mode, the default is `-1` (infinite + retries; capped at 10 when an on-failure destination is configured). For + Kafka `Queue` consumption mode, the default is `0`, and if no on-failure + destination is configured the Kafka broker performs retries. """ tumbling_window_in_seconds: int | None = ... """ diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/_private/schemas.py b/clients/aws-sdk-polly/src/aws_sdk_polly/_private/schemas.py index f2af1aff..ff2323f9 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/_private/schemas.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/_private/schemas.py @@ -7,6 +7,7 @@ n0 = "com.amazonaws.polly" _A = "Alphabet" +_ARN = "AmazonResourceName" _AC = "AudioChunk" _AE = "AudioEvent" _sP = "smithy.api#eventPayload" @@ -247,6 +248,16 @@ _Le = "Lennart" _Lor = "Lorenzo" _Ti = "Tiffany" +_Arj = "Arjun" +_Carl = "Carlos" +_Caro = "Carolina" +_Cu = "Curtis" +_Hy = "Hyunduk" +_Ken = "Kenneth" +_Kia = "Kiara" +_Leo = "Leo" +_Nat = "Nate" +_Tin = "Tina" _LNa = "LanguageName" _VN = "VoiceName" _EL = "EngineList" @@ -260,6 +271,7 @@ _INTE = "InvalidNextTokenException" _DV = "DescribeVoices" _ENSE = "EngineNotSupportedException" +_EMx = "ExceptionMessage" _Fo = "Force" _FSC = "FlushStreamConfiguration" _GLI = "GetLexiconInput" @@ -333,6 +345,7 @@ _ISRE = "InvalidSampleRateException" _ISTAE = "InvalidSnsTopicArnException" _ISE = "InvalidSsmlException" +_ITPE = "InvalidTagParameterException" _LNSE = "LanguageNotSupportedException" _LD = "LexiconDescription" _At = "Attributes" @@ -348,6 +361,47 @@ _STy = "SynthesisTasks" _LSSTO = "ListSpeechSynthesisTasksOutput" _LSST = "ListSpeechSynthesisTasks" +_LTFRI = "ListTagsForResourceInput" +_RA = "ResourceArn" +_ar = "arn" +_TK = "TagKey" +_TV = "TagValue" +_TM = "TagMap" +_k = "key" +_va = "value" +_LTFRO = "ListTagsForResourceOutput" +_Tag = "Tags" +_RI = "ResourceId" +_RT = "ResourceType" +_LEXICON = "LEXICON" +_l = "lexicon" +_RNFE = "ResourceNotFoundException" +_rI = "resourceId" +_rT = "resourceType" +_TR = "ThrottlingReason" +_r = "reason" +_re = "resource" +_TRL = "ThrottlingReasonList" +_TE = "ThrottlingException" +_aQE = "aws.protocols#awsQueryError" +_tR = "throttlingReasons" +_VEFM = "ValidationExceptionFieldMessage" +_VEFN = "ValidationExceptionFieldName" +_VEF = "ValidationExceptionField" +_na = "name" +_VEFL = "ValidationExceptionFieldList" +_VER = "ValidationExceptionReason" +_UO = "UNSUPPORTED_OPERATION" +_uO = "unsupportedOperation" +_FVF = "FIELD_VALIDATION_FAILED" +_fVF = "fieldValidationFailed" +_OTHER = "OTHER" +_o = "other" +_IIE = "INVALID_INBOUND_EVENT" +_iIE = "invalidInboundEvent" +_VE = "ValidationException" +_fi = "fields" +_LTFR = "ListTagsForResource" _MNSFFE = "MarksNotSupportedForFormatException" _MLLEE = "MaxLexemeLengthExceededException" _MLNEE = "MaxLexiconsNumberExceededException" @@ -355,6 +409,7 @@ _OSKP = "OutputS3KeyPrefix" _PLI = "PutLexiconInput" _PLO = "PutLexiconOutput" +_TMTE = "TooManyTagsException" _UPAE = "UnsupportedPlsAlphabetException" _UPLE = "UnsupportedPlsLanguageException" _PL = "PutLexicon" @@ -370,7 +425,7 @@ _qC = "quotaCode" _sC = "serviceCode" _Te = "Text" -_TE = "TextEvent" +_TEe = "TextEvent" _SSSSAS = "StartSpeechSynthesisStreamActionStream" _SSSSI = "StartSpeechSynthesisStreamInput" _sH = "smithy.api#httpHeader" @@ -383,29 +438,6 @@ _ASc = "ActionStream" _sPm = "smithy.api#httpPayload" _SCE = "StreamClosedEvent" -_TR = "ThrottlingReason" -_r = "reason" -_re = "resource" -_TRL = "ThrottlingReasonList" -_TEh = "ThrottlingException" -_aQE = "aws.protocols#awsQueryError" -_tR = "throttlingReasons" -_VEFM = "ValidationExceptionFieldMessage" -_VEFN = "ValidationExceptionFieldName" -_VEF = "ValidationExceptionField" -_na = "name" -_VEFL = "ValidationExceptionFieldList" -_VER = "ValidationExceptionReason" -_UO = "UNSUPPORTED_OPERATION" -_uO = "unsupportedOperation" -_FVF = "FIELD_VALIDATION_FAILED" -_fVF = "fieldValidationFailed" -_OTHER = "OTHER" -_o = "other" -_IIE = "INVALID_INBOUND_EVENT" -_iIE = "invalidInboundEvent" -_VE = "ValidationException" -_fi = "fields" _SSSSES = "StartSpeechSynthesisStreamEventStream" _SSSSO = "StartSpeechSynthesisStreamOutput" _ES = "EventStream" @@ -421,6 +453,14 @@ _CT_ = "Content-Type" _xaR = "x-amzn-RequestCharacters" _SS = "SynthesizeSpeech" +_TRI = "TagResourceInput" +_TRO = "TagResourceOutput" +_TRa = "TagResource" +_TKL = "TagKeyList" +_URI = "UntagResourceInput" +_TKa = "TagKeys" +_URO = "UntagResourceOutput" +_UR = "UntagResource" _Pv = "Parrot_v1" _aw = "aws.auth#sigv4" _aws = "aws.api#service" @@ -429,6 +469,8 @@ ALPHABET: StaticSchema = (3, n0, _A, 0) +AMAZON_RESOURCE_NAME: StaticSchema = (3, n0, _ARN, 0) + AUDIO_CHUNK: StaticSchema = (1, n0, _AC, 0) AUDIO_EVENT: StaticSchema = (18, n0, _AE, 0, (_AC,), ((AUDIO_CHUNK, {_sP: None}),)) @@ -732,6 +774,16 @@ _Le, _Lor, _Ti, + _Arj, + _Carl, + _Caro, + _Cu, + _Hy, + _Ken, + _Kia, + _Leo, + _Nat, + _Tin, ), ( (-1, {_sV: _Ad}), @@ -840,6 +892,16 @@ (-1, {_sV: _Le}), (-1, {_sV: _Lor}), (-1, {_sV: _Ti}), + (-1, {_sV: _Arj}), + (-1, {_sV: _Carl}), + (-1, {_sV: _Caro}), + (-1, {_sV: _Cu}), + (-1, {_sV: _Hy}), + (-1, {_sV: _Ken}), + (-1, {_sV: _Kia}), + (-1, {_sV: _Leo}), + (-1, {_sV: _Nat}), + (-1, {_sV: _Tin}), ), ) @@ -905,6 +967,8 @@ ((ERROR_MESSAGE, 0),), ) +EXCEPTION_MESSAGE: StaticSchema = (3, n0, _EMx, 0) + FORCE: StaticSchema = (2, n0, _Fo, {_smithya: False}) FLUSH_STREAM_CONFIGURATION: StaticSchema = ( @@ -1183,6 +1247,15 @@ ((ERROR_MESSAGE, 0),), ) +INVALID_TAG_PARAMETER_EXCEPTION: StaticSchema = ( + 18, + n0, + _ITPE, + {_smith: _c, _sE: 400}, + (_m,), + ((EXCEPTION_MESSAGE, 0),), +) + LANGUAGE_NOT_SUPPORTED_EXCEPTION: StaticSchema = ( 18, n0, @@ -1283,6 +1356,141 @@ (INVALID_NEXT_TOKEN_EXCEPTION, SERVICE_FAILURE_EXCEPTION), ) +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sm: None}, + (_RA,), + ((AMAZON_RESOURCE_NAME, {_sQ: _ar, _smi: None}),), +) + +TAG_KEY: StaticSchema = (3, n0, _TK, 0) + +TAG_VALUE: StaticSchema = (3, n0, _TV, 0) + +TAG_MAP: StaticSchema = (17, n0, _TM, 0, (_k, _va), ((TAG_KEY, 0), (TAG_VALUE, 0))) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_smit: None}, + (_Tag,), + ((TAG_MAP, 0),), +) + +RESOURCE_ID: StaticSchema = (3, n0, _RI, 0) + +RESOURCE_TYPE: StaticSchema = (14, n0, _RT, 0, (_LEXICON,), ((-1, {_sV: _l}),)) + +RESOURCE_NOT_FOUND_EXCEPTION: StaticSchema = ( + 18, + n0, + _RNFE, + {_smith: _c, _sE: 404}, + (_m, _rI, _rT), + ((ERROR_MESSAGE, 1), (RESOURCE_ID, 1), (RESOURCE_TYPE, 1)), +) + +THROTTLING_REASON: StaticSchema = ( + 18, + n0, + _TR, + 0, + (_r, _re), + ( + (CORAL_AVAILABILITY_THROTTLING_REASON, 0), + (CORAL_AVAILABILITY_THROTTLED_RESOURCE, 0), + ), +) + +THROTTLING_REASON_LIST: StaticSchema = ( + 16, + n0, + _TRL, + 0, + (_me,), + ((THROTTLING_REASON, 0),), +) + +THROTTLING_EXCEPTION: StaticSchema = ( + 18, + n0, + _TE, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "Throttling", "httpResponseCode": 400}), + }, + (_m, _tR), + ((AVAILABILITY_ERROR_MESSAGE, 0), (THROTTLING_REASON_LIST, 0)), +) + +VALIDATION_EXCEPTION_FIELD_MESSAGE: StaticSchema = (3, n0, _VEFM, 0) + +VALIDATION_EXCEPTION_FIELD_NAME: StaticSchema = (3, n0, _VEFN, 0) + +VALIDATION_EXCEPTION_FIELD: StaticSchema = ( + 18, + n0, + _VEF, + 0, + (_na, _m), + ((VALIDATION_EXCEPTION_FIELD_NAME, 1), (VALIDATION_EXCEPTION_FIELD_MESSAGE, 1)), +) + +VALIDATION_EXCEPTION_FIELD_LIST: StaticSchema = ( + 16, + n0, + _VEFL, + 0, + (_me,), + ((VALIDATION_EXCEPTION_FIELD, 0),), +) + +VALIDATION_EXCEPTION_REASON: StaticSchema = ( + 14, + n0, + _VER, + 0, + (_UO, _FVF, _OTHER, _IIE), + ((-1, {_sV: _uO}), (-1, {_sV: _fVF}), (-1, {_sV: _o}), (-1, {_sV: _iIE})), +) + +VALIDATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _VE, + {_smith: _c, _sE: 400}, + (_m, _r, _fi), + ( + (ERROR_MESSAGE, 1), + (VALIDATION_EXCEPTION_REASON, 1), + (VALIDATION_EXCEPTION_FIELD_LIST, 0), + ), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + { + _smithy: MappingProxyType( + {"method": "GET", "uri": "/v1/listTagsForResource", "code": 200} + ) + }, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + ( + INVALID_TAG_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + MARKS_NOT_SUPPORTED_FOR_FORMAT_EXCEPTION: StaticSchema = ( 18, n0, @@ -1319,12 +1527,21 @@ n0, _PLI, {_sm: None}, - (_N, _Con), - ((LEXICON_NAME, 9), (LEXICON_CONTENT, 1)), + (_N, _Con, _Tag), + ((LEXICON_NAME, 9), (LEXICON_CONTENT, 1), (TAG_MAP, 0)), ) PUT_LEXICON_OUTPUT: StaticSchema = (18, n0, _PLO, {_smit: None}) +TOO_MANY_TAGS_EXCEPTION: StaticSchema = ( + 18, + n0, + _TMTE, + {_smith: _c, _sE: 400}, + (_m,), + ((EXCEPTION_MESSAGE, 0),), +) + UNSUPPORTED_PLS_ALPHABET_EXCEPTION: StaticSchema = ( 18, n0, @@ -1356,12 +1573,15 @@ PUT_LEXICON_OUTPUT, ( INVALID_LEXICON_EXCEPTION, + INVALID_TAG_PARAMETER_EXCEPTION, LEXICON_SIZE_EXCEEDED_EXCEPTION, MAX_LEXEME_LENGTH_EXCEEDED_EXCEPTION, MAX_LEXICONS_NUMBER_EXCEEDED_EXCEPTION, SERVICE_FAILURE_EXCEPTION, + TOO_MANY_TAGS_EXCEPTION, UNSUPPORTED_PLS_ALPHABET_EXCEPTION, UNSUPPORTED_PLS_LANGUAGE_EXCEPTION, + VALIDATION_EXCEPTION, ), ) @@ -1390,7 +1610,7 @@ TEXT_EVENT: StaticSchema = ( 18, n0, - _TE, + _TEe, 0, (_Te, _TT, _FSC), ((TEXT, 1), (TEXT_TYPE, 0), (FLUSH_STREAM_CONFIGURATION, 0)), @@ -1401,7 +1621,7 @@ n0, _SSSSAS, {_s: None}, - (_TE, _CSE), + (_TEe, _CSE), ((TEXT_EVENT, 0), (CLOSE_STREAM_EVENT, 0)), ) @@ -1431,90 +1651,12 @@ ((REQUEST_CHARACTERS, {_smithya: 0}),), ) -THROTTLING_REASON: StaticSchema = ( - 18, - n0, - _TR, - 0, - (_r, _re), - ( - (CORAL_AVAILABILITY_THROTTLING_REASON, 0), - (CORAL_AVAILABILITY_THROTTLED_RESOURCE, 0), - ), -) - -THROTTLING_REASON_LIST: StaticSchema = ( - 16, - n0, - _TRL, - 0, - (_me,), - ((THROTTLING_REASON, 0),), -) - -THROTTLING_EXCEPTION: StaticSchema = ( - 18, - n0, - _TEh, - { - _smith: _c, - _sE: 400, - _aQE: MappingProxyType({"code": "Throttling", "httpResponseCode": 400}), - }, - (_m, _tR), - ((AVAILABILITY_ERROR_MESSAGE, 0), (THROTTLING_REASON_LIST, 0)), -) - -VALIDATION_EXCEPTION_FIELD_MESSAGE: StaticSchema = (3, n0, _VEFM, 0) - -VALIDATION_EXCEPTION_FIELD_NAME: StaticSchema = (3, n0, _VEFN, 0) - -VALIDATION_EXCEPTION_FIELD: StaticSchema = ( - 18, - n0, - _VEF, - 0, - (_na, _m), - ((VALIDATION_EXCEPTION_FIELD_NAME, 1), (VALIDATION_EXCEPTION_FIELD_MESSAGE, 1)), -) - -VALIDATION_EXCEPTION_FIELD_LIST: StaticSchema = ( - 16, - n0, - _VEFL, - 0, - (_me,), - ((VALIDATION_EXCEPTION_FIELD, 0),), -) - -VALIDATION_EXCEPTION_REASON: StaticSchema = ( - 14, - n0, - _VER, - 0, - (_UO, _FVF, _OTHER, _IIE), - ((-1, {_sV: _uO}), (-1, {_sV: _fVF}), (-1, {_sV: _o}), (-1, {_sV: _iIE})), -) - -VALIDATION_EXCEPTION: StaticSchema = ( - 18, - n0, - _VE, - {_smith: _c, _sE: 400}, - (_m, _r, _fi), - ( - (ERROR_MESSAGE, 1), - (VALIDATION_EXCEPTION_REASON, 1), - (VALIDATION_EXCEPTION_FIELD_LIST, 0), - ), -) - START_SPEECH_SYNTHESIS_STREAM_EVENT_STREAM: StaticSchema = ( 19, n0, _SSSSES, {_s: None}, - (_AE, _SCE, _VE, _SQEE, _SFE, _TEh), + (_AE, _SCE, _VE, _SQEE, _SFE, _TE), ( (AUDIO_EVENT, 0), (STREAM_CLOSED_EVENT, 0), @@ -1681,6 +1823,71 @@ ), ) +TAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _TRI, + {_sm: None}, + (_RA, _Tag), + ((AMAZON_RESOURCE_NAME, 1), (TAG_MAP, 1)), +) + +TAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _TRO, {_smit: None}) + +TAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _TRa, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/v1/tagResource", "code": 200} + ) + }, + TAG_RESOURCE_INPUT, + TAG_RESOURCE_OUTPUT, + ( + INVALID_TAG_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + THROTTLING_EXCEPTION, + TOO_MANY_TAGS_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + +TAG_KEY_LIST: StaticSchema = (16, n0, _TKL, 0, (_me,), ((TAG_KEY, 0),)) + +UNTAG_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _URI, + {_sm: None}, + (_RA, _TKa), + ((AMAZON_RESOURCE_NAME, 1), (TAG_KEY_LIST, 1)), +) + +UNTAG_RESOURCE_OUTPUT: StaticSchema = (18, n0, _URO, {_smit: None}) + +UNTAG_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _UR, + { + _smithy: MappingProxyType( + {"method": "POST", "uri": "/v1/untagResource", "code": 200} + ) + }, + UNTAG_RESOURCE_INPUT, + UNTAG_RESOURCE_OUTPUT, + ( + INVALID_TAG_PARAMETER_EXCEPTION, + RESOURCE_NOT_FOUND_EXCEPTION, + SERVICE_FAILURE_EXCEPTION, + THROTTLING_EXCEPTION, + VALIDATION_EXCEPTION, + ), +) + PARROT_V1: StaticSchema = ( 21, n0, diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/aio/client.py b/clients/aws-sdk-polly/src/aws_sdk_polly/aio/client.py index 8653002b..e6cde58b 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/aio/client.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/aio/client.py @@ -40,12 +40,18 @@ ListLexiconsOutput, ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, PutLexiconInput, PutLexiconOutput, StartSpeechSynthesisTaskInput, StartSpeechSynthesisTaskOutput, SynthesizeSpeechInput, SynthesizeSpeechOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, ) @@ -61,6 +67,12 @@ class AsyncPollyClient(AsyncClient[AsyncPollyConfig]): high-quality speech from plain text and Speech Synthesis Markup Language (SSML), along with managing pronunciations lexicons that enable you to get the best results for your application domain. + + Authenticated API calls must be signed using the Signature Version 4 + Signing Process. For more information, see [Signing Amazon Web Services + API + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) + in the *IAM User Guide*. """ _client_plugins = (aws_user_agent_plugin, user_agent_plugin) @@ -221,6 +233,26 @@ async def list_speech_synthesis_tasks( input, _models.LIST_SPEECH_SYNTHESIS_TASKS, [], plugins ) + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists the tags for an Amazon Polly resource. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + async def put_lexicon( self, input: PutLexiconInput, plugins: list[Plugin] | None = None ) -> PutLexiconOutput: @@ -231,6 +263,12 @@ async def put_lexicon( consistency, therefore, it might take some time before the lexicon is available to the SynthesizeSpeech operation. + Overwriting a lexicon keeps its existing tags. You can specify tags only + when you create a lexicon. If you specify tags for a lexicon that + already exists, the request fails with a `ValidationException`. To + change the tags of an existing lexicon, use `TagResource` and + `UntagResource`. + For more information, see [Managing Lexicons](https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html). @@ -266,7 +304,7 @@ async def start_speech_synthesis_stream( This operation serves as a bidirectional counterpart to `SynthesizeSpeech`: - - [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/API/API_SynthesizeSpeech.html) + - [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html) Args: input: @@ -345,6 +383,49 @@ async def synthesize_speech( """ return await self._invoke(input, _models.SYNTHESIZE_SPEECH, [], plugins) + async def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds specified tags to a resource with the specified ARN. Existing tags + on a resource are not changed if they are not specified in the request + parameters. If you specify a tag key that already exists on the + resource, the value in the request replaces the existing value. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return await self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + async def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes specified tags from a resource. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return await self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + async def _new_config(self) -> AsyncPollyConfig: return await AsyncPollyConfig.resolve() diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/aio/config.py b/clients/aws-sdk-polly/src/aws_sdk_polly/aio/config.py index db2deead..461c5db2 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/aio/config.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/aio/config.py @@ -61,6 +61,8 @@ ListLexiconsOutput, ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, PutLexiconInput, PutLexiconOutput, StartSpeechSynthesisStreamInput, @@ -69,6 +71,10 @@ StartSpeechSynthesisTaskOutput, SynthesizeSpeechInput, SynthesizeSpeechOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, ) _ServiceInterceptor = Union[ @@ -82,6 +88,7 @@ Interceptor[ ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, Any, Any ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], Interceptor[PutLexiconInput, PutLexiconOutput, Any, Any], Interceptor[ StartSpeechSynthesisStreamInput, StartSpeechSynthesisStreamOutput, Any, Any @@ -90,6 +97,8 @@ StartSpeechSynthesisTaskInput, StartSpeechSynthesisTaskOutput, Any, Any ], Interceptor[SynthesizeSpeechInput, SynthesizeSpeechOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], ] else: _ServiceInterceptor = Any diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/client.py b/clients/aws-sdk-polly/src/aws_sdk_polly/client.py index 22308974..3db475c1 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/client.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/client.py @@ -32,12 +32,18 @@ ListLexiconsOutput, ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, PutLexiconInput, PutLexiconOutput, StartSpeechSynthesisTaskInput, StartSpeechSynthesisTaskOutput, SynthesizeSpeechInput, SynthesizeSpeechOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, ) @@ -53,6 +59,12 @@ class PollyClient(Client[PollyConfig]): high-quality speech from plain text and Speech Synthesis Markup Language (SSML), along with managing pronunciations lexicons that enable you to get the best results for your application domain. + + Authenticated API calls must be signed using the Signature Version 4 + Signing Process. For more information, see [Signing Amazon Web Services + API + Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) + in the *IAM User Guide*. """ _client_plugins = (aws_user_agent_plugin, user_agent_plugin) @@ -217,6 +229,26 @@ def list_speech_synthesis_tasks( """ return self._invoke(input, _models.LIST_SPEECH_SYNTHESIS_TASKS, [], plugins) + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists the tags for an Amazon Polly resource. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + def put_lexicon( self, input: PutLexiconInput, plugins: list[Plugin] | None = None ) -> PutLexiconOutput: @@ -227,6 +259,12 @@ def put_lexicon( consistency, therefore, it might take some time before the lexicon is available to the SynthesizeSpeech operation. + Overwriting a lexicon keeps its existing tags. You can specify tags only + when you create a lexicon. If you specify tags for a lexicon that + already exists, the request fails with a `ValidationException`. To + change the tags of an existing lexicon, use `TagResource` and + `UntagResource`. + For more information, see [Managing Lexicons](https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html). @@ -297,6 +335,49 @@ def synthesize_speech( """ return self._invoke(input, _models.SYNTHESIZE_SPEECH, [], plugins) + def tag_resource( + self, input: TagResourceInput, plugins: list[Plugin] | None = None + ) -> TagResourceOutput: + """ + Adds specified tags to a resource with the specified ARN. Existing tags + on a resource are not changed if they are not specified in the request + parameters. If you specify a tag key that already exists on the + resource, the value in the request replaces the existing value. + + Args: + input: + An instance of `TagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `TagResourceOutput`. + """ + return self._invoke(input, _models.TAG_RESOURCE, [], plugins) + + def untag_resource( + self, input: UntagResourceInput, plugins: list[Plugin] | None = None + ) -> UntagResourceOutput: + """ + Deletes specified tags from a resource. + + Args: + input: + An instance of `UntagResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UntagResourceOutput`. + """ + return self._invoke(input, _models.UNTAG_RESOURCE, [], plugins) + def _new_config(self) -> PollyConfig: return PollyConfig.resolve() diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/config.py b/clients/aws-sdk-polly/src/aws_sdk_polly/config.py index d945abbf..be9dd104 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/config.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/config.py @@ -56,6 +56,8 @@ ListLexiconsOutput, ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, PutLexiconInput, PutLexiconOutput, StartSpeechSynthesisStreamInput, @@ -64,6 +66,10 @@ StartSpeechSynthesisTaskOutput, SynthesizeSpeechInput, SynthesizeSpeechOutput, + TagResourceInput, + TagResourceOutput, + UntagResourceInput, + UntagResourceOutput, ) _ServiceInterceptor = Union[ @@ -77,6 +83,7 @@ Interceptor[ ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, Any, Any ], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], Interceptor[PutLexiconInput, PutLexiconOutput, Any, Any], Interceptor[ StartSpeechSynthesisStreamInput, StartSpeechSynthesisStreamOutput, Any, Any @@ -85,6 +92,8 @@ StartSpeechSynthesisTaskInput, StartSpeechSynthesisTaskOutput, Any, Any ], Interceptor[SynthesizeSpeechInput, SynthesizeSpeechOutput, Any, Any], + Interceptor[TagResourceInput, TagResourceOutput, Any, Any], + Interceptor[UntagResourceInput, UntagResourceOutput, Any, Any], ] else: _ServiceInterceptor = Any diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/models.py b/clients/aws-sdk-polly/src/aws_sdk_polly/models.py index c97762ab..95076bc6 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/models.py +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/models.py @@ -41,6 +41,7 @@ class ServiceError(ModeledError): "InvalidSampleRateException": "INVALID_SAMPLE_RATE_EXCEPTION", "InvalidSnsTopicArnException": "INVALID_SNS_TOPIC_ARN_EXCEPTION", "InvalidSsmlException": "INVALID_SSML_EXCEPTION", + "InvalidTagParameterException": "INVALID_TAG_PARAMETER_EXCEPTION", "InvalidTaskIdException": "INVALID_TASK_ID_EXCEPTION", "LanguageCode": "LANGUAGE_CODE", "LanguageNotSupportedException": "LANGUAGE_NOT_SUPPORTED_EXCEPTION", @@ -53,6 +54,8 @@ class ServiceError(ModeledError): "ListLexiconsOutput": "LIST_LEXICONS_OUTPUT", "ListSpeechSynthesisTasksInput": "LIST_SPEECH_SYNTHESIS_TASKS_INPUT", "ListSpeechSynthesisTasksOutput": "LIST_SPEECH_SYNTHESIS_TASKS_OUTPUT", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", "MarksNotSupportedForFormatException": "MARKS_NOT_SUPPORTED_FOR_FORMAT_EXCEPTION", "MaxLexemeLengthExceededException": "MAX_LEXEME_LENGTH_EXCEEDED_EXCEPTION", "MaxLexiconsNumberExceededException": "MAX_LEXICONS_NUMBER_EXCEEDED_EXCEPTION", @@ -60,6 +63,8 @@ class ServiceError(ModeledError): "PutLexiconInput": "PUT_LEXICON_INPUT", "PutLexiconOutput": "PUT_LEXICON_OUTPUT", "QuotaCode": "QUOTA_CODE", + "ResourceNotFoundException": "RESOURCE_NOT_FOUND_EXCEPTION", + "ResourceType": "RESOURCE_TYPE", "ServiceCode": "SERVICE_CODE", "ServiceFailureException": "SERVICE_FAILURE_EXCEPTION", "ServiceQuotaExceededException": "SERVICE_QUOTA_EXCEEDED_EXCEPTION", @@ -86,14 +91,19 @@ class ServiceError(ModeledError): "SynthesisTaskNotFoundException": "SYNTHESIS_TASK_NOT_FOUND_EXCEPTION", "SynthesizeSpeechInput": "SYNTHESIZE_SPEECH_INPUT", "SynthesizeSpeechOutput": "SYNTHESIZE_SPEECH_OUTPUT", + "TagResourceInput": "TAG_RESOURCE_INPUT", + "TagResourceOutput": "TAG_RESOURCE_OUTPUT", "TaskStatus": "TASK_STATUS", "TextEvent": "TEXT_EVENT", "TextLengthExceededException": "TEXT_LENGTH_EXCEEDED_EXCEPTION", "TextType": "TEXT_TYPE", "ThrottlingException": "THROTTLING_EXCEPTION", "ThrottlingReason": "THROTTLING_REASON", + "TooManyTagsException": "TOO_MANY_TAGS_EXCEPTION", "UnsupportedPlsAlphabetException": "UNSUPPORTED_PLS_ALPHABET_EXCEPTION", "UnsupportedPlsLanguageException": "UNSUPPORTED_PLS_LANGUAGE_EXCEPTION", + "UntagResourceInput": "UNTAG_RESOURCE_INPUT", + "UntagResourceOutput": "UNTAG_RESOURCE_OUTPUT", "ValidationException": "VALIDATION_EXCEPTION", "ValidationExceptionField": "VALIDATION_EXCEPTION_FIELD", "ValidationExceptionReason": "VALIDATION_EXCEPTION_REASON", @@ -123,6 +133,7 @@ class ServiceError(ModeledError): "InvalidSampleRateException", "InvalidSnsTopicArnException", "InvalidSsmlException", + "InvalidTagParameterException", "InvalidTaskIdException", "LanguageCode", "LanguageNotSupportedException", @@ -135,6 +146,8 @@ class ServiceError(ModeledError): "ListLexiconsOutput", "ListSpeechSynthesisTasksInput", "ListSpeechSynthesisTasksOutput", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", "MarksNotSupportedForFormatException", "MaxLexemeLengthExceededException", "MaxLexiconsNumberExceededException", @@ -142,6 +155,8 @@ class ServiceError(ModeledError): "PutLexiconInput", "PutLexiconOutput", "QuotaCode", + "ResourceNotFoundException", + "ResourceType", "ServiceCode", "ServiceFailureException", "ServiceQuotaExceededException", @@ -158,14 +173,19 @@ class ServiceError(ModeledError): "SynthesisTaskNotFoundException", "SynthesizeSpeechInput", "SynthesizeSpeechOutput", + "TagResourceInput", + "TagResourceOutput", "TaskStatus", "TextEvent", "TextLengthExceededException", "TextType", "ThrottlingException", "ThrottlingReason", + "TooManyTagsException", "UnsupportedPlsAlphabetException", "UnsupportedPlsLanguageException", + "UntagResourceInput", + "UntagResourceOutput", "ValidationException", "ValidationExceptionField", "ValidationExceptionReason", @@ -184,10 +204,13 @@ class ServiceError(ModeledError): "GET_SPEECH_SYNTHESIS_TASK", "LIST_LEXICONS", "LIST_SPEECH_SYNTHESIS_TASKS", + "LIST_TAGS_FOR_RESOURCE", "PUT_LEXICON", "START_SPEECH_SYNTHESIS_STREAM", "START_SPEECH_SYNTHESIS_TASK", "SYNTHESIZE_SPEECH", + "TAG_RESOURCE", + "UNTAG_RESOURCE", ) for _operation_name in _operation_names: globals().pop(_operation_name, None) @@ -268,16 +291,31 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.polly#InvalidTagParameterException", + "com.amazonaws.polly#ResourceNotFoundException", + "com.amazonaws.polly#ServiceFailureException", + "com.amazonaws.polly#ThrottlingException", + "com.amazonaws.polly#ValidationException", + ), + ("aws.auth#sigv4",), +) + _operation_data["PUT_LEXICON"] = ( "PUT_LEXICON", ( "com.amazonaws.polly#InvalidLexiconException", + "com.amazonaws.polly#InvalidTagParameterException", "com.amazonaws.polly#LexiconSizeExceededException", "com.amazonaws.polly#MaxLexemeLengthExceededException", "com.amazonaws.polly#MaxLexiconsNumberExceededException", "com.amazonaws.polly#ServiceFailureException", + "com.amazonaws.polly#TooManyTagsException", "com.amazonaws.polly#UnsupportedPlsAlphabetException", "com.amazonaws.polly#UnsupportedPlsLanguageException", + "com.amazonaws.polly#ValidationException", ), ("aws.auth#sigv4",), ) @@ -327,3 +365,28 @@ def __dir__(): ), ("aws.auth#sigv4",), ) + +_operation_data["TAG_RESOURCE"] = ( + "TAG_RESOURCE", + ( + "com.amazonaws.polly#InvalidTagParameterException", + "com.amazonaws.polly#ResourceNotFoundException", + "com.amazonaws.polly#ServiceFailureException", + "com.amazonaws.polly#ThrottlingException", + "com.amazonaws.polly#TooManyTagsException", + "com.amazonaws.polly#ValidationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UNTAG_RESOURCE"] = ( + "UNTAG_RESOURCE", + ( + "com.amazonaws.polly#InvalidTagParameterException", + "com.amazonaws.polly#ResourceNotFoundException", + "com.amazonaws.polly#ServiceFailureException", + "com.amazonaws.polly#ThrottlingException", + "com.amazonaws.polly#ValidationException", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-polly/src/aws_sdk_polly/models.pyi b/clients/aws-sdk-polly/src/aws_sdk_polly/models.pyi index 0754737e..112a4258 100644 --- a/clients/aws-sdk-polly/src/aws_sdk_polly/models.pyi +++ b/clients/aws-sdk-polly/src/aws_sdk_polly/models.pyi @@ -307,6 +307,24 @@ class InvalidSsmlException(ServiceError, _SerdeShape): optional. """ +@dataclass(kw_only=True) +class InvalidTagParameterException(ServiceError, _SerdeShape): + """ + The resource ARN or a tag in the request isn't valid. Specify the ARN + of a supported resource in the Amazon Web Services account and Region of + the request. Tag keys can have a maximum length of 128 characters, and + tag values can have a maximum length of 256 characters. Correct the ARN + or the tags, and then try again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class InvalidTaskIdException(ServiceError, _SerdeShape): """ @@ -407,8 +425,9 @@ class LexiconAttributes(_SerdeShape): alphabet: str | None = ... """ - Phonetic alphabet used in the lexicon. Valid values are `ipa` and - `x-sampa`. + Phonetic alphabet used in the lexicon. Valid values are `ipa`, + `x-sampa`, `x-amazon-pinyin`, `x-amazon-jyutping`, `x-amazon-pron-kana`, + and `x-amazon-yomigana`. """ language_code: str | None = ... """ @@ -534,6 +553,31 @@ class ListSpeechSynthesisTasksOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """Dataclass for ListTagsForResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) that identifies the resource for which to + list the tags. Currently, the only supported resource is an Amazon Polly + lexicon. + """ + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """Dataclass for ListTagsForResourceOutput structure.""" + + tags: dict[str, str] | None = ... + """The tags for the resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class MarksNotSupportedForFormatException(ServiceError, _SerdeShape): """ @@ -588,12 +632,21 @@ class PutLexiconInput(_SerdeShape): name: str | None = ... """ - Name of the lexicon. The name must follow the regular express format + Name of the lexicon. The name must follow the regular expression format [0-9A-Za-z]{1,20}. That is, the name is a case-sensitive alphanumeric string up to 20 characters long. """ content: str | None = ... """Content of the PLS lexicon as string data.""" + tags: dict[str, str] | None = ... + """ + The metadata that you apply to the lexicon to help you categorize and + organize it. Each tag consists of a key and an optional value, both of + which you define. Tag keys can have a maximum character length of 128 + characters, and tag values can have a maximum length of 256 characters. + You can't replace the tags of an existing lexicon by overwriting it + with PutLexicon. + """ @dataclass(kw_only=True) class PutLexiconOutput(_SerdeShape): @@ -611,6 +664,29 @@ class QuotaCode(UnknownEnumMixin, StrEnum): INPUT_STREAM_INBOUND_EVENT_TIMEOUT = "input-stream-inbound-event-timeout" INPUT_STREAM_TIMEOUT = "input-stream-timeout" +@dataclass(kw_only=True) +class ResourceNotFoundException(ServiceError, _SerdeShape): + """ + Amazon Polly can't find the specified resource. Verify that the + resource exists in the Amazon Web Services account and Region of the + request and that its ARN is spelled correctly, and then try again. + """ + + resource_id: str + """The identifier of the resource that wasn't found.""" + resource_type: str + """The type of the resource that wasn't found.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ResourceType(UnknownEnumMixin, StrEnum): + LEXICON = "lexicon" + class ServiceCode(UnknownEnumMixin, StrEnum): POLLY = "polly" @@ -797,7 +873,7 @@ class StartSpeechSynthesisStreamInput(_SerdeShape): """ The voice to use in synthesis. To get a list of available voice IDs, use the - [DescribeVoices](https://docs.aws.amazon.com/polly/latest/API/API_DescribeVoices.html) + [DescribeVoices](https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html) operation. """ @@ -1141,6 +1217,34 @@ class SynthesizeSpeechOutput(_SerdeShape): optional. """ +@dataclass(kw_only=True) +class TagResourceInput(_SerdeShape): + """Dataclass for TagResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource to which to add tags. + Currently, the only supported resource is an Amazon Polly lexicon. + """ + tags: dict[str, str] | None = ... + """ + The tags to add to the resource, as key-value pairs. Tag keys can have a + maximum character length of 128 characters, and tag values can have a + maximum length of 256 characters. + """ + +@dataclass(kw_only=True) +class TagResourceOutput(_SerdeShape): + """Dataclass for TagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + class TaskStatus(UnknownEnumMixin, StrEnum): SCHEDULED = "scheduled" IN_PROGRESS = "inProgress" @@ -1213,11 +1317,29 @@ class ThrottlingReason(_SerdeShape): resource: str | None = ... """The resource that caused the throttling.""" +@dataclass(kw_only=True) +class TooManyTagsException(ServiceError, _SerdeShape): + """ + The list of tags on the resource is over the limit. The maximum number + of tags that can be applied to a resource is 50. Remove unused tags or + reduce the number of tags in the request, and then try again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class UnsupportedPlsAlphabetException(ServiceError, _SerdeShape): """ The alphabet specified by the lexicon is not a supported alphabet. Valid - values are `x-sampa` and `ipa`. + values are `ipa`, `x-sampa`, `x-amazon-pinyin`, `x-amazon-jyutping`, + `x-amazon-pron-kana`, and `x-amazon-yomigana`. Replace the unsupported + alphabet with one of the valid values and resubmit your request. """ response_metadata: ResponseMetadata = ... @@ -1244,6 +1366,30 @@ class UnsupportedPlsLanguageException(ServiceError, _SerdeShape): optional. """ +@dataclass(kw_only=True) +class UntagResourceInput(_SerdeShape): + """Dataclass for UntagResourceInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the resource from which to remove + tags. Currently, the only supported resource is an Amazon Polly lexicon. + """ + tag_keys: list[str] | None = ... + """The keys of the tags to be removed.""" + +@dataclass(kw_only=True) +class UntagResourceOutput(_SerdeShape): + """Dataclass for UntagResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class ValidationException(ServiceError, _SerdeShape): """The input fails to satisfy the constraints specified by the service.""" @@ -1418,6 +1564,16 @@ class VoiceId(UnknownEnumMixin, StrEnum): LENNART = "Lennart" LORENZO = "Lorenzo" TIFFANY = "Tiffany" + ARJUN = "Arjun" + CARLOS = "Carlos" + CAROLINA = "Carolina" + CURTIS = "Curtis" + HYUNDUK = "Hyunduk" + KENNETH = "Kenneth" + KIARA = "Kiara" + LEO = "Leo" + NATE = "Nate" + TINA = "Tina" DELETE_LEXICON: APIOperation[DeleteLexiconInput, DeleteLexiconOutput] DESCRIBE_VOICES: APIOperation[DescribeVoicesInput, DescribeVoicesOutput] @@ -1429,6 +1585,9 @@ LIST_LEXICONS: APIOperation[ListLexiconsInput, ListLexiconsOutput] LIST_SPEECH_SYNTHESIS_TASKS: APIOperation[ ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput ] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] PUT_LEXICON: APIOperation[PutLexiconInput, PutLexiconOutput] START_SPEECH_SYNTHESIS_STREAM: APIOperation[ StartSpeechSynthesisStreamInput, StartSpeechSynthesisStreamOutput @@ -1437,3 +1596,5 @@ START_SPEECH_SYNTHESIS_TASK: APIOperation[ StartSpeechSynthesisTaskInput, StartSpeechSynthesisTaskOutput ] SYNTHESIZE_SPEECH: APIOperation[SynthesizeSpeechInput, SynthesizeSpeechOutput] +TAG_RESOURCE: APIOperation[TagResourceInput, TagResourceOutput] +UNTAG_RESOURCE: APIOperation[UntagResourceInput, UntagResourceOutput] diff --git a/clients/aws-sdk-polly/tests/_typecheck.py b/clients/aws-sdk-polly/tests/_typecheck.py index d8bc376d..f797a2aa 100644 --- a/clients/aws-sdk-polly/tests/_typecheck.py +++ b/clients/aws-sdk-polly/tests/_typecheck.py @@ -21,6 +21,8 @@ ListLexiconsOutput, ListSpeechSynthesisTasksInput, ListSpeechSynthesisTasksOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, PutLexiconInput, PutLexiconOutput, StartSpeechSynthesisStreamInput, @@ -31,8 +33,12 @@ SynthesisTask, SynthesizeSpeechInput, SynthesizeSpeechOutput, + TagResourceInput, + TagResourceOutput, TextEvent, ThrottlingReason, + UntagResourceInput, + UntagResourceOutput, ValidationExceptionField, Voice, ) @@ -61,6 +67,8 @@ ListLexiconsOutput() ListSpeechSynthesisTasksInput() ListSpeechSynthesisTasksOutput() +ListTagsForResourceInput() +ListTagsForResourceOutput() PutLexiconInput() PutLexiconOutput() StartSpeechSynthesisStreamInput() @@ -71,7 +79,11 @@ SynthesisTask() SynthesizeSpeechInput() SynthesizeSpeechOutput() +TagResourceInput() +TagResourceOutput() TextEvent(text=_) ThrottlingReason() +UntagResourceInput() +UntagResourceOutput() ValidationExceptionField(name=_, message=_) Voice() diff --git a/clients/aws-sdk-python/pyproject.toml b/clients/aws-sdk-python/pyproject.toml index 1dc29ce5..b40a3627 100644 --- a/clients/aws-sdk-python/pyproject.toml +++ b/clients/aws-sdk-python/pyproject.toml @@ -22,7 +22,9 @@ classifiers = [ dependencies = [] [project.optional-dependencies] +acm = ["aws_sdk_acm~=0.12.0"] api_gateway = ["aws_sdk_api_gateway~=0.12.0"] +appconfigdata = ["aws_sdk_appconfigdata~=0.12.0"] bedrock = ["aws_sdk_bedrock~=0.12.0"] bedrock_agent = ["aws_sdk_bedrock_agent~=0.12.0"] bedrock_agent_runtime = ["aws_sdk_bedrock_agent_runtime~=0.12.0"] @@ -31,15 +33,25 @@ bedrock_agentcore_control = ["aws_sdk_bedrock_agentcore_control~=0.12.0"] bedrock_data_automation = ["aws_sdk_bedrock_data_automation~=0.12.0"] bedrock_data_automation_runtime = ["aws_sdk_bedrock_data_automation_runtime~=0.12.0"] bedrock_runtime = ["aws_sdk_bedrock_runtime~=0.12.0"] +cloudformation = ["aws_sdk_cloudformation~=0.12.0"] +cloudfront = ["aws_sdk_cloudfront~=0.12.0"] +cloudfront_keyvaluestore = ["aws_sdk_cloudfront_keyvaluestore~=0.12.0"] cloudtrail = ["aws_sdk_cloudtrail~=0.12.0"] cognito_identity = ["aws_sdk_cognito_identity~=0.12.0"] connecthealth = ["aws_sdk_connecthealth~=0.12.0"] dynamodb = ["aws_sdk_dynamodb~=0.12.0"] +ec2 = ["aws_sdk_ec2~=0.12.0"] +ecs = ["aws_sdk_ecs~=0.12.0"] guardduty = ["aws_sdk_guardduty~=0.12.0"] +iam = ["aws_sdk_iam~=0.12.0"] +kinesis = ["aws_sdk_kinesis~=0.12.0"] +kms = ["aws_sdk_kms~=0.12.0"] lambda = ["aws_sdk_lambda~=0.12.0"] lex_runtime_v2 = ["aws_sdk_lex_runtime_v2~=0.12.0"] polly = ["aws_sdk_polly~=0.12.0"] qbusiness = ["aws_sdk_qbusiness~=0.12.0"] +rds = ["aws_sdk_rds~=0.12.0"] +s3 = ["aws_sdk_s3~=0.12.0"] sagemaker_runtime_http2 = ["aws_sdk_sagemaker_runtime_http2~=0.12.0"] secrets_manager = ["aws_sdk_secrets_manager~=0.12.0"] signin = ["aws_sdk_signin~=0.12.0"] @@ -49,7 +61,9 @@ sts = ["aws_sdk_sts~=0.12.0"] transcribe_streaming = ["aws_sdk_transcribe_streaming~=0.12.0"] all = [ + "aws_sdk_python[acm]", "aws_sdk_python[api_gateway]", + "aws_sdk_python[appconfigdata]", "aws_sdk_python[bedrock]", "aws_sdk_python[bedrock_agent]", "aws_sdk_python[bedrock_agent_runtime]", @@ -58,15 +72,25 @@ all = [ "aws_sdk_python[bedrock_data_automation]", "aws_sdk_python[bedrock_data_automation_runtime]", "aws_sdk_python[bedrock_runtime]", + "aws_sdk_python[cloudformation]", + "aws_sdk_python[cloudfront]", + "aws_sdk_python[cloudfront_keyvaluestore]", "aws_sdk_python[cloudtrail]", "aws_sdk_python[cognito_identity]", "aws_sdk_python[connecthealth]", "aws_sdk_python[dynamodb]", + "aws_sdk_python[ec2]", + "aws_sdk_python[ecs]", "aws_sdk_python[guardduty]", + "aws_sdk_python[iam]", + "aws_sdk_python[kinesis]", + "aws_sdk_python[kms]", "aws_sdk_python[lambda]", "aws_sdk_python[lex_runtime_v2]", "aws_sdk_python[polly]", "aws_sdk_python[qbusiness]", + "aws_sdk_python[rds]", + "aws_sdk_python[s3]", "aws_sdk_python[sagemaker_runtime_http2]", "aws_sdk_python[secrets_manager]", "aws_sdk_python[signin]", @@ -77,7 +101,9 @@ all = [ ] [tool.uv.sources] +aws-sdk-acm = { path = "../aws-sdk-acm", editable = true } aws-sdk-api-gateway = { path = "../aws-sdk-api-gateway", editable = true } +aws-sdk-appconfigdata = { path = "../aws-sdk-appconfigdata", editable = true } aws-sdk-bedrock = { path = "../aws-sdk-bedrock", editable = true } aws-sdk-bedrock-agent = { path = "../aws-sdk-bedrock-agent", editable = true } aws-sdk-bedrock-agent-runtime = { path = "../aws-sdk-bedrock-agent-runtime", editable = true } @@ -86,15 +112,25 @@ aws-sdk-bedrock-agentcore-control = { path = "../aws-sdk-bedrock-agentcore-contr aws-sdk-bedrock-data-automation = { path = "../aws-sdk-bedrock-data-automation", editable = true } aws-sdk-bedrock-data-automation-runtime = { path = "../aws-sdk-bedrock-data-automation-runtime", editable = true } aws-sdk-bedrock-runtime = { path = "../aws-sdk-bedrock-runtime", editable = true } +aws-sdk-cloudformation = { path = "../aws-sdk-cloudformation", editable = true } +aws-sdk-cloudfront = { path = "../aws-sdk-cloudfront", editable = true } +aws-sdk-cloudfront-keyvaluestore = { path = "../aws-sdk-cloudfront-keyvaluestore", editable = true } aws-sdk-cloudtrail = { path = "../aws-sdk-cloudtrail", editable = true } aws-sdk-cognito-identity = { path = "../aws-sdk-cognito-identity", editable = true } aws-sdk-connecthealth = { path = "../aws-sdk-connecthealth", editable = true } aws-sdk-dynamodb = { path = "../aws-sdk-dynamodb", editable = true } +aws-sdk-ec2 = { path = "../aws-sdk-ec2", editable = true } +aws-sdk-ecs = { path = "../aws-sdk-ecs", editable = true } aws-sdk-guardduty = { path = "../aws-sdk-guardduty", editable = true } +aws-sdk-iam = { path = "../aws-sdk-iam", editable = true } +aws-sdk-kinesis = { path = "../aws-sdk-kinesis", editable = true } +aws-sdk-kms = { path = "../aws-sdk-kms", editable = true } aws-sdk-lambda = { path = "../aws-sdk-lambda", editable = true } aws-sdk-lex-runtime-v2 = { path = "../aws-sdk-lex-runtime-v2", editable = true } aws-sdk-polly = { path = "../aws-sdk-polly", editable = true } aws-sdk-qbusiness = { path = "../aws-sdk-qbusiness", editable = true } +aws-sdk-rds = { path = "../aws-sdk-rds", editable = true } +aws-sdk-s3 = { path = "../aws-sdk-s3", editable = true } aws-sdk-sagemaker-runtime-http2 = { path = "../aws-sdk-sagemaker-runtime-http2", editable = true } aws-sdk-secrets-manager = { path = "../aws-sdk-secrets-manager", editable = true } aws-sdk-signin = { path = "../aws-sdk-signin", editable = true } diff --git a/clients/aws-sdk-rds/README.md b/clients/aws-sdk-rds/README.md new file mode 100644 index 00000000..a919d89b --- /dev/null +++ b/clients/aws-sdk-rds/README.md @@ -0,0 +1,58 @@ + + +## Amazon Relational Database Service Client + +aws_sdk_rds client + +### Documentation + +Amazon Relational Database Service (Amazon RDS) is a web service that +makes it easier to set up, operate, and scale a relational database in +the cloud. It provides cost-efficient, resizeable capacity for an +industry-standard relational database and manages common database +administration tasks, freeing up developers to focus on what makes their +applications and businesses unique. + +Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, +PostgreSQL, Microsoft SQL Server, Oracle, Db2, or Amazon Aurora database +server. These capabilities mean that the code, applications, and tools +you already use today with your existing databases work with Amazon RDS +without modification. Amazon RDS automatically backs up your database +and maintains the database software that powers your DB instance. Amazon +RDS is flexible: you can scale your DB instance's compute resources and +storage capacity to meet your application's demand. As with all Amazon +Web Services, there are no up-front investments, and you pay only for +the resources you use. + +This interface reference for Amazon RDS contains documentation for a +programming or command line interface you can use to manage Amazon RDS. +Amazon RDS is asynchronous, which means that some interfaces might +require techniques such as polling or callback functions to determine +when a command has been applied. In this reference, the parameter +descriptions indicate whether a command is applied immediately, on the +next instance reboot, or during the maintenance window. The reference +structure is as follows, and we list following some related topics from +the user guide. + +**Amazon RDS API Reference** + +- For the alphabetical list of API actions, see [API + Actions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Operations.html). + +- For the alphabetical list of data types, see [Data + Types](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Types.html). + +- For a list of common query parameters, see [Common + Parameters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonParameters.html). + +- For descriptions of the error codes, see [Common + Errors](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonErrors.html). + +**Amazon RDS User Guide** + +- For a summary of the Amazon RDS interfaces, see [Available RDS + Interfaces](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Interfaces). + +- For more information about how to use the Query API, see [Using the + Query + API](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html). diff --git a/clients/aws-sdk-rds/pyproject.toml b/clients/aws-sdk-rds/pyproject.toml new file mode 100644 index 00000000..55ee926c --- /dev/null +++ b/clients/aws-sdk-rds/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_rds" +version = "0.12.0" +description = "aws_sdk_rds client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_rds"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/__init__.py b/clients/aws-sdk-rds/src/aws_sdk_rds/__init__.py new file mode 100644 index 00000000..22fbfcf1 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import RDSClient + from .config import RDSConfig + from .aio.client import AsyncRDSClient + from .aio.config import AsyncRDSConfig + +__all__ = ["RDSClient", "RDSConfig", "AsyncRDSClient", "AsyncRDSConfig"] + +_EXPORTS = { + "RDSClient": ".client", + "RDSConfig": ".config", + "AsyncRDSClient": ".aio.client", + "AsyncRDSConfig": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/_private/__init__.py b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/_private/endpoints.py b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/endpoints.py new file mode 100644 index 00000000..7b8eb30d --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/endpoints.py @@ -0,0 +1,63 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.rds#AmazonRDSv19.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Region", "string", False, None, "AWS::Region", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ), + functions=("aws.partition", "booleanEquals", "isSet", "stringEquals"), + conditions=( + ((2, "isSet", (0, "Endpoint")), None), # 0: isSet(Endpoint) + ((2, "isSet", (0, "Region")), None), # 1: isSet(Region) + ((2, "aws.partition", (0, "Region")), "PartitionResult"), # 2: PartitionResult = aws.partition(Region) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 3: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 4: booleanEquals(UseDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsDualStack"), True), None), # 5: booleanEquals(PartitionResult#supportsDualStack, true) + ((2, "booleanEquals", (1, (0, "PartitionResult"), "supportsFIPS"), True), None), # 6: booleanEquals(PartitionResult#supportsFIPS, true) + ((2, "stringEquals", (1, (0, "PartitionResult"), "name"), "aws-us-gov"), None), # 7: stringEquals(PartitionResult#name, "aws-us-gov") + ), + results=( + None, # 0: no match + (5, "Invalid Configuration: FIPS and custom endpoint are not supported"), # 1 + (5, "Invalid Configuration: Dualstack and custom endpoint are not supported"), # 2 + (6, (0, "Endpoint"), None, ()), # 3 + (6, "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 4 + (5, "FIPS and DualStack are enabled, but this partition does not support one or both"), # 5 + (6, "https://rds.{Region}.amazonaws.com", None, ()), # 6 + (6, "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 7 + (5, "FIPS is enabled but this partition does not support FIPS"), # 8 + (6, "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", None, ()), # 9 + (5, "DualStack is enabled but this partition does not support DualStack"), # 10 + (6, "https://rds.{Region}.{PartitionResult#dnsSuffix}", None, ()), # 11 + (5, "Invalid Configuration: Missing Region"), # 12 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 13, 3, + 1, 4, 100_000_012, + 2, 5, 100_000_012, + 3, 8, 6, + 4, 7, 100_000_011, + 5, 100_000_009, 100_000_010, + 4, 11, 9, + 6, 10, 100_000_008, + 7, 100_000_006, 100_000_007, + 5, 12, 100_000_005, + 6, 100_000_004, 100_000_005, + 3, 100_000_001, 14, + 4, 100_000_002, 100_000_003, + ), +) +# fmt: on diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/_private/schemas.py b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/schemas.py new file mode 100644 index 00000000..9b6ca4eb --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/_private/schemas.py @@ -0,0 +1,15937 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.rds" +_S = "String" +_L = "Long" +_AQ = "AccountQuota" +_AQN = "AccountQuotaName" +_U = "Used" +_M = "Max" +_AQL = "AccountQuotaList" +_m = "member" +_sN = "smithy.api#xmlName" +_ASM = "ActivityStreamMode" +_s = "sync" +_sV = "smithy.api#enumValue" +_a = "async" +_ASML = "ActivityStreamModeList" +_ASPS = "ActivityStreamPolicyStatus" +_l = "locked" +_u = "unlocked" +_lp = "locking_policy" +_lp_ = "locking-policy" +_up = "unlocking_policy" +_up_ = "unlocking-policy" +_ASS = "ActivityStreamStatus" +_st = "stopped" +_sta = "starting" +_star = "started" +_sto = "stopping" +_IO = "IntegerOptional" +_ASV = "AdditionalStorageVolume" +_VN = "VolumeName" +_sm = "smithy.api#required" +_AS = "AllocatedStorage" +_IOPS = "IOPS" +_MAS = "MaxAllocatedStorage" +_ST = "StorageThroughput" +_STt = "StorageType" +_I = "Integer" +_ASVO = "AdditionalStorageVolumeOutput" +_SVS = "StorageVolumeStatus" +_SOS = "StorageOperationStatus" +_SOPP = "StorageOperationPercentProgress" +_ASVL = "AdditionalStorageVolumesList" +_ASVOL = "AdditionalStorageVolumesOutputList" +_IAMRA = "IAMRoleArn" +_ARTDBCI = "AddRoleToDBClusterInput" +_sSI = "smithy.synthetic#originalShapeId" +_cARTDBCM = "com.amazonaws.rds#AddRoleToDBClusterMessage" +_smi = "smithy.api#input" +_DBCI = "DBClusterIdentifier" +_RA = "RoleArn" +_FN = "FeatureName" +_ARTDBCO = "AddRoleToDBClusterOutput" +_sU = "smithy.api#Unit" +_smit = "smithy.api#output" +_EM = "ExceptionMessage" +_DBCNFF = "DBClusterNotFoundFault" +_smith = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_aQE = "aws.protocols#awsQueryError" +_me = "message" +_DBCRAEF = "DBClusterRoleAlreadyExistsFault" +_DBCRQEF = "DBClusterRoleQuotaExceededFault" +_IDBCSF = "InvalidDBClusterStateFault" +_ARTDBC = "AddRoleToDBCluster" +_ARTDBII = "AddRoleToDBInstanceInput" +_cARTDBIM = "com.amazonaws.rds#AddRoleToDBInstanceMessage" +_DBII = "DBInstanceIdentifier" +_ARTDBIO = "AddRoleToDBInstanceOutput" +_DBINFF = "DBInstanceNotFoundFault" +_DBIRAEF = "DBInstanceRoleAlreadyExistsFault" +_DBIRQEF = "DBInstanceRoleQuotaExceededFault" +_IDBISF = "InvalidDBInstanceStateFault" +_ARTDBI = "AddRoleToDBInstance" +_ASITSI = "AddSourceIdentifierToSubscriptionInput" +_cASITSM = "com.amazonaws.rds#AddSourceIdentifierToSubscriptionMessage" +_SN = "SubscriptionName" +_SI = "SourceIdentifier" +_B = "Boolean" +_ECL = "EventCategoriesList" +_EC = "EventCategory" +_SIL = "SourceIdsList" +_SIo = "SourceId" +_ES = "EventSubscription" +_CAI = "CustomerAwsId" +_CSI = "CustSubscriptionId" +_STA = "SnsTopicArn" +_St = "Status" +_SCT = "SubscriptionCreationTime" +_STo = "SourceType" +_E = "Enabled" +_ESA = "EventSubscriptionArn" +_ASITSO = "AddSourceIdentifierToSubscriptionOutput" +_cASITSR = "com.amazonaws.rds#AddSourceIdentifierToSubscriptionResult" +_SNFF = "SourceNotFoundFault" +_SNFFu = "SubscriptionNotFoundFault" +_ASITS = "AddSourceIdentifierToSubscription" +_T = "Tag" +_K = "Key" +_V = "Value" +_TL = "TagList" +_ATTRI = "AddTagsToResourceInput" +_cATTRM = "com.amazonaws.rds#AddTagsToResourceMessage" +_RN = "ResourceName" +_Ta = "Tags" +_ATTRO = "AddTagsToResourceOutput" +_BGDNFF = "BlueGreenDeploymentNotFoundFault" +_DBCRNFF = "DBCapacityReservationNotFoundFault" +_DBPENFF = "DBProxyEndpointNotFoundFault" +_DBPNFF = "DBProxyNotFoundFault" +_DBPTGNFF = "DBProxyTargetGroupNotFoundFault" +_DBSGNFF = "DBShardGroupNotFoundFault" +_DBSNFF = "DBSnapshotNotFoundFault" +_DBSTDNFF = "DBSnapshotTenantDatabaseNotFoundFault" +_INFF = "IntegrationNotFoundFault" +_IDBCESF = "InvalidDBClusterEndpointStateFault" +_TDNFF = "TenantDatabaseNotFoundFault" +_ATTR = "AddTagsToResource" +_APMAI = "ApplyPendingMaintenanceActionInput" +_cAPMAM = "com.amazonaws.rds#ApplyPendingMaintenanceActionMessage" +_RI = "ResourceIdentifier" +_AA = "ApplyAction" +_OIT = "OptInType" +_TS = "TStamp" +_PMA = "PendingMaintenanceAction" +_A = "Action" +_AAAD = "AutoAppliedAfterDate" +_FAD = "ForcedApplyDate" +_OIS = "OptInStatus" +_CAD = "CurrentApplyDate" +_D = "Description" +_PMAD = "PendingMaintenanceActionDetails" +_RPMA = "ResourcePendingMaintenanceActions" +_APMAO = "ApplyPendingMaintenanceActionOutput" +_cAPMAR = "com.amazonaws.rds#ApplyPendingMaintenanceActionResult" +_RNFF = "ResourceNotFoundFault" +_APMA = "ApplyPendingMaintenanceAction" +_AAEF = "AuthorizationAlreadyExistsFault" +_AQEF = "AuthorizationQuotaExceededFault" +_ADBSGII = "AuthorizeDBSecurityGroupIngressInput" +_cADBSGIM = "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressMessage" +_DBSGN = "DBSecurityGroupName" +_CIDRIP = "CIDRIP" +_ECSGN = "EC2SecurityGroupName" +_ECSGI = "EC2SecurityGroupId" +_ECSGOI = "EC2SecurityGroupOwnerId" +_ECSG = "EC2SecurityGroup" +_ECSGL = "EC2SecurityGroupList" +_IPR = "IPRange" +_IPRL = "IPRangeList" +_DBSG = "DBSecurityGroup" +_OI = "OwnerId" +_DBSGD = "DBSecurityGroupDescription" +_VI = "VpcId" +_ECSGe = "EC2SecurityGroups" +_IPRa = "IPRanges" +_DBSGA = "DBSecurityGroupArn" +_ADBSGIO = "AuthorizeDBSecurityGroupIngressOutput" +_cADBSGIR = "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressResult" +_DBSGNFFe = "DBSecurityGroupNotFoundFault" +_IDBSGSF = "InvalidDBSecurityGroupStateFault" +_ADBSGI = "AuthorizeDBSecurityGroupIngress" +_BO = "BooleanOptional" +_BDBCI = "BacktrackDBClusterInput" +_cBDBCM = "com.amazonaws.rds#BacktrackDBClusterMessage" +_BT = "BacktrackTo" +_F = "Force" +_UETOPITU = "UseEarliestTimeOnPointInTimeUnavailable" +_BDBCO = "BacktrackDBClusterOutput" +_cDBCB = "com.amazonaws.rds#DBClusterBacktrack" +_BI = "BacktrackIdentifier" +_BF = "BacktrackedFrom" +_BRCT = "BacktrackRequestCreationTime" +_BDBC = "BacktrackDBCluster" +_DBCRI = "DBCapacityReservationIdentifier" +_CDBCRI = "CancelDBCapacityReservationInput" +_cCDBCRR = "com.amazonaws.rds#CancelDBCapacityReservationRequest" +_ACPAZ = "AvailableCapacityPerAvailabilityZone" +_AZ = "AvailabilityZone" +_AC = "AvailableCapacity" +_ACPAZL = "AvailableCapacityPerAvailabilityZoneList" +_DBCRCI = "DBCapacityReservationCommitmentInfo" +_CCPAZ = "CommittedCapacityPerAvailabilityZone" +_CED = "CommitmentEndDate" +_DBCRN = "DBCapacityReservationName" +_DBIC = "DBInstanceClass" +_DBCRS = "DBCapacityReservationState" +_ac = "active" +_e = "expired" +_ca = "cancelled" +_p = "pending" +_f = "failed" +_as = "assessing" +_sc = "scheduled" +_d = "delayed" +_un = "unsupported" +_DBCR = "DBCapacityReservation" +_En = "Engine" +_LM = "LicenseModel" +_RCPAZ = "ReservedCapacityPerAvailabilityZone" +_ED = "EndDate" +_CD = "CreateDate" +_SD = "StartDate" +_CI = "CommitmentInfo" +_Sta = "State" +_DBCRA = "DBCapacityReservationArn" +_CDBCRO = "CancelDBCapacityReservationOutput" +_cCDBCRRo = "com.amazonaws.rds#CancelDBCapacityReservationResponse" +_IDBCRSF = "InvalidDBCapacityReservationStateFault" +_CDBCR = "CancelDBCapacityReservation" +_CETI = "CancelExportTaskInput" +_cCETM = "com.amazonaws.rds#CancelExportTaskMessage" +_ETI = "ExportTaskIdentifier" +_SL = "StringList" +_EST = "ExportSourceType" +_SNAPSHOT = "SNAPSHOT" +_CLUSTER = "CLUSTER" +_CETO = "CancelExportTaskOutput" +_cET = "com.amazonaws.rds#ExportTask" +_SA = "SourceArn" +_EO = "ExportOnly" +_STn = "SnapshotTime" +_TST = "TaskStartTime" +_TET = "TaskEndTime" +_SB = "S3Bucket" +_SP = "S3Prefix" +_IRA = "IamRoleArn" +_KKI = "KmsKeyId" +_PP = "PercentProgress" +_TEDIGB = "TotalExtractedDataInGB" +_FC = "FailureCause" +_WM = "WarningMessage" +_ETNFF = "ExportTaskNotFoundFault" +_IETSF = "InvalidExportTaskStateFault" +_CET = "CancelExportTask" +_CDBCPGI = "CopyDBClusterParameterGroupInput" +_cCDBCPGM = "com.amazonaws.rds#CopyDBClusterParameterGroupMessage" +_SDBCPGI = "SourceDBClusterParameterGroupIdentifier" +_TDBCPGI = "TargetDBClusterParameterGroupIdentifier" +_TDBCPGD = "TargetDBClusterParameterGroupDescription" +_DBCPG = "DBClusterParameterGroup" +_DBCPGN = "DBClusterParameterGroupName" +_DBPGF = "DBParameterGroupFamily" +_DBCPGA = "DBClusterParameterGroupArn" +_CDBCPGO = "CopyDBClusterParameterGroupOutput" +_cCDBCPGR = "com.amazonaws.rds#CopyDBClusterParameterGroupResult" +_DBPGAEF = "DBParameterGroupAlreadyExistsFault" +_DBPGNFF = "DBParameterGroupNotFoundFault" +_DBPGQEF = "DBParameterGroupQuotaExceededFault" +_CDBCPG = "CopyDBClusterParameterGroup" +_SS = "SensitiveString" +_smithy = "smithy.api#sensitive" +_CDBCSI = "CopyDBClusterSnapshotInput" +_cCDBCSM = "com.amazonaws.rds#CopyDBClusterSnapshotMessage" +_SDBCSI = "SourceDBClusterSnapshotIdentifier" +_TDBCSI = "TargetDBClusterSnapshotIdentifier" +_PSU = "PreSignedUrl" +_CT = "CopyTags" +_AZv = "AvailabilityZones" +_SET = "StorageEncryptionType" +_UNENCRYPTED = "UNENCRYPTED" +_n = "none" +_CMK = "CMK" +_sk = "sse-kms" +_SSE = "SSE" +_sr = "sse-rds" +_DBCS = "DBClusterSnapshot" +_DBCSI = "DBClusterSnapshotIdentifier" +_SCTn = "SnapshotCreateTime" +_EMn = "EngineMode" +_P = "Port" +_CCT = "ClusterCreateTime" +_MU = "MasterUsername" +_EV = "EngineVersion" +_STna = "SnapshotType" +_SE = "StorageEncrypted" +_BRP = "BackupRetentionPeriod" +_PBW = "PreferredBackupWindow" +_DBCSA = "DBClusterSnapshotArn" +_SDBCSA = "SourceDBClusterSnapshotArn" +_IAMDAE = "IAMDatabaseAuthenticationEnabled" +_DCRI = "DbClusterResourceId" +_DBSI = "DBSystemId" +_CDBCSO = "CopyDBClusterSnapshotOutput" +_cCDBCSR = "com.amazonaws.rds#CopyDBClusterSnapshotResult" +_DBCSAEF = "DBClusterSnapshotAlreadyExistsFault" +_DBCSNFF = "DBClusterSnapshotNotFoundFault" +_IDBCSSF = "InvalidDBClusterSnapshotStateFault" +_KMSKNAF = "KMSKeyNotAccessibleFault" +_SQEF = "SnapshotQuotaExceededFault" +_CDBCS = "CopyDBClusterSnapshot" +_CDBPGI = "CopyDBParameterGroupInput" +_cCDBPGM = "com.amazonaws.rds#CopyDBParameterGroupMessage" +_SDBPGI = "SourceDBParameterGroupIdentifier" +_TDBPGI = "TargetDBParameterGroupIdentifier" +_TDBPGD = "TargetDBParameterGroupDescription" +_DBPG = "DBParameterGroup" +_DBPGN = "DBParameterGroupName" +_DBPGA = "DBParameterGroupArn" +_CDBPGO = "CopyDBParameterGroupOutput" +_cCDBPGR = "com.amazonaws.rds#CopyDBParameterGroupResult" +_CDBPG = "CopyDBParameterGroup" +_TSa = "TagSpecification" +_RT = "ResourceType" +_TSL = "TagSpecificationList" +_i = "item" +_CDBSI = "CopyDBSnapshotInput" +_cCDBSM = "com.amazonaws.rds#CopyDBSnapshotMessage" +_SDBSI = "SourceDBSnapshotIdentifier" +_TDBSI = "TargetDBSnapshotIdentifier" +_OGN = "OptionGroupName" +_TCAZ = "TargetCustomAvailabilityZone" +_STnap = "SnapshotTarget" +_COG = "CopyOptionGroup" +_SAZ = "SnapshotAvailabilityZone" +_TSag = "TagSpecifications" +_LO = "LongOptional" +_PF = "ProcessorFeature" +_N = "Name" +_PFL = "ProcessorFeatureList" +_DBS = "DBSnapshot" +_DBSIn = "DBSnapshotIdentifier" +_ICT = "InstanceCreateTime" +_Io = "Iops" +_SR = "SourceRegion" +_TCA = "TdeCredentialArn" +_Enc = "Encrypted" +_DBSA = "DBSnapshotArn" +_Ti = "Timezone" +_PFr = "ProcessorFeatures" +_DRI = "DbiResourceId" +_OSCT = "OriginalSnapshotCreateTime" +_SDT = "SnapshotDatabaseTime" +_MT = "MultiTenant" +_DLV = "DedicatedLogVolume" +_ASVd = "AdditionalStorageVolumes" +_FSSIB = "FullSnapshotSizeInBytes" +_CDBSO = "CopyDBSnapshotOutput" +_cCDBSR = "com.amazonaws.rds#CopyDBSnapshotResult" +_CAZNFF = "CustomAvailabilityZoneNotFoundFault" +_DBSAEF = "DBSnapshotAlreadyExistsFault" +_IDBSSF = "InvalidDBSnapshotStateFault" +_CDBS = "CopyDBSnapshot" +_COGI = "CopyOptionGroupInput" +_cCOGM = "com.amazonaws.rds#CopyOptionGroupMessage" +_SOGI = "SourceOptionGroupIdentifier" +_TOGI = "TargetOptionGroupIdentifier" +_TOGD = "TargetOptionGroupDescription" +_DBSGM = "DBSecurityGroupMembership" +_DBSGML = "DBSecurityGroupMembershipList" +_PSOSV = "PotentiallySensitiveOptionSettingValue" +_OS = "OptionSetting" +_DV = "DefaultValue" +_AT = "ApplyType" +_DT = "DataType" +_AV = "AllowedValues" +_IM = "IsModifiable" +_IC = "IsCollection" +_OSCL = "OptionSettingConfigurationList" +_VSGM = "VpcSecurityGroupMembership" +_VSGI = "VpcSecurityGroupId" +_VSGML = "VpcSecurityGroupMembershipList" +_O = "Option" +_ON = "OptionName" +_OD = "OptionDescription" +_Pe = "Persistent" +_Per = "Permanent" +_OV = "OptionVersion" +_OSp = "OptionSettings" +_DBSGMe = "DBSecurityGroupMemberships" +_VSGMp = "VpcSecurityGroupMemberships" +_OL = "OptionsList" +_OG = "OptionGroup" +_OGD = "OptionGroupDescription" +_EN = "EngineName" +_MEV = "MajorEngineVersion" +_Op = "Options" +_AVANVIM = "AllowsVpcAndNonVpcInstanceMemberships" +_OGA = "OptionGroupArn" +_SOG = "SourceOptionGroup" +_SAI = "SourceAccountId" +_CTo = "CopyTimestamp" +_COGO = "CopyOptionGroupOutput" +_cCOGR = "com.amazonaws.rds#CopyOptionGroupResult" +_OGAEF = "OptionGroupAlreadyExistsFault" +_OGNFF = "OptionGroupNotFoundFault" +_OGQEF = "OptionGroupQuotaExceededFault" +_BGDAEF = "BlueGreenDeploymentAlreadyExistsFault" +_BGDN = "BlueGreenDeploymentName" +_DA = "DatabaseArn" +_TDBCPGN = "TargetDBClusterParameterGroupName" +_TDBIC = "TargetDBInstanceClass" +_TDBPGN = "TargetDBParameterGroupName" +_TEV = "TargetEngineVersion" +_DBACA = "DBAndClusterArn" +_KKIOA = "KmsKeyIdOrArn" +_TRC = "TargetResourceConfiguration" +_TKKI = "TargetKmsKeyId" +_TRCL = "TargetResourceConfigurationList" +_TSTa = "TargetStorageType" +_CBGDI = "CreateBlueGreenDeploymentInput" +_cCBGDR = "com.amazonaws.rds#CreateBlueGreenDeploymentRequest" +_So = "Source" +_UTSC = "UpgradeTargetStorageConfig" +_TI = "TargetIops" +_TAS = "TargetAllocatedStorage" +_TSTar = "TargetStorageThroughput" +_TRCa = "TargetResourceConfigurations" +_BGDI = "BlueGreenDeploymentIdentifier" +_BGDS = "BlueGreenDeploymentStatus" +_BGDSD = "BlueGreenDeploymentStatusDetails" +_SDS = "SwitchoverDetailStatus" +_SDw = "SwitchoverDetail" +_SM = "SourceMember" +_TM = "TargetMember" +_SDL = "SwitchoverDetailList" +_BGDTN = "BlueGreenDeploymentTaskName" +_BGDTS = "BlueGreenDeploymentTaskStatus" +_BGDT = "BlueGreenDeploymentTask" +_BGDTL = "BlueGreenDeploymentTaskList" +_BGD = "BlueGreenDeployment" +_Tar = "Target" +_SDwi = "SwitchoverDetails" +_Tas = "Tasks" +_SDt = "StatusDetails" +_CTr = "CreateTime" +_DTe = "DeleteTime" +_CBGDO = "CreateBlueGreenDeploymentOutput" +_cCBGDRo = "com.amazonaws.rds#CreateBlueGreenDeploymentResponse" +_DBCPGNFF = "DBClusterParameterGroupNotFoundFault" +_DBCQEF = "DBClusterQuotaExceededFault" +_IQEF = "InstanceQuotaExceededFault" +_SCNSF = "SourceClusterNotSupportedFault" +_SDNSF = "SourceDatabaseNotSupportedFault" +_SQEFt = "StorageQuotaExceededFault" +_CBGD = "CreateBlueGreenDeployment" +_CCDBEVF = "CreateCustomDBEngineVersionFault" +_BN = "BucketName" +_Str = "String255" +_CEN = "CustomEngineName" +_CEV = "CustomEngineVersion" +_CDBEVM = "CustomDBEngineVersionManifest" +_CCDBEVI = "CreateCustomDBEngineVersionInput" +_cCCDBEVM = "com.amazonaws.rds#CreateCustomDBEngineVersionMessage" +_DIFSBN = "DatabaseInstallationFilesS3BucketName" +_DIFSP = "DatabaseInstallationFilesS3Prefix" +_DIF = "DatabaseInstallationFiles" +_II = "ImageId" +_KMSKI = "KMSKeyId" +_SCDEVI = "SourceCustomDbEngineVersionIdentifier" +_UAPLI = "UseAwsProvidedLatestImage" +_Ma = "Manifest" +_CS = "CharacterSet" +_CSN = "CharacterSetName" +_CSD = "CharacterSetDescription" +_LTL = "LogTypeList" +_CDBEVAMI = "CustomDBEngineVersionAMI" +_DO = "DoubleOptional" +_SVFS = "ServerlessV2FeaturesSupport" +_MC = "MinCapacity" +_MCa = "MaxCapacity" +_CACIL = "CACertificateIdentifiersList" +_SCSL = "SupportedCharacterSetsList" +_EML = "EngineModeList" +_FNL = "FeatureNameList" +_TN = "TimezoneName" +_STL = "SupportedTimezonesList" +_UT = "UpgradeTarget" +_AU = "AutoUpgrade" +_IMVU = "IsMajorVersionUpgrade" +_SEM = "SupportedEngineModes" +_SPQ = "SupportsParallelQuery" +_SGD = "SupportsGlobalDatabases" +_SBu = "SupportsBabelfish" +_SLD = "SupportsLimitlessDatabase" +_SLWF = "SupportsLocalWriteForwarding" +_SIu = "SupportsIntegrations" +_VUTL = "ValidUpgradeTargetList" +_CCDBEVO = "CreateCustomDBEngineVersionOutput" +_cDBEV = "com.amazonaws.rds#DBEngineVersion" +_DBED = "DBEngineDescription" +_DBEVA = "DBEngineVersionArn" +_DBEVD = "DBEngineVersionDescription" +_DCS = "DefaultCharacterSet" +_FR = "FailureReason" +_Im = "Image" +_DBEMT = "DBEngineMediaType" +_SCS = "SupportedCharacterSets" +_SNCS = "SupportedNcharCharacterSets" +_VUT = "ValidUpgradeTarget" +_STu = "SupportedTimezones" +_ELT = "ExportableLogTypes" +_SLETCL = "SupportsLogExportsToCloudwatchLogs" +_SRR = "SupportsReadReplica" +_SFN = "SupportedFeatureNames" +_SCRWR = "SupportsCertificateRotationWithoutRestart" +_SCACI = "SupportedCACertificateIdentifiers" +_CDBEVAEF = "CustomDBEngineVersionAlreadyExistsFault" +_CDBEVNFF = "CustomDBEngineVersionNotFoundFault" +_CDBEVQEF = "CustomDBEngineVersionQuotaExceededFault" +_EIPNSF = "Ec2ImagePropertiesNotSupportedFault" +_ICDBEVSF = "InvalidCustomDBEngineVersionStateFault" +_CCDBEV = "CreateCustomDBEngineVersion" +_CDBCRIr = "CreateDBCapacityReservationInput" +_cCDBCRRom = "com.amazonaws.rds#CreateDBCapacityReservationRequest" +_CPAZ = "CapacityPerAvailabilityZone" +_CDo = "CommitmentDuration" +_CDBCROr = "CreateDBCapacityReservationOutput" +_cCDBCRRoma = "com.amazonaws.rds#CreateDBCapacityReservationResponse" +_DBCRAEFa = "DBCapacityReservationAlreadyExistsFault" +_DBCRUF = "DBCapacityReservationUnsupportedFault" +_IDBICF = "InsufficientDBInstanceCapacityFault" +_CDBCRr = "CreateDBCapacityReservation" +_DBCAR = "DBClusterAssociatedRole" +_DBCARl = "DBClusterAssociatedRoles" +_CST = "ClusterScalabilityType" +_STANDARD = "STANDARD" +_stan = "standard" +_LIMITLESS = "LIMITLESS" +_li = "limitless" +_DIM = "DatabaseInsightsMode" +_ADVANCED = "ADVANCED" +_ad = "advanced" +_GCI = "GlobalClusterIdentifier" +_MUAT = "MasterUserAuthenticationType" +_PASSWORD = "PASSWORD" +_pa = "password" +_IDA = "IAM_DB_AUTH" +_ida = "iam-db-auth" +_RM = "ReplicaMode" +_ORO = "OPEN_READ_ONLY" +_oro = "open-read-only" +_MOUNTED = "MOUNTED" +_mo = "mounted" +_RCCC = "RdsCustomClusterConfiguration" +_ISI = "InterconnectSubnetId" +_TGMDI = "TransitGatewayMulticastDomainId" +_SC = "ScalingConfiguration" +_AP = "AutoPause" +_SUAP = "SecondsUntilAutoPause" +_TA = "TimeoutAction" +_SBT = "SecondsBeforeTimeout" +_SVSC = "ServerlessV2ScalingConfiguration" +_VSGIL = "VpcSecurityGroupIdList" +_CDBCI = "CreateDBClusterInput" +_cCDBCM = "com.amazonaws.rds#CreateDBClusterMessage" +_DN = "DatabaseName" +_VSGIp = "VpcSecurityGroupIds" +_DBSGNu = "DBSubnetGroupName" +_MUP = "MasterUserPassword" +_PMW = "PreferredMaintenanceWindow" +_RSI = "ReplicationSourceIdentifier" +_EIAMDA = "EnableIAMDatabaseAuthentication" +_BW = "BacktrackWindow" +_ECLE = "EnableCloudwatchLogsExports" +_DBCIC = "DBClusterInstanceClass" +_PA = "PubliclyAccessible" +_AMVU = "AutoMinorVersionUpgrade" +_DP = "DeletionProtection" +_EHE = "EnableHttpEndpoint" +_CTTS = "CopyTagsToSnapshot" +_Do = "Domain" +_DIAMRN = "DomainIAMRoleName" +_EGWF = "EnableGlobalWriteForwarding" +_NT = "NetworkType" +_MI = "MonitoringInterval" +_MRA = "MonitoringRoleArn" +_EPI = "EnablePerformanceInsights" +_PIKMSKI = "PerformanceInsightsKMSKeyId" +_PIRP = "PerformanceInsightsRetentionPeriod" +_ELD = "EnableLimitlessDatabase" +_MMUP = "ManageMasterUserPassword" +_ELWF = "EnableLocalWriteForwarding" +_MUSKKI = "MasterUserSecretKmsKeyId" +_CACI = "CACertificateIdentifier" +_ELS = "EngineLifecycleSupport" +_WEC = "WithExpressConfiguration" +_AR = "AssociatedRoles" +_DBCRl = "DBClusterRole" +_DBCRlu = "DBClusterRoles" +_CDe = "CertificateDetails" +_CAId = "CAIdentifier" +_VT = "ValidTill" +_DBCM = "DBClusterMember" +_ICW = "IsClusterWriter" +_DBCPGS = "DBClusterParameterGroupStatus" +_PT = "PromotionTier" +_DBCML = "DBClusterMemberList" +_DBCOGS = "DBClusterOptionGroupStatus" +_DBCOGN = "DBClusterOptionGroupName" +_DBCOGM = "DBClusterOptionGroupMemberships" +_DBCOG = "DBClusterOptionGroup" +_DM = "DomainMembership" +_FQDN = "FQDN" +_IAMRN = "IAMRoleName" +_OU = "OU" +_ASA = "AuthSecretArn" +_DI = "DnsIps" +_DML = "DomainMembershipList" +_WFS = "WriteForwardingStatus" +_ENABLED = "ENABLED" +_en = "enabled" +_DISABLED = "DISABLED" +_di = "disabled" +_ENABLING = "ENABLING" +_ena = "enabling" +_DISABLING = "DISABLING" +_dis = "disabling" +_UNKNOWN = "UNKNOWN" +_unk = "unknown" +_LDS = "LimitlessDatabaseStatus" +_ACTIVE = "ACTIVE" +_NIU = "NOT_IN_USE" +_niu = "not-in-use" +_MMC = "MODIFYING_MAX_CAPACITY" +_mmc = "modifying-max-capacity" +_ERROR = "ERROR" +_er = "error" +_LD = "LimitlessDatabase" +_MRACU = "MinRequiredACU" +_LWFS = "LocalWriteForwardingStatus" +_REQUESTED = "REQUESTED" +_r = "requested" +_MUS = "MasterUserSecret" +_SAe = "SecretArn" +_SSe = "SecretStatus" +_PCLE = "PendingCloudwatchLogsExports" +_LTTE = "LogTypesToEnable" +_LTTD = "LogTypesToDisable" +_CPMV = "ClusterPendingModifiedValues" +_RRIL = "ReadReplicaIdentifierList" +_RRI = "ReadReplicaIdentifier" +_SCI = "ScalingConfigurationInfo" +_SVSCI = "ServerlessV2ScalingConfigurationInfo" +_DBCSIl = "DBClusterStatusInfo" +_STta = "StatusType" +_No = "Normal" +_Me = "Message" +_DBCSIL = "DBClusterStatusInfoList" +_URO = "UpgradeRolloutOrder" +_FIRST = "FIRST" +_fi = "first" +_SECOND = "SECOND" +_se = "second" +_LAST = "LAST" +_la = "last" +_DBC = "DBCluster" +_DBSGu = "DBSubnetGroup" +_ERT = "EarliestRestorableTime" +_End = "Endpoint" +_RE = "ReaderEndpoint" +_CE = "CustomEndpoints" +_MAZ = "MultiAZ" +_LRT = "LatestRestorableTime" +_RRIe = "ReadReplicaIdentifiers" +_SIt = "StatusInfos" +_DBCMl = "DBClusterMembers" +_VSG = "VpcSecurityGroups" +_HZI = "HostedZoneId" +_DBCA = "DBClusterArn" +_CGI = "CloneGroupId" +_EBT = "EarliestBacktrackTime" +_BCCR = "BacktrackConsumedChangeRecords" +_ECLEn = "EnabledCloudwatchLogsExports" +_C = "Capacity" +_PMV = "PendingModifiedValues" +_IOONAMT = "IOOptimizedNextAllowedModificationTime" +_HEE = "HttpEndpointEnabled" +_ASKKI = "ActivityStreamKmsKeyId" +_ASKSN = "ActivityStreamKinesisStreamName" +_CAC = "CrossAccountClone" +_DMo = "DomainMemberships" +_GWFS = "GlobalWriteForwardingStatus" +_GWFR = "GlobalWriteForwardingRequested" +_ART = "AutomaticRestartTime" +_SVPV = "ServerlessV2PlatformVersion" +_PIE = "PerformanceInsightsEnabled" +_ABRPA = "AwsBackupRecoveryPointArn" +_VPCNE = "VPCNetworkingEnabled" +_IAGE = "InternetAccessGatewayEnabled" +_CDBCO = "CreateDBClusterOutput" +_cCDBCR = "com.amazonaws.rds#CreateDBClusterResult" +_DBCAEF = "DBClusterAlreadyExistsFault" +_DBSGDNCEAZ = "DBSubnetGroupDoesNotCoverEnoughAZs" +_DBSGNFFu = "DBSubnetGroupNotFoundFault" +_DNFF = "DomainNotFoundFault" +_GCNFF = "GlobalClusterNotFoundFault" +_ISCCF = "InsufficientStorageClusterCapacityFault" +_IDBSGF = "InvalidDBSubnetGroupFault" +_IDBSGSFn = "InvalidDBSubnetGroupStateFault" +_IGCSF = "InvalidGlobalClusterStateFault" +_IS = "InvalidSubnet" +_IVPCNSF = "InvalidVPCNetworkStateFault" +_NTNS = "NetworkTypeNotSupported" +_STNSF = "StorageTypeNotSupportedFault" +_VECVE = "VpcEncryptionControlViolationException" +_CDBC = "CreateDBCluster" +_CDBCEI = "CreateDBClusterEndpointInput" +_cCDBCEM = "com.amazonaws.rds#CreateDBClusterEndpointMessage" +_DBCEI = "DBClusterEndpointIdentifier" +_ET = "EndpointType" +_SMt = "StaticMembers" +_EMx = "ExcludedMembers" +_CDBCEO = "CreateDBClusterEndpointOutput" +_cDBCE = "com.amazonaws.rds#DBClusterEndpoint" +_DBCERI = "DBClusterEndpointResourceIdentifier" +_CETu = "CustomEndpointType" +_DBCEA = "DBClusterEndpointArn" +_DBCEAEF = "DBClusterEndpointAlreadyExistsFault" +_DBCEQEF = "DBClusterEndpointQuotaExceededFault" +_CDBCE = "CreateDBClusterEndpoint" +_CDBCPGIr = "CreateDBClusterParameterGroupInput" +_cCDBCPGMo = "com.amazonaws.rds#CreateDBClusterParameterGroupMessage" +_CDBCPGOr = "CreateDBClusterParameterGroupOutput" +_cCDBCPGRo = "com.amazonaws.rds#CreateDBClusterParameterGroupResult" +_CDBCPGr = "CreateDBClusterParameterGroup" +_CDBCSIr = "CreateDBClusterSnapshotInput" +_cCDBCSMo = "com.amazonaws.rds#CreateDBClusterSnapshotMessage" +_CDBCSOr = "CreateDBClusterSnapshotOutput" +_cCDBCSRo = "com.amazonaws.rds#CreateDBClusterSnapshotResult" +_CDBCSr = "CreateDBClusterSnapshot" +_ANFF = "AuthorizationNotFoundFault" +_BPNFF = "BackupPolicyNotFoundFault" +_CNFF = "CertificateNotFoundFault" +_DBSGNL = "DBSecurityGroupNameList" +_CDBII = "CreateDBInstanceInput" +_cCDBIM = "com.amazonaws.rds#CreateDBInstanceMessage" +_DBN = "DBName" +_DBSGe = "DBSecurityGroups" +_NCSN = "NcharCharacterSetName" +_TCP = "TdeCredentialPassword" +_DF = "DomainFqdn" +_DOo = "DomainOu" +_DASA = "DomainAuthSecretArn" +_DDI = "DomainDnsIps" +_ECOI = "EnableCustomerOwnedIp" +_BTa = "BackupTarget" +_CIIP = "CustomIamInstanceProfile" +_DBIR = "DBInstanceRole" +_DBIRn = "DBInstanceRoles" +_AM = "AutomationMode" +_FULL = "FULL" +_fu = "full" +_AP_ = "ALL_PAUSED" +_ap = "all-paused" +_DBIABR = "DBInstanceAutomatedBackupsReplication" +_DBIABA = "DBInstanceAutomatedBackupsArn" +_DBIABRL = "DBInstanceAutomatedBackupsReplicationList" +_DBPGS = "DBParameterGroupStatus" +_PAS = "ParameterApplyStatus" +_DBPGSL = "DBParameterGroupStatusList" +_Ou = "Outpost" +_Ar = "Arn" +_Su = "Subnet" +_SIub = "SubnetIdentifier" +_SAZu = "SubnetAvailabilityZone" +_SO = "SubnetOutpost" +_SSu = "SubnetStatus" +_SLu = "SubnetList" +_DBSGDu = "DBSubnetGroupDescription" +_SGS = "SubnetGroupStatus" +_Sub = "Subnets" +_DBSGAu = "DBSubnetGroupArn" +_SNT = "SupportedNetworkTypes" +_Ad = "Address" +_OGM = "OptionGroupMembership" +_OGML = "OptionGroupMembershipList" +_RFAMT = "ResumeFullAutomationModeTime" +_RRDBCIL = "ReadReplicaDBClusterIdentifierList" +_RRDBCI = "ReadReplicaDBClusterIdentifier" +_RRDBIIL = "ReadReplicaDBInstanceIdentifierList" +_RRDBII = "ReadReplicaDBInstanceIdentifier" +_DBISI = "DBInstanceStatusInfo" +_DBISIL = "DBInstanceStatusInfoList" +_DBI = "DBInstance" +_DBIS = "DBInstanceStatus" +_DBPGa = "DBParameterGroups" +_RRSDBII = "ReadReplicaSourceDBInstanceIdentifier" +_RRDBIIe = "ReadReplicaDBInstanceIdentifiers" +_RRDBCIe = "ReadReplicaDBClusterIdentifiers" +_OGMp = "OptionGroupMemberships" +_SAZe = "SecondaryAvailabilityZone" +_DIP = "DbInstancePort" +_EMRA = "EnhancedMonitoringResourceArn" +_DBIA = "DBInstanceArn" +_LE = "ListenerEndpoint" +_COIE = "CustomerOwnedIpEnabled" +_ASENAFI = "ActivityStreamEngineNativeAuditFieldsIncluded" +_DBIABRn = "DBInstanceAutomatedBackupsReplications" +_RRSDBCI = "ReadReplicaSourceDBClusterIdentifier" +_ISCUA = "IsStorageConfigUpgradeAvailable" +_CDBIO = "CreateDBInstanceOutput" +_cCDBIR = "com.amazonaws.rds#CreateDBInstanceResult" +_DBIAEF = "DBInstanceAlreadyExistsFault" +_PINAIAZF = "ProvisionedIopsNotAvailableInAZFault" +_TDQEF = "TenantDatabaseQuotaExceededFault" +_CDBI = "CreateDBInstance" +_CDBIRRI = "CreateDBInstanceReadReplicaInput" +_cCDBIRRM = "com.amazonaws.rds#CreateDBInstanceReadReplicaMessage" +_SDBII = "SourceDBInstanceIdentifier" +_UDPF = "UseDefaultProcessorFeatures" +_SDBCI = "SourceDBClusterIdentifier" +_USC = "UpgradeStorageConfig" +_CDBIRRO = "CreateDBInstanceReadReplicaOutput" +_cCDBIRRR = "com.amazonaws.rds#CreateDBInstanceReadReplicaResult" +_DBSGNAF = "DBSubnetGroupNotAllowedFault" +_CDBIRR = "CreateDBInstanceReadReplica" +_CDBPGIr = "CreateDBParameterGroupInput" +_cCDBPGMo = "com.amazonaws.rds#CreateDBParameterGroupMessage" +_CDBPGOr = "CreateDBParameterGroupOutput" +_cCDBPGRo = "com.amazonaws.rds#CreateDBParameterGroupResult" +_CDBPGr = "CreateDBParameterGroup" +_ASu = "AuthScheme" +_SECRETS = "SECRETS" +_CPAT = "ClientPasswordAuthType" +_MNP = "MYSQL_NATIVE_PASSWORD" +_MCSP = "MYSQL_CACHING_SHA2_PASSWORD" +_PSS = "POSTGRES_SCRAM_SHA_256" +_PM = "POSTGRES_MD5" +_SSA = "SQL_SERVER_AUTHENTICATION" +_IAMAM = "IAMAuthMode" +_REQUIRED = "REQUIRED" +_AUN = "AuthUserName" +_UAC = "UserAuthConfig" +_UN = "UserName" +_IAMA = "IAMAuth" +_UACL = "UserAuthConfigList" +_DBPN = "DBProxyName" +_DAS = "DefaultAuthScheme" +_IA = "IAM_AUTH" +_NONE = "NONE" +_ENT = "EndpointNetworkType" +_IPV = "IPV4" +_IPV_ = "IPV6" +_DUAL = "DUAL" +_EF = "EngineFamily" +_MYSQL = "MYSQL" +_POSTGRESQL = "POSTGRESQL" +_SQLSERVER = "SQLSERVER" +_TCNT = "TargetConnectionNetworkType" +_CDBPI = "CreateDBProxyInput" +_cCDBPR = "com.amazonaws.rds#CreateDBProxyRequest" +_Au = "Auth" +_VSI = "VpcSubnetIds" +_RTLS = "RequireTLS" +_ICTd = "IdleClientTimeout" +_DL = "DebugLogging" +_UACI = "UserAuthConfigInfo" +_UACIL = "UserAuthConfigInfoList" +_DBPS = "DBProxyStatus" +_AVAILABLE = "AVAILABLE" +_av = "available" +_MODIFYING = "MODIFYING" +_mod = "modifying" +_IN = "INCOMPATIBLE_NETWORK" +_in = "incompatible-network" +_IRL = "INSUFFICIENT_RESOURCE_LIMITS" +_irl = "insufficient-resource-limits" +_CREATING = "CREATING" +_cr = "creating" +_DELETING = "DELETING" +_de = "deleting" +_SUSPENDED = "SUSPENDED" +_su = "suspended" +_SUSPENDING = "SUSPENDING" +_sus = "suspending" +_REACTIVATING = "REACTIVATING" +_re = "reactivating" +_DBP = "DBProxy" +_DBPA = "DBProxyArn" +_CDr = "CreatedDate" +_UD = "UpdatedDate" +_CDBPO = "CreateDBProxyOutput" +_cCDBPRo = "com.amazonaws.rds#CreateDBProxyResponse" +_DBPAEF = "DBProxyAlreadyExistsFault" +_DBPQEF = "DBProxyQuotaExceededFault" +_CDBP = "CreateDBProxy" +_DBPEN = "DBProxyEndpointName" +_DBPETR = "DBProxyEndpointTargetRole" +_RW = "READ_WRITE" +_RO = "READ_ONLY" +_CDBPEI = "CreateDBProxyEndpointInput" +_cCDBPER = "com.amazonaws.rds#CreateDBProxyEndpointRequest" +_TR = "TargetRole" +_DBPES = "DBProxyEndpointStatus" +_DBPE = "DBProxyEndpoint" +_DBPEA = "DBProxyEndpointArn" +_ID = "IsDefault" +_CDBPEO = "CreateDBProxyEndpointOutput" +_cCDBPERo = "com.amazonaws.rds#CreateDBProxyEndpointResponse" +_DBPEAEF = "DBProxyEndpointAlreadyExistsFault" +_DBPEQEF = "DBProxyEndpointQuotaExceededFault" +_IDBPSF = "InvalidDBProxyStateFault" +_CDBPE = "CreateDBProxyEndpoint" +_CDBSGI = "CreateDBSecurityGroupInput" +_cCDBSGM = "com.amazonaws.rds#CreateDBSecurityGroupMessage" +_CDBSGO = "CreateDBSecurityGroupOutput" +_cCDBSGR = "com.amazonaws.rds#CreateDBSecurityGroupResult" +_DBSGAEF = "DBSecurityGroupAlreadyExistsFault" +_DBSGNSF = "DBSecurityGroupNotSupportedFault" +_DBSGQEF = "DBSecurityGroupQuotaExceededFault" +_CDBSG = "CreateDBSecurityGroup" +_CDBSGIr = "CreateDBShardGroupInput" +_cCDBSGMo = "com.amazonaws.rds#CreateDBShardGroupMessage" +_DBSGI = "DBShardGroupIdentifier" +_CR = "ComputeRedundancy" +_MACU = "MaxACU" +_MACUi = "MinACU" +_CDBSGOr = "CreateDBShardGroupOutput" +_cDBSG = "com.amazonaws.rds#DBShardGroup" +_DBSGRI = "DBShardGroupResourceId" +_DBSGAh = "DBShardGroupArn" +_DBSGAEFh = "DBShardGroupAlreadyExistsFault" +_MDBSGLR = "MaxDBShardGroupLimitReached" +_UDBEVF = "UnsupportedDBEngineVersionFault" +_CDBSGr = "CreateDBShardGroup" +_CDBSIr = "CreateDBSnapshotInput" +_cCDBSMo = "com.amazonaws.rds#CreateDBSnapshotMessage" +_CDBSOr = "CreateDBSnapshotOutput" +_cCDBSRo = "com.amazonaws.rds#CreateDBSnapshotResult" +_CDBSr = "CreateDBSnapshot" +_SILu = "SubnetIdentifierList" +_CDBSGIre = "CreateDBSubnetGroupInput" +_cCDBSGMom = "com.amazonaws.rds#CreateDBSubnetGroupMessage" +_SIubn = "SubnetIds" +_CDBSGOre = "CreateDBSubnetGroupOutput" +_cCDBSGRo = "com.amazonaws.rds#CreateDBSubnetGroupResult" +_DBSGAEFu = "DBSubnetGroupAlreadyExistsFault" +_DBSGQEFu = "DBSubnetGroupQuotaExceededFault" +_DBSQEF = "DBSubnetQuotaExceededFault" +_CDBSGre = "CreateDBSubnetGroup" +_CESI = "CreateEventSubscriptionInput" +_cCESM = "com.amazonaws.rds#CreateEventSubscriptionMessage" +_ECv = "EventCategories" +_SIou = "SourceIds" +_CESO = "CreateEventSubscriptionOutput" +_cCESR = "com.amazonaws.rds#CreateEventSubscriptionResult" +_ESQEF = "EventSubscriptionQuotaExceededFault" +_SNSITF = "SNSInvalidTopicFault" +_SNSNAF = "SNSNoAuthorizationFault" +_SNSTANFF = "SNSTopicArnNotFoundFault" +_SAEF = "SubscriptionAlreadyExistFault" +_SCNFF = "SubscriptionCategoryNotFoundFault" +_CES = "CreateEventSubscription" +_CGCI = "CreateGlobalClusterInput" +_cCGCM = "com.amazonaws.rds#CreateGlobalClusterMessage" +_FS = "FailoverStatus" +_PENDING = "PENDING" +_FO = "FAILING_OVER" +_fo = "failing-over" +_CANCELLING = "CANCELLING" +_can = "cancelling" +_FSa = "FailoverState" +_FDCA = "FromDbClusterArn" +_TDCA = "ToDbClusterArn" +_IDLA = "IsDataLossAllowed" +_RAL = "ReadersArnList" +_GCMSS = "GlobalClusterMemberSynchronizationStatus" +_CONNECTED = "CONNECTED" +_co = "connected" +_PR = "PENDING_RESYNC" +_pr = "pending-resync" +_GCM = "GlobalClusterMember" +_R = "Readers" +_IW = "IsWriter" +_SSy = "SynchronizationStatus" +_GCML = "GlobalClusterMemberList" +_GC = "GlobalCluster" +_GCRI = "GlobalClusterResourceId" +_GCA = "GlobalClusterArn" +_GCMl = "GlobalClusterMembers" +_CGCO = "CreateGlobalClusterOutput" +_cCGCR = "com.amazonaws.rds#CreateGlobalClusterResult" +_GCAEF = "GlobalClusterAlreadyExistsFault" +_GCQEF = "GlobalClusterQuotaExceededFault" +_IDBSGSFnv = "InvalidDBShardGroupStateFault" +_CGC = "CreateGlobalCluster" +_ECM = "EncryptionContextMap" +_k = "key" +_v = "value" +_DFa = "DataFilter" +_IDn = "IntegrationDescription" +_INn = "IntegrationName" +_CII = "CreateIntegrationInput" +_cCIM = "com.amazonaws.rds#CreateIntegrationMessage" +_TAa = "TargetArn" +_AEC = "AdditionalEncryptionContext" +_IE = "IntegrationError" +_ECr = "ErrorCode" +_EMr = "ErrorMessage" +_IEL = "IntegrationErrorList" +_IAn = "IntegrationArn" +_ISn = "IntegrationStatus" +_FAILED = "FAILED" +_SYNCING = "SYNCING" +_sy = "syncing" +_NA = "NEEDS_ATTENTION" +_na = "needs_attention" +_CIO = "CreateIntegrationOutput" +_cI = "com.amazonaws.rds#Integration" +_Er = "Errors" +_IAEF = "IntegrationAlreadyExistsFault" +_ICOF = "IntegrationConflictOperationFault" +_IQEFn = "IntegrationQuotaExceededFault" +_CIr = "CreateIntegration" +_COGIr = "CreateOptionGroupInput" +_cCOGMo = "com.amazonaws.rds#CreateOptionGroupMessage" +_COGOr = "CreateOptionGroupOutput" +_cCOGRo = "com.amazonaws.rds#CreateOptionGroupResult" +_COGr = "CreateOptionGroup" +_CTDI = "CreateTenantDatabaseInput" +_cCTDM = "com.amazonaws.rds#CreateTenantDatabaseMessage" +_TDBN = "TenantDBName" +_TDPMV = "TenantDatabasePendingModifiedValues" +_TD = "TenantDatabase" +_TDCT = "TenantDatabaseCreateTime" +_TDRI = "TenantDatabaseResourceId" +_TDARN = "TenantDatabaseARN" +_CTDO = "CreateTenantDatabaseOutput" +_cCTDR = "com.amazonaws.rds#CreateTenantDatabaseResult" +_TDAEF = "TenantDatabaseAlreadyExistsFault" +_CTD = "CreateTenantDatabase" +_DBGDI = "DeleteBlueGreenDeploymentInput" +_cDBGDR = "com.amazonaws.rds#DeleteBlueGreenDeploymentRequest" +_DTel = "DeleteTarget" +_DBGDO = "DeleteBlueGreenDeploymentOutput" +_cDBGDRo = "com.amazonaws.rds#DeleteBlueGreenDeploymentResponse" +_IBGDSF = "InvalidBlueGreenDeploymentStateFault" +_DBGD = "DeleteBlueGreenDeployment" +_DCDBEVI = "DeleteCustomDBEngineVersionInput" +_cDCDBEVM = "com.amazonaws.rds#DeleteCustomDBEngineVersionMessage" +_DCDBEVO = "DeleteCustomDBEngineVersionOutput" +_DCDBEV = "DeleteCustomDBEngineVersion" +_DBCABQEF = "DBClusterAutomatedBackupQuotaExceededFault" +_DDBCI = "DeleteDBClusterInput" +_cDDBCM = "com.amazonaws.rds#DeleteDBClusterMessage" +_SFS = "SkipFinalSnapshot" +_FDBSI = "FinalDBSnapshotIdentifier" +_DAB = "DeleteAutomatedBackups" +_DDBCO = "DeleteDBClusterOutput" +_cDDBCR = "com.amazonaws.rds#DeleteDBClusterResult" +_DDBC = "DeleteDBCluster" +_DBCABNFF = "DBClusterAutomatedBackupNotFoundFault" +_DDBCABI = "DeleteDBClusterAutomatedBackupInput" +_cDDBCABM = "com.amazonaws.rds#DeleteDBClusterAutomatedBackupMessage" +_RWe = "RestoreWindow" +_ETa = "EarliestTime" +_LT = "LatestTime" +_DBCAB = "DBClusterAutomatedBackup" +_DBCABA = "DBClusterAutomatedBackupsArn" +_Re = "Region" +_DDBCABO = "DeleteDBClusterAutomatedBackupOutput" +_cDDBCABR = "com.amazonaws.rds#DeleteDBClusterAutomatedBackupResult" +_IDBCABSF = "InvalidDBClusterAutomatedBackupStateFault" +_DDBCAB = "DeleteDBClusterAutomatedBackup" +_DBCENFF = "DBClusterEndpointNotFoundFault" +_DDBCEI = "DeleteDBClusterEndpointInput" +_cDDBCEM = "com.amazonaws.rds#DeleteDBClusterEndpointMessage" +_DDBCEO = "DeleteDBClusterEndpointOutput" +_DDBCE = "DeleteDBClusterEndpoint" +_DDBCPGI = "DeleteDBClusterParameterGroupInput" +_cDDBCPGM = "com.amazonaws.rds#DeleteDBClusterParameterGroupMessage" +_DDBCPGO = "DeleteDBClusterParameterGroupOutput" +_IDBPGSF = "InvalidDBParameterGroupStateFault" +_DDBCPG = "DeleteDBClusterParameterGroup" +_DDBCSI = "DeleteDBClusterSnapshotInput" +_cDDBCSM = "com.amazonaws.rds#DeleteDBClusterSnapshotMessage" +_DDBCSO = "DeleteDBClusterSnapshotOutput" +_cDDBCSR = "com.amazonaws.rds#DeleteDBClusterSnapshotResult" +_DDBCS = "DeleteDBClusterSnapshot" +_DBIABQEF = "DBInstanceAutomatedBackupQuotaExceededFault" +_DDBII = "DeleteDBInstanceInput" +_cDDBIM = "com.amazonaws.rds#DeleteDBInstanceMessage" +_DDBIO = "DeleteDBInstanceOutput" +_cDDBIR = "com.amazonaws.rds#DeleteDBInstanceResult" +_DDBI = "DeleteDBInstance" +_DBIABNFF = "DBInstanceAutomatedBackupNotFoundFault" +_DDBIABI = "DeleteDBInstanceAutomatedBackupInput" +_cDDBIABM = "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupMessage" +_DBIAB = "DBInstanceAutomatedBackup" +_DDBIABO = "DeleteDBInstanceAutomatedBackupOutput" +_cDDBIABR = "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupResult" +_IDBIABSF = "InvalidDBInstanceAutomatedBackupStateFault" +_DDBIAB = "DeleteDBInstanceAutomatedBackup" +_DDBPGI = "DeleteDBParameterGroupInput" +_cDDBPGM = "com.amazonaws.rds#DeleteDBParameterGroupMessage" +_DDBPGO = "DeleteDBParameterGroupOutput" +_DDBPG = "DeleteDBParameterGroup" +_DDBPI = "DeleteDBProxyInput" +_cDDBPR = "com.amazonaws.rds#DeleteDBProxyRequest" +_DDBPO = "DeleteDBProxyOutput" +_cDDBPRo = "com.amazonaws.rds#DeleteDBProxyResponse" +_DDBP = "DeleteDBProxy" +_DDBPEI = "DeleteDBProxyEndpointInput" +_cDDBPER = "com.amazonaws.rds#DeleteDBProxyEndpointRequest" +_DDBPEO = "DeleteDBProxyEndpointOutput" +_cDDBPERo = "com.amazonaws.rds#DeleteDBProxyEndpointResponse" +_IDBPESF = "InvalidDBProxyEndpointStateFault" +_DDBPE = "DeleteDBProxyEndpoint" +_DDBSGI = "DeleteDBSecurityGroupInput" +_cDDBSGM = "com.amazonaws.rds#DeleteDBSecurityGroupMessage" +_DDBSGO = "DeleteDBSecurityGroupOutput" +_DDBSG = "DeleteDBSecurityGroup" +_DDBSGIe = "DeleteDBShardGroupInput" +_cDDBSGMo = "com.amazonaws.rds#DeleteDBShardGroupMessage" +_DDBSGOe = "DeleteDBShardGroupOutput" +_DDBSGe = "DeleteDBShardGroup" +_DDBSI = "DeleteDBSnapshotInput" +_cDDBSM = "com.amazonaws.rds#DeleteDBSnapshotMessage" +_DDBSO = "DeleteDBSnapshotOutput" +_cDDBSR = "com.amazonaws.rds#DeleteDBSnapshotResult" +_DDBS = "DeleteDBSnapshot" +_DDBSGIel = "DeleteDBSubnetGroupInput" +_cDDBSGMom = "com.amazonaws.rds#DeleteDBSubnetGroupMessage" +_DDBSGOel = "DeleteDBSubnetGroupOutput" +_IDBSSFn = "InvalidDBSubnetStateFault" +_DDBSGel = "DeleteDBSubnetGroup" +_DESI = "DeleteEventSubscriptionInput" +_cDESM = "com.amazonaws.rds#DeleteEventSubscriptionMessage" +_DESO = "DeleteEventSubscriptionOutput" +_cDESR = "com.amazonaws.rds#DeleteEventSubscriptionResult" +_IESSF = "InvalidEventSubscriptionStateFault" +_DES = "DeleteEventSubscription" +_DGCI = "DeleteGlobalClusterInput" +_cDGCM = "com.amazonaws.rds#DeleteGlobalClusterMessage" +_DGCO = "DeleteGlobalClusterOutput" +_cDGCR = "com.amazonaws.rds#DeleteGlobalClusterResult" +_DGC = "DeleteGlobalCluster" +_IIn = "IntegrationIdentifier" +_DII = "DeleteIntegrationInput" +_cDIM = "com.amazonaws.rds#DeleteIntegrationMessage" +_DIO = "DeleteIntegrationOutput" +_IISF = "InvalidIntegrationStateFault" +_DIe = "DeleteIntegration" +_DOGI = "DeleteOptionGroupInput" +_cDOGM = "com.amazonaws.rds#DeleteOptionGroupMessage" +_DOGO = "DeleteOptionGroupOutput" +_IOGSF = "InvalidOptionGroupStateFault" +_DOG = "DeleteOptionGroup" +_DTDI = "DeleteTenantDatabaseInput" +_cDTDM = "com.amazonaws.rds#DeleteTenantDatabaseMessage" +_DTDO = "DeleteTenantDatabaseOutput" +_cDTDR = "com.amazonaws.rds#DeleteTenantDatabaseResult" +_DTD = "DeleteTenantDatabase" +_DBPTNFF = "DBProxyTargetNotFoundFault" +_DBPTGN = "DBProxyTargetGroupName" +_DDBPTI = "DeregisterDBProxyTargetsInput" +_cDDBPTR = "com.amazonaws.rds#DeregisterDBProxyTargetsRequest" +_TGN = "TargetGroupName" +_DBIIn = "DBInstanceIdentifiers" +_DBCIl = "DBClusterIdentifiers" +_DDBPTO = "DeregisterDBProxyTargetsOutput" +_cDDBPTRo = "com.amazonaws.rds#DeregisterDBProxyTargetsResponse" +_DDBPT = "DeregisterDBProxyTargets" +_DAAI = "DescribeAccountAttributesInput" +_cDAAM = "com.amazonaws.rds#DescribeAccountAttributesMessage" +_DAAO = "DescribeAccountAttributesOutput" +_cAAM = "com.amazonaws.rds#AccountAttributesMessage" +_AQc = "AccountQuotas" +_DAA = "DescribeAccountAttributes" +_FVL = "FilterValueList" +_Fi = "Filter" +_Va = "Values" +_FL = "FilterList" +_MR = "MaxRecords" +_DBGDIe = "DescribeBlueGreenDeploymentsInput" +_cDBGDRom = "com.amazonaws.rds#DescribeBlueGreenDeploymentsRequest" +_Fil = "Filters" +_Mar = "Marker" +_BGDL = "BlueGreenDeploymentList" +_DBGDOe = "DescribeBlueGreenDeploymentsOutput" +_cDBGDRoma = "com.amazonaws.rds#DescribeBlueGreenDeploymentsResponse" +_BGDl = "BlueGreenDeployments" +_DBGDe = "DescribeBlueGreenDeployments" +_DCI = "DescribeCertificatesInput" +_cDCM = "com.amazonaws.rds#DescribeCertificatesMessage" +_CIe = "CertificateIdentifier" +_Ce = "Certificate" +_CTe = "CertificateType" +_Th = "Thumbprint" +_VF = "ValidFrom" +_CA = "CertificateArn" +_CO = "CustomerOverride" +_COVT = "CustomerOverrideValidTill" +_CL = "CertificateList" +_DCO = "DescribeCertificatesOutput" +_cCM = "com.amazonaws.rds#CertificateMessage" +_DCFNL = "DefaultCertificateForNewLaunches" +_Cer = "Certificates" +_DC = "DescribeCertificates" +_DDBCRI = "DescribeDBCapacityReservationsInput" +_cDDBCRR = "com.amazonaws.rds#DescribeDBCapacityReservationsRequest" +_DBCRL = "DBCapacityReservationList" +_DDBCRO = "DescribeDBCapacityReservationsOutput" +_cDDBCRRo = "com.amazonaws.rds#DescribeDBCapacityReservationsResponse" +_DBCRa = "DBCapacityReservations" +_DDBCR = "DescribeDBCapacityReservations" +_DDBCABIe = "DescribeDBClusterAutomatedBackupsInput" +_cDDBCABMo = "com.amazonaws.rds#DescribeDBClusterAutomatedBackupsMessage" +_DBCABL = "DBClusterAutomatedBackupList" +_DDBCABOe = "DescribeDBClusterAutomatedBackupsOutput" +_cDBCABM = "com.amazonaws.rds#DBClusterAutomatedBackupMessage" +_DBCABl = "DBClusterAutomatedBackups" +_DDBCABe = "DescribeDBClusterAutomatedBackups" +_DBCBNFF = "DBClusterBacktrackNotFoundFault" +_DDBCBI = "DescribeDBClusterBacktracksInput" +_cDDBCBM = "com.amazonaws.rds#DescribeDBClusterBacktracksMessage" +_DBCB = "DBClusterBacktrack" +_DBCBL = "DBClusterBacktrackList" +_DDBCBO = "DescribeDBClusterBacktracksOutput" +_cDBCBM = "com.amazonaws.rds#DBClusterBacktrackMessage" +_DBCBl = "DBClusterBacktracks" +_DDBCB = "DescribeDBClusterBacktracks" +_DDBCEIe = "DescribeDBClusterEndpointsInput" +_cDDBCEMo = "com.amazonaws.rds#DescribeDBClusterEndpointsMessage" +_DBCE = "DBClusterEndpoint" +_DBCEL = "DBClusterEndpointList" +_DDBCEOe = "DescribeDBClusterEndpointsOutput" +_cDBCEM = "com.amazonaws.rds#DBClusterEndpointMessage" +_DBCEl = "DBClusterEndpoints" +_DDBCEe = "DescribeDBClusterEndpoints" +_DDBCPGIe = "DescribeDBClusterParameterGroupsInput" +_cDDBCPGMo = "com.amazonaws.rds#DescribeDBClusterParameterGroupsMessage" +_DBCPGL = "DBClusterParameterGroupList" +_DDBCPGOe = "DescribeDBClusterParameterGroupsOutput" +_cDBCPGM = "com.amazonaws.rds#DBClusterParameterGroupsMessage" +_DBCPGl = "DBClusterParameterGroups" +_DDBCPGe = "DescribeDBClusterParameterGroups" +_DDBCPI = "DescribeDBClusterParametersInput" +_cDDBCPM = "com.amazonaws.rds#DescribeDBClusterParametersMessage" +_AMp = "ApplyMethod" +_im = "immediate" +_pr_ = "pending_reboot" +_pr__ = "pending-reboot" +_PSPV = "PotentiallySensitiveParameterValue" +_Pa = "Parameter" +_PN = "ParameterName" +_PV = "ParameterValue" +_MEVi = "MinimumEngineVersion" +_PL = "ParametersList" +_DDBCPO = "DescribeDBClusterParametersOutput" +_cDBCPGD = "com.amazonaws.rds#DBClusterParameterGroupDetails" +_Par = "Parameters" +_DDBCP = "DescribeDBClusterParameters" +_DDBCIe = "DescribeDBClustersInput" +_cDDBCMo = "com.amazonaws.rds#DescribeDBClustersMessage" +_ISnc = "IncludeShared" +_DBCL = "DBClusterList" +_DDBCOe = "DescribeDBClustersOutput" +_cDBCM = "com.amazonaws.rds#DBClusterMessage" +_DBCl = "DBClusters" +_DDBCe = "DescribeDBClusters" +_DDBCSAI = "DescribeDBClusterSnapshotAttributesInput" +_cDDBCSAM = "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesMessage" +_AVL = "AttributeValueList" +_AVt = "AttributeValue" +_DBCSAl = "DBClusterSnapshotAttribute" +_AN = "AttributeName" +_AVtt = "AttributeValues" +_DBCSAL = "DBClusterSnapshotAttributeList" +_DBCSAR = "DBClusterSnapshotAttributesResult" +_DBCSAlu = "DBClusterSnapshotAttributes" +_DDBCSAO = "DescribeDBClusterSnapshotAttributesOutput" +_cDDBCSAR = "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesResult" +_DDBCSA = "DescribeDBClusterSnapshotAttributes" +_DDBCSIe = "DescribeDBClusterSnapshotsInput" +_cDDBCSMo = "com.amazonaws.rds#DescribeDBClusterSnapshotsMessage" +_IP = "IncludePublic" +_DBCSL = "DBClusterSnapshotList" +_DDBCSOe = "DescribeDBClusterSnapshotsOutput" +_cDBCSM = "com.amazonaws.rds#DBClusterSnapshotMessage" +_DBCSl = "DBClusterSnapshots" +_DDBCSe = "DescribeDBClusterSnapshots" +_DDBEVI = "DescribeDBEngineVersionsInput" +_cDDBEVM = "com.amazonaws.rds#DescribeDBEngineVersionsMessage" +_DOe = "DefaultOnly" +_LSCS = "ListSupportedCharacterSets" +_LST = "ListSupportedTimezones" +_IAnc = "IncludeAll" +_DBEV = "DBEngineVersion" +_DBEVL = "DBEngineVersionList" +_DDBEVO = "DescribeDBEngineVersionsOutput" +_cDBEVM = "com.amazonaws.rds#DBEngineVersionMessage" +_DBEVn = "DBEngineVersions" +_DDBEV = "DescribeDBEngineVersions" +_DDBIABIe = "DescribeDBInstanceAutomatedBackupsInput" +_cDDBIABMo = "com.amazonaws.rds#DescribeDBInstanceAutomatedBackupsMessage" +_DBIABL = "DBInstanceAutomatedBackupList" +_DDBIABOe = "DescribeDBInstanceAutomatedBackupsOutput" +_cDBIABM = "com.amazonaws.rds#DBInstanceAutomatedBackupMessage" +_DBIABn = "DBInstanceAutomatedBackups" +_DDBIABe = "DescribeDBInstanceAutomatedBackups" +_DDBIIe = "DescribeDBInstancesInput" +_cDDBIMo = "com.amazonaws.rds#DescribeDBInstancesMessage" +_DBIL = "DBInstanceList" +_DDBIOe = "DescribeDBInstancesOutput" +_cDBIM = "com.amazonaws.rds#DBInstanceMessage" +_DBIn = "DBInstances" +_DDBIe = "DescribeDBInstances" +_DBINRF = "DBInstanceNotReadyFault" +_DDBLFI = "DescribeDBLogFilesInput" +_cDDBLFM = "com.amazonaws.rds#DescribeDBLogFilesMessage" +_FCi = "FilenameContains" +_FLW = "FileLastWritten" +_FSi = "FileSize" +_DDBLFD = "DescribeDBLogFilesDetails" +_LFN = "LogFileName" +_LW = "LastWritten" +_Si = "Size" +_DDBLFL = "DescribeDBLogFilesList" +_DDBLFO = "DescribeDBLogFilesOutput" +_cDDBLFR = "com.amazonaws.rds#DescribeDBLogFilesResponse" +_DDBLF = "DescribeDBLogFiles" +_DDBMEVI = "DescribeDBMajorEngineVersionsInput" +_cDDBMEVR = "com.amazonaws.rds#DescribeDBMajorEngineVersionsRequest" +_LSN = "LifecycleSupportName" +_OSRSS = "OPEN_SOURCE_RDS_STANDARD_SUPPORT" +_osrss = "open-source-rds-standard-support" +_OSRES = "OPEN_SOURCE_RDS_EXTENDED_SUPPORT" +_osres = "open-source-rds-extended-support" +_SEL = "SupportedEngineLifecycle" +_LSSD = "LifecycleSupportStartDate" +_LSED = "LifecycleSupportEndDate" +_SELL = "SupportedEngineLifecycleList" +_DBMEV = "DBMajorEngineVersion" +_SELu = "SupportedEngineLifecycles" +_DBMEVL = "DBMajorEngineVersionsList" +_DDBMEVO = "DescribeDBMajorEngineVersionsOutput" +_cDDBMEVRo = "com.amazonaws.rds#DescribeDBMajorEngineVersionsResponse" +_DBMEVa = "DBMajorEngineVersions" +_DDBMEV = "DescribeDBMajorEngineVersions" +_DDBPGIe = "DescribeDBParameterGroupsInput" +_cDDBPGMo = "com.amazonaws.rds#DescribeDBParameterGroupsMessage" +_DBPGL = "DBParameterGroupList" +_DDBPGOe = "DescribeDBParameterGroupsOutput" +_cDBPGM = "com.amazonaws.rds#DBParameterGroupsMessage" +_DDBPGe = "DescribeDBParameterGroups" +_DDBPIe = "DescribeDBParametersInput" +_cDDBPM = "com.amazonaws.rds#DescribeDBParametersMessage" +_DDBPOe = "DescribeDBParametersOutput" +_cDBPGD = "com.amazonaws.rds#DBParameterGroupDetails" +_DDBPe = "DescribeDBParameters" +_DDBPIes = "DescribeDBProxiesInput" +_cDDBPRom = "com.amazonaws.rds#DescribeDBProxiesRequest" +_DBPL = "DBProxyList" +_DDBPOes = "DescribeDBProxiesOutput" +_cDDBPRoma = "com.amazonaws.rds#DescribeDBProxiesResponse" +_DBPr = "DBProxies" +_DDBPes = "DescribeDBProxies" +_DDBPEIe = "DescribeDBProxyEndpointsInput" +_cDDBPERom = "com.amazonaws.rds#DescribeDBProxyEndpointsRequest" +_DBPEL = "DBProxyEndpointList" +_DDBPEOe = "DescribeDBProxyEndpointsOutput" +_cDDBPERoma = "com.amazonaws.rds#DescribeDBProxyEndpointsResponse" +_DBPEr = "DBProxyEndpoints" +_DDBPEe = "DescribeDBProxyEndpoints" +_DDBPTGI = "DescribeDBProxyTargetGroupsInput" +_cDDBPTGR = "com.amazonaws.rds#DescribeDBProxyTargetGroupsRequest" +_OSS = "OperatorSensitiveString" +_CPCI = "ConnectionPoolConfigurationInfo" +_MCP = "MaxConnectionsPercent" +_MICP = "MaxIdleConnectionsPercent" +_CBT = "ConnectionBorrowTimeout" +_SPF = "SessionPinningFilters" +_IQ = "InitQuery" +_DBPTG = "DBProxyTargetGroup" +_TGA = "TargetGroupArn" +_CPC = "ConnectionPoolConfig" +_TGL = "TargetGroupList" +_DDBPTGO = "DescribeDBProxyTargetGroupsOutput" +_cDDBPTGRo = "com.amazonaws.rds#DescribeDBProxyTargetGroupsResponse" +_TG = "TargetGroups" +_DDBPTG = "DescribeDBProxyTargetGroups" +_DDBPTIe = "DescribeDBProxyTargetsInput" +_cDDBPTRom = "com.amazonaws.rds#DescribeDBProxyTargetsRequest" +_THR = "TargetHealthReason" +_UNREACHABLE = "UNREACHABLE" +_CF = "CONNECTION_FAILED" +_AF = "AUTH_FAILURE" +_PPC = "PENDING_PROXY_CAPACITY" +_IRS = "INVALID_REPLICATION_STATE" +_PROMOTED = "PROMOTED" +_TSar = "TargetState" +_reg = "registering" +_REGISTERING = "REGISTERING" +_una = "unavailable" +_UNAVAILABLE = "UNAVAILABLE" +_unu = "unused" +_UNUSED = "UNUSED" +_TH = "TargetHealth" +_Rea = "Reason" +_TT = "TargetType" +_RI_ = "RDS_INSTANCE" +_RSE = "RDS_SERVERLESS_ENDPOINT" +_TC = "TRACKED_CLUSTER" +_DBPT = "DBProxyTarget" +_TCI = "TrackedClusterId" +_RRId = "RdsResourceId" +_Ty = "Type" +_Ro = "Role" +_TLa = "TargetList" +_DDBPTOe = "DescribeDBProxyTargetsOutput" +_cDDBPTRoma = "com.amazonaws.rds#DescribeDBProxyTargetsResponse" +_Targ = "Targets" +_DDBPTe = "DescribeDBProxyTargets" +_DDBRI = "DescribeDBRecommendationsInput" +_cDDBRM = "com.amazonaws.rds#DescribeDBRecommendationsMessage" +_LUA = "LastUpdatedAfter" +_LUB = "LastUpdatedBefore" +_Lo = "Locale" +_PIMDG = "PerformanceInsightsMetricDimensionGroup" +_Di = "Dimensions" +_G = "Group" +_Li = "Limit" +_PIMQ = "PerformanceInsightsMetricQuery" +_GB = "GroupBy" +_Met = "Metric" +_MQ = "MetricQuery" +_Dou = "Double" +_SRD = "ScalarReferenceDetails" +_RD = "ReferenceDetails" +_MRe = "MetricReference" +_MRL = "MetricReferenceList" +_Ref = "References" +_SDta = "StatisticsDetails" +_ML = "MetricList" +_PID = "PerformanceIssueDetails" +_STtar = "StartTime" +_ETn = "EndTime" +_Metr = "Metrics" +_An = "Analysis" +_IDs = "IssueDetails" +_DLo = "DocLink" +_Te = "Text" +_Ur = "Url" +_DLL = "DocLinkList" +_CAo = "ContextAttribute" +_CAL = "ContextAttributeList" +_RAP = "RecommendedActionParameter" +_RAPL = "RecommendedActionParameterList" +_RAe = "RecommendedAction" +_AI = "ActionId" +_Tit = "Title" +_Ope = "Operation" +_AMpp = "ApplyModes" +_CAon = "ContextAttributes" +_RALe = "RecommendedActionList" +_DBR = "DBRecommendation" +_RIe = "RecommendationId" +_TIy = "TypeId" +_Se = "Severity" +_RAes = "ResourceArn" +_CTre = "CreatedTime" +_UTp = "UpdatedTime" +_De = "Detection" +_Rec = "Recommendation" +_RAec = "RecommendedActions" +_Ca = "Category" +_TDy = "TypeDetection" +_TRy = "TypeRecommendation" +_Imp = "Impact" +_AId = "AdditionalInfo" +_Lin = "Links" +_DBRL = "DBRecommendationList" +_DDBRO = "DescribeDBRecommendationsOutput" +_cDBRM = "com.amazonaws.rds#DBRecommendationsMessage" +_DBRe = "DBRecommendations" +_DDBR = "DescribeDBRecommendations" +_DDBSGIes = "DescribeDBSecurityGroupsInput" +_cDDBSGMoma = "com.amazonaws.rds#DescribeDBSecurityGroupsMessage" +_DDBSGOes = "DescribeDBSecurityGroupsOutput" +_cDBSGM = "com.amazonaws.rds#DBSecurityGroupMessage" +_DDBSGes = "DescribeDBSecurityGroups" +_DDBSGIesc = "DescribeDBShardGroupsInput" +_cDDBSGMomam = "com.amazonaws.rds#DescribeDBShardGroupsMessage" +_DBSGh = "DBShardGroup" +_DBSGL = "DBShardGroupsList" +_DDBSGOesc = "DescribeDBShardGroupsOutput" +_cDDBSGR = "com.amazonaws.rds#DescribeDBShardGroupsResponse" +_DBSGha = "DBShardGroups" +_DDBSGesc = "DescribeDBShardGroups" +_DDBSAI = "DescribeDBSnapshotAttributesInput" +_cDDBSAM = "com.amazonaws.rds#DescribeDBSnapshotAttributesMessage" +_DBSAn = "DBSnapshotAttribute" +_DBSAL = "DBSnapshotAttributeList" +_DBSAR = "DBSnapshotAttributesResult" +_DBSAna = "DBSnapshotAttributes" +_DDBSAO = "DescribeDBSnapshotAttributesOutput" +_cDDBSAR = "com.amazonaws.rds#DescribeDBSnapshotAttributesResult" +_DDBSA = "DescribeDBSnapshotAttributes" +_DDBSIe = "DescribeDBSnapshotsInput" +_cDDBSMo = "com.amazonaws.rds#DescribeDBSnapshotsMessage" +_DBSL = "DBSnapshotList" +_DDBSOe = "DescribeDBSnapshotsOutput" +_cDBSM = "com.amazonaws.rds#DBSnapshotMessage" +_DBSn = "DBSnapshots" +_DDBSe = "DescribeDBSnapshots" +_DDBSTDI = "DescribeDBSnapshotTenantDatabasesInput" +_cDDBSTDM = "com.amazonaws.rds#DescribeDBSnapshotTenantDatabasesMessage" +_DBSTD = "DBSnapshotTenantDatabase" +_DBSTDARN = "DBSnapshotTenantDatabaseARN" +_DBSTDL = "DBSnapshotTenantDatabasesList" +_DDBSTDO = "DescribeDBSnapshotTenantDatabasesOutput" +_cDBSTDM = "com.amazonaws.rds#DBSnapshotTenantDatabasesMessage" +_DBSTDn = "DBSnapshotTenantDatabases" +_DDBSTD = "DescribeDBSnapshotTenantDatabases" +_DDBSGIescr = "DescribeDBSubnetGroupsInput" +_cDDBSGMomama = "com.amazonaws.rds#DescribeDBSubnetGroupsMessage" +_DBSGub = "DBSubnetGroups" +_DDBSGOescr = "DescribeDBSubnetGroupsOutput" +_cDBSGMo = "com.amazonaws.rds#DBSubnetGroupMessage" +_DDBSGescr = "DescribeDBSubnetGroups" +_DEDCPI = "DescribeEngineDefaultClusterParametersInput" +_cDEDCPM = "com.amazonaws.rds#DescribeEngineDefaultClusterParametersMessage" +_EDn = "EngineDefaults" +_DEDCPO = "DescribeEngineDefaultClusterParametersOutput" +_cDEDCPR = "com.amazonaws.rds#DescribeEngineDefaultClusterParametersResult" +_DEDCP = "DescribeEngineDefaultClusterParameters" +_DEDPI = "DescribeEngineDefaultParametersInput" +_cDEDPM = "com.amazonaws.rds#DescribeEngineDefaultParametersMessage" +_DEDPO = "DescribeEngineDefaultParametersOutput" +_cDEDPR = "com.amazonaws.rds#DescribeEngineDefaultParametersResult" +_DEDP = "DescribeEngineDefaultParameters" +_DECI = "DescribeEventCategoriesInput" +_cDECM = "com.amazonaws.rds#DescribeEventCategoriesMessage" +_ECMv = "EventCategoriesMap" +_ECML = "EventCategoriesMapList" +_DECO = "DescribeEventCategoriesOutput" +_cECM = "com.amazonaws.rds#EventCategoriesMessage" +_DEC = "DescribeEventCategories" +_di_ = "db_instance" +_di__ = "db-instance" +_dpg = "db_parameter_group" +_dpg_ = "db-parameter-group" +_dsg = "db_security_group" +_dsg_ = "db-security-group" +_ds = "db_snapshot" +_ds_ = "db-snapshot" +_dc = "db_cluster" +_dc_ = "db-cluster" +_dcs = "db_cluster_snapshot" +_dcs_ = "db-cluster-snapshot" +_cev = "custom_engine_version" +_cev_ = "custom-engine-version" +_dp = "db_proxy" +_dp_ = "db-proxy" +_bgd = "blue_green_deployment" +_bgd_ = "blue-green-deployment" +_dsg__ = "db_shard_group" +_dsg___ = "db-shard-group" +_ze = "zero_etl" +_ze_ = "zero-etl" +_DEI = "DescribeEventsInput" +_cDEM = "com.amazonaws.rds#DescribeEventsMessage" +_Du = "Duration" +_Ev = "Event" +_Da = "Date" +_EL = "EventList" +_DEO = "DescribeEventsOutput" +_cEM = "com.amazonaws.rds#EventsMessage" +_Eve = "Events" +_DE = "DescribeEvents" +_DESIe = "DescribeEventSubscriptionsInput" +_cDESMo = "com.amazonaws.rds#DescribeEventSubscriptionsMessage" +_ESL = "EventSubscriptionsList" +_DESOe = "DescribeEventSubscriptionsOutput" +_cESM = "com.amazonaws.rds#EventSubscriptionsMessage" +_DESe = "DescribeEventSubscriptions" +_DETI = "DescribeExportTasksInput" +_cDETM = "com.amazonaws.rds#DescribeExportTasksMessage" +_ETx = "ExportTask" +_ETL = "ExportTasksList" +_DETO = "DescribeExportTasksOutput" +_cETM = "com.amazonaws.rds#ExportTasksMessage" +_ETxp = "ExportTasks" +_DET = "DescribeExportTasks" +_DGCIe = "DescribeGlobalClustersInput" +_cDGCMo = "com.amazonaws.rds#DescribeGlobalClustersMessage" +_GCL = "GlobalClusterList" +_DGCOe = "DescribeGlobalClustersOutput" +_cGCM = "com.amazonaws.rds#GlobalClustersMessage" +_GCl = "GlobalClusters" +_DGCe = "DescribeGlobalClusters" +_DIIe = "DescribeIntegrationsInput" +_cDIMo = "com.amazonaws.rds#DescribeIntegrationsMessage" +_In = "Integration" +_IL = "IntegrationList" +_DIOe = "DescribeIntegrationsOutput" +_cDIR = "com.amazonaws.rds#DescribeIntegrationsResponse" +_Int = "Integrations" +_DIes = "DescribeIntegrations" +_DOGOI = "DescribeOptionGroupOptionsInput" +_cDOGOM = "com.amazonaws.rds#DescribeOptionGroupOptionsMessage" +_MEVPAV = "MinimumEngineVersionPerAllowedValue" +_AVl = "AllowedValue" +_MEVPAVL = "MinimumEngineVersionPerAllowedValueList" +_OGOS = "OptionGroupOptionSetting" +_SNe = "SettingName" +_SDe = "SettingDescription" +_IR = "IsRequired" +_OGOSL = "OptionGroupOptionSettingsList" +_Ve = "Version" +_OGOVL = "OptionGroupOptionVersionsList" +_OCW = "OptionsConflictsWith" +_OCN = "OptionConflictName" +_ODO = "OptionsDependedOn" +_OGO = "OptionGroupOption" +_MRMEV = "MinimumRequiredMinorEngineVersion" +_PRo = "PortRequired" +_DPe = "DefaultPort" +_RAMEVU = "RequiresAutoMinorEngineVersionUpgrade" +_VO = "VpcOnly" +_SOVD = "SupportsOptionVersionDowngrade" +_OGOSp = "OptionGroupOptionSettings" +_OGOV = "OptionGroupOptionVersions" +_CCA = "CopyableCrossAccount" +_CCR = "CopyableCrossRegion" +_OGOL = "OptionGroupOptionsList" +_DOGOO = "DescribeOptionGroupOptionsOutput" +_cOGOM = "com.amazonaws.rds#OptionGroupOptionsMessage" +_OGOp = "OptionGroupOptions" +_DOGOe = "DescribeOptionGroupOptions" +_DOGIe = "DescribeOptionGroupsInput" +_cDOGMo = "com.amazonaws.rds#DescribeOptionGroupsMessage" +_OGL = "OptionGroupsList" +_DOGOes = "DescribeOptionGroupsOutput" +_cOG = "com.amazonaws.rds#OptionGroups" +_DOGe = "DescribeOptionGroups" +_DODBIOI = "DescribeOrderableDBInstanceOptionsInput" +_cDODBIOM = "com.amazonaws.rds#DescribeOrderableDBInstanceOptionsMessage" +_AZG = "AvailabilityZoneGroup" +_Vp = "Vpc" +_AZL = "AvailabilityZoneList" +_AASVO = "AvailableAdditionalStorageVolumesOption" +_SSAu = "SupportsStorageAutoscaling" +_SST = "SupportsStorageThroughput" +_SIup = "SupportsIops" +_MSS = "MinStorageSize" +_MSSa = "MaxStorageSize" +_MIi = "MinIops" +_MIa = "MaxIops" +_MIPG = "MinIopsPerGib" +_MIPGa = "MaxIopsPerGib" +_MST = "MinStorageThroughput" +_MSTa = "MaxStorageThroughput" +_AASVOL = "AvailableAdditionalStorageVolumesOptionList" +_APF = "AvailableProcessorFeature" +_APFL = "AvailableProcessorFeatureList" +_ODBIO = "OrderableDBInstanceOption" +_MAZC = "MultiAZCapable" +_RRC = "ReadReplicaCapable" +_SSEu = "SupportsStorageEncryption" +_SEMu = "SupportsEnhancedMonitoring" +_SIAMDA = "SupportsIAMDatabaseAuthentication" +_SPI = "SupportsPerformanceInsights" +_MIPDI = "MinIopsPerDbInstance" +_MIPDIa = "MaxIopsPerDbInstance" +_MSTPDI = "MinStorageThroughputPerDbInstance" +_MSTPDIa = "MaxStorageThroughputPerDbInstance" +_MSTPI = "MinStorageThroughputPerIops" +_MSTPIa = "MaxStorageThroughputPerIops" +_APFv = "AvailableProcessorFeatures" +_SKA = "SupportsKerberosAuthentication" +_OC = "OutpostCapable" +_SASM = "SupportedActivityStreamModes" +_SCu = "SupportsClusters" +_SDLV = "SupportsDedicatedLogVolume" +_SASV = "SupportsAdditionalStorageVolumes" +_SHE = "SupportsHttpEndpoint" +_AASVOv = "AvailableAdditionalStorageVolumesOptions" +_ODBIOL = "OrderableDBInstanceOptionsList" +_DODBIOO = "DescribeOrderableDBInstanceOptionsOutput" +_cODBIOM = "com.amazonaws.rds#OrderableDBInstanceOptionsMessage" +_ODBIOr = "OrderableDBInstanceOptions" +_DODBIO = "DescribeOrderableDBInstanceOptions" +_DPMAI = "DescribePendingMaintenanceActionsInput" +_cDPMAM = "com.amazonaws.rds#DescribePendingMaintenanceActionsMessage" +_PMAe = "PendingMaintenanceActions" +_DPMAO = "DescribePendingMaintenanceActionsOutput" +_cPMAM = "com.amazonaws.rds#PendingMaintenanceActionsMessage" +_DPMA = "DescribePendingMaintenanceActions" +_DRDBII = "DescribeReservedDBInstancesInput" +_cDRDBIM = "com.amazonaws.rds#DescribeReservedDBInstancesMessage" +_RDBII = "ReservedDBInstanceId" +_RDBIOI = "ReservedDBInstancesOfferingId" +_PD = "ProductDescription" +_OT = "OfferingType" +_LI = "LeaseId" +_RC = "RecurringCharge" +_RCA = "RecurringChargeAmount" +_RCF = "RecurringChargeFrequency" +_RCL = "RecurringChargeList" +_RDBI = "ReservedDBInstance" +_FP = "FixedPrice" +_UP = "UsagePrice" +_CC = "CurrencyCode" +_DBICn = "DBInstanceCount" +_RCe = "RecurringCharges" +_RDBIA = "ReservedDBInstanceArn" +_RDBIL = "ReservedDBInstanceList" +_DRDBIO = "DescribeReservedDBInstancesOutput" +_cRDBIM = "com.amazonaws.rds#ReservedDBInstanceMessage" +_RDBIe = "ReservedDBInstances" +_RDBINFF = "ReservedDBInstanceNotFoundFault" +_DRDBI = "DescribeReservedDBInstances" +_DRDBIOI = "DescribeReservedDBInstancesOfferingsInput" +_cDRDBIOM = "com.amazonaws.rds#DescribeReservedDBInstancesOfferingsMessage" +_RDBIO = "ReservedDBInstancesOffering" +_RDBIOL = "ReservedDBInstancesOfferingList" +_DRDBIOO = "DescribeReservedDBInstancesOfferingsOutput" +_cRDBIOM = "com.amazonaws.rds#ReservedDBInstancesOfferingMessage" +_RDBIOe = "ReservedDBInstancesOfferings" +_RDBIONFF = "ReservedDBInstancesOfferingNotFoundFault" +_DRDBIOe = "DescribeReservedDBInstancesOfferings" +_DSVPVI = "DescribeServerlessV2PlatformVersionsInput" +_cDSVPVM = "com.amazonaws.rds#DescribeServerlessV2PlatformVersionsMessage" +_SVPVI = "ServerlessV2PlatformVersionInfo" +_SVPVD = "ServerlessV2PlatformVersionDescription" +_SVPVL = "ServerlessV2PlatformVersionList" +_DSVPVO = "DescribeServerlessV2PlatformVersionsOutput" +_cSVPVM = "com.amazonaws.rds#ServerlessV2PlatformVersionsMessage" +_SVPVe = "ServerlessV2PlatformVersions" +_DSVPV = "DescribeServerlessV2PlatformVersions" +_DSRI = "DescribeSourceRegionsInput" +_cDSRM = "com.amazonaws.rds#DescribeSourceRegionsMessage" +_RNe = "RegionName" +_SDBIABR = "SupportsDBInstanceAutomatedBackupsReplication" +_SRL = "SourceRegionList" +_DSRO = "DescribeSourceRegionsOutput" +_cSRM = "com.amazonaws.rds#SourceRegionMessage" +_SRo = "SourceRegions" +_DSR = "DescribeSourceRegions" +_DTDIe = "DescribeTenantDatabasesInput" +_cDTDMo = "com.amazonaws.rds#DescribeTenantDatabasesMessage" +_TDL = "TenantDatabasesList" +_DTDOe = "DescribeTenantDatabasesOutput" +_cTDM = "com.amazonaws.rds#TenantDatabasesMessage" +_TDe = "TenantDatabases" +_DTDe = "DescribeTenantDatabases" +_DVDBIMI = "DescribeValidDBInstanceModificationsInput" +_cDVDBIMM = "com.amazonaws.rds#DescribeValidDBInstanceModificationsMessage" +_DR = "DoubleRange" +_Fr = "From" +_To = "To" +_DRL = "DoubleRangeList" +_Ra = "Range" +_Ste = "Step" +_RL = "RangeList" +_VSO = "ValidStorageOptions" +_SSt = "StorageSize" +_PI = "ProvisionedIops" +_ITSR = "IopsToStorageRatio" +_PST = "ProvisionedStorageThroughput" +_STTIR = "StorageThroughputToIopsRatio" +_VSOL = "ValidStorageOptionsList" +_VVO = "ValidVolumeOptions" +_Sto = "Storage" +_VVOL = "ValidVolumeOptionsList" +_VASO = "ValidAdditionalStorageOptions" +_Vo = "Volumes" +_VDBIMM = "ValidDBInstanceModificationsMessage" +_VPF = "ValidProcessorFeatures" +_ASd = "AdditionalStorage" +_DVDBIMO = "DescribeValidDBInstanceModificationsOutput" +_cDVDBIMR = "com.amazonaws.rds#DescribeValidDBInstanceModificationsResult" +_DVDBIM = "DescribeValidDBInstanceModifications" +_DHEI = "DisableHttpEndpointInput" +_cDHER = "com.amazonaws.rds#DisableHttpEndpointRequest" +_DHEO = "DisableHttpEndpointOutput" +_cDHERo = "com.amazonaws.rds#DisableHttpEndpointResponse" +_IRSF = "InvalidResourceStateFault" +_DHE = "DisableHttpEndpoint" +_DBLFNFF = "DBLogFileNotFoundFault" +_DDBLFPI = "DownloadDBLogFilePortionInput" +_cDDBLFPM = "com.amazonaws.rds#DownloadDBLogFilePortionMessage" +_NOL = "NumberOfLines" +_DDBLFPO = "DownloadDBLogFilePortionOutput" +_cDDBLFPD = "com.amazonaws.rds#DownloadDBLogFilePortionDetails" +_LFD = "LogFileData" +_ADP = "AdditionalDataPending" +_DDBLFP = "DownloadDBLogFilePortion" +_EHEI = "EnableHttpEndpointInput" +_cEHER = "com.amazonaws.rds#EnableHttpEndpointRequest" +_EHEO = "EnableHttpEndpointOutput" +_cEHERo = "com.amazonaws.rds#EnableHttpEndpointResponse" +_FDBCI = "FailoverDBClusterInput" +_cFDBCM = "com.amazonaws.rds#FailoverDBClusterMessage" +_TDBII = "TargetDBInstanceIdentifier" +_FDBCO = "FailoverDBClusterOutput" +_cFDBCR = "com.amazonaws.rds#FailoverDBClusterResult" +_FDBC = "FailoverDBCluster" +_FGCI = "FailoverGlobalClusterInput" +_cFGCM = "com.amazonaws.rds#FailoverGlobalClusterMessage" +_TDCI = "TargetDbClusterIdentifier" +_ADL = "AllowDataLoss" +_Sw = "Switchover" +_FGCO = "FailoverGlobalClusterOutput" +_cFGCR = "com.amazonaws.rds#FailoverGlobalClusterResult" +_FGC = "FailoverGlobalCluster" +_LTFRI = "ListTagsForResourceInput" +_cLTFRM = "com.amazonaws.rds#ListTagsForResourceMessage" +_LTFRO = "ListTagsForResourceOutput" +_cTLM = "com.amazonaws.rds#TagListMessage" +_LTFR = "ListTagsForResource" +_APS = "AuditPolicyState" +_LP = "LOCKED_POLICY" +_UP_ = "UNLOCKED_POLICY" +_MASI = "ModifyActivityStreamInput" +_cMASR = "com.amazonaws.rds#ModifyActivityStreamRequest" +_MASO = "ModifyActivityStreamOutput" +_cMASRo = "com.amazonaws.rds#ModifyActivityStreamResponse" +_KSN = "KinesisStreamName" +_Mo = "Mode" +_ENAFI = "EngineNativeAuditFieldsIncluded" +_PS = "PolicyStatus" +_MASo = "ModifyActivityStream" +_MCI = "ModifyCertificatesInput" +_cMCM = "com.amazonaws.rds#ModifyCertificatesMessage" +_RCO = "RemoveCustomerOverride" +_MCO = "ModifyCertificatesOutput" +_cMCR = "com.amazonaws.rds#ModifyCertificatesResult" +_MCo = "ModifyCertificates" +_IDBCCF = "InvalidDBClusterCapacityFault" +_MCDBCCI = "ModifyCurrentDBClusterCapacityInput" +_cMCDBCCM = "com.amazonaws.rds#ModifyCurrentDBClusterCapacityMessage" +_MCDBCCO = "ModifyCurrentDBClusterCapacityOutput" +_cDBCCI = "com.amazonaws.rds#DBClusterCapacityInfo" +_PC = "PendingCapacity" +_CCu = "CurrentCapacity" +_MCDBCC = "ModifyCurrentDBClusterCapacity" +_CEVS = "CustomEngineVersionStatus" +_ina = "inactive" +_ier = "inactive_except_restore" +_ier_ = "inactive-except-restore" +_MCDBEVI = "ModifyCustomDBEngineVersionInput" +_cMCDBEVM = "com.amazonaws.rds#ModifyCustomDBEngineVersionMessage" +_MCDBEVO = "ModifyCustomDBEngineVersionOutput" +_MCDBEV = "ModifyCustomDBEngineVersion" +_EDT = "EndDateType" +_unl = "unlimited" +_lim = "limited" +_MDBCRI = "ModifyDBCapacityReservationInput" +_cMDBCRR = "com.amazonaws.rds#ModifyDBCapacityReservationRequest" +_MDBCRO = "ModifyDBCapacityReservationOutput" +_cMDBCRRo = "com.amazonaws.rds#ModifyDBCapacityReservationResponse" +_MDBCR = "ModifyDBCapacityReservation" +_CLEC = "CloudwatchLogsExportConfiguration" +_ELTn = "EnableLogTypes" +_DLT = "DisableLogTypes" +_MDBCI = "ModifyDBClusterInput" +_cMDBCM = "com.amazonaws.rds#ModifyDBClusterMessage" +_NDBCI = "NewDBClusterIdentifier" +_AIp = "ApplyImmediately" +_AMVUl = "AllowMajorVersionUpgrade" +_DBIPGN = "DBInstanceParameterGroupName" +_RMUP = "RotateMasterUserPassword" +_AEMC = "AllowEngineModeChange" +_MDBCO = "ModifyDBClusterOutput" +_cMDBCR = "com.amazonaws.rds#ModifyDBClusterResult" +_STNAF = "StorageTypeNotAvailableFault" +_MDBC = "ModifyDBCluster" +_MDBCEI = "ModifyDBClusterEndpointInput" +_cMDBCEM = "com.amazonaws.rds#ModifyDBClusterEndpointMessage" +_MDBCEO = "ModifyDBClusterEndpointOutput" +_MDBCE = "ModifyDBClusterEndpoint" +_MDBCPGI = "ModifyDBClusterParameterGroupInput" +_cMDBCPGM = "com.amazonaws.rds#ModifyDBClusterParameterGroupMessage" +_MDBCPGO = "ModifyDBClusterParameterGroupOutput" +_cDBCPGNM = "com.amazonaws.rds#DBClusterParameterGroupNameMessage" +_MDBCPG = "ModifyDBClusterParameterGroup" +_MDBCSAI = "ModifyDBClusterSnapshotAttributeInput" +_cMDBCSAM = "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeMessage" +_VTA = "ValuesToAdd" +_VTR = "ValuesToRemove" +_MDBCSAO = "ModifyDBClusterSnapshotAttributeOutput" +_cMDBCSAR = "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeResult" +_SSQEF = "SharedSnapshotQuotaExceededFault" +_MDBCSA = "ModifyDBClusterSnapshotAttribute" +_DBUDFF = "DBUpgradeDependencyFailureFault" +_MASV = "ModifyAdditionalStorageVolume" +_SFD = "SetForDelete" +_MASVL = "ModifyAdditionalStorageVolumesList" +_MDBII = "ModifyDBInstanceInput" +_cMDBIM = "com.amazonaws.rds#ModifyDBInstanceMessage" +_NDBII = "NewDBInstanceIdentifier" +_DD = "DisableDomain" +_DBPNo = "DBPortNumber" +_CRR = "CertificateRotationRestart" +_RFAMM = "ResumeFullAutomationModeMinutes" +_MDBIO = "ModifyDBInstanceOutput" +_cMDBIR = "com.amazonaws.rds#ModifyDBInstanceResult" +_MDBI = "ModifyDBInstance" +_MDBPGI = "ModifyDBParameterGroupInput" +_cMDBPGM = "com.amazonaws.rds#ModifyDBParameterGroupMessage" +_MDBPGO = "ModifyDBParameterGroupOutput" +_cDBPGNM = "com.amazonaws.rds#DBParameterGroupNameMessage" +_MDBPG = "ModifyDBParameterGroup" +_MDBPI = "ModifyDBProxyInput" +_cMDBPR = "com.amazonaws.rds#ModifyDBProxyRequest" +_NDBPN = "NewDBProxyName" +_SG = "SecurityGroups" +_MDBPO = "ModifyDBProxyOutput" +_cMDBPRo = "com.amazonaws.rds#ModifyDBProxyResponse" +_MDBP = "ModifyDBProxy" +_MDBPEI = "ModifyDBProxyEndpointInput" +_cMDBPER = "com.amazonaws.rds#ModifyDBProxyEndpointRequest" +_NDBPEN = "NewDBProxyEndpointName" +_MDBPEO = "ModifyDBProxyEndpointOutput" +_cMDBPERo = "com.amazonaws.rds#ModifyDBProxyEndpointResponse" +_MDBPE = "ModifyDBProxyEndpoint" +_CPCo = "ConnectionPoolConfiguration" +_MDBPTGI = "ModifyDBProxyTargetGroupInput" +_cMDBPTGR = "com.amazonaws.rds#ModifyDBProxyTargetGroupRequest" +_NN = "NewName" +_MDBPTGO = "ModifyDBProxyTargetGroupOutput" +_cMDBPTGRo = "com.amazonaws.rds#ModifyDBProxyTargetGroupResponse" +_MDBPTG = "ModifyDBProxyTargetGroup" +_RAU = "RecommendedActionUpdate" +_RAUL = "RecommendedActionUpdateList" +_MDBRI = "ModifyDBRecommendationInput" +_cMDBRM = "com.amazonaws.rds#ModifyDBRecommendationMessage" +_RAUe = "RecommendedActionUpdates" +_MDBRO = "ModifyDBRecommendationOutput" +_cDBRMo = "com.amazonaws.rds#DBRecommendationMessage" +_MDBR = "ModifyDBRecommendation" +_MDBSGI = "ModifyDBShardGroupInput" +_cMDBSGM = "com.amazonaws.rds#ModifyDBShardGroupMessage" +_MDBSGO = "ModifyDBShardGroupOutput" +_MDBSG = "ModifyDBShardGroup" +_MDBSI = "ModifyDBSnapshotInput" +_cMDBSM = "com.amazonaws.rds#ModifyDBSnapshotMessage" +_MDBSO = "ModifyDBSnapshotOutput" +_cMDBSR = "com.amazonaws.rds#ModifyDBSnapshotResult" +_MDBS = "ModifyDBSnapshot" +_MDBSAI = "ModifyDBSnapshotAttributeInput" +_cMDBSAM = "com.amazonaws.rds#ModifyDBSnapshotAttributeMessage" +_MDBSAO = "ModifyDBSnapshotAttributeOutput" +_cMDBSAR = "com.amazonaws.rds#ModifyDBSnapshotAttributeResult" +_MDBSA = "ModifyDBSnapshotAttribute" +_MDBSGIo = "ModifyDBSubnetGroupInput" +_cMDBSGMo = "com.amazonaws.rds#ModifyDBSubnetGroupMessage" +_MDBSGOo = "ModifyDBSubnetGroupOutput" +_cMDBSGR = "com.amazonaws.rds#ModifyDBSubnetGroupResult" +_SAIU = "SubnetAlreadyInUse" +_MDBSGo = "ModifyDBSubnetGroup" +_MESI = "ModifyEventSubscriptionInput" +_cMESM = "com.amazonaws.rds#ModifyEventSubscriptionMessage" +_MESO = "ModifyEventSubscriptionOutput" +_cMESR = "com.amazonaws.rds#ModifyEventSubscriptionResult" +_MES = "ModifyEventSubscription" +_MGCI = "ModifyGlobalClusterInput" +_cMGCM = "com.amazonaws.rds#ModifyGlobalClusterMessage" +_NGCI = "NewGlobalClusterIdentifier" +_MGCO = "ModifyGlobalClusterOutput" +_cMGCR = "com.amazonaws.rds#ModifyGlobalClusterResult" +_MGC = "ModifyGlobalCluster" +_MII = "ModifyIntegrationInput" +_cMIM = "com.amazonaws.rds#ModifyIntegrationMessage" +_MIO = "ModifyIntegrationOutput" +_MIo = "ModifyIntegration" +_OSL = "OptionSettingsList" +_OCp = "OptionConfiguration" +_OCL = "OptionConfigurationList" +_ONL = "OptionNamesList" +_MOGI = "ModifyOptionGroupInput" +_cMOGM = "com.amazonaws.rds#ModifyOptionGroupMessage" +_OTI = "OptionsToInclude" +_OTR = "OptionsToRemove" +_MOGO = "ModifyOptionGroupOutput" +_cMOGR = "com.amazonaws.rds#ModifyOptionGroupResult" +_MOG = "ModifyOptionGroup" +_MTDI = "ModifyTenantDatabaseInput" +_cMTDM = "com.amazonaws.rds#ModifyTenantDatabaseMessage" +_NTDBN = "NewTenantDBName" +_MTDO = "ModifyTenantDatabaseOutput" +_cMTDR = "com.amazonaws.rds#ModifyTenantDatabaseResult" +_MTD = "ModifyTenantDatabase" +_PRRI = "PromoteReadReplicaInput" +_cPRRM = "com.amazonaws.rds#PromoteReadReplicaMessage" +_PRRO = "PromoteReadReplicaOutput" +_cPRRR = "com.amazonaws.rds#PromoteReadReplicaResult" +_PRR = "PromoteReadReplica" +_PRRDBCI = "PromoteReadReplicaDBClusterInput" +_cPRRDBCM = "com.amazonaws.rds#PromoteReadReplicaDBClusterMessage" +_PRRDBCO = "PromoteReadReplicaDBClusterOutput" +_cPRRDBCR = "com.amazonaws.rds#PromoteReadReplicaDBClusterResult" +_PRRDBC = "PromoteReadReplicaDBCluster" +_PRDBIOI = "PurchaseReservedDBInstancesOfferingInput" +_cPRDBIOM = "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingMessage" +_PRDBIOO = "PurchaseReservedDBInstancesOfferingOutput" +_cPRDBIOR = "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingResult" +_RDBIAEF = "ReservedDBInstanceAlreadyExistsFault" +_RDBIQEF = "ReservedDBInstanceQuotaExceededFault" +_PRDBIO = "PurchaseReservedDBInstancesOffering" +_RDBCI = "RebootDBClusterInput" +_cRDBCM = "com.amazonaws.rds#RebootDBClusterMessage" +_RDBCO = "RebootDBClusterOutput" +_cRDBCR = "com.amazonaws.rds#RebootDBClusterResult" +_RDBC = "RebootDBCluster" +_RDBIIe = "RebootDBInstanceInput" +_cRDBIMo = "com.amazonaws.rds#RebootDBInstanceMessage" +_FF = "ForceFailover" +_RDBIOeb = "RebootDBInstanceOutput" +_cRDBIR = "com.amazonaws.rds#RebootDBInstanceResult" +_RDBIeb = "RebootDBInstance" +_RDBSGI = "RebootDBShardGroupInput" +_cRDBSGM = "com.amazonaws.rds#RebootDBShardGroupMessage" +_RDBSGO = "RebootDBShardGroupOutput" +_RDBSG = "RebootDBShardGroup" +_DBPTARF = "DBProxyTargetAlreadyRegisteredFault" +_IAIPISF = "InsufficientAvailableIPsInSubnetFault" +_RDBPTI = "RegisterDBProxyTargetsInput" +_cRDBPTR = "com.amazonaws.rds#RegisterDBProxyTargetsRequest" +_RDBPTO = "RegisterDBProxyTargetsOutput" +_cRDBPTRo = "com.amazonaws.rds#RegisterDBProxyTargetsResponse" +_DBPTr = "DBProxyTargets" +_RDBPT = "RegisterDBProxyTargets" +_RFGCI = "RemoveFromGlobalClusterInput" +_cRFGCM = "com.amazonaws.rds#RemoveFromGlobalClusterMessage" +_DCIb = "DbClusterIdentifier" +_RFGCO = "RemoveFromGlobalClusterOutput" +_cRFGCR = "com.amazonaws.rds#RemoveFromGlobalClusterResult" +_RFGC = "RemoveFromGlobalCluster" +_DBCRNFFl = "DBClusterRoleNotFoundFault" +_RRFDBCI = "RemoveRoleFromDBClusterInput" +_cRRFDBCM = "com.amazonaws.rds#RemoveRoleFromDBClusterMessage" +_RRFDBCO = "RemoveRoleFromDBClusterOutput" +_RRFDBC = "RemoveRoleFromDBCluster" +_DBIRNFF = "DBInstanceRoleNotFoundFault" +_RRFDBII = "RemoveRoleFromDBInstanceInput" +_cRRFDBIM = "com.amazonaws.rds#RemoveRoleFromDBInstanceMessage" +_RRFDBIO = "RemoveRoleFromDBInstanceOutput" +_RRFDBI = "RemoveRoleFromDBInstance" +_RSIFSI = "RemoveSourceIdentifierFromSubscriptionInput" +_cRSIFSM = "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionMessage" +_RSIFSO = "RemoveSourceIdentifierFromSubscriptionOutput" +_cRSIFSR = "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionResult" +_RSIFS = "RemoveSourceIdentifierFromSubscription" +_KL = "KeyList" +_RTFRI = "RemoveTagsFromResourceInput" +_cRTFRM = "com.amazonaws.rds#RemoveTagsFromResourceMessage" +_TK = "TagKeys" +_RTFRO = "RemoveTagsFromResourceOutput" +_RTFR = "RemoveTagsFromResource" +_RDBCPGI = "ResetDBClusterParameterGroupInput" +_cRDBCPGM = "com.amazonaws.rds#ResetDBClusterParameterGroupMessage" +_RAPe = "ResetAllParameters" +_RDBCPGO = "ResetDBClusterParameterGroupOutput" +_RDBCPG = "ResetDBClusterParameterGroup" +_RDBPGI = "ResetDBParameterGroupInput" +_cRDBPGM = "com.amazonaws.rds#ResetDBParameterGroupMessage" +_RDBPGO = "ResetDBParameterGroupOutput" +_RDBPG = "ResetDBParameterGroup" +_ISBF = "InvalidS3BucketFault" +_RDBCFSI = "RestoreDBClusterFromS3Input" +_cRDBCFSM = "com.amazonaws.rds#RestoreDBClusterFromS3Message" +_SEo = "SourceEngine" +_SEV = "SourceEngineVersion" +_SBN = "S3BucketName" +_SIRA = "S3IngestionRoleArn" +_RDBCFSO = "RestoreDBClusterFromS3Output" +_cRDBCFSR = "com.amazonaws.rds#RestoreDBClusterFromS3Result" +_RDBCFS = "RestoreDBClusterFromS3" +_IDBCCFn = "InsufficientDBClusterCapacityFault" +_IRF = "InvalidRestoreFault" +_RDBCFSIe = "RestoreDBClusterFromSnapshotInput" +_cRDBCFSMo = "com.amazonaws.rds#RestoreDBClusterFromSnapshotMessage" +_SIn = "SnapshotIdentifier" +_EVPCN = "EnableVPCNetworking" +_EIAG = "EnableInternetAccessGateway" +_RDBCFSOe = "RestoreDBClusterFromSnapshotOutput" +_cRDBCFSRo = "com.amazonaws.rds#RestoreDBClusterFromSnapshotResult" +_RDBCFSe = "RestoreDBClusterFromSnapshot" +_RDBCTPITI = "RestoreDBClusterToPointInTimeInput" +_cRDBCTPITM = "com.amazonaws.rds#RestoreDBClusterToPointInTimeMessage" +_RTe = "RestoreType" +_RTT = "RestoreToTime" +_ULRT = "UseLatestRestorableTime" +_SDCRI = "SourceDbClusterResourceId" +_RDBCTPITO = "RestoreDBClusterToPointInTimeOutput" +_cRDBCTPITR = "com.amazonaws.rds#RestoreDBClusterToPointInTimeResult" +_RDBCTPIT = "RestoreDBClusterToPointInTime" +_RDBIFDBSI = "RestoreDBInstanceFromDBSnapshotInput" +_cRDBIFDBSM = "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotMessage" +_RDBIFDBSO = "RestoreDBInstanceFromDBSnapshotOutput" +_cRDBIFDBSR = "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotResult" +_RDBIFDBS = "RestoreDBInstanceFromDBSnapshot" +_RDBIFSI = "RestoreDBInstanceFromS3Input" +_cRDBIFSM = "com.amazonaws.rds#RestoreDBInstanceFromS3Message" +_RDBIFSO = "RestoreDBInstanceFromS3Output" +_cRDBIFSR = "com.amazonaws.rds#RestoreDBInstanceFromS3Result" +_RDBIFS = "RestoreDBInstanceFromS3" +_PITRNEF = "PointInTimeRestoreNotEnabledFault" +_RDBITPITI = "RestoreDBInstanceToPointInTimeInput" +_cRDBITPITM = "com.amazonaws.rds#RestoreDBInstanceToPointInTimeMessage" +_RTes = "RestoreTime" +_SDRI = "SourceDbiResourceId" +_SDBIABA = "SourceDBInstanceAutomatedBackupsArn" +_RDBITPITO = "RestoreDBInstanceToPointInTimeOutput" +_cRDBITPITR = "com.amazonaws.rds#RestoreDBInstanceToPointInTimeResult" +_RDBITPIT = "RestoreDBInstanceToPointInTime" +_RDBSGII = "RevokeDBSecurityGroupIngressInput" +_cRDBSGIM = "com.amazonaws.rds#RevokeDBSecurityGroupIngressMessage" +_RDBSGIO = "RevokeDBSecurityGroupIngressOutput" +_cRDBSGIR = "com.amazonaws.rds#RevokeDBSecurityGroupIngressResult" +_RDBSGIe = "RevokeDBSecurityGroupIngress" +_SASI = "StartActivityStreamInput" +_cSASR = "com.amazonaws.rds#StartActivityStreamRequest" +_SASO = "StartActivityStreamOutput" +_cSASRo = "com.amazonaws.rds#StartActivityStreamResponse" +_SAS = "StartActivityStream" +_SDBCIt = "StartDBClusterInput" +_cSDBCM = "com.amazonaws.rds#StartDBClusterMessage" +_SDBCO = "StartDBClusterOutput" +_cSDBCR = "com.amazonaws.rds#StartDBClusterResult" +_SDBC = "StartDBCluster" +_SDBIIt = "StartDBInstanceInput" +_cSDBIM = "com.amazonaws.rds#StartDBInstanceMessage" +_SDBIO = "StartDBInstanceOutput" +_cSDBIR = "com.amazonaws.rds#StartDBInstanceResult" +_SDBI = "StartDBInstance" +_SDBIABRI = "StartDBInstanceAutomatedBackupsReplicationInput" +_cSDBIABRM = "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationMessage" +_SDBIA = "SourceDBInstanceArn" +_SDBIABRO = "StartDBInstanceAutomatedBackupsReplicationOutput" +_cSDBIABRR = "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationResult" +_SDBIABRt = "StartDBInstanceAutomatedBackupsReplication" +_ETAEF = "ExportTaskAlreadyExistsFault" +_IRMPF = "IamRoleMissingPermissionsFault" +_IRNFF = "IamRoleNotFoundFault" +_IEOF = "InvalidExportOnlyFault" +_IESSFn = "InvalidExportSourceStateFault" +_SETI = "StartExportTaskInput" +_cSETM = "com.amazonaws.rds#StartExportTaskMessage" +_SETO = "StartExportTaskOutput" +_SETt = "StartExportTask" +_SASIt = "StopActivityStreamInput" +_cSASRom = "com.amazonaws.rds#StopActivityStreamRequest" +_SASOt = "StopActivityStreamOutput" +_cSASRoma = "com.amazonaws.rds#StopActivityStreamResponse" +_SASt = "StopActivityStream" +_SDBCIto = "StopDBClusterInput" +_cSDBCMo = "com.amazonaws.rds#StopDBClusterMessage" +_SDBCOt = "StopDBClusterOutput" +_cSDBCRo = "com.amazonaws.rds#StopDBClusterResult" +_SDBCt = "StopDBCluster" +_SDBIIto = "StopDBInstanceInput" +_cSDBIMo = "com.amazonaws.rds#StopDBInstanceMessage" +_DFDBCR = "DetachFromDBCapacityReservation" +_SDBIOt = "StopDBInstanceOutput" +_cSDBIRo = "com.amazonaws.rds#StopDBInstanceResult" +_SDBIt = "StopDBInstance" +_SDBIABRIt = "StopDBInstanceAutomatedBackupsReplicationInput" +_cSDBIABRMo = "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationMessage" +_SDBIABROt = "StopDBInstanceAutomatedBackupsReplicationOutput" +_cSDBIABRRo = "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationResult" +_SDBIABRto = "StopDBInstanceAutomatedBackupsReplication" +_STw = "SwitchoverTimeout" +_SBGDI = "SwitchoverBlueGreenDeploymentInput" +_cSBGDR = "com.amazonaws.rds#SwitchoverBlueGreenDeploymentRequest" +_SBGDO = "SwitchoverBlueGreenDeploymentOutput" +_cSBGDRo = "com.amazonaws.rds#SwitchoverBlueGreenDeploymentResponse" +_SBGD = "SwitchoverBlueGreenDeployment" +_SGCI = "SwitchoverGlobalClusterInput" +_cSGCM = "com.amazonaws.rds#SwitchoverGlobalClusterMessage" +_SGCO = "SwitchoverGlobalClusterOutput" +_cSGCR = "com.amazonaws.rds#SwitchoverGlobalClusterResult" +_SGC = "SwitchoverGlobalCluster" +_SRRI = "SwitchoverReadReplicaInput" +_cSRRM = "com.amazonaws.rds#SwitchoverReadReplicaMessage" +_SRRO = "SwitchoverReadReplicaOutput" +_cSRRR = "com.amazonaws.rds#SwitchoverReadReplicaResult" +_SRRw = "SwitchoverReadReplica" +_ARDS = "AmazonRDSv19" +_aw = "aws.auth#sigv4" +_aQ = "aws.protocols#awsQuery" +_aws = "aws.api#service" +_sNm = "smithy.api#xmlNamespace" + +STRING: StaticSchema = (3, n0, _S, 0) + +LONG: StaticSchema = (8, n0, _L, 0) + +ACCOUNT_QUOTA: StaticSchema = ( + 18, + n0, + _AQ, + 0, + (_AQN, _U, _M), + ((STRING, 0), (LONG, 0), (LONG, 0)), +) + +ACCOUNT_QUOTA_LIST: StaticSchema = ( + 16, + n0, + _AQL, + 0, + (_m,), + ((ACCOUNT_QUOTA, {_sN: _AQ}),), +) + +ACTIVITY_STREAM_MODE: StaticSchema = ( + 14, + n0, + _ASM, + 0, + (_s, _a), + ((-1, {_sV: _s}), (-1, {_sV: _a})), +) + +ACTIVITY_STREAM_MODE_LIST: StaticSchema = (16, n0, _ASML, 0, (_m,), ((STRING, 0),)) + +ACTIVITY_STREAM_POLICY_STATUS: StaticSchema = ( + 14, + n0, + _ASPS, + 0, + (_l, _u, _lp, _up), + ((-1, {_sV: _l}), (-1, {_sV: _u}), (-1, {_sV: _lp_}), (-1, {_sV: _up_})), +) + +ACTIVITY_STREAM_STATUS: StaticSchema = ( + 14, + n0, + _ASS, + 0, + (_st, _sta, _star, _sto), + ((-1, {_sV: _st}), (-1, {_sV: _sta}), (-1, {_sV: _star}), (-1, {_sV: _sto})), +) + +INTEGER_OPTIONAL: StaticSchema = (7, n0, _IO, 0) + +ADDITIONAL_STORAGE_VOLUME: StaticSchema = ( + 18, + n0, + _ASV, + 0, + (_VN, _AS, _IOPS, _MAS, _ST, _STt), + ( + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +INTEGER: StaticSchema = (7, n0, _I, 0) + +ADDITIONAL_STORAGE_VOLUME_OUTPUT: StaticSchema = ( + 18, + n0, + _ASVO, + 0, + (_VN, _SVS, _SOS, _SOPP, _AS, _IOPS, _MAS, _ST, _STt), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +ADDITIONAL_STORAGE_VOLUMES_LIST: StaticSchema = ( + 16, + n0, + _ASVL, + 0, + (_m,), + ((ADDITIONAL_STORAGE_VOLUME, 0),), +) + +ADDITIONAL_STORAGE_VOLUMES_OUTPUT_LIST: StaticSchema = ( + 16, + n0, + _ASVOL, + 0, + (_m,), + ((ADDITIONAL_STORAGE_VOLUME_OUTPUT, 0),), +) + +IAM_ROLE_ARN: StaticSchema = (3, n0, _IAMRA, 0) + +ADD_ROLE_TO_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _ARTDBCI, + {_sSI: _cARTDBCM, _smi: None}, + (_DBCI, _RA, _FN), + ((STRING, 1), (IAM_ROLE_ARN, 1), (STRING, 0)), +) + +ADD_ROLE_TO_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _ARTDBCO, + {_sSI: _sU, _smit: None}, +) + +EXCEPTION_MESSAGE: StaticSchema = (3, n0, _EM, 0) + +DB_CLUSTER_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CLUSTER_ROLE_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBCRAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterRoleAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBCRQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterRoleQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_CLUSTER_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBCSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBClusterStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +ADD_ROLE_TO_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _ARTDBC, + 0, + ADD_ROLE_TO_DB_CLUSTER_INPUT, + ADD_ROLE_TO_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_ROLE_ALREADY_EXISTS_FAULT, + DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + ), +) + +ADD_ROLE_TO_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _ARTDBII, + {_sSI: _cARTDBIM, _smi: None}, + (_DBII, _RA, _FN), + ((STRING, 1), (STRING, 1), (STRING, 1)), +) + +ADD_ROLE_TO_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _ARTDBIO, + {_sSI: _sU, _smit: None}, +) + +DB_INSTANCE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBINFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "DBInstanceNotFound", "httpResponseCode": 404}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_INSTANCE_ROLE_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBIRAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBInstanceRoleAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_INSTANCE_ROLE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBIRQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBInstanceRoleQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_INSTANCE_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBISF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBInstanceState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +ADD_ROLE_TO_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _ARTDBI, + 0, + ADD_ROLE_TO_DB_INSTANCE_INPUT, + ADD_ROLE_TO_DB_INSTANCE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_INSTANCE_ROLE_ALREADY_EXISTS_FAULT, + DB_INSTANCE_ROLE_QUOTA_EXCEEDED_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _ASITSI, + {_sSI: _cASITSM, _smi: None}, + (_SN, _SI), + ((STRING, 1), (STRING, 1)), +) + +BOOLEAN: StaticSchema = (2, n0, _B, 0) + +EVENT_CATEGORIES_LIST: StaticSchema = (16, n0, _ECL, 0, (_m,), ((STRING, {_sN: _EC}),)) + +SOURCE_IDS_LIST: StaticSchema = (16, n0, _SIL, 0, (_m,), ((STRING, {_sN: _SIo}),)) + +EVENT_SUBSCRIPTION: StaticSchema = ( + 18, + n0, + _ES, + 0, + (_CAI, _CSI, _STA, _St, _SCT, _STo, _SIL, _ECL, _E, _ESA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SOURCE_IDS_LIST, 0), + (EVENT_CATEGORIES_LIST, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _ASITSO, + {_sSI: _cASITSR, _smit: None}, + (_ES,), + ((EVENT_SUBSCRIPTION, 0),), +) + +SOURCE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _SNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "SourceNotFound", "httpResponseCode": 404}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SUBSCRIPTION_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _SNFFu, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "SubscriptionNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _ASITS, + 0, + ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_INPUT, + ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_OUTPUT, + (SOURCE_NOT_FOUND_FAULT, SUBSCRIPTION_NOT_FOUND_FAULT), +) + +TAG: StaticSchema = (18, n0, _T, 0, (_K, _V), ((STRING, 0), (STRING, 0))) + +TAG_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TAG, {_sN: _T}),)) + +ADD_TAGS_TO_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _ATTRI, + {_sSI: _cATTRM, _smi: None}, + (_RN, _Ta), + ((STRING, 1), (TAG_LIST, 1)), +) + +ADD_TAGS_TO_RESOURCE_OUTPUT: StaticSchema = (18, n0, _ATTRO, {_sSI: _sU, _smit: None}) + +BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _BGDNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "BlueGreenDeploymentNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCRNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBCapacityReservationNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_ENDPOINT_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBPENFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBProxyEndpointNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBPNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBProxyNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBPTGNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBProxyTargetGroupNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SHARD_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBSGNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBShardGroupNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SNAPSHOT_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBSNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "DBSnapshotNotFound", "httpResponseCode": 404}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SNAPSHOT_TENANT_DATABASE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBSTDNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBSnapshotTenantDatabaseNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INTEGRATION_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _INFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "IntegrationNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBCESF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBClusterEndpointStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +TENANT_DATABASE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _TDNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "TenantDatabaseNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +ADD_TAGS_TO_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _ATTR, + 0, + ADD_TAGS_TO_RESOURCE_INPUT, + ADD_TAGS_TO_RESOURCE_OUTPUT, + ( + BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + DB_SHARD_GROUP_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + DB_SNAPSHOT_TENANT_DATABASE_NOT_FOUND_FAULT, + INTEGRATION_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + TENANT_DATABASE_NOT_FOUND_FAULT, + ), +) + +APPLY_PENDING_MAINTENANCE_ACTION_INPUT: StaticSchema = ( + 18, + n0, + _APMAI, + {_sSI: _cAPMAM, _smi: None}, + (_RI, _AA, _OIT), + ((STRING, 1), (STRING, 1), (STRING, 1)), +) + +T_STAMP: StaticSchema = (4, n0, _TS, 0) + +PENDING_MAINTENANCE_ACTION: StaticSchema = ( + 18, + n0, + _PMA, + 0, + (_A, _AAAD, _FAD, _OIS, _CAD, _D), + ((STRING, 0), (T_STAMP, 0), (T_STAMP, 0), (STRING, 0), (T_STAMP, 0), (STRING, 0)), +) + +PENDING_MAINTENANCE_ACTION_DETAILS: StaticSchema = ( + 16, + n0, + _PMAD, + 0, + (_m,), + ((PENDING_MAINTENANCE_ACTION, {_sN: _PMA}),), +) + +RESOURCE_PENDING_MAINTENANCE_ACTIONS: StaticSchema = ( + 18, + n0, + _RPMA, + 0, + (_RI, _PMAD), + ((STRING, 0), (PENDING_MAINTENANCE_ACTION_DETAILS, 0)), +) + +APPLY_PENDING_MAINTENANCE_ACTION_OUTPUT: StaticSchema = ( + 18, + n0, + _APMAO, + {_sSI: _cAPMAR, _smit: None}, + (_RPMA,), + ((RESOURCE_PENDING_MAINTENANCE_ACTIONS, 0),), +) + +RESOURCE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _RNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "ResourceNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +APPLY_PENDING_MAINTENANCE_ACTION: StaticOperationSchema = ( + 23, + n0, + _APMA, + 0, + APPLY_PENDING_MAINTENANCE_ACTION_INPUT, + APPLY_PENDING_MAINTENANCE_ACTION_OUTPUT, + ( + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + RESOURCE_NOT_FOUND_FAULT, + ), +) + +AUTHORIZATION_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _AAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "AuthorizationAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +AUTHORIZATION_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _AQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "AuthorizationQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +AUTHORIZE_DB_SECURITY_GROUP_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _ADBSGII, + {_sSI: _cADBSGIM, _smi: None}, + (_DBSGN, _CIDRIP, _ECSGN, _ECSGI, _ECSGOI), + ((STRING, 1), (STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +EC2_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _ECSG, + 0, + (_St, _ECSGN, _ECSGI, _ECSGOI), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +EC2_SECURITY_GROUP_LIST: StaticSchema = ( + 16, + n0, + _ECSGL, + 0, + (_m,), + ((EC2_SECURITY_GROUP, {_sN: _ECSG}),), +) + +IP_RANGE: StaticSchema = (18, n0, _IPR, 0, (_St, _CIDRIP), ((STRING, 0), (STRING, 0))) + +IP_RANGE_LIST: StaticSchema = (16, n0, _IPRL, 0, (_m,), ((IP_RANGE, {_sN: _IPR}),)) + +DB_SECURITY_GROUP: StaticSchema = ( + 18, + n0, + _DBSG, + 0, + (_OI, _DBSGN, _DBSGD, _VI, _ECSGe, _IPRa, _DBSGA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (EC2_SECURITY_GROUP_LIST, 0), + (IP_RANGE_LIST, 0), + (STRING, 0), + ), +) + +AUTHORIZE_DB_SECURITY_GROUP_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _ADBSGIO, + {_sSI: _cADBSGIR, _smit: None}, + (_DBSG,), + ((DB_SECURITY_GROUP, 0),), +) + +DB_SECURITY_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBSGNFFe, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBSecurityGroupNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_SECURITY_GROUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBSGSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBSecurityGroupState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +AUTHORIZE_DB_SECURITY_GROUP_INGRESS: StaticOperationSchema = ( + 23, + n0, + _ADBSGI, + 0, + AUTHORIZE_DB_SECURITY_GROUP_INGRESS_INPUT, + AUTHORIZE_DB_SECURITY_GROUP_INGRESS_OUTPUT, + ( + AUTHORIZATION_ALREADY_EXISTS_FAULT, + AUTHORIZATION_QUOTA_EXCEEDED_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + INVALID_DB_SECURITY_GROUP_STATE_FAULT, + ), +) + +BOOLEAN_OPTIONAL: StaticSchema = (2, n0, _BO, 0) + +BACKTRACK_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _BDBCI, + {_sSI: _cBDBCM, _smi: None}, + (_DBCI, _BT, _F, _UETOPITU), + ((STRING, 1), (T_STAMP, 1), (BOOLEAN_OPTIONAL, 0), (BOOLEAN_OPTIONAL, 0)), +) + +BACKTRACK_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _BDBCO, + {_sSI: _cDBCB, _smit: None}, + (_DBCI, _BI, _BT, _BF, _BRCT, _St), + ((STRING, 0), (STRING, 0), (T_STAMP, 0), (T_STAMP, 0), (T_STAMP, 0), (STRING, 0)), +) + +BACKTRACK_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _BDBC, + 0, + BACKTRACK_DB_CLUSTER_INPUT, + BACKTRACK_DB_CLUSTER_OUTPUT, + (DB_CLUSTER_NOT_FOUND_FAULT, INVALID_DB_CLUSTER_STATE_FAULT), +) + +DB_CAPACITY_RESERVATION_IDENTIFIER: StaticSchema = (3, n0, _DBCRI, 0) + +CANCEL_DB_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _CDBCRI, + {_sSI: _cCDBCRR, _smi: None}, + (_DBCRI,), + ((DB_CAPACITY_RESERVATION_IDENTIFIER, 1),), +) + +AVAILABLE_CAPACITY_PER_AVAILABILITY_ZONE: StaticSchema = ( + 18, + n0, + _ACPAZ, + 0, + (_AZ, _AC), + ((STRING, 0), (INTEGER_OPTIONAL, 0)), +) + +AVAILABLE_CAPACITY_PER_AVAILABILITY_ZONE_LIST: StaticSchema = ( + 16, + n0, + _ACPAZL, + 0, + (_m,), + ((AVAILABLE_CAPACITY_PER_AVAILABILITY_ZONE, {_sN: _ACPAZ}),), +) + +DB_CAPACITY_RESERVATION_COMMITMENT_INFO: StaticSchema = ( + 18, + n0, + _DBCRCI, + 0, + (_CCPAZ, _CED), + ((INTEGER_OPTIONAL, 0), (T_STAMP, 0)), +) + +DB_CAPACITY_RESERVATION_NAME: StaticSchema = (3, n0, _DBCRN, 0) + +DB_INSTANCE_CLASS: StaticSchema = (3, n0, _DBIC, 0) + +DB_CAPACITY_RESERVATION_STATE: StaticSchema = ( + 14, + n0, + _DBCRS, + 0, + (_ac, _e, _ca, _p, _f, _as, _sc, _d, _un), + ( + (-1, {_sV: _ac}), + (-1, {_sV: _e}), + (-1, {_sV: _ca}), + (-1, {_sV: _p}), + (-1, {_sV: _f}), + (-1, {_sV: _as}), + (-1, {_sV: _sc}), + (-1, {_sV: _d}), + (-1, {_sV: _un}), + ), +) + +DB_CAPACITY_RESERVATION: StaticSchema = ( + 18, + n0, + _DBCR, + 0, + ( + _DBCRN, + _DBIC, + _En, + _LM, + _RCPAZ, + _ACPAZL, + _ED, + _CD, + _SD, + _CI, + _Sta, + _DBCRA, + _DBCRI, + _TL, + ), + ( + (DB_CAPACITY_RESERVATION_NAME, 0), + (DB_INSTANCE_CLASS, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (AVAILABLE_CAPACITY_PER_AVAILABILITY_ZONE_LIST, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (DB_CAPACITY_RESERVATION_COMMITMENT_INFO, 0), + (DB_CAPACITY_RESERVATION_STATE, 0), + (STRING, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (TAG_LIST, 0), + ), +) + +CANCEL_DB_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCRO, + {_sSI: _cCDBCRRo, _smit: None}, + (_DBCR,), + ((DB_CAPACITY_RESERVATION, 0),), +) + +INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBCRSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBCapacityReservationState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CANCEL_DB_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _CDBCR, + 0, + CANCEL_DB_CAPACITY_RESERVATION_INPUT, + CANCEL_DB_CAPACITY_RESERVATION_OUTPUT, + ( + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + ), +) + +CANCEL_EXPORT_TASK_INPUT: StaticSchema = ( + 18, + n0, + _CETI, + {_sSI: _cCETM, _smi: None}, + (_ETI,), + ((STRING, 1),), +) + +STRING_LIST: StaticSchema = (16, n0, _SL, 0, (_m,), ((STRING, 0),)) + +EXPORT_SOURCE_TYPE: StaticSchema = ( + 14, + n0, + _EST, + 0, + (_SNAPSHOT, _CLUSTER), + ((-1, {_sV: _SNAPSHOT}), (-1, {_sV: _CLUSTER})), +) + +CANCEL_EXPORT_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _CETO, + {_sSI: _cET, _smit: None}, + ( + _ETI, + _SA, + _EO, + _STn, + _TST, + _TET, + _SB, + _SP, + _IRA, + _KKI, + _St, + _PP, + _TEDIGB, + _FC, + _WM, + _STo, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (EXPORT_SOURCE_TYPE, 0), + ), +) + +EXPORT_TASK_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _ETNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "ExportTaskNotFound", "httpResponseCode": 404}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_EXPORT_TASK_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IETSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidExportTaskStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CANCEL_EXPORT_TASK: StaticOperationSchema = ( + 23, + n0, + _CET, + 0, + CANCEL_EXPORT_TASK_INPUT, + CANCEL_EXPORT_TASK_OUTPUT, + (EXPORT_TASK_NOT_FOUND_FAULT, INVALID_EXPORT_TASK_STATE_FAULT), +) + +COPY_DB_CLUSTER_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBCPGI, + {_sSI: _cCDBCPGM, _smi: None}, + (_SDBCPGI, _TDBCPGI, _TDBCPGD, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +DB_CLUSTER_PARAMETER_GROUP: StaticSchema = ( + 18, + n0, + _DBCPG, + 0, + (_DBCPGN, _DBPGF, _D, _DBCPGA), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +COPY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCPGO, + {_sSI: _cCDBCPGR, _smit: None}, + (_DBCPG,), + ((DB_CLUSTER_PARAMETER_GROUP, 0),), +) + +DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBPGAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBParameterGroupAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PARAMETER_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBPGNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBParameterGroupNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBPGQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBParameterGroupQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +COPY_DB_CLUSTER_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBCPG, + 0, + COPY_DB_CLUSTER_PARAMETER_GROUP_INPUT, + COPY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT, + ( + DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT, + ), +) + +SENSITIVE_STRING: StaticSchema = (3, n0, _SS, 4) + +COPY_DB_CLUSTER_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CDBCSI, + {_sSI: _cCDBCSM, _smi: None}, + (_SDBCSI, _TDBCSI, _KKI, _PSU, _CT, _Ta), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (SENSITIVE_STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + ), +) + +AVAILABILITY_ZONES: StaticSchema = (16, n0, _AZv, 0, (_m,), ((STRING, {_sN: _AZ}),)) + +STORAGE_ENCRYPTION_TYPE: StaticSchema = ( + 14, + n0, + _SET, + 0, + (_UNENCRYPTED, _CMK, _SSE), + ((-1, {_sV: _n}), (-1, {_sV: _sk}), (-1, {_sV: _sr})), +) + +DB_CLUSTER_SNAPSHOT: StaticSchema = ( + 18, + n0, + _DBCS, + 0, + ( + _AZv, + _DBCSI, + _DBCI, + _SCTn, + _En, + _EMn, + _AS, + _St, + _P, + _VI, + _CCT, + _MU, + _EV, + _LM, + _STna, + _PP, + _SE, + _SET, + _BRP, + _PBW, + _KKI, + _DBCSA, + _SDBCSA, + _IAMDAE, + _TL, + _STt, + _ST, + _DCRI, + _DBSI, + ), + ( + (AVAILABILITY_ZONES, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (BOOLEAN, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + ), +) + +COPY_DB_CLUSTER_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCSO, + {_sSI: _cCDBCSR, _smit: None}, + (_DBCS,), + ((DB_CLUSTER_SNAPSHOT, 0),), +) + +DB_CLUSTER_SNAPSHOT_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBCSAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterSnapshotAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCSNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterSnapshotNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBCSSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBClusterSnapshotStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +KMS_KEY_NOT_ACCESSIBLE_FAULT: StaticSchema = ( + 18, + n0, + _KMSKNAF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "KMSKeyNotAccessibleFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SNAPSHOT_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _SQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "SnapshotQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +COPY_DB_CLUSTER_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CDBCS, + 0, + COPY_DB_CLUSTER_SNAPSHOT_INPUT, + COPY_DB_CLUSTER_SNAPSHOT_OUTPUT, + ( + DB_CLUSTER_SNAPSHOT_ALREADY_EXISTS_FAULT, + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +COPY_DB_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBPGI, + {_sSI: _cCDBPGM, _smi: None}, + (_SDBPGI, _TDBPGI, _TDBPGD, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +DB_PARAMETER_GROUP: StaticSchema = ( + 18, + n0, + _DBPG, + 0, + (_DBPGN, _DBPGF, _D, _DBPGA), + ((STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +COPY_DB_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBPGO, + {_sSI: _cCDBPGR, _smit: None}, + (_DBPG,), + ((DB_PARAMETER_GROUP, 0),), +) + +COPY_DB_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBPG, + 0, + COPY_DB_PARAMETER_GROUP_INPUT, + COPY_DB_PARAMETER_GROUP_OUTPUT, + ( + DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT, + ), +) + +TAG_SPECIFICATION: StaticSchema = ( + 18, + n0, + _TSa, + 0, + (_RT, _Ta), + ((STRING, 0), (TAG_LIST, 0)), +) + +TAG_SPECIFICATION_LIST: StaticSchema = ( + 16, + n0, + _TSL, + 0, + (_m,), + ((TAG_SPECIFICATION, {_sN: _i}),), +) + +COPY_DB_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CDBSI, + {_sSI: _cCDBSM, _smi: None}, + (_SDBSI, _TDBSI, _KKI, _Ta, _CT, _PSU, _OGN, _TCAZ, _STnap, _COG, _SAZ, _TSag), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (TAG_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, 0), + ), +) + +LONG_OPTIONAL: StaticSchema = (8, n0, _LO, 0) + +PROCESSOR_FEATURE: StaticSchema = (18, n0, _PF, 0, (_N, _V), ((STRING, 0), (STRING, 0))) + +PROCESSOR_FEATURE_LIST: StaticSchema = ( + 16, + n0, + _PFL, + 0, + (_m,), + ((PROCESSOR_FEATURE, {_sN: _PF}),), +) + +DB_SNAPSHOT: StaticSchema = ( + 18, + n0, + _DBS, + 0, + ( + _DBSIn, + _DBII, + _SCTn, + _En, + _AS, + _St, + _P, + _AZ, + _VI, + _ICT, + _MU, + _EV, + _LM, + _STna, + _Io, + _ST, + _OGN, + _PP, + _SR, + _SDBSI, + _STt, + _TCA, + _Enc, + _SET, + _BRP, + _PBW, + _KKI, + _DBSA, + _Ti, + _IAMDAE, + _PFr, + _DRI, + _TL, + _STnap, + _OSCT, + _SDT, + _DBSI, + _MT, + _DLV, + _ASVd, + _SAZ, + _FSSIB, + ), + ( + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (PROCESSOR_FEATURE_LIST, 0), + (STRING, 0), + (TAG_LIST, 0), + (STRING, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (STRING, 0), + (LONG_OPTIONAL, 0), + ), +) + +COPY_DB_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBSO, + {_sSI: _cCDBSR, _smit: None}, + (_DBS,), + ((DB_SNAPSHOT, 0),), +) + +CUSTOM_AVAILABILITY_ZONE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _CAZNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "CustomAvailabilityZoneNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SNAPSHOT_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBSAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSnapshotAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_SNAPSHOT_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBSSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBSnapshotState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +COPY_DB_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CDBS, + 0, + COPY_DB_SNAPSHOT_INPUT, + COPY_DB_SNAPSHOT_OUTPUT, + ( + CUSTOM_AVAILABILITY_ZONE_NOT_FOUND_FAULT, + DB_SNAPSHOT_ALREADY_EXISTS_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +COPY_OPTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _COGI, + {_sSI: _cCOGM, _smi: None}, + (_SOGI, _TOGI, _TOGD, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +DB_SECURITY_GROUP_MEMBERSHIP: StaticSchema = ( + 18, + n0, + _DBSGM, + 0, + (_DBSGN, _St), + ((STRING, 0), (STRING, 0)), +) + +DB_SECURITY_GROUP_MEMBERSHIP_LIST: StaticSchema = ( + 16, + n0, + _DBSGML, + 0, + (_m,), + ((DB_SECURITY_GROUP_MEMBERSHIP, {_sN: _DBSG}),), +) + +POTENTIALLY_SENSITIVE_OPTION_SETTING_VALUE: StaticSchema = (3, n0, _PSOSV, 4) + +OPTION_SETTING: StaticSchema = ( + 18, + n0, + _OS, + 0, + (_N, _V, _DV, _D, _AT, _DT, _AV, _IM, _IC), + ( + (STRING, 0), + (POTENTIALLY_SENSITIVE_OPTION_SETTING_VALUE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + ), +) + +OPTION_SETTING_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _OSCL, + 0, + (_m,), + ((OPTION_SETTING, {_sN: _OS}),), +) + +VPC_SECURITY_GROUP_MEMBERSHIP: StaticSchema = ( + 18, + n0, + _VSGM, + 0, + (_VSGI, _St), + ((STRING, 0), (STRING, 0)), +) + +VPC_SECURITY_GROUP_MEMBERSHIP_LIST: StaticSchema = ( + 16, + n0, + _VSGML, + 0, + (_m,), + ((VPC_SECURITY_GROUP_MEMBERSHIP, {_sN: _VSGM}),), +) + +OPTION: StaticSchema = ( + 18, + n0, + _O, + 0, + (_ON, _OD, _Pe, _Per, _P, _OV, _OSp, _DBSGMe, _VSGMp), + ( + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (OPTION_SETTING_CONFIGURATION_LIST, 0), + (DB_SECURITY_GROUP_MEMBERSHIP_LIST, 0), + (VPC_SECURITY_GROUP_MEMBERSHIP_LIST, 0), + ), +) + +OPTIONS_LIST: StaticSchema = (16, n0, _OL, 0, (_m,), ((OPTION, {_sN: _O}),)) + +OPTION_GROUP: StaticSchema = ( + 18, + n0, + _OG, + 0, + (_OGN, _OGD, _EN, _MEV, _Op, _AVANVIM, _VI, _OGA, _SOG, _SAI, _CTo, _SR), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (OPTIONS_LIST, 0), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + ), +) + +COPY_OPTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _COGO, + {_sSI: _cCOGR, _smit: None}, + (_OG,), + ((OPTION_GROUP, 0),), +) + +OPTION_GROUP_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _OGAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "OptionGroupAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +OPTION_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _OGNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "OptionGroupNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +OPTION_GROUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _OGQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "OptionGroupQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +COPY_OPTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _COG, + 0, + COPY_OPTION_GROUP_INPUT, + COPY_OPTION_GROUP_OUTPUT, + ( + OPTION_GROUP_ALREADY_EXISTS_FAULT, + OPTION_GROUP_NOT_FOUND_FAULT, + OPTION_GROUP_QUOTA_EXCEEDED_FAULT, + ), +) + +BLUE_GREEN_DEPLOYMENT_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _BGDAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "BlueGreenDeploymentAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +BLUE_GREEN_DEPLOYMENT_NAME: StaticSchema = (3, n0, _BGDN, 0) + +DATABASE_ARN: StaticSchema = (3, n0, _DA, 0) + +TARGET_DB_CLUSTER_PARAMETER_GROUP_NAME: StaticSchema = (3, n0, _TDBCPGN, 0) + +TARGET_DB_INSTANCE_CLASS: StaticSchema = (3, n0, _TDBIC, 0) + +TARGET_DB_PARAMETER_GROUP_NAME: StaticSchema = (3, n0, _TDBPGN, 0) + +TARGET_ENGINE_VERSION: StaticSchema = (3, n0, _TEV, 0) + +DB_AND_CLUSTER_ARN: StaticSchema = (3, n0, _DBACA, 0) + +KMS_KEY_ID_OR_ARN: StaticSchema = (3, n0, _KKIOA, 0) + +TARGET_RESOURCE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TRC, + 0, + (_SA, _TKKI), + ((DB_AND_CLUSTER_ARN, 1), (KMS_KEY_ID_OR_ARN, 0)), +) + +TARGET_RESOURCE_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _TRCL, + 0, + (_m,), + ((TARGET_RESOURCE_CONFIGURATION, {_sN: _TRC}),), +) + +TARGET_STORAGE_TYPE: StaticSchema = (3, n0, _TSTa, 0) + +CREATE_BLUE_GREEN_DEPLOYMENT_INPUT: StaticSchema = ( + 18, + n0, + _CBGDI, + {_sSI: _cCBGDR, _smi: None}, + ( + _BGDN, + _So, + _TEV, + _TDBPGN, + _TDBCPGN, + _Ta, + _TDBIC, + _UTSC, + _TI, + _TSTa, + _TAS, + _TSTar, + _TRCa, + ), + ( + (BLUE_GREEN_DEPLOYMENT_NAME, 1), + (DATABASE_ARN, 1), + (TARGET_ENGINE_VERSION, 0), + (TARGET_DB_PARAMETER_GROUP_NAME, 0), + (TARGET_DB_CLUSTER_PARAMETER_GROUP_NAME, 0), + (TAG_LIST, 0), + (TARGET_DB_INSTANCE_CLASS, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (TARGET_STORAGE_TYPE, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (TARGET_RESOURCE_CONFIGURATION_LIST, 0), + ), +) + +BLUE_GREEN_DEPLOYMENT_IDENTIFIER: StaticSchema = (3, n0, _BGDI, 0) + +BLUE_GREEN_DEPLOYMENT_STATUS: StaticSchema = (3, n0, _BGDS, 0) + +BLUE_GREEN_DEPLOYMENT_STATUS_DETAILS: StaticSchema = (3, n0, _BGDSD, 0) + +SWITCHOVER_DETAIL_STATUS: StaticSchema = (3, n0, _SDS, 0) + +SWITCHOVER_DETAIL: StaticSchema = ( + 18, + n0, + _SDw, + 0, + (_SM, _TM, _St), + ((DATABASE_ARN, 0), (DATABASE_ARN, 0), (SWITCHOVER_DETAIL_STATUS, 0)), +) + +SWITCHOVER_DETAIL_LIST: StaticSchema = ( + 16, + n0, + _SDL, + 0, + (_m,), + ((SWITCHOVER_DETAIL, 0),), +) + +BLUE_GREEN_DEPLOYMENT_TASK_NAME: StaticSchema = (3, n0, _BGDTN, 0) + +BLUE_GREEN_DEPLOYMENT_TASK_STATUS: StaticSchema = (3, n0, _BGDTS, 0) + +BLUE_GREEN_DEPLOYMENT_TASK: StaticSchema = ( + 18, + n0, + _BGDT, + 0, + (_N, _St), + ((BLUE_GREEN_DEPLOYMENT_TASK_NAME, 0), (BLUE_GREEN_DEPLOYMENT_TASK_STATUS, 0)), +) + +BLUE_GREEN_DEPLOYMENT_TASK_LIST: StaticSchema = ( + 16, + n0, + _BGDTL, + 0, + (_m,), + ((BLUE_GREEN_DEPLOYMENT_TASK, 0),), +) + +BLUE_GREEN_DEPLOYMENT: StaticSchema = ( + 18, + n0, + _BGD, + 0, + (_BGDI, _BGDN, _So, _Tar, _SDwi, _Tas, _St, _SDt, _CTr, _DTe, _TL), + ( + (BLUE_GREEN_DEPLOYMENT_IDENTIFIER, 0), + (BLUE_GREEN_DEPLOYMENT_NAME, 0), + (DATABASE_ARN, 0), + (DATABASE_ARN, 0), + (SWITCHOVER_DETAIL_LIST, 0), + (BLUE_GREEN_DEPLOYMENT_TASK_LIST, 0), + (BLUE_GREEN_DEPLOYMENT_STATUS, 0), + (BLUE_GREEN_DEPLOYMENT_STATUS_DETAILS, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (TAG_LIST, 0), + ), +) + +CREATE_BLUE_GREEN_DEPLOYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _CBGDO, + {_sSI: _cCBGDRo, _smit: None}, + (_BGD,), + ((BLUE_GREEN_DEPLOYMENT, 0),), +) + +DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCPGNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterParameterGroupNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CLUSTER_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBCQEF, + { + _smith: _c, + _sE: 403, + _aQE: MappingProxyType( + {"code": "DBClusterQuotaExceededFault", "httpResponseCode": 403} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INSTANCE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _IQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InstanceQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SOURCE_CLUSTER_NOT_SUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _SCNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "SourceClusterNotSupportedFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SOURCE_DATABASE_NOT_SUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _SDNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "SourceDatabaseNotSupportedFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +STORAGE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _SQEFt, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "StorageQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_BLUE_GREEN_DEPLOYMENT: StaticOperationSchema = ( + 23, + n0, + _CBGD, + 0, + CREATE_BLUE_GREEN_DEPLOYMENT_INPUT, + CREATE_BLUE_GREEN_DEPLOYMENT_OUTPUT, + ( + BLUE_GREEN_DEPLOYMENT_ALREADY_EXISTS_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_CLUSTER_QUOTA_EXCEEDED_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + SOURCE_CLUSTER_NOT_SUPPORTED_FAULT, + SOURCE_DATABASE_NOT_SUPPORTED_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + ), +) + +CREATE_CUSTOM_DB_ENGINE_VERSION_FAULT: StaticSchema = ( + 18, + n0, + _CCDBEVF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CreateCustomDBEngineVersionFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +BUCKET_NAME: StaticSchema = (3, n0, _BN, 0) + +STRING255: StaticSchema = (3, n0, _Str, 0) + +DESCRIPTION: StaticSchema = (3, n0, _D, 0) + +CUSTOM_ENGINE_NAME: StaticSchema = (3, n0, _CEN, 0) + +CUSTOM_ENGINE_VERSION: StaticSchema = (3, n0, _CEV, 0) + +CUSTOM_DB_ENGINE_VERSION_MANIFEST: StaticSchema = (3, n0, _CDBEVM, 0) + +CREATE_CUSTOM_DB_ENGINE_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _CCDBEVI, + {_sSI: _cCCDBEVM, _smi: None}, + (_En, _EV, _DIFSBN, _DIFSP, _DIF, _II, _KMSKI, _SCDEVI, _UAPLI, _D, _Ma, _Ta), + ( + (CUSTOM_ENGINE_NAME, 1), + (CUSTOM_ENGINE_VERSION, 1), + (BUCKET_NAME, 0), + (STRING255, 0), + (STRING_LIST, 0), + (STRING255, 0), + (KMS_KEY_ID_OR_ARN, 0), + (STRING255, 0), + (BOOLEAN_OPTIONAL, 0), + (DESCRIPTION, 0), + (CUSTOM_DB_ENGINE_VERSION_MANIFEST, 0), + (TAG_LIST, 0), + ), +) + +CHARACTER_SET: StaticSchema = (18, n0, _CS, 0, (_CSN, _CSD), ((STRING, 0), (STRING, 0))) + +LOG_TYPE_LIST: StaticSchema = (16, n0, _LTL, 0, (_m,), ((STRING, 0),)) + +CUSTOM_DB_ENGINE_VERSION_AMI: StaticSchema = ( + 18, + n0, + _CDBEVAMI, + 0, + (_II, _St), + ((STRING, 0), (STRING, 0)), +) + +DOUBLE_OPTIONAL: StaticSchema = (10, n0, _DO, 0) + +SERVERLESS_V2_FEATURES_SUPPORT: StaticSchema = ( + 18, + n0, + _SVFS, + 0, + (_MC, _MCa), + ((DOUBLE_OPTIONAL, 0), (DOUBLE_OPTIONAL, 0)), +) + +CA_CERTIFICATE_IDENTIFIERS_LIST: StaticSchema = ( + 16, + n0, + _CACIL, + 0, + (_m,), + ((STRING, 0),), +) + +SUPPORTED_CHARACTER_SETS_LIST: StaticSchema = ( + 16, + n0, + _SCSL, + 0, + (_m,), + ((CHARACTER_SET, {_sN: _CS}),), +) + +ENGINE_MODE_LIST: StaticSchema = (16, n0, _EML, 0, (_m,), ((STRING, 0),)) + +FEATURE_NAME_LIST: StaticSchema = (16, n0, _FNL, 0, (_m,), ((STRING, 0),)) + +TIMEZONE: StaticSchema = (18, n0, _Ti, 0, (_TN,), ((STRING, 0),)) + +SUPPORTED_TIMEZONES_LIST: StaticSchema = ( + 16, + n0, + _STL, + 0, + (_m,), + ((TIMEZONE, {_sN: _Ti}),), +) + +UPGRADE_TARGET: StaticSchema = ( + 18, + n0, + _UT, + 0, + (_En, _EV, _D, _AU, _IMVU, _SEM, _SPQ, _SGD, _SBu, _SLD, _SLWF, _SIu), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (ENGINE_MODE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +VALID_UPGRADE_TARGET_LIST: StaticSchema = ( + 16, + n0, + _VUTL, + 0, + (_m,), + ((UPGRADE_TARGET, {_sN: _UT}),), +) + +CREATE_CUSTOM_DB_ENGINE_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CCDBEVO, + {_sSI: _cDBEV, _smit: None}, + ( + _En, + _MEV, + _EV, + _DIFSBN, + _DIFSP, + _DIF, + _CDBEVM, + _DBPGF, + _DBED, + _DBEVA, + _DBEVD, + _DCS, + _FR, + _Im, + _DBEMT, + _KMSKI, + _CTr, + _SCS, + _SNCS, + _VUT, + _STu, + _ELT, + _SLETCL, + _SRR, + _SEM, + _SFN, + _St, + _SPQ, + _SGD, + _TL, + _SBu, + _SLD, + _SCRWR, + _SCACI, + _SLWF, + _SIu, + _SVFS, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (CUSTOM_DB_ENGINE_VERSION_MANIFEST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CHARACTER_SET, 0), + (STRING, 0), + (CUSTOM_DB_ENGINE_VERSION_AMI, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (VALID_UPGRADE_TARGET_LIST, 0), + (SUPPORTED_TIMEZONES_LIST, 0), + (LOG_TYPE_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (ENGINE_MODE_LIST, 0), + (FEATURE_NAME_LIST, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (CA_CERTIFICATE_IDENTIFIERS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (SERVERLESS_V2_FEATURES_SUPPORT, 0), + ), +) + +CUSTOM_DB_ENGINE_VERSION_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _CDBEVAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomDBEngineVersionAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CUSTOM_DB_ENGINE_VERSION_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _CDBEVNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "CustomDBEngineVersionNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CUSTOM_DB_ENGINE_VERSION_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _CDBEVQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "CustomDBEngineVersionQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +EC2_IMAGE_PROPERTIES_NOT_SUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _EIPNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "Ec2ImagePropertiesNotSupportedFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_CUSTOM_DB_ENGINE_VERSION_STATE_FAULT: StaticSchema = ( + 18, + n0, + _ICDBEVSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidCustomDBEngineVersionStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_CUSTOM_DB_ENGINE_VERSION: StaticOperationSchema = ( + 23, + n0, + _CCDBEV, + 0, + CREATE_CUSTOM_DB_ENGINE_VERSION_INPUT, + CREATE_CUSTOM_DB_ENGINE_VERSION_OUTPUT, + ( + CREATE_CUSTOM_DB_ENGINE_VERSION_FAULT, + CUSTOM_DB_ENGINE_VERSION_ALREADY_EXISTS_FAULT, + CUSTOM_DB_ENGINE_VERSION_NOT_FOUND_FAULT, + CUSTOM_DB_ENGINE_VERSION_QUOTA_EXCEEDED_FAULT, + EC2_IMAGE_PROPERTIES_NOT_SUPPORTED_FAULT, + INVALID_CUSTOM_DB_ENGINE_VERSION_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + ), +) + +CREATE_DB_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _CDBCRIr, + {_sSI: _cCDBCRRom, _smi: None}, + (_DBCRN, _DBIC, _En, _CPAZ, _AZv, _ED, _SD, _CDo, _LM, _Ta), + ( + (DB_CAPACITY_RESERVATION_NAME, 1), + (DB_INSTANCE_CLASS, 1), + (STRING, 1), + (INTEGER_OPTIONAL, 1), + (AVAILABILITY_ZONES, 1), + (T_STAMP, 0), + (T_STAMP, 0), + (LONG_OPTIONAL, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +CREATE_DB_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCROr, + {_sSI: _cCDBCRRoma, _smit: None}, + (_DBCR,), + ((DB_CAPACITY_RESERVATION, 0),), +) + +DB_CAPACITY_RESERVATION_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBCRAEFa, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBCapacityReservationAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CAPACITY_RESERVATION_UNSUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _DBCRUF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBCapacityReservationUnsupported", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT: StaticSchema = ( + 18, + n0, + _IDBICF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InsufficientDBInstanceCapacity", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _CDBCRr, + 0, + CREATE_DB_CAPACITY_RESERVATION_INPUT, + CREATE_DB_CAPACITY_RESERVATION_OUTPUT, + ( + DB_CAPACITY_RESERVATION_ALREADY_EXISTS_FAULT, + DB_CAPACITY_RESERVATION_UNSUPPORTED_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + ), +) + +DB_CLUSTER_ASSOCIATED_ROLE: StaticSchema = ( + 18, + n0, + _DBCAR, + 0, + (_RA, _FN), + ((IAM_ROLE_ARN, 1), (STRING, 0)), +) + +DB_CLUSTER_ASSOCIATED_ROLES: StaticSchema = ( + 16, + n0, + _DBCARl, + 0, + (_m,), + ((DB_CLUSTER_ASSOCIATED_ROLE, {_sN: _DBCAR}),), +) + +CLUSTER_SCALABILITY_TYPE: StaticSchema = ( + 14, + n0, + _CST, + 0, + (_STANDARD, _LIMITLESS), + ((-1, {_sV: _stan}), (-1, {_sV: _li})), +) + +DATABASE_INSIGHTS_MODE: StaticSchema = ( + 14, + n0, + _DIM, + 0, + (_STANDARD, _ADVANCED), + ((-1, {_sV: _stan}), (-1, {_sV: _ad})), +) + +GLOBAL_CLUSTER_IDENTIFIER: StaticSchema = (3, n0, _GCI, 0) + +MASTER_USER_AUTHENTICATION_TYPE: StaticSchema = ( + 14, + n0, + _MUAT, + 0, + (_PASSWORD, _IDA), + ((-1, {_sV: _pa}), (-1, {_sV: _ida})), +) + +REPLICA_MODE: StaticSchema = ( + 14, + n0, + _RM, + 0, + (_ORO, _MOUNTED), + ((-1, {_sV: _oro}), (-1, {_sV: _mo})), +) + +RDS_CUSTOM_CLUSTER_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RCCC, + 0, + (_ISI, _TGMDI, _RM), + ((STRING, 0), (STRING, 0), (REPLICA_MODE, 0)), +) + +SCALING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SC, + 0, + (_MC, _MCa, _AP, _SUAP, _TA, _SBT), + ( + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + ), +) + +SERVERLESS_V2_SCALING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SVSC, + 0, + (_MC, _MCa, _SUAP), + ((DOUBLE_OPTIONAL, 0), (DOUBLE_OPTIONAL, 0), (INTEGER_OPTIONAL, 0)), +) + +VPC_SECURITY_GROUP_ID_LIST: StaticSchema = ( + 16, + n0, + _VSGIL, + 0, + (_m,), + ((STRING, {_sN: _VSGI}),), +) + +CREATE_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _CDBCI, + {_sSI: _cCDBCM, _smi: None}, + ( + _AZv, + _BRP, + _CSN, + _DN, + _DBCI, + _DBCPGN, + _VSGIp, + _DBSGNu, + _En, + _EV, + _P, + _MU, + _MUP, + _OGN, + _PBW, + _PMW, + _RSI, + _Ta, + _SE, + _KKI, + _PSU, + _EIAMDA, + _BW, + _ECLE, + _EMn, + _SC, + _RCCC, + _DBCIC, + _AS, + _STt, + _Io, + _PA, + _AMVU, + _DP, + _GCI, + _EHE, + _CTTS, + _Do, + _DIAMRN, + _EGWF, + _NT, + _SVSC, + _MI, + _MRA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _ELD, + _CST, + _DBSI, + _MMUP, + _ELWF, + _MUSKKI, + _CACI, + _ELS, + _TSag, + _MUAT, + _WEC, + _AR, + ), + ( + (AVAILABILITY_ZONES, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 1), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 1), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (LONG_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (STRING, 0), + (SCALING_CONFIGURATION, 0), + (RDS_CUSTOM_CLUSTER_CONFIGURATION, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (GLOBAL_CLUSTER_IDENTIFIER, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (CLUSTER_SCALABILITY_TYPE, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, 0), + (MASTER_USER_AUTHENTICATION_TYPE, 0), + (BOOLEAN_OPTIONAL, 0), + (DB_CLUSTER_ASSOCIATED_ROLES, 0), + ), +) + +DB_CLUSTER_ROLE: StaticSchema = ( + 18, + n0, + _DBCRl, + 0, + (_RA, _St, _FN), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +DB_CLUSTER_ROLES: StaticSchema = ( + 16, + n0, + _DBCRlu, + 0, + (_m,), + ((DB_CLUSTER_ROLE, {_sN: _DBCRl}),), +) + +CERTIFICATE_DETAILS: StaticSchema = ( + 18, + n0, + _CDe, + 0, + (_CAId, _VT), + ((STRING, 0), (T_STAMP, 0)), +) + +DB_CLUSTER_MEMBER: StaticSchema = ( + 18, + n0, + _DBCM, + 0, + (_DBII, _ICW, _DBCPGS, _PT), + ((STRING, 0), (BOOLEAN, 0), (STRING, 0), (INTEGER_OPTIONAL, 0)), +) + +DB_CLUSTER_MEMBER_LIST: StaticSchema = ( + 16, + n0, + _DBCML, + 0, + (_m,), + ((DB_CLUSTER_MEMBER, {_sN: _DBCM}),), +) + +DB_CLUSTER_OPTION_GROUP_STATUS: StaticSchema = ( + 18, + n0, + _DBCOGS, + 0, + (_DBCOGN, _St), + ((STRING, 0), (STRING, 0)), +) + +DB_CLUSTER_OPTION_GROUP_MEMBERSHIPS: StaticSchema = ( + 16, + n0, + _DBCOGM, + 0, + (_m,), + ((DB_CLUSTER_OPTION_GROUP_STATUS, {_sN: _DBCOG}),), +) + +DOMAIN_MEMBERSHIP: StaticSchema = ( + 18, + n0, + _DM, + 0, + (_Do, _St, _FQDN, _IAMRN, _OU, _ASA, _DI), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + ), +) + +DOMAIN_MEMBERSHIP_LIST: StaticSchema = ( + 16, + n0, + _DML, + 0, + (_m,), + ((DOMAIN_MEMBERSHIP, {_sN: _DM}),), +) + +WRITE_FORWARDING_STATUS: StaticSchema = ( + 14, + n0, + _WFS, + 0, + (_ENABLED, _DISABLED, _ENABLING, _DISABLING, _UNKNOWN), + ( + (-1, {_sV: _en}), + (-1, {_sV: _di}), + (-1, {_sV: _ena}), + (-1, {_sV: _dis}), + (-1, {_sV: _unk}), + ), +) + +LIMITLESS_DATABASE_STATUS: StaticSchema = ( + 14, + n0, + _LDS, + 0, + (_ACTIVE, _NIU, _ENABLED, _DISABLED, _ENABLING, _DISABLING, _MMC, _ERROR), + ( + (-1, {_sV: _ac}), + (-1, {_sV: _niu}), + (-1, {_sV: _en}), + (-1, {_sV: _di}), + (-1, {_sV: _ena}), + (-1, {_sV: _dis}), + (-1, {_sV: _mmc}), + (-1, {_sV: _er}), + ), +) + +LIMITLESS_DATABASE: StaticSchema = ( + 18, + n0, + _LD, + 0, + (_St, _MRACU), + ((LIMITLESS_DATABASE_STATUS, 0), (DOUBLE_OPTIONAL, 0)), +) + +LOCAL_WRITE_FORWARDING_STATUS: StaticSchema = ( + 14, + n0, + _LWFS, + 0, + (_ENABLED, _DISABLED, _ENABLING, _DISABLING, _REQUESTED), + ( + (-1, {_sV: _en}), + (-1, {_sV: _di}), + (-1, {_sV: _ena}), + (-1, {_sV: _dis}), + (-1, {_sV: _r}), + ), +) + +MASTER_USER_SECRET: StaticSchema = ( + 18, + n0, + _MUS, + 0, + (_SAe, _SSe, _KKI), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +PENDING_CLOUDWATCH_LOGS_EXPORTS: StaticSchema = ( + 18, + n0, + _PCLE, + 0, + (_LTTE, _LTTD), + ((LOG_TYPE_LIST, 0), (LOG_TYPE_LIST, 0)), +) + +CLUSTER_PENDING_MODIFIED_VALUES: StaticSchema = ( + 18, + n0, + _CPMV, + 0, + (_PCLE, _DBCI, _MUP, _IAMDAE, _EV, _BRP, _STt, _AS, _RCCC, _Io, _CDe), + ( + (PENDING_CLOUDWATCH_LOGS_EXPORTS, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (RDS_CUSTOM_CLUSTER_CONFIGURATION, 0), + (INTEGER_OPTIONAL, 0), + (CERTIFICATE_DETAILS, 0), + ), +) + +READ_REPLICA_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _RRIL, + 0, + (_m,), + ((STRING, {_sN: _RRI}),), +) + +SCALING_CONFIGURATION_INFO: StaticSchema = ( + 18, + n0, + _SCI, + 0, + (_MC, _MCa, _AP, _SUAP, _TA, _SBT), + ( + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + ), +) + +SERVERLESS_V2_SCALING_CONFIGURATION_INFO: StaticSchema = ( + 18, + n0, + _SVSCI, + 0, + (_MC, _MCa, _SUAP), + ((DOUBLE_OPTIONAL, 0), (DOUBLE_OPTIONAL, 0), (INTEGER_OPTIONAL, 0)), +) + +DB_CLUSTER_STATUS_INFO: StaticSchema = ( + 18, + n0, + _DBCSIl, + 0, + (_STta, _No, _St, _Me), + ((STRING, 0), (BOOLEAN, 0), (STRING, 0), (STRING, 0)), +) + +DB_CLUSTER_STATUS_INFO_LIST: StaticSchema = ( + 16, + n0, + _DBCSIL, + 0, + (_m,), + ((DB_CLUSTER_STATUS_INFO, {_sN: _DBCSIl}),), +) + +UPGRADE_ROLLOUT_ORDER: StaticSchema = ( + 14, + n0, + _URO, + 0, + (_FIRST, _SECOND, _LAST), + ((-1, {_sV: _fi}), (-1, {_sV: _se}), (-1, {_sV: _la})), +) + +DB_CLUSTER: StaticSchema = ( + 18, + n0, + _DBC, + 0, + ( + _AS, + _AZv, + _BRP, + _CSN, + _DN, + _DBCI, + _DBCPG, + _DBSGu, + _St, + _PP, + _ERT, + _End, + _RE, + _CE, + _MAZ, + _En, + _EV, + _LRT, + _P, + _MU, + _DBCOGM, + _PBW, + _PMW, + _URO, + _RSI, + _RRIe, + _SIt, + _DBCMl, + _VSG, + _HZI, + _SE, + _SET, + _KKI, + _DCRI, + _DBCA, + _AR, + _IAMDAE, + _CGI, + _CCT, + _EBT, + _BW, + _BCCR, + _ECLEn, + _C, + _PMV, + _EMn, + _SCI, + _RCCC, + _DBCIC, + _STt, + _Io, + _ST, + _IOONAMT, + _PA, + _AMVU, + _DP, + _HEE, + _ASM, + _ASS, + _ASKKI, + _ASKSN, + _CTTS, + _CAC, + _DMo, + _TL, + _GCI, + _GWFS, + _GWFR, + _NT, + _ART, + _SVSC, + _SVPV, + _MI, + _MRA, + _DIM, + _PIE, + _PIKMSKI, + _PIRP, + _DBSI, + _MUS, + _LWFS, + _ABRPA, + _LD, + _CST, + _CDe, + _ELS, + _VPCNE, + _IAGE, + ), + ( + (INTEGER_OPTIONAL, 0), + (AVAILABILITY_ZONES, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DB_CLUSTER_OPTION_GROUP_MEMBERSHIPS, 0), + (STRING, 0), + (STRING, 0), + (UPGRADE_ROLLOUT_ORDER, 0), + (STRING, 0), + (READ_REPLICA_IDENTIFIER_LIST, 0), + (DB_CLUSTER_STATUS_INFO_LIST, 0), + (DB_CLUSTER_MEMBER_LIST, 0), + (VPC_SECURITY_GROUP_MEMBERSHIP_LIST, 0), + (STRING, 0), + (BOOLEAN, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DB_CLUSTER_ROLES, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (LONG_OPTIONAL, 0), + (LONG_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (INTEGER_OPTIONAL, 0), + (CLUSTER_PENDING_MODIFIED_VALUES, 0), + (STRING, 0), + (SCALING_CONFIGURATION_INFO, 0), + (RDS_CUSTOM_CLUSTER_CONFIGURATION, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (T_STAMP, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (ACTIVITY_STREAM_MODE, 0), + (ACTIVITY_STREAM_STATUS, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (DOMAIN_MEMBERSHIP_LIST, 0), + (TAG_LIST, 0), + (GLOBAL_CLUSTER_IDENTIFIER, 0), + (WRITE_FORWARDING_STATUS, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (T_STAMP, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION_INFO, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (MASTER_USER_SECRET, 0), + (LOCAL_WRITE_FORWARDING_STATUS, 0), + (STRING, 0), + (LIMITLESS_DATABASE, 0), + (CLUSTER_SCALABILITY_TYPE, 0), + (CERTIFICATE_DETAILS, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +CREATE_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCO, + {_sSI: _cCDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +DB_CLUSTER_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBCAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS: StaticSchema = ( + 18, + n0, + _DBSGDNCEAZ, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSubnetGroupDoesNotCoverEnoughAZs", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SUBNET_GROUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBSGNFFu, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBSubnetGroupNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DOMAIN_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DomainNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +GLOBAL_CLUSTER_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _GCNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "GlobalClusterNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT: StaticSchema = ( + 18, + n0, + _ISCCF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InsufficientStorageClusterCapacity", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_SUBNET_GROUP_FAULT: StaticSchema = ( + 18, + n0, + _IDBSGF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBSubnetGroupFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_SUBNET_GROUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBSGSFn, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBSubnetGroupStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_GLOBAL_CLUSTER_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IGCSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidGlobalClusterStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_SUBNET: StaticSchema = ( + 18, + n0, + _IS, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidSubnet", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_VPC_NETWORK_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IVPCNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidVPCNetworkStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +NETWORK_TYPE_NOT_SUPPORTED: StaticSchema = ( + 18, + n0, + _NTNS, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "NetworkTypeNotSupported", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +STORAGE_TYPE_NOT_SUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _STNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "StorageTypeNotSupported", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _VECVE, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "VpcEncryptionControlViolationException", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _CDBC, + 0, + CREATE_DB_CLUSTER_INPUT, + CREATE_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_ALREADY_EXISTS_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_CLUSTER_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + GLOBAL_CLUSTER_NOT_FOUND_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SUBNET_GROUP_FAULT, + INVALID_DB_SUBNET_GROUP_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +CREATE_DB_CLUSTER_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CDBCEI, + {_sSI: _cCDBCEM, _smi: None}, + (_DBCI, _DBCEI, _ET, _SMt, _EMx, _Ta), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING_LIST, 0), + (STRING_LIST, 0), + (TAG_LIST, 0), + ), +) + +CREATE_DB_CLUSTER_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCEO, + {_sSI: _cDBCE, _smit: None}, + (_DBCEI, _DBCI, _DBCERI, _End, _St, _ET, _CETu, _SMt, _EMx, _DBCEA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + ), +) + +DB_CLUSTER_ENDPOINT_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBCEAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterEndpointAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_CLUSTER_ENDPOINT_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBCEQEF, + { + _smith: _c, + _sE: 403, + _aQE: MappingProxyType( + {"code": "DBClusterEndpointQuotaExceededFault", "httpResponseCode": 403} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_CLUSTER_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CDBCE, + 0, + CREATE_DB_CLUSTER_ENDPOINT_INPUT, + CREATE_DB_CLUSTER_ENDPOINT_OUTPUT, + ( + DB_CLUSTER_ENDPOINT_ALREADY_EXISTS_FAULT, + DB_CLUSTER_ENDPOINT_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +CREATE_DB_CLUSTER_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBCPGIr, + {_sSI: _cCDBCPGMo, _smi: None}, + (_DBCPGN, _DBPGF, _D, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCPGOr, + {_sSI: _cCDBCPGRo, _smit: None}, + (_DBCPG,), + ((DB_CLUSTER_PARAMETER_GROUP, 0),), +) + +CREATE_DB_CLUSTER_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBCPGr, + 0, + CREATE_DB_CLUSTER_PARAMETER_GROUP_INPUT, + CREATE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT, DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT), +) + +CREATE_DB_CLUSTER_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CDBCSIr, + {_sSI: _cCDBCSMo, _smi: None}, + (_DBCSI, _DBCI, _Ta), + ((STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_DB_CLUSTER_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBCSOr, + {_sSI: _cCDBCSRo, _smit: None}, + (_DBCS,), + ((DB_CLUSTER_SNAPSHOT, 0),), +) + +CREATE_DB_CLUSTER_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CDBCSr, + 0, + CREATE_DB_CLUSTER_SNAPSHOT_INPUT, + CREATE_DB_CLUSTER_SNAPSHOT_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +AUTHORIZATION_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _ANFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "AuthorizationNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +BACKUP_POLICY_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _BPNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "BackupPolicyNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CERTIFICATE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _CNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "CertificateNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SECURITY_GROUP_NAME_LIST: StaticSchema = ( + 16, + n0, + _DBSGNL, + 0, + (_m,), + ((STRING, {_sN: _DBSGN}),), +) + +CREATE_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _CDBII, + {_sSI: _cCDBIM, _smi: None}, + ( + _DBN, + _DBII, + _AS, + _DBIC, + _En, + _MU, + _MUP, + _DBSGe, + _VSGIp, + _AZ, + _DBSGNu, + _PMW, + _DBPGN, + _BRP, + _PBW, + _P, + _MAZ, + _EV, + _AMVU, + _LM, + _Io, + _ST, + _OGN, + _CSN, + _NCSN, + _PA, + _Ta, + _DBCI, + _STt, + _TCA, + _TCP, + _SE, + _KKI, + _Do, + _DF, + _DOo, + _DASA, + _DDI, + _CTTS, + _MI, + _MRA, + _DIAMRN, + _PT, + _Ti, + _EIAMDA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _ECLE, + _PFr, + _DP, + _MAS, + _ECOI, + _NT, + _BTa, + _CIIP, + _DBSI, + _CACI, + _MMUP, + _MUSKKI, + _MT, + _DLV, + _ELS, + _ASVd, + _TSag, + _DBCRI, + _MUAT, + ), + ( + (STRING, 0), + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (SENSITIVE_STRING, 0), + (DB_SECURITY_GROUP_NAME_LIST, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (TAG_SPECIFICATION_LIST, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (MASTER_USER_AUTHENTICATION_TYPE, 0), + ), +) + +DB_INSTANCE_ROLE: StaticSchema = ( + 18, + n0, + _DBIR, + 0, + (_RA, _FN, _St), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +DB_INSTANCE_ROLES: StaticSchema = ( + 16, + n0, + _DBIRn, + 0, + (_m,), + ((DB_INSTANCE_ROLE, {_sN: _DBIR}),), +) + +AUTOMATION_MODE: StaticSchema = ( + 14, + n0, + _AM, + 0, + (_FULL, _AP_), + ((-1, {_sV: _fu}), (-1, {_sV: _ap})), +) + +DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION: StaticSchema = ( + 18, + n0, + _DBIABR, + 0, + (_DBIABA,), + ((STRING, 0),), +) + +DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_LIST: StaticSchema = ( + 16, + n0, + _DBIABRL, + 0, + (_m,), + ((DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION, {_sN: _DBIABR}),), +) + +DB_PARAMETER_GROUP_STATUS: StaticSchema = ( + 18, + n0, + _DBPGS, + 0, + (_DBPGN, _PAS), + ((STRING, 0), (STRING, 0)), +) + +DB_PARAMETER_GROUP_STATUS_LIST: StaticSchema = ( + 16, + n0, + _DBPGSL, + 0, + (_m,), + ((DB_PARAMETER_GROUP_STATUS, {_sN: _DBPG}),), +) + +AVAILABILITY_ZONE: StaticSchema = (18, n0, _AZ, 0, (_N,), ((STRING, 0),)) + +OUTPOST: StaticSchema = (18, n0, _Ou, 0, (_Ar,), ((STRING, 0),)) + +SUBNET: StaticSchema = ( + 18, + n0, + _Su, + 0, + (_SIub, _SAZu, _SO, _SSu), + ((STRING, 0), (AVAILABILITY_ZONE, 0), (OUTPOST, 0), (STRING, 0)), +) + +SUBNET_LIST: StaticSchema = (16, n0, _SLu, 0, (_m,), ((SUBNET, {_sN: _Su}),)) + +DB_SUBNET_GROUP: StaticSchema = ( + 18, + n0, + _DBSGu, + 0, + (_DBSGNu, _DBSGDu, _VI, _SGS, _Sub, _DBSGAu, _SNT), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SUBNET_LIST, 0), + (STRING, 0), + (STRING_LIST, 0), + ), +) + +ENDPOINT: StaticSchema = ( + 18, + n0, + _End, + 0, + (_Ad, _P, _HZI), + ((STRING, 0), (INTEGER, 0), (STRING, 0)), +) + +OPTION_GROUP_MEMBERSHIP: StaticSchema = ( + 18, + n0, + _OGM, + 0, + (_OGN, _St), + ((STRING, 0), (STRING, 0)), +) + +OPTION_GROUP_MEMBERSHIP_LIST: StaticSchema = ( + 16, + n0, + _OGML, + 0, + (_m,), + ((OPTION_GROUP_MEMBERSHIP, {_sN: _OGM}),), +) + +PENDING_MODIFIED_VALUES: StaticSchema = ( + 18, + n0, + _PMV, + 0, + ( + _DBIC, + _AS, + _MUP, + _P, + _BRP, + _MAZ, + _EV, + _LM, + _Io, + _ST, + _DBII, + _STt, + _CACI, + _DBSGNu, + _PCLE, + _PFr, + _AM, + _RFAMT, + _MT, + _IAMDAE, + _DLV, + _En, + _ASVd, + _DBCRI, + ), + ( + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (SENSITIVE_STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (PENDING_CLOUDWATCH_LOGS_EXPORTS, 0), + (PROCESSOR_FEATURE_LIST, 0), + (AUTOMATION_MODE, 0), + (T_STAMP, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + ), +) + +READ_REPLICA_DB_CLUSTER_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _RRDBCIL, + 0, + (_m,), + ((STRING, {_sN: _RRDBCI}),), +) + +READ_REPLICA_DB_INSTANCE_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _RRDBIIL, + 0, + (_m,), + ((STRING, {_sN: _RRDBII}),), +) + +DB_INSTANCE_STATUS_INFO: StaticSchema = ( + 18, + n0, + _DBISI, + 0, + (_STta, _No, _St, _Me), + ((STRING, 0), (BOOLEAN, 0), (STRING, 0), (STRING, 0)), +) + +DB_INSTANCE_STATUS_INFO_LIST: StaticSchema = ( + 16, + n0, + _DBISIL, + 0, + (_m,), + ((DB_INSTANCE_STATUS_INFO, {_sN: _DBISI}),), +) + +DB_INSTANCE: StaticSchema = ( + 18, + n0, + _DBI, + 0, + ( + _DBII, + _DBIC, + _En, + _DBIS, + _MU, + _DBN, + _End, + _AS, + _ICT, + _PBW, + _BRP, + _DBSGe, + _VSG, + _DBPGa, + _AZ, + _DBSGu, + _PMW, + _URO, + _PMV, + _LRT, + _MAZ, + _EV, + _AMVU, + _RRSDBII, + _RRDBIIe, + _RRDBCIe, + _RM, + _LM, + _Io, + _ST, + _OGMp, + _CSN, + _NCSN, + _SAZe, + _PA, + _SIt, + _STt, + _SET, + _TCA, + _DIP, + _DBCI, + _SE, + _KKI, + _DRI, + _CACI, + _DMo, + _CTTS, + _MI, + _EMRA, + _MRA, + _PT, + _DBIA, + _Ti, + _IAMDAE, + _DIM, + _PIE, + _PIKMSKI, + _PIRP, + _ECLEn, + _PFr, + _DP, + _AR, + _LE, + _MAS, + _TL, + _AM, + _RFAMT, + _COIE, + _NT, + _ASS, + _ASKKI, + _ASKSN, + _ASM, + _ASENAFI, + _ABRPA, + _DBIABRn, + _BTa, + _ART, + _CIIP, + _ASPS, + _CDe, + _DBSI, + _MUS, + _RRSDBCI, + _PP, + _MT, + _DLV, + _ISCUA, + _ELS, + _ASVd, + _SVS, + _SOS, + _SOPP, + _DBCRI, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (ENDPOINT, 0), + (INTEGER, 0), + (T_STAMP, 0), + (STRING, 0), + (INTEGER, 0), + (DB_SECURITY_GROUP_MEMBERSHIP_LIST, 0), + (VPC_SECURITY_GROUP_MEMBERSHIP_LIST, 0), + (DB_PARAMETER_GROUP_STATUS_LIST, 0), + (STRING, 0), + (DB_SUBNET_GROUP, 0), + (STRING, 0), + (UPGRADE_ROLLOUT_ORDER, 0), + (PENDING_MODIFIED_VALUES, 0), + (T_STAMP, 0), + (BOOLEAN, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (READ_REPLICA_DB_INSTANCE_IDENTIFIER_LIST, 0), + (READ_REPLICA_DB_CLUSTER_IDENTIFIER_LIST, 0), + (REPLICA_MODE, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (OPTION_GROUP_MEMBERSHIP_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (DB_INSTANCE_STATUS_INFO_LIST, 0), + (STRING, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DOMAIN_MEMBERSHIP_LIST, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN, 0), + (DB_INSTANCE_ROLES, 0), + (ENDPOINT, 0), + (INTEGER_OPTIONAL, 0), + (TAG_LIST, 0), + (AUTOMATION_MODE, 0), + (T_STAMP, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (ACTIVITY_STREAM_STATUS, 0), + (STRING, 0), + (STRING, 0), + (ACTIVITY_STREAM_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_LIST, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (ACTIVITY_STREAM_POLICY_STATUS, 0), + (CERTIFICATE_DETAILS, 0), + (STRING, 0), + (MASTER_USER_SECRET, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_OUTPUT_LIST, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + ), +) + +CREATE_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBIO, + {_sSI: _cCDBIR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +DB_INSTANCE_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBIAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBInstanceAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT: StaticSchema = ( + 18, + n0, + _PINAIAZF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ProvisionedIopsNotAvailableInAZFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +TENANT_DATABASE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _TDQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "TenantDatabaseQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _CDBI, + 0, + CREATE_DB_INSTANCE_INPUT, + CREATE_DB_INSTANCE_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + BACKUP_POLICY_NOT_FOUND_FAULT, + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +CREATE_DB_INSTANCE_READ_REPLICA_INPUT: StaticSchema = ( + 18, + n0, + _CDBIRRI, + {_sSI: _cCDBIRRM, _smi: None}, + ( + _DBII, + _SDBII, + _DBIC, + _AZ, + _P, + _MAZ, + _AMVU, + _Io, + _ST, + _OGN, + _DBPGN, + _PA, + _Ta, + _DBSGNu, + _VSGIp, + _STt, + _CTTS, + _MI, + _MRA, + _KKI, + _PSU, + _EIAMDA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _ECLE, + _PFr, + _UDPF, + _DP, + _Do, + _DIAMRN, + _DF, + _DOo, + _DASA, + _DDI, + _RM, + _ECOI, + _NT, + _MAS, + _BTa, + _CIIP, + _AS, + _SDBCI, + _DLV, + _USC, + _CACI, + _ASVd, + _TSag, + _DBCRI, + ), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (REPLICA_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (TAG_SPECIFICATION_LIST, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + ), +) + +CREATE_DB_INSTANCE_READ_REPLICA_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBIRRO, + {_sSI: _cCDBIRRR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +DB_SUBNET_GROUP_NOT_ALLOWED_FAULT: StaticSchema = ( + 18, + n0, + _DBSGNAF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSubnetGroupNotAllowedFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_INSTANCE_READ_REPLICA: StaticOperationSchema = ( + 23, + n0, + _CDBIRR, + 0, + CREATE_DB_INSTANCE_READ_REPLICA_INPUT, + CREATE_DB_INSTANCE_READ_REPLICA_OUTPUT, + ( + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_ALLOWED_FAULT, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SUBNET_GROUP_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +CREATE_DB_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBPGIr, + {_sSI: _cCDBPGMo, _smi: None}, + (_DBPGN, _DBPGF, _D, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_DB_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBPGOr, + {_sSI: _cCDBPGRo, _smit: None}, + (_DBPG,), + ((DB_PARAMETER_GROUP, 0),), +) + +CREATE_DB_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBPGr, + 0, + CREATE_DB_PARAMETER_GROUP_INPUT, + CREATE_DB_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT, DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT), +) + +AUTH_SCHEME: StaticSchema = (14, n0, _ASu, 0, (_SECRETS,), ((-1, {_sV: _SECRETS}),)) + +CLIENT_PASSWORD_AUTH_TYPE: StaticSchema = ( + 14, + n0, + _CPAT, + 0, + (_MNP, _MCSP, _PSS, _PM, _SSA), + ( + (-1, {_sV: _MNP}), + (-1, {_sV: _MCSP}), + (-1, {_sV: _PSS}), + (-1, {_sV: _PM}), + (-1, {_sV: _SSA}), + ), +) + +IAM_AUTH_MODE: StaticSchema = ( + 14, + n0, + _IAMAM, + 0, + (_DISABLED, _REQUIRED, _ENABLED), + ((-1, {_sV: _DISABLED}), (-1, {_sV: _REQUIRED}), (-1, {_sV: _ENABLED})), +) + +ARN: StaticSchema = (3, n0, _Ar, 0) + +AUTH_USER_NAME: StaticSchema = (3, n0, _AUN, 0) + +USER_AUTH_CONFIG: StaticSchema = ( + 18, + n0, + _UAC, + 0, + (_D, _UN, _ASu, _SAe, _IAMA, _CPAT), + ( + (DESCRIPTION, 0), + (AUTH_USER_NAME, 0), + (AUTH_SCHEME, 0), + (ARN, 0), + (IAM_AUTH_MODE, 0), + (CLIENT_PASSWORD_AUTH_TYPE, 0), + ), +) + +USER_AUTH_CONFIG_LIST: StaticSchema = ( + 16, + n0, + _UACL, + 0, + (_m,), + ((USER_AUTH_CONFIG, 0),), +) + +DB_PROXY_NAME: StaticSchema = (3, n0, _DBPN, 0) + +DEFAULT_AUTH_SCHEME: StaticSchema = ( + 14, + n0, + _DAS, + 0, + (_IA, _NONE), + ((-1, {_sV: _IA}), (-1, {_sV: _NONE})), +) + +ENDPOINT_NETWORK_TYPE: StaticSchema = ( + 14, + n0, + _ENT, + 0, + (_IPV, _IPV_, _DUAL), + ((-1, {_sV: _IPV}), (-1, {_sV: _IPV_}), (-1, {_sV: _DUAL})), +) + +ENGINE_FAMILY: StaticSchema = ( + 14, + n0, + _EF, + 0, + (_MYSQL, _POSTGRESQL, _SQLSERVER), + ((-1, {_sV: _MYSQL}), (-1, {_sV: _POSTGRESQL}), (-1, {_sV: _SQLSERVER})), +) + +TARGET_CONNECTION_NETWORK_TYPE: StaticSchema = ( + 14, + n0, + _TCNT, + 0, + (_IPV, _IPV_), + ((-1, {_sV: _IPV}), (-1, {_sV: _IPV_})), +) + +CREATE_DB_PROXY_INPUT: StaticSchema = ( + 18, + n0, + _CDBPI, + {_sSI: _cCDBPR, _smi: None}, + (_DBPN, _EF, _DAS, _Au, _RA, _VSI, _VSGIp, _RTLS, _ICTd, _DL, _Ta, _ENT, _TCNT), + ( + (DB_PROXY_NAME, 1), + (ENGINE_FAMILY, 1), + (DEFAULT_AUTH_SCHEME, 0), + (USER_AUTH_CONFIG_LIST, 0), + (ARN, 1), + (STRING_LIST, 1), + (STRING_LIST, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (ENDPOINT_NETWORK_TYPE, 0), + (TARGET_CONNECTION_NETWORK_TYPE, 0), + ), +) + +USER_AUTH_CONFIG_INFO: StaticSchema = ( + 18, + n0, + _UACI, + 0, + (_D, _UN, _ASu, _SAe, _IAMA, _CPAT), + ( + (STRING, 0), + (STRING, 0), + (AUTH_SCHEME, 0), + (STRING, 0), + (IAM_AUTH_MODE, 0), + (CLIENT_PASSWORD_AUTH_TYPE, 0), + ), +) + +USER_AUTH_CONFIG_INFO_LIST: StaticSchema = ( + 16, + n0, + _UACIL, + 0, + (_m,), + ((USER_AUTH_CONFIG_INFO, 0),), +) + +DB_PROXY_STATUS: StaticSchema = ( + 14, + n0, + _DBPS, + 0, + ( + _AVAILABLE, + _MODIFYING, + _IN, + _IRL, + _CREATING, + _DELETING, + _SUSPENDED, + _SUSPENDING, + _REACTIVATING, + ), + ( + (-1, {_sV: _av}), + (-1, {_sV: _mod}), + (-1, {_sV: _in}), + (-1, {_sV: _irl}), + (-1, {_sV: _cr}), + (-1, {_sV: _de}), + (-1, {_sV: _su}), + (-1, {_sV: _sus}), + (-1, {_sV: _re}), + ), +) + +DB_PROXY: StaticSchema = ( + 18, + n0, + _DBP, + 0, + ( + _DBPN, + _DBPA, + _St, + _EF, + _VI, + _VSGIp, + _VSI, + _DAS, + _Au, + _RA, + _End, + _RTLS, + _ICTd, + _DL, + _CDr, + _UD, + _ENT, + _TCNT, + ), + ( + (STRING, 0), + (STRING, 0), + (DB_PROXY_STATUS, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + (USER_AUTH_CONFIG_INFO_LIST, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (INTEGER, 0), + (BOOLEAN, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (ENDPOINT_NETWORK_TYPE, 0), + (TARGET_CONNECTION_NETWORK_TYPE, 0), + ), +) + +CREATE_DB_PROXY_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBPO, + {_sSI: _cCDBPRo, _smit: None}, + (_DBP,), + ((DB_PROXY, 0),), +) + +DB_PROXY_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBPAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBProxyAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBPQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBProxyQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_PROXY: StaticOperationSchema = ( + 23, + n0, + _CDBP, + 0, + CREATE_DB_PROXY_INPUT, + CREATE_DB_PROXY_OUTPUT, + (DB_PROXY_ALREADY_EXISTS_FAULT, DB_PROXY_QUOTA_EXCEEDED_FAULT, INVALID_SUBNET), +) + +DB_PROXY_ENDPOINT_NAME: StaticSchema = (3, n0, _DBPEN, 0) + +DB_PROXY_ENDPOINT_TARGET_ROLE: StaticSchema = ( + 14, + n0, + _DBPETR, + 0, + (_RW, _RO), + ((-1, {_sV: _RW}), (-1, {_sV: _RO})), +) + +CREATE_DB_PROXY_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _CDBPEI, + {_sSI: _cCDBPER, _smi: None}, + (_DBPN, _DBPEN, _VSI, _VSGIp, _TR, _Ta, _ENT), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_ENDPOINT_NAME, 1), + (STRING_LIST, 1), + (STRING_LIST, 0), + (DB_PROXY_ENDPOINT_TARGET_ROLE, 0), + (TAG_LIST, 0), + (ENDPOINT_NETWORK_TYPE, 0), + ), +) + +DB_PROXY_ENDPOINT_STATUS: StaticSchema = ( + 14, + n0, + _DBPES, + 0, + (_AVAILABLE, _MODIFYING, _IN, _IRL, _CREATING, _DELETING), + ( + (-1, {_sV: _av}), + (-1, {_sV: _mod}), + (-1, {_sV: _in}), + (-1, {_sV: _irl}), + (-1, {_sV: _cr}), + (-1, {_sV: _de}), + ), +) + +DB_PROXY_ENDPOINT: StaticSchema = ( + 18, + n0, + _DBPE, + 0, + (_DBPEN, _DBPEA, _DBPN, _St, _VI, _VSGIp, _VSI, _End, _CDr, _TR, _ID, _ENT), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DB_PROXY_ENDPOINT_STATUS, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + (T_STAMP, 0), + (DB_PROXY_ENDPOINT_TARGET_ROLE, 0), + (BOOLEAN, 0), + (ENDPOINT_NETWORK_TYPE, 0), + ), +) + +CREATE_DB_PROXY_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBPEO, + {_sSI: _cCDBPERo, _smit: None}, + (_DBPE,), + ((DB_PROXY_ENDPOINT, 0),), +) + +DB_PROXY_ENDPOINT_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBPEAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBProxyEndpointAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_ENDPOINT_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBPEQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBProxyEndpointQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_PROXY_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBPSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBProxyStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_PROXY_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _CDBPE, + 0, + CREATE_DB_PROXY_ENDPOINT_INPUT, + CREATE_DB_PROXY_ENDPOINT_OUTPUT, + ( + DB_PROXY_ENDPOINT_ALREADY_EXISTS_FAULT, + DB_PROXY_ENDPOINT_QUOTA_EXCEEDED_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + INVALID_SUBNET, + ), +) + +CREATE_DB_SECURITY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBSGI, + {_sSI: _cCDBSGM, _smi: None}, + (_DBSGN, _DBSGD, _Ta), + ((STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_DB_SECURITY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBSGO, + {_sSI: _cCDBSGR, _smit: None}, + (_DBSG,), + ((DB_SECURITY_GROUP, 0),), +) + +DB_SECURITY_GROUP_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBSGAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSecurityGroupAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SECURITY_GROUP_NOT_SUPPORTED_FAULT: StaticSchema = ( + 18, + n0, + _DBSGNSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSecurityGroupNotSupported", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SECURITY_GROUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBSGQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "QuotaExceeded.DBSecurityGroup", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_SECURITY_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBSG, + 0, + CREATE_DB_SECURITY_GROUP_INPUT, + CREATE_DB_SECURITY_GROUP_OUTPUT, + ( + DB_SECURITY_GROUP_ALREADY_EXISTS_FAULT, + DB_SECURITY_GROUP_NOT_SUPPORTED_FAULT, + DB_SECURITY_GROUP_QUOTA_EXCEEDED_FAULT, + ), +) + +CREATE_DB_SHARD_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBSGIr, + {_sSI: _cCDBSGMo, _smi: None}, + (_DBSGI, _DBCI, _CR, _MACU, _MACUi, _PA, _Ta), + ( + (STRING, 1), + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 1), + (DOUBLE_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + ), +) + +DB_SHARD_GROUP_IDENTIFIER: StaticSchema = (3, n0, _DBSGI, 0) + +CREATE_DB_SHARD_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBSGOr, + {_sSI: _cDBSG, _smit: None}, + (_DBSGRI, _DBSGI, _DBCI, _MACU, _MACUi, _CR, _St, _PA, _End, _DBSGAh, _TL), + ( + (STRING, 0), + (DB_SHARD_GROUP_IDENTIFIER, 0), + (STRING, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +DB_SHARD_GROUP_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBSGAEFh, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBShardGroupAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MAX_DB_SHARD_GROUP_LIMIT_REACHED: StaticSchema = ( + 18, + n0, + _MDBSGLR, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "MaxDBShardGroupLimitReached", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +UNSUPPORTED_DB_ENGINE_VERSION_FAULT: StaticSchema = ( + 18, + n0, + _UDBEVF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "UnsupportedDBEngineVersion", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_SHARD_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBSGr, + 0, + CREATE_DB_SHARD_GROUP_INPUT, + CREATE_DB_SHARD_GROUP_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_SHARD_GROUP_ALREADY_EXISTS_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_VPC_NETWORK_STATE_FAULT, + MAX_DB_SHARD_GROUP_LIMIT_REACHED, + NETWORK_TYPE_NOT_SUPPORTED, + UNSUPPORTED_DB_ENGINE_VERSION_FAULT, + ), +) + +CREATE_DB_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _CDBSIr, + {_sSI: _cCDBSMo, _smi: None}, + (_DBSIn, _DBII, _Ta), + ((STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_DB_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBSOr, + {_sSI: _cCDBSRo, _smit: None}, + (_DBS,), + ((DB_SNAPSHOT, 0),), +) + +CREATE_DB_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _CDBSr, + 0, + CREATE_DB_SNAPSHOT_INPUT, + CREATE_DB_SNAPSHOT_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +SUBNET_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _SILu, + 0, + (_m,), + ((STRING, {_sN: _SIub}),), +) + +CREATE_DB_SUBNET_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _CDBSGIre, + {_sSI: _cCDBSGMom, _smi: None}, + (_DBSGNu, _DBSGDu, _SIubn, _Ta), + ((STRING, 1), (STRING, 1), (SUBNET_IDENTIFIER_LIST, 1), (TAG_LIST, 0)), +) + +CREATE_DB_SUBNET_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _CDBSGOre, + {_sSI: _cCDBSGRo, _smit: None}, + (_DBSGu,), + ((DB_SUBNET_GROUP, 0),), +) + +DB_SUBNET_GROUP_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _DBSGAEFu, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSubnetGroupAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SUBNET_GROUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBSGQEFu, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSubnetGroupQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_SUBNET_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBSQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBSubnetQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_DB_SUBNET_GROUP: StaticOperationSchema = ( + 23, + n0, + _CDBSGre, + 0, + CREATE_DB_SUBNET_GROUP_INPUT, + CREATE_DB_SUBNET_GROUP_OUTPUT, + ( + DB_SUBNET_GROUP_ALREADY_EXISTS_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_QUOTA_EXCEEDED_FAULT, + DB_SUBNET_QUOTA_EXCEEDED_FAULT, + INVALID_SUBNET, + ), +) + +CREATE_EVENT_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _CESI, + {_sSI: _cCESM, _smi: None}, + (_SN, _STA, _STo, _ECv, _SIou, _E, _Ta), + ( + (STRING, 1), + (STRING, 1), + (STRING, 0), + (EVENT_CATEGORIES_LIST, 0), + (SOURCE_IDS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + ), +) + +CREATE_EVENT_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _CESO, + {_sSI: _cCESR, _smit: None}, + (_ES,), + ((EVENT_SUBSCRIPTION, 0),), +) + +EVENT_SUBSCRIPTION_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _ESQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "EventSubscriptionQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SNS_INVALID_TOPIC_FAULT: StaticSchema = ( + 18, + n0, + _SNSITF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "SNSInvalidTopic", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SNS_NO_AUTHORIZATION_FAULT: StaticSchema = ( + 18, + n0, + _SNSNAF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "SNSNoAuthorization", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SNS_TOPIC_ARN_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _SNSTANFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "SNSTopicArnNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SUBSCRIPTION_ALREADY_EXIST_FAULT: StaticSchema = ( + 18, + n0, + _SAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "SubscriptionAlreadyExist", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +SUBSCRIPTION_CATEGORY_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _SCNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "SubscriptionCategoryNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_EVENT_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _CES, + 0, + CREATE_EVENT_SUBSCRIPTION_INPUT, + CREATE_EVENT_SUBSCRIPTION_OUTPUT, + ( + EVENT_SUBSCRIPTION_QUOTA_EXCEEDED_FAULT, + SNS_INVALID_TOPIC_FAULT, + SNS_NO_AUTHORIZATION_FAULT, + SNS_TOPIC_ARN_NOT_FOUND_FAULT, + SOURCE_NOT_FOUND_FAULT, + SUBSCRIPTION_ALREADY_EXIST_FAULT, + SUBSCRIPTION_CATEGORY_NOT_FOUND_FAULT, + ), +) + +CREATE_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _CGCI, + {_sSI: _cCGCM, _smi: None}, + (_GCI, _SDBCI, _En, _EV, _ELS, _DP, _DN, _SE, _Ta), + ( + (GLOBAL_CLUSTER_IDENTIFIER, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + ), +) + +FAILOVER_STATUS: StaticSchema = ( + 14, + n0, + _FS, + 0, + (_PENDING, _FO, _CANCELLING), + ((-1, {_sV: _p}), (-1, {_sV: _fo}), (-1, {_sV: _can})), +) + +FAILOVER_STATE: StaticSchema = ( + 18, + n0, + _FSa, + 0, + (_St, _FDCA, _TDCA, _IDLA), + ((FAILOVER_STATUS, 0), (STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +READERS_ARN_LIST: StaticSchema = (16, n0, _RAL, 0, (_m,), ((STRING, 0),)) + +GLOBAL_CLUSTER_MEMBER_SYNCHRONIZATION_STATUS: StaticSchema = ( + 14, + n0, + _GCMSS, + 0, + (_CONNECTED, _PR), + ((-1, {_sV: _co}), (-1, {_sV: _pr})), +) + +GLOBAL_CLUSTER_MEMBER: StaticSchema = ( + 18, + n0, + _GCM, + 0, + (_DBCA, _R, _IW, _GWFS, _SSy), + ( + (STRING, 0), + (READERS_ARN_LIST, 0), + (BOOLEAN, 0), + (WRITE_FORWARDING_STATUS, 0), + (GLOBAL_CLUSTER_MEMBER_SYNCHRONIZATION_STATUS, 0), + ), +) + +GLOBAL_CLUSTER_MEMBER_LIST: StaticSchema = ( + 16, + n0, + _GCML, + 0, + (_m,), + ((GLOBAL_CLUSTER_MEMBER, {_sN: _GCM}),), +) + +GLOBAL_CLUSTER: StaticSchema = ( + 18, + n0, + _GC, + 0, + ( + _GCI, + _GCRI, + _GCA, + _St, + _En, + _EV, + _ELS, + _DN, + _SE, + _SET, + _DP, + _GCMl, + _End, + _FSa, + _TL, + ), + ( + (GLOBAL_CLUSTER_IDENTIFIER, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (BOOLEAN_OPTIONAL, 0), + (GLOBAL_CLUSTER_MEMBER_LIST, 0), + (STRING, 0), + (FAILOVER_STATE, 0), + (TAG_LIST, 0), + ), +) + +CREATE_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _CGCO, + {_sSI: _cCGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +GLOBAL_CLUSTER_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _GCAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "GlobalClusterAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +GLOBAL_CLUSTER_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _GCQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "GlobalClusterQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_DB_SHARD_GROUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBSGSFnv, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBShardGroupState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _CGC, + 0, + CREATE_GLOBAL_CLUSTER_INPUT, + CREATE_GLOBAL_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + GLOBAL_CLUSTER_ALREADY_EXISTS_FAULT, + GLOBAL_CLUSTER_QUOTA_EXCEEDED_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_SHARD_GROUP_STATE_FAULT, + RESOURCE_NOT_FOUND_FAULT, + ), +) + +ENCRYPTION_CONTEXT_MAP: StaticSchema = ( + 17, + n0, + _ECM, + 0, + (_k, _v), + ((STRING, 0), (STRING, 0)), +) + +DATA_FILTER: StaticSchema = (3, n0, _DFa, 0) + +INTEGRATION_DESCRIPTION: StaticSchema = (3, n0, _IDn, 0) + +INTEGRATION_NAME: StaticSchema = (3, n0, _INn, 0) + +SOURCE_ARN: StaticSchema = (3, n0, _SA, 0) + +CREATE_INTEGRATION_INPUT: StaticSchema = ( + 18, + n0, + _CII, + {_sSI: _cCIM, _smi: None}, + (_SA, _TAa, _INn, _KMSKI, _AEC, _Ta, _DFa, _D), + ( + (SOURCE_ARN, 1), + (ARN, 1), + (INTEGRATION_NAME, 1), + (STRING, 0), + (ENCRYPTION_CONTEXT_MAP, 0), + (TAG_LIST, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + ), +) + +INTEGRATION_ERROR: StaticSchema = ( + 18, + n0, + _IE, + 0, + (_ECr, _EMr), + ((STRING, 1), (STRING, 0)), +) + +INTEGRATION_ERROR_LIST: StaticSchema = ( + 16, + n0, + _IEL, + 0, + (_m,), + ((INTEGRATION_ERROR, {_sN: _IE}),), +) + +INTEGRATION_ARN: StaticSchema = (3, n0, _IAn, 0) + +INTEGRATION_STATUS: StaticSchema = ( + 14, + n0, + _ISn, + 0, + (_CREATING, _ACTIVE, _MODIFYING, _FAILED, _DELETING, _SYNCING, _NA), + ( + (-1, {_sV: _cr}), + (-1, {_sV: _ac}), + (-1, {_sV: _mod}), + (-1, {_sV: _f}), + (-1, {_sV: _de}), + (-1, {_sV: _sy}), + (-1, {_sV: _na}), + ), +) + +CREATE_INTEGRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CIO, + {_sSI: _cI, _smit: None}, + (_SA, _TAa, _INn, _IAn, _KMSKI, _AEC, _St, _Ta, _DFa, _D, _CTr, _Er), + ( + (SOURCE_ARN, 0), + (ARN, 0), + (INTEGRATION_NAME, 0), + (INTEGRATION_ARN, 0), + (STRING, 0), + (ENCRYPTION_CONTEXT_MAP, 0), + (INTEGRATION_STATUS, 0), + (TAG_LIST, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + (T_STAMP, 0), + (INTEGRATION_ERROR_LIST, 0), + ), +) + +INTEGRATION_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _IAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IntegrationAlreadyExistsFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INTEGRATION_CONFLICT_OPERATION_FAULT: StaticSchema = ( + 18, + n0, + _ICOF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IntegrationConflictOperationFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INTEGRATION_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _IQEFn, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IntegrationQuotaExceededFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_INTEGRATION: StaticOperationSchema = ( + 23, + n0, + _CIr, + 0, + CREATE_INTEGRATION_INPUT, + CREATE_INTEGRATION_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INTEGRATION_ALREADY_EXISTS_FAULT, + INTEGRATION_CONFLICT_OPERATION_FAULT, + INTEGRATION_QUOTA_EXCEEDED_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + ), +) + +CREATE_OPTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _COGIr, + {_sSI: _cCOGMo, _smi: None}, + (_OGN, _EN, _MEV, _OGD, _Ta), + ((STRING, 1), (STRING, 1), (STRING, 1), (STRING, 1), (TAG_LIST, 0)), +) + +CREATE_OPTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _COGOr, + {_sSI: _cCOGRo, _smit: None}, + (_OG,), + ((OPTION_GROUP, 0),), +) + +CREATE_OPTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _COGr, + 0, + CREATE_OPTION_GROUP_INPUT, + CREATE_OPTION_GROUP_OUTPUT, + (OPTION_GROUP_ALREADY_EXISTS_FAULT, OPTION_GROUP_QUOTA_EXCEEDED_FAULT), +) + +CREATE_TENANT_DATABASE_INPUT: StaticSchema = ( + 18, + n0, + _CTDI, + {_sSI: _cCTDM, _smi: None}, + (_DBII, _TDBN, _MU, _MUP, _CSN, _NCSN, _MMUP, _MUSKKI, _Ta), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +TENANT_DATABASE_PENDING_MODIFIED_VALUES: StaticSchema = ( + 18, + n0, + _TDPMV, + 0, + (_MUP, _TDBN), + ((SENSITIVE_STRING, 0), (STRING, 0)), +) + +TENANT_DATABASE: StaticSchema = ( + 18, + n0, + _TD, + 0, + ( + _TDCT, + _DBII, + _TDBN, + _St, + _MU, + _DRI, + _TDRI, + _TDARN, + _CSN, + _NCSN, + _DP, + _PMV, + _MUS, + _TL, + ), + ( + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (TENANT_DATABASE_PENDING_MODIFIED_VALUES, 0), + (MASTER_USER_SECRET, 0), + (TAG_LIST, 0), + ), +) + +CREATE_TENANT_DATABASE_OUTPUT: StaticSchema = ( + 18, + n0, + _CTDO, + {_sSI: _cCTDR, _smit: None}, + (_TD,), + ((TENANT_DATABASE, 0),), +) + +TENANT_DATABASE_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _TDAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "TenantDatabaseAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +CREATE_TENANT_DATABASE: StaticOperationSchema = ( + 23, + n0, + _CTD, + 0, + CREATE_TENANT_DATABASE_INPUT, + CREATE_TENANT_DATABASE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + TENANT_DATABASE_ALREADY_EXISTS_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + ), +) + +DELETE_BLUE_GREEN_DEPLOYMENT_INPUT: StaticSchema = ( + 18, + n0, + _DBGDI, + {_sSI: _cDBGDR, _smi: None}, + (_BGDI, _DTel), + ((BLUE_GREEN_DEPLOYMENT_IDENTIFIER, 1), (BOOLEAN_OPTIONAL, 0)), +) + +DELETE_BLUE_GREEN_DEPLOYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _DBGDO, + {_sSI: _cDBGDRo, _smit: None}, + (_BGD,), + ((BLUE_GREEN_DEPLOYMENT, 0),), +) + +INVALID_BLUE_GREEN_DEPLOYMENT_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IBGDSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidBlueGreenDeploymentStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_BLUE_GREEN_DEPLOYMENT: StaticOperationSchema = ( + 23, + n0, + _DBGD, + 0, + DELETE_BLUE_GREEN_DEPLOYMENT_INPUT, + DELETE_BLUE_GREEN_DEPLOYMENT_OUTPUT, + (BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT, INVALID_BLUE_GREEN_DEPLOYMENT_STATE_FAULT), +) + +DELETE_CUSTOM_DB_ENGINE_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _DCDBEVI, + {_sSI: _cDCDBEVM, _smi: None}, + (_En, _EV), + ((CUSTOM_ENGINE_NAME, 1), (CUSTOM_ENGINE_VERSION, 1)), +) + +DELETE_CUSTOM_DB_ENGINE_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _DCDBEVO, + {_sSI: _cDBEV, _smit: None}, + ( + _En, + _MEV, + _EV, + _DIFSBN, + _DIFSP, + _DIF, + _CDBEVM, + _DBPGF, + _DBED, + _DBEVA, + _DBEVD, + _DCS, + _FR, + _Im, + _DBEMT, + _KMSKI, + _CTr, + _SCS, + _SNCS, + _VUT, + _STu, + _ELT, + _SLETCL, + _SRR, + _SEM, + _SFN, + _St, + _SPQ, + _SGD, + _TL, + _SBu, + _SLD, + _SCRWR, + _SCACI, + _SLWF, + _SIu, + _SVFS, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (CUSTOM_DB_ENGINE_VERSION_MANIFEST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CHARACTER_SET, 0), + (STRING, 0), + (CUSTOM_DB_ENGINE_VERSION_AMI, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (VALID_UPGRADE_TARGET_LIST, 0), + (SUPPORTED_TIMEZONES_LIST, 0), + (LOG_TYPE_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (ENGINE_MODE_LIST, 0), + (FEATURE_NAME_LIST, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (CA_CERTIFICATE_IDENTIFIERS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (SERVERLESS_V2_FEATURES_SUPPORT, 0), + ), +) + +DELETE_CUSTOM_DB_ENGINE_VERSION: StaticOperationSchema = ( + 23, + n0, + _DCDBEV, + 0, + DELETE_CUSTOM_DB_ENGINE_VERSION_INPUT, + DELETE_CUSTOM_DB_ENGINE_VERSION_OUTPUT, + ( + CUSTOM_DB_ENGINE_VERSION_NOT_FOUND_FAULT, + INVALID_CUSTOM_DB_ENGINE_VERSION_STATE_FAULT, + ), +) + +DB_CLUSTER_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBCABQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "DBClusterAutomatedBackupQuotaExceededFault", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _DDBCI, + {_sSI: _cDDBCM, _smi: None}, + (_DBCI, _SFS, _FDBSI, _DAB), + ((STRING, 1), (BOOLEAN, 0), (STRING, 0), (BOOLEAN_OPTIONAL, 0)), +) + +DELETE_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCO, + {_sSI: _cDDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +DELETE_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _DDBC, + 0, + DELETE_DB_CLUSTER_INPUT, + DELETE_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +DB_CLUSTER_AUTOMATED_BACKUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCABNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterAutomatedBackupNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_CLUSTER_AUTOMATED_BACKUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBCABI, + {_sSI: _cDDBCABM, _smi: None}, + (_DCRI,), + ((STRING, 1),), +) + +RESTORE_WINDOW: StaticSchema = ( + 18, + n0, + _RWe, + 0, + (_ETa, _LT), + ((T_STAMP, 0), (T_STAMP, 0)), +) + +DB_CLUSTER_AUTOMATED_BACKUP: StaticSchema = ( + 18, + n0, + _DBCAB, + 0, + ( + _En, + _VI, + _DBCABA, + _DBCI, + _RWe, + _MU, + _DCRI, + _Re, + _LM, + _St, + _IAMDAE, + _CCT, + _SE, + _SET, + _AS, + _EV, + _DBCA, + _BRP, + _PBW, + _EMn, + _AZv, + _P, + _KKI, + _STt, + _Io, + _ST, + _ABRPA, + _TL, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (RESTORE_WINDOW, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (T_STAMP, 0), + (BOOLEAN, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (AVAILABILITY_ZONES, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +DELETE_DB_CLUSTER_AUTOMATED_BACKUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCABO, + {_sSI: _cDDBCABR, _smit: None}, + (_DBCAB,), + ((DB_CLUSTER_AUTOMATED_BACKUP, 0),), +) + +INVALID_DB_CLUSTER_AUTOMATED_BACKUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBCABSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + { + "code": "InvalidDBClusterAutomatedBackupStateFault", + "httpResponseCode": 400, + } + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_CLUSTER_AUTOMATED_BACKUP: StaticOperationSchema = ( + 23, + n0, + _DDBCAB, + 0, + DELETE_DB_CLUSTER_AUTOMATED_BACKUP_INPUT, + DELETE_DB_CLUSTER_AUTOMATED_BACKUP_OUTPUT, + ( + DB_CLUSTER_AUTOMATED_BACKUP_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_AUTOMATED_BACKUP_STATE_FAULT, + ), +) + +DB_CLUSTER_ENDPOINT_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCENFF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBClusterEndpointNotFoundFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_CLUSTER_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DDBCEI, + {_sSI: _cDDBCEM, _smi: None}, + (_DBCEI,), + ((STRING, 1),), +) + +DELETE_DB_CLUSTER_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCEO, + {_sSI: _cDBCE, _smit: None}, + (_DBCEI, _DBCI, _DBCERI, _End, _St, _ET, _CETu, _SMt, _EMx, _DBCEA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + ), +) + +DELETE_DB_CLUSTER_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DDBCE, + 0, + DELETE_DB_CLUSTER_ENDPOINT_INPUT, + DELETE_DB_CLUSTER_ENDPOINT_OUTPUT, + ( + DB_CLUSTER_ENDPOINT_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + ), +) + +DELETE_DB_CLUSTER_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBCPGI, + {_sSI: _cDDBCPGM, _smi: None}, + (_DBCPGN,), + ((STRING, 1),), +) + +DELETE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCPGO, + {_sSI: _sU, _smit: None}, +) + +INVALID_DB_PARAMETER_GROUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBPGSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBParameterGroupState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_CLUSTER_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _DDBCPG, + 0, + DELETE_DB_CLUSTER_PARAMETER_GROUP_INPUT, + DELETE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +DELETE_DB_CLUSTER_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _DDBCSI, + {_sSI: _cDDBCSM, _smi: None}, + (_DBCSI,), + ((STRING, 1),), +) + +DELETE_DB_CLUSTER_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCSO, + {_sSI: _cDDBCSR, _smit: None}, + (_DBCS,), + ((DB_CLUSTER_SNAPSHOT, 0),), +) + +DELETE_DB_CLUSTER_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _DDBCS, + 0, + DELETE_DB_CLUSTER_SNAPSHOT_INPUT, + DELETE_DB_CLUSTER_SNAPSHOT_OUTPUT, + (DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT), +) + +DB_INSTANCE_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _DBIABQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBInstanceAutomatedBackupQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _DDBII, + {_sSI: _cDDBIM, _smi: None}, + (_DBII, _SFS, _FDBSI, _DAB), + ((STRING, 1), (BOOLEAN, 0), (STRING, 0), (BOOLEAN_OPTIONAL, 0)), +) + +DELETE_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBIO, + {_sSI: _cDDBIR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +DELETE_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _DDBI, + 0, + DELETE_DB_INSTANCE_INPUT, + DELETE_DB_INSTANCE_OUTPUT, + ( + DB_INSTANCE_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +DB_INSTANCE_AUTOMATED_BACKUP_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBIABNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBInstanceAutomatedBackupNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_INSTANCE_AUTOMATED_BACKUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBIABI, + {_sSI: _cDDBIABM, _smi: None}, + (_DRI, _DBIABA), + ((STRING, 0), (STRING, 0)), +) + +DB_INSTANCE_AUTOMATED_BACKUP: StaticSchema = ( + 18, + n0, + _DBIAB, + 0, + ( + _DBIA, + _DRI, + _Re, + _DBII, + _RWe, + _AS, + _St, + _P, + _AZ, + _VI, + _ICT, + _MU, + _En, + _EV, + _LM, + _Io, + _ST, + _OGN, + _TCA, + _Enc, + _SET, + _STt, + _KKI, + _Ti, + _IAMDAE, + _BRP, + _PBW, + _DBIABA, + _DBIABRn, + _BTa, + _MT, + _ABRPA, + _TL, + _DLV, + _ASVd, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (RESTORE_WINDOW, 0), + (INTEGER, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (STORAGE_ENCRYPTION_TYPE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (TAG_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + ), +) + +DELETE_DB_INSTANCE_AUTOMATED_BACKUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBIABO, + {_sSI: _cDDBIABR, _smit: None}, + (_DBIAB,), + ((DB_INSTANCE_AUTOMATED_BACKUP, 0),), +) + +INVALID_DB_INSTANCE_AUTOMATED_BACKUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBIABSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBInstanceAutomatedBackupState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_INSTANCE_AUTOMATED_BACKUP: StaticOperationSchema = ( + 23, + n0, + _DDBIAB, + 0, + DELETE_DB_INSTANCE_AUTOMATED_BACKUP_INPUT, + DELETE_DB_INSTANCE_AUTOMATED_BACKUP_OUTPUT, + ( + DB_INSTANCE_AUTOMATED_BACKUP_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_AUTOMATED_BACKUP_STATE_FAULT, + ), +) + +DELETE_DB_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBPGI, + {_sSI: _cDDBPGM, _smi: None}, + (_DBPGN,), + ((STRING, 1),), +) + +DELETE_DB_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPGO, + {_sSI: _sU, _smit: None}, +) + +DELETE_DB_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _DDBPG, + 0, + DELETE_DB_PARAMETER_GROUP_INPUT, + DELETE_DB_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +DELETE_DB_PROXY_INPUT: StaticSchema = ( + 18, + n0, + _DDBPI, + {_sSI: _cDDBPR, _smi: None}, + (_DBPN,), + ((DB_PROXY_NAME, 1),), +) + +DELETE_DB_PROXY_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPO, + {_sSI: _cDDBPRo, _smit: None}, + (_DBP,), + ((DB_PROXY, 0),), +) + +DELETE_DB_PROXY: StaticOperationSchema = ( + 23, + n0, + _DDBP, + 0, + DELETE_DB_PROXY_INPUT, + DELETE_DB_PROXY_OUTPUT, + (DB_PROXY_NOT_FOUND_FAULT, INVALID_DB_PROXY_STATE_FAULT), +) + +DELETE_DB_PROXY_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DDBPEI, + {_sSI: _cDDBPER, _smi: None}, + (_DBPEN,), + ((DB_PROXY_ENDPOINT_NAME, 1),), +) + +DELETE_DB_PROXY_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPEO, + {_sSI: _cDDBPERo, _smit: None}, + (_DBPE,), + ((DB_PROXY_ENDPOINT, 0),), +) + +INVALID_DB_PROXY_ENDPOINT_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBPESF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBProxyEndpointStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_PROXY_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DDBPE, + 0, + DELETE_DB_PROXY_ENDPOINT_INPUT, + DELETE_DB_PROXY_ENDPOINT_OUTPUT, + (DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, INVALID_DB_PROXY_ENDPOINT_STATE_FAULT), +) + +DELETE_DB_SECURITY_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGI, + {_sSI: _cDDBSGM, _smi: None}, + (_DBSGN,), + ((STRING, 1),), +) + +DELETE_DB_SECURITY_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGO, + {_sSI: _sU, _smit: None}, +) + +DELETE_DB_SECURITY_GROUP: StaticOperationSchema = ( + 23, + n0, + _DDBSG, + 0, + DELETE_DB_SECURITY_GROUP_INPUT, + DELETE_DB_SECURITY_GROUP_OUTPUT, + (DB_SECURITY_GROUP_NOT_FOUND_FAULT, INVALID_DB_SECURITY_GROUP_STATE_FAULT), +) + +DELETE_DB_SHARD_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGIe, + {_sSI: _cDDBSGMo, _smi: None}, + (_DBSGI,), + ((DB_SHARD_GROUP_IDENTIFIER, 1),), +) + +DELETE_DB_SHARD_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGOe, + {_sSI: _cDBSG, _smit: None}, + (_DBSGRI, _DBSGI, _DBCI, _MACU, _MACUi, _CR, _St, _PA, _End, _DBSGAh, _TL), + ( + (STRING, 0), + (DB_SHARD_GROUP_IDENTIFIER, 0), + (STRING, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +DELETE_DB_SHARD_GROUP: StaticOperationSchema = ( + 23, + n0, + _DDBSGe, + 0, + DELETE_DB_SHARD_GROUP_INPUT, + DELETE_DB_SHARD_GROUP_OUTPUT, + ( + DB_SHARD_GROUP_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_SHARD_GROUP_STATE_FAULT, + ), +) + +DELETE_DB_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _DDBSI, + {_sSI: _cDDBSM, _smi: None}, + (_DBSIn,), + ((STRING, 1),), +) + +DELETE_DB_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSO, + {_sSI: _cDDBSR, _smit: None}, + (_DBS,), + ((DB_SNAPSHOT, 0),), +) + +DELETE_DB_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _DDBS, + 0, + DELETE_DB_SNAPSHOT_INPUT, + DELETE_DB_SNAPSHOT_OUTPUT, + (DB_SNAPSHOT_NOT_FOUND_FAULT, INVALID_DB_SNAPSHOT_STATE_FAULT), +) + +DELETE_DB_SUBNET_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGIel, + {_sSI: _cDDBSGMom, _smi: None}, + (_DBSGNu,), + ((STRING, 1),), +) + +DELETE_DB_SUBNET_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGOel, + {_sSI: _sU, _smit: None}, +) + +INVALID_DB_SUBNET_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IDBSSFn, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBSubnetStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_DB_SUBNET_GROUP: StaticOperationSchema = ( + 23, + n0, + _DDBSGel, + 0, + DELETE_DB_SUBNET_GROUP_INPUT, + DELETE_DB_SUBNET_GROUP_OUTPUT, + ( + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + INVALID_DB_SUBNET_GROUP_STATE_FAULT, + INVALID_DB_SUBNET_STATE_FAULT, + ), +) + +DELETE_EVENT_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _DESI, + {_sSI: _cDESM, _smi: None}, + (_SN,), + ((STRING, 1),), +) + +DELETE_EVENT_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DESO, + {_sSI: _cDESR, _smit: None}, + (_ES,), + ((EVENT_SUBSCRIPTION, 0),), +) + +INVALID_EVENT_SUBSCRIPTION_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IESSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidEventSubscriptionState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_EVENT_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _DES, + 0, + DELETE_EVENT_SUBSCRIPTION_INPUT, + DELETE_EVENT_SUBSCRIPTION_OUTPUT, + (INVALID_EVENT_SUBSCRIPTION_STATE_FAULT, SUBSCRIPTION_NOT_FOUND_FAULT), +) + +DELETE_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _DGCI, + {_sSI: _cDGCM, _smi: None}, + (_GCI,), + ((GLOBAL_CLUSTER_IDENTIFIER, 1),), +) + +DELETE_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _DGCO, + {_sSI: _cDGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +DELETE_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _DGC, + 0, + DELETE_GLOBAL_CLUSTER_INPUT, + DELETE_GLOBAL_CLUSTER_OUTPUT, + (GLOBAL_CLUSTER_NOT_FOUND_FAULT, INVALID_GLOBAL_CLUSTER_STATE_FAULT), +) + +INTEGRATION_IDENTIFIER: StaticSchema = (3, n0, _IIn, 0) + +DELETE_INTEGRATION_INPUT: StaticSchema = ( + 18, + n0, + _DII, + {_sSI: _cDIM, _smi: None}, + (_IIn,), + ((INTEGRATION_IDENTIFIER, 1),), +) + +DELETE_INTEGRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DIO, + {_sSI: _cI, _smit: None}, + (_SA, _TAa, _INn, _IAn, _KMSKI, _AEC, _St, _Ta, _DFa, _D, _CTr, _Er), + ( + (SOURCE_ARN, 0), + (ARN, 0), + (INTEGRATION_NAME, 0), + (INTEGRATION_ARN, 0), + (STRING, 0), + (ENCRYPTION_CONTEXT_MAP, 0), + (INTEGRATION_STATUS, 0), + (TAG_LIST, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + (T_STAMP, 0), + (INTEGRATION_ERROR_LIST, 0), + ), +) + +INVALID_INTEGRATION_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IISF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidIntegrationStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_INTEGRATION: StaticOperationSchema = ( + 23, + n0, + _DIe, + 0, + DELETE_INTEGRATION_INPUT, + DELETE_INTEGRATION_OUTPUT, + ( + INTEGRATION_CONFLICT_OPERATION_FAULT, + INTEGRATION_NOT_FOUND_FAULT, + INVALID_INTEGRATION_STATE_FAULT, + ), +) + +DELETE_OPTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _DOGI, + {_sSI: _cDOGM, _smi: None}, + (_OGN,), + ((STRING, 1),), +) + +DELETE_OPTION_GROUP_OUTPUT: StaticSchema = (18, n0, _DOGO, {_sSI: _sU, _smit: None}) + +INVALID_OPTION_GROUP_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IOGSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidOptionGroupStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DELETE_OPTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _DOG, + 0, + DELETE_OPTION_GROUP_INPUT, + DELETE_OPTION_GROUP_OUTPUT, + (INVALID_OPTION_GROUP_STATE_FAULT, OPTION_GROUP_NOT_FOUND_FAULT), +) + +DELETE_TENANT_DATABASE_INPUT: StaticSchema = ( + 18, + n0, + _DTDI, + {_sSI: _cDTDM, _smi: None}, + (_DBII, _TDBN, _SFS, _FDBSI), + ((STRING, 1), (STRING, 1), (BOOLEAN, 0), (STRING, 0)), +) + +DELETE_TENANT_DATABASE_OUTPUT: StaticSchema = ( + 18, + n0, + _DTDO, + {_sSI: _cDTDR, _smit: None}, + (_TD,), + ((TENANT_DATABASE, 0),), +) + +DELETE_TENANT_DATABASE: StaticOperationSchema = ( + 23, + n0, + _DTD, + 0, + DELETE_TENANT_DATABASE_INPUT, + DELETE_TENANT_DATABASE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + TENANT_DATABASE_NOT_FOUND_FAULT, + ), +) + +DB_PROXY_TARGET_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBPTNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBProxyTargetNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DB_PROXY_TARGET_GROUP_NAME: StaticSchema = (3, n0, _DBPTGN, 0) + +DEREGISTER_DB_PROXY_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPTI, + {_sSI: _cDDBPTR, _smi: None}, + (_DBPN, _TGN, _DBIIn, _DBCIl), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_TARGET_GROUP_NAME, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + ), +) + +DEREGISTER_DB_PROXY_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPTO, + {_sSI: _cDDBPTRo, _smit: None}, +) + +DEREGISTER_DB_PROXY_TARGETS: StaticOperationSchema = ( + 23, + n0, + _DDBPT, + 0, + DEREGISTER_DB_PROXY_TARGETS_INPUT, + DEREGISTER_DB_PROXY_TARGETS_OUTPUT, + ( + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + DB_PROXY_TARGET_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DAAI, + {_sSI: _cDAAM, _smi: None}, +) + +DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DAAO, + {_sSI: _cAAM, _smit: None}, + (_AQc,), + ((ACCOUNT_QUOTA_LIST, 0),), +) + +DESCRIBE_ACCOUNT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DAA, + 0, + DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT, + DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT, + (), +) + +FILTER_VALUE_LIST: StaticSchema = (16, n0, _FVL, 0, (_m,), ((STRING, {_sN: _V}),)) + +FILTER: StaticSchema = ( + 18, + n0, + _Fi, + 0, + (_N, _Va), + ((STRING, 1), (FILTER_VALUE_LIST, 1)), +) + +FILTER_LIST: StaticSchema = (16, n0, _FL, 0, (_m,), ((FILTER, {_sN: _Fi}),)) + +MAX_RECORDS: StaticSchema = (7, n0, _MR, 0) + +DESCRIBE_BLUE_GREEN_DEPLOYMENTS_INPUT: StaticSchema = ( + 18, + n0, + _DBGDIe, + {_sSI: _cDBGDRom, _smi: None}, + (_BGDI, _Fil, _Mar, _MR), + ( + (BLUE_GREEN_DEPLOYMENT_IDENTIFIER, 0), + (FILTER_LIST, 0), + (STRING, 0), + (MAX_RECORDS, 0), + ), +) + +BLUE_GREEN_DEPLOYMENT_LIST: StaticSchema = ( + 16, + n0, + _BGDL, + 0, + (_m,), + ((BLUE_GREEN_DEPLOYMENT, 0),), +) + +DESCRIBE_BLUE_GREEN_DEPLOYMENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DBGDOe, + {_sSI: _cDBGDRoma, _smit: None}, + (_BGDl, _Mar), + ((BLUE_GREEN_DEPLOYMENT_LIST, 0), (STRING, 0)), +) + +DESCRIBE_BLUE_GREEN_DEPLOYMENTS: StaticOperationSchema = ( + 23, + n0, + _DBGDe, + 0, + DESCRIBE_BLUE_GREEN_DEPLOYMENTS_INPUT, + DESCRIBE_BLUE_GREEN_DEPLOYMENTS_OUTPUT, + (BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT,), +) + +DESCRIBE_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _DCI, + {_sSI: _cDCM, _smi: None}, + (_CIe, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +CERTIFICATE: StaticSchema = ( + 18, + n0, + _Ce, + 0, + (_CIe, _CTe, _Th, _VF, _VT, _CA, _CO, _COVT), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (T_STAMP, 0), + ), +) + +CERTIFICATE_LIST: StaticSchema = (16, n0, _CL, 0, (_m,), ((CERTIFICATE, {_sN: _Ce}),)) + +DESCRIBE_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _DCO, + {_sSI: _cCM, _smit: None}, + (_DCFNL, _Cer, _Mar), + ((STRING, 0), (CERTIFICATE_LIST, 0), (STRING, 0)), +) + +DESCRIBE_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _DC, + 0, + DESCRIBE_CERTIFICATES_INPUT, + DESCRIBE_CERTIFICATES_OUTPUT, + (CERTIFICATE_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CAPACITY_RESERVATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCRI, + {_sSI: _cDDBCRR, _smi: None}, + (_DBCRI, _Mar, _MR, _Fil), + ( + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (STRING, 0), + (MAX_RECORDS, 0), + (FILTER_LIST, 0), + ), +) + +DB_CAPACITY_RESERVATION_LIST: StaticSchema = ( + 16, + n0, + _DBCRL, + 0, + (_m,), + ((DB_CAPACITY_RESERVATION, 0),), +) + +DESCRIBE_DB_CAPACITY_RESERVATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCRO, + {_sSI: _cDDBCRRo, _smit: None}, + (_DBCRa, _Mar), + ((DB_CAPACITY_RESERVATION_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_CAPACITY_RESERVATIONS: StaticOperationSchema = ( + 23, + n0, + _DDBCR, + 0, + DESCRIBE_DB_CAPACITY_RESERVATIONS_INPUT, + DESCRIBE_DB_CAPACITY_RESERVATIONS_OUTPUT, + (DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCABIe, + {_sSI: _cDDBCABMo, _smi: None}, + (_DCRI, _DBCI, _Fil, _MR, _Mar), + ((STRING, 0), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_CLUSTER_AUTOMATED_BACKUP_LIST: StaticSchema = ( + 16, + n0, + _DBCABL, + 0, + (_m,), + ((DB_CLUSTER_AUTOMATED_BACKUP, {_sN: _DBCAB}),), +) + +DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCABOe, + {_sSI: _cDBCABM, _smit: None}, + (_Mar, _DBCABl), + ((STRING, 0), (DB_CLUSTER_AUTOMATED_BACKUP_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS: StaticOperationSchema = ( + 23, + n0, + _DDBCABe, + 0, + DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_INPUT, + DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_OUTPUT, + (DB_CLUSTER_AUTOMATED_BACKUP_NOT_FOUND_FAULT,), +) + +DB_CLUSTER_BACKTRACK_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCBNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterBacktrackNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DESCRIBE_DB_CLUSTER_BACKTRACKS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCBI, + {_sSI: _cDDBCBM, _smi: None}, + (_DBCI, _BI, _Fil, _MR, _Mar), + ((STRING, 1), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_CLUSTER_BACKTRACK: StaticSchema = ( + 18, + n0, + _DBCB, + 0, + (_DBCI, _BI, _BT, _BF, _BRCT, _St), + ((STRING, 0), (STRING, 0), (T_STAMP, 0), (T_STAMP, 0), (T_STAMP, 0), (STRING, 0)), +) + +DB_CLUSTER_BACKTRACK_LIST: StaticSchema = ( + 16, + n0, + _DBCBL, + 0, + (_m,), + ((DB_CLUSTER_BACKTRACK, {_sN: _DBCB}),), +) + +DESCRIBE_DB_CLUSTER_BACKTRACKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCBO, + {_sSI: _cDBCBM, _smit: None}, + (_Mar, _DBCBl), + ((STRING, 0), (DB_CLUSTER_BACKTRACK_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_BACKTRACKS: StaticOperationSchema = ( + 23, + n0, + _DDBCB, + 0, + DESCRIBE_DB_CLUSTER_BACKTRACKS_INPUT, + DESCRIBE_DB_CLUSTER_BACKTRACKS_OUTPUT, + (DB_CLUSTER_BACKTRACK_NOT_FOUND_FAULT, DB_CLUSTER_NOT_FOUND_FAULT), +) + +DESCRIBE_DB_CLUSTER_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCEIe, + {_sSI: _cDDBCEMo, _smi: None}, + (_DBCI, _DBCEI, _Fil, _MR, _Mar), + ((STRING, 0), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_CLUSTER_ENDPOINT: StaticSchema = ( + 18, + n0, + _DBCE, + 0, + (_DBCEI, _DBCI, _DBCERI, _End, _St, _ET, _CETu, _SMt, _EMx, _DBCEA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + ), +) + +DB_CLUSTER_ENDPOINT_LIST: StaticSchema = ( + 16, + n0, + _DBCEL, + 0, + (_m,), + ((DB_CLUSTER_ENDPOINT, {_sN: _DBCEL}),), +) + +DESCRIBE_DB_CLUSTER_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCEOe, + {_sSI: _cDBCEM, _smit: None}, + (_Mar, _DBCEl), + ((STRING, 0), (DB_CLUSTER_ENDPOINT_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DDBCEe, + 0, + DESCRIBE_DB_CLUSTER_ENDPOINTS_INPUT, + DESCRIBE_DB_CLUSTER_ENDPOINTS_OUTPUT, + (DB_CLUSTER_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCPGIe, + {_sSI: _cDDBCPGMo, _smi: None}, + (_DBCPGN, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_CLUSTER_PARAMETER_GROUP_LIST: StaticSchema = ( + 16, + n0, + _DBCPGL, + 0, + (_m,), + ((DB_CLUSTER_PARAMETER_GROUP, {_sN: _DBCPG}),), +) + +DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCPGOe, + {_sSI: _cDBCPGM, _smit: None}, + (_Mar, _DBCPGl), + ((STRING, 0), (DB_CLUSTER_PARAMETER_GROUP_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBCPGe, + 0, + DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_INPUT, + DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTER_PARAMETERS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCPI, + {_sSI: _cDDBCPM, _smi: None}, + (_DBCPGN, _So, _Fil, _MR, _Mar), + ((STRING, 1), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +APPLY_METHOD: StaticSchema = ( + 14, + n0, + _AMp, + 0, + (_im, _pr_), + ((-1, {_sV: _im}), (-1, {_sV: _pr__})), +) + +POTENTIALLY_SENSITIVE_PARAMETER_VALUE: StaticSchema = (3, n0, _PSPV, 0) + +PARAMETER: StaticSchema = ( + 18, + n0, + _Pa, + 0, + (_PN, _PV, _D, _So, _AT, _DT, _AV, _IM, _MEVi, _AMp, _SEM), + ( + (STRING, 0), + (POTENTIALLY_SENSITIVE_PARAMETER_VALUE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (APPLY_METHOD, 0), + (ENGINE_MODE_LIST, 0), + ), +) + +PARAMETERS_LIST: StaticSchema = (16, n0, _PL, 0, (_m,), ((PARAMETER, {_sN: _Pa}),)) + +DESCRIBE_DB_CLUSTER_PARAMETERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCPO, + {_sSI: _cDBCPGD, _smit: None}, + (_Par, _Mar), + ((PARAMETERS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_CLUSTER_PARAMETERS: StaticOperationSchema = ( + 23, + n0, + _DDBCP, + 0, + DESCRIBE_DB_CLUSTER_PARAMETERS_INPUT, + DESCRIBE_DB_CLUSTER_PARAMETERS_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTERS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCIe, + {_sSI: _cDDBCMo, _smi: None}, + (_DBCI, _Fil, _MR, _Mar, _ISnc), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0), (BOOLEAN, 0)), +) + +DB_CLUSTER_LIST: StaticSchema = (16, n0, _DBCL, 0, (_m,), ((DB_CLUSTER, {_sN: _DBC}),)) + +DESCRIBE_DB_CLUSTERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCOe, + {_sSI: _cDBCM, _smit: None}, + (_Mar, _DBCl), + ((STRING, 0), (DB_CLUSTER_LIST, 0)), +) + +DESCRIBE_DB_CLUSTERS: StaticOperationSchema = ( + 23, + n0, + _DDBCe, + 0, + DESCRIBE_DB_CLUSTERS_INPUT, + DESCRIBE_DB_CLUSTERS_OUTPUT, + (DB_CLUSTER_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DDBCSAI, + {_sSI: _cDDBCSAM, _smi: None}, + (_DBCSI,), + ((STRING, 1),), +) + +ATTRIBUTE_VALUE_LIST: StaticSchema = (16, n0, _AVL, 0, (_m,), ((STRING, {_sN: _AVt}),)) + +DB_CLUSTER_SNAPSHOT_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _DBCSAl, + 0, + (_AN, _AVtt), + ((STRING, 0), (ATTRIBUTE_VALUE_LIST, 0)), +) + +DB_CLUSTER_SNAPSHOT_ATTRIBUTE_LIST: StaticSchema = ( + 16, + n0, + _DBCSAL, + 0, + (_m,), + ((DB_CLUSTER_SNAPSHOT_ATTRIBUTE, {_sN: _DBCSAl}),), +) + +DB_CLUSTER_SNAPSHOT_ATTRIBUTES_RESULT: StaticSchema = ( + 18, + n0, + _DBCSAR, + 0, + (_DBCSI, _DBCSAlu), + ((STRING, 0), (DB_CLUSTER_SNAPSHOT_ATTRIBUTE_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCSAO, + {_sSI: _cDDBCSAR, _smit: None}, + (_DBCSAR,), + ((DB_CLUSTER_SNAPSHOT_ATTRIBUTES_RESULT, 0),), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DDBCSA, + 0, + DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_INPUT, + DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_OUTPUT, + (DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOTS_INPUT: StaticSchema = ( + 18, + n0, + _DDBCSIe, + {_sSI: _cDDBCSMo, _smi: None}, + (_DBCI, _DBCSI, _STna, _Fil, _MR, _Mar, _ISnc, _IP, _DCRI), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +DB_CLUSTER_SNAPSHOT_LIST: StaticSchema = ( + 16, + n0, + _DBCSL, + 0, + (_m,), + ((DB_CLUSTER_SNAPSHOT, {_sN: _DBCS}),), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBCSOe, + {_sSI: _cDBCSM, _smit: None}, + (_Mar, _DBCSl), + ((STRING, 0), (DB_CLUSTER_SNAPSHOT_LIST, 0)), +) + +DESCRIBE_DB_CLUSTER_SNAPSHOTS: StaticOperationSchema = ( + 23, + n0, + _DDBCSe, + 0, + DESCRIBE_DB_CLUSTER_SNAPSHOTS_INPUT, + DESCRIBE_DB_CLUSTER_SNAPSHOTS_OUTPUT, + (DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_ENGINE_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDBEVI, + {_sSI: _cDDBEVM, _smi: None}, + (_En, _EV, _DBPGF, _Fil, _MR, _Mar, _DOe, _LSCS, _LST, _IAnc), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +DB_ENGINE_VERSION: StaticSchema = ( + 18, + n0, + _DBEV, + 0, + ( + _En, + _MEV, + _EV, + _DIFSBN, + _DIFSP, + _DIF, + _CDBEVM, + _DBPGF, + _DBED, + _DBEVA, + _DBEVD, + _DCS, + _FR, + _Im, + _DBEMT, + _KMSKI, + _CTr, + _SCS, + _SNCS, + _VUT, + _STu, + _ELT, + _SLETCL, + _SRR, + _SEM, + _SFN, + _St, + _SPQ, + _SGD, + _TL, + _SBu, + _SLD, + _SCRWR, + _SCACI, + _SLWF, + _SIu, + _SVFS, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (CUSTOM_DB_ENGINE_VERSION_MANIFEST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CHARACTER_SET, 0), + (STRING, 0), + (CUSTOM_DB_ENGINE_VERSION_AMI, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (VALID_UPGRADE_TARGET_LIST, 0), + (SUPPORTED_TIMEZONES_LIST, 0), + (LOG_TYPE_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (ENGINE_MODE_LIST, 0), + (FEATURE_NAME_LIST, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (CA_CERTIFICATE_IDENTIFIERS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (SERVERLESS_V2_FEATURES_SUPPORT, 0), + ), +) + +DB_ENGINE_VERSION_LIST: StaticSchema = ( + 16, + n0, + _DBEVL, + 0, + (_m,), + ((DB_ENGINE_VERSION, {_sN: _DBEV}),), +) + +DESCRIBE_DB_ENGINE_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBEVO, + {_sSI: _cDBEVM, _smit: None}, + (_Mar, _DBEVn), + ((STRING, 0), (DB_ENGINE_VERSION_LIST, 0)), +) + +DESCRIBE_DB_ENGINE_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _DDBEV, + 0, + DESCRIBE_DB_ENGINE_VERSIONS_INPUT, + DESCRIBE_DB_ENGINE_VERSIONS_OUTPUT, + (), +) + +DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBIABIe, + {_sSI: _cDDBIABMo, _smi: None}, + (_DRI, _DBII, _Fil, _MR, _Mar, _DBIABA), + ( + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + ), +) + +DB_INSTANCE_AUTOMATED_BACKUP_LIST: StaticSchema = ( + 16, + n0, + _DBIABL, + 0, + (_m,), + ((DB_INSTANCE_AUTOMATED_BACKUP, {_sN: _DBIAB}),), +) + +DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBIABOe, + {_sSI: _cDBIABM, _smit: None}, + (_Mar, _DBIABn), + ((STRING, 0), (DB_INSTANCE_AUTOMATED_BACKUP_LIST, 0)), +) + +DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS: StaticOperationSchema = ( + 23, + n0, + _DDBIABe, + 0, + DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_INPUT, + DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_OUTPUT, + (DB_INSTANCE_AUTOMATED_BACKUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DDBIIe, + {_sSI: _cDDBIMo, _smi: None}, + (_DBII, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _DBIL, + 0, + (_m,), + ((DB_INSTANCE, {_sN: _DBI}),), +) + +DESCRIBE_DB_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBIOe, + {_sSI: _cDBIM, _smit: None}, + (_Mar, _DBIn), + ((STRING, 0), (DB_INSTANCE_LIST, 0)), +) + +DESCRIBE_DB_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DDBIe, + 0, + DESCRIBE_DB_INSTANCES_INPUT, + DESCRIBE_DB_INSTANCES_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT,), +) + +DB_INSTANCE_NOT_READY_FAULT: StaticSchema = ( + 18, + n0, + _DBINRF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "DBInstanceNotReady", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DESCRIBE_DB_LOG_FILES_INPUT: StaticSchema = ( + 18, + n0, + _DDBLFI, + {_sSI: _cDDBLFM, _smi: None}, + (_DBII, _FCi, _FLW, _FSi, _Fil, _MR, _Mar), + ( + (STRING, 1), + (STRING, 0), + (LONG, 0), + (LONG, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +DESCRIBE_DB_LOG_FILES_DETAILS: StaticSchema = ( + 18, + n0, + _DDBLFD, + 0, + (_LFN, _LW, _Si), + ((STRING, 0), (LONG, 0), (LONG, 0)), +) + +DESCRIBE_DB_LOG_FILES_LIST: StaticSchema = ( + 16, + n0, + _DDBLFL, + 0, + (_m,), + ((DESCRIBE_DB_LOG_FILES_DETAILS, {_sN: _DDBLFD}),), +) + +DESCRIBE_DB_LOG_FILES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBLFO, + {_sSI: _cDDBLFR, _smit: None}, + (_DDBLF, _Mar), + ((DESCRIBE_DB_LOG_FILES_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_LOG_FILES: StaticOperationSchema = ( + 23, + n0, + _DDBLF, + 0, + DESCRIBE_DB_LOG_FILES_INPUT, + DESCRIBE_DB_LOG_FILES_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT, DB_INSTANCE_NOT_READY_FAULT), +) + +ENGINE: StaticSchema = (3, n0, _En, 0) + +MAJOR_ENGINE_VERSION: StaticSchema = (3, n0, _MEV, 0) + +MARKER: StaticSchema = (3, n0, _Mar, 0) + +DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDBMEVI, + {_sSI: _cDDBMEVR, _smi: None}, + (_En, _MEV, _Mar, _MR), + ((ENGINE, 0), (MAJOR_ENGINE_VERSION, 0), (MARKER, 0), (MAX_RECORDS, 0)), +) + +LIFECYCLE_SUPPORT_NAME: StaticSchema = ( + 14, + n0, + _LSN, + 0, + (_OSRSS, _OSRES), + ((-1, {_sV: _osrss}), (-1, {_sV: _osres})), +) + +SUPPORTED_ENGINE_LIFECYCLE: StaticSchema = ( + 18, + n0, + _SEL, + 0, + (_LSN, _LSSD, _LSED), + ((LIFECYCLE_SUPPORT_NAME, 1), (T_STAMP, 1), (T_STAMP, 1)), +) + +SUPPORTED_ENGINE_LIFECYCLE_LIST: StaticSchema = ( + 16, + n0, + _SELL, + 0, + (_m,), + ((SUPPORTED_ENGINE_LIFECYCLE, {_sN: _SEL}),), +) + +DB_MAJOR_ENGINE_VERSION: StaticSchema = ( + 18, + n0, + _DBMEV, + 0, + (_En, _MEV, _SELu), + ((STRING, 0), (STRING, 0), (SUPPORTED_ENGINE_LIFECYCLE_LIST, 0)), +) + +DB_MAJOR_ENGINE_VERSIONS_LIST: StaticSchema = ( + 16, + n0, + _DBMEVL, + 0, + (_m,), + ((DB_MAJOR_ENGINE_VERSION, {_sN: _DBMEV}),), +) + +DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBMEVO, + {_sSI: _cDDBMEVRo, _smit: None}, + (_DBMEVa, _Mar), + ((DB_MAJOR_ENGINE_VERSIONS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_MAJOR_ENGINE_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _DDBMEV, + 0, + DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_INPUT, + DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_OUTPUT, + (), +) + +DESCRIBE_DB_PARAMETER_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPGIe, + {_sSI: _cDDBPGMo, _smi: None}, + (_DBPGN, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_PARAMETER_GROUP_LIST: StaticSchema = ( + 16, + n0, + _DBPGL, + 0, + (_m,), + ((DB_PARAMETER_GROUP, {_sN: _DBPG}),), +) + +DESCRIBE_DB_PARAMETER_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPGOe, + {_sSI: _cDBPGM, _smit: None}, + (_Mar, _DBPGa), + ((STRING, 0), (DB_PARAMETER_GROUP_LIST, 0)), +) + +DESCRIBE_DB_PARAMETER_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBPGe, + 0, + DESCRIBE_DB_PARAMETER_GROUPS_INPUT, + DESCRIBE_DB_PARAMETER_GROUPS_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_PARAMETERS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPIe, + {_sSI: _cDDBPM, _smi: None}, + (_DBPGN, _So, _Fil, _MR, _Mar), + ((STRING, 1), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DESCRIBE_DB_PARAMETERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPOe, + {_sSI: _cDBPGD, _smit: None}, + (_Par, _Mar), + ((PARAMETERS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_PARAMETERS: StaticOperationSchema = ( + 23, + n0, + _DDBPe, + 0, + DESCRIBE_DB_PARAMETERS_INPUT, + DESCRIBE_DB_PARAMETERS_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_PROXIES_INPUT: StaticSchema = ( + 18, + n0, + _DDBPIes, + {_sSI: _cDDBPRom, _smi: None}, + (_DBPN, _Fil, _Mar, _MR), + ((DB_PROXY_NAME, 0), (FILTER_LIST, 0), (STRING, 0), (MAX_RECORDS, 0)), +) + +DB_PROXY_LIST: StaticSchema = (16, n0, _DBPL, 0, (_m,), ((DB_PROXY, 0),)) + +DESCRIBE_DB_PROXIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPOes, + {_sSI: _cDDBPRoma, _smit: None}, + (_DBPr, _Mar), + ((DB_PROXY_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_PROXIES: StaticOperationSchema = ( + 23, + n0, + _DDBPes, + 0, + DESCRIBE_DB_PROXIES_INPUT, + DESCRIBE_DB_PROXIES_OUTPUT, + (DB_PROXY_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_PROXY_ENDPOINTS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPEIe, + {_sSI: _cDDBPERom, _smi: None}, + (_DBPN, _DBPEN, _Fil, _Mar, _MR), + ( + (DB_PROXY_NAME, 0), + (DB_PROXY_ENDPOINT_NAME, 0), + (FILTER_LIST, 0), + (STRING, 0), + (MAX_RECORDS, 0), + ), +) + +DB_PROXY_ENDPOINT_LIST: StaticSchema = ( + 16, + n0, + _DBPEL, + 0, + (_m,), + ((DB_PROXY_ENDPOINT, 0),), +) + +DESCRIBE_DB_PROXY_ENDPOINTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPEOe, + {_sSI: _cDDBPERoma, _smit: None}, + (_DBPEr, _Mar), + ((DB_PROXY_ENDPOINT_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_PROXY_ENDPOINTS: StaticOperationSchema = ( + 23, + n0, + _DDBPEe, + 0, + DESCRIBE_DB_PROXY_ENDPOINTS_INPUT, + DESCRIBE_DB_PROXY_ENDPOINTS_OUTPUT, + (DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, DB_PROXY_NOT_FOUND_FAULT), +) + +DESCRIBE_DB_PROXY_TARGET_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPTGI, + {_sSI: _cDDBPTGR, _smi: None}, + (_DBPN, _TGN, _Fil, _Mar, _MR), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_TARGET_GROUP_NAME, 0), + (FILTER_LIST, 0), + (STRING, 0), + (MAX_RECORDS, 0), + ), +) + +OPERATOR_SENSITIVE_STRING: StaticSchema = (3, n0, _OSS, 4) + +CONNECTION_POOL_CONFIGURATION_INFO: StaticSchema = ( + 18, + n0, + _CPCI, + 0, + (_MCP, _MICP, _CBT, _SPF, _IQ), + ( + (INTEGER, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING_LIST, 0), + (OPERATOR_SENSITIVE_STRING, 0), + ), +) + +DB_PROXY_TARGET_GROUP: StaticSchema = ( + 18, + n0, + _DBPTG, + 0, + (_DBPN, _TGN, _TGA, _ID, _St, _CPC, _CDr, _UD), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (CONNECTION_POOL_CONFIGURATION_INFO, 0), + (T_STAMP, 0), + (T_STAMP, 0), + ), +) + +TARGET_GROUP_LIST: StaticSchema = ( + 16, + n0, + _TGL, + 0, + (_m,), + ((DB_PROXY_TARGET_GROUP, 0),), +) + +DESCRIBE_DB_PROXY_TARGET_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPTGO, + {_sSI: _cDDBPTGRo, _smit: None}, + (_TG, _Mar), + ((TARGET_GROUP_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_PROXY_TARGET_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBPTG, + 0, + DESCRIBE_DB_PROXY_TARGET_GROUPS_INPUT, + DESCRIBE_DB_PROXY_TARGET_GROUPS_OUTPUT, + ( + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +DESCRIBE_DB_PROXY_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _DDBPTIe, + {_sSI: _cDDBPTRom, _smi: None}, + (_DBPN, _TGN, _Fil, _Mar, _MR), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_TARGET_GROUP_NAME, 0), + (FILTER_LIST, 0), + (STRING, 0), + (MAX_RECORDS, 0), + ), +) + +TARGET_ROLE: StaticSchema = ( + 14, + n0, + _TR, + 0, + (_RW, _RO, _UNKNOWN), + ((-1, {_sV: _RW}), (-1, {_sV: _RO}), (-1, {_sV: _UNKNOWN})), +) + +TARGET_HEALTH_REASON: StaticSchema = ( + 14, + n0, + _THR, + 0, + (_UNREACHABLE, _CF, _AF, _PPC, _IRS, _PROMOTED), + ( + (-1, {_sV: _UNREACHABLE}), + (-1, {_sV: _CF}), + (-1, {_sV: _AF}), + (-1, {_sV: _PPC}), + (-1, {_sV: _IRS}), + (-1, {_sV: _PROMOTED}), + ), +) + +TARGET_STATE: StaticSchema = ( + 14, + n0, + _TSar, + 0, + (_reg, _av, _una, _unu), + ( + (-1, {_sV: _REGISTERING}), + (-1, {_sV: _AVAILABLE}), + (-1, {_sV: _UNAVAILABLE}), + (-1, {_sV: _UNUSED}), + ), +) + +TARGET_HEALTH: StaticSchema = ( + 18, + n0, + _TH, + 0, + (_Sta, _Rea, _D), + ((TARGET_STATE, 0), (TARGET_HEALTH_REASON, 0), (STRING, 0)), +) + +TARGET_TYPE: StaticSchema = ( + 14, + n0, + _TT, + 0, + (_RI_, _RSE, _TC), + ((-1, {_sV: _RI_}), (-1, {_sV: _RSE}), (-1, {_sV: _TC})), +) + +DB_PROXY_TARGET: StaticSchema = ( + 18, + n0, + _DBPT, + 0, + (_TAa, _End, _TCI, _RRId, _P, _Ty, _Ro, _TH), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (TARGET_TYPE, 0), + (TARGET_ROLE, 0), + (TARGET_HEALTH, 0), + ), +) + +TARGET_LIST: StaticSchema = (16, n0, _TLa, 0, (_m,), ((DB_PROXY_TARGET, 0),)) + +DESCRIBE_DB_PROXY_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBPTOe, + {_sSI: _cDDBPTRoma, _smit: None}, + (_Targ, _Mar), + ((TARGET_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_PROXY_TARGETS: StaticOperationSchema = ( + 23, + n0, + _DDBPTe, + 0, + DESCRIBE_DB_PROXY_TARGETS_INPUT, + DESCRIBE_DB_PROXY_TARGETS_OUTPUT, + ( + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + DB_PROXY_TARGET_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +DESCRIBE_DB_RECOMMENDATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DDBRI, + {_sSI: _cDDBRM, _smi: None}, + (_LUA, _LUB, _Lo, _Fil, _MR, _Mar), + ( + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +PERFORMANCE_INSIGHTS_METRIC_DIMENSION_GROUP: StaticSchema = ( + 18, + n0, + _PIMDG, + 0, + (_Di, _G, _Li), + ((STRING_LIST, 0), (STRING, 0), (INTEGER, 0)), +) + +PERFORMANCE_INSIGHTS_METRIC_QUERY: StaticSchema = ( + 18, + n0, + _PIMQ, + 0, + (_GB, _Met), + ((PERFORMANCE_INSIGHTS_METRIC_DIMENSION_GROUP, 0), (STRING, 0)), +) + +METRIC_QUERY: StaticSchema = ( + 18, + n0, + _MQ, + 0, + (_PIMQ,), + ((PERFORMANCE_INSIGHTS_METRIC_QUERY, 0),), +) + +DOUBLE: StaticSchema = (10, n0, _Dou, 0) + +SCALAR_REFERENCE_DETAILS: StaticSchema = (18, n0, _SRD, 0, (_V,), ((DOUBLE, 0),)) + +REFERENCE_DETAILS: StaticSchema = ( + 18, + n0, + _RD, + 0, + (_SRD,), + ((SCALAR_REFERENCE_DETAILS, 0),), +) + +METRIC_REFERENCE: StaticSchema = ( + 18, + n0, + _MRe, + 0, + (_N, _RD), + ((STRING, 0), (REFERENCE_DETAILS, 0)), +) + +METRIC_REFERENCE_LIST: StaticSchema = (16, n0, _MRL, 0, (_m,), ((METRIC_REFERENCE, 0),)) + +METRIC: StaticSchema = ( + 18, + n0, + _Met, + 0, + (_N, _Ref, _SDta, _MQ), + ((STRING, 0), (METRIC_REFERENCE_LIST, 0), (STRING, 0), (METRIC_QUERY, 0)), +) + +METRIC_LIST: StaticSchema = (16, n0, _ML, 0, (_m,), ((METRIC, 0),)) + +PERFORMANCE_ISSUE_DETAILS: StaticSchema = ( + 18, + n0, + _PID, + 0, + (_STtar, _ETn, _Metr, _An), + ((T_STAMP, 0), (T_STAMP, 0), (METRIC_LIST, 0), (STRING, 0)), +) + +ISSUE_DETAILS: StaticSchema = ( + 18, + n0, + _IDs, + 0, + (_PID,), + ((PERFORMANCE_ISSUE_DETAILS, 0),), +) + +DOC_LINK: StaticSchema = (18, n0, _DLo, 0, (_Te, _Ur), ((STRING, 0), (STRING, 0))) + +DOC_LINK_LIST: StaticSchema = (16, n0, _DLL, 0, (_m,), ((DOC_LINK, 0),)) + +CONTEXT_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _CAo, + 0, + (_K, _V), + ((STRING, 0), (STRING, 0)), +) + +CONTEXT_ATTRIBUTE_LIST: StaticSchema = ( + 16, + n0, + _CAL, + 0, + (_m,), + ((CONTEXT_ATTRIBUTE, 0),), +) + +RECOMMENDED_ACTION_PARAMETER: StaticSchema = ( + 18, + n0, + _RAP, + 0, + (_K, _V), + ((STRING, 0), (STRING, 0)), +) + +RECOMMENDED_ACTION_PARAMETER_LIST: StaticSchema = ( + 16, + n0, + _RAPL, + 0, + (_m,), + ((RECOMMENDED_ACTION_PARAMETER, 0),), +) + +RECOMMENDED_ACTION: StaticSchema = ( + 18, + n0, + _RAe, + 0, + (_AI, _Tit, _D, _Ope, _Par, _AMpp, _St, _IDs, _CAon), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (RECOMMENDED_ACTION_PARAMETER_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + (ISSUE_DETAILS, 0), + (CONTEXT_ATTRIBUTE_LIST, 0), + ), +) + +RECOMMENDED_ACTION_LIST: StaticSchema = ( + 16, + n0, + _RALe, + 0, + (_m,), + ((RECOMMENDED_ACTION, 0),), +) + +DB_RECOMMENDATION: StaticSchema = ( + 18, + n0, + _DBR, + 0, + ( + _RIe, + _TIy, + _Se, + _RAes, + _St, + _CTre, + _UTp, + _De, + _Rec, + _D, + _Rea, + _RAec, + _Ca, + _So, + _TDy, + _TRy, + _Imp, + _AId, + _Lin, + _IDs, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (RECOMMENDED_ACTION_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (DOC_LINK_LIST, 0), + (ISSUE_DETAILS, 0), + ), +) + +DB_RECOMMENDATION_LIST: StaticSchema = ( + 16, + n0, + _DBRL, + 0, + (_m,), + ((DB_RECOMMENDATION, 0),), +) + +DESCRIBE_DB_RECOMMENDATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBRO, + {_sSI: _cDBRM, _smit: None}, + (_DBRe, _Mar), + ((DB_RECOMMENDATION_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_RECOMMENDATIONS: StaticOperationSchema = ( + 23, + n0, + _DDBR, + 0, + DESCRIBE_DB_RECOMMENDATIONS_INPUT, + DESCRIBE_DB_RECOMMENDATIONS_OUTPUT, + (), +) + +DESCRIBE_DB_SECURITY_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGIes, + {_sSI: _cDDBSGMoma, _smi: None}, + (_DBSGN, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_SECURITY_GROUPS: StaticSchema = ( + 16, + n0, + _DBSGe, + 0, + (_m,), + ((DB_SECURITY_GROUP, {_sN: _DBSG}),), +) + +DESCRIBE_DB_SECURITY_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGOes, + {_sSI: _cDBSGM, _smit: None}, + (_Mar, _DBSGe), + ((STRING, 0), (DB_SECURITY_GROUPS, 0)), +) + +DESCRIBE_DB_SECURITY_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBSGes, + 0, + DESCRIBE_DB_SECURITY_GROUPS_INPUT, + DESCRIBE_DB_SECURITY_GROUPS_OUTPUT, + (DB_SECURITY_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_SHARD_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGIesc, + {_sSI: _cDDBSGMomam, _smi: None}, + (_DBSGI, _Fil, _Mar, _MR), + ((DB_SHARD_GROUP_IDENTIFIER, 0), (FILTER_LIST, 0), (STRING, 0), (MAX_RECORDS, 0)), +) + +DB_SHARD_GROUP: StaticSchema = ( + 18, + n0, + _DBSGh, + 0, + (_DBSGRI, _DBSGI, _DBCI, _MACU, _MACUi, _CR, _St, _PA, _End, _DBSGAh, _TL), + ( + (STRING, 0), + (DB_SHARD_GROUP_IDENTIFIER, 0), + (STRING, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +DB_SHARD_GROUPS_LIST: StaticSchema = ( + 16, + n0, + _DBSGL, + 0, + (_m,), + ((DB_SHARD_GROUP, {_sN: _DBSGh}),), +) + +DESCRIBE_DB_SHARD_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGOesc, + {_sSI: _cDDBSGR, _smit: None}, + (_DBSGha, _Mar), + ((DB_SHARD_GROUPS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_DB_SHARD_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBSGesc, + 0, + DESCRIBE_DB_SHARD_GROUPS_INPUT, + DESCRIBE_DB_SHARD_GROUPS_OUTPUT, + (DB_CLUSTER_NOT_FOUND_FAULT, DB_SHARD_GROUP_NOT_FOUND_FAULT), +) + +DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _DDBSAI, + {_sSI: _cDDBSAM, _smi: None}, + (_DBSIn,), + ((STRING, 1),), +) + +DB_SNAPSHOT_ATTRIBUTE: StaticSchema = ( + 18, + n0, + _DBSAn, + 0, + (_AN, _AVtt), + ((STRING, 0), (ATTRIBUTE_VALUE_LIST, 0)), +) + +DB_SNAPSHOT_ATTRIBUTE_LIST: StaticSchema = ( + 16, + n0, + _DBSAL, + 0, + (_m,), + ((DB_SNAPSHOT_ATTRIBUTE, {_sN: _DBSAn}),), +) + +DB_SNAPSHOT_ATTRIBUTES_RESULT: StaticSchema = ( + 18, + n0, + _DBSAR, + 0, + (_DBSIn, _DBSAna), + ((STRING, 0), (DB_SNAPSHOT_ATTRIBUTE_LIST, 0)), +) + +DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSAO, + {_sSI: _cDDBSAR, _smit: None}, + (_DBSAR,), + ((DB_SNAPSHOT_ATTRIBUTES_RESULT, 0),), +) + +DESCRIBE_DB_SNAPSHOT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _DDBSA, + 0, + DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_INPUT, + DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_OUTPUT, + (DB_SNAPSHOT_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_SNAPSHOTS_INPUT: StaticSchema = ( + 18, + n0, + _DDBSIe, + {_sSI: _cDDBSMo, _smi: None}, + (_DBII, _DBSIn, _STna, _Fil, _MR, _Mar, _ISnc, _IP, _DRI), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + ), +) + +DB_SNAPSHOT_LIST: StaticSchema = ( + 16, + n0, + _DBSL, + 0, + (_m,), + ((DB_SNAPSHOT, {_sN: _DBS}),), +) + +DESCRIBE_DB_SNAPSHOTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSOe, + {_sSI: _cDBSM, _smit: None}, + (_Mar, _DBSn), + ((STRING, 0), (DB_SNAPSHOT_LIST, 0)), +) + +DESCRIBE_DB_SNAPSHOTS: StaticOperationSchema = ( + 23, + n0, + _DDBSe, + 0, + DESCRIBE_DB_SNAPSHOTS_INPUT, + DESCRIBE_DB_SNAPSHOTS_OUTPUT, + (DB_SNAPSHOT_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_INPUT: StaticSchema = ( + 18, + n0, + _DDBSTDI, + {_sSI: _cDDBSTDM, _smi: None}, + (_DBII, _DBSIn, _STna, _Fil, _MR, _Mar, _DRI), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + ), +) + +DB_SNAPSHOT_TENANT_DATABASE: StaticSchema = ( + 18, + n0, + _DBSTD, + 0, + ( + _DBSIn, + _DBII, + _DRI, + _EN, + _STna, + _TDCT, + _TDBN, + _MU, + _TDRI, + _CSN, + _DBSTDARN, + _NCSN, + _TL, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +DB_SNAPSHOT_TENANT_DATABASES_LIST: StaticSchema = ( + 16, + n0, + _DBSTDL, + 0, + (_m,), + ((DB_SNAPSHOT_TENANT_DATABASE, {_sN: _DBSTD}),), +) + +DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSTDO, + {_sSI: _cDBSTDM, _smit: None}, + (_Mar, _DBSTDn), + ((STRING, 0), (DB_SNAPSHOT_TENANT_DATABASES_LIST, 0)), +) + +DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES: StaticOperationSchema = ( + 23, + n0, + _DDBSTD, + 0, + DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_INPUT, + DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_OUTPUT, + (DB_SNAPSHOT_NOT_FOUND_FAULT,), +) + +DESCRIBE_DB_SUBNET_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DDBSGIescr, + {_sSI: _cDDBSGMomama, _smi: None}, + (_DBSGNu, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DB_SUBNET_GROUPS: StaticSchema = ( + 16, + n0, + _DBSGub, + 0, + (_m,), + ((DB_SUBNET_GROUP, {_sN: _DBSGu}),), +) + +DESCRIBE_DB_SUBNET_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBSGOescr, + {_sSI: _cDBSGMo, _smit: None}, + (_Mar, _DBSGub), + ((STRING, 0), (DB_SUBNET_GROUPS, 0)), +) + +DESCRIBE_DB_SUBNET_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DDBSGescr, + 0, + DESCRIBE_DB_SUBNET_GROUPS_INPUT, + DESCRIBE_DB_SUBNET_GROUPS_OUTPUT, + (DB_SUBNET_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_INPUT: StaticSchema = ( + 18, + n0, + _DEDCPI, + {_sSI: _cDEDCPM, _smi: None}, + (_DBPGF, _Fil, _MR, _Mar), + ((STRING, 1), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +ENGINE_DEFAULTS: StaticSchema = ( + 18, + n0, + _EDn, + 0, + (_DBPGF, _Mar, _Par), + ((STRING, 0), (STRING, 0), (PARAMETERS_LIST, 0)), +) + +DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEDCPO, + {_sSI: _cDEDCPR, _smit: None}, + (_EDn,), + ((ENGINE_DEFAULTS, 0),), +) + +DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS: StaticOperationSchema = ( + 23, + n0, + _DEDCP, + 0, + DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_INPUT, + DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_OUTPUT, + (), +) + +DESCRIBE_ENGINE_DEFAULT_PARAMETERS_INPUT: StaticSchema = ( + 18, + n0, + _DEDPI, + {_sSI: _cDEDPM, _smi: None}, + (_DBPGF, _Fil, _MR, _Mar), + ((STRING, 1), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +DESCRIBE_ENGINE_DEFAULT_PARAMETERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEDPO, + {_sSI: _cDEDPR, _smit: None}, + (_EDn,), + ((ENGINE_DEFAULTS, 0),), +) + +DESCRIBE_ENGINE_DEFAULT_PARAMETERS: StaticOperationSchema = ( + 23, + n0, + _DEDP, + 0, + DESCRIBE_ENGINE_DEFAULT_PARAMETERS_INPUT, + DESCRIBE_ENGINE_DEFAULT_PARAMETERS_OUTPUT, + (), +) + +DESCRIBE_EVENT_CATEGORIES_INPUT: StaticSchema = ( + 18, + n0, + _DECI, + {_sSI: _cDECM, _smi: None}, + (_STo, _Fil), + ((STRING, 0), (FILTER_LIST, 0)), +) + +EVENT_CATEGORIES_MAP: StaticSchema = ( + 18, + n0, + _ECMv, + 0, + (_STo, _ECv), + ((STRING, 0), (EVENT_CATEGORIES_LIST, 0)), +) + +EVENT_CATEGORIES_MAP_LIST: StaticSchema = ( + 16, + n0, + _ECML, + 0, + (_m,), + ((EVENT_CATEGORIES_MAP, {_sN: _ECMv}),), +) + +DESCRIBE_EVENT_CATEGORIES_OUTPUT: StaticSchema = ( + 18, + n0, + _DECO, + {_sSI: _cECM, _smit: None}, + (_ECML,), + ((EVENT_CATEGORIES_MAP_LIST, 0),), +) + +DESCRIBE_EVENT_CATEGORIES: StaticOperationSchema = ( + 23, + n0, + _DEC, + 0, + DESCRIBE_EVENT_CATEGORIES_INPUT, + DESCRIBE_EVENT_CATEGORIES_OUTPUT, + (), +) + +SOURCE_TYPE: StaticSchema = ( + 14, + n0, + _STo, + 0, + (_di_, _dpg, _dsg, _ds, _dc, _dcs, _cev, _dp, _bgd, _dsg__, _ze), + ( + (-1, {_sV: _di__}), + (-1, {_sV: _dpg_}), + (-1, {_sV: _dsg_}), + (-1, {_sV: _ds_}), + (-1, {_sV: _dc_}), + (-1, {_sV: _dcs_}), + (-1, {_sV: _cev_}), + (-1, {_sV: _dp_}), + (-1, {_sV: _bgd_}), + (-1, {_sV: _dsg___}), + (-1, {_sV: _ze_}), + ), +) + +DESCRIBE_EVENTS_INPUT: StaticSchema = ( + 18, + n0, + _DEI, + {_sSI: _cDEM, _smi: None}, + (_SI, _STo, _STtar, _ETn, _Du, _ECv, _Fil, _MR, _Mar), + ( + (STRING, 0), + (SOURCE_TYPE, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (INTEGER_OPTIONAL, 0), + (EVENT_CATEGORIES_LIST, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +EVENT: StaticSchema = ( + 18, + n0, + _Ev, + 0, + (_SI, _STo, _Me, _ECv, _Da, _SA), + ( + (STRING, 0), + (SOURCE_TYPE, 0), + (STRING, 0), + (EVENT_CATEGORIES_LIST, 0), + (T_STAMP, 0), + (STRING, 0), + ), +) + +EVENT_LIST: StaticSchema = (16, n0, _EL, 0, (_m,), ((EVENT, {_sN: _Ev}),)) + +DESCRIBE_EVENTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DEO, + {_sSI: _cEM, _smit: None}, + (_Mar, _Eve), + ((STRING, 0), (EVENT_LIST, 0)), +) + +DESCRIBE_EVENTS: StaticOperationSchema = ( + 23, + n0, + _DE, + 0, + DESCRIBE_EVENTS_INPUT, + DESCRIBE_EVENTS_OUTPUT, + (), +) + +DESCRIBE_EVENT_SUBSCRIPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DESIe, + {_sSI: _cDESMo, _smi: None}, + (_SN, _Fil, _MR, _Mar), + ((STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +EVENT_SUBSCRIPTIONS_LIST: StaticSchema = ( + 16, + n0, + _ESL, + 0, + (_m,), + ((EVENT_SUBSCRIPTION, {_sN: _ES}),), +) + +DESCRIBE_EVENT_SUBSCRIPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DESOe, + {_sSI: _cESM, _smit: None}, + (_Mar, _ESL), + ((STRING, 0), (EVENT_SUBSCRIPTIONS_LIST, 0)), +) + +DESCRIBE_EVENT_SUBSCRIPTIONS: StaticOperationSchema = ( + 23, + n0, + _DESe, + 0, + DESCRIBE_EVENT_SUBSCRIPTIONS_INPUT, + DESCRIBE_EVENT_SUBSCRIPTIONS_OUTPUT, + (SUBSCRIPTION_NOT_FOUND_FAULT,), +) + +DESCRIBE_EXPORT_TASKS_INPUT: StaticSchema = ( + 18, + n0, + _DETI, + {_sSI: _cDETM, _smi: None}, + (_ETI, _SA, _Fil, _Mar, _MR, _STo), + ( + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (STRING, 0), + (MAX_RECORDS, 0), + (EXPORT_SOURCE_TYPE, 0), + ), +) + +EXPORT_TASK: StaticSchema = ( + 18, + n0, + _ETx, + 0, + ( + _ETI, + _SA, + _EO, + _STn, + _TST, + _TET, + _SB, + _SP, + _IRA, + _KKI, + _St, + _PP, + _TEDIGB, + _FC, + _WM, + _STo, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (EXPORT_SOURCE_TYPE, 0), + ), +) + +EXPORT_TASKS_LIST: StaticSchema = ( + 16, + n0, + _ETL, + 0, + (_m,), + ((EXPORT_TASK, {_sN: _ETx}),), +) + +DESCRIBE_EXPORT_TASKS_OUTPUT: StaticSchema = ( + 18, + n0, + _DETO, + {_sSI: _cETM, _smit: None}, + (_Mar, _ETxp), + ((STRING, 0), (EXPORT_TASKS_LIST, 0)), +) + +DESCRIBE_EXPORT_TASKS: StaticOperationSchema = ( + 23, + n0, + _DET, + 0, + DESCRIBE_EXPORT_TASKS_INPUT, + DESCRIBE_EXPORT_TASKS_OUTPUT, + (EXPORT_TASK_NOT_FOUND_FAULT,), +) + +DESCRIBE_GLOBAL_CLUSTERS_INPUT: StaticSchema = ( + 18, + n0, + _DGCIe, + {_sSI: _cDGCMo, _smi: None}, + (_GCI, _Fil, _MR, _Mar), + ( + (GLOBAL_CLUSTER_IDENTIFIER, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +GLOBAL_CLUSTER_LIST: StaticSchema = ( + 16, + n0, + _GCL, + 0, + (_m,), + ((GLOBAL_CLUSTER, {_sN: _GCM}),), +) + +DESCRIBE_GLOBAL_CLUSTERS_OUTPUT: StaticSchema = ( + 18, + n0, + _DGCOe, + {_sSI: _cGCM, _smit: None}, + (_Mar, _GCl), + ((STRING, 0), (GLOBAL_CLUSTER_LIST, 0)), +) + +DESCRIBE_GLOBAL_CLUSTERS: StaticOperationSchema = ( + 23, + n0, + _DGCe, + 0, + DESCRIBE_GLOBAL_CLUSTERS_INPUT, + DESCRIBE_GLOBAL_CLUSTERS_OUTPUT, + (GLOBAL_CLUSTER_NOT_FOUND_FAULT,), +) + +DESCRIBE_INTEGRATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DIIe, + {_sSI: _cDIMo, _smi: None}, + (_IIn, _Fil, _MR, _Mar), + ((INTEGRATION_IDENTIFIER, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (MARKER, 0)), +) + +INTEGRATION: StaticSchema = ( + 18, + n0, + _In, + 0, + (_SA, _TAa, _INn, _IAn, _KMSKI, _AEC, _St, _Ta, _DFa, _D, _CTr, _Er), + ( + (SOURCE_ARN, 0), + (ARN, 0), + (INTEGRATION_NAME, 0), + (INTEGRATION_ARN, 0), + (STRING, 0), + (ENCRYPTION_CONTEXT_MAP, 0), + (INTEGRATION_STATUS, 0), + (TAG_LIST, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + (T_STAMP, 0), + (INTEGRATION_ERROR_LIST, 0), + ), +) + +INTEGRATION_LIST: StaticSchema = (16, n0, _IL, 0, (_m,), ((INTEGRATION, {_sN: _In}),)) + +DESCRIBE_INTEGRATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DIOe, + {_sSI: _cDIR, _smit: None}, + (_Mar, _Int), + ((MARKER, 0), (INTEGRATION_LIST, 0)), +) + +DESCRIBE_INTEGRATIONS: StaticOperationSchema = ( + 23, + n0, + _DIes, + 0, + DESCRIBE_INTEGRATIONS_INPUT, + DESCRIBE_INTEGRATIONS_OUTPUT, + (INTEGRATION_NOT_FOUND_FAULT,), +) + +DESCRIBE_OPTION_GROUP_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DOGOI, + {_sSI: _cDOGOM, _smi: None}, + (_EN, _MEV, _Fil, _MR, _Mar), + ((STRING, 1), (STRING, 0), (FILTER_LIST, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +MINIMUM_ENGINE_VERSION_PER_ALLOWED_VALUE: StaticSchema = ( + 18, + n0, + _MEVPAV, + 0, + (_AVl, _MEVi), + ((STRING, 0), (STRING, 0)), +) + +MINIMUM_ENGINE_VERSION_PER_ALLOWED_VALUE_LIST: StaticSchema = ( + 16, + n0, + _MEVPAVL, + 0, + (_m,), + ((MINIMUM_ENGINE_VERSION_PER_ALLOWED_VALUE, {_sN: _MEVPAV}),), +) + +OPTION_GROUP_OPTION_SETTING: StaticSchema = ( + 18, + n0, + _OGOS, + 0, + (_SNe, _SDe, _DV, _AT, _AV, _IM, _IR, _MEVPAV), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (MINIMUM_ENGINE_VERSION_PER_ALLOWED_VALUE_LIST, 0), + ), +) + +OPTION_GROUP_OPTION_SETTINGS_LIST: StaticSchema = ( + 16, + n0, + _OGOSL, + 0, + (_m,), + ((OPTION_GROUP_OPTION_SETTING, {_sN: _OGOS}),), +) + +OPTION_VERSION: StaticSchema = (18, n0, _OV, 0, (_Ve, _ID), ((STRING, 0), (BOOLEAN, 0))) + +OPTION_GROUP_OPTION_VERSIONS_LIST: StaticSchema = ( + 16, + n0, + _OGOVL, + 0, + (_m,), + ((OPTION_VERSION, {_sN: _OV}),), +) + +OPTIONS_CONFLICTS_WITH: StaticSchema = ( + 16, + n0, + _OCW, + 0, + (_m,), + ((STRING, {_sN: _OCN}),), +) + +OPTIONS_DEPENDED_ON: StaticSchema = (16, n0, _ODO, 0, (_m,), ((STRING, {_sN: _ON}),)) + +OPTION_GROUP_OPTION: StaticSchema = ( + 18, + n0, + _OGO, + 0, + ( + _N, + _D, + _EN, + _MEV, + _MRMEV, + _PRo, + _DPe, + _ODO, + _OCW, + _Pe, + _Per, + _RAMEVU, + _VO, + _SOVD, + _OGOSp, + _OGOV, + _CCA, + _CCR, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (OPTIONS_DEPENDED_ON, 0), + (OPTIONS_CONFLICTS_WITH, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (OPTION_GROUP_OPTION_SETTINGS_LIST, 0), + (OPTION_GROUP_OPTION_VERSIONS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +OPTION_GROUP_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _OGOL, + 0, + (_m,), + ((OPTION_GROUP_OPTION, {_sN: _OGO}),), +) + +DESCRIBE_OPTION_GROUP_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DOGOO, + {_sSI: _cOGOM, _smit: None}, + (_OGOp, _Mar), + ((OPTION_GROUP_OPTIONS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_OPTION_GROUP_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _DOGOe, + 0, + DESCRIBE_OPTION_GROUP_OPTIONS_INPUT, + DESCRIBE_OPTION_GROUP_OPTIONS_OUTPUT, + (), +) + +DESCRIBE_OPTION_GROUPS_INPUT: StaticSchema = ( + 18, + n0, + _DOGIe, + {_sSI: _cDOGMo, _smi: None}, + (_OGN, _Fil, _Mar, _MR, _EN, _MEV), + ( + (STRING, 0), + (FILTER_LIST, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + ), +) + +OPTION_GROUPS_LIST: StaticSchema = ( + 16, + n0, + _OGL, + 0, + (_m,), + ((OPTION_GROUP, {_sN: _OG}),), +) + +DESCRIBE_OPTION_GROUPS_OUTPUT: StaticSchema = ( + 18, + n0, + _DOGOes, + {_sSI: _cOG, _smit: None}, + (_OGL, _Mar), + ((OPTION_GROUPS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_OPTION_GROUPS: StaticOperationSchema = ( + 23, + n0, + _DOGe, + 0, + DESCRIBE_OPTION_GROUPS_INPUT, + DESCRIBE_OPTION_GROUPS_OUTPUT, + (OPTION_GROUP_NOT_FOUND_FAULT,), +) + +DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DODBIOI, + {_sSI: _cDODBIOM, _smi: None}, + (_En, _EV, _DBIC, _LM, _AZG, _Vp, _Fil, _MR, _Mar), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +AVAILABILITY_ZONE_LIST: StaticSchema = ( + 16, + n0, + _AZL, + 0, + (_m,), + ((AVAILABILITY_ZONE, {_sN: _AZ}),), +) + +AVAILABLE_ADDITIONAL_STORAGE_VOLUMES_OPTION: StaticSchema = ( + 18, + n0, + _AASVO, + 0, + (_SSAu, _SST, _SIup, _STt, _MSS, _MSSa, _MIi, _MIa, _MIPG, _MIPGa, _MST, _MSTa), + ( + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + ), +) + +AVAILABLE_ADDITIONAL_STORAGE_VOLUMES_OPTION_LIST: StaticSchema = ( + 16, + n0, + _AASVOL, + 0, + (_m,), + ((AVAILABLE_ADDITIONAL_STORAGE_VOLUMES_OPTION, {_sN: _AASVO}),), +) + +AVAILABLE_PROCESSOR_FEATURE: StaticSchema = ( + 18, + n0, + _APF, + 0, + (_N, _DV, _AV), + ((STRING, 0), (STRING, 0), (STRING, 0)), +) + +AVAILABLE_PROCESSOR_FEATURE_LIST: StaticSchema = ( + 16, + n0, + _APFL, + 0, + (_m,), + ((AVAILABLE_PROCESSOR_FEATURE, {_sN: _APF}),), +) + +ORDERABLE_DB_INSTANCE_OPTION: StaticSchema = ( + 18, + n0, + _ODBIO, + 0, + ( + _En, + _EV, + _DBIC, + _LM, + _AZG, + _AZv, + _MAZC, + _RRC, + _Vp, + _SSEu, + _STt, + _SIup, + _SST, + _SEMu, + _SIAMDA, + _SPI, + _MSS, + _MSSa, + _MIPDI, + _MIPDIa, + _MIPG, + _MIPGa, + _MSTPDI, + _MSTPDIa, + _MSTPI, + _MSTPIa, + _APFv, + _SEM, + _SSAu, + _SKA, + _OC, + _SASM, + _SGD, + _SNT, + _SCu, + _SDLV, + _SASV, + _SHE, + _AASVOv, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (AVAILABILITY_ZONE_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (AVAILABLE_PROCESSOR_FEATURE_LIST, 0), + (ENGINE_MODE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (ACTIVITY_STREAM_MODE_LIST, 0), + (BOOLEAN, 0), + (STRING_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (AVAILABLE_ADDITIONAL_STORAGE_VOLUMES_OPTION_LIST, 0), + ), +) + +ORDERABLE_DB_INSTANCE_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _ODBIOL, + 0, + (_m,), + ((ORDERABLE_DB_INSTANCE_OPTION, {_sN: _ODBIO}),), +) + +DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DODBIOO, + {_sSI: _cODBIOM, _smit: None}, + (_ODBIOr, _Mar), + ((ORDERABLE_DB_INSTANCE_OPTIONS_LIST, 0), (STRING, 0)), +) + +DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS: StaticOperationSchema = ( + 23, + n0, + _DODBIO, + 0, + DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_INPUT, + DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_OUTPUT, + (), +) + +DESCRIBE_PENDING_MAINTENANCE_ACTIONS_INPUT: StaticSchema = ( + 18, + n0, + _DPMAI, + {_sSI: _cDPMAM, _smi: None}, + (_RI, _Fil, _Mar, _MR), + ((STRING, 0), (FILTER_LIST, 0), (STRING, 0), (INTEGER_OPTIONAL, 0)), +) + +PENDING_MAINTENANCE_ACTIONS: StaticSchema = ( + 16, + n0, + _PMAe, + 0, + (_m,), + ((RESOURCE_PENDING_MAINTENANCE_ACTIONS, {_sN: _RPMA}),), +) + +DESCRIBE_PENDING_MAINTENANCE_ACTIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DPMAO, + {_sSI: _cPMAM, _smit: None}, + (_PMAe, _Mar), + ((PENDING_MAINTENANCE_ACTIONS, 0), (STRING, 0)), +) + +DESCRIBE_PENDING_MAINTENANCE_ACTIONS: StaticOperationSchema = ( + 23, + n0, + _DPMA, + 0, + DESCRIBE_PENDING_MAINTENANCE_ACTIONS_INPUT, + DESCRIBE_PENDING_MAINTENANCE_ACTIONS_OUTPUT, + (RESOURCE_NOT_FOUND_FAULT,), +) + +DESCRIBE_RESERVED_DB_INSTANCES_INPUT: StaticSchema = ( + 18, + n0, + _DRDBII, + {_sSI: _cDRDBIM, _smi: None}, + (_RDBII, _RDBIOI, _DBIC, _Du, _PD, _OT, _MAZ, _LI, _Fil, _MR, _Mar), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +RECURRING_CHARGE: StaticSchema = ( + 18, + n0, + _RC, + 0, + (_RCA, _RCF), + ((DOUBLE, 0), (STRING, 0)), +) + +RECURRING_CHARGE_LIST: StaticSchema = ( + 16, + n0, + _RCL, + 0, + (_m,), + ((RECURRING_CHARGE, {_sN: _RC}),), +) + +RESERVED_DB_INSTANCE: StaticSchema = ( + 18, + n0, + _RDBI, + 0, + ( + _RDBII, + _RDBIOI, + _DBIC, + _STtar, + _Du, + _FP, + _UP, + _CC, + _DBICn, + _PD, + _OT, + _MAZ, + _Sta, + _RCe, + _RDBIA, + _LI, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (INTEGER, 0), + (DOUBLE, 0), + (DOUBLE, 0), + (STRING, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (RECURRING_CHARGE_LIST, 0), + (STRING, 0), + (STRING, 0), + ), +) + +RESERVED_DB_INSTANCE_LIST: StaticSchema = ( + 16, + n0, + _RDBIL, + 0, + (_m,), + ((RESERVED_DB_INSTANCE, {_sN: _RDBI}),), +) + +DESCRIBE_RESERVED_DB_INSTANCES_OUTPUT: StaticSchema = ( + 18, + n0, + _DRDBIO, + {_sSI: _cRDBIM, _smit: None}, + (_Mar, _RDBIe), + ((STRING, 0), (RESERVED_DB_INSTANCE_LIST, 0)), +) + +RESERVED_DB_INSTANCE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _RDBINFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "ReservedDBInstanceNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DESCRIBE_RESERVED_DB_INSTANCES: StaticOperationSchema = ( + 23, + n0, + _DRDBI, + 0, + DESCRIBE_RESERVED_DB_INSTANCES_INPUT, + DESCRIBE_RESERVED_DB_INSTANCES_OUTPUT, + (RESERVED_DB_INSTANCE_NOT_FOUND_FAULT,), +) + +DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_INPUT: StaticSchema = ( + 18, + n0, + _DRDBIOI, + {_sSI: _cDRDBIOM, _smi: None}, + (_RDBIOI, _DBIC, _Du, _PD, _OT, _MAZ, _Fil, _MR, _Mar), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (FILTER_LIST, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +RESERVED_DB_INSTANCES_OFFERING: StaticSchema = ( + 18, + n0, + _RDBIO, + 0, + (_RDBIOI, _DBIC, _Du, _FP, _UP, _CC, _PD, _OT, _MAZ, _RCe), + ( + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (DOUBLE, 0), + (DOUBLE, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (RECURRING_CHARGE_LIST, 0), + ), +) + +RESERVED_DB_INSTANCES_OFFERING_LIST: StaticSchema = ( + 16, + n0, + _RDBIOL, + 0, + (_m,), + ((RESERVED_DB_INSTANCES_OFFERING, {_sN: _RDBIO}),), +) + +DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_OUTPUT: StaticSchema = ( + 18, + n0, + _DRDBIOO, + {_sSI: _cRDBIOM, _smit: None}, + (_Mar, _RDBIOe), + ((STRING, 0), (RESERVED_DB_INSTANCES_OFFERING_LIST, 0)), +) + +RESERVED_DB_INSTANCES_OFFERING_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _RDBIONFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "ReservedDBInstancesOfferingNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS: StaticOperationSchema = ( + 23, + n0, + _DRDBIOe, + 0, + DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_INPUT, + DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_OUTPUT, + (RESERVED_DB_INSTANCES_OFFERING_NOT_FOUND_FAULT,), +) + +DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _DSVPVI, + {_sSI: _cDSVPVM, _smi: None}, + (_SVPV, _En, _Fil, _DOe, _IAnc, _MR, _Mar), + ( + (STRING, 0), + (STRING, 0), + (FILTER_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +SERVERLESS_V2_PLATFORM_VERSION_INFO: StaticSchema = ( + 18, + n0, + _SVPVI, + 0, + (_SVPV, _SVPVD, _En, _SVFS, _St, _ID), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SERVERLESS_V2_FEATURES_SUPPORT, 0), + (STRING, 0), + (BOOLEAN, 0), + ), +) + +SERVERLESS_V2_PLATFORM_VERSION_LIST: StaticSchema = ( + 16, + n0, + _SVPVL, + 0, + (_m,), + ((SERVERLESS_V2_PLATFORM_VERSION_INFO, 0),), +) + +DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSVPVO, + {_sSI: _cSVPVM, _smit: None}, + (_Mar, _SVPVe), + ((STRING, 0), (SERVERLESS_V2_PLATFORM_VERSION_LIST, 0)), +) + +DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _DSVPV, + 0, + DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_INPUT, + DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_OUTPUT, + (), +) + +DESCRIBE_SOURCE_REGIONS_INPUT: StaticSchema = ( + 18, + n0, + _DSRI, + {_sSI: _cDSRM, _smi: None}, + (_RNe, _MR, _Mar, _Fil), + ((STRING, 0), (INTEGER_OPTIONAL, 0), (STRING, 0), (FILTER_LIST, 0)), +) + +SOURCE_REGION: StaticSchema = ( + 18, + n0, + _SR, + 0, + (_RNe, _End, _St, _SDBIABR), + ((STRING, 0), (STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +SOURCE_REGION_LIST: StaticSchema = ( + 16, + n0, + _SRL, + 0, + (_m,), + ((SOURCE_REGION, {_sN: _SR}),), +) + +DESCRIBE_SOURCE_REGIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DSRO, + {_sSI: _cSRM, _smit: None}, + (_Mar, _SRo), + ((STRING, 0), (SOURCE_REGION_LIST, 0)), +) + +DESCRIBE_SOURCE_REGIONS: StaticOperationSchema = ( + 23, + n0, + _DSR, + 0, + DESCRIBE_SOURCE_REGIONS_INPUT, + DESCRIBE_SOURCE_REGIONS_OUTPUT, + (), +) + +DESCRIBE_TENANT_DATABASES_INPUT: StaticSchema = ( + 18, + n0, + _DTDIe, + {_sSI: _cDTDMo, _smi: None}, + (_DBII, _TDBN, _Fil, _Mar, _MR), + ((STRING, 0), (STRING, 0), (FILTER_LIST, 0), (STRING, 0), (INTEGER_OPTIONAL, 0)), +) + +TENANT_DATABASES_LIST: StaticSchema = ( + 16, + n0, + _TDL, + 0, + (_m,), + ((TENANT_DATABASE, {_sN: _TD}),), +) + +DESCRIBE_TENANT_DATABASES_OUTPUT: StaticSchema = ( + 18, + n0, + _DTDOe, + {_sSI: _cTDM, _smit: None}, + (_Mar, _TDe), + ((STRING, 0), (TENANT_DATABASES_LIST, 0)), +) + +DESCRIBE_TENANT_DATABASES: StaticOperationSchema = ( + 23, + n0, + _DTDe, + 0, + DESCRIBE_TENANT_DATABASES_INPUT, + DESCRIBE_TENANT_DATABASES_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT,), +) + +DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_INPUT: StaticSchema = ( + 18, + n0, + _DVDBIMI, + {_sSI: _cDVDBIMM, _smi: None}, + (_DBII,), + ((STRING, 1),), +) + +DOUBLE_RANGE: StaticSchema = (18, n0, _DR, 0, (_Fr, _To), ((DOUBLE, 0), (DOUBLE, 0))) + +DOUBLE_RANGE_LIST: StaticSchema = ( + 16, + n0, + _DRL, + 0, + (_m,), + ((DOUBLE_RANGE, {_sN: _DR}),), +) + +RANGE: StaticSchema = ( + 18, + n0, + _Ra, + 0, + (_Fr, _To, _Ste), + ((INTEGER, 0), (INTEGER, 0), (INTEGER_OPTIONAL, 0)), +) + +RANGE_LIST: StaticSchema = (16, n0, _RL, 0, (_m,), ((RANGE, {_sN: _Ra}),)) + +VALID_STORAGE_OPTIONS: StaticSchema = ( + 18, + n0, + _VSO, + 0, + (_STt, _SSt, _PI, _ITSR, _PST, _STTIR, _SSAu), + ( + (STRING, 0), + (RANGE_LIST, 0), + (RANGE_LIST, 0), + (DOUBLE_RANGE_LIST, 0), + (RANGE_LIST, 0), + (DOUBLE_RANGE_LIST, 0), + (BOOLEAN, 0), + ), +) + +VALID_STORAGE_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _VSOL, + 0, + (_m,), + ((VALID_STORAGE_OPTIONS, {_sN: _VSO}),), +) + +VALID_VOLUME_OPTIONS: StaticSchema = ( + 18, + n0, + _VVO, + 0, + (_VN, _Sto), + ((STRING, 0), (VALID_STORAGE_OPTIONS_LIST, 0)), +) + +VALID_VOLUME_OPTIONS_LIST: StaticSchema = ( + 16, + n0, + _VVOL, + 0, + (_m,), + ((VALID_VOLUME_OPTIONS, 0),), +) + +VALID_ADDITIONAL_STORAGE_OPTIONS: StaticSchema = ( + 18, + n0, + _VASO, + 0, + (_SASV, _Vo), + ((BOOLEAN, 0), (VALID_VOLUME_OPTIONS_LIST, 0)), +) + +VALID_DB_INSTANCE_MODIFICATIONS_MESSAGE: StaticSchema = ( + 18, + n0, + _VDBIMM, + 0, + (_Sto, _VPF, _SDLV, _ASd), + ( + (VALID_STORAGE_OPTIONS_LIST, 0), + (AVAILABLE_PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN, 0), + (VALID_ADDITIONAL_STORAGE_OPTIONS, 0), + ), +) + +DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _DVDBIMO, + {_sSI: _cDVDBIMR, _smit: None}, + (_VDBIMM,), + ((VALID_DB_INSTANCE_MODIFICATIONS_MESSAGE, 0),), +) + +DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS: StaticOperationSchema = ( + 23, + n0, + _DVDBIM, + 0, + DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_INPUT, + DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT, INVALID_DB_INSTANCE_STATE_FAULT), +) + +DISABLE_HTTP_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _DHEI, + {_sSI: _cDHER, _smi: None}, + (_RAes,), + ((STRING, 1),), +) + +DISABLE_HTTP_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _DHEO, + {_sSI: _cDHERo, _smit: None}, + (_RAes, _HEE), + ((STRING, 0), (BOOLEAN, 0)), +) + +INVALID_RESOURCE_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IRSF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidResourceStateFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DISABLE_HTTP_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _DHE, + 0, + DISABLE_HTTP_ENDPOINT_INPUT, + DISABLE_HTTP_ENDPOINT_OUTPUT, + (INVALID_RESOURCE_STATE_FAULT, RESOURCE_NOT_FOUND_FAULT), +) + +DB_LOG_FILE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBLFNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBLogFileNotFoundFault", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +DOWNLOAD_DB_LOG_FILE_PORTION_INPUT: StaticSchema = ( + 18, + n0, + _DDBLFPI, + {_sSI: _cDDBLFPM, _smi: None}, + (_DBII, _LFN, _Mar, _NOL), + ((STRING, 1), (STRING, 1), (STRING, 0), (INTEGER, 0)), +) + +DOWNLOAD_DB_LOG_FILE_PORTION_OUTPUT: StaticSchema = ( + 18, + n0, + _DDBLFPO, + {_sSI: _cDDBLFPD, _smit: None}, + (_LFD, _Mar, _ADP), + ((SENSITIVE_STRING, 0), (STRING, 0), (BOOLEAN, 0)), +) + +DOWNLOAD_DB_LOG_FILE_PORTION: StaticOperationSchema = ( + 23, + n0, + _DDBLFP, + 0, + DOWNLOAD_DB_LOG_FILE_PORTION_INPUT, + DOWNLOAD_DB_LOG_FILE_PORTION_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_READY_FAULT, + DB_LOG_FILE_NOT_FOUND_FAULT, + ), +) + +ENABLE_HTTP_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _EHEI, + {_sSI: _cEHER, _smi: None}, + (_RAes,), + ((STRING, 1),), +) + +ENABLE_HTTP_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _EHEO, + {_sSI: _cEHERo, _smit: None}, + (_RAes, _HEE), + ((STRING, 0), (BOOLEAN, 0)), +) + +ENABLE_HTTP_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _EHE, + 0, + ENABLE_HTTP_ENDPOINT_INPUT, + ENABLE_HTTP_ENDPOINT_OUTPUT, + (INVALID_RESOURCE_STATE_FAULT, RESOURCE_NOT_FOUND_FAULT), +) + +FAILOVER_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _FDBCI, + {_sSI: _cFDBCM, _smi: None}, + (_DBCI, _TDBII), + ((STRING, 1), (STRING, 0)), +) + +FAILOVER_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _FDBCO, + {_sSI: _cFDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +FAILOVER_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _FDBC, + 0, + FAILOVER_DB_CLUSTER_INPUT, + FAILOVER_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +DB_CLUSTER_IDENTIFIER: StaticSchema = (3, n0, _DBCI, 0) + +FAILOVER_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _FGCI, + {_sSI: _cFGCM, _smi: None}, + (_GCI, _TDCI, _ADL, _Sw), + ( + (GLOBAL_CLUSTER_IDENTIFIER, 1), + (DB_CLUSTER_IDENTIFIER, 1), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +FAILOVER_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _FGCO, + {_sSI: _cFGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +FAILOVER_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _FGC, + 0, + FAILOVER_GLOBAL_CLUSTER_INPUT, + FAILOVER_GLOBAL_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + GLOBAL_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + ), +) + +LIST_TAGS_FOR_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _LTFRI, + {_sSI: _cLTFRM, _smi: None}, + (_RN, _Fil), + ((STRING, 1), (FILTER_LIST, 0)), +) + +LIST_TAGS_FOR_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _LTFRO, + {_sSI: _cTLM, _smit: None}, + (_TL,), + ((TAG_LIST, 0),), +) + +LIST_TAGS_FOR_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _LTFR, + 0, + LIST_TAGS_FOR_RESOURCE_INPUT, + LIST_TAGS_FOR_RESOURCE_OUTPUT, + ( + BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + DB_SHARD_GROUP_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + DB_SNAPSHOT_TENANT_DATABASE_NOT_FOUND_FAULT, + INTEGRATION_NOT_FOUND_FAULT, + TENANT_DATABASE_NOT_FOUND_FAULT, + ), +) + +AUDIT_POLICY_STATE: StaticSchema = ( + 14, + n0, + _APS, + 0, + (_LP, _UP_), + ((-1, {_sV: _l}), (-1, {_sV: _u})), +) + +MODIFY_ACTIVITY_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _MASI, + {_sSI: _cMASR, _smi: None}, + (_RAes, _APS), + ((STRING, 0), (AUDIT_POLICY_STATE, 0)), +) + +MODIFY_ACTIVITY_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _MASO, + {_sSI: _cMASRo, _smit: None}, + (_KKI, _KSN, _St, _Mo, _ENAFI, _PS), + ( + (STRING, 0), + (STRING, 0), + (ACTIVITY_STREAM_STATUS, 0), + (ACTIVITY_STREAM_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (ACTIVITY_STREAM_POLICY_STATUS, 0), + ), +) + +MODIFY_ACTIVITY_STREAM: StaticOperationSchema = ( + 23, + n0, + _MASo, + 0, + MODIFY_ACTIVITY_STREAM_INPUT, + MODIFY_ACTIVITY_STREAM_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + RESOURCE_NOT_FOUND_FAULT, + ), +) + +MODIFY_CERTIFICATES_INPUT: StaticSchema = ( + 18, + n0, + _MCI, + {_sSI: _cMCM, _smi: None}, + (_CIe, _RCO), + ((STRING, 0), (BOOLEAN_OPTIONAL, 0)), +) + +MODIFY_CERTIFICATES_OUTPUT: StaticSchema = ( + 18, + n0, + _MCO, + {_sSI: _cMCR, _smit: None}, + (_Ce,), + ((CERTIFICATE, 0),), +) + +MODIFY_CERTIFICATES: StaticOperationSchema = ( + 23, + n0, + _MCo, + 0, + MODIFY_CERTIFICATES_INPUT, + MODIFY_CERTIFICATES_OUTPUT, + (CERTIFICATE_NOT_FOUND_FAULT,), +) + +INVALID_DB_CLUSTER_CAPACITY_FAULT: StaticSchema = ( + 18, + n0, + _IDBCCF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidDBClusterCapacityFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MODIFY_CURRENT_DB_CLUSTER_CAPACITY_INPUT: StaticSchema = ( + 18, + n0, + _MCDBCCI, + {_sSI: _cMCDBCCM, _smi: None}, + (_DBCI, _C, _SBT, _TA), + ((STRING, 1), (INTEGER_OPTIONAL, 0), (INTEGER_OPTIONAL, 0), (STRING, 0)), +) + +MODIFY_CURRENT_DB_CLUSTER_CAPACITY_OUTPUT: StaticSchema = ( + 18, + n0, + _MCDBCCO, + {_sSI: _cDBCCI, _smit: None}, + (_DBCI, _PC, _CCu, _SBT, _TA), + ( + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + ), +) + +MODIFY_CURRENT_DB_CLUSTER_CAPACITY: StaticOperationSchema = ( + 23, + n0, + _MCDBCC, + 0, + MODIFY_CURRENT_DB_CLUSTER_CAPACITY_INPUT, + MODIFY_CURRENT_DB_CLUSTER_CAPACITY_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_CAPACITY_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + ), +) + +CUSTOM_ENGINE_VERSION_STATUS: StaticSchema = ( + 14, + n0, + _CEVS, + 0, + (_av, _ina, _ier), + ((-1, {_sV: _av}), (-1, {_sV: _ina}), (-1, {_sV: _ier_})), +) + +MODIFY_CUSTOM_DB_ENGINE_VERSION_INPUT: StaticSchema = ( + 18, + n0, + _MCDBEVI, + {_sSI: _cMCDBEVM, _smi: None}, + (_En, _EV, _D, _St), + ( + (CUSTOM_ENGINE_NAME, 1), + (CUSTOM_ENGINE_VERSION, 1), + (DESCRIPTION, 0), + (CUSTOM_ENGINE_VERSION_STATUS, 0), + ), +) + +MODIFY_CUSTOM_DB_ENGINE_VERSION_OUTPUT: StaticSchema = ( + 18, + n0, + _MCDBEVO, + {_sSI: _cDBEV, _smit: None}, + ( + _En, + _MEV, + _EV, + _DIFSBN, + _DIFSP, + _DIF, + _CDBEVM, + _DBPGF, + _DBED, + _DBEVA, + _DBEVD, + _DCS, + _FR, + _Im, + _DBEMT, + _KMSKI, + _CTr, + _SCS, + _SNCS, + _VUT, + _STu, + _ELT, + _SLETCL, + _SRR, + _SEM, + _SFN, + _St, + _SPQ, + _SGD, + _TL, + _SBu, + _SLD, + _SCRWR, + _SCACI, + _SLWF, + _SIu, + _SVFS, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (CUSTOM_DB_ENGINE_VERSION_MANIFEST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (CHARACTER_SET, 0), + (STRING, 0), + (CUSTOM_DB_ENGINE_VERSION_AMI, 0), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (SUPPORTED_CHARACTER_SETS_LIST, 0), + (VALID_UPGRADE_TARGET_LIST, 0), + (SUPPORTED_TIMEZONES_LIST, 0), + (LOG_TYPE_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (ENGINE_MODE_LIST, 0), + (FEATURE_NAME_LIST, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (TAG_LIST, 0), + (BOOLEAN, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (CA_CERTIFICATE_IDENTIFIERS_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + (SERVERLESS_V2_FEATURES_SUPPORT, 0), + ), +) + +MODIFY_CUSTOM_DB_ENGINE_VERSION: StaticOperationSchema = ( + 23, + n0, + _MCDBEV, + 0, + MODIFY_CUSTOM_DB_ENGINE_VERSION_INPUT, + MODIFY_CUSTOM_DB_ENGINE_VERSION_OUTPUT, + ( + CUSTOM_DB_ENGINE_VERSION_NOT_FOUND_FAULT, + INVALID_CUSTOM_DB_ENGINE_VERSION_STATE_FAULT, + ), +) + +END_DATE_TYPE: StaticSchema = ( + 14, + n0, + _EDT, + 0, + (_unl, _lim), + ((-1, {_sV: _unl}), (-1, {_sV: _lim})), +) + +MODIFY_DB_CAPACITY_RESERVATION_INPUT: StaticSchema = ( + 18, + n0, + _MDBCRI, + {_sSI: _cMDBCRR, _smi: None}, + (_DBCRI, _CPAZ, _EDT, _ED), + ( + (DB_CAPACITY_RESERVATION_IDENTIFIER, 1), + (INTEGER_OPTIONAL, 0), + (END_DATE_TYPE, 0), + (T_STAMP, 0), + ), +) + +MODIFY_DB_CAPACITY_RESERVATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBCRO, + {_sSI: _cMDBCRRo, _smit: None}, + (_DBCR,), + ((DB_CAPACITY_RESERVATION, 0),), +) + +MODIFY_DB_CAPACITY_RESERVATION: StaticOperationSchema = ( + 23, + n0, + _MDBCR, + 0, + MODIFY_DB_CAPACITY_RESERVATION_INPUT, + MODIFY_DB_CAPACITY_RESERVATION_OUTPUT, + ( + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + ), +) + +AWS_BACKUP_RECOVERY_POINT_ARN: StaticSchema = (3, n0, _ABRPA, 0) + +CLOUDWATCH_LOGS_EXPORT_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CLEC, + 0, + (_ELTn, _DLT), + ((LOG_TYPE_LIST, 0), (LOG_TYPE_LIST, 0)), +) + +MODIFY_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _MDBCI, + {_sSI: _cMDBCM, _smi: None}, + ( + _DBCI, + _NDBCI, + _AIp, + _BRP, + _DBCPGN, + _VSGIp, + _P, + _MUP, + _OGN, + _PBW, + _PMW, + _EIAMDA, + _BW, + _CLEC, + _EV, + _AMVUl, + _DBIPGN, + _Do, + _DIAMRN, + _SC, + _DP, + _EHE, + _CTTS, + _EGWF, + _DBCIC, + _AS, + _STt, + _Io, + _AMVU, + _NT, + _SVSC, + _MI, + _MRA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _MMUP, + _RMUP, + _ELWF, + _MUSKKI, + _EMn, + _AEMC, + _ABRPA, + _ELD, + _CACI, + _MUAT, + _ELS, + ), + ( + (STRING, 1), + (STRING, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (INTEGER_OPTIONAL, 0), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (LONG_OPTIONAL, 0), + (CLOUDWATCH_LOGS_EXPORT_CONFIGURATION, 0), + (STRING, 0), + (BOOLEAN, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SCALING_CONFIGURATION, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN, 0), + (AWS_BACKUP_RECOVERY_POINT_ARN, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (MASTER_USER_AUTHENTICATION_TYPE, 0), + (STRING, 0), + ), +) + +MODIFY_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBCO, + {_sSI: _cMDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +STORAGE_TYPE_NOT_AVAILABLE_FAULT: StaticSchema = ( + 18, + n0, + _STNAF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "StorageTypeNotAvailableFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MODIFY_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _MDBC, + 0, + MODIFY_DB_CLUSTER_INPUT, + MODIFY_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_ALREADY_EXISTS_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SECURITY_GROUP_STATE_FAULT, + INVALID_DB_SUBNET_GROUP_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_AVAILABLE_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +MODIFY_DB_CLUSTER_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MDBCEI, + {_sSI: _cMDBCEM, _smi: None}, + (_DBCEI, _ET, _SMt, _EMx), + ((STRING, 1), (STRING, 0), (STRING_LIST, 0), (STRING_LIST, 0)), +) + +MODIFY_DB_CLUSTER_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBCEO, + {_sSI: _cDBCE, _smit: None}, + (_DBCEI, _DBCI, _DBCERI, _End, _St, _ET, _CETu, _SMt, _EMx, _DBCEA), + ( + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + (STRING, 0), + ), +) + +MODIFY_DB_CLUSTER_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MDBCE, + 0, + MODIFY_DB_CLUSTER_ENDPOINT_INPUT, + MODIFY_DB_CLUSTER_ENDPOINT_OUTPUT, + ( + DB_CLUSTER_ENDPOINT_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +MODIFY_DB_CLUSTER_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MDBCPGI, + {_sSI: _cMDBCPGM, _smi: None}, + (_DBCPGN, _Par), + ((STRING, 1), (PARAMETERS_LIST, 1)), +) + +MODIFY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBCPGO, + {_sSI: _cDBCPGNM, _smit: None}, + (_DBCPGN,), + ((STRING, 0),), +) + +MODIFY_DB_CLUSTER_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _MDBCPG, + 0, + MODIFY_DB_CLUSTER_PARAMETER_GROUP_INPUT, + MODIFY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MDBCSAI, + {_sSI: _cMDBCSAM, _smi: None}, + (_DBCSI, _AN, _VTA, _VTR), + ((STRING, 1), (STRING, 1), (ATTRIBUTE_VALUE_LIST, 0), (ATTRIBUTE_VALUE_LIST, 0)), +) + +MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBCSAO, + {_sSI: _cMDBCSAR, _smit: None}, + (_DBCSAR,), + ((DB_CLUSTER_SNAPSHOT_ATTRIBUTES_RESULT, 0),), +) + +SHARED_SNAPSHOT_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _SSQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "SharedSnapshotQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MDBCSA, + 0, + MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_INPUT, + MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_OUTPUT, + ( + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + SHARED_SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +DB_UPGRADE_DEPENDENCY_FAILURE_FAULT: StaticSchema = ( + 18, + n0, + _DBUDFF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBUpgradeDependencyFailure", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MODIFY_ADDITIONAL_STORAGE_VOLUME: StaticSchema = ( + 18, + n0, + _MASV, + 0, + (_VN, _AS, _IOPS, _MAS, _ST, _STt, _SFD), + ( + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +MODIFY_ADDITIONAL_STORAGE_VOLUMES_LIST: StaticSchema = ( + 16, + n0, + _MASVL, + 0, + (_m,), + ((MODIFY_ADDITIONAL_STORAGE_VOLUME, 0),), +) + +MODIFY_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _MDBII, + {_sSI: _cMDBIM, _smi: None}, + ( + _DBII, + _AS, + _DBIC, + _DBSGNu, + _DBSGe, + _VSGIp, + _AIp, + _MUP, + _DBPGN, + _BRP, + _PBW, + _PMW, + _MAZ, + _EV, + _AMVUl, + _AMVU, + _LM, + _Io, + _ST, + _OGN, + _NDBII, + _STt, + _TCA, + _TCP, + _CACI, + _Do, + _DF, + _DOo, + _DASA, + _DDI, + _DD, + _CTTS, + _MI, + _DBPNo, + _PA, + _MRA, + _DIAMRN, + _PT, + _EIAMDA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _CLEC, + _PFr, + _UDPF, + _DP, + _MAS, + _CRR, + _RM, + _AM, + _RFAMM, + _ECOI, + _NT, + _ABRPA, + _MMUP, + _RMUP, + _MUSKKI, + _MT, + _DLV, + _En, + _ASVd, + _DBCRI, + _TSag, + _MUAT, + _ELS, + ), + ( + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (DB_SECURITY_GROUP_NAME_LIST, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (BOOLEAN, 0), + (SENSITIVE_STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (CLOUDWATCH_LOGS_EXPORT_CONFIGURATION, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (REPLICA_MODE, 0), + (AUTOMATION_MODE, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (AWS_BACKUP_RECOVERY_POINT_ARN, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (MODIFY_ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (TAG_SPECIFICATION_LIST, 0), + (MASTER_USER_AUTHENTICATION_TYPE, 0), + (STRING, 0), + ), +) + +MODIFY_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBIO, + {_sSI: _cMDBIR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +MODIFY_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _MDBI, + 0, + MODIFY_DB_INSTANCE_INPUT, + MODIFY_DB_INSTANCE_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + BACKUP_POLICY_NOT_FOUND_FAULT, + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_UPGRADE_DEPENDENCY_FAILURE_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SECURITY_GROUP_STATE_FAULT, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +MODIFY_DB_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MDBPGI, + {_sSI: _cMDBPGM, _smi: None}, + (_DBPGN, _Par), + ((STRING, 1), (PARAMETERS_LIST, 1)), +) + +MODIFY_DB_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBPGO, + {_sSI: _cDBPGNM, _smit: None}, + (_DBPGN,), + ((STRING, 0),), +) + +MODIFY_DB_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _MDBPG, + 0, + MODIFY_DB_PARAMETER_GROUP_INPUT, + MODIFY_DB_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +MODIFY_DB_PROXY_INPUT: StaticSchema = ( + 18, + n0, + _MDBPI, + {_sSI: _cMDBPR, _smi: None}, + (_DBPN, _NDBPN, _DAS, _Au, _RTLS, _ICTd, _DL, _RA, _SG), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_NAME, 0), + (DEFAULT_AUTH_SCHEME, 0), + (USER_AUTH_CONFIG_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (ARN, 0), + (STRING_LIST, 0), + ), +) + +MODIFY_DB_PROXY_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBPO, + {_sSI: _cMDBPRo, _smit: None}, + (_DBP,), + ((DB_PROXY, 0),), +) + +MODIFY_DB_PROXY: StaticOperationSchema = ( + 23, + n0, + _MDBP, + 0, + MODIFY_DB_PROXY_INPUT, + MODIFY_DB_PROXY_OUTPUT, + ( + DB_PROXY_ALREADY_EXISTS_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +MODIFY_DB_PROXY_ENDPOINT_INPUT: StaticSchema = ( + 18, + n0, + _MDBPEI, + {_sSI: _cMDBPER, _smi: None}, + (_DBPEN, _NDBPEN, _VSGIp), + ((DB_PROXY_ENDPOINT_NAME, 1), (DB_PROXY_ENDPOINT_NAME, 0), (STRING_LIST, 0)), +) + +MODIFY_DB_PROXY_ENDPOINT_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBPEO, + {_sSI: _cMDBPERo, _smit: None}, + (_DBPE,), + ((DB_PROXY_ENDPOINT, 0),), +) + +MODIFY_DB_PROXY_ENDPOINT: StaticOperationSchema = ( + 23, + n0, + _MDBPE, + 0, + MODIFY_DB_PROXY_ENDPOINT_INPUT, + MODIFY_DB_PROXY_ENDPOINT_OUTPUT, + ( + DB_PROXY_ENDPOINT_ALREADY_EXISTS_FAULT, + DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, + INVALID_DB_PROXY_ENDPOINT_STATE_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +CONNECTION_POOL_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CPCo, + 0, + (_MCP, _MICP, _CBT, _SPF, _IQ), + ( + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING_LIST, 0), + (OPERATOR_SENSITIVE_STRING, 0), + ), +) + +MODIFY_DB_PROXY_TARGET_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MDBPTGI, + {_sSI: _cMDBPTGR, _smi: None}, + (_TGN, _DBPN, _CPC, _NN), + ( + (DB_PROXY_TARGET_GROUP_NAME, 1), + (DB_PROXY_NAME, 1), + (CONNECTION_POOL_CONFIGURATION, 0), + (STRING, 0), + ), +) + +MODIFY_DB_PROXY_TARGET_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBPTGO, + {_sSI: _cMDBPTGRo, _smit: None}, + (_DBPTG,), + ((DB_PROXY_TARGET_GROUP, 0),), +) + +MODIFY_DB_PROXY_TARGET_GROUP: StaticOperationSchema = ( + 23, + n0, + _MDBPTG, + 0, + MODIFY_DB_PROXY_TARGET_GROUP_INPUT, + MODIFY_DB_PROXY_TARGET_GROUP_OUTPUT, + ( + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +RECOMMENDED_ACTION_UPDATE: StaticSchema = ( + 18, + n0, + _RAU, + 0, + (_AI, _St), + ((STRING, 1), (STRING, 1)), +) + +RECOMMENDED_ACTION_UPDATE_LIST: StaticSchema = ( + 16, + n0, + _RAUL, + 0, + (_m,), + ((RECOMMENDED_ACTION_UPDATE, 0),), +) + +MODIFY_DB_RECOMMENDATION_INPUT: StaticSchema = ( + 18, + n0, + _MDBRI, + {_sSI: _cMDBRM, _smi: None}, + (_RIe, _Lo, _St, _RAUe), + ((STRING, 1), (STRING, 0), (STRING, 0), (RECOMMENDED_ACTION_UPDATE_LIST, 0)), +) + +MODIFY_DB_RECOMMENDATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBRO, + {_sSI: _cDBRMo, _smit: None}, + (_DBR,), + ((DB_RECOMMENDATION, 0),), +) + +MODIFY_DB_RECOMMENDATION: StaticOperationSchema = ( + 23, + n0, + _MDBR, + 0, + MODIFY_DB_RECOMMENDATION_INPUT, + MODIFY_DB_RECOMMENDATION_OUTPUT, + (), +) + +MODIFY_DB_SHARD_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MDBSGI, + {_sSI: _cMDBSGM, _smi: None}, + (_DBSGI, _MACU, _MACUi, _CR), + ( + (DB_SHARD_GROUP_IDENTIFIER, 1), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + ), +) + +MODIFY_DB_SHARD_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBSGO, + {_sSI: _cDBSG, _smit: None}, + (_DBSGRI, _DBSGI, _DBCI, _MACU, _MACUi, _CR, _St, _PA, _End, _DBSGAh, _TL), + ( + (STRING, 0), + (DB_SHARD_GROUP_IDENTIFIER, 0), + (STRING, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +MODIFY_DB_SHARD_GROUP: StaticOperationSchema = ( + 23, + n0, + _MDBSG, + 0, + MODIFY_DB_SHARD_GROUP_INPUT, + MODIFY_DB_SHARD_GROUP_OUTPUT, + ( + DB_SHARD_GROUP_ALREADY_EXISTS_FAULT, + DB_SHARD_GROUP_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + ), +) + +MODIFY_DB_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _MDBSI, + {_sSI: _cMDBSM, _smi: None}, + (_DBSIn, _EV, _OGN), + ((STRING, 1), (STRING, 0), (STRING, 0)), +) + +MODIFY_DB_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBSO, + {_sSI: _cMDBSR, _smit: None}, + (_DBS,), + ((DB_SNAPSHOT, 0),), +) + +MODIFY_DB_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _MDBS, + 0, + MODIFY_DB_SNAPSHOT_INPUT, + MODIFY_DB_SNAPSHOT_OUTPUT, + ( + DB_SNAPSHOT_NOT_FOUND_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + ), +) + +MODIFY_DB_SNAPSHOT_ATTRIBUTE_INPUT: StaticSchema = ( + 18, + n0, + _MDBSAI, + {_sSI: _cMDBSAM, _smi: None}, + (_DBSIn, _AN, _VTA, _VTR), + ((STRING, 1), (STRING, 1), (ATTRIBUTE_VALUE_LIST, 0), (ATTRIBUTE_VALUE_LIST, 0)), +) + +MODIFY_DB_SNAPSHOT_ATTRIBUTE_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBSAO, + {_sSI: _cMDBSAR, _smit: None}, + (_DBSAR,), + ((DB_SNAPSHOT_ATTRIBUTES_RESULT, 0),), +) + +MODIFY_DB_SNAPSHOT_ATTRIBUTE: StaticOperationSchema = ( + 23, + n0, + _MDBSA, + 0, + MODIFY_DB_SNAPSHOT_ATTRIBUTE_INPUT, + MODIFY_DB_SNAPSHOT_ATTRIBUTE_OUTPUT, + ( + DB_SNAPSHOT_NOT_FOUND_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + SHARED_SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +MODIFY_DB_SUBNET_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MDBSGIo, + {_sSI: _cMDBSGMo, _smi: None}, + (_DBSGNu, _DBSGDu, _SIubn), + ((STRING, 1), (STRING, 0), (SUBNET_IDENTIFIER_LIST, 1)), +) + +MODIFY_DB_SUBNET_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MDBSGOo, + {_sSI: _cMDBSGR, _smit: None}, + (_DBSGu,), + ((DB_SUBNET_GROUP, 0),), +) + +SUBNET_ALREADY_IN_USE: StaticSchema = ( + 18, + n0, + _SAIU, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "SubnetAlreadyInUse", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +MODIFY_DB_SUBNET_GROUP: StaticOperationSchema = ( + 23, + n0, + _MDBSGo, + 0, + MODIFY_DB_SUBNET_GROUP_INPUT, + MODIFY_DB_SUBNET_GROUP_OUTPUT, + ( + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_QUOTA_EXCEEDED_FAULT, + INVALID_DB_SUBNET_GROUP_STATE_FAULT, + INVALID_SUBNET, + SUBNET_ALREADY_IN_USE, + ), +) + +MODIFY_EVENT_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _MESI, + {_sSI: _cMESM, _smi: None}, + (_SN, _STA, _STo, _ECv, _E), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (EVENT_CATEGORIES_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +MODIFY_EVENT_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _MESO, + {_sSI: _cMESR, _smit: None}, + (_ES,), + ((EVENT_SUBSCRIPTION, 0),), +) + +MODIFY_EVENT_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _MES, + 0, + MODIFY_EVENT_SUBSCRIPTION_INPUT, + MODIFY_EVENT_SUBSCRIPTION_OUTPUT, + ( + EVENT_SUBSCRIPTION_QUOTA_EXCEEDED_FAULT, + SNS_INVALID_TOPIC_FAULT, + SNS_NO_AUTHORIZATION_FAULT, + SNS_TOPIC_ARN_NOT_FOUND_FAULT, + SUBSCRIPTION_CATEGORY_NOT_FOUND_FAULT, + SUBSCRIPTION_NOT_FOUND_FAULT, + ), +) + +MODIFY_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _MGCI, + {_sSI: _cMGCM, _smi: None}, + (_GCI, _NGCI, _DP, _EV, _AMVUl), + ( + (GLOBAL_CLUSTER_IDENTIFIER, 1), + (GLOBAL_CLUSTER_IDENTIFIER, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +MODIFY_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _MGCO, + {_sSI: _cMGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +MODIFY_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _MGC, + 0, + MODIFY_GLOBAL_CLUSTER_INPUT, + MODIFY_GLOBAL_CLUSTER_OUTPUT, + ( + GLOBAL_CLUSTER_ALREADY_EXISTS_FAULT, + GLOBAL_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + ), +) + +MODIFY_INTEGRATION_INPUT: StaticSchema = ( + 18, + n0, + _MII, + {_sSI: _cMIM, _smi: None}, + (_IIn, _INn, _DFa, _D), + ( + (INTEGRATION_IDENTIFIER, 1), + (INTEGRATION_NAME, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + ), +) + +MODIFY_INTEGRATION_OUTPUT: StaticSchema = ( + 18, + n0, + _MIO, + {_sSI: _cI, _smit: None}, + (_SA, _TAa, _INn, _IAn, _KMSKI, _AEC, _St, _Ta, _DFa, _D, _CTr, _Er), + ( + (SOURCE_ARN, 0), + (ARN, 0), + (INTEGRATION_NAME, 0), + (INTEGRATION_ARN, 0), + (STRING, 0), + (ENCRYPTION_CONTEXT_MAP, 0), + (INTEGRATION_STATUS, 0), + (TAG_LIST, 0), + (DATA_FILTER, 0), + (INTEGRATION_DESCRIPTION, 0), + (T_STAMP, 0), + (INTEGRATION_ERROR_LIST, 0), + ), +) + +MODIFY_INTEGRATION: StaticOperationSchema = ( + 23, + n0, + _MIo, + 0, + MODIFY_INTEGRATION_INPUT, + MODIFY_INTEGRATION_OUTPUT, + ( + INTEGRATION_CONFLICT_OPERATION_FAULT, + INTEGRATION_NOT_FOUND_FAULT, + INVALID_INTEGRATION_STATE_FAULT, + ), +) + +OPTION_SETTINGS_LIST: StaticSchema = ( + 16, + n0, + _OSL, + 0, + (_m,), + ((OPTION_SETTING, {_sN: _OS}),), +) + +OPTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _OCp, + 0, + (_ON, _P, _OV, _DBSGMe, _VSGMp, _OSp), + ( + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DB_SECURITY_GROUP_NAME_LIST, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (OPTION_SETTINGS_LIST, 0), + ), +) + +OPTION_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _OCL, + 0, + (_m,), + ((OPTION_CONFIGURATION, {_sN: _OCp}),), +) + +OPTION_NAMES_LIST: StaticSchema = (16, n0, _ONL, 0, (_m,), ((STRING, 0),)) + +MODIFY_OPTION_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _MOGI, + {_sSI: _cMOGM, _smi: None}, + (_OGN, _OTI, _OTR, _AIp), + ((STRING, 1), (OPTION_CONFIGURATION_LIST, 0), (OPTION_NAMES_LIST, 0), (BOOLEAN, 0)), +) + +MODIFY_OPTION_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _MOGO, + {_sSI: _cMOGR, _smit: None}, + (_OG,), + ((OPTION_GROUP, 0),), +) + +MODIFY_OPTION_GROUP: StaticOperationSchema = ( + 23, + n0, + _MOG, + 0, + MODIFY_OPTION_GROUP_INPUT, + MODIFY_OPTION_GROUP_OUTPUT, + (INVALID_OPTION_GROUP_STATE_FAULT, OPTION_GROUP_NOT_FOUND_FAULT), +) + +MODIFY_TENANT_DATABASE_INPUT: StaticSchema = ( + 18, + n0, + _MTDI, + {_sSI: _cMTDM, _smi: None}, + (_DBII, _TDBN, _MUP, _NTDBN, _MMUP, _RMUP, _MUSKKI), + ( + (STRING, 1), + (STRING, 1), + (SENSITIVE_STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + ), +) + +MODIFY_TENANT_DATABASE_OUTPUT: StaticSchema = ( + 18, + n0, + _MTDO, + {_sSI: _cMTDR, _smit: None}, + (_TD,), + ((TENANT_DATABASE, 0),), +) + +MODIFY_TENANT_DATABASE: StaticOperationSchema = ( + 23, + n0, + _MTD, + 0, + MODIFY_TENANT_DATABASE_INPUT, + MODIFY_TENANT_DATABASE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + TENANT_DATABASE_ALREADY_EXISTS_FAULT, + TENANT_DATABASE_NOT_FOUND_FAULT, + ), +) + +PROMOTE_READ_REPLICA_INPUT: StaticSchema = ( + 18, + n0, + _PRRI, + {_sSI: _cPRRM, _smi: None}, + (_DBII, _BRP, _PBW, _TSag), + ((STRING, 1), (INTEGER_OPTIONAL, 0), (STRING, 0), (TAG_SPECIFICATION_LIST, 0)), +) + +PROMOTE_READ_REPLICA_OUTPUT: StaticSchema = ( + 18, + n0, + _PRRO, + {_sSI: _cPRRR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +PROMOTE_READ_REPLICA: StaticOperationSchema = ( + 23, + n0, + _PRR, + 0, + PROMOTE_READ_REPLICA_INPUT, + PROMOTE_READ_REPLICA_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT, INVALID_DB_INSTANCE_STATE_FAULT), +) + +PROMOTE_READ_REPLICA_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _PRRDBCI, + {_sSI: _cPRRDBCM, _smi: None}, + (_DBCI,), + ((STRING, 1),), +) + +PROMOTE_READ_REPLICA_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _PRRDBCO, + {_sSI: _cPRRDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +PROMOTE_READ_REPLICA_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _PRRDBC, + 0, + PROMOTE_READ_REPLICA_DB_CLUSTER_INPUT, + PROMOTE_READ_REPLICA_DB_CLUSTER_OUTPUT, + (DB_CLUSTER_NOT_FOUND_FAULT, INVALID_DB_CLUSTER_STATE_FAULT), +) + +PURCHASE_RESERVED_DB_INSTANCES_OFFERING_INPUT: StaticSchema = ( + 18, + n0, + _PRDBIOI, + {_sSI: _cPRDBIOM, _smi: None}, + (_RDBIOI, _RDBII, _DBICn, _Ta), + ((STRING, 1), (STRING, 0), (INTEGER_OPTIONAL, 0), (TAG_LIST, 0)), +) + +PURCHASE_RESERVED_DB_INSTANCES_OFFERING_OUTPUT: StaticSchema = ( + 18, + n0, + _PRDBIOO, + {_sSI: _cPRDBIOR, _smit: None}, + (_RDBI,), + ((RESERVED_DB_INSTANCE, 0),), +) + +RESERVED_DB_INSTANCE_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _RDBIAEF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "ReservedDBInstanceAlreadyExists", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +RESERVED_DB_INSTANCE_QUOTA_EXCEEDED_FAULT: StaticSchema = ( + 18, + n0, + _RDBIQEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ReservedDBInstanceQuotaExceeded", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +PURCHASE_RESERVED_DB_INSTANCES_OFFERING: StaticOperationSchema = ( + 23, + n0, + _PRDBIO, + 0, + PURCHASE_RESERVED_DB_INSTANCES_OFFERING_INPUT, + PURCHASE_RESERVED_DB_INSTANCES_OFFERING_OUTPUT, + ( + RESERVED_DB_INSTANCE_ALREADY_EXISTS_FAULT, + RESERVED_DB_INSTANCE_QUOTA_EXCEEDED_FAULT, + RESERVED_DB_INSTANCES_OFFERING_NOT_FOUND_FAULT, + ), +) + +REBOOT_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _RDBCI, + {_sSI: _cRDBCM, _smi: None}, + (_DBCI,), + ((STRING, 1),), +) + +REBOOT_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBCO, + {_sSI: _cRDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +REBOOT_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _RDBC, + 0, + REBOOT_DB_CLUSTER_INPUT, + REBOOT_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +REBOOT_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _RDBIIe, + {_sSI: _cRDBIMo, _smi: None}, + (_DBII, _FF), + ((STRING, 1), (BOOLEAN_OPTIONAL, 0)), +) + +REBOOT_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBIOeb, + {_sSI: _cRDBIR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +REBOOT_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _RDBIeb, + 0, + REBOOT_DB_INSTANCE_INPUT, + REBOOT_DB_INSTANCE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + ), +) + +REBOOT_DB_SHARD_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _RDBSGI, + {_sSI: _cRDBSGM, _smi: None}, + (_DBSGI,), + ((DB_SHARD_GROUP_IDENTIFIER, 1),), +) + +REBOOT_DB_SHARD_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBSGO, + {_sSI: _cDBSG, _smit: None}, + (_DBSGRI, _DBSGI, _DBCI, _MACU, _MACUi, _CR, _St, _PA, _End, _DBSGAh, _TL), + ( + (STRING, 0), + (DB_SHARD_GROUP_IDENTIFIER, 0), + (STRING, 0), + (DOUBLE_OPTIONAL, 0), + (DOUBLE_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + ), +) + +REBOOT_DB_SHARD_GROUP: StaticOperationSchema = ( + 23, + n0, + _RDBSG, + 0, + REBOOT_DB_SHARD_GROUP_INPUT, + REBOOT_DB_SHARD_GROUP_OUTPUT, + (DB_SHARD_GROUP_NOT_FOUND_FAULT, INVALID_DB_SHARD_GROUP_STATE_FAULT), +) + +DB_PROXY_TARGET_ALREADY_REGISTERED_FAULT: StaticSchema = ( + 18, + n0, + _DBPTARF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "DBProxyTargetAlreadyRegisteredFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INSUFFICIENT_AVAILABLE_I_PS_IN_SUBNET_FAULT: StaticSchema = ( + 18, + n0, + _IAIPISF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InsufficientAvailableIPsInSubnetFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +REGISTER_DB_PROXY_TARGETS_INPUT: StaticSchema = ( + 18, + n0, + _RDBPTI, + {_sSI: _cRDBPTR, _smi: None}, + (_DBPN, _TGN, _DBIIn, _DBCIl), + ( + (DB_PROXY_NAME, 1), + (DB_PROXY_TARGET_GROUP_NAME, 0), + (STRING_LIST, 0), + (STRING_LIST, 0), + ), +) + +REGISTER_DB_PROXY_TARGETS_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBPTO, + {_sSI: _cRDBPTRo, _smit: None}, + (_DBPTr,), + ((TARGET_LIST, 0),), +) + +REGISTER_DB_PROXY_TARGETS: StaticOperationSchema = ( + 23, + n0, + _RDBPT, + 0, + REGISTER_DB_PROXY_TARGETS_INPUT, + REGISTER_DB_PROXY_TARGETS_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_ALREADY_REGISTERED_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + INSUFFICIENT_AVAILABLE_I_PS_IN_SUBNET_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_PROXY_STATE_FAULT, + ), +) + +REMOVE_FROM_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _RFGCI, + {_sSI: _cRFGCM, _smi: None}, + (_GCI, _DCIb), + ((GLOBAL_CLUSTER_IDENTIFIER, 1), (STRING, 1)), +) + +REMOVE_FROM_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _RFGCO, + {_sSI: _cRFGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +REMOVE_FROM_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _RFGC, + 0, + REMOVE_FROM_GLOBAL_CLUSTER_INPUT, + REMOVE_FROM_GLOBAL_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + GLOBAL_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + ), +) + +DB_CLUSTER_ROLE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBCRNFFl, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBClusterRoleNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +REMOVE_ROLE_FROM_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _RRFDBCI, + {_sSI: _cRRFDBCM, _smi: None}, + (_DBCI, _RA, _FN), + ((STRING, 1), (IAM_ROLE_ARN, 1), (STRING, 0)), +) + +REMOVE_ROLE_FROM_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _RRFDBCO, + {_sSI: _sU, _smit: None}, +) + +REMOVE_ROLE_FROM_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _RRFDBC, + 0, + REMOVE_ROLE_FROM_DB_CLUSTER_INPUT, + REMOVE_ROLE_FROM_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_ROLE_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + ), +) + +DB_INSTANCE_ROLE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _DBIRNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType( + {"code": "DBInstanceRoleNotFound", "httpResponseCode": 404} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +REMOVE_ROLE_FROM_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _RRFDBII, + {_sSI: _cRRFDBIM, _smi: None}, + (_DBII, _RA, _FN), + ((STRING, 1), (STRING, 1), (STRING, 1)), +) + +REMOVE_ROLE_FROM_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _RRFDBIO, + {_sSI: _sU, _smit: None}, +) + +REMOVE_ROLE_FROM_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _RRFDBI, + 0, + REMOVE_ROLE_FROM_DB_INSTANCE_INPUT, + REMOVE_ROLE_FROM_DB_INSTANCE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_INSTANCE_ROLE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + ), +) + +REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_INPUT: StaticSchema = ( + 18, + n0, + _RSIFSI, + {_sSI: _cRSIFSM, _smi: None}, + (_SN, _SI), + ((STRING, 1), (STRING, 1)), +) + +REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _RSIFSO, + {_sSI: _cRSIFSR, _smit: None}, + (_ES,), + ((EVENT_SUBSCRIPTION, 0),), +) + +REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION: StaticOperationSchema = ( + 23, + n0, + _RSIFS, + 0, + REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_INPUT, + REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_OUTPUT, + (SOURCE_NOT_FOUND_FAULT, SUBSCRIPTION_NOT_FOUND_FAULT), +) + +KEY_LIST: StaticSchema = (16, n0, _KL, 0, (_m,), ((STRING, 0),)) + +REMOVE_TAGS_FROM_RESOURCE_INPUT: StaticSchema = ( + 18, + n0, + _RTFRI, + {_sSI: _cRTFRM, _smi: None}, + (_RN, _TK), + ((STRING, 1), (KEY_LIST, 1)), +) + +REMOVE_TAGS_FROM_RESOURCE_OUTPUT: StaticSchema = ( + 18, + n0, + _RTFRO, + {_sSI: _sU, _smit: None}, +) + +REMOVE_TAGS_FROM_RESOURCE: StaticOperationSchema = ( + 23, + n0, + _RTFR, + 0, + REMOVE_TAGS_FROM_RESOURCE_INPUT, + REMOVE_TAGS_FROM_RESOURCE_OUTPUT, + ( + BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PROXY_ENDPOINT_NOT_FOUND_FAULT, + DB_PROXY_NOT_FOUND_FAULT, + DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT, + DB_SHARD_GROUP_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + DB_SNAPSHOT_TENANT_DATABASE_NOT_FOUND_FAULT, + INTEGRATION_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + TENANT_DATABASE_NOT_FOUND_FAULT, + ), +) + +RESET_DB_CLUSTER_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _RDBCPGI, + {_sSI: _cRDBCPGM, _smi: None}, + (_DBCPGN, _RAPe, _Par), + ((STRING, 1), (BOOLEAN, 0), (PARAMETERS_LIST, 0)), +) + +RESET_DB_CLUSTER_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBCPGO, + {_sSI: _cDBCPGNM, _smit: None}, + (_DBCPGN,), + ((STRING, 0),), +) + +RESET_DB_CLUSTER_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _RDBCPG, + 0, + RESET_DB_CLUSTER_PARAMETER_GROUP_INPUT, + RESET_DB_CLUSTER_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +RESET_DB_PARAMETER_GROUP_INPUT: StaticSchema = ( + 18, + n0, + _RDBPGI, + {_sSI: _cRDBPGM, _smi: None}, + (_DBPGN, _RAPe, _Par), + ((STRING, 1), (BOOLEAN, 0), (PARAMETERS_LIST, 0)), +) + +RESET_DB_PARAMETER_GROUP_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBPGO, + {_sSI: _cDBPGNM, _smit: None}, + (_DBPGN,), + ((STRING, 0),), +) + +RESET_DB_PARAMETER_GROUP: StaticOperationSchema = ( + 23, + n0, + _RDBPG, + 0, + RESET_DB_PARAMETER_GROUP_INPUT, + RESET_DB_PARAMETER_GROUP_OUTPUT, + (DB_PARAMETER_GROUP_NOT_FOUND_FAULT, INVALID_DB_PARAMETER_GROUP_STATE_FAULT), +) + +INVALID_S3_BUCKET_FAULT: StaticSchema = ( + 18, + n0, + _ISBF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidS3BucketFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +RESTORE_DB_CLUSTER_FROM_S3_INPUT: StaticSchema = ( + 18, + n0, + _RDBCFSI, + {_sSI: _cRDBCFSM, _smi: None}, + ( + _AZv, + _BRP, + _CSN, + _DN, + _DBCI, + _DBCPGN, + _VSGIp, + _DBSGNu, + _En, + _EV, + _P, + _MU, + _MUP, + _OGN, + _PBW, + _PMW, + _Ta, + _SE, + _KKI, + _EIAMDA, + _SEo, + _SEV, + _SBN, + _SP, + _SIRA, + _BW, + _ECLE, + _DP, + _CTTS, + _Do, + _DIAMRN, + _STt, + _NT, + _SVSC, + _MMUP, + _MUSKKI, + _ELS, + _TSag, + _AR, + ), + ( + (AVAILABILITY_ZONES, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 1), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 1), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 1), + (SENSITIVE_STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (TAG_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (LONG_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, 0), + (DB_CLUSTER_ASSOCIATED_ROLES, 0), + ), +) + +RESTORE_DB_CLUSTER_FROM_S3_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBCFSO, + {_sSI: _cRDBCFSR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +RESTORE_DB_CLUSTER_FROM_S3: StaticOperationSchema = ( + 23, + n0, + _RDBCFS, + 0, + RESTORE_DB_CLUSTER_FROM_S3_INPUT, + RESTORE_DB_CLUSTER_FROM_S3_OUTPUT, + ( + DB_CLUSTER_ALREADY_EXISTS_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_CLUSTER_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_SUBNET_GROUP_STATE_FAULT, + INVALID_S3_BUCKET_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + ), +) + +INSUFFICIENT_DB_CLUSTER_CAPACITY_FAULT: StaticSchema = ( + 18, + n0, + _IDBCCFn, + { + _smith: _c, + _sE: 403, + _aQE: MappingProxyType( + {"code": "InsufficientDBClusterCapacityFault", "httpResponseCode": 403} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_RESTORE_FAULT: StaticSchema = ( + 18, + n0, + _IRF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidRestoreFault", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +RESTORE_DB_CLUSTER_FROM_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _RDBCFSIe, + {_sSI: _cRDBCFSMo, _smi: None}, + ( + _AZv, + _DBCI, + _SIn, + _En, + _EV, + _P, + _DBSGNu, + _DN, + _OGN, + _VSGIp, + _Ta, + _KKI, + _EIAMDA, + _BW, + _ECLE, + _EMn, + _SC, + _DBCPGN, + _DP, + _CTTS, + _Do, + _DIAMRN, + _DBCIC, + _STt, + _Io, + _PA, + _NT, + _SVSC, + _RCCC, + _MI, + _MRA, + _EPI, + _PIKMSKI, + _PIRP, + _BRP, + _PBW, + _ELS, + _TSag, + _EVPCN, + _EIAG, + _AR, + ), + ( + (AVAILABILITY_ZONES, 0), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (TAG_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (LONG_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (STRING, 0), + (SCALING_CONFIGURATION, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION, 0), + (RDS_CUSTOM_CLUSTER_CONFIGURATION, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (DB_CLUSTER_ASSOCIATED_ROLES, 0), + ), +) + +RESTORE_DB_CLUSTER_FROM_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBCFSOe, + {_sSI: _cRDBCFSRo, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +RESTORE_DB_CLUSTER_FROM_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _RDBCFSe, + 0, + RESTORE_DB_CLUSTER_FROM_SNAPSHOT_INPUT, + RESTORE_DB_CLUSTER_FROM_SNAPSHOT_OUTPUT, + ( + DB_CLUSTER_ALREADY_EXISTS_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_CLUSTER_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSUFFICIENT_DB_CLUSTER_CAPACITY_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + INVALID_RESTORE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_INPUT: StaticSchema = ( + 18, + n0, + _RDBCTPITI, + {_sSI: _cRDBCTPITM, _smi: None}, + ( + _DBCI, + _RTe, + _SDBCI, + _RTT, + _ULRT, + _P, + _DBSGNu, + _OGN, + _VSGIp, + _Ta, + _KKI, + _EIAMDA, + _BW, + _ECLE, + _DBCPGN, + _DP, + _CTTS, + _Do, + _DIAMRN, + _DBCIC, + _STt, + _PA, + _Io, + _NT, + _SDCRI, + _SVSC, + _SC, + _EMn, + _RCCC, + _MI, + _MRA, + _EPI, + _PIKMSKI, + _PIRP, + _BRP, + _PBW, + _ELS, + _TSag, + _EVPCN, + _EIAG, + _AR, + ), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (T_STAMP, 0), + (BOOLEAN, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (TAG_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (LONG_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (SERVERLESS_V2_SCALING_CONFIGURATION, 0), + (SCALING_CONFIGURATION, 0), + (STRING, 0), + (RDS_CUSTOM_CLUSTER_CONFIGURATION, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (DB_CLUSTER_ASSOCIATED_ROLES, 0), + ), +) + +RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBCTPITO, + {_sSI: _cRDBCTPITR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +RESTORE_DB_CLUSTER_TO_POINT_IN_TIME: StaticOperationSchema = ( + 23, + n0, + _RDBCTPIT, + 0, + RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_INPUT, + RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_OUTPUT, + ( + DB_CLUSTER_ALREADY_EXISTS_FAULT, + DB_CLUSTER_AUTOMATED_BACKUP_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_CLUSTER_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT, + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSUFFICIENT_DB_CLUSTER_CAPACITY_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT, + INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + INVALID_RESTORE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_INPUT: StaticSchema = ( + 18, + n0, + _RDBIFDBSI, + {_sSI: _cRDBIFDBSM, _smi: None}, + ( + _DBII, + _DBSIn, + _DBIC, + _P, + _AZ, + _DBSGNu, + _MAZ, + _PA, + _AMVU, + _LM, + _DBN, + _En, + _Io, + _ST, + _OGN, + _Ta, + _STt, + _TCA, + _TCP, + _VSGIp, + _Do, + _DF, + _DOo, + _DASA, + _DDI, + _CTTS, + _DIAMRN, + _EIAMDA, + _ECLE, + _PFr, + _UDPF, + _DBPGN, + _DP, + _ECOI, + _NT, + _BTa, + _CIIP, + _AS, + _DBCSI, + _BRP, + _PBW, + _DBCRI, + _DLV, + _CACI, + _ELS, + _ASVd, + _TSag, + _MMUP, + _MUSKKI, + ), + ( + (STRING, 1), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (TAG_LIST, 0), + (STRING, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + ), +) + +RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBIFDBSO, + {_sSI: _cRDBIFDBSR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT: StaticOperationSchema = ( + 23, + n0, + _RDBIFDBS, + 0, + RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_INPUT, + RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + BACKUP_POLICY_NOT_FOUND_FAULT, + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_SNAPSHOT_STATE_FAULT, + INVALID_RESTORE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +RESTORE_DB_INSTANCE_FROM_S3_INPUT: StaticSchema = ( + 18, + n0, + _RDBIFSI, + {_sSI: _cRDBIFSM, _smi: None}, + ( + _DBN, + _DBII, + _AS, + _DBIC, + _En, + _MU, + _MUP, + _DBSGe, + _VSGIp, + _AZ, + _DBSGNu, + _PMW, + _DBPGN, + _BRP, + _PBW, + _P, + _MAZ, + _EV, + _AMVU, + _LM, + _Io, + _ST, + _OGN, + _PA, + _Ta, + _STt, + _SE, + _KKI, + _CTTS, + _MI, + _MRA, + _EIAMDA, + _SEo, + _SEV, + _SBN, + _SP, + _SIRA, + _DIM, + _EPI, + _PIKMSKI, + _PIRP, + _ECLE, + _PFr, + _UDPF, + _DP, + _MAS, + _NT, + _MMUP, + _MUSKKI, + _DBCRI, + _DLV, + _CACI, + _ELS, + _ASVd, + _TSag, + ), + ( + (STRING, 0), + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (SENSITIVE_STRING, 0), + (DB_SECURITY_GROUP_NAME_LIST, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING, 1), + (DATABASE_INSIGHTS_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (TAG_SPECIFICATION_LIST, 0), + ), +) + +RESTORE_DB_INSTANCE_FROM_S3_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBIFSO, + {_sSI: _cRDBIFSR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +RESTORE_DB_INSTANCE_FROM_S3: StaticOperationSchema = ( + 23, + n0, + _RDBIFS, + 0, + RESTORE_DB_INSTANCE_FROM_S3_INPUT, + RESTORE_DB_INSTANCE_FROM_S3_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + BACKUP_POLICY_NOT_FOUND_FAULT, + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_S3_BUCKET_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +POINT_IN_TIME_RESTORE_NOT_ENABLED_FAULT: StaticSchema = ( + 18, + n0, + _PITRNEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "PointInTimeRestoreNotEnabled", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_INPUT: StaticSchema = ( + 18, + n0, + _RDBITPITI, + {_sSI: _cRDBITPITM, _smi: None}, + ( + _SDBII, + _TDBII, + _RTes, + _ULRT, + _DBIC, + _P, + _AZ, + _DBSGNu, + _MAZ, + _PA, + _AMVU, + _LM, + _DBN, + _En, + _Io, + _ST, + _OGN, + _CTTS, + _Ta, + _STt, + _TCA, + _TCP, + _VSGIp, + _Do, + _DIAMRN, + _DF, + _DOo, + _DASA, + _DDI, + _EIAMDA, + _ECLE, + _PFr, + _UDPF, + _DBPGN, + _DP, + _SDRI, + _MAS, + _ECOI, + _NT, + _SDBIABA, + _BTa, + _CIIP, + _AS, + _BRP, + _PBW, + _DBCRI, + _DLV, + _CACI, + _ELS, + _ASVd, + _TSag, + _MMUP, + _MUSKKI, + ), + ( + (STRING, 0), + (STRING, 1), + (T_STAMP, 0), + (BOOLEAN, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (TAG_LIST, 0), + (STRING, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (VPC_SECURITY_GROUP_ID_LIST, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (LOG_TYPE_LIST, 0), + (PROCESSOR_FEATURE_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER_OPTIONAL, 0), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (DB_CAPACITY_RESERVATION_IDENTIFIER, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + (STRING, 0), + (ADDITIONAL_STORAGE_VOLUMES_LIST, 0), + (TAG_SPECIFICATION_LIST, 0), + (BOOLEAN_OPTIONAL, 0), + (STRING, 0), + ), +) + +RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBITPITO, + {_sSI: _cRDBITPITR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +RESTORE_DB_INSTANCE_TO_POINT_IN_TIME: StaticOperationSchema = ( + 23, + n0, + _RDBITPIT, + 0, + RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_INPUT, + RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + BACKUP_POLICY_NOT_FOUND_FAULT, + CERTIFICATE_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_INSTANCE_ALREADY_EXISTS_FAULT, + DB_INSTANCE_AUTOMATED_BACKUP_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_PARAMETER_GROUP_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + DOMAIN_NOT_FOUND_FAULT, + INSTANCE_QUOTA_EXCEEDED_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_RESTORE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + NETWORK_TYPE_NOT_SUPPORTED, + OPTION_GROUP_NOT_FOUND_FAULT, + POINT_IN_TIME_RESTORE_NOT_ENABLED_FAULT, + PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT, + STORAGE_QUOTA_EXCEEDED_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + TENANT_DATABASE_QUOTA_EXCEEDED_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +REVOKE_DB_SECURITY_GROUP_INGRESS_INPUT: StaticSchema = ( + 18, + n0, + _RDBSGII, + {_sSI: _cRDBSGIM, _smi: None}, + (_DBSGN, _CIDRIP, _ECSGN, _ECSGI, _ECSGOI), + ((STRING, 1), (STRING, 0), (STRING, 0), (STRING, 0), (STRING, 0)), +) + +REVOKE_DB_SECURITY_GROUP_INGRESS_OUTPUT: StaticSchema = ( + 18, + n0, + _RDBSGIO, + {_sSI: _cRDBSGIR, _smit: None}, + (_DBSG,), + ((DB_SECURITY_GROUP, 0),), +) + +REVOKE_DB_SECURITY_GROUP_INGRESS: StaticOperationSchema = ( + 23, + n0, + _RDBSGIe, + 0, + REVOKE_DB_SECURITY_GROUP_INGRESS_INPUT, + REVOKE_DB_SECURITY_GROUP_INGRESS_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + DB_SECURITY_GROUP_NOT_FOUND_FAULT, + INVALID_DB_SECURITY_GROUP_STATE_FAULT, + ), +) + +START_ACTIVITY_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _SASI, + {_sSI: _cSASR, _smi: None}, + (_RAes, _Mo, _KKI, _AIp, _ENAFI), + ( + (STRING, 1), + (ACTIVITY_STREAM_MODE, 1), + (STRING, 1), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN_OPTIONAL, 0), + ), +) + +START_ACTIVITY_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _SASO, + {_sSI: _cSASRo, _smit: None}, + (_KKI, _KSN, _St, _Mo, _ENAFI, _AIp), + ( + (STRING, 0), + (STRING, 0), + (ACTIVITY_STREAM_STATUS, 0), + (ACTIVITY_STREAM_MODE, 0), + (BOOLEAN_OPTIONAL, 0), + (BOOLEAN, 0), + ), +) + +START_ACTIVITY_STREAM: StaticOperationSchema = ( + 23, + n0, + _SAS, + 0, + START_ACTIVITY_STREAM_INPUT, + START_ACTIVITY_STREAM_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + RESOURCE_NOT_FOUND_FAULT, + ), +) + +START_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _SDBCIt, + {_sSI: _cSDBCM, _smi: None}, + (_DBCI,), + ((STRING, 1),), +) + +START_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBCO, + {_sSI: _cSDBCR, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +START_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _SDBC, + 0, + START_DB_CLUSTER_INPUT, + START_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SHARD_GROUP_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +START_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _SDBIIt, + {_sSI: _cSDBIM, _smi: None}, + (_DBII, _DBCRI), + ((STRING, 1), (DB_CAPACITY_RESERVATION_IDENTIFIER, 0)), +) + +START_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBIO, + {_sSI: _cSDBIR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +START_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _SDBI, + 0, + START_DB_INSTANCE_INPUT, + START_DB_INSTANCE_OUTPUT, + ( + AUTHORIZATION_NOT_FOUND_FAULT, + DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT, + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS, + DB_SUBNET_GROUP_NOT_FOUND_FAULT, + INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_SUBNET, + INVALID_VPC_NETWORK_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION, + ), +) + +START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT: StaticSchema = ( + 18, + n0, + _SDBIABRI, + {_sSI: _cSDBIABRM, _smi: None}, + (_SDBIA, _BRP, _KKI, _PSU, _Ta), + ( + (STRING, 1), + (INTEGER_OPTIONAL, 0), + (STRING, 0), + (SENSITIVE_STRING, 0), + (TAG_LIST, 0), + ), +) + +START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBIABRO, + {_sSI: _cSDBIABRR, _smit: None}, + (_DBIAB,), + ((DB_INSTANCE_AUTOMATED_BACKUP, 0),), +) + +START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION: StaticOperationSchema = ( + 23, + n0, + _SDBIABRt, + 0, + START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT, + START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT, + ( + DB_INSTANCE_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_INSTANCE_AUTOMATED_BACKUP_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + STORAGE_TYPE_NOT_SUPPORTED_FAULT, + ), +) + +EXPORT_TASK_ALREADY_EXISTS_FAULT: StaticSchema = ( + 18, + n0, + _ETAEF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "ExportTaskAlreadyExists", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +IAM_ROLE_MISSING_PERMISSIONS_FAULT: StaticSchema = ( + 18, + n0, + _IRMPF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "IamRoleMissingPermissions", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +IAM_ROLE_NOT_FOUND_FAULT: StaticSchema = ( + 18, + n0, + _IRNFF, + { + _smith: _c, + _sE: 404, + _aQE: MappingProxyType({"code": "IamRoleNotFound", "httpResponseCode": 404}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_EXPORT_ONLY_FAULT: StaticSchema = ( + 18, + n0, + _IEOF, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType({"code": "InvalidExportOnly", "httpResponseCode": 400}), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +INVALID_EXPORT_SOURCE_STATE_FAULT: StaticSchema = ( + 18, + n0, + _IESSFn, + { + _smith: _c, + _sE: 400, + _aQE: MappingProxyType( + {"code": "InvalidExportSourceState", "httpResponseCode": 400} + ), + }, + (_me,), + ((EXCEPTION_MESSAGE, 0),), +) + +START_EXPORT_TASK_INPUT: StaticSchema = ( + 18, + n0, + _SETI, + {_sSI: _cSETM, _smi: None}, + (_ETI, _SA, _SBN, _IRA, _KKI, _SP, _EO), + ( + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 1), + (STRING, 0), + (STRING_LIST, 0), + ), +) + +START_EXPORT_TASK_OUTPUT: StaticSchema = ( + 18, + n0, + _SETO, + {_sSI: _cET, _smit: None}, + ( + _ETI, + _SA, + _EO, + _STn, + _TST, + _TET, + _SB, + _SP, + _IRA, + _KKI, + _St, + _PP, + _TEDIGB, + _FC, + _WM, + _STo, + ), + ( + (STRING, 0), + (STRING, 0), + (STRING_LIST, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (T_STAMP, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (STRING, 0), + (INTEGER, 0), + (INTEGER, 0), + (STRING, 0), + (STRING, 0), + (EXPORT_SOURCE_TYPE, 0), + ), +) + +START_EXPORT_TASK: StaticOperationSchema = ( + 23, + n0, + _SETt, + 0, + START_EXPORT_TASK_INPUT, + START_EXPORT_TASK_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT, + DB_SNAPSHOT_NOT_FOUND_FAULT, + EXPORT_TASK_ALREADY_EXISTS_FAULT, + IAM_ROLE_MISSING_PERMISSIONS_FAULT, + IAM_ROLE_NOT_FOUND_FAULT, + INVALID_EXPORT_ONLY_FAULT, + INVALID_EXPORT_SOURCE_STATE_FAULT, + INVALID_S3_BUCKET_FAULT, + KMS_KEY_NOT_ACCESSIBLE_FAULT, + ), +) + +STOP_ACTIVITY_STREAM_INPUT: StaticSchema = ( + 18, + n0, + _SASIt, + {_sSI: _cSASRom, _smi: None}, + (_RAes, _AIp), + ((STRING, 1), (BOOLEAN_OPTIONAL, 0)), +) + +STOP_ACTIVITY_STREAM_OUTPUT: StaticSchema = ( + 18, + n0, + _SASOt, + {_sSI: _cSASRoma, _smit: None}, + (_KKI, _KSN, _St), + ((STRING, 0), (STRING, 0), (ACTIVITY_STREAM_STATUS, 0)), +) + +STOP_ACTIVITY_STREAM: StaticOperationSchema = ( + 23, + n0, + _SASt, + 0, + STOP_ACTIVITY_STREAM_INPUT, + STOP_ACTIVITY_STREAM_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + DB_INSTANCE_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + RESOURCE_NOT_FOUND_FAULT, + ), +) + +STOP_DB_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _SDBCIto, + {_sSI: _cSDBCMo, _smi: None}, + (_DBCI,), + ((STRING, 1),), +) + +STOP_DB_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBCOt, + {_sSI: _cSDBCRo, _smit: None}, + (_DBC,), + ((DB_CLUSTER, 0),), +) + +STOP_DB_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _SDBCt, + 0, + STOP_DB_CLUSTER_INPUT, + STOP_DB_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + INVALID_DB_SHARD_GROUP_STATE_FAULT, + ), +) + +STOP_DB_INSTANCE_INPUT: StaticSchema = ( + 18, + n0, + _SDBIIto, + {_sSI: _cSDBIMo, _smi: None}, + (_DBII, _DBSIn, _DFDBCR), + ((STRING, 1), (STRING, 0), (BOOLEAN_OPTIONAL, 0)), +) + +STOP_DB_INSTANCE_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBIOt, + {_sSI: _cSDBIRo, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +STOP_DB_INSTANCE: StaticOperationSchema = ( + 23, + n0, + _SDBIt, + 0, + STOP_DB_INSTANCE_INPUT, + STOP_DB_INSTANCE_OUTPUT, + ( + DB_INSTANCE_NOT_FOUND_FAULT, + DB_SNAPSHOT_ALREADY_EXISTS_FAULT, + INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_DB_INSTANCE_STATE_FAULT, + SNAPSHOT_QUOTA_EXCEEDED_FAULT, + ), +) + +STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT: StaticSchema = ( + 18, + n0, + _SDBIABRIt, + {_sSI: _cSDBIABRMo, _smi: None}, + (_SDBIA,), + ((STRING, 1),), +) + +STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _SDBIABROt, + {_sSI: _cSDBIABRRo, _smit: None}, + (_DBIAB,), + ((DB_INSTANCE_AUTOMATED_BACKUP, 0),), +) + +STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION: StaticOperationSchema = ( + 23, + n0, + _SDBIABRto, + 0, + STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT, + STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT, INVALID_DB_INSTANCE_STATE_FAULT), +) + +SWITCHOVER_TIMEOUT: StaticSchema = (7, n0, _STw, 0) + +SWITCHOVER_BLUE_GREEN_DEPLOYMENT_INPUT: StaticSchema = ( + 18, + n0, + _SBGDI, + {_sSI: _cSBGDR, _smi: None}, + (_BGDI, _STw), + ((BLUE_GREEN_DEPLOYMENT_IDENTIFIER, 1), (SWITCHOVER_TIMEOUT, 0)), +) + +SWITCHOVER_BLUE_GREEN_DEPLOYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _SBGDO, + {_sSI: _cSBGDRo, _smit: None}, + (_BGD,), + ((BLUE_GREEN_DEPLOYMENT, 0),), +) + +SWITCHOVER_BLUE_GREEN_DEPLOYMENT: StaticOperationSchema = ( + 23, + n0, + _SBGD, + 0, + SWITCHOVER_BLUE_GREEN_DEPLOYMENT_INPUT, + SWITCHOVER_BLUE_GREEN_DEPLOYMENT_OUTPUT, + (BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT, INVALID_BLUE_GREEN_DEPLOYMENT_STATE_FAULT), +) + +SWITCHOVER_GLOBAL_CLUSTER_INPUT: StaticSchema = ( + 18, + n0, + _SGCI, + {_sSI: _cSGCM, _smi: None}, + (_GCI, _TDCI), + ((GLOBAL_CLUSTER_IDENTIFIER, 1), (DB_CLUSTER_IDENTIFIER, 1)), +) + +SWITCHOVER_GLOBAL_CLUSTER_OUTPUT: StaticSchema = ( + 18, + n0, + _SGCO, + {_sSI: _cSGCR, _smit: None}, + (_GC,), + ((GLOBAL_CLUSTER, 0),), +) + +SWITCHOVER_GLOBAL_CLUSTER: StaticOperationSchema = ( + 23, + n0, + _SGC, + 0, + SWITCHOVER_GLOBAL_CLUSTER_INPUT, + SWITCHOVER_GLOBAL_CLUSTER_OUTPUT, + ( + DB_CLUSTER_NOT_FOUND_FAULT, + GLOBAL_CLUSTER_NOT_FOUND_FAULT, + INVALID_DB_CLUSTER_STATE_FAULT, + INVALID_GLOBAL_CLUSTER_STATE_FAULT, + ), +) + +SWITCHOVER_READ_REPLICA_INPUT: StaticSchema = ( + 18, + n0, + _SRRI, + {_sSI: _cSRRM, _smi: None}, + (_DBII,), + ((STRING, 1),), +) + +SWITCHOVER_READ_REPLICA_OUTPUT: StaticSchema = ( + 18, + n0, + _SRRO, + {_sSI: _cSRRR, _smit: None}, + (_DBI,), + ((DB_INSTANCE, 0),), +) + +SWITCHOVER_READ_REPLICA: StaticOperationSchema = ( + 23, + n0, + _SRRw, + 0, + SWITCHOVER_READ_REPLICA_INPUT, + SWITCHOVER_READ_REPLICA_OUTPUT, + (DB_INSTANCE_NOT_FOUND_FAULT, INVALID_DB_INSTANCE_STATE_FAULT), +) + +AMAZON_RD_SV19: StaticSchema = ( + 21, + n0, + _ARDS, + { + _aw: MappingProxyType({"name": "rds"}), + _aQ: None, + _aws: MappingProxyType( + { + "sdkId": "RDS", + "arnNamespace": "rds", + "cloudFormationName": "RDS", + "cloudTrailEventSource": "rds.amazonaws.com", + "endpointPrefix": "rds", + } + ), + _sNm: MappingProxyType({"uri": "http://rds.amazonaws.com/doc/2014-10-31/"}), + }, +) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/aio/__init__.py b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/__init__.py new file mode 100644 index 00000000..def779d1 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncRDSClient + from .config import AsyncRDSConfig + +__all__ = ["AsyncRDSClient", "AsyncRDSConfig"] + +_EXPORTS = {"AsyncRDSClient": ".client", "AsyncRDSConfig": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/aio/client.py b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/client.py new file mode 100644 index 00000000..e3029a9c --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/client.py @@ -0,0 +1,5587 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from .config import AsyncRDSConfig, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AddRoleToDBClusterInput, + AddRoleToDBClusterOutput, + AddRoleToDBInstanceInput, + AddRoleToDBInstanceOutput, + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + AddTagsToResourceInput, + AddTagsToResourceOutput, + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + BacktrackDBClusterInput, + BacktrackDBClusterOutput, + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + CopyDBClusterSnapshotInput, + CopyDBClusterSnapshotOutput, + CopyDBParameterGroupInput, + CopyDBParameterGroupOutput, + CopyDBSnapshotInput, + CopyDBSnapshotOutput, + CopyOptionGroupInput, + CopyOptionGroupOutput, + CreateBlueGreenDeploymentInput, + CreateBlueGreenDeploymentOutput, + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + CreateDBClusterEndpointInput, + CreateDBClusterEndpointOutput, + CreateDBClusterInput, + CreateDBClusterOutput, + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + CreateDBClusterSnapshotInput, + CreateDBClusterSnapshotOutput, + CreateDBInstanceInput, + CreateDBInstanceOutput, + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + CreateDBParameterGroupInput, + CreateDBParameterGroupOutput, + CreateDBProxyEndpointInput, + CreateDBProxyEndpointOutput, + CreateDBProxyInput, + CreateDBProxyOutput, + CreateDBSecurityGroupInput, + CreateDBSecurityGroupOutput, + CreateDBShardGroupInput, + CreateDBShardGroupOutput, + CreateDBSnapshotInput, + CreateDBSnapshotOutput, + CreateDBSubnetGroupInput, + CreateDBSubnetGroupOutput, + CreateEventSubscriptionInput, + CreateEventSubscriptionOutput, + CreateGlobalClusterInput, + CreateGlobalClusterOutput, + CreateIntegrationInput, + CreateIntegrationOutput, + CreateOptionGroupInput, + CreateOptionGroupOutput, + CreateTenantDatabaseInput, + CreateTenantDatabaseOutput, + DeleteBlueGreenDeploymentInput, + DeleteBlueGreenDeploymentOutput, + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + DeleteDBClusterEndpointInput, + DeleteDBClusterEndpointOutput, + DeleteDBClusterInput, + DeleteDBClusterOutput, + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + DeleteDBClusterSnapshotInput, + DeleteDBClusterSnapshotOutput, + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + DeleteDBInstanceInput, + DeleteDBInstanceOutput, + DeleteDBParameterGroupInput, + DeleteDBParameterGroupOutput, + DeleteDBProxyEndpointInput, + DeleteDBProxyEndpointOutput, + DeleteDBProxyInput, + DeleteDBProxyOutput, + DeleteDBSecurityGroupInput, + DeleteDBSecurityGroupOutput, + DeleteDBShardGroupInput, + DeleteDBShardGroupOutput, + DeleteDBSnapshotInput, + DeleteDBSnapshotOutput, + DeleteDBSubnetGroupInput, + DeleteDBSubnetGroupOutput, + DeleteEventSubscriptionInput, + DeleteEventSubscriptionOutput, + DeleteGlobalClusterInput, + DeleteGlobalClusterOutput, + DeleteIntegrationInput, + DeleteIntegrationOutput, + DeleteOptionGroupInput, + DeleteOptionGroupOutput, + DeleteTenantDatabaseInput, + DeleteTenantDatabaseOutput, + DeregisterDBProxyTargetsInput, + DeregisterDBProxyTargetsOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + DescribeCertificatesInput, + DescribeCertificatesOutput, + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + DescribeDBClusterEndpointsInput, + DescribeDBClusterEndpointsOutput, + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + DescribeDBClusterSnapshotsInput, + DescribeDBClusterSnapshotsOutput, + DescribeDBClustersInput, + DescribeDBClustersOutput, + DescribeDBEngineVersionsInput, + DescribeDBEngineVersionsOutput, + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + DescribeDBInstancesInput, + DescribeDBInstancesOutput, + DescribeDBLogFilesInput, + DescribeDBLogFilesOutput, + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + DescribeDBParameterGroupsInput, + DescribeDBParameterGroupsOutput, + DescribeDBParametersInput, + DescribeDBParametersOutput, + DescribeDBProxiesInput, + DescribeDBProxiesOutput, + DescribeDBProxyEndpointsInput, + DescribeDBProxyEndpointsOutput, + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + DescribeDBProxyTargetsInput, + DescribeDBProxyTargetsOutput, + DescribeDBRecommendationsInput, + DescribeDBRecommendationsOutput, + DescribeDBSecurityGroupsInput, + DescribeDBSecurityGroupsOutput, + DescribeDBShardGroupsInput, + DescribeDBShardGroupsOutput, + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + DescribeDBSnapshotsInput, + DescribeDBSnapshotsOutput, + DescribeDBSubnetGroupsInput, + DescribeDBSubnetGroupsOutput, + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + DescribeEventCategoriesInput, + DescribeEventCategoriesOutput, + DescribeEventSubscriptionsInput, + DescribeEventSubscriptionsOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeGlobalClustersInput, + DescribeGlobalClustersOutput, + DescribeIntegrationsInput, + DescribeIntegrationsOutput, + DescribeOptionGroupOptionsInput, + DescribeOptionGroupOptionsOutput, + DescribeOptionGroupsInput, + DescribeOptionGroupsOutput, + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + DescribeReservedDBInstancesOutput, + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + DescribeSourceRegionsInput, + DescribeSourceRegionsOutput, + DescribeTenantDatabasesInput, + DescribeTenantDatabasesOutput, + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + DisableHttpEndpointInput, + DisableHttpEndpointOutput, + DownloadDBLogFilePortionInput, + DownloadDBLogFilePortionOutput, + EnableHttpEndpointInput, + EnableHttpEndpointOutput, + FailoverDBClusterInput, + FailoverDBClusterOutput, + FailoverGlobalClusterInput, + FailoverGlobalClusterOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ModifyActivityStreamInput, + ModifyActivityStreamOutput, + ModifyCertificatesInput, + ModifyCertificatesOutput, + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + ModifyDBClusterEndpointInput, + ModifyDBClusterEndpointOutput, + ModifyDBClusterInput, + ModifyDBClusterOutput, + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + ModifyDBInstanceInput, + ModifyDBInstanceOutput, + ModifyDBParameterGroupInput, + ModifyDBParameterGroupOutput, + ModifyDBProxyEndpointInput, + ModifyDBProxyEndpointOutput, + ModifyDBProxyInput, + ModifyDBProxyOutput, + ModifyDBProxyTargetGroupInput, + ModifyDBProxyTargetGroupOutput, + ModifyDBRecommendationInput, + ModifyDBRecommendationOutput, + ModifyDBShardGroupInput, + ModifyDBShardGroupOutput, + ModifyDBSnapshotAttributeInput, + ModifyDBSnapshotAttributeOutput, + ModifyDBSnapshotInput, + ModifyDBSnapshotOutput, + ModifyDBSubnetGroupInput, + ModifyDBSubnetGroupOutput, + ModifyEventSubscriptionInput, + ModifyEventSubscriptionOutput, + ModifyGlobalClusterInput, + ModifyGlobalClusterOutput, + ModifyIntegrationInput, + ModifyIntegrationOutput, + ModifyOptionGroupInput, + ModifyOptionGroupOutput, + ModifyTenantDatabaseInput, + ModifyTenantDatabaseOutput, + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + PromoteReadReplicaInput, + PromoteReadReplicaOutput, + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + RebootDBClusterInput, + RebootDBClusterOutput, + RebootDBInstanceInput, + RebootDBInstanceOutput, + RebootDBShardGroupInput, + RebootDBShardGroupOutput, + RegisterDBProxyTargetsInput, + RegisterDBProxyTargetsOutput, + RemoveFromGlobalClusterInput, + RemoveFromGlobalClusterOutput, + RemoveRoleFromDBClusterInput, + RemoveRoleFromDBClusterOutput, + RemoveRoleFromDBInstanceInput, + RemoveRoleFromDBInstanceOutput, + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + RemoveTagsFromResourceInput, + RemoveTagsFromResourceOutput, + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + ResetDBParameterGroupInput, + ResetDBParameterGroupOutput, + RestoreDBClusterFromS3Input, + RestoreDBClusterFromS3Output, + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + RestoreDBInstanceFromS3Input, + RestoreDBInstanceFromS3Output, + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + StartActivityStreamInput, + StartActivityStreamOutput, + StartDBClusterInput, + StartDBClusterOutput, + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + StartDBInstanceInput, + StartDBInstanceOutput, + StartExportTaskInput, + StartExportTaskOutput, + StopActivityStreamInput, + StopActivityStreamOutput, + StopDBClusterInput, + StopDBClusterOutput, + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + StopDBInstanceInput, + StopDBInstanceOutput, + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + SwitchoverGlobalClusterInput, + SwitchoverGlobalClusterOutput, + SwitchoverReadReplicaInput, + SwitchoverReadReplicaOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncRDSClient(AsyncClient[AsyncRDSConfig]): + """ + Amazon Relational Database Service (Amazon RDS) is a web service that + makes it easier to set up, operate, and scale a relational database in + the cloud. It provides cost-efficient, resizeable capacity for an + industry-standard relational database and manages common database + administration tasks, freeing up developers to focus on what makes their + applications and businesses unique. + + Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, + PostgreSQL, Microsoft SQL Server, Oracle, Db2, or Amazon Aurora database + server. These capabilities mean that the code, applications, and tools + you already use today with your existing databases work with Amazon RDS + without modification. Amazon RDS automatically backs up your database + and maintains the database software that powers your DB instance. Amazon + RDS is flexible: you can scale your DB instance's compute resources and + storage capacity to meet your application's demand. As with all Amazon + Web Services, there are no up-front investments, and you pay only for + the resources you use. + + This interface reference for Amazon RDS contains documentation for a + programming or command line interface you can use to manage Amazon RDS. + Amazon RDS is asynchronous, which means that some interfaces might + require techniques such as polling or callback functions to determine + when a command has been applied. In this reference, the parameter + descriptions indicate whether a command is applied immediately, on the + next instance reboot, or during the maintenance window. The reference + structure is as follows, and we list following some related topics from + the user guide. + + **Amazon RDS API Reference** + + - For the alphabetical list of API actions, see [API + Actions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Operations.html). + + - For the alphabetical list of data types, see [Data + Types](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Types.html). + + - For a list of common query parameters, see [Common + Parameters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonParameters.html). + + - For descriptions of the error codes, see [Common + Errors](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonErrors.html). + + **Amazon RDS User Guide** + + - For a summary of the Amazon RDS interfaces, see [Available RDS + Interfaces](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Interfaces). + + - For more information about how to use the Query API, see [Using the + Query + API](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + async def add_role_to_db_cluster( + self, input: AddRoleToDBClusterInput, plugins: list[Plugin] | None = None + ) -> AddRoleToDBClusterOutput: + """ + Associates an Identity and Access Management (IAM) role with a DB + cluster. + + Args: + input: + An instance of `AddRoleToDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToDBClusterOutput`. + """ + return await self._invoke(input, _models.ADD_ROLE_TO_DB_CLUSTER, [], plugins) + + async def add_role_to_db_instance( + self, input: AddRoleToDBInstanceInput, plugins: list[Plugin] | None = None + ) -> AddRoleToDBInstanceOutput: + """ + Associates an Amazon Web Services Identity and Access Management (IAM) + role with a DB instance. + + Note: + To add a role to a DB instance, the status of the DB instance must be + `available`. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `AddRoleToDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToDBInstanceOutput`. + """ + return await self._invoke(input, _models.ADD_ROLE_TO_DB_INSTANCE, [], plugins) + + async def add_source_identifier_to_subscription( + self, + input: AddSourceIdentifierToSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> AddSourceIdentifierToSubscriptionOutput: + """ + Adds a source identifier to an existing RDS event notification + subscription. + + Args: + input: + An instance of `AddSourceIdentifierToSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddSourceIdentifierToSubscriptionOutput`. + """ + return await self._invoke( + input, _models.ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION, [], plugins + ) + + async def add_tags_to_resource( + self, input: AddTagsToResourceInput, plugins: list[Plugin] | None = None + ) -> AddTagsToResourceOutput: + """ + Adds metadata tags to an Amazon RDS resource. These tags can also be + used with cost allocation reporting to track cost associated with Amazon + RDS resources, or used in a Condition statement in an IAM policy for + Amazon RDS. + + For an overview on tagging your relational database resources, see + [Tagging Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html). + + Args: + input: + An instance of `AddTagsToResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToResourceOutput`. + """ + return await self._invoke(input, _models.ADD_TAGS_TO_RESOURCE, [], plugins) + + async def apply_pending_maintenance_action( + self, + input: ApplyPendingMaintenanceActionInput, + plugins: list[Plugin] | None = None, + ) -> ApplyPendingMaintenanceActionOutput: + """ + Applies a pending maintenance action to a resource (for example, to a DB + instance). + + Args: + input: + An instance of `ApplyPendingMaintenanceActionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ApplyPendingMaintenanceActionOutput`. + """ + return await self._invoke( + input, _models.APPLY_PENDING_MAINTENANCE_ACTION, [], plugins + ) + + async def authorize_db_security_group_ingress( + self, + input: AuthorizeDBSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> AuthorizeDBSecurityGroupIngressOutput: + """ + Enables ingress to a DBSecurityGroup using one of two forms of + authorization. First, EC2 or VPC security groups can be added to the + DBSecurityGroup if the application using the database is running on EC2 + or VPC instances. Second, IP ranges are available if the application + accessing your database is running on the internet. Required parameters + for this API are one of CIDR range, EC2SecurityGroupId for VPC, or + (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or + EC2SecurityGroupId for non-VPC). + + You can't authorize ingress from an EC2 security group in one Amazon + Web Services Region to an Amazon RDS DB instance in another. You can't + authorize ingress from a VPC security group in one VPC to an Amazon RDS + DB instance in another. + + For an overview of CIDR ranges, go to the [Wikipedia + Tutorial](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `AuthorizeDBSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeDBSecurityGroupIngressOutput`. + """ + return await self._invoke( + input, _models.AUTHORIZE_DB_SECURITY_GROUP_INGRESS, [], plugins + ) + + async def backtrack_db_cluster( + self, input: BacktrackDBClusterInput, plugins: list[Plugin] | None = None + ) -> BacktrackDBClusterOutput: + """ + Backtracks a DB cluster to a specific time, without creating a new DB + cluster. + + For more information on backtracking, see [Backtracking an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html) + in the *Amazon Aurora User Guide*. + + Note: + This action applies only to Aurora MySQL DB clusters. + + Args: + input: + An instance of `BacktrackDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BacktrackDBClusterOutput`. + """ + return await self._invoke(input, _models.BACKTRACK_DB_CLUSTER, [], plugins) + + async def cancel_db_capacity_reservation( + self, + input: CancelDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> CancelDBCapacityReservationOutput: + """ + Cancels a DB capacity reservation. Amazon RDS changes the state of the + reservation to `cancelled` and stops reporting available capacity for + it. Amazon RDS then releases the reserved capacity. + + A DB instance that uses the reservation keeps running. It continues on + unreserved capacity, and Amazon RDS doesn't stop it or modify it. + However, Amazon RDS no longer reserves capacity for the DB instance. If + Amazon RDS later moves the DB instance to different hardware, for + example during hardware maintenance, that move can fail when the Amazon + Web Services Region has insufficient capacity for the DB instance class. + + You can't cancel a reservation in the `active` state during a capacity + commitment. The response of `DescribeDBCapacityReservations` reports the + end of the commitment in `CommitmentInfo`. + + Constraints: + + - The reservation must be in the `active`, `assessing`, or `delayed` + state. + + - The reservation must not be past its end date. + + Args: + input: + An instance of `CancelDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelDBCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.CANCEL_DB_CAPACITY_RESERVATION, [], plugins + ) + + async def cancel_export_task( + self, input: CancelExportTaskInput, plugins: list[Plugin] | None = None + ) -> CancelExportTaskOutput: + """ + Cancels an export task in progress that is exporting a snapshot or + cluster to Amazon S3. Any data that has already been written to the S3 + bucket isn't removed. + + Args: + input: + An instance of `CancelExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelExportTaskOutput`. + """ + return await self._invoke(input, _models.CANCEL_EXPORT_TASK, [], plugins) + + async def copy_db_cluster_parameter_group( + self, + input: CopyDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> CopyDBClusterParameterGroupOutput: + """ + Copies the specified DB cluster parameter group. + + Note: + You can't copy a default DB cluster parameter group. Instead, create a + new custom DB cluster parameter group, which copies the default + parameters and values for the specified DB cluster parameter group + family. + + Args: + input: + An instance of `CopyDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBClusterParameterGroupOutput`. + """ + return await self._invoke( + input, _models.COPY_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + async def copy_db_cluster_snapshot( + self, input: CopyDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> CopyDBClusterSnapshotOutput: + """ + Copies a snapshot of a DB cluster. + + To copy a DB cluster snapshot from a shared manual DB cluster snapshot, + `SourceDBClusterSnapshotIdentifier` must be the Amazon Resource Name + (ARN) of the shared DB cluster snapshot. + + You can copy an encrypted DB cluster snapshot from another Amazon Web + Services Region. In that case, the Amazon Web Services Region where you + call the `CopyDBClusterSnapshot` operation is the destination Amazon Web + Services Region for the encrypted DB cluster snapshot to be copied to. + To copy an encrypted DB cluster snapshot from another Amazon Web + Services Region, you must provide the following values: + + - `KmsKeyId` - The Amazon Web Services Key Management System (Amazon Web + Services KMS) key identifier for the key to use to encrypt the copy of + the DB cluster snapshot in the destination Amazon Web Services Region. + + - `TargetDBClusterSnapshotIdentifier` - The identifier for the new copy + of the DB cluster snapshot in the destination Amazon Web Services + Region. + + - `SourceDBClusterSnapshotIdentifier` - The DB cluster snapshot + identifier for the encrypted DB cluster snapshot to be copied. This + identifier must be in the ARN format for the source Amazon Web + Services Region and is the same value as the + `SourceDBClusterSnapshotIdentifier` in the presigned URL. + + To cancel the copy operation once it is in progress, delete the target + DB cluster snapshot identified by `TargetDBClusterSnapshotIdentifier` + while that DB cluster snapshot is in \"copying\" status. + + For more information on copying encrypted Amazon Aurora DB cluster + snapshots from one Amazon Web Services Region to another, see [Copying a + Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CopySnapshot.html) + in the *Amazon Aurora User Guide*. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CopyDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBClusterSnapshotOutput`. + """ + return await self._invoke(input, _models.COPY_DB_CLUSTER_SNAPSHOT, [], plugins) + + async def copy_db_parameter_group( + self, input: CopyDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> CopyDBParameterGroupOutput: + """ + Copies the specified DB parameter group. + + Note: + You can't copy a default DB parameter group. Instead, create a new + custom DB parameter group, which copies the default parameters and + values for the specified DB parameter group family. + + Args: + input: + An instance of `CopyDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBParameterGroupOutput`. + """ + return await self._invoke(input, _models.COPY_DB_PARAMETER_GROUP, [], plugins) + + async def copy_db_snapshot( + self, input: CopyDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> CopyDBSnapshotOutput: + """ + Copies the specified DB snapshot. The source DB snapshot must be in the + `available` state. + + You can copy a snapshot from one Amazon Web Services Region to another. + In that case, the Amazon Web Services Region where you call the + `CopyDBSnapshot` operation is the destination Amazon Web Services Region + for the DB snapshot copy. + + This command doesn't apply to RDS Custom. + + For more information about copying snapshots, see [Copying a DB + Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html#USER_CopyDBSnapshot) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CopyDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBSnapshotOutput`. + """ + return await self._invoke(input, _models.COPY_DB_SNAPSHOT, [], plugins) + + async def copy_option_group( + self, input: CopyOptionGroupInput, plugins: list[Plugin] | None = None + ) -> CopyOptionGroupOutput: + """ + Copies the specified option group. + + Args: + input: + An instance of `CopyOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyOptionGroupOutput`. + """ + return await self._invoke(input, _models.COPY_OPTION_GROUP, [], plugins) + + async def create_blue_green_deployment( + self, input: CreateBlueGreenDeploymentInput, plugins: list[Plugin] | None = None + ) -> CreateBlueGreenDeploymentOutput: + """ + Creates a blue/green deployment. + + A blue/green deployment creates a staging environment that copies the + production environment. In a blue/green deployment, the blue environment + is the current production environment. The green environment is the + staging environment, and it stays in sync with the current production + environment. + + You can make changes to the databases in the green environment without + affecting production workloads. For example, you can upgrade the major + or minor DB engine version, change database parameters, or make schema + changes in the staging environment. You can thoroughly test changes in + the green environment. When ready, you can switch over the environments + to promote the green environment to be the new production environment. + The switchover typically takes under a minute. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBlueGreenDeploymentOutput`. + """ + return await self._invoke( + input, _models.CREATE_BLUE_GREEN_DEPLOYMENT, [], plugins + ) + + async def create_custom_db_engine_version( + self, + input: CreateCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateCustomDBEngineVersionOutput: + """ + Creates a custom DB engine version (CEV). + + Args: + input: + An instance of `CreateCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomDBEngineVersionOutput`. + """ + return await self._invoke( + input, _models.CREATE_CUSTOM_DB_ENGINE_VERSION, [], plugins + ) + + async def create_db_capacity_reservation( + self, + input: CreateDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBCapacityReservationOutput: + """ + Creates a DB capacity reservation. A DB capacity reservation reserves + compute and memory capacity for DB instances of one DB instance class + and one database engine. Amazon RDS reserves that capacity in each + Availability Zone that you specify. + + Amazon RDS reserves the same amount of capacity in every Availability + Zone in the request. You set that amount with + `CapacityPerAvailabilityZone`, and you set the Availability Zones with + `AvailabilityZones`. The total reserved capacity is + `CapacityPerAvailabilityZone` multiplied by the number of Availability + Zones. + + Specify `StartDate` and `CommitmentDuration` together to create a + future-dated reservation. A future-dated reservation reserves capacity + for a period that starts later. Amazon RDS holds that capacity for the + length of the commitment. + + A future-dated reservation has the following additional constraints: + + - `DBInstanceClass` must be a `db.c`, `db.m`, `db.r`, `db.t`, or `db.x` + DB instance class. The letter after `db.` gives the DB instance class + family. For example, `db.x2g.xlarge` qualifies, and `db.z1d.xlarge` + doesn't. + + - If `DBInstanceClass` is a `db.m` or `db.r` DB instance class, it must + be from generation 7 or later. The digit after the family letter gives + the generation. For example, `db.m7g.xlarge` qualifies, and + `db.m5.xlarge` doesn't. A `db.c`, `db.t`, or `db.x` DB instance class + has no generation requirement. + + - The reserved capacity must total at least 32 vCPUs in each + Availability Zone. Multiply `CapacityPerAvailabilityZone` by the + number of vCPUs of the DB instance class. The product must be 32 or + more. + + - `CommitmentDuration` must be at least 14 days. For a `db.x` DB + instance class, it must be at least 84 days. + + - `StartDate` must be from 5 to 120 days in the future. + + Therefore, a DB instance class with 2 vCPUs needs a + `CapacityPerAvailabilityZone` of 16 or more, a class with 4 vCPUs needs + 8 or more, a class with 8 vCPUs needs 4 or more, and a class with 16 + vCPUs needs 2 or more. For the number of vCPUs of each DB instance + class, see [DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Note: + You can't modify a future-dated reservation before it starts. You + can't cancel a future-dated reservation in the `scheduled` state. You + can't cancel a reservation in the `active` state during its capacity + commitment. Therefore, you can't cancel a future-dated reservation from + the time that Amazon RDS schedules it until the commitment ends. + + Args: + input: + An instance of `CreateDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.CREATE_DB_CAPACITY_RESERVATION, [], plugins + ) + + async def create_db_cluster( + self, input: CreateDBClusterInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterOutput: + """ + Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster. + + If you create an Aurora DB cluster, the request creates an empty + cluster. You must explicitly create the writer instance for your DB + cluster using the + [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) + operation. If you create a Multi-AZ DB cluster, the request creates a + writer and two reader DB instances for you, each in a different + Availability Zone. + + You can use the `ReplicationSourceIdentifier` parameter to create an + Amazon Aurora DB cluster as a read replica of another DB cluster or + Amazon RDS for MySQL or PostgreSQL DB instance. For more information + about Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + You can also use the `ReplicationSourceIdentifier` parameter to create a + Multi-AZ DB cluster read replica with an RDS for MySQL or PostgreSQL DB + instance as the source. For more information about Multi-AZ DB clusters, + see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + You can use the `WithExpressConfiguration` parameter to create an Aurora + DB Cluster with express configuration and create cluster in seconds. + Express configuration provides a cluster with a writer instance and + feature specific values set to all other input parameters of this API. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster. Each associated role lets the DB cluster access other + Amazon Web Services on your behalf, such as Amazon S3 for data import + and export, or Amazon Web Services Lambda for invoking functions. + + Args: + input: + An instance of `CreateDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_CLUSTER, [], plugins) + + async def create_db_cluster_endpoint( + self, input: CreateDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterEndpointOutput: + """ + Creates a new custom endpoint and associates it with an Amazon Aurora DB + cluster. + + Note: + This action applies only to Aurora DB clusters. + + Args: + input: + An instance of `CreateDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterEndpointOutput`. + """ + return await self._invoke( + input, _models.CREATE_DB_CLUSTER_ENDPOINT, [], plugins + ) + + async def create_db_cluster_parameter_group( + self, + input: CreateDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBClusterParameterGroupOutput: + """ + Creates a new DB cluster parameter group. + + Parameters in a DB cluster parameter group apply to all of the instances + in a DB cluster. + + A DB cluster parameter group is initially created with the default + parameters for the database engine used by instances in the DB cluster. + To provide custom values for any of the parameters, you must modify the + group after creating it using `ModifyDBClusterParameterGroup`. Once + you've created a DB cluster parameter group, you need to associate it + with your DB cluster using `ModifyDBCluster`. + + When you associate a new DB cluster parameter group with a running + Aurora DB cluster, reboot the DB instances in the DB cluster without + failover for the new DB cluster parameter group and associated settings + to take effect. + + When you associate a new DB cluster parameter group with a running + Multi-AZ DB cluster, reboot the DB cluster without failover for the new + DB cluster parameter group and associated settings to take effect. + + Warning: + After you create a DB cluster parameter group, you should wait at least + 5 minutes before creating your first DB cluster that uses that DB + cluster parameter group as the default parameter group. This allows + Amazon RDS to fully complete the create action before the DB cluster + parameter group is used as the default for a new DB cluster. This is + especially important for parameters that are critical when creating the + default database for a DB cluster, such as the character set for the + default database defined by the `character_set_database` parameter. You + can use the *Parameter Groups* option of the [Amazon RDS + console](https://console.aws.amazon.com/rds/) or the + `DescribeDBClusterParameters` operation to verify that your DB cluster + parameter group has been created or modified. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterParameterGroupOutput`. + """ + return await self._invoke( + input, _models.CREATE_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + async def create_db_cluster_snapshot( + self, input: CreateDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterSnapshotOutput: + """ + Creates a snapshot of a DB cluster. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterSnapshotOutput`. + """ + return await self._invoke( + input, _models.CREATE_DB_CLUSTER_SNAPSHOT, [], plugins + ) + + async def create_db_instance( + self, input: CreateDBInstanceInput, plugins: list[Plugin] | None = None + ) -> CreateDBInstanceOutput: + """ + Creates a new DB instance. + + The new DB instance can be an RDS DB instance, or it can be a DB + instance in an Aurora DB cluster. For an Aurora DB cluster, you can call + this operation multiple times to add more than one DB instance to the + cluster. + + For more information about creating an RDS DB instance, see [Creating an + Amazon RDS DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) + in the *Amazon RDS User Guide*. + + For more information about creating a DB instance in an Aurora DB + cluster, see [Creating an Amazon Aurora DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBInstanceOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_INSTANCE, [], plugins) + + async def create_db_instance_read_replica( + self, + input: CreateDBInstanceReadReplicaInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBInstanceReadReplicaOutput: + """ + Creates a new DB instance that acts as a read replica for an existing + source DB instance or Multi-AZ DB cluster. You can create a read replica + for a DB instance running Db2, MariaDB, MySQL, Oracle, PostgreSQL, or + SQL Server. You can create a read replica for a Multi-AZ DB cluster + running MySQL or PostgreSQL. For more information, see [Working with + read + replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) + and [Migrating from a Multi-AZ DB cluster to a DB instance using a read + replica](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html#multi-az-db-clusters-migrating-to-instance-with-read-replica) + in the *Amazon RDS User Guide*. + + Amazon Aurora doesn't support this operation. To create a DB instance + for an Aurora DB cluster, use the `CreateDBInstance` operation. + + RDS creates read replicas with backups disabled. All other attributes + (including DB security groups and DB parameter groups) are inherited + from the source DB instance or cluster, except as specified. + + Warning: + Your source DB instance or cluster must have backup retention enabled. + + Args: + input: + An instance of `CreateDBInstanceReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBInstanceReadReplicaOutput`. + """ + return await self._invoke( + input, _models.CREATE_DB_INSTANCE_READ_REPLICA, [], plugins + ) + + async def create_db_parameter_group( + self, input: CreateDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBParameterGroupOutput: + """ + Creates a new DB parameter group. + + A DB parameter group is initially created with the default parameters + for the database engine used by the DB instance. To provide custom + values for any of the parameters, you must modify the group after + creating it using `ModifyDBParameterGroup`. Once you've created a DB + parameter group, you need to associate it with your DB instance using + `ModifyDBInstance`. When you associate a new DB parameter group with a + running DB instance, you need to reboot the DB instance without failover + for the new DB parameter group and associated settings to take effect. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `CreateDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBParameterGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_PARAMETER_GROUP, [], plugins) + + async def create_db_proxy( + self, input: CreateDBProxyInput, plugins: list[Plugin] | None = None + ) -> CreateDBProxyOutput: + """ + Creates a new DB proxy. + + Args: + input: + An instance of `CreateDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBProxyOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_PROXY, [], plugins) + + async def create_db_proxy_endpoint( + self, input: CreateDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateDBProxyEndpointOutput: + """ + Creates a `DBProxyEndpoint`. Only applies to proxies that are associated + with Aurora DB clusters. You can use DB proxy endpoints to specify + read/write or read-only access to the DB cluster. You can also use DB + proxy endpoints to access a DB proxy through a different VPC than the + proxy's default VPC. + + Args: + input: + An instance of `CreateDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBProxyEndpointOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_PROXY_ENDPOINT, [], plugins) + + async def create_db_security_group( + self, input: CreateDBSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBSecurityGroupOutput: + """ + Creates a new DB security group. DB security groups control access to a + DB instance. + + A DB security group controls access to EC2-Classic DB instances that are + not in a VPC. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSecurityGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_SECURITY_GROUP, [], plugins) + + async def create_db_shard_group( + self, input: CreateDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBShardGroupOutput: + """ + Creates a new DB shard group for Aurora Limitless Database. You must + enable Aurora Limitless Database to create a DB shard group. + + Valid for: Aurora DB clusters only + + Args: + input: + An instance of `CreateDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBShardGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_SHARD_GROUP, [], plugins) + + async def create_db_snapshot( + self, input: CreateDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateDBSnapshotOutput: + """ + Creates a snapshot of a DB instance. The source DB instance must be in + the `available` or `storage-optimization` state. + + Args: + input: + An instance of `CreateDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSnapshotOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_SNAPSHOT, [], plugins) + + async def create_db_subnet_group( + self, input: CreateDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBSubnetGroupOutput: + """ + Creates a new DB subnet group. DB subnet groups must contain at least + one subnet in at least two AZs in the Amazon Web Services Region. + + Args: + input: + An instance of `CreateDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSubnetGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_DB_SUBNET_GROUP, [], plugins) + + async def create_event_subscription( + self, input: CreateEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> CreateEventSubscriptionOutput: + """ + Creates an RDS event notification subscription. This operation requires + a topic Amazon Resource Name (ARN) created by either the RDS console, + the SNS console, or the SNS API. To obtain an ARN with SNS, you must + create a topic in Amazon SNS and subscribe to the topic. The ARN is + displayed in the SNS console. + + You can specify the type of source (`SourceType`) that you want to be + notified of and provide a list of RDS sources (`SourceIds`) that + triggers the events. You can also provide a list of event categories + (`EventCategories`) for events that you want to be notified of. For + example, you can specify `SourceType` = `db-instance`, `SourceIds` = + `mydbinstance1`, `mydbinstance2` and `EventCategories` = `Availability`, + `Backup`. + + If you specify both the `SourceType` and `SourceIds`, such as + `SourceType` = `db-instance` and `SourceIds` = `myDBInstance1`, you are + notified of all the `db-instance` events for the specified source. If + you specify a `SourceType` but do not specify `SourceIds`, you receive + notice of the events for that source type for all your RDS sources. If + you don't specify either the SourceType or the `SourceIds`, you are + notified of events generated from all RDS sources belonging to your + customer account. + + For more information about subscribing to an event for RDS DB engines, + see [Subscribing to Amazon RDS event + notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) + in the *Amazon RDS User Guide*. + + For more information about subscribing to an event for Aurora DB + engines, see [Subscribing to Amazon RDS event + notification](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Subscribing.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateEventSubscriptionOutput`. + """ + return await self._invoke(input, _models.CREATE_EVENT_SUBSCRIPTION, [], plugins) + + async def create_global_cluster( + self, input: CreateGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> CreateGlobalClusterOutput: + """ + Creates an Aurora global database spread across multiple Amazon Web + Services Regions. The global database contains a single primary cluster + with read-write capability, and a read-only secondary cluster that + receives data from the primary cluster through high-speed replication + performed by the Aurora storage subsystem. + + You can create a global database that is initially empty, and then + create the primary and secondary DB clusters in the global database. Or + you can specify an existing Aurora cluster during the create operation, + and this cluster becomes the primary cluster of the global database. + + Note: + This operation applies only to Aurora DB clusters. + + Args: + input: + An instance of `CreateGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGlobalClusterOutput`. + """ + return await self._invoke(input, _models.CREATE_GLOBAL_CLUSTER, [], plugins) + + async def create_integration( + self, input: CreateIntegrationInput, plugins: list[Plugin] | None = None + ) -> CreateIntegrationOutput: + """ + Creates a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `CreateIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIntegrationOutput`. + """ + return await self._invoke(input, _models.CREATE_INTEGRATION, [], plugins) + + async def create_option_group( + self, input: CreateOptionGroupInput, plugins: list[Plugin] | None = None + ) -> CreateOptionGroupOutput: + """ + Creates a new option group. You can create up to 20 option groups. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `CreateOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOptionGroupOutput`. + """ + return await self._invoke(input, _models.CREATE_OPTION_GROUP, [], plugins) + + async def create_tenant_database( + self, input: CreateTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> CreateTenantDatabaseOutput: + """ + Creates a tenant database in a DB instance that uses the multi-tenant + configuration. Only RDS for Oracle container database (CDB) instances + are supported. + + Args: + input: + An instance of `CreateTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTenantDatabaseOutput`. + """ + return await self._invoke(input, _models.CREATE_TENANT_DATABASE, [], plugins) + + async def delete_blue_green_deployment( + self, input: DeleteBlueGreenDeploymentInput, plugins: list[Plugin] | None = None + ) -> DeleteBlueGreenDeploymentOutput: + """ + Deletes a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DeleteBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBlueGreenDeploymentOutput`. + """ + return await self._invoke( + input, _models.DELETE_BLUE_GREEN_DEPLOYMENT, [], plugins + ) + + async def delete_custom_db_engine_version( + self, + input: DeleteCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCustomDBEngineVersionOutput: + """ + Deletes a custom engine version. To run this command, make sure you meet + the following prerequisites: + + - The CEV must not be the default for RDS Custom. If it is, change the + default before running this command. + + - The CEV must not be associated with an RDS Custom DB instance, RDS + Custom instance snapshot, or automated backup of your RDS Custom + instance. + + Typically, deletion takes a few minutes. + + Note: + The MediaImport service that imports files from Amazon S3 to create CEVs + isn't integrated with Amazon Web Services CloudTrail. If you turn on + data logging for Amazon RDS in CloudTrail, calls to the + `DeleteCustomDbEngineVersion` event aren't logged. However, you might + see calls from the API gateway that accesses your Amazon S3 bucket. + These calls originate from the MediaImport service for the + `DeleteCustomDbEngineVersion` event. + + For more information, see [Deleting a + CEV](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.delete) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomDBEngineVersionOutput`. + """ + return await self._invoke( + input, _models.DELETE_CUSTOM_DB_ENGINE_VERSION, [], plugins + ) + + async def delete_db_cluster( + self, input: DeleteDBClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterOutput: + """ + The DeleteDBCluster action deletes a previously provisioned DB cluster. + When you delete a DB cluster, all automated backups for that DB cluster + are deleted and can't be recovered. Manual DB cluster snapshots of the + specified DB cluster are not deleted. + + If you're deleting a Multi-AZ DB cluster with read replicas, all + cluster members are terminated and read replicas are promoted to + standalone instances. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_CLUSTER, [], plugins) + + async def delete_db_cluster_automated_backup( + self, + input: DeleteDBClusterAutomatedBackupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDBClusterAutomatedBackupOutput: + """ + Deletes automated backups using the `DbClusterResourceId` value of the + source DB cluster or the Amazon Resource Name (ARN) of the automated + backups. + + Args: + input: + An instance of `DeleteDBClusterAutomatedBackupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterAutomatedBackupOutput`. + """ + return await self._invoke( + input, _models.DELETE_DB_CLUSTER_AUTOMATED_BACKUP, [], plugins + ) + + async def delete_db_cluster_endpoint( + self, input: DeleteDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterEndpointOutput: + """ + Deletes a custom endpoint and removes it from an Amazon Aurora DB + cluster. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DeleteDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterEndpointOutput`. + """ + return await self._invoke( + input, _models.DELETE_DB_CLUSTER_ENDPOINT, [], plugins + ) + + async def delete_db_cluster_parameter_group( + self, + input: DeleteDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDBClusterParameterGroupOutput: + """ + Deletes a specified DB cluster parameter group. The DB cluster parameter + group to be deleted can't be associated with any DB clusters. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterParameterGroupOutput`. + """ + return await self._invoke( + input, _models.DELETE_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + async def delete_db_cluster_snapshot( + self, input: DeleteDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterSnapshotOutput: + """ + Deletes a DB cluster snapshot. If the snapshot is being copied, the copy + operation is terminated. + + Note: + The DB cluster snapshot must be in the `available` state to be deleted. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterSnapshotOutput`. + """ + return await self._invoke( + input, _models.DELETE_DB_CLUSTER_SNAPSHOT, [], plugins + ) + + async def delete_db_instance( + self, input: DeleteDBInstanceInput, plugins: list[Plugin] | None = None + ) -> DeleteDBInstanceOutput: + """ + Deletes a previously provisioned DB instance. When you delete a DB + instance, all automated backups for that instance are deleted and can't + be recovered. However, manual DB snapshots of the DB instance aren't + deleted. + + If you request a final DB snapshot, the status of the Amazon RDS DB + instance is `deleting` until the DB snapshot is created. This operation + can't be canceled or reverted after it begins. To monitor the status of + this operation, use `DescribeDBInstance`. + + When a DB instance is in a failure state and has a status of `failed`, + `incompatible-restore`, or `incompatible-network`, you can only delete + it when you skip creation of the final snapshot with the + `SkipFinalSnapshot` parameter. + + If the specified DB instance is part of an Amazon Aurora DB cluster, you + can't delete the DB instance if both of the following conditions are + true: + + - The DB cluster is a read replica of another Amazon Aurora DB cluster. + + - The DB instance is the only instance in the DB cluster. + + To delete a DB instance in this case, first use the + `PromoteReadReplicaDBCluster` operation to promote the DB cluster so + that it's no longer a read replica. After the promotion completes, use + the `DeleteDBInstance` operation to delete the final instance in the DB + cluster. + + Warning: + For RDS Custom DB instances, deleting the DB instance permanently + deletes the EC2 instance and the associated EBS volumes. Make sure that + you don't terminate or delete these resources before you delete the DB + instance. Otherwise, deleting the DB instance and creation of the final + snapshot might fail. + + Args: + input: + An instance of `DeleteDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBInstanceOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_INSTANCE, [], plugins) + + async def delete_db_instance_automated_backup( + self, + input: DeleteDBInstanceAutomatedBackupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDBInstanceAutomatedBackupOutput: + """ + Deletes automated backups using the `DbiResourceId` value of the source + DB instance or the Amazon Resource Name (ARN) of the automated backups. + + Args: + input: + An instance of `DeleteDBInstanceAutomatedBackupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBInstanceAutomatedBackupOutput`. + """ + return await self._invoke( + input, _models.DELETE_DB_INSTANCE_AUTOMATED_BACKUP, [], plugins + ) + + async def delete_db_parameter_group( + self, input: DeleteDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBParameterGroupOutput: + """ + Deletes a specified DB parameter group. The DB parameter group to be + deleted can't be associated with any DB instances. + + Args: + input: + An instance of `DeleteDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBParameterGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_PARAMETER_GROUP, [], plugins) + + async def delete_db_proxy( + self, input: DeleteDBProxyInput, plugins: list[Plugin] | None = None + ) -> DeleteDBProxyOutput: + """ + Deletes an existing DB proxy. + + Args: + input: + An instance of `DeleteDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBProxyOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_PROXY, [], plugins) + + async def delete_db_proxy_endpoint( + self, input: DeleteDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteDBProxyEndpointOutput: + """ + Deletes a `DBProxyEndpoint`. Doing so removes the ability to access the + DB proxy using the endpoint that you defined. The endpoint that you + delete might have provided capabilities such as read/write or read-only + operations, or using a different VPC than the DB proxy's default VPC. + + Args: + input: + An instance of `DeleteDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBProxyEndpointOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_PROXY_ENDPOINT, [], plugins) + + async def delete_db_security_group( + self, input: DeleteDBSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSecurityGroupOutput: + """ + Deletes a DB security group. + + The specified DB security group must not be associated with any DB + instances. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSecurityGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_SECURITY_GROUP, [], plugins) + + async def delete_db_shard_group( + self, input: DeleteDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBShardGroupOutput: + """ + Deletes an Aurora Limitless Database DB shard group. + + Args: + input: + An instance of `DeleteDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBShardGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_SHARD_GROUP, [], plugins) + + async def delete_db_snapshot( + self, input: DeleteDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSnapshotOutput: + """ + Deletes a DB snapshot. If the snapshot is being copied, the copy + operation is terminated. + + Note: + The DB snapshot must be in the `available` state to be deleted. + + Args: + input: + An instance of `DeleteDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSnapshotOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_SNAPSHOT, [], plugins) + + async def delete_db_subnet_group( + self, input: DeleteDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSubnetGroupOutput: + """ + Deletes a DB subnet group. + + Note: + The specified database subnet group must not be associated with any DB + instances. + + Args: + input: + An instance of `DeleteDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSubnetGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_DB_SUBNET_GROUP, [], plugins) + + async def delete_event_subscription( + self, input: DeleteEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> DeleteEventSubscriptionOutput: + """ + Deletes an RDS event notification subscription. + + Args: + input: + An instance of `DeleteEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteEventSubscriptionOutput`. + """ + return await self._invoke(input, _models.DELETE_EVENT_SUBSCRIPTION, [], plugins) + + async def delete_global_cluster( + self, input: DeleteGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteGlobalClusterOutput: + """ + Deletes a global database cluster. The primary and secondary clusters + must already be detached or destroyed first. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DeleteGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGlobalClusterOutput`. + """ + return await self._invoke(input, _models.DELETE_GLOBAL_CLUSTER, [], plugins) + + async def delete_integration( + self, input: DeleteIntegrationInput, plugins: list[Plugin] | None = None + ) -> DeleteIntegrationOutput: + """ + Deletes a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `DeleteIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIntegrationOutput`. + """ + return await self._invoke(input, _models.DELETE_INTEGRATION, [], plugins) + + async def delete_option_group( + self, input: DeleteOptionGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteOptionGroupOutput: + """ + Deletes an existing option group. + + Args: + input: + An instance of `DeleteOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOptionGroupOutput`. + """ + return await self._invoke(input, _models.DELETE_OPTION_GROUP, [], plugins) + + async def delete_tenant_database( + self, input: DeleteTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> DeleteTenantDatabaseOutput: + """ + Deletes a tenant database from your DB instance. This command only + applies to RDS for Oracle container database (CDB) instances. + + You can't delete a tenant database when it is the only tenant in the DB + instance. + + Args: + input: + An instance of `DeleteTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTenantDatabaseOutput`. + """ + return await self._invoke(input, _models.DELETE_TENANT_DATABASE, [], plugins) + + async def deregister_db_proxy_targets( + self, input: DeregisterDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> DeregisterDBProxyTargetsOutput: + """ + Remove the association between one or more `DBProxyTarget` data + structures and a `DBProxyTargetGroup`. + + Args: + input: + An instance of `DeregisterDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterDBProxyTargetsOutput`. + """ + return await self._invoke( + input, _models.DEREGISTER_DB_PROXY_TARGETS, [], plugins + ) + + async def describe_account_attributes( + self, input: DescribeAccountAttributesInput, plugins: list[Plugin] | None = None + ) -> DescribeAccountAttributesOutput: + """ + Lists all of the attributes for a customer account. The attributes + include Amazon RDS quotas for the account, such as the number of DB + instances allowed. The description for a quota includes the quota name, + current usage toward that quota, and the quota's maximum value. + + This command doesn't take any parameters. + + Args: + input: + An instance of `DescribeAccountAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountAttributesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ACCOUNT_ATTRIBUTES, [], plugins + ) + + async def describe_blue_green_deployments( + self, + input: DescribeBlueGreenDeploymentsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeBlueGreenDeploymentsOutput: + """ + Describes one or more blue/green deployments. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeBlueGreenDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBlueGreenDeploymentsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_BLUE_GREEN_DEPLOYMENTS, [], plugins + ) + + async def describe_certificates( + self, input: DescribeCertificatesInput, plugins: list[Plugin] | None = None + ) -> DescribeCertificatesOutput: + """ + Lists the set of certificate authority (CA) certificates provided by + Amazon RDS for this Amazon Web Services account. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCertificatesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_CERTIFICATES, [], plugins) + + async def describe_db_capacity_reservations( + self, + input: DescribeDBCapacityReservationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBCapacityReservationsOutput: + """ + Describes one or more DB capacity reservations. A DB capacity + reservation reserves capacity for Amazon RDS DB instances in one or more + Availability Zones. + + If you don't specify a `DBCapacityReservationIdentifier`, this + operation returns information about all DB capacity reservations for + your Amazon Web Services account. + + This operation supports pagination. + + Args: + input: + An instance of `DescribeDBCapacityReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBCapacityReservationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CAPACITY_RESERVATIONS, [], plugins + ) + + async def describe_db_cluster_automated_backups( + self, + input: DescribeDBClusterAutomatedBackupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterAutomatedBackupsOutput: + """ + Displays backups for both current and deleted DB clusters. For example, + use this operation to find details about automated backups for + previously deleted clusters. Current clusters are returned for both the + `DescribeDBClusterAutomatedBackups` and `DescribeDBClusters` operations. + + All parameters are optional. + + Args: + input: + An instance of `DescribeDBClusterAutomatedBackupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterAutomatedBackupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS, [], plugins + ) + + async def describe_db_cluster_backtracks( + self, + input: DescribeDBClusterBacktracksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterBacktracksOutput: + """ + Returns information about backtracks for a DB cluster. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This action only applies to Aurora MySQL DB clusters. + + Args: + input: + An instance of `DescribeDBClusterBacktracksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterBacktracksOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_BACKTRACKS, [], plugins + ) + + async def describe_db_cluster_endpoints( + self, + input: DescribeDBClusterEndpointsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterEndpointsOutput: + """ + Returns information about endpoints for an Amazon Aurora DB cluster. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DescribeDBClusterEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_ENDPOINTS, [], plugins + ) + + async def describe_db_cluster_parameter_groups( + self, + input: DescribeDBClusterParameterGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterParameterGroupsOutput: + """ + Returns a list of `DBClusterParameterGroup` descriptions. If a + `DBClusterParameterGroupName` parameter is specified, the list will + contain only the description of the specified DB cluster parameter + group. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterParameterGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterParameterGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS, [], plugins + ) + + async def describe_db_cluster_parameters( + self, + input: DescribeDBClusterParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterParametersOutput: + """ + Returns the detailed parameter list for a particular DB cluster + parameter group. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterParametersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_PARAMETERS, [], plugins + ) + + async def describe_db_clusters( + self, input: DescribeDBClustersInput, plugins: list[Plugin] | None = None + ) -> DescribeDBClustersOutput: + """ + Describes existing Amazon Aurora DB clusters and Multi-AZ DB clusters. + This API supports pagination. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + This operation can also return information for Amazon Neptune DB + instances and Amazon DocumentDB instances. + + Args: + input: + An instance of `DescribeDBClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClustersOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_CLUSTERS, [], plugins) + + async def describe_db_cluster_snapshot_attributes( + self, + input: DescribeDBClusterSnapshotAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterSnapshotAttributesOutput: + """ + Returns a list of DB cluster snapshot attribute names and values for a + manual DB cluster snapshot. + + When sharing snapshots with other Amazon Web Services accounts, + `DescribeDBClusterSnapshotAttributes` returns the `restore` attribute + and a list of IDs for the Amazon Web Services accounts that are + authorized to copy or restore the manual DB cluster snapshot. If `all` + is included in the list of values for the `restore` attribute, then the + manual DB cluster snapshot is public and can be copied or restored by + all Amazon Web Services accounts. + + To add or remove access for an Amazon Web Services account to copy or + restore a manual DB cluster snapshot, or to make the manual DB cluster + snapshot public or private, use the `ModifyDBClusterSnapshotAttribute` + API action. + + Args: + input: + An instance of `DescribeDBClusterSnapshotAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterSnapshotAttributesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES, [], plugins + ) + + async def describe_db_cluster_snapshots( + self, + input: DescribeDBClusterSnapshotsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterSnapshotsOutput: + """ + Returns information about DB cluster snapshots. This API action supports + pagination. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterSnapshotsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_SNAPSHOTS, [], plugins + ) + + async def describe_db_engine_versions( + self, input: DescribeDBEngineVersionsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBEngineVersionsOutput: + """ + Describes the properties of specific versions of DB engines. + + Args: + input: + An instance of `DescribeDBEngineVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBEngineVersionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_ENGINE_VERSIONS, [], plugins + ) + + async def describe_db_instance_automated_backups( + self, + input: DescribeDBInstanceAutomatedBackupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBInstanceAutomatedBackupsOutput: + """ + Displays backups for both current and deleted instances. For example, + use this operation to find details about automated backups for + previously deleted instances. Current instances with retention periods + greater than zero (0) are returned for both the + `DescribeDBInstanceAutomatedBackups` and `DescribeDBInstances` + operations. + + All parameters are optional. + + Args: + input: + An instance of `DescribeDBInstanceAutomatedBackupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBInstanceAutomatedBackupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS, [], plugins + ) + + async def describe_db_instances( + self, input: DescribeDBInstancesInput, plugins: list[Plugin] | None = None + ) -> DescribeDBInstancesOutput: + """ + Describes provisioned RDS instances. This API supports pagination. + + Note: + This operation can also return information for Amazon Neptune DB + instances and Amazon DocumentDB instances. + + Args: + input: + An instance of `DescribeDBInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBInstancesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_INSTANCES, [], plugins) + + async def describe_db_log_files( + self, input: DescribeDBLogFilesInput, plugins: list[Plugin] | None = None + ) -> DescribeDBLogFilesOutput: + """ + Returns a list of DB log files for the DB instance. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `DescribeDBLogFilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBLogFilesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_LOG_FILES, [], plugins) + + async def describe_db_major_engine_versions( + self, + input: DescribeDBMajorEngineVersionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBMajorEngineVersionsOutput: + """ + Describes the properties of specific major versions of DB engines. + + Args: + input: + An instance of `DescribeDBMajorEngineVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBMajorEngineVersionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_MAJOR_ENGINE_VERSIONS, [], plugins + ) + + async def describe_db_parameter_groups( + self, input: DescribeDBParameterGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBParameterGroupsOutput: + """ + Returns a list of `DBParameterGroup` descriptions. If a + `DBParameterGroupName` is specified, the list will contain only the + description of the specified DB parameter group. + + Args: + input: + An instance of `DescribeDBParameterGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBParameterGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_PARAMETER_GROUPS, [], plugins + ) + + async def describe_db_parameters( + self, input: DescribeDBParametersInput, plugins: list[Plugin] | None = None + ) -> DescribeDBParametersOutput: + """ + Returns the detailed parameter list for a particular DB parameter group. + + Args: + input: + An instance of `DescribeDBParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBParametersOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_PARAMETERS, [], plugins) + + async def describe_db_proxies( + self, input: DescribeDBProxiesInput, plugins: list[Plugin] | None = None + ) -> DescribeDBProxiesOutput: + """ + Returns information about DB proxies. + + Args: + input: + An instance of `DescribeDBProxiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxiesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_PROXIES, [], plugins) + + async def describe_db_proxy_endpoints( + self, input: DescribeDBProxyEndpointsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBProxyEndpointsOutput: + """ + Returns information about DB proxy endpoints. + + Args: + input: + An instance of `DescribeDBProxyEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyEndpointsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_PROXY_ENDPOINTS, [], plugins + ) + + async def describe_db_proxy_target_groups( + self, + input: DescribeDBProxyTargetGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBProxyTargetGroupsOutput: + """ + Returns information about DB proxy target groups, represented by + `DBProxyTargetGroup` data structures. + + Args: + input: + An instance of `DescribeDBProxyTargetGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyTargetGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_PROXY_TARGET_GROUPS, [], plugins + ) + + async def describe_db_proxy_targets( + self, input: DescribeDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBProxyTargetsOutput: + """ + Returns information about `DBProxyTarget` objects. This API supports + pagination. + + Args: + input: + An instance of `DescribeDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyTargetsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_PROXY_TARGETS, [], plugins) + + async def describe_db_recommendations( + self, input: DescribeDBRecommendationsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBRecommendationsOutput: + """ + Describes the recommendations to resolve the issues for your DB + instances, DB clusters, and DB parameter groups. + + Args: + input: + An instance of `DescribeDBRecommendationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBRecommendationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_RECOMMENDATIONS, [], plugins + ) + + async def describe_db_security_groups( + self, input: DescribeDBSecurityGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBSecurityGroupsOutput: + """ + Returns a list of `DBSecurityGroup` descriptions. If a + `DBSecurityGroupName` is specified, the list will contain only the + descriptions of the specified DB security group. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSecurityGroupsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_SECURITY_GROUPS, [], plugins + ) + + async def describe_db_shard_groups( + self, input: DescribeDBShardGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBShardGroupsOutput: + """ + Describes existing Aurora Limitless Database DB shard groups. + + Args: + input: + An instance of `DescribeDBShardGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBShardGroupsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_SHARD_GROUPS, [], plugins) + + async def describe_db_snapshot_attributes( + self, + input: DescribeDBSnapshotAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSnapshotAttributesOutput: + """ + Returns a list of DB snapshot attribute names and values for a manual DB + snapshot. + + When sharing snapshots with other Amazon Web Services accounts, + `DescribeDBSnapshotAttributes` returns the `restore` attribute and a + list of IDs for the Amazon Web Services accounts that are authorized to + copy or restore the manual DB snapshot. If `all` is included in the list + of values for the `restore` attribute, then the manual DB snapshot is + public and can be copied or restored by all Amazon Web Services + accounts. + + To add or remove access for an Amazon Web Services account to copy or + restore a manual DB snapshot, or to make the manual DB snapshot public + or private, use the `ModifyDBSnapshotAttribute` API action. + + Args: + input: + An instance of `DescribeDBSnapshotAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotAttributesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_SNAPSHOT_ATTRIBUTES, [], plugins + ) + + async def describe_db_snapshots( + self, input: DescribeDBSnapshotsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBSnapshotsOutput: + """ + Returns information about DB snapshots. This API action supports + pagination. + + Args: + input: + An instance of `DescribeDBSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_SNAPSHOTS, [], plugins) + + async def describe_db_snapshot_tenant_databases( + self, + input: DescribeDBSnapshotTenantDatabasesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSnapshotTenantDatabasesOutput: + """ + Describes the tenant databases that exist in a DB snapshot. This command + only applies to RDS for Oracle DB instances in the multi-tenant + configuration. + + You can use this command to inspect the tenant databases within a + snapshot before restoring it. You can't directly interact with the + tenant databases in a DB snapshot. If you restore a snapshot that was + taken from DB instance using the multi-tenant configuration, you restore + all its tenant databases. + + Args: + input: + An instance of `DescribeDBSnapshotTenantDatabasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotTenantDatabasesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES, [], plugins + ) + + async def describe_db_subnet_groups( + self, input: DescribeDBSubnetGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBSubnetGroupsOutput: + """ + Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is + specified, the list will contain only the descriptions of the specified + DBSubnetGroup. + + For an overview of CIDR ranges, go to the [Wikipedia + Tutorial](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + + Args: + input: + An instance of `DescribeDBSubnetGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSubnetGroupsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_DB_SUBNET_GROUPS, [], plugins) + + async def describe_engine_default_cluster_parameters( + self, + input: DescribeEngineDefaultClusterParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEngineDefaultClusterParametersOutput: + """ + Returns the default engine and system parameter information for the + cluster database engine. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeEngineDefaultClusterParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEngineDefaultClusterParametersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS, [], plugins + ) + + async def describe_engine_default_parameters( + self, + input: DescribeEngineDefaultParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEngineDefaultParametersOutput: + """ + Returns the default engine and system parameter information for the + specified database engine. + + Args: + input: + An instance of `DescribeEngineDefaultParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEngineDefaultParametersOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ENGINE_DEFAULT_PARAMETERS, [], plugins + ) + + async def describe_event_categories( + self, input: DescribeEventCategoriesInput, plugins: list[Plugin] | None = None + ) -> DescribeEventCategoriesOutput: + """ + Displays a list of categories for all event source types, or, if + specified, for a specified source type. You can also see this list in + the \"Amazon RDS event categories and event messages\" section of the + [*Amazon RDS User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) + or the [*Amazon Aurora User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) + . + + Args: + input: + An instance of `DescribeEventCategoriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventCategoriesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_EVENT_CATEGORIES, [], plugins) + + async def describe_events( + self, input: DescribeEventsInput, plugins: list[Plugin] | None = None + ) -> DescribeEventsOutput: + """ + Returns events related to DB instances, DB clusters, DB parameter + groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS + Proxies for the past 14 days. Events specific to a particular DB + instance, DB cluster, DB parameter group, DB security group, DB + snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by + providing the name as a parameter. + + For more information on working with events, see [Monitoring Amazon RDS + events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-events.html) + in the *Amazon RDS User Guide* and [Monitoring Amazon Aurora + events](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/working-with-events.html) + in the *Amazon Aurora User Guide*. + + Note: + By default, RDS returns events that were generated in the past hour. + + Args: + input: + An instance of `DescribeEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_EVENTS, [], plugins) + + async def describe_event_subscriptions( + self, + input: DescribeEventSubscriptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEventSubscriptionsOutput: + """ + Lists all the subscription descriptions for a customer account. The + description for a subscription includes `SubscriptionName`, + `SNSTopicARN`, `CustomerID`, `SourceType`, `SourceID`, `CreationTime`, + and `Status`. + + If you specify a `SubscriptionName`, lists the description for that + subscription. + + Args: + input: + An instance of `DescribeEventSubscriptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventSubscriptionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_EVENT_SUBSCRIPTIONS, [], plugins + ) + + async def describe_export_tasks( + self, input: DescribeExportTasksInput, plugins: list[Plugin] | None = None + ) -> DescribeExportTasksOutput: + """ + Returns information about a snapshot or cluster export to Amazon S3. + This API operation supports pagination. + + Args: + input: + An instance of `DescribeExportTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportTasksOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_EXPORT_TASKS, [], plugins) + + async def describe_global_clusters( + self, input: DescribeGlobalClustersInput, plugins: list[Plugin] | None = None + ) -> DescribeGlobalClustersOutput: + """ + Returns information about Aurora global database clusters. This API + supports pagination. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DescribeGlobalClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGlobalClustersOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_GLOBAL_CLUSTERS, [], plugins) + + async def describe_integrations( + self, input: DescribeIntegrationsInput, plugins: list[Plugin] | None = None + ) -> DescribeIntegrationsOutput: + """ + Describe one or more zero-ETL integrations with Amazon Redshift. + + Args: + input: + An instance of `DescribeIntegrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIntegrationsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_INTEGRATIONS, [], plugins) + + async def describe_option_group_options( + self, + input: DescribeOptionGroupOptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeOptionGroupOptionsOutput: + """ + Describes all available options for the specified engine. + + Args: + input: + An instance of `DescribeOptionGroupOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOptionGroupOptionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_OPTION_GROUP_OPTIONS, [], plugins + ) + + async def describe_option_groups( + self, input: DescribeOptionGroupsInput, plugins: list[Plugin] | None = None + ) -> DescribeOptionGroupsOutput: + """ + Describes the available option groups. + + Args: + input: + An instance of `DescribeOptionGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOptionGroupsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_OPTION_GROUPS, [], plugins) + + async def describe_orderable_db_instance_options( + self, + input: DescribeOrderableDBInstanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeOrderableDBInstanceOptionsOutput: + """ + Describes the orderable DB instance options for a specified DB engine. + + Args: + input: + An instance of `DescribeOrderableDBInstanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOrderableDBInstanceOptionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS, [], plugins + ) + + async def describe_pending_maintenance_actions( + self, + input: DescribePendingMaintenanceActionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribePendingMaintenanceActionsOutput: + """ + Returns a list of resources (for example, DB instances) that have at + least one pending maintenance action. + + This API follows an eventual consistency model. This means that the + result of the `DescribePendingMaintenanceActions` command might not be + immediately visible to all subsequent RDS commands. Keep this in mind + when you use `DescribePendingMaintenanceActions` immediately after using + a previous API command such as `ApplyPendingMaintenanceActions`. + + Args: + input: + An instance of `DescribePendingMaintenanceActionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePendingMaintenanceActionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_PENDING_MAINTENANCE_ACTIONS, [], plugins + ) + + async def describe_reserved_db_instances( + self, + input: DescribeReservedDBInstancesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedDBInstancesOutput: + """ + Returns information about reserved DB instances for this account, or + about a specified reserved DB instance. + + Args: + input: + An instance of `DescribeReservedDBInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedDBInstancesOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_DB_INSTANCES, [], plugins + ) + + async def describe_reserved_db_instances_offerings( + self, + input: DescribeReservedDBInstancesOfferingsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedDBInstancesOfferingsOutput: + """ + Lists available reserved DB instance offerings. + + Args: + input: + An instance of `DescribeReservedDBInstancesOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedDBInstancesOfferingsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS, [], plugins + ) + + async def describe_serverless_v2_platform_versions( + self, + input: DescribeServerlessV2PlatformVersionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeServerlessV2PlatformVersionsOutput: + """ + Describes the properties of specific platform versions for Aurora + Serverless v2. + + Args: + input: + An instance of `DescribeServerlessV2PlatformVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServerlessV2PlatformVersionsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS, [], plugins + ) + + async def describe_source_regions( + self, input: DescribeSourceRegionsInput, plugins: list[Plugin] | None = None + ) -> DescribeSourceRegionsOutput: + """ + Returns a list of the source Amazon Web Services Regions where the + current Amazon Web Services Region can create a read replica, copy a DB + snapshot from, or replicate automated backups from. + + Use this operation to determine whether cross-Region features are + supported between other Regions and your current Region. This operation + supports pagination. + + To return information about the Regions that are enabled for your + account, or all Regions, use the EC2 operation `DescribeRegions`. For + more information, see + [DescribeRegions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html) + in the *Amazon EC2 API Reference*. + + Args: + input: + An instance of `DescribeSourceRegionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSourceRegionsOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_SOURCE_REGIONS, [], plugins) + + async def describe_tenant_databases( + self, input: DescribeTenantDatabasesInput, plugins: list[Plugin] | None = None + ) -> DescribeTenantDatabasesOutput: + """ + Describes the tenant databases in a DB instance that uses the + multi-tenant configuration. Only RDS for Oracle CDB instances are + supported. + + Args: + input: + An instance of `DescribeTenantDatabasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTenantDatabasesOutput`. + """ + return await self._invoke(input, _models.DESCRIBE_TENANT_DATABASES, [], plugins) + + async def describe_valid_db_instance_modifications( + self, + input: DescribeValidDBInstanceModificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeValidDBInstanceModificationsOutput: + """ + You can call `DescribeValidDBInstanceModifications` to learn what + modifications you can make to your DB instance. You can use this + information when you call `ModifyDBInstance`. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `DescribeValidDBInstanceModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeValidDBInstanceModificationsOutput`. + """ + return await self._invoke( + input, _models.DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS, [], plugins + ) + + async def disable_http_endpoint( + self, input: DisableHttpEndpointInput, plugins: list[Plugin] | None = None + ) -> DisableHttpEndpointOutput: + """ + Disables the HTTP endpoint for the specified DB cluster. Disabling this + endpoint disables RDS Data API. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation applies only to Aurora Serverless v2 and provisioned DB + clusters. To disable the HTTP endpoint for Aurora Serverless v1 DB + clusters, use the `EnableHttpEndpoint` parameter of the + `ModifyDBCluster` operation. + + Args: + input: + An instance of `DisableHttpEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableHttpEndpointOutput`. + """ + return await self._invoke(input, _models.DISABLE_HTTP_ENDPOINT, [], plugins) + + async def download_db_log_file_portion( + self, input: DownloadDBLogFilePortionInput, plugins: list[Plugin] | None = None + ) -> DownloadDBLogFilePortionOutput: + """ + Downloads all or a portion of the specified log file, up to 1 MB in + size. + + This command doesn't apply to RDS Custom. + + Note: + This operation uses resources on database instances. Because of this, we + recommend publishing database logs to CloudWatch and then using the + GetLogEvents operation. For more information, see + [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) + in the *Amazon CloudWatch Logs API Reference*. + + Args: + input: + An instance of `DownloadDBLogFilePortionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DownloadDBLogFilePortionOutput`. + """ + return await self._invoke( + input, _models.DOWNLOAD_DB_LOG_FILE_PORTION, [], plugins + ) + + async def enable_http_endpoint( + self, input: EnableHttpEndpointInput, plugins: list[Plugin] | None = None + ) -> EnableHttpEndpointOutput: + """ + Enables the HTTP endpoint for the DB cluster. By default, the HTTP + endpoint isn't enabled. + + When enabled, this endpoint provides a connectionless web service API + (RDS Data API) for running SQL queries on the Aurora DB cluster. You can + also query your database from inside the RDS console with the RDS query + editor. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation applies only to Aurora Serverless v2 and provisioned DB + clusters. To enable the HTTP endpoint for Aurora Serverless v1 DB + clusters, use the `EnableHttpEndpoint` parameter of the + `ModifyDBCluster` operation. + + Args: + input: + An instance of `EnableHttpEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableHttpEndpointOutput`. + """ + return await self._invoke(input, _models.ENABLE_HTTP_ENDPOINT, [], plugins) + + async def failover_db_cluster( + self, input: FailoverDBClusterInput, plugins: list[Plugin] | None = None + ) -> FailoverDBClusterOutput: + """ + Forces a failover for a DB cluster. + + For an Aurora DB cluster, failover for a DB cluster promotes one of the + Aurora Replicas (read-only instances) in the DB cluster to be the + primary DB instance (the cluster writer). + + For a Multi-AZ DB cluster, after RDS terminates the primary DB instance, + the internal monitoring system detects that the primary DB instance is + unhealthy and promotes a readable standby (read-only instances) in the + DB cluster to be the primary DB instance (the cluster writer). Failover + times are typically less than 35 seconds. + + An Amazon Aurora DB cluster automatically fails over to an Aurora + Replica, if one exists, when the primary DB instance fails. A Multi-AZ + DB cluster automatically fails over to a readable standby DB instance + when the primary DB instance fails. + + To simulate a failure of a primary instance for testing, you can force a + failover. Because each instance in a DB cluster has its own endpoint + address, make sure to clean up and re-establish any existing connections + that use those endpoint addresses when the failover is complete. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `FailoverDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `FailoverDBClusterOutput`. + """ + return await self._invoke(input, _models.FAILOVER_DB_CLUSTER, [], plugins) + + async def failover_global_cluster( + self, input: FailoverGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> FailoverGlobalClusterOutput: + """ + Promotes the specified secondary DB cluster to be the primary DB cluster + in the global database cluster to fail over or switch over a global + database. Switchover operations were previously called \"managed planned + failovers.\" + + Note: + Although this operation can be used either to fail over or to switch + over a global database cluster, its intended use is for global database + failover. To switch over a global database cluster, we recommend that + you use the SwitchoverGlobalCluster operation instead. + + How you use this operation depends on whether you are failing over or + switching over your global database cluster: + + - Failing over - Specify the `AllowDataLoss` parameter and don't + specify the `Switchover` parameter. + + - Switching over - Specify the `Switchover` parameter or omit it, but + don't specify the `AllowDataLoss` parameter. + + **About failing over and switching over** + + While failing over and switching over a global database cluster both + change the primary DB cluster, you use these operations for different + reasons: + + - *Failing over* - Use this operation to respond to an unplanned event, + such as a Regional disaster in the primary Region. Failing over can + result in a loss of write transaction data that wasn't replicated to + the chosen secondary before the failover event occurred. However, the + recovery process that promotes a DB instance on the chosen seconday DB + cluster to be the primary writer DB instance guarantees that the data + is in a transactionally consistent state. + + For more information about failing over an Amazon Aurora global + database, see [Performing managed failovers for Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover.managed-unplanned) + in the *Amazon Aurora User Guide*. + + - *Switching over* - Use this operation on a healthy global database + cluster for planned events, such as Regional rotation or to fail back + to the original primary DB cluster after a failover operation. With + this operation, there is no data loss. + + For more information about switching over an Amazon Aurora global + database, see [Performing switchovers for Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `FailoverGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `FailoverGlobalClusterOutput`. + """ + return await self._invoke(input, _models.FAILOVER_GLOBAL_CLUSTER, [], plugins) + + async def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists all tags on an Amazon RDS resource. + + For an overview on tagging an Amazon RDS resource, see [Tagging Amazon + RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return await self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + async def modify_activity_stream( + self, input: ModifyActivityStreamInput, plugins: list[Plugin] | None = None + ) -> ModifyActivityStreamOutput: + """ + Changes the audit policy state of a database activity stream to either + locked (default) or unlocked. A locked policy is read-only, whereas an + unlocked policy is read/write. If your activity stream is started and + locked, you can unlock it, customize your audit policy, and then lock + your activity stream. Restarting the activity stream isn't required. + For more information, see [Modifying a database activity + stream](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Modifying.html) + in the *Amazon RDS User Guide*. + + This operation is supported for RDS for Oracle and Microsoft SQL Server. + + Args: + input: + An instance of `ModifyActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyActivityStreamOutput`. + """ + return await self._invoke(input, _models.MODIFY_ACTIVITY_STREAM, [], plugins) + + async def modify_certificates( + self, input: ModifyCertificatesInput, plugins: list[Plugin] | None = None + ) -> ModifyCertificatesOutput: + """ + Override the system-default Secure Sockets Layer/Transport Layer + Security (SSL/TLS) certificate for Amazon RDS for new DB instances, or + remove the override. + + By using this operation, you can specify an RDS-approved SSL/TLS + certificate for new DB instances that is different from the default + certificate provided by RDS. You can also use this operation to remove + the override, so that new DB instances use the default certificate + provided by RDS. + + You might need to override the default certificate in the following + situations: + + - You already migrated your applications to support the latest + certificate authority (CA) certificate, but the new CA certificate is + not yet the RDS default CA certificate for the specified Amazon Web + Services Region. + + - RDS has already moved to a new default CA certificate for the + specified Amazon Web Services Region, but you are still in the process + of supporting the new CA certificate. In this case, you temporarily + need additional time to finish your application changes. + + For more information about rotating your SSL/TLS certificate for RDS DB + engines, see [Rotating Your SSL/TLS + Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon RDS User Guide*. + + For more information about rotating your SSL/TLS certificate for Aurora + DB engines, see [Rotating Your SSL/TLS + Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `ModifyCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCertificatesOutput`. + """ + return await self._invoke(input, _models.MODIFY_CERTIFICATES, [], plugins) + + async def modify_current_db_cluster_capacity( + self, + input: ModifyCurrentDBClusterCapacityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCurrentDBClusterCapacityOutput: + """ + Set the capacity of an Aurora Serverless v1 DB cluster to a specific + value. + + Aurora Serverless v1 scales seamlessly based on the workload on the DB + cluster. In some cases, the capacity might not scale fast enough to meet + a sudden change in workload, such as a large number of new transactions. + Call `ModifyCurrentDBClusterCapacity` to set the capacity explicitly. + + After this call sets the DB cluster capacity, Aurora Serverless v1 can + automatically scale the DB cluster based on the cooldown period for + scaling up and the cooldown period for scaling down. + + For more information about Aurora Serverless v1, see [Using Amazon + Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + + Warning: + If you call `ModifyCurrentDBClusterCapacity` with the default + `TimeoutAction`, connections that prevent Aurora Serverless v1 from + finding a scaling point might be dropped. For more information about + scaling points, see [Autoscaling for Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling) + in the *Amazon Aurora User Guide*. + Note: + This operation only applies to Aurora Serverless v1 DB clusters. + + Args: + input: + An instance of `ModifyCurrentDBClusterCapacityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCurrentDBClusterCapacityOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CURRENT_DB_CLUSTER_CAPACITY, [], plugins + ) + + async def modify_custom_db_engine_version( + self, + input: ModifyCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCustomDBEngineVersionOutput: + """ + Modifies the status of a custom engine version (CEV). You can find CEVs + to modify by calling `DescribeDBEngineVersions`. + + Note: + The MediaImport service that imports files from Amazon S3 to create CEVs + isn't integrated with Amazon Web Services CloudTrail. If you turn on + data logging for Amazon RDS in CloudTrail, calls to the + `ModifyCustomDbEngineVersion` event aren't logged. However, you might + see calls from the API gateway that accesses your Amazon S3 bucket. + These calls originate from the MediaImport service for the + `ModifyCustomDbEngineVersion` event. + + For more information, see [Modifying CEV + status](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.modify) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `ModifyCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCustomDBEngineVersionOutput`. + """ + return await self._invoke( + input, _models.MODIFY_CUSTOM_DB_ENGINE_VERSION, [], plugins + ) + + async def modify_db_capacity_reservation( + self, + input: ModifyDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBCapacityReservationOutput: + """ + Modifies a DB capacity reservation. You can change the reserved capacity + in each Availability Zone of the reservation, and you can change the end + date of the reservation. You can't change the Availability Zones of an + existing reservation. + + The reservation must be in the `active` state. A future-dated + reservation that hasn't started isn't modifiable, and neither is a + reservation that Amazon RDS is already modifying. + + You must specify `CapacityPerAvailabilityZone`, `EndDateType`, or + `EndDate`. A request that specifies none of the three changes nothing, + and Amazon RDS rejects it. + + Args: + input: + An instance of `ModifyDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBCapacityReservationOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_CAPACITY_RESERVATION, [], plugins + ) + + async def modify_db_cluster( + self, input: ModifyDBClusterInput, plugins: list[Plugin] | None = None + ) -> ModifyDBClusterOutput: + """ + Modifies the settings of an Amazon Aurora DB cluster or a Multi-AZ DB + cluster. You can change one or more settings by specifying these + parameters and the new values in the request. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `ModifyDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_CLUSTER, [], plugins) + + async def modify_db_cluster_endpoint( + self, input: ModifyDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyDBClusterEndpointOutput: + """ + Modifies the properties of an endpoint in an Amazon Aurora DB cluster. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `ModifyDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterEndpointOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_CLUSTER_ENDPOINT, [], plugins + ) + + async def modify_db_cluster_parameter_group( + self, + input: ModifyDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBClusterParameterGroupOutput: + """ + Modifies the parameters of a DB cluster parameter group. To modify more + than one parameter, submit a list of the following: `ParameterName`, + `ParameterValue`, and `ApplyMethod`. A maximum of 20 parameters can be + modified in a single request. + + Warning: + There are two types of parameters - dynamic parameters and static + parameters. Changes to dynamic parameters are applied to the DB cluster + immediately without a reboot. Changes to static parameters are applied + only after the DB cluster is rebooted, which can be done using + `RebootDBCluster` operation. You can use the *Parameter Groups* option + of the [Amazon RDS console](https://console.aws.amazon.com/rds/) or the + `DescribeDBClusterParameters` operation to verify that your DB cluster + parameter group has been created or modified. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `ModifyDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterParameterGroupOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + async def modify_db_cluster_snapshot_attribute( + self, + input: ModifyDBClusterSnapshotAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBClusterSnapshotAttributeOutput: + """ + Adds an attribute and values to, or removes an attribute and values + from, a manual DB cluster snapshot. + + To share a manual DB cluster snapshot with other Amazon Web Services + accounts, specify `restore` as the `AttributeName` and use the + `ValuesToAdd` parameter to add a list of IDs of the Amazon Web Services + accounts that are authorized to restore the manual DB cluster snapshot. + Use the value `all` to make the manual DB cluster snapshot public, which + means that it can be copied or restored by all Amazon Web Services + accounts. + + Note: + Don't add the `all` value for any manual DB cluster snapshots that + contain private information that you don't want available to all Amazon + Web Services accounts. + + If a manual DB cluster snapshot is encrypted, it can be shared, but only + by specifying a list of authorized Amazon Web Services account IDs for + the `ValuesToAdd` parameter. You can't use `all` as a value for that + parameter in this case. + + To view which Amazon Web Services accounts have access to copy or + restore a manual DB cluster snapshot, or whether a manual DB cluster + snapshot is public or private, use the + DescribeDBClusterSnapshotAttributes API operation. The accounts are + returned as values for the `restore` attribute. + + Args: + input: + An instance of `ModifyDBClusterSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterSnapshotAttributeOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE, [], plugins + ) + + async def modify_db_instance( + self, input: ModifyDBInstanceInput, plugins: list[Plugin] | None = None + ) -> ModifyDBInstanceOutput: + """ + Modifies settings for a DB instance. You can change one or more database + configuration parameters by specifying these parameters and the new + values in the request. To learn what modifications you can make to your + DB instance, call `DescribeValidDBInstanceModifications` before you call + `ModifyDBInstance`. + + Args: + input: + An instance of `ModifyDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBInstanceOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_INSTANCE, [], plugins) + + async def modify_db_parameter_group( + self, input: ModifyDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBParameterGroupOutput: + """ + Modifies the parameters of a DB parameter group. To modify more than one + parameter, submit a list of the following: `ParameterName`, + `ParameterValue`, and `ApplyMethod`. A maximum of 20 parameters can be + modified in a single request. + + Warning: + After you modify a DB parameter group, you should wait at least 5 + minutes before creating your first DB instance that uses that DB + parameter group as the default parameter group. This allows Amazon RDS + to fully complete the modify operation before the parameter group is + used as the default for a new DB instance. This is especially important + for parameters that are critical when creating the default database for + a DB instance, such as the character set for the default database + defined by the `character_set_database` parameter. You can use the + *Parameter Groups* option of the [Amazon RDS + console](https://console.aws.amazon.com/rds/) or the + *DescribeDBParameters* command to verify that your DB parameter group + has been created or modified. + + Args: + input: + An instance of `ModifyDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBParameterGroupOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_PARAMETER_GROUP, [], plugins) + + async def modify_db_proxy( + self, input: ModifyDBProxyInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyOutput: + """ + Changes the settings for an existing DB proxy. + + Args: + input: + An instance of `ModifyDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_PROXY, [], plugins) + + async def modify_db_proxy_endpoint( + self, input: ModifyDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyEndpointOutput: + """ + Changes the settings for an existing DB proxy endpoint. + + Args: + input: + An instance of `ModifyDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyEndpointOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_PROXY_ENDPOINT, [], plugins) + + async def modify_db_proxy_target_group( + self, input: ModifyDBProxyTargetGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyTargetGroupOutput: + """ + Modifies the properties of a `DBProxyTargetGroup`. + + Args: + input: + An instance of `ModifyDBProxyTargetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyTargetGroupOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_PROXY_TARGET_GROUP, [], plugins + ) + + async def modify_db_recommendation( + self, input: ModifyDBRecommendationInput, plugins: list[Plugin] | None = None + ) -> ModifyDBRecommendationOutput: + """ + Updates the recommendation status and recommended action status for the + specified recommendation. + + Args: + input: + An instance of `ModifyDBRecommendationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBRecommendationOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_RECOMMENDATION, [], plugins) + + async def modify_db_shard_group( + self, input: ModifyDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBShardGroupOutput: + """ + Modifies the settings of an Aurora Limitless Database DB shard group. + You can change one or more settings by specifying these parameters and + the new values in the request. + + Args: + input: + An instance of `ModifyDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBShardGroupOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_SHARD_GROUP, [], plugins) + + async def modify_db_snapshot( + self, input: ModifyDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSnapshotOutput: + """ + Updates a manual DB snapshot with a new engine version. The snapshot can + be encrypted or unencrypted, but not shared or public. + + Amazon RDS supports upgrading DB snapshots for MariaDB, MySQL, + PostgreSQL, and Oracle. This operation doesn't apply to RDS Custom or + RDS for Db2. + + Args: + input: + An instance of `ModifyDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSnapshotOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_SNAPSHOT, [], plugins) + + async def modify_db_snapshot_attribute( + self, input: ModifyDBSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSnapshotAttributeOutput: + """ + Adds an attribute and values to, or removes an attribute and values + from, a manual DB snapshot. + + To share a manual DB snapshot with other Amazon Web Services accounts, + specify `restore` as the `AttributeName` and use the `ValuesToAdd` + parameter to add a list of IDs of the Amazon Web Services accounts that + are authorized to restore the manual DB snapshot. Uses the value `all` + to make the manual DB snapshot public, which means it can be copied or + restored by all Amazon Web Services accounts. + + Note: + Don't add the `all` value for any manual DB snapshots that contain + private information that you don't want available to all Amazon Web + Services accounts. + + If the manual DB snapshot is encrypted, it can be shared, but only by + specifying a list of authorized Amazon Web Services account IDs for the + `ValuesToAdd` parameter. You can't use `all` as a value for that + parameter in this case. + + To view which Amazon Web Services accounts have access to copy or + restore a manual DB snapshot, or whether a manual DB snapshot public or + private, use the DescribeDBSnapshotAttributes API operation. The + accounts are returned as values for the `restore` attribute. + + Args: + input: + An instance of `ModifyDBSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSnapshotAttributeOutput`. + """ + return await self._invoke( + input, _models.MODIFY_DB_SNAPSHOT_ATTRIBUTE, [], plugins + ) + + async def modify_db_subnet_group( + self, input: ModifyDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSubnetGroupOutput: + """ + Modifies an existing DB subnet group. DB subnet groups must contain at + least one subnet in at least two AZs in the Amazon Web Services Region. + + Args: + input: + An instance of `ModifyDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSubnetGroupOutput`. + """ + return await self._invoke(input, _models.MODIFY_DB_SUBNET_GROUP, [], plugins) + + async def modify_event_subscription( + self, input: ModifyEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> ModifyEventSubscriptionOutput: + """ + Modifies an existing RDS event notification subscription. You can't + modify the source identifiers using this call. To change source + identifiers for a subscription, use the + `AddSourceIdentifierToSubscription` and + `RemoveSourceIdentifierFromSubscription` calls. + + You can see a list of the event categories for a given source type + (`SourceType`) in + [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) + in the *Amazon RDS User Guide* or by using the `DescribeEventCategories` + operation. + + Args: + input: + An instance of `ModifyEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyEventSubscriptionOutput`. + """ + return await self._invoke(input, _models.MODIFY_EVENT_SUBSCRIPTION, [], plugins) + + async def modify_global_cluster( + self, input: ModifyGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> ModifyGlobalClusterOutput: + """ + Modifies a setting for an Amazon Aurora global database cluster. You can + change one or more database configuration parameters by specifying these + parameters and the new values in the request. For more information on + Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora global database clusters. + + Args: + input: + An instance of `ModifyGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyGlobalClusterOutput`. + """ + return await self._invoke(input, _models.MODIFY_GLOBAL_CLUSTER, [], plugins) + + async def modify_integration( + self, input: ModifyIntegrationInput, plugins: list[Plugin] | None = None + ) -> ModifyIntegrationOutput: + """ + Modifies a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `ModifyIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIntegrationOutput`. + """ + return await self._invoke(input, _models.MODIFY_INTEGRATION, [], plugins) + + async def modify_option_group( + self, input: ModifyOptionGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyOptionGroupOutput: + """ + Modifies an existing option group. + + Args: + input: + An instance of `ModifyOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyOptionGroupOutput`. + """ + return await self._invoke(input, _models.MODIFY_OPTION_GROUP, [], plugins) + + async def modify_tenant_database( + self, input: ModifyTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> ModifyTenantDatabaseOutput: + """ + Modifies an existing tenant database in a DB instance. You can change + the tenant database name or the master user password. This operation is + supported only for RDS for Oracle CDB instances using the multi-tenant + configuration. + + Args: + input: + An instance of `ModifyTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTenantDatabaseOutput`. + """ + return await self._invoke(input, _models.MODIFY_TENANT_DATABASE, [], plugins) + + async def promote_read_replica( + self, input: PromoteReadReplicaInput, plugins: list[Plugin] | None = None + ) -> PromoteReadReplicaOutput: + """ + Promotes a read replica DB instance to a standalone DB instance. + + Note: + - Backup duration is a function of the amount of changes to the database + since the previous backup. If you plan to promote a read replica to a + standalone instance, we recommend that you enable backups and complete + at least one backup prior to promotion. In addition, a read replica + cannot be promoted to a standalone instance when it is in the + `backing-up` status. If you have enabled backups on your read replica, + configure the automated backup window so that daily backups do not + interfere with read replica promotion. + + - This command doesn't apply to Aurora MySQL, Aurora PostgreSQL, or RDS + Custom. + + Args: + input: + An instance of `PromoteReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PromoteReadReplicaOutput`. + """ + return await self._invoke(input, _models.PROMOTE_READ_REPLICA, [], plugins) + + async def promote_read_replica_db_cluster( + self, + input: PromoteReadReplicaDBClusterInput, + plugins: list[Plugin] | None = None, + ) -> PromoteReadReplicaDBClusterOutput: + """ + Promotes a read replica DB cluster to a standalone DB cluster. + + Args: + input: + An instance of `PromoteReadReplicaDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PromoteReadReplicaDBClusterOutput`. + """ + return await self._invoke( + input, _models.PROMOTE_READ_REPLICA_DB_CLUSTER, [], plugins + ) + + async def purchase_reserved_db_instances_offering( + self, + input: PurchaseReservedDBInstancesOfferingInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseReservedDBInstancesOfferingOutput: + """ + Purchases a reserved DB instance offering. + + Args: + input: + An instance of `PurchaseReservedDBInstancesOfferingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseReservedDBInstancesOfferingOutput`. + """ + return await self._invoke( + input, _models.PURCHASE_RESERVED_DB_INSTANCES_OFFERING, [], plugins + ) + + async def reboot_db_cluster( + self, input: RebootDBClusterInput, plugins: list[Plugin] | None = None + ) -> RebootDBClusterOutput: + """ + You might need to reboot your DB cluster, usually for maintenance + reasons. For example, if you make certain modifications, or if you + change the DB cluster parameter group associated with the DB cluster, + reboot the DB cluster for the changes to take effect. + + Rebooting a DB cluster restarts the database engine service. Rebooting a + DB cluster results in a momentary outage, during which the DB cluster + status is set to rebooting. + + Use this operation only for a non-Aurora Multi-AZ DB cluster. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RebootDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBClusterOutput`. + """ + return await self._invoke(input, _models.REBOOT_DB_CLUSTER, [], plugins) + + async def reboot_db_instance( + self, input: RebootDBInstanceInput, plugins: list[Plugin] | None = None + ) -> RebootDBInstanceOutput: + """ + You might need to reboot your DB instance, usually for maintenance + reasons. For example, if you make certain modifications, or if you + change the DB parameter group associated with the DB instance, you must + reboot the instance for the changes to take effect. + + Rebooting a DB instance restarts the database engine service. Rebooting + a DB instance results in a momentary outage, during which the DB + instance status is set to rebooting. + + For more information about rebooting, see [Rebooting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RebootInstance.html) + in the *Amazon RDS User Guide.* + + This command doesn't apply to RDS Custom. + + If your DB instance is part of a Multi-AZ DB cluster, you can reboot the + DB cluster with the `RebootDBCluster` operation. + + Args: + input: + An instance of `RebootDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBInstanceOutput`. + """ + return await self._invoke(input, _models.REBOOT_DB_INSTANCE, [], plugins) + + async def reboot_db_shard_group( + self, input: RebootDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> RebootDBShardGroupOutput: + """ + You might need to reboot your DB shard group, usually for maintenance + reasons. For example, if you make certain modifications, reboot the DB + shard group for the changes to take effect. + + This operation applies only to Aurora Limitless Database DBb shard + groups. + + Args: + input: + An instance of `RebootDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBShardGroupOutput`. + """ + return await self._invoke(input, _models.REBOOT_DB_SHARD_GROUP, [], plugins) + + async def register_db_proxy_targets( + self, input: RegisterDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> RegisterDBProxyTargetsOutput: + """ + Associate one or more `DBProxyTarget` data structures with a + `DBProxyTargetGroup`. + + Args: + input: + An instance of `RegisterDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterDBProxyTargetsOutput`. + """ + return await self._invoke(input, _models.REGISTER_DB_PROXY_TARGETS, [], plugins) + + async def remove_from_global_cluster( + self, input: RemoveFromGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> RemoveFromGlobalClusterOutput: + """ + Detaches an Aurora secondary cluster from an Aurora global database + cluster. The cluster becomes a standalone cluster with read-write + capability instead of being read-only and receiving data from a primary + cluster in a different Region. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `RemoveFromGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveFromGlobalClusterOutput`. + """ + return await self._invoke( + input, _models.REMOVE_FROM_GLOBAL_CLUSTER, [], plugins + ) + + async def remove_role_from_db_cluster( + self, input: RemoveRoleFromDBClusterInput, plugins: list[Plugin] | None = None + ) -> RemoveRoleFromDBClusterOutput: + """ + Removes the asssociation of an Amazon Web Services Identity and Access + Management (IAM) role from a DB cluster. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RemoveRoleFromDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromDBClusterOutput`. + """ + return await self._invoke( + input, _models.REMOVE_ROLE_FROM_DB_CLUSTER, [], plugins + ) + + async def remove_role_from_db_instance( + self, input: RemoveRoleFromDBInstanceInput, plugins: list[Plugin] | None = None + ) -> RemoveRoleFromDBInstanceOutput: + """ + Disassociates an Amazon Web Services Identity and Access Management + (IAM) role from a DB instance. + + Args: + input: + An instance of `RemoveRoleFromDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromDBInstanceOutput`. + """ + return await self._invoke( + input, _models.REMOVE_ROLE_FROM_DB_INSTANCE, [], plugins + ) + + async def remove_source_identifier_from_subscription( + self, + input: RemoveSourceIdentifierFromSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> RemoveSourceIdentifierFromSubscriptionOutput: + """ + Removes a source identifier from an existing RDS event notification + subscription. + + Args: + input: + An instance of `RemoveSourceIdentifierFromSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveSourceIdentifierFromSubscriptionOutput`. + """ + return await self._invoke( + input, _models.REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION, [], plugins + ) + + async def remove_tags_from_resource( + self, input: RemoveTagsFromResourceInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromResourceOutput: + """ + Removes metadata tags from an Amazon RDS resource. + + For an overview on tagging an Amazon RDS resource, see [Tagging Amazon + RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `RemoveTagsFromResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromResourceOutput`. + """ + return await self._invoke(input, _models.REMOVE_TAGS_FROM_RESOURCE, [], plugins) + + async def reset_db_cluster_parameter_group( + self, + input: ResetDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> ResetDBClusterParameterGroupOutput: + """ + Modifies the parameters of a DB cluster parameter group to the default + value. To reset specific parameters submit a list of the following: + `ParameterName` and `ApplyMethod`. To reset the entire DB cluster + parameter group, specify the `DBClusterParameterGroupName` and + `ResetAllParameters` parameters. + + When resetting the entire group, dynamic parameters are updated + immediately and static parameters are set to `pending-reboot` to take + effect on the next DB instance restart or `RebootDBInstance` request. + You must call `RebootDBInstance` for every DB instance in your DB + cluster that you want the updated static parameter to apply to. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `ResetDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetDBClusterParameterGroupOutput`. + """ + return await self._invoke( + input, _models.RESET_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + async def reset_db_parameter_group( + self, input: ResetDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> ResetDBParameterGroupOutput: + """ + Modifies the parameters of a DB parameter group to the engine/system + default value. To reset specific parameters, provide a list of the + following: `ParameterName` and `ApplyMethod`. To reset the entire DB + parameter group, specify the `DBParameterGroup` name and + `ResetAllParameters` parameters. When resetting the entire group, + dynamic parameters are updated immediately and static parameters are set + to `pending-reboot` to take effect on the next DB instance restart or + `RebootDBInstance` request. + + Args: + input: + An instance of `ResetDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetDBParameterGroupOutput`. + """ + return await self._invoke(input, _models.RESET_DB_PARAMETER_GROUP, [], plugins) + + async def restore_db_cluster_from_s3( + self, input: RestoreDBClusterFromS3Input, plugins: list[Plugin] | None = None + ) -> RestoreDBClusterFromS3Output: + """ + Creates an Amazon Aurora DB cluster from MySQL data stored in an Amazon + S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket + and the data must be created using the Percona XtraBackup utility as + described in [Migrating Data from MySQL by Using an Amazon S3 + Bucket](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3) + in the *Amazon Aurora User Guide*. + + Note: + This operation only restores the DB cluster, not the DB instances for + that DB cluster. You must invoke the `CreateDBInstance` operation to + create DB instances for the restored DB cluster, specifying the + identifier of the restored DB cluster in `DBClusterIdentifier`. You can + create DB instances only after the `RestoreDBClusterFromS3` operation + has completed and the DB cluster is available. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. The source DB engine + must be MySQL. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with the + Aurora DB cluster when you restore it from Amazon S3. + + Args: + input: + An instance of `RestoreDBClusterFromS3Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterFromS3Output`. + """ + return await self._invoke( + input, _models.RESTORE_DB_CLUSTER_FROM_S3, [], plugins + ) + + async def restore_db_cluster_from_snapshot( + self, + input: RestoreDBClusterFromSnapshotInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBClusterFromSnapshotOutput: + """ + Creates a new DB cluster from a DB snapshot or DB cluster snapshot. + + The target DB cluster is created from the source snapshot with a default + configuration. If you don't specify a security group, the new DB + cluster is associated with the default security group. + + You can use the `EnableVPCNetworking` and `EnableInternetAccessGateway` + parameters together to restore an Aurora PostgreSQL cluster without VPC + networking and with internet-based connectivity. These two parameters + must always be specified together. Set `EnableVPCNetworking` to `false` + to disable the VPC network interface (ENI) for the cluster. + `EnableInternetAccessGateway` enables internet-based connectivity + through an internet access gateway. IAM database authentication is + required and must be enabled using `EnableIAMDatabaseAuthentication`. + Once the cluster is restored, you need to modify the DB cluster to + update `MasterUserAuthenticationType` to `iam-db-auth`. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster when you restore it from a snapshot. + + Note: + This operation only restores the DB cluster, not the DB instances for + that DB cluster. You must invoke the `CreateDBInstance` operation to + create DB instances for the restored DB cluster, specifying the + identifier of the restored DB cluster in `DBClusterIdentifier`. You can + create DB instances only after the `RestoreDBClusterFromSnapshot` + operation has completed and the DB cluster is available. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RestoreDBClusterFromSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterFromSnapshotOutput`. + """ + return await self._invoke( + input, _models.RESTORE_DB_CLUSTER_FROM_SNAPSHOT, [], plugins + ) + + async def restore_db_cluster_to_point_in_time( + self, + input: RestoreDBClusterToPointInTimeInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBClusterToPointInTimeOutput: + """ + Restores a DB cluster to an arbitrary point in time. Users can restore + to any point in time before `LatestRestorableTime` for up to + `BackupRetentionPeriod` days. The target DB cluster is created from the + source DB cluster with the same configuration as the original DB + cluster, except that the new DB cluster is created with the default DB + security group. Unless the `RestoreType` is set to `copy-on-write`, the + restore may occur in a different Availability Zone (AZ) from the + original DB cluster. The AZ where RDS restores the DB cluster depends on + the AZs in the specified subnet group. + + You can use the `EnableVPCNetworking` and `EnableInternetAccessGateway` + parameters together to restore an Aurora PostgreSQL cluster without VPC + networking and with internet-based connectivity. These two parameters + must always be specified together. Set `EnableVPCNetworking` to `false` + to disable the VPC network interface (ENI) for the cluster. + `EnableInternetAccessGateway` enables internet-based connectivity + through an internet access gateway. IAM database authentication is + required and must be enabled using `EnableIAMDatabaseAuthentication`. + Once the cluster is restored, you need to modify the DB cluster to + update `MasterUserAuthenticationType` to `iam-db-auth`. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster when you restore it to a point in time. + + Note: + For Aurora, this operation only restores the DB cluster, not the DB + instances for that DB cluster. You must invoke the `CreateDBInstance` + operation to create DB instances for the restored DB cluster, specifying + the identifier of the restored DB cluster in `DBClusterIdentifier`. You + can create DB instances only after the `RestoreDBClusterToPointInTime` + operation has completed and the DB cluster is available. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RestoreDBClusterToPointInTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterToPointInTimeOutput`. + """ + return await self._invoke( + input, _models.RESTORE_DB_CLUSTER_TO_POINT_IN_TIME, [], plugins + ) + + async def restore_db_instance_from_db_snapshot( + self, + input: RestoreDBInstanceFromDBSnapshotInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBInstanceFromDBSnapshotOutput: + """ + Creates a new DB instance from a DB snapshot. The target database is + created from the source database restore point with most of the + source's original configuration, including the default security group + and DB parameter group. By default, the new DB instance is created as a + Single-AZ deployment, except when the instance is a SQL Server instance + that has an option group associated with mirroring. In this case, the + instance becomes a Multi-AZ deployment, not a Single-AZ deployment. + + If you want to replace your original DB instance with the new, restored + DB instance, then rename your original DB instance before you call the + `RestoreDBInstanceFromDBSnapshot` operation. RDS doesn't allow two DB + instances with the same name. After you have renamed your original DB + instance with a different identifier, then you can pass the original + name of the DB instance as the `DBInstanceIdentifier` in the call to the + `RestoreDBInstanceFromDBSnapshot` operation. The result is that you + replace the original DB instance with the DB instance created from the + snapshot. + + If you are restoring from a shared manual DB snapshot, the + `DBSnapshotIdentifier` must be the ARN of the shared DB snapshot. + + To restore from a DB snapshot with an unsupported engine version, you + must first upgrade the engine version of the snapshot. For more + information about upgrading a RDS for MySQL DB snapshot engine version, + see [Upgrading a MySQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-upgrade-snapshot.html). + For more information about upgrading a RDS for PostgreSQL DB snapshot + engine version, [Upgrading a PostgreSQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBSnapshot.PostgreSQL.html). + + Note: + This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For + Aurora, use `RestoreDBClusterFromSnapshot`. + + Args: + input: + An instance of `RestoreDBInstanceFromDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceFromDBSnapshotOutput`. + """ + return await self._invoke( + input, _models.RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT, [], plugins + ) + + async def restore_db_instance_from_s3( + self, input: RestoreDBInstanceFromS3Input, plugins: list[Plugin] | None = None + ) -> RestoreDBInstanceFromS3Output: + """ + Amazon Relational Database Service (Amazon RDS) supports importing MySQL + databases by using backup files. You can create a backup of your + on-premises database, store it on Amazon Simple Storage Service (Amazon + S3), and then restore the backup file onto a new Amazon RDS DB instance + running MySQL. For more information, see [Restoring a backup into an + Amazon RDS for MySQL DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html) + in the *Amazon RDS User Guide.* + + This operation doesn't apply to RDS Custom. + + Args: + input: + An instance of `RestoreDBInstanceFromS3Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceFromS3Output`. + """ + return await self._invoke( + input, _models.RESTORE_DB_INSTANCE_FROM_S3, [], plugins + ) + + async def restore_db_instance_to_point_in_time( + self, + input: RestoreDBInstanceToPointInTimeInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBInstanceToPointInTimeOutput: + """ + Restores a DB instance to an arbitrary point in time. You can restore to + any point in time before the time identified by the + `LatestRestorableTime` property. You can restore to a point up to the + number of days specified by the `BackupRetentionPeriod` property. + + The target database is created with most of the original configuration, + but in a system-selected Availability Zone, with the default security + group, the default subnet group, and the default DB parameter group. By + default, the new DB instance is created as a single-AZ deployment except + when the instance is a SQL Server instance that has an option group that + is associated with mirroring; in this case, the instance becomes a + mirrored deployment and not a single-AZ deployment. + + Note: + This operation doesn't apply to Aurora MySQL and Aurora PostgreSQL. For + Aurora, use `RestoreDBClusterToPointInTime`. + + Args: + input: + An instance of `RestoreDBInstanceToPointInTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceToPointInTimeOutput`. + """ + return await self._invoke( + input, _models.RESTORE_DB_INSTANCE_TO_POINT_IN_TIME, [], plugins + ) + + async def revoke_db_security_group_ingress( + self, + input: RevokeDBSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> RevokeDBSecurityGroupIngressOutput: + """ + Revokes ingress from a DBSecurityGroup for previously authorized IP + ranges or EC2 or VPC security groups. Required parameters for this API + are one of CIDRIP, EC2SecurityGroupId for VPC, or + (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or + EC2SecurityGroupId). + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `RevokeDBSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeDBSecurityGroupIngressOutput`. + """ + return await self._invoke( + input, _models.REVOKE_DB_SECURITY_GROUP_INGRESS, [], plugins + ) + + async def start_activity_stream( + self, input: StartActivityStreamInput, plugins: list[Plugin] | None = None + ) -> StartActivityStreamOutput: + """ + Starts a database activity stream to monitor activity on the database. + For more information, see [Monitoring Amazon Aurora with Database + Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) + in the *Amazon Aurora User Guide* or [Monitoring Amazon RDS with + Database Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `StartActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartActivityStreamOutput`. + """ + return await self._invoke(input, _models.START_ACTIVITY_STREAM, [], plugins) + + async def start_db_cluster( + self, input: StartDBClusterInput, plugins: list[Plugin] | None = None + ) -> StartDBClusterOutput: + """ + Starts an Amazon Aurora DB cluster that was stopped using the Amazon Web + Services console, the stop-db-cluster CLI command, or the + `StopDBCluster` operation. + + For more information, see [Stopping and Starting an Aurora + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `StartDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBClusterOutput`. + """ + return await self._invoke(input, _models.START_DB_CLUSTER, [], plugins) + + async def start_db_instance( + self, input: StartDBInstanceInput, plugins: list[Plugin] | None = None + ) -> StartDBInstanceOutput: + """ + Starts an Amazon RDS DB instance that was stopped using the Amazon Web + Services console, the stop-db-instance CLI command, or the + `StopDBInstance` operation. + + For more information, see [Starting an Amazon RDS DB instance That Was + Previously + Stopped](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StartInstance.html) + in the *Amazon RDS User Guide.* + + Note: + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. For Aurora DB clusters, use `StartDBCluster` instead. + + Args: + input: + An instance of `StartDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBInstanceOutput`. + """ + return await self._invoke(input, _models.START_DB_INSTANCE, [], plugins) + + async def start_db_instance_automated_backups_replication( + self, + input: StartDBInstanceAutomatedBackupsReplicationInput, + plugins: list[Plugin] | None = None, + ) -> StartDBInstanceAutomatedBackupsReplicationOutput: + """ + Enables replication of automated backups to a different Amazon Web + Services Region. + + This command doesn't apply to RDS Custom. + + For more information, see [Replicating Automated Backups to Another + Amazon Web Services + Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `StartDBInstanceAutomatedBackupsReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBInstanceAutomatedBackupsReplicationOutput`. + """ + return await self._invoke( + input, _models.START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION, [], plugins + ) + + async def start_export_task( + self, input: StartExportTaskInput, plugins: list[Plugin] | None = None + ) -> StartExportTaskOutput: + """ + Starts an export of DB snapshot or DB cluster data to Amazon S3. The + provided IAM role must have access to the S3 bucket. + + You can't export snapshot data from RDS Custom DB instances. For more + information, see [Supported Regions and DB engines for exporting + snapshots to S3 in Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.ExportSnapshotToS3.html). + + For more information on exporting DB snapshot data, see [Exporting DB + snapshot data to Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.html) + in the *Amazon RDS User Guide* or [Exporting DB cluster snapshot data to + Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-export-snapshot.html) + in the *Amazon Aurora User Guide*. + + For more information on exporting DB cluster data, see [Exporting DB + cluster data to Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/export-cluster-data.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `StartExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartExportTaskOutput`. + """ + return await self._invoke(input, _models.START_EXPORT_TASK, [], plugins) + + async def stop_activity_stream( + self, input: StopActivityStreamInput, plugins: list[Plugin] | None = None + ) -> StopActivityStreamOutput: + """ + Stops a database activity stream that was started using the Amazon Web + Services console, the `start-activity-stream` CLI command, or the + `StartActivityStream` operation. + + For more information, see [Monitoring Amazon Aurora with Database + Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) + in the *Amazon Aurora User Guide* or [Monitoring Amazon RDS with + Database Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `StopActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopActivityStreamOutput`. + """ + return await self._invoke(input, _models.STOP_ACTIVITY_STREAM, [], plugins) + + async def stop_db_cluster( + self, input: StopDBClusterInput, plugins: list[Plugin] | None = None + ) -> StopDBClusterOutput: + """ + Stops an Amazon Aurora DB cluster. When you stop a DB cluster, Aurora + retains the DB cluster's metadata, including its endpoints and DB + parameter groups. Aurora also retains the transaction logs so you can do + a point-in-time restore if necessary. + + For more information, see [Stopping and Starting an Aurora + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `StopDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBClusterOutput`. + """ + return await self._invoke(input, _models.STOP_DB_CLUSTER, [], plugins) + + async def stop_db_instance( + self, input: StopDBInstanceInput, plugins: list[Plugin] | None = None + ) -> StopDBInstanceOutput: + """ + Stops an Amazon RDS DB instance temporarily. When you stop a DB + instance, Amazon RDS retains the DB instance's metadata, including its + endpoint, DB parameter group, and option group membership. Amazon RDS + also retains the transaction logs so you can do a point-in-time restore + if necessary. The instance restarts automatically after 7 days. + + For more information, see [Stopping an Amazon RDS DB Instance + Temporarily](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html) + in the *Amazon RDS User Guide.* + + Note: + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. For Aurora clusters, use `StopDBCluster` instead. + + Args: + input: + An instance of `StopDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBInstanceOutput`. + """ + return await self._invoke(input, _models.STOP_DB_INSTANCE, [], plugins) + + async def stop_db_instance_automated_backups_replication( + self, + input: StopDBInstanceAutomatedBackupsReplicationInput, + plugins: list[Plugin] | None = None, + ) -> StopDBInstanceAutomatedBackupsReplicationOutput: + """ + Stops automated backup replication for a DB instance. + + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. + + For more information, see [Replicating Automated Backups to Another + Amazon Web Services + Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `StopDBInstanceAutomatedBackupsReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBInstanceAutomatedBackupsReplicationOutput`. + """ + return await self._invoke( + input, _models.STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION, [], plugins + ) + + async def switchover_blue_green_deployment( + self, + input: SwitchoverBlueGreenDeploymentInput, + plugins: list[Plugin] | None = None, + ) -> SwitchoverBlueGreenDeploymentOutput: + """ + Switches over a blue/green deployment. + + Before you switch over, production traffic is routed to the databases in + the blue environment. After you switch over, production traffic is + routed to the databases in the green environment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `SwitchoverBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverBlueGreenDeploymentOutput`. + """ + return await self._invoke( + input, _models.SWITCHOVER_BLUE_GREEN_DEPLOYMENT, [], plugins + ) + + async def switchover_global_cluster( + self, input: SwitchoverGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> SwitchoverGlobalClusterOutput: + """ + Switches over the specified secondary DB cluster to be the new primary + DB cluster in the global database cluster. Switchover operations were + previously called \"managed planned failovers.\" + + Aurora promotes the specified secondary cluster to assume full + read/write capabilities and demotes the current primary cluster to a + secondary (read-only) cluster, maintaining the orginal replication + topology. All secondary clusters are synchronized with the primary at + the beginning of the process so the new primary continues operations for + the Aurora global database without losing any data. Your database is + unavailable for a short time while the primary and selected secondary + clusters are assuming their new roles. For more information about + switching over an Aurora global database, see [Performing switchovers + for Amazon Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover) + in the *Amazon Aurora User Guide*. + + Note: + This operation is intended for controlled environments, for operations + such as \"regional rotation\" or to fall back to the original primary + after a global database failover. + + Args: + input: + An instance of `SwitchoverGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverGlobalClusterOutput`. + """ + return await self._invoke(input, _models.SWITCHOVER_GLOBAL_CLUSTER, [], plugins) + + async def switchover_read_replica( + self, input: SwitchoverReadReplicaInput, plugins: list[Plugin] | None = None + ) -> SwitchoverReadReplicaOutput: + """ + Switches over an Oracle standby database in an Oracle Data Guard + environment, making it the new primary database. Issue this command in + the Region that hosts the current standby database. + + Args: + input: + An instance of `SwitchoverReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverReadReplicaOutput`. + """ + return await self._invoke(input, _models.SWITCHOVER_READ_REPLICA, [], plugins) + + async def _new_config(self) -> AsyncRDSConfig: + return await AsyncRDSConfig.resolve() + + async def _post_setup(self, config: AsyncRDSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/aio/config.py b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/config.py new file mode 100644 index 00000000..83ca01f3 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/config.py @@ -0,0 +1,1061 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import AMAZON_RD_SV19 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AddRoleToDBClusterInput, + AddRoleToDBClusterOutput, + AddRoleToDBInstanceInput, + AddRoleToDBInstanceOutput, + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + AddTagsToResourceInput, + AddTagsToResourceOutput, + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + BacktrackDBClusterInput, + BacktrackDBClusterOutput, + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + CopyDBClusterSnapshotInput, + CopyDBClusterSnapshotOutput, + CopyDBParameterGroupInput, + CopyDBParameterGroupOutput, + CopyDBSnapshotInput, + CopyDBSnapshotOutput, + CopyOptionGroupInput, + CopyOptionGroupOutput, + CreateBlueGreenDeploymentInput, + CreateBlueGreenDeploymentOutput, + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + CreateDBClusterEndpointInput, + CreateDBClusterEndpointOutput, + CreateDBClusterInput, + CreateDBClusterOutput, + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + CreateDBClusterSnapshotInput, + CreateDBClusterSnapshotOutput, + CreateDBInstanceInput, + CreateDBInstanceOutput, + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + CreateDBParameterGroupInput, + CreateDBParameterGroupOutput, + CreateDBProxyEndpointInput, + CreateDBProxyEndpointOutput, + CreateDBProxyInput, + CreateDBProxyOutput, + CreateDBSecurityGroupInput, + CreateDBSecurityGroupOutput, + CreateDBShardGroupInput, + CreateDBShardGroupOutput, + CreateDBSnapshotInput, + CreateDBSnapshotOutput, + CreateDBSubnetGroupInput, + CreateDBSubnetGroupOutput, + CreateEventSubscriptionInput, + CreateEventSubscriptionOutput, + CreateGlobalClusterInput, + CreateGlobalClusterOutput, + CreateIntegrationInput, + CreateIntegrationOutput, + CreateOptionGroupInput, + CreateOptionGroupOutput, + CreateTenantDatabaseInput, + CreateTenantDatabaseOutput, + DeleteBlueGreenDeploymentInput, + DeleteBlueGreenDeploymentOutput, + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + DeleteDBClusterEndpointInput, + DeleteDBClusterEndpointOutput, + DeleteDBClusterInput, + DeleteDBClusterOutput, + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + DeleteDBClusterSnapshotInput, + DeleteDBClusterSnapshotOutput, + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + DeleteDBInstanceInput, + DeleteDBInstanceOutput, + DeleteDBParameterGroupInput, + DeleteDBParameterGroupOutput, + DeleteDBProxyEndpointInput, + DeleteDBProxyEndpointOutput, + DeleteDBProxyInput, + DeleteDBProxyOutput, + DeleteDBSecurityGroupInput, + DeleteDBSecurityGroupOutput, + DeleteDBShardGroupInput, + DeleteDBShardGroupOutput, + DeleteDBSnapshotInput, + DeleteDBSnapshotOutput, + DeleteDBSubnetGroupInput, + DeleteDBSubnetGroupOutput, + DeleteEventSubscriptionInput, + DeleteEventSubscriptionOutput, + DeleteGlobalClusterInput, + DeleteGlobalClusterOutput, + DeleteIntegrationInput, + DeleteIntegrationOutput, + DeleteOptionGroupInput, + DeleteOptionGroupOutput, + DeleteTenantDatabaseInput, + DeleteTenantDatabaseOutput, + DeregisterDBProxyTargetsInput, + DeregisterDBProxyTargetsOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + DescribeCertificatesInput, + DescribeCertificatesOutput, + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + DescribeDBClusterEndpointsInput, + DescribeDBClusterEndpointsOutput, + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + DescribeDBClusterSnapshotsInput, + DescribeDBClusterSnapshotsOutput, + DescribeDBClustersInput, + DescribeDBClustersOutput, + DescribeDBEngineVersionsInput, + DescribeDBEngineVersionsOutput, + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + DescribeDBInstancesInput, + DescribeDBInstancesOutput, + DescribeDBLogFilesInput, + DescribeDBLogFilesOutput, + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + DescribeDBParameterGroupsInput, + DescribeDBParameterGroupsOutput, + DescribeDBParametersInput, + DescribeDBParametersOutput, + DescribeDBProxiesInput, + DescribeDBProxiesOutput, + DescribeDBProxyEndpointsInput, + DescribeDBProxyEndpointsOutput, + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + DescribeDBProxyTargetsInput, + DescribeDBProxyTargetsOutput, + DescribeDBRecommendationsInput, + DescribeDBRecommendationsOutput, + DescribeDBSecurityGroupsInput, + DescribeDBSecurityGroupsOutput, + DescribeDBShardGroupsInput, + DescribeDBShardGroupsOutput, + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + DescribeDBSnapshotsInput, + DescribeDBSnapshotsOutput, + DescribeDBSubnetGroupsInput, + DescribeDBSubnetGroupsOutput, + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + DescribeEventCategoriesInput, + DescribeEventCategoriesOutput, + DescribeEventSubscriptionsInput, + DescribeEventSubscriptionsOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeGlobalClustersInput, + DescribeGlobalClustersOutput, + DescribeIntegrationsInput, + DescribeIntegrationsOutput, + DescribeOptionGroupOptionsInput, + DescribeOptionGroupOptionsOutput, + DescribeOptionGroupsInput, + DescribeOptionGroupsOutput, + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + DescribeReservedDBInstancesOutput, + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + DescribeSourceRegionsInput, + DescribeSourceRegionsOutput, + DescribeTenantDatabasesInput, + DescribeTenantDatabasesOutput, + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + DisableHttpEndpointInput, + DisableHttpEndpointOutput, + DownloadDBLogFilePortionInput, + DownloadDBLogFilePortionOutput, + EnableHttpEndpointInput, + EnableHttpEndpointOutput, + FailoverDBClusterInput, + FailoverDBClusterOutput, + FailoverGlobalClusterInput, + FailoverGlobalClusterOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ModifyActivityStreamInput, + ModifyActivityStreamOutput, + ModifyCertificatesInput, + ModifyCertificatesOutput, + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + ModifyDBClusterEndpointInput, + ModifyDBClusterEndpointOutput, + ModifyDBClusterInput, + ModifyDBClusterOutput, + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + ModifyDBInstanceInput, + ModifyDBInstanceOutput, + ModifyDBParameterGroupInput, + ModifyDBParameterGroupOutput, + ModifyDBProxyEndpointInput, + ModifyDBProxyEndpointOutput, + ModifyDBProxyInput, + ModifyDBProxyOutput, + ModifyDBProxyTargetGroupInput, + ModifyDBProxyTargetGroupOutput, + ModifyDBRecommendationInput, + ModifyDBRecommendationOutput, + ModifyDBShardGroupInput, + ModifyDBShardGroupOutput, + ModifyDBSnapshotAttributeInput, + ModifyDBSnapshotAttributeOutput, + ModifyDBSnapshotInput, + ModifyDBSnapshotOutput, + ModifyDBSubnetGroupInput, + ModifyDBSubnetGroupOutput, + ModifyEventSubscriptionInput, + ModifyEventSubscriptionOutput, + ModifyGlobalClusterInput, + ModifyGlobalClusterOutput, + ModifyIntegrationInput, + ModifyIntegrationOutput, + ModifyOptionGroupInput, + ModifyOptionGroupOutput, + ModifyTenantDatabaseInput, + ModifyTenantDatabaseOutput, + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + PromoteReadReplicaInput, + PromoteReadReplicaOutput, + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + RebootDBClusterInput, + RebootDBClusterOutput, + RebootDBInstanceInput, + RebootDBInstanceOutput, + RebootDBShardGroupInput, + RebootDBShardGroupOutput, + RegisterDBProxyTargetsInput, + RegisterDBProxyTargetsOutput, + RemoveFromGlobalClusterInput, + RemoveFromGlobalClusterOutput, + RemoveRoleFromDBClusterInput, + RemoveRoleFromDBClusterOutput, + RemoveRoleFromDBInstanceInput, + RemoveRoleFromDBInstanceOutput, + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + RemoveTagsFromResourceInput, + RemoveTagsFromResourceOutput, + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + ResetDBParameterGroupInput, + ResetDBParameterGroupOutput, + RestoreDBClusterFromS3Input, + RestoreDBClusterFromS3Output, + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + RestoreDBInstanceFromS3Input, + RestoreDBInstanceFromS3Output, + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + StartActivityStreamInput, + StartActivityStreamOutput, + StartDBClusterInput, + StartDBClusterOutput, + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + StartDBInstanceInput, + StartDBInstanceOutput, + StartExportTaskInput, + StartExportTaskOutput, + StopActivityStreamInput, + StopActivityStreamOutput, + StopDBClusterInput, + StopDBClusterOutput, + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + StopDBInstanceInput, + StopDBInstanceOutput, + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + SwitchoverGlobalClusterInput, + SwitchoverGlobalClusterOutput, + SwitchoverReadReplicaInput, + SwitchoverReadReplicaOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddRoleToDBClusterInput, AddRoleToDBClusterOutput, Any, Any], + Interceptor[AddRoleToDBInstanceInput, AddRoleToDBInstanceOutput, Any, Any], + Interceptor[ + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + Any, + Any, + ], + Interceptor[AddTagsToResourceInput, AddTagsToResourceOutput, Any, Any], + Interceptor[ + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + Any, + Any, + ], + Interceptor[ + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[BacktrackDBClusterInput, BacktrackDBClusterOutput, Any, Any], + Interceptor[ + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[CancelExportTaskInput, CancelExportTaskOutput, Any, Any], + Interceptor[ + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[CopyDBClusterSnapshotInput, CopyDBClusterSnapshotOutput, Any, Any], + Interceptor[CopyDBParameterGroupInput, CopyDBParameterGroupOutput, Any, Any], + Interceptor[CopyDBSnapshotInput, CopyDBSnapshotOutput, Any, Any], + Interceptor[CopyOptionGroupInput, CopyOptionGroupOutput, Any, Any], + Interceptor[ + CreateBlueGreenDeploymentInput, CreateBlueGreenDeploymentOutput, Any, Any + ], + Interceptor[ + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[ + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[CreateDBClusterInput, CreateDBClusterOutput, Any, Any], + Interceptor[ + CreateDBClusterEndpointInput, CreateDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + CreateDBClusterSnapshotInput, CreateDBClusterSnapshotOutput, Any, Any + ], + Interceptor[CreateDBInstanceInput, CreateDBInstanceOutput, Any, Any], + Interceptor[ + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + Any, + Any, + ], + Interceptor[ + CreateDBParameterGroupInput, CreateDBParameterGroupOutput, Any, Any + ], + Interceptor[CreateDBProxyInput, CreateDBProxyOutput, Any, Any], + Interceptor[CreateDBProxyEndpointInput, CreateDBProxyEndpointOutput, Any, Any], + Interceptor[CreateDBSecurityGroupInput, CreateDBSecurityGroupOutput, Any, Any], + Interceptor[CreateDBShardGroupInput, CreateDBShardGroupOutput, Any, Any], + Interceptor[CreateDBSnapshotInput, CreateDBSnapshotOutput, Any, Any], + Interceptor[CreateDBSubnetGroupInput, CreateDBSubnetGroupOutput, Any, Any], + Interceptor[ + CreateEventSubscriptionInput, CreateEventSubscriptionOutput, Any, Any + ], + Interceptor[CreateGlobalClusterInput, CreateGlobalClusterOutput, Any, Any], + Interceptor[CreateIntegrationInput, CreateIntegrationOutput, Any, Any], + Interceptor[CreateOptionGroupInput, CreateOptionGroupOutput, Any, Any], + Interceptor[CreateTenantDatabaseInput, CreateTenantDatabaseOutput, Any, Any], + Interceptor[ + DeleteBlueGreenDeploymentInput, DeleteBlueGreenDeploymentOutput, Any, Any + ], + Interceptor[ + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[DeleteDBClusterInput, DeleteDBClusterOutput, Any, Any], + Interceptor[ + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBClusterEndpointInput, DeleteDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBClusterSnapshotInput, DeleteDBClusterSnapshotOutput, Any, Any + ], + Interceptor[DeleteDBInstanceInput, DeleteDBInstanceOutput, Any, Any], + Interceptor[ + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBParameterGroupInput, DeleteDBParameterGroupOutput, Any, Any + ], + Interceptor[DeleteDBProxyInput, DeleteDBProxyOutput, Any, Any], + Interceptor[DeleteDBProxyEndpointInput, DeleteDBProxyEndpointOutput, Any, Any], + Interceptor[DeleteDBSecurityGroupInput, DeleteDBSecurityGroupOutput, Any, Any], + Interceptor[DeleteDBShardGroupInput, DeleteDBShardGroupOutput, Any, Any], + Interceptor[DeleteDBSnapshotInput, DeleteDBSnapshotOutput, Any, Any], + Interceptor[DeleteDBSubnetGroupInput, DeleteDBSubnetGroupOutput, Any, Any], + Interceptor[ + DeleteEventSubscriptionInput, DeleteEventSubscriptionOutput, Any, Any + ], + Interceptor[DeleteGlobalClusterInput, DeleteGlobalClusterOutput, Any, Any], + Interceptor[DeleteIntegrationInput, DeleteIntegrationOutput, Any, Any], + Interceptor[DeleteOptionGroupInput, DeleteOptionGroupOutput, Any, Any], + Interceptor[DeleteTenantDatabaseInput, DeleteTenantDatabaseOutput, Any, Any], + Interceptor[ + DeregisterDBProxyTargetsInput, DeregisterDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput, Any, Any + ], + Interceptor[ + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + Any, + Any, + ], + Interceptor[DescribeCertificatesInput, DescribeCertificatesOutput, Any, Any], + Interceptor[ + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterEndpointsInput, DescribeDBClusterEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + Any, + Any, + ], + Interceptor[DescribeDBClustersInput, DescribeDBClustersOutput, Any, Any], + Interceptor[ + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterSnapshotsInput, DescribeDBClusterSnapshotsOutput, Any, Any + ], + Interceptor[ + DescribeDBEngineVersionsInput, DescribeDBEngineVersionsOutput, Any, Any + ], + Interceptor[ + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + Any, + Any, + ], + Interceptor[DescribeDBInstancesInput, DescribeDBInstancesOutput, Any, Any], + Interceptor[DescribeDBLogFilesInput, DescribeDBLogFilesOutput, Any, Any], + Interceptor[ + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBParameterGroupsInput, DescribeDBParameterGroupsOutput, Any, Any + ], + Interceptor[DescribeDBParametersInput, DescribeDBParametersOutput, Any, Any], + Interceptor[DescribeDBProxiesInput, DescribeDBProxiesOutput, Any, Any], + Interceptor[ + DescribeDBProxyEndpointsInput, DescribeDBProxyEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBProxyTargetsInput, DescribeDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + DescribeDBRecommendationsInput, DescribeDBRecommendationsOutput, Any, Any + ], + Interceptor[ + DescribeDBSecurityGroupsInput, DescribeDBSecurityGroupsOutput, Any, Any + ], + Interceptor[DescribeDBShardGroupsInput, DescribeDBShardGroupsOutput, Any, Any], + Interceptor[ + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + Any, + Any, + ], + Interceptor[DescribeDBSnapshotsInput, DescribeDBSnapshotsOutput, Any, Any], + Interceptor[ + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBSubnetGroupsInput, DescribeDBSubnetGroupsOutput, Any, Any + ], + Interceptor[ + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + Any, + Any, + ], + Interceptor[ + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + Any, + Any, + ], + Interceptor[ + DescribeEventCategoriesInput, DescribeEventCategoriesOutput, Any, Any + ], + Interceptor[DescribeEventsInput, DescribeEventsOutput, Any, Any], + Interceptor[ + DescribeEventSubscriptionsInput, DescribeEventSubscriptionsOutput, Any, Any + ], + Interceptor[DescribeExportTasksInput, DescribeExportTasksOutput, Any, Any], + Interceptor[ + DescribeGlobalClustersInput, DescribeGlobalClustersOutput, Any, Any + ], + Interceptor[DescribeIntegrationsInput, DescribeIntegrationsOutput, Any, Any], + Interceptor[ + DescribeOptionGroupOptionsInput, DescribeOptionGroupOptionsOutput, Any, Any + ], + Interceptor[DescribeOptionGroupsInput, DescribeOptionGroupsOutput, Any, Any], + Interceptor[ + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + Any, + Any, + ], + Interceptor[DescribeSourceRegionsInput, DescribeSourceRegionsOutput, Any, Any], + Interceptor[ + DescribeTenantDatabasesInput, DescribeTenantDatabasesOutput, Any, Any + ], + Interceptor[ + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + Any, + Any, + ], + Interceptor[DisableHttpEndpointInput, DisableHttpEndpointOutput, Any, Any], + Interceptor[ + DownloadDBLogFilePortionInput, DownloadDBLogFilePortionOutput, Any, Any + ], + Interceptor[EnableHttpEndpointInput, EnableHttpEndpointOutput, Any, Any], + Interceptor[FailoverDBClusterInput, FailoverDBClusterOutput, Any, Any], + Interceptor[FailoverGlobalClusterInput, FailoverGlobalClusterOutput, Any, Any], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ModifyActivityStreamInput, ModifyActivityStreamOutput, Any, Any], + Interceptor[ModifyCertificatesInput, ModifyCertificatesOutput, Any, Any], + Interceptor[ + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + Any, + Any, + ], + Interceptor[ + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[ + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[ModifyDBClusterInput, ModifyDBClusterOutput, Any, Any], + Interceptor[ + ModifyDBClusterEndpointInput, ModifyDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + Any, + Any, + ], + Interceptor[ModifyDBInstanceInput, ModifyDBInstanceOutput, Any, Any], + Interceptor[ + ModifyDBParameterGroupInput, ModifyDBParameterGroupOutput, Any, Any + ], + Interceptor[ModifyDBProxyInput, ModifyDBProxyOutput, Any, Any], + Interceptor[ModifyDBProxyEndpointInput, ModifyDBProxyEndpointOutput, Any, Any], + Interceptor[ + ModifyDBProxyTargetGroupInput, ModifyDBProxyTargetGroupOutput, Any, Any + ], + Interceptor[ + ModifyDBRecommendationInput, ModifyDBRecommendationOutput, Any, Any + ], + Interceptor[ModifyDBShardGroupInput, ModifyDBShardGroupOutput, Any, Any], + Interceptor[ModifyDBSnapshotInput, ModifyDBSnapshotOutput, Any, Any], + Interceptor[ + ModifyDBSnapshotAttributeInput, ModifyDBSnapshotAttributeOutput, Any, Any + ], + Interceptor[ModifyDBSubnetGroupInput, ModifyDBSubnetGroupOutput, Any, Any], + Interceptor[ + ModifyEventSubscriptionInput, ModifyEventSubscriptionOutput, Any, Any + ], + Interceptor[ModifyGlobalClusterInput, ModifyGlobalClusterOutput, Any, Any], + Interceptor[ModifyIntegrationInput, ModifyIntegrationOutput, Any, Any], + Interceptor[ModifyOptionGroupInput, ModifyOptionGroupOutput, Any, Any], + Interceptor[ModifyTenantDatabaseInput, ModifyTenantDatabaseOutput, Any, Any], + Interceptor[PromoteReadReplicaInput, PromoteReadReplicaOutput, Any, Any], + Interceptor[ + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + Any, + Any, + ], + Interceptor[ + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + Any, + Any, + ], + Interceptor[RebootDBClusterInput, RebootDBClusterOutput, Any, Any], + Interceptor[RebootDBInstanceInput, RebootDBInstanceOutput, Any, Any], + Interceptor[RebootDBShardGroupInput, RebootDBShardGroupOutput, Any, Any], + Interceptor[ + RegisterDBProxyTargetsInput, RegisterDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + RemoveFromGlobalClusterInput, RemoveFromGlobalClusterOutput, Any, Any + ], + Interceptor[ + RemoveRoleFromDBClusterInput, RemoveRoleFromDBClusterOutput, Any, Any + ], + Interceptor[ + RemoveRoleFromDBInstanceInput, RemoveRoleFromDBInstanceOutput, Any, Any + ], + Interceptor[ + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + RemoveTagsFromResourceInput, RemoveTagsFromResourceOutput, Any, Any + ], + Interceptor[ + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ResetDBParameterGroupInput, ResetDBParameterGroupOutput, Any, Any], + Interceptor[ + RestoreDBClusterFromS3Input, RestoreDBClusterFromS3Output, Any, Any + ], + Interceptor[ + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBInstanceFromS3Input, RestoreDBInstanceFromS3Output, Any, Any + ], + Interceptor[ + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + Any, + Any, + ], + Interceptor[ + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[StartActivityStreamInput, StartActivityStreamOutput, Any, Any], + Interceptor[StartDBClusterInput, StartDBClusterOutput, Any, Any], + Interceptor[StartDBInstanceInput, StartDBInstanceOutput, Any, Any], + Interceptor[ + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + Any, + Any, + ], + Interceptor[StartExportTaskInput, StartExportTaskOutput, Any, Any], + Interceptor[StopActivityStreamInput, StopActivityStreamOutput, Any, Any], + Interceptor[StopDBClusterInput, StopDBClusterOutput, Any, Any], + Interceptor[StopDBInstanceInput, StopDBInstanceOutput, Any, Any], + Interceptor[ + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + Any, + Any, + ], + Interceptor[ + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + Any, + Any, + ], + Interceptor[ + SwitchoverGlobalClusterInput, SwitchoverGlobalClusterOutput, Any, Any + ], + Interceptor[SwitchoverReadReplicaInput, SwitchoverReadReplicaOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.rds", + service_target="AmazonRDSv19", + version="2014-10-31", + service_schema=AMAZON_RD_SV19, +) + + +class _AsyncRDSConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncRDSConfig(AsyncAwsConfig): + """RDS configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("rds").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="rds") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncRDSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncRDSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/aio/user_agent.py b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/user_agent.py new file mode 100644 index 00000000..8042b6f4 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncRDSConfig + + +def aws_user_agent_plugin(config: AsyncRDSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="RDS", + ) + ) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/auth.py b/clients/aws-sdk-rds/src/aws_sdk_rds/auth.py new file mode 100644 index 00000000..24ca90fe --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/auth.py @@ -0,0 +1,31 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={}, # type: ignore + ) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/client.py b/clients/aws-sdk-rds/src/aws_sdk_rds/client.py new file mode 100644 index 00000000..854cde84 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/client.py @@ -0,0 +1,5551 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .config import Plugin, RDSConfig +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AddRoleToDBClusterInput, + AddRoleToDBClusterOutput, + AddRoleToDBInstanceInput, + AddRoleToDBInstanceOutput, + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + AddTagsToResourceInput, + AddTagsToResourceOutput, + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + BacktrackDBClusterInput, + BacktrackDBClusterOutput, + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + CopyDBClusterSnapshotInput, + CopyDBClusterSnapshotOutput, + CopyDBParameterGroupInput, + CopyDBParameterGroupOutput, + CopyDBSnapshotInput, + CopyDBSnapshotOutput, + CopyOptionGroupInput, + CopyOptionGroupOutput, + CreateBlueGreenDeploymentInput, + CreateBlueGreenDeploymentOutput, + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + CreateDBClusterEndpointInput, + CreateDBClusterEndpointOutput, + CreateDBClusterInput, + CreateDBClusterOutput, + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + CreateDBClusterSnapshotInput, + CreateDBClusterSnapshotOutput, + CreateDBInstanceInput, + CreateDBInstanceOutput, + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + CreateDBParameterGroupInput, + CreateDBParameterGroupOutput, + CreateDBProxyEndpointInput, + CreateDBProxyEndpointOutput, + CreateDBProxyInput, + CreateDBProxyOutput, + CreateDBSecurityGroupInput, + CreateDBSecurityGroupOutput, + CreateDBShardGroupInput, + CreateDBShardGroupOutput, + CreateDBSnapshotInput, + CreateDBSnapshotOutput, + CreateDBSubnetGroupInput, + CreateDBSubnetGroupOutput, + CreateEventSubscriptionInput, + CreateEventSubscriptionOutput, + CreateGlobalClusterInput, + CreateGlobalClusterOutput, + CreateIntegrationInput, + CreateIntegrationOutput, + CreateOptionGroupInput, + CreateOptionGroupOutput, + CreateTenantDatabaseInput, + CreateTenantDatabaseOutput, + DeleteBlueGreenDeploymentInput, + DeleteBlueGreenDeploymentOutput, + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + DeleteDBClusterEndpointInput, + DeleteDBClusterEndpointOutput, + DeleteDBClusterInput, + DeleteDBClusterOutput, + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + DeleteDBClusterSnapshotInput, + DeleteDBClusterSnapshotOutput, + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + DeleteDBInstanceInput, + DeleteDBInstanceOutput, + DeleteDBParameterGroupInput, + DeleteDBParameterGroupOutput, + DeleteDBProxyEndpointInput, + DeleteDBProxyEndpointOutput, + DeleteDBProxyInput, + DeleteDBProxyOutput, + DeleteDBSecurityGroupInput, + DeleteDBSecurityGroupOutput, + DeleteDBShardGroupInput, + DeleteDBShardGroupOutput, + DeleteDBSnapshotInput, + DeleteDBSnapshotOutput, + DeleteDBSubnetGroupInput, + DeleteDBSubnetGroupOutput, + DeleteEventSubscriptionInput, + DeleteEventSubscriptionOutput, + DeleteGlobalClusterInput, + DeleteGlobalClusterOutput, + DeleteIntegrationInput, + DeleteIntegrationOutput, + DeleteOptionGroupInput, + DeleteOptionGroupOutput, + DeleteTenantDatabaseInput, + DeleteTenantDatabaseOutput, + DeregisterDBProxyTargetsInput, + DeregisterDBProxyTargetsOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + DescribeCertificatesInput, + DescribeCertificatesOutput, + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + DescribeDBClusterEndpointsInput, + DescribeDBClusterEndpointsOutput, + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + DescribeDBClusterSnapshotsInput, + DescribeDBClusterSnapshotsOutput, + DescribeDBClustersInput, + DescribeDBClustersOutput, + DescribeDBEngineVersionsInput, + DescribeDBEngineVersionsOutput, + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + DescribeDBInstancesInput, + DescribeDBInstancesOutput, + DescribeDBLogFilesInput, + DescribeDBLogFilesOutput, + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + DescribeDBParameterGroupsInput, + DescribeDBParameterGroupsOutput, + DescribeDBParametersInput, + DescribeDBParametersOutput, + DescribeDBProxiesInput, + DescribeDBProxiesOutput, + DescribeDBProxyEndpointsInput, + DescribeDBProxyEndpointsOutput, + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + DescribeDBProxyTargetsInput, + DescribeDBProxyTargetsOutput, + DescribeDBRecommendationsInput, + DescribeDBRecommendationsOutput, + DescribeDBSecurityGroupsInput, + DescribeDBSecurityGroupsOutput, + DescribeDBShardGroupsInput, + DescribeDBShardGroupsOutput, + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + DescribeDBSnapshotsInput, + DescribeDBSnapshotsOutput, + DescribeDBSubnetGroupsInput, + DescribeDBSubnetGroupsOutput, + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + DescribeEventCategoriesInput, + DescribeEventCategoriesOutput, + DescribeEventSubscriptionsInput, + DescribeEventSubscriptionsOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeGlobalClustersInput, + DescribeGlobalClustersOutput, + DescribeIntegrationsInput, + DescribeIntegrationsOutput, + DescribeOptionGroupOptionsInput, + DescribeOptionGroupOptionsOutput, + DescribeOptionGroupsInput, + DescribeOptionGroupsOutput, + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + DescribeReservedDBInstancesOutput, + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + DescribeSourceRegionsInput, + DescribeSourceRegionsOutput, + DescribeTenantDatabasesInput, + DescribeTenantDatabasesOutput, + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + DisableHttpEndpointInput, + DisableHttpEndpointOutput, + DownloadDBLogFilePortionInput, + DownloadDBLogFilePortionOutput, + EnableHttpEndpointInput, + EnableHttpEndpointOutput, + FailoverDBClusterInput, + FailoverDBClusterOutput, + FailoverGlobalClusterInput, + FailoverGlobalClusterOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ModifyActivityStreamInput, + ModifyActivityStreamOutput, + ModifyCertificatesInput, + ModifyCertificatesOutput, + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + ModifyDBClusterEndpointInput, + ModifyDBClusterEndpointOutput, + ModifyDBClusterInput, + ModifyDBClusterOutput, + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + ModifyDBInstanceInput, + ModifyDBInstanceOutput, + ModifyDBParameterGroupInput, + ModifyDBParameterGroupOutput, + ModifyDBProxyEndpointInput, + ModifyDBProxyEndpointOutput, + ModifyDBProxyInput, + ModifyDBProxyOutput, + ModifyDBProxyTargetGroupInput, + ModifyDBProxyTargetGroupOutput, + ModifyDBRecommendationInput, + ModifyDBRecommendationOutput, + ModifyDBShardGroupInput, + ModifyDBShardGroupOutput, + ModifyDBSnapshotAttributeInput, + ModifyDBSnapshotAttributeOutput, + ModifyDBSnapshotInput, + ModifyDBSnapshotOutput, + ModifyDBSubnetGroupInput, + ModifyDBSubnetGroupOutput, + ModifyEventSubscriptionInput, + ModifyEventSubscriptionOutput, + ModifyGlobalClusterInput, + ModifyGlobalClusterOutput, + ModifyIntegrationInput, + ModifyIntegrationOutput, + ModifyOptionGroupInput, + ModifyOptionGroupOutput, + ModifyTenantDatabaseInput, + ModifyTenantDatabaseOutput, + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + PromoteReadReplicaInput, + PromoteReadReplicaOutput, + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + RebootDBClusterInput, + RebootDBClusterOutput, + RebootDBInstanceInput, + RebootDBInstanceOutput, + RebootDBShardGroupInput, + RebootDBShardGroupOutput, + RegisterDBProxyTargetsInput, + RegisterDBProxyTargetsOutput, + RemoveFromGlobalClusterInput, + RemoveFromGlobalClusterOutput, + RemoveRoleFromDBClusterInput, + RemoveRoleFromDBClusterOutput, + RemoveRoleFromDBInstanceInput, + RemoveRoleFromDBInstanceOutput, + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + RemoveTagsFromResourceInput, + RemoveTagsFromResourceOutput, + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + ResetDBParameterGroupInput, + ResetDBParameterGroupOutput, + RestoreDBClusterFromS3Input, + RestoreDBClusterFromS3Output, + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + RestoreDBInstanceFromS3Input, + RestoreDBInstanceFromS3Output, + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + StartActivityStreamInput, + StartActivityStreamOutput, + StartDBClusterInput, + StartDBClusterOutput, + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + StartDBInstanceInput, + StartDBInstanceOutput, + StartExportTaskInput, + StartExportTaskOutput, + StopActivityStreamInput, + StopActivityStreamOutput, + StopDBClusterInput, + StopDBClusterOutput, + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + StopDBInstanceInput, + StopDBInstanceOutput, + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + SwitchoverGlobalClusterInput, + SwitchoverGlobalClusterOutput, + SwitchoverReadReplicaInput, + SwitchoverReadReplicaOutput, + ) + + +logger = logging.getLogger(__name__) + + +class RDSClient(Client[RDSConfig]): + """ + Amazon Relational Database Service (Amazon RDS) is a web service that + makes it easier to set up, operate, and scale a relational database in + the cloud. It provides cost-efficient, resizeable capacity for an + industry-standard relational database and manages common database + administration tasks, freeing up developers to focus on what makes their + applications and businesses unique. + + Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, + PostgreSQL, Microsoft SQL Server, Oracle, Db2, or Amazon Aurora database + server. These capabilities mean that the code, applications, and tools + you already use today with your existing databases work with Amazon RDS + without modification. Amazon RDS automatically backs up your database + and maintains the database software that powers your DB instance. Amazon + RDS is flexible: you can scale your DB instance's compute resources and + storage capacity to meet your application's demand. As with all Amazon + Web Services, there are no up-front investments, and you pay only for + the resources you use. + + This interface reference for Amazon RDS contains documentation for a + programming or command line interface you can use to manage Amazon RDS. + Amazon RDS is asynchronous, which means that some interfaces might + require techniques such as polling or callback functions to determine + when a command has been applied. In this reference, the parameter + descriptions indicate whether a command is applied immediately, on the + next instance reboot, or during the maintenance window. The reference + structure is as follows, and we list following some related topics from + the user guide. + + **Amazon RDS API Reference** + + - For the alphabetical list of API actions, see [API + Actions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Operations.html). + + - For the alphabetical list of data types, see [Data + Types](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Types.html). + + - For a list of common query parameters, see [Common + Parameters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonParameters.html). + + - For descriptions of the error codes, see [Common + Errors](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonErrors.html). + + **Amazon RDS User Guide** + + - For a summary of the Amazon RDS interfaces, see [Available RDS + Interfaces](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Interfaces). + + - For more information about how to use the Query API, see [Using the + Query + API](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html). + """ + + _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + + def add_role_to_db_cluster( + self, input: AddRoleToDBClusterInput, plugins: list[Plugin] | None = None + ) -> AddRoleToDBClusterOutput: + """ + Associates an Identity and Access Management (IAM) role with a DB + cluster. + + Args: + input: + An instance of `AddRoleToDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToDBClusterOutput`. + """ + return self._invoke(input, _models.ADD_ROLE_TO_DB_CLUSTER, [], plugins) + + def add_role_to_db_instance( + self, input: AddRoleToDBInstanceInput, plugins: list[Plugin] | None = None + ) -> AddRoleToDBInstanceOutput: + """ + Associates an Amazon Web Services Identity and Access Management (IAM) + role with a DB instance. + + Note: + To add a role to a DB instance, the status of the DB instance must be + `available`. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `AddRoleToDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddRoleToDBInstanceOutput`. + """ + return self._invoke(input, _models.ADD_ROLE_TO_DB_INSTANCE, [], plugins) + + def add_source_identifier_to_subscription( + self, + input: AddSourceIdentifierToSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> AddSourceIdentifierToSubscriptionOutput: + """ + Adds a source identifier to an existing RDS event notification + subscription. + + Args: + input: + An instance of `AddSourceIdentifierToSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddSourceIdentifierToSubscriptionOutput`. + """ + return self._invoke( + input, _models.ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION, [], plugins + ) + + def add_tags_to_resource( + self, input: AddTagsToResourceInput, plugins: list[Plugin] | None = None + ) -> AddTagsToResourceOutput: + """ + Adds metadata tags to an Amazon RDS resource. These tags can also be + used with cost allocation reporting to track cost associated with Amazon + RDS resources, or used in a Condition statement in an IAM policy for + Amazon RDS. + + For an overview on tagging your relational database resources, see + [Tagging Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html). + + Args: + input: + An instance of `AddTagsToResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AddTagsToResourceOutput`. + """ + return self._invoke(input, _models.ADD_TAGS_TO_RESOURCE, [], plugins) + + def apply_pending_maintenance_action( + self, + input: ApplyPendingMaintenanceActionInput, + plugins: list[Plugin] | None = None, + ) -> ApplyPendingMaintenanceActionOutput: + """ + Applies a pending maintenance action to a resource (for example, to a DB + instance). + + Args: + input: + An instance of `ApplyPendingMaintenanceActionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ApplyPendingMaintenanceActionOutput`. + """ + return self._invoke( + input, _models.APPLY_PENDING_MAINTENANCE_ACTION, [], plugins + ) + + def authorize_db_security_group_ingress( + self, + input: AuthorizeDBSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> AuthorizeDBSecurityGroupIngressOutput: + """ + Enables ingress to a DBSecurityGroup using one of two forms of + authorization. First, EC2 or VPC security groups can be added to the + DBSecurityGroup if the application using the database is running on EC2 + or VPC instances. Second, IP ranges are available if the application + accessing your database is running on the internet. Required parameters + for this API are one of CIDR range, EC2SecurityGroupId for VPC, or + (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or + EC2SecurityGroupId for non-VPC). + + You can't authorize ingress from an EC2 security group in one Amazon + Web Services Region to an Amazon RDS DB instance in another. You can't + authorize ingress from a VPC security group in one VPC to an Amazon RDS + DB instance in another. + + For an overview of CIDR ranges, go to the [Wikipedia + Tutorial](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `AuthorizeDBSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AuthorizeDBSecurityGroupIngressOutput`. + """ + return self._invoke( + input, _models.AUTHORIZE_DB_SECURITY_GROUP_INGRESS, [], plugins + ) + + def backtrack_db_cluster( + self, input: BacktrackDBClusterInput, plugins: list[Plugin] | None = None + ) -> BacktrackDBClusterOutput: + """ + Backtracks a DB cluster to a specific time, without creating a new DB + cluster. + + For more information on backtracking, see [Backtracking an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html) + in the *Amazon Aurora User Guide*. + + Note: + This action applies only to Aurora MySQL DB clusters. + + Args: + input: + An instance of `BacktrackDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `BacktrackDBClusterOutput`. + """ + return self._invoke(input, _models.BACKTRACK_DB_CLUSTER, [], plugins) + + def cancel_db_capacity_reservation( + self, + input: CancelDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> CancelDBCapacityReservationOutput: + """ + Cancels a DB capacity reservation. Amazon RDS changes the state of the + reservation to `cancelled` and stops reporting available capacity for + it. Amazon RDS then releases the reserved capacity. + + A DB instance that uses the reservation keeps running. It continues on + unreserved capacity, and Amazon RDS doesn't stop it or modify it. + However, Amazon RDS no longer reserves capacity for the DB instance. If + Amazon RDS later moves the DB instance to different hardware, for + example during hardware maintenance, that move can fail when the Amazon + Web Services Region has insufficient capacity for the DB instance class. + + You can't cancel a reservation in the `active` state during a capacity + commitment. The response of `DescribeDBCapacityReservations` reports the + end of the commitment in `CommitmentInfo`. + + Constraints: + + - The reservation must be in the `active`, `assessing`, or `delayed` + state. + + - The reservation must not be past its end date. + + Args: + input: + An instance of `CancelDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelDBCapacityReservationOutput`. + """ + return self._invoke(input, _models.CANCEL_DB_CAPACITY_RESERVATION, [], plugins) + + def cancel_export_task( + self, input: CancelExportTaskInput, plugins: list[Plugin] | None = None + ) -> CancelExportTaskOutput: + """ + Cancels an export task in progress that is exporting a snapshot or + cluster to Amazon S3. Any data that has already been written to the S3 + bucket isn't removed. + + Args: + input: + An instance of `CancelExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CancelExportTaskOutput`. + """ + return self._invoke(input, _models.CANCEL_EXPORT_TASK, [], plugins) + + def copy_db_cluster_parameter_group( + self, + input: CopyDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> CopyDBClusterParameterGroupOutput: + """ + Copies the specified DB cluster parameter group. + + Note: + You can't copy a default DB cluster parameter group. Instead, create a + new custom DB cluster parameter group, which copies the default + parameters and values for the specified DB cluster parameter group + family. + + Args: + input: + An instance of `CopyDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBClusterParameterGroupOutput`. + """ + return self._invoke(input, _models.COPY_DB_CLUSTER_PARAMETER_GROUP, [], plugins) + + def copy_db_cluster_snapshot( + self, input: CopyDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> CopyDBClusterSnapshotOutput: + """ + Copies a snapshot of a DB cluster. + + To copy a DB cluster snapshot from a shared manual DB cluster snapshot, + `SourceDBClusterSnapshotIdentifier` must be the Amazon Resource Name + (ARN) of the shared DB cluster snapshot. + + You can copy an encrypted DB cluster snapshot from another Amazon Web + Services Region. In that case, the Amazon Web Services Region where you + call the `CopyDBClusterSnapshot` operation is the destination Amazon Web + Services Region for the encrypted DB cluster snapshot to be copied to. + To copy an encrypted DB cluster snapshot from another Amazon Web + Services Region, you must provide the following values: + + - `KmsKeyId` - The Amazon Web Services Key Management System (Amazon Web + Services KMS) key identifier for the key to use to encrypt the copy of + the DB cluster snapshot in the destination Amazon Web Services Region. + + - `TargetDBClusterSnapshotIdentifier` - The identifier for the new copy + of the DB cluster snapshot in the destination Amazon Web Services + Region. + + - `SourceDBClusterSnapshotIdentifier` - The DB cluster snapshot + identifier for the encrypted DB cluster snapshot to be copied. This + identifier must be in the ARN format for the source Amazon Web + Services Region and is the same value as the + `SourceDBClusterSnapshotIdentifier` in the presigned URL. + + To cancel the copy operation once it is in progress, delete the target + DB cluster snapshot identified by `TargetDBClusterSnapshotIdentifier` + while that DB cluster snapshot is in \"copying\" status. + + For more information on copying encrypted Amazon Aurora DB cluster + snapshots from one Amazon Web Services Region to another, see [Copying a + Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CopySnapshot.html) + in the *Amazon Aurora User Guide*. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CopyDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBClusterSnapshotOutput`. + """ + return self._invoke(input, _models.COPY_DB_CLUSTER_SNAPSHOT, [], plugins) + + def copy_db_parameter_group( + self, input: CopyDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> CopyDBParameterGroupOutput: + """ + Copies the specified DB parameter group. + + Note: + You can't copy a default DB parameter group. Instead, create a new + custom DB parameter group, which copies the default parameters and + values for the specified DB parameter group family. + + Args: + input: + An instance of `CopyDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBParameterGroupOutput`. + """ + return self._invoke(input, _models.COPY_DB_PARAMETER_GROUP, [], plugins) + + def copy_db_snapshot( + self, input: CopyDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> CopyDBSnapshotOutput: + """ + Copies the specified DB snapshot. The source DB snapshot must be in the + `available` state. + + You can copy a snapshot from one Amazon Web Services Region to another. + In that case, the Amazon Web Services Region where you call the + `CopyDBSnapshot` operation is the destination Amazon Web Services Region + for the DB snapshot copy. + + This command doesn't apply to RDS Custom. + + For more information about copying snapshots, see [Copying a DB + Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html#USER_CopyDBSnapshot) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CopyDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyDBSnapshotOutput`. + """ + return self._invoke(input, _models.COPY_DB_SNAPSHOT, [], plugins) + + def copy_option_group( + self, input: CopyOptionGroupInput, plugins: list[Plugin] | None = None + ) -> CopyOptionGroupOutput: + """ + Copies the specified option group. + + Args: + input: + An instance of `CopyOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyOptionGroupOutput`. + """ + return self._invoke(input, _models.COPY_OPTION_GROUP, [], plugins) + + def create_blue_green_deployment( + self, input: CreateBlueGreenDeploymentInput, plugins: list[Plugin] | None = None + ) -> CreateBlueGreenDeploymentOutput: + """ + Creates a blue/green deployment. + + A blue/green deployment creates a staging environment that copies the + production environment. In a blue/green deployment, the blue environment + is the current production environment. The green environment is the + staging environment, and it stays in sync with the current production + environment. + + You can make changes to the databases in the green environment without + affecting production workloads. For example, you can upgrade the major + or minor DB engine version, change database parameters, or make schema + changes in the staging environment. You can thoroughly test changes in + the green environment. When ready, you can switch over the environments + to promote the green environment to be the new production environment. + The switchover typically takes under a minute. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBlueGreenDeploymentOutput`. + """ + return self._invoke(input, _models.CREATE_BLUE_GREEN_DEPLOYMENT, [], plugins) + + def create_custom_db_engine_version( + self, + input: CreateCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> CreateCustomDBEngineVersionOutput: + """ + Creates a custom DB engine version (CEV). + + Args: + input: + An instance of `CreateCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateCustomDBEngineVersionOutput`. + """ + return self._invoke(input, _models.CREATE_CUSTOM_DB_ENGINE_VERSION, [], plugins) + + def create_db_capacity_reservation( + self, + input: CreateDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBCapacityReservationOutput: + """ + Creates a DB capacity reservation. A DB capacity reservation reserves + compute and memory capacity for DB instances of one DB instance class + and one database engine. Amazon RDS reserves that capacity in each + Availability Zone that you specify. + + Amazon RDS reserves the same amount of capacity in every Availability + Zone in the request. You set that amount with + `CapacityPerAvailabilityZone`, and you set the Availability Zones with + `AvailabilityZones`. The total reserved capacity is + `CapacityPerAvailabilityZone` multiplied by the number of Availability + Zones. + + Specify `StartDate` and `CommitmentDuration` together to create a + future-dated reservation. A future-dated reservation reserves capacity + for a period that starts later. Amazon RDS holds that capacity for the + length of the commitment. + + A future-dated reservation has the following additional constraints: + + - `DBInstanceClass` must be a `db.c`, `db.m`, `db.r`, `db.t`, or `db.x` + DB instance class. The letter after `db.` gives the DB instance class + family. For example, `db.x2g.xlarge` qualifies, and `db.z1d.xlarge` + doesn't. + + - If `DBInstanceClass` is a `db.m` or `db.r` DB instance class, it must + be from generation 7 or later. The digit after the family letter gives + the generation. For example, `db.m7g.xlarge` qualifies, and + `db.m5.xlarge` doesn't. A `db.c`, `db.t`, or `db.x` DB instance class + has no generation requirement. + + - The reserved capacity must total at least 32 vCPUs in each + Availability Zone. Multiply `CapacityPerAvailabilityZone` by the + number of vCPUs of the DB instance class. The product must be 32 or + more. + + - `CommitmentDuration` must be at least 14 days. For a `db.x` DB + instance class, it must be at least 84 days. + + - `StartDate` must be from 5 to 120 days in the future. + + Therefore, a DB instance class with 2 vCPUs needs a + `CapacityPerAvailabilityZone` of 16 or more, a class with 4 vCPUs needs + 8 or more, a class with 8 vCPUs needs 4 or more, and a class with 16 + vCPUs needs 2 or more. For the number of vCPUs of each DB instance + class, see [DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Note: + You can't modify a future-dated reservation before it starts. You + can't cancel a future-dated reservation in the `scheduled` state. You + can't cancel a reservation in the `active` state during its capacity + commitment. Therefore, you can't cancel a future-dated reservation from + the time that Amazon RDS schedules it until the commitment ends. + + Args: + input: + An instance of `CreateDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBCapacityReservationOutput`. + """ + return self._invoke(input, _models.CREATE_DB_CAPACITY_RESERVATION, [], plugins) + + def create_db_cluster( + self, input: CreateDBClusterInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterOutput: + """ + Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster. + + If you create an Aurora DB cluster, the request creates an empty + cluster. You must explicitly create the writer instance for your DB + cluster using the + [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) + operation. If you create a Multi-AZ DB cluster, the request creates a + writer and two reader DB instances for you, each in a different + Availability Zone. + + You can use the `ReplicationSourceIdentifier` parameter to create an + Amazon Aurora DB cluster as a read replica of another DB cluster or + Amazon RDS for MySQL or PostgreSQL DB instance. For more information + about Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + You can also use the `ReplicationSourceIdentifier` parameter to create a + Multi-AZ DB cluster read replica with an RDS for MySQL or PostgreSQL DB + instance as the source. For more information about Multi-AZ DB clusters, + see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + You can use the `WithExpressConfiguration` parameter to create an Aurora + DB Cluster with express configuration and create cluster in seconds. + Express configuration provides a cluster with a writer instance and + feature specific values set to all other input parameters of this API. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster. Each associated role lets the DB cluster access other + Amazon Web Services on your behalf, such as Amazon S3 for data import + and export, or Amazon Web Services Lambda for invoking functions. + + Args: + input: + An instance of `CreateDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterOutput`. + """ + return self._invoke(input, _models.CREATE_DB_CLUSTER, [], plugins) + + def create_db_cluster_endpoint( + self, input: CreateDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterEndpointOutput: + """ + Creates a new custom endpoint and associates it with an Amazon Aurora DB + cluster. + + Note: + This action applies only to Aurora DB clusters. + + Args: + input: + An instance of `CreateDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_DB_CLUSTER_ENDPOINT, [], plugins) + + def create_db_cluster_parameter_group( + self, + input: CreateDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBClusterParameterGroupOutput: + """ + Creates a new DB cluster parameter group. + + Parameters in a DB cluster parameter group apply to all of the instances + in a DB cluster. + + A DB cluster parameter group is initially created with the default + parameters for the database engine used by instances in the DB cluster. + To provide custom values for any of the parameters, you must modify the + group after creating it using `ModifyDBClusterParameterGroup`. Once + you've created a DB cluster parameter group, you need to associate it + with your DB cluster using `ModifyDBCluster`. + + When you associate a new DB cluster parameter group with a running + Aurora DB cluster, reboot the DB instances in the DB cluster without + failover for the new DB cluster parameter group and associated settings + to take effect. + + When you associate a new DB cluster parameter group with a running + Multi-AZ DB cluster, reboot the DB cluster without failover for the new + DB cluster parameter group and associated settings to take effect. + + Warning: + After you create a DB cluster parameter group, you should wait at least + 5 minutes before creating your first DB cluster that uses that DB + cluster parameter group as the default parameter group. This allows + Amazon RDS to fully complete the create action before the DB cluster + parameter group is used as the default for a new DB cluster. This is + especially important for parameters that are critical when creating the + default database for a DB cluster, such as the character set for the + default database defined by the `character_set_database` parameter. You + can use the *Parameter Groups* option of the [Amazon RDS + console](https://console.aws.amazon.com/rds/) or the + `DescribeDBClusterParameters` operation to verify that your DB cluster + parameter group has been created or modified. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterParameterGroupOutput`. + """ + return self._invoke( + input, _models.CREATE_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + def create_db_cluster_snapshot( + self, input: CreateDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateDBClusterSnapshotOutput: + """ + Creates a snapshot of a DB cluster. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBClusterSnapshotOutput`. + """ + return self._invoke(input, _models.CREATE_DB_CLUSTER_SNAPSHOT, [], plugins) + + def create_db_instance( + self, input: CreateDBInstanceInput, plugins: list[Plugin] | None = None + ) -> CreateDBInstanceOutput: + """ + Creates a new DB instance. + + The new DB instance can be an RDS DB instance, or it can be a DB + instance in an Aurora DB cluster. For an Aurora DB cluster, you can call + this operation multiple times to add more than one DB instance to the + cluster. + + For more information about creating an RDS DB instance, see [Creating an + Amazon RDS DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) + in the *Amazon RDS User Guide*. + + For more information about creating a DB instance in an Aurora DB + cluster, see [Creating an Amazon Aurora DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBInstanceOutput`. + """ + return self._invoke(input, _models.CREATE_DB_INSTANCE, [], plugins) + + def create_db_instance_read_replica( + self, + input: CreateDBInstanceReadReplicaInput, + plugins: list[Plugin] | None = None, + ) -> CreateDBInstanceReadReplicaOutput: + """ + Creates a new DB instance that acts as a read replica for an existing + source DB instance or Multi-AZ DB cluster. You can create a read replica + for a DB instance running Db2, MariaDB, MySQL, Oracle, PostgreSQL, or + SQL Server. You can create a read replica for a Multi-AZ DB cluster + running MySQL or PostgreSQL. For more information, see [Working with + read + replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) + and [Migrating from a Multi-AZ DB cluster to a DB instance using a read + replica](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html#multi-az-db-clusters-migrating-to-instance-with-read-replica) + in the *Amazon RDS User Guide*. + + Amazon Aurora doesn't support this operation. To create a DB instance + for an Aurora DB cluster, use the `CreateDBInstance` operation. + + RDS creates read replicas with backups disabled. All other attributes + (including DB security groups and DB parameter groups) are inherited + from the source DB instance or cluster, except as specified. + + Warning: + Your source DB instance or cluster must have backup retention enabled. + + Args: + input: + An instance of `CreateDBInstanceReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBInstanceReadReplicaOutput`. + """ + return self._invoke(input, _models.CREATE_DB_INSTANCE_READ_REPLICA, [], plugins) + + def create_db_parameter_group( + self, input: CreateDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBParameterGroupOutput: + """ + Creates a new DB parameter group. + + A DB parameter group is initially created with the default parameters + for the database engine used by the DB instance. To provide custom + values for any of the parameters, you must modify the group after + creating it using `ModifyDBParameterGroup`. Once you've created a DB + parameter group, you need to associate it with your DB instance using + `ModifyDBInstance`. When you associate a new DB parameter group with a + running DB instance, you need to reboot the DB instance without failover + for the new DB parameter group and associated settings to take effect. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `CreateDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBParameterGroupOutput`. + """ + return self._invoke(input, _models.CREATE_DB_PARAMETER_GROUP, [], plugins) + + def create_db_proxy( + self, input: CreateDBProxyInput, plugins: list[Plugin] | None = None + ) -> CreateDBProxyOutput: + """ + Creates a new DB proxy. + + Args: + input: + An instance of `CreateDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBProxyOutput`. + """ + return self._invoke(input, _models.CREATE_DB_PROXY, [], plugins) + + def create_db_proxy_endpoint( + self, input: CreateDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> CreateDBProxyEndpointOutput: + """ + Creates a `DBProxyEndpoint`. Only applies to proxies that are associated + with Aurora DB clusters. You can use DB proxy endpoints to specify + read/write or read-only access to the DB cluster. You can also use DB + proxy endpoints to access a DB proxy through a different VPC than the + proxy's default VPC. + + Args: + input: + An instance of `CreateDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBProxyEndpointOutput`. + """ + return self._invoke(input, _models.CREATE_DB_PROXY_ENDPOINT, [], plugins) + + def create_db_security_group( + self, input: CreateDBSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBSecurityGroupOutput: + """ + Creates a new DB security group. DB security groups control access to a + DB instance. + + A DB security group controls access to EC2-Classic DB instances that are + not in a VPC. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `CreateDBSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSecurityGroupOutput`. + """ + return self._invoke(input, _models.CREATE_DB_SECURITY_GROUP, [], plugins) + + def create_db_shard_group( + self, input: CreateDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBShardGroupOutput: + """ + Creates a new DB shard group for Aurora Limitless Database. You must + enable Aurora Limitless Database to create a DB shard group. + + Valid for: Aurora DB clusters only + + Args: + input: + An instance of `CreateDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBShardGroupOutput`. + """ + return self._invoke(input, _models.CREATE_DB_SHARD_GROUP, [], plugins) + + def create_db_snapshot( + self, input: CreateDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> CreateDBSnapshotOutput: + """ + Creates a snapshot of a DB instance. The source DB instance must be in + the `available` or `storage-optimization` state. + + Args: + input: + An instance of `CreateDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSnapshotOutput`. + """ + return self._invoke(input, _models.CREATE_DB_SNAPSHOT, [], plugins) + + def create_db_subnet_group( + self, input: CreateDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> CreateDBSubnetGroupOutput: + """ + Creates a new DB subnet group. DB subnet groups must contain at least + one subnet in at least two AZs in the Amazon Web Services Region. + + Args: + input: + An instance of `CreateDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateDBSubnetGroupOutput`. + """ + return self._invoke(input, _models.CREATE_DB_SUBNET_GROUP, [], plugins) + + def create_event_subscription( + self, input: CreateEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> CreateEventSubscriptionOutput: + """ + Creates an RDS event notification subscription. This operation requires + a topic Amazon Resource Name (ARN) created by either the RDS console, + the SNS console, or the SNS API. To obtain an ARN with SNS, you must + create a topic in Amazon SNS and subscribe to the topic. The ARN is + displayed in the SNS console. + + You can specify the type of source (`SourceType`) that you want to be + notified of and provide a list of RDS sources (`SourceIds`) that + triggers the events. You can also provide a list of event categories + (`EventCategories`) for events that you want to be notified of. For + example, you can specify `SourceType` = `db-instance`, `SourceIds` = + `mydbinstance1`, `mydbinstance2` and `EventCategories` = `Availability`, + `Backup`. + + If you specify both the `SourceType` and `SourceIds`, such as + `SourceType` = `db-instance` and `SourceIds` = `myDBInstance1`, you are + notified of all the `db-instance` events for the specified source. If + you specify a `SourceType` but do not specify `SourceIds`, you receive + notice of the events for that source type for all your RDS sources. If + you don't specify either the SourceType or the `SourceIds`, you are + notified of events generated from all RDS sources belonging to your + customer account. + + For more information about subscribing to an event for RDS DB engines, + see [Subscribing to Amazon RDS event + notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) + in the *Amazon RDS User Guide*. + + For more information about subscribing to an event for Aurora DB + engines, see [Subscribing to Amazon RDS event + notification](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Subscribing.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `CreateEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateEventSubscriptionOutput`. + """ + return self._invoke(input, _models.CREATE_EVENT_SUBSCRIPTION, [], plugins) + + def create_global_cluster( + self, input: CreateGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> CreateGlobalClusterOutput: + """ + Creates an Aurora global database spread across multiple Amazon Web + Services Regions. The global database contains a single primary cluster + with read-write capability, and a read-only secondary cluster that + receives data from the primary cluster through high-speed replication + performed by the Aurora storage subsystem. + + You can create a global database that is initially empty, and then + create the primary and secondary DB clusters in the global database. Or + you can specify an existing Aurora cluster during the create operation, + and this cluster becomes the primary cluster of the global database. + + Note: + This operation applies only to Aurora DB clusters. + + Args: + input: + An instance of `CreateGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateGlobalClusterOutput`. + """ + return self._invoke(input, _models.CREATE_GLOBAL_CLUSTER, [], plugins) + + def create_integration( + self, input: CreateIntegrationInput, plugins: list[Plugin] | None = None + ) -> CreateIntegrationOutput: + """ + Creates a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `CreateIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateIntegrationOutput`. + """ + return self._invoke(input, _models.CREATE_INTEGRATION, [], plugins) + + def create_option_group( + self, input: CreateOptionGroupInput, plugins: list[Plugin] | None = None + ) -> CreateOptionGroupOutput: + """ + Creates a new option group. You can create up to 20 option groups. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `CreateOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOptionGroupOutput`. + """ + return self._invoke(input, _models.CREATE_OPTION_GROUP, [], plugins) + + def create_tenant_database( + self, input: CreateTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> CreateTenantDatabaseOutput: + """ + Creates a tenant database in a DB instance that uses the multi-tenant + configuration. Only RDS for Oracle container database (CDB) instances + are supported. + + Args: + input: + An instance of `CreateTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateTenantDatabaseOutput`. + """ + return self._invoke(input, _models.CREATE_TENANT_DATABASE, [], plugins) + + def delete_blue_green_deployment( + self, input: DeleteBlueGreenDeploymentInput, plugins: list[Plugin] | None = None + ) -> DeleteBlueGreenDeploymentOutput: + """ + Deletes a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DeleteBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBlueGreenDeploymentOutput`. + """ + return self._invoke(input, _models.DELETE_BLUE_GREEN_DEPLOYMENT, [], plugins) + + def delete_custom_db_engine_version( + self, + input: DeleteCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> DeleteCustomDBEngineVersionOutput: + """ + Deletes a custom engine version. To run this command, make sure you meet + the following prerequisites: + + - The CEV must not be the default for RDS Custom. If it is, change the + default before running this command. + + - The CEV must not be associated with an RDS Custom DB instance, RDS + Custom instance snapshot, or automated backup of your RDS Custom + instance. + + Typically, deletion takes a few minutes. + + Note: + The MediaImport service that imports files from Amazon S3 to create CEVs + isn't integrated with Amazon Web Services CloudTrail. If you turn on + data logging for Amazon RDS in CloudTrail, calls to the + `DeleteCustomDbEngineVersion` event aren't logged. However, you might + see calls from the API gateway that accesses your Amazon S3 bucket. + These calls originate from the MediaImport service for the + `DeleteCustomDbEngineVersion` event. + + For more information, see [Deleting a + CEV](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.delete) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteCustomDBEngineVersionOutput`. + """ + return self._invoke(input, _models.DELETE_CUSTOM_DB_ENGINE_VERSION, [], plugins) + + def delete_db_cluster( + self, input: DeleteDBClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterOutput: + """ + The DeleteDBCluster action deletes a previously provisioned DB cluster. + When you delete a DB cluster, all automated backups for that DB cluster + are deleted and can't be recovered. Manual DB cluster snapshots of the + specified DB cluster are not deleted. + + If you're deleting a Multi-AZ DB cluster with read replicas, all + cluster members are terminated and read replicas are promoted to + standalone instances. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterOutput`. + """ + return self._invoke(input, _models.DELETE_DB_CLUSTER, [], plugins) + + def delete_db_cluster_automated_backup( + self, + input: DeleteDBClusterAutomatedBackupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDBClusterAutomatedBackupOutput: + """ + Deletes automated backups using the `DbClusterResourceId` value of the + source DB cluster or the Amazon Resource Name (ARN) of the automated + backups. + + Args: + input: + An instance of `DeleteDBClusterAutomatedBackupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterAutomatedBackupOutput`. + """ + return self._invoke( + input, _models.DELETE_DB_CLUSTER_AUTOMATED_BACKUP, [], plugins + ) + + def delete_db_cluster_endpoint( + self, input: DeleteDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterEndpointOutput: + """ + Deletes a custom endpoint and removes it from an Amazon Aurora DB + cluster. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DeleteDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_DB_CLUSTER_ENDPOINT, [], plugins) + + def delete_db_cluster_parameter_group( + self, + input: DeleteDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> DeleteDBClusterParameterGroupOutput: + """ + Deletes a specified DB cluster parameter group. The DB cluster parameter + group to be deleted can't be associated with any DB clusters. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterParameterGroupOutput`. + """ + return self._invoke( + input, _models.DELETE_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + def delete_db_cluster_snapshot( + self, input: DeleteDBClusterSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteDBClusterSnapshotOutput: + """ + Deletes a DB cluster snapshot. If the snapshot is being copied, the copy + operation is terminated. + + Note: + The DB cluster snapshot must be in the `available` state to be deleted. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBClusterSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBClusterSnapshotOutput`. + """ + return self._invoke(input, _models.DELETE_DB_CLUSTER_SNAPSHOT, [], plugins) + + def delete_db_instance( + self, input: DeleteDBInstanceInput, plugins: list[Plugin] | None = None + ) -> DeleteDBInstanceOutput: + """ + Deletes a previously provisioned DB instance. When you delete a DB + instance, all automated backups for that instance are deleted and can't + be recovered. However, manual DB snapshots of the DB instance aren't + deleted. + + If you request a final DB snapshot, the status of the Amazon RDS DB + instance is `deleting` until the DB snapshot is created. This operation + can't be canceled or reverted after it begins. To monitor the status of + this operation, use `DescribeDBInstance`. + + When a DB instance is in a failure state and has a status of `failed`, + `incompatible-restore`, or `incompatible-network`, you can only delete + it when you skip creation of the final snapshot with the + `SkipFinalSnapshot` parameter. + + If the specified DB instance is part of an Amazon Aurora DB cluster, you + can't delete the DB instance if both of the following conditions are + true: + + - The DB cluster is a read replica of another Amazon Aurora DB cluster. + + - The DB instance is the only instance in the DB cluster. + + To delete a DB instance in this case, first use the + `PromoteReadReplicaDBCluster` operation to promote the DB cluster so + that it's no longer a read replica. After the promotion completes, use + the `DeleteDBInstance` operation to delete the final instance in the DB + cluster. + + Warning: + For RDS Custom DB instances, deleting the DB instance permanently + deletes the EC2 instance and the associated EBS volumes. Make sure that + you don't terminate or delete these resources before you delete the DB + instance. Otherwise, deleting the DB instance and creation of the final + snapshot might fail. + + Args: + input: + An instance of `DeleteDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBInstanceOutput`. + """ + return self._invoke(input, _models.DELETE_DB_INSTANCE, [], plugins) + + def delete_db_instance_automated_backup( + self, + input: DeleteDBInstanceAutomatedBackupInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DeleteDBInstanceAutomatedBackupOutput: + """ + Deletes automated backups using the `DbiResourceId` value of the source + DB instance or the Amazon Resource Name (ARN) of the automated backups. + + Args: + input: + An instance of `DeleteDBInstanceAutomatedBackupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBInstanceAutomatedBackupOutput`. + """ + return self._invoke( + input, _models.DELETE_DB_INSTANCE_AUTOMATED_BACKUP, [], plugins + ) + + def delete_db_parameter_group( + self, input: DeleteDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBParameterGroupOutput: + """ + Deletes a specified DB parameter group. The DB parameter group to be + deleted can't be associated with any DB instances. + + Args: + input: + An instance of `DeleteDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBParameterGroupOutput`. + """ + return self._invoke(input, _models.DELETE_DB_PARAMETER_GROUP, [], plugins) + + def delete_db_proxy( + self, input: DeleteDBProxyInput, plugins: list[Plugin] | None = None + ) -> DeleteDBProxyOutput: + """ + Deletes an existing DB proxy. + + Args: + input: + An instance of `DeleteDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBProxyOutput`. + """ + return self._invoke(input, _models.DELETE_DB_PROXY, [], plugins) + + def delete_db_proxy_endpoint( + self, input: DeleteDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> DeleteDBProxyEndpointOutput: + """ + Deletes a `DBProxyEndpoint`. Doing so removes the ability to access the + DB proxy using the endpoint that you defined. The endpoint that you + delete might have provided capabilities such as read/write or read-only + operations, or using a different VPC than the DB proxy's default VPC. + + Args: + input: + An instance of `DeleteDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBProxyEndpointOutput`. + """ + return self._invoke(input, _models.DELETE_DB_PROXY_ENDPOINT, [], plugins) + + def delete_db_security_group( + self, input: DeleteDBSecurityGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSecurityGroupOutput: + """ + Deletes a DB security group. + + The specified DB security group must not be associated with any DB + instances. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DeleteDBSecurityGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSecurityGroupOutput`. + """ + return self._invoke(input, _models.DELETE_DB_SECURITY_GROUP, [], plugins) + + def delete_db_shard_group( + self, input: DeleteDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBShardGroupOutput: + """ + Deletes an Aurora Limitless Database DB shard group. + + Args: + input: + An instance of `DeleteDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBShardGroupOutput`. + """ + return self._invoke(input, _models.DELETE_DB_SHARD_GROUP, [], plugins) + + def delete_db_snapshot( + self, input: DeleteDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSnapshotOutput: + """ + Deletes a DB snapshot. If the snapshot is being copied, the copy + operation is terminated. + + Note: + The DB snapshot must be in the `available` state to be deleted. + + Args: + input: + An instance of `DeleteDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSnapshotOutput`. + """ + return self._invoke(input, _models.DELETE_DB_SNAPSHOT, [], plugins) + + def delete_db_subnet_group( + self, input: DeleteDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteDBSubnetGroupOutput: + """ + Deletes a DB subnet group. + + Note: + The specified database subnet group must not be associated with any DB + instances. + + Args: + input: + An instance of `DeleteDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteDBSubnetGroupOutput`. + """ + return self._invoke(input, _models.DELETE_DB_SUBNET_GROUP, [], plugins) + + def delete_event_subscription( + self, input: DeleteEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> DeleteEventSubscriptionOutput: + """ + Deletes an RDS event notification subscription. + + Args: + input: + An instance of `DeleteEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteEventSubscriptionOutput`. + """ + return self._invoke(input, _models.DELETE_EVENT_SUBSCRIPTION, [], plugins) + + def delete_global_cluster( + self, input: DeleteGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> DeleteGlobalClusterOutput: + """ + Deletes a global database cluster. The primary and secondary clusters + must already be detached or destroyed first. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DeleteGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteGlobalClusterOutput`. + """ + return self._invoke(input, _models.DELETE_GLOBAL_CLUSTER, [], plugins) + + def delete_integration( + self, input: DeleteIntegrationInput, plugins: list[Plugin] | None = None + ) -> DeleteIntegrationOutput: + """ + Deletes a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `DeleteIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteIntegrationOutput`. + """ + return self._invoke(input, _models.DELETE_INTEGRATION, [], plugins) + + def delete_option_group( + self, input: DeleteOptionGroupInput, plugins: list[Plugin] | None = None + ) -> DeleteOptionGroupOutput: + """ + Deletes an existing option group. + + Args: + input: + An instance of `DeleteOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteOptionGroupOutput`. + """ + return self._invoke(input, _models.DELETE_OPTION_GROUP, [], plugins) + + def delete_tenant_database( + self, input: DeleteTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> DeleteTenantDatabaseOutput: + """ + Deletes a tenant database from your DB instance. This command only + applies to RDS for Oracle container database (CDB) instances. + + You can't delete a tenant database when it is the only tenant in the DB + instance. + + Args: + input: + An instance of `DeleteTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteTenantDatabaseOutput`. + """ + return self._invoke(input, _models.DELETE_TENANT_DATABASE, [], plugins) + + def deregister_db_proxy_targets( + self, input: DeregisterDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> DeregisterDBProxyTargetsOutput: + """ + Remove the association between one or more `DBProxyTarget` data + structures and a `DBProxyTargetGroup`. + + Args: + input: + An instance of `DeregisterDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeregisterDBProxyTargetsOutput`. + """ + return self._invoke(input, _models.DEREGISTER_DB_PROXY_TARGETS, [], plugins) + + def describe_account_attributes( + self, + input: DescribeAccountAttributesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeAccountAttributesOutput: + """ + Lists all of the attributes for a customer account. The attributes + include Amazon RDS quotas for the account, such as the number of DB + instances allowed. The description for a quota includes the quota name, + current usage toward that quota, and the quota's maximum value. + + This command doesn't take any parameters. + + Args: + input: + An instance of `DescribeAccountAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeAccountAttributesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_ACCOUNT_ATTRIBUTES, [], plugins) + + def describe_blue_green_deployments( + self, + input: DescribeBlueGreenDeploymentsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeBlueGreenDeploymentsOutput: + """ + Describes one or more blue/green deployments. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeBlueGreenDeploymentsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeBlueGreenDeploymentsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_BLUE_GREEN_DEPLOYMENTS, [], plugins) + + def describe_certificates( + self, + input: DescribeCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeCertificatesOutput: + """ + Lists the set of certificate authority (CA) certificates provided by + Amazon RDS for this Amazon Web Services account. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeCertificatesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_CERTIFICATES, [], plugins) + + def describe_db_capacity_reservations( + self, + input: DescribeDBCapacityReservationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBCapacityReservationsOutput: + """ + Describes one or more DB capacity reservations. A DB capacity + reservation reserves capacity for Amazon RDS DB instances in one or more + Availability Zones. + + If you don't specify a `DBCapacityReservationIdentifier`, this + operation returns information about all DB capacity reservations for + your Amazon Web Services account. + + This operation supports pagination. + + Args: + input: + An instance of `DescribeDBCapacityReservationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBCapacityReservationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_CAPACITY_RESERVATIONS, [], plugins + ) + + def describe_db_cluster_automated_backups( + self, + input: DescribeDBClusterAutomatedBackupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterAutomatedBackupsOutput: + """ + Displays backups for both current and deleted DB clusters. For example, + use this operation to find details about automated backups for + previously deleted clusters. Current clusters are returned for both the + `DescribeDBClusterAutomatedBackups` and `DescribeDBClusters` operations. + + All parameters are optional. + + Args: + input: + An instance of `DescribeDBClusterAutomatedBackupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterAutomatedBackupsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS, [], plugins + ) + + def describe_db_cluster_backtracks( + self, + input: DescribeDBClusterBacktracksInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterBacktracksOutput: + """ + Returns information about backtracks for a DB cluster. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This action only applies to Aurora MySQL DB clusters. + + Args: + input: + An instance of `DescribeDBClusterBacktracksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterBacktracksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_CLUSTER_BACKTRACKS, [], plugins) + + def describe_db_cluster_endpoints( + self, + input: DescribeDBClusterEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterEndpointsOutput: + """ + Returns information about endpoints for an Amazon Aurora DB cluster. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DescribeDBClusterEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterEndpointsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_CLUSTER_ENDPOINTS, [], plugins) + + def describe_db_cluster_parameter_groups( + self, + input: DescribeDBClusterParameterGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterParameterGroupsOutput: + """ + Returns a list of `DBClusterParameterGroup` descriptions. If a + `DBClusterParameterGroupName` parameter is specified, the list will + contain only the description of the specified DB cluster parameter + group. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterParameterGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterParameterGroupsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS, [], plugins + ) + + def describe_db_cluster_parameters( + self, + input: DescribeDBClusterParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterParametersOutput: + """ + Returns the detailed parameter list for a particular DB cluster + parameter group. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterParametersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_CLUSTER_PARAMETERS, [], plugins) + + def describe_db_clusters( + self, + input: DescribeDBClustersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClustersOutput: + """ + Describes existing Amazon Aurora DB clusters and Multi-AZ DB clusters. + This API supports pagination. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + This operation can also return information for Amazon Neptune DB + instances and Amazon DocumentDB instances. + + Args: + input: + An instance of `DescribeDBClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClustersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_CLUSTERS, [], plugins) + + def describe_db_cluster_snapshot_attributes( + self, + input: DescribeDBClusterSnapshotAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterSnapshotAttributesOutput: + """ + Returns a list of DB cluster snapshot attribute names and values for a + manual DB cluster snapshot. + + When sharing snapshots with other Amazon Web Services accounts, + `DescribeDBClusterSnapshotAttributes` returns the `restore` attribute + and a list of IDs for the Amazon Web Services accounts that are + authorized to copy or restore the manual DB cluster snapshot. If `all` + is included in the list of values for the `restore` attribute, then the + manual DB cluster snapshot is public and can be copied or restored by + all Amazon Web Services accounts. + + To add or remove access for an Amazon Web Services account to copy or + restore a manual DB cluster snapshot, or to make the manual DB cluster + snapshot public or private, use the `ModifyDBClusterSnapshotAttribute` + API action. + + Args: + input: + An instance of `DescribeDBClusterSnapshotAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterSnapshotAttributesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES, [], plugins + ) + + def describe_db_cluster_snapshots( + self, + input: DescribeDBClusterSnapshotsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBClusterSnapshotsOutput: + """ + Returns information about DB cluster snapshots. This API action supports + pagination. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBClusterSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBClusterSnapshotsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_CLUSTER_SNAPSHOTS, [], plugins) + + def describe_db_engine_versions( + self, + input: DescribeDBEngineVersionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBEngineVersionsOutput: + """ + Describes the properties of specific versions of DB engines. + + Args: + input: + An instance of `DescribeDBEngineVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBEngineVersionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_ENGINE_VERSIONS, [], plugins) + + def describe_db_instance_automated_backups( + self, + input: DescribeDBInstanceAutomatedBackupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBInstanceAutomatedBackupsOutput: + """ + Displays backups for both current and deleted instances. For example, + use this operation to find details about automated backups for + previously deleted instances. Current instances with retention periods + greater than zero (0) are returned for both the + `DescribeDBInstanceAutomatedBackups` and `DescribeDBInstances` + operations. + + All parameters are optional. + + Args: + input: + An instance of `DescribeDBInstanceAutomatedBackupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBInstanceAutomatedBackupsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS, [], plugins + ) + + def describe_db_instances( + self, + input: DescribeDBInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBInstancesOutput: + """ + Describes provisioned RDS instances. This API supports pagination. + + Note: + This operation can also return information for Amazon Neptune DB + instances and Amazon DocumentDB instances. + + Args: + input: + An instance of `DescribeDBInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_INSTANCES, [], plugins) + + def describe_db_log_files( + self, input: DescribeDBLogFilesInput, plugins: list[Plugin] | None = None + ) -> DescribeDBLogFilesOutput: + """ + Returns a list of DB log files for the DB instance. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `DescribeDBLogFilesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBLogFilesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_LOG_FILES, [], plugins) + + def describe_db_major_engine_versions( + self, + input: DescribeDBMajorEngineVersionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBMajorEngineVersionsOutput: + """ + Describes the properties of specific major versions of DB engines. + + Args: + input: + An instance of `DescribeDBMajorEngineVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBMajorEngineVersionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_MAJOR_ENGINE_VERSIONS, [], plugins + ) + + def describe_db_parameter_groups( + self, + input: DescribeDBParameterGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBParameterGroupsOutput: + """ + Returns a list of `DBParameterGroup` descriptions. If a + `DBParameterGroupName` is specified, the list will contain only the + description of the specified DB parameter group. + + Args: + input: + An instance of `DescribeDBParameterGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBParameterGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PARAMETER_GROUPS, [], plugins) + + def describe_db_parameters( + self, input: DescribeDBParametersInput, plugins: list[Plugin] | None = None + ) -> DescribeDBParametersOutput: + """ + Returns the detailed parameter list for a particular DB parameter group. + + Args: + input: + An instance of `DescribeDBParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBParametersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PARAMETERS, [], plugins) + + def describe_db_proxies( + self, + input: DescribeDBProxiesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBProxiesOutput: + """ + Returns information about DB proxies. + + Args: + input: + An instance of `DescribeDBProxiesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxiesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PROXIES, [], plugins) + + def describe_db_proxy_endpoints( + self, + input: DescribeDBProxyEndpointsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBProxyEndpointsOutput: + """ + Returns information about DB proxy endpoints. + + Args: + input: + An instance of `DescribeDBProxyEndpointsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyEndpointsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PROXY_ENDPOINTS, [], plugins) + + def describe_db_proxy_target_groups( + self, + input: DescribeDBProxyTargetGroupsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBProxyTargetGroupsOutput: + """ + Returns information about DB proxy target groups, represented by + `DBProxyTargetGroup` data structures. + + Args: + input: + An instance of `DescribeDBProxyTargetGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyTargetGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PROXY_TARGET_GROUPS, [], plugins) + + def describe_db_proxy_targets( + self, input: DescribeDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> DescribeDBProxyTargetsOutput: + """ + Returns information about `DBProxyTarget` objects. This API supports + pagination. + + Args: + input: + An instance of `DescribeDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBProxyTargetsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_PROXY_TARGETS, [], plugins) + + def describe_db_recommendations( + self, + input: DescribeDBRecommendationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBRecommendationsOutput: + """ + Describes the recommendations to resolve the issues for your DB + instances, DB clusters, and DB parameter groups. + + Args: + input: + An instance of `DescribeDBRecommendationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBRecommendationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_RECOMMENDATIONS, [], plugins) + + def describe_db_security_groups( + self, + input: DescribeDBSecurityGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSecurityGroupsOutput: + """ + Returns a list of `DBSecurityGroup` descriptions. If a + `DBSecurityGroupName` is specified, the list will contain only the + descriptions of the specified DB security group. + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `DescribeDBSecurityGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSecurityGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_SECURITY_GROUPS, [], plugins) + + def describe_db_shard_groups( + self, + input: DescribeDBShardGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBShardGroupsOutput: + """ + Describes existing Aurora Limitless Database DB shard groups. + + Args: + input: + An instance of `DescribeDBShardGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBShardGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_SHARD_GROUPS, [], plugins) + + def describe_db_snapshot_attributes( + self, + input: DescribeDBSnapshotAttributesInput, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSnapshotAttributesOutput: + """ + Returns a list of DB snapshot attribute names and values for a manual DB + snapshot. + + When sharing snapshots with other Amazon Web Services accounts, + `DescribeDBSnapshotAttributes` returns the `restore` attribute and a + list of IDs for the Amazon Web Services accounts that are authorized to + copy or restore the manual DB snapshot. If `all` is included in the list + of values for the `restore` attribute, then the manual DB snapshot is + public and can be copied or restored by all Amazon Web Services + accounts. + + To add or remove access for an Amazon Web Services account to copy or + restore a manual DB snapshot, or to make the manual DB snapshot public + or private, use the `ModifyDBSnapshotAttribute` API action. + + Args: + input: + An instance of `DescribeDBSnapshotAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotAttributesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_SNAPSHOT_ATTRIBUTES, [], plugins) + + def describe_db_snapshots( + self, + input: DescribeDBSnapshotsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSnapshotsOutput: + """ + Returns information about DB snapshots. This API action supports + pagination. + + Args: + input: + An instance of `DescribeDBSnapshotsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_SNAPSHOTS, [], plugins) + + def describe_db_snapshot_tenant_databases( + self, + input: DescribeDBSnapshotTenantDatabasesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSnapshotTenantDatabasesOutput: + """ + Describes the tenant databases that exist in a DB snapshot. This command + only applies to RDS for Oracle DB instances in the multi-tenant + configuration. + + You can use this command to inspect the tenant databases within a + snapshot before restoring it. You can't directly interact with the + tenant databases in a DB snapshot. If you restore a snapshot that was + taken from DB instance using the multi-tenant configuration, you restore + all its tenant databases. + + Args: + input: + An instance of `DescribeDBSnapshotTenantDatabasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSnapshotTenantDatabasesOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES, [], plugins + ) + + def describe_db_subnet_groups( + self, + input: DescribeDBSubnetGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeDBSubnetGroupsOutput: + """ + Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is + specified, the list will contain only the descriptions of the specified + DBSubnetGroup. + + For an overview of CIDR ranges, go to the [Wikipedia + Tutorial](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + + Args: + input: + An instance of `DescribeDBSubnetGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeDBSubnetGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_DB_SUBNET_GROUPS, [], plugins) + + def describe_engine_default_cluster_parameters( + self, + input: DescribeEngineDefaultClusterParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEngineDefaultClusterParametersOutput: + """ + Returns the default engine and system parameter information for the + cluster database engine. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `DescribeEngineDefaultClusterParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEngineDefaultClusterParametersOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS, [], plugins + ) + + def describe_engine_default_parameters( + self, + input: DescribeEngineDefaultParametersInput, + plugins: list[Plugin] | None = None, + ) -> DescribeEngineDefaultParametersOutput: + """ + Returns the default engine and system parameter information for the + specified database engine. + + Args: + input: + An instance of `DescribeEngineDefaultParametersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEngineDefaultParametersOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_ENGINE_DEFAULT_PARAMETERS, [], plugins + ) + + def describe_event_categories( + self, + input: DescribeEventCategoriesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeEventCategoriesOutput: + """ + Displays a list of categories for all event source types, or, if + specified, for a specified source type. You can also see this list in + the \"Amazon RDS event categories and event messages\" section of the + [*Amazon RDS User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) + or the [*Amazon Aurora User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) + . + + Args: + input: + An instance of `DescribeEventCategoriesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventCategoriesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EVENT_CATEGORIES, [], plugins) + + def describe_events( + self, + input: DescribeEventsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeEventsOutput: + """ + Returns events related to DB instances, DB clusters, DB parameter + groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS + Proxies for the past 14 days. Events specific to a particular DB + instance, DB cluster, DB parameter group, DB security group, DB + snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by + providing the name as a parameter. + + For more information on working with events, see [Monitoring Amazon RDS + events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-events.html) + in the *Amazon RDS User Guide* and [Monitoring Amazon Aurora + events](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/working-with-events.html) + in the *Amazon Aurora User Guide*. + + Note: + By default, RDS returns events that were generated in the past hour. + + Args: + input: + An instance of `DescribeEventsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EVENTS, [], plugins) + + def describe_event_subscriptions( + self, + input: DescribeEventSubscriptionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeEventSubscriptionsOutput: + """ + Lists all the subscription descriptions for a customer account. The + description for a subscription includes `SubscriptionName`, + `SNSTopicARN`, `CustomerID`, `SourceType`, `SourceID`, `CreationTime`, + and `Status`. + + If you specify a `SubscriptionName`, lists the description for that + subscription. + + Args: + input: + An instance of `DescribeEventSubscriptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeEventSubscriptionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EVENT_SUBSCRIPTIONS, [], plugins) + + def describe_export_tasks( + self, + input: DescribeExportTasksInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeExportTasksOutput: + """ + Returns information about a snapshot or cluster export to Amazon S3. + This API operation supports pagination. + + Args: + input: + An instance of `DescribeExportTasksInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeExportTasksOutput`. + """ + return self._invoke(input, _models.DESCRIBE_EXPORT_TASKS, [], plugins) + + def describe_global_clusters( + self, + input: DescribeGlobalClustersInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeGlobalClustersOutput: + """ + Returns information about Aurora global database clusters. This API + supports pagination. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This action only applies to Aurora DB clusters. + + Args: + input: + An instance of `DescribeGlobalClustersInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeGlobalClustersOutput`. + """ + return self._invoke(input, _models.DESCRIBE_GLOBAL_CLUSTERS, [], plugins) + + def describe_integrations( + self, + input: DescribeIntegrationsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeIntegrationsOutput: + """ + Describe one or more zero-ETL integrations with Amazon Redshift. + + Args: + input: + An instance of `DescribeIntegrationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeIntegrationsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_INTEGRATIONS, [], plugins) + + def describe_option_group_options( + self, + input: DescribeOptionGroupOptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeOptionGroupOptionsOutput: + """ + Describes all available options for the specified engine. + + Args: + input: + An instance of `DescribeOptionGroupOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOptionGroupOptionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_OPTION_GROUP_OPTIONS, [], plugins) + + def describe_option_groups( + self, + input: DescribeOptionGroupsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeOptionGroupsOutput: + """ + Describes the available option groups. + + Args: + input: + An instance of `DescribeOptionGroupsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOptionGroupsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_OPTION_GROUPS, [], plugins) + + def describe_orderable_db_instance_options( + self, + input: DescribeOrderableDBInstanceOptionsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeOrderableDBInstanceOptionsOutput: + """ + Describes the orderable DB instance options for a specified DB engine. + + Args: + input: + An instance of `DescribeOrderableDBInstanceOptionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeOrderableDBInstanceOptionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS, [], plugins + ) + + def describe_pending_maintenance_actions( + self, + input: DescribePendingMaintenanceActionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribePendingMaintenanceActionsOutput: + """ + Returns a list of resources (for example, DB instances) that have at + least one pending maintenance action. + + This API follows an eventual consistency model. This means that the + result of the `DescribePendingMaintenanceActions` command might not be + immediately visible to all subsequent RDS commands. Keep this in mind + when you use `DescribePendingMaintenanceActions` immediately after using + a previous API command such as `ApplyPendingMaintenanceActions`. + + Args: + input: + An instance of `DescribePendingMaintenanceActionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribePendingMaintenanceActionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_PENDING_MAINTENANCE_ACTIONS, [], plugins + ) + + def describe_reserved_db_instances( + self, + input: DescribeReservedDBInstancesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedDBInstancesOutput: + """ + Returns information about reserved DB instances for this account, or + about a specified reserved DB instance. + + Args: + input: + An instance of `DescribeReservedDBInstancesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedDBInstancesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_RESERVED_DB_INSTANCES, [], plugins) + + def describe_reserved_db_instances_offerings( + self, + input: DescribeReservedDBInstancesOfferingsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeReservedDBInstancesOfferingsOutput: + """ + Lists available reserved DB instance offerings. + + Args: + input: + An instance of `DescribeReservedDBInstancesOfferingsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeReservedDBInstancesOfferingsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS, [], plugins + ) + + def describe_serverless_v2_platform_versions( + self, + input: DescribeServerlessV2PlatformVersionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeServerlessV2PlatformVersionsOutput: + """ + Describes the properties of specific platform versions for Aurora + Serverless v2. + + Args: + input: + An instance of `DescribeServerlessV2PlatformVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeServerlessV2PlatformVersionsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS, [], plugins + ) + + def describe_source_regions( + self, + input: DescribeSourceRegionsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeSourceRegionsOutput: + """ + Returns a list of the source Amazon Web Services Regions where the + current Amazon Web Services Region can create a read replica, copy a DB + snapshot from, or replicate automated backups from. + + Use this operation to determine whether cross-Region features are + supported between other Regions and your current Region. This operation + supports pagination. + + To return information about the Regions that are enabled for your + account, or all Regions, use the EC2 operation `DescribeRegions`. For + more information, see + [DescribeRegions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html) + in the *Amazon EC2 API Reference*. + + Args: + input: + An instance of `DescribeSourceRegionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeSourceRegionsOutput`. + """ + return self._invoke(input, _models.DESCRIBE_SOURCE_REGIONS, [], plugins) + + def describe_tenant_databases( + self, + input: DescribeTenantDatabasesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> DescribeTenantDatabasesOutput: + """ + Describes the tenant databases in a DB instance that uses the + multi-tenant configuration. Only RDS for Oracle CDB instances are + supported. + + Args: + input: + An instance of `DescribeTenantDatabasesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeTenantDatabasesOutput`. + """ + return self._invoke(input, _models.DESCRIBE_TENANT_DATABASES, [], plugins) + + def describe_valid_db_instance_modifications( + self, + input: DescribeValidDBInstanceModificationsInput, + plugins: list[Plugin] | None = None, + ) -> DescribeValidDBInstanceModificationsOutput: + """ + You can call `DescribeValidDBInstanceModifications` to learn what + modifications you can make to your DB instance. You can use this + information when you call `ModifyDBInstance`. + + This command doesn't apply to RDS Custom. + + Args: + input: + An instance of `DescribeValidDBInstanceModificationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DescribeValidDBInstanceModificationsOutput`. + """ + return self._invoke( + input, _models.DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS, [], plugins + ) + + def disable_http_endpoint( + self, input: DisableHttpEndpointInput, plugins: list[Plugin] | None = None + ) -> DisableHttpEndpointOutput: + """ + Disables the HTTP endpoint for the specified DB cluster. Disabling this + endpoint disables RDS Data API. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation applies only to Aurora Serverless v2 and provisioned DB + clusters. To disable the HTTP endpoint for Aurora Serverless v1 DB + clusters, use the `EnableHttpEndpoint` parameter of the + `ModifyDBCluster` operation. + + Args: + input: + An instance of `DisableHttpEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DisableHttpEndpointOutput`. + """ + return self._invoke(input, _models.DISABLE_HTTP_ENDPOINT, [], plugins) + + def download_db_log_file_portion( + self, input: DownloadDBLogFilePortionInput, plugins: list[Plugin] | None = None + ) -> DownloadDBLogFilePortionOutput: + """ + Downloads all or a portion of the specified log file, up to 1 MB in + size. + + This command doesn't apply to RDS Custom. + + Note: + This operation uses resources on database instances. Because of this, we + recommend publishing database logs to CloudWatch and then using the + GetLogEvents operation. For more information, see + [GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html) + in the *Amazon CloudWatch Logs API Reference*. + + Args: + input: + An instance of `DownloadDBLogFilePortionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DownloadDBLogFilePortionOutput`. + """ + return self._invoke(input, _models.DOWNLOAD_DB_LOG_FILE_PORTION, [], plugins) + + def enable_http_endpoint( + self, input: EnableHttpEndpointInput, plugins: list[Plugin] | None = None + ) -> EnableHttpEndpointOutput: + """ + Enables the HTTP endpoint for the DB cluster. By default, the HTTP + endpoint isn't enabled. + + When enabled, this endpoint provides a connectionless web service API + (RDS Data API) for running SQL queries on the Aurora DB cluster. You can + also query your database from inside the RDS console with the RDS query + editor. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation applies only to Aurora Serverless v2 and provisioned DB + clusters. To enable the HTTP endpoint for Aurora Serverless v1 DB + clusters, use the `EnableHttpEndpoint` parameter of the + `ModifyDBCluster` operation. + + Args: + input: + An instance of `EnableHttpEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `EnableHttpEndpointOutput`. + """ + return self._invoke(input, _models.ENABLE_HTTP_ENDPOINT, [], plugins) + + def failover_db_cluster( + self, input: FailoverDBClusterInput, plugins: list[Plugin] | None = None + ) -> FailoverDBClusterOutput: + """ + Forces a failover for a DB cluster. + + For an Aurora DB cluster, failover for a DB cluster promotes one of the + Aurora Replicas (read-only instances) in the DB cluster to be the + primary DB instance (the cluster writer). + + For a Multi-AZ DB cluster, after RDS terminates the primary DB instance, + the internal monitoring system detects that the primary DB instance is + unhealthy and promotes a readable standby (read-only instances) in the + DB cluster to be the primary DB instance (the cluster writer). Failover + times are typically less than 35 seconds. + + An Amazon Aurora DB cluster automatically fails over to an Aurora + Replica, if one exists, when the primary DB instance fails. A Multi-AZ + DB cluster automatically fails over to a readable standby DB instance + when the primary DB instance fails. + + To simulate a failure of a primary instance for testing, you can force a + failover. Because each instance in a DB cluster has its own endpoint + address, make sure to clean up and re-establish any existing connections + that use those endpoint addresses when the failover is complete. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `FailoverDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `FailoverDBClusterOutput`. + """ + return self._invoke(input, _models.FAILOVER_DB_CLUSTER, [], plugins) + + def failover_global_cluster( + self, input: FailoverGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> FailoverGlobalClusterOutput: + """ + Promotes the specified secondary DB cluster to be the primary DB cluster + in the global database cluster to fail over or switch over a global + database. Switchover operations were previously called \"managed planned + failovers.\" + + Note: + Although this operation can be used either to fail over or to switch + over a global database cluster, its intended use is for global database + failover. To switch over a global database cluster, we recommend that + you use the SwitchoverGlobalCluster operation instead. + + How you use this operation depends on whether you are failing over or + switching over your global database cluster: + + - Failing over - Specify the `AllowDataLoss` parameter and don't + specify the `Switchover` parameter. + + - Switching over - Specify the `Switchover` parameter or omit it, but + don't specify the `AllowDataLoss` parameter. + + **About failing over and switching over** + + While failing over and switching over a global database cluster both + change the primary DB cluster, you use these operations for different + reasons: + + - *Failing over* - Use this operation to respond to an unplanned event, + such as a Regional disaster in the primary Region. Failing over can + result in a loss of write transaction data that wasn't replicated to + the chosen secondary before the failover event occurred. However, the + recovery process that promotes a DB instance on the chosen seconday DB + cluster to be the primary writer DB instance guarantees that the data + is in a transactionally consistent state. + + For more information about failing over an Amazon Aurora global + database, see [Performing managed failovers for Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover.managed-unplanned) + in the *Amazon Aurora User Guide*. + + - *Switching over* - Use this operation on a healthy global database + cluster for planned events, such as Regional rotation or to fail back + to the original primary DB cluster after a failover operation. With + this operation, there is no data loss. + + For more information about switching over an Amazon Aurora global + database, see [Performing switchovers for Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `FailoverGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `FailoverGlobalClusterOutput`. + """ + return self._invoke(input, _models.FAILOVER_GLOBAL_CLUSTER, [], plugins) + + def list_tags_for_resource( + self, input: ListTagsForResourceInput, plugins: list[Plugin] | None = None + ) -> ListTagsForResourceOutput: + """ + Lists all tags on an Amazon RDS resource. + + For an overview on tagging an Amazon RDS resource, see [Tagging Amazon + RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `ListTagsForResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListTagsForResourceOutput`. + """ + return self._invoke(input, _models.LIST_TAGS_FOR_RESOURCE, [], plugins) + + def modify_activity_stream( + self, + input: ModifyActivityStreamInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ModifyActivityStreamOutput: + """ + Changes the audit policy state of a database activity stream to either + locked (default) or unlocked. A locked policy is read-only, whereas an + unlocked policy is read/write. If your activity stream is started and + locked, you can unlock it, customize your audit policy, and then lock + your activity stream. Restarting the activity stream isn't required. + For more information, see [Modifying a database activity + stream](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Modifying.html) + in the *Amazon RDS User Guide*. + + This operation is supported for RDS for Oracle and Microsoft SQL Server. + + Args: + input: + An instance of `ModifyActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyActivityStreamOutput`. + """ + return self._invoke(input, _models.MODIFY_ACTIVITY_STREAM, [], plugins) + + def modify_certificates( + self, + input: ModifyCertificatesInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ModifyCertificatesOutput: + """ + Override the system-default Secure Sockets Layer/Transport Layer + Security (SSL/TLS) certificate for Amazon RDS for new DB instances, or + remove the override. + + By using this operation, you can specify an RDS-approved SSL/TLS + certificate for new DB instances that is different from the default + certificate provided by RDS. You can also use this operation to remove + the override, so that new DB instances use the default certificate + provided by RDS. + + You might need to override the default certificate in the following + situations: + + - You already migrated your applications to support the latest + certificate authority (CA) certificate, but the new CA certificate is + not yet the RDS default CA certificate for the specified Amazon Web + Services Region. + + - RDS has already moved to a new default CA certificate for the + specified Amazon Web Services Region, but you are still in the process + of supporting the new CA certificate. In this case, you temporarily + need additional time to finish your application changes. + + For more information about rotating your SSL/TLS certificate for RDS DB + engines, see [Rotating Your SSL/TLS + Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon RDS User Guide*. + + For more information about rotating your SSL/TLS certificate for Aurora + DB engines, see [Rotating Your SSL/TLS + Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `ModifyCertificatesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCertificatesOutput`. + """ + return self._invoke(input, _models.MODIFY_CERTIFICATES, [], plugins) + + def modify_current_db_cluster_capacity( + self, + input: ModifyCurrentDBClusterCapacityInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCurrentDBClusterCapacityOutput: + """ + Set the capacity of an Aurora Serverless v1 DB cluster to a specific + value. + + Aurora Serverless v1 scales seamlessly based on the workload on the DB + cluster. In some cases, the capacity might not scale fast enough to meet + a sudden change in workload, such as a large number of new transactions. + Call `ModifyCurrentDBClusterCapacity` to set the capacity explicitly. + + After this call sets the DB cluster capacity, Aurora Serverless v1 can + automatically scale the DB cluster based on the cooldown period for + scaling up and the cooldown period for scaling down. + + For more information about Aurora Serverless v1, see [Using Amazon + Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + + Warning: + If you call `ModifyCurrentDBClusterCapacity` with the default + `TimeoutAction`, connections that prevent Aurora Serverless v1 from + finding a scaling point might be dropped. For more information about + scaling points, see [Autoscaling for Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling) + in the *Amazon Aurora User Guide*. + Note: + This operation only applies to Aurora Serverless v1 DB clusters. + + Args: + input: + An instance of `ModifyCurrentDBClusterCapacityInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCurrentDBClusterCapacityOutput`. + """ + return self._invoke( + input, _models.MODIFY_CURRENT_DB_CLUSTER_CAPACITY, [], plugins + ) + + def modify_custom_db_engine_version( + self, + input: ModifyCustomDBEngineVersionInput, + plugins: list[Plugin] | None = None, + ) -> ModifyCustomDBEngineVersionOutput: + """ + Modifies the status of a custom engine version (CEV). You can find CEVs + to modify by calling `DescribeDBEngineVersions`. + + Note: + The MediaImport service that imports files from Amazon S3 to create CEVs + isn't integrated with Amazon Web Services CloudTrail. If you turn on + data logging for Amazon RDS in CloudTrail, calls to the + `ModifyCustomDbEngineVersion` event aren't logged. However, you might + see calls from the API gateway that accesses your Amazon S3 bucket. + These calls originate from the MediaImport service for the + `ModifyCustomDbEngineVersion` event. + + For more information, see [Modifying CEV + status](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.modify) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `ModifyCustomDBEngineVersionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyCustomDBEngineVersionOutput`. + """ + return self._invoke(input, _models.MODIFY_CUSTOM_DB_ENGINE_VERSION, [], plugins) + + def modify_db_capacity_reservation( + self, + input: ModifyDBCapacityReservationInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBCapacityReservationOutput: + """ + Modifies a DB capacity reservation. You can change the reserved capacity + in each Availability Zone of the reservation, and you can change the end + date of the reservation. You can't change the Availability Zones of an + existing reservation. + + The reservation must be in the `active` state. A future-dated + reservation that hasn't started isn't modifiable, and neither is a + reservation that Amazon RDS is already modifying. + + You must specify `CapacityPerAvailabilityZone`, `EndDateType`, or + `EndDate`. A request that specifies none of the three changes nothing, + and Amazon RDS rejects it. + + Args: + input: + An instance of `ModifyDBCapacityReservationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBCapacityReservationOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_CAPACITY_RESERVATION, [], plugins) + + def modify_db_cluster( + self, input: ModifyDBClusterInput, plugins: list[Plugin] | None = None + ) -> ModifyDBClusterOutput: + """ + Modifies the settings of an Amazon Aurora DB cluster or a Multi-AZ DB + cluster. You can change one or more settings by specifying these + parameters and the new values in the request. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `ModifyDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_CLUSTER, [], plugins) + + def modify_db_cluster_endpoint( + self, input: ModifyDBClusterEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyDBClusterEndpointOutput: + """ + Modifies the properties of an endpoint in an Amazon Aurora DB cluster. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `ModifyDBClusterEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterEndpointOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_CLUSTER_ENDPOINT, [], plugins) + + def modify_db_cluster_parameter_group( + self, + input: ModifyDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBClusterParameterGroupOutput: + """ + Modifies the parameters of a DB cluster parameter group. To modify more + than one parameter, submit a list of the following: `ParameterName`, + `ParameterValue`, and `ApplyMethod`. A maximum of 20 parameters can be + modified in a single request. + + Warning: + There are two types of parameters - dynamic parameters and static + parameters. Changes to dynamic parameters are applied to the DB cluster + immediately without a reboot. Changes to static parameters are applied + only after the DB cluster is rebooted, which can be done using + `RebootDBCluster` operation. You can use the *Parameter Groups* option + of the [Amazon RDS console](https://console.aws.amazon.com/rds/) or the + `DescribeDBClusterParameters` operation to verify that your DB cluster + parameter group has been created or modified. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `ModifyDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterParameterGroupOutput`. + """ + return self._invoke( + input, _models.MODIFY_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + def modify_db_cluster_snapshot_attribute( + self, + input: ModifyDBClusterSnapshotAttributeInput, + plugins: list[Plugin] | None = None, + ) -> ModifyDBClusterSnapshotAttributeOutput: + """ + Adds an attribute and values to, or removes an attribute and values + from, a manual DB cluster snapshot. + + To share a manual DB cluster snapshot with other Amazon Web Services + accounts, specify `restore` as the `AttributeName` and use the + `ValuesToAdd` parameter to add a list of IDs of the Amazon Web Services + accounts that are authorized to restore the manual DB cluster snapshot. + Use the value `all` to make the manual DB cluster snapshot public, which + means that it can be copied or restored by all Amazon Web Services + accounts. + + Note: + Don't add the `all` value for any manual DB cluster snapshots that + contain private information that you don't want available to all Amazon + Web Services accounts. + + If a manual DB cluster snapshot is encrypted, it can be shared, but only + by specifying a list of authorized Amazon Web Services account IDs for + the `ValuesToAdd` parameter. You can't use `all` as a value for that + parameter in this case. + + To view which Amazon Web Services accounts have access to copy or + restore a manual DB cluster snapshot, or whether a manual DB cluster + snapshot is public or private, use the + DescribeDBClusterSnapshotAttributes API operation. The accounts are + returned as values for the `restore` attribute. + + Args: + input: + An instance of `ModifyDBClusterSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBClusterSnapshotAttributeOutput`. + """ + return self._invoke( + input, _models.MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE, [], plugins + ) + + def modify_db_instance( + self, input: ModifyDBInstanceInput, plugins: list[Plugin] | None = None + ) -> ModifyDBInstanceOutput: + """ + Modifies settings for a DB instance. You can change one or more database + configuration parameters by specifying these parameters and the new + values in the request. To learn what modifications you can make to your + DB instance, call `DescribeValidDBInstanceModifications` before you call + `ModifyDBInstance`. + + Args: + input: + An instance of `ModifyDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBInstanceOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_INSTANCE, [], plugins) + + def modify_db_parameter_group( + self, input: ModifyDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBParameterGroupOutput: + """ + Modifies the parameters of a DB parameter group. To modify more than one + parameter, submit a list of the following: `ParameterName`, + `ParameterValue`, and `ApplyMethod`. A maximum of 20 parameters can be + modified in a single request. + + Warning: + After you modify a DB parameter group, you should wait at least 5 + minutes before creating your first DB instance that uses that DB + parameter group as the default parameter group. This allows Amazon RDS + to fully complete the modify operation before the parameter group is + used as the default for a new DB instance. This is especially important + for parameters that are critical when creating the default database for + a DB instance, such as the character set for the default database + defined by the `character_set_database` parameter. You can use the + *Parameter Groups* option of the [Amazon RDS + console](https://console.aws.amazon.com/rds/) or the + *DescribeDBParameters* command to verify that your DB parameter group + has been created or modified. + + Args: + input: + An instance of `ModifyDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBParameterGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_PARAMETER_GROUP, [], plugins) + + def modify_db_proxy( + self, input: ModifyDBProxyInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyOutput: + """ + Changes the settings for an existing DB proxy. + + Args: + input: + An instance of `ModifyDBProxyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_PROXY, [], plugins) + + def modify_db_proxy_endpoint( + self, input: ModifyDBProxyEndpointInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyEndpointOutput: + """ + Changes the settings for an existing DB proxy endpoint. + + Args: + input: + An instance of `ModifyDBProxyEndpointInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyEndpointOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_PROXY_ENDPOINT, [], plugins) + + def modify_db_proxy_target_group( + self, input: ModifyDBProxyTargetGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBProxyTargetGroupOutput: + """ + Modifies the properties of a `DBProxyTargetGroup`. + + Args: + input: + An instance of `ModifyDBProxyTargetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBProxyTargetGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_PROXY_TARGET_GROUP, [], plugins) + + def modify_db_recommendation( + self, input: ModifyDBRecommendationInput, plugins: list[Plugin] | None = None + ) -> ModifyDBRecommendationOutput: + """ + Updates the recommendation status and recommended action status for the + specified recommendation. + + Args: + input: + An instance of `ModifyDBRecommendationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBRecommendationOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_RECOMMENDATION, [], plugins) + + def modify_db_shard_group( + self, input: ModifyDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBShardGroupOutput: + """ + Modifies the settings of an Aurora Limitless Database DB shard group. + You can change one or more settings by specifying these parameters and + the new values in the request. + + Args: + input: + An instance of `ModifyDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBShardGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_SHARD_GROUP, [], plugins) + + def modify_db_snapshot( + self, input: ModifyDBSnapshotInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSnapshotOutput: + """ + Updates a manual DB snapshot with a new engine version. The snapshot can + be encrypted or unencrypted, but not shared or public. + + Amazon RDS supports upgrading DB snapshots for MariaDB, MySQL, + PostgreSQL, and Oracle. This operation doesn't apply to RDS Custom or + RDS for Db2. + + Args: + input: + An instance of `ModifyDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSnapshotOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_SNAPSHOT, [], plugins) + + def modify_db_snapshot_attribute( + self, input: ModifyDBSnapshotAttributeInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSnapshotAttributeOutput: + """ + Adds an attribute and values to, or removes an attribute and values + from, a manual DB snapshot. + + To share a manual DB snapshot with other Amazon Web Services accounts, + specify `restore` as the `AttributeName` and use the `ValuesToAdd` + parameter to add a list of IDs of the Amazon Web Services accounts that + are authorized to restore the manual DB snapshot. Uses the value `all` + to make the manual DB snapshot public, which means it can be copied or + restored by all Amazon Web Services accounts. + + Note: + Don't add the `all` value for any manual DB snapshots that contain + private information that you don't want available to all Amazon Web + Services accounts. + + If the manual DB snapshot is encrypted, it can be shared, but only by + specifying a list of authorized Amazon Web Services account IDs for the + `ValuesToAdd` parameter. You can't use `all` as a value for that + parameter in this case. + + To view which Amazon Web Services accounts have access to copy or + restore a manual DB snapshot, or whether a manual DB snapshot public or + private, use the DescribeDBSnapshotAttributes API operation. The + accounts are returned as values for the `restore` attribute. + + Args: + input: + An instance of `ModifyDBSnapshotAttributeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSnapshotAttributeOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_SNAPSHOT_ATTRIBUTE, [], plugins) + + def modify_db_subnet_group( + self, input: ModifyDBSubnetGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyDBSubnetGroupOutput: + """ + Modifies an existing DB subnet group. DB subnet groups must contain at + least one subnet in at least two AZs in the Amazon Web Services Region. + + Args: + input: + An instance of `ModifyDBSubnetGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyDBSubnetGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_DB_SUBNET_GROUP, [], plugins) + + def modify_event_subscription( + self, input: ModifyEventSubscriptionInput, plugins: list[Plugin] | None = None + ) -> ModifyEventSubscriptionOutput: + """ + Modifies an existing RDS event notification subscription. You can't + modify the source identifiers using this call. To change source + identifiers for a subscription, use the + `AddSourceIdentifierToSubscription` and + `RemoveSourceIdentifierFromSubscription` calls. + + You can see a list of the event categories for a given source type + (`SourceType`) in + [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) + in the *Amazon RDS User Guide* or by using the `DescribeEventCategories` + operation. + + Args: + input: + An instance of `ModifyEventSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyEventSubscriptionOutput`. + """ + return self._invoke(input, _models.MODIFY_EVENT_SUBSCRIPTION, [], plugins) + + def modify_global_cluster( + self, input: ModifyGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> ModifyGlobalClusterOutput: + """ + Modifies a setting for an Amazon Aurora global database cluster. You can + change one or more database configuration parameters by specifying these + parameters and the new values in the request. For more information on + Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora global database clusters. + + Args: + input: + An instance of `ModifyGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyGlobalClusterOutput`. + """ + return self._invoke(input, _models.MODIFY_GLOBAL_CLUSTER, [], plugins) + + def modify_integration( + self, input: ModifyIntegrationInput, plugins: list[Plugin] | None = None + ) -> ModifyIntegrationOutput: + """ + Modifies a zero-ETL integration with Amazon Redshift. + + Args: + input: + An instance of `ModifyIntegrationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyIntegrationOutput`. + """ + return self._invoke(input, _models.MODIFY_INTEGRATION, [], plugins) + + def modify_option_group( + self, input: ModifyOptionGroupInput, plugins: list[Plugin] | None = None + ) -> ModifyOptionGroupOutput: + """ + Modifies an existing option group. + + Args: + input: + An instance of `ModifyOptionGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyOptionGroupOutput`. + """ + return self._invoke(input, _models.MODIFY_OPTION_GROUP, [], plugins) + + def modify_tenant_database( + self, input: ModifyTenantDatabaseInput, plugins: list[Plugin] | None = None + ) -> ModifyTenantDatabaseOutput: + """ + Modifies an existing tenant database in a DB instance. You can change + the tenant database name or the master user password. This operation is + supported only for RDS for Oracle CDB instances using the multi-tenant + configuration. + + Args: + input: + An instance of `ModifyTenantDatabaseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ModifyTenantDatabaseOutput`. + """ + return self._invoke(input, _models.MODIFY_TENANT_DATABASE, [], plugins) + + def promote_read_replica( + self, input: PromoteReadReplicaInput, plugins: list[Plugin] | None = None + ) -> PromoteReadReplicaOutput: + """ + Promotes a read replica DB instance to a standalone DB instance. + + Note: + - Backup duration is a function of the amount of changes to the database + since the previous backup. If you plan to promote a read replica to a + standalone instance, we recommend that you enable backups and complete + at least one backup prior to promotion. In addition, a read replica + cannot be promoted to a standalone instance when it is in the + `backing-up` status. If you have enabled backups on your read replica, + configure the automated backup window so that daily backups do not + interfere with read replica promotion. + + - This command doesn't apply to Aurora MySQL, Aurora PostgreSQL, or RDS + Custom. + + Args: + input: + An instance of `PromoteReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PromoteReadReplicaOutput`. + """ + return self._invoke(input, _models.PROMOTE_READ_REPLICA, [], plugins) + + def promote_read_replica_db_cluster( + self, + input: PromoteReadReplicaDBClusterInput, + plugins: list[Plugin] | None = None, + ) -> PromoteReadReplicaDBClusterOutput: + """ + Promotes a read replica DB cluster to a standalone DB cluster. + + Args: + input: + An instance of `PromoteReadReplicaDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PromoteReadReplicaDBClusterOutput`. + """ + return self._invoke(input, _models.PROMOTE_READ_REPLICA_DB_CLUSTER, [], plugins) + + def purchase_reserved_db_instances_offering( + self, + input: PurchaseReservedDBInstancesOfferingInput, + plugins: list[Plugin] | None = None, + ) -> PurchaseReservedDBInstancesOfferingOutput: + """ + Purchases a reserved DB instance offering. + + Args: + input: + An instance of `PurchaseReservedDBInstancesOfferingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PurchaseReservedDBInstancesOfferingOutput`. + """ + return self._invoke( + input, _models.PURCHASE_RESERVED_DB_INSTANCES_OFFERING, [], plugins + ) + + def reboot_db_cluster( + self, input: RebootDBClusterInput, plugins: list[Plugin] | None = None + ) -> RebootDBClusterOutput: + """ + You might need to reboot your DB cluster, usually for maintenance + reasons. For example, if you make certain modifications, or if you + change the DB cluster parameter group associated with the DB cluster, + reboot the DB cluster for the changes to take effect. + + Rebooting a DB cluster restarts the database engine service. Rebooting a + DB cluster results in a momentary outage, during which the DB cluster + status is set to rebooting. + + Use this operation only for a non-Aurora Multi-AZ DB cluster. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RebootDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBClusterOutput`. + """ + return self._invoke(input, _models.REBOOT_DB_CLUSTER, [], plugins) + + def reboot_db_instance( + self, input: RebootDBInstanceInput, plugins: list[Plugin] | None = None + ) -> RebootDBInstanceOutput: + """ + You might need to reboot your DB instance, usually for maintenance + reasons. For example, if you make certain modifications, or if you + change the DB parameter group associated with the DB instance, you must + reboot the instance for the changes to take effect. + + Rebooting a DB instance restarts the database engine service. Rebooting + a DB instance results in a momentary outage, during which the DB + instance status is set to rebooting. + + For more information about rebooting, see [Rebooting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RebootInstance.html) + in the *Amazon RDS User Guide.* + + This command doesn't apply to RDS Custom. + + If your DB instance is part of a Multi-AZ DB cluster, you can reboot the + DB cluster with the `RebootDBCluster` operation. + + Args: + input: + An instance of `RebootDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBInstanceOutput`. + """ + return self._invoke(input, _models.REBOOT_DB_INSTANCE, [], plugins) + + def reboot_db_shard_group( + self, input: RebootDBShardGroupInput, plugins: list[Plugin] | None = None + ) -> RebootDBShardGroupOutput: + """ + You might need to reboot your DB shard group, usually for maintenance + reasons. For example, if you make certain modifications, reboot the DB + shard group for the changes to take effect. + + This operation applies only to Aurora Limitless Database DBb shard + groups. + + Args: + input: + An instance of `RebootDBShardGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RebootDBShardGroupOutput`. + """ + return self._invoke(input, _models.REBOOT_DB_SHARD_GROUP, [], plugins) + + def register_db_proxy_targets( + self, input: RegisterDBProxyTargetsInput, plugins: list[Plugin] | None = None + ) -> RegisterDBProxyTargetsOutput: + """ + Associate one or more `DBProxyTarget` data structures with a + `DBProxyTargetGroup`. + + Args: + input: + An instance of `RegisterDBProxyTargetsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RegisterDBProxyTargetsOutput`. + """ + return self._invoke(input, _models.REGISTER_DB_PROXY_TARGETS, [], plugins) + + def remove_from_global_cluster( + self, input: RemoveFromGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> RemoveFromGlobalClusterOutput: + """ + Detaches an Aurora secondary cluster from an Aurora global database + cluster. The cluster becomes a standalone cluster with read-write + capability instead of being read-only and receiving data from a primary + cluster in a different Region. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `RemoveFromGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveFromGlobalClusterOutput`. + """ + return self._invoke(input, _models.REMOVE_FROM_GLOBAL_CLUSTER, [], plugins) + + def remove_role_from_db_cluster( + self, input: RemoveRoleFromDBClusterInput, plugins: list[Plugin] | None = None + ) -> RemoveRoleFromDBClusterOutput: + """ + Removes the asssociation of an Amazon Web Services Identity and Access + Management (IAM) role from a DB cluster. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RemoveRoleFromDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromDBClusterOutput`. + """ + return self._invoke(input, _models.REMOVE_ROLE_FROM_DB_CLUSTER, [], plugins) + + def remove_role_from_db_instance( + self, input: RemoveRoleFromDBInstanceInput, plugins: list[Plugin] | None = None + ) -> RemoveRoleFromDBInstanceOutput: + """ + Disassociates an Amazon Web Services Identity and Access Management + (IAM) role from a DB instance. + + Args: + input: + An instance of `RemoveRoleFromDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveRoleFromDBInstanceOutput`. + """ + return self._invoke(input, _models.REMOVE_ROLE_FROM_DB_INSTANCE, [], plugins) + + def remove_source_identifier_from_subscription( + self, + input: RemoveSourceIdentifierFromSubscriptionInput, + plugins: list[Plugin] | None = None, + ) -> RemoveSourceIdentifierFromSubscriptionOutput: + """ + Removes a source identifier from an existing RDS event notification + subscription. + + Args: + input: + An instance of `RemoveSourceIdentifierFromSubscriptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveSourceIdentifierFromSubscriptionOutput`. + """ + return self._invoke( + input, _models.REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION, [], plugins + ) + + def remove_tags_from_resource( + self, input: RemoveTagsFromResourceInput, plugins: list[Plugin] | None = None + ) -> RemoveTagsFromResourceOutput: + """ + Removes metadata tags from an Amazon RDS resource. + + For an overview on tagging an Amazon RDS resource, see [Tagging Amazon + RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `RemoveTagsFromResourceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RemoveTagsFromResourceOutput`. + """ + return self._invoke(input, _models.REMOVE_TAGS_FROM_RESOURCE, [], plugins) + + def reset_db_cluster_parameter_group( + self, + input: ResetDBClusterParameterGroupInput, + plugins: list[Plugin] | None = None, + ) -> ResetDBClusterParameterGroupOutput: + """ + Modifies the parameters of a DB cluster parameter group to the default + value. To reset specific parameters submit a list of the following: + `ParameterName` and `ApplyMethod`. To reset the entire DB cluster + parameter group, specify the `DBClusterParameterGroupName` and + `ResetAllParameters` parameters. + + When resetting the entire group, dynamic parameters are updated + immediately and static parameters are set to `pending-reboot` to take + effect on the next DB instance restart or `RebootDBInstance` request. + You must call `RebootDBInstance` for every DB instance in your DB + cluster that you want the updated static parameter to apply to. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `ResetDBClusterParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetDBClusterParameterGroupOutput`. + """ + return self._invoke( + input, _models.RESET_DB_CLUSTER_PARAMETER_GROUP, [], plugins + ) + + def reset_db_parameter_group( + self, input: ResetDBParameterGroupInput, plugins: list[Plugin] | None = None + ) -> ResetDBParameterGroupOutput: + """ + Modifies the parameters of a DB parameter group to the engine/system + default value. To reset specific parameters, provide a list of the + following: `ParameterName` and `ApplyMethod`. To reset the entire DB + parameter group, specify the `DBParameterGroup` name and + `ResetAllParameters` parameters. When resetting the entire group, + dynamic parameters are updated immediately and static parameters are set + to `pending-reboot` to take effect on the next DB instance restart or + `RebootDBInstance` request. + + Args: + input: + An instance of `ResetDBParameterGroupInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ResetDBParameterGroupOutput`. + """ + return self._invoke(input, _models.RESET_DB_PARAMETER_GROUP, [], plugins) + + def restore_db_cluster_from_s3( + self, input: RestoreDBClusterFromS3Input, plugins: list[Plugin] | None = None + ) -> RestoreDBClusterFromS3Output: + """ + Creates an Amazon Aurora DB cluster from MySQL data stored in an Amazon + S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket + and the data must be created using the Percona XtraBackup utility as + described in [Migrating Data from MySQL by Using an Amazon S3 + Bucket](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3) + in the *Amazon Aurora User Guide*. + + Note: + This operation only restores the DB cluster, not the DB instances for + that DB cluster. You must invoke the `CreateDBInstance` operation to + create DB instances for the restored DB cluster, specifying the + identifier of the restored DB cluster in `DBClusterIdentifier`. You can + create DB instances only after the `RestoreDBClusterFromS3` operation + has completed and the DB cluster is available. + + For more information on Amazon Aurora, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. The source DB engine + must be MySQL. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with the + Aurora DB cluster when you restore it from Amazon S3. + + Args: + input: + An instance of `RestoreDBClusterFromS3Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterFromS3Output`. + """ + return self._invoke(input, _models.RESTORE_DB_CLUSTER_FROM_S3, [], plugins) + + def restore_db_cluster_from_snapshot( + self, + input: RestoreDBClusterFromSnapshotInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBClusterFromSnapshotOutput: + """ + Creates a new DB cluster from a DB snapshot or DB cluster snapshot. + + The target DB cluster is created from the source snapshot with a default + configuration. If you don't specify a security group, the new DB + cluster is associated with the default security group. + + You can use the `EnableVPCNetworking` and `EnableInternetAccessGateway` + parameters together to restore an Aurora PostgreSQL cluster without VPC + networking and with internet-based connectivity. These two parameters + must always be specified together. Set `EnableVPCNetworking` to `false` + to disable the VPC network interface (ENI) for the cluster. + `EnableInternetAccessGateway` enables internet-based connectivity + through an internet access gateway. IAM database authentication is + required and must be enabled using `EnableIAMDatabaseAuthentication`. + Once the cluster is restored, you need to modify the DB cluster to + update `MasterUserAuthenticationType` to `iam-db-auth`. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster when you restore it from a snapshot. + + Note: + This operation only restores the DB cluster, not the DB instances for + that DB cluster. You must invoke the `CreateDBInstance` operation to + create DB instances for the restored DB cluster, specifying the + identifier of the restored DB cluster in `DBClusterIdentifier`. You can + create DB instances only after the `RestoreDBClusterFromSnapshot` + operation has completed and the DB cluster is available. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RestoreDBClusterFromSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterFromSnapshotOutput`. + """ + return self._invoke( + input, _models.RESTORE_DB_CLUSTER_FROM_SNAPSHOT, [], plugins + ) + + def restore_db_cluster_to_point_in_time( + self, + input: RestoreDBClusterToPointInTimeInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBClusterToPointInTimeOutput: + """ + Restores a DB cluster to an arbitrary point in time. Users can restore + to any point in time before `LatestRestorableTime` for up to + `BackupRetentionPeriod` days. The target DB cluster is created from the + source DB cluster with the same configuration as the original DB + cluster, except that the new DB cluster is created with the default DB + security group. Unless the `RestoreType` is set to `copy-on-write`, the + restore may occur in a different Availability Zone (AZ) from the + original DB cluster. The AZ where RDS restores the DB cluster depends on + the AZs in the specified subnet group. + + You can use the `EnableVPCNetworking` and `EnableInternetAccessGateway` + parameters together to restore an Aurora PostgreSQL cluster without VPC + networking and with internet-based connectivity. These two parameters + must always be specified together. Set `EnableVPCNetworking` to `false` + to disable the VPC network interface (ENI) for the cluster. + `EnableInternetAccessGateway` enables internet-based connectivity + through an internet access gateway. IAM database authentication is + required and must be enabled using `EnableIAMDatabaseAuthentication`. + Once the cluster is restored, you need to modify the DB cluster to + update `MasterUserAuthenticationType` to `iam-db-auth`. + + You can use the `AssociatedRoles` parameter to associate one or more + Amazon Web Services Identity and Access Management (IAM) roles with an + Aurora DB cluster when you restore it to a point in time. + + Note: + For Aurora, this operation only restores the DB cluster, not the DB + instances for that DB cluster. You must invoke the `CreateDBInstance` + operation to create DB instances for the restored DB cluster, specifying + the identifier of the restored DB cluster in `DBClusterIdentifier`. You + can create DB instances only after the `RestoreDBClusterToPointInTime` + operation has completed and the DB cluster is available. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide*. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `RestoreDBClusterToPointInTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBClusterToPointInTimeOutput`. + """ + return self._invoke( + input, _models.RESTORE_DB_CLUSTER_TO_POINT_IN_TIME, [], plugins + ) + + def restore_db_instance_from_db_snapshot( + self, + input: RestoreDBInstanceFromDBSnapshotInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBInstanceFromDBSnapshotOutput: + """ + Creates a new DB instance from a DB snapshot. The target database is + created from the source database restore point with most of the + source's original configuration, including the default security group + and DB parameter group. By default, the new DB instance is created as a + Single-AZ deployment, except when the instance is a SQL Server instance + that has an option group associated with mirroring. In this case, the + instance becomes a Multi-AZ deployment, not a Single-AZ deployment. + + If you want to replace your original DB instance with the new, restored + DB instance, then rename your original DB instance before you call the + `RestoreDBInstanceFromDBSnapshot` operation. RDS doesn't allow two DB + instances with the same name. After you have renamed your original DB + instance with a different identifier, then you can pass the original + name of the DB instance as the `DBInstanceIdentifier` in the call to the + `RestoreDBInstanceFromDBSnapshot` operation. The result is that you + replace the original DB instance with the DB instance created from the + snapshot. + + If you are restoring from a shared manual DB snapshot, the + `DBSnapshotIdentifier` must be the ARN of the shared DB snapshot. + + To restore from a DB snapshot with an unsupported engine version, you + must first upgrade the engine version of the snapshot. For more + information about upgrading a RDS for MySQL DB snapshot engine version, + see [Upgrading a MySQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-upgrade-snapshot.html). + For more information about upgrading a RDS for PostgreSQL DB snapshot + engine version, [Upgrading a PostgreSQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBSnapshot.PostgreSQL.html). + + Note: + This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For + Aurora, use `RestoreDBClusterFromSnapshot`. + + Args: + input: + An instance of `RestoreDBInstanceFromDBSnapshotInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceFromDBSnapshotOutput`. + """ + return self._invoke( + input, _models.RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT, [], plugins + ) + + def restore_db_instance_from_s3( + self, input: RestoreDBInstanceFromS3Input, plugins: list[Plugin] | None = None + ) -> RestoreDBInstanceFromS3Output: + """ + Amazon Relational Database Service (Amazon RDS) supports importing MySQL + databases by using backup files. You can create a backup of your + on-premises database, store it on Amazon Simple Storage Service (Amazon + S3), and then restore the backup file onto a new Amazon RDS DB instance + running MySQL. For more information, see [Restoring a backup into an + Amazon RDS for MySQL DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html) + in the *Amazon RDS User Guide.* + + This operation doesn't apply to RDS Custom. + + Args: + input: + An instance of `RestoreDBInstanceFromS3Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceFromS3Output`. + """ + return self._invoke(input, _models.RESTORE_DB_INSTANCE_FROM_S3, [], plugins) + + def restore_db_instance_to_point_in_time( + self, + input: RestoreDBInstanceToPointInTimeInput, + plugins: list[Plugin] | None = None, + ) -> RestoreDBInstanceToPointInTimeOutput: + """ + Restores a DB instance to an arbitrary point in time. You can restore to + any point in time before the time identified by the + `LatestRestorableTime` property. You can restore to a point up to the + number of days specified by the `BackupRetentionPeriod` property. + + The target database is created with most of the original configuration, + but in a system-selected Availability Zone, with the default security + group, the default subnet group, and the default DB parameter group. By + default, the new DB instance is created as a single-AZ deployment except + when the instance is a SQL Server instance that has an option group that + is associated with mirroring; in this case, the instance becomes a + mirrored deployment and not a single-AZ deployment. + + Note: + This operation doesn't apply to Aurora MySQL and Aurora PostgreSQL. For + Aurora, use `RestoreDBClusterToPointInTime`. + + Args: + input: + An instance of `RestoreDBInstanceToPointInTimeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreDBInstanceToPointInTimeOutput`. + """ + return self._invoke( + input, _models.RESTORE_DB_INSTANCE_TO_POINT_IN_TIME, [], plugins + ) + + def revoke_db_security_group_ingress( + self, + input: RevokeDBSecurityGroupIngressInput, + plugins: list[Plugin] | None = None, + ) -> RevokeDBSecurityGroupIngressOutput: + """ + Revokes ingress from a DBSecurityGroup for previously authorized IP + ranges or EC2 or VPC security groups. Required parameters for this API + are one of CIDRIP, EC2SecurityGroupId for VPC, or + (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or + EC2SecurityGroupId). + + Note: + EC2-Classic was retired on August 15, 2022. If you haven't migrated + from EC2-Classic to a VPC, we recommend that you migrate as soon as + possible. For more information, see [Migrate from EC2-Classic to a + VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) + in the *Amazon EC2 User Guide*, the blog [EC2-Classic Networking is + Retiring -- Here's How to + Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), + and [Moving a DB instance not in a VPC into a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `RevokeDBSecurityGroupIngressInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RevokeDBSecurityGroupIngressOutput`. + """ + return self._invoke( + input, _models.REVOKE_DB_SECURITY_GROUP_INGRESS, [], plugins + ) + + def start_activity_stream( + self, input: StartActivityStreamInput, plugins: list[Plugin] | None = None + ) -> StartActivityStreamOutput: + """ + Starts a database activity stream to monitor activity on the database. + For more information, see [Monitoring Amazon Aurora with Database + Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) + in the *Amazon Aurora User Guide* or [Monitoring Amazon RDS with + Database Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `StartActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartActivityStreamOutput`. + """ + return self._invoke(input, _models.START_ACTIVITY_STREAM, [], plugins) + + def start_db_cluster( + self, input: StartDBClusterInput, plugins: list[Plugin] | None = None + ) -> StartDBClusterOutput: + """ + Starts an Amazon Aurora DB cluster that was stopped using the Amazon Web + Services console, the stop-db-cluster CLI command, or the + `StopDBCluster` operation. + + For more information, see [Stopping and Starting an Aurora + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `StartDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBClusterOutput`. + """ + return self._invoke(input, _models.START_DB_CLUSTER, [], plugins) + + def start_db_instance( + self, input: StartDBInstanceInput, plugins: list[Plugin] | None = None + ) -> StartDBInstanceOutput: + """ + Starts an Amazon RDS DB instance that was stopped using the Amazon Web + Services console, the stop-db-instance CLI command, or the + `StopDBInstance` operation. + + For more information, see [Starting an Amazon RDS DB instance That Was + Previously + Stopped](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StartInstance.html) + in the *Amazon RDS User Guide.* + + Note: + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. For Aurora DB clusters, use `StartDBCluster` instead. + + Args: + input: + An instance of `StartDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBInstanceOutput`. + """ + return self._invoke(input, _models.START_DB_INSTANCE, [], plugins) + + def start_db_instance_automated_backups_replication( + self, + input: StartDBInstanceAutomatedBackupsReplicationInput, + plugins: list[Plugin] | None = None, + ) -> StartDBInstanceAutomatedBackupsReplicationOutput: + """ + Enables replication of automated backups to a different Amazon Web + Services Region. + + This command doesn't apply to RDS Custom. + + For more information, see [Replicating Automated Backups to Another + Amazon Web Services + Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `StartDBInstanceAutomatedBackupsReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartDBInstanceAutomatedBackupsReplicationOutput`. + """ + return self._invoke( + input, _models.START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION, [], plugins + ) + + def start_export_task( + self, input: StartExportTaskInput, plugins: list[Plugin] | None = None + ) -> StartExportTaskOutput: + """ + Starts an export of DB snapshot or DB cluster data to Amazon S3. The + provided IAM role must have access to the S3 bucket. + + You can't export snapshot data from RDS Custom DB instances. For more + information, see [Supported Regions and DB engines for exporting + snapshots to S3 in Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.ExportSnapshotToS3.html). + + For more information on exporting DB snapshot data, see [Exporting DB + snapshot data to Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.html) + in the *Amazon RDS User Guide* or [Exporting DB cluster snapshot data to + Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-export-snapshot.html) + in the *Amazon Aurora User Guide*. + + For more information on exporting DB cluster data, see [Exporting DB + cluster data to Amazon + S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/export-cluster-data.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `StartExportTaskInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StartExportTaskOutput`. + """ + return self._invoke(input, _models.START_EXPORT_TASK, [], plugins) + + def stop_activity_stream( + self, input: StopActivityStreamInput, plugins: list[Plugin] | None = None + ) -> StopActivityStreamOutput: + """ + Stops a database activity stream that was started using the Amazon Web + Services console, the `start-activity-stream` CLI command, or the + `StartActivityStream` operation. + + For more information, see [Monitoring Amazon Aurora with Database + Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) + in the *Amazon Aurora User Guide* or [Monitoring Amazon RDS with + Database Activity + Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) + in the *Amazon RDS User Guide*. + + Args: + input: + An instance of `StopActivityStreamInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopActivityStreamOutput`. + """ + return self._invoke(input, _models.STOP_ACTIVITY_STREAM, [], plugins) + + def stop_db_cluster( + self, input: StopDBClusterInput, plugins: list[Plugin] | None = None + ) -> StopDBClusterOutput: + """ + Stops an Amazon Aurora DB cluster. When you stop a DB cluster, Aurora + retains the DB cluster's metadata, including its endpoints and DB + parameter groups. Aurora also retains the transaction logs so you can do + a point-in-time restore if necessary. + + For more information, see [Stopping and Starting an Aurora + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) + in the *Amazon Aurora User Guide*. + + Note: + This operation only applies to Aurora DB clusters. + + Args: + input: + An instance of `StopDBClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBClusterOutput`. + """ + return self._invoke(input, _models.STOP_DB_CLUSTER, [], plugins) + + def stop_db_instance( + self, input: StopDBInstanceInput, plugins: list[Plugin] | None = None + ) -> StopDBInstanceOutput: + """ + Stops an Amazon RDS DB instance temporarily. When you stop a DB + instance, Amazon RDS retains the DB instance's metadata, including its + endpoint, DB parameter group, and option group membership. Amazon RDS + also retains the transaction logs so you can do a point-in-time restore + if necessary. The instance restarts automatically after 7 days. + + For more information, see [Stopping an Amazon RDS DB Instance + Temporarily](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html) + in the *Amazon RDS User Guide.* + + Note: + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. For Aurora clusters, use `StopDBCluster` instead. + + Args: + input: + An instance of `StopDBInstanceInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBInstanceOutput`. + """ + return self._invoke(input, _models.STOP_DB_INSTANCE, [], plugins) + + def stop_db_instance_automated_backups_replication( + self, + input: StopDBInstanceAutomatedBackupsReplicationInput, + plugins: list[Plugin] | None = None, + ) -> StopDBInstanceAutomatedBackupsReplicationOutput: + """ + Stops automated backup replication for a DB instance. + + This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora + PostgreSQL. + + For more information, see [Replicating Automated Backups to Another + Amazon Web Services + Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) + in the *Amazon RDS User Guide.* + + Args: + input: + An instance of `StopDBInstanceAutomatedBackupsReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `StopDBInstanceAutomatedBackupsReplicationOutput`. + """ + return self._invoke( + input, _models.STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION, [], plugins + ) + + def switchover_blue_green_deployment( + self, + input: SwitchoverBlueGreenDeploymentInput, + plugins: list[Plugin] | None = None, + ) -> SwitchoverBlueGreenDeploymentOutput: + """ + Switches over a blue/green deployment. + + Before you switch over, production traffic is routed to the databases in + the blue environment. After you switch over, production traffic is + routed to the databases in the green environment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + + Args: + input: + An instance of `SwitchoverBlueGreenDeploymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverBlueGreenDeploymentOutput`. + """ + return self._invoke( + input, _models.SWITCHOVER_BLUE_GREEN_DEPLOYMENT, [], plugins + ) + + def switchover_global_cluster( + self, input: SwitchoverGlobalClusterInput, plugins: list[Plugin] | None = None + ) -> SwitchoverGlobalClusterOutput: + """ + Switches over the specified secondary DB cluster to be the new primary + DB cluster in the global database cluster. Switchover operations were + previously called \"managed planned failovers.\" + + Aurora promotes the specified secondary cluster to assume full + read/write capabilities and demotes the current primary cluster to a + secondary (read-only) cluster, maintaining the orginal replication + topology. All secondary clusters are synchronized with the primary at + the beginning of the process so the new primary continues operations for + the Aurora global database without losing any data. Your database is + unavailable for a short time while the primary and selected secondary + clusters are assuming their new roles. For more information about + switching over an Aurora global database, see [Performing switchovers + for Amazon Aurora global + databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover) + in the *Amazon Aurora User Guide*. + + Note: + This operation is intended for controlled environments, for operations + such as \"regional rotation\" or to fall back to the original primary + after a global database failover. + + Args: + input: + An instance of `SwitchoverGlobalClusterInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverGlobalClusterOutput`. + """ + return self._invoke(input, _models.SWITCHOVER_GLOBAL_CLUSTER, [], plugins) + + def switchover_read_replica( + self, input: SwitchoverReadReplicaInput, plugins: list[Plugin] | None = None + ) -> SwitchoverReadReplicaOutput: + """ + Switches over an Oracle standby database in an Oracle Data Guard + environment, making it the new primary database. Issue this command in + the Region that hosts the current standby database. + + Args: + input: + An instance of `SwitchoverReadReplicaInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `SwitchoverReadReplicaOutput`. + """ + return self._invoke(input, _models.SWITCHOVER_READ_REPLICA, [], plugins) + + def _new_config(self) -> RDSConfig: + return RDSConfig.resolve() + + def _post_setup(self, config: RDSConfig) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/config.py b/clients/aws-sdk-rds/src/aws_sdk_rds/config.py new file mode 100644 index 00000000..4d922a8d --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/config.py @@ -0,0 +1,1056 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import FieldSpec +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import AwsQueryClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import AMAZON_RD_SV19 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AddRoleToDBClusterInput, + AddRoleToDBClusterOutput, + AddRoleToDBInstanceInput, + AddRoleToDBInstanceOutput, + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + AddTagsToResourceInput, + AddTagsToResourceOutput, + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + BacktrackDBClusterInput, + BacktrackDBClusterOutput, + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + CopyDBClusterSnapshotInput, + CopyDBClusterSnapshotOutput, + CopyDBParameterGroupInput, + CopyDBParameterGroupOutput, + CopyDBSnapshotInput, + CopyDBSnapshotOutput, + CopyOptionGroupInput, + CopyOptionGroupOutput, + CreateBlueGreenDeploymentInput, + CreateBlueGreenDeploymentOutput, + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + CreateDBClusterEndpointInput, + CreateDBClusterEndpointOutput, + CreateDBClusterInput, + CreateDBClusterOutput, + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + CreateDBClusterSnapshotInput, + CreateDBClusterSnapshotOutput, + CreateDBInstanceInput, + CreateDBInstanceOutput, + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + CreateDBParameterGroupInput, + CreateDBParameterGroupOutput, + CreateDBProxyEndpointInput, + CreateDBProxyEndpointOutput, + CreateDBProxyInput, + CreateDBProxyOutput, + CreateDBSecurityGroupInput, + CreateDBSecurityGroupOutput, + CreateDBShardGroupInput, + CreateDBShardGroupOutput, + CreateDBSnapshotInput, + CreateDBSnapshotOutput, + CreateDBSubnetGroupInput, + CreateDBSubnetGroupOutput, + CreateEventSubscriptionInput, + CreateEventSubscriptionOutput, + CreateGlobalClusterInput, + CreateGlobalClusterOutput, + CreateIntegrationInput, + CreateIntegrationOutput, + CreateOptionGroupInput, + CreateOptionGroupOutput, + CreateTenantDatabaseInput, + CreateTenantDatabaseOutput, + DeleteBlueGreenDeploymentInput, + DeleteBlueGreenDeploymentOutput, + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + DeleteDBClusterEndpointInput, + DeleteDBClusterEndpointOutput, + DeleteDBClusterInput, + DeleteDBClusterOutput, + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + DeleteDBClusterSnapshotInput, + DeleteDBClusterSnapshotOutput, + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + DeleteDBInstanceInput, + DeleteDBInstanceOutput, + DeleteDBParameterGroupInput, + DeleteDBParameterGroupOutput, + DeleteDBProxyEndpointInput, + DeleteDBProxyEndpointOutput, + DeleteDBProxyInput, + DeleteDBProxyOutput, + DeleteDBSecurityGroupInput, + DeleteDBSecurityGroupOutput, + DeleteDBShardGroupInput, + DeleteDBShardGroupOutput, + DeleteDBSnapshotInput, + DeleteDBSnapshotOutput, + DeleteDBSubnetGroupInput, + DeleteDBSubnetGroupOutput, + DeleteEventSubscriptionInput, + DeleteEventSubscriptionOutput, + DeleteGlobalClusterInput, + DeleteGlobalClusterOutput, + DeleteIntegrationInput, + DeleteIntegrationOutput, + DeleteOptionGroupInput, + DeleteOptionGroupOutput, + DeleteTenantDatabaseInput, + DeleteTenantDatabaseOutput, + DeregisterDBProxyTargetsInput, + DeregisterDBProxyTargetsOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + DescribeCertificatesInput, + DescribeCertificatesOutput, + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + DescribeDBClusterEndpointsInput, + DescribeDBClusterEndpointsOutput, + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + DescribeDBClusterSnapshotsInput, + DescribeDBClusterSnapshotsOutput, + DescribeDBClustersInput, + DescribeDBClustersOutput, + DescribeDBEngineVersionsInput, + DescribeDBEngineVersionsOutput, + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + DescribeDBInstancesInput, + DescribeDBInstancesOutput, + DescribeDBLogFilesInput, + DescribeDBLogFilesOutput, + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + DescribeDBParameterGroupsInput, + DescribeDBParameterGroupsOutput, + DescribeDBParametersInput, + DescribeDBParametersOutput, + DescribeDBProxiesInput, + DescribeDBProxiesOutput, + DescribeDBProxyEndpointsInput, + DescribeDBProxyEndpointsOutput, + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + DescribeDBProxyTargetsInput, + DescribeDBProxyTargetsOutput, + DescribeDBRecommendationsInput, + DescribeDBRecommendationsOutput, + DescribeDBSecurityGroupsInput, + DescribeDBSecurityGroupsOutput, + DescribeDBShardGroupsInput, + DescribeDBShardGroupsOutput, + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + DescribeDBSnapshotsInput, + DescribeDBSnapshotsOutput, + DescribeDBSubnetGroupsInput, + DescribeDBSubnetGroupsOutput, + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + DescribeEventCategoriesInput, + DescribeEventCategoriesOutput, + DescribeEventSubscriptionsInput, + DescribeEventSubscriptionsOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeGlobalClustersInput, + DescribeGlobalClustersOutput, + DescribeIntegrationsInput, + DescribeIntegrationsOutput, + DescribeOptionGroupOptionsInput, + DescribeOptionGroupOptionsOutput, + DescribeOptionGroupsInput, + DescribeOptionGroupsOutput, + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + DescribeReservedDBInstancesOutput, + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + DescribeSourceRegionsInput, + DescribeSourceRegionsOutput, + DescribeTenantDatabasesInput, + DescribeTenantDatabasesOutput, + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + DisableHttpEndpointInput, + DisableHttpEndpointOutput, + DownloadDBLogFilePortionInput, + DownloadDBLogFilePortionOutput, + EnableHttpEndpointInput, + EnableHttpEndpointOutput, + FailoverDBClusterInput, + FailoverDBClusterOutput, + FailoverGlobalClusterInput, + FailoverGlobalClusterOutput, + ListTagsForResourceInput, + ListTagsForResourceOutput, + ModifyActivityStreamInput, + ModifyActivityStreamOutput, + ModifyCertificatesInput, + ModifyCertificatesOutput, + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + ModifyDBClusterEndpointInput, + ModifyDBClusterEndpointOutput, + ModifyDBClusterInput, + ModifyDBClusterOutput, + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + ModifyDBInstanceInput, + ModifyDBInstanceOutput, + ModifyDBParameterGroupInput, + ModifyDBParameterGroupOutput, + ModifyDBProxyEndpointInput, + ModifyDBProxyEndpointOutput, + ModifyDBProxyInput, + ModifyDBProxyOutput, + ModifyDBProxyTargetGroupInput, + ModifyDBProxyTargetGroupOutput, + ModifyDBRecommendationInput, + ModifyDBRecommendationOutput, + ModifyDBShardGroupInput, + ModifyDBShardGroupOutput, + ModifyDBSnapshotAttributeInput, + ModifyDBSnapshotAttributeOutput, + ModifyDBSnapshotInput, + ModifyDBSnapshotOutput, + ModifyDBSubnetGroupInput, + ModifyDBSubnetGroupOutput, + ModifyEventSubscriptionInput, + ModifyEventSubscriptionOutput, + ModifyGlobalClusterInput, + ModifyGlobalClusterOutput, + ModifyIntegrationInput, + ModifyIntegrationOutput, + ModifyOptionGroupInput, + ModifyOptionGroupOutput, + ModifyTenantDatabaseInput, + ModifyTenantDatabaseOutput, + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + PromoteReadReplicaInput, + PromoteReadReplicaOutput, + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + RebootDBClusterInput, + RebootDBClusterOutput, + RebootDBInstanceInput, + RebootDBInstanceOutput, + RebootDBShardGroupInput, + RebootDBShardGroupOutput, + RegisterDBProxyTargetsInput, + RegisterDBProxyTargetsOutput, + RemoveFromGlobalClusterInput, + RemoveFromGlobalClusterOutput, + RemoveRoleFromDBClusterInput, + RemoveRoleFromDBClusterOutput, + RemoveRoleFromDBInstanceInput, + RemoveRoleFromDBInstanceOutput, + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + RemoveTagsFromResourceInput, + RemoveTagsFromResourceOutput, + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + ResetDBParameterGroupInput, + ResetDBParameterGroupOutput, + RestoreDBClusterFromS3Input, + RestoreDBClusterFromS3Output, + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + RestoreDBInstanceFromS3Input, + RestoreDBInstanceFromS3Output, + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + StartActivityStreamInput, + StartActivityStreamOutput, + StartDBClusterInput, + StartDBClusterOutput, + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + StartDBInstanceInput, + StartDBInstanceOutput, + StartExportTaskInput, + StartExportTaskOutput, + StopActivityStreamInput, + StopActivityStreamOutput, + StopDBClusterInput, + StopDBClusterOutput, + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + StopDBInstanceInput, + StopDBInstanceOutput, + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + SwitchoverGlobalClusterInput, + SwitchoverGlobalClusterOutput, + SwitchoverReadReplicaInput, + SwitchoverReadReplicaOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AddRoleToDBClusterInput, AddRoleToDBClusterOutput, Any, Any], + Interceptor[AddRoleToDBInstanceInput, AddRoleToDBInstanceOutput, Any, Any], + Interceptor[ + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + Any, + Any, + ], + Interceptor[AddTagsToResourceInput, AddTagsToResourceOutput, Any, Any], + Interceptor[ + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + Any, + Any, + ], + Interceptor[ + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[BacktrackDBClusterInput, BacktrackDBClusterOutput, Any, Any], + Interceptor[ + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[CancelExportTaskInput, CancelExportTaskOutput, Any, Any], + Interceptor[ + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[CopyDBClusterSnapshotInput, CopyDBClusterSnapshotOutput, Any, Any], + Interceptor[CopyDBParameterGroupInput, CopyDBParameterGroupOutput, Any, Any], + Interceptor[CopyDBSnapshotInput, CopyDBSnapshotOutput, Any, Any], + Interceptor[CopyOptionGroupInput, CopyOptionGroupOutput, Any, Any], + Interceptor[ + CreateBlueGreenDeploymentInput, CreateBlueGreenDeploymentOutput, Any, Any + ], + Interceptor[ + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[ + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[CreateDBClusterInput, CreateDBClusterOutput, Any, Any], + Interceptor[ + CreateDBClusterEndpointInput, CreateDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + CreateDBClusterSnapshotInput, CreateDBClusterSnapshotOutput, Any, Any + ], + Interceptor[CreateDBInstanceInput, CreateDBInstanceOutput, Any, Any], + Interceptor[ + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + Any, + Any, + ], + Interceptor[ + CreateDBParameterGroupInput, CreateDBParameterGroupOutput, Any, Any + ], + Interceptor[CreateDBProxyInput, CreateDBProxyOutput, Any, Any], + Interceptor[CreateDBProxyEndpointInput, CreateDBProxyEndpointOutput, Any, Any], + Interceptor[CreateDBSecurityGroupInput, CreateDBSecurityGroupOutput, Any, Any], + Interceptor[CreateDBShardGroupInput, CreateDBShardGroupOutput, Any, Any], + Interceptor[CreateDBSnapshotInput, CreateDBSnapshotOutput, Any, Any], + Interceptor[CreateDBSubnetGroupInput, CreateDBSubnetGroupOutput, Any, Any], + Interceptor[ + CreateEventSubscriptionInput, CreateEventSubscriptionOutput, Any, Any + ], + Interceptor[CreateGlobalClusterInput, CreateGlobalClusterOutput, Any, Any], + Interceptor[CreateIntegrationInput, CreateIntegrationOutput, Any, Any], + Interceptor[CreateOptionGroupInput, CreateOptionGroupOutput, Any, Any], + Interceptor[CreateTenantDatabaseInput, CreateTenantDatabaseOutput, Any, Any], + Interceptor[ + DeleteBlueGreenDeploymentInput, DeleteBlueGreenDeploymentOutput, Any, Any + ], + Interceptor[ + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[DeleteDBClusterInput, DeleteDBClusterOutput, Any, Any], + Interceptor[ + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBClusterEndpointInput, DeleteDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBClusterSnapshotInput, DeleteDBClusterSnapshotOutput, Any, Any + ], + Interceptor[DeleteDBInstanceInput, DeleteDBInstanceOutput, Any, Any], + Interceptor[ + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + Any, + Any, + ], + Interceptor[ + DeleteDBParameterGroupInput, DeleteDBParameterGroupOutput, Any, Any + ], + Interceptor[DeleteDBProxyInput, DeleteDBProxyOutput, Any, Any], + Interceptor[DeleteDBProxyEndpointInput, DeleteDBProxyEndpointOutput, Any, Any], + Interceptor[DeleteDBSecurityGroupInput, DeleteDBSecurityGroupOutput, Any, Any], + Interceptor[DeleteDBShardGroupInput, DeleteDBShardGroupOutput, Any, Any], + Interceptor[DeleteDBSnapshotInput, DeleteDBSnapshotOutput, Any, Any], + Interceptor[DeleteDBSubnetGroupInput, DeleteDBSubnetGroupOutput, Any, Any], + Interceptor[ + DeleteEventSubscriptionInput, DeleteEventSubscriptionOutput, Any, Any + ], + Interceptor[DeleteGlobalClusterInput, DeleteGlobalClusterOutput, Any, Any], + Interceptor[DeleteIntegrationInput, DeleteIntegrationOutput, Any, Any], + Interceptor[DeleteOptionGroupInput, DeleteOptionGroupOutput, Any, Any], + Interceptor[DeleteTenantDatabaseInput, DeleteTenantDatabaseOutput, Any, Any], + Interceptor[ + DeregisterDBProxyTargetsInput, DeregisterDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput, Any, Any + ], + Interceptor[ + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + Any, + Any, + ], + Interceptor[DescribeCertificatesInput, DescribeCertificatesOutput, Any, Any], + Interceptor[ + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterEndpointsInput, DescribeDBClusterEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + Any, + Any, + ], + Interceptor[DescribeDBClustersInput, DescribeDBClustersOutput, Any, Any], + Interceptor[ + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBClusterSnapshotsInput, DescribeDBClusterSnapshotsOutput, Any, Any + ], + Interceptor[ + DescribeDBEngineVersionsInput, DescribeDBEngineVersionsOutput, Any, Any + ], + Interceptor[ + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + Any, + Any, + ], + Interceptor[DescribeDBInstancesInput, DescribeDBInstancesOutput, Any, Any], + Interceptor[DescribeDBLogFilesInput, DescribeDBLogFilesOutput, Any, Any], + Interceptor[ + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBParameterGroupsInput, DescribeDBParameterGroupsOutput, Any, Any + ], + Interceptor[DescribeDBParametersInput, DescribeDBParametersOutput, Any, Any], + Interceptor[DescribeDBProxiesInput, DescribeDBProxiesOutput, Any, Any], + Interceptor[ + DescribeDBProxyEndpointsInput, DescribeDBProxyEndpointsOutput, Any, Any + ], + Interceptor[ + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBProxyTargetsInput, DescribeDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + DescribeDBRecommendationsInput, DescribeDBRecommendationsOutput, Any, Any + ], + Interceptor[ + DescribeDBSecurityGroupsInput, DescribeDBSecurityGroupsOutput, Any, Any + ], + Interceptor[DescribeDBShardGroupsInput, DescribeDBShardGroupsOutput, Any, Any], + Interceptor[ + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + Any, + Any, + ], + Interceptor[DescribeDBSnapshotsInput, DescribeDBSnapshotsOutput, Any, Any], + Interceptor[ + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + Any, + Any, + ], + Interceptor[ + DescribeDBSubnetGroupsInput, DescribeDBSubnetGroupsOutput, Any, Any + ], + Interceptor[ + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + Any, + Any, + ], + Interceptor[ + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + Any, + Any, + ], + Interceptor[ + DescribeEventCategoriesInput, DescribeEventCategoriesOutput, Any, Any + ], + Interceptor[DescribeEventsInput, DescribeEventsOutput, Any, Any], + Interceptor[ + DescribeEventSubscriptionsInput, DescribeEventSubscriptionsOutput, Any, Any + ], + Interceptor[DescribeExportTasksInput, DescribeExportTasksOutput, Any, Any], + Interceptor[ + DescribeGlobalClustersInput, DescribeGlobalClustersOutput, Any, Any + ], + Interceptor[DescribeIntegrationsInput, DescribeIntegrationsOutput, Any, Any], + Interceptor[ + DescribeOptionGroupOptionsInput, DescribeOptionGroupOptionsOutput, Any, Any + ], + Interceptor[DescribeOptionGroupsInput, DescribeOptionGroupsOutput, Any, Any], + Interceptor[ + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + Any, + Any, + ], + Interceptor[ + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOutput, + Any, + Any, + ], + Interceptor[ + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + Any, + Any, + ], + Interceptor[ + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + Any, + Any, + ], + Interceptor[DescribeSourceRegionsInput, DescribeSourceRegionsOutput, Any, Any], + Interceptor[ + DescribeTenantDatabasesInput, DescribeTenantDatabasesOutput, Any, Any + ], + Interceptor[ + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + Any, + Any, + ], + Interceptor[DisableHttpEndpointInput, DisableHttpEndpointOutput, Any, Any], + Interceptor[ + DownloadDBLogFilePortionInput, DownloadDBLogFilePortionOutput, Any, Any + ], + Interceptor[EnableHttpEndpointInput, EnableHttpEndpointOutput, Any, Any], + Interceptor[FailoverDBClusterInput, FailoverDBClusterOutput, Any, Any], + Interceptor[FailoverGlobalClusterInput, FailoverGlobalClusterOutput, Any, Any], + Interceptor[ListTagsForResourceInput, ListTagsForResourceOutput, Any, Any], + Interceptor[ModifyActivityStreamInput, ModifyActivityStreamOutput, Any, Any], + Interceptor[ModifyCertificatesInput, ModifyCertificatesOutput, Any, Any], + Interceptor[ + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + Any, + Any, + ], + Interceptor[ + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + Any, + Any, + ], + Interceptor[ + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + Any, + Any, + ], + Interceptor[ModifyDBClusterInput, ModifyDBClusterOutput, Any, Any], + Interceptor[ + ModifyDBClusterEndpointInput, ModifyDBClusterEndpointOutput, Any, Any + ], + Interceptor[ + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + Any, + Any, + ], + Interceptor[ModifyDBInstanceInput, ModifyDBInstanceOutput, Any, Any], + Interceptor[ + ModifyDBParameterGroupInput, ModifyDBParameterGroupOutput, Any, Any + ], + Interceptor[ModifyDBProxyInput, ModifyDBProxyOutput, Any, Any], + Interceptor[ModifyDBProxyEndpointInput, ModifyDBProxyEndpointOutput, Any, Any], + Interceptor[ + ModifyDBProxyTargetGroupInput, ModifyDBProxyTargetGroupOutput, Any, Any + ], + Interceptor[ + ModifyDBRecommendationInput, ModifyDBRecommendationOutput, Any, Any + ], + Interceptor[ModifyDBShardGroupInput, ModifyDBShardGroupOutput, Any, Any], + Interceptor[ModifyDBSnapshotInput, ModifyDBSnapshotOutput, Any, Any], + Interceptor[ + ModifyDBSnapshotAttributeInput, ModifyDBSnapshotAttributeOutput, Any, Any + ], + Interceptor[ModifyDBSubnetGroupInput, ModifyDBSubnetGroupOutput, Any, Any], + Interceptor[ + ModifyEventSubscriptionInput, ModifyEventSubscriptionOutput, Any, Any + ], + Interceptor[ModifyGlobalClusterInput, ModifyGlobalClusterOutput, Any, Any], + Interceptor[ModifyIntegrationInput, ModifyIntegrationOutput, Any, Any], + Interceptor[ModifyOptionGroupInput, ModifyOptionGroupOutput, Any, Any], + Interceptor[ModifyTenantDatabaseInput, ModifyTenantDatabaseOutput, Any, Any], + Interceptor[PromoteReadReplicaInput, PromoteReadReplicaOutput, Any, Any], + Interceptor[ + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + Any, + Any, + ], + Interceptor[ + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + Any, + Any, + ], + Interceptor[RebootDBClusterInput, RebootDBClusterOutput, Any, Any], + Interceptor[RebootDBInstanceInput, RebootDBInstanceOutput, Any, Any], + Interceptor[RebootDBShardGroupInput, RebootDBShardGroupOutput, Any, Any], + Interceptor[ + RegisterDBProxyTargetsInput, RegisterDBProxyTargetsOutput, Any, Any + ], + Interceptor[ + RemoveFromGlobalClusterInput, RemoveFromGlobalClusterOutput, Any, Any + ], + Interceptor[ + RemoveRoleFromDBClusterInput, RemoveRoleFromDBClusterOutput, Any, Any + ], + Interceptor[ + RemoveRoleFromDBInstanceInput, RemoveRoleFromDBInstanceOutput, Any, Any + ], + Interceptor[ + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + Any, + Any, + ], + Interceptor[ + RemoveTagsFromResourceInput, RemoveTagsFromResourceOutput, Any, Any + ], + Interceptor[ + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + Any, + Any, + ], + Interceptor[ResetDBParameterGroupInput, ResetDBParameterGroupOutput, Any, Any], + Interceptor[ + RestoreDBClusterFromS3Input, RestoreDBClusterFromS3Output, Any, Any + ], + Interceptor[ + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + Any, + Any, + ], + Interceptor[ + RestoreDBInstanceFromS3Input, RestoreDBInstanceFromS3Output, Any, Any + ], + Interceptor[ + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + Any, + Any, + ], + Interceptor[ + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + Any, + Any, + ], + Interceptor[StartActivityStreamInput, StartActivityStreamOutput, Any, Any], + Interceptor[StartDBClusterInput, StartDBClusterOutput, Any, Any], + Interceptor[StartDBInstanceInput, StartDBInstanceOutput, Any, Any], + Interceptor[ + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + Any, + Any, + ], + Interceptor[StartExportTaskInput, StartExportTaskOutput, Any, Any], + Interceptor[StopActivityStreamInput, StopActivityStreamOutput, Any, Any], + Interceptor[StopDBClusterInput, StopDBClusterOutput, Any, Any], + Interceptor[StopDBInstanceInput, StopDBInstanceOutput, Any, Any], + Interceptor[ + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + Any, + Any, + ], + Interceptor[ + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + Any, + Any, + ], + Interceptor[ + SwitchoverGlobalClusterInput, SwitchoverGlobalClusterOutput, Any, Any + ], + Interceptor[SwitchoverReadReplicaInput, SwitchoverReadReplicaOutput, Any, Any], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.rds", + service_target="AmazonRDSv19", + version="2014-10-31", + service_schema=AMAZON_RD_SV19, +) + + +class _RDSConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + use_dualstack_endpoint: bool | None + use_fips_endpoint: bool | None + + +@dataclass(kw_only=True, repr=False, init=False) +class RDSConfig(AwsConfig): + """RDS configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("rds").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AwsQueryClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="rds") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_RDSConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[RDSConfig], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/models.py b/clients/aws-sdk-rds/src/aws_sdk_rds/models.py new file mode 100644 index 00000000..2c2157b5 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/models.py @@ -0,0 +1,3388 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AccountQuota": "ACCOUNT_QUOTA", + "ActivityStreamMode": "ACTIVITY_STREAM_MODE", + "ActivityStreamPolicyStatus": "ACTIVITY_STREAM_POLICY_STATUS", + "ActivityStreamStatus": "ACTIVITY_STREAM_STATUS", + "AdditionalStorageVolume": "ADDITIONAL_STORAGE_VOLUME", + "AdditionalStorageVolumeOutput": "ADDITIONAL_STORAGE_VOLUME_OUTPUT", + "AddRoleToDBClusterInput": "ADD_ROLE_TO_DB_CLUSTER_INPUT", + "AddRoleToDBClusterOutput": "ADD_ROLE_TO_DB_CLUSTER_OUTPUT", + "AddRoleToDBInstanceInput": "ADD_ROLE_TO_DB_INSTANCE_INPUT", + "AddRoleToDBInstanceOutput": "ADD_ROLE_TO_DB_INSTANCE_OUTPUT", + "AddSourceIdentifierToSubscriptionInput": "ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_INPUT", + "AddSourceIdentifierToSubscriptionOutput": "ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION_OUTPUT", + "AddTagsToResourceInput": "ADD_TAGS_TO_RESOURCE_INPUT", + "AddTagsToResourceOutput": "ADD_TAGS_TO_RESOURCE_OUTPUT", + "ApplyMethod": "APPLY_METHOD", + "ApplyPendingMaintenanceActionInput": "APPLY_PENDING_MAINTENANCE_ACTION_INPUT", + "ApplyPendingMaintenanceActionOutput": "APPLY_PENDING_MAINTENANCE_ACTION_OUTPUT", + "AuditPolicyState": "AUDIT_POLICY_STATE", + "AuthorizationAlreadyExistsFault": "AUTHORIZATION_ALREADY_EXISTS_FAULT", + "AuthorizationNotFoundFault": "AUTHORIZATION_NOT_FOUND_FAULT", + "AuthorizationQuotaExceededFault": "AUTHORIZATION_QUOTA_EXCEEDED_FAULT", + "AuthorizeDBSecurityGroupIngressInput": "AUTHORIZE_DB_SECURITY_GROUP_INGRESS_INPUT", + "AuthorizeDBSecurityGroupIngressOutput": "AUTHORIZE_DB_SECURITY_GROUP_INGRESS_OUTPUT", + "AuthScheme": "AUTH_SCHEME", + "AutomationMode": "AUTOMATION_MODE", + "AvailabilityZone": "AVAILABILITY_ZONE", + "AvailableAdditionalStorageVolumesOption": "AVAILABLE_ADDITIONAL_STORAGE_VOLUMES_OPTION", + "AvailableCapacityPerAvailabilityZone": "AVAILABLE_CAPACITY_PER_AVAILABILITY_ZONE", + "AvailableProcessorFeature": "AVAILABLE_PROCESSOR_FEATURE", + "BacktrackDBClusterInput": "BACKTRACK_DB_CLUSTER_INPUT", + "BacktrackDBClusterOutput": "BACKTRACK_DB_CLUSTER_OUTPUT", + "BackupPolicyNotFoundFault": "BACKUP_POLICY_NOT_FOUND_FAULT", + "BlueGreenDeployment": "BLUE_GREEN_DEPLOYMENT", + "BlueGreenDeploymentAlreadyExistsFault": "BLUE_GREEN_DEPLOYMENT_ALREADY_EXISTS_FAULT", + "BlueGreenDeploymentNotFoundFault": "BLUE_GREEN_DEPLOYMENT_NOT_FOUND_FAULT", + "BlueGreenDeploymentTask": "BLUE_GREEN_DEPLOYMENT_TASK", + "CancelDBCapacityReservationInput": "CANCEL_DB_CAPACITY_RESERVATION_INPUT", + "CancelDBCapacityReservationOutput": "CANCEL_DB_CAPACITY_RESERVATION_OUTPUT", + "CancelExportTaskInput": "CANCEL_EXPORT_TASK_INPUT", + "CancelExportTaskOutput": "CANCEL_EXPORT_TASK_OUTPUT", + "Certificate": "CERTIFICATE", + "CertificateDetails": "CERTIFICATE_DETAILS", + "CertificateNotFoundFault": "CERTIFICATE_NOT_FOUND_FAULT", + "CharacterSet": "CHARACTER_SET", + "ClientPasswordAuthType": "CLIENT_PASSWORD_AUTH_TYPE", + "CloudwatchLogsExportConfiguration": "CLOUDWATCH_LOGS_EXPORT_CONFIGURATION", + "ClusterPendingModifiedValues": "CLUSTER_PENDING_MODIFIED_VALUES", + "ClusterScalabilityType": "CLUSTER_SCALABILITY_TYPE", + "ConnectionPoolConfiguration": "CONNECTION_POOL_CONFIGURATION", + "ConnectionPoolConfigurationInfo": "CONNECTION_POOL_CONFIGURATION_INFO", + "ContextAttribute": "CONTEXT_ATTRIBUTE", + "CopyDBClusterParameterGroupInput": "COPY_DB_CLUSTER_PARAMETER_GROUP_INPUT", + "CopyDBClusterParameterGroupOutput": "COPY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT", + "CopyDBClusterSnapshotInput": "COPY_DB_CLUSTER_SNAPSHOT_INPUT", + "CopyDBClusterSnapshotOutput": "COPY_DB_CLUSTER_SNAPSHOT_OUTPUT", + "CopyDBParameterGroupInput": "COPY_DB_PARAMETER_GROUP_INPUT", + "CopyDBParameterGroupOutput": "COPY_DB_PARAMETER_GROUP_OUTPUT", + "CopyDBSnapshotInput": "COPY_DB_SNAPSHOT_INPUT", + "CopyDBSnapshotOutput": "COPY_DB_SNAPSHOT_OUTPUT", + "CopyOptionGroupInput": "COPY_OPTION_GROUP_INPUT", + "CopyOptionGroupOutput": "COPY_OPTION_GROUP_OUTPUT", + "CreateBlueGreenDeploymentInput": "CREATE_BLUE_GREEN_DEPLOYMENT_INPUT", + "CreateBlueGreenDeploymentOutput": "CREATE_BLUE_GREEN_DEPLOYMENT_OUTPUT", + "CreateCustomDBEngineVersionFault": "CREATE_CUSTOM_DB_ENGINE_VERSION_FAULT", + "CreateCustomDBEngineVersionInput": "CREATE_CUSTOM_DB_ENGINE_VERSION_INPUT", + "CreateCustomDBEngineVersionOutput": "CREATE_CUSTOM_DB_ENGINE_VERSION_OUTPUT", + "CreateDBCapacityReservationInput": "CREATE_DB_CAPACITY_RESERVATION_INPUT", + "CreateDBCapacityReservationOutput": "CREATE_DB_CAPACITY_RESERVATION_OUTPUT", + "CreateDBClusterEndpointInput": "CREATE_DB_CLUSTER_ENDPOINT_INPUT", + "CreateDBClusterEndpointOutput": "CREATE_DB_CLUSTER_ENDPOINT_OUTPUT", + "CreateDBClusterInput": "CREATE_DB_CLUSTER_INPUT", + "CreateDBClusterOutput": "CREATE_DB_CLUSTER_OUTPUT", + "CreateDBClusterParameterGroupInput": "CREATE_DB_CLUSTER_PARAMETER_GROUP_INPUT", + "CreateDBClusterParameterGroupOutput": "CREATE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT", + "CreateDBClusterSnapshotInput": "CREATE_DB_CLUSTER_SNAPSHOT_INPUT", + "CreateDBClusterSnapshotOutput": "CREATE_DB_CLUSTER_SNAPSHOT_OUTPUT", + "CreateDBInstanceInput": "CREATE_DB_INSTANCE_INPUT", + "CreateDBInstanceOutput": "CREATE_DB_INSTANCE_OUTPUT", + "CreateDBInstanceReadReplicaInput": "CREATE_DB_INSTANCE_READ_REPLICA_INPUT", + "CreateDBInstanceReadReplicaOutput": "CREATE_DB_INSTANCE_READ_REPLICA_OUTPUT", + "CreateDBParameterGroupInput": "CREATE_DB_PARAMETER_GROUP_INPUT", + "CreateDBParameterGroupOutput": "CREATE_DB_PARAMETER_GROUP_OUTPUT", + "CreateDBProxyEndpointInput": "CREATE_DB_PROXY_ENDPOINT_INPUT", + "CreateDBProxyEndpointOutput": "CREATE_DB_PROXY_ENDPOINT_OUTPUT", + "CreateDBProxyInput": "CREATE_DB_PROXY_INPUT", + "CreateDBProxyOutput": "CREATE_DB_PROXY_OUTPUT", + "CreateDBSecurityGroupInput": "CREATE_DB_SECURITY_GROUP_INPUT", + "CreateDBSecurityGroupOutput": "CREATE_DB_SECURITY_GROUP_OUTPUT", + "CreateDBShardGroupInput": "CREATE_DB_SHARD_GROUP_INPUT", + "CreateDBShardGroupOutput": "CREATE_DB_SHARD_GROUP_OUTPUT", + "CreateDBSnapshotInput": "CREATE_DB_SNAPSHOT_INPUT", + "CreateDBSnapshotOutput": "CREATE_DB_SNAPSHOT_OUTPUT", + "CreateDBSubnetGroupInput": "CREATE_DB_SUBNET_GROUP_INPUT", + "CreateDBSubnetGroupOutput": "CREATE_DB_SUBNET_GROUP_OUTPUT", + "CreateEventSubscriptionInput": "CREATE_EVENT_SUBSCRIPTION_INPUT", + "CreateEventSubscriptionOutput": "CREATE_EVENT_SUBSCRIPTION_OUTPUT", + "CreateGlobalClusterInput": "CREATE_GLOBAL_CLUSTER_INPUT", + "CreateGlobalClusterOutput": "CREATE_GLOBAL_CLUSTER_OUTPUT", + "CreateIntegrationInput": "CREATE_INTEGRATION_INPUT", + "CreateIntegrationOutput": "CREATE_INTEGRATION_OUTPUT", + "CreateOptionGroupInput": "CREATE_OPTION_GROUP_INPUT", + "CreateOptionGroupOutput": "CREATE_OPTION_GROUP_OUTPUT", + "CreateTenantDatabaseInput": "CREATE_TENANT_DATABASE_INPUT", + "CreateTenantDatabaseOutput": "CREATE_TENANT_DATABASE_OUTPUT", + "CustomAvailabilityZoneNotFoundFault": "CUSTOM_AVAILABILITY_ZONE_NOT_FOUND_FAULT", + "CustomDBEngineVersionAlreadyExistsFault": "CUSTOM_DB_ENGINE_VERSION_ALREADY_EXISTS_FAULT", + "CustomDBEngineVersionAMI": "CUSTOM_DB_ENGINE_VERSION_AMI", + "CustomDBEngineVersionNotFoundFault": "CUSTOM_DB_ENGINE_VERSION_NOT_FOUND_FAULT", + "CustomDBEngineVersionQuotaExceededFault": "CUSTOM_DB_ENGINE_VERSION_QUOTA_EXCEEDED_FAULT", + "CustomEngineVersionStatus": "CUSTOM_ENGINE_VERSION_STATUS", + "DatabaseInsightsMode": "DATABASE_INSIGHTS_MODE", + "DBCapacityReservation": "DB_CAPACITY_RESERVATION", + "DBCapacityReservationAlreadyExistsFault": "DB_CAPACITY_RESERVATION_ALREADY_EXISTS_FAULT", + "DBCapacityReservationCommitmentInfo": "DB_CAPACITY_RESERVATION_COMMITMENT_INFO", + "DBCapacityReservationNotFoundFault": "DB_CAPACITY_RESERVATION_NOT_FOUND_FAULT", + "DBCapacityReservationState": "DB_CAPACITY_RESERVATION_STATE", + "DBCapacityReservationUnsupportedFault": "DB_CAPACITY_RESERVATION_UNSUPPORTED_FAULT", + "DBCluster": "DB_CLUSTER", + "DBClusterAlreadyExistsFault": "DB_CLUSTER_ALREADY_EXISTS_FAULT", + "DBClusterAssociatedRole": "DB_CLUSTER_ASSOCIATED_ROLE", + "DBClusterAutomatedBackup": "DB_CLUSTER_AUTOMATED_BACKUP", + "DBClusterAutomatedBackupNotFoundFault": "DB_CLUSTER_AUTOMATED_BACKUP_NOT_FOUND_FAULT", + "DBClusterAutomatedBackupQuotaExceededFault": "DB_CLUSTER_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT", + "DBClusterBacktrack": "DB_CLUSTER_BACKTRACK", + "DBClusterBacktrackNotFoundFault": "DB_CLUSTER_BACKTRACK_NOT_FOUND_FAULT", + "DBClusterEndpoint": "DB_CLUSTER_ENDPOINT", + "DBClusterEndpointAlreadyExistsFault": "DB_CLUSTER_ENDPOINT_ALREADY_EXISTS_FAULT", + "DBClusterEndpointNotFoundFault": "DB_CLUSTER_ENDPOINT_NOT_FOUND_FAULT", + "DBClusterEndpointQuotaExceededFault": "DB_CLUSTER_ENDPOINT_QUOTA_EXCEEDED_FAULT", + "DBClusterMember": "DB_CLUSTER_MEMBER", + "DBClusterNotFoundFault": "DB_CLUSTER_NOT_FOUND_FAULT", + "DBClusterOptionGroupStatus": "DB_CLUSTER_OPTION_GROUP_STATUS", + "DBClusterParameterGroup": "DB_CLUSTER_PARAMETER_GROUP", + "DBClusterParameterGroupNotFoundFault": "DB_CLUSTER_PARAMETER_GROUP_NOT_FOUND_FAULT", + "DBClusterQuotaExceededFault": "DB_CLUSTER_QUOTA_EXCEEDED_FAULT", + "DBClusterRole": "DB_CLUSTER_ROLE", + "DBClusterRoleAlreadyExistsFault": "DB_CLUSTER_ROLE_ALREADY_EXISTS_FAULT", + "DBClusterRoleNotFoundFault": "DB_CLUSTER_ROLE_NOT_FOUND_FAULT", + "DBClusterRoleQuotaExceededFault": "DB_CLUSTER_ROLE_QUOTA_EXCEEDED_FAULT", + "DBClusterSnapshot": "DB_CLUSTER_SNAPSHOT", + "DBClusterSnapshotAlreadyExistsFault": "DB_CLUSTER_SNAPSHOT_ALREADY_EXISTS_FAULT", + "DBClusterSnapshotAttribute": "DB_CLUSTER_SNAPSHOT_ATTRIBUTE", + "DBClusterSnapshotAttributesResult": "DB_CLUSTER_SNAPSHOT_ATTRIBUTES_RESULT", + "DBClusterSnapshotNotFoundFault": "DB_CLUSTER_SNAPSHOT_NOT_FOUND_FAULT", + "DBClusterStatusInfo": "DB_CLUSTER_STATUS_INFO", + "DBEngineVersion": "DB_ENGINE_VERSION", + "DBInstance": "DB_INSTANCE", + "DBInstanceAlreadyExistsFault": "DB_INSTANCE_ALREADY_EXISTS_FAULT", + "DBInstanceAutomatedBackup": "DB_INSTANCE_AUTOMATED_BACKUP", + "DBInstanceAutomatedBackupNotFoundFault": "DB_INSTANCE_AUTOMATED_BACKUP_NOT_FOUND_FAULT", + "DBInstanceAutomatedBackupQuotaExceededFault": "DB_INSTANCE_AUTOMATED_BACKUP_QUOTA_EXCEEDED_FAULT", + "DBInstanceAutomatedBackupsReplication": "DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION", + "DBInstanceNotFoundFault": "DB_INSTANCE_NOT_FOUND_FAULT", + "DBInstanceNotReadyFault": "DB_INSTANCE_NOT_READY_FAULT", + "DBInstanceRole": "DB_INSTANCE_ROLE", + "DBInstanceRoleAlreadyExistsFault": "DB_INSTANCE_ROLE_ALREADY_EXISTS_FAULT", + "DBInstanceRoleNotFoundFault": "DB_INSTANCE_ROLE_NOT_FOUND_FAULT", + "DBInstanceRoleQuotaExceededFault": "DB_INSTANCE_ROLE_QUOTA_EXCEEDED_FAULT", + "DBInstanceStatusInfo": "DB_INSTANCE_STATUS_INFO", + "DBLogFileNotFoundFault": "DB_LOG_FILE_NOT_FOUND_FAULT", + "DBMajorEngineVersion": "DB_MAJOR_ENGINE_VERSION", + "DBParameterGroup": "DB_PARAMETER_GROUP", + "DBParameterGroupAlreadyExistsFault": "DB_PARAMETER_GROUP_ALREADY_EXISTS_FAULT", + "DBParameterGroupNotFoundFault": "DB_PARAMETER_GROUP_NOT_FOUND_FAULT", + "DBParameterGroupQuotaExceededFault": "DB_PARAMETER_GROUP_QUOTA_EXCEEDED_FAULT", + "DBParameterGroupStatus": "DB_PARAMETER_GROUP_STATUS", + "DBProxy": "DB_PROXY", + "DBProxyAlreadyExistsFault": "DB_PROXY_ALREADY_EXISTS_FAULT", + "DBProxyEndpoint": "DB_PROXY_ENDPOINT", + "DBProxyEndpointAlreadyExistsFault": "DB_PROXY_ENDPOINT_ALREADY_EXISTS_FAULT", + "DBProxyEndpointNotFoundFault": "DB_PROXY_ENDPOINT_NOT_FOUND_FAULT", + "DBProxyEndpointQuotaExceededFault": "DB_PROXY_ENDPOINT_QUOTA_EXCEEDED_FAULT", + "DBProxyEndpointStatus": "DB_PROXY_ENDPOINT_STATUS", + "DBProxyEndpointTargetRole": "DB_PROXY_ENDPOINT_TARGET_ROLE", + "DBProxyNotFoundFault": "DB_PROXY_NOT_FOUND_FAULT", + "DBProxyQuotaExceededFault": "DB_PROXY_QUOTA_EXCEEDED_FAULT", + "DBProxyStatus": "DB_PROXY_STATUS", + "DBProxyTarget": "DB_PROXY_TARGET", + "DBProxyTargetAlreadyRegisteredFault": "DB_PROXY_TARGET_ALREADY_REGISTERED_FAULT", + "DBProxyTargetGroup": "DB_PROXY_TARGET_GROUP", + "DBProxyTargetGroupNotFoundFault": "DB_PROXY_TARGET_GROUP_NOT_FOUND_FAULT", + "DBProxyTargetNotFoundFault": "DB_PROXY_TARGET_NOT_FOUND_FAULT", + "DBRecommendation": "DB_RECOMMENDATION", + "DBSecurityGroup": "DB_SECURITY_GROUP", + "DBSecurityGroupAlreadyExistsFault": "DB_SECURITY_GROUP_ALREADY_EXISTS_FAULT", + "DBSecurityGroupMembership": "DB_SECURITY_GROUP_MEMBERSHIP", + "DBSecurityGroupNotFoundFault": "DB_SECURITY_GROUP_NOT_FOUND_FAULT", + "DBSecurityGroupNotSupportedFault": "DB_SECURITY_GROUP_NOT_SUPPORTED_FAULT", + "DBSecurityGroupQuotaExceededFault": "DB_SECURITY_GROUP_QUOTA_EXCEEDED_FAULT", + "DBShardGroup": "DB_SHARD_GROUP", + "DBShardGroupAlreadyExistsFault": "DB_SHARD_GROUP_ALREADY_EXISTS_FAULT", + "DBShardGroupNotFoundFault": "DB_SHARD_GROUP_NOT_FOUND_FAULT", + "DBSnapshot": "DB_SNAPSHOT", + "DBSnapshotAlreadyExistsFault": "DB_SNAPSHOT_ALREADY_EXISTS_FAULT", + "DBSnapshotAttribute": "DB_SNAPSHOT_ATTRIBUTE", + "DBSnapshotAttributesResult": "DB_SNAPSHOT_ATTRIBUTES_RESULT", + "DBSnapshotNotFoundFault": "DB_SNAPSHOT_NOT_FOUND_FAULT", + "DBSnapshotTenantDatabase": "DB_SNAPSHOT_TENANT_DATABASE", + "DBSnapshotTenantDatabaseNotFoundFault": "DB_SNAPSHOT_TENANT_DATABASE_NOT_FOUND_FAULT", + "DBSubnetGroup": "DB_SUBNET_GROUP", + "DBSubnetGroupAlreadyExistsFault": "DB_SUBNET_GROUP_ALREADY_EXISTS_FAULT", + "DBSubnetGroupDoesNotCoverEnoughAZs": "DB_SUBNET_GROUP_DOES_NOT_COVER_ENOUGH_A_ZS", + "DBSubnetGroupNotAllowedFault": "DB_SUBNET_GROUP_NOT_ALLOWED_FAULT", + "DBSubnetGroupNotFoundFault": "DB_SUBNET_GROUP_NOT_FOUND_FAULT", + "DBSubnetGroupQuotaExceededFault": "DB_SUBNET_GROUP_QUOTA_EXCEEDED_FAULT", + "DBSubnetQuotaExceededFault": "DB_SUBNET_QUOTA_EXCEEDED_FAULT", + "DBUpgradeDependencyFailureFault": "DB_UPGRADE_DEPENDENCY_FAILURE_FAULT", + "DefaultAuthScheme": "DEFAULT_AUTH_SCHEME", + "DeleteBlueGreenDeploymentInput": "DELETE_BLUE_GREEN_DEPLOYMENT_INPUT", + "DeleteBlueGreenDeploymentOutput": "DELETE_BLUE_GREEN_DEPLOYMENT_OUTPUT", + "DeleteCustomDBEngineVersionInput": "DELETE_CUSTOM_DB_ENGINE_VERSION_INPUT", + "DeleteCustomDBEngineVersionOutput": "DELETE_CUSTOM_DB_ENGINE_VERSION_OUTPUT", + "DeleteDBClusterAutomatedBackupInput": "DELETE_DB_CLUSTER_AUTOMATED_BACKUP_INPUT", + "DeleteDBClusterAutomatedBackupOutput": "DELETE_DB_CLUSTER_AUTOMATED_BACKUP_OUTPUT", + "DeleteDBClusterEndpointInput": "DELETE_DB_CLUSTER_ENDPOINT_INPUT", + "DeleteDBClusterEndpointOutput": "DELETE_DB_CLUSTER_ENDPOINT_OUTPUT", + "DeleteDBClusterInput": "DELETE_DB_CLUSTER_INPUT", + "DeleteDBClusterOutput": "DELETE_DB_CLUSTER_OUTPUT", + "DeleteDBClusterParameterGroupInput": "DELETE_DB_CLUSTER_PARAMETER_GROUP_INPUT", + "DeleteDBClusterParameterGroupOutput": "DELETE_DB_CLUSTER_PARAMETER_GROUP_OUTPUT", + "DeleteDBClusterSnapshotInput": "DELETE_DB_CLUSTER_SNAPSHOT_INPUT", + "DeleteDBClusterSnapshotOutput": "DELETE_DB_CLUSTER_SNAPSHOT_OUTPUT", + "DeleteDBInstanceAutomatedBackupInput": "DELETE_DB_INSTANCE_AUTOMATED_BACKUP_INPUT", + "DeleteDBInstanceAutomatedBackupOutput": "DELETE_DB_INSTANCE_AUTOMATED_BACKUP_OUTPUT", + "DeleteDBInstanceInput": "DELETE_DB_INSTANCE_INPUT", + "DeleteDBInstanceOutput": "DELETE_DB_INSTANCE_OUTPUT", + "DeleteDBParameterGroupInput": "DELETE_DB_PARAMETER_GROUP_INPUT", + "DeleteDBParameterGroupOutput": "DELETE_DB_PARAMETER_GROUP_OUTPUT", + "DeleteDBProxyEndpointInput": "DELETE_DB_PROXY_ENDPOINT_INPUT", + "DeleteDBProxyEndpointOutput": "DELETE_DB_PROXY_ENDPOINT_OUTPUT", + "DeleteDBProxyInput": "DELETE_DB_PROXY_INPUT", + "DeleteDBProxyOutput": "DELETE_DB_PROXY_OUTPUT", + "DeleteDBSecurityGroupInput": "DELETE_DB_SECURITY_GROUP_INPUT", + "DeleteDBSecurityGroupOutput": "DELETE_DB_SECURITY_GROUP_OUTPUT", + "DeleteDBShardGroupInput": "DELETE_DB_SHARD_GROUP_INPUT", + "DeleteDBShardGroupOutput": "DELETE_DB_SHARD_GROUP_OUTPUT", + "DeleteDBSnapshotInput": "DELETE_DB_SNAPSHOT_INPUT", + "DeleteDBSnapshotOutput": "DELETE_DB_SNAPSHOT_OUTPUT", + "DeleteDBSubnetGroupInput": "DELETE_DB_SUBNET_GROUP_INPUT", + "DeleteDBSubnetGroupOutput": "DELETE_DB_SUBNET_GROUP_OUTPUT", + "DeleteEventSubscriptionInput": "DELETE_EVENT_SUBSCRIPTION_INPUT", + "DeleteEventSubscriptionOutput": "DELETE_EVENT_SUBSCRIPTION_OUTPUT", + "DeleteGlobalClusterInput": "DELETE_GLOBAL_CLUSTER_INPUT", + "DeleteGlobalClusterOutput": "DELETE_GLOBAL_CLUSTER_OUTPUT", + "DeleteIntegrationInput": "DELETE_INTEGRATION_INPUT", + "DeleteIntegrationOutput": "DELETE_INTEGRATION_OUTPUT", + "DeleteOptionGroupInput": "DELETE_OPTION_GROUP_INPUT", + "DeleteOptionGroupOutput": "DELETE_OPTION_GROUP_OUTPUT", + "DeleteTenantDatabaseInput": "DELETE_TENANT_DATABASE_INPUT", + "DeleteTenantDatabaseOutput": "DELETE_TENANT_DATABASE_OUTPUT", + "DeregisterDBProxyTargetsInput": "DEREGISTER_DB_PROXY_TARGETS_INPUT", + "DeregisterDBProxyTargetsOutput": "DEREGISTER_DB_PROXY_TARGETS_OUTPUT", + "DescribeAccountAttributesInput": "DESCRIBE_ACCOUNT_ATTRIBUTES_INPUT", + "DescribeAccountAttributesOutput": "DESCRIBE_ACCOUNT_ATTRIBUTES_OUTPUT", + "DescribeBlueGreenDeploymentsInput": "DESCRIBE_BLUE_GREEN_DEPLOYMENTS_INPUT", + "DescribeBlueGreenDeploymentsOutput": "DESCRIBE_BLUE_GREEN_DEPLOYMENTS_OUTPUT", + "DescribeCertificatesInput": "DESCRIBE_CERTIFICATES_INPUT", + "DescribeCertificatesOutput": "DESCRIBE_CERTIFICATES_OUTPUT", + "DescribeDBCapacityReservationsInput": "DESCRIBE_DB_CAPACITY_RESERVATIONS_INPUT", + "DescribeDBCapacityReservationsOutput": "DESCRIBE_DB_CAPACITY_RESERVATIONS_OUTPUT", + "DescribeDBClusterAutomatedBackupsInput": "DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_INPUT", + "DescribeDBClusterAutomatedBackupsOutput": "DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS_OUTPUT", + "DescribeDBClusterBacktracksInput": "DESCRIBE_DB_CLUSTER_BACKTRACKS_INPUT", + "DescribeDBClusterBacktracksOutput": "DESCRIBE_DB_CLUSTER_BACKTRACKS_OUTPUT", + "DescribeDBClusterEndpointsInput": "DESCRIBE_DB_CLUSTER_ENDPOINTS_INPUT", + "DescribeDBClusterEndpointsOutput": "DESCRIBE_DB_CLUSTER_ENDPOINTS_OUTPUT", + "DescribeDBClusterParameterGroupsInput": "DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_INPUT", + "DescribeDBClusterParameterGroupsOutput": "DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS_OUTPUT", + "DescribeDBClusterParametersInput": "DESCRIBE_DB_CLUSTER_PARAMETERS_INPUT", + "DescribeDBClusterParametersOutput": "DESCRIBE_DB_CLUSTER_PARAMETERS_OUTPUT", + "DescribeDBClustersInput": "DESCRIBE_DB_CLUSTERS_INPUT", + "DescribeDBClusterSnapshotAttributesInput": "DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_INPUT", + "DescribeDBClusterSnapshotAttributesOutput": "DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES_OUTPUT", + "DescribeDBClusterSnapshotsInput": "DESCRIBE_DB_CLUSTER_SNAPSHOTS_INPUT", + "DescribeDBClusterSnapshotsOutput": "DESCRIBE_DB_CLUSTER_SNAPSHOTS_OUTPUT", + "DescribeDBClustersOutput": "DESCRIBE_DB_CLUSTERS_OUTPUT", + "DescribeDBEngineVersionsInput": "DESCRIBE_DB_ENGINE_VERSIONS_INPUT", + "DescribeDBEngineVersionsOutput": "DESCRIBE_DB_ENGINE_VERSIONS_OUTPUT", + "DescribeDBInstanceAutomatedBackupsInput": "DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_INPUT", + "DescribeDBInstanceAutomatedBackupsOutput": "DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS_OUTPUT", + "DescribeDBInstancesInput": "DESCRIBE_DB_INSTANCES_INPUT", + "DescribeDBInstancesOutput": "DESCRIBE_DB_INSTANCES_OUTPUT", + "DescribeDBLogFilesDetails": "DESCRIBE_DB_LOG_FILES_DETAILS", + "DescribeDBLogFilesInput": "DESCRIBE_DB_LOG_FILES_INPUT", + "DescribeDBLogFilesOutput": "DESCRIBE_DB_LOG_FILES_OUTPUT", + "DescribeDBMajorEngineVersionsInput": "DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_INPUT", + "DescribeDBMajorEngineVersionsOutput": "DESCRIBE_DB_MAJOR_ENGINE_VERSIONS_OUTPUT", + "DescribeDBParameterGroupsInput": "DESCRIBE_DB_PARAMETER_GROUPS_INPUT", + "DescribeDBParameterGroupsOutput": "DESCRIBE_DB_PARAMETER_GROUPS_OUTPUT", + "DescribeDBParametersInput": "DESCRIBE_DB_PARAMETERS_INPUT", + "DescribeDBParametersOutput": "DESCRIBE_DB_PARAMETERS_OUTPUT", + "DescribeDBProxiesInput": "DESCRIBE_DB_PROXIES_INPUT", + "DescribeDBProxiesOutput": "DESCRIBE_DB_PROXIES_OUTPUT", + "DescribeDBProxyEndpointsInput": "DESCRIBE_DB_PROXY_ENDPOINTS_INPUT", + "DescribeDBProxyEndpointsOutput": "DESCRIBE_DB_PROXY_ENDPOINTS_OUTPUT", + "DescribeDBProxyTargetGroupsInput": "DESCRIBE_DB_PROXY_TARGET_GROUPS_INPUT", + "DescribeDBProxyTargetGroupsOutput": "DESCRIBE_DB_PROXY_TARGET_GROUPS_OUTPUT", + "DescribeDBProxyTargetsInput": "DESCRIBE_DB_PROXY_TARGETS_INPUT", + "DescribeDBProxyTargetsOutput": "DESCRIBE_DB_PROXY_TARGETS_OUTPUT", + "DescribeDBRecommendationsInput": "DESCRIBE_DB_RECOMMENDATIONS_INPUT", + "DescribeDBRecommendationsOutput": "DESCRIBE_DB_RECOMMENDATIONS_OUTPUT", + "DescribeDBSecurityGroupsInput": "DESCRIBE_DB_SECURITY_GROUPS_INPUT", + "DescribeDBSecurityGroupsOutput": "DESCRIBE_DB_SECURITY_GROUPS_OUTPUT", + "DescribeDBShardGroupsInput": "DESCRIBE_DB_SHARD_GROUPS_INPUT", + "DescribeDBShardGroupsOutput": "DESCRIBE_DB_SHARD_GROUPS_OUTPUT", + "DescribeDBSnapshotAttributesInput": "DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_INPUT", + "DescribeDBSnapshotAttributesOutput": "DESCRIBE_DB_SNAPSHOT_ATTRIBUTES_OUTPUT", + "DescribeDBSnapshotsInput": "DESCRIBE_DB_SNAPSHOTS_INPUT", + "DescribeDBSnapshotsOutput": "DESCRIBE_DB_SNAPSHOTS_OUTPUT", + "DescribeDBSnapshotTenantDatabasesInput": "DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_INPUT", + "DescribeDBSnapshotTenantDatabasesOutput": "DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES_OUTPUT", + "DescribeDBSubnetGroupsInput": "DESCRIBE_DB_SUBNET_GROUPS_INPUT", + "DescribeDBSubnetGroupsOutput": "DESCRIBE_DB_SUBNET_GROUPS_OUTPUT", + "DescribeEngineDefaultClusterParametersInput": "DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_INPUT", + "DescribeEngineDefaultClusterParametersOutput": "DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS_OUTPUT", + "DescribeEngineDefaultParametersInput": "DESCRIBE_ENGINE_DEFAULT_PARAMETERS_INPUT", + "DescribeEngineDefaultParametersOutput": "DESCRIBE_ENGINE_DEFAULT_PARAMETERS_OUTPUT", + "DescribeEventCategoriesInput": "DESCRIBE_EVENT_CATEGORIES_INPUT", + "DescribeEventCategoriesOutput": "DESCRIBE_EVENT_CATEGORIES_OUTPUT", + "DescribeEventsInput": "DESCRIBE_EVENTS_INPUT", + "DescribeEventsOutput": "DESCRIBE_EVENTS_OUTPUT", + "DescribeEventSubscriptionsInput": "DESCRIBE_EVENT_SUBSCRIPTIONS_INPUT", + "DescribeEventSubscriptionsOutput": "DESCRIBE_EVENT_SUBSCRIPTIONS_OUTPUT", + "DescribeExportTasksInput": "DESCRIBE_EXPORT_TASKS_INPUT", + "DescribeExportTasksOutput": "DESCRIBE_EXPORT_TASKS_OUTPUT", + "DescribeGlobalClustersInput": "DESCRIBE_GLOBAL_CLUSTERS_INPUT", + "DescribeGlobalClustersOutput": "DESCRIBE_GLOBAL_CLUSTERS_OUTPUT", + "DescribeIntegrationsInput": "DESCRIBE_INTEGRATIONS_INPUT", + "DescribeIntegrationsOutput": "DESCRIBE_INTEGRATIONS_OUTPUT", + "DescribeOptionGroupOptionsInput": "DESCRIBE_OPTION_GROUP_OPTIONS_INPUT", + "DescribeOptionGroupOptionsOutput": "DESCRIBE_OPTION_GROUP_OPTIONS_OUTPUT", + "DescribeOptionGroupsInput": "DESCRIBE_OPTION_GROUPS_INPUT", + "DescribeOptionGroupsOutput": "DESCRIBE_OPTION_GROUPS_OUTPUT", + "DescribeOrderableDBInstanceOptionsInput": "DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_INPUT", + "DescribeOrderableDBInstanceOptionsOutput": "DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS_OUTPUT", + "DescribePendingMaintenanceActionsInput": "DESCRIBE_PENDING_MAINTENANCE_ACTIONS_INPUT", + "DescribePendingMaintenanceActionsOutput": "DESCRIBE_PENDING_MAINTENANCE_ACTIONS_OUTPUT", + "DescribeReservedDBInstancesInput": "DESCRIBE_RESERVED_DB_INSTANCES_INPUT", + "DescribeReservedDBInstancesOfferingsInput": "DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_INPUT", + "DescribeReservedDBInstancesOfferingsOutput": "DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS_OUTPUT", + "DescribeReservedDBInstancesOutput": "DESCRIBE_RESERVED_DB_INSTANCES_OUTPUT", + "DescribeServerlessV2PlatformVersionsInput": "DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_INPUT", + "DescribeServerlessV2PlatformVersionsOutput": "DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS_OUTPUT", + "DescribeSourceRegionsInput": "DESCRIBE_SOURCE_REGIONS_INPUT", + "DescribeSourceRegionsOutput": "DESCRIBE_SOURCE_REGIONS_OUTPUT", + "DescribeTenantDatabasesInput": "DESCRIBE_TENANT_DATABASES_INPUT", + "DescribeTenantDatabasesOutput": "DESCRIBE_TENANT_DATABASES_OUTPUT", + "DescribeValidDBInstanceModificationsInput": "DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_INPUT", + "DescribeValidDBInstanceModificationsOutput": "DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS_OUTPUT", + "DisableHttpEndpointInput": "DISABLE_HTTP_ENDPOINT_INPUT", + "DisableHttpEndpointOutput": "DISABLE_HTTP_ENDPOINT_OUTPUT", + "DocLink": "DOC_LINK", + "DomainMembership": "DOMAIN_MEMBERSHIP", + "DomainNotFoundFault": "DOMAIN_NOT_FOUND_FAULT", + "DoubleRange": "DOUBLE_RANGE", + "DownloadDBLogFilePortionInput": "DOWNLOAD_DB_LOG_FILE_PORTION_INPUT", + "DownloadDBLogFilePortionOutput": "DOWNLOAD_DB_LOG_FILE_PORTION_OUTPUT", + "Ec2ImagePropertiesNotSupportedFault": "EC2_IMAGE_PROPERTIES_NOT_SUPPORTED_FAULT", + "EC2SecurityGroup": "EC2_SECURITY_GROUP", + "EnableHttpEndpointInput": "ENABLE_HTTP_ENDPOINT_INPUT", + "EnableHttpEndpointOutput": "ENABLE_HTTP_ENDPOINT_OUTPUT", + "EndDateType": "END_DATE_TYPE", + "Endpoint": "ENDPOINT", + "EndpointNetworkType": "ENDPOINT_NETWORK_TYPE", + "EngineDefaults": "ENGINE_DEFAULTS", + "EngineFamily": "ENGINE_FAMILY", + "Event": "EVENT", + "EventCategoriesMap": "EVENT_CATEGORIES_MAP", + "EventSubscription": "EVENT_SUBSCRIPTION", + "EventSubscriptionQuotaExceededFault": "EVENT_SUBSCRIPTION_QUOTA_EXCEEDED_FAULT", + "ExportSourceType": "EXPORT_SOURCE_TYPE", + "ExportTask": "EXPORT_TASK", + "ExportTaskAlreadyExistsFault": "EXPORT_TASK_ALREADY_EXISTS_FAULT", + "ExportTaskNotFoundFault": "EXPORT_TASK_NOT_FOUND_FAULT", + "FailoverDBClusterInput": "FAILOVER_DB_CLUSTER_INPUT", + "FailoverDBClusterOutput": "FAILOVER_DB_CLUSTER_OUTPUT", + "FailoverGlobalClusterInput": "FAILOVER_GLOBAL_CLUSTER_INPUT", + "FailoverGlobalClusterOutput": "FAILOVER_GLOBAL_CLUSTER_OUTPUT", + "FailoverState": "FAILOVER_STATE", + "FailoverStatus": "FAILOVER_STATUS", + "Filter": "FILTER", + "GlobalCluster": "GLOBAL_CLUSTER", + "GlobalClusterAlreadyExistsFault": "GLOBAL_CLUSTER_ALREADY_EXISTS_FAULT", + "GlobalClusterMember": "GLOBAL_CLUSTER_MEMBER", + "GlobalClusterMemberSynchronizationStatus": "GLOBAL_CLUSTER_MEMBER_SYNCHRONIZATION_STATUS", + "GlobalClusterNotFoundFault": "GLOBAL_CLUSTER_NOT_FOUND_FAULT", + "GlobalClusterQuotaExceededFault": "GLOBAL_CLUSTER_QUOTA_EXCEEDED_FAULT", + "IAMAuthMode": "IAM_AUTH_MODE", + "IamRoleMissingPermissionsFault": "IAM_ROLE_MISSING_PERMISSIONS_FAULT", + "IamRoleNotFoundFault": "IAM_ROLE_NOT_FOUND_FAULT", + "InstanceQuotaExceededFault": "INSTANCE_QUOTA_EXCEEDED_FAULT", + "InsufficientAvailableIPsInSubnetFault": "INSUFFICIENT_AVAILABLE_I_PS_IN_SUBNET_FAULT", + "InsufficientDBClusterCapacityFault": "INSUFFICIENT_DB_CLUSTER_CAPACITY_FAULT", + "InsufficientDBInstanceCapacityFault": "INSUFFICIENT_DB_INSTANCE_CAPACITY_FAULT", + "InsufficientStorageClusterCapacityFault": "INSUFFICIENT_STORAGE_CLUSTER_CAPACITY_FAULT", + "Integration": "INTEGRATION", + "IntegrationAlreadyExistsFault": "INTEGRATION_ALREADY_EXISTS_FAULT", + "IntegrationConflictOperationFault": "INTEGRATION_CONFLICT_OPERATION_FAULT", + "IntegrationError": "INTEGRATION_ERROR", + "IntegrationNotFoundFault": "INTEGRATION_NOT_FOUND_FAULT", + "IntegrationQuotaExceededFault": "INTEGRATION_QUOTA_EXCEEDED_FAULT", + "IntegrationStatus": "INTEGRATION_STATUS", + "InvalidBlueGreenDeploymentStateFault": "INVALID_BLUE_GREEN_DEPLOYMENT_STATE_FAULT", + "InvalidCustomDBEngineVersionStateFault": "INVALID_CUSTOM_DB_ENGINE_VERSION_STATE_FAULT", + "InvalidDBCapacityReservationStateFault": "INVALID_DB_CAPACITY_RESERVATION_STATE_FAULT", + "InvalidDBClusterAutomatedBackupStateFault": "INVALID_DB_CLUSTER_AUTOMATED_BACKUP_STATE_FAULT", + "InvalidDBClusterCapacityFault": "INVALID_DB_CLUSTER_CAPACITY_FAULT", + "InvalidDBClusterEndpointStateFault": "INVALID_DB_CLUSTER_ENDPOINT_STATE_FAULT", + "InvalidDBClusterSnapshotStateFault": "INVALID_DB_CLUSTER_SNAPSHOT_STATE_FAULT", + "InvalidDBClusterStateFault": "INVALID_DB_CLUSTER_STATE_FAULT", + "InvalidDBInstanceAutomatedBackupStateFault": "INVALID_DB_INSTANCE_AUTOMATED_BACKUP_STATE_FAULT", + "InvalidDBInstanceStateFault": "INVALID_DB_INSTANCE_STATE_FAULT", + "InvalidDBParameterGroupStateFault": "INVALID_DB_PARAMETER_GROUP_STATE_FAULT", + "InvalidDBProxyEndpointStateFault": "INVALID_DB_PROXY_ENDPOINT_STATE_FAULT", + "InvalidDBProxyStateFault": "INVALID_DB_PROXY_STATE_FAULT", + "InvalidDBSecurityGroupStateFault": "INVALID_DB_SECURITY_GROUP_STATE_FAULT", + "InvalidDBShardGroupStateFault": "INVALID_DB_SHARD_GROUP_STATE_FAULT", + "InvalidDBSnapshotStateFault": "INVALID_DB_SNAPSHOT_STATE_FAULT", + "InvalidDBSubnetGroupFault": "INVALID_DB_SUBNET_GROUP_FAULT", + "InvalidDBSubnetGroupStateFault": "INVALID_DB_SUBNET_GROUP_STATE_FAULT", + "InvalidDBSubnetStateFault": "INVALID_DB_SUBNET_STATE_FAULT", + "InvalidEventSubscriptionStateFault": "INVALID_EVENT_SUBSCRIPTION_STATE_FAULT", + "InvalidExportOnlyFault": "INVALID_EXPORT_ONLY_FAULT", + "InvalidExportSourceStateFault": "INVALID_EXPORT_SOURCE_STATE_FAULT", + "InvalidExportTaskStateFault": "INVALID_EXPORT_TASK_STATE_FAULT", + "InvalidGlobalClusterStateFault": "INVALID_GLOBAL_CLUSTER_STATE_FAULT", + "InvalidIntegrationStateFault": "INVALID_INTEGRATION_STATE_FAULT", + "InvalidOptionGroupStateFault": "INVALID_OPTION_GROUP_STATE_FAULT", + "InvalidResourceStateFault": "INVALID_RESOURCE_STATE_FAULT", + "InvalidRestoreFault": "INVALID_RESTORE_FAULT", + "InvalidS3BucketFault": "INVALID_S3_BUCKET_FAULT", + "InvalidSubnet": "INVALID_SUBNET", + "InvalidVPCNetworkStateFault": "INVALID_VPC_NETWORK_STATE_FAULT", + "IPRange": "IP_RANGE", + "IssueDetails": "ISSUE_DETAILS", + "KMSKeyNotAccessibleFault": "KMS_KEY_NOT_ACCESSIBLE_FAULT", + "LifecycleSupportName": "LIFECYCLE_SUPPORT_NAME", + "LimitlessDatabase": "LIMITLESS_DATABASE", + "LimitlessDatabaseStatus": "LIMITLESS_DATABASE_STATUS", + "ListTagsForResourceInput": "LIST_TAGS_FOR_RESOURCE_INPUT", + "ListTagsForResourceOutput": "LIST_TAGS_FOR_RESOURCE_OUTPUT", + "LocalWriteForwardingStatus": "LOCAL_WRITE_FORWARDING_STATUS", + "MasterUserAuthenticationType": "MASTER_USER_AUTHENTICATION_TYPE", + "MasterUserSecret": "MASTER_USER_SECRET", + "MaxDBShardGroupLimitReached": "MAX_DB_SHARD_GROUP_LIMIT_REACHED", + "Metric": "METRIC", + "MetricQuery": "METRIC_QUERY", + "MetricReference": "METRIC_REFERENCE", + "MinimumEngineVersionPerAllowedValue": "MINIMUM_ENGINE_VERSION_PER_ALLOWED_VALUE", + "ModifyActivityStreamInput": "MODIFY_ACTIVITY_STREAM_INPUT", + "ModifyActivityStreamOutput": "MODIFY_ACTIVITY_STREAM_OUTPUT", + "ModifyAdditionalStorageVolume": "MODIFY_ADDITIONAL_STORAGE_VOLUME", + "ModifyCertificatesInput": "MODIFY_CERTIFICATES_INPUT", + "ModifyCertificatesOutput": "MODIFY_CERTIFICATES_OUTPUT", + "ModifyCurrentDBClusterCapacityInput": "MODIFY_CURRENT_DB_CLUSTER_CAPACITY_INPUT", + "ModifyCurrentDBClusterCapacityOutput": "MODIFY_CURRENT_DB_CLUSTER_CAPACITY_OUTPUT", + "ModifyCustomDBEngineVersionInput": "MODIFY_CUSTOM_DB_ENGINE_VERSION_INPUT", + "ModifyCustomDBEngineVersionOutput": "MODIFY_CUSTOM_DB_ENGINE_VERSION_OUTPUT", + "ModifyDBCapacityReservationInput": "MODIFY_DB_CAPACITY_RESERVATION_INPUT", + "ModifyDBCapacityReservationOutput": "MODIFY_DB_CAPACITY_RESERVATION_OUTPUT", + "ModifyDBClusterEndpointInput": "MODIFY_DB_CLUSTER_ENDPOINT_INPUT", + "ModifyDBClusterEndpointOutput": "MODIFY_DB_CLUSTER_ENDPOINT_OUTPUT", + "ModifyDBClusterInput": "MODIFY_DB_CLUSTER_INPUT", + "ModifyDBClusterOutput": "MODIFY_DB_CLUSTER_OUTPUT", + "ModifyDBClusterParameterGroupInput": "MODIFY_DB_CLUSTER_PARAMETER_GROUP_INPUT", + "ModifyDBClusterParameterGroupOutput": "MODIFY_DB_CLUSTER_PARAMETER_GROUP_OUTPUT", + "ModifyDBClusterSnapshotAttributeInput": "MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_INPUT", + "ModifyDBClusterSnapshotAttributeOutput": "MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE_OUTPUT", + "ModifyDBInstanceInput": "MODIFY_DB_INSTANCE_INPUT", + "ModifyDBInstanceOutput": "MODIFY_DB_INSTANCE_OUTPUT", + "ModifyDBParameterGroupInput": "MODIFY_DB_PARAMETER_GROUP_INPUT", + "ModifyDBParameterGroupOutput": "MODIFY_DB_PARAMETER_GROUP_OUTPUT", + "ModifyDBProxyEndpointInput": "MODIFY_DB_PROXY_ENDPOINT_INPUT", + "ModifyDBProxyEndpointOutput": "MODIFY_DB_PROXY_ENDPOINT_OUTPUT", + "ModifyDBProxyInput": "MODIFY_DB_PROXY_INPUT", + "ModifyDBProxyOutput": "MODIFY_DB_PROXY_OUTPUT", + "ModifyDBProxyTargetGroupInput": "MODIFY_DB_PROXY_TARGET_GROUP_INPUT", + "ModifyDBProxyTargetGroupOutput": "MODIFY_DB_PROXY_TARGET_GROUP_OUTPUT", + "ModifyDBRecommendationInput": "MODIFY_DB_RECOMMENDATION_INPUT", + "ModifyDBRecommendationOutput": "MODIFY_DB_RECOMMENDATION_OUTPUT", + "ModifyDBShardGroupInput": "MODIFY_DB_SHARD_GROUP_INPUT", + "ModifyDBShardGroupOutput": "MODIFY_DB_SHARD_GROUP_OUTPUT", + "ModifyDBSnapshotAttributeInput": "MODIFY_DB_SNAPSHOT_ATTRIBUTE_INPUT", + "ModifyDBSnapshotAttributeOutput": "MODIFY_DB_SNAPSHOT_ATTRIBUTE_OUTPUT", + "ModifyDBSnapshotInput": "MODIFY_DB_SNAPSHOT_INPUT", + "ModifyDBSnapshotOutput": "MODIFY_DB_SNAPSHOT_OUTPUT", + "ModifyDBSubnetGroupInput": "MODIFY_DB_SUBNET_GROUP_INPUT", + "ModifyDBSubnetGroupOutput": "MODIFY_DB_SUBNET_GROUP_OUTPUT", + "ModifyEventSubscriptionInput": "MODIFY_EVENT_SUBSCRIPTION_INPUT", + "ModifyEventSubscriptionOutput": "MODIFY_EVENT_SUBSCRIPTION_OUTPUT", + "ModifyGlobalClusterInput": "MODIFY_GLOBAL_CLUSTER_INPUT", + "ModifyGlobalClusterOutput": "MODIFY_GLOBAL_CLUSTER_OUTPUT", + "ModifyIntegrationInput": "MODIFY_INTEGRATION_INPUT", + "ModifyIntegrationOutput": "MODIFY_INTEGRATION_OUTPUT", + "ModifyOptionGroupInput": "MODIFY_OPTION_GROUP_INPUT", + "ModifyOptionGroupOutput": "MODIFY_OPTION_GROUP_OUTPUT", + "ModifyTenantDatabaseInput": "MODIFY_TENANT_DATABASE_INPUT", + "ModifyTenantDatabaseOutput": "MODIFY_TENANT_DATABASE_OUTPUT", + "NetworkTypeNotSupported": "NETWORK_TYPE_NOT_SUPPORTED", + "Option": "OPTION", + "OptionConfiguration": "OPTION_CONFIGURATION", + "OptionGroup": "OPTION_GROUP", + "OptionGroupAlreadyExistsFault": "OPTION_GROUP_ALREADY_EXISTS_FAULT", + "OptionGroupMembership": "OPTION_GROUP_MEMBERSHIP", + "OptionGroupNotFoundFault": "OPTION_GROUP_NOT_FOUND_FAULT", + "OptionGroupOption": "OPTION_GROUP_OPTION", + "OptionGroupOptionSetting": "OPTION_GROUP_OPTION_SETTING", + "OptionGroupQuotaExceededFault": "OPTION_GROUP_QUOTA_EXCEEDED_FAULT", + "OptionSetting": "OPTION_SETTING", + "OptionVersion": "OPTION_VERSION", + "OrderableDBInstanceOption": "ORDERABLE_DB_INSTANCE_OPTION", + "Outpost": "OUTPOST", + "Parameter": "PARAMETER", + "PendingCloudwatchLogsExports": "PENDING_CLOUDWATCH_LOGS_EXPORTS", + "PendingMaintenanceAction": "PENDING_MAINTENANCE_ACTION", + "PendingModifiedValues": "PENDING_MODIFIED_VALUES", + "PerformanceInsightsMetricDimensionGroup": "PERFORMANCE_INSIGHTS_METRIC_DIMENSION_GROUP", + "PerformanceInsightsMetricQuery": "PERFORMANCE_INSIGHTS_METRIC_QUERY", + "PerformanceIssueDetails": "PERFORMANCE_ISSUE_DETAILS", + "PointInTimeRestoreNotEnabledFault": "POINT_IN_TIME_RESTORE_NOT_ENABLED_FAULT", + "ProcessorFeature": "PROCESSOR_FEATURE", + "PromoteReadReplicaDBClusterInput": "PROMOTE_READ_REPLICA_DB_CLUSTER_INPUT", + "PromoteReadReplicaDBClusterOutput": "PROMOTE_READ_REPLICA_DB_CLUSTER_OUTPUT", + "PromoteReadReplicaInput": "PROMOTE_READ_REPLICA_INPUT", + "PromoteReadReplicaOutput": "PROMOTE_READ_REPLICA_OUTPUT", + "ProvisionedIopsNotAvailableInAZFault": "PROVISIONED_IOPS_NOT_AVAILABLE_IN_AZ_FAULT", + "PurchaseReservedDBInstancesOfferingInput": "PURCHASE_RESERVED_DB_INSTANCES_OFFERING_INPUT", + "PurchaseReservedDBInstancesOfferingOutput": "PURCHASE_RESERVED_DB_INSTANCES_OFFERING_OUTPUT", + "Range": "RANGE", + "RdsCustomClusterConfiguration": "RDS_CUSTOM_CLUSTER_CONFIGURATION", + "RebootDBClusterInput": "REBOOT_DB_CLUSTER_INPUT", + "RebootDBClusterOutput": "REBOOT_DB_CLUSTER_OUTPUT", + "RebootDBInstanceInput": "REBOOT_DB_INSTANCE_INPUT", + "RebootDBInstanceOutput": "REBOOT_DB_INSTANCE_OUTPUT", + "RebootDBShardGroupInput": "REBOOT_DB_SHARD_GROUP_INPUT", + "RebootDBShardGroupOutput": "REBOOT_DB_SHARD_GROUP_OUTPUT", + "RecommendedAction": "RECOMMENDED_ACTION", + "RecommendedActionParameter": "RECOMMENDED_ACTION_PARAMETER", + "RecommendedActionUpdate": "RECOMMENDED_ACTION_UPDATE", + "RecurringCharge": "RECURRING_CHARGE", + "ReferenceDetails": "REFERENCE_DETAILS", + "RegisterDBProxyTargetsInput": "REGISTER_DB_PROXY_TARGETS_INPUT", + "RegisterDBProxyTargetsOutput": "REGISTER_DB_PROXY_TARGETS_OUTPUT", + "RemoveFromGlobalClusterInput": "REMOVE_FROM_GLOBAL_CLUSTER_INPUT", + "RemoveFromGlobalClusterOutput": "REMOVE_FROM_GLOBAL_CLUSTER_OUTPUT", + "RemoveRoleFromDBClusterInput": "REMOVE_ROLE_FROM_DB_CLUSTER_INPUT", + "RemoveRoleFromDBClusterOutput": "REMOVE_ROLE_FROM_DB_CLUSTER_OUTPUT", + "RemoveRoleFromDBInstanceInput": "REMOVE_ROLE_FROM_DB_INSTANCE_INPUT", + "RemoveRoleFromDBInstanceOutput": "REMOVE_ROLE_FROM_DB_INSTANCE_OUTPUT", + "RemoveSourceIdentifierFromSubscriptionInput": "REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_INPUT", + "RemoveSourceIdentifierFromSubscriptionOutput": "REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION_OUTPUT", + "RemoveTagsFromResourceInput": "REMOVE_TAGS_FROM_RESOURCE_INPUT", + "RemoveTagsFromResourceOutput": "REMOVE_TAGS_FROM_RESOURCE_OUTPUT", + "ReplicaMode": "REPLICA_MODE", + "ReservedDBInstance": "RESERVED_DB_INSTANCE", + "ReservedDBInstanceAlreadyExistsFault": "RESERVED_DB_INSTANCE_ALREADY_EXISTS_FAULT", + "ReservedDBInstanceNotFoundFault": "RESERVED_DB_INSTANCE_NOT_FOUND_FAULT", + "ReservedDBInstanceQuotaExceededFault": "RESERVED_DB_INSTANCE_QUOTA_EXCEEDED_FAULT", + "ReservedDBInstancesOffering": "RESERVED_DB_INSTANCES_OFFERING", + "ReservedDBInstancesOfferingNotFoundFault": "RESERVED_DB_INSTANCES_OFFERING_NOT_FOUND_FAULT", + "ResetDBClusterParameterGroupInput": "RESET_DB_CLUSTER_PARAMETER_GROUP_INPUT", + "ResetDBClusterParameterGroupOutput": "RESET_DB_CLUSTER_PARAMETER_GROUP_OUTPUT", + "ResetDBParameterGroupInput": "RESET_DB_PARAMETER_GROUP_INPUT", + "ResetDBParameterGroupOutput": "RESET_DB_PARAMETER_GROUP_OUTPUT", + "ResourceNotFoundFault": "RESOURCE_NOT_FOUND_FAULT", + "ResourcePendingMaintenanceActions": "RESOURCE_PENDING_MAINTENANCE_ACTIONS", + "RestoreDBClusterFromS3Input": "RESTORE_DB_CLUSTER_FROM_S3_INPUT", + "RestoreDBClusterFromS3Output": "RESTORE_DB_CLUSTER_FROM_S3_OUTPUT", + "RestoreDBClusterFromSnapshotInput": "RESTORE_DB_CLUSTER_FROM_SNAPSHOT_INPUT", + "RestoreDBClusterFromSnapshotOutput": "RESTORE_DB_CLUSTER_FROM_SNAPSHOT_OUTPUT", + "RestoreDBClusterToPointInTimeInput": "RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_INPUT", + "RestoreDBClusterToPointInTimeOutput": "RESTORE_DB_CLUSTER_TO_POINT_IN_TIME_OUTPUT", + "RestoreDBInstanceFromDBSnapshotInput": "RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_INPUT", + "RestoreDBInstanceFromDBSnapshotOutput": "RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT_OUTPUT", + "RestoreDBInstanceFromS3Input": "RESTORE_DB_INSTANCE_FROM_S3_INPUT", + "RestoreDBInstanceFromS3Output": "RESTORE_DB_INSTANCE_FROM_S3_OUTPUT", + "RestoreDBInstanceToPointInTimeInput": "RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_INPUT", + "RestoreDBInstanceToPointInTimeOutput": "RESTORE_DB_INSTANCE_TO_POINT_IN_TIME_OUTPUT", + "RestoreWindow": "RESTORE_WINDOW", + "RevokeDBSecurityGroupIngressInput": "REVOKE_DB_SECURITY_GROUP_INGRESS_INPUT", + "RevokeDBSecurityGroupIngressOutput": "REVOKE_DB_SECURITY_GROUP_INGRESS_OUTPUT", + "ScalarReferenceDetails": "SCALAR_REFERENCE_DETAILS", + "ScalingConfiguration": "SCALING_CONFIGURATION", + "ScalingConfigurationInfo": "SCALING_CONFIGURATION_INFO", + "ServerlessV2FeaturesSupport": "SERVERLESS_V2_FEATURES_SUPPORT", + "ServerlessV2PlatformVersionInfo": "SERVERLESS_V2_PLATFORM_VERSION_INFO", + "ServerlessV2ScalingConfiguration": "SERVERLESS_V2_SCALING_CONFIGURATION", + "ServerlessV2ScalingConfigurationInfo": "SERVERLESS_V2_SCALING_CONFIGURATION_INFO", + "SharedSnapshotQuotaExceededFault": "SHARED_SNAPSHOT_QUOTA_EXCEEDED_FAULT", + "SnapshotQuotaExceededFault": "SNAPSHOT_QUOTA_EXCEEDED_FAULT", + "SNSInvalidTopicFault": "SNS_INVALID_TOPIC_FAULT", + "SNSNoAuthorizationFault": "SNS_NO_AUTHORIZATION_FAULT", + "SNSTopicArnNotFoundFault": "SNS_TOPIC_ARN_NOT_FOUND_FAULT", + "SourceClusterNotSupportedFault": "SOURCE_CLUSTER_NOT_SUPPORTED_FAULT", + "SourceDatabaseNotSupportedFault": "SOURCE_DATABASE_NOT_SUPPORTED_FAULT", + "SourceNotFoundFault": "SOURCE_NOT_FOUND_FAULT", + "SourceRegion": "SOURCE_REGION", + "SourceType": "SOURCE_TYPE", + "StartActivityStreamInput": "START_ACTIVITY_STREAM_INPUT", + "StartActivityStreamOutput": "START_ACTIVITY_STREAM_OUTPUT", + "StartDBClusterInput": "START_DB_CLUSTER_INPUT", + "StartDBClusterOutput": "START_DB_CLUSTER_OUTPUT", + "StartDBInstanceAutomatedBackupsReplicationInput": "START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT", + "StartDBInstanceAutomatedBackupsReplicationOutput": "START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT", + "StartDBInstanceInput": "START_DB_INSTANCE_INPUT", + "StartDBInstanceOutput": "START_DB_INSTANCE_OUTPUT", + "StartExportTaskInput": "START_EXPORT_TASK_INPUT", + "StartExportTaskOutput": "START_EXPORT_TASK_OUTPUT", + "StopActivityStreamInput": "STOP_ACTIVITY_STREAM_INPUT", + "StopActivityStreamOutput": "STOP_ACTIVITY_STREAM_OUTPUT", + "StopDBClusterInput": "STOP_DB_CLUSTER_INPUT", + "StopDBClusterOutput": "STOP_DB_CLUSTER_OUTPUT", + "StopDBInstanceAutomatedBackupsReplicationInput": "STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_INPUT", + "StopDBInstanceAutomatedBackupsReplicationOutput": "STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION_OUTPUT", + "StopDBInstanceInput": "STOP_DB_INSTANCE_INPUT", + "StopDBInstanceOutput": "STOP_DB_INSTANCE_OUTPUT", + "StorageEncryptionType": "STORAGE_ENCRYPTION_TYPE", + "StorageQuotaExceededFault": "STORAGE_QUOTA_EXCEEDED_FAULT", + "StorageTypeNotAvailableFault": "STORAGE_TYPE_NOT_AVAILABLE_FAULT", + "StorageTypeNotSupportedFault": "STORAGE_TYPE_NOT_SUPPORTED_FAULT", + "Subnet": "SUBNET", + "SubnetAlreadyInUse": "SUBNET_ALREADY_IN_USE", + "SubscriptionAlreadyExistFault": "SUBSCRIPTION_ALREADY_EXIST_FAULT", + "SubscriptionCategoryNotFoundFault": "SUBSCRIPTION_CATEGORY_NOT_FOUND_FAULT", + "SubscriptionNotFoundFault": "SUBSCRIPTION_NOT_FOUND_FAULT", + "SupportedEngineLifecycle": "SUPPORTED_ENGINE_LIFECYCLE", + "SwitchoverBlueGreenDeploymentInput": "SWITCHOVER_BLUE_GREEN_DEPLOYMENT_INPUT", + "SwitchoverBlueGreenDeploymentOutput": "SWITCHOVER_BLUE_GREEN_DEPLOYMENT_OUTPUT", + "SwitchoverDetail": "SWITCHOVER_DETAIL", + "SwitchoverGlobalClusterInput": "SWITCHOVER_GLOBAL_CLUSTER_INPUT", + "SwitchoverGlobalClusterOutput": "SWITCHOVER_GLOBAL_CLUSTER_OUTPUT", + "SwitchoverReadReplicaInput": "SWITCHOVER_READ_REPLICA_INPUT", + "SwitchoverReadReplicaOutput": "SWITCHOVER_READ_REPLICA_OUTPUT", + "Tag": "TAG", + "TagSpecification": "TAG_SPECIFICATION", + "TargetConnectionNetworkType": "TARGET_CONNECTION_NETWORK_TYPE", + "TargetHealth": "TARGET_HEALTH", + "TargetHealthReason": "TARGET_HEALTH_REASON", + "TargetResourceConfiguration": "TARGET_RESOURCE_CONFIGURATION", + "TargetRole": "TARGET_ROLE", + "TargetState": "TARGET_STATE", + "TargetType": "TARGET_TYPE", + "TenantDatabase": "TENANT_DATABASE", + "TenantDatabaseAlreadyExistsFault": "TENANT_DATABASE_ALREADY_EXISTS_FAULT", + "TenantDatabaseNotFoundFault": "TENANT_DATABASE_NOT_FOUND_FAULT", + "TenantDatabasePendingModifiedValues": "TENANT_DATABASE_PENDING_MODIFIED_VALUES", + "TenantDatabaseQuotaExceededFault": "TENANT_DATABASE_QUOTA_EXCEEDED_FAULT", + "Timezone": "TIMEZONE", + "UnsupportedDBEngineVersionFault": "UNSUPPORTED_DB_ENGINE_VERSION_FAULT", + "UpgradeRolloutOrder": "UPGRADE_ROLLOUT_ORDER", + "UpgradeTarget": "UPGRADE_TARGET", + "UserAuthConfig": "USER_AUTH_CONFIG", + "UserAuthConfigInfo": "USER_AUTH_CONFIG_INFO", + "ValidAdditionalStorageOptions": "VALID_ADDITIONAL_STORAGE_OPTIONS", + "ValidDBInstanceModificationsMessage": "VALID_DB_INSTANCE_MODIFICATIONS_MESSAGE", + "ValidStorageOptions": "VALID_STORAGE_OPTIONS", + "ValidVolumeOptions": "VALID_VOLUME_OPTIONS", + "VpcEncryptionControlViolationException": "VPC_ENCRYPTION_CONTROL_VIOLATION_EXCEPTION", + "VpcSecurityGroupMembership": "VPC_SECURITY_GROUP_MEMBERSHIP", + "WriteForwardingStatus": "WRITE_FORWARDING_STATUS", + }, + shape_names=frozenset( + { + "AccountQuota", + "ActivityStreamMode", + "ActivityStreamPolicyStatus", + "ActivityStreamStatus", + "AddRoleToDBClusterInput", + "AddRoleToDBClusterOutput", + "AddRoleToDBInstanceInput", + "AddRoleToDBInstanceOutput", + "AddSourceIdentifierToSubscriptionInput", + "AddSourceIdentifierToSubscriptionOutput", + "AddTagsToResourceInput", + "AddTagsToResourceOutput", + "AdditionalStorageVolume", + "AdditionalStorageVolumeOutput", + "ApplyMethod", + "ApplyPendingMaintenanceActionInput", + "ApplyPendingMaintenanceActionOutput", + "AuditPolicyState", + "AuthScheme", + "AuthorizationAlreadyExistsFault", + "AuthorizationNotFoundFault", + "AuthorizationQuotaExceededFault", + "AuthorizeDBSecurityGroupIngressInput", + "AuthorizeDBSecurityGroupIngressOutput", + "AutomationMode", + "AvailabilityZone", + "AvailableAdditionalStorageVolumesOption", + "AvailableCapacityPerAvailabilityZone", + "AvailableProcessorFeature", + "BacktrackDBClusterInput", + "BacktrackDBClusterOutput", + "BackupPolicyNotFoundFault", + "BlueGreenDeployment", + "BlueGreenDeploymentAlreadyExistsFault", + "BlueGreenDeploymentNotFoundFault", + "BlueGreenDeploymentTask", + "CancelDBCapacityReservationInput", + "CancelDBCapacityReservationOutput", + "CancelExportTaskInput", + "CancelExportTaskOutput", + "Certificate", + "CertificateDetails", + "CertificateNotFoundFault", + "CharacterSet", + "ClientPasswordAuthType", + "CloudwatchLogsExportConfiguration", + "ClusterPendingModifiedValues", + "ClusterScalabilityType", + "ConnectionPoolConfiguration", + "ConnectionPoolConfigurationInfo", + "ContextAttribute", + "CopyDBClusterParameterGroupInput", + "CopyDBClusterParameterGroupOutput", + "CopyDBClusterSnapshotInput", + "CopyDBClusterSnapshotOutput", + "CopyDBParameterGroupInput", + "CopyDBParameterGroupOutput", + "CopyDBSnapshotInput", + "CopyDBSnapshotOutput", + "CopyOptionGroupInput", + "CopyOptionGroupOutput", + "CreateBlueGreenDeploymentInput", + "CreateBlueGreenDeploymentOutput", + "CreateCustomDBEngineVersionFault", + "CreateCustomDBEngineVersionInput", + "CreateCustomDBEngineVersionOutput", + "CreateDBCapacityReservationInput", + "CreateDBCapacityReservationOutput", + "CreateDBClusterEndpointInput", + "CreateDBClusterEndpointOutput", + "CreateDBClusterInput", + "CreateDBClusterOutput", + "CreateDBClusterParameterGroupInput", + "CreateDBClusterParameterGroupOutput", + "CreateDBClusterSnapshotInput", + "CreateDBClusterSnapshotOutput", + "CreateDBInstanceInput", + "CreateDBInstanceOutput", + "CreateDBInstanceReadReplicaInput", + "CreateDBInstanceReadReplicaOutput", + "CreateDBParameterGroupInput", + "CreateDBParameterGroupOutput", + "CreateDBProxyEndpointInput", + "CreateDBProxyEndpointOutput", + "CreateDBProxyInput", + "CreateDBProxyOutput", + "CreateDBSecurityGroupInput", + "CreateDBSecurityGroupOutput", + "CreateDBShardGroupInput", + "CreateDBShardGroupOutput", + "CreateDBSnapshotInput", + "CreateDBSnapshotOutput", + "CreateDBSubnetGroupInput", + "CreateDBSubnetGroupOutput", + "CreateEventSubscriptionInput", + "CreateEventSubscriptionOutput", + "CreateGlobalClusterInput", + "CreateGlobalClusterOutput", + "CreateIntegrationInput", + "CreateIntegrationOutput", + "CreateOptionGroupInput", + "CreateOptionGroupOutput", + "CreateTenantDatabaseInput", + "CreateTenantDatabaseOutput", + "CustomAvailabilityZoneNotFoundFault", + "CustomDBEngineVersionAMI", + "CustomDBEngineVersionAlreadyExistsFault", + "CustomDBEngineVersionNotFoundFault", + "CustomDBEngineVersionQuotaExceededFault", + "CustomEngineVersionStatus", + "DBCapacityReservation", + "DBCapacityReservationAlreadyExistsFault", + "DBCapacityReservationCommitmentInfo", + "DBCapacityReservationNotFoundFault", + "DBCapacityReservationState", + "DBCapacityReservationUnsupportedFault", + "DBCluster", + "DBClusterAlreadyExistsFault", + "DBClusterAssociatedRole", + "DBClusterAutomatedBackup", + "DBClusterAutomatedBackupNotFoundFault", + "DBClusterAutomatedBackupQuotaExceededFault", + "DBClusterBacktrack", + "DBClusterBacktrackNotFoundFault", + "DBClusterEndpoint", + "DBClusterEndpointAlreadyExistsFault", + "DBClusterEndpointNotFoundFault", + "DBClusterEndpointQuotaExceededFault", + "DBClusterMember", + "DBClusterNotFoundFault", + "DBClusterOptionGroupStatus", + "DBClusterParameterGroup", + "DBClusterParameterGroupNotFoundFault", + "DBClusterQuotaExceededFault", + "DBClusterRole", + "DBClusterRoleAlreadyExistsFault", + "DBClusterRoleNotFoundFault", + "DBClusterRoleQuotaExceededFault", + "DBClusterSnapshot", + "DBClusterSnapshotAlreadyExistsFault", + "DBClusterSnapshotAttribute", + "DBClusterSnapshotAttributesResult", + "DBClusterSnapshotNotFoundFault", + "DBClusterStatusInfo", + "DBEngineVersion", + "DBInstance", + "DBInstanceAlreadyExistsFault", + "DBInstanceAutomatedBackup", + "DBInstanceAutomatedBackupNotFoundFault", + "DBInstanceAutomatedBackupQuotaExceededFault", + "DBInstanceAutomatedBackupsReplication", + "DBInstanceNotFoundFault", + "DBInstanceNotReadyFault", + "DBInstanceRole", + "DBInstanceRoleAlreadyExistsFault", + "DBInstanceRoleNotFoundFault", + "DBInstanceRoleQuotaExceededFault", + "DBInstanceStatusInfo", + "DBLogFileNotFoundFault", + "DBMajorEngineVersion", + "DBParameterGroup", + "DBParameterGroupAlreadyExistsFault", + "DBParameterGroupNotFoundFault", + "DBParameterGroupQuotaExceededFault", + "DBParameterGroupStatus", + "DBProxy", + "DBProxyAlreadyExistsFault", + "DBProxyEndpoint", + "DBProxyEndpointAlreadyExistsFault", + "DBProxyEndpointNotFoundFault", + "DBProxyEndpointQuotaExceededFault", + "DBProxyEndpointStatus", + "DBProxyEndpointTargetRole", + "DBProxyNotFoundFault", + "DBProxyQuotaExceededFault", + "DBProxyStatus", + "DBProxyTarget", + "DBProxyTargetAlreadyRegisteredFault", + "DBProxyTargetGroup", + "DBProxyTargetGroupNotFoundFault", + "DBProxyTargetNotFoundFault", + "DBRecommendation", + "DBSecurityGroup", + "DBSecurityGroupAlreadyExistsFault", + "DBSecurityGroupMembership", + "DBSecurityGroupNotFoundFault", + "DBSecurityGroupNotSupportedFault", + "DBSecurityGroupQuotaExceededFault", + "DBShardGroup", + "DBShardGroupAlreadyExistsFault", + "DBShardGroupNotFoundFault", + "DBSnapshot", + "DBSnapshotAlreadyExistsFault", + "DBSnapshotAttribute", + "DBSnapshotAttributesResult", + "DBSnapshotNotFoundFault", + "DBSnapshotTenantDatabase", + "DBSnapshotTenantDatabaseNotFoundFault", + "DBSubnetGroup", + "DBSubnetGroupAlreadyExistsFault", + "DBSubnetGroupDoesNotCoverEnoughAZs", + "DBSubnetGroupNotAllowedFault", + "DBSubnetGroupNotFoundFault", + "DBSubnetGroupQuotaExceededFault", + "DBSubnetQuotaExceededFault", + "DBUpgradeDependencyFailureFault", + "DatabaseInsightsMode", + "DefaultAuthScheme", + "DeleteBlueGreenDeploymentInput", + "DeleteBlueGreenDeploymentOutput", + "DeleteCustomDBEngineVersionInput", + "DeleteCustomDBEngineVersionOutput", + "DeleteDBClusterAutomatedBackupInput", + "DeleteDBClusterAutomatedBackupOutput", + "DeleteDBClusterEndpointInput", + "DeleteDBClusterEndpointOutput", + "DeleteDBClusterInput", + "DeleteDBClusterOutput", + "DeleteDBClusterParameterGroupInput", + "DeleteDBClusterParameterGroupOutput", + "DeleteDBClusterSnapshotInput", + "DeleteDBClusterSnapshotOutput", + "DeleteDBInstanceAutomatedBackupInput", + "DeleteDBInstanceAutomatedBackupOutput", + "DeleteDBInstanceInput", + "DeleteDBInstanceOutput", + "DeleteDBParameterGroupInput", + "DeleteDBParameterGroupOutput", + "DeleteDBProxyEndpointInput", + "DeleteDBProxyEndpointOutput", + "DeleteDBProxyInput", + "DeleteDBProxyOutput", + "DeleteDBSecurityGroupInput", + "DeleteDBSecurityGroupOutput", + "DeleteDBShardGroupInput", + "DeleteDBShardGroupOutput", + "DeleteDBSnapshotInput", + "DeleteDBSnapshotOutput", + "DeleteDBSubnetGroupInput", + "DeleteDBSubnetGroupOutput", + "DeleteEventSubscriptionInput", + "DeleteEventSubscriptionOutput", + "DeleteGlobalClusterInput", + "DeleteGlobalClusterOutput", + "DeleteIntegrationInput", + "DeleteIntegrationOutput", + "DeleteOptionGroupInput", + "DeleteOptionGroupOutput", + "DeleteTenantDatabaseInput", + "DeleteTenantDatabaseOutput", + "DeregisterDBProxyTargetsInput", + "DeregisterDBProxyTargetsOutput", + "DescribeAccountAttributesInput", + "DescribeAccountAttributesOutput", + "DescribeBlueGreenDeploymentsInput", + "DescribeBlueGreenDeploymentsOutput", + "DescribeCertificatesInput", + "DescribeCertificatesOutput", + "DescribeDBCapacityReservationsInput", + "DescribeDBCapacityReservationsOutput", + "DescribeDBClusterAutomatedBackupsInput", + "DescribeDBClusterAutomatedBackupsOutput", + "DescribeDBClusterBacktracksInput", + "DescribeDBClusterBacktracksOutput", + "DescribeDBClusterEndpointsInput", + "DescribeDBClusterEndpointsOutput", + "DescribeDBClusterParameterGroupsInput", + "DescribeDBClusterParameterGroupsOutput", + "DescribeDBClusterParametersInput", + "DescribeDBClusterParametersOutput", + "DescribeDBClusterSnapshotAttributesInput", + "DescribeDBClusterSnapshotAttributesOutput", + "DescribeDBClusterSnapshotsInput", + "DescribeDBClusterSnapshotsOutput", + "DescribeDBClustersInput", + "DescribeDBClustersOutput", + "DescribeDBEngineVersionsInput", + "DescribeDBEngineVersionsOutput", + "DescribeDBInstanceAutomatedBackupsInput", + "DescribeDBInstanceAutomatedBackupsOutput", + "DescribeDBInstancesInput", + "DescribeDBInstancesOutput", + "DescribeDBLogFilesDetails", + "DescribeDBLogFilesInput", + "DescribeDBLogFilesOutput", + "DescribeDBMajorEngineVersionsInput", + "DescribeDBMajorEngineVersionsOutput", + "DescribeDBParameterGroupsInput", + "DescribeDBParameterGroupsOutput", + "DescribeDBParametersInput", + "DescribeDBParametersOutput", + "DescribeDBProxiesInput", + "DescribeDBProxiesOutput", + "DescribeDBProxyEndpointsInput", + "DescribeDBProxyEndpointsOutput", + "DescribeDBProxyTargetGroupsInput", + "DescribeDBProxyTargetGroupsOutput", + "DescribeDBProxyTargetsInput", + "DescribeDBProxyTargetsOutput", + "DescribeDBRecommendationsInput", + "DescribeDBRecommendationsOutput", + "DescribeDBSecurityGroupsInput", + "DescribeDBSecurityGroupsOutput", + "DescribeDBShardGroupsInput", + "DescribeDBShardGroupsOutput", + "DescribeDBSnapshotAttributesInput", + "DescribeDBSnapshotAttributesOutput", + "DescribeDBSnapshotTenantDatabasesInput", + "DescribeDBSnapshotTenantDatabasesOutput", + "DescribeDBSnapshotsInput", + "DescribeDBSnapshotsOutput", + "DescribeDBSubnetGroupsInput", + "DescribeDBSubnetGroupsOutput", + "DescribeEngineDefaultClusterParametersInput", + "DescribeEngineDefaultClusterParametersOutput", + "DescribeEngineDefaultParametersInput", + "DescribeEngineDefaultParametersOutput", + "DescribeEventCategoriesInput", + "DescribeEventCategoriesOutput", + "DescribeEventSubscriptionsInput", + "DescribeEventSubscriptionsOutput", + "DescribeEventsInput", + "DescribeEventsOutput", + "DescribeExportTasksInput", + "DescribeExportTasksOutput", + "DescribeGlobalClustersInput", + "DescribeGlobalClustersOutput", + "DescribeIntegrationsInput", + "DescribeIntegrationsOutput", + "DescribeOptionGroupOptionsInput", + "DescribeOptionGroupOptionsOutput", + "DescribeOptionGroupsInput", + "DescribeOptionGroupsOutput", + "DescribeOrderableDBInstanceOptionsInput", + "DescribeOrderableDBInstanceOptionsOutput", + "DescribePendingMaintenanceActionsInput", + "DescribePendingMaintenanceActionsOutput", + "DescribeReservedDBInstancesInput", + "DescribeReservedDBInstancesOfferingsInput", + "DescribeReservedDBInstancesOfferingsOutput", + "DescribeReservedDBInstancesOutput", + "DescribeServerlessV2PlatformVersionsInput", + "DescribeServerlessV2PlatformVersionsOutput", + "DescribeSourceRegionsInput", + "DescribeSourceRegionsOutput", + "DescribeTenantDatabasesInput", + "DescribeTenantDatabasesOutput", + "DescribeValidDBInstanceModificationsInput", + "DescribeValidDBInstanceModificationsOutput", + "DisableHttpEndpointInput", + "DisableHttpEndpointOutput", + "DocLink", + "DomainMembership", + "DomainNotFoundFault", + "DoubleRange", + "DownloadDBLogFilePortionInput", + "DownloadDBLogFilePortionOutput", + "EC2SecurityGroup", + "Ec2ImagePropertiesNotSupportedFault", + "EnableHttpEndpointInput", + "EnableHttpEndpointOutput", + "EndDateType", + "Endpoint", + "EndpointNetworkType", + "EngineDefaults", + "EngineFamily", + "Event", + "EventCategoriesMap", + "EventSubscription", + "EventSubscriptionQuotaExceededFault", + "ExportSourceType", + "ExportTask", + "ExportTaskAlreadyExistsFault", + "ExportTaskNotFoundFault", + "FailoverDBClusterInput", + "FailoverDBClusterOutput", + "FailoverGlobalClusterInput", + "FailoverGlobalClusterOutput", + "FailoverState", + "FailoverStatus", + "Filter", + "GlobalCluster", + "GlobalClusterAlreadyExistsFault", + "GlobalClusterMember", + "GlobalClusterMemberSynchronizationStatus", + "GlobalClusterNotFoundFault", + "GlobalClusterQuotaExceededFault", + "IAMAuthMode", + "IPRange", + "IamRoleMissingPermissionsFault", + "IamRoleNotFoundFault", + "InstanceQuotaExceededFault", + "InsufficientAvailableIPsInSubnetFault", + "InsufficientDBClusterCapacityFault", + "InsufficientDBInstanceCapacityFault", + "InsufficientStorageClusterCapacityFault", + "Integration", + "IntegrationAlreadyExistsFault", + "IntegrationConflictOperationFault", + "IntegrationError", + "IntegrationNotFoundFault", + "IntegrationQuotaExceededFault", + "IntegrationStatus", + "InvalidBlueGreenDeploymentStateFault", + "InvalidCustomDBEngineVersionStateFault", + "InvalidDBCapacityReservationStateFault", + "InvalidDBClusterAutomatedBackupStateFault", + "InvalidDBClusterCapacityFault", + "InvalidDBClusterEndpointStateFault", + "InvalidDBClusterSnapshotStateFault", + "InvalidDBClusterStateFault", + "InvalidDBInstanceAutomatedBackupStateFault", + "InvalidDBInstanceStateFault", + "InvalidDBParameterGroupStateFault", + "InvalidDBProxyEndpointStateFault", + "InvalidDBProxyStateFault", + "InvalidDBSecurityGroupStateFault", + "InvalidDBShardGroupStateFault", + "InvalidDBSnapshotStateFault", + "InvalidDBSubnetGroupFault", + "InvalidDBSubnetGroupStateFault", + "InvalidDBSubnetStateFault", + "InvalidEventSubscriptionStateFault", + "InvalidExportOnlyFault", + "InvalidExportSourceStateFault", + "InvalidExportTaskStateFault", + "InvalidGlobalClusterStateFault", + "InvalidIntegrationStateFault", + "InvalidOptionGroupStateFault", + "InvalidResourceStateFault", + "InvalidRestoreFault", + "InvalidS3BucketFault", + "InvalidSubnet", + "InvalidVPCNetworkStateFault", + "IssueDetails", + "KMSKeyNotAccessibleFault", + "LifecycleSupportName", + "LimitlessDatabase", + "LimitlessDatabaseStatus", + "ListTagsForResourceInput", + "ListTagsForResourceOutput", + "LocalWriteForwardingStatus", + "MasterUserAuthenticationType", + "MasterUserSecret", + "MaxDBShardGroupLimitReached", + "Metric", + "MetricQuery", + "MetricReference", + "MinimumEngineVersionPerAllowedValue", + "ModifyActivityStreamInput", + "ModifyActivityStreamOutput", + "ModifyAdditionalStorageVolume", + "ModifyCertificatesInput", + "ModifyCertificatesOutput", + "ModifyCurrentDBClusterCapacityInput", + "ModifyCurrentDBClusterCapacityOutput", + "ModifyCustomDBEngineVersionInput", + "ModifyCustomDBEngineVersionOutput", + "ModifyDBCapacityReservationInput", + "ModifyDBCapacityReservationOutput", + "ModifyDBClusterEndpointInput", + "ModifyDBClusterEndpointOutput", + "ModifyDBClusterInput", + "ModifyDBClusterOutput", + "ModifyDBClusterParameterGroupInput", + "ModifyDBClusterParameterGroupOutput", + "ModifyDBClusterSnapshotAttributeInput", + "ModifyDBClusterSnapshotAttributeOutput", + "ModifyDBInstanceInput", + "ModifyDBInstanceOutput", + "ModifyDBParameterGroupInput", + "ModifyDBParameterGroupOutput", + "ModifyDBProxyEndpointInput", + "ModifyDBProxyEndpointOutput", + "ModifyDBProxyInput", + "ModifyDBProxyOutput", + "ModifyDBProxyTargetGroupInput", + "ModifyDBProxyTargetGroupOutput", + "ModifyDBRecommendationInput", + "ModifyDBRecommendationOutput", + "ModifyDBShardGroupInput", + "ModifyDBShardGroupOutput", + "ModifyDBSnapshotAttributeInput", + "ModifyDBSnapshotAttributeOutput", + "ModifyDBSnapshotInput", + "ModifyDBSnapshotOutput", + "ModifyDBSubnetGroupInput", + "ModifyDBSubnetGroupOutput", + "ModifyEventSubscriptionInput", + "ModifyEventSubscriptionOutput", + "ModifyGlobalClusterInput", + "ModifyGlobalClusterOutput", + "ModifyIntegrationInput", + "ModifyIntegrationOutput", + "ModifyOptionGroupInput", + "ModifyOptionGroupOutput", + "ModifyTenantDatabaseInput", + "ModifyTenantDatabaseOutput", + "NetworkTypeNotSupported", + "Option", + "OptionConfiguration", + "OptionGroup", + "OptionGroupAlreadyExistsFault", + "OptionGroupMembership", + "OptionGroupNotFoundFault", + "OptionGroupOption", + "OptionGroupOptionSetting", + "OptionGroupQuotaExceededFault", + "OptionSetting", + "OptionVersion", + "OrderableDBInstanceOption", + "Outpost", + "Parameter", + "PendingCloudwatchLogsExports", + "PendingMaintenanceAction", + "PendingModifiedValues", + "PerformanceInsightsMetricDimensionGroup", + "PerformanceInsightsMetricQuery", + "PerformanceIssueDetails", + "PointInTimeRestoreNotEnabledFault", + "ProcessorFeature", + "PromoteReadReplicaDBClusterInput", + "PromoteReadReplicaDBClusterOutput", + "PromoteReadReplicaInput", + "PromoteReadReplicaOutput", + "ProvisionedIopsNotAvailableInAZFault", + "PurchaseReservedDBInstancesOfferingInput", + "PurchaseReservedDBInstancesOfferingOutput", + "Range", + "RdsCustomClusterConfiguration", + "RebootDBClusterInput", + "RebootDBClusterOutput", + "RebootDBInstanceInput", + "RebootDBInstanceOutput", + "RebootDBShardGroupInput", + "RebootDBShardGroupOutput", + "RecommendedAction", + "RecommendedActionParameter", + "RecommendedActionUpdate", + "RecurringCharge", + "ReferenceDetails", + "RegisterDBProxyTargetsInput", + "RegisterDBProxyTargetsOutput", + "RemoveFromGlobalClusterInput", + "RemoveFromGlobalClusterOutput", + "RemoveRoleFromDBClusterInput", + "RemoveRoleFromDBClusterOutput", + "RemoveRoleFromDBInstanceInput", + "RemoveRoleFromDBInstanceOutput", + "RemoveSourceIdentifierFromSubscriptionInput", + "RemoveSourceIdentifierFromSubscriptionOutput", + "RemoveTagsFromResourceInput", + "RemoveTagsFromResourceOutput", + "ReplicaMode", + "ReservedDBInstance", + "ReservedDBInstanceAlreadyExistsFault", + "ReservedDBInstanceNotFoundFault", + "ReservedDBInstanceQuotaExceededFault", + "ReservedDBInstancesOffering", + "ReservedDBInstancesOfferingNotFoundFault", + "ResetDBClusterParameterGroupInput", + "ResetDBClusterParameterGroupOutput", + "ResetDBParameterGroupInput", + "ResetDBParameterGroupOutput", + "ResourceNotFoundFault", + "ResourcePendingMaintenanceActions", + "RestoreDBClusterFromS3Input", + "RestoreDBClusterFromS3Output", + "RestoreDBClusterFromSnapshotInput", + "RestoreDBClusterFromSnapshotOutput", + "RestoreDBClusterToPointInTimeInput", + "RestoreDBClusterToPointInTimeOutput", + "RestoreDBInstanceFromDBSnapshotInput", + "RestoreDBInstanceFromDBSnapshotOutput", + "RestoreDBInstanceFromS3Input", + "RestoreDBInstanceFromS3Output", + "RestoreDBInstanceToPointInTimeInput", + "RestoreDBInstanceToPointInTimeOutput", + "RestoreWindow", + "RevokeDBSecurityGroupIngressInput", + "RevokeDBSecurityGroupIngressOutput", + "SNSInvalidTopicFault", + "SNSNoAuthorizationFault", + "SNSTopicArnNotFoundFault", + "ScalarReferenceDetails", + "ScalingConfiguration", + "ScalingConfigurationInfo", + "ServerlessV2FeaturesSupport", + "ServerlessV2PlatformVersionInfo", + "ServerlessV2ScalingConfiguration", + "ServerlessV2ScalingConfigurationInfo", + "SharedSnapshotQuotaExceededFault", + "SnapshotQuotaExceededFault", + "SourceClusterNotSupportedFault", + "SourceDatabaseNotSupportedFault", + "SourceNotFoundFault", + "SourceRegion", + "SourceType", + "StartActivityStreamInput", + "StartActivityStreamOutput", + "StartDBClusterInput", + "StartDBClusterOutput", + "StartDBInstanceAutomatedBackupsReplicationInput", + "StartDBInstanceAutomatedBackupsReplicationOutput", + "StartDBInstanceInput", + "StartDBInstanceOutput", + "StartExportTaskInput", + "StartExportTaskOutput", + "StopActivityStreamInput", + "StopActivityStreamOutput", + "StopDBClusterInput", + "StopDBClusterOutput", + "StopDBInstanceAutomatedBackupsReplicationInput", + "StopDBInstanceAutomatedBackupsReplicationOutput", + "StopDBInstanceInput", + "StopDBInstanceOutput", + "StorageEncryptionType", + "StorageQuotaExceededFault", + "StorageTypeNotAvailableFault", + "StorageTypeNotSupportedFault", + "Subnet", + "SubnetAlreadyInUse", + "SubscriptionAlreadyExistFault", + "SubscriptionCategoryNotFoundFault", + "SubscriptionNotFoundFault", + "SupportedEngineLifecycle", + "SwitchoverBlueGreenDeploymentInput", + "SwitchoverBlueGreenDeploymentOutput", + "SwitchoverDetail", + "SwitchoverGlobalClusterInput", + "SwitchoverGlobalClusterOutput", + "SwitchoverReadReplicaInput", + "SwitchoverReadReplicaOutput", + "Tag", + "TagSpecification", + "TargetConnectionNetworkType", + "TargetHealth", + "TargetHealthReason", + "TargetResourceConfiguration", + "TargetRole", + "TargetState", + "TargetType", + "TenantDatabase", + "TenantDatabaseAlreadyExistsFault", + "TenantDatabaseNotFoundFault", + "TenantDatabasePendingModifiedValues", + "TenantDatabaseQuotaExceededFault", + "Timezone", + "UnsupportedDBEngineVersionFault", + "UpgradeRolloutOrder", + "UpgradeTarget", + "UserAuthConfig", + "UserAuthConfigInfo", + "ValidAdditionalStorageOptions", + "ValidDBInstanceModificationsMessage", + "ValidStorageOptions", + "ValidVolumeOptions", + "VpcEncryptionControlViolationException", + "VpcSecurityGroupMembership", + "WriteForwardingStatus", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ADD_ROLE_TO_DB_CLUSTER", + "ADD_ROLE_TO_DB_INSTANCE", + "ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION", + "ADD_TAGS_TO_RESOURCE", + "APPLY_PENDING_MAINTENANCE_ACTION", + "AUTHORIZE_DB_SECURITY_GROUP_INGRESS", + "BACKTRACK_DB_CLUSTER", + "CANCEL_DB_CAPACITY_RESERVATION", + "CANCEL_EXPORT_TASK", + "COPY_DB_CLUSTER_PARAMETER_GROUP", + "COPY_DB_CLUSTER_SNAPSHOT", + "COPY_DB_PARAMETER_GROUP", + "COPY_DB_SNAPSHOT", + "COPY_OPTION_GROUP", + "CREATE_BLUE_GREEN_DEPLOYMENT", + "CREATE_CUSTOM_DB_ENGINE_VERSION", + "CREATE_DB_CAPACITY_RESERVATION", + "CREATE_DB_CLUSTER", + "CREATE_DB_CLUSTER_ENDPOINT", + "CREATE_DB_CLUSTER_PARAMETER_GROUP", + "CREATE_DB_CLUSTER_SNAPSHOT", + "CREATE_DB_INSTANCE", + "CREATE_DB_INSTANCE_READ_REPLICA", + "CREATE_DB_PARAMETER_GROUP", + "CREATE_DB_PROXY", + "CREATE_DB_PROXY_ENDPOINT", + "CREATE_DB_SECURITY_GROUP", + "CREATE_DB_SHARD_GROUP", + "CREATE_DB_SNAPSHOT", + "CREATE_DB_SUBNET_GROUP", + "CREATE_EVENT_SUBSCRIPTION", + "CREATE_GLOBAL_CLUSTER", + "CREATE_INTEGRATION", + "CREATE_OPTION_GROUP", + "CREATE_TENANT_DATABASE", + "DELETE_BLUE_GREEN_DEPLOYMENT", + "DELETE_CUSTOM_DB_ENGINE_VERSION", + "DELETE_DB_CLUSTER", + "DELETE_DB_CLUSTER_AUTOMATED_BACKUP", + "DELETE_DB_CLUSTER_ENDPOINT", + "DELETE_DB_CLUSTER_PARAMETER_GROUP", + "DELETE_DB_CLUSTER_SNAPSHOT", + "DELETE_DB_INSTANCE", + "DELETE_DB_INSTANCE_AUTOMATED_BACKUP", + "DELETE_DB_PARAMETER_GROUP", + "DELETE_DB_PROXY", + "DELETE_DB_PROXY_ENDPOINT", + "DELETE_DB_SECURITY_GROUP", + "DELETE_DB_SHARD_GROUP", + "DELETE_DB_SNAPSHOT", + "DELETE_DB_SUBNET_GROUP", + "DELETE_EVENT_SUBSCRIPTION", + "DELETE_GLOBAL_CLUSTER", + "DELETE_INTEGRATION", + "DELETE_OPTION_GROUP", + "DELETE_TENANT_DATABASE", + "DEREGISTER_DB_PROXY_TARGETS", + "DESCRIBE_ACCOUNT_ATTRIBUTES", + "DESCRIBE_BLUE_GREEN_DEPLOYMENTS", + "DESCRIBE_CERTIFICATES", + "DESCRIBE_DB_CAPACITY_RESERVATIONS", + "DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS", + "DESCRIBE_DB_CLUSTER_BACKTRACKS", + "DESCRIBE_DB_CLUSTER_ENDPOINTS", + "DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS", + "DESCRIBE_DB_CLUSTER_PARAMETERS", + "DESCRIBE_DB_CLUSTERS", + "DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES", + "DESCRIBE_DB_CLUSTER_SNAPSHOTS", + "DESCRIBE_DB_ENGINE_VERSIONS", + "DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS", + "DESCRIBE_DB_INSTANCES", + "DESCRIBE_DB_LOG_FILES", + "DESCRIBE_DB_MAJOR_ENGINE_VERSIONS", + "DESCRIBE_DB_PARAMETER_GROUPS", + "DESCRIBE_DB_PARAMETERS", + "DESCRIBE_DB_PROXIES", + "DESCRIBE_DB_PROXY_ENDPOINTS", + "DESCRIBE_DB_PROXY_TARGET_GROUPS", + "DESCRIBE_DB_PROXY_TARGETS", + "DESCRIBE_DB_RECOMMENDATIONS", + "DESCRIBE_DB_SECURITY_GROUPS", + "DESCRIBE_DB_SHARD_GROUPS", + "DESCRIBE_DB_SNAPSHOT_ATTRIBUTES", + "DESCRIBE_DB_SNAPSHOTS", + "DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES", + "DESCRIBE_DB_SUBNET_GROUPS", + "DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS", + "DESCRIBE_ENGINE_DEFAULT_PARAMETERS", + "DESCRIBE_EVENT_CATEGORIES", + "DESCRIBE_EVENTS", + "DESCRIBE_EVENT_SUBSCRIPTIONS", + "DESCRIBE_EXPORT_TASKS", + "DESCRIBE_GLOBAL_CLUSTERS", + "DESCRIBE_INTEGRATIONS", + "DESCRIBE_OPTION_GROUP_OPTIONS", + "DESCRIBE_OPTION_GROUPS", + "DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS", + "DESCRIBE_PENDING_MAINTENANCE_ACTIONS", + "DESCRIBE_RESERVED_DB_INSTANCES", + "DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS", + "DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS", + "DESCRIBE_SOURCE_REGIONS", + "DESCRIBE_TENANT_DATABASES", + "DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS", + "DISABLE_HTTP_ENDPOINT", + "DOWNLOAD_DB_LOG_FILE_PORTION", + "ENABLE_HTTP_ENDPOINT", + "FAILOVER_DB_CLUSTER", + "FAILOVER_GLOBAL_CLUSTER", + "LIST_TAGS_FOR_RESOURCE", + "MODIFY_ACTIVITY_STREAM", + "MODIFY_CERTIFICATES", + "MODIFY_CURRENT_DB_CLUSTER_CAPACITY", + "MODIFY_CUSTOM_DB_ENGINE_VERSION", + "MODIFY_DB_CAPACITY_RESERVATION", + "MODIFY_DB_CLUSTER", + "MODIFY_DB_CLUSTER_ENDPOINT", + "MODIFY_DB_CLUSTER_PARAMETER_GROUP", + "MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE", + "MODIFY_DB_INSTANCE", + "MODIFY_DB_PARAMETER_GROUP", + "MODIFY_DB_PROXY", + "MODIFY_DB_PROXY_ENDPOINT", + "MODIFY_DB_PROXY_TARGET_GROUP", + "MODIFY_DB_RECOMMENDATION", + "MODIFY_DB_SHARD_GROUP", + "MODIFY_DB_SNAPSHOT", + "MODIFY_DB_SNAPSHOT_ATTRIBUTE", + "MODIFY_DB_SUBNET_GROUP", + "MODIFY_EVENT_SUBSCRIPTION", + "MODIFY_GLOBAL_CLUSTER", + "MODIFY_INTEGRATION", + "MODIFY_OPTION_GROUP", + "MODIFY_TENANT_DATABASE", + "PROMOTE_READ_REPLICA", + "PROMOTE_READ_REPLICA_DB_CLUSTER", + "PURCHASE_RESERVED_DB_INSTANCES_OFFERING", + "REBOOT_DB_CLUSTER", + "REBOOT_DB_INSTANCE", + "REBOOT_DB_SHARD_GROUP", + "REGISTER_DB_PROXY_TARGETS", + "REMOVE_FROM_GLOBAL_CLUSTER", + "REMOVE_ROLE_FROM_DB_CLUSTER", + "REMOVE_ROLE_FROM_DB_INSTANCE", + "REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION", + "REMOVE_TAGS_FROM_RESOURCE", + "RESET_DB_CLUSTER_PARAMETER_GROUP", + "RESET_DB_PARAMETER_GROUP", + "RESTORE_DB_CLUSTER_FROM_S3", + "RESTORE_DB_CLUSTER_FROM_SNAPSHOT", + "RESTORE_DB_CLUSTER_TO_POINT_IN_TIME", + "RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT", + "RESTORE_DB_INSTANCE_FROM_S3", + "RESTORE_DB_INSTANCE_TO_POINT_IN_TIME", + "REVOKE_DB_SECURITY_GROUP_INGRESS", + "START_ACTIVITY_STREAM", + "START_DB_CLUSTER", + "START_DB_INSTANCE", + "START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION", + "START_EXPORT_TASK", + "STOP_ACTIVITY_STREAM", + "STOP_DB_CLUSTER", + "STOP_DB_INSTANCE", + "STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION", + "SWITCHOVER_BLUE_GREEN_DEPLOYMENT", + "SWITCHOVER_GLOBAL_CLUSTER", + "SWITCHOVER_READ_REPLICA", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ADD_ROLE_TO_DB_CLUSTER"] = ( + "ADD_ROLE_TO_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterRoleAlreadyExistsFault", + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_ROLE_TO_DB_INSTANCE"] = ( + "ADD_ROLE_TO_DB_INSTANCE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBInstanceRoleAlreadyExistsFault", + "com.amazonaws.rds#DBInstanceRoleQuotaExceededFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION"] = ( + "ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION", + ( + "com.amazonaws.rds#SourceNotFoundFault", + "com.amazonaws.rds#SubscriptionNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ADD_TAGS_TO_RESOURCE"] = ( + "ADD_TAGS_TO_RESOURCE", + ( + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault", + "com.amazonaws.rds#IntegrationNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterEndpointStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#TenantDatabaseNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["APPLY_PENDING_MAINTENANCE_ACTION"] = ( + "APPLY_PENDING_MAINTENANCE_ACTION", + ( + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["AUTHORIZE_DB_SECURITY_GROUP_INGRESS"] = ( + "AUTHORIZE_DB_SECURITY_GROUP_INGRESS", + ( + "com.amazonaws.rds#AuthorizationAlreadyExistsFault", + "com.amazonaws.rds#AuthorizationQuotaExceededFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["BACKTRACK_DB_CLUSTER"] = ( + "BACKTRACK_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_DB_CAPACITY_RESERVATION"] = ( + "CANCEL_DB_CAPACITY_RESERVATION", + ( + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CANCEL_EXPORT_TASK"] = ( + "CANCEL_EXPORT_TASK", + ( + "com.amazonaws.rds#ExportTaskNotFoundFault", + "com.amazonaws.rds#InvalidExportTaskStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_DB_CLUSTER_PARAMETER_GROUP"] = ( + "COPY_DB_CLUSTER_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBParameterGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_DB_CLUSTER_SNAPSHOT"] = ( + "COPY_DB_CLUSTER_SNAPSHOT", + ( + "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault", + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_DB_PARAMETER_GROUP"] = ( + "COPY_DB_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBParameterGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_DB_SNAPSHOT"] = ( + "COPY_DB_SNAPSHOT", + ( + "com.amazonaws.rds#CustomAvailabilityZoneNotFoundFault", + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_OPTION_GROUP"] = ( + "COPY_OPTION_GROUP", + ( + "com.amazonaws.rds#OptionGroupAlreadyExistsFault", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#OptionGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_BLUE_GREEN_DEPLOYMENT"] = ( + "CREATE_BLUE_GREEN_DEPLOYMENT", + ( + "com.amazonaws.rds#BlueGreenDeploymentAlreadyExistsFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBClusterQuotaExceededFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#SourceClusterNotSupportedFault", + "com.amazonaws.rds#SourceDatabaseNotSupportedFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_CUSTOM_DB_ENGINE_VERSION"] = ( + "CREATE_CUSTOM_DB_ENGINE_VERSION", + ( + "com.amazonaws.rds#CreateCustomDBEngineVersionFault", + "com.amazonaws.rds#CustomDBEngineVersionAlreadyExistsFault", + "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault", + "com.amazonaws.rds#CustomDBEngineVersionQuotaExceededFault", + "com.amazonaws.rds#Ec2ImagePropertiesNotSupportedFault", + "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_CAPACITY_RESERVATION"] = ( + "CREATE_DB_CAPACITY_RESERVATION", + ( + "com.amazonaws.rds#DBCapacityReservationAlreadyExistsFault", + "com.amazonaws.rds#DBCapacityReservationUnsupportedFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_CLUSTER"] = ( + "CREATE_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterAlreadyExistsFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBClusterQuotaExceededFault", + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InsufficientStorageClusterCapacityFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBSubnetGroupFault", + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_CLUSTER_ENDPOINT"] = ( + "CREATE_DB_CLUSTER_ENDPOINT", + ( + "com.amazonaws.rds#DBClusterEndpointAlreadyExistsFault", + "com.amazonaws.rds#DBClusterEndpointQuotaExceededFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_CLUSTER_PARAMETER_GROUP"] = ( + "CREATE_DB_CLUSTER_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_CLUSTER_SNAPSHOT"] = ( + "CREATE_DB_CLUSTER_SNAPSHOT", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_INSTANCE"] = ( + "CREATE_DB_INSTANCE", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#BackupPolicyNotFoundFault", + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_INSTANCE_READ_REPLICA"] = ( + "CREATE_DB_INSTANCE_READ_REPLICA", + ( + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotAllowedFault", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBSubnetGroupFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_PARAMETER_GROUP"] = ( + "CREATE_DB_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_PROXY"] = ( + "CREATE_DB_PROXY", + ( + "com.amazonaws.rds#DBProxyAlreadyExistsFault", + "com.amazonaws.rds#DBProxyQuotaExceededFault", + "com.amazonaws.rds#InvalidSubnet", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_PROXY_ENDPOINT"] = ( + "CREATE_DB_PROXY_ENDPOINT", + ( + "com.amazonaws.rds#DBProxyEndpointAlreadyExistsFault", + "com.amazonaws.rds#DBProxyEndpointQuotaExceededFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + "com.amazonaws.rds#InvalidSubnet", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_SECURITY_GROUP"] = ( + "CREATE_DB_SECURITY_GROUP", + ( + "com.amazonaws.rds#DBSecurityGroupAlreadyExistsFault", + "com.amazonaws.rds#DBSecurityGroupNotSupportedFault", + "com.amazonaws.rds#DBSecurityGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_SHARD_GROUP"] = ( + "CREATE_DB_SHARD_GROUP", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBShardGroupAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#MaxDBShardGroupLimitReached", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#UnsupportedDBEngineVersionFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_SNAPSHOT"] = ( + "CREATE_DB_SNAPSHOT", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_DB_SUBNET_GROUP"] = ( + "CREATE_DB_SUBNET_GROUP", + ( + "com.amazonaws.rds#DBSubnetGroupAlreadyExistsFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupQuotaExceededFault", + "com.amazonaws.rds#DBSubnetQuotaExceededFault", + "com.amazonaws.rds#InvalidSubnet", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_EVENT_SUBSCRIPTION"] = ( + "CREATE_EVENT_SUBSCRIPTION", + ( + "com.amazonaws.rds#EventSubscriptionQuotaExceededFault", + "com.amazonaws.rds#SNSInvalidTopicFault", + "com.amazonaws.rds#SNSNoAuthorizationFault", + "com.amazonaws.rds#SNSTopicArnNotFoundFault", + "com.amazonaws.rds#SourceNotFoundFault", + "com.amazonaws.rds#SubscriptionAlreadyExistFault", + "com.amazonaws.rds#SubscriptionCategoryNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_GLOBAL_CLUSTER"] = ( + "CREATE_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#GlobalClusterAlreadyExistsFault", + "com.amazonaws.rds#GlobalClusterQuotaExceededFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBShardGroupStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_INTEGRATION"] = ( + "CREATE_INTEGRATION", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#IntegrationAlreadyExistsFault", + "com.amazonaws.rds#IntegrationConflictOperationFault", + "com.amazonaws.rds#IntegrationQuotaExceededFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_OPTION_GROUP"] = ( + "CREATE_OPTION_GROUP", + ( + "com.amazonaws.rds#OptionGroupAlreadyExistsFault", + "com.amazonaws.rds#OptionGroupQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_TENANT_DATABASE"] = ( + "CREATE_TENANT_DATABASE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BLUE_GREEN_DEPLOYMENT"] = ( + "DELETE_BLUE_GREEN_DEPLOYMENT", + ( + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault", + "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_CUSTOM_DB_ENGINE_VERSION"] = ( + "DELETE_CUSTOM_DB_ENGINE_VERSION", + ( + "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault", + "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_CLUSTER"] = ( + "DELETE_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterAutomatedBackupQuotaExceededFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_CLUSTER_AUTOMATED_BACKUP"] = ( + "DELETE_DB_CLUSTER_AUTOMATED_BACKUP", + ( + "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterAutomatedBackupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_CLUSTER_ENDPOINT"] = ( + "DELETE_DB_CLUSTER_ENDPOINT", + ( + "com.amazonaws.rds#DBClusterEndpointNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterEndpointStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_CLUSTER_PARAMETER_GROUP"] = ( + "DELETE_DB_CLUSTER_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_CLUSTER_SNAPSHOT"] = ( + "DELETE_DB_CLUSTER_SNAPSHOT", + ( + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_INSTANCE"] = ( + "DELETE_DB_INSTANCE", + ( + "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_INSTANCE_AUTOMATED_BACKUP"] = ( + "DELETE_DB_INSTANCE_AUTOMATED_BACKUP", + ( + "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceAutomatedBackupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_PARAMETER_GROUP"] = ( + "DELETE_DB_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_PROXY"] = ( + "DELETE_DB_PROXY", + ( + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_PROXY_ENDPOINT"] = ( + "DELETE_DB_PROXY_ENDPOINT", + ( + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyEndpointStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_SECURITY_GROUP"] = ( + "DELETE_DB_SECURITY_GROUP", + ( + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_SHARD_GROUP"] = ( + "DELETE_DB_SHARD_GROUP", + ( + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBShardGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_SNAPSHOT"] = ( + "DELETE_DB_SNAPSHOT", + ( + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_DB_SUBNET_GROUP"] = ( + "DELETE_DB_SUBNET_GROUP", + ( + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault", + "com.amazonaws.rds#InvalidDBSubnetStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_EVENT_SUBSCRIPTION"] = ( + "DELETE_EVENT_SUBSCRIPTION", + ( + "com.amazonaws.rds#InvalidEventSubscriptionStateFault", + "com.amazonaws.rds#SubscriptionNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_GLOBAL_CLUSTER"] = ( + "DELETE_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_INTEGRATION"] = ( + "DELETE_INTEGRATION", + ( + "com.amazonaws.rds#IntegrationConflictOperationFault", + "com.amazonaws.rds#IntegrationNotFoundFault", + "com.amazonaws.rds#InvalidIntegrationStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_OPTION_GROUP"] = ( + "DELETE_OPTION_GROUP", + ( + "com.amazonaws.rds#InvalidOptionGroupStateFault", + "com.amazonaws.rds#OptionGroupNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_TENANT_DATABASE"] = ( + "DELETE_TENANT_DATABASE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#TenantDatabaseNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DEREGISTER_DB_PROXY_TARGETS"] = ( + "DEREGISTER_DB_PROXY_TARGETS", + ( + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#DBProxyTargetNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ACCOUNT_ATTRIBUTES"] = ( + "DESCRIBE_ACCOUNT_ATTRIBUTES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_BLUE_GREEN_DEPLOYMENTS"] = ( + "DESCRIBE_BLUE_GREEN_DEPLOYMENTS", + ("com.amazonaws.rds#BlueGreenDeploymentNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_CERTIFICATES"] = ( + "DESCRIBE_CERTIFICATES", + ("com.amazonaws.rds#CertificateNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CAPACITY_RESERVATIONS"] = ( + "DESCRIBE_DB_CAPACITY_RESERVATIONS", + ("com.amazonaws.rds#DBCapacityReservationNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS"] = ( + "DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS", + ("com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_BACKTRACKS"] = ( + "DESCRIBE_DB_CLUSTER_BACKTRACKS", + ( + "com.amazonaws.rds#DBClusterBacktrackNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_ENDPOINTS"] = ( + "DESCRIBE_DB_CLUSTER_ENDPOINTS", + ("com.amazonaws.rds#DBClusterNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS"] = ( + "DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS", + ("com.amazonaws.rds#DBParameterGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_PARAMETERS"] = ( + "DESCRIBE_DB_CLUSTER_PARAMETERS", + ("com.amazonaws.rds#DBParameterGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTERS"] = ( + "DESCRIBE_DB_CLUSTERS", + ("com.amazonaws.rds#DBClusterNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES"] = ( + "DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES", + ("com.amazonaws.rds#DBClusterSnapshotNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_CLUSTER_SNAPSHOTS"] = ( + "DESCRIBE_DB_CLUSTER_SNAPSHOTS", + ("com.amazonaws.rds#DBClusterSnapshotNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_ENGINE_VERSIONS"] = ( + "DESCRIBE_DB_ENGINE_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS"] = ( + "DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS", + ("com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_INSTANCES"] = ( + "DESCRIBE_DB_INSTANCES", + ("com.amazonaws.rds#DBInstanceNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_LOG_FILES"] = ( + "DESCRIBE_DB_LOG_FILES", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBInstanceNotReadyFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_MAJOR_ENGINE_VERSIONS"] = ( + "DESCRIBE_DB_MAJOR_ENGINE_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PARAMETER_GROUPS"] = ( + "DESCRIBE_DB_PARAMETER_GROUPS", + ("com.amazonaws.rds#DBParameterGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PARAMETERS"] = ( + "DESCRIBE_DB_PARAMETERS", + ("com.amazonaws.rds#DBParameterGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PROXIES"] = ( + "DESCRIBE_DB_PROXIES", + ("com.amazonaws.rds#DBProxyNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PROXY_ENDPOINTS"] = ( + "DESCRIBE_DB_PROXY_ENDPOINTS", + ( + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PROXY_TARGET_GROUPS"] = ( + "DESCRIBE_DB_PROXY_TARGET_GROUPS", + ( + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_PROXY_TARGETS"] = ( + "DESCRIBE_DB_PROXY_TARGETS", + ( + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#DBProxyTargetNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_RECOMMENDATIONS"] = ( + "DESCRIBE_DB_RECOMMENDATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SECURITY_GROUPS"] = ( + "DESCRIBE_DB_SECURITY_GROUPS", + ("com.amazonaws.rds#DBSecurityGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SHARD_GROUPS"] = ( + "DESCRIBE_DB_SHARD_GROUPS", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBShardGroupNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SNAPSHOT_ATTRIBUTES"] = ( + "DESCRIBE_DB_SNAPSHOT_ATTRIBUTES", + ("com.amazonaws.rds#DBSnapshotNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SNAPSHOTS"] = ( + "DESCRIBE_DB_SNAPSHOTS", + ("com.amazonaws.rds#DBSnapshotNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES"] = ( + "DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES", + ("com.amazonaws.rds#DBSnapshotNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_DB_SUBNET_GROUPS"] = ( + "DESCRIBE_DB_SUBNET_GROUPS", + ("com.amazonaws.rds#DBSubnetGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS"] = ( + "DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ENGINE_DEFAULT_PARAMETERS"] = ( + "DESCRIBE_ENGINE_DEFAULT_PARAMETERS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EVENT_CATEGORIES"] = ( + "DESCRIBE_EVENT_CATEGORIES", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EVENTS"] = ("DESCRIBE_EVENTS", (), ("aws.auth#sigv4",)) + +_operation_data["DESCRIBE_EVENT_SUBSCRIPTIONS"] = ( + "DESCRIBE_EVENT_SUBSCRIPTIONS", + ("com.amazonaws.rds#SubscriptionNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_EXPORT_TASKS"] = ( + "DESCRIBE_EXPORT_TASKS", + ("com.amazonaws.rds#ExportTaskNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_GLOBAL_CLUSTERS"] = ( + "DESCRIBE_GLOBAL_CLUSTERS", + ("com.amazonaws.rds#GlobalClusterNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_INTEGRATIONS"] = ( + "DESCRIBE_INTEGRATIONS", + ("com.amazonaws.rds#IntegrationNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_OPTION_GROUP_OPTIONS"] = ( + "DESCRIBE_OPTION_GROUP_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_OPTION_GROUPS"] = ( + "DESCRIBE_OPTION_GROUPS", + ("com.amazonaws.rds#OptionGroupNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS"] = ( + "DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_PENDING_MAINTENANCE_ACTIONS"] = ( + "DESCRIBE_PENDING_MAINTENANCE_ACTIONS", + ("com.amazonaws.rds#ResourceNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_DB_INSTANCES"] = ( + "DESCRIBE_RESERVED_DB_INSTANCES", + ("com.amazonaws.rds#ReservedDBInstanceNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS"] = ( + "DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS", + ("com.amazonaws.rds#ReservedDBInstancesOfferingNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS"] = ( + "DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_SOURCE_REGIONS"] = ( + "DESCRIBE_SOURCE_REGIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_TENANT_DATABASES"] = ( + "DESCRIBE_TENANT_DATABASES", + ("com.amazonaws.rds#DBInstanceNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS"] = ( + "DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DISABLE_HTTP_ENDPOINT"] = ( + "DISABLE_HTTP_ENDPOINT", + ( + "com.amazonaws.rds#InvalidResourceStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["DOWNLOAD_DB_LOG_FILE_PORTION"] = ( + "DOWNLOAD_DB_LOG_FILE_PORTION", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBInstanceNotReadyFault", + "com.amazonaws.rds#DBLogFileNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["ENABLE_HTTP_ENDPOINT"] = ( + "ENABLE_HTTP_ENDPOINT", + ( + "com.amazonaws.rds#InvalidResourceStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["FAILOVER_DB_CLUSTER"] = ( + "FAILOVER_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["FAILOVER_GLOBAL_CLUSTER"] = ( + "FAILOVER_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_TAGS_FOR_RESOURCE"] = ( + "LIST_TAGS_FOR_RESOURCE", + ( + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault", + "com.amazonaws.rds#IntegrationNotFoundFault", + "com.amazonaws.rds#TenantDatabaseNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_ACTIVITY_STREAM"] = ( + "MODIFY_ACTIVITY_STREAM", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CERTIFICATES"] = ( + "MODIFY_CERTIFICATES", + ("com.amazonaws.rds#CertificateNotFoundFault",), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CURRENT_DB_CLUSTER_CAPACITY"] = ( + "MODIFY_CURRENT_DB_CLUSTER_CAPACITY", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterCapacityFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_CUSTOM_DB_ENGINE_VERSION"] = ( + "MODIFY_CUSTOM_DB_ENGINE_VERSION", + ( + "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault", + "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_CAPACITY_RESERVATION"] = ( + "MODIFY_DB_CAPACITY_RESERVATION", + ( + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_CLUSTER"] = ( + "MODIFY_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterAlreadyExistsFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault", + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotAvailableFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_CLUSTER_ENDPOINT"] = ( + "MODIFY_DB_CLUSTER_ENDPOINT", + ( + "com.amazonaws.rds#DBClusterEndpointNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterEndpointStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_CLUSTER_PARAMETER_GROUP"] = ( + "MODIFY_DB_CLUSTER_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE"] = ( + "MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE", + ( + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#SharedSnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_INSTANCE"] = ( + "MODIFY_DB_INSTANCE", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#BackupPolicyNotFoundFault", + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBUpgradeDependencyFailureFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_PARAMETER_GROUP"] = ( + "MODIFY_DB_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_PROXY"] = ( + "MODIFY_DB_PROXY", + ( + "com.amazonaws.rds#DBProxyAlreadyExistsFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_PROXY_ENDPOINT"] = ( + "MODIFY_DB_PROXY_ENDPOINT", + ( + "com.amazonaws.rds#DBProxyEndpointAlreadyExistsFault", + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyEndpointStateFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_PROXY_TARGET_GROUP"] = ( + "MODIFY_DB_PROXY_TARGET_GROUP", + ( + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_RECOMMENDATION"] = ( + "MODIFY_DB_RECOMMENDATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_SHARD_GROUP"] = ( + "MODIFY_DB_SHARD_GROUP", + ( + "com.amazonaws.rds#DBShardGroupAlreadyExistsFault", + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_SNAPSHOT"] = ( + "MODIFY_DB_SNAPSHOT", + ( + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_SNAPSHOT_ATTRIBUTE"] = ( + "MODIFY_DB_SNAPSHOT_ATTRIBUTE", + ( + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#SharedSnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_DB_SUBNET_GROUP"] = ( + "MODIFY_DB_SUBNET_GROUP", + ( + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetQuotaExceededFault", + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#SubnetAlreadyInUse", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_EVENT_SUBSCRIPTION"] = ( + "MODIFY_EVENT_SUBSCRIPTION", + ( + "com.amazonaws.rds#EventSubscriptionQuotaExceededFault", + "com.amazonaws.rds#SNSInvalidTopicFault", + "com.amazonaws.rds#SNSNoAuthorizationFault", + "com.amazonaws.rds#SNSTopicArnNotFoundFault", + "com.amazonaws.rds#SubscriptionCategoryNotFoundFault", + "com.amazonaws.rds#SubscriptionNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_GLOBAL_CLUSTER"] = ( + "MODIFY_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#GlobalClusterAlreadyExistsFault", + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_INTEGRATION"] = ( + "MODIFY_INTEGRATION", + ( + "com.amazonaws.rds#IntegrationConflictOperationFault", + "com.amazonaws.rds#IntegrationNotFoundFault", + "com.amazonaws.rds#InvalidIntegrationStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_OPTION_GROUP"] = ( + "MODIFY_OPTION_GROUP", + ( + "com.amazonaws.rds#InvalidOptionGroupStateFault", + "com.amazonaws.rds#OptionGroupNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["MODIFY_TENANT_DATABASE"] = ( + "MODIFY_TENANT_DATABASE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault", + "com.amazonaws.rds#TenantDatabaseNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PROMOTE_READ_REPLICA"] = ( + "PROMOTE_READ_REPLICA", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PROMOTE_READ_REPLICA_DB_CLUSTER"] = ( + "PROMOTE_READ_REPLICA_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PURCHASE_RESERVED_DB_INSTANCES_OFFERING"] = ( + "PURCHASE_RESERVED_DB_INSTANCES_OFFERING", + ( + "com.amazonaws.rds#ReservedDBInstanceAlreadyExistsFault", + "com.amazonaws.rds#ReservedDBInstanceQuotaExceededFault", + "com.amazonaws.rds#ReservedDBInstancesOfferingNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REBOOT_DB_CLUSTER"] = ( + "REBOOT_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REBOOT_DB_INSTANCE"] = ( + "REBOOT_DB_INSTANCE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REBOOT_DB_SHARD_GROUP"] = ( + "REBOOT_DB_SHARD_GROUP", + ( + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBShardGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REGISTER_DB_PROXY_TARGETS"] = ( + "REGISTER_DB_PROXY_TARGETS", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetAlreadyRegisteredFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#InsufficientAvailableIPsInSubnetFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBProxyStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_FROM_GLOBAL_CLUSTER"] = ( + "REMOVE_FROM_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_ROLE_FROM_DB_CLUSTER"] = ( + "REMOVE_ROLE_FROM_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterRoleNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_ROLE_FROM_DB_INSTANCE"] = ( + "REMOVE_ROLE_FROM_DB_INSTANCE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBInstanceRoleNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION"] = ( + "REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION", + ( + "com.amazonaws.rds#SourceNotFoundFault", + "com.amazonaws.rds#SubscriptionNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REMOVE_TAGS_FROM_RESOURCE"] = ( + "REMOVE_TAGS_FROM_RESOURCE", + ( + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBProxyEndpointNotFoundFault", + "com.amazonaws.rds#DBProxyNotFoundFault", + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault", + "com.amazonaws.rds#DBShardGroupNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault", + "com.amazonaws.rds#IntegrationNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterEndpointStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#TenantDatabaseNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_DB_CLUSTER_PARAMETER_GROUP"] = ( + "RESET_DB_CLUSTER_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESET_DB_PARAMETER_GROUP"] = ( + "RESET_DB_PARAMETER_GROUP", + ( + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBParameterGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_CLUSTER_FROM_S3"] = ( + "RESTORE_DB_CLUSTER_FROM_S3", + ( + "com.amazonaws.rds#DBClusterAlreadyExistsFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBClusterQuotaExceededFault", + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InsufficientStorageClusterCapacityFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault", + "com.amazonaws.rds#InvalidS3BucketFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_CLUSTER_FROM_SNAPSHOT"] = ( + "RESTORE_DB_CLUSTER_FROM_SNAPSHOT", + ( + "com.amazonaws.rds#DBClusterAlreadyExistsFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBClusterQuotaExceededFault", + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault", + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InsufficientDBClusterCapacityFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InsufficientStorageClusterCapacityFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#InvalidRestoreFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_CLUSTER_TO_POINT_IN_TIME"] = ( + "RESTORE_DB_CLUSTER_TO_POINT_IN_TIME", + ( + "com.amazonaws.rds#DBClusterAlreadyExistsFault", + "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault", + "com.amazonaws.rds#DBClusterQuotaExceededFault", + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault", + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InsufficientDBClusterCapacityFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InsufficientStorageClusterCapacityFault", + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#InvalidRestoreFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT"] = ( + "RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#BackupPolicyNotFoundFault", + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBSnapshotStateFault", + "com.amazonaws.rds#InvalidRestoreFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_INSTANCE_FROM_S3"] = ( + "RESTORE_DB_INSTANCE_FROM_S3", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#BackupPolicyNotFoundFault", + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidS3BucketFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_DB_INSTANCE_TO_POINT_IN_TIME"] = ( + "RESTORE_DB_INSTANCE_TO_POINT_IN_TIME", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#BackupPolicyNotFoundFault", + "com.amazonaws.rds#CertificateNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBInstanceAlreadyExistsFault", + "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBParameterGroupNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#DomainNotFoundFault", + "com.amazonaws.rds#InstanceQuotaExceededFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidRestoreFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#NetworkTypeNotSupported", + "com.amazonaws.rds#OptionGroupNotFoundFault", + "com.amazonaws.rds#PointInTimeRestoreNotEnabledFault", + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault", + "com.amazonaws.rds#StorageQuotaExceededFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["REVOKE_DB_SECURITY_GROUP_INGRESS"] = ( + "REVOKE_DB_SECURITY_GROUP_INGRESS", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#DBSecurityGroupNotFoundFault", + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_ACTIVITY_STREAM"] = ( + "START_ACTIVITY_STREAM", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_DB_CLUSTER"] = ( + "START_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBShardGroupStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_DB_INSTANCE"] = ( + "START_DB_INSTANCE", + ( + "com.amazonaws.rds#AuthorizationNotFoundFault", + "com.amazonaws.rds#DBCapacityReservationNotFoundFault", + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs", + "com.amazonaws.rds#DBSubnetGroupNotFoundFault", + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidSubnet", + "com.amazonaws.rds#InvalidVPCNetworkStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#VpcEncryptionControlViolationException", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION"] = ( + "START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION", + ( + "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceAutomatedBackupStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + "com.amazonaws.rds#StorageTypeNotSupportedFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["START_EXPORT_TASK"] = ( + "START_EXPORT_TASK", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault", + "com.amazonaws.rds#DBSnapshotNotFoundFault", + "com.amazonaws.rds#ExportTaskAlreadyExistsFault", + "com.amazonaws.rds#IamRoleMissingPermissionsFault", + "com.amazonaws.rds#IamRoleNotFoundFault", + "com.amazonaws.rds#InvalidExportOnlyFault", + "com.amazonaws.rds#InvalidExportSourceStateFault", + "com.amazonaws.rds#InvalidS3BucketFault", + "com.amazonaws.rds#KMSKeyNotAccessibleFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_ACTIVITY_STREAM"] = ( + "STOP_ACTIVITY_STREAM", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#ResourceNotFoundFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_DB_CLUSTER"] = ( + "STOP_DB_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#InvalidDBShardGroupStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_DB_INSTANCE"] = ( + "STOP_DB_INSTANCE", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault", + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + "com.amazonaws.rds#SnapshotQuotaExceededFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION"] = ( + "STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SWITCHOVER_BLUE_GREEN_DEPLOYMENT"] = ( + "SWITCHOVER_BLUE_GREEN_DEPLOYMENT", + ( + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault", + "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SWITCHOVER_GLOBAL_CLUSTER"] = ( + "SWITCHOVER_GLOBAL_CLUSTER", + ( + "com.amazonaws.rds#DBClusterNotFoundFault", + "com.amazonaws.rds#GlobalClusterNotFoundFault", + "com.amazonaws.rds#InvalidDBClusterStateFault", + "com.amazonaws.rds#InvalidGlobalClusterStateFault", + ), + ("aws.auth#sigv4",), +) + +_operation_data["SWITCHOVER_READ_REPLICA"] = ( + "SWITCHOVER_READ_REPLICA", + ( + "com.amazonaws.rds#DBInstanceNotFoundFault", + "com.amazonaws.rds#InvalidDBInstanceStateFault", + ), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/models.pyi b/clients/aws-sdk-rds/src/aws_sdk_rds/models.pyi new file mode 100644 index 00000000..264c28c3 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/models.pyi @@ -0,0 +1,30100 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self + +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AccountQuota(_SerdeShape): + """ + Describes a quota for an Amazon Web Services account. + + The following are account quotas: + + - `AllocatedStorage` - The total allocated storage per account, in GiB. + The used value is the total allocated storage in the account, in GiB. + + - `AuthorizationsPerDBSecurityGroup` - The number of ingress rules per + DB security group. The used value is the highest number of ingress + rules in a DB security group in the account. Other DB security groups + in the account might have a lower number of ingress rules. + + - `CustomEndpointsPerDBCluster` - The number of custom endpoints per DB + cluster. The used value is the highest number of custom endpoints in a + DB clusters in the account. Other DB clusters in the account might + have a lower number of custom endpoints. + + - `DBClusterParameterGroups` - The number of DB cluster parameter groups + per account, excluding default parameter groups. The used value is the + count of nondefault DB cluster parameter groups in the account. + + - `DBClusterRoles` - The number of associated Amazon Web Services + Identity and Access Management (IAM) roles per DB cluster. The used + value is the highest number of associated IAM roles for a DB cluster + in the account. Other DB clusters in the account might have a lower + number of associated IAM roles. + + - `DBClusters` - The number of DB clusters per account. The used value + is the count of DB clusters in the account. + + - `DBInstanceRoles` - The number of associated IAM roles per DB + instance. The used value is the highest number of associated IAM roles + for a DB instance in the account. Other DB instances in the account + might have a lower number of associated IAM roles. + + - `DBInstances` - The number of DB instances per account. The used value + is the count of the DB instances in the account. + + Amazon RDS DB instances, Amazon Aurora DB instances, Amazon Neptune + instances, and Amazon DocumentDB instances apply to this quota. + + - `DBParameterGroups` - The number of DB parameter groups per account, + excluding default parameter groups. The used value is the count of + nondefault DB parameter groups in the account. + + - `DBSecurityGroups` - The number of DB security groups (not VPC + security groups) per account, excluding the default security group. + The used value is the count of nondefault DB security groups in the + account. + + - `DBSubnetGroups` - The number of DB subnet groups per account. The + used value is the count of the DB subnet groups in the account. + + - `EventSubscriptions` - The number of event subscriptions per account. + The used value is the count of the event subscriptions in the account. + + - `ManualClusterSnapshots` - The number of manual DB cluster snapshots + per account. The used value is the count of the manual DB cluster + snapshots in the account. + + - `ManualSnapshots` - The number of manual DB instance snapshots per + account. The used value is the count of the manual DB instance + snapshots in the account. + + - `OptionGroups` - The number of DB option groups per account, excluding + default option groups. The used value is the count of nondefault DB + option groups in the account. + + - `ReadReplicasPerMaster` - The number of read replicas per DB instance. + The used value is the highest number of read replicas for a DB + instance in the account. Other DB instances in the account might have + a lower number of read replicas. + + - `ReservedDBInstances` - The number of reserved DB instances per + account. The used value is the count of the active reserved DB + instances in the account. + + - `SubnetsPerDBSubnetGroup` - The number of subnets per DB subnet group. + The used value is highest number of subnets for a DB subnet group in + the account. Other DB subnet groups in the account might have a lower + number of subnets. + + For more information, see [Quotas for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html) + in the *Amazon RDS User Guide* and [Quotas for Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html) + in the *Amazon Aurora User Guide*. + """ + + account_quota_name: str | None = ... + """The name of the Amazon RDS quota for this Amazon Web Services account.""" + used: int | None = ... + """The amount currently used toward the quota maximum.""" + max: int | None = ... + """The maximum allowed value for the quota.""" + +class ActivityStreamMode(UnknownEnumMixin, StrEnum): + SYNC = "sync" + ASYNC_ = "async" + +class ActivityStreamPolicyStatus(UnknownEnumMixin, StrEnum): + LOCKED = "locked" + UNLOCKED = "unlocked" + LOCKING_POLICY = "locking-policy" + UNLOCKING_POLICY = "unlocking-policy" + +class ActivityStreamStatus(UnknownEnumMixin, StrEnum): + STOPPED = "stopped" + STARTING = "starting" + STARTED = "started" + STOPPING = "stopping" + +@dataclass(kw_only=True) +class AdditionalStorageVolume(_SerdeShape): + """ + Contains details about an additional storage volume for a DB instance. + RDS support additional storage volumes for RDS for Oracle and RDS for + SQL Server. + """ + + volume_name: str | None = ... + """ + The name of the additional storage volume. + + Valid Values: `RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4` + """ + allocated_storage: int | None = ... + """ + The amount of storage allocated for the additional storage volume, in + gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 + TiB). + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) provisioned for the + additional storage volume. + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which RDS can automatically scale + the storage of the additional storage volume. + """ + storage_throughput: int | None = ... + """ + The storage throughput value for the additional storage volume, in + mebibytes per second (MiBps). This setting applies only to the General + Purpose SSD (`gp3`) storage type. + """ + storage_type: str | None = ... + """ + The storage type for the additional storage volume. + + Valid Values: `GP3 | IO2` + """ + +@dataclass(kw_only=True) +class AdditionalStorageVolumeOutput(_SerdeShape): + """ + Contains information about an additional storage volume for a DB + instance. + """ + + volume_name: str | None = ... + """The name of the additional storage volume.""" + storage_volume_status: str | None = ... + """ + The status of the additional storage volume. + + Valid Values: + `ACTIVE | CREATING | DELETING | MODIFYING | NOT-IN-USE | STORAGE-OPTIMIZATION | VOLUME-FULL` + """ + storage_operation_status: str | None = ... + """ + The status of an in-progress storage operation on the additional storage + volume. This field appears only while a storage operation is in + progress. It isn't present when no storage operation is active. + Possible values: + + - `Initializing` - The volume is initializing from a snapshot, such as + during a snapshot restore, point-in-time restore, read replica + creation, or blue/green deployment. Performance can be lower than + provisioned until initialization completes. + + - `Optimizing` - The volume is optimizing following a storage scaling or + modification operation. + """ + storage_operation_percent_progress: int | None = ... + """ + The percentage of the in-progress storage operation on the additional + storage volume that has completed, from `0` to `100`. This field appears + only while a storage operation is in progress. It isn't present when no + storage operation is active. + """ + allocated_storage: int | None = ... + """ + The amount of storage allocated for the additional storage volume, in + gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 + TiB). + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) provisioned for the + additional storage volume. + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which RDS can automatically scale + the storage of the additional storage volume. + """ + storage_throughput: int | None = ... + """ + The storage throughput value for the additional storage volume, in + mebibytes per second (MiBps). + """ + storage_type: str | None = ... + """ + The storage type for the additional storage volume. + + Valid Values: `GP3 | IO2` + """ + +@dataclass(kw_only=True) +class AddRoleToDBClusterInput(_SerdeShape): + """Dataclass for AddRoleToDBClusterInput structure.""" + + db_cluster_identifier: str | None = ... + """The name of the DB cluster to associate the IAM role with.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to associate with the + Aurora DB cluster, for example + `arn:aws:iam::123456789012:role/AuroraAccessRole`. + """ + feature_name: str | None = ... + """ + The name of the feature for the DB cluster that the IAM role is to be + associated with. For information about supported feature names, see + DBEngineVersion. + """ + +@dataclass(kw_only=True) +class AddRoleToDBClusterOutput(_SerdeShape): + """Dataclass for AddRoleToDBClusterOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddRoleToDBInstanceInput(_SerdeShape): + """Dataclass for AddRoleToDBInstanceInput structure.""" + + db_instance_identifier: str | None = ... + """The name of the DB instance to associate the IAM role with.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to associate with the DB + instance, for example `arn:aws:iam::123456789012:role/AccessRole`. + """ + feature_name: str | None = ... + """ + The name of the feature for the DB instance that the IAM role is to be + associated with. For information about supported feature names, see + DBEngineVersion. + """ + +@dataclass(kw_only=True) +class AddRoleToDBInstanceOutput(_SerdeShape): + """Dataclass for AddRoleToDBInstanceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddSourceIdentifierToSubscriptionInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """ + The name of the RDS event notification subscription you want to add a + source identifier to. + """ + source_identifier: str | None = ... + """ + The identifier of the event source to be added. + + Constraints: + + - If the source type is a DB instance, a `DBInstanceIdentifier` value + must be supplied. + + - If the source type is a DB cluster, a `DBClusterIdentifier` value must + be supplied. + + - If the source type is a DB parameter group, a `DBParameterGroupName` + value must be supplied. + + - If the source type is a DB security group, a `DBSecurityGroupName` + value must be supplied. + + - If the source type is a DB snapshot, a `DBSnapshotIdentifier` value + must be supplied. + + - If the source type is a DB cluster snapshot, a + `DBClusterSnapshotIdentifier` value must be supplied. + + - If the source type is an RDS Proxy, a `DBProxyName` value must be + supplied. + """ + +@dataclass(kw_only=True) +class AddSourceIdentifierToSubscriptionOutput(_SerdeShape): + """Dataclass for AddSourceIdentifierToSubscriptionOutput structure.""" + + event_subscription: EventSubscription | None = ... + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AddTagsToResourceInput(_SerdeShape): + """""" + + resource_name: str | None = ... + """ + The Amazon RDS resource that the tags are added to. This value is an + Amazon Resource Name (ARN). For information about creating an ARN, see + [Constructing an RDS Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing). + """ + tags: list[Tag] | None = ... + """The tags to be assigned to the Amazon RDS resource.""" + +@dataclass(kw_only=True) +class AddTagsToResourceOutput(_SerdeShape): + """Dataclass for AddTagsToResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ApplyMethod(UnknownEnumMixin, StrEnum): + IMMEDIATE = "immediate" + PENDING_REBOOT = "pending-reboot" + +@dataclass(kw_only=True) +class ApplyPendingMaintenanceActionInput(_SerdeShape): + """""" + + resource_identifier: str | None = ... + """ + The RDS Amazon Resource Name (ARN) of the resource that the pending + maintenance action applies to. For information about creating an ARN, + see [Constructing an RDS Amazon Resource Name + (ARN)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing). + """ + apply_action: str | None = ... + """ + The pending maintenance action to apply to this resource. + + Valid Values: + + - `ca-certificate-rotation` + + - `db-upgrade` + + - `hardware-maintenance` + + - `os-upgrade` + + - `system-update` + + For more information about these actions, see [Maintenance actions for + Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-aurora) + or [Maintenance actions for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-rds). + """ + opt_in_type: str | None = ... + """ + A value that specifies the type of opt-in request, or undoes an opt-in + request. An opt-in request of type `immediate` can't be undone. + + Valid Values: + + - `immediate` - Apply the maintenance action immediately. + + - `next-maintenance` - Apply the maintenance action during the next + maintenance window for the resource. + + - `undo-opt-in` - Cancel any existing `next-maintenance` opt-in + requests. + """ + +@dataclass(kw_only=True) +class ApplyPendingMaintenanceActionOutput(_SerdeShape): + """Dataclass for ApplyPendingMaintenanceActionOutput structure.""" + + resource_pending_maintenance_actions: ResourcePendingMaintenanceActions | None = ... + """Describes the pending maintenance actions for a resource.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AuditPolicyState(UnknownEnumMixin, StrEnum): + LOCKED_POLICY = "locked" + UNLOCKED_POLICY = "unlocked" + +@dataclass(kw_only=True) +class AuthorizationAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified CIDR IP range or Amazon EC2 security group is already + authorized for the specified DB security group. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AuthorizationNotFoundFault(ServiceError, _SerdeShape): + """ + The specified CIDR IP range or Amazon EC2 security group might not be + authorized for the specified DB security group. + + Or, RDS might not be authorized to perform necessary actions using IAM + on your behalf. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AuthorizationQuotaExceededFault(ServiceError, _SerdeShape): + """The DB security group authorization quota has been reached.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AuthorizeDBSecurityGroupIngressInput(_SerdeShape): + """""" + + db_security_group_name: str | None = ... + """The name of the DB security group to add authorization to.""" + cidrip: str | None = ... + """The IP range to authorize.""" + ec2_security_group_name: str | None = ... + """ + Name of the EC2 security group to authorize. For VPC DB security groups, + `EC2SecurityGroupId` must be provided. Otherwise, + `EC2SecurityGroupOwnerId` and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + ec2_security_group_id: str | None = ... + """ + Id of the EC2 security group to authorize. For VPC DB security groups, + `EC2SecurityGroupId` must be provided. Otherwise, + `EC2SecurityGroupOwnerId` and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + ec2_security_group_owner_id: str | None = ... + """ + Amazon Web Services account number of the owner of the EC2 security + group specified in the `EC2SecurityGroupName` parameter. The Amazon Web + Services access key ID isn't an acceptable value. For VPC DB security + groups, `EC2SecurityGroupId` must be provided. Otherwise, + `EC2SecurityGroupOwnerId` and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + +@dataclass(kw_only=True) +class AuthorizeDBSecurityGroupIngressOutput(_SerdeShape): + """Dataclass for AuthorizeDBSecurityGroupIngressOutput structure.""" + + db_security_group: DBSecurityGroup | None = ... + """ + Contains the details for an Amazon RDS DB security group. + + This data type is used as a response element in the + `DescribeDBSecurityGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class AuthScheme(UnknownEnumMixin, StrEnum): + SECRETS = "SECRETS" + +class AutomationMode(UnknownEnumMixin, StrEnum): + FULL = "full" + ALL_PAUSED = "all-paused" + +@dataclass(kw_only=True) +class AvailabilityZone(_SerdeShape): + """ + Contains Availability Zone information. + + This data type is used as an element in the `OrderableDBInstanceOption` + data type. + """ + + name: str | None = ... + """The name of the Availability Zone.""" + +@dataclass(kw_only=True) +class AvailableAdditionalStorageVolumesOption(_SerdeShape): + """ + Contains the available options for additional storage volumes for a DB + instance class. + """ + + supports_storage_autoscaling: bool | None = ... + """ + Indicates whether the additional storage volume supports storage + autoscaling. + """ + supports_storage_throughput: bool | None = ... + """ + Indicates whether the additional storage volume supports configurable + storage throughput. + """ + supports_iops: bool | None = ... + """ + Indicates whether the additional storage volume supports provisioned + IOPS. + """ + storage_type: str | None = ... + """ + The storage type for the additional storage volume. + + Valid Values: `GP3 | IO2` + """ + min_storage_size: int | None = ... + """ + The minimum amount of storage that you can allocate for the additional + storage volume, in gibibytes (GiB). + """ + max_storage_size: int | None = ... + """ + The maximum amount of storage that you can allocate for the additional + storage volume, in gibibytes (GiB). + """ + min_iops: int | None = ... + """ + The minimum number of I/O operations per second (IOPS) that the + additional storage volume supports. + """ + max_iops: int | None = ... + """ + The maximum number of I/O operations per second (IOPS) that the + additional storage volume supports. + """ + min_iops_per_gib: float | None = ... + """ + The minimum ratio of I/O operations per second (IOPS) to gibibytes (GiB) + of storage for the additional storage volume. + """ + max_iops_per_gib: float | None = ... + """ + The maximum ratio of I/O operations per second (IOPS) to gibibytes (GiB) + of storage for the additional storage volume. + """ + min_storage_throughput: int | None = ... + """ + The minimum storage throughput that the additional storage volume + supports, in mebibytes per second (MiBps). + """ + max_storage_throughput: int | None = ... + """ + The maximum storage throughput that the additional storage volume + supports, in mebibytes per second (MiBps). + """ + +@dataclass(kw_only=True) +class AvailableCapacityPerAvailabilityZone(_SerdeShape): + """ + Contains the unused capacity of a DB capacity reservation in one + Availability Zone. + + This data type is used as a response element in the following + operations: + + - `CancelDBCapacityReservation` + + - `CreateDBCapacityReservation` + + - `DescribeDBCapacityReservations` + + - `ModifyDBCapacityReservation` + """ + + availability_zone: str | None = ... + """The name of the Availability Zone.""" + available_capacity: int | None = ... + """ + The number of DB instances that remain available in this Availability + Zone. Amazon RDS decreases this value when a DB instance takes a unit of + reserved capacity in this Availability Zone, and it increases this value + when a DB instance releases that unit. + + A DB instance with a pending modification also holds a unit of reserved + capacity. A DB instance has a pending modification when Amazon RDS + accepts a change to the DB instance and applies that change later, + during the maintenance window. Amazon RDS holds the unit from the time + that it accepts the request. To find a DB instance with a pending + modification, check `PendingModifiedValues` in the response of + `DescribeDBInstances`. + + Amazon RDS reports available capacity only for a reservation that is in + the `active` state and not past its end date. Otherwise, this value is + `0`. + """ + +@dataclass(kw_only=True) +class AvailableProcessorFeature(_SerdeShape): + """ + Contains the available processor feature information for the DB instance + class of a DB instance. + + For more information, see [Configuring the Processor of the DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#USER_ConfigureProcessor) + in the *Amazon RDS User Guide.* + """ + + name: str | None = ... + """ + The name of the processor feature. Valid names are `coreCount` and + `threadsPerCore`. + """ + default_value: str | None = ... + """The default value for the processor feature of the DB instance class.""" + allowed_values: str | None = ... + """The allowed values for the processor feature of the DB instance class.""" + +@dataclass(kw_only=True) +class BacktrackDBClusterInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster to be backtracked. This + parameter is stored as a lowercase string. + + Constraints: + + - Must contain from 1 to 63 alphanumeric characters or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster1` + """ + backtrack_to: datetime | None = ... + """ + The timestamp of the time to backtrack the DB cluster to, specified in + ISO 8601 format. For more information about ISO 8601, see the [ISO8601 + Wikipedia page.](http://en.wikipedia.org/wiki/ISO_8601) + + Note: + If the specified time isn't a consistent time for the DB cluster, + Aurora automatically chooses the nearest possible consistent time for + the DB cluster. + + Constraints: + + - Must contain a valid ISO 8601 timestamp. + + - Can't contain a timestamp set in the future. + + Example: `2017-07-08T18:00Z` + """ + force: bool | None = ... + """ + Specifies whether to force the DB cluster to backtrack when binary + logging is enabled. Otherwise, an error occurs when binary logging is + enabled. + """ + use_earliest_time_on_point_in_time_unavailable: bool | None = ... + """ + Specifies whether to backtrack the DB cluster to the earliest possible + backtrack time when *BacktrackTo* is set to a timestamp earlier than the + earliest backtrack time. When this parameter is disabled and + *BacktrackTo* is set to a timestamp earlier than the earliest backtrack + time, an error occurs. + """ + +@dataclass(kw_only=True) +class BacktrackDBClusterOutput(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeDBClusterBacktracks` action. + """ + + db_cluster_identifier: str | None = ... + """ + Contains a user-supplied DB cluster identifier. This identifier is the + unique key that identifies a DB cluster. + """ + backtrack_identifier: str | None = ... + """Contains the backtrack identifier.""" + backtrack_to: datetime | None = ... + """The timestamp of the time to which the DB cluster was backtracked.""" + backtracked_from: datetime | None = ... + """The timestamp of the time from which the DB cluster was backtracked.""" + backtrack_request_creation_time: datetime | None = ... + """The timestamp of the time at which the backtrack was requested.""" + status: str | None = ... + """ + The status of the backtrack. This property returns one of the following + values: + + - `applying` - The backtrack is currently being applied to or rolled + back from the DB cluster. + + - `completed` - The backtrack has successfully been applied to or rolled + back from the DB cluster. + + - `failed` - An error occurred while the backtrack was applied to or + rolled back from the DB cluster. + + - `pending` - The backtrack is currently pending application to or + rollback from the DB cluster. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BackupPolicyNotFoundFault(ServiceError, _SerdeShape): + """""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BlueGreenDeployment(_SerdeShape): + """ + Details about a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + + blue_green_deployment_identifier: str | None = ... + """The unique identifier of the blue/green deployment.""" + blue_green_deployment_name: str | None = ... + """The user-supplied name of the blue/green deployment.""" + source: str | None = ... + """ + The source database for the blue/green deployment. + + Before switchover, the source database is the production database in the + blue environment. + """ + target: str | None = ... + """ + The target database for the blue/green deployment. + + Before switchover, the target database is the clone database in the + green environment. + """ + switchover_details: list[SwitchoverDetail] | None = ... + """ + The details about each source and target resource in the blue/green + deployment. + """ + tasks: list[BlueGreenDeploymentTask] | None = ... + """ + Either tasks to be performed or tasks that have been completed on the + target database before switchover. + """ + status: str | None = ... + """ + The status of the blue/green deployment. + + Valid Values: + + - `PROVISIONING` - Resources are being created in the green environment. + + - `AVAILABLE` - Resources are available in the green environment. + + - `SWITCHOVER_IN_PROGRESS` - The deployment is being switched from the + blue environment to the green environment. + + - `SWITCHOVER_COMPLETED` - Switchover from the blue environment to the + green environment is complete. + + - `INVALID_CONFIGURATION` - Resources in the green environment are + invalid, so switchover isn't possible. + + - `SWITCHOVER_FAILED` - Switchover was attempted but failed. + + - `DELETING` - The blue/green deployment is being deleted. + """ + status_details: str | None = ... + """Additional information about the status of the blue/green deployment.""" + create_time: datetime | None = ... + """ + The time when the blue/green deployment was created, in Universal + Coordinated Time (UTC). + """ + delete_time: datetime | None = ... + """ + The time when the blue/green deployment was deleted, in Universal + Coordinated Time (UTC). + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class BlueGreenDeploymentAlreadyExistsFault(ServiceError, _SerdeShape): + """A blue/green deployment with the specified name already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BlueGreenDeploymentNotFoundFault(ServiceError, _SerdeShape): + """ + `BlueGreenDeploymentIdentifier` doesn't refer to an existing blue/green + deployment. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BlueGreenDeploymentTask(_SerdeShape): + """ + Details about a task for a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + + name: str | None = ... + """The name of the blue/green deployment task.""" + status: str | None = ... + """ + The status of the blue/green deployment task. + + Valid Values: + + - `PENDING` - The resource is being prepared for deployment. + + - `IN_PROGRESS` - The resource is being deployed. + + - `COMPLETED` - The resource has been deployed. + + - `FAILED` - Deployment of the resource failed. + """ + +@dataclass(kw_only=True) +class CancelDBCapacityReservationInput(_SerdeShape): + """Dataclass for CancelDBCapacityReservationInput structure.""" + + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to cancel. You + can specify the identifier, which has the prefix `dbcr-`, or the + reservation name. + """ + +@dataclass(kw_only=True) +class CancelDBCapacityReservationOutput(_SerdeShape): + """Dataclass for CancelDBCapacityReservationOutput structure.""" + + db_capacity_reservation: DBCapacityReservation | None = ... + """Contains the details of the canceled DB capacity reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CancelExportTaskInput(_SerdeShape): + """Dataclass for CancelExportTaskInput structure.""" + + export_task_identifier: str | None = ... + """The identifier of the snapshot or cluster export task to cancel.""" + +@dataclass(kw_only=True) +class CancelExportTaskOutput(_SerdeShape): + """ + Contains the details of a snapshot or cluster export to Amazon S3. + + This data type is used as a response element in the + `DescribeExportTasks` operation. + """ + + export_task_identifier: str | None = ... + """ + A unique identifier for the snapshot or cluster export task. This ID + isn't an identifier for the Amazon S3 bucket where the data is + exported. + """ + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the snapshot or cluster exported to + Amazon S3. + """ + export_only: list[str] | None = ... + """ + The data exported from the snapshot or cluster. + + Valid Values: + + - `database` - Export all the data from a specified database. + + - `database.table` *table-name* - Export a table of the snapshot or + cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, + and Aurora MySQL. + + - `database.schema` *schema-name* - Export a database schema of the + snapshot or cluster. This format is valid only for RDS for PostgreSQL + and Aurora PostgreSQL. + + - `database.schema.table` *table-name* - Export a table of the database + schema. This format is valid only for RDS for PostgreSQL and Aurora + PostgreSQL. + """ + snapshot_time: datetime | None = ... + """The time when the snapshot was created.""" + task_start_time: datetime | None = ... + """The time when the snapshot or cluster export task started.""" + task_end_time: datetime | None = ... + """The time when the snapshot or cluster export task ended.""" + s3_bucket: str | None = ... + """The Amazon S3 bucket where the snapshot or cluster is exported to.""" + s3_prefix: str | None = ... + """ + The Amazon S3 bucket prefix that is the file name and path of the + exported data. + """ + iam_role_arn: str | None = ... + """ + The name of the IAM role that is used to write to Amazon S3 when + exporting a snapshot or cluster. + """ + kms_key_id: str | None = ... + """ + The key identifier of the Amazon Web Services KMS key that is used to + encrypt the data when it's exported to Amazon S3. The KMS key + identifier is its key ARN, key ID, alias ARN, or alias name. The IAM + role used for the export must have encryption and decryption permissions + to use this KMS key. + """ + status: str | None = ... + """ + The progress status of the export task. The status can be one of the + following: + + - `CANCELED` + + - `CANCELING` + + - `COMPLETE` + + - `FAILED` + + - `IN_PROGRESS` + + - `STARTING` + """ + percent_progress: int | None = ... + """The progress of the snapshot or cluster export task as a percentage.""" + total_extracted_data_in_gb: int | None = ... + """The total amount of data exported, in gigabytes.""" + failure_cause: str | None = ... + """The reason the export failed, if it failed.""" + warning_message: str | None = ... + """A warning about the snapshot or cluster export task.""" + source_type: str | None = ... + """The type of source for the export.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Certificate(_SerdeShape): + """ + A CA certificate for an Amazon Web Services account. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + + certificate_identifier: str | None = ... + """The unique key that identifies a certificate.""" + certificate_type: str | None = ... + """The type of the certificate.""" + thumbprint: str | None = ... + """The thumbprint of the certificate.""" + valid_from: datetime | None = ... + """The starting date from which the certificate is valid.""" + valid_till: datetime | None = ... + """The final date that the certificate continues to be valid.""" + certificate_arn: str | None = ... + """The Amazon Resource Name (ARN) for the certificate.""" + customer_override: bool | None = ... + """ + Indicates whether there is an override for the default certificate + identifier. + """ + customer_override_valid_till: datetime | None = ... + """ + If there is an override for the default certificate identifier, when the + override expires. + """ + +@dataclass(kw_only=True) +class CertificateDetails(_SerdeShape): + """ + The details of the DB instance's server certificate. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + + ca_identifier: str | None = ... + """ + The CA identifier of the CA certificate used for the DB instance's + server certificate. + """ + valid_till: datetime | None = ... + """The expiration date of the DB instance's server certificate.""" + +@dataclass(kw_only=True) +class CertificateNotFoundFault(ServiceError, _SerdeShape): + """`CertificateIdentifier` doesn't refer to an existing certificate.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CharacterSet(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeDBEngineVersions`. + """ + + character_set_name: str | None = ... + """The name of the character set.""" + character_set_description: str | None = ... + """The description of the character set.""" + +class ClientPasswordAuthType(UnknownEnumMixin, StrEnum): + MYSQL_NATIVE_PASSWORD = "MYSQL_NATIVE_PASSWORD" + MYSQL_CACHING_SHA2_PASSWORD = "MYSQL_CACHING_SHA2_PASSWORD" + POSTGRES_SCRAM_SHA_256 = "POSTGRES_SCRAM_SHA_256" + POSTGRES_MD5 = "POSTGRES_MD5" + SQL_SERVER_AUTHENTICATION = "SQL_SERVER_AUTHENTICATION" + +@dataclass(kw_only=True) +class CloudwatchLogsExportConfiguration(_SerdeShape): + """ + The configuration setting for the log types to be enabled for export to + CloudWatch Logs for a specific DB instance or DB cluster. + + The `EnableLogTypes` and `DisableLogTypes` arrays determine which logs + will be exported (or not exported) to CloudWatch Logs. The values within + these arrays depend on the DB engine being used. + + For more information about exporting CloudWatch Logs for Amazon RDS DB + instances, see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora + DB clusters, see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + """ + + enable_log_types: list[str] | None = ... + """ + The list of log types to enable. + + The following values are valid for each DB engine: + + - Aurora MySQL - `audit | error | general | slowquery` + + - Aurora PostgreSQL - `postgresql` + + - RDS for MySQL - `error | general | slowquery` + + - RDS for PostgreSQL - `postgresql | upgrade` + """ + disable_log_types: list[str] | None = ... + """ + The list of log types to disable. + + The following values are valid for each DB engine: + + - Aurora MySQL - `audit | error | general | slowquery` + + - Aurora PostgreSQL - `postgresql` + + - RDS for MySQL - `error | general | slowquery` + + - RDS for PostgreSQL - `postgresql | upgrade` + """ + +@dataclass(kw_only=True) +class ClusterPendingModifiedValues(_SerdeShape): + """ + This data type is used as a response element in the `ModifyDBCluster` + operation and contains changes that will be applied during the next + maintenance window. + """ + + pending_cloudwatch_logs_exports: PendingCloudwatchLogsExports | None = ... + """ + A list of the log types whose configuration is still pending. In other + words, these log types are in the process of being activated or + deactivated. + """ + db_cluster_identifier: str | None = ... + """The DBClusterIdentifier value for the DB cluster.""" + master_user_password: str | None = ... + """The master credentials for the DB cluster.""" + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + engine_version: str | None = ... + """The database engine version.""" + backup_retention_period: int | None = ... + """The number of days for which automatic DB snapshots are retained.""" + storage_type: str | None = ... + """The storage type for the DB cluster.""" + allocated_storage: int | None = ... + """ + The allocated storage size in gibibytes (GiB) for all database engines + except Amazon Aurora. For Aurora, `AllocatedStorage` always returns 1, + because Aurora DB cluster storage size isn't fixed, but instead + automatically adjusts as needed. + """ + rds_custom_cluster_configuration: RdsCustomClusterConfiguration | None = ... + """Reserved for future use.""" + iops: int | None = ... + """ + The Provisioned IOPS (I/O operations per second) value. This setting is + only for non-Aurora Multi-AZ DB clusters. + """ + certificate_details: CertificateDetails | None = ... + """ + The details of the DB instance's server certificate. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + +class ClusterScalabilityType(UnknownEnumMixin, StrEnum): + STANDARD = "standard" + LIMITLESS = "limitless" + +@dataclass(kw_only=True) +class ConnectionPoolConfiguration(_SerdeShape): + """ + Specifies the settings that control the size and behavior of the + connection pool associated with a `DBProxyTargetGroup`. + """ + + max_connections_percent: int | None = ... + """ + The maximum size of the connection pool for each target in a target + group. The value is expressed as a percentage of the `max_connections` + setting for the RDS DB instance or Aurora DB cluster used by the target + group. + + If you specify `MaxIdleConnectionsPercent`, then you must also include a + value for this parameter. + + Default: `10` for RDS for Microsoft SQL Server, and `100` for all other + engines + + Constraints: + + - Must be between 1 and 100. + """ + max_idle_connections_percent: int | None = ... + """ + A value that controls how actively the proxy closes idle database + connections in the connection pool. The value is expressed as a + percentage of the `max_connections` setting for the RDS DB instance or + Aurora DB cluster used by the target group. With a high value, the proxy + leaves a high percentage of idle database connections open. A low value + causes the proxy to close more idle connections and return them to the + database. + + If you specify this parameter, then you must also include a value for + `MaxConnectionsPercent`. + + Default: The default value is half of the value of + `MaxConnectionsPercent`. For example, if `MaxConnectionsPercent` is 80, + then the default value of `MaxIdleConnectionsPercent` is 40. If the + value of `MaxConnectionsPercent` isn't specified, then for SQL Server, + `MaxIdleConnectionsPercent` is `5`, and for all other engines, the + default is `50`. + + Constraints: + + - Must be between 0 and the value of `MaxConnectionsPercent`. + """ + connection_borrow_timeout: int | None = ... + """ + The number of seconds for a proxy to wait for a connection to become + available in the connection pool. This setting only applies when the + proxy has opened its maximum number of connections and all connections + are busy with client sessions. + + Default: `120` + + Constraints: + + - Must be between 0 and 300. + """ + session_pinning_filters: list[str] | None = ... + """ + Each item in the list represents a class of SQL operations that normally + cause all later statements in a session using a proxy to be pinned to + the same underlying database connection. Including an item in the list + exempts that class of SQL operations from the pinning behavior. + + Default: no session pinning filters + """ + init_query: str | None = ... + """ + Add an initialization query, or modify the current one. You can specify + one or more SQL statements for the proxy to run when opening each new + database connection. The setting is typically used with `SET` statements + to make sure that each connection has identical settings. Make sure the + query added here is valid. This is an optional field, so you can choose + to leave it empty. For including multiple variables in a single SET + statement, use a comma separator. + + For example: `SET variable1=value1, variable2=value2` + + Default: no initialization query + + Warning: + Since you can access initialization query as part of target group + configuration, it is not protected by authentication or cryptographic + methods. Anyone with access to view or manage your proxy target group + configuration can view the initialization query. You should not add + sensitive data, such as passwords or long-lived encryption keys, to this + option. + """ + +@dataclass(kw_only=True) +class ConnectionPoolConfigurationInfo(_SerdeShape): + """ + Displays the settings that control the size and behavior of the + connection pool associated with a `DBProxyTarget`. + """ + + max_connections_percent: int | None = ... + """ + The maximum size of the connection pool for each target in a target + group. The value is expressed as a percentage of the `max_connections` + setting for the RDS DB instance or Aurora DB cluster used by the target + group. + """ + max_idle_connections_percent: int | None = ... + """ + Controls how actively the proxy closes idle database connections in the + connection pool. The value is expressed as a percentage of the + `max_connections` setting for the RDS DB instance or Aurora DB cluster + used by the target group. With a high value, the proxy leaves a high + percentage of idle database connections open. A low value causes the + proxy to close more idle connections and return them to the database. + """ + connection_borrow_timeout: int | None = ... + """ + The number of seconds for a proxy to wait for a connection to become + available in the connection pool. Only applies when the proxy has opened + its maximum number of connections and all connections are busy with + client sessions. + """ + session_pinning_filters: list[str] | None = ... + """ + Each item in the list represents a class of SQL operations that normally + cause all later statements in a session using a proxy to be pinned to + the same underlying database connection. Including an item in the list + exempts that class of SQL operations from the pinning behavior. This + setting is only supported for MySQL engine family databases. Currently, + the only allowed value is `EXCLUDE_VARIABLE_SETS`. + """ + init_query: str | None = ... + """ + One or more SQL statements for the proxy to run when opening each new + database connection. The setting is typically used with `SET` statements + to make sure that each connection has identical settings. The query + added here must be valid. For including multiple variables in a single + SET statement, use a comma separator. This is an optional field. + + For example: `SET variable1=value1, variable2=value2` + + Warning: + Since you can access initialization query as part of target group + configuration, it is not protected by authentication or cryptographic + methods. Anyone with access to view or manage your proxy target group + configuration can view the initialization query. You should not add + sensitive data, such as passwords or long-lived encryption keys, to this + option. + """ + +@dataclass(kw_only=True) +class ContextAttribute(_SerdeShape): + """The additional attributes of `RecommendedAction` data type.""" + + key: str | None = ... + """The key of `ContextAttribute`.""" + value: str | None = ... + """The value of `ContextAttribute`.""" + +@dataclass(kw_only=True) +class CopyDBClusterParameterGroupInput(_SerdeShape): + """Dataclass for CopyDBClusterParameterGroupInput structure.""" + + source_db_cluster_parameter_group_identifier: str | None = ... + """ + The identifier or Amazon Resource Name (ARN) for the source DB cluster + parameter group. For information about creating an ARN, see + [Constructing an ARN for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing) + in the *Amazon Aurora User Guide*. + + Constraints: + + - Must specify a valid DB cluster parameter group. + """ + target_db_cluster_parameter_group_identifier: str | None = ... + """ + The identifier for the copied DB cluster parameter group. + + Constraints: + + - Can't be null, empty, or blank + + - Must contain from 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-cluster-param-group1` + """ + target_db_cluster_parameter_group_description: str | None = ... + """A description for the copied DB cluster parameter group.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CopyDBClusterParameterGroupOutput(_SerdeShape): + """Dataclass for CopyDBClusterParameterGroupOutput structure.""" + + db_cluster_parameter_group: DBClusterParameterGroup | None = ... + """ + Contains the details of an Amazon RDS DB cluster parameter group. + + This data type is used as a response element in the + `DescribeDBClusterParameterGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyDBClusterSnapshotInput(_SerdeShape): + """""" + + source_db_cluster_snapshot_identifier: str | None = ... + """ + The identifier of the DB cluster snapshot to copy. This parameter isn't + case-sensitive. + + Constraints: + + - Must specify a valid source snapshot in the \"available\" state. + + - If the source snapshot is in the same Amazon Web Services Region as + the copy, specify a valid DB snapshot identifier. + + - If the source snapshot is in a different Amazon Web Services Region + than the copy, specify a valid DB cluster snapshot ARN. You can also + specify an ARN of a snapshot that is in a different account and a + different Amazon Web Services Region. For more information, go to + [Copying Snapshots Across Amazon Web Services + Regions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CopySnapshot.html#USER_CopySnapshot.AcrossRegions) + in the *Amazon Aurora User Guide*. + + Example: `my-cluster-snapshot1` + """ + target_db_cluster_snapshot_identifier: str | None = ... + """ + The identifier of the new DB cluster snapshot to create from the source + DB cluster snapshot. This parameter isn't case-sensitive. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster-snapshot2` + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB cluster + snapshot. The Amazon Web Services KMS key identifier is the key ARN, key + ID, alias ARN, or alias name for the Amazon Web Services KMS key. + + If you copy an encrypted DB cluster snapshot from your Amazon Web + Services account, you can specify a value for `KmsKeyId` to encrypt the + copy with a new KMS key. If you don't specify a value for `KmsKeyId`, + then the copy of the DB cluster snapshot is encrypted with the same KMS + key as the source DB cluster snapshot. + + If you copy an encrypted DB cluster snapshot that is shared from another + Amazon Web Services account, then you must specify a value for + `KmsKeyId`. + + To copy an encrypted DB cluster snapshot to another Amazon Web Services + Region, you must set `KmsKeyId` to the Amazon Web Services KMS key + identifier you want to use to encrypt the copy of the DB cluster + snapshot in the destination Amazon Web Services Region. KMS keys are + specific to the Amazon Web Services Region that they are created in, and + you can't use KMS keys from one Amazon Web Services Region in another + Amazon Web Services Region. + + If you copy an unencrypted DB cluster snapshot and specify a value for + the `KmsKeyId` parameter, an error is returned. + """ + pre_signed_url: str | None = ... + """ + When you are copying a DB cluster snapshot from one Amazon Web Services + GovCloud (US) Region to another, the URL that contains a Signature + Version 4 signed request for the `CopyDBClusterSnapshot` API operation + in the Amazon Web Services Region that contains the source DB cluster + snapshot to copy. Use the `PreSignedUrl` parameter when copying an + encrypted DB cluster snapshot from another Amazon Web Services Region. + Don't specify `PreSignedUrl` when copying an encrypted DB cluster + snapshot in the same Amazon Web Services Region. + + This setting applies only to Amazon Web Services GovCloud (US) Regions. + It's ignored in other Amazon Web Services Regions. + + The presigned URL must be a valid request for the + `CopyDBClusterSnapshot` API operation that can run in the source Amazon + Web Services Region that contains the encrypted DB cluster snapshot to + copy. The presigned URL request must contain the following parameter + values: + + - `KmsKeyId` - The KMS key identifier for the KMS key to use to encrypt + the copy of the DB cluster snapshot in the destination Amazon Web + Services Region. This is the same identifier for both the + `CopyDBClusterSnapshot` operation that is called in the destination + Amazon Web Services Region, and the operation contained in the + presigned URL. + + - `DestinationRegion` - The name of the Amazon Web Services Region that + the DB cluster snapshot is to be created in. + + - `SourceDBClusterSnapshotIdentifier` - The DB cluster snapshot + identifier for the encrypted DB cluster snapshot to be copied. This + identifier must be in the Amazon Resource Name (ARN) format for the + source Amazon Web Services Region. For example, if you are copying an + encrypted DB cluster snapshot from the us-west-2 Amazon Web Services + Region, then your `SourceDBClusterSnapshotIdentifier` looks like the + following example: + `arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115`. + + To learn how to generate a Signature Version 4 signed request, see + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + and [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Note: + If you are using an Amazon Web Services SDK tool or the CLI, you can + specify `SourceRegion` (or `--source-region` for the CLI) instead of + specifying `PreSignedUrl` manually. Specifying `SourceRegion` + autogenerates a presigned URL that is a valid request for the operation + that can run in the source Amazon Web Services Region. + """ + copy_tags: bool | None = ... + """ + Specifies whether to copy all tags from the source DB cluster snapshot + to the target DB cluster snapshot. By default, tags are not copied. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CopyDBClusterSnapshotOutput(_SerdeShape): + """Dataclass for CopyDBClusterSnapshotOutput structure.""" + + db_cluster_snapshot: DBClusterSnapshot | None = ... + """ + Contains the details for an Amazon RDS DB cluster snapshot + + This data type is used as a response element in the + `DescribeDBClusterSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyDBParameterGroupInput(_SerdeShape): + """""" + + source_db_parameter_group_identifier: str | None = ... + """ + The identifier or ARN for the source DB parameter group. For information + about creating an ARN, see [Constructing an ARN for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing) + in the *Amazon RDS User Guide*. + + Constraints: + + - Must specify a valid DB parameter group. + """ + target_db_parameter_group_identifier: str | None = ... + """ + The identifier for the copied DB parameter group. + + Constraints: + + - Can't be null, empty, or blank + + - Must contain from 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-db-parameter-group` + """ + target_db_parameter_group_description: str | None = ... + """A description for the copied DB parameter group.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CopyDBParameterGroupOutput(_SerdeShape): + """Dataclass for CopyDBParameterGroupOutput structure.""" + + db_parameter_group: DBParameterGroup | None = ... + """ + Contains the details of an Amazon RDS DB parameter group. + + This data type is used as a response element in the + `DescribeDBParameterGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyDBSnapshotInput(_SerdeShape): + """""" + + source_db_snapshot_identifier: str | None = ... + """ + The identifier for the source DB snapshot. + + If the source snapshot is in the same Amazon Web Services Region as the + copy, specify a valid DB snapshot identifier. For example, you might + specify `rds:mysql-instance1-snapshot-20130805`. + + If you are copying from a shared manual DB snapshot, this parameter must + be the Amazon Resource Name (ARN) of the shared DB snapshot. + + If the source snapshot is in a different Amazon Web Services Region than + the copy, specify a valid DB snapshot ARN. You can also specify an ARN + of a snapshot that is in a different account and a different Amazon Web + Services Region. For example, you might specify + `arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805`. + + Constraints: + + - Must specify a valid source snapshot in the \"available\" state. + + Example: `rds:mydb-2012-04-02-00-01` + + Example: + `arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805` + """ + target_db_snapshot_identifier: str | None = ... + """ + The identifier for the copy of the snapshot. + + Constraints: + + - Can't be null, empty, or blank + + - Must contain from 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-db-snapshot` + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB snapshot. + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you copy an encrypted DB snapshot from your Amazon Web Services + account, you can specify a value for this parameter to encrypt the copy + with a new KMS key. If you don't specify a value for this parameter, + then the copy of the DB snapshot is encrypted with the same Amazon Web + Services KMS key as the source DB snapshot. + + If you copy an encrypted DB snapshot that is shared from another Amazon + Web Services account, then you must specify a value for this parameter. + + If you specify this parameter when you copy an unencrypted snapshot, the + copy is encrypted. + + If you copy an encrypted snapshot to a different Amazon Web Services + Region, then you must specify an Amazon Web Services KMS key identifier + for the destination Amazon Web Services Region. KMS keys are specific to + the Amazon Web Services Region that they are created in, and you can't + use KMS keys from one Amazon Web Services Region in another Amazon Web + Services Region. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + copy_tags: bool | None = ... + """ + Specifies whether to copy all tags from the source DB snapshot to the + target DB snapshot. By default, tags aren't copied. + """ + pre_signed_url: str | None = ... + """ + When you are copying a snapshot from one Amazon Web Services GovCloud + (US) Region to another, the URL that contains a Signature Version 4 + signed request for the `CopyDBSnapshot` API operation in the source + Amazon Web Services Region that contains the source DB snapshot to copy. + + This setting applies only to Amazon Web Services GovCloud (US) Regions. + It's ignored in other Amazon Web Services Regions. + + You must specify this parameter when you copy an encrypted DB snapshot + from another Amazon Web Services Region by using the Amazon RDS API. + Don't specify `PreSignedUrl` when you are copying an encrypted DB + snapshot in the same Amazon Web Services Region. + + The presigned URL must be a valid request for the + `CopyDBClusterSnapshot` API operation that can run in the source Amazon + Web Services Region that contains the encrypted DB cluster snapshot to + copy. The presigned URL request must contain the following parameter + values: + + - `DestinationRegion` - The Amazon Web Services Region that the + encrypted DB snapshot is copied to. This Amazon Web Services Region is + the same one where the `CopyDBSnapshot` operation is called that + contains this presigned URL. + + For example, if you copy an encrypted DB snapshot from the us-west-2 + Amazon Web Services Region to the us-east-1 Amazon Web Services + Region, then you call the `CopyDBSnapshot` operation in the us-east-1 + Amazon Web Services Region and provide a presigned URL that contains a + call to the `CopyDBSnapshot` operation in the us-west-2 Amazon Web + Services Region. For this example, the `DestinationRegion` in the + presigned URL must be set to the us-east-1 Amazon Web Services Region. + + - `KmsKeyId` - The KMS key identifier for the KMS key to use to encrypt + the copy of the DB snapshot in the destination Amazon Web Services + Region. This is the same identifier for both the `CopyDBSnapshot` + operation that is called in the destination Amazon Web Services + Region, and the operation contained in the presigned URL. + + - `SourceDBSnapshotIdentifier` - The DB snapshot identifier for the + encrypted snapshot to be copied. This identifier must be in the Amazon + Resource Name (ARN) format for the source Amazon Web Services Region. + For example, if you are copying an encrypted DB snapshot from the + us-west-2 Amazon Web Services Region, then your + `SourceDBSnapshotIdentifier` looks like the following example: + `arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115`. + + To learn how to generate a Signature Version 4 signed request, see + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + and [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Note: + If you are using an Amazon Web Services SDK tool or the CLI, you can + specify `SourceRegion` (or `--source-region` for the CLI) instead of + specifying `PreSignedUrl` manually. Specifying `SourceRegion` + autogenerates a presigned URL that is a valid request for the operation + that can run in the source Amazon Web Services Region. + """ + option_group_name: str | None = ... + """ + The name of an option group to associate with the copy of the snapshot. + + Specify this option if you are copying a snapshot from one Amazon Web + Services Region to another, and your DB instance uses a nondefault + option group. If your source DB instance uses Transparent Data + Encryption for Oracle or Microsoft SQL Server, you must specify this + option when copying across Amazon Web Services Regions. For more + information, see [Option group + considerations](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html#USER_CopySnapshot.Options) + in the *Amazon RDS User Guide*. + """ + target_custom_availability_zone: str | None = ... + """ + The external custom Availability Zone (CAZ) identifier for the target + CAZ. + + Example: `rds-caz-aiqhTgQv`. + """ + snapshot_target: str | None = ... + """ + Configures the location where RDS will store copied snapshots. + + Valid Values: + + - `local` (Dedicated Local Zone) + + - `outposts` (Amazon Web Services Outposts) + + - `region` (Amazon Web Services Region) + """ + copy_option_group: bool | None = ... + """ + Specifies whether to copy the DB option group associated with the source + DB snapshot to the target Amazon Web Services account or Amazon Web + Services Region and associate it with the target DB snapshot. + """ + snapshot_availability_zone: str | None = ... + """ + Specifies the name of the Availability Zone where RDS stores the DB + snapshot. This value is valid only for snapshots that RDS stores on a + Dedicated Local Zone. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to the copied option group. By default, the copied option + group isn't tagged. + + Valid Values: + + - `og` - The copied option group. + + Constraints: + + - Can only be specified when `CopyOptionGroup` is `true` + """ + +@dataclass(kw_only=True) +class CopyDBSnapshotOutput(_SerdeShape): + """Dataclass for CopyDBSnapshotOutput structure.""" + + db_snapshot: DBSnapshot | None = ... + """ + Contains the details of an Amazon RDS DB snapshot. + + This data type is used as a response element in the + `DescribeDBSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyOptionGroupInput(_SerdeShape): + """""" + + source_option_group_identifier: str | None = ... + """ + The identifier for the source option group. + + Constraints: + + - Must specify a valid option group. + """ + target_option_group_identifier: str | None = ... + """ + The identifier for the copied option group. + + Constraints: + + - Can't be null, empty, or blank + + - Must contain from 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-option-group` + """ + target_option_group_description: str | None = ... + """The description for the copied option group.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CopyOptionGroupOutput(_SerdeShape): + """Dataclass for CopyOptionGroupOutput structure.""" + + option_group: OptionGroup | None = ... + """""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateBlueGreenDeploymentInput(_SerdeShape): + """Dataclass for CreateBlueGreenDeploymentInput structure.""" + + blue_green_deployment_name: str | None = ... + """ + The name of the blue/green deployment. + + Constraints: + + - Can't be the same as an existing blue/green deployment name in the + same account and Amazon Web Services Region. + """ + source: str | None = ... + """ + The Amazon Resource Name (ARN) of the source production database. + + Specify the database that you want to clone. The blue/green deployment + creates this database in the green environment. You can make updates to + the database in the green environment, such as an engine version + upgrade. When you are ready, you can switch the database in the green + environment to be the production database. + """ + target_engine_version: str | None = ... + """ + The engine version of the database in the green environment. + + Specify the engine version to upgrade to in the green environment. + """ + target_db_parameter_group_name: str | None = ... + """ + The DB parameter group associated with the DB instance in the green + environment. + + To test parameter changes, specify a DB parameter group that is + different from the one associated with the source DB instance. + """ + target_db_cluster_parameter_group_name: str | None = ... + """ + The DB cluster parameter group associated with the Aurora DB cluster in + the green environment. + + To test parameter changes, specify a DB cluster parameter group that is + different from the one associated with the source DB cluster. + """ + tags: list[Tag] | None = ... + """Tags to assign to the blue/green deployment.""" + target_db_instance_class: str | None = ... + """ + Specify the DB instance class for the databases in the green + environment. + + This parameter only applies to RDS DB instances, because DB instances + within an Aurora DB cluster can have multiple different instance + classes. If you're creating a blue/green deployment from an Aurora DB + cluster, don't specify this parameter. After the green environment is + created, you can individually modify the instance classes of the DB + instances within the green DB cluster. + """ + upgrade_target_storage_config: bool | None = ... + """ + Whether to upgrade the storage file system configuration on the green + database. This option migrates the green DB instance from the older + 32-bit file system to the preferred configuration. For more information, + see [Upgrading the storage file system for a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem). + """ + target_iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + allocate for the green DB instance. For information about valid IOPS + values, see [Amazon RDS DB instance + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora blue/green deployments. + """ + target_storage_type: str | None = ... + """ + The storage type to associate with the green DB instance. + + Valid Values: `gp2 | gp3 | io1 | io2` + + This setting doesn't apply to Amazon Aurora blue/green deployments. + """ + target_allocated_storage: int | None = ... + """ + The amount of storage in gibibytes (GiB) to allocate for the green DB + instance. You can choose to increase or decrease the allocated storage + on the green DB instance. + + This setting doesn't apply to Amazon Aurora blue/green deployments. + """ + target_storage_throughput: int | None = ... + """ + The storage throughput value for the green DB instance. + + This setting applies only to the `gp3` storage type. + + This setting doesn't apply to Amazon Aurora blue/green deployments. + """ + target_resource_configurations: list[TargetResourceConfiguration] | None = ... + """ + Specifies resource-level configuration overrides for the green + environment. + + Each entry identifies a resource in the blue environment by its Amazon + Resource Name (ARN). It defines the desired configuration for the + corresponding resource in the green environment. Any resource that you + don't include in this parameter retains the same configuration as its + counterpart in the blue environment. + + Use this parameter when one or more resources in the green environment + require a different configuration than what they have in the blue + environment. + + Constraints: + + - You can't specify the same `SourceArn` in more than one entry. + """ + +@dataclass(kw_only=True) +class CreateBlueGreenDeploymentOutput(_SerdeShape): + """Dataclass for CreateBlueGreenDeploymentOutput structure.""" + + blue_green_deployment: BlueGreenDeployment | None = ... + """ + Details about a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCustomDBEngineVersionFault(ServiceError, _SerdeShape): + """An error occurred while trying to create the CEV.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateCustomDBEngineVersionInput(_SerdeShape): + """Dataclass for CreateCustomDBEngineVersionInput structure.""" + + engine: str | None = ... + """ + The database engine. + + RDS Custom for Oracle supports the following values: + + - `custom-oracle-ee` + + - `custom-oracle-ee-cdb` + + - `custom-oracle-se2` + + - `custom-oracle-se2-cdb` + + RDS Custom for SQL Server supports the following values: + + - `custom-sqlserver-ee` + + - `custom-sqlserver-se` + + - `custom-sqlserver-web` + + - `custom-sqlserver-dev` + + RDS for SQL Server supports the following values: + + - `sqlserver-ee` (Bring Your Own Media) + + - `sqlserver-se` (Bring Your Own Media) + + - `sqlserver-dev-ee` + """ + engine_version: str | None = ... + """ + The name of your custom engine version (CEV). + + For RDS Custom for Oracle, the name format is `19.*customized_string*`. + For example, a valid CEV name is `19.my_cev1`. + + For RDS Custom for SQL Server and RDS for SQL Server `sqlserver-dev-ee`, + the name format is + `*major_engine_version*.*minor_engine_version*.*customized_string*`. For + example, a valid CEV name is `16.00.4215.2.my_cev1`. + + For RDS for SQL Server Bring Your Own Media (`sqlserver-ee`, + `sqlserver-se`), specify the RDS engine version that you want to use. + For example, `16.00.4175.1.v1`. + + The CEV name is unique per customer per Amazon Web Services Regions. + """ + database_installation_files_s3_bucket_name: str | None = ... + """ + The name of an Amazon S3 bucket that contains database installation + files for your CEV. For example, a valid bucket name is + `my-custom-installation-files`. + """ + database_installation_files_s3_prefix: str | None = ... + """ + The Amazon S3 directory that contains the database installation files + for your CEV. For example, a valid bucket name is `123456789012/cev1`. + If this setting isn't specified, no prefix is assumed. + """ + database_installation_files: list[str] | None = ... + """ + The database installation files (ISO and EXE) uploaded to Amazon S3 for + your database engine version to import to Amazon RDS. + + For RDS for SQL Server Bring Your Own Media (`sqlserver-ee`, + `sqlserver-se`), provide the SQL Server RTM ISO file once per major + version and edition combination. Minor versions reuse the same file. + """ + image_id: str | None = ... + """ + The ID of the Amazon Machine Image (AMI). For RDS Custom for SQL Server, + an AMI ID is required to create a CEV. For RDS Custom for Oracle, the + default is the most recent AMI available, but you can specify an AMI ID + that was used in a different Oracle CEV. Find the AMIs used by your CEVs + by calling the + [DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) + operation. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted CEV. A + symmetric encryption KMS key is required for RDS Custom, but optional + for Amazon RDS. + + If you have an existing symmetric encryption KMS key in your account, + you can use it with RDS Custom. No further action is necessary. If you + don't already have a symmetric encryption KMS key in your account, + follow the instructions in [Creating a symmetric encryption KMS + key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) + in the *Amazon Web Services Key Management Service Developer Guide*. + + You can choose the same symmetric encryption key when you create a CEV + and a DB instance, or choose different keys. + """ + source_custom_db_engine_version_identifier: str | None = ... + """ + The ARN of a CEV to use as a source for creating a new CEV. You can + specify a different Amazon Machine Imagine (AMI) by using either + `Source` or `UseAwsProvidedLatestImage`. You can't specify a different + JSON manifest when you specify `SourceCustomDbEngineVersionIdentifier`. + """ + use_aws_provided_latest_image: bool | None = ... + """ + Specifies whether to use the latest service-provided Amazon Machine + Image (AMI) for the CEV. If you specify `UseAwsProvidedLatestImage`, you + can't also specify `ImageId`. + """ + description: str | None = ... + """An optional description of your CEV.""" + manifest: str | None = ... + """ + The CEV manifest, which is a JSON document that describes the + installation .zip files stored in Amazon S3. Specify the name/value + pairs in a file or a quoted string. RDS Custom applies the patches in + the order in which they are listed. + + The following JSON fields are valid: + + MediaImportTemplateVersion + + : Version of the CEV manifest. The date is in the format `YYYY-MM-DD`. + + databaseInstallationFileNames + + : Ordered list of installation files for the CEV. + + opatchFileNames + + : Ordered list of OPatch installers used for the Oracle DB engine. + + psuRuPatchFileNames + + : The PSU and RU patches for this CEV. + + OtherPatchFileNames + + : The patches that are not in the list of PSU and RU patches. Amazon RDS + applies these patches after applying the PSU and RU patches. + + For more information, see [Creating the CEV + manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) + in the *Amazon RDS User Guide*. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CreateCustomDBEngineVersionOutput(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeDBEngineVersions`. + """ + + engine: str | None = ... + """The name of the database engine.""" + major_engine_version: str | None = ... + """The major engine version of the CEV.""" + engine_version: str | None = ... + """The version number of the database engine.""" + database_installation_files_s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket that contains your database + installation files. + """ + database_installation_files_s3_prefix: str | None = ... + """ + The Amazon S3 directory that contains the database installation files. + If not specified, then no prefix is assumed. + """ + database_installation_files: list[str] | None = ... + """ + The database installation files (ISO and EXE) that were uploaded to + Amazon S3 and used to import the database engine version to Amazon RDS. + Returned for RDS for SQL Server engine versions (`sqlserver-ee`, + `sqlserver-se`, and `sqlserver-dev-ee`) created from customer-supplied + installation media. + """ + custom_db_engine_version_manifest: str | None = ... + """ + JSON string that lists the installation files and parameters that RDS + Custom uses to create a custom engine version (CEV). RDS Custom applies + the patches in the order in which they're listed in the manifest. You + can set the Oracle home, Oracle base, and UNIX/Linux user and group + using the installation parameters. For more information, see [JSON + fields in the CEV + manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html#custom-cev.preparing.manifest.fields) + in the *Amazon RDS User Guide*. + """ + db_parameter_group_family: str | None = ... + """The name of the DB parameter group family for the database engine.""" + db_engine_description: str | None = ... + """The description of the database engine.""" + db_engine_version_arn: str | None = ... + """The ARN of the custom engine version.""" + db_engine_version_description: str | None = ... + """The description of the database engine version.""" + default_character_set: CharacterSet | None = ... + """ + The default character set for new instances of this engine version, if + the `CharacterSetName` parameter of the CreateDBInstance API isn't + specified. + """ + failure_reason: str | None = ... + """ + The reason that the custom engine version creation failed with an + `incompatible-installation-media` status. Applicable to RDS for SQL + Server engine versions (`sqlserver-ee`, `sqlserver-se`, and + `sqlserver-dev-ee`). + """ + image: CustomDBEngineVersionAMI | None = ... + """The EC2 image""" + db_engine_media_type: str | None = ... + """ + The source of the installation media for this engine version. A value of + `Customer Provided` indicates that the engine version was created from + customer-supplied installation media using + `CreateCustomDBEngineVersion`. Applicable to RDS Custom for SQL Server + and to RDS for SQL Server engine versions (`sqlserver-ee` and + `sqlserver-se` with the `bring-your-own-media` license model, and + `sqlserver-dev-ee`). + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted CEV. This + parameter is required for RDS Custom, but optional for Amazon RDS. + """ + create_time: datetime | None = ... + """The creation time of the DB engine version.""" + supported_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by this engine for the + `CharacterSetName` parameter of the `CreateDBInstance` operation. + """ + supported_nchar_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by the Oracle DB engine for the + `NcharCharacterSetName` parameter of the `CreateDBInstance` operation. + """ + valid_upgrade_target: list[UpgradeTarget] | None = ... + """ + A list of engine versions that this database engine version can be + upgraded to. + """ + supported_timezones: list[Timezone] | None = ... + """ + A list of the time zones supported by this engine for the `Timezone` + parameter of the `CreateDBInstance` action. + """ + exportable_log_types: list[str] | None = ... + """ + The types of logs that the database engine has available for export to + CloudWatch Logs. + """ + supports_log_exports_to_cloudwatch_logs: bool | None = ... + """ + Indicates whether the engine version supports exporting the log types + specified by ExportableLogTypes to CloudWatch Logs. + """ + supports_read_replica: bool | None = ... + """Indicates whether the database engine version supports read replicas.""" + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes.""" + supported_feature_names: list[str] | None = ... + """ + A list of features supported by the DB engine. + + The supported features vary by DB engine and DB engine version. + + To determine the supported features for a specific DB engine and DB + engine version using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine --engine-version ` + + For example, to determine the supported features for RDS for PostgreSQL + version 13.3 using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine postgres --engine-version 13.3` + + The supported features are listed under `SupportedFeatureNames` in the + output. + """ + status: str | None = ... + """The status of the DB engine version, either `available` or `deprecated`.""" + supports_parallel_query: bool | None = ... + """ + Indicates whether you can use Aurora parallel query with a specific DB + engine version. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with a specific DB + engine version. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + supports_babelfish: bool | None = ... + """ + Indicates whether the engine version supports Babelfish for Aurora + PostgreSQL. + """ + supports_limitless_database: bool | None = ... + """ + Indicates whether the DB engine version supports Aurora Limitless + Database. + """ + supports_certificate_rotation_without_restart: bool | None = ... + """ + Indicates whether the engine version supports rotating the server + certificate without rebooting the DB instance. + """ + supported_ca_certificate_identifiers: list[str] | None = ... + """ + A list of the supported CA certificate identifiers. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + supports_local_write_forwarding: bool | None = ... + """ + Indicates whether the DB engine version supports forwarding write + operations from reader DB instances to the writer DB instance in the DB + cluster. By default, write operations aren't allowed on reader DB + instances. + + Valid for: Aurora DB clusters only + """ + supports_integrations: bool | None = ... + """ + Indicates whether the DB engine version supports zero-ETL integrations + with Amazon Redshift. + """ + serverless_v2_features_support: ServerlessV2FeaturesSupport | None = ... + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora engine versions. You can test the values of this + attribute when deciding which Aurora version to use in a new or upgraded + DB cluster. You can also retrieve the version of an existing DB cluster + and check whether that version supports certain Aurora Serverless v2 + features before you attempt to use those features. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBCapacityReservationInput(_SerdeShape): + """Dataclass for CreateDBCapacityReservationInput structure.""" + + db_capacity_reservation_name: str | None = ... + """ + The name of the DB capacity reservation. This name must be unique for + your Amazon Web Services account in the Amazon Web Services Region. + + Constraints: + + - Must contain from 1 to 63 lowercase letters, digits, or hyphens. + + - First character must be a lowercase letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + - Can't contain more than 16 groups of characters separated by hyphens. + + - Can't begin with `dbcr-`. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity to reserve, for example `db.m5.large`. + Not all DB instance classes are available in all Amazon Web Services + Regions, or for all database engines. For the full list of DB instance + classes, and availability for your engine, see [DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Constraints: + + - Must be a DB instance class that the specified `Engine` supports. + + - For RDS for Oracle with `LicenseModel` set to `license-included`, some + DB instance classes aren't supported. Either choose a supported DB + instance class, or set `LicenseModel` to `bring-your-own-license`. + """ + engine: str | None = ... + """ + The database engine to reserve capacity for. + + Valid Values: `aurora-mysql` | `aurora-postgresql` | `mysql` | + `postgres` | `mariadb` | `oracle-ee` | `oracle-ee-cdb` | + `oracle-se2` | `oracle-se2-cdb` | `sqlserver-ee` | `sqlserver-se` | + `sqlserver-web` | `sqlserver-ex` | `sqlserver-dev-ee` | + `sqlserver-dev-se` | `db2-ae` | `db2-ce` | `db2-se` + + Note: + The Developer Edition engines `sqlserver-dev-ee` and `sqlserver-dev-se` + support no Multi-AZ DB instance and no read replica. Therefore, a + reservation for either engine serves Single-AZ DB instances only. + """ + capacity_per_availability_zone: int | None = ... + """ + The number of DB instances to reserve in each Availability Zone that you + list in `AvailabilityZones`. Amazon RDS reserves this number of DB + instances in every listed Availability Zone. + + A Single-AZ DB instance uses one unit of reserved capacity, in one + Availability Zone. A Multi-AZ DB instance is one DB instance, and it + uses one unit of reserved capacity in each of two Availability Zones. + Therefore, a Multi-AZ DB instance uses two units in total. A read + replica uses one unit of reserved capacity, in the same way as any other + DB instance. + + Amazon RDS reserves capacity in each Availability Zone separately. + Reserved capacity in one Availability Zone can't serve a DB instance in + another Availability Zone. A request for a DB instance fails when the + Availability Zone of the DB instance has no available capacity. + + Therefore, set this value to the number of DB instances that you want to + run at the same time in one Availability Zone. Don't set it to the + number that you want in total. + + This value multiplied by the number of Availability Zones counts against + the DB instances quota for your Amazon Web Services account in the + Amazon Web Services Region. Your existing DB instances, and the unused + capacity of your other reservations, count against the same quota. + + To find the value of the DB instances quota, see [Quotas and constraints + for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html) + in the *Amazon RDS User Guide*. + + Constraints: + + - Minimum 1. + """ + availability_zones: list[str] | None = ... + """ + A list of Availability Zones for the reservation. + + You can't change the Availability Zones of a reservation after you + create it. Reserved capacity in an Availability Zone that no DB instance + uses stays unused. + + Constraints: + + - Must specify one or more Availability Zones. + + - Each Availability Zone can appear only once. + + - Each Availability Zone must be in the Amazon Web Services Region of + the request. + + - Each Availability Zone must have capacity for the requested DB + instance class. + + - Must include two or more Availability Zones to use the reservation for + a Multi-AZ DB instance. + + - A DB instance can use reserved capacity only in an Availability Zone + that its DB subnet group covers. + + Example: `us-east-1a` + """ + end_date: datetime | None = ... + """ + The date and time when the reservation expires, in Universal Coordinated + Time (UTC). If you don't specify a value, the reservation doesn't + expire. + + To change the expiration of an existing reservation, use + `ModifyDBCapacityReservation`. That operation takes `EndDateType` along + with `EndDate`. + + Constraints: + + - Must be a date and time in the future. + + - For a future-dated reservation, must be at or after `StartDate` plus + `CommitmentDuration`. For example, a reservation that starts on + 2026-12-01 with a 30-day commitment can't expire before 2026-12-31. + To reserve capacity for one calendar month, set `CommitmentDuration` + to 30 days or fewer, not to the length of the month. + + Example: `2026-12-31T23:59:59Z` + """ + start_date: datetime | None = ... + """ + The date and time when the reservation starts, in Universal Coordinated + Time (UTC). Specify this parameter to create a future-dated reservation. + If you don't specify a value, the reservation starts immediately. + + A reservation that starts later always carries a capacity commitment. + Therefore, a request that specifies `StartDate` must also meet every + constraint of a future-dated reservation, including the minimum reserved + capacity in each Availability Zone. + + Constraints: + + - Must be from 5 to 120 days in the future. + + - You must also specify `CommitmentDuration`. + + Example: `2026-12-01T00:00:00Z` + """ + commitment_duration: int | None = ... + """ + The length of the capacity commitment that you request for a + future-dated reservation, in seconds. Amazon RDS measures this length + from `StartDate`. + + Note: + Amazon RDS can grant a shorter capacity commitment than you request. + Therefore, read `CommitmentEndDate` in `CommitmentInfo` for the + commitment that Amazon RDS granted. + + The commitment doesn't end the reservation. Specify `EndDate` to set an + expiration date. You can't cancel a reservation in the `active` state + during the commitment. + + Constraints: + + - Minimum 1209600, which is 14 days. For a `db.x` DB instance class, + such as `db.x2g.xlarge`, the minimum is 7257600, which is 84 days. + + - Must be less than 315576000, which is 10 years. + + - You must also specify `StartDate`. + + Example: `2592000` + """ + license_model: str | None = ... + """ + The license model to reserve capacity for. Specify this parameter only + for RDS for Microsoft SQL Server Enterprise Edition, Standard Edition, + and Developer Edition, for RDS for Oracle, or for RDS for Db2 Standard + Edition and Advanced Edition. Amazon RDS rejects the request for any + other engine. This includes Amazon Aurora, the Web and Express editions + of RDS for Microsoft SQL Server, and RDS for Db2 Community Edition. + + Valid Values: + + - RDS for Microsoft SQL Server Enterprise Edition and Standard Edition - + `license-included | bring-your-own-media` + + - RDS for Microsoft SQL Server Developer Edition - + `bring-your-own-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for Db2 Standard Edition and Advanced Edition - + `bring-your-own-license | marketplace-license` + + A DB instance launches into the reservation only when the license model + of the DB instance matches the license model of the reservation. For a + reservation that holds no license model, Amazon RDS applies no license + model check at launch. + + For RDS for Microsoft SQL Server Enterprise Edition and Standard + Edition, if you don't specify a value, Amazon RDS uses + `license-included`. + + For RDS for Microsoft SQL Server Developer Edition, if you don't + specify a value, Amazon RDS uses `bring-your-own-license`. That is the + only license model that these engines accept, and Amazon RDS rejects any + other value. + + For RDS for Oracle, if you don't specify a value, Amazon RDS uses the + only orderable license model for the DB instance class. If more than one + license model is orderable, you must specify one. + + For RDS for Db2 Standard Edition and Advanced Edition, if you don't + specify a value, Amazon RDS uses `bring-your-own-license`. To reserve + capacity for Db2 DB instances that you license through Amazon Web + Services Marketplace, specify `marketplace-license`. + + Note: + For RDS for Oracle, the license models that you can reserve depend on + the engine and the DB instance class. RDS for Oracle Enterprise Edition + doesn't support `license-included`. + """ + tags: list[Tag] | None = ... + """Tags to assign to the DB capacity reservation.""" + +@dataclass(kw_only=True) +class CreateDBCapacityReservationOutput(_SerdeShape): + """Dataclass for CreateDBCapacityReservationOutput structure.""" + + db_capacity_reservation: DBCapacityReservation | None = ... + """Contains the details of the newly created DB capacity reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBClusterEndpointInput(_SerdeShape): + """Dataclass for CreateDBClusterEndpointInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier to use for the new endpoint. This parameter is stored as + a lowercase string. + """ + endpoint_type: str | None = ... + """The type of the endpoint, one of: `READER`, `WRITER`, `ANY`.""" + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. This parameter is relevant only if the list of static members + is empty. + """ + tags: list[Tag] | None = ... + """The tags to be assigned to the Amazon RDS resource.""" + +@dataclass(kw_only=True) +class CreateDBClusterEndpointOutput(_SerdeShape): + """ + This data type represents the information you need to connect to an + Amazon Aurora DB cluster. This data type is used as a response element + in the following actions: + + - `CreateDBClusterEndpoint` + + - `DescribeDBClusterEndpoints` + + - `ModifyDBClusterEndpoint` + + - `DeleteDBClusterEndpoint` + + For the data structure that represents Amazon RDS DB instance endpoints, + see `Endpoint`. + """ + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier associated with the endpoint. This parameter is stored as + a lowercase string. + """ + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_resource_identifier: str | None = ... + """ + A unique system-generated identifier for an endpoint. It remains the + same for the whole life of the endpoint. + """ + endpoint: str | None = ... + """The DNS address of the endpoint.""" + status: str | None = ... + """ + The current status of the endpoint. One of: `creating`, `available`, + `deleting`, `inactive`, `modifying`. The `inactive` state applies to an + endpoint that can't be used for a certain kind of cluster, such as a + `writer` endpoint for a read-only secondary cluster in a global + database. + """ + endpoint_type: str | None = ... + """The type of the endpoint. One of: `READER`, `WRITER`, `CUSTOM`.""" + custom_endpoint_type: str | None = ... + """ + The type associated with a custom endpoint. One of: `READER`, `WRITER`, + `ANY`. + """ + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. Only relevant if the list of static members is empty. + """ + db_cluster_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) for the endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBClusterInput(_SerdeShape): + """""" + + availability_zones: list[str] | None = ... + """ + A list of Availability Zones (AZs) where you specifically want to create + DB instances in the DB cluster. + + For the first three DB instances that you create, RDS distributes each + DB instance to a different AZ that you specify. For additional DB + instances that you create, RDS randomly distributes them to the AZs that + you specified. For example, if you create a DB cluster with one writer + instance and three reader instances, RDS might distribute the writer + instance to AZ 1, the first reader instance to AZ 2, the second reader + instance to AZ 3, and the third reader instance to either AZ 1, AZ 2, or + AZ 3. + + For more information, see [Availability + Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.AvailabilityZones) + and [High availability for Aurora DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Concepts.AuroraHighAvailability.Instances) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters only + + Constraints: + + - Can't specify more than three AZs. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Default: `1` + + Constraints: + + - Must be a value from 1 to 35. + """ + character_set_name: str | None = ... + """ + The name of the character set (`CharacterSet`) to associate the DB + cluster with. + + Valid for Cluster Type: Aurora DB clusters only + """ + database_name: str | None = ... + """ + The name for your database of up to 64 alphanumeric characters. A + database named `postgres` is always created. If this parameter is + specified, an additional database with this name is created. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + db_cluster_identifier: str | None = ... + """ + The identifier for this DB cluster. This parameter is stored as a + lowercase string. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must contain from 1 to 63 (for Aurora DB clusters) or 1 to 52 (for + Multi-AZ DB clusters) letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster1` + """ + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group to associate with this DB + cluster. If you don't specify a value, then the default DB cluster + parameter group for the specified DB engine and version is used. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - If supplied, must match the name of an existing DB cluster parameter + group. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of EC2 VPC security groups to associate with this DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + db_subnet_group_name: str | None = ... + """ + A DB subnet group to associate with this DB cluster. + + This setting is required to create a Multi-AZ DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must match the name of an existing DB subnet group. + + Example: `mydbsubnetgroup` + """ + engine: str | None = ... + """ + The database engine to use for this DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `mysql` + + - `postgres` + + - `neptune` - For information about using Amazon Neptune, see the + [*Amazon Neptune User + Guide*](https://docs.aws.amazon.com/neptune/latest/userguide/intro.html) + . + """ + engine_version: str | None = ... + """ + The version number of the database engine to use. + + To list all of the available engine versions for Aurora MySQL version 2 + (5.7-compatible) and version 3 (MySQL 8.0-compatible), use the following + command: + + `aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"` + + You can supply either `5.7` or `8.0` to use the default engine version + for Aurora MySQL version 2 or version 3, respectively. + + To list all of the available engine versions for Aurora PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for MySQL, use the + following command: + + `aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion"` + + For information about a specific engine, see the following topics: + + - Aurora MySQL - see [Database engine updates for Amazon Aurora + MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) + in the *Amazon Aurora User Guide*. + + - Aurora PostgreSQL - see [Amazon Aurora PostgreSQL releases and engine + versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) + in the *Amazon Aurora User Guide*. + + - RDS for MySQL - see [Amazon RDS for + MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) + in the *Amazon RDS User Guide*. + + - RDS for PostgreSQL - see [Amazon RDS for + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + port: int | None = ... + """ + The port number on which the instances in the DB cluster accept + connections. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: `1150-65535` + + Default: + + - RDS for MySQL and Aurora MySQL - `3306` + + - RDS for PostgreSQL and Aurora PostgreSQL - `5432` + """ + master_username: str | None = ... + """ + The name of the master user for the DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must be 1 to 16 letters or numbers. + + - First character must be a letter. + + - Can't be a reserved word for the chosen database engine. + """ + master_user_password: str | None = ... + """ + The password for the master database user. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must contain from 8 to 41 characters. + + - Can contain any printable ASCII character except \"/\", \"\"\", or + \"@\". + + - Can't be specified if `ManageMasterUserPassword` is turned on. + """ + option_group_name: str | None = ... + """ + The option group to associate the DB cluster with. + + DB clusters are associated with a default option group that can't be + modified. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled using the `BackupRetentionPeriod` + parameter. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To view the time + blocks available, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) + in the *Amazon Aurora User Guide*. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region, occurring on a random + day of the week. To see the time blocks available, see [Adjusting the + Preferred DB Cluster Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) + in the *Amazon Aurora User Guide*. + + Constraints: + + - Must be in the format `ddd:hh24:mi-ddd:hh24:mi`. + + - Days must be one of `Mon | Tue | Wed | Thu | Fri | Sat | Sun`. + + - Must be in Universal Coordinated Time (UTC). + + - Must be at least 30 minutes. + """ + replication_source_identifier: str | None = ... + """ + The Amazon Resource Name (ARN) of the source DB instance or DB cluster + if this DB cluster is created as a read replica. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + tags: list[Tag] | None = ... + """ + Tags to assign to the DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + storage_encrypted: bool | None = ... + """ + Specifies whether the DB cluster is encrypted. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + When a KMS key isn't specified in `KmsKeyId`: + + - If `ReplicationSourceIdentifier` identifies an encrypted source, then + Amazon RDS uses the KMS key used to encrypt the source. Otherwise, + Amazon RDS uses your default KMS key. + + - If the `StorageEncrypted` parameter is enabled and + `ReplicationSourceIdentifier` isn't specified, then Amazon RDS uses + your default KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + + If you create a read replica of an encrypted DB cluster in another + Amazon Web Services Region, make sure to set `KmsKeyId` to a KMS key + identifier that is valid in the destination Amazon Web Services Region. + This KMS key is used to encrypt the read replica in that Amazon Web + Services Region. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + pre_signed_url: str | None = ... + """ + When you are replicating a DB cluster from one Amazon Web Services + GovCloud (US) Region to another, an URL that contains a Signature + Version 4 signed request for the `CreateDBCluster` operation to be + called in the source Amazon Web Services Region where the DB cluster is + replicated from. Specify `PreSignedUrl` only when you are performing + cross-Region replication from an encrypted DB cluster. + + The presigned URL must be a valid request for the `CreateDBCluster` API + operation that can run in the source Amazon Web Services Region that + contains the encrypted DB cluster to copy. + + The presigned URL request must contain the following parameter values: + + - `KmsKeyId` - The KMS key identifier for the KMS key to use to encrypt + the copy of the DB cluster in the destination Amazon Web Services + Region. This should refer to the same KMS key for both the + `CreateDBCluster` operation that is called in the destination Amazon + Web Services Region, and the operation contained in the presigned URL. + + - `DestinationRegion` - The name of the Amazon Web Services Region that + Aurora read replica will be created in. + + - `ReplicationSourceIdentifier` - The DB cluster identifier for the + encrypted DB cluster to be copied. This identifier must be in the + Amazon Resource Name (ARN) format for the source Amazon Web Services + Region. For example, if you are copying an encrypted DB cluster from + the us-west-2 Amazon Web Services Region, then your + `ReplicationSourceIdentifier` would look like Example: + `arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1`. + + To learn how to generate a Signature Version 4 signed request, see + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + and [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Note: + If you are using an Amazon Web Services SDK tool or the CLI, you can + specify `SourceRegion` (or `--source-region` for the CLI) instead of + specifying `PreSignedUrl` manually. Specifying `SourceRegion` + autogenerates a presigned URL that is a valid request for the operation + that can run in the source Amazon Web Services Region. + + Valid for Cluster Type: Aurora DB clusters only + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon Aurora User Guide* or [IAM database authentication for + MariaDB, MySQL, and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. To disable backtracking, set + this value to `0`. + + Valid for Cluster Type: Aurora MySQL DB clusters only + + Default: `0` + + Constraints: + + - If specified, this value must be set to a number from 0 to 259,200 (72 + hours). + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of log types that need to be enabled for exporting to + CloudWatch Logs. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + The following values are valid for each DB engine: + + - Aurora MySQL - + `audit | error | general | instance | slowquery | iam-db-auth-error` + + - Aurora PostgreSQL - `instance | postgresql | iam-db-auth-error` + + - RDS for MySQL - `error | general | slowquery | iam-db-auth-error` + + - RDS for PostgreSQL - `postgresql | upgrade | iam-db-auth-error` + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + """ + engine_mode: str | None = ... + """ + The DB engine mode of the DB cluster, either `provisioned` or + `serverless`. + + The `serverless` engine mode only applies for Aurora Serverless v1 DB + clusters. Aurora Serverless v2 DB clusters use the `provisioned` engine + mode. + + For information about limitations and requirements for Serverless DB + clusters, see the following sections in the *Amazon Aurora User Guide*: + + - [Limitations of Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) + + - [Requirements for Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) + + Valid for Cluster Type: Aurora DB clusters only + """ + scaling_configuration: ScalingConfiguration | None = ... + """ + For DB clusters in `serverless` DB engine mode, the scaling properties + of the DB cluster. + + Valid for Cluster Type: Aurora DB clusters only + """ + rds_custom_cluster_configuration: RdsCustomClusterConfiguration | None = ... + """Reserved for future use.""" + db_cluster_instance_class: str | None = ... + """ + The compute and memory capacity of each DB instance in the Multi-AZ DB + cluster, for example `db.m6gd.xlarge`. Not all DB instance classes are + available in all Amazon Web Services Regions, or for all database + engines. + + For the full list of DB instance classes and availability for your + engine, see [DB instance + class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + This setting is required to create a Multi-AZ DB cluster. + + Valid for Cluster Type: Multi-AZ DB clusters only + """ + allocated_storage: int | None = ... + """ + The amount of storage in gibibytes (GiB) to allocate to each DB instance + in the Multi-AZ DB cluster. + + Valid for Cluster Type: Multi-AZ DB clusters only + + This setting is required to create a Multi-AZ DB cluster. + """ + storage_type: str | None = ... + """ + The storage type to associate with the DB cluster. + + For information on storage types for Aurora DB clusters, see [Storage + configurations for Amazon Aurora DB + clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type). + For information on storage types for Multi-AZ DB clusters, see [Settings + for creating Multi-AZ DB + clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings). + + This setting is required to create a Multi-AZ DB cluster. + + When specified for a Multi-AZ DB cluster, a value for the `Iops` + parameter is required. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + + - Aurora DB clusters - `aurora | aurora-iopt1` + + - Multi-AZ DB clusters - `io1 | io2 | gp3` + + Default: + + - Aurora DB clusters - `aurora` + + - Multi-AZ DB clusters - `io1` + + Note: + When you create an Aurora DB cluster with the storage type set to + `aurora-iopt1`, the storage type is returned in the response. The + storage type isn't returned when you set it to `aurora`. + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + be initially allocated for each DB instance in the Multi-AZ DB cluster. + + For information about valid IOPS values, see [Provisioned IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide*. + + This setting is required to create a Multi-AZ DB cluster. + + Valid for Cluster Type: Multi-AZ DB clusters only + + Constraints: + + - Must be a multiple between .5 and 50 of the storage amount for the DB + cluster. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB cluster is publicly accessible. + + Valid for Cluster Type: Multi-AZ DB clusters only + + When the DB cluster is publicly accessible and you connect from outside + of the DB cluster's virtual private cloud (VPC), its domain name system + (DNS) endpoint resolves to the public IP address. When you connect from + within the same VPC as the DB cluster, the endpoint resolves to the + private IP address. Access to the DB cluster is controlled by its + security group settings. + + When the DB cluster isn't publicly accessible, it is an internal DB + cluster with a DNS name that resolves to a private IP address. + + The default behavior when `PubliclyAccessible` is not specified depends + on whether a `DBSubnetGroup` is specified. + + If `DBSubnetGroup` isn't specified, `PubliclyAccessible` defaults to + `true`. + + If `DBSubnetGroup` is specified, `PubliclyAccessible` defaults to + `false` unless the value of `DBSubnetGroup` is `default`, in which case + `PubliclyAccessible` defaults to `true`. + + If `PubliclyAccessible` is true and the VPC that the `DBSubnetGroup` is + in doesn't have an internet gateway attached to it, Amazon RDS returns + an error. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether minor engine upgrades are applied automatically to the + DB cluster during the maintenance window. By default, minor engine + upgrades are applied automatically. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + deletion_protection: bool | None = ... + """ + Specifies whether the DB cluster has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + global_cluster_identifier: str | None = ... + """ + The global cluster ID of an Aurora cluster that becomes the primary + cluster in the new global database cluster. + + Valid for Cluster Type: Aurora DB clusters only + """ + enable_http_endpoint: bool | None = ... + """ + Specifies whether to enable the HTTP endpoint for the DB cluster. By + default, the HTTP endpoint isn't enabled. + + When enabled, the HTTP endpoint provides a connectionless web service + API (RDS Data API) for running SQL queries on the DB cluster. You can + also query your database from inside the RDS console with the RDS query + editor. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters only + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the DB cluster to snapshots of + the DB cluster. The default is not to copy them. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + domain: str | None = ... + """ + The Active Directory directory ID to create the DB cluster in. + + For Amazon Aurora DB clusters, Amazon RDS can use Kerberos + authentication to authenticate users that connect to the DB cluster. + + For more information, see [Kerberos + authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters only + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + Valid for Cluster Type: Aurora DB clusters only + """ + enable_global_write_forwarding: bool | None = ... + """ + Specifies whether to enable this DB cluster to forward write operations + to the primary cluster of a global cluster (Aurora global database). By + default, write operations are not allowed on Aurora DB clusters that are + secondary clusters in an Aurora global database. + + You can set this value only on Aurora DB clusters that are members of an + Aurora global database. With this parameter enabled, a secondary cluster + can forward writes to the current primary cluster, and the resulting + changes are replicated back to this cluster. For the primary DB cluster + of an Aurora global database, this value is used immediately if the + primary is demoted by a global cluster API operation, but it does + nothing until then. + + Valid for Cluster Type: Aurora DB clusters only + """ + network_type: str | None = ... + """ + The network type of the DB cluster. + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + Valid for Cluster Type: Aurora DB clusters only + + Valid Values: `IPV4 | DUAL` + """ + serverless_v2_scaling_configuration: ServerlessV2ScalingConfiguration | None = ... + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB cluster. To turn off collecting + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a + value other than `0`. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the IAM role that permits RDS to send + Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, see [Setting up and enabling Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) + in the *Amazon RDS User Guide*. + + If `MonitoringInterval` is set to a value other than `0`, supply a + `MonitoringRoleArn` value. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + database_insights_mode: str | None = ... + """ + The mode of Database Insights to enable for the DB cluster. + + If you set this value to `advanced`, you must also set the + `PerformanceInsightsEnabled` parameter to `true` and the + `PerformanceInsightsRetentionPeriod` parameter to 465. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to turn on Performance Insights for the DB cluster. + + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS issues an error. + """ + enable_limitless_database: bool | None = ... + """ + Specifies whether to enable Aurora Limitless Database. You must enable + Aurora Limitless Database to create a DB shard group. + + Valid for: Aurora DB clusters only + + Note: + This setting is no longer used. Instead use the `ClusterScalabilityType` + setting. + """ + cluster_scalability_type: str | None = ... + """ + Specifies the scalability mode of the Aurora DB cluster. When set to + `limitless`, the cluster operates as an Aurora Limitless Database. When + set to `standard` (the default), the cluster uses normal DB instance + creation. + + Valid for: Aurora DB clusters only + + Note: + You can't modify this setting after you create the DB cluster. + """ + db_system_id: str | None = ... + """Reserved for future use.""" + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + enable_local_write_forwarding: bool | None = ... + """ + Specifies whether read replicas can forward write operations to the + writer DB instance in the DB cluster. By default, write operations + aren't allowed on reader DB instances. + + Valid for: Aurora DB clusters only + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB cluster's server + certificate. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Multi-AZ DB clusters + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB cluster. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB cluster into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, creating the DB cluster will fail if the DB major version is + past its end of standard support date. + + You can use this setting to enroll your DB cluster into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB cluster past the end of standard support + for that engine version. For more information, see the following + sections: + + - Amazon Aurora - [Amazon RDS Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide* + + - Amazon RDS - [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB cluster. + + Valid Values: + + - `cluster-auto-backup` - The DB cluster's automated backup. + """ + master_user_authentication_type: str | None = ... + """ + Specifies the authentication type for the master user. With IAM master + user authentication, you can configure the master DB user with IAM + database authentication when you create a DB cluster. + + You can specify one of the following values: + + - `password` - Use standard database authentication with a password. + + - `iam-db-auth` - Use IAM database authentication for the master user. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL + engines. + """ + with_express_configuration: bool | None = ... + """ + Specifies to create an Aurora DB Cluster with express configuration in + seconds. Express configuration provides a cluster with a writer instance + and feature specific values set to all other input parameters of this + API. + + Valid for Cluster Type: Aurora DB clusters + """ + associated_roles: list[DBClusterAssociatedRole] | None = ... + """ + A list of Amazon Web Services Identity and Access Management (IAM) roles + to associate with the DB cluster. Each role grants the DB cluster + permission to access other Amazon Web Services on your behalf. For each + role, specify a role ARN and, optionally, the feature name (such as + `s3Import`, `s3Export`, or `Lambda`). + + Valid for Cluster Type: Aurora DB clusters only + """ + +@dataclass(kw_only=True) +class CreateDBClusterOutput(_SerdeShape): + """Dataclass for CreateDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBClusterParameterGroupInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group. + + Constraints: + + - Must not match the name of an existing DB cluster parameter group. + + Note: + This value is stored as a lowercase string. + """ + db_parameter_group_family: str | None = ... + """ + The DB cluster parameter group family name. A DB cluster parameter group + can be associated with one and only one DB cluster parameter group + family, and can be applied only to a DB cluster running a database + engine and engine version compatible with that DB cluster parameter + group family. + + **Aurora MySQL** + + Example: `aurora-mysql5.7`, `aurora-mysql8.0` + + **Aurora PostgreSQL** + + Example: `aurora-postgresql14` + + **RDS for MySQL** + + Example: `mysql8.0` + + **RDS for PostgreSQL** + + Example: `postgres13` + + To list all of the available parameter group families for a DB engine, + use the following command: + + `aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine ` + + For example, to list all of the available parameter group families for + the Aurora PostgreSQL DB engine, use the following command: + + `aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine aurora-postgresql` + + Note: + The output contains duplicates. + + The following are the valid DB engine values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `mysql` + + - `postgres` + """ + description: str | None = ... + """The description for the DB cluster parameter group.""" + tags: list[Tag] | None = ... + """Tags to assign to the DB cluster parameter group.""" + +@dataclass(kw_only=True) +class CreateDBClusterParameterGroupOutput(_SerdeShape): + """Dataclass for CreateDBClusterParameterGroupOutput structure.""" + + db_cluster_parameter_group: DBClusterParameterGroup | None = ... + """ + Contains the details of an Amazon RDS DB cluster parameter group. + + This data type is used as a response element in the + `DescribeDBClusterParameterGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBClusterSnapshotInput(_SerdeShape): + """""" + + db_cluster_snapshot_identifier: str | None = ... + """ + The identifier of the DB cluster snapshot. This parameter is stored as a + lowercase string. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster1-snapshot1` + """ + db_cluster_identifier: str | None = ... + """ + The identifier of the DB cluster to create a snapshot for. This + parameter isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing DBCluster. + + Example: `my-cluster1` + """ + tags: list[Tag] | None = ... + """The tags to be assigned to the DB cluster snapshot.""" + +@dataclass(kw_only=True) +class CreateDBClusterSnapshotOutput(_SerdeShape): + """Dataclass for CreateDBClusterSnapshotOutput structure.""" + + db_cluster_snapshot: DBClusterSnapshot | None = ... + """ + Contains the details for an Amazon RDS DB cluster snapshot + + This data type is used as a response element in the + `DescribeDBClusterSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBInstanceInput(_SerdeShape): + """""" + + db_name: str | None = ... + """ + The meaning of this parameter differs according to the database engine + you use. + + Amazon Aurora MySQL + + : The name of the database to create when the primary DB instance of the + Aurora MySQL DB cluster is created. If this parameter isn't specified + for an Aurora MySQL DB cluster, no database is created in the DB + cluster. + + Constraints: + + - Must contain 1 to 64 alphanumeric characters. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0-9). + + - Can't be a word reserved by the database engine. + + Amazon Aurora PostgreSQL + + : The name of the database to create when the primary DB instance of the + Aurora PostgreSQL DB cluster is created. A database named `postgres` + is always created. If this parameter is specified, an additional + database with this name is created. + + Constraints: + + - It must contain 1 to 63 alphanumeric characters. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0 to 9). + + - Can't be a word reserved by the database engine. + + Amazon RDS Custom for Oracle + + : The Oracle System ID (SID) of the created RDS Custom DB instance. If + you don't specify a value, the default value is `ORCL` for non-CDBs + and `RDSCDB` for CDBs. + + Default: `ORCL` + + Constraints: + + - Must contain 1 to 8 alphanumeric characters. + + - Must contain a letter. + + - Can't be a word reserved by the database engine. + + Amazon RDS Custom for SQL Server + + : Not applicable. Must be null. + + RDS for Db2 + + : The name of the database to create when the DB instance is created. If + this parameter isn't specified, no database is created in the DB + instance. In some cases, we recommend that you don't add a database + name. For more information, see [Additional + considerations](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-db-instance-prereqs.html#db2-prereqs-additional-considerations) + in the *Amazon RDS User Guide*. + + Constraints: + + - Must contain 1 to 64 letters or numbers. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0-9). + + - Can't be a word reserved by the specified database engine. + + RDS for MariaDB + + : The name of the database to create when the DB instance is created. If + this parameter isn't specified, no database is created in the DB + instance. + + Constraints: + + - Must contain 1 to 64 letters or numbers. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0-9). + + - Can't be a word reserved by the specified database engine. + + RDS for MySQL + + : The name of the database to create when the DB instance is created. If + this parameter isn't specified, no database is created in the DB + instance. + + Constraints: + + - Must contain 1 to 64 letters or numbers. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0-9). + + - Can't be a word reserved by the specified database engine. + + RDS for Oracle + + : The Oracle System ID (SID) of the created DB instance. If you don't + specify a value, the default value is `ORCL`. You can't specify the + string `null`, or any other reserved word, for `DBName`. + + Default: `ORCL` + + Constraints: + + - Can't be longer than 8 characters. + + RDS for PostgreSQL + + : The name of the database to create when the DB instance is created. A + database named `postgres` is always created. If this parameter is + specified, an additional database with this name is created. + + Constraints: + + - Must contain 1 to 63 letters, numbers, or underscores. + + - Must begin with a letter. Subsequent characters can be letters, + underscores, or digits (0-9). + + - Can't be a word reserved by the specified database engine. + + RDS for SQL Server + + : Not applicable. Must be null. + """ + db_instance_identifier: str | None = ... + """ + The identifier for this DB instance. This parameter is stored as a + lowercase string. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `mydbinstance` + """ + allocated_storage: int | None = ... + """ + The amount of storage in gibibytes (GiB) to allocate for the DB + instance. + + This setting doesn't apply to Amazon Aurora DB instances. Aurora + cluster volumes automatically grow as the amount of data in your + database increases, though you are only charged for the space that you + use in an Aurora cluster volume. + + Amazon RDS Custom + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): Must be an integer from 40 + to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL + Server. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 40 to + 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL + Server. + + RDS for Db2 + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp3): Must be an integer from 20 to + 65536. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 100 to + 65536. + + RDS for MariaDB + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 + to 65536. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 100 to + 65536. + + - Magnetic storage (standard): Must be an integer from 5 to 3072. + + RDS for MySQL + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 + to 65536. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 100 to + 65536. + + - Magnetic storage (standard): Must be an integer from 5 to 3072. + + RDS for Oracle + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 + to 65536. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 100 to + 65536. + + - Magnetic storage (standard): Must be an integer from 10 to 3072. + + RDS for PostgreSQL + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 + to 65536. + + - Provisioned IOPS storage (io1, io2): Must be an integer from 100 to + 65536. + + - Magnetic storage (standard): Must be an integer from 5 to 3072. + + RDS for SQL Server + + : Constraints to the amount of storage for each storage type are the + following: + + - General Purpose (SSD) storage (gp2, gp3): + + - Enterprise and Standard editions: Must be an integer from 20 to + 16384. + + - Web and Express editions: Must be an integer from 20 to 16384. + + - Provisioned IOPS storage (io1, io2): + + - Enterprise and Standard editions: Must be an integer from 100 to + 16384. + + - Web and Express editions: Must be an integer from 100 to 16384. + + - Magnetic storage (standard): + + - Enterprise and Standard editions: Must be an integer from 20 to + 1024. + + - Web and Express editions: Must be an integer from 20 to 1024. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity of the DB instance, for example + `db.m5.large`. Not all DB instance classes are available in all Amazon + Web Services Regions, or for all database engines. For the full list of + DB instance classes, and availability for your engine, see [DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide* or [Aurora DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) + in the *Amazon Aurora User Guide*. + """ + engine: str | None = ... + """ + The database engine to use for this DB instance. + + Not every database engine is available in every Amazon Web Services + Region. + + Valid Values: + + - `aurora-mysql` (for Aurora MySQL DB instances) + + - `aurora-postgresql` (for Aurora PostgreSQL DB instances) + + - `custom-oracle-ee` (for RDS Custom for Oracle DB instances) + + - `custom-oracle-ee-cdb` (for RDS Custom for Oracle DB instances) + + - `custom-oracle-se2` (for RDS Custom for Oracle DB instances) + + - `custom-oracle-se2-cdb` (for RDS Custom for Oracle DB instances) + + - `custom-sqlserver-ee` (for RDS Custom for SQL Server DB instances) + + - `custom-sqlserver-se` (for RDS Custom for SQL Server DB instances) + + - `custom-sqlserver-web` (for RDS Custom for SQL Server DB instances) + + - `custom-sqlserver-dev` (for RDS Custom for SQL Server DB instances) + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-dev-ee` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + master_username: str | None = ... + """ + The name for the master user. + + This setting doesn't apply to Amazon Aurora DB instances. The name for + the master user is managed by the DB cluster. + + This setting is required for RDS DB instances. + + Constraints: + + - Must be 1 to 16 letters, numbers, or underscores. + + - First character must be a letter. + + - Can't be a reserved word for the chosen database engine. + """ + master_user_password: str | None = ... + """ + The password for the master user. + + This setting doesn't apply to Amazon Aurora DB instances. The password + for the master user is managed by the DB cluster. + + Constraints: + + - Can't be specified if `ManageMasterUserPassword` is turned on. + + - Can include any printable ASCII character except \"/\", \"\"\", or + \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the + \"'\" (single quotes) character. + + Length Constraints: + + - RDS for Db2 - Must contain from 8 to 255 characters. + + - RDS for MariaDB - Must contain from 8 to 41 characters. + + - RDS for Microsoft SQL Server - Must contain from 8 to 128 characters. + + - RDS for MySQL - Must contain from 8 to 41 characters. + + - RDS for Oracle - Must contain from 8 to 30 characters. + + - RDS for PostgreSQL - Must contain from 8 to 128 characters. + """ + db_security_groups: list[str] | None = ... + """ + A list of DB security groups to associate with this DB instance. + + This setting applies to the legacy EC2-Classic platform, which is no + longer used to create new DB instances. Use the `VpcSecurityGroupIds` + setting instead. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of Amazon EC2 VPC security groups to associate with this DB + instance. + + This setting doesn't apply to Amazon Aurora DB instances. The + associated list of EC2 VPC security groups is managed by the DB cluster. + + Default: The default EC2 VPC security group for the DB subnet group's + VPC. + """ + availability_zone: str | None = ... + """ + The Availability Zone (AZ) where the database will be created. For + information on Amazon Web Services Regions and Availability Zones, see + [Regions and Availability + Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). + + For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in + three separate Availability Zones. Specify one of these Availability + Zones. Aurora automatically chooses an appropriate Availability Zone if + you don't specify one. + + Default: A random, system-chosen Availability Zone in the endpoint's + Amazon Web Services Region. + + Constraints: + + - The `AvailabilityZone` parameter can't be specified if the DB + instance is a Multi-AZ deployment. + + - The specified Availability Zone must be in the same Amazon Web + Services Region as the current endpoint. + + Example: `us-east-1d` + """ + db_subnet_group_name: str | None = ... + """ + A DB subnet group to associate with this DB instance. + + Constraints: + + - Must match the name of an existing DB subnet group. + + Example: `mydbsubnetgroup` + """ + preferred_maintenance_window: str | None = ... + """ + The time range each week during which system maintenance can occur. For + more information, see [Amazon RDS Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + in the *Amazon RDS User Guide.* + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region, occurring on a random + day of the week. + + Constraints: + + - Must be in the format `ddd:hh24:mi-ddd:hh24:mi`. + + - The day values must be `mon | tue | wed | thu | fri | sat | sun`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred backup window. + + - Must be at least 30 minutes. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to associate with this DB instance. + If you don't specify a value, then Amazon RDS uses the default DB + parameter group for the specified DB engine and version. + + This setting doesn't apply to RDS Custom DB instances. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - The first character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Setting + this parameter to a positive number enables backups. Setting this + parameter to `0` disables automated backups. + + This setting doesn't apply to Amazon Aurora DB instances. The retention + period for automated backups is managed by the DB cluster. + + Default: `1` + + Constraints: + + - Must be a value from 0 to 35. + + - Can't be set to 0 if the DB instance is a source to read replicas. + + - Can't be set to 0 for an RDS Custom for Oracle DB instance. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, using the `BackupRetentionPeriod` + parameter. The default is a 30-minute window selected at random from an + 8-hour block of time for each Amazon Web Services Region. For more + information, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora DB instances. The daily + time range for creating automated backups is managed by the DB cluster. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + port: int | None = ... + """ + The port number on which the database accepts connections. + + This setting doesn't apply to Aurora DB instances. The port number is + managed by the cluster. + + Valid Values: `1150-65535` + + Default: + + - RDS for Db2 - `50000` + + - RDS for MariaDB - `3306` + + - RDS for Microsoft SQL Server - `1433` + + - RDS for MySQL - `3306` + + - RDS for Oracle - `1521` + + - RDS for PostgreSQL - `5432` + + Constraints: + + - For RDS for Microsoft SQL Server, the value can't be `1234`, `1434`, + `3260`, `3343`, `3389`, `47001`, or `49152-49156`. + """ + multi_az: bool | None = ... + """ + Specifies whether the DB instance is a Multi-AZ deployment. You can't + set the `AvailabilityZone` parameter if the DB instance is a Multi-AZ + deployment. + + This setting doesn't apply to Amazon Aurora because the DB instance + Availability Zones (AZs) are managed by the DB cluster. + """ + engine_version: str | None = ... + """ + The version number of the database engine to use. + + This setting doesn't apply to Amazon Aurora DB instances. The version + number of the database engine the DB instance uses is managed by the DB + cluster. + + For a list of valid engine versions, use the `DescribeDBEngineVersions` + operation. + + The following are the database engines and links to information about + the major and minor versions that are available with Amazon RDS. Not + every database engine is available for every Amazon Web Services Region. + + Amazon RDS Custom for Oracle + + : A custom engine version (CEV) that you have previously created. This + setting is required for RDS Custom for Oracle. The CEV name has the + following format: 19.*customized_string*. A valid CEV name is + `19.my_cev1`. For more information, see [Creating an RDS Custom for + Oracle DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.create) + in the *Amazon RDS User Guide*. + + Amazon RDS Custom for SQL Server + + : See [RDS Custom for SQL Server general + requirements](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html) + in the *Amazon RDS User Guide*. + + RDS for Db2 + + : For information, see [Db2 on Amazon RDS + versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Db2.html#Db2.Concepts.VersionMgmt) + in the *Amazon RDS User Guide*. + + RDS for MariaDB + + : For information, see [MariaDB on Amazon RDS + versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) + in the *Amazon RDS User Guide*. + + RDS for Microsoft SQL Server + + : For information, see [Microsoft SQL Server versions on Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) + in the *Amazon RDS User Guide*. + + RDS for MySQL + + : For information, see [MySQL on Amazon RDS + versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) + in the *Amazon RDS User Guide*. + + RDS for Oracle + + : For information, see [Oracle Database Engine release + notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) + in the *Amazon RDS User Guide*. + + RDS for PostgreSQL + + : For information, see [Amazon RDS for PostgreSQL versions and + extensions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) + in the *Amazon RDS User Guide*. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether minor engine upgrades are applied automatically to the + DB instance during the maintenance window. By default, minor engine + upgrades are applied automatically. + + If you create an RDS Custom DB instance, you must set + `AutoMinorVersionUpgrade` to `false`. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + license_model: str | None = ... + """ + The license model information for this DB instance. + + Note: + License models for RDS for Db2 require additional configuration. The + bring your own license (BYOL) model requires a custom parameter group + and an Amazon Web Services License Manager self-managed license. The Db2 + license through Amazon Web Services Marketplace model requires an Amazon + Web Services Marketplace subscription. For more information, see [Amazon + RDS for Db2 licensing + options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) + in the *Amazon RDS User Guide*. + + The default for RDS for Db2 is `bring-your-own-license`. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + + Valid Values: + + - RDS for Db2 - `bring-your-own-license | marketplace-license` + + - RDS for MariaDB - `general-public-license` + + - RDS for Microsoft SQL Server - + `license-included | bring-your-own-media` + + - RDS for MySQL - `general-public-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for PostgreSQL - `postgresql-license` + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + initially allocate for the DB instance. For information about valid IOPS + values, see [Amazon RDS DB instance + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora DB instances. Storage is + managed by the DB cluster. + + Constraints: + + - For RDS for Db2, MariaDB, MySQL, Oracle, and PostgreSQL - Must be a + multiple between .5 and 50 of the storage amount for the DB instance. + + - For RDS for SQL Server - Must be a multiple between 1 and 50 of the + storage amount for the DB instance. + """ + storage_throughput: int | None = ... + """ + The storage throughput value, in mebibyte per second (MiBps), for the DB + instance. + + This setting applies only to the `gp3` storage type. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + option_group_name: str | None = ... + """ + The option group to associate the DB instance with. + + Permanent options, such as the TDE option for Oracle Advanced Security + TDE, can't be removed from an option group. Also, that option group + can't be removed from a DB instance after it is associated with a DB + instance. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + character_set_name: str | None = ... + """ + For supported engines, the character set (`CharacterSet`) to associate + the DB instance with. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora - The character set is managed by the DB cluster. For + more information, see `CreateDBCluster`. + + - RDS Custom - However, if you need to change the character set, you can + change it on the database itself. + """ + nchar_character_set_name: str | None = ... + """ + The name of the NCHAR character set for the Oracle DB instance. + + This setting doesn't apply to RDS Custom DB instances. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB instance is publicly accessible and you connect from outside + of the DB instance's virtual private cloud (VPC), its domain name + system (DNS) endpoint resolves to the public IP address. When you + connect from within the same VPC as the DB instance, the endpoint + resolves to the private IP address. Access to the DB instance is + controlled by its security group settings. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + The default behavior when `PubliclyAccessible` is not specified depends + on whether a `DBSubnetGroup` is specified. + + If `DBSubnetGroup` isn't specified, `PubliclyAccessible` defaults to + `false` for Aurora instances and `true` for non-Aurora instances. + + If `DBSubnetGroup` is specified, `PubliclyAccessible` defaults to + `false` unless the value of `DBSubnetGroup` is `default`, in which case + `PubliclyAccessible` defaults to `true`. + + If `PubliclyAccessible` is true and the VPC that the `DBSubnetGroup` is + in doesn't have an internet gateway attached to it, Amazon RDS returns + an error. + """ + tags: list[Tag] | None = ... + """Tags to assign to the DB instance.""" + db_cluster_identifier: str | None = ... + """ + The identifier of the DB cluster that this DB instance will belong to. + + This setting doesn't apply to RDS Custom DB instances. + """ + storage_type: str | None = ... + """ + The storage type to associate with the DB instance. + + If you specify `io1`, `io2`, or `gp3`, you must also include a value for + the `Iops` parameter. + + This setting doesn't apply to Amazon Aurora DB instances. Storage is + managed by the DB cluster. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + Default: `io1`, if the `Iops` parameter is specified. Otherwise, `gp3`. + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which to associate the instance for TDE + encryption. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + tde_credential_password: str | None = ... + """ + The password for the given ARN from the key store in order to access the + device. + + This setting doesn't apply to RDS Custom DB instances. + """ + storage_encrypted: bool | None = ... + """ + Specifes whether the DB instance is encrypted. By default, it isn't + encrypted. + + For RDS Custom DB instances, either enable this setting or leave it + unset. Otherwise, Amazon RDS reports an error. + + This setting doesn't apply to Amazon Aurora DB instances. The + encryption for DB instances is managed by the DB cluster. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + This setting doesn't apply to Amazon Aurora DB instances. The Amazon + Web Services KMS key identifier is managed by the DB cluster. For more + information, see `CreateDBCluster`. + + If `StorageEncrypted` is enabled, and you do not specify a value for the + `KmsKeyId` parameter, then Amazon RDS uses your default KMS key. There + is a default KMS key for your Amazon Web Services account. Your Amazon + Web Services account has a different default KMS key for each Amazon Web + Services Region. + + For Amazon RDS Custom, a KMS key is required for DB instances. For most + RDS engines, if you leave this parameter empty while enabling + `StorageEncrypted`, the engine uses the default KMS key. However, RDS + Custom doesn't use the default key when this parameter is empty. You + must explicitly specify a key. + """ + domain: str | None = ... + """ + The Active Directory directory ID to create the DB instance in. + Currently, you can create only Db2, MySQL, Microsoft SQL Server, Oracle, + and PostgreSQL DB instances in an Active Directory Domain. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (The domain is managed by the DB cluster.) + + - RDS Custom + """ + domain_fqdn: str | None = ... + """ + The fully qualified domain name (FQDN) of an Active Directory domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: `mymanagedADtest.mymanagedAD.mydomain` + """ + domain_ou: str | None = ... + """ + The Active Directory organizational unit for your DB instance to join. + + Constraints: + + - Must be in the distinguished name format. + + - Can't be longer than 64 characters. + + Example: + `OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain` + """ + domain_auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + joining the domain. + + Example: + `arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456` + """ + domain_dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of your primary and secondary Active Directory + domain controllers. + + Constraints: + + - Two IP addresses must be provided. If there isn't a secondary domain + controller, use the IP address of the primary domain controller for + both entries in the list. + + Example: `123.124.125.126,234.235.236.237` + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy tags from the DB instance to snapshots of the + DB instance. By default, tags are not copied. + + This setting doesn't apply to Amazon Aurora DB instances. Copying tags + to snapshots is managed by the DB cluster. Setting this value for an + Aurora DB instance has no effect on the DB cluster setting. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB instance. To disable collection of + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, then you must set + `MonitoringInterval` to a value other than `0`. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send enhanced monitoring + metrics to Amazon CloudWatch Logs. For example, + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, see [Setting Up and Enabling Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) + in the *Amazon RDS User Guide*. + + If `MonitoringInterval` is set to a value other than `0`, then you must + supply a `MonitoringRoleArn` value. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (The domain is managed by the DB cluster.) + + - RDS Custom + """ + promotion_tier: int | None = ... + """ + The order of priority in which an Aurora Replica is promoted to the + primary instance after a failure of the existing primary instance. For + more information, see [Fault Tolerance for an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Aurora.Managing.FaultTolerance) + in the *Amazon Aurora User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + + Default: `1` + + Valid Values: `0 - 15` + """ + timezone: str | None = ... + """ + The time zone of the DB instance. The time zone parameter is currently + supported only by [RDS for + Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-time-zone) + and [RDS for SQL + Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone). + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (Mapping Amazon Web Services IAM accounts to database + accounts is managed by the DB cluster.) + + - RDS Custom + """ + database_insights_mode: str | None = ... + """ + The mode of Database Insights to enable for the DB instance. + + Note: + Aurora DB instances inherit this value from the DB cluster, so you + can't change this value. + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to enable Performance Insights for the DB instance. + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS returns an error. + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of log types to enable for exporting to CloudWatch Logs. For + more information, see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (CloudWatch Logs exports are managed by the DB cluster.) + + - RDS Custom + + The following values are valid for each DB engine: + + - RDS for Db2 - `diag.log | notify.log | iam-db-auth-error` + + - RDS for MariaDB - + `audit | error | general | slowquery | iam-db-auth-error` + + - RDS for Microsoft SQL Server - `agent | error` + + - RDS for MySQL - + `audit | error | general | slowquery | iam-db-auth-error` + + - RDS for Oracle - `alert | audit | listener | trace | oemagent` + + - RDS for PostgreSQL - `postgresql | upgrade | iam-db-auth-error` + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + deletion_protection: bool | None = ... + """ + Specifies whether the DB instance has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + + This setting doesn't apply to Amazon Aurora DB instances. You can + enable or disable deletion protection for the DB cluster. For more + information, see `CreateDBCluster`. DB instances in a DB cluster can be + deleted even when deletion protection is enabled for the DB cluster. + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + + For more information about this setting, including limitations that + apply to it, see [Managing capacity automatically with Amazon RDS + storage + autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (Storage is managed by the DB cluster.) + + - RDS Custom + """ + enable_customer_owned_ip: bool | None = ... + """ + Specifies whether to enable a customer-owned IP address (CoIP) for an + RDS on Outposts DB instance. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the DB instance from + outside of its virtual private cloud (VPC) on your local network. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + + Valid Values: `IPV4 | DUAL` + """ + backup_target: str | None = ... + """ + The location for storing automated backups and manual snapshots. + + Valid Values: + + - `local` (Dedicated Local Zone) + + - `outposts` (Amazon Web Services Outposts) + + - `region` (Amazon Web Services Region) + + Default: `region` + + For more information, see [Working with Amazon RDS on Amazon Web + Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + """ + custom_iam_instance_profile: str | None = ... + """ + The instance profile associated with the underlying Amazon EC2 instance + of an RDS Custom DB instance. + + This setting is required for RDS Custom. + + Constraints: + + - The profile must exist in your account. + + - The profile must have an IAM role that Amazon EC2 has permissions to + assume. + + - The instance profile name and the associated IAM role name must start + with the prefix `AWSRDSCustom`. + + For the list of permissions required for the IAM role, see [Configure + IAM and your + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) + in the *Amazon RDS User Guide*. + """ + db_system_id: str | None = ... + """ + The Oracle system identifier (SID), which is the name of the Oracle + database instance that manages your database files. In this context, the + term \"Oracle database instance\" refers exclusively to the system + global area (SGA) and Oracle background processes. If you don't specify + a SID, the value defaults to `RDSCDB`. The Oracle SID is also the name + of your CDB. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB instance's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + multi_tenant: bool | None = ... + """ + Specifies whether to use the multi-tenant configuration or the + single-tenant configuration (default). This parameter only applies to + RDS for Oracle container database (CDB) engines. + + Note the following restrictions: + + - The DB engine that you specify in the request must support the + multi-tenant configuration. If you attempt to enable the multi-tenant + configuration on a DB engine that doesn't support it, the request + fails. + + - If you specify the multi-tenant configuration when you create your DB + instance, you can't later modify this DB instance to use the + single-tenant configuration. + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB instance. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB instance into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, creating the DB instance will fail if the DB major version is + past its end of standard support date. + + This setting applies only to RDS for MySQL and RDS for PostgreSQL. For + Amazon Aurora DB instances, the engine lifecycle support is managed by + the DB cluster. + + You can use this setting to enroll your DB instance into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB instance past the end of standard + support for that engine version. For more information, see [Amazon RDS + Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide*. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to create for the DB instance. You + can create up to three additional storage volumes using the names + `rdsdbdata2`, `rdsdbdata3`, and `rdsdbdata4`. Additional storage volumes + are supported for RDS for Oracle and RDS for SQL Server DB instances + only. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to associate + with this DB instance. You can specify the identifier, which has the + prefix `dbcr-`, or the reservation name. When you specify this + parameter, the DB instance uses reserved capacity from the specified + reservation. + + If you specify `AvailabilityZone`, Amazon RDS places the DB instance in + that Availability Zone, and the reservation must cover it. + + Constraints: + + - The reservation must reserve capacity for the DB instance class and + the database engine of the DB instance. + + - If the reservation reserves capacity for a specific license model, the + license model of the DB instance must match it. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - If you specify `AvailabilityZone`, it must be one of the Availability + Zones of the reservation. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. If the reservation covers + more than two Availability Zones, Amazon RDS chooses the two that the + DB instance uses. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + """ + master_user_authentication_type: str | None = ... + """ + Specifies the authentication type for the master user. With IAM master + user authentication, you can configure the master DB user with IAM + database authentication when you create a DB instance. + + You can specify one of the following values: + + - `password` - Use standard database authentication with a password. + + - `iam-db-auth` - Use IAM database authentication for the master user. + + This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL + engines. + """ + +@dataclass(kw_only=True) +class CreateDBInstanceOutput(_SerdeShape): + """Dataclass for CreateDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBInstanceReadReplicaInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The DB instance identifier of the read replica. This identifier is the + unique key that identifies a DB instance. This parameter is stored as a + lowercase string. + """ + source_db_instance_identifier: str | None = ... + """ + The identifier of the DB instance that will act as the source for the + read replica. Each DB instance can have up to 15 read replicas, except + for the following engines: + + - Db2 - Can have up to three replicas. + + - Oracle - Can have up to five read replicas. + + - SQL Server - Can have up to five read replicas. + + Constraints: + + - Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, + PostgreSQL, or SQL Server DB instance. + + - Can't be specified if the `SourceDBClusterIdentifier` parameter is + also specified. + + - For the limitations of Oracle read replicas, see [Version and + licensing considerations for RDS for Oracle + replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.limitations.html#oracle-read-replicas.limitations.versions-and-licenses) + in the *Amazon RDS User Guide*. + + - For the limitations of SQL Server read replicas, see [Read replica + limitations with SQL + Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.ReadReplicas.html#SQLServer.ReadReplicas.Limitations) + in the *Amazon RDS User Guide*. + + - The specified DB instance must have automatic backups enabled, that + is, its backup retention period must be greater than 0. + + - If the source DB instance is in the same Amazon Web Services Region as + the read replica, specify a valid DB instance identifier. + + - If the source DB instance is in a different Amazon Web Services Region + from the read replica, specify a valid DB instance ARN. For more + information, see [Constructing an ARN for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing) + in the *Amazon RDS User Guide*. This doesn't apply to SQL Server or + RDS Custom, which don't support cross-Region replicas. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity of the read replica, for example + db.m4.large. Not all DB instance classes are available in all Amazon Web + Services Regions, or for all database engines. For the full list of DB + instance classes, and availability for your engine, see [DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Default: Inherits the value from the source DB instance. + """ + availability_zone: str | None = ... + """ + The Availability Zone (AZ) where the read replica will be created. + + Default: A random, system-chosen Availability Zone in the endpoint's + Amazon Web Services Region. + + Example: `us-east-1d` + """ + port: int | None = ... + """ + The port number that the DB instance uses for connections. + + Valid Values: `1150-65535` + + Default: Inherits the value from the source DB instance. + """ + multi_az: bool | None = ... + """ + Specifies whether the read replica is in a Multi-AZ deployment. + + You can create a read replica as a Multi-AZ DB instance. RDS creates a + standby of your replica in another Availability Zone for failover + support for the replica. Creating your read replica as a Multi-AZ DB + instance is independent of whether the source is a Multi-AZ DB instance + or a Multi-AZ DB cluster. + + This setting doesn't apply to RDS Custom DB instances. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether to automatically apply minor engine upgrades to the + read replica during the maintenance window. + + This setting doesn't apply to RDS Custom DB instances. + + Default: Inherits the value from the source DB instance. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + initially allocate for the DB instance. + """ + storage_throughput: int | None = ... + """ + Specifies the storage throughput value for the read replica. + + This setting doesn't apply to RDS Custom or Amazon Aurora DB instances. + """ + option_group_name: str | None = ... + """ + The option group to associate the DB instance with. If not specified, + RDS uses the option group associated with the source DB instance or + cluster. + + Note: + For SQL Server, you must use the option group associated with the + source. + + This setting doesn't apply to RDS Custom DB instances. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to associate with this read replica + DB instance. + + For the Db2 DB engine, if your source DB instance uses the bring your + own license (BYOL) model, then a custom parameter group must be + associated with the replica. For a same Amazon Web Services Region + replica, if you don't specify a custom parameter group, Amazon RDS + associates the custom parameter group associated with the source DB + instance. For a cross-Region replica, you must specify a custom + parameter group. This custom parameter group must include your IBM Site + ID and IBM Customer ID. For more information, see [IBM IDs for bring + your own license (BYOL) for + Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html#db2-prereqs-ibm-info). + + For Single-AZ or Multi-AZ DB instance read replica instances, if you + don't specify a value for `DBParameterGroupName`, then Amazon RDS uses + the `DBParameterGroup` of the source DB instance for a same Region read + replica, or the default `DBParameterGroup` for the specified DB engine + for a cross-Region read replica. + + For Multi-AZ DB cluster same Region read replica instances, if you + don't specify a value for `DBParameterGroupName`, then Amazon RDS uses + the default `DBParameterGroup`. + + Specifying a parameter group for this operation is only supported for + MySQL DB instances for cross-Region read replicas, for Multi-AZ DB + cluster read replica instances, for Db2 DB instances, and for Oracle DB + instances. It isn't supported for MySQL DB instances for same Region + read replicas or for RDS Custom. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB cluster is publicly accessible, its Domain Name System (DNS) + endpoint resolves to the private IP address from within the DB + cluster's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB cluster's VPC. Access to the DB cluster + is ultimately controlled by the security group it uses. That public + access isn't permitted if the security group assigned to the DB cluster + doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + For more information, see CreateDBInstance. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + db_subnet_group_name: str | None = ... + """ + A DB subnet group for the DB instance. The new DB instance is created in + the VPC associated with the DB subnet group. If no DB subnet group is + specified, then the new DB instance isn't created in a VPC. + + Constraints: + + - If supplied, must match the name of an existing DB subnet group. + + - The specified DB subnet group must be in the same Amazon Web Services + Region in which the operation is running. + + - All read replicas in one Amazon Web Services Region that are created + from the same source DB instance must either: + + - Specify DB subnet groups from the same VPC. All these read replicas + are created in the same VPC. + + - Not specify a DB subnet group. All these read replicas are created + outside of any VPC. + + Example: `mydbsubnetgroup` + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of Amazon EC2 VPC security groups to associate with the read + replica. + + This setting doesn't apply to RDS Custom DB instances. + + Default: The default EC2 VPC security group for the DB subnet group's + VPC. + """ + storage_type: str | None = ... + """ + The storage type to associate with the read replica. + + If you specify `io1`, `io2`, or `gp3`, you must also include a value for + the `Iops` parameter. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + Default: `io1` if the `Iops` parameter is specified. Otherwise, `gp3`. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the read replica to snapshots of + the read replica. By default, tags aren't copied. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the read replica. To disable collection of + Enhanced Monitoring metrics, specify `0`. The default is `0`. + + If `MonitoringRoleArn` is specified, then you must set + `MonitoringInterval` to a value other than `0`. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: `0, 1, 5, 10, 15, 30, 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send enhanced monitoring + metrics to Amazon CloudWatch Logs. For example, + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, go to [To create an IAM role for Amazon RDS Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole) + in the *Amazon RDS User Guide*. + + If `MonitoringInterval` is set to a value other than 0, then you must + supply a `MonitoringRoleArn` value. + + This setting doesn't apply to RDS Custom DB instances. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted read + replica. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + For a read replica in the same Amazon Web Services Region as the source + DB instance or Multi-AZ DB cluster, specifying this parameter is + optional. If you specify a KMS key identifier, the read replica is + encrypted with that KMS key, which can be different from the KMS key of + the source. + + If you don't specify a value for this parameter, the read replica is + encrypted with the same KMS key as the source DB instance or Multi-AZ DB + cluster. + + If you create an encrypted read replica in a different Amazon Web + Services Region, then you must specify a KMS key identifier for the + destination Amazon Web Services Region. KMS keys are specific to the + Amazon Web Services Region that they are created in, and you can't use + KMS keys from one Amazon Web Services Region in another Amazon Web + Services Region. + + You can't create an encrypted read replica from an unencrypted DB + instance or Multi-AZ DB cluster. + + This setting doesn't apply to RDS Custom, which uses the same KMS key + as the primary replica. + """ + pre_signed_url: str | None = ... + """ + When you are creating a read replica from one Amazon Web Services + GovCloud (US) Region to another or from one China Amazon Web Services + Region to another, the URL that contains a Signature Version 4 signed + request for the `CreateDBInstanceReadReplica` API operation in the + source Amazon Web Services Region that contains the source DB instance. + + This setting applies only to Amazon Web Services GovCloud (US) Regions + and China Amazon Web Services Regions. It's ignored in other Amazon Web + Services Regions. + + This setting applies only when replicating from a source DB *instance*. + Source DB clusters aren't supported in Amazon Web Services GovCloud + (US) Regions and China Amazon Web Services Regions. + + You must specify this parameter when you create an encrypted read + replica from another Amazon Web Services Region by using the Amazon RDS + API. Don't specify `PreSignedUrl` when you are creating an encrypted + read replica in the same Amazon Web Services Region. + + The presigned URL must be a valid request for the + `CreateDBInstanceReadReplica` API operation that can run in the source + Amazon Web Services Region that contains the encrypted source DB + instance. The presigned URL request must contain the following parameter + values: + + - `DestinationRegion` - The Amazon Web Services Region that the + encrypted read replica is created in. This Amazon Web Services Region + is the same one where the `CreateDBInstanceReadReplica` operation is + called that contains this presigned URL. + + For example, if you create an encrypted DB instance in the us-west-1 + Amazon Web Services Region, from a source DB instance in the us-east-2 + Amazon Web Services Region, then you call the + `CreateDBInstanceReadReplica` operation in the us-east-1 Amazon Web + Services Region and provide a presigned URL that contains a call to + the `CreateDBInstanceReadReplica` operation in the us-west-2 Amazon + Web Services Region. For this example, the `DestinationRegion` in the + presigned URL must be set to the us-east-1 Amazon Web Services Region. + + - `KmsKeyId` - The KMS key identifier for the key to use to encrypt the + read replica in the destination Amazon Web Services Region. This is + the same identifier for both the `CreateDBInstanceReadReplica` + operation that is called in the destination Amazon Web Services + Region, and the operation contained in the presigned URL. + + - `SourceDBInstanceIdentifier` - The DB instance identifier for the + encrypted DB instance to be replicated. This identifier must be in the + Amazon Resource Name (ARN) format for the source Amazon Web Services + Region. For example, if you are creating an encrypted read replica + from a DB instance in the us-west-2 Amazon Web Services Region, then + your `SourceDBInstanceIdentifier` looks like the following example: + `arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115`. + + To learn how to generate a Signature Version 4 signed request, see + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + and [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Note: + If you are using an Amazon Web Services SDK tool or the CLI, you can + specify `SourceRegion` (or `--source-region` for the CLI) instead of + specifying `PreSignedUrl` manually. Specifying `SourceRegion` + autogenerates a presigned URL that is a valid request for the operation + that can run in the source Amazon Web Services Region. + + This setting doesn't apply to RDS Custom DB instances. + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information about IAM database authentication, see [IAM + Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + database_insights_mode: str | None = ... + """ + The mode of Database Insights to enable for the read replica. + + Note: + This setting isn't supported. + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to enable Performance Insights for the read replica. + + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you do not specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS returns an error. + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the new DB instance is to export to CloudWatch + Logs. The values in the list depend on the DB engine being used. For + more information, see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + + This setting doesn't apply to RDS Custom DB instances. + """ + use_default_processor_features: bool | None = ... + """ + Specifies whether the DB instance class of the DB instance uses its + default processor features. + + This setting doesn't apply to RDS Custom DB instances. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB instance. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + """ + domain: str | None = ... + """ + The Active Directory directory ID to create the DB instance in. + Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB + instances can be created in an Active Directory Domain. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_fqdn: str | None = ... + """ + The fully qualified domain name (FQDN) of an Active Directory domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: `mymanagedADtest.mymanagedAD.mydomain` + """ + domain_ou: str | None = ... + """ + The Active Directory organizational unit for your DB instance to join. + + Constraints: + + - Must be in the distinguished name format. + + - Can't be longer than 64 characters. + + Example: + `OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain` + """ + domain_auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + joining the domain. + + Example: + `arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456` + """ + domain_dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of your primary and secondary Active Directory + domain controllers. + + Constraints: + + - Two IP addresses must be provided. If there isn't a secondary domain + controller, use the IP address of the primary domain controller for + both entries in the list. + + Example: `123.124.125.126,234.235.236.237` + """ + replica_mode: str | None = ... + """ + The open mode of the replica database. + + This parameter is only supported for Db2 DB instances and Oracle DB + instances. + + Db2 + + : Standby DB replicas are included in Db2 Advanced Edition (AE), Db2 + Community Edition (CE), and Db2 Standard Edition (SE). The main use + case for standby replicas is cross-Region disaster recovery. Because + it doesn't accept user connections, a standby replica can't serve a + read-only workload. + + You can create a combination of standby and read-only DB replicas for + the same primary DB instance. For more information, see [Working with + replicas for Amazon RDS for + Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-replication.html) + in the *Amazon RDS User Guide*. + + To create standby DB replicas for RDS for Db2, set this parameter to + `mounted`. + + Oracle + + : Mounted DB replicas are included in Oracle Database Enterprise + Edition. The main use case for mounted replicas is cross-Region + disaster recovery. The primary database doesn't use Active Data Guard + to transmit information to the mounted replica. Because it doesn't + accept user connections, a mounted replica can't serve a read-only + workload. + + You can create a combination of mounted and read-only DB replicas for + the same primary DB instance. For more information, see [Working with + read replicas for Amazon RDS for + Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) + in the *Amazon RDS User Guide*. + + For RDS Custom, you must specify this parameter and set it to + `mounted`. The value won't be set by default. After replica creation, + you can manage the open mode manually. + """ + enable_customer_owned_ip: bool | None = ... + """ + Specifies whether to enable a customer-owned IP address (CoIP) for an + RDS on Outposts read replica. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the read replica from + outside of its virtual private cloud (VPC) on your local network. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for read + replica. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + + For more information about this setting, including limitations that + apply to it, see [Managing capacity automatically with Amazon RDS + storage + autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) + in the *Amazon RDS User Guide*. + """ + backup_target: str | None = ... + """ + The location where RDS stores automated backups and manual snapshots. + + Valid Values: + + - `local` for Dedicated Local Zones + + - `region` for Amazon Web Services Region + """ + custom_iam_instance_profile: str | None = ... + """ + The instance profile associated with the underlying Amazon EC2 instance + of an RDS Custom DB instance. The instance profile must meet the + following requirements: + + - The profile must exist in your account. + + - The profile must have an IAM role that Amazon EC2 has permissions to + assume. + + - The instance profile name and the associated IAM role name must start + with the prefix `AWSRDSCustom`. + + For the list of permissions required for the IAM role, see [Configure + IAM and your + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) + in the *Amazon RDS User Guide*. + + This setting is required for RDS Custom DB instances. + """ + allocated_storage: int | None = ... + """ + The amount of storage (in gibibytes) to allocate initially for the read + replica. Follow the allocation rules specified in `CreateDBInstance`. + + This setting isn't valid for RDS for SQL Server. + + Note: + Be sure to allocate enough storage for your read replica so that the + create operation can succeed. You can also allocate additional storage + for future growth. + """ + source_db_cluster_identifier: str | None = ... + """ + The identifier of the Multi-AZ DB cluster that will act as the source + for the read replica. Each DB cluster can have up to 15 read replicas. + + Constraints: + + - Must be the identifier of an existing Multi-AZ DB cluster. + + - Can't be specified if the `SourceDBInstanceIdentifier` parameter is + also specified. + + - The specified DB cluster must have automatic backups enabled, that is, + its backup retention period must be greater than 0. + + - The source DB cluster must be in the same Amazon Web Services Region + as the read replica. Cross-Region replication isn't supported. + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + upgrade_storage_config: bool | None = ... + """ + Whether to upgrade the storage file system configuration on the read + replica. This option migrates the read replica from the old storage file + system layout to the preferred layout. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the read replica's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to create for the DB instance. You + can create up to three additional storage volumes using the names + `rdsdbdata2`, `rdsdbdata3`, and `rdsdbdata4`. Additional storage volumes + are supported for RDS for Oracle and RDS for SQL Server DB instances + only. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to associate + with this read replica. You can specify the identifier, which has the + prefix `dbcr-`, or the reservation name. When you specify this + parameter, the read replica uses reserved capacity from the specified + reservation. A read replica uses one unit of reserved capacity, in the + same way as any other DB instance. + + If you specify `AvailabilityZone`, Amazon RDS places the DB instance in + that Availability Zone, and the reservation must cover it. + + Constraints: + + - The reservation must reserve capacity for the DB instance class and + the database engine of the DB instance. + + - If the reservation reserves capacity for a specific license model, the + license model of the source DB instance must match it. A read replica + inherits its license model from the source DB instance. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - If you specify `AvailabilityZone`, it must be one of the Availability + Zones of the reservation. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. If the reservation covers + more than two Availability Zones, Amazon RDS chooses the two that the + DB instance uses. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + """ + +@dataclass(kw_only=True) +class CreateDBInstanceReadReplicaOutput(_SerdeShape): + """Dataclass for CreateDBInstanceReadReplicaOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBParameterGroupInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Note: + This value is stored as a lowercase string. + """ + db_parameter_group_family: str | None = ... + """ + The DB parameter group family name. A DB parameter group can be + associated with one and only one DB parameter group family, and can be + applied only to a DB instance running a database engine and engine + version compatible with that DB parameter group family. + + To list all of the available parameter group families for a DB engine, + use the following command: + + `aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine ` + + For example, to list all of the available parameter group families for + the MySQL DB engine, use the following command: + + `aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine mysql` + + Note: + The output contains duplicates. + + The following are the valid DB engine values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + description: str | None = ... + """The description for the DB parameter group.""" + tags: list[Tag] | None = ... + """Tags to assign to the DB parameter group.""" + +@dataclass(kw_only=True) +class CreateDBParameterGroupOutput(_SerdeShape): + """Dataclass for CreateDBParameterGroupOutput structure.""" + + db_parameter_group: DBParameterGroup | None = ... + """ + Contains the details of an Amazon RDS DB parameter group. + + This data type is used as a response element in the + `DescribeDBParameterGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBProxyEndpointInput(_SerdeShape): + """Dataclass for CreateDBProxyEndpointInput structure.""" + + db_proxy_name: str | None = ... + """ + The name of the DB proxy associated with the DB proxy endpoint that you + create. + """ + db_proxy_endpoint_name: str | None = ... + """The name of the DB proxy endpoint to create.""" + vpc_subnet_ids: list[str] | None = ... + """ + The VPC subnet IDs for the DB proxy endpoint that you create. You can + specify a different set of subnet IDs than for the original DB proxy. + """ + vpc_security_group_ids: list[str] | None = ... + """ + The VPC security group IDs for the DB proxy endpoint that you create. + You can specify a different set of security group IDs than for the + original DB proxy. The default is the default security group for the + VPC. + """ + target_role: str | None = ... + """ + The role of the DB proxy endpoint. The role determines whether the + endpoint can be used for read/write or only read operations. The default + is `READ_WRITE`. The only role that proxies for RDS for Microsoft SQL + Server support is `READ_WRITE`. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + endpoint_network_type: str | None = ... + """ + The network type of the DB proxy endpoint. The network type determines + the IP version that the proxy endpoint supports. + + Valid values: + + - `IPV4` - The proxy endpoint supports IPv4 only. + + - `IPV6` - The proxy endpoint supports IPv6 only. + + - `DUAL` - The proxy endpoint supports both IPv4 and IPv6. + + Default: `IPV4` + + Constraints: + + - If you specify `IPV6` or `DUAL`, the VPC and all subnets must have an + IPv6 CIDR block. + + - If you specify `IPV6` or `DUAL`, the VPC tenancy cannot be + `dedicated`. + """ + +@dataclass(kw_only=True) +class CreateDBProxyEndpointOutput(_SerdeShape): + """Dataclass for CreateDBProxyEndpointOutput structure.""" + + db_proxy_endpoint: DBProxyEndpoint | None = ... + """ + The `DBProxyEndpoint` object that is created by the API operation. The + DB proxy endpoint that you create might provide capabilities such as + read/write or read-only operations, or using a different VPC than the + proxy's default VPC. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBProxyInput(_SerdeShape): + """Dataclass for CreateDBProxyInput structure.""" + + db_proxy_name: str | None = ... + """ + The identifier for the proxy. This name must be unique for all proxies + owned by your Amazon Web Services account in the specified Amazon Web + Services Region. An identifier must begin with a letter and must contain + only ASCII letters, digits, and hyphens; it can't end with a hyphen or + contain two consecutive hyphens. + """ + engine_family: str | None = ... + """ + The kinds of databases that the proxy can connect to. This value + determines which database network protocol the proxy recognizes when it + interprets network traffic to and from the database. For Aurora MySQL, + RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For + Aurora PostgreSQL and RDS for PostgreSQL databases, specify + `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. + """ + default_auth_scheme: str | None = ... + """ + The default authentication scheme that the proxy uses for client + connections to the proxy and connections from the proxy to the + underlying database. Valid values are `NONE` and `IAM_AUTH`. When set to + `IAM_AUTH`, the proxy uses end-to-end IAM authentication to connect to + the database. If you don't specify `DefaultAuthScheme` or specify this + parameter as `NONE`, you must specify the `Auth` option. + """ + auth: list[UserAuthConfig] | None = ... + """The authorization mechanism that the proxy uses.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that the proxy uses to + access secrets in Amazon Web Services Secrets Manager. + """ + vpc_subnet_ids: list[str] | None = ... + """One or more VPC subnet IDs to associate with the new proxy.""" + vpc_security_group_ids: list[str] | None = ... + """One or more VPC security group IDs to associate with the new proxy.""" + require_tls: bool | None = ... + """ + Specifies whether Transport Layer Security (TLS) encryption is required + for connections to the proxy. By enabling this setting, you can enforce + encrypted TLS connections to the proxy. + """ + idle_client_timeout: int | None = ... + """ + The number of seconds that a connection to the proxy can be inactive + before the proxy disconnects it. You can set this value higher or lower + than the connection timeout limit for the associated database. + """ + debug_logging: bool | None = ... + """ + Specifies whether the proxy logs detailed connection and query + information. When you enable `DebugLogging`, the proxy captures + connection details and connection pool behavior from your queries. Debug + logging increases CloudWatch costs and can impact proxy performance. + Enable this option only when you need to troubleshoot connection or + performance issues. + """ + tags: list[Tag] | None = ... + """ + An optional set of key-value pairs to associate arbitrary data of your + choosing with the proxy. + """ + endpoint_network_type: str | None = ... + """ + The network type of the DB proxy endpoint. The network type determines + the IP version that the proxy endpoint supports. + + Valid values: + + - `IPV4` - The proxy endpoint supports IPv4 only. + + - `IPV6` - The proxy endpoint supports IPv6 only. + + - `DUAL` - The proxy endpoint supports both IPv4 and IPv6. + + Default: `IPV4` + + Constraints: + + - If you specify `IPV6` or `DUAL`, the VPC and all subnets must have an + IPv6 CIDR block. + + - If you specify `IPV6` or `DUAL`, the VPC tenancy cannot be + `dedicated`. + """ + target_connection_network_type: str | None = ... + """ + The network type that the proxy uses to connect to the target database. + The network type determines the IP version that the proxy uses for + connections to the database. + + Valid values: + + - `IPV4` - The proxy connects to the database using IPv4 only. + + - `IPV6` - The proxy connects to the database using IPv6 only. + + Default: `IPV4` + + Constraints: + + - If you specify `IPV6`, the database must support dual-stack mode. RDS + doesn't support IPv6-only databases. + + - All targets registered with the proxy must be compatible with the + specified network type. + """ + +@dataclass(kw_only=True) +class CreateDBProxyOutput(_SerdeShape): + """Dataclass for CreateDBProxyOutput structure.""" + + db_proxy: DBProxy | None = ... + """The `DBProxy` structure corresponding to the new proxy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBSecurityGroupInput(_SerdeShape): + """""" + + db_security_group_name: str | None = ... + """ + The name for the DB security group. This value is stored as a lowercase + string. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + - Must not be \"Default\" + + Example: `mysecuritygroup` + """ + db_security_group_description: str | None = ... + """The description for the DB security group.""" + tags: list[Tag] | None = ... + """Tags to assign to the DB security group.""" + +@dataclass(kw_only=True) +class CreateDBSecurityGroupOutput(_SerdeShape): + """Dataclass for CreateDBSecurityGroupOutput structure.""" + + db_security_group: DBSecurityGroup | None = ... + """ + Contains the details for an Amazon RDS DB security group. + + This data type is used as a response element in the + `DescribeDBSecurityGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBShardGroupInput(_SerdeShape): + """Dataclass for CreateDBShardGroupInput structure.""" + + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + compute_redundancy: int | None = ... + """ + Specifies whether to create standby standby DB data access shard for the + DB shard group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB data access shard. + This is the default value. + + - 1 - Creates a DB shard group with a standby DB data access shard in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB data access shard in + two different AZs. + """ + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access is not permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + Default: The default behavior varies depending on whether + `DBSubnetGroupName` is specified. + + If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the default VPC in the target Region doesn't have an internet + gateway attached to it, the DB shard group is private. + + - If the default VPC in the target Region has an internet gateway + attached to it, the DB shard group is public. + + If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the subnets are part of a VPC that doesn't have an internet gateway + attached to it, the DB shard group is private. + + - If the subnets are part of a VPC that has an internet gateway attached + to it, the DB shard group is public. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CreateDBShardGroupOutput(_SerdeShape): + """Contains the details for an Amazon RDS DB shard group.""" + + db_shard_group_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + shard group. + """ + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + status: str | None = ... + """The status of the DB shard group.""" + publicly_accessible: bool | None = ... + """ + Indicates whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access isn't permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + For more information, see CreateDBShardGroup. + + This setting is only for Aurora Limitless Database. + """ + endpoint: str | None = ... + """The connection endpoint for the DB shard group.""" + db_shard_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB shard group.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBSnapshotInput(_SerdeShape): + """""" + + db_snapshot_identifier: str | None = ... + """ + The identifier for the DB snapshot. + + Constraints: + + - Can't be null, empty, or blank + + - Must contain from 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-snapshot-id` + """ + db_instance_identifier: str | None = ... + """ + The identifier of the DB instance that you want to create the snapshot + of. + + Constraints: + + - Must match the identifier of an existing DBInstance. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CreateDBSnapshotOutput(_SerdeShape): + """Dataclass for CreateDBSnapshotOutput structure.""" + + db_snapshot: DBSnapshot | None = ... + """ + Contains the details of an Amazon RDS DB snapshot. + + This data type is used as a response element in the + `DescribeDBSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateDBSubnetGroupInput(_SerdeShape): + """""" + + db_subnet_group_name: str | None = ... + """ + The name for the DB subnet group. This value is stored as a lowercase + string. + + Constraints: + + - Must contain no more than 255 letters, numbers, periods, underscores, + spaces, or hyphens. + + - Must not be default. + + - First character must be a letter. + + Example: `mydbsubnetgroup` + """ + db_subnet_group_description: str | None = ... + """The description for the DB subnet group.""" + subnet_ids: list[str] | None = ... + """The EC2 Subnet IDs for the DB subnet group.""" + tags: list[Tag] | None = ... + """Tags to assign to the DB subnet group.""" + +@dataclass(kw_only=True) +class CreateDBSubnetGroupOutput(_SerdeShape): + """Dataclass for CreateDBSubnetGroupOutput structure.""" + + db_subnet_group: DBSubnetGroup | None = ... + """ + Contains the details of an Amazon RDS DB subnet group. + + This data type is used as a response element in the + `DescribeDBSubnetGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateEventSubscriptionInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """ + The name of the subscription. + + Constraints: The name must be less than 255 characters. + """ + sns_topic_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the SNS topic created for event + notification. SNS automatically creates the ARN when you create a topic + and subscribe to it. + + Note: + RDS doesn't support FIFO (first in, first out) topics. For more + information, see [Message ordering and deduplication (FIFO + topics)](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html) + in the *Amazon Simple Notification Service Developer Guide*. + """ + source_type: str | None = ... + """ + The type of source that is generating the events. For example, if you + want to be notified of events generated by a DB instance, you set this + parameter to `db-instance`. For RDS Proxy events, specify `db-proxy`. If + this value isn't specified, all events are returned. + + Valid + Values:` db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment ` + """ + event_categories: list[str] | None = ... + """ + A list of event categories for a particular source type (`SourceType`) + that you want to subscribe to. You can see a list of the categories for + a given source type in the \"Amazon RDS event categories and event + messages\" section of the [*Amazon RDS User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) + or the [*Amazon Aurora User + Guide*](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) + . You can also see this list by using the `DescribeEventCategories` + operation. + """ + source_ids: list[str] | None = ... + """ + The list of identifiers of the event sources for which events are + returned. If not specified, then all sources are included in the + response. An identifier must begin with a letter and must contain only + ASCII letters, digits, and hyphens. It can't end with a hyphen or + contain two consecutive hyphens. + + Constraints: + + - If `SourceIds` are supplied, `SourceType` must also be provided. + + - If the source type is a DB instance, a `DBInstanceIdentifier` value + must be supplied. + + - If the source type is a DB cluster, a `DBClusterIdentifier` value must + be supplied. + + - If the source type is a DB parameter group, a `DBParameterGroupName` + value must be supplied. + + - If the source type is a DB security group, a `DBSecurityGroupName` + value must be supplied. + + - If the source type is a DB snapshot, a `DBSnapshotIdentifier` value + must be supplied. + + - If the source type is a DB cluster snapshot, a + `DBClusterSnapshotIdentifier` value must be supplied. + + - If the source type is an RDS Proxy, a `DBProxyName` value must be + supplied. + """ + enabled: bool | None = ... + """ + Specifies whether to activate the subscription. If the event + notification subscription isn't activated, the subscription is created + but not active. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CreateEventSubscriptionOutput(_SerdeShape): + """Dataclass for CreateEventSubscriptionOutput structure.""" + + event_subscription: EventSubscription | None = ... + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateGlobalClusterInput(_SerdeShape): + """Dataclass for CreateGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The cluster identifier for this global database cluster. This parameter + is stored as a lowercase string. + """ + source_db_cluster_identifier: str | None = ... + """ + The Amazon Resource Name (ARN) to use as the primary cluster of the + global database. + + If you provide a value for this parameter, don't specify values for the + following settings because Amazon Aurora uses the values from the + specified source DB cluster: + + - `DatabaseName` + + - `Engine` + + - `EngineVersion` + + - `StorageEncrypted` + """ + engine: str | None = ... + """ + The database engine to use for this global database cluster. + + Valid Values: `aurora-mysql | aurora-postgresql` + + Constraints: + + - Can't be specified if `SourceDBClusterIdentifier` is specified. In + this case, Amazon Aurora uses the engine of the source DB cluster. + """ + engine_version: str | None = ... + """ + The engine version to use for this global database cluster. + + Constraints: + + - Can't be specified if `SourceDBClusterIdentifier` is specified. In + this case, Amazon Aurora uses the engine version of the source DB + cluster. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this global database cluster. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your global cluster into Amazon RDS Extended Support. At + the end of standard support, you can avoid charges for Extended Support + by setting the value to `open-source-rds-extended-support-disabled`. In + this case, creating the global cluster will fail if the DB major version + is past its end of standard support date. + + This setting only applies to Aurora PostgreSQL-based global databases. + + You can use this setting to enroll your global cluster into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your global cluster past the end of standard + support for that engine version. For more information, see [Amazon RDS + Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide*. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the new global + database cluster. The global database can't be deleted when deletion + protection is enabled. + """ + database_name: str | None = ... + """ + The name for your database of up to 64 alphanumeric characters. If you + don't specify a name, Amazon Aurora doesn't create a database in the + global database cluster. + + Constraints: + + - Can't be specified if `SourceDBClusterIdentifier` is specified. In + this case, Amazon Aurora uses the database name from the source DB + cluster. + """ + storage_encrypted: bool | None = ... + """ + Specifies whether to enable storage encryption for the new global + database cluster. + + Constraints: + + - Can't be specified if `SourceDBClusterIdentifier` is specified. In + this case, Amazon Aurora uses the setting from the source DB cluster. + """ + tags: list[Tag] | None = ... + """Tags to assign to the global cluster.""" + +@dataclass(kw_only=True) +class CreateGlobalClusterOutput(_SerdeShape): + """Dataclass for CreateGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateIntegrationInput(_SerdeShape): + """Dataclass for CreateIntegrationInput structure.""" + + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the database to use as the source for + replication. + """ + target_arn: str | None = ... + """ + The ARN of the Redshift data warehouse to use as the target for + replication. + """ + integration_name: str | None = ... + """The name of the integration.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services Key Management System (Amazon Web Services KMS) + key identifier for the key to use to encrypt the integration. If you + don't specify an encryption key, RDS uses a default Amazon Web Services + owned key. + """ + additional_encryption_context: dict[str, str] | None = ... + """ + An optional set of non-secret key--value pairs that contains additional + contextual information about the data. For more information, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the *Amazon Web Services Key Management Service Developer Guide*. + + You can only include this parameter if you specify the `KMSKeyId` + parameter. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + data_filter: str | None = ... + """ + Data filtering options for the integration. For more information, see + [Data filtering for Aurora zero-ETL integrations with Amazon + Redshift](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.filtering.html) + or [Data filtering for Amazon RDS zero-ETL integrations with Amazon + Redshift](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/zero-etl.filtering.html). + """ + description: str | None = ... + """A description of the integration.""" + +@dataclass(kw_only=True) +class CreateIntegrationOutput(_SerdeShape): + """A zero-ETL integration with Amazon Redshift.""" + + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the database used as the source for + replication. + """ + target_arn: str | None = ... + """ + The ARN of the Redshift data warehouse used as the target for + replication. + """ + integration_name: str | None = ... + """The name of the integration.""" + integration_arn: str | None = ... + """The ARN of the integration.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services Key Management System (Amazon Web Services KMS) + key identifier for the key used to to encrypt the integration. + """ + additional_encryption_context: dict[str, str] | None = ... + """ + The encryption context for the integration. For more information, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + status: str | None = ... + """The current status of the integration.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + data_filter: str | None = ... + """ + Data filters for the integration. These filters determine which tables + from the source database are sent to the target Amazon Redshift data + warehouse. + """ + description: str | None = ... + """A description of the integration.""" + create_time: datetime | None = ... + """ + The time when the integration was created, in Universal Coordinated Time + (UTC). + """ + errors: list[IntegrationError] | None = ... + """Any errors associated with the integration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateOptionGroupInput(_SerdeShape): + """""" + + option_group_name: str | None = ... + """ + Specifies the name of the option group to be created. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `myoptiongroup` + """ + engine_name: str | None = ... + """ + The name of the engine to associate this option group with. + + Valid Values: + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + major_engine_version: str | None = ... + """ + Specifies the major version of the engine that this option group should + be associated with. + """ + option_group_description: str | None = ... + """The description of the option group.""" + tags: list[Tag] | None = ... + """Tags to assign to the option group.""" + +@dataclass(kw_only=True) +class CreateOptionGroupOutput(_SerdeShape): + """Dataclass for CreateOptionGroupOutput structure.""" + + option_group: OptionGroup | None = ... + """""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateTenantDatabaseInput(_SerdeShape): + """Dataclass for CreateTenantDatabaseInput structure.""" + + db_instance_identifier: str | None = ... + """ + The user-supplied DB instance identifier. RDS creates your tenant + database in this DB instance. This parameter isn't case-sensitive. + """ + tenant_db_name: str | None = ... + """ + The user-supplied name of the tenant database that you want to create in + your DB instance. This parameter has the same constraints as `DBName` in + `CreateDBInstance`. + """ + master_username: str | None = ... + """ + The name for the master user account in your tenant database. RDS + creates this user account in the tenant database and grants privileges + to the master user. This parameter is case-sensitive. + + Constraints: + + - Must be 1 to 16 letters, numbers, or underscores. + + - First character must be a letter. + + - Can't be a reserved word for the chosen database engine. + """ + master_user_password: str | None = ... + """ + The password for the master user in your tenant database. + + Constraints: + + - Must be 8 to 30 characters. + + - Can include any printable ASCII character except forward slash (`/`), + double quote (`"`), at symbol (`@`), ampersand (`&`), or single quote + (`'`). + + - Can't be specified when `ManageMasterUserPassword` is enabled. + """ + character_set_name: str | None = ... + """ + The character set for your tenant database. If you don't specify a + value, the character set name defaults to `AL32UTF8`. + """ + nchar_character_set_name: str | None = ... + """The `NCHAR` value for the tenant database.""" + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class CreateTenantDatabaseOutput(_SerdeShape): + """Dataclass for CreateTenantDatabaseOutput structure.""" + + tenant_database: TenantDatabase | None = ... + """ + A tenant database in the DB instance. This data type is an element in + the response to the `DescribeTenantDatabases` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomAvailabilityZoneNotFoundFault(ServiceError, _SerdeShape): + """ + `CustomAvailabilityZoneId` doesn't refer to an existing custom + Availability Zone identifier. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomDBEngineVersionAlreadyExistsFault(ServiceError, _SerdeShape): + """A CEV with the specified name already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomDBEngineVersionAMI(_SerdeShape): + """A value that indicates the AMI information.""" + + image_id: str | None = ... + """A value that indicates the ID of the AMI.""" + status: str | None = ... + """A value that indicates the status of a custom engine version (CEV).""" + +@dataclass(kw_only=True) +class CustomDBEngineVersionNotFoundFault(ServiceError, _SerdeShape): + """The specified CEV was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CustomDBEngineVersionQuotaExceededFault(ServiceError, _SerdeShape): + """You have exceeded your CEV quota.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CustomEngineVersionStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + INACTIVE = "inactive" + INACTIVE_EXCEPT_RESTORE = "inactive-except-restore" + +class DatabaseInsightsMode(UnknownEnumMixin, StrEnum): + STANDARD = "standard" + ADVANCED = "advanced" + +@dataclass(kw_only=True) +class DBCapacityReservation(_SerdeShape): + """ + Contains the details of a DB capacity reservation. + + This data type is used as a response element in the following + operations: + + - `CancelDBCapacityReservation` + + - `CreateDBCapacityReservation` + + - `DescribeDBCapacityReservations` + + - `ModifyDBCapacityReservation` + """ + + db_capacity_reservation_name: str | None = ... + """The name that you specified for the DB capacity reservation.""" + db_instance_class: str | None = ... + """ + The DB instance class for the reserved capacity. You specify this value + when you create the reservation, and you can't change it afterward. + """ + engine: str | None = ... + """ + The database engine for the reserved capacity. You specify this value + when you create the reservation, and you can't change it afterward. + """ + license_model: str | None = ... + """ + The license model for the reserved capacity. Amazon RDS returns this + value only for a reservation that reserves capacity for a specific + license model. Amazon RDS doesn't return this value for a reservation + whose database engine doesn't support a license model. + + A DB instance launches into the reservation only when the license model + of the DB instance matches this value. For a reservation that holds no + license model, Amazon RDS applies no license model check at launch. + + Valid Values: + + - RDS for Microsoft SQL Server Enterprise Edition and Standard Edition - + `license-included | bring-your-own-media` + + - RDS for Microsoft SQL Server Developer Edition - + `bring-your-own-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for Db2 Standard Edition and Advanced Edition - + `bring-your-own-license | marketplace-license` + + For RDS for Db2 Standard Edition and Advanced Edition, a reservation + created without a license model holds `bring-your-own-license`. + """ + reserved_capacity_per_availability_zone: int | None = ... + """ + The number of DB instances that Amazon RDS reserves in each Availability + Zone of the reservation. This value matches the + `CapacityPerAvailabilityZone` parameter of the request. The total + reserved capacity is this value multiplied by the number of Availability + Zones of the reservation. + """ + available_capacity_per_availability_zone_list: ( + list[AvailableCapacityPerAvailabilityZone] | None + ) = ... + """ + The unused capacity of the reservation, reported for each Availability + Zone of the reservation. Each entry names one Availability Zone, and it + reports the number of DB instances that remain available in that + Availability Zone. + + Amazon RDS reports available capacity only for a reservation that is in + the `active` state and not past its end date. Otherwise, each entry + reports an available capacity of `0`. A future-dated reservation that + hasn't started reports `0`, and a reservation that Amazon RDS is + modifying reports `0`. + + A reservation reports the `pending` state while Amazon RDS modifies it. + Therefore, a reservation in the `active` state that reports no available + capacity has no unused capacity. + """ + end_date: datetime | None = ... + """ + The date and time when the reservation expires, in Universal Coordinated + Time (UTC). Amazon RDS doesn't return this value if the reservation + doesn't expire. + + Warning: + A DB instance that uses the reservation keeps running after the + reservation expires. It continues on unreserved capacity, and Amazon RDS + doesn't stop it or modify it. However, Amazon RDS no longer reserves + capacity for the DB instance. Amazon RDS might later move the DB + instance to different hardware, for example during hardware maintenance. + That move can fail when the Amazon Web Services Region has insufficient + capacity for the DB instance class. + """ + create_date: datetime | None = ... + """ + The date and time when the reservation was created, in Universal + Coordinated Time (UTC). + """ + start_date: datetime | None = ... + """ + The date and time when a future-dated reservation starts, in Universal + Coordinated Time (UTC). Amazon RDS doesn't return this value for a + reservation that started immediately. + """ + commitment_info: DBCapacityReservationCommitmentInfo | None = ... + """ + The capacity commitment of the reservation. Amazon RDS returns this + object only for a future-dated reservation. + """ + state: str | None = ... + """ + The current state of the DB capacity reservation. A DB instance can use + the reservation in the `active` state only. + + Valid Values: + + - `active` - Amazon RDS holds the reserved capacity, and a DB instance + can use it. + + - `pending` - The reservation isn't ready to use yet. Amazon RDS is + creating the reserved capacity, or it is applying a requested + modification. + + - `assessing` - Amazon RDS is evaluating the request for a future-dated + reservation. + + - `scheduled` - Amazon RDS accepted a future-dated reservation, and the + reservation is waiting for its start date. + + - `delayed` - Amazon RDS couldn't provide the reserved capacity of a + future-dated reservation by its start date. + + - `unsupported` - Amazon RDS can't fulfill the future-dated reservation + as requested. + + - `expired` - The reservation passed its end date. Amazon RDS releases + the reserved capacity. + + - `cancelled` - You cancelled the reservation, and Amazon RDS released + the reserved capacity. + + - `failed` - Amazon RDS couldn't reserve the capacity. + + The values `assessing`, `scheduled`, `delayed`, and `unsupported` apply + to a future-dated reservation only. + """ + db_capacity_reservation_arn: str | None = ... + """The Amazon Resource Name (ARN) of the DB capacity reservation.""" + db_capacity_reservation_identifier: str | None = ... + """ + The unique identifier of the DB capacity reservation. The identifier has + the prefix `dbcr-`. Every other DB capacity reservation operation takes + this identifier. + """ + tag_list: list[Tag] | None = ... + """The tags associated with the DB capacity reservation.""" + +@dataclass(kw_only=True) +class DBCapacityReservationAlreadyExistsFault(ServiceError, _SerdeShape): + """ + You already have a DB capacity reservation with the given name. Choose a + different name for the new reservation, or use the existing reservation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBCapacityReservationCommitmentInfo(_SerdeShape): + """ + Contains the capacity commitment details of a DB capacity reservation, + including the number of committed DB instances in each Availability Zone + and the end date of the commitment period. Amazon RDS holds the + committed capacity until the commitment ends. Amazon RDS rejects a + request to cancel a reservation in the `active` state, and a request to + reduce the reserved capacity below the commitment. + + This data type is used as a response element in the following + operations: + + - `CancelDBCapacityReservation` + + - `CreateDBCapacityReservation` + + - `DescribeDBCapacityReservations` + + - `ModifyDBCapacityReservation` + """ + + committed_capacity_per_availability_zone: int | None = ... + """ + The number of DB instances that Amazon RDS holds in each Availability + Zone of the reservation for the length of the commitment. + """ + commitment_end_date: datetime | None = ... + """ + The date and time when the commitment ends, in Universal Coordinated + Time (UTC). This date reports the capacity commitment that Amazon RDS + granted. + + Amazon RDS can grant a shorter capacity commitment than you request in + `CommitmentDuration`. Therefore, this date can fall earlier than + `StartDate` plus `CommitmentDuration`. + """ + +@dataclass(kw_only=True) +class DBCapacityReservationNotFoundFault(ServiceError, _SerdeShape): + """ + `DBCapacityReservationIdentifier` doesn't refer to an existing DB + capacity reservation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DBCapacityReservationState(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + EXPIRED = "expired" + CANCELLED = "cancelled" + PENDING = "pending" + FAILED = "failed" + ASSESSING = "assessing" + SCHEDULED = "scheduled" + DELAYED = "delayed" + UNSUPPORTED = "unsupported" + +@dataclass(kw_only=True) +class DBCapacityReservationUnsupportedFault(ServiceError, _SerdeShape): + """ + The specified configuration isn't supported for DB capacity + reservations. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBCluster(_SerdeShape): + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + + allocated_storage: int | None = ... + """ + `AllocatedStorage` specifies the allocated storage size in gibibytes + (GiB). For Aurora, `AllocatedStorage` can vary because Aurora DB cluster + storage size adjusts as needed. + """ + availability_zones: list[str] | None = ... + """ + The list of Availability Zones (AZs) where instances in the DB cluster + can be created. + """ + backup_retention_period: int | None = ... + """The number of days for which automatic DB snapshots are retained.""" + character_set_name: str | None = ... + """ + If present, specifies the name of the character set that this cluster is + associated with. + """ + database_name: str | None = ... + """ + The name of the initial database that was specified for the DB cluster + when it was created, if one was provided. This same name is returned for + the life of the DB cluster. + """ + db_cluster_identifier: str | None = ... + """ + The user-supplied identifier for the DB cluster. This identifier is the + unique key that identifies a DB cluster. + """ + db_cluster_parameter_group: str | None = ... + """The name of the DB cluster parameter group for the DB cluster.""" + db_subnet_group: str | None = ... + """ + Information about the subnet group associated with the DB cluster, + including the name, description, and subnets in the subnet group. + """ + status: str | None = ... + """The current state of this DB cluster.""" + percent_progress: str | None = ... + """The progress of the operation as a percentage.""" + earliest_restorable_time: datetime | None = ... + """ + The earliest time to which a database can be restored with point-in-time + restore. + """ + endpoint: str | None = ... + """The connection endpoint for the primary instance of the DB cluster.""" + reader_endpoint: str | None = ... + """ + The reader endpoint for the DB cluster. The reader endpoint for a DB + cluster load-balances connections across the Aurora Replicas that are + available in a DB cluster. As clients request new connections to the + reader endpoint, Aurora distributes the connection requests among the + Aurora Replicas in the DB cluster. This functionality can help balance + your read workload across multiple Aurora Replicas in your DB cluster. + + If a failover occurs, and the Aurora Replica that you are connected to + is promoted to be the primary instance, your connection is dropped. To + continue sending your read workload to other Aurora Replicas in the + cluster, you can then reconnect to the reader endpoint. + """ + custom_endpoints: list[str] | None = ... + """The custom endpoints associated with the DB cluster.""" + multi_az: bool | None = ... + """ + Indicates whether the DB cluster has instances in multiple Availability + Zones. + """ + engine: str | None = ... + """The database engine used for this DB cluster.""" + engine_version: str | None = ... + """The version of the database engine.""" + latest_restorable_time: datetime | None = ... + """ + The latest time to which a database can be restored with point-in-time + restore. + """ + port: int | None = ... + """The port that the database engine is listening on.""" + master_username: str | None = ... + """The master username for the DB cluster.""" + db_cluster_option_group_memberships: list[DBClusterOptionGroupStatus] | None = ... + """The list of option group memberships for this DB cluster.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur, in + Universal Coordinated Time (UTC). + """ + upgrade_rollout_order: str | None = ... + """ + This data type represents the order in which the clusters are upgraded. + + - [first] - Typically used for development or testing environments. + + - [second] - Default order for resources not specifically configured. + + - [last] - Usually reserved for production environments. + """ + replication_source_identifier: str | None = ... + """ + The identifier of the source DB cluster if this DB cluster is a read + replica. + """ + read_replica_identifiers: list[str] | None = ... + """ + Contains one or more identifiers of the read replicas associated with + this DB cluster. + """ + status_infos: list[DBClusterStatusInfo] | None = ... + """Reserved for future use.""" + db_cluster_members: list[DBClusterMember] | None = ... + """The list of DB instances that make up the DB cluster.""" + vpc_security_groups: list[VpcSecurityGroupMembership] | None = ... + """The list of VPC security groups that the DB cluster belongs to.""" + hosted_zone_id: str | None = ... + """The ID that Amazon Route 53 assigns when you create a hosted zone.""" + storage_encrypted: bool | None = ... + """ + Specifies whether the DB cluster is encrypted with an Amazon Web + Services managed key or a customer managed key. + + If the DB cluster is encrypted with an Amazon Web Services owned key, + this value is `false` and `StorageEncryptionType` is `sse-rds`. In that + case, the data at rest is still encrypted. To determine how the data at + rest is protected, use `StorageEncryptionType`. + """ + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the DB cluster. + Possible values: + + - `none` - The DB cluster is not encrypted. + + - `sse-rds` - The DB cluster is encrypted using an Amazon Web Services + owned KMS key. + + - `sse-kms` - The DB cluster is encrypted using a customer managed KMS + key or Amazon Web Services managed KMS key. + """ + kms_key_id: str | None = ... + """ + If `StorageEncrypted` is enabled, the Amazon Web Services KMS key + identifier for the encrypted DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + db_cluster_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + cluster. This identifier is found in Amazon Web Services CloudTrail log + entries whenever the KMS key for the DB cluster is accessed. + """ + db_cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB cluster.""" + associated_roles: list[DBClusterRole] | None = ... + """ + A list of the Amazon Web Services Identity and Access Management (IAM) + roles that are associated with the DB cluster. IAM roles that are + associated with a DB cluster grant permission for the DB cluster to + access other Amazon Web Services on your behalf. + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether the mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + clone_group_id: str | None = ... + """ + The ID of the clone group with which the DB cluster is associated. For + newly created clusters, the ID is typically null. + + If you clone a DB cluster when the ID is null, the operation populates + the ID value for the source cluster and the clone because both clusters + become part of the same clone group. Even if you delete the clone + cluster, the clone group ID remains for the lifetime of the source + cluster to show that it was used in a cloning operation. + + For PITR, the clone group ID is inherited from the source cluster. For + snapshot restore operations, the clone group ID isn't inherited from + the source cluster. + """ + cluster_create_time: datetime | None = ... + """ + The time when the DB cluster was created, in Universal Coordinated Time + (UTC). + """ + earliest_backtrack_time: datetime | None = ... + """The earliest time to which a DB cluster can be backtracked.""" + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. If this value is set to `0`, + backtracking is disabled for the DB cluster. Otherwise, backtracking is + enabled. + """ + backtrack_consumed_change_records: int | None = ... + """The number of change records stored for Backtrack.""" + enabled_cloudwatch_logs_exports: list[str] | None = ... + """ + A list of log types that this DB cluster is configured to export to + CloudWatch Logs. + + Log types vary by DB engine. For information about the log types for + each DB engine, see [Amazon RDS Database Log + Files](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html) + in the *Amazon Aurora User Guide.* + """ + capacity: int | None = ... + """ + The current capacity of an Aurora Serverless v1 DB cluster. The capacity + is `0` (zero) when the cluster is paused. + + For more information about Aurora Serverless v1, see [Using Amazon + Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + """ + pending_modified_values: ClusterPendingModifiedValues | None = ... + """ + Information about pending changes to the DB cluster. This information is + returned only when there are pending changes. Specific changes are + identified by subelements. + """ + engine_mode: str | None = ... + """ + The DB engine mode of the DB cluster, either `provisioned` or + `serverless`. + + For more information, see + [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html). + """ + scaling_configuration_info: ScalingConfigurationInfo | None = ... + """ + The scaling configuration for an Aurora DB cluster in `serverless` DB + engine mode. + + For more information, see [Using Amazon Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + """ + rds_custom_cluster_configuration: RdsCustomClusterConfiguration | None = ... + """Reserved for future use.""" + db_cluster_instance_class: str | None = ... + """ + The name of the compute and memory capacity class of the DB instance. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + storage_type: str | None = ... + """The storage type associated with the DB cluster.""" + iops: int | None = ... + """ + The Provisioned IOPS (I/O operations per second) value. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + storage_throughput: int | None = ... + """ + The storage throughput for the DB cluster. The throughput is + automatically set based on the IOPS that you provision, and is not + configurable. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + io_optimized_next_allowed_modification_time: datetime | None = ... + """ + The next time you can modify the DB cluster to use the `aurora-iopt1` + storage type. + + This setting is only for Aurora DB clusters. + """ + publicly_accessible: bool | None = ... + """ + Indicates whether the DB cluster is publicly accessible. + + When the DB cluster is publicly accessible and you connect from outside + of the DB cluster's virtual private cloud (VPC), its Domain Name System + (DNS) endpoint resolves to the public IP address. When you connect from + within the same VPC as the DB cluster, the endpoint resolves to the + private IP address. Access to the DB cluster is ultimately controlled by + the security group it uses. That public access isn't permitted if the + security group assigned to the DB cluster doesn't permit it. + + When the DB cluster isn't publicly accessible, it is an internal DB + cluster with a DNS name that resolves to a private IP address. + + For more information, see CreateDBCluster. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Indicates whether minor version patches are applied automatically. + + This setting is for Aurora DB clusters and Multi-AZ DB clusters. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + deletion_protection: bool | None = ... + """ + Indicates whether the DB cluster has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. + """ + http_endpoint_enabled: bool | None = ... + """ + Indicates whether the HTTP endpoint is enabled for an Aurora DB cluster. + + When enabled, the HTTP endpoint provides a connectionless web service + API (RDS Data API) for running SQL queries on the DB cluster. You can + also query your database from inside the RDS console with the RDS query + editor. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + """ + activity_stream_mode: str | None = ... + """ + The mode of the database activity stream. Database events such as a + change or access generate an activity stream event. The database session + can handle these events either synchronously or asynchronously. + """ + activity_stream_status: str | None = ... + """The status of the database activity stream.""" + activity_stream_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier used for encrypting messages + in the database activity stream. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + activity_stream_kinesis_stream_name: str | None = ... + """ + The name of the Amazon Kinesis data stream used for the database + activity stream. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Indicates whether tags are copied from the DB cluster to snapshots of + the DB cluster. + """ + cross_account_clone: bool | None = ... + """ + Indicates whether the DB cluster is a clone of a DB cluster owned by a + different Amazon Web Services account. + """ + domain_memberships: list[DomainMembership] | None = ... + """ + The Active Directory Domain membership records associated with the DB + cluster. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + global_cluster_identifier: str | None = ... + """ + Contains a user-supplied global database cluster identifier. This + identifier is the unique key that identifies a global database cluster. + """ + global_write_forwarding_status: str | None = ... + """ + The status of write forwarding for a secondary cluster in an Aurora + global database. + """ + global_write_forwarding_requested: bool | None = ... + """ + Indicates whether write forwarding is enabled for a secondary cluster in + an Aurora global database. Because write forwarding takes time to + enable, check the value of `GlobalWriteForwardingStatus` to confirm that + the request has completed before using the write forwarding feature for + this cluster. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + This setting is only for Aurora DB clusters. + + Valid Values: `IPV4 | DUAL` + """ + automatic_restart_time: datetime | None = ... + """The time when a stopped DB cluster is restarted automatically.""" + serverless_v2_scaling_configuration: ( + ServerlessV2ScalingConfigurationInfo | None + ) = ... + """ + The scaling configuration for an Aurora Serverless v2 DB cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + serverless_v2_platform_version: str | None = ... + """ + The version of the Aurora Serverless V2 platform used by the DB cluster. + For more information, see [Using Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB cluster. + + This setting is only for -Aurora DB clusters and Multi-AZ DB clusters. + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send Enhanced Monitoring + metrics to Amazon CloudWatch Logs. + + This setting is only for Aurora DB clusters and Multi-AZ DB clusters. + """ + database_insights_mode: str | None = ... + """The mode of Database Insights that is enabled for the DB cluster.""" + performance_insights_enabled: bool | None = ... + """ + Indicates whether Performance Insights is enabled for the DB cluster. + + This setting is only for Aurora DB clusters and Multi-AZ DB clusters. + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + This setting is only for Aurora DB clusters and Multi-AZ DB clusters. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + This setting is only for Aurora DB clusters and Multi-AZ DB clusters. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + """ + db_system_id: str | None = ... + """Reserved for future use.""" + master_user_secret: MasterUserSecret | None = ... + """ + The secret managed by RDS in Amazon Web Services Secrets Manager for the + master user password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + """ + local_write_forwarding_status: str | None = ... + """ + Indicates whether an Aurora DB cluster has in-cluster write forwarding + enabled, not enabled, requested, or is in the process of enabling it. + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + """ + limitless_database: LimitlessDatabase | None = ... + """The details for Aurora Limitless Database.""" + cluster_scalability_type: str | None = ... + """ + The scalability mode of the Aurora DB cluster. When set to `limitless`, + the cluster operates as an Aurora Limitless Database. When set to + `standard` (the default), the cluster uses normal DB instance creation. + """ + certificate_details: CertificateDetails | None = ... + """ + The details of the DB instance's server certificate. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for the DB cluster. + + For more information, see CreateDBCluster. + """ + vpc_networking_enabled: bool | None = ... + """ + Indicates whether the DB cluster uses VPC-based networking. + + This setting is applicable only for Aurora PostgreSQL clusters created + through express configuration. + """ + internet_access_gateway_enabled: bool | None = ... + """ + Indicates whether the DB cluster has internet-based connectivity enabled + through an internet access gateway. + + This setting is applicable only for Aurora PostgreSQL clusters created + through express configuration. + """ + +@dataclass(kw_only=True) +class DBClusterAlreadyExistsFault(ServiceError, _SerdeShape): + """The user already has a DB cluster with the given identifier.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterAssociatedRole(_SerdeShape): + """ + Contains information about an Amazon Web Services Identity and Access + Management (IAM) role to associate with a DB cluster. You can specify + this structure in the `AssociatedRoles` parameter of CreateDBCluster, + RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, and + RestoreDBClusterToPointInTime. + """ + + role_arn: str + """ + The Amazon Resource Name (ARN) of the IAM role to associate with the DB + cluster. + """ + feature_name: str | None = ... + """ + The name of the feature associated with the IAM role. For information + about supported feature names, see DBEngineVersion. + """ + +@dataclass(kw_only=True) +class DBClusterAutomatedBackup(_SerdeShape): + """ + An automated backup of a DB cluster. It consists of system backups, + transaction logs, and the database cluster properties that existed at + the time you deleted the source cluster. + """ + + engine: str | None = ... + """The name of the database engine for this automated backup.""" + vpc_id: str | None = ... + """The VPC ID associated with the DB cluster.""" + db_cluster_automated_backups_arn: str | None = ... + """The Amazon Resource Name (ARN) for the automated backups.""" + db_cluster_identifier: str | None = ... + """ + The identifier for the source DB cluster, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + restore_window: RestoreWindow | None = ... + """Earliest and latest time an instance can be restored to:""" + master_username: str | None = ... + """The master user name of the automated backup.""" + db_cluster_resource_id: str | None = ... + """ + The resource ID for the source DB cluster, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + region: str | None = ... + """The Amazon Web Services Region associated with the automated backup.""" + license_model: str | None = ... + """The license model information for this DB cluster automated backup.""" + status: str | None = ... + """ + A list of status information for an automated backup: + + - `retained` - Automated backups for deleted clusters. + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + cluster_create_time: datetime | None = ... + """ + The time when the DB cluster was created, in Universal Coordinated Time + (UTC). + """ + storage_encrypted: bool | None = ... + """Indicates whether the source DB cluster is encrypted.""" + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the automated + backup. Possible values: + + - `none` - The automated backup is not encrypted. + + - `sse-rds` - The automated backup is encrypted using an Amazon Web + Services owned KMS key. + + - `sse-kms` - The automated backup is encrypted using a customer managed + KMS key or Amazon Web Services managed KMS key. + """ + allocated_storage: int | None = ... + """ + For all database engines except Amazon Aurora, `AllocatedStorage` + specifies the allocated storage size in gibibytes (GiB). For Aurora, + `AllocatedStorage` always returns 1, because Aurora DB cluster storage + size isn't fixed, but instead automatically adjusts as needed. + """ + engine_version: str | None = ... + """The version of the database engine for the automated backup.""" + db_cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) for the source DB cluster.""" + backup_retention_period: int | None = ... + """The retention period for the automated backups.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + engine_mode: str | None = ... + """The engine mode of the database engine for the automated backup.""" + availability_zones: list[str] | None = ... + """ + The Availability Zones where instances in the DB cluster can be created. + For information on Amazon Web Services Regions and Availability Zones, + see [Regions and Availability + Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html). + """ + port: int | None = ... + """ + The port number that the automated backup used for connections. + + Default: Inherits from the source DB cluster + + Valid Values: `1150-65535` + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key ID for an automated backup. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + storage_type: str | None = ... + """ + The storage type associated with the DB cluster. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + iops: int | None = ... + """ + The IOPS (I/O operations per second) value for the automated backup. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + storage_throughput: int | None = ... + """ + The storage throughput for the automated backup. The throughput is + automatically set based on the IOPS that you provision, and is not + configurable. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class DBClusterAutomatedBackupNotFoundFault(ServiceError, _SerdeShape): + """No automated backup for this DB cluster was found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterAutomatedBackupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The quota for retained automated backups was exceeded. This prevents you + from retaining any additional automated backups. The retained automated + backups quota is the same as your DB cluster quota. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterBacktrack(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeDBClusterBacktracks` action. + """ + + db_cluster_identifier: str | None = ... + """ + Contains a user-supplied DB cluster identifier. This identifier is the + unique key that identifies a DB cluster. + """ + backtrack_identifier: str | None = ... + """Contains the backtrack identifier.""" + backtrack_to: datetime | None = ... + """The timestamp of the time to which the DB cluster was backtracked.""" + backtracked_from: datetime | None = ... + """The timestamp of the time from which the DB cluster was backtracked.""" + backtrack_request_creation_time: datetime | None = ... + """The timestamp of the time at which the backtrack was requested.""" + status: str | None = ... + """ + The status of the backtrack. This property returns one of the following + values: + + - `applying` - The backtrack is currently being applied to or rolled + back from the DB cluster. + + - `completed` - The backtrack has successfully been applied to or rolled + back from the DB cluster. + + - `failed` - An error occurred while the backtrack was applied to or + rolled back from the DB cluster. + + - `pending` - The backtrack is currently pending application to or + rollback from the DB cluster. + """ + +@dataclass(kw_only=True) +class DBClusterBacktrackNotFoundFault(ServiceError, _SerdeShape): + """`BacktrackIdentifier` doesn't refer to an existing backtrack.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterEndpoint(_SerdeShape): + """ + This data type represents the information you need to connect to an + Amazon Aurora DB cluster. This data type is used as a response element + in the following actions: + + - `CreateDBClusterEndpoint` + + - `DescribeDBClusterEndpoints` + + - `ModifyDBClusterEndpoint` + + - `DeleteDBClusterEndpoint` + + For the data structure that represents Amazon RDS DB instance endpoints, + see `Endpoint`. + """ + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier associated with the endpoint. This parameter is stored as + a lowercase string. + """ + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_resource_identifier: str | None = ... + """ + A unique system-generated identifier for an endpoint. It remains the + same for the whole life of the endpoint. + """ + endpoint: str | None = ... + """The DNS address of the endpoint.""" + status: str | None = ... + """ + The current status of the endpoint. One of: `creating`, `available`, + `deleting`, `inactive`, `modifying`. The `inactive` state applies to an + endpoint that can't be used for a certain kind of cluster, such as a + `writer` endpoint for a read-only secondary cluster in a global + database. + """ + endpoint_type: str | None = ... + """The type of the endpoint. One of: `READER`, `WRITER`, `CUSTOM`.""" + custom_endpoint_type: str | None = ... + """ + The type associated with a custom endpoint. One of: `READER`, `WRITER`, + `ANY`. + """ + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. Only relevant if the list of static members is empty. + """ + db_cluster_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) for the endpoint.""" + +@dataclass(kw_only=True) +class DBClusterEndpointAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified custom endpoint can't be created because it already + exists. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterEndpointNotFoundFault(ServiceError, _SerdeShape): + """The specified custom endpoint doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterEndpointQuotaExceededFault(ServiceError, _SerdeShape): + """The cluster already has the maximum number of custom endpoints.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterMember(_SerdeShape): + """Contains information about an instance that is part of a DB cluster.""" + + db_instance_identifier: str | None = ... + """Specifies the instance identifier for this member of the DB cluster.""" + is_cluster_writer: bool | None = ... + """ + Indicates whether the cluster member is the primary DB instance for the + DB cluster. + """ + db_cluster_parameter_group_status: str | None = ... + """ + Specifies the status of the DB cluster parameter group for this member + of the DB cluster. + """ + promotion_tier: int | None = ... + """ + A value that specifies the order in which an Aurora Replica is promoted + to the primary instance after a failure of the existing primary + instance. For more information, see [Fault Tolerance for an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class DBClusterNotFoundFault(ServiceError, _SerdeShape): + """`DBClusterIdentifier` doesn't refer to an existing DB cluster.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterOptionGroupStatus(_SerdeShape): + """Contains status information for a DB cluster option group.""" + + db_cluster_option_group_name: str | None = ... + """Specifies the name of the DB cluster option group.""" + status: str | None = ... + """Specifies the status of the DB cluster option group.""" + +@dataclass(kw_only=True) +class DBClusterParameterGroup(_SerdeShape): + """ + Contains the details of an Amazon RDS DB cluster parameter group. + + This data type is used as a response element in the + `DescribeDBClusterParameterGroups` action. + """ + + db_cluster_parameter_group_name: str | None = ... + """The name of the DB cluster parameter group.""" + db_parameter_group_family: str | None = ... + """ + The name of the DB parameter group family that this DB cluster parameter + group is compatible with. + """ + description: str | None = ... + """ + Provides the customer-specified description for this DB cluster + parameter group. + """ + db_cluster_parameter_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB cluster parameter group.""" + +@dataclass(kw_only=True) +class DBClusterParameterGroupNotFoundFault(ServiceError, _SerdeShape): + """ + `DBClusterParameterGroupName` doesn't refer to an existing DB cluster + parameter group. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterQuotaExceededFault(ServiceError, _SerdeShape): + """ + The user attempted to create a new DB cluster and the user has already + reached the maximum allowed DB cluster quota. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterRole(_SerdeShape): + """ + Describes an Amazon Web Services Identity and Access Management (IAM) + role that is associated with a DB cluster. + """ + + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that is associated with + the DB cluster. + """ + status: str | None = ... + """ + Describes the state of association between the IAM role and the DB + cluster. The Status property returns one of the following values: + + - `ACTIVE` - the IAM role ARN is associated with the DB cluster and can + be used to access other Amazon Web Services on your behalf. + + - `PENDING` - the IAM role ARN is being associated with the DB cluster. + + - `INVALID` - the IAM role ARN is associated with the DB cluster, but + the DB cluster is unable to assume the IAM role in order to access + other Amazon Web Services on your behalf. + """ + feature_name: str | None = ... + """ + The name of the feature associated with the Amazon Web Services Identity + and Access Management (IAM) role. For information about supported + feature names, see DBEngineVersion. + """ + +@dataclass(kw_only=True) +class DBClusterRoleAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified IAM role Amazon Resource Name (ARN) is already associated + with the specified DB cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterRoleNotFoundFault(ServiceError, _SerdeShape): + """ + The specified IAM role Amazon Resource Name (ARN) isn't associated with + the specified DB cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterRoleQuotaExceededFault(ServiceError, _SerdeShape): + """ + You have exceeded the maximum number of IAM roles that can be associated + with the specified DB cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterSnapshot(_SerdeShape): + """ + Contains the details for an Amazon RDS DB cluster snapshot + + This data type is used as a response element in the + `DescribeDBClusterSnapshots` action. + """ + + availability_zones: list[str] | None = ... + """ + The list of Availability Zones (AZs) where instances in the DB cluster + snapshot can be restored. + """ + db_cluster_snapshot_identifier: str | None = ... + """The identifier for the DB cluster snapshot.""" + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster that this DB cluster + snapshot was created from. + """ + snapshot_create_time: datetime | None = ... + """ + The time when the snapshot was taken, in Universal Coordinated Time + (UTC). + """ + engine: str | None = ... + """The name of the database engine for this DB cluster snapshot.""" + engine_mode: str | None = ... + """The engine mode of the database engine for this DB cluster snapshot.""" + allocated_storage: int | None = ... + """ + The allocated storage size of the DB cluster snapshot in gibibytes + (GiB). + """ + status: str | None = ... + """ + The status of this DB cluster snapshot. Valid statuses are the + following: + + - `available` + + - `copying` + + - `creating` + """ + port: int | None = ... + """ + The port that the DB cluster was listening on at the time of the + snapshot. + """ + vpc_id: str | None = ... + """The VPC ID associated with the DB cluster snapshot.""" + cluster_create_time: datetime | None = ... + """ + The time when the DB cluster was created, in Universal Coordinated Time + (UTC). + """ + master_username: str | None = ... + """The master username for this DB cluster snapshot.""" + engine_version: str | None = ... + """The version of the database engine for this DB cluster snapshot.""" + license_model: str | None = ... + """The license model information for this DB cluster snapshot.""" + snapshot_type: str | None = ... + """The type of the DB cluster snapshot.""" + percent_progress: int | None = ... + """The percentage of the estimated data that has been transferred.""" + storage_encrypted: bool | None = ... + """ + Specifies whether the DB cluster snapshot is encrypted with an Amazon + Web Services managed key or a customer managed key. + + If the DB cluster snapshot is encrypted with an Amazon Web Services + owned key, this value is `false` and `StorageEncryptionType` is + `sse-rds`. In that case, the data at rest is still encrypted. To + determine how the data at rest is protected, use + `StorageEncryptionType`. + """ + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the DB cluster + snapshot. Possible values: + + - `none` - The DB cluster snapshot is not encrypted. + + - `sse-rds` - The DB cluster snapshot is encrypted using an Amazon Web + Services owned KMS key. + + - `sse-kms` - The DB cluster snapshot is encrypted using a customer + managed KMS key or Amazon Web Services managed KMS key. + """ + backup_retention_period: int | None = ... + """The number of days for which automatic DB snapshots are retained.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + kms_key_id: str | None = ... + """ + If `StorageEncrypted` is true, the Amazon Web Services KMS key + identifier for the encrypted DB cluster snapshot. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + db_cluster_snapshot_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB cluster snapshot.""" + source_db_cluster_snapshot_arn: str | None = ... + """ + If the DB cluster snapshot was copied from a source DB cluster snapshot, + the Amazon Resource Name (ARN) for the source DB cluster snapshot, + otherwise, a null value. + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + storage_type: str | None = ... + """ + The storage type associated with the DB cluster snapshot. + + This setting is only for Aurora DB clusters. + """ + storage_throughput: int | None = ... + """ + The storage throughput for the DB cluster snapshot. The throughput is + automatically set based on the IOPS that you provision, and is not + configurable. + + This setting is only for non-Aurora Multi-AZ DB clusters. + """ + db_cluster_resource_id: str | None = ... + """ + The resource ID of the DB cluster that this DB cluster snapshot was + created from. + """ + db_system_id: str | None = ... + """Reserved for future use.""" + +@dataclass(kw_only=True) +class DBClusterSnapshotAlreadyExistsFault(ServiceError, _SerdeShape): + """The user already has a DB cluster snapshot with the given identifier.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterSnapshotAttribute(_SerdeShape): + """ + Contains the name and values of a manual DB cluster snapshot attribute. + + Manual DB cluster snapshot attributes are used to authorize other Amazon + Web Services accounts to restore a manual DB cluster snapshot. For more + information, see the `ModifyDBClusterSnapshotAttribute` API action. + """ + + attribute_name: str | None = ... + """ + The name of the manual DB cluster snapshot attribute. + + The attribute named `restore` refers to the list of Amazon Web Services + accounts that have permission to copy or restore the manual DB cluster + snapshot. For more information, see the + `ModifyDBClusterSnapshotAttribute` API action. + """ + attribute_values: list[str] | None = ... + """ + The value(s) for the manual DB cluster snapshot attribute. + + If the `AttributeName` field is set to `restore`, then this element + returns a list of IDs of the Amazon Web Services accounts that are + authorized to copy or restore the manual DB cluster snapshot. If a value + of `all` is in the list, then the manual DB cluster snapshot is public + and available for any Amazon Web Services account to copy or restore. + """ + +@dataclass(kw_only=True) +class DBClusterSnapshotAttributesResult(_SerdeShape): + """ + Contains the results of a successful call to the + `DescribeDBClusterSnapshotAttributes` API action. + + Manual DB cluster snapshot attributes are used to authorize other Amazon + Web Services accounts to copy or restore a manual DB cluster snapshot. + For more information, see the `ModifyDBClusterSnapshotAttribute` API + action. + """ + + db_cluster_snapshot_identifier: str | None = ... + """ + The identifier of the manual DB cluster snapshot that the attributes + apply to. + """ + db_cluster_snapshot_attributes: list[DBClusterSnapshotAttribute] | None = ... + """The list of attributes and values for the manual DB cluster snapshot.""" + +@dataclass(kw_only=True) +class DBClusterSnapshotNotFoundFault(ServiceError, _SerdeShape): + """ + `DBClusterSnapshotIdentifier` doesn't refer to an existing DB cluster + snapshot. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBClusterStatusInfo(_SerdeShape): + """Reserved for future use.""" + + status_type: str | None = ... + """Reserved for future use.""" + normal: bool | None = ... + """Reserved for future use.""" + status: str | None = ... + """Reserved for future use.""" + message: str | None = ... + """Reserved for future use.""" + +@dataclass(kw_only=True) +class DBEngineVersion(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeDBEngineVersions`. + """ + + engine: str | None = ... + """The name of the database engine.""" + major_engine_version: str | None = ... + """The major engine version of the CEV.""" + engine_version: str | None = ... + """The version number of the database engine.""" + database_installation_files_s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket that contains your database + installation files. + """ + database_installation_files_s3_prefix: str | None = ... + """ + The Amazon S3 directory that contains the database installation files. + If not specified, then no prefix is assumed. + """ + database_installation_files: list[str] | None = ... + """ + The database installation files (ISO and EXE) that were uploaded to + Amazon S3 and used to import the database engine version to Amazon RDS. + Returned for RDS for SQL Server engine versions (`sqlserver-ee`, + `sqlserver-se`, and `sqlserver-dev-ee`) created from customer-supplied + installation media. + """ + custom_db_engine_version_manifest: str | None = ... + """ + JSON string that lists the installation files and parameters that RDS + Custom uses to create a custom engine version (CEV). RDS Custom applies + the patches in the order in which they're listed in the manifest. You + can set the Oracle home, Oracle base, and UNIX/Linux user and group + using the installation parameters. For more information, see [JSON + fields in the CEV + manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html#custom-cev.preparing.manifest.fields) + in the *Amazon RDS User Guide*. + """ + db_parameter_group_family: str | None = ... + """The name of the DB parameter group family for the database engine.""" + db_engine_description: str | None = ... + """The description of the database engine.""" + db_engine_version_arn: str | None = ... + """The ARN of the custom engine version.""" + db_engine_version_description: str | None = ... + """The description of the database engine version.""" + default_character_set: CharacterSet | None = ... + """ + The default character set for new instances of this engine version, if + the `CharacterSetName` parameter of the CreateDBInstance API isn't + specified. + """ + failure_reason: str | None = ... + """ + The reason that the custom engine version creation failed with an + `incompatible-installation-media` status. Applicable to RDS for SQL + Server engine versions (`sqlserver-ee`, `sqlserver-se`, and + `sqlserver-dev-ee`). + """ + image: CustomDBEngineVersionAMI | None = ... + """The EC2 image""" + db_engine_media_type: str | None = ... + """ + The source of the installation media for this engine version. A value of + `Customer Provided` indicates that the engine version was created from + customer-supplied installation media using + `CreateCustomDBEngineVersion`. Applicable to RDS Custom for SQL Server + and to RDS for SQL Server engine versions (`sqlserver-ee` and + `sqlserver-se` with the `bring-your-own-media` license model, and + `sqlserver-dev-ee`). + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted CEV. This + parameter is required for RDS Custom, but optional for Amazon RDS. + """ + create_time: datetime | None = ... + """The creation time of the DB engine version.""" + supported_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by this engine for the + `CharacterSetName` parameter of the `CreateDBInstance` operation. + """ + supported_nchar_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by the Oracle DB engine for the + `NcharCharacterSetName` parameter of the `CreateDBInstance` operation. + """ + valid_upgrade_target: list[UpgradeTarget] | None = ... + """ + A list of engine versions that this database engine version can be + upgraded to. + """ + supported_timezones: list[Timezone] | None = ... + """ + A list of the time zones supported by this engine for the `Timezone` + parameter of the `CreateDBInstance` action. + """ + exportable_log_types: list[str] | None = ... + """ + The types of logs that the database engine has available for export to + CloudWatch Logs. + """ + supports_log_exports_to_cloudwatch_logs: bool | None = ... + """ + Indicates whether the engine version supports exporting the log types + specified by ExportableLogTypes to CloudWatch Logs. + """ + supports_read_replica: bool | None = ... + """Indicates whether the database engine version supports read replicas.""" + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes.""" + supported_feature_names: list[str] | None = ... + """ + A list of features supported by the DB engine. + + The supported features vary by DB engine and DB engine version. + + To determine the supported features for a specific DB engine and DB + engine version using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine --engine-version ` + + For example, to determine the supported features for RDS for PostgreSQL + version 13.3 using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine postgres --engine-version 13.3` + + The supported features are listed under `SupportedFeatureNames` in the + output. + """ + status: str | None = ... + """The status of the DB engine version, either `available` or `deprecated`.""" + supports_parallel_query: bool | None = ... + """ + Indicates whether you can use Aurora parallel query with a specific DB + engine version. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with a specific DB + engine version. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + supports_babelfish: bool | None = ... + """ + Indicates whether the engine version supports Babelfish for Aurora + PostgreSQL. + """ + supports_limitless_database: bool | None = ... + """ + Indicates whether the DB engine version supports Aurora Limitless + Database. + """ + supports_certificate_rotation_without_restart: bool | None = ... + """ + Indicates whether the engine version supports rotating the server + certificate without rebooting the DB instance. + """ + supported_ca_certificate_identifiers: list[str] | None = ... + """ + A list of the supported CA certificate identifiers. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + supports_local_write_forwarding: bool | None = ... + """ + Indicates whether the DB engine version supports forwarding write + operations from reader DB instances to the writer DB instance in the DB + cluster. By default, write operations aren't allowed on reader DB + instances. + + Valid for: Aurora DB clusters only + """ + supports_integrations: bool | None = ... + """ + Indicates whether the DB engine version supports zero-ETL integrations + with Amazon Redshift. + """ + serverless_v2_features_support: ServerlessV2FeaturesSupport | None = ... + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora engine versions. You can test the values of this + attribute when deciding which Aurora version to use in a new or upgraded + DB cluster. You can also retrieve the version of an existing DB cluster + and check whether that version supports certain Aurora Serverless v2 + features before you attempt to use those features. + """ + +@dataclass(kw_only=True) +class DBInstance(_SerdeShape): + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + + db_instance_identifier: str | None = ... + """ + The user-supplied database identifier. This identifier is the unique key + that identifies a DB instance. + """ + db_instance_class: str | None = ... + """The name of the compute and memory capacity class of the DB instance.""" + engine: str | None = ... + """The database engine used for this DB instance.""" + db_instance_status: str | None = ... + """ + The current state of this database. + + For information about DB instance statuses, see [Viewing DB instance + status](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status) + in the *Amazon RDS User Guide.* + """ + master_username: str | None = ... + """The master username for the DB instance.""" + db_name: str | None = ... + """ + The initial database name that you provided (if required) when you + created the DB instance. This name is returned for the life of your DB + instance. For an RDS for Oracle CDB instance, the name identifies the + PDB rather than the CDB. + """ + endpoint: Endpoint | None = ... + """ + The connection endpoint for the DB instance. + + Note: + The endpoint might not be shown for instances with the status of + `creating`. + """ + allocated_storage: int | None = ... + """The amount of storage in gibibytes (GiB) allocated for the DB instance.""" + instance_create_time: datetime | None = ... + """The date and time when the DB instance was created.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + backup_retention_period: int | None = ... + """The number of days for which automatic DB snapshots are retained.""" + db_security_groups: list[DBSecurityGroupMembership] | None = ... + """ + A list of DB security group elements containing `DBSecurityGroup.Name` + and `DBSecurityGroup.Status` subelements. + """ + vpc_security_groups: list[VpcSecurityGroupMembership] | None = ... + """ + The list of Amazon EC2 VPC security groups that the DB instance belongs + to. + """ + db_parameter_groups: list[DBParameterGroupStatus] | None = ... + """The list of DB parameter groups applied to this DB instance.""" + availability_zone: str | None = ... + """The name of the Availability Zone where the DB instance is located.""" + db_subnet_group: DBSubnetGroup | None = ... + """ + Information about the subnet group associated with the DB instance, + including the name, description, and subnets in the subnet group. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur, in + Universal Coordinated Time (UTC). + """ + upgrade_rollout_order: str | None = ... + """ + This data type represents the order in which the instances are upgraded. + + - [first] - Typically used for development or testing environments. + + - [second] - Default order for resources not specifically configured. + + - [last] - Usually reserved for production environments. + """ + pending_modified_values: PendingModifiedValues | None = ... + """ + Information about pending changes to the DB instance. This information + is returned only when there are pending changes. Specific changes are + identified by subelements. + """ + latest_restorable_time: datetime | None = ... + """ + The latest time to which a database in this DB instance can be restored + with point-in-time restore. + """ + multi_az: bool | None = ... + """ + Indicates whether the DB instance is a Multi-AZ deployment. This setting + doesn't apply to RDS Custom DB instances. + """ + engine_version: str | None = ... + """The version of the database engine.""" + auto_minor_version_upgrade: bool | None = ... + """ + Indicates whether minor version patches are applied automatically. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + read_replica_source_db_instance_identifier: str | None = ... + """ + The identifier of the source DB instance if this DB instance is a read + replica. + """ + read_replica_db_instance_identifiers: list[str] | None = ... + """The identifiers of the read replicas associated with this DB instance.""" + read_replica_db_cluster_identifiers: list[str] | None = ... + """ + The identifiers of Aurora DB clusters to which the RDS DB instance is + replicated as a read replica. For example, when you create an Aurora + read replica of an RDS for MySQL DB instance, the Aurora MySQL DB + cluster for the Aurora read replica is shown. This output doesn't + contain information about cross-Region Aurora read replicas. + + Note: + Currently, each RDS DB instance can have only one Aurora read replica. + """ + replica_mode: str | None = ... + """ + The open mode of a Db2 or an Oracle read replica. The default is + `open-read-only`. For more information, see [Working with replicas for + Amazon RDS for + Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-replication.html) + and [Working with read replicas for Amazon RDS for + Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) + in the *Amazon RDS User Guide*. + + Note: + This attribute is only supported in RDS for Db2, RDS for Oracle, and RDS + Custom for Oracle. + """ + license_model: str | None = ... + """ + The license model information for this DB instance. This setting + doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + iops: int | None = ... + """ + The Provisioned IOPS (I/O operations per second) value for the DB + instance. + """ + storage_throughput: int | None = ... + """ + The storage throughput for the DB instance. + + This setting applies only to the `gp3` storage type. + """ + option_group_memberships: list[OptionGroupMembership] | None = ... + """The list of option group memberships for this DB instance.""" + character_set_name: str | None = ... + """ + If present, specifies the name of the character set that this instance + is associated with. + """ + nchar_character_set_name: str | None = ... + """ + The name of the NCHAR character set for the Oracle DB instance. This + character set specifies the Unicode encoding for data stored in table + columns of type NCHAR, NCLOB, or NVARCHAR2. + """ + secondary_availability_zone: str | None = ... + """ + If present, specifies the name of the secondary Availability Zone for a + DB instance with multi-AZ support. + """ + publicly_accessible: bool | None = ... + """ + Indicates whether the DB instance is publicly accessible. + + When the DB instance is publicly accessible and you connect from outside + of the DB instance's virtual private cloud (VPC), its Domain Name + System (DNS) endpoint resolves to the public IP address. When you + connect from within the same VPC as the DB instance, the endpoint + resolves to the private IP address. Access to the DB cluster is + ultimately controlled by the security group it uses. That public access + isn't permitted if the security group assigned to the DB cluster + doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + For more information, see CreateDBInstance. + """ + status_infos: list[DBInstanceStatusInfo] | None = ... + """ + The status of a read replica. If the DB instance isn't a read replica, + the value is blank. + """ + storage_type: str | None = ... + """The storage type associated with the DB instance.""" + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the DB instance. + Possible values: + + - `none` - The DB instance is not encrypted. + + - `sse-rds` - The DB instance is encrypted using an Amazon Web Services + owned KMS key. + + - `sse-kms` - The DB instance is encrypted using a customer managed KMS + key or Amazon Web Services managed KMS key. + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which the instance is associated for TDE + encryption. + """ + db_instance_port: int | None = ... + """ + The port that the DB instance listens on. If the DB instance is part of + a DB cluster, this can be a different port than the DB cluster port. + """ + db_cluster_identifier: str | None = ... + """ + If the DB instance is a member of a DB cluster, indicates the name of + the DB cluster that the DB instance is a member of. + """ + storage_encrypted: bool | None = ... + """Indicates whether the DB instance is encrypted.""" + kms_key_id: str | None = ... + """ + If `StorageEncrypted` is enabled, the Amazon Web Services KMS key + identifier for the encrypted DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + dbi_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + instance. This identifier is found in Amazon Web Services CloudTrail log + entries whenever the Amazon Web Services KMS key for the DB instance is + accessed. + """ + ca_certificate_identifier: str | None = ... + """ + The identifier of the CA certificate for this DB instance. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + domain_memberships: list[DomainMembership] | None = ... + """ + The Active Directory Domain membership records associated with the DB + instance. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Indicates whether tags are copied from the DB instance to snapshots of + the DB instance. + + This setting doesn't apply to Amazon Aurora DB instances. Copying tags + to snapshots is managed by the DB cluster. Setting this value for an + Aurora DB instance has no effect on the DB cluster setting. For more + information, see `DBCluster`. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB instance. + """ + enhanced_monitoring_resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream + that receives the Enhanced Monitoring metrics data for the DB instance. + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send Enhanced Monitoring + metrics to Amazon CloudWatch Logs. + """ + promotion_tier: int | None = ... + """ + The order of priority in which an Aurora Replica is promoted to the + primary instance after a failure of the existing primary instance. For + more information, see [Fault Tolerance for an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Aurora.Managing.FaultTolerance) + in the *Amazon Aurora User Guide*. + """ + db_instance_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB instance.""" + timezone: str | None = ... + """ + The time zone of the DB instance. In most cases, the `Timezone` element + is empty. `Timezone` content appears only for RDS for Db2 and RDS for + SQL Server DB instances that were created with a time zone specified. + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled for the DB + instance. + + For a list of engine versions that support IAM database authentication, + see [IAM database + authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.IamDatabaseAuthentication.html) + in the *Amazon RDS User Guide* and [IAM database authentication in + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.IAMdbauth.html) + in the *Amazon Aurora User Guide*. + """ + database_insights_mode: str | None = ... + """The mode of Database Insights that is enabled for the instance.""" + performance_insights_enabled: bool | None = ... + """Indicates whether Performance Insights is enabled for the DB instance.""" + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + """ + enabled_cloudwatch_logs_exports: list[str] | None = ... + """ + A list of log types that this DB instance is configured to export to + CloudWatch Logs. + + Log types vary by DB engine. For information about the log types for + each DB engine, see [Monitoring Amazon RDS log + files](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html) + in the *Amazon RDS User Guide.* + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + """ + deletion_protection: bool | None = ... + """ + Indicates whether the DB instance has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. For more + information, see [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + """ + associated_roles: list[DBInstanceRole] | None = ... + """ + The Amazon Web Services Identity and Access Management (IAM) roles + associated with the DB instance. + """ + listener_endpoint: Endpoint | None = ... + """The listener connection endpoint for SQL Server Always On.""" + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + automation_mode: str | None = ... + """ + The automation mode of the RDS Custom DB instance: `full` or + `all paused`. If `full`, the DB instance automates monitoring and + instance recovery. If `all paused`, the instance pauses automation for + the duration set by `--resume-full-automation-mode-minutes`. + """ + resume_full_automation_mode_time: datetime | None = ... + """ + The number of minutes to pause the automation. When the time period + ends, RDS Custom resumes full automation. The minimum value is 60 + (default). The maximum value is 1,440. + """ + customer_owned_ip_enabled: bool | None = ... + """ + Indicates whether a customer-owned IP address (CoIP) is enabled for an + RDS on Outposts DB instance. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the DB instance from + outside of its virtual private cloud (VPC) on your local network. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide* and [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + Valid Values: `IPV4 | DUAL` + """ + activity_stream_status: str | None = ... + """The status of the database activity stream.""" + activity_stream_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier used for encrypting messages + in the database activity stream. The Amazon Web Services KMS key + identifier is the key ARN, key ID, alias ARN, or alias name for the KMS + key. + """ + activity_stream_kinesis_stream_name: str | None = ... + """ + The name of the Amazon Kinesis data stream used for the database + activity stream. + """ + activity_stream_mode: str | None = ... + """ + The mode of the database activity stream. Database events such as a + change or access generate an activity stream event. RDS for Oracle + always handles these events asynchronously. + """ + activity_stream_engine_native_audit_fields_included: bool | None = ... + """ + Indicates whether engine-native audit fields are included in the + database activity stream. + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + """ + db_instance_automated_backups_replications: ( + list[DBInstanceAutomatedBackupsReplication] | None + ) = ... + """ + The list of replicated automated backups associated with the DB + instance. + """ + backup_target: str | None = ... + """ + The location where automated backups and manual snapshots are stored: + Dedicated Local Zones, Amazon Web Services Outposts or the Amazon Web + Services Region. + """ + automatic_restart_time: datetime | None = ... + """The time when a stopped DB instance is restarted automatically.""" + custom_iam_instance_profile: str | None = ... + """ + The instance profile associated with the underlying Amazon EC2 instance + of an RDS Custom DB instance. The instance profile must meet the + following requirements: + + - The profile must exist in your account. + + - The profile must have an IAM role that Amazon EC2 has permissions to + assume. + + - The instance profile name and the associated IAM role name must start + with the prefix `AWSRDSCustom`. + + For the list of permissions required for the IAM role, see [Configure + IAM and your + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) + in the *Amazon RDS User Guide*. + """ + activity_stream_policy_status: str | None = ... + """The status of the policy state of the activity stream.""" + certificate_details: CertificateDetails | None = ... + """The details of the DB instance's server certificate.""" + db_system_id: str | None = ... + """ + The Oracle system ID (Oracle SID) for a container database (CDB). The + Oracle SID is also the name of the CDB. This setting is only valid for + RDS Custom DB instances. + """ + master_user_secret: MasterUserSecret | None = ... + """ + The secret managed by RDS in Amazon Web Services Secrets Manager for the + master user password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + """ + read_replica_source_db_cluster_identifier: str | None = ... + """ + The identifier of the source DB cluster if this DB instance is a read + replica. + """ + percent_progress: str | None = ... + """The progress of the storage optimization operation as a percentage.""" + multi_tenant: bool | None = ... + """ + Specifies whether the DB instance is in the multi-tenant configuration + (TRUE) or the single-tenant configuration (FALSE). + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + is_storage_config_upgrade_available: bool | None = ... + """ + Indicates whether an upgrade is recommended for the storage file system + configuration on the DB instance. To migrate to the preferred + configuration, you can either create a blue/green deployment, or create + a read replica from the DB instance. For more information, see + [Upgrading the storage file system for a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem). + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for the DB instance. + + For more information, see CreateDBInstance. + """ + additional_storage_volumes: list[AdditionalStorageVolumeOutput] | None = ... + """ + The additional storage volumes associated with the DB instance. RDS + supports additional storage volumes for RDS for Oracle and RDS for SQL + Server. + """ + storage_volume_status: str | None = ... + """ + The detailed status information for storage volumes associated with the + DB instance. This information helps identify which specific volume is + causing the instance to be in a storage-full state. + """ + storage_operation_status: str | None = ... + """ + The status of an in-progress storage operation on the DB instance. This + field appears only while a storage operation is in progress. It isn't + present when no storage operation is active. Possible values: + + - `Initializing` - The volume is initializing from a snapshot, such as + during a snapshot restore, point-in-time restore, read replica + creation, or blue/green deployment. Performance can be lower than + provisioned until initialization completes. + + - `Optimizing` - The volume is optimizing following a storage scaling or + modification operation. + """ + storage_operation_percent_progress: int | None = ... + """ + The percentage of the in-progress storage operation on the DB instance + that has completed, from `0` to `100`. This field appears only while a + storage operation is in progress. It isn't present when no storage + operation is active. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier of the DB capacity reservation associated with this DB + instance. Amazon RDS doesn't return this value if the DB instance + doesn't use a DB capacity reservation. + """ + +@dataclass(kw_only=True) +class DBInstanceAlreadyExistsFault(ServiceError, _SerdeShape): + """The user already has a DB instance with the given identifier.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceAutomatedBackup(_SerdeShape): + """ + An automated backup of a DB instance. It consists of system backups, + transaction logs, and the database instance properties that existed at + the time you deleted the source instance. + """ + + db_instance_arn: str | None = ... + """The Amazon Resource Name (ARN) for the automated backups.""" + dbi_resource_id: str | None = ... + """ + The resource ID for the source DB instance, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + region: str | None = ... + """The Amazon Web Services Region associated with the automated backup.""" + db_instance_identifier: str | None = ... + """ + The identifier for the source DB instance, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + restore_window: RestoreWindow | None = ... + """The earliest and latest time a DB instance can be restored to.""" + allocated_storage: int | None = ... + """The allocated storage size for the automated backup in gibibytes (GiB).""" + status: str | None = ... + """ + A list of status information for an automated backup: + + - `active` - Automated backups for current instances. + + - `retained` - Automated backups for deleted instances. + + - `creating` - Automated backups that are waiting for the first + automated snapshot to be available. + """ + port: int | None = ... + """ + The port number that the automated backup used for connections. + + Default: Inherits from the source DB instance + + Valid Values: `1150-65535` + """ + availability_zone: str | None = ... + """ + The Availability Zone that the automated backup was created in. For + information on Amazon Web Services Regions and Availability Zones, see + [Regions and Availability + Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). + """ + vpc_id: str | None = ... + """The VPC ID associated with the DB instance.""" + instance_create_time: datetime | None = ... + """The date and time when the DB instance was created.""" + master_username: str | None = ... + """The master user name of an automated backup.""" + engine: str | None = ... + """The name of the database engine for this automated backup.""" + engine_version: str | None = ... + """The version of the database engine for the automated backup.""" + license_model: str | None = ... + """The license model information for the automated backup.""" + iops: int | None = ... + """The IOPS (I/O operations per second) value for the automated backup.""" + storage_throughput: int | None = ... + """The storage throughput for the automated backup.""" + option_group_name: str | None = ... + """ + The option group the automated backup is associated with. If omitted, + the default option group for the engine specified is used. + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which the automated backup is associated + for TDE encryption. + """ + encrypted: bool | None = ... + """Indicates whether the automated backup is encrypted.""" + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the automated + backup. Possible values: + + - `none` - The automated backup is not encrypted. + + - `sse-rds` - The automated backup is encrypted using an Amazon Web + Services owned KMS key. + + - `sse-kms` - The automated backup is encrypted using a customer managed + KMS key or Amazon Web Services managed KMS key. + """ + storage_type: str | None = ... + """The storage type associated with the automated backup.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key ID for an automated backup. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + timezone: str | None = ... + """ + The time zone of the automated backup. In most cases, the `Timezone` + element is empty. `Timezone` content appears only for Microsoft SQL + Server DB instances that were created with a time zone specified. + """ + iam_database_authentication_enabled: bool | None = ... + """ + True if mapping of Amazon Web Services Identity and Access Management + (IAM) accounts to database accounts is enabled, and otherwise false. + """ + backup_retention_period: int | None = ... + """The retention period for the automated backups.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + db_instance_automated_backups_arn: str | None = ... + """The Amazon Resource Name (ARN) for the replicated automated backups.""" + db_instance_automated_backups_replications: ( + list[DBInstanceAutomatedBackupsReplication] | None + ) = ... + """ + The list of replications to different Amazon Web Services Regions + associated with the automated backup. + """ + backup_target: str | None = ... + """ + The location where automated backups are stored: Dedicated Local Zones, + Amazon Web Services Outposts or the Amazon Web Services Region. + """ + multi_tenant: bool | None = ... + """ + Specifies whether the automatic backup is for a DB instance in the + multi-tenant configuration (TRUE) or the single-tenant configuration + (FALSE). + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + The additional storage volumes associated with the automated backup. + + Valid Values: `GP3 | IO2` + """ + +@dataclass(kw_only=True) +class DBInstanceAutomatedBackupNotFoundFault(ServiceError, _SerdeShape): + """No automated backup for this DB instance was found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceAutomatedBackupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The quota for retained automated backups was exceeded. This prevents you + from retaining any additional automated backups. The retained automated + backups quota is the same as your DB instance quota. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceAutomatedBackupsReplication(_SerdeShape): + """ + Automated backups of a DB instance replicated to another Amazon Web + Services Region. They consist of system backups, transaction logs, and + database instance properties. + """ + + db_instance_automated_backups_arn: str | None = ... + """The Amazon Resource Name (ARN) of the replicated automated backups.""" + +@dataclass(kw_only=True) +class DBInstanceNotFoundFault(ServiceError, _SerdeShape): + """`DBInstanceIdentifier` doesn't refer to an existing DB instance.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceNotReadyFault(ServiceError, _SerdeShape): + """ + An attempt to download or examine log files didn't succeed because an + Aurora Serverless v2 instance was paused. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceRole(_SerdeShape): + """ + Information about an Amazon Web Services Identity and Access Management + (IAM) role that is associated with a DB instance. + """ + + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that is associated with + the DB instance. + """ + feature_name: str | None = ... + """ + The name of the feature associated with the Amazon Web Services Identity + and Access Management (IAM) role. For information about supported + feature names, see `DBEngineVersion`. + """ + status: str | None = ... + """ + Information about the state of association between the IAM role and the + DB instance. The Status property returns one of the following values: + + - `ACTIVE` - the IAM role ARN is associated with the DB instance and can + be used to access other Amazon Web Services services on your behalf. + + - `PENDING` - the IAM role ARN is being associated with the DB instance. + + - `INVALID` - the IAM role ARN is associated with the DB instance, but + the DB instance is unable to assume the IAM role in order to access + other Amazon Web Services services on your behalf. + """ + +@dataclass(kw_only=True) +class DBInstanceRoleAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified `RoleArn` or `FeatureName` value is already associated + with the DB instance. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceRoleNotFoundFault(ServiceError, _SerdeShape): + """ + The specified `RoleArn` value doesn't match the specified feature for + the DB instance. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceRoleQuotaExceededFault(ServiceError, _SerdeShape): + """ + You can't associate any more Amazon Web Services Identity and Access + Management (IAM) roles with the DB instance because the quota has been + reached. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBInstanceStatusInfo(_SerdeShape): + """Provides a list of status information for a DB instance.""" + + status_type: str | None = ... + """This value is currently \"read replication.\"""" + normal: bool | None = ... + """ + Indicates whether the instance is operating normally (TRUE) or is in an + error state (FALSE). + """ + status: str | None = ... + """ + The status of the DB instance. For a StatusType of read replica, the + values can be replicating, replication stop point set, replication stop + point reached, error, stopped, or terminated. + """ + message: str | None = ... + """ + Details of the error if there is an error for the instance. If the + instance isn't in an error state, this value is blank. + """ + +@dataclass(kw_only=True) +class DBLogFileNotFoundFault(ServiceError, _SerdeShape): + """`LogFileName` doesn't refer to an existing DB log file.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBMajorEngineVersion(_SerdeShape): + """ + This data type is used as a response element in the operation + `DescribeDBMajorEngineVersions`. + """ + + engine: str | None = ... + """The name of the database engine.""" + major_engine_version: str | None = ... + """The major version number of the database engine.""" + supported_engine_lifecycles: list[SupportedEngineLifecycle] | None = ... + """ + A list of the lifecycles supported by this engine for the + `DescribeDBMajorEngineVersions` operation. + """ + +@dataclass(kw_only=True) +class DBParameterGroup(_SerdeShape): + """ + Contains the details of an Amazon RDS DB parameter group. + + This data type is used as a response element in the + `DescribeDBParameterGroups` action. + """ + + db_parameter_group_name: str | None = ... + """The name of the DB parameter group.""" + db_parameter_group_family: str | None = ... + """ + The name of the DB parameter group family that this DB parameter group + is compatible with. + """ + description: str | None = ... + """Provides the customer-specified description for this DB parameter group.""" + db_parameter_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB parameter group.""" + +@dataclass(kw_only=True) +class DBParameterGroupAlreadyExistsFault(ServiceError, _SerdeShape): + """A DB parameter group with the same name exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBParameterGroupNotFoundFault(ServiceError, _SerdeShape): + """`DBParameterGroupName` doesn't refer to an existing DB parameter group.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBParameterGroupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of DB + parameter groups. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBParameterGroupStatus(_SerdeShape): + """ + The status of the DB parameter group. + + This data type is used as a response element in the following actions: + + - `CreateDBInstance` + + - `CreateDBInstanceReadReplica` + + - `DeleteDBInstance` + + - `ModifyDBInstance` + + - `RebootDBInstance` + + - `RestoreDBInstanceFromDBSnapshot` + """ + + db_parameter_group_name: str | None = ... + """The name of the DB parameter group.""" + parameter_apply_status: str | None = ... + """ + The status of parameter updates. Valid values are: + + - `applying`: The parameter group change is being applied to the + database. + + - `failed-to-apply`: The parameter group is in an invalid state. + + - `in-sync`: The parameter group change is synchronized with the + database. + + - `pending-database-upgrade`: The parameter group change will be applied + after the DB instance is upgraded. + + - `pending-reboot`: The parameter group change will be applied after the + DB instance reboots. + """ + +@dataclass(kw_only=True) +class DBProxy(_SerdeShape): + """ + The data structure representing a proxy managed by the RDS Proxy. + + This data type is used as a response element in the `DescribeDBProxies` + action. + """ + + db_proxy_name: str | None = ... + """ + The identifier for the proxy. This name must be unique for all proxies + owned by your Amazon Web Services account in the specified Amazon Web + Services Region. + """ + db_proxy_arn: str | None = ... + """The Amazon Resource Name (ARN) for the proxy.""" + status: str | None = ... + """ + The current status of this proxy. A status of `available` means the + proxy is ready to handle requests. Other values indicate that you must + wait for the proxy to be ready, or take some action to resolve an issue. + """ + engine_family: str | None = ... + """ + The kinds of databases that the proxy can connect to. This value + determines which database network protocol the proxy recognizes when it + interprets network traffic to and from the database. `MYSQL` supports + Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases. `POSTGRESQL` + supports Aurora PostgreSQL and RDS for PostgreSQL databases. `SQLSERVER` + supports RDS for Microsoft SQL Server databases. + """ + vpc_id: str | None = ... + """Provides the VPC ID of the DB proxy.""" + vpc_security_group_ids: list[str] | None = ... + """Provides a list of VPC security groups that the proxy belongs to.""" + vpc_subnet_ids: list[str] | None = ... + """The EC2 subnet IDs for the proxy.""" + default_auth_scheme: str | None = ... + """ + The default authentication scheme that the proxy uses for client + connections to the proxy and connections from the proxy to the + underlying database. Valid values are `NONE` and `IAM_AUTH`. When set to + `IAM_AUTH`, the proxy uses end-to-end IAM authentication to connect to + the database. + """ + auth: list[UserAuthConfigInfo] | None = ... + """ + One or more data structures specifying the authorization mechanism to + connect to the associated RDS DB instance or Aurora DB cluster. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the IAM role that the proxy uses to + access Amazon Secrets Manager. + """ + endpoint: str | None = ... + """ + The endpoint that you can use to connect to the DB proxy. You include + the endpoint value in the connection string for a database client + application. + """ + require_tls: bool | None = ... + """ + Indicates whether Transport Layer Security (TLS) encryption is required + for connections to the proxy. + """ + idle_client_timeout: int | None = ... + """ + The number of seconds a connection to the proxy can have no activity + before the proxy drops the client connection. The proxy keeps the + underlying database connection open and puts it back into the connection + pool for reuse by later connection requests. + + Default: 1800 (30 minutes) + + Constraints: 1 to 28,800 + """ + debug_logging: bool | None = ... + """ + Specifies whether the proxy logs detailed connection and query + information. When you enable `DebugLogging`, the proxy captures + connection details and connection pool behavior from your queries. Debug + logging increases CloudWatch costs and can impact proxy performance. + Enable this option only when you need to troubleshoot connection or + performance issues. + """ + created_date: datetime | None = ... + """The date and time when the proxy was first created.""" + updated_date: datetime | None = ... + """The date and time when the proxy was last updated.""" + endpoint_network_type: str | None = ... + """ + The network type of the DB proxy endpoint. The network type determines + the IP version that the proxy endpoint supports. + + Valid values: + + - `IPV4` - The proxy endpoint supports IPv4 only. + + - `IPV6` - The proxy endpoint supports IPv6 only. + + - `DUAL` - The proxy endpoint supports both IPv4 and IPv6. + """ + target_connection_network_type: str | None = ... + """ + The network type that the proxy uses to connect to the target database. + The network type determines the IP version that the proxy uses for + connections to the database. + + Valid values: + + - `IPV4` - The proxy connects to the database using IPv4 only. + + - `IPV6` - The proxy connects to the database using IPv6 only. + """ + +@dataclass(kw_only=True) +class DBProxyAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified proxy name must be unique for all proxies owned by your + Amazon Web Services account in the specified Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyEndpoint(_SerdeShape): + """ + The data structure representing an endpoint associated with a DB proxy. + RDS automatically creates one endpoint for each DB proxy. For Aurora DB + clusters, you can associate additional endpoints with the same DB proxy. + These endpoints can be read/write or read-only. They can also reside in + different VPCs than the associated DB proxy. + + This data type is used as a response element in the + `DescribeDBProxyEndpoints` operation. + """ + + db_proxy_endpoint_name: str | None = ... + """ + The name for the DB proxy endpoint. An identifier must begin with a + letter and must contain only ASCII letters, digits, and hyphens; it + can't end with a hyphen or contain two consecutive hyphens. + """ + db_proxy_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB proxy endpoint.""" + db_proxy_name: str | None = ... + """ + The identifier for the DB proxy that is associated with this DB proxy + endpoint. + """ + status: str | None = ... + """ + The current status of this DB proxy endpoint. A status of `available` + means the endpoint is ready to handle requests. Other values indicate + that you must wait for the endpoint to be ready, or take some action to + resolve an issue. + """ + vpc_id: str | None = ... + """Provides the VPC ID of the DB proxy endpoint.""" + vpc_security_group_ids: list[str] | None = ... + """ + Provides a list of VPC security groups that the DB proxy endpoint + belongs to. + """ + vpc_subnet_ids: list[str] | None = ... + """The EC2 subnet IDs for the DB proxy endpoint.""" + endpoint: str | None = ... + """ + The endpoint that you can use to connect to the DB proxy. You include + the endpoint value in the connection string for a database client + application. + """ + created_date: datetime | None = ... + """The date and time when the DB proxy endpoint was first created.""" + target_role: str | None = ... + """ + A value that indicates whether the DB proxy endpoint can be used for + read/write or read-only operations. + """ + is_default: bool | None = ... + """ + Indicates whether this endpoint is the default endpoint for the + associated DB proxy. Default DB proxy endpoints always have read/write + capability. Other endpoints that you associate with the DB proxy can be + either read/write or read-only. + """ + endpoint_network_type: str | None = ... + """ + The network type of the DB proxy endpoint. The network type determines + the IP version that the proxy endpoint supports. + + Valid values: + + - `IPV4` - The proxy endpoint supports IPv4 only. + + - `IPV6` - The proxy endpoint supports IPv6 only. + + - `DUAL` - The proxy endpoint supports both IPv4 and IPv6. + """ + +@dataclass(kw_only=True) +class DBProxyEndpointAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified DB proxy endpoint name must be unique for all DB proxy + endpoints owned by your Amazon Web Services account in the specified + Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyEndpointNotFoundFault(ServiceError, _SerdeShape): + """The DB proxy endpoint doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyEndpointQuotaExceededFault(ServiceError, _SerdeShape): + """The DB proxy already has the maximum number of endpoints.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DBProxyEndpointStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + MODIFYING = "modifying" + INCOMPATIBLE_NETWORK = "incompatible-network" + INSUFFICIENT_RESOURCE_LIMITS = "insufficient-resource-limits" + CREATING = "creating" + DELETING = "deleting" + +class DBProxyEndpointTargetRole(UnknownEnumMixin, StrEnum): + READ_WRITE = "READ_WRITE" + READ_ONLY = "READ_ONLY" + +@dataclass(kw_only=True) +class DBProxyNotFoundFault(ServiceError, _SerdeShape): + """ + The specified proxy name doesn't correspond to a proxy owned by your + Amazon Web Services account in the specified Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyQuotaExceededFault(ServiceError, _SerdeShape): + """ + Your Amazon Web Services account already has the maximum number of + proxies in the specified Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DBProxyStatus(UnknownEnumMixin, StrEnum): + AVAILABLE = "available" + MODIFYING = "modifying" + INCOMPATIBLE_NETWORK = "incompatible-network" + INSUFFICIENT_RESOURCE_LIMITS = "insufficient-resource-limits" + CREATING = "creating" + DELETING = "deleting" + SUSPENDED = "suspended" + SUSPENDING = "suspending" + REACTIVATING = "reactivating" + +@dataclass(kw_only=True) +class DBProxyTarget(_SerdeShape): + """ + Contains the details for an RDS Proxy target. It represents an RDS DB + instance or Aurora DB cluster that the proxy can connect to. One or more + targets are associated with an RDS Proxy target group. + + This data type is used as a response element in the + `DescribeDBProxyTargets` action. + """ + + target_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB + cluster. + """ + endpoint: str | None = ... + """The writer endpoint for the RDS DB instance or Aurora DB cluster.""" + tracked_cluster_id: str | None = ... + """ + The DB cluster identifier when the target represents an Aurora DB + cluster. This field is blank when the target represents an RDS DB + instance. + """ + rds_resource_id: str | None = ... + """ + The identifier representing the target. It can be the instance + identifier for an RDS DB instance, or the cluster identifier for an + Aurora DB cluster. + """ + port: int | None = ... + """ + The port that the RDS Proxy uses to connect to the target RDS DB + instance or Aurora DB cluster. + """ + type: str | None = ... + """ + Specifies the kind of database, such as an RDS DB instance or an Aurora + DB cluster, that the target represents. + """ + role: str | None = ... + """ + A value that indicates whether the target of the proxy can be used for + read/write or read-only operations. + """ + target_health: TargetHealth | None = ... + """Information about the connection health of the RDS Proxy target.""" + +@dataclass(kw_only=True) +class DBProxyTargetAlreadyRegisteredFault(ServiceError, _SerdeShape): + """ + The proxy is already associated with the specified RDS DB instance or + Aurora DB cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyTargetGroup(_SerdeShape): + """ + Represents a set of RDS DB instances, Aurora DB clusters, or both that a + proxy can connect to. Currently, each target group is associated with + exactly one RDS DB instance or Aurora DB cluster. + + This data type is used as a response element in the + `DescribeDBProxyTargetGroups` action. + """ + + db_proxy_name: str | None = ... + """The identifier for the RDS proxy associated with this target group.""" + target_group_name: str | None = ... + """ + The identifier for the target group. This name must be unique for all + target groups owned by your Amazon Web Services account in the specified + Amazon Web Services Region. + """ + target_group_arn: str | None = ... + """The Amazon Resource Name (ARN) representing the target group.""" + is_default: bool | None = ... + """ + Indicates whether this target group is the first one used for connection + requests by the associated proxy. Because each proxy is currently + associated with a single target group, currently this setting is always + `true`. + """ + status: str | None = ... + """ + The current status of this target group. A status of `available` means + the target group is correctly associated with a database. Other values + indicate that you must wait for the target group to be ready, or take + some action to resolve an issue. + """ + connection_pool_config: ConnectionPoolConfigurationInfo | None = ... + """ + The settings that determine the size and behavior of the connection pool + for the target group. + """ + created_date: datetime | None = ... + """The date and time when the target group was first created.""" + updated_date: datetime | None = ... + """The date and time when the target group was last updated.""" + +@dataclass(kw_only=True) +class DBProxyTargetGroupNotFoundFault(ServiceError, _SerdeShape): + """ + The specified target group isn't available for a proxy owned by your + Amazon Web Services account in the specified Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBProxyTargetNotFoundFault(ServiceError, _SerdeShape): + """ + The specified RDS DB instance or Aurora DB cluster isn't available for + a proxy owned by your Amazon Web Services account in the specified + Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBRecommendation(_SerdeShape): + """ + The recommendation for your DB instances, DB clusters, and DB parameter + groups. + """ + + recommendation_id: str | None = ... + """The unique identifier of the recommendation.""" + type_id: str | None = ... + """ + A value that indicates the type of recommendation. This value determines + how the description is rendered. + """ + severity: str | None = ... + """ + The severity level of the recommendation. The severity level can help + you decide the urgency with which to address the recommendation. + + Valid values: + + - `high` + + - `medium` + + - `low` + + - `informational` + """ + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the RDS resource associated with the + recommendation. + """ + status: str | None = ... + """ + The current status of the recommendation. + + Valid values: + + - `active` - The recommendations which are ready for you to apply. + + - `pending` - The applied or scheduled recommendations which are in + progress. + + - `resolved` - The recommendations which are completed. + + - `dismissed` - The recommendations that you dismissed. + """ + created_time: datetime | None = ... + """ + The time when the recommendation was created. For example, + `2023-09-28T01:13:53.931000+00:00`. + """ + updated_time: datetime | None = ... + """The time when the recommendation was last updated.""" + detection: str | None = ... + """ + A short description of the issue identified for this recommendation. The + description might contain markdown. + """ + recommendation: str | None = ... + """ + A short description of the recommendation to resolve an issue. The + description might contain markdown. + """ + description: str | None = ... + """ + A detailed description of the recommendation. The description might + contain markdown. + """ + reason: str | None = ... + """ + The reason why this recommendation was created. The information might + contain markdown. + """ + recommended_actions: list[RecommendedAction] | None = ... + """A list of recommended actions.""" + category: str | None = ... + """ + The category of the recommendation. + + Valid values: + + - `performance efficiency` + + - `security` + + - `reliability` + + - `cost optimization` + + - `operational excellence` + + - `sustainability` + """ + source: str | None = ... + """The Amazon Web Services service that generated the recommendations.""" + type_detection: str | None = ... + """ + A short description of the recommendation type. The description might + contain markdown. + """ + type_recommendation: str | None = ... + """ + A short description that summarizes the recommendation to fix all the + issues of the recommendation type. The description might contain + markdown. + """ + impact: str | None = ... + """A short description that explains the possible impact of an issue.""" + additional_info: str | None = ... + """ + Additional information about the recommendation. The information might + contain markdown. + """ + links: list[DocLink] | None = ... + """ + A link to documentation that provides additional information about the + recommendation. + """ + issue_details: IssueDetails | None = ... + """Details of the issue that caused the recommendation.""" + +@dataclass(kw_only=True) +class DBSecurityGroup(_SerdeShape): + """ + Contains the details for an Amazon RDS DB security group. + + This data type is used as a response element in the + `DescribeDBSecurityGroups` action. + """ + + owner_id: str | None = ... + """ + Provides the Amazon Web Services ID of the owner of a specific DB + security group. + """ + db_security_group_name: str | None = ... + """Specifies the name of the DB security group.""" + db_security_group_description: str | None = ... + """Provides the description of the DB security group.""" + vpc_id: str | None = ... + """Provides the VpcId of the DB security group.""" + ec2_security_groups: list[EC2SecurityGroup] | None = ... + """Contains a list of `EC2SecurityGroup` elements.""" + ip_ranges: list[IPRange] | None = ... + """Contains a list of `IPRange` elements.""" + db_security_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB security group.""" + +@dataclass(kw_only=True) +class DBSecurityGroupAlreadyExistsFault(ServiceError, _SerdeShape): + """ + A DB security group with the name specified in `DBSecurityGroupName` + already exists. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSecurityGroupMembership(_SerdeShape): + """ + This data type is used as a response element in the following actions: + + - `ModifyDBInstance` + + - `RebootDBInstance` + + - `RestoreDBInstanceFromDBSnapshot` + + - `RestoreDBInstanceToPointInTime` + """ + + db_security_group_name: str | None = ... + """The name of the DB security group.""" + status: str | None = ... + """The status of the DB security group.""" + +@dataclass(kw_only=True) +class DBSecurityGroupNotFoundFault(ServiceError, _SerdeShape): + """`DBSecurityGroupName` doesn't refer to an existing DB security group.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSecurityGroupNotSupportedFault(ServiceError, _SerdeShape): + """A DB security group isn't allowed for this action.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSecurityGroupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of DB + security groups. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBShardGroup(_SerdeShape): + """Contains the details for an Amazon RDS DB shard group.""" + + db_shard_group_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + shard group. + """ + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + status: str | None = ... + """The status of the DB shard group.""" + publicly_accessible: bool | None = ... + """ + Indicates whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access isn't permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + For more information, see CreateDBShardGroup. + + This setting is only for Aurora Limitless Database. + """ + endpoint: str | None = ... + """The connection endpoint for the DB shard group.""" + db_shard_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB shard group.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class DBShardGroupAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The specified DB shard group name must be unique in your Amazon Web + Services account in the specified Amazon Web Services Region. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBShardGroupNotFoundFault(ServiceError, _SerdeShape): + """The specified DB shard group name wasn't found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSnapshot(_SerdeShape): + """ + Contains the details of an Amazon RDS DB snapshot. + + This data type is used as a response element in the + `DescribeDBSnapshots` action. + """ + + db_snapshot_identifier: str | None = ... + """Specifies the identifier for the DB snapshot.""" + db_instance_identifier: str | None = ... + """ + Specifies the DB instance identifier of the DB instance this DB snapshot + was created from. + """ + snapshot_create_time: datetime | None = ... + """ + Specifies when the snapshot was taken in Coordinated Universal Time + (UTC). Changes for the copy when the snapshot is copied. + """ + engine: str | None = ... + """Specifies the name of the database engine.""" + allocated_storage: int | None = ... + """Specifies the allocated storage size in gibibytes (GiB).""" + status: str | None = ... + """Specifies the status of this DB snapshot.""" + port: int | None = ... + """ + Specifies the port that the database engine was listening on at the time + of the snapshot. + """ + availability_zone: str | None = ... + """ + Specifies the name of the Availability Zone the DB instance was located + in at the time of the DB snapshot. + """ + vpc_id: str | None = ... + """Provides the VPC ID associated with the DB snapshot.""" + instance_create_time: datetime | None = ... + """ + Specifies the time in Coordinated Universal Time (UTC) when the DB + instance, from which the snapshot was taken, was created. + """ + master_username: str | None = ... + """Provides the master username for the DB snapshot.""" + engine_version: str | None = ... + """Specifies the version of the database engine.""" + license_model: str | None = ... + """License model information for the restored DB instance.""" + snapshot_type: str | None = ... + """Provides the type of the DB snapshot.""" + iops: int | None = ... + """ + Specifies the Provisioned IOPS (I/O operations per second) value of the + DB instance at the time of the snapshot. + """ + storage_throughput: int | None = ... + """Specifies the storage throughput for the DB snapshot.""" + option_group_name: str | None = ... + """Provides the option group name for the DB snapshot.""" + percent_progress: int | None = ... + """The percentage of the estimated data that has been transferred.""" + source_region: str | None = ... + """ + The Amazon Web Services Region that the DB snapshot was created in or + copied from. + """ + source_db_snapshot_identifier: str | None = ... + """ + The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was + copied from. It only has a value in the case of a cross-account or + cross-Region copy. + """ + storage_type: str | None = ... + """Specifies the storage type associated with DB snapshot.""" + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which to associate the instance for TDE + encryption. + """ + encrypted: bool | None = ... + """Indicates whether the DB snapshot is encrypted.""" + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the DB snapshot. + Possible values: + + - `none` - The DB snapshot is not encrypted. + + - `sse-rds` - The DB snapshot is encrypted using an Amazon Web Services + owned KMS key. + + - `sse-kms` - The DB snapshot is encrypted using a customer managed KMS + key or Amazon Web Services managed KMS key. + """ + backup_retention_period: int | None = ... + """The number of days for which automatic DB snapshots are retained.""" + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod`. + """ + kms_key_id: str | None = ... + """ + If `Encrypted` is true, the Amazon Web Services KMS key identifier for + the encrypted DB snapshot. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + db_snapshot_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB snapshot.""" + timezone: str | None = ... + """ + The time zone of the DB snapshot. In most cases, the `Timezone` element + is empty. `Timezone` content appears only for snapshots taken from + Microsoft SQL Server DB instances that were created with a time zone + specified. + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance when the DB snapshot was created. + """ + dbi_resource_id: str | None = ... + """ + The identifier for the source DB instance, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + snapshot_target: str | None = ... + """ + Specifies where manual snapshots are stored: Dedicated Local Zones, + Amazon Web Services Outposts or the Amazon Web Services Region. + """ + original_snapshot_create_time: datetime | None = ... + """ + Specifies the time of the CreateDBSnapshot operation in Coordinated + Universal Time (UTC). Doesn't change when the snapshot is copied. + """ + snapshot_database_time: datetime | None = ... + """ + The timestamp of the most recent transaction applied to the database + that you're backing up. Thus, if you restore a snapshot, + SnapshotDatabaseTime is the most recent transaction in the restored DB + instance. In contrast, originalSnapshotCreateTime specifies the system + time that the snapshot completed. + + If you back up a read replica, you can determine the replica lag by + comparing SnapshotDatabaseTime with originalSnapshotCreateTime. For + example, if originalSnapshotCreateTime is two hours later than + SnapshotDatabaseTime, then the replica lag is two hours. + """ + db_system_id: str | None = ... + """ + The Oracle system identifier (SID), which is the name of the Oracle + database instance that manages your database files. The Oracle SID is + also the name of your CDB. + """ + multi_tenant: bool | None = ... + """ + Indicates whether the snapshot is of a DB instance using the + multi-tenant configuration (TRUE) or the single-tenant configuration + (FALSE). + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + The additional storage volumes associated with the DB snapshot. RDS + supports additional storage volumes for RDS for Oracle and RDS for SQL + Server. + """ + snapshot_availability_zone: str | None = ... + """ + Specifies the name of the Availability Zone where RDS stores the DB + snapshot. This value is valid only for snapshots that RDS stores on a + Dedicated Local Zone. + """ + full_snapshot_size_in_bytes: int | None = ... + """ + The full size of the DB snapshot, in bytes. + + Warning: + This is not the incremental size of the snapshot. This is the full + snapshot size and represents the size of all the blocks that were + written to the source volume at the time the snapshot was created. + """ + +@dataclass(kw_only=True) +class DBSnapshotAlreadyExistsFault(ServiceError, _SerdeShape): + """`DBSnapshotIdentifier` is already used by an existing snapshot.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSnapshotAttribute(_SerdeShape): + """ + Contains the name and values of a manual DB snapshot attribute + + Manual DB snapshot attributes are used to authorize other Amazon Web + Services accounts to restore a manual DB snapshot. For more information, + see the `ModifyDBSnapshotAttribute` API. + """ + + attribute_name: str | None = ... + """ + The name of the manual DB snapshot attribute. + + The attribute named `restore` refers to the list of Amazon Web Services + accounts that have permission to copy or restore the manual DB cluster + snapshot. For more information, see the `ModifyDBSnapshotAttribute` API + action. + """ + attribute_values: list[str] | None = ... + """ + The value or values for the manual DB snapshot attribute. + + If the `AttributeName` field is set to `restore`, then this element + returns a list of IDs of the Amazon Web Services accounts that are + authorized to copy or restore the manual DB snapshot. If a value of + `all` is in the list, then the manual DB snapshot is public and + available for any Amazon Web Services account to copy or restore. + """ + +@dataclass(kw_only=True) +class DBSnapshotAttributesResult(_SerdeShape): + """ + Contains the results of a successful call to the + `DescribeDBSnapshotAttributes` API action. + + Manual DB snapshot attributes are used to authorize other Amazon Web + Services accounts to copy or restore a manual DB snapshot. For more + information, see the `ModifyDBSnapshotAttribute` API action. + """ + + db_snapshot_identifier: str | None = ... + """The identifier of the manual DB snapshot that the attributes apply to.""" + db_snapshot_attributes: list[DBSnapshotAttribute] | None = ... + """The list of attributes and values for the manual DB snapshot.""" + +@dataclass(kw_only=True) +class DBSnapshotNotFoundFault(ServiceError, _SerdeShape): + """`DBSnapshotIdentifier` doesn't refer to an existing DB snapshot.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSnapshotTenantDatabase(_SerdeShape): + """ + Contains the details of a tenant database in a snapshot of a DB + instance. + """ + + db_snapshot_identifier: str | None = ... + """The identifier for the snapshot of the DB instance.""" + db_instance_identifier: str | None = ... + """The ID for the DB instance that contains the tenant databases.""" + dbi_resource_id: str | None = ... + """ + The resource identifier of the source CDB instance. This identifier + can't be changed and is unique to an Amazon Web Services Region. + """ + engine_name: str | None = ... + """The name of the database engine.""" + snapshot_type: str | None = ... + """The type of DB snapshot.""" + tenant_database_create_time: datetime | None = ... + """ + The time the DB snapshot was taken, specified in Coordinated Universal + Time (UTC). If you copy the snapshot, the creation time changes. + """ + tenant_db_name: str | None = ... + """The name of the tenant database.""" + master_username: str | None = ... + """The master username of the tenant database.""" + tenant_database_resource_id: str | None = ... + """The resource ID of the tenant database.""" + character_set_name: str | None = ... + """The name of the character set of a tenant database.""" + db_snapshot_tenant_database_arn: str | None = ... + """The Amazon Resource Name (ARN) for the snapshot tenant database.""" + nchar_character_set_name: str | None = ... + """The `NCHAR` character set name of the tenant database.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class DBSnapshotTenantDatabaseNotFoundFault(ServiceError, _SerdeShape): + """The specified snapshot tenant database wasn't found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetGroup(_SerdeShape): + """ + Contains the details of an Amazon RDS DB subnet group. + + This data type is used as a response element in the + `DescribeDBSubnetGroups` action. + """ + + db_subnet_group_name: str | None = ... + """The name of the DB subnet group.""" + db_subnet_group_description: str | None = ... + """Provides the description of the DB subnet group.""" + vpc_id: str | None = ... + """Provides the VpcId of the DB subnet group.""" + subnet_group_status: str | None = ... + """Provides the status of the DB subnet group.""" + subnets: list[Subnet] | None = ... + """ + Contains a list of `Subnet` elements. The list of subnets shown here + might not reflect the current state of your VPC. For the most up-to-date + information, we recommend checking your VPC configuration directly. + """ + db_subnet_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB subnet group.""" + supported_network_types: list[str] | None = ... + """ + The network type of the DB subnet group. + + Valid values: + + - `IPV4` + + - `DUAL` + + A `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and the + IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + """ + +@dataclass(kw_only=True) +class DBSubnetGroupAlreadyExistsFault(ServiceError, _SerdeShape): + """`DBSubnetGroupName` is already used by an existing DB subnet group.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetGroupDoesNotCoverEnoughAZs(ServiceError, _SerdeShape): + """ + Subnets in the DB subnet group should cover at least two Availability + Zones unless there is only one Availability Zone. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetGroupNotAllowedFault(ServiceError, _SerdeShape): + """ + The DBSubnetGroup shouldn't be specified while creating read replicas + that lie in the same region as the source instance. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetGroupNotFoundFault(ServiceError, _SerdeShape): + """`DBSubnetGroupName` doesn't refer to an existing DB subnet group.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetGroupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of DB + subnet groups. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBSubnetQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of + subnets in a DB subnet groups. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DBUpgradeDependencyFailureFault(ServiceError, _SerdeShape): + """ + The DB upgrade failed because a resource the DB depends on can't be + modified. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class DefaultAuthScheme(UnknownEnumMixin, StrEnum): + IAM_AUTH = "IAM_AUTH" + NONE = "NONE" + +@dataclass(kw_only=True) +class DeleteBlueGreenDeploymentInput(_SerdeShape): + """Dataclass for DeleteBlueGreenDeploymentInput structure.""" + + blue_green_deployment_identifier: str | None = ... + """ + The unique identifier of the blue/green deployment to delete. This + parameter isn't case-sensitive. + + Constraints: + + - Must match an existing blue/green deployment identifier. + """ + delete_target: bool | None = ... + """ + Specifies whether to delete the resources in the green environment. You + can't specify this option if the blue/green deployment + [status](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_BlueGreenDeployment.html) + is `SWITCHOVER_COMPLETED`. + """ + +@dataclass(kw_only=True) +class DeleteBlueGreenDeploymentOutput(_SerdeShape): + """Dataclass for DeleteBlueGreenDeploymentOutput structure.""" + + blue_green_deployment: BlueGreenDeployment | None = ... + """ + Details about a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteCustomDBEngineVersionInput(_SerdeShape): + """Dataclass for DeleteCustomDBEngineVersionInput structure.""" + + engine: str | None = ... + """ + The database engine. + + RDS Custom for Oracle supports the following values: + + - `custom-oracle-ee` + + - `custom-oracle-ee-cdb` + + - `custom-oracle-se2` + + - `custom-oracle-se2-cdb` + + RDS Custom for SQL Server supports the following values: + + - `custom-sqlserver-ee` + + - `custom-sqlserver-se` + + - `custom-sqlserver-web` + + - `custom-sqlserver-dev` + + RDS for SQL Server supports the following values: + + - `sqlserver-ee` (Bring Your Own Media) + + - `sqlserver-se` (Bring Your Own Media) + + - `sqlserver-dev-ee` + """ + engine_version: str | None = ... + """ + The custom engine version (CEV) for your DB instance. This option is + required for RDS Custom, but optional for Amazon RDS. The combination of + `Engine` and `EngineVersion` is unique per customer per Amazon Web + Services Region. + """ + +@dataclass(kw_only=True) +class DeleteCustomDBEngineVersionOutput(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeDBEngineVersions`. + """ + + engine: str | None = ... + """The name of the database engine.""" + major_engine_version: str | None = ... + """The major engine version of the CEV.""" + engine_version: str | None = ... + """The version number of the database engine.""" + database_installation_files_s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket that contains your database + installation files. + """ + database_installation_files_s3_prefix: str | None = ... + """ + The Amazon S3 directory that contains the database installation files. + If not specified, then no prefix is assumed. + """ + database_installation_files: list[str] | None = ... + """ + The database installation files (ISO and EXE) that were uploaded to + Amazon S3 and used to import the database engine version to Amazon RDS. + Returned for RDS for SQL Server engine versions (`sqlserver-ee`, + `sqlserver-se`, and `sqlserver-dev-ee`) created from customer-supplied + installation media. + """ + custom_db_engine_version_manifest: str | None = ... + """ + JSON string that lists the installation files and parameters that RDS + Custom uses to create a custom engine version (CEV). RDS Custom applies + the patches in the order in which they're listed in the manifest. You + can set the Oracle home, Oracle base, and UNIX/Linux user and group + using the installation parameters. For more information, see [JSON + fields in the CEV + manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html#custom-cev.preparing.manifest.fields) + in the *Amazon RDS User Guide*. + """ + db_parameter_group_family: str | None = ... + """The name of the DB parameter group family for the database engine.""" + db_engine_description: str | None = ... + """The description of the database engine.""" + db_engine_version_arn: str | None = ... + """The ARN of the custom engine version.""" + db_engine_version_description: str | None = ... + """The description of the database engine version.""" + default_character_set: CharacterSet | None = ... + """ + The default character set for new instances of this engine version, if + the `CharacterSetName` parameter of the CreateDBInstance API isn't + specified. + """ + failure_reason: str | None = ... + """ + The reason that the custom engine version creation failed with an + `incompatible-installation-media` status. Applicable to RDS for SQL + Server engine versions (`sqlserver-ee`, `sqlserver-se`, and + `sqlserver-dev-ee`). + """ + image: CustomDBEngineVersionAMI | None = ... + """The EC2 image""" + db_engine_media_type: str | None = ... + """ + The source of the installation media for this engine version. A value of + `Customer Provided` indicates that the engine version was created from + customer-supplied installation media using + `CreateCustomDBEngineVersion`. Applicable to RDS Custom for SQL Server + and to RDS for SQL Server engine versions (`sqlserver-ee` and + `sqlserver-se` with the `bring-your-own-media` license model, and + `sqlserver-dev-ee`). + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted CEV. This + parameter is required for RDS Custom, but optional for Amazon RDS. + """ + create_time: datetime | None = ... + """The creation time of the DB engine version.""" + supported_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by this engine for the + `CharacterSetName` parameter of the `CreateDBInstance` operation. + """ + supported_nchar_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by the Oracle DB engine for the + `NcharCharacterSetName` parameter of the `CreateDBInstance` operation. + """ + valid_upgrade_target: list[UpgradeTarget] | None = ... + """ + A list of engine versions that this database engine version can be + upgraded to. + """ + supported_timezones: list[Timezone] | None = ... + """ + A list of the time zones supported by this engine for the `Timezone` + parameter of the `CreateDBInstance` action. + """ + exportable_log_types: list[str] | None = ... + """ + The types of logs that the database engine has available for export to + CloudWatch Logs. + """ + supports_log_exports_to_cloudwatch_logs: bool | None = ... + """ + Indicates whether the engine version supports exporting the log types + specified by ExportableLogTypes to CloudWatch Logs. + """ + supports_read_replica: bool | None = ... + """Indicates whether the database engine version supports read replicas.""" + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes.""" + supported_feature_names: list[str] | None = ... + """ + A list of features supported by the DB engine. + + The supported features vary by DB engine and DB engine version. + + To determine the supported features for a specific DB engine and DB + engine version using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine --engine-version ` + + For example, to determine the supported features for RDS for PostgreSQL + version 13.3 using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine postgres --engine-version 13.3` + + The supported features are listed under `SupportedFeatureNames` in the + output. + """ + status: str | None = ... + """The status of the DB engine version, either `available` or `deprecated`.""" + supports_parallel_query: bool | None = ... + """ + Indicates whether you can use Aurora parallel query with a specific DB + engine version. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with a specific DB + engine version. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + supports_babelfish: bool | None = ... + """ + Indicates whether the engine version supports Babelfish for Aurora + PostgreSQL. + """ + supports_limitless_database: bool | None = ... + """ + Indicates whether the DB engine version supports Aurora Limitless + Database. + """ + supports_certificate_rotation_without_restart: bool | None = ... + """ + Indicates whether the engine version supports rotating the server + certificate without rebooting the DB instance. + """ + supported_ca_certificate_identifiers: list[str] | None = ... + """ + A list of the supported CA certificate identifiers. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + supports_local_write_forwarding: bool | None = ... + """ + Indicates whether the DB engine version supports forwarding write + operations from reader DB instances to the writer DB instance in the DB + cluster. By default, write operations aren't allowed on reader DB + instances. + + Valid for: Aurora DB clusters only + """ + supports_integrations: bool | None = ... + """ + Indicates whether the DB engine version supports zero-ETL integrations + with Amazon Redshift. + """ + serverless_v2_features_support: ServerlessV2FeaturesSupport | None = ... + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora engine versions. You can test the values of this + attribute when deciding which Aurora version to use in a new or upgraded + DB cluster. You can also retrieve the version of an existing DB cluster + and check whether that version supports certain Aurora Serverless v2 + features before you attempt to use those features. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterAutomatedBackupInput(_SerdeShape): + """Dataclass for DeleteDBClusterAutomatedBackupInput structure.""" + + db_cluster_resource_id: str | None = ... + """ + The identifier for the source DB cluster, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterAutomatedBackupOutput(_SerdeShape): + """Dataclass for DeleteDBClusterAutomatedBackupOutput structure.""" + + db_cluster_automated_backup: DBClusterAutomatedBackup | None = ... + """ + An automated backup of a DB cluster. It consists of system backups, + transaction logs, and the database cluster properties that existed at + the time you deleted the source cluster. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterEndpointInput(_SerdeShape): + """Dataclass for DeleteDBClusterEndpointInput structure.""" + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier associated with the custom endpoint. This parameter is + stored as a lowercase string. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterEndpointOutput(_SerdeShape): + """ + This data type represents the information you need to connect to an + Amazon Aurora DB cluster. This data type is used as a response element + in the following actions: + + - `CreateDBClusterEndpoint` + + - `DescribeDBClusterEndpoints` + + - `ModifyDBClusterEndpoint` + + - `DeleteDBClusterEndpoint` + + For the data structure that represents Amazon RDS DB instance endpoints, + see `Endpoint`. + """ + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier associated with the endpoint. This parameter is stored as + a lowercase string. + """ + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_resource_identifier: str | None = ... + """ + A unique system-generated identifier for an endpoint. It remains the + same for the whole life of the endpoint. + """ + endpoint: str | None = ... + """The DNS address of the endpoint.""" + status: str | None = ... + """ + The current status of the endpoint. One of: `creating`, `available`, + `deleting`, `inactive`, `modifying`. The `inactive` state applies to an + endpoint that can't be used for a certain kind of cluster, such as a + `writer` endpoint for a read-only secondary cluster in a global + database. + """ + endpoint_type: str | None = ... + """The type of the endpoint. One of: `READER`, `WRITER`, `CUSTOM`.""" + custom_endpoint_type: str | None = ... + """ + The type associated with a custom endpoint. One of: `READER`, `WRITER`, + `ANY`. + """ + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. Only relevant if the list of static members is empty. + """ + db_cluster_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) for the endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier for the DB cluster to be deleted. This + parameter isn't case-sensitive. + + Constraints: + + - Must match an existing DBClusterIdentifier. + """ + skip_final_snapshot: bool | None = ... + """ + Specifies whether to skip the creation of a final DB cluster snapshot + before RDS deletes the DB cluster. If you set this value to `true`, RDS + doesn't create a final DB cluster snapshot. If you set this value to + `false` or don't specify it, RDS creates a DB cluster snapshot before + it deletes the DB cluster. By default, this parameter is disabled, so + RDS creates a final DB cluster snapshot. + + Note: + If `SkipFinalSnapshot` is disabled, you must specify a value for the + `FinalDBSnapshotIdentifier` parameter. + """ + final_db_snapshot_identifier: str | None = ... + """ + The DB cluster snapshot identifier of the new DB cluster snapshot + created when `SkipFinalSnapshot` is disabled. + + Note: + If you specify this parameter and also skip the creation of a final DB + cluster snapshot with the `SkipFinalShapshot` parameter, the request + results in an error. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + """ + delete_automated_backups: bool | None = ... + """ + Specifies whether to remove automated backups immediately after the DB + cluster is deleted. This parameter isn't case-sensitive. The default is + to remove automated backups immediately after the DB cluster is deleted, + unless the Amazon Web Services Backup policy specifies a point-in-time + restore rule. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterOutput(_SerdeShape): + """Dataclass for DeleteDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterParameterGroupInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group. + + Constraints: + + - Must be the name of an existing DB cluster parameter group. + + - You can't delete a default DB cluster parameter group. + + - Can't be associated with any DB clusters. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterParameterGroupOutput(_SerdeShape): + """Dataclass for DeleteDBClusterParameterGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterSnapshotInput(_SerdeShape): + """""" + + db_cluster_snapshot_identifier: str | None = ... + """ + The identifier of the DB cluster snapshot to delete. + + Constraints: Must be the name of an existing DB cluster snapshot in the + `available` state. + """ + +@dataclass(kw_only=True) +class DeleteDBClusterSnapshotOutput(_SerdeShape): + """Dataclass for DeleteDBClusterSnapshotOutput structure.""" + + db_cluster_snapshot: DBClusterSnapshot | None = ... + """ + Contains the details for an Amazon RDS DB cluster snapshot + + This data type is used as a response element in the + `DescribeDBClusterSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBInstanceAutomatedBackupInput(_SerdeShape): + """Parameter input for the `DeleteDBInstanceAutomatedBackup` operation.""" + + dbi_resource_id: str | None = ... + """ + The identifier for the source DB instance, which can't be changed and + which is unique to an Amazon Web Services Region. + """ + db_instance_automated_backups_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the automated backups to delete, for + example, + `arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE`. + + This setting doesn't apply to RDS Custom. + """ + +@dataclass(kw_only=True) +class DeleteDBInstanceAutomatedBackupOutput(_SerdeShape): + """Dataclass for DeleteDBInstanceAutomatedBackupOutput structure.""" + + db_instance_automated_backup: DBInstanceAutomatedBackup | None = ... + """ + An automated backup of a DB instance. It consists of system backups, + transaction logs, and the database instance properties that existed at + the time you deleted the source instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBInstanceInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The DB instance identifier for the DB instance to be deleted. This + parameter isn't case-sensitive. + + Constraints: + + - Must match the name of an existing DB instance. + """ + skip_final_snapshot: bool | None = ... + """ + Specifies whether to skip the creation of a final DB snapshot before + deleting the instance. If you enable this parameter, RDS doesn't create + a DB snapshot. If you don't enable this parameter, RDS creates a DB + snapshot before the DB instance is deleted. By default, skip isn't + enabled, and the DB snapshot is created. + + Note: + If you don't enable this parameter, you must specify the + `FinalDBSnapshotIdentifier` parameter. + + When a DB instance is in a failure state and has a status of `failed`, + `incompatible-restore`, or `incompatible-network`, RDS can delete the + instance only if you enable this parameter. + + If you delete a read replica or an RDS Custom instance, you must enable + this setting. + + This setting is required for RDS Custom. + """ + final_db_snapshot_identifier: str | None = ... + """ + The `DBSnapshotIdentifier` of the new `DBSnapshot` created when the + `SkipFinalSnapshot` parameter is disabled. + + Note: + If you enable this parameter and also enable SkipFinalShapshot, the + command results in an error. + + This setting doesn't apply to RDS Custom. + + Constraints: + + - Must be 1 to 255 letters or numbers. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + - Can't be specified when deleting a read replica. + """ + delete_automated_backups: bool | None = ... + """ + Specifies whether to remove automated backups immediately after the DB + instance is deleted. This parameter isn't case-sensitive. The default + is to remove automated backups immediately after the DB instance is + deleted. + """ + +@dataclass(kw_only=True) +class DeleteDBInstanceOutput(_SerdeShape): + """Dataclass for DeleteDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBParameterGroupInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group. + + Constraints: + + - Must be the name of an existing DB parameter group + + - You can't delete a default DB parameter group + + - Can't be associated with any DB instances + """ + +@dataclass(kw_only=True) +class DeleteDBParameterGroupOutput(_SerdeShape): + """Dataclass for DeleteDBParameterGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBProxyEndpointInput(_SerdeShape): + """Dataclass for DeleteDBProxyEndpointInput structure.""" + + db_proxy_endpoint_name: str | None = ... + """The name of the DB proxy endpoint to delete.""" + +@dataclass(kw_only=True) +class DeleteDBProxyEndpointOutput(_SerdeShape): + """Dataclass for DeleteDBProxyEndpointOutput structure.""" + + db_proxy_endpoint: DBProxyEndpoint | None = ... + """ + The data structure representing the details of the DB proxy endpoint + that you delete. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBProxyInput(_SerdeShape): + """Dataclass for DeleteDBProxyInput structure.""" + + db_proxy_name: str | None = ... + """The name of the DB proxy to delete.""" + +@dataclass(kw_only=True) +class DeleteDBProxyOutput(_SerdeShape): + """Dataclass for DeleteDBProxyOutput structure.""" + + db_proxy: DBProxy | None = ... + """ + The data structure representing the details of the DB proxy that you + delete. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBSecurityGroupInput(_SerdeShape): + """""" + + db_security_group_name: str | None = ... + """ + The name of the DB security group to delete. + + Note: + You can't delete the default DB security group. + + Constraints: + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + - Must not be \"Default\" + """ + +@dataclass(kw_only=True) +class DeleteDBSecurityGroupOutput(_SerdeShape): + """Dataclass for DeleteDBSecurityGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBShardGroupInput(_SerdeShape): + """Dataclass for DeleteDBShardGroupInput structure.""" + + db_shard_group_identifier: str | None = ... + """The name of the DB shard group to delete.""" + +@dataclass(kw_only=True) +class DeleteDBShardGroupOutput(_SerdeShape): + """Contains the details for an Amazon RDS DB shard group.""" + + db_shard_group_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + shard group. + """ + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + status: str | None = ... + """The status of the DB shard group.""" + publicly_accessible: bool | None = ... + """ + Indicates whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access isn't permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + For more information, see CreateDBShardGroup. + + This setting is only for Aurora Limitless Database. + """ + endpoint: str | None = ... + """The connection endpoint for the DB shard group.""" + db_shard_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB shard group.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBSnapshotInput(_SerdeShape): + """""" + + db_snapshot_identifier: str | None = ... + """ + The DB snapshot identifier. + + Constraints: Must be the name of an existing DB snapshot in the + `available` state. + """ + +@dataclass(kw_only=True) +class DeleteDBSnapshotOutput(_SerdeShape): + """Dataclass for DeleteDBSnapshotOutput structure.""" + + db_snapshot: DBSnapshot | None = ... + """ + Contains the details of an Amazon RDS DB snapshot. + + This data type is used as a response element in the + `DescribeDBSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteDBSubnetGroupInput(_SerdeShape): + """""" + + db_subnet_group_name: str | None = ... + """ + The name of the database subnet group to delete. + + Note: + You can't delete the default subnet group. + + Constraints: Must match the name of an existing DBSubnetGroup. Must not + be default. + + Example: `mydbsubnetgroup` + """ + +@dataclass(kw_only=True) +class DeleteDBSubnetGroupOutput(_SerdeShape): + """Dataclass for DeleteDBSubnetGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteEventSubscriptionInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """The name of the RDS event notification subscription you want to delete.""" + +@dataclass(kw_only=True) +class DeleteEventSubscriptionOutput(_SerdeShape): + """Dataclass for DeleteEventSubscriptionOutput structure.""" + + event_subscription: EventSubscription | None = ... + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteGlobalClusterInput(_SerdeShape): + """Dataclass for DeleteGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """The cluster identifier of the global database cluster being deleted.""" + +@dataclass(kw_only=True) +class DeleteGlobalClusterOutput(_SerdeShape): + """Dataclass for DeleteGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteIntegrationInput(_SerdeShape): + """Dataclass for DeleteIntegrationInput structure.""" + + integration_identifier: str | None = ... + """The unique identifier of the integration.""" + +@dataclass(kw_only=True) +class DeleteIntegrationOutput(_SerdeShape): + """A zero-ETL integration with Amazon Redshift.""" + + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the database used as the source for + replication. + """ + target_arn: str | None = ... + """ + The ARN of the Redshift data warehouse used as the target for + replication. + """ + integration_name: str | None = ... + """The name of the integration.""" + integration_arn: str | None = ... + """The ARN of the integration.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services Key Management System (Amazon Web Services KMS) + key identifier for the key used to to encrypt the integration. + """ + additional_encryption_context: dict[str, str] | None = ... + """ + The encryption context for the integration. For more information, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + status: str | None = ... + """The current status of the integration.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + data_filter: str | None = ... + """ + Data filters for the integration. These filters determine which tables + from the source database are sent to the target Amazon Redshift data + warehouse. + """ + description: str | None = ... + """A description of the integration.""" + create_time: datetime | None = ... + """ + The time when the integration was created, in Universal Coordinated Time + (UTC). + """ + errors: list[IntegrationError] | None = ... + """Any errors associated with the integration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteOptionGroupInput(_SerdeShape): + """""" + + option_group_name: str | None = ... + """ + The name of the option group to be deleted. + + Note: + You can't delete default option groups. + """ + +@dataclass(kw_only=True) +class DeleteOptionGroupOutput(_SerdeShape): + """Dataclass for DeleteOptionGroupOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteTenantDatabaseInput(_SerdeShape): + """Dataclass for DeleteTenantDatabaseInput structure.""" + + db_instance_identifier: str | None = ... + """ + The user-supplied identifier for the DB instance that contains the + tenant database that you want to delete. + """ + tenant_db_name: str | None = ... + """ + The user-supplied name of the tenant database that you want to remove + from your DB instance. Amazon RDS deletes the tenant database with this + name. This parameter isn't case-sensitive. + """ + skip_final_snapshot: bool | None = ... + """ + Specifies whether to skip the creation of a final DB snapshot before + removing the tenant database from your DB instance. If you enable this + parameter, RDS doesn't create a DB snapshot. If you don't enable this + parameter, RDS creates a DB snapshot before it deletes the tenant + database. By default, RDS doesn't skip the final snapshot. If you + don't enable this parameter, you must specify the + `FinalDBSnapshotIdentifier` parameter. + """ + final_db_snapshot_identifier: str | None = ... + """ + The `DBSnapshotIdentifier` of the new `DBSnapshot` created when the + `SkipFinalSnapshot` parameter is disabled. + + Note: + If you enable this parameter and also enable `SkipFinalShapshot`, the + command results in an error. + """ + +@dataclass(kw_only=True) +class DeleteTenantDatabaseOutput(_SerdeShape): + """Dataclass for DeleteTenantDatabaseOutput structure.""" + + tenant_database: TenantDatabase | None = ... + """ + A tenant database in the DB instance. This data type is an element in + the response to the `DescribeTenantDatabases` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeregisterDBProxyTargetsInput(_SerdeShape): + """Dataclass for DeregisterDBProxyTargetsInput structure.""" + + db_proxy_name: str | None = ... + """ + The identifier of the `DBProxy` that is associated with the + `DBProxyTargetGroup`. + """ + target_group_name: str | None = ... + """The identifier of the `DBProxyTargetGroup`.""" + db_instance_identifiers: list[str] | None = ... + """One or more DB instance identifiers.""" + db_cluster_identifiers: list[str] | None = ... + """One or more DB cluster identifiers.""" + +@dataclass(kw_only=True) +class DeregisterDBProxyTargetsOutput(_SerdeShape): + """Dataclass for DeregisterDBProxyTargetsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeAccountAttributesInput(_SerdeShape): + """""" + +@dataclass(kw_only=True) +class DescribeAccountAttributesOutput(_SerdeShape): + """Data returned by the **DescribeAccountAttributes** action.""" + + account_quotas: list[AccountQuota] | None = ... + """ + A list of `AccountQuota` objects. Within this list, each quota has a + name, a count of usage toward the quota maximum, and a maximum value for + the quota. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeBlueGreenDeploymentsInput(_SerdeShape): + """Dataclass for DescribeBlueGreenDeploymentsInput structure.""" + + blue_green_deployment_identifier: str | None = ... + """ + The blue/green deployment identifier. If you specify this parameter, the + response only includes information about the specific blue/green + deployment. This parameter isn't case-sensitive. + + Constraints: + + - Must match an existing blue/green deployment identifier. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more blue/green deployments to describe. + + Valid Values: + + - `blue-green-deployment-identifier` - Accepts system-generated + identifiers for blue/green deployments. The results list only includes + information about the blue/green deployments with the specified + identifiers. + + - `blue-green-deployment-name` - Accepts user-supplied names for + blue/green deployments. The results list only includes information + about the blue/green deployments with the specified names. + + - `source` - Accepts source databases for a blue/green deployment. The + results list only includes information about the blue/green + deployments with the specified source databases. + + - `target` - Accepts target databases for a blue/green deployment. The + results list only includes information about the blue/green + deployments with the specified target databases. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeBlueGreenDeployments` request. If you specify this parameter, + the response only includes records beyond the marker, up to the value + specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: + + - Must be a minimum of 20. + + - Can't exceed 100. + """ + +@dataclass(kw_only=True) +class DescribeBlueGreenDeploymentsOutput(_SerdeShape): + """Dataclass for DescribeBlueGreenDeploymentsOutput structure.""" + + blue_green_deployments: list[BlueGreenDeployment] | None = ... + """ + A list of blue/green deployments in the current account and Amazon Web + Services Region. + """ + marker: str | None = ... + """ + A pagination token that can be used in a later + `DescribeBlueGreenDeployments` request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeCertificatesInput(_SerdeShape): + """""" + + certificate_identifier: str | None = ... + """ + The user-supplied certificate identifier. If this parameter is + specified, information for only the identified certificate is returned. + This parameter isn't case-sensitive. + + Constraints: + + - Must match an existing CertificateIdentifier. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeCertificates` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeCertificatesOutput(_SerdeShape): + """Data returned by the **DescribeCertificates** action.""" + + default_certificate_for_new_launches: str | None = ... + """ + The default root CA for new databases created by your Amazon Web + Services account. This is either the root CA override set on your Amazon + Web Services account or the system default CA for the Region if no + override exists. To override the default CA, use the + `ModifyCertificates` operation. + """ + certificates: list[Certificate] | None = ... + """The list of `Certificate` objects for the Amazon Web Services account.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeCertificates` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords` . + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBCapacityReservationsInput(_SerdeShape): + """Dataclass for DescribeDBCapacityReservationsInput structure.""" + + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to describe. + You can specify the identifier, which has the prefix `dbcr-`, or the + reservation name. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBCapacityReservations` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: + + - Must be a minimum of 20. + + - Can't exceed 100. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies which DB capacity reservations to describe. + + Supported filters: + + - `db-capacity-reservation-name` - Accepts DB capacity reservation + names. The response includes only the reservations that these names + identify. Use this filter to describe several reservations by name in + one request. + + - `state` - Accepts reservation states. The response includes only the + reservations in these states. + + - `engine` - Accepts database engine names. The response includes only + the reservations that reserve capacity for these engines. + + - `db-instance-class` - Accepts DB instance classes. The response + includes only the reservations that reserve capacity for these DB + instance classes. + + - `availability-zone` - Accepts Availability Zone names. The response + includes only the reservations that cover these Availability Zones. + + When you specify more than one value for a filter, the response includes + the reservations that match any of those values. When you specify more + than one filter, the response includes only the reservations that match + every filter. + + Amazon RDS rejects the request when a filter name isn't in this list, + or when a filter specifies no values. + + Note: + The `state` filter doesn't accept `expired`. To find an expired + reservation, compare `EndDate` against the current date and time. + """ + +@dataclass(kw_only=True) +class DescribeDBCapacityReservationsOutput(_SerdeShape): + """Dataclass for DescribeDBCapacityReservationsOutput structure.""" + + db_capacity_reservations: list[DBCapacityReservation] | None = ... + """A list of DB capacity reservations.""" + marker: str | None = ... + """ + A pagination token that you can use in a later + `DescribeDBCapacityReservations` request. If this value is returned, + more records are available beyond this response. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterAutomatedBackupsInput(_SerdeShape): + """Dataclass for DescribeDBClusterAutomatedBackupsInput structure.""" + + db_cluster_resource_id: str | None = ... + """ + The resource ID of the DB cluster that is the source of the automated + backup. This parameter isn't case-sensitive. + """ + db_cluster_identifier: str | None = ... + """ + (Optional) The user-supplied DB cluster identifier. If this parameter is + specified, it must match the identifier of an existing DB cluster. It + returns information from the specific DB cluster's automated backup. + This parameter isn't case-sensitive. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies which resources to return based on status. + + Supported filters are the following: + + - `status` + + - `retained` - Automated backups for deleted clusters and after backup + replication is stopped. + + - `db-cluster-id` - Accepts DB cluster identifiers and Amazon Resource + Names (ARNs). The results list includes only information about the DB + cluster automated backups identified by these ARNs. + + - `db-cluster-resource-id` - Accepts DB resource identifiers and Amazon + Resource Names (ARNs). The results list includes only information + about the DB cluster resources identified by these ARNs. + + Returns all resources by default. The status for each resource is + specified in the response. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + """ + marker: str | None = ... + """ + The pagination token provided in the previous request. If this parameter + is specified the response includes only records beyond the marker, up to + `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterAutomatedBackupsOutput(_SerdeShape): + """Dataclass for DescribeDBClusterAutomatedBackupsOutput structure.""" + + marker: str | None = ... + """ + The pagination token provided in the previous request. If this parameter + is specified the response includes only records beyond the marker, up to + `MaxRecords`. + """ + db_cluster_automated_backups: list[DBClusterAutomatedBackup] | None = ... + """A list of `DBClusterAutomatedBackup` backups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterBacktracksInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster to be described. This + parameter is stored as a lowercase string. + + Constraints: + + - Must contain from 1 to 63 alphanumeric characters or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster1` + """ + backtrack_identifier: str | None = ... + """ + If specified, this value is the backtrack identifier of the backtrack to + be described. + + Constraints: + + - Must contain a valid universally unique identifier (UUID). For more + information about UUIDs, see [Universally unique + identifier](https://en.wikipedia.org/wiki/Universally_unique_identifier). + + Example: `123e4567-e89b-12d3-a456-426655440000` + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB clusters to describe. Supported + filters include the following: + + - `db-cluster-backtrack-id` - Accepts backtrack identifiers. The results + list includes information about only the backtracks identified by + these identifiers. + + - `db-cluster-backtrack-status` - Accepts any of the following backtrack + status values: + + - `applying` + + - `completed` + + - `failed` + + - `pending` + + The results list includes information about only the backtracks + identified by these values. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterBacktracks` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterBacktracksOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBClusterBacktracks` action. + """ + + marker: str | None = ... + """ + A pagination token that can be used in a later + `DescribeDBClusterBacktracks` request. + """ + db_cluster_backtracks: list[DBClusterBacktrack] | None = ... + """Contains a list of backtracks for the user.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterEndpointsInput(_SerdeShape): + """Dataclass for DescribeDBClusterEndpointsInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier of the endpoint to describe. This parameter is stored as + a lowercase string. + """ + filters: list[Filter] | None = ... + """ + A set of name-value pairs that define which endpoints to include in the + output. The filters are specified as name-value pairs, in the format + `Name=`*`endpoint_type`*`,Values=`*`endpoint_type1`*`,`*`endpoint_type2`*`,...`. + `Name` can be one of: `db-cluster-endpoint-type`, + `db-cluster-endpoint-custom-type`, `db-cluster-endpoint-id`, + `db-cluster-endpoint-status`. `Values` for the + ` db-cluster-endpoint-type` filter can be one or more of: `reader`, + `writer`, `custom`. `Values` for the `db-cluster-endpoint-custom-type` + filter can be one or more of: `reader`, `any`. `Values` for the + `db-cluster-endpoint-status` filter can be one or more of: `available`, + `creating`, `deleting`, `inactive`, `modifying`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterEndpoints` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterEndpointsOutput(_SerdeShape): + """Dataclass for DescribeDBClusterEndpointsOutput structure.""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterEndpoints` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + db_cluster_endpoints: list[DBClusterEndpoint] | None = ... + """ + Contains the details of the endpoints associated with the cluster and + matching any filter conditions. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterParameterGroupsInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of a specific DB cluster parameter group to return details for. + + Constraints: + + - If supplied, must match the name of an existing + DBClusterParameterGroup. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterParameterGroups` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterParameterGroupsOutput(_SerdeShape): + """""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterParameterGroups` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + db_cluster_parameter_groups: list[DBClusterParameterGroup] | None = ... + """A list of DB cluster parameter groups.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterParametersInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of a specific DB cluster parameter group to return parameter + details for. + + Constraints: + + - If supplied, must match the name of an existing + DBClusterParameterGroup. + """ + source: str | None = ... + """ + A specific source to return parameters for. + + Valid Values: + + - `engine-default` + + - `system` + + - `user` + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB cluster parameters to describe. + + The only supported filter is `parameter-name`. The results list only + includes information about the DB cluster parameters with these names. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterParameters` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterParametersOutput(_SerdeShape): + """ + Provides details about a DB cluster parameter group including the + parameters in the DB cluster parameter group. + """ + + parameters: list[Parameter] | None = ... + """Provides a list of parameters for the DB cluster parameter group.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterParameters` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClustersInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The user-supplied DB cluster identifier or the Amazon Resource Name + (ARN) of the DB cluster. If this parameter is specified, information for + only the specific DB cluster is returned. This parameter isn't + case-sensitive. + + Constraints: + + - If supplied, must match an existing DB cluster identifier. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB clusters to describe. + + Supported Filters: + + - `clone-group-id` - Accepts clone group identifiers. The results list + only includes information about the DB clusters associated with these + clone groups. + + - `db-cluster-id` - Accepts DB cluster identifiers and DB cluster Amazon + Resource Names (ARNs). The results list only includes information + about the DB clusters identified by these ARNs. + + - `db-cluster-resource-id` - Accepts DB cluster resource identifiers. + The results list will only include information about the DB clusters + identified by these DB cluster resource identifiers. + + - `domain` - Accepts Active Directory directory IDs. The results list + only includes information about the DB clusters associated with these + domains. + + - `engine` - Accepts engine names. The results list only includes + information about the DB clusters for these engines. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100 + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous `DescribeDBClusters` + request. If this parameter is specified, the response includes only + records beyond the marker, up to the value specified by `MaxRecords`. + """ + include_shared: bool | None = ... + """ + Specifies whether the output includes information about clusters shared + from other Amazon Web Services accounts. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterSnapshotAttributesInput(_SerdeShape): + """""" + + db_cluster_snapshot_identifier: str | None = ... + """ + The identifier for the DB cluster snapshot to describe the attributes + for. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterSnapshotAttributesOutput(_SerdeShape): + """Dataclass for DescribeDBClusterSnapshotAttributesOutput structure.""" + + db_cluster_snapshot_attributes_result: ( + DBClusterSnapshotAttributesResult | None + ) = ... + """ + Contains the results of a successful call to the + `DescribeDBClusterSnapshotAttributes` API action. + + Manual DB cluster snapshot attributes are used to authorize other Amazon + Web Services accounts to copy or restore a manual DB cluster snapshot. + For more information, see the `ModifyDBClusterSnapshotAttribute` API + action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClusterSnapshotsInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The ID of the DB cluster to retrieve the list of DB cluster snapshots + for. This parameter can't be used in conjunction with the + `DBClusterSnapshotIdentifier` parameter. This parameter isn't + case-sensitive. + + Constraints: + + - If supplied, must match the identifier of an existing DBCluster. + """ + db_cluster_snapshot_identifier: str | None = ... + """ + A specific DB cluster snapshot identifier to describe. This parameter + can't be used in conjunction with the `DBClusterIdentifier` parameter. + This value is stored as a lowercase string. + + Constraints: + + - If supplied, must match the identifier of an existing + DBClusterSnapshot. + + - If this identifier is for an automated snapshot, the `SnapshotType` + parameter must also be specified. + """ + snapshot_type: str | None = ... + """ + The type of DB cluster snapshots to be returned. You can specify one of + the following values: + + - `automated` - Return all DB cluster snapshots that have been + automatically taken by Amazon RDS for my Amazon Web Services account. + + - `manual` - Return all DB cluster snapshots that have been taken by my + Amazon Web Services account. + + - `shared` - Return all manual DB cluster snapshots that have been + shared to my Amazon Web Services account. + + - `public` - Return all DB cluster snapshots that have been marked as + public. + + If you don't specify a `SnapshotType` value, then both automated and + manual DB cluster snapshots are returned. You can include shared DB + cluster snapshots with these results by enabling the `IncludeShared` + parameter. You can include public DB cluster snapshots with these + results by enabling the `IncludePublic` parameter. + + The `IncludeShared` and `IncludePublic` parameters don't apply for + `SnapshotType` values of `manual` or `automated`. The `IncludePublic` + parameter doesn't apply when `SnapshotType` is set to `shared`. The + `IncludeShared` parameter doesn't apply when `SnapshotType` is set to + `public`. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB cluster snapshots to describe. + + Supported filters: + + - `db-cluster-id` - Accepts DB cluster identifiers and DB cluster Amazon + Resource Names (ARNs). + + - `db-cluster-snapshot-id` - Accepts DB cluster snapshot identifiers. + + - `snapshot-type` - Accepts types of DB cluster snapshots. + + - `engine` - Accepts names of database engines. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterSnapshots` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + include_shared: bool | None = ... + """ + Specifies whether to include shared manual DB cluster snapshots from + other Amazon Web Services accounts that this Amazon Web Services account + has been given permission to copy or restore. By default, these + snapshots are not included. + + You can give an Amazon Web Services account permission to restore a + manual DB cluster snapshot from another Amazon Web Services account by + the `ModifyDBClusterSnapshotAttribute` API action. + """ + include_public: bool | None = ... + """ + Specifies whether to include manual DB cluster snapshots that are public + and can be copied or restored by any Amazon Web Services account. By + default, the public snapshots are not included. + + You can share a manual DB cluster snapshot as public by using the + ModifyDBClusterSnapshotAttribute API action. + """ + db_cluster_resource_id: str | None = ... + """A specific DB cluster resource ID to describe.""" + +@dataclass(kw_only=True) +class DescribeDBClusterSnapshotsOutput(_SerdeShape): + """ + Provides a list of DB cluster snapshots for the user as the result of a + call to the `DescribeDBClusterSnapshots` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBClusterSnapshots` request. If this parameter is specified, + the response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + db_cluster_snapshots: list[DBClusterSnapshot] | None = ... + """Provides a list of DB cluster snapshots for the user.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBClustersOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBClusters` action. + """ + + marker: str | None = ... + """ + A pagination token that can be used in a later `DescribeDBClusters` + request. + """ + db_clusters: list[DBCluster] | None = ... + """Contains a list of DB clusters for the user.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBEngineVersionsInput(_SerdeShape): + """""" + + engine: str | None = ... + """ + The database engine to return version details for. + + Valid Values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `custom-oracle-ee` + + - `custom-oracle-ee-cdb` + + - `custom-oracle-se2` + + - `custom-oracle-se2-cdb` + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + + - `sqlserver-dev-ee` + """ + engine_version: str | None = ... + """ + A specific database engine version to return details for. + + Example: `5.1.49` + """ + db_parameter_group_family: str | None = ... + """ + The name of a specific DB parameter group family to return details for. + + Constraints: + + - If supplied, must match an existing DB parameter group family. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB engine versions to describe. + + Supported filters: + + - `db-parameter-group-family` - Accepts parameter groups family names. + The results list only includes information about the DB engine + versions for these parameter group families. + + - `engine` - Accepts engine names. The results list only includes + information about the DB engine versions for these engines. + + - `engine-mode` - Accepts DB engine modes. The results list only + includes information about the DB engine versions for these engine + modes. Valid DB engine modes are the following: + + - `global` + + - `multimaster` + + - `parallelquery` + + - `provisioned` + + - `serverless` + + - `engine-version` - Accepts engine versions. The results list only + includes information about the DB engine versions for these engine + versions. + + - `status` - Accepts engine version statuses. The results list only + includes information about the DB engine versions for these statuses. + Valid statuses are the following: + + - `available` + + - `deprecated` + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more than + the `MaxRecords` value is available, a pagination token called a marker + is included in the response so you can retrieve the remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + default_only: bool | None = ... + """ + Specifies whether to return only the default version of the specified + engine or the engine and major version combination. + """ + list_supported_character_sets: bool | None = ... + """ + Specifies whether to list the supported character sets for each engine + version. + + If this parameter is enabled and the requested engine supports the + `CharacterSetName` parameter for `CreateDBInstance`, the response + includes a list of supported character sets for each engine version. + + For RDS Custom, the default is not to list supported character sets. If + you enable this parameter, RDS Custom returns no results. + """ + list_supported_timezones: bool | None = ... + """ + Specifies whether to list the supported time zones for each engine + version. + + If this parameter is enabled and the requested engine supports the + `TimeZone` parameter for `CreateDBInstance`, the response includes a + list of supported time zones for each engine version. + + For RDS Custom, the default is not to list supported time zones. If you + enable this parameter, RDS Custom returns no results. + """ + include_all: bool | None = ... + """ + Specifies whether to also list the engine versions that aren't + available. The default is to list only available engine versions. + """ + +@dataclass(kw_only=True) +class DescribeDBEngineVersionsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBEngineVersions` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_engine_versions: list[DBEngineVersion] | None = ... + """A list of `DBEngineVersion` elements.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBInstanceAutomatedBackupsInput(_SerdeShape): + """Parameter input for DescribeDBInstanceAutomatedBackups.""" + + dbi_resource_id: str | None = ... + """ + The resource ID of the DB instance that is the source of the automated + backup. This parameter isn't case-sensitive. + """ + db_instance_identifier: str | None = ... + """ + (Optional) The user-supplied instance identifier. If this parameter is + specified, it must match the identifier of an existing DB instance. It + returns information from the specific DB instance's automated backup. + This parameter isn't case-sensitive. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies which resources to return based on status. + + Supported filters are the following: + + - `status` + + - `active` - Automated backups for current instances. + + - `creating` - Automated backups that are waiting for the first + automated snapshot to be available. + + - `retained` - Automated backups for deleted instances and after + backup replication is stopped. + + - `db-instance-id` - Accepts DB instance identifiers and Amazon Resource + Names (ARNs). The results list includes only information about the DB + instance automated backups identified by these ARNs. + + - `dbi-resource-id` - Accepts DB resource identifiers and Amazon + Resource Names (ARNs). The results list includes only information + about the DB instance resources identified by these ARNs. + + Returns all resources by default. The status for each resource is + specified in the response. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + """ + marker: str | None = ... + """ + The pagination token provided in the previous request. If this parameter + is specified the response includes only records beyond the marker, up to + `MaxRecords`. + """ + db_instance_automated_backups_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the replicated automated backups, for + example, + `arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE`. + + This setting doesn't apply to RDS Custom. + """ + +@dataclass(kw_only=True) +class DescribeDBInstanceAutomatedBackupsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBInstanceAutomatedBackups` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_instance_automated_backups: list[DBInstanceAutomatedBackup] | None = ... + """A list of `DBInstanceAutomatedBackup` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBInstancesInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The user-supplied instance identifier or the Amazon Resource Name (ARN) + of the DB instance. If this parameter is specified, information from + only the specific DB instance is returned. This parameter isn't + case-sensitive. + + Constraints: + + - If supplied, must match the identifier of an existing DB instance. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB instances to describe. + + Supported Filters: + + - `db-cluster-id` - Accepts DB cluster identifiers and DB cluster Amazon + Resource Names (ARNs). The results list only includes information + about the DB instances associated with the DB clusters identified by + these ARNs. + + - `db-instance-id` - Accepts DB instance identifiers and DB instance + Amazon Resource Names (ARNs). The results list only includes + information about the DB instances identified by these ARNs. + + - `dbi-resource-id` - Accepts DB instance resource identifiers. The + results list only includes information about the DB instances + identified by these DB instance resource identifiers. + + - `domain` - Accepts Active Directory directory IDs. The results list + only includes information about the DB instances associated with these + domains. + + - `engine` - Accepts engine names. The results list only includes + information about the DB instances for these engines. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBInstances` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBInstancesOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBInstances` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords` . + """ + db_instances: list[DBInstance] | None = ... + """A list of `DBInstance` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBLogFilesDetails(_SerdeShape): + """This data type is used as a response element to `DescribeDBLogFiles`.""" + + log_file_name: str | None = ... + """The name of the log file for the specified DB instance.""" + last_written: int | None = ... + """A POSIX timestamp when the last log entry was written.""" + size: int | None = ... + """The size, in bytes, of the log file for the specified DB instance.""" + +@dataclass(kw_only=True) +class DescribeDBLogFilesInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The customer-assigned name of the DB instance that contains the log + files you want to list. + + Constraints: + + - Must match the identifier of an existing DBInstance. + """ + filename_contains: str | None = ... + """ + Filters the available log files for log file names that contain the + specified string. + """ + file_last_written: int | None = ... + """ + Filters the available log files for files written since the specified + date, in POSIX timestamp format with milliseconds. + """ + file_size: int | None = ... + """ + Filters the available log files for files larger than the specified + size. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified MaxRecords value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + """ + marker: str | None = ... + """ + The pagination token provided in the previous request. If this parameter + is specified the response includes only records beyond the marker, up to + MaxRecords. + """ + +@dataclass(kw_only=True) +class DescribeDBLogFilesOutput(_SerdeShape): + """The response from a call to `DescribeDBLogFiles`.""" + + describe_db_log_files: list[DescribeDBLogFilesDetails] | None = ... + """The DB log files returned.""" + marker: str | None = ... + """ + A pagination token that can be used in a later `DescribeDBLogFiles` + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBMajorEngineVersionsInput(_SerdeShape): + """Dataclass for DescribeDBMajorEngineVersionsInput structure.""" + + engine: str | None = ... + """ + The database engine to return major version details for. + + Valid Values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `custom-sqlserver-ee` + + - `custom-sqlserver-se` + + - `custom-sqlserver-web` + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + major_engine_version: str | None = ... + """ + A specific database major engine version to return details for. + + Example: `8.4` + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more than + the `MaxRecords` value is available, a pagination token called a marker + is included in the response so you can retrieve the remaining results. + + Default: 100 + """ + +@dataclass(kw_only=True) +class DescribeDBMajorEngineVersionsOutput(_SerdeShape): + """Dataclass for DescribeDBMajorEngineVersionsOutput structure.""" + + db_major_engine_versions: list[DBMajorEngineVersion] | None = ... + """A list of `DBMajorEngineVersion` elements.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBParameterGroupsInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of a specific DB parameter group to return details for. + + Constraints: + + - If supplied, must match the name of an existing + DBClusterParameterGroup. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBParameterGroups` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBParameterGroupsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBParameterGroups` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_parameter_groups: list[DBParameterGroup] | None = ... + """A list of `DBParameterGroup` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBParametersInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of a specific DB parameter group to return details for. + + Constraints: + + - If supplied, must match the name of an existing DBParameterGroup. + """ + source: str | None = ... + """ + The parameter types to return. + + Default: All parameter types returned + + Valid Values: `user | system | engine-default` + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB parameters to describe. + + The only supported filter is `parameter-name`. The results list only + includes information about the DB parameters with these names. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBParameters` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBParametersOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBParameters` action. + """ + + parameters: list[Parameter] | None = ... + """A list of `Parameter` values.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBProxiesInput(_SerdeShape): + """Dataclass for DescribeDBProxiesInput structure.""" + + db_proxy_name: str | None = ... + """ + The name of the DB proxy. If you omit this parameter, the output + includes information about all DB proxies owned by your Amazon Web + Services account ID. + """ + filters: list[Filter] | None = ... + """This parameter is not currently supported.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that the remaining + results can be retrieved. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + +@dataclass(kw_only=True) +class DescribeDBProxiesOutput(_SerdeShape): + """Dataclass for DescribeDBProxiesOutput structure.""" + + db_proxies: list[DBProxy] | None = ... + """ + A return value representing an arbitrary number of `DBProxy` data + structures. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyEndpointsInput(_SerdeShape): + """Dataclass for DescribeDBProxyEndpointsInput structure.""" + + db_proxy_name: str | None = ... + """ + The name of the DB proxy whose endpoints you want to describe. If you + omit this parameter, the output includes information about all DB proxy + endpoints associated with all your DB proxies. + """ + db_proxy_endpoint_name: str | None = ... + """ + The name of a DB proxy endpoint to describe. If you omit this parameter, + the output includes information about all DB proxy endpoints associated + with the specified proxy. + """ + filters: list[Filter] | None = ... + """This parameter is not currently supported.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that the remaining + results can be retrieved. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyEndpointsOutput(_SerdeShape): + """Dataclass for DescribeDBProxyEndpointsOutput structure.""" + + db_proxy_endpoints: list[DBProxyEndpoint] | None = ... + """The list of `ProxyEndpoint` objects returned by the API operation.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyTargetGroupsInput(_SerdeShape): + """Dataclass for DescribeDBProxyTargetGroupsInput structure.""" + + db_proxy_name: str | None = ... + """The identifier of the `DBProxy` associated with the target group.""" + target_group_name: str | None = ... + """The identifier of the `DBProxyTargetGroup` to describe.""" + filters: list[Filter] | None = ... + """This parameter is not currently supported.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that the remaining + results can be retrieved. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyTargetGroupsOutput(_SerdeShape): + """Dataclass for DescribeDBProxyTargetGroupsOutput structure.""" + + target_groups: list[DBProxyTargetGroup] | None = ... + """ + An arbitrary number of `DBProxyTargetGroup` objects, containing details + of the corresponding target groups. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyTargetsInput(_SerdeShape): + """Dataclass for DescribeDBProxyTargetsInput structure.""" + + db_proxy_name: str | None = ... + """The identifier of the `DBProxyTarget` to describe.""" + target_group_name: str | None = ... + """The identifier of the `DBProxyTargetGroup` to describe.""" + filters: list[Filter] | None = ... + """This parameter is not currently supported.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that the remaining + results can be retrieved. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + +@dataclass(kw_only=True) +class DescribeDBProxyTargetsOutput(_SerdeShape): + """Dataclass for DescribeDBProxyTargetsOutput structure.""" + + targets: list[DBProxyTarget] | None = ... + """ + An arbitrary number of `DBProxyTarget` objects, containing details of + the corresponding targets. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBRecommendationsInput(_SerdeShape): + """Dataclass for DescribeDBRecommendationsInput structure.""" + + last_updated_after: datetime | None = ... + """ + A filter to include only the recommendations that were updated after + this specified time. + """ + last_updated_before: datetime | None = ... + """ + A filter to include only the recommendations that were updated before + this specified time. + """ + locale: str | None = ... + """ + The language that you choose to return the list of recommendations. + + Valid values: + + - `en` + + - `en_UK` + + - `de` + + - `es` + + - `fr` + + - `id` + + - `it` + + - `ja` + + - `ko` + + - `pt_BR` + + - `zh_TW` + + - `zh_CN` + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more recommendations to describe. + + Supported Filters: + + - `recommendation-id` - Accepts a list of recommendation identifiers. + The results list only includes the recommendations whose identifier is + one of the specified filter values. + + - `status` - Accepts a list of recommendation statuses. + + Valid values: + + - `active` - The recommendations which are ready for you to apply. + + - `pending` - The applied or scheduled recommendations which are in + progress. + + - `resolved` - The recommendations which are completed. + + - `dismissed` - The recommendations that you dismissed. + + The results list only includes the recommendations whose status is one + of the specified filter values. + + - `severity` - Accepts a list of recommendation severities. The results + list only includes the recommendations whose severity is one of the + specified filter values. + + Valid values: + + - `high` + + - `medium` + + - `low` + + - `informational` + + - `type-id` - Accepts a list of recommendation type identifiers. The + results list only includes the recommendations whose type is one of + the specified filter values. + + - `dbi-resource-id` - Accepts a list of database resource identifiers. + The results list only includes the recommendations that generated for + the specified databases. + + - `cluster-resource-id` - Accepts a list of cluster resource + identifiers. The results list only includes the recommendations that + generated for the specified clusters. + + - `pg-arn` - Accepts a list of parameter group ARNs. The results list + only includes the recommendations that generated for the specified + parameter groups. + + - `cluster-pg-arn` - Accepts a list of cluster parameter group ARNs. The + results list only includes the recommendations that generated for the + specified cluster parameter groups. + """ + max_records: int | None = ... + """ + The maximum number of recommendations to include in the response. If + more records exist than the specified `MaxRecords` value, a pagination + token called a marker is included in the response so that you can + retrieve the remaining results. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBRecommendations` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBRecommendationsOutput(_SerdeShape): + """Dataclass for DescribeDBRecommendationsOutput structure.""" + + db_recommendations: list[DBRecommendation] | None = ... + """ + A list of recommendations which is returned from + `DescribeDBRecommendations` API request. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DBRecommendationsMessage` request. This token can be used later in a + `DescribeDBRecomendations` request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBSecurityGroupsInput(_SerdeShape): + """""" + + db_security_group_name: str | None = ... + """The name of the DB security group to return details for.""" + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBSecurityGroups` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBSecurityGroupsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBSecurityGroups` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_security_groups: list[DBSecurityGroup] | None = ... + """A list of `DBSecurityGroup` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBShardGroupsInput(_SerdeShape): + """Dataclass for DescribeDBShardGroupsInput structure.""" + + db_shard_group_identifier: str | None = ... + """ + The user-supplied DB shard group identifier. If this parameter is + specified, information for only the specific DB shard group is returned. + This parameter isn't case-sensitive. + + Constraints: + + - If supplied, must match an existing DB shard group identifier. + """ + filters: list[Filter] | None = ... + """A filter that specifies one or more DB shard groups to describe.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBShardGroups` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100 + """ + +@dataclass(kw_only=True) +class DescribeDBShardGroupsOutput(_SerdeShape): + """Dataclass for DescribeDBShardGroupsOutput structure.""" + + db_shard_groups: list[DBShardGroup] | None = ... + """Contains a list of DB shard groups for the user.""" + marker: str | None = ... + """ + A pagination token that can be used in a later `DescribeDBClusters` + request. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBSnapshotAttributesInput(_SerdeShape): + """""" + + db_snapshot_identifier: str | None = ... + """The identifier for the DB snapshot to describe the attributes for.""" + +@dataclass(kw_only=True) +class DescribeDBSnapshotAttributesOutput(_SerdeShape): + """Dataclass for DescribeDBSnapshotAttributesOutput structure.""" + + db_snapshot_attributes_result: DBSnapshotAttributesResult | None = ... + """ + Contains the results of a successful call to the + `DescribeDBSnapshotAttributes` API action. + + Manual DB snapshot attributes are used to authorize other Amazon Web + Services accounts to copy or restore a manual DB snapshot. For more + information, see the `ModifyDBSnapshotAttribute` API action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBSnapshotsInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The ID of the DB instance to retrieve the list of DB snapshots for. This + parameter isn't case-sensitive. + + Constraints: + + - If supplied, must match the identifier of an existing DBInstance. + """ + db_snapshot_identifier: str | None = ... + """ + A specific DB snapshot identifier to describe. This value is stored as a + lowercase string. + + Constraints: + + - If supplied, must match the identifier of an existing DBSnapshot. + + - If this identifier is for an automated snapshot, the `SnapshotType` + parameter must also be specified. + """ + snapshot_type: str | None = ... + """ + The type of snapshots to be returned. You can specify one of the + following values: + + - `automated` - Return all DB snapshots that have been automatically + taken by Amazon RDS for my Amazon Web Services account. + + - `manual` - Return all DB snapshots that have been taken by my Amazon + Web Services account. + + - `shared` - Return all manual DB snapshots that have been shared to my + Amazon Web Services account. + + - `public` - Return all DB snapshots that have been marked as public. + + - `awsbackup` - Return the DB snapshots managed by the Amazon Web + Services Backup service. + + For information about Amazon Web Services Backup, see the [*Amazon Web + Services Backup Developer + Guide.*](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) + + The `awsbackup` type does not apply to Aurora. + + If you don't specify a `SnapshotType` value, then both automated and + manual snapshots are returned. Shared and public DB snapshots are not + included in the returned results by default. You can include shared + snapshots with these results by enabling the `IncludeShared` parameter. + You can include public snapshots with these results by enabling the + `IncludePublic` parameter. + + The `IncludeShared` and `IncludePublic` parameters don't apply for + `SnapshotType` values of `manual` or `automated`. The `IncludePublic` + parameter doesn't apply when `SnapshotType` is set to `shared`. The + `IncludeShared` parameter doesn't apply when `SnapshotType` is set to + `public`. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more DB snapshots to describe. + + Supported filters: + + - `db-instance-id` - Accepts DB instance identifiers and DB instance + Amazon Resource Names (ARNs). + + - `db-snapshot-id` - Accepts DB snapshot identifiers. + + - `dbi-resource-id` - Accepts identifiers of source DB instances. + + - `snapshot-type` - Accepts types of DB snapshots. + + - `engine` - Accepts names of database engines. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBSnapshots` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + include_shared: bool | None = ... + """ + Specifies whether to include shared manual DB cluster snapshots from + other Amazon Web Services accounts that this Amazon Web Services account + has been given permission to copy or restore. By default, these + snapshots are not included. + + You can give an Amazon Web Services account permission to restore a + manual DB snapshot from another Amazon Web Services account by using the + `ModifyDBSnapshotAttribute` API action. + + This setting doesn't apply to RDS Custom. + """ + include_public: bool | None = ... + """ + Specifies whether to include manual DB cluster snapshots that are public + and can be copied or restored by any Amazon Web Services account. By + default, the public snapshots are not included. + + You can share a manual DB snapshot as public by using the + ModifyDBSnapshotAttribute API. + + This setting doesn't apply to RDS Custom. + """ + dbi_resource_id: str | None = ... + """A specific DB resource ID to describe.""" + +@dataclass(kw_only=True) +class DescribeDBSnapshotsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBSnapshots` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_snapshots: list[DBSnapshot] | None = ... + """A list of `DBSnapshot` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBSnapshotTenantDatabasesInput(_SerdeShape): + """Dataclass for DescribeDBSnapshotTenantDatabasesInput structure.""" + + db_instance_identifier: str | None = ... + """ + The ID of the DB instance used to create the DB snapshots. This + parameter isn't case-sensitive. + + Constraints: + + - If supplied, must match the identifier of an existing `DBInstance`. + """ + db_snapshot_identifier: str | None = ... + """ + The ID of a DB snapshot that contains the tenant databases to describe. + This value is stored as a lowercase string. + + Constraints: + + - If you specify this parameter, the value must match the ID of an + existing DB snapshot. + + - If you specify an automatic snapshot, you must also specify + `SnapshotType`. + """ + snapshot_type: str | None = ... + """ + The type of DB snapshots to be returned. You can specify one of the + following values: + + - `automated` -- All DB snapshots that have been automatically taken by + Amazon RDS for my Amazon Web Services account. + + - `manual` -- All DB snapshots that have been taken by my Amazon Web + Services account. + + - `shared` -- All manual DB snapshots that have been shared to my Amazon + Web Services account. + + - `public` -- All DB snapshots that have been marked as public. + + - `awsbackup` -- All DB snapshots managed by the Amazon Web Services + Backup service. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more tenant databases to describe. + + Supported filters: + + - `tenant-db-name` - Tenant database names. The results list only + includes information about the tenant databases that match these + tenant DB names. + + - `tenant-database-resource-id` - Tenant database resource identifiers. + The results list only includes information about the tenant databases + contained within the DB snapshots. + + - `dbi-resource-id` - DB instance resource identifiers. The results list + only includes information about snapshots containing tenant databases + contained within the DB instances identified by these resource + identifiers. + + - `db-instance-id` - Accepts DB instance identifiers and DB instance + Amazon Resource Names (ARNs). + + - `db-snapshot-id` - Accepts DB snapshot identifiers. + + - `snapshot-type` - Accepts types of DB snapshots. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeDBSnapshotTenantDatabases` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + dbi_resource_id: str | None = ... + """A specific DB resource identifier to describe.""" + +@dataclass(kw_only=True) +class DescribeDBSnapshotTenantDatabasesOutput(_SerdeShape): + """Dataclass for DescribeDBSnapshotTenantDatabasesOutput structure.""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_snapshot_tenant_databases: list[DBSnapshotTenantDatabase] | None = ... + """A list of DB snapshot tenant databases.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeDBSubnetGroupsInput(_SerdeShape): + """""" + + db_subnet_group_name: str | None = ... + """The name of the DB subnet group to return details for.""" + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + DescribeDBSubnetGroups request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeDBSubnetGroupsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeDBSubnetGroups` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + db_subnet_groups: list[DBSubnetGroup] | None = ... + """A list of `DBSubnetGroup` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEngineDefaultClusterParametersInput(_SerdeShape): + """""" + + db_parameter_group_family: str | None = ... + """ + The name of the DB cluster parameter group family to return engine + parameter information for. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeEngineDefaultClusterParameters` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeEngineDefaultClusterParametersOutput(_SerdeShape): + """Dataclass for DescribeEngineDefaultClusterParametersOutput structure.""" + + engine_defaults: EngineDefaults | None = ... + """ + Contains the result of a successful invocation of the + `DescribeEngineDefaultParameters` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEngineDefaultParametersInput(_SerdeShape): + """""" + + db_parameter_group_family: str | None = ... + """ + The name of the DB parameter group family. + + Valid Values: + + - `aurora-mysql5.7` + + - `aurora-mysql8.0` + + - `aurora-postgresql10` + + - `aurora-postgresql11` + + - `aurora-postgresql12` + + - `aurora-postgresql13` + + - `aurora-postgresql14` + + - `custom-oracle-ee-19` + + - `custom-oracle-ee-cdb-19` + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb10.2` + + - `mariadb10.3` + + - `mariadb10.4` + + - `mariadb10.5` + + - `mariadb10.6` + + - `mysql5.7` + + - `mysql8.0` + + - `oracle-ee-19` + + - `oracle-ee-cdb-19` + + - `oracle-ee-cdb-21` + + - `oracle-se2-19` + + - `oracle-se2-cdb-19` + + - `oracle-se2-cdb-21` + + - `postgres10` + + - `postgres11` + + - `postgres12` + + - `postgres13` + + - `postgres14` + + - `sqlserver-ee-11.0` + + - `sqlserver-ee-12.0` + + - `sqlserver-ee-13.0` + + - `sqlserver-ee-14.0` + + - `sqlserver-ee-15.0` + + - `sqlserver-ex-11.0` + + - `sqlserver-ex-12.0` + + - `sqlserver-ex-13.0` + + - `sqlserver-ex-14.0` + + - `sqlserver-ex-15.0` + + - `sqlserver-se-11.0` + + - `sqlserver-se-12.0` + + - `sqlserver-se-13.0` + + - `sqlserver-se-14.0` + + - `sqlserver-se-15.0` + + - `sqlserver-web-11.0` + + - `sqlserver-web-12.0` + + - `sqlserver-web-13.0` + + - `sqlserver-web-14.0` + + - `sqlserver-web-15.0` + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more parameters to describe. + + The only supported filter is `parameter-name`. The results list only + includes information about the parameters with these names. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeEngineDefaultParameters` request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeEngineDefaultParametersOutput(_SerdeShape): + """Dataclass for DescribeEngineDefaultParametersOutput structure.""" + + engine_defaults: EngineDefaults | None = ... + """ + Contains the result of a successful invocation of the + `DescribeEngineDefaultParameters` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEventCategoriesInput(_SerdeShape): + """""" + + source_type: str | None = ... + """ + The type of source that is generating the events. For RDS Proxy events, + specify `db-proxy`. + + Valid Values: `db-instance` | `db-cluster` | `db-parameter-group` | + `db-security-group` | `db-snapshot` | `db-cluster-snapshot` | + `db-proxy` + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + +@dataclass(kw_only=True) +class DescribeEventCategoriesOutput(_SerdeShape): + """Data returned from the `DescribeEventCategories` operation.""" + + event_categories_map_list: list[EventCategoriesMap] | None = ... + """A list of `EventCategoriesMap` data types.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEventsInput(_SerdeShape): + """""" + + source_identifier: str | None = ... + """ + The identifier of the event source for which events are returned. If not + specified, then all sources are included in the response. + + Constraints: + + - If `SourceIdentifier` is supplied, `SourceType` must also be provided. + + - If the source type is a DB instance, a `DBInstanceIdentifier` value + must be supplied. + + - If the source type is a DB cluster, a `DBClusterIdentifier` value must + be supplied. + + - If the source type is a DB parameter group, a `DBParameterGroupName` + value must be supplied. + + - If the source type is a DB security group, a `DBSecurityGroupName` + value must be supplied. + + - If the source type is a DB snapshot, a `DBSnapshotIdentifier` value + must be supplied. + + - If the source type is a DB cluster snapshot, a + `DBClusterSnapshotIdentifier` value must be supplied. + + - If the source type is an RDS Proxy, a `DBProxyName` value must be + supplied. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + source_type: str | None = ... + """ + The event source to retrieve events for. If no value is specified, all + events are returned. + """ + start_time: datetime | None = ... + """ + The beginning of the time interval to retrieve events for, specified in + ISO 8601 format. For more information about ISO 8601, go to the [ISO8601 + Wikipedia page.](http://en.wikipedia.org/wiki/ISO_8601) + + Example: 2009-07-08T18:00Z + """ + end_time: datetime | None = ... + """ + The end of the time interval for which to retrieve events, specified in + ISO 8601 format. For more information about ISO 8601, go to the [ISO8601 + Wikipedia page.](http://en.wikipedia.org/wiki/ISO_8601) + + Example: 2009-07-08T18:00Z + """ + duration: int | None = ... + """ + The number of minutes to retrieve events for. + + Default: 60 + """ + event_categories: list[str] | None = ... + """ + A list of event categories that trigger notifications for a event + notification subscription. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous DescribeEvents + request. If this parameter is specified, the response includes only + records beyond the marker, up to the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeEventsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the `DescribeEvents` + action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous Events request. If + this parameter is specified, the response includes only records beyond + the marker, up to the value specified by `MaxRecords`. + """ + events: list[Event] | None = ... + """A list of `Event` instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeEventSubscriptionsInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """ + The name of the RDS event notification subscription you want to + describe. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + DescribeOrderableDBInstanceOptions request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords` . + """ + +@dataclass(kw_only=True) +class DescribeEventSubscriptionsOutput(_SerdeShape): + """Data returned by the **DescribeEventSubscriptions** action.""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous + DescribeOrderableDBInstanceOptions request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + event_subscriptions_list: list[EventSubscription] | None = ... + """A list of EventSubscriptions data types.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeExportTasksInput(_SerdeShape): + """Dataclass for DescribeExportTasksInput structure.""" + + export_task_identifier: str | None = ... + """The identifier of the snapshot or cluster export task to be described.""" + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the snapshot or cluster exported to + Amazon S3. + """ + filters: list[Filter] | None = ... + """ + Filters specify one or more snapshot or cluster exports to describe. The + filters are specified as name-value pairs that define what to include in + the output. Filter names and values are case-sensitive. + + Supported filters include the following: + + - `export-task-identifier` - An identifier for the snapshot or cluster + export task. + + - `s3-bucket` - The Amazon S3 bucket the data is exported to. + + - `source-arn` - The Amazon Resource Name (ARN) of the snapshot or + cluster exported to Amazon S3. + + - `status` - The status of the export task. Must be lowercase. Valid + statuses are the following: + + - `canceled` + + - `canceling` + + - `complete` + + - `failed` + + - `in_progress` + + - `starting` + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeExportTasks` request. If you specify this parameter, the + response includes only records beyond the marker, up to the value + specified by the `MaxRecords` parameter. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified value, a pagination token called a + marker is included in the response. You can use the marker in a later + `DescribeExportTasks` request to retrieve the remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + source_type: str | None = ... + """The type of source for the export.""" + +@dataclass(kw_only=True) +class DescribeExportTasksOutput(_SerdeShape): + """Dataclass for DescribeExportTasksOutput structure.""" + + marker: str | None = ... + """ + A pagination token that can be used in a later `DescribeExportTasks` + request. A marker is used for pagination to identify the location to + begin output for the next response of `DescribeExportTasks`. + """ + export_tasks: list[ExportTask] | None = ... + """Information about an export of a snapshot or cluster to Amazon S3.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeGlobalClustersInput(_SerdeShape): + """Dataclass for DescribeGlobalClustersInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The user-supplied DB cluster identifier. If this parameter is specified, + information from only the specific DB cluster is returned. This + parameter isn't case-sensitive. + + Constraints: + + - If supplied, must match an existing DBClusterIdentifier. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more global database clusters to + describe. This parameter is case-sensitive. + + Currently, the only supported filter is `region`. + + If used, the request returns information about any global cluster with + at least one member (primary or secondary) in the specified Amazon Web + Services Regions. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeGlobalClusters` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeGlobalClustersOutput(_SerdeShape): + """Dataclass for DescribeGlobalClustersOutput structure.""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeGlobalClusters` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + global_clusters: list[GlobalCluster] | None = ... + """The list of global clusters returned by this request.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeIntegrationsInput(_SerdeShape): + """Dataclass for DescribeIntegrationsInput structure.""" + + integration_identifier: str | None = ... + """The unique identifier of the integration.""" + filters: list[Filter] | None = ... + """A filter that specifies one or more resources to return.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeIntegrations` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeIntegrationsOutput(_SerdeShape): + """Dataclass for DescribeIntegrationsOutput structure.""" + + marker: str | None = ... + """ + A pagination token that can be used in a later `DescribeIntegrations` + request. + """ + integrations: list[Integration] | None = ... + """A list of integrations.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeOptionGroupOptionsInput(_SerdeShape): + """""" + + engine_name: str | None = ... + """ + The name of the engine to describe options for. + + Valid Values: + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + major_engine_version: str | None = ... + """ + If specified, filters the results to include only options for the + specified major engine version. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeOptionGroupOptionsOutput(_SerdeShape): + """""" + + option_group_options: list[OptionGroupOption] | None = ... + """List of available option group options.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeOptionGroupsInput(_SerdeShape): + """""" + + option_group_name: str | None = ... + """ + The name of the option group to describe. Can't be supplied together + with EngineName or MajorEngineVersion. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous DescribeOptionGroups + request. If this parameter is specified, the response includes only + records beyond the marker, up to the value specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + engine_name: str | None = ... + """ + A filter to only include option groups associated with this database + engine. + + Valid Values: + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + major_engine_version: str | None = ... + """ + Filters the list of option groups to only include groups associated with + a specific database engine version. If specified, then EngineName must + also be specified. + """ + +@dataclass(kw_only=True) +class DescribeOptionGroupsOutput(_SerdeShape): + """List of option groups.""" + + option_groups_list: list[OptionGroup] | None = ... + """List of option groups.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeOrderableDBInstanceOptionsInput(_SerdeShape): + """""" + + engine: str | None = ... + """ + The name of the database engine to describe DB instance options for. + + Valid Values: + + - `aurora-mysql` + + - `aurora-postgresql` + + - `custom-oracle-ee` + + - `custom-oracle-ee-cdb` + + - `custom-oracle-se2` + + - `custom-oracle-se2-cdb` + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + engine_version: str | None = ... + """ + A filter to include only the available options for the specified engine + version. + """ + db_instance_class: str | None = ... + """ + A filter to include only the available options for the specified DB + instance class. + """ + license_model: str | None = ... + """ + A filter to include only the available options for the specified license + model. + + RDS Custom supports only the BYOL licensing model. + """ + availability_zone_group: str | None = ... + """ + The Availability Zone group associated with a Local Zone. Specify this + parameter to retrieve available options for the Local Zones in the + group. + + Omit this parameter to show the available options in the specified + Amazon Web Services Region. + + This setting doesn't apply to RDS Custom DB instances. + """ + vpc: bool | None = ... + """ + Specifies whether to show only VPC or non-VPC offerings. RDS Custom + supports only VPC offerings. + + RDS Custom supports only VPC offerings. If you describe non-VPC + offerings for RDS Custom, the output shows VPC offerings. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 1000. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + DescribeOrderableDBInstanceOptions request. If this parameter is + specified, the response includes only records beyond the marker, up to + the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeOrderableDBInstanceOptionsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeOrderableDBInstanceOptions` action. + """ + + orderable_db_instance_options: list[OrderableDBInstanceOption] | None = ... + """ + An `OrderableDBInstanceOption` structure containing information about + orderable options for the DB instance. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + OrderableDBInstanceOptions request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribePendingMaintenanceActionsInput(_SerdeShape): + """""" + + resource_identifier: str | None = ... + """The ARN of a resource to return pending maintenance actions for.""" + filters: list[Filter] | None = ... + """ + A filter that specifies one or more resources to return pending + maintenance actions for. + + Supported filters: + + - `db-cluster-id` - Accepts DB cluster identifiers and DB cluster Amazon + Resource Names (ARNs). The results list only includes pending + maintenance actions for the DB clusters identified by these ARNs. + + - `db-instance-id` - Accepts DB instance identifiers and DB instance + ARNs. The results list only includes pending maintenance actions for + the DB instances identified by these ARNs. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribePendingMaintenanceActions` request. If this parameter is + specified, the response includes only records beyond the marker, up to a + number of records specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + +@dataclass(kw_only=True) +class DescribePendingMaintenanceActionsOutput(_SerdeShape): + """Data returned from the **DescribePendingMaintenanceActions** action.""" + + pending_maintenance_actions: list[ResourcePendingMaintenanceActions] | None = ... + """A list of the pending maintenance actions for the resource.""" + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribePendingMaintenanceActions` request. If this parameter is + specified, the response includes only records beyond the marker, up to a + number of records specified by `MaxRecords`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedDBInstancesInput(_SerdeShape): + """""" + + reserved_db_instance_id: str | None = ... + """ + The reserved DB instance identifier filter value. Specify this parameter + to show only the reservation that matches the specified reservation ID. + """ + reserved_db_instances_offering_id: str | None = ... + """ + The offering identifier filter value. Specify this parameter to show + only purchased reservations matching the specified offering identifier. + """ + db_instance_class: str | None = ... + """ + The DB instance class filter value. Specify this parameter to show only + those reservations matching the specified DB instances class. + """ + duration: str | None = ... + """ + The duration filter value, specified in years or seconds. Specify this + parameter to show only reservations for this duration. + + Valid Values: `1 | 3 | 31536000 | 94608000` + """ + product_description: str | None = ... + """ + The product description filter value. Specify this parameter to show + only those reservations matching the specified product description. + """ + offering_type: str | None = ... + """ + The offering type filter value. Specify this parameter to show only the + available offerings matching the specified offering type. + + Valid Values: `"Partial Upfront" | "All Upfront" | "No Upfront" ` + """ + multi_az: bool | None = ... + """Specifies whether to show only those reservations that support Multi-AZ.""" + lease_id: str | None = ... + """ + The lease identifier filter value. Specify this parameter to show only + the reservation that matches the specified lease ID. + + Note: + Amazon Web Services Support might request the lease ID for an issue + related to a reserved DB instance. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more than + the `MaxRecords` value is available, a pagination token called a marker + is included in the response so you can retrieve the remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeReservedDBInstancesOfferingsInput(_SerdeShape): + """""" + + reserved_db_instances_offering_id: str | None = ... + """ + The offering identifier filter value. Specify this parameter to show + only the available offering that matches the specified reservation + identifier. + + Example: `438012d3-4052-4cc7-b2e3-8d3372e0e706` + """ + db_instance_class: str | None = ... + """ + The DB instance class filter value. Specify this parameter to show only + the available offerings matching the specified DB instance class. + """ + duration: str | None = ... + """ + Duration filter value, specified in years or seconds. Specify this + parameter to show only reservations for this duration. + + Valid Values: `1 | 3 | 31536000 | 94608000` + """ + product_description: str | None = ... + """ + Product description filter value. Specify this parameter to show only + the available offerings that contain the specified product description. + + Note: + The results show offerings that partially match the filter value. + """ + offering_type: str | None = ... + """ + The offering type filter value. Specify this parameter to show only the + available offerings matching the specified offering type. + + Valid Values: `"Partial Upfront" | "All Upfront" | "No Upfront" ` + """ + multi_az: bool | None = ... + """Specifies whether to show only those reservations that support Multi-AZ.""" + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more than + the `MaxRecords` value is available, a pagination token called a marker + is included in the response so you can retrieve the remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeReservedDBInstancesOfferingsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeReservedDBInstancesOfferings` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + reserved_db_instances_offerings: list[ReservedDBInstancesOffering] | None = ... + """A list of reserved DB instance offerings.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeReservedDBInstancesOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeReservedDBInstances` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + reserved_db_instances: list[ReservedDBInstance] | None = ... + """A list of reserved DB instances.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeServerlessV2PlatformVersionsInput(_SerdeShape): + """""" + + serverless_v2_platform_version: str | None = ... + """ + A specific platform version to return details for. + + Example: `3` + """ + engine: str | None = ... + """ + The database engine to return platform version details for. + + Valid Values: + + - `aurora-mysql` + + - `aurora-postgresql` + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + default_only: bool | None = ... + """ + Specifies whether to return only the default platform versions for each + engine. The default platform version is the version used for new DB + clusters. + """ + include_all: bool | None = ... + """ + Specifies whether to also include platform versions which are no longer + in use. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more than + the `MaxRecords` value is available, a pagination token called a marker + is included in the response so you can retrieve the remaining results. + + Default: 20 + + Constraints: Minimum 1, maximum 200. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + +@dataclass(kw_only=True) +class DescribeServerlessV2PlatformVersionsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeServerlessV2PlatformVersions` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + serverless_v2_platform_versions: list[ServerlessV2PlatformVersionInfo] | None = ... + """A list of `ServerlessV2PlatformVersionInfo` elements.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeSourceRegionsInput(_SerdeShape): + """""" + + region_name: str | None = ... + """ + The source Amazon Web Services Region name. For example, `us-east-1`. + + Constraints: + + - Must specify a valid Amazon Web Services Region name. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so you can retrieve the + remaining results. + + Default: 100 + + Constraints: Minimum 20, maximum 100. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeSourceRegions` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + +@dataclass(kw_only=True) +class DescribeSourceRegionsOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeSourceRegions` action. + """ + + marker: str | None = ... + """ + An optional pagination token provided by a previous request. If this + parameter is specified, the response includes only records beyond the + marker, up to the value specified by `MaxRecords`. + """ + source_regions: list[SourceRegion] | None = ... + """ + A list of `SourceRegion` instances that contains each source Amazon Web + Services Region that the current Amazon Web Services Region can get a + read replica or a DB snapshot from. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeTenantDatabasesInput(_SerdeShape): + """Dataclass for DescribeTenantDatabasesInput structure.""" + + db_instance_identifier: str | None = ... + """ + The user-supplied DB instance identifier, which must match the + identifier of an existing instance owned by the Amazon Web Services + account. This parameter isn't case-sensitive. + """ + tenant_db_name: str | None = ... + """ + The user-supplied tenant database name, which must match the name of an + existing tenant database on the specified DB instance owned by your + Amazon Web Services account. This parameter isn't case-sensitive. + """ + filters: list[Filter] | None = ... + """ + A filter that specifies one or more database tenants to describe. + + Supported filters: + + - `tenant-db-name` - Tenant database names. The results list only + includes information about the tenant databases that match these + tenant DB names. + + - `tenant-database-resource-id` - Tenant database resource identifiers. + + - `dbi-resource-id` - DB instance resource identifiers. The results list + only includes information about the tenants contained within the DB + instances identified by these resource identifiers. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeTenantDatabases` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + max_records: int | None = ... + """ + The maximum number of records to include in the response. If more + records exist than the specified `MaxRecords` value, a pagination token + called a marker is included in the response so that you can retrieve the + remaining results. + """ + +@dataclass(kw_only=True) +class DescribeTenantDatabasesOutput(_SerdeShape): + """Dataclass for DescribeTenantDatabasesOutput structure.""" + + marker: str | None = ... + """ + An optional pagination token provided by a previous + `DescribeTenantDatabases` request. If this parameter is specified, the + response includes only records beyond the marker, up to the value + specified by `MaxRecords`. + """ + tenant_databases: list[TenantDatabase] | None = ... + """ + An array of the tenant databases requested by the + `DescribeTenantDatabases` operation. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DescribeValidDBInstanceModificationsInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """The customer identifier or the ARN of your DB instance.""" + +@dataclass(kw_only=True) +class DescribeValidDBInstanceModificationsOutput(_SerdeShape): + """Dataclass for DescribeValidDBInstanceModificationsOutput structure.""" + + valid_db_instance_modifications_message: ( + ValidDBInstanceModificationsMessage | None + ) = ... + """ + Information about valid modifications that you can make to your DB + instance. Contains the result of a successful call to the + `DescribeValidDBInstanceModifications` action. You can use this + information when you call `ModifyDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DisableHttpEndpointInput(_SerdeShape): + """Dataclass for DisableHttpEndpointInput structure.""" + + resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the DB cluster.""" + +@dataclass(kw_only=True) +class DisableHttpEndpointOutput(_SerdeShape): + """Dataclass for DisableHttpEndpointOutput structure.""" + + resource_arn: str | None = ... + """The ARN of the DB cluster.""" + http_endpoint_enabled: bool | None = ... + """ + Indicates whether the HTTP endpoint is enabled or disabled for the DB + cluster. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DocLink(_SerdeShape): + """ + A link to documentation that provides additional information for a + recommendation. + """ + + text: str | None = ... + """The text with the link to documentation for the recommendation.""" + url: str | None = ... + """The URL for the documentation for the recommendation.""" + +@dataclass(kw_only=True) +class DomainMembership(_SerdeShape): + """ + An Active Directory Domain membership record associated with the DB + instance or cluster. + """ + + domain: str | None = ... + """The identifier of the Active Directory Domain.""" + status: str | None = ... + """ + The status of the Active Directory Domain membership for the DB instance + or cluster. Values include `joined`, `pending-join`, `failed`, and so + on. + """ + fqdn: str | None = ... + """The fully qualified domain name (FQDN) of the Active Directory Domain.""" + iam_role_name: str | None = ... + """ + The name of the IAM role used when making API calls to the Directory + Service. + """ + ou: str | None = ... + """The Active Directory organizational unit for the DB instance or cluster.""" + auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + that's a member of the domain. + """ + dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of the primary and secondary Active Directory + domain controllers. + """ + +@dataclass(kw_only=True) +class DomainNotFoundFault(ServiceError, _SerdeShape): + """`Domain` doesn't refer to an existing Active Directory domain.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DoubleRange(_SerdeShape): + """A range of double values.""" + + from_: float | None = ... + """The minimum value in the range.""" + to: float | None = ... + """The maximum value in the range.""" + +@dataclass(kw_only=True) +class DownloadDBLogFilePortionInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The customer-assigned name of the DB instance that contains the log + files you want to list. + + Constraints: + + - Must match the identifier of an existing DBInstance. + """ + log_file_name: str | None = ... + """The name of the log file to be downloaded.""" + marker: str | None = ... + """ + The pagination token provided in the previous request or \"0\". If the + Marker parameter is specified the response includes only records beyond + the marker until the end of the file or up to NumberOfLines. + """ + number_of_lines: int | None = ... + """ + The number of lines to download. If the number of lines specified + results in a file over 1 MB in size, the file is truncated at 1 MB in + size. + + If the NumberOfLines parameter is specified, then the block of lines + returned can be from the beginning or the end of the log file, depending + on the value of the Marker parameter. + + - If neither Marker or NumberOfLines are specified, the entire log file + is returned up to a maximum of 10000 lines, starting with the most + recent log entries first. + + - If NumberOfLines is specified and Marker isn't specified, then the + most recent lines from the end of the log file are returned. + + - If Marker is specified as \"0\", then the specified number of lines + from the beginning of the log file are returned. + + - You can download the log file in blocks of lines by specifying the + size of the block using the NumberOfLines parameter, and by specifying + a value of \"0\" for the Marker parameter in your first request. + Include the Marker value returned in the response as the Marker value + for the next request, continuing until the AdditionalDataPending + response element returns false. + """ + +@dataclass(kw_only=True) +class DownloadDBLogFilePortionOutput(_SerdeShape): + """ + This data type is used as a response element to + `DownloadDBLogFilePortion`. + """ + + log_file_data: str | None = ... + """Entries from the specified log file.""" + marker: str | None = ... + """ + A pagination token that can be used in a later + `DownloadDBLogFilePortion` request. + """ + additional_data_pending: bool | None = ... + """ + A Boolean value that, if true, indicates there is more data to be + downloaded. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Ec2ImagePropertiesNotSupportedFault(ServiceError, _SerdeShape): + """The AMI configuration prerequisite has not been met.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EC2SecurityGroup(_SerdeShape): + """ + This data type is used as a response element in the following actions: + + - `AuthorizeDBSecurityGroupIngress` + + - `DescribeDBSecurityGroups` + + - `RevokeDBSecurityGroupIngress` + """ + + status: str | None = ... + """ + Provides the status of the EC2 security group. Status can be + \"authorizing\", \"authorized\", \"revoking\", and \"revoked\". + """ + ec2_security_group_name: str | None = ... + """Specifies the name of the EC2 security group.""" + ec2_security_group_id: str | None = ... + """Specifies the id of the EC2 security group.""" + ec2_security_group_owner_id: str | None = ... + """ + Specifies the Amazon Web Services ID of the owner of the EC2 security + group specified in the `EC2SecurityGroupName` field. + """ + +@dataclass(kw_only=True) +class EnableHttpEndpointInput(_SerdeShape): + """Dataclass for EnableHttpEndpointInput structure.""" + + resource_arn: str | None = ... + """The Amazon Resource Name (ARN) of the DB cluster.""" + +@dataclass(kw_only=True) +class EnableHttpEndpointOutput(_SerdeShape): + """Dataclass for EnableHttpEndpointOutput structure.""" + + resource_arn: str | None = ... + """The ARN of the DB cluster.""" + http_endpoint_enabled: bool | None = ... + """ + Indicates whether the HTTP endpoint is enabled or disabled for the DB + cluster. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class EndDateType(UnknownEnumMixin, StrEnum): + UNLIMITED = "unlimited" + LIMITED = "limited" + +@dataclass(kw_only=True) +class Endpoint(_SerdeShape): + """ + This data type represents the information you need to connect to an + Amazon RDS DB instance. This data type is used as a response element in + the following actions: + + - `CreateDBInstance` + + - `DescribeDBInstances` + + - `DeleteDBInstance` + + For the data structure that represents Amazon Aurora DB cluster + endpoints, see `DBClusterEndpoint`. + """ + + address: str | None = ... + """Specifies the DNS address of the DB instance.""" + port: int | None = ... + """Specifies the port that the database engine is listening on.""" + hosted_zone_id: str | None = ... + """ + Specifies the ID that Amazon Route 53 assigns when you create a hosted + zone. + """ + +class EndpointNetworkType(UnknownEnumMixin, StrEnum): + IPV4 = "IPV4" + IPV6 = "IPV6" + DUAL = "DUAL" + +@dataclass(kw_only=True) +class EngineDefaults(_SerdeShape): + """ + Contains the result of a successful invocation of the + `DescribeEngineDefaultParameters` action. + """ + + db_parameter_group_family: str | None = ... + """ + Specifies the name of the DB parameter group family that the engine + default parameters apply to. + """ + marker: str | None = ... + """ + An optional pagination token provided by a previous EngineDefaults + request. If this parameter is specified, the response includes only + records beyond the marker, up to the value specified by `MaxRecords` . + """ + parameters: list[Parameter] | None = ... + """Contains a list of engine default parameters.""" + +class EngineFamily(UnknownEnumMixin, StrEnum): + MYSQL = "MYSQL" + POSTGRESQL = "POSTGRESQL" + SQLSERVER = "SQLSERVER" + +@dataclass(kw_only=True) +class Event(_SerdeShape): + """ + This data type is used as a response element in the + [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) + action. + """ + + source_identifier: str | None = ... + """Provides the identifier for the source of the event.""" + source_type: str | None = ... + """Specifies the source type for this event.""" + message: str | None = ... + """Provides the text of this event.""" + event_categories: list[str] | None = ... + """Specifies the category for the event.""" + date: datetime | None = ... + """Specifies the date and time of the event.""" + source_arn: str | None = ... + """The Amazon Resource Name (ARN) for the event.""" + +@dataclass(kw_only=True) +class EventCategoriesMap(_SerdeShape): + """ + Contains the results of a successful invocation of the + [DescribeEventCategories](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventCategories.html) + operation. + """ + + source_type: str | None = ... + """The source type that the returned categories belong to""" + event_categories: list[str] | None = ... + """The event categories for the specified source type""" + +@dataclass(kw_only=True) +class EventSubscription(_SerdeShape): + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + + customer_aws_id: str | None = ... + """ + The Amazon Web Services customer account associated with the RDS event + notification subscription. + """ + cust_subscription_id: str | None = ... + """The RDS event notification subscription Id.""" + sns_topic_arn: str | None = ... + """The topic ARN of the RDS event notification subscription.""" + status: str | None = ... + """ + The status of the RDS event notification subscription. + + Constraints: + + Can be one of the following: creating | modifying | deleting | active + | no-permission | topic-not-exist + + The status \"no-permission\" indicates that RDS no longer has permission + to post to the SNS topic. The status \"topic-not-exist\" indicates that + the topic was deleted after the subscription was created. + """ + subscription_creation_time: str | None = ... + """The time the RDS event notification subscription was created.""" + source_type: str | None = ... + """The source type for the RDS event notification subscription.""" + source_ids_list: list[str] | None = ... + """A list of source IDs for the RDS event notification subscription.""" + event_categories_list: list[str] | None = ... + """A list of event categories for the RDS event notification subscription.""" + enabled: bool | None = ... + """ + Specifies whether the subscription is enabled. True indicates the + subscription is enabled. + """ + event_subscription_arn: str | None = ... + """The Amazon Resource Name (ARN) for the event subscription.""" + +@dataclass(kw_only=True) +class EventSubscriptionQuotaExceededFault(ServiceError, _SerdeShape): + """You have reached the maximum number of event subscriptions.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ExportSourceType(UnknownEnumMixin, StrEnum): + SNAPSHOT = "SNAPSHOT" + CLUSTER = "CLUSTER" + +@dataclass(kw_only=True) +class ExportTask(_SerdeShape): + """ + Contains the details of a snapshot or cluster export to Amazon S3. + + This data type is used as a response element in the + `DescribeExportTasks` operation. + """ + + export_task_identifier: str | None = ... + """ + A unique identifier for the snapshot or cluster export task. This ID + isn't an identifier for the Amazon S3 bucket where the data is + exported. + """ + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the snapshot or cluster exported to + Amazon S3. + """ + export_only: list[str] | None = ... + """ + The data exported from the snapshot or cluster. + + Valid Values: + + - `database` - Export all the data from a specified database. + + - `database.table` *table-name* - Export a table of the snapshot or + cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, + and Aurora MySQL. + + - `database.schema` *schema-name* - Export a database schema of the + snapshot or cluster. This format is valid only for RDS for PostgreSQL + and Aurora PostgreSQL. + + - `database.schema.table` *table-name* - Export a table of the database + schema. This format is valid only for RDS for PostgreSQL and Aurora + PostgreSQL. + """ + snapshot_time: datetime | None = ... + """The time when the snapshot was created.""" + task_start_time: datetime | None = ... + """The time when the snapshot or cluster export task started.""" + task_end_time: datetime | None = ... + """The time when the snapshot or cluster export task ended.""" + s3_bucket: str | None = ... + """The Amazon S3 bucket where the snapshot or cluster is exported to.""" + s3_prefix: str | None = ... + """ + The Amazon S3 bucket prefix that is the file name and path of the + exported data. + """ + iam_role_arn: str | None = ... + """ + The name of the IAM role that is used to write to Amazon S3 when + exporting a snapshot or cluster. + """ + kms_key_id: str | None = ... + """ + The key identifier of the Amazon Web Services KMS key that is used to + encrypt the data when it's exported to Amazon S3. The KMS key + identifier is its key ARN, key ID, alias ARN, or alias name. The IAM + role used for the export must have encryption and decryption permissions + to use this KMS key. + """ + status: str | None = ... + """ + The progress status of the export task. The status can be one of the + following: + + - `CANCELED` + + - `CANCELING` + + - `COMPLETE` + + - `FAILED` + + - `IN_PROGRESS` + + - `STARTING` + """ + percent_progress: int | None = ... + """The progress of the snapshot or cluster export task as a percentage.""" + total_extracted_data_in_gb: int | None = ... + """The total amount of data exported, in gigabytes.""" + failure_cause: str | None = ... + """The reason the export failed, if it failed.""" + warning_message: str | None = ... + """A warning about the snapshot or cluster export task.""" + source_type: str | None = ... + """The type of source for the export.""" + +@dataclass(kw_only=True) +class ExportTaskAlreadyExistsFault(ServiceError, _SerdeShape): + """You can't start an export task that's already running.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ExportTaskNotFoundFault(ServiceError, _SerdeShape): + """The export task doesn't exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FailoverDBClusterInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The identifier of the DB cluster to force a failover for. This parameter + isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing DB cluster. + """ + target_db_instance_identifier: str | None = ... + """ + The name of the DB instance to promote to the primary DB instance. + + Specify the DB instance identifier for an Aurora Replica or a Multi-AZ + readable standby in the DB cluster, for example `mydbcluster-replica1`. + + This setting isn't supported for RDS for MySQL Multi-AZ DB clusters. + """ + +@dataclass(kw_only=True) +class FailoverDBClusterOutput(_SerdeShape): + """Dataclass for FailoverDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FailoverGlobalClusterInput(_SerdeShape): + """Dataclass for FailoverGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The identifier of the global database cluster (Aurora global database) + this operation should apply to. The identifier is the unique key + assigned by the user when the Aurora global database is created. In + other words, it's the name of the Aurora global database. + + Constraints: + + - Must match the identifier of an existing global database cluster. + """ + target_db_cluster_identifier: str | None = ... + """ + The identifier of the secondary Aurora DB cluster that you want to + promote to the primary for the global database cluster. Use the Amazon + Resource Name (ARN) for the identifier so that Aurora can locate the + cluster in its Amazon Web Services Region. + """ + allow_data_loss: bool | None = ... + """ + Specifies whether to allow data loss for this global database cluster + operation. Allowing data loss triggers a global failover operation. + + If you don't specify `AllowDataLoss`, the global database cluster + operation defaults to a switchover. + + Constraints: + + - Can't be specified together with the `Switchover` parameter. + """ + switchover: bool | None = ... + """ + Specifies whether to switch over this global database cluster. + + Constraints: + + - Can't be specified together with the `AllowDataLoss` parameter. + """ + +@dataclass(kw_only=True) +class FailoverGlobalClusterOutput(_SerdeShape): + """Dataclass for FailoverGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class FailoverState(_SerdeShape): + """ + Contains the state of scheduled or in-process operations on a global + cluster (Aurora global database). This data type is empty unless a + switchover or failover operation is scheduled or is in progress on the + Aurora global database. + """ + + status: str | None = ... + """ + The current status of the global cluster. Possible values are as + follows: + + - pending -- The service received a request to switch over or fail over + the global cluster. The global cluster's primary DB cluster and the + specified secondary DB cluster are being verified before the operation + starts. + + - failing-over -- Aurora is promoting the chosen secondary Aurora DB + cluster to become the new primary DB cluster to fail over the global + cluster. + + - cancelling -- The request to switch over or fail over the global + cluster was cancelled and the primary Aurora DB cluster and the + selected secondary Aurora DB cluster are returning to their previous + states. + + - switching-over -- This status covers the range of Aurora internal + operations that take place during the switchover process, such as + demoting the primary Aurora DB cluster, promoting the secondary Aurora + DB cluster, and synchronizing replicas. + """ + from_db_cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Aurora DB cluster that is + currently being demoted, and which is associated with this state. + """ + to_db_cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Aurora DB cluster that is + currently being promoted, and which is associated with this state. + """ + is_data_loss_allowed: bool | None = ... + """ + Indicates whether the operation is a global switchover or a global + failover. If data loss is allowed, then the operation is a global + failover. Otherwise, it's a switchover. + """ + +class FailoverStatus(UnknownEnumMixin, StrEnum): + PENDING = "pending" + FAILING_OVER = "failing-over" + CANCELLING = "cancelling" + +@dataclass(kw_only=True) +class Filter(_SerdeShape): + """ + A filter name and value pair that is used to return a more specific list + of results from a describe operation. Filters can be used to match a set + of resources by specific criteria, such as IDs. The filters supported by + a describe operation are documented with the describe operation. + + Note: + Currently, wildcards are not supported in filters. + + The following actions can be filtered: + + - `DescribeDBCapacityReservations` + + - `DescribeDBClusterBacktracks` + + - `DescribeDBClusterEndpoints` + + - `DescribeDBClusters` + + - `DescribeDBInstances` + + - `DescribeDBRecommendations` + + - `DescribeDBShardGroups` + + - `DescribePendingMaintenanceActions` + """ + + name: str | None = ... + """The name of the filter. Filter names are case-sensitive.""" + values: list[str] | None = ... + """One or more filter values. Filter values are case-sensitive.""" + +@dataclass(kw_only=True) +class GlobalCluster(_SerdeShape): + """A data type representing an Aurora global database.""" + + global_cluster_identifier: str | None = ... + """ + Contains a user-supplied global database cluster identifier. This + identifier is the unique key that identifies a global database cluster. + """ + global_cluster_resource_id: str | None = ... + """ + The Amazon Web Services + [partition](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?id=docs_gateway#partition)-unique, + immutable identifier for the global database cluster. This identifier is + found in Amazon Web Services CloudTrail log entries whenever the Amazon + Web Services KMS key for the DB cluster is accessed. + """ + global_cluster_arn: str | None = ... + """The Amazon Resource Name (ARN) for the global database cluster.""" + status: str | None = ... + """Specifies the current state of this global database cluster.""" + engine: str | None = ... + """The Aurora database engine used by the global database cluster.""" + engine_version: str | None = ... + """Indicates the database engine version.""" + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for the global cluster. + + For more information, see CreateGlobalCluster. + """ + database_name: str | None = ... + """The default database name within the new global database cluster.""" + storage_encrypted: bool | None = ... + """The storage encryption setting for the global database cluster.""" + storage_encryption_type: str | None = ... + """ + The type of encryption used to protect data at rest in the global + database cluster. Possible values: + + - `none` - The global database cluster is not encrypted. + + - `sse-rds` - The global database cluster is encrypted using an Amazon + Web Services owned KMS key. + + - `sse-kms` - The global database cluster is encrypted using a customer + managed KMS key or Amazon Web Services managed KMS key. + """ + deletion_protection: bool | None = ... + """The deletion protection setting for the new global database cluster.""" + global_cluster_members: list[GlobalClusterMember] | None = ... + """ + The list of primary and secondary clusters within the global database + cluster. + """ + endpoint: str | None = ... + """ + The writer endpoint for the new global database cluster. This endpoint + always points to the writer DB instance in the current primary cluster. + """ + failover_state: FailoverState | None = ... + """ + A data object containing all properties for the current state of an + in-process or pending switchover or failover process for this global + cluster (Aurora global database). This object is empty unless the + `SwitchoverGlobalCluster` or `FailoverGlobalCluster` operation was + called on this global cluster. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class GlobalClusterAlreadyExistsFault(ServiceError, _SerdeShape): + """ + The `GlobalClusterIdentifier` already exists. Specify a new global + database identifier (unique name) to create a new global database + cluster or to rename an existing one. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GlobalClusterMember(_SerdeShape): + """ + A data structure with information about any primary and secondary + clusters associated with a global cluster (Aurora global database). + """ + + db_cluster_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for each Aurora DB cluster in the global + cluster. + """ + readers: list[str] | None = ... + """ + The Amazon Resource Name (ARN) for each read-only secondary cluster + associated with the global cluster. + """ + is_writer: bool | None = ... + """ + Indicates whether the Aurora DB cluster is the primary cluster (that is, + has read-write capability) for the global cluster with which it is + associated. + """ + global_write_forwarding_status: str | None = ... + """ + The status of write forwarding for a secondary cluster in the global + cluster. + """ + synchronization_status: str | None = ... + """ + The status of synchronization of each Aurora DB cluster in the global + cluster. + """ + +class GlobalClusterMemberSynchronizationStatus(UnknownEnumMixin, StrEnum): + CONNECTED = "connected" + PENDING_RESYNC = "pending-resync" + +@dataclass(kw_only=True) +class GlobalClusterNotFoundFault(ServiceError, _SerdeShape): + """ + The `GlobalClusterIdentifier` doesn't refer to an existing global + database cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GlobalClusterQuotaExceededFault(ServiceError, _SerdeShape): + """ + The number of global database clusters for this account is already at + the maximum allowed. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class IAMAuthMode(UnknownEnumMixin, StrEnum): + DISABLED = "DISABLED" + REQUIRED = "REQUIRED" + ENABLED = "ENABLED" + +@dataclass(kw_only=True) +class IamRoleMissingPermissionsFault(ServiceError, _SerdeShape): + """ + The IAM role requires additional permissions to export to an Amazon S3 + bucket. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IamRoleNotFoundFault(ServiceError, _SerdeShape): + """The IAM role is missing for exporting to an Amazon S3 bucket.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InstanceQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of DB + instances. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InsufficientAvailableIPsInSubnetFault(ServiceError, _SerdeShape): + """ + The requested operation can't be performed because there aren't enough + available IP addresses in the proxy's subnets. Add more CIDR blocks to + the VPC or remove IP address that aren't required from the subnets. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InsufficientDBClusterCapacityFault(ServiceError, _SerdeShape): + """The DB cluster doesn't have enough capacity for the current operation.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InsufficientDBInstanceCapacityFault(ServiceError, _SerdeShape): + """ + The specified DB instance class isn't available in the specified + Availability Zone. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InsufficientStorageClusterCapacityFault(ServiceError, _SerdeShape): + """ + There is insufficient storage available for the current action. You + might be able to resolve this error by updating your subnet group to use + different Availability Zones that have more storage available. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Integration(_SerdeShape): + """A zero-ETL integration with Amazon Redshift.""" + + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the database used as the source for + replication. + """ + target_arn: str | None = ... + """ + The ARN of the Redshift data warehouse used as the target for + replication. + """ + integration_name: str | None = ... + """The name of the integration.""" + integration_arn: str | None = ... + """The ARN of the integration.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services Key Management System (Amazon Web Services KMS) + key identifier for the key used to to encrypt the integration. + """ + additional_encryption_context: dict[str, str] | None = ... + """ + The encryption context for the integration. For more information, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + status: str | None = ... + """The current status of the integration.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + data_filter: str | None = ... + """ + Data filters for the integration. These filters determine which tables + from the source database are sent to the target Amazon Redshift data + warehouse. + """ + description: str | None = ... + """A description of the integration.""" + create_time: datetime | None = ... + """ + The time when the integration was created, in Universal Coordinated Time + (UTC). + """ + errors: list[IntegrationError] | None = ... + """Any errors associated with the integration.""" + +@dataclass(kw_only=True) +class IntegrationAlreadyExistsFault(ServiceError, _SerdeShape): + """The integration you are trying to create already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IntegrationConflictOperationFault(ServiceError, _SerdeShape): + """ + A conflicting conditional operation is currently in progress against + this resource. Typically occurs when there are multiple requests being + made to the same resource at the same time, and these requests conflict + with each other. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IntegrationError(_SerdeShape): + """An error associated with a zero-ETL integration with Amazon Redshift.""" + + error_code: str | None = ... + """The error code associated with the integration.""" + error_message: str | None = ... + """A message explaining the error.""" + +@dataclass(kw_only=True) +class IntegrationNotFoundFault(ServiceError, _SerdeShape): + """The specified integration could not be found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IntegrationQuotaExceededFault(ServiceError, _SerdeShape): + """ + You can't crate any more zero-ETL integrations because the quota has + been reached. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class IntegrationStatus(UnknownEnumMixin, StrEnum): + CREATING = "creating" + ACTIVE = "active" + MODIFYING = "modifying" + FAILED = "failed" + DELETING = "deleting" + SYNCING = "syncing" + NEEDS_ATTENTION = "needs_attention" + +@dataclass(kw_only=True) +class InvalidBlueGreenDeploymentStateFault(ServiceError, _SerdeShape): + """ + The blue/green deployment can't be switched over or deleted because + there is an invalid configuration in the green environment. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidCustomDBEngineVersionStateFault(ServiceError, _SerdeShape): + """You can't delete the CEV.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBCapacityReservationStateFault(ServiceError, _SerdeShape): + """The DB capacity reservation isn't in a valid state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBClusterAutomatedBackupStateFault(ServiceError, _SerdeShape): + """ + The automated backup is in an invalid state. For example, this automated + backup is associated with an active cluster. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBClusterCapacityFault(ServiceError, _SerdeShape): + """ + `Capacity` isn't a valid Aurora Serverless DB cluster capacity. Valid + capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBClusterEndpointStateFault(ServiceError, _SerdeShape): + """ + The requested operation can't be performed on the endpoint while the + endpoint is in this state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBClusterSnapshotStateFault(ServiceError, _SerdeShape): + """The supplied value isn't a valid DB cluster snapshot state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBClusterStateFault(ServiceError, _SerdeShape): + """ + The requested operation can't be performed while the cluster is in this + state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBInstanceAutomatedBackupStateFault(ServiceError, _SerdeShape): + """ + The automated backup is in an invalid state. For example, this automated + backup is associated with an active instance. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBInstanceStateFault(ServiceError, _SerdeShape): + """The DB instance isn't in a valid state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBParameterGroupStateFault(ServiceError, _SerdeShape): + """ + The DB parameter group is in use or is in an invalid state. If you are + attempting to delete the parameter group, you can't delete it when the + parameter group is in this state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBProxyEndpointStateFault(ServiceError, _SerdeShape): + """ + You can't perform this operation while the DB proxy endpoint is in a + particular state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBProxyStateFault(ServiceError, _SerdeShape): + """ + The requested operation can't be performed while the proxy is in this + state. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBSecurityGroupStateFault(ServiceError, _SerdeShape): + """The state of the DB security group doesn't allow deletion.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBShardGroupStateFault(ServiceError, _SerdeShape): + """The DB shard group must be in the available state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBSnapshotStateFault(ServiceError, _SerdeShape): + """The state of the DB snapshot doesn't allow deletion.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBSubnetGroupFault(ServiceError, _SerdeShape): + """ + The DBSubnetGroup doesn't belong to the same VPC as that of an existing + cross-region read replica of the same source instance. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBSubnetGroupStateFault(ServiceError, _SerdeShape): + """The DB subnet group cannot be deleted because it's in use.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidDBSubnetStateFault(ServiceError, _SerdeShape): + """The DB subnet isn't in the *available* state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidEventSubscriptionStateFault(ServiceError, _SerdeShape): + """ + This error can occur if someone else is modifying a subscription. You + should retry the action. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidExportOnlyFault(ServiceError, _SerdeShape): + """The export is invalid for exporting to an Amazon S3 bucket.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidExportSourceStateFault(ServiceError, _SerdeShape): + """ + The state of the export snapshot is invalid for exporting to an Amazon + S3 bucket. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidExportTaskStateFault(ServiceError, _SerdeShape): + """You can't cancel an export task that has completed.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidGlobalClusterStateFault(ServiceError, _SerdeShape): + """ + The global cluster is in an invalid state and can't perform the + requested operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidIntegrationStateFault(ServiceError, _SerdeShape): + """ + The integration is in an invalid state and can't perform the requested + operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidOptionGroupStateFault(ServiceError, _SerdeShape): + """The option group isn't in the *available* state.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidResourceStateFault(ServiceError, _SerdeShape): + """ + The operation can't be performed because another operation is in + progress. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidRestoreFault(ServiceError, _SerdeShape): + """Cannot restore from VPC backup to non-VPC DB instance.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidS3BucketFault(ServiceError, _SerdeShape): + """ + The specified Amazon S3 bucket name can't be found or Amazon RDS isn't + authorized to access the specified Amazon S3 bucket. Verify the + **SourceS3BucketName** and **S3IngestionRoleArn** values and try again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidSubnet(ServiceError, _SerdeShape): + """ + The requested subnet is invalid, or multiple subnets were requested that + are not all in a common VPC. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidVPCNetworkStateFault(ServiceError, _SerdeShape): + """ + The DB subnet group doesn't cover all Availability Zones after it's + created because of users' change. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IPRange(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeDBSecurityGroups` action. + """ + + status: str | None = ... + """ + The status of the IP range. Status can be \"authorizing\", + \"authorized\", \"revoking\", and \"revoked\". + """ + cidrip: str | None = ... + """The IP range.""" + +@dataclass(kw_only=True) +class IssueDetails(_SerdeShape): + """ + The details of an issue with your DB instances, DB clusters, and DB + parameter groups. + """ + + performance_issue_details: PerformanceIssueDetails | None = ... + """ + A detailed description of the issue when the recommendation category is + `performance`. + """ + +@dataclass(kw_only=True) +class KMSKeyNotAccessibleFault(ServiceError, _SerdeShape): + """An error occurred accessing an Amazon Web Services KMS key.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class LifecycleSupportName(UnknownEnumMixin, StrEnum): + OPEN_SOURCE_RDS_STANDARD_SUPPORT = "open-source-rds-standard-support" + OPEN_SOURCE_RDS_EXTENDED_SUPPORT = "open-source-rds-extended-support" + +@dataclass(kw_only=True) +class LimitlessDatabase(_SerdeShape): + """Contains details for Aurora Limitless Database.""" + + status: str | None = ... + """The status of Aurora Limitless Database.""" + min_required_acu: float | None = ... + """ + The minimum required capacity for Aurora Limitless Database in Aurora + capacity units (ACUs). + """ + +class LimitlessDatabaseStatus(UnknownEnumMixin, StrEnum): + ACTIVE = "active" + NOT_IN_USE = "not-in-use" + ENABLED = "enabled" + DISABLED = "disabled" + ENABLING = "enabling" + DISABLING = "disabling" + MODIFYING_MAX_CAPACITY = "modifying-max-capacity" + ERROR = "error" + +@dataclass(kw_only=True) +class ListTagsForResourceInput(_SerdeShape): + """""" + + resource_name: str | None = ... + """ + The Amazon RDS resource with tags to be listed. This value is an Amazon + Resource Name (ARN). For information about creating an ARN, see + [Constructing an ARN for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing) + in the *Amazon RDS User Guide*. + """ + filters: list[Filter] | None = ... + """This parameter isn't currently supported.""" + +@dataclass(kw_only=True) +class ListTagsForResourceOutput(_SerdeShape): + """""" + + tag_list: list[Tag] | None = ... + """List of tags returned by the `ListTagsForResource` operation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class LocalWriteForwardingStatus(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + ENABLING = "enabling" + DISABLING = "disabling" + REQUESTED = "requested" + +class MasterUserAuthenticationType(UnknownEnumMixin, StrEnum): + PASSWORD = "password" + IAM_DB_AUTH = "iam-db-auth" + +@dataclass(kw_only=True) +class MasterUserSecret(_SerdeShape): + """ + Contains the secret managed by RDS in Amazon Web Services Secrets + Manager for the master user password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + """ + + secret_arn: str | None = ... + """The Amazon Resource Name (ARN) of the secret.""" + secret_status: str | None = ... + """ + The status of the secret. + + The possible status values include the following: + + - `creating` - The secret is being created. + + - `active` - The secret is available for normal use and rotation. + + - `rotating` - The secret is being rotated. + + - `impaired` - The secret can be used to access database credentials, + but it can't be rotated. A secret might have this status if, for + example, permissions are changed so that RDS can no longer access + either the secret or the KMS key for the secret. + + When a secret has this status, you can correct the condition that + caused the status. Alternatively, modify the DB instance to turn off + automatic management of database credentials, and then modify the DB + instance again to turn on automatic management of database + credentials. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier that is used to encrypt the + secret. + """ + +@dataclass(kw_only=True) +class MaxDBShardGroupLimitReached(ServiceError, _SerdeShape): + """ + The maximum number of DB shard groups for your Amazon Web Services + account in the specified Amazon Web Services Region has been reached. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Metric(_SerdeShape): + """The representation of a metric.""" + + name: str | None = ... + """The name of a metric.""" + references: list[MetricReference] | None = ... + """A list of metric references (thresholds).""" + statistics_details: str | None = ... + """ + The details of different statistics for a metric. The description might + contain markdown. + """ + metric_query: MetricQuery | None = ... + """The query to retrieve metric data points.""" + +@dataclass(kw_only=True) +class MetricQuery(_SerdeShape): + """The query to retrieve metric data points.""" + + performance_insights_metric_query: PerformanceInsightsMetricQuery | None = ... + """ + The Performance Insights query that you can use to retrieve Performance + Insights metric data points. + """ + +@dataclass(kw_only=True) +class MetricReference(_SerdeShape): + """The reference (threshold) for a metric.""" + + name: str | None = ... + """The name of the metric reference.""" + reference_details: ReferenceDetails | None = ... + """The details of a performance issue.""" + +@dataclass(kw_only=True) +class MinimumEngineVersionPerAllowedValue(_SerdeShape): + """ + The minimum DB engine version required for each corresponding allowed + value for an option setting. + """ + + allowed_value: str | None = ... + """The allowed value for an option setting.""" + minimum_engine_version: str | None = ... + """The minimum DB engine version required for the allowed value.""" + +@dataclass(kw_only=True) +class ModifyActivityStreamInput(_SerdeShape): + """Dataclass for ModifyActivityStreamInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL + Server DB instance. For example, + `arn:aws:rds:us-east-1:12345667890:db:my-orcl-db`. + """ + audit_policy_state: str | None = ... + """ + The audit policy state. When a policy is unlocked, it is read/write. + When it is locked, it is read-only. You can edit your audit policy only + when the activity stream is unlocked or stopped. + """ + +@dataclass(kw_only=True) +class ModifyActivityStreamOutput(_SerdeShape): + """Dataclass for ModifyActivityStreamOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of messages in + the database activity stream. + """ + kinesis_stream_name: str | None = ... + """ + The name of the Amazon Kinesis data stream to be used for the database + activity stream. + """ + status: str | None = ... + """The status of the modification to the database activity stream.""" + mode: str | None = ... + """The mode of the database activity stream.""" + engine_native_audit_fields_included: bool | None = ... + """ + Indicates whether engine-native audit fields are included in the + database activity stream. + """ + policy_status: str | None = ... + """ + The status of the modification to the policy state of the database + activity stream. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyAdditionalStorageVolume(_SerdeShape): + """Contains details about the modification of an additional storage volume.""" + + volume_name: str | None = ... + """ + The name of the additional storage volume that you want to modify. + + Valid Values: `RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4` + """ + allocated_storage: int | None = ... + """ + The amount of storage allocated for the additional storage volume, in + gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 + TiB). + """ + iops: int | None = ... + """ + The number of I/O operations per second (IOPS) provisioned for the + additional storage volume. This setting is only supported for + Provisioned IOPS SSD (`io1` and `io2`) storage types. + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which RDS can automatically scale + the storage of the additional storage volume. You must provide a value + greater than or equal to `AllocatedStorage`. + """ + storage_throughput: int | None = ... + """ + The storage throughput value for the additional storage volume, in + mebibytes per second (MiBps). This setting applies only to the General + Purpose SSD (`gp3`) storage type. + """ + storage_type: str | None = ... + """ + The new storage type for the additional storage volume. + + Valid Values: `GP3 | IO2` + """ + set_for_delete: bool | None = ... + """ + Indicates whether to delete the additional storage volume. The value + `true` schedules the volume for deletion. You can delete an additional + storage volume only when it doesn't contain database files or other + data. + """ + +@dataclass(kw_only=True) +class ModifyCertificatesInput(_SerdeShape): + """Dataclass for ModifyCertificatesInput structure.""" + + certificate_identifier: str | None = ... + """ + The new default certificate identifier to override the current one with. + + To determine the valid values, use the `describe-certificates` CLI + command or the `DescribeCertificates` API operation. + """ + remove_customer_override: bool | None = ... + """ + Specifies whether to remove the override for the default certificate. If + the override is removed, the default certificate is the system default. + """ + +@dataclass(kw_only=True) +class ModifyCertificatesOutput(_SerdeShape): + """Dataclass for ModifyCertificatesOutput structure.""" + + certificate: Certificate | None = ... + """ + A CA certificate for an Amazon Web Services account. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyCurrentDBClusterCapacityInput(_SerdeShape): + """Dataclass for ModifyCurrentDBClusterCapacityInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier for the cluster being modified. This parameter + isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing DB cluster. + """ + capacity: int | None = ... + """ + The DB cluster capacity. + + When you change the capacity of a paused Aurora Serverless v1 DB + cluster, it automatically resumes. + + Constraints: + + - For Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, + `32`, `64`, `128`, and `256`. + + - For Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, + `32`, `64`, `192`, and `384`. + """ + seconds_before_timeout: int | None = ... + """ + The amount of time, in seconds, that Aurora Serverless v1 tries to find + a scaling point to perform seamless scaling before enforcing the timeout + action. The default is 300. + + Specify a value between 10 and 600 seconds. + """ + timeout_action: str | None = ... + """ + The action to take when the timeout is reached, either + `ForceApplyCapacityChange` or `RollbackCapacityChange`. + + `ForceApplyCapacityChange`, the default, sets the capacity to the + specified value as soon as possible. + + `RollbackCapacityChange` ignores the capacity change if a scaling point + isn't found in the timeout period. + """ + +@dataclass(kw_only=True) +class ModifyCurrentDBClusterCapacityOutput(_SerdeShape): + """Dataclass for ModifyCurrentDBClusterCapacityOutput structure.""" + + db_cluster_identifier: str | None = ... + """ + A user-supplied DB cluster identifier. This identifier is the unique key + that identifies a DB cluster. + """ + pending_capacity: int | None = ... + """A value that specifies the capacity that the DB cluster scales to next.""" + current_capacity: int | None = ... + """The current capacity of the DB cluster.""" + seconds_before_timeout: int | None = ... + """ + The number of seconds before a call to `ModifyCurrentDBClusterCapacity` + times out. + """ + timeout_action: str | None = ... + """ + The timeout action of a call to `ModifyCurrentDBClusterCapacity`, either + `ForceApplyCapacityChange` or `RollbackCapacityChange`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyCustomDBEngineVersionInput(_SerdeShape): + """Dataclass for ModifyCustomDBEngineVersionInput structure.""" + + engine: str | None = ... + """ + The database engine. + + RDS Custom for Oracle supports the following values: + + - `custom-oracle-ee` + + - `custom-oracle-ee-cdb` + + - `custom-oracle-se2` + + - `custom-oracle-se2-cdb` + + RDS Custom for SQL Server supports the following values: + + - `custom-sqlserver-ee` + + - `custom-sqlserver-se` + + - `custom-sqlserver-web` + + - `custom-sqlserver-dev` + + RDS for SQL Server supports the following values: + + - `sqlserver-ee` (Bring Your Own Media) + + - `sqlserver-se` (Bring Your Own Media) + + - `sqlserver-dev-ee` + """ + engine_version: str | None = ... + """ + The custom engine version (CEV) that you want to modify. This option is + required for RDS Custom for Oracle, but optional for Amazon RDS. The + combination of `Engine` and `EngineVersion` is unique per customer per + Amazon Web Services Region. + """ + description: str | None = ... + """An optional description of your CEV.""" + status: str | None = ... + """ + The availability status to be assigned to the CEV. Valid values are as + follows: + + available + + : You can use this CEV to create a new RDS Custom DB instance. + + inactive + + : You can create a new RDS Custom instance by restoring a DB snapshot + with this CEV. You can't patch or create new instances with this CEV. + + You can change any status to any status. A typical reason to change + status is to prevent the accidental use of a CEV, or to make a + deprecated CEV eligible for use again. For example, you might change the + status of your CEV from `available` to `inactive`, and from `inactive` + back to `available`. To change the availability status of the CEV, it + must not currently be in use by an RDS Custom instance, snapshot, or + automated backup. + """ + +@dataclass(kw_only=True) +class ModifyCustomDBEngineVersionOutput(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeDBEngineVersions`. + """ + + engine: str | None = ... + """The name of the database engine.""" + major_engine_version: str | None = ... + """The major engine version of the CEV.""" + engine_version: str | None = ... + """The version number of the database engine.""" + database_installation_files_s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket that contains your database + installation files. + """ + database_installation_files_s3_prefix: str | None = ... + """ + The Amazon S3 directory that contains the database installation files. + If not specified, then no prefix is assumed. + """ + database_installation_files: list[str] | None = ... + """ + The database installation files (ISO and EXE) that were uploaded to + Amazon S3 and used to import the database engine version to Amazon RDS. + Returned for RDS for SQL Server engine versions (`sqlserver-ee`, + `sqlserver-se`, and `sqlserver-dev-ee`) created from customer-supplied + installation media. + """ + custom_db_engine_version_manifest: str | None = ... + """ + JSON string that lists the installation files and parameters that RDS + Custom uses to create a custom engine version (CEV). RDS Custom applies + the patches in the order in which they're listed in the manifest. You + can set the Oracle home, Oracle base, and UNIX/Linux user and group + using the installation parameters. For more information, see [JSON + fields in the CEV + manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html#custom-cev.preparing.manifest.fields) + in the *Amazon RDS User Guide*. + """ + db_parameter_group_family: str | None = ... + """The name of the DB parameter group family for the database engine.""" + db_engine_description: str | None = ... + """The description of the database engine.""" + db_engine_version_arn: str | None = ... + """The ARN of the custom engine version.""" + db_engine_version_description: str | None = ... + """The description of the database engine version.""" + default_character_set: CharacterSet | None = ... + """ + The default character set for new instances of this engine version, if + the `CharacterSetName` parameter of the CreateDBInstance API isn't + specified. + """ + failure_reason: str | None = ... + """ + The reason that the custom engine version creation failed with an + `incompatible-installation-media` status. Applicable to RDS for SQL + Server engine versions (`sqlserver-ee`, `sqlserver-se`, and + `sqlserver-dev-ee`). + """ + image: CustomDBEngineVersionAMI | None = ... + """The EC2 image""" + db_engine_media_type: str | None = ... + """ + The source of the installation media for this engine version. A value of + `Customer Provided` indicates that the engine version was created from + customer-supplied installation media using + `CreateCustomDBEngineVersion`. Applicable to RDS Custom for SQL Server + and to RDS for SQL Server engine versions (`sqlserver-ee` and + `sqlserver-se` with the `bring-your-own-media` license model, and + `sqlserver-dev-ee`). + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted CEV. This + parameter is required for RDS Custom, but optional for Amazon RDS. + """ + create_time: datetime | None = ... + """The creation time of the DB engine version.""" + supported_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by this engine for the + `CharacterSetName` parameter of the `CreateDBInstance` operation. + """ + supported_nchar_character_sets: list[CharacterSet] | None = ... + """ + A list of the character sets supported by the Oracle DB engine for the + `NcharCharacterSetName` parameter of the `CreateDBInstance` operation. + """ + valid_upgrade_target: list[UpgradeTarget] | None = ... + """ + A list of engine versions that this database engine version can be + upgraded to. + """ + supported_timezones: list[Timezone] | None = ... + """ + A list of the time zones supported by this engine for the `Timezone` + parameter of the `CreateDBInstance` action. + """ + exportable_log_types: list[str] | None = ... + """ + The types of logs that the database engine has available for export to + CloudWatch Logs. + """ + supports_log_exports_to_cloudwatch_logs: bool | None = ... + """ + Indicates whether the engine version supports exporting the log types + specified by ExportableLogTypes to CloudWatch Logs. + """ + supports_read_replica: bool | None = ... + """Indicates whether the database engine version supports read replicas.""" + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes.""" + supported_feature_names: list[str] | None = ... + """ + A list of features supported by the DB engine. + + The supported features vary by DB engine and DB engine version. + + To determine the supported features for a specific DB engine and DB + engine version using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine --engine-version ` + + For example, to determine the supported features for RDS for PostgreSQL + version 13.3 using the CLI, use the following command: + + `aws rds describe-db-engine-versions --engine postgres --engine-version 13.3` + + The supported features are listed under `SupportedFeatureNames` in the + output. + """ + status: str | None = ... + """The status of the DB engine version, either `available` or `deprecated`.""" + supports_parallel_query: bool | None = ... + """ + Indicates whether you can use Aurora parallel query with a specific DB + engine version. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with a specific DB + engine version. + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + supports_babelfish: bool | None = ... + """ + Indicates whether the engine version supports Babelfish for Aurora + PostgreSQL. + """ + supports_limitless_database: bool | None = ... + """ + Indicates whether the DB engine version supports Aurora Limitless + Database. + """ + supports_certificate_rotation_without_restart: bool | None = ... + """ + Indicates whether the engine version supports rotating the server + certificate without rebooting the DB instance. + """ + supported_ca_certificate_identifiers: list[str] | None = ... + """ + A list of the supported CA certificate identifiers. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + supports_local_write_forwarding: bool | None = ... + """ + Indicates whether the DB engine version supports forwarding write + operations from reader DB instances to the writer DB instance in the DB + cluster. By default, write operations aren't allowed on reader DB + instances. + + Valid for: Aurora DB clusters only + """ + supports_integrations: bool | None = ... + """ + Indicates whether the DB engine version supports zero-ETL integrations + with Amazon Redshift. + """ + serverless_v2_features_support: ServerlessV2FeaturesSupport | None = ... + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora engine versions. You can test the values of this + attribute when deciding which Aurora version to use in a new or upgraded + DB cluster. You can also retrieve the version of an existing DB cluster + and check whether that version supports certain Aurora Serverless v2 + features before you attempt to use those features. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBCapacityReservationInput(_SerdeShape): + """Dataclass for ModifyDBCapacityReservationInput structure.""" + + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to modify. You + can specify the identifier, which has the prefix `dbcr-`, or the + reservation name. + """ + capacity_per_availability_zone: int | None = ... + """ + The new number of DB instances to reserve in each Availability Zone of + the reservation. Amazon RDS applies this number to every Availability + Zone of the reservation. + + An increase reserves more capacity at the time of the request, so it can + fail when the Amazon Web Services Region has insufficient capacity. + + This value multiplied by the number of Availability Zones counts against + the DB instances quota for your Amazon Web Services account in the + Amazon Web Services Region. Amazon RDS checks the quota only when you + increase the value. + + Constraints: + + - Minimum 1. + + - Can't be less than the highest number of DB instances that use the + reservation in any single Availability Zone of the reservation. That + number includes a DB instance that holds a unit of reserved capacity + for a pending modification. To find that number for an Availability + Zone, subtract `AvailableCapacity` from + `ReservedCapacityPerAvailabilityZone`. + + - During a capacity commitment, can't be less than + `CommittedCapacityPerAvailabilityZone`. + """ + end_date_type: str | None = ... + """ + The end date type for the reservation. + + Valid Values: + + - `limited` - The reservation has a specific end date. You must also + specify `EndDate`. + + - `unlimited` - The reservation doesn't expire. Don't specify + `EndDate`. + """ + end_date: datetime | None = ... + """ + The new end date for the reservation, in Universal Coordinated Time + (UTC). Required when `EndDateType` is `limited`. Don't specify a value + when `EndDateType` is `unlimited`. + + When you specify `EndDate`, you must also specify `EndDateType`. + + Constraints: + + - Must be a date and time in the future. + + - During a capacity commitment, must be at or after `CommitmentEndDate`. + """ + +@dataclass(kw_only=True) +class ModifyDBCapacityReservationOutput(_SerdeShape): + """Dataclass for ModifyDBCapacityReservationOutput structure.""" + + db_capacity_reservation: DBCapacityReservation | None = ... + """Contains the details of the modified DB capacity reservation.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterEndpointInput(_SerdeShape): + """Dataclass for ModifyDBClusterEndpointInput structure.""" + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier of the endpoint to modify. This parameter is stored as a + lowercase string. + """ + endpoint_type: str | None = ... + """The type of the endpoint. One of: `READER`, `WRITER`, `ANY`.""" + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. Only relevant if the list of static members is empty. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterEndpointOutput(_SerdeShape): + """ + This data type represents the information you need to connect to an + Amazon Aurora DB cluster. This data type is used as a response element + in the following actions: + + - `CreateDBClusterEndpoint` + + - `DescribeDBClusterEndpoints` + + - `ModifyDBClusterEndpoint` + + - `DeleteDBClusterEndpoint` + + For the data structure that represents Amazon RDS DB instance endpoints, + see `Endpoint`. + """ + + db_cluster_endpoint_identifier: str | None = ... + """ + The identifier associated with the endpoint. This parameter is stored as + a lowercase string. + """ + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the DB cluster associated with the + endpoint. This parameter is stored as a lowercase string. + """ + db_cluster_endpoint_resource_identifier: str | None = ... + """ + A unique system-generated identifier for an endpoint. It remains the + same for the whole life of the endpoint. + """ + endpoint: str | None = ... + """The DNS address of the endpoint.""" + status: str | None = ... + """ + The current status of the endpoint. One of: `creating`, `available`, + `deleting`, `inactive`, `modifying`. The `inactive` state applies to an + endpoint that can't be used for a certain kind of cluster, such as a + `writer` endpoint for a read-only secondary cluster in a global + database. + """ + endpoint_type: str | None = ... + """The type of the endpoint. One of: `READER`, `WRITER`, `CUSTOM`.""" + custom_endpoint_type: str | None = ... + """ + The type associated with a custom endpoint. One of: `READER`, `WRITER`, + `ANY`. + """ + static_members: list[str] | None = ... + """ + List of DB instance identifiers that are part of the custom endpoint + group. + """ + excluded_members: list[str] | None = ... + """ + List of DB instance identifiers that aren't part of the custom endpoint + group. All other eligible instances are reachable through the custom + endpoint. Only relevant if the list of static members is empty. + """ + db_cluster_endpoint_arn: str | None = ... + """The Amazon Resource Name (ARN) for the endpoint.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier for the cluster being modified. This parameter + isn't case-sensitive. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must match the identifier of an existing DB cluster. + """ + new_db_cluster_identifier: str | None = ... + """ + The new DB cluster identifier for the DB cluster when renaming a DB + cluster. This value is stored as a lowercase string. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - The first character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster2` + """ + apply_immediately: bool | None = ... + """ + Specifies whether the modifications in this request are asynchronously + applied as soon as possible, regardless of the + `PreferredMaintenanceWindow` setting for the DB cluster. If this + parameter is disabled, changes to the DB cluster are applied during the + next maintenance window. + + Most modifications can be applied immediately or during the next + scheduled maintenance window. Some modifications, such as turning on + deletion protection and changing the master password, are applied + immediately---regardless of when you choose to apply them. + + By default, this parameter is disabled. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Specify a + minimum value of `1`. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Default: `1` + + Constraints: + + - Must be a value from 1 to 35. + """ + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group to use for the DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of EC2 VPC security groups to associate with this DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + port: int | None = ... + """ + The port number on which the DB cluster accepts connections. + + Valid for Cluster Type: Aurora DB clusters only + + Valid Values: `1150-65535` + + Default: The same port as the original DB cluster. + """ + master_user_password: str | None = ... + """ + The new password for the master database user. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must contain from 8 to 41 characters. + + - Can contain any printable ASCII character except \"/\", \"\"\", or + \"@\". + + - Can't be specified if `ManageMasterUserPassword` is turned on. + """ + option_group_name: str | None = ... + """ + The option group to associate the DB cluster with. + + DB clusters are associated with a default option group that can't be + modified. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, using the `BackupRetentionPeriod` + parameter. + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To view the time + blocks available, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur, in + Universal Coordinated Time (UTC). + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region, occurring on a random + day of the week. To see the time blocks available, see [Adjusting the + Preferred DB Cluster Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) + in the *Amazon Aurora User Guide*. + + Constraints: + + - Must be in the format `ddd:hh24:mi-ddd:hh24:mi`. + + - Days must be one of `Mon | Tue | Wed | Thu | Fri | Sat | Sun`. + + - Must be in Universal Coordinated Time (UTC). + + - Must be at least 30 minutes. + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon Aurora User Guide* or [IAM database authentication for + MariaDB, MySQL, and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. To disable backtracking, set + this value to `0`. + + Valid for Cluster Type: Aurora MySQL DB clusters only + + Default: `0` + + Constraints: + + - If specified, this value must be set to a number from 0 to 259,200 (72 + hours). + """ + cloudwatch_logs_export_configuration: CloudwatchLogsExportConfiguration | None = ... + """ + The configuration setting for the log types to be enabled for export to + CloudWatch Logs for a specific DB cluster. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + The following values are valid for each DB engine: + + - Aurora MySQL - + `audit | error | general | instance | slowquery | iam-db-auth-error` + + - Aurora PostgreSQL - `instance | postgresql | iam-db-auth-error` + + - RDS for MySQL - `error | general | slowquery | iam-db-auth-error` + + - RDS for PostgreSQL - `postgresql | upgrade | iam-db-auth-error` + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + """ + engine_version: str | None = ... + """ + The version number of the database engine to which you want to upgrade. + Changing this parameter results in an outage. The change is applied + during the next maintenance window unless `ApplyImmediately` is enabled. + + If the cluster that you're modifying has one or more read replicas, all + replicas must be running an engine version that's the same or later + than the version you specify. + + To list all of the available engine versions for Aurora MySQL, use the + following command: + + `aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for Aurora PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for MySQL, use the + following command: + + `aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion"` + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + allow_major_version_upgrade: bool | None = ... + """ + Specifies whether major version upgrades are allowed. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - You must allow major version upgrades when specifying a value for the + `EngineVersion` parameter that is a different major version than the + DB cluster's current version. + """ + db_instance_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to apply to all instances of the DB + cluster. + + Note: + When you apply a parameter group using the + `DBInstanceParameterGroupName` parameter, the DB cluster isn't rebooted + automatically. Also, parameter changes are applied immediately rather + than during the next maintenance window. + + Valid for Cluster Type: Aurora DB clusters only + + Default: The existing name setting + + Constraints: + + - The DB parameter group must be in the same DB parameter group family + as this DB cluster. + + - The `DBInstanceParameterGroupName` parameter is valid in combination + with the `AllowMajorVersionUpgrade` parameter for a major version + upgrade only. + """ + domain: str | None = ... + """ + The Active Directory directory ID to move the DB cluster to. Specify + `none` to remove the cluster from its current domain. The domain must be + created prior to this operation. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters only + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + Valid for Cluster Type: Aurora DB clusters only + """ + scaling_configuration: ScalingConfiguration | None = ... + """ + The scaling properties of the DB cluster. You can only modify scaling + properties for DB clusters in `serverless` DB engine mode. + + Valid for Cluster Type: Aurora DB clusters only + """ + deletion_protection: bool | None = ... + """ + Specifies whether the DB cluster has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_http_endpoint: bool | None = ... + """ + Specifies whether to enable the HTTP endpoint for an Aurora Serverless + v1 DB cluster. By default, the HTTP endpoint isn't enabled. + + When enabled, the HTTP endpoint provides a connectionless web service + API (RDS Data API) for running SQL queries on the Aurora Serverless v1 + DB cluster. You can also query your database from inside the RDS console + with the RDS query editor. + + For more information, see [Using RDS Data + API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) + in the *Amazon Aurora User Guide*. + + Note: + This parameter applies only to Aurora Serverless v1 DB clusters. To + enable or disable the HTTP endpoint for an Aurora Serverless v2 or + provisioned DB cluster, use the `EnableHttpEndpoint` and + `DisableHttpEndpoint` operations. + + Valid for Cluster Type: Aurora DB clusters only + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the DB cluster to snapshots of + the DB cluster. The default is not to copy them. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_global_write_forwarding: bool | None = ... + """ + Specifies whether to enable this DB cluster to forward write operations + to the primary cluster of a global cluster (Aurora global database). By + default, write operations are not allowed on Aurora DB clusters that are + secondary clusters in an Aurora global database. + + You can set this value only on Aurora DB clusters that are members of an + Aurora global database. With this parameter enabled, a secondary cluster + can forward writes to the current primary cluster, and the resulting + changes are replicated back to this cluster. For the primary DB cluster + of an Aurora global database, this value is used immediately if the + primary is demoted by a global cluster API operation, but it does + nothing until then. + + Valid for Cluster Type: Aurora DB clusters only + """ + db_cluster_instance_class: str | None = ... + """ + The compute and memory capacity of each DB instance in the Multi-AZ DB + cluster, for example `db.m6gd.xlarge`. Not all DB instance classes are + available in all Amazon Web Services Regions, or for all database + engines. + + For the full list of DB instance classes and availability for your + engine, see [DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Multi-AZ DB clusters only + """ + allocated_storage: int | None = ... + """ + The amount of storage in gibibytes (GiB) to allocate to each DB instance + in the Multi-AZ DB cluster. + + Valid for Cluster Type: Multi-AZ DB clusters only + """ + storage_type: str | None = ... + """ + The storage type to associate with the DB cluster. + + For information on storage types for Aurora DB clusters, see [Storage + configurations for Amazon Aurora DB + clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type). + For information on storage types for Multi-AZ DB clusters, see [Settings + for creating Multi-AZ DB + clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings). + + When specified for a Multi-AZ DB cluster, a value for the `Iops` + parameter is required. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + + - Aurora DB clusters - `aurora | aurora-iopt1` + + - Multi-AZ DB clusters - `io1 | io2 | gp3` + + Default: + + - Aurora DB clusters - `aurora` + + - Multi-AZ DB clusters - `io1` + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + be initially allocated for each DB instance in the Multi-AZ DB cluster. + + For information about valid IOPS values, see [Amazon RDS Provisioned + IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Multi-AZ DB clusters only + + Constraints: + + - Must be a multiple between .5 and 50 of the storage amount for the DB + cluster. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether minor engine upgrades are applied automatically to the + DB cluster during the maintenance window. By default, minor engine + upgrades are applied automatically. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + network_type: str | None = ... + """ + The network type of the DB cluster. + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + Valid for Cluster Type: Aurora DB clusters only + + Valid Values: `IPV4 | DUAL` + """ + serverless_v2_scaling_configuration: ServerlessV2ScalingConfiguration | None = ... + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB cluster. To turn off collecting + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a + value other than `0`. + + Valid for Cluster Type: Multi-AZ DB clusters only + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the IAM role that permits RDS to send + Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, see [To create an IAM role for Amazon RDS Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole) + in the *Amazon RDS User Guide.* + + If `MonitoringInterval` is set to a value other than `0`, supply a + `MonitoringRoleArn` value. + + Valid for Cluster Type: Multi-AZ DB clusters only + """ + database_insights_mode: str | None = ... + """ + Specifies the mode of Database Insights to enable for the DB cluster. + + If you change the value from `standard` to `advanced`, you must set the + `PerformanceInsightsEnabled` parameter to `true` and the + `PerformanceInsightsRetentionPeriod` parameter to 465. + + If you change the value from `advanced` to `standard`, you can set the + `PerformanceInsightsEnabled` parameter to `true` to collect detailed + database counter and per-query metrics. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to turn on Performance Insights for the DB cluster. + + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS issues an error. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + If the DB cluster doesn't manage the master user password with Amazon + Web Services Secrets Manager, you can turn on this management. In this + case, you can't specify `MasterUserPassword`. + + If the DB cluster already manages the master user password with Amazon + Web Services Secrets Manager, and you specify that the master user + password is not managed with Amazon Web Services Secrets Manager, then + you must specify `MasterUserPassword`. In this case, RDS deletes the + secret and uses the new password for the master user specified by + `MasterUserPassword`. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + rotate_master_user_password: bool | None = ... + """ + Specifies whether to rotate the secret managed by Amazon Web Services + Secrets Manager for the master user password. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB cluster. The secret + value contains the updated password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - You must apply the change immediately when rotating the master user + password. + """ + enable_local_write_forwarding: bool | None = ... + """ + Specifies whether read replicas can forward write operations to the + writer DB instance in the DB cluster. By default, write operations + aren't allowed on reader DB instances. + + Valid for: Aurora DB clusters only + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if both of the following conditions are met: + + - The DB cluster doesn't manage the master user password in Amazon Web + Services Secrets Manager. + + If the DB cluster already manages the master user password in Amazon + Web Services Secrets Manager, you can't change the KMS key that is + used to encrypt the secret. + + - You are turning on `ManageMasterUserPassword` to manage the master + user password in Amazon Web Services Secrets Manager. + + If you are turning on `ManageMasterUserPassword` and don't specify + `MasterUserSecretKmsKeyId`, then the `aws/secretsmanager` KMS key is + used to encrypt the secret. If the secret is in a different Amazon Web + Services account, then you can't use the `aws/secretsmanager` KMS key + to encrypt the secret, and you must use a customer managed KMS key. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + """ + engine_mode: str | None = ... + """ + The DB engine mode of the DB cluster, either `provisioned` or + `serverless`. + + Note: + The DB engine mode can be modified only from `serverless` to + `provisioned`. + + For more information, see + [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html). + + Valid for Cluster Type: Aurora DB clusters only + """ + allow_engine_mode_change: bool | None = ... + """ + Specifies whether engine mode changes from `serverless` to `provisioned` + are allowed. + + Valid for Cluster Type: Aurora Serverless v1 DB clusters only + + Constraints: + + - You must allow engine mode changes when specifying a different value + for the `EngineMode` parameter from the DB cluster's current engine + mode. + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + """ + enable_limitless_database: bool | None = ... + """ + Specifies whether to enable Aurora Limitless Database. You must enable + Aurora Limitless Database to create a DB shard group. + + Valid for: Aurora DB clusters only + + Note: + This setting is no longer used. Instead use the `ClusterScalabilityType` + setting when you create your Aurora Limitless Database DB cluster. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB cluster's server + certificate. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide*. + + Valid for Cluster Type: Multi-AZ DB clusters + """ + master_user_authentication_type: str | None = ... + """ + Specifies the authentication type for the master user. With IAM master + user authentication, you can change the master DB user to use IAM + database authentication. + + You can specify one of the following values: + + - `password` - Use standard database authentication with a password. + + - `iam-db-auth` - Use IAM database authentication for the master user. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL + engines. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB cluster. + + You can use this setting to enroll your DB cluster into Amazon RDS + Extended Support or to opt out. With RDS Extended Support, you can run + the selected major engine version on your DB cluster past the end of + standard support for that engine version. For more information, see the + following sections: + + - Amazon Aurora - [Amazon RDS Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide* + + - Amazon RDS - [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + """ + +@dataclass(kw_only=True) +class ModifyDBClusterOutput(_SerdeShape): + """Dataclass for ModifyDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterParameterGroupInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """The name of the DB cluster parameter group to modify.""" + parameters: list[Parameter] | None = ... + """ + A list of parameters in the DB cluster parameter group to modify. + + Valid Values (for the application method): `immediate | pending-reboot` + + Note: + You can use the `immediate` value with dynamic parameters only. You can + use the `pending-reboot` value for both dynamic and static parameters. + + When the application method is `immediate`, changes to dynamic + parameters are applied immediately to the DB clusters associated with + the parameter group. When the application method is `pending-reboot`, + changes to dynamic and static parameters are applied after a reboot + without failover to the DB clusters associated with the parameter group. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterParameterGroupOutput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group. + + Constraints: + + - Must be 1 to 255 letters or numbers. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Note: + This value is stored as a lowercase string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterSnapshotAttributeInput(_SerdeShape): + """""" + + db_cluster_snapshot_identifier: str | None = ... + """The identifier for the DB cluster snapshot to modify the attributes for.""" + attribute_name: str | None = ... + """ + The name of the DB cluster snapshot attribute to modify. + + To manage authorization for other Amazon Web Services accounts to copy + or restore a manual DB cluster snapshot, set this value to `restore`. + + Note: + To view the list of attributes available to modify, use the + DescribeDBClusterSnapshotAttributes API operation. + """ + values_to_add: list[str] | None = ... + """ + A list of DB cluster snapshot attributes to add to the attribute + specified by `AttributeName`. + + To authorize other Amazon Web Services accounts to copy or restore a + manual DB cluster snapshot, set this list to include one or more Amazon + Web Services account IDs, or `all` to make the manual DB cluster + snapshot restorable by any Amazon Web Services account. Do not add the + `all` value for any manual DB cluster snapshots that contain private + information that you don't want available to all Amazon Web Services + accounts. + """ + values_to_remove: list[str] | None = ... + """ + A list of DB cluster snapshot attributes to remove from the attribute + specified by `AttributeName`. + + To remove authorization for other Amazon Web Services accounts to copy + or restore a manual DB cluster snapshot, set this list to include one or + more Amazon Web Services account identifiers, or `all` to remove + authorization for any Amazon Web Services account to copy or restore the + DB cluster snapshot. If you specify `all`, an Amazon Web Services + account whose account ID is explicitly added to the `restore` attribute + can still copy or restore a manual DB cluster snapshot. + """ + +@dataclass(kw_only=True) +class ModifyDBClusterSnapshotAttributeOutput(_SerdeShape): + """Dataclass for ModifyDBClusterSnapshotAttributeOutput structure.""" + + db_cluster_snapshot_attributes_result: ( + DBClusterSnapshotAttributesResult | None + ) = ... + """ + Contains the results of a successful call to the + `DescribeDBClusterSnapshotAttributes` API action. + + Manual DB cluster snapshot attributes are used to authorize other Amazon + Web Services accounts to copy or restore a manual DB cluster snapshot. + For more information, see the `ModifyDBClusterSnapshotAttribute` API + action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBInstanceInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The identifier of DB instance to modify. This value is stored as a + lowercase string. + + Constraints: + + - Must match the identifier of an existing DB instance. + """ + allocated_storage: int | None = ... + """ + The new amount of storage in gibibytes (GiB) to allocate for the DB + instance. + + For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for + PostgreSQL, the value supplied must be at least 10% greater than the + current value. Values that are not at least 10% greater than the + existing value are rounded up so that they are 10% greater than the + current value. + + For the valid values for allocated storage for each engine, see + `CreateDBInstance`. + + Constraints: + + - When you increase the allocated storage for a DB instance that uses + Provisioned IOPS (`gp3`, `io1`, or `io2` storage type), you must also + specify the `Iops` parameter. You can use the current value for + `Iops`. + """ + db_instance_class: str | None = ... + """ + The new compute and memory capacity of the DB instance, for example + `db.m4.large`. Not all DB instance classes are available in all Amazon + Web Services Regions, or for all database engines. For the full list of + DB instance classes, and availability for your engine, see [DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide* or [Aurora DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) + in the *Amazon Aurora User Guide*. For RDS Custom, see [DB instance + class support for RDS Custom for + Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances) + and [DB instance class support for RDS Custom for SQL + Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html#custom-reqs-limits.instancesMS). + + If you modify the DB instance class, an outage occurs during the change. + The change is applied during the next maintenance window, unless you + specify `ApplyImmediately` in your request. + + Default: Uses existing setting + + Constraints: + + - If you are modifying the DB instance class and upgrading the engine + version at the same time, the currently running engine version must be + supported on the specified DB instance class. Otherwise, the operation + returns an error. In this case, first run the operation to upgrade the + engine version, and then run it again to modify the DB instance class. + """ + db_subnet_group_name: str | None = ... + """ + The new DB subnet group for the DB instance. You can use this parameter + to move your DB instance to a different VPC. If your DB instance isn't + in a VPC, you can also use this parameter to move your DB instance into + a VPC. For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC) + in the *Amazon RDS User Guide*. + + Changing the subnet group causes an outage during the change. The change + is applied during the next maintenance window, unless you enable + `ApplyImmediately`. + + This setting doesn't apply to RDS Custom DB instances. + + Constraints: + + - If supplied, must match existing DB subnet group. + + Example: `mydbsubnetgroup` + """ + db_security_groups: list[str] | None = ... + """ + A list of DB security groups to authorize on this DB instance. Changing + this setting doesn't result in an outage and the change is + asynchronously applied as soon as possible. + + This setting doesn't apply to RDS Custom DB instances. + + Constraints: + + - If supplied, must match existing DB security groups. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of Amazon EC2 VPC security groups to associate with this DB + instance. This change is asynchronously applied as soon as possible. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora (The associated list of EC2 VPC security groups is + managed by the DB cluster. For more information, see + `ModifyDBCluster`.) + + - RDS Custom + + Constraints: + + - If supplied, must match existing VPC security group IDs. + """ + apply_immediately: bool | None = ... + """ + Specifies whether the modifications in this request and any pending + modifications are asynchronously applied as soon as possible, regardless + of the `PreferredMaintenanceWindow` setting for the DB instance. By + default, this parameter is disabled. + + If this parameter is disabled, changes to the DB instance are applied + during the next maintenance window. Some parameter changes can cause an + outage and are applied on the next call to RebootDBInstance, or the next + failure reboot. Review the table of parameters in [Modifying a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html) + in the *Amazon RDS User Guide* to see the impact of enabling or + disabling `ApplyImmediately` for each modified parameter and to + determine when the changes are applied. + """ + master_user_password: str | None = ... + """ + The new password for the master user. + + Changing this parameter doesn't result in an outage and the change is + asynchronously applied as soon as possible. Between the time of the + request and the completion of the request, the `MasterUserPassword` + element exists in the `PendingModifiedValues` element of the operation + response. + + Note: + Amazon RDS API operations never return the password, so this operation + provides a way to regain access to a primary instance user if the + password is lost. This includes restoring privileges that might have + been accidentally revoked. + + This setting doesn't apply to the following DB instances: + + - Amazon Aurora + + The password for the master user is managed by the DB cluster. For + more information, see `ModifyDBCluster`. + + - RDS Custom + + - RDS for Oracle CDBs in the multi-tenant configuration + + Specify the master password in `ModifyTenantDatabase` instead. + + Default: Uses existing setting + + Constraints: + + - Can't be specified if `ManageMasterUserPassword` is turned on. + + - Can include any printable ASCII character except \"/\", \"\"\", or + \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the + \"'\" (single quotes) character. + + Length Constraints: + + - RDS for Db2 - Must contain from 8 to 255 characters. + + - RDS for MariaDB - Must contain from 8 to 41 characters. + + - RDS for Microsoft SQL Server - Must contain from 8 to 128 characters. + + - RDS for MySQL - Must contain from 8 to 41 characters. + + - RDS for Oracle - Must contain from 8 to 30 characters. + + - RDS for PostgreSQL - Must contain from 8 to 128 characters. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to apply to the DB instance. + + Changing this setting doesn't result in an outage. The parameter group + name itself is changed immediately, but the actual parameter changes are + not applied until you reboot the instance without failover. In this + case, the DB instance isn't rebooted automatically, and the parameter + changes aren't applied during the next maintenance window. However, if + you modify dynamic parameters in the newly associated DB parameter + group, these changes are applied immediately without a reboot. + + This setting doesn't apply to RDS Custom DB instances. + + Default: Uses existing setting + + Constraints: + + - Must be in the same DB parameter group family as the DB instance. + """ + backup_retention_period: int | None = ... + """ + The number of days to retain automated backups. Setting this parameter + to a positive number enables backups. Setting this parameter to 0 + disables automated backups. + + Note: + Enabling and disabling backups can result in a brief I/O suspension that + lasts from a few seconds to a few minutes, depending on the size and + class of your DB instance. + + These changes are applied during the next maintenance window unless the + `ApplyImmediately` parameter is enabled for this request. If you change + the parameter from one non-zero value to another non-zero value, the + change is asynchronously applied as soon as possible. + + This setting doesn't apply to Amazon Aurora DB instances. The retention + period for automated backups is managed by the DB cluster. For more + information, see `ModifyDBCluster`. + + Default: Uses existing setting + + Constraints: + + - Must be a value from 0 to 35. + + - Can't be set to 0 if the DB instance is a source to read replicas. + + - Can't be set to 0 for an RDS Custom for Oracle DB instance. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod` parameter. Changing this parameter doesn't + result in an outage and the change is asynchronously applied as soon as + possible. The default is a 30-minute window selected at random from an + 8-hour block of time for each Amazon Web Services Region. For more + information, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora DB instances. The daily + time range for creating automated backups is managed by the DB cluster. + For more information, see `ModifyDBCluster`. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur, which + might result in an outage. Changing this parameter doesn't result in an + outage, except in the following situation, and the change is + asynchronously applied as soon as possible. If there are pending actions + that cause a reboot, and the maintenance window is changed to include + the current time, then changing this parameter causes a reboot of the DB + instance. If you change this window to the current time, there must be + at least 30 minutes between the current time and end of the window to + ensure pending changes are applied. + + For more information, see [Amazon RDS Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + in the *Amazon RDS User Guide.* + + Default: Uses existing setting + + Constraints: + + - Must be in the format `ddd:hh24:mi-ddd:hh24:mi`. + + - The day values must be `mon | tue | wed | thu | fri | sat | sun`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred backup window. + + - Must be at least 30 minutes. + """ + multi_az: bool | None = ... + """ + Specifies whether the DB instance is a Multi-AZ deployment. Changing + this parameter doesn't result in an outage. The change is applied + during the next maintenance window unless the `ApplyImmediately` + parameter is enabled for this request. + + This setting doesn't apply to RDS Custom DB instances. + """ + engine_version: str | None = ... + """ + The version number of the database engine to upgrade to. Changing this + parameter results in an outage and the change is applied during the next + maintenance window unless the `ApplyImmediately` parameter is enabled + for this request. + + For major version upgrades, if a nondefault DB parameter group is + currently in use, a new DB parameter group in the DB parameter group + family for the new engine version must be specified. The new DB + parameter group can be the default for that DB parameter group family. + + If you specify only a major version, Amazon RDS updates the DB instance + to the default minor version if the current minor version is lower. For + information about valid engine versions, see `CreateDBInstance`, or call + `DescribeDBEngineVersions`. + + If the instance that you're modifying is acting as a read replica, the + engine version that you specify must be the same or higher than the + version that the source DB instance or cluster is running. + + In RDS Custom for Oracle, this parameter is supported for read replicas + only if they are in the `PATCH_DB_FAILURE` lifecycle. + + Constraints: + + - If you are upgrading the engine version and modifying the DB instance + class at the same time, the currently running engine version must be + supported on the specified DB instance class. Otherwise, the operation + returns an error. In this case, first run the operation to upgrade the + engine version, and then run it again to modify the DB instance class. + """ + allow_major_version_upgrade: bool | None = ... + """ + Specifies whether major version upgrades are allowed. Changing this + parameter doesn't result in an outage and the change is asynchronously + applied as soon as possible. + + This setting doesn't apply to RDS Custom DB instances. + + Constraints: + + - Major version upgrades must be allowed when specifying a value for the + `EngineVersion` parameter that's a different major version than the + DB instance's current version. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether minor version upgrades are applied automatically to + the DB instance during the maintenance window. An outage occurs when all + the following conditions are met: + + - The automatic upgrade is enabled for the maintenance window. + + - A newer minor version is available. + + - RDS has enabled automatic patching for the engine version. + + If any of the preceding conditions isn't met, Amazon RDS applies the + change as soon as possible and doesn't cause an outage. + + For an RDS Custom DB instance, don't enable this setting. Otherwise, + the operation returns an error. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + license_model: str | None = ... + """ + The license model for the DB instance. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + + Valid Values: + + - RDS for Db2 - `bring-your-own-license` + + - RDS for MariaDB - `general-public-license` + + - RDS for Microsoft SQL Server - + `license-included | bring-your-own-media` + + - RDS for MySQL - `general-public-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for PostgreSQL - `postgresql-license` + """ + iops: int | None = ... + """ + The new Provisioned IOPS (I/O operations per second) value for the RDS + instance. + + Changing this setting doesn't result in an outage and the change is + applied during the next maintenance window unless the `ApplyImmediately` + parameter is enabled for this request. If you are migrating from + Provisioned IOPS to standard storage, set this value to 0. The DB + instance will require a reboot for the change in storage type to take + effect. + + If you choose to migrate your DB instance from using standard storage to + Provisioned IOPS (io1), or from Provisioned IOPS to standard storage, + the process can take time. The duration of the migration depends on + several factors such as database load, storage size, storage type + (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and + the number of prior scale storage operations. Typical migration times + are under 24 hours, but the process can take up to several days in some + cases. During the migration, the DB instance is available for use, but + might experience performance degradation. While the migration takes + place, nightly backups for the instance are suspended. No other Amazon + RDS operations can take place for the instance, including modifying the + instance, rebooting the instance, deleting the instance, creating a read + replica for the instance, and creating a DB snapshot of the instance. + + Constraints: + + - For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for + PostgreSQL - The value supplied must be at least 10% greater than the + current value. Values that are not at least 10% greater than the + existing value are rounded up so that they are 10% greater than the + current value. + + - When you increase the Provisioned IOPS, you must also specify the + `AllocatedStorage` parameter. You can use the current value for + `AllocatedStorage`. + + Default: Uses existing setting + """ + storage_throughput: int | None = ... + """ + The storage throughput value for the DB instance. + + This setting applies only to the `gp3` storage type. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + """ + option_group_name: str | None = ... + """ + The option group to associate the DB instance with. + + Changing this parameter doesn't result in an outage, with one + exception. If the parameter change results in an option group that + enables OEM, it can cause a brief period, lasting less than a second, + during which new connections are rejected but existing connections + aren't interrupted. + + The change is applied during the next maintenance window unless the + `ApplyImmediately` parameter is enabled for this request. + + Permanent options, such as the TDE option for Oracle Advanced Security + TDE, can't be removed from an option group, and that option group + can't be removed from a DB instance after it is associated with a DB + instance. + + This setting doesn't apply to RDS Custom DB instances. + """ + new_db_instance_identifier: str | None = ... + """ + The new identifier for the DB instance when renaming a DB instance. When + you change the DB instance identifier, an instance reboot occurs + immediately if you enable `ApplyImmediately`, or will occur during the + next maintenance window if you disable `ApplyImmediately`. This value is + stored as a lowercase string. + + This setting doesn't apply to RDS Custom DB instances. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - The first character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `mydbinstance` + """ + storage_type: str | None = ... + """ + The storage type to associate with the DB instance. + + If you specify `io1`, `io2`, or `gp3` you must also include a value for + the `Iops` parameter. + + If you choose to migrate your DB instance from using standard storage to + gp2 (General Purpose SSD), gp3, or Provisioned IOPS (io1), or from these + storage types to standard storage, the process can take time. The + duration of the migration depends on several factors such as database + load, storage size, storage type (standard or Provisioned IOPS), amount + of IOPS provisioned (if any), and the number of prior scale storage + operations. Typical migration times are under 24 hours, but the process + can take up to several days in some cases. During the migration, the DB + instance is available for use, but might experience performance + degradation. While the migration takes place, nightly backups for the + instance are suspended. No other Amazon RDS operations can take place + for the instance, including modifying the instance, rebooting the + instance, deleting the instance, creating a read replica for the + instance, and creating a DB snapshot of the instance. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + Default: `io1`, if the `Iops` parameter is specified. Otherwise, `gp2`. + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which to associate the instance for TDE + encryption. + + This setting doesn't apply to RDS Custom DB instances. + """ + tde_credential_password: str | None = ... + """ + The password for the given ARN from the key store in order to access the + device. + + This setting doesn't apply to RDS Custom DB instances. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB instance's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + domain: str | None = ... + """ + The Active Directory directory ID to move the DB instance to. Specify + `none` to remove the instance from its current domain. You must create + the domain before this operation. Currently, you can create only Db2, + MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an + Active Directory Domain. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_fqdn: str | None = ... + """ + The fully qualified domain name (FQDN) of an Active Directory domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: `mymanagedADtest.mymanagedAD.mydomain` + """ + domain_ou: str | None = ... + """ + The Active Directory organizational unit for your DB instance to join. + + Constraints: + + - Must be in the distinguished name format. + + Example: + `OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain` + """ + domain_auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + joining the domain. + + Example: + `arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456` + """ + domain_dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of your primary and secondary Active Directory + domain controllers. + + Constraints: + + - Two IP addresses must be provided. If there isn't a secondary domain + controller, use the IP address of the primary domain controller for + both entries in the list. + + Example: `123.124.125.126,234.235.236.237` + """ + disable_domain: bool | None = ... + """ + Specifies whether to remove the DB instance from the Active Directory + domain. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the DB instance to snapshots of + the DB instance. By default, tags aren't copied. + + This setting doesn't apply to Amazon Aurora DB instances. Copying tags + to snapshots is managed by the DB cluster. Setting this value for an + Aurora DB instance has no effect on the DB cluster setting. For more + information, see `ModifyDBCluster`. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB instance. To disable collection of + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, set `MonitoringInterval` to a value + other than `0`. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + db_port_number: int | None = ... + """ + The port number on which the database accepts connections. + + The value of the `DBPortNumber` parameter must not match any of the port + values specified for options in the option group for the DB instance. + + If you change the `DBPortNumber` value, your database restarts + regardless of the value of the `ApplyImmediately` parameter. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: `1150-65535` + + Default: + + - Amazon Aurora - `3306` + + - RDS for Db2 - `50000` + + - RDS for MariaDB - `3306` + + - RDS for Microsoft SQL Server - `1433` + + - RDS for MySQL - `3306` + + - RDS for Oracle - `1521` + + - RDS for PostgreSQL - `5432` + + Constraints: + + - For RDS for Microsoft SQL Server, the value can't be `1234`, `1434`, + `3260`, `3343`, `3389`, `47001`, or `49152-49156`. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB instance is publicly accessible and you connect from outside + of the DB instance's virtual private cloud (VPC), its Domain Name + System (DNS) endpoint resolves to the public IP address. When you + connect from within the same VPC as the DB instance, the endpoint + resolves to the private IP address. Access to the DB instance is + ultimately controlled by the security group it uses. That public access + isn't permitted if the security group assigned to the DB instance + doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + `PubliclyAccessible` only applies to DB instances in a VPC. The DB + instance must be part of a public subnet and `PubliclyAccessible` must + be enabled for it to be publicly accessible. + + Changes to the `PubliclyAccessible` parameter are applied immediately + regardless of the value of the `ApplyImmediately` parameter. + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send enhanced monitoring + metrics to Amazon CloudWatch Logs. For example, + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, see [To create an IAM role for Amazon RDS Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole) + in the *Amazon RDS User Guide.* + + If `MonitoringInterval` is set to a value other than `0`, supply a + `MonitoringRoleArn` value. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + This setting doesn't apply to RDS Custom DB instances. + """ + promotion_tier: int | None = ... + """ + The order of priority in which an Aurora Replica is promoted to the + primary instance after a failure of the existing primary instance. For + more information, see [Fault Tolerance for an Aurora DB + Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Aurora.Managing.FaultTolerance) + in the *Amazon Aurora User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + + Default: `1` + + Valid Values: `0 - 15` + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + This setting doesn't apply to Amazon Aurora. Mapping Amazon Web + Services IAM accounts to database accounts is managed by the DB cluster. + + For more information about IAM database authentication, see [IAM + Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide.* + + This setting doesn't apply to RDS Custom DB instances. + """ + database_insights_mode: str | None = ... + """ + Specifies the mode of Database Insights to enable for the DB instance. + + Note: + Aurora DB instances inherit this value from the DB cluster, so you + can't change this value. + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to enable Performance Insights for the DB instance. + + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + + This setting doesn't apply to RDS Custom DB instances. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + This setting doesn't apply to RDS Custom DB instances. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS returns an error. + """ + cloudwatch_logs_export_configuration: CloudwatchLogsExportConfiguration | None = ... + """ + The log types to be enabled for export to CloudWatch Logs for a specific + DB instance. + + A change to the `CloudwatchLogsExportConfiguration` parameter is always + applied to the DB instance immediately. Therefore, the + `ApplyImmediately` parameter has no effect. + + This setting doesn't apply to RDS Custom DB instances. + + The following values are valid for each DB engine: + + - Aurora MySQL - + `audit | error | general | slowquery | iam-db-auth-error` + + - Aurora PostgreSQL - `postgresql | iam-db-auth-error` + + - RDS for MySQL - `error | general | slowquery | iam-db-auth-error` + + - RDS for PostgreSQL - `postgresql | upgrade | iam-db-auth-error` + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + + This setting doesn't apply to RDS Custom DB instances. + """ + use_default_processor_features: bool | None = ... + """ + Specifies whether the DB instance class of the DB instance uses its + default processor features. + + This setting doesn't apply to RDS Custom DB instances. + """ + deletion_protection: bool | None = ... + """ + Specifies whether the DB instance has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + + This setting doesn't apply to Amazon Aurora DB instances. You can + enable or disable deletion protection for the DB cluster. For more + information, see `ModifyDBCluster`. DB instances in a DB cluster can be + deleted even when deletion protection is enabled for the DB cluster. + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + + For more information about this setting, including limitations that + apply to it, see [Managing capacity automatically with Amazon RDS + storage + autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + certificate_rotation_restart: bool | None = ... + """ + Specifies whether the DB instance is restarted when you rotate your + SSL/TLS certificate. + + By default, the DB instance is restarted when you rotate your SSL/TLS + certificate. The certificate is not updated until the DB instance is + restarted. + + Warning: + Set this parameter only if you are *not* using SSL/TLS to connect to the + DB instance. + + If you are using SSL/TLS to connect to the DB instance, follow the + appropriate instructions for your DB engine to rotate your SSL/TLS + certificate: + + - For more information about rotating your SSL/TLS certificate for RDS + DB engines, see [Rotating Your SSL/TLS + Certificate.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon RDS User Guide.* + + - For more information about rotating your SSL/TLS certificate for + Aurora DB engines, see [Rotating Your SSL/TLS + Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) + in the *Amazon Aurora User Guide*. + + This setting doesn't apply to RDS Custom DB instances. + """ + replica_mode: str | None = ... + """ + The open mode of a replica database. + + This parameter is only supported for Db2 DB instances and Oracle DB + instances. + + Db2 + + : Standby DB replicas are included in Db2 Advanced Edition (AE), Db2 + Community Edition (CE), and Db2 Standard Edition (SE). The main use + case for standby replicas is cross-Region disaster recovery. Because + it doesn't accept user connections, a standby replica can't serve a + read-only workload. + + You can create a combination of standby and read-only DB replicas for + the same primary DB instance. For more information, see [Working with + replicas for Amazon RDS for + Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-replication.html) + in the *Amazon RDS User Guide*. + + To create standby DB replicas for RDS for Db2, set this parameter to + `mounted`. + + Oracle + + : Mounted DB replicas are included in Oracle Database Enterprise + Edition. The main use case for mounted replicas is cross-Region + disaster recovery. The primary database doesn't use Active Data Guard + to transmit information to the mounted replica. Because it doesn't + accept user connections, a mounted replica can't serve a read-only + workload. + + You can create a combination of mounted and read-only DB replicas for + the same primary DB instance. For more information, see [Working with + read replicas for Amazon RDS for + Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) + in the *Amazon RDS User Guide*. + + For RDS Custom, you must specify this parameter and set it to + `mounted`. The value won't be set by default. After replica creation, + you can manage the open mode manually. + """ + automation_mode: str | None = ... + """ + The automation mode of the RDS Custom DB instance. If `full`, the DB + instance automates monitoring and instance recovery. If `all paused`, + the instance pauses automation for the duration set by + `ResumeFullAutomationModeMinutes`. + """ + resume_full_automation_mode_minutes: int | None = ... + """ + The number of minutes to pause the automation. When the time period + ends, RDS Custom resumes full automation. + + Default: `60` + + Constraints: + + - Must be at least 60. + + - Must be no more than 1,440. + """ + enable_customer_owned_ip: bool | None = ... + """ + Specifies whether to enable a customer-owned IP address (CoIP) for an + RDS on Outposts DB instance. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the DB instance from + outside of its virtual private cloud (VPC) on your local network. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + + Valid Values: `IPV4 | DUAL` + """ + aws_backup_recovery_point_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the recovery point in Amazon Web + Services Backup. + + This setting doesn't apply to RDS Custom DB instances. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + If the DB instance doesn't manage the master user password with Amazon + Web Services Secrets Manager, you can turn on this management. In this + case, you can't specify `MasterUserPassword`. + + If the DB instance already manages the master user password with Amazon + Web Services Secrets Manager, and you specify that the master user + password is not managed with Amazon Web Services Secrets Manager, then + you must specify `MasterUserPassword`. In this case, Amazon RDS deletes + the secret and uses the new password for the master user specified by + `MasterUserPassword`. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + + - Can't specify for RDS for Oracle CDB instances in the multi-tenant + configuration. Use `ModifyTenantDatabase` instead. + + - Can't specify the parameters `ManageMasterUserPassword` and + `MultiTenant` in the same operation. + """ + rotate_master_user_password: bool | None = ... + """ + Specifies whether to rotate the secret managed by Amazon Web Services + Secrets Manager for the master user password. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. The secret + value contains the updated password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - You must apply the change immediately when rotating the master user + password. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if both of the following conditions are met: + + - The DB instance doesn't manage the master user password in Amazon Web + Services Secrets Manager. + + If the DB instance already manages the master user password in Amazon + Web Services Secrets Manager, you can't change the KMS key used to + encrypt the secret. + + - You are turning on `ManageMasterUserPassword` to manage the master + user password in Amazon Web Services Secrets Manager. + + If you are turning on `ManageMasterUserPassword` and don't specify + `MasterUserSecretKmsKeyId`, then the `aws/secretsmanager` KMS key is + used to encrypt the secret. If the secret is in a different Amazon Web + Services account, then you can't use the `aws/secretsmanager` KMS key + to encrypt the secret, and you must use a customer managed KMS key. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + multi_tenant: bool | None = ... + """ + Specifies whether the to convert your DB instance from the single-tenant + configuration to the multi-tenant configuration. This parameter is + supported only for RDS for Oracle CDB instances. + + During the conversion, RDS creates an initial tenant database and + associates the DB name, master user name, character set, and national + character set metadata with this database. The tags associated with the + instance also propagate to the initial tenant database. You can add more + tenant databases to your DB instance by using the `CreateTenantDatabase` + operation. + + Warning: + The conversion to the multi-tenant configuration is permanent and + irreversible, so you can't later convert back to the single-tenant + configuration. When you specify this parameter, you must also specify + `ApplyImmediately`. + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled. + """ + engine: str | None = ... + """ + The target Oracle DB engine when you convert a non-CDB to a CDB. This + intermediate step is necessary to upgrade an Oracle Database 19c non-CDB + to an Oracle Database 21c CDB. + + Note the following requirements: + + - Make sure that you specify `oracle-ee-cdb` or `oracle-se2-cdb`. + + - Make sure that your DB engine runs Oracle Database 19c with an April + 2021 or later RU. + + Note the following limitations: + + - You can't convert a CDB to a non-CDB. + + - You can't convert a replica database. + + - You can't convert a non-CDB to a CDB and upgrade the engine version + in the same command. + + - You can't convert the existing custom parameter or option group when + it has options or parameters that are permanent or persistent. In this + situation, the DB instance reverts to the default option and parameter + group. To avoid reverting to the default, specify a new parameter + group with `--db-parameter-group-name` and a new option group with + `--option-group-name`. + """ + additional_storage_volumes: list[ModifyAdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to modify or delete for the DB + instance. You can create up to 3 additional storage volumes. Additional + storage volumes are supported for RDS for Oracle and RDS for SQL Server + DB instances only. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation for the DB + instance to use. You can specify the identifier, which has the prefix + `dbcr-`, or the reservation name. After the modification completes, the + DB instance uses reserved capacity from this reservation. + + You can't change the DB capacity reservation of a DB instance on its + own. A request that changes the reservation must also change the DB + instance class, the Multi-AZ setting, the license model, or the engine. + Therefore, this request always changes the configuration of the DB + instance. + + If the DB instance already uses the reservation that you specify, this + requirement doesn't apply. You can then change another setting, such as + the Multi-AZ setting, and keep the reservation. + + For a DB instance that uses no reservation, change `DBInstanceClass` to + the DB instance class that the reservation reserves. A reservation + reserves capacity for one DB instance class, so that change moves the DB + instance onto the reserved capacity. That change also resizes the DB + instance, which interrupts it. + + If the DB instance already runs the DB instance class that the + reservation reserves, change `MultiAZ` or `LicenseModel` instead. Only + RDS for Oracle and RDS for Microsoft SQL Server accept a change of + license model, so `MultiAZ` is the remaining choice for every other + engine. + + Warning: + If you don't specify this parameter, Amazon RDS moves the DB instance + to unreserved capacity, and it releases the reserved capacity that the + DB instance holds. A request that changes the DB instance class, the + Multi-AZ setting, the license model, or the engine moves the DB instance + to different hardware, and Amazon RDS places the DB instance on + unreserved capacity. Therefore, to keep the DB instance on reserved + capacity, specify this parameter in every request that changes any of + those settings. + + The DB instance keeps its current reservation until Amazon RDS applies + the modification. Until then, the `DBCapacityReservationIdentifier` + field of the DB instance still reports that reservation, and + `PendingModifiedValues` reports no reservation. Amazon RDS releases the + reserved capacity when it moves the DB instance. + + Constraints: + + - If the request changes which DB capacity reservation the DB instance + uses, it must also set a new value for `DBInstanceClass`, `MultiAZ`, + `LicenseModel`, or `Engine`. The new value must differ from the + current value. The only engine change that `ModifyDBInstance` supports + is a conversion to the CDB architecture. Repeating the current value + doesn't satisfy this requirement. This requirement applies both when + the DB instance uses no reservation, and when it moves to a different + reservation. + + - The reservation must reserve capacity for the DB instance class that + the DB instance uses after the modification, and for the database + engine of the DB instance. Therefore, when the request changes + `DBInstanceClass`, the reservation reserves capacity for a DB instance + class that the DB instance doesn't use today. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses after the modification. + + - The reservation must cover the Availability Zone of the DB instance, + except when the request changes the DB instance from Multi-AZ to + Single-AZ. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. + + - If the DB instance is already Multi-AZ, the reservation must cover + both of its Availability Zones. If the request converts the DB + instance to Multi-AZ, the reservation must cover the current + Availability Zone of the DB instance, and Amazon RDS chooses the + second Availability Zone from the reservation. + + - If the reservation reserves capacity for a specific license model, the + license model of the DB instance must match it. Amazon RDS checks the + license model only when the request specifies `LicenseModel`. + + - You can't specify this parameter together with a change to + `DBSubnetGroupName`. + + - You can't specify this parameter together with a change to both + `DBInstanceClass` and `LicenseModel`. Submit those changes as two + separate requests. + + - Can't be specified together with a change to `DBInstanceClass` when + the request also changes the DB instance from Multi-AZ to Single-AZ. + + - When the request changes the DB instance from Multi-AZ to Single-AZ, + the reservation must cover either the primary or the secondary + Availability Zone of the DB instance. Amazon RDS keeps the DB instance + in its primary Availability Zone, and it removes the standby replica. + Therefore, the primary Availability Zone keeps its unit of reserved + capacity, and the secondary Availability Zone releases its unit. + + - Can't be specified together with `LicenseModel` while a modification + of the DB instance class or the Multi-AZ setting is pending. + + - Can't be specified together with `DBInstanceClass` or `MultiAZ` while + a modification of the license model is pending. + + - When a modification is already pending, the reservation must reserve + capacity for the DB instance as it will be after both the pending + modification and the requested modification complete. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + + - Isn't supported for an RDS on Outposts DB instance. + + - If the reservation expires within one week, you must also enable + `ApplyImmediately`. Otherwise, choose a reservation with a later end + date. + + - Amazon RDS holds a unit of reserved capacity for the DB instance when + it accepts the request, even when the modification waits for the + maintenance window. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + master_user_authentication_type: str | None = ... + """ + Specifies the authentication type for the master user. With IAM master + user authentication, you can change the master DB user to use IAM + database authentication. + + You can specify one of the following values: + + - `password` - Use standard database authentication with a password. + + - `iam-db-auth` - Use IAM database authentication for the master user. + + This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL + engines. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB instance. + + This setting applies only to RDS for MySQL and RDS for PostgreSQL. For + Amazon Aurora DB instances, the engine lifecycle support is managed by + the DB cluster. + + You can use this setting to enroll your DB instance into Amazon RDS + Extended Support or to opt out. With RDS Extended Support, you can run + the selected major engine version on your DB instance past the end of + standard support for that engine version. For more information, see + [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide*. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + This setting doesn't apply to RDS Custom DB instances. + """ + +@dataclass(kw_only=True) +class ModifyDBInstanceOutput(_SerdeShape): + """Dataclass for ModifyDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBParameterGroupInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group. + + Constraints: + + - If supplied, must match the name of an existing `DBParameterGroup`. + """ + parameters: list[Parameter] | None = ... + """ + An array of parameter names, values, and the application methods for the + parameter update. At least one parameter name, value, and application + method must be supplied; later arguments are optional. A maximum of 20 + parameters can be modified in a single request. + + Valid Values (for the application method): `immediate | pending-reboot` + + You can use the `immediate` value with dynamic parameters only. You can + use the `pending-reboot` value for both dynamic and static parameters. + + When the application method is `immediate`, changes to dynamic + parameters are applied immediately to the DB instances associated with + the parameter group. + + When the application method is `pending-reboot`, changes to dynamic and + static parameters are applied after a reboot without failover to the DB + instances associated with the parameter group. + + Note: + You can't use `pending-reboot` with dynamic parameters on RDS for SQL + Server DB instances. Use `immediate`. + + For more information on modifying DB parameters, see [Working with DB + parameter + groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) + in the *Amazon RDS User Guide*. + """ + +@dataclass(kw_only=True) +class ModifyDBParameterGroupOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `ModifyDBParameterGroup` or `ResetDBParameterGroup` operation. + """ + + db_parameter_group_name: str | None = ... + """The name of the DB parameter group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBProxyEndpointInput(_SerdeShape): + """Dataclass for ModifyDBProxyEndpointInput structure.""" + + db_proxy_endpoint_name: str | None = ... + """ + The name of the DB proxy sociated with the DB proxy endpoint that you + want to modify. + """ + new_db_proxy_endpoint_name: str | None = ... + """ + The new identifier for the `DBProxyEndpoint`. An identifier must begin + with a letter and must contain only ASCII letters, digits, and hyphens; + it can't end with a hyphen or contain two consecutive hyphens. + """ + vpc_security_group_ids: list[str] | None = ... + """ + The VPC security group IDs for the DB proxy endpoint. When the DB proxy + endpoint uses a different VPC than the original proxy, you also specify + a different set of security group IDs than for the original proxy. + """ + +@dataclass(kw_only=True) +class ModifyDBProxyEndpointOutput(_SerdeShape): + """Dataclass for ModifyDBProxyEndpointOutput structure.""" + + db_proxy_endpoint: DBProxyEndpoint | None = ... + """ + The `DBProxyEndpoint` object representing the new settings for the DB + proxy endpoint. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBProxyInput(_SerdeShape): + """Dataclass for ModifyDBProxyInput structure.""" + + db_proxy_name: str | None = ... + """The identifier for the `DBProxy` to modify.""" + new_db_proxy_name: str | None = ... + """ + The new identifier for the `DBProxy`. An identifier must begin with a + letter and must contain only ASCII letters, digits, and hyphens; it + can't end with a hyphen or contain two consecutive hyphens. + """ + default_auth_scheme: str | None = ... + """ + The default authentication scheme that the proxy uses for client + connections to the proxy and connections from the proxy to the + underlying database. Valid values are `NONE` and `IAM_AUTH`. When set to + `IAM_AUTH`, the proxy uses end-to-end IAM authentication to connect to + the database. + """ + auth: list[UserAuthConfig] | None = ... + """The new authentication settings for the `DBProxy`.""" + require_tls: bool | None = ... + """ + Whether Transport Layer Security (TLS) encryption is required for + connections to the proxy. By enabling this setting, you can enforce + encrypted TLS connections to the proxy, even if the associated database + doesn't use TLS. + """ + idle_client_timeout: int | None = ... + """ + The number of seconds that a connection to the proxy can be inactive + before the proxy disconnects it. You can set this value higher or lower + than the connection timeout limit for the associated database. + """ + debug_logging: bool | None = ... + """ + Specifies whether the proxy logs detailed connection and query + information. When you enable `DebugLogging`, the proxy captures + connection details and connection pool behavior from your queries. Debug + logging increases CloudWatch costs and can impact proxy performance. + Enable this option only when you need to troubleshoot connection or + performance issues. + """ + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role that the proxy uses to + access secrets in Amazon Web Services Secrets Manager. + """ + security_groups: list[str] | None = ... + """The new list of security groups for the `DBProxy`.""" + +@dataclass(kw_only=True) +class ModifyDBProxyOutput(_SerdeShape): + """Dataclass for ModifyDBProxyOutput structure.""" + + db_proxy: DBProxy | None = ... + """The `DBProxy` object representing the new settings for the proxy.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBProxyTargetGroupInput(_SerdeShape): + """Dataclass for ModifyDBProxyTargetGroupInput structure.""" + + target_group_name: str | None = ... + """The name of the target group to modify.""" + db_proxy_name: str | None = ... + """The name of the proxy.""" + connection_pool_config: ConnectionPoolConfiguration | None = ... + """ + The settings that determine the size and behavior of the connection pool + for the target group. + """ + new_name: str | None = ... + """ + The new name for the modified `DBProxyTarget`. An identifier must begin + with a letter and must contain only ASCII letters, digits, and hyphens; + it can't end with a hyphen or contain two consecutive hyphens. + + You can't rename the `default` target group. + """ + +@dataclass(kw_only=True) +class ModifyDBProxyTargetGroupOutput(_SerdeShape): + """Dataclass for ModifyDBProxyTargetGroupOutput structure.""" + + db_proxy_target_group: DBProxyTargetGroup | None = ... + """The settings of the modified `DBProxyTarget`.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBRecommendationInput(_SerdeShape): + """Dataclass for ModifyDBRecommendationInput structure.""" + + recommendation_id: str | None = ... + """The identifier of the recommendation to update.""" + locale: str | None = ... + """The language of the modified recommendation.""" + status: str | None = ... + """ + The recommendation status to update. + + Valid values: + + - active + + - dismissed + """ + recommended_action_updates: list[RecommendedActionUpdate] | None = ... + """ + The list of recommended action status to update. You can update multiple + recommended actions at one time. + """ + +@dataclass(kw_only=True) +class ModifyDBRecommendationOutput(_SerdeShape): + """Dataclass for ModifyDBRecommendationOutput structure.""" + + db_recommendation: DBRecommendation | None = ... + """ + The recommendation for your DB instances, DB clusters, and DB parameter + groups. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBShardGroupInput(_SerdeShape): + """Dataclass for ModifyDBShardGroupInput structure.""" + + db_shard_group_identifier: str | None = ... + """The name of the DB shard group to modify.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + +@dataclass(kw_only=True) +class ModifyDBShardGroupOutput(_SerdeShape): + """Contains the details for an Amazon RDS DB shard group.""" + + db_shard_group_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + shard group. + """ + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + status: str | None = ... + """The status of the DB shard group.""" + publicly_accessible: bool | None = ... + """ + Indicates whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access isn't permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + For more information, see CreateDBShardGroup. + + This setting is only for Aurora Limitless Database. + """ + endpoint: str | None = ... + """The connection endpoint for the DB shard group.""" + db_shard_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB shard group.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBSnapshotAttributeInput(_SerdeShape): + """""" + + db_snapshot_identifier: str | None = ... + """The identifier for the DB snapshot to modify the attributes for.""" + attribute_name: str | None = ... + """ + The name of the DB snapshot attribute to modify. + + To manage authorization for other Amazon Web Services accounts to copy + or restore a manual DB snapshot, set this value to `restore`. + + Note: + To view the list of attributes available to modify, use the + DescribeDBSnapshotAttributes API operation. + """ + values_to_add: list[str] | None = ... + """ + A list of DB snapshot attributes to add to the attribute specified by + `AttributeName`. + + To authorize other Amazon Web Services accounts to copy or restore a + manual snapshot, set this list to include one or more Amazon Web + Services account IDs, or `all` to make the manual DB snapshot restorable + by any Amazon Web Services account. Do not add the `all` value for any + manual DB snapshots that contain private information that you don't + want available to all Amazon Web Services accounts. + """ + values_to_remove: list[str] | None = ... + """ + A list of DB snapshot attributes to remove from the attribute specified + by `AttributeName`. + + To remove authorization for other Amazon Web Services accounts to copy + or restore a manual snapshot, set this list to include one or more + Amazon Web Services account identifiers, or `all` to remove + authorization for any Amazon Web Services account to copy or restore the + DB snapshot. If you specify `all`, an Amazon Web Services account whose + account ID is explicitly added to the `restore` attribute can still copy + or restore the manual DB snapshot. + """ + +@dataclass(kw_only=True) +class ModifyDBSnapshotAttributeOutput(_SerdeShape): + """Dataclass for ModifyDBSnapshotAttributeOutput structure.""" + + db_snapshot_attributes_result: DBSnapshotAttributesResult | None = ... + """ + Contains the results of a successful call to the + `DescribeDBSnapshotAttributes` API action. + + Manual DB snapshot attributes are used to authorize other Amazon Web + Services accounts to copy or restore a manual DB snapshot. For more + information, see the `ModifyDBSnapshotAttribute` API action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBSnapshotInput(_SerdeShape): + """Dataclass for ModifyDBSnapshotInput structure.""" + + db_snapshot_identifier: str | None = ... + """The identifier of the DB snapshot to modify.""" + engine_version: str | None = ... + """ + The engine version to upgrade the DB snapshot to. + + The following are the database engines and engine versions that are + available when you upgrade a DB snapshot. + + **MariaDB** + + For the list of engine versions that are available for upgrading a DB + snapshot, see [Upgrading a MariaDB DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mariadb-upgrade-snapshot.html) + in the *Amazon RDS User Guide.* + + **MySQL** + + For the list of engine versions that are available for upgrading a DB + snapshot, see [Upgrading a MySQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-upgrade-snapshot.html) + in the *Amazon RDS User Guide.* + + **Oracle** + + - `21.0.0.0.ru-2025-04.rur-2025-04.r1` (supported for + 21.0.0.0.ru-2022-01.rur-2022-01.r1, + 21.0.0.0.ru-2022-04.rur-2022-04.r1, + 21.0.0.0.ru-2022-07.rur-2022-07.r1, + 21.0.0.0.ru-2022-10.rur-2022-10.r1, 21.0.0.0.ru-2023-01.rur-2023-01.r1 + and 21.0.0.0.ru-2023-01.rur-2023-01.r2 DB snapshots) + + - `19.0.0.0.ru-2025-04.rur-2025-04.r1` (supported for + 19.0.0.0.ru-2019-07.rur-2019-07.r1, 19.0.0.0.ru-2019-10.rur-2019-10.r1 + and 0.0.0.ru-2020-01.rur-2020-01.r1 DB snapshots) + + - `19.0.0.0.ru-2022-01.rur-2022-01.r1` (supported for 12.2.0.1 DB + snapshots) + + - `19.0.0.0.ru-2022-07.rur-2022-07.r1` (supported for 12.1.0.2 DB + snapshots) + + - `12.1.0.2.v8` (supported for 12.1.0.1 DB snapshots) + + - `11.2.0.4.v12` (supported for 11.2.0.2 DB snapshots) + + - `11.2.0.4.v11` (supported for 11.2.0.3 DB snapshots) + + **PostgreSQL** + + For the list of engine versions that are available for upgrading a DB + snapshot, see [Upgrading a PostgreSQL DB snapshot engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBSnapshot.PostgreSQL.html) + in the *Amazon RDS User Guide.* + """ + option_group_name: str | None = ... + """ + The option group to identify with the upgraded DB snapshot. + + You can specify this parameter when you upgrade an Oracle DB snapshot. + The same option group considerations apply when upgrading a DB snapshot + as when upgrading a DB instance. For more information, see [Option group + considerations](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Oracle.html#USER_UpgradeDBInstance.Oracle.OGPG.OG) + in the *Amazon RDS User Guide.* + """ + +@dataclass(kw_only=True) +class ModifyDBSnapshotOutput(_SerdeShape): + """Dataclass for ModifyDBSnapshotOutput structure.""" + + db_snapshot: DBSnapshot | None = ... + """ + Contains the details of an Amazon RDS DB snapshot. + + This data type is used as a response element in the + `DescribeDBSnapshots` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyDBSubnetGroupInput(_SerdeShape): + """""" + + db_subnet_group_name: str | None = ... + """ + The name for the DB subnet group. This value is stored as a lowercase + string. You can't modify the default subnet group. + + Constraints: Must match the name of an existing DBSubnetGroup. Must not + be default. + + Example: `mydbsubnetgroup` + """ + db_subnet_group_description: str | None = ... + """The description for the DB subnet group.""" + subnet_ids: list[str] | None = ... + """The EC2 subnet IDs for the DB subnet group.""" + +@dataclass(kw_only=True) +class ModifyDBSubnetGroupOutput(_SerdeShape): + """Dataclass for ModifyDBSubnetGroupOutput structure.""" + + db_subnet_group: DBSubnetGroup | None = ... + """ + Contains the details of an Amazon RDS DB subnet group. + + This data type is used as a response element in the + `DescribeDBSubnetGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyEventSubscriptionInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """The name of the RDS event notification subscription.""" + sns_topic_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the SNS topic created for event + notification. The ARN is created by Amazon SNS when you create a topic + and subscribe to it. + """ + source_type: str | None = ... + """ + The type of source that is generating the events. For example, if you + want to be notified of events generated by a DB instance, you would set + this parameter to db-instance. For RDS Proxy events, specify `db-proxy`. + If this value isn't specified, all events are returned. + + Valid + Values:` db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment ` + """ + event_categories: list[str] | None = ... + """ + A list of event categories for a source type (`SourceType`) that you + want to subscribe to. You can see a list of the categories for a given + source type in + [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) + in the *Amazon RDS User Guide* or by using the `DescribeEventCategories` + operation. + """ + enabled: bool | None = ... + """Specifies whether to activate the subscription.""" + +@dataclass(kw_only=True) +class ModifyEventSubscriptionOutput(_SerdeShape): + """Dataclass for ModifyEventSubscriptionOutput structure.""" + + event_subscription: EventSubscription | None = ... + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyGlobalClusterInput(_SerdeShape): + """Dataclass for ModifyGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The cluster identifier for the global cluster to modify. This parameter + isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing global database cluster. + """ + new_global_cluster_identifier: str | None = ... + """ + The new cluster identifier for the global database cluster. This value + is stored as a lowercase string. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - The first character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster2` + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the global database + cluster. The global database cluster can't be deleted when deletion + protection is enabled. + """ + engine_version: str | None = ... + """ + The version number of the database engine to which you want to upgrade. + + To list all of the available engine versions for `aurora-mysql` (for + MySQL-based Aurora global databases), use the following command: + + `` aws rds describe-db-engine-versions --engine aurora-mysql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]' `` + + To list all of the available engine versions for `aurora-postgresql` + (for PostgreSQL-based Aurora global databases), use the following + command: + + `` aws rds describe-db-engine-versions --engine aurora-postgresql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]' `` + """ + allow_major_version_upgrade: bool | None = ... + """ + Specifies whether to allow major version upgrades. + + Constraints: Must be enabled if you specify a value for the + `EngineVersion` parameter that's a different major version than the + global cluster's current version. + + If you upgrade the major version of a global database, the cluster and + DB instance parameter groups are set to the default parameter groups for + the new version. Apply any custom parameter groups after completing the + upgrade. + """ + +@dataclass(kw_only=True) +class ModifyGlobalClusterOutput(_SerdeShape): + """Dataclass for ModifyGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyIntegrationInput(_SerdeShape): + """Dataclass for ModifyIntegrationInput structure.""" + + integration_identifier: str | None = ... + """The unique identifier of the integration to modify.""" + integration_name: str | None = ... + """A new name for the integration.""" + data_filter: str | None = ... + """ + A new data filter for the integration. For more information, see [Data + filtering for Aurora zero-ETL integrations with Amazon + Redshift](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Zero_ETL_Filtering.html) + or [Data filtering for Amazon RDS zero-ETL integrations with Amazon + Redshift](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/zero-etl.filtering.html). + """ + description: str | None = ... + """A new description for the integration.""" + +@dataclass(kw_only=True) +class ModifyIntegrationOutput(_SerdeShape): + """A zero-ETL integration with Amazon Redshift.""" + + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the database used as the source for + replication. + """ + target_arn: str | None = ... + """ + The ARN of the Redshift data warehouse used as the target for + replication. + """ + integration_name: str | None = ... + """The name of the integration.""" + integration_arn: str | None = ... + """The ARN of the integration.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services Key Management System (Amazon Web Services KMS) + key identifier for the key used to to encrypt the integration. + """ + additional_encryption_context: dict[str, str] | None = ... + """ + The encryption context for the integration. For more information, see + [Encryption + context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + status: str | None = ... + """The current status of the integration.""" + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + data_filter: str | None = ... + """ + Data filters for the integration. These filters determine which tables + from the source database are sent to the target Amazon Redshift data + warehouse. + """ + description: str | None = ... + """A description of the integration.""" + create_time: datetime | None = ... + """ + The time when the integration was created, in Universal Coordinated Time + (UTC). + """ + errors: list[IntegrationError] | None = ... + """Any errors associated with the integration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyOptionGroupInput(_SerdeShape): + """""" + + option_group_name: str | None = ... + """ + The name of the option group to be modified. + + Permanent options, such as the TDE option for Oracle Advanced Security + TDE, can't be removed from an option group, and that option group + can't be removed from a DB instance once it is associated with a DB + instance + """ + options_to_include: list[OptionConfiguration] | None = ... + """ + Options in this list are added to the option group or, if already + present, the specified configuration is used to update the existing + configuration. + """ + options_to_remove: list[str] | None = ... + """Options in this list are removed from the option group.""" + apply_immediately: bool | None = ... + """ + Specifies whether to apply the change immediately or during the next + maintenance window for each instance associated with the option group. + """ + +@dataclass(kw_only=True) +class ModifyOptionGroupOutput(_SerdeShape): + """Dataclass for ModifyOptionGroupOutput structure.""" + + option_group: OptionGroup | None = ... + """""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ModifyTenantDatabaseInput(_SerdeShape): + """Dataclass for ModifyTenantDatabaseInput structure.""" + + db_instance_identifier: str | None = ... + """ + The identifier of the DB instance that contains the tenant database that + you are modifying. This parameter isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing DB instance. + """ + tenant_db_name: str | None = ... + """ + The user-supplied name of the tenant database that you want to modify. + This parameter isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing tenant database. + """ + master_user_password: str | None = ... + """ + The new password for the master user of the specified tenant database in + your DB instance. + + Note: + Amazon RDS operations never return the password, so this action provides + a way to regain access to a tenant database user if the password is + lost. This includes restoring privileges that might have been + accidentally revoked. + + Constraints: + + - Can include any printable ASCII character except `/`, `"` (double + quote), `@`, `&` (ampersand), and `'` (single quote). + + Length constraints: + + - Must contain between 8 and 30 characters. + """ + new_tenant_db_name: str | None = ... + """ + The new name of the tenant database when renaming a tenant database. + This parameter isn't case-sensitive. + + Constraints: + + - Can't be the string null or any other reserved word. + + - Can't be longer than 8 characters. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + If the tenant database doesn't manage the master user password with + Amazon Web Services Secrets Manager, you can turn on this management. In + this case, you can't specify `MasterUserPassword`. + + If the tenant database already manages the master user password with + Amazon Web Services Secrets Manager, and you specify that the master + user password is not managed with Amazon Web Services Secrets Manager, + then you must specify `MasterUserPassword`. In this case, Amazon RDS + deletes the secret and uses the new password for the master user + specified by `MasterUserPassword`. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + rotate_master_user_password: bool | None = ... + """ + Specifies whether to rotate the secret managed by Amazon Web Services + Secrets Manager for the master user password. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. The secret + value contains the updated password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - You must apply the change immediately when rotating the master user + password. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if both of the following conditions are met: + + - The tenant database doesn't manage the master user password in Amazon + Web Services Secrets Manager. + + If the tenant database already manages the master user password in + Amazon Web Services Secrets Manager, you can't change the KMS key + used to encrypt the secret. + + - You're turning on `ManageMasterUserPassword` to manage the master + user password in Amazon Web Services Secrets Manager. + + If you're turning on `ManageMasterUserPassword` and don't specify + `MasterUserSecretKmsKeyId`, then the `aws/secretsmanager` KMS key is + used to encrypt the secret. If the secret is in a different Amazon Web + Services account, then you can't use the `aws/secretsmanager` KMS key + to encrypt the secret, and you must use a self-managed KMS key. + + The Amazon Web Services KMS key identifier is any of the following: + + - Key ARN + + - Key ID + + - Alias ARN + + - Alias name for the KMS key + + To use a KMS key in a different Amazon Web Services account, specify the + key ARN or alias ARN. + + A default KMS key exists for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + +@dataclass(kw_only=True) +class ModifyTenantDatabaseOutput(_SerdeShape): + """Dataclass for ModifyTenantDatabaseOutput structure.""" + + tenant_database: TenantDatabase | None = ... + """ + A tenant database in the DB instance. This data type is an element in + the response to the `DescribeTenantDatabases` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NetworkTypeNotSupported(ServiceError, _SerdeShape): + """ + The network type is invalid for the DB instance. Valid nework type + values are `IPV4` and `DUAL`. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Option(_SerdeShape): + """The details of an option.""" + + option_name: str | None = ... + """The name of the option.""" + option_description: str | None = ... + """The description of the option.""" + persistent: bool | None = ... + """Indicates whether this option is persistent.""" + permanent: bool | None = ... + """Indicates whether this option is permanent.""" + port: int | None = ... + """If required, the port configured for this option to use.""" + option_version: str | None = ... + """The version of the option.""" + option_settings: list[OptionSetting] | None = ... + """The option settings for this option.""" + db_security_group_memberships: list[DBSecurityGroupMembership] | None = ... + """ + If the option requires access to a port, then this DB security group + allows access to the port. + """ + vpc_security_group_memberships: list[VpcSecurityGroupMembership] | None = ... + """ + If the option requires access to a port, then this VPC security group + allows access to the port. + """ + +@dataclass(kw_only=True) +class OptionConfiguration(_SerdeShape): + """A list of all available options for an option group.""" + + option_name: str | None = ... + """The configuration of options to include in a group.""" + port: int | None = ... + """The optional port for the option.""" + option_version: str | None = ... + """The version for the option.""" + db_security_group_memberships: list[str] | None = ... + """A list of DB security groups used for this option.""" + vpc_security_group_memberships: list[str] | None = ... + """A list of VPC security group names used for this option.""" + option_settings: list[OptionSetting] | None = ... + """The option settings to include in an option group.""" + +@dataclass(kw_only=True) +class OptionGroup(_SerdeShape): + """""" + + option_group_name: str | None = ... + """Specifies the name of the option group.""" + option_group_description: str | None = ... + """Provides a description of the option group.""" + engine_name: str | None = ... + """ + Indicates the name of the engine that this option group can be applied + to. + """ + major_engine_version: str | None = ... + """Indicates the major engine version associated with this option group.""" + options: list[Option] | None = ... + """Indicates what options are available in the option group.""" + allows_vpc_and_non_vpc_instance_memberships: bool | None = ... + """ + Indicates whether this option group can be applied to both VPC and + non-VPC instances. The value `true` indicates the option group can be + applied to both VPC and non-VPC instances. + """ + vpc_id: str | None = ... + """ + If **AllowsVpcAndNonVpcInstanceMemberships** is `false`, this field is + blank. If **AllowsVpcAndNonVpcInstanceMemberships** is `true` and this + field is blank, then this option group can be applied to both VPC and + non-VPC instances. If this field contains a value, then this option + group can only be applied to instances that are in the VPC indicated by + this field. + """ + option_group_arn: str | None = ... + """Specifies the Amazon Resource Name (ARN) for the option group.""" + source_option_group: str | None = ... + """ + Specifies the name of the option group from which this option group is + copied. + """ + source_account_id: str | None = ... + """ + Specifies the Amazon Web Services account ID for the option group from + which this option group is copied. + """ + copy_timestamp: datetime | None = ... + """Indicates when the option group was copied.""" + source_region: str | None = ... + """ + Specifies the Amazon Web Services Region for the option group from which + this option group is copied. + """ + +@dataclass(kw_only=True) +class OptionGroupAlreadyExistsFault(ServiceError, _SerdeShape): + """The option group you are trying to create already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OptionGroupMembership(_SerdeShape): + """ + Provides information on the option groups the DB instance is a member + of. + """ + + option_group_name: str | None = ... + """The name of the option group that the instance belongs to.""" + status: str | None = ... + """ + The status of the DB instance's option group membership. Valid values + are: `in-sync`, `pending-apply`, `pending-removal`, + `pending-maintenance-apply`, `pending-maintenance-removal`, `applying`, + `removing`, and `failed`. + """ + +@dataclass(kw_only=True) +class OptionGroupNotFoundFault(ServiceError, _SerdeShape): + """The specified option group could not be found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OptionGroupOption(_SerdeShape): + """Available option.""" + + name: str | None = ... + """The name of the option.""" + description: str | None = ... + """The description of the option.""" + engine_name: str | None = ... + """The name of the engine that this option can be applied to.""" + major_engine_version: str | None = ... + """Indicates the major engine version that the option is available for.""" + minimum_required_minor_engine_version: str | None = ... + """The minimum required engine version for the option to be applied.""" + port_required: bool | None = ... + """Indicates whether the option requires a port.""" + default_port: int | None = ... + """ + If the option requires a port, specifies the default port for the + option. + """ + options_depended_on: list[str] | None = ... + """The options that are prerequisites for this option.""" + options_conflicts_with: list[str] | None = ... + """The options that conflict with this option.""" + persistent: bool | None = ... + """ + Persistent options can't be removed from an option group while DB + instances are associated with the option group. If you disassociate all + DB instances from the option group, your can remove the persistent + option from the option group. + """ + permanent: bool | None = ... + """ + Permanent options can never be removed from an option group. An option + group containing a permanent option can't be removed from a DB + instance. + """ + requires_auto_minor_engine_version_upgrade: bool | None = ... + """ + If true, you must enable the Auto Minor Version Upgrade setting for your + DB instance before you can use this option. You can enable Auto Minor + Version Upgrade when you first create your DB instance, or by modifying + your DB instance later. + """ + vpc_only: bool | None = ... + """ + If true, you can only use this option with a DB instance that is in a + VPC. + """ + supports_option_version_downgrade: bool | None = ... + """ + If true, you can change the option to an earlier version of the option. + This only applies to options that have different versions available. + """ + option_group_option_settings: list[OptionGroupOptionSetting] | None = ... + """ + The option settings that are available (and the default value) for each + option in an option group. + """ + option_group_option_versions: list[OptionVersion] | None = ... + """The versions that are available for the option.""" + copyable_cross_account: bool | None = ... + """ + Indicates whether the option can be copied across Amazon Web Services + accounts. + """ + copyable_cross_region: bool | None = ... + """ + Indicates whether the option can be copied across Amazon Web Services + Regions. + """ + +@dataclass(kw_only=True) +class OptionGroupOptionSetting(_SerdeShape): + """ + Option group option settings are used to display settings available for + each option with their default values and other information. These + values are used with the DescribeOptionGroupOptions action. + """ + + setting_name: str | None = ... + """The name of the option group option.""" + setting_description: str | None = ... + """The description of the option group option.""" + default_value: str | None = ... + """The default value for the option group option.""" + apply_type: str | None = ... + """The DB engine specific parameter type for the option group option.""" + allowed_values: str | None = ... + """Indicates the acceptable values for the option group option.""" + is_modifiable: bool | None = ... + """ + Indicates whether this option group option can be changed from the + default value. + """ + is_required: bool | None = ... + """ + Indicates whether a value must be specified for this option setting of + the option group option. + """ + minimum_engine_version_per_allowed_value: ( + list[MinimumEngineVersionPerAllowedValue] | None + ) = ... + """ + The minimum DB engine version required for the corresponding allowed + value for this option setting. + """ + +@dataclass(kw_only=True) +class OptionGroupQuotaExceededFault(ServiceError, _SerdeShape): + """ + The quota of 20 option groups was exceeded for this Amazon Web Services + account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class OptionSetting(_SerdeShape): + """ + Option settings are the actual settings being applied or configured for + that option. It is used when you modify an option group or describe + option groups. For example, the NATIVE_NETWORK_ENCRYPTION option has a + setting called SQLNET.ENCRYPTION_SERVER that can have several different + values. + """ + + name: str | None = ... + """The name of the option that has settings that you can set.""" + value: str | None = ... + """The current value of the option setting.""" + default_value: str | None = ... + """The default value of the option setting.""" + description: str | None = ... + """The description of the option setting.""" + apply_type: str | None = ... + """The DB engine specific parameter type.""" + data_type: str | None = ... + """The data type of the option setting.""" + allowed_values: str | None = ... + """The allowed values of the option setting.""" + is_modifiable: bool | None = ... + """Indicates whether the option setting can be modified from the default.""" + is_collection: bool | None = ... + """Indicates whether the option setting is part of a collection.""" + +@dataclass(kw_only=True) +class OptionVersion(_SerdeShape): + """ + The version for an option. Option group option versions are returned by + the `DescribeOptionGroupOptions` action. + """ + + version: str | None = ... + """The version of the option.""" + is_default: bool | None = ... + """Indicates whether the version is the default version of the option.""" + +@dataclass(kw_only=True) +class OrderableDBInstanceOption(_SerdeShape): + """ + Contains a list of available options for a DB instance. + + This data type is used as a response element in the + `DescribeOrderableDBInstanceOptions` action. + """ + + engine: str | None = ... + """The engine type of a DB instance.""" + engine_version: str | None = ... + """The engine version of a DB instance.""" + db_instance_class: str | None = ... + """The DB instance class for a DB instance.""" + license_model: str | None = ... + """The license model for a DB instance.""" + availability_zone_group: str | None = ... + """The Availability Zone group for a DB instance.""" + availability_zones: list[AvailabilityZone] | None = ... + """A list of Availability Zones for a DB instance.""" + multi_az_capable: bool | None = ... + """Indicates whether a DB instance is Multi-AZ capable.""" + read_replica_capable: bool | None = ... + """Indicates whether a DB instance can have a read replica.""" + vpc: bool | None = ... + """Indicates whether a DB instance is in a VPC.""" + supports_storage_encryption: bool | None = ... + """Indicates whether a DB instance supports encrypted storage.""" + storage_type: str | None = ... + """The storage type for a DB instance.""" + supports_iops: bool | None = ... + """Indicates whether a DB instance supports provisioned IOPS.""" + supports_storage_throughput: bool | None = ... + """Indicates whether a DB instance supports storage throughput.""" + supports_enhanced_monitoring: bool | None = ... + """ + Indicates whether a DB instance supports Enhanced Monitoring at + intervals from 1 to 60 seconds. + """ + supports_iam_database_authentication: bool | None = ... + """Indicates whether a DB instance supports IAM database authentication.""" + supports_performance_insights: bool | None = ... + """Indicates whether a DB instance supports Performance Insights.""" + min_storage_size: int | None = ... + """Minimum storage size for a DB instance.""" + max_storage_size: int | None = ... + """Maximum storage size for a DB instance.""" + min_iops_per_db_instance: int | None = ... + """Minimum total provisioned IOPS for a DB instance.""" + max_iops_per_db_instance: int | None = ... + """Maximum total provisioned IOPS for a DB instance.""" + min_iops_per_gib: float | None = ... + """Minimum provisioned IOPS per GiB for a DB instance.""" + max_iops_per_gib: float | None = ... + """Maximum provisioned IOPS per GiB for a DB instance.""" + min_storage_throughput_per_db_instance: int | None = ... + """Minimum storage throughput for a DB instance.""" + max_storage_throughput_per_db_instance: int | None = ... + """Maximum storage throughput for a DB instance.""" + min_storage_throughput_per_iops: float | None = ... + """Minimum storage throughput to provisioned IOPS ratio for a DB instance.""" + max_storage_throughput_per_iops: float | None = ... + """Maximum storage throughput to provisioned IOPS ratio for a DB instance.""" + available_processor_features: list[AvailableProcessorFeature] | None = ... + """ + A list of the available processor features for the DB instance class of + a DB instance. + """ + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes.""" + supports_storage_autoscaling: bool | None = ... + """ + Indicates whether Amazon RDS can automatically scale storage for DB + instances that use the specified DB instance class. + """ + supports_kerberos_authentication: bool | None = ... + """Indicates whether a DB instance supports Kerberos Authentication.""" + outpost_capable: bool | None = ... + """ + Indicates whether a DB instance supports RDS on Outposts. + + For more information about RDS on Outposts, see [Amazon RDS on Amazon + Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide.* + """ + supported_activity_stream_modes: list[str] | None = ... + """ + The list of supported modes for Database Activity Streams. Aurora + PostgreSQL returns the value `[sync, async]`. Aurora MySQL and RDS for + Oracle return `[async]` only. If Database Activity Streams isn't + supported, the return value is an empty list. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with a specific + combination of other DB engine attributes. + """ + supported_network_types: list[str] | None = ... + """ + The network types supported by the DB instance (`IPV4` or `DUAL`). + + A DB instance can support only the IPv4 protocol or the IPv4 and the + IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + """ + supports_clusters: bool | None = ... + """ + Indicates whether DB instances can be configured as a Multi-AZ DB + cluster. + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + supports_dedicated_log_volume: bool | None = ... + """ + Indicates whether a DB instance supports using a dedicated log volume + (DLV). + """ + supports_additional_storage_volumes: bool | None = ... + """ + Indicates whether the DB instance class supports additional storage + volumes. + """ + supports_http_endpoint: bool | None = ... + """Indicates whether a DB instance supports HTTP endpoints.""" + available_additional_storage_volumes_options: ( + list[AvailableAdditionalStorageVolumesOption] | None + ) = ... + """ + The available options for additional storage volumes for the DB instance + class. + """ + +@dataclass(kw_only=True) +class Outpost(_SerdeShape): + """ + A data type that represents an Outpost. + + For more information about RDS on Outposts, see [Amazon RDS on Amazon + Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide.* + """ + + arn: str | None = ... + """The Amazon Resource Name (ARN) of the Outpost.""" + +@dataclass(kw_only=True) +class Parameter(_SerdeShape): + """ + This data type is used as a request parameter in the + `ModifyDBParameterGroup` and `ResetDBParameterGroup` actions. + + This data type is used as a response element in the + `DescribeEngineDefaultParameters` and `DescribeDBParameters` actions. + """ + + parameter_name: str | None = ... + """The name of the parameter.""" + parameter_value: str | None = ... + """The value of the parameter.""" + description: str | None = ... + """Provides a description of the parameter.""" + source: str | None = ... + """The source of the parameter value.""" + apply_type: str | None = ... + """Specifies the engine specific parameters type.""" + data_type: str | None = ... + """Specifies the valid data type for the parameter.""" + allowed_values: str | None = ... + """Specifies the valid range of values for the parameter.""" + is_modifiable: bool | None = ... + """ + Indicates whether (`true`) or not (`false`) the parameter can be + modified. Some parameters have security or operational implications that + prevent them from being changed. + """ + minimum_engine_version: str | None = ... + """The earliest engine version to which the parameter can apply.""" + apply_method: str | None = ... + """Indicates when to apply parameter updates.""" + supported_engine_modes: list[str] | None = ... + """The valid DB engine modes.""" + +@dataclass(kw_only=True) +class PendingCloudwatchLogsExports(_SerdeShape): + """ + A list of the log types whose configuration is still pending. In other + words, these log types are in the process of being activated or + deactivated. + """ + + log_types_to_enable: list[str] | None = ... + """ + Log types that are in the process of being deactivated. After they are + deactivated, these log types aren't exported to CloudWatch Logs. + """ + log_types_to_disable: list[str] | None = ... + """ + Log types that are in the process of being enabled. After they are + enabled, these log types are exported to CloudWatch Logs. + """ + +@dataclass(kw_only=True) +class PendingMaintenanceAction(_SerdeShape): + """Provides information about a pending maintenance action for a resource.""" + + action: str | None = ... + """ + The type of pending maintenance action that is available for the + resource. + + For more information about maintenance actions, see [Maintaining a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html). + + Valid Values: + + - `ca-certificate-rotation` + + - `db-upgrade` + + - `hardware-maintenance` + + - `os-upgrade` + + - `serverless-platform-version-update` + + - `system-update` + + For more information about these actions, see [Maintenance actions for + Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-aurora) + or [Maintenance actions for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-rds). + """ + auto_applied_after_date: datetime | None = ... + """ + The date of the maintenance window when the action is applied. The + maintenance action is applied to the resource during its first + maintenance window after this date. + """ + forced_apply_date: datetime | None = ... + """ + The date when the maintenance action is automatically applied. + + On this date, the maintenance action is applied to the resource as soon + as possible, regardless of the maintenance window for the resource. + There might be a delay of one or more days from this date before the + maintenance action is applied. + """ + opt_in_status: str | None = ... + """ + Indicates the type of opt-in request that has been received for the + resource. + """ + current_apply_date: datetime | None = ... + """ + The effective date when the pending maintenance action is applied to the + resource. This date takes into account opt-in requests received from the + `ApplyPendingMaintenanceAction` API, the `AutoAppliedAfterDate`, and the + `ForcedApplyDate`. This value is blank if an opt-in request has not been + received and nothing has been specified as `AutoAppliedAfterDate` or + `ForcedApplyDate`. + """ + description: str | None = ... + """A description providing more detail about the maintenance action.""" + +@dataclass(kw_only=True) +class PendingModifiedValues(_SerdeShape): + """ + This data type is used as a response element in the `ModifyDBInstance` + operation and contains changes that will be applied during the next + maintenance window. + """ + + db_instance_class: str | None = ... + """The name of the compute and memory capacity class for the DB instance.""" + allocated_storage: int | None = ... + """ + The allocated storage size for the DB instance specified in gibibytes + (GiB). + """ + master_user_password: str | None = ... + """The master credentials for the DB instance.""" + port: int | None = ... + """The port for the DB instance.""" + backup_retention_period: int | None = ... + """The number of days for which automated backups are retained.""" + multi_az: bool | None = ... + """ + Indicates whether the Single-AZ DB instance will change to a Multi-AZ + deployment. + """ + engine_version: str | None = ... + """The database engine version.""" + license_model: str | None = ... + """ + The license model for the DB instance. + + Valid values: `license-included` | `bring-your-own-license` | + `general-public-license` | `bring-your-own-media` + """ + iops: int | None = ... + """The Provisioned IOPS value for the DB instance.""" + storage_throughput: int | None = ... + """The storage throughput of the DB instance.""" + db_instance_identifier: str | None = ... + """The database identifier for the DB instance.""" + storage_type: str | None = ... + """The storage type of the DB instance.""" + ca_certificate_identifier: str | None = ... + """ + The identifier of the CA certificate for the DB instance. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + db_subnet_group_name: str | None = ... + """The DB subnet group for the DB instance.""" + pending_cloudwatch_logs_exports: PendingCloudwatchLogsExports | None = ... + """ + A list of the log types whose configuration is still pending. In other + words, these log types are in the process of being activated or + deactivated. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + """ + automation_mode: str | None = ... + """ + The automation mode of the RDS Custom DB instance: `full` or + `all-paused`. If `full`, the DB instance automates monitoring and + instance recovery. If `all-paused`, the instance pauses automation for + the duration set by `--resume-full-automation-mode-minutes`. + """ + resume_full_automation_mode_time: datetime | None = ... + """ + The number of minutes to pause the automation. When the time period + ends, RDS Custom resumes full automation. The minimum value is 60 + (default). The maximum value is 1,440. + """ + multi_tenant: bool | None = ... + """ + Indicates whether the DB instance will change to the multi-tenant + configuration (TRUE) or the single-tenant configuration (FALSE). + """ + iam_database_authentication_enabled: bool | None = ... + """ + Indicates whether mapping of Amazon Web Services Identity and Access + Management (IAM) accounts to database accounts is enabled. + """ + dedicated_log_volume: bool | None = ... + """ + Indicates whether the DB instance has a dedicated log volume (DLV) + enabled.> + """ + engine: str | None = ... + """The database engine of the DB instance.""" + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + The additional storage volume modifications that are pending for the DB + instance. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier of the DB capacity reservation that the DB instance uses + after a pending modification completes. Amazon RDS returns this value + when a `ModifyDBInstance` request changes the DB capacity reservation, + and the change hasn't been applied yet. + """ + +@dataclass(kw_only=True) +class PerformanceInsightsMetricDimensionGroup(_SerdeShape): + """ + A logical grouping of Performance Insights metrics for a related subject + area. For example, the `db.sql` dimension group consists of the + following dimensions: + + - `db.sql.id` - The hash of a running SQL statement, generated by + Performance Insights. + + - `db.sql.db_id` - Either the SQL ID generated by the database engine, + or a value generated by Performance Insights that begins with `pi-`. + + - `db.sql.statement` - The full text of the SQL statement that is + running, for example, `SELECT * FROM employees`. + + - `db.sql_tokenized.id` - The hash of the SQL digest generated by + Performance Insights. + + Note: + Each response element returns a maximum of 500 bytes. For larger + elements, such as SQL statements, only the first 500 bytes are returned. + """ + + dimensions: list[str] | None = ... + """ + A list of specific dimensions from a dimension group. If this list + isn't included, then all of the dimensions in the group were requested, + or are present in the response. + """ + group: str | None = ... + """The available dimension groups for Performance Insights metric type.""" + limit: int | None = ... + """The maximum number of items to fetch for this dimension group.""" + +@dataclass(kw_only=True) +class PerformanceInsightsMetricQuery(_SerdeShape): + """ + A single Performance Insights metric query to process. You must provide + the metric to the query. If other parameters aren't specified, + Performance Insights returns all data points for the specified metric. + Optionally, you can request the data points to be aggregated by + dimension group (`GroupBy`) and return only those data points that match + your criteria (`Filter`). + + Constraints: + + - Must be a valid Performance Insights query. + """ + + group_by: PerformanceInsightsMetricDimensionGroup | None = ... + """ + A specification for how to aggregate the data points from a query + result. You must specify a valid dimension group. Performance Insights + will return all of the dimensions within that group, unless you provide + the names of specific dimensions within that group. You can also request + that Performance Insights return a limited number of values for a + dimension. + """ + metric: str | None = ... + """ + The name of a Performance Insights metric to be measured. + + Valid Values: + + - `db.load.avg` - A scaled representation of the number of active + sessions for the database engine. + + - `db.sampledload.avg` - The raw number of active sessions for the + database engine. + + - The counter metrics listed in [Performance Insights operating system + counters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.OS) + in the *Amazon Aurora User Guide*. + + If the number of active sessions is less than an internal Performance + Insights threshold, `db.load.avg` and `db.sampledload.avg` are the same + value. If the number of active sessions is greater than the internal + threshold, Performance Insights samples the active sessions, with + `db.load.avg` showing the scaled values, `db.sampledload.avg` showing + the raw values, and `db.sampledload.avg` less than `db.load.avg`. For + most use cases, you can query `db.load.avg` only. + """ + +@dataclass(kw_only=True) +class PerformanceIssueDetails(_SerdeShape): + """Details of the performance issue.""" + + start_time: datetime | None = ... + """The time when the performance issue started.""" + end_time: datetime | None = ... + """The time when the performance issue stopped.""" + metrics: list[Metric] | None = ... + """The metrics that are relevant to the performance issue.""" + analysis: str | None = ... + """ + The analysis of the performance issue. The information might contain + markdown. + """ + +@dataclass(kw_only=True) +class PointInTimeRestoreNotEnabledFault(ServiceError, _SerdeShape): + """ + `SourceDBInstanceIdentifier` refers to a DB instance with + `BackupRetentionPeriod` equal to 0. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ProcessorFeature(_SerdeShape): + """ + Contains the processor features of a DB instance class. + + To specify the number of CPU cores, use the `coreCount` feature name for + the `Name` parameter. To specify the number of threads per core, use the + `threadsPerCore` feature name for the `Name` parameter. + + You can set the processor features of the DB instance class for a DB + instance when you call one of the following actions: + + - `CreateDBInstance` + + - `ModifyDBInstance` + + - `RestoreDBInstanceFromDBSnapshot` + + - `RestoreDBInstanceFromS3` + + - `RestoreDBInstanceToPointInTime` + + You can view the valid processor values for a particular instance class + by calling the `DescribeOrderableDBInstanceOptions` action and + specifying the instance class for the `DBInstanceClass` parameter. + + In addition, you can use the following actions for DB instance class + processor information: + + - `DescribeDBInstances` + + - `DescribeDBSnapshots` + + - `DescribeValidDBInstanceModifications` + + If you call `DescribeDBInstances`, `ProcessorFeature` returns non-null + values only if the following conditions are met: + + - You are accessing an Oracle or SQL Server DB instance. + + - Your Oracle or SQL Server DB instance class supports configuring the + number of CPU cores and threads per core. + + - The current number CPU cores and threads is set to a non-default + value. + + For more information, see [Configuring the processor for a DB instance + class in RDS for + Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#USER_ConfigureProcessor), + [Optimizing your RDS for SQL Server + CPU](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.OptimizeCPU.html), + and [DB instance + classes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide.* + """ + + name: str | None = ... + """ + The name of the processor feature. Valid names are `coreCount` and + `threadsPerCore`. + """ + value: str | None = ... + """The value of a processor feature.""" + +@dataclass(kw_only=True) +class PromoteReadReplicaDBClusterInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The identifier of the DB cluster read replica to promote. This parameter + isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing DB cluster read replica. + + Example: `my-cluster-replica1` + """ + +@dataclass(kw_only=True) +class PromoteReadReplicaDBClusterOutput(_SerdeShape): + """Dataclass for PromoteReadReplicaDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PromoteReadReplicaInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The DB instance identifier. This value is stored as a lowercase string. + + Constraints: + + - Must match the identifier of an existing read replica DB instance. + + Example: `mydbinstance` + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Setting + this parameter to a positive number enables backups. Setting this + parameter to 0 disables automated backups. + + Default: 1 + + Constraints: + + - Must be a value from 0 to 35. + + - Can't be set to 0 if the DB instance is a source to read replicas. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, using the `BackupRetentionPeriod` + parameter. + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To see the time + blocks available, see [Adjusting the Preferred Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + +@dataclass(kw_only=True) +class PromoteReadReplicaOutput(_SerdeShape): + """Dataclass for PromoteReadReplicaOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ProvisionedIopsNotAvailableInAZFault(ServiceError, _SerdeShape): + """Provisioned IOPS not available in the specified Availability Zone.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PurchaseReservedDBInstancesOfferingInput(_SerdeShape): + """""" + + reserved_db_instances_offering_id: str | None = ... + """ + The ID of the Reserved DB instance offering to purchase. + + Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706 + """ + reserved_db_instance_id: str | None = ... + """ + Customer-specified identifier to track this reservation. + + Example: myreservationID + """ + db_instance_count: int | None = ... + """ + The number of instances to reserve. + + Default: `1` + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class PurchaseReservedDBInstancesOfferingOutput(_SerdeShape): + """Dataclass for PurchaseReservedDBInstancesOfferingOutput structure.""" + + reserved_db_instance: ReservedDBInstance | None = ... + """ + This data type is used as a response element in the + `DescribeReservedDBInstances` and `PurchaseReservedDBInstancesOffering` + actions. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Range(_SerdeShape): + """A range of integer values.""" + + from_: int | None = ... + """The minimum value in the range.""" + to: int | None = ... + """The maximum value in the range.""" + step: int | None = ... + """ + The step value for the range. For example, if you have a range of 5,000 + to 10,000, with a step value of 1,000, the valid values start at 5,000 + and step up by 1,000. Even though 7,500 is within the range, it isn't a + valid value for the range. The valid values are 5,000, 6,000, 7,000, + 8,000... + """ + +@dataclass(kw_only=True) +class RdsCustomClusterConfiguration(_SerdeShape): + """Reserved for future use.""" + + interconnect_subnet_id: str | None = ... + """Reserved for future use.""" + transit_gateway_multicast_domain_id: str | None = ... + """Reserved for future use.""" + replica_mode: str | None = ... + """Reserved for future use.""" + +@dataclass(kw_only=True) +class RebootDBClusterInput(_SerdeShape): + """Dataclass for RebootDBClusterInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier. This parameter is stored as a lowercase + string. + + Constraints: + + - Must match the identifier of an existing DBCluster. + """ + +@dataclass(kw_only=True) +class RebootDBClusterOutput(_SerdeShape): + """Dataclass for RebootDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RebootDBInstanceInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The DB instance identifier. This parameter is stored as a lowercase + string. + + Constraints: + + - Must match the identifier of an existing DBInstance. + """ + force_failover: bool | None = ... + """ + Specifies whether the reboot is conducted through a Multi-AZ failover. + + Constraint: You can't enable force failover if the instance isn't + configured for Multi-AZ. + """ + +@dataclass(kw_only=True) +class RebootDBInstanceOutput(_SerdeShape): + """Dataclass for RebootDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RebootDBShardGroupInput(_SerdeShape): + """Dataclass for RebootDBShardGroupInput structure.""" + + db_shard_group_identifier: str | None = ... + """The name of the DB shard group to reboot.""" + +@dataclass(kw_only=True) +class RebootDBShardGroupOutput(_SerdeShape): + """Contains the details for an Amazon RDS DB shard group.""" + + db_shard_group_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + shard group. + """ + db_shard_group_identifier: str | None = ... + """The name of the DB shard group.""" + db_cluster_identifier: str | None = ... + """The name of the primary DB cluster for the DB shard group.""" + max_acu: float | None = ... + """ + The maximum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + min_acu: float | None = ... + """ + The minimum capacity of the DB shard group in Aurora capacity units + (ACUs). + """ + compute_redundancy: int | None = ... + """ + Specifies whether to create standby DB shard groups for the DB shard + group. Valid values are the following: + + - 0 - Creates a DB shard group without a standby DB shard group. This is + the default value. + + - 1 - Creates a DB shard group with a standby DB shard group in a + different Availability Zone (AZ). + + - 2 - Creates a DB shard group with two standby DB shard groups in two + different AZs. + """ + status: str | None = ... + """The status of the DB shard group.""" + publicly_accessible: bool | None = ... + """ + Indicates whether the DB shard group is publicly accessible. + + When the DB shard group is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + shard group's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB shard group's VPC. Access to the DB + shard group is ultimately controlled by the security group it uses. That + public access isn't permitted if the security group assigned to the DB + shard group doesn't permit it. + + When the DB shard group isn't publicly accessible, it is an internal DB + shard group with a DNS name that resolves to a private IP address. + + For more information, see CreateDBShardGroup. + + This setting is only for Aurora Limitless Database. + """ + endpoint: str | None = ... + """The connection endpoint for the DB shard group.""" + db_shard_group_arn: str | None = ... + """The Amazon Resource Name (ARN) for the DB shard group.""" + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RecommendedAction(_SerdeShape): + """ + The recommended actions to apply to resolve the issues associated with + your DB instances, DB clusters, and DB parameter groups. + """ + + action_id: str | None = ... + """The unique identifier of the recommended action.""" + title: str | None = ... + """ + A short description to summarize the action. The description might + contain markdown. + """ + description: str | None = ... + """ + A detailed description of the action. The description might contain + markdown. + """ + operation: str | None = ... + """An API operation for the action.""" + parameters: list[RecommendedActionParameter] | None = ... + """The parameters for the API operation.""" + apply_modes: list[str] | None = ... + """ + The methods to apply the recommended action. + + Valid values: + + - `manual` - The action requires you to resolve the recommendation + manually. + + - `immediately` - The action is applied immediately. + + - `next-maintainance-window` - The action is applied during the next + scheduled maintainance. + """ + status: str | None = ... + """ + The status of the action. + + - `ready` + + - `applied` + + - `scheduled` + + - `resolved` + """ + issue_details: IssueDetails | None = ... + """The details of the issue.""" + context_attributes: list[ContextAttribute] | None = ... + """The supporting attributes to explain the recommended action.""" + +@dataclass(kw_only=True) +class RecommendedActionParameter(_SerdeShape): + """ + A single parameter to use with the `RecommendedAction` API operation to + apply the action. + """ + + key: str | None = ... + """ + The key of the parameter to use with the `RecommendedAction` API + operation. + """ + value: str | None = ... + """ + The value of the parameter to use with the `RecommendedAction` API + operation. + """ + +@dataclass(kw_only=True) +class RecommendedActionUpdate(_SerdeShape): + """ + The recommended status to update for the specified recommendation action + ID. + """ + + action_id: str | None = ... + """A unique identifier of the updated recommendation action.""" + status: str | None = ... + """ + The status of the updated recommendation action. + + - `applied` + + - `scheduled` + """ + +@dataclass(kw_only=True) +class RecurringCharge(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeReservedDBInstances` and `DescribeReservedDBInstancesOfferings` + actions. + """ + + recurring_charge_amount: float | None = ... + """The amount of the recurring charge.""" + recurring_charge_frequency: str | None = ... + """The frequency of the recurring charge.""" + +@dataclass(kw_only=True) +class ReferenceDetails(_SerdeShape): + """The reference details of a metric.""" + + scalar_reference_details: ScalarReferenceDetails | None = ... + """The metric reference details when the reference is a scalar.""" + +@dataclass(kw_only=True) +class RegisterDBProxyTargetsInput(_SerdeShape): + """Dataclass for RegisterDBProxyTargetsInput structure.""" + + db_proxy_name: str | None = ... + """ + The identifier of the `DBProxy` that is associated with the + `DBProxyTargetGroup`. + """ + target_group_name: str | None = ... + """The identifier of the `DBProxyTargetGroup`.""" + db_instance_identifiers: list[str] | None = ... + """One or more DB instance identifiers.""" + db_cluster_identifiers: list[str] | None = ... + """One or more DB cluster identifiers.""" + +@dataclass(kw_only=True) +class RegisterDBProxyTargetsOutput(_SerdeShape): + """Dataclass for RegisterDBProxyTargetsOutput structure.""" + + db_proxy_targets: list[DBProxyTarget] | None = ... + """ + One or more `DBProxyTarget` objects that are created when you register + targets with a target group. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveFromGlobalClusterInput(_SerdeShape): + """Dataclass for RemoveFromGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The cluster identifier to detach from the Aurora global database + cluster. + """ + db_cluster_identifier: str | None = ... + """ + The Amazon Resource Name (ARN) identifying the cluster that was detached + from the Aurora global database cluster. + """ + +@dataclass(kw_only=True) +class RemoveFromGlobalClusterOutput(_SerdeShape): + """Dataclass for RemoveFromGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveRoleFromDBClusterInput(_SerdeShape): + """Dataclass for RemoveRoleFromDBClusterInput structure.""" + + db_cluster_identifier: str | None = ... + """The name of the DB cluster to disassociate the IAM role from.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to disassociate from the + Aurora DB cluster, for example + `arn:aws:iam::123456789012:role/AuroraAccessRole`. + """ + feature_name: str | None = ... + """ + The name of the feature for the DB cluster that the IAM role is to be + disassociated from. For information about supported feature names, see + DBEngineVersion. + """ + +@dataclass(kw_only=True) +class RemoveRoleFromDBClusterOutput(_SerdeShape): + """Dataclass for RemoveRoleFromDBClusterOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveRoleFromDBInstanceInput(_SerdeShape): + """Dataclass for RemoveRoleFromDBInstanceInput structure.""" + + db_instance_identifier: str | None = ... + """The name of the DB instance to disassociate the IAM role from.""" + role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the IAM role to disassociate from the + DB instance, for example, `arn:aws:iam::123456789012:role/AccessRole`. + """ + feature_name: str | None = ... + """ + The name of the feature for the DB instance that the IAM role is to be + disassociated from. For information about supported feature names, see + `DBEngineVersion`. + """ + +@dataclass(kw_only=True) +class RemoveRoleFromDBInstanceOutput(_SerdeShape): + """Dataclass for RemoveRoleFromDBInstanceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveSourceIdentifierFromSubscriptionInput(_SerdeShape): + """""" + + subscription_name: str | None = ... + """ + The name of the RDS event notification subscription you want to remove a + source identifier from. + """ + source_identifier: str | None = ... + """ + The source identifier to be removed from the subscription, such as the + **DB instance identifier** for a DB instance or the name of a security + group. + """ + +@dataclass(kw_only=True) +class RemoveSourceIdentifierFromSubscriptionOutput(_SerdeShape): + """Dataclass for RemoveSourceIdentifierFromSubscriptionOutput structure.""" + + event_subscription: EventSubscription | None = ... + """ + Contains the results of a successful invocation of the + `DescribeEventSubscriptions` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RemoveTagsFromResourceInput(_SerdeShape): + """""" + + resource_name: str | None = ... + """ + The Amazon RDS resource that the tags are removed from. This value is an + Amazon Resource Name (ARN). For information about creating an ARN, see + [Constructing an ARN for Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing) + in the *Amazon RDS User Guide.* + """ + tag_keys: list[str] | None = ... + """The tag key (name) of the tag to be removed.""" + +@dataclass(kw_only=True) +class RemoveTagsFromResourceOutput(_SerdeShape): + """Dataclass for RemoveTagsFromResourceOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ReplicaMode(UnknownEnumMixin, StrEnum): + OPEN_READ_ONLY = "open-read-only" + MOUNTED = "mounted" + +@dataclass(kw_only=True) +class ReservedDBInstance(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeReservedDBInstances` and `PurchaseReservedDBInstancesOffering` + actions. + """ + + reserved_db_instance_id: str | None = ... + """The unique identifier for the reservation.""" + reserved_db_instances_offering_id: str | None = ... + """The offering identifier.""" + db_instance_class: str | None = ... + """The DB instance class for the reserved DB instance.""" + start_time: datetime | None = ... + """The time the reservation started.""" + duration: int | None = ... + """The duration of the reservation in seconds.""" + fixed_price: float | None = ... + """The fixed price charged for this reserved DB instance.""" + usage_price: float | None = ... + """The hourly price charged for this reserved DB instance.""" + currency_code: str | None = ... + """The currency code for the reserved DB instance.""" + db_instance_count: int | None = ... + """The number of reserved DB instances.""" + product_description: str | None = ... + """The description of the reserved DB instance.""" + offering_type: str | None = ... + """The offering type of this reserved DB instance.""" + multi_az: bool | None = ... + """Indicates whether the reservation applies to Multi-AZ deployments.""" + state: str | None = ... + """The state of the reserved DB instance.""" + recurring_charges: list[RecurringCharge] | None = ... + """The recurring price charged to run this reserved DB instance.""" + reserved_db_instance_arn: str | None = ... + """The Amazon Resource Name (ARN) for the reserved DB instance.""" + lease_id: str | None = ... + """ + The unique identifier for the lease associated with the reserved DB + instance. + + Note: + Amazon Web Services Support might request the lease ID for an issue + related to a reserved DB instance. + """ + +@dataclass(kw_only=True) +class ReservedDBInstanceAlreadyExistsFault(ServiceError, _SerdeShape): + """User already has a reservation with the given identifier.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReservedDBInstanceNotFoundFault(ServiceError, _SerdeShape): + """The specified reserved DB Instance not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReservedDBInstanceQuotaExceededFault(ServiceError, _SerdeShape): + """Request would exceed the user's DB Instance quota.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReservedDBInstancesOffering(_SerdeShape): + """ + This data type is used as a response element in the + `DescribeReservedDBInstancesOfferings` action. + """ + + reserved_db_instances_offering_id: str | None = ... + """The offering identifier.""" + db_instance_class: str | None = ... + """The DB instance class for the reserved DB instance.""" + duration: int | None = ... + """The duration of the offering in seconds.""" + fixed_price: float | None = ... + """The fixed price charged for this offering.""" + usage_price: float | None = ... + """The hourly price charged for this offering.""" + currency_code: str | None = ... + """The currency code for the reserved DB instance offering.""" + product_description: str | None = ... + """The database engine used by the offering.""" + offering_type: str | None = ... + """The offering type.""" + multi_az: bool | None = ... + """Indicates whether the offering applies to Multi-AZ deployments.""" + recurring_charges: list[RecurringCharge] | None = ... + """The recurring price charged to run this reserved DB instance.""" + +@dataclass(kw_only=True) +class ReservedDBInstancesOfferingNotFoundFault(ServiceError, _SerdeShape): + """Specified offering does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetDBClusterParameterGroupInput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """The name of the DB cluster parameter group to reset.""" + reset_all_parameters: bool | None = ... + """ + Specifies whether to reset all parameters in the DB cluster parameter + group to their default values. You can't use this parameter if there is + a list of parameter names specified for the `Parameters` parameter. + """ + parameters: list[Parameter] | None = ... + """ + A list of parameter names in the DB cluster parameter group to reset to + the default values. You can't use this parameter if the + `ResetAllParameters` parameter is enabled. + """ + +@dataclass(kw_only=True) +class ResetDBClusterParameterGroupOutput(_SerdeShape): + """""" + + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group. + + Constraints: + + - Must be 1 to 255 letters or numbers. + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Note: + This value is stored as a lowercase string. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResetDBParameterGroupInput(_SerdeShape): + """""" + + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group. + + Constraints: + + - Must match the name of an existing `DBParameterGroup`. + """ + reset_all_parameters: bool | None = ... + """ + Specifies whether to reset all parameters in the DB parameter group to + default values. By default, all parameters in the DB parameter group are + reset to default values. + """ + parameters: list[Parameter] | None = ... + """ + To reset the entire DB parameter group, specify the `DBParameterGroup` + name and `ResetAllParameters` parameters. To reset specific parameters, + provide a list of the following: `ParameterName` and `ApplyMethod`. A + maximum of 20 parameters can be modified in a single request. + + **MySQL** + + Valid Values (for Apply method): `immediate` | `pending-reboot` + + You can use the immediate value with dynamic parameters only. You can + use the `pending-reboot` value for both dynamic and static parameters, + and changes are applied when DB instance reboots. + + **MariaDB** + + Valid Values (for Apply method): `immediate` | `pending-reboot` + + You can use the immediate value with dynamic parameters only. You can + use the `pending-reboot` value for both dynamic and static parameters, + and changes are applied when DB instance reboots. + + **Oracle** + + Valid Values (for Apply method): `pending-reboot` + """ + +@dataclass(kw_only=True) +class ResetDBParameterGroupOutput(_SerdeShape): + """ + Contains the result of a successful invocation of the + `ModifyDBParameterGroup` or `ResetDBParameterGroup` operation. + """ + + db_parameter_group_name: str | None = ... + """The name of the DB parameter group.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourceNotFoundFault(ServiceError, _SerdeShape): + """The specified resource ID was not found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ResourcePendingMaintenanceActions(_SerdeShape): + """Describes the pending maintenance actions for a resource.""" + + resource_identifier: str | None = ... + """The ARN of the resource that has pending maintenance actions.""" + pending_maintenance_action_details: list[PendingMaintenanceAction] | None = ... + """ + A list that provides details about the pending maintenance actions for + the resource. + """ + +@dataclass(kw_only=True) +class RestoreDBClusterFromS3Input(_SerdeShape): + """Dataclass for RestoreDBClusterFromS3Input structure.""" + + availability_zones: list[str] | None = ... + """ + A list of Availability Zones (AZs) where instances in the restored DB + cluster can be created. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups of the restored DB + cluster are retained. You must specify a minimum value of 1. + + Default: 1 + + Constraints: + + - Must be a value from 1 to 35 + """ + character_set_name: str | None = ... + """ + A value that indicates that the restored DB cluster should be associated + with the specified CharacterSet. + """ + database_name: str | None = ... + """The database name for the restored DB cluster.""" + db_cluster_identifier: str | None = ... + """ + The name of the DB cluster to create from the source data in the Amazon + S3 bucket. This parameter isn't case-sensitive. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-cluster1` + """ + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group to associate with the + restored DB cluster. If this argument is omitted, the default parameter + group for the engine version is used. + + Constraints: + + - If supplied, must match the name of an existing + DBClusterParameterGroup. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of EC2 VPC security groups to associate with the restored DB + cluster. + """ + db_subnet_group_name: str | None = ... + """ + A DB subnet group to associate with the restored DB cluster. + + Constraints: If supplied, must match the name of an existing + DBSubnetGroup. + + Example: `mydbsubnetgroup` + """ + engine: str | None = ... + """ + The name of the database engine to be used for this DB cluster. + + Valid Values: `aurora-mysql` (for Aurora MySQL) + """ + engine_version: str | None = ... + """ + The version number of the database engine to use. + + To list all of the available engine versions for `aurora-mysql` (Aurora + MySQL), use the following command: + + `aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"` + + **Aurora MySQL** + + Examples: `5.7.mysql_aurora.2.12.0`, `8.0.mysql_aurora.3.04.0` + """ + port: int | None = ... + """ + The port number on which the instances in the restored DB cluster accept + connections. + + Default: `3306` + """ + master_username: str | None = ... + """ + The name of the master user for the restored DB cluster. + + Constraints: + + - Must be 1 to 16 letters or numbers. + + - First character must be a letter. + + - Can't be a reserved word for the chosen database engine. + """ + master_user_password: str | None = ... + """ + The password for the master database user. This password can contain any + printable ASCII character except \"/\", \"\"\", or \"@\". + + Constraints: + + - Must contain from 8 to 41 characters. + + - Can't be specified if `ManageMasterUserPassword` is turned on. + """ + option_group_name: str | None = ... + """ + A value that indicates that the restored DB cluster should be associated + with the specified option group. + + Permanent options can't be removed from an option group. An option + group can't be removed from a DB cluster once it is associated with a + DB cluster. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled using the `BackupRetentionPeriod` + parameter. + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To view the time + blocks available, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) + in the *Amazon Aurora User Guide*. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + preferred_maintenance_window: str | None = ... + """ + The weekly time range during which system maintenance can occur, in + Universal Coordinated Time (UTC). + + Format: `ddd:hh24:mi-ddd:hh24:mi` + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region, occurring on a random + day of the week. To see the time blocks available, see [Adjusting the + Preferred Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) + in the *Amazon Aurora User Guide*. + + Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. + + Constraints: Minimum 30-minute window. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + storage_encrypted: bool | None = ... + """Specifies whether the restored DB cluster is encrypted.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If the StorageEncrypted parameter is enabled, and you do not specify a + value for the `KmsKeyId` parameter, then Amazon RDS will use your + default KMS key. There is a default KMS key for your Amazon Web Services + account. Your Amazon Web Services account has a different default KMS + key for each Amazon Web Services Region. + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon Aurora User Guide*. + """ + source_engine: str | None = ... + """ + The identifier for the database engine that was backed up to create the + files stored in the Amazon S3 bucket. + + Valid Values: `mysql` + """ + source_engine_version: str | None = ... + """ + The version of the database that the backup files were created from. + + MySQL versions 5.7 and 8.0 are supported. + + Example: `5.7.40`, `8.0.28` + """ + s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket that contains the data used to create + the Amazon Aurora DB cluster. + """ + s3_prefix: str | None = ... + """ + The prefix for all of the file names that contain the data used to + create the Amazon Aurora DB cluster. If you do not specify a + **SourceS3Prefix** value, then the Amazon Aurora DB cluster is created + by using all of the files in the Amazon S3 bucket. + """ + s3_ingestion_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the Amazon Web Services Identity and + Access Management (IAM) role that authorizes Amazon RDS to access the + Amazon S3 bucket on your behalf. + """ + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. To disable backtracking, set + this value to 0. + + Note: + Currently, Backtrack is only supported for Aurora MySQL DB clusters. + + Default: 0 + + Constraints: + + - If specified, this value must be set to a number from 0 to 259,200 (72 + hours). + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the restored DB cluster is to export to CloudWatch + Logs. The values in the list depend on the DB engine being used. + + **Aurora MySQL** + + Possible values are `audit`, `error`, `general`, `instance`, + `slowquery`, and `iam-db-auth-error`. + + **Aurora PostgreSQL** + + Possible value are `instance`, `postgresql`, and `iam-db-auth-error`. + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB cluster. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the restored DB cluster to + snapshots of the restored DB cluster. The default is not to copy them. + """ + domain: str | None = ... + """ + Specify the Active Directory directory ID to restore the DB cluster in. + The domain must be created prior to this operation. + + For Amazon Aurora DB clusters, Amazon RDS can use Kerberos + Authentication to authenticate users that connect to the DB cluster. For + more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) + in the *Amazon Aurora User Guide*. + """ + domain_iam_role_name: str | None = ... + """ + Specify the name of the IAM role to be used when making API calls to the + Directory Service. + """ + storage_type: str | None = ... + """ + Specifies the storage type to be associated with the DB cluster. + + Valid Values: `aurora`, `aurora-iopt1` + + Default: `aurora` + + Valid for: Aurora DB clusters only + """ + network_type: str | None = ... + """ + The network type of the DB cluster. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + """ + serverless_v2_scaling_configuration: ServerlessV2ScalingConfiguration | None = ... + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB cluster. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB cluster into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB cluster to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB cluster into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB cluster past the end of standard support + for that engine version. For more information, see the following + sections: + + - Amazon Aurora - [Amazon RDS Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide* + + - Amazon RDS - [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB cluster. + + Valid Values: + + - `cluster-auto-backup` - The DB cluster's automated backup. + """ + associated_roles: list[DBClusterAssociatedRole] | None = ... + """ + A list of Amazon Web Services Identity and Access Management (IAM) roles + to associate with the DB cluster when it's restored from Amazon S3. + Each role grants the DB cluster permission to access other Amazon Web + Services on your behalf. For each role, specify a role ARN and, + optionally, the feature name (such as `s3Import`, `s3Export`, or + `Lambda`). + """ + +@dataclass(kw_only=True) +class RestoreDBClusterFromS3Output(_SerdeShape): + """Dataclass for RestoreDBClusterFromS3Output structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreDBClusterFromSnapshotInput(_SerdeShape): + """""" + + availability_zones: list[str] | None = ... + """ + Provides the list of Availability Zones (AZs) where instances in the + restored DB cluster can be created. + + Valid for: Aurora DB clusters only + """ + db_cluster_identifier: str | None = ... + """ + The name of the DB cluster to create from the DB snapshot or DB cluster + snapshot. This parameter isn't case-sensitive. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Example: `my-snapshot-id` + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + snapshot_identifier: str | None = ... + """ + The identifier for the DB snapshot or DB cluster snapshot to restore + from. + + You can use either the name or the Amazon Resource Name (ARN) to specify + a DB cluster snapshot. However, you can use only the ARN to specify a DB + snapshot. + + Constraints: + + - Must match the identifier of an existing Snapshot. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + engine: str | None = ... + """ + The database engine to use for the new DB cluster. + + Default: The same as source + + Constraint: Must be compatible with the engine of the source + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + engine_version: str | None = ... + """ + The version of the database engine to use for the new DB cluster. If you + don't specify an engine version, the default version for the database + engine in the Amazon Web Services Region is used. + + To list all of the available engine versions for Aurora MySQL, use the + following command: + + `aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for Aurora PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for MySQL, use the + following command: + + `aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"` + + To list all of the available engine versions for RDS for PostgreSQL, use + the following command: + + `aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion"` + + **Aurora MySQL** + + See [Database engine updates for Amazon Aurora + MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) + in the *Amazon Aurora User Guide*. + + **Aurora PostgreSQL** + + See [Amazon Aurora PostgreSQL releases and engine + versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) + in the *Amazon Aurora User Guide*. + + **MySQL** + + See [Amazon RDS for + MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) + in the *Amazon RDS User Guide.* + + **PostgreSQL** + + See [Amazon RDS for PostgreSQL versions and + extensions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) + in the *Amazon RDS User Guide.* + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + port: int | None = ... + """ + The port number on which the new DB cluster accepts connections. + + Constraints: This value must be `1150-65535` + + Default: The same port as the original DB cluster. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + db_subnet_group_name: str | None = ... + """ + The name of the DB subnet group to use for the new DB cluster. + + Constraints: If supplied, must match the name of an existing DB subnet + group. + + Example: `mydbsubnetgroup` + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + database_name: str | None = ... + """ + The database name for the restored DB cluster. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + option_group_name: str | None = ... + """ + The name of the option group to use for the restored DB cluster. + + DB clusters are associated with a default option group that can't be + modified. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of VPC security groups that the new DB cluster will belong to. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + tags: list[Tag] | None = ... + """ + The tags to be assigned to the restored DB cluster. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to use when restoring an + encrypted DB cluster from a DB snapshot or DB cluster snapshot. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + When you don't specify a value for the `KmsKeyId` parameter, then the + following occurs: + + - If the DB snapshot or DB cluster snapshot in `SnapshotIdentifier` is + encrypted, then the restored DB cluster is encrypted using the KMS key + that was used to encrypt the DB snapshot or DB cluster snapshot. + + - If the DB snapshot or DB cluster snapshot in `SnapshotIdentifier` + isn't encrypted, then the restored DB cluster isn't encrypted. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon Aurora User Guide* or [IAM database authentication for + MariaDB, MySQL, and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. To disable backtracking, set + this value to 0. + + Note: + Currently, Backtrack is only supported for Aurora MySQL DB clusters. + + Default: 0 + + Constraints: + + - If specified, this value must be set to a number from 0 to 259,200 (72 + hours). + + Valid for: Aurora DB clusters only + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the restored DB cluster is to export to Amazon + CloudWatch Logs. The values in the list depend on the DB engine being + used. + + **RDS for MySQL** + + Possible values are `error`, `general`, `slowquery`, and + `iam-db-auth-error`. + + **RDS for PostgreSQL** + + Possible values are `postgresql`, `upgrade`, and `iam-db-auth-error`. + + **Aurora MySQL** + + Possible values are `audit`, `error`, `general`, `instance`, + `slowquery`, and `iam-db-auth-error`. + + **Aurora PostgreSQL** + + Possible value are `instance`, `postgresql`, and `iam-db-auth-error`. + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + engine_mode: str | None = ... + """ + The DB engine mode of the DB cluster, either `provisioned` or + `serverless`. + + For more information, see + [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html). + + Valid for: Aurora DB clusters only + """ + scaling_configuration: ScalingConfiguration | None = ... + """ + For DB clusters in `serverless` DB engine mode, the scaling properties + of the DB cluster. + + Valid for: Aurora DB clusters only + """ + db_cluster_parameter_group_name: str | None = ... + """ + The name of the DB cluster parameter group to associate with this DB + cluster. If this argument is omitted, the default DB cluster parameter + group for the specified engine is used. + + Constraints: + + - If supplied, must match the name of an existing default DB cluster + parameter group. + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB cluster. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the restored DB cluster to + snapshots of the restored DB cluster. The default is not to copy them. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + domain: str | None = ... + """ + The Active Directory directory ID to restore the DB cluster in. The + domain must be created prior to this operation. Currently, only MySQL, + Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created + in an Active Directory Domain. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + + Valid for: Aurora DB clusters only + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to be used when making API calls to the + Directory Service. + + Valid for: Aurora DB clusters only + """ + db_cluster_instance_class: str | None = ... + """ + The compute and memory capacity of the each DB instance in the Multi-AZ + DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are + available in all Amazon Web Services Regions, or for all database + engines. + + For the full list of DB instance classes, and availability for your + engine, see [DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide.* + + Valid for: Multi-AZ DB clusters only + """ + storage_type: str | None = ... + """ + Specifies the storage type to be associated with the DB cluster. + + When specified for a Multi-AZ DB cluster, a value for the `Iops` + parameter is required. + + Valid Values: `aurora`, `aurora-iopt1` (Aurora DB clusters); `io1` + (Multi-AZ DB clusters) + + Default: `aurora` (Aurora DB clusters); `io1` (Multi-AZ DB clusters) + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + be initially allocated for each DB instance in the Multi-AZ DB cluster. + + For information about valid IOPS values, see [Amazon RDS Provisioned + IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide*. + + Constraints: Must be a multiple between .5 and 50 of the storage amount + for the DB instance. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB cluster is publicly accessible. + + When the DB cluster is publicly accessible, its Domain Name System (DNS) + endpoint resolves to the private IP address from within the DB + cluster's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB cluster's VPC. Access to the DB cluster + is ultimately controlled by the security group it uses. That public + access is not permitted if the security group assigned to the DB cluster + doesn't permit it. + + When the DB cluster isn't publicly accessible, it is an internal DB + cluster with a DNS name that resolves to a private IP address. + + Default: The default behavior varies depending on whether + `DBSubnetGroupName` is specified. + + If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the default VPC in the target Region doesn't have an internet + gateway attached to it, the DB cluster is private. + + - If the default VPC in the target Region has an internet gateway + attached to it, the DB cluster is public. + + If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the subnets are part of a VPC that doesn't have an internet gateway + attached to it, the DB cluster is private. + + - If the subnets are part of a VPC that has an internet gateway attached + to it, the DB cluster is public. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + network_type: str | None = ... + """ + The network type of the DB cluster. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + Valid for: Aurora DB clusters only + """ + serverless_v2_scaling_configuration: ServerlessV2ScalingConfiguration | None = ... + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + rds_custom_cluster_configuration: RdsCustomClusterConfiguration | None = ... + """Reserved for future use.""" + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB cluster. To turn off collecting + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a + value other than `0`. + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the IAM role that permits RDS to send + Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is + `arn:aws:iam:123456789012:role/emaccess`. + + If `MonitoringInterval` is set to a value other than `0`, supply a + `MonitoringRoleArn` value. + """ + enable_performance_insights: bool | None = ... + """Specifies whether to turn on Performance Insights for the DB cluster.""" + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS issues an error. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Specify a + minimum value of `1`. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Default: Uses existing setting + + Constraints: + + - Must be a value from 1 to 35. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, using the `BackupRetentionPeriod` + parameter. + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To view the time + blocks available, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB cluster. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB cluster into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB cluster to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB cluster into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB cluster past the end of standard support + for that engine version. For more information, see the following + sections: + + - Amazon Aurora - [Amazon RDS Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide* + + - Amazon RDS - [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB cluster. + + Valid Values: + + - `cluster-auto-backup` - The DB cluster's automated backup. + """ + enable_vpc_networking: bool | None = ... + """ + Specifies whether to enable VPC networking for the restored DB cluster. + Set this parameter to `false` to create a cluster without the VPC + network interface (ENI). + + This parameter must be used together with `EnableInternetAccessGateway`. + When both parameters are specified, IAM database authentication is + required. You must also specify `EnableIAMDatabaseAuthentication`. + + Valid for Cluster Type: Aurora PostgreSQL clusters + """ + enable_internet_access_gateway: bool | None = ... + """ + Specifies that the restored DB cluster should use internet-based + connectivity through an internet access gateway. This allows clients to + connect to the cluster over the internet without requiring a VPC. + + This parameter must be used together with `EnableVPCNetworking` set to + `false`. When both parameters are specified, IAM database authentication + is required. You must also specify `EnableIAMDatabaseAuthentication`. + + Valid for Cluster Type: Aurora PostgreSQL clusters + """ + associated_roles: list[DBClusterAssociatedRole] | None = ... + """ + A list of Amazon Web Services Identity and Access Management (IAM) roles + to associate with the DB cluster when it's restored from a snapshot. + Each role grants the DB cluster permission to access other Amazon Web + Services on your behalf. For each role, specify a role ARN and, + optionally, the feature name (such as `s3Import`, `s3Export`, or + `Lambda`). + + Valid for Cluster Type: Aurora DB clusters only + """ + +@dataclass(kw_only=True) +class RestoreDBClusterFromSnapshotOutput(_SerdeShape): + """Dataclass for RestoreDBClusterFromSnapshotOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreDBClusterToPointInTimeInput(_SerdeShape): + """""" + + db_cluster_identifier: str | None = ... + """ + The name of the new DB cluster to be created. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens + + - First character must be a letter + + - Can't end with a hyphen or contain two consecutive hyphens + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + restore_type: str | None = ... + """ + The type of restore to be performed. You can specify one of the + following values: + + - `full-copy` - The new DB cluster is restored as a full copy of the + source DB cluster. + + - `copy-on-write` - The new DB cluster is restored as a clone of the + source DB cluster. + + If you don't specify a `RestoreType` value, then the new DB cluster is + restored as a full copy of the source DB cluster. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + source_db_cluster_identifier: str | None = ... + """ + The identifier of the source DB cluster from which to restore. + + Constraints: + + - Must match the identifier of an existing DBCluster. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + restore_to_time: datetime | None = ... + """ + The date and time to restore the DB cluster to. + + Valid Values: Value must be a time in Universal Coordinated Time (UTC) + format + + Constraints: + + - Must be before the latest restorable time for the DB instance + + - Must be specified if `UseLatestRestorableTime` parameter isn't + provided + + - Can't be specified if the `UseLatestRestorableTime` parameter is + enabled + + - Can't be specified if the `RestoreType` parameter is `copy-on-write` + + Example: `2015-03-07T23:45:00Z` + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + use_latest_restorable_time: bool | None = ... + """ + Specifies whether to restore the DB cluster to the latest restorable + backup time. By default, the DB cluster isn't restored to the latest + restorable backup time. + + Constraints: Can't be specified if `RestoreToTime` parameter is + provided. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + port: int | None = ... + """ + The port number on which the new DB cluster accepts connections. + + Constraints: A value from `1150-65535`. + + Default: The default port for the engine. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + db_subnet_group_name: str | None = ... + """ + The DB subnet group name to use for the new DB cluster. + + Constraints: If supplied, must match the name of an existing + DBSubnetGroup. + + Example: `mydbsubnetgroup` + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + option_group_name: str | None = ... + """ + The name of the option group for the new DB cluster. + + DB clusters are associated with a default option group that can't be + modified. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of VPC security groups that the new DB cluster belongs to. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to use when restoring an + encrypted DB cluster from an encrypted DB cluster. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + You can restore to a new DB cluster and encrypt the new DB cluster with + a KMS key that is different from the KMS key used to encrypt the source + DB cluster. The new DB cluster is encrypted with the KMS key identified + by the `KmsKeyId` parameter. + + If you don't specify a value for the `KmsKeyId` parameter, then the + following occurs: + + - If the DB cluster is encrypted, then the restored DB cluster is + encrypted using the KMS key that was used to encrypt the source DB + cluster. + + - If the DB cluster isn't encrypted, then the restored DB cluster + isn't encrypted. + + If `DBClusterIdentifier` refers to a DB cluster that isn't encrypted, + then the restore request is rejected. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information, see [IAM Database + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon Aurora User Guide* or [IAM database authentication for + MariaDB, MySQL, and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide*. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + backtrack_window: int | None = ... + """ + The target backtrack window, in seconds. To disable backtracking, set + this value to 0. + + Default: 0 + + Constraints: + + - If specified, this value must be set to a number from 0 to 259,200 (72 + hours). + + Valid for: Aurora MySQL DB clusters only + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the restored DB cluster is to export to CloudWatch + Logs. The values in the list depend on the DB engine being used. + + **RDS for MySQL** + + Possible values are `error`, `general`, `slowquery`, and + `iam-db-auth-error`. + + **RDS for PostgreSQL** + + Possible values are `postgresql`, `upgrade`, and `iam-db-auth-error`. + + **Aurora MySQL** + + Possible values are `audit`, `error`, `general`, `instance`, + `slowquery`, and `iam-db-auth-error`. + + **Aurora PostgreSQL** + + Possible value are `instance`, `postgresql`, and `iam-db-auth-error`. + + For more information about exporting CloudWatch Logs for Amazon RDS, see + [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + For more information about exporting CloudWatch Logs for Amazon Aurora, + see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon Aurora User Guide*. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + db_cluster_parameter_group_name: str | None = ... + """ + The name of the custom DB cluster parameter group to associate with this + DB cluster. + + If the `DBClusterParameterGroupName` parameter is omitted, the default + DB cluster parameter group for the specified engine is used. + + Constraints: + + - If supplied, must match the name of an existing DB cluster parameter + group. + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB cluster. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the restored DB cluster to + snapshots of the restored DB cluster. The default is not to copy them. + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + domain: str | None = ... + """ + The Active Directory directory ID to restore the DB cluster in. The + domain must be created prior to this operation. + + For Amazon Aurora DB clusters, Amazon RDS can use Kerberos + Authentication to authenticate users that connect to the DB cluster. For + more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) + in the *Amazon Aurora User Guide*. + + Valid for: Aurora DB clusters only + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to be used when making API calls to the + Directory Service. + + Valid for: Aurora DB clusters only + """ + db_cluster_instance_class: str | None = ... + """ + The compute and memory capacity of the each DB instance in the Multi-AZ + DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are + available in all Amazon Web Services Regions, or for all database + engines. + + For the full list of DB instance classes, and availability for your + engine, see [DB instance + class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Valid for: Multi-AZ DB clusters only + """ + storage_type: str | None = ... + """ + Specifies the storage type to be associated with the DB cluster. + + When specified for a Multi-AZ DB cluster, a value for the `Iops` + parameter is required. + + Valid Values: `aurora`, `aurora-iopt1` (Aurora DB clusters); `io1` + (Multi-AZ DB clusters) + + Default: `aurora` (Aurora DB clusters); `io1` (Multi-AZ DB clusters) + + Valid for: Aurora DB clusters and Multi-AZ DB clusters + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB cluster is publicly accessible. + + When the DB cluster is publicly accessible, its Domain Name System (DNS) + endpoint resolves to the private IP address from within the DB + cluster's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB cluster's VPC. Access to the DB cluster + is ultimately controlled by the security group it uses. That public + access is not permitted if the security group assigned to the DB cluster + doesn't permit it. + + When the DB cluster isn't publicly accessible, it is an internal DB + cluster with a DNS name that resolves to a private IP address. + + Default: The default behavior varies depending on whether + `DBSubnetGroupName` is specified. + + If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the default VPC in the target Region doesn't have an internet + gateway attached to it, the DB cluster is private. + + - If the default VPC in the target Region has an internet gateway + attached to it, the DB cluster is public. + + If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't + specified, the following applies: + + - If the subnets are part of a VPC that doesn't have an internet gateway + attached to it, the DB cluster is private. + + - If the subnets are part of a VPC that has an internet gateway attached + to it, the DB cluster is public. + + Valid for: Multi-AZ DB clusters only + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + be initially allocated for each DB instance in the Multi-AZ DB cluster. + + For information about valid IOPS values, see [Amazon RDS Provisioned + IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide*. + + Constraints: Must be a multiple between .5 and 50 of the storage amount + for the DB instance. + + Valid for: Multi-AZ DB clusters only + """ + network_type: str | None = ... + """ + The network type of the DB cluster. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for the + DB cluster. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon Aurora User Guide.* + + Valid for: Aurora DB clusters only + """ + source_db_cluster_resource_id: str | None = ... + """The resource ID of the source DB cluster from which to restore.""" + serverless_v2_scaling_configuration: ServerlessV2ScalingConfiguration | None = ... + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + scaling_configuration: ScalingConfiguration | None = ... + """ + For DB clusters in `serverless` DB engine mode, the scaling properties + of the DB cluster. + + Valid for: Aurora DB clusters only + """ + engine_mode: str | None = ... + """ + The engine mode of the new cluster. Specify `provisioned` or + `serverless`, depending on the type of the cluster you are creating. You + can create an Aurora Serverless v1 clone from a provisioned cluster, or + a provisioned clone from an Aurora Serverless v1 cluster. To create a + clone that is an Aurora Serverless v1 cluster, the original cluster must + be an Aurora Serverless v1 cluster or an encrypted provisioned cluster. + To create a full copy that is an Aurora Serverless v1 cluster, specify + the engine mode `serverless`. + + Valid for: Aurora DB clusters only + """ + rds_custom_cluster_configuration: RdsCustomClusterConfiguration | None = ... + """Reserved for future use.""" + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB cluster. To turn off collecting + Enhanced Monitoring metrics, specify `0`. + + If `MonitoringRoleArn` is specified, also set `MonitoringInterval` to a + value other than `0`. + + Valid Values: `0 | 1 | 5 | 10 | 15 | 30 | 60` + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The Amazon Resource Name (ARN) for the IAM role that permits RDS to send + Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is + `arn:aws:iam:123456789012:role/emaccess`. + + If `MonitoringInterval` is set to a value other than `0`, supply a + `MonitoringRoleArn` value. + """ + enable_performance_insights: bool | None = ... + """Specifies whether to turn on Performance Insights for the DB cluster.""" + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you don't specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. + + Valid Values: + + - `7` + + - *month* * 31, where *month* is a number of months from 1-23. + Examples: `93` (3 months * 31), `341` (11 months * 31), `589` (19 + months * 31) + + - `731` + + Default: `7` days + + If you specify a retention period that isn't valid, such as `94`, + Amazon RDS issues an error. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Specify a + minimum value of `1`. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Default: Uses existing setting + + Constraints: + + - Must be a value from 1 to 35. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, using the `BackupRetentionPeriod` + parameter. + + The default is a 30-minute window selected at random from an 8-hour + block of time for each Amazon Web Services Region. To view the time + blocks available, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) + in the *Amazon Aurora User Guide*. + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB cluster. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB cluster into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB cluster to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB cluster into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB cluster past the end of standard support + for that engine version. For more information, see the following + sections: + + - Amazon Aurora - [Amazon RDS Extended Support with Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide* + + - Amazon RDS - [Amazon RDS Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* + + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB cluster. + + Valid Values: + + - `cluster-auto-backup` - The DB cluster's automated backup. + """ + enable_vpc_networking: bool | None = ... + """ + Specifies whether to enable VPC networking for the restored DB cluster. + Set this parameter to `false` to create a cluster without the VPC + network interface (ENI). + + This parameter must be used together with `EnableInternetAccessGateway`. + When both parameters are specified, IAM database authentication is + required. You must also specify `EnableIAMDatabaseAuthentication`. + + Valid for Cluster Type: Aurora PostgreSQL clusters + """ + enable_internet_access_gateway: bool | None = ... + """ + Specifies that the restored DB cluster should use internet-based + connectivity through an internet access gateway. This allows clients to + connect to the cluster over the internet without requiring a VPC. + + This parameter must be used together with `EnableVPCNetworking` set to + `false`. When both parameters are specified, IAM database authentication + is required. You must also specify `EnableIAMDatabaseAuthentication`. + + Valid for Cluster Type: Aurora PostgreSQL clusters + """ + associated_roles: list[DBClusterAssociatedRole] | None = ... + """ + A list of Amazon Web Services Identity and Access Management (IAM) roles + to associate with the DB cluster when it's restored to a point in time. + Each role grants the DB cluster permission to access other Amazon Web + Services on your behalf. For each role, specify a role ARN and, + optionally, the feature name (such as `s3Import`, `s3Export`, or + `Lambda`). + + Valid for Cluster Type: Aurora DB clusters only + """ + +@dataclass(kw_only=True) +class RestoreDBClusterToPointInTimeOutput(_SerdeShape): + """Dataclass for RestoreDBClusterToPointInTimeOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceFromDBSnapshotInput(_SerdeShape): + """""" + + db_instance_identifier: str | None = ... + """ + The name of the DB instance to create from the DB snapshot. This + parameter isn't case-sensitive. + + Constraints: + + - Must contain from 1 to 63 numbers, letters, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `my-snapshot-id` + """ + db_snapshot_identifier: str | None = ... + """ + The identifier for the DB snapshot to restore from. + + Constraints: + + - Must match the identifier of an existing DB snapshot. + + - Can't be specified when `DBClusterSnapshotIdentifier` is specified. + + - Must be specified when `DBClusterSnapshotIdentifier` isn't specified. + + - If you are restoring from a shared manual DB snapshot, the + `DBSnapshotIdentifier` must be the ARN of the shared DB snapshot. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity of the Amazon RDS DB instance, for + example db.m4.large. Not all DB instance classes are available in all + Amazon Web Services Regions, or for all database engines. For the full + list of DB instance classes, and availability for your engine, see [DB + Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide.* + + Default: The same DBInstanceClass as the original DB instance. + """ + port: int | None = ... + """ + The port number on which the database accepts connections. + + Default: The same port as the original DB instance + + Constraints: Value must be `1150-65535` + """ + availability_zone: str | None = ... + """ + The Availability Zone (AZ) where the DB instance will be created. + + Default: A random, system-chosen Availability Zone. + + Constraint: You can't specify the `AvailabilityZone` parameter if the + DB instance is a Multi-AZ deployment. + + Example: `us-east-1a` + """ + db_subnet_group_name: str | None = ... + """ + The name of the DB subnet group to use for the new instance. + + Constraints: + + - If supplied, must match the name of an existing DB subnet group. + + Example: `mydbsubnetgroup` + """ + multi_az: bool | None = ... + """ + Specifies whether the DB instance is a Multi-AZ deployment. + + This setting doesn't apply to RDS Custom. + + Constraint: You can't specify the `AvailabilityZone` parameter if the + DB instance is a Multi-AZ deployment. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB instance is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + instance's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB instance's VPC. Access to the DB + instance is ultimately controlled by the security group it uses. That + public access is not permitted if the security group assigned to the DB + instance doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + For more information, see CreateDBInstance. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether to automatically apply minor version upgrades to the + DB instance during the maintenance window. + + If you restore an RDS Custom DB instance, you must disable this + parameter. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + license_model: str | None = ... + """ + License model information for the restored DB instance. + + Note: + License models for RDS for Db2 require additional configuration. The + bring your own license (BYOL) model requires a custom parameter group + and an Amazon Web Services License Manager self-managed license. The Db2 + license through Amazon Web Services Marketplace model requires an Amazon + Web Services Marketplace subscription. For more information, see [Amazon + RDS for Db2 licensing + options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + + Valid Values: + + - RDS for Db2 - `bring-your-own-license | marketplace-license` + + - RDS for MariaDB - `general-public-license` + + - RDS for Microsoft SQL Server - + `license-included | bring-your-own-media` + + - RDS for MySQL - `general-public-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for PostgreSQL - `postgresql-license` + + Default: Same as the source. + """ + db_name: str | None = ... + """ + The name of the database for the restored DB instance. + + This parameter only applies to RDS for Oracle and RDS for SQL Server DB + instances. It doesn't apply to the other engines or to RDS Custom DB + instances. + """ + engine: str | None = ... + """ + The database engine to use for the new instance. + + This setting doesn't apply to RDS Custom. + + Default: The same as source + + Constraint: Must be compatible with the engine of the source. For + example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6 + snapshot. + + Valid Values: + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + """ + iops: int | None = ... + """ + Specifies the amount of provisioned IOPS for the DB instance, expressed + in I/O operations per second. If this parameter isn't specified, the + IOPS value is taken from the backup. If this parameter is set to 0, the + new instance is converted to a non-PIOPS instance. The conversion takes + additional time, though your DB instance is available for connections + before the conversion starts. + + The provisioned IOPS value must follow the requirements for your + database engine. For more information, see [Amazon RDS Provisioned IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide.* + + Constraints: Must be an integer greater than 1000. + """ + storage_throughput: int | None = ... + """ + Specifies the storage throughput value for the DB instance. + + This setting doesn't apply to RDS Custom or Amazon Aurora. + """ + option_group_name: str | None = ... + """ + The name of the option group to be used for the restored DB instance. + + Permanent options, such as the TDE option for Oracle Advanced Security + TDE, can't be removed from an option group, and that option group + can't be removed from a DB instance after it is associated with a DB + instance. + + This setting doesn't apply to RDS Custom. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + storage_type: str | None = ... + """ + Specifies the storage type to be associated with the DB instance. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + If you specify `io1`, `io2`, or `gp3`, you must also include a value for + the `Iops` parameter. + + Default: `io1` if the `Iops` parameter is specified, otherwise `gp3` + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which to associate the instance for TDE + encryption. + + This setting doesn't apply to RDS Custom. + """ + tde_credential_password: str | None = ... + """ + The password for the given ARN from the key store in order to access the + device. + + This setting doesn't apply to RDS Custom. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of EC2 VPC security groups to associate with this DB instance. + + Default: The default EC2 VPC security group for the DB subnet group's + VPC. + """ + domain: str | None = ... + """ + The Active Directory directory ID to restore the DB instance in. The + domain/ must be created prior to this operation. Currently, you can + create only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB + instances in an Active Directory Domain. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom. + """ + domain_fqdn: str | None = ... + """ + The fully qualified domain name (FQDN) of an Active Directory domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: `mymanagedADtest.mymanagedAD.mydomain` + """ + domain_ou: str | None = ... + """ + The Active Directory organizational unit for your DB instance to join. + + Constraints: + + - Must be in the distinguished name format. + + - Can't be longer than 64 characters. + + Example: + `OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain` + """ + domain_auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + joining the domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: + `arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456` + """ + domain_dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of your primary and secondary Active Directory + domain controllers. + + Constraints: + + - Two IP addresses must be provided. If there isn't a secondary domain + controller, use the IP address of the primary domain controller for + both entries in the list. + + Example: `123.124.125.126,234.235.236.237` + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the restored DB instance to + snapshots of the DB instance. + + In most cases, tags aren't copied by default. However, when you restore + a DB instance from a DB snapshot, RDS checks whether you specify new + tags. If yes, the new tags are added to the restored DB instance. If + there are no new tags, RDS looks for the tags from the source DB + instance for the DB snapshot, and then adds those tags to the restored + DB instance. + + For more information, see [Copying tags to DB instance + snapshots](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.CopyTags) + in the *Amazon RDS User Guide*. + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + This setting doesn't apply to RDS Custom DB instances. + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping is disabled. + + For more information about IAM database authentication, see [IAM + Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide.* + + This setting doesn't apply to RDS Custom. + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs for the restored DB instance to export to CloudWatch + Logs. The values in the list depend on the DB engine. For more + information, see [Publishing Database Logs to Amazon CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + + This setting doesn't apply to RDS Custom. + """ + use_default_processor_features: bool | None = ... + """ + Specifies whether the DB instance class of the DB instance uses its + default processor features. + + This setting doesn't apply to RDS Custom. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to associate with this DB instance. + + If you don't specify a value for `DBParameterGroupName`, then RDS uses + the default `DBParameterGroup` for the specified DB engine. + + This setting doesn't apply to RDS Custom. + + Constraints: + + - If supplied, must match the name of an existing DB parameter group. + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB instance. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + """ + enable_customer_owned_ip: bool | None = ... + """ + Specifies whether to enable a customer-owned IP address (CoIP) for an + RDS on Outposts DB instance. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the DB instance from + outside of its virtual private cloud (VPC) on your local network. + + This setting doesn't apply to RDS Custom. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + """ + backup_target: str | None = ... + """ + Specifies where automated backups and manual snapshots are stored for + the restored DB instance. + + Possible values are `local` (Dedicated Local Zone), `outposts` (Amazon + Web Services Outposts), and `region` (Amazon Web Services Region). The + default is `region`. + + For more information, see [Working with Amazon RDS on Amazon Web + Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + """ + custom_iam_instance_profile: str | None = ... + """ + The instance profile associated with the underlying Amazon EC2 instance + of an RDS Custom DB instance. The instance profile must meet the + following requirements: + + - The profile must exist in your account. + + - The profile must have an IAM role that Amazon EC2 has permissions to + assume. + + - The instance profile name and the associated IAM role name must start + with the prefix `AWSRDSCustom`. + + For the list of permissions required for the IAM role, see [Configure + IAM and your + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) + in the *Amazon RDS User Guide*. + + This setting is required for RDS Custom. + """ + allocated_storage: int | None = ... + """ + The amount of storage (in gibibytes) to allocate initially for the DB + instance. Follow the allocation rules specified in CreateDBInstance. + + This setting isn't valid for RDS for SQL Server. + + Note: + Be sure to allocate enough storage for your new DB instance so that the + restore operation can succeed. You can also allocate additional storage + for future growth. + """ + db_cluster_snapshot_identifier: str | None = ... + """ + The identifier for the Multi-AZ DB cluster snapshot to restore from. + + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster + deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide*. + + Constraints: + + - Must match the identifier of an existing Multi-AZ DB cluster snapshot. + + - Can't be specified when `DBSnapshotIdentifier` is specified. + + - Must be specified when `DBSnapshotIdentifier` isn't specified. + + - If you are restoring from a shared manual Multi-AZ DB cluster + snapshot, the `DBClusterSnapshotIdentifier` must be the ARN of the + shared snapshot. + + - Can't be the identifier of an Aurora DB cluster snapshot. + """ + backup_retention_period: int | None = ... + """ + The number of days to retain automated backups. Setting this parameter + to a positive number enables backups. Setting this parameter to 0 + disables automated backups. + + Note: + Enabling and disabling backups can result in a brief I/O suspension that + lasts from a few seconds to a few minutes, depending on the size and + class of your DB instance. + + This setting doesn't apply to Amazon Aurora DB instances. The retention + period for automated backups is managed by the DB cluster. For more + information, see `ModifyDBCluster`. + + Default: Uses existing setting + + Constraints: + + - Must be a value from 0 to 35. + + - Can't be set to 0 if the DB instance is a source to read replicas. + + - Can't be set to 0 for an RDS Custom for Oracle DB instance. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod` parameter. Changing this parameter doesn't + result in an outage and the change is asynchronously applied as soon as + possible. The default is a 30-minute window selected at random from an + 8-hour block of time for each Amazon Web Services Region. For more + information, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora DB instances. The daily + time range for creating automated backups is managed by the DB cluster. + For more information, see `ModifyDBCluster`. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to associate + with this DB instance. You can specify the identifier, which has the + prefix `dbcr-`, or the reservation name. When you specify this + parameter, the DB instance uses reserved capacity from the specified + reservation. + + If you specify `AvailabilityZone`, Amazon RDS places the DB instance in + that Availability Zone, and the reservation must cover it. + + Constraints: + + - The reservation must reserve capacity for the DB instance class and + the database engine of the DB instance. + + - If the reservation reserves capacity for a specific license model, the + license model of the DB instance must match it. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - If you specify `AvailabilityZone`, it must be one of the Availability + Zones of the reservation. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. If the reservation covers + more than two Availability Zones, Amazon RDS chooses the two that the + DB instance uses. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + """ + dedicated_log_volume: bool | None = ... + """ + Specifies whether to enable a dedicated log volume (DLV) for the DB + instance. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB instance's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB instance. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB instance into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB instance to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB instance into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB instance past the end of standard + support for that engine version. For more information, see [Amazon RDS + Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide*. + + This setting applies only to RDS for MySQL and RDS for PostgreSQL. For + Amazon Aurora DB instances, the engine lifecycle support is managed by + the DB cluster. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to create for the DB instance. You + can create up to three additional storage volumes using the names + `rdsdbdata2`, `rdsdbdata3`, and `rdsdbdata4`. Additional storage volumes + are supported for RDS for Oracle and RDS for SQL Server DB instances + only. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager in the restored DB instance. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide*. + + Constraints: + + - Applies to RDS for Oracle only. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceFromDBSnapshotOutput(_SerdeShape): + """Dataclass for RestoreDBInstanceFromDBSnapshotOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceFromS3Input(_SerdeShape): + """Dataclass for RestoreDBInstanceFromS3Input structure.""" + + db_name: str | None = ... + """ + The name of the database to create when the DB instance is created. + Follow the naming rules specified in `CreateDBInstance`. + """ + db_instance_identifier: str | None = ... + """ + The DB instance identifier. This parameter is stored as a lowercase + string. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + + Example: `mydbinstance` + """ + allocated_storage: int | None = ... + """ + The amount of storage (in gibibytes) to allocate initially for the DB + instance. Follow the allocation rules specified in `CreateDBInstance`. + + This setting isn't valid for RDS for SQL Server. + + Note: + Be sure to allocate enough storage for your new DB instance so that the + restore operation can succeed. You can also allocate additional storage + for future growth. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity of the DB instance, for example + db.m4.large. Not all DB instance classes are available in all Amazon Web + Services Regions, or for all database engines. For the full list of DB + instance classes, and availability for your engine, see [DB Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide.* + + Importing from Amazon S3 isn't supported on the db.t2.micro DB instance + class. + """ + engine: str | None = ... + """ + The name of the database engine to be used for this instance. + + Valid Values: `mysql` + """ + master_username: str | None = ... + """ + The name for the master user. + + Constraints: + + - Must be 1 to 16 letters or numbers. + + - First character must be a letter. + + - Can't be a reserved word for the chosen database engine. + """ + master_user_password: str | None = ... + """ + The password for the master user. + + Constraints: + + - Can't be specified if `ManageMasterUserPassword` is turned on. + + - Can include any printable ASCII character except \"/\", \"\"\", or + \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the + \"'\" (single quotes) character. + + Length Constraints: + + - RDS for Db2 - Must contain from 8 to 128 characters. + + - RDS for MariaDB - Must contain from 8 to 41 characters. + + - RDS for Microsoft SQL Server - Must contain from 8 to 128 characters. + + - RDS for MySQL - Must contain from 8 to 41 characters. + + - RDS for Oracle - Must contain from 8 to 30 characters. + + - RDS for PostgreSQL - Must contain from 8 to 128 characters. + """ + db_security_groups: list[str] | None = ... + """ + A list of DB security groups to associate with this DB instance. + + Default: The default DB security group for the database engine. + """ + vpc_security_group_ids: list[str] | None = ... + """A list of VPC security groups to associate with this DB instance.""" + availability_zone: str | None = ... + """ + The Availability Zone that the DB instance is created in. For + information about Amazon Web Services Regions and Availability Zones, + see [Regions and Availability + Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html) + in the *Amazon RDS User Guide.* + + Default: A random, system-chosen Availability Zone in the endpoint's + Amazon Web Services Region. + + Example: `us-east-1d` + + Constraint: The `AvailabilityZone` parameter can't be specified if the + DB instance is a Multi-AZ deployment. The specified Availability Zone + must be in the same Amazon Web Services Region as the current endpoint. + """ + db_subnet_group_name: str | None = ... + """ + A DB subnet group to associate with this DB instance. + + Constraints: If supplied, must match the name of an existing + DBSubnetGroup. + + Example: `mydbsubnetgroup` + """ + preferred_maintenance_window: str | None = ... + """ + The time range each week during which system maintenance can occur, in + Universal Coordinated Time (UTC). For more information, see [Amazon RDS + Maintenance + Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + in the *Amazon RDS User Guide.* + + Constraints: + + - Must be in the format `ddd:hh24:mi-ddd:hh24:mi`. + + - Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred backup window. + + - Must be at least 30 minutes. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to associate with this DB instance. + + If you do not specify a value for `DBParameterGroupName`, then the + default `DBParameterGroup` for the specified DB engine is used. + """ + backup_retention_period: int | None = ... + """ + The number of days for which automated backups are retained. Setting + this parameter to a positive number enables backups. For more + information, see `CreateDBInstance`. + """ + preferred_backup_window: str | None = ... + """ + The time range each day during which automated backups are created if + automated backups are enabled. For more information, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) + in the *Amazon RDS User Guide.* + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + port: int | None = ... + """ + The port number on which the database accepts connections. + + Type: Integer + + Valid Values: `1150`-`65535` + + Default: `3306` + """ + multi_az: bool | None = ... + """ + Specifies whether the DB instance is a Multi-AZ deployment. If the DB + instance is a Multi-AZ deployment, you can't set the `AvailabilityZone` + parameter. + """ + engine_version: str | None = ... + """ + The version number of the database engine to use. Choose the latest + minor version of your database engine. For information about engine + versions, see `CreateDBInstance`, or call `DescribeDBEngineVersions`. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether to automatically apply minor engine upgrades to the DB + instance during the maintenance window. By default, minor engine + upgrades are not applied automatically. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + license_model: str | None = ... + """The license model for this DB instance. Use `general-public-license`.""" + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + allocate initially for the DB instance. For information about valid IOPS + values, see [Amazon RDS Provisioned IOPS + storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) + in the *Amazon RDS User Guide.* + """ + storage_throughput: int | None = ... + """ + Specifies the storage throughput value for the DB instance. + + This setting doesn't apply to RDS Custom or Amazon Aurora. + """ + option_group_name: str | None = ... + """ + The name of the option group to associate with this DB instance. If this + argument is omitted, the default option group for the specified engine + is used. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB instance is publicly accessible, its Domain Name System + (DNS) endpoint resolves to the private IP address from within the DB + instance's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB instance's VPC. Access to the DB + instance is ultimately controlled by the security group it uses. That + public access is not permitted if the security group assigned to the DB + instance doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + For more information, see CreateDBInstance. + """ + tags: list[Tag] | None = ... + """ + A list of tags to associate with this DB instance. For more information, + see [Tagging Amazon RDS + Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide.* + """ + storage_type: str | None = ... + """ + Specifies the storage type to be associated with the DB instance. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + If you specify `io1`, `io2`, or `gp3`, you must also include a value for + the `Iops` parameter. + + Default: `io1` if the `Iops` parameter is specified; otherwise `gp2` + """ + storage_encrypted: bool | None = ... + """Specifies whether the new DB instance is encrypted or not.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for an encrypted DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If the `StorageEncrypted` parameter is enabled, and you do not specify a + value for the `KmsKeyId` parameter, then Amazon RDS will use your + default KMS key. There is a default KMS key for your Amazon Web Services + account. Your Amazon Web Services account has a different default KMS + key for each Amazon Web Services Region. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the DB instance to snapshots of + the DB instance. By default, tags are not copied. + """ + monitoring_interval: int | None = ... + """ + The interval, in seconds, between points when Enhanced Monitoring + metrics are collected for the DB instance. To disable collecting + Enhanced Monitoring metrics, specify 0. + + If `MonitoringRoleArn` is specified, then you must also set + `MonitoringInterval` to a value other than 0. + + Valid Values: 0, 1, 5, 10, 15, 30, 60 + + Default: `0` + """ + monitoring_role_arn: str | None = ... + """ + The ARN for the IAM role that permits RDS to send enhanced monitoring + metrics to Amazon CloudWatch Logs. For example, + `arn:aws:iam:123456789012:role/emaccess`. For information on creating a + monitoring role, see [Setting Up and Enabling Enhanced + Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) + in the *Amazon RDS User Guide.* + + If `MonitoringInterval` is set to a value other than 0, then you must + supply a `MonitoringRoleArn` value. + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + For more information about IAM database authentication, see [IAM + Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide.* + """ + source_engine: str | None = ... + """ + The name of the engine of your source database. + + Valid Values: `mysql` + """ + source_engine_version: str | None = ... + """ + The version of the database that the backup files were created from. + + MySQL versions 5.6 and 5.7 are supported. + + Example: `5.6.40` + """ + s3_bucket_name: str | None = ... + """ + The name of your Amazon S3 bucket that contains your database backup + file. + """ + s3_prefix: str | None = ... + """The prefix of your Amazon S3 bucket.""" + s3_ingestion_role_arn: str | None = ... + """ + An Amazon Web Services Identity and Access Management (IAM) role with a + trust policy and a permissions policy that allows Amazon RDS to access + your Amazon S3 bucket. For information about this role, see [Creating an + IAM role + manually](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html#MySQL.Procedural.Importing.Enabling.IAM) + in the *Amazon RDS User Guide.* + """ + database_insights_mode: str | None = ... + """ + Specifies the mode of Database Insights to enable for the DB instance. + + Note: + Aurora DB instances inherit this value from the DB cluster, so you + can't change this value. + """ + enable_performance_insights: bool | None = ... + """ + Specifies whether to enable Performance Insights for the DB instance. + + For more information, see [Using Amazon Performance + Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) + in the *Amazon RDS User Guide*. + """ + performance_insights_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of Performance + Insights data. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + If you do not specify a value for `PerformanceInsightsKMSKeyId`, then + Amazon RDS uses your default KMS key. There is a default KMS key for + your Amazon Web Services account. Your Amazon Web Services account has a + different default KMS key for each Amazon Web Services Region. + """ + performance_insights_retention_period: int | None = ... + """ + The number of days to retain Performance Insights data. The default is 7 + days. The following values are valid: + + - 7 + + - *month* * 31, where *month* is a number of months from 1-23 + + - 731 + + For example, the following values are valid: + + - 93 (3 months * 31) + + - 341 (11 months * 31) + + - 589 (19 months * 31) + + - 731 + + If you specify a retention period such as 94, which isn't a valid + value, RDS issues an error. + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the restored DB instance is to export to + CloudWatch Logs. The values in the list depend on the DB engine being + used. For more information, see [Publishing Database Logs to Amazon + CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + """ + use_default_processor_features: bool | None = ... + """ + Specifies whether the DB instance class of the DB instance uses its + default processor features. + """ + deletion_protection: bool | None = ... + """ + Specifies whether to enable deletion protection for the DB instance. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + """ + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + + For more information about this setting, including limitations that + apply to it, see [Managing capacity automatically with Amazon RDS + storage + autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) + in the *Amazon RDS User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + Valid Values: + + - `IPV4` + + - `DUAL` + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide.* + + Constraints: + + - Can't manage the master user password with Amazon Web Services + Secrets Manager if `MasterUserPassword` is specified. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to associate + with this DB instance. You can specify the identifier, which has the + prefix `dbcr-`, or the reservation name. When you specify this + parameter, the DB instance uses reserved capacity from the specified + reservation. + + If you specify `AvailabilityZone`, Amazon RDS places the DB instance in + that Availability Zone, and the reservation must cover it. + + Constraints: + + - The reservation must reserve capacity for the DB instance class and + the database engine of the DB instance. + + - If the reservation reserves capacity for a specific license model, the + license model of the DB instance must match it. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - If you specify `AvailabilityZone`, it must be one of the Availability + Zones of the reservation. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. If the reservation covers + more than two Availability Zones, Amazon RDS chooses the two that the + DB instance uses. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + """ + dedicated_log_volume: bool | None = ... + """ + Specifies whether to enable a dedicated log volume (DLV) for the DB + instance. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB instance's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB instance. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB instance into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB instance to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB instance into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB instance past the end of standard + support for that engine version. For more information, see [Amazon RDS + Extended Support Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide*. + + This setting applies only to RDS for MySQL and RDS for PostgreSQL. For + Amazon Aurora DB instances, the engine lifecycle support is managed by + the DB cluster. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to modify or delete for the DB + instance. You can modify or delete up to three additional storage + volumes using the names `rdsdbdata2`, `rdsdbdata3`, and `rdsdbdata4`. + Additional storage volumes are supported for RDS for Oracle and RDS for + SQL Server DB instances only. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceFromS3Output(_SerdeShape): + """Dataclass for RestoreDBInstanceFromS3Output structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceToPointInTimeInput(_SerdeShape): + """""" + + source_db_instance_identifier: str | None = ... + """ + The identifier of the source DB instance from which to restore. + + Constraints: + + - Must match the identifier of an existing DB instance. + """ + target_db_instance_identifier: str | None = ... + """ + The name of the new DB instance to create. + + Constraints: + + - Must contain from 1 to 63 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + restore_time: datetime | None = ... + """ + The date and time to restore from. + + Constraints: + + - Must be a time in Universal Coordinated Time (UTC) format. + + - Must be before the latest restorable time for the DB instance. + + - Can't be specified if the `UseLatestRestorableTime` parameter is + enabled. + + Example: `2009-09-07T23:45:00Z` + """ + use_latest_restorable_time: bool | None = ... + """ + Specifies whether the DB instance is restored from the latest backup + time. By default, the DB instance isn't restored from the latest backup + time. + + Constraints: + + - Can't be specified if the `RestoreTime` parameter is provided. + """ + db_instance_class: str | None = ... + """ + The compute and memory capacity of the Amazon RDS DB instance, for + example db.m4.large. Not all DB instance classes are available in all + Amazon Web Services Regions, or for all database engines. For the full + list of DB instance classes, and availability for your engine, see [DB + Instance + Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) + in the *Amazon RDS User Guide*. + + Default: The same DB instance class as the original DB instance. + """ + port: int | None = ... + """ + The port number on which the database accepts connections. + + Default: The same port as the original DB instance. + + Constraints: + + - The value must be `1150-65535`. + """ + availability_zone: str | None = ... + """ + The Availability Zone (AZ) where the DB instance will be created. + + Default: A random, system-chosen Availability Zone. + + Constraints: + + - You can't specify the `AvailabilityZone` parameter if the DB instance + is a Multi-AZ deployment. + + Example: `us-east-1a` + """ + db_subnet_group_name: str | None = ... + """ + The DB subnet group name to use for the new instance. + + Constraints: + + - If supplied, must match the name of an existing DB subnet group. + + Example: `mydbsubnetgroup` + """ + multi_az: bool | None = ... + """ + Secifies whether the DB instance is a Multi-AZ deployment. + + This setting doesn't apply to RDS Custom. + + Constraints: + + - You can't specify the `AvailabilityZone` parameter if the DB instance + is a Multi-AZ deployment. + """ + publicly_accessible: bool | None = ... + """ + Specifies whether the DB instance is publicly accessible. + + When the DB cluster is publicly accessible, its Domain Name System (DNS) + endpoint resolves to the private IP address from within the DB + cluster's virtual private cloud (VPC). It resolves to the public IP + address from outside of the DB cluster's VPC. Access to the DB cluster + is ultimately controlled by the security group it uses. That public + access isn't permitted if the security group assigned to the DB cluster + doesn't permit it. + + When the DB instance isn't publicly accessible, it is an internal DB + instance with a DNS name that resolves to a private IP address. + + For more information, see CreateDBInstance. + """ + auto_minor_version_upgrade: bool | None = ... + """ + Specifies whether minor version upgrades are applied automatically to + the DB instance during the maintenance window. + + This setting doesn't apply to RDS Custom. + + For more information about automatic minor version upgrades, see + [Automatically upgrading the minor engine + version](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). + """ + license_model: str | None = ... + """ + The license model information for the restored DB instance. + + Note: + License models for RDS for Db2 require additional configuration. The + bring your own license (BYOL) model requires a custom parameter group + and an Amazon Web Services License Manager self-managed license. The Db2 + license through Amazon Web Services Marketplace model requires an Amazon + Web Services Marketplace subscription. For more information, see [Amazon + RDS for Db2 licensing + options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. + + Valid Values: + + - RDS for Db2 - `bring-your-own-license | marketplace-license` + + - RDS for MariaDB - `general-public-license` + + - RDS for Microsoft SQL Server - + `license-included | bring-your-own-media` + + - RDS for MySQL - `general-public-license` + + - RDS for Oracle - `bring-your-own-license | license-included` + + - RDS for PostgreSQL - `postgresql-license` + + Default: Same as the source. + """ + db_name: str | None = ... + """ + The database name for the restored DB instance. + + This parameter doesn't apply to the following DB instances: + + - RDS Custom + + - RDS for Db2 + + - RDS for MariaDB + + - RDS for MySQL + """ + engine: str | None = ... + """ + The database engine to use for the new instance. + + This setting doesn't apply to RDS Custom. + + Valid Values: + + - `db2-ae` + + - `db2-ce` + + - `db2-se` + + - `mariadb` + + - `mysql` + + - `oracle-ee` + + - `oracle-ee-cdb` + + - `oracle-se2` + + - `oracle-se2-cdb` + + - `postgres` + + - `sqlserver-ee` + + - `sqlserver-se` + + - `sqlserver-ex` + + - `sqlserver-web` + + Default: The same as source + + Constraints: + + - Must be compatible with the engine of the source. + """ + iops: int | None = ... + """ + The amount of Provisioned IOPS (input/output operations per second) to + initially allocate for the DB instance. + + This setting doesn't apply to SQL Server. + + Constraints: + + - Must be an integer greater than 1000. + """ + storage_throughput: int | None = ... + """ + The storage throughput value for the DB instance. + + This setting doesn't apply to RDS Custom or Amazon Aurora. + """ + option_group_name: str | None = ... + """ + The name of the option group to use for the restored DB instance. + + Permanent options, such as the TDE option for Oracle Advanced Security + TDE, can't be removed from an option group, and that option group + can't be removed from a DB instance after it is associated with a DB + instance + + This setting doesn't apply to RDS Custom. + """ + copy_tags_to_snapshot: bool | None = ... + """ + Specifies whether to copy all tags from the restored DB instance to + snapshots of the DB instance. By default, tags are not copied. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + storage_type: str | None = ... + """ + The storage type to associate with the DB instance. + + Valid Values: `gp2 | gp3 | io1 | io2 | standard` + + Default: `io1`, if the `Iops` parameter is specified. Otherwise, `gp3`. + + Constraints: + + - If you specify `io1`, `io2`, or `gp3`, you must also include a value + for the `Iops` parameter. + """ + tde_credential_arn: str | None = ... + """ + The ARN from the key store with which to associate the instance for TDE + encryption. + + This setting doesn't apply to RDS Custom. + """ + tde_credential_password: str | None = ... + """ + The password for the given ARN from the key store in order to access the + device. + + This setting doesn't apply to RDS Custom. + """ + vpc_security_group_ids: list[str] | None = ... + """ + A list of EC2 VPC security groups to associate with this DB instance. + + Default: The default EC2 VPC security group for the DB subnet group's + VPC. + """ + domain: str | None = ... + """ + The Active Directory directory ID to restore the DB instance in. Create + the domain before running this command. Currently, you can create only + the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in + an Active Directory Domain. + + This setting doesn't apply to RDS Custom. + + For more information, see [Kerberos + Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) + in the *Amazon RDS User Guide*. + """ + domain_iam_role_name: str | None = ... + """ + The name of the IAM role to use when making API calls to the Directory + Service. + + This setting doesn't apply to RDS Custom DB instances. + """ + domain_fqdn: str | None = ... + """ + The fully qualified domain name (FQDN) of an Active Directory domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: `mymanagedADtest.mymanagedAD.mydomain` + """ + domain_ou: str | None = ... + """ + The Active Directory organizational unit for your DB instance to join. + + Constraints: + + - Must be in the distinguished name format. + + - Can't be longer than 64 characters. + + Example: + `OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain` + """ + domain_auth_secret_arn: str | None = ... + """ + The ARN for the Secrets Manager secret with the credentials for the user + joining the domain. + + Constraints: + + - Can't be longer than 64 characters. + + Example: + `arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456` + """ + domain_dns_ips: list[str] | None = ... + """ + The IPv4 DNS IP addresses of your primary and secondary Active Directory + domain controllers. + + Constraints: + + - Two IP addresses must be provided. If there isn't a secondary domain + controller, use the IP address of the primary domain controller for + both entries in the list. + + Example: `123.124.125.126,234.235.236.237` + """ + enable_iam_database_authentication: bool | None = ... + """ + Specifies whether to enable mapping of Amazon Web Services Identity and + Access Management (IAM) accounts to database accounts. By default, + mapping isn't enabled. + + This setting doesn't apply to RDS Custom. + + For more information about IAM database authentication, see [IAM + Database Authentication for MySQL and + PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) + in the *Amazon RDS User Guide.* + """ + enable_cloudwatch_logs_exports: list[str] | None = ... + """ + The list of logs that the restored DB instance is to export to + CloudWatch Logs. The values in the list depend on the DB engine being + used. For more information, see [Publishing Database Logs to Amazon + CloudWatch + Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom. + """ + processor_features: list[ProcessorFeature] | None = ... + """ + The number of CPU cores and the number of threads per core for the DB + instance class of the DB instance. + + This setting doesn't apply to RDS Custom. + """ + use_default_processor_features: bool | None = ... + """ + Specifies whether the DB instance class of the DB instance uses its + default processor features. + + This setting doesn't apply to RDS Custom. + """ + db_parameter_group_name: str | None = ... + """ + The name of the DB parameter group to associate with this DB instance. + + If you do not specify a value for `DBParameterGroupName`, then the + default `DBParameterGroup` for the specified DB engine is used. + + This setting doesn't apply to RDS Custom. + + Constraints: + + - If supplied, must match the name of an existing DB parameter group. + + - Must be 1 to 255 letters, numbers, or hyphens. + + - First character must be a letter. + + - Can't end with a hyphen or contain two consecutive hyphens. + """ + deletion_protection: bool | None = ... + """ + Specifies whether the DB instance has deletion protection enabled. The + database can't be deleted when deletion protection is enabled. By + default, deletion protection isn't enabled. For more information, see + [Deleting a DB + Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + """ + source_dbi_resource_id: str | None = ... + """The resource ID of the source DB instance from which to restore.""" + max_allocated_storage: int | None = ... + """ + The upper limit in gibibytes (GiB) to which Amazon RDS can automatically + scale the storage of the DB instance. + + For more information about this setting, including limitations that + apply to it, see [Managing capacity automatically with Amazon RDS + storage + autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to RDS Custom. + """ + enable_customer_owned_ip: bool | None = ... + """ + Specifies whether to enable a customer-owned IP address (CoIP) for an + RDS on Outposts DB instance. + + A *CoIP* provides local or external connectivity to resources in your + Outpost subnets through your on-premises network. For some use cases, a + CoIP can provide lower latency for connections to the DB instance from + outside of its virtual private cloud (VPC) on your local network. + + This setting doesn't apply to RDS Custom. + + For more information about RDS on Outposts, see [Working with Amazon RDS + on Amazon Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + + For more information about CoIPs, see [Customer-owned IP + addresses](https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing) + in the *Amazon Web Services Outposts User Guide*. + """ + network_type: str | None = ... + """ + The network type of the DB instance. + + The network type is determined by the `DBSubnetGroup` specified for the + DB instance. A `DBSubnetGroup` can support only the IPv4 protocol or the + IPv4 and the IPv6 protocols (`DUAL`). + + For more information, see [Working with a DB instance in a + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) + in the *Amazon RDS User Guide.* + + Valid Values: + + - `IPV4` + + - `DUAL` + """ + source_db_instance_automated_backups_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the replicated automated backups from + which to restore, for example, + `arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE`. + + This setting doesn't apply to RDS Custom. + """ + backup_target: str | None = ... + """ + The location for storing automated backups and manual snapshots for the + restored DB instance. + + Valid Values: + + - `local` (Dedicated Local Zone) + + - `outposts` (Amazon Web Services Outposts) + + - `region` (Amazon Web Services Region) + + Default: `region` + + For more information, see [Working with Amazon RDS on Amazon Web + Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide*. + """ + custom_iam_instance_profile: str | None = ... + """ + The instance profile associated with the underlying Amazon EC2 instance + of an RDS Custom DB instance. The instance profile must meet the + following requirements: + + - The profile must exist in your account. + + - The profile must have an IAM role that Amazon EC2 has permissions to + assume. + + - The instance profile name and the associated IAM role name must start + with the prefix `AWSRDSCustom`. + + For the list of permissions required for the IAM role, see [Configure + IAM and your + VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) + in the *Amazon RDS User Guide*. + + This setting is required for RDS Custom. + """ + allocated_storage: int | None = ... + """ + The amount of storage (in gibibytes) to allocate initially for the DB + instance. Follow the allocation rules specified in `CreateDBInstance`. + + This setting isn't valid for RDS for SQL Server. + + Note: + Be sure to allocate enough storage for your new DB instance so that the + restore operation can succeed. You can also allocate additional storage + for future growth. + """ + backup_retention_period: int | None = ... + """ + The number of days to retain automated backups. Setting this parameter + to a positive number enables backups. Setting this parameter to 0 + disables automated backups. + + Note: + Enabling and disabling backups can result in a brief I/O suspension that + lasts from a few seconds to a few minutes, depending on the size and + class of your DB instance. + + This setting doesn't apply to Amazon Aurora DB instances. The retention + period for automated backups is managed by the DB cluster. For more + information, see `ModifyDBCluster`. + + Default: Uses existing setting + + Constraints: + + - Must be a value from 0 to 35. + + - Can't be set to 0 if the DB instance is a source to read replicas. + + - Can't be set to 0 for an RDS Custom for Oracle DB instance. + """ + preferred_backup_window: str | None = ... + """ + The daily time range during which automated backups are created if + automated backups are enabled, as determined by the + `BackupRetentionPeriod` parameter. Changing this parameter doesn't + result in an outage and the change is asynchronously applied as soon as + possible. The default is a 30-minute window selected at random from an + 8-hour block of time for each Amazon Web Services Region. For more + information, see [Backup + window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) + in the *Amazon RDS User Guide*. + + This setting doesn't apply to Amazon Aurora DB instances. The daily + time range for creating automated backups is managed by the DB cluster. + For more information, see `ModifyDBCluster`. + + Constraints: + + - Must be in the format `hh24:mi-hh24:mi`. + + - Must be in Universal Coordinated Time (UTC). + + - Must not conflict with the preferred maintenance window. + + - Must be at least 30 minutes. + """ + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation to associate + with this DB instance. You can specify the identifier, which has the + prefix `dbcr-`, or the reservation name. When you specify this + parameter, the DB instance uses reserved capacity from the specified + reservation. + + If you specify `AvailabilityZone`, Amazon RDS places the DB instance in + that Availability Zone, and the reservation must cover it. + + Constraints: + + - The reservation must reserve capacity for the DB instance class and + the database engine of the DB instance. + + - If the reservation reserves capacity for a specific license model, the + license model of the DB instance must match it. + + - The reservation must be in the `active` state, and it must not be past + its end date. + + - If you specify `AvailabilityZone`, it must be one of the Availability + Zones of the reservation. + + - For a Multi-AZ DB instance, the reservation must cover two or more + Availability Zones. A Multi-AZ DB instance uses one unit of reserved + capacity in each of two Availability Zones. If the reservation covers + more than two Availability Zones, Amazon RDS chooses the two that the + DB instance uses. + + - The reservation must have available capacity in each Availability Zone + that the DB instance uses. + + - The DB subnet group must be in a VPC with default tenancy. + + - The DB subnet group must cover each Availability Zone that the DB + instance uses. + """ + dedicated_log_volume: bool | None = ... + """ + Specifies whether to enable a dedicated log volume (DLV) for the DB + instance. + """ + ca_certificate_identifier: str | None = ... + """ + The CA certificate identifier to use for the DB instance's server + certificate. + + This setting doesn't apply to RDS Custom DB instances. + + For more information, see [Using SSL/TLS to encrypt a connection to a DB + instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) + in the *Amazon RDS User Guide* and [Using SSL/TLS to encrypt a + connection to a DB + cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) + in the *Amazon Aurora User Guide*. + """ + engine_lifecycle_support: str | None = ... + """ + The lifecycle type for this DB instance. + + Note: + By default, this value is set to `open-source-rds-extended-support`, + which enrolls your DB instance into Amazon RDS Extended Support. At the + end of standard support, you can avoid charges for Extended Support by + setting the value to `open-source-rds-extended-support-disabled`. In + this case, RDS automatically upgrades your restored DB instance to a + higher engine version, if the major engine version is past its end of + standard support date. + + You can use this setting to enroll your DB instance into Amazon RDS + Extended Support. With RDS Extended Support, you can run the selected + major engine version on your DB instance past the end of standard + support for that engine version. For more information, see [Amazon RDS + Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide*. + + This setting applies only to RDS for MySQL and RDS for PostgreSQL. For + Amazon Aurora DB instances, the engine lifecycle support is managed by + the DB cluster. + + Valid Values: + `open-source-rds-extended-support | open-source-rds-extended-support-disabled` + + Default: `open-source-rds-extended-support` + """ + additional_storage_volumes: list[AdditionalStorageVolume] | None = ... + """ + A list of additional storage volumes to restore to the DB instance. You + can restore up to three additional storage volumes using the names + `rdsdbdata2`, `rdsdbdata3`, and `rdsdbdata4`. Additional storage volumes + are supported for RDS for Oracle and RDS for SQL Server DB instances + only. + """ + tag_specifications: list[TagSpecification] | None = ... + """ + Tags to assign to resources associated with the DB instance. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + """ + manage_master_user_password: bool | None = ... + """ + Specifies whether to manage the master user password with Amazon Web + Services Secrets Manager in the restored DB instance. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide*. + + Constraints: + + - Applies to RDS for Oracle only. + """ + master_user_secret_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier to encrypt a secret that is + automatically generated and managed in Amazon Web Services Secrets + Manager. + + This setting is valid only if the master user password is managed by RDS + in Amazon Web Services Secrets Manager for the DB instance. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. To use a KMS key in a different + Amazon Web Services account, specify the key ARN or alias ARN. + + If you don't specify `MasterUserSecretKmsKeyId`, then the + `aws/secretsmanager` KMS key is used to encrypt the secret. If the + secret is in a different Amazon Web Services account, then you can't + use the `aws/secretsmanager` KMS key to encrypt the secret, and you must + use a customer managed KMS key. + + There is a default KMS key for your Amazon Web Services account. Your + Amazon Web Services account has a different default KMS key for each + Amazon Web Services Region. + """ + +@dataclass(kw_only=True) +class RestoreDBInstanceToPointInTimeOutput(_SerdeShape): + """Dataclass for RestoreDBInstanceToPointInTimeOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreWindow(_SerdeShape): + """Earliest and latest time an instance can be restored to:""" + + earliest_time: datetime | None = ... + """The earliest time you can restore an instance to.""" + latest_time: datetime | None = ... + """The latest time you can restore an instance to.""" + +@dataclass(kw_only=True) +class RevokeDBSecurityGroupIngressInput(_SerdeShape): + """""" + + db_security_group_name: str | None = ... + """The name of the DB security group to revoke ingress from.""" + cidrip: str | None = ... + """ + The IP range to revoke access from. Must be a valid CIDR range. If + `CIDRIP` is specified, `EC2SecurityGroupName`, `EC2SecurityGroupId` and + `EC2SecurityGroupOwnerId` can't be provided. + """ + ec2_security_group_name: str | None = ... + """ + The name of the EC2 security group to revoke access from. For VPC DB + security groups, `EC2SecurityGroupId` must be provided. Otherwise, + EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + ec2_security_group_id: str | None = ... + """ + The id of the EC2 security group to revoke access from. For VPC DB + security groups, `EC2SecurityGroupId` must be provided. Otherwise, + EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + ec2_security_group_owner_id: str | None = ... + """ + The Amazon Web Services account number of the owner of the EC2 security + group specified in the `EC2SecurityGroupName` parameter. The Amazon Web + Services access key ID isn't an acceptable value. For VPC DB security + groups, `EC2SecurityGroupId` must be provided. Otherwise, + EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or + `EC2SecurityGroupId` must be provided. + """ + +@dataclass(kw_only=True) +class RevokeDBSecurityGroupIngressOutput(_SerdeShape): + """Dataclass for RevokeDBSecurityGroupIngressOutput structure.""" + + db_security_group: DBSecurityGroup | None = ... + """ + Contains the details for an Amazon RDS DB security group. + + This data type is used as a response element in the + `DescribeDBSecurityGroups` action. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ScalarReferenceDetails(_SerdeShape): + """The metric reference details when the reference is a scalar.""" + + value: float | None = ... + """The value of a scalar reference.""" + +@dataclass(kw_only=True) +class ScalingConfiguration(_SerdeShape): + """ + Contains the scaling configuration of an Aurora Serverless v1 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + """ + + min_capacity: int | None = ... + """ + The minimum capacity for an Aurora DB cluster in `serverless` DB engine + mode. + + For Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, + `32`, `64`, `128`, and `256`. + + For Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, + `32`, `64`, `192`, and `384`. + + The minimum capacity must be less than or equal to the maximum capacity. + """ + max_capacity: int | None = ... + """ + The maximum capacity for an Aurora DB cluster in `serverless` DB engine + mode. + + For Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, + `32`, `64`, `128`, and `256`. + + For Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, + `32`, `64`, `192`, and `384`. + + The maximum capacity must be greater than or equal to the minimum + capacity. + """ + auto_pause: bool | None = ... + """ + Indicates whether to allow or disallow automatic pause for an Aurora DB + cluster in `serverless` DB engine mode. A DB cluster can be paused only + when it's idle (it has no connections). + + Note: + If a DB cluster is paused for more than seven days, the DB cluster might + be backed up with a snapshot. In this case, the DB cluster is restored + when there is a request to connect to it. + """ + seconds_until_auto_pause: int | None = ... + """ + The time, in seconds, before an Aurora DB cluster in `serverless` mode + is paused. + + Specify a value between 300 and 86,400 seconds. + """ + timeout_action: str | None = ... + """ + The action to take when the timeout is reached, either + `ForceApplyCapacityChange` or `RollbackCapacityChange`. + + `ForceApplyCapacityChange` sets the capacity to the specified value as + soon as possible. + + `RollbackCapacityChange`, the default, ignores the capacity change if a + scaling point isn't found in the timeout period. + + Warning: + If you specify `ForceApplyCapacityChange`, connections that prevent + Aurora Serverless v1 from finding a scaling point might be dropped. + + For more information, see [Autoscaling for Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling) + in the *Amazon Aurora User Guide*. + """ + seconds_before_timeout: int | None = ... + """ + The amount of time, in seconds, that Aurora Serverless v1 tries to find + a scaling point to perform seamless scaling before enforcing the timeout + action. The default is 300. + + Specify a value between 60 and 600 seconds. + """ + +@dataclass(kw_only=True) +class ScalingConfigurationInfo(_SerdeShape): + """ + The scaling configuration for an Aurora DB cluster in `serverless` DB + engine mode. + + For more information, see [Using Amazon Aurora Serverless + v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) + in the *Amazon Aurora User Guide*. + """ + + min_capacity: int | None = ... + """ + The minimum capacity for an Aurora DB cluster in `serverless` DB engine + mode. + """ + max_capacity: int | None = ... + """ + The maximum capacity for an Aurora DB cluster in `serverless` DB engine + mode. + """ + auto_pause: bool | None = ... + """ + Indicates whether automatic pause is allowed for the Aurora DB cluster + in `serverless` DB engine mode. + + When the value is set to false for an Aurora Serverless v1 DB cluster, + the DB cluster automatically resumes. + """ + seconds_until_auto_pause: int | None = ... + """ + The remaining amount of time, in seconds, before the Aurora DB cluster + in `serverless` mode is paused. A DB cluster can be paused only when + it's idle (it has no connections). + """ + timeout_action: str | None = ... + """ + The action that occurs when Aurora times out while attempting to change + the capacity of an Aurora Serverless v1 cluster. The value is either + `ForceApplyCapacityChange` or `RollbackCapacityChange`. + + `ForceApplyCapacityChange`, the default, sets the capacity to the + specified value as soon as possible. + + `RollbackCapacityChange` ignores the capacity change if a scaling point + isn't found in the timeout period. + """ + seconds_before_timeout: int | None = ... + """ + The number of seconds before scaling times out. What happens when an + attempted scaling action times out is determined by the `TimeoutAction` + setting. + """ + +@dataclass(kw_only=True) +class ServerlessV2FeaturesSupport(_SerdeShape): + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora engine versions and platform versions. You can test the + values of this attribute when deciding which Aurora version to use in a + new or upgraded DB cluster. You can also retrieve the version of an + existing DB cluster and check whether that version supports certain + Aurora Serverless v2 features before you attempt to use those features. + """ + + min_capacity: float | None = ... + """ + If the minimum capacity is 0 ACUs, the engine version or platform + version supports the automatic pause/resume feature of Aurora Serverless + v2. + """ + max_capacity: float | None = ... + """ + Specifies the upper Aurora Serverless v2 capacity limit for a particular + engine version or platform version. Depending on the engine version, the + maximum capacity for an Aurora Serverless v2 cluster might be `256` or + `128`. + """ + +@dataclass(kw_only=True) +class ServerlessV2PlatformVersionInfo(_SerdeShape): + """ + This data type is used as a response element in the action + `DescribeServerlessV2PlatformVersions`. + """ + + serverless_v2_platform_version: str | None = ... + """The version number of the serverless platform.""" + serverless_v2_platform_version_description: str | None = ... + """The description of the serverless platform.""" + engine: str | None = ... + """The name of the database engine.""" + serverless_v2_features_support: ServerlessV2FeaturesSupport | None = ... + """ + Specifies any Aurora Serverless v2 properties or limits that differ + between Aurora Serverless v2 platform versions. You can retrieve the + platform version of an existing DB cluster and check whether that + version supports certain Aurora Serverless v2 features before you + attempt to use those features. + """ + status: str | None = ... + """ + The status of the serverless platform. Valid statuses are the following: + + - `enabled` - The platform version is in use. + + - `disabled` - The platform version is not in use. + """ + is_default: bool | None = ... + """ + Indicates whether this platform version is the default version for the + engine. The default platform version is the version used for new DB + clusters. + """ + +@dataclass(kw_only=True) +class ServerlessV2ScalingConfiguration(_SerdeShape): + """ + Contains the scaling configuration of an Aurora Serverless v2 DB + cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + + min_capacity: float | None = ... + """ + The minimum number of Aurora capacity units (ACUs) for a DB instance in + an Aurora Serverless v2 cluster. You can specify ACU values in half-step + increments, such as 8, 8.5, 9, and so on. For Aurora versions that + support the Aurora Serverless v2 auto-pause feature, the smallest value + that you can use is 0. For versions that don't support Aurora + Serverless v2 auto-pause, the smallest value that you can use is 0.5. + """ + max_capacity: float | None = ... + """ + The maximum number of Aurora capacity units (ACUs) for a DB instance in + an Aurora Serverless v2 cluster. You can specify ACU values in half-step + increments, such as 32, 32.5, 33, and so on. The largest value that you + can use is 256 for recent Aurora versions, or 128 for older versions. + You can check the attributes of your engine version or platform version + to determine the specific maximum capacity supported. + """ + seconds_until_auto_pause: int | None = ... + """ + Specifies the number of seconds an Aurora Serverless v2 DB instance must + be idle before Aurora attempts to automatically pause it. + + Specify a value between 300 seconds (five minutes) and 86,400 seconds + (one day). The default is 300 seconds. + """ + +@dataclass(kw_only=True) +class ServerlessV2ScalingConfigurationInfo(_SerdeShape): + """ + The scaling configuration for an Aurora Serverless v2 DB cluster. + + For more information, see [Using Amazon Aurora Serverless + v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) + in the *Amazon Aurora User Guide*. + """ + + min_capacity: float | None = ... + """ + The minimum number of Aurora capacity units (ACUs) for a DB instance in + an Aurora Serverless v2 cluster. You can specify ACU values in half-step + increments, such as 8, 8.5, 9, and so on. For Aurora versions that + support the Aurora Serverless v2 auto-pause feature, the smallest value + that you can use is 0. For versions that don't support Aurora + Serverless v2 auto-pause, the smallest value that you can use is 0.5. + """ + max_capacity: float | None = ... + """ + The maximum number of Aurora capacity units (ACUs) for a DB instance in + an Aurora Serverless v2 cluster. You can specify ACU values in half-step + increments, such as 32, 32.5, 33, and so on. The largest value that you + can use is 256 for recent Aurora versions, or 128 for older versions. + You can check the attributes of your engine version or platform version + to determine the specific maximum capacity supported. + """ + seconds_until_auto_pause: int | None = ... + """ + The number of seconds an Aurora Serverless v2 DB instance must be idle + before Aurora attempts to automatically pause it. This property is only + shown when the minimum capacity for the cluster is set to 0 ACUs. + Changing the minimum capacity to a nonzero value removes this property. + If you later change the minimum capacity back to 0 ACUs, this property + is reset to its default value unless you specify it again. + + This value ranges between 300 seconds (five minutes) and 86,400 seconds + (one day). The default is 300 seconds. + """ + +@dataclass(kw_only=True) +class SharedSnapshotQuotaExceededFault(ServiceError, _SerdeShape): + """ + You have exceeded the maximum number of accounts that you can share a + manual DB snapshot with. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SnapshotQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed number of DB + snapshots. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SNSInvalidTopicFault(ServiceError, _SerdeShape): + """SNS has responded that there is a problem with the SNS topic specified.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SNSNoAuthorizationFault(ServiceError, _SerdeShape): + """You do not have permission to publish to the SNS topic ARN.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SNSTopicArnNotFoundFault(ServiceError, _SerdeShape): + """The SNS topic ARN does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SourceClusterNotSupportedFault(ServiceError, _SerdeShape): + """The source DB cluster isn't supported for a blue/green deployment.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SourceDatabaseNotSupportedFault(ServiceError, _SerdeShape): + """The source DB instance isn't supported for a blue/green deployment.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SourceNotFoundFault(ServiceError, _SerdeShape): + """The requested source could not be found.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SourceRegion(_SerdeShape): + """ + Contains an Amazon Web Services Region name as the result of a + successful call to the `DescribeSourceRegions` action. + """ + + region_name: str | None = ... + """The name of the source Amazon Web Services Region.""" + endpoint: str | None = ... + """The endpoint for the source Amazon Web Services Region endpoint.""" + status: str | None = ... + """The status of the source Amazon Web Services Region.""" + supports_db_instance_automated_backups_replication: bool | None = ... + """ + Indicates whether the source Amazon Web Services Region supports + replicating automated backups to the current Amazon Web Services Region. + """ + +class SourceType(UnknownEnumMixin, StrEnum): + DB_INSTANCE = "db-instance" + DB_PARAMETER_GROUP = "db-parameter-group" + DB_SECURITY_GROUP = "db-security-group" + DB_SNAPSHOT = "db-snapshot" + DB_CLUSTER = "db-cluster" + DB_CLUSTER_SNAPSHOT = "db-cluster-snapshot" + CUSTOM_ENGINE_VERSION = "custom-engine-version" + DB_PROXY = "db-proxy" + BLUE_GREEN_DEPLOYMENT = "blue-green-deployment" + DB_SHARD_GROUP = "db-shard-group" + ZERO_ETL = "zero-etl" + +@dataclass(kw_only=True) +class StartActivityStreamInput(_SerdeShape): + """Dataclass for StartActivityStreamInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the DB cluster, for example, + `arn:aws:rds:us-east-1:12345667890:cluster:das-cluster`. + """ + mode: str | None = ... + """ + Specifies the mode of the database activity stream. Database events such + as a change or access generate an activity stream event. The database + session can handle these events either synchronously or asynchronously. + """ + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encrypting messages in + the database activity stream. The Amazon Web Services KMS key identifier + is the key ARN, key ID, alias ARN, or alias name for the KMS key. + """ + apply_immediately: bool | None = ... + """ + Specifies whether or not the database activity stream is to start as + soon as possible, regardless of the maintenance window for the database. + """ + engine_native_audit_fields_included: bool | None = ... + """ + Specifies whether the database activity stream includes engine-native + audit fields. This option applies to an Oracle or Microsoft SQL Server + DB instance. By default, no engine-native audit fields are included. + """ + +@dataclass(kw_only=True) +class StartActivityStreamOutput(_SerdeShape): + """Dataclass for StartActivityStreamOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of messages in + the database activity stream. + """ + kinesis_stream_name: str | None = ... + """ + The name of the Amazon Kinesis data stream to be used for the database + activity stream. + """ + status: str | None = ... + """The status of the database activity stream.""" + mode: str | None = ... + """The mode of the database activity stream.""" + engine_native_audit_fields_included: bool | None = ... + """ + Indicates whether engine-native audit fields are included in the + database activity stream. + """ + apply_immediately: bool | None = ... + """ + Indicates whether or not the database activity stream will start as soon + as possible, regardless of the maintenance window for the database. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartDBClusterInput(_SerdeShape): + """Dataclass for StartDBClusterInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the Amazon Aurora DB cluster to be started. + This parameter is stored as a lowercase string. + """ + +@dataclass(kw_only=True) +class StartDBClusterOutput(_SerdeShape): + """Dataclass for StartDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartDBInstanceAutomatedBackupsReplicationInput(_SerdeShape): + """Dataclass for StartDBInstanceAutomatedBackupsReplicationInput structure.""" + + source_db_instance_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the source DB instance for the + replicated automated backups, for example, + `arn:aws:rds:us-west-2:123456789012:db:mydatabase`. + """ + backup_retention_period: int | None = ... + """The retention period for the replicated automated backups.""" + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of the + replicated automated backups. The KMS key ID is the Amazon Resource Name + (ARN) for the KMS encryption key in the destination Amazon Web Services + Region, for example, + `arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE`. + """ + pre_signed_url: str | None = ... + """ + In an Amazon Web Services GovCloud (US) Region, an URL that contains a + Signature Version 4 signed request for the + `StartDBInstanceAutomatedBackupsReplication` operation to call in the + Amazon Web Services Region of the source DB instance. The presigned URL + must be a valid request for the + `StartDBInstanceAutomatedBackupsReplication` API operation that can run + in the Amazon Web Services Region that contains the source DB instance. + + This setting applies only to Amazon Web Services GovCloud (US) Regions. + It's ignored in other Amazon Web Services Regions. + + To learn how to generate a Signature Version 4 signed request, see + [Authenticating Requests: Using Query Parameters (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) + and [Signature Version 4 Signing + Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + + Note: + If you are using an Amazon Web Services SDK tool or the CLI, you can + specify `SourceRegion` (or `--source-region` for the CLI) instead of + specifying `PreSignedUrl` manually. Specifying `SourceRegion` + autogenerates a presigned URL that is a valid request for the operation + that can run in the source Amazon Web Services Region. + """ + tags: list[Tag] | None = ... + """A list of tags to associate with the replicated automated backups.""" + +@dataclass(kw_only=True) +class StartDBInstanceAutomatedBackupsReplicationOutput(_SerdeShape): + """ + Dataclass for StartDBInstanceAutomatedBackupsReplicationOutput + structure. + """ + + db_instance_automated_backup: DBInstanceAutomatedBackup | None = ... + """ + An automated backup of a DB instance. It consists of system backups, + transaction logs, and the database instance properties that existed at + the time you deleted the source instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartDBInstanceInput(_SerdeShape): + """Dataclass for StartDBInstanceInput structure.""" + + db_instance_identifier: str | None = ... + """The user-supplied instance identifier.""" + db_capacity_reservation_identifier: str | None = ... + """ + The identifier or the name of the DB capacity reservation for the DB + instance to use after it starts. You can specify the identifier, which + has the prefix `dbcr-`, or the reservation name. + + Specify this parameter when the DB instance stopped using a reservation, + or when you want the DB instance to use a different reservation. + + If you omit this parameter, and the DB instance kept a DB capacity + reservation when it stopped, Amazon RDS starts the DB instance in that + reservation. + + If that reservation is deleted, ended, or cancelled, the DB instance + still starts. Amazon RDS starts the DB instance outside the reservation, + on unreserved capacity, and it charges on-demand prices for the DB + instance. + + If that reservation has no available capacity in the Availability Zone + of the DB instance, the request fails. Amazon RDS doesn't start the DB + instance, and it doesn't wait for capacity in that Availability Zone. + Specify a reservation that has available capacity in that Availability + Zone, or retry the request after the reservation has available capacity. + + Constraints: + + - The reservation must be in the `active` state. + + - The reservation must reserve capacity for the DB instance class and + the engine of the DB instance. + + - The reservation must cover the Availability Zone of the DB instance, + and it must have available capacity in that Availability Zone. + """ + +@dataclass(kw_only=True) +class StartDBInstanceOutput(_SerdeShape): + """Dataclass for StartDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StartExportTaskInput(_SerdeShape): + """Dataclass for StartExportTaskInput structure.""" + + export_task_identifier: str | None = ... + """ + A unique identifier for the export task. This ID isn't an identifier + for the Amazon S3 bucket where the data is to be exported. + """ + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the snapshot or cluster to export to + Amazon S3. + """ + s3_bucket_name: str | None = ... + """ + The name of the Amazon S3 bucket to export the snapshot or cluster data + to. + """ + iam_role_arn: str | None = ... + """ + The name of the IAM role to use for writing to the Amazon S3 bucket when + exporting a snapshot or cluster. + + In the IAM policy attached to your IAM role, include the following + required actions to allow the transfer of files from Amazon RDS or + Amazon Aurora to an S3 bucket: + + - s3:PutObject* + + - s3:GetObject* + + - s3:ListBucket + + - s3:DeleteObject* + + - s3:GetBucketLocation + + In the policy, include the resources to identify the S3 bucket and + objects in the bucket. The following list of resources shows the Amazon + Resource Name (ARN) format for accessing S3: + + - `arn:aws:s3:::`*`your-s3-bucket`*` ` + + - `arn:aws:s3:::`*`your-s3-bucket`*`/*` + """ + kms_key_id: str | None = ... + """ + The ID of the Amazon Web Services KMS key to use to encrypt the data + exported to Amazon S3. The Amazon Web Services KMS key identifier is the + key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of + this operation must be authorized to run the following operations. These + can be set in the Amazon Web Services KMS key policy: + + - kms:CreateGrant + + - kms:DescribeKey + """ + s3_prefix: str | None = ... + """ + The Amazon S3 bucket prefix to use as the file name and path of the + exported data. + """ + export_only: list[str] | None = ... + """ + The data to be exported from the snapshot or cluster. If this parameter + isn't provided, all of the data is exported. + + Valid Values: + + - `database` - Export all the data from a specified database. + + - `database.table` *table-name* - Export a table of the snapshot or + cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, + and Aurora MySQL. + + - `database.schema` *schema-name* - Export a database schema of the + snapshot or cluster. This format is valid only for RDS for PostgreSQL + and Aurora PostgreSQL. + + - `database.schema.table` *table-name* - Export a table of the database + schema. This format is valid only for RDS for PostgreSQL and Aurora + PostgreSQL. + """ + +@dataclass(kw_only=True) +class StartExportTaskOutput(_SerdeShape): + """ + Contains the details of a snapshot or cluster export to Amazon S3. + + This data type is used as a response element in the + `DescribeExportTasks` operation. + """ + + export_task_identifier: str | None = ... + """ + A unique identifier for the snapshot or cluster export task. This ID + isn't an identifier for the Amazon S3 bucket where the data is + exported. + """ + source_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the snapshot or cluster exported to + Amazon S3. + """ + export_only: list[str] | None = ... + """ + The data exported from the snapshot or cluster. + + Valid Values: + + - `database` - Export all the data from a specified database. + + - `database.table` *table-name* - Export a table of the snapshot or + cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, + and Aurora MySQL. + + - `database.schema` *schema-name* - Export a database schema of the + snapshot or cluster. This format is valid only for RDS for PostgreSQL + and Aurora PostgreSQL. + + - `database.schema.table` *table-name* - Export a table of the database + schema. This format is valid only for RDS for PostgreSQL and Aurora + PostgreSQL. + """ + snapshot_time: datetime | None = ... + """The time when the snapshot was created.""" + task_start_time: datetime | None = ... + """The time when the snapshot or cluster export task started.""" + task_end_time: datetime | None = ... + """The time when the snapshot or cluster export task ended.""" + s3_bucket: str | None = ... + """The Amazon S3 bucket where the snapshot or cluster is exported to.""" + s3_prefix: str | None = ... + """ + The Amazon S3 bucket prefix that is the file name and path of the + exported data. + """ + iam_role_arn: str | None = ... + """ + The name of the IAM role that is used to write to Amazon S3 when + exporting a snapshot or cluster. + """ + kms_key_id: str | None = ... + """ + The key identifier of the Amazon Web Services KMS key that is used to + encrypt the data when it's exported to Amazon S3. The KMS key + identifier is its key ARN, key ID, alias ARN, or alias name. The IAM + role used for the export must have encryption and decryption permissions + to use this KMS key. + """ + status: str | None = ... + """ + The progress status of the export task. The status can be one of the + following: + + - `CANCELED` + + - `CANCELING` + + - `COMPLETE` + + - `FAILED` + + - `IN_PROGRESS` + + - `STARTING` + """ + percent_progress: int | None = ... + """The progress of the snapshot or cluster export task as a percentage.""" + total_extracted_data_in_gb: int | None = ... + """The total amount of data exported, in gigabytes.""" + failure_cause: str | None = ... + """The reason the export failed, if it failed.""" + warning_message: str | None = ... + """A warning about the snapshot or cluster export task.""" + source_type: str | None = ... + """The type of source for the export.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopActivityStreamInput(_SerdeShape): + """Dataclass for StopActivityStreamInput structure.""" + + resource_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the DB cluster for the database + activity stream. For example, + `arn:aws:rds:us-east-1:12345667890:cluster:das-cluster`. + """ + apply_immediately: bool | None = ... + """ + Specifies whether or not the database activity stream is to stop as soon + as possible, regardless of the maintenance window for the database. + """ + +@dataclass(kw_only=True) +class StopActivityStreamOutput(_SerdeShape): + """Dataclass for StopActivityStreamOutput structure.""" + + kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier used for encrypting messages + in the database activity stream. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + """ + kinesis_stream_name: str | None = ... + """ + The name of the Amazon Kinesis data stream used for the database + activity stream. + """ + status: str | None = ... + """The status of the database activity stream.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopDBClusterInput(_SerdeShape): + """Dataclass for StopDBClusterInput structure.""" + + db_cluster_identifier: str | None = ... + """ + The DB cluster identifier of the Amazon Aurora DB cluster to be stopped. + This parameter is stored as a lowercase string. + """ + +@dataclass(kw_only=True) +class StopDBClusterOutput(_SerdeShape): + """Dataclass for StopDBClusterOutput structure.""" + + db_cluster: DBCluster | None = ... + """ + Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB + cluster. + + For an Amazon Aurora DB cluster, this data type is used as a response + element in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `PromoteReadReplicaDBCluster`, `RestoreDBClusterFromS3`, + `RestoreDBClusterFromSnapshot`, `RestoreDBClusterToPointInTime`, + `StartDBCluster`, and `StopDBCluster`. + + For a Multi-AZ DB cluster, this data type is used as a response element + in the operations `CreateDBCluster`, `DeleteDBCluster`, + `DescribeDBClusters`, `FailoverDBCluster`, `ModifyDBCluster`, + `RebootDBCluster`, `RestoreDBClusterFromSnapshot`, and + `RestoreDBClusterToPointInTime`. + + For more information on Amazon Aurora DB clusters, see [What is Amazon + Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) + in the *Amazon Aurora User Guide.* + + For more information on Multi-AZ DB clusters, see [Multi-AZ deployments + with two readable standby DB + instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) + in the *Amazon RDS User Guide.* + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopDBInstanceAutomatedBackupsReplicationInput(_SerdeShape): + """Dataclass for StopDBInstanceAutomatedBackupsReplicationInput structure.""" + + source_db_instance_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the source DB instance for which to + stop replicating automate backups, for example, + `arn:aws:rds:us-west-2:123456789012:db:mydatabase`. + """ + +@dataclass(kw_only=True) +class StopDBInstanceAutomatedBackupsReplicationOutput(_SerdeShape): + """Dataclass for StopDBInstanceAutomatedBackupsReplicationOutput structure.""" + + db_instance_automated_backup: DBInstanceAutomatedBackup | None = ... + """ + An automated backup of a DB instance. It consists of system backups, + transaction logs, and the database instance properties that existed at + the time you deleted the source instance. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StopDBInstanceInput(_SerdeShape): + """Dataclass for StopDBInstanceInput structure.""" + + db_instance_identifier: str | None = ... + """The user-supplied instance identifier.""" + db_snapshot_identifier: str | None = ... + """ + The user-supplied instance identifier of the DB Snapshot created + immediately before the DB instance is stopped. + """ + detach_from_db_capacity_reservation: bool | None = ... + """ + Specifies whether the DB instance stops using its DB capacity + reservation when the DB instance stops. When you specify `true`, the DB + instance belongs to no reservation after it stops, and a later start + launches it outside the reservation. + + By default, a stopped DB instance keeps its DB capacity reservation, and + a later start returns the DB instance to the same reservation. + + Every stop releases the unit of reserved capacity that the DB instance + holds, for either value of this parameter. Another DB instance can then + use that capacity. This parameter controls the reservation that the DB + instance belongs to, and it does not control the release of the + capacity. + + If the DB instance uses no DB capacity reservation, this parameter has + no effect. + + Warning: + Amazon RDS holds no capacity for a stopped DB instance. When the + reservation has no available capacity in the Availability Zone of the DB + instance, a later start waits for capacity in that Availability Zone. + When the DB instance belongs to no reservation, a later start can fail + because the Amazon Web Services Region has insufficient capacity for the + DB instance class. + """ + +@dataclass(kw_only=True) +class StopDBInstanceOutput(_SerdeShape): + """Dataclass for StopDBInstanceOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class StorageEncryptionType(UnknownEnumMixin, StrEnum): + UNENCRYPTED = "none" + CMK = "sse-kms" + SSE = "sse-rds" + +@dataclass(kw_only=True) +class StorageQuotaExceededFault(ServiceError, _SerdeShape): + """ + The request would result in the user exceeding the allowed amount of + storage available across all DB instances. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StorageTypeNotAvailableFault(ServiceError, _SerdeShape): + """ + The `aurora-iopt1` storage type isn't available, because you modified + the DB cluster to use this storage type less than one month ago. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class StorageTypeNotSupportedFault(ServiceError, _SerdeShape): + """The specified `StorageType` can't be associated with the DB instance.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Subnet(_SerdeShape): + """ + This data type is used as a response element for the + `DescribeDBSubnetGroups` operation. + """ + + subnet_identifier: str | None = ... + """The identifier of the subnet.""" + subnet_availability_zone: AvailabilityZone | None = ... + """ + Contains Availability Zone information. + + This data type is used as an element in the `OrderableDBInstanceOption` + data type. + """ + subnet_outpost: Outpost | None = ... + """ + If the subnet is associated with an Outpost, this value specifies the + Outpost. + + For more information about RDS on Outposts, see [Amazon RDS on Amazon + Web Services + Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) + in the *Amazon RDS User Guide.* + """ + subnet_status: str | None = ... + """The status of the subnet.""" + +@dataclass(kw_only=True) +class SubnetAlreadyInUse(ServiceError, _SerdeShape): + """The DB subnet is already in use in the Availability Zone.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubscriptionAlreadyExistFault(ServiceError, _SerdeShape): + """The supplied subscription name already exists.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubscriptionCategoryNotFoundFault(ServiceError, _SerdeShape): + """The supplied category does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SubscriptionNotFoundFault(ServiceError, _SerdeShape): + """The subscription name does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SupportedEngineLifecycle(_SerdeShape): + """ + This data type is used as a response element in the operation + `DescribeDBMajorEngineVersions`. + + You can use the information that this data type returns to plan for + upgrades. + + This data type only returns information for the open source engines + Amazon RDS for MariaDB, Amazon RDS for MySQL, Amazon RDS for PostgreSQL, + Aurora MySQL, and Aurora PostgreSQL. + """ + + lifecycle_support_name: str | None = ... + """ + The type of lifecycle support that the engine version is in. + + This parameter returns the following values: + + - `open-source-rds-standard-support` - Indicates RDS standard support or + Aurora standard support. + + - `open-source-rds-extended-support` - Indicates Amazon RDS Extended + Support. + + For Amazon RDS for MySQL, Amazon RDS for PostgreSQL, Aurora MySQL, and + Aurora PostgreSQL, this parameter returns both + `open-source-rds-standard-support` and + `open-source-rds-extended-support`. + + For Amazon RDS for MariaDB, this parameter only returns the value + `open-source-rds-standard-support`. + + For information about Amazon RDS Extended Support, see [Amazon RDS + Extended Support with Amazon + RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) + in the *Amazon RDS User Guide* and [Amazon RDS Extended Support with + Amazon + Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) + in the *Amazon Aurora User Guide*. + """ + lifecycle_support_start_date: datetime | None = ... + """ + The start date for the type of support returned by + `LifecycleSupportName`. + """ + lifecycle_support_end_date: datetime | None = ... + """The end date for the type of support returned by `LifecycleSupportName`.""" + +@dataclass(kw_only=True) +class SwitchoverBlueGreenDeploymentInput(_SerdeShape): + """Dataclass for SwitchoverBlueGreenDeploymentInput structure.""" + + blue_green_deployment_identifier: str | None = ... + """ + The resource ID of the blue/green deployment. + + Constraints: + + - Must match an existing blue/green deployment resource ID. + """ + switchover_timeout: int | None = ... + """ + The amount of time, in seconds, for the switchover to complete. + + Default: 300 + + If the switchover takes longer than the specified duration, then any + changes are rolled back, and no changes are made to the environments. + """ + +@dataclass(kw_only=True) +class SwitchoverBlueGreenDeploymentOutput(_SerdeShape): + """Dataclass for SwitchoverBlueGreenDeploymentOutput structure.""" + + blue_green_deployment: BlueGreenDeployment | None = ... + """ + Details about a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SwitchoverDetail(_SerdeShape): + """ + Contains the details about a blue/green deployment. + + For more information, see [Using Amazon RDS Blue/Green Deployments for + database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) + in the *Amazon RDS User Guide* and [Using Amazon RDS Blue/Green + Deployments for database + updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) + in the *Amazon Aurora User Guide*. + """ + + source_member: str | None = ... + """The Amazon Resource Name (ARN) of a resource in the blue environment.""" + target_member: str | None = ... + """The Amazon Resource Name (ARN) of a resource in the green environment.""" + status: str | None = ... + """ + The switchover status of a resource in a blue/green deployment. + + Values: + + - `PROVISIONING` - The resource is being prepared to switch over. + + - `AVAILABLE` - The resource is ready to switch over. + + - `SWITCHOVER_IN_PROGRESS` - The resource is being switched over. + + - `SWITCHOVER_COMPLETED` - The resource has been switched over. + + - `SWITCHOVER_FAILED` - The resource attempted to switch over but + failed. + + - `MISSING_SOURCE` - The source resource has been deleted. + + - `MISSING_TARGET` - The target resource has been deleted. + """ + +@dataclass(kw_only=True) +class SwitchoverGlobalClusterInput(_SerdeShape): + """Dataclass for SwitchoverGlobalClusterInput structure.""" + + global_cluster_identifier: str | None = ... + """ + The identifier of the global database cluster to switch over. This + parameter isn't case-sensitive. + + Constraints: + + - Must match the identifier of an existing global database cluster + (Aurora global database). + """ + target_db_cluster_identifier: str | None = ... + """ + The identifier of the secondary Aurora DB cluster to promote to the new + primary for the global database cluster. Use the Amazon Resource Name + (ARN) for the identifier so that Aurora can locate the cluster in its + Amazon Web Services Region. + """ + +@dataclass(kw_only=True) +class SwitchoverGlobalClusterOutput(_SerdeShape): + """Dataclass for SwitchoverGlobalClusterOutput structure.""" + + global_cluster: GlobalCluster | None = ... + """A data type representing an Aurora global database.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SwitchoverReadReplicaInput(_SerdeShape): + """Dataclass for SwitchoverReadReplicaInput structure.""" + + db_instance_identifier: str | None = ... + """ + The DB instance identifier of the current standby database. This value + is stored as a lowercase string. + + Constraints: + + - Must match the identifier of an existing Oracle read replica DB + instance. + """ + +@dataclass(kw_only=True) +class SwitchoverReadReplicaOutput(_SerdeShape): + """Dataclass for SwitchoverReadReplicaOutput structure.""" + + db_instance: DBInstance | None = ... + """ + Contains the details of an Amazon RDS DB instance. + + This data type is used as a response element in the operations + `CreateDBInstance`, `CreateDBInstanceReadReplica`, `DeleteDBInstance`, + `DescribeDBInstances`, `ModifyDBInstance`, `PromoteReadReplica`, + `RebootDBInstance`, `RestoreDBInstanceFromDBSnapshot`, + `RestoreDBInstanceFromS3`, `RestoreDBInstanceToPointInTime`, + `StartDBInstance`, and `StopDBInstance`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """ + Metadata assigned to an Amazon RDS resource consisting of a key-value + pair. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + + key: str | None = ... + """ + A key is the required name of the tag. The string value can be from 1 to + 128 Unicode characters in length and can't be prefixed with `aws:` or + `rds:`. The string can only contain only the set of Unicode letters, + digits, white-space, '_', '.', ':', '/', '=', '+', '-', + '@' (Java regex: + \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\"). + """ + value: str | None = ... + """ + A value is the optional value of the tag. The string value can be from 1 + to 256 Unicode characters in length and can't be prefixed with `aws:` + or `rds:`. The string can only contain only the set of Unicode letters, + digits, white-space, '_', '.', ':', '/', '=', '+', '-', + '@' (Java regex: + \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\"). + """ + +@dataclass(kw_only=True) +class TagSpecification(_SerdeShape): + """ + The tags to apply to resources when creating or modifying a DB instance + or DB cluster, or when copying a DB instance snapshot. When you specify + a tag, you must specify the resource type to tag, otherwise the request + will fail. + """ + + resource_type: str | None = ... + """ + The type of resource to tag on creation. + + Valid Values: + + - `auto-backup` - The DB instance's automated backup. + + - `cluster-auto-backup` - The DB cluster's automated backup. + + - `og` - The copied option group. Valid only for `CopyDBSnapshot`. + """ + tags: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +class TargetConnectionNetworkType(UnknownEnumMixin, StrEnum): + IPV4 = "IPV4" + IPV6 = "IPV6" + +@dataclass(kw_only=True) +class TargetHealth(_SerdeShape): + """Information about the connection health of an RDS Proxy target.""" + + state: str | None = ... + """ + The current state of the connection health lifecycle for the RDS Proxy + target. The following is a typical lifecycle example for the states of + an RDS Proxy target: + + `registering` > `unavailable` > `available` > `unavailable` > + `available` + """ + reason: str | None = ... + """The reason for the current health `State` of the RDS Proxy target.""" + description: str | None = ... + """ + A description of the health of the RDS Proxy target. If the `State` is + `AVAILABLE`, a description is not included. + """ + +class TargetHealthReason(UnknownEnumMixin, StrEnum): + UNREACHABLE = "UNREACHABLE" + CONNECTION_FAILED = "CONNECTION_FAILED" + AUTH_FAILURE = "AUTH_FAILURE" + PENDING_PROXY_CAPACITY = "PENDING_PROXY_CAPACITY" + INVALID_REPLICATION_STATE = "INVALID_REPLICATION_STATE" + PROMOTED = "PROMOTED" + +@dataclass(kw_only=True) +class TargetResourceConfiguration(_SerdeShape): + """ + The configuration for a single resource in the green environment of a + blue/green deployment. + + Use `SourceArn` to identify a resource in the blue environment. Amazon + RDS creates the corresponding resource in the green environment using + this configuration. + + This data type is a request parameter of the `CreateBlueGreenDeployment` + operation. + """ + + source_arn: str + """ + The Amazon Resource Name (ARN) of the DB cluster or DB instance in the + blue environment to which this configuration applies. + """ + target_kms_key_id: str | None = ... + """ + The Amazon Web Services KMS key identifier for encryption of the + corresponding resource in the green environment. + + The Amazon Web Services KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. + + Specify this setting in either of the following cases: + + - You want the green resource to use a different KMS key than the blue + resource. + + - The blue resource is unencrypted and you want to encrypt the green + resource. + + For Aurora, encryption applies at the DB cluster level. Specify a DB + cluster ARN in `SourceArn`. All DB instances in that cluster use the + same KMS key. + + For RDS, encryption applies at the DB instance level. Specify a DB + instance ARN in `SourceArn`. To encrypt read replicas, include a + separate entry for each one. Each entry can specify a different KMS key. + """ + +class TargetRole(UnknownEnumMixin, StrEnum): + READ_WRITE = "READ_WRITE" + READ_ONLY = "READ_ONLY" + UNKNOWN = "UNKNOWN" + +class TargetState(UnknownEnumMixin, StrEnum): + REGISTERING = "REGISTERING" + AVAILABLE = "AVAILABLE" + UNAVAILABLE = "UNAVAILABLE" + UNUSED = "UNUSED" + +class TargetType(UnknownEnumMixin, StrEnum): + RDS_INSTANCE = "RDS_INSTANCE" + RDS_SERVERLESS_ENDPOINT = "RDS_SERVERLESS_ENDPOINT" + TRACKED_CLUSTER = "TRACKED_CLUSTER" + +@dataclass(kw_only=True) +class TenantDatabase(_SerdeShape): + """ + A tenant database in the DB instance. This data type is an element in + the response to the `DescribeTenantDatabases` action. + """ + + tenant_database_create_time: datetime | None = ... + """The creation time of the tenant database.""" + db_instance_identifier: str | None = ... + """The ID of the DB instance that contains the tenant database.""" + tenant_db_name: str | None = ... + """The database name of the tenant database.""" + status: str | None = ... + """The status of the tenant database.""" + master_username: str | None = ... + """The master username of the tenant database.""" + dbi_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the DB + instance. + """ + tenant_database_resource_id: str | None = ... + """ + The Amazon Web Services Region-unique, immutable identifier for the + tenant database. + """ + tenant_database_arn: str | None = ... + """The Amazon Resource Name (ARN) for the tenant database.""" + character_set_name: str | None = ... + """The character set of the tenant database.""" + nchar_character_set_name: str | None = ... + """The `NCHAR` character set name of the tenant database.""" + deletion_protection: bool | None = ... + """Specifies whether deletion protection is enabled for the DB instance.""" + pending_modified_values: TenantDatabasePendingModifiedValues | None = ... + """Information about pending changes for a tenant database.""" + master_user_secret: MasterUserSecret | None = ... + """ + Contains the secret managed by RDS in Amazon Web Services Secrets + Manager for the master user password. + + For more information, see [Password management with Amazon Web Services + Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) + in the *Amazon RDS User Guide* and [Password management with Amazon Web + Services Secrets + Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) + in the *Amazon Aurora User Guide.* + """ + tag_list: list[Tag] | None = ... + """ + A list of tags. + + For more information, see [Tagging Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) + in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS + resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) + in the *Amazon Aurora User Guide*. + """ + +@dataclass(kw_only=True) +class TenantDatabaseAlreadyExistsFault(ServiceError, _SerdeShape): + """ + You attempted to either create a tenant database that already exists or + modify a tenant database to use the name of an existing tenant database. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TenantDatabaseNotFoundFault(ServiceError, _SerdeShape): + """The specified tenant database wasn't found in the DB instance.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TenantDatabasePendingModifiedValues(_SerdeShape): + """ + A response element in the `ModifyTenantDatabase` operation that + describes changes that will be applied. Specific changes are identified + by subelements. + """ + + master_user_password: str | None = ... + """The master password for the tenant database.""" + tenant_db_name: str | None = ... + """The name of the tenant database.""" + +@dataclass(kw_only=True) +class TenantDatabaseQuotaExceededFault(ServiceError, _SerdeShape): + """ + You attempted to create more tenant databases than are permitted in your + Amazon Web Services account. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Timezone(_SerdeShape): + """ + A time zone associated with a `DBInstance` or a `DBSnapshot`. This data + type is an element in the response to the `DescribeDBInstances`, the + `DescribeDBSnapshots`, and the `DescribeDBEngineVersions` actions. + """ + + timezone_name: str | None = ... + """The name of the time zone.""" + +@dataclass(kw_only=True) +class UnsupportedDBEngineVersionFault(ServiceError, _SerdeShape): + """ + The specified DB engine version isn't supported for Aurora Limitless + Database. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class UpgradeRolloutOrder(UnknownEnumMixin, StrEnum): + FIRST = "first" + SECOND = "second" + LAST = "last" + +@dataclass(kw_only=True) +class UpgradeTarget(_SerdeShape): + """ + The version of the database engine that a DB instance can be upgraded + to. + """ + + engine: str | None = ... + """The name of the upgrade target database engine.""" + engine_version: str | None = ... + """The version number of the upgrade target database engine.""" + description: str | None = ... + """ + The version of the database engine that a DB instance can be upgraded + to. + """ + auto_upgrade: bool | None = ... + """ + Indicates whether the target version is applied to any source DB + instances that have `AutoMinorVersionUpgrade` set to true. + + This parameter is dynamic, and is set by RDS. + """ + is_major_version_upgrade: bool | None = ... + """ + Indicates whether upgrading to the target version requires upgrading the + major version of the database engine. + """ + supported_engine_modes: list[str] | None = ... + """A list of the supported DB engine modes for the target engine version.""" + supports_parallel_query: bool | None = ... + """ + Indicates whether you can use Aurora parallel query with the target + engine version. + """ + supports_global_databases: bool | None = ... + """ + Indicates whether you can use Aurora global databases with the target + engine version. + """ + supports_babelfish: bool | None = ... + """ + Indicates whether you can use Babelfish for Aurora PostgreSQL with the + target engine version. + """ + supports_limitless_database: bool | None = ... + """ + Indicates whether the DB engine version supports Aurora Limitless + Database. + """ + supports_local_write_forwarding: bool | None = ... + """ + Indicates whether the target engine version supports forwarding write + operations from reader DB instances to the writer DB instance in the DB + cluster. By default, write operations aren't allowed on reader DB + instances. + + Valid for: Aurora DB clusters only + """ + supports_integrations: bool | None = ... + """ + Indicates whether the DB engine version supports zero-ETL integrations + with Amazon Redshift. + """ + +@dataclass(kw_only=True) +class UserAuthConfig(_SerdeShape): + """ + Specifies the details of authentication used by a proxy to log in as a + specific database user. + """ + + description: str | None = ... + """ + A user-specified description about the authentication used by a proxy to + log in as a specific database user. + """ + user_name: str | None = ... + """The name of the database user to which the proxy connects.""" + auth_scheme: str | None = ... + """ + The type of authentication that the proxy uses for connections from the + proxy to the underlying database. + """ + secret_arn: str | None = ... + """ + The Amazon Resource Name (ARN) representing the secret that the proxy + uses to authenticate to the RDS DB instance or Aurora DB cluster. These + secrets are stored within Amazon Secrets Manager. + """ + iam_auth: str | None = ... + """ + A value that indicates whether to require or disallow Amazon Web + Services Identity and Access Management (IAM) authentication for + connections to the proxy. The `ENABLED` value is valid only for proxies + with RDS for Microsoft SQL Server. + """ + client_password_auth_type: str | None = ... + """ + The type of authentication the proxy uses for connections from clients. + The following values are defaults for the corresponding engines: + + - RDS for MySQL: `MYSQL_CACHING_SHA2_PASSWORD` + + - RDS for SQL Server: `SQL_SERVER_AUTHENTICATION` + + - RDS for PostgreSQL: `POSTGRES_SCRAM_SHA2_256` + """ + +@dataclass(kw_only=True) +class UserAuthConfigInfo(_SerdeShape): + """ + Returns the details of authentication used by a proxy to log in as a + specific database user. + """ + + description: str | None = ... + """ + A user-specified description about the authentication used by a proxy to + log in as a specific database user. + """ + user_name: str | None = ... + """The name of the database user to which the proxy connects.""" + auth_scheme: str | None = ... + """ + The type of authentication that the proxy uses for connections from the + proxy to the underlying database. + """ + secret_arn: str | None = ... + """ + The Amazon Resource Name (ARN) representing the secret that the proxy + uses to authenticate to the RDS DB instance or Aurora DB cluster. These + secrets are stored within Amazon Secrets Manager. + """ + iam_auth: str | None = ... + """ + Whether to require or disallow Amazon Web Services Identity and Access + Management (IAM) authentication for connections to the proxy. + """ + client_password_auth_type: str | None = ... + """The type of authentication the proxy uses for connections from clients.""" + +@dataclass(kw_only=True) +class ValidAdditionalStorageOptions(_SerdeShape): + """ + Contains the valid options for additional storage volumes for a DB + instance. + """ + + supports_additional_storage_volumes: bool | None = ... + """Indicates whether the DB instance supports additional storage volumes.""" + volumes: list[ValidVolumeOptions] | None = ... + """The valid additional storage volume options for the DB instance.""" + +@dataclass(kw_only=True) +class ValidDBInstanceModificationsMessage(_SerdeShape): + """ + Information about valid modifications that you can make to your DB + instance. Contains the result of a successful call to the + `DescribeValidDBInstanceModifications` action. You can use this + information when you call `ModifyDBInstance`. + """ + + storage: list[ValidStorageOptions] | None = ... + """Valid storage options for your DB instance.""" + valid_processor_features: list[AvailableProcessorFeature] | None = ... + """Valid processor features for your DB instance.""" + supports_dedicated_log_volume: bool | None = ... + """ + Indicates whether a DB instance supports using a dedicated log volume + (DLV). + """ + additional_storage: ValidAdditionalStorageOptions | None = ... + """The valid additional storage options for the DB instance.""" + +@dataclass(kw_only=True) +class ValidStorageOptions(_SerdeShape): + """ + Information about valid modifications that you can make to your DB + instance. Contains the result of a successful call to the + `DescribeValidDBInstanceModifications` action. + """ + + storage_type: str | None = ... + """ + The valid storage types for your DB instance. For example: gp2, gp3, + io1, io2. + """ + storage_size: list[Range] | None = ... + """ + The valid range of storage in gibibytes (GiB). For example, 100 to + 16,384. + """ + provisioned_iops: list[Range] | None = ... + """The valid range of provisioned IOPS. For example, 1000-256,000.""" + iops_to_storage_ratio: list[DoubleRange] | None = ... + """ + The valid range of Provisioned IOPS to gibibytes of storage multiplier. + For example, 3-10, which means that provisioned IOPS can be between 3 + and 10 times storage. + """ + provisioned_storage_throughput: list[Range] | None = ... + """ + The valid range of provisioned storage throughput. For example, + 500-4,000 mebibytes per second (MiBps). + """ + storage_throughput_to_iops_ratio: list[DoubleRange] | None = ... + """ + The valid range of storage throughput to provisioned IOPS ratios. For + example, 0-0.25. + """ + supports_storage_autoscaling: bool | None = ... + """ + Indicates whether or not Amazon RDS can automatically scale storage for + DB instances that use the new instance class. + """ + +@dataclass(kw_only=True) +class ValidVolumeOptions(_SerdeShape): + """Contains the valid options for an additional storage volume.""" + + volume_name: str | None = ... + """The name of the additional storage volume.""" + storage: list[ValidStorageOptions] | None = ... + """The valid storage options for the additional storage volume.""" + +@dataclass(kw_only=True) +class VpcEncryptionControlViolationException(ServiceError, _SerdeShape): + """ + The operation violates VPC encryption control settings. Make sure that + your DB instance type supports the Nitro encryption-in-transit + capability, or modify your VPC's encryption controls to not enforce + encryption-in-transit. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class VpcSecurityGroupMembership(_SerdeShape): + """ + This data type is used as a response element for queries on VPC security + group membership. + """ + + vpc_security_group_id: str | None = ... + """The name of the VPC security group.""" + status: str | None = ... + """ + The membership status of the VPC security group. + + Currently, the only valid status is `active`. + """ + +class WriteForwardingStatus(UnknownEnumMixin, StrEnum): + ENABLED = "enabled" + DISABLED = "disabled" + ENABLING = "enabling" + DISABLING = "disabling" + UNKNOWN = "unknown" + +ADD_ROLE_TO_DB_CLUSTER: APIOperation[AddRoleToDBClusterInput, AddRoleToDBClusterOutput] +ADD_ROLE_TO_DB_INSTANCE: APIOperation[ + AddRoleToDBInstanceInput, AddRoleToDBInstanceOutput +] +ADD_SOURCE_IDENTIFIER_TO_SUBSCRIPTION: APIOperation[ + AddSourceIdentifierToSubscriptionInput, AddSourceIdentifierToSubscriptionOutput +] +ADD_TAGS_TO_RESOURCE: APIOperation[AddTagsToResourceInput, AddTagsToResourceOutput] +APPLY_PENDING_MAINTENANCE_ACTION: APIOperation[ + ApplyPendingMaintenanceActionInput, ApplyPendingMaintenanceActionOutput +] +AUTHORIZE_DB_SECURITY_GROUP_INGRESS: APIOperation[ + AuthorizeDBSecurityGroupIngressInput, AuthorizeDBSecurityGroupIngressOutput +] +BACKTRACK_DB_CLUSTER: APIOperation[BacktrackDBClusterInput, BacktrackDBClusterOutput] +CANCEL_DB_CAPACITY_RESERVATION: APIOperation[ + CancelDBCapacityReservationInput, CancelDBCapacityReservationOutput +] +CANCEL_EXPORT_TASK: APIOperation[CancelExportTaskInput, CancelExportTaskOutput] +COPY_DB_CLUSTER_PARAMETER_GROUP: APIOperation[ + CopyDBClusterParameterGroupInput, CopyDBClusterParameterGroupOutput +] +COPY_DB_CLUSTER_SNAPSHOT: APIOperation[ + CopyDBClusterSnapshotInput, CopyDBClusterSnapshotOutput +] +COPY_DB_PARAMETER_GROUP: APIOperation[ + CopyDBParameterGroupInput, CopyDBParameterGroupOutput +] +COPY_DB_SNAPSHOT: APIOperation[CopyDBSnapshotInput, CopyDBSnapshotOutput] +COPY_OPTION_GROUP: APIOperation[CopyOptionGroupInput, CopyOptionGroupOutput] +CREATE_BLUE_GREEN_DEPLOYMENT: APIOperation[ + CreateBlueGreenDeploymentInput, CreateBlueGreenDeploymentOutput +] +CREATE_CUSTOM_DB_ENGINE_VERSION: APIOperation[ + CreateCustomDBEngineVersionInput, CreateCustomDBEngineVersionOutput +] +CREATE_DB_CAPACITY_RESERVATION: APIOperation[ + CreateDBCapacityReservationInput, CreateDBCapacityReservationOutput +] +CREATE_DB_CLUSTER: APIOperation[CreateDBClusterInput, CreateDBClusterOutput] +CREATE_DB_CLUSTER_ENDPOINT: APIOperation[ + CreateDBClusterEndpointInput, CreateDBClusterEndpointOutput +] +CREATE_DB_CLUSTER_PARAMETER_GROUP: APIOperation[ + CreateDBClusterParameterGroupInput, CreateDBClusterParameterGroupOutput +] +CREATE_DB_CLUSTER_SNAPSHOT: APIOperation[ + CreateDBClusterSnapshotInput, CreateDBClusterSnapshotOutput +] +CREATE_DB_INSTANCE: APIOperation[CreateDBInstanceInput, CreateDBInstanceOutput] +CREATE_DB_INSTANCE_READ_REPLICA: APIOperation[ + CreateDBInstanceReadReplicaInput, CreateDBInstanceReadReplicaOutput +] +CREATE_DB_PARAMETER_GROUP: APIOperation[ + CreateDBParameterGroupInput, CreateDBParameterGroupOutput +] +CREATE_DB_PROXY: APIOperation[CreateDBProxyInput, CreateDBProxyOutput] +CREATE_DB_PROXY_ENDPOINT: APIOperation[ + CreateDBProxyEndpointInput, CreateDBProxyEndpointOutput +] +CREATE_DB_SECURITY_GROUP: APIOperation[ + CreateDBSecurityGroupInput, CreateDBSecurityGroupOutput +] +CREATE_DB_SHARD_GROUP: APIOperation[CreateDBShardGroupInput, CreateDBShardGroupOutput] +CREATE_DB_SNAPSHOT: APIOperation[CreateDBSnapshotInput, CreateDBSnapshotOutput] +CREATE_DB_SUBNET_GROUP: APIOperation[ + CreateDBSubnetGroupInput, CreateDBSubnetGroupOutput +] +CREATE_EVENT_SUBSCRIPTION: APIOperation[ + CreateEventSubscriptionInput, CreateEventSubscriptionOutput +] +CREATE_GLOBAL_CLUSTER: APIOperation[CreateGlobalClusterInput, CreateGlobalClusterOutput] +CREATE_INTEGRATION: APIOperation[CreateIntegrationInput, CreateIntegrationOutput] +CREATE_OPTION_GROUP: APIOperation[CreateOptionGroupInput, CreateOptionGroupOutput] +CREATE_TENANT_DATABASE: APIOperation[ + CreateTenantDatabaseInput, CreateTenantDatabaseOutput +] +DELETE_BLUE_GREEN_DEPLOYMENT: APIOperation[ + DeleteBlueGreenDeploymentInput, DeleteBlueGreenDeploymentOutput +] +DELETE_CUSTOM_DB_ENGINE_VERSION: APIOperation[ + DeleteCustomDBEngineVersionInput, DeleteCustomDBEngineVersionOutput +] +DELETE_DB_CLUSTER: APIOperation[DeleteDBClusterInput, DeleteDBClusterOutput] +DELETE_DB_CLUSTER_AUTOMATED_BACKUP: APIOperation[ + DeleteDBClusterAutomatedBackupInput, DeleteDBClusterAutomatedBackupOutput +] +DELETE_DB_CLUSTER_ENDPOINT: APIOperation[ + DeleteDBClusterEndpointInput, DeleteDBClusterEndpointOutput +] +DELETE_DB_CLUSTER_PARAMETER_GROUP: APIOperation[ + DeleteDBClusterParameterGroupInput, DeleteDBClusterParameterGroupOutput +] +DELETE_DB_CLUSTER_SNAPSHOT: APIOperation[ + DeleteDBClusterSnapshotInput, DeleteDBClusterSnapshotOutput +] +DELETE_DB_INSTANCE: APIOperation[DeleteDBInstanceInput, DeleteDBInstanceOutput] +DELETE_DB_INSTANCE_AUTOMATED_BACKUP: APIOperation[ + DeleteDBInstanceAutomatedBackupInput, DeleteDBInstanceAutomatedBackupOutput +] +DELETE_DB_PARAMETER_GROUP: APIOperation[ + DeleteDBParameterGroupInput, DeleteDBParameterGroupOutput +] +DELETE_DB_PROXY: APIOperation[DeleteDBProxyInput, DeleteDBProxyOutput] +DELETE_DB_PROXY_ENDPOINT: APIOperation[ + DeleteDBProxyEndpointInput, DeleteDBProxyEndpointOutput +] +DELETE_DB_SECURITY_GROUP: APIOperation[ + DeleteDBSecurityGroupInput, DeleteDBSecurityGroupOutput +] +DELETE_DB_SHARD_GROUP: APIOperation[DeleteDBShardGroupInput, DeleteDBShardGroupOutput] +DELETE_DB_SNAPSHOT: APIOperation[DeleteDBSnapshotInput, DeleteDBSnapshotOutput] +DELETE_DB_SUBNET_GROUP: APIOperation[ + DeleteDBSubnetGroupInput, DeleteDBSubnetGroupOutput +] +DELETE_EVENT_SUBSCRIPTION: APIOperation[ + DeleteEventSubscriptionInput, DeleteEventSubscriptionOutput +] +DELETE_GLOBAL_CLUSTER: APIOperation[DeleteGlobalClusterInput, DeleteGlobalClusterOutput] +DELETE_INTEGRATION: APIOperation[DeleteIntegrationInput, DeleteIntegrationOutput] +DELETE_OPTION_GROUP: APIOperation[DeleteOptionGroupInput, DeleteOptionGroupOutput] +DELETE_TENANT_DATABASE: APIOperation[ + DeleteTenantDatabaseInput, DeleteTenantDatabaseOutput +] +DEREGISTER_DB_PROXY_TARGETS: APIOperation[ + DeregisterDBProxyTargetsInput, DeregisterDBProxyTargetsOutput +] +DESCRIBE_ACCOUNT_ATTRIBUTES: APIOperation[ + DescribeAccountAttributesInput, DescribeAccountAttributesOutput +] +DESCRIBE_BLUE_GREEN_DEPLOYMENTS: APIOperation[ + DescribeBlueGreenDeploymentsInput, DescribeBlueGreenDeploymentsOutput +] +DESCRIBE_CERTIFICATES: APIOperation[ + DescribeCertificatesInput, DescribeCertificatesOutput +] +DESCRIBE_DB_CAPACITY_RESERVATIONS: APIOperation[ + DescribeDBCapacityReservationsInput, DescribeDBCapacityReservationsOutput +] +DESCRIBE_DB_CLUSTER_AUTOMATED_BACKUPS: APIOperation[ + DescribeDBClusterAutomatedBackupsInput, DescribeDBClusterAutomatedBackupsOutput +] +DESCRIBE_DB_CLUSTER_BACKTRACKS: APIOperation[ + DescribeDBClusterBacktracksInput, DescribeDBClusterBacktracksOutput +] +DESCRIBE_DB_CLUSTER_ENDPOINTS: APIOperation[ + DescribeDBClusterEndpointsInput, DescribeDBClusterEndpointsOutput +] +DESCRIBE_DB_CLUSTER_PARAMETER_GROUPS: APIOperation[ + DescribeDBClusterParameterGroupsInput, DescribeDBClusterParameterGroupsOutput +] +DESCRIBE_DB_CLUSTER_PARAMETERS: APIOperation[ + DescribeDBClusterParametersInput, DescribeDBClusterParametersOutput +] +DESCRIBE_DB_CLUSTERS: APIOperation[DescribeDBClustersInput, DescribeDBClustersOutput] +DESCRIBE_DB_CLUSTER_SNAPSHOT_ATTRIBUTES: APIOperation[ + DescribeDBClusterSnapshotAttributesInput, DescribeDBClusterSnapshotAttributesOutput +] +DESCRIBE_DB_CLUSTER_SNAPSHOTS: APIOperation[ + DescribeDBClusterSnapshotsInput, DescribeDBClusterSnapshotsOutput +] +DESCRIBE_DB_ENGINE_VERSIONS: APIOperation[ + DescribeDBEngineVersionsInput, DescribeDBEngineVersionsOutput +] +DESCRIBE_DB_INSTANCE_AUTOMATED_BACKUPS: APIOperation[ + DescribeDBInstanceAutomatedBackupsInput, DescribeDBInstanceAutomatedBackupsOutput +] +DESCRIBE_DB_INSTANCES: APIOperation[DescribeDBInstancesInput, DescribeDBInstancesOutput] +DESCRIBE_DB_LOG_FILES: APIOperation[DescribeDBLogFilesInput, DescribeDBLogFilesOutput] +DESCRIBE_DB_MAJOR_ENGINE_VERSIONS: APIOperation[ + DescribeDBMajorEngineVersionsInput, DescribeDBMajorEngineVersionsOutput +] +DESCRIBE_DB_PARAMETER_GROUPS: APIOperation[ + DescribeDBParameterGroupsInput, DescribeDBParameterGroupsOutput +] +DESCRIBE_DB_PARAMETERS: APIOperation[ + DescribeDBParametersInput, DescribeDBParametersOutput +] +DESCRIBE_DB_PROXIES: APIOperation[DescribeDBProxiesInput, DescribeDBProxiesOutput] +DESCRIBE_DB_PROXY_ENDPOINTS: APIOperation[ + DescribeDBProxyEndpointsInput, DescribeDBProxyEndpointsOutput +] +DESCRIBE_DB_PROXY_TARGET_GROUPS: APIOperation[ + DescribeDBProxyTargetGroupsInput, DescribeDBProxyTargetGroupsOutput +] +DESCRIBE_DB_PROXY_TARGETS: APIOperation[ + DescribeDBProxyTargetsInput, DescribeDBProxyTargetsOutput +] +DESCRIBE_DB_RECOMMENDATIONS: APIOperation[ + DescribeDBRecommendationsInput, DescribeDBRecommendationsOutput +] +DESCRIBE_DB_SECURITY_GROUPS: APIOperation[ + DescribeDBSecurityGroupsInput, DescribeDBSecurityGroupsOutput +] +DESCRIBE_DB_SHARD_GROUPS: APIOperation[ + DescribeDBShardGroupsInput, DescribeDBShardGroupsOutput +] +DESCRIBE_DB_SNAPSHOT_ATTRIBUTES: APIOperation[ + DescribeDBSnapshotAttributesInput, DescribeDBSnapshotAttributesOutput +] +DESCRIBE_DB_SNAPSHOTS: APIOperation[DescribeDBSnapshotsInput, DescribeDBSnapshotsOutput] +DESCRIBE_DB_SNAPSHOT_TENANT_DATABASES: APIOperation[ + DescribeDBSnapshotTenantDatabasesInput, DescribeDBSnapshotTenantDatabasesOutput +] +DESCRIBE_DB_SUBNET_GROUPS: APIOperation[ + DescribeDBSubnetGroupsInput, DescribeDBSubnetGroupsOutput +] +DESCRIBE_ENGINE_DEFAULT_CLUSTER_PARAMETERS: APIOperation[ + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, +] +DESCRIBE_ENGINE_DEFAULT_PARAMETERS: APIOperation[ + DescribeEngineDefaultParametersInput, DescribeEngineDefaultParametersOutput +] +DESCRIBE_EVENT_CATEGORIES: APIOperation[ + DescribeEventCategoriesInput, DescribeEventCategoriesOutput +] +DESCRIBE_EVENTS: APIOperation[DescribeEventsInput, DescribeEventsOutput] +DESCRIBE_EVENT_SUBSCRIPTIONS: APIOperation[ + DescribeEventSubscriptionsInput, DescribeEventSubscriptionsOutput +] +DESCRIBE_EXPORT_TASKS: APIOperation[DescribeExportTasksInput, DescribeExportTasksOutput] +DESCRIBE_GLOBAL_CLUSTERS: APIOperation[ + DescribeGlobalClustersInput, DescribeGlobalClustersOutput +] +DESCRIBE_INTEGRATIONS: APIOperation[ + DescribeIntegrationsInput, DescribeIntegrationsOutput +] +DESCRIBE_OPTION_GROUP_OPTIONS: APIOperation[ + DescribeOptionGroupOptionsInput, DescribeOptionGroupOptionsOutput +] +DESCRIBE_OPTION_GROUPS: APIOperation[ + DescribeOptionGroupsInput, DescribeOptionGroupsOutput +] +DESCRIBE_ORDERABLE_DB_INSTANCE_OPTIONS: APIOperation[ + DescribeOrderableDBInstanceOptionsInput, DescribeOrderableDBInstanceOptionsOutput +] +DESCRIBE_PENDING_MAINTENANCE_ACTIONS: APIOperation[ + DescribePendingMaintenanceActionsInput, DescribePendingMaintenanceActionsOutput +] +DESCRIBE_RESERVED_DB_INSTANCES: APIOperation[ + DescribeReservedDBInstancesInput, DescribeReservedDBInstancesOutput +] +DESCRIBE_RESERVED_DB_INSTANCES_OFFERINGS: APIOperation[ + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, +] +DESCRIBE_SERVERLESS_V2_PLATFORM_VERSIONS: APIOperation[ + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, +] +DESCRIBE_SOURCE_REGIONS: APIOperation[ + DescribeSourceRegionsInput, DescribeSourceRegionsOutput +] +DESCRIBE_TENANT_DATABASES: APIOperation[ + DescribeTenantDatabasesInput, DescribeTenantDatabasesOutput +] +DESCRIBE_VALID_DB_INSTANCE_MODIFICATIONS: APIOperation[ + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, +] +DISABLE_HTTP_ENDPOINT: APIOperation[DisableHttpEndpointInput, DisableHttpEndpointOutput] +DOWNLOAD_DB_LOG_FILE_PORTION: APIOperation[ + DownloadDBLogFilePortionInput, DownloadDBLogFilePortionOutput +] +ENABLE_HTTP_ENDPOINT: APIOperation[EnableHttpEndpointInput, EnableHttpEndpointOutput] +FAILOVER_DB_CLUSTER: APIOperation[FailoverDBClusterInput, FailoverDBClusterOutput] +FAILOVER_GLOBAL_CLUSTER: APIOperation[ + FailoverGlobalClusterInput, FailoverGlobalClusterOutput +] +LIST_TAGS_FOR_RESOURCE: APIOperation[ + ListTagsForResourceInput, ListTagsForResourceOutput +] +MODIFY_ACTIVITY_STREAM: APIOperation[ + ModifyActivityStreamInput, ModifyActivityStreamOutput +] +MODIFY_CERTIFICATES: APIOperation[ModifyCertificatesInput, ModifyCertificatesOutput] +MODIFY_CURRENT_DB_CLUSTER_CAPACITY: APIOperation[ + ModifyCurrentDBClusterCapacityInput, ModifyCurrentDBClusterCapacityOutput +] +MODIFY_CUSTOM_DB_ENGINE_VERSION: APIOperation[ + ModifyCustomDBEngineVersionInput, ModifyCustomDBEngineVersionOutput +] +MODIFY_DB_CAPACITY_RESERVATION: APIOperation[ + ModifyDBCapacityReservationInput, ModifyDBCapacityReservationOutput +] +MODIFY_DB_CLUSTER: APIOperation[ModifyDBClusterInput, ModifyDBClusterOutput] +MODIFY_DB_CLUSTER_ENDPOINT: APIOperation[ + ModifyDBClusterEndpointInput, ModifyDBClusterEndpointOutput +] +MODIFY_DB_CLUSTER_PARAMETER_GROUP: APIOperation[ + ModifyDBClusterParameterGroupInput, ModifyDBClusterParameterGroupOutput +] +MODIFY_DB_CLUSTER_SNAPSHOT_ATTRIBUTE: APIOperation[ + ModifyDBClusterSnapshotAttributeInput, ModifyDBClusterSnapshotAttributeOutput +] +MODIFY_DB_INSTANCE: APIOperation[ModifyDBInstanceInput, ModifyDBInstanceOutput] +MODIFY_DB_PARAMETER_GROUP: APIOperation[ + ModifyDBParameterGroupInput, ModifyDBParameterGroupOutput +] +MODIFY_DB_PROXY: APIOperation[ModifyDBProxyInput, ModifyDBProxyOutput] +MODIFY_DB_PROXY_ENDPOINT: APIOperation[ + ModifyDBProxyEndpointInput, ModifyDBProxyEndpointOutput +] +MODIFY_DB_PROXY_TARGET_GROUP: APIOperation[ + ModifyDBProxyTargetGroupInput, ModifyDBProxyTargetGroupOutput +] +MODIFY_DB_RECOMMENDATION: APIOperation[ + ModifyDBRecommendationInput, ModifyDBRecommendationOutput +] +MODIFY_DB_SHARD_GROUP: APIOperation[ModifyDBShardGroupInput, ModifyDBShardGroupOutput] +MODIFY_DB_SNAPSHOT: APIOperation[ModifyDBSnapshotInput, ModifyDBSnapshotOutput] +MODIFY_DB_SNAPSHOT_ATTRIBUTE: APIOperation[ + ModifyDBSnapshotAttributeInput, ModifyDBSnapshotAttributeOutput +] +MODIFY_DB_SUBNET_GROUP: APIOperation[ + ModifyDBSubnetGroupInput, ModifyDBSubnetGroupOutput +] +MODIFY_EVENT_SUBSCRIPTION: APIOperation[ + ModifyEventSubscriptionInput, ModifyEventSubscriptionOutput +] +MODIFY_GLOBAL_CLUSTER: APIOperation[ModifyGlobalClusterInput, ModifyGlobalClusterOutput] +MODIFY_INTEGRATION: APIOperation[ModifyIntegrationInput, ModifyIntegrationOutput] +MODIFY_OPTION_GROUP: APIOperation[ModifyOptionGroupInput, ModifyOptionGroupOutput] +MODIFY_TENANT_DATABASE: APIOperation[ + ModifyTenantDatabaseInput, ModifyTenantDatabaseOutput +] +PROMOTE_READ_REPLICA: APIOperation[PromoteReadReplicaInput, PromoteReadReplicaOutput] +PROMOTE_READ_REPLICA_DB_CLUSTER: APIOperation[ + PromoteReadReplicaDBClusterInput, PromoteReadReplicaDBClusterOutput +] +PURCHASE_RESERVED_DB_INSTANCES_OFFERING: APIOperation[ + PurchaseReservedDBInstancesOfferingInput, PurchaseReservedDBInstancesOfferingOutput +] +REBOOT_DB_CLUSTER: APIOperation[RebootDBClusterInput, RebootDBClusterOutput] +REBOOT_DB_INSTANCE: APIOperation[RebootDBInstanceInput, RebootDBInstanceOutput] +REBOOT_DB_SHARD_GROUP: APIOperation[RebootDBShardGroupInput, RebootDBShardGroupOutput] +REGISTER_DB_PROXY_TARGETS: APIOperation[ + RegisterDBProxyTargetsInput, RegisterDBProxyTargetsOutput +] +REMOVE_FROM_GLOBAL_CLUSTER: APIOperation[ + RemoveFromGlobalClusterInput, RemoveFromGlobalClusterOutput +] +REMOVE_ROLE_FROM_DB_CLUSTER: APIOperation[ + RemoveRoleFromDBClusterInput, RemoveRoleFromDBClusterOutput +] +REMOVE_ROLE_FROM_DB_INSTANCE: APIOperation[ + RemoveRoleFromDBInstanceInput, RemoveRoleFromDBInstanceOutput +] +REMOVE_SOURCE_IDENTIFIER_FROM_SUBSCRIPTION: APIOperation[ + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, +] +REMOVE_TAGS_FROM_RESOURCE: APIOperation[ + RemoveTagsFromResourceInput, RemoveTagsFromResourceOutput +] +RESET_DB_CLUSTER_PARAMETER_GROUP: APIOperation[ + ResetDBClusterParameterGroupInput, ResetDBClusterParameterGroupOutput +] +RESET_DB_PARAMETER_GROUP: APIOperation[ + ResetDBParameterGroupInput, ResetDBParameterGroupOutput +] +RESTORE_DB_CLUSTER_FROM_S3: APIOperation[ + RestoreDBClusterFromS3Input, RestoreDBClusterFromS3Output +] +RESTORE_DB_CLUSTER_FROM_SNAPSHOT: APIOperation[ + RestoreDBClusterFromSnapshotInput, RestoreDBClusterFromSnapshotOutput +] +RESTORE_DB_CLUSTER_TO_POINT_IN_TIME: APIOperation[ + RestoreDBClusterToPointInTimeInput, RestoreDBClusterToPointInTimeOutput +] +RESTORE_DB_INSTANCE_FROM_DB_SNAPSHOT: APIOperation[ + RestoreDBInstanceFromDBSnapshotInput, RestoreDBInstanceFromDBSnapshotOutput +] +RESTORE_DB_INSTANCE_FROM_S3: APIOperation[ + RestoreDBInstanceFromS3Input, RestoreDBInstanceFromS3Output +] +RESTORE_DB_INSTANCE_TO_POINT_IN_TIME: APIOperation[ + RestoreDBInstanceToPointInTimeInput, RestoreDBInstanceToPointInTimeOutput +] +REVOKE_DB_SECURITY_GROUP_INGRESS: APIOperation[ + RevokeDBSecurityGroupIngressInput, RevokeDBSecurityGroupIngressOutput +] +START_ACTIVITY_STREAM: APIOperation[StartActivityStreamInput, StartActivityStreamOutput] +START_DB_CLUSTER: APIOperation[StartDBClusterInput, StartDBClusterOutput] +START_DB_INSTANCE: APIOperation[StartDBInstanceInput, StartDBInstanceOutput] +START_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION: APIOperation[ + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, +] +START_EXPORT_TASK: APIOperation[StartExportTaskInput, StartExportTaskOutput] +STOP_ACTIVITY_STREAM: APIOperation[StopActivityStreamInput, StopActivityStreamOutput] +STOP_DB_CLUSTER: APIOperation[StopDBClusterInput, StopDBClusterOutput] +STOP_DB_INSTANCE: APIOperation[StopDBInstanceInput, StopDBInstanceOutput] +STOP_DB_INSTANCE_AUTOMATED_BACKUPS_REPLICATION: APIOperation[ + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, +] +SWITCHOVER_BLUE_GREEN_DEPLOYMENT: APIOperation[ + SwitchoverBlueGreenDeploymentInput, SwitchoverBlueGreenDeploymentOutput +] +SWITCHOVER_GLOBAL_CLUSTER: APIOperation[ + SwitchoverGlobalClusterInput, SwitchoverGlobalClusterOutput +] +SWITCHOVER_READ_REPLICA: APIOperation[ + SwitchoverReadReplicaInput, SwitchoverReadReplicaOutput +] diff --git a/clients/aws-sdk-rds/src/aws_sdk_rds/user_agent.py b/clients/aws-sdk-rds/src/aws_sdk_rds/user_agent.py new file mode 100644 index 00000000..ae6cdc37 --- /dev/null +++ b/clients/aws-sdk-rds/src/aws_sdk_rds/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import RDSConfig + + +def aws_user_agent_plugin(config: RDSConfig): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="RDS", + ) + ) diff --git a/clients/aws-sdk-rds/tests/__init__.py b/clients/aws-sdk-rds/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-rds/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-rds/tests/_typecheck.py b/clients/aws-sdk-rds/tests/_typecheck.py new file mode 100644 index 00000000..248307cc --- /dev/null +++ b/clients/aws-sdk-rds/tests/_typecheck.py @@ -0,0 +1,957 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_rds.models import ( + AccountQuota, + AddRoleToDBClusterInput, + AddRoleToDBClusterOutput, + AddRoleToDBInstanceInput, + AddRoleToDBInstanceOutput, + AddSourceIdentifierToSubscriptionInput, + AddSourceIdentifierToSubscriptionOutput, + AddTagsToResourceInput, + AddTagsToResourceOutput, + AdditionalStorageVolume, + AdditionalStorageVolumeOutput, + ApplyPendingMaintenanceActionInput, + ApplyPendingMaintenanceActionOutput, + AuthorizeDBSecurityGroupIngressInput, + AuthorizeDBSecurityGroupIngressOutput, + AvailabilityZone, + AvailableAdditionalStorageVolumesOption, + AvailableCapacityPerAvailabilityZone, + AvailableProcessorFeature, + BacktrackDBClusterInput, + BacktrackDBClusterOutput, + BlueGreenDeployment, + BlueGreenDeploymentTask, + CancelDBCapacityReservationInput, + CancelDBCapacityReservationOutput, + CancelExportTaskInput, + CancelExportTaskOutput, + Certificate, + CertificateDetails, + CharacterSet, + CloudwatchLogsExportConfiguration, + ClusterPendingModifiedValues, + ConnectionPoolConfiguration, + ConnectionPoolConfigurationInfo, + ContextAttribute, + CopyDBClusterParameterGroupInput, + CopyDBClusterParameterGroupOutput, + CopyDBClusterSnapshotInput, + CopyDBClusterSnapshotOutput, + CopyDBParameterGroupInput, + CopyDBParameterGroupOutput, + CopyDBSnapshotInput, + CopyDBSnapshotOutput, + CopyOptionGroupInput, + CopyOptionGroupOutput, + CreateBlueGreenDeploymentInput, + CreateBlueGreenDeploymentOutput, + CreateCustomDBEngineVersionInput, + CreateCustomDBEngineVersionOutput, + CreateDBCapacityReservationInput, + CreateDBCapacityReservationOutput, + CreateDBClusterEndpointInput, + CreateDBClusterEndpointOutput, + CreateDBClusterInput, + CreateDBClusterOutput, + CreateDBClusterParameterGroupInput, + CreateDBClusterParameterGroupOutput, + CreateDBClusterSnapshotInput, + CreateDBClusterSnapshotOutput, + CreateDBInstanceInput, + CreateDBInstanceOutput, + CreateDBInstanceReadReplicaInput, + CreateDBInstanceReadReplicaOutput, + CreateDBParameterGroupInput, + CreateDBParameterGroupOutput, + CreateDBProxyEndpointInput, + CreateDBProxyEndpointOutput, + CreateDBProxyInput, + CreateDBProxyOutput, + CreateDBSecurityGroupInput, + CreateDBSecurityGroupOutput, + CreateDBShardGroupInput, + CreateDBShardGroupOutput, + CreateDBSnapshotInput, + CreateDBSnapshotOutput, + CreateDBSubnetGroupInput, + CreateDBSubnetGroupOutput, + CreateEventSubscriptionInput, + CreateEventSubscriptionOutput, + CreateGlobalClusterInput, + CreateGlobalClusterOutput, + CreateIntegrationInput, + CreateIntegrationOutput, + CreateOptionGroupInput, + CreateOptionGroupOutput, + CreateTenantDatabaseInput, + CreateTenantDatabaseOutput, + CustomDBEngineVersionAMI, + DBCapacityReservation, + DBCapacityReservationCommitmentInfo, + DBCluster, + DBClusterAssociatedRole, + DBClusterAutomatedBackup, + DBClusterBacktrack, + DBClusterEndpoint, + DBClusterMember, + DBClusterOptionGroupStatus, + DBClusterParameterGroup, + DBClusterRole, + DBClusterSnapshot, + DBClusterSnapshotAttribute, + DBClusterSnapshotAttributesResult, + DBClusterStatusInfo, + DBEngineVersion, + DBInstance, + DBInstanceAutomatedBackup, + DBInstanceAutomatedBackupsReplication, + DBInstanceRole, + DBInstanceStatusInfo, + DBMajorEngineVersion, + DBParameterGroup, + DBParameterGroupStatus, + DBProxy, + DBProxyEndpoint, + DBProxyTarget, + DBProxyTargetGroup, + DBRecommendation, + DBSecurityGroup, + DBSecurityGroupMembership, + DBShardGroup, + DBSnapshot, + DBSnapshotAttribute, + DBSnapshotAttributesResult, + DBSnapshotTenantDatabase, + DBSubnetGroup, + DeleteBlueGreenDeploymentInput, + DeleteBlueGreenDeploymentOutput, + DeleteCustomDBEngineVersionInput, + DeleteCustomDBEngineVersionOutput, + DeleteDBClusterAutomatedBackupInput, + DeleteDBClusterAutomatedBackupOutput, + DeleteDBClusterEndpointInput, + DeleteDBClusterEndpointOutput, + DeleteDBClusterInput, + DeleteDBClusterOutput, + DeleteDBClusterParameterGroupInput, + DeleteDBClusterParameterGroupOutput, + DeleteDBClusterSnapshotInput, + DeleteDBClusterSnapshotOutput, + DeleteDBInstanceAutomatedBackupInput, + DeleteDBInstanceAutomatedBackupOutput, + DeleteDBInstanceInput, + DeleteDBInstanceOutput, + DeleteDBParameterGroupInput, + DeleteDBParameterGroupOutput, + DeleteDBProxyEndpointInput, + DeleteDBProxyEndpointOutput, + DeleteDBProxyInput, + DeleteDBProxyOutput, + DeleteDBSecurityGroupInput, + DeleteDBSecurityGroupOutput, + DeleteDBShardGroupInput, + DeleteDBShardGroupOutput, + DeleteDBSnapshotInput, + DeleteDBSnapshotOutput, + DeleteDBSubnetGroupInput, + DeleteDBSubnetGroupOutput, + DeleteEventSubscriptionInput, + DeleteEventSubscriptionOutput, + DeleteGlobalClusterInput, + DeleteGlobalClusterOutput, + DeleteIntegrationInput, + DeleteIntegrationOutput, + DeleteOptionGroupInput, + DeleteOptionGroupOutput, + DeleteTenantDatabaseInput, + DeleteTenantDatabaseOutput, + DeregisterDBProxyTargetsInput, + DeregisterDBProxyTargetsOutput, + DescribeAccountAttributesInput, + DescribeAccountAttributesOutput, + DescribeBlueGreenDeploymentsInput, + DescribeBlueGreenDeploymentsOutput, + DescribeCertificatesInput, + DescribeCertificatesOutput, + DescribeDBCapacityReservationsInput, + DescribeDBCapacityReservationsOutput, + DescribeDBClusterAutomatedBackupsInput, + DescribeDBClusterAutomatedBackupsOutput, + DescribeDBClusterBacktracksInput, + DescribeDBClusterBacktracksOutput, + DescribeDBClusterEndpointsInput, + DescribeDBClusterEndpointsOutput, + DescribeDBClusterParameterGroupsInput, + DescribeDBClusterParameterGroupsOutput, + DescribeDBClusterParametersInput, + DescribeDBClusterParametersOutput, + DescribeDBClusterSnapshotAttributesInput, + DescribeDBClusterSnapshotAttributesOutput, + DescribeDBClusterSnapshotsInput, + DescribeDBClusterSnapshotsOutput, + DescribeDBClustersInput, + DescribeDBClustersOutput, + DescribeDBEngineVersionsInput, + DescribeDBEngineVersionsOutput, + DescribeDBInstanceAutomatedBackupsInput, + DescribeDBInstanceAutomatedBackupsOutput, + DescribeDBInstancesInput, + DescribeDBInstancesOutput, + DescribeDBLogFilesDetails, + DescribeDBLogFilesInput, + DescribeDBLogFilesOutput, + DescribeDBMajorEngineVersionsInput, + DescribeDBMajorEngineVersionsOutput, + DescribeDBParameterGroupsInput, + DescribeDBParameterGroupsOutput, + DescribeDBParametersInput, + DescribeDBParametersOutput, + DescribeDBProxiesInput, + DescribeDBProxiesOutput, + DescribeDBProxyEndpointsInput, + DescribeDBProxyEndpointsOutput, + DescribeDBProxyTargetGroupsInput, + DescribeDBProxyTargetGroupsOutput, + DescribeDBProxyTargetsInput, + DescribeDBProxyTargetsOutput, + DescribeDBRecommendationsInput, + DescribeDBRecommendationsOutput, + DescribeDBSecurityGroupsInput, + DescribeDBSecurityGroupsOutput, + DescribeDBShardGroupsInput, + DescribeDBShardGroupsOutput, + DescribeDBSnapshotAttributesInput, + DescribeDBSnapshotAttributesOutput, + DescribeDBSnapshotTenantDatabasesInput, + DescribeDBSnapshotTenantDatabasesOutput, + DescribeDBSnapshotsInput, + DescribeDBSnapshotsOutput, + DescribeDBSubnetGroupsInput, + DescribeDBSubnetGroupsOutput, + DescribeEngineDefaultClusterParametersInput, + DescribeEngineDefaultClusterParametersOutput, + DescribeEngineDefaultParametersInput, + DescribeEngineDefaultParametersOutput, + DescribeEventCategoriesInput, + DescribeEventCategoriesOutput, + DescribeEventSubscriptionsInput, + DescribeEventSubscriptionsOutput, + DescribeEventsInput, + DescribeEventsOutput, + DescribeExportTasksInput, + DescribeExportTasksOutput, + DescribeGlobalClustersInput, + DescribeGlobalClustersOutput, + DescribeIntegrationsInput, + DescribeIntegrationsOutput, + DescribeOptionGroupOptionsInput, + DescribeOptionGroupOptionsOutput, + DescribeOptionGroupsInput, + DescribeOptionGroupsOutput, + DescribeOrderableDBInstanceOptionsInput, + DescribeOrderableDBInstanceOptionsOutput, + DescribePendingMaintenanceActionsInput, + DescribePendingMaintenanceActionsOutput, + DescribeReservedDBInstancesInput, + DescribeReservedDBInstancesOfferingsInput, + DescribeReservedDBInstancesOfferingsOutput, + DescribeReservedDBInstancesOutput, + DescribeServerlessV2PlatformVersionsInput, + DescribeServerlessV2PlatformVersionsOutput, + DescribeSourceRegionsInput, + DescribeSourceRegionsOutput, + DescribeTenantDatabasesInput, + DescribeTenantDatabasesOutput, + DescribeValidDBInstanceModificationsInput, + DescribeValidDBInstanceModificationsOutput, + DisableHttpEndpointInput, + DisableHttpEndpointOutput, + DocLink, + DomainMembership, + DoubleRange, + DownloadDBLogFilePortionInput, + DownloadDBLogFilePortionOutput, + EC2SecurityGroup, + EnableHttpEndpointInput, + EnableHttpEndpointOutput, + Endpoint, + EngineDefaults, + Event, + EventCategoriesMap, + EventSubscription, + ExportTask, + FailoverDBClusterInput, + FailoverDBClusterOutput, + FailoverGlobalClusterInput, + FailoverGlobalClusterOutput, + FailoverState, + Filter, + GlobalCluster, + GlobalClusterMember, + IPRange, + Integration, + IntegrationError, + IssueDetails, + LimitlessDatabase, + ListTagsForResourceInput, + ListTagsForResourceOutput, + MasterUserSecret, + Metric, + MetricQuery, + MetricReference, + MinimumEngineVersionPerAllowedValue, + ModifyActivityStreamInput, + ModifyActivityStreamOutput, + ModifyAdditionalStorageVolume, + ModifyCertificatesInput, + ModifyCertificatesOutput, + ModifyCurrentDBClusterCapacityInput, + ModifyCurrentDBClusterCapacityOutput, + ModifyCustomDBEngineVersionInput, + ModifyCustomDBEngineVersionOutput, + ModifyDBCapacityReservationInput, + ModifyDBCapacityReservationOutput, + ModifyDBClusterEndpointInput, + ModifyDBClusterEndpointOutput, + ModifyDBClusterInput, + ModifyDBClusterOutput, + ModifyDBClusterParameterGroupInput, + ModifyDBClusterParameterGroupOutput, + ModifyDBClusterSnapshotAttributeInput, + ModifyDBClusterSnapshotAttributeOutput, + ModifyDBInstanceInput, + ModifyDBInstanceOutput, + ModifyDBParameterGroupInput, + ModifyDBParameterGroupOutput, + ModifyDBProxyEndpointInput, + ModifyDBProxyEndpointOutput, + ModifyDBProxyInput, + ModifyDBProxyOutput, + ModifyDBProxyTargetGroupInput, + ModifyDBProxyTargetGroupOutput, + ModifyDBRecommendationInput, + ModifyDBRecommendationOutput, + ModifyDBShardGroupInput, + ModifyDBShardGroupOutput, + ModifyDBSnapshotAttributeInput, + ModifyDBSnapshotAttributeOutput, + ModifyDBSnapshotInput, + ModifyDBSnapshotOutput, + ModifyDBSubnetGroupInput, + ModifyDBSubnetGroupOutput, + ModifyEventSubscriptionInput, + ModifyEventSubscriptionOutput, + ModifyGlobalClusterInput, + ModifyGlobalClusterOutput, + ModifyIntegrationInput, + ModifyIntegrationOutput, + ModifyOptionGroupInput, + ModifyOptionGroupOutput, + ModifyTenantDatabaseInput, + ModifyTenantDatabaseOutput, + Option, + OptionConfiguration, + OptionGroup, + OptionGroupMembership, + OptionGroupOption, + OptionGroupOptionSetting, + OptionSetting, + OptionVersion, + OrderableDBInstanceOption, + Outpost, + Parameter, + PendingCloudwatchLogsExports, + PendingMaintenanceAction, + PendingModifiedValues, + PerformanceInsightsMetricDimensionGroup, + PerformanceInsightsMetricQuery, + PerformanceIssueDetails, + ProcessorFeature, + PromoteReadReplicaDBClusterInput, + PromoteReadReplicaDBClusterOutput, + PromoteReadReplicaInput, + PromoteReadReplicaOutput, + PurchaseReservedDBInstancesOfferingInput, + PurchaseReservedDBInstancesOfferingOutput, + Range, + RdsCustomClusterConfiguration, + RebootDBClusterInput, + RebootDBClusterOutput, + RebootDBInstanceInput, + RebootDBInstanceOutput, + RebootDBShardGroupInput, + RebootDBShardGroupOutput, + RecommendedAction, + RecommendedActionParameter, + RecommendedActionUpdate, + RecurringCharge, + ReferenceDetails, + RegisterDBProxyTargetsInput, + RegisterDBProxyTargetsOutput, + RemoveFromGlobalClusterInput, + RemoveFromGlobalClusterOutput, + RemoveRoleFromDBClusterInput, + RemoveRoleFromDBClusterOutput, + RemoveRoleFromDBInstanceInput, + RemoveRoleFromDBInstanceOutput, + RemoveSourceIdentifierFromSubscriptionInput, + RemoveSourceIdentifierFromSubscriptionOutput, + RemoveTagsFromResourceInput, + RemoveTagsFromResourceOutput, + ReservedDBInstance, + ReservedDBInstancesOffering, + ResetDBClusterParameterGroupInput, + ResetDBClusterParameterGroupOutput, + ResetDBParameterGroupInput, + ResetDBParameterGroupOutput, + ResourcePendingMaintenanceActions, + RestoreDBClusterFromS3Input, + RestoreDBClusterFromS3Output, + RestoreDBClusterFromSnapshotInput, + RestoreDBClusterFromSnapshotOutput, + RestoreDBClusterToPointInTimeInput, + RestoreDBClusterToPointInTimeOutput, + RestoreDBInstanceFromDBSnapshotInput, + RestoreDBInstanceFromDBSnapshotOutput, + RestoreDBInstanceFromS3Input, + RestoreDBInstanceFromS3Output, + RestoreDBInstanceToPointInTimeInput, + RestoreDBInstanceToPointInTimeOutput, + RestoreWindow, + RevokeDBSecurityGroupIngressInput, + RevokeDBSecurityGroupIngressOutput, + ScalarReferenceDetails, + ScalingConfiguration, + ScalingConfigurationInfo, + ServerlessV2FeaturesSupport, + ServerlessV2PlatformVersionInfo, + ServerlessV2ScalingConfiguration, + ServerlessV2ScalingConfigurationInfo, + SourceRegion, + StartActivityStreamInput, + StartActivityStreamOutput, + StartDBClusterInput, + StartDBClusterOutput, + StartDBInstanceAutomatedBackupsReplicationInput, + StartDBInstanceAutomatedBackupsReplicationOutput, + StartDBInstanceInput, + StartDBInstanceOutput, + StartExportTaskInput, + StartExportTaskOutput, + StopActivityStreamInput, + StopActivityStreamOutput, + StopDBClusterInput, + StopDBClusterOutput, + StopDBInstanceAutomatedBackupsReplicationInput, + StopDBInstanceAutomatedBackupsReplicationOutput, + StopDBInstanceInput, + StopDBInstanceOutput, + Subnet, + SupportedEngineLifecycle, + SwitchoverBlueGreenDeploymentInput, + SwitchoverBlueGreenDeploymentOutput, + SwitchoverDetail, + SwitchoverGlobalClusterInput, + SwitchoverGlobalClusterOutput, + SwitchoverReadReplicaInput, + SwitchoverReadReplicaOutput, + Tag, + TagSpecification, + TargetHealth, + TargetResourceConfiguration, + TenantDatabase, + TenantDatabasePendingModifiedValues, + Timezone, + UpgradeTarget, + UserAuthConfig, + UserAuthConfigInfo, + ValidAdditionalStorageOptions, + ValidDBInstanceModificationsMessage, + ValidStorageOptions, + ValidVolumeOptions, + VpcSecurityGroupMembership, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AccountQuota() +AdditionalStorageVolume() +AdditionalStorageVolumeOutput() +AddRoleToDBClusterInput() +AddRoleToDBClusterOutput() +AddRoleToDBInstanceInput() +AddRoleToDBInstanceOutput() +AddSourceIdentifierToSubscriptionInput() +AddSourceIdentifierToSubscriptionOutput() +AddTagsToResourceInput() +AddTagsToResourceOutput() +ApplyPendingMaintenanceActionInput() +ApplyPendingMaintenanceActionOutput() +AuthorizeDBSecurityGroupIngressInput() +AuthorizeDBSecurityGroupIngressOutput() +AvailabilityZone() +AvailableAdditionalStorageVolumesOption() +AvailableCapacityPerAvailabilityZone() +AvailableProcessorFeature() +BacktrackDBClusterInput() +BacktrackDBClusterOutput() +BlueGreenDeployment() +BlueGreenDeploymentTask() +CancelDBCapacityReservationInput() +CancelDBCapacityReservationOutput() +CancelExportTaskInput() +CancelExportTaskOutput() +Certificate() +CertificateDetails() +CharacterSet() +CloudwatchLogsExportConfiguration() +ClusterPendingModifiedValues() +ConnectionPoolConfiguration() +ConnectionPoolConfigurationInfo() +ContextAttribute() +CopyDBClusterParameterGroupInput() +CopyDBClusterParameterGroupOutput() +CopyDBClusterSnapshotInput() +CopyDBClusterSnapshotOutput() +CopyDBParameterGroupInput() +CopyDBParameterGroupOutput() +CopyDBSnapshotInput() +CopyDBSnapshotOutput() +CopyOptionGroupInput() +CopyOptionGroupOutput() +CreateBlueGreenDeploymentInput() +CreateBlueGreenDeploymentOutput() +CreateCustomDBEngineVersionInput() +CreateCustomDBEngineVersionOutput() +CreateDBCapacityReservationInput() +CreateDBCapacityReservationOutput() +CreateDBClusterEndpointInput() +CreateDBClusterEndpointOutput() +CreateDBClusterInput() +CreateDBClusterOutput() +CreateDBClusterParameterGroupInput() +CreateDBClusterParameterGroupOutput() +CreateDBClusterSnapshotInput() +CreateDBClusterSnapshotOutput() +CreateDBInstanceInput() +CreateDBInstanceOutput() +CreateDBInstanceReadReplicaInput() +CreateDBInstanceReadReplicaOutput() +CreateDBParameterGroupInput() +CreateDBParameterGroupOutput() +CreateDBProxyEndpointInput() +CreateDBProxyEndpointOutput() +CreateDBProxyInput() +CreateDBProxyOutput() +CreateDBSecurityGroupInput() +CreateDBSecurityGroupOutput() +CreateDBShardGroupInput() +CreateDBShardGroupOutput() +CreateDBSnapshotInput() +CreateDBSnapshotOutput() +CreateDBSubnetGroupInput() +CreateDBSubnetGroupOutput() +CreateEventSubscriptionInput() +CreateEventSubscriptionOutput() +CreateGlobalClusterInput() +CreateGlobalClusterOutput() +CreateIntegrationInput() +CreateIntegrationOutput() +CreateOptionGroupInput() +CreateOptionGroupOutput() +CreateTenantDatabaseInput() +CreateTenantDatabaseOutput() +CustomDBEngineVersionAMI() +DBCapacityReservation() +DBCapacityReservationCommitmentInfo() +DBCluster() +DBClusterAssociatedRole(role_arn=_) +DBClusterAutomatedBackup() +DBClusterBacktrack() +DBClusterEndpoint() +DBClusterMember() +DBClusterOptionGroupStatus() +DBClusterParameterGroup() +DBClusterRole() +DBClusterSnapshot() +DBClusterSnapshotAttribute() +DBClusterSnapshotAttributesResult() +DBClusterStatusInfo() +DBEngineVersion() +DBInstance() +DBInstanceAutomatedBackup() +DBInstanceAutomatedBackupsReplication() +DBInstanceRole() +DBInstanceStatusInfo() +DBMajorEngineVersion() +DBParameterGroup() +DBParameterGroupStatus() +DBProxy() +DBProxyEndpoint() +DBProxyTarget() +DBProxyTargetGroup() +DBRecommendation() +DBSecurityGroup() +DBSecurityGroupMembership() +DBShardGroup() +DBSnapshot() +DBSnapshotAttribute() +DBSnapshotAttributesResult() +DBSnapshotTenantDatabase() +DBSubnetGroup() +DeleteBlueGreenDeploymentInput() +DeleteBlueGreenDeploymentOutput() +DeleteCustomDBEngineVersionInput() +DeleteCustomDBEngineVersionOutput() +DeleteDBClusterAutomatedBackupInput() +DeleteDBClusterAutomatedBackupOutput() +DeleteDBClusterEndpointInput() +DeleteDBClusterEndpointOutput() +DeleteDBClusterInput() +DeleteDBClusterOutput() +DeleteDBClusterParameterGroupInput() +DeleteDBClusterParameterGroupOutput() +DeleteDBClusterSnapshotInput() +DeleteDBClusterSnapshotOutput() +DeleteDBInstanceAutomatedBackupInput() +DeleteDBInstanceAutomatedBackupOutput() +DeleteDBInstanceInput() +DeleteDBInstanceOutput() +DeleteDBParameterGroupInput() +DeleteDBParameterGroupOutput() +DeleteDBProxyEndpointInput() +DeleteDBProxyEndpointOutput() +DeleteDBProxyInput() +DeleteDBProxyOutput() +DeleteDBSecurityGroupInput() +DeleteDBSecurityGroupOutput() +DeleteDBShardGroupInput() +DeleteDBShardGroupOutput() +DeleteDBSnapshotInput() +DeleteDBSnapshotOutput() +DeleteDBSubnetGroupInput() +DeleteDBSubnetGroupOutput() +DeleteEventSubscriptionInput() +DeleteEventSubscriptionOutput() +DeleteGlobalClusterInput() +DeleteGlobalClusterOutput() +DeleteIntegrationInput() +DeleteIntegrationOutput() +DeleteOptionGroupInput() +DeleteOptionGroupOutput() +DeleteTenantDatabaseInput() +DeleteTenantDatabaseOutput() +DeregisterDBProxyTargetsInput() +DeregisterDBProxyTargetsOutput() +DescribeAccountAttributesInput() +DescribeAccountAttributesOutput() +DescribeBlueGreenDeploymentsInput() +DescribeBlueGreenDeploymentsOutput() +DescribeCertificatesInput() +DescribeCertificatesOutput() +DescribeDBCapacityReservationsInput() +DescribeDBCapacityReservationsOutput() +DescribeDBClusterAutomatedBackupsInput() +DescribeDBClusterAutomatedBackupsOutput() +DescribeDBClusterBacktracksInput() +DescribeDBClusterBacktracksOutput() +DescribeDBClusterEndpointsInput() +DescribeDBClusterEndpointsOutput() +DescribeDBClusterParameterGroupsInput() +DescribeDBClusterParameterGroupsOutput() +DescribeDBClusterParametersInput() +DescribeDBClusterParametersOutput() +DescribeDBClustersInput() +DescribeDBClusterSnapshotAttributesInput() +DescribeDBClusterSnapshotAttributesOutput() +DescribeDBClusterSnapshotsInput() +DescribeDBClusterSnapshotsOutput() +DescribeDBClustersOutput() +DescribeDBEngineVersionsInput() +DescribeDBEngineVersionsOutput() +DescribeDBInstanceAutomatedBackupsInput() +DescribeDBInstanceAutomatedBackupsOutput() +DescribeDBInstancesInput() +DescribeDBInstancesOutput() +DescribeDBLogFilesDetails() +DescribeDBLogFilesInput() +DescribeDBLogFilesOutput() +DescribeDBMajorEngineVersionsInput() +DescribeDBMajorEngineVersionsOutput() +DescribeDBParameterGroupsInput() +DescribeDBParameterGroupsOutput() +DescribeDBParametersInput() +DescribeDBParametersOutput() +DescribeDBProxiesInput() +DescribeDBProxiesOutput() +DescribeDBProxyEndpointsInput() +DescribeDBProxyEndpointsOutput() +DescribeDBProxyTargetGroupsInput() +DescribeDBProxyTargetGroupsOutput() +DescribeDBProxyTargetsInput() +DescribeDBProxyTargetsOutput() +DescribeDBRecommendationsInput() +DescribeDBRecommendationsOutput() +DescribeDBSecurityGroupsInput() +DescribeDBSecurityGroupsOutput() +DescribeDBShardGroupsInput() +DescribeDBShardGroupsOutput() +DescribeDBSnapshotAttributesInput() +DescribeDBSnapshotAttributesOutput() +DescribeDBSnapshotsInput() +DescribeDBSnapshotsOutput() +DescribeDBSnapshotTenantDatabasesInput() +DescribeDBSnapshotTenantDatabasesOutput() +DescribeDBSubnetGroupsInput() +DescribeDBSubnetGroupsOutput() +DescribeEngineDefaultClusterParametersInput() +DescribeEngineDefaultClusterParametersOutput() +DescribeEngineDefaultParametersInput() +DescribeEngineDefaultParametersOutput() +DescribeEventCategoriesInput() +DescribeEventCategoriesOutput() +DescribeEventsInput() +DescribeEventsOutput() +DescribeEventSubscriptionsInput() +DescribeEventSubscriptionsOutput() +DescribeExportTasksInput() +DescribeExportTasksOutput() +DescribeGlobalClustersInput() +DescribeGlobalClustersOutput() +DescribeIntegrationsInput() +DescribeIntegrationsOutput() +DescribeOptionGroupOptionsInput() +DescribeOptionGroupOptionsOutput() +DescribeOptionGroupsInput() +DescribeOptionGroupsOutput() +DescribeOrderableDBInstanceOptionsInput() +DescribeOrderableDBInstanceOptionsOutput() +DescribePendingMaintenanceActionsInput() +DescribePendingMaintenanceActionsOutput() +DescribeReservedDBInstancesInput() +DescribeReservedDBInstancesOfferingsInput() +DescribeReservedDBInstancesOfferingsOutput() +DescribeReservedDBInstancesOutput() +DescribeServerlessV2PlatformVersionsInput() +DescribeServerlessV2PlatformVersionsOutput() +DescribeSourceRegionsInput() +DescribeSourceRegionsOutput() +DescribeTenantDatabasesInput() +DescribeTenantDatabasesOutput() +DescribeValidDBInstanceModificationsInput() +DescribeValidDBInstanceModificationsOutput() +DisableHttpEndpointInput() +DisableHttpEndpointOutput() +DocLink() +DomainMembership() +DoubleRange() +DownloadDBLogFilePortionInput() +DownloadDBLogFilePortionOutput() +EC2SecurityGroup() +EnableHttpEndpointInput() +EnableHttpEndpointOutput() +Endpoint() +EngineDefaults() +Event() +EventCategoriesMap() +EventSubscription() +ExportTask() +FailoverDBClusterInput() +FailoverDBClusterOutput() +FailoverGlobalClusterInput() +FailoverGlobalClusterOutput() +FailoverState() +Filter() +GlobalCluster() +GlobalClusterMember() +Integration() +IntegrationError() +IPRange() +IssueDetails() +LimitlessDatabase() +ListTagsForResourceInput() +ListTagsForResourceOutput() +MasterUserSecret() +Metric() +MetricQuery() +MetricReference() +MinimumEngineVersionPerAllowedValue() +ModifyActivityStreamInput() +ModifyActivityStreamOutput() +ModifyAdditionalStorageVolume() +ModifyCertificatesInput() +ModifyCertificatesOutput() +ModifyCurrentDBClusterCapacityInput() +ModifyCurrentDBClusterCapacityOutput() +ModifyCustomDBEngineVersionInput() +ModifyCustomDBEngineVersionOutput() +ModifyDBCapacityReservationInput() +ModifyDBCapacityReservationOutput() +ModifyDBClusterEndpointInput() +ModifyDBClusterEndpointOutput() +ModifyDBClusterInput() +ModifyDBClusterOutput() +ModifyDBClusterParameterGroupInput() +ModifyDBClusterParameterGroupOutput() +ModifyDBClusterSnapshotAttributeInput() +ModifyDBClusterSnapshotAttributeOutput() +ModifyDBInstanceInput() +ModifyDBInstanceOutput() +ModifyDBParameterGroupInput() +ModifyDBParameterGroupOutput() +ModifyDBProxyEndpointInput() +ModifyDBProxyEndpointOutput() +ModifyDBProxyInput() +ModifyDBProxyOutput() +ModifyDBProxyTargetGroupInput() +ModifyDBProxyTargetGroupOutput() +ModifyDBRecommendationInput() +ModifyDBRecommendationOutput() +ModifyDBShardGroupInput() +ModifyDBShardGroupOutput() +ModifyDBSnapshotAttributeInput() +ModifyDBSnapshotAttributeOutput() +ModifyDBSnapshotInput() +ModifyDBSnapshotOutput() +ModifyDBSubnetGroupInput() +ModifyDBSubnetGroupOutput() +ModifyEventSubscriptionInput() +ModifyEventSubscriptionOutput() +ModifyGlobalClusterInput() +ModifyGlobalClusterOutput() +ModifyIntegrationInput() +ModifyIntegrationOutput() +ModifyOptionGroupInput() +ModifyOptionGroupOutput() +ModifyTenantDatabaseInput() +ModifyTenantDatabaseOutput() +Option() +OptionConfiguration() +OptionGroup() +OptionGroupMembership() +OptionGroupOption() +OptionGroupOptionSetting() +OptionSetting() +OptionVersion() +OrderableDBInstanceOption() +Outpost() +Parameter() +PendingCloudwatchLogsExports() +PendingMaintenanceAction() +PendingModifiedValues() +PerformanceInsightsMetricDimensionGroup() +PerformanceInsightsMetricQuery() +PerformanceIssueDetails() +ProcessorFeature() +PromoteReadReplicaDBClusterInput() +PromoteReadReplicaDBClusterOutput() +PromoteReadReplicaInput() +PromoteReadReplicaOutput() +PurchaseReservedDBInstancesOfferingInput() +PurchaseReservedDBInstancesOfferingOutput() +Range() +RdsCustomClusterConfiguration() +RebootDBClusterInput() +RebootDBClusterOutput() +RebootDBInstanceInput() +RebootDBInstanceOutput() +RebootDBShardGroupInput() +RebootDBShardGroupOutput() +RecommendedAction() +RecommendedActionParameter() +RecommendedActionUpdate() +RecurringCharge() +ReferenceDetails() +RegisterDBProxyTargetsInput() +RegisterDBProxyTargetsOutput() +RemoveFromGlobalClusterInput() +RemoveFromGlobalClusterOutput() +RemoveRoleFromDBClusterInput() +RemoveRoleFromDBClusterOutput() +RemoveRoleFromDBInstanceInput() +RemoveRoleFromDBInstanceOutput() +RemoveSourceIdentifierFromSubscriptionInput() +RemoveSourceIdentifierFromSubscriptionOutput() +RemoveTagsFromResourceInput() +RemoveTagsFromResourceOutput() +ReservedDBInstance() +ReservedDBInstancesOffering() +ResetDBClusterParameterGroupInput() +ResetDBClusterParameterGroupOutput() +ResetDBParameterGroupInput() +ResetDBParameterGroupOutput() +ResourcePendingMaintenanceActions() +RestoreDBClusterFromS3Input() +RestoreDBClusterFromS3Output() +RestoreDBClusterFromSnapshotInput() +RestoreDBClusterFromSnapshotOutput() +RestoreDBClusterToPointInTimeInput() +RestoreDBClusterToPointInTimeOutput() +RestoreDBInstanceFromDBSnapshotInput() +RestoreDBInstanceFromDBSnapshotOutput() +RestoreDBInstanceFromS3Input() +RestoreDBInstanceFromS3Output() +RestoreDBInstanceToPointInTimeInput() +RestoreDBInstanceToPointInTimeOutput() +RestoreWindow() +RevokeDBSecurityGroupIngressInput() +RevokeDBSecurityGroupIngressOutput() +ScalarReferenceDetails() +ScalingConfiguration() +ScalingConfigurationInfo() +ServerlessV2FeaturesSupport() +ServerlessV2PlatformVersionInfo() +ServerlessV2ScalingConfiguration() +ServerlessV2ScalingConfigurationInfo() +SourceRegion() +StartActivityStreamInput() +StartActivityStreamOutput() +StartDBClusterInput() +StartDBClusterOutput() +StartDBInstanceAutomatedBackupsReplicationInput() +StartDBInstanceAutomatedBackupsReplicationOutput() +StartDBInstanceInput() +StartDBInstanceOutput() +StartExportTaskInput() +StartExportTaskOutput() +StopActivityStreamInput() +StopActivityStreamOutput() +StopDBClusterInput() +StopDBClusterOutput() +StopDBInstanceAutomatedBackupsReplicationInput() +StopDBInstanceAutomatedBackupsReplicationOutput() +StopDBInstanceInput() +StopDBInstanceOutput() +Subnet() +SupportedEngineLifecycle() +SwitchoverBlueGreenDeploymentInput() +SwitchoverBlueGreenDeploymentOutput() +SwitchoverDetail() +SwitchoverGlobalClusterInput() +SwitchoverGlobalClusterOutput() +SwitchoverReadReplicaInput() +SwitchoverReadReplicaOutput() +Tag() +TagSpecification() +TargetHealth() +TargetResourceConfiguration(source_arn=_) +TenantDatabase() +TenantDatabasePendingModifiedValues() +Timezone() +UpgradeTarget() +UserAuthConfig() +UserAuthConfigInfo() +ValidAdditionalStorageOptions() +ValidDBInstanceModificationsMessage() +ValidStorageOptions() +ValidVolumeOptions() +VpcSecurityGroupMembership() diff --git a/clients/aws-sdk-rds/tests/test_awsquery_protocol.py b/clients/aws-sdk-rds/tests/test_awsquery_protocol.py new file mode 100644 index 00000000..ac5e6a6e --- /dev/null +++ b/clients/aws-sdk-rds/tests/test_awsquery_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_rds.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-rds/tests/test_endpoints.py b/clients/aws-sdk-rds/tests/test_endpoints.py new file mode 100644 index 00000000..c6767772 --- /dev/null +++ b/clients/aws-sdk-rds/tests/test_endpoints.py @@ -0,0 +1,341 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case + +from aws_sdk_rds.aio.client import AsyncRDSClient +from aws_sdk_rds.aio.config import AsyncRDSConfig + + +# Endpoint tests from the endpointTests trait of com.amazonaws.rds#AmazonRDSv19. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_dualstack_endpoint": None, + "use_fips_endpoint": None, +} + + +async def _config(**fields: Any) -> AsyncRDSConfig: + return await AsyncRDSConfig.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncRDSClient: + return AsyncRDSClient(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "af-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.af-south-1.amazonaws.com"}}, + id="For region af-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-east-1.amazonaws.com"}}, + id="For region ap-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-northeast-1.amazonaws.com"}}, + id="For region ap-northeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-northeast-2.amazonaws.com"}}, + id="For region ap-northeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-northeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-northeast-3.amazonaws.com"}}, + id="For region ap-northeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-south-1.amazonaws.com"}}, + id="For region ap-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-southeast-1.amazonaws.com"}}, + id="For region ap-southeast-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-southeast-2.amazonaws.com"}}, + id="For region ap-southeast-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ap-southeast-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ap-southeast-3.amazonaws.com"}}, + id="For region ap-southeast-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "ca-central-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.ca-central-1.amazonaws.com"}}, + id="For region ca-central-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "eu-central-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-central-1.amazonaws.com"}}, + id="For region eu-central-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-north-1.amazonaws.com"}}, + id="For region eu-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-south-1.amazonaws.com"}}, + id="For region eu-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-west-1.amazonaws.com"}}, + id="For region eu-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-west-2.amazonaws.com"}}, + id="For region eu-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "eu-west-3", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.eu-west-3.amazonaws.com"}}, + id="For region eu-west-3 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "me-south-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.me-south-1.amazonaws.com"}}, + id="For region me-south-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "sa-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.sa-east-1.amazonaws.com"}}, + id="For region sa-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-east-1.amazonaws.com"}}, + id="For region us-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-east-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-east-2.amazonaws.com"}}, + id="For region us-east-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-west-1.amazonaws.com"}}, + id="For region us-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-west-2.amazonaws.com"}}, + id="For region us-west-2 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://rds-fips.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://rds.us-east-1.api.aws"}}, + id="For region us-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-northwest-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.cn-northwest-1.amazonaws.com.cn"}}, + id="For region cn-northwest-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + id="For region cn-north-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.cn-north-1.amazonaws.com.cn"}}, + id="For region cn-north-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "cn-north-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://rds.cn-north-1.api.amazonwebservices.com.cn"}}, + id="For region cn-north-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-gov-east-1.amazonaws.com"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-gov-west-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-gov-west-1.amazonaws.com"}}, + id="For region us-gov-west-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": True, "UseDualStack": True}, + {"endpoint": {"url": "https://rds-fips.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS enabled and DualStack enabled", + ), + param( + {"Region": "us-gov-east-1", "UseFIPS": False, "UseDualStack": True}, + {"endpoint": {"url": "https://rds.us-gov-east-1.api.aws"}}, + id="For region us-gov-east-1 with FIPS disabled and DualStack enabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-west-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-iso-west-1.c2s.ic.gov"}}, + id="For region us-iso-west-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-iso-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-iso-east-1.c2s.ic.gov"}}, + id="For region us-iso-east-1 with FIPS enabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": False, "UseDualStack": False}, + {"endpoint": {"url": "https://rds.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS disabled and DualStack disabled", + ), + param( + {"Region": "us-isob-east-1", "UseFIPS": True, "UseDualStack": False}, + {"endpoint": {"url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov"}}, + id="For region us-isob-east-1 with FIPS enabled and DualStack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region set and fips disabled and dualstack disabled", + ), + param( + {"UseFIPS": False, "UseDualStack": False, "Endpoint": "https://example.com"}, + {"endpoint": {"url": "https://example.com"}}, + id="For custom endpoint with region not set and fips disabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "https://example.com", + }, + {"error": "Invalid Configuration: FIPS and custom endpoint are not supported"}, + id="For custom endpoint with fips enabled and dualstack disabled", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Endpoint": "https://example.com", + }, + { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + id="For custom endpoint with fips disabled and dualstack enabled", + ), + param({}, {"error": "Invalid Configuration: Missing Region"}, id="Missing region"), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) diff --git a/clients/aws-sdk-rds/tests/test_model_conformance.py b/clients/aws-sdk-rds/tests/test_model_conformance.py new file mode 100644 index 00000000..41e58db7 --- /dev/null +++ b/clients/aws-sdk-rds/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_rds import models as _models +from aws_sdk_rds._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-s3/README.md b/clients/aws-sdk-s3/README.md new file mode 100644 index 00000000..2ef46b83 --- /dev/null +++ b/clients/aws-sdk-s3/README.md @@ -0,0 +1,41 @@ + + +## Amazon Simple Storage Service Client + +aws_sdk_s3 client + +### Documentation + +Note: + For information about using the Amazon S3 API---including + authentication, signing requests, code examples, and error + handling---see the [Amazon S3 Developer + Guide](https://docs.aws.amazon.com/AmazonS3/latest/developerguide/Welcome.html). + +Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon +Simple Storage Service (Amazon S3) application programming interface +(API). + +Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon +Simple Storage Service (Amazon S3) application programming interface +(API). + +You can use any toolkit that supports HTTP to use the REST API. You can +even use a browser to fetch objects, as long as they are anonymously +readable. + +The REST API uses the standard HTTP headers and status codes, so that +standard browsers and toolkits work as expected. In some areas, we have +added functionality to HTTP (for example, we added headers to support +access control). In these cases, we have done our best to add the new +functionality in a way that matched the style of standard HTTP usage. + +The current version of the Amazon S3 API is `2006-03-01`. + +Amazon S3 supports the REST API. + +Note: + Support for SOAP over HTTP is deprecated, but it is still available over + HTTPS. However, new Amazon S3 features will not be supported for SOAP. + We recommend that you use either this REST API or the Amazon Web + Services SDKs. diff --git a/clients/aws-sdk-s3/pyproject.toml b/clients/aws-sdk-s3/pyproject.toml new file mode 100644 index 00000000..fafd9025 --- /dev/null +++ b/clients/aws-sdk-s3/pyproject.toml @@ -0,0 +1,71 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +[project] +name = "aws_sdk_s3" +version = "0.12.0" +description = "aws_sdk_s3 client" +readme = "README.md" +requires-python = ">=3.12" +keywords = ["smithy", "aws_sdk_s3"] +license = {text = "Apache-2.0"} +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" +] + +dependencies = [ + "smithy_aws_core[checksums, eventstream, xml]~=0.13.0", + "smithy_core~=0.10.0", + "smithy_http[aiohttp, urllib3]~=0.7.0" +] + +[project.optional-dependencies] +awscrt = [ + "smithy_http[awscrt]~=0.7.0" +] + +[dependency-groups] +test = [ + "pytest>=9.0.1,<10.0.0", + "pytest-asyncio>=1.3.0,<1.4.0", + "smithy_test~=0.2.0" +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pyright] +typeCheckingMode = "strict" +reportPrivateUsage = false +reportUnusedFunction = false +reportUnusedVariable = false +reportUnnecessaryComparison = false +reportUnusedClass = false +enableExperimentalFeatures = true +# models.py is the dynamic runtime; models.pyi carries the typed +# surface for consumers, so don't type-check the implementation body. +exclude = ["**/models.py"] + +[tool.ruff] +target-version = "py312" + +[tool.ruff.lint] +ignore = ["F841"] + +[tool.ruff.format] +skip-magic-trailing-comma = true + +[tool.pytest.ini_options] +python_classes = ["!Test"] +asyncio_mode = "auto" diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/__init__.py b/clients/aws-sdk-s3/src/aws_sdk_s3/__init__.py new file mode 100644 index 00000000..5891fe13 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/__init__.py @@ -0,0 +1,29 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import S3Client + from .config import S3Config + from .aio.client import AsyncS3Client + from .aio.config import AsyncS3Config + +__all__ = ["S3Client", "S3Config", "AsyncS3Client", "AsyncS3Config"] + +_EXPORTS = { + "S3Client": ".client", + "S3Config": ".config", + "AsyncS3Client": ".aio.client", + "AsyncS3Config": ".aio.config", +} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__version__: str = "0.12.0" diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/_private/__init__.py b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/_private/endpoints.py b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/endpoints.py new file mode 100644 index 00000000..0c7b4d5f --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/endpoints.py @@ -0,0 +1,782 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +"""Endpoint BDD for com.amazonaws.s3#AmazonS3.""" + +from smithy_core.endpoints import EndpointBdd + +# fmt: off +# Tags: ref=0, attr=1, call=2, list=3, map=4, error=5, endpoint=6. +BDD = EndpointBdd( + # (name, type, required, default, builtin, client_context_attribute) + parameters=( + ("Bucket", "string", False, None, None, None), + ("Region", "string", False, None, "AWS::Region", None), + ("UseFIPS", "boolean", True, False, "AWS::UseFIPS", None), + ("UseDualStack", "boolean", True, False, "AWS::UseDualStack", None), + ("Endpoint", "string", False, None, "SDK::Endpoint", None), + ("ForcePathStyle", "boolean", True, False, "AWS::S3::ForcePathStyle", "force_path_style"), + ("Accelerate", "boolean", True, False, "AWS::S3::Accelerate", "use_accelerate_endpoint"), + ("UseGlobalEndpoint", "boolean", True, False, "AWS::S3::UseGlobalEndpoint", None), + ("UseObjectLambdaEndpoint", "boolean", False, None, None, None), + ("DisableAccessPoints", "boolean", False, None, None, None), + ("DisableMultiRegionAccessPoints", "boolean", True, False, "AWS::S3::DisableMultiRegionAccessPoints", "disable_multi_region_access_points"), + ("UseArnRegion", "boolean", False, None, "AWS::S3::UseArnRegion", "use_arn_region"), + ("UseS3ExpressControlEndpoint", "boolean", False, None, None, None), + ("DisableS3ExpressSessionAuth", "boolean", False, None, None, "disable_s3_express_session_auth"), + ), + functions=("aws.isVirtualHostableS3Bucket", "aws.parseArn", "aws.partition", "booleanEquals", "coalesce", "isSet", "isValidHostLabel", "ite", "parseURL", "split", "stringEquals", "substring", "uriEncode"), + conditions=( + ((2, "isSet", (0, "Region")), None), # 0: isSet(Region) + ((2, "booleanEquals", (0, "Accelerate"), True), None), # 1: booleanEquals(Accelerate, true) + ((2, "booleanEquals", (0, "UseFIPS"), True), None), # 2: booleanEquals(UseFIPS, true) + ((2, "booleanEquals", (0, "UseDualStack"), True), None), # 3: booleanEquals(UseDualStack, true) + ((2, "isSet", (0, "Endpoint")), None), # 4: isSet(Endpoint) + ((2, "isSet", (0, "Bucket")), None), # 5: isSet(Bucket) + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 0, 6, True), ""), "--x-s3"), None), # 6: stringEquals(coalesce(substring(Bucket, 0, 6, true), ""), "--x-s3") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 0, 7, True), ""), "--xa-s3"), None), # 7: stringEquals(coalesce(substring(Bucket, 0, 7, true), ""), "--xa-s3") + ((2, "aws.partition", (0, "Region")), "partitionResult"), # 8: partitionResult = aws.partition(Region) + ((2, "substring", (0, "Bucket"), 0, 7, True), "accessPointSuffix"), # 9: accessPointSuffix = substring(Bucket, 0, 7, true) + ((2, "stringEquals", (0, "accessPointSuffix"), "--op-s3"), None), # 10: stringEquals(accessPointSuffix, "--op-s3") + ((2, "substring", (0, "Bucket"), 8, 12, True), "regionPrefix"), # 11: regionPrefix = substring(Bucket, 8, 12, true) + ((2, "substring", (0, "Bucket"), 32, 49, True), "outpostId_ssa_2"), # 12: outpostId_ssa_2 = substring(Bucket, 32, 49, true) + ((2, "substring", (0, "Bucket"), 49, 50, True), "hardwareType"), # 13: hardwareType = substring(Bucket, 49, 50, true) + ((2, "booleanEquals", (0, "ForcePathStyle"), True), None), # 14: booleanEquals(ForcePathStyle, true) + ((2, "stringEquals", (1, (0, "partitionResult"), "name"), "aws-cn"), None), # 15: stringEquals(partitionResult#name, "aws-cn") + ((2, "ite", (0, "UseDualStack"), ".dualstack", ""), "_s3e_ds"), # 16: _s3e_ds = ite(UseDualStack, ".dualstack", "") + ((2, "isValidHostLabel", (0, "outpostId_ssa_2"), False), None), # 17: isValidHostLabel(outpostId_ssa_2, false) + ((2, "ite", (0, "UseFIPS"), "-fips", ""), "_s3e_fips"), # 18: _s3e_fips = ite(UseFIPS, "-fips", "") + ((2, "ite", (2, "coalesce", (0, "DisableS3ExpressSessionAuth"), False), "sigv4", "sigv4-s3express"), "_s3e_auth"), # 19: _s3e_auth = ite(coalesce(DisableS3ExpressSessionAuth, false), "sigv4", "sigv4-s3express") + ((2, "aws.isVirtualHostableS3Bucket", (0, "Bucket"), False), None), # 20: aws.isVirtualHostableS3Bucket(Bucket, false) + ((2, "parseURL", (0, "Endpoint")), "url"), # 21: url = parseURL(Endpoint) + ((2, "booleanEquals", (2, "coalesce", (0, "UseS3ExpressControlEndpoint"), False), True), None), # 22: booleanEquals(coalesce(UseS3ExpressControlEndpoint, false), true) + ((2, "aws.isVirtualHostableS3Bucket", (0, "Bucket"), True), None), # 23: aws.isVirtualHostableS3Bucket(Bucket, true) + ((2, "stringEquals", (1, (0, "url"), "scheme"), "http"), None), # 24: stringEquals(url#scheme, "http") + ((2, "isValidHostLabel", (0, "Region"), False), None), # 25: isValidHostLabel(Region, false) + ((2, "aws.parseArn", (0, "Bucket")), "bucketArn"), # 26: bucketArn = aws.parseArn(Bucket) + ((1, (2, "split", (0, "Bucket"), "--", 0), "[-2]"), "s3expressAvailabilityZoneId"), # 27: s3expressAvailabilityZoneId = split(Bucket, "--", 0)#[-2] + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 0, 4, False), ""), "arn:"), None), # 28: stringEquals(coalesce(substring(Bucket, 0, 4, false), ""), "arn:") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 16, 18, True), ""), "--"), None), # 29: stringEquals(coalesce(substring(Bucket, 16, 18, true), ""), "--") + ((2, "booleanEquals", (1, (0, "url"), "isIp"), True), None), # 30: booleanEquals(url#isIp, true) + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 21, 23, True), ""), "--"), None), # 31: stringEquals(coalesce(substring(Bucket, 21, 23, true), ""), "--") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 27, 29, True), ""), "--"), None), # 32: stringEquals(coalesce(substring(Bucket, 27, 29, true), ""), "--") + ((2, "stringEquals", (0, "regionPrefix"), "beta"), None), # 33: stringEquals(regionPrefix, "beta") + ((2, "uriEncode", (0, "Bucket")), "uri_encoded_bucket"), # 34: uri_encoded_bucket = uriEncode(Bucket) + ((2, "isValidHostLabel", (0, "Region"), True), None), # 35: isValidHostLabel(Region, true) + ((2, "booleanEquals", (2, "coalesce", (0, "UseObjectLambdaEndpoint"), False), True), None), # 36: booleanEquals(coalesce(UseObjectLambdaEndpoint, false), true) + ((1, (0, "bucketArn"), "resourceId[0]"), "arnType"), # 37: arnType = bucketArn#resourceId[0] + ((2, "stringEquals", (0, "arnType"), ""), None), # 38: stringEquals(arnType, "") + ((2, "stringEquals", (0, "arnType"), "accesspoint"), None), # 39: stringEquals(arnType, "accesspoint") + ((1, (0, "bucketArn"), "resourceId[1]"), "accessPointName_ssa_1"), # 40: accessPointName_ssa_1 = bucketArn#resourceId[1] + ((2, "stringEquals", (0, "accessPointName_ssa_1"), ""), None), # 41: stringEquals(accessPointName_ssa_1, "") + ((2, "stringEquals", (1, (0, "bucketArn"), "region"), ""), None), # 42: stringEquals(bucketArn#region, "") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 14, 16, True), ""), "--"), None), # 43: stringEquals(coalesce(substring(Bucket, 14, 16, true), ""), "--") + ((2, "stringEquals", (0, "hardwareType"), "e"), None), # 44: stringEquals(hardwareType, "e") + ((2, "stringEquals", (0, "hardwareType"), "o"), None), # 45: stringEquals(hardwareType, "o") + ((2, "stringEquals", (0, "Region"), "aws-global"), None), # 46: stringEquals(Region, "aws-global") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 19, 21, True), ""), "--"), None), # 47: stringEquals(coalesce(substring(Bucket, 19, 21, true), ""), "--") + ((2, "stringEquals", (1, (0, "bucketArn"), "service"), "s3-object-lambda"), None), # 48: stringEquals(bucketArn#service, "s3-object-lambda") + ((2, "booleanEquals", (2, "coalesce", (0, "DisableAccessPoints"), False), True), None), # 49: booleanEquals(coalesce(DisableAccessPoints, false), true) + ((2, "stringEquals", (1, (0, "bucketArn"), "service"), "s3-outposts"), None), # 50: stringEquals(bucketArn#service, "s3-outposts") + ((2, "aws.partition", (1, (0, "bucketArn"), "region")), "bucketPartition"), # 51: bucketPartition = aws.partition(bucketArn#region) + ((2, "isValidHostLabel", (0, "accessPointName_ssa_1"), True), None), # 52: isValidHostLabel(accessPointName_ssa_1, true) + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 26, 28, True), ""), "--"), None), # 53: stringEquals(coalesce(substring(Bucket, 26, 28, true), ""), "--") + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 15, 17, True), ""), "--"), None), # 54: stringEquals(coalesce(substring(Bucket, 15, 17, true), ""), "--") + ((1, (0, "bucketArn"), "resourceId[4]"), None), # 55: bucketArn#resourceId[4] + ((2, "stringEquals", (2, "coalesce", (2, "substring", (0, "Bucket"), 20, 22, True), ""), "--"), None), # 56: stringEquals(coalesce(substring(Bucket, 20, 22, true), ""), "--") + ((2, "booleanEquals", (0, "UseGlobalEndpoint"), True), None), # 57: booleanEquals(UseGlobalEndpoint, true) + ((2, "stringEquals", (0, "Region"), "us-east-1"), None), # 58: stringEquals(Region, "us-east-1") + ((1, (0, "bucketArn"), "resourceId[1]"), "outpostId_ssa_1"), # 59: outpostId_ssa_1 = bucketArn#resourceId[1] + ((2, "booleanEquals", (2, "coalesce", (0, "UseArnRegion"), True), True), None), # 60: booleanEquals(coalesce(UseArnRegion, true), true) + ((2, "isValidHostLabel", (0, "outpostId_ssa_1"), False), None), # 61: isValidHostLabel(outpostId_ssa_1, false) + ((1, (0, "bucketArn"), "resourceId[2]"), "outpostType"), # 62: outpostType = bucketArn#resourceId[2] + ((2, "stringEquals", (0, "Region"), (1, (0, "bucketArn"), "region")), None), # 63: stringEquals(Region, bucketArn#region) + ((2, "stringEquals", (1, (0, "bucketPartition"), "name"), (1, (0, "partitionResult"), "name")), None), # 64: stringEquals(bucketPartition#name, partitionResult#name) + ((2, "booleanEquals", (0, "DisableMultiRegionAccessPoints"), True), None), # 65: booleanEquals(DisableMultiRegionAccessPoints, true) + ((2, "isValidHostLabel", (1, (0, "bucketArn"), "region"), True), None), # 66: isValidHostLabel(bucketArn#region, true) + ((2, "stringEquals", (1, (0, "bucketArn"), "partition"), (1, (0, "partitionResult"), "name")), None), # 67: stringEquals(bucketArn#partition, partitionResult#name) + ((2, "stringEquals", (1, (0, "bucketArn"), "accountId"), ""), None), # 68: stringEquals(bucketArn#accountId, "") + ((2, "stringEquals", (1, (0, "bucketArn"), "service"), "s3"), None), # 69: stringEquals(bucketArn#service, "s3") + ((2, "isValidHostLabel", (1, (0, "bucketArn"), "accountId"), False), None), # 70: isValidHostLabel(bucketArn#accountId, false) + ((1, (0, "bucketArn"), "resourceId[3]"), "accessPointName_ssa_2"), # 71: accessPointName_ssa_2 = bucketArn#resourceId[3] + ((2, "isValidHostLabel", (0, "accessPointName_ssa_1"), False), None), # 72: isValidHostLabel(accessPointName_ssa_1, false) + ((2, "stringEquals", (0, "outpostType"), "accesspoint"), None), # 73: stringEquals(outpostType, "accesspoint") + ((2, "isValidHostLabel", (0, "accessPointName_ssa_2"), False), None), # 74: isValidHostLabel(accessPointName_ssa_2, false) + ), + results=( + None, # 0: no match + (5, "Accelerate cannot be used with FIPS"), # 1 + (5, "Cannot set dual-stack in combination with a custom endpoint."), # 2 + (5, "A custom endpoint cannot be combined with FIPS"), # 3 + (5, "A custom endpoint cannot be combined with S3 Accelerate"), # 4 + (5, "Partition does not support FIPS"), # 5 + (5, "S3Express does not support S3 Accelerate."), # 6 + (6, "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "{_s3e_auth}", "s3express", "{Region}"))), ()), # 7 + (6, "{url#scheme}://{Bucket}.{url#authority}{url#path}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "{_s3e_auth}", "s3express", "{Region}"))), ()), # 8 + (5, "S3Express bucket name is not a valid virtual hostable name."), # 9 + (6, "https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3express", "{Region}"))), ()), # 10 + (6, "https://{Bucket}.s3express{_s3e_fips}-{s3expressAvailabilityZoneId}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "{_s3e_auth}", "s3express", "{Region}"))), ()), # 11 + (5, "Unrecognized S3Express bucket name format."), # 12 + (6, "{url#scheme}://{url#authority}{url#path}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "{_s3e_auth}", "s3express", "{Region}"))), ()), # 13 + (6, "https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", (4, ("backend", "authSchemes"), "S3Express", (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3express", "{Region}"))), ()), # 14 + (5, "Expected a endpoint to be specified but no endpoint was found"), # 15 + (6, "https://{Bucket}.ec2.{url#authority}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{Region}"))), ()), # 16 + (6, "https://{Bucket}.ec2.s3-outposts.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{Region}"))), ()), # 17 + (6, "https://{Bucket}.op-{outpostId_ssa_2}.{url#authority}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{Region}"))), ()), # 18 + (6, "https://{Bucket}.op-{outpostId_ssa_2}.s3-outposts.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{Region}"))), ()), # 19 + (5, "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\""), # 20 + (5, "Invalid Outposts Bucket alias - it must be a valid bucket name."), # 21 + (5, "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."), # 22 + (5, "Custom endpoint `{Endpoint}` was not a valid URI"), # 23 + (5, "S3 Accelerate cannot be used in this region"), # 24 + (6, "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 25 + (6, "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 26 + (6, "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 27 + (6, "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 28 + (6, "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 29 + (6, "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 30 + (6, "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 31 + (6, "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 32 + (6, "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 33 + (6, "{url#scheme}://{Bucket}.{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 34 + (6, "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 35 + (6, "{url#scheme}://{Bucket}.{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 36 + (6, "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 37 + (6, "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 38 + (6, "https://{Bucket}.s3.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 39 + (6, "https://{Bucket}.s3.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 40 + (6, "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 41 + (5, "Invalid region: region was not a valid DNS name."), # 42 + (5, "S3 Object Lambda does not support Dual-stack"), # 43 + (5, "S3 Object Lambda does not support S3 Accelerate"), # 44 + (5, "Access points are not supported for this operation"), # 45 + (5, "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`"), # 46 + (5, "Invalid ARN: Missing account id"), # 47 + (6, "{url#scheme}://{accessPointName_ssa_1}-{bucketArn#accountId}.{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{bucketArn#region}"))), ()), # 48 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{bucketArn#region}"))), ()), # 49 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{bucketArn#region}"))), ()), # 50 + (5, "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_1}`"), # 51 + (5, "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`"), # 52 + (5, "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)"), # 53 + (5, "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`"), # 54 + (5, "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."), # 55 + (5, "Invalid ARN: bucket ARN is missing a region"), # 56 + (5, "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided"), # 57 + (5, "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`"), # 58 + (5, "Access Points do not support S3 Accelerate"), # 59 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{bucketArn#region}"))), ()), # 60 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{bucketArn#region}"))), ()), # 61 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{bucketArn#region}"))), ()), # 62 + (6, "{url#scheme}://{accessPointName_ssa_1}-{bucketArn#accountId}.{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{bucketArn#region}"))), ()), # 63 + (6, "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{bucketArn#region}"))), ()), # 64 + (5, "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}"), # 65 + (5, "S3 MRAP does not support dual-stack"), # 66 + (5, "S3 MRAP does not support FIPS"), # 67 + (5, "S3 MRAP does not support S3 Accelerate"), # 68 + (5, "Invalid configuration: Multi-Region Access Point ARNs are disabled."), # 69 + (6, "https://{accessPointName_ssa_1}.accesspoint.s3-global.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3", (3, "*")))), ()), # 70 + (5, "Client was configured for partition `{partitionResult#name}` but bucket referred to partition `{bucketArn#partition}`"), # 71 + (5, "Invalid Access Point Name"), # 72 + (5, "S3 Outposts does not support Dual-stack"), # 73 + (5, "S3 Outposts does not support FIPS"), # 74 + (5, "S3 Outposts does not support S3 Accelerate"), # 75 + (5, "Invalid Arn: Outpost Access Point ARN contains sub resources"), # 76 + (6, "https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.{url#authority}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{bucketArn#region}"))), ()), # 77 + (6, "https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegionSet"), True, "sigv4a", "s3-outposts", (3, "*")), (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-outposts", "{bucketArn#region}"))), ()), # 78 + (5, "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_2}`"), # 79 + (5, "Expected an outpost type `accesspoint`, found {outpostType}"), # 80 + (5, "Invalid ARN: expected an access point name"), # 81 + (5, "Invalid ARN: Expected a 4-component resource"), # 82 + (5, "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId_ssa_1}`"), # 83 + (5, "Invalid ARN: The Outpost Id was not set"), # 84 + (5, "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})"), # 85 + (5, "Invalid ARN: No ARN type specified"), # 86 + (5, "Invalid ARN: `{Bucket}` was not a valid ARN"), # 87 + (5, "Path-style addressing cannot be used with ARN buckets"), # 88 + (6, "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 89 + (6, "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 90 + (6, "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 91 + (6, "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 92 + (6, "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 93 + (6, "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 94 + (6, "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 95 + (6, "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 96 + (6, "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 97 + (6, "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 98 + (6, "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 99 + (5, "Path-style addressing cannot be used with S3 Accelerate"), # 100 + (6, "{url#scheme}://{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{Region}"))), ()), # 101 + (6, "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{Region}"))), ()), # 102 + (6, "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3-object-lambda", "{Region}"))), ()), # 103 + (6, "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 104 + (6, "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 105 + (6, "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 106 + (6, "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 107 + (6, "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 108 + (6, "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 109 + (6, "{url#scheme}://{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 110 + (6, "{url#scheme}://{url#authority}{url#path}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 111 + (6, "https://s3.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "us-east-1"))), ()), # 112 + (6, "https://s3.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 113 + (6, "https://s3.{Region}.{partitionResult#dnsSuffix}", (4, ("authSchemes",), (3, (4, ("disableDoubleEncoding", "name", "signingName", "signingRegion"), True, "sigv4", "s3", "{Region}"))), ()), # 114 + (5, "A region must be set when sending requests to S3."), # 115 + ), + root=2, + # (condition, high, low); 1 and -1 are terminals, a negative reference is a + # complement edge, and 100_000_000 + k is result k. + nodes=( + -1, 1, -1, + 0, 3, 100_000_115, + 1, 424, 4, + 2, 272, 5, + 3, 233, 6, + 4, 85, 7, + 5, 15, 8, + 8, 9, 100_000_115, + 16, 10, 13, + 18, 11, 13, + 19, 12, 13, + 22, 100_000_014, 13, + 35, 14, 100_000_042, + 36, 100_000_103, 435, + 6, 271, 16, + 7, 270, 17, + 8, 19, 18, + 14, 501, 106, + 9, 20, 24, + 10, 21, 24, + 11, 22, 24, + 12, 23, 24, + 13, 547, 24, + 14, 77, 25, + 20, 73, 26, + 26, 27, 78, + 37, 28, 100_000_086, + 38, 100_000_086, 29, + 39, 47, 30, + 48, 100_000_058, 31, + 50, 32, 100_000_085, + 51, 33, 136, + 55, 100_000_076, 34, + 59, 35, 100_000_084, + 60, 39, 36, + 61, 37, 100_000_083, + 62, 38, 146, + 63, 41, 100_000_046, + 61, 40, 100_000_083, + 62, 41, 150, + 64, 42, 100_000_054, + 66, 43, 100_000_053, + 70, 44, 100_000_052, + 71, 45, 100_000_081, + 73, 46, 100_000_080, + 74, 100_000_078, 100_000_079, + 40, 48, 100_000_057, + 41, 100_000_057, 49, + 42, 185, 50, + 48, 62, 51, + 49, 100_000_045, 52, + 51, 53, 526, + 60, 56, 54, + 62, 100_000_055, 55, + 63, 57, 100_000_046, + 62, 100_000_055, 57, + 64, 58, 100_000_054, + 66, 59, 100_000_053, + 69, 60, 100_000_065, + 70, 61, 100_000_052, + 72, 100_000_064, 100_000_051, + 49, 100_000_045, 63, + 51, 64, 526, + 60, 67, 65, + 62, 100_000_055, 66, + 63, 68, 100_000_046, + 62, 100_000_055, 68, + 64, 69, 100_000_054, + 66, 70, 100_000_053, + 68, 100_000_047, 71, + 70, 72, 100_000_052, + 72, 100_000_050, 100_000_051, + 25, 74, 100_000_042, + 46, 100_000_039, 75, + 57, 76, 100_000_041, + 58, 100_000_040, 100_000_041, + 26, 100_000_088, 78, + 28, 100_000_087, 79, + 34, 82, 80, + 35, 81, 545, + 36, 100_000_103, 100_000_115, + 46, 100_000_097, 83, + 57, 84, 100_000_099, + 58, 100_000_098, 100_000_099, + 5, 101, 86, + 8, 87, 100_000_115, + 16, 88, 89, + 18, 91, 89, + 19, 90, 92, + 21, 97, 95, + 19, 93, 92, + 21, 98, 95, + 21, 97, 94, + 22, 100_000_014, 95, + 35, 96, 100_000_042, + 36, 100_000_103, 100_000_042, + 22, 100_000_013, 98, + 35, 99, 100_000_042, + 36, 100_000_101, 100, + 46, 100_000_110, 100_000_111, + 6, 214, 102, + 7, 208, 103, + 8, 119, 104, + 14, 118, 105, + 21, 106, 100_000_023, + 26, 107, 502, + 37, 108, 100_000_086, + 38, 100_000_086, 109, + 39, 112, 110, + 48, 100_000_058, 111, + 50, 136, 100_000_085, + 40, 113, 100_000_057, + 41, 100_000_057, 114, + 42, 115, 500, + 48, 100_000_056, 116, + 52, 117, 100_000_072, + 65, 100_000_069, 100_000_072, + 21, 501, 100_000_023, + 9, 120, 124, + 10, 121, 124, + 11, 122, 124, + 12, 123, 124, + 13, 202, 124, + 14, 195, 125, + 20, 190, 126, + 21, 127, 100_000_023, + 23, 128, 129, + 24, 189, 129, + 26, 130, 197, + 37, 131, 100_000_086, + 38, 100_000_086, 132, + 39, 159, 133, + 48, 100_000_058, 134, + 50, 135, 100_000_085, + 51, 141, 136, + 55, 100_000_076, 137, + 59, 138, 100_000_084, + 60, 100_000_083, 139, + 61, 140, 100_000_083, + 63, 100_000_083, 100_000_046, + 55, 100_000_076, 142, + 59, 143, 100_000_084, + 60, 148, 144, + 61, 145, 100_000_083, + 62, 147, 146, + 63, 150, 100_000_046, + 63, 153, 100_000_046, + 61, 149, 100_000_083, + 62, 153, 150, + 64, 151, 100_000_054, + 66, 152, 100_000_053, + 70, 100_000_082, 100_000_052, + 64, 154, 100_000_054, + 66, 155, 100_000_053, + 70, 156, 100_000_052, + 71, 157, 100_000_081, + 73, 158, 100_000_080, + 74, 100_000_077, 100_000_079, + 40, 160, 100_000_057, + 41, 100_000_057, 161, + 42, 185, 162, + 48, 174, 163, + 49, 100_000_045, 164, + 51, 165, 526, + 60, 168, 166, + 62, 100_000_055, 167, + 63, 169, 100_000_046, + 62, 100_000_055, 169, + 64, 170, 100_000_054, + 66, 171, 100_000_053, + 69, 172, 100_000_065, + 70, 173, 100_000_052, + 72, 100_000_063, 100_000_051, + 49, 100_000_045, 175, + 51, 176, 526, + 60, 179, 177, + 62, 100_000_055, 178, + 63, 180, 100_000_046, + 62, 100_000_055, 180, + 64, 181, 100_000_054, + 66, 182, 100_000_053, + 68, 100_000_047, 183, + 70, 184, 100_000_052, + 72, 100_000_048, 100_000_051, + 48, 100_000_056, 186, + 52, 187, 100_000_072, + 65, 100_000_069, 188, + 67, 100_000_070, 100_000_071, + 25, 100_000_036, 100_000_042, + 21, 191, 100_000_023, + 25, 192, 100_000_042, + 30, 194, 193, + 46, 100_000_034, 100_000_036, + 46, 100_000_033, 100_000_035, + 21, 196, 100_000_023, + 26, 100_000_088, 197, + 28, 100_000_087, 198, + 34, 201, 199, + 35, 200, 545, + 36, 100_000_101, 100_000_115, + 46, 100_000_095, 100_000_096, + 17, 203, 100_000_022, + 20, 204, 100_000_021, + 21, 205, 550, + 33, 206, 550, + 44, 100_000_016, 207, + 45, 100_000_018, 100_000_020, + 8, 209, 215, + 16, 210, 220, + 18, 211, 220, + 19, 212, 224, + 20, 213, 227, + 21, 231, 401, + 8, 218, 215, + 19, 216, 100_000_009, + 20, 217, 227, + 21, 231, 100_000_009, + 16, 219, 220, + 18, 223, 220, + 19, 221, 224, + 20, 222, 227, + 21, 231, 100_000_012, + 19, 226, 224, + 20, 225, 100_000_009, + 21, 100_000_009, 100_000_012, + 20, 230, 227, + 21, 228, 100_000_009, + 30, 229, 100_000_009, + 34, 100_000_007, 100_000_009, + 21, 231, 415, + 30, 232, 100_000_008, + 34, 100_000_007, 100_000_008, + 4, 100_000_002, 234, + 5, 235, 480, + 6, 271, 236, + 7, 270, 237, + 8, 238, 491, + 9, 239, 243, + 10, 240, 243, + 11, 241, 243, + 12, 242, 243, + 13, 547, 243, + 14, 266, 244, + 20, 264, 245, + 26, 246, 267, + 37, 247, 100_000_086, + 38, 100_000_086, 248, + 39, 249, 518, + 40, 250, 100_000_057, + 41, 100_000_057, 251, + 42, 538, 252, + 48, 100_000_043, 253, + 49, 100_000_045, 254, + 51, 255, 526, + 60, 258, 256, + 62, 100_000_055, 257, + 63, 259, 100_000_046, + 62, 100_000_055, 259, + 64, 260, 100_000_054, + 66, 261, 100_000_053, + 69, 262, 100_000_065, + 70, 263, 100_000_052, + 72, 100_000_062, 100_000_051, + 25, 265, 100_000_042, + 46, 100_000_031, 100_000_032, + 26, 100_000_088, 267, + 28, 100_000_087, 268, + 34, 269, 544, + 46, 100_000_093, 100_000_094, + 8, 397, 100_000_009, + 8, 407, 100_000_009, + 3, 346, 273, + 4, 100_000_003, 274, + 5, 284, 275, + 8, 276, 100_000_115, + 15, 100_000_005, 277, + 16, 278, 281, + 18, 279, 281, + 19, 280, 281, + 22, 100_000_014, 281, + 35, 282, 100_000_042, + 36, 100_000_102, 283, + 46, 100_000_106, 100_000_107, + 6, 405, 285, + 7, 395, 286, + 8, 295, 287, + 14, 501, 288, + 26, 289, 502, + 37, 290, 100_000_086, + 38, 100_000_086, 291, + 39, 292, 307, + 40, 293, 100_000_057, + 41, 100_000_057, 294, + 42, 335, 500, + 9, 296, 300, + 10, 297, 300, + 11, 298, 300, + 12, 299, 300, + 13, 394, 300, + 14, 339, 301, + 15, 100_000_005, 302, + 20, 337, 303, + 26, 304, 341, + 37, 305, 100_000_086, + 38, 100_000_086, 306, + 39, 309, 307, + 48, 100_000_058, 308, + 50, 100_000_074, 100_000_085, + 40, 310, 100_000_057, + 41, 100_000_057, 311, + 42, 335, 312, + 48, 324, 313, + 49, 100_000_045, 314, + 51, 315, 526, + 60, 318, 316, + 62, 100_000_055, 317, + 63, 319, 100_000_046, + 62, 100_000_055, 319, + 64, 320, 100_000_054, + 66, 321, 100_000_053, + 69, 322, 100_000_065, + 70, 323, 100_000_052, + 72, 100_000_061, 100_000_051, + 49, 100_000_045, 325, + 51, 326, 526, + 60, 329, 327, + 62, 100_000_055, 328, + 63, 330, 100_000_046, + 62, 100_000_055, 330, + 64, 331, 100_000_054, + 66, 332, 100_000_053, + 68, 100_000_047, 333, + 70, 334, 100_000_052, + 72, 100_000_049, 100_000_051, + 48, 100_000_056, 336, + 52, 100_000_067, 100_000_072, + 25, 338, 100_000_042, + 46, 100_000_027, 100_000_028, + 15, 100_000_005, 340, + 26, 100_000_088, 341, + 28, 100_000_087, 342, + 34, 345, 343, + 35, 344, 545, + 36, 100_000_102, 100_000_115, + 46, 100_000_091, 100_000_092, + 4, 100_000_002, 347, + 5, 357, 348, + 8, 349, 100_000_115, + 15, 100_000_005, 350, + 16, 351, 354, + 18, 352, 354, + 19, 353, 354, + 22, 100_000_014, 354, + 35, 355, 100_000_042, + 36, 100_000_043, 356, + 46, 100_000_104, 100_000_105, + 6, 405, 358, + 7, 395, 359, + 8, 360, 491, + 9, 361, 365, + 10, 362, 365, + 11, 363, 365, + 12, 364, 365, + 13, 394, 365, + 14, 389, 366, + 15, 100_000_005, 367, + 20, 387, 368, + 26, 369, 391, + 37, 370, 100_000_086, + 38, 100_000_086, 371, + 39, 372, 518, + 40, 373, 100_000_057, + 41, 100_000_057, 374, + 42, 538, 375, + 48, 100_000_043, 376, + 49, 100_000_045, 377, + 51, 378, 526, + 60, 381, 379, + 62, 100_000_055, 380, + 63, 382, 100_000_046, + 62, 100_000_055, 382, + 64, 383, 100_000_054, + 66, 384, 100_000_053, + 69, 385, 100_000_065, + 70, 386, 100_000_052, + 72, 100_000_060, 100_000_051, + 25, 388, 100_000_042, + 46, 100_000_025, 100_000_026, + 15, 100_000_005, 390, + 26, 100_000_088, 391, + 28, 100_000_087, 392, + 34, 393, 544, + 46, 100_000_089, 100_000_090, + 15, 100_000_005, 547, + 8, 396, 100_000_009, + 15, 100_000_005, 397, + 16, 398, 410, + 18, 399, 410, + 19, 400, 410, + 20, 401, 100_000_009, + 27, 402, 100_000_012, + 29, 100_000_011, 403, + 31, 100_000_011, 404, + 32, 100_000_011, 422, + 8, 406, 100_000_009, + 15, 100_000_005, 407, + 16, 408, 410, + 18, 409, 410, + 19, 411, 410, + 20, 100_000_012, 100_000_009, + 20, 414, 412, + 22, 413, 100_000_009, + 34, 100_000_010, 100_000_009, + 22, 416, 415, + 27, 419, 100_000_012, + 27, 418, 417, + 34, 100_000_010, 100_000_012, + 34, 100_000_010, 419, + 43, 100_000_011, 420, + 47, 100_000_011, 421, + 53, 100_000_011, 422, + 54, 100_000_011, 423, + 56, 100_000_011, 100_000_012, + 2, 100_000_001, 425, + 3, 478, 426, + 4, 100_000_004, 427, + 5, 438, 428, + 8, 429, 100_000_115, + 16, 430, 433, + 18, 431, 433, + 19, 432, 433, + 22, 100_000_014, 433, + 35, 434, 100_000_042, + 36, 100_000_044, 435, + 46, 100_000_112, 436, + 57, 437, 100_000_114, + 58, 100_000_113, 100_000_114, + 6, 100_000_006, 439, + 7, 100_000_006, 440, + 8, 450, 441, + 14, 501, 442, + 26, 443, 502, + 37, 444, 100_000_086, + 38, 100_000_086, 445, + 39, 446, 465, + 40, 447, 100_000_057, + 41, 100_000_057, 448, + 42, 471, 449, + 48, 100_000_044, 500, + 9, 451, 455, + 10, 452, 455, + 11, 453, 455, + 12, 454, 455, + 13, 547, 455, + 14, 473, 456, + 15, 460, 457, + 20, 458, 461, + 25, 459, 100_000_042, + 46, 100_000_037, 100_000_038, + 20, 540, 461, + 26, 462, 474, + 37, 463, 100_000_086, + 38, 100_000_086, 464, + 39, 467, 465, + 48, 100_000_058, 466, + 50, 100_000_075, 100_000_085, + 40, 468, 100_000_057, + 41, 100_000_057, 469, + 42, 471, 470, + 48, 100_000_044, 524, + 48, 100_000_044, 472, + 52, 100_000_068, 100_000_072, + 26, 100_000_088, 474, + 28, 100_000_087, 475, + 34, 100_000_100, 476, + 35, 477, 545, + 36, 100_000_044, 100_000_115, + 4, 100_000_002, 479, + 5, 488, 480, + 8, 481, 100_000_115, + 16, 482, 485, + 18, 483, 485, + 19, 484, 485, + 22, 100_000_014, 485, + 35, 486, 100_000_042, + 36, 100_000_043, 487, + 46, 100_000_108, 100_000_109, + 6, 100_000_006, 489, + 7, 100_000_006, 490, + 8, 503, 491, + 14, 501, 492, + 26, 493, 502, + 37, 494, 100_000_086, + 38, 100_000_086, 495, + 39, 496, 518, + 40, 497, 100_000_057, + 41, 100_000_057, 498, + 42, 538, 499, + 48, 100_000_043, 500, + 49, 100_000_045, 526, + 26, 100_000_088, 502, + 28, 100_000_087, 100_000_115, + 9, 504, 508, + 10, 505, 508, + 11, 506, 508, + 12, 507, 508, + 13, 547, 508, + 14, 541, 509, + 15, 513, 510, + 20, 511, 514, + 25, 512, 100_000_042, + 46, 100_000_029, 100_000_030, + 20, 540, 514, + 26, 515, 542, + 37, 516, 100_000_086, + 38, 100_000_086, 517, + 39, 520, 518, + 48, 100_000_058, 519, + 50, 100_000_073, 100_000_085, + 40, 521, 100_000_057, + 41, 100_000_057, 522, + 42, 538, 523, + 48, 100_000_043, 524, + 49, 100_000_045, 525, + 51, 529, 526, + 60, 100_000_055, 527, + 62, 100_000_055, 528, + 63, 100_000_055, 100_000_046, + 60, 532, 530, + 62, 100_000_055, 531, + 63, 533, 100_000_046, + 62, 100_000_055, 533, + 64, 534, 100_000_054, + 66, 535, 100_000_053, + 69, 536, 100_000_065, + 70, 537, 100_000_052, + 72, 100_000_059, 100_000_051, + 48, 100_000_043, 539, + 52, 100_000_066, 100_000_072, + 25, 100_000_024, 100_000_042, + 26, 100_000_088, 542, + 28, 100_000_087, 543, + 34, 100_000_100, 544, + 35, 546, 545, + 36, 100_000_042, 100_000_115, + 36, 100_000_043, 100_000_115, + 17, 548, 100_000_022, + 20, 549, 100_000_021, + 33, 552, 550, + 44, 100_000_017, 551, + 45, 100_000_019, 100_000_020, + 44, 100_000_015, 553, + 45, 100_000_015, 100_000_020, + ), +) +# fmt: on diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/_private/schemas.py b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/schemas.py new file mode 100644 index 00000000..1d0443e9 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/_private/schemas.py @@ -0,0 +1,10914 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from types import MappingProxyType + +from smithy_core._schema_compact import StaticOperationSchema, StaticSchema + + +n0 = "com.amazonaws.s3" +_BAS = "BucketAbacStatus" +_E = "Enabled" +_sV = "smithy.api#enumValue" +_D = "Disabled" +_AS = "AbacStatus" +_S = "Status" +_AD = "AbortDate" +_DAI = "DaysAfterInitiation" +_AIMU = "AbortIncompleteMultipartUpload" +_BN = "BucketName" +_AI = "AccountId" +_IMIT = "IfMatchInitiatedTime" +_sF = "smithy.api#timestampFormat" +_hd = "http-date" +_OK = "ObjectKey" +_RP = "RequestPayer" +_r = "requester" +_MUI = "MultipartUploadId" +_AMUI = "AbortMultipartUploadInput" +_sSI = "smithy.synthetic#originalShapeId" +_cAMUR = "com.amazonaws.s3#AbortMultipartUploadRequest" +_s = "smithy.api#input" +_B = "Bucket" +_sP = "smithy.rules#contextParam" +_sm = "smithy.api#required" +_sL = "smithy.api#httpLabel" +_K = "Key" +_UI = "UploadId" +_sQ = "smithy.api#httpQuery" +_uI = "uploadId" +_sH = "smithy.api#httpHeader" +_xarp = "x-amz-request-payer" +_EBO = "ExpectedBucketOwner" +_xaebo = "x-amz-expected-bucket-owner" +_xaimit = "x-amz-if-match-initiated-time" +_RC = "RequestCharged" +_AMUO = "AbortMultipartUploadOutput" +_smi = "smithy.api#output" +_xarc = "x-amz-request-charged" +_NSU = "NoSuchUpload" +_smit = "smithy.api#error" +_c = "client" +_sE = "smithy.api#httpError" +_AMU = "AbortMultipartUpload" +_smith = "smithy.api#http" +_ARI = "AbortRuleId" +_BASu = "BucketAccelerateStatus" +_Su = "Suspended" +_AC = "AccelerateConfiguration" +_AR = "AcceptRanges" +_DN = "DisplayName" +_EA = "EmailAddress" +_ID = "ID" +_T = "Type" +_CU = "CanonicalUser" +_ACBE = "AmazonCustomerByEmail" +_G = "Group" +_URI = "URI" +_Gr = "Grantee" +_sN = "smithy.api#xmlName" +_x = "xsi:type" +_sA = "smithy.api#xmlAttribute" +_P = "Permission" +_FC = "FULL_CONTROL" +_WRITE = "WRITE" +_WA = "WRITE_ACP" +_READ = "READ" +_RA = "READ_ACP" +_Gra = "Grant" +_sNm = "smithy.api#xmlNamespace" +_Gran = "Grants" +_m = "member" +_O = "Owner" +_ACP = "AccessControlPolicy" +_ACL = "AccessControlList" +_OO = "OwnerOverride" +_De = "Destination" +_ACT = "AccessControlTranslation" +_ADc = "AccessDenied" +_AKIV = "AccessKeyIdValue" +_APA = "AccessPointAlias" +_APAc = "AccessPointArn" +_AH = "AllowedHeader" +_AHl = "AllowedHeaders" +_AM = "AllowedMethod" +_AMl = "AllowedMethods" +_AO = "AllowedOrigin" +_AOl = "AllowedOrigins" +_AQRD = "AllowQuotedRecordDelimiter" +_CCRC = "ChecksumCRC32" +_CCRCC = "ChecksumCRC32C" +_CCRCNVME = "ChecksumCRC64NVME" +_CMD = "ChecksumMD5" +_CSHA = "ChecksumSHA1" +_CSHAh = "ChecksumSHA256" +_CSHAhe = "ChecksumSHA512" +_CT = "ChecksumType" +_COMPOSITE = "COMPOSITE" +_FO = "FULL_OBJECT" +_CXXHASH = "ChecksumXXHASH128" +_CXXHASHh = "ChecksumXXHASH3" +_CXXHASHhe = "ChecksumXXHASH64" +_IM = "IfMatch" +_INM = "IfNoneMatch" +_MOS = "MpuObjectSize" +_ET = "ETag" +_PN = "PartNumber" +_CP = "CompletedPart" +_CPL = "CompletedPartList" +_CMU = "CompletedMultipartUpload" +_Pa = "Parts" +_Par = "Part" +_sFm = "smithy.api#xmlFlattened" +_SSECA = "SSECustomerAlgorithm" +_SSECK = "SSECustomerKey" +_smithy = "smithy.api#sensitive" +_SSECKMD = "SSECustomerKeyMD5" +_CMUI = "CompleteMultipartUploadInput" +_cCMUR = "com.amazonaws.s3#CompleteMultipartUploadRequest" +_MU = "MultipartUpload" +_CMUo = "CompleteMultipartUpload" +_sPm = "smithy.api#httpPayload" +_xacc = "x-amz-checksum-crc32" +_xacc_ = "x-amz-checksum-crc32c" +_xacc__ = "x-amz-checksum-crc64nvme" +_xacs = "x-amz-checksum-sha1" +_xacs_ = "x-amz-checksum-sha256" +_xacs__ = "x-amz-checksum-sha512" +_xacm = "x-amz-checksum-md5" +_xacx = "x-amz-checksum-xxhash64" +_xacx_ = "x-amz-checksum-xxhash3" +_xacx__ = "x-amz-checksum-xxhash128" +_xact = "x-amz-checksum-type" +_xamos = "x-amz-mp-object-size" +_IM_ = "If-Match" +_INM_ = "If-None-Match" +_xasseca = "x-amz-server-side-encryption-customer-algorithm" +_xasseck = "x-amz-server-side-encryption-customer-key" +_xasseckM = "x-amz-server-side-encryption-customer-key-MD5" +_BKE = "BucketKeyEnabled" +_Ex = "Expiration" +_L = "Location" +_SSE = "ServerSideEncryption" +_AES = "AES256" +_af = "aws_fsx" +_a = "aws:fsx" +_ab = "aws_backup" +_aw = "aws:backup" +_ak = "aws_kms" +_aws = "aws:kms" +_akd = "aws_kms_dsse" +_awsk = "aws:kms:dsse" +_SSEKMSKI = "SSEKMSKeyId" +_OVI = "ObjectVersionId" +_CMUO = "CompleteMultipartUploadOutput" +_CMUR = "CompleteMultipartUploadResult" +_xae = "x-amz-expiration" +_xasse = "x-amz-server-side-encryption" +_VI = "VersionId" +_xavi = "x-amz-version-id" +_xasseakki = "x-amz-server-side-encryption-aws-kms-key-id" +_xassebke = "x-amz-server-side-encryption-bucket-key-enabled" +_OCACL = "ObjectCannedACL" +_p = "private" +_pr = "public_read" +_pr_ = "public-read" +_prw = "public_read_write" +_prw_ = "public-read-write" +_ar = "authenticated_read" +_ar_ = "authenticated-read" +_aer = "aws_exec_read" +_aer_ = "aws-exec-read" +_bor = "bucket_owner_read" +_bor_ = "bucket-owner-read" +_bofc = "bucket_owner_full_control" +_bofc_ = "bucket-owner-full-control" +_ADn = "AnnotationDirective" +_COPY = "COPY" +_EXCLUDE = "EXCLUDE" +_CC = "CacheControl" +_CA = "ChecksumAlgorithm" +_CRC = "CRC32" +_CRCC = "CRC32C" +_SHA = "SHA1" +_SHA_ = "SHA256" +_CRCNVME = "CRC64NVME" +_SHA__ = "SHA512" +_MD = "MD5" +_XXHASH = "XXHASH64" +_XXHASH_ = "XXHASH3" +_XXHASH__ = "XXHASH128" +_CD = "ContentDisposition" +_CE = "ContentEncoding" +_CL = "ContentLanguage" +_CTo = "ContentType" +_CS = "CopySource" +_CSIM = "CopySourceIfMatch" +_CSIMS = "CopySourceIfModifiedSince" +_CSINM = "CopySourceIfNoneMatch" +_CSIUS = "CopySourceIfUnmodifiedSince" +_CSSSECA = "CopySourceSSECustomerAlgorithm" +_CSSSECK = "CopySourceSSECustomerKey" +_CSSSECKMD = "CopySourceSSECustomerKeyMD5" +_Exp = "Expires" +_GFC = "GrantFullControl" +_GR = "GrantRead" +_GRACP = "GrantReadACP" +_GWACP = "GrantWriteACP" +_MK = "MetadataKey" +_MV = "MetadataValue" +_M = "Metadata" +_k = "key" +_v = "value" +_MDe = "MetadataDirective" +_REPLACE = "REPLACE" +_OLEH = "ObjectLockEventHold" +_ON = "ON" +_OFF = "OFF" +_OLEHDD = "ObjectLockEventHoldDurationDays" +_OLEHDY = "ObjectLockEventHoldDurationYears" +_OLLHS = "ObjectLockLegalHoldStatus" +_OLM = "ObjectLockMode" +_GOVERNANCE = "GOVERNANCE" +_COMPLIANCE = "COMPLIANCE" +_OLRUD = "ObjectLockRetainUntilDate" +_dt = "date-time" +_SSEKMSEC = "SSEKMSEncryptionContext" +_SC = "StorageClass" +_STANDARD = "STANDARD" +_RR = "REDUCED_REDUNDANCY" +_SI = "STANDARD_IA" +_OI = "ONEZONE_IA" +_IT = "INTELLIGENT_TIERING" +_GLACIER = "GLACIER" +_DA = "DEEP_ARCHIVE" +_OUTPOSTS = "OUTPOSTS" +_GI = "GLACIER_IR" +_SNOW = "SNOW" +_EO = "EXPRESS_ONEZONE" +_FO_ = "FSX_OPENZFS" +_FO__ = "FSX_ONTAP" +_ABW = "AWS_BACKUP_WARM" +_ABLCW = "AWS_BACKUP_LOW_COST_WARM" +_TH = "TaggingHeader" +_TD = "TaggingDirective" +_WRL = "WebsiteRedirectLocation" +_COI = "CopyObjectInput" +_cCOR = "com.amazonaws.s3#CopyObjectRequest" +_ACL_ = "ACL" +_xaa = "x-amz-acl" +_CC_ = "Cache-Control" +_xaca = "x-amz-checksum-algorithm" +_CD_ = "Content-Disposition" +_CE_ = "Content-Encoding" +_CL_ = "Content-Language" +_CT_ = "Content-Type" +_xacs___ = "x-amz-copy-source" +_xacsim = "x-amz-copy-source-if-match" +_xacsims = "x-amz-copy-source-if-modified-since" +_xacsinm = "x-amz-copy-source-if-none-match" +_xacsius = "x-amz-copy-source-if-unmodified-since" +_xagfc = "x-amz-grant-full-control" +_xagr = "x-amz-grant-read" +_xagra = "x-amz-grant-read-acp" +_xagwa = "x-amz-grant-write-acp" +_sPH = "smithy.api#httpPrefixHeaders" +_xam = "x-amz-meta-" +_xamd = "x-amz-metadata-directive" +_xatd = "x-amz-tagging-directive" +_xaoad = "x-amz-object-annotation-directive" +_xasc = "x-amz-storage-class" +_xawrl = "x-amz-website-redirect-location" +_xassec = "x-amz-server-side-encryption-context" +_xacssseca = "x-amz-copy-source-server-side-encryption-customer-algorithm" +_xacssseck = "x-amz-copy-source-server-side-encryption-customer-key" +_xacssseckM = "x-amz-copy-source-server-side-encryption-customer-key-MD5" +_Ta = "Tagging" +_xat = "x-amz-tagging" +_xaolm = "x-amz-object-lock-mode" +_xaolrud = "x-amz-object-lock-retain-until-date" +_xaollh = "x-amz-object-lock-legal-hold" +_xaoleh = "x-amz-object-lock-event-hold" +_xaolehdd = "x-amz-object-lock-event-hold-duration-days" +_xaolehdy = "x-amz-object-lock-event-hold-duration-years" +_ESBO = "ExpectedSourceBucketOwner" +_xasebo = "x-amz-source-expected-bucket-owner" +_LM = "LastModified" +_COR = "CopyObjectResult" +_CSVI = "CopySourceVersionId" +_COO = "CopyObjectOutput" +_xacsvi = "x-amz-copy-source-version-id" +_ONIATE = "ObjectNotInActiveTierError" +_CO = "CopyObject" +_sCP = "smithy.rules#staticContextParams" +_BAE = "BucketAlreadyExists" +_BAOBY = "BucketAlreadyOwnedByYou" +_BCACL = "BucketCannedACL" +_BNu = "BucketNamespace" +_AR_ = "ACCOUNT_REGIONAL" +_ar__ = "account-regional" +_GLOBAL = "GLOBAL" +_g = "global" +_DR = "DataRedundancy" +_SAZ = "SingleAvailabilityZone" +_SLZ = "SingleLocalZone" +_BT = "BucketType" +_Di = "Directory" +_BI = "BucketInfo" +_LNAS = "LocationNameAsString" +_LT = "LocationType" +_AZ = "AvailabilityZone" +_LZ = "LocalZone" +_LI = "LocationInfo" +_N = "Name" +_BLC = "BucketLocationConstraint" +_as = "af_south_1" +_as_ = "af-south-1" +_ae = "ap_east_1" +_ae_ = "ap-east-1" +_ae__ = "ap_east_2" +_ae___ = "ap-east-2" +_an = "ap_northeast_1" +_an_ = "ap-northeast-1" +_an__ = "ap_northeast_2" +_an___ = "ap-northeast-2" +_an____ = "ap_northeast_3" +_an_____ = "ap-northeast-3" +_as__ = "ap_south_1" +_as___ = "ap-south-1" +_as____ = "ap_south_2" +_as_____ = "ap-south-2" +_as______ = "ap_southeast_1" +_as_______ = "ap-southeast-1" +_as________ = "ap_southeast_2" +_as_________ = "ap-southeast-2" +_as__________ = "ap_southeast_3" +_as___________ = "ap-southeast-3" +_as____________ = "ap_southeast_4" +_as_____________ = "ap-southeast-4" +_as______________ = "ap_southeast_5" +_as_______________ = "ap-southeast-5" +_as________________ = "ap_southeast_6" +_as_________________ = "ap-southeast-6" +_as__________________ = "ap_southeast_7" +_as___________________ = "ap-southeast-7" +_cc = "ca_central_1" +_cc_ = "ca-central-1" +_cw = "ca_west_1" +_cw_ = "ca-west-1" +_cn = "cn_north_1" +_cn_ = "cn-north-1" +_cn__ = "cn_northwest_1" +_cn___ = "cn-northwest-1" +_EU = "EU" +_ec = "eu_central_1" +_ec_ = "eu-central-1" +_ec__ = "eu_central_2" +_ec___ = "eu-central-2" +_en = "eu_north_1" +_en_ = "eu-north-1" +_es = "eu_south_1" +_es_ = "eu-south-1" +_es__ = "eu_south_2" +_es___ = "eu-south-2" +_ew = "eu_west_1" +_ew_ = "eu-west-1" +_ew__ = "eu_west_2" +_ew___ = "eu-west-2" +_ew____ = "eu_west_3" +_ew_____ = "eu-west-3" +_ic = "il_central_1" +_ic_ = "il-central-1" +_mc = "me_central_1" +_mc_ = "me-central-1" +_ms = "me_south_1" +_ms_ = "me-south-1" +_mc__ = "mx_central_1" +_mc___ = "mx-central-1" +_se = "sa_east_1" +_se_ = "sa-east-1" +_ue = "us_east_2" +_ue_ = "us-east-2" +_uge = "us_gov_east_1" +_uge_ = "us-gov-east-1" +_ugw = "us_gov_west_1" +_ugw_ = "us-gov-west-1" +_uw = "us_west_1" +_uw_ = "us-west-1" +_uw__ = "us_west_2" +_uw___ = "us-west-2" +_V = "Value" +_Tag = "Tag" +_TS = "TagSet" +_CBC = "CreateBucketConfiguration" +_LC = "LocationConstraint" +_Tags = "Tags" +_GW = "GrantWrite" +_OLEFB = "ObjectLockEnabledForBucket" +_OOb = "ObjectOwnership" +_BOP = "BucketOwnerPreferred" +_OW = "ObjectWriter" +_BOE = "BucketOwnerEnforced" +_CBI = "CreateBucketInput" +_cCBR = "com.amazonaws.s3#CreateBucketRequest" +_xagw = "x-amz-grant-write" +_xabole = "x-amz-bucket-object-lock-enabled" +_xaoo = "x-amz-object-ownership" +_xabn = "x-amz-bucket-namespace" +_SROSEBAS = "S3RegionalOrS3ExpressBucketArnString" +_CBO = "CreateBucketOutput" +_BA = "BucketArn" +_xaba = "x-amz-bucket-arn" +_CB = "CreateBucket" +_CMDo = "ContentMD5" +_ACS = "AnnotationConfigurationState" +_ENABLED = "ENABLED" +_DISABLED = "DISABLED" +_KKA = "KmsKeyArn" +_TSA = "TableSseAlgorithm" +_MTEC = "MetadataTableEncryptionConfiguration" +_SA = "SseAlgorithm" +_R = "Role" +_ATC = "AnnotationTableConfiguration" +_CSo = "ConfigurationState" +_EC = "EncryptionConfiguration" +_ICS = "InventoryConfigurationState" +_ITC = "InventoryTableConfiguration" +_RED = "RecordExpirationDays" +_ES = "ExpirationState" +_RE = "RecordExpiration" +_Da = "Days" +_JTC = "JournalTableConfiguration" +_MC = "MetadataConfiguration" +_CBMCI = "CreateBucketMetadataConfigurationInput" +_cCBMCR = "com.amazonaws.s3#CreateBucketMetadataConfigurationRequest" +_CM = "Content-MD5" +_xasca = "x-amz-sdk-checksum-algorithm" +_CBMCO = "CreateBucketMetadataConfigurationOutput" +_sU = "smithy.api#Unit" +_CBMC = "CreateBucketMetadataConfiguration" +_aC = "aws.protocols#httpChecksum" +_STBA = "S3TablesBucketArn" +_STN = "S3TablesName" +_STD = "S3TablesDestination" +_TBA = "TableBucketArn" +_TN = "TableName" +_MTC = "MetadataTableConfiguration" +_CBMTCI = "CreateBucketMetadataTableConfigurationInput" +_cCBMTCR = "com.amazonaws.s3#CreateBucketMetadataTableConfigurationRequest" +_CBMTCO = "CreateBucketMetadataTableConfigurationOutput" +_CBMTC = "CreateBucketMetadataTableConfiguration" +_CMUIr = "CreateMultipartUploadInput" +_cCMURo = "com.amazonaws.s3#CreateMultipartUploadRequest" +_CMUOr = "CreateMultipartUploadOutput" +_IMUR = "InitiateMultipartUploadResult" +_xaad = "x-amz-abort-date" +_xaari = "x-amz-abort-rule-id" +_CMUr = "CreateMultipartUpload" +_SM = "SessionMode" +_RO = "ReadOnly" +_RW = "ReadWrite" +_CSI = "CreateSessionInput" +_cCSR = "com.amazonaws.s3#CreateSessionRequest" +_xacsm = "x-amz-create-session-mode" +_SE = "SessionExpiration" +_SCV = "SessionCredentialValue" +_SCe = "SessionCredentials" +_AKI = "AccessKeyId" +_SAK = "SecretAccessKey" +_ST = "SessionToken" +_CSO = "CreateSessionOutput" +_CSR = "CreateSessionResult" +_C = "Credentials" +_NSB = "NoSuchBucket" +_CSr = "CreateSession" +_DBI = "DeleteBucketInput" +_cDBR = "com.amazonaws.s3#DeleteBucketRequest" +_DBO = "DeleteBucketOutput" +_DB = "DeleteBucket" +_AIn = "AnalyticsId" +_DBACI = "DeleteBucketAnalyticsConfigurationInput" +_cDBACR = "com.amazonaws.s3#DeleteBucketAnalyticsConfigurationRequest" +_I = "Id" +_i = "id" +_DBACO = "DeleteBucketAnalyticsConfigurationOutput" +_DBAC = "DeleteBucketAnalyticsConfiguration" +_DBCI = "DeleteBucketCorsInput" +_cDBCR = "com.amazonaws.s3#DeleteBucketCorsRequest" +_DBCO = "DeleteBucketCorsOutput" +_DBC = "DeleteBucketCors" +_DBEI = "DeleteBucketEncryptionInput" +_cDBER = "com.amazonaws.s3#DeleteBucketEncryptionRequest" +_DBEO = "DeleteBucketEncryptionOutput" +_DBE = "DeleteBucketEncryption" +_ITI = "IntelligentTieringId" +_DBITCI = "DeleteBucketIntelligentTieringConfigurationInput" +_cDBITCR = "com.amazonaws.s3#DeleteBucketIntelligentTieringConfigurationRequest" +_DBITCO = "DeleteBucketIntelligentTieringConfigurationOutput" +_DBITC = "DeleteBucketIntelligentTieringConfiguration" +_II = "InventoryId" +_DBICI = "DeleteBucketInventoryConfigurationInput" +_cDBICR = "com.amazonaws.s3#DeleteBucketInventoryConfigurationRequest" +_DBICO = "DeleteBucketInventoryConfigurationOutput" +_DBIC = "DeleteBucketInventoryConfiguration" +_DBLI = "DeleteBucketLifecycleInput" +_cDBLR = "com.amazonaws.s3#DeleteBucketLifecycleRequest" +_DBLO = "DeleteBucketLifecycleOutput" +_DBL = "DeleteBucketLifecycle" +_DBMCI = "DeleteBucketMetadataConfigurationInput" +_cDBMCR = "com.amazonaws.s3#DeleteBucketMetadataConfigurationRequest" +_DBMCO = "DeleteBucketMetadataConfigurationOutput" +_DBMC = "DeleteBucketMetadataConfiguration" +_DBMTCI = "DeleteBucketMetadataTableConfigurationInput" +_cDBMTCR = "com.amazonaws.s3#DeleteBucketMetadataTableConfigurationRequest" +_DBMTCO = "DeleteBucketMetadataTableConfigurationOutput" +_DBMTC = "DeleteBucketMetadataTableConfiguration" +_MI = "MetricsId" +_DBMCIe = "DeleteBucketMetricsConfigurationInput" +_cDBMCRo = "com.amazonaws.s3#DeleteBucketMetricsConfigurationRequest" +_DBMCOe = "DeleteBucketMetricsConfigurationOutput" +_DBMCe = "DeleteBucketMetricsConfiguration" +_DBOCI = "DeleteBucketOwnershipControlsInput" +_cDBOCR = "com.amazonaws.s3#DeleteBucketOwnershipControlsRequest" +_DBOCO = "DeleteBucketOwnershipControlsOutput" +_DBOC = "DeleteBucketOwnershipControls" +_DBPI = "DeleteBucketPolicyInput" +_cDBPR = "com.amazonaws.s3#DeleteBucketPolicyRequest" +_DBPO = "DeleteBucketPolicyOutput" +_DBP = "DeleteBucketPolicy" +_DBRI = "DeleteBucketReplicationInput" +_cDBRR = "com.amazonaws.s3#DeleteBucketReplicationRequest" +_DBRO = "DeleteBucketReplicationOutput" +_DBR = "DeleteBucketReplication" +_DBTI = "DeleteBucketTaggingInput" +_cDBTR = "com.amazonaws.s3#DeleteBucketTaggingRequest" +_DBTO = "DeleteBucketTaggingOutput" +_DBT = "DeleteBucketTagging" +_DBWI = "DeleteBucketWebsiteInput" +_cDBWR = "com.amazonaws.s3#DeleteBucketWebsiteRequest" +_DBWO = "DeleteBucketWebsiteOutput" +_DBW = "DeleteBucketWebsite" +_BGR = "BypassGovernanceRetention" +_IMLMT = "IfMatchLastModifiedTime" +_IMS = "IfMatchSize" +_MFA = "MFA" +_DOI = "DeleteObjectInput" +_cDOR = "com.amazonaws.s3#DeleteObjectRequest" +_xam_ = "x-amz-mfa" +_vI = "versionId" +_xabgr = "x-amz-bypass-governance-retention" +_xaimlmt = "x-amz-if-match-last-modified-time" +_xaims = "x-amz-if-match-size" +_DM = "DeleteMarker" +_DOO = "DeleteObjectOutput" +_xadm = "x-amz-delete-marker" +_DO = "DeleteObject" +_AN = "AnnotationName" +_OIM = "ObjectIfMatch" +_DOAI = "DeleteObjectAnnotationInput" +_cDOAR = "com.amazonaws.s3#DeleteObjectAnnotationRequest" +_aN = "annotationName" +_xaoim = "x-amz-object-if-match" +_DOAO = "DeleteObjectAnnotationOutput" +_xaovi = "x-amz-object-version-id" +_NSK = "NoSuchKey" +_DOA = "DeleteObjectAnnotation" +_LMT = "LastModifiedTime" +_Si = "Size" +_OIb = "ObjectIdentifier" +_OIL = "ObjectIdentifierList" +_Q = "Quiet" +_Del = "Delete" +_Ob = "Objects" +_Obj = "Object" +_DOIe = "DeleteObjectsInput" +_cDORo = "com.amazonaws.s3#DeleteObjectsRequest" +_DMVI = "DeleteMarkerVersionId" +_DOe = "DeletedObject" +_DOel = "DeletedObjects" +_Co = "Code" +_Me = "Message" +_Er = "Error" +_Err = "Errors" +_DOOe = "DeleteObjectsOutput" +_DRe = "DeleteResult" +_Dele = "Deleted" +_DOele = "DeleteObjects" +_DOTI = "DeleteObjectTaggingInput" +_cDOTR = "com.amazonaws.s3#DeleteObjectTaggingRequest" +_DOTO = "DeleteObjectTaggingOutput" +_DOT = "DeleteObjectTagging" +_DPABI = "DeletePublicAccessBlockInput" +_cDPABR = "com.amazonaws.s3#DeletePublicAccessBlockRequest" +_DPABO = "DeletePublicAccessBlockOutput" +_DPAB = "DeletePublicAccessBlock" +_GBAI = "GetBucketAbacInput" +_cGBAR = "com.amazonaws.s3#GetBucketAbacRequest" +_GBAO = "GetBucketAbacOutput" +_GBA = "GetBucketAbac" +_GBACI = "GetBucketAccelerateConfigurationInput" +_cGBACR = "com.amazonaws.s3#GetBucketAccelerateConfigurationRequest" +_GBACO = "GetBucketAccelerateConfigurationOutput" +_GBAC = "GetBucketAccelerateConfiguration" +_GBAIe = "GetBucketAclInput" +_cGBARo = "com.amazonaws.s3#GetBucketAclRequest" +_GBAOe = "GetBucketAclOutput" +_GBAe = "GetBucketAcl" +_GBACIe = "GetBucketAnalyticsConfigurationInput" +_cGBACRo = "com.amazonaws.s3#GetBucketAnalyticsConfigurationRequest" +_Pr = "Prefix" +_AAO = "AnalyticsAndOperator" +_AF = "AnalyticsFilter" +_A = "And" +_ASEFF = "AnalyticsS3ExportFileFormat" +_CSV = "CSV" +_ASBD = "AnalyticsS3BucketDestination" +_F = "Format" +_BAI = "BucketAccountId" +_AED = "AnalyticsExportDestination" +_SBD = "S3BucketDestination" +_SCASV = "StorageClassAnalysisSchemaVersion" +_V_ = "V_1" +_SCADE = "StorageClassAnalysisDataExport" +_OSV = "OutputSchemaVersion" +_SCA = "StorageClassAnalysis" +_DE = "DataExport" +_ACn = "AnalyticsConfiguration" +_Fi = "Filter" +_GBACOe = "GetBucketAnalyticsConfigurationOutput" +_GBACe = "GetBucketAnalyticsConfiguration" +_GBCI = "GetBucketCorsInput" +_cGBCR = "com.amazonaws.s3#GetBucketCorsRequest" +_EH = "ExposeHeader" +_EHx = "ExposeHeaders" +_MAS = "MaxAgeSeconds" +_CORSR = "CORSRule" +_CORSRu = "CORSRules" +_GBCO = "GetBucketCorsOutput" +_CORSC = "CORSConfiguration" +_GBC = "GetBucketCors" +_GBEI = "GetBucketEncryptionInput" +_cGBER = "com.amazonaws.s3#GetBucketEncryptionRequest" +_SSEBD = "ServerSideEncryptionByDefault" +_SSEA = "SSEAlgorithm" +_KMSMKID = "KMSMasterKeyID" +_ETn = "EncryptionType" +_NONE = "NONE" +_SC_ = "SSE_C" +_SC__ = "SSE-C" +_ETL = "EncryptionTypeList" +_BET = "BlockedEncryptionTypes" +_SSER = "ServerSideEncryptionRule" +_ASSEBD = "ApplyServerSideEncryptionByDefault" +_SSERe = "ServerSideEncryptionRules" +_SSEC = "ServerSideEncryptionConfiguration" +_Ru = "Rules" +_Rul = "Rule" +_GBEO = "GetBucketEncryptionOutput" +_GBE = "GetBucketEncryption" +_GBITCI = "GetBucketIntelligentTieringConfigurationInput" +_cGBITCR = "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationRequest" +_ITAO = "IntelligentTieringAndOperator" +_ITF = "IntelligentTieringFilter" +_ITS = "IntelligentTieringStatus" +_ITAT = "IntelligentTieringAccessTier" +_AA = "ARCHIVE_ACCESS" +_DAA = "DEEP_ARCHIVE_ACCESS" +_ITD = "IntelligentTieringDays" +_Ti = "Tiering" +_AT = "AccessTier" +_TL = "TieringList" +_ITCn = "IntelligentTieringConfiguration" +_Tie = "Tierings" +_GBITCO = "GetBucketIntelligentTieringConfigurationOutput" +_GBITC = "GetBucketIntelligentTieringConfiguration" +_GBICI = "GetBucketInventoryConfigurationInput" +_cGBICR = "com.amazonaws.s3#GetBucketInventoryConfigurationRequest" +_SSEKMS = "SSEKMS" +_SK = "SSE-KMS" +_KI = "KeyId" +_SSES = "SSES3" +_SS = "SSE-S3" +_IE = "InventoryEncryption" +_IF = "InventoryFormat" +_ORC = "ORC" +_Parq = "Parquet" +_ISBD = "InventoryS3BucketDestination" +_En = "Encryption" +_IDn = "InventoryDestination" +_IFn = "InventoryFilter" +_IIOV = "InventoryIncludedObjectVersions" +_Al = "All" +_Cu = "Current" +_IEs = "IsEnabled" +_IOF = "InventoryOptionalField" +_LMD = "LastModifiedDate" +_IMU = "IsMultipartUploaded" +_RS = "ReplicationStatus" +_ESn = "EncryptionStatus" +_OLEHS = "ObjectLockEventHoldStatus" +_OLEHD = "ObjectLockEventHoldDuration" +_BKS = "BucketKeyStatus" +_OACL = "ObjectAccessControlList" +_OObj = "ObjectOwner" +_LED = "LifecycleExpirationDate" +_ITRD = "IntelligentTieringReferenceDate" +_IOFn = "InventoryOptionalFields" +_Fie = "Field" +_IFnv = "InventoryFrequency" +_Dai = "Daily" +_W = "Weekly" +_IS = "InventorySchedule" +_Fr = "Frequency" +_IC = "InventoryConfiguration" +_IOV = "IncludedObjectVersions" +_OF = "OptionalFields" +_Sc = "Schedule" +_GBICO = "GetBucketInventoryConfigurationOutput" +_GBIC = "GetBucketInventoryConfiguration" +_GBLCI = "GetBucketLifecycleConfigurationInput" +_cGBLCR = "com.amazonaws.s3#GetBucketLifecycleConfigurationRequest" +_Dat = "Date" +_EODM = "ExpiredObjectDeleteMarker" +_LE = "LifecycleExpiration" +_OSGTB = "ObjectSizeGreaterThanBytes" +_OSLTB = "ObjectSizeLessThanBytes" +_LRAO = "LifecycleRuleAndOperator" +_OSGT = "ObjectSizeGreaterThan" +_OSLT = "ObjectSizeLessThan" +_LRF = "LifecycleRuleFilter" +_VC = "VersionCount" +_NVE = "NoncurrentVersionExpiration" +_ND = "NoncurrentDays" +_NNV = "NewerNoncurrentVersions" +_TSC = "TransitionStorageClass" +_NVT = "NoncurrentVersionTransition" +_NVTL = "NoncurrentVersionTransitionList" +_ESx = "ExpirationStatus" +_Tr = "Transition" +_TLr = "TransitionList" +_LR = "LifecycleRule" +_Tra = "Transitions" +_NVTo = "NoncurrentVersionTransitions" +_LRi = "LifecycleRules" +_TDMOS = "TransitionDefaultMinimumObjectSize" +_vbsc = "varies_by_storage_class" +_asc = "all_storage_classes_128K" +_GBLCO = "GetBucketLifecycleConfigurationOutput" +_LCi = "LifecycleConfiguration" +_xatdmos = "x-amz-transition-default-minimum-object-size" +_GBLC = "GetBucketLifecycleConfiguration" +_GBLI = "GetBucketLocationInput" +_cGBLR = "com.amazonaws.s3#GetBucketLocationRequest" +_GBLO = "GetBucketLocationOutput" +_GBL = "GetBucketLocation" +_GBLIe = "GetBucketLoggingInput" +_cGBLRo = "com.amazonaws.s3#GetBucketLoggingRequest" +_TB = "TargetBucket" +_BLP = "BucketLogsPermission" +_TG = "TargetGrant" +_TGa = "TargetGrants" +_PDS = "PartitionDateSource" +_ETv = "EventTime" +_DT = "DeliveryTime" +_PP = "PartitionedPrefix" +_SP = "SimplePrefix" +_TOKF = "TargetObjectKeyFormat" +_TP = "TargetPrefix" +_LEo = "LoggingEnabled" +_GBLOe = "GetBucketLoggingOutput" +_BLS = "BucketLoggingStatus" +_GBLe = "GetBucketLogging" +_GBMCI = "GetBucketMetadataConfigurationInput" +_cGBMCR = "com.amazonaws.s3#GetBucketMetadataConfigurationRequest" +_ECr = "ErrorCode" +_EM = "ErrorMessage" +_ED = "ErrorDetails" +_STA = "S3TablesArn" +_MTS = "MetadataTableStatus" +_ATCR = "AnnotationTableConfigurationResult" +_TSa = "TableStatus" +_TA = "TableArn" +_STBT = "S3TablesBucketType" +_aws_ = "aws" +_cu = "customer" +_STNa = "S3TablesNamespace" +_DRes = "DestinationResult" +_TBT = "TableBucketType" +_TNa = "TableNamespace" +_ITCR = "InventoryTableConfigurationResult" +_JTCR = "JournalTableConfigurationResult" +_MCR = "MetadataConfigurationResult" +_GBMCR = "GetBucketMetadataConfigurationResult" +_GBMCO = "GetBucketMetadataConfigurationOutput" +_GBMC = "GetBucketMetadataConfiguration" +_GBMTCI = "GetBucketMetadataTableConfigurationInput" +_cGBMTCR = "com.amazonaws.s3#GetBucketMetadataTableConfigurationRequest" +_STDR = "S3TablesDestinationResult" +_MTCR = "MetadataTableConfigurationResult" +_GBMTCR = "GetBucketMetadataTableConfigurationResult" +_GBMTCO = "GetBucketMetadataTableConfigurationOutput" +_GBMTC = "GetBucketMetadataTableConfiguration" +_GBMCIe = "GetBucketMetricsConfigurationInput" +_cGBMCRo = "com.amazonaws.s3#GetBucketMetricsConfigurationRequest" +_MAO = "MetricsAndOperator" +_MF = "MetricsFilter" +_MCe = "MetricsConfiguration" +_GBMCOe = "GetBucketMetricsConfigurationOutput" +_GBMCe = "GetBucketMetricsConfiguration" +_GBNCI = "GetBucketNotificationConfigurationInput" +_cGBNCR = "com.amazonaws.s3#GetBucketNotificationConfigurationRequest" +_EBC = "EventBridgeConfiguration" +_Ev = "Event" +_sR = "s3_ReducedRedundancyLostObject" +_sRRLO = "s3:ReducedRedundancyLostObject" +_sO = "s3_ObjectCreated_" +_sOC = "s3:ObjectCreated:*" +_sOP = "s3_ObjectCreated_Put" +_sOCP = "s3:ObjectCreated:Put" +_sOP_ = "s3_ObjectCreated_Post" +_sOCPb = "s3:ObjectCreated:Post" +_sOC_ = "s3_ObjectCreated_Copy" +_sOCC = "s3:ObjectCreated:Copy" +_sOC__ = "s3_ObjectCreated_CompleteMultipartUpload" +_sOCCMU = "s3:ObjectCreated:CompleteMultipartUpload" +_sO_ = "s3_ObjectRemoved_" +_sOR = "s3:ObjectRemoved:*" +_sOD = "s3_ObjectRemoved_Delete" +_sORD = "s3:ObjectRemoved:Delete" +_sOD_ = "s3_ObjectRemoved_DeleteMarkerCreated" +_sORDMC = "s3:ObjectRemoved:DeleteMarkerCreated" +_sO__ = "s3_ObjectRestore_" +_sORb = "s3:ObjectRestore:*" +_sOP__ = "s3_ObjectRestore_Post" +_sORP = "s3:ObjectRestore:Post" +_sOC___ = "s3_ObjectRestore_Completed" +_sORC = "s3:ObjectRestore:Completed" +_sR_ = "s3_Replication_" +_sRe = "s3:Replication:*" +_sRO = "s3_Replication_OperationFailedReplication" +_sROFR = "s3:Replication:OperationFailedReplication" +_sRO_ = "s3_Replication_OperationNotTracked" +_sRONT = "s3:Replication:OperationNotTracked" +_sRO__ = "s3_Replication_OperationMissedThreshold" +_sROMT = "s3:Replication:OperationMissedThreshold" +_sRO___ = "s3_Replication_OperationReplicatedAfterThreshold" +_sRORAT = "s3:Replication:OperationReplicatedAfterThreshold" +_sOD__ = "s3_ObjectRestore_Delete" +_sORDb = "s3:ObjectRestore:Delete" +_sL_ = "s3_LifecycleTransition" +_sLT = "s3:LifecycleTransition" +_sI = "s3_IntelligentTiering" +_sIT = "s3:IntelligentTiering" +_sOP___ = "s3_ObjectAcl_Put" +_sOAP = "s3:ObjectAcl:Put" +_sL__ = "s3_LifecycleExpiration_" +_sLE = "s3:LifecycleExpiration:*" +_sLD = "s3_LifecycleExpiration_Delete" +_sLED = "s3:LifecycleExpiration:Delete" +_sLD_ = "s3_LifecycleExpiration_DeleteMarkerCreated" +_sLEDMC = "s3:LifecycleExpiration:DeleteMarkerCreated" +_sO___ = "s3_ObjectTagging_" +_sOT = "s3:ObjectTagging:*" +_sOP____ = "s3_ObjectTagging_Put" +_sOTP = "s3:ObjectTagging:Put" +_sOD___ = "s3_ObjectTagging_Delete" +_sOTD = "s3:ObjectTagging:Delete" +_sO____ = "s3_ObjectAnnotation_" +_sOA = "s3:ObjectAnnotation:*" +_sOP_____ = "s3_ObjectAnnotation_Put" +_sOAPb = "s3:ObjectAnnotation:Put" +_sOD____ = "s3_ObjectAnnotation_Delete" +_sOAD = "s3:ObjectAnnotation:Delete" +_sOP______ = "s3_ObjectRetention_Put" +_sORPb = "s3:ObjectRetention:Put" +_EL = "EventList" +_FRN = "FilterRuleName" +_pre = "prefix" +_su = "suffix" +_FRV = "FilterRuleValue" +_FR = "FilterRule" +_FRL = "FilterRuleList" +_SKF = "S3KeyFilter" +_FRi = "FilterRules" +_NCF = "NotificationConfigurationFilter" +_SKe = "S3Key" +_NI = "NotificationId" +_LFA = "LambdaFunctionArn" +_LFC = "LambdaFunctionConfiguration" +_CF = "CloudFunction" +_Eve = "Events" +_LFCL = "LambdaFunctionConfigurationList" +_QA = "QueueArn" +_QC = "QueueConfiguration" +_Qu = "Queue" +_QCL = "QueueConfigurationList" +_TAo = "TopicArn" +_TC = "TopicConfiguration" +_To = "Topic" +_TCL = "TopicConfigurationList" +_GBNCO = "GetBucketNotificationConfigurationOutput" +_cNC = "com.amazonaws.s3#NotificationConfiguration" +_TCo = "TopicConfigurations" +_QCu = "QueueConfigurations" +_LFCa = "LambdaFunctionConfigurations" +_CFC = "CloudFunctionConfiguration" +_GBNC = "GetBucketNotificationConfiguration" +_GBOCI = "GetBucketOwnershipControlsInput" +_cGBOCR = "com.amazonaws.s3#GetBucketOwnershipControlsRequest" +_OCR = "OwnershipControlsRule" +_OCRw = "OwnershipControlsRules" +_OC = "OwnershipControls" +_GBOCO = "GetBucketOwnershipControlsOutput" +_GBOC = "GetBucketOwnershipControls" +_GBPI = "GetBucketPolicyInput" +_cGBPR = "com.amazonaws.s3#GetBucketPolicyRequest" +_Po = "Policy" +_GBPO = "GetBucketPolicyOutput" +_GBP = "GetBucketPolicy" +_GBPSI = "GetBucketPolicyStatusInput" +_cGBPSR = "com.amazonaws.s3#GetBucketPolicyStatusRequest" +_IP = "IsPublic" +_PS = "PolicyStatus" +_GBPSO = "GetBucketPolicyStatusOutput" +_GBPS = "GetBucketPolicyStatus" +_GBRI = "GetBucketReplicationInput" +_cGBRR = "com.amazonaws.s3#GetBucketReplicationRequest" +_DMRS = "DeleteMarkerReplicationStatus" +_DMR = "DeleteMarkerReplication" +_RKKID = "ReplicaKmsKeyID" +_Mi = "Minutes" +_RTV = "ReplicationTimeValue" +_MS = "MetricsStatus" +_Met = "Metrics" +_ETve = "EventThreshold" +_RTS = "ReplicationTimeStatus" +_RT = "ReplicationTime" +_Tim = "Time" +_Ac = "Account" +_EORS = "ExistingObjectReplicationStatus" +_EOR = "ExistingObjectReplication" +_RRAO = "ReplicationRuleAndOperator" +_RRF = "ReplicationRuleFilter" +_Pri = "Priority" +_RMS = "ReplicaModificationsStatus" +_RM = "ReplicaModifications" +_SKEOS = "SseKmsEncryptedObjectsStatus" +_SKEO = "SseKmsEncryptedObjects" +_SSC = "SourceSelectionCriteria" +_RRS = "ReplicationRuleStatus" +_RRe = "ReplicationRule" +_RRep = "ReplicationRules" +_RCe = "ReplicationConfiguration" +_GBRO = "GetBucketReplicationOutput" +_GBR = "GetBucketReplication" +_GBRPI = "GetBucketRequestPaymentInput" +_cGBRPR = "com.amazonaws.s3#GetBucketRequestPaymentRequest" +_Pay = "Payer" +_Re = "Requester" +_BO = "BucketOwner" +_GBRPO = "GetBucketRequestPaymentOutput" +_RPC = "RequestPaymentConfiguration" +_GBRP = "GetBucketRequestPayment" +_GBTI = "GetBucketTaggingInput" +_cGBTR = "com.amazonaws.s3#GetBucketTaggingRequest" +_GBTO = "GetBucketTaggingOutput" +_GBT = "GetBucketTagging" +_GBVI = "GetBucketVersioningInput" +_cGBVR = "com.amazonaws.s3#GetBucketVersioningRequest" +_MFADS = "MFADeleteStatus" +_BVS = "BucketVersioningStatus" +_GBVO = "GetBucketVersioningOutput" +_VCe = "VersioningConfiguration" +_MFAD = "MFADelete" +_MDf = "MfaDelete" +_GBV = "GetBucketVersioning" +_GBWI = "GetBucketWebsiteInput" +_cGBWR = "com.amazonaws.s3#GetBucketWebsiteRequest" +_EDr = "ErrorDocument" +_Suf = "Suffix" +_IDnd = "IndexDocument" +_HN = "HostName" +_Pro = "Protocol" +_h = "http" +_ht = "https" +_RART = "RedirectAllRequestsTo" +_HECRE = "HttpErrorCodeReturnedEquals" +_KPE = "KeyPrefixEquals" +_Con = "Condition" +_HRC = "HttpRedirectCode" +_RKPW = "ReplaceKeyPrefixWith" +_RKW = "ReplaceKeyWith" +_Red = "Redirect" +_RRo = "RoutingRule" +_RRou = "RoutingRules" +_GBWO = "GetBucketWebsiteOutput" +_WC = "WebsiteConfiguration" +_GBW = "GetBucketWebsite" +_CMh = "ChecksumMode" +_IMSf = "IfModifiedSince" +_IUS = "IfUnmodifiedSince" +_Ra = "Range" +_RCC = "ResponseCacheControl" +_RCD = "ResponseContentDisposition" +_RCE = "ResponseContentEncoding" +_RCL = "ResponseContentLanguage" +_RCT = "ResponseContentType" +_REe = "ResponseExpires" +_GOI = "GetObjectInput" +_cGOR = "com.amazonaws.s3#GetObjectRequest" +_IMS_ = "If-Modified-Since" +_IUS_ = "If-Unmodified-Since" +_rcc = "response-cache-control" +_rcd = "response-content-disposition" +_rce = "response-content-encoding" +_rcl = "response-content-language" +_rct = "response-content-type" +_re = "response-expires" +_pN = "partNumber" +_xacm_ = "x-amz-checksum-mode" +_SB = "StreamingBlob" +_smithya = "smithy.api#streaming" +_CLo = "ContentLength" +_CR = "ContentRange" +_MM = "MissingMeta" +_PC = "PartsCount" +_COMPLETE = "COMPLETE" +_PENDING = "PENDING" +_FAILED = "FAILED" +_REPLICA = "REPLICA" +_COMPLETED = "COMPLETED" +_Res = "Restore" +_TCa = "TagCount" +_GOO = "GetObjectOutput" +_Bo = "Body" +_smithyap = "smithy.api#default" +_v_ = "" +_ar___ = "accept-ranges" +_xar = "x-amz-restore" +_LM_ = "Last-Modified" +_CL__ = "Content-Length" +_xamm = "x-amz-missing-meta" +_CR_ = "Content-Range" +_xars = "x-amz-replication-status" +_xampc = "x-amz-mp-parts-count" +_xatc = "x-amz-tagging-count" +_IOS = "InvalidObjectState" +_GO = "GetObject" +_GOAI = "GetObjectAclInput" +_cGOAR = "com.amazonaws.s3#GetObjectAclRequest" +_GOAO = "GetObjectAclOutput" +_GOA = "GetObjectAcl" +_GOAIe = "GetObjectAnnotationInput" +_cGOARo = "com.amazonaws.s3#GetObjectAnnotationRequest" +_GOAOe = "GetObjectAnnotationOutput" +_AP = "AnnotationPayload" +_NSA = "NoSuchAnnotation" +_GOAe = "GetObjectAnnotation" +_MP = "MaxParts" +_OA = "ObjectAttributes" +_ETAG = "ETAG" +_CHECKSUM = "CHECKSUM" +_Ch = "Checksum" +_OP = "OBJECT_PARTS" +_OPb = "ObjectParts" +_SC___ = "STORAGE_CLASS" +_OS = "OBJECT_SIZE" +_OSb = "ObjectSize" +_OAL = "ObjectAttributesList" +_PNM = "PartNumberMarker" +_GOAIet = "GetObjectAttributesInput" +_cGOARom = "com.amazonaws.s3#GetObjectAttributesRequest" +_xamp = "x-amz-max-parts" +_xapnm = "x-amz-part-number-marker" +_xaoa = "x-amz-object-attributes" +_ITs = "IsTruncated" +_NPNM = "NextPartNumberMarker" +_OPbj = "ObjectPart" +_PL = "PartsList" +_GOAP = "GetObjectAttributesParts" +_TPC = "TotalPartsCount" +_GOAOet = "GetObjectAttributesOutput" +_GOAR = "GetObjectAttributesResponse" +_GOAet = "GetObjectAttributes" +_GOLHI = "GetObjectLegalHoldInput" +_cGOLHR = "com.amazonaws.s3#GetObjectLegalHoldRequest" +_OLLH = "ObjectLockLegalHold" +_GOLHO = "GetObjectLegalHoldOutput" +_LH = "LegalHold" +_GOLH = "GetObjectLegalHold" +_GOLCI = "GetObjectLockConfigurationInput" +_cGOLCR = "com.amazonaws.s3#GetObjectLockConfigurationRequest" +_OLE = "ObjectLockEnabled" +_Y = "Years" +_EHD = "EventHoldDuration" +_OLRM = "ObjectLockRetentionMode" +_DRef = "DefaultRetention" +_Mo = "Mode" +_DEH = "DefaultEventHold" +_OLR = "ObjectLockRule" +_OLC = "ObjectLockConfiguration" +_GOLCO = "GetObjectLockConfigurationOutput" +_GOLC = "GetObjectLockConfiguration" +_GORI = "GetObjectRetentionInput" +_cGORR = "com.amazonaws.s3#GetObjectRetentionRequest" +_OLRb = "ObjectLockRetention" +_RUD = "RetainUntilDate" +_EHv = "EventHold" +_GORO = "GetObjectRetentionOutput" +_Ret = "Retention" +_GOR = "GetObjectRetention" +_GOTI = "GetObjectTaggingInput" +_cGOTR = "com.amazonaws.s3#GetObjectTaggingRequest" +_GOTO = "GetObjectTaggingOutput" +_GOT = "GetObjectTagging" +_GOTIe = "GetObjectTorrentInput" +_cGOTRo = "com.amazonaws.s3#GetObjectTorrentRequest" +_GOTOe = "GetObjectTorrentOutput" +_GOTe = "GetObjectTorrent" +_GPABI = "GetPublicAccessBlockInput" +_cGPABR = "com.amazonaws.s3#GetPublicAccessBlockRequest" +_Se = "Setting" +_PABC = "PublicAccessBlockConfiguration" +_BPA = "BlockPublicAcls" +_IPA = "IgnorePublicAcls" +_BPP = "BlockPublicPolicy" +_RPB = "RestrictPublicBuckets" +_GPABO = "GetPublicAccessBlockOutput" +_GPAB = "GetPublicAccessBlock" +_HBI = "HeadBucketInput" +_cHBR = "com.amazonaws.s3#HeadBucketRequest" +_BLN = "BucketLocationName" +_Reg = "Region" +_HBO = "HeadBucketOutput" +_BLT = "BucketLocationType" +_xablt = "x-amz-bucket-location-type" +_xabln = "x-amz-bucket-location-name" +_BR = "BucketRegion" +_xabr = "x-amz-bucket-region" +_xaapa = "x-amz-access-point-alias" +_NF = "NotFound" +_HB = "HeadBucket" +_HOI = "HeadObjectInput" +_cHOR = "com.amazonaws.s3#HeadObjectRequest" +_ASr = "ArchiveStatus" +_HOO = "HeadObjectOutput" +_xaas = "x-amz-archive-status" +_HO = "HeadObject" +_Tok = "Token" +_LBACI = "ListBucketAnalyticsConfigurationsInput" +_cLBACR = "com.amazonaws.s3#ListBucketAnalyticsConfigurationsRequest" +_CTon = "ContinuationToken" +_ct = "continuation-token" +_ACLn = "AnalyticsConfigurationList" +_NT = "NextToken" +_LBACO = "ListBucketAnalyticsConfigurationsOutput" +_LBACR = "ListBucketAnalyticsConfigurationResult" +_NCT = "NextContinuationToken" +_LBAC = "ListBucketAnalyticsConfigurations" +_LBITCI = "ListBucketIntelligentTieringConfigurationsInput" +_cLBITCR = "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsRequest" +_ITCL = "IntelligentTieringConfigurationList" +_LBITCO = "ListBucketIntelligentTieringConfigurationsOutput" +_LBITC = "ListBucketIntelligentTieringConfigurations" +_LBICI = "ListBucketInventoryConfigurationsInput" +_cLBICR = "com.amazonaws.s3#ListBucketInventoryConfigurationsRequest" +_ICL = "InventoryConfigurationList" +_LBICO = "ListBucketInventoryConfigurationsOutput" +_LICR = "ListInventoryConfigurationsResult" +_LBIC = "ListBucketInventoryConfigurations" +_LBMCI = "ListBucketMetricsConfigurationsInput" +_cLBMCR = "com.amazonaws.s3#ListBucketMetricsConfigurationsRequest" +_MCL = "MetricsConfigurationList" +_LBMCO = "ListBucketMetricsConfigurationsOutput" +_LMCR = "ListMetricsConfigurationsResult" +_LBMC = "ListBucketMetricsConfigurations" +_MB = "MaxBuckets" +_LBI = "ListBucketsInput" +_cLBR = "com.amazonaws.s3#ListBucketsRequest" +_mb = "max-buckets" +_br = "bucket-region" +_CDr = "CreationDate" +_Bu = "Buckets" +_LBO = "ListBucketsOutput" +_LAMBR = "ListAllMyBucketsResult" +_LB = "ListBuckets" +_DBTi = "DirectoryBucketToken" +_MDB = "MaxDirectoryBuckets" +_LDBI = "ListDirectoryBucketsInput" +_cLDBR = "com.amazonaws.s3#ListDirectoryBucketsRequest" +_mdb = "max-directory-buckets" +_LDBO = "ListDirectoryBucketsOutput" +_LAMDBR = "ListAllMyDirectoryBucketsResult" +_LDB = "ListDirectoryBuckets" +_Deli = "Delimiter" +_ETnc = "EncodingType" +_u = "url" +_KM = "KeyMarker" +_MUa = "MaxUploads" +_UIM = "UploadIdMarker" +_LMUI = "ListMultipartUploadsInput" +_cLMUR = "com.amazonaws.s3#ListMultipartUploadsRequest" +_d = "delimiter" +_et = "encoding-type" +_km = "key-marker" +_mu = "max-uploads" +_uim = "upload-id-marker" +_CPo = "CommonPrefix" +_CPLo = "CommonPrefixList" +_NKM = "NextKeyMarker" +_NUIM = "NextUploadIdMarker" +_In = "Initiated" +_Ini = "Initiator" +_MUL = "MultipartUploadList" +_LMUO = "ListMultipartUploadsOutput" +_LMUR = "ListMultipartUploadsResult" +_U = "Uploads" +_Up = "Upload" +_CPom = "CommonPrefixes" +_LMU = "ListMultipartUploads" +_IPn = "InvalidPrefix" +_APn = "AnnotationPrefix" +_MAR = "MaxAnnotationResults" +_LOAI = "ListObjectAnnotationsInput" +_cLOAR = "com.amazonaws.s3#ListObjectAnnotationsRequest" +_mar = "max-annotation-results" +_ap = "annotation-prefix" +_ACnn = "AnnotationCount" +_CAL = "ChecksumAlgorithmList" +_AE = "AnnotationEntry" +_AL = "AnnotationList" +_LOAO = "ListObjectAnnotationsOutput" +_An = "Annotations" +_LOA = "ListObjectAnnotations" +_Ma = "Marker" +_MKa = "MaxKeys" +_OOA = "OptionalObjectAttributes" +_RS_ = "RESTORE_STATUS" +_RSe = "RestoreStatus" +_OOAL = "OptionalObjectAttributesList" +_LOI = "ListObjectsInput" +_cLOR = "com.amazonaws.s3#ListObjectsRequest" +_ma = "marker" +_mk = "max-keys" +_xaooa = "x-amz-optional-object-attributes" +_IRIP = "IsRestoreInProgress" +_REDe = "RestoreExpiryDate" +_OSC = "ObjectStorageClass" +_OL = "ObjectList" +_NM = "NextMarker" +_LOO = "ListObjectsOutput" +_LBR = "ListBucketResult" +_Cont = "Contents" +_LO = "ListObjects" +_FOe = "FetchOwner" +_SAt = "StartAfter" +_LOVI = "ListObjectsV2Input" +_cLOVR = "com.amazonaws.s3#ListObjectsV2Request" +_fo = "fetch-owner" +_sa = "start-after" +_KC = "KeyCount" +_LOVO = "ListObjectsV2Output" +_LOV = "ListObjectsV2" +_VIM = "VersionIdMarker" +_LOVIi = "ListObjectVersionsInput" +_cLOVRo = "com.amazonaws.s3#ListObjectVersionsRequest" +_vim = "version-id-marker" +_IL = "IsLatest" +_DME = "DeleteMarkerEntry" +_DMe = "DeleteMarkers" +_NVIM = "NextVersionIdMarker" +_OVSC = "ObjectVersionStorageClass" +_OV = "ObjectVersion" +_OVL = "ObjectVersionList" +_LOVOi = "ListObjectVersionsOutput" +_LVR = "ListVersionsResult" +_Ve = "Versions" +_Ver = "Version" +_LOVi = "ListObjectVersions" +_LPI = "ListPartsInput" +_cLPR = "com.amazonaws.s3#ListPartsRequest" +_mp = "max-parts" +_pnm = "part-number-marker" +_LPO = "ListPartsOutput" +_LPR = "ListPartsResult" +_LP = "ListParts" +_PBAI = "PutBucketAbacInput" +_cPBAR = "com.amazonaws.s3#PutBucketAbacRequest" +_PBAO = "PutBucketAbacOutput" +_PBA = "PutBucketAbac" +_PBACI = "PutBucketAccelerateConfigurationInput" +_cPBACR = "com.amazonaws.s3#PutBucketAccelerateConfigurationRequest" +_PBACO = "PutBucketAccelerateConfigurationOutput" +_PBAC = "PutBucketAccelerateConfiguration" +_PBAIu = "PutBucketAclInput" +_cPBARo = "com.amazonaws.s3#PutBucketAclRequest" +_PBAOu = "PutBucketAclOutput" +_PBAu = "PutBucketAcl" +_PBACIu = "PutBucketAnalyticsConfigurationInput" +_cPBACRo = "com.amazonaws.s3#PutBucketAnalyticsConfigurationRequest" +_PBACOu = "PutBucketAnalyticsConfigurationOutput" +_PBACu = "PutBucketAnalyticsConfiguration" +_PBCI = "PutBucketCorsInput" +_cPBCR = "com.amazonaws.s3#PutBucketCorsRequest" +_PBCO = "PutBucketCorsOutput" +_PBC = "PutBucketCors" +_PBEI = "PutBucketEncryptionInput" +_cPBER = "com.amazonaws.s3#PutBucketEncryptionRequest" +_PBEO = "PutBucketEncryptionOutput" +_PBE = "PutBucketEncryption" +_PBITCI = "PutBucketIntelligentTieringConfigurationInput" +_cPBITCR = "com.amazonaws.s3#PutBucketIntelligentTieringConfigurationRequest" +_PBITCO = "PutBucketIntelligentTieringConfigurationOutput" +_PBITC = "PutBucketIntelligentTieringConfiguration" +_PBICI = "PutBucketInventoryConfigurationInput" +_cPBICR = "com.amazonaws.s3#PutBucketInventoryConfigurationRequest" +_PBICO = "PutBucketInventoryConfigurationOutput" +_PBIC = "PutBucketInventoryConfiguration" +_BLCu = "BucketLifecycleConfiguration" +_PBLCI = "PutBucketLifecycleConfigurationInput" +_cPBLCR = "com.amazonaws.s3#PutBucketLifecycleConfigurationRequest" +_PBLCO = "PutBucketLifecycleConfigurationOutput" +_PBLC = "PutBucketLifecycleConfiguration" +_PBLI = "PutBucketLoggingInput" +_cPBLR = "com.amazonaws.s3#PutBucketLoggingRequest" +_PBLO = "PutBucketLoggingOutput" +_PBL = "PutBucketLogging" +_PBMCI = "PutBucketMetricsConfigurationInput" +_cPBMCR = "com.amazonaws.s3#PutBucketMetricsConfigurationRequest" +_PBMCO = "PutBucketMetricsConfigurationOutput" +_PBMC = "PutBucketMetricsConfiguration" +_NC = "NotificationConfiguration" +_SV = "SkipValidation" +_PBNCI = "PutBucketNotificationConfigurationInput" +_cPBNCR = "com.amazonaws.s3#PutBucketNotificationConfigurationRequest" +_SDV = "SkipDestinationValidation" +_xasdv = "x-amz-skip-destination-validation" +_PBNCO = "PutBucketNotificationConfigurationOutput" +_PBNC = "PutBucketNotificationConfiguration" +_PBOCI = "PutBucketOwnershipControlsInput" +_cPBOCR = "com.amazonaws.s3#PutBucketOwnershipControlsRequest" +_PBOCO = "PutBucketOwnershipControlsOutput" +_PBOC = "PutBucketOwnershipControls" +_CRSBA = "ConfirmRemoveSelfBucketAccess" +_PBPI = "PutBucketPolicyInput" +_cPBPR = "com.amazonaws.s3#PutBucketPolicyRequest" +_xacrsba = "x-amz-confirm-remove-self-bucket-access" +_PBPO = "PutBucketPolicyOutput" +_PBP = "PutBucketPolicy" +_OLT = "ObjectLockToken" +_PBRI = "PutBucketReplicationInput" +_cPBRR = "com.amazonaws.s3#PutBucketReplicationRequest" +_xabolt = "x-amz-bucket-object-lock-token" +_PBRO = "PutBucketReplicationOutput" +_PBR = "PutBucketReplication" +_PBRPI = "PutBucketRequestPaymentInput" +_cPBRPR = "com.amazonaws.s3#PutBucketRequestPaymentRequest" +_PBRPO = "PutBucketRequestPaymentOutput" +_PBRP = "PutBucketRequestPayment" +_PBTI = "PutBucketTaggingInput" +_cPBTR = "com.amazonaws.s3#PutBucketTaggingRequest" +_PBTO = "PutBucketTaggingOutput" +_PBT = "PutBucketTagging" +_PBVI = "PutBucketVersioningInput" +_cPBVR = "com.amazonaws.s3#PutBucketVersioningRequest" +_PBVO = "PutBucketVersioningOutput" +_PBV = "PutBucketVersioning" +_PBWI = "PutBucketWebsiteInput" +_cPBWR = "com.amazonaws.s3#PutBucketWebsiteRequest" +_PBWO = "PutBucketWebsiteOutput" +_PBW = "PutBucketWebsite" +_ETM = "EncryptionTypeMismatch" +_IR = "InvalidRequest" +_IWO = "InvalidWriteOffset" +_WOB = "WriteOffsetBytes" +_POI = "PutObjectInput" +_cPOR = "com.amazonaws.s3#PutObjectRequest" +_xawob = "x-amz-write-offset-bytes" +_POO = "PutObjectOutput" +_xaos = "x-amz-object-size" +_TMP = "TooManyParts" +_PO = "PutObject" +_POAI = "PutObjectAclInput" +_cPOAR = "com.amazonaws.s3#PutObjectAclRequest" +_POAO = "PutObjectAclOutput" +_POA = "PutObjectAcl" +_ALE = "AnnotationLimitExceeded" +_ANTL = "AnnotationNameTooLong" +_IAN = "InvalidAnnotationName" +_POAIu = "PutObjectAnnotationInput" +_cPOARo = "com.amazonaws.s3#PutObjectAnnotationRequest" +_POAOu = "PutObjectAnnotationOutput" +_UMT = "UnsupportedMediaType" +_POAu = "PutObjectAnnotation" +_POLHI = "PutObjectLegalHoldInput" +_cPOLHR = "com.amazonaws.s3#PutObjectLegalHoldRequest" +_POLHO = "PutObjectLegalHoldOutput" +_POLH = "PutObjectLegalHold" +_POLCI = "PutObjectLockConfigurationInput" +_cPOLCR = "com.amazonaws.s3#PutObjectLockConfigurationRequest" +_POLCO = "PutObjectLockConfigurationOutput" +_POLC = "PutObjectLockConfiguration" +_PORI = "PutObjectRetentionInput" +_cPORR = "com.amazonaws.s3#PutObjectRetentionRequest" +_PORO = "PutObjectRetentionOutput" +_POR = "PutObjectRetention" +_POTI = "PutObjectTaggingInput" +_cPOTR = "com.amazonaws.s3#PutObjectTaggingRequest" +_POTO = "PutObjectTaggingOutput" +_POT = "PutObjectTagging" +_PPABI = "PutPublicAccessBlockInput" +_cPPABR = "com.amazonaws.s3#PutPublicAccessBlockRequest" +_PPABO = "PutPublicAccessBlockOutput" +_PPAB = "PutPublicAccessBlock" +_IPM = "IdempotencyParameterMismatch" +_CTl = "ClientToken" +_RSen = "RenameSource" +_RSIM = "RenameSourceIfMatch" +_RSIMS = "RenameSourceIfModifiedSince" +_RSINM = "RenameSourceIfNoneMatch" +_RSIUS = "RenameSourceIfUnmodifiedSince" +_ROI = "RenameObjectInput" +_cROR = "com.amazonaws.s3#RenameObjectRequest" +_xars_ = "x-amz-rename-source" +_DIM = "DestinationIfMatch" +_DINM = "DestinationIfNoneMatch" +_DIMS = "DestinationIfModifiedSince" +_DIUS = "DestinationIfUnmodifiedSince" +_SIM = "SourceIfMatch" +_xarsim = "x-amz-rename-source-if-match" +_SINM = "SourceIfNoneMatch" +_xarsinm = "x-amz-rename-source-if-none-match" +_SIMS = "SourceIfModifiedSince" +_xarsims = "x-amz-rename-source-if-modified-since" +_SIUS = "SourceIfUnmodifiedSince" +_xarsius = "x-amz-rename-source-if-unmodified-since" +_xact_ = "x-amz-client-token" +_sT = "smithy.api#idempotencyToken" +_ROO = "RenameObjectOutput" +_ROe = "RenameObject" +_OAIATE = "ObjectAlreadyInActiveTierError" +_Des = "Description" +_Tier = "Tier" +_St = "Standard" +_Bul = "Bulk" +_Expe = "Expedited" +_GJP = "GlacierJobParameters" +_KMSC = "KMSContext" +_KMSKI = "KMSKeyId" +_LPo = "LocationPrefix" +_ME = "MetadataEntry" +_UM = "UserMetadata" +_SL = "S3Location" +_CACL = "CannedACL" +_OLu = "OutputLocation" +_S_ = "S3" +_Expr = "Expression" +_ETx = "ExpressionType" +_SQL = "SQL" +_CTom = "CompressionType" +_GZIP = "GZIP" +_BZIP = "BZIP2" +_Com = "Comments" +_FD = "FieldDelimiter" +_FHI = "FileHeaderInfo" +_USE = "USE" +_IGNORE = "IGNORE" +_QCuo = "QuoteCharacter" +_QEC = "QuoteEscapeCharacter" +_RD = "RecordDelimiter" +_CSVIn = "CSVInput" +_JSONT = "JSONType" +_DOCUMENT = "DOCUMENT" +_LINES = "LINES" +_JSONI = "JSONInput" +_PI = "ParquetInput" +_ISn = "InputSerialization" +_JSON = "JSON" +_QF = "QuoteFields" +_ALWAYS = "ALWAYS" +_ASNEEDED = "ASNEEDED" +_CSVO = "CSVOutput" +_JSONO = "JSONOutput" +_OSu = "OutputSerialization" +_SPe = "SelectParameters" +_RRT = "RestoreRequestType" +_SELECT = "SELECT" +_RRes = "RestoreRequest" +_ROIe = "RestoreObjectInput" +_cRORo = "com.amazonaws.s3#RestoreObjectRequest" +_ROP = "RestoreOutputPath" +_ROOe = "RestoreObjectOutput" +_xarop = "x-amz-restore-output-path" +_ROes = "RestoreObject" +_ERP = "EnableRequestProgress" +_RPe = "RequestProgress" +_End = "End" +_Sta = "Start" +_SR = "ScanRange" +_SOCI = "SelectObjectContentInput" +_cSOCR = "com.amazonaws.s3#SelectObjectContentRequest" +_CEo = "ContinuationEvent" +_EE = "EndEvent" +_BP = "BytesProcessed" +_BRy = "BytesReturned" +_BS = "BytesScanned" +_Prog = "Progress" +_PE = "ProgressEvent" +_Det = "Details" +_sPmi = "smithy.api#eventPayload" +_REec = "RecordsEvent" +_Payl = "Payload" +_Stat = "Stats" +_SEt = "StatsEvent" +_SOCES = "SelectObjectContentEventStream" +_Rec = "Records" +_Cont_ = "Cont" +_SOCO = "SelectObjectContentOutput" +_SOC = "SelectObjectContent" +_ATCU = "AnnotationTableConfigurationUpdates" +_UBMATCI = "UpdateBucketMetadataAnnotationTableConfigurationInput" +_cUBMATCR = "com.amazonaws.s3#UpdateBucketMetadataAnnotationTableConfigurationRequest" +_UBMATCO = "UpdateBucketMetadataAnnotationTableConfigurationOutput" +_UBMATC = "UpdateBucketMetadataAnnotationTableConfiguration" +_ITCU = "InventoryTableConfigurationUpdates" +_UBMITCI = "UpdateBucketMetadataInventoryTableConfigurationInput" +_cUBMITCR = "com.amazonaws.s3#UpdateBucketMetadataInventoryTableConfigurationRequest" +_UBMITCO = "UpdateBucketMetadataInventoryTableConfigurationOutput" +_UBMITC = "UpdateBucketMetadataInventoryTableConfiguration" +_JTCU = "JournalTableConfigurationUpdates" +_UBMJTCI = "UpdateBucketMetadataJournalTableConfigurationInput" +_cUBMJTCR = "com.amazonaws.s3#UpdateBucketMetadataJournalTableConfigurationRequest" +_UBMJTCO = "UpdateBucketMetadataJournalTableConfigurationOutput" +_UBMJTC = "UpdateBucketMetadataJournalTableConfiguration" +_NEKKAS = "NonEmptyKmsKeyArnString" +_SSEKMSE = "SSEKMSEncryption" +_KMSKA = "KMSKeyArn" +_OE = "ObjectEncryption" +_UOEI = "UpdateObjectEncryptionInput" +_cUOER = "com.amazonaws.s3#UpdateObjectEncryptionRequest" +_UOEO = "UpdateObjectEncryptionOutput" +_cUOERo = "com.amazonaws.s3#UpdateObjectEncryptionResponse" +_UOE = "UpdateObjectEncryption" +_UPI = "UploadPartInput" +_cUPR = "com.amazonaws.s3#UploadPartRequest" +_UPO = "UploadPartOutput" +_UP = "UploadPart" +_CSRo = "CopySourceRange" +_UPCI = "UploadPartCopyInput" +_cUPCR = "com.amazonaws.s3#UploadPartCopyRequest" +_xacsr = "x-amz-copy-source-range" +_CPR = "CopyPartResult" +_UPCO = "UploadPartCopyOutput" +_UPC = "UploadPartCopy" +_RReq = "RequestRoute" +_RTe = "RequestToken" +_GORSC = "GetObjectResponseStatusCode" +_WGORI = "WriteGetObjectResponseInput" +_cWGORR = "com.amazonaws.s3#WriteGetObjectResponseRequest" +_sLm = "smithy.api#hostLabel" +_xarr = "x-amz-request-route" +_xart = "x-amz-request-token" +_SCt = "StatusCode" +_xafs = "x-amz-fwd-status" +_xafec = "x-amz-fwd-error-code" +_xafem = "x-amz-fwd-error-message" +_xafhar = "x-amz-fwd-header-accept-ranges" +_xafhCC = "x-amz-fwd-header-Cache-Control" +_xafhCD = "x-amz-fwd-header-Content-Disposition" +_xafhCE = "x-amz-fwd-header-Content-Encoding" +_xafhCL = "x-amz-fwd-header-Content-Language" +_xafhCR = "x-amz-fwd-header-Content-Range" +_xafhCT = "x-amz-fwd-header-Content-Type" +_xafhxacc = "x-amz-fwd-header-x-amz-checksum-crc32" +_xafhxacc_ = "x-amz-fwd-header-x-amz-checksum-crc32c" +_xafhxacc__ = "x-amz-fwd-header-x-amz-checksum-crc64nvme" +_xafhxacs = "x-amz-fwd-header-x-amz-checksum-sha1" +_xafhxacs_ = "x-amz-fwd-header-x-amz-checksum-sha256" +_xafhxacs__ = "x-amz-fwd-header-x-amz-checksum-sha512" +_xafhxacm = "x-amz-fwd-header-x-amz-checksum-md5" +_xafhxacx = "x-amz-fwd-header-x-amz-checksum-xxhash64" +_xafhxacx_ = "x-amz-fwd-header-x-amz-checksum-xxhash3" +_xafhxacx__ = "x-amz-fwd-header-x-amz-checksum-xxhash128" +_xafhxadm = "x-amz-fwd-header-x-amz-delete-marker" +_xafhE = "x-amz-fwd-header-ETag" +_xafhE_ = "x-amz-fwd-header-Expires" +_xafhxae = "x-amz-fwd-header-x-amz-expiration" +_xafhLM = "x-amz-fwd-header-Last-Modified" +_xafhxamm = "x-amz-fwd-header-x-amz-missing-meta" +_xafhxaolm = "x-amz-fwd-header-x-amz-object-lock-mode" +_xafhxaollh = "x-amz-fwd-header-x-amz-object-lock-legal-hold" +_xafhxaolrud = "x-amz-fwd-header-x-amz-object-lock-retain-until-date" +_xafhxampc = "x-amz-fwd-header-x-amz-mp-parts-count" +_xafhxars = "x-amz-fwd-header-x-amz-replication-status" +_xafhxarc = "x-amz-fwd-header-x-amz-request-charged" +_xafhxar = "x-amz-fwd-header-x-amz-restore" +_xafhxasse = "x-amz-fwd-header-x-amz-server-side-encryption" +_xafhxasseca = "x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm" +_xafhxasseakki = "x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id" +_xafhxasseckM = "x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5" +_xafhxasc = "x-amz-fwd-header-x-amz-storage-class" +_xafhxatc = "x-amz-fwd-header-x-amz-tagging-count" +_xafhxavi = "x-amz-fwd-header-x-amz-version-id" +_xafhxassebke = "x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled" +_WGORO = "WriteGetObjectResponseOutput" +_WGOR = "WriteGetObjectResponse" +_aP = "aws.auth#unsignedPayload" +_smithyapi = "smithy.api#endpoint" +_ASm = "AmazonS3" +_awsa = "aws.auth#sigv4" +_aX = "aws.protocols#restXml" +_awsap = "aws.api#service" + +BUCKET_ABAC_STATUS: StaticSchema = ( + 14, + n0, + _BAS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +ABAC_STATUS: StaticSchema = (18, n0, _AS, 0, (_S,), ((BUCKET_ABAC_STATUS, 0),)) + +ABORT_DATE: StaticSchema = (4, n0, _AD, 0) + +DAYS_AFTER_INITIATION: StaticSchema = (7, n0, _DAI, 0) + +ABORT_INCOMPLETE_MULTIPART_UPLOAD: StaticSchema = ( + 18, + n0, + _AIMU, + 0, + (_DAI,), + ((DAYS_AFTER_INITIATION, 0),), +) + +BUCKET_NAME: StaticSchema = (3, n0, _BN, 0) + +ACCOUNT_ID: StaticSchema = (3, n0, _AI, 0) + +IF_MATCH_INITIATED_TIME: StaticSchema = (4, n0, _IMIT, {_sF: _hd}) + +OBJECT_KEY: StaticSchema = (3, n0, _OK, 0) + +REQUEST_PAYER: StaticSchema = (14, n0, _RP, 0, (_r,), ((-1, {_sV: _r}),)) + +MULTIPART_UPLOAD_ID: StaticSchema = (3, n0, _MUI, 0) + +ABORT_MULTIPART_UPLOAD_INPUT: StaticSchema = ( + 18, + n0, + _AMUI, + {_sSI: _cAMUR, _s: None}, + (_B, _K, _UI, _RP, _EBO, _IMIT), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (MULTIPART_UPLOAD_ID, {_sQ: _uI, _sm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (IF_MATCH_INITIATED_TIME, {_sH: _xaimit}), + ), +) + +REQUEST_CHARGED: StaticSchema = (14, n0, _RC, 0, (_r,), ((-1, {_sV: _r}),)) + +ABORT_MULTIPART_UPLOAD_OUTPUT: StaticSchema = ( + 18, + n0, + _AMUO, + {_smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +NO_SUCH_UPLOAD: StaticSchema = (18, n0, _NSU, {_smit: _c, _sE: 404}) + +ABORT_MULTIPART_UPLOAD: StaticOperationSchema = ( + 23, + n0, + _AMU, + { + _smith: MappingProxyType( + { + "method": "DELETE", + "uri": "/{Key+}?x-id=AbortMultipartUpload", + "code": 204, + } + ) + }, + ABORT_MULTIPART_UPLOAD_INPUT, + ABORT_MULTIPART_UPLOAD_OUTPUT, + (NO_SUCH_UPLOAD,), +) + +ABORT_RULE_ID: StaticSchema = (3, n0, _ARI, 0) + +BUCKET_ACCELERATE_STATUS: StaticSchema = ( + 14, + n0, + _BASu, + 0, + (_E, _Su), + ((-1, {_sV: _E}), (-1, {_sV: _Su})), +) + +ACCELERATE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _AC, + 0, + (_S,), + ((BUCKET_ACCELERATE_STATUS, 0),), +) + +ACCEPT_RANGES: StaticSchema = (3, n0, _AR, 0) + +DISPLAY_NAME: StaticSchema = (3, n0, _DN, 0) + +EMAIL_ADDRESS: StaticSchema = (3, n0, _EA, 0) + +ID: StaticSchema = (3, n0, _ID, 0) + +TYPE: StaticSchema = ( + 14, + n0, + _T, + 0, + (_CU, _ACBE, _G), + ((-1, {_sV: _CU}), (-1, {_sV: _ACBE}), (-1, {_sV: _G})), +) + +URI: StaticSchema = (3, n0, _URI, 0) + +GRANTEE: StaticSchema = ( + 18, + n0, + _Gr, + 0, + (_DN, _EA, _ID, _URI, _T), + ( + (DISPLAY_NAME, 0), + (EMAIL_ADDRESS, 0), + (ID, 0), + (URI, 0), + (TYPE, {_sN: _x, _sA: None, _sm: None}), + ), +) + +PERMISSION: StaticSchema = ( + 14, + n0, + _P, + 0, + (_FC, _WRITE, _WA, _READ, _RA), + ( + (-1, {_sV: _FC}), + (-1, {_sV: _WRITE}), + (-1, {_sV: _WA}), + (-1, {_sV: _READ}), + (-1, {_sV: _RA}), + ), +) + +GRANT: StaticSchema = ( + 18, + n0, + _Gra, + 0, + (_Gr, _P), + ( + ( + GRANTEE, + { + _sNm: MappingProxyType( + { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi", + } + ) + }, + ), + (PERMISSION, 0), + ), +) + +GRANTS: StaticSchema = (16, n0, _Gran, 0, (_m,), ((GRANT, {_sN: _Gra}),)) + +OWNER: StaticSchema = (18, n0, _O, 0, (_DN, _ID), ((DISPLAY_NAME, 0), (ID, 0))) + +ACCESS_CONTROL_POLICY: StaticSchema = ( + 18, + n0, + _ACP, + 0, + (_Gran, _O), + ((GRANTS, {_sN: _ACL}), (OWNER, 0)), +) + +OWNER_OVERRIDE: StaticSchema = (14, n0, _OO, 0, (_De,), ((-1, {_sV: _De}),)) + +ACCESS_CONTROL_TRANSLATION: StaticSchema = ( + 18, + n0, + _ACT, + 0, + (_O,), + ((OWNER_OVERRIDE, 1),), +) + +ACCESS_DENIED: StaticSchema = (18, n0, _ADc, {_smit: _c, _sE: 403}) + +ACCESS_KEY_ID_VALUE: StaticSchema = (3, n0, _AKIV, 0) + +ACCESS_POINT_ALIAS: StaticSchema = (2, n0, _APA, 0) + +ACCESS_POINT_ARN: StaticSchema = (3, n0, _APAc, 0) + +ALLOWED_HEADER: StaticSchema = (3, n0, _AH, 0) + +ALLOWED_HEADERS: StaticSchema = (16, n0, _AHl, 0, (_m,), ((ALLOWED_HEADER, 0),)) + +ALLOWED_METHOD: StaticSchema = (3, n0, _AM, 0) + +ALLOWED_METHODS: StaticSchema = (16, n0, _AMl, 0, (_m,), ((ALLOWED_METHOD, 0),)) + +ALLOWED_ORIGIN: StaticSchema = (3, n0, _AO, 0) + +ALLOWED_ORIGINS: StaticSchema = (16, n0, _AOl, 0, (_m,), ((ALLOWED_ORIGIN, 0),)) + +ALLOW_QUOTED_RECORD_DELIMITER: StaticSchema = (2, n0, _AQRD, 0) + +CHECKSUM_CRC32: StaticSchema = (3, n0, _CCRC, 0) + +CHECKSUM_CRC32_C: StaticSchema = (3, n0, _CCRCC, 0) + +CHECKSUM_CRC64_NVME: StaticSchema = (3, n0, _CCRCNVME, 0) + +CHECKSUM_MD5: StaticSchema = (3, n0, _CMD, 0) + +CHECKSUM_SHA1: StaticSchema = (3, n0, _CSHA, 0) + +CHECKSUM_SHA256: StaticSchema = (3, n0, _CSHAh, 0) + +CHECKSUM_SHA512: StaticSchema = (3, n0, _CSHAhe, 0) + +CHECKSUM_TYPE: StaticSchema = ( + 14, + n0, + _CT, + 0, + (_COMPOSITE, _FO), + ((-1, {_sV: _COMPOSITE}), (-1, {_sV: _FO})), +) + +CHECKSUM_XXHASH128: StaticSchema = (3, n0, _CXXHASH, 0) + +CHECKSUM_XXHASH3: StaticSchema = (3, n0, _CXXHASHh, 0) + +CHECKSUM_XXHASH64: StaticSchema = (3, n0, _CXXHASHhe, 0) + +IF_MATCH: StaticSchema = (3, n0, _IM, 0) + +IF_NONE_MATCH: StaticSchema = (3, n0, _INM, 0) + +MPU_OBJECT_SIZE: StaticSchema = (8, n0, _MOS, 0) + +E_TAG: StaticSchema = (3, n0, _ET, 0) + +PART_NUMBER: StaticSchema = (7, n0, _PN, 0) + +COMPLETED_PART: StaticSchema = ( + 18, + n0, + _CP, + 0, + ( + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _PN, + ), + ( + (E_TAG, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + (PART_NUMBER, 0), + ), +) + +COMPLETED_PART_LIST: StaticSchema = (16, n0, _CPL, 0, (_m,), ((COMPLETED_PART, 0),)) + +COMPLETED_MULTIPART_UPLOAD: StaticSchema = ( + 18, + n0, + _CMU, + 0, + (_Pa,), + ((COMPLETED_PART_LIST, {_sN: _Par, _sFm: None}),), +) + +SSE_CUSTOMER_ALGORITHM: StaticSchema = (3, n0, _SSECA, 0) + +SSE_CUSTOMER_KEY: StaticSchema = (3, n0, _SSECK, 4) + +SSE_CUSTOMER_KEY_MD5: StaticSchema = (3, n0, _SSECKMD, 0) + +COMPLETE_MULTIPART_UPLOAD_INPUT: StaticSchema = ( + 18, + n0, + _CMUI, + {_sSI: _cCMUR, _s: None}, + ( + _B, + _K, + _MU, + _UI, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _MOS, + _RP, + _EBO, + _IM, + _INM, + _SSECA, + _SSECK, + _SSECKMD, + ), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (COMPLETED_MULTIPART_UPLOAD, {_sN: _CMUo, _sPm: None}), + (MULTIPART_UPLOAD_ID, {_sQ: _uI, _sm: None}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (MPU_OBJECT_SIZE, {_sH: _xamos}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (IF_MATCH, {_sH: _IM_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + ), +) + +BUCKET_KEY_ENABLED: StaticSchema = (2, n0, _BKE, 0) + +EXPIRATION: StaticSchema = (3, n0, _Ex, 0) + +LOCATION: StaticSchema = (3, n0, _L, 0) + +SERVER_SIDE_ENCRYPTION: StaticSchema = ( + 14, + n0, + _SSE, + 0, + (_AES, _af, _ab, _ak, _akd), + ( + (-1, {_sV: _AES}), + (-1, {_sV: _a}), + (-1, {_sV: _aw}), + (-1, {_sV: _aws}), + (-1, {_sV: _awsk}), + ), +) + +SSEKMS_KEY_ID: StaticSchema = (3, n0, _SSEKMSKI, 4) + +OBJECT_VERSION_ID: StaticSchema = (3, n0, _OVI, 0) + +COMPLETE_MULTIPART_UPLOAD_OUTPUT: StaticSchema = ( + 18, + n0, + _CMUO, + {_sN: _CMUR, _smi: None}, + ( + _L, + _B, + _K, + _Ex, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _SSE, + _VI, + _SSEKMSKI, + _BKE, + _RC, + ), + ( + (LOCATION, 0), + (BUCKET_NAME, 0), + (OBJECT_KEY, 0), + (EXPIRATION, {_sH: _xae}), + (E_TAG, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + (CHECKSUM_TYPE, 0), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +COMPLETE_MULTIPART_UPLOAD: StaticOperationSchema = ( + 23, + n0, + _CMUo, + {_smith: MappingProxyType({"method": "POST", "uri": "/{Key+}", "code": 200})}, + COMPLETE_MULTIPART_UPLOAD_INPUT, + COMPLETE_MULTIPART_UPLOAD_OUTPUT, + (), +) + +OBJECT_CANNED_ACL: StaticSchema = ( + 14, + n0, + _OCACL, + 0, + (_p, _pr, _prw, _ar, _aer, _bor, _bofc), + ( + (-1, {_sV: _p}), + (-1, {_sV: _pr_}), + (-1, {_sV: _prw_}), + (-1, {_sV: _ar_}), + (-1, {_sV: _aer_}), + (-1, {_sV: _bor_}), + (-1, {_sV: _bofc_}), + ), +) + +ANNOTATION_DIRECTIVE: StaticSchema = ( + 14, + n0, + _ADn, + 0, + (_COPY, _EXCLUDE), + ((-1, {_sV: _COPY}), (-1, {_sV: _EXCLUDE})), +) + +CACHE_CONTROL: StaticSchema = (3, n0, _CC, 0) + +CHECKSUM_ALGORITHM: StaticSchema = ( + 14, + n0, + _CA, + 0, + (_CRC, _CRCC, _SHA, _SHA_, _CRCNVME, _SHA__, _MD, _XXHASH, _XXHASH_, _XXHASH__), + ( + (-1, {_sV: _CRC}), + (-1, {_sV: _CRCC}), + (-1, {_sV: _SHA}), + (-1, {_sV: _SHA_}), + (-1, {_sV: _CRCNVME}), + (-1, {_sV: _SHA__}), + (-1, {_sV: _MD}), + (-1, {_sV: _XXHASH}), + (-1, {_sV: _XXHASH_}), + (-1, {_sV: _XXHASH__}), + ), +) + +CONTENT_DISPOSITION: StaticSchema = (3, n0, _CD, 0) + +CONTENT_ENCODING: StaticSchema = (3, n0, _CE, 0) + +CONTENT_LANGUAGE: StaticSchema = (3, n0, _CL, 0) + +CONTENT_TYPE: StaticSchema = (3, n0, _CTo, 0) + +COPY_SOURCE: StaticSchema = (3, n0, _CS, 0) + +COPY_SOURCE_IF_MATCH: StaticSchema = (3, n0, _CSIM, 0) + +COPY_SOURCE_IF_MODIFIED_SINCE: StaticSchema = (4, n0, _CSIMS, 0) + +COPY_SOURCE_IF_NONE_MATCH: StaticSchema = (3, n0, _CSINM, 0) + +COPY_SOURCE_IF_UNMODIFIED_SINCE: StaticSchema = (4, n0, _CSIUS, 0) + +COPY_SOURCE_SSE_CUSTOMER_ALGORITHM: StaticSchema = (3, n0, _CSSSECA, 0) + +COPY_SOURCE_SSE_CUSTOMER_KEY: StaticSchema = (3, n0, _CSSSECK, 4) + +COPY_SOURCE_SSE_CUSTOMER_KEY_MD5: StaticSchema = (3, n0, _CSSSECKMD, 0) + +EXPIRES: StaticSchema = (3, n0, _Exp, 0) + +GRANT_FULL_CONTROL: StaticSchema = (3, n0, _GFC, 0) + +GRANT_READ: StaticSchema = (3, n0, _GR, 0) + +GRANT_READ_ACP: StaticSchema = (3, n0, _GRACP, 0) + +GRANT_WRITE_ACP: StaticSchema = (3, n0, _GWACP, 0) + +METADATA_KEY: StaticSchema = (3, n0, _MK, 0) + +METADATA_VALUE: StaticSchema = (3, n0, _MV, 0) + +METADATA: StaticSchema = ( + 17, + n0, + _M, + 0, + (_k, _v), + ((METADATA_KEY, 0), (METADATA_VALUE, 0)), +) + +METADATA_DIRECTIVE: StaticSchema = ( + 14, + n0, + _MDe, + 0, + (_COPY, _REPLACE), + ((-1, {_sV: _COPY}), (-1, {_sV: _REPLACE})), +) + +OBJECT_LOCK_EVENT_HOLD: StaticSchema = ( + 14, + n0, + _OLEH, + 0, + (_ON, _OFF), + ((-1, {_sV: _ON}), (-1, {_sV: _OFF})), +) + +OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS: StaticSchema = (7, n0, _OLEHDD, 0) + +OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS: StaticSchema = (7, n0, _OLEHDY, 0) + +OBJECT_LOCK_LEGAL_HOLD_STATUS: StaticSchema = ( + 14, + n0, + _OLLHS, + 0, + (_ON, _OFF), + ((-1, {_sV: _ON}), (-1, {_sV: _OFF})), +) + +OBJECT_LOCK_MODE: StaticSchema = ( + 14, + n0, + _OLM, + 0, + (_GOVERNANCE, _COMPLIANCE), + ((-1, {_sV: _GOVERNANCE}), (-1, {_sV: _COMPLIANCE})), +) + +OBJECT_LOCK_RETAIN_UNTIL_DATE: StaticSchema = (4, n0, _OLRUD, {_sF: _dt}) + +SSEKMS_ENCRYPTION_CONTEXT: StaticSchema = (3, n0, _SSEKMSEC, 4) + +STORAGE_CLASS: StaticSchema = ( + 14, + n0, + _SC, + 0, + ( + _STANDARD, + _RR, + _SI, + _OI, + _IT, + _GLACIER, + _DA, + _OUTPOSTS, + _GI, + _SNOW, + _EO, + _FO_, + _FO__, + _ABW, + _ABLCW, + ), + ( + (-1, {_sV: _STANDARD}), + (-1, {_sV: _RR}), + (-1, {_sV: _SI}), + (-1, {_sV: _OI}), + (-1, {_sV: _IT}), + (-1, {_sV: _GLACIER}), + (-1, {_sV: _DA}), + (-1, {_sV: _OUTPOSTS}), + (-1, {_sV: _GI}), + (-1, {_sV: _SNOW}), + (-1, {_sV: _EO}), + (-1, {_sV: _FO_}), + (-1, {_sV: _FO__}), + (-1, {_sV: _ABW}), + (-1, {_sV: _ABLCW}), + ), +) + +TAGGING_HEADER: StaticSchema = (3, n0, _TH, 0) + +TAGGING_DIRECTIVE: StaticSchema = ( + 14, + n0, + _TD, + 0, + (_COPY, _REPLACE), + ((-1, {_sV: _COPY}), (-1, {_sV: _REPLACE})), +) + +WEBSITE_REDIRECT_LOCATION: StaticSchema = (3, n0, _WRL, 0) + +COPY_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _COI, + {_sSI: _cCOR, _s: None}, + ( + _ACL_, + _B, + _CC, + _CA, + _CD, + _CE, + _CL, + _CTo, + _CS, + _CSIM, + _CSIMS, + _CSINM, + _CSIUS, + _Exp, + _GFC, + _GR, + _GRACP, + _GWACP, + _IM, + _INM, + _K, + _M, + _MDe, + _TD, + _ADn, + _SSE, + _SC, + _WRL, + _SSECA, + _SSECK, + _SSECKMD, + _SSEKMSKI, + _SSEKMSEC, + _BKE, + _CSSSECA, + _CSSSECK, + _CSSSECKMD, + _RP, + _Ta, + _OLM, + _OLRUD, + _OLLHS, + _OLEH, + _OLEHDD, + _OLEHDY, + _EBO, + _ESBO, + ), + ( + (OBJECT_CANNED_ACL, {_sH: _xaa}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CACHE_CONTROL, {_sH: _CC_}), + (CHECKSUM_ALGORITHM, {_sH: _xaca}), + (CONTENT_DISPOSITION, {_sH: _CD_}), + (CONTENT_ENCODING, {_sH: _CE_}), + (CONTENT_LANGUAGE, {_sH: _CL_}), + (CONTENT_TYPE, {_sH: _CT_}), + ( + COPY_SOURCE, + {_sH: _xacs___, _sP: MappingProxyType({"name": "CopySource"}), _sm: None}, + ), + (COPY_SOURCE_IF_MATCH, {_sH: _xacsim}), + (COPY_SOURCE_IF_MODIFIED_SINCE, {_sH: _xacsims}), + (COPY_SOURCE_IF_NONE_MATCH, {_sH: _xacsinm}), + (COPY_SOURCE_IF_UNMODIFIED_SINCE, {_sH: _xacsius}), + (EXPIRES, {_sH: _Exp}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (IF_MATCH, {_sH: _IM_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (METADATA, {_sPH: _xam}), + (METADATA_DIRECTIVE, {_sH: _xamd}), + (TAGGING_DIRECTIVE, {_sH: _xatd}), + (ANNOTATION_DIRECTIVE, {_sH: _xaoad}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (STORAGE_CLASS, {_sH: _xasc}), + (WEBSITE_REDIRECT_LOCATION, {_sH: _xawrl}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (COPY_SOURCE_SSE_CUSTOMER_ALGORITHM, {_sH: _xacssseca}), + (COPY_SOURCE_SSE_CUSTOMER_KEY, {_sH: _xacssseck}), + (COPY_SOURCE_SSE_CUSTOMER_KEY_MD5, {_sH: _xacssseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (TAGGING_HEADER, {_sH: _xat}), + (OBJECT_LOCK_MODE, {_sH: _xaolm}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xaolrud}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xaollh}), + (OBJECT_LOCK_EVENT_HOLD, {_sH: _xaoleh}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS, {_sH: _xaolehdd}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS, {_sH: _xaolehdy}), + (ACCOUNT_ID, {_sH: _xaebo}), + (ACCOUNT_ID, {_sH: _xasebo}), + ), +) + +LAST_MODIFIED: StaticSchema = (4, n0, _LM, 0) + +COPY_OBJECT_RESULT: StaticSchema = ( + 18, + n0, + _COR, + 0, + ( + _ET, + _LM, + _CT, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + ), + ( + (E_TAG, 0), + (LAST_MODIFIED, 0), + (CHECKSUM_TYPE, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + ), +) + +COPY_SOURCE_VERSION_ID: StaticSchema = (3, n0, _CSVI, 0) + +COPY_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _COO, + {_smi: None}, + (_COR, _Ex, _CSVI, _VI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC), + ( + (COPY_OBJECT_RESULT, 16), + (EXPIRATION, {_sH: _xae}), + (COPY_SOURCE_VERSION_ID, {_sH: _xacsvi}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +OBJECT_NOT_IN_ACTIVE_TIER_ERROR: StaticSchema = (18, n0, _ONIATE, {_smit: _c, _sE: 403}) + +COPY_OBJECT: StaticOperationSchema = ( + 23, + n0, + _CO, + { + _sCP: MappingProxyType( + {"DisableS3ExpressSessionAuth": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?x-id=CopyObject", "code": 200} + ), + }, + COPY_OBJECT_INPUT, + COPY_OBJECT_OUTPUT, + (OBJECT_NOT_IN_ACTIVE_TIER_ERROR,), +) + +BUCKET_ALREADY_EXISTS: StaticSchema = (18, n0, _BAE, {_smit: _c, _sE: 409}) + +BUCKET_ALREADY_OWNED_BY_YOU: StaticSchema = (18, n0, _BAOBY, {_smit: _c, _sE: 409}) + +BUCKET_CANNED_ACL: StaticSchema = ( + 14, + n0, + _BCACL, + 0, + (_p, _pr, _prw, _ar), + ((-1, {_sV: _p}), (-1, {_sV: _pr_}), (-1, {_sV: _prw_}), (-1, {_sV: _ar_})), +) + +BUCKET_NAMESPACE: StaticSchema = ( + 14, + n0, + _BNu, + 0, + (_AR_, _GLOBAL), + ((-1, {_sV: _ar__}), (-1, {_sV: _g})), +) + +DATA_REDUNDANCY: StaticSchema = ( + 14, + n0, + _DR, + 0, + (_SAZ, _SLZ), + ((-1, {_sV: _SAZ}), (-1, {_sV: _SLZ})), +) + +BUCKET_TYPE: StaticSchema = (14, n0, _BT, 0, (_Di,), ((-1, {_sV: _Di}),)) + +BUCKET_INFO: StaticSchema = ( + 18, + n0, + _BI, + 0, + (_DR, _T), + ((DATA_REDUNDANCY, 0), (BUCKET_TYPE, 0)), +) + +LOCATION_NAME_AS_STRING: StaticSchema = (3, n0, _LNAS, 0) + +LOCATION_TYPE: StaticSchema = ( + 14, + n0, + _LT, + 0, + (_AZ, _LZ), + ((-1, {_sV: _AZ}), (-1, {_sV: _LZ})), +) + +LOCATION_INFO: StaticSchema = ( + 18, + n0, + _LI, + 0, + (_T, _N), + ((LOCATION_TYPE, 0), (LOCATION_NAME_AS_STRING, 0)), +) + +BUCKET_LOCATION_CONSTRAINT: StaticSchema = ( + 14, + n0, + _BLC, + 0, + ( + _as, + _ae, + _ae__, + _an, + _an__, + _an____, + _as__, + _as____, + _as______, + _as________, + _as__________, + _as____________, + _as______________, + _as________________, + _as__________________, + _cc, + _cw, + _cn, + _cn__, + _EU, + _ec, + _ec__, + _en, + _es, + _es__, + _ew, + _ew__, + _ew____, + _ic, + _mc, + _ms, + _mc__, + _se, + _ue, + _uge, + _ugw, + _uw, + _uw__, + ), + ( + (-1, {_sV: _as_}), + (-1, {_sV: _ae_}), + (-1, {_sV: _ae___}), + (-1, {_sV: _an_}), + (-1, {_sV: _an___}), + (-1, {_sV: _an_____}), + (-1, {_sV: _as___}), + (-1, {_sV: _as_____}), + (-1, {_sV: _as_______}), + (-1, {_sV: _as_________}), + (-1, {_sV: _as___________}), + (-1, {_sV: _as_____________}), + (-1, {_sV: _as_______________}), + (-1, {_sV: _as_________________}), + (-1, {_sV: _as___________________}), + (-1, {_sV: _cc_}), + (-1, {_sV: _cw_}), + (-1, {_sV: _cn_}), + (-1, {_sV: _cn___}), + (-1, {_sV: _EU}), + (-1, {_sV: _ec_}), + (-1, {_sV: _ec___}), + (-1, {_sV: _en_}), + (-1, {_sV: _es_}), + (-1, {_sV: _es___}), + (-1, {_sV: _ew_}), + (-1, {_sV: _ew___}), + (-1, {_sV: _ew_____}), + (-1, {_sV: _ic_}), + (-1, {_sV: _mc_}), + (-1, {_sV: _ms_}), + (-1, {_sV: _mc___}), + (-1, {_sV: _se_}), + (-1, {_sV: _ue_}), + (-1, {_sV: _uge_}), + (-1, {_sV: _ugw_}), + (-1, {_sV: _uw_}), + (-1, {_sV: _uw___}), + ), +) + +VALUE: StaticSchema = (3, n0, _V, 0) + +TAG: StaticSchema = (18, n0, _Tag, 0, (_K, _V), ((OBJECT_KEY, 1), (VALUE, 1))) + +TAG_SET: StaticSchema = (16, n0, _TS, 0, (_m,), ((TAG, {_sN: _Tag}),)) + +CREATE_BUCKET_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CBC, + 0, + (_LC, _L, _B, _Tags), + ( + (BUCKET_LOCATION_CONSTRAINT, 0), + (LOCATION_INFO, 0), + (BUCKET_INFO, 0), + (TAG_SET, 0), + ), +) + +GRANT_WRITE: StaticSchema = (3, n0, _GW, 0) + +OBJECT_LOCK_ENABLED_FOR_BUCKET: StaticSchema = (2, n0, _OLEFB, 0) + +OBJECT_OWNERSHIP: StaticSchema = ( + 14, + n0, + _OOb, + 0, + (_BOP, _OW, _BOE), + ((-1, {_sV: _BOP}), (-1, {_sV: _OW}), (-1, {_sV: _BOE})), +) + +CREATE_BUCKET_INPUT: StaticSchema = ( + 18, + n0, + _CBI, + {_sSI: _cCBR, _s: None}, + (_ACL_, _B, _CBC, _GFC, _GR, _GRACP, _GW, _GWACP, _OLEFB, _OOb, _BNu), + ( + (BUCKET_CANNED_ACL, {_sH: _xaa}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CREATE_BUCKET_CONFIGURATION, {_sN: _CBC, _sPm: None}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE, {_sH: _xagw}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (OBJECT_LOCK_ENABLED_FOR_BUCKET, {_sH: _xabole}), + (OBJECT_OWNERSHIP, {_sH: _xaoo}), + (BUCKET_NAMESPACE, {_sH: _xabn}), + ), +) + +S3_REGIONAL_OR_S3_EXPRESS_BUCKET_ARN_STRING: StaticSchema = (3, n0, _SROSEBAS, 0) + +CREATE_BUCKET_OUTPUT: StaticSchema = ( + 18, + n0, + _CBO, + {_smi: None}, + (_L, _BA), + ( + (LOCATION, {_sH: _L}), + (S3_REGIONAL_OR_S3_EXPRESS_BUCKET_ARN_STRING, {_sH: _xaba}), + ), +) + +CREATE_BUCKET: StaticOperationSchema = ( + 23, + n0, + _CB, + { + _sCP: MappingProxyType( + { + "UseS3ExpressControlEndpoint": MappingProxyType({"value": True}), + "DisableAccessPoints": MappingProxyType({"value": True}), + } + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/", "code": 200}), + }, + CREATE_BUCKET_INPUT, + CREATE_BUCKET_OUTPUT, + (BUCKET_ALREADY_EXISTS, BUCKET_ALREADY_OWNED_BY_YOU), +) + +CONTENT_MD5: StaticSchema = (3, n0, _CMDo, 0) + +ANNOTATION_CONFIGURATION_STATE: StaticSchema = ( + 14, + n0, + _ACS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +KMS_KEY_ARN: StaticSchema = (3, n0, _KKA, 0) + +TABLE_SSE_ALGORITHM: StaticSchema = ( + 14, + n0, + _TSA, + 0, + (_ak, _AES), + ((-1, {_sV: _aws}), (-1, {_sV: _AES})), +) + +METADATA_TABLE_ENCRYPTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MTEC, + 0, + (_SA, _KKA), + ((TABLE_SSE_ALGORITHM, 1), (KMS_KEY_ARN, 0)), +) + +ROLE: StaticSchema = (3, n0, _R, 0) + +ANNOTATION_TABLE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ATC, + 0, + (_CSo, _EC, _R), + ( + (ANNOTATION_CONFIGURATION_STATE, 1), + (METADATA_TABLE_ENCRYPTION_CONFIGURATION, 0), + (ROLE, 0), + ), +) + +INVENTORY_CONFIGURATION_STATE: StaticSchema = ( + 14, + n0, + _ICS, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +INVENTORY_TABLE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ITC, + 0, + (_CSo, _EC), + ((INVENTORY_CONFIGURATION_STATE, 1), (METADATA_TABLE_ENCRYPTION_CONFIGURATION, 0)), +) + +RECORD_EXPIRATION_DAYS: StaticSchema = (7, n0, _RED, 0) + +EXPIRATION_STATE: StaticSchema = ( + 14, + n0, + _ES, + 0, + (_ENABLED, _DISABLED), + ((-1, {_sV: _ENABLED}), (-1, {_sV: _DISABLED})), +) + +RECORD_EXPIRATION: StaticSchema = ( + 18, + n0, + _RE, + 0, + (_Ex, _Da), + ((EXPIRATION_STATE, 1), (RECORD_EXPIRATION_DAYS, 0)), +) + +JOURNAL_TABLE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _JTC, + 0, + (_RE, _EC), + ((RECORD_EXPIRATION, 1), (METADATA_TABLE_ENCRYPTION_CONFIGURATION, 0)), +) + +METADATA_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MC, + 0, + (_JTC, _ITC, _ATC), + ( + (JOURNAL_TABLE_CONFIGURATION, 1), + (INVENTORY_TABLE_CONFIGURATION, 0), + (ANNOTATION_TABLE_CONFIGURATION, 0), + ), +) + +CREATE_BUCKET_METADATA_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _CBMCI, + {_sSI: _cCBMCR, _s: None}, + (_B, _CMDo, _CA, _MC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (METADATA_CONFIGURATION, {_sN: _MC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +CREATE_BUCKET_METADATA_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CBMCO, + {_sSI: _sU, _smi: None}, +) + +CREATE_BUCKET_METADATA_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _CBMC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "POST", "uri": "/?metadataConfiguration", "code": 200} + ), + }, + CREATE_BUCKET_METADATA_CONFIGURATION_INPUT, + CREATE_BUCKET_METADATA_CONFIGURATION_OUTPUT, + (), +) + +S3_TABLES_BUCKET_ARN: StaticSchema = (3, n0, _STBA, 0) + +S3_TABLES_NAME: StaticSchema = (3, n0, _STN, 0) + +S3_TABLES_DESTINATION: StaticSchema = ( + 18, + n0, + _STD, + 0, + (_TBA, _TN), + ((S3_TABLES_BUCKET_ARN, 1), (S3_TABLES_NAME, 1)), +) + +METADATA_TABLE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MTC, + 0, + (_STD,), + ((S3_TABLES_DESTINATION, 1),), +) + +CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _CBMTCI, + {_sSI: _cCBMTCR, _s: None}, + (_B, _CMDo, _CA, _MTC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (METADATA_TABLE_CONFIGURATION, {_sN: _MTC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _CBMTCO, + {_sSI: _sU, _smi: None}, +) + +CREATE_BUCKET_METADATA_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _CBMTC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "POST", "uri": "/?metadataTable", "code": 200} + ), + }, + CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT, + CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT, + (), +) + +CREATE_MULTIPART_UPLOAD_INPUT: StaticSchema = ( + 18, + n0, + _CMUIr, + {_sSI: _cCMURo, _s: None}, + ( + _ACL_, + _B, + _CC, + _CD, + _CE, + _CL, + _CTo, + _Exp, + _GFC, + _GR, + _GRACP, + _GWACP, + _K, + _M, + _SSE, + _SC, + _WRL, + _SSECA, + _SSECK, + _SSECKMD, + _SSEKMSKI, + _SSEKMSEC, + _BKE, + _RP, + _Ta, + _OLM, + _OLRUD, + _OLLHS, + _OLEH, + _OLEHDD, + _OLEHDY, + _EBO, + _CA, + _CT, + ), + ( + (OBJECT_CANNED_ACL, {_sH: _xaa}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CACHE_CONTROL, {_sH: _CC_}), + (CONTENT_DISPOSITION, {_sH: _CD_}), + (CONTENT_ENCODING, {_sH: _CE_}), + (CONTENT_LANGUAGE, {_sH: _CL_}), + (CONTENT_TYPE, {_sH: _CT_}), + (EXPIRES, {_sH: _Exp}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (METADATA, {_sPH: _xam}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (STORAGE_CLASS, {_sH: _xasc}), + (WEBSITE_REDIRECT_LOCATION, {_sH: _xawrl}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_PAYER, {_sH: _xarp}), + (TAGGING_HEADER, {_sH: _xat}), + (OBJECT_LOCK_MODE, {_sH: _xaolm}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xaolrud}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xaollh}), + (OBJECT_LOCK_EVENT_HOLD, {_sH: _xaoleh}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS, {_sH: _xaolehdd}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS, {_sH: _xaolehdy}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_ALGORITHM, {_sH: _xaca}), + (CHECKSUM_TYPE, {_sH: _xact}), + ), +) + +CREATE_MULTIPART_UPLOAD_OUTPUT: StaticSchema = ( + 18, + n0, + _CMUOr, + {_sN: _IMUR, _smi: None}, + ( + _AD, + _ARI, + _B, + _K, + _UI, + _SSE, + _SSECA, + _SSECKMD, + _SSEKMSKI, + _SSEKMSEC, + _BKE, + _RC, + _CA, + _CT, + ), + ( + (ABORT_DATE, {_sH: _xaad}), + (ABORT_RULE_ID, {_sH: _xaari}), + (BUCKET_NAME, {_sN: _B}), + (OBJECT_KEY, 0), + (MULTIPART_UPLOAD_ID, 0), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_CHARGED, {_sH: _xarc}), + (CHECKSUM_ALGORITHM, {_sH: _xaca}), + (CHECKSUM_TYPE, {_sH: _xact}), + ), +) + +CREATE_MULTIPART_UPLOAD: StaticOperationSchema = ( + 23, + n0, + _CMUr, + { + _smith: MappingProxyType( + {"method": "POST", "uri": "/{Key+}?uploads", "code": 200} + ) + }, + CREATE_MULTIPART_UPLOAD_INPUT, + CREATE_MULTIPART_UPLOAD_OUTPUT, + (), +) + +SESSION_MODE: StaticSchema = ( + 14, + n0, + _SM, + 0, + (_RO, _RW), + ((-1, {_sV: _RO}), (-1, {_sV: _RW})), +) + +CREATE_SESSION_INPUT: StaticSchema = ( + 18, + n0, + _CSI, + {_sSI: _cCSR, _s: None}, + (_SM, _B, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE), + ( + (SESSION_MODE, {_sH: _xacsm}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + ), +) + +SESSION_EXPIRATION: StaticSchema = (4, n0, _SE, 0) + +SESSION_CREDENTIAL_VALUE: StaticSchema = (3, n0, _SCV, 4) + +SESSION_CREDENTIALS: StaticSchema = ( + 18, + n0, + _SCe, + 0, + (_AKI, _SAK, _ST, _Ex), + ( + (ACCESS_KEY_ID_VALUE, {_sN: _AKI, _sm: None}), + (SESSION_CREDENTIAL_VALUE, {_sN: _SAK, _sm: None}), + (SESSION_CREDENTIAL_VALUE, {_sN: _ST, _sm: None}), + (SESSION_EXPIRATION, {_sN: _Ex, _sm: None}), + ), +) + +CREATE_SESSION_OUTPUT: StaticSchema = ( + 18, + n0, + _CSO, + {_sN: _CSR, _smi: None}, + (_SSE, _SSEKMSKI, _SSEKMSEC, _BKE, _C), + ( + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (SESSION_CREDENTIALS, {_sN: _C, _sm: None}), + ), +) + +NO_SUCH_BUCKET: StaticSchema = (18, n0, _NSB, {_smit: _c, _sE: 404}) + +CREATE_SESSION: StaticOperationSchema = ( + 23, + n0, + _CSr, + { + _sCP: MappingProxyType( + {"DisableS3ExpressSessionAuth": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?session", "code": 200}), + }, + CREATE_SESSION_INPUT, + CREATE_SESSION_OUTPUT, + (NO_SUCH_BUCKET,), +) + +DELETE_BUCKET_INPUT: StaticSchema = ( + 18, + n0, + _DBI, + {_sSI: _cDBR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_OUTPUT: StaticSchema = (18, n0, _DBO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET: StaticOperationSchema = ( + 23, + n0, + _DB, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/", "code": 204}), + }, + DELETE_BUCKET_INPUT, + DELETE_BUCKET_OUTPUT, + (), +) + +ANALYTICS_ID: StaticSchema = (3, n0, _AIn, 0) + +DELETE_BUCKET_ANALYTICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBACI, + {_sSI: _cDBACR, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ANALYTICS_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBACO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_ANALYTICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBAC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?analytics", "code": 204} + ), + }, + DELETE_BUCKET_ANALYTICS_CONFIGURATION_INPUT, + DELETE_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT, + (), +) + +DELETE_BUCKET_CORS_INPUT: StaticSchema = ( + 18, + n0, + _DBCI, + {_sSI: _cDBCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_CORS_OUTPUT: StaticSchema = (18, n0, _DBCO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_CORS: StaticOperationSchema = ( + 23, + n0, + _DBC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/?cors", "code": 204}), + }, + DELETE_BUCKET_CORS_INPUT, + DELETE_BUCKET_CORS_OUTPUT, + (), +) + +DELETE_BUCKET_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _DBEI, + {_sSI: _cDBER, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_ENCRYPTION_OUTPUT: StaticSchema = (18, n0, _DBEO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _DBE, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?encryption", "code": 204} + ), + }, + DELETE_BUCKET_ENCRYPTION_INPUT, + DELETE_BUCKET_ENCRYPTION_OUTPUT, + (), +) + +INTELLIGENT_TIERING_ID: StaticSchema = (3, n0, _ITI, 0) + +DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBITCI, + {_sSI: _cDBITCR, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INTELLIGENT_TIERING_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBITCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBITC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?intelligent-tiering", "code": 204} + ), + }, + DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT, + DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT, + (), +) + +INVENTORY_ID: StaticSchema = (3, n0, _II, 0) + +DELETE_BUCKET_INVENTORY_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBICI, + {_sSI: _cDBICR, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INVENTORY_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_INVENTORY_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBICO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_INVENTORY_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBIC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?inventory", "code": 204} + ), + }, + DELETE_BUCKET_INVENTORY_CONFIGURATION_INPUT, + DELETE_BUCKET_INVENTORY_CONFIGURATION_OUTPUT, + (), +) + +DELETE_BUCKET_LIFECYCLE_INPUT: StaticSchema = ( + 18, + n0, + _DBLI, + {_sSI: _cDBLR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_LIFECYCLE_OUTPUT: StaticSchema = (18, n0, _DBLO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_LIFECYCLE: StaticOperationSchema = ( + 23, + n0, + _DBL, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?lifecycle", "code": 204} + ), + }, + DELETE_BUCKET_LIFECYCLE_INPUT, + DELETE_BUCKET_LIFECYCLE_OUTPUT, + (), +) + +DELETE_BUCKET_METADATA_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBMCI, + {_sSI: _cDBMCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_METADATA_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBMCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_METADATA_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBMC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?metadataConfiguration", "code": 204} + ), + }, + DELETE_BUCKET_METADATA_CONFIGURATION_INPUT, + DELETE_BUCKET_METADATA_CONFIGURATION_OUTPUT, + (), +) + +DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBMTCI, + {_sSI: _cDBMTCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBMTCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_METADATA_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBMTC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?metadataTable", "code": 204} + ), + }, + DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT, + DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT, + (), +) + +METRICS_ID: StaticSchema = (3, n0, _MI, 0) + +DELETE_BUCKET_METRICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _DBMCIe, + {_sSI: _cDBMCRo, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (METRICS_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_METRICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBMCOe, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_METRICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _DBMCe, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/?metrics", "code": 204}), + }, + DELETE_BUCKET_METRICS_CONFIGURATION_INPUT, + DELETE_BUCKET_METRICS_CONFIGURATION_OUTPUT, + (), +) + +DELETE_BUCKET_OWNERSHIP_CONTROLS_INPUT: StaticSchema = ( + 18, + n0, + _DBOCI, + {_sSI: _cDBOCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_OWNERSHIP_CONTROLS_OUTPUT: StaticSchema = ( + 18, + n0, + _DBOCO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_OWNERSHIP_CONTROLS: StaticOperationSchema = ( + 23, + n0, + _DBOC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?ownershipControls", "code": 204} + ), + }, + DELETE_BUCKET_OWNERSHIP_CONTROLS_INPUT, + DELETE_BUCKET_OWNERSHIP_CONTROLS_OUTPUT, + (), +) + +DELETE_BUCKET_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _DBPI, + {_sSI: _cDBPR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_POLICY_OUTPUT: StaticSchema = (18, n0, _DBPO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_POLICY: StaticOperationSchema = ( + 23, + n0, + _DBP, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/?policy", "code": 204}), + }, + DELETE_BUCKET_POLICY_INPUT, + DELETE_BUCKET_POLICY_OUTPUT, + (), +) + +DELETE_BUCKET_REPLICATION_INPUT: StaticSchema = ( + 18, + n0, + _DBRI, + {_sSI: _cDBRR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_REPLICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DBRO, + {_sSI: _sU, _smi: None}, +) + +DELETE_BUCKET_REPLICATION: StaticOperationSchema = ( + 23, + n0, + _DBR, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?replication", "code": 204} + ), + }, + DELETE_BUCKET_REPLICATION_INPUT, + DELETE_BUCKET_REPLICATION_OUTPUT, + (), +) + +DELETE_BUCKET_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _DBTI, + {_sSI: _cDBTR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_TAGGING_OUTPUT: StaticSchema = (18, n0, _DBTO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_TAGGING: StaticOperationSchema = ( + 23, + n0, + _DBT, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/?tagging", "code": 204}), + }, + DELETE_BUCKET_TAGGING_INPUT, + DELETE_BUCKET_TAGGING_OUTPUT, + (), +) + +DELETE_BUCKET_WEBSITE_INPUT: StaticSchema = ( + 18, + n0, + _DBWI, + {_sSI: _cDBWR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_BUCKET_WEBSITE_OUTPUT: StaticSchema = (18, n0, _DBWO, {_sSI: _sU, _smi: None}) + +DELETE_BUCKET_WEBSITE: StaticOperationSchema = ( + 23, + n0, + _DBW, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "DELETE", "uri": "/?website", "code": 204}), + }, + DELETE_BUCKET_WEBSITE_INPUT, + DELETE_BUCKET_WEBSITE_OUTPUT, + (), +) + +BYPASS_GOVERNANCE_RETENTION: StaticSchema = (2, n0, _BGR, 0) + +IF_MATCH_LAST_MODIFIED_TIME: StaticSchema = (4, n0, _IMLMT, {_sF: _hd}) + +IF_MATCH_SIZE: StaticSchema = (8, n0, _IMS, 0) + +MFA: StaticSchema = (3, n0, _MFA, 0) + +DELETE_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _DOI, + {_sSI: _cDOR, _s: None}, + (_B, _K, _MFA, _VI, _RP, _BGR, _EBO, _IM, _IMLMT, _IMS), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (MFA, {_sH: _xam_}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (BYPASS_GOVERNANCE_RETENTION, {_sH: _xabgr}), + (ACCOUNT_ID, {_sH: _xaebo}), + (IF_MATCH, {_sH: _IM_}), + (IF_MATCH_LAST_MODIFIED_TIME, {_sH: _xaimlmt}), + (IF_MATCH_SIZE, {_sH: _xaims}), + ), +) + +DELETE_MARKER: StaticSchema = (2, n0, _DM, 0) + +DELETE_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _DOO, + {_smi: None}, + (_DM, _VI, _RC), + ( + (DELETE_MARKER, {_sH: _xadm}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +DELETE_OBJECT: StaticOperationSchema = ( + 23, + n0, + _DO, + { + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/{Key+}?x-id=DeleteObject", "code": 204} + ) + }, + DELETE_OBJECT_INPUT, + DELETE_OBJECT_OUTPUT, + (), +) + +ANNOTATION_NAME: StaticSchema = (3, n0, _AN, 0) + +OBJECT_IF_MATCH: StaticSchema = (3, n0, _OIM, 0) + +DELETE_OBJECT_ANNOTATION_INPUT: StaticSchema = ( + 18, + n0, + _DOAI, + {_sSI: _cDOAR, _s: None}, + (_B, _K, _AN, _VI, _RP, _EBO, _OIM), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (ANNOTATION_NAME, {_sQ: _aN, _sm: None}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (OBJECT_IF_MATCH, {_sH: _xaoim}), + ), +) + +DELETE_OBJECT_ANNOTATION_OUTPUT: StaticSchema = ( + 18, + n0, + _DOAO, + {_smi: None}, + (_OVI, _RC), + ((OBJECT_VERSION_ID, {_sH: _xaovi}), (REQUEST_CHARGED, {_sH: _xarc})), +) + +NO_SUCH_KEY: StaticSchema = (18, n0, _NSK, {_smit: _c, _sE: 404}) + +DELETE_OBJECT_ANNOTATION: StaticOperationSchema = ( + 23, + n0, + _DOA, + { + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/{Key+}?annotation", "code": 204} + ) + }, + DELETE_OBJECT_ANNOTATION_INPUT, + DELETE_OBJECT_ANNOTATION_OUTPUT, + (NO_SUCH_BUCKET, NO_SUCH_KEY), +) + +LAST_MODIFIED_TIME: StaticSchema = (4, n0, _LMT, {_sF: _hd}) + +SIZE: StaticSchema = (8, n0, _Si, 0) + +OBJECT_IDENTIFIER: StaticSchema = ( + 18, + n0, + _OIb, + 0, + (_K, _VI, _ET, _LMT, _Si), + ( + (OBJECT_KEY, 1), + (OBJECT_VERSION_ID, 0), + (E_TAG, 0), + (LAST_MODIFIED_TIME, 0), + (SIZE, 0), + ), +) + +OBJECT_IDENTIFIER_LIST: StaticSchema = ( + 16, + n0, + _OIL, + 0, + (_m,), + ((OBJECT_IDENTIFIER, 0),), +) + +QUIET: StaticSchema = (2, n0, _Q, 0) + +DELETE: StaticSchema = ( + 18, + n0, + _Del, + 0, + (_Ob, _Q), + ((OBJECT_IDENTIFIER_LIST, {_sN: _Obj, _sFm: None, _sm: None}), (QUIET, 0)), +) + +DELETE_OBJECTS_INPUT: StaticSchema = ( + 18, + n0, + _DOIe, + {_sSI: _cDORo, _s: None}, + (_B, _Del, _MFA, _RP, _BGR, _EBO, _CA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (DELETE, {_sN: _Del, _sm: None, _sPm: None}), + (MFA, {_sH: _xam_}), + (REQUEST_PAYER, {_sH: _xarp}), + (BYPASS_GOVERNANCE_RETENTION, {_sH: _xabgr}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + ), +) + +DELETE_MARKER_VERSION_ID: StaticSchema = (3, n0, _DMVI, 0) + +DELETED_OBJECT: StaticSchema = ( + 18, + n0, + _DOe, + 0, + (_K, _VI, _DM, _DMVI), + ( + (OBJECT_KEY, 0), + (OBJECT_VERSION_ID, 0), + (DELETE_MARKER, 0), + (DELETE_MARKER_VERSION_ID, 0), + ), +) + +DELETED_OBJECTS: StaticSchema = (16, n0, _DOel, 0, (_m,), ((DELETED_OBJECT, 0),)) + +CODE: StaticSchema = (3, n0, _Co, 0) + +MESSAGE: StaticSchema = (3, n0, _Me, 0) + +ERROR: StaticSchema = ( + 18, + n0, + _Er, + 0, + (_K, _VI, _Co, _Me), + ((OBJECT_KEY, 0), (OBJECT_VERSION_ID, 0), (CODE, 0), (MESSAGE, 0)), +) + +ERRORS: StaticSchema = (16, n0, _Err, 0, (_m,), ((ERROR, 0),)) + +DELETE_OBJECTS_OUTPUT: StaticSchema = ( + 18, + n0, + _DOOe, + {_sN: _DRe, _smi: None}, + (_Dele, _RC, _Err), + ( + (DELETED_OBJECTS, {_sFm: None}), + (REQUEST_CHARGED, {_sH: _xarc}), + (ERRORS, {_sN: _Er, _sFm: None}), + ), +) + +DELETE_OBJECTS: StaticOperationSchema = ( + 23, + n0, + _DOele, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType({"method": "POST", "uri": "/?delete", "code": 200}), + }, + DELETE_OBJECTS_INPUT, + DELETE_OBJECTS_OUTPUT, + (), +) + +DELETE_OBJECT_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _DOTI, + {_sSI: _cDOTR, _s: None}, + (_B, _K, _VI, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_OBJECT_TAGGING_OUTPUT: StaticSchema = ( + 18, + n0, + _DOTO, + {_smi: None}, + (_VI,), + ((OBJECT_VERSION_ID, {_sH: _xavi}),), +) + +DELETE_OBJECT_TAGGING: StaticOperationSchema = ( + 23, + n0, + _DOT, + { + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/{Key+}?tagging", "code": 204} + ) + }, + DELETE_OBJECT_TAGGING_INPUT, + DELETE_OBJECT_TAGGING_OUTPUT, + (), +) + +DELETE_PUBLIC_ACCESS_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _DPABI, + {_sSI: _cDPABR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_PUBLIC_ACCESS_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _DPABO, + {_sSI: _sU, _smi: None}, +) + +DELETE_PUBLIC_ACCESS_BLOCK: StaticOperationSchema = ( + 23, + n0, + _DPAB, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "DELETE", "uri": "/?publicAccessBlock", "code": 204} + ), + }, + DELETE_PUBLIC_ACCESS_BLOCK_INPUT, + DELETE_PUBLIC_ACCESS_BLOCK_OUTPUT, + (), +) + +GET_BUCKET_ABAC_INPUT: StaticSchema = ( + 18, + n0, + _GBAI, + {_sSI: _cGBAR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_BUCKET_ABAC_OUTPUT: StaticSchema = ( + 18, + n0, + _GBAO, + {_smi: None}, + (_AS,), + ((ABAC_STATUS, 16),), +) + +GET_BUCKET_ABAC: StaticOperationSchema = ( + 23, + n0, + _GBA, + {_smith: MappingProxyType({"method": "GET", "uri": "/?abac", "code": 200})}, + GET_BUCKET_ABAC_INPUT, + GET_BUCKET_ABAC_OUTPUT, + (), +) + +GET_BUCKET_ACCELERATE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBACI, + {_sSI: _cGBACR, _s: None}, + (_B, _EBO, _RP), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + (REQUEST_PAYER, {_sH: _xarp}), + ), +) + +GET_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBACO, + {_sN: _AC, _smi: None}, + (_S, _RC), + ((BUCKET_ACCELERATE_STATUS, 0), (REQUEST_CHARGED, {_sH: _xarc})), +) + +GET_BUCKET_ACCELERATE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBAC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?accelerate", "code": 200}), + }, + GET_BUCKET_ACCELERATE_CONFIGURATION_INPUT, + GET_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_ACL_INPUT: StaticSchema = ( + 18, + n0, + _GBAIe, + {_sSI: _cGBARo, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_BUCKET_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _GBAOe, + {_sN: _ACP, _smi: None}, + (_O, _Gran), + ((OWNER, 0), (GRANTS, {_sN: _ACL})), +) + +GET_BUCKET_ACL: StaticOperationSchema = ( + 23, + n0, + _GBAe, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?acl", "code": 200}), + }, + GET_BUCKET_ACL_INPUT, + GET_BUCKET_ACL_OUTPUT, + (), +) + +GET_BUCKET_ANALYTICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBACIe, + {_sSI: _cGBACRo, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ANALYTICS_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PREFIX: StaticSchema = (3, n0, _Pr, 0) + +ANALYTICS_AND_OPERATOR: StaticSchema = ( + 18, + n0, + _AAO, + 0, + (_Pr, _Tags), + ((PREFIX, 0), (TAG_SET, {_sN: _Tag, _sFm: None})), +) + +ANALYTICS_FILTER: StaticSchema = ( + 19, + n0, + _AF, + 0, + (_Pr, _Tag, _A), + ((PREFIX, 0), (TAG, 0), (ANALYTICS_AND_OPERATOR, 0)), +) + +ANALYTICS_S3_EXPORT_FILE_FORMAT: StaticSchema = ( + 14, + n0, + _ASEFF, + 0, + (_CSV,), + ((-1, {_sV: _CSV}),), +) + +ANALYTICS_S3_BUCKET_DESTINATION: StaticSchema = ( + 18, + n0, + _ASBD, + 0, + (_F, _BAI, _B, _Pr), + ( + (ANALYTICS_S3_EXPORT_FILE_FORMAT, 1), + (ACCOUNT_ID, 0), + (BUCKET_NAME, 1), + (PREFIX, 0), + ), +) + +ANALYTICS_EXPORT_DESTINATION: StaticSchema = ( + 18, + n0, + _AED, + 0, + (_SBD,), + ((ANALYTICS_S3_BUCKET_DESTINATION, 1),), +) + +STORAGE_CLASS_ANALYSIS_SCHEMA_VERSION: StaticSchema = ( + 14, + n0, + _SCASV, + 0, + (_V_,), + ((-1, {_sV: _V_}),), +) + +STORAGE_CLASS_ANALYSIS_DATA_EXPORT: StaticSchema = ( + 18, + n0, + _SCADE, + 0, + (_OSV, _De), + ((STORAGE_CLASS_ANALYSIS_SCHEMA_VERSION, 1), (ANALYTICS_EXPORT_DESTINATION, 1)), +) + +STORAGE_CLASS_ANALYSIS: StaticSchema = ( + 18, + n0, + _SCA, + 0, + (_DE,), + ((STORAGE_CLASS_ANALYSIS_DATA_EXPORT, 0),), +) + +ANALYTICS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ACn, + 0, + (_I, _Fi, _SCA), + ((ANALYTICS_ID, 1), (ANALYTICS_FILTER, 0), (STORAGE_CLASS_ANALYSIS, 1)), +) + +GET_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBACOe, + {_smi: None}, + (_ACn,), + ((ANALYTICS_CONFIGURATION, 16),), +) + +GET_BUCKET_ANALYTICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBACe, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?analytics&x-id=GetBucketAnalyticsConfiguration", + "code": 200, + } + ), + }, + GET_BUCKET_ANALYTICS_CONFIGURATION_INPUT, + GET_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_CORS_INPUT: StaticSchema = ( + 18, + n0, + _GBCI, + {_sSI: _cGBCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +EXPOSE_HEADER: StaticSchema = (3, n0, _EH, 0) + +EXPOSE_HEADERS: StaticSchema = (16, n0, _EHx, 0, (_m,), ((EXPOSE_HEADER, 0),)) + +MAX_AGE_SECONDS: StaticSchema = (7, n0, _MAS, 0) + +CORS_RULE: StaticSchema = ( + 18, + n0, + _CORSR, + 0, + (_ID, _AHl, _AMl, _AOl, _EHx, _MAS), + ( + (ID, 0), + (ALLOWED_HEADERS, {_sN: _AH, _sFm: None}), + (ALLOWED_METHODS, {_sN: _AM, _sFm: None, _sm: None}), + (ALLOWED_ORIGINS, {_sN: _AO, _sFm: None, _sm: None}), + (EXPOSE_HEADERS, {_sN: _EH, _sFm: None}), + (MAX_AGE_SECONDS, 0), + ), +) + +CORS_RULES: StaticSchema = (16, n0, _CORSRu, 0, (_m,), ((CORS_RULE, 0),)) + +GET_BUCKET_CORS_OUTPUT: StaticSchema = ( + 18, + n0, + _GBCO, + {_sN: _CORSC, _smi: None}, + (_CORSRu,), + ((CORS_RULES, {_sN: _CORSR, _sFm: None}),), +) + +GET_BUCKET_CORS: StaticOperationSchema = ( + 23, + n0, + _GBC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?cors", "code": 200}), + }, + GET_BUCKET_CORS_INPUT, + GET_BUCKET_CORS_OUTPUT, + (), +) + +GET_BUCKET_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _GBEI, + {_sSI: _cGBER, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +SERVER_SIDE_ENCRYPTION_BY_DEFAULT: StaticSchema = ( + 18, + n0, + _SSEBD, + 0, + (_SSEA, _KMSMKID), + ((SERVER_SIDE_ENCRYPTION, 1), (SSEKMS_KEY_ID, 0)), +) + +ENCRYPTION_TYPE: StaticSchema = ( + 14, + n0, + _ETn, + 0, + (_NONE, _SC_), + ((-1, {_sV: _NONE}), (-1, {_sV: _SC__})), +) + +ENCRYPTION_TYPE_LIST: StaticSchema = ( + 16, + n0, + _ETL, + 0, + (_m,), + ((ENCRYPTION_TYPE, {_sN: _ETn}),), +) + +BLOCKED_ENCRYPTION_TYPES: StaticSchema = ( + 18, + n0, + _BET, + 0, + (_ETn,), + ((ENCRYPTION_TYPE_LIST, {_sFm: None}),), +) + +SERVER_SIDE_ENCRYPTION_RULE: StaticSchema = ( + 18, + n0, + _SSER, + 0, + (_ASSEBD, _BKE, _BET), + ( + (SERVER_SIDE_ENCRYPTION_BY_DEFAULT, 0), + (BUCKET_KEY_ENABLED, 0), + (BLOCKED_ENCRYPTION_TYPES, 0), + ), +) + +SERVER_SIDE_ENCRYPTION_RULES: StaticSchema = ( + 16, + n0, + _SSERe, + 0, + (_m,), + ((SERVER_SIDE_ENCRYPTION_RULE, 0),), +) + +SERVER_SIDE_ENCRYPTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _SSEC, + 0, + (_Ru,), + ((SERVER_SIDE_ENCRYPTION_RULES, {_sN: _Rul, _sFm: None, _sm: None}),), +) + +GET_BUCKET_ENCRYPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBEO, + {_smi: None}, + (_SSEC,), + ((SERVER_SIDE_ENCRYPTION_CONFIGURATION, 16),), +) + +GET_BUCKET_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _GBE, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?encryption", "code": 200}), + }, + GET_BUCKET_ENCRYPTION_INPUT, + GET_BUCKET_ENCRYPTION_OUTPUT, + (), +) + +GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBITCI, + {_sSI: _cGBITCR, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INTELLIGENT_TIERING_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +INTELLIGENT_TIERING_AND_OPERATOR: StaticSchema = ( + 18, + n0, + _ITAO, + 0, + (_Pr, _Tags), + ((PREFIX, 0), (TAG_SET, {_sN: _Tag, _sFm: None})), +) + +INTELLIGENT_TIERING_FILTER: StaticSchema = ( + 18, + n0, + _ITF, + 0, + (_Pr, _Tag, _A), + ((PREFIX, 0), (TAG, 0), (INTELLIGENT_TIERING_AND_OPERATOR, 0)), +) + +INTELLIGENT_TIERING_STATUS: StaticSchema = ( + 14, + n0, + _ITS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +INTELLIGENT_TIERING_ACCESS_TIER: StaticSchema = ( + 14, + n0, + _ITAT, + 0, + (_AA, _DAA), + ((-1, {_sV: _AA}), (-1, {_sV: _DAA})), +) + +INTELLIGENT_TIERING_DAYS: StaticSchema = (7, n0, _ITD, 0) + +TIERING: StaticSchema = ( + 18, + n0, + _Ti, + 0, + (_Da, _AT), + ((INTELLIGENT_TIERING_DAYS, 1), (INTELLIGENT_TIERING_ACCESS_TIER, 1)), +) + +TIERING_LIST: StaticSchema = (16, n0, _TL, 0, (_m,), ((TIERING, 0),)) + +INTELLIGENT_TIERING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _ITCn, + 0, + (_I, _Fi, _S, _Tie), + ( + (INTELLIGENT_TIERING_ID, 1), + (INTELLIGENT_TIERING_FILTER, 0), + (INTELLIGENT_TIERING_STATUS, 1), + (TIERING_LIST, {_sN: _Ti, _sFm: None, _sm: None}), + ), +) + +GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBITCO, + {_smi: None}, + (_ITCn,), + ((INTELLIGENT_TIERING_CONFIGURATION, 16),), +) + +GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBITC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration", + "code": 200, + } + ), + }, + GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT, + GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_INVENTORY_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBICI, + {_sSI: _cGBICR, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INVENTORY_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +SSEKMS: StaticSchema = (18, n0, _SSEKMS, {_sN: _SK}, (_KI,), ((SSEKMS_KEY_ID, 1),)) + +SSES3: StaticSchema = (18, n0, _SSES, {_sN: _SS}) + +INVENTORY_ENCRYPTION: StaticSchema = ( + 18, + n0, + _IE, + 0, + (_SSES, _SSEKMS), + ((SSES3, {_sN: _SS}), (SSEKMS, {_sN: _SK})), +) + +INVENTORY_FORMAT: StaticSchema = ( + 14, + n0, + _IF, + 0, + (_CSV, _ORC, _Parq), + ((-1, {_sV: _CSV}), (-1, {_sV: _ORC}), (-1, {_sV: _Parq})), +) + +INVENTORY_S3_BUCKET_DESTINATION: StaticSchema = ( + 18, + n0, + _ISBD, + 0, + (_AI, _B, _F, _Pr, _En), + ( + (ACCOUNT_ID, 0), + (BUCKET_NAME, 1), + (INVENTORY_FORMAT, 1), + (PREFIX, 0), + (INVENTORY_ENCRYPTION, 0), + ), +) + +INVENTORY_DESTINATION: StaticSchema = ( + 18, + n0, + _IDn, + 0, + (_SBD,), + ((INVENTORY_S3_BUCKET_DESTINATION, 1),), +) + +INVENTORY_FILTER: StaticSchema = (18, n0, _IFn, 0, (_Pr,), ((PREFIX, 1),)) + +INVENTORY_INCLUDED_OBJECT_VERSIONS: StaticSchema = ( + 14, + n0, + _IIOV, + 0, + (_Al, _Cu), + ((-1, {_sV: _Al}), (-1, {_sV: _Cu})), +) + +IS_ENABLED: StaticSchema = (2, n0, _IEs, 0) + +INVENTORY_OPTIONAL_FIELD: StaticSchema = ( + 14, + n0, + _IOF, + 0, + ( + _Si, + _LMD, + _SC, + _ET, + _IMU, + _RS, + _ESn, + _OLRUD, + _OLM, + _OLLHS, + _OLEHS, + _OLEHD, + _ITAT, + _BKS, + _CA, + _OACL, + _OObj, + _LED, + _ITRD, + ), + ( + (-1, {_sV: _Si}), + (-1, {_sV: _LMD}), + (-1, {_sV: _SC}), + (-1, {_sV: _ET}), + (-1, {_sV: _IMU}), + (-1, {_sV: _RS}), + (-1, {_sV: _ESn}), + (-1, {_sV: _OLRUD}), + (-1, {_sV: _OLM}), + (-1, {_sV: _OLLHS}), + (-1, {_sV: _OLEHS}), + (-1, {_sV: _OLEHD}), + (-1, {_sV: _ITAT}), + (-1, {_sV: _BKS}), + (-1, {_sV: _CA}), + (-1, {_sV: _OACL}), + (-1, {_sV: _OObj}), + (-1, {_sV: _LED}), + (-1, {_sV: _ITRD}), + ), +) + +INVENTORY_OPTIONAL_FIELDS: StaticSchema = ( + 16, + n0, + _IOFn, + 0, + (_m,), + ((INVENTORY_OPTIONAL_FIELD, {_sN: _Fie}),), +) + +INVENTORY_FREQUENCY: StaticSchema = ( + 14, + n0, + _IFnv, + 0, + (_Dai, _W), + ((-1, {_sV: _Dai}), (-1, {_sV: _W})), +) + +INVENTORY_SCHEDULE: StaticSchema = (18, n0, _IS, 0, (_Fr,), ((INVENTORY_FREQUENCY, 1),)) + +INVENTORY_CONFIGURATION: StaticSchema = ( + 18, + n0, + _IC, + 0, + (_De, _IEs, _Fi, _I, _IOV, _OF, _Sc), + ( + (INVENTORY_DESTINATION, 1), + (IS_ENABLED, 1), + (INVENTORY_FILTER, 0), + (INVENTORY_ID, 1), + (INVENTORY_INCLUDED_OBJECT_VERSIONS, 1), + (INVENTORY_OPTIONAL_FIELDS, 0), + (INVENTORY_SCHEDULE, 1), + ), +) + +GET_BUCKET_INVENTORY_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBICO, + {_smi: None}, + (_IC,), + ((INVENTORY_CONFIGURATION, 16),), +) + +GET_BUCKET_INVENTORY_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBIC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?inventory&x-id=GetBucketInventoryConfiguration", + "code": 200, + } + ), + }, + GET_BUCKET_INVENTORY_CONFIGURATION_INPUT, + GET_BUCKET_INVENTORY_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_LIFECYCLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBLCI, + {_sSI: _cGBLCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DATE: StaticSchema = (4, n0, _Dat, {_sF: _dt}) + +DAYS: StaticSchema = (7, n0, _Da, 0) + +EXPIRED_OBJECT_DELETE_MARKER: StaticSchema = (2, n0, _EODM, 0) + +LIFECYCLE_EXPIRATION: StaticSchema = ( + 18, + n0, + _LE, + 0, + (_Dat, _Da, _EODM), + ((DATE, 0), (DAYS, 0), (EXPIRED_OBJECT_DELETE_MARKER, 0)), +) + +OBJECT_SIZE_GREATER_THAN_BYTES: StaticSchema = (8, n0, _OSGTB, 0) + +OBJECT_SIZE_LESS_THAN_BYTES: StaticSchema = (8, n0, _OSLTB, 0) + +LIFECYCLE_RULE_AND_OPERATOR: StaticSchema = ( + 18, + n0, + _LRAO, + 0, + (_Pr, _Tags, _OSGT, _OSLT), + ( + (PREFIX, 0), + (TAG_SET, {_sN: _Tag, _sFm: None}), + (OBJECT_SIZE_GREATER_THAN_BYTES, 0), + (OBJECT_SIZE_LESS_THAN_BYTES, 0), + ), +) + +LIFECYCLE_RULE_FILTER: StaticSchema = ( + 18, + n0, + _LRF, + 0, + (_Pr, _Tag, _OSGT, _OSLT, _A), + ( + (PREFIX, 0), + (TAG, 0), + (OBJECT_SIZE_GREATER_THAN_BYTES, 0), + (OBJECT_SIZE_LESS_THAN_BYTES, 0), + (LIFECYCLE_RULE_AND_OPERATOR, 0), + ), +) + +VERSION_COUNT: StaticSchema = (7, n0, _VC, 0) + +NONCURRENT_VERSION_EXPIRATION: StaticSchema = ( + 18, + n0, + _NVE, + 0, + (_ND, _NNV), + ((DAYS, 0), (VERSION_COUNT, 0)), +) + +TRANSITION_STORAGE_CLASS: StaticSchema = ( + 14, + n0, + _TSC, + 0, + (_GLACIER, _SI, _OI, _IT, _DA, _GI), + ( + (-1, {_sV: _GLACIER}), + (-1, {_sV: _SI}), + (-1, {_sV: _OI}), + (-1, {_sV: _IT}), + (-1, {_sV: _DA}), + (-1, {_sV: _GI}), + ), +) + +NONCURRENT_VERSION_TRANSITION: StaticSchema = ( + 18, + n0, + _NVT, + 0, + (_ND, _SC, _NNV), + ((DAYS, 0), (TRANSITION_STORAGE_CLASS, 0), (VERSION_COUNT, 0)), +) + +NONCURRENT_VERSION_TRANSITION_LIST: StaticSchema = ( + 16, + n0, + _NVTL, + 0, + (_m,), + ((NONCURRENT_VERSION_TRANSITION, 0),), +) + +EXPIRATION_STATUS: StaticSchema = ( + 14, + n0, + _ESx, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +TRANSITION: StaticSchema = ( + 18, + n0, + _Tr, + 0, + (_Dat, _Da, _SC), + ((DATE, 0), (DAYS, 0), (TRANSITION_STORAGE_CLASS, 0)), +) + +TRANSITION_LIST: StaticSchema = (16, n0, _TLr, 0, (_m,), ((TRANSITION, 0),)) + +LIFECYCLE_RULE: StaticSchema = ( + 18, + n0, + _LR, + 0, + (_Ex, _ID, _Pr, _Fi, _S, _Tra, _NVTo, _NVE, _AIMU), + ( + (LIFECYCLE_EXPIRATION, 0), + (ID, 0), + (PREFIX, 0), + (LIFECYCLE_RULE_FILTER, 0), + (EXPIRATION_STATUS, 1), + (TRANSITION_LIST, {_sN: _Tr, _sFm: None}), + (NONCURRENT_VERSION_TRANSITION_LIST, {_sN: _NVT, _sFm: None}), + (NONCURRENT_VERSION_EXPIRATION, 0), + (ABORT_INCOMPLETE_MULTIPART_UPLOAD, 0), + ), +) + +LIFECYCLE_RULES: StaticSchema = (16, n0, _LRi, 0, (_m,), ((LIFECYCLE_RULE, 0),)) + +TRANSITION_DEFAULT_MINIMUM_OBJECT_SIZE: StaticSchema = ( + 14, + n0, + _TDMOS, + 0, + (_vbsc, _asc), + ((-1, {_sV: _vbsc}), (-1, {_sV: _asc})), +) + +GET_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBLCO, + {_sN: _LCi, _smi: None}, + (_Ru, _TDMOS), + ( + (LIFECYCLE_RULES, {_sN: _Rul, _sFm: None}), + (TRANSITION_DEFAULT_MINIMUM_OBJECT_SIZE, {_sH: _xatdmos}), + ), +) + +GET_BUCKET_LIFECYCLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBLC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?lifecycle", "code": 200}), + }, + GET_BUCKET_LIFECYCLE_CONFIGURATION_INPUT, + GET_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_LOCATION_INPUT: StaticSchema = ( + 18, + n0, + _GBLI, + {_sSI: _cGBLR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_BUCKET_LOCATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBLO, + {_sN: _LC, _smi: None}, + (_LC,), + ((BUCKET_LOCATION_CONSTRAINT, 0),), +) + +GET_BUCKET_LOCATION: StaticOperationSchema = ( + 23, + n0, + _GBL, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?location", "code": 200}), + }, + GET_BUCKET_LOCATION_INPUT, + GET_BUCKET_LOCATION_OUTPUT, + (), +) + +GET_BUCKET_LOGGING_INPUT: StaticSchema = ( + 18, + n0, + _GBLIe, + {_sSI: _cGBLRo, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +TARGET_BUCKET: StaticSchema = (3, n0, _TB, 0) + +BUCKET_LOGS_PERMISSION: StaticSchema = ( + 14, + n0, + _BLP, + 0, + (_FC, _READ, _WRITE), + ((-1, {_sV: _FC}), (-1, {_sV: _READ}), (-1, {_sV: _WRITE})), +) + +TARGET_GRANT: StaticSchema = ( + 18, + n0, + _TG, + 0, + (_Gr, _P), + ( + ( + GRANTEE, + { + _sNm: MappingProxyType( + { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi", + } + ) + }, + ), + (BUCKET_LOGS_PERMISSION, 0), + ), +) + +TARGET_GRANTS: StaticSchema = (16, n0, _TGa, 0, (_m,), ((TARGET_GRANT, {_sN: _Gra}),)) + +PARTITION_DATE_SOURCE: StaticSchema = ( + 14, + n0, + _PDS, + 0, + (_ETv, _DT), + ((-1, {_sV: _ETv}), (-1, {_sV: _DT})), +) + +PARTITIONED_PREFIX: StaticSchema = ( + 18, + n0, + _PP, + {_sN: _PP}, + (_PDS,), + ((PARTITION_DATE_SOURCE, 0),), +) + +SIMPLE_PREFIX: StaticSchema = (18, n0, _SP, {_sN: _SP}) + +TARGET_OBJECT_KEY_FORMAT: StaticSchema = ( + 18, + n0, + _TOKF, + 0, + (_SP, _PP), + ((SIMPLE_PREFIX, {_sN: _SP}), (PARTITIONED_PREFIX, {_sN: _PP})), +) + +TARGET_PREFIX: StaticSchema = (3, n0, _TP, 0) + +LOGGING_ENABLED: StaticSchema = ( + 18, + n0, + _LEo, + 0, + (_TB, _TGa, _TP, _TOKF), + ( + (TARGET_BUCKET, 1), + (TARGET_GRANTS, 0), + (TARGET_PREFIX, 1), + (TARGET_OBJECT_KEY_FORMAT, 0), + ), +) + +GET_BUCKET_LOGGING_OUTPUT: StaticSchema = ( + 18, + n0, + _GBLOe, + {_sN: _BLS, _smi: None}, + (_LEo,), + ((LOGGING_ENABLED, 0),), +) + +GET_BUCKET_LOGGING: StaticOperationSchema = ( + 23, + n0, + _GBLe, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?logging", "code": 200}), + }, + GET_BUCKET_LOGGING_INPUT, + GET_BUCKET_LOGGING_OUTPUT, + (), +) + +GET_BUCKET_METADATA_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBMCI, + {_sSI: _cGBMCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +ERROR_CODE: StaticSchema = (3, n0, _ECr, 0) + +ERROR_MESSAGE: StaticSchema = (3, n0, _EM, 0) + +ERROR_DETAILS: StaticSchema = ( + 18, + n0, + _ED, + 0, + (_ECr, _EM), + ((ERROR_CODE, 0), (ERROR_MESSAGE, 0)), +) + +S3_TABLES_ARN: StaticSchema = (3, n0, _STA, 0) + +METADATA_TABLE_STATUS: StaticSchema = (3, n0, _MTS, 0) + +ANNOTATION_TABLE_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _ATCR, + 0, + (_CSo, _TSa, _Er, _TN, _TA, _R), + ( + (ANNOTATION_CONFIGURATION_STATE, 1), + (METADATA_TABLE_STATUS, 0), + (ERROR_DETAILS, 0), + (S3_TABLES_NAME, 0), + (S3_TABLES_ARN, 0), + (ROLE, 0), + ), +) + +S3_TABLES_BUCKET_TYPE: StaticSchema = ( + 14, + n0, + _STBT, + 0, + (_aws_, _cu), + ((-1, {_sV: _aws_}), (-1, {_sV: _cu})), +) + +S3_TABLES_NAMESPACE: StaticSchema = (3, n0, _STNa, 0) + +DESTINATION_RESULT: StaticSchema = ( + 18, + n0, + _DRes, + 0, + (_TBT, _TBA, _TNa), + ((S3_TABLES_BUCKET_TYPE, 0), (S3_TABLES_BUCKET_ARN, 0), (S3_TABLES_NAMESPACE, 0)), +) + +INVENTORY_TABLE_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _ITCR, + 0, + (_CSo, _TSa, _Er, _TN, _TA), + ( + (INVENTORY_CONFIGURATION_STATE, 1), + (METADATA_TABLE_STATUS, 0), + (ERROR_DETAILS, 0), + (S3_TABLES_NAME, 0), + (S3_TABLES_ARN, 0), + ), +) + +JOURNAL_TABLE_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _JTCR, + 0, + (_TSa, _Er, _TN, _TA, _RE), + ( + (METADATA_TABLE_STATUS, 1), + (ERROR_DETAILS, 0), + (S3_TABLES_NAME, 1), + (S3_TABLES_ARN, 0), + (RECORD_EXPIRATION, 1), + ), +) + +METADATA_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _MCR, + 0, + (_DRes, _JTCR, _ITCR, _ATCR), + ( + (DESTINATION_RESULT, 1), + (JOURNAL_TABLE_CONFIGURATION_RESULT, 0), + (INVENTORY_TABLE_CONFIGURATION_RESULT, 0), + (ANNOTATION_TABLE_CONFIGURATION_RESULT, 0), + ), +) + +GET_BUCKET_METADATA_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _GBMCR, + 0, + (_MCR,), + ((METADATA_CONFIGURATION_RESULT, 1),), +) + +GET_BUCKET_METADATA_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBMCO, + {_smi: None}, + (_GBMCR,), + ((GET_BUCKET_METADATA_CONFIGURATION_RESULT, 16),), +) + +GET_BUCKET_METADATA_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBMC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?metadataConfiguration", "code": 200} + ), + }, + GET_BUCKET_METADATA_CONFIGURATION_INPUT, + GET_BUCKET_METADATA_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBMTCI, + {_sSI: _cGBMTCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +S3_TABLES_DESTINATION_RESULT: StaticSchema = ( + 18, + n0, + _STDR, + 0, + (_TBA, _TN, _TA, _TNa), + ( + (S3_TABLES_BUCKET_ARN, 1), + (S3_TABLES_NAME, 1), + (S3_TABLES_ARN, 1), + (S3_TABLES_NAMESPACE, 1), + ), +) + +METADATA_TABLE_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _MTCR, + 0, + (_STDR,), + ((S3_TABLES_DESTINATION_RESULT, 1),), +) + +GET_BUCKET_METADATA_TABLE_CONFIGURATION_RESULT: StaticSchema = ( + 18, + n0, + _GBMTCR, + 0, + (_MTCR, _S, _Er), + ( + (METADATA_TABLE_CONFIGURATION_RESULT, 1), + (METADATA_TABLE_STATUS, 1), + (ERROR_DETAILS, 0), + ), +) + +GET_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBMTCO, + {_smi: None}, + (_GBMTCR,), + ((GET_BUCKET_METADATA_TABLE_CONFIGURATION_RESULT, 16),), +) + +GET_BUCKET_METADATA_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBMTC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?metadataTable", "code": 200} + ), + }, + GET_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT, + GET_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_METRICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBMCIe, + {_sSI: _cGBMCRo, _s: None}, + (_B, _I, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (METRICS_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +METRICS_AND_OPERATOR: StaticSchema = ( + 18, + n0, + _MAO, + 0, + (_Pr, _Tags, _APAc), + ((PREFIX, 0), (TAG_SET, {_sN: _Tag, _sFm: None}), (ACCESS_POINT_ARN, 0)), +) + +METRICS_FILTER: StaticSchema = ( + 19, + n0, + _MF, + 0, + (_Pr, _Tag, _APAc, _A), + ((PREFIX, 0), (TAG, 0), (ACCESS_POINT_ARN, 0), (METRICS_AND_OPERATOR, 0)), +) + +METRICS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _MCe, + 0, + (_I, _Fi), + ((METRICS_ID, 1), (METRICS_FILTER, 0)), +) + +GET_BUCKET_METRICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBMCOe, + {_smi: None}, + (_MCe,), + ((METRICS_CONFIGURATION, 16),), +) + +GET_BUCKET_METRICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBMCe, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?metrics&x-id=GetBucketMetricsConfiguration", + "code": 200, + } + ), + }, + GET_BUCKET_METRICS_CONFIGURATION_INPUT, + GET_BUCKET_METRICS_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_NOTIFICATION_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GBNCI, + {_sSI: _cGBNCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +EVENT_BRIDGE_CONFIGURATION: StaticSchema = (18, n0, _EBC, 0) + +EVENT: StaticSchema = ( + 14, + n0, + _Ev, + 0, + ( + _sR, + _sO, + _sOP, + _sOP_, + _sOC_, + _sOC__, + _sO_, + _sOD, + _sOD_, + _sO__, + _sOP__, + _sOC___, + _sR_, + _sRO, + _sRO_, + _sRO__, + _sRO___, + _sOD__, + _sL_, + _sI, + _sOP___, + _sL__, + _sLD, + _sLD_, + _sO___, + _sOP____, + _sOD___, + _sO____, + _sOP_____, + _sOD____, + _sOP______, + ), + ( + (-1, {_sV: _sRRLO}), + (-1, {_sV: _sOC}), + (-1, {_sV: _sOCP}), + (-1, {_sV: _sOCPb}), + (-1, {_sV: _sOCC}), + (-1, {_sV: _sOCCMU}), + (-1, {_sV: _sOR}), + (-1, {_sV: _sORD}), + (-1, {_sV: _sORDMC}), + (-1, {_sV: _sORb}), + (-1, {_sV: _sORP}), + (-1, {_sV: _sORC}), + (-1, {_sV: _sRe}), + (-1, {_sV: _sROFR}), + (-1, {_sV: _sRONT}), + (-1, {_sV: _sROMT}), + (-1, {_sV: _sRORAT}), + (-1, {_sV: _sORDb}), + (-1, {_sV: _sLT}), + (-1, {_sV: _sIT}), + (-1, {_sV: _sOAP}), + (-1, {_sV: _sLE}), + (-1, {_sV: _sLED}), + (-1, {_sV: _sLEDMC}), + (-1, {_sV: _sOT}), + (-1, {_sV: _sOTP}), + (-1, {_sV: _sOTD}), + (-1, {_sV: _sOA}), + (-1, {_sV: _sOAPb}), + (-1, {_sV: _sOAD}), + (-1, {_sV: _sORPb}), + ), +) + +EVENT_LIST: StaticSchema = (16, n0, _EL, 0, (_m,), ((EVENT, 0),)) + +FILTER_RULE_NAME: StaticSchema = ( + 14, + n0, + _FRN, + 0, + (_pre, _su), + ((-1, {_sV: _pre}), (-1, {_sV: _su})), +) + +FILTER_RULE_VALUE: StaticSchema = (3, n0, _FRV, 0) + +FILTER_RULE: StaticSchema = ( + 18, + n0, + _FR, + 0, + (_N, _V), + ((FILTER_RULE_NAME, 0), (FILTER_RULE_VALUE, 0)), +) + +FILTER_RULE_LIST: StaticSchema = (16, n0, _FRL, 0, (_m,), ((FILTER_RULE, 0),)) + +S3_KEY_FILTER: StaticSchema = ( + 18, + n0, + _SKF, + 0, + (_FRi,), + ((FILTER_RULE_LIST, {_sN: _FR, _sFm: None}),), +) + +NOTIFICATION_CONFIGURATION_FILTER: StaticSchema = ( + 18, + n0, + _NCF, + 0, + (_K,), + ((S3_KEY_FILTER, {_sN: _SKe}),), +) + +NOTIFICATION_ID: StaticSchema = (3, n0, _NI, 0) + +LAMBDA_FUNCTION_ARN: StaticSchema = (3, n0, _LFA, 0) + +LAMBDA_FUNCTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _LFC, + 0, + (_I, _LFA, _Eve, _Fi), + ( + (NOTIFICATION_ID, 0), + (LAMBDA_FUNCTION_ARN, {_sN: _CF, _sm: None}), + (EVENT_LIST, {_sN: _Ev, _sFm: None, _sm: None}), + (NOTIFICATION_CONFIGURATION_FILTER, 0), + ), +) + +LAMBDA_FUNCTION_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _LFCL, + 0, + (_m,), + ((LAMBDA_FUNCTION_CONFIGURATION, 0),), +) + +QUEUE_ARN: StaticSchema = (3, n0, _QA, 0) + +QUEUE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _QC, + 0, + (_I, _QA, _Eve, _Fi), + ( + (NOTIFICATION_ID, 0), + (QUEUE_ARN, {_sN: _Qu, _sm: None}), + (EVENT_LIST, {_sN: _Ev, _sFm: None, _sm: None}), + (NOTIFICATION_CONFIGURATION_FILTER, 0), + ), +) + +QUEUE_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _QCL, + 0, + (_m,), + ((QUEUE_CONFIGURATION, 0),), +) + +TOPIC_ARN: StaticSchema = (3, n0, _TAo, 0) + +TOPIC_CONFIGURATION: StaticSchema = ( + 18, + n0, + _TC, + 0, + (_I, _TAo, _Eve, _Fi), + ( + (NOTIFICATION_ID, 0), + (TOPIC_ARN, {_sN: _To, _sm: None}), + (EVENT_LIST, {_sN: _Ev, _sFm: None, _sm: None}), + (NOTIFICATION_CONFIGURATION_FILTER, 0), + ), +) + +TOPIC_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _TCL, + 0, + (_m,), + ((TOPIC_CONFIGURATION, 0),), +) + +GET_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBNCO, + {_sSI: _cNC, _smi: None}, + (_TCo, _QCu, _LFCa, _EBC), + ( + (TOPIC_CONFIGURATION_LIST, {_sN: _TC, _sFm: None}), + (QUEUE_CONFIGURATION_LIST, {_sN: _QC, _sFm: None}), + (LAMBDA_FUNCTION_CONFIGURATION_LIST, {_sN: _CFC, _sFm: None}), + (EVENT_BRIDGE_CONFIGURATION, 0), + ), +) + +GET_BUCKET_NOTIFICATION_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GBNC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?notification", "code": 200} + ), + }, + GET_BUCKET_NOTIFICATION_CONFIGURATION_INPUT, + GET_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT, + (), +) + +GET_BUCKET_OWNERSHIP_CONTROLS_INPUT: StaticSchema = ( + 18, + n0, + _GBOCI, + {_sSI: _cGBOCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +OWNERSHIP_CONTROLS_RULE: StaticSchema = ( + 18, + n0, + _OCR, + 0, + (_OOb,), + ((OBJECT_OWNERSHIP, 1),), +) + +OWNERSHIP_CONTROLS_RULES: StaticSchema = ( + 16, + n0, + _OCRw, + 0, + (_m,), + ((OWNERSHIP_CONTROLS_RULE, 0),), +) + +OWNERSHIP_CONTROLS: StaticSchema = ( + 18, + n0, + _OC, + 0, + (_Ru,), + ((OWNERSHIP_CONTROLS_RULES, {_sN: _Rul, _sFm: None, _sm: None}),), +) + +GET_BUCKET_OWNERSHIP_CONTROLS_OUTPUT: StaticSchema = ( + 18, + n0, + _GBOCO, + {_smi: None}, + (_OC,), + ((OWNERSHIP_CONTROLS, 16),), +) + +GET_BUCKET_OWNERSHIP_CONTROLS: StaticOperationSchema = ( + 23, + n0, + _GBOC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?ownershipControls", "code": 200} + ), + }, + GET_BUCKET_OWNERSHIP_CONTROLS_INPUT, + GET_BUCKET_OWNERSHIP_CONTROLS_OUTPUT, + (), +) + +GET_BUCKET_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _GBPI, + {_sSI: _cGBPR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +POLICY: StaticSchema = (3, n0, _Po, 0) + +GET_BUCKET_POLICY_OUTPUT: StaticSchema = ( + 18, + n0, + _GBPO, + {_smi: None}, + (_Po,), + ((POLICY, 16),), +) + +GET_BUCKET_POLICY: StaticOperationSchema = ( + 23, + n0, + _GBP, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?policy", "code": 200}), + }, + GET_BUCKET_POLICY_INPUT, + GET_BUCKET_POLICY_OUTPUT, + (), +) + +GET_BUCKET_POLICY_STATUS_INPUT: StaticSchema = ( + 18, + n0, + _GBPSI, + {_sSI: _cGBPSR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +IS_PUBLIC: StaticSchema = (2, n0, _IP, 0) + +POLICY_STATUS: StaticSchema = (18, n0, _PS, 0, (_IP,), ((IS_PUBLIC, {_sN: _IP}),)) + +GET_BUCKET_POLICY_STATUS_OUTPUT: StaticSchema = ( + 18, + n0, + _GBPSO, + {_smi: None}, + (_PS,), + ((POLICY_STATUS, 16),), +) + +GET_BUCKET_POLICY_STATUS: StaticOperationSchema = ( + 23, + n0, + _GBPS, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?policyStatus", "code": 200} + ), + }, + GET_BUCKET_POLICY_STATUS_INPUT, + GET_BUCKET_POLICY_STATUS_OUTPUT, + (), +) + +GET_BUCKET_REPLICATION_INPUT: StaticSchema = ( + 18, + n0, + _GBRI, + {_sSI: _cGBRR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +DELETE_MARKER_REPLICATION_STATUS: StaticSchema = ( + 14, + n0, + _DMRS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +DELETE_MARKER_REPLICATION: StaticSchema = ( + 18, + n0, + _DMR, + 0, + (_S,), + ((DELETE_MARKER_REPLICATION_STATUS, 0),), +) + +REPLICA_KMS_KEY_ID: StaticSchema = (3, n0, _RKKID, 0) + +ENCRYPTION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _EC, + 0, + (_RKKID,), + ((REPLICA_KMS_KEY_ID, 0),), +) + +MINUTES: StaticSchema = (7, n0, _Mi, 0) + +REPLICATION_TIME_VALUE: StaticSchema = (18, n0, _RTV, 0, (_Mi,), ((MINUTES, 0),)) + +METRICS_STATUS: StaticSchema = ( + 14, + n0, + _MS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +METRICS: StaticSchema = ( + 18, + n0, + _Met, + 0, + (_S, _ETve), + ((METRICS_STATUS, 1), (REPLICATION_TIME_VALUE, 0)), +) + +REPLICATION_TIME_STATUS: StaticSchema = ( + 14, + n0, + _RTS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +REPLICATION_TIME: StaticSchema = ( + 18, + n0, + _RT, + 0, + (_S, _Tim), + ((REPLICATION_TIME_STATUS, 1), (REPLICATION_TIME_VALUE, 1)), +) + +DESTINATION: StaticSchema = ( + 18, + n0, + _De, + 0, + (_B, _Ac, _SC, _ACT, _EC, _RT, _Met), + ( + (BUCKET_NAME, 1), + (ACCOUNT_ID, 0), + (STORAGE_CLASS, 0), + (ACCESS_CONTROL_TRANSLATION, 0), + (ENCRYPTION_CONFIGURATION, 0), + (REPLICATION_TIME, 0), + (METRICS, 0), + ), +) + +EXISTING_OBJECT_REPLICATION_STATUS: StaticSchema = ( + 14, + n0, + _EORS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +EXISTING_OBJECT_REPLICATION: StaticSchema = ( + 18, + n0, + _EOR, + 0, + (_S,), + ((EXISTING_OBJECT_REPLICATION_STATUS, 1),), +) + +REPLICATION_RULE_AND_OPERATOR: StaticSchema = ( + 18, + n0, + _RRAO, + 0, + (_Pr, _Tags), + ((PREFIX, 0), (TAG_SET, {_sN: _Tag, _sFm: None})), +) + +REPLICATION_RULE_FILTER: StaticSchema = ( + 18, + n0, + _RRF, + 0, + (_Pr, _Tag, _A), + ((PREFIX, 0), (TAG, 0), (REPLICATION_RULE_AND_OPERATOR, 0)), +) + +PRIORITY: StaticSchema = (7, n0, _Pri, 0) + +REPLICA_MODIFICATIONS_STATUS: StaticSchema = ( + 14, + n0, + _RMS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +REPLICA_MODIFICATIONS: StaticSchema = ( + 18, + n0, + _RM, + 0, + (_S,), + ((REPLICA_MODIFICATIONS_STATUS, 1),), +) + +SSE_KMS_ENCRYPTED_OBJECTS_STATUS: StaticSchema = ( + 14, + n0, + _SKEOS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +SSE_KMS_ENCRYPTED_OBJECTS: StaticSchema = ( + 18, + n0, + _SKEO, + 0, + (_S,), + ((SSE_KMS_ENCRYPTED_OBJECTS_STATUS, 1),), +) + +SOURCE_SELECTION_CRITERIA: StaticSchema = ( + 18, + n0, + _SSC, + 0, + (_SKEO, _RM), + ((SSE_KMS_ENCRYPTED_OBJECTS, 0), (REPLICA_MODIFICATIONS, 0)), +) + +REPLICATION_RULE_STATUS: StaticSchema = ( + 14, + n0, + _RRS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +REPLICATION_RULE: StaticSchema = ( + 18, + n0, + _RRe, + 0, + (_ID, _Pri, _Pr, _Fi, _S, _SSC, _EOR, _De, _DMR), + ( + (ID, 0), + (PRIORITY, 0), + (PREFIX, 0), + (REPLICATION_RULE_FILTER, 0), + (REPLICATION_RULE_STATUS, 1), + (SOURCE_SELECTION_CRITERIA, 0), + (EXISTING_OBJECT_REPLICATION, 0), + (DESTINATION, 1), + (DELETE_MARKER_REPLICATION, 0), + ), +) + +REPLICATION_RULES: StaticSchema = (16, n0, _RRep, 0, (_m,), ((REPLICATION_RULE, 0),)) + +REPLICATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _RCe, + 0, + (_R, _Ru), + ((ROLE, 1), (REPLICATION_RULES, {_sN: _Rul, _sFm: None, _sm: None})), +) + +GET_BUCKET_REPLICATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GBRO, + {_smi: None}, + (_RCe,), + ((REPLICATION_CONFIGURATION, 16),), +) + +GET_BUCKET_REPLICATION: StaticOperationSchema = ( + 23, + n0, + _GBR, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?replication", "code": 200} + ), + }, + GET_BUCKET_REPLICATION_INPUT, + GET_BUCKET_REPLICATION_OUTPUT, + (), +) + +GET_BUCKET_REQUEST_PAYMENT_INPUT: StaticSchema = ( + 18, + n0, + _GBRPI, + {_sSI: _cGBRPR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PAYER: StaticSchema = ( + 14, + n0, + _Pay, + 0, + (_Re, _BO), + ((-1, {_sV: _Re}), (-1, {_sV: _BO})), +) + +GET_BUCKET_REQUEST_PAYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _GBRPO, + {_sN: _RPC, _smi: None}, + (_Pay,), + ((PAYER, 0),), +) + +GET_BUCKET_REQUEST_PAYMENT: StaticOperationSchema = ( + 23, + n0, + _GBRP, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?requestPayment", "code": 200} + ), + }, + GET_BUCKET_REQUEST_PAYMENT_INPUT, + GET_BUCKET_REQUEST_PAYMENT_OUTPUT, + (), +) + +GET_BUCKET_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _GBTI, + {_sSI: _cGBTR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_BUCKET_TAGGING_OUTPUT: StaticSchema = ( + 18, + n0, + _GBTO, + {_sN: _Ta, _smi: None}, + (_TS,), + ((TAG_SET, 1),), +) + +GET_BUCKET_TAGGING: StaticOperationSchema = ( + 23, + n0, + _GBT, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?tagging", "code": 200}), + }, + GET_BUCKET_TAGGING_INPUT, + GET_BUCKET_TAGGING_OUTPUT, + (), +) + +GET_BUCKET_VERSIONING_INPUT: StaticSchema = ( + 18, + n0, + _GBVI, + {_sSI: _cGBVR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +MFA_DELETE_STATUS: StaticSchema = ( + 14, + n0, + _MFADS, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +BUCKET_VERSIONING_STATUS: StaticSchema = ( + 14, + n0, + _BVS, + 0, + (_E, _Su), + ((-1, {_sV: _E}), (-1, {_sV: _Su})), +) + +GET_BUCKET_VERSIONING_OUTPUT: StaticSchema = ( + 18, + n0, + _GBVO, + {_sN: _VCe, _smi: None}, + (_S, _MFAD), + ((BUCKET_VERSIONING_STATUS, 0), (MFA_DELETE_STATUS, {_sN: _MDf})), +) + +GET_BUCKET_VERSIONING: StaticOperationSchema = ( + 23, + n0, + _GBV, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?versioning", "code": 200}), + }, + GET_BUCKET_VERSIONING_INPUT, + GET_BUCKET_VERSIONING_OUTPUT, + (), +) + +GET_BUCKET_WEBSITE_INPUT: StaticSchema = ( + 18, + n0, + _GBWI, + {_sSI: _cGBWR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +ERROR_DOCUMENT: StaticSchema = (18, n0, _EDr, 0, (_K,), ((OBJECT_KEY, 1),)) + +SUFFIX: StaticSchema = (3, n0, _Suf, 0) + +INDEX_DOCUMENT: StaticSchema = (18, n0, _IDnd, 0, (_Suf,), ((SUFFIX, 1),)) + +HOST_NAME: StaticSchema = (3, n0, _HN, 0) + +PROTOCOL: StaticSchema = ( + 14, + n0, + _Pro, + 0, + (_h, _ht), + ((-1, {_sV: _h}), (-1, {_sV: _ht})), +) + +REDIRECT_ALL_REQUESTS_TO: StaticSchema = ( + 18, + n0, + _RART, + 0, + (_HN, _Pro), + ((HOST_NAME, 1), (PROTOCOL, 0)), +) + +HTTP_ERROR_CODE_RETURNED_EQUALS: StaticSchema = (3, n0, _HECRE, 0) + +KEY_PREFIX_EQUALS: StaticSchema = (3, n0, _KPE, 0) + +CONDITION: StaticSchema = ( + 18, + n0, + _Con, + 0, + (_HECRE, _KPE), + ((HTTP_ERROR_CODE_RETURNED_EQUALS, 0), (KEY_PREFIX_EQUALS, 0)), +) + +HTTP_REDIRECT_CODE: StaticSchema = (3, n0, _HRC, 0) + +REPLACE_KEY_PREFIX_WITH: StaticSchema = (3, n0, _RKPW, 0) + +REPLACE_KEY_WITH: StaticSchema = (3, n0, _RKW, 0) + +REDIRECT: StaticSchema = ( + 18, + n0, + _Red, + 0, + (_HN, _HRC, _Pro, _RKPW, _RKW), + ( + (HOST_NAME, 0), + (HTTP_REDIRECT_CODE, 0), + (PROTOCOL, 0), + (REPLACE_KEY_PREFIX_WITH, 0), + (REPLACE_KEY_WITH, 0), + ), +) + +ROUTING_RULE: StaticSchema = ( + 18, + n0, + _RRo, + 0, + (_Con, _Red), + ((CONDITION, 0), (REDIRECT, 1)), +) + +ROUTING_RULES: StaticSchema = (16, n0, _RRou, 0, (_m,), ((ROUTING_RULE, {_sN: _RRo}),)) + +GET_BUCKET_WEBSITE_OUTPUT: StaticSchema = ( + 18, + n0, + _GBWO, + {_sN: _WC, _smi: None}, + (_RART, _IDnd, _EDr, _RRou), + ( + (REDIRECT_ALL_REQUESTS_TO, 0), + (INDEX_DOCUMENT, 0), + (ERROR_DOCUMENT, 0), + (ROUTING_RULES, 0), + ), +) + +GET_BUCKET_WEBSITE: StaticOperationSchema = ( + 23, + n0, + _GBW, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "GET", "uri": "/?website", "code": 200}), + }, + GET_BUCKET_WEBSITE_INPUT, + GET_BUCKET_WEBSITE_OUTPUT, + (), +) + +CHECKSUM_MODE: StaticSchema = (14, n0, _CMh, 0, (_ENABLED,), ((-1, {_sV: _ENABLED}),)) + +IF_MODIFIED_SINCE: StaticSchema = (4, n0, _IMSf, 0) + +IF_UNMODIFIED_SINCE: StaticSchema = (4, n0, _IUS, 0) + +RANGE: StaticSchema = (3, n0, _Ra, 0) + +RESPONSE_CACHE_CONTROL: StaticSchema = (3, n0, _RCC, 0) + +RESPONSE_CONTENT_DISPOSITION: StaticSchema = (3, n0, _RCD, 0) + +RESPONSE_CONTENT_ENCODING: StaticSchema = (3, n0, _RCE, 0) + +RESPONSE_CONTENT_LANGUAGE: StaticSchema = (3, n0, _RCL, 0) + +RESPONSE_CONTENT_TYPE: StaticSchema = (3, n0, _RCT, 0) + +RESPONSE_EXPIRES: StaticSchema = (4, n0, _REe, {_sF: _hd}) + +GET_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _GOI, + {_sSI: _cGOR, _s: None}, + ( + _B, + _IM, + _IMSf, + _INM, + _IUS, + _K, + _Ra, + _RCC, + _RCD, + _RCE, + _RCL, + _RCT, + _REe, + _VI, + _SSECA, + _SSECK, + _SSECKMD, + _RP, + _PN, + _EBO, + _CMh, + ), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (IF_MATCH, {_sH: _IM_}), + (IF_MODIFIED_SINCE, {_sH: _IMS_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (IF_UNMODIFIED_SINCE, {_sH: _IUS_}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (RANGE, {_sH: _Ra}), + (RESPONSE_CACHE_CONTROL, {_sQ: _rcc}), + (RESPONSE_CONTENT_DISPOSITION, {_sQ: _rcd}), + (RESPONSE_CONTENT_ENCODING, {_sQ: _rce}), + (RESPONSE_CONTENT_LANGUAGE, {_sQ: _rcl}), + (RESPONSE_CONTENT_TYPE, {_sQ: _rct}), + (RESPONSE_EXPIRES, {_sQ: _re}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (PART_NUMBER, {_sQ: _pN}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_MODE, {_sH: _xacm_}), + ), +) + +STREAMING_BLOB: StaticSchema = (1, n0, _SB, {_smithya: None}) + +CONTENT_LENGTH: StaticSchema = (8, n0, _CLo, 0) + +CONTENT_RANGE: StaticSchema = (3, n0, _CR, 0) + +MISSING_META: StaticSchema = (7, n0, _MM, 0) + +PARTS_COUNT: StaticSchema = (7, n0, _PC, 0) + +REPLICATION_STATUS: StaticSchema = ( + 14, + n0, + _RS, + 0, + (_COMPLETE, _PENDING, _FAILED, _REPLICA, _COMPLETED), + ( + (-1, {_sV: _COMPLETE}), + (-1, {_sV: _PENDING}), + (-1, {_sV: _FAILED}), + (-1, {_sV: _REPLICA}), + (-1, {_sV: _COMPLETED}), + ), +) + +RESTORE: StaticSchema = (3, n0, _Res, 0) + +TAG_COUNT: StaticSchema = (7, n0, _TCa, 0) + +GET_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _GOO, + {_smi: None}, + ( + _Bo, + _DM, + _AR, + _Ex, + _Res, + _LM, + _CLo, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _MM, + _VI, + _CC, + _CD, + _CE, + _CL, + _CR, + _CTo, + _Exp, + _WRL, + _SSE, + _M, + _SSECA, + _SSECKMD, + _SSEKMSKI, + _BKE, + _SC, + _RC, + _RS, + _PC, + _TCa, + _OLM, + _OLRUD, + _OLLHS, + _OLEH, + _OLEHDD, + _OLEHDY, + ), + ( + (STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), + (DELETE_MARKER, {_sH: _xadm}), + (ACCEPT_RANGES, {_sH: _ar___}), + (EXPIRATION, {_sH: _xae}), + (RESTORE, {_sH: _xar}), + (LAST_MODIFIED, {_sH: _LM_}), + (CONTENT_LENGTH, {_sH: _CL__}), + (E_TAG, {_sH: _ET}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (MISSING_META, {_sH: _xamm}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (CACHE_CONTROL, {_sH: _CC_}), + (CONTENT_DISPOSITION, {_sH: _CD_}), + (CONTENT_ENCODING, {_sH: _CE_}), + (CONTENT_LANGUAGE, {_sH: _CL_}), + (CONTENT_RANGE, {_sH: _CR_}), + (CONTENT_TYPE, {_sH: _CT_}), + (EXPIRES, {_sH: _Exp}), + (WEBSITE_REDIRECT_LOCATION, {_sH: _xawrl}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (METADATA, {_sPH: _xam}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (STORAGE_CLASS, {_sH: _xasc}), + (REQUEST_CHARGED, {_sH: _xarc}), + (REPLICATION_STATUS, {_sH: _xars}), + (PARTS_COUNT, {_sH: _xampc}), + (TAG_COUNT, {_sH: _xatc}), + (OBJECT_LOCK_MODE, {_sH: _xaolm}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xaolrud}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xaollh}), + (OBJECT_LOCK_EVENT_HOLD, {_sH: _xaoleh}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS, {_sH: _xaolehdd}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS, {_sH: _xaolehdy}), + ), +) + +INVALID_OBJECT_STATE: StaticSchema = ( + 18, + n0, + _IOS, + {_smit: _c, _sE: 403}, + (_SC, _AT), + ((STORAGE_CLASS, 0), (INTELLIGENT_TIERING_ACCESS_TIER, 0)), +) + +GET_OBJECT: StaticOperationSchema = ( + 23, + n0, + _GO, + { + _aC: MappingProxyType( + { + "requestValidationModeMember": "ChecksumMode", + "responseAlgorithms": ( + "CRC64NVME", + "CRC32", + "CRC32C", + "SHA256", + "SHA1", + "SHA512", + "MD5", + "XXHASH64", + "XXHASH3", + "XXHASH128", + ), + } + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?x-id=GetObject", "code": 200} + ), + }, + GET_OBJECT_INPUT, + GET_OBJECT_OUTPUT, + (INVALID_OBJECT_STATE, NO_SUCH_KEY), +) + +GET_OBJECT_ACL_INPUT: StaticSchema = ( + 18, + n0, + _GOAI, + {_sSI: _cGOAR, _s: None}, + (_B, _K, _VI, _RP, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_OBJECT_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _GOAO, + {_sN: _ACP, _smi: None}, + (_O, _Gran, _RC), + ((OWNER, 0), (GRANTS, {_sN: _ACL}), (REQUEST_CHARGED, {_sH: _xarc})), +) + +GET_OBJECT_ACL: StaticOperationSchema = ( + 23, + n0, + _GOA, + {_smith: MappingProxyType({"method": "GET", "uri": "/{Key+}?acl", "code": 200})}, + GET_OBJECT_ACL_INPUT, + GET_OBJECT_ACL_OUTPUT, + (NO_SUCH_KEY,), +) + +GET_OBJECT_ANNOTATION_INPUT: StaticSchema = ( + 18, + n0, + _GOAIe, + {_sSI: _cGOARo, _s: None}, + (_B, _K, _AN, _VI, _RP, _EBO, _CMh), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (ANNOTATION_NAME, {_sQ: _aN, _sm: None}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_MODE, {_sH: _xacm_}), + ), +) + +GET_OBJECT_ANNOTATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GOAOe, + {_smi: None}, + ( + _AP, + _OVI, + _LM, + _CLo, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _SSE, + _RC, + _RS, + ), + ( + (STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), + (OBJECT_VERSION_ID, {_sH: _xaovi}), + (LAST_MODIFIED, {_sH: _LM_}), + (CONTENT_LENGTH, {_sH: _CL__}), + (E_TAG, {_sH: _ET}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (REQUEST_CHARGED, {_sH: _xarc}), + (REPLICATION_STATUS, {_sH: _xars}), + ), +) + +NO_SUCH_ANNOTATION: StaticSchema = (18, n0, _NSA, {_smit: _c, _sE: 404}) + +GET_OBJECT_ANNOTATION: StaticOperationSchema = ( + 23, + n0, + _GOAe, + { + _aC: MappingProxyType( + { + "requestValidationModeMember": "ChecksumMode", + "responseAlgorithms": ( + "CRC64NVME", + "CRC32", + "CRC32C", + "SHA256", + "SHA1", + "SHA512", + "MD5", + "XXHASH64", + "XXHASH3", + "XXHASH128", + ), + } + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/{Key+}?annotation&x-id=GetObjectAnnotation", + "code": 200, + } + ), + }, + GET_OBJECT_ANNOTATION_INPUT, + GET_OBJECT_ANNOTATION_OUTPUT, + (NO_SUCH_ANNOTATION, NO_SUCH_BUCKET, NO_SUCH_KEY), +) + +MAX_PARTS: StaticSchema = (7, n0, _MP, 0) + +OBJECT_ATTRIBUTES: StaticSchema = ( + 14, + n0, + _OA, + 0, + (_ETAG, _CHECKSUM, _OP, _SC___, _OS), + ( + (-1, {_sV: _ET}), + (-1, {_sV: _Ch}), + (-1, {_sV: _OPb}), + (-1, {_sV: _SC}), + (-1, {_sV: _OSb}), + ), +) + +OBJECT_ATTRIBUTES_LIST: StaticSchema = ( + 16, + n0, + _OAL, + 0, + (_m,), + ((OBJECT_ATTRIBUTES, 0),), +) + +PART_NUMBER_MARKER: StaticSchema = (3, n0, _PNM, 0) + +GET_OBJECT_ATTRIBUTES_INPUT: StaticSchema = ( + 18, + n0, + _GOAIet, + {_sSI: _cGOARom, _s: None}, + (_B, _K, _VI, _MP, _PNM, _SSECA, _SSECK, _SSECKMD, _RP, _EBO, _OA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (MAX_PARTS, {_sH: _xamp}), + (PART_NUMBER_MARKER, {_sH: _xapnm}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (OBJECT_ATTRIBUTES_LIST, {_sH: _xaoa, _sm: None}), + ), +) + +CHECKSUM: StaticSchema = ( + 18, + n0, + _Ch, + 0, + ( + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + ), + ( + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + (CHECKSUM_TYPE, 0), + ), +) + +IS_TRUNCATED: StaticSchema = (2, n0, _ITs, 0) + +NEXT_PART_NUMBER_MARKER: StaticSchema = (3, n0, _NPNM, 0) + +OBJECT_PART: StaticSchema = ( + 18, + n0, + _OPbj, + 0, + ( + _PN, + _Si, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + ), + ( + (PART_NUMBER, 0), + (SIZE, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + ), +) + +PARTS_LIST: StaticSchema = (16, n0, _PL, 0, (_m,), ((OBJECT_PART, 0),)) + +GET_OBJECT_ATTRIBUTES_PARTS: StaticSchema = ( + 18, + n0, + _GOAP, + 0, + (_TPC, _PNM, _NPNM, _MP, _ITs, _Pa), + ( + (PARTS_COUNT, {_sN: _PC}), + (PART_NUMBER_MARKER, 0), + (NEXT_PART_NUMBER_MARKER, 0), + (MAX_PARTS, 0), + (IS_TRUNCATED, 0), + (PARTS_LIST, {_sN: _Par, _sFm: None}), + ), +) + +OBJECT_SIZE: StaticSchema = (8, n0, _OSb, 0) + +GET_OBJECT_ATTRIBUTES_OUTPUT: StaticSchema = ( + 18, + n0, + _GOAOet, + {_sN: _GOAR, _smi: None}, + (_DM, _LM, _VI, _RC, _ET, _Ch, _OPb, _SC, _OSb), + ( + (DELETE_MARKER, {_sH: _xadm}), + (LAST_MODIFIED, {_sH: _LM_}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (REQUEST_CHARGED, {_sH: _xarc}), + (E_TAG, 0), + (CHECKSUM, 0), + (GET_OBJECT_ATTRIBUTES_PARTS, 0), + (STORAGE_CLASS, 0), + (OBJECT_SIZE, 0), + ), +) + +GET_OBJECT_ATTRIBUTES: StaticOperationSchema = ( + 23, + n0, + _GOAet, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?attributes", "code": 200} + ) + }, + GET_OBJECT_ATTRIBUTES_INPUT, + GET_OBJECT_ATTRIBUTES_OUTPUT, + (NO_SUCH_KEY,), +) + +GET_OBJECT_LEGAL_HOLD_INPUT: StaticSchema = ( + 18, + n0, + _GOLHI, + {_sSI: _cGOLHR, _s: None}, + (_B, _K, _VI, _RP, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +OBJECT_LOCK_LEGAL_HOLD: StaticSchema = ( + 18, + n0, + _OLLH, + 0, + (_S,), + ((OBJECT_LOCK_LEGAL_HOLD_STATUS, 0),), +) + +GET_OBJECT_LEGAL_HOLD_OUTPUT: StaticSchema = ( + 18, + n0, + _GOLHO, + {_smi: None}, + (_LH,), + ((OBJECT_LOCK_LEGAL_HOLD, {_sN: _LH, _sPm: None}),), +) + +GET_OBJECT_LEGAL_HOLD: StaticOperationSchema = ( + 23, + n0, + _GOLH, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?legal-hold", "code": 200} + ) + }, + GET_OBJECT_LEGAL_HOLD_INPUT, + GET_OBJECT_LEGAL_HOLD_OUTPUT, + (), +) + +GET_OBJECT_LOCK_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _GOLCI, + {_sSI: _cGOLCR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +OBJECT_LOCK_ENABLED: StaticSchema = (14, n0, _OLE, 0, (_E,), ((-1, {_sV: _E}),)) + +YEARS: StaticSchema = (7, n0, _Y, 0) + +EVENT_HOLD_DURATION: StaticSchema = ( + 18, + n0, + _EHD, + 0, + (_Da, _Y), + ((DAYS, 0), (YEARS, 0)), +) + +OBJECT_LOCK_RETENTION_MODE: StaticSchema = ( + 14, + n0, + _OLRM, + 0, + (_GOVERNANCE, _COMPLIANCE), + ((-1, {_sV: _GOVERNANCE}), (-1, {_sV: _COMPLIANCE})), +) + +DEFAULT_RETENTION: StaticSchema = ( + 18, + n0, + _DRef, + 0, + (_Mo, _Da, _Y, _DEH), + ((OBJECT_LOCK_RETENTION_MODE, 0), (DAYS, 0), (YEARS, 0), (EVENT_HOLD_DURATION, 0)), +) + +OBJECT_LOCK_RULE: StaticSchema = (18, n0, _OLR, 0, (_DRef,), ((DEFAULT_RETENTION, 0),)) + +OBJECT_LOCK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _OLC, + 0, + (_OLE, _Rul), + ((OBJECT_LOCK_ENABLED, 0), (OBJECT_LOCK_RULE, 0)), +) + +GET_OBJECT_LOCK_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _GOLCO, + {_smi: None}, + (_OLC,), + ((OBJECT_LOCK_CONFIGURATION, 16),), +) + +GET_OBJECT_LOCK_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _GOLC, + {_smith: MappingProxyType({"method": "GET", "uri": "/?object-lock", "code": 200})}, + GET_OBJECT_LOCK_CONFIGURATION_INPUT, + GET_OBJECT_LOCK_CONFIGURATION_OUTPUT, + (), +) + +GET_OBJECT_RETENTION_INPUT: StaticSchema = ( + 18, + n0, + _GORI, + {_sSI: _cGORR, _s: None}, + (_B, _K, _VI, _RP, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +OBJECT_LOCK_RETENTION: StaticSchema = ( + 18, + n0, + _OLRb, + 0, + (_Mo, _RUD, _EHv, _EHD), + ( + (OBJECT_LOCK_RETENTION_MODE, 0), + (DATE, 0), + (OBJECT_LOCK_EVENT_HOLD, 0), + (EVENT_HOLD_DURATION, 0), + ), +) + +GET_OBJECT_RETENTION_OUTPUT: StaticSchema = ( + 18, + n0, + _GORO, + {_smi: None}, + (_Ret,), + ((OBJECT_LOCK_RETENTION, {_sN: _Ret, _sPm: None}),), +) + +GET_OBJECT_RETENTION: StaticOperationSchema = ( + 23, + n0, + _GOR, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?retention", "code": 200} + ) + }, + GET_OBJECT_RETENTION_INPUT, + GET_OBJECT_RETENTION_OUTPUT, + (), +) + +GET_OBJECT_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _GOTI, + {_sSI: _cGOTR, _s: None}, + (_B, _K, _VI, _EBO, _RP), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (ACCOUNT_ID, {_sH: _xaebo}), + (REQUEST_PAYER, {_sH: _xarp}), + ), +) + +GET_OBJECT_TAGGING_OUTPUT: StaticSchema = ( + 18, + n0, + _GOTO, + {_sN: _Ta, _smi: None}, + (_VI, _TS), + ((OBJECT_VERSION_ID, {_sH: _xavi}), (TAG_SET, 1)), +) + +GET_OBJECT_TAGGING: StaticOperationSchema = ( + 23, + n0, + _GOT, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?tagging", "code": 200} + ) + }, + GET_OBJECT_TAGGING_INPUT, + GET_OBJECT_TAGGING_OUTPUT, + (), +) + +GET_OBJECT_TORRENT_INPUT: StaticSchema = ( + 18, + n0, + _GOTIe, + {_sSI: _cGOTRo, _s: None}, + (_B, _K, _RP, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +GET_OBJECT_TORRENT_OUTPUT: StaticSchema = ( + 18, + n0, + _GOTOe, + {_smi: None}, + (_Bo, _RC), + ((STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), (REQUEST_CHARGED, {_sH: _xarc})), +) + +GET_OBJECT_TORRENT: StaticOperationSchema = ( + 23, + n0, + _GOTe, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?torrent", "code": 200} + ) + }, + GET_OBJECT_TORRENT_INPUT, + GET_OBJECT_TORRENT_OUTPUT, + (), +) + +GET_PUBLIC_ACCESS_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _GPABI, + {_sSI: _cGPABR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +SETTING: StaticSchema = (2, n0, _Se, 0) + +PUBLIC_ACCESS_BLOCK_CONFIGURATION: StaticSchema = ( + 18, + n0, + _PABC, + 0, + (_BPA, _IPA, _BPP, _RPB), + ( + (SETTING, {_sN: _BPA}), + (SETTING, {_sN: _IPA}), + (SETTING, {_sN: _BPP}), + (SETTING, {_sN: _RPB}), + ), +) + +GET_PUBLIC_ACCESS_BLOCK_OUTPUT: StaticSchema = ( + 18, + n0, + _GPABO, + {_smi: None}, + (_PABC,), + ((PUBLIC_ACCESS_BLOCK_CONFIGURATION, 16),), +) + +GET_PUBLIC_ACCESS_BLOCK: StaticOperationSchema = ( + 23, + n0, + _GPAB, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?publicAccessBlock", "code": 200} + ), + }, + GET_PUBLIC_ACCESS_BLOCK_INPUT, + GET_PUBLIC_ACCESS_BLOCK_OUTPUT, + (), +) + +HEAD_BUCKET_INPUT: StaticSchema = ( + 18, + n0, + _HBI, + {_sSI: _cHBR, _s: None}, + (_B, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +BUCKET_LOCATION_NAME: StaticSchema = (3, n0, _BLN, 0) + +REGION: StaticSchema = (3, n0, _Reg, 0) + +HEAD_BUCKET_OUTPUT: StaticSchema = ( + 18, + n0, + _HBO, + {_smi: None}, + (_BA, _BLT, _BLN, _BR, _APA), + ( + (S3_REGIONAL_OR_S3_EXPRESS_BUCKET_ARN_STRING, {_sH: _xaba}), + (LOCATION_TYPE, {_sH: _xablt}), + (BUCKET_LOCATION_NAME, {_sH: _xabln}), + (REGION, {_sH: _xabr}), + (ACCESS_POINT_ALIAS, {_sH: _xaapa}), + ), +) + +NOT_FOUND: StaticSchema = (18, n0, _NF, {_smit: _c}) + +HEAD_BUCKET: StaticOperationSchema = ( + 23, + n0, + _HB, + {_smith: MappingProxyType({"method": "HEAD", "uri": "/", "code": 200})}, + HEAD_BUCKET_INPUT, + HEAD_BUCKET_OUTPUT, + (NOT_FOUND,), +) + +HEAD_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _HOI, + {_sSI: _cHOR, _s: None}, + ( + _B, + _IM, + _IMSf, + _INM, + _IUS, + _K, + _Ra, + _RCC, + _RCD, + _RCE, + _RCL, + _RCT, + _REe, + _VI, + _SSECA, + _SSECK, + _SSECKMD, + _RP, + _PN, + _EBO, + _CMh, + ), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (IF_MATCH, {_sH: _IM_}), + (IF_MODIFIED_SINCE, {_sH: _IMS_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (IF_UNMODIFIED_SINCE, {_sH: _IUS_}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (RANGE, {_sH: _Ra}), + (RESPONSE_CACHE_CONTROL, {_sQ: _rcc}), + (RESPONSE_CONTENT_DISPOSITION, {_sQ: _rcd}), + (RESPONSE_CONTENT_ENCODING, {_sQ: _rce}), + (RESPONSE_CONTENT_LANGUAGE, {_sQ: _rcl}), + (RESPONSE_CONTENT_TYPE, {_sQ: _rct}), + (RESPONSE_EXPIRES, {_sQ: _re}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (PART_NUMBER, {_sQ: _pN}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_MODE, {_sH: _xacm_}), + ), +) + +ARCHIVE_STATUS: StaticSchema = ( + 14, + n0, + _ASr, + 0, + (_AA, _DAA), + ((-1, {_sV: _AA}), (-1, {_sV: _DAA})), +) + +HEAD_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _HOO, + {_smi: None}, + ( + _DM, + _AR, + _Ex, + _Res, + _ASr, + _LM, + _CLo, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _ET, + _MM, + _VI, + _CC, + _CD, + _CE, + _CL, + _CTo, + _CR, + _Exp, + _WRL, + _SSE, + _M, + _SSECA, + _SSECKMD, + _SSEKMSKI, + _BKE, + _SC, + _RC, + _RS, + _PC, + _TCa, + _OLM, + _OLRUD, + _OLLHS, + _OLEH, + _OLEHDD, + _OLEHDY, + ), + ( + (DELETE_MARKER, {_sH: _xadm}), + (ACCEPT_RANGES, {_sH: _ar___}), + (EXPIRATION, {_sH: _xae}), + (RESTORE, {_sH: _xar}), + (ARCHIVE_STATUS, {_sH: _xaas}), + (LAST_MODIFIED, {_sH: _LM_}), + (CONTENT_LENGTH, {_sH: _CL__}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (E_TAG, {_sH: _ET}), + (MISSING_META, {_sH: _xamm}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (CACHE_CONTROL, {_sH: _CC_}), + (CONTENT_DISPOSITION, {_sH: _CD_}), + (CONTENT_ENCODING, {_sH: _CE_}), + (CONTENT_LANGUAGE, {_sH: _CL_}), + (CONTENT_TYPE, {_sH: _CT_}), + (CONTENT_RANGE, {_sH: _CR_}), + (EXPIRES, {_sH: _Exp}), + (WEBSITE_REDIRECT_LOCATION, {_sH: _xawrl}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (METADATA, {_sPH: _xam}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (STORAGE_CLASS, {_sH: _xasc}), + (REQUEST_CHARGED, {_sH: _xarc}), + (REPLICATION_STATUS, {_sH: _xars}), + (PARTS_COUNT, {_sH: _xampc}), + (TAG_COUNT, {_sH: _xatc}), + (OBJECT_LOCK_MODE, {_sH: _xaolm}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xaolrud}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xaollh}), + (OBJECT_LOCK_EVENT_HOLD, {_sH: _xaoleh}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS, {_sH: _xaolehdd}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS, {_sH: _xaolehdy}), + ), +) + +HEAD_OBJECT: StaticOperationSchema = ( + 23, + n0, + _HO, + {_smith: MappingProxyType({"method": "HEAD", "uri": "/{Key+}", "code": 200})}, + HEAD_OBJECT_INPUT, + HEAD_OBJECT_OUTPUT, + (NOT_FOUND,), +) + +TOKEN: StaticSchema = (3, n0, _Tok, 0) + +LIST_BUCKET_ANALYTICS_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LBACI, + {_sSI: _cLBACR, _s: None}, + (_B, _CTon, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (TOKEN, {_sQ: _ct}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +ANALYTICS_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _ACLn, + 0, + (_m,), + ((ANALYTICS_CONFIGURATION, 0),), +) + +NEXT_TOKEN: StaticSchema = (3, n0, _NT, 0) + +LIST_BUCKET_ANALYTICS_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBACO, + {_sN: _LBACR, _smi: None}, + (_ITs, _CTon, _NCT, _ACLn), + ( + (IS_TRUNCATED, 0), + (TOKEN, 0), + (NEXT_TOKEN, 0), + (ANALYTICS_CONFIGURATION_LIST, {_sN: _ACn, _sFm: None}), + ), +) + +LIST_BUCKET_ANALYTICS_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _LBAC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?analytics&x-id=ListBucketAnalyticsConfigurations", + "code": 200, + } + ), + }, + LIST_BUCKET_ANALYTICS_CONFIGURATIONS_INPUT, + LIST_BUCKET_ANALYTICS_CONFIGURATIONS_OUTPUT, + (), +) + +LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LBITCI, + {_sSI: _cLBITCR, _s: None}, + (_B, _CTon, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (TOKEN, {_sQ: _ct}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +INTELLIGENT_TIERING_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _ITCL, + 0, + (_m,), + ((INTELLIGENT_TIERING_CONFIGURATION, 0),), +) + +LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBITCO, + {_smi: None}, + (_ITs, _CTon, _NCT, _ITCL), + ( + (IS_TRUNCATED, 0), + (TOKEN, 0), + (NEXT_TOKEN, 0), + (INTELLIGENT_TIERING_CONFIGURATION_LIST, {_sN: _ITCn, _sFm: None}), + ), +) + +LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _LBITC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations", + "code": 200, + } + ), + }, + LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_INPUT, + LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_OUTPUT, + (), +) + +LIST_BUCKET_INVENTORY_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LBICI, + {_sSI: _cLBICR, _s: None}, + (_B, _CTon, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (TOKEN, {_sQ: _ct}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +INVENTORY_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _ICL, + 0, + (_m,), + ((INVENTORY_CONFIGURATION, 0),), +) + +LIST_BUCKET_INVENTORY_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBICO, + {_sN: _LICR, _smi: None}, + (_CTon, _ICL, _ITs, _NCT), + ( + (TOKEN, 0), + (INVENTORY_CONFIGURATION_LIST, {_sN: _IC, _sFm: None}), + (IS_TRUNCATED, 0), + (NEXT_TOKEN, 0), + ), +) + +LIST_BUCKET_INVENTORY_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _LBIC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?inventory&x-id=ListBucketInventoryConfigurations", + "code": 200, + } + ), + }, + LIST_BUCKET_INVENTORY_CONFIGURATIONS_INPUT, + LIST_BUCKET_INVENTORY_CONFIGURATIONS_OUTPUT, + (), +) + +LIST_BUCKET_METRICS_CONFIGURATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LBMCI, + {_sSI: _cLBMCR, _s: None}, + (_B, _CTon, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (TOKEN, {_sQ: _ct}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +METRICS_CONFIGURATION_LIST: StaticSchema = ( + 16, + n0, + _MCL, + 0, + (_m,), + ((METRICS_CONFIGURATION, 0),), +) + +LIST_BUCKET_METRICS_CONFIGURATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBMCO, + {_sN: _LMCR, _smi: None}, + (_ITs, _CTon, _NCT, _MCL), + ( + (IS_TRUNCATED, 0), + (TOKEN, 0), + (NEXT_TOKEN, 0), + (METRICS_CONFIGURATION_LIST, {_sN: _MCe, _sFm: None}), + ), +) + +LIST_BUCKET_METRICS_CONFIGURATIONS: StaticOperationSchema = ( + 23, + n0, + _LBMC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/?metrics&x-id=ListBucketMetricsConfigurations", + "code": 200, + } + ), + }, + LIST_BUCKET_METRICS_CONFIGURATIONS_INPUT, + LIST_BUCKET_METRICS_CONFIGURATIONS_OUTPUT, + (), +) + +BUCKET_REGION: StaticSchema = (3, n0, _BR, 0) + +MAX_BUCKETS: StaticSchema = (7, n0, _MB, 0) + +LIST_BUCKETS_INPUT: StaticSchema = ( + 18, + n0, + _LBI, + {_sSI: _cLBR, _s: None}, + (_MB, _CTon, _Pr, _BR), + ( + (MAX_BUCKETS, {_sQ: _mb}), + (TOKEN, {_sQ: _ct}), + (PREFIX, {_sQ: _pre}), + (BUCKET_REGION, {_sQ: _br}), + ), +) + +CREATION_DATE: StaticSchema = (4, n0, _CDr, 0) + +BUCKET: StaticSchema = ( + 18, + n0, + _B, + 0, + (_N, _CDr, _BR, _BA), + ( + (BUCKET_NAME, 0), + (CREATION_DATE, 0), + (BUCKET_REGION, 0), + (S3_REGIONAL_OR_S3_EXPRESS_BUCKET_ARN_STRING, 0), + ), +) + +BUCKETS: StaticSchema = (16, n0, _Bu, 0, (_m,), ((BUCKET, {_sN: _B}),)) + +LIST_BUCKETS_OUTPUT: StaticSchema = ( + 18, + n0, + _LBO, + {_sN: _LAMBR, _smi: None}, + (_Bu, _O, _CTon, _Pr), + ((BUCKETS, 0), (OWNER, 0), (NEXT_TOKEN, 0), (PREFIX, 0)), +) + +LIST_BUCKETS: StaticOperationSchema = ( + 23, + n0, + _LB, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/?x-id=ListBuckets", "code": 200} + ) + }, + LIST_BUCKETS_INPUT, + LIST_BUCKETS_OUTPUT, + (), +) + +DIRECTORY_BUCKET_TOKEN: StaticSchema = (3, n0, _DBTi, 0) + +MAX_DIRECTORY_BUCKETS: StaticSchema = (7, n0, _MDB, 0) + +LIST_DIRECTORY_BUCKETS_INPUT: StaticSchema = ( + 18, + n0, + _LDBI, + {_sSI: _cLDBR, _s: None}, + (_CTon, _MDB), + ((DIRECTORY_BUCKET_TOKEN, {_sQ: _ct}), (MAX_DIRECTORY_BUCKETS, {_sQ: _mdb})), +) + +LIST_DIRECTORY_BUCKETS_OUTPUT: StaticSchema = ( + 18, + n0, + _LDBO, + {_sN: _LAMDBR, _smi: None}, + (_Bu, _CTon), + ((BUCKETS, 0), (DIRECTORY_BUCKET_TOKEN, 0)), +) + +LIST_DIRECTORY_BUCKETS: StaticOperationSchema = ( + 23, + n0, + _LDB, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "GET", "uri": "/?x-id=ListDirectoryBuckets", "code": 200} + ), + }, + LIST_DIRECTORY_BUCKETS_INPUT, + LIST_DIRECTORY_BUCKETS_OUTPUT, + (), +) + +DELIMITER: StaticSchema = (3, n0, _Deli, 0) + +ENCODING_TYPE: StaticSchema = (14, n0, _ETnc, 0, (_u,), ((-1, {_sV: _u}),)) + +KEY_MARKER: StaticSchema = (3, n0, _KM, 0) + +MAX_UPLOADS: StaticSchema = (7, n0, _MUa, 0) + +UPLOAD_ID_MARKER: StaticSchema = (3, n0, _UIM, 0) + +LIST_MULTIPART_UPLOADS_INPUT: StaticSchema = ( + 18, + n0, + _LMUI, + {_sSI: _cLMUR, _s: None}, + (_B, _Deli, _ETnc, _KM, _MUa, _Pr, _UIM, _EBO, _RP), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (DELIMITER, {_sQ: _d}), + (ENCODING_TYPE, {_sQ: _et}), + (KEY_MARKER, {_sQ: _km}), + (MAX_UPLOADS, {_sQ: _mu}), + (PREFIX, {_sP: MappingProxyType({"name": "Prefix"}), _sQ: _pre}), + (UPLOAD_ID_MARKER, {_sQ: _uim}), + (ACCOUNT_ID, {_sH: _xaebo}), + (REQUEST_PAYER, {_sH: _xarp}), + ), +) + +COMMON_PREFIX: StaticSchema = (18, n0, _CPo, 0, (_Pr,), ((PREFIX, 0),)) + +COMMON_PREFIX_LIST: StaticSchema = (16, n0, _CPLo, 0, (_m,), ((COMMON_PREFIX, 0),)) + +NEXT_KEY_MARKER: StaticSchema = (3, n0, _NKM, 0) + +NEXT_UPLOAD_ID_MARKER: StaticSchema = (3, n0, _NUIM, 0) + +INITIATED: StaticSchema = (4, n0, _In, 0) + +INITIATOR: StaticSchema = (18, n0, _Ini, 0, (_ID, _DN), ((ID, 0), (DISPLAY_NAME, 0))) + +MULTIPART_UPLOAD: StaticSchema = ( + 18, + n0, + _MU, + 0, + (_UI, _K, _In, _SC, _O, _Ini, _CA, _CT), + ( + (MULTIPART_UPLOAD_ID, 0), + (OBJECT_KEY, 0), + (INITIATED, 0), + (STORAGE_CLASS, 0), + (OWNER, 0), + (INITIATOR, 0), + (CHECKSUM_ALGORITHM, 0), + (CHECKSUM_TYPE, 0), + ), +) + +MULTIPART_UPLOAD_LIST: StaticSchema = (16, n0, _MUL, 0, (_m,), ((MULTIPART_UPLOAD, 0),)) + +LIST_MULTIPART_UPLOADS_OUTPUT: StaticSchema = ( + 18, + n0, + _LMUO, + {_sN: _LMUR, _smi: None}, + (_B, _KM, _UIM, _NKM, _Pr, _Deli, _NUIM, _MUa, _ITs, _U, _CPom, _ETnc, _RC), + ( + (BUCKET_NAME, 0), + (KEY_MARKER, 0), + (UPLOAD_ID_MARKER, 0), + (NEXT_KEY_MARKER, 0), + (PREFIX, 0), + (DELIMITER, 0), + (NEXT_UPLOAD_ID_MARKER, 0), + (MAX_UPLOADS, 0), + (IS_TRUNCATED, 0), + (MULTIPART_UPLOAD_LIST, {_sN: _Up, _sFm: None}), + (COMMON_PREFIX_LIST, {_sFm: None}), + (ENCODING_TYPE, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +LIST_MULTIPART_UPLOADS: StaticOperationSchema = ( + 23, + n0, + _LMU, + {_smith: MappingProxyType({"method": "GET", "uri": "/?uploads", "code": 200})}, + LIST_MULTIPART_UPLOADS_INPUT, + LIST_MULTIPART_UPLOADS_OUTPUT, + (), +) + +INVALID_PREFIX: StaticSchema = (18, n0, _IPn, {_smit: _c, _sE: 400}) + +ANNOTATION_PREFIX: StaticSchema = (3, n0, _APn, 0) + +MAX_ANNOTATION_RESULTS: StaticSchema = (7, n0, _MAR, 0) + +LIST_OBJECT_ANNOTATIONS_INPUT: StaticSchema = ( + 18, + n0, + _LOAI, + {_sSI: _cLOAR, _s: None}, + (_B, _K, _VI, _MAR, _APn, _CTon, _RP, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (MAX_ANNOTATION_RESULTS, {_sQ: _mar}), + (ANNOTATION_PREFIX, {_sQ: _ap}), + (TOKEN, {_sQ: _ct}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +ANNOTATION_COUNT: StaticSchema = (7, n0, _ACnn, 0) + +CHECKSUM_ALGORITHM_LIST: StaticSchema = ( + 16, + n0, + _CAL, + 0, + (_m,), + ((CHECKSUM_ALGORITHM, 0),), +) + +ANNOTATION_ENTRY: StaticSchema = ( + 18, + n0, + _AE, + 0, + (_AN, _LM, _ET, _CA, _Si, _RS), + ( + (ANNOTATION_NAME, 1), + (LAST_MODIFIED, 1), + (E_TAG, 0), + (CHECKSUM_ALGORITHM_LIST, {_sFm: None}), + (SIZE, 1), + (REPLICATION_STATUS, 0), + ), +) + +ANNOTATION_LIST: StaticSchema = ( + 16, + n0, + _AL, + 0, + (_m,), + ((ANNOTATION_ENTRY, {_sN: _AE}),), +) + +LIST_OBJECT_ANNOTATIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOAO, + {_smi: None}, + (_An, _B, _K, _OVI, _APn, _MAR, _ACnn, _CTon, _NCT, _RC), + ( + (ANNOTATION_LIST, 0), + (BUCKET_NAME, 0), + (OBJECT_KEY, 0), + (OBJECT_VERSION_ID, {_sH: _xaovi}), + (ANNOTATION_PREFIX, 0), + (MAX_ANNOTATION_RESULTS, 0), + (ANNOTATION_COUNT, 0), + (TOKEN, 0), + (NEXT_TOKEN, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +LIST_OBJECT_ANNOTATIONS: StaticOperationSchema = ( + 23, + n0, + _LOA, + { + _smith: MappingProxyType( + { + "method": "GET", + "uri": "/{Key+}?annotation&x-id=ListObjectAnnotations", + "code": 200, + } + ) + }, + LIST_OBJECT_ANNOTATIONS_INPUT, + LIST_OBJECT_ANNOTATIONS_OUTPUT, + (INVALID_PREFIX, NO_SUCH_BUCKET, NO_SUCH_KEY), +) + +MARKER: StaticSchema = (3, n0, _Ma, 0) + +MAX_KEYS: StaticSchema = (7, n0, _MKa, 0) + +OPTIONAL_OBJECT_ATTRIBUTES: StaticSchema = ( + 14, + n0, + _OOA, + 0, + (_RS_,), + ((-1, {_sV: _RSe}),), +) + +OPTIONAL_OBJECT_ATTRIBUTES_LIST: StaticSchema = ( + 16, + n0, + _OOAL, + 0, + (_m,), + ((OPTIONAL_OBJECT_ATTRIBUTES, 0),), +) + +LIST_OBJECTS_INPUT: StaticSchema = ( + 18, + n0, + _LOI, + {_sSI: _cLOR, _s: None}, + (_B, _Deli, _ETnc, _Ma, _MKa, _Pr, _RP, _EBO, _OOA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (DELIMITER, {_sQ: _d}), + (ENCODING_TYPE, {_sQ: _et}), + (MARKER, {_sQ: _ma}), + (MAX_KEYS, {_sQ: _mk}), + (PREFIX, {_sP: MappingProxyType({"name": "Prefix"}), _sQ: _pre}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (OPTIONAL_OBJECT_ATTRIBUTES_LIST, {_sH: _xaooa}), + ), +) + +IS_RESTORE_IN_PROGRESS: StaticSchema = (2, n0, _IRIP, 0) + +RESTORE_EXPIRY_DATE: StaticSchema = (4, n0, _REDe, 0) + +RESTORE_STATUS: StaticSchema = ( + 18, + n0, + _RSe, + 0, + (_IRIP, _REDe), + ((IS_RESTORE_IN_PROGRESS, 0), (RESTORE_EXPIRY_DATE, 0)), +) + +OBJECT_STORAGE_CLASS: StaticSchema = ( + 14, + n0, + _OSC, + 0, + ( + _STANDARD, + _RR, + _GLACIER, + _SI, + _OI, + _IT, + _DA, + _OUTPOSTS, + _GI, + _SNOW, + _EO, + _FO_, + _FO__, + _ABW, + _ABLCW, + ), + ( + (-1, {_sV: _STANDARD}), + (-1, {_sV: _RR}), + (-1, {_sV: _GLACIER}), + (-1, {_sV: _SI}), + (-1, {_sV: _OI}), + (-1, {_sV: _IT}), + (-1, {_sV: _DA}), + (-1, {_sV: _OUTPOSTS}), + (-1, {_sV: _GI}), + (-1, {_sV: _SNOW}), + (-1, {_sV: _EO}), + (-1, {_sV: _FO_}), + (-1, {_sV: _FO__}), + (-1, {_sV: _ABW}), + (-1, {_sV: _ABLCW}), + ), +) + +OBJECT: StaticSchema = ( + 18, + n0, + _Obj, + 0, + (_K, _LM, _ET, _CA, _CT, _Si, _SC, _O, _RSe), + ( + (OBJECT_KEY, 0), + (LAST_MODIFIED, 0), + (E_TAG, 0), + (CHECKSUM_ALGORITHM_LIST, {_sFm: None}), + (CHECKSUM_TYPE, 0), + (SIZE, 0), + (OBJECT_STORAGE_CLASS, 0), + (OWNER, 0), + (RESTORE_STATUS, 0), + ), +) + +OBJECT_LIST: StaticSchema = (16, n0, _OL, 0, (_m,), ((OBJECT, 0),)) + +NEXT_MARKER: StaticSchema = (3, n0, _NM, 0) + +LIST_OBJECTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOO, + {_sN: _LBR, _smi: None}, + (_ITs, _Ma, _NM, _Cont, _N, _Pr, _Deli, _MKa, _CPom, _ETnc, _RC), + ( + (IS_TRUNCATED, 0), + (MARKER, 0), + (NEXT_MARKER, 0), + (OBJECT_LIST, {_sFm: None}), + (BUCKET_NAME, 0), + (PREFIX, 0), + (DELIMITER, 0), + (MAX_KEYS, 0), + (COMMON_PREFIX_LIST, {_sFm: None}), + (ENCODING_TYPE, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +LIST_OBJECTS: StaticOperationSchema = ( + 23, + n0, + _LO, + {_smith: MappingProxyType({"method": "GET", "uri": "/", "code": 200})}, + LIST_OBJECTS_INPUT, + LIST_OBJECTS_OUTPUT, + (NO_SUCH_BUCKET,), +) + +FETCH_OWNER: StaticSchema = (2, n0, _FOe, 0) + +START_AFTER: StaticSchema = (3, n0, _SAt, 0) + +LIST_OBJECTS_V2_INPUT: StaticSchema = ( + 18, + n0, + _LOVI, + {_sSI: _cLOVR, _s: None}, + (_B, _Deli, _ETnc, _MKa, _Pr, _CTon, _FOe, _SAt, _RP, _EBO, _OOA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (DELIMITER, {_sQ: _d}), + (ENCODING_TYPE, {_sQ: _et}), + (MAX_KEYS, {_sQ: _mk}), + (PREFIX, {_sP: MappingProxyType({"name": "Prefix"}), _sQ: _pre}), + (TOKEN, {_sQ: _ct}), + (FETCH_OWNER, {_sQ: _fo}), + (START_AFTER, {_sQ: _sa}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (OPTIONAL_OBJECT_ATTRIBUTES_LIST, {_sH: _xaooa}), + ), +) + +KEY_COUNT: StaticSchema = (7, n0, _KC, 0) + +LIST_OBJECTS_V2_OUTPUT: StaticSchema = ( + 18, + n0, + _LOVO, + {_sN: _LBR, _smi: None}, + (_ITs, _Cont, _N, _Pr, _Deli, _MKa, _CPom, _ETnc, _KC, _CTon, _NCT, _SAt, _RC), + ( + (IS_TRUNCATED, 0), + (OBJECT_LIST, {_sFm: None}), + (BUCKET_NAME, 0), + (PREFIX, 0), + (DELIMITER, 0), + (MAX_KEYS, 0), + (COMMON_PREFIX_LIST, {_sFm: None}), + (ENCODING_TYPE, 0), + (KEY_COUNT, 0), + (TOKEN, 0), + (NEXT_TOKEN, 0), + (START_AFTER, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +LIST_OBJECTS_V2: StaticOperationSchema = ( + 23, + n0, + _LOV, + {_smith: MappingProxyType({"method": "GET", "uri": "/?list-type=2", "code": 200})}, + LIST_OBJECTS_V2_INPUT, + LIST_OBJECTS_V2_OUTPUT, + (NO_SUCH_BUCKET,), +) + +VERSION_ID_MARKER: StaticSchema = (3, n0, _VIM, 0) + +LIST_OBJECT_VERSIONS_INPUT: StaticSchema = ( + 18, + n0, + _LOVIi, + {_sSI: _cLOVRo, _s: None}, + (_B, _Deli, _ETnc, _KM, _MKa, _Pr, _VIM, _EBO, _RP, _OOA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (DELIMITER, {_sQ: _d}), + (ENCODING_TYPE, {_sQ: _et}), + (KEY_MARKER, {_sQ: _km}), + (MAX_KEYS, {_sQ: _mk}), + (PREFIX, {_sP: MappingProxyType({"name": "Prefix"}), _sQ: _pre}), + (VERSION_ID_MARKER, {_sQ: _vim}), + (ACCOUNT_ID, {_sH: _xaebo}), + (REQUEST_PAYER, {_sH: _xarp}), + (OPTIONAL_OBJECT_ATTRIBUTES_LIST, {_sH: _xaooa}), + ), +) + +IS_LATEST: StaticSchema = (2, n0, _IL, 0) + +DELETE_MARKER_ENTRY: StaticSchema = ( + 18, + n0, + _DME, + 0, + (_O, _K, _VI, _IL, _LM), + ( + (OWNER, 0), + (OBJECT_KEY, 0), + (OBJECT_VERSION_ID, 0), + (IS_LATEST, 0), + (LAST_MODIFIED, 0), + ), +) + +DELETE_MARKERS: StaticSchema = (16, n0, _DMe, 0, (_m,), ((DELETE_MARKER_ENTRY, 0),)) + +NEXT_VERSION_ID_MARKER: StaticSchema = (3, n0, _NVIM, 0) + +OBJECT_VERSION_STORAGE_CLASS: StaticSchema = ( + 14, + n0, + _OVSC, + 0, + (_STANDARD,), + ((-1, {_sV: _STANDARD}),), +) + +OBJECT_VERSION: StaticSchema = ( + 18, + n0, + _OV, + 0, + (_ET, _CA, _CT, _Si, _SC, _K, _VI, _IL, _LM, _O, _RSe), + ( + (E_TAG, 0), + (CHECKSUM_ALGORITHM_LIST, {_sFm: None}), + (CHECKSUM_TYPE, 0), + (SIZE, 0), + (OBJECT_VERSION_STORAGE_CLASS, 0), + (OBJECT_KEY, 0), + (OBJECT_VERSION_ID, 0), + (IS_LATEST, 0), + (LAST_MODIFIED, 0), + (OWNER, 0), + (RESTORE_STATUS, 0), + ), +) + +OBJECT_VERSION_LIST: StaticSchema = (16, n0, _OVL, 0, (_m,), ((OBJECT_VERSION, 0),)) + +LIST_OBJECT_VERSIONS_OUTPUT: StaticSchema = ( + 18, + n0, + _LOVOi, + {_sN: _LVR, _smi: None}, + (_ITs, _KM, _VIM, _NKM, _NVIM, _Ve, _DMe, _N, _Pr, _Deli, _MKa, _CPom, _ETnc, _RC), + ( + (IS_TRUNCATED, 0), + (KEY_MARKER, 0), + (VERSION_ID_MARKER, 0), + (NEXT_KEY_MARKER, 0), + (NEXT_VERSION_ID_MARKER, 0), + (OBJECT_VERSION_LIST, {_sN: _Ver, _sFm: None}), + (DELETE_MARKERS, {_sN: _DM, _sFm: None}), + (BUCKET_NAME, 0), + (PREFIX, 0), + (DELIMITER, 0), + (MAX_KEYS, 0), + (COMMON_PREFIX_LIST, {_sFm: None}), + (ENCODING_TYPE, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +LIST_OBJECT_VERSIONS: StaticOperationSchema = ( + 23, + n0, + _LOVi, + {_smith: MappingProxyType({"method": "GET", "uri": "/?versions", "code": 200})}, + LIST_OBJECT_VERSIONS_INPUT, + LIST_OBJECT_VERSIONS_OUTPUT, + (), +) + +LIST_PARTS_INPUT: StaticSchema = ( + 18, + n0, + _LPI, + {_sSI: _cLPR, _s: None}, + (_B, _K, _MP, _PNM, _UI, _RP, _EBO, _SSECA, _SSECK, _SSECKMD), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (MAX_PARTS, {_sQ: _mp}), + (PART_NUMBER_MARKER, {_sQ: _pnm}), + (MULTIPART_UPLOAD_ID, {_sQ: _uI, _sm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + ), +) + +PART: StaticSchema = ( + 18, + n0, + _Par, + 0, + ( + _PN, + _LM, + _ET, + _Si, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + ), + ( + (PART_NUMBER, 0), + (LAST_MODIFIED, 0), + (E_TAG, 0), + (SIZE, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + ), +) + +PARTS: StaticSchema = (16, n0, _Pa, 0, (_m,), ((PART, 0),)) + +LIST_PARTS_OUTPUT: StaticSchema = ( + 18, + n0, + _LPO, + {_sN: _LPR, _smi: None}, + (_AD, _ARI, _B, _K, _UI, _PNM, _NPNM, _MP, _ITs, _Pa, _Ini, _O, _SC, _RC, _CA, _CT), + ( + (ABORT_DATE, {_sH: _xaad}), + (ABORT_RULE_ID, {_sH: _xaari}), + (BUCKET_NAME, 0), + (OBJECT_KEY, 0), + (MULTIPART_UPLOAD_ID, 0), + (PART_NUMBER_MARKER, 0), + (NEXT_PART_NUMBER_MARKER, 0), + (MAX_PARTS, 0), + (IS_TRUNCATED, 0), + (PARTS, {_sN: _Par, _sFm: None}), + (INITIATOR, 0), + (OWNER, 0), + (STORAGE_CLASS, 0), + (REQUEST_CHARGED, {_sH: _xarc}), + (CHECKSUM_ALGORITHM, 0), + (CHECKSUM_TYPE, 0), + ), +) + +LIST_PARTS: StaticOperationSchema = ( + 23, + n0, + _LP, + { + _smith: MappingProxyType( + {"method": "GET", "uri": "/{Key+}?x-id=ListParts", "code": 200} + ) + }, + LIST_PARTS_INPUT, + LIST_PARTS_OUTPUT, + (), +) + +PUT_BUCKET_ABAC_INPUT: StaticSchema = ( + 18, + n0, + _PBAI, + {_sSI: _cPBAR, _s: None}, + (_B, _CMDo, _CA, _EBO, _AS), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + (ABAC_STATUS, {_sN: _AS, _sm: None, _sPm: None}), + ), +) + +PUT_BUCKET_ABAC_OUTPUT: StaticSchema = (18, n0, _PBAO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_ABAC: StaticOperationSchema = ( + 23, + n0, + _PBA, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _smith: MappingProxyType({"method": "PUT", "uri": "/?abac", "code": 200}), + }, + PUT_BUCKET_ABAC_INPUT, + PUT_BUCKET_ABAC_OUTPUT, + (), +) + +PUT_BUCKET_ACCELERATE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBACI, + {_sSI: _cPBACR, _s: None}, + (_B, _AC, _EBO, _CA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ACCELERATE_CONFIGURATION, {_sN: _AC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + ), +) + +PUT_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBACO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_ACCELERATE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBAC, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?accelerate", "code": 200}), + }, + PUT_BUCKET_ACCELERATE_CONFIGURATION_INPUT, + PUT_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT, + (), +) + +PUT_BUCKET_ACL_INPUT: StaticSchema = ( + 18, + n0, + _PBAIu, + {_sSI: _cPBARo, _s: None}, + (_ACL_, _ACP, _B, _CMDo, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _EBO), + ( + (BUCKET_CANNED_ACL, {_sH: _xaa}), + (ACCESS_CONTROL_POLICY, {_sN: _ACP, _sPm: None}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE, {_sH: _xagw}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_ACL_OUTPUT: StaticSchema = (18, n0, _PBAOu, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_ACL: StaticOperationSchema = ( + 23, + n0, + _PBAu, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?acl", "code": 200}), + }, + PUT_BUCKET_ACL_INPUT, + PUT_BUCKET_ACL_OUTPUT, + (), +) + +PUT_BUCKET_ANALYTICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBACIu, + {_sSI: _cPBACRo, _s: None}, + (_B, _I, _ACn, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (ANALYTICS_ID, {_sQ: _i, _sm: None}), + (ANALYTICS_CONFIGURATION, {_sN: _ACn, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBACOu, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_ANALYTICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBACu, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?analytics", "code": 200}), + }, + PUT_BUCKET_ANALYTICS_CONFIGURATION_INPUT, + PUT_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT, + (), +) + +CORS_CONFIGURATION: StaticSchema = ( + 18, + n0, + _CORSC, + 0, + (_CORSRu,), + ((CORS_RULES, {_sN: _CORSR, _sFm: None, _sm: None}),), +) + +PUT_BUCKET_CORS_INPUT: StaticSchema = ( + 18, + n0, + _PBCI, + {_sSI: _cPBCR, _s: None}, + (_B, _CORSC, _CMDo, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CORS_CONFIGURATION, {_sN: _CORSC, _sm: None, _sPm: None}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_CORS_OUTPUT: StaticSchema = (18, n0, _PBCO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_CORS: StaticOperationSchema = ( + 23, + n0, + _PBC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?cors", "code": 200}), + }, + PUT_BUCKET_CORS_INPUT, + PUT_BUCKET_CORS_OUTPUT, + (), +) + +PUT_BUCKET_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _PBEI, + {_sSI: _cPBER, _s: None}, + (_B, _CMDo, _CA, _SSEC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (SERVER_SIDE_ENCRYPTION_CONFIGURATION, {_sN: _SSEC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_ENCRYPTION_OUTPUT: StaticSchema = (18, n0, _PBEO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _PBE, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?encryption", "code": 200}), + }, + PUT_BUCKET_ENCRYPTION_INPUT, + PUT_BUCKET_ENCRYPTION_OUTPUT, + (), +) + +PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBITCI, + {_sSI: _cPBITCR, _s: None}, + (_B, _I, _EBO, _ITCn), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INTELLIGENT_TIERING_ID, {_sQ: _i, _sm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + (INTELLIGENT_TIERING_CONFIGURATION, {_sN: _ITCn, _sm: None, _sPm: None}), + ), +) + +PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBITCO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBITC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?intelligent-tiering", "code": 200} + ), + }, + PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT, + PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT, + (), +) + +PUT_BUCKET_INVENTORY_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBICI, + {_sSI: _cPBICR, _s: None}, + (_B, _I, _IC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (INVENTORY_ID, {_sQ: _i, _sm: None}), + (INVENTORY_CONFIGURATION, {_sN: _IC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_INVENTORY_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBICO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_INVENTORY_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBIC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?inventory", "code": 200}), + }, + PUT_BUCKET_INVENTORY_CONFIGURATION_INPUT, + PUT_BUCKET_INVENTORY_CONFIGURATION_OUTPUT, + (), +) + +BUCKET_LIFECYCLE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _BLCu, + 0, + (_Ru,), + ((LIFECYCLE_RULES, {_sN: _Rul, _sFm: None, _sm: None}),), +) + +PUT_BUCKET_LIFECYCLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBLCI, + {_sSI: _cPBLCR, _s: None}, + (_B, _CA, _LCi, _EBO, _TDMOS), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (BUCKET_LIFECYCLE_CONFIGURATION, {_sN: _LCi, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + (TRANSITION_DEFAULT_MINIMUM_OBJECT_SIZE, {_sH: _xatdmos}), + ), +) + +PUT_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBLCO, + {_smi: None}, + (_TDMOS,), + ((TRANSITION_DEFAULT_MINIMUM_OBJECT_SIZE, {_sH: _xatdmos}),), +) + +PUT_BUCKET_LIFECYCLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBLC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?lifecycle", "code": 200}), + }, + PUT_BUCKET_LIFECYCLE_CONFIGURATION_INPUT, + PUT_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT, + (), +) + +BUCKET_LOGGING_STATUS: StaticSchema = ( + 18, + n0, + _BLS, + 0, + (_LEo,), + ((LOGGING_ENABLED, 0),), +) + +PUT_BUCKET_LOGGING_INPUT: StaticSchema = ( + 18, + n0, + _PBLI, + {_sSI: _cPBLR, _s: None}, + (_B, _BLS, _CMDo, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (BUCKET_LOGGING_STATUS, {_sN: _BLS, _sm: None, _sPm: None}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_LOGGING_OUTPUT: StaticSchema = (18, n0, _PBLO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_LOGGING: StaticOperationSchema = ( + 23, + n0, + _PBL, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?logging", "code": 200}), + }, + PUT_BUCKET_LOGGING_INPUT, + PUT_BUCKET_LOGGING_OUTPUT, + (), +) + +PUT_BUCKET_METRICS_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBMCI, + {_sSI: _cPBMCR, _s: None}, + (_B, _I, _MCe, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (METRICS_ID, {_sQ: _i, _sm: None}), + (METRICS_CONFIGURATION, {_sN: _MCe, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_METRICS_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBMCO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_METRICS_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBMC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?metrics", "code": 200}), + }, + PUT_BUCKET_METRICS_CONFIGURATION_INPUT, + PUT_BUCKET_METRICS_CONFIGURATION_OUTPUT, + (), +) + +NOTIFICATION_CONFIGURATION: StaticSchema = ( + 18, + n0, + _NC, + 0, + (_TCo, _QCu, _LFCa, _EBC), + ( + (TOPIC_CONFIGURATION_LIST, {_sN: _TC, _sFm: None}), + (QUEUE_CONFIGURATION_LIST, {_sN: _QC, _sFm: None}), + (LAMBDA_FUNCTION_CONFIGURATION_LIST, {_sN: _CFC, _sFm: None}), + (EVENT_BRIDGE_CONFIGURATION, 0), + ), +) + +SKIP_VALIDATION: StaticSchema = (2, n0, _SV, 0) + +PUT_BUCKET_NOTIFICATION_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _PBNCI, + {_sSI: _cPBNCR, _s: None}, + (_B, _NC, _EBO, _SDV), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (NOTIFICATION_CONFIGURATION, {_sN: _NC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + (SKIP_VALIDATION, {_sH: _xasdv}), + ), +) + +PUT_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _PBNCO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_NOTIFICATION_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _PBNC, + { + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?notification", "code": 200} + ), + }, + PUT_BUCKET_NOTIFICATION_CONFIGURATION_INPUT, + PUT_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT, + (), +) + +PUT_BUCKET_OWNERSHIP_CONTROLS_INPUT: StaticSchema = ( + 18, + n0, + _PBOCI, + {_sSI: _cPBOCR, _s: None}, + (_B, _CMDo, _EBO, _OC, _CA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (ACCOUNT_ID, {_sH: _xaebo}), + (OWNERSHIP_CONTROLS, {_sN: _OC, _sm: None, _sPm: None}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + ), +) + +PUT_BUCKET_OWNERSHIP_CONTROLS_OUTPUT: StaticSchema = ( + 18, + n0, + _PBOCO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_OWNERSHIP_CONTROLS: StaticOperationSchema = ( + 23, + n0, + _PBOC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?ownershipControls", "code": 200} + ), + }, + PUT_BUCKET_OWNERSHIP_CONTROLS_INPUT, + PUT_BUCKET_OWNERSHIP_CONTROLS_OUTPUT, + (), +) + +CONFIRM_REMOVE_SELF_BUCKET_ACCESS: StaticSchema = (2, n0, _CRSBA, 0) + +PUT_BUCKET_POLICY_INPUT: StaticSchema = ( + 18, + n0, + _PBPI, + {_sSI: _cPBPR, _s: None}, + (_B, _CMDo, _CA, _CRSBA, _Po, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (CONFIRM_REMOVE_SELF_BUCKET_ACCESS, {_sH: _xacrsba}), + (POLICY, 17), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_POLICY_OUTPUT: StaticSchema = (18, n0, _PBPO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_POLICY: StaticOperationSchema = ( + 23, + n0, + _PBP, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?policy", "code": 200}), + }, + PUT_BUCKET_POLICY_INPUT, + PUT_BUCKET_POLICY_OUTPUT, + (), +) + +OBJECT_LOCK_TOKEN: StaticSchema = (3, n0, _OLT, 0) + +PUT_BUCKET_REPLICATION_INPUT: StaticSchema = ( + 18, + n0, + _PBRI, + {_sSI: _cPBRR, _s: None}, + (_B, _CMDo, _CA, _RCe, _Tok, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (REPLICATION_CONFIGURATION, {_sN: _RCe, _sm: None, _sPm: None}), + (OBJECT_LOCK_TOKEN, {_sH: _xabolt}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_REPLICATION_OUTPUT: StaticSchema = (18, n0, _PBRO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_REPLICATION: StaticOperationSchema = ( + 23, + n0, + _PBR, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?replication", "code": 200} + ), + }, + PUT_BUCKET_REPLICATION_INPUT, + PUT_BUCKET_REPLICATION_OUTPUT, + (), +) + +REQUEST_PAYMENT_CONFIGURATION: StaticSchema = (18, n0, _RPC, 0, (_Pay,), ((PAYER, 1),)) + +PUT_BUCKET_REQUEST_PAYMENT_INPUT: StaticSchema = ( + 18, + n0, + _PBRPI, + {_sSI: _cPBRPR, _s: None}, + (_B, _CMDo, _CA, _RPC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (REQUEST_PAYMENT_CONFIGURATION, {_sN: _RPC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_REQUEST_PAYMENT_OUTPUT: StaticSchema = ( + 18, + n0, + _PBRPO, + {_sSI: _sU, _smi: None}, +) + +PUT_BUCKET_REQUEST_PAYMENT: StaticOperationSchema = ( + 23, + n0, + _PBRP, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?requestPayment", "code": 200} + ), + }, + PUT_BUCKET_REQUEST_PAYMENT_INPUT, + PUT_BUCKET_REQUEST_PAYMENT_OUTPUT, + (), +) + +TAGGING: StaticSchema = (18, n0, _Ta, 0, (_TS,), ((TAG_SET, 1),)) + +PUT_BUCKET_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _PBTI, + {_sSI: _cPBTR, _s: None}, + (_B, _CMDo, _CA, _Ta, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (TAGGING, {_sN: _Ta, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_TAGGING_OUTPUT: StaticSchema = (18, n0, _PBTO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_TAGGING: StaticOperationSchema = ( + 23, + n0, + _PBT, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?tagging", "code": 200}), + }, + PUT_BUCKET_TAGGING_INPUT, + PUT_BUCKET_TAGGING_OUTPUT, + (), +) + +MFA_DELETE: StaticSchema = ( + 14, + n0, + _MFAD, + 0, + (_E, _D), + ((-1, {_sV: _E}), (-1, {_sV: _D})), +) + +VERSIONING_CONFIGURATION: StaticSchema = ( + 18, + n0, + _VCe, + 0, + (_MFAD, _S), + ((MFA_DELETE, {_sN: _MDf}), (BUCKET_VERSIONING_STATUS, 0)), +) + +PUT_BUCKET_VERSIONING_INPUT: StaticSchema = ( + 18, + n0, + _PBVI, + {_sSI: _cPBVR, _s: None}, + (_B, _CMDo, _CA, _MFA, _VCe, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (MFA, {_sH: _xam_}), + (VERSIONING_CONFIGURATION, {_sN: _VCe, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_VERSIONING_OUTPUT: StaticSchema = (18, n0, _PBVO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_VERSIONING: StaticOperationSchema = ( + 23, + n0, + _PBV, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?versioning", "code": 200}), + }, + PUT_BUCKET_VERSIONING_INPUT, + PUT_BUCKET_VERSIONING_OUTPUT, + (), +) + +WEBSITE_CONFIGURATION: StaticSchema = ( + 18, + n0, + _WC, + 0, + (_EDr, _IDnd, _RART, _RRou), + ( + (ERROR_DOCUMENT, 0), + (INDEX_DOCUMENT, 0), + (REDIRECT_ALL_REQUESTS_TO, 0), + (ROUTING_RULES, 0), + ), +) + +PUT_BUCKET_WEBSITE_INPUT: StaticSchema = ( + 18, + n0, + _PBWI, + {_sSI: _cPBWR, _s: None}, + (_B, _CMDo, _CA, _WC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (WEBSITE_CONFIGURATION, {_sN: _WC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_BUCKET_WEBSITE_OUTPUT: StaticSchema = (18, n0, _PBWO, {_sSI: _sU, _smi: None}) + +PUT_BUCKET_WEBSITE: StaticOperationSchema = ( + 23, + n0, + _PBW, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/?website", "code": 200}), + }, + PUT_BUCKET_WEBSITE_INPUT, + PUT_BUCKET_WEBSITE_OUTPUT, + (), +) + +ENCRYPTION_TYPE_MISMATCH: StaticSchema = (18, n0, _ETM, {_smit: _c, _sE: 400}) + +INVALID_REQUEST: StaticSchema = (18, n0, _IR, {_smit: _c, _sE: 400}) + +INVALID_WRITE_OFFSET: StaticSchema = (18, n0, _IWO, {_smit: _c, _sE: 400}) + +WRITE_OFFSET_BYTES: StaticSchema = (8, n0, _WOB, 0) + +PUT_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _POI, + {_sSI: _cPOR, _s: None}, + ( + _ACL_, + _Bo, + _B, + _CC, + _CD, + _CE, + _CL, + _CLo, + _CMDo, + _CTo, + _CA, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _Exp, + _IM, + _INM, + _GFC, + _GR, + _GRACP, + _GWACP, + _K, + _WOB, + _M, + _SSE, + _SC, + _WRL, + _SSECA, + _SSECK, + _SSECKMD, + _SSEKMSKI, + _SSEKMSEC, + _BKE, + _RP, + _Ta, + _OLM, + _OLRUD, + _OLLHS, + _OLEH, + _OLEHDD, + _OLEHDY, + _EBO, + ), + ( + (OBJECT_CANNED_ACL, {_sH: _xaa}), + (STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CACHE_CONTROL, {_sH: _CC_}), + (CONTENT_DISPOSITION, {_sH: _CD_}), + (CONTENT_ENCODING, {_sH: _CE_}), + (CONTENT_LANGUAGE, {_sH: _CL_}), + (CONTENT_LENGTH, {_sH: _CL__}), + (CONTENT_MD5, {_sH: _CM}), + (CONTENT_TYPE, {_sH: _CT_}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (EXPIRES, {_sH: _Exp}), + (IF_MATCH, {_sH: _IM_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (WRITE_OFFSET_BYTES, {_sH: _xawob}), + (METADATA, {_sPH: _xam}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (STORAGE_CLASS, {_sH: _xasc}), + (WEBSITE_REDIRECT_LOCATION, {_sH: _xawrl}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_PAYER, {_sH: _xarp}), + (TAGGING_HEADER, {_sH: _xat}), + (OBJECT_LOCK_MODE, {_sH: _xaolm}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xaolrud}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xaollh}), + (OBJECT_LOCK_EVENT_HOLD, {_sH: _xaoleh}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_DAYS, {_sH: _xaolehdd}), + (OBJECT_LOCK_EVENT_HOLD_DURATION_YEARS, {_sH: _xaolehdy}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _POO, + {_smi: None}, + ( + _Ex, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _SSE, + _VI, + _SSECA, + _SSECKMD, + _SSEKMSKI, + _SSEKMSEC, + _BKE, + _Si, + _RC, + ), + ( + (EXPIRATION, {_sH: _xae}), + (E_TAG, {_sH: _ET}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (OBJECT_VERSION_ID, {_sH: _xavi}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (SSEKMS_ENCRYPTION_CONTEXT, {_sH: _xassec}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (SIZE, {_sH: _xaos}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +TOO_MANY_PARTS: StaticSchema = (18, n0, _TMP, {_smit: _c, _sE: 400}) + +PUT_OBJECT: StaticOperationSchema = ( + 23, + n0, + _PO, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?x-id=PutObject", "code": 200} + ), + }, + PUT_OBJECT_INPUT, + PUT_OBJECT_OUTPUT, + (ENCRYPTION_TYPE_MISMATCH, INVALID_REQUEST, INVALID_WRITE_OFFSET, TOO_MANY_PARTS), +) + +PUT_OBJECT_ACL_INPUT: StaticSchema = ( + 18, + n0, + _POAI, + {_sSI: _cPOAR, _s: None}, + (_ACL_, _ACP, _B, _CMDo, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _K, _RP, _VI, _EBO), + ( + (OBJECT_CANNED_ACL, {_sH: _xaa}), + (ACCESS_CONTROL_POLICY, {_sN: _ACP, _sPm: None}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (GRANT_FULL_CONTROL, {_sH: _xagfc}), + (GRANT_READ, {_sH: _xagr}), + (GRANT_READ_ACP, {_sH: _xagra}), + (GRANT_WRITE, {_sH: _xagw}), + (GRANT_WRITE_ACP, {_sH: _xagwa}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_ACL_OUTPUT: StaticSchema = ( + 18, + n0, + _POAO, + {_smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +PUT_OBJECT_ACL: StaticOperationSchema = ( + 23, + n0, + _POA, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType({"method": "PUT", "uri": "/{Key+}?acl", "code": 200}), + }, + PUT_OBJECT_ACL_INPUT, + PUT_OBJECT_ACL_OUTPUT, + (NO_SUCH_KEY,), +) + +ANNOTATION_LIMIT_EXCEEDED: StaticSchema = (18, n0, _ALE, {_smit: _c, _sE: 400}) + +ANNOTATION_NAME_TOO_LONG: StaticSchema = (18, n0, _ANTL, {_smit: _c, _sE: 400}) + +INVALID_ANNOTATION_NAME: StaticSchema = (18, n0, _IAN, {_smit: _c, _sE: 400}) + +PUT_OBJECT_ANNOTATION_INPUT: StaticSchema = ( + 18, + n0, + _POAIu, + {_sSI: _cPOARo, _s: None}, + ( + _B, + _K, + _VI, + _AN, + _AP, + _OIM, + _CA, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CMDo, + _RP, + _EBO, + ), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (ANNOTATION_NAME, {_sQ: _aN, _sm: None}), + (STREAMING_BLOB, 17), + (OBJECT_IF_MATCH, {_sH: _xaoim}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CONTENT_MD5, {_sH: _CM}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_ANNOTATION_OUTPUT: StaticSchema = ( + 18, + n0, + _POAOu, + {_smi: None}, + ( + _K, + _AN, + _OVI, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _CT, + _SSE, + _RC, + ), + ( + (OBJECT_KEY, 0), + (ANNOTATION_NAME, 0), + (OBJECT_VERSION_ID, {_sH: _xaovi}), + (E_TAG, {_sH: _ET}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (CHECKSUM_TYPE, {_sH: _xact}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +UNSUPPORTED_MEDIA_TYPE: StaticSchema = (18, n0, _UMT, {_smit: _c, _sE: 415}) + +PUT_OBJECT_ANNOTATION: StaticOperationSchema = ( + 23, + n0, + _POAu, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?annotation", "code": 200} + ), + }, + PUT_OBJECT_ANNOTATION_INPUT, + PUT_OBJECT_ANNOTATION_OUTPUT, + ( + ANNOTATION_LIMIT_EXCEEDED, + ANNOTATION_NAME_TOO_LONG, + INVALID_ANNOTATION_NAME, + INVALID_REQUEST, + NO_SUCH_BUCKET, + NO_SUCH_KEY, + UNSUPPORTED_MEDIA_TYPE, + ), +) + +PUT_OBJECT_LEGAL_HOLD_INPUT: StaticSchema = ( + 18, + n0, + _POLHI, + {_sSI: _cPOLHR, _s: None}, + (_B, _K, _LH, _RP, _VI, _CMDo, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_LOCK_LEGAL_HOLD, {_sN: _LH, _sPm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_LEGAL_HOLD_OUTPUT: StaticSchema = ( + 18, + n0, + _POLHO, + {_smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +PUT_OBJECT_LEGAL_HOLD: StaticOperationSchema = ( + 23, + n0, + _POLH, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?legal-hold", "code": 200} + ), + }, + PUT_OBJECT_LEGAL_HOLD_INPUT, + PUT_OBJECT_LEGAL_HOLD_OUTPUT, + (), +) + +PUT_OBJECT_LOCK_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _POLCI, + {_sSI: _cPOLCR, _s: None}, + (_B, _OLC, _RP, _Tok, _CMDo, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_LOCK_CONFIGURATION, {_sN: _OLC, _sPm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (OBJECT_LOCK_TOKEN, {_sH: _xabolt}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_LOCK_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _POLCO, + {_smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +PUT_OBJECT_LOCK_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _POLC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?object-lock", "code": 200} + ), + }, + PUT_OBJECT_LOCK_CONFIGURATION_INPUT, + PUT_OBJECT_LOCK_CONFIGURATION_OUTPUT, + (), +) + +PUT_OBJECT_RETENTION_INPUT: StaticSchema = ( + 18, + n0, + _PORI, + {_sSI: _cPORR, _s: None}, + (_B, _K, _Ret, _RP, _VI, _BGR, _CMDo, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_LOCK_RETENTION, {_sN: _Ret, _sPm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (BYPASS_GOVERNANCE_RETENTION, {_sH: _xabgr}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_OBJECT_RETENTION_OUTPUT: StaticSchema = ( + 18, + n0, + _PORO, + {_smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +PUT_OBJECT_RETENTION: StaticOperationSchema = ( + 23, + n0, + _POR, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?retention", "code": 200} + ), + }, + PUT_OBJECT_RETENTION_INPUT, + PUT_OBJECT_RETENTION_OUTPUT, + (), +) + +PUT_OBJECT_TAGGING_INPUT: StaticSchema = ( + 18, + n0, + _POTI, + {_sSI: _cPOTR, _s: None}, + (_B, _K, _VI, _CMDo, _CA, _Ta, _EBO, _RP), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (TAGGING, {_sN: _Ta, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + (REQUEST_PAYER, {_sH: _xarp}), + ), +) + +PUT_OBJECT_TAGGING_OUTPUT: StaticSchema = ( + 18, + n0, + _POTO, + {_smi: None}, + (_VI,), + ((OBJECT_VERSION_ID, {_sH: _xavi}),), +) + +PUT_OBJECT_TAGGING: StaticOperationSchema = ( + 23, + n0, + _POT, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?tagging", "code": 200} + ), + }, + PUT_OBJECT_TAGGING_INPUT, + PUT_OBJECT_TAGGING_OUTPUT, + (), +) + +PUT_PUBLIC_ACCESS_BLOCK_INPUT: StaticSchema = ( + 18, + n0, + _PPABI, + {_sSI: _cPPABR, _s: None}, + (_B, _CMDo, _CA, _PABC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (PUBLIC_ACCESS_BLOCK_CONFIGURATION, {_sN: _PABC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +PUT_PUBLIC_ACCESS_BLOCK_OUTPUT: StaticSchema = (18, n0, _PPABO, {_sSI: _sU, _smi: None}) + +PUT_PUBLIC_ACCESS_BLOCK: StaticOperationSchema = ( + 23, + n0, + _PPAB, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?publicAccessBlock", "code": 200} + ), + }, + PUT_PUBLIC_ACCESS_BLOCK_INPUT, + PUT_PUBLIC_ACCESS_BLOCK_OUTPUT, + (), +) + +IDEMPOTENCY_PARAMETER_MISMATCH: StaticSchema = (18, n0, _IPM, {_smit: _c, _sE: 400}) + +CLIENT_TOKEN: StaticSchema = (3, n0, _CTl, 0) + +RENAME_SOURCE: StaticSchema = (3, n0, _RSen, 0) + +RENAME_SOURCE_IF_MATCH: StaticSchema = (3, n0, _RSIM, 0) + +RENAME_SOURCE_IF_MODIFIED_SINCE: StaticSchema = (4, n0, _RSIMS, {_sF: _hd}) + +RENAME_SOURCE_IF_NONE_MATCH: StaticSchema = (3, n0, _RSINM, 0) + +RENAME_SOURCE_IF_UNMODIFIED_SINCE: StaticSchema = (4, n0, _RSIUS, {_sF: _hd}) + +RENAME_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _ROI, + {_sSI: _cROR, _s: None}, + (_B, _K, _RSen, _DIM, _DINM, _DIMS, _DIUS, _SIM, _SINM, _SIMS, _SIUS, _CTl), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (RENAME_SOURCE, {_sH: _xars_, _sm: None}), + (IF_MATCH, {_sH: _IM_}), + (IF_NONE_MATCH, {_sH: _INM_}), + (IF_MODIFIED_SINCE, {_sH: _IMS_}), + (IF_UNMODIFIED_SINCE, {_sH: _IUS_}), + (RENAME_SOURCE_IF_MATCH, {_sH: _xarsim}), + (RENAME_SOURCE_IF_NONE_MATCH, {_sH: _xarsinm}), + (RENAME_SOURCE_IF_MODIFIED_SINCE, {_sH: _xarsims}), + (RENAME_SOURCE_IF_UNMODIFIED_SINCE, {_sH: _xarsius}), + (CLIENT_TOKEN, {_sH: _xact_, _sT: None}), + ), +) + +RENAME_OBJECT_OUTPUT: StaticSchema = (18, n0, _ROO, {_smi: None}) + +RENAME_OBJECT: StaticOperationSchema = ( + 23, + n0, + _ROe, + { + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?renameObject", "code": 200} + ) + }, + RENAME_OBJECT_INPUT, + RENAME_OBJECT_OUTPUT, + (IDEMPOTENCY_PARAMETER_MISMATCH,), +) + +OBJECT_ALREADY_IN_ACTIVE_TIER_ERROR: StaticSchema = ( + 18, + n0, + _OAIATE, + {_smit: _c, _sE: 403}, +) + +DESCRIPTION: StaticSchema = (3, n0, _Des, 0) + +TIER: StaticSchema = ( + 14, + n0, + _Tier, + 0, + (_St, _Bul, _Expe), + ((-1, {_sV: _St}), (-1, {_sV: _Bul}), (-1, {_sV: _Expe})), +) + +GLACIER_JOB_PARAMETERS: StaticSchema = (18, n0, _GJP, 0, (_Tier,), ((TIER, 1),)) + +KMS_CONTEXT: StaticSchema = (3, n0, _KMSC, 0) + +ENCRYPTION: StaticSchema = ( + 18, + n0, + _En, + 0, + (_ETn, _KMSKI, _KMSC), + ((SERVER_SIDE_ENCRYPTION, 1), (SSEKMS_KEY_ID, 0), (KMS_CONTEXT, 0)), +) + +LOCATION_PREFIX: StaticSchema = (3, n0, _LPo, 0) + +METADATA_ENTRY: StaticSchema = ( + 18, + n0, + _ME, + 0, + (_N, _V), + ((METADATA_KEY, 0), (METADATA_VALUE, 0)), +) + +USER_METADATA: StaticSchema = (16, n0, _UM, 0, (_m,), ((METADATA_ENTRY, {_sN: _ME}),)) + +S3_LOCATION: StaticSchema = ( + 18, + n0, + _SL, + 0, + (_BN, _Pr, _En, _CACL, _ACL, _Ta, _UM, _SC), + ( + (BUCKET_NAME, 1), + (LOCATION_PREFIX, 1), + (ENCRYPTION, 0), + (OBJECT_CANNED_ACL, 0), + (GRANTS, 0), + (TAGGING, 0), + (USER_METADATA, 0), + (STORAGE_CLASS, 0), + ), +) + +OUTPUT_LOCATION: StaticSchema = (18, n0, _OLu, 0, (_S_,), ((S3_LOCATION, 0),)) + +EXPRESSION: StaticSchema = (3, n0, _Expr, 0) + +EXPRESSION_TYPE: StaticSchema = (14, n0, _ETx, 0, (_SQL,), ((-1, {_sV: _SQL}),)) + +COMPRESSION_TYPE: StaticSchema = ( + 14, + n0, + _CTom, + 0, + (_NONE, _GZIP, _BZIP), + ((-1, {_sV: _NONE}), (-1, {_sV: _GZIP}), (-1, {_sV: _BZIP})), +) + +COMMENTS: StaticSchema = (3, n0, _Com, 0) + +FIELD_DELIMITER: StaticSchema = (3, n0, _FD, 0) + +FILE_HEADER_INFO: StaticSchema = ( + 14, + n0, + _FHI, + 0, + (_USE, _IGNORE, _NONE), + ((-1, {_sV: _USE}), (-1, {_sV: _IGNORE}), (-1, {_sV: _NONE})), +) + +QUOTE_CHARACTER: StaticSchema = (3, n0, _QCuo, 0) + +QUOTE_ESCAPE_CHARACTER: StaticSchema = (3, n0, _QEC, 0) + +RECORD_DELIMITER: StaticSchema = (3, n0, _RD, 0) + +CSV_INPUT: StaticSchema = ( + 18, + n0, + _CSVIn, + 0, + (_FHI, _Com, _QEC, _RD, _FD, _QCuo, _AQRD), + ( + (FILE_HEADER_INFO, 0), + (COMMENTS, 0), + (QUOTE_ESCAPE_CHARACTER, 0), + (RECORD_DELIMITER, 0), + (FIELD_DELIMITER, 0), + (QUOTE_CHARACTER, 0), + (ALLOW_QUOTED_RECORD_DELIMITER, 0), + ), +) + +JSON_TYPE: StaticSchema = ( + 14, + n0, + _JSONT, + 0, + (_DOCUMENT, _LINES), + ((-1, {_sV: _DOCUMENT}), (-1, {_sV: _LINES})), +) + +JSON_INPUT: StaticSchema = (18, n0, _JSONI, 0, (_T,), ((JSON_TYPE, 0),)) + +PARQUET_INPUT: StaticSchema = (18, n0, _PI, 0) + +INPUT_SERIALIZATION: StaticSchema = ( + 18, + n0, + _ISn, + 0, + (_CSV, _CTom, _JSON, _Parq), + ((CSV_INPUT, 0), (COMPRESSION_TYPE, 0), (JSON_INPUT, 0), (PARQUET_INPUT, 0)), +) + +QUOTE_FIELDS: StaticSchema = ( + 14, + n0, + _QF, + 0, + (_ALWAYS, _ASNEEDED), + ((-1, {_sV: _ALWAYS}), (-1, {_sV: _ASNEEDED})), +) + +CSV_OUTPUT: StaticSchema = ( + 18, + n0, + _CSVO, + 0, + (_QF, _QEC, _RD, _FD, _QCuo), + ( + (QUOTE_FIELDS, 0), + (QUOTE_ESCAPE_CHARACTER, 0), + (RECORD_DELIMITER, 0), + (FIELD_DELIMITER, 0), + (QUOTE_CHARACTER, 0), + ), +) + +JSON_OUTPUT: StaticSchema = (18, n0, _JSONO, 0, (_RD,), ((RECORD_DELIMITER, 0),)) + +OUTPUT_SERIALIZATION: StaticSchema = ( + 18, + n0, + _OSu, + 0, + (_CSV, _JSON), + ((CSV_OUTPUT, 0), (JSON_OUTPUT, 0)), +) + +SELECT_PARAMETERS: StaticSchema = ( + 18, + n0, + _SPe, + 0, + (_ISn, _ETx, _Expr, _OSu), + ( + (INPUT_SERIALIZATION, 1), + (EXPRESSION_TYPE, 1), + (EXPRESSION, 1), + (OUTPUT_SERIALIZATION, 1), + ), +) + +RESTORE_REQUEST_TYPE: StaticSchema = ( + 14, + n0, + _RRT, + 0, + (_SELECT,), + ((-1, {_sV: _SELECT}),), +) + +RESTORE_REQUEST: StaticSchema = ( + 18, + n0, + _RRes, + 0, + (_Da, _GJP, _T, _Tier, _Des, _SPe, _OLu), + ( + (DAYS, 0), + (GLACIER_JOB_PARAMETERS, 0), + (RESTORE_REQUEST_TYPE, 0), + (TIER, 0), + (DESCRIPTION, 0), + (SELECT_PARAMETERS, 0), + (OUTPUT_LOCATION, 0), + ), +) + +RESTORE_OBJECT_INPUT: StaticSchema = ( + 18, + n0, + _ROIe, + {_sSI: _cRORo, _s: None}, + (_B, _K, _VI, _RRes, _RP, _CA, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (RESTORE_REQUEST, {_sN: _RRes, _sPm: None}), + (REQUEST_PAYER, {_sH: _xarp}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +RESTORE_OUTPUT_PATH: StaticSchema = (3, n0, _ROP, 0) + +RESTORE_OBJECT_OUTPUT: StaticSchema = ( + 18, + n0, + _ROOe, + {_smi: None}, + (_RC, _ROP), + ((REQUEST_CHARGED, {_sH: _xarc}), (RESTORE_OUTPUT_PATH, {_sH: _xarop})), +) + +RESTORE_OBJECT: StaticOperationSchema = ( + 23, + n0, + _ROes, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _smith: MappingProxyType( + {"method": "POST", "uri": "/{Key+}?restore", "code": 200} + ), + }, + RESTORE_OBJECT_INPUT, + RESTORE_OBJECT_OUTPUT, + (OBJECT_ALREADY_IN_ACTIVE_TIER_ERROR,), +) + +ENABLE_REQUEST_PROGRESS: StaticSchema = (2, n0, _ERP, 0) + +REQUEST_PROGRESS: StaticSchema = ( + 18, + n0, + _RPe, + 0, + (_E,), + ((ENABLE_REQUEST_PROGRESS, 0),), +) + +END: StaticSchema = (8, n0, _End, 0) + +START: StaticSchema = (8, n0, _Sta, 0) + +SCAN_RANGE: StaticSchema = (18, n0, _SR, 0, (_Sta, _End), ((START, 0), (END, 0))) + +SELECT_OBJECT_CONTENT_INPUT: StaticSchema = ( + 18, + n0, + _SOCI, + {_sSI: _cSOCR, _s: None}, + (_B, _K, _SSECA, _SSECK, _SSECKMD, _Expr, _ETx, _RPe, _ISn, _OSu, _SR, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (EXPRESSION, 1), + (EXPRESSION_TYPE, 1), + (REQUEST_PROGRESS, 0), + (INPUT_SERIALIZATION, 1), + (OUTPUT_SERIALIZATION, 1), + (SCAN_RANGE, 0), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +CONTINUATION_EVENT: StaticSchema = (18, n0, _CEo, 0) + +END_EVENT: StaticSchema = (18, n0, _EE, 0) + +BYTES_PROCESSED: StaticSchema = (8, n0, _BP, 0) + +BYTES_RETURNED: StaticSchema = (8, n0, _BRy, 0) + +BYTES_SCANNED: StaticSchema = (8, n0, _BS, 0) + +PROGRESS: StaticSchema = ( + 18, + n0, + _Prog, + 0, + (_BS, _BP, _BRy), + ((BYTES_SCANNED, 0), (BYTES_PROCESSED, 0), (BYTES_RETURNED, 0)), +) + +PROGRESS_EVENT: StaticSchema = (18, n0, _PE, 0, (_Det,), ((PROGRESS, {_sPmi: None}),)) + +BODY: StaticSchema = (1, n0, _Bo, 0) + +RECORDS_EVENT: StaticSchema = (18, n0, _REec, 0, (_Payl,), ((BODY, {_sPmi: None}),)) + +STATS: StaticSchema = ( + 18, + n0, + _Stat, + 0, + (_BS, _BP, _BRy), + ((BYTES_SCANNED, 0), (BYTES_PROCESSED, 0), (BYTES_RETURNED, 0)), +) + +STATS_EVENT: StaticSchema = (18, n0, _SEt, 0, (_Det,), ((STATS, {_sPmi: None}),)) + +SELECT_OBJECT_CONTENT_EVENT_STREAM: StaticSchema = ( + 19, + n0, + _SOCES, + {_smithya: None}, + (_Rec, _Stat, _Prog, _Cont_, _End), + ( + (RECORDS_EVENT, 0), + (STATS_EVENT, 0), + (PROGRESS_EVENT, 0), + (CONTINUATION_EVENT, 0), + (END_EVENT, 0), + ), +) + +SELECT_OBJECT_CONTENT_OUTPUT: StaticSchema = ( + 18, + n0, + _SOCO, + {_smi: None}, + (_Payl,), + ((SELECT_OBJECT_CONTENT_EVENT_STREAM, 16),), +) + +SELECT_OBJECT_CONTENT: StaticOperationSchema = ( + 23, + n0, + _SOC, + { + _smith: MappingProxyType( + {"method": "POST", "uri": "/{Key+}?select&select-type=2", "code": 200} + ) + }, + SELECT_OBJECT_CONTENT_INPUT, + SELECT_OBJECT_CONTENT_OUTPUT, + (), +) + +ANNOTATION_TABLE_CONFIGURATION_UPDATES: StaticSchema = ( + 18, + n0, + _ATCU, + 0, + (_CSo, _EC, _R), + ( + (ANNOTATION_CONFIGURATION_STATE, 1), + (METADATA_TABLE_ENCRYPTION_CONFIGURATION, 0), + (ROLE, 0), + ), +) + +UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _UBMATCI, + {_sSI: _cUBMATCR, _s: None}, + (_B, _CMDo, _CA, _ATC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (ANNOTATION_TABLE_CONFIGURATION_UPDATES, {_sN: _ATC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UBMATCO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _UBMATC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?metadataAnnotationTable", "code": 200} + ), + }, + UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_INPUT, + UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_OUTPUT, + (), +) + +INVENTORY_TABLE_CONFIGURATION_UPDATES: StaticSchema = ( + 18, + n0, + _ITCU, + 0, + (_CSo, _EC), + ((INVENTORY_CONFIGURATION_STATE, 1), (METADATA_TABLE_ENCRYPTION_CONFIGURATION, 0)), +) + +UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _UBMITCI, + {_sSI: _cUBMITCR, _s: None}, + (_B, _CMDo, _CA, _ITC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (INVENTORY_TABLE_CONFIGURATION_UPDATES, {_sN: _ITC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UBMITCO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _UBMITC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?metadataInventoryTable", "code": 200} + ), + }, + UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_INPUT, + UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_OUTPUT, + (), +) + +JOURNAL_TABLE_CONFIGURATION_UPDATES: StaticSchema = ( + 18, + n0, + _JTCU, + 0, + (_RE,), + ((RECORD_EXPIRATION, 1),), +) + +UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_INPUT: StaticSchema = ( + 18, + n0, + _UBMJTCI, + {_sSI: _cUBMJTCR, _s: None}, + (_B, _CMDo, _CA, _JTC, _EBO), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (JOURNAL_TABLE_CONFIGURATION_UPDATES, {_sN: _JTC, _sm: None, _sPm: None}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_OUTPUT: StaticSchema = ( + 18, + n0, + _UBMJTCO, + {_sSI: _sU, _smi: None}, +) + +UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION: StaticOperationSchema = ( + 23, + n0, + _UBMJTC, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _sCP: MappingProxyType( + {"UseS3ExpressControlEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/?metadataJournalTable", "code": 200} + ), + }, + UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_INPUT, + UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_OUTPUT, + (), +) + +NON_EMPTY_KMS_KEY_ARN_STRING: StaticSchema = (3, n0, _NEKKAS, 4) + +SSEKMS_ENCRYPTION: StaticSchema = ( + 18, + n0, + _SSEKMSE, + {_sN: _SK}, + (_KMSKA, _BKE), + ((NON_EMPTY_KMS_KEY_ARN_STRING, 1), (BUCKET_KEY_ENABLED, 0)), +) + +OBJECT_ENCRYPTION: StaticSchema = ( + 19, + n0, + _OE, + 0, + (_SSEKMS,), + ((SSEKMS_ENCRYPTION, {_sN: _SK}),), +) + +UPDATE_OBJECT_ENCRYPTION_INPUT: StaticSchema = ( + 18, + n0, + _UOEI, + {_sSI: _cUOER, _s: None}, + (_B, _K, _VI, _OE, _RP, _EBO, _CMDo, _CA), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (OBJECT_KEY, 9), + (OBJECT_VERSION_ID, {_sQ: _vI}), + (OBJECT_ENCRYPTION, 17), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + ), +) + +UPDATE_OBJECT_ENCRYPTION_OUTPUT: StaticSchema = ( + 18, + n0, + _UOEO, + {_sSI: _cUOERo, _smi: None}, + (_RC,), + ((REQUEST_CHARGED, {_sH: _xarc}),), +) + +UPDATE_OBJECT_ENCRYPTION: StaticOperationSchema = ( + 23, + n0, + _UOE, + { + _aC: MappingProxyType( + { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": True, + } + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?encryption", "code": 200} + ), + }, + UPDATE_OBJECT_ENCRYPTION_INPUT, + UPDATE_OBJECT_ENCRYPTION_OUTPUT, + (ACCESS_DENIED, INVALID_REQUEST, NO_SUCH_KEY), +) + +UPLOAD_PART_INPUT: StaticSchema = ( + 18, + n0, + _UPI, + {_sSI: _cUPR, _s: None}, + ( + _Bo, + _B, + _CLo, + _CMDo, + _CA, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _K, + _PN, + _UI, + _SSECA, + _SSECK, + _SSECKMD, + _RP, + _EBO, + ), + ( + (STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (CONTENT_LENGTH, {_sH: _CL__}), + (CONTENT_MD5, {_sH: _CM}), + (CHECKSUM_ALGORITHM, {_sH: _xasca}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (OBJECT_KEY, {_sP: MappingProxyType({"name": "Key"}), _sm: None, _sL: None}), + (PART_NUMBER, {_sQ: _pN, _sm: None}), + (MULTIPART_UPLOAD_ID, {_sQ: _uI, _sm: None}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + ), +) + +UPLOAD_PART_OUTPUT: StaticSchema = ( + 18, + n0, + _UPO, + {_smi: None}, + ( + _SSE, + _ET, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _SSECA, + _SSECKMD, + _SSEKMSKI, + _BKE, + _RC, + ), + ( + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (E_TAG, {_sH: _ET}), + (CHECKSUM_CRC32, {_sH: _xacc}), + (CHECKSUM_CRC32_C, {_sH: _xacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xacc__}), + (CHECKSUM_SHA1, {_sH: _xacs}), + (CHECKSUM_SHA256, {_sH: _xacs_}), + (CHECKSUM_SHA512, {_sH: _xacs__}), + (CHECKSUM_MD5, {_sH: _xacm}), + (CHECKSUM_XXHASH64, {_sH: _xacx}), + (CHECKSUM_XXHASH3, {_sH: _xacx_}), + (CHECKSUM_XXHASH128, {_sH: _xacx__}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +UPLOAD_PART: StaticOperationSchema = ( + 23, + n0, + _UP, + { + _aC: MappingProxyType({"requestAlgorithmMember": "ChecksumAlgorithm"}), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?x-id=UploadPart", "code": 200} + ), + }, + UPLOAD_PART_INPUT, + UPLOAD_PART_OUTPUT, + (), +) + +COPY_SOURCE_RANGE: StaticSchema = (3, n0, _CSRo, 0) + +UPLOAD_PART_COPY_INPUT: StaticSchema = ( + 18, + n0, + _UPCI, + {_sSI: _cUPCR, _s: None}, + ( + _B, + _CS, + _CSIM, + _CSIMS, + _CSINM, + _CSIUS, + _CSRo, + _K, + _PN, + _UI, + _SSECA, + _SSECK, + _SSECKMD, + _CSSSECA, + _CSSSECK, + _CSSSECKMD, + _RP, + _EBO, + _ESBO, + ), + ( + ( + BUCKET_NAME, + {_sP: MappingProxyType({"name": "Bucket"}), _sm: None, _sL: None}, + ), + (COPY_SOURCE, {_sH: _xacs___, _sm: None}), + (COPY_SOURCE_IF_MATCH, {_sH: _xacsim}), + (COPY_SOURCE_IF_MODIFIED_SINCE, {_sH: _xacsims}), + (COPY_SOURCE_IF_NONE_MATCH, {_sH: _xacsinm}), + (COPY_SOURCE_IF_UNMODIFIED_SINCE, {_sH: _xacsius}), + (COPY_SOURCE_RANGE, {_sH: _xacsr}), + (OBJECT_KEY, 9), + (PART_NUMBER, {_sQ: _pN, _sm: None}), + (MULTIPART_UPLOAD_ID, {_sQ: _uI, _sm: None}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY, {_sH: _xasseck}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (COPY_SOURCE_SSE_CUSTOMER_ALGORITHM, {_sH: _xacssseca}), + (COPY_SOURCE_SSE_CUSTOMER_KEY, {_sH: _xacssseck}), + (COPY_SOURCE_SSE_CUSTOMER_KEY_MD5, {_sH: _xacssseckM}), + (REQUEST_PAYER, {_sH: _xarp}), + (ACCOUNT_ID, {_sH: _xaebo}), + (ACCOUNT_ID, {_sH: _xasebo}), + ), +) + +COPY_PART_RESULT: StaticSchema = ( + 18, + n0, + _CPR, + 0, + ( + _ET, + _LM, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + ), + ( + (E_TAG, 0), + (LAST_MODIFIED, 0), + (CHECKSUM_CRC32, 0), + (CHECKSUM_CRC32_C, 0), + (CHECKSUM_CRC64_NVME, 0), + (CHECKSUM_SHA1, 0), + (CHECKSUM_SHA256, 0), + (CHECKSUM_SHA512, 0), + (CHECKSUM_MD5, 0), + (CHECKSUM_XXHASH64, 0), + (CHECKSUM_XXHASH3, 0), + (CHECKSUM_XXHASH128, 0), + ), +) + +UPLOAD_PART_COPY_OUTPUT: StaticSchema = ( + 18, + n0, + _UPCO, + {_smi: None}, + (_CSVI, _CPR, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC), + ( + (COPY_SOURCE_VERSION_ID, {_sH: _xacsvi}), + (COPY_PART_RESULT, 16), + (SERVER_SIDE_ENCRYPTION, {_sH: _xasse}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xasseca}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xasseckM}), + (SSEKMS_KEY_ID, {_sH: _xasseakki}), + (BUCKET_KEY_ENABLED, {_sH: _xassebke}), + (REQUEST_CHARGED, {_sH: _xarc}), + ), +) + +UPLOAD_PART_COPY: StaticOperationSchema = ( + 23, + n0, + _UPC, + { + _sCP: MappingProxyType( + {"DisableS3ExpressSessionAuth": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "PUT", "uri": "/{Key+}?x-id=UploadPartCopy", "code": 200} + ), + }, + UPLOAD_PART_COPY_INPUT, + UPLOAD_PART_COPY_OUTPUT, + (), +) + +REQUEST_ROUTE: StaticSchema = (3, n0, _RReq, 0) + +REQUEST_TOKEN: StaticSchema = (3, n0, _RTe, 0) + +GET_OBJECT_RESPONSE_STATUS_CODE: StaticSchema = (7, n0, _GORSC, 0) + +WRITE_GET_OBJECT_RESPONSE_INPUT: StaticSchema = ( + 18, + n0, + _WGORI, + {_sSI: _cWGORR, _s: None}, + ( + _RReq, + _RTe, + _Bo, + _SCt, + _ECr, + _EM, + _AR, + _CC, + _CD, + _CE, + _CL, + _CLo, + _CR, + _CTo, + _CCRC, + _CCRCC, + _CCRCNVME, + _CSHA, + _CSHAh, + _CSHAhe, + _CMD, + _CXXHASHhe, + _CXXHASHh, + _CXXHASH, + _DM, + _ET, + _Exp, + _Ex, + _LM, + _MM, + _M, + _OLM, + _OLLHS, + _OLRUD, + _PC, + _RS, + _RC, + _Res, + _SSE, + _SSECA, + _SSEKMSKI, + _SSECKMD, + _SC, + _TCa, + _VI, + _BKE, + ), + ( + (REQUEST_ROUTE, {_sH: _xarr, _sLm: None, _sm: None}), + (REQUEST_TOKEN, {_sH: _xart, _sm: None}), + (STREAMING_BLOB, {_smithyap: _v_, _sPm: None}), + (GET_OBJECT_RESPONSE_STATUS_CODE, {_sH: _xafs}), + (ERROR_CODE, {_sH: _xafec}), + (ERROR_MESSAGE, {_sH: _xafem}), + (ACCEPT_RANGES, {_sH: _xafhar}), + (CACHE_CONTROL, {_sH: _xafhCC}), + (CONTENT_DISPOSITION, {_sH: _xafhCD}), + (CONTENT_ENCODING, {_sH: _xafhCE}), + (CONTENT_LANGUAGE, {_sH: _xafhCL}), + (CONTENT_LENGTH, {_sH: _CL__}), + (CONTENT_RANGE, {_sH: _xafhCR}), + (CONTENT_TYPE, {_sH: _xafhCT}), + (CHECKSUM_CRC32, {_sH: _xafhxacc}), + (CHECKSUM_CRC32_C, {_sH: _xafhxacc_}), + (CHECKSUM_CRC64_NVME, {_sH: _xafhxacc__}), + (CHECKSUM_SHA1, {_sH: _xafhxacs}), + (CHECKSUM_SHA256, {_sH: _xafhxacs_}), + (CHECKSUM_SHA512, {_sH: _xafhxacs__}), + (CHECKSUM_MD5, {_sH: _xafhxacm}), + (CHECKSUM_XXHASH64, {_sH: _xafhxacx}), + (CHECKSUM_XXHASH3, {_sH: _xafhxacx_}), + (CHECKSUM_XXHASH128, {_sH: _xafhxacx__}), + (DELETE_MARKER, {_sH: _xafhxadm}), + (E_TAG, {_sH: _xafhE}), + (EXPIRES, {_sH: _xafhE_}), + (EXPIRATION, {_sH: _xafhxae}), + (LAST_MODIFIED, {_sH: _xafhLM}), + (MISSING_META, {_sH: _xafhxamm}), + (METADATA, {_sPH: _xam}), + (OBJECT_LOCK_MODE, {_sH: _xafhxaolm}), + (OBJECT_LOCK_LEGAL_HOLD_STATUS, {_sH: _xafhxaollh}), + (OBJECT_LOCK_RETAIN_UNTIL_DATE, {_sH: _xafhxaolrud}), + (PARTS_COUNT, {_sH: _xafhxampc}), + (REPLICATION_STATUS, {_sH: _xafhxars}), + (REQUEST_CHARGED, {_sH: _xafhxarc}), + (RESTORE, {_sH: _xafhxar}), + (SERVER_SIDE_ENCRYPTION, {_sH: _xafhxasse}), + (SSE_CUSTOMER_ALGORITHM, {_sH: _xafhxasseca}), + (SSEKMS_KEY_ID, {_sH: _xafhxasseakki}), + (SSE_CUSTOMER_KEY_MD5, {_sH: _xafhxasseckM}), + (STORAGE_CLASS, {_sH: _xafhxasc}), + (TAG_COUNT, {_sH: _xafhxatc}), + (OBJECT_VERSION_ID, {_sH: _xafhxavi}), + (BUCKET_KEY_ENABLED, {_sH: _xafhxassebke}), + ), +) + +WRITE_GET_OBJECT_RESPONSE_OUTPUT: StaticSchema = ( + 18, + n0, + _WGORO, + {_sSI: _sU, _smi: None}, +) + +WRITE_GET_OBJECT_RESPONSE: StaticOperationSchema = ( + 23, + n0, + _WGOR, + { + _aP: None, + _smithyapi: MappingProxyType({"hostPrefix": "{RequestRoute}."}), + _sCP: MappingProxyType( + {"UseObjectLambdaEndpoint": MappingProxyType({"value": True})} + ), + _smith: MappingProxyType( + {"method": "POST", "uri": "/WriteGetObjectResponse", "code": 200} + ), + }, + WRITE_GET_OBJECT_RESPONSE_INPUT, + WRITE_GET_OBJECT_RESPONSE_OUTPUT, + (), +) + +AMAZON_S3: StaticSchema = ( + 21, + n0, + _ASm, + { + _awsa: MappingProxyType({"name": "s3"}), + _aX: MappingProxyType({"noErrorWrapping": True}), + _awsap: MappingProxyType( + { + "sdkId": "S3", + "arnNamespace": "s3", + "cloudFormationName": "S3", + "cloudTrailEventSource": "s3.amazonaws.com", + "endpointPrefix": "s3", + } + ), + _sNm: MappingProxyType({"uri": "http://s3.amazonaws.com/doc/2006-03-01/"}), + }, +) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/aio/__init__.py b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/__init__.py new file mode 100644 index 00000000..3d31245f --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/__init__.py @@ -0,0 +1,19 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from importlib import import_module +from typing import Any, TYPE_CHECKING + + +if TYPE_CHECKING: + from .client import AsyncS3Client + from .config import AsyncS3Config + +__all__ = ["AsyncS3Client", "AsyncS3Config"] + +_EXPORTS = {"AsyncS3Client": ".client", "AsyncS3Config": ".config"} + + +def __getattr__(name: str) -> Any: + if name in _EXPORTS: + return getattr(import_module(_EXPORTS[name], __name__), name) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/aio/checksums.py b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/checksums.py new file mode 100644 index 00000000..a31c2377 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/checksums.py @@ -0,0 +1,10 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.aio.checksums import AsyncChecksumStream +from smithy_aws_core.interceptors.checksums import FlexibleChecksumsInterceptor + +from .config import AsyncS3Config + + +def flexible_checksums_plugin(config: AsyncS3Config) -> None: + config.interceptors.append(FlexibleChecksumsInterceptor(AsyncChecksumStream)) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/aio/client.py b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/client.py new file mode 100644 index 00000000..44fde948 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/client.py @@ -0,0 +1,10208 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.aio.identity.chain import AsyncIdentityChain +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.client import AsyncClient +from smithy_core.aio.eventstream import AsyncOutputEventStream +from smithy_http.aio.interfaces import AsyncHTTPClient +from smithy_http.plugins import user_agent_plugin + +from .. import models as _models +from ..models import ( + SelectObjectContentEventStream, + SelectObjectContentInput, + SelectObjectContentOutput, + _SelectObjectContentEventStreamDeserializer, +) +from .checksums import flexible_checksums_plugin +from .config import AsyncS3Config, Plugin +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..models import ( + AbortMultipartUploadInput, + AbortMultipartUploadOutput, + CompleteMultipartUploadInput, + CompleteMultipartUploadOutput, + CopyObjectInput, + CopyObjectOutput, + CreateBucketInput, + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + CreateBucketOutput, + CreateMultipartUploadInput, + CreateMultipartUploadOutput, + CreateSessionInput, + CreateSessionOutput, + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + DeleteBucketCorsInput, + DeleteBucketCorsOutput, + DeleteBucketEncryptionInput, + DeleteBucketEncryptionOutput, + DeleteBucketInput, + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + DeleteBucketLifecycleInput, + DeleteBucketLifecycleOutput, + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + DeleteBucketOutput, + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + DeleteBucketPolicyInput, + DeleteBucketPolicyOutput, + DeleteBucketReplicationInput, + DeleteBucketReplicationOutput, + DeleteBucketTaggingInput, + DeleteBucketTaggingOutput, + DeleteBucketWebsiteInput, + DeleteBucketWebsiteOutput, + DeleteObjectAnnotationInput, + DeleteObjectAnnotationOutput, + DeleteObjectInput, + DeleteObjectOutput, + DeleteObjectTaggingInput, + DeleteObjectTaggingOutput, + DeleteObjectsInput, + DeleteObjectsOutput, + DeletePublicAccessBlockInput, + DeletePublicAccessBlockOutput, + GetBucketAbacInput, + GetBucketAbacOutput, + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + GetBucketAclInput, + GetBucketAclOutput, + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + GetBucketCorsInput, + GetBucketCorsOutput, + GetBucketEncryptionInput, + GetBucketEncryptionOutput, + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + GetBucketLocationInput, + GetBucketLocationOutput, + GetBucketLoggingInput, + GetBucketLoggingOutput, + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + GetBucketOwnershipControlsInput, + GetBucketOwnershipControlsOutput, + GetBucketPolicyInput, + GetBucketPolicyOutput, + GetBucketPolicyStatusInput, + GetBucketPolicyStatusOutput, + GetBucketReplicationInput, + GetBucketReplicationOutput, + GetBucketRequestPaymentInput, + GetBucketRequestPaymentOutput, + GetBucketTaggingInput, + GetBucketTaggingOutput, + GetBucketVersioningInput, + GetBucketVersioningOutput, + GetBucketWebsiteInput, + GetBucketWebsiteOutput, + GetObjectAclInput, + GetObjectAclOutput, + GetObjectAnnotationInput, + GetObjectAnnotationOutput, + GetObjectAttributesInput, + GetObjectAttributesOutput, + GetObjectInput, + GetObjectLegalHoldInput, + GetObjectLegalHoldOutput, + GetObjectLockConfigurationInput, + GetObjectLockConfigurationOutput, + GetObjectOutput, + GetObjectRetentionInput, + GetObjectRetentionOutput, + GetObjectTaggingInput, + GetObjectTaggingOutput, + GetObjectTorrentInput, + GetObjectTorrentOutput, + GetPublicAccessBlockInput, + GetPublicAccessBlockOutput, + HeadBucketInput, + HeadBucketOutput, + HeadObjectInput, + HeadObjectOutput, + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + ListBucketsInput, + ListBucketsOutput, + ListDirectoryBucketsInput, + ListDirectoryBucketsOutput, + ListMultipartUploadsInput, + ListMultipartUploadsOutput, + ListObjectAnnotationsInput, + ListObjectAnnotationsOutput, + ListObjectVersionsInput, + ListObjectVersionsOutput, + ListObjectsInput, + ListObjectsOutput, + ListObjectsV2Input, + ListObjectsV2Output, + ListPartsInput, + ListPartsOutput, + PutBucketAbacInput, + PutBucketAbacOutput, + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + PutBucketAclInput, + PutBucketAclOutput, + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + PutBucketCorsInput, + PutBucketCorsOutput, + PutBucketEncryptionInput, + PutBucketEncryptionOutput, + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + PutBucketLoggingInput, + PutBucketLoggingOutput, + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + PutBucketOwnershipControlsInput, + PutBucketOwnershipControlsOutput, + PutBucketPolicyInput, + PutBucketPolicyOutput, + PutBucketReplicationInput, + PutBucketReplicationOutput, + PutBucketRequestPaymentInput, + PutBucketRequestPaymentOutput, + PutBucketTaggingInput, + PutBucketTaggingOutput, + PutBucketVersioningInput, + PutBucketVersioningOutput, + PutBucketWebsiteInput, + PutBucketWebsiteOutput, + PutObjectAclInput, + PutObjectAclOutput, + PutObjectAnnotationInput, + PutObjectAnnotationOutput, + PutObjectInput, + PutObjectLegalHoldInput, + PutObjectLegalHoldOutput, + PutObjectLockConfigurationInput, + PutObjectLockConfigurationOutput, + PutObjectOutput, + PutObjectRetentionInput, + PutObjectRetentionOutput, + PutObjectTaggingInput, + PutObjectTaggingOutput, + PutPublicAccessBlockInput, + PutPublicAccessBlockOutput, + RenameObjectInput, + RenameObjectOutput, + RestoreObjectInput, + RestoreObjectOutput, + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + UpdateObjectEncryptionInput, + UpdateObjectEncryptionOutput, + UploadPartCopyInput, + UploadPartCopyOutput, + UploadPartInput, + UploadPartOutput, + WriteGetObjectResponseInput, + WriteGetObjectResponseOutput, + ) + + +logger = logging.getLogger(__name__) + + +class AsyncS3Client(AsyncClient[AsyncS3Config]): + """ + Note: + For information about using the Amazon S3 API---including + authentication, signing requests, code examples, and error + handling---see the [Amazon S3 Developer + Guide](https://docs.aws.amazon.com/AmazonS3/latest/developerguide/Welcome.html). + + Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon + Simple Storage Service (Amazon S3) application programming interface + (API). + + Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon + Simple Storage Service (Amazon S3) application programming interface + (API). + + You can use any toolkit that supports HTTP to use the REST API. You can + even use a browser to fetch objects, as long as they are anonymously + readable. + + The REST API uses the standard HTTP headers and status codes, so that + standard browsers and toolkits work as expected. In some areas, we have + added functionality to HTTP (for example, we added headers to support + access control). In these cases, we have done our best to add the new + functionality in a way that matched the style of standard HTTP usage. + + The current version of the Amazon S3 API is `2006-03-01`. + + Amazon S3 supports the REST API. + + Note: + Support for SOAP over HTTP is deprecated, but it is still available over + HTTPS. However, new Amazon S3 features will not be supported for SOAP. + We recommend that you use either this REST API or the Amazon Web + Services SDKs. + """ + + _client_plugins = ( + aws_user_agent_plugin, + flexible_checksums_plugin, + user_agent_plugin, + ) + + async def abort_multipart_upload( + self, input: AbortMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> AbortMultipartUploadOutput: + """ + This operation aborts a multipart upload. After a multipart upload is + aborted, no additional parts can be uploaded using that upload ID. The + storage consumed by any previously uploaded parts will be freed. + However, if any part uploads are currently in progress, those part + uploads might or might not succeed. As a result, it might be necessary + to abort a given multipart upload multiple times in order to completely + free all storage consumed by all parts. + + To verify that all parts have been removed and prevent getting charged + for the part storage, you should call the + [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + API operation and ensure that the parts list is empty. + + Note: + - **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. To delete these + in-progress multipart uploads, use the `ListMultipartUploads` + operation to list the in-progress multipart uploads in the bucket and + use the `AbortMultipartUpload` operation to abort all the in-progress + multipart uploads. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `AbortMultipartUpload`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `AbortMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AbortMultipartUploadOutput`. + """ + return await self._invoke(input, _models.ABORT_MULTIPART_UPLOAD, [], plugins) + + async def complete_multipart_upload( + self, input: CompleteMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> CompleteMultipartUploadOutput: + """ + Completes a multipart upload by assembling previously uploaded parts. + + You first initiate the multipart upload and then upload all parts using + the + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + operation or the + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + operation. After successfully uploading all relevant parts of an upload, + you call this `CompleteMultipartUpload` operation to complete the + upload. Upon receiving this request, Amazon S3 concatenates all the + parts in ascending order by part number to create a new object. In the + CompleteMultipartUpload request, you must provide the parts list and + ensure that the parts list is complete. The CompleteMultipartUpload API + operation concatenates the parts that you provide in the list. For each + part in the list, you must provide the `PartNumber` value and the `ETag` + value that are returned after that part was uploaded. + + The processing of a CompleteMultipartUpload request could take several + minutes to finalize. After Amazon S3 begins processing the request, it + sends an HTTP response header that specifies a `200 OK` response. While + processing is in progress, Amazon S3 periodically sends white space + characters to keep the connection from timing out. A request could fail + after the initial `200 OK` response has been sent. This means that a + `200 OK` response can contain either a success or an error. The error + response might be embedded in the `200 OK` response. If you call this + API operation directly, make sure to design your application to parse + the contents of the response and handle it appropriately. If you use + Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect + the embedded error and apply error handling per your configuration + settings (including automatically retrying the request as appropriate). + If the condition persists, the SDKs throw an exception (or, for the SDKs + that don't use exceptions, they return an error). + + Note that if `CompleteMultipartUpload` fails, applications should be + prepared to retry any failed requests (including 500 error responses). + For more information, see [Amazon S3 Error Best + Practices](https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). + + Warning: + You can't use `Content-Type: application/x-www-form-urlencoded` for the + CompleteMultipartUpload requests. Also, if you don't provide a + `Content-Type` header, `CompleteMultipartUpload` can still return a + `200 OK` response. + + For more information about multipart uploads, see [Uploading Objects + Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + If you provide an [additional checksum + value](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html) + in your `MultipartUpload` requests and the object is encrypted with + Key Management Service, you must have permission to use the + `kms:Decrypt` action for the `CompleteMultipartUpload` request to + succeed. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Special errors + + : - Error Code: `EntityTooSmall` + + - Description: Your proposed upload is smaller than the minimum + allowed object size. Each part must be at least 5 MB in size, + except the last part. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `InvalidPart` + + - Description: One or more of the specified parts could not be + found. The part might not have been uploaded, or the specified + ETag might not have matched the uploaded part's ETag. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `InvalidPartOrder` + + - Description: The list of parts was not in ascending order. The + parts list must be specified in order by part number. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CompleteMultipartUpload`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CompleteMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CompleteMultipartUploadOutput`. + """ + return await self._invoke(input, _models.COMPLETE_MULTIPART_UPLOAD, [], plugins) + + async def copy_object( + self, input: CopyObjectInput, plugins: list[Plugin] | None = None + ) -> CopyObjectOutput: + """ + Creates a copy of an object that is already stored in Amazon S3. + + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + You can store individual objects of up to 50 TB in Amazon S3. You create + a copy of your object up to 5 GB in size in a single atomic action using + this API. However, to copy an object greater than 5 GB, you must use the + multipart upload Upload Part - Copy (UploadPartCopy) API. For more + information, see [Copy Object Using the REST Multipart Upload + API](https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). + + You can copy individual objects between general purpose buckets, between + directory buckets, and between general purpose buckets and directory + buckets. + + Note: + - Amazon S3 supports copy operations using Multi-Region Access Points + only as a destination when using the Multi-Region Access Point ARN. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + - VPC endpoints don't support cross-Region requests (including copies). + If you're using VPC endpoints, your source and destination buckets + should be in the same Amazon Web Services Region as your VPC endpoint. + + Both the Region that you want to copy the object from and the Region + that you want to copy the object to must be enabled for your account. + For more information about how to enable a Region for your account, see + [Enable or disable a Region for standalone + accounts](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) + in the *Amazon Web Services Account Management Guide*. + + Warning: + Amazon S3 transfer acceleration does not support cross-Region copies. If + you request a cross-Region copy using a transfer acceleration endpoint, + you get a `400 Bad Request` error. For more information, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). + + Authentication and authorization + + : All `CopyObject` requests must be authenticated and signed by using + IAM credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use the IAM credentials to + authenticate and authorize your access to the `CopyObject` API + operation, instead of using the temporary security credentials through + the `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : You must have *read* access to the source object and *write* access to + the destination bucket. + + - **General purpose bucket permissions** - You must have permissions + in an IAM policy based on the source and destination bucket types in + a `CopyObject` operation. + + - If the source object is in a general purpose bucket, you must have + **`s3:GetObject`** permission to read the source object that is + being copied. + + - If the destination bucket is a general purpose bucket, you must + have **`s3:PutObject`** permission to write the object copy to the + destination bucket. + + - **Directory bucket permissions** - You must have permissions in a + bucket policy or an IAM identity-based policy based on the source + and destination bucket types in a `CopyObject` operation. + + - If the source object that you want to copy is in a directory + bucket, you must have the **`s3express:CreateSession`** permission + in the `Action` element of a policy to read the object. If no + session mode is specified, the session will be created with the + maximum allowable privilege, attempting `ReadWrite` first, then + `ReadOnly` if `ReadWrite` is not permitted. If you want to + explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the copy + source bucket. + + - If the copy destination is a directory bucket, you must have the + **`s3express:CreateSession`** permission in the `Action` element + of a policy to write the object to the destination. The + `s3express:SessionMode` condition key can't be set to `ReadOnly` + on the copy destination bucket. + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + Response and special errors + + : When the request is an HTTP 1.1 request, the response is chunk + encoded. When the request is not an HTTP 1.1 request, the response + would not contain the `Content-Length`. You always need to read the + entire response body to check if the copy succeeds. + + - If the copy is successful, you receive a response with information + about the copied object. + + - A copy request might return an error when Amazon S3 receives the + copy request or while Amazon S3 is copying the files. A `200 OK` + response can contain either a success or an error. + + - If the error occurs before the copy action starts, you receive a + standard Amazon S3 error. + + - If the error occurs during the copy operation, the error response + is embedded in the `200 OK` response. For example, in a + cross-region copy, you may encounter throttling and receive a + `200 OK` response. For more information, see [Resolve the Error + 200 response when copying objects to Amazon + S3](https://repost.aws/knowledge-center/s3-resolve-200-internalerror). + The `200 OK` status code means the copy was accepted, but it + doesn't mean the copy is complete. Another example is when you + disconnect from Amazon S3 before the copy is complete, Amazon S3 + might cancel the copy and you may receive a `200 OK` response. You + must stay connected to Amazon S3 until the entire response is + successfully received and processed. + + If you call this API operation directly, make sure to design your + application to parse the content of the response and handle it + appropriately. If you use Amazon Web Services SDKs, SDKs handle + this condition. The SDKs detect the embedded error and apply error + handling per your configuration settings (including automatically + retrying the request as appropriate). If the condition persists, + the SDKs throw an exception (or, for the SDKs that don't use + exceptions, they return an error). + + Charge + + : The copy request charge is based on the storage class and Region that + you specify for the destination object. The request can also result in + a data retrieval charge for the source if the source storage class + bills for data retrieval. If the copy source is in a different region, + the data transfer is billed to the copy source account. For pricing + information, see [Amazon S3 + pricing](http://aws.amazon.com/s3/pricing/). + + HTTP Host header syntax + + : - **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + - **Amazon S3 on Outposts** - When you use this action with S3 on + Outposts through the REST API, you must direct requests to the S3 on + Outposts hostname. The S3 on Outposts hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + The hostname isn't required when you use the Amazon Web Services + CLI or SDKs. + + The following operations are related to `CopyObject`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CopyObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyObjectOutput`. + """ + return await self._invoke(input, _models.COPY_OBJECT, [], plugins) + + async def create_bucket( + self, input: CreateBucketInput, plugins: list[Plugin] | None = None + ) -> CreateBucketOutput: + """ + Note: + This action creates an Amazon S3 bucket. To create an Amazon S3 on + Outposts bucket, see + [`CreateBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) + . + + Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 + and have a valid Amazon Web Services Access Key ID to authenticate + requests. Anonymous requests are never allowed to create buckets. By + creating the bucket, you become the bucket owner. + + There are two types of buckets: general purpose buckets and directory + buckets. For more information about these bucket types, see [Creating, + configuring, and working with Amazon S3 + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) + in the *Amazon S3 User Guide*. + + General purpose buckets exist in a global namespace, which means that + each bucket name must be unique across all Amazon Web Services accounts + in all the Amazon Web Services Regions within a partition. A partition + is a grouping of Regions. Amazon Web Services currently has four + partitions: `aws` (Standard Regions), `aws-cn` (China Regions), + `aws-us-gov` (Amazon Web Services GovCloud (US)), and `aws-eusc` + (European Sovereign Cloud). When you create a general purpose bucket, + you can choose to create a bucket in the shared global namespace or you + can choose to create a bucket in your account regional namespace. Your + account regional namespace is a subdivision of the global namespace that + only your account can create buckets in. For more information on account + regional namespaces, see [Namespaces for general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/gpbucketnamespaces.html). + + Note: + - **General purpose buckets** - If you send your `CreateBucket` request + to the `s3.amazonaws.com` global endpoint, the request goes to the + `us-east-1` Region. So the signature calculations in Signature Version + 4 must use `us-east-1` as the Region, even if the location constraint + in the request specifies another Region where the bucket is to be + created. If you create a bucket in a Region other than US East (N. + Virginia), your application must be able to handle 307 redirect. For + more information, see [Virtual hosting of + buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints + support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal + endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - In addition to the + `s3:CreateBucket` permission, the following permissions are required + in a policy when your `CreateBucket` request includes specific + headers: + + - **Access control lists (ACLs)** - In your `CreateBucket` request, + if you specify an access control list (ACL) and set it to + `public-read`, `public-read-write`, `authenticated-read`, or if + you explicitly specify any other custom ACLs, both + `s3:CreateBucket` and `s3:PutBucketAcl` permissions are required. + In your `CreateBucket` request, if you set the ACL to `private`, + or if you don't specify any ACLs, only the `s3:CreateBucket` + permission is required. + + - **Object Lock** - In your `CreateBucket` request, if you set + `x-amz-bucket-object-lock-enabled` to true, the + `s3:PutBucketObjectLockConfiguration` and `s3:PutBucketVersioning` + permissions are required. + + - **S3 Object Ownership** - If your `CreateBucket` request includes + the `x-amz-object-ownership` header, then the + `s3:PutBucketOwnershipControls` permission is required. + + Warning: + To set an ACL on a bucket as part of a `CreateBucket` request, you + must explicitly set S3 Object Ownership for the bucket to a + different value than the default, `BucketOwnerEnforced`. + Additionally, if your desired bucket ACL grants public access, you + must first create the bucket (without the bucket ACL) and then + explicitly disable Block Public Access on the bucket before using + `PutBucketAcl` to set the ACL. If you try to create a bucket with + a public ACL, the request will fail. + + For the majority of modern use cases in S3, we recommend that you + keep all Block Public Access settings enabled and keep ACLs + disabled. If you would like to share data with users outside of + your account, you can use bucket policies as needed. For more + information, see [Controlling ownership of objects and disabling + ACLs for your + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + and [Blocking public access to your Amazon S3 + storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) + in the *Amazon S3 User Guide*. + + - **S3 Block Public Access** - If your specific use case requires + granting public access to your S3 resources, you can disable Block + Public Access. Specifically, you can create a new bucket with + Block Public Access enabled, then separately call the + [`DeletePublicAccessBlock`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + API. To use this operation, you must have the + `s3:PutBucketPublicAccessBlock` permission. For more information + about S3 Block Public Access, see [Blocking public access to your + Amazon S3 + storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have the + `s3express:CreateBucket` permission in an IAM identity-based policy + instead of a bucket policy. Cross-account access to this API + operation isn't supported. This operation can only be performed by + the Amazon Web Services account that owns the resource. For more + information about directory bucket policies and permissions, see + [Amazon Web Services Identity and Access Management (IAM) for S3 + Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Warning: + The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 + Block Public Access are not supported for directory buckets. For + directory buckets, all Block Public Access settings are enabled at + the bucket level and S3 Object Ownership is set to Bucket owner + enforced (ACLs disabled). These settings can't be modified. + + For more information about permissions for creating and working with + directory buckets, see [Directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. For more information about supported + S3 features for directory buckets, see [Features of S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CreateBucket`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketOutput`. + """ + return await self._invoke(input, _models.CREATE_BUCKET, [], plugins) + + async def create_bucket_metadata_configuration( + self, + input: CreateBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> CreateBucketMetadataConfigurationOutput: + """ + Creates an S3 Metadata V2 metadata configuration for a general purpose + bucket. For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your metadata tables with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions in your KMS key policy. For more information, + see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you also want to integrate your table bucket with Amazon Web + Services analytics services so that you can query your metadata table, + you need additional permissions. For more information, see + [Integrating Amazon S3 Tables with Amazon Web Services analytics + services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) + in the *Amazon S3 User Guide*. + + To query your metadata tables, you need additional permissions. For + more information, see [Permissions for querying metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-bucket-query-permissions.html) + in the *Amazon S3 User Guide*. + + - `s3:CreateBucketMetadataTableConfiguration` + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + - `s3tables:CreateTableBucket` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + - `s3tables:PutTableBucketPolicy` + + - `s3tables:PutTableEncryption` + + - `kms:DescribeKey` + + - `iam:PassRole` - required if you include an + `AnnotationTableConfiguration` with an IAM role. + + The following operations are related to + `CreateBucketMetadataConfiguration`: + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + - [UpdateBucketMetadataAnnotationTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html) + + If you include an `AnnotationTableConfiguration` with an IAM role, the + role must have a trust policy that allows the Amazon S3 metadata service + to assume it, and a permissions policy that grants the actions needed to + read annotations from your bucket. The following examples show a trust + policy and a permissions policy that you can adapt for your bucket and + account. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketMetadataConfigurationOutput`. + """ + return await self._invoke( + input, _models.CREATE_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + async def create_bucket_metadata_table_configuration( + self, + input: CreateBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> CreateBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you create your S3 Metadata configurations by using + the V2 + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + API operation. We no longer recommend using the V1 + `CreateBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Creates a V1 S3 Metadata configuration for a general purpose bucket. For + more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your metadata tables with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions. For more information, see [Setting up + permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you also want to integrate your table bucket with Amazon Web + Services analytics services so that you can query your metadata table, + you need additional permissions. For more information, see + [Integrating Amazon S3 Tables with Amazon Web Services analytics + services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) + in the *Amazon S3 User Guide*. + + - `s3:CreateBucketMetadataTableConfiguration` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + The following operations are related to + `CreateBucketMetadataTableConfiguration`: + + - [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + + - [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketMetadataTableConfigurationOutput`. + """ + return await self._invoke( + input, _models.CREATE_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + async def create_multipart_upload( + self, input: CreateMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> CreateMultipartUploadOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + + This action initiates a multipart upload and returns an upload ID. This + upload ID is used to associate all of the parts in the specific + multipart upload. You specify this upload ID in each of your subsequent + upload part requests (see + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). + You also include this upload ID in the final request to either complete + or abort the multipart upload request. For more information about + multipart uploads, see [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide*. + + Note: + After you initiate a multipart upload and upload one or more parts, to + stop being charged for storing the uploaded parts, you must either + complete or abort the multipart upload. Amazon S3 frees up the space + used to store the parts and stops charging you for storing them only + after you either complete or abort a multipart upload. + + If you have configured a lifecycle rule to abort incomplete multipart + uploads, the created multipart upload must be completed within the + number of days specified in the bucket lifecycle configuration. + Otherwise, the incomplete multipart upload becomes eligible for an abort + action and Amazon S3 aborts the multipart upload. For more information, + see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). + + Note: + - **Directory buckets** - S3 Lifecycle is not supported by directory + buckets. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Request signing + + : For request signing, multipart upload is just a series of regular + requests. You initiate a multipart upload, send one or more requests + to upload parts, and then complete the multipart upload process. You + sign each request individually. There is nothing special about signing + multipart upload requests. For more information about signing, see + [Authenticating Requests (Amazon Web Services Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To perform a multipart + upload with encryption using an Key Management Service (KMS) KMS + key, the requester must have permission to the `kms:Decrypt` and + `kms:GenerateDataKey` actions on the key. The requester must also + have permissions for the `kms:GenerateDataKey` action for the + `CreateMultipartUpload` API. Then, the requester needs permissions + for the `kms:Decrypt` action on the `UploadPart` and + `UploadPartCopy` APIs. These permissions are required because Amazon + S3 must decrypt and read data from the encrypted file parts before + it completes the multipart upload. For more information, see + [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + and [Protecting data using server-side encryption with Amazon Web + Services + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Encryption + + : - **General purpose buckets** - Server-side encryption is for data + encryption at rest. Amazon S3 encrypts your data as it writes it to + disks in its data centers and decrypts it when you access it. Amazon + S3 automatically encrypts all new objects that are uploaded to an S3 + bucket. When doing a multipart upload, if you don't specify + encryption information in your request, the encryption setting of + the uploaded parts is set to the default encryption configuration of + the destination bucket. By default, all buckets have a base level of + encryption configuration that uses server-side encryption with + Amazon S3 managed keys (SSE-S3). If the destination bucket has a + default encryption configuration that uses server-side encryption + with an Key Management Service (KMS) key (SSE-KMS), or a + customer-provided encryption key (SSE-C), Amazon S3 uses the + corresponding KMS key, or a customer-provided key to encrypt the + uploaded parts. When you perform a CreateMultipartUpload operation, + if you want to use a different type of encryption setting for the + uploaded parts, you can request that Amazon S3 encrypts the object + with a different encryption key (such as an Amazon S3 managed key, a + KMS key, or a customer-provided key). When the encryption setting in + your request is different from the default encryption configuration + of the destination bucket, the encryption setting in your request + takes precedence. If you choose to provide your own encryption key, + the request headers you provide in + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + requests must match the headers you used in the + `CreateMultipartUpload` request. + + - Use KMS keys (SSE-KMS) that include the Amazon Web Services + managed key (`aws/s3`) and KMS customer managed keys stored in Key + Management Service (KMS) -- If you want Amazon Web Services to + manage the keys used to encrypt data, specify the following + headers in the request. + + - `x-amz-server-side-encryption` + + - `x-amz-server-side-encryption-aws-kms-key-id` + + - `x-amz-server-side-encryption-context` + + Note: + - If you specify `x-amz-server-side-encryption:aws:kms`, but + don't provide `x-amz-server-side-encryption-aws-kms-key-id`, + Amazon S3 uses the Amazon Web Services managed key (`aws/s3` + key) in KMS to protect the data. + + - To perform a multipart upload with encryption by using an Amazon + Web Services KMS key, the requester must have permission to the + `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. + These permissions are required because Amazon S3 must decrypt + and read data from the encrypted file parts before it completes + the multipart upload. For more information, see [Multipart + upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + and [Protecting data using server-side encryption with Amazon + Web Services + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - If your Identity and Access Management (IAM) user or role is in + the same Amazon Web Services account as the KMS key, then you + must have these permissions on the key policy. If your IAM user + or role is in a different account from the key, then you must + have the permissions on both the key policy and your IAM user or + role. + + - All `GET` and `PUT` requests for an object protected by KMS fail + if you don't make them by using Secure Sockets Layer (SSL), + Transport Layer Security (TLS), or Signature Version 4. For + information about configuring any of the officially supported + Amazon Web Services SDKs and Amazon Web Services CLI, see + [Specifying the Signature Version in Request + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) + in the *Amazon S3 User Guide*. + + For more information about server-side encryption with KMS keys + (SSE-KMS), see [Protecting Data Using Server-Side Encryption with + KMS + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - Use customer-provided encryption keys (SSE-C) -- If you want to + manage your own encryption keys, provide all the following headers + in the request. + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about server-side encryption with + customer-provided encryption keys (SSE-C), see [Protecting data + using server-side encryption with customer-provided encryption + keys + (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). We recommend that + the bucket's default encryption uses the desired encryption + configuration and you don't override the bucket default encryption + in your `CreateSession` requests or `PUT` object requests. Then, new + objects are automatically encrypted with the desired encryption + settings. For more information, see [Protecting data with + server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see + [Specifying server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, the encryption request headers must match the + encryption settings that are specified in the `CreateSession` + request. You can't override the values of the encryption settings + (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) that are + specified in the `CreateSession` request. You don't need to + explicitly specify these encryption settings values in Zonal + endpoint API calls, and Amazon S3 will use the encryption settings + values from the `CreateSession` request to protect new objects in + the directory bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. So in the + Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + the encryption request headers must match the default encryption + configuration of the directory bucket. + Note: + For directory buckets, when you perform a `CreateMultipartUpload` + operation and an `UploadPartCopy` operation, the request headers you + provide in the `CreateMultipartUpload` request must match the + default encryption configuration of the destination bucket. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CreateMultipartUpload`: + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMultipartUploadOutput`. + """ + return await self._invoke(input, _models.CREATE_MULTIPART_UPLOAD, [], plugins) + + async def create_session( + self, input: CreateSessionInput, plugins: list[Plugin] | None = None + ) -> CreateSessionOutput: + """ + Creates a session that establishes temporary security credentials to + support fast authentication and authorization for the Zonal endpoint API + operations on directory buckets. For more information about Zonal + endpoint API operations that include the Availability Zone in the + request endpoint, see [S3 Express One Zone + APIs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html) + in the *Amazon S3 User Guide*. + + To make Zonal endpoint API requests on a directory bucket, use the + `CreateSession` API operation. Specifically, you grant + `s3express:CreateSession` permission to a bucket in a bucket policy or + an IAM identity-based policy. Then, you use IAM credentials to make the + `CreateSession` API request on the bucket, which returns temporary + security credentials that include the access key ID, secret access key, + session token, and expiration. These credentials have associated + permissions to access the Zonal endpoint API operations. After the + session is created, you don't need to use other policies to grant + permissions to each Zonal endpoint API individually. Instead, in your + Zonal endpoint API requests, you sign your requests by applying the + temporary security credentials of the session to the request headers and + following the SigV4 protocol for authentication. You also apply the + session token to the `x-amz-s3session-token` request header for + authorization. Temporary security credentials are scoped to the bucket + and expire after 5 minutes. After the expiration time, any calls that + you make with those credentials will fail. You must use IAM credentials + again to make a `CreateSession` API request that generates a new set of + temporary credentials for use. Temporary credentials cannot be extended + or refreshed beyond the original specified interval. + + If you use Amazon Web Services SDKs, SDKs handle the session token + refreshes automatically to avoid service interruptions when a session + expires. We recommend that you use the Amazon Web Services SDKs to + initiate and manage requests to the CreateSession API. For more + information, see [Performance guidelines and design + patterns](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication) + in the *Amazon S3 User Guide*. + + Note: + - You must make requests for this API operation to the Zonal endpoint. + These endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + - **`CopyObject` API operation** - Unlike other Zonal endpoint API + operations, the `CopyObject` API operation doesn't use the temporary + security credentials returned from the `CreateSession` API operation + for authentication and authorization. For information about + authentication and authorization of the `CopyObject` API operation on + directory buckets, see + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html). + + - **`HeadBucket` API operation** - Unlike other Zonal endpoint API + operations, the `HeadBucket` API operation doesn't use the temporary + security credentials returned from the `CreateSession` API operation + for authentication and authorization. For information about + authentication and authorization of the `HeadBucket` API operation on + directory buckets, see + [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html). + + Permissions + + : To obtain temporary security credentials, you must create a bucket + policy or an IAM identity-based policy that grants + `s3express:CreateSession` permission to the bucket. In a policy, you + can have the `s3express:SessionMode` condition key to control who can + create a `ReadWrite` or `ReadOnly` session. For more information about + `ReadWrite` or `ReadOnly` sessions, see + [`x-amz-create-session-mode`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters) + . For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + To grant cross-account access to Zonal endpoint API operations, the + bucket policy should also grant both accounts the + `s3express:CreateSession` permission. + + If you want to encrypt objects with SSE-KMS, you must also have the + `kms:GenerateDataKey` and the `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the target KMS key. + + Encryption + + : For directory buckets, there are only two supported options for + server-side encryption: server-side encryption with Amazon S3 managed + keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys + (SSE-KMS) (`aws:kms`). We recommend that the bucket's default + encryption uses the desired encryption configuration and you don't + override the bucket default encryption in your `CreateSession` + requests or `PUT` object requests. Then, new objects are automatically + encrypted with the desired encryption settings. For more information, + see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + For [Zonal endpoint (object-level) API + operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations) + except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + you authenticate and authorize requests through + [CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + for low latency. To encrypt new objects in a directory bucket with + SSE-KMS, you must specify SSE-KMS as the directory bucket's default + encryption configuration with a KMS key (specifically, a [customer + managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)). + Then, when a session is created for Zonal endpoint API operations, new + objects are automatically encrypted and decrypted with SSE-KMS and S3 + Bucket Keys during the session. + + Note: + Only 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + is supported per directory bucket for the lifetime of the bucket. The + [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. After you specify SSE-KMS as your + bucket's default encryption configuration with a customer managed + key, you can't change the customer managed key for the bucket's + SSE-KMS configuration. + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, you can't override the values of the encryption + settings (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) from the + `CreateSession` request. You don't need to explicitly specify these + encryption settings values in Zonal endpoint API calls, and Amazon S3 + will use the encryption settings values from the `CreateSession` + request to protect new objects in the directory bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. Also, in + the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + it's not supported to override the values of the encryption settings + from the `CreateSession` request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSessionOutput`. + """ + return await self._invoke(input, _models.CREATE_SESSION, [], plugins) + + async def delete_bucket( + self, input: DeleteBucketInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketOutput: + """ + Deletes the S3 bucket. All objects (including all object versions and + delete markers) in the bucket must be deleted before the bucket itself + can be deleted. + + Note: + - **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints + support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal + endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - You must have the + `s3:DeleteBucket` permission on the specified bucket in a policy. + + - **Directory bucket permissions** - You must have the + `s3express:DeleteBucket` permission in an IAM identity-based policy + instead of a bucket policy. Cross-account access to this API + operation isn't supported. This operation can only be performed by + the Amazon Web Services account that owns the resource. For more + information about directory bucket policies and permissions, see + [Amazon Web Services Identity and Access Management (IAM) for S3 + Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucket`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET, [], plugins) + + async def delete_bucket_analytics_configuration( + self, + input: DeleteBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes an analytics configuration for the bucket (specified by the + analytics configuration ID). + + To use this operation, you must have permissions to perform the + `s3:PutAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + For information about the Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + The following operations are related to + `DeleteBucketAnalyticsConfiguration`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketAnalyticsConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + async def delete_bucket_cors( + self, input: DeleteBucketCorsInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the `cors` configuration information set for the bucket. + + To use this operation, you must have permission to perform the + `s3:PutBucketCORS` action. The bucket owner has this permission by + default and can grant this permission to others. + + For information about `cors`, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + + **Related Resources** + + - [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) + + - [RESTOPTIONSobject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketCorsOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_CORS, [], plugins) + + async def delete_bucket_encryption( + self, input: DeleteBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketEncryptionOutput: + """ + This implementation of the DELETE action resets the default encryption + for the bucket as server-side encryption with Amazon S3 managed keys + (SSE-S3). + + Note: + - **General purpose buckets** - For information about the bucket default + encryption feature, see [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. For + information about the default encryption configuration in directory + buckets, see [Setting default server-side encryption behavior for + directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:PutEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucketEncryption`: + + - [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) + + - [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketEncryptionOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_ENCRYPTION, [], plugins) + + async def delete_bucket_intelligent_tiering_configuration( + self, + input: DeleteBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the S3 Intelligent-Tiering configuration from the specified + bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `DeleteBucketIntelligentTieringConfiguration` + include: + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketIntelligentTieringConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + async def delete_bucket_inventory_configuration( + self, + input: DeleteBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketInventoryConfigurationOutput: + """ + Deletes an S3 Inventory configuration (identified by the inventory ID) + from the bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). + + Note: + After deleting a configuration, Amazon S3 might still deliver one + additional inventory report during a brief transition period while the + system processes the deletion. + + Operations related to `DeleteBucketInventoryConfiguration` include: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketInventoryConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + async def delete_bucket_lifecycle( + self, input: DeleteBucketLifecycleInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketLifecycleOutput: + """ + Deletes the lifecycle configuration from the specified bucket. Amazon S3 + removes all the lifecycle configuration rules in the lifecycle + subresource associated with the bucket. Your objects never expire, and + Amazon S3 no longer automatically deletes any objects on the basis of + rules contained in the deleted lifecycle configuration. + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:PutLifecycleConfiguration` permission. + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:PutLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + For more information about the object expiration, see [Elements to + Describe Lifecycle + Actions](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). + + Related actions include: + + - [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + + - [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketLifecycleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketLifecycleOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_LIFECYCLE, [], plugins) + + async def delete_bucket_metadata_configuration( + self, + input: DeleteBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetadataConfigurationOutput: + """ + Deletes an S3 Metadata configuration from a general purpose bucket. For + more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `DeleteBucketMetadataConfiguration` API operation + with V1 or V2 metadata configurations. However, if you try to use the V1 + `DeleteBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Permissions + + : To use this operation, you must have the + `s3:DeleteBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + The following operations are related to + `DeleteBucketMetadataConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetadataConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + async def delete_bucket_metadata_table_configuration( + self, + input: DeleteBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you delete your S3 Metadata configurations by using + the V2 + [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + API operation. We no longer recommend using the V1 + `DeleteBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Deletes a V1 S3 Metadata configuration from a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `DeleteBucketMetadataConfiguration` API operation + with V1 or V2 metadata table configurations. However, if you try to use + the V1 `DeleteBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Make sure that you update your processes to use the new V2 API + operations (`CreateBucketMetadataConfiguration`, + `GetBucketMetadataConfiguration`, and + `DeleteBucketMetadataConfiguration`) instead of the V1 API operations. + + Permissions + + : To use this operation, you must have the + `s3:DeleteBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `DeleteBucketMetadataTableConfiguration`: + + - [CreateBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) + + - [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetadataTableConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + async def delete_bucket_metrics_configuration( + self, + input: DeleteBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetricsConfigurationOutput: + """ + Deletes a metrics configuration for the Amazon CloudWatch request + metrics (specified by the metrics configuration ID) from the bucket. + Note that this doesn't include the daily storage metrics. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to + `DeleteBucketMetricsConfiguration`: + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + - [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetricsConfigurationOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + async def delete_bucket_ownership_controls( + self, + input: DeleteBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes `OwnershipControls` for an Amazon S3 bucket. To use this + operation, you must have the `s3:PutBucketOwnershipControls` permission. + For more information about Amazon S3 permissions, see [Specifying + Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + For information about Amazon S3 Object Ownership, see [Using Object + Ownership](https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). + + The following operations are related to `DeleteBucketOwnershipControls`: + + - GetBucketOwnershipControls + + - PutBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketOwnershipControlsOutput`. + """ + return await self._invoke( + input, _models.DELETE_BUCKET_OWNERSHIP_CONTROLS, [], plugins + ) + + async def delete_bucket_policy( + self, input: DeleteBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketPolicyOutput: + """ + Deletes the policy of a specified bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `DeleteBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `DeleteBucketPolicy` permissions, Amazon S3 returns + a `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:DeleteBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:DeleteBucketPolicy` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucketPolicy` + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketPolicyOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_POLICY, [], plugins) + + async def delete_bucket_replication( + self, input: DeleteBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the replication configuration from the bucket. + + To use this operation, you must have permissions to perform the + `s3:PutReplicationConfiguration` action. The bucket owner has these + permissions by default and can grant it to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + Note: + It can take a while for the deletion of a replication configuration to + fully propagate. + + For information about replication configuration, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + The following operations are related to `DeleteBucketReplication`: + + - [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) + + - [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketReplicationOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_REPLICATION, [], plugins) + + async def delete_bucket_tagging( + self, input: DeleteBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes tags from the general purpose bucket if attribute based access + control (ABAC) is not enabled for the bucket. When you [enable ABAC for + a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html), + you can no longer use this operation for that bucket and must use + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + instead. + + To use this operation, you must have permission to perform the + `s3:PutBucketTagging` action. By default, the bucket owner has this + permission and can grant this permission to others. + + The following operations are related to `DeleteBucketTagging`: + + - [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) + + - [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketTaggingOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_TAGGING, [], plugins) + + async def delete_bucket_website( + self, input: DeleteBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + This action removes the website configuration for a bucket. Amazon S3 + returns a `200 OK` response upon successfully deleting a website + configuration on the specified bucket. You will get a `200 OK` response + if the website configuration you are trying to delete does not exist on + the bucket. Amazon S3 returns a `404` response if the bucket specified + in the request does not exist. + + This DELETE action requires the `S3:DeleteBucketWebsite` permission. By + default, only the bucket owner can delete the website configuration + attached to a bucket. However, bucket owners can grant other users + permission to delete the website configuration by writing a bucket + policy granting them the `S3:DeleteBucketWebsite` permission. + + For more information about hosting websites, see [Hosting Websites on + Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + The following operations are related to `DeleteBucketWebsite`: + + - [GetBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) + + - [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketWebsiteOutput`. + """ + return await self._invoke(input, _models.DELETE_BUCKET_WEBSITE, [], plugins) + + async def delete_object( + self, input: DeleteObjectInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectOutput: + """ + Removes an object from a bucket. The behavior depends on the bucket's + versioning state: + + - If bucket versioning is not enabled, the operation permanently deletes + the object. + + - If bucket versioning is enabled, the operation inserts a delete + marker, which becomes the current version of the object. To + permanently delete an object in a versioned bucket, you must include + the object's `versionId` in the request. For more information about + versioning-enabled buckets, see [Deleting object versions from a + versioning-enabled + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html). + + - If bucket versioning is suspended, the operation removes the object + that has a null `versionId`, if there is one, and inserts a delete + marker that becomes the current version of the object. If there isn't + an object with a null `versionId`, and all versions of the object have + a `versionId`, Amazon S3 does not remove the object and only inserts a + delete marker. To permanently delete an object that has a `versionId`, + you must include the object's `versionId` in the request. For more + information about versioning-suspended buckets, see [Deleting objects + from versioning-suspended + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html). + + Note: + - **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. For this API operation, only the `null` value of + the version ID is supported by directory buckets. You can only specify + `null` to the `versionId` query parameter in the request. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + To remove a specific version, you must use the `versionId` query + parameter. Using this query parameter permanently deletes the version. + If the object deleted is a delete marker, Amazon S3 sets the response + header `x-amz-delete-marker` to true. + + If the object you want to delete is in a bucket where the bucket + versioning configuration is MFA Delete enabled, you must include the + `x-amz-mfa` request header in the DELETE `versionId` request. Requests + that include `x-amz-mfa` must use HTTPS. For more information about MFA + Delete, see [Using MFA + Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html) + in the *Amazon S3 User Guide*. To see sample requests that use + versioning, see [Sample + Request](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). + + Note: + **Directory buckets** - MFA delete is not supported by directory + buckets. + + You can delete objects by explicitly calling DELETE Object or calling + ([PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) + to enable Amazon S3 to remove them for you. If you want to block users + or accounts from removing or deleting objects from your bucket, you must + deny them the `s3:DeleteObject`, `s3:DeleteObjectVersion`, and + `s3:PutLifeCycleConfiguration` actions. + + Note: + **Directory buckets** - S3 Lifecycle is not supported by directory + buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `DeleteObjects` request + includes specific headers. + + - **`s3:DeleteObject`** - To delete an object from a bucket, you + must always have the `s3:DeleteObject` permission. + + - **`s3:DeleteObjectVersion`** - To delete a specific version of an + object from a versioning-enabled bucket, you must have the + `s3:DeleteObjectVersion` permission. + + Note: + If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions + are explicitly denied in your bucket policy, attempts to delete + any unversioned objects result in a `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following action is related to `DeleteObject`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + Note: + The `If-Match` header is supported for both general purpose and + directory buckets. `IfMatchLastModifiedTime` and `IfMatchSize` is only + supported for directory buckets. + + Args: + input: + An instance of `DeleteObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectOutput`. + """ + return await self._invoke(input, _models.DELETE_OBJECT, [], plugins) + + async def delete_object_annotation( + self, input: DeleteObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectAnnotationOutput: + """ + Deletes a specific annotation from an Amazon S3 object. Use the + `x-amz-object-if-match` header to perform a conditional delete that only + succeeds if the object's ETag matches the provided value, preventing + race conditions during concurrent updates. + + Deleting an annotation is permanent. Annotations are not independently + versioned, so there is no delete marker or way to recover a deleted + annotation. + + To use this operation, you must have the `s3:DeleteObjectAnnotation` + permission. If the object is protected by Object Lock in governance + mode, you must also include the `x-amz-bypass-governance-retention` + header. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `DeleteObjectAnnotation`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + Args: + input: + An instance of `DeleteObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectAnnotationOutput`. + """ + return await self._invoke(input, _models.DELETE_OBJECT_ANNOTATION, [], plugins) + + async def delete_objects( + self, input: DeleteObjectsInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectsOutput: + """ + This operation enables you to delete multiple objects from a bucket + using a single HTTP request. If you know the object keys that you want + to delete, then this operation provides a suitable alternative to + sending individual delete requests, reducing per-request overhead. + + The request can contain a list of up to 1,000 keys that you want to + delete. In the XML, you provide the object key names, and optionally, + version IDs if you want to delete a specific version of the object from + a versioning-enabled bucket. For each key, Amazon S3 performs a delete + operation and returns the result of that delete, success or failure, in + the response. If the object specified in the request isn't found, + Amazon S3 confirms the deletion by returning the result as deleted. + + Note: + - **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + The operation supports two modes for the response: verbose and quiet. By + default, the operation uses verbose mode in which the response includes + the result of deletion of each key in your request. In quiet mode the + response includes only keys where the delete operation encountered an + error. For a successful deletion in a quiet mode, the operation does not + return any information about the delete in the response body. + + When performing this action on an MFA Delete enabled bucket, that + attempts to delete any versioned objects, you must include an MFA token. + If you do not provide one, the entire request will fail, even if there + are non-versioned objects you are trying to delete. If you provide an + invalid token, whether there are versioned keys in the request or not, + the entire Multi-Object Delete request will fail. For information about + MFA Delete, see [MFA + Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - MFA delete is not supported by directory + buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `DeleteObjects` request + includes specific headers. + + - **`s3:DeleteObject`** - To delete an object from a bucket, you + must always specify the `s3:DeleteObject` permission. + + - **`s3:DeleteObjectVersion`** - To delete a specific version of an + object from a versioning-enabled bucket, you must specify the + `s3:DeleteObjectVersion` permission. + + Note: + If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions + are explicitly denied in your bucket policy, attempts to delete + any unversioned objects result in a `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Content-MD5 request header + + : - **General purpose bucket** - The Content-MD5 request header is + required for all Multi-Object Delete requests. Amazon S3 uses the + header value to ensure that your request body has not been altered + in transit. + + - **Directory bucket** - The Content-MD5 request header or a + additional checksum request header (including + `x-amz-checksum-crc32`, `x-amz-checksum-crc32c`, + `x-amz-checksum-sha1`, or `x-amz-checksum-sha256`) is required for + all Multi-Object Delete requests. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteObjects`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteObjectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectsOutput`. + """ + return await self._invoke(input, _models.DELETE_OBJECTS, [], plugins) + + async def delete_object_tagging( + self, input: DeleteObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes the entire tag set from the specified object. For more + information about managing object tags, see [Object + Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). + + To use this operation, you must have permission to perform the + `s3:DeleteObjectTagging` action. + + To delete tags of a specific object version, add the `versionId` query + parameter in the request. You will need permission for the + `s3:DeleteObjectVersionTagging` action. + + The following operations are related to `DeleteObjectTagging`: + + - [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectTaggingOutput`. + """ + return await self._invoke(input, _models.DELETE_OBJECT_TAGGING, [], plugins) + + async def delete_public_access_block( + self, input: DeletePublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> DeletePublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes the `PublicAccessBlock` configuration for an Amazon S3 bucket. + This operation removes the bucket-level configuration only. The + effective public access behavior will still be governed by account-level + settings (which may inherit from organization-level policies). To use + this operation, you must have the `s3:PutBucketPublicAccessBlock` + permission. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + The following operations are related to `DeletePublicAccessBlock`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [GetBucketPolicyStatus](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeletePublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicAccessBlockOutput`. + """ + return await self._invoke( + input, _models.DELETE_PUBLIC_ACCESS_BLOCK, [], plugins + ) + + async def get_bucket_abac( + self, input: GetBucketAbacInput, plugins: list[Plugin] | None = None + ) -> GetBucketAbacOutput: + """ + Returns the attribute-based access control (ABAC) property of the + general purpose bucket. If ABAC is enabled on your bucket, you can use + tags on the bucket for access control. For more information, see + [Enabling ABAC in general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html). + + Args: + input: + An instance of `GetBucketAbacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAbacOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_ABAC, [], plugins) + + async def get_bucket_accelerate_configuration( + self, + input: GetBucketAccelerateConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketAccelerateConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the GET action uses the `accelerate` subresource + to return the Transfer Acceleration state of a bucket, which is either + `Enabled` or `Suspended`. Amazon S3 Transfer Acceleration is a + bucket-level feature that enables you to perform faster data transfers + to and from Amazon S3. + + To use this operation, you must have permission to perform the + `s3:GetAccelerateConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + You set the Transfer Acceleration state of an existing bucket to + `Enabled` or `Suspended` by using the + [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) + operation. + + A GET `accelerate` request does not return a state value for a bucket + that has no transfer acceleration state. A bucket has no Transfer + Acceleration state if a state has never been set on the bucket. + + For more information about transfer acceleration, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) + in the Amazon S3 User Guide. + + The following operations are related to + `GetBucketAccelerateConfiguration`: + + - [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketAccelerateConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAccelerateConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_ACCELERATE_CONFIGURATION, [], plugins + ) + + async def get_bucket_acl( + self, input: GetBucketAclInput, plugins: list[Plugin] | None = None + ) -> GetBucketAclOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the `GET` action uses the `acl` subresource to + return the access control list (ACL) of a bucket. To use `GET` to return + the ACL of the bucket, you must have the `READ_ACP` access to the + bucket. If `READ_ACP` permission is granted to the anonymous user, you + can return the ACL of the bucket without using an authorization header. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + If your bucket uses the bucket owner enforced setting for S3 Object + Ownership, requests to read ACLs are still supported and return the + `bucket-owner-full-control` ACL with the owner being the account that + created the bucket. For more information, see [Controlling object + ownership and disabling + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + The following operations are related to `GetBucketAcl`: + + - [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) + + Args: + input: + An instance of `GetBucketAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAclOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_ACL, [], plugins) + + async def get_bucket_analytics_configuration( + self, + input: GetBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the GET action returns an analytics configuration + (identified by the analytics configuration ID) from the bucket. + + To use this operation, you must have permissions to perform the + `s3:GetAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + For information about Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `GetBucketAnalyticsConfiguration`: + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAnalyticsConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + async def get_bucket_cors( + self, input: GetBucketCorsInput, plugins: list[Plugin] | None = None + ) -> GetBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the Cross-Origin Resource Sharing (CORS) configuration + information set for the bucket. + + To use this operation, you must have permission to perform the + `s3:GetBucketCORS` action. By default, the bucket owner has this + permission and can grant it to others. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + For more information about CORS, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). + + The following operations are related to `GetBucketCors`: + + - [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) + + - [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketCorsOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_CORS, [], plugins) + + async def get_bucket_encryption( + self, input: GetBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> GetBucketEncryptionOutput: + """ + Returns the default encryption configuration for an Amazon S3 bucket. By + default, all buckets have a default encryption configuration that uses + server-side encryption with Amazon S3 managed keys (SSE-S3). This + operation also returns the + [BucketKeyEnabled](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BucketKeyEnabled) + and + [BlockedEncryptionTypes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BlockedEncryptionTypes) + statuses. + + Note: + - **General purpose buckets** - For information about the bucket default + encryption feature, see [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. For + information about the default encryption configuration in directory + buckets, see [Setting default server-side encryption behavior for + directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:GetEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `GetBucketEncryption`: + + - [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) + + - [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketEncryptionOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_ENCRYPTION, [], plugins) + + async def get_bucket_intelligent_tiering_configuration( + self, + input: GetBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets the S3 Intelligent-Tiering configuration from the specified bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `GetBucketIntelligentTieringConfiguration` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketIntelligentTieringConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + async def get_bucket_inventory_configuration( + self, + input: GetBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketInventoryConfigurationOutput: + """ + Returns an S3 Inventory configuration (identified by the inventory + configuration ID) from the bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). + + The following operations are related to + `GetBucketInventoryConfiguration`: + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketInventoryConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + async def get_bucket_lifecycle_configuration( + self, + input: GetBucketLifecycleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketLifecycleConfigurationOutput: + """ + Returns the lifecycle configuration information set on the bucket. For + information about lifecycle configuration, see [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). + + Bucket lifecycle configuration now supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API, which is compatible with the new functionality. The previous + version of the API supported filtering based only on an object key name + prefix, which is supported for general purpose buckets for backward + compatibility. For the related API description, see + [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). + + Note: + Lifecyle configurations for directory buckets only support expiring + objects and cancelling multipart uploads. Expiring of versioned objects, + transitions and tag filters are not supported. + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:GetLifecycleConfiguration` permission. + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:GetLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + `GetBucketLifecycleConfiguration` has the following special error: + + - Error code: `NoSuchLifecycleConfiguration` + + - Description: The lifecycle configuration does not exist. + + - HTTP Status Code: 404 Not Found + + - SOAP Fault Code Prefix: Client + + The following operations are related to + `GetBucketLifecycleConfiguration`: + + - [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) + + - [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) + + - [DeleteBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLifecycleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLifecycleConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_LIFECYCLE_CONFIGURATION, [], plugins + ) + + async def get_bucket_location( + self, input: GetBucketLocationInput, plugins: list[Plugin] | None = None + ) -> GetBucketLocationOutput: + """ + Warning: + Using the `GetBucketLocation` operation is no longer a best practice. To + return the Region that a bucket resides in, we recommend that you use + the + [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) + operation instead. For backward compatibility, Amazon S3 continues to + support the `GetBucketLocation` operation. + + Returns the Region the bucket resides in. You set the bucket's Region + using the `LocationConstraint` request parameter in a `CreateBucket` + request. For more information, see + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). + + Note: + In a bucket's home Region, calls to the `GetBucketLocation` operation + are governed by the bucket's policy. In other Regions, the bucket + policy doesn't apply, which means that cross-account access won't be + authorized. However, calls to the `HeadBucket` operation always return + the bucket's location through an HTTP response header, whether access to + the bucket is authorized or not. Therefore, we recommend using the + `HeadBucket` operation for bucket Region discovery and to avoid using + the `GetBucketLocation` operation. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + This operation is not supported for directory buckets. + + The following operations are related to `GetBucketLocation`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLocationOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_LOCATION, [], plugins) + + async def get_bucket_logging( + self, input: GetBucketLoggingInput, plugins: list[Plugin] | None = None + ) -> GetBucketLoggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the logging status of a bucket and the permissions users have to + view and modify that status. + + The following operations are related to `GetBucketLogging`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLoggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLoggingOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_LOGGING, [], plugins) + + async def get_bucket_metadata_configuration( + self, + input: GetBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetadataConfigurationOutput: + """ + Retrieves the S3 Metadata configuration for a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `GetBucketMetadataConfiguration` API operation with + V1 or V2 metadata configurations. However, if you try to use the V1 + `GetBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Permissions + + : To use this operation, you must have the + `s3:GetBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + The following operations are related to + `GetBucketMetadataConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetadataConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + async def get_bucket_metadata_table_configuration( + self, + input: GetBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you retrieve your S3 Metadata configurations by using + the V2 + [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + API operation. We no longer recommend using the V1 + `GetBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Retrieves the V1 S3 Metadata configuration for a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `GetBucketMetadataConfiguration` API operation with + V1 or V2 metadata table configurations. However, if you try to use the + V1 `GetBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Make sure that you update your processes to use the new V2 API + operations (`CreateBucketMetadataConfiguration`, + `GetBucketMetadataConfiguration`, and + `DeleteBucketMetadataConfiguration`) instead of the V1 API operations. + + Permissions + + : To use this operation, you must have the + `s3:GetBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `GetBucketMetadataTableConfiguration`: + + - [CreateBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) + + - [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetadataTableConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + async def get_bucket_metrics_configuration( + self, + input: GetBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetricsConfigurationOutput: + """ + Gets a metrics configuration (specified by the metrics configuration ID) + from the bucket. Note that this doesn't include the daily storage + metrics. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to `GetBucketMetricsConfiguration`: + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + - [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetricsConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + async def get_bucket_notification_configuration( + self, + input: GetBucketNotificationConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketNotificationConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the notification configuration of a bucket. + + If notifications are not enabled on the bucket, the action returns an + empty `NotificationConfiguration` element. + + By default, you must be the bucket owner to read the notification + configuration of a bucket. However, the bucket owner can use a bucket + policy to grant permission to other users to read this configuration + with the `s3:GetBucketNotification` permission. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + For more information about setting and reading the notification + configuration on a bucket, see [Setting Up Notification of Bucket + Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + For more information about bucket policies, see [Using Bucket + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). + + The following action is related to `GetBucketNotification`: + + - [PutBucketNotification](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketNotificationConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketNotificationConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_NOTIFICATION_CONFIGURATION, [], plugins + ) + + async def get_bucket_ownership_controls( + self, + input: GetBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves `OwnershipControls` for an Amazon S3 bucket. To use this + operation, you must have the `s3:GetBucketOwnershipControls` permission. + For more information about Amazon S3 permissions, see [Specifying + permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). + + Note: + A bucket doesn't have `OwnershipControls` settings in the following + cases: + + - The bucket was created before the `BucketOwnerEnforced` ownership + setting was introduced and you've never explicitly applied this value + + - You've manually deleted the bucket ownership control value using the + `DeleteBucketOwnershipControls` API operation. + + By default, Amazon S3 sets `OwnershipControls` for all newly created + buckets. + + For information about Amazon S3 Object Ownership, see [Using Object + Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). + + The following operations are related to `GetBucketOwnershipControls`: + + - PutBucketOwnershipControls + + - DeleteBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketOwnershipControlsOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_OWNERSHIP_CONTROLS, [], plugins + ) + + async def get_bucket_policy( + self, input: GetBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> GetBucketPolicyOutput: + """ + Returns the policy of a specified bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `GetBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `GetBucketPolicy` permissions, Amazon S3 returns a + `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:GetBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetBucketPolicy` permission + in an IAM identity-based policy instead of a bucket policy. + Cross-account access to this API operation isn't supported. This + operation can only be performed by the Amazon Web Services account + that owns the resource. For more information about directory bucket + policies and permissions, see [Amazon Web Services Identity and + Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Example bucket policies + + : **General purpose buckets example bucket policies** - See [Bucket + policy + examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + **Directory bucket example bucket policies** - See [Example bucket + policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following action is related to `GetBucketPolicy`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketPolicyOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_POLICY, [], plugins) + + async def get_bucket_policy_status( + self, input: GetBucketPolicyStatusInput, plugins: list[Plugin] | None = None + ) -> GetBucketPolicyStatusOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves the policy status for an Amazon S3 bucket, indicating whether + the bucket is public. In order to use this operation, you must have the + `s3:GetBucketPolicyStatus` permission. For more information about Amazon + S3 permissions, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + For more information about when Amazon S3 considers a bucket public, see + [The Meaning of + \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `GetBucketPolicyStatus`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketPolicyStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketPolicyStatusOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_POLICY_STATUS, [], plugins) + + async def get_bucket_replication( + self, input: GetBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> GetBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the replication configuration of a bucket. + + Note: + It can take a while to propagate the put or delete a replication + configuration to all Amazon S3 systems. Therefore, a get request soon + after put or delete can return a wrong result. + + For information about replication configuration, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + This action requires permissions for the + `s3:GetReplicationConfiguration` action. For more information about + permissions, see [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). + + If you include the `Filter` element in a replication configuration, you + must also include the `DeleteMarkerReplication` and `Priority` elements. + The response also returns those elements. + + For information about `GetBucketReplication` errors, see [List of + replication-related error + codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) + + The following operations are related to `GetBucketReplication`: + + - [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) + + - [DeleteBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketReplicationOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_REPLICATION, [], plugins) + + async def get_bucket_request_payment( + self, input: GetBucketRequestPaymentInput, plugins: list[Plugin] | None = None + ) -> GetBucketRequestPaymentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the request payment configuration of a bucket. To use this + version of the operation, you must be the bucket owner. For more + information, see [Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). + + The following operations are related to `GetBucketRequestPayment`: + + - [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketRequestPaymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketRequestPaymentOutput`. + """ + return await self._invoke( + input, _models.GET_BUCKET_REQUEST_PAYMENT, [], plugins + ) + + async def get_bucket_tagging( + self, input: GetBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> GetBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the tag set associated with the general purpose bucket. + + To use this operation, you must have permission to perform the + `s3: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: `NoSuchTagSet` + + - Description: There is no tag set associated with the bucket. + + The following operations are related to `GetBucketTagging`: + + - [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + + - [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketTaggingOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_TAGGING, [], plugins) + + async def get_bucket_versioning( + self, input: GetBucketVersioningInput, plugins: list[Plugin] | None = None + ) -> GetBucketVersioningOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the versioning state of a bucket. + + To retrieve the versioning state of a bucket, you must be the bucket + owner. + + This implementation also returns the MFA Delete status of the versioning + state. If the MFA Delete status is `enabled`, the bucket owner must use + an authentication device to change the versioning state of the bucket. + + The following operations are related to `GetBucketVersioning`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketVersioningInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketVersioningOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_VERSIONING, [], plugins) + + async def get_bucket_website( + self, input: GetBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> GetBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the website configuration for a bucket. To host website on + Amazon S3, you can configure a bucket as website by adding a website + configuration. For more information about hosting websites, see [Hosting + Websites on Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + This GET action requires the `S3:GetBucketWebsite` permission. By + default, only the bucket owner can read the bucket website + configuration. However, bucket owners can allow other users to read the + website configuration by writing a bucket policy granting them the + `S3:GetBucketWebsite` permission. + + The following operations are related to `GetBucketWebsite`: + + - [DeleteBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) + + - [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketWebsiteOutput`. + """ + return await self._invoke(input, _models.GET_BUCKET_WEBSITE, [], plugins) + + async def get_object( + self, input: GetObjectInput, plugins: list[Plugin] | None = None + ) -> GetObjectOutput: + """ + Retrieves an object from Amazon S3. + + In the `GetObject` request, specify the full key name for the object. + + **General purpose buckets** - Both the virtual-hosted-style requests and + the path-style requests are supported. For a virtual hosted-style + request example, if you have the object + `photos/2006/February/sample.jpg`, specify the object key name as + `/photos/2006/February/sample.jpg`. For a path-style request example, if + you have the object `photos/2006/February/sample.jpg` in the bucket + named `examplebucket`, specify the object key name as + `/examplebucket/photos/2006/February/sample.jpg`. For more information + about request types, see [HTTP Host Header Bucket + Specification](https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket) + in the *Amazon S3 User Guide*. + + **Directory buckets** - Only virtual-hosted-style requests are + supported. For a virtual hosted-style request example, if you have the + object `photos/2006/February/sample.jpg` in the bucket named + `amzn-s3-demo-bucket--usw2-az1--x-s3`, specify the object key name as + `/photos/2006/February/sample.jpg`. Also, when you make requests to this + API operation, your requests are sent to the Zonal endpoint. These + endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - You must have the required + permissions in a policy. To use `GetObject`, you must have the + `READ` access to the object (or version). If you grant `READ` access + to the anonymous user, the `GetObject` operation returns the object + without using an authorization header. For more information, see + [Specifying permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + in the *Amazon S3 User Guide*. + + If you include a `versionId` in your request header, you must have + the `s3:GetObjectVersion` permission to access a specific version of + an object. The `s3:GetObject` permission is not required in this + scenario. + + If you request the current version of an object without a specific + `versionId` in the request header, only the `s3:GetObject` + permission is required. The `s3:GetObjectVersion` permission is not + required in this scenario. + + If the object that you request doesn't exist, the error that Amazon + S3 returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted using SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Storage classes + + : If the object you are retrieving is stored in the S3 Glacier Flexible + Retrieval storage class, the S3 Glacier Deep Archive storage class, + the S3 Intelligent-Tiering Archive Access tier, or the S3 + Intelligent-Tiering Deep Archive Access tier, before you can retrieve + the object you must first restore a copy using + [RestoreObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). + Otherwise, this operation returns an `InvalidObjectState` error. For + information about restoring archived objects, see [Restoring Archived + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + in the *Amazon S3 User Guide*. + + **Directory buckets** - Directory buckets only support + `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in + Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access + storage class) in Dedicated Local Zones. Unsupported storage class + values won't write a destination object and will respond with the + HTTP status code `400 Bad Request`. + + Encryption + + : Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for the `GetObject` requests, if your object uses + server-side encryption with Amazon S3 managed encryption keys + (SSE-S3), server-side encryption with Key Management Service (KMS) + keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web + Services KMS keys (DSSE-KMS). If you include the header in your + `GetObject` requests for the object that uses these types of keys, + you'll get an HTTP `400 Bad Request` error. + + **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. + SSE-C isn't supported. For more information, see [Protecting data + with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Overriding response header values through the request + + : There are times when you want to override certain response header + values of a `GetObject` response. For example, you might override the + `Content-Disposition` response header value through your `GetObject` + request. + + You can override values for a set of response headers. These modified + response header values are included only in a successful response, + that is, when the HTTP status code `200 OK` is returned. The headers + you can override using the following query parameters in the request + are a subset of the headers that Amazon S3 accepts when you create an + object. + + The response headers that you can override for the `GetObject` + response are `Cache-Control`, `Content-Disposition`, + `Content-Encoding`, `Content-Language`, `Content-Type`, and `Expires`. + + To override values for a set of response headers in the `GetObject` + response, you can use the following query parameters in the request. + + - `response-cache-control` + + - `response-content-disposition` + + - `response-content-encoding` + + - `response-content-language` + + - `response-content-type` + + - `response-expires` + + Note: + When you use these parameters, you must sign the request by using + either an Authorization header or a presigned URL. These parameters + cannot be used with an unsigned (anonymous) request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `GetObject`: + + - [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT, [], plugins) + + async def get_object_acl( + self, input: GetObjectAclInput, plugins: list[Plugin] | None = None + ) -> GetObjectAclOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the access control list (ACL) of an object. To use this + operation, you must have `s3:GetObjectAcl` permissions or `READ_ACP` + access to the object. For more information, see [Mapping of ACL + permissions and access policy + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) + in the *Amazon S3 User Guide* + + This functionality is not supported for Amazon S3 on Outposts. + + By default, GET returns ACL information about the current version of an + object. To return ACL information about a different version, use the + versionId subresource. + + Note: + If your bucket uses the bucket owner enforced setting for S3 Object + Ownership, requests to read ACLs are still supported and return the + `bucket-owner-full-control` ACL with the owner being the account that + created the bucket. For more information, see [Controlling object + ownership and disabling + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + The following operations are related to `GetObjectAcl`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAclOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_ACL, [], plugins) + + async def get_object_annotation( + self, input: GetObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> GetObjectAnnotationOutput: + """ + Retrieves an annotation from an Amazon S3 object. To use this operation, + you must have the `s3:GetObjectAnnotation` permission. + + If checksum mode is enabled via the `x-amz-checksum-mode` header, Amazon + S3 returns the stored checksum in the response headers for client-side + validation. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `GetObjectAnnotation`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `GetObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAnnotationOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_ANNOTATION, [], plugins) + + async def get_object_attributes( + self, input: GetObjectAttributesInput, plugins: list[Plugin] | None = None + ) -> GetObjectAttributesOutput: + """ + Retrieves all of the metadata from an object without returning the + object itself. This operation is useful if you're interested only in an + object's metadata. + + `GetObjectAttributes` combines the functionality of `HeadObject` and + `ListParts`. All of the data returned with both of those individual + calls can be returned with a single call to `GetObjectAttributes`. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To use + `GetObjectAttributes`, you must have READ access to the object. + + The other permissions that you need to use this operation depend on + whether the bucket is versioned and if a version ID is passed in the + `GetObjectAttributes` request. + + - If you pass a version ID in your request, you need both the + `s3:GetObjectVersion` and `s3:GetObjectVersionAttributes` + permissions. + + - If you do not pass a version ID in your request, you need the + `s3:GetObject` and `s3:GetObjectAttributes` permissions. + + For more information, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + in the *Amazon S3 User Guide*. + + If the object that you request does not exist, the error Amazon S3 + returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` (\"no such key\") + error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Forbidden` (\"access denied\") + error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Encryption + + : Note: + Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for `HEAD` requests if your object uses server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), + dual-layer server-side encryption with Amazon Web Services KMS keys + (DSSE-KMS), or server-side encryption with Amazon S3 managed + encryption keys (SSE-S3). The `x-amz-server-side-encryption` header is + used when you `PUT` an object to S3 and want to specify the encryption + method. If you include this header in a `GET` request for an object + that uses these types of keys, you'll get an HTTP `400 Bad Request` + error. It's because the encryption method can't be changed when you + retrieve the object. + If you encrypted an object when you stored the object in Amazon S3 by + using server-side encryption with customer-provided encryption keys + (SSE-C), then when you retrieve the metadata from the object, you must + use the following headers. These headers provide the server with the + encryption key required to retrieve the object's metadata. The + headers are: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory bucket permissions** - For directory buckets, there are + only two supported options for server-side encryption: server-side + encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We + recommend that the bucket's default encryption uses the desired + encryption configuration and you don't override the bucket default + encryption in your `CreateSession` requests or `PUT` object requests. + Then, new objects are automatically encrypted with the desired + encryption settings. For more information, see [Protecting data with + server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + Versioning + + : **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. For this API operation, only the `null` value of + the version ID is supported by directory buckets. You can only specify + `null` to the `versionId` query parameter in the request. + + Conditional request headers + + : Consider the following when using request headers: + + - If both of the `If-Match` and `If-Unmodified-Since` headers are + present in the request as follows, then Amazon S3 returns the HTTP + status code `200 OK` and the data requested: + + - `If-Match` condition evaluates to `true`. + + - `If-Unmodified-Since` condition evaluates to `false`. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + + - If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows, then Amazon S3 returns the HTTP + status code `304 Not Modified`: + + - `If-None-Match` condition evaluates to `false`. + + - `If-Modified-Since` condition evaluates to `true`. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following actions are related to `GetObjectAttributes`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + - [GetObjectLegalHold](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html) + + - [GetObjectLockConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html) + + - [GetObjectRetention](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html) + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + - [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAttributesOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_ATTRIBUTES, [], plugins) + + async def get_object_legal_hold( + self, input: GetObjectLegalHoldInput, plugins: list[Plugin] | None = None + ) -> GetObjectLegalHoldOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets an object's current legal hold status. For more information, see + [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectLegalHold`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectLegalHoldInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectLegalHoldOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_LEGAL_HOLD, [], plugins) + + async def get_object_lock_configuration( + self, + input: GetObjectLockConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetObjectLockConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets the Object Lock configuration for a 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + The following action is related to `GetObjectLockConfiguration`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectLockConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectLockConfigurationOutput`. + """ + return await self._invoke( + input, _models.GET_OBJECT_LOCK_CONFIGURATION, [], plugins + ) + + async def get_object_retention( + self, input: GetObjectRetentionInput, plugins: list[Plugin] | None = None + ) -> GetObjectRetentionOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves an object's retention settings. For more information, see + [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectRetention`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectRetentionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectRetentionOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_RETENTION, [], plugins) + + async def get_object_tagging( + self, input: GetObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> GetObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the tag-set of an object. You send the GET request against the + tagging subresource associated with the object. + + To use this operation, you must have permission to perform the + `s3:GetObjectTagging` action. By default, the GET action returns + information about current version of an object. For a versioned bucket, + you can have multiple versions of an object in your bucket. To retrieve + tags of any other version, use the versionId query parameter. You also + need permission for the `s3:GetObjectVersionTagging` action. + + By default, the bucket owner has this permission and can grant this + permission to others. + + For information about the Amazon S3 object tagging feature, see [Object + Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). + + The following actions are related to `GetObjectTagging`: + + - [DeleteObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectTaggingOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_TAGGING, [], plugins) + + async def get_object_torrent( + self, input: GetObjectTorrentInput, plugins: list[Plugin] | None = None + ) -> GetObjectTorrentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns torrent files from a bucket. BitTorrent can save you bandwidth + when you're distributing large files. + + Note: + You can get torrent only for objects that are less than 5 GB in size, + and that are not encrypted using server-side encryption with a + customer-provided encryption key. + + To use GET, you must have READ access to the object. + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectTorrent`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectTorrentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectTorrentOutput`. + """ + return await self._invoke(input, _models.GET_OBJECT_TORRENT, [], plugins) + + async def get_public_access_block( + self, input: GetPublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> GetPublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves the `PublicAccessBlock` configuration for an Amazon S3 bucket. + This operation returns the bucket-level configuration only. To + understand the effective public access behavior, you must also consider + account-level settings (which may inherit from organization-level + policies). To use this operation, you must have the + `s3:GetBucketPublicAccessBlock` permission. For more information about + Amazon S3 permissions, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + Warning: + 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. Account-level settings automatically inherit from + organization-level policies when present. If the `PublicAccessBlock` + settings 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\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `GetPublicAccessBlock`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetPublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicAccessBlockOutput`. + """ + return await self._invoke(input, _models.GET_PUBLIC_ACCESS_BLOCK, [], plugins) + + async def head_bucket( + self, input: HeadBucketInput, plugins: list[Plugin] | None = None + ) -> HeadBucketOutput: + """ + You can use this operation to determine if a bucket exists and if you + have permission to access it. The action returns a `200 OK` HTTP status + code if the bucket exists and you have permission to access it. You can + make a `HeadBucket` call on any bucket name to any Region in the + partition, and regardless of the permissions on the bucket, you will + receive a response header with the correct bucket location so that you + can then make a proper, signed request to the appropriate Regional + endpoint. + + Note: + If the bucket doesn't exist or you don't have permission to access it, + the `HEAD` request returns a generic `400 Bad Request`, `403 Forbidden`, + or `404 Not Found` HTTP status code. A message body isn't included, so + you can't determine the exception beyond these HTTP response codes. + + Authentication and authorization + + : **General purpose buckets** - Request to public buckets that grant the + s3:ListBucket permission publicly do not need to be signed. All other + `HeadBucket` requests must be authenticated and signed by using IAM + credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use IAM credentials to authenticate + and authorize your access to the `HeadBucket` API operation, instead + of using the temporary security credentials through the + `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : - **General purpose bucket permissions** - To use this operation, you + must have permissions to perform the `s3:ListBucket` action. The + bucket owner has this permission by default and can grant this + permission to others. For more information about permissions, see + [Managing access permissions to your Amazon S3 + resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have the + **`s3express:CreateSession`** permission in the `Action` element of + a policy. If no session mode is specified, the session will be + created with the maximum allowable privilege, attempting `ReadWrite` + first, then `ReadOnly` if `ReadWrite` is not permitted. If you want + to explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the bucket. + + For more information about example bucket policies, see [Example + bucket policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Note: + You must make requests for this API operation to the Zonal endpoint. + These endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `HeadBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `HeadBucketOutput`. + """ + return await self._invoke(input, _models.HEAD_BUCKET, [], plugins) + + async def head_object( + self, input: HeadObjectInput, plugins: list[Plugin] | None = None + ) -> HeadObjectOutput: + """ + The `HEAD` operation retrieves metadata from an object without returning + the object itself. This operation is useful if you're interested only + in an object's metadata. + + Note: + A `HEAD` request has the same options as a `GET` operation on an object. + The response is identical to the `GET` response except that there is no + response body. Because of this, if the `HEAD` request generates an + error, it returns a generic code, such as `400 Bad Request`, + `403 Forbidden`, `404 Not Found`, `405 Method Not Allowed`, + `412 Precondition Failed`, or `304 Not Modified`. It's not possible to + retrieve the exact exception of these error codes. + + Request headers are limited to 8 KB in size. For more information, see + [Common Request + Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). + + Permissions + + : - **General purpose bucket permissions** - To use `HEAD`, you must + have the `s3:GetObject` permission. You need the relevant read + object (or version) permission for this operation. For more + information, see [Actions, resources, and condition keys for Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) + in the *Amazon S3 User Guide*. For more information about the + permissions to S3 API operations by S3 resource types, see [Required + permissions for Amazon S3 API + operations](/AmazonS3/latest/userguide/using-with-s3-policy-actions.html) + in the *Amazon S3 User Guide*. + + If the object you request doesn't exist, the error that Amazon S3 + returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Forbidden` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If you enable `x-amz-checksum-mode` in the request and the object is + encrypted with Amazon Web Services Key Management Service (Amazon + Web Services KMS), you must also have the `kms:GenerateDataKey` and + `kms:Decrypt` permissions in IAM identity-based policies and KMS key + policies for the KMS key to retrieve the checksum of the object. + + Encryption + + : Note: + Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for `HEAD` requests if your object uses server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), + dual-layer server-side encryption with Amazon Web Services KMS keys + (DSSE-KMS), or server-side encryption with Amazon S3 managed + encryption keys (SSE-S3). The `x-amz-server-side-encryption` header is + used when you `PUT` an object to S3 and want to specify the encryption + method. If you include this header in a `HEAD` request for an object + that uses these types of keys, you'll get an HTTP `400 Bad Request` + error. It's because the encryption method can't be changed when you + retrieve the object. + If you encrypt an object by using server-side encryption with + customer-provided encryption keys (SSE-C) when you store the object in + Amazon S3, then when you retrieve the metadata from the object, you + must use the following headers to provide the encryption key for the + server to be able to retrieve the object's metadata. The headers are: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory bucket** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. + SSE-C isn't supported. For more information, see [Protecting data + with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Versioning + + : - If the current version of the object is a delete marker, Amazon S3 + behaves as if the object was deleted and includes + `x-amz-delete-marker: true` in the response. + + - If the specified version is a delete marker, the response returns a + `405 Method Not Allowed` error and the `Last-Modified: timestamp` + response header. + + Note: + - **Directory buckets** - Delete marker is not supported for directory + buckets. + + - **Directory buckets** - S3 Versioning isn't enabled and supported + for directory buckets. For this API operation, only the `null` value + of the version ID is supported by directory buckets. You can only + specify `null` to the `versionId` query parameter in the request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Note: + For directory buckets, you must make requests for this API operation + to the Zonal endpoint. These endpoints support virtual-hosted-style + requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + The following actions are related to `HeadObject`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `HeadObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `HeadObjectOutput`. + """ + return await self._invoke(input, _models.HEAD_OBJECT, [], plugins) + + async def list_bucket_analytics_configurations( + self, + input: ListBucketAnalyticsConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketAnalyticsConfigurationsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Lists the analytics configurations for the bucket. You can have up to + 1,000 analytics configurations per bucket. + + This action supports list pagination and does not return more than 100 + configurations at a time. You should always check the `IsTruncated` + element in the response. If there are no more configurations to list, + `IsTruncated` is set to false. If there are more configurations to list, + `IsTruncated` is set to true, and there will be a value in + `NextContinuationToken`. You use the `NextContinuationToken` value to + continue the pagination of the list by passing the value in + continuation-token in the request to `GET` the next page. + + To use this operation, you must have permissions to perform the + `s3:GetAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + For information about Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + The following operations are related to + `ListBucketAnalyticsConfigurations`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketAnalyticsConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketAnalyticsConfigurationsOutput`. + """ + return await self._invoke( + input, _models.LIST_BUCKET_ANALYTICS_CONFIGURATIONS, [], plugins + ) + + async def list_bucket_intelligent_tiering_configurations( + self, + input: ListBucketIntelligentTieringConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketIntelligentTieringConfigurationsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Lists the S3 Intelligent-Tiering configuration from the specified + bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `ListBucketIntelligentTieringConfigurations` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketIntelligentTieringConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketIntelligentTieringConfigurationsOutput`. + """ + return await self._invoke( + input, _models.LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS, [], plugins + ) + + async def list_bucket_inventory_configurations( + self, + input: ListBucketInventoryConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketInventoryConfigurationsOutput: + """ + Returns a list of S3 Inventory configurations for the bucket. You can + have up to 1,000 inventory configurations per bucket. + + This action supports list pagination and does not return more than 100 + configurations at a time. Always check the `IsTruncated` element in the + response. If there are no more configurations to list, `IsTruncated` is + set to false. If there are more configurations to list, `IsTruncated` is + set to true, and there is a value in `NextContinuationToken`. You use + the `NextContinuationToken` value to continue the pagination of the list + by passing the value in continuation-token in the request to `GET` the + next page. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) + + The following operations are related to + `ListBucketInventoryConfigurations`: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketInventoryConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketInventoryConfigurationsOutput`. + """ + return await self._invoke( + input, _models.LIST_BUCKET_INVENTORY_CONFIGURATIONS, [], plugins + ) + + async def list_bucket_metrics_configurations( + self, + input: ListBucketMetricsConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketMetricsConfigurationsOutput: + """ + Lists the metrics configurations for the bucket. The metrics + configurations are only for the request metrics of the bucket and do not + provide information on daily storage metrics. You can have up to 1,000 + configurations per bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + This action supports list pagination and does not return more than 100 + configurations at a time. Always check the `IsTruncated` element in the + response. If there are no more configurations to list, `IsTruncated` is + set to false. If there are more configurations to list, `IsTruncated` is + set to true, and there is a value in `NextContinuationToken`. You use + the `NextContinuationToken` value to continue the pagination of the list + by passing the value in `continuation-token` in the request to `GET` the + next page. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For more information about metrics configurations and CloudWatch request + metrics, see [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to + `ListBucketMetricsConfigurations`: + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketMetricsConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketMetricsConfigurationsOutput`. + """ + return await self._invoke( + input, _models.LIST_BUCKET_METRICS_CONFIGURATIONS, [], plugins + ) + + async def list_buckets( + self, input: ListBucketsInput, plugins: list[Plugin] | None = None + ) -> ListBucketsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns a list of all buckets owned by the authenticated sender of the + request. To grant IAM permission to use this operation, you must add the + `s3:ListAllMyBuckets` policy action. + + For information about Amazon S3 buckets, see [Creating, configuring, and + working with Amazon S3 + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). + + Warning: + We strongly recommend using only paginated `ListBuckets` requests. + Unpaginated `ListBuckets` requests are only supported for Amazon Web + Services accounts set to the default general purpose bucket quota of + 10,000. If you have an approved general purpose bucket quota above + 10,000, you must send paginated `ListBuckets` requests to list your + account's buckets. All unpaginated `ListBuckets` requests will be + rejected for Amazon Web Services accounts with a general purpose bucket + quota greater than 10,000. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketsOutput`. + """ + return await self._invoke(input, _models.LIST_BUCKETS, [], plugins) + + async def list_directory_buckets( + self, input: ListDirectoryBucketsInput, plugins: list[Plugin] | None = None + ) -> ListDirectoryBucketsOutput: + """ + Returns a list of all Amazon S3 directory buckets owned by the + authenticated sender of the request. For more information about + directory buckets, see [Directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : You must have the `s3express:ListAllMyDirectoryBuckets` permission in + an IAM identity-based policy instead of a bucket policy. Cross-account + access to this API operation isn't supported. This operation can only + be performed by the Amazon Web Services account that owns the + resource. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + Note: + The `BucketRegion` response element is not part of the + `ListDirectoryBuckets` Response Syntax. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListDirectoryBucketsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDirectoryBucketsOutput`. + """ + return await self._invoke(input, _models.LIST_DIRECTORY_BUCKETS, [], plugins) + + async def list_multipart_uploads( + self, input: ListMultipartUploadsInput, plugins: list[Plugin] | None = None + ) -> ListMultipartUploadsOutput: + """ + This operation lists in-progress multipart uploads in a bucket. An + in-progress multipart upload is a multipart upload that has been + initiated by the `CreateMultipartUpload` request, but has not yet been + completed or aborted. + + Note: + **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. To delete these in-progress + multipart uploads, use the `ListMultipartUploads` operation to list the + in-progress multipart uploads in the bucket and use the + `AbortMultipartUpload` operation to abort all the in-progress multipart + uploads. + + The `ListMultipartUploads` operation returns a maximum of 1,000 + multipart uploads in the response. The limit of 1,000 multipart uploads + is also the default value. You can further limit the number of uploads + in a response by specifying the `max-uploads` request parameter. If + there are more than 1,000 multipart uploads that satisfy your + `ListMultipartUploads` request, the response returns an `IsTruncated` + element with the value of `true`, a `NextKeyMarker` element, and a + `NextUploadIdMarker` element. To list the remaining multipart uploads, + you need to make subsequent `ListMultipartUploads` requests. In these + requests, include two query parameters: `key-marker` and + `upload-id-marker`. Set the value of `key-marker` to the `NextKeyMarker` + value from the previous response. Similarly, set the value of + `upload-id-marker` to the `NextUploadIdMarker` value from the previous + response. + + Note: + **Directory buckets** - The `upload-id-marker` element and the + `NextUploadIdMarker` element aren't supported by directory buckets. To + list the additional multipart uploads, you only need to set the value of + `key-marker` to the `NextKeyMarker` value from the previous response. + + For more information about multipart uploads, see [Uploading Objects + Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Sorting of multipart uploads in response + + : - **General purpose bucket** - In the `ListMultipartUploads` response, + the multipart uploads are sorted based on two criteria: + + - Key-based sorting - Multipart uploads are initially sorted in + ascending order based on their object keys. + + - Time-based sorting - For uploads that share the same object key, + they are further sorted in ascending order based on the upload + initiation time. Among uploads with the same key, the one that was + initiated first will appear before the ones that were initiated + later. + + - **Directory bucket** - In the `ListMultipartUploads` response, the + multipart uploads aren't sorted lexicographically based on the + object keys. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `ListMultipartUploads`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListMultipartUploadsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMultipartUploadsOutput`. + """ + return await self._invoke(input, _models.LIST_MULTIPART_UPLOADS, [], plugins) + + async def list_object_annotations( + self, input: ListObjectAnnotationsInput, plugins: list[Plugin] | None = None + ) -> ListObjectAnnotationsOutput: + """ + Lists the annotations attached to an Amazon S3 object. Results are + paginated, with a maximum of 1,000 annotations per object. Use the + `AnnotationPrefix` parameter to filter the results by name prefix. + + To use this operation, you must have the `s3:ListObjectAnnotations` + permission. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `ListObjectAnnotations`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `ListObjectAnnotationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectAnnotationsOutput`. + """ + return await self._invoke(input, _models.LIST_OBJECT_ANNOTATIONS, [], plugins) + + async def list_objects( + self, input: ListObjectsInput, plugins: list[Plugin] | None = None + ) -> ListObjectsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns some or all (up to 1,000) of the objects in a bucket. You can + use the request parameters as selection criteria to return a subset of + the objects in a bucket. A 200 OK response can contain valid or invalid + XML. Be sure to design your application to parse the contents of the + response and handle it appropriately. + + Warning: + This action has been revised. We recommend that you use the newer + version, + [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), + when developing applications. For backward compatibility, Amazon S3 + continues to support `ListObjects`. + + The following operations are related to `ListObjects`: + + - [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectsOutput`. + """ + return await self._invoke(input, _models.LIST_OBJECTS, [], plugins) + + async def list_objects_v2( + self, input: ListObjectsV2Input, plugins: list[Plugin] | None = None + ) -> ListObjectsV2Output: + """ + Returns some or all (up to 1,000) of the objects in a bucket with each + request. You can use the request parameters as selection criteria to + return a subset of the objects in a bucket. A `200 OK` response can + contain valid or invalid XML. Make sure to design your application to + parse the contents of the response and handle it appropriately. For more + information about listing objects, see [Listing object keys + programmatically](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) + in the *Amazon S3 User Guide*. To get a list of your buckets, see + [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). + + Note: + - **General purpose bucket** - For general purpose buckets, + `ListObjectsV2` doesn't return prefixes that are related only to + in-progress multipart uploads. + + - **Directory buckets** - For directory buckets, `ListObjectsV2` + response includes the prefixes that are related only to in-progress + multipart uploads. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To use this operation, you + must have READ access to the bucket. You must have permission to + perform the `s3:ListBucket` action. The bucket owner has this + permission by default and can grant this permission to others. For + more information about permissions, see [Permissions Related to + Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Sorting order of returned objects + + : - **General purpose bucket** - For general purpose buckets, + `ListObjectsV2` returns objects in lexicographical order based on + their key names. + + - **Directory bucket** - For directory buckets, `ListObjectsV2` does + not return objects in lexicographical order. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + This section describes the latest revision of this action. We recommend + that you use this revised API operation for application development. For + backward compatibility, Amazon S3 continues to support the prior version + of this API operation, + [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html). + + The following operations are related to `ListObjectsV2`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectsV2Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectsV2Output`. + """ + return await self._invoke(input, _models.LIST_OBJECTS_V2, [], plugins) + + async def list_object_versions( + self, input: ListObjectVersionsInput, plugins: list[Plugin] | None = None + ) -> ListObjectVersionsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns metadata about all versions of the objects in a bucket. You can + also use request parameters as selection criteria to return metadata + about a subset of all the object versions. + + Warning: + To use this operation, you must have permission to perform the + `s3:ListBucketVersions` action. Be aware of the name difference. + Note: + A `200 OK` response can contain valid or invalid XML. Make sure to + design your application to parse the contents of the response and handle + it appropriately. + + To use this operation, you must have READ access to the bucket. + + The following operations are related to `ListObjectVersions`: + + - [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectVersionsOutput`. + """ + return await self._invoke(input, _models.LIST_OBJECT_VERSIONS, [], plugins) + + async def list_parts( + self, input: ListPartsInput, plugins: list[Plugin] | None = None + ) -> ListPartsOutput: + """ + Lists the parts that have been uploaded for a specific multipart upload. + + To use this operation, you must provide the `upload ID` in the request. + You obtain this uploadID by sending the initiate multipart upload + request through + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). + + The `ListParts` request returns a maximum of 1,000 uploaded parts. The + limit of 1,000 parts is also the default value. You can restrict the + number of parts in a response by specifying the `max-parts` request + parameter. If your multipart upload consists of more than 1,000 parts, + the response returns an `IsTruncated` field with the value of `true`, + and a `NextPartNumberMarker` element. To list remaining uploaded parts, + in subsequent `ListParts` requests, include the `part-number-marker` + query string parameter and set its value to the `NextPartNumberMarker` + field value from the previous response. + + For more information on multipart uploads, see [Uploading Objects Using + Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + If the upload was created using server-side encryption with Key + Management Service (KMS) keys (SSE-KMS) or dual-layer server-side + encryption with Amazon Web Services KMS keys (DSSE-KMS), you must + have permission to the `kms:Decrypt` action for the `ListParts` + request to succeed. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `ListParts`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListPartsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPartsOutput`. + """ + return await self._invoke(input, _models.LIST_PARTS, [], plugins) + + async def put_bucket_abac( + self, input: PutBucketAbacInput, plugins: list[Plugin] | None = None + ) -> PutBucketAbacOutput: + """ + Sets the attribute-based access control (ABAC) property of the general + purpose bucket. You must have `s3:PutBucketABAC` permission to perform + this action. When you enable ABAC, you can use tags for access control + on your buckets. Additionally, when ABAC is enabled, you must use the + [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) + and + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + actions to manage tags on your buckets. You can nolonger use the + [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + and + [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + actions to tag your bucket. For more information, see [Enabling ABAC in + general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html). + + Args: + input: + An instance of `PutBucketAbacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAbacOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_ABAC, [], plugins) + + async def put_bucket_accelerate_configuration( + self, + input: PutBucketAccelerateConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketAccelerateConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the accelerate configuration of an existing bucket. Amazon S3 + Transfer Acceleration is a bucket-level feature that enables you to + perform faster data transfers to Amazon S3. + + To use this operation, you must have permission to perform the + `s3:PutAccelerateConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + The Transfer Acceleration state of a bucket can be set to one of the + following two values: + + - Enabled -- Enables accelerated data transfers to the bucket. + + - Suspended -- Disables accelerated data transfers to the bucket. + + The + [GetBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) + action returns the transfer acceleration state of a bucket. + + After setting the Transfer Acceleration state of a bucket to Enabled, it + might take up to thirty minutes before the data transfer rates to the + bucket increase. + + The name of the bucket used for Transfer Acceleration must be + DNS-compliant and must not contain periods (\".\"). + + For more information about transfer acceleration, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). + + The following operations are related to + `PutBucketAccelerateConfiguration`: + + - [GetBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAccelerateConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAccelerateConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_ACCELERATE_CONFIGURATION, [], plugins + ) + + async def put_bucket_acl( + self, input: PutBucketAclInput, plugins: list[Plugin] | None = None + ) -> PutBucketAclOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + Sets the permissions on an existing bucket using access control lists + (ACL). For more information, see [Using + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). + To set the ACL of a bucket, you must have the `WRITE_ACP` permission. + + You can use one of the following two ways to set a bucket's + permissions: + + - Specify the ACL in the request body + + - Specify permissions using request headers + + Note: + You cannot specify access permission using both the body and the request + headers. + + Depending on your application needs, you may choose to set the ACL on a + bucket 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, then you can continue to use that approach. + + Warning: + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Permissions + + : You can set access permissions by 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-acl`. If you use this + header, you cannot use other access control-specific headers in your + request. For more information, see [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + + - 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 + the `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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-write` header grants create, + overwrite, and delete objects permission to LogDelivery group + predefined by Amazon S3 and two Amazon Web Services accounts + identified by their email addresses. + + `x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", id="555566667777" ` + + You can use either a canned ACL or specify access permissions + explicitly. You cannot do both. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (using request elements) in the following ways. For examples of + how to specify these grantee values in JSON format, see the Amazon Web + Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + DisplayName is optional and ignored in the request + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + - By Email address: + + ``{=html}``{=html}`<>Grantees@email.com<>```{=html}`&```{=html} + + The grantee is resolved to the CanonicalUser and, in a response to a + GET Object acl request, appears as the CanonicalUser. + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + The following operations are related to `PutBucketAcl`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAclOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_ACL, [], plugins) + + async def put_bucket_analytics_configuration( + self, + input: PutBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets an analytics configuration for the bucket (specified by the + analytics configuration ID). You can have up to 1,000 analytics + configurations per bucket. + + You can choose to have storage class analysis export analysis reports + sent to a comma-separated values (CSV) flat file. See the `DataExport` + request element. Reports are updated daily and are based on the object + filters that you configure. When selecting data export, you specify a + destination bucket and an optional destination prefix where the file is + written. You can export the data to a destination bucket in a different + account. However, the destination bucket must be in the same Region as + the bucket that you are making the PUT analytics configuration to. For + more information, see [Amazon S3 Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + Warning: + You must create a bucket policy on the destination bucket where the + exported file is written to grant permissions to Amazon S3 to write + objects to the bucket. For an example policy, see [Granting Permissions + for Amazon S3 Inventory and Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). + + To use this operation, you must have permissions to perform the + `s3:PutAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + `PutBucketAnalyticsConfiguration` has the following special errors: + + - - *HTTP Error: HTTP 400 Bad Request* + + - *Code: InvalidArgument* + + - *Cause: Invalid argument.* + + - - *HTTP Error: HTTP 400 Bad Request* + + - *Code: TooManyConfigurations* + + - *Cause: You are attempting to create a new configuration but have + already reached the 1,000-configuration limit.* + + - - *HTTP Error: HTTP 403 Forbidden* + + - *Code: AccessDenied* + + - *Cause: You are not the owner of the specified bucket, or you do not + have the s3:PutAnalyticsConfiguration bucket permission to set the + configuration on the bucket.* + + The following operations are related to + `PutBucketAnalyticsConfiguration`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAnalyticsConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + async def put_bucket_cors( + self, input: PutBucketCorsInput, plugins: list[Plugin] | None = None + ) -> PutBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the `cors` configuration for your bucket. If the configuration + exists, Amazon S3 replaces it. + + To use this operation, you must be allowed to perform the + `s3:PutBucketCORS` action. By default, the bucket owner has this + permission and can grant it to others. + + You set this configuration on a bucket so that the bucket can service + cross-origin requests. For example, you might want to enable a request + whose origin is `http://www.example.com` to access your Amazon S3 bucket + at `my.example.bucket.com` by using the browser's `XMLHttpRequest` + capability. + + To enable cross-origin resource sharing (CORS) on a bucket, you add the + `cors` subresource to the bucket. The `cors` subresource is an XML + document in which you configure rules that identify origins and the HTTP + methods that can be executed on your bucket. The document is limited to + 64 KB in size. + + When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS + request) against a bucket, it evaluates the `cors` configuration on the + bucket and uses the first `CORSRule` rule that matches the incoming + browser request to enable a cross-origin request. For a rule to match, + the following conditions must be met: + + - The request's `Origin` header must match `AllowedOrigin` elements. + + - The request method (for example, GET, PUT, HEAD, and so on) or the + `Access-Control-Request-Method` header in case of a pre-flight + `OPTIONS` request must be one of the `AllowedMethod` elements. + + - Every header specified in the `Access-Control-Request-Headers` request + header of a pre-flight request must match an `AllowedHeader` element. + + For more information about CORS, go to [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + + The following operations are related to `PutBucketCors`: + + - [GetBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) + + - [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) + + - [RESTOPTIONSobject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketCorsOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_CORS, [], plugins) + + async def put_bucket_encryption( + self, input: PutBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> PutBucketEncryptionOutput: + """ + This operation configures default encryption and Amazon S3 Bucket Keys + for an existing bucket. You can also [block encryption + types](https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html) + using this operation. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + By default, all buckets have a default encryption configuration that + uses server-side encryption with Amazon S3 managed keys (SSE-S3). + + Note: + - **General purpose buckets** + + - You can optionally configure default encryption for a bucket by + using server-side encryption with Key Management Service (KMS) keys + (SSE-KMS) or dual-layer server-side encryption with Amazon Web + Services KMS keys (DSSE-KMS). If you specify default encryption by + using SSE-KMS, you can also configure [Amazon S3 Bucket + Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html). + For information about the bucket default encryption feature, see + [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - If you use PutBucketEncryption to set your [default bucket + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + to SSE-KMS, you should verify that your KMS key ID is correct. + Amazon S3 doesn't validate the KMS key ID provided in + PutBucketEncryption requests. + + - **Directory buckets** - You can optionally configure default + encryption for a bucket by using server-side encryption with Key + Management Service (KMS) keys (SSE-KMS). + + - We recommend that the bucket's default encryption uses the desired + encryption configuration and you don't override the bucket default + encryption in your `CreateSession` requests or `PUT` object + requests. Then, new objects are automatically encrypted with the + desired encryption settings. For more information about the + encryption overriding behaviors in directory buckets, see + [Specifying server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + - Your SSE-KMS configuration can only support 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. + + - S3 Bucket Keys are always enabled for `GET` and `PUT` operations in + a directory bucket and can't be disabled. S3 Bucket Keys aren't + supported, when you copy SSE-KMS encrypted objects from general + purpose buckets to directory buckets, from directory buckets to + general purpose buckets, or between directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy + request is made for a KMS-encrypted object. + + - When you specify an [KMS customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + for encryption in your directory bucket, only use the key ID or key + ARN. The key alias format of the KMS key isn't supported. + + - For directory buckets, if you use PutBucketEncryption to set your + [default bucket + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + to SSE-KMS, Amazon S3 validates the KMS key ID provided in + PutBucketEncryption requests. + Warning: + If you're specifying a customer managed KMS key, we recommend using a + fully qualified KMS key ARN. If you use a KMS key alias instead, then + KMS resolves the key within the requester's account. This behavior can + result in data that's encrypted with a KMS key that belongs to the + requester, and not the bucket owner. + + Also, this action requires Amazon Web Services Signature Version 4. For + more information, see [Authenticating Requests (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:PutEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + To set a directory bucket default encryption with SSE-KMS, you must + also have the `kms:GenerateDataKey` and the `kms:Decrypt` + permissions in IAM identity-based policies and KMS key policies for + the target KMS key. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `PutBucketEncryption`: + + - [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) + + - [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketEncryptionOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_ENCRYPTION, [], plugins) + + async def put_bucket_intelligent_tiering_configuration( + self, + input: PutBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Puts a S3 Intelligent-Tiering configuration to the specified bucket. You + can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `PutBucketIntelligentTieringConfiguration` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Note: + You only need S3 Intelligent-Tiering enabled on a bucket if you want to + automatically move objects stored in the S3 Intelligent-Tiering storage + class to the Archive Access or Deep Archive Access tier. + + `PutBucketIntelligentTieringConfiguration` has the following special + errors: + + HTTP 400 Bad Request Error + + : *Code:* InvalidArgument + + *Cause:* Invalid Argument + + HTTP 400 Bad Request Error + + : *Code:* TooManyConfigurations + + *Cause:* You are attempting to create a new configuration but have + already reached the 1,000-configuration limit. + + HTTP 403 Forbidden Error + + : *Cause:* You are not the owner of the specified bucket, or you do not + have the `s3:PutIntelligentTieringConfiguration` bucket permission to + set the configuration on the bucket. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketIntelligentTieringConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + async def put_bucket_inventory_configuration( + self, + input: PutBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketInventoryConfigurationOutput: + """ + This implementation of the `PUT` action adds an S3 Inventory + configuration (identified by the inventory ID) to the bucket. You can + have up to 1,000 inventory configurations per bucket. + + Amazon S3 inventory generates inventories of the objects in the bucket + on a daily or weekly basis, and the results are published to a flat + file. The bucket that is inventoried is called the *source* bucket, and + the bucket where the inventory flat file is stored is called the + *destination* bucket. The *destination* bucket must be in the same + Amazon Web Services Region as the *source* bucket. + + When you configure an inventory for a *source* bucket, you specify the + *destination* bucket where you want the inventory to be stored, and + whether to generate the inventory daily or weekly. You can also + configure what object metadata to include and whether to inventory all + object versions or only current versions. For more information, see + [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) + in the Amazon S3 User Guide. + + Warning: + You must create a bucket policy on the *destination* bucket to grant + permissions to Amazon S3 to write objects to the bucket in the defined + location. For an example policy, see [Granting Permissions for Amazon S3 + Inventory and Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permission to perform the + `s3:PutInventoryConfiguration` action. The bucket owner has this + permission by default and can grant this permission to others. + + The `s3:PutInventoryConfiguration` permission allows a user to create + an [S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html) + report that includes all object metadata fields available and to + specify the destination bucket to store the inventory. A user with + read access to objects in the destination bucket can also access all + object metadata fields that are available in the inventory report. + + - **General purpose bucket permissions** - The + `s3:PutInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + To restrict access to an inventory report, see [Restricting access to + an Amazon S3 Inventory + report](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-s3-inventory) + in the *Amazon S3 User Guide*. For more information about the metadata + fields available in S3 Inventory, see [Amazon S3 Inventory + lists](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents) + in the *Amazon S3 User Guide*. For more information about permissions, + see [Permissions related to bucket subresource + operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Identity and access management in Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + `PutBucketInventoryConfiguration` has the following special errors: + + HTTP 400 Bad Request Error + + : *Code:* InvalidArgument + + *Cause:* Invalid Argument + + HTTP 400 Bad Request Error + + : *Code:* TooManyConfigurations + + *Cause:* You are attempting to create a new configuration but have + already reached the 1,000-configuration limit. + + HTTP 403 Forbidden Error + + : *Cause:* You are not the owner of the specified bucket, or you do not + have the `s3:PutInventoryConfiguration` bucket permission to set the + configuration on the bucket. + + The following operations are related to + `PutBucketInventoryConfiguration`: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketInventoryConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + async def put_bucket_lifecycle_configuration( + self, + input: PutBucketLifecycleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketLifecycleConfigurationOutput: + """ + Creates a new lifecycle configuration for the bucket or replaces an + existing lifecycle configuration. Keep in mind that this will overwrite + an existing lifecycle configuration, so if you want to retain any + configuration details, they must be included in the new lifecycle + configuration. For information about lifecycle configuration, see + [Managing your storage + lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). + + Note: + Bucket lifecycle configuration now supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API. The previous version of the API supported filtering based + only on an object key name prefix, which is supported for backward + compatibility. For the related API description, see + [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). + + Rules + + : You specify the lifecycle configuration in your request body. The + lifecycle configuration is specified as XML consisting of one or more + rules. An Amazon S3 Lifecycle configuration can have up to 1,000 + rules. This limit is not adjustable. + + Bucket lifecycle configuration supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API. The previous version of the API supported filtering based + only on an object key name prefix, which is supported for backward + compatibility for general purpose buckets. For the related API + description, see + [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). + + Note: + Lifecyle configurations for directory buckets only support expiring + objects and cancelling multipart uploads. Expiring of versioned + objects,transitions and tag filters are not supported. + A lifecycle rule consists of the following: + + - A filter identifying a subset of objects to which the rule applies. + The filter can be based on a key name prefix, object tags, object + size, or any combination of these. + + - A status indicating whether the rule is in effect. + + - One or more lifecycle transition and expiration actions that you + want Amazon S3 to perform on the objects identified by the filter. + If the state of your bucket is versioning-enabled or + versioning-suspended, you can have many versions of the same object + (one current version and zero or more noncurrent versions). Amazon + S3 provides predefined actions that you can specify for current and + noncurrent object versions. + + For more information, see [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + and [Lifecycle Configuration + Elements](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html). + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:PutLifecycleConfiguration` permission. + + You can also explicitly deny permissions. An explicit deny also + supersedes any other permissions. If you want to block users or + accounts from removing or deleting objects from your bucket, you + must deny them permissions for the following actions: + + - `s3:DeleteObject` + + - `s3:DeleteObjectVersion` + + - `s3:PutLifecycleConfiguration` + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:PutLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + The following operations are related to + `PutBucketLifecycleConfiguration`: + + - [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) + + - [DeleteBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketLifecycleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketLifecycleConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_LIFECYCLE_CONFIGURATION, [], plugins + ) + + async def put_bucket_logging( + self, input: PutBucketLoggingInput, plugins: list[Plugin] | None = None + ) -> PutBucketLoggingOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + Set the logging parameters for a bucket and to specify permissions for + who can view and modify the logging parameters. All logs are saved to + buckets in the same Amazon Web Services Region as the source bucket. To + set the logging status of a bucket, you must be the bucket owner. + + The bucket owner is automatically granted FULL_CONTROL to all logs. You + use the `Grantee` request element to grant access to other people. The + `Permissions` request element specifies the kind of access the grantee + has to the logs. + + Warning: + If the target bucket for log delivery uses the bucket owner enforced + setting for S3 Object Ownership, you can't use the `Grantee` request + element to grant access to others. Permissions can only be granted using + policies. For more information, see [Permissions for server access log + delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) + in the *Amazon S3 User Guide*. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (by using request elements) in the following ways. For examples + of how to specify these grantee values in JSON format, see the Amazon + Web Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + `DisplayName` is optional and ignored in the request. + + - By Email address: + + ` ```{=html}``{=html}`<>Grantees@email.com<>```{=html}``{=html} + + The grantee is resolved to the `CanonicalUser` and, in a response to + a `GETObjectAcl` request, appears as the CanonicalUser. + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + To enable logging, you use `LoggingEnabled` and its children request + elements. To disable logging, you use an empty `BucketLoggingStatus` + request element: + + ``{=html}``{=html} + + For more information about server access logging, see [Server Access + Logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) + in the *Amazon S3 User Guide*. + + For more information about creating a bucket, see + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). + For more information about returning the logging status of a bucket, see + [GetBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html). + + The following operations are related to `PutBucketLogging`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [GetBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketLoggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketLoggingOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_LOGGING, [], plugins) + + async def put_bucket_metrics_configuration( + self, + input: PutBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketMetricsConfigurationOutput: + """ + Sets a metrics configuration (specified by the metrics configuration ID) + for the bucket. You can have up to 1,000 metrics configurations per + bucket. If you're updating an existing metrics configuration, note that + this is a full replacement of the existing metrics configuration. If you + don't include the elements you want to keep, they are erased. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to `PutBucketMetricsConfiguration`: + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + `PutBucketMetricsConfiguration` has the following special error: + + - Error code: `TooManyConfigurations` + + - Description: You are attempting to create a new configuration but + have already reached the 1,000-configuration limit. + + - HTTP Status Code: HTTP 400 Bad Request + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketMetricsConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + async def put_bucket_notification_configuration( + self, + input: PutBucketNotificationConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketNotificationConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Enables notifications of specified events for a bucket. For more + information about event notifications, see [Configuring Event + Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + + Using this API, you can replace an existing notification configuration. + The configuration is an XML file that defines the event types that you + want Amazon S3 to publish and the destination where you want Amazon S3 + to publish an event notification when it detects an event of the + specified type. + + By default, your bucket has no event notifications configured. That is, + the notification configuration will be an empty + `NotificationConfiguration`. + + ``{=html} + + ``{=html} + + This action replaces the existing notification configuration with the + configuration you include in the request body. + + After Amazon S3 receives this request, it first verifies that any Amazon + Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service + (Amazon SQS) destination exists, and that the bucket owner has + permission to publish to it by sending a test notification. In the case + of Lambda destinations, Amazon S3 verifies that the Lambda function + permissions grant Amazon S3 permission to invoke the function from the + Amazon S3 bucket. For more information, see [Configuring Notifications + for Amazon S3 + Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + + You can disable notifications by adding the empty + NotificationConfiguration element. + + For more information about the number of event notification + configurations that you can create per bucket, see [Amazon S3 service + quotas](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) + in *Amazon Web Services General Reference*. + + By default, only the bucket owner can configure notifications on a + bucket. However, bucket owners can use a bucket policy to grant + permission to other users to set this configuration with the required + `s3:PutBucketNotification` permission. + + Note: + The PUT notification is an atomic operation. For example, suppose your + notification configuration includes SNS topic, SQS queue, and Lambda + function configurations. When you send a PUT request with this + configuration, Amazon S3 sends test messages to your SNS topic. If the + message fails, the entire PUT action will fail, and Amazon S3 will not + add the configuration to your bucket. + + If the configuration in the request body includes only one + `TopicConfiguration` specifying only the + `s3:ReducedRedundancyLostObject` event type, the response will also + include the `x-amz-sns-test-message-id` header containing the message ID + of the test notification sent to the topic. + + The following action is related to `PutBucketNotificationConfiguration`: + + - [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketNotificationConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketNotificationConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_NOTIFICATION_CONFIGURATION, [], plugins + ) + + async def put_bucket_ownership_controls( + self, + input: PutBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Creates or modifies `OwnershipControls` for an Amazon S3 bucket. To use + this operation, you must have the `s3:PutBucketOwnershipControls` + permission. For more information about Amazon S3 permissions, see + [Specifying permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html). + + For information about Amazon S3 Object Ownership, see [Using object + ownership](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html). + + The following operations are related to `PutBucketOwnershipControls`: + + - GetBucketOwnershipControls + + - DeleteBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketOwnershipControlsOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_OWNERSHIP_CONTROLS, [], plugins + ) + + async def put_bucket_policy( + self, input: PutBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> PutBucketPolicyOutput: + """ + Applies an Amazon S3 bucket policy to an Amazon S3 bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `PutBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `PutBucketPolicy` permissions, Amazon S3 returns a + `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:PutBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutBucketPolicy` permission + in an IAM identity-based policy instead of a bucket policy. + Cross-account access to this API operation isn't supported. This + operation can only be performed by the Amazon Web Services account + that owns the resource. For more information about directory bucket + policies and permissions, see [Amazon Web Services Identity and + Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Example bucket policies + + : **General purpose buckets example bucket policies** - See [Bucket + policy + examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + **Directory bucket example bucket policies** - See [Example bucket + policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `PutBucketPolicy`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketPolicyOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_POLICY, [], plugins) + + async def put_bucket_replication( + self, input: PutBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> PutBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Creates a replication configuration or replaces an existing one. For + more information, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + Specify the replication configuration in the request body. In the + replication configuration, you provide the name of the destination + bucket or buckets where you want Amazon S3 to replicate objects, the IAM + role that Amazon S3 can assume to replicate objects on your behalf, and + other relevant information. You can invoke this request for a specific + Amazon Web Services Region by using the + [`aws:RequestedRegion`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) + condition key. + + A replication configuration must include at least one rule, and can + contain a maximum of 1,000. Each rule identifies a subset of objects to + replicate by filtering the objects in the source bucket. To choose + additional subsets of objects to replicate, add a rule for each subset. + + To specify a subset of the objects in the source bucket to apply a + replication rule to, add the Filter element as a child of the Rule + element. You can filter objects based on an object key prefix, one or + more object tags, or both. When you add the Filter element in the + configuration, you must also add the following elements: + `DeleteMarkerReplication`, `Status`, and `Priority`. + + Note: + If you are using an earlier version of the replication configuration, + Amazon S3 handles replication of delete markers differently. For more + information, see [Backward + Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). + + For information about enabling versioning on a bucket, see [Using + Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). + + Handling Replication of Encrypted Objects + + : By default, Amazon S3 doesn't replicate objects that are stored at + rest using server-side encryption with KMS keys. To replicate Amazon + Web Services KMS-encrypted objects, add the following: + `SourceSelectionCriteria`, `SseKmsEncryptedObjects`, `Status`, + `EncryptionConfiguration`, and `ReplicaKmsKeyID`. For information + about replication configuration, see [Replicating Objects Created with + SSE Using KMS + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). + + For information on `PutBucketReplication` errors, see [List of + replication-related error + codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) + + Permissions + + : To create a `PutBucketReplication` request, you must have + `s3:PutReplicationConfiguration` permissions for the bucket. + + By default, a resource owner, in this case the Amazon Web Services + account that created the bucket, can perform this operation. The + resource owner can also grant others permissions to perform the + operation. For more information about permissions, see [Specifying + Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + Note: + To perform this operation, the user or role performing the action must + have the + [iam:PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) + permission. + + The following operations are related to `PutBucketReplication`: + + - [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) + + - [DeleteBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketReplicationOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_REPLICATION, [], plugins) + + async def put_bucket_request_payment( + self, input: PutBucketRequestPaymentInput, plugins: list[Plugin] | None = None + ) -> PutBucketRequestPaymentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the request payment configuration for a bucket. By default, the + bucket owner pays for downloads from the bucket. This configuration + parameter enables the bucket owner (only) to specify that the person + requesting the download will be charged for the download. For more + information, see [Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). + + The following operations are related to `PutBucketRequestPayment`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [GetBucketRequestPayment](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketRequestPaymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketRequestPaymentOutput`. + """ + return await self._invoke( + input, _models.PUT_BUCKET_REQUEST_PAYMENT, [], plugins + ) + + async def put_bucket_tagging( + self, input: PutBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> PutBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the tags for a general purpose bucket if attribute based access + control (ABAC) is not enabled for the bucket. When you [enable ABAC for + a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html), + you can no longer use this operation for that bucket and must use the + [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) + or + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + operations instead. + + Use tags to organize your Amazon Web Services bill to reflect your own + cost structure. To do this, sign up to get your Amazon Web Services + account bill with tag key values included. Then, to see the cost of + combined resources, organize your billing information according to + resources with the same tag key values. For example, you can tag several + resources with a specific application name, and then organize your + billing information to see the total cost of that application across + several services. For more information, see [Cost Allocation and + Tagging](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) + and [Using Cost Allocation in Amazon S3 Bucket + Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). + + Note: + When this operation sets the tags for a bucket, it will overwrite any + current tags the bucket already has. You cannot use this operation to + add tags to an existing list of tags. + + To use this operation, you must have permissions to perform the + `s3:PutBucketTagging` action. The bucket owner has this permission by + default and can grant this permission to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + `PutBucketTagging` has the following special errors. For more Amazon S3 + errors see, [Error + Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + + - `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 [Using Cost Allocation in Amazon S3 Bucket + Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). + + - `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 bucket. + + The following operations are related to `PutBucketTagging`: + + - [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) + + - [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketTaggingOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_TAGGING, [], plugins) + + async def put_bucket_versioning( + self, input: PutBucketVersioningInput, plugins: list[Plugin] | None = None + ) -> PutBucketVersioningOutput: + """ + Note: + This operation is not supported for directory buckets. + Note: + When you enable versioning on a bucket for the first time, it might take + a short amount of time for the change to be fully propagated. While this + change is propagating, you might encounter intermittent + `HTTP 404 NoSuchKey` errors for requests to objects created or updated + after enabling versioning. We recommend that you wait for 15 minutes + after enabling versioning before issuing write operations (`PUT` or + `DELETE`) on objects in the bucket. + + Sets the versioning state of an existing bucket. + + You can set the versioning state with one of the following values: + + **Enabled**---Enables versioning for the objects in the bucket. All + objects added to the bucket receive a unique version ID. + + **Suspended**---Disables versioning for the objects in the bucket. All + objects added to the bucket receive the version ID null. + + If the versioning state has never been set on a bucket, it has no + versioning state; a + [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) + request does not return a versioning state value. + + In order to enable MFA Delete, you must be the bucket owner. If you are + the bucket owner and want to enable MFA Delete in the bucket versioning + configuration, you must include the `x-amz-mfa request` header and the + `Status` and the `MfaDelete` request elements in a request to set the + versioning state of the bucket. + + Warning: + If you have an object expiration lifecycle configuration in your + non-versioned bucket and you want to maintain the same permanent delete + behavior when you enable versioning, you must add a noncurrent + expiration policy. The noncurrent expiration lifecycle configuration + will manage the deletes of the noncurrent object versions in the + version-enabled bucket. (A version-enabled bucket maintains one current + and zero or more noncurrent object versions.) For more information, see + [Lifecycle and + Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config). + + The following operations are related to `PutBucketVersioning`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketVersioningInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketVersioningOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_VERSIONING, [], plugins) + + async def put_bucket_website( + self, input: PutBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> PutBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the configuration of the website that is specified in the `website` + subresource. To configure a bucket as a website, you can add this + subresource on the bucket with website configuration information such as + the file name of the index document and any redirect rules. For more + information, see [Hosting Websites on Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + This PUT action requires the `S3:PutBucketWebsite` permission. By + default, only the bucket owner can configure the website attached to a + bucket; however, bucket owners can allow other users to set the website + configuration by writing a bucket policy that grants them the + `S3:PutBucketWebsite` permission. + + To redirect all website requests sent to the bucket's website endpoint, + you add a website configuration with the following elements. Because all + requests are sent to another website, you don't need to provide index + document name for the bucket. + + - `WebsiteConfiguration` + + - `RedirectAllRequestsTo` + + - `HostName` + + - `Protocol` + + If you want granular control over redirects, you can use the following + elements to add routing rules that describe conditions for redirecting + requests and information about the redirect destination. In this case, + the website configuration must provide an index document for the bucket, + because some requests might not be redirected. + + - `WebsiteConfiguration` + + - `IndexDocument` + + - `Suffix` + + - `ErrorDocument` + + - `Key` + + - `RoutingRules` + + - `RoutingRule` + + - `Condition` + + - `HttpErrorCodeReturnedEquals` + + - `KeyPrefixEquals` + + - `Redirect` + + - `Protocol` + + - `HostName` + + - `ReplaceKeyPrefixWith` + + - `ReplaceKeyWith` + + - `HttpRedirectCode` + + Amazon S3 has a limitation of 50 routing rules per website + configuration. If you require more than 50 routing rules, you can use + object redirect. For more information, see [Configuring an Object + Redirect](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) + in the *Amazon S3 User Guide*. + + The maximum request length is limited to 128 KB. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketWebsiteOutput`. + """ + return await self._invoke(input, _models.PUT_BUCKET_WEBSITE, [], plugins) + + async def put_object( + self, input: PutObjectInput, plugins: list[Plugin] | None = None + ) -> PutObjectOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + + Adds an object to a bucket. + + Note: + - 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. + + - If your bucket uses the bucket owner enforced setting for Object + Ownership, ACLs are disabled and no longer affect permissions. All + objects written to the bucket by any account will be owned by the + bucket owner. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + 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. However, Amazon S3 provides features that can + modify this behavior: + + - **S3 Object Lock** - To prevent objects from being deleted or + overwritten, you can use [Amazon S3 Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + + - **If-None-Match** - Uploads the object only if the object key name + does not already exist in the specified bucket. Otherwise, Amazon S3 + returns a `412 Precondition Failed` error. If a conflicting operation + occurs during the upload, S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure, retry the + upload. + + Expects the * character (asterisk). + + For more information, see [Add preconditions to S3 operations with + conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide* or [RFC + 7232](https://datatracker.ietf.org/doc/rfc7232/). + + Note: + This functionality is not supported for S3 on Outposts. + + - **S3 Versioning** - When you enable versioning for a bucket, if Amazon + S3 receives multiple write requests for the same object + simultaneously, it stores all versions of the objects. For each write + request that is made to the same object, Amazon S3 automatically + generates a unique version ID of that object being stored in Amazon + S3. You can retrieve, replace, or delete any version of the object. + For more information about versioning, see [Adding Objects to + Versioning-Enabled + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) + in the *Amazon S3 User Guide*. For information about returning the + versioning state of a bucket, see + [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). + + Note: + This functionality is not supported for directory buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `PutObject` request includes + specific headers. + + - **`s3:PutObject`** - To successfully complete the `PutObject` + request, you must always have the `s3:PutObject` permission on a + bucket to add an object to it. + + - **`s3:PutObjectAcl`** - To successfully change the objects ACL of + your `PutObject` request, you must have the `s3:PutObjectAcl`. + + - **`s3:PutObjectTagging`** - To successfully set the tag-set with + your `PutObject` request, you must have the `s3:PutObjectTagging`. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Data integrity with Content-MD5 + + : - **General purpose bucket** - 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, Amazon S3 returns an error. + Alternatively, when the object's ETag is its MD5 digest, you can + calculate the MD5 while putting the object to Amazon S3 and compare + the returned ETag to the calculated MD5 value. + + - **Directory bucket** - This functionality is not supported for + directory buckets. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + + + Errors + + : - You might receive an `InvalidRequest` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - Cannot specify both a write offset value and user-defined object + metadata for existing objects. + + - Checksum Type mismatch occurred, expected checksum Type: sha1, + actual checksum Type: crc32c. + + - Request body cannot be empty when 'write offset' is specified. + + For more information about related Amazon S3 APIs, see the following: + + - [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT, [], plugins) + + async def put_object_acl( + self, input: PutObjectAclInput, plugins: list[Plugin] | None = None + ) -> PutObjectAclOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + 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 + the `WRITE_ACP` permission to set the ACL of an object. For more + information, see [What permissions can I + grant?](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) + in the *Amazon S3 User Guide*. + + This functionality is not supported for 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + Warning: + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Permissions + + : 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + + - 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + 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. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (using request elements) in the following ways. For examples of + how to specify these grantee values in JSON format, see the Amazon Web + Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + DisplayName is optional and ignored in the request. + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + - By Email address: + + ``{=html}``{=html}`<>Grantees@email.com<>```{=html}`lt;/Grantee>` + + The grantee is resolved to the CanonicalUser and, in a response to a + GET Object acl request, appears as the CanonicalUser. + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + Versioning + + : The ACL of an object is set at the object version level. By default, + PUT sets the ACL of the current version of an object. To set the ACL + of a different version, use the `versionId` subresource. + + The following operations are related to `PutObjectAcl`: + + - [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectAclOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT_ACL, [], plugins) + + async def put_object_annotation( + self, input: PutObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> PutObjectAnnotationOutput: + """ + Attaches an annotation to an Amazon S3 object. An annotation is a named + payload of 1 byte to 1 MiB that you can associate with a specific object + or object version. Each object can have up to 1,000 annotations. + + For annotation naming rules and restrictions, see [Annotation naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/annotations-overview.html) + in the *Amazon S3 User Guide*. + + Annotations inherit the encryption of their parent object. For objects + without server-side encryption, annotations are encrypted with SSE-S3 + (the default for new objects). Objects encrypted with SSE-C cannot have + annotations. + + To use this operation, you must have the `s3:PutObjectAnnotation` + permission. If the bucket has Requester Pays enabled, you must include + the `x-amz-request-payer` header. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `PutObjectAnnotation`: + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `PutObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectAnnotationOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT_ANNOTATION, [], plugins) + + async def put_object_legal_hold( + self, input: PutObjectLegalHoldInput, plugins: list[Plugin] | None = None + ) -> PutObjectLegalHoldOutput: + """ + Note: + This operation is not supported for directory buckets. + + Applies a legal hold configuration to the specified object. For more + information, see [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectLegalHoldInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectLegalHoldOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT_LEGAL_HOLD, [], plugins) + + async def put_object_lock_configuration( + self, + input: PutObjectLockConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutObjectLockConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + Note: + - 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html). + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectLockConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectLockConfigurationOutput`. + """ + return await self._invoke( + input, _models.PUT_OBJECT_LOCK_CONFIGURATION, [], plugins + ) + + async def put_object_retention( + self, input: PutObjectRetentionInput, plugins: list[Plugin] | None = None + ) -> PutObjectRetentionOutput: + """ + Note: + This operation is not supported for directory buckets. + + Places an Object Retention configuration on an object. For more + information, see [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + 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 functionality is not supported for Amazon S3 on Outposts. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectRetentionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectRetentionOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT_RETENTION, [], plugins) + + async def put_object_tagging( + self, input: PutObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> PutObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). + + 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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). + + For tagging-related restrictions related to characters and encodings, + see [Tag + Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). + 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](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + + - `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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). + + - `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`: + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + - [DeleteObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectTaggingOutput`. + """ + return await self._invoke(input, _models.PUT_OBJECT_TAGGING, [], plugins) + + async def put_public_access_block( + self, input: PutPublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> PutPublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + Warning: + 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. Account-level settings automatically inherit from + organization-level policies when present. 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\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `PutPublicAccessBlock`: + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + - [GetBucketPolicyStatus](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutPublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutPublicAccessBlockOutput`. + """ + return await self._invoke(input, _models.PUT_PUBLIC_ACCESS_BLOCK, [], plugins) + + async def rename_object( + self, input: RenameObjectInput, plugins: list[Plugin] | None = None + ) -> RenameObjectOutput: + """ + Renames an existing object in a directory bucket that uses the S3 + Express One Zone storage class. You can use `RenameObject` by specifying + an existing object's name as the source and the new name of the object + as the destination within the same directory bucket. + + Note: + `RenameObject` is only supported for objects stored in the S3 Express + One Zone storage class. + + To prevent overwriting an object, you can use the `If-None-Match` + conditional header. + + - **If-None-Match** - Renames the object only if an object with the + specified name does not already exist in the directory bucket. If you + don't want to overwrite an existing object, you can add the + `If-None-Match` conditional header with the value `‘*’` in the + `RenameObject` request. Amazon S3 then returns a + `412 Precondition Failed` error if the object with the specified name + already exists. For more information, see [RFC + 7232](https://datatracker.ietf.org/doc/rfc7232/). + + Permissions + + : To grant access to the `RenameObject` operation on a directory bucket, + we recommend that you use the `CreateSession` operation for + session-based authorization. Specifically, you grant the + `s3express:CreateSession` permission to the directory bucket in a + bucket policy or an IAM identity-based policy. Then, you make the + `CreateSession` API call on the directory bucket to obtain a session + token. With the session token in your request header, you can make API + requests to this operation. After the session token expires, you make + another `CreateSession` API call to generate a new session token for + use. The Amazon Web Services CLI and SDKs will create and manage your + session including refreshing the session token automatically to avoid + service interruptions when a session expires. In your bucket policy, + you can specify the `s3express:SessionMode` condition key to control + who can create a `ReadWrite` or `ReadOnly` session. A `ReadWrite` + session is required for executing all the Zonal endpoint API + operations, including `RenameObject`. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . To learn more about Zonal endpoint API operations, see [Authorizing + Zonal endpoint API operations with + CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `RenameObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RenameObjectOutput`. + """ + return await self._invoke(input, _models.RENAME_OBJECT, [], plugins) + + async def restore_object( + self, input: RestoreObjectInput, plugins: list[Plugin] | None = None + ) -> RestoreObjectOutput: + """ + Note: + This operation is not supported for directory buckets. + + Restores an archived copy of an object back into Amazon S3 + + This functionality is not supported for Amazon S3 on Outposts. + + This action performs the following types of requests: + + - `restore an archive` - Restore an archived object + + For more information about the `S3` structure in the request body, see + the following: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [Managing Access with + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) + in the *Amazon S3 User Guide* + + - [Protecting Data Using Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) + in the *Amazon S3 User Guide* + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:RestoreObject` action. The bucket owner has this permission by + default and can grant this permission to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + Restoring objects + + : Objects that you archive to the S3 Glacier Flexible Retrieval or S3 + Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive + or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in + real time. For objects in the S3 Glacier Flexible Retrieval or S3 + Glacier Deep Archive storage classes, you must first initiate a + restore request, and then wait until a temporary copy of the object is + available. If you want a permanent copy of the object, create a copy + of it in the Amazon S3 Standard storage class in your S3 bucket. To + access an archived object, you must restore the object for the + duration (number of days) that you specify. For objects in the Archive + Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you + must first initiate a restore request, and then wait until the object + is moved into the Frequent Access tier. + + To restore a specific object version, you can provide a version ID. If + you don't provide a version ID, Amazon S3 restores the current + version. + + When restoring an archived object, you can specify one of the + following data access tier options in the `Tier` element of the + request body: + + - `Expedited` - Expedited retrievals allow you to quickly access your + data stored in the S3 Glacier Flexible Retrieval storage class or S3 + Intelligent-Tiering Archive tier when occasional urgent requests for + restoring archives are required. For all but the largest archived + objects (250 MB+), data accessed using Expedited retrievals is + typically made available within 1--5 minutes. Provisioned capacity + ensures that retrieval capacity for Expedited retrievals is + available when you need it. Expedited retrievals and provisioned + capacity are not available for objects stored in the S3 Glacier Deep + Archive storage class or S3 Intelligent-Tiering Deep Archive tier. + + - `Standard` - Standard retrievals allow you to access any of your + archived objects within several hours. This is the default option + for retrieval requests that do not specify the retrieval option. + Standard retrievals typically finish within 3--5 hours for objects + stored in the S3 Glacier Flexible Retrieval storage class or S3 + Intelligent-Tiering Archive tier. They typically finish within 12 + hours for objects stored in the S3 Glacier Deep Archive storage + class or S3 Intelligent-Tiering Deep Archive tier. Standard + retrievals are free for objects stored in S3 Intelligent-Tiering. + + - `Bulk` - Bulk retrievals free for objects stored in the S3 Glacier + Flexible Retrieval and S3 Intelligent-Tiering storage classes, + enabling you to retrieve large amounts, even petabytes, of data at + no cost. Bulk retrievals typically finish within 5--12 hours for + objects stored in the S3 Glacier Flexible Retrieval storage class or + S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the + lowest-cost retrieval option when restoring objects from S3 Glacier + Deep Archive. They typically finish within 48 hours for objects + stored in the S3 Glacier Deep Archive storage class or S3 + Intelligent-Tiering Deep Archive tier. + + For more information about archive retrieval options and provisioned + capacity for `Expedited` data access, see [Restoring Archived + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + in the *Amazon S3 User Guide*. + + You can use Amazon S3 restore speed upgrade to change the restore + speed to a faster speed while it is in progress. For more information, + see [Upgrading the speed of an in-progress + restore](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) + in the *Amazon S3 User Guide*. + + To get the status of object restoration, you can send a `HEAD` + request. Operations return the `x-amz-restore` header, which provides + information about the restoration status, in the response. You can use + Amazon S3 event notifications to notify you when a restore is + initiated or completed. For more information, see [Configuring Amazon + S3 Event + Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + in the *Amazon S3 User Guide*. + + After restoring an archived object, you can update the restoration + period by reissuing the request with a new period. Amazon S3 updates + the restoration period relative to the current time and charges only + for the request-there are no data transfer charges. You cannot update + the restoration period when Amazon S3 is actively processing your + current restore request for the object. + + If your bucket has a lifecycle configuration with a rule that includes + an expiration action, the object expiration overrides the life span + that you specify in a restore request. For example, if you restore an + object copy for 10 days, but the object is scheduled to expire in 3 + days, Amazon S3 deletes the object in 3 days. For more information + about lifecycle configuration, see + [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + and [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + in *Amazon S3 User Guide*. + + Responses + + : A successful action returns either the `200 OK` or `202 Accepted` + status code. + + - If the object is not previously restored, then Amazon S3 returns + `202 Accepted` in the response. + + - If the object is previously restored, Amazon S3 returns `200 OK` in + the response. + + - Special errors: + + - *Code: RestoreAlreadyInProgress* + + - *Cause: Object restore is already in progress.* + + - *HTTP Status Code: 409 Conflict* + + - *SOAP Fault Code Prefix: Client* + + - - *Code: GlacierExpeditedRetrievalNotAvailable* + + - *Cause: expedited retrievals are currently not available. Try + again later. (Returned if there is insufficient capacity to + process the Expedited request. This error applies only to + Expedited retrievals and not to S3 Standard or Bulk retrievals.)* + + - *HTTP Status Code: 503* + + - *SOAP Fault Code Prefix: N/A* + + The following operations are related to `RestoreObject`: + + - [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + + - [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `RestoreObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreObjectOutput`. + """ + return await self._invoke(input, _models.RESTORE_OBJECT, [], plugins) + + async def select_object_content( + self, input: SelectObjectContentInput, plugins: list[Plugin] | None = None + ) -> AsyncOutputEventStream[ + SelectObjectContentEventStream, SelectObjectContentOutput + ]: + """ + Note: + This operation is not supported for directory buckets. + + This action filters the contents of an Amazon S3 object based on a + simple structured query language (SQL) statement. In the request, along + with the SQL expression, you must also specify a data serialization + format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this + format to parse object data into records, and returns only records that + match the specified SQL expression. You must also specify the data + serialization format for the response. + + This functionality is not supported for Amazon S3 on Outposts. + + For more information about Amazon S3 Select, see [Selecting Content from + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) + and [SELECT + Command](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html) + in the *Amazon S3 User Guide*. + + Permissions + + : You must have the `s3:GetObject` permission for this operation. Amazon + S3 Select does not support anonymous access. For more information + about permissions, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + in the *Amazon S3 User Guide*. + + Object Data Formats + + : You can use Amazon S3 Select to query objects that have the following + format properties: + + - *CSV, JSON, and Parquet* - Objects must be in CSV, JSON, or Parquet + format. + + - *UTF-8* - UTF-8 is the only encoding type Amazon S3 Select supports. + + - *GZIP or BZIP2* - CSV and JSON files can be compressed using GZIP or + BZIP2. GZIP and BZIP2 are the only compression formats that Amazon + S3 Select supports for CSV and JSON files. Amazon S3 Select supports + columnar compression for Parquet using GZIP or Snappy. Amazon S3 + Select does not support whole-object compression for Parquet + objects. + + - *Server-side encryption* - Amazon S3 Select supports querying + objects that are protected with server-side encryption. + + For objects that are encrypted with customer-provided encryption + keys (SSE-C), you must use HTTPS, and you must use the headers that + are documented in the + [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + For objects that are encrypted with Amazon S3 managed keys (SSE-S3) + and Amazon Web Services KMS keys (SSE-KMS), server-side encryption + is handled transparently, so you don't need to specify anything. + For more information about server-side encryption, including SSE-S3 + and SSE-KMS, see [Protecting Data Using Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Working with the Response Body + + : Given the response size is unknown, Amazon S3 Select streams the + response as a series of messages and includes a `Transfer-Encoding` + header with `chunked` as its value in the response. For more + information, see [Appendix: SelectObjectContent + Response](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html). + + GetObject Support + + : The `SelectObjectContent` action does not support the following + `GetObject` functionality. For more information, see + [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). + + - `Range`: Although you can specify a scan range for an Amazon S3 + Select request (see [SelectObjectContentRequest - + ScanRange](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange) + in the request parameters), you cannot specify the range of bytes of + an object to return. + + - The `GLACIER`, `DEEP_ARCHIVE`, and `REDUCED_REDUNDANCY` storage + classes, or the `ARCHIVE_ACCESS` and `DEEP_ARCHIVE_ACCESS` access + tiers of the `INTELLIGENT_TIERING` storage class: You cannot query + objects in the `GLACIER`, `DEEP_ARCHIVE`, or `REDUCED_REDUNDANCY` + storage classes, nor objects in the `ARCHIVE_ACCESS` or + `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING` + storage class. For more information about storage classes, see + [Using Amazon S3 storage + classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) + in the *Amazon S3 User Guide*. + + Special Errors + + : For a list of special errors for this operation, see [List of SELECT + Object Content Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList) + + The following operations are related to `SelectObjectContent`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) + + - [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `SelectObjectContentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An `AsyncOutputEventStream` for server-to-client streaming. + """ + pipeline, call = await self._prepare_call( + input, _models.SELECT_OBJECT_CONTENT, [], plugins + ) + return await pipeline.output_stream( + call, + SelectObjectContentEventStream, + _SelectObjectContentEventStreamDeserializer().deserialize, + ) + + async def update_bucket_metadata_annotation_table_configuration( + self, + input: UpdateBucketMetadataAnnotationTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataAnnotationTableConfigurationOutput: + """ + Updates the annotation table configuration for an Amazon S3 bucket's + metadata configuration. Use this operation to enable or disable the + annotation table, or to update its associated IAM role. + + An annotation table is a queryable Iceberg table that contains records + of all annotations attached to objects in the bucket. To use this + operation, the bucket must have an existing Amazon S3 Metadata + configuration. + + To use this operation, you must have the + `s3:UpdateBucketMetadataAnnotationTableConfiguration` permission. If you + are specifying or changing the IAM role, you must also have + `iam:PassRole` permission for the role. + + The IAM role must have a trust policy that allows the Amazon S3 metadata + service to assume it, and a permissions policy that grants the actions + needed to read annotations from your bucket. The following examples show + a trust policy and a permissions policy that you can adapt for your + bucket and account. + + The following operations are related to + `UpdateBucketMetadataAnnotationTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + Args: + input: + An instance of `UpdateBucketMetadataAnnotationTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataAnnotationTableConfigurationOutput`. + """ + return await self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION, + [], + plugins, + ) + + async def update_bucket_metadata_inventory_table_configuration( + self, + input: UpdateBucketMetadataInventoryTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataInventoryTableConfigurationOutput: + """ + Enables or disables a live inventory table for an S3 Metadata + configuration on a general purpose bucket. For more information, see + [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your inventory table with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions in your KMS key policy. For more information, + see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + - `s3:UpdateBucketMetadataInventoryTableConfiguration` + + - `s3tables:CreateTableBucket` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + - `s3tables:PutTableEncryption` + + - `kms:DescribeKey` + + The following operations are related to + `UpdateBucketMetadataInventoryTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UpdateBucketMetadataInventoryTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataInventoryTableConfigurationOutput`. + """ + return await self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION, + [], + plugins, + ) + + async def update_bucket_metadata_journal_table_configuration( + self, + input: UpdateBucketMetadataJournalTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataJournalTableConfigurationOutput: + """ + Enables or disables journal table record expiration for an S3 Metadata + configuration on a general purpose bucket. For more information, see + [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the + `s3:UpdateBucketMetadataJournalTableConfiguration` permission. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `UpdateBucketMetadataJournalTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UpdateBucketMetadataJournalTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataJournalTableConfigurationOutput`. + """ + return await self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION, + [], + plugins, + ) + + async def update_object_encryption( + self, input: UpdateObjectEncryptionInput, plugins: list[Plugin] | None = None + ) -> UpdateObjectEncryptionOutput: + """ + Note: + This operation is not supported for directory buckets or Amazon S3 on + Outposts buckets. + + Updates the server-side encryption type of an existing encrypted object + in a general purpose bucket. You can use the `UpdateObjectEncryption` + operation to change encrypted objects from server-side encryption with + Amazon S3 managed keys (SSE-S3) to server-side encryption with Key + Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You + can also use the `UpdateObjectEncryption` operation to change the + customer-managed KMS key used to encrypt your data so that you can + comply with custom key-rotation standards. + + Using the `UpdateObjectEncryption` operation, you can atomically update + the server-side encryption type of an existing object in a general + purpose bucket without any data movement. The `UpdateObjectEncryption` + operation uses envelope encryption to re-encrypt the data key used to + encrypt and decrypt your object with your newly specified server-side + encryption type. In other words, when you use the + `UpdateObjectEncryption` operation, your data isn't copied, archived + objects in the S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive + storage classes aren't restored, and objects in the S3 + Intelligent-Tiering storage class aren't moved between tiers. + Additionally, the `UpdateObjectEncryption` operation preserves all + object metadata properties, including the storage class, creation date, + last modified date, ETag, and checksum properties. For more information, + see [Updating server-side encryption for existing + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/update-sse-encryption.html) + in the *Amazon S3 User Guide*. + + By default, all `UpdateObjectEncryption` requests that specify a + customer-managed KMS key are restricted to KMS keys that are owned by + the bucket owner's Amazon Web Services account. If you're using + Organizations, you can request the ability to use KMS keys owned by + other member accounts within your organization by contacting Amazon Web + Services Support. + + Note: + Source objects that are unencrypted, or encrypted with either dual-layer + server-side encryption with KMS keys (DSSE-KMS) or server-side + encryption with customer-provided keys (SSE-C) aren't supported by this + operation. Additionally, you cannot specify SSE-S3 encryption as the + requested new encryption type `UpdateObjectEncryption` request. + + Permissions + + : - To use the `UpdateObjectEncryption` operation, you must have the + following permissions: + + - `s3:UpdateObjectEncryption` + + - `kms:Encrypt` + + - `kms:Decrypt` + + - `kms:GenerateDataKey` + + - `kms:ReEncrypt*` + + - If you're using Organizations, to use this operation with + customer-managed KMS keys from other Amazon Web Services accounts + within your organization, you must have the + `organizations:DescribeAccount` permission. + + + + Errors + + : - You might receive an `InvalidRequest` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - The `UpdateObjectEncryption` operation doesn't supported + unencrypted source objects. Only source objects encrypted with + SSE-S3 or SSE-KMS are supported. + + - The `UpdateObjectEncryption` operation doesn't support source + objects with the encryption type DSSE-KMS or SSE-C. Only source + objects encrypted with SSE-S3 or SSE-KMS are supported. + + - The `UpdateObjectEncryption` operation doesn't support updating + the encryption type to DSSE-KMS or SSE-C. Modify the request to + specify SSE-KMS for the updated encryption type, and then try + again. + + - Requests that modify an object encryption configuration require + Amazon Web Services Signature Version 4. Modify the request to use + Amazon Web Services Signature Version 4, and then try again. + + - Requests that modify an object encryption configuration require a + valid new encryption type. Valid values are `SSEKMS`. Modify the + request to specify SSE-KMS for the updated encryption type, and + then try again. + + - Requests that modify an object's encryption type to SSE-KMS + require an Amazon Web Services KMS key Amazon Resource Name (ARN). + Modify the request to specify a KMS key ARN, and then try again. + + - Requests that modify an object's encryption type to SSE-KMS + require a valid Amazon Web Services KMS key Amazon Resource Name + (ARN). Confirm that you have a correctly formatted KMS key ARN in + your request, and then try again. + + - The `BucketKeyEnabled` value isn't valid. Valid values are `true` + or `false`. Modify the request to specify a valid value, and then + try again. + + - You might receive an `AccessDenied` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - The Amazon Web Services KMS key in the request must be owned by + the same account as the bucket. Modify the request to specify a + KMS key from the same account, and then try again. + + - The bucket owner's account was approved to make + `UpdateObjectEncryption` requests that use any Amazon Web Services + KMS key in their organization, but the bucket owner's account + isn't part of an organization in Organizations. Make sure that + the bucket owner's account and the specified KMS key belong to + the same organization, and then try again. + + - The specified Amazon Web Services KMS key must be from the same + organization in Organizations as the bucket. Specify a KMS key + that belongs to the same organization as the bucket, and then try + again. + + - The encryption type for the specified object can't be updated + because that object is protected by S3 Object Lock. If the object + has a governance-mode retention period or a legal hold, you must + first remove the Object Lock status on the object before you issue + your `UpdateObjectEncryption` request. You can't use the + `UpdateObjectEncryption` operation with objects that have an + Object Lock compliance mode retention period applied to them. + + Args: + input: + An instance of `UpdateObjectEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateObjectEncryptionOutput`. + """ + return await self._invoke(input, _models.UPDATE_OBJECT_ENCRYPTION, [], plugins) + + async def upload_part( + self, input: UploadPartInput, plugins: list[Plugin] | None = None + ) -> UploadPartOutput: + """ + Uploads a part in a multipart upload. + + Note: + In this operation, you provide new data as a part of an object in your + request. However, you have an option to specify your existing Amazon S3 + object as a data source for the part you are uploading. To upload a part + from an existing object, you use the + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + operation. + + You must initiate a multipart upload (see + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)) + before you can upload any part. In response to your initiate request, + Amazon S3 returns an upload ID, a unique identifier that you must + include in your upload part request. + + Part numbers can be any number from 1 to 10,000, inclusive. A part + number uniquely identifies a part and also defines its position within + the object being created. If you upload a new part using the same part + number that was used with a previous part, the previously uploaded part + is overwritten. + + For information about maximum and minimum part sizes and other multipart + upload specifications, see [Multipart upload + limits](https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) + in the *Amazon S3 User Guide*. + + Note: + After you initiate multipart upload and upload one or more parts, you + must either complete or abort multipart upload in order to stop getting + charged for storage of the uploaded parts. Only after you either + complete or abort multipart upload, Amazon S3 frees up the parts storage + and stops charging you for the parts storage. + + For more information on multipart uploads, go to [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide* . + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To perform a multipart + upload with encryption using an Key Management Service key, the + requester must have permission to the `kms:Decrypt` and + `kms:GenerateDataKey` actions on the key. The requester must also + have permissions for the `kms:GenerateDataKey` action for the + `CreateMultipartUpload` API. Then, the requester needs permissions + for the `kms:Decrypt` action on the `UploadPart` and + `UploadPartCopy` APIs. + + These permissions are required because Amazon S3 must decrypt and + read data from the encrypted file parts before it completes the + multipart upload. For more information about KMS permissions, see + [Protecting data using server-side encryption with + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. For information about the permissions + required to use the multipart upload API, see [Multipart upload and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + and [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Data integrity + + : **General purpose bucket** - To ensure that data is not corrupted + traversing the network, specify the `Content-MD5` header in the upload + part request. Amazon S3 checks the part data against the provided MD5 + value. If they do not match, Amazon S3 returns an error. If the upload + request is signed with Signature Version 4, then Amazon Web Services + S3 uses the `x-amz-content-sha256` header as a checksum instead of + `Content-MD5`. For more information see [Authenticating Requests: + Using the Authorization Header (Amazon Web Services Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). + + Note: + **Directory buckets** - MD5 is not supported by directory buckets. You + can use checksum algorithms to check object integrity. + + Encryption + + : - **General purpose bucket** - Server-side encryption is for data + encryption at rest. Amazon S3 encrypts your data as it writes it to + disks in its data centers and decrypts it when you access it. You + have 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), + and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with + server-side encryption using Amazon S3 managed keys (SSE-S3) by + default. You can optionally tell Amazon S3 to encrypt data at rest + using server-side encryption with other key options. The option you + use depends on whether you want to use KMS keys (SSE-KMS) or provide + your own encryption key (SSE-C). + + Server-side encryption is supported by the S3 Multipart Upload + operations. Unless you are using a customer-provided encryption key + (SSE-C), you don't need to specify the encryption parameters in + each UploadPart request. Instead, you only need to specify the + server-side encryption parameters in the initial Initiate Multipart + request. For more information, see + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). + + Note: + If you have server-side encryption with customer-provided keys + (SSE-C) blocked for your general purpose bucket, you will get an + HTTP 403 Access Denied error when you specify the SSE-C request + headers while writing new data to your bucket. For more information, + see [Blocking or unblocking SSE-C for a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + If you request server-side encryption using a customer-provided + encryption key (SSE-C) in your initiate multipart upload request, + you must provide identical encryption information in each part + upload using the following request headers. + + - x-amz-server-side-encryption-customer-algorithm + + - x-amz-server-side-encryption-customer-key + + - x-amz-server-side-encryption-customer-key-MD5 + + For more information, see [Using Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). + + Special errors + + : - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + - SOAP Fault Code Prefix: Client + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `UploadPart`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UploadPartInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadPartOutput`. + """ + return await self._invoke(input, _models.UPLOAD_PART, [], plugins) + + async def upload_part_copy( + self, input: UploadPartCopyInput, plugins: list[Plugin] | None = None + ) -> UploadPartCopyOutput: + """ + Uploads a part by copying data from an existing object as data source. + To specify the data source, you add the request header + `x-amz-copy-source` in your request. To specify a byte range, you add + the request header `x-amz-copy-source-range` in your request. + + For information about maximum and minimum part sizes and other multipart + upload specifications, see [Multipart upload + limits](https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) + in the *Amazon S3 User Guide*. + + Note: + Instead of copying data from an existing object as part data, you might + use the + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + action to upload new data as a part of an object in your request. + + You must initiate a multipart upload before you can upload any part. In + response to your initiate request, Amazon S3 returns the upload ID, a + unique identifier that you must include in your upload part request. + + For conceptual information about multipart uploads, see [Uploading + Objects Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. For information about copying objects + using a single atomic action vs. a multipart upload, see [Operations on + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Authentication and authorization + + : All `UploadPartCopy` requests must be authenticated and signed by + using IAM credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use IAM credentials to authenticate + and authorize your access to the `UploadPartCopy` API operation, + instead of using the temporary security credentials through the + `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : You must have `READ` access to the source object and `WRITE` access to + the destination bucket. + + - **General purpose bucket permissions** - You must have the + permissions in a policy based on the bucket types of your source + bucket and destination bucket in an `UploadPartCopy` operation. + + - If the source object is in a general purpose bucket, you must have + the **`s3:GetObject`** permission to read the source object that + is being copied. + + - If the destination bucket is a general purpose bucket, you must + have the **`s3:PutObject`** permission to write the object copy to + the destination bucket. + + - To perform a multipart upload with encryption using an Key + Management Service key, the requester must have permission to the + `kms:Decrypt` and `kms:GenerateDataKey` actions on the key. The + requester must also have permissions for the `kms:GenerateDataKey` + action for the `CreateMultipartUpload` API. Then, the requester + needs permissions for the `kms:Decrypt` action on the `UploadPart` + and `UploadPartCopy` APIs. These permissions are required because + Amazon S3 must decrypt and read data from the encrypted file parts + before it completes the multipart upload. For more information + about KMS permissions, see [Protecting data using server-side + encryption with + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. For information about the + permissions required to use the multipart upload API, see + [Multipart upload and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + and [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have permissions in a + bucket policy or an IAM identity-based policy based on the source + and destination bucket types in an `UploadPartCopy` operation. + + - If the source object that you want to copy is in a directory + bucket, you must have the **`s3express:CreateSession`** permission + in the `Action` element of a policy to read the object. If no + session mode is specified, the session will be created with the + maximum allowable privilege, attempting `ReadWrite` first, then + `ReadOnly` if `ReadWrite` is not permitted. If you want to + explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the copy + source bucket. + + - If the copy destination is a directory bucket, you must have the + **`s3express:CreateSession`** permission in the `Action` element + of a policy to write the object to the destination. The + `s3express:SessionMode` condition key cannot be set to `ReadOnly` + on the copy destination. + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + Encryption + + : - **General purpose buckets** - For information about using + server-side encryption with customer-provided encryption keys with + the `UploadPartCopy` operation, see + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). + + Note: + If you have server-side encryption with customer-provided keys + (SSE-C) blocked for your general purpose bucket, you will get an + HTTP 403 Access Denied error when you specify the SSE-C request + headers while writing new data to your bucket. For more information, + see [Blocking or unblocking SSE-C for a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). For more + information, see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Note: + For directory buckets, when you perform a `CreateMultipartUpload` + operation and an `UploadPartCopy` operation, the request headers you + provide in the `CreateMultipartUpload` request must match the + default encryption configuration of the destination bucket. + + S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted + objects from general purpose buckets to directory buckets, from + directory buckets to general purpose buckets, or between directory + buckets, through + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html). + In this case, Amazon S3 makes a call to KMS every time a copy + request is made for a KMS-encrypted object. + + Special errors + + : - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + - Error Code: `InvalidRequest` + + - Description: The specified copy source is not supported as a + byte-range copy source. + + - HTTP Status Code: 400 Bad Request + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `UploadPartCopy`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UploadPartCopyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadPartCopyOutput`. + """ + return await self._invoke(input, _models.UPLOAD_PART_COPY, [], plugins) + + async def write_get_object_response( + self, input: WriteGetObjectResponseInput, plugins: list[Plugin] | None = None + ) -> WriteGetObjectResponseOutput: + """ + Note: + This operation is not supported for directory buckets. + + Passes transformed objects to a `GetObject` operation when using Object + Lambda access points. For information about Object Lambda access points, + see [Transforming objects with Object Lambda access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) + in the *Amazon S3 User Guide*. + + This operation supports metadata that can be returned by + [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), + in addition to `RequestRoute`, `RequestToken`, `StatusCode`, + `ErrorCode`, and `ErrorMessage`. The `GetObject` response metadata is + supported so that the `WriteGetObjectResponse` caller, typically an + Lambda function, can provide the same metadata when it internally + invokes `GetObject`. When `WriteGetObjectResponse` is called by a + customer-owned Lambda function, the metadata returned to the end user + `GetObject` call might differ from what Amazon S3 would normally return. + + You can include any number of metadata headers. When including a + metadata header, it should be prefaced with `x-amz-meta`. For example, + `x-amz-meta-my-custom-header: MyCustomValue`. The primary use case for + this is to forward `GetObject` metadata. + + Amazon Web Services provides some prebuilt Lambda functions that you can + use with S3 Object Lambda to detect and redact personally identifiable + information (PII) and decompress S3 objects. These Lambda functions are + available in the Amazon Web Services Serverless Application Repository, + and can be selected through the Amazon Web Services Management Console + when you create your Object Lambda access point. + + Example 1: PII Access Control - This Lambda function uses Amazon + Comprehend, a natural language processing (NLP) service using machine + learning to find insights and relationships in text. It automatically + detects personally identifiable information (PII) such as names, + addresses, dates, credit card numbers, and social security numbers from + documents in your Amazon S3 bucket. + + Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, + a natural language processing (NLP) service using machine learning to + find insights and relationships in text. It automatically redacts + personally identifiable information (PII) such as names, addresses, + dates, credit card numbers, and social security numbers from documents + in your Amazon S3 bucket. + + Example 3: Decompression - The Lambda function + S3ObjectLambdaDecompression, is equipped to decompress objects stored in + S3 in one of six compressed file formats including bzip2, gzip, snappy, + zlib, zstandard and ZIP. + + For information on how to view and use these functions, see [Using + Amazon Web Services built Lambda + functions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) + in the *Amazon S3 User Guide*. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `WriteGetObjectResponseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `WriteGetObjectResponseOutput`. + """ + return await self._invoke(input, _models.WRITE_GET_OBJECT_RESPONSE, [], plugins) + + async def _new_config(self) -> AsyncS3Config: + return await AsyncS3Config.resolve() + + async def _post_setup(self, config: AsyncS3Config) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = await config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = await AsyncIdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(AsyncHTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/aio/config.py b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/config.py new file mode 100644 index 00000000..1e466c20 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/config.py @@ -0,0 +1,852 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.aio.auth.sigv4 import AsyncSigV4AuthScheme +from smithy_aws_core.aio.config import AsyncFileSystem +from smithy_aws_core.aio.config.aws_config import ( + AsyncAwsConfig, + AsyncAwsConfigOverrides, +) +from smithy_aws_core.aio.protocols import AsyncRestXmlClientProtocol +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_bool_program, + resolve_request_checksum_calculation_program, + resolve_response_checksum_validation_program, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import ( + FieldSpec, + RequestChecksumCalculation, + Resolved, + ResponseChecksumValidation, +) +from smithy_aws_core.config.validators import ( + validate_request_checksum_calculation, + validate_response_checksum_validation, +) +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_core.aio.interfaces import AsyncEndpointResolver +from smithy_core.aio.interfaces.auth import AsyncAuthScheme +from smithy_core.aio.interfaces.identity import AsyncIdentityResolver +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthSchemeResolver +from smithy_core.program import Program +from smithy_core.shapes import ShapeID +from smithy_http.aio.aiohttp import AIOHTTPClient + +from .._private.endpoints import BDD +from .._private.schemas import AMAZON_S3 +from ..auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from ..models import ( + AbortMultipartUploadInput, + AbortMultipartUploadOutput, + CompleteMultipartUploadInput, + CompleteMultipartUploadOutput, + CopyObjectInput, + CopyObjectOutput, + CreateBucketInput, + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + CreateBucketOutput, + CreateMultipartUploadInput, + CreateMultipartUploadOutput, + CreateSessionInput, + CreateSessionOutput, + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + DeleteBucketCorsInput, + DeleteBucketCorsOutput, + DeleteBucketEncryptionInput, + DeleteBucketEncryptionOutput, + DeleteBucketInput, + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + DeleteBucketLifecycleInput, + DeleteBucketLifecycleOutput, + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + DeleteBucketOutput, + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + DeleteBucketPolicyInput, + DeleteBucketPolicyOutput, + DeleteBucketReplicationInput, + DeleteBucketReplicationOutput, + DeleteBucketTaggingInput, + DeleteBucketTaggingOutput, + DeleteBucketWebsiteInput, + DeleteBucketWebsiteOutput, + DeleteObjectAnnotationInput, + DeleteObjectAnnotationOutput, + DeleteObjectInput, + DeleteObjectOutput, + DeleteObjectTaggingInput, + DeleteObjectTaggingOutput, + DeleteObjectsInput, + DeleteObjectsOutput, + DeletePublicAccessBlockInput, + DeletePublicAccessBlockOutput, + GetBucketAbacInput, + GetBucketAbacOutput, + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + GetBucketAclInput, + GetBucketAclOutput, + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + GetBucketCorsInput, + GetBucketCorsOutput, + GetBucketEncryptionInput, + GetBucketEncryptionOutput, + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + GetBucketLocationInput, + GetBucketLocationOutput, + GetBucketLoggingInput, + GetBucketLoggingOutput, + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + GetBucketOwnershipControlsInput, + GetBucketOwnershipControlsOutput, + GetBucketPolicyInput, + GetBucketPolicyOutput, + GetBucketPolicyStatusInput, + GetBucketPolicyStatusOutput, + GetBucketReplicationInput, + GetBucketReplicationOutput, + GetBucketRequestPaymentInput, + GetBucketRequestPaymentOutput, + GetBucketTaggingInput, + GetBucketTaggingOutput, + GetBucketVersioningInput, + GetBucketVersioningOutput, + GetBucketWebsiteInput, + GetBucketWebsiteOutput, + GetObjectAclInput, + GetObjectAclOutput, + GetObjectAnnotationInput, + GetObjectAnnotationOutput, + GetObjectAttributesInput, + GetObjectAttributesOutput, + GetObjectInput, + GetObjectLegalHoldInput, + GetObjectLegalHoldOutput, + GetObjectLockConfigurationInput, + GetObjectLockConfigurationOutput, + GetObjectOutput, + GetObjectRetentionInput, + GetObjectRetentionOutput, + GetObjectTaggingInput, + GetObjectTaggingOutput, + GetObjectTorrentInput, + GetObjectTorrentOutput, + GetPublicAccessBlockInput, + GetPublicAccessBlockOutput, + HeadBucketInput, + HeadBucketOutput, + HeadObjectInput, + HeadObjectOutput, + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + ListBucketsInput, + ListBucketsOutput, + ListDirectoryBucketsInput, + ListDirectoryBucketsOutput, + ListMultipartUploadsInput, + ListMultipartUploadsOutput, + ListObjectAnnotationsInput, + ListObjectAnnotationsOutput, + ListObjectVersionsInput, + ListObjectVersionsOutput, + ListObjectsInput, + ListObjectsOutput, + ListObjectsV2Input, + ListObjectsV2Output, + ListPartsInput, + ListPartsOutput, + PutBucketAbacInput, + PutBucketAbacOutput, + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + PutBucketAclInput, + PutBucketAclOutput, + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + PutBucketCorsInput, + PutBucketCorsOutput, + PutBucketEncryptionInput, + PutBucketEncryptionOutput, + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + PutBucketLoggingInput, + PutBucketLoggingOutput, + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + PutBucketOwnershipControlsInput, + PutBucketOwnershipControlsOutput, + PutBucketPolicyInput, + PutBucketPolicyOutput, + PutBucketReplicationInput, + PutBucketReplicationOutput, + PutBucketRequestPaymentInput, + PutBucketRequestPaymentOutput, + PutBucketTaggingInput, + PutBucketTaggingOutput, + PutBucketVersioningInput, + PutBucketVersioningOutput, + PutBucketWebsiteInput, + PutBucketWebsiteOutput, + PutObjectAclInput, + PutObjectAclOutput, + PutObjectAnnotationInput, + PutObjectAnnotationOutput, + PutObjectInput, + PutObjectLegalHoldInput, + PutObjectLegalHoldOutput, + PutObjectLockConfigurationInput, + PutObjectLockConfigurationOutput, + PutObjectOutput, + PutObjectRetentionInput, + PutObjectRetentionOutput, + PutObjectTaggingInput, + PutObjectTaggingOutput, + PutPublicAccessBlockInput, + PutPublicAccessBlockOutput, + RenameObjectInput, + RenameObjectOutput, + RestoreObjectInput, + RestoreObjectOutput, + SelectObjectContentInput, + SelectObjectContentOutput, + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + UpdateObjectEncryptionInput, + UpdateObjectEncryptionOutput, + UploadPartCopyInput, + UploadPartCopyOutput, + UploadPartInput, + UploadPartOutput, + WriteGetObjectResponseInput, + WriteGetObjectResponseOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AbortMultipartUploadInput, AbortMultipartUploadOutput, Any, Any], + Interceptor[ + CompleteMultipartUploadInput, CompleteMultipartUploadOutput, Any, Any + ], + Interceptor[CopyObjectInput, CopyObjectOutput, Any, Any], + Interceptor[CreateBucketInput, CreateBucketOutput, Any, Any], + Interceptor[ + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[CreateMultipartUploadInput, CreateMultipartUploadOutput, Any, Any], + Interceptor[CreateSessionInput, CreateSessionOutput, Any, Any], + Interceptor[DeleteBucketInput, DeleteBucketOutput, Any, Any], + Interceptor[ + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[DeleteBucketCorsInput, DeleteBucketCorsOutput, Any, Any], + Interceptor[ + DeleteBucketEncryptionInput, DeleteBucketEncryptionOutput, Any, Any + ], + Interceptor[ + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[DeleteBucketLifecycleInput, DeleteBucketLifecycleOutput, Any, Any], + Interceptor[ + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + Any, + Any, + ], + Interceptor[DeleteBucketPolicyInput, DeleteBucketPolicyOutput, Any, Any], + Interceptor[ + DeleteBucketReplicationInput, DeleteBucketReplicationOutput, Any, Any + ], + Interceptor[DeleteBucketTaggingInput, DeleteBucketTaggingOutput, Any, Any], + Interceptor[DeleteBucketWebsiteInput, DeleteBucketWebsiteOutput, Any, Any], + Interceptor[DeleteObjectInput, DeleteObjectOutput, Any, Any], + Interceptor[ + DeleteObjectAnnotationInput, DeleteObjectAnnotationOutput, Any, Any + ], + Interceptor[DeleteObjectsInput, DeleteObjectsOutput, Any, Any], + Interceptor[DeleteObjectTaggingInput, DeleteObjectTaggingOutput, Any, Any], + Interceptor[ + DeletePublicAccessBlockInput, DeletePublicAccessBlockOutput, Any, Any + ], + Interceptor[GetBucketAbacInput, GetBucketAbacOutput, Any, Any], + Interceptor[ + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketAclInput, GetBucketAclOutput, Any, Any], + Interceptor[ + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketCorsInput, GetBucketCorsOutput, Any, Any], + Interceptor[GetBucketEncryptionInput, GetBucketEncryptionOutput, Any, Any], + Interceptor[ + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketLocationInput, GetBucketLocationOutput, Any, Any], + Interceptor[GetBucketLoggingInput, GetBucketLoggingOutput, Any, Any], + Interceptor[ + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketOwnershipControlsInput, GetBucketOwnershipControlsOutput, Any, Any + ], + Interceptor[GetBucketPolicyInput, GetBucketPolicyOutput, Any, Any], + Interceptor[GetBucketPolicyStatusInput, GetBucketPolicyStatusOutput, Any, Any], + Interceptor[GetBucketReplicationInput, GetBucketReplicationOutput, Any, Any], + Interceptor[ + GetBucketRequestPaymentInput, GetBucketRequestPaymentOutput, Any, Any + ], + Interceptor[GetBucketTaggingInput, GetBucketTaggingOutput, Any, Any], + Interceptor[GetBucketVersioningInput, GetBucketVersioningOutput, Any, Any], + Interceptor[GetBucketWebsiteInput, GetBucketWebsiteOutput, Any, Any], + Interceptor[GetObjectInput, GetObjectOutput, Any, Any], + Interceptor[GetObjectAclInput, GetObjectAclOutput, Any, Any], + Interceptor[GetObjectAnnotationInput, GetObjectAnnotationOutput, Any, Any], + Interceptor[GetObjectAttributesInput, GetObjectAttributesOutput, Any, Any], + Interceptor[GetObjectLegalHoldInput, GetObjectLegalHoldOutput, Any, Any], + Interceptor[ + GetObjectLockConfigurationInput, GetObjectLockConfigurationOutput, Any, Any + ], + Interceptor[GetObjectRetentionInput, GetObjectRetentionOutput, Any, Any], + Interceptor[GetObjectTaggingInput, GetObjectTaggingOutput, Any, Any], + Interceptor[GetObjectTorrentInput, GetObjectTorrentOutput, Any, Any], + Interceptor[GetPublicAccessBlockInput, GetPublicAccessBlockOutput, Any, Any], + Interceptor[HeadBucketInput, HeadBucketOutput, Any, Any], + Interceptor[HeadObjectInput, HeadObjectOutput, Any, Any], + Interceptor[ + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + Any, + Any, + ], + Interceptor[ListBucketsInput, ListBucketsOutput, Any, Any], + Interceptor[ListDirectoryBucketsInput, ListDirectoryBucketsOutput, Any, Any], + Interceptor[ListMultipartUploadsInput, ListMultipartUploadsOutput, Any, Any], + Interceptor[ListObjectAnnotationsInput, ListObjectAnnotationsOutput, Any, Any], + Interceptor[ListObjectsInput, ListObjectsOutput, Any, Any], + Interceptor[ListObjectsV2Input, ListObjectsV2Output, Any, Any], + Interceptor[ListObjectVersionsInput, ListObjectVersionsOutput, Any, Any], + Interceptor[ListPartsInput, ListPartsOutput, Any, Any], + Interceptor[PutBucketAbacInput, PutBucketAbacOutput, Any, Any], + Interceptor[ + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketAclInput, PutBucketAclOutput, Any, Any], + Interceptor[ + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketCorsInput, PutBucketCorsOutput, Any, Any], + Interceptor[PutBucketEncryptionInput, PutBucketEncryptionOutput, Any, Any], + Interceptor[ + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketLoggingInput, PutBucketLoggingOutput, Any, Any], + Interceptor[ + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketOwnershipControlsInput, PutBucketOwnershipControlsOutput, Any, Any + ], + Interceptor[PutBucketPolicyInput, PutBucketPolicyOutput, Any, Any], + Interceptor[PutBucketReplicationInput, PutBucketReplicationOutput, Any, Any], + Interceptor[ + PutBucketRequestPaymentInput, PutBucketRequestPaymentOutput, Any, Any + ], + Interceptor[PutBucketTaggingInput, PutBucketTaggingOutput, Any, Any], + Interceptor[PutBucketVersioningInput, PutBucketVersioningOutput, Any, Any], + Interceptor[PutBucketWebsiteInput, PutBucketWebsiteOutput, Any, Any], + Interceptor[PutObjectInput, PutObjectOutput, Any, Any], + Interceptor[PutObjectAclInput, PutObjectAclOutput, Any, Any], + Interceptor[PutObjectAnnotationInput, PutObjectAnnotationOutput, Any, Any], + Interceptor[PutObjectLegalHoldInput, PutObjectLegalHoldOutput, Any, Any], + Interceptor[ + PutObjectLockConfigurationInput, PutObjectLockConfigurationOutput, Any, Any + ], + Interceptor[PutObjectRetentionInput, PutObjectRetentionOutput, Any, Any], + Interceptor[PutObjectTaggingInput, PutObjectTaggingOutput, Any, Any], + Interceptor[PutPublicAccessBlockInput, PutPublicAccessBlockOutput, Any, Any], + Interceptor[RenameObjectInput, RenameObjectOutput, Any, Any], + Interceptor[RestoreObjectInput, RestoreObjectOutput, Any, Any], + Interceptor[SelectObjectContentInput, SelectObjectContentOutput, Any, Any], + Interceptor[ + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateObjectEncryptionInput, UpdateObjectEncryptionOutput, Any, Any + ], + Interceptor[UploadPartInput, UploadPartOutput, Any, Any], + Interceptor[UploadPartCopyInput, UploadPartCopyOutput, Any, Any], + Interceptor[ + WriteGetObjectResponseInput, WriteGetObjectResponseOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.s3", + service_target="AmazonS3", + xml_namespace="http://s3.amazonaws.com/doc/2006-03-01/", + service_schema=AMAZON_S3, +) + + +def _resolve_use_arn_region(ctx: Any) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, env_vars=("AWS_S3_USE_ARN_REGION",), profile_keys=("s3_use_arn_region",) + ) + + +def _resolve_disable_multi_region_access_points( + ctx: Any, +) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, + env_vars=("AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS",), + profile_keys=("s3_disable_multiregion_access_points",), + ) + + +def _resolve_disable_s3_express_session_auth( + ctx: Any, +) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, + env_vars=("AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",), + profile_keys=("s3_disable_express_session_auth",), + ) + + +class _AsyncS3ConfigOverrides(AsyncAwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + force_path_style: bool | None + use_arn_region: bool | None + disable_multi_region_access_points: bool | None + use_accelerate_endpoint: bool | None + disable_s3_express_session_auth: bool | None + use_fips_endpoint: bool | None + use_dualstack_endpoint: bool | None + request_checksum_calculation: RequestChecksumCalculation | None + response_checksum_validation: ResponseChecksumValidation | None + + +@dataclass(kw_only=True, repr=False, init=False) +class AsyncS3Config(AsyncAwsConfig): + """S3 configuration (async-resolved).""" + + endpoint_resolver: EndpointResolver | AsyncEndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.aio.protocols to + select the protocol, e.g. protocol=AsyncAwsJson10ClientProtocol. For + custom protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AsyncAuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + force_path_style: bool | None = None + """Forces this client to use path-style addressing for buckets.""" + + use_arn_region: bool | None = None + """ + Enables this client to use an ARN's region when constructing an + endpoint instead of the client's configured region. + """ + + disable_multi_region_access_points: bool | None = None + """Disables this client's usage of Multi-Region Access Points.""" + + use_accelerate_endpoint: bool | None = None + """Enables this client to use S3 Transfer Acceleration endpoints.""" + + disable_s3_express_session_auth: bool | None = None + """ + Disables this client's usage of Session Auth for S3Express buckets and + reverts to using conventional SigV4 for those. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + aws_credentials_identity_resolver: ( + AsyncIdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + request_checksum_calculation: RequestChecksumCalculation | None = None + """ + When to calculate checksums of request payloads: ``when_supported`` + (the default) calculates them for every operation that supports request + checksums, and ``when_required`` only when the operation requires + one or an algorithm is set on the request, such as with + ``checksum_algorithm``. A checksum set on the request is sent as is. + """ + + response_checksum_validation: ResponseChecksumValidation | None = None + """ + When to validate the checksums of response payloads: + ``when_supported`` (the default) validates them for every operation + that models response checksums, and ``when_required`` only when + validation is enabled on the request, such as with + ``checksum_mode``. A payload is validated when it's read to the + end, and a mismatch raises ``ChecksumMismatchError``. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "force_path_style": FieldSpec(default=None), + "use_arn_region": FieldSpec(default=None, resolver=_resolve_use_arn_region), + "disable_multi_region_access_points": FieldSpec( + default=None, resolver=_resolve_disable_multi_region_access_points + ), + "use_accelerate_endpoint": FieldSpec(default=None), + "disable_s3_express_session_auth": FieldSpec( + default=None, resolver=_resolve_disable_s3_express_session_auth + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + "request_checksum_calculation": FieldSpec( + default="when_supported", + resolver=resolve_request_checksum_calculation_program, + validator=validate_request_checksum_calculation, + ), + "response_checksum_validation": FieldSpec( + default="when_supported", + resolver=resolve_response_checksum_validation_program, + validator=validate_response_checksum_validation, + ), + **AsyncAwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("s3").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: AsyncRestXmlClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): AsyncSigV4AuthScheme(service="s3") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: AIOHTTPClient()), + } + + def set_auth_scheme(self, scheme: AsyncAuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + async def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: AsyncFileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_AsyncS3ConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return await cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[AsyncS3Config], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/aio/user_agent.py b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/user_agent.py new file mode 100644 index 00000000..2d881dac --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/aio/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from .. import __version__ +from .config import AsyncS3Config + + +def aws_user_agent_plugin(config: AsyncS3Config): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="S3", + ) + ) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/auth.py b/clients/aws-sdk-s3/src/aws_sdk_s3/auth.py new file mode 100644 index 00000000..005b00e6 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/auth.py @@ -0,0 +1,41 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from smithy_core.auth import AuthOption as _smithy_core_auth_AuthOption, AuthParams +from smithy_core.interfaces.auth import ( + AuthOption as _smithy_core_interfaces_auth_AuthOption, +) +from smithy_core.shapes import ShapeID + + +class HTTPAuthSchemeResolver: + def resolve_auth_scheme( + self, auth_parameters: AuthParams[Any, Any] + ) -> list[_smithy_core_interfaces_auth_AuthOption]: + auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + + if auth_parameters.operation == "WriteGetObjectResponse": + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + + +def _generate_sigv4_option( + auth_params: AuthParams[Any, Any], +) -> _smithy_core_interfaces_auth_AuthOption | None: + return _smithy_core_auth_AuthOption( + scheme_id=ShapeID("aws.auth#sigv4"), + identity_properties={}, # type: ignore + signer_properties={ + "uri_encode_path": False, + "normalize_path": False, + "content_checksum_enabled": True, + }, # type: ignore + ) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/checksums.py b/clients/aws-sdk-s3/src/aws_sdk_s3/checksums.py new file mode 100644 index 00000000..6d1f493c --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/checksums.py @@ -0,0 +1,10 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.checksums import ChecksumStream +from smithy_aws_core.interceptors.checksums import FlexibleChecksumsInterceptor + +from .config import S3Config + + +def flexible_checksums_plugin(config: S3Config) -> None: + config.interceptors.append(FlexibleChecksumsInterceptor(ChecksumStream)) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/client.py b/clients/aws-sdk-s3/src/aws_sdk_s3/client.py new file mode 100644 index 00000000..25f19c38 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/client.py @@ -0,0 +1,10048 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from __future__ import annotations + +import logging +from typing import cast + +from smithy_aws_core.config import ConfigSource +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_aws_core.identity.chain import IdentityChain +from smithy_core.client import Client +from smithy_http.interfaces import HTTPClient +from smithy_http.plugins import user_agent_plugin + +from . import models as _models +from .checksums import flexible_checksums_plugin +from .config import Plugin, S3Config +from .user_agent import aws_user_agent_plugin + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .models import ( + AbortMultipartUploadInput, + AbortMultipartUploadOutput, + CompleteMultipartUploadInput, + CompleteMultipartUploadOutput, + CopyObjectInput, + CopyObjectOutput, + CreateBucketInput, + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + CreateBucketOutput, + CreateMultipartUploadInput, + CreateMultipartUploadOutput, + CreateSessionInput, + CreateSessionOutput, + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + DeleteBucketCorsInput, + DeleteBucketCorsOutput, + DeleteBucketEncryptionInput, + DeleteBucketEncryptionOutput, + DeleteBucketInput, + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + DeleteBucketLifecycleInput, + DeleteBucketLifecycleOutput, + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + DeleteBucketOutput, + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + DeleteBucketPolicyInput, + DeleteBucketPolicyOutput, + DeleteBucketReplicationInput, + DeleteBucketReplicationOutput, + DeleteBucketTaggingInput, + DeleteBucketTaggingOutput, + DeleteBucketWebsiteInput, + DeleteBucketWebsiteOutput, + DeleteObjectAnnotationInput, + DeleteObjectAnnotationOutput, + DeleteObjectInput, + DeleteObjectOutput, + DeleteObjectTaggingInput, + DeleteObjectTaggingOutput, + DeleteObjectsInput, + DeleteObjectsOutput, + DeletePublicAccessBlockInput, + DeletePublicAccessBlockOutput, + GetBucketAbacInput, + GetBucketAbacOutput, + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + GetBucketAclInput, + GetBucketAclOutput, + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + GetBucketCorsInput, + GetBucketCorsOutput, + GetBucketEncryptionInput, + GetBucketEncryptionOutput, + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + GetBucketLocationInput, + GetBucketLocationOutput, + GetBucketLoggingInput, + GetBucketLoggingOutput, + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + GetBucketOwnershipControlsInput, + GetBucketOwnershipControlsOutput, + GetBucketPolicyInput, + GetBucketPolicyOutput, + GetBucketPolicyStatusInput, + GetBucketPolicyStatusOutput, + GetBucketReplicationInput, + GetBucketReplicationOutput, + GetBucketRequestPaymentInput, + GetBucketRequestPaymentOutput, + GetBucketTaggingInput, + GetBucketTaggingOutput, + GetBucketVersioningInput, + GetBucketVersioningOutput, + GetBucketWebsiteInput, + GetBucketWebsiteOutput, + GetObjectAclInput, + GetObjectAclOutput, + GetObjectAnnotationInput, + GetObjectAnnotationOutput, + GetObjectAttributesInput, + GetObjectAttributesOutput, + GetObjectInput, + GetObjectLegalHoldInput, + GetObjectLegalHoldOutput, + GetObjectLockConfigurationInput, + GetObjectLockConfigurationOutput, + GetObjectOutput, + GetObjectRetentionInput, + GetObjectRetentionOutput, + GetObjectTaggingInput, + GetObjectTaggingOutput, + GetObjectTorrentInput, + GetObjectTorrentOutput, + GetPublicAccessBlockInput, + GetPublicAccessBlockOutput, + HeadBucketInput, + HeadBucketOutput, + HeadObjectInput, + HeadObjectOutput, + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + ListBucketsInput, + ListBucketsOutput, + ListDirectoryBucketsInput, + ListDirectoryBucketsOutput, + ListMultipartUploadsInput, + ListMultipartUploadsOutput, + ListObjectAnnotationsInput, + ListObjectAnnotationsOutput, + ListObjectVersionsInput, + ListObjectVersionsOutput, + ListObjectsInput, + ListObjectsOutput, + ListObjectsV2Input, + ListObjectsV2Output, + ListPartsInput, + ListPartsOutput, + PutBucketAbacInput, + PutBucketAbacOutput, + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + PutBucketAclInput, + PutBucketAclOutput, + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + PutBucketCorsInput, + PutBucketCorsOutput, + PutBucketEncryptionInput, + PutBucketEncryptionOutput, + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + PutBucketLoggingInput, + PutBucketLoggingOutput, + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + PutBucketOwnershipControlsInput, + PutBucketOwnershipControlsOutput, + PutBucketPolicyInput, + PutBucketPolicyOutput, + PutBucketReplicationInput, + PutBucketReplicationOutput, + PutBucketRequestPaymentInput, + PutBucketRequestPaymentOutput, + PutBucketTaggingInput, + PutBucketTaggingOutput, + PutBucketVersioningInput, + PutBucketVersioningOutput, + PutBucketWebsiteInput, + PutBucketWebsiteOutput, + PutObjectAclInput, + PutObjectAclOutput, + PutObjectAnnotationInput, + PutObjectAnnotationOutput, + PutObjectInput, + PutObjectLegalHoldInput, + PutObjectLegalHoldOutput, + PutObjectLockConfigurationInput, + PutObjectLockConfigurationOutput, + PutObjectOutput, + PutObjectRetentionInput, + PutObjectRetentionOutput, + PutObjectTaggingInput, + PutObjectTaggingOutput, + PutPublicAccessBlockInput, + PutPublicAccessBlockOutput, + RenameObjectInput, + RenameObjectOutput, + RestoreObjectInput, + RestoreObjectOutput, + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + UpdateObjectEncryptionInput, + UpdateObjectEncryptionOutput, + UploadPartCopyInput, + UploadPartCopyOutput, + UploadPartInput, + UploadPartOutput, + WriteGetObjectResponseInput, + WriteGetObjectResponseOutput, + ) + + +logger = logging.getLogger(__name__) + + +class S3Client(Client[S3Config]): + """ + Note: + For information about using the Amazon S3 API---including + authentication, signing requests, code examples, and error + handling---see the [Amazon S3 Developer + Guide](https://docs.aws.amazon.com/AmazonS3/latest/developerguide/Welcome.html). + + Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon + Simple Storage Service (Amazon S3) application programming interface + (API). + + Welcome to the *Amazon S3 API Reference*. This guide explains the Amazon + Simple Storage Service (Amazon S3) application programming interface + (API). + + You can use any toolkit that supports HTTP to use the REST API. You can + even use a browser to fetch objects, as long as they are anonymously + readable. + + The REST API uses the standard HTTP headers and status codes, so that + standard browsers and toolkits work as expected. In some areas, we have + added functionality to HTTP (for example, we added headers to support + access control). In these cases, we have done our best to add the new + functionality in a way that matched the style of standard HTTP usage. + + The current version of the Amazon S3 API is `2006-03-01`. + + Amazon S3 supports the REST API. + + Note: + Support for SOAP over HTTP is deprecated, but it is still available over + HTTPS. However, new Amazon S3 features will not be supported for SOAP. + We recommend that you use either this REST API or the Amazon Web + Services SDKs. + """ + + _client_plugins = ( + aws_user_agent_plugin, + flexible_checksums_plugin, + user_agent_plugin, + ) + + def abort_multipart_upload( + self, input: AbortMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> AbortMultipartUploadOutput: + """ + This operation aborts a multipart upload. After a multipart upload is + aborted, no additional parts can be uploaded using that upload ID. The + storage consumed by any previously uploaded parts will be freed. + However, if any part uploads are currently in progress, those part + uploads might or might not succeed. As a result, it might be necessary + to abort a given multipart upload multiple times in order to completely + free all storage consumed by all parts. + + To verify that all parts have been removed and prevent getting charged + for the part storage, you should call the + [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + API operation and ensure that the parts list is empty. + + Note: + - **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. To delete these + in-progress multipart uploads, use the `ListMultipartUploads` + operation to list the in-progress multipart uploads in the bucket and + use the `AbortMultipartUpload` operation to abort all the in-progress + multipart uploads. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `AbortMultipartUpload`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `AbortMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `AbortMultipartUploadOutput`. + """ + return self._invoke(input, _models.ABORT_MULTIPART_UPLOAD, [], plugins) + + def complete_multipart_upload( + self, input: CompleteMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> CompleteMultipartUploadOutput: + """ + Completes a multipart upload by assembling previously uploaded parts. + + You first initiate the multipart upload and then upload all parts using + the + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + operation or the + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + operation. After successfully uploading all relevant parts of an upload, + you call this `CompleteMultipartUpload` operation to complete the + upload. Upon receiving this request, Amazon S3 concatenates all the + parts in ascending order by part number to create a new object. In the + CompleteMultipartUpload request, you must provide the parts list and + ensure that the parts list is complete. The CompleteMultipartUpload API + operation concatenates the parts that you provide in the list. For each + part in the list, you must provide the `PartNumber` value and the `ETag` + value that are returned after that part was uploaded. + + The processing of a CompleteMultipartUpload request could take several + minutes to finalize. After Amazon S3 begins processing the request, it + sends an HTTP response header that specifies a `200 OK` response. While + processing is in progress, Amazon S3 periodically sends white space + characters to keep the connection from timing out. A request could fail + after the initial `200 OK` response has been sent. This means that a + `200 OK` response can contain either a success or an error. The error + response might be embedded in the `200 OK` response. If you call this + API operation directly, make sure to design your application to parse + the contents of the response and handle it appropriately. If you use + Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect + the embedded error and apply error handling per your configuration + settings (including automatically retrying the request as appropriate). + If the condition persists, the SDKs throw an exception (or, for the SDKs + that don't use exceptions, they return an error). + + Note that if `CompleteMultipartUpload` fails, applications should be + prepared to retry any failed requests (including 500 error responses). + For more information, see [Amazon S3 Error Best + Practices](https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). + + Warning: + You can't use `Content-Type: application/x-www-form-urlencoded` for the + CompleteMultipartUpload requests. Also, if you don't provide a + `Content-Type` header, `CompleteMultipartUpload` can still return a + `200 OK` response. + + For more information about multipart uploads, see [Uploading Objects + Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + If you provide an [additional checksum + value](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html) + in your `MultipartUpload` requests and the object is encrypted with + Key Management Service, you must have permission to use the + `kms:Decrypt` action for the `CompleteMultipartUpload` request to + succeed. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Special errors + + : - Error Code: `EntityTooSmall` + + - Description: Your proposed upload is smaller than the minimum + allowed object size. Each part must be at least 5 MB in size, + except the last part. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `InvalidPart` + + - Description: One or more of the specified parts could not be + found. The part might not have been uploaded, or the specified + ETag might not have matched the uploaded part's ETag. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `InvalidPartOrder` + + - Description: The list of parts was not in ascending order. The + parts list must be specified in order by part number. + + - HTTP Status Code: 400 Bad Request + + - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CompleteMultipartUpload`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CompleteMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CompleteMultipartUploadOutput`. + """ + return self._invoke(input, _models.COMPLETE_MULTIPART_UPLOAD, [], plugins) + + def copy_object( + self, input: CopyObjectInput, plugins: list[Plugin] | None = None + ) -> CopyObjectOutput: + """ + Creates a copy of an object that is already stored in Amazon S3. + + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + You can store individual objects of up to 50 TB in Amazon S3. You create + a copy of your object up to 5 GB in size in a single atomic action using + this API. However, to copy an object greater than 5 GB, you must use the + multipart upload Upload Part - Copy (UploadPartCopy) API. For more + information, see [Copy Object Using the REST Multipart Upload + API](https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). + + You can copy individual objects between general purpose buckets, between + directory buckets, and between general purpose buckets and directory + buckets. + + Note: + - Amazon S3 supports copy operations using Multi-Region Access Points + only as a destination when using the Multi-Region Access Point ARN. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + - VPC endpoints don't support cross-Region requests (including copies). + If you're using VPC endpoints, your source and destination buckets + should be in the same Amazon Web Services Region as your VPC endpoint. + + Both the Region that you want to copy the object from and the Region + that you want to copy the object to must be enabled for your account. + For more information about how to enable a Region for your account, see + [Enable or disable a Region for standalone + accounts](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) + in the *Amazon Web Services Account Management Guide*. + + Warning: + Amazon S3 transfer acceleration does not support cross-Region copies. If + you request a cross-Region copy using a transfer acceleration endpoint, + you get a `400 Bad Request` error. For more information, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). + + Authentication and authorization + + : All `CopyObject` requests must be authenticated and signed by using + IAM credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use the IAM credentials to + authenticate and authorize your access to the `CopyObject` API + operation, instead of using the temporary security credentials through + the `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : You must have *read* access to the source object and *write* access to + the destination bucket. + + - **General purpose bucket permissions** - You must have permissions + in an IAM policy based on the source and destination bucket types in + a `CopyObject` operation. + + - If the source object is in a general purpose bucket, you must have + **`s3:GetObject`** permission to read the source object that is + being copied. + + - If the destination bucket is a general purpose bucket, you must + have **`s3:PutObject`** permission to write the object copy to the + destination bucket. + + - **Directory bucket permissions** - You must have permissions in a + bucket policy or an IAM identity-based policy based on the source + and destination bucket types in a `CopyObject` operation. + + - If the source object that you want to copy is in a directory + bucket, you must have the **`s3express:CreateSession`** permission + in the `Action` element of a policy to read the object. If no + session mode is specified, the session will be created with the + maximum allowable privilege, attempting `ReadWrite` first, then + `ReadOnly` if `ReadWrite` is not permitted. If you want to + explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the copy + source bucket. + + - If the copy destination is a directory bucket, you must have the + **`s3express:CreateSession`** permission in the `Action` element + of a policy to write the object to the destination. The + `s3express:SessionMode` condition key can't be set to `ReadOnly` + on the copy destination bucket. + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + Response and special errors + + : When the request is an HTTP 1.1 request, the response is chunk + encoded. When the request is not an HTTP 1.1 request, the response + would not contain the `Content-Length`. You always need to read the + entire response body to check if the copy succeeds. + + - If the copy is successful, you receive a response with information + about the copied object. + + - A copy request might return an error when Amazon S3 receives the + copy request or while Amazon S3 is copying the files. A `200 OK` + response can contain either a success or an error. + + - If the error occurs before the copy action starts, you receive a + standard Amazon S3 error. + + - If the error occurs during the copy operation, the error response + is embedded in the `200 OK` response. For example, in a + cross-region copy, you may encounter throttling and receive a + `200 OK` response. For more information, see [Resolve the Error + 200 response when copying objects to Amazon + S3](https://repost.aws/knowledge-center/s3-resolve-200-internalerror). + The `200 OK` status code means the copy was accepted, but it + doesn't mean the copy is complete. Another example is when you + disconnect from Amazon S3 before the copy is complete, Amazon S3 + might cancel the copy and you may receive a `200 OK` response. You + must stay connected to Amazon S3 until the entire response is + successfully received and processed. + + If you call this API operation directly, make sure to design your + application to parse the content of the response and handle it + appropriately. If you use Amazon Web Services SDKs, SDKs handle + this condition. The SDKs detect the embedded error and apply error + handling per your configuration settings (including automatically + retrying the request as appropriate). If the condition persists, + the SDKs throw an exception (or, for the SDKs that don't use + exceptions, they return an error). + + Charge + + : The copy request charge is based on the storage class and Region that + you specify for the destination object. The request can also result in + a data retrieval charge for the source if the source storage class + bills for data retrieval. If the copy source is in a different region, + the data transfer is billed to the copy source account. For pricing + information, see [Amazon S3 + pricing](http://aws.amazon.com/s3/pricing/). + + HTTP Host header syntax + + : - **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + - **Amazon S3 on Outposts** - When you use this action with S3 on + Outposts through the REST API, you must direct requests to the S3 on + Outposts hostname. The S3 on Outposts hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + The hostname isn't required when you use the Amazon Web Services + CLI or SDKs. + + The following operations are related to `CopyObject`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CopyObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CopyObjectOutput`. + """ + return self._invoke(input, _models.COPY_OBJECT, [], plugins) + + def create_bucket( + self, input: CreateBucketInput, plugins: list[Plugin] | None = None + ) -> CreateBucketOutput: + """ + Note: + This action creates an Amazon S3 bucket. To create an Amazon S3 on + Outposts bucket, see + [`CreateBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) + . + + Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 + and have a valid Amazon Web Services Access Key ID to authenticate + requests. Anonymous requests are never allowed to create buckets. By + creating the bucket, you become the bucket owner. + + There are two types of buckets: general purpose buckets and directory + buckets. For more information about these bucket types, see [Creating, + configuring, and working with Amazon S3 + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) + in the *Amazon S3 User Guide*. + + General purpose buckets exist in a global namespace, which means that + each bucket name must be unique across all Amazon Web Services accounts + in all the Amazon Web Services Regions within a partition. A partition + is a grouping of Regions. Amazon Web Services currently has four + partitions: `aws` (Standard Regions), `aws-cn` (China Regions), + `aws-us-gov` (Amazon Web Services GovCloud (US)), and `aws-eusc` + (European Sovereign Cloud). When you create a general purpose bucket, + you can choose to create a bucket in the shared global namespace or you + can choose to create a bucket in your account regional namespace. Your + account regional namespace is a subdivision of the global namespace that + only your account can create buckets in. For more information on account + regional namespaces, see [Namespaces for general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/gpbucketnamespaces.html). + + Note: + - **General purpose buckets** - If you send your `CreateBucket` request + to the `s3.amazonaws.com` global endpoint, the request goes to the + `us-east-1` Region. So the signature calculations in Signature Version + 4 must use `us-east-1` as the Region, even if the location constraint + in the request specifies another Region where the bucket is to be + created. If you create a bucket in a Region other than US East (N. + Virginia), your application must be able to handle 307 redirect. For + more information, see [Virtual hosting of + buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints + support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal + endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - In addition to the + `s3:CreateBucket` permission, the following permissions are required + in a policy when your `CreateBucket` request includes specific + headers: + + - **Access control lists (ACLs)** - In your `CreateBucket` request, + if you specify an access control list (ACL) and set it to + `public-read`, `public-read-write`, `authenticated-read`, or if + you explicitly specify any other custom ACLs, both + `s3:CreateBucket` and `s3:PutBucketAcl` permissions are required. + In your `CreateBucket` request, if you set the ACL to `private`, + or if you don't specify any ACLs, only the `s3:CreateBucket` + permission is required. + + - **Object Lock** - In your `CreateBucket` request, if you set + `x-amz-bucket-object-lock-enabled` to true, the + `s3:PutBucketObjectLockConfiguration` and `s3:PutBucketVersioning` + permissions are required. + + - **S3 Object Ownership** - If your `CreateBucket` request includes + the `x-amz-object-ownership` header, then the + `s3:PutBucketOwnershipControls` permission is required. + + Warning: + To set an ACL on a bucket as part of a `CreateBucket` request, you + must explicitly set S3 Object Ownership for the bucket to a + different value than the default, `BucketOwnerEnforced`. + Additionally, if your desired bucket ACL grants public access, you + must first create the bucket (without the bucket ACL) and then + explicitly disable Block Public Access on the bucket before using + `PutBucketAcl` to set the ACL. If you try to create a bucket with + a public ACL, the request will fail. + + For the majority of modern use cases in S3, we recommend that you + keep all Block Public Access settings enabled and keep ACLs + disabled. If you would like to share data with users outside of + your account, you can use bucket policies as needed. For more + information, see [Controlling ownership of objects and disabling + ACLs for your + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + and [Blocking public access to your Amazon S3 + storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) + in the *Amazon S3 User Guide*. + + - **S3 Block Public Access** - If your specific use case requires + granting public access to your S3 resources, you can disable Block + Public Access. Specifically, you can create a new bucket with + Block Public Access enabled, then separately call the + [`DeletePublicAccessBlock`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + API. To use this operation, you must have the + `s3:PutBucketPublicAccessBlock` permission. For more information + about S3 Block Public Access, see [Blocking public access to your + Amazon S3 + storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have the + `s3express:CreateBucket` permission in an IAM identity-based policy + instead of a bucket policy. Cross-account access to this API + operation isn't supported. This operation can only be performed by + the Amazon Web Services account that owns the resource. For more + information about directory bucket policies and permissions, see + [Amazon Web Services Identity and Access Management (IAM) for S3 + Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Warning: + The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 + Block Public Access are not supported for directory buckets. For + directory buckets, all Block Public Access settings are enabled at + the bucket level and S3 Object Ownership is set to Bucket owner + enforced (ACLs disabled). These settings can't be modified. + + For more information about permissions for creating and working with + directory buckets, see [Directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. For more information about supported + S3 features for directory buckets, see [Features of S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CreateBucket`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketOutput`. + """ + return self._invoke(input, _models.CREATE_BUCKET, [], plugins) + + def create_bucket_metadata_configuration( + self, + input: CreateBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> CreateBucketMetadataConfigurationOutput: + """ + Creates an S3 Metadata V2 metadata configuration for a general purpose + bucket. For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your metadata tables with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions in your KMS key policy. For more information, + see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you also want to integrate your table bucket with Amazon Web + Services analytics services so that you can query your metadata table, + you need additional permissions. For more information, see + [Integrating Amazon S3 Tables with Amazon Web Services analytics + services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) + in the *Amazon S3 User Guide*. + + To query your metadata tables, you need additional permissions. For + more information, see [Permissions for querying metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-bucket-query-permissions.html) + in the *Amazon S3 User Guide*. + + - `s3:CreateBucketMetadataTableConfiguration` + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + - `s3tables:CreateTableBucket` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + - `s3tables:PutTableBucketPolicy` + + - `s3tables:PutTableEncryption` + + - `kms:DescribeKey` + + - `iam:PassRole` - required if you include an + `AnnotationTableConfiguration` with an IAM role. + + The following operations are related to + `CreateBucketMetadataConfiguration`: + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + - [UpdateBucketMetadataAnnotationTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html) + + If you include an `AnnotationTableConfiguration` with an IAM role, the + role must have a trust policy that allows the Amazon S3 metadata service + to assume it, and a permissions policy that grants the actions needed to + read annotations from your bucket. The following examples show a trust + policy and a permissions policy that you can adapt for your bucket and + account. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketMetadataConfigurationOutput`. + """ + return self._invoke( + input, _models.CREATE_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + def create_bucket_metadata_table_configuration( + self, + input: CreateBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> CreateBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you create your S3 Metadata configurations by using + the V2 + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + API operation. We no longer recommend using the V1 + `CreateBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Creates a V1 S3 Metadata configuration for a general purpose bucket. For + more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your metadata tables with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions. For more information, see [Setting up + permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you also want to integrate your table bucket with Amazon Web + Services analytics services so that you can query your metadata table, + you need additional permissions. For more information, see + [Integrating Amazon S3 Tables with Amazon Web Services analytics + services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) + in the *Amazon S3 User Guide*. + + - `s3:CreateBucketMetadataTableConfiguration` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + The following operations are related to + `CreateBucketMetadataTableConfiguration`: + + - [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + + - [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBucketMetadataTableConfigurationOutput`. + """ + return self._invoke( + input, _models.CREATE_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + def create_multipart_upload( + self, input: CreateMultipartUploadInput, plugins: list[Plugin] | None = None + ) -> CreateMultipartUploadOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + + This action initiates a multipart upload and returns an upload ID. This + upload ID is used to associate all of the parts in the specific + multipart upload. You specify this upload ID in each of your subsequent + upload part requests (see + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). + You also include this upload ID in the final request to either complete + or abort the multipart upload request. For more information about + multipart uploads, see [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide*. + + Note: + After you initiate a multipart upload and upload one or more parts, to + stop being charged for storing the uploaded parts, you must either + complete or abort the multipart upload. Amazon S3 frees up the space + used to store the parts and stops charging you for storing them only + after you either complete or abort a multipart upload. + + If you have configured a lifecycle rule to abort incomplete multipart + uploads, the created multipart upload must be completed within the + number of days specified in the bucket lifecycle configuration. + Otherwise, the incomplete multipart upload becomes eligible for an abort + action and Amazon S3 aborts the multipart upload. For more information, + see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). + + Note: + - **Directory buckets** - S3 Lifecycle is not supported by directory + buckets. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Request signing + + : For request signing, multipart upload is just a series of regular + requests. You initiate a multipart upload, send one or more requests + to upload parts, and then complete the multipart upload process. You + sign each request individually. There is nothing special about signing + multipart upload requests. For more information about signing, see + [Authenticating Requests (Amazon Web Services Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To perform a multipart + upload with encryption using an Key Management Service (KMS) KMS + key, the requester must have permission to the `kms:Decrypt` and + `kms:GenerateDataKey` actions on the key. The requester must also + have permissions for the `kms:GenerateDataKey` action for the + `CreateMultipartUpload` API. Then, the requester needs permissions + for the `kms:Decrypt` action on the `UploadPart` and + `UploadPartCopy` APIs. These permissions are required because Amazon + S3 must decrypt and read data from the encrypted file parts before + it completes the multipart upload. For more information, see + [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + and [Protecting data using server-side encryption with Amazon Web + Services + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Encryption + + : - **General purpose buckets** - Server-side encryption is for data + encryption at rest. Amazon S3 encrypts your data as it writes it to + disks in its data centers and decrypts it when you access it. Amazon + S3 automatically encrypts all new objects that are uploaded to an S3 + bucket. When doing a multipart upload, if you don't specify + encryption information in your request, the encryption setting of + the uploaded parts is set to the default encryption configuration of + the destination bucket. By default, all buckets have a base level of + encryption configuration that uses server-side encryption with + Amazon S3 managed keys (SSE-S3). If the destination bucket has a + default encryption configuration that uses server-side encryption + with an Key Management Service (KMS) key (SSE-KMS), or a + customer-provided encryption key (SSE-C), Amazon S3 uses the + corresponding KMS key, or a customer-provided key to encrypt the + uploaded parts. When you perform a CreateMultipartUpload operation, + if you want to use a different type of encryption setting for the + uploaded parts, you can request that Amazon S3 encrypts the object + with a different encryption key (such as an Amazon S3 managed key, a + KMS key, or a customer-provided key). When the encryption setting in + your request is different from the default encryption configuration + of the destination bucket, the encryption setting in your request + takes precedence. If you choose to provide your own encryption key, + the request headers you provide in + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + requests must match the headers you used in the + `CreateMultipartUpload` request. + + - Use KMS keys (SSE-KMS) that include the Amazon Web Services + managed key (`aws/s3`) and KMS customer managed keys stored in Key + Management Service (KMS) -- If you want Amazon Web Services to + manage the keys used to encrypt data, specify the following + headers in the request. + + - `x-amz-server-side-encryption` + + - `x-amz-server-side-encryption-aws-kms-key-id` + + - `x-amz-server-side-encryption-context` + + Note: + - If you specify `x-amz-server-side-encryption:aws:kms`, but + don't provide `x-amz-server-side-encryption-aws-kms-key-id`, + Amazon S3 uses the Amazon Web Services managed key (`aws/s3` + key) in KMS to protect the data. + + - To perform a multipart upload with encryption by using an Amazon + Web Services KMS key, the requester must have permission to the + `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. + These permissions are required because Amazon S3 must decrypt + and read data from the encrypted file parts before it completes + the multipart upload. For more information, see [Multipart + upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + and [Protecting data using server-side encryption with Amazon + Web Services + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - If your Identity and Access Management (IAM) user or role is in + the same Amazon Web Services account as the KMS key, then you + must have these permissions on the key policy. If your IAM user + or role is in a different account from the key, then you must + have the permissions on both the key policy and your IAM user or + role. + + - All `GET` and `PUT` requests for an object protected by KMS fail + if you don't make them by using Secure Sockets Layer (SSL), + Transport Layer Security (TLS), or Signature Version 4. For + information about configuring any of the officially supported + Amazon Web Services SDKs and Amazon Web Services CLI, see + [Specifying the Signature Version in Request + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) + in the *Amazon S3 User Guide*. + + For more information about server-side encryption with KMS keys + (SSE-KMS), see [Protecting Data Using Server-Side Encryption with + KMS + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. + + - Use customer-provided encryption keys (SSE-C) -- If you want to + manage your own encryption keys, provide all the following headers + in the request. + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about server-side encryption with + customer-provided encryption keys (SSE-C), see [Protecting data + using server-side encryption with customer-provided encryption + keys + (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). We recommend that + the bucket's default encryption uses the desired encryption + configuration and you don't override the bucket default encryption + in your `CreateSession` requests or `PUT` object requests. Then, new + objects are automatically encrypted with the desired encryption + settings. For more information, see [Protecting data with + server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see + [Specifying server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, the encryption request headers must match the + encryption settings that are specified in the `CreateSession` + request. You can't override the values of the encryption settings + (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) that are + specified in the `CreateSession` request. You don't need to + explicitly specify these encryption settings values in Zonal + endpoint API calls, and Amazon S3 will use the encryption settings + values from the `CreateSession` request to protect new objects in + the directory bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. So in the + Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + the encryption request headers must match the default encryption + configuration of the directory bucket. + Note: + For directory buckets, when you perform a `CreateMultipartUpload` + operation and an `UploadPartCopy` operation, the request headers you + provide in the `CreateMultipartUpload` request must match the + default encryption configuration of the destination bucket. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `CreateMultipartUpload`: + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateMultipartUploadInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateMultipartUploadOutput`. + """ + return self._invoke(input, _models.CREATE_MULTIPART_UPLOAD, [], plugins) + + def create_session( + self, input: CreateSessionInput, plugins: list[Plugin] | None = None + ) -> CreateSessionOutput: + """ + Creates a session that establishes temporary security credentials to + support fast authentication and authorization for the Zonal endpoint API + operations on directory buckets. For more information about Zonal + endpoint API operations that include the Availability Zone in the + request endpoint, see [S3 Express One Zone + APIs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html) + in the *Amazon S3 User Guide*. + + To make Zonal endpoint API requests on a directory bucket, use the + `CreateSession` API operation. Specifically, you grant + `s3express:CreateSession` permission to a bucket in a bucket policy or + an IAM identity-based policy. Then, you use IAM credentials to make the + `CreateSession` API request on the bucket, which returns temporary + security credentials that include the access key ID, secret access key, + session token, and expiration. These credentials have associated + permissions to access the Zonal endpoint API operations. After the + session is created, you don't need to use other policies to grant + permissions to each Zonal endpoint API individually. Instead, in your + Zonal endpoint API requests, you sign your requests by applying the + temporary security credentials of the session to the request headers and + following the SigV4 protocol for authentication. You also apply the + session token to the `x-amz-s3session-token` request header for + authorization. Temporary security credentials are scoped to the bucket + and expire after 5 minutes. After the expiration time, any calls that + you make with those credentials will fail. You must use IAM credentials + again to make a `CreateSession` API request that generates a new set of + temporary credentials for use. Temporary credentials cannot be extended + or refreshed beyond the original specified interval. + + If you use Amazon Web Services SDKs, SDKs handle the session token + refreshes automatically to avoid service interruptions when a session + expires. We recommend that you use the Amazon Web Services SDKs to + initiate and manage requests to the CreateSession API. For more + information, see [Performance guidelines and design + patterns](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication) + in the *Amazon S3 User Guide*. + + Note: + - You must make requests for this API operation to the Zonal endpoint. + These endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + - **`CopyObject` API operation** - Unlike other Zonal endpoint API + operations, the `CopyObject` API operation doesn't use the temporary + security credentials returned from the `CreateSession` API operation + for authentication and authorization. For information about + authentication and authorization of the `CopyObject` API operation on + directory buckets, see + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html). + + - **`HeadBucket` API operation** - Unlike other Zonal endpoint API + operations, the `HeadBucket` API operation doesn't use the temporary + security credentials returned from the `CreateSession` API operation + for authentication and authorization. For information about + authentication and authorization of the `HeadBucket` API operation on + directory buckets, see + [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html). + + Permissions + + : To obtain temporary security credentials, you must create a bucket + policy or an IAM identity-based policy that grants + `s3express:CreateSession` permission to the bucket. In a policy, you + can have the `s3express:SessionMode` condition key to control who can + create a `ReadWrite` or `ReadOnly` session. For more information about + `ReadWrite` or `ReadOnly` sessions, see + [`x-amz-create-session-mode`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters) + . For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + To grant cross-account access to Zonal endpoint API operations, the + bucket policy should also grant both accounts the + `s3express:CreateSession` permission. + + If you want to encrypt objects with SSE-KMS, you must also have the + `kms:GenerateDataKey` and the `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the target KMS key. + + Encryption + + : For directory buckets, there are only two supported options for + server-side encryption: server-side encryption with Amazon S3 managed + keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys + (SSE-KMS) (`aws:kms`). We recommend that the bucket's default + encryption uses the desired encryption configuration and you don't + override the bucket default encryption in your `CreateSession` + requests or `PUT` object requests. Then, new objects are automatically + encrypted with the desired encryption settings. For more information, + see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + For [Zonal endpoint (object-level) API + operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations) + except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + you authenticate and authorize requests through + [CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + for low latency. To encrypt new objects in a directory bucket with + SSE-KMS, you must specify SSE-KMS as the directory bucket's default + encryption configuration with a KMS key (specifically, a [customer + managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)). + Then, when a session is created for Zonal endpoint API operations, new + objects are automatically encrypted and decrypted with SSE-KMS and S3 + Bucket Keys during the session. + + Note: + Only 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + is supported per directory bucket for the lifetime of the bucket. The + [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. After you specify SSE-KMS as your + bucket's default encryption configuration with a customer managed + key, you can't change the customer managed key for the bucket's + SSE-KMS configuration. + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, you can't override the values of the encryption + settings (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) from the + `CreateSession` request. You don't need to explicitly specify these + encryption settings values in Zonal endpoint API calls, and Amazon S3 + will use the encryption settings values from the `CreateSession` + request to protect new objects in the directory bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. Also, in + the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + it's not supported to override the values of the encryption settings + from the `CreateSession` request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `CreateSessionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateSessionOutput`. + """ + return self._invoke(input, _models.CREATE_SESSION, [], plugins) + + def delete_bucket( + self, input: DeleteBucketInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketOutput: + """ + Deletes the S3 bucket. All objects (including all object versions and + delete markers) in the bucket must be deleted before the bucket itself + can be deleted. + + Note: + - **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints + support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal + endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - You must have the + `s3:DeleteBucket` permission on the specified bucket in a policy. + + - **Directory bucket permissions** - You must have the + `s3express:DeleteBucket` permission in an IAM identity-based policy + instead of a bucket policy. Cross-account access to this API + operation isn't supported. This operation can only be performed by + the Amazon Web Services account that owns the resource. For more + information about directory bucket policies and permissions, see + [Amazon Web Services Identity and Access Management (IAM) for S3 + Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucket`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET, [], plugins) + + def delete_bucket_analytics_configuration( + self, + input: DeleteBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes an analytics configuration for the bucket (specified by the + analytics configuration ID). + + To use this operation, you must have permissions to perform the + `s3:PutAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + For information about the Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + The following operations are related to + `DeleteBucketAnalyticsConfiguration`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketAnalyticsConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + def delete_bucket_cors( + self, input: DeleteBucketCorsInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the `cors` configuration information set for the bucket. + + To use this operation, you must have permission to perform the + `s3:PutBucketCORS` action. The bucket owner has this permission by + default and can grant this permission to others. + + For information about `cors`, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + + **Related Resources** + + - [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) + + - [RESTOPTIONSobject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketCorsOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_CORS, [], plugins) + + def delete_bucket_encryption( + self, input: DeleteBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketEncryptionOutput: + """ + This implementation of the DELETE action resets the default encryption + for the bucket as server-side encryption with Amazon S3 managed keys + (SSE-S3). + + Note: + - **General purpose buckets** - For information about the bucket default + encryption feature, see [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. For + information about the default encryption configuration in directory + buckets, see [Setting default server-side encryption behavior for + directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:PutEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucketEncryption`: + + - [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) + + - [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketEncryptionOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_ENCRYPTION, [], plugins) + + def delete_bucket_intelligent_tiering_configuration( + self, + input: DeleteBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the S3 Intelligent-Tiering configuration from the specified + bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `DeleteBucketIntelligentTieringConfiguration` + include: + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketIntelligentTieringConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + def delete_bucket_inventory_configuration( + self, + input: DeleteBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketInventoryConfigurationOutput: + """ + Deletes an S3 Inventory configuration (identified by the inventory ID) + from the bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). + + Note: + After deleting a configuration, Amazon S3 might still deliver one + additional inventory report during a brief transition period while the + system processes the deletion. + + Operations related to `DeleteBucketInventoryConfiguration` include: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketInventoryConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + def delete_bucket_lifecycle( + self, input: DeleteBucketLifecycleInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketLifecycleOutput: + """ + Deletes the lifecycle configuration from the specified bucket. Amazon S3 + removes all the lifecycle configuration rules in the lifecycle + subresource associated with the bucket. Your objects never expire, and + Amazon S3 no longer automatically deletes any objects on the basis of + rules contained in the deleted lifecycle configuration. + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:PutLifecycleConfiguration` permission. + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:PutLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + For more information about the object expiration, see [Elements to + Describe Lifecycle + Actions](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). + + Related actions include: + + - [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + + - [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketLifecycleInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketLifecycleOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_LIFECYCLE, [], plugins) + + def delete_bucket_metadata_configuration( + self, + input: DeleteBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetadataConfigurationOutput: + """ + Deletes an S3 Metadata configuration from a general purpose bucket. For + more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `DeleteBucketMetadataConfiguration` API operation + with V1 or V2 metadata configurations. However, if you try to use the V1 + `DeleteBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Permissions + + : To use this operation, you must have the + `s3:DeleteBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + The following operations are related to + `DeleteBucketMetadataConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetadataConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + def delete_bucket_metadata_table_configuration( + self, + input: DeleteBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you delete your S3 Metadata configurations by using + the V2 + [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + API operation. We no longer recommend using the V1 + `DeleteBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Deletes a V1 S3 Metadata configuration from a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `DeleteBucketMetadataConfiguration` API operation + with V1 or V2 metadata table configurations. However, if you try to use + the V1 `DeleteBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Make sure that you update your processes to use the new V2 API + operations (`CreateBucketMetadataConfiguration`, + `GetBucketMetadataConfiguration`, and + `DeleteBucketMetadataConfiguration`) instead of the V1 API operations. + + Permissions + + : To use this operation, you must have the + `s3:DeleteBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `DeleteBucketMetadataTableConfiguration`: + + - [CreateBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) + + - [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetadataTableConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + def delete_bucket_metrics_configuration( + self, + input: DeleteBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketMetricsConfigurationOutput: + """ + Deletes a metrics configuration for the Amazon CloudWatch request + metrics (specified by the metrics configuration ID) from the bucket. + Note that this doesn't include the daily storage metrics. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to + `DeleteBucketMetricsConfiguration`: + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + - [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketMetricsConfigurationOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + def delete_bucket_ownership_controls( + self, + input: DeleteBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> DeleteBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes `OwnershipControls` for an Amazon S3 bucket. To use this + operation, you must have the `s3:PutBucketOwnershipControls` permission. + For more information about Amazon S3 permissions, see [Specifying + Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + For information about Amazon S3 Object Ownership, see [Using Object + Ownership](https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). + + The following operations are related to `DeleteBucketOwnershipControls`: + + - GetBucketOwnershipControls + + - PutBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketOwnershipControlsOutput`. + """ + return self._invoke( + input, _models.DELETE_BUCKET_OWNERSHIP_CONTROLS, [], plugins + ) + + def delete_bucket_policy( + self, input: DeleteBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketPolicyOutput: + """ + Deletes the policy of a specified bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `DeleteBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `DeleteBucketPolicy` permissions, Amazon S3 returns + a `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:DeleteBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:DeleteBucketPolicy` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteBucketPolicy` + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketPolicyOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_POLICY, [], plugins) + + def delete_bucket_replication( + self, input: DeleteBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes the replication configuration from the bucket. + + To use this operation, you must have permissions to perform the + `s3:PutReplicationConfiguration` action. The bucket owner has these + permissions by default and can grant it to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + Note: + It can take a while for the deletion of a replication configuration to + fully propagate. + + For information about replication configuration, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + The following operations are related to `DeleteBucketReplication`: + + - [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) + + - [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketReplicationOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_REPLICATION, [], plugins) + + def delete_bucket_tagging( + self, input: DeleteBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Deletes tags from the general purpose bucket if attribute based access + control (ABAC) is not enabled for the bucket. When you [enable ABAC for + a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html), + you can no longer use this operation for that bucket and must use + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + instead. + + To use this operation, you must have permission to perform the + `s3:PutBucketTagging` action. By default, the bucket owner has this + permission and can grant this permission to others. + + The following operations are related to `DeleteBucketTagging`: + + - [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) + + - [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketTaggingOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_TAGGING, [], plugins) + + def delete_bucket_website( + self, input: DeleteBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> DeleteBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + This action removes the website configuration for a bucket. Amazon S3 + returns a `200 OK` response upon successfully deleting a website + configuration on the specified bucket. You will get a `200 OK` response + if the website configuration you are trying to delete does not exist on + the bucket. Amazon S3 returns a `404` response if the bucket specified + in the request does not exist. + + This DELETE action requires the `S3:DeleteBucketWebsite` permission. By + default, only the bucket owner can delete the website configuration + attached to a bucket. However, bucket owners can grant other users + permission to delete the website configuration by writing a bucket + policy granting them the `S3:DeleteBucketWebsite` permission. + + For more information about hosting websites, see [Hosting Websites on + Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + The following operations are related to `DeleteBucketWebsite`: + + - [GetBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) + + - [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteBucketWebsiteOutput`. + """ + return self._invoke(input, _models.DELETE_BUCKET_WEBSITE, [], plugins) + + def delete_object( + self, input: DeleteObjectInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectOutput: + """ + Removes an object from a bucket. The behavior depends on the bucket's + versioning state: + + - If bucket versioning is not enabled, the operation permanently deletes + the object. + + - If bucket versioning is enabled, the operation inserts a delete + marker, which becomes the current version of the object. To + permanently delete an object in a versioned bucket, you must include + the object's `versionId` in the request. For more information about + versioning-enabled buckets, see [Deleting object versions from a + versioning-enabled + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html). + + - If bucket versioning is suspended, the operation removes the object + that has a null `versionId`, if there is one, and inserts a delete + marker that becomes the current version of the object. If there isn't + an object with a null `versionId`, and all versions of the object have + a `versionId`, Amazon S3 does not remove the object and only inserts a + delete marker. To permanently delete an object that has a `versionId`, + you must include the object's `versionId` in the request. For more + information about versioning-suspended buckets, see [Deleting objects + from versioning-suspended + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html). + + Note: + - **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. For this API operation, only the `null` value of + the version ID is supported by directory buckets. You can only specify + `null` to the `versionId` query parameter in the request. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + To remove a specific version, you must use the `versionId` query + parameter. Using this query parameter permanently deletes the version. + If the object deleted is a delete marker, Amazon S3 sets the response + header `x-amz-delete-marker` to true. + + If the object you want to delete is in a bucket where the bucket + versioning configuration is MFA Delete enabled, you must include the + `x-amz-mfa` request header in the DELETE `versionId` request. Requests + that include `x-amz-mfa` must use HTTPS. For more information about MFA + Delete, see [Using MFA + Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html) + in the *Amazon S3 User Guide*. To see sample requests that use + versioning, see [Sample + Request](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). + + Note: + **Directory buckets** - MFA delete is not supported by directory + buckets. + + You can delete objects by explicitly calling DELETE Object or calling + ([PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) + to enable Amazon S3 to remove them for you. If you want to block users + or accounts from removing or deleting objects from your bucket, you must + deny them the `s3:DeleteObject`, `s3:DeleteObjectVersion`, and + `s3:PutLifeCycleConfiguration` actions. + + Note: + **Directory buckets** - S3 Lifecycle is not supported by directory + buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `DeleteObjects` request + includes specific headers. + + - **`s3:DeleteObject`** - To delete an object from a bucket, you + must always have the `s3:DeleteObject` permission. + + - **`s3:DeleteObjectVersion`** - To delete a specific version of an + object from a versioning-enabled bucket, you must have the + `s3:DeleteObjectVersion` permission. + + Note: + If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions + are explicitly denied in your bucket policy, attempts to delete + any unversioned objects result in a `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following action is related to `DeleteObject`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + Note: + The `If-Match` header is supported for both general purpose and + directory buckets. `IfMatchLastModifiedTime` and `IfMatchSize` is only + supported for directory buckets. + + Args: + input: + An instance of `DeleteObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectOutput`. + """ + return self._invoke(input, _models.DELETE_OBJECT, [], plugins) + + def delete_object_annotation( + self, input: DeleteObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectAnnotationOutput: + """ + Deletes a specific annotation from an Amazon S3 object. Use the + `x-amz-object-if-match` header to perform a conditional delete that only + succeeds if the object's ETag matches the provided value, preventing + race conditions during concurrent updates. + + Deleting an annotation is permanent. Annotations are not independently + versioned, so there is no delete marker or way to recover a deleted + annotation. + + To use this operation, you must have the `s3:DeleteObjectAnnotation` + permission. If the object is protected by Object Lock in governance + mode, you must also include the `x-amz-bypass-governance-retention` + header. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `DeleteObjectAnnotation`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + Args: + input: + An instance of `DeleteObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectAnnotationOutput`. + """ + return self._invoke(input, _models.DELETE_OBJECT_ANNOTATION, [], plugins) + + def delete_objects( + self, input: DeleteObjectsInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectsOutput: + """ + This operation enables you to delete multiple objects from a bucket + using a single HTTP request. If you know the object keys that you want + to delete, then this operation provides a suitable alternative to + sending individual delete requests, reducing per-request overhead. + + The request can contain a list of up to 1,000 keys that you want to + delete. In the XML, you provide the object key names, and optionally, + version IDs if you want to delete a specific version of the object from + a versioning-enabled bucket. For each key, Amazon S3 performs a delete + operation and returns the result of that delete, success or failure, in + the response. If the object specified in the request isn't found, + Amazon S3 confirms the deletion by returning the result as deleted. + + Note: + - **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + The operation supports two modes for the response: verbose and quiet. By + default, the operation uses verbose mode in which the response includes + the result of deletion of each key in your request. In quiet mode the + response includes only keys where the delete operation encountered an + error. For a successful deletion in a quiet mode, the operation does not + return any information about the delete in the response body. + + When performing this action on an MFA Delete enabled bucket, that + attempts to delete any versioned objects, you must include an MFA token. + If you do not provide one, the entire request will fail, even if there + are non-versioned objects you are trying to delete. If you provide an + invalid token, whether there are versioned keys in the request or not, + the entire Multi-Object Delete request will fail. For information about + MFA Delete, see [MFA + Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - MFA delete is not supported by directory + buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `DeleteObjects` request + includes specific headers. + + - **`s3:DeleteObject`** - To delete an object from a bucket, you + must always specify the `s3:DeleteObject` permission. + + - **`s3:DeleteObjectVersion`** - To delete a specific version of an + object from a versioning-enabled bucket, you must specify the + `s3:DeleteObjectVersion` permission. + + Note: + If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions + are explicitly denied in your bucket policy, attempts to delete + any unversioned objects result in a `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Content-MD5 request header + + : - **General purpose bucket** - The Content-MD5 request header is + required for all Multi-Object Delete requests. Amazon S3 uses the + header value to ensure that your request body has not been altered + in transit. + + - **Directory bucket** - The Content-MD5 request header or a + additional checksum request header (including + `x-amz-checksum-crc32`, `x-amz-checksum-crc32c`, + `x-amz-checksum-sha1`, or `x-amz-checksum-sha256`) is required for + all Multi-Object Delete requests. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `DeleteObjects`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteObjectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectsOutput`. + """ + return self._invoke(input, _models.DELETE_OBJECTS, [], plugins) + + def delete_object_tagging( + self, input: DeleteObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> DeleteObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes the entire tag set from the specified object. For more + information about managing object tags, see [Object + Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). + + To use this operation, you must have permission to perform the + `s3:DeleteObjectTagging` action. + + To delete tags of a specific object version, add the `versionId` query + parameter in the request. You will need permission for the + `s3:DeleteObjectVersionTagging` action. + + The following operations are related to `DeleteObjectTagging`: + + - [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeleteObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeleteObjectTaggingOutput`. + """ + return self._invoke(input, _models.DELETE_OBJECT_TAGGING, [], plugins) + + def delete_public_access_block( + self, input: DeletePublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> DeletePublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + Removes the `PublicAccessBlock` configuration for an Amazon S3 bucket. + This operation removes the bucket-level configuration only. The + effective public access behavior will still be governed by account-level + settings (which may inherit from organization-level policies). To use + this operation, you must have the `s3:PutBucketPublicAccessBlock` + permission. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + The following operations are related to `DeletePublicAccessBlock`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [GetBucketPolicyStatus](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `DeletePublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `DeletePublicAccessBlockOutput`. + """ + return self._invoke(input, _models.DELETE_PUBLIC_ACCESS_BLOCK, [], plugins) + + def get_bucket_abac( + self, input: GetBucketAbacInput, plugins: list[Plugin] | None = None + ) -> GetBucketAbacOutput: + """ + Returns the attribute-based access control (ABAC) property of the + general purpose bucket. If ABAC is enabled on your bucket, you can use + tags on the bucket for access control. For more information, see + [Enabling ABAC in general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html). + + Args: + input: + An instance of `GetBucketAbacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAbacOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_ABAC, [], plugins) + + def get_bucket_accelerate_configuration( + self, + input: GetBucketAccelerateConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketAccelerateConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the GET action uses the `accelerate` subresource + to return the Transfer Acceleration state of a bucket, which is either + `Enabled` or `Suspended`. Amazon S3 Transfer Acceleration is a + bucket-level feature that enables you to perform faster data transfers + to and from Amazon S3. + + To use this operation, you must have permission to perform the + `s3:GetAccelerateConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + You set the Transfer Acceleration state of an existing bucket to + `Enabled` or `Suspended` by using the + [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) + operation. + + A GET `accelerate` request does not return a state value for a bucket + that has no transfer acceleration state. A bucket has no Transfer + Acceleration state if a state has never been set on the bucket. + + For more information about transfer acceleration, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) + in the Amazon S3 User Guide. + + The following operations are related to + `GetBucketAccelerateConfiguration`: + + - [PutBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketAccelerateConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAccelerateConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_ACCELERATE_CONFIGURATION, [], plugins + ) + + def get_bucket_acl( + self, input: GetBucketAclInput, plugins: list[Plugin] | None = None + ) -> GetBucketAclOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the `GET` action uses the `acl` subresource to + return the access control list (ACL) of a bucket. To use `GET` to return + the ACL of the bucket, you must have the `READ_ACP` access to the + bucket. If `READ_ACP` permission is granted to the anonymous user, you + can return the ACL of the bucket without using an authorization header. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + If your bucket uses the bucket owner enforced setting for S3 Object + Ownership, requests to read ACLs are still supported and return the + `bucket-owner-full-control` ACL with the owner being the account that + created the bucket. For more information, see [Controlling object + ownership and disabling + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + The following operations are related to `GetBucketAcl`: + + - [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) + + Args: + input: + An instance of `GetBucketAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAclOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_ACL, [], plugins) + + def get_bucket_analytics_configuration( + self, + input: GetBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + This implementation of the GET action returns an analytics configuration + (identified by the analytics configuration ID) from the bucket. + + To use this operation, you must have permissions to perform the + `s3:GetAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + For information about Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `GetBucketAnalyticsConfiguration`: + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketAnalyticsConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + def get_bucket_cors( + self, input: GetBucketCorsInput, plugins: list[Plugin] | None = None + ) -> GetBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the Cross-Origin Resource Sharing (CORS) configuration + information set for the bucket. + + To use this operation, you must have permission to perform the + `s3:GetBucketCORS` action. By default, the bucket owner has this + permission and can grant it to others. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + For more information about CORS, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). + + The following operations are related to `GetBucketCors`: + + - [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) + + - [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketCorsOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_CORS, [], plugins) + + def get_bucket_encryption( + self, input: GetBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> GetBucketEncryptionOutput: + """ + Returns the default encryption configuration for an Amazon S3 bucket. By + default, all buckets have a default encryption configuration that uses + server-side encryption with Amazon S3 managed keys (SSE-S3). This + operation also returns the + [BucketKeyEnabled](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BucketKeyEnabled) + and + [BlockedEncryptionTypes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BlockedEncryptionTypes) + statuses. + + Note: + - **General purpose buckets** - For information about the bucket default + encryption feature, see [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. For + information about the default encryption configuration in directory + buckets, see [Setting default server-side encryption behavior for + directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:GetEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `GetBucketEncryption`: + + - [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) + + - [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketEncryptionOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_ENCRYPTION, [], plugins) + + def get_bucket_intelligent_tiering_configuration( + self, + input: GetBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets the S3 Intelligent-Tiering configuration from the specified bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `GetBucketIntelligentTieringConfiguration` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketIntelligentTieringConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + def get_bucket_inventory_configuration( + self, + input: GetBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketInventoryConfigurationOutput: + """ + Returns an S3 Inventory configuration (identified by the inventory + configuration ID) from the bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). + + The following operations are related to + `GetBucketInventoryConfiguration`: + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketInventoryConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + def get_bucket_lifecycle_configuration( + self, + input: GetBucketLifecycleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketLifecycleConfigurationOutput: + """ + Returns the lifecycle configuration information set on the bucket. For + information about lifecycle configuration, see [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). + + Bucket lifecycle configuration now supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API, which is compatible with the new functionality. The previous + version of the API supported filtering based only on an object key name + prefix, which is supported for general purpose buckets for backward + compatibility. For the related API description, see + [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). + + Note: + Lifecyle configurations for directory buckets only support expiring + objects and cancelling multipart uploads. Expiring of versioned objects, + transitions and tag filters are not supported. + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:GetLifecycleConfiguration` permission. + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:GetLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + `GetBucketLifecycleConfiguration` has the following special error: + + - Error code: `NoSuchLifecycleConfiguration` + + - Description: The lifecycle configuration does not exist. + + - HTTP Status Code: 404 Not Found + + - SOAP Fault Code Prefix: Client + + The following operations are related to + `GetBucketLifecycleConfiguration`: + + - [GetBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) + + - [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) + + - [DeleteBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLifecycleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLifecycleConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_LIFECYCLE_CONFIGURATION, [], plugins + ) + + def get_bucket_location( + self, input: GetBucketLocationInput, plugins: list[Plugin] | None = None + ) -> GetBucketLocationOutput: + """ + Warning: + Using the `GetBucketLocation` operation is no longer a best practice. To + return the Region that a bucket resides in, we recommend that you use + the + [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) + operation instead. For backward compatibility, Amazon S3 continues to + support the `GetBucketLocation` operation. + + Returns the Region the bucket resides in. You set the bucket's Region + using the `LocationConstraint` request parameter in a `CreateBucket` + request. For more information, see + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). + + Note: + In a bucket's home Region, calls to the `GetBucketLocation` operation + are governed by the bucket's policy. In other Regions, the bucket + policy doesn't apply, which means that cross-account access won't be + authorized. However, calls to the `HeadBucket` operation always return + the bucket's location through an HTTP response header, whether access to + the bucket is authorized or not. Therefore, we recommend using the + `HeadBucket` operation for bucket Region discovery and to avoid using + the `GetBucketLocation` operation. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + This operation is not supported for directory buckets. + + The following operations are related to `GetBucketLocation`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLocationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLocationOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_LOCATION, [], plugins) + + def get_bucket_logging( + self, input: GetBucketLoggingInput, plugins: list[Plugin] | None = None + ) -> GetBucketLoggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the logging status of a bucket and the permissions users have to + view and modify that status. + + The following operations are related to `GetBucketLogging`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketLoggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketLoggingOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_LOGGING, [], plugins) + + def get_bucket_metadata_configuration( + self, + input: GetBucketMetadataConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetadataConfigurationOutput: + """ + Retrieves the S3 Metadata configuration for a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `GetBucketMetadataConfiguration` API operation with + V1 or V2 metadata configurations. However, if you try to use the V1 + `GetBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Permissions + + : To use this operation, you must have the + `s3:GetBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + Note: + The IAM policy action name is the same for the V1 and V2 API + operations. + + The following operations are related to + `GetBucketMetadataConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetadataConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetadataConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_METADATA_CONFIGURATION, [], plugins + ) + + def get_bucket_metadata_table_configuration( + self, + input: GetBucketMetadataTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetadataTableConfigurationOutput: + """ + Warning: + We recommend that you retrieve your S3 Metadata configurations by using + the V2 + [GetBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) + API operation. We no longer recommend using the V1 + `GetBucketMetadataTableConfiguration` API operation. + + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + + Retrieves the V1 S3 Metadata configuration for a general purpose bucket. + For more information, see [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Note: + You can use the V2 `GetBucketMetadataConfiguration` API operation with + V1 or V2 metadata table configurations. However, if you try to use the + V1 `GetBucketMetadataTableConfiguration` API operation with V2 + configurations, you will receive an HTTP `405 Method Not Allowed` error. + + Make sure that you update your processes to use the new V2 API + operations (`CreateBucketMetadataConfiguration`, + `GetBucketMetadataConfiguration`, and + `DeleteBucketMetadataConfiguration`) instead of the V1 API operations. + + Permissions + + : To use this operation, you must have the + `s3:GetBucketMetadataTableConfiguration` permission. For more + information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `GetBucketMetadataTableConfiguration`: + + - [CreateBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) + + - [DeleteBucketMetadataTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetadataTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetadataTableConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_METADATA_TABLE_CONFIGURATION, [], plugins + ) + + def get_bucket_metrics_configuration( + self, + input: GetBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketMetricsConfigurationOutput: + """ + Gets a metrics configuration (specified by the metrics configuration ID) + from the bucket. Note that this doesn't include the daily storage + metrics. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to `GetBucketMetricsConfiguration`: + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + - [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketMetricsConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + def get_bucket_notification_configuration( + self, + input: GetBucketNotificationConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketNotificationConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the notification configuration of a bucket. + + If notifications are not enabled on the bucket, the action returns an + empty `NotificationConfiguration` element. + + By default, you must be the bucket owner to read the notification + configuration of a bucket. However, the bucket owner can use a bucket + policy to grant permission to other users to read this configuration + with the `s3:GetBucketNotification` permission. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + For more information about setting and reading the notification + configuration on a bucket, see [Setting Up Notification of Bucket + Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + For more information about bucket policies, see [Using Bucket + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). + + The following action is related to `GetBucketNotification`: + + - [PutBucketNotification](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketNotificationConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketNotificationConfigurationOutput`. + """ + return self._invoke( + input, _models.GET_BUCKET_NOTIFICATION_CONFIGURATION, [], plugins + ) + + def get_bucket_ownership_controls( + self, + input: GetBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> GetBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves `OwnershipControls` for an Amazon S3 bucket. To use this + operation, you must have the `s3:GetBucketOwnershipControls` permission. + For more information about Amazon S3 permissions, see [Specifying + permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). + + Note: + A bucket doesn't have `OwnershipControls` settings in the following + cases: + + - The bucket was created before the `BucketOwnerEnforced` ownership + setting was introduced and you've never explicitly applied this value + + - You've manually deleted the bucket ownership control value using the + `DeleteBucketOwnershipControls` API operation. + + By default, Amazon S3 sets `OwnershipControls` for all newly created + buckets. + + For information about Amazon S3 Object Ownership, see [Using Object + Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). + + The following operations are related to `GetBucketOwnershipControls`: + + - PutBucketOwnershipControls + + - DeleteBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketOwnershipControlsOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_OWNERSHIP_CONTROLS, [], plugins) + + def get_bucket_policy( + self, input: GetBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> GetBucketPolicyOutput: + """ + Returns the policy of a specified bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `GetBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `GetBucketPolicy` permissions, Amazon S3 returns a + `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:GetBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetBucketPolicy` permission + in an IAM identity-based policy instead of a bucket policy. + Cross-account access to this API operation isn't supported. This + operation can only be performed by the Amazon Web Services account + that owns the resource. For more information about directory bucket + policies and permissions, see [Amazon Web Services Identity and + Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Example bucket policies + + : **General purpose buckets example bucket policies** - See [Bucket + policy + examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + **Directory bucket example bucket policies** - See [Example bucket + policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following action is related to `GetBucketPolicy`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketPolicyOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_POLICY, [], plugins) + + def get_bucket_policy_status( + self, input: GetBucketPolicyStatusInput, plugins: list[Plugin] | None = None + ) -> GetBucketPolicyStatusOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves the policy status for an Amazon S3 bucket, indicating whether + the bucket is public. In order to use this operation, you must have the + `s3:GetBucketPolicyStatus` permission. For more information about Amazon + S3 permissions, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + For more information about when Amazon S3 considers a bucket public, see + [The Meaning of + \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `GetBucketPolicyStatus`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketPolicyStatusInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketPolicyStatusOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_POLICY_STATUS, [], plugins) + + def get_bucket_replication( + self, input: GetBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> GetBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the replication configuration of a bucket. + + Note: + It can take a while to propagate the put or delete a replication + configuration to all Amazon S3 systems. Therefore, a get request soon + after put or delete can return a wrong result. + + For information about replication configuration, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + This action requires permissions for the + `s3:GetReplicationConfiguration` action. For more information about + permissions, see [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). + + If you include the `Filter` element in a replication configuration, you + must also include the `DeleteMarkerReplication` and `Priority` elements. + The response also returns those elements. + + For information about `GetBucketReplication` errors, see [List of + replication-related error + codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) + + The following operations are related to `GetBucketReplication`: + + - [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) + + - [DeleteBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketReplicationOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_REPLICATION, [], plugins) + + def get_bucket_request_payment( + self, input: GetBucketRequestPaymentInput, plugins: list[Plugin] | None = None + ) -> GetBucketRequestPaymentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the request payment configuration of a bucket. To use this + version of the operation, you must be the bucket owner. For more + information, see [Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). + + The following operations are related to `GetBucketRequestPayment`: + + - [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketRequestPaymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketRequestPaymentOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_REQUEST_PAYMENT, [], plugins) + + def get_bucket_tagging( + self, input: GetBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> GetBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the tag set associated with the general purpose bucket. + + To use this operation, you must have permission to perform the + `s3: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: `NoSuchTagSet` + + - Description: There is no tag set associated with the bucket. + + The following operations are related to `GetBucketTagging`: + + - [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + + - [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketTaggingOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_TAGGING, [], plugins) + + def get_bucket_versioning( + self, input: GetBucketVersioningInput, plugins: list[Plugin] | None = None + ) -> GetBucketVersioningOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the versioning state of a bucket. + + To retrieve the versioning state of a bucket, you must be the bucket + owner. + + This implementation also returns the MFA Delete status of the versioning + state. If the MFA Delete status is `enabled`, the bucket owner must use + an authentication device to change the versioning state of the bucket. + + The following operations are related to `GetBucketVersioning`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketVersioningInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketVersioningOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_VERSIONING, [], plugins) + + def get_bucket_website( + self, input: GetBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> GetBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the website configuration for a bucket. To host website on + Amazon S3, you can configure a bucket as website by adding a website + configuration. For more information about hosting websites, see [Hosting + Websites on Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + This GET action requires the `S3:GetBucketWebsite` permission. By + default, only the bucket owner can read the bucket website + configuration. However, bucket owners can allow other users to read the + website configuration by writing a bucket policy granting them the + `S3:GetBucketWebsite` permission. + + The following operations are related to `GetBucketWebsite`: + + - [DeleteBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) + + - [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetBucketWebsiteOutput`. + """ + return self._invoke(input, _models.GET_BUCKET_WEBSITE, [], plugins) + + def get_object( + self, input: GetObjectInput, plugins: list[Plugin] | None = None + ) -> GetObjectOutput: + """ + Retrieves an object from Amazon S3. + + In the `GetObject` request, specify the full key name for the object. + + **General purpose buckets** - Both the virtual-hosted-style requests and + the path-style requests are supported. For a virtual hosted-style + request example, if you have the object + `photos/2006/February/sample.jpg`, specify the object key name as + `/photos/2006/February/sample.jpg`. For a path-style request example, if + you have the object `photos/2006/February/sample.jpg` in the bucket + named `examplebucket`, specify the object key name as + `/examplebucket/photos/2006/February/sample.jpg`. For more information + about request types, see [HTTP Host Header Bucket + Specification](https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket) + in the *Amazon S3 User Guide*. + + **Directory buckets** - Only virtual-hosted-style requests are + supported. For a virtual hosted-style request example, if you have the + object `photos/2006/February/sample.jpg` in the bucket named + `amzn-s3-demo-bucket--usw2-az1--x-s3`, specify the object key name as + `/photos/2006/February/sample.jpg`. Also, when you make requests to this + API operation, your requests are sent to the Zonal endpoint. These + endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - You must have the required + permissions in a policy. To use `GetObject`, you must have the + `READ` access to the object (or version). If you grant `READ` access + to the anonymous user, the `GetObject` operation returns the object + without using an authorization header. For more information, see + [Specifying permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + in the *Amazon S3 User Guide*. + + If you include a `versionId` in your request header, you must have + the `s3:GetObjectVersion` permission to access a specific version of + an object. The `s3:GetObject` permission is not required in this + scenario. + + If you request the current version of an object without a specific + `versionId` in the request header, only the `s3:GetObject` + permission is required. The `s3:GetObjectVersion` permission is not + required in this scenario. + + If the object that you request doesn't exist, the error that Amazon + S3 returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Access Denied` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted using SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Storage classes + + : If the object you are retrieving is stored in the S3 Glacier Flexible + Retrieval storage class, the S3 Glacier Deep Archive storage class, + the S3 Intelligent-Tiering Archive Access tier, or the S3 + Intelligent-Tiering Deep Archive Access tier, before you can retrieve + the object you must first restore a copy using + [RestoreObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). + Otherwise, this operation returns an `InvalidObjectState` error. For + information about restoring archived objects, see [Restoring Archived + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + in the *Amazon S3 User Guide*. + + **Directory buckets** - Directory buckets only support + `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in + Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access + storage class) in Dedicated Local Zones. Unsupported storage class + values won't write a destination object and will respond with the + HTTP status code `400 Bad Request`. + + Encryption + + : Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for the `GetObject` requests, if your object uses + server-side encryption with Amazon S3 managed encryption keys + (SSE-S3), server-side encryption with Key Management Service (KMS) + keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web + Services KMS keys (DSSE-KMS). If you include the header in your + `GetObject` requests for the object that uses these types of keys, + you'll get an HTTP `400 Bad Request` error. + + **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. + SSE-C isn't supported. For more information, see [Protecting data + with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Overriding response header values through the request + + : There are times when you want to override certain response header + values of a `GetObject` response. For example, you might override the + `Content-Disposition` response header value through your `GetObject` + request. + + You can override values for a set of response headers. These modified + response header values are included only in a successful response, + that is, when the HTTP status code `200 OK` is returned. The headers + you can override using the following query parameters in the request + are a subset of the headers that Amazon S3 accepts when you create an + object. + + The response headers that you can override for the `GetObject` + response are `Cache-Control`, `Content-Disposition`, + `Content-Encoding`, `Content-Language`, `Content-Type`, and `Expires`. + + To override values for a set of response headers in the `GetObject` + response, you can use the following query parameters in the request. + + - `response-cache-control` + + - `response-content-disposition` + + - `response-content-encoding` + + - `response-content-language` + + - `response-content-type` + + - `response-expires` + + Note: + When you use these parameters, you must sign the request by using + either an Authorization header or a presigned URL. These parameters + cannot be used with an unsigned (anonymous) request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `GetObject`: + + - [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectOutput`. + """ + return self._invoke(input, _models.GET_OBJECT, [], plugins) + + def get_object_acl( + self, input: GetObjectAclInput, plugins: list[Plugin] | None = None + ) -> GetObjectAclOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the access control list (ACL) of an object. To use this + operation, you must have `s3:GetObjectAcl` permissions or `READ_ACP` + access to the object. For more information, see [Mapping of ACL + permissions and access policy + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) + in the *Amazon S3 User Guide* + + This functionality is not supported for Amazon S3 on Outposts. + + By default, GET returns ACL information about the current version of an + object. To return ACL information about a different version, use the + versionId subresource. + + Note: + If your bucket uses the bucket owner enforced setting for S3 Object + Ownership, requests to read ACLs are still supported and return the + `bucket-owner-full-control` ACL with the owner being the account that + created the bucket. For more information, see [Controlling object + ownership and disabling + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + The following operations are related to `GetObjectAcl`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAclOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_ACL, [], plugins) + + def get_object_annotation( + self, input: GetObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> GetObjectAnnotationOutput: + """ + Retrieves an annotation from an Amazon S3 object. To use this operation, + you must have the `s3:GetObjectAnnotation` permission. + + If checksum mode is enabled via the `x-amz-checksum-mode` header, Amazon + S3 returns the stored checksum in the response headers for client-side + validation. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `GetObjectAnnotation`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `GetObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAnnotationOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_ANNOTATION, [], plugins) + + def get_object_attributes( + self, input: GetObjectAttributesInput, plugins: list[Plugin] | None = None + ) -> GetObjectAttributesOutput: + """ + Retrieves all of the metadata from an object without returning the + object itself. This operation is useful if you're interested only in an + object's metadata. + + `GetObjectAttributes` combines the functionality of `HeadObject` and + `ListParts`. All of the data returned with both of those individual + calls can be returned with a single call to `GetObjectAttributes`. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To use + `GetObjectAttributes`, you must have READ access to the object. + + The other permissions that you need to use this operation depend on + whether the bucket is versioned and if a version ID is passed in the + `GetObjectAttributes` request. + + - If you pass a version ID in your request, you need both the + `s3:GetObjectVersion` and `s3:GetObjectVersionAttributes` + permissions. + + - If you do not pass a version ID in your request, you need the + `s3:GetObject` and `s3:GetObjectAttributes` permissions. + + For more information, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + in the *Amazon S3 User Guide*. + + If the object that you request does not exist, the error Amazon S3 + returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` (\"no such key\") + error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Forbidden` (\"access denied\") + error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Encryption + + : Note: + Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for `HEAD` requests if your object uses server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), + dual-layer server-side encryption with Amazon Web Services KMS keys + (DSSE-KMS), or server-side encryption with Amazon S3 managed + encryption keys (SSE-S3). The `x-amz-server-side-encryption` header is + used when you `PUT` an object to S3 and want to specify the encryption + method. If you include this header in a `GET` request for an object + that uses these types of keys, you'll get an HTTP `400 Bad Request` + error. It's because the encryption method can't be changed when you + retrieve the object. + If you encrypted an object when you stored the object in Amazon S3 by + using server-side encryption with customer-provided encryption keys + (SSE-C), then when you retrieve the metadata from the object, you must + use the following headers. These headers provide the server with the + encryption key required to retrieve the object's metadata. The + headers are: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory bucket permissions** - For directory buckets, there are + only two supported options for server-side encryption: server-side + encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and + server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We + recommend that the bucket's default encryption uses the desired + encryption configuration and you don't override the bucket default + encryption in your `CreateSession` requests or `PUT` object requests. + Then, new objects are automatically encrypted with the desired + encryption settings. For more information, see [Protecting data with + server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + Versioning + + : **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. For this API operation, only the `null` value of + the version ID is supported by directory buckets. You can only specify + `null` to the `versionId` query parameter in the request. + + Conditional request headers + + : Consider the following when using request headers: + + - If both of the `If-Match` and `If-Unmodified-Since` headers are + present in the request as follows, then Amazon S3 returns the HTTP + status code `200 OK` and the data requested: + + - `If-Match` condition evaluates to `true`. + + - `If-Unmodified-Since` condition evaluates to `false`. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + + - If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows, then Amazon S3 returns the HTTP + status code `304 Not Modified`: + + - `If-None-Match` condition evaluates to `false`. + + - `If-Modified-Since` condition evaluates to `true`. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following actions are related to `GetObjectAttributes`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + - [GetObjectLegalHold](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html) + + - [GetObjectLockConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html) + + - [GetObjectRetention](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html) + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + - [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectAttributesInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectAttributesOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_ATTRIBUTES, [], plugins) + + def get_object_legal_hold( + self, input: GetObjectLegalHoldInput, plugins: list[Plugin] | None = None + ) -> GetObjectLegalHoldOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets an object's current legal hold status. For more information, see + [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectLegalHold`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectLegalHoldInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectLegalHoldOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_LEGAL_HOLD, [], plugins) + + def get_object_lock_configuration( + self, + input: GetObjectLockConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> GetObjectLockConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Gets the Object Lock configuration for a 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + The following action is related to `GetObjectLockConfiguration`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectLockConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectLockConfigurationOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_LOCK_CONFIGURATION, [], plugins) + + def get_object_retention( + self, input: GetObjectRetentionInput, plugins: list[Plugin] | None = None + ) -> GetObjectRetentionOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves an object's retention settings. For more information, see + [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectRetention`: + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectRetentionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectRetentionOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_RETENTION, [], plugins) + + def get_object_tagging( + self, input: GetObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> GetObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns the tag-set of an object. You send the GET request against the + tagging subresource associated with the object. + + To use this operation, you must have permission to perform the + `s3:GetObjectTagging` action. By default, the GET action returns + information about current version of an object. For a versioned bucket, + you can have multiple versions of an object in your bucket. To retrieve + tags of any other version, use the versionId query parameter. You also + need permission for the `s3:GetObjectVersionTagging` action. + + By default, the bucket owner has this permission and can grant this + permission to others. + + For information about the Amazon S3 object tagging feature, see [Object + Tagging](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). + + The following actions are related to `GetObjectTagging`: + + - [DeleteObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectTaggingOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_TAGGING, [], plugins) + + def get_object_torrent( + self, input: GetObjectTorrentInput, plugins: list[Plugin] | None = None + ) -> GetObjectTorrentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns torrent files from a bucket. BitTorrent can save you bandwidth + when you're distributing large files. + + Note: + You can get torrent only for objects that are less than 5 GB in size, + and that are not encrypted using server-side encryption with a + customer-provided encryption key. + + To use GET, you must have READ access to the object. + + This functionality is not supported for Amazon S3 on Outposts. + + The following action is related to `GetObjectTorrent`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetObjectTorrentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetObjectTorrentOutput`. + """ + return self._invoke(input, _models.GET_OBJECT_TORRENT, [], plugins) + + def get_public_access_block( + self, input: GetPublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> GetPublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + Retrieves the `PublicAccessBlock` configuration for an Amazon S3 bucket. + This operation returns the bucket-level configuration only. To + understand the effective public access behavior, you must also consider + account-level settings (which may inherit from organization-level + policies). To use this operation, you must have the + `s3:GetBucketPublicAccessBlock` permission. For more information about + Amazon S3 permissions, see [Specifying Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + Warning: + 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. Account-level settings automatically inherit from + organization-level policies when present. If the `PublicAccessBlock` + settings 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\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `GetPublicAccessBlock`: + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + - [PutPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `GetPublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `GetPublicAccessBlockOutput`. + """ + return self._invoke(input, _models.GET_PUBLIC_ACCESS_BLOCK, [], plugins) + + def head_bucket( + self, input: HeadBucketInput, plugins: list[Plugin] | None = None + ) -> HeadBucketOutput: + """ + You can use this operation to determine if a bucket exists and if you + have permission to access it. The action returns a `200 OK` HTTP status + code if the bucket exists and you have permission to access it. You can + make a `HeadBucket` call on any bucket name to any Region in the + partition, and regardless of the permissions on the bucket, you will + receive a response header with the correct bucket location so that you + can then make a proper, signed request to the appropriate Regional + endpoint. + + Note: + If the bucket doesn't exist or you don't have permission to access it, + the `HEAD` request returns a generic `400 Bad Request`, `403 Forbidden`, + or `404 Not Found` HTTP status code. A message body isn't included, so + you can't determine the exception beyond these HTTP response codes. + + Authentication and authorization + + : **General purpose buckets** - Request to public buckets that grant the + s3:ListBucket permission publicly do not need to be signed. All other + `HeadBucket` requests must be authenticated and signed by using IAM + credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use IAM credentials to authenticate + and authorize your access to the `HeadBucket` API operation, instead + of using the temporary security credentials through the + `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : - **General purpose bucket permissions** - To use this operation, you + must have permissions to perform the `s3:ListBucket` action. The + bucket owner has this permission by default and can grant this + permission to others. For more information about permissions, see + [Managing access permissions to your Amazon S3 + resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have the + **`s3express:CreateSession`** permission in the `Action` element of + a policy. If no session mode is specified, the session will be + created with the maximum allowable privilege, attempting `ReadWrite` + first, then `ReadOnly` if `ReadWrite` is not permitted. If you want + to explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the bucket. + + For more information about example bucket policies, see [Example + bucket policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Note: + You must make requests for this API operation to the Zonal endpoint. + These endpoints support virtual-hosted-style requests in the format + `https://`*`bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `HeadBucketInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `HeadBucketOutput`. + """ + return self._invoke(input, _models.HEAD_BUCKET, [], plugins) + + def head_object( + self, input: HeadObjectInput, plugins: list[Plugin] | None = None + ) -> HeadObjectOutput: + """ + The `HEAD` operation retrieves metadata from an object without returning + the object itself. This operation is useful if you're interested only + in an object's metadata. + + Note: + A `HEAD` request has the same options as a `GET` operation on an object. + The response is identical to the `GET` response except that there is no + response body. Because of this, if the `HEAD` request generates an + error, it returns a generic code, such as `400 Bad Request`, + `403 Forbidden`, `404 Not Found`, `405 Method Not Allowed`, + `412 Precondition Failed`, or `304 Not Modified`. It's not possible to + retrieve the exact exception of these error codes. + + Request headers are limited to 8 KB in size. For more information, see + [Common Request + Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). + + Permissions + + : - **General purpose bucket permissions** - To use `HEAD`, you must + have the `s3:GetObject` permission. You need the relevant read + object (or version) permission for this operation. For more + information, see [Actions, resources, and condition keys for Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) + in the *Amazon S3 User Guide*. For more information about the + permissions to S3 API operations by S3 resource types, see [Required + permissions for Amazon S3 API + operations](/AmazonS3/latest/userguide/using-with-s3-policy-actions.html) + in the *Amazon S3 User Guide*. + + If the object you request doesn't exist, the error that Amazon S3 + returns depends on whether you also have the `s3:ListBucket` + permission. + + - If you have the `s3:ListBucket` permission on the bucket, Amazon + S3 returns an HTTP status code `404 Not Found` error. + + - If you don't have the `s3:ListBucket` permission, Amazon S3 + returns an HTTP status code `403 Forbidden` error. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If you enable `x-amz-checksum-mode` in the request and the object is + encrypted with Amazon Web Services Key Management Service (Amazon + Web Services KMS), you must also have the `kms:GenerateDataKey` and + `kms:Decrypt` permissions in IAM identity-based policies and KMS key + policies for the KMS key to retrieve the checksum of the object. + + Encryption + + : Note: + Encryption request headers, like `x-amz-server-side-encryption`, + should not be sent for `HEAD` requests if your object uses server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), + dual-layer server-side encryption with Amazon Web Services KMS keys + (DSSE-KMS), or server-side encryption with Amazon S3 managed + encryption keys (SSE-S3). The `x-amz-server-side-encryption` header is + used when you `PUT` an object to S3 and want to specify the encryption + method. If you include this header in a `HEAD` request for an object + that uses these types of keys, you'll get an HTTP `400 Bad Request` + error. It's because the encryption method can't be changed when you + retrieve the object. + If you encrypt an object by using server-side encryption with + customer-provided encryption keys (SSE-C) when you store the object in + Amazon S3, then when you retrieve the metadata from the object, you + must use the following headers to provide the encryption key for the + server to be able to retrieve the object's metadata. The headers are: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory bucket** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. + SSE-C isn't supported. For more information, see [Protecting data + with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Versioning + + : - If the current version of the object is a delete marker, Amazon S3 + behaves as if the object was deleted and includes + `x-amz-delete-marker: true` in the response. + + - If the specified version is a delete marker, the response returns a + `405 Method Not Allowed` error and the `Last-Modified: timestamp` + response header. + + Note: + - **Directory buckets** - Delete marker is not supported for directory + buckets. + + - **Directory buckets** - S3 Versioning isn't enabled and supported + for directory buckets. For this API operation, only the `null` value + of the version ID is supported by directory buckets. You can only + specify `null` to the `versionId` query parameter in the request. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Note: + For directory buckets, you must make requests for this API operation + to the Zonal endpoint. These endpoints support virtual-hosted-style + requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + The following actions are related to `HeadObject`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `HeadObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `HeadObjectOutput`. + """ + return self._invoke(input, _models.HEAD_OBJECT, [], plugins) + + def list_bucket_analytics_configurations( + self, + input: ListBucketAnalyticsConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketAnalyticsConfigurationsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Lists the analytics configurations for the bucket. You can have up to + 1,000 analytics configurations per bucket. + + This action supports list pagination and does not return more than 100 + configurations at a time. You should always check the `IsTruncated` + element in the response. If there are no more configurations to list, + `IsTruncated` is set to false. If there are more configurations to list, + `IsTruncated` is set to true, and there will be a value in + `NextContinuationToken`. You use the `NextContinuationToken` value to + continue the pagination of the list by passing the value in + continuation-token in the request to `GET` the next page. + + To use this operation, you must have permissions to perform the + `s3:GetAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + For information about Amazon S3 analytics feature, see [Amazon S3 + Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + The following operations are related to + `ListBucketAnalyticsConfigurations`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [PutBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketAnalyticsConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketAnalyticsConfigurationsOutput`. + """ + return self._invoke( + input, _models.LIST_BUCKET_ANALYTICS_CONFIGURATIONS, [], plugins + ) + + def list_bucket_intelligent_tiering_configurations( + self, + input: ListBucketIntelligentTieringConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketIntelligentTieringConfigurationsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Lists the S3 Intelligent-Tiering configuration from the specified + bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `ListBucketIntelligentTieringConfigurations` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [PutBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketIntelligentTieringConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketIntelligentTieringConfigurationsOutput`. + """ + return self._invoke( + input, _models.LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS, [], plugins + ) + + def list_bucket_inventory_configurations( + self, + input: ListBucketInventoryConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketInventoryConfigurationsOutput: + """ + Returns a list of S3 Inventory configurations for the bucket. You can + have up to 1,000 inventory configurations per bucket. + + This action supports list pagination and does not return more than 100 + configurations at a time. Always check the `IsTruncated` element in the + response. If there are no more configurations to list, `IsTruncated` is + set to false. If there are more configurations to list, `IsTruncated` is + set to true, and there is a value in `NextContinuationToken`. You use + the `NextContinuationToken` value to continue the pagination of the list + by passing the value in continuation-token in the request to `GET` the + next page. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetInventoryConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about the Amazon S3 inventory feature, see [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) + + The following operations are related to + `ListBucketInventoryConfigurations`: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [PutBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketInventoryConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketInventoryConfigurationsOutput`. + """ + return self._invoke( + input, _models.LIST_BUCKET_INVENTORY_CONFIGURATIONS, [], plugins + ) + + def list_bucket_metrics_configurations( + self, + input: ListBucketMetricsConfigurationsInput, + plugins: list[Plugin] | None = None, + ) -> ListBucketMetricsConfigurationsOutput: + """ + Lists the metrics configurations for the bucket. The metrics + configurations are only for the request metrics of the bucket and do not + provide information on daily storage metrics. You can have up to 1,000 + configurations per bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + This action supports list pagination and does not return more than 100 + configurations at a time. Always check the `IsTruncated` element in the + response. If there are no more configurations to list, `IsTruncated` is + set to false. If there are more configurations to list, `IsTruncated` is + set to true, and there is a value in `NextContinuationToken`. You use + the `NextContinuationToken` value to continue the pagination of the list + by passing the value in `continuation-token` in the request to `GET` the + next page. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:GetMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:GetMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:GetMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For more information about metrics configurations and CloudWatch request + metrics, see [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to + `ListBucketMetricsConfigurations`: + + - [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketMetricsConfigurationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketMetricsConfigurationsOutput`. + """ + return self._invoke( + input, _models.LIST_BUCKET_METRICS_CONFIGURATIONS, [], plugins + ) + + def list_buckets( + self, input: ListBucketsInput | None = None, plugins: list[Plugin] | None = None + ) -> ListBucketsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns a list of all buckets owned by the authenticated sender of the + request. To grant IAM permission to use this operation, you must add the + `s3:ListAllMyBuckets` policy action. + + For information about Amazon S3 buckets, see [Creating, configuring, and + working with Amazon S3 + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). + + Warning: + We strongly recommend using only paginated `ListBuckets` requests. + Unpaginated `ListBuckets` requests are only supported for Amazon Web + Services accounts set to the default general purpose bucket quota of + 10,000. If you have an approved general purpose bucket quota above + 10,000, you must send paginated `ListBuckets` requests to list your + account's buckets. All unpaginated `ListBuckets` requests will be + rejected for Amazon Web Services accounts with a general purpose bucket + quota greater than 10,000. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListBucketsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListBucketsOutput`. + """ + return self._invoke(input, _models.LIST_BUCKETS, [], plugins) + + def list_directory_buckets( + self, + input: ListDirectoryBucketsInput | None = None, + plugins: list[Plugin] | None = None, + ) -> ListDirectoryBucketsOutput: + """ + Returns a list of all Amazon S3 directory buckets owned by the + authenticated sender of the request. For more information about + directory buckets, see [Directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : You must have the `s3express:ListAllMyDirectoryBuckets` permission in + an IAM identity-based policy instead of a bucket policy. Cross-account + access to this API operation isn't supported. This operation can only + be performed by the Amazon Web Services account that owns the + resource. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + Note: + The `BucketRegion` response element is not part of the + `ListDirectoryBuckets` Response Syntax. + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListDirectoryBucketsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListDirectoryBucketsOutput`. + """ + return self._invoke(input, _models.LIST_DIRECTORY_BUCKETS, [], plugins) + + def list_multipart_uploads( + self, input: ListMultipartUploadsInput, plugins: list[Plugin] | None = None + ) -> ListMultipartUploadsOutput: + """ + This operation lists in-progress multipart uploads in a bucket. An + in-progress multipart upload is a multipart upload that has been + initiated by the `CreateMultipartUpload` request, but has not yet been + completed or aborted. + + Note: + **Directory buckets** - If multipart uploads in a directory bucket are + in progress, you can't delete the bucket until all the in-progress + multipart uploads are aborted or completed. To delete these in-progress + multipart uploads, use the `ListMultipartUploads` operation to list the + in-progress multipart uploads in the bucket and use the + `AbortMultipartUpload` operation to abort all the in-progress multipart + uploads. + + The `ListMultipartUploads` operation returns a maximum of 1,000 + multipart uploads in the response. The limit of 1,000 multipart uploads + is also the default value. You can further limit the number of uploads + in a response by specifying the `max-uploads` request parameter. If + there are more than 1,000 multipart uploads that satisfy your + `ListMultipartUploads` request, the response returns an `IsTruncated` + element with the value of `true`, a `NextKeyMarker` element, and a + `NextUploadIdMarker` element. To list the remaining multipart uploads, + you need to make subsequent `ListMultipartUploads` requests. In these + requests, include two query parameters: `key-marker` and + `upload-id-marker`. Set the value of `key-marker` to the `NextKeyMarker` + value from the previous response. Similarly, set the value of + `upload-id-marker` to the `NextUploadIdMarker` value from the previous + response. + + Note: + **Directory buckets** - The `upload-id-marker` element and the + `NextUploadIdMarker` element aren't supported by directory buckets. To + list the additional multipart uploads, you only need to set the value of + `key-marker` to the `NextKeyMarker` value from the previous response. + + For more information about multipart uploads, see [Uploading Objects + Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Sorting of multipart uploads in response + + : - **General purpose bucket** - In the `ListMultipartUploads` response, + the multipart uploads are sorted based on two criteria: + + - Key-based sorting - Multipart uploads are initially sorted in + ascending order based on their object keys. + + - Time-based sorting - For uploads that share the same object key, + they are further sorted in ascending order based on the upload + initiation time. Among uploads with the same key, the one that was + initiated first will appear before the ones that were initiated + later. + + - **Directory bucket** - In the `ListMultipartUploads` response, the + multipart uploads aren't sorted lexicographically based on the + object keys. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `ListMultipartUploads`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListMultipartUploadsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListMultipartUploadsOutput`. + """ + return self._invoke(input, _models.LIST_MULTIPART_UPLOADS, [], plugins) + + def list_object_annotations( + self, input: ListObjectAnnotationsInput, plugins: list[Plugin] | None = None + ) -> ListObjectAnnotationsOutput: + """ + Lists the annotations attached to an Amazon S3 object. Results are + paginated, with a maximum of 1,000 annotations per object. Use the + `AnnotationPrefix` parameter to filter the results by name prefix. + + To use this operation, you must have the `s3:ListObjectAnnotations` + permission. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `ListObjectAnnotations`: + + - [PutObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html) + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `ListObjectAnnotationsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectAnnotationsOutput`. + """ + return self._invoke(input, _models.LIST_OBJECT_ANNOTATIONS, [], plugins) + + def list_objects( + self, input: ListObjectsInput, plugins: list[Plugin] | None = None + ) -> ListObjectsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns some or all (up to 1,000) of the objects in a bucket. You can + use the request parameters as selection criteria to return a subset of + the objects in a bucket. A 200 OK response can contain valid or invalid + XML. Be sure to design your application to parse the contents of the + response and handle it appropriately. + + Warning: + This action has been revised. We recommend that you use the newer + version, + [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), + when developing applications. For backward compatibility, Amazon S3 + continues to support `ListObjects`. + + The following operations are related to `ListObjects`: + + - [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectsOutput`. + """ + return self._invoke(input, _models.LIST_OBJECTS, [], plugins) + + def list_objects_v2( + self, input: ListObjectsV2Input, plugins: list[Plugin] | None = None + ) -> ListObjectsV2Output: + """ + Returns some or all (up to 1,000) of the objects in a bucket with each + request. You can use the request parameters as selection criteria to + return a subset of the objects in a bucket. A `200 OK` response can + contain valid or invalid XML. Make sure to design your application to + parse the contents of the response and handle it appropriately. For more + information about listing objects, see [Listing object keys + programmatically](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) + in the *Amazon S3 User Guide*. To get a list of your buckets, see + [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). + + Note: + - **General purpose bucket** - For general purpose buckets, + `ListObjectsV2` doesn't return prefixes that are related only to + in-progress multipart uploads. + + - **Directory buckets** - For directory buckets, `ListObjectsV2` + response includes the prefixes that are related only to in-progress + multipart uploads. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To use this operation, you + must have READ access to the bucket. You must have permission to + perform the `s3:ListBucket` action. The bucket owner has this + permission by default and can grant this permission to others. For + more information about permissions, see [Permissions Related to + Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + Sorting order of returned objects + + : - **General purpose bucket** - For general purpose buckets, + `ListObjectsV2` returns objects in lexicographical order based on + their key names. + + - **Directory bucket** - For directory buckets, `ListObjectsV2` does + not return objects in lexicographical order. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + This section describes the latest revision of this action. We recommend + that you use this revised API operation for application development. For + backward compatibility, Amazon S3 continues to support the prior version + of this API operation, + [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html). + + The following operations are related to `ListObjectsV2`: + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectsV2Input`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectsV2Output`. + """ + return self._invoke(input, _models.LIST_OBJECTS_V2, [], plugins) + + def list_object_versions( + self, input: ListObjectVersionsInput, plugins: list[Plugin] | None = None + ) -> ListObjectVersionsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Returns metadata about all versions of the objects in a bucket. You can + also use request parameters as selection criteria to return metadata + about a subset of all the object versions. + + Warning: + To use this operation, you must have permission to perform the + `s3:ListBucketVersions` action. Be aware of the name difference. + Note: + A `200 OK` response can contain valid or invalid XML. Make sure to + design your application to parse the contents of the response and handle + it appropriately. + + To use this operation, you must have READ access to the bucket. + + The following operations are related to `ListObjectVersions`: + + - [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListObjectVersionsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListObjectVersionsOutput`. + """ + return self._invoke(input, _models.LIST_OBJECT_VERSIONS, [], plugins) + + def list_parts( + self, input: ListPartsInput, plugins: list[Plugin] | None = None + ) -> ListPartsOutput: + """ + Lists the parts that have been uploaded for a specific multipart upload. + + To use this operation, you must provide the `upload ID` in the request. + You obtain this uploadID by sending the initiate multipart upload + request through + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). + + The `ListParts` request returns a maximum of 1,000 uploaded parts. The + limit of 1,000 parts is also the default value. You can restrict the + number of parts in a response by specifying the `max-parts` request + parameter. If your multipart upload consists of more than 1,000 parts, + the response returns an `IsTruncated` field with the value of `true`, + and a `NextPartNumberMarker` element. To list remaining uploaded parts, + in subsequent `ListParts` requests, include the `part-number-marker` + query string parameter and set its value to the `NextPartNumberMarker` + field value from the previous response. + + For more information on multipart uploads, see [Uploading Objects Using + Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - For information about + permissions required to use the multipart upload API, see [Multipart + Upload and + Permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + in the *Amazon S3 User Guide*. + + If the upload was created using server-side encryption with Key + Management Service (KMS) keys (SSE-KMS) or dual-layer server-side + encryption with Amazon Web Services KMS keys (DSSE-KMS), you must + have permission to the `kms:Decrypt` action for the `ListParts` + request to succeed. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `ListParts`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [GetObjectAttributes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `ListPartsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `ListPartsOutput`. + """ + return self._invoke(input, _models.LIST_PARTS, [], plugins) + + def put_bucket_abac( + self, input: PutBucketAbacInput, plugins: list[Plugin] | None = None + ) -> PutBucketAbacOutput: + """ + Sets the attribute-based access control (ABAC) property of the general + purpose bucket. You must have `s3:PutBucketABAC` permission to perform + this action. When you enable ABAC, you can use tags for access control + on your buckets. Additionally, when ABAC is enabled, you must use the + [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) + and + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + actions to manage tags on your buckets. You can nolonger use the + [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) + and + [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + actions to tag your bucket. For more information, see [Enabling ABAC in + general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html). + + Args: + input: + An instance of `PutBucketAbacInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAbacOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_ABAC, [], plugins) + + def put_bucket_accelerate_configuration( + self, + input: PutBucketAccelerateConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketAccelerateConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the accelerate configuration of an existing bucket. Amazon S3 + Transfer Acceleration is a bucket-level feature that enables you to + perform faster data transfers to Amazon S3. + + To use this operation, you must have permission to perform the + `s3:PutAccelerateConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + The Transfer Acceleration state of a bucket can be set to one of the + following two values: + + - Enabled -- Enables accelerated data transfers to the bucket. + + - Suspended -- Disables accelerated data transfers to the bucket. + + The + [GetBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) + action returns the transfer acceleration state of a bucket. + + After setting the Transfer Acceleration state of a bucket to Enabled, it + might take up to thirty minutes before the data transfer rates to the + bucket increase. + + The name of the bucket used for Transfer Acceleration must be + DNS-compliant and must not contain periods (\".\"). + + For more information about transfer acceleration, see [Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). + + The following operations are related to + `PutBucketAccelerateConfiguration`: + + - [GetBucketAccelerateConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAccelerateConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAccelerateConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_ACCELERATE_CONFIGURATION, [], plugins + ) + + def put_bucket_acl( + self, input: PutBucketAclInput, plugins: list[Plugin] | None = None + ) -> PutBucketAclOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + Sets the permissions on an existing bucket using access control lists + (ACL). For more information, see [Using + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). + To set the ACL of a bucket, you must have the `WRITE_ACP` permission. + + You can use one of the following two ways to set a bucket's + permissions: + + - Specify the ACL in the request body + + - Specify permissions using request headers + + Note: + You cannot specify access permission using both the body and the request + headers. + + Depending on your application needs, you may choose to set the ACL on a + bucket 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, then you can continue to use that approach. + + Warning: + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Permissions + + : You can set access permissions by 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-acl`. If you use this + header, you cannot use other access control-specific headers in your + request. For more information, see [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + + - 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 + the `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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-write` header grants create, + overwrite, and delete objects permission to LogDelivery group + predefined by Amazon S3 and two Amazon Web Services accounts + identified by their email addresses. + + `x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", id="555566667777" ` + + You can use either a canned ACL or specify access permissions + explicitly. You cannot do both. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (using request elements) in the following ways. For examples of + how to specify these grantee values in JSON format, see the Amazon Web + Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + DisplayName is optional and ignored in the request + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + - By Email address: + + ``{=html}``{=html}`<>Grantees@email.com<>```{=html}`&```{=html} + + The grantee is resolved to the CanonicalUser and, in a response to a + GET Object acl request, appears as the CanonicalUser. + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + The following operations are related to `PutBucketAcl`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAclOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_ACL, [], plugins) + + def put_bucket_analytics_configuration( + self, + input: PutBucketAnalyticsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketAnalyticsConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets an analytics configuration for the bucket (specified by the + analytics configuration ID). You can have up to 1,000 analytics + configurations per bucket. + + You can choose to have storage class analysis export analysis reports + sent to a comma-separated values (CSV) flat file. See the `DataExport` + request element. Reports are updated daily and are based on the object + filters that you configure. When selecting data export, you specify a + destination bucket and an optional destination prefix where the file is + written. You can export the data to a destination bucket in a different + account. However, the destination bucket must be in the same Region as + the bucket that you are making the PUT analytics configuration to. For + more information, see [Amazon S3 Analytics -- Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). + + Warning: + You must create a bucket policy on the destination bucket where the + exported file is written to grant permissions to Amazon S3 to write + objects to the bucket. For an example policy, see [Granting Permissions + for Amazon S3 Inventory and Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). + + To use this operation, you must have permissions to perform the + `s3:PutAnalyticsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions Related + to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + `PutBucketAnalyticsConfiguration` has the following special errors: + + - - *HTTP Error: HTTP 400 Bad Request* + + - *Code: InvalidArgument* + + - *Cause: Invalid argument.* + + - - *HTTP Error: HTTP 400 Bad Request* + + - *Code: TooManyConfigurations* + + - *Cause: You are attempting to create a new configuration but have + already reached the 1,000-configuration limit.* + + - - *HTTP Error: HTTP 403 Forbidden* + + - *Code: AccessDenied* + + - *Cause: You are not the owner of the specified bucket, or you do not + have the s3:PutAnalyticsConfiguration bucket permission to set the + configuration on the bucket.* + + The following operations are related to + `PutBucketAnalyticsConfiguration`: + + - [GetBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) + + - [DeleteBucketAnalyticsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) + + - [ListBucketAnalyticsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketAnalyticsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketAnalyticsConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_ANALYTICS_CONFIGURATION, [], plugins + ) + + def put_bucket_cors( + self, input: PutBucketCorsInput, plugins: list[Plugin] | None = None + ) -> PutBucketCorsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the `cors` configuration for your bucket. If the configuration + exists, Amazon S3 replaces it. + + To use this operation, you must be allowed to perform the + `s3:PutBucketCORS` action. By default, the bucket owner has this + permission and can grant it to others. + + You set this configuration on a bucket so that the bucket can service + cross-origin requests. For example, you might want to enable a request + whose origin is `http://www.example.com` to access your Amazon S3 bucket + at `my.example.bucket.com` by using the browser's `XMLHttpRequest` + capability. + + To enable cross-origin resource sharing (CORS) on a bucket, you add the + `cors` subresource to the bucket. The `cors` subresource is an XML + document in which you configure rules that identify origins and the HTTP + methods that can be executed on your bucket. The document is limited to + 64 KB in size. + + When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS + request) against a bucket, it evaluates the `cors` configuration on the + bucket and uses the first `CORSRule` rule that matches the incoming + browser request to enable a cross-origin request. For a rule to match, + the following conditions must be met: + + - The request's `Origin` header must match `AllowedOrigin` elements. + + - The request method (for example, GET, PUT, HEAD, and so on) or the + `Access-Control-Request-Method` header in case of a pre-flight + `OPTIONS` request must be one of the `AllowedMethod` elements. + + - Every header specified in the `Access-Control-Request-Headers` request + header of a pre-flight request must match an `AllowedHeader` element. + + For more information about CORS, go to [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + + The following operations are related to `PutBucketCors`: + + - [GetBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) + + - [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) + + - [RESTOPTIONSobject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketCorsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketCorsOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_CORS, [], plugins) + + def put_bucket_encryption( + self, input: PutBucketEncryptionInput, plugins: list[Plugin] | None = None + ) -> PutBucketEncryptionOutput: + """ + This operation configures default encryption and Amazon S3 Bucket Keys + for an existing bucket. You can also [block encryption + types](https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html) + using this operation. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + By default, all buckets have a default encryption configuration that + uses server-side encryption with Amazon S3 managed keys (SSE-S3). + + Note: + - **General purpose buckets** + + - You can optionally configure default encryption for a bucket by + using server-side encryption with Key Management Service (KMS) keys + (SSE-KMS) or dual-layer server-side encryption with Amazon Web + Services KMS keys (DSSE-KMS). If you specify default encryption by + using SSE-KMS, you can also configure [Amazon S3 Bucket + Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html). + For information about the bucket default encryption feature, see + [Amazon S3 Bucket Default + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + in the *Amazon S3 User Guide*. + + - If you use PutBucketEncryption to set your [default bucket + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + to SSE-KMS, you should verify that your KMS key ID is correct. + Amazon S3 doesn't validate the KMS key ID provided in + PutBucketEncryption requests. + + - **Directory buckets** - You can optionally configure default + encryption for a bucket by using server-side encryption with Key + Management Service (KMS) keys (SSE-KMS). + + - We recommend that the bucket's default encryption uses the desired + encryption configuration and you don't override the bucket default + encryption in your `CreateSession` requests or `PUT` object + requests. Then, new objects are automatically encrypted with the + desired encryption settings. For more information about the + encryption overriding behaviors in directory buckets, see + [Specifying server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + - Your SSE-KMS configuration can only support 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. + + - S3 Bucket Keys are always enabled for `GET` and `PUT` operations in + a directory bucket and can't be disabled. S3 Bucket Keys aren't + supported, when you copy SSE-KMS encrypted objects from general + purpose buckets to directory buckets, from directory buckets to + general purpose buckets, or between directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy + request is made for a KMS-encrypted object. + + - When you specify an [KMS customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + for encryption in your directory bucket, only use the key ID or key + ARN. The key alias format of the KMS key isn't supported. + + - For directory buckets, if you use PutBucketEncryption to set your + [default bucket + encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + to SSE-KMS, Amazon S3 validates the KMS key ID provided in + PutBucketEncryption requests. + Warning: + If you're specifying a customer managed KMS key, we recommend using a + fully qualified KMS key ARN. If you use a KMS key alias instead, then + KMS resolves the key within the requester's account. This behavior can + result in data that's encrypted with a KMS key that belongs to the + requester, and not the bucket owner. + + Also, this action requires Amazon Web Services Signature Version 4. For + more information, see [Authenticating Requests (Amazon Web Services + Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). + + Permissions + + : - **General purpose bucket permissions** - The + `s3:PutEncryptionConfiguration` permission is required in a policy. + The bucket owner has this permission by default. The bucket owner + can grant this permission to others. For more information about + permissions, see [Permissions Related to Bucket + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutEncryptionConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + To set a directory bucket default encryption with SSE-KMS, you must + also have the `kms:GenerateDataKey` and the `kms:Decrypt` + permissions in IAM identity-based policies and KMS key policies for + the target KMS key. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `PutBucketEncryption`: + + - [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) + + - [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketEncryptionOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_ENCRYPTION, [], plugins) + + def put_bucket_intelligent_tiering_configuration( + self, + input: PutBucketIntelligentTieringConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketIntelligentTieringConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Puts a S3 Intelligent-Tiering configuration to the specified bucket. You + can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. + + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without performance impact or operational overhead. S3 + Intelligent-Tiering delivers automatic cost savings in three low latency + and high throughput access tiers. To get the lowest storage cost on data + that can be accessed in minutes to hours, you can choose to activate + additional archiving capabilities. + + The S3 Intelligent-Tiering storage class is the ideal storage class for + data with unknown, changing, or unpredictable access patterns, + independent of object size or retention period. If the size of an object + is less than 128 KB, it is not monitored and not eligible for + auto-tiering. Smaller objects can be stored, but they are always charged + at the Frequent Access tier rates in the S3 Intelligent-Tiering storage + class. + + For more information, see [Storage class for automatically optimizing + frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + + Operations related to `PutBucketIntelligentTieringConfiguration` + include: + + - [DeleteBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) + + - [GetBucketIntelligentTieringConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) + + - [ListBucketIntelligentTieringConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) + + Note: + You only need S3 Intelligent-Tiering enabled on a bucket if you want to + automatically move objects stored in the S3 Intelligent-Tiering storage + class to the Archive Access or Deep Archive Access tier. + + `PutBucketIntelligentTieringConfiguration` has the following special + errors: + + HTTP 400 Bad Request Error + + : *Code:* InvalidArgument + + *Cause:* Invalid Argument + + HTTP 400 Bad Request Error + + : *Code:* TooManyConfigurations + + *Cause:* You are attempting to create a new configuration but have + already reached the 1,000-configuration limit. + + HTTP 403 Forbidden Error + + : *Cause:* You are not the owner of the specified bucket, or you do not + have the `s3:PutIntelligentTieringConfiguration` bucket permission to + set the configuration on the bucket. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketIntelligentTieringConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketIntelligentTieringConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION, [], plugins + ) + + def put_bucket_inventory_configuration( + self, + input: PutBucketInventoryConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketInventoryConfigurationOutput: + """ + This implementation of the `PUT` action adds an S3 Inventory + configuration (identified by the inventory ID) to the bucket. You can + have up to 1,000 inventory configurations per bucket. + + Amazon S3 inventory generates inventories of the objects in the bucket + on a daily or weekly basis, and the results are published to a flat + file. The bucket that is inventoried is called the *source* bucket, and + the bucket where the inventory flat file is stored is called the + *destination* bucket. The *destination* bucket must be in the same + Amazon Web Services Region as the *source* bucket. + + When you configure an inventory for a *source* bucket, you specify the + *destination* bucket where you want the inventory to be stored, and + whether to generate the inventory daily or weekly. You can also + configure what object metadata to include and whether to inventory all + object versions or only current versions. For more information, see + [Amazon S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) + in the Amazon S3 User Guide. + + Warning: + You must create a bucket policy on the *destination* bucket to grant + permissions to Amazon S3 to write objects to the bucket in the defined + location. For an example policy, see [Granting Permissions for Amazon S3 + Inventory and Storage Class + Analysis](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permission to perform the + `s3:PutInventoryConfiguration` action. The bucket owner has this + permission by default and can grant this permission to others. + + The `s3:PutInventoryConfiguration` permission allows a user to create + an [S3 + Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html) + report that includes all object metadata fields available and to + specify the destination bucket to store the inventory. A user with + read access to objects in the destination bucket can also access all + object metadata fields that are available in the inventory report. + + - **General purpose bucket permissions** - The + `s3:PutInventoryConfiguration` permission is required in a policy. + For more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutInventoryConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. For more information about directory bucket policies and + permissions, see [Amazon Web Services Identity and Access Management + (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + To restrict access to an inventory report, see [Restricting access to + an Amazon S3 Inventory + report](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-s3-inventory) + in the *Amazon S3 User Guide*. For more information about the metadata + fields available in S3 Inventory, see [Amazon S3 Inventory + lists](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents) + in the *Amazon S3 User Guide*. For more information about permissions, + see [Permissions related to bucket subresource + operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Identity and access management in Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + `PutBucketInventoryConfiguration` has the following special errors: + + HTTP 400 Bad Request Error + + : *Code:* InvalidArgument + + *Cause:* Invalid Argument + + HTTP 400 Bad Request Error + + : *Code:* TooManyConfigurations + + *Cause:* You are attempting to create a new configuration but have + already reached the 1,000-configuration limit. + + HTTP 403 Forbidden Error + + : *Cause:* You are not the owner of the specified bucket, or you do not + have the `s3:PutInventoryConfiguration` bucket permission to set the + configuration on the bucket. + + The following operations are related to + `PutBucketInventoryConfiguration`: + + - [GetBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) + + - [DeleteBucketInventoryConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) + + - [ListBucketInventoryConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketInventoryConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketInventoryConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_INVENTORY_CONFIGURATION, [], plugins + ) + + def put_bucket_lifecycle_configuration( + self, + input: PutBucketLifecycleConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketLifecycleConfigurationOutput: + """ + Creates a new lifecycle configuration for the bucket or replaces an + existing lifecycle configuration. Keep in mind that this will overwrite + an existing lifecycle configuration, so if you want to retain any + configuration details, they must be included in the new lifecycle + configuration. For information about lifecycle configuration, see + [Managing your storage + lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). + + Note: + Bucket lifecycle configuration now supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API. The previous version of the API supported filtering based + only on an object key name prefix, which is supported for backward + compatibility. For the related API description, see + [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). + + Rules + + : You specify the lifecycle configuration in your request body. The + lifecycle configuration is specified as XML consisting of one or more + rules. An Amazon S3 Lifecycle configuration can have up to 1,000 + rules. This limit is not adjustable. + + Bucket lifecycle configuration supports specifying a lifecycle rule + using an object key name prefix, one or more object tags, object size, + or any combination of these. Accordingly, this section describes the + latest API. The previous version of the API supported filtering based + only on an object key name prefix, which is supported for backward + compatibility for general purpose buckets. For the related API + description, see + [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). + + Note: + Lifecyle configurations for directory buckets only support expiring + objects and cancelling multipart uploads. Expiring of versioned + objects,transitions and tag filters are not supported. + A lifecycle rule consists of the following: + + - A filter identifying a subset of objects to which the rule applies. + The filter can be based on a key name prefix, object tags, object + size, or any combination of these. + + - A status indicating whether the rule is in effect. + + - One or more lifecycle transition and expiration actions that you + want Amazon S3 to perform on the objects identified by the filter. + If the state of your bucket is versioning-enabled or + versioning-suspended, you can have many versions of the same object + (one current version and zero or more noncurrent versions). Amazon + S3 provides predefined actions that you can specify for current and + noncurrent object versions. + + For more information, see [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + and [Lifecycle Configuration + Elements](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html). + + Permissions + + : - **General purpose bucket permissions** - By default, all Amazon S3 + resources are private, including buckets, objects, and related + subresources (for example, lifecycle configuration and website + configuration). Only the resource owner (that is, the Amazon Web + Services account that created it) can access the resource. The + resource owner can optionally grant access permissions to others by + writing an access policy. For this operation, a user must have the + `s3:PutLifecycleConfiguration` permission. + + You can also explicitly deny permissions. An explicit deny also + supersedes any other permissions. If you want to block users or + accounts from removing or deleting objects from your bucket, you + must deny them permissions for the following actions: + + - `s3:DeleteObject` + + - `s3:DeleteObjectVersion` + + - `s3:PutLifecycleConfiguration` + + For more information about permissions, see [Managing Access + Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **Directory bucket permissions** - You must have the + `s3express:PutLifecycleConfiguration` permission in an IAM + identity-based policy to use this operation. Cross-account access to + this API operation isn't supported. The resource owner can + optionally grant access permissions to others by creating a role or + user for them as long as they are within the same account as the + owner and resource. + + For more information about directory bucket policies and + permissions, see [Authorizing Regional endpoint APIs with + IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make + requests for this API operation to the Regional endpoint. These + endpoints support path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more + information about endpoints in Availability Zones, see [Regional and + Zonal endpoints for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints + in Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region`*`.amazonaws.com`. + + The following operations are related to + `PutBucketLifecycleConfiguration`: + + - [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) + + - [DeleteBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketLifecycleConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketLifecycleConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_LIFECYCLE_CONFIGURATION, [], plugins + ) + + def put_bucket_logging( + self, input: PutBucketLoggingInput, plugins: list[Plugin] | None = None + ) -> PutBucketLoggingOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + Set the logging parameters for a bucket and to specify permissions for + who can view and modify the logging parameters. All logs are saved to + buckets in the same Amazon Web Services Region as the source bucket. To + set the logging status of a bucket, you must be the bucket owner. + + The bucket owner is automatically granted FULL_CONTROL to all logs. You + use the `Grantee` request element to grant access to other people. The + `Permissions` request element specifies the kind of access the grantee + has to the logs. + + Warning: + If the target bucket for log delivery uses the bucket owner enforced + setting for S3 Object Ownership, you can't use the `Grantee` request + element to grant access to others. Permissions can only be granted using + policies. For more information, see [Permissions for server access log + delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) + in the *Amazon S3 User Guide*. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (by using request elements) in the following ways. For examples + of how to specify these grantee values in JSON format, see the Amazon + Web Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + `DisplayName` is optional and ignored in the request. + + - By Email address: + + ` ```{=html}``{=html}`<>Grantees@email.com<>```{=html}``{=html} + + The grantee is resolved to the `CanonicalUser` and, in a response to + a `GETObjectAcl` request, appears as the CanonicalUser. + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + To enable logging, you use `LoggingEnabled` and its children request + elements. To disable logging, you use an empty `BucketLoggingStatus` + request element: + + ``{=html}``{=html} + + For more information about server access logging, see [Server Access + Logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) + in the *Amazon S3 User Guide*. + + For more information about creating a bucket, see + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). + For more information about returning the logging status of a bucket, see + [GetBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html). + + The following operations are related to `PutBucketLogging`: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [GetBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketLoggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketLoggingOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_LOGGING, [], plugins) + + def put_bucket_metrics_configuration( + self, + input: PutBucketMetricsConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketMetricsConfigurationOutput: + """ + Sets a metrics configuration (specified by the metrics configuration ID) + for the bucket. You can have up to 1,000 metrics configurations per + bucket. If you're updating an existing metrics configuration, note that + this is a full replacement of the existing metrics configuration. If you + don't include the elements you want to keep, they are erased. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:PutMetricsConfiguration` action. The bucket owner has this + permission by default. The bucket owner can grant this permission to + others. For more information about permissions, see [Permissions + Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + - **General purpose bucket permissions** - The + `s3:PutMetricsConfiguration` permission is required in a policy. For + more information about general purpose buckets permissions, see + [Using Bucket Policies and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutMetricsConfiguration` + permission in an IAM identity-based policy instead of a bucket + policy. Cross-account access to this API operation isn't supported. + This operation can only be performed by the Amazon Web Services + account that owns the resource. For more information about directory + bucket policies and permissions, see [Amazon Web Services Identity + and Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + For information about CloudWatch request metrics for Amazon S3, see + [Monitoring Metrics with Amazon + CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). + + The following operations are related to `PutBucketMetricsConfiguration`: + + - [DeleteBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) + + - [GetBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) + + - [ListBucketMetricsConfigurations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) + + `PutBucketMetricsConfiguration` has the following special error: + + - Error code: `TooManyConfigurations` + + - Description: You are attempting to create a new configuration but + have already reached the 1,000-configuration limit. + + - HTTP Status Code: HTTP 400 Bad Request + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketMetricsConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketMetricsConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_METRICS_CONFIGURATION, [], plugins + ) + + def put_bucket_notification_configuration( + self, + input: PutBucketNotificationConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketNotificationConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Enables notifications of specified events for a bucket. For more + information about event notifications, see [Configuring Event + Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + + Using this API, you can replace an existing notification configuration. + The configuration is an XML file that defines the event types that you + want Amazon S3 to publish and the destination where you want Amazon S3 + to publish an event notification when it detects an event of the + specified type. + + By default, your bucket has no event notifications configured. That is, + the notification configuration will be an empty + `NotificationConfiguration`. + + ``{=html} + + ``{=html} + + This action replaces the existing notification configuration with the + configuration you include in the request body. + + After Amazon S3 receives this request, it first verifies that any Amazon + Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service + (Amazon SQS) destination exists, and that the bucket owner has + permission to publish to it by sending a test notification. In the case + of Lambda destinations, Amazon S3 verifies that the Lambda function + permissions grant Amazon S3 permission to invoke the function from the + Amazon S3 bucket. For more information, see [Configuring Notifications + for Amazon S3 + Events](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + + You can disable notifications by adding the empty + NotificationConfiguration element. + + For more information about the number of event notification + configurations that you can create per bucket, see [Amazon S3 service + quotas](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) + in *Amazon Web Services General Reference*. + + By default, only the bucket owner can configure notifications on a + bucket. However, bucket owners can use a bucket policy to grant + permission to other users to set this configuration with the required + `s3:PutBucketNotification` permission. + + Note: + The PUT notification is an atomic operation. For example, suppose your + notification configuration includes SNS topic, SQS queue, and Lambda + function configurations. When you send a PUT request with this + configuration, Amazon S3 sends test messages to your SNS topic. If the + message fails, the entire PUT action will fail, and Amazon S3 will not + add the configuration to your bucket. + + If the configuration in the request body includes only one + `TopicConfiguration` specifying only the + `s3:ReducedRedundancyLostObject` event type, the response will also + include the `x-amz-sns-test-message-id` header containing the message ID + of the test notification sent to the topic. + + The following action is related to `PutBucketNotificationConfiguration`: + + - [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketNotificationConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketNotificationConfigurationOutput`. + """ + return self._invoke( + input, _models.PUT_BUCKET_NOTIFICATION_CONFIGURATION, [], plugins + ) + + def put_bucket_ownership_controls( + self, + input: PutBucketOwnershipControlsInput, + plugins: list[Plugin] | None = None, + ) -> PutBucketOwnershipControlsOutput: + """ + Note: + This operation is not supported for directory buckets. + + Creates or modifies `OwnershipControls` for an Amazon S3 bucket. To use + this operation, you must have the `s3:PutBucketOwnershipControls` + permission. For more information about Amazon S3 permissions, see + [Specifying permissions in a + policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html). + + For information about Amazon S3 Object Ownership, see [Using object + ownership](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html). + + The following operations are related to `PutBucketOwnershipControls`: + + - GetBucketOwnershipControls + + - DeleteBucketOwnershipControls + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketOwnershipControlsInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketOwnershipControlsOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_OWNERSHIP_CONTROLS, [], plugins) + + def put_bucket_policy( + self, input: PutBucketPolicyInput, plugins: list[Plugin] | None = None + ) -> PutBucketPolicyOutput: + """ + Applies an Amazon S3 bucket policy to an Amazon S3 bucket. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Regional endpoint. These endpoints support + path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. For more information + about endpoints in Availability Zones, see [Regional and Zonal endpoints + for directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : If you are using an identity other than the root user of the Amazon + Web Services account that owns the bucket, the calling identity must + both have the `PutBucketPolicy` permissions on the specified bucket + and belong to the bucket owner's account in order to use this + operation. + + If you don't have `PutBucketPolicy` permissions, Amazon S3 returns a + `403 Access Denied` error. If you have the correct permissions, but + you're not using an identity that belongs to the bucket owner's + account, Amazon S3 returns a `405 Method Not Allowed` error. + + Warning: + To ensure that bucket owners don't inadvertently lock themselves out + of their own buckets, the root principal in a bucket owner's Amazon + Web Services account can perform the `GetBucketPolicy`, + `PutBucketPolicy`, and `DeleteBucketPolicy` API actions, even if their + bucket policy explicitly denies the root principal's access. Bucket + owner root principals can only be blocked from performing these API + actions by VPC endpoint policies and Amazon Web Services Organizations + policies. + - **General purpose bucket permissions** - The `s3:PutBucketPolicy` + permission is required in a policy. For more information about + general purpose buckets bucket policies, see [Using Bucket Policies + and User + Policies](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation, you must have the `s3express:PutBucketPolicy` permission + in an IAM identity-based policy instead of a bucket policy. + Cross-account access to this API operation isn't supported. This + operation can only be performed by the Amazon Web Services account + that owns the resource. For more information about directory bucket + policies and permissions, see [Amazon Web Services Identity and + Access Management (IAM) for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) + in the *Amazon S3 User Guide*. + + Example bucket policies + + : **General purpose buckets example bucket policies** - See [Bucket + policy + examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + **Directory bucket example bucket policies** - See [Example bucket + policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + `s3express-control.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `PutBucketPolicy`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketPolicyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketPolicyOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_POLICY, [], plugins) + + def put_bucket_replication( + self, input: PutBucketReplicationInput, plugins: list[Plugin] | None = None + ) -> PutBucketReplicationOutput: + """ + Note: + This operation is not supported for directory buckets. + + Creates a replication configuration or replaces an existing one. For + more information, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + + Specify the replication configuration in the request body. In the + replication configuration, you provide the name of the destination + bucket or buckets where you want Amazon S3 to replicate objects, the IAM + role that Amazon S3 can assume to replicate objects on your behalf, and + other relevant information. You can invoke this request for a specific + Amazon Web Services Region by using the + [`aws:RequestedRegion`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) + condition key. + + A replication configuration must include at least one rule, and can + contain a maximum of 1,000. Each rule identifies a subset of objects to + replicate by filtering the objects in the source bucket. To choose + additional subsets of objects to replicate, add a rule for each subset. + + To specify a subset of the objects in the source bucket to apply a + replication rule to, add the Filter element as a child of the Rule + element. You can filter objects based on an object key prefix, one or + more object tags, or both. When you add the Filter element in the + configuration, you must also add the following elements: + `DeleteMarkerReplication`, `Status`, and `Priority`. + + Note: + If you are using an earlier version of the replication configuration, + Amazon S3 handles replication of delete markers differently. For more + information, see [Backward + Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). + + For information about enabling versioning on a bucket, see [Using + Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). + + Handling Replication of Encrypted Objects + + : By default, Amazon S3 doesn't replicate objects that are stored at + rest using server-side encryption with KMS keys. To replicate Amazon + Web Services KMS-encrypted objects, add the following: + `SourceSelectionCriteria`, `SseKmsEncryptedObjects`, `Status`, + `EncryptionConfiguration`, and `ReplicaKmsKeyID`. For information + about replication configuration, see [Replicating Objects Created with + SSE Using KMS + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). + + For information on `PutBucketReplication` errors, see [List of + replication-related error + codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) + + Permissions + + : To create a `PutBucketReplication` request, you must have + `s3:PutReplicationConfiguration` permissions for the bucket. + + By default, a resource owner, in this case the Amazon Web Services + account that created the bucket, can perform this operation. The + resource owner can also grant others permissions to perform the + operation. For more information about permissions, see [Specifying + Permissions in a + Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + Note: + To perform this operation, the user or role performing the action must + have the + [iam:PassRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) + permission. + + The following operations are related to `PutBucketReplication`: + + - [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) + + - [DeleteBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketReplicationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketReplicationOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_REPLICATION, [], plugins) + + def put_bucket_request_payment( + self, input: PutBucketRequestPaymentInput, plugins: list[Plugin] | None = None + ) -> PutBucketRequestPaymentOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the request payment configuration for a bucket. By default, the + bucket owner pays for downloads from the bucket. This configuration + parameter enables the bucket owner (only) to specify that the person + requesting the download will be charged for the download. For more + information, see [Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). + + The following operations are related to `PutBucketRequestPayment`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [GetBucketRequestPayment](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketRequestPaymentInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketRequestPaymentOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_REQUEST_PAYMENT, [], plugins) + + def put_bucket_tagging( + self, input: PutBucketTaggingInput, plugins: list[Plugin] | None = None + ) -> PutBucketTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the tags for a general purpose bucket if attribute based access + control (ABAC) is not enabled for the bucket. When you [enable ABAC for + a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html), + you can no longer use this operation for that bucket and must use the + [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) + or + [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) + operations instead. + + Use tags to organize your Amazon Web Services bill to reflect your own + cost structure. To do this, sign up to get your Amazon Web Services + account bill with tag key values included. Then, to see the cost of + combined resources, organize your billing information according to + resources with the same tag key values. For example, you can tag several + resources with a specific application name, and then organize your + billing information to see the total cost of that application across + several services. For more information, see [Cost Allocation and + Tagging](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) + and [Using Cost Allocation in Amazon S3 Bucket + Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). + + Note: + When this operation sets the tags for a bucket, it will overwrite any + current tags the bucket already has. You cannot use this operation to + add tags to an existing list of tags. + + To use this operation, you must have permissions to perform the + `s3:PutBucketTagging` action. The bucket owner has this permission by + default and can grant this permission to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). + + `PutBucketTagging` has the following special errors. For more Amazon S3 + errors see, [Error + Responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + + - `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 [Using Cost Allocation in Amazon S3 Bucket + Tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). + + - `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 bucket. + + The following operations are related to `PutBucketTagging`: + + - [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) + + - [DeleteBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketTaggingOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_TAGGING, [], plugins) + + def put_bucket_versioning( + self, input: PutBucketVersioningInput, plugins: list[Plugin] | None = None + ) -> PutBucketVersioningOutput: + """ + Note: + This operation is not supported for directory buckets. + Note: + When you enable versioning on a bucket for the first time, it might take + a short amount of time for the change to be fully propagated. While this + change is propagating, you might encounter intermittent + `HTTP 404 NoSuchKey` errors for requests to objects created or updated + after enabling versioning. We recommend that you wait for 15 minutes + after enabling versioning before issuing write operations (`PUT` or + `DELETE`) on objects in the bucket. + + Sets the versioning state of an existing bucket. + + You can set the versioning state with one of the following values: + + **Enabled**---Enables versioning for the objects in the bucket. All + objects added to the bucket receive a unique version ID. + + **Suspended**---Disables versioning for the objects in the bucket. All + objects added to the bucket receive the version ID null. + + If the versioning state has never been set on a bucket, it has no + versioning state; a + [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) + request does not return a versioning state value. + + In order to enable MFA Delete, you must be the bucket owner. If you are + the bucket owner and want to enable MFA Delete in the bucket versioning + configuration, you must include the `x-amz-mfa request` header and the + `Status` and the `MfaDelete` request elements in a request to set the + versioning state of the bucket. + + Warning: + If you have an object expiration lifecycle configuration in your + non-versioned bucket and you want to maintain the same permanent delete + behavior when you enable versioning, you must add a noncurrent + expiration policy. The noncurrent expiration lifecycle configuration + will manage the deletes of the noncurrent object versions in the + version-enabled bucket. (A version-enabled bucket maintains one current + and zero or more noncurrent object versions.) For more information, see + [Lifecycle and + Versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config). + + The following operations are related to `PutBucketVersioning`: + + - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) + + - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) + + - [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketVersioningInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketVersioningOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_VERSIONING, [], plugins) + + def put_bucket_website( + self, input: PutBucketWebsiteInput, plugins: list[Plugin] | None = None + ) -> PutBucketWebsiteOutput: + """ + Note: + This operation is not supported for directory buckets. + + Sets the configuration of the website that is specified in the `website` + subresource. To configure a bucket as a website, you can add this + subresource on the bucket with website configuration information such as + the file name of the index document and any redirect rules. For more + information, see [Hosting Websites on Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). + + This PUT action requires the `S3:PutBucketWebsite` permission. By + default, only the bucket owner can configure the website attached to a + bucket; however, bucket owners can allow other users to set the website + configuration by writing a bucket policy that grants them the + `S3:PutBucketWebsite` permission. + + To redirect all website requests sent to the bucket's website endpoint, + you add a website configuration with the following elements. Because all + requests are sent to another website, you don't need to provide index + document name for the bucket. + + - `WebsiteConfiguration` + + - `RedirectAllRequestsTo` + + - `HostName` + + - `Protocol` + + If you want granular control over redirects, you can use the following + elements to add routing rules that describe conditions for redirecting + requests and information about the redirect destination. In this case, + the website configuration must provide an index document for the bucket, + because some requests might not be redirected. + + - `WebsiteConfiguration` + + - `IndexDocument` + + - `Suffix` + + - `ErrorDocument` + + - `Key` + + - `RoutingRules` + + - `RoutingRule` + + - `Condition` + + - `HttpErrorCodeReturnedEquals` + + - `KeyPrefixEquals` + + - `Redirect` + + - `Protocol` + + - `HostName` + + - `ReplaceKeyPrefixWith` + + - `ReplaceKeyWith` + + - `HttpRedirectCode` + + Amazon S3 has a limitation of 50 routing rules per website + configuration. If you require more than 50 routing rules, you can use + object redirect. For more information, see [Configuring an Object + Redirect](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) + in the *Amazon S3 User Guide*. + + The maximum request length is limited to 128 KB. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutBucketWebsiteInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutBucketWebsiteOutput`. + """ + return self._invoke(input, _models.PUT_BUCKET_WEBSITE, [], plugins) + + def put_object( + self, input: PutObjectInput, plugins: list[Plugin] | None = None + ) -> PutObjectOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + + Adds an object to a bucket. + + Note: + - 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. + + - If your bucket uses the bucket owner enforced setting for Object + Ownership, ACLs are disabled and no longer affect permissions. All + objects written to the bucket by any account will be owned by the + bucket owner. + + - **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + 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. However, Amazon S3 provides features that can + modify this behavior: + + - **S3 Object Lock** - To prevent objects from being deleted or + overwritten, you can use [Amazon S3 Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + + - **If-None-Match** - Uploads the object only if the object key name + does not already exist in the specified bucket. Otherwise, Amazon S3 + returns a `412 Precondition Failed` error. If a conflicting operation + occurs during the upload, S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure, retry the + upload. + + Expects the * character (asterisk). + + For more information, see [Add preconditions to S3 operations with + conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide* or [RFC + 7232](https://datatracker.ietf.org/doc/rfc7232/). + + Note: + This functionality is not supported for S3 on Outposts. + + - **S3 Versioning** - When you enable versioning for a bucket, if Amazon + S3 receives multiple write requests for the same object + simultaneously, it stores all versions of the objects. For each write + request that is made to the same object, Amazon S3 automatically + generates a unique version ID of that object being stored in Amazon + S3. You can retrieve, replace, or delete any version of the object. + For more information about versioning, see [Adding Objects to + Versioning-Enabled + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) + in the *Amazon S3 User Guide*. For information about returning the + versioning state of a bucket, see + [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). + + Note: + This functionality is not supported for directory buckets. + + Permissions + + : - **General purpose bucket permissions** - The following permissions + are required in your policies when your `PutObject` request includes + specific headers. + + - **`s3:PutObject`** - To successfully complete the `PutObject` + request, you must always have the `s3:PutObject` permission on a + bucket to add an object to it. + + - **`s3:PutObjectAcl`** - To successfully change the objects ACL of + your `PutObject` request, you must have the `s3:PutObjectAcl`. + + - **`s3:PutObjectTagging`** - To successfully set the tag-set with + your `PutObject` request, you must have the `s3:PutObjectTagging`. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Data integrity with Content-MD5 + + : - **General purpose bucket** - 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, Amazon S3 returns an error. + Alternatively, when the object's ETag is its MD5 digest, you can + calculate the MD5 while putting the object to Amazon S3 and compare + the returned ETag to the calculated MD5 value. + + - **Directory bucket** - This functionality is not supported for + directory buckets. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + + + Errors + + : - You might receive an `InvalidRequest` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - Cannot specify both a write offset value and user-defined object + metadata for existing objects. + + - Checksum Type mismatch occurred, expected checksum Type: sha1, + actual checksum Type: crc32c. + + - Request body cannot be empty when 'write offset' is specified. + + For more information about related Amazon S3 APIs, see the following: + + - [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + + - [DeleteObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT, [], plugins) + + def put_object_acl( + self, input: PutObjectAclInput, plugins: list[Plugin] | None = None + ) -> PutObjectAclOutput: + """ + Warning: + End of support notice: As of October 1, 2025, Amazon S3 has discontinued + support for Email Grantee Access Control Lists (ACLs). If you attempt to + use an Email Grantee ACL in a request after October 1, 2025, the request + will receive an `HTTP 405` (Method Not Allowed) error. + + This change affects 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), and South America (São Paulo). + Note: + This operation is not supported for directory buckets. + + 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 + the `WRITE_ACP` permission to set the ACL of an object. For more + information, see [What permissions can I + grant?](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) + in the *Amazon S3 User Guide*. + + This functionality is not supported for 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + Warning: + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Permissions + + : 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + + - 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + 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. + + Grantee Values + + : You can specify the person (grantee) to whom you're assigning access + rights (using request elements) in the following ways. For examples of + how to specify these grantee values in JSON format, see the Amazon Web + Services CLI example in [Enabling Amazon S3 server access + logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) + in the *Amazon S3 User Guide*. + + - By the person's ID: + + ``{=html}``{=html}`<>ID<>```{=html}``{=html}`<>GranteesEmail<>```{=html}` ```{=html} + + DisplayName is optional and ignored in the request. + + - By URI: + + ``{=html}``{=html}`<>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>```{=html}``{=html} + + - By Email address: + + ``{=html}``{=html}`<>Grantees@email.com<>```{=html}`lt;/Grantee>` + + The grantee is resolved to the CanonicalUser and, in a response to a + GET Object acl request, appears as the CanonicalUser. + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + Versioning + + : The ACL of an object is set at the object version level. By default, + PUT sets the ACL of the current version of an object. To set the ACL + of a different version, use the `versionId` subresource. + + The following operations are related to `PutObjectAcl`: + + - [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + + - [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectAclInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectAclOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_ACL, [], plugins) + + def put_object_annotation( + self, input: PutObjectAnnotationInput, plugins: list[Plugin] | None = None + ) -> PutObjectAnnotationOutput: + """ + Attaches an annotation to an Amazon S3 object. An annotation is a named + payload of 1 byte to 1 MiB that you can associate with a specific object + or object version. Each object can have up to 1,000 annotations. + + For annotation naming rules and restrictions, see [Annotation naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/annotations-overview.html) + in the *Amazon S3 User Guide*. + + Annotations inherit the encryption of their parent object. For objects + without server-side encryption, annotations are encrypted with SSE-S3 + (the default for new objects). Objects encrypted with SSE-C cannot have + annotations. + + To use this operation, you must have the `s3:PutObjectAnnotation` + permission. If the bucket has Requester Pays enabled, you must include + the `x-amz-request-payer` header. + + Note: + Annotations are not supported by the following features: S3 Inventory + Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon + FSx, S3 on Outposts, and S3 Express One Zone (directory buckets). + + The following operations are related to `PutObjectAnnotation`: + + - [GetObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html) + + - [ListObjectAnnotations](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html) + + - [DeleteObjectAnnotation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html) + + Args: + input: + An instance of `PutObjectAnnotationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectAnnotationOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_ANNOTATION, [], plugins) + + def put_object_legal_hold( + self, input: PutObjectLegalHoldInput, plugins: list[Plugin] | None = None + ) -> PutObjectLegalHoldOutput: + """ + Note: + This operation is not supported for directory buckets. + + Applies a legal hold configuration to the specified object. For more + information, see [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + This functionality is not supported for Amazon S3 on Outposts. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectLegalHoldInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectLegalHoldOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_LEGAL_HOLD, [], plugins) + + def put_object_lock_configuration( + self, + input: PutObjectLockConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> PutObjectLockConfigurationOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + Note: + - 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html). + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectLockConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectLockConfigurationOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_LOCK_CONFIGURATION, [], plugins) + + def put_object_retention( + self, input: PutObjectRetentionInput, plugins: list[Plugin] | None = None + ) -> PutObjectRetentionOutput: + """ + Note: + This operation is not supported for directory buckets. + + Places an Object Retention configuration on an object. For more + information, see [Locking + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + 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 functionality is not supported for Amazon S3 on Outposts. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectRetentionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectRetentionOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_RETENTION, [], plugins) + + def put_object_tagging( + self, input: PutObjectTaggingInput, plugins: list[Plugin] | None = None + ) -> PutObjectTaggingOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). + + 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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). + + For tagging-related restrictions related to characters and encodings, + see [Tag + Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). + 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](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + + - `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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). + + - `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`: + + - [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + + - [DeleteObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutObjectTaggingInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutObjectTaggingOutput`. + """ + return self._invoke(input, _models.PUT_OBJECT_TAGGING, [], plugins) + + def put_public_access_block( + self, input: PutPublicAccessBlockInput, plugins: list[Plugin] | None = None + ) -> PutPublicAccessBlockOutput: + """ + Note: + This operation is not supported for directory buckets. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). + + Warning: + 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. Account-level settings automatically inherit from + organization-level policies when present. 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\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). + + The following operations are related to `PutPublicAccessBlock`: + + - [GetPublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) + + - [DeletePublicAccessBlock](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) + + - [GetBucketPolicyStatus](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) + + - [Using Amazon S3 Block Public + Access](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `PutPublicAccessBlockInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `PutPublicAccessBlockOutput`. + """ + return self._invoke(input, _models.PUT_PUBLIC_ACCESS_BLOCK, [], plugins) + + def rename_object( + self, input: RenameObjectInput, plugins: list[Plugin] | None = None + ) -> RenameObjectOutput: + """ + Renames an existing object in a directory bucket that uses the S3 + Express One Zone storage class. You can use `RenameObject` by specifying + an existing object's name as the source and the new name of the object + as the destination within the same directory bucket. + + Note: + `RenameObject` is only supported for objects stored in the S3 Express + One Zone storage class. + + To prevent overwriting an object, you can use the `If-None-Match` + conditional header. + + - **If-None-Match** - Renames the object only if an object with the + specified name does not already exist in the directory bucket. If you + don't want to overwrite an existing object, you can add the + `If-None-Match` conditional header with the value `‘*’` in the + `RenameObject` request. Amazon S3 then returns a + `412 Precondition Failed` error if the object with the specified name + already exists. For more information, see [RFC + 7232](https://datatracker.ietf.org/doc/rfc7232/). + + Permissions + + : To grant access to the `RenameObject` operation on a directory bucket, + we recommend that you use the `CreateSession` operation for + session-based authorization. Specifically, you grant the + `s3express:CreateSession` permission to the directory bucket in a + bucket policy or an IAM identity-based policy. Then, you make the + `CreateSession` API call on the directory bucket to obtain a session + token. With the session token in your request header, you can make API + requests to this operation. After the session token expires, you make + another `CreateSession` API call to generate a new session token for + use. The Amazon Web Services CLI and SDKs will create and manage your + session including refreshing the session token automatically to avoid + service interruptions when a session expires. In your bucket policy, + you can specify the `s3express:SessionMode` condition key to control + who can create a `ReadWrite` or `ReadOnly` session. A `ReadWrite` + session is required for executing all the Zonal endpoint API + operations, including `RenameObject`. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . To learn more about Zonal endpoint API operations, see [Authorizing + Zonal endpoint API operations with + CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html) + in the *Amazon S3 User Guide*. + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `RenameObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RenameObjectOutput`. + """ + return self._invoke(input, _models.RENAME_OBJECT, [], plugins) + + def restore_object( + self, input: RestoreObjectInput, plugins: list[Plugin] | None = None + ) -> RestoreObjectOutput: + """ + Note: + This operation is not supported for directory buckets. + + Restores an archived copy of an object back into Amazon S3 + + This functionality is not supported for Amazon S3 on Outposts. + + This action performs the following types of requests: + + - `restore an archive` - Restore an archived object + + For more information about the `S3` structure in the request body, see + the following: + + - [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) + + - [Managing Access with + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) + in the *Amazon S3 User Guide* + + - [Protecting Data Using Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) + in the *Amazon S3 User Guide* + + Permissions + + : To use this operation, you must have permissions to perform the + `s3:RestoreObject` action. The bucket owner has this permission by + default and can grant this permission to others. For more information + about permissions, see [Permissions Related to Bucket Subresource + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) + and [Managing Access Permissions to Your Amazon S3 + Resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) + in the *Amazon S3 User Guide*. + + Restoring objects + + : Objects that you archive to the S3 Glacier Flexible Retrieval or S3 + Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive + or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in + real time. For objects in the S3 Glacier Flexible Retrieval or S3 + Glacier Deep Archive storage classes, you must first initiate a + restore request, and then wait until a temporary copy of the object is + available. If you want a permanent copy of the object, create a copy + of it in the Amazon S3 Standard storage class in your S3 bucket. To + access an archived object, you must restore the object for the + duration (number of days) that you specify. For objects in the Archive + Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you + must first initiate a restore request, and then wait until the object + is moved into the Frequent Access tier. + + To restore a specific object version, you can provide a version ID. If + you don't provide a version ID, Amazon S3 restores the current + version. + + When restoring an archived object, you can specify one of the + following data access tier options in the `Tier` element of the + request body: + + - `Expedited` - Expedited retrievals allow you to quickly access your + data stored in the S3 Glacier Flexible Retrieval storage class or S3 + Intelligent-Tiering Archive tier when occasional urgent requests for + restoring archives are required. For all but the largest archived + objects (250 MB+), data accessed using Expedited retrievals is + typically made available within 1--5 minutes. Provisioned capacity + ensures that retrieval capacity for Expedited retrievals is + available when you need it. Expedited retrievals and provisioned + capacity are not available for objects stored in the S3 Glacier Deep + Archive storage class or S3 Intelligent-Tiering Deep Archive tier. + + - `Standard` - Standard retrievals allow you to access any of your + archived objects within several hours. This is the default option + for retrieval requests that do not specify the retrieval option. + Standard retrievals typically finish within 3--5 hours for objects + stored in the S3 Glacier Flexible Retrieval storage class or S3 + Intelligent-Tiering Archive tier. They typically finish within 12 + hours for objects stored in the S3 Glacier Deep Archive storage + class or S3 Intelligent-Tiering Deep Archive tier. Standard + retrievals are free for objects stored in S3 Intelligent-Tiering. + + - `Bulk` - Bulk retrievals free for objects stored in the S3 Glacier + Flexible Retrieval and S3 Intelligent-Tiering storage classes, + enabling you to retrieve large amounts, even petabytes, of data at + no cost. Bulk retrievals typically finish within 5--12 hours for + objects stored in the S3 Glacier Flexible Retrieval storage class or + S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the + lowest-cost retrieval option when restoring objects from S3 Glacier + Deep Archive. They typically finish within 48 hours for objects + stored in the S3 Glacier Deep Archive storage class or S3 + Intelligent-Tiering Deep Archive tier. + + For more information about archive retrieval options and provisioned + capacity for `Expedited` data access, see [Restoring Archived + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + in the *Amazon S3 User Guide*. + + You can use Amazon S3 restore speed upgrade to change the restore + speed to a faster speed while it is in progress. For more information, + see [Upgrading the speed of an in-progress + restore](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) + in the *Amazon S3 User Guide*. + + To get the status of object restoration, you can send a `HEAD` + request. Operations return the `x-amz-restore` header, which provides + information about the restoration status, in the response. You can use + Amazon S3 event notifications to notify you when a restore is + initiated or completed. For more information, see [Configuring Amazon + S3 Event + Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + in the *Amazon S3 User Guide*. + + After restoring an archived object, you can update the restoration + period by reissuing the request with a new period. Amazon S3 updates + the restoration period relative to the current time and charges only + for the request-there are no data transfer charges. You cannot update + the restoration period when Amazon S3 is actively processing your + current restore request for the object. + + If your bucket has a lifecycle configuration with a rule that includes + an expiration action, the object expiration overrides the life span + that you specify in a restore request. For example, if you restore an + object copy for 10 days, but the object is scheduled to expire in 3 + days, Amazon S3 deletes the object in 3 days. For more information + about lifecycle configuration, see + [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + and [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + in *Amazon S3 User Guide*. + + Responses + + : A successful action returns either the `200 OK` or `202 Accepted` + status code. + + - If the object is not previously restored, then Amazon S3 returns + `202 Accepted` in the response. + + - If the object is previously restored, Amazon S3 returns `200 OK` in + the response. + + - Special errors: + + - *Code: RestoreAlreadyInProgress* + + - *Cause: Object restore is already in progress.* + + - *HTTP Status Code: 409 Conflict* + + - *SOAP Fault Code Prefix: Client* + + - - *Code: GlacierExpeditedRetrievalNotAvailable* + + - *Cause: expedited retrievals are currently not available. Try + again later. (Returned if there is insufficient capacity to + process the Expedited request. This error applies only to + Expedited retrievals and not to S3 Standard or Bulk retrievals.)* + + - *HTTP Status Code: 503* + + - *SOAP Fault Code Prefix: N/A* + + The following operations are related to `RestoreObject`: + + - [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + + - [GetBucketNotificationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `RestoreObjectInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `RestoreObjectOutput`. + """ + return self._invoke(input, _models.RESTORE_OBJECT, [], plugins) + + def update_bucket_metadata_annotation_table_configuration( + self, + input: UpdateBucketMetadataAnnotationTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataAnnotationTableConfigurationOutput: + """ + Updates the annotation table configuration for an Amazon S3 bucket's + metadata configuration. Use this operation to enable or disable the + annotation table, or to update its associated IAM role. + + An annotation table is a queryable Iceberg table that contains records + of all annotations attached to objects in the bucket. To use this + operation, the bucket must have an existing Amazon S3 Metadata + configuration. + + To use this operation, you must have the + `s3:UpdateBucketMetadataAnnotationTableConfiguration` permission. If you + are specifying or changing the IAM role, you must also have + `iam:PassRole` permission for the role. + + The IAM role must have a trust policy that allows the Amazon S3 metadata + service to assume it, and a permissions policy that grants the actions + needed to read annotations from your bucket. The following examples show + a trust policy and a permissions policy that you can adapt for your + bucket and account. + + The following operations are related to + `UpdateBucketMetadataAnnotationTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + Args: + input: + An instance of `UpdateBucketMetadataAnnotationTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataAnnotationTableConfigurationOutput`. + """ + return self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION, + [], + plugins, + ) + + def update_bucket_metadata_inventory_table_configuration( + self, + input: UpdateBucketMetadataInventoryTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataInventoryTableConfigurationOutput: + """ + Enables or disables a live inventory table for an S3 Metadata + configuration on a general purpose bucket. For more information, see + [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the following permissions. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + If you want to encrypt your inventory table with server-side + encryption with Key Management Service (KMS) keys (SSE-KMS), you need + additional permissions in your KMS key policy. For more information, + see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + - `s3:UpdateBucketMetadataInventoryTableConfiguration` + + - `s3tables:CreateTableBucket` + + - `s3tables:CreateNamespace` + + - `s3tables:GetTable` + + - `s3tables:CreateTable` + + - `s3tables:PutTablePolicy` + + - `s3tables:PutTableEncryption` + + - `kms:DescribeKey` + + The following operations are related to + `UpdateBucketMetadataInventoryTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataJournalTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UpdateBucketMetadataInventoryTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataInventoryTableConfigurationOutput`. + """ + return self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION, + [], + plugins, + ) + + def update_bucket_metadata_journal_table_configuration( + self, + input: UpdateBucketMetadataJournalTableConfigurationInput, + plugins: list[Plugin] | None = None, + ) -> UpdateBucketMetadataJournalTableConfigurationOutput: + """ + Enables or disables journal table record expiration for an S3 Metadata + configuration on a general purpose bucket. For more information, see + [Accelerating data discovery with S3 + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) + in the *Amazon S3 User Guide*. + + Permissions + + : To use this operation, you must have the + `s3:UpdateBucketMetadataJournalTableConfiguration` permission. For + more information, see [Setting up permissions for configuring metadata + tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html) + in the *Amazon S3 User Guide*. + + The following operations are related to + `UpdateBucketMetadataJournalTableConfiguration`: + + - [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + + - [DeleteBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) + + - [GetBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) + + - [UpdateBucketMetadataInventoryTableConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UpdateBucketMetadataJournalTableConfigurationInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateBucketMetadataJournalTableConfigurationOutput`. + """ + return self._invoke( + input, + _models.UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION, + [], + plugins, + ) + + def update_object_encryption( + self, input: UpdateObjectEncryptionInput, plugins: list[Plugin] | None = None + ) -> UpdateObjectEncryptionOutput: + """ + Note: + This operation is not supported for directory buckets or Amazon S3 on + Outposts buckets. + + Updates the server-side encryption type of an existing encrypted object + in a general purpose bucket. You can use the `UpdateObjectEncryption` + operation to change encrypted objects from server-side encryption with + Amazon S3 managed keys (SSE-S3) to server-side encryption with Key + Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You + can also use the `UpdateObjectEncryption` operation to change the + customer-managed KMS key used to encrypt your data so that you can + comply with custom key-rotation standards. + + Using the `UpdateObjectEncryption` operation, you can atomically update + the server-side encryption type of an existing object in a general + purpose bucket without any data movement. The `UpdateObjectEncryption` + operation uses envelope encryption to re-encrypt the data key used to + encrypt and decrypt your object with your newly specified server-side + encryption type. In other words, when you use the + `UpdateObjectEncryption` operation, your data isn't copied, archived + objects in the S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive + storage classes aren't restored, and objects in the S3 + Intelligent-Tiering storage class aren't moved between tiers. + Additionally, the `UpdateObjectEncryption` operation preserves all + object metadata properties, including the storage class, creation date, + last modified date, ETag, and checksum properties. For more information, + see [Updating server-side encryption for existing + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/update-sse-encryption.html) + in the *Amazon S3 User Guide*. + + By default, all `UpdateObjectEncryption` requests that specify a + customer-managed KMS key are restricted to KMS keys that are owned by + the bucket owner's Amazon Web Services account. If you're using + Organizations, you can request the ability to use KMS keys owned by + other member accounts within your organization by contacting Amazon Web + Services Support. + + Note: + Source objects that are unencrypted, or encrypted with either dual-layer + server-side encryption with KMS keys (DSSE-KMS) or server-side + encryption with customer-provided keys (SSE-C) aren't supported by this + operation. Additionally, you cannot specify SSE-S3 encryption as the + requested new encryption type `UpdateObjectEncryption` request. + + Permissions + + : - To use the `UpdateObjectEncryption` operation, you must have the + following permissions: + + - `s3:UpdateObjectEncryption` + + - `kms:Encrypt` + + - `kms:Decrypt` + + - `kms:GenerateDataKey` + + - `kms:ReEncrypt*` + + - If you're using Organizations, to use this operation with + customer-managed KMS keys from other Amazon Web Services accounts + within your organization, you must have the + `organizations:DescribeAccount` permission. + + + + Errors + + : - You might receive an `InvalidRequest` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - The `UpdateObjectEncryption` operation doesn't supported + unencrypted source objects. Only source objects encrypted with + SSE-S3 or SSE-KMS are supported. + + - The `UpdateObjectEncryption` operation doesn't support source + objects with the encryption type DSSE-KMS or SSE-C. Only source + objects encrypted with SSE-S3 or SSE-KMS are supported. + + - The `UpdateObjectEncryption` operation doesn't support updating + the encryption type to DSSE-KMS or SSE-C. Modify the request to + specify SSE-KMS for the updated encryption type, and then try + again. + + - Requests that modify an object encryption configuration require + Amazon Web Services Signature Version 4. Modify the request to use + Amazon Web Services Signature Version 4, and then try again. + + - Requests that modify an object encryption configuration require a + valid new encryption type. Valid values are `SSEKMS`. Modify the + request to specify SSE-KMS for the updated encryption type, and + then try again. + + - Requests that modify an object's encryption type to SSE-KMS + require an Amazon Web Services KMS key Amazon Resource Name (ARN). + Modify the request to specify a KMS key ARN, and then try again. + + - Requests that modify an object's encryption type to SSE-KMS + require a valid Amazon Web Services KMS key Amazon Resource Name + (ARN). Confirm that you have a correctly formatted KMS key ARN in + your request, and then try again. + + - The `BucketKeyEnabled` value isn't valid. Valid values are `true` + or `false`. Modify the request to specify a valid value, and then + try again. + + - You might receive an `AccessDenied` error for several reasons. + Depending on the reason for the error, you might receive one of the + following messages: + + - The Amazon Web Services KMS key in the request must be owned by + the same account as the bucket. Modify the request to specify a + KMS key from the same account, and then try again. + + - The bucket owner's account was approved to make + `UpdateObjectEncryption` requests that use any Amazon Web Services + KMS key in their organization, but the bucket owner's account + isn't part of an organization in Organizations. Make sure that + the bucket owner's account and the specified KMS key belong to + the same organization, and then try again. + + - The specified Amazon Web Services KMS key must be from the same + organization in Organizations as the bucket. Specify a KMS key + that belongs to the same organization as the bucket, and then try + again. + + - The encryption type for the specified object can't be updated + because that object is protected by S3 Object Lock. If the object + has a governance-mode retention period or a legal hold, you must + first remove the Object Lock status on the object before you issue + your `UpdateObjectEncryption` request. You can't use the + `UpdateObjectEncryption` operation with objects that have an + Object Lock compliance mode retention period applied to them. + + Args: + input: + An instance of `UpdateObjectEncryptionInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UpdateObjectEncryptionOutput`. + """ + return self._invoke(input, _models.UPDATE_OBJECT_ENCRYPTION, [], plugins) + + def upload_part( + self, input: UploadPartInput, plugins: list[Plugin] | None = None + ) -> UploadPartOutput: + """ + Uploads a part in a multipart upload. + + Note: + In this operation, you provide new data as a part of an object in your + request. However, you have an option to specify your existing Amazon S3 + object as a data source for the part you are uploading. To upload a part + from an existing object, you use the + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) + operation. + + You must initiate a multipart upload (see + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)) + before you can upload any part. In response to your initiate request, + Amazon S3 returns an upload ID, a unique identifier that you must + include in your upload part request. + + Part numbers can be any number from 1 to 10,000, inclusive. A part + number uniquely identifies a part and also defines its position within + the object being created. If you upload a new part using the same part + number that was used with a previous part, the previously uploaded part + is overwritten. + + For information about maximum and minimum part sizes and other multipart + upload specifications, see [Multipart upload + limits](https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) + in the *Amazon S3 User Guide*. + + Note: + After you initiate multipart upload and upload one or more parts, you + must either complete or abort multipart upload in order to stop getting + charged for storage of the uploaded parts. Only after you either + complete or abort multipart upload, Amazon S3 frees up the parts storage + and stops charging you for the parts storage. + + For more information on multipart uploads, go to [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide* . + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Permissions + + : - **General purpose bucket permissions** - To perform a multipart + upload with encryption using an Key Management Service key, the + requester must have permission to the `kms:Decrypt` and + `kms:GenerateDataKey` actions on the key. The requester must also + have permissions for the `kms:GenerateDataKey` action for the + `CreateMultipartUpload` API. Then, the requester needs permissions + for the `kms:Decrypt` action on the `UploadPart` and + `UploadPartCopy` APIs. + + These permissions are required because Amazon S3 must decrypt and + read data from the encrypted file parts before it completes the + multipart upload. For more information about KMS permissions, see + [Protecting data using server-side encryption with + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. For information about the permissions + required to use the multipart upload API, see [Multipart upload and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + and [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - To grant access to this API + operation on a directory bucket, we recommend that you use the + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + API operation for session-based authorization. Specifically, you + grant the `s3express:CreateSession` permission to the directory + bucket in a bucket policy or an IAM identity-based policy. Then, you + make the `CreateSession` API call on the bucket to obtain a session + token. With the session token in your request header, you can make + API requests to this operation. After the session token expires, you + make another `CreateSession` API call to generate a new session + token for use. Amazon Web Services CLI or SDKs create session and + refresh the session token automatically to avoid service + interruptions when a session expires. For more information about + authorization, see + [`CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) + . + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + Data integrity + + : **General purpose bucket** - To ensure that data is not corrupted + traversing the network, specify the `Content-MD5` header in the upload + part request. Amazon S3 checks the part data against the provided MD5 + value. If they do not match, Amazon S3 returns an error. If the upload + request is signed with Signature Version 4, then Amazon Web Services + S3 uses the `x-amz-content-sha256` header as a checksum instead of + `Content-MD5`. For more information see [Authenticating Requests: + Using the Authorization Header (Amazon Web Services Signature Version + 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). + + Note: + **Directory buckets** - MD5 is not supported by directory buckets. You + can use checksum algorithms to check object integrity. + + Encryption + + : - **General purpose bucket** - Server-side encryption is for data + encryption at rest. Amazon S3 encrypts your data as it writes it to + disks in its data centers and decrypts it when you access it. You + have 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), + and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with + server-side encryption using Amazon S3 managed keys (SSE-S3) by + default. You can optionally tell Amazon S3 to encrypt data at rest + using server-side encryption with other key options. The option you + use depends on whether you want to use KMS keys (SSE-KMS) or provide + your own encryption key (SSE-C). + + Server-side encryption is supported by the S3 Multipart Upload + operations. Unless you are using a customer-provided encryption key + (SSE-C), you don't need to specify the encryption parameters in + each UploadPart request. Instead, you only need to specify the + server-side encryption parameters in the initial Initiate Multipart + request. For more information, see + [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). + + Note: + If you have server-side encryption with customer-provided keys + (SSE-C) blocked for your general purpose bucket, you will get an + HTTP 403 Access Denied error when you specify the SSE-C request + headers while writing new data to your bucket. For more information, + see [Blocking or unblocking SSE-C for a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + If you request server-side encryption using a customer-provided + encryption key (SSE-C) in your initiate multipart upload request, + you must provide identical encryption information in each part + upload using the following request headers. + + - x-amz-server-side-encryption-customer-algorithm + + - x-amz-server-side-encryption-customer-key + + - x-amz-server-side-encryption-customer-key-MD5 + + For more information, see [Using Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). + + Special errors + + : - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + - SOAP Fault Code Prefix: Client + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `UploadPart`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UploadPartInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadPartOutput`. + """ + return self._invoke(input, _models.UPLOAD_PART, [], plugins) + + def upload_part_copy( + self, input: UploadPartCopyInput, plugins: list[Plugin] | None = None + ) -> UploadPartCopyOutput: + """ + Uploads a part by copying data from an existing object as data source. + To specify the data source, you add the request header + `x-amz-copy-source` in your request. To specify a byte range, you add + the request header `x-amz-copy-source-range` in your request. + + For information about maximum and minimum part sizes and other multipart + upload specifications, see [Multipart upload + limits](https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) + in the *Amazon S3 User Guide*. + + Note: + Instead of copying data from an existing object as part data, you might + use the + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + action to upload new data as a part of an object in your request. + + You must initiate a multipart upload before you can upload any part. In + response to your initiate request, Amazon S3 returns the upload ID, a + unique identifier that you must include in your upload part request. + + For conceptual information about multipart uploads, see [Uploading + Objects Using Multipart + Upload](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) + in the *Amazon S3 User Guide*. For information about copying objects + using a single atomic action vs. a multipart upload, see [Operations on + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - For directory buckets, you must make requests + for this API operation to the Zonal endpoint. These endpoints support + virtual-hosted-style requests in the format + `https://`*`amzn-s3-demo-bucket`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com/`*`key-name`*` `. + Path-style requests are not supported. For more information about + endpoints in Availability Zones, see [Regional and Zonal endpoints for + directory buckets in Availability + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html) + in the *Amazon S3 User Guide*. For more information about endpoints in + Local Zones, see [Concepts for directory buckets in Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html) + in the *Amazon S3 User Guide*. + + Authentication and authorization + + : All `UploadPartCopy` requests must be authenticated and signed by + using IAM credentials (access key ID and secret access key for the IAM + identities). All headers with the `x-amz-` prefix, including + `x-amz-copy-source`, must be signed. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + **Directory buckets** - You must use IAM credentials to authenticate + and authorize your access to the `UploadPartCopy` API operation, + instead of using the temporary security credentials through the + `CreateSession` API operation. + + Amazon Web Services CLI or SDKs handles authentication and + authorization on your behalf. + + Permissions + + : You must have `READ` access to the source object and `WRITE` access to + the destination bucket. + + - **General purpose bucket permissions** - You must have the + permissions in a policy based on the bucket types of your source + bucket and destination bucket in an `UploadPartCopy` operation. + + - If the source object is in a general purpose bucket, you must have + the **`s3:GetObject`** permission to read the source object that + is being copied. + + - If the destination bucket is a general purpose bucket, you must + have the **`s3:PutObject`** permission to write the object copy to + the destination bucket. + + - To perform a multipart upload with encryption using an Key + Management Service key, the requester must have permission to the + `kms:Decrypt` and `kms:GenerateDataKey` actions on the key. The + requester must also have permissions for the `kms:GenerateDataKey` + action for the `CreateMultipartUpload` API. Then, the requester + needs permissions for the `kms:Decrypt` action on the `UploadPart` + and `UploadPartCopy` APIs. These permissions are required because + Amazon S3 must decrypt and read data from the encrypted file parts + before it completes the multipart upload. For more information + about KMS permissions, see [Protecting data using server-side + encryption with + KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) + in the *Amazon S3 User Guide*. For information about the + permissions required to use the multipart upload API, see + [Multipart upload and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) + and [Multipart upload API and + permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) + in the *Amazon S3 User Guide*. + + - **Directory bucket permissions** - You must have permissions in a + bucket policy or an IAM identity-based policy based on the source + and destination bucket types in an `UploadPartCopy` operation. + + - If the source object that you want to copy is in a directory + bucket, you must have the **`s3express:CreateSession`** permission + in the `Action` element of a policy to read the object. If no + session mode is specified, the session will be created with the + maximum allowable privilege, attempting `ReadWrite` first, then + `ReadOnly` if `ReadWrite` is not permitted. If you want to + explicitly restrict the access to be read-only, you can set the + `s3express:SessionMode` condition key to `ReadOnly` on the copy + source bucket. + + - If the copy destination is a directory bucket, you must have the + **`s3express:CreateSession`** permission in the `Action` element + of a policy to write the object to the destination. The + `s3express:SessionMode` condition key cannot be set to `ReadOnly` + on the copy destination. + + If the object is encrypted with SSE-KMS, you must also have the + `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM + identity-based policies and KMS key policies for the KMS key. + + For example policies, see [Example bucket policies for S3 Express + One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) + and [Amazon Web Services Identity and Access Management (IAM) + identity-based policies for S3 Express One + Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) + in the *Amazon S3 User Guide*. + + Encryption + + : - **General purpose buckets** - For information about using + server-side encryption with customer-provided encryption keys with + the `UploadPartCopy` operation, see + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). + + Note: + If you have server-side encryption with customer-provided keys + (SSE-C) blocked for your general purpose bucket, you will get an + HTTP 403 Access Denied error when you specify the SSE-C request + headers while writing new data to your bucket. For more information, + see [Blocking or unblocking SSE-C for a general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). For more + information, see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + Note: + For directory buckets, when you perform a `CreateMultipartUpload` + operation and an `UploadPartCopy` operation, the request headers you + provide in the `CreateMultipartUpload` request must match the + default encryption configuration of the destination bucket. + + S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted + objects from general purpose buckets to directory buckets, from + directory buckets to general purpose buckets, or between directory + buckets, through + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html). + In this case, Amazon S3 makes a call to KMS every time a copy + request is made for a KMS-encrypted object. + + Special errors + + : - Error Code: `NoSuchUpload` + + - Description: The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have + been aborted or completed. + + - HTTP Status Code: 404 Not Found + + - Error Code: `InvalidRequest` + + - Description: The specified copy source is not supported as a + byte-range copy source. + + - HTTP Status Code: 400 Bad Request + + HTTP Host header syntax + + : **Directory buckets** - The HTTP Host header syntax is + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + + The following operations are related to `UploadPartCopy`: + + - [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) + + - [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) + + - [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) + + - [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) + + - [ListParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) + + - [ListMultipartUploads](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `UploadPartCopyInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `UploadPartCopyOutput`. + """ + return self._invoke(input, _models.UPLOAD_PART_COPY, [], plugins) + + def write_get_object_response( + self, input: WriteGetObjectResponseInput, plugins: list[Plugin] | None = None + ) -> WriteGetObjectResponseOutput: + """ + Note: + This operation is not supported for directory buckets. + + Passes transformed objects to a `GetObject` operation when using Object + Lambda access points. For information about Object Lambda access points, + see [Transforming objects with Object Lambda access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) + in the *Amazon S3 User Guide*. + + This operation supports metadata that can be returned by + [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), + in addition to `RequestRoute`, `RequestToken`, `StatusCode`, + `ErrorCode`, and `ErrorMessage`. The `GetObject` response metadata is + supported so that the `WriteGetObjectResponse` caller, typically an + Lambda function, can provide the same metadata when it internally + invokes `GetObject`. When `WriteGetObjectResponse` is called by a + customer-owned Lambda function, the metadata returned to the end user + `GetObject` call might differ from what Amazon S3 would normally return. + + You can include any number of metadata headers. When including a + metadata header, it should be prefaced with `x-amz-meta`. For example, + `x-amz-meta-my-custom-header: MyCustomValue`. The primary use case for + this is to forward `GetObject` metadata. + + Amazon Web Services provides some prebuilt Lambda functions that you can + use with S3 Object Lambda to detect and redact personally identifiable + information (PII) and decompress S3 objects. These Lambda functions are + available in the Amazon Web Services Serverless Application Repository, + and can be selected through the Amazon Web Services Management Console + when you create your Object Lambda access point. + + Example 1: PII Access Control - This Lambda function uses Amazon + Comprehend, a natural language processing (NLP) service using machine + learning to find insights and relationships in text. It automatically + detects personally identifiable information (PII) such as names, + addresses, dates, credit card numbers, and social security numbers from + documents in your Amazon S3 bucket. + + Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, + a natural language processing (NLP) service using machine learning to + find insights and relationships in text. It automatically redacts + personally identifiable information (PII) such as names, addresses, + dates, credit card numbers, and social security numbers from documents + in your Amazon S3 bucket. + + Example 3: Decompression - The Lambda function + S3ObjectLambdaDecompression, is equipped to decompress objects stored in + S3 in one of six compressed file formats including bzip2, gzip, snappy, + zlib, zstandard and ZIP. + + For information on how to view and use these functions, see [Using + Amazon Web Services built Lambda + functions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) + in the *Amazon S3 User Guide*. + + Warning: + You must URL encode any signed header values that contain spaces. For + example, if your header value is `my file.txt`, containing two spaces + after `my`, you must URL encode this value to `my%20%20file.txt`. + + Args: + input: + An instance of `WriteGetObjectResponseInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `WriteGetObjectResponseOutput`. + """ + return self._invoke(input, _models.WRITE_GET_OBJECT_RESPONSE, [], plugins) + + def _new_config(self) -> S3Config: + return S3Config.resolve() + + def _post_setup(self, config: S3Config) -> None: + if config.aws_credentials_identity_resolver is None: + config_context = config.resolution_context() + config_file = None + profile_name = None + if config_context is not None: + config_file = config_context.parsed_profiles() + if config_context.profile_source is ConfigSource.OVERRIDE: + profile_name = config_context.profile_name + config.aws_credentials_identity_resolver = IdentityChain.create( + AWSCredentialsIdentity, + config_file=config_file, + profile_name=profile_name, + region_override=config.region, + http_client=cast(HTTPClient | None, config.transport), + ) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/config.py b/clients/aws-sdk-s3/src/aws_sdk_s3/config.py new file mode 100644 index 00000000..589f3a06 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/config.py @@ -0,0 +1,847 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + ClassVar, + Self, + TYPE_CHECKING, + TypeAlias, + Union, + Unpack, +) + +from smithy_aws_core.auth.sigv4 import SigV4AuthScheme +from smithy_aws_core.config import FileSystem +from smithy_aws_core.config.aws_config import AwsConfig, AwsConfigOverrides +from smithy_aws_core.config.resolvers import ( + EndpointUriResolver, + resolve_bool_program, + resolve_request_checksum_calculation_program, + resolve_response_checksum_validation_program, + resolve_use_dualstack_endpoint_program, + resolve_use_fips_endpoint_program, +) +from smithy_aws_core.config.types import ( + FieldSpec, + RequestChecksumCalculation, + Resolved, + ResponseChecksumValidation, +) +from smithy_aws_core.config.validators import ( + validate_request_checksum_calculation, + validate_response_checksum_validation, +) +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity, AWSIdentityProperties +from smithy_aws_core.protocols import RestXmlClientProtocol +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interfaces import ( + ClientProtocol, + EndpointResolver, + ProtocolConstructor, + ProtocolSettings, +) +from smithy_core.interfaces.auth import AuthScheme, AuthSchemeResolver +from smithy_core.interfaces.identity import IdentityResolver +from smithy_core.program import Program +from smithy_core.shapes import ShapeID +from smithy_http.urllib3 import Urllib3HTTPClient + +from ._private.endpoints import BDD +from ._private.schemas import AMAZON_S3 +from .auth import HTTPAuthSchemeResolver + + +if TYPE_CHECKING: + from smithy_core.interceptors import Interceptor + from .models import ( + AbortMultipartUploadInput, + AbortMultipartUploadOutput, + CompleteMultipartUploadInput, + CompleteMultipartUploadOutput, + CopyObjectInput, + CopyObjectOutput, + CreateBucketInput, + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + CreateBucketOutput, + CreateMultipartUploadInput, + CreateMultipartUploadOutput, + CreateSessionInput, + CreateSessionOutput, + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + DeleteBucketCorsInput, + DeleteBucketCorsOutput, + DeleteBucketEncryptionInput, + DeleteBucketEncryptionOutput, + DeleteBucketInput, + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + DeleteBucketLifecycleInput, + DeleteBucketLifecycleOutput, + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + DeleteBucketOutput, + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + DeleteBucketPolicyInput, + DeleteBucketPolicyOutput, + DeleteBucketReplicationInput, + DeleteBucketReplicationOutput, + DeleteBucketTaggingInput, + DeleteBucketTaggingOutput, + DeleteBucketWebsiteInput, + DeleteBucketWebsiteOutput, + DeleteObjectAnnotationInput, + DeleteObjectAnnotationOutput, + DeleteObjectInput, + DeleteObjectOutput, + DeleteObjectTaggingInput, + DeleteObjectTaggingOutput, + DeleteObjectsInput, + DeleteObjectsOutput, + DeletePublicAccessBlockInput, + DeletePublicAccessBlockOutput, + GetBucketAbacInput, + GetBucketAbacOutput, + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + GetBucketAclInput, + GetBucketAclOutput, + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + GetBucketCorsInput, + GetBucketCorsOutput, + GetBucketEncryptionInput, + GetBucketEncryptionOutput, + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + GetBucketLocationInput, + GetBucketLocationOutput, + GetBucketLoggingInput, + GetBucketLoggingOutput, + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + GetBucketOwnershipControlsInput, + GetBucketOwnershipControlsOutput, + GetBucketPolicyInput, + GetBucketPolicyOutput, + GetBucketPolicyStatusInput, + GetBucketPolicyStatusOutput, + GetBucketReplicationInput, + GetBucketReplicationOutput, + GetBucketRequestPaymentInput, + GetBucketRequestPaymentOutput, + GetBucketTaggingInput, + GetBucketTaggingOutput, + GetBucketVersioningInput, + GetBucketVersioningOutput, + GetBucketWebsiteInput, + GetBucketWebsiteOutput, + GetObjectAclInput, + GetObjectAclOutput, + GetObjectAnnotationInput, + GetObjectAnnotationOutput, + GetObjectAttributesInput, + GetObjectAttributesOutput, + GetObjectInput, + GetObjectLegalHoldInput, + GetObjectLegalHoldOutput, + GetObjectLockConfigurationInput, + GetObjectLockConfigurationOutput, + GetObjectOutput, + GetObjectRetentionInput, + GetObjectRetentionOutput, + GetObjectTaggingInput, + GetObjectTaggingOutput, + GetObjectTorrentInput, + GetObjectTorrentOutput, + GetPublicAccessBlockInput, + GetPublicAccessBlockOutput, + HeadBucketInput, + HeadBucketOutput, + HeadObjectInput, + HeadObjectOutput, + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + ListBucketsInput, + ListBucketsOutput, + ListDirectoryBucketsInput, + ListDirectoryBucketsOutput, + ListMultipartUploadsInput, + ListMultipartUploadsOutput, + ListObjectAnnotationsInput, + ListObjectAnnotationsOutput, + ListObjectVersionsInput, + ListObjectVersionsOutput, + ListObjectsInput, + ListObjectsOutput, + ListObjectsV2Input, + ListObjectsV2Output, + ListPartsInput, + ListPartsOutput, + PutBucketAbacInput, + PutBucketAbacOutput, + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + PutBucketAclInput, + PutBucketAclOutput, + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + PutBucketCorsInput, + PutBucketCorsOutput, + PutBucketEncryptionInput, + PutBucketEncryptionOutput, + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + PutBucketLoggingInput, + PutBucketLoggingOutput, + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + PutBucketOwnershipControlsInput, + PutBucketOwnershipControlsOutput, + PutBucketPolicyInput, + PutBucketPolicyOutput, + PutBucketReplicationInput, + PutBucketReplicationOutput, + PutBucketRequestPaymentInput, + PutBucketRequestPaymentOutput, + PutBucketTaggingInput, + PutBucketTaggingOutput, + PutBucketVersioningInput, + PutBucketVersioningOutput, + PutBucketWebsiteInput, + PutBucketWebsiteOutput, + PutObjectAclInput, + PutObjectAclOutput, + PutObjectAnnotationInput, + PutObjectAnnotationOutput, + PutObjectInput, + PutObjectLegalHoldInput, + PutObjectLegalHoldOutput, + PutObjectLockConfigurationInput, + PutObjectLockConfigurationOutput, + PutObjectOutput, + PutObjectRetentionInput, + PutObjectRetentionOutput, + PutObjectTaggingInput, + PutObjectTaggingOutput, + PutPublicAccessBlockInput, + PutPublicAccessBlockOutput, + RenameObjectInput, + RenameObjectOutput, + RestoreObjectInput, + RestoreObjectOutput, + SelectObjectContentInput, + SelectObjectContentOutput, + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + UpdateObjectEncryptionInput, + UpdateObjectEncryptionOutput, + UploadPartCopyInput, + UploadPartCopyOutput, + UploadPartInput, + UploadPartOutput, + WriteGetObjectResponseInput, + WriteGetObjectResponseOutput, + ) + + _ServiceInterceptor = Union[ + Interceptor[AbortMultipartUploadInput, AbortMultipartUploadOutput, Any, Any], + Interceptor[ + CompleteMultipartUploadInput, CompleteMultipartUploadOutput, Any, Any + ], + Interceptor[CopyObjectInput, CopyObjectOutput, Any, Any], + Interceptor[CreateBucketInput, CreateBucketOutput, Any, Any], + Interceptor[ + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[CreateMultipartUploadInput, CreateMultipartUploadOutput, Any, Any], + Interceptor[CreateSessionInput, CreateSessionOutput, Any, Any], + Interceptor[DeleteBucketInput, DeleteBucketOutput, Any, Any], + Interceptor[ + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[DeleteBucketCorsInput, DeleteBucketCorsOutput, Any, Any], + Interceptor[ + DeleteBucketEncryptionInput, DeleteBucketEncryptionOutput, Any, Any + ], + Interceptor[ + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[DeleteBucketLifecycleInput, DeleteBucketLifecycleOutput, Any, Any], + Interceptor[ + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + Any, + Any, + ], + Interceptor[DeleteBucketPolicyInput, DeleteBucketPolicyOutput, Any, Any], + Interceptor[ + DeleteBucketReplicationInput, DeleteBucketReplicationOutput, Any, Any + ], + Interceptor[DeleteBucketTaggingInput, DeleteBucketTaggingOutput, Any, Any], + Interceptor[DeleteBucketWebsiteInput, DeleteBucketWebsiteOutput, Any, Any], + Interceptor[DeleteObjectInput, DeleteObjectOutput, Any, Any], + Interceptor[ + DeleteObjectAnnotationInput, DeleteObjectAnnotationOutput, Any, Any + ], + Interceptor[DeleteObjectsInput, DeleteObjectsOutput, Any, Any], + Interceptor[DeleteObjectTaggingInput, DeleteObjectTaggingOutput, Any, Any], + Interceptor[ + DeletePublicAccessBlockInput, DeletePublicAccessBlockOutput, Any, Any + ], + Interceptor[GetBucketAbacInput, GetBucketAbacOutput, Any, Any], + Interceptor[ + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketAclInput, GetBucketAclOutput, Any, Any], + Interceptor[ + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketCorsInput, GetBucketCorsOutput, Any, Any], + Interceptor[GetBucketEncryptionInput, GetBucketEncryptionOutput, Any, Any], + Interceptor[ + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + Any, + Any, + ], + Interceptor[GetBucketLocationInput, GetBucketLocationOutput, Any, Any], + Interceptor[GetBucketLoggingInput, GetBucketLoggingOutput, Any, Any], + Interceptor[ + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + Any, + Any, + ], + Interceptor[ + GetBucketOwnershipControlsInput, GetBucketOwnershipControlsOutput, Any, Any + ], + Interceptor[GetBucketPolicyInput, GetBucketPolicyOutput, Any, Any], + Interceptor[GetBucketPolicyStatusInput, GetBucketPolicyStatusOutput, Any, Any], + Interceptor[GetBucketReplicationInput, GetBucketReplicationOutput, Any, Any], + Interceptor[ + GetBucketRequestPaymentInput, GetBucketRequestPaymentOutput, Any, Any + ], + Interceptor[GetBucketTaggingInput, GetBucketTaggingOutput, Any, Any], + Interceptor[GetBucketVersioningInput, GetBucketVersioningOutput, Any, Any], + Interceptor[GetBucketWebsiteInput, GetBucketWebsiteOutput, Any, Any], + Interceptor[GetObjectInput, GetObjectOutput, Any, Any], + Interceptor[GetObjectAclInput, GetObjectAclOutput, Any, Any], + Interceptor[GetObjectAnnotationInput, GetObjectAnnotationOutput, Any, Any], + Interceptor[GetObjectAttributesInput, GetObjectAttributesOutput, Any, Any], + Interceptor[GetObjectLegalHoldInput, GetObjectLegalHoldOutput, Any, Any], + Interceptor[ + GetObjectLockConfigurationInput, GetObjectLockConfigurationOutput, Any, Any + ], + Interceptor[GetObjectRetentionInput, GetObjectRetentionOutput, Any, Any], + Interceptor[GetObjectTaggingInput, GetObjectTaggingOutput, Any, Any], + Interceptor[GetObjectTorrentInput, GetObjectTorrentOutput, Any, Any], + Interceptor[GetPublicAccessBlockInput, GetPublicAccessBlockOutput, Any, Any], + Interceptor[HeadBucketInput, HeadBucketOutput, Any, Any], + Interceptor[HeadObjectInput, HeadObjectOutput, Any, Any], + Interceptor[ + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + Any, + Any, + ], + Interceptor[ + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + Any, + Any, + ], + Interceptor[ListBucketsInput, ListBucketsOutput, Any, Any], + Interceptor[ListDirectoryBucketsInput, ListDirectoryBucketsOutput, Any, Any], + Interceptor[ListMultipartUploadsInput, ListMultipartUploadsOutput, Any, Any], + Interceptor[ListObjectAnnotationsInput, ListObjectAnnotationsOutput, Any, Any], + Interceptor[ListObjectsInput, ListObjectsOutput, Any, Any], + Interceptor[ListObjectsV2Input, ListObjectsV2Output, Any, Any], + Interceptor[ListObjectVersionsInput, ListObjectVersionsOutput, Any, Any], + Interceptor[ListPartsInput, ListPartsOutput, Any, Any], + Interceptor[PutBucketAbacInput, PutBucketAbacOutput, Any, Any], + Interceptor[ + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketAclInput, PutBucketAclOutput, Any, Any], + Interceptor[ + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketCorsInput, PutBucketCorsOutput, Any, Any], + Interceptor[PutBucketEncryptionInput, PutBucketEncryptionOutput, Any, Any], + Interceptor[ + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + Any, + Any, + ], + Interceptor[PutBucketLoggingInput, PutBucketLoggingOutput, Any, Any], + Interceptor[ + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + Any, + Any, + ], + Interceptor[ + PutBucketOwnershipControlsInput, PutBucketOwnershipControlsOutput, Any, Any + ], + Interceptor[PutBucketPolicyInput, PutBucketPolicyOutput, Any, Any], + Interceptor[PutBucketReplicationInput, PutBucketReplicationOutput, Any, Any], + Interceptor[ + PutBucketRequestPaymentInput, PutBucketRequestPaymentOutput, Any, Any + ], + Interceptor[PutBucketTaggingInput, PutBucketTaggingOutput, Any, Any], + Interceptor[PutBucketVersioningInput, PutBucketVersioningOutput, Any, Any], + Interceptor[PutBucketWebsiteInput, PutBucketWebsiteOutput, Any, Any], + Interceptor[PutObjectInput, PutObjectOutput, Any, Any], + Interceptor[PutObjectAclInput, PutObjectAclOutput, Any, Any], + Interceptor[PutObjectAnnotationInput, PutObjectAnnotationOutput, Any, Any], + Interceptor[PutObjectLegalHoldInput, PutObjectLegalHoldOutput, Any, Any], + Interceptor[ + PutObjectLockConfigurationInput, PutObjectLockConfigurationOutput, Any, Any + ], + Interceptor[PutObjectRetentionInput, PutObjectRetentionOutput, Any, Any], + Interceptor[PutObjectTaggingInput, PutObjectTaggingOutput, Any, Any], + Interceptor[PutPublicAccessBlockInput, PutPublicAccessBlockOutput, Any, Any], + Interceptor[RenameObjectInput, RenameObjectOutput, Any, Any], + Interceptor[RestoreObjectInput, RestoreObjectOutput, Any, Any], + Interceptor[SelectObjectContentInput, SelectObjectContentOutput, Any, Any], + Interceptor[ + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + Any, + Any, + ], + Interceptor[ + UpdateObjectEncryptionInput, UpdateObjectEncryptionOutput, Any, Any + ], + Interceptor[UploadPartInput, UploadPartOutput, Any, Any], + Interceptor[UploadPartCopyInput, UploadPartCopyOutput, Any, Any], + Interceptor[ + WriteGetObjectResponseInput, WriteGetObjectResponseOutput, Any, Any + ], + ] +else: + _ServiceInterceptor = Any + +_PROTOCOL_SETTINGS = ProtocolSettings( + namespace="com.amazonaws.s3", + service_target="AmazonS3", + xml_namespace="http://s3.amazonaws.com/doc/2006-03-01/", + service_schema=AMAZON_S3, +) + + +def _resolve_use_arn_region(ctx: Any) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, env_vars=("AWS_S3_USE_ARN_REGION",), profile_keys=("s3_use_arn_region",) + ) + + +def _resolve_disable_multi_region_access_points( + ctx: Any, +) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, + env_vars=("AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS",), + profile_keys=("s3_disable_multiregion_access_points",), + ) + + +def _resolve_disable_s3_express_session_auth( + ctx: Any, +) -> Program[Resolved[bool | None]]: + return resolve_bool_program( + ctx, + env_vars=("AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",), + profile_keys=("s3_disable_express_session_auth",), + ) + + +class _S3ConfigOverrides(AwsConfigOverrides, total=False): + endpoint_resolver: EndpointResolver | None + protocol: ( + ClientProtocol[Any, Any] | ProtocolConstructor[ClientProtocol[Any, Any]] | None + ) + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None + auth_scheme_resolver: AuthSchemeResolver | None + force_path_style: bool | None + use_arn_region: bool | None + disable_multi_region_access_points: bool | None + use_accelerate_endpoint: bool | None + disable_s3_express_session_auth: bool | None + use_fips_endpoint: bool | None + use_dualstack_endpoint: bool | None + request_checksum_calculation: RequestChecksumCalculation | None + response_checksum_validation: ResponseChecksumValidation | None + + +@dataclass(kw_only=True, repr=False, init=False) +class S3Config(AwsConfig): + """S3 configuration.""" + + endpoint_resolver: EndpointResolver | None = None + """ + The endpoint resolver used to resolve the final endpoint per-operation + based on the configuration. + """ + + protocol: ClientProtocol[Any, Any] | None = None + """ + Pass a protocol class reference from smithy_aws_core.protocols to select + the protocol, e.g. protocol=AwsJson10ClientProtocol. For custom + protocols a protocol instance may also be passed. + """ + + interceptors: list[_ServiceInterceptor] = field(default_factory=lambda: []) + """ + The list of interceptors, which are hooks that are called during the + execution of a request. + """ + + auth_schemes: dict[ShapeID, AuthScheme[Any, Any, Any, Any]] | None = None + """A map of auth scheme ids to auth schemes.""" + + auth_scheme_resolver: AuthSchemeResolver | None = None + """ + An auth scheme resolver that determines the auth scheme for each + operation. + """ + + force_path_style: bool | None = None + """Forces this client to use path-style addressing for buckets.""" + + use_arn_region: bool | None = None + """ + Enables this client to use an ARN's region when constructing an + endpoint instead of the client's configured region. + """ + + disable_multi_region_access_points: bool | None = None + """Disables this client's usage of Multi-Region Access Points.""" + + use_accelerate_endpoint: bool | None = None + """Enables this client to use S3 Transfer Acceleration endpoints.""" + + disable_s3_express_session_auth: bool | None = None + """ + Disables this client's usage of Session Auth for S3Express buckets and + reverts to using conventional SigV4 for those. + """ + + use_fips_endpoint: bool | None = None + """ + 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. + """ + + use_dualstack_endpoint: bool | None = None + """ + When true, use the dual-stack endpoint. If the configured endpoint does + not support dual-stack, dispatching the request MAY return an error. + """ + + aws_credentials_identity_resolver: ( + IdentityResolver[AWSCredentialsIdentity, AWSIdentityProperties] | None + ) = None + """Resolves AWS Credentials. Required for operations that use Sigv4 Auth.""" + + region: str | None = None + """ + The AWS region to connect to. The configured region is used to determine + the service endpoint. + """ + + aws_access_key_id: str | None = None + """The identifier for a secret access key.""" + + aws_secret_access_key: str | None = None + """A secret access key that can be used to sign requests.""" + + aws_session_token: str | None = None + """The session token used with temporary AWS credentials.""" + + user_agent_extra: str | None = None + """Additional suffix to be added to the User-Agent header.""" + + sdk_ua_app_id: str | None = None + """ + A unique and opaque application ID that is appended to the User-Agent + header. + """ + + request_checksum_calculation: RequestChecksumCalculation | None = None + """ + When to calculate checksums of request payloads: ``when_supported`` + (the default) calculates them for every operation that supports request + checksums, and ``when_required`` only when the operation requires + one or an algorithm is set on the request, such as with + ``checksum_algorithm``. A checksum set on the request is sent as is. + """ + + response_checksum_validation: ResponseChecksumValidation | None = None + """ + When to validate the checksums of response payloads: + ``when_supported`` (the default) validates them for every operation + that models response checksums, and ``when_required`` only when + validation is enabled on the request, such as with + ``checksum_mode``. A payload is validated when it's read to the + end, and a mismatch raises ``ChecksumMismatchError``. + """ + + _FIELDS: ClassVar[dict[str, FieldSpec]] = { + "force_path_style": FieldSpec(default=None), + "use_arn_region": FieldSpec(default=None, resolver=_resolve_use_arn_region), + "disable_multi_region_access_points": FieldSpec( + default=None, resolver=_resolve_disable_multi_region_access_points + ), + "use_accelerate_endpoint": FieldSpec(default=None), + "disable_s3_express_session_auth": FieldSpec( + default=None, resolver=_resolve_disable_s3_express_session_auth + ), + "use_fips_endpoint": FieldSpec( + default=None, resolver=resolve_use_fips_endpoint_program + ), + "use_dualstack_endpoint": FieldSpec( + default=None, resolver=resolve_use_dualstack_endpoint_program + ), + "aws_credentials_identity_resolver": FieldSpec(default=None), + "region": FieldSpec(default=None), + "aws_access_key_id": FieldSpec(default=None), + "aws_secret_access_key": FieldSpec(default=None), + "aws_session_token": FieldSpec(default=None), + "user_agent_extra": FieldSpec(default=None), + "sdk_ua_app_id": FieldSpec(default=None), + "request_checksum_calculation": FieldSpec( + default="when_supported", + resolver=resolve_request_checksum_calculation_program, + validator=validate_request_checksum_calculation, + ), + "response_checksum_validation": FieldSpec( + default="when_supported", + resolver=resolve_response_checksum_validation_program, + validator=validate_response_checksum_validation, + ), + **AwsConfig._FIELDS, + "endpoint_uri": FieldSpec( + default=None, resolver=EndpointUriResolver("s3").program + ), + "endpoint_resolver": FieldSpec( + default_factory=lambda: BddEndpointResolver( + BDD, extensions=[AWS_RULES_EXTENSION] + ) + ), + "protocol": FieldSpec( + default_factory=lambda: RestXmlClientProtocol(_PROTOCOL_SETTINGS), + converter=lambda p: p(_PROTOCOL_SETTINGS) if isinstance(p, type) else p, + ), + "auth_schemes": FieldSpec( + default_factory=lambda: { + ShapeID("aws.auth#sigv4"): SigV4AuthScheme(service="s3") + } + ), + "auth_scheme_resolver": FieldSpec(default_factory=HTTPAuthSchemeResolver), + "transport": FieldSpec(default_factory=lambda: Urllib3HTTPClient()), + } + + def set_auth_scheme(self, scheme: AuthScheme[Any, Any, Any, Any]) -> None: + """ + Set an auth scheme implementation using its scheme ID. :param scheme: + The auth scheme to add or replace. + """ + auth_schemes = dict(self.auth_schemes or {}) + auth_schemes[scheme.scheme_id] = scheme + self.auth_schemes = auth_schemes + + @classmethod + def resolve( # pyright: ignore[reportIncompatibleMethodOverride] + cls, + *, + profile: str | None = None, + fs: FileSystem | None = None, + config_file_path: str | None = None, + credentials_file_path: str | None = None, + **overrides: Unpack[_S3ConfigOverrides], + ) -> Self: + """ + Resolve config from environment, config files, defaults, and explicit + overrides. + """ + return cls._resolve( + profile=profile, + fs=fs, + config_file_path=config_file_path, + credentials_file_path=credentials_file_path, + overrides=overrides, + ) + + +Plugin: TypeAlias = Callable[[S3Config], None] +""" +A callable that customizes a client configuration. Service-level plugins +are applied once to the base configuration inherited by every operation. +Operation-level plugins apply only to a single operation invocation. +""" diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/models.py b/clients/aws-sdk-s3/src/aws_sdk_s3/models.py new file mode 100644 index 00000000..b8e86148 --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/models.py @@ -0,0 +1,1757 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from ._private import schemas as _schemas +from smithy_core._dynamic_models import ModelRegistry +from smithy_core.exceptions import ModeledError +from smithy_core.schemas import APIOperation +from smithy_core.shapes import ShapeID + + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + + +_registry = ModelRegistry( + _schemas, + renames={}, + index={ + "AbacStatus": "ABAC_STATUS", + "AbortIncompleteMultipartUpload": "ABORT_INCOMPLETE_MULTIPART_UPLOAD", + "AbortMultipartUploadInput": "ABORT_MULTIPART_UPLOAD_INPUT", + "AbortMultipartUploadOutput": "ABORT_MULTIPART_UPLOAD_OUTPUT", + "AccelerateConfiguration": "ACCELERATE_CONFIGURATION", + "AccessControlPolicy": "ACCESS_CONTROL_POLICY", + "AccessControlTranslation": "ACCESS_CONTROL_TRANSLATION", + "AccessDenied": "ACCESS_DENIED", + "AnalyticsAndOperator": "ANALYTICS_AND_OPERATOR", + "AnalyticsConfiguration": "ANALYTICS_CONFIGURATION", + "AnalyticsExportDestination": "ANALYTICS_EXPORT_DESTINATION", + "AnalyticsFilter": "ANALYTICS_FILTER", + "AnalyticsFilterPrefix": "ANALYTICS_FILTER", + "AnalyticsFilterTag": "ANALYTICS_FILTER", + "AnalyticsFilterAnd": "ANALYTICS_FILTER", + "AnalyticsFilterUnknown": "ANALYTICS_FILTER", + "AnalyticsS3BucketDestination": "ANALYTICS_S3_BUCKET_DESTINATION", + "AnalyticsS3ExportFileFormat": "ANALYTICS_S3_EXPORT_FILE_FORMAT", + "AnnotationConfigurationState": "ANNOTATION_CONFIGURATION_STATE", + "AnnotationDirective": "ANNOTATION_DIRECTIVE", + "AnnotationEntry": "ANNOTATION_ENTRY", + "AnnotationLimitExceeded": "ANNOTATION_LIMIT_EXCEEDED", + "AnnotationNameTooLong": "ANNOTATION_NAME_TOO_LONG", + "AnnotationTableConfiguration": "ANNOTATION_TABLE_CONFIGURATION", + "AnnotationTableConfigurationResult": "ANNOTATION_TABLE_CONFIGURATION_RESULT", + "AnnotationTableConfigurationUpdates": "ANNOTATION_TABLE_CONFIGURATION_UPDATES", + "ArchiveStatus": "ARCHIVE_STATUS", + "BlockedEncryptionTypes": "BLOCKED_ENCRYPTION_TYPES", + "Bucket": "BUCKET", + "BucketAbacStatus": "BUCKET_ABAC_STATUS", + "BucketAccelerateStatus": "BUCKET_ACCELERATE_STATUS", + "BucketAlreadyExists": "BUCKET_ALREADY_EXISTS", + "BucketAlreadyOwnedByYou": "BUCKET_ALREADY_OWNED_BY_YOU", + "BucketCannedACL": "BUCKET_CANNED_ACL", + "BucketInfo": "BUCKET_INFO", + "BucketLifecycleConfiguration": "BUCKET_LIFECYCLE_CONFIGURATION", + "BucketLocationConstraint": "BUCKET_LOCATION_CONSTRAINT", + "BucketLoggingStatus": "BUCKET_LOGGING_STATUS", + "BucketLogsPermission": "BUCKET_LOGS_PERMISSION", + "BucketNamespace": "BUCKET_NAMESPACE", + "BucketType": "BUCKET_TYPE", + "BucketVersioningStatus": "BUCKET_VERSIONING_STATUS", + "Checksum": "CHECKSUM", + "ChecksumAlgorithm": "CHECKSUM_ALGORITHM", + "ChecksumMode": "CHECKSUM_MODE", + "ChecksumType": "CHECKSUM_TYPE", + "CommonPrefix": "COMMON_PREFIX", + "CompletedMultipartUpload": "COMPLETED_MULTIPART_UPLOAD", + "CompletedPart": "COMPLETED_PART", + "CompleteMultipartUploadInput": "COMPLETE_MULTIPART_UPLOAD_INPUT", + "CompleteMultipartUploadOutput": "COMPLETE_MULTIPART_UPLOAD_OUTPUT", + "CompressionType": "COMPRESSION_TYPE", + "Condition": "CONDITION", + "ContinuationEvent": "CONTINUATION_EVENT", + "CopyObjectInput": "COPY_OBJECT_INPUT", + "CopyObjectOutput": "COPY_OBJECT_OUTPUT", + "CopyObjectResult": "COPY_OBJECT_RESULT", + "CopyPartResult": "COPY_PART_RESULT", + "CORSConfiguration": "CORS_CONFIGURATION", + "CORSRule": "CORS_RULE", + "CreateBucketConfiguration": "CREATE_BUCKET_CONFIGURATION", + "CreateBucketInput": "CREATE_BUCKET_INPUT", + "CreateBucketMetadataConfigurationInput": "CREATE_BUCKET_METADATA_CONFIGURATION_INPUT", + "CreateBucketMetadataConfigurationOutput": "CREATE_BUCKET_METADATA_CONFIGURATION_OUTPUT", + "CreateBucketMetadataTableConfigurationInput": "CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT", + "CreateBucketMetadataTableConfigurationOutput": "CREATE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT", + "CreateBucketOutput": "CREATE_BUCKET_OUTPUT", + "CreateMultipartUploadInput": "CREATE_MULTIPART_UPLOAD_INPUT", + "CreateMultipartUploadOutput": "CREATE_MULTIPART_UPLOAD_OUTPUT", + "CreateSessionInput": "CREATE_SESSION_INPUT", + "CreateSessionOutput": "CREATE_SESSION_OUTPUT", + "CSVInput": "CSV_INPUT", + "CSVOutput": "CSV_OUTPUT", + "DataRedundancy": "DATA_REDUNDANCY", + "DefaultRetention": "DEFAULT_RETENTION", + "Delete": "DELETE", + "DeleteBucketAnalyticsConfigurationInput": "DELETE_BUCKET_ANALYTICS_CONFIGURATION_INPUT", + "DeleteBucketAnalyticsConfigurationOutput": "DELETE_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT", + "DeleteBucketCorsInput": "DELETE_BUCKET_CORS_INPUT", + "DeleteBucketCorsOutput": "DELETE_BUCKET_CORS_OUTPUT", + "DeleteBucketEncryptionInput": "DELETE_BUCKET_ENCRYPTION_INPUT", + "DeleteBucketEncryptionOutput": "DELETE_BUCKET_ENCRYPTION_OUTPUT", + "DeleteBucketInput": "DELETE_BUCKET_INPUT", + "DeleteBucketIntelligentTieringConfigurationInput": "DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT", + "DeleteBucketIntelligentTieringConfigurationOutput": "DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT", + "DeleteBucketInventoryConfigurationInput": "DELETE_BUCKET_INVENTORY_CONFIGURATION_INPUT", + "DeleteBucketInventoryConfigurationOutput": "DELETE_BUCKET_INVENTORY_CONFIGURATION_OUTPUT", + "DeleteBucketLifecycleInput": "DELETE_BUCKET_LIFECYCLE_INPUT", + "DeleteBucketLifecycleOutput": "DELETE_BUCKET_LIFECYCLE_OUTPUT", + "DeleteBucketMetadataConfigurationInput": "DELETE_BUCKET_METADATA_CONFIGURATION_INPUT", + "DeleteBucketMetadataConfigurationOutput": "DELETE_BUCKET_METADATA_CONFIGURATION_OUTPUT", + "DeleteBucketMetadataTableConfigurationInput": "DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT", + "DeleteBucketMetadataTableConfigurationOutput": "DELETE_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT", + "DeleteBucketMetricsConfigurationInput": "DELETE_BUCKET_METRICS_CONFIGURATION_INPUT", + "DeleteBucketMetricsConfigurationOutput": "DELETE_BUCKET_METRICS_CONFIGURATION_OUTPUT", + "DeleteBucketOutput": "DELETE_BUCKET_OUTPUT", + "DeleteBucketOwnershipControlsInput": "DELETE_BUCKET_OWNERSHIP_CONTROLS_INPUT", + "DeleteBucketOwnershipControlsOutput": "DELETE_BUCKET_OWNERSHIP_CONTROLS_OUTPUT", + "DeleteBucketPolicyInput": "DELETE_BUCKET_POLICY_INPUT", + "DeleteBucketPolicyOutput": "DELETE_BUCKET_POLICY_OUTPUT", + "DeleteBucketReplicationInput": "DELETE_BUCKET_REPLICATION_INPUT", + "DeleteBucketReplicationOutput": "DELETE_BUCKET_REPLICATION_OUTPUT", + "DeleteBucketTaggingInput": "DELETE_BUCKET_TAGGING_INPUT", + "DeleteBucketTaggingOutput": "DELETE_BUCKET_TAGGING_OUTPUT", + "DeleteBucketWebsiteInput": "DELETE_BUCKET_WEBSITE_INPUT", + "DeleteBucketWebsiteOutput": "DELETE_BUCKET_WEBSITE_OUTPUT", + "DeletedObject": "DELETED_OBJECT", + "DeleteMarkerEntry": "DELETE_MARKER_ENTRY", + "DeleteMarkerReplication": "DELETE_MARKER_REPLICATION", + "DeleteMarkerReplicationStatus": "DELETE_MARKER_REPLICATION_STATUS", + "DeleteObjectAnnotationInput": "DELETE_OBJECT_ANNOTATION_INPUT", + "DeleteObjectAnnotationOutput": "DELETE_OBJECT_ANNOTATION_OUTPUT", + "DeleteObjectInput": "DELETE_OBJECT_INPUT", + "DeleteObjectOutput": "DELETE_OBJECT_OUTPUT", + "DeleteObjectsInput": "DELETE_OBJECTS_INPUT", + "DeleteObjectsOutput": "DELETE_OBJECTS_OUTPUT", + "DeleteObjectTaggingInput": "DELETE_OBJECT_TAGGING_INPUT", + "DeleteObjectTaggingOutput": "DELETE_OBJECT_TAGGING_OUTPUT", + "DeletePublicAccessBlockInput": "DELETE_PUBLIC_ACCESS_BLOCK_INPUT", + "DeletePublicAccessBlockOutput": "DELETE_PUBLIC_ACCESS_BLOCK_OUTPUT", + "Destination": "DESTINATION", + "DestinationResult": "DESTINATION_RESULT", + "EncodingType": "ENCODING_TYPE", + "Encryption": "ENCRYPTION", + "EncryptionConfiguration": "ENCRYPTION_CONFIGURATION", + "EncryptionType": "ENCRYPTION_TYPE", + "EncryptionTypeMismatch": "ENCRYPTION_TYPE_MISMATCH", + "EndEvent": "END_EVENT", + "Error": "ERROR", + "ErrorDetails": "ERROR_DETAILS", + "ErrorDocument": "ERROR_DOCUMENT", + "Event": "EVENT", + "EventBridgeConfiguration": "EVENT_BRIDGE_CONFIGURATION", + "EventHoldDuration": "EVENT_HOLD_DURATION", + "ExistingObjectReplication": "EXISTING_OBJECT_REPLICATION", + "ExistingObjectReplicationStatus": "EXISTING_OBJECT_REPLICATION_STATUS", + "ExpirationState": "EXPIRATION_STATE", + "ExpirationStatus": "EXPIRATION_STATUS", + "ExpressionType": "EXPRESSION_TYPE", + "FileHeaderInfo": "FILE_HEADER_INFO", + "FilterRule": "FILTER_RULE", + "FilterRuleName": "FILTER_RULE_NAME", + "GetBucketAbacInput": "GET_BUCKET_ABAC_INPUT", + "GetBucketAbacOutput": "GET_BUCKET_ABAC_OUTPUT", + "GetBucketAccelerateConfigurationInput": "GET_BUCKET_ACCELERATE_CONFIGURATION_INPUT", + "GetBucketAccelerateConfigurationOutput": "GET_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT", + "GetBucketAclInput": "GET_BUCKET_ACL_INPUT", + "GetBucketAclOutput": "GET_BUCKET_ACL_OUTPUT", + "GetBucketAnalyticsConfigurationInput": "GET_BUCKET_ANALYTICS_CONFIGURATION_INPUT", + "GetBucketAnalyticsConfigurationOutput": "GET_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT", + "GetBucketCorsInput": "GET_BUCKET_CORS_INPUT", + "GetBucketCorsOutput": "GET_BUCKET_CORS_OUTPUT", + "GetBucketEncryptionInput": "GET_BUCKET_ENCRYPTION_INPUT", + "GetBucketEncryptionOutput": "GET_BUCKET_ENCRYPTION_OUTPUT", + "GetBucketIntelligentTieringConfigurationInput": "GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT", + "GetBucketIntelligentTieringConfigurationOutput": "GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT", + "GetBucketInventoryConfigurationInput": "GET_BUCKET_INVENTORY_CONFIGURATION_INPUT", + "GetBucketInventoryConfigurationOutput": "GET_BUCKET_INVENTORY_CONFIGURATION_OUTPUT", + "GetBucketLifecycleConfigurationInput": "GET_BUCKET_LIFECYCLE_CONFIGURATION_INPUT", + "GetBucketLifecycleConfigurationOutput": "GET_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT", + "GetBucketLocationInput": "GET_BUCKET_LOCATION_INPUT", + "GetBucketLocationOutput": "GET_BUCKET_LOCATION_OUTPUT", + "GetBucketLoggingInput": "GET_BUCKET_LOGGING_INPUT", + "GetBucketLoggingOutput": "GET_BUCKET_LOGGING_OUTPUT", + "GetBucketMetadataConfigurationInput": "GET_BUCKET_METADATA_CONFIGURATION_INPUT", + "GetBucketMetadataConfigurationOutput": "GET_BUCKET_METADATA_CONFIGURATION_OUTPUT", + "GetBucketMetadataConfigurationResult": "GET_BUCKET_METADATA_CONFIGURATION_RESULT", + "GetBucketMetadataTableConfigurationInput": "GET_BUCKET_METADATA_TABLE_CONFIGURATION_INPUT", + "GetBucketMetadataTableConfigurationOutput": "GET_BUCKET_METADATA_TABLE_CONFIGURATION_OUTPUT", + "GetBucketMetadataTableConfigurationResult": "GET_BUCKET_METADATA_TABLE_CONFIGURATION_RESULT", + "GetBucketMetricsConfigurationInput": "GET_BUCKET_METRICS_CONFIGURATION_INPUT", + "GetBucketMetricsConfigurationOutput": "GET_BUCKET_METRICS_CONFIGURATION_OUTPUT", + "GetBucketNotificationConfigurationInput": "GET_BUCKET_NOTIFICATION_CONFIGURATION_INPUT", + "GetBucketNotificationConfigurationOutput": "GET_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT", + "GetBucketOwnershipControlsInput": "GET_BUCKET_OWNERSHIP_CONTROLS_INPUT", + "GetBucketOwnershipControlsOutput": "GET_BUCKET_OWNERSHIP_CONTROLS_OUTPUT", + "GetBucketPolicyInput": "GET_BUCKET_POLICY_INPUT", + "GetBucketPolicyOutput": "GET_BUCKET_POLICY_OUTPUT", + "GetBucketPolicyStatusInput": "GET_BUCKET_POLICY_STATUS_INPUT", + "GetBucketPolicyStatusOutput": "GET_BUCKET_POLICY_STATUS_OUTPUT", + "GetBucketReplicationInput": "GET_BUCKET_REPLICATION_INPUT", + "GetBucketReplicationOutput": "GET_BUCKET_REPLICATION_OUTPUT", + "GetBucketRequestPaymentInput": "GET_BUCKET_REQUEST_PAYMENT_INPUT", + "GetBucketRequestPaymentOutput": "GET_BUCKET_REQUEST_PAYMENT_OUTPUT", + "GetBucketTaggingInput": "GET_BUCKET_TAGGING_INPUT", + "GetBucketTaggingOutput": "GET_BUCKET_TAGGING_OUTPUT", + "GetBucketVersioningInput": "GET_BUCKET_VERSIONING_INPUT", + "GetBucketVersioningOutput": "GET_BUCKET_VERSIONING_OUTPUT", + "GetBucketWebsiteInput": "GET_BUCKET_WEBSITE_INPUT", + "GetBucketWebsiteOutput": "GET_BUCKET_WEBSITE_OUTPUT", + "GetObjectAclInput": "GET_OBJECT_ACL_INPUT", + "GetObjectAclOutput": "GET_OBJECT_ACL_OUTPUT", + "GetObjectAnnotationInput": "GET_OBJECT_ANNOTATION_INPUT", + "GetObjectAnnotationOutput": "GET_OBJECT_ANNOTATION_OUTPUT", + "GetObjectAttributesInput": "GET_OBJECT_ATTRIBUTES_INPUT", + "GetObjectAttributesOutput": "GET_OBJECT_ATTRIBUTES_OUTPUT", + "GetObjectAttributesParts": "GET_OBJECT_ATTRIBUTES_PARTS", + "GetObjectInput": "GET_OBJECT_INPUT", + "GetObjectLegalHoldInput": "GET_OBJECT_LEGAL_HOLD_INPUT", + "GetObjectLegalHoldOutput": "GET_OBJECT_LEGAL_HOLD_OUTPUT", + "GetObjectLockConfigurationInput": "GET_OBJECT_LOCK_CONFIGURATION_INPUT", + "GetObjectLockConfigurationOutput": "GET_OBJECT_LOCK_CONFIGURATION_OUTPUT", + "GetObjectOutput": "GET_OBJECT_OUTPUT", + "GetObjectRetentionInput": "GET_OBJECT_RETENTION_INPUT", + "GetObjectRetentionOutput": "GET_OBJECT_RETENTION_OUTPUT", + "GetObjectTaggingInput": "GET_OBJECT_TAGGING_INPUT", + "GetObjectTaggingOutput": "GET_OBJECT_TAGGING_OUTPUT", + "GetObjectTorrentInput": "GET_OBJECT_TORRENT_INPUT", + "GetObjectTorrentOutput": "GET_OBJECT_TORRENT_OUTPUT", + "GetPublicAccessBlockInput": "GET_PUBLIC_ACCESS_BLOCK_INPUT", + "GetPublicAccessBlockOutput": "GET_PUBLIC_ACCESS_BLOCK_OUTPUT", + "GlacierJobParameters": "GLACIER_JOB_PARAMETERS", + "Grant": "GRANT", + "Grantee": "GRANTEE", + "HeadBucketInput": "HEAD_BUCKET_INPUT", + "HeadBucketOutput": "HEAD_BUCKET_OUTPUT", + "HeadObjectInput": "HEAD_OBJECT_INPUT", + "HeadObjectOutput": "HEAD_OBJECT_OUTPUT", + "IdempotencyParameterMismatch": "IDEMPOTENCY_PARAMETER_MISMATCH", + "IndexDocument": "INDEX_DOCUMENT", + "Initiator": "INITIATOR", + "InputSerialization": "INPUT_SERIALIZATION", + "IntelligentTieringAccessTier": "INTELLIGENT_TIERING_ACCESS_TIER", + "IntelligentTieringAndOperator": "INTELLIGENT_TIERING_AND_OPERATOR", + "IntelligentTieringConfiguration": "INTELLIGENT_TIERING_CONFIGURATION", + "IntelligentTieringFilter": "INTELLIGENT_TIERING_FILTER", + "IntelligentTieringStatus": "INTELLIGENT_TIERING_STATUS", + "InvalidAnnotationName": "INVALID_ANNOTATION_NAME", + "InvalidObjectState": "INVALID_OBJECT_STATE", + "InvalidPrefix": "INVALID_PREFIX", + "InvalidRequest": "INVALID_REQUEST", + "InvalidWriteOffset": "INVALID_WRITE_OFFSET", + "InventoryConfiguration": "INVENTORY_CONFIGURATION", + "InventoryConfigurationState": "INVENTORY_CONFIGURATION_STATE", + "InventoryDestination": "INVENTORY_DESTINATION", + "InventoryEncryption": "INVENTORY_ENCRYPTION", + "InventoryFilter": "INVENTORY_FILTER", + "InventoryFormat": "INVENTORY_FORMAT", + "InventoryFrequency": "INVENTORY_FREQUENCY", + "InventoryIncludedObjectVersions": "INVENTORY_INCLUDED_OBJECT_VERSIONS", + "InventoryOptionalField": "INVENTORY_OPTIONAL_FIELD", + "InventoryS3BucketDestination": "INVENTORY_S3_BUCKET_DESTINATION", + "InventorySchedule": "INVENTORY_SCHEDULE", + "InventoryTableConfiguration": "INVENTORY_TABLE_CONFIGURATION", + "InventoryTableConfigurationResult": "INVENTORY_TABLE_CONFIGURATION_RESULT", + "InventoryTableConfigurationUpdates": "INVENTORY_TABLE_CONFIGURATION_UPDATES", + "JournalTableConfiguration": "JOURNAL_TABLE_CONFIGURATION", + "JournalTableConfigurationResult": "JOURNAL_TABLE_CONFIGURATION_RESULT", + "JournalTableConfigurationUpdates": "JOURNAL_TABLE_CONFIGURATION_UPDATES", + "JSONInput": "JSON_INPUT", + "JSONOutput": "JSON_OUTPUT", + "JSONType": "JSON_TYPE", + "LambdaFunctionConfiguration": "LAMBDA_FUNCTION_CONFIGURATION", + "LifecycleExpiration": "LIFECYCLE_EXPIRATION", + "LifecycleRule": "LIFECYCLE_RULE", + "LifecycleRuleAndOperator": "LIFECYCLE_RULE_AND_OPERATOR", + "LifecycleRuleFilter": "LIFECYCLE_RULE_FILTER", + "ListBucketAnalyticsConfigurationsInput": "LIST_BUCKET_ANALYTICS_CONFIGURATIONS_INPUT", + "ListBucketAnalyticsConfigurationsOutput": "LIST_BUCKET_ANALYTICS_CONFIGURATIONS_OUTPUT", + "ListBucketIntelligentTieringConfigurationsInput": "LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_INPUT", + "ListBucketIntelligentTieringConfigurationsOutput": "LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS_OUTPUT", + "ListBucketInventoryConfigurationsInput": "LIST_BUCKET_INVENTORY_CONFIGURATIONS_INPUT", + "ListBucketInventoryConfigurationsOutput": "LIST_BUCKET_INVENTORY_CONFIGURATIONS_OUTPUT", + "ListBucketMetricsConfigurationsInput": "LIST_BUCKET_METRICS_CONFIGURATIONS_INPUT", + "ListBucketMetricsConfigurationsOutput": "LIST_BUCKET_METRICS_CONFIGURATIONS_OUTPUT", + "ListBucketsInput": "LIST_BUCKETS_INPUT", + "ListBucketsOutput": "LIST_BUCKETS_OUTPUT", + "ListDirectoryBucketsInput": "LIST_DIRECTORY_BUCKETS_INPUT", + "ListDirectoryBucketsOutput": "LIST_DIRECTORY_BUCKETS_OUTPUT", + "ListMultipartUploadsInput": "LIST_MULTIPART_UPLOADS_INPUT", + "ListMultipartUploadsOutput": "LIST_MULTIPART_UPLOADS_OUTPUT", + "ListObjectAnnotationsInput": "LIST_OBJECT_ANNOTATIONS_INPUT", + "ListObjectAnnotationsOutput": "LIST_OBJECT_ANNOTATIONS_OUTPUT", + "ListObjectsInput": "LIST_OBJECTS_INPUT", + "ListObjectsOutput": "LIST_OBJECTS_OUTPUT", + "ListObjectsV2Input": "LIST_OBJECTS_V2_INPUT", + "ListObjectsV2Output": "LIST_OBJECTS_V2_OUTPUT", + "ListObjectVersionsInput": "LIST_OBJECT_VERSIONS_INPUT", + "ListObjectVersionsOutput": "LIST_OBJECT_VERSIONS_OUTPUT", + "ListPartsInput": "LIST_PARTS_INPUT", + "ListPartsOutput": "LIST_PARTS_OUTPUT", + "LocationInfo": "LOCATION_INFO", + "LocationType": "LOCATION_TYPE", + "LoggingEnabled": "LOGGING_ENABLED", + "MetadataConfiguration": "METADATA_CONFIGURATION", + "MetadataConfigurationResult": "METADATA_CONFIGURATION_RESULT", + "MetadataDirective": "METADATA_DIRECTIVE", + "MetadataEntry": "METADATA_ENTRY", + "MetadataTableConfiguration": "METADATA_TABLE_CONFIGURATION", + "MetadataTableConfigurationResult": "METADATA_TABLE_CONFIGURATION_RESULT", + "MetadataTableEncryptionConfiguration": "METADATA_TABLE_ENCRYPTION_CONFIGURATION", + "Metrics": "METRICS", + "MetricsAndOperator": "METRICS_AND_OPERATOR", + "MetricsConfiguration": "METRICS_CONFIGURATION", + "MetricsFilter": "METRICS_FILTER", + "MetricsFilterPrefix": "METRICS_FILTER", + "MetricsFilterTag": "METRICS_FILTER", + "MetricsFilterAccessPointArn": "METRICS_FILTER", + "MetricsFilterAnd": "METRICS_FILTER", + "MetricsFilterUnknown": "METRICS_FILTER", + "MetricsStatus": "METRICS_STATUS", + "MFADelete": "MFA_DELETE", + "MFADeleteStatus": "MFA_DELETE_STATUS", + "MultipartUpload": "MULTIPART_UPLOAD", + "NoncurrentVersionExpiration": "NONCURRENT_VERSION_EXPIRATION", + "NoncurrentVersionTransition": "NONCURRENT_VERSION_TRANSITION", + "NoSuchAnnotation": "NO_SUCH_ANNOTATION", + "NoSuchBucket": "NO_SUCH_BUCKET", + "NoSuchKey": "NO_SUCH_KEY", + "NoSuchUpload": "NO_SUCH_UPLOAD", + "NotFound": "NOT_FOUND", + "NotificationConfiguration": "NOTIFICATION_CONFIGURATION", + "NotificationConfigurationFilter": "NOTIFICATION_CONFIGURATION_FILTER", + "Object": "OBJECT", + "ObjectAlreadyInActiveTierError": "OBJECT_ALREADY_IN_ACTIVE_TIER_ERROR", + "ObjectAttributes": "OBJECT_ATTRIBUTES", + "ObjectCannedACL": "OBJECT_CANNED_ACL", + "ObjectEncryption": "OBJECT_ENCRYPTION", + "ObjectEncryptionSSEKMS": "OBJECT_ENCRYPTION", + "ObjectEncryptionUnknown": "OBJECT_ENCRYPTION", + "ObjectIdentifier": "OBJECT_IDENTIFIER", + "ObjectLockConfiguration": "OBJECT_LOCK_CONFIGURATION", + "ObjectLockEnabled": "OBJECT_LOCK_ENABLED", + "ObjectLockEventHold": "OBJECT_LOCK_EVENT_HOLD", + "ObjectLockLegalHold": "OBJECT_LOCK_LEGAL_HOLD", + "ObjectLockLegalHoldStatus": "OBJECT_LOCK_LEGAL_HOLD_STATUS", + "ObjectLockMode": "OBJECT_LOCK_MODE", + "ObjectLockRetention": "OBJECT_LOCK_RETENTION", + "ObjectLockRetentionMode": "OBJECT_LOCK_RETENTION_MODE", + "ObjectLockRule": "OBJECT_LOCK_RULE", + "ObjectNotInActiveTierError": "OBJECT_NOT_IN_ACTIVE_TIER_ERROR", + "ObjectOwnership": "OBJECT_OWNERSHIP", + "ObjectPart": "OBJECT_PART", + "ObjectStorageClass": "OBJECT_STORAGE_CLASS", + "ObjectVersion": "OBJECT_VERSION", + "ObjectVersionStorageClass": "OBJECT_VERSION_STORAGE_CLASS", + "OptionalObjectAttributes": "OPTIONAL_OBJECT_ATTRIBUTES", + "OutputLocation": "OUTPUT_LOCATION", + "OutputSerialization": "OUTPUT_SERIALIZATION", + "Owner": "OWNER", + "OwnerOverride": "OWNER_OVERRIDE", + "OwnershipControls": "OWNERSHIP_CONTROLS", + "OwnershipControlsRule": "OWNERSHIP_CONTROLS_RULE", + "ParquetInput": "PARQUET_INPUT", + "Part": "PART", + "PartitionDateSource": "PARTITION_DATE_SOURCE", + "PartitionedPrefix": "PARTITIONED_PREFIX", + "Payer": "PAYER", + "Permission": "PERMISSION", + "PolicyStatus": "POLICY_STATUS", + "Progress": "PROGRESS", + "ProgressEvent": "PROGRESS_EVENT", + "Protocol": "PROTOCOL", + "PublicAccessBlockConfiguration": "PUBLIC_ACCESS_BLOCK_CONFIGURATION", + "PutBucketAbacInput": "PUT_BUCKET_ABAC_INPUT", + "PutBucketAbacOutput": "PUT_BUCKET_ABAC_OUTPUT", + "PutBucketAccelerateConfigurationInput": "PUT_BUCKET_ACCELERATE_CONFIGURATION_INPUT", + "PutBucketAccelerateConfigurationOutput": "PUT_BUCKET_ACCELERATE_CONFIGURATION_OUTPUT", + "PutBucketAclInput": "PUT_BUCKET_ACL_INPUT", + "PutBucketAclOutput": "PUT_BUCKET_ACL_OUTPUT", + "PutBucketAnalyticsConfigurationInput": "PUT_BUCKET_ANALYTICS_CONFIGURATION_INPUT", + "PutBucketAnalyticsConfigurationOutput": "PUT_BUCKET_ANALYTICS_CONFIGURATION_OUTPUT", + "PutBucketCorsInput": "PUT_BUCKET_CORS_INPUT", + "PutBucketCorsOutput": "PUT_BUCKET_CORS_OUTPUT", + "PutBucketEncryptionInput": "PUT_BUCKET_ENCRYPTION_INPUT", + "PutBucketEncryptionOutput": "PUT_BUCKET_ENCRYPTION_OUTPUT", + "PutBucketIntelligentTieringConfigurationInput": "PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_INPUT", + "PutBucketIntelligentTieringConfigurationOutput": "PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION_OUTPUT", + "PutBucketInventoryConfigurationInput": "PUT_BUCKET_INVENTORY_CONFIGURATION_INPUT", + "PutBucketInventoryConfigurationOutput": "PUT_BUCKET_INVENTORY_CONFIGURATION_OUTPUT", + "PutBucketLifecycleConfigurationInput": "PUT_BUCKET_LIFECYCLE_CONFIGURATION_INPUT", + "PutBucketLifecycleConfigurationOutput": "PUT_BUCKET_LIFECYCLE_CONFIGURATION_OUTPUT", + "PutBucketLoggingInput": "PUT_BUCKET_LOGGING_INPUT", + "PutBucketLoggingOutput": "PUT_BUCKET_LOGGING_OUTPUT", + "PutBucketMetricsConfigurationInput": "PUT_BUCKET_METRICS_CONFIGURATION_INPUT", + "PutBucketMetricsConfigurationOutput": "PUT_BUCKET_METRICS_CONFIGURATION_OUTPUT", + "PutBucketNotificationConfigurationInput": "PUT_BUCKET_NOTIFICATION_CONFIGURATION_INPUT", + "PutBucketNotificationConfigurationOutput": "PUT_BUCKET_NOTIFICATION_CONFIGURATION_OUTPUT", + "PutBucketOwnershipControlsInput": "PUT_BUCKET_OWNERSHIP_CONTROLS_INPUT", + "PutBucketOwnershipControlsOutput": "PUT_BUCKET_OWNERSHIP_CONTROLS_OUTPUT", + "PutBucketPolicyInput": "PUT_BUCKET_POLICY_INPUT", + "PutBucketPolicyOutput": "PUT_BUCKET_POLICY_OUTPUT", + "PutBucketReplicationInput": "PUT_BUCKET_REPLICATION_INPUT", + "PutBucketReplicationOutput": "PUT_BUCKET_REPLICATION_OUTPUT", + "PutBucketRequestPaymentInput": "PUT_BUCKET_REQUEST_PAYMENT_INPUT", + "PutBucketRequestPaymentOutput": "PUT_BUCKET_REQUEST_PAYMENT_OUTPUT", + "PutBucketTaggingInput": "PUT_BUCKET_TAGGING_INPUT", + "PutBucketTaggingOutput": "PUT_BUCKET_TAGGING_OUTPUT", + "PutBucketVersioningInput": "PUT_BUCKET_VERSIONING_INPUT", + "PutBucketVersioningOutput": "PUT_BUCKET_VERSIONING_OUTPUT", + "PutBucketWebsiteInput": "PUT_BUCKET_WEBSITE_INPUT", + "PutBucketWebsiteOutput": "PUT_BUCKET_WEBSITE_OUTPUT", + "PutObjectAclInput": "PUT_OBJECT_ACL_INPUT", + "PutObjectAclOutput": "PUT_OBJECT_ACL_OUTPUT", + "PutObjectAnnotationInput": "PUT_OBJECT_ANNOTATION_INPUT", + "PutObjectAnnotationOutput": "PUT_OBJECT_ANNOTATION_OUTPUT", + "PutObjectInput": "PUT_OBJECT_INPUT", + "PutObjectLegalHoldInput": "PUT_OBJECT_LEGAL_HOLD_INPUT", + "PutObjectLegalHoldOutput": "PUT_OBJECT_LEGAL_HOLD_OUTPUT", + "PutObjectLockConfigurationInput": "PUT_OBJECT_LOCK_CONFIGURATION_INPUT", + "PutObjectLockConfigurationOutput": "PUT_OBJECT_LOCK_CONFIGURATION_OUTPUT", + "PutObjectOutput": "PUT_OBJECT_OUTPUT", + "PutObjectRetentionInput": "PUT_OBJECT_RETENTION_INPUT", + "PutObjectRetentionOutput": "PUT_OBJECT_RETENTION_OUTPUT", + "PutObjectTaggingInput": "PUT_OBJECT_TAGGING_INPUT", + "PutObjectTaggingOutput": "PUT_OBJECT_TAGGING_OUTPUT", + "PutPublicAccessBlockInput": "PUT_PUBLIC_ACCESS_BLOCK_INPUT", + "PutPublicAccessBlockOutput": "PUT_PUBLIC_ACCESS_BLOCK_OUTPUT", + "QueueConfiguration": "QUEUE_CONFIGURATION", + "QuoteFields": "QUOTE_FIELDS", + "RecordExpiration": "RECORD_EXPIRATION", + "RecordsEvent": "RECORDS_EVENT", + "Redirect": "REDIRECT", + "RedirectAllRequestsTo": "REDIRECT_ALL_REQUESTS_TO", + "RenameObjectInput": "RENAME_OBJECT_INPUT", + "RenameObjectOutput": "RENAME_OBJECT_OUTPUT", + "ReplicaModifications": "REPLICA_MODIFICATIONS", + "ReplicaModificationsStatus": "REPLICA_MODIFICATIONS_STATUS", + "ReplicationConfiguration": "REPLICATION_CONFIGURATION", + "ReplicationRule": "REPLICATION_RULE", + "ReplicationRuleAndOperator": "REPLICATION_RULE_AND_OPERATOR", + "ReplicationRuleFilter": "REPLICATION_RULE_FILTER", + "ReplicationRuleStatus": "REPLICATION_RULE_STATUS", + "ReplicationStatus": "REPLICATION_STATUS", + "ReplicationTime": "REPLICATION_TIME", + "ReplicationTimeStatus": "REPLICATION_TIME_STATUS", + "ReplicationTimeValue": "REPLICATION_TIME_VALUE", + "RequestCharged": "REQUEST_CHARGED", + "RequestPayer": "REQUEST_PAYER", + "RequestPaymentConfiguration": "REQUEST_PAYMENT_CONFIGURATION", + "RequestProgress": "REQUEST_PROGRESS", + "RestoreObjectInput": "RESTORE_OBJECT_INPUT", + "RestoreObjectOutput": "RESTORE_OBJECT_OUTPUT", + "RestoreRequest": "RESTORE_REQUEST", + "RestoreRequestType": "RESTORE_REQUEST_TYPE", + "RestoreStatus": "RESTORE_STATUS", + "RoutingRule": "ROUTING_RULE", + "S3KeyFilter": "S3_KEY_FILTER", + "S3Location": "S3_LOCATION", + "S3TablesBucketType": "S3_TABLES_BUCKET_TYPE", + "S3TablesDestination": "S3_TABLES_DESTINATION", + "S3TablesDestinationResult": "S3_TABLES_DESTINATION_RESULT", + "ScanRange": "SCAN_RANGE", + "SelectObjectContentEventStream": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamRecords": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamStats": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamProgress": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamCont": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamEnd": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentEventStreamUnknown": "SELECT_OBJECT_CONTENT_EVENT_STREAM", + "SelectObjectContentInput": "SELECT_OBJECT_CONTENT_INPUT", + "SelectObjectContentOutput": "SELECT_OBJECT_CONTENT_OUTPUT", + "SelectParameters": "SELECT_PARAMETERS", + "ServerSideEncryption": "SERVER_SIDE_ENCRYPTION", + "ServerSideEncryptionByDefault": "SERVER_SIDE_ENCRYPTION_BY_DEFAULT", + "ServerSideEncryptionConfiguration": "SERVER_SIDE_ENCRYPTION_CONFIGURATION", + "ServerSideEncryptionRule": "SERVER_SIDE_ENCRYPTION_RULE", + "SessionCredentials": "SESSION_CREDENTIALS", + "SessionMode": "SESSION_MODE", + "SimplePrefix": "SIMPLE_PREFIX", + "SourceSelectionCriteria": "SOURCE_SELECTION_CRITERIA", + "SSEKMS": "SSEKMS", + "SseKmsEncryptedObjects": "SSE_KMS_ENCRYPTED_OBJECTS", + "SseKmsEncryptedObjectsStatus": "SSE_KMS_ENCRYPTED_OBJECTS_STATUS", + "SSEKMSEncryption": "SSEKMS_ENCRYPTION", + "SSES3": "SSES3", + "Stats": "STATS", + "StatsEvent": "STATS_EVENT", + "StorageClass": "STORAGE_CLASS", + "StorageClassAnalysis": "STORAGE_CLASS_ANALYSIS", + "StorageClassAnalysisDataExport": "STORAGE_CLASS_ANALYSIS_DATA_EXPORT", + "StorageClassAnalysisSchemaVersion": "STORAGE_CLASS_ANALYSIS_SCHEMA_VERSION", + "TableSseAlgorithm": "TABLE_SSE_ALGORITHM", + "Tag": "TAG", + "Tagging": "TAGGING", + "TaggingDirective": "TAGGING_DIRECTIVE", + "TargetGrant": "TARGET_GRANT", + "TargetObjectKeyFormat": "TARGET_OBJECT_KEY_FORMAT", + "Tier": "TIER", + "Tiering": "TIERING", + "TooManyParts": "TOO_MANY_PARTS", + "TopicConfiguration": "TOPIC_CONFIGURATION", + "Transition": "TRANSITION", + "TransitionDefaultMinimumObjectSize": "TRANSITION_DEFAULT_MINIMUM_OBJECT_SIZE", + "TransitionStorageClass": "TRANSITION_STORAGE_CLASS", + "Type": "TYPE", + "UnsupportedMediaType": "UNSUPPORTED_MEDIA_TYPE", + "UpdateBucketMetadataAnnotationTableConfigurationInput": "UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_INPUT", + "UpdateBucketMetadataAnnotationTableConfigurationOutput": "UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION_OUTPUT", + "UpdateBucketMetadataInventoryTableConfigurationInput": "UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_INPUT", + "UpdateBucketMetadataInventoryTableConfigurationOutput": "UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION_OUTPUT", + "UpdateBucketMetadataJournalTableConfigurationInput": "UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_INPUT", + "UpdateBucketMetadataJournalTableConfigurationOutput": "UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION_OUTPUT", + "UpdateObjectEncryptionInput": "UPDATE_OBJECT_ENCRYPTION_INPUT", + "UpdateObjectEncryptionOutput": "UPDATE_OBJECT_ENCRYPTION_OUTPUT", + "UploadPartCopyInput": "UPLOAD_PART_COPY_INPUT", + "UploadPartCopyOutput": "UPLOAD_PART_COPY_OUTPUT", + "UploadPartInput": "UPLOAD_PART_INPUT", + "UploadPartOutput": "UPLOAD_PART_OUTPUT", + "VersioningConfiguration": "VERSIONING_CONFIGURATION", + "WebsiteConfiguration": "WEBSITE_CONFIGURATION", + "WriteGetObjectResponseInput": "WRITE_GET_OBJECT_RESPONSE_INPUT", + "WriteGetObjectResponseOutput": "WRITE_GET_OBJECT_RESPONSE_OUTPUT", + }, + shape_names=frozenset( + { + "AbacStatus", + "AbortIncompleteMultipartUpload", + "AbortMultipartUploadInput", + "AbortMultipartUploadOutput", + "AccelerateConfiguration", + "AccessControlPolicy", + "AccessControlTranslation", + "AccessDenied", + "AnalyticsAndOperator", + "AnalyticsConfiguration", + "AnalyticsExportDestination", + "AnalyticsFilter", + "AnalyticsS3BucketDestination", + "AnalyticsS3ExportFileFormat", + "AnnotationConfigurationState", + "AnnotationDirective", + "AnnotationEntry", + "AnnotationLimitExceeded", + "AnnotationNameTooLong", + "AnnotationTableConfiguration", + "AnnotationTableConfigurationResult", + "AnnotationTableConfigurationUpdates", + "ArchiveStatus", + "BlockedEncryptionTypes", + "Bucket", + "BucketAbacStatus", + "BucketAccelerateStatus", + "BucketAlreadyExists", + "BucketAlreadyOwnedByYou", + "BucketCannedACL", + "BucketInfo", + "BucketLifecycleConfiguration", + "BucketLocationConstraint", + "BucketLoggingStatus", + "BucketLogsPermission", + "BucketNamespace", + "BucketType", + "BucketVersioningStatus", + "CORSConfiguration", + "CORSRule", + "CSVInput", + "CSVOutput", + "Checksum", + "ChecksumAlgorithm", + "ChecksumMode", + "ChecksumType", + "CommonPrefix", + "CompleteMultipartUploadInput", + "CompleteMultipartUploadOutput", + "CompletedMultipartUpload", + "CompletedPart", + "CompressionType", + "Condition", + "ContinuationEvent", + "CopyObjectInput", + "CopyObjectOutput", + "CopyObjectResult", + "CopyPartResult", + "CreateBucketConfiguration", + "CreateBucketInput", + "CreateBucketMetadataConfigurationInput", + "CreateBucketMetadataConfigurationOutput", + "CreateBucketMetadataTableConfigurationInput", + "CreateBucketMetadataTableConfigurationOutput", + "CreateBucketOutput", + "CreateMultipartUploadInput", + "CreateMultipartUploadOutput", + "CreateSessionInput", + "CreateSessionOutput", + "DataRedundancy", + "DefaultRetention", + "Delete", + "DeleteBucketAnalyticsConfigurationInput", + "DeleteBucketAnalyticsConfigurationOutput", + "DeleteBucketCorsInput", + "DeleteBucketCorsOutput", + "DeleteBucketEncryptionInput", + "DeleteBucketEncryptionOutput", + "DeleteBucketInput", + "DeleteBucketIntelligentTieringConfigurationInput", + "DeleteBucketIntelligentTieringConfigurationOutput", + "DeleteBucketInventoryConfigurationInput", + "DeleteBucketInventoryConfigurationOutput", + "DeleteBucketLifecycleInput", + "DeleteBucketLifecycleOutput", + "DeleteBucketMetadataConfigurationInput", + "DeleteBucketMetadataConfigurationOutput", + "DeleteBucketMetadataTableConfigurationInput", + "DeleteBucketMetadataTableConfigurationOutput", + "DeleteBucketMetricsConfigurationInput", + "DeleteBucketMetricsConfigurationOutput", + "DeleteBucketOutput", + "DeleteBucketOwnershipControlsInput", + "DeleteBucketOwnershipControlsOutput", + "DeleteBucketPolicyInput", + "DeleteBucketPolicyOutput", + "DeleteBucketReplicationInput", + "DeleteBucketReplicationOutput", + "DeleteBucketTaggingInput", + "DeleteBucketTaggingOutput", + "DeleteBucketWebsiteInput", + "DeleteBucketWebsiteOutput", + "DeleteMarkerEntry", + "DeleteMarkerReplication", + "DeleteMarkerReplicationStatus", + "DeleteObjectAnnotationInput", + "DeleteObjectAnnotationOutput", + "DeleteObjectInput", + "DeleteObjectOutput", + "DeleteObjectTaggingInput", + "DeleteObjectTaggingOutput", + "DeleteObjectsInput", + "DeleteObjectsOutput", + "DeletePublicAccessBlockInput", + "DeletePublicAccessBlockOutput", + "DeletedObject", + "Destination", + "DestinationResult", + "EncodingType", + "Encryption", + "EncryptionConfiguration", + "EncryptionType", + "EncryptionTypeMismatch", + "EndEvent", + "Error", + "ErrorDetails", + "ErrorDocument", + "Event", + "EventBridgeConfiguration", + "EventHoldDuration", + "ExistingObjectReplication", + "ExistingObjectReplicationStatus", + "ExpirationState", + "ExpirationStatus", + "ExpressionType", + "FileHeaderInfo", + "FilterRule", + "FilterRuleName", + "GetBucketAbacInput", + "GetBucketAbacOutput", + "GetBucketAccelerateConfigurationInput", + "GetBucketAccelerateConfigurationOutput", + "GetBucketAclInput", + "GetBucketAclOutput", + "GetBucketAnalyticsConfigurationInput", + "GetBucketAnalyticsConfigurationOutput", + "GetBucketCorsInput", + "GetBucketCorsOutput", + "GetBucketEncryptionInput", + "GetBucketEncryptionOutput", + "GetBucketIntelligentTieringConfigurationInput", + "GetBucketIntelligentTieringConfigurationOutput", + "GetBucketInventoryConfigurationInput", + "GetBucketInventoryConfigurationOutput", + "GetBucketLifecycleConfigurationInput", + "GetBucketLifecycleConfigurationOutput", + "GetBucketLocationInput", + "GetBucketLocationOutput", + "GetBucketLoggingInput", + "GetBucketLoggingOutput", + "GetBucketMetadataConfigurationInput", + "GetBucketMetadataConfigurationOutput", + "GetBucketMetadataConfigurationResult", + "GetBucketMetadataTableConfigurationInput", + "GetBucketMetadataTableConfigurationOutput", + "GetBucketMetadataTableConfigurationResult", + "GetBucketMetricsConfigurationInput", + "GetBucketMetricsConfigurationOutput", + "GetBucketNotificationConfigurationInput", + "GetBucketNotificationConfigurationOutput", + "GetBucketOwnershipControlsInput", + "GetBucketOwnershipControlsOutput", + "GetBucketPolicyInput", + "GetBucketPolicyOutput", + "GetBucketPolicyStatusInput", + "GetBucketPolicyStatusOutput", + "GetBucketReplicationInput", + "GetBucketReplicationOutput", + "GetBucketRequestPaymentInput", + "GetBucketRequestPaymentOutput", + "GetBucketTaggingInput", + "GetBucketTaggingOutput", + "GetBucketVersioningInput", + "GetBucketVersioningOutput", + "GetBucketWebsiteInput", + "GetBucketWebsiteOutput", + "GetObjectAclInput", + "GetObjectAclOutput", + "GetObjectAnnotationInput", + "GetObjectAnnotationOutput", + "GetObjectAttributesInput", + "GetObjectAttributesOutput", + "GetObjectAttributesParts", + "GetObjectInput", + "GetObjectLegalHoldInput", + "GetObjectLegalHoldOutput", + "GetObjectLockConfigurationInput", + "GetObjectLockConfigurationOutput", + "GetObjectOutput", + "GetObjectRetentionInput", + "GetObjectRetentionOutput", + "GetObjectTaggingInput", + "GetObjectTaggingOutput", + "GetObjectTorrentInput", + "GetObjectTorrentOutput", + "GetPublicAccessBlockInput", + "GetPublicAccessBlockOutput", + "GlacierJobParameters", + "Grant", + "Grantee", + "HeadBucketInput", + "HeadBucketOutput", + "HeadObjectInput", + "HeadObjectOutput", + "IdempotencyParameterMismatch", + "IndexDocument", + "Initiator", + "InputSerialization", + "IntelligentTieringAccessTier", + "IntelligentTieringAndOperator", + "IntelligentTieringConfiguration", + "IntelligentTieringFilter", + "IntelligentTieringStatus", + "InvalidAnnotationName", + "InvalidObjectState", + "InvalidPrefix", + "InvalidRequest", + "InvalidWriteOffset", + "InventoryConfiguration", + "InventoryConfigurationState", + "InventoryDestination", + "InventoryEncryption", + "InventoryFilter", + "InventoryFormat", + "InventoryFrequency", + "InventoryIncludedObjectVersions", + "InventoryOptionalField", + "InventoryS3BucketDestination", + "InventorySchedule", + "InventoryTableConfiguration", + "InventoryTableConfigurationResult", + "InventoryTableConfigurationUpdates", + "JSONInput", + "JSONOutput", + "JSONType", + "JournalTableConfiguration", + "JournalTableConfigurationResult", + "JournalTableConfigurationUpdates", + "LambdaFunctionConfiguration", + "LifecycleExpiration", + "LifecycleRule", + "LifecycleRuleAndOperator", + "LifecycleRuleFilter", + "ListBucketAnalyticsConfigurationsInput", + "ListBucketAnalyticsConfigurationsOutput", + "ListBucketIntelligentTieringConfigurationsInput", + "ListBucketIntelligentTieringConfigurationsOutput", + "ListBucketInventoryConfigurationsInput", + "ListBucketInventoryConfigurationsOutput", + "ListBucketMetricsConfigurationsInput", + "ListBucketMetricsConfigurationsOutput", + "ListBucketsInput", + "ListBucketsOutput", + "ListDirectoryBucketsInput", + "ListDirectoryBucketsOutput", + "ListMultipartUploadsInput", + "ListMultipartUploadsOutput", + "ListObjectAnnotationsInput", + "ListObjectAnnotationsOutput", + "ListObjectVersionsInput", + "ListObjectVersionsOutput", + "ListObjectsInput", + "ListObjectsOutput", + "ListObjectsV2Input", + "ListObjectsV2Output", + "ListPartsInput", + "ListPartsOutput", + "LocationInfo", + "LocationType", + "LoggingEnabled", + "MFADelete", + "MFADeleteStatus", + "MetadataConfiguration", + "MetadataConfigurationResult", + "MetadataDirective", + "MetadataEntry", + "MetadataTableConfiguration", + "MetadataTableConfigurationResult", + "MetadataTableEncryptionConfiguration", + "Metrics", + "MetricsAndOperator", + "MetricsConfiguration", + "MetricsFilter", + "MetricsStatus", + "MultipartUpload", + "NoSuchAnnotation", + "NoSuchBucket", + "NoSuchKey", + "NoSuchUpload", + "NoncurrentVersionExpiration", + "NoncurrentVersionTransition", + "NotFound", + "NotificationConfiguration", + "NotificationConfigurationFilter", + "Object", + "ObjectAlreadyInActiveTierError", + "ObjectAttributes", + "ObjectCannedACL", + "ObjectEncryption", + "ObjectIdentifier", + "ObjectLockConfiguration", + "ObjectLockEnabled", + "ObjectLockEventHold", + "ObjectLockLegalHold", + "ObjectLockLegalHoldStatus", + "ObjectLockMode", + "ObjectLockRetention", + "ObjectLockRetentionMode", + "ObjectLockRule", + "ObjectNotInActiveTierError", + "ObjectOwnership", + "ObjectPart", + "ObjectStorageClass", + "ObjectVersion", + "ObjectVersionStorageClass", + "OptionalObjectAttributes", + "OutputLocation", + "OutputSerialization", + "Owner", + "OwnerOverride", + "OwnershipControls", + "OwnershipControlsRule", + "ParquetInput", + "Part", + "PartitionDateSource", + "PartitionedPrefix", + "Payer", + "Permission", + "PolicyStatus", + "Progress", + "ProgressEvent", + "Protocol", + "PublicAccessBlockConfiguration", + "PutBucketAbacInput", + "PutBucketAbacOutput", + "PutBucketAccelerateConfigurationInput", + "PutBucketAccelerateConfigurationOutput", + "PutBucketAclInput", + "PutBucketAclOutput", + "PutBucketAnalyticsConfigurationInput", + "PutBucketAnalyticsConfigurationOutput", + "PutBucketCorsInput", + "PutBucketCorsOutput", + "PutBucketEncryptionInput", + "PutBucketEncryptionOutput", + "PutBucketIntelligentTieringConfigurationInput", + "PutBucketIntelligentTieringConfigurationOutput", + "PutBucketInventoryConfigurationInput", + "PutBucketInventoryConfigurationOutput", + "PutBucketLifecycleConfigurationInput", + "PutBucketLifecycleConfigurationOutput", + "PutBucketLoggingInput", + "PutBucketLoggingOutput", + "PutBucketMetricsConfigurationInput", + "PutBucketMetricsConfigurationOutput", + "PutBucketNotificationConfigurationInput", + "PutBucketNotificationConfigurationOutput", + "PutBucketOwnershipControlsInput", + "PutBucketOwnershipControlsOutput", + "PutBucketPolicyInput", + "PutBucketPolicyOutput", + "PutBucketReplicationInput", + "PutBucketReplicationOutput", + "PutBucketRequestPaymentInput", + "PutBucketRequestPaymentOutput", + "PutBucketTaggingInput", + "PutBucketTaggingOutput", + "PutBucketVersioningInput", + "PutBucketVersioningOutput", + "PutBucketWebsiteInput", + "PutBucketWebsiteOutput", + "PutObjectAclInput", + "PutObjectAclOutput", + "PutObjectAnnotationInput", + "PutObjectAnnotationOutput", + "PutObjectInput", + "PutObjectLegalHoldInput", + "PutObjectLegalHoldOutput", + "PutObjectLockConfigurationInput", + "PutObjectLockConfigurationOutput", + "PutObjectOutput", + "PutObjectRetentionInput", + "PutObjectRetentionOutput", + "PutObjectTaggingInput", + "PutObjectTaggingOutput", + "PutPublicAccessBlockInput", + "PutPublicAccessBlockOutput", + "QueueConfiguration", + "QuoteFields", + "RecordExpiration", + "RecordsEvent", + "Redirect", + "RedirectAllRequestsTo", + "RenameObjectInput", + "RenameObjectOutput", + "ReplicaModifications", + "ReplicaModificationsStatus", + "ReplicationConfiguration", + "ReplicationRule", + "ReplicationRuleAndOperator", + "ReplicationRuleFilter", + "ReplicationRuleStatus", + "ReplicationStatus", + "ReplicationTime", + "ReplicationTimeStatus", + "ReplicationTimeValue", + "RequestCharged", + "RequestPayer", + "RequestPaymentConfiguration", + "RequestProgress", + "RestoreObjectInput", + "RestoreObjectOutput", + "RestoreRequest", + "RestoreRequestType", + "RestoreStatus", + "RoutingRule", + "S3KeyFilter", + "S3Location", + "S3TablesBucketType", + "S3TablesDestination", + "S3TablesDestinationResult", + "SSEKMS", + "SSEKMSEncryption", + "SSES3", + "ScanRange", + "SelectObjectContentEventStream", + "SelectObjectContentInput", + "SelectObjectContentOutput", + "SelectParameters", + "ServerSideEncryption", + "ServerSideEncryptionByDefault", + "ServerSideEncryptionConfiguration", + "ServerSideEncryptionRule", + "SessionCredentials", + "SessionMode", + "SimplePrefix", + "SourceSelectionCriteria", + "SseKmsEncryptedObjects", + "SseKmsEncryptedObjectsStatus", + "Stats", + "StatsEvent", + "StorageClass", + "StorageClassAnalysis", + "StorageClassAnalysisDataExport", + "StorageClassAnalysisSchemaVersion", + "TableSseAlgorithm", + "Tag", + "Tagging", + "TaggingDirective", + "TargetGrant", + "TargetObjectKeyFormat", + "Tier", + "Tiering", + "TooManyParts", + "TopicConfiguration", + "Transition", + "TransitionDefaultMinimumObjectSize", + "TransitionStorageClass", + "Type", + "UnsupportedMediaType", + "UpdateBucketMetadataAnnotationTableConfigurationInput", + "UpdateBucketMetadataAnnotationTableConfigurationOutput", + "UpdateBucketMetadataInventoryTableConfigurationInput", + "UpdateBucketMetadataInventoryTableConfigurationOutput", + "UpdateBucketMetadataJournalTableConfigurationInput", + "UpdateBucketMetadataJournalTableConfigurationOutput", + "UpdateObjectEncryptionInput", + "UpdateObjectEncryptionOutput", + "UploadPartCopyInput", + "UploadPartCopyOutput", + "UploadPartInput", + "UploadPartOutput", + "VersioningConfiguration", + "WebsiteConfiguration", + "WriteGetObjectResponseInput", + "WriteGetObjectResponseOutput", + } + ), + service_error="ServiceError", +) + +_operation_data = {} +_operation_names = ( + "ABORT_MULTIPART_UPLOAD", + "COMPLETE_MULTIPART_UPLOAD", + "COPY_OBJECT", + "CREATE_BUCKET", + "CREATE_BUCKET_METADATA_CONFIGURATION", + "CREATE_BUCKET_METADATA_TABLE_CONFIGURATION", + "CREATE_MULTIPART_UPLOAD", + "CREATE_SESSION", + "DELETE_BUCKET", + "DELETE_BUCKET_ANALYTICS_CONFIGURATION", + "DELETE_BUCKET_CORS", + "DELETE_BUCKET_ENCRYPTION", + "DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + "DELETE_BUCKET_INVENTORY_CONFIGURATION", + "DELETE_BUCKET_LIFECYCLE", + "DELETE_BUCKET_METADATA_CONFIGURATION", + "DELETE_BUCKET_METADATA_TABLE_CONFIGURATION", + "DELETE_BUCKET_METRICS_CONFIGURATION", + "DELETE_BUCKET_OWNERSHIP_CONTROLS", + "DELETE_BUCKET_POLICY", + "DELETE_BUCKET_REPLICATION", + "DELETE_BUCKET_TAGGING", + "DELETE_BUCKET_WEBSITE", + "DELETE_OBJECT", + "DELETE_OBJECT_ANNOTATION", + "DELETE_OBJECTS", + "DELETE_OBJECT_TAGGING", + "DELETE_PUBLIC_ACCESS_BLOCK", + "GET_BUCKET_ABAC", + "GET_BUCKET_ACCELERATE_CONFIGURATION", + "GET_BUCKET_ACL", + "GET_BUCKET_ANALYTICS_CONFIGURATION", + "GET_BUCKET_CORS", + "GET_BUCKET_ENCRYPTION", + "GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + "GET_BUCKET_INVENTORY_CONFIGURATION", + "GET_BUCKET_LIFECYCLE_CONFIGURATION", + "GET_BUCKET_LOCATION", + "GET_BUCKET_LOGGING", + "GET_BUCKET_METADATA_CONFIGURATION", + "GET_BUCKET_METADATA_TABLE_CONFIGURATION", + "GET_BUCKET_METRICS_CONFIGURATION", + "GET_BUCKET_NOTIFICATION_CONFIGURATION", + "GET_BUCKET_OWNERSHIP_CONTROLS", + "GET_BUCKET_POLICY", + "GET_BUCKET_POLICY_STATUS", + "GET_BUCKET_REPLICATION", + "GET_BUCKET_REQUEST_PAYMENT", + "GET_BUCKET_TAGGING", + "GET_BUCKET_VERSIONING", + "GET_BUCKET_WEBSITE", + "GET_OBJECT", + "GET_OBJECT_ACL", + "GET_OBJECT_ANNOTATION", + "GET_OBJECT_ATTRIBUTES", + "GET_OBJECT_LEGAL_HOLD", + "GET_OBJECT_LOCK_CONFIGURATION", + "GET_OBJECT_RETENTION", + "GET_OBJECT_TAGGING", + "GET_OBJECT_TORRENT", + "GET_PUBLIC_ACCESS_BLOCK", + "HEAD_BUCKET", + "HEAD_OBJECT", + "LIST_BUCKET_ANALYTICS_CONFIGURATIONS", + "LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS", + "LIST_BUCKET_INVENTORY_CONFIGURATIONS", + "LIST_BUCKET_METRICS_CONFIGURATIONS", + "LIST_BUCKETS", + "LIST_DIRECTORY_BUCKETS", + "LIST_MULTIPART_UPLOADS", + "LIST_OBJECT_ANNOTATIONS", + "LIST_OBJECTS", + "LIST_OBJECTS_V2", + "LIST_OBJECT_VERSIONS", + "LIST_PARTS", + "PUT_BUCKET_ABAC", + "PUT_BUCKET_ACCELERATE_CONFIGURATION", + "PUT_BUCKET_ACL", + "PUT_BUCKET_ANALYTICS_CONFIGURATION", + "PUT_BUCKET_CORS", + "PUT_BUCKET_ENCRYPTION", + "PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + "PUT_BUCKET_INVENTORY_CONFIGURATION", + "PUT_BUCKET_LIFECYCLE_CONFIGURATION", + "PUT_BUCKET_LOGGING", + "PUT_BUCKET_METRICS_CONFIGURATION", + "PUT_BUCKET_NOTIFICATION_CONFIGURATION", + "PUT_BUCKET_OWNERSHIP_CONTROLS", + "PUT_BUCKET_POLICY", + "PUT_BUCKET_REPLICATION", + "PUT_BUCKET_REQUEST_PAYMENT", + "PUT_BUCKET_TAGGING", + "PUT_BUCKET_VERSIONING", + "PUT_BUCKET_WEBSITE", + "PUT_OBJECT", + "PUT_OBJECT_ACL", + "PUT_OBJECT_ANNOTATION", + "PUT_OBJECT_LEGAL_HOLD", + "PUT_OBJECT_LOCK_CONFIGURATION", + "PUT_OBJECT_RETENTION", + "PUT_OBJECT_TAGGING", + "PUT_PUBLIC_ACCESS_BLOCK", + "RENAME_OBJECT", + "RESTORE_OBJECT", + "SELECT_OBJECT_CONTENT", + "UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION", + "UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION", + "UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION", + "UPDATE_OBJECT_ENCRYPTION", + "UPLOAD_PART", + "UPLOAD_PART_COPY", + "WRITE_GET_OBJECT_RESPONSE", +) +for _operation_name in _operation_names: + globals().pop(_operation_name, None) + +__all__ = [name for name in globals() if not name.startswith("_")] +__all__.extend(_operation_names) + + +def __getattr__(name: str): + if (data := _operation_data.get(name)) is not None: + schema_name, error_ids, auth_scheme_ids = data + operation = APIOperation( + static_schema=getattr(_schemas, schema_name), + model_registry=_registry, + error_ids=[ShapeID(shape_id) for shape_id in error_ids], + effective_auth_schemes=[ShapeID(shape_id) for shape_id in auth_scheme_ids], + ) + return globals().setdefault(name, operation) + return _registry.build(name) + + +def __dir__(): + return sorted({*globals(), *_operation_names}) + + +_operation_data["ABORT_MULTIPART_UPLOAD"] = ( + "ABORT_MULTIPART_UPLOAD", + ("com.amazonaws.s3#NoSuchUpload",), + ("aws.auth#sigv4",), +) + +_operation_data["COMPLETE_MULTIPART_UPLOAD"] = ( + "COMPLETE_MULTIPART_UPLOAD", + (), + ("aws.auth#sigv4",), +) + +_operation_data["COPY_OBJECT"] = ( + "COPY_OBJECT", + ("com.amazonaws.s3#ObjectNotInActiveTierError",), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_BUCKET"] = ( + "CREATE_BUCKET", + ( + "com.amazonaws.s3#BucketAlreadyExists", + "com.amazonaws.s3#BucketAlreadyOwnedByYou", + ), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_BUCKET_METADATA_CONFIGURATION"] = ( + "CREATE_BUCKET_METADATA_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_BUCKET_METADATA_TABLE_CONFIGURATION"] = ( + "CREATE_BUCKET_METADATA_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_MULTIPART_UPLOAD"] = ( + "CREATE_MULTIPART_UPLOAD", + (), + ("aws.auth#sigv4",), +) + +_operation_data["CREATE_SESSION"] = ( + "CREATE_SESSION", + ("com.amazonaws.s3#NoSuchBucket",), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET"] = ("DELETE_BUCKET", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_BUCKET_ANALYTICS_CONFIGURATION"] = ( + "DELETE_BUCKET_ANALYTICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_CORS"] = ("DELETE_BUCKET_CORS", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_BUCKET_ENCRYPTION"] = ( + "DELETE_BUCKET_ENCRYPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION"] = ( + "DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_INVENTORY_CONFIGURATION"] = ( + "DELETE_BUCKET_INVENTORY_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_LIFECYCLE"] = ( + "DELETE_BUCKET_LIFECYCLE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_METADATA_CONFIGURATION"] = ( + "DELETE_BUCKET_METADATA_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_METADATA_TABLE_CONFIGURATION"] = ( + "DELETE_BUCKET_METADATA_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_METRICS_CONFIGURATION"] = ( + "DELETE_BUCKET_METRICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_OWNERSHIP_CONTROLS"] = ( + "DELETE_BUCKET_OWNERSHIP_CONTROLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_POLICY"] = ( + "DELETE_BUCKET_POLICY", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_REPLICATION"] = ( + "DELETE_BUCKET_REPLICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_TAGGING"] = ( + "DELETE_BUCKET_TAGGING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_BUCKET_WEBSITE"] = ( + "DELETE_BUCKET_WEBSITE", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_OBJECT"] = ("DELETE_OBJECT", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_OBJECT_ANNOTATION"] = ( + "DELETE_OBJECT_ANNOTATION", + ("com.amazonaws.s3#NoSuchBucket", "com.amazonaws.s3#NoSuchKey"), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_OBJECTS"] = ("DELETE_OBJECTS", (), ("aws.auth#sigv4",)) + +_operation_data["DELETE_OBJECT_TAGGING"] = ( + "DELETE_OBJECT_TAGGING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["DELETE_PUBLIC_ACCESS_BLOCK"] = ( + "DELETE_PUBLIC_ACCESS_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_ABAC"] = ("GET_BUCKET_ABAC", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_ACCELERATE_CONFIGURATION"] = ( + "GET_BUCKET_ACCELERATE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_ACL"] = ("GET_BUCKET_ACL", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_ANALYTICS_CONFIGURATION"] = ( + "GET_BUCKET_ANALYTICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_CORS"] = ("GET_BUCKET_CORS", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_ENCRYPTION"] = ( + "GET_BUCKET_ENCRYPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION"] = ( + "GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_INVENTORY_CONFIGURATION"] = ( + "GET_BUCKET_INVENTORY_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_LIFECYCLE_CONFIGURATION"] = ( + "GET_BUCKET_LIFECYCLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_LOCATION"] = ( + "GET_BUCKET_LOCATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_LOGGING"] = ("GET_BUCKET_LOGGING", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_METADATA_CONFIGURATION"] = ( + "GET_BUCKET_METADATA_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_METADATA_TABLE_CONFIGURATION"] = ( + "GET_BUCKET_METADATA_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_METRICS_CONFIGURATION"] = ( + "GET_BUCKET_METRICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_NOTIFICATION_CONFIGURATION"] = ( + "GET_BUCKET_NOTIFICATION_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_OWNERSHIP_CONTROLS"] = ( + "GET_BUCKET_OWNERSHIP_CONTROLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_POLICY"] = ("GET_BUCKET_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_POLICY_STATUS"] = ( + "GET_BUCKET_POLICY_STATUS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_REPLICATION"] = ( + "GET_BUCKET_REPLICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_REQUEST_PAYMENT"] = ( + "GET_BUCKET_REQUEST_PAYMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_TAGGING"] = ("GET_BUCKET_TAGGING", (), ("aws.auth#sigv4",)) + +_operation_data["GET_BUCKET_VERSIONING"] = ( + "GET_BUCKET_VERSIONING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_BUCKET_WEBSITE"] = ("GET_BUCKET_WEBSITE", (), ("aws.auth#sigv4",)) + +_operation_data["GET_OBJECT"] = ( + "GET_OBJECT", + ("com.amazonaws.s3#InvalidObjectState", "com.amazonaws.s3#NoSuchKey"), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_ACL"] = ( + "GET_OBJECT_ACL", + ("com.amazonaws.s3#NoSuchKey",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_ANNOTATION"] = ( + "GET_OBJECT_ANNOTATION", + ( + "com.amazonaws.s3#NoSuchAnnotation", + "com.amazonaws.s3#NoSuchBucket", + "com.amazonaws.s3#NoSuchKey", + ), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_ATTRIBUTES"] = ( + "GET_OBJECT_ATTRIBUTES", + ("com.amazonaws.s3#NoSuchKey",), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_LEGAL_HOLD"] = ( + "GET_OBJECT_LEGAL_HOLD", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_LOCK_CONFIGURATION"] = ( + "GET_OBJECT_LOCK_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_RETENTION"] = ( + "GET_OBJECT_RETENTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["GET_OBJECT_TAGGING"] = ("GET_OBJECT_TAGGING", (), ("aws.auth#sigv4",)) + +_operation_data["GET_OBJECT_TORRENT"] = ("GET_OBJECT_TORRENT", (), ("aws.auth#sigv4",)) + +_operation_data["GET_PUBLIC_ACCESS_BLOCK"] = ( + "GET_PUBLIC_ACCESS_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["HEAD_BUCKET"] = ( + "HEAD_BUCKET", + ("com.amazonaws.s3#NotFound",), + ("aws.auth#sigv4",), +) + +_operation_data["HEAD_OBJECT"] = ( + "HEAD_OBJECT", + ("com.amazonaws.s3#NotFound",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_BUCKET_ANALYTICS_CONFIGURATIONS"] = ( + "LIST_BUCKET_ANALYTICS_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS"] = ( + "LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_BUCKET_INVENTORY_CONFIGURATIONS"] = ( + "LIST_BUCKET_INVENTORY_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_BUCKET_METRICS_CONFIGURATIONS"] = ( + "LIST_BUCKET_METRICS_CONFIGURATIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_BUCKETS"] = ("LIST_BUCKETS", (), ("aws.auth#sigv4",)) + +_operation_data["LIST_DIRECTORY_BUCKETS"] = ( + "LIST_DIRECTORY_BUCKETS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_MULTIPART_UPLOADS"] = ( + "LIST_MULTIPART_UPLOADS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OBJECT_ANNOTATIONS"] = ( + "LIST_OBJECT_ANNOTATIONS", + ( + "com.amazonaws.s3#InvalidPrefix", + "com.amazonaws.s3#NoSuchBucket", + "com.amazonaws.s3#NoSuchKey", + ), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OBJECTS"] = ( + "LIST_OBJECTS", + ("com.amazonaws.s3#NoSuchBucket",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OBJECTS_V2"] = ( + "LIST_OBJECTS_V2", + ("com.amazonaws.s3#NoSuchBucket",), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_OBJECT_VERSIONS"] = ( + "LIST_OBJECT_VERSIONS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["LIST_PARTS"] = ("LIST_PARTS", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_ABAC"] = ("PUT_BUCKET_ABAC", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_ACCELERATE_CONFIGURATION"] = ( + "PUT_BUCKET_ACCELERATE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_ACL"] = ("PUT_BUCKET_ACL", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_ANALYTICS_CONFIGURATION"] = ( + "PUT_BUCKET_ANALYTICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_CORS"] = ("PUT_BUCKET_CORS", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_ENCRYPTION"] = ( + "PUT_BUCKET_ENCRYPTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION"] = ( + "PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_INVENTORY_CONFIGURATION"] = ( + "PUT_BUCKET_INVENTORY_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_LIFECYCLE_CONFIGURATION"] = ( + "PUT_BUCKET_LIFECYCLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_LOGGING"] = ("PUT_BUCKET_LOGGING", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_METRICS_CONFIGURATION"] = ( + "PUT_BUCKET_METRICS_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_NOTIFICATION_CONFIGURATION"] = ( + "PUT_BUCKET_NOTIFICATION_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_OWNERSHIP_CONTROLS"] = ( + "PUT_BUCKET_OWNERSHIP_CONTROLS", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_POLICY"] = ("PUT_BUCKET_POLICY", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_REPLICATION"] = ( + "PUT_BUCKET_REPLICATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_REQUEST_PAYMENT"] = ( + "PUT_BUCKET_REQUEST_PAYMENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_TAGGING"] = ("PUT_BUCKET_TAGGING", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_BUCKET_VERSIONING"] = ( + "PUT_BUCKET_VERSIONING", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_BUCKET_WEBSITE"] = ("PUT_BUCKET_WEBSITE", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_OBJECT"] = ( + "PUT_OBJECT", + ( + "com.amazonaws.s3#EncryptionTypeMismatch", + "com.amazonaws.s3#InvalidRequest", + "com.amazonaws.s3#InvalidWriteOffset", + "com.amazonaws.s3#TooManyParts", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_ACL"] = ( + "PUT_OBJECT_ACL", + ("com.amazonaws.s3#NoSuchKey",), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_ANNOTATION"] = ( + "PUT_OBJECT_ANNOTATION", + ( + "com.amazonaws.s3#AnnotationLimitExceeded", + "com.amazonaws.s3#AnnotationNameTooLong", + "com.amazonaws.s3#InvalidAnnotationName", + "com.amazonaws.s3#InvalidRequest", + "com.amazonaws.s3#NoSuchBucket", + "com.amazonaws.s3#NoSuchKey", + "com.amazonaws.s3#UnsupportedMediaType", + ), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_LEGAL_HOLD"] = ( + "PUT_OBJECT_LEGAL_HOLD", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_LOCK_CONFIGURATION"] = ( + "PUT_OBJECT_LOCK_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_RETENTION"] = ( + "PUT_OBJECT_RETENTION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["PUT_OBJECT_TAGGING"] = ("PUT_OBJECT_TAGGING", (), ("aws.auth#sigv4",)) + +_operation_data["PUT_PUBLIC_ACCESS_BLOCK"] = ( + "PUT_PUBLIC_ACCESS_BLOCK", + (), + ("aws.auth#sigv4",), +) + +_operation_data["RENAME_OBJECT"] = ( + "RENAME_OBJECT", + ("com.amazonaws.s3#IdempotencyParameterMismatch",), + ("aws.auth#sigv4",), +) + +_operation_data["RESTORE_OBJECT"] = ( + "RESTORE_OBJECT", + ("com.amazonaws.s3#ObjectAlreadyInActiveTierError",), + ("aws.auth#sigv4",), +) + +_operation_data["SELECT_OBJECT_CONTENT"] = ( + "SELECT_OBJECT_CONTENT", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION"] = ( + "UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION"] = ( + "UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION"] = ( + "UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION", + (), + ("aws.auth#sigv4",), +) + +_operation_data["UPDATE_OBJECT_ENCRYPTION"] = ( + "UPDATE_OBJECT_ENCRYPTION", + ( + "com.amazonaws.s3#AccessDenied", + "com.amazonaws.s3#InvalidRequest", + "com.amazonaws.s3#NoSuchKey", + ), + ("aws.auth#sigv4",), +) + +_operation_data["UPLOAD_PART"] = ("UPLOAD_PART", (), ("aws.auth#sigv4",)) + +_operation_data["UPLOAD_PART_COPY"] = ("UPLOAD_PART_COPY", (), ("aws.auth#sigv4",)) + +_operation_data["WRITE_GET_OBJECT_RESPONSE"] = ( + "WRITE_GET_OBJECT_RESPONSE", + (), + ("aws.auth#sigv4",), +) diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/models.pyi b/clients/aws-sdk-s3/src/aws_sdk_s3/models.pyi new file mode 100644 index 00000000..0e998c5f --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/models.pyi @@ -0,0 +1,19076 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from dataclasses import dataclass +from datetime import datetime +from enum import StrEnum +from typing import Self, Union + +from smithy_core.aio.interfaces import StreamingBlob +from smithy_core.deserializers import ShapeDeserializer +from smithy_core.exceptions import ModeledError +from smithy_core.response import ResponseMetadata +from smithy_core.schemas import APIOperation +from smithy_core.serializers import ShapeSerializer +from smithy_core.types import UnknownEnumMixin + +class _SerdeShape: + def serialize(self, serializer: ShapeSerializer) -> None: ... + def serialize_members(self, serializer: ShapeSerializer) -> None: ... + @classmethod + def deserialize(cls, deserializer: ShapeDeserializer) -> Self: ... + +class ServiceError(ModeledError): + """ + Base error for all errors in the service. + + Some exceptions do not extend from this class, including + synthetic, implicit, and shared exception types. + """ + +@dataclass(kw_only=True) +class AbacStatus(_SerdeShape): + """ + The ABAC status of the general purpose bucket. When ABAC is enabled for + the general purpose bucket, you can use tags to manage access to the + general purpose buckets as well as for cost tracking purposes. When ABAC + is disabled for the general purpose buckets, you can only use tags for + cost tracking purposes. For more information, see [Using tags with S3 + general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html). + """ + + status: str | None = ... + """The ABAC status of the general purpose bucket.""" + +@dataclass(kw_only=True) +class AbortIncompleteMultipartUpload(_SerdeShape): + """ + Specifies the days since the initiation of an incomplete multipart + upload that Amazon S3 will wait before permanently removing all parts of + the upload. For more information, see [Aborting Incomplete Multipart + Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + in the *Amazon S3 User Guide*. + """ + + days_after_initiation: int | None = ... + """ + Specifies the number of days after which Amazon S3 aborts an incomplete + multipart upload. + """ + +@dataclass(kw_only=True) +class AbortMultipartUploadInput(_SerdeShape): + """Dataclass for AbortMultipartUploadInput structure.""" + + bucket: str | None = ... + """ + The bucket name to which the upload was taking place. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Key of the object for which the multipart upload was initiated.""" + upload_id: str | None = ... + """Upload ID that identifies the multipart upload.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + if_match_initiated_time: datetime | None = ... + """ + If present, this header aborts an in progress multipart upload only if + it was initiated on the provided timestamp. If the initiated timestamp + of the multipart upload does not match the provided value, the operation + returns a `412 Precondition Failed` error. If the initiated timestamp + matches or if the multipart upload doesn't exist, the operation returns + a `204 Success (No Content)` response. + + Note: + This functionality is only supported for directory buckets. + """ + +@dataclass(kw_only=True) +class AbortMultipartUploadOutput(_SerdeShape): + """Dataclass for AbortMultipartUploadOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AccelerateConfiguration(_SerdeShape): + """ + Configures the transfer acceleration state for an Amazon S3 bucket. For + more information, see [Amazon S3 Transfer + Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) + in the *Amazon S3 User Guide*. + """ + + status: str | None = ... + """Specifies the transfer acceleration status of the bucket.""" + +@dataclass(kw_only=True) +class AccessControlPolicy(_SerdeShape): + """ + Contains the elements that set the ACL permissions for an object per + grantee. + """ + + grants: list[Grant] | None = ... + """A list of grants.""" + owner: Owner | None = ... + """Container for the bucket owner's display name and ID.""" + +@dataclass(kw_only=True) +class AccessControlTranslation(_SerdeShape): + """A container for information about access control for replicas.""" + + owner: str + """ + Specifies the replica ownership. For default and valid values, see [PUT + bucket + replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) + in the *Amazon S3 API Reference*. + """ + +@dataclass(kw_only=True) +class AccessDenied(ServiceError, _SerdeShape): + """ + You might receive this error for several reasons. For details, see the + description of this API operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AnalyticsAndOperator(_SerdeShape): + """ + A conjunction (logical AND) of predicates, which is used in evaluating a + metrics filter. The operator must have at least two predicates in any + combination, and an object must match all of the predicates for the + filter to apply. + """ + + prefix: str | None = ... + """ + The prefix to use when evaluating an AND predicate: The prefix that an + object must have to be included in the metrics results. + """ + tags: list[Tag] | None = ... + """The list of tags to use when evaluating an AND predicate.""" + +@dataclass(kw_only=True) +class AnalyticsConfiguration(_SerdeShape): + """ + Specifies the configuration and any analyses for the analytics filter of + an Amazon S3 bucket. + """ + + id: str + """The ID that identifies the analytics configuration.""" + filter: AnalyticsFilter | None = ... + """ + The filter used to describe a set of objects for analyses. A filter must + have exactly one prefix, one tag, or one conjunction + (AnalyticsAndOperator). If no filter is provided, all objects will be + considered in any analysis. + """ + storage_class_analysis: StorageClassAnalysis + """ + Contains data related to access patterns to be collected and made + available to analyze the tradeoffs between different storage classes. + """ + +@dataclass(kw_only=True) +class AnalyticsExportDestination(_SerdeShape): + """Where to publish the analytics results.""" + + s3_bucket_destination: AnalyticsS3BucketDestination + """A destination signifying output to an S3 bucket.""" + +@dataclass +class AnalyticsFilterPrefix(_SerdeShape): + """The prefix to use when evaluating an analytics filter.""" + + value: str + +@dataclass +class AnalyticsFilterTag(_SerdeShape): + """The tag to use when evaluating an analytics filter.""" + + value: Tag + +@dataclass +class AnalyticsFilterAnd(_SerdeShape): + """ + A conjunction (logical AND) of predicates, which is used in evaluating + an analytics filter. The operator must have at least two predicates. + """ + + value: AnalyticsAndOperator + +@dataclass +class AnalyticsFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +AnalyticsFilter = Union[ + AnalyticsFilterPrefix + | AnalyticsFilterTag + | AnalyticsFilterAnd + | AnalyticsFilterUnknown +] +""" +The filter used to describe a set of objects for analyses. A filter must +have exactly one prefix, one tag, or one conjunction +(AnalyticsAndOperator). If no filter is provided, all objects will be +considered in any analysis. +""" + +class _AnalyticsFilterDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> AnalyticsFilter: ... + +@dataclass(kw_only=True) +class AnalyticsS3BucketDestination(_SerdeShape): + """Contains information about where to publish the analytics results.""" + + format: str + """Specifies the file format used when exporting data to Amazon S3.""" + bucket_account_id: str | None = ... + """ + The account ID that owns the destination S3 bucket. If no account ID is + provided, the owner is not validated before exporting data. + + Note: + Although this value is optional, we strongly recommend that you set it + to help prevent problems if the destination bucket ownership changes. + """ + bucket: str + """The Amazon Resource Name (ARN) of the bucket to which data is exported.""" + prefix: str | None = ... + """ + The prefix to use when exporting data. The prefix is prepended to all + results. + """ + +class AnalyticsS3ExportFileFormat(UnknownEnumMixin, StrEnum): + CSV = "CSV" + +class AnnotationConfigurationState(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +class AnnotationDirective(UnknownEnumMixin, StrEnum): + COPY = "COPY" + EXCLUDE = "EXCLUDE" + +@dataclass(kw_only=True) +class AnnotationEntry(_SerdeShape): + """ + Describes a single annotation attached to an object, including its name, + last modified time, size, ETag, checksum algorithm, and replication + status. Returned in the response from `ListObjectAnnotations`. + """ + + annotation_name: str + """The name of the annotation.""" + last_modified: datetime + """The date and time the annotation was last modified.""" + e_tag: str | None = ... + """The entity tag of the annotation.""" + checksum_algorithm: list[str] | None = ... + """The checksum algorithm used for the annotation.""" + size: int + """The size of the annotation payload, in bytes.""" + replication_status: str | None = ... + """The replication status of the annotation.""" + +@dataclass(kw_only=True) +class AnnotationLimitExceeded(ServiceError, _SerdeShape): + """ + The request would exceed the maximum number of annotations allowed per + object. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AnnotationNameTooLong(ServiceError, _SerdeShape): + """The annotation name exceeds 512 bytes.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class AnnotationTableConfiguration(_SerdeShape): + """ + Specifies the configuration for the annotation table associated with a + bucket's Amazon S3 Metadata configuration. The annotation table is an + Iceberg table that records annotation events for objects in the bucket. + """ + + configuration_state: str + """ + The state of the annotation table. Valid values are `ENABLED` and + `DISABLED`. + """ + encryption_configuration: MetadataTableEncryptionConfiguration | None = ... + """ + The encryption settings for an S3 Metadata journal table or inventory + table configuration. + """ + role: str | None = ... + """The ARN of the IAM role used to manage the annotation table.""" + +@dataclass(kw_only=True) +class AnnotationTableConfigurationResult(_SerdeShape): + """ + Contains the current state of the annotation table associated with a + bucket's Amazon S3 Metadata configuration, including its provisioning + status and identifiers. + """ + + configuration_state: str + """The current configuration state of the annotation table.""" + table_status: str | None = ... + """ + The provisioning status of the annotation table. Possible values: + `CREATING`, `BACKFILLING`, `ACTIVE`, `FAILED`. + """ + error: ErrorDetails | None = ... + """ + If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2 + `CreateBucketMetadataConfiguration` request succeeds, but S3 Metadata + was unable to create the table, this structure contains the error code + and error message. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + table_name: str | None = ... + """The name of the annotation table.""" + table_arn: str | None = ... + """The ARN of the annotation table.""" + role: str | None = ... + """The ARN of the IAM role associated with the annotation table.""" + +@dataclass(kw_only=True) +class AnnotationTableConfigurationUpdates(_SerdeShape): + """ + Specifies updates to apply to the annotation table configuration. Used + as the request body for + `UpdateBucketMetadataAnnotationTableConfiguration`. + """ + + configuration_state: str + """The new configuration state to apply.""" + encryption_configuration: MetadataTableEncryptionConfiguration | None = ... + """ + The encryption settings for an S3 Metadata journal table or inventory + table configuration. + """ + role: str | None = ... + """The new IAM role ARN to apply.""" + +class ArchiveStatus(UnknownEnumMixin, StrEnum): + ARCHIVE_ACCESS = "ARCHIVE_ACCESS" + DEEP_ARCHIVE_ACCESS = "DEEP_ARCHIVE_ACCESS" + +@dataclass(kw_only=True) +class BlockedEncryptionTypes(_SerdeShape): + """ + A bucket-level setting for Amazon S3 general purpose buckets used to + prevent the upload of new objects encrypted with the specified + server-side encryption type. For example, blocking an encryption type + will block `PutObject`, `CopyObject`, `PostObject`, multipart upload, + and replication requests to the bucket for objects with the specified + encryption type. However, you can continue to read and list any + pre-existing objects already encrypted with the specified encryption + type. For more information, see [Blocking or unblocking SSE-C for a + general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + This data type is used with the following actions: + + - [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) + + - [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) + + - [DeleteBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) + + Permissions + + : You must have the `s3:PutEncryptionConfiguration` permission to block + or unblock an encryption type for a bucket. + + You must have the `s3:GetEncryptionConfiguration` permission to view a + bucket's encryption type. + """ + + encryption_type: list[str] | None = ... + """ + The object encryption type that you want to block or unblock for an + Amazon S3 general purpose bucket. + + Note: + Currently, this parameter only supports blocking or unblocking server + side encryption with customer-provided keys (SSE-C). For more + information about SSE-C, see [Using server-side encryption with + customer-provided keys + (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html). + """ + +@dataclass(kw_only=True) +class Bucket(_SerdeShape): + """In terms of implementation, a Bucket is a resource.""" + + name: str | None = ... + """The name of the bucket.""" + creation_date: datetime | None = ... + """ + Date the bucket was created. This date can change when making changes to + your bucket, such as editing its bucket policy. + """ + bucket_region: str | None = ... + """ + `BucketRegion` indicates the Amazon Web Services region where the bucket + is located. If the request contains at least one valid parameter, it is + included in the response. + """ + bucket_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify + Amazon Web Services resources across all of Amazon Web Services. + + Note: + This parameter is only supported for S3 directory buckets. For more + information, see [Using tags with directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html). + """ + +class BucketAbacStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class BucketAccelerateStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + SUSPENDED = "Suspended" + +@dataclass(kw_only=True) +class BucketAlreadyExists(ServiceError, _SerdeShape): + """ + The requested bucket name is not available. The bucket namespace is + shared by all users of the system. Select a different name and try + again. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class BucketAlreadyOwnedByYou(ServiceError, _SerdeShape): + """ + The bucket you tried to create already exists, and you own it. Amazon S3 + returns this error in all Amazon Web Services Regions except in the + North Virginia Region. For legacy compatibility, if you re-create an + existing bucket that you already own in the North Virginia Region, + Amazon S3 returns 200 OK and resets the bucket access control lists + (ACLs). + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class BucketCannedACL(UnknownEnumMixin, StrEnum): + PRIVATE = "private" + PUBLIC_READ = "public-read" + PUBLIC_READ_WRITE = "public-read-write" + AUTHENTICATED_READ = "authenticated-read" + +@dataclass(kw_only=True) +class BucketInfo(_SerdeShape): + """ + Specifies the information about the bucket that will be created. For + more information about directory buckets, see [Directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is only supported by directory buckets. + """ + + data_redundancy: str | None = ... + """ + The number of Zone (Availability Zone or Local Zone) that's used for + redundancy for the bucket. + """ + type: str | None = ... + """The type of bucket.""" + +@dataclass(kw_only=True) +class BucketLifecycleConfiguration(_SerdeShape): + """ + Specifies the lifecycle configuration for objects in an Amazon S3 + bucket. For more information, see [Object Lifecycle + Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + in the *Amazon S3 User Guide*. + """ + + rules: list[LifecycleRule] + """A lifecycle rule for individual objects in an Amazon S3 bucket.""" + +class BucketLocationConstraint(UnknownEnumMixin, StrEnum): + AF_SOUTH_1 = "af-south-1" + AP_EAST_1 = "ap-east-1" + AP_EAST_2 = "ap-east-2" + AP_NORTHEAST_1 = "ap-northeast-1" + AP_NORTHEAST_2 = "ap-northeast-2" + AP_NORTHEAST_3 = "ap-northeast-3" + AP_SOUTH_1 = "ap-south-1" + AP_SOUTH_2 = "ap-south-2" + AP_SOUTHEAST_1 = "ap-southeast-1" + AP_SOUTHEAST_2 = "ap-southeast-2" + AP_SOUTHEAST_3 = "ap-southeast-3" + AP_SOUTHEAST_4 = "ap-southeast-4" + AP_SOUTHEAST_5 = "ap-southeast-5" + AP_SOUTHEAST_6 = "ap-southeast-6" + AP_SOUTHEAST_7 = "ap-southeast-7" + CA_CENTRAL_1 = "ca-central-1" + CA_WEST_1 = "ca-west-1" + CN_NORTH_1 = "cn-north-1" + CN_NORTHWEST_1 = "cn-northwest-1" + EU = "EU" + EU_CENTRAL_1 = "eu-central-1" + EU_CENTRAL_2 = "eu-central-2" + EU_NORTH_1 = "eu-north-1" + EU_SOUTH_1 = "eu-south-1" + EU_SOUTH_2 = "eu-south-2" + EU_WEST_1 = "eu-west-1" + EU_WEST_2 = "eu-west-2" + EU_WEST_3 = "eu-west-3" + IL_CENTRAL_1 = "il-central-1" + ME_CENTRAL_1 = "me-central-1" + ME_SOUTH_1 = "me-south-1" + MX_CENTRAL_1 = "mx-central-1" + SA_EAST_1 = "sa-east-1" + US_EAST_2 = "us-east-2" + US_GOV_EAST_1 = "us-gov-east-1" + US_GOV_WEST_1 = "us-gov-west-1" + US_WEST_1 = "us-west-1" + US_WEST_2 = "us-west-2" + +@dataclass(kw_only=True) +class BucketLoggingStatus(_SerdeShape): + """Container for logging status information.""" + + logging_enabled: LoggingEnabled | None = ... + """ + Describes where logs are stored and the prefix that Amazon S3 assigns to + all log object keys for a bucket. For more information, see [PUT Bucket + logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) + in the *Amazon S3 API Reference*. + """ + +class BucketLogsPermission(UnknownEnumMixin, StrEnum): + FULL_CONTROL = "FULL_CONTROL" + READ = "READ" + WRITE = "WRITE" + +class BucketNamespace(UnknownEnumMixin, StrEnum): + ACCOUNT_REGIONAL = "account-regional" + GLOBAL_ = "global" + +class BucketType(UnknownEnumMixin, StrEnum): + DIRECTORY = "Directory" + +class BucketVersioningStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + SUSPENDED = "Suspended" + +@dataclass(kw_only=True) +class Checksum(_SerdeShape): + """Contains all the possible checksum or digest values for an object.""" + + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + When you use an API operation on an object that was uploaded using + multipart uploads, this value may not be a direct checksum value of the + full object. Instead, it's a calculation based on the checksum values + of each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. This + checksum is present if the object was uploaded with the `CRC64NVME` + checksum algorithm, or if the object was uploaded without a checksum + (and Amazon S3 added the default checksum, `CRC64NVME`, to the uploaded + object). For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use the API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. This checksum + is present if the object was uploaded with the `SHA512` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. This checksum is + present if the object was uploaded with the `MD5` checksum algorithm. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. This + checksum is present if the object was uploaded with the `XXHASH64` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. This + checksum is present if the object was uploaded with the `XXHASH3` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. This + checksum is present if the object was uploaded with the `XXHASH128` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_type: str | None = ... + """ + The checksum type that is used to calculate the object's checksum value. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +class ChecksumAlgorithm(UnknownEnumMixin, StrEnum): + CRC32 = "CRC32" + CRC32_C = "CRC32C" + SHA1 = "SHA1" + SHA256 = "SHA256" + CRC64_NVME = "CRC64NVME" + SHA512 = "SHA512" + MD5 = "MD5" + XXHASH64 = "XXHASH64" + XXHASH3 = "XXHASH3" + XXHASH128 = "XXHASH128" + +class ChecksumMode(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + +class ChecksumType(UnknownEnumMixin, StrEnum): + COMPOSITE = "COMPOSITE" + FULL_OBJECT = "FULL_OBJECT" + +@dataclass(kw_only=True) +class CommonPrefix(_SerdeShape): + """ + Container for all (if there are any) keys between Prefix and the next + occurrence of the string specified by a delimiter. CommonPrefixes lists + keys that act like subdirectories in the directory specified by Prefix. + For example, if the prefix is notes/ and the delimiter is a slash (/) as + in notes/summer/july, the common prefix is notes/summer/. + """ + + prefix: str | None = ... + """Container for the specified common prefix.""" + +@dataclass(kw_only=True) +class CompletedMultipartUpload(_SerdeShape): + """The container for the completed multipart upload details.""" + + parts: list[CompletedPart] | None = ... + """ + Array of CompletedPart data types. + + If you do not supply a valid `Part` with your request, the service sends + back an HTTP 400 response. + """ + +@dataclass(kw_only=True) +class CompletedPart(_SerdeShape): + """Details of the parts that were uploaded.""" + + e_tag: str | None = ... + """Entity tag returned when the part was uploaded.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32C` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This + checksum is present if the multipart upload request was created with the + `CRC64NVME` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum + is present if the multipart upload request was created with the `SHA1` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` checksum of the part. This checksum + is present if the multipart upload request was created with the `SHA256` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the part. This checksum + is present if the multipart upload request was created with the `SHA512` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the part. This checksum is + present if the multipart upload request was created with the `MD5` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH64` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the part. This checksum + is present if the multipart upload request was created with the + `XXHASH3` checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH128` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + part_number: int | None = ... + """ + Part number that identifies the part. This is a positive integer between + 1 and 10,000. + + Note: + - **General purpose buckets** - In `CompleteMultipartUpload`, when a + additional checksum (including `x-amz-checksum-crc32`, + `x-amz-checksum-crc32c`, `x-amz-checksum-sha1`, or + `x-amz-checksum-sha256`) is applied to each part, the `PartNumber` + must start at 1 and the part numbers must be consecutive. Otherwise, + Amazon S3 generates an HTTP `400 Bad Request` status code and an + `InvalidPartOrder` error code. + + - **Directory buckets** - In `CompleteMultipartUpload`, the `PartNumber` + must start at 1 and the part numbers must be consecutive. + """ + +@dataclass(kw_only=True) +class CompleteMultipartUploadInput(_SerdeShape): + """Dataclass for CompleteMultipartUploadInput structure.""" + + bucket: str | None = ... + """ + Name of the bucket to which the multipart upload was initiated. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + multipart_upload: CompletedMultipartUpload | None = ... + """The container for the multipart upload request information.""" + upload_id: str | None = ... + """ID for the initiated multipart upload.""" + checksum_crc32: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32` checksum of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the object. + The `CRC64NVME` checksum is always a full object checksum. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 256-bit `SHA256` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 512-bit `SHA512` digest of the object. For + more information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `MD5` digest of the object. For + more information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH64` checksum of the object. + For more information, see [Checking object integrity in the Amazon S3 + User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH3` checksum of the object. + For more information, see [Checking object integrity in the Amazon S3 + User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `XXHASH128` checksum of the + object. For more information, see [Checking object integrity in the + Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_type: str | None = ... + """ + This header specifies the checksum type of the object, which determines + how part-level checksums are combined to create an object-level checksum + for multipart objects. You can use this header as a data integrity check + to verify that the checksum type that is received is the same checksum + that was specified. If the checksum type doesn't match the checksum type + that was specified for the object during the `CreateMultipartUpload` + request, it'll result in a `BadDigest` error. For more information, see + Checking object integrity in the Amazon S3 User Guide. + """ + mpu_object_size: int | None = ... + """ + The expected total object size of the multipart upload request. If + there's a mismatch between the specified object size value and the + actual object size value, it results in an `HTTP 400 InvalidRequest` + error. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + if_match: str | None = ... + """ + Uploads the object only if the ETag (entity tag) value provided during + the WRITE operation matches the ETag of the object in S3. If the ETag + values do not match, the operation returns a `412 Precondition Failed` + error. + + If a conflicting operation occurs during the upload S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure you should + fetch the object's ETag, re-initiate the multipart upload with + `CreateMultipartUpload`, and re-upload each part. + + Expects the ETag value as a string. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232), or [Conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide*. + """ + if_none_match: str | None = ... + """ + Uploads the object only if the object key name does not already exist in + the bucket specified. Otherwise, Amazon S3 returns a + `412 Precondition Failed` error. + + If a conflicting operation occurs during the upload S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure you should + re-initiate the multipart upload with `CreateMultipartUpload` and + re-upload each part. + + Expects the '*' (asterisk) character. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232), or [Conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide*. + """ + sse_customer_algorithm: str | None = ... + """ + The server-side encryption (SSE) algorithm used to encrypt the object. + This parameter is required only when the object was created using a + checksum algorithm or if your bucket policy requires the use of SSE-C. + For more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + The server-side encryption (SSE) customer managed key. This parameter is + needed only when the object was created using a checksum algorithm. For + more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + The MD5 server-side encryption (SSE) customer managed key. This + parameter is needed only when the object was created using a checksum + algorithm. For more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class CompleteMultipartUploadOutput(_SerdeShape): + """Dataclass for CompleteMultipartUploadOutput structure.""" + + location: str | None = ... + """The URI that identifies the newly created object.""" + bucket: str | None = ... + """ + The name of the bucket that contains the newly created object. Does not + return the access point ARN or access point alias if used. + + Note: + Access points are not supported by directory buckets. + """ + key: str | None = ... + """The object key of the newly created object.""" + expiration: str | None = ... + """ + If the object expiration is configured, this will contain the expiration + date (`expiry-date`) and rule ID (`rule-id`). The value of `rule-id` is + URL-encoded. + + Note: + This functionality is not supported for directory buckets. + """ + e_tag: str | None = ... + """ + Entity tag that identifies the newly created object's data. Objects + with different object data will have different entity tags. The entity + tag is an opaque string. The entity tag may or may not be an MD5 digest + of the object data. If the entity tag is not an MD5 digest of the object + data, it will contain one or more nonhexadecimal characters and/or will + consist of less than 32 or more than 32 hexadecimal digits. For more + information about how the entity tag is calculated, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + When you use an API operation on an object that was uploaded using + multipart uploads, this value may not be a direct checksum value of the + full object. Instead, it's a calculation based on the checksum values + of each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the object. + The `CRC64NVME` checksum is always a full object checksum. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use the API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_type: str | None = ... + """ + The checksum type, which determines how part-level checksums are + combined to create an object-level checksum for multipart objects. You + can use this header as a data integrity check to verify that the + checksum type that is received is the same checksum type that was + specified during the `CreateMultipartUpload` request. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when storing this object in + Amazon S3. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + version_id: str | None = ... + """ + Version ID of the newly created object, in case the bucket has + versioning turned on. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the multipart upload uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class CompressionType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + GZIP = "GZIP" + BZIP2 = "BZIP2" + +@dataclass(kw_only=True) +class Condition(_SerdeShape): + """ + A container for describing a condition that must be met for the + specified redirect to apply. For example, 1. If request is for pages in + the `/docs` folder, redirect to the `/documents` folder. 2. If request + results in HTTP error 4xx, redirect request to another host where you + might process the error. + """ + + http_error_code_returned_equals: str | None = ... + """ + The HTTP error code when the redirect is applied. In the event of an + error, if the error code equals this value, then the specified redirect + is applied. Required when parent element `Condition` is specified and + sibling `KeyPrefixEquals` is not specified. If both are specified, then + both must be true for the redirect to be applied. + """ + key_prefix_equals: str | None = ... + """ + The object key name prefix when the redirect is applied. For example, to + redirect requests for `ExamplePage.html`, the key prefix will be + `ExamplePage.html`. To redirect request for all pages with the prefix + `docs/`, the key prefix will be `/docs`, which identifies all objects in + the `docs/` folder. Required when the parent element `Condition` is + specified and sibling `HttpErrorCodeReturnedEquals` is not specified. If + both conditions are specified, both must be true for the redirect to be + applied. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + +@dataclass(kw_only=True) +class ContinuationEvent(_SerdeShape): + """""" + +@dataclass(kw_only=True) +class CopyObjectInput(_SerdeShape): + """Dataclass for CopyObjectInput structure.""" + + acl: str | None = ... + """ + The canned access control list (ACL) to apply to the object. + + When you copy an object, the ACL metadata is not preserved and is set to + `private` by default. Only the owner has full access control. To + override the default ACL setting, specify a new ACL when you generate a + copy request. For more information, see [Using + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). + + If the destination bucket that you're copying 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. For more information, see [Controlling + ownership of objects and disabling + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Note: + - If your destination 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. + + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + bucket: str | None = ... + """ + The name of the destination bucket. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + Note: + Copying objects across different Amazon Web Services Regions isn't + supported when the source or destination bucket is in Amazon Web + Services Local Zones. The source and destination buckets must have the + same parent Amazon Web Services Region. Otherwise, you get an HTTP + `400 Bad Request` error with the error code `InvalidRequest`. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must use the Outpost bucket access point ARN or the access point alias + for the destination bucket. You can only copy objects within the same + Outpost bucket. It's not supported to copy objects across different + Amazon Web Services Outposts, between buckets on the same Outposts, or + between Outposts buckets and any other bucket types. For more + information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *S3 on Outposts guide*. When you use this action with S3 on + Outposts through the REST API, you must direct requests to the S3 on + Outposts hostname, in the format + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + The hostname isn't required when you use the Amazon Web Services CLI or + SDKs. + """ + cache_control: str | None = ... + """Specifies the caching behavior along the request/reply chain.""" + checksum_algorithm: str | None = ... + """ + Indicates the algorithm that you want Amazon S3 to use to create the + checksum for the object. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + When you copy an object, if the source object has a checksum, that + checksum value will be copied to the new object by default. If the + `CopyObject` request does not include this `x-amz-checksum-algorithm` + header, the checksum algorithm will be copied from the source object to + the destination object (if it's present on the source object). You can + optionally specify a different checksum algorithm to use with the + `x-amz-checksum-algorithm` header. Unrecognized or unsupported values + will respond with the HTTP status code `400 Bad Request`. + + Note: + For directory buckets, when you use Amazon Web Services SDKs, `CRC32` is + the default checksum algorithm that's used for performance. + """ + content_disposition: str | None = ... + """ + Specifies presentational information for the object. Indicates whether + an object should be displayed in a web browser or downloaded as a file. + It allows specifying the desired filename for the downloaded file. + """ + content_encoding: str | None = ... + """ + Specifies what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. + + Note: + For directory buckets, only the `aws-chunked` value is supported in this + header field. + """ + content_language: str | None = ... + """The language the content is in.""" + content_type: str | None = ... + """A standard MIME type that describes the format of the object data.""" + copy_source: str | None = ... + """ + Specifies the source object for the copy operation. The source object + can be up to 5 GB. If the source object is an object that was uploaded + by using a multipart upload, the object copy will be a single part + object after the source object is copied to the destination bucket. + + You specify the value of the copy source in one of two formats, + depending on whether you want to access the source object through an + [access + point](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): + + - For objects not accessed through an access point, specify the name of + the source bucket and the key of the source object, separated by a + slash (/). For example, to copy the object `reports/january.pdf` from + the general purpose bucket `awsexamplebucket`, use + `awsexamplebucket/reports/january.pdf`. The value must be URL-encoded. + To copy the object `reports/january.pdf` from the directory bucket + `awsexamplebucket--use1-az5--x-s3`, use + `awsexamplebucket--use1-az5--x-s3/reports/january.pdf`. The value must + be URL-encoded. + + - For objects accessed through access points, specify the Amazon + Resource Name (ARN) of the object as accessed through the access + point, in the format + `arn:aws:s3:```{=html}`:```{=html}`:accesspoint/```{=html}`/object/```{=html}. + For example, to copy the object `reports/january.pdf` through access + point `my-access-point` owned by account `123456789012` in Region + `us-west-2`, use the URL encoding of + `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`. + The value must be URL encoded. + + Note: + - Amazon S3 supports copy operations using Access points only when the + source and destination buckets are in the same Amazon Web Services + Region. + + - Access points are not supported by directory buckets. + + Alternatively, for objects accessed through Amazon S3 on Outposts, + specify the ARN of the object as accessed in the format + `arn:aws:s3-outposts:```{=html}`:```{=html}`:outpost/```{=html}`/object/```{=html}. + For example, to copy the object `reports/january.pdf` through outpost + `my-outpost` owned by account `123456789012` in Region `us-west-2`, + use the URL encoding of + `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`. + The value must be URL-encoded. + + If your source bucket versioning is enabled, the `x-amz-copy-source` + header by default identifies the current version of an object to copy. + If the current version is a delete marker, Amazon S3 behaves as if the + object was deleted. To copy a different version, use the `versionId` + query parameter. Specifically, append `?versionId=```{=html} + to the value (for example, + `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`). + If you don't specify a version ID, Amazon S3 copies the latest version + of the source object. + + If you enable versioning on the destination bucket, Amazon S3 generates + a unique version ID for the copied object. This version ID is different + from the version ID of the source object. Amazon S3 returns the version + ID of the copied object in the `x-amz-version-id` response header in the + response. + + If you do not enable versioning or suspend it on the destination bucket, + the version ID that Amazon S3 generates in the `x-amz-version-id` + response header is always null. + + Note: + **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. + """ + copy_source_if_match: str | None = ... + """ + Copies the object if its entity tag (ETag) matches the specified tag. + + If both the `x-amz-copy-source-if-match` and + `x-amz-copy-source-if-unmodified-since` headers are present in the + request and evaluate as follows, Amazon S3 returns `200 OK` and copies + the data: + + - `x-amz-copy-source-if-match` condition evaluates to true + + - `x-amz-copy-source-if-unmodified-since` condition evaluates to false + """ + copy_source_if_modified_since: datetime | None = ... + """ + Copies the object if it has been modified since the specified time. + + If both the `x-amz-copy-source-if-none-match` and + `x-amz-copy-source-if-modified-since` headers are present in the request + and evaluate as follows, Amazon S3 returns the `412 Precondition Failed` + response code: + + - `x-amz-copy-source-if-none-match` condition evaluates to false + + - `x-amz-copy-source-if-modified-since` condition evaluates to true + """ + copy_source_if_none_match: str | None = ... + """ + Copies the object if its entity tag (ETag) is different than the + specified ETag. + + If both the `x-amz-copy-source-if-none-match` and + `x-amz-copy-source-if-modified-since` headers are present in the request + and evaluate as follows, Amazon S3 returns the `412 Precondition Failed` + response code: + + - `x-amz-copy-source-if-none-match` condition evaluates to false + + - `x-amz-copy-source-if-modified-since` condition evaluates to true + """ + copy_source_if_unmodified_since: datetime | None = ... + """ + Copies the object if it hasn't been modified since the specified time. + + If both the `x-amz-copy-source-if-match` and + `x-amz-copy-source-if-unmodified-since` headers are present in the + request and evaluate as follows, Amazon S3 returns `200 OK` and copies + the data: + + - `x-amz-copy-source-if-match` condition evaluates to true + + - `x-amz-copy-source-if-unmodified-since` condition evaluates to false + """ + expires: str | None = ... + """The date and time at which the object is no longer cacheable.""" + grant_full_control: str | None = ... + """ + Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the + object. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read: str | None = ... + """ + Allows grantee to read the object data and its metadata. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read_acp: str | None = ... + """ + Allows grantee to read the object ACL. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_write_acp: str | None = ... + """ + Allows grantee to write the ACL for the applicable object. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + if_match: str | None = ... + """ + Copies the object if the entity tag (ETag) of the destination object + matches the specified tag. If the ETag values do not match, the + operation returns a `412 Precondition Failed` error. If a concurrent + operation occurs during the upload S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure you should + fetch the object's ETag and retry the upload. + + Expects the ETag value as a string. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_none_match: str | None = ... + """ + Copies the object only if the object key name at the destination does + not already exist in the bucket specified. Otherwise, Amazon S3 returns + a `412 Precondition Failed` error. If a concurrent operation occurs + during the upload S3 returns a `409 ConditionalRequestConflict` + response. On a 409 failure you should retry the upload. + + Expects the '*' (asterisk) character. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + key: str | None = ... + """The key of the destination object.""" + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + metadata_directive: str | None = ... + """ + Specifies whether the metadata is copied from the source object or + replaced with metadata that's provided in the request. When copying an + object, you can preserve all metadata (the default) or specify new + metadata. If this header isn't specified, `COPY` is the default + behavior. + + **General purpose bucket** - For general purpose buckets, when you grant + permissions, you can use the `s3:x-amz-metadata-directive` condition key + to enforce certain metadata behavior when objects are uploaded. For more + information, see [Amazon S3 condition key + examples](https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) + in the *Amazon S3 User Guide*. + + Note: + `x-amz-website-redirect-location` is unique to each object and is not + copied when using the `x-amz-metadata-directive` header. To copy the + value, you must specify `x-amz-website-redirect-location` in the request + header. + """ + tagging_directive: str | None = ... + """ + Specifies whether the object tag-set is copied from the source object or + replaced with the tag-set that's provided in the request. + + The default value is `COPY`. + + Note: + **Directory buckets** - For directory buckets in a `CopyObject` + operation, only the empty tag-set is supported. Any requests that + attempt to write non-empty tags into directory buckets will receive a + `501 Not Implemented` status code. When the destination bucket is a + directory bucket, you will receive a `501 Not Implemented` response in + any of the following situations: + + - When you attempt to `COPY` the tag-set from an S3 source object that + has non-empty tags. + + - When you attempt to `REPLACE` the tag-set of a source object and set a + non-empty value to `x-amz-tagging`. + + - When you don't set the `x-amz-tagging-directive` header and the + source object has non-empty tags. This is because the default value of + `x-amz-tagging-directive` is `COPY`. + + Because only the empty tag-set is supported for directory buckets in a + `CopyObject` operation, the following situations are allowed: + + - When you attempt to `COPY` the tag-set from a directory bucket source + object that has no tags to a general purpose bucket. It copies an + empty tag-set to the destination object. + + - When you attempt to `REPLACE` the tag-set of a directory bucket source + object and set the `x-amz-tagging` value of the directory bucket + destination object to empty. + + - When you attempt to `REPLACE` the tag-set of a general purpose bucket + source object that has non-empty tags and set the `x-amz-tagging` + value of the directory bucket destination object to empty. + + - When you attempt to `REPLACE` the tag-set of a directory bucket source + object and don't set the `x-amz-tagging` value of the directory + bucket destination object. This is because the default value of + `x-amz-tagging` is the empty value. + """ + annotation_directive: str | None = ... + """ + Specifies whether you want to copy annotations from the source object or + exclude them. If this header isn't specified, `COPY` is the default + behavior. + + Valid Values: `COPY | EXCLUDE` + + You can specify this directive as either an HTTP header + (`x-amz-object-annotation-directive`) or as a query string parameter. + Use the query string form when generating presigned URLs that need to + control annotation copy behavior. + + When set to `COPY`, you must have `s3:GetObjectAnnotation` permission on + the source object and `s3:PutObjectAnnotation` permission on the + destination. Each annotation copied is billed as a separate PUT request. + If annotations on the source are modified during the copy, Amazon S3 + returns a retryable error. + + Note: + For directory buckets, annotations are not supported. Use `EXCLUDE` to + copy objects to directory buckets without errors. If you specify `COPY` + for a directory bucket, the request returns HTTP 501 (Not Implemented). + Note: + When you copy objects using multipart upload (for example, when the + Amazon Web Services CLI or Amazon Web Services SDKs use Transfer Manager + for objects larger than approximately 8 MB), annotations are not copied + by default. To include annotations, specify `--copy-props default` in + the Amazon Web Services CLI or the equivalent SDK configuration. With + this opt-in, the SDK reads source annotations, completes the multipart + upload, and then writes each annotation to the destination. Between the + upload completion and the last annotation write, the destination object + exists without all its annotations. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when storing this object in + Amazon S3. Unrecognized or unsupported values won't write a destination + object and will receive a `400 Bad Request` response. + + Amazon S3 automatically encrypts all new objects that are copied to an + S3 bucket. When copying an object, if you don't specify encryption + information in your copy request, the encryption setting of the target + object is set to the default encryption configuration of the destination + bucket. By default, all buckets have a base level of encryption + configuration that uses server-side encryption with Amazon S3 managed + keys (SSE-S3). If the destination bucket has a different default + encryption configuration, Amazon S3 uses the corresponding encryption + key to encrypt the target object copy. + + With server-side encryption, Amazon S3 encrypts your data as it writes + your data to disks in its data centers and decrypts the data when you + access it. For more information about server-side encryption, see [Using + Server-Side + Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + **General purpose buckets** + + - For general purpose buckets, there are the following supported options + for server-side encryption: server-side encryption with Key Management + Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with + Amazon Web Services KMS keys (DSSE-KMS), and server-side encryption + with customer-provided encryption keys (SSE-C). Amazon S3 uses the + corresponding KMS key, or a customer-provided key to encrypt the + target object copy. + + - When you perform a `CopyObject` operation, if you want to use a + different type of encryption setting for the target object, you can + specify appropriate encryption-related headers to encrypt the target + object with an Amazon S3 managed key, a KMS key, or a + customer-provided key. If the encryption setting in your request is + different from the default encryption configuration of the destination + bucket, the encryption setting in your request takes precedence. + + **Directory buckets** + + - For directory buckets, there are only two supported options for + server-side encryption: server-side encryption with Amazon S3 managed + keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys + (SSE-KMS) (`aws:kms`). We recommend that the bucket's default + encryption uses the desired encryption configuration and you don't + override the bucket default encryption in your `CreateSession` + requests or `PUT` object requests. Then, new objects are automatically + encrypted with the desired encryption settings. For more information, + see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + - To encrypt new object copies to a directory bucket with SSE-KMS, we + recommend you specify SSE-KMS as the directory bucket's default + encryption configuration with a KMS key (specifically, a [customer + managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)). + The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. Your SSE-KMS configuration can only + support 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket for the lifetime of the bucket. After you specify + a customer managed key for SSE-KMS, you can't override the customer + managed key for the bucket's SSE-KMS configuration. Then, when you + perform a `CopyObject` operation and want to specify server-side + encryption settings for new object copies with SSE-KMS in the + encryption-related request headers, you must ensure the encryption key + is the same customer managed key that you specified for the directory + bucket's default encryption configuration. + + - **S3 access points for Amazon FSx** - When accessing data stored in + Amazon FSx file systems using S3 access points, the only valid server + side encryption option is `aws:fsx`. All Amazon FSx file systems have + encryption configured by default and are encrypted at rest. Data is + automatically encrypted before being written to the file system, and + automatically decrypted as it is read. These processes are handled + transparently by Amazon FSx. + """ + storage_class: str | None = ... + """ + If the `x-amz-storage-class` header is not used, the copied object will + be stored in the `STANDARD` Storage Class by default. The `STANDARD` + storage class provides high durability and high availability. Depending + on performance needs, you can specify a different Storage Class. + + Note: + - **Directory buckets** - Directory buckets only support + `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in + Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access + storage class) in Dedicated Local Zones. Unsupported storage class + values won't write a destination object and will respond with the + HTTP status code `400 Bad Request`. + + - **Amazon S3 on Outposts** - S3 on Outposts only uses the `OUTPOSTS` + Storage Class. + + You can use the `CopyObject` action to change the storage class of an + object that is already stored in Amazon S3 by using the + `x-amz-storage-class` header. For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + in the *Amazon S3 User Guide*. + + Before using an object as a source object for the copy operation, you + must restore a copy of it if it meets any of the following conditions: + + - The storage class of the source object is `GLACIER` or `DEEP_ARCHIVE`. + + - The storage class of the source object is `INTELLIGENT_TIERING` and + it's [S3 Intelligent-Tiering access + tier](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition) + is `Archive Access` or `Deep Archive Access`. + + For more information, see + [RestoreObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) + and [Copying + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html) + in the *Amazon S3 User Guide*. + """ + website_redirect_location: str | None = ... + """ + If the destination bucket is configured as a website, redirects requests + for this object copy to another object in the same bucket or to an + external URL. Amazon S3 stores the value of this header in the object + metadata. This value is unique to each object and is not copied when + using the `x-amz-metadata-directive` header. Instead, you may opt to + provide this header in combination with the `x-amz-metadata-directive` + header. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + `AES256`). + + When you perform a `CopyObject` operation, if you want to use a + different type of encryption setting for the target object, you can + specify appropriate encryption-related headers to encrypt the target + object with an Amazon S3 managed key, a KMS key, or a customer-provided + key. If the encryption setting in your request is different from the + default encryption configuration of the destination bucket, the + encryption setting in your request takes precedence. + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded. Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + ssekms_key_id: str | None = ... + """ + Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for + object encryption. All GET and PUT requests for an object protected by + KMS will fail if they're not made via SSL or using SigV4. For + information about configuring any of the officially supported Amazon Web + Services SDKs and Amazon Web Services CLI, see [Specifying the Signature + Version in Request + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) + in the *Amazon S3 User Guide*. + + **Directory buckets** - To encrypt data using SSE-KMS, it's recommended + to specify the `x-amz-server-side-encryption` header to `aws:kms`. Then, + the `x-amz-server-side-encryption-aws-kms-key-id` header implicitly uses + the bucket's default KMS customer managed key ID. If you want to + explicitly set the ` x-amz-server-side-encryption-aws-kms-key-id` + header, it must match the bucket's default customer managed key (using + key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 + [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. Incorrect key specification results in an + HTTP `400 Bad Request` error. + """ + ssekms_encryption_context: str | None = ... + """ + Specifies the Amazon Web Services KMS Encryption Context as an + additional encryption context to use for the destination object + encryption. The value of this header is a base64-encoded UTF-8 string + holding JSON with the encryption context key-value pairs. + + **General purpose buckets** - This value must be explicitly added to + specify encryption context for `CopyObject` requests if you want an + additional encryption context for your destination object. The + additional encryption context of the source object won't be copied to + the destination object. For more information, see [Encryption + context](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context) + in the *Amazon S3 User Guide*. + + **Directory buckets** - You can optionally provide an explicit + encryption context value. The value must match the default encryption + context - the bucket Amazon Resource Name (ARN). An additional + encryption context value is not supported. + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key for object + encryption with server-side encryption using Key Management Service + (KMS) keys (SSE-KMS). If a target object uses SSE-KMS, you can enable an + S3 Bucket Key for the object. + + Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key + for object encryption with SSE-KMS. Specifying this header with a COPY + action doesn't affect bucket-level settings for S3 Bucket Key. + + For more information, see [Amazon S3 Bucket + Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) + in the *Amazon S3 User Guide*. + + Note: + **Directory buckets** - S3 Bucket Keys aren't supported, when you copy + SSE-KMS encrypted objects from general purpose buckets to directory + buckets, from directory buckets to general purpose buckets, or between + directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html). + In this case, Amazon S3 makes a call to KMS every time a copy request is + made for a KMS-encrypted object. + """ + copy_source_sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when decrypting the source object (for + example, `AES256`). + + If the source object for the copy is stored in Amazon S3 using SSE-C, + you must provide the necessary encryption information in your request so + that Amazon S3 can decrypt the object for copying. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + copy_source_sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use to + decrypt the source object. The encryption key provided in this header + must be the same one that was used when the source object was created. + + If the source object for the copy is stored in Amazon S3 using SSE-C, + you must provide the necessary encryption information in your request so + that Amazon S3 can decrypt the object for copying. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + copy_source_sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + If the source object for the copy is stored in Amazon S3 using SSE-C, + you must provide the necessary encryption information in your request so + that Amazon S3 can decrypt the object for copying. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + tagging: str | None = ... + """ + The tag-set for the object copy in the destination bucket. This value + must be used in conjunction with the `x-amz-tagging-directive` if you + choose `REPLACE` for the `x-amz-tagging-directive`. If you choose `COPY` + for the `x-amz-tagging-directive`, you don't need to set the + `x-amz-tagging` header, because the tag-set will be copied from the + source object directly. The tag-set must be encoded as URL Query + parameters. + + The default value is the empty value. + + Note: + **Directory buckets** - For directory buckets in a `CopyObject` + operation, only the empty tag-set is supported. Any requests that + attempt to write non-empty tags into directory buckets will receive a + `501 Not Implemented` status code. When the destination bucket is a + directory bucket, you will receive a `501 Not Implemented` response in + any of the following situations: + + - When you attempt to `COPY` the tag-set from an S3 source object that + has non-empty tags. + + - When you attempt to `REPLACE` the tag-set of a source object and set a + non-empty value to `x-amz-tagging`. + + - When you don't set the `x-amz-tagging-directive` header and the + source object has non-empty tags. This is because the default value of + `x-amz-tagging-directive` is `COPY`. + + Because only the empty tag-set is supported for directory buckets in a + `CopyObject` operation, the following situations are allowed: + + - When you attempt to `COPY` the tag-set from a directory bucket source + object that has no tags to a general purpose bucket. It copies an + empty tag-set to the destination object. + + - When you attempt to `REPLACE` the tag-set of a directory bucket source + object and set the `x-amz-tagging` value of the directory bucket + destination object to empty. + + - When you attempt to `REPLACE` the tag-set of a general purpose bucket + source object that has non-empty tags and set the `x-amz-tagging` + value of the directory bucket destination object to empty. + + - When you attempt to `REPLACE` the tag-set of a directory bucket source + object and don't set the `x-amz-tagging` value of the directory + bucket destination object. This is because the default value of + `x-amz-tagging` is the empty value. + """ + object_lock_mode: str | None = ... + """ + The Object Lock mode that you want to apply to the object copy. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_retain_until_date: datetime | None = ... + """ + The date and time when you want the Object Lock of the object copy to + expire. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_legal_hold_status: str | None = ... + """ + Specifies whether you want to apply a legal hold to the object copy. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold: str | None = ... + """ + The event hold status to apply to the object copy. Set to `ON` to enable + or `OFF` to disable. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_days: int | None = ... + """ + The event hold duration in days to apply to the object copy. You cannot + specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_years: int | None = ... + """ + The event hold duration in years to apply to the object copy. You cannot + specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected destination bucket owner. If the account + ID that you provide does not match the actual owner of the destination + bucket, the request fails with the HTTP status code `403 Forbidden` + (access denied). + """ + expected_source_bucket_owner: str | None = ... + """ + The account ID of the expected source bucket owner. If the account ID + that you provide does not match the actual owner of the source bucket, + the request fails with the HTTP status code `403 Forbidden` (access + denied). + """ + +@dataclass(kw_only=True) +class CopyObjectOutput(_SerdeShape): + """Dataclass for CopyObjectOutput structure.""" + + copy_object_result: CopyObjectResult | None = ... + """Container for all response elements.""" + expiration: str | None = ... + """ + If the object expiration is configured, the response includes this + header. + + Note: + Object expiration information is not returned in directory buckets and + this header returns the value \"`NotImplemented`\" in all responses for + directory buckets. + """ + copy_source_version_id: str | None = ... + """ + Version ID of the source object that was copied. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + version_id: str | None = ... + """ + Version ID of the newly created copy. + + Note: + This functionality is not supported for directory buckets. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + ssekms_encryption_context: str | None = ... + """ + If present, indicates the Amazon Web Services KMS Encryption Context to + use for object encryption. The value of this header is a Base64 encoded + UTF-8 string holding JSON with the encryption context key-value pairs. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the copied object uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CopyObjectResult(_SerdeShape): + """Container for all response elements.""" + + e_tag: str | None = ... + """ + Returns the ETag of the new object. The ETag reflects only changes to + the contents of an object, not its metadata. + """ + last_modified: datetime | None = ... + """Creation date of the object.""" + checksum_type: str | None = ... + """ + The checksum type that is used to calculate the object's checksum value. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. This + checksum is present if the object being copied was uploaded with the + `CRC64NVME` checksum algorithm, or if the object was uploaded without a + checksum (and Amazon S3 added the default checksum, `CRC64NVME`, to the + uploaded object). For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. This checksum + is only present if the object was uploaded with the `SHA512` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. This checksum is + only present if the object was uploaded with the `MD5` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. This + checksum is only present if the object was uploaded with the `XXHASH64` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. This + checksum is only present if the object was uploaded with the `XXHASH3` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. This + checksum is only present if the object was uploaded with the `XXHASH128` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class CopyPartResult(_SerdeShape): + """Container for all response elements.""" + + e_tag: str | None = ... + """Entity tag of the object.""" + last_modified: datetime | None = ... + """Date and time at which the object was uploaded.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32C` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This + checksum is present if the multipart upload request was created with the + `CRC64NVME` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the part. This checksum is + present if the multipart upload request was created with the `SHA1` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the part. This checksum + is present if the multipart upload request was created with the `SHA256` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the part. This checksum + is present if the multipart upload request was created with the `SHA512` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the part. This checksum is + present if the multipart upload request was created with the `MD5` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH64` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the part. This checksum + is present if the multipart upload request was created with the + `XXHASH3` checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH128` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class CORSConfiguration(_SerdeShape): + """ + Describes the cross-origin access configuration for objects in an Amazon + S3 bucket. For more information, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + """ + + cors_rules: list[CORSRule] + """ + A set of origins and methods (cross-origin access that you want to + allow). You can add up to 100 rules to the configuration. + """ + +@dataclass(kw_only=True) +class CORSRule(_SerdeShape): + """Specifies a cross-origin access rule for an Amazon S3 bucket.""" + + id: str | None = ... + """ + Unique identifier for the rule. The value cannot be longer than 255 + characters. + """ + allowed_headers: list[str] | None = ... + """ + Headers that are specified in the `Access-Control-Request-Headers` + header. These headers are allowed in a preflight OPTIONS request. In + response to any preflight OPTIONS request, Amazon S3 returns any + requested headers that are allowed. + """ + allowed_methods: list[str] + """ + An HTTP method that you allow the origin to execute. Valid values are + `GET`, `PUT`, `HEAD`, `POST`, and `DELETE`. + """ + allowed_origins: list[str] + """ + One or more origins you want customers to be able to access the bucket + from. + """ + expose_headers: list[str] | None = ... + """ + One or more headers in the response that you want customers to be able + to access from their applications (for example, from a JavaScript + `XMLHttpRequest` object). + """ + max_age_seconds: int | None = ... + """ + The time in seconds that your browser is to cache the preflight response + for the specified resource. + """ + +@dataclass(kw_only=True) +class CreateBucketConfiguration(_SerdeShape): + """The configuration information for the bucket.""" + + location_constraint: str | None = ... + """ + Specifies the Region where the bucket will be created. You might choose + a Region to optimize latency, minimize costs, or address regulatory + requirements. For example, if you reside in Europe, you will probably + find it advantageous to create buckets in the Europe (Ireland) Region. + + If you don't specify a Region, the bucket is created in the US East (N. + Virginia) Region (us-east-1) by default. Configurations using the value + `EU` will create a bucket in `eu-west-1`. + + For a list of the valid values for all of the Amazon Web Services + Regions, see [Regions and + Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). + + Note: + This functionality is not supported for directory buckets. + """ + location: LocationInfo | None = ... + """ + Specifies the location where the bucket will be created. + + **Directory buckets** - The location type is Availability Zone or Local + Zone. To use the Local Zone location type, your account must be enabled + for Local Zones. Otherwise, you get an HTTP `403 Forbidden` error with + the error code `AccessDenied`. To learn more, see [Enable accounts for + Local + Zones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is only supported by directory buckets. + """ + bucket: BucketInfo | None = ... + """ + Specifies the information about the bucket that will be created. + + Note: + This functionality is only supported by directory buckets. + """ + tags: list[Tag] | None = ... + """ + An array of tags that you can apply to the bucket that you're creating. + Tags are key-value pairs of metadata used to categorize and organize + your buckets, track costs, and control access. + + You must have the `s3:TagResource` permission to create a general + purpose bucket with tags or the `s3express:TagResource` permission to + create a directory bucket with tags. + + When creating buckets with tags, note that tag-based conditions using + `aws:ResourceTag` and `s3:BucketTag` condition keys are applicable only + after ABAC is enabled on the bucket. To learn more, see [Enabling ABAC + in general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html). + """ + +@dataclass(kw_only=True) +class CreateBucketInput(_SerdeShape): + """Dataclass for CreateBucketInput structure.""" + + acl: str | None = ... + """ + The canned ACL to apply to the bucket. + + Note: + This functionality is not supported for directory buckets. + """ + bucket: str | None = ... + """ + The name of the bucket to create. + + **General purpose buckets** - For information about bucket naming + restrictions, see [Bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) + in the *Amazon S3 User Guide*. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + create_bucket_configuration: CreateBucketConfiguration | None = ... + """The configuration information for the bucket.""" + grant_full_control: str | None = ... + """ + Allows grantee the read, write, read ACP, and write ACP permissions on + the bucket. + + Note: + This functionality is not supported for directory buckets. + """ + grant_read: str | None = ... + """ + Allows grantee to list the objects in the bucket. + + Note: + This functionality is not supported for directory buckets. + """ + grant_read_acp: str | None = ... + """ + Allows grantee to read the bucket ACL. + + Note: + This functionality is not supported for directory buckets. + """ + grant_write: str | None = ... + """ + Allows grantee to create new objects in the bucket. + + For the bucket and object owners of existing objects, also allows + deletions and overwrites of those objects. + + Note: + This functionality is not supported for directory buckets. + """ + grant_write_acp: str | None = ... + """ + Allows grantee to write the ACL for the applicable bucket. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_enabled_for_bucket: bool | None = ... + """ + Specifies whether you want S3 Object Lock to be enabled for the new + bucket. + + Note: + This functionality is not supported for directory buckets. + """ + object_ownership: str | None = ... + """ + The container element for object ownership for a bucket's ownership + controls. + + `BucketOwnerPreferred` - Objects uploaded to the bucket change ownership + to the bucket owner if the objects are uploaded with the + `bucket-owner-full-control` canned ACL. + + `ObjectWriter` - The uploading account will own the object if the object + is uploaded with the `bucket-owner-full-control` canned ACL. + + `BucketOwnerEnforced` - Access control lists (ACLs) are disabled and no + longer affect permissions. The bucket owner automatically owns and has + full control over every object in the bucket. The bucket only accepts + PUT requests that don't specify an ACL or specify bucket owner full + control ACLs (such as the predefined `bucket-owner-full-control` canned + ACL or a custom ACL in XML format that grants the same permissions). + + By default, `ObjectOwnership` is set to `BucketOwnerEnforced` and ACLs + are disabled. We recommend keeping ACLs disabled, except in uncommon use + cases where you must control access for each object individually. For + more information about S3 Object Ownership, see [Controlling ownership + of objects and disabling ACLs for your + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. Directory + buckets use the bucket owner enforced setting for S3 Object Ownership. + """ + bucket_namespace: str | None = ... + """ + Specifies the namespace where you want to create your general purpose + bucket. When you create a general purpose bucket, you can choose to + create a bucket in the shared global namespace or you can choose to + create a bucket in your account regional namespace. Your account + regional namespace is a subdivision of the global namespace that only + your account can create buckets in. For more information on bucket + namespaces, see [Namespaces for general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/gpbucketnamespaces.html). + + General purpose buckets in your account regional namespace must follow a + specific naming convention. These buckets consist of a bucket name + prefix that you create, and a suffix that contains your 12-digit Amazon + Web Services Account ID, the Amazon Web Services Region code, and ends + with `-an`. Bucket names must follow the format + `bucket-name-prefix-accountId-region-an` (for example, + `amzn-s3-demo-bucket-111122223333-us-west-2-an`). For information about + bucket naming restrictions, see [Account regional namespace naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html#account-regional-naming-rules) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class CreateBucketMetadataConfigurationInput(_SerdeShape): + """Dataclass for CreateBucketMetadataConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that you want to create the metadata + configuration for. + """ + content_md5: str | None = ... + """The `Content-MD5` header for the metadata configuration.""" + checksum_algorithm: str | None = ... + """The checksum algorithm to use with your metadata configuration.""" + metadata_configuration: MetadataConfiguration | None = ... + """The contents of your metadata configuration.""" + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that corresponds to + your metadata configuration. + """ + +@dataclass(kw_only=True) +class CreateBucketMetadataConfigurationOutput(_SerdeShape): + """Dataclass for CreateBucketMetadataConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateBucketMetadataTableConfigurationInput(_SerdeShape): + """Dataclass for CreateBucketMetadataTableConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that you want to create the metadata table + configuration for. + """ + content_md5: str | None = ... + """The `Content-MD5` header for the metadata table configuration.""" + checksum_algorithm: str | None = ... + """The checksum algorithm to use with your metadata table configuration.""" + metadata_table_configuration: MetadataTableConfiguration | None = ... + """The contents of your metadata table configuration.""" + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that corresponds to + your metadata table configuration. + """ + +@dataclass(kw_only=True) +class CreateBucketMetadataTableConfigurationOutput(_SerdeShape): + """Dataclass for CreateBucketMetadataTableConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateBucketOutput(_SerdeShape): + """Dataclass for CreateBucketOutput structure.""" + + location: str | None = ... + """ + A forward slash followed by the name of the bucket for all account + regional namespace buckets and all global general purpose buckets + created in us-east-1. For example, `/amzn-s3-demo-bucket`. For global + general purpose buckets created in other Amazon Web Services Regions, + the Location field is the global endpoint URL. For example, + `http://amzn-s3-demo-bucket.s3.amazonaws.com/`. + """ + bucket_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify + Amazon Web Services resources across all of Amazon Web Services. + + Note: + This parameter is only supported for S3 directory buckets. For more + information, see [Using tags with directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateMultipartUploadInput(_SerdeShape): + """Dataclass for CreateMultipartUploadInput structure.""" + + acl: str | None = ... + """ + The canned ACL to apply to the object. Amazon S3 supports a set of + predefined ACLs, known as *canned ACLs*. Each canned ACL has a + predefined set of grantees and permissions. For more information, see + [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + in the *Amazon S3 User Guide*. + + By default, all objects are private. Only the owner has full access + control. When uploading an object, you can grant access permissions to + individual Amazon Web Services accounts or to predefined groups defined + by Amazon S3. These permissions are then added to the access control + list (ACL) on the new object. For more information, see [Using + ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). + One way to grant the permissions using the request headers is to specify + a canned ACL with the `x-amz-acl` request header. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + bucket: str | None = ... + """ + The name of the bucket where the multipart upload is initiated and where + the object is uploaded. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + cache_control: str | None = ... + """Specifies caching behavior along the request/reply chain.""" + content_disposition: str | None = ... + """Specifies presentational information for the object.""" + content_encoding: str | None = ... + """ + Specifies what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. + + Note: + For directory buckets, only the `aws-chunked` value is supported in this + header field. + """ + content_language: str | None = ... + """The language that the content is in.""" + content_type: str | None = ... + """A standard MIME type describing the format of the object data.""" + expires: str | None = ... + """The date and time at which the object is no longer cacheable.""" + grant_full_control: str | None = ... + """ + Specify access permissions explicitly to give the grantee READ, + READ_ACP, and WRITE_ACP permissions on the object. + + By default, all objects are private. Only the owner has full access + control. When uploading an object, you can use this header to explicitly + grant access permissions to specific Amazon Web Services accounts or + groups. This header maps to specific permissions that Amazon S3 supports + in an ACL. For more information, see [Access Control List (ACL) + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-read` header grants the Amazon + Web Services accounts identified by account IDs permissions to read + object data and its metadata: + + `x-amz-grant-read: id="11112222333", id="444455556666" ` + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read: str | None = ... + """ + Specify access permissions explicitly to allow grantee to read the + object data and its metadata. + + By default, all objects are private. Only the owner has full access + control. When uploading an object, you can use this header to explicitly + grant access permissions to specific Amazon Web Services accounts or + groups. This header maps to specific permissions that Amazon S3 supports + in an ACL. For more information, see [Access Control List (ACL) + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-read` header grants the Amazon + Web Services accounts identified by account IDs permissions to read + object data and its metadata: + + `x-amz-grant-read: id="11112222333", id="444455556666" ` + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read_acp: str | None = ... + """ + Specify access permissions explicitly to allows grantee to read the + object ACL. + + By default, all objects are private. Only the owner has full access + control. When uploading an object, you can use this header to explicitly + grant access permissions to specific Amazon Web Services accounts or + groups. This header maps to specific permissions that Amazon S3 supports + in an ACL. For more information, see [Access Control List (ACL) + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-read` header grants the Amazon + Web Services accounts identified by account IDs permissions to read + object data and its metadata: + + `x-amz-grant-read: id="11112222333", id="444455556666" ` + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_write_acp: str | None = ... + """ + Specify access permissions explicitly to allows grantee to allow grantee + to write the ACL for the applicable object. + + By default, all objects are private. Only the owner has full access + control. When uploading an object, you can use this header to explicitly + grant access permissions to specific Amazon Web Services accounts or + groups. This header maps to specific permissions that Amazon S3 supports + in an ACL. For more information, see [Access Control List (ACL) + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + in the *Amazon S3 User Guide*. + + 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 + + Note: + 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](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + in the Amazon Web Services General Reference. + + For example, the following `x-amz-grant-read` header grants the Amazon + Web Services accounts identified by account IDs permissions to read + object data and its metadata: + + `x-amz-grant-read: id="11112222333", id="444455556666" ` + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + key: str | None = ... + """Object key for which the multipart upload is to be initiated.""" + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). We recommend that the + bucket's default encryption uses the desired encryption configuration + and you don't override the bucket default encryption in your + `CreateSession` requests or `PUT` object requests. Then, new objects + are automatically encrypted with the desired encryption settings. For + more information, see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, the encryption request headers must match the + encryption settings that are specified in the `CreateSession` request. + You can't override the values of the encryption settings + (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) that are specified + in the `CreateSession` request. You don't need to explicitly specify + these encryption settings values in Zonal endpoint API calls, and + Amazon S3 will use the encryption settings values from the + `CreateSession` request to protect new objects in the directory + bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. So in the + Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + the encryption request headers must match the default encryption + configuration of the directory bucket. + + - **S3 access points for Amazon FSx** - When accessing data stored in + Amazon FSx file systems using S3 access points, the only valid server + side encryption option is `aws:fsx`. All Amazon FSx file systems have + encryption configured by default and are encrypted at rest. Data is + automatically encrypted before being written to the file system, and + automatically decrypted as it is read. These processes are handled + transparently by Amazon FSx. + """ + storage_class: str | None = ... + """ + 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. For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + in the *Amazon S3 User Guide*. + + Note: + - Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One + Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + + - Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. + """ + website_redirect_location: str | None = ... + """ + If the bucket is configured as a website, redirects requests for this + object to another object in the same bucket or to an external URL. + Amazon S3 stores the value of this header in the object metadata. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + AES256). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the customer-provided encryption key + according to RFC 1321. Amazon S3 uses this header for a message + integrity check to ensure that the encryption key was transmitted + without error. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for + object encryption. If the KMS key doesn't exist in the same account + that's issuing the command, you must use the full Key ARN not the Key + ID. + + **General purpose buckets** - If you specify + `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this + header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key + to use. If you specify `x-amz-server-side-encryption:aws:kms` or + `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide + `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the Amazon + Web Services managed key (`aws/s3`) to protect the data. + + **Directory buckets** - To encrypt data using SSE-KMS, it's recommended + to specify the `x-amz-server-side-encryption` header to `aws:kms`. Then, + the `x-amz-server-side-encryption-aws-kms-key-id` header implicitly uses + the bucket's default KMS customer managed key ID. If you want to + explicitly set the ` x-amz-server-side-encryption-aws-kms-key-id` + header, it must match the bucket's default customer managed key (using + key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 + [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. Incorrect key specification results in an + HTTP `400 Bad Request` error. + """ + ssekms_encryption_context: str | None = ... + """ + Specifies the Amazon Web Services KMS Encryption Context to use for + object encryption. The value of this header is a Base64 encoded string + of a UTF-8 encoded JSON, which contains the encryption context as + key-value pairs. + + **Directory buckets** - You can optionally provide an explicit + encryption context value. The value must match the default encryption + context - the bucket Amazon Resource Name (ARN). An additional + encryption context value is not supported. + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key for object + encryption with server-side encryption using Key Management Service + (KMS) keys (SSE-KMS). + + **General purpose buckets** - Setting this header to `true` causes + Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. + Also, specifying this header with a PUT action doesn't affect + bucket-level settings for S3 Bucket Key. + + **Directory buckets** - S3 Bucket Keys are always enabled for `GET` and + `PUT` operations in a directory bucket and can't be disabled. S3 Bucket + Keys aren't supported, when you copy SSE-KMS encrypted objects from + general purpose buckets to directory buckets, from directory buckets to + general purpose buckets, or between directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy request is + made for a KMS-encrypted object. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + tagging: str | None = ... + """ + The tag-set for the object. The tag-set must be encoded as URL Query + parameters. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_mode: str | None = ... + """ + Specifies the Object Lock mode that you want to apply to the uploaded + object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_retain_until_date: datetime | None = ... + """ + Specifies the date and time when you want the Object Lock to expire. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_legal_hold_status: str | None = ... + """ + Specifies whether you want to apply a legal hold to the uploaded object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold: str | None = ... + """ + Specifies the event hold status to apply to the uploaded object. Set to + `ON` to enable or `OFF` to disable. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_days: int | None = ... + """ + Specifies the event hold duration in days to apply to the uploaded + object. You cannot specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_years: int | None = ... + """ + Specifies the event hold duration in years to apply to the uploaded + object. You cannot specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm that you want Amazon S3 to use to create the + checksum for the object. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_type: str | None = ... + """ + Indicates the checksum type that you want Amazon S3 to use to calculate + the object's checksum value. For more information, see [Checking object + integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + +@dataclass(kw_only=True) +class CreateMultipartUploadOutput(_SerdeShape): + """Dataclass for CreateMultipartUploadOutput structure.""" + + abort_date: datetime | None = ... + """ + If the bucket has a lifecycle rule configured with an action to abort + incomplete multipart uploads and the prefix in the lifecycle rule + matches the object name in the request, the response includes this + header. The header indicates when the initiated multipart upload becomes + eligible for an abort operation. For more information, see [Aborting + Incomplete Multipart Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + in the *Amazon S3 User Guide*. + + The response also includes the `x-amz-abort-rule-id` header that + provides the ID of the lifecycle configuration rule that defines the + abort action. + + Note: + This functionality is not supported for directory buckets. + """ + abort_rule_id: str | None = ... + """ + This header is returned along with the `x-amz-abort-date` header. It + identifies the applicable lifecycle configuration rule that defines the + action to abort incomplete multipart uploads. + + Note: + This functionality is not supported for directory buckets. + """ + bucket: str | None = ... + """ + The name of the bucket to which the multipart upload was initiated. Does + not return the access point ARN or access point alias if used. + + Note: + Access points are not supported by directory buckets. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + upload_id: str | None = ... + """ID for the initiated multipart upload.""" + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + ssekms_encryption_context: str | None = ... + """ + If present, indicates the Amazon Web Services KMS Encryption Context to + use for object encryption. The value of this header is a Base64 encoded + string of a UTF-8 encoded JSON, which contains the encryption context as + key-value pairs. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the multipart upload uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """The algorithm that was used to create a checksum of the object.""" + checksum_type: str | None = ... + """ + Indicates the checksum type that you want Amazon S3 to use to calculate + the object's checksum value. For more information, see [Checking object + integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateSessionInput(_SerdeShape): + """Dataclass for CreateSessionInput structure.""" + + session_mode: str | None = ... + """ + Specifies the mode of the session that will be created, either + `ReadWrite` or `ReadOnly`. If no session mode is specified, the default + behavior attempts to create a session with the maximum allowable + privilege. It will first attempt to create a `ReadWrite` session, and if + that is not allowed by permissions, it will attempt to create a + `ReadOnly` session. If neither session type is allowed, the request will + return an Access Denied error. A `ReadWrite` session is capable of + executing all the Zonal endpoint API operations on a directory bucket. A + `ReadOnly` session is constrained to execute the following Zonal + endpoint API operations: `GetObject`, `HeadObject`, `ListObjectsV2`, + `GetObjectAttributes`, `ListParts`, and `ListMultipartUploads`. + """ + bucket: str | None = ... + """The name of the bucket that you create a session for.""" + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm to use when you store objects in + the directory bucket. + + For directory buckets, there are only two supported options for + server-side encryption: server-side encryption with Amazon S3 managed + keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys + (SSE-KMS) (`aws:kms`). By default, Amazon S3 encrypts data with SSE-S3. + For more information, see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) + in the *Amazon S3 User Guide*. + + **S3 access points for Amazon FSx** - When accessing data stored in + Amazon FSx file systems using S3 access points, the only valid server + side encryption option is `aws:fsx`. All Amazon FSx file systems have + encryption configured by default and are encrypted at rest. Data is + automatically encrypted before being written to the file system, and + automatically decrypted as it is read. These processes are handled + transparently by Amazon FSx. + """ + ssekms_key_id: str | None = ... + """ + If you specify `x-amz-server-side-encryption` with `aws:kms`, you must + specify the ` x-amz-server-side-encryption-aws-kms-key-id` header with + the ID (Key ID or Key ARN) of the KMS symmetric encryption customer + managed key to use. Otherwise, you get an HTTP `400 Bad Request` error. + Only use the key ID or key ARN. The key alias format of the KMS key + isn't supported. Also, if the KMS key doesn't exist in the same + account that't issuing the command, you must use the full Key ARN not + the Key ID. + + Your SSE-KMS configuration can only support 1 [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. + """ + ssekms_encryption_context: str | None = ... + """ + Specifies the Amazon Web Services KMS Encryption Context as an + additional encryption context to use for object encryption. The value of + this header is a Base64 encoded string of a UTF-8 encoded JSON, which + contains the encryption context as key-value pairs. This value is stored + as object metadata and automatically gets passed on to Amazon Web + Services KMS for future `GetObject` operations on this object. + + **General purpose buckets** - This value must be explicitly added during + `CopyObject` operations if you want an additional encryption context for + your object. For more information, see [Encryption + context](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context) + in the *Amazon S3 User Guide*. + + **Directory buckets** - You can optionally provide an explicit + encryption context value. The value must match the default encryption + context - the bucket Amazon Resource Name (ARN). An additional + encryption context value is not supported. + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key for object + encryption with server-side encryption using KMS keys (SSE-KMS). + + S3 Bucket Keys are always enabled for `GET` and `PUT` operations in a + directory bucket and can't be disabled. S3 Bucket Keys aren't + supported, when you copy SSE-KMS encrypted objects from general purpose + buckets to directory buckets, from directory buckets to general purpose + buckets, or between directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy request is + made for a KMS-encrypted object. + """ + +@dataclass(kw_only=True) +class CreateSessionOutput(_SerdeShape): + """Dataclass for CreateSessionOutput structure.""" + + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store objects in the + directory bucket. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + ssekms_key_id: str | None = ... + """ + If you specify `x-amz-server-side-encryption` with `aws:kms`, this + header indicates the ID of the KMS symmetric encryption customer managed + key that was used for object encryption. + """ + ssekms_encryption_context: str | None = ... + """ + If present, indicates the Amazon Web Services KMS Encryption Context to + use for object encryption. The value of this header is a Base64 encoded + string of a UTF-8 encoded JSON, which contains the encryption context as + key-value pairs. This value is stored as object metadata and + automatically gets passed on to Amazon Web Services KMS for future + `GetObject` operations on this object. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether to use an S3 Bucket Key for server-side encryption + with KMS keys (SSE-KMS). + """ + credentials: SessionCredentials + """The established temporary security credentials for the created session.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CSVInput(_SerdeShape): + """ + Describes how an uncompressed comma-separated values (CSV)-formatted + input object is formatted. + """ + + file_header_info: str | None = ... + """ + Describes the first line of input. Valid values are: + + - `NONE`: First line is not a header. + + - `IGNORE`: First line is a header, but you can't use the header values + to indicate the column in an expression. You can use column position + (such as _1, _2, ...) to indicate the column + (`SELECT s._1 FROM OBJECT s`). + + - `Use`: First line is a header, and you can use the header value to + identify a column in an expression (`SELECT "name" FROM OBJECT`). + """ + comments: str | None = ... + """ + A single character used to indicate that a row should be ignored when + the character is present at the start of that row. You can specify any + character to indicate a comment line. The default character is `#`. + + Default: `#` + """ + quote_escape_character: str | None = ... + """ + A single character used for escaping the quotation mark character inside + an already escaped value. For example, the value `\"\"\" a , b \"\"\"` is + parsed as `" a , b "`. + """ + record_delimiter: str | None = ... + """ + A single character used to separate individual records in the input. + Instead of the default value, you can specify an arbitrary delimiter. + """ + field_delimiter: str | None = ... + """ + A single character used to separate individual fields in a record. You + can specify an arbitrary delimiter. + """ + quote_character: str | None = ... + """ + A single character used for escaping when the field delimiter is part of + the value. For example, if the value is `a, b`, Amazon S3 wraps this + field value in quotation marks, as follows: `" a , b "`. + + Type: String + + Default: `"` + + Ancestors: `CSV` + """ + allow_quoted_record_delimiter: bool | None = ... + """ + Specifies that CSV field values may contain quoted record delimiters and + such records should be allowed. Default value is FALSE. Setting this + value to TRUE may lower performance. + """ + +@dataclass(kw_only=True) +class CSVOutput(_SerdeShape): + """ + Describes how uncompressed comma-separated values (CSV)-formatted + results are formatted. + """ + + quote_fields: str | None = ... + """ + Indicates whether to use quotation marks around output fields. + + - `ALWAYS`: Always use quotation marks for output fields. + + - `ASNEEDED`: Use quotation marks for output fields when needed. + """ + quote_escape_character: str | None = ... + """ + The single character used for escaping the quote character inside an + already escaped value. + """ + record_delimiter: str | None = ... + """ + A single character used to separate individual records in the output. + Instead of the default value, you can specify an arbitrary delimiter. + """ + field_delimiter: str | None = ... + """ + The value used to separate individual fields in a record. You can + specify an arbitrary delimiter. + """ + quote_character: str | None = ... + """ + A single character used for escaping when the field delimiter is part of + the value. For example, if the value is `a, b`, Amazon S3 wraps this + field value in quotation marks, as follows: `" a , b "`. + """ + +class DataRedundancy(UnknownEnumMixin, StrEnum): + SINGLE_AVAILABILITY_ZONE = "SingleAvailabilityZone" + SINGLE_LOCAL_ZONE = "SingleLocalZone" + +@dataclass(kw_only=True) +class DefaultRetention(_SerdeShape): + """ + The container element for optionally specifying the default Object Lock + retention settings for new objects placed in the specified bucket. + + Note: + - 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. + """ + + mode: str | None = ... + """ + The default Object Lock retention mode you want to apply to new objects + placed in the specified bucket. Must be used with either `Days` or + `Years`. + """ + days: int | None = ... + """ + The number of days that you want to specify for the default retention + period. Must be used with `Mode`. + """ + years: int | None = ... + """ + The number of years that you want to specify for the default retention + period. Must be used with `Mode`. + """ + default_event_hold: EventHoldDuration | None = ... + """ + The default event hold duration to be applied to new objects placed in + the specified bucket. When configured, new objects will automatically + have an event hold enabled with this duration. + """ + +@dataclass(kw_only=True) +class Delete(_SerdeShape): + """Container for the objects to delete.""" + + objects: list[ObjectIdentifier] + """ + The object to delete. + + Note: + **Directory buckets** - For directory buckets, an object that's + composed entirely of whitespace characters is not supported by the + `DeleteObjects` API operation. The request will receive a + `400 Bad Request` error and none of the objects in the request will be + deleted. + """ + quiet: bool | None = ... + """ + Element to enable quiet mode for the request. When you add this element, + you must set its value to `true`. + """ + +@dataclass(kw_only=True) +class DeleteBucketAnalyticsConfigurationInput(_SerdeShape): + """Dataclass for DeleteBucketAnalyticsConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket from which an analytics configuration is deleted.""" + id: str | None = ... + """The ID that identifies the analytics configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketAnalyticsConfigurationOutput(_SerdeShape): + """Dataclass for DeleteBucketAnalyticsConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketCorsInput(_SerdeShape): + """Dataclass for DeleteBucketCorsInput structure.""" + + bucket: str | None = ... + """Specifies the bucket whose `cors` configuration is being deleted.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketCorsOutput(_SerdeShape): + """Dataclass for DeleteBucketCorsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketEncryptionInput(_SerdeShape): + """Dataclass for DeleteBucketEncryptionInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the server-side encryption + configuration to delete. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class DeleteBucketEncryptionOutput(_SerdeShape): + """Dataclass for DeleteBucketEncryptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketInput(_SerdeShape): + """Dataclass for DeleteBucketInput structure.""" + + bucket: str | None = ... + """ + Specifies the bucket being deleted. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class DeleteBucketIntelligentTieringConfigurationInput(_SerdeShape): + """ + Dataclass for DeleteBucketIntelligentTieringConfigurationInput + structure. + """ + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose configuration you want to modify + or retrieve. + """ + id: str | None = ... + """The ID used to identify the S3 Intelligent-Tiering configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketIntelligentTieringConfigurationOutput(_SerdeShape): + """ + Dataclass for DeleteBucketIntelligentTieringConfigurationOutput + structure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketInventoryConfigurationInput(_SerdeShape): + """Dataclass for DeleteBucketInventoryConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the inventory configuration to delete. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """The ID used to identify the inventory configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class DeleteBucketInventoryConfigurationOutput(_SerdeShape): + """Dataclass for DeleteBucketInventoryConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketLifecycleInput(_SerdeShape): + """Dataclass for DeleteBucketLifecycleInput structure.""" + + bucket: str | None = ... + """The bucket name of the lifecycle to delete.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + +@dataclass(kw_only=True) +class DeleteBucketLifecycleOutput(_SerdeShape): + """Dataclass for DeleteBucketLifecycleOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetadataConfigurationInput(_SerdeShape): + """Dataclass for DeleteBucketMetadataConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that you want to remove the metadata + configuration from. + """ + expected_bucket_owner: str | None = ... + """ + The expected bucket owner of the general purpose bucket that you want to + remove the metadata table configuration from. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetadataConfigurationOutput(_SerdeShape): + """Dataclass for DeleteBucketMetadataConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetadataTableConfigurationInput(_SerdeShape): + """Dataclass for DeleteBucketMetadataTableConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that you want to remove the metadata table + configuration from. + """ + expected_bucket_owner: str | None = ... + """ + The expected bucket owner of the general purpose bucket that you want to + remove the metadata table configuration from. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetadataTableConfigurationOutput(_SerdeShape): + """Dataclass for DeleteBucketMetadataTableConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetricsConfigurationInput(_SerdeShape): + """Dataclass for DeleteBucketMetricsConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the metrics configuration to delete. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """ + The ID used to identify the metrics configuration. The ID has a 64 + character limit and can only contain letters, numbers, periods, dashes, + and underscores. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class DeleteBucketMetricsConfigurationOutput(_SerdeShape): + """Dataclass for DeleteBucketMetricsConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketOutput(_SerdeShape): + """Dataclass for DeleteBucketOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketOwnershipControlsInput(_SerdeShape): + """Dataclass for DeleteBucketOwnershipControlsInput structure.""" + + bucket: str | None = ... + """The Amazon S3 bucket whose `OwnershipControls` you want to delete.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketOwnershipControlsOutput(_SerdeShape): + """Dataclass for DeleteBucketOwnershipControlsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketPolicyInput(_SerdeShape): + """Dataclass for DeleteBucketPolicyInput structure.""" + + bucket: str | None = ... + """ + The bucket name. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class DeleteBucketPolicyOutput(_SerdeShape): + """Dataclass for DeleteBucketPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketReplicationInput(_SerdeShape): + """Dataclass for DeleteBucketReplicationInput structure.""" + + bucket: str | None = ... + """The bucket name.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketReplicationOutput(_SerdeShape): + """Dataclass for DeleteBucketReplicationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketTaggingInput(_SerdeShape): + """Dataclass for DeleteBucketTaggingInput structure.""" + + bucket: str | None = ... + """The bucket that has the tag set to be removed.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketTaggingOutput(_SerdeShape): + """Dataclass for DeleteBucketTaggingOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteBucketWebsiteInput(_SerdeShape): + """Dataclass for DeleteBucketWebsiteInput structure.""" + + bucket: str | None = ... + """The bucket name for which you want to remove the website configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteBucketWebsiteOutput(_SerdeShape): + """Dataclass for DeleteBucketWebsiteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletedObject(_SerdeShape): + """Information about the deleted object.""" + + key: str | None = ... + """The name of the deleted object.""" + version_id: str | None = ... + """ + The version ID of the deleted object. + + Note: + This functionality is not supported for directory buckets. + """ + delete_marker: bool | None = ... + """ + Indicates whether the specified object version that was permanently + deleted was (true) or was not (false) a delete marker before deletion. + In a simple DELETE, this header indicates whether (true) or not (false) + the current version of the object is a delete marker. To learn more + about delete markers, see [Working with delete + markers](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html). + + Note: + This functionality is not supported for directory buckets. + """ + delete_marker_version_id: str | None = ... + """ + The version ID of the delete marker created as a result of the DELETE + operation. If you delete a specific object version, the value returned + by this header is the version ID of the object version deleted. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class DeleteMarkerEntry(_SerdeShape): + """Information about the delete marker.""" + + owner: Owner | None = ... + """The account that created the delete marker.""" + key: str | None = ... + """The object key.""" + version_id: str | None = ... + """Version ID of an object.""" + is_latest: bool | None = ... + """ + Specifies whether the object is (true) or is not (false) the latest + version of an object. + """ + last_modified: datetime | None = ... + """Date and time when the object was last modified.""" + +@dataclass(kw_only=True) +class DeleteMarkerReplication(_SerdeShape): + """ + Specifies whether Amazon S3 replicates delete markers. If you specify a + `Filter` in your replication configuration, you must also include a + `DeleteMarkerReplication` element. If your `Filter` includes a `Tag` + element, the `DeleteMarkerReplication` `Status` must be set to Disabled, + because Amazon S3 does not support replicating delete markers for + tag-based rules. For an example configuration, see [Basic Rule + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + + For more information about delete marker replication, see [Basic Rule + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). + + Note: + If you are using an earlier version of the replication configuration, + Amazon S3 handles replication of delete markers differently. For more + information, see [Backward + Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). + """ + + status: str | None = ... + """ + Indicates whether to replicate delete markers. + + Note: + Indicates whether to replicate delete markers. + """ + +class DeleteMarkerReplicationStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class DeleteObjectAnnotationInput(_SerdeShape): + """Dataclass for DeleteObjectAnnotationInput structure.""" + + bucket: str | None = ... + """The name of the bucket that contains the object.""" + key: str | None = ... + """The object key.""" + annotation_name: str | None = ... + """ + The name of the annotation to delete. Annotation names are UTF-8 encoded + and cannot start with `aws` or `s3` (case-insensitive). + + Length Constraints: Minimum length of 1. Maximum length of 512 bytes. + """ + version_id: str | None = ... + """The version ID of the object.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """The account ID of the expected bucket owner.""" + object_if_match: str | None = ... + """ + If specified, the operation only succeeds if the object's ETag matches + the provided value. + """ + +@dataclass(kw_only=True) +class DeleteObjectAnnotationOutput(_SerdeShape): + """Dataclass for DeleteObjectAnnotationOutput structure.""" + + object_version_id: str | None = ... + """The version ID of the object that the annotation was deleted from.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteObjectInput(_SerdeShape): + """Dataclass for DeleteObjectInput structure.""" + + bucket: str | None = ... + """ + The bucket name of the bucket containing the object. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Key name of the object to delete.""" + mfa: str | None = ... + """ + The concatenation of the authentication device's serial number, a + space, and the value that is displayed on your authentication device. + Required to permanently delete a versioned object if versioning is + configured with MFA delete enabled. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + Version ID used to reference a specific version of the object. + + Note: + For directory buckets in this API operation, only the `null` value of + the version ID is supported. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + bypass_governance_retention: bool | None = ... + """ + Indicates whether S3 Object Lock should bypass Governance-mode + restrictions to process this operation. To use this header, you must + have the `s3:BypassGovernanceRetention` permission. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + if_match: str | None = ... + """ + Deletes the object if the ETag (entity tag) value provided during the + delete operation matches the ETag of the object in S3. If the ETag + values do not match, the operation returns a `412 Precondition Failed` + error. + + Expects the ETag value as a string. `If-Match` does accept a string + value of an '*' (asterisk) character to denote a match of any ETag. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_match_last_modified_time: datetime | None = ... + """ + If present, the object is deleted only if its modification times matches + the provided `Timestamp`. If the `Timestamp` values do not match, the + operation returns a `412 Precondition Failed` error. If the `Timestamp` + matches or if the object doesn't exist, the operation returns a + `204 Success (No Content)` response. + + Note: + This functionality is only supported for directory buckets. + """ + if_match_size: int | None = ... + """ + If present, the object is deleted only if its size matches the provided + size in bytes. If the `Size` value does not match, the operation returns + a `412 Precondition Failed` error. If the `Size` matches or if the + object doesn't exist, the operation returns a `204 Success (No Content)` + response. + + Note: + This functionality is only supported for directory buckets. + Warning: + You can use the `If-Match`, `x-amz-if-match-last-modified-time` and + `x-amz-if-match-size` conditional headers in conjunction with each-other + or individually. + """ + +@dataclass(kw_only=True) +class DeleteObjectOutput(_SerdeShape): + """Dataclass for DeleteObjectOutput structure.""" + + delete_marker: bool | None = ... + """ + Indicates whether the specified object version that was permanently + deleted was (true) or was not (false) a delete marker before deletion. + In a simple DELETE, this header indicates whether (true) or not (false) + the current version of the object is a delete marker. To learn more + about delete markers, see [Working with delete + markers](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html). + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + Returns the version ID of the delete marker created as a result of the + DELETE operation. + + Note: + This functionality is not supported for directory buckets. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteObjectsInput(_SerdeShape): + """Dataclass for DeleteObjectsInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the objects to delete. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + delete: Delete | None = ... + """Container for the request.""" + mfa: str | None = ... + """ + The concatenation of the authentication device's serial number, a + space, and the value that is displayed on your authentication device. + Required to permanently delete a versioned object if versioning is + configured with MFA delete enabled. + + When performing the `DeleteObjects` operation on an MFA delete enabled + bucket, which attempts to delete the specified versioned objects, you + must include an MFA token. If you don't provide an MFA token, the + entire request will fail, even if there are non-versioned objects that + you are trying to delete. If you provide an invalid token, whether there + are versioned object keys in the request or not, the entire Multi-Object + Delete request will fail. For information about MFA Delete, see [MFA + Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + bypass_governance_retention: bool | None = ... + """ + Specifies whether you want to delete this object even if it has a + Governance-type Object Lock in place. To use this header, you must have + the `s3:BypassGovernanceRetention` permission. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum-`*`algorithm`*` ` or + `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request with + the HTTP status code `400 Bad Request`. + + For the `x-amz-checksum-`*`algorithm`*` ` header, replace + ` `*`algorithm`*` ` with the supported algorithm from the following + list: + + - `CRC32` + + - `CRC32C` + + - `CRC64NVME` + + - `MD5` + + - `SHA1` + + - `SHA256` + + - `SHA512` + + - `XXHASH3` + + - `XXHASH64` + + - `XXHASH128` + + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If the individual checksum value you provide through + `x-amz-checksum-`*`algorithm`*` ` doesn't match the checksum algorithm + you set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the + request with a `BadDigest` error. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + +@dataclass(kw_only=True) +class DeleteObjectsOutput(_SerdeShape): + """Dataclass for DeleteObjectsOutput structure.""" + + deleted: list[DeletedObject] | None = ... + """ + Container element for a successful delete. It identifies the object that + was successfully deleted. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + errors: list[Error] | None = ... + """ + Container for a failed delete action that describes the object that + Amazon S3 attempted to delete and the error it encountered. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeleteObjectTaggingInput(_SerdeShape): + """Dataclass for DeleteObjectTaggingInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the objects from which to remove the tags. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """ + The key that identifies the object in the bucket from which to remove + all tags. + """ + version_id: str | None = ... + """The versionId of the object that the tag-set will be removed from.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeleteObjectTaggingOutput(_SerdeShape): + """Dataclass for DeleteObjectTaggingOutput structure.""" + + version_id: str | None = ... + """The versionId of the object the tag-set was removed from.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class DeletePublicAccessBlockInput(_SerdeShape): + """Dataclass for DeletePublicAccessBlockInput structure.""" + + bucket: str | None = ... + """ + The Amazon S3 bucket whose `PublicAccessBlock` configuration you want to + delete. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class DeletePublicAccessBlockOutput(_SerdeShape): + """Dataclass for DeletePublicAccessBlockOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class Destination(_SerdeShape): + """ + Specifies information about where to publish analysis or configuration + results for an Amazon S3 bucket and S3 Replication Time Control (S3 + RTC). + """ + + bucket: str + """ + The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to + store the results. + """ + account: str | None = ... + """ + Destination bucket owner account ID. In a cross-account scenario, if you + direct Amazon S3 to change replica ownership to the Amazon Web Services + account that owns the destination bucket by specifying the + `AccessControlTranslation` property, this is the account ID of the + destination bucket owner. For more information, see [Replication + Additional Configuration: Changing the Replica + Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) + in the *Amazon S3 User Guide*. + """ + storage_class: str | None = ... + """ + The storage class to use when replicating objects, such as S3 Standard + or reduced redundancy. By default, Amazon S3 uses the storage class of + the source object to create the object replica. + + For valid values, see the `StorageClass` element of the [PUT Bucket + replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) + action in the *Amazon S3 API Reference*. + + `FSX_OPENZFS` is not an accepted value when replicating objects. + """ + access_control_translation: AccessControlTranslation | None = ... + """ + Specify this only in a cross-account scenario (where 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 is not specified in the replication + configuration, the replicas are owned by same Amazon Web Services + account that owns the source object. + """ + encryption_configuration: EncryptionConfiguration | None = ... + """ + A container that provides information about encryption. If + `SourceSelectionCriteria` is specified, you must specify this element. + """ + replication_time: ReplicationTime | None = ... + """ + A container specifying S3 Replication Time Control (S3 RTC), including + whether S3 RTC is enabled and the time when all objects and operations + on objects must be replicated. Must be specified together with a + `Metrics` block. + """ + metrics: Metrics | None = ... + """ + A container specifying replication metrics-related settings enabling + replication metrics and events. + """ + +@dataclass(kw_only=True) +class DestinationResult(_SerdeShape): + """The destination information for the S3 Metadata configuration.""" + + table_bucket_type: str | None = ... + """ + The type of the table bucket where the metadata configuration is stored. + The `aws` value indicates an Amazon Web Services managed table bucket, + and the `customer` value indicates a customer-managed table bucket. V2 + metadata configurations are stored in Amazon Web Services managed table + buckets, and V1 metadata configurations are stored in customer-managed + table buckets. + """ + table_bucket_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the table bucket where the metadata + configuration is stored. + """ + table_namespace: str | None = ... + """ + The namespace in the table bucket where the metadata tables for a + metadata configuration are stored. + """ + +class EncodingType(UnknownEnumMixin, StrEnum): + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + + URL = "url" + +@dataclass(kw_only=True) +class Encryption(_SerdeShape): + """Contains the type of server-side encryption used.""" + + encryption_type: str + """ + The server-side encryption algorithm used when storing job results in + Amazon S3 (for example, AES256, `aws:kms`). + """ + kms_key_id: str | None = ... + """ + If the encryption type is `aws:kms`, this optional value specifies the + ID of the symmetric encryption customer managed key to use for + encryption of job results. Amazon S3 only supports symmetric encryption + KMS keys. For more information, see [Asymmetric keys in + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + kms_context: str | None = ... + """ + If the encryption type is `aws:kms`, this optional value can be used to + specify the encryption context for the restore results. + """ + +@dataclass(kw_only=True) +class EncryptionConfiguration(_SerdeShape): + """ + Specifies encryption-related information for an Amazon S3 bucket that is + a destination for replicated objects. + + Note: + If you're specifying a customer managed KMS key, we recommend using a + fully qualified KMS key ARN. If you use a KMS key alias instead, then + KMS resolves the key within the requester's account. This behavior can + result in data that's encrypted with a KMS key that belongs to the + requester, and not the bucket owner. + """ + + replica_kms_key_id: str | None = ... + """ + Specifies the ID (Key ARN or Alias ARN) of the customer managed Amazon + Web Services KMS key stored in Amazon Web Services Key Management + Service (KMS) for the destination bucket. Amazon S3 uses this key to + encrypt replica objects. Amazon S3 only supports symmetric encryption + KMS keys. For more information, see [Asymmetric keys in Amazon Web + Services + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + +class EncryptionType(UnknownEnumMixin, StrEnum): + NONE = "NONE" + SSE_C = "SSE-C" + +@dataclass(kw_only=True) +class EncryptionTypeMismatch(ServiceError, _SerdeShape): + """ + The existing object was created with a different encryption type. + Subsequent write requests must include the appropriate encryption + parameters in the request or while creating the session. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class EndEvent(_SerdeShape): + """ + A message that indicates the request is complete and no more messages + will be sent. You should not assume that the request is complete until + the client receives an `EndEvent`. + """ + +@dataclass(kw_only=True) +class Error(_SerdeShape): + """ + Note: + For information about using the Amazon S3 API---including error + handling---see the [Amazon S3 Developer + Guide](https://docs.aws.amazon.com/AmazonS3/latest/developerguide/Welcome.html). + + Container for all error elements. + """ + + key: str | None = ... + """The error key.""" + version_id: str | None = ... + """ + The version ID of the error. + + Note: + This functionality is not supported for directory buckets. + """ + code: str | None = ... + """ + The error code is a string that uniquely identifies an error condition. + It is meant to be read and understood by programs that detect and handle + errors by type. The following is a list of Amazon S3 error codes. For + more information, see [Error + responses](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html). + + - - *Code:* AccessDenied + + - *Description:* Access Denied + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* AccountProblem + + - *Description:* There is a problem with your Amazon Web Services + account that prevents the action from completing successfully. + Contact Amazon Web Services Support for further assistance. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* AllAccessDisabled + + - *Description:* All access to this Amazon S3 resource has been + disabled. Contact Amazon Web Services Support for further + assistance. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* AmbiguousGrantByEmailAddress + + - *Description:* The email address you provided is associated with + more than one account. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* AuthorizationHeaderMalformed + + - *Description:* The authorization header you provided is invalid. + + - *HTTP Status Code:* 400 Bad Request + + - *HTTP Status Code:* N/A + + - - *Code:* BadDigest + + - *Description:* The Content-MD5 you specified did not match what we + received. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* BucketAlreadyExists + + - *Description:* The requested bucket name is not available. The + bucket namespace is shared by all users of the system. Please select + a different name and try again. + + - *HTTP Status Code:* 409 Conflict + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* BucketAlreadyOwnedByYou + + - *Description:* The bucket you tried to create already exists, and + you own it. Amazon S3 returns this error in all Amazon Web Services + Regions except in the North Virginia Region. For legacy + compatibility, if you re-create an existing bucket that you already + own in the North Virginia Region, Amazon S3 returns 200 OK and + resets the bucket access control lists (ACLs). + + - *Code:* 409 Conflict (in all Regions except the North Virginia + Region) + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* BucketNotEmpty + + - *Description:* The bucket you tried to delete is not empty. + + - *HTTP Status Code:* 409 Conflict + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* CredentialsNotSupported + + - *Description:* This request does not support credentials. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* CrossLocationLoggingProhibited + + - *Description:* Cross-location logging not allowed. Buckets in one + geographic location cannot log information to a bucket in another + location. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* EntityTooSmall + + - *Description:* Your proposed upload is smaller than the minimum + allowed object size. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* EntityTooLarge + + - *Description:* Your proposed upload exceeds the maximum allowed + object size. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* ExpiredToken + + - *Description:* The provided token has expired. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* IllegalVersioningConfigurationException + + - *Description:* Indicates that the versioning configuration specified + in the request is invalid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* IncompleteBody + + - *Description:* You did not provide the number of bytes specified by + the Content-Length HTTP header + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* IncorrectNumberOfFilesInPostRequest + + - *Description:* POST requires exactly one file upload per request. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InlineDataTooLarge + + - *Description:* Inline data exceeds the maximum allowed size. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InternalError + + - *Description:* We encountered an internal error. Please try again. + + - *HTTP Status Code:* 500 Internal Server Error + + - *SOAP Fault Code Prefix:* Server + + - - *Code:* InvalidAccessKeyId + + - *Description:* The Amazon Web Services access key ID you provided + does not exist in our records. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidAddressingHeader + + - *Description:* You must specify the Anonymous role. + + - *HTTP Status Code:* N/A + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidArgument + + - *Description:* Invalid Argument + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidBucketName + + - *Description:* The specified bucket is not valid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidBucketState + + - *Description:* The request is not valid with the current state of + the bucket. + + - *HTTP Status Code:* 409 Conflict + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidDigest + + - *Description:* The Content-MD5 you specified is not valid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidEncryptionAlgorithmError + + - *Description:* The encryption request you specified is not valid. + The valid value is AES256. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidLocationConstraint + + - *Description:* The specified location constraint is not valid. For + more information about Regions, see [How to Select a Region for Your + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidObjectState + + - *Description:* The action is not valid for the current state of the + object. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidPart + + - *Description:* One or more of the specified parts could not be + found. The part might not have been uploaded, or the specified + entity tag might not have matched the part's entity tag. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidPartOrder + + - *Description:* The list of parts was not in ascending order. Parts + list must be specified in order by part number. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidPayer + + - *Description:* All access to this object has been disabled. Please + contact Amazon Web Services Support for further assistance. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidPolicyDocument + + - *Description:* The content of the form does not meet the conditions + specified in the policy document. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidRange + + - *Description:* The requested range cannot be satisfied. + + - *HTTP Status Code:* 416 Requested Range Not Satisfiable + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidRequest + + - *Description:* Please use `AWS4-HMAC-SHA256`. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* SOAP requests must be made over an HTTPS connection. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Acceleration is not supported for + buckets with non-DNS compliant names. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Acceleration is not supported for + buckets with periods (.) in their names. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Accelerate endpoint only supports + virtual style requests. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Accelerate is not configured on + this bucket. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Accelerate is disabled on this + bucket. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Acceleration is not supported on + this bucket. Contact Amazon Web Services Support for more + information. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidRequest + + - *Description:* Amazon S3 Transfer Acceleration cannot be enabled on + this bucket. Contact Amazon Web Services Support for more + information. + + - *HTTP Status Code:* 400 Bad Request + + - *Code:* N/A + + - - *Code:* InvalidSecurity + + - *Description:* The provided security credentials are not valid. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidSOAPRequest + + - *Description:* The SOAP request body is invalid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidStorageClass + + - *Description:* The storage class you specified is not valid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidTargetBucketForLogging + + - *Description:* The target bucket for logging does not exist, is not + owned by you, or does not have the appropriate grants for the + log-delivery group. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidToken + + - *Description:* The provided token is malformed or otherwise invalid. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* InvalidURI + + - *Description:* Couldn't parse the specified URI. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* KeyTooLongError + + - *Description:* Your key is too long. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MalformedACLError + + - *Description:* The XML you provided was not well-formed or did not + validate against our published schema. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MalformedPOSTRequest + + - *Description:* The body of your POST request is not well-formed + multipart/form-data. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MalformedXML + + - *Description:* This happens when the user sends malformed XML (XML + that doesn't conform to the published XSD) for the configuration. + The error message is, \"The XML you provided was not well-formed or + did not validate against our published schema.\" + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MaxMessageLengthExceeded + + - *Description:* Your request was too big. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MaxPostPreDataLengthExceededError + + - *Description:* Your POST request fields preceding the upload file + were too large. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MetadataTooLarge + + - *Description:* Your metadata headers exceed the maximum allowed + metadata size. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MethodNotAllowed + + - *Description:* The specified method is not allowed against this + resource. + + - *HTTP Status Code:* 405 Method Not Allowed + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MissingAttachment + + - *Description:* A SOAP attachment was expected, but none were found. + + - *HTTP Status Code:* N/A + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MissingContentLength + + - *Description:* You must provide the Content-Length HTTP header. + + - *HTTP Status Code:* 411 Length Required + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MissingRequestBodyError + + - *Description:* This happens when the user sends an empty XML + document as a request. The error message is, \"Request body is + empty.\" + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MissingSecurityElement + + - *Description:* The SOAP 1.1 request is missing a security element. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* MissingSecurityHeader + + - *Description:* Your request is missing a required header. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoLoggingStatusForKey + + - *Description:* There is no such thing as a logging status + subresource for a key. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchBucket + + - *Description:* The specified bucket does not exist. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchBucketPolicy + + - *Description:* The specified bucket does not have a bucket policy. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchKey + + - *Description:* The specified key does not exist. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchLifecycleConfiguration + + - *Description:* The lifecycle configuration does not exist. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchUpload + + - *Description:* The specified multipart upload does not exist. The + upload ID might be invalid, or the multipart upload might have been + aborted or completed. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NoSuchVersion + + - *Description:* Indicates that the version ID specified in the + request does not match an existing version. + + - *HTTP Status Code:* 404 Not Found + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* NotImplemented + + - *Description:* A header you provided implies functionality that is + not implemented. + + - *HTTP Status Code:* 501 Not Implemented + + - *SOAP Fault Code Prefix:* Server + + - - *Code:* NotSignedUp + + - *Description:* Your account is not signed up for the Amazon S3 + service. You must sign up before you can use Amazon S3. You can sign + up at the following URL: [Amazon S3](http://aws.amazon.com/s3) + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* OperationAborted + + - *Description:* A conflicting conditional action is currently in + progress against this resource. Try again. + + - *HTTP Status Code:* 409 Conflict + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* PermanentRedirect + + - *Description:* The bucket you are attempting to access must be + addressed using the specified endpoint. Send all future requests to + this endpoint. + + - *HTTP Status Code:* 301 Moved Permanently + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* PreconditionFailed + + - *Description:* At least one of the preconditions you specified did + not hold. + + - *HTTP Status Code:* 412 Precondition Failed + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* Redirect + + - *Description:* Temporary redirect. + + - *HTTP Status Code:* 307 Moved Temporarily + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* RestoreAlreadyInProgress + + - *Description:* Object restore is already in progress. + + - *HTTP Status Code:* 409 Conflict + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* RequestIsNotMultiPartContent + + - *Description:* Bucket POST must be of the enclosure-type + multipart/form-data. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* RequestTimeout + + - *Description:* Your socket connection to the server was not read + from or written to within the timeout period. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* RequestTimeTooSkewed + + - *Description:* The difference between the request time and the + server's time is too large. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* RequestTorrentOfBucketError + + - *Description:* Requesting the torrent file of a bucket is not + permitted. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* SignatureDoesNotMatch + + - *Description:* The request signature we calculated does not match + the signature you provided. Check your Amazon Web Services secret + access key and signing method. For more information, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) + and [SOAP + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html) + for details. + + - *HTTP Status Code:* 403 Forbidden + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* ServiceUnavailable + + - *Description:* Service is unable to handle request. + + - *HTTP Status Code:* 503 Service Unavailable + + - *SOAP Fault Code Prefix:* Server + + - - *Code:* SlowDown + + - *Description:* Reduce your request rate. + + - *HTTP Status Code:* 503 Slow Down + + - *SOAP Fault Code Prefix:* Server + + - - *Code:* TemporaryRedirect + + - *Description:* You are being redirected to the bucket while DNS + updates. + + - *HTTP Status Code:* 307 Moved Temporarily + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* TokenRefreshRequired + + - *Description:* The provided token must be refreshed. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* TooManyBuckets + + - *Description:* You have attempted to create more buckets than + allowed. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* UnexpectedContent + + - *Description:* This request does not support content. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* UnresolvableGrantByEmailAddress + + - *Description:* The email address you provided does not match any + account on record. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + + - - *Code:* UserKeyMustBeSpecified + + - *Description:* The bucket POST must contain the specified field + name. If it is specified, check the order of the fields. + + - *HTTP Status Code:* 400 Bad Request + + - *SOAP Fault Code Prefix:* Client + """ + message: str | None = ... + """ + The error message contains a generic description of the error condition + in English. It is intended for a human audience. Simple programs display + the message directly to the end user if they encounter an error + condition they don't know how or don't care to handle. Sophisticated + programs with more exhaustive error handling and proper + internationalization are more likely to ignore the error message. + """ + +@dataclass(kw_only=True) +class ErrorDetails(_SerdeShape): + """ + If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2 + `CreateBucketMetadataConfiguration` request succeeds, but S3 Metadata + was unable to create the table, this structure contains the error code + and error message. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + error_code: str | None = ... + """ + If the V1 `CreateBucketMetadataTableConfiguration` request succeeds, but + S3 Metadata was unable to create the table, this structure contains the + error code. The possible error codes and error messages are as follows: + + - `AccessDeniedCreatingResources` - You don't have sufficient + permissions to create the required resources. Make sure that you have + `s3tables:CreateNamespace`, `s3tables:CreateTable`, + `s3tables:GetTable` and `s3tables:PutTablePolicy` permissions, and + then try again. To create a new metadata table, you must delete the + metadata configuration for this bucket, and then create a new metadata + configuration. + + - `AccessDeniedWritingToTable` - Unable to write to the metadata table + because of missing resource permissions. To fix the resource policy, + Amazon S3 needs to create a new metadata table. To create a new + metadata table, you must delete the metadata configuration for this + bucket, and then create a new metadata configuration. + + - `DestinationTableNotFound` - The destination table doesn't exist. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `ServerInternalError` - An internal error has occurred. To create a + new metadata table, you must delete the metadata configuration for + this bucket, and then create a new metadata configuration. + + - `TableAlreadyExists` - The table that you specified already exists in + the table bucket's namespace. Specify a different table name. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `TableBucketNotFound` - The table bucket that you specified doesn't + exist in this Amazon Web Services Region and account. Create or choose + a different table bucket. To create a new metadata table, you must + delete the metadata configuration for this bucket, and then create a + new metadata configuration. + + If the V2 `CreateBucketMetadataConfiguration` request succeeds, but S3 + Metadata was unable to create the table, this structure contains the + error code. The possible error codes and error messages are as follows: + + - `AccessDeniedCreatingResources` - You don't have sufficient + permissions to create the required resources. Make sure that you have + `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, + `s3tables:CreateTable`, `s3tables:GetTable`, + `s3tables:PutTablePolicy`, `kms:DescribeKey`, and + `s3tables:PutTableEncryption` permissions. Additionally, ensure that + the KMS key used to encrypt the table still exists, is active and has + a resource policy granting access to the S3 service principals + '`maintenance.s3tables.amazonaws.com`' and + '`metadata.s3.amazonaws.com`'. To create a new metadata table, you + must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `AccessDeniedWritingToTable` - Unable to write to the metadata table + because of missing resource permissions. To fix the resource policy, + Amazon S3 needs to create a new metadata table. To create a new + metadata table, you must delete the metadata configuration for this + bucket, and then create a new metadata configuration. + + - `DestinationTableNotFound` - The destination table doesn't exist. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `ServerInternalError` - An internal error has occurred. To create a + new metadata table, you must delete the metadata configuration for + this bucket, and then create a new metadata configuration. + + - `JournalTableAlreadyExists` - A journal table already exists in the + Amazon Web Services managed table bucket's namespace. Delete the + journal table, and then try again. To create a new metadata table, you + must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `InventoryTableAlreadyExists` - An inventory table already exists in + the Amazon Web Services managed table bucket's namespace. Delete the + inventory table, and then try again. To create a new metadata table, + you must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `JournalTableNotAvailable` - The journal table that the inventory + table relies on has a `FAILED` status. An inventory table requires a + journal table with an `ACTIVE` status. To create a new journal or + inventory table, you must delete the metadata configuration for this + bucket, along with any journal or inventory tables, and then create a + new metadata configuration. + + - `NoSuchBucket` - The specified general purpose bucket does not exist. + """ + error_message: str | None = ... + """ + If the V1 `CreateBucketMetadataTableConfiguration` request succeeds, but + S3 Metadata was unable to create the table, this structure contains the + error message. The possible error codes and error messages are as + follows: + + - `AccessDeniedCreatingResources` - You don't have sufficient + permissions to create the required resources. Make sure that you have + `s3tables:CreateNamespace`, `s3tables:CreateTable`, + `s3tables:GetTable` and `s3tables:PutTablePolicy` permissions, and + then try again. To create a new metadata table, you must delete the + metadata configuration for this bucket, and then create a new metadata + configuration. + + - `AccessDeniedWritingToTable` - Unable to write to the metadata table + because of missing resource permissions. To fix the resource policy, + Amazon S3 needs to create a new metadata table. To create a new + metadata table, you must delete the metadata configuration for this + bucket, and then create a new metadata configuration. + + - `DestinationTableNotFound` - The destination table doesn't exist. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `ServerInternalError` - An internal error has occurred. To create a + new metadata table, you must delete the metadata configuration for + this bucket, and then create a new metadata configuration. + + - `TableAlreadyExists` - The table that you specified already exists in + the table bucket's namespace. Specify a different table name. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `TableBucketNotFound` - The table bucket that you specified doesn't + exist in this Amazon Web Services Region and account. Create or choose + a different table bucket. To create a new metadata table, you must + delete the metadata configuration for this bucket, and then create a + new metadata configuration. + + If the V2 `CreateBucketMetadataConfiguration` request succeeds, but S3 + Metadata was unable to create the table, this structure contains the + error code. The possible error codes and error messages are as follows: + + - `AccessDeniedCreatingResources` - You don't have sufficient + permissions to create the required resources. Make sure that you have + `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, + `s3tables:CreateTable`, `s3tables:GetTable`, + `s3tables:PutTablePolicy`, `kms:DescribeKey`, and + `s3tables:PutTableEncryption` permissions. Additionally, ensure that + the KMS key used to encrypt the table still exists, is active and has + a resource policy granting access to the S3 service principals + '`maintenance.s3tables.amazonaws.com`' and + '`metadata.s3.amazonaws.com`'. To create a new metadata table, you + must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `AccessDeniedWritingToTable` - Unable to write to the metadata table + because of missing resource permissions. To fix the resource policy, + Amazon S3 needs to create a new metadata table. To create a new + metadata table, you must delete the metadata configuration for this + bucket, and then create a new metadata configuration. + + - `DestinationTableNotFound` - The destination table doesn't exist. To + create a new metadata table, you must delete the metadata + configuration for this bucket, and then create a new metadata + configuration. + + - `ServerInternalError` - An internal error has occurred. To create a + new metadata table, you must delete the metadata configuration for + this bucket, and then create a new metadata configuration. + + - `JournalTableAlreadyExists` - A journal table already exists in the + Amazon Web Services managed table bucket's namespace. Delete the + journal table, and then try again. To create a new metadata table, you + must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `InventoryTableAlreadyExists` - An inventory table already exists in + the Amazon Web Services managed table bucket's namespace. Delete the + inventory table, and then try again. To create a new metadata table, + you must delete the metadata configuration for this bucket, and then + create a new metadata configuration. + + - `JournalTableNotAvailable` - The journal table that the inventory + table relies on has a `FAILED` status. An inventory table requires a + journal table with an `ACTIVE` status. To create a new journal or + inventory table, you must delete the metadata configuration for this + bucket, along with any journal or inventory tables, and then create a + new metadata configuration. + + - `NoSuchBucket` - The specified general purpose bucket does not exist. + """ + +@dataclass(kw_only=True) +class ErrorDocument(_SerdeShape): + """The error information.""" + + key: str + """ + The object key name to use when a 4XX class error occurs. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + +class Event(UnknownEnumMixin, StrEnum): + """The bucket event for which to send notifications.""" + + S3_REDUCED_REDUNDANCY_LOST_OBJECT = "s3:ReducedRedundancyLostObject" + S3_OBJECT_CREATED_ = "s3:ObjectCreated:*" + S3_OBJECT_CREATED_PUT = "s3:ObjectCreated:Put" + S3_OBJECT_CREATED_POST = "s3:ObjectCreated:Post" + S3_OBJECT_CREATED_COPY = "s3:ObjectCreated:Copy" + S3_OBJECT_CREATED_COMPLETE_MULTIPART_UPLOAD = ( + "s3:ObjectCreated:CompleteMultipartUpload" + ) + S3_OBJECT_REMOVED_ = "s3:ObjectRemoved:*" + S3_OBJECT_REMOVED_DELETE = "s3:ObjectRemoved:Delete" + S3_OBJECT_REMOVED_DELETE_MARKER_CREATED = "s3:ObjectRemoved:DeleteMarkerCreated" + S3_OBJECT_RESTORE_ = "s3:ObjectRestore:*" + S3_OBJECT_RESTORE_POST = "s3:ObjectRestore:Post" + S3_OBJECT_RESTORE_COMPLETED = "s3:ObjectRestore:Completed" + S3_REPLICATION_ = "s3:Replication:*" + S3_REPLICATION_OPERATION_FAILED_REPLICATION = ( + "s3:Replication:OperationFailedReplication" + ) + S3_REPLICATION_OPERATION_NOT_TRACKED = "s3:Replication:OperationNotTracked" + S3_REPLICATION_OPERATION_MISSED_THRESHOLD = ( + "s3:Replication:OperationMissedThreshold" + ) + S3_REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD = ( + "s3:Replication:OperationReplicatedAfterThreshold" + ) + S3_OBJECT_RESTORE_DELETE = "s3:ObjectRestore:Delete" + S3_LIFECYCLE_TRANSITION = "s3:LifecycleTransition" + S3_INTELLIGENT_TIERING = "s3:IntelligentTiering" + S3_OBJECT_ACL_PUT = "s3:ObjectAcl:Put" + S3_LIFECYCLE_EXPIRATION_ = "s3:LifecycleExpiration:*" + S3_LIFECYCLE_EXPIRATION_DELETE = "s3:LifecycleExpiration:Delete" + S3_LIFECYCLE_EXPIRATION_DELETE_MARKER_CREATED = ( + "s3:LifecycleExpiration:DeleteMarkerCreated" + ) + S3_OBJECT_TAGGING_ = "s3:ObjectTagging:*" + S3_OBJECT_TAGGING_PUT = "s3:ObjectTagging:Put" + S3_OBJECT_TAGGING_DELETE = "s3:ObjectTagging:Delete" + S3_OBJECT_ANNOTATION_ = "s3:ObjectAnnotation:*" + S3_OBJECT_ANNOTATION_PUT = "s3:ObjectAnnotation:Put" + S3_OBJECT_ANNOTATION_DELETE = "s3:ObjectAnnotation:Delete" + S3_OBJECT_RETENTION_PUT = "s3:ObjectRetention:Put" + +@dataclass(kw_only=True) +class EventBridgeConfiguration(_SerdeShape): + """A container for specifying the configuration for Amazon EventBridge.""" + +@dataclass(kw_only=True) +class EventHoldDuration(_SerdeShape): + """ + Contains the event hold duration configuration, specified in either days + or years. + """ + + days: int | None = ... + """ + The number of days for the event hold duration. The minimum value is 1 + and the maximum value is 36,500. + """ + years: int | None = ... + """ + The number of years for the event hold duration. The minimum value is 1 + and the maximum value is 100. + """ + +@dataclass(kw_only=True) +class ExistingObjectReplication(_SerdeShape): + """ + Optional configuration to replicate existing source bucket objects. + + Note: + This parameter is no longer supported. To replicate existing objects, + see [Replicating existing objects with S3 Batch + Replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html) + in the *Amazon S3 User Guide*. + """ + + status: str + """Specifies whether Amazon S3 replicates existing source bucket objects.""" + +class ExistingObjectReplicationStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class ExpirationState(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +class ExpirationStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class ExpressionType(UnknownEnumMixin, StrEnum): + SQL = "SQL" + +class FileHeaderInfo(UnknownEnumMixin, StrEnum): + USE = "USE" + IGNORE = "IGNORE" + NONE = "NONE" + +@dataclass(kw_only=True) +class FilterRule(_SerdeShape): + """ + Specifies the Amazon S3 object key name to filter on. An object key name + is the name assigned to an object in your Amazon S3 bucket. You specify + whether to filter on the suffix or prefix of the object key name. A + prefix is a specific string of characters at the beginning of an object + key name, which you can use to organize objects. For example, you can + start the key names of related objects with a prefix, such as `2023-` or + `engineering/`. Then, you can use `FilterRule` to find objects in a + bucket with key names that have the same prefix. A suffix is similar to + a prefix, but it is at the end of the object key name instead of at the + beginning. + """ + + name: str | None = ... + """ + The object key name prefix or suffix identifying one or more objects to + which the filtering rule applies. The maximum length is 1,024 + characters. Overlapping prefixes and suffixes are not supported. For + more information, see [Configuring Event + Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + in the *Amazon S3 User Guide*. + """ + value: str | None = ... + """The value that the filter searches for in object key names.""" + +class FilterRuleName(UnknownEnumMixin, StrEnum): + PREFIX = "prefix" + SUFFIX = "suffix" + +@dataclass(kw_only=True) +class GetBucketAbacInput(_SerdeShape): + """Dataclass for GetBucketAbacInput structure.""" + + bucket: str | None = ... + """The name of the general purpose bucket.""" + expected_bucket_owner: str | None = ... + """ + The Amazon Web Services account ID of the general purpose bucket's + owner. + """ + +@dataclass(kw_only=True) +class GetBucketAbacOutput(_SerdeShape): + """Dataclass for GetBucketAbacOutput structure.""" + + abac_status: AbacStatus | None = ... + """The ABAC status of the general purpose bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketAccelerateConfigurationInput(_SerdeShape): + """Dataclass for GetBucketAccelerateConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket for which the accelerate configuration is + retrieved. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class GetBucketAccelerateConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketAccelerateConfigurationOutput structure.""" + + status: str | None = ... + """The accelerate configuration of the bucket.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketAclInput(_SerdeShape): + """Dataclass for GetBucketAclInput structure.""" + + bucket: str | None = ... + """ + Specifies the S3 bucket whose ACL is being requested. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketAclOutput(_SerdeShape): + """Dataclass for GetBucketAclOutput structure.""" + + owner: Owner | None = ... + """Container for the bucket owner's ID.""" + grants: list[Grant] | None = ... + """A list of grants.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketAnalyticsConfigurationInput(_SerdeShape): + """Dataclass for GetBucketAnalyticsConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket from which an analytics configuration is + retrieved. + """ + id: str | None = ... + """The ID that identifies the analytics configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketAnalyticsConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketAnalyticsConfigurationOutput structure.""" + + analytics_configuration: AnalyticsConfiguration | None = ... + """The configuration and any analyses for the analytics filter.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketCorsInput(_SerdeShape): + """Dataclass for GetBucketCorsInput structure.""" + + bucket: str | None = ... + """ + The bucket name for which to get the cors configuration. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketCorsOutput(_SerdeShape): + """Dataclass for GetBucketCorsOutput structure.""" + + cors_rules: list[CORSRule] | None = ... + """ + A set of origins and methods (cross-origin access that you want to + allow). You can add up to 100 rules to the configuration. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketEncryptionInput(_SerdeShape): + """Dataclass for GetBucketEncryptionInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket from which the server-side encryption + configuration is retrieved. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class GetBucketEncryptionOutput(_SerdeShape): + """Dataclass for GetBucketEncryptionOutput structure.""" + + server_side_encryption_configuration: ServerSideEncryptionConfiguration | None = ... + """Specifies the default server-side-encryption configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketIntelligentTieringConfigurationInput(_SerdeShape): + """Dataclass for GetBucketIntelligentTieringConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose configuration you want to modify + or retrieve. + """ + id: str | None = ... + """The ID used to identify the S3 Intelligent-Tiering configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketIntelligentTieringConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketIntelligentTieringConfigurationOutput structure.""" + + intelligent_tiering_configuration: IntelligentTieringConfiguration | None = ... + """Container for S3 Intelligent-Tiering configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketInventoryConfigurationInput(_SerdeShape): + """Dataclass for GetBucketInventoryConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the inventory configuration to + retrieve. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """The ID used to identify the inventory configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class GetBucketInventoryConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketInventoryConfigurationOutput structure.""" + + inventory_configuration: InventoryConfiguration | None = ... + """Specifies the inventory configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketLifecycleConfigurationInput(_SerdeShape): + """Dataclass for GetBucketLifecycleConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which to get the lifecycle information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + +@dataclass(kw_only=True) +class GetBucketLifecycleConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketLifecycleConfigurationOutput structure.""" + + rules: list[LifecycleRule] | None = ... + """Container for a lifecycle rule.""" + transition_default_minimum_object_size: str | None = ... + """ + Indicates which default minimum object size behavior is applied to the + lifecycle configuration. + + Note: + This parameter applies to general purpose buckets only. It isn't + supported for directory bucket lifecycle configurations. + + - `all_storage_classes_128K` - Objects smaller than 128 KB will not + transition to any storage class by default. + + - `varies_by_storage_class` - Objects smaller than 128 KB will + transition to Glacier Flexible Retrieval or Glacier Deep Archive + storage classes. By default, all other storage classes will prevent + transitions smaller than 128 KB. + + To customize the minimum object size for any transition you can add a + filter that specifies a custom `ObjectSizeGreaterThan` or + `ObjectSizeLessThan` in the body of your transition rule. Custom filters + always take precedence over the default transition behavior. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketLocationInput(_SerdeShape): + """Dataclass for GetBucketLocationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket for which to get the location. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketLocationOutput(_SerdeShape): + """Dataclass for GetBucketLocationOutput structure.""" + + location_constraint: str | None = ... + """ + Specifies the Region where the bucket resides. For a list of all the + Amazon S3 supported location constraints by Region, see [Regions and + Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). + + Buckets in Region `us-east-1` have a LocationConstraint of `null`. + Buckets with a LocationConstraint of `EU` reside in `eu-west-1`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketLoggingInput(_SerdeShape): + """Dataclass for GetBucketLoggingInput structure.""" + + bucket: str | None = ... + """The bucket name for which to get the logging information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketLoggingOutput(_SerdeShape): + """Dataclass for GetBucketLoggingOutput structure.""" + + logging_enabled: LoggingEnabled | None = ... + """ + Describes where logs are stored and the prefix that Amazon S3 assigns to + all log object keys for a bucket. For more information, see [PUT Bucket + logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) + in the *Amazon S3 API Reference*. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketMetadataConfigurationInput(_SerdeShape): + """Dataclass for GetBucketMetadataConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that corresponds to the metadata + configuration that you want to retrieve. + """ + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that you want to + retrieve the metadata table configuration for. + """ + +@dataclass(kw_only=True) +class GetBucketMetadataConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketMetadataConfigurationOutput structure.""" + + get_bucket_metadata_configuration_result: ( + GetBucketMetadataConfigurationResult | None + ) = ... + """The metadata configuration for the general purpose bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketMetadataConfigurationResult(_SerdeShape): + """The S3 Metadata configuration for a general purpose bucket.""" + + metadata_configuration_result: MetadataConfigurationResult + """The metadata configuration for a general purpose bucket.""" + +@dataclass(kw_only=True) +class GetBucketMetadataTableConfigurationInput(_SerdeShape): + """Dataclass for GetBucketMetadataTableConfigurationInput structure.""" + + bucket: str | None = ... + """ + The general purpose bucket that corresponds to the metadata table + configuration that you want to retrieve. + """ + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that you want to + retrieve the metadata table configuration for. + """ + +@dataclass(kw_only=True) +class GetBucketMetadataTableConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketMetadataTableConfigurationOutput structure.""" + + get_bucket_metadata_table_configuration_result: ( + GetBucketMetadataTableConfigurationResult | None + ) = ... + """The metadata table configuration for the general purpose bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketMetadataTableConfigurationResult(_SerdeShape): + """ + The V1 S3 Metadata configuration for a general purpose bucket. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + metadata_table_configuration_result: MetadataTableConfigurationResult + """The V1 S3 Metadata configuration for a general purpose bucket.""" + status: str + """ + The status of the metadata table. The status values are: + + - `CREATING` - The metadata table is in the process of being created in + the specified table bucket. + + - `ACTIVE` - The metadata table has been created successfully, and + records are being delivered to the table. + + - `FAILED` - Amazon S3 is unable to create the metadata table, or Amazon + S3 is unable to deliver records. See `ErrorDetails` for details. + """ + error: ErrorDetails | None = ... + """ + If the `CreateBucketMetadataTableConfiguration` request succeeds, but S3 + Metadata was unable to create the table, this structure contains the + error code and error message. + """ + +@dataclass(kw_only=True) +class GetBucketMetricsConfigurationInput(_SerdeShape): + """Dataclass for GetBucketMetricsConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the metrics configuration to retrieve. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """ + The ID used to identify the metrics configuration. The ID has a 64 + character limit and can only contain letters, numbers, periods, dashes, + and underscores. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class GetBucketMetricsConfigurationOutput(_SerdeShape): + """Dataclass for GetBucketMetricsConfigurationOutput structure.""" + + metrics_configuration: MetricsConfiguration | None = ... + """Specifies the metrics configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketNotificationConfigurationInput(_SerdeShape): + """Dataclass for GetBucketNotificationConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket for which to get the notification configuration. + + When you use this API operation with an access point, provide the alias + of the access point in place of the bucket name. + + When you use this API operation with an Object Lambda access point, + provide the alias of the Object Lambda access point in place of the + bucket name. If the Object Lambda access point alias in a request is not + valid, the error code `InvalidAccessPointAliasError` is returned. For + more information about `InvalidAccessPointAliasError`, see [List of + Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketNotificationConfigurationOutput(_SerdeShape): + """ + A container for specifying the notification configuration of the bucket. + If this element is empty, notifications are turned off for the bucket. + """ + + topic_configurations: list[TopicConfiguration] | None = ... + """ + The topic to which notifications are sent and the events for which + notifications are generated. + """ + queue_configurations: list[QueueConfiguration] | None = ... + """ + The Amazon Simple Queue Service queues to publish messages to and the + events for which to publish messages. + """ + lambda_function_configurations: list[LambdaFunctionConfiguration] | None = ... + """ + Describes the Lambda functions to invoke and the events for which to + invoke them. + """ + event_bridge_configuration: EventBridgeConfiguration | None = ... + """Enables delivery of events to Amazon EventBridge.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketOwnershipControlsInput(_SerdeShape): + """Dataclass for GetBucketOwnershipControlsInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose `OwnershipControls` you want to + retrieve. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketOwnershipControlsOutput(_SerdeShape): + """Dataclass for GetBucketOwnershipControlsOutput structure.""" + + ownership_controls: OwnershipControls | None = ... + """ + The `OwnershipControls` (BucketOwnerEnforced, BucketOwnerPreferred, or + ObjectWriter) currently in effect for this Amazon S3 bucket. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketPolicyInput(_SerdeShape): + """Dataclass for GetBucketPolicyInput structure.""" + + bucket: str | None = ... + """ + The bucket name to get the bucket policy for. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + + **Access points** - When you use this API operation with an access + point, provide the alias of the access point in place of the bucket + name. + + **Object Lambda access points** - When you use this API operation with + an Object Lambda access point, provide the alias of the Object Lambda + access point in place of the bucket name. If the Object Lambda access + point alias in a request is not valid, the error code + `InvalidAccessPointAliasError` is returned. For more information about + `InvalidAccessPointAliasError`, see [List of Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + Object Lambda access points are not supported by directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class GetBucketPolicyOutput(_SerdeShape): + """Dataclass for GetBucketPolicyOutput structure.""" + + policy: str | None = ... + """The bucket policy as a JSON document.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketPolicyStatusInput(_SerdeShape): + """Dataclass for GetBucketPolicyStatusInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose policy status you want to + retrieve. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketPolicyStatusOutput(_SerdeShape): + """Dataclass for GetBucketPolicyStatusOutput structure.""" + + policy_status: PolicyStatus | None = ... + """The policy status for the specified bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketReplicationInput(_SerdeShape): + """Dataclass for GetBucketReplicationInput structure.""" + + bucket: str | None = ... + """The bucket name for which to get the replication information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketReplicationOutput(_SerdeShape): + """Dataclass for GetBucketReplicationOutput structure.""" + + replication_configuration: ReplicationConfiguration | None = ... + """ + A container for replication rules. You can add up to 1,000 rules. The + maximum size of a replication configuration is 2 MB. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketRequestPaymentInput(_SerdeShape): + """Dataclass for GetBucketRequestPaymentInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket for which to get the payment request + configuration + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketRequestPaymentOutput(_SerdeShape): + """Dataclass for GetBucketRequestPaymentOutput structure.""" + + payer: str | None = ... + """Specifies who pays for the download and request fees.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketTaggingInput(_SerdeShape): + """Dataclass for GetBucketTaggingInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which to get the tagging information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketTaggingOutput(_SerdeShape): + """Dataclass for GetBucketTaggingOutput structure.""" + + tag_set: list[Tag] + """Contains the tag set.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketVersioningInput(_SerdeShape): + """Dataclass for GetBucketVersioningInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which to get the versioning information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketVersioningOutput(_SerdeShape): + """Dataclass for GetBucketVersioningOutput structure.""" + + status: str | None = ... + """The versioning state of the bucket.""" + mfa_delete: str | None = ... + """ + Specifies whether MFA delete is enabled in the bucket versioning + configuration. This element is only returned if the bucket has been + configured with MFA delete. If the bucket has never been so configured, + this element is not returned. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetBucketWebsiteInput(_SerdeShape): + """Dataclass for GetBucketWebsiteInput structure.""" + + bucket: str | None = ... + """The bucket name for which to get the website configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetBucketWebsiteOutput(_SerdeShape): + """Dataclass for GetBucketWebsiteOutput structure.""" + + redirect_all_requests_to: RedirectAllRequestsTo | None = ... + """ + Specifies the redirect behavior of all requests to a website endpoint of + an Amazon S3 bucket. + """ + index_document: IndexDocument | None = ... + """ + The name of the index document for the website (for example + `index.html`). + """ + error_document: ErrorDocument | None = ... + """ + The object key name of the website error document to use for 4XX class + errors. + """ + routing_rules: list[RoutingRule] | None = ... + """Rules that define when a redirect is applied and the redirect behavior.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectAclInput(_SerdeShape): + """Dataclass for GetObjectAclInput structure.""" + + bucket: str | None = ... + """ + The bucket name that contains the object for which to get the ACL + information. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """The key of the object for which to get the ACL information.""" + version_id: str | None = ... + """ + Version ID used to reference a specific version of the object. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetObjectAclOutput(_SerdeShape): + """Dataclass for GetObjectAclOutput structure.""" + + owner: Owner | None = ... + """Container for the bucket owner's ID.""" + grants: list[Grant] | None = ... + """A list of grants.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectAnnotationInput(_SerdeShape): + """Dataclass for GetObjectAnnotationInput structure.""" + + bucket: str | None = ... + """The name of the bucket that contains the object.""" + key: str | None = ... + """The object key.""" + annotation_name: str | None = ... + """ + The name of the annotation to retrieve. + + Length Constraints: Minimum length of 1. Maximum length of 512 bytes. + """ + version_id: str | None = ... + """The version ID of the object.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the bucket is owned by a + different account, the request fails with an HTTP 403 (Access Denied) + error. + """ + checksum_mode: str | None = ... + """ + Set to `ENABLED` to validate the checksum of the annotation payload on + retrieval. + """ + +@dataclass(kw_only=True) +class GetObjectAnnotationOutput(_SerdeShape): + """Dataclass for GetObjectAnnotationOutput structure.""" + + annotation_payload: StreamingBlob = ... + """The annotation payload.""" + object_version_id: str | None = ... + """The version ID of the object that the annotation is attached to.""" + last_modified: datetime | None = ... + """The date and time the annotation was last modified.""" + content_length: int | None = ... + """The size of the annotation payload, in bytes.""" + e_tag: str | None = ... + """The entity tag of the annotation.""" + checksum_crc32: str | None = ... + """The CRC32 checksum of the annotation payload.""" + checksum_crc32_c: str | None = ... + """The CRC32C checksum of the annotation payload.""" + checksum_crc64_nvme: str | None = ... + """The CRC64NVME checksum of the annotation payload.""" + checksum_sha1: str | None = ... + """The SHA1 checksum of the annotation payload.""" + checksum_sha256: str | None = ... + """The SHA256 checksum of the annotation payload.""" + checksum_sha512: str | None = ... + """The SHA512 checksum of the annotation payload.""" + checksum_md5: str | None = ... + """The MD5 checksum of the annotation payload.""" + checksum_xxhash64: str | None = ... + """The XXHASH64 checksum of the annotation payload.""" + checksum_xxhash3: str | None = ... + """The XXHASH3 checksum of the annotation payload.""" + checksum_xxhash128: str | None = ... + """The XXHASH128 checksum of the annotation payload.""" + checksum_type: str | None = ... + """The type of checksum used.""" + server_side_encryption: str | None = ... + """The server-side encryption algorithm used.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + replication_status: str | None = ... + """ + The replication status of the annotation. Possible values include + `PENDING`, `COMPLETED`, `FAILED`, and `REPLICA`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectAttributesInput(_SerdeShape): + """Dataclass for GetObjectAttributesInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket that contains the object. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """The object key.""" + version_id: str | None = ... + """ + The version ID used to reference a specific version of the object. + + Note: + S3 Versioning isn't enabled and supported for directory buckets. For + this API operation, only the `null` value of the version ID is supported + by directory buckets. You can only specify `null` to the `versionId` + query parameter in the request. + """ + max_parts: int | None = ... + """ + Sets the maximum number of parts to return. For more information, see + [Uploading and copying objects using multipart upload in Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) + in the *Amazon Simple Storage Service user guide*. + """ + part_number_marker: str | None = ... + """ + Specifies the part after which listing should begin. Only parts with + higher part numbers will be listed. For more information, see [Uploading + and copying objects using multipart upload in Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) + in the *Amazon Simple Storage Service user guide*. + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + AES256). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + object_attributes: list[str] | None = ... + """ + Specifies the fields at the root level that you want returned in the + response. Fields that you do not specify are not returned. + """ + +@dataclass(kw_only=True) +class GetObjectAttributesOutput(_SerdeShape): + """Dataclass for GetObjectAttributesOutput structure.""" + + delete_marker: bool | None = ... + """ + Specifies whether the object retrieved was (`true`) or was not (`false`) + a delete marker. If `false`, this response header does not appear in the + response. To learn more about delete markers, see [Working with delete + markers](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html). + + Note: + This functionality is not supported for directory buckets. + """ + last_modified: datetime | None = ... + """Date and time when the object was last modified.""" + version_id: str | None = ... + """ + The version ID of the object. + + Note: + This functionality is not supported for directory buckets. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + e_tag: str | None = ... + """ + An ETag is an opaque identifier assigned by a web server to a specific + version of a resource found at a URL. + """ + checksum: Checksum | None = ... + """The checksum or digest of the object.""" + object_parts: GetObjectAttributesParts | None = ... + """A collection of parts associated with a multipart upload.""" + storage_class: str | None = ... + """ + Provides the storage class information of the object. Amazon S3 returns + this header for all objects except for S3 Standard storage class + objects. + + For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + object_size: int | None = ... + """The size of the object in bytes.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectAttributesParts(_SerdeShape): + """A collection of parts associated with a multipart upload.""" + + total_parts_count: int | None = ... + """The total number of parts.""" + part_number_marker: str | None = ... + """The marker for the current part.""" + next_part_number_marker: str | None = ... + """ + When a list is truncated, this element specifies the last part in the + list, as well as the value to use for the `PartNumberMarker` request + parameter in a subsequent request. + """ + max_parts: int | None = ... + """The maximum number of parts allowed in the response.""" + is_truncated: bool | None = ... + """ + Indicates whether the returned list of parts is truncated. A value of + `true` indicates that the list was truncated. A list can be truncated if + the number of parts exceeds the limit returned in the `MaxParts` + element. + """ + parts: list[ObjectPart] | None = ... + """ + A container for elements related to a particular part. A response can + contain zero or more `Parts` elements. + + Note: + - **General purpose buckets** - For `GetObjectAttributes`, if an + additional checksum (including `x-amz-checksum-crc32`, + `x-amz-checksum-crc32c`, `x-amz-checksum-sha1`, or + `x-amz-checksum-sha256`) isn't applied to the object specified in the + request, the response doesn't return the `Part` element. + + - **Directory buckets** - For `GetObjectAttributes`, regardless of + whether an additional checksum is applied to the object specified in + the request, the response returns the `Part` element. + """ + +@dataclass(kw_only=True) +class GetObjectInput(_SerdeShape): + """Dataclass for GetObjectInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **Object Lambda access points** - When you use this action with an + Object Lambda access point, you must direct requests to the Object + Lambda access point hostname. The Object Lambda access point hostname + takes the form + *AccessPointName*-*AccountId*.s3-object-lambda.*Region*.amazonaws.com. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + if_match: str | None = ... + """ + Return the object only if its entity tag (ETag) is the same as the one + specified in this header; otherwise, return a `412 Precondition Failed` + error. + + If both of the `If-Match` and `If-Unmodified-Since` headers are present + in the request as follows: `If-Match` condition evaluates to `true`, + and; `If-Unmodified-Since` condition evaluates to `false`; then, S3 + returns `200 OK` and the data requested. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_modified_since: datetime | None = ... + """ + Return the object only if it has been modified since the specified time; + otherwise, return a `304 Not Modified` error. + + If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows:` If-None-Match` condition evaluates + to `false`, and; `If-Modified-Since` condition evaluates to `true`; + then, S3 returns `304 Not Modified` status code. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_none_match: str | None = ... + """ + Return the object only if its entity tag (ETag) is different from the + one specified in this header; otherwise, return a `304 Not Modified` + error. + + If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows:` If-None-Match` condition evaluates + to `false`, and; `If-Modified-Since` condition evaluates to `true`; + then, S3 returns `304 Not Modified` HTTP status code. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_unmodified_since: datetime | None = ... + """ + Return the object only if it has not been modified since the specified + time; otherwise, return a `412 Precondition Failed` error. + + If both of the `If-Match` and `If-Unmodified-Since` headers are present + in the request as follows: `If-Match` condition evaluates to `true`, + and; `If-Unmodified-Since` condition evaluates to `false`; then, S3 + returns `200 OK` and the data requested. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + key: str | None = ... + """Key of the object to get.""" + range: str | None = ... + """ + Downloads the specified byte range of an object. For more information + about the HTTP Range header, see + . + + Note: + Amazon S3 doesn't support retrieving multiple ranges of data per `GET` + request. + """ + response_cache_control: str | None = ... + """Sets the `Cache-Control` header of the response.""" + response_content_disposition: str | None = ... + """Sets the `Content-Disposition` header of the response.""" + response_content_encoding: str | None = ... + """Sets the `Content-Encoding` header of the response.""" + response_content_language: str | None = ... + """Sets the `Content-Language` header of the response.""" + response_content_type: str | None = ... + """Sets the `Content-Type` header of the response.""" + response_expires: datetime | None = ... + """Sets the `Expires` header of the response.""" + version_id: str | None = ... + """ + Version ID used to reference a specific version of the object. + + By default, the `GetObject` operation returns the current version of an + object. To return a different version, use the `versionId` subresource. + + Note: + - If you include a `versionId` in your request header, you must have the + `s3:GetObjectVersion` permission to access a specific version of an + object. The `s3:GetObject` permission is not required in this + scenario. + + - If you request the current version of an object without a specific + `versionId` in the request header, only the `s3:GetObject` permission + is required. The `s3:GetObjectVersion` permission is not required in + this scenario. + + - **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. For this API operation, only the `null` value of + the version ID is supported by directory buckets. You can only specify + `null` to the `versionId` query parameter in the request. + + For more information about versioning, see + [PutBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html). + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when decrypting the object (for example, + `AES256`). + + If you encrypt an object by using server-side encryption with + customer-provided encryption keys (SSE-C) when you store the object in + Amazon S3, then when you GET the object, you must use the following + headers: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key that you originally + provided for Amazon S3 to encrypt the data before storing it. This value + is used to decrypt the object when recovering it and must match the one + used when storing the data. The key must be appropriate for use with the + algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + If you encrypt an object by using server-side encryption with + customer-provided encryption keys (SSE-C) when you store the object in + Amazon S3, then when you GET the object, you must use the following + headers: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the customer-provided encryption key + according to RFC 1321. Amazon S3 uses this header for a message + integrity check to ensure that the encryption key was transmitted + without error. + + If you encrypt an object by using server-side encryption with + customer-provided encryption keys (SSE-C) when you store the object in + Amazon S3, then when you GET the object, you must use the following + headers: + + - `x-amz-server-side-encryption-customer-algorithm` + + - `x-amz-server-side-encryption-customer-key` + + - `x-amz-server-side-encryption-customer-key-MD5` + + For more information about SSE-C, see [Server-Side Encryption (Using + Customer-Provided Encryption + Keys)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + part_number: int | None = ... + """ + Part number of the object being read. This is a positive integer between + 1 and 10,000. Effectively performs a 'ranged' GET request for the part + specified. Useful for downloading just a part of an object. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + checksum_mode: str | None = ... + """To retrieve the checksum, this mode must be enabled.""" + +@dataclass(kw_only=True) +class GetObjectLegalHoldInput(_SerdeShape): + """Dataclass for GetObjectLegalHoldInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object whose legal hold status you want + to retrieve. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """ + The key name for the object whose legal hold status you want to + retrieve. + """ + version_id: str | None = ... + """ + The version ID of the object whose legal hold status you want to + retrieve. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetObjectLegalHoldOutput(_SerdeShape): + """Dataclass for GetObjectLegalHoldOutput structure.""" + + legal_hold: ObjectLockLegalHold | None = ... + """The current legal hold status for the specified object.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectLockConfigurationInput(_SerdeShape): + """Dataclass for GetObjectLockConfigurationInput structure.""" + + bucket: str | None = ... + """ + The bucket whose Object Lock configuration you want to retrieve. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetObjectLockConfigurationOutput(_SerdeShape): + """Dataclass for GetObjectLockConfigurationOutput structure.""" + + object_lock_configuration: ObjectLockConfiguration | None = ... + """The specified bucket's Object Lock configuration.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectOutput(_SerdeShape): + """Dataclass for GetObjectOutput structure.""" + + body: StreamingBlob = ... + """Object data.""" + delete_marker: bool | None = ... + """ + Indicates whether the object retrieved was (true) or was not (false) a + Delete Marker. If false, this response header does not appear in the + response. + + Note: + - If the current version of the object is a delete marker, Amazon S3 + behaves as if the object was deleted and includes + `x-amz-delete-marker: true` in the response. + + - If the specified version in the request is a delete marker, the + response returns a `405 Method Not Allowed` error and the + `Last-Modified: timestamp` response header. + """ + accept_ranges: str | None = ... + """Indicates that a range of bytes was specified in the request.""" + expiration: str | None = ... + """ + If the object expiration is configured (see + [`PutBucketLifecycleConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + ), the response includes this header. It includes the `expiry-date` and + `rule-id` key-value pairs providing object expiration information. The + value of the `rule-id` is URL-encoded. + + Note: + Object expiration information is not returned in directory buckets and + this header returns the value \"`NotImplemented`\" in all responses for + directory buckets. + """ + restore: str | None = ... + """ + Provides information about object restoration action and expiration time + of the restored object copy. + + Note: + This functionality is not supported for directory buckets. Directory + buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone storage + class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + """ + last_modified: datetime | None = ... + """ + Date and time when the object was last modified. + + **General purpose buckets** - When you specify a `versionId` of the + object in your request, if the specified version in the request is a + delete marker, the response returns a `405 Method Not Allowed` error and + the `Last-Modified: timestamp` response header. + """ + content_length: int | None = ... + """Size of the body in bytes.""" + e_tag: str | None = ... + """ + An entity tag (ETag) is an opaque identifier assigned by a web server to + a specific version of a resource found at a URL. + """ + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_type: str | None = ... + """ + The checksum type, which determines how part-level checksums are + combined to create an object-level checksum for multipart objects. You + can use this header response to verify that the checksum type that is + received is the same checksum type that was specified in the + `CreateMultipartUpload` request. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + missing_meta: int | None = ... + """ + This is set to the number of metadata entries not returned in the + headers that are prefixed with `x-amz-meta-`. This can happen if you + create metadata using an API like SOAP that supports more flexible + metadata than the REST API. For example, using SOAP, you can create + metadata whose values are not legal HTTP headers. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + Version ID of the object. + + Note: + This functionality is not supported for directory buckets. + """ + cache_control: str | None = ... + """Specifies caching behavior along the request/reply chain.""" + content_disposition: str | None = ... + """Specifies presentational information for the object.""" + content_encoding: str | None = ... + """ + Indicates what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. + """ + content_language: str | None = ... + """The language the content is in.""" + content_range: str | None = ... + """The portion of the object returned in the response.""" + content_type: str | None = ... + """A standard MIME type describing the format of the object data.""" + expires: str | None = ... + """The date and time at which the object is no longer cacheable.""" + website_redirect_location: str | None = ... + """ + If the bucket is configured as a website, redirects requests for this + object to another object in the same bucket or to an external URL. + Amazon S3 stores the value of this header in the object metadata. + + Note: + This functionality is not supported for directory buckets. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the object uses an S3 Bucket Key for server-side + encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + storage_class: str | None = ... + """ + Provides storage class information of the object. Amazon S3 returns this + header for all objects except for S3 Standard storage class objects. + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + replication_status: str | None = ... + """ + Amazon S3 can return this if your request involves a bucket that is + either a source or destination in a replication rule. + + Note: + This functionality is not supported for directory buckets. + """ + parts_count: int | None = ... + """ + The count of parts this object has. This value is only returned if you + specify `partNumber` in your request and the object was uploaded as a + multipart upload. + """ + tag_count: int | None = ... + """ + The number of tags, if any, on the object, when you have the relevant + permission to read object tags. + + You can use + [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + to retrieve the tag set associated with an object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_mode: str | None = ... + """ + The Object Lock mode that's currently in place for this object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_retain_until_date: datetime | None = ... + """ + The date and time when this object's Object Lock will expire. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_legal_hold_status: str | None = ... + """ + Indicates whether this object has an active legal hold. This field is + only returned if you have permission to view an object's legal hold + status. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold: str | None = ... + """ + The event hold status for this object. This header is only returned if + the requester has the `s3:GetObjectRetention` permission. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_days: int | None = ... + """ + The event hold duration in days for this object. Only returned when the + event hold is enabled. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_years: int | None = ... + """ + The event hold duration in years for this object. Only returned when the + event hold is enabled. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectRetentionInput(_SerdeShape): + """Dataclass for GetObjectRetentionInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object whose retention settings you want + to retrieve. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """ + The key name for the object whose retention settings you want to + retrieve. + """ + version_id: str | None = ... + """ + The version ID for the object whose retention settings you want to + retrieve. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetObjectRetentionOutput(_SerdeShape): + """Dataclass for GetObjectRetentionOutput structure.""" + + retention: ObjectLockRetention | None = ... + """The container element for an object's retention settings.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectTaggingInput(_SerdeShape): + """Dataclass for GetObjectTaggingInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object for which to get the tagging + information. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Object key for which to get the tagging information.""" + version_id: str | None = ... + """The versionId of the object for which to get the tagging information.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class GetObjectTaggingOutput(_SerdeShape): + """Dataclass for GetObjectTaggingOutput structure.""" + + version_id: str | None = ... + """The versionId of the object for which you got the tagging information.""" + tag_set: list[Tag] + """Contains the tag set.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetObjectTorrentInput(_SerdeShape): + """Dataclass for GetObjectTorrentInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the object for which to get the + torrent files. + """ + key: str | None = ... + """The object key for which to get the information.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetObjectTorrentOutput(_SerdeShape): + """Dataclass for GetObjectTorrentOutput structure.""" + + body: StreamingBlob = ... + """A Bencoded dictionary as defined by the BitTorrent specification""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GetPublicAccessBlockInput(_SerdeShape): + """Dataclass for GetPublicAccessBlockInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose `PublicAccessBlock` configuration + you want to retrieve. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class GetPublicAccessBlockOutput(_SerdeShape): + """Dataclass for GetPublicAccessBlockOutput structure.""" + + public_access_block_configuration: PublicAccessBlockConfiguration | None = ... + """ + The `PublicAccessBlock` configuration currently in effect for this + Amazon S3 bucket. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class GlacierJobParameters(_SerdeShape): + """Container for S3 Glacier job parameters.""" + + tier: str + """Retrieval tier at which the restore will be processed.""" + +@dataclass(kw_only=True) +class Grant(_SerdeShape): + """Container for grant information.""" + + grantee: Grantee | None = ... + """The person being granted permissions.""" + permission: str | None = ... + """Specifies the permission given to the grantee.""" + +@dataclass(kw_only=True) +class Grantee(_SerdeShape): + """Container for the person being granted permissions.""" + + display_name: str | None = ... + """""" + email_address: str | None = ... + """""" + id: str | None = ... + """The canonical user ID of the grantee.""" + uri: str | None = ... + """URI of the grantee group.""" + type: str + """Type of grantee""" + +@dataclass(kw_only=True) +class HeadBucketInput(_SerdeShape): + """Dataclass for HeadBucketInput structure.""" + + bucket: str | None = ... + """ + The bucket name. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **Object Lambda access points** - When you use this API operation with + an Object Lambda access point, provide the alias of the Object Lambda + access point in place of the bucket name. If the Object Lambda access + point alias in a request is not valid, the error code + `InvalidAccessPointAliasError` is returned. For more information about + `InvalidAccessPointAliasError`, see [List of Error + Codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class HeadBucketOutput(_SerdeShape): + """Dataclass for HeadBucketOutput structure.""" + + bucket_arn: str | None = ... + """ + The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify + Amazon Web Services resources across all of Amazon Web Services. + + Note: + This parameter is only supported for S3 directory buckets. For more + information, see [Using tags with directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html). + """ + bucket_location_type: str | None = ... + """ + The type of location where the bucket is created. + + Note: + This functionality is only supported by directory buckets. + """ + bucket_location_name: str | None = ... + """ + The name of the location where the bucket will be created. + + For directory buckets, the Zone ID of the Availability Zone or the Local + Zone where the bucket is created. An example Zone ID value for an + Availability Zone is `usw2-az1`. + + Note: + This functionality is only supported by directory buckets. + """ + bucket_region: str | None = ... + """The Region that the bucket is located.""" + access_point_alias: bool | None = ... + """ + Indicates whether the bucket name used in the request is an access point + alias. + + Note: + For directory buckets, the value of this field is `false`. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class HeadObjectInput(_SerdeShape): + """Dataclass for HeadObjectInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket that contains the object. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + if_match: str | None = ... + """ + Return the object only if its entity tag (ETag) is the same as the one + specified; otherwise, return a 412 (precondition failed) error. + + If both of the `If-Match` and `If-Unmodified-Since` headers are present + in the request as follows: + + - `If-Match` condition evaluates to `true`, and; + + - `If-Unmodified-Since` condition evaluates to `false`; + + Then Amazon S3 returns `200 OK` and the data requested. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_modified_since: datetime | None = ... + """ + Return the object only if it has been modified since the specified time; + otherwise, return a 304 (not modified) error. + + If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows: + + - `If-None-Match` condition evaluates to `false`, and; + + - `If-Modified-Since` condition evaluates to `true`; + + Then Amazon S3 returns the `304 Not Modified` response code. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_none_match: str | None = ... + """ + Return the object only if its entity tag (ETag) is different from the + one specified; otherwise, return a 304 (not modified) error. + + If both of the `If-None-Match` and `If-Modified-Since` headers are + present in the request as follows: + + - `If-None-Match` condition evaluates to `false`, and; + + - `If-Modified-Since` condition evaluates to `true`; + + Then Amazon S3 returns the `304 Not Modified` response code. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + if_unmodified_since: datetime | None = ... + """ + Return the object only if it has not been modified since the specified + time; otherwise, return a 412 (precondition failed) error. + + If both of the `If-Match` and `If-Unmodified-Since` headers are present + in the request as follows: + + - `If-Match` condition evaluates to `true`, and; + + - `If-Unmodified-Since` condition evaluates to `false`; + + Then Amazon S3 returns `200 OK` and the data requested. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232). + """ + key: str | None = ... + """The object key.""" + range: str | None = ... + """ + HeadObject returns only the metadata for an object. If the Range is + satisfiable, only the `ContentLength` is affected in the response. If + the Range is not satisfiable, S3 returns a + `416 - Requested Range Not Satisfiable` error. + """ + response_cache_control: str | None = ... + """Sets the `Cache-Control` header of the response.""" + response_content_disposition: str | None = ... + """Sets the `Content-Disposition` header of the response.""" + response_content_encoding: str | None = ... + """Sets the `Content-Encoding` header of the response.""" + response_content_language: str | None = ... + """Sets the `Content-Language` header of the response.""" + response_content_type: str | None = ... + """Sets the `Content-Type` header of the response.""" + response_expires: datetime | None = ... + """Sets the `Expires` header of the response.""" + version_id: str | None = ... + """ + Version ID used to reference a specific version of the object. + + Note: + For directory buckets in this API operation, only the `null` value of + the version ID is supported. + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + AES256). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + part_number: int | None = ... + """ + Part number of the object being read. This is a positive integer between + 1 and 10,000. Effectively performs a 'ranged' HEAD request for the + part specified. Useful querying about the size of the part and the + number of parts in this object. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + checksum_mode: str | None = ... + """ + To retrieve the checksum, this parameter must be enabled. + + **General purpose buckets** - If you enable checksum mode and the object + is uploaded with a + [checksum](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html) + and encrypted with an Key Management Service (KMS) key, you must have + permission to use the `kms:Decrypt` action to retrieve the checksum. + + **Directory buckets** - If you enable `ChecksumMode` and the object is + encrypted with Amazon Web Services Key Management Service (Amazon Web + Services KMS), you must also have the `kms:GenerateDataKey` and + `kms:Decrypt` permissions in IAM identity-based policies and KMS key + policies for the KMS key to retrieve the checksum of the object. + """ + +@dataclass(kw_only=True) +class HeadObjectOutput(_SerdeShape): + """Dataclass for HeadObjectOutput structure.""" + + delete_marker: bool | None = ... + """ + Specifies whether the object retrieved was (true) or was not (false) a + Delete Marker. If false, this response header does not appear in the + response. + + Note: + This functionality is not supported for directory buckets. + """ + accept_ranges: str | None = ... + """Indicates that a range of bytes was specified.""" + expiration: str | None = ... + """ + If the object expiration is configured (see + [`PutBucketLifecycleConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) + ), the response includes this header. It includes the `expiry-date` and + `rule-id` key-value pairs providing object expiration information. The + value of the `rule-id` is URL-encoded. + + Note: + Object expiration information is not returned in directory buckets and + this header returns the value \"`NotImplemented`\" in all responses for + directory buckets. + """ + restore: str | None = ... + """ + If the object is an archived object (an object whose storage class is + GLACIER), the response includes this header if either the archive + restoration is in progress (see + [RestoreObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) + or an archive copy is already restored. + + If an archive copy is already restored, the header value indicates when + Amazon S3 is scheduled to delete the object copy. For example: + + `x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012 00:00:00 GMT"` + + If the object restoration is in progress, the header returns the value + `ongoing-request="true"`. + + For more information about archiving objects, see [Transitioning + Objects: General + Considerations](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations). + + Note: + This functionality is not supported for directory buckets. Directory + buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone storage + class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + """ + archive_status: str | None = ... + """ + The archive state of the head object. + + Note: + This functionality is not supported for directory buckets. + """ + last_modified: datetime | None = ... + """Date and time when the object was last modified.""" + content_length: int | None = ... + """Size of the body in bytes.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + When you use an API operation on an object that was uploaded using + multipart uploads, this value may not be a direct checksum value of the + full object. Instead, it's a calculation based on the checksum values + of each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use the API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_type: str | None = ... + """ + The checksum type, which determines how part-level checksums are + combined to create an object-level checksum for multipart objects. You + can use this header response to verify that the checksum type that is + received is the same checksum type that was specified in + `CreateMultipartUpload` request. For more information, see [Checking + object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + e_tag: str | None = ... + """ + An entity tag (ETag) is an opaque identifier assigned by a web server to + a specific version of a resource found at a URL. + """ + missing_meta: int | None = ... + """ + This is set to the number of metadata entries not returned in + `x-amz-meta` headers. This can happen if you create metadata using an + API like SOAP that supports more flexible metadata than the REST API. + For example, using SOAP, you can create metadata whose values are not + legal HTTP headers. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + Version ID of the object. + + Note: + This functionality is not supported for directory buckets. + """ + cache_control: str | None = ... + """Specifies caching behavior along the request/reply chain.""" + content_disposition: str | None = ... + """Specifies presentational information for the object.""" + content_encoding: str | None = ... + """ + Indicates what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. + """ + content_language: str | None = ... + """The language the content is in.""" + content_type: str | None = ... + """A standard MIME type describing the format of the object data.""" + content_range: str | None = ... + """The portion of the object returned in the response for a `GET` request.""" + expires: str | None = ... + """The date and time at which the object is no longer cacheable.""" + website_redirect_location: str | None = ... + """ + If the bucket is configured as a website, redirects requests for this + object to another object in the same bucket or to an external URL. + Amazon S3 stores the value of this header in the object metadata. + + Note: + This functionality is not supported for directory buckets. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the object uses an S3 Bucket Key for server-side + encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + storage_class: str | None = ... + """ + Provides storage class information of the object. Amazon S3 returns this + header for all objects except for S3 Standard storage class objects. + + For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + replication_status: str | None = ... + """ + Amazon S3 can return this header if your request involves a bucket that + is either a source or a destination in a replication rule. + + In replication, you have a source bucket on which you configure + replication and destination bucket or buckets where Amazon S3 stores + object replicas. When you request an object (`GetObject`) or object + metadata (`HeadObject`) from these buckets, Amazon S3 will return the + `x-amz-replication-status` header in the response as follows: + + - **If requesting an object from the source bucket**, Amazon S3 will + return the `x-amz-replication-status` header if the object in your + request is eligible for replication. + + For example, suppose that in your replication configuration, you + specify object prefix `TaxDocs` requesting Amazon S3 to replicate + objects with key prefix `TaxDocs`. Any objects you upload with this + key name prefix, for example `TaxDocs/document1.pdf`, are eligible for + replication. For any object request with this key name prefix, Amazon + S3 will return the `x-amz-replication-status` header with value + PENDING, COMPLETED or FAILED indicating object replication status. + + - **If requesting an object from a destination bucket**, Amazon S3 will + return the `x-amz-replication-status` header with value REPLICA if the + object in your request is a replica that Amazon S3 created and there + is no replica modification replication in progress. + + - **When replicating objects to multiple destination buckets**, the + `x-amz-replication-status` header acts differently. The header of the + source object will only return a value of COMPLETED when replication + is successful to all destinations. The header will remain at value + PENDING until replication has completed for all destinations. If one + or more destinations fails replication the header will return FAILED. + + For more information, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + + Note: + This functionality is not supported for directory buckets. + """ + parts_count: int | None = ... + """ + The count of parts this object has. This value is only returned if you + specify `partNumber` in your request and the object was uploaded as a + multipart upload. + """ + tag_count: int | None = ... + """ + The number of tags, if any, on the object, when you have the relevant + permission to read object tags. + + You can use + [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + to retrieve the tag set associated with an object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_mode: str | None = ... + """ + The Object Lock mode, if any, that's in effect for this object. This + header is only returned if the requester has the `s3:GetObjectRetention` + permission. For more information about S3 Object Lock, see [Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_retain_until_date: datetime | None = ... + """ + The date and time when the Object Lock retention period expires. This + header is only returned if the requester has the `s3:GetObjectRetention` + permission. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_legal_hold_status: str | None = ... + """ + Specifies whether a legal hold is in effect for this object. This header + is only returned if the requester has the `s3:GetObjectLegalHold` + permission. This header is not returned if the specified version of this + object has never had a legal hold applied. For more information about S3 + Object Lock, see [Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold: str | None = ... + """ + The event hold status for this object. This header is only returned if + the requester has the `s3:GetObjectRetention` permission. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_days: int | None = ... + """ + The event hold duration in days for this object. Only returned when the + event hold is enabled. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_years: int | None = ... + """ + The event hold duration in years for this object. Only returned when the + event hold is enabled. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IdempotencyParameterMismatch(ServiceError, _SerdeShape): + """ + Parameters on this idempotent request are inconsistent with parameters + used in previous request(s). + + For a list of error codes and more information on Amazon S3 errors, see + [Error + codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + + Note: + Idempotency ensures that an API request completes no more than one time. + With an idempotent request, if the original request completes + successfully, any subsequent retries complete successfully without + performing any further actions. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class IndexDocument(_SerdeShape): + """Container for the `Suffix` element.""" + + suffix: str + """ + A suffix that is appended to a request that is for a directory on the + website endpoint. (For example, if the suffix is `index.html` and you + make a request to `samplebucket/images/`, the data that is returned will + be for the object with the key name `images/index.html`.) The suffix + must not be empty and must not include a slash character. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + +@dataclass(kw_only=True) +class Initiator(_SerdeShape): + """Container element that identifies who initiated the multipart upload.""" + + id: str | None = ... + """ + If the principal is an Amazon Web Services account, it provides the + Canonical User ID. If the principal is an IAM User, it provides a user + ARN value. + + Note: + **Directory buckets** - If the principal is an Amazon Web Services + account, it provides the Amazon Web Services account ID. If the + principal is an IAM User, it provides a user ARN value. + """ + display_name: str | None = ... + """ + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class InputSerialization(_SerdeShape): + """Describes the serialization format of the object.""" + + csv: CSVInput | None = ... + """Describes the serialization of a CSV-encoded object.""" + compression_type: str | None = ... + """ + Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. + Default Value: NONE. + """ + json: JSONInput | None = ... + """Specifies JSON as object's input serialization format.""" + parquet: ParquetInput | None = ... + """Specifies Parquet as object's input serialization format.""" + +class IntelligentTieringAccessTier(UnknownEnumMixin, StrEnum): + ARCHIVE_ACCESS = "ARCHIVE_ACCESS" + DEEP_ARCHIVE_ACCESS = "DEEP_ARCHIVE_ACCESS" + +@dataclass(kw_only=True) +class IntelligentTieringAndOperator(_SerdeShape): + """ + A container for specifying S3 Intelligent-Tiering filters. The filters + determine the subset of objects to which the rule applies. + """ + + prefix: str | None = ... + """ + An object key name prefix that identifies the subset of objects to which + the configuration applies. + """ + tags: list[Tag] | None = ... + """ + All of these tags must exist in the object's tag set in order for the + configuration to apply. + """ + +@dataclass(kw_only=True) +class IntelligentTieringConfiguration(_SerdeShape): + """ + Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 + bucket. + + For information about the S3 Intelligent-Tiering storage class, see + [Storage class for automatically optimizing frequently and infrequently + accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). + """ + + id: str + """The ID used to identify the S3 Intelligent-Tiering configuration.""" + filter: IntelligentTieringFilter | None = ... + """ + Specifies a bucket filter. The configuration only includes objects that + meet the filter's criteria. + """ + status: str + """Specifies the status of the configuration.""" + tierings: list[Tiering] + """ + Specifies the S3 Intelligent-Tiering storage class tier of the + configuration. + """ + +@dataclass(kw_only=True) +class IntelligentTieringFilter(_SerdeShape): + """ + The `Filter` is used to identify objects that the S3 Intelligent-Tiering + configuration applies to. + """ + + prefix: str | None = ... + """ + An object key name prefix that identifies the subset of objects to which + the rule applies. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + tag: Tag | None = ... + """A container of a key value name pair.""" + and_: IntelligentTieringAndOperator | None = ... + """ + A conjunction (logical AND) of predicates, which is used in evaluating a + metrics filter. The operator must have at least two predicates, and an + object must match all of the predicates in order for the filter to + apply. + """ + +class IntelligentTieringStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class InvalidAnnotationName(ServiceError, _SerdeShape): + """The annotation name you provided is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidObjectState(ServiceError, _SerdeShape): + """ + Object is archived and inaccessible until restored. + + If the object you are retrieving is stored in the S3 Glacier Flexible + Retrieval storage class, the S3 Glacier Deep Archive storage class, the + S3 Intelligent-Tiering Archive Access tier, or the S3 + Intelligent-Tiering Deep Archive Access tier, before you can retrieve + the object you must first restore a copy using + [RestoreObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). + Otherwise, this operation returns an `InvalidObjectState` error. For + information about restoring archived objects, see [Restoring Archived + Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + in the *Amazon S3 User Guide*. + """ + + storage_class: str | None = ... + access_tier: str | None = ... + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidPrefix(ServiceError, _SerdeShape): + """The annotation prefix you provided is invalid.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidRequest(ServiceError, _SerdeShape): + """ + A parameter or header in your request isn't valid. For details, see the + description of this API operation. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidWriteOffset(ServiceError, _SerdeShape): + """ + The write offset value that you specified does not match the current + object size. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InventoryConfiguration(_SerdeShape): + """ + Specifies the S3 Inventory configuration for an Amazon S3 bucket. For + more information, see [GET Bucket + inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) + in the *Amazon S3 API Reference*. + """ + + destination: InventoryDestination + """Contains information about where to publish the inventory results.""" + is_enabled: bool + """ + Specifies whether the inventory is enabled or disabled. If set to + `True`, an inventory list is generated. If set to `False`, no inventory + list is generated. + """ + filter: InventoryFilter | None = ... + """ + Specifies an inventory filter. The inventory only includes objects that + meet the filter's criteria. + """ + id: str + """The ID used to identify the inventory configuration.""" + included_object_versions: str + """ + Object versions to include in the inventory list. If set to `All`, the + list includes all the object versions, which adds the version-related + fields `VersionId`, `IsLatest`, and `DeleteMarker` to the list. If set + to `Current`, the list does not contain these version-related fields. + """ + optional_fields: list[str] | None = ... + """ + Contains the optional fields that are included in the inventory results. + + Note: + The following optional fields are supported for directory buckets + `Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | EncryptionStatus | BucketKeyStatus | ChecksumAlgorithm | LifecycleExpirationDate.` + Throws MalformedXML error if unsupported optional field is provided. + """ + schedule: InventorySchedule + """Specifies the schedule for generating inventory results.""" + +class InventoryConfigurationState(UnknownEnumMixin, StrEnum): + ENABLED = "ENABLED" + DISABLED = "DISABLED" + +@dataclass(kw_only=True) +class InventoryDestination(_SerdeShape): + """Specifies the S3 Inventory configuration for an Amazon S3 bucket.""" + + s3_bucket_destination: InventoryS3BucketDestination + """ + Contains the bucket name, file format, bucket owner (optional), and + prefix (optional) where inventory results are published. + """ + +@dataclass(kw_only=True) +class InventoryEncryption(_SerdeShape): + """ + Contains the type of server-side encryption used to encrypt the S3 + Inventory results. + """ + + sses3: SSES3 | None = ... + """Specifies the use of SSE-S3 to encrypt delivered inventory reports.""" + ssekms: SSEKMS | None = ... + """Specifies the use of SSE-KMS to encrypt delivered inventory reports.""" + +@dataclass(kw_only=True) +class InventoryFilter(_SerdeShape): + """ + Specifies an S3 Inventory filter. The inventory only includes objects + that meet the filter's criteria. + """ + + prefix: str + """ + The prefix that an object must have to be included in the inventory + results. + """ + +class InventoryFormat(UnknownEnumMixin, StrEnum): + CSV = "CSV" + ORC = "ORC" + PARQUET = "Parquet" + +class InventoryFrequency(UnknownEnumMixin, StrEnum): + DAILY = "Daily" + WEEKLY = "Weekly" + +class InventoryIncludedObjectVersions(UnknownEnumMixin, StrEnum): + ALL = "All" + CURRENT = "Current" + +class InventoryOptionalField(UnknownEnumMixin, StrEnum): + SIZE = "Size" + LAST_MODIFIED_DATE = "LastModifiedDate" + STORAGE_CLASS = "StorageClass" + E_TAG = "ETag" + IS_MULTIPART_UPLOADED = "IsMultipartUploaded" + REPLICATION_STATUS = "ReplicationStatus" + ENCRYPTION_STATUS = "EncryptionStatus" + OBJECT_LOCK_RETAIN_UNTIL_DATE = "ObjectLockRetainUntilDate" + OBJECT_LOCK_MODE = "ObjectLockMode" + OBJECT_LOCK_LEGAL_HOLD_STATUS = "ObjectLockLegalHoldStatus" + OBJECT_LOCK_EVENT_HOLD_STATUS = "ObjectLockEventHoldStatus" + OBJECT_LOCK_EVENT_HOLD_DURATION = "ObjectLockEventHoldDuration" + INTELLIGENT_TIERING_ACCESS_TIER = "IntelligentTieringAccessTier" + BUCKET_KEY_STATUS = "BucketKeyStatus" + CHECKSUM_ALGORITHM = "ChecksumAlgorithm" + OBJECT_ACCESS_CONTROL_LIST = "ObjectAccessControlList" + OBJECT_OWNER = "ObjectOwner" + LIFECYCLE_EXPIRATION_DATE = "LifecycleExpirationDate" + INTELLIGENT_TIERING_REFERENCE_DATE = "IntelligentTieringReferenceDate" + +@dataclass(kw_only=True) +class InventoryS3BucketDestination(_SerdeShape): + """ + Contains the bucket name, file format, bucket owner (optional), and + prefix (optional) where S3 Inventory results are published. + """ + + account_id: str | None = ... + """ + The account ID that owns the destination S3 bucket. If no account ID is + provided, the owner is not validated before exporting data. + + Note: + Although this value is optional, we strongly recommend that you set it + to help prevent problems if the destination bucket ownership changes. + """ + bucket: str + """ + The Amazon Resource Name (ARN) of the bucket where inventory results + will be published. + """ + format: str + """Specifies the output format of the inventory results.""" + prefix: str | None = ... + """The prefix that is prepended to all inventory results.""" + encryption: InventoryEncryption | None = ... + """ + Contains the type of server-side encryption used to encrypt the + inventory results. + """ + +@dataclass(kw_only=True) +class InventorySchedule(_SerdeShape): + """Specifies the schedule for generating S3 Inventory results.""" + + frequency: str + """Specifies how frequently inventory results are produced.""" + +@dataclass(kw_only=True) +class InventoryTableConfiguration(_SerdeShape): + """The inventory table configuration for an S3 Metadata configuration.""" + + configuration_state: str + """ + The configuration state of the inventory table, indicating whether the + inventory table is enabled or disabled. + """ + encryption_configuration: MetadataTableEncryptionConfiguration | None = ... + """The encryption configuration for the inventory table.""" + +@dataclass(kw_only=True) +class InventoryTableConfigurationResult(_SerdeShape): + """The inventory table configuration for an S3 Metadata configuration.""" + + configuration_state: str + """ + The configuration state of the inventory table, indicating whether the + inventory table is enabled or disabled. + """ + table_status: str | None = ... + """ + The status of the inventory table. The status values are: + + - `CREATING` - The inventory table is in the process of being created in + the specified Amazon Web Services managed table bucket. + + - `BACKFILLING` - The inventory table is in the process of being + backfilled. When you enable the inventory table for your metadata + configuration, the table goes through a process known as backfilling, + during which Amazon S3 scans your general purpose bucket to retrieve + the initial metadata for all objects in the bucket. Depending on the + number of objects in your bucket, this process can take several hours. + When the backfilling process is finished, the status of your inventory + table changes from `BACKFILLING` to `ACTIVE`. After backfilling is + completed, updates to your objects are reflected in the inventory + table within one hour. + + - `ACTIVE` - The inventory table has been created successfully, and + records are being delivered to the table. + + - `FAILED` - Amazon S3 is unable to create the inventory table, or + Amazon S3 is unable to deliver records. + """ + error: ErrorDetails | None = ... + """ + If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2 + `CreateBucketMetadataConfiguration` request succeeds, but S3 Metadata + was unable to create the table, this structure contains the error code + and error message. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + table_name: str | None = ... + """The name of the inventory table.""" + table_arn: str | None = ... + """The Amazon Resource Name (ARN) for the inventory table.""" + +@dataclass(kw_only=True) +class InventoryTableConfigurationUpdates(_SerdeShape): + """The specified updates to the S3 Metadata inventory table configuration.""" + + configuration_state: str + """ + The configuration state of the inventory table, indicating whether the + inventory table is enabled or disabled. + """ + encryption_configuration: MetadataTableEncryptionConfiguration | None = ... + """The encryption configuration for the inventory table.""" + +@dataclass(kw_only=True) +class JournalTableConfiguration(_SerdeShape): + """The journal table configuration for an S3 Metadata configuration.""" + + record_expiration: RecordExpiration + """The journal table record expiration settings for the journal table.""" + encryption_configuration: MetadataTableEncryptionConfiguration | None = ... + """The encryption configuration for the journal table.""" + +@dataclass(kw_only=True) +class JournalTableConfigurationResult(_SerdeShape): + """The journal table configuration for the S3 Metadata configuration.""" + + table_status: str + """ + The status of the journal table. The status values are: + + - `CREATING` - The journal table is in the process of being created in + the specified table bucket. + + - `ACTIVE` - The journal table has been created successfully, and + records are being delivered to the table. + + - `FAILED` - Amazon S3 is unable to create the journal table, or Amazon + S3 is unable to deliver records. + """ + error: ErrorDetails | None = ... + """ + If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2 + `CreateBucketMetadataConfiguration` request succeeds, but S3 Metadata + was unable to create the table, this structure contains the error code + and error message. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + table_name: str + """The name of the journal table.""" + table_arn: str | None = ... + """The Amazon Resource Name (ARN) for the journal table.""" + record_expiration: RecordExpiration + """The journal table record expiration settings for the journal table.""" + +@dataclass(kw_only=True) +class JournalTableConfigurationUpdates(_SerdeShape): + """The specified updates to the S3 Metadata journal table configuration.""" + + record_expiration: RecordExpiration + """The journal table record expiration settings for the journal table.""" + +@dataclass(kw_only=True) +class JSONInput(_SerdeShape): + """Specifies JSON as object's input serialization format.""" + + type: str | None = ... + """The type of JSON. Valid values: Document, Lines.""" + +@dataclass(kw_only=True) +class JSONOutput(_SerdeShape): + """Specifies JSON as request's output serialization format.""" + + record_delimiter: str | None = ... + """ + The value used to separate individual records in the output. If no value + is specified, Amazon S3 uses a newline character ('\\n'). + """ + +class JSONType(UnknownEnumMixin, StrEnum): + DOCUMENT = "DOCUMENT" + LINES = "LINES" + +@dataclass(kw_only=True) +class LambdaFunctionConfiguration(_SerdeShape): + """A container for specifying the configuration for Lambda notifications.""" + + id: str | None = ... + """ + An optional unique identifier for configurations in a notification + configuration. If you don't provide one, Amazon S3 will assign an ID. + """ + lambda_function_arn: str + """ + The Amazon Resource Name (ARN) of the Lambda function that Amazon S3 + invokes when the specified event type occurs. + """ + events: list[str] + """ + The Amazon S3 bucket event for which to invoke the Lambda function. For + more information, see [Supported Event + Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + in the *Amazon S3 User Guide*. + """ + filter: NotificationConfigurationFilter | None = ... + """ + Specifies object key name filtering rules. For information about key + name filtering, see [Configuring event notifications using object key + name + filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class LifecycleExpiration(_SerdeShape): + """ + Container for the expiration for the lifecycle of the object. + + For more information see, [Managing your storage + lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) + in the *Amazon S3 User Guide*. + """ + + date: datetime | None = ... + """ + Indicates at what date the object is to be moved or deleted. The date + value must conform to the ISO 8601 format. The time is always midnight + UTC. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + days: int | None = ... + """ + Indicates the lifetime, in days, of the objects that are subject to the + rule. The value must be a non-zero positive integer. + """ + expired_object_delete_marker: bool | None = ... + """ + Indicates whether Amazon S3 will remove a delete marker with no + noncurrent versions. If set to true, the delete marker will be expired; + if set to false the policy takes no action. This cannot be specified + with Days or Date in a Lifecycle Expiration Policy. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + +@dataclass(kw_only=True) +class LifecycleRule(_SerdeShape): + """ + A lifecycle rule for individual objects in an Amazon S3 bucket. + + For more information see, [Managing your storage + lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) + in the *Amazon S3 User Guide*. + """ + + expiration: LifecycleExpiration | None = ... + """ + Specifies the expiration for the lifecycle of the object in the form of + date, days and, whether the object has a delete marker. + """ + id: str | None = ... + """ + Unique identifier for the rule. The value cannot be longer than 255 + characters. + """ + prefix: str | None = ... + """ + The general purpose bucket prefix that identifies one or more objects to + which the rule applies. We recommend using `Filter` instead of `Prefix` + for new PUTs. Previous configurations where a prefix is defined will + continue to operate as before. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + filter: LifecycleRuleFilter | None = ... + """ + The `Filter` is used to identify objects that a Lifecycle Rule applies + to. A `Filter` must have exactly one of `Prefix`, `Tag`, + `ObjectSizeGreaterThan`, `ObjectSizeLessThan`, or `And` specified. + `Filter` is required if the `LifecycleRule` does not contain a `Prefix` + element. + + For more information about `Tag` filters, see [Adding filters to + Lifecycle + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html) + in the *Amazon S3 User Guide*. + + Note: + `Tag` filters are not supported for directory buckets. + """ + status: str + """ + If 'Enabled', the rule is currently being applied. If 'Disabled', + the rule is not currently being applied. + """ + transitions: list[Transition] | None = ... + """ + Specifies when an Amazon S3 object transitions to a specified storage + class. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + noncurrent_version_transitions: list[NoncurrentVersionTransition] | None = ... + """ + Specifies the transition rule for the lifecycle rule that describes when + noncurrent objects transition to a specific storage class. If your + bucket is versioning-enabled (or versioning is suspended), you can set + this action to request that Amazon S3 transition noncurrent object + versions to a specific storage class at a set period in the object's + lifetime. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + noncurrent_version_expiration: NoncurrentVersionExpiration | None = ... + """ + Specifies when noncurrent object versions expire. Upon expiration, + Amazon S3 permanently deletes the noncurrent object versions. You set + this lifecycle configuration action on a bucket that has versioning + enabled (or suspended) to request that Amazon S3 delete noncurrent + object versions at a specific period in the object's lifetime. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + abort_incomplete_multipart_upload: AbortIncompleteMultipartUpload | None = ... + """ + Specifies the days since the initiation of an incomplete multipart + upload that Amazon S3 will wait before permanently removing all parts of + the upload. For more information, see [Aborting Incomplete Multipart + Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class LifecycleRuleAndOperator(_SerdeShape): + """ + This is used in a Lifecycle Rule Filter to apply a logical AND to two or + more predicates. The Lifecycle Rule will apply to any object matching + all of the predicates configured inside the And operator. + """ + + prefix: str | None = ... + """Prefix identifying one or more objects to which the rule applies.""" + tags: list[Tag] | None = ... + """ + All of these tags must exist in the object's tag set in order for the + rule to apply. + """ + object_size_greater_than: int | None = ... + """Minimum object size to which the rule applies.""" + object_size_less_than: int | None = ... + """Maximum object size to which the rule applies.""" + +@dataclass(kw_only=True) +class LifecycleRuleFilter(_SerdeShape): + """ + The `Filter` is used to identify objects that a Lifecycle Rule applies + to. A `Filter` can have exactly one of `Prefix`, `Tag`, + `ObjectSizeGreaterThan`, `ObjectSizeLessThan`, or `And` specified. If + the `Filter` element is left empty, the Lifecycle Rule applies to all + objects in the bucket. + """ + + prefix: str | None = ... + """ + Prefix identifying one or more objects to which the rule applies. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + tag: Tag | None = ... + """ + This tag must exist in the object's tag set in order for the rule to + apply. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + object_size_greater_than: int | None = ... + """Minimum object size to which the rule applies.""" + object_size_less_than: int | None = ... + """Maximum object size to which the rule applies.""" + and_: LifecycleRuleAndOperator | None = ... + """ + This is used in a Lifecycle Rule Filter to apply a logical AND to two or + more predicates. The Lifecycle Rule will apply to any object matching + all of the predicates configured inside the And operator. + """ + +@dataclass(kw_only=True) +class ListBucketAnalyticsConfigurationsInput(_SerdeShape): + """Dataclass for ListBucketAnalyticsConfigurationsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket from which analytics configurations are + retrieved. + """ + continuation_token: str | None = ... + """ + The `ContinuationToken` that represents a placeholder from where this + request should begin. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class ListBucketAnalyticsConfigurationsOutput(_SerdeShape): + """Dataclass for ListBucketAnalyticsConfigurationsOutput structure.""" + + is_truncated: bool | None = ... + """ + Indicates whether the returned list of analytics configurations is + complete. A value of true indicates that the list is not complete and + the NextContinuationToken will be provided for a subsequent request. + """ + continuation_token: str | None = ... + """ + The marker that is used as a starting point for this analytics + configuration list response. This value is present if it was sent in the + request. + """ + next_continuation_token: str | None = ... + """ + `NextContinuationToken` is sent when `isTruncated` is true, which + indicates that there are more analytics configurations to list. The next + request must include this `NextContinuationToken`. The token is + obfuscated and is not a usable value. + """ + analytics_configuration_list: list[AnalyticsConfiguration] | None = ... + """The list of analytics configurations for a bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListBucketIntelligentTieringConfigurationsInput(_SerdeShape): + """Dataclass for ListBucketIntelligentTieringConfigurationsInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose configuration you want to modify + or retrieve. + """ + continuation_token: str | None = ... + """ + The `ContinuationToken` that represents a placeholder from where this + request should begin. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class ListBucketIntelligentTieringConfigurationsOutput(_SerdeShape): + """ + Dataclass for ListBucketIntelligentTieringConfigurationsOutput + structure. + """ + + is_truncated: bool | None = ... + """ + Indicates whether the returned list of analytics configurations is + complete. A value of `true` indicates that the list is not complete and + the `NextContinuationToken` will be provided for a subsequent request. + """ + continuation_token: str | None = ... + """ + The `ContinuationToken` that represents a placeholder from where this + request should begin. + """ + next_continuation_token: str | None = ... + """ + The marker used to continue this inventory configuration listing. Use + the `NextContinuationToken` from this response to continue the listing + in a subsequent request. The continuation token is an opaque value that + Amazon S3 understands. + """ + intelligent_tiering_configuration_list: ( + list[IntelligentTieringConfiguration] | None + ) = ... + """The list of S3 Intelligent-Tiering configurations for a bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListBucketInventoryConfigurationsInput(_SerdeShape): + """Dataclass for ListBucketInventoryConfigurationsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the inventory configurations to + retrieve. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + continuation_token: str | None = ... + """ + The marker used to continue an inventory configuration listing that has + been truncated. Use the `NextContinuationToken` from a previously + truncated list response to continue the listing. The continuation token + is an opaque value that Amazon S3 understands. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class ListBucketInventoryConfigurationsOutput(_SerdeShape): + """Dataclass for ListBucketInventoryConfigurationsOutput structure.""" + + continuation_token: str | None = ... + """ + If sent in the request, the marker that is used as a starting point for + this inventory configuration list response. + """ + inventory_configuration_list: list[InventoryConfiguration] | None = ... + """The list of inventory configurations for a bucket.""" + is_truncated: bool | None = ... + """ + Tells whether the returned list of inventory configurations is complete. + A value of true indicates that the list is not complete and the + NextContinuationToken is provided for a subsequent request. + """ + next_continuation_token: str | None = ... + """ + The marker used to continue this inventory configuration listing. Use + the `NextContinuationToken` from this response to continue the listing + in a subsequent request. The continuation token is an opaque value that + Amazon S3 understands. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListBucketMetricsConfigurationsInput(_SerdeShape): + """Dataclass for ListBucketMetricsConfigurationsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the metrics configurations to + retrieve. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + continuation_token: str | None = ... + """ + The marker that is used to continue a metrics configuration listing that + has been truncated. Use the `NextContinuationToken` from a previously + truncated list response to continue the listing. The continuation token + is an opaque value that Amazon S3 understands. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class ListBucketMetricsConfigurationsOutput(_SerdeShape): + """Dataclass for ListBucketMetricsConfigurationsOutput structure.""" + + is_truncated: bool | None = ... + """ + Indicates whether the returned list of metrics configurations is + complete. A value of true indicates that the list is not complete and + the NextContinuationToken will be provided for a subsequent request. + """ + continuation_token: str | None = ... + """ + The marker that is used as a starting point for this metrics + configuration list response. This value is present if it was sent in the + request. + """ + next_continuation_token: str | None = ... + """ + The marker used to continue a metrics configuration listing that has + been truncated. Use the `NextContinuationToken` from a previously + truncated list response to continue the listing. The continuation token + is an opaque value that Amazon S3 understands. + """ + metrics_configuration_list: list[MetricsConfiguration] | None = ... + """The list of metrics configurations for a bucket.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListBucketsInput(_SerdeShape): + """Dataclass for ListBucketsInput structure.""" + + max_buckets: int | None = ... + """ + Maximum number of buckets to be returned in response. When the number is + more than the count of buckets that are owned by an Amazon Web Services + account, return all the buckets in response. + """ + continuation_token: str | None = ... + """ + `ContinuationToken` indicates to Amazon S3 that the list is being + continued on this bucket with a token. `ContinuationToken` is obfuscated + and is not a real key. You can use this `ContinuationToken` for + pagination of the list results. + + Length Constraints: Minimum length of 0. Maximum length of 1024. + + Required: No. + + Note: + If you specify the `bucket-region`, `prefix`, or `continuation-token` + query parameters without using `max-buckets` to set the maximum number + of buckets returned in the response, Amazon S3 applies a default page + size of 10,000 and provides a continuation token if there are more + buckets. + """ + prefix: str | None = ... + """ + Limits the response to bucket names that begin with the specified bucket + name prefix. + """ + bucket_region: str | None = ... + """ + Limits the response to buckets that are located in the specified Amazon + Web Services Region. The Amazon Web Services Region must be expressed + according to the Amazon Web Services Region code, such as `us-west-2` + for the US West (Oregon) Region. For a list of the valid values for all + of the Amazon Web Services Regions, see [Regions and + Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). + + Note: + Requests made to a Regional endpoint that is different from the + `bucket-region` parameter are not supported. For example, if you want to + limit the response to your buckets in Region `us-west-2`, the request + must be made to an endpoint in Region `us-west-2`. + """ + +@dataclass(kw_only=True) +class ListBucketsOutput(_SerdeShape): + """Dataclass for ListBucketsOutput structure.""" + + buckets: list[Bucket] | None = ... + """The list of buckets owned by the requester.""" + owner: Owner | None = ... + """The owner of the buckets listed.""" + continuation_token: str | None = ... + """ + `ContinuationToken` is included in the response when there are more + buckets that can be listed with pagination. The next `ListBuckets` + request to Amazon S3 can be continued with this `ContinuationToken`. + `ContinuationToken` is obfuscated and is not a real bucket. + """ + prefix: str | None = ... + """ + If `Prefix` was sent with the request, it is included in the response. + + All bucket names in the response begin with the specified bucket name + prefix. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListDirectoryBucketsInput(_SerdeShape): + """Dataclass for ListDirectoryBucketsInput structure.""" + + continuation_token: str | None = ... + """ + `ContinuationToken` indicates to Amazon S3 that the list is being + continued on buckets in this account with a token. `ContinuationToken` + is obfuscated and is not a real bucket name. You can use this + `ContinuationToken` for the pagination of the list results. + """ + max_directory_buckets: int | None = ... + """ + Maximum number of buckets to be returned in response. When the number is + more than the count of buckets that are owned by an Amazon Web Services + account, return all the buckets in response. + """ + +@dataclass(kw_only=True) +class ListDirectoryBucketsOutput(_SerdeShape): + """Dataclass for ListDirectoryBucketsOutput structure.""" + + buckets: list[Bucket] | None = ... + """The list of buckets owned by the requester.""" + continuation_token: str | None = ... + """ + If `ContinuationToken` was sent with the request, it is included in the + response. You can use the returned `ContinuationToken` for pagination of + the list response. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListMultipartUploadsInput(_SerdeShape): + """Dataclass for ListMultipartUploadsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket to which the multipart upload was initiated. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + delimiter: str | None = ... + """ + Character you use to group keys. + + All keys that contain the same string between the prefix, if specified, + and the first occurrence of the delimiter after the prefix are grouped + under a single result element, `CommonPrefixes`. If you don't specify + the prefix parameter, then the substring starts at the beginning of the + key. The keys that are grouped under `CommonPrefixes` result element are + not returned elsewhere in the response. + + `CommonPrefixes` is filtered out from results if it is not + lexicographically greater than the key-marker. + + Note: + **Directory buckets** - For directory buckets, `/` is the only supported + delimiter. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + key_marker: str | None = ... + """ + Specifies the multipart upload after which listing should begin. + + Note: + - **General purpose buckets** - For general purpose buckets, + `key-marker` is an object key. Together with `upload-id-marker`, this + parameter specifies the multipart upload after which listing should + begin. + + If `upload-id-marker` is not specified, only the keys + lexicographically greater than the specified `key-marker` will be + included in the list. + + If `upload-id-marker` is specified, any multipart uploads for a key + equal to the `key-marker` might also be included, provided those + multipart uploads have upload IDs lexicographically greater than the + specified `upload-id-marker`. + + - **Directory buckets** - For directory buckets, `key-marker` is + obfuscated and isn't a real object key. The `upload-id-marker` + parameter isn't supported by directory buckets. To list the + additional multipart uploads, you only need to set the value of + `key-marker` to the `NextKeyMarker` value from the previous response. + + In the `ListMultipartUploads` response, the multipart uploads aren't + sorted lexicographically based on the object keys. + """ + max_uploads: int | None = ... + """ + Sets the maximum number of multipart uploads, from 1 to 1,000, to return + in the response body. 1,000 is the maximum number of uploads that can be + returned in a response. + """ + prefix: str | None = ... + """ + Lists in-progress uploads only for those keys that begin with the + specified prefix. You can use prefixes to separate a bucket into + different grouping of keys. (You can think of using `prefix` to make + groups in the same way that you'd use a folder in a file system.) + + Note: + **Directory buckets** - For directory buckets, only prefixes that end in + a delimiter (`/`) are supported. + """ + upload_id_marker: str | None = ... + """ + Together with key-marker, specifies the multipart upload after which + listing should begin. If key-marker is not specified, the + upload-id-marker parameter is ignored. Otherwise, any multipart uploads + for a key equal to the key-marker might be included in the list only if + they have an upload ID lexicographically greater than the specified + `upload-id-marker`. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class ListMultipartUploadsOutput(_SerdeShape): + """Dataclass for ListMultipartUploadsOutput structure.""" + + bucket: str | None = ... + """ + The name of the bucket to which the multipart upload was initiated. Does + not return the access point ARN or access point alias if used. + """ + key_marker: str | None = ... + """The key at or after which the listing began.""" + upload_id_marker: str | None = ... + """ + Together with key-marker, specifies the multipart upload after which + listing should begin. If key-marker is not specified, the + upload-id-marker parameter is ignored. Otherwise, any multipart uploads + for a key equal to the key-marker might be included in the list only if + they have an upload ID lexicographically greater than the specified + `upload-id-marker`. + + Note: + This functionality is not supported for directory buckets. + """ + next_key_marker: str | None = ... + """ + When a list is truncated, this element specifies the value that should + be used for the key-marker request parameter in a subsequent request. + """ + prefix: str | None = ... + """ + When a prefix is provided in the request, this field contains the + specified prefix. The result contains only keys starting with the + specified prefix. + + Note: + **Directory buckets** - For directory buckets, only prefixes that end in + a delimiter (`/`) are supported. + """ + delimiter: str | None = ... + """ + Contains the delimiter you specified in the request. If you don't + specify a delimiter in your request, this element is absent from the + response. + + Note: + **Directory buckets** - For directory buckets, `/` is the only supported + delimiter. + """ + next_upload_id_marker: str | None = ... + """ + When a list is truncated, this element specifies the value that should + be used for the `upload-id-marker` request parameter in a subsequent + request. + + Note: + This functionality is not supported for directory buckets. + """ + max_uploads: int | None = ... + """ + Maximum number of multipart uploads that could have been included in the + response. + """ + is_truncated: bool | None = ... + """ + Indicates whether the returned list of multipart uploads is truncated. A + value of true indicates that the list was truncated. The list can be + truncated if the number of multipart uploads exceeds the limit allowed + or specified by max uploads. + """ + uploads: list[MultipartUpload] | None = ... + """ + Container for elements related to a particular multipart upload. A + response can contain zero or more `Upload` elements. + """ + common_prefixes: list[CommonPrefix] | None = ... + """ + If you specify a delimiter in the request, then the result returns each + distinct key prefix containing the delimiter in a `CommonPrefixes` + element. The distinct key prefixes are returned in the `Prefix` child + element. + + Note: + **Directory buckets** - For directory buckets, only prefixes that end in + a delimiter (`/`) are supported. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode object keys in the response. + + If you specify the `encoding-type` request parameter, Amazon S3 includes + this element in the response, and returns encoded key name values in the + following response elements: + + `Delimiter`, `KeyMarker`, `Prefix`, `NextKeyMarker`, `Key`. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListObjectAnnotationsInput(_SerdeShape): + """Dataclass for ListObjectAnnotationsInput structure.""" + + bucket: str | None = ... + """The name of the bucket that contains the object.""" + key: str | None = ... + """The object key.""" + version_id: str | None = ... + """The version ID of the object.""" + max_annotation_results: int | None = ... + """ + The maximum number of annotations to return in the response. Maximum is + 1,000. + """ + annotation_prefix: str | None = ... + """ + Filter results to annotations whose name begins with the specified + prefix. + """ + continuation_token: str | None = ... + """ + Continuation token returned by a previous request to retrieve the next + page. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """The account ID of the expected bucket owner.""" + +@dataclass(kw_only=True) +class ListObjectAnnotationsOutput(_SerdeShape): + """Dataclass for ListObjectAnnotationsOutput structure.""" + + annotations: list[AnnotationEntry] | None = ... + """The list of annotations attached to the object.""" + bucket: str | None = ... + """The bucket name.""" + key: str | None = ... + """The object key.""" + object_version_id: str | None = ... + """The version ID of the object.""" + annotation_prefix: str | None = ... + """The prefix used to filter the response.""" + max_annotation_results: int | None = ... + """The maximum number of annotations returned in the response.""" + annotation_count: int | None = ... + """The number of annotations returned.""" + continuation_token: str | None = ... + """The continuation token used in this request.""" + next_continuation_token: str | None = ... + """The continuation token to use to retrieve the next page of results.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListObjectsInput(_SerdeShape): + """Dataclass for ListObjectsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket containing the objects. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + delimiter: str | None = ... + """ + A delimiter is a character that you use to group keys. + + `CommonPrefixes` is filtered out from results if it is not + lexicographically greater than the key-marker. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + marker: str | None = ... + """ + Marker is where you want Amazon S3 to start listing from. Amazon S3 + starts listing after this specified key. Marker can be any key in the + bucket. + """ + max_keys: int | None = ... + """ + Sets the maximum number of keys returned in the response. By default, + the action returns up to 1,000 key names. The response might contain + fewer keys but will never contain more. + """ + prefix: str | None = ... + """Limits the response to keys that begin with the specified prefix.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that she or he will be charged for the + list objects request. Bucket owners need not specify this parameter in + their requests. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + optional_object_attributes: list[str] | None = ... + """ + Specifies the optional fields that you want returned in the response. + Fields that you do not specify are not returned. + """ + +@dataclass(kw_only=True) +class ListObjectsOutput(_SerdeShape): + """Dataclass for ListObjectsOutput structure.""" + + is_truncated: bool | None = ... + """ + A flag that indicates whether Amazon S3 returned all of the results that + satisfied the search criteria. + """ + marker: str | None = ... + """ + Indicates where in the bucket listing begins. Marker is included in the + response if it was sent with the request. + """ + next_marker: str | None = ... + """ + When the response is truncated (the `IsTruncated` element value in the + response is `true`), you can use the key name in this field as the + `marker` parameter in the subsequent request to get the next set of + objects. Amazon S3 lists objects in alphabetical order. + + Note: + This element is returned only if you have the `delimiter` request + parameter specified. If the response does not include the `NextMarker` + element and it is truncated, you can use the value of the last `Key` + element in the response as the `marker` parameter in the subsequent + request to get the next set of object keys. + """ + contents: list[Object] | None = ... + """Metadata about each object returned.""" + name: str | None = ... + """The bucket name.""" + prefix: str | None = ... + """Keys that begin with the indicated prefix.""" + delimiter: str | None = ... + """ + Causes keys that contain the same string between the prefix and the + first occurrence of the delimiter to be rolled up into a single result + element in the `CommonPrefixes` collection. These rolled-up keys are not + returned elsewhere in the response. Each rolled-up result counts as only + one return against the `MaxKeys` value. + """ + max_keys: int | None = ... + """The maximum number of keys returned in the response body.""" + common_prefixes: list[CommonPrefix] | None = ... + """ + All of the keys (up to 1,000) rolled up in a common prefix count as a + single return when calculating the number of returns. + + A response can contain `CommonPrefixes` only if you specify a delimiter. + + `CommonPrefixes` contains all (if there are any) keys between `Prefix` + and the next occurrence of the string specified by the delimiter. + + `CommonPrefixes` lists keys that act like subdirectories in the + directory specified by `Prefix`. + + For example, if the prefix is `notes/` and the delimiter is a slash + (`/`), as in `notes/summer/july`, the common prefix is `notes/summer/`. + All of the keys that roll up into a common prefix count as a single + return when calculating the number of returns. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListObjectsV2Input(_SerdeShape): + """Dataclass for ListObjectsV2Input structure.""" + + bucket: str | None = ... + """ + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + delimiter: str | None = ... + """ + A delimiter is a character that you use to group keys. + + `CommonPrefixes` is filtered out from results if it is not + lexicographically greater than the `StartAfter` value. + + Note: + - **Directory buckets** - For directory buckets, `/` is the only + supported delimiter. + + - **Directory buckets** - When you query `ListObjectsV2` with a + delimiter during in-progress multipart uploads, the `CommonPrefixes` + response parameter contains the prefixes that are associated with the + in-progress multipart uploads. For more information about multipart + uploads, see [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide*. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + max_keys: int | None = ... + """ + Sets the maximum number of keys returned in the response. By default, + the action returns up to 1,000 key names. The response might contain + fewer keys but will never contain more. + """ + prefix: str | None = ... + """ + Limits the response to keys that begin with the specified prefix. + + Note: + **Directory buckets** - For directory buckets, only prefixes that end in + a delimiter (`/`) are supported. + """ + continuation_token: str | None = ... + """ + `ContinuationToken` indicates to Amazon S3 that the list is being + continued on this bucket with a token. `ContinuationToken` is obfuscated + and is not a real key. You can use this `ContinuationToken` for + pagination of the list results. + """ + fetch_owner: bool | None = ... + """ + The owner field is not present in `ListObjectsV2` by default. If you + want to return the owner field with each key in the result, then set the + `FetchOwner` field to `true`. + + Note: + **Directory buckets** - For directory buckets, the bucket owner is + returned as the object owner for all objects. + """ + start_after: str | None = ... + """ + StartAfter is where you want Amazon S3 to start listing from. Amazon S3 + starts listing after this specified key. StartAfter can be any key in + the bucket. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that she or he will be charged for the + list objects request in V2 style. Bucket owners need not specify this + parameter in their requests. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + optional_object_attributes: list[str] | None = ... + """ + Specifies the optional fields that you want returned in the response. + Fields that you do not specify are not returned. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class ListObjectsV2Output(_SerdeShape): + """Dataclass for ListObjectsV2Output structure.""" + + is_truncated: bool | None = ... + """ + Set to `false` if all of the results were returned. Set to `true` if + more keys are available to return. If the number of results exceeds that + specified by `MaxKeys`, all of the results might not be returned. + """ + contents: list[Object] | None = ... + """Metadata about each object returned.""" + name: str | None = ... + """The bucket name.""" + prefix: str | None = ... + """ + Keys that begin with the indicated prefix. + + Note: + **Directory buckets** - For directory buckets, only prefixes that end in + a delimiter (`/`) are supported. + """ + delimiter: str | None = ... + """ + Causes keys that contain the same string between the `prefix` and the + first occurrence of the delimiter to be rolled up into a single result + element in the `CommonPrefixes` collection. These rolled-up keys are not + returned elsewhere in the response. Each rolled-up result counts as only + one return against the `MaxKeys` value. + + Note: + **Directory buckets** - For directory buckets, `/` is the only supported + delimiter. + """ + max_keys: int | None = ... + """ + Sets the maximum number of keys returned in the response. By default, + the action returns up to 1,000 key names. The response might contain + fewer keys but will never contain more. + """ + common_prefixes: list[CommonPrefix] | None = ... + """ + All of the keys (up to 1,000) that share the same prefix are grouped + together. When counting the total numbers of returns by this API + operation, this group of keys is considered as one item. + + A response can contain `CommonPrefixes` only if you specify a delimiter. + + `CommonPrefixes` contains all (if there are any) keys between `Prefix` + and the next occurrence of the string specified by a delimiter. + + `CommonPrefixes` lists keys that act like subdirectories in the + directory specified by `Prefix`. + + For example, if the prefix is `notes/` and the delimiter is a slash + (`/`) as in `notes/summer/july`, the common prefix is `notes/summer/`. + All of the keys that roll up into a common prefix count as a single + return when calculating the number of returns. + + Note: + - **Directory buckets** - For directory buckets, only prefixes that end + in a delimiter (`/`) are supported. + + - **Directory buckets** - When you query `ListObjectsV2` with a + delimiter during in-progress multipart uploads, the `CommonPrefixes` + response parameter contains the prefixes that are associated with the + in-progress multipart uploads. For more information about multipart + uploads, see [Multipart Upload + Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) + in the *Amazon S3 User Guide*. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode object key names in the XML + response. + + If you specify the `encoding-type` request parameter, Amazon S3 includes + this element in the response, and returns encoded key name values in the + following response elements: + + `Delimiter, Prefix, Key,` and `StartAfter`. + """ + key_count: int | None = ... + """ + `KeyCount` is the number of keys returned with this request. `KeyCount` + will always be less than or equal to the `MaxKeys` field. For example, + if you ask for 50 keys, your result will include 50 keys or fewer. + """ + continuation_token: str | None = ... + """ + If `ContinuationToken` was sent with the request, it is included in the + response. You can use the returned `ContinuationToken` for pagination of + the list response. + """ + next_continuation_token: str | None = ... + """ + `NextContinuationToken` is sent when `isTruncated` is true, which means + there are more keys in the bucket that can be listed. The next list + requests to Amazon S3 can be continued with this + `NextContinuationToken`. `NextContinuationToken` is obfuscated and is + not a real key + """ + start_after: str | None = ... + """ + If StartAfter was sent with the request, it is included in the response. + + Note: + This functionality is not supported for directory buckets. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListObjectVersionsInput(_SerdeShape): + """Dataclass for ListObjectVersionsInput structure.""" + + bucket: str | None = ... + """The bucket name that contains the objects.""" + delimiter: str | None = ... + """ + A delimiter is a character that you specify to group keys. All keys that + contain the same string between the `prefix` and the first occurrence of + the delimiter are grouped under a single result element in + `CommonPrefixes`. These groups are counted as one result against the + `max-keys` limitation. These keys are not returned elsewhere in the + response. + + `CommonPrefixes` is filtered out from results if it is not + lexicographically greater than the key-marker. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode the [object + keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) + in the response. Responses are encoded only in UTF-8. An object key can + contain any Unicode character. However, the XML 1.0 parser can't parse + certain characters, such as characters with an ASCII value from 0 to 10. + For characters that aren't supported in XML 1.0, you can add this + parameter to request that Amazon S3 encode the keys in the response. For + more information about characters to avoid in object key names, see + [Object key naming + guidelines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines). + + Note: + When using the URL encoding type, non-ASCII characters that are used in + an object's key name will be percent-encoded according to UTF-8 code + values. For example, the object `test_file(3).png` will appear as + `test_file%283%29.png`. + """ + key_marker: str | None = ... + """Specifies the key to start with when listing objects in a bucket.""" + max_keys: int | None = ... + """ + Sets the maximum number of keys returned in the response. By default, + the action returns up to 1,000 key names. The response might contain + fewer keys but will never contain more. If additional keys satisfy the + search criteria, but were not returned because `max-keys` was exceeded, + the response contains + ``{=html}`true```{=html}. To return the + additional keys, see `key-marker` and `version-id-marker`. + """ + prefix: str | None = ... + """ + Use this parameter to select only those keys that begin with the + specified prefix. You can use prefixes to separate a bucket into + different groupings of keys. (You can think of using `prefix` to make + groups in the same way that you'd use a folder in a file system.) You + can use `prefix` with `delimiter` to roll up numerous objects into a + single result under `CommonPrefixes`. + """ + version_id_marker: str | None = ... + """Specifies the object version you want to start listing from.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + optional_object_attributes: list[str] | None = ... + """ + Specifies the optional fields that you want returned in the response. + Fields that you do not specify are not returned. + """ + +@dataclass(kw_only=True) +class ListObjectVersionsOutput(_SerdeShape): + """Dataclass for ListObjectVersionsOutput structure.""" + + is_truncated: bool | None = ... + """ + A flag that indicates whether Amazon S3 returned all of the results that + satisfied the search criteria. If your results were truncated, you can + make a follow-up paginated request by using the `NextKeyMarker` and + `NextVersionIdMarker` response parameters as a starting place in another + request to return the rest of the results. + """ + key_marker: str | None = ... + """Marks the last key returned in a truncated response.""" + version_id_marker: str | None = ... + """Marks the last version of the key returned in a truncated response.""" + next_key_marker: str | None = ... + """ + When the number of responses exceeds the value of `MaxKeys`, + `NextKeyMarker` specifies the first key not returned that satisfies the + search criteria. Use this value for the key-marker request parameter in + a subsequent request. + """ + next_version_id_marker: str | None = ... + """ + When the number of responses exceeds the value of `MaxKeys`, + `NextVersionIdMarker` specifies the first object version not returned + that satisfies the search criteria. Use this value for the + `version-id-marker` request parameter in a subsequent request. + """ + versions: list[ObjectVersion] | None = ... + """Container for version information.""" + delete_markers: list[DeleteMarkerEntry] | None = ... + """ + Container for an object that is a delete marker. To learn more about + delete markers, see [Working with delete + markers](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html). + """ + name: str | None = ... + """The bucket name.""" + prefix: str | None = ... + """Selects objects that start with the value supplied by this parameter.""" + delimiter: str | None = ... + """ + The delimiter grouping the included keys. A delimiter is a character + that you specify to group keys. All keys that contain the same string + between the prefix and the first occurrence of the delimiter are grouped + under a single result element in `CommonPrefixes`. These groups are + counted as one result against the `max-keys` limitation. These keys are + not returned elsewhere in the response. + """ + max_keys: int | None = ... + """Specifies the maximum number of objects to return.""" + common_prefixes: list[CommonPrefix] | None = ... + """ + All of the keys rolled up into a common prefix count as a single return + when calculating the number of returns. + """ + encoding_type: str | None = ... + """ + Encoding type used by Amazon S3 to encode object key names in the XML + response. + + If you specify the `encoding-type` request parameter, Amazon S3 includes + this element in the response, and returns encoded key name values in the + following response elements: + + `KeyMarker, NextKeyMarker, Prefix, Key`, and `Delimiter`. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ListPartsInput(_SerdeShape): + """Dataclass for ListPartsInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket to which the parts are being uploaded. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + max_parts: int | None = ... + """Sets the maximum number of parts to return.""" + part_number_marker: str | None = ... + """ + Specifies the part after which listing should begin. Only parts with + higher part numbers will be listed. + """ + upload_id: str | None = ... + """Upload ID identifying the multipart upload whose parts are being listed.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + sse_customer_algorithm: str | None = ... + """ + The server-side encryption (SSE) algorithm used to encrypt the object. + This parameter is needed only when the object was created using a + checksum algorithm. For more information, see [Protecting data using + SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + The server-side encryption (SSE) customer managed key. This parameter is + needed only when the object was created using a checksum algorithm. For + more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + The MD5 server-side encryption (SSE) customer managed key. This + parameter is needed only when the object was created using a checksum + algorithm. For more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + +@dataclass(kw_only=True) +class ListPartsOutput(_SerdeShape): + """Dataclass for ListPartsOutput structure.""" + + abort_date: datetime | None = ... + """ + If the bucket has a lifecycle rule configured with an action to abort + incomplete multipart uploads and the prefix in the lifecycle rule + matches the object name in the request, then the response includes this + header indicating when the initiated multipart upload will become + eligible for abort operation. For more information, see [Aborting + Incomplete Multipart Uploads Using a Bucket Lifecycle + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). + + The response will also include the `x-amz-abort-rule-id` header that + will provide the ID of the lifecycle configuration rule that defines + this action. + + Note: + This functionality is not supported for directory buckets. + """ + abort_rule_id: str | None = ... + """ + This header is returned along with the `x-amz-abort-date` header. It + identifies applicable lifecycle configuration rule that defines the + action to abort incomplete multipart uploads. + + Note: + This functionality is not supported for directory buckets. + """ + bucket: str | None = ... + """ + The name of the bucket to which the multipart upload was initiated. Does + not return the access point ARN or access point alias if used. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + upload_id: str | None = ... + """Upload ID identifying the multipart upload whose parts are being listed.""" + part_number_marker: str | None = ... + """ + Specifies the part after which listing should begin. Only parts with + higher part numbers will be listed. + """ + next_part_number_marker: str | None = ... + """ + When a list is truncated, this element specifies the last part in the + list, as well as the value to use for the `part-number-marker` request + parameter in a subsequent request. + """ + max_parts: int | None = ... + """Maximum number of parts that were allowed in the response.""" + is_truncated: bool | None = ... + """ + Indicates whether the returned list of parts is truncated. A true value + indicates that the list was truncated. A list can be truncated if the + number of parts exceeds the limit returned in the MaxParts element. + """ + parts: list[Part] | None = ... + """ + Container for elements related to a particular part. A response can + contain zero or more `Part` elements. + """ + initiator: Initiator | None = ... + """ + Container element that identifies who initiated the multipart upload. If + the initiator is an Amazon Web Services account, this element provides + the same information as the `Owner` element. If the initiator is an IAM + User, this element provides the user ARN. + """ + owner: Owner | None = ... + """ + Container element that identifies the object owner, after the object is + created. If multipart upload is initiated by an IAM user, this element + provides the parent account ID. + + Note: + **Directory buckets** - The bucket owner is returned as the object owner + for all the parts. + """ + storage_class: str | None = ... + """ + The class of storage used to store the uploaded object. + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """The algorithm that was used to create a checksum of the object.""" + checksum_type: str | None = ... + """ + The checksum type, which determines how part-level checksums are + combined to create an object-level checksum for multipart objects. You + can use this header response to verify that the checksum type that is + received is the same checksum type that was specified in + `CreateMultipartUpload` request. For more information, see [Checking + object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class LocationInfo(_SerdeShape): + """ + Specifies the location where the bucket will be created. + + For directory buckets, the location type is Availability Zone or Local + Zone. For more information about directory buckets, see [Working with + directory + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is only supported by directory buckets. + """ + + type: str | None = ... + """The type of location where the bucket will be created.""" + name: str | None = ... + """ + The name of the location where the bucket will be created. + + For directory buckets, the name of the location is the Zone ID of the + Availability Zone (AZ) or Local Zone (LZ) where the bucket will be + created. An example AZ ID value is `usw2-az1`. + """ + +class LocationType(UnknownEnumMixin, StrEnum): + AVAILABILITY_ZONE = "AvailabilityZone" + LOCAL_ZONE = "LocalZone" + +@dataclass(kw_only=True) +class LoggingEnabled(_SerdeShape): + """ + Describes where logs are stored and the prefix that Amazon S3 assigns to + all log object keys for a bucket. For more information, see [PUT Bucket + logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) + in the *Amazon S3 API Reference*. + """ + + target_bucket: str + """ + Specifies the bucket where you want Amazon S3 to store server access + logs. You can have your logs delivered to any bucket that you own, + including the same bucket that is being logged. You can also configure + multiple buckets to deliver their logs to the same target bucket. In + this case, you should choose a different `TargetPrefix` for each source + bucket so that the delivered log files can be distinguished by key. + """ + target_grants: list[TargetGrant] | None = ... + """ + Container for granting information. + + Buckets that use the bucket owner enforced setting for Object Ownership + don't support target grants. For more information, see [Permissions for + server access log + delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) + in the *Amazon S3 User Guide*. + """ + target_prefix: str + """ + A prefix for all log object keys. If you store log files from multiple + Amazon S3 buckets in a single bucket, you can use a prefix to + distinguish which log files came from which bucket. + """ + target_object_key_format: TargetObjectKeyFormat | None = ... + """Amazon S3 key format for log objects.""" + +@dataclass(kw_only=True) +class MetadataConfiguration(_SerdeShape): + """The S3 Metadata configuration for a general purpose bucket.""" + + journal_table_configuration: JournalTableConfiguration + """The journal table configuration for a metadata configuration.""" + inventory_table_configuration: InventoryTableConfiguration | None = ... + """The inventory table configuration for a metadata configuration.""" + annotation_table_configuration: AnnotationTableConfiguration | None = ... + """ + Optional annotation table configuration to include with the metadata + configuration. + """ + +@dataclass(kw_only=True) +class MetadataConfigurationResult(_SerdeShape): + """The S3 Metadata configuration for a general purpose bucket.""" + + destination_result: DestinationResult + """The destination settings for a metadata configuration.""" + journal_table_configuration_result: JournalTableConfigurationResult | None = ... + """The journal table configuration for a metadata configuration.""" + inventory_table_configuration_result: InventoryTableConfigurationResult | None = ... + """The inventory table configuration for a metadata configuration.""" + annotation_table_configuration_result: ( + AnnotationTableConfigurationResult | None + ) = ... + """ + The annotation table configuration result, if an annotation table is + configured. + """ + +class MetadataDirective(UnknownEnumMixin, StrEnum): + COPY = "COPY" + REPLACE = "REPLACE" + +@dataclass(kw_only=True) +class MetadataEntry(_SerdeShape): + """A metadata key-value pair to store with an object.""" + + name: str | None = ... + """Name of the object.""" + value: str | None = ... + """Value of the object.""" + +@dataclass(kw_only=True) +class MetadataTableConfiguration(_SerdeShape): + """ + The V1 S3 Metadata configuration for a general purpose bucket. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + s3_tables_destination: S3TablesDestination + """ + The destination information for the metadata table configuration. The + destination table bucket must be in the same Region and Amazon Web + Services account as the general purpose bucket. The specified metadata + table name must be unique within the `aws_s3_metadata` namespace in the + destination table bucket. + """ + +@dataclass(kw_only=True) +class MetadataTableConfigurationResult(_SerdeShape): + """ + The V1 S3 Metadata configuration for a general purpose bucket. The + destination table bucket must be in the same Region and Amazon Web + Services account as the general purpose bucket. The specified metadata + table name must be unique within the `aws_s3_metadata` namespace in the + destination table bucket. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + s3_tables_destination_result: S3TablesDestinationResult + """ + The destination information for the metadata table configuration. The + destination table bucket must be in the same Region and Amazon Web + Services account as the general purpose bucket. The specified metadata + table name must be unique within the `aws_s3_metadata` namespace in the + destination table bucket. + """ + +@dataclass(kw_only=True) +class MetadataTableEncryptionConfiguration(_SerdeShape): + """ + The encryption settings for an S3 Metadata journal table or inventory + table configuration. + """ + + sse_algorithm: str + """ + The encryption type specified for a metadata table. To specify + server-side encryption with Key Management Service (KMS) keys (SSE-KMS), + use the `aws:kms` value. To specify server-side encryption with Amazon + S3 managed keys (SSE-S3), use the `AES256` value. + """ + kms_key_arn: str | None = ... + """ + If server-side encryption with Key Management Service (KMS) keys + (SSE-KMS) is specified, you must also specify the KMS key Amazon + Resource Name (ARN). You must specify a customer-managed KMS key that's + located in the same Region as the general purpose bucket that + corresponds to the metadata table configuration. + """ + +@dataclass(kw_only=True) +class Metrics(_SerdeShape): + """ + A container specifying replication metrics-related settings enabling + replication metrics and events. + """ + + status: str + """Specifies whether the replication metrics are enabled.""" + event_threshold: ReplicationTimeValue | None = ... + """ + A container specifying the time threshold for emitting the + `s3:Replication:OperationMissedThreshold` event. + """ + +@dataclass(kw_only=True) +class MetricsAndOperator(_SerdeShape): + """ + A conjunction (logical AND) of predicates, which is used in evaluating a + metrics filter. The operator must have at least two predicates, and an + object must match all of the predicates in order for the filter to + apply. + """ + + prefix: str | None = ... + """The prefix used when evaluating an AND predicate.""" + tags: list[Tag] | None = ... + """ + The list of tags used when evaluating an AND predicate. + + Note: + `Tag` filters are not supported for directory buckets. + """ + access_point_arn: str | None = ... + """The access point ARN used when evaluating an `AND` predicate.""" + +@dataclass(kw_only=True) +class MetricsConfiguration(_SerdeShape): + """ + Specifies a metrics configuration for the CloudWatch request metrics + (specified by the metrics configuration ID) from an Amazon S3 bucket. If + you're updating an existing metrics configuration, note that this is a + full replacement of the existing metrics configuration. If you don't + include the elements you want to keep, they are erased. For more + information, see + [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html). + """ + + id: str + """ + The ID used to identify the metrics configuration. The ID has a 64 + character limit and can only contain letters, numbers, periods, dashes, + and underscores. + """ + filter: MetricsFilter | None = ... + """ + Specifies a metrics configuration filter. The metrics configuration will + only include objects that meet the filter's criteria. A filter must be + a prefix, an object tag, an access point ARN, or a conjunction + (MetricsAndOperator). + + Note: + Metrics configurations for directory buckets do not support tag filters. + """ + +@dataclass +class MetricsFilterPrefix(_SerdeShape): + """The prefix used when evaluating a metrics filter.""" + + value: str + +@dataclass +class MetricsFilterTag(_SerdeShape): + """ + The tag used when evaluating a metrics filter. + + Note: + `Tag` filters are not supported for directory buckets. + """ + + value: Tag + +@dataclass +class MetricsFilterAccessPointArn(_SerdeShape): + """The access point ARN used when evaluating a metrics filter.""" + + value: str + +@dataclass +class MetricsFilterAnd(_SerdeShape): + """ + A conjunction (logical AND) of predicates, which is used in evaluating a + metrics filter. The operator must have at least two predicates, and an + object must match all of the predicates in order for the filter to + apply. + """ + + value: MetricsAndOperator + +@dataclass +class MetricsFilterUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +MetricsFilter = Union[ + MetricsFilterPrefix + | MetricsFilterTag + | MetricsFilterAccessPointArn + | MetricsFilterAnd + | MetricsFilterUnknown +] +""" +Specifies a metrics configuration filter. The metrics configuration only +includes objects that meet the filter's criteria. A filter must be a +prefix, an object tag, an access point ARN, or a conjunction +(MetricsAndOperator). For more information, see +[PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html). +""" + +class _MetricsFilterDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> MetricsFilter: ... + +class MetricsStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class MFADelete(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class MFADeleteStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class MultipartUpload(_SerdeShape): + """Container for the `MultipartUpload` for the Amazon S3 object.""" + + upload_id: str | None = ... + """Upload ID that identifies the multipart upload.""" + key: str | None = ... + """Key of the object for which the multipart upload was initiated.""" + initiated: datetime | None = ... + """Date and time at which the multipart upload was initiated.""" + storage_class: str | None = ... + """ + The class of storage used to store the object. + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + owner: Owner | None = ... + """ + Specifies the owner of the object that is part of the multipart upload. + + Note: + **Directory buckets** - The bucket owner is returned as the object owner + for all the objects. + """ + initiator: Initiator | None = ... + """Identifies who initiated the multipart upload.""" + checksum_algorithm: str | None = ... + """The algorithm that was used to create a checksum of the object.""" + checksum_type: str | None = ... + """ + The checksum type that is used to calculate the object's checksum value. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class NoncurrentVersionExpiration(_SerdeShape): + """ + Specifies when noncurrent object versions expire. Upon expiration, + Amazon S3 permanently deletes the noncurrent object versions. You set + this lifecycle configuration action on a bucket that has versioning + enabled (or suspended) to request that Amazon S3 delete noncurrent + object versions at a specific period in the object's lifetime. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + + noncurrent_days: int | None = ... + """ + Specifies the number of days an object is noncurrent before Amazon S3 + can perform the associated action. The value must be a non-zero positive + integer. For information about the noncurrent days calculations, see + [How Amazon S3 Calculates When an Object Became + Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) + in the *Amazon S3 User Guide*. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + newer_noncurrent_versions: int | None = ... + """ + Specifies how many noncurrent versions Amazon S3 will retain. You can + specify up to 100 noncurrent versions to retain. Amazon S3 will + permanently delete any additional noncurrent versions beyond the + specified number to retain. For more information about noncurrent + versions, see [Lifecycle configuration + elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) + in the *Amazon S3 User Guide*. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + +@dataclass(kw_only=True) +class NoncurrentVersionTransition(_SerdeShape): + """ + Container for the transition rule that describes when noncurrent objects + transition to the `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, + `GLACIER_IR`, `GLACIER`, or `DEEP_ARCHIVE` storage class. If your bucket + is versioning-enabled (or versioning is suspended), you can set this + action to request that Amazon S3 transition noncurrent object versions + to the `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `GLACIER_IR`, + `GLACIER`, or `DEEP_ARCHIVE` storage class at a specific period in the + object's lifetime. + """ + + noncurrent_days: int | None = ... + """ + Specifies the number of days an object is noncurrent before Amazon S3 + can perform the associated action. For information about the noncurrent + days calculations, see [How Amazon S3 Calculates How Long an Object Has + Been + Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) + in the *Amazon S3 User Guide*. + """ + storage_class: str | None = ... + """The class of storage used to store the object.""" + newer_noncurrent_versions: int | None = ... + """ + Specifies how many noncurrent versions Amazon S3 will retain in the same + storage class before transitioning objects. You can specify up to 100 + noncurrent versions to retain. Amazon S3 will transition any additional + noncurrent versions beyond the specified number to retain. For more + information about noncurrent versions, see [Lifecycle configuration + elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class NoSuchAnnotation(ServiceError, _SerdeShape): + """The specified annotation does not exist on this object.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchBucket(ServiceError, _SerdeShape): + """The specified bucket does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchKey(ServiceError, _SerdeShape): + """The specified key does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NoSuchUpload(ServiceError, _SerdeShape): + """The specified multipart upload does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NotFound(ServiceError, _SerdeShape): + """The specified content does not exist.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class NotificationConfiguration(_SerdeShape): + """ + A container for specifying the notification configuration of the bucket. + If this element is empty, notifications are turned off for the bucket. + """ + + topic_configurations: list[TopicConfiguration] | None = ... + """ + The topic to which notifications are sent and the events for which + notifications are generated. + """ + queue_configurations: list[QueueConfiguration] | None = ... + """ + The Amazon Simple Queue Service queues to publish messages to and the + events for which to publish messages. + """ + lambda_function_configurations: list[LambdaFunctionConfiguration] | None = ... + """ + Describes the Lambda functions to invoke and the events for which to + invoke them. + """ + event_bridge_configuration: EventBridgeConfiguration | None = ... + """Enables delivery of events to Amazon EventBridge.""" + +@dataclass(kw_only=True) +class NotificationConfigurationFilter(_SerdeShape): + """ + Specifies object key name filtering rules. For information about key + name filtering, see [Configuring event notifications using object key + name + filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) + in the *Amazon S3 User Guide*. + """ + + key: S3KeyFilter | None = ... + """A container for object key name prefix and suffix filtering rules.""" + +@dataclass(kw_only=True) +class Object(_SerdeShape): + """An object consists of data and its descriptive metadata.""" + + key: str | None = ... + """ + The name that you assign to an object. You use the object key to + retrieve the object. + """ + last_modified: datetime | None = ... + """Creation date of the object.""" + e_tag: str | None = ... + """ + The entity tag is a hash of the object. The ETag reflects changes only + to the contents of an object, not its metadata. The ETag may or may not + be an MD5 digest of the object data. Whether or not it is depends on how + the object was created and how it is encrypted as described below: + + - Objects created by the PUT Object, POST Object, or Copy operation, or + through the Amazon Web Services Management Console, and are encrypted + by SSE-S3 or plaintext, have ETags that are an MD5 digest of their + object data. + + - Objects created by the PUT Object, POST Object, or Copy operation, or + through the Amazon Web Services Management Console, and are encrypted + by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their + object data. + + - If an object is created by either the Multipart Upload or Part Copy + operation, the ETag is not an MD5 digest, regardless of the method of + encryption. If an object is larger than 16 MB, the Amazon Web Services + Management Console will upload or copy that object as a Multipart + Upload, and therefore the ETag will not be an MD5 digest. + + Note: + **Directory buckets** - MD5 is not supported by directory buckets. + """ + checksum_algorithm: list[str] | None = ... + """The algorithm that was used to create a checksum of the object.""" + checksum_type: str | None = ... + """ + The checksum type that is used to calculate the object's checksum value. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + size: int | None = ... + """Size in bytes of the object""" + storage_class: str | None = ... + """ + The class of storage used to store the object. + + Note: + **Directory buckets** - Directory buckets only support `EXPRESS_ONEZONE` + (the S3 Express One Zone storage class) in Availability Zones and + `ONEZONE_IA` (the S3 One Zone-Infrequent Access storage class) in + Dedicated Local Zones. + """ + owner: Owner | None = ... + """ + The owner of the object + + Note: + **Directory buckets** - The bucket owner is returned as the object + owner. + """ + restore_status: RestoreStatus | None = ... + """ + Specifies the restoration status of an object. Objects in certain + storage classes must be restored before they can be retrieved. For more + information about these storage classes and how to work with archived + objects, see [Working with archived + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. Directory + buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone storage + class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + """ + +@dataclass(kw_only=True) +class ObjectAlreadyInActiveTierError(ServiceError, _SerdeShape): + """This action is not allowed against this storage tier.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ObjectAttributes(UnknownEnumMixin, StrEnum): + ETAG = "ETag" + CHECKSUM = "Checksum" + OBJECT_PARTS = "ObjectParts" + STORAGE_CLASS = "StorageClass" + OBJECT_SIZE = "ObjectSize" + +class ObjectCannedACL(UnknownEnumMixin, StrEnum): + PRIVATE = "private" + PUBLIC_READ = "public-read" + PUBLIC_READ_WRITE = "public-read-write" + AUTHENTICATED_READ = "authenticated-read" + AWS_EXEC_READ = "aws-exec-read" + BUCKET_OWNER_READ = "bucket-owner-read" + BUCKET_OWNER_FULL_CONTROL = "bucket-owner-full-control" + +@dataclass +class ObjectEncryptionSSEKMS(_SerdeShape): + """ + Specifies to update the object encryption type to server-side encryption + with Key Management Service (KMS) keys (SSE-KMS). + """ + + value: SSEKMSEncryption + +@dataclass +class ObjectEncryptionUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +ObjectEncryption = Union[ObjectEncryptionSSEKMS | ObjectEncryptionUnknown] +""" +The updated server-side encryption type for this object. The +`UpdateObjectEncryption` operation supports the SSE-S3 and SSE-KMS +encryption types. + +Valid Values: `SSES3` | `SSEKMS` +""" + +class _ObjectEncryptionDeserializer: + def deserialize(self, deserializer: ShapeDeserializer) -> ObjectEncryption: ... + +@dataclass(kw_only=True) +class ObjectIdentifier(_SerdeShape): + """Object Identifier is unique value to identify objects.""" + + key: str + """ + Key name of the object. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + version_id: str | None = ... + """ + Version ID for the specific version of the object to delete. + + Note: + This functionality is not supported for directory buckets. + """ + e_tag: str | None = ... + """ + An entity tag (ETag) is an identifier assigned by a web server to a + specific version of a resource found at a URL. This header field makes + the request method conditional on `ETags`. + + Note: + Entity tags (ETags) for S3 Express One Zone are random alphanumeric + strings unique to the object. + """ + last_modified_time: datetime | None = ... + """ + If present, the objects are deleted only if its modification times + matches the provided `Timestamp`. + + Note: + This functionality is only supported for directory buckets. + """ + size: int | None = ... + """ + If present, the objects are deleted only if its size matches the + provided size in bytes. + + Note: + This functionality is only supported for directory buckets. + """ + +@dataclass(kw_only=True) +class ObjectLockConfiguration(_SerdeShape): + """The container element for Object Lock configuration parameters.""" + + object_lock_enabled: str | None = ... + """ + Indicates whether this bucket has an Object Lock configuration enabled. + Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a + bucket. + """ + rule: ObjectLockRule | None = ... + """ + Specifies the Object Lock rule for the specified object. Enable the this + rule when you apply `ObjectLockConfiguration` to a bucket. Bucket + settings require both a mode and a period. The period can be either + `Days` or `Years` but you must select one. You cannot specify `Days` and + `Years` at the same time. + """ + +class ObjectLockEnabled(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + +class ObjectLockEventHold(UnknownEnumMixin, StrEnum): + ON = "ON" + OFF = "OFF" + +@dataclass(kw_only=True) +class ObjectLockLegalHold(_SerdeShape): + """A legal hold configuration for an object.""" + + status: str | None = ... + """Indicates whether the specified object has a legal hold in place.""" + +class ObjectLockLegalHoldStatus(UnknownEnumMixin, StrEnum): + ON = "ON" + OFF = "OFF" + +class ObjectLockMode(UnknownEnumMixin, StrEnum): + GOVERNANCE = "GOVERNANCE" + COMPLIANCE = "COMPLIANCE" + +@dataclass(kw_only=True) +class ObjectLockRetention(_SerdeShape): + """A Retention configuration for an object.""" + + mode: str | None = ... + """Indicates the Retention mode for the specified object.""" + retain_until_date: datetime | None = ... + """The date on which this Object Lock Retention will expire.""" + event_hold: str | None = ... + """ + The event hold status for the object. Set to `ON` to enable an event + hold or `OFF` to disable it. + """ + event_hold_duration: EventHoldDuration | None = ... + """ + The event hold duration for the object. Specifies how long the object + remains protected after the event hold is released. + """ + +class ObjectLockRetentionMode(UnknownEnumMixin, StrEnum): + GOVERNANCE = "GOVERNANCE" + COMPLIANCE = "COMPLIANCE" + +@dataclass(kw_only=True) +class ObjectLockRule(_SerdeShape): + """The container element for an Object Lock rule.""" + + default_retention: DefaultRetention | None = ... + """ + The default Object Lock retention settings for new objects in this + bucket. You can specify: + + - A default retention period, by using `Days` or `Years`. + + - A default event hold duration, by using `DefaultEventHold`. This + setting also uses days or years. + + You can set one or both. You cannot use days and years in the same + setting. + """ + +@dataclass(kw_only=True) +class ObjectNotInActiveTierError(ServiceError, _SerdeShape): + """ + The source object of the COPY action is not in the active tier and is + only stored in Amazon S3 Glacier. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +class ObjectOwnership(UnknownEnumMixin, StrEnum): + """ + The container element for object ownership for a bucket's ownership + controls. + + `BucketOwnerPreferred` - Objects uploaded to the bucket change ownership + to the bucket owner if the objects are uploaded with the + `bucket-owner-full-control` canned ACL. + + `ObjectWriter` - The uploading account will own the object if the object + is uploaded with the `bucket-owner-full-control` canned ACL. + + `BucketOwnerEnforced` - Access control lists (ACLs) are disabled and no + longer affect permissions. The bucket owner automatically owns and has + full control over every object in the bucket. The bucket only accepts + PUT requests that don't specify an ACL or specify bucket owner full + control ACLs (such as the predefined `bucket-owner-full-control` canned + ACL or a custom ACL in XML format that grants the same permissions). + + By default, `ObjectOwnership` is set to `BucketOwnerEnforced` and ACLs + are disabled. We recommend keeping ACLs disabled, except in uncommon use + cases where you must control access for each object individually. For + more information about S3 Object Ownership, see [Controlling ownership + of objects and disabling ACLs for your + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. Directory + buckets use the bucket owner enforced setting for S3 Object Ownership. + """ + + BUCKET_OWNER_PREFERRED = "BucketOwnerPreferred" + OBJECT_WRITER = "ObjectWriter" + BUCKET_OWNER_ENFORCED = "BucketOwnerEnforced" + +@dataclass(kw_only=True) +class ObjectPart(_SerdeShape): + """A container for elements related to an individual part.""" + + part_number: int | None = ... + """ + The part number identifying the part. This value is a positive integer + between 1 and 10,000. + """ + size: int | None = ... + """The size of the uploaded part in bytes.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the part. This checksum + is present if the multipart upload request was created with the `CRC32C` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This + checksum is present if the multipart upload request was created with the + `CRC64NVME` checksum algorithm, or if the object was uploaded without a + checksum (and Amazon S3 added the default checksum, `CRC64NVME`, to the + uploaded object). For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum + is present if the multipart upload request was created with the `SHA1` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` checksum of the part. This checksum + is present if the multipart upload request was created with the `SHA256` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the part. This checksum + is present if the multipart upload request was created with the `SHA512` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the part. This checksum is + present if the multipart upload request was created with the `MD5` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH64` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the part. This checksum + is present if the multipart upload request was created with the + `XXHASH3` checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH128` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +class ObjectStorageClass(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY" + GLACIER = "GLACIER" + STANDARD_IA = "STANDARD_IA" + ONEZONE_IA = "ONEZONE_IA" + INTELLIGENT_TIERING = "INTELLIGENT_TIERING" + DEEP_ARCHIVE = "DEEP_ARCHIVE" + OUTPOSTS = "OUTPOSTS" + GLACIER_IR = "GLACIER_IR" + SNOW = "SNOW" + EXPRESS_ONEZONE = "EXPRESS_ONEZONE" + FSX_OPENZFS = "FSX_OPENZFS" + FSX_ONTAP = "FSX_ONTAP" + AWS_BACKUP_WARM = "AWS_BACKUP_WARM" + AWS_BACKUP_LOW_COST_WARM = "AWS_BACKUP_LOW_COST_WARM" + +@dataclass(kw_only=True) +class ObjectVersion(_SerdeShape): + """The version of an object.""" + + e_tag: str | None = ... + """The entity tag is an MD5 hash of that version of the object.""" + checksum_algorithm: list[str] | None = ... + """The algorithm that was used to create a checksum of the object.""" + checksum_type: str | None = ... + """ + The checksum type that is used to calculate the object's checksum value. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + size: int | None = ... + """Size in bytes of the object.""" + storage_class: str | None = ... + """The class of storage used to store the object.""" + key: str | None = ... + """The object key.""" + version_id: str | None = ... + """Version ID of an object.""" + is_latest: bool | None = ... + """ + Specifies whether the object is (true) or is not (false) the latest + version of an object. + """ + last_modified: datetime | None = ... + """Date and time when the object was last modified.""" + owner: Owner | None = ... + """Specifies the owner of the object.""" + restore_status: RestoreStatus | None = ... + """ + Specifies the restoration status of an object. Objects in certain + storage classes must be restored before they can be retrieved. For more + information about these storage classes and how to work with archived + objects, see [Working with archived + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) + in the *Amazon S3 User Guide*. + """ + +class ObjectVersionStorageClass(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + +class OptionalObjectAttributes(UnknownEnumMixin, StrEnum): + RESTORE_STATUS = "RestoreStatus" + +@dataclass(kw_only=True) +class OutputLocation(_SerdeShape): + """Describes the location where the restore job's output is stored.""" + + s3: S3Location | None = ... + """ + Describes an S3 location that will receive the results of the restore + request. + """ + +@dataclass(kw_only=True) +class OutputSerialization(_SerdeShape): + """Describes how results of the Select job are serialized.""" + + csv: CSVOutput | None = ... + """Describes the serialization of CSV-encoded Select results.""" + json: JSONOutput | None = ... + """Specifies JSON as request's output serialization format.""" + +@dataclass(kw_only=True) +class Owner(_SerdeShape): + """Container for the owner's display name and ID.""" + + display_name: str | None = ... + """""" + id: str | None = ... + """Container for the ID of the owner.""" + +class OwnerOverride(UnknownEnumMixin, StrEnum): + DESTINATION = "Destination" + +@dataclass(kw_only=True) +class OwnershipControls(_SerdeShape): + """The container element for a bucket's ownership controls.""" + + rules: list[OwnershipControlsRule] + """The container element for an ownership control rule.""" + +@dataclass(kw_only=True) +class OwnershipControlsRule(_SerdeShape): + """The container element for an ownership control rule.""" + + object_ownership: str + """ + The container element for object ownership for a bucket's ownership + controls. + + `BucketOwnerPreferred` - Objects uploaded to the bucket change ownership + to the bucket owner if the objects are uploaded with the + `bucket-owner-full-control` canned ACL. + + `ObjectWriter` - The uploading account will own the object if the object + is uploaded with the `bucket-owner-full-control` canned ACL. + + `BucketOwnerEnforced` - Access control lists (ACLs) are disabled and no + longer affect permissions. The bucket owner automatically owns and has + full control over every object in the bucket. The bucket only accepts + PUT requests that don't specify an ACL or specify bucket owner full + control ACLs (such as the predefined `bucket-owner-full-control` canned + ACL or a custom ACL in XML format that grants the same permissions). + + By default, `ObjectOwnership` is set to `BucketOwnerEnforced` and ACLs + are disabled. We recommend keeping ACLs disabled, except in uncommon use + cases where you must control access for each object individually. For + more information about S3 Object Ownership, see [Controlling ownership + of objects and disabling ACLs for your + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. Directory + buckets use the bucket owner enforced setting for S3 Object Ownership. + """ + +@dataclass(kw_only=True) +class ParquetInput(_SerdeShape): + """Container for Parquet.""" + +@dataclass(kw_only=True) +class Part(_SerdeShape): + """Container for elements related to a part.""" + + part_number: int | None = ... + """ + Part number identifying the part. This is a positive integer between 1 + and 10,000. + """ + last_modified: datetime | None = ... + """Date and time at which the part was uploaded.""" + e_tag: str | None = ... + """Entity tag returned when the part was uploaded.""" + size: int | None = ... + """Size in bytes of the uploaded part data.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum + is present if the object was uploaded with the `CRC32` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the part. This checksum + is present if the object was uploaded with the `CRC32C` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This + checksum is present if the multipart upload request was created with the + `CRC64NVME` checksum algorithm, or if the object was uploaded without a + checksum (and Amazon S3 added the default checksum, `CRC64NVME`, to the + uploaded object). For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum + is present if the object was uploaded with the `SHA1` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` checksum of the part. This checksum + is present if the object was uploaded with the `SHA256` checksum + algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the part. This checksum + is present if the multipart upload request was created with the `SHA512` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the part. This checksum is + present if the multipart upload request was created with the `MD5` + checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH64` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the part. This checksum + is present if the multipart upload request was created with the + `XXHASH3` checksum algorithm. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the part. This + checksum is present if the multipart upload request was created with the + `XXHASH128` checksum algorithm. For more information, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + +class PartitionDateSource(UnknownEnumMixin, StrEnum): + EVENT_TIME = "EventTime" + DELIVERY_TIME = "DeliveryTime" + +@dataclass(kw_only=True) +class PartitionedPrefix(_SerdeShape): + """ + Amazon S3 keys for log objects are partitioned in the following format: + + `[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]` + + PartitionedPrefix defaults to EventTime delivery when server access logs + are delivered. + """ + + partition_date_source: str | None = ... + """ + Specifies the partition date source for the partitioned prefix. + `PartitionDateSource` can be `EventTime` or `DeliveryTime`. + + For `DeliveryTime`, the time in the log file names corresponds to the + delivery time for the log files. + + For `EventTime`, The logs delivered are for a specific day only. The + year, month, and day correspond to the day on which the event occurred, + and the hour, minutes and seconds are set to 00 in the key. + """ + +class Payer(UnknownEnumMixin, StrEnum): + REQUESTER = "Requester" + BUCKET_OWNER = "BucketOwner" + +class Permission(UnknownEnumMixin, StrEnum): + FULL_CONTROL = "FULL_CONTROL" + WRITE = "WRITE" + WRITE_ACP = "WRITE_ACP" + READ = "READ" + READ_ACP = "READ_ACP" + +@dataclass(kw_only=True) +class PolicyStatus(_SerdeShape): + """The container element for a bucket's policy status.""" + + is_public: bool | None = ... + """ + The policy status for this bucket. `TRUE` indicates that this bucket is + public. `FALSE` indicates that the bucket is not public. + """ + +@dataclass(kw_only=True) +class Progress(_SerdeShape): + """This data type contains information about progress of an operation.""" + + bytes_scanned: int | None = ... + """The current number of object bytes scanned.""" + bytes_processed: int | None = ... + """The current number of uncompressed object bytes processed.""" + bytes_returned: int | None = ... + """The current number of bytes of records payload data returned.""" + +@dataclass(kw_only=True) +class ProgressEvent(_SerdeShape): + """ + This data type contains information about the progress event of an + operation. + """ + + details: Progress | None = ... + """The Progress event details.""" + +class Protocol(UnknownEnumMixin, StrEnum): + HTTP = "http" + HTTPS = "https" + +@dataclass(kw_only=True) +class PublicAccessBlockConfiguration(_SerdeShape): + """ + The PublicAccessBlock configuration that you want to apply to this + Amazon S3 bucket. You can enable the configuration options in any + combination. Bucket-level settings work alongside account-level settings + (which may inherit from organization-level policies). For more + information about when Amazon S3 considers a bucket or object public, + see [The Meaning of + \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + in the *Amazon S3 User Guide*. + """ + + block_public_acls: bool | None = ... + """ + Specifies whether Amazon S3 should block public access control lists + (ACLs) for this bucket and objects in this bucket. Setting this element + to `TRUE` causes the following behavior: + + - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is + public. + + - PUT Object calls fail if the request includes a public ACL. + + - PUT Bucket calls fail if the request includes a public ACL. + + Enabling this setting doesn't affect existing policies or ACLs. + """ + ignore_public_acls: bool | None = ... + """ + Specifies whether Amazon S3 should ignore public ACLs for this bucket + and objects in this bucket. Setting this element to `TRUE` causes Amazon + S3 to ignore all public ACLs on this bucket and objects in this bucket. + + Enabling this setting doesn't affect the persistence of any existing + ACLs and doesn't prevent new public ACLs from being set. + """ + block_public_policy: bool | None = ... + """ + Specifies whether Amazon S3 should block public bucket policies for this + bucket. Setting this element to `TRUE` causes Amazon S3 to reject calls + to PUT Bucket policy if the specified bucket policy allows public + access. + + Enabling this setting doesn't affect existing bucket policies. + """ + restrict_public_buckets: bool | None = ... + """ + Specifies whether Amazon S3 should restrict public bucket policies for + this bucket. Setting this element to `TRUE` restricts access to this + bucket to only Amazon Web Services service principals and authorized + users within this account if the bucket has a public policy. + + Enabling this setting doesn't affect previously stored bucket policies, + except that public and cross-account access within any public bucket + policy, including non-public delegation to specific accounts, is + blocked. + """ + +@dataclass(kw_only=True) +class PutBucketAbacInput(_SerdeShape): + """Dataclass for PutBucketAbacInput structure.""" + + bucket: str | None = ... + """The name of the general purpose bucket.""" + content_md5: str | None = ... + """ + The MD5 hash of the `PutBucketAbac` request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm that you want Amazon S3 to use to create the + checksum. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + expected_bucket_owner: str | None = ... + """ + The Amazon Web Services account ID of the general purpose bucket's + owner. + """ + abac_status: AbacStatus | None = ... + """ + The ABAC status of the general purpose bucket. When ABAC is enabled for + the general purpose bucket, you can use tags to manage access to the + general purpose buckets as well as for cost tracking purposes. When ABAC + is disabled for the general purpose buckets, you can only use tags for + cost tracking purposes. For more information, see [Using tags with S3 + general purpose + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html). + """ + +@dataclass(kw_only=True) +class PutBucketAbacOutput(_SerdeShape): + """Dataclass for PutBucketAbacOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketAccelerateConfigurationInput(_SerdeShape): + """Dataclass for PutBucketAccelerateConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which the accelerate configuration is set.""" + accelerate_configuration: AccelerateConfiguration | None = ... + """Container for setting the transfer acceleration state.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + +@dataclass(kw_only=True) +class PutBucketAccelerateConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketAccelerateConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketAclInput(_SerdeShape): + """Dataclass for PutBucketAclInput structure.""" + + acl: str | None = ... + """The canned ACL to apply to the bucket.""" + access_control_policy: AccessControlPolicy | None = ... + """ + Contains the elements that set the ACL permissions for an object per + grantee. + """ + bucket: str | None = ... + """The bucket to which to apply the ACL.""" + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. This header must be + used as a message integrity check to verify that the request body was + not corrupted in transit. For more information, go to [RFC + 1864.](http://www.ietf.org/rfc/rfc1864.txt) + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + grant_full_control: str | None = ... + """ + Allows grantee the read, write, read ACP, and write ACP permissions on + the bucket. + """ + grant_read: str | None = ... + """Allows grantee to list the objects in the bucket.""" + grant_read_acp: str | None = ... + """Allows grantee to read the bucket ACL.""" + grant_write: str | None = ... + """ + Allows grantee to create new objects in the bucket. + + For the bucket and object owners of existing objects, also allows + deletions and overwrites of those objects. + """ + grant_write_acp: str | None = ... + """Allows grantee to write the ACL for the applicable bucket.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketAclOutput(_SerdeShape): + """Dataclass for PutBucketAclOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketAnalyticsConfigurationInput(_SerdeShape): + """Dataclass for PutBucketAnalyticsConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket to which an analytics configuration is stored.""" + id: str | None = ... + """The ID that identifies the analytics configuration.""" + analytics_configuration: AnalyticsConfiguration | None = ... + """The configuration and any analyses for the analytics filter.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketAnalyticsConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketAnalyticsConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketCorsInput(_SerdeShape): + """Dataclass for PutBucketCorsInput structure.""" + + bucket: str | None = ... + """Specifies the bucket impacted by the `cors`configuration.""" + cors_configuration: CORSConfiguration | None = ... + """ + Describes the cross-origin access configuration for objects in an Amazon + S3 bucket. For more information, see [Enabling Cross-Origin Resource + Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in + the *Amazon S3 User Guide*. + """ + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. This header must be + used as a message integrity check to verify that the request body was + not corrupted in transit. For more information, go to [RFC + 1864.](http://www.ietf.org/rfc/rfc1864.txt) + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketCorsOutput(_SerdeShape): + """Dataclass for PutBucketCorsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketEncryptionInput(_SerdeShape): + """Dataclass for PutBucketEncryptionInput structure.""" + + bucket: str | None = ... + """ + Specifies default encryption for a bucket using server-side encryption + with different key options. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the server-side encryption + configuration. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + + Note: + For directory buckets, when you use Amazon Web Services SDKs, `CRC32` is + the default checksum algorithm that's used for performance. + """ + server_side_encryption_configuration: ServerSideEncryptionConfiguration | None = ... + """Specifies the default server-side-encryption configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class PutBucketEncryptionOutput(_SerdeShape): + """Dataclass for PutBucketEncryptionOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketIntelligentTieringConfigurationInput(_SerdeShape): + """Dataclass for PutBucketIntelligentTieringConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose configuration you want to modify + or retrieve. + """ + id: str | None = ... + """The ID used to identify the S3 Intelligent-Tiering configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + intelligent_tiering_configuration: IntelligentTieringConfiguration | None = ... + """Container for S3 Intelligent-Tiering configuration.""" + +@dataclass(kw_only=True) +class PutBucketIntelligentTieringConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketIntelligentTieringConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketInventoryConfigurationInput(_SerdeShape): + """Dataclass for PutBucketInventoryConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket where the inventory configuration will be stored. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """The ID used to identify the inventory configuration.""" + inventory_configuration: InventoryConfiguration | None = ... + """Specifies the inventory configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class PutBucketInventoryConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketInventoryConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketLifecycleConfigurationInput(_SerdeShape): + """Dataclass for PutBucketLifecycleConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which to set the configuration.""" + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + lifecycle_configuration: BucketLifecycleConfiguration | None = ... + """Container for lifecycle rules. You can add as many as 1,000 rules.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + """ + transition_default_minimum_object_size: str | None = ... + """ + Indicates which default minimum object size behavior is applied to the + lifecycle configuration. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + + - `all_storage_classes_128K` - Objects smaller than 128 KB will not + transition to any storage class by default. + + - `varies_by_storage_class` - Objects smaller than 128 KB will + transition to Glacier Flexible Retrieval or Glacier Deep Archive + storage classes. By default, all other storage classes will prevent + transitions smaller than 128 KB. + + To customize the minimum object size for any transition you can add a + filter that specifies a custom `ObjectSizeGreaterThan` or + `ObjectSizeLessThan` in the body of your transition rule. Custom filters + always take precedence over the default transition behavior. + """ + +@dataclass(kw_only=True) +class PutBucketLifecycleConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketLifecycleConfigurationOutput structure.""" + + transition_default_minimum_object_size: str | None = ... + """ + Indicates which default minimum object size behavior is applied to the + lifecycle configuration. + + Note: + This parameter applies to general purpose buckets only. It is not + supported for directory bucket lifecycle configurations. + + - `all_storage_classes_128K` - Objects smaller than 128 KB will not + transition to any storage class by default. + + - `varies_by_storage_class` - Objects smaller than 128 KB will + transition to Glacier Flexible Retrieval or Glacier Deep Archive + storage classes. By default, all other storage classes will prevent + transitions smaller than 128 KB. + + To customize the minimum object size for any transition you can add a + filter that specifies a custom `ObjectSizeGreaterThan` or + `ObjectSizeLessThan` in the body of your transition rule. Custom filters + always take precedence over the default transition behavior. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketLoggingInput(_SerdeShape): + """Dataclass for PutBucketLoggingInput structure.""" + + bucket: str | None = ... + """The name of the bucket for which to set the logging parameters.""" + bucket_logging_status: BucketLoggingStatus | None = ... + """Container for logging status information.""" + content_md5: str | None = ... + """ + The MD5 hash of the `PutBucketLogging` request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketLoggingOutput(_SerdeShape): + """Dataclass for PutBucketLoggingOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketMetricsConfigurationInput(_SerdeShape): + """Dataclass for PutBucketMetricsConfigurationInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket for which the metrics configuration is set. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + id: str | None = ... + """ + The ID used to identify the metrics configuration. The ID has a 64 + character limit and can only contain letters, numbers, periods, dashes, + and underscores. + """ + metrics_configuration: MetricsConfiguration | None = ... + """Specifies the metrics configuration.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class PutBucketMetricsConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketMetricsConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketNotificationConfigurationInput(_SerdeShape): + """Dataclass for PutBucketNotificationConfigurationInput structure.""" + + bucket: str | None = ... + """The name of the bucket.""" + notification_configuration: NotificationConfiguration | None = ... + """ + A container for specifying the notification configuration of the bucket. + If this element is empty, notifications are turned off for the bucket. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + skip_destination_validation: bool | None = ... + """ + Skips validation of Amazon SQS, Amazon SNS, and Lambda destinations. + True or false value. + """ + +@dataclass(kw_only=True) +class PutBucketNotificationConfigurationOutput(_SerdeShape): + """Dataclass for PutBucketNotificationConfigurationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketOwnershipControlsInput(_SerdeShape): + """Dataclass for PutBucketOwnershipControlsInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose `OwnershipControls` you want to + set. + """ + content_md5: str | None = ... + """ + The MD5 hash of the `OwnershipControls` request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + ownership_controls: OwnershipControls | None = ... + """ + The `OwnershipControls` (BucketOwnerEnforced, BucketOwnerPreferred, or + ObjectWriter) that you want to apply to this Amazon S3 bucket. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum-`*`algorithm`*` ` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + +@dataclass(kw_only=True) +class PutBucketOwnershipControlsOutput(_SerdeShape): + """Dataclass for PutBucketOwnershipControlsOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketPolicyInput(_SerdeShape): + """Dataclass for PutBucketPolicyInput structure.""" + + bucket: str | None = ... + """ + The name of the bucket. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use path-style requests in the format + `https://s3express-control.`*`region-code`*`.amazonaws.com/`*`bucket-name`*` `. + Virtual-hosted-style requests aren't supported. Directory bucket names + must be unique in the chosen Zone (Availability Zone or Local Zone). + Bucket names must also follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`DOC-EXAMPLE-BUCKET`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide* + """ + content_md5: str | None = ... + """ + The MD5 hash of the request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum-`*`algorithm`*` ` or + `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request with + the HTTP status code `400 Bad Request`. + + For the `x-amz-checksum-`*`algorithm`*` ` header, replace + ` `*`algorithm`*` ` with the supported algorithm from the following + list: + + - `CRC32` + + - `CRC32C` + + - `CRC64NVME` + + - `MD5` + + - `SHA1` + + - `SHA256` + + - `SHA512` + + - `XXHASH3` + + - `XXHASH64` + + - `XXHASH128` + + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If the individual checksum value you provide through + `x-amz-checksum-`*`algorithm`*` ` doesn't match the checksum algorithm + you set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the + request with a `BadDigest` error. + + Note: + For directory buckets, when you use Amazon Web Services SDKs, `CRC32` is + the default checksum algorithm that's used for performance. + """ + confirm_remove_self_bucket_access: bool | None = ... + """ + Set this parameter to true to confirm that you want to remove your + permissions to change this bucket policy in the future. + + Note: + This functionality is not supported for directory buckets. + """ + policy: str | None = ... + """ + The bucket policy as a JSON document. + + For directory buckets, the only IAM action supported in the bucket + policy is `s3express:CreateSession`. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + + Note: + For directory buckets, this header is not supported in this API + operation. If you specify this header, the request fails with the HTTP + status code `501 Not Implemented`. + """ + +@dataclass(kw_only=True) +class PutBucketPolicyOutput(_SerdeShape): + """Dataclass for PutBucketPolicyOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketReplicationInput(_SerdeShape): + """Dataclass for PutBucketReplicationInput structure.""" + + bucket: str | None = ... + """The name of the bucket""" + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. You must use this + header as a message integrity check to verify that the request body was + not corrupted in transit. For more information, see [RFC + 1864](http://www.ietf.org/rfc/rfc1864.txt). + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + replication_configuration: ReplicationConfiguration | None = ... + """ + A container for replication rules. You can add up to 1,000 rules. The + maximum size of a replication configuration is 2 MB. + """ + token: str | None = ... + """A token to allow Object Lock to be enabled for an existing bucket.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketReplicationOutput(_SerdeShape): + """Dataclass for PutBucketReplicationOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketRequestPaymentInput(_SerdeShape): + """Dataclass for PutBucketRequestPaymentInput structure.""" + + bucket: str | None = ... + """The bucket name.""" + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. You must use this + header as a message integrity check to verify that the request body was + not corrupted in transit. For more information, see [RFC + 1864](http://www.ietf.org/rfc/rfc1864.txt). + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + request_payment_configuration: RequestPaymentConfiguration | None = ... + """Container for Payer.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketRequestPaymentOutput(_SerdeShape): + """Dataclass for PutBucketRequestPaymentOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketTaggingInput(_SerdeShape): + """Dataclass for PutBucketTaggingInput structure.""" + + bucket: str | None = ... + """The bucket name.""" + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. You must use this + header as a message integrity check to verify that the request body was + not corrupted in transit. For more information, see [RFC + 1864](http://www.ietf.org/rfc/rfc1864.txt). + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + tagging: Tagging | None = ... + """Container for the `TagSet` and `Tag` elements.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketTaggingOutput(_SerdeShape): + """Dataclass for PutBucketTaggingOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketVersioningInput(_SerdeShape): + """Dataclass for PutBucketVersioningInput structure.""" + + bucket: str | None = ... + """The bucket name.""" + content_md5: str | None = ... + """ + >The Base64 encoded 128-bit `MD5` digest of the data. You must use this + header as a message integrity check to verify that the request body was + not corrupted in transit. For more information, see [RFC + 1864](http://www.ietf.org/rfc/rfc1864.txt). + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + mfa: str | None = ... + """ + The concatenation of the authentication device's serial number, a + space, and the value that is displayed on your authentication device. + The serial number is the number that uniquely identifies the MFA device. + For physical MFA devices, this is the unique serial number that's + provided with the device. For virtual MFA devices, the serial number is + the device ARN. For more information, see [Enabling versioning on + buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) + and [Configuring MFA + delete](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html) + in the *Amazon Simple Storage Service User Guide*. + """ + versioning_configuration: VersioningConfiguration | None = ... + """Container for setting the versioning state.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketVersioningOutput(_SerdeShape): + """Dataclass for PutBucketVersioningOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutBucketWebsiteInput(_SerdeShape): + """Dataclass for PutBucketWebsiteInput structure.""" + + bucket: str | None = ... + """The bucket name.""" + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. You must use this + header as a message integrity check to verify that the request body was + not corrupted in transit. For more information, see [RFC + 1864](http://www.ietf.org/rfc/rfc1864.txt). + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the request when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + website_configuration: WebsiteConfiguration | None = ... + """Container for the request.""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutBucketWebsiteOutput(_SerdeShape): + """Dataclass for PutBucketWebsiteOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectAclInput(_SerdeShape): + """Dataclass for PutObjectAclInput structure.""" + + acl: str | None = ... + """ + The canned ACL to apply to the object. For more information, see [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + """ + access_control_policy: AccessControlPolicy | None = ... + """ + Contains the elements that set the ACL permissions for an object per + grantee. + """ + bucket: str | None = ... + """ + The bucket name that contains the object to which you want to attach the + ACL. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the data. This header must be + used as a message integrity check to verify that the request body was + not corrupted in transit. For more information, go to [RFC + 1864.>](http://www.ietf.org/rfc/rfc1864.txt) + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + grant_full_control: str | None = ... + """ + Allows grantee the read, write, read ACP, and write ACP permissions on + the bucket. + + This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read: str | None = ... + """ + Allows grantee to list the objects in the bucket. + + This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read_acp: str | None = ... + """ + Allows grantee to read the bucket ACL. + + This functionality is not supported for Amazon S3 on Outposts. + """ + grant_write: str | None = ... + """ + Allows grantee to create new objects in the bucket. + + For the bucket and object owners of existing objects, also allows + deletions and overwrites of those objects. + """ + grant_write_acp: str | None = ... + """ + Allows grantee to write the ACL for the applicable bucket. + + This functionality is not supported for Amazon S3 on Outposts. + """ + key: str | None = ... + """Key for which the PUT action was initiated.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + Version ID used to reference a specific version of the object. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutObjectAclOutput(_SerdeShape): + """Dataclass for PutObjectAclOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectAnnotationInput(_SerdeShape): + """Dataclass for PutObjectAnnotationInput structure.""" + + bucket: str | None = ... + """The name of the bucket that contains the object.""" + key: str | None = ... + """The object key.""" + version_id: str | None = ... + """The version ID of the object to attach the annotation to.""" + annotation_name: str | None = ... + """ + The name of the annotation. + + Length Constraints: Minimum length of 1. Maximum length of 512 bytes. + """ + annotation_payload: StreamingBlob | None = ... + """ + The annotation payload. Must be between 1 byte and 1 MiB in size, and + must be valid UTF-8 encoded text. If the payload contains invalid UTF-8 + bytes, the request fails with HTTP 415 (Unsupported Media Type). To + store binary data, encode the payload using Base64 before uploading. + """ + object_if_match: str | None = ... + """ + If specified, the operation only succeeds if the object's ETag matches + the provided value. + """ + checksum_algorithm: str | None = ... + """ + The checksum algorithm to use. Supported values: `CRC32`, `CRC32C`, + `CRC64NVME`, `SHA1`, `SHA256`, `SHA512`, `MD5`, `XXHASH64`, `XXHASH3`, + `XXHASH128`. + """ + checksum_crc32: str | None = ... + """Base64-encoded CRC32 checksum of the annotation payload.""" + checksum_crc32_c: str | None = ... + """Base64-encoded CRC32C checksum of the annotation payload.""" + checksum_crc64_nvme: str | None = ... + """Base64-encoded CRC64NVME checksum of the annotation payload.""" + checksum_sha1: str | None = ... + """Base64-encoded SHA1 checksum of the annotation payload.""" + checksum_sha256: str | None = ... + """Base64-encoded SHA256 checksum of the annotation payload.""" + checksum_sha512: str | None = ... + """Base64-encoded SHA512 checksum of the annotation payload.""" + checksum_md5: str | None = ... + """Base64-encoded MD5 checksum of the annotation payload.""" + checksum_xxhash64: str | None = ... + """Base64-encoded XXHASH64 checksum of the annotation payload.""" + checksum_xxhash3: str | None = ... + """Base64-encoded XXHASH3 checksum of the annotation payload.""" + checksum_xxhash128: str | None = ... + """Base64-encoded XXHASH128 checksum of the annotation payload.""" + content_md5: str | None = ... + """Base64-encoded MD5 digest of the message.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the bucket is owned by a + different account, the request fails with an HTTP 403 (Access Denied) + error. + """ + +@dataclass(kw_only=True) +class PutObjectAnnotationOutput(_SerdeShape): + """Dataclass for PutObjectAnnotationOutput structure.""" + + key: str | None = ... + """The object key.""" + annotation_name: str | None = ... + """The name of the annotation.""" + object_version_id: str | None = ... + """The version ID of the object that the annotation was attached to.""" + e_tag: str | None = ... + """The entity tag of the annotation.""" + checksum_crc32: str | None = ... + """The CRC32 checksum of the stored annotation.""" + checksum_crc32_c: str | None = ... + """The CRC32C checksum of the stored annotation.""" + checksum_crc64_nvme: str | None = ... + """The CRC64NVME checksum of the stored annotation.""" + checksum_sha1: str | None = ... + """The SHA1 checksum of the stored annotation.""" + checksum_sha256: str | None = ... + """The SHA256 checksum of the stored annotation.""" + checksum_sha512: str | None = ... + """The SHA512 checksum of the stored annotation.""" + checksum_md5: str | None = ... + """The MD5 checksum of the stored annotation.""" + checksum_xxhash64: str | None = ... + """The XXHASH64 checksum of the stored annotation.""" + checksum_xxhash3: str | None = ... + """The XXHASH3 checksum of the stored annotation.""" + checksum_xxhash128: str | None = ... + """The XXHASH128 checksum of the stored annotation.""" + checksum_type: str | None = ... + """The type of checksum used.""" + server_side_encryption: str | None = ... + """The server-side encryption algorithm used to encrypt the annotation.""" + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectInput(_SerdeShape): + """Dataclass for PutObjectInput structure.""" + + acl: str | None = ... + """ + The canned ACL to apply to the object. For more information, see [Canned + ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + in the *Amazon S3 User Guide*. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + and [Managing ACLs Using the REST + API](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html) + in the *Amazon S3 User Guide*. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + in the *Amazon S3 User Guide*. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + body: StreamingBlob = ... + """Object data.""" + bucket: str | None = ... + """ + The bucket name to which the PUT action was initiated. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + cache_control: str | None = ... + """ + Can be used to specify caching behavior along the request/reply chain. + For more information, see + . + """ + content_disposition: str | None = ... + """ + Specifies presentational information for the object. For more + information, see . + """ + content_encoding: str | None = ... + """ + Specifies what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. For more information, see + . + """ + content_language: str | None = ... + """The language the content is in.""" + content_length: int | None = ... + """ + Size of the body in bytes. This parameter is useful when the size of the + body cannot be determined automatically. For more information, see + . + """ + content_md5: str | None = ... + """ + The Base64 encoded 128-bit `MD5` digest of the message (without the + headers) according to RFC 1864. This header can be used as a message + integrity check to verify that the data is the same data that was + originally sent. Although it is optional, we recommend using the + Content-MD5 mechanism as an end-to-end integrity check. For more + information about REST request authentication, see [REST + Authentication](https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + + Note: + The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required + for any request to upload an object with a retention period configured + using Amazon S3 Object Lock. For more information, see [Uploading + objects to an Object Lock enabled + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object) + in the *Amazon S3 User Guide*. + Note: + This functionality is not supported for directory buckets. + """ + content_type: str | None = ... + """ + A standard MIME type describing the format of the contents. For more + information, see + . + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum-`*`algorithm`*` ` or + `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request with + the HTTP status code `400 Bad Request`. + + For the `x-amz-checksum-`*`algorithm`*` ` header, replace + ` `*`algorithm`*` ` with the supported algorithm from the following + list: + + - `CRC32` + + - `CRC32C` + + - `CRC64NVME` + + - `MD5` + + - `SHA1` + + - `SHA256` + + - `SHA512` + + - `XXHASH3` + + - `XXHASH64` + + - `XXHASH128` + + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If the individual checksum value you provide through + `x-amz-checksum-`*`algorithm`*` ` doesn't match the checksum algorithm + you set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the + request with a `BadDigest` error. + + Note: + The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required + for any request to upload an object with a retention period configured + using Amazon S3 Object Lock. For more information, see [Uploading + objects to an Object Lock enabled + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object) + in the *Amazon S3 User Guide*. + + For directory buckets, when you use Amazon Web Services SDKs, `CRC32` is + the default checksum algorithm that's used for performance. + """ + checksum_crc32: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32` checksum of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the object. + The `CRC64NVME` checksum is always a full object checksum. For more + information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 256-bit `SHA256` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 512-bit `SHA512` digest of the object. For + more information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `MD5` digest of the object. For + more information, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH64` checksum of the object. + For more information, see [Checking object integrity in the Amazon S3 + User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH3` checksum of the object. + For more information, see [Checking object integrity in the Amazon S3 + User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `XXHASH128` checksum of the + object. For more information, see [Checking object integrity in the + Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + expires: str | None = ... + """ + The date and time at which the object is no longer cacheable. For more + information, see . + """ + if_match: str | None = ... + """ + Uploads the object only if the ETag (entity tag) value provided during + the WRITE operation matches the ETag of the object in S3. If the ETag + values do not match, the operation returns a `412 Precondition Failed` + error. + + If a conflicting operation occurs during the upload S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure you should + fetch the object's ETag and retry the upload. + + Expects the ETag value as a string. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232), or [Conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide*. + """ + if_none_match: str | None = ... + """ + Uploads the object only if the object key name does not already exist in + the bucket specified. Otherwise, Amazon S3 returns a + `412 Precondition Failed` error. + + If a conflicting operation occurs during the upload S3 returns a + `409 ConditionalRequestConflict` response. On a 409 failure you should + retry the upload. + + Expects the '*' (asterisk) character. + + For more information about conditional requests, see [RFC + 7232](https://tools.ietf.org/html/rfc7232), or [Conditional + requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html) + in the *Amazon S3 User Guide*. + """ + grant_full_control: str | None = ... + """ + Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the + object. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read: str | None = ... + """ + Allows grantee to read the object data and its metadata. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_read_acp: str | None = ... + """ + Allows grantee to read the object ACL. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + grant_write_acp: str | None = ... + """ + Allows grantee to write the ACL for the applicable object. + + Note: + - This functionality is not supported for directory buckets. + + - This functionality is not supported for Amazon S3 on Outposts. + """ + key: str | None = ... + """Object key for which the PUT action was initiated.""" + write_offset_bytes: int | None = ... + """ + Specifies the offset for appending data to existing objects in bytes. + The offset must be equal to the size of the existing object being + appended to. If no object exists, setting this header to 0 will create a + new object. + + Note: + This functionality is only supported for objects in the Amazon S3 + Express One Zone storage class in directory buckets. + """ + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm that was used when you store this + object in Amazon S3 or Amazon FSx. + + - **General purpose buckets** - 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: server-side encryption + with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side + encryption with KMS keys (SSE-KMS) (`aws:kms`). We recommend that the + bucket's default encryption uses the desired encryption configuration + and you don't override the bucket default encryption in your + `CreateSession` requests or `PUT` object requests. Then, new objects + are automatically encrypted with the desired encryption settings. For + more information, see [Protecting data with server-side + encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html) + in the *Amazon S3 User Guide*. For more information about the + encryption overriding behaviors in directory buckets, see [Specifying + server-side encryption with KMS for new object + uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html). + + In the Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)) + using the REST API, the encryption request headers must match the + encryption settings that are specified in the `CreateSession` request. + You can't override the values of the encryption settings + (`x-amz-server-side-encryption`, + `x-amz-server-side-encryption-aws-kms-key-id`, + `x-amz-server-side-encryption-context`, and + `x-amz-server-side-encryption-bucket-key-enabled`) that are specified + in the `CreateSession` request. You don't need to explicitly specify + these encryption settings values in Zonal endpoint API calls, and + Amazon S3 will use the encryption settings values from the + `CreateSession` request to protect new objects in the directory + bucket. + + Note: + When you use the CLI or the Amazon Web Services SDKs, for + `CreateSession`, the session token refreshes automatically to avoid + service interruptions when a session expires. The CLI or the Amazon + Web Services SDKs use the bucket's default encryption configuration + for the `CreateSession` request. It's not supported to override the + encryption settings values in the `CreateSession` request. So in the + Zonal endpoint API calls (except + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) + and + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)), + the encryption request headers must match the default encryption + configuration of the directory bucket. + + - **S3 access points for Amazon FSx** - When accessing data stored in + Amazon FSx file systems using S3 access points, the only valid server + side encryption option is `aws:fsx`. All Amazon FSx file systems have + encryption configured by default and are encrypted at rest. Data is + automatically encrypted before being written to the file system, and + automatically decrypted as it is read. These processes are handled + transparently by Amazon FSx. + """ + storage_class: str | None = ... + """ + 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. For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + in the *Amazon S3 User Guide*. + + Note: + - Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One + Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + + - Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. + """ + website_redirect_location: str | None = ... + """ + If the bucket is configured as a website, redirects requests for this + object to another object in the same bucket or to an external URL. + Amazon S3 stores the value of this header in the object metadata. For + information about object metadata, see [Object Key and + Metadata](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) + in the *Amazon S3 User Guide*. + + In the following example, the request header sets the redirect to an + object (anotherPage.html) in the same bucket: + + `x-amz-website-redirect-location: /anotherPage.html` + + In the following example, the request header sets the object redirect to + another website: + + `x-amz-website-redirect-location: http://www.example.com/` + + For more information about website hosting in Amazon S3, see [Hosting + Websites on Amazon + S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) + and [How to Configure Website Page + Redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + `AES256`). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for + object encryption. If the KMS key doesn't exist in the same account + that's issuing the command, you must use the full Key ARN not the Key + ID. + + **General purpose buckets** - If you specify + `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this + header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key + to use. If you specify `x-amz-server-side-encryption:aws:kms` or + `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide + `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the Amazon + Web Services managed key (`aws/s3`) to protect the data. + + **Directory buckets** - To encrypt data using SSE-KMS, it's recommended + to specify the `x-amz-server-side-encryption` header to `aws:kms`. Then, + the `x-amz-server-side-encryption-aws-kms-key-id` header implicitly uses + the bucket's default KMS customer managed key ID. If you want to + explicitly set the ` x-amz-server-side-encryption-aws-kms-key-id` + header, it must match the bucket's default customer managed key (using + key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 + [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. Incorrect key specification results in an + HTTP `400 Bad Request` error. + """ + ssekms_encryption_context: str | None = ... + """ + Specifies the Amazon Web Services KMS Encryption Context as an + additional encryption context to use for object encryption. The value of + this header is a Base64 encoded string of a UTF-8 encoded JSON, which + contains the encryption context as key-value pairs. This value is stored + as object metadata and automatically gets passed on to Amazon Web + Services KMS for future `GetObject` operations on this object. + + **General purpose buckets** - This value must be explicitly added during + `CopyObject` operations if you want an additional encryption context for + your object. For more information, see [Encryption + context](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context) + in the *Amazon S3 User Guide*. + + **Directory buckets** - You can optionally provide an explicit + encryption context value. The value must match the default encryption + context - the bucket Amazon Resource Name (ARN). An additional + encryption context value is not supported. + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key for object + encryption with server-side encryption using Key Management Service + (KMS) keys (SSE-KMS). + + **General purpose buckets** - Setting this header to `true` causes + Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. + Also, specifying this header with a PUT action doesn't affect + bucket-level settings for S3 Bucket Key. + + **Directory buckets** - S3 Bucket Keys are always enabled for `GET` and + `PUT` operations in a directory bucket and can't be disabled. S3 Bucket + Keys aren't supported, when you copy SSE-KMS encrypted objects from + general purpose buckets to directory buckets, from directory buckets to + general purpose buckets, or between directory buckets, through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy request is + made for a KMS-encrypted object. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + tagging: str | None = ... + """ + The tag-set for the object. The tag-set must be encoded as URL Query + parameters. (For example, \"Key1=Value1\") + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_mode: str | None = ... + """ + The Object Lock mode that you want to apply to this object. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_retain_until_date: datetime | None = ... + """ + The date and time when you want this object's Object Lock to expire. + Must be formatted as a timestamp parameter. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_legal_hold_status: str | None = ... + """ + Specifies whether a legal hold will be applied to this object. For more + information about S3 Object Lock, see [Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold: str | None = ... + """ + Specifies the event hold status to apply to this object. Set to `ON` to + enable or `OFF` to disable. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_days: int | None = ... + """ + Specifies the event hold duration in days to apply to this object. You + cannot specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + object_lock_event_hold_duration_years: int | None = ... + """ + Specifies the event hold duration in years to apply to this object. You + cannot specify a duration in both days and years. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutObjectLegalHoldInput(_SerdeShape): + """Dataclass for PutObjectLegalHoldInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object that you want to place a legal + hold on. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """The key name for the object that you want to place a legal hold on.""" + legal_hold: ObjectLockLegalHold | None = ... + """ + Container element for the legal hold configuration you want to apply to + the specified object. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """The version ID of the object that you want to place a legal hold on.""" + content_md5: str | None = ... + """ + The MD5 hash for the request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutObjectLegalHoldOutput(_SerdeShape): + """Dataclass for PutObjectLegalHoldOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectLockConfigurationInput(_SerdeShape): + """Dataclass for PutObjectLockConfigurationInput structure.""" + + bucket: str | None = ... + """ + The bucket whose Object Lock configuration you want to create or + replace. + """ + object_lock_configuration: ObjectLockConfiguration | None = ... + """ + The Object Lock configuration that you want to apply to the specified + bucket. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + token: str | None = ... + """A token to allow Object Lock to be enabled for an existing bucket.""" + content_md5: str | None = ... + """ + The MD5 hash for the request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutObjectLockConfigurationOutput(_SerdeShape): + """Dataclass for PutObjectLockConfigurationOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectOutput(_SerdeShape): + """Dataclass for PutObjectOutput structure.""" + + expiration: str | None = ... + """ + If the expiration is configured for the object (see + [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)) + in the *Amazon S3 User Guide*, the response includes this header. It + includes the `expiry-date` and `rule-id` key-value pairs that provide + information about object expiration. The value of the `rule-id` is + URL-encoded. + + Note: + Object expiration information is not returned in directory buckets and + this header returns the value \"`NotImplemented`\" in all responses for + directory buckets. + """ + e_tag: str | None = ... + """ + Entity tag for the uploaded object. + + **General purpose buckets** - To ensure that data is not corrupted + traversing the network, for objects where the ETag is the MD5 digest of + the object, you can calculate the MD5 while putting an object to Amazon + S3 and compare the returned ETag to the calculated MD5 value. + + **Directory buckets** - The ETag for the object in a directory bucket + isn't the MD5 digest of the object. + """ + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the object. This + checksum is only present if the checksum was uploaded with the object. + When you use an API operation on an object that was uploaded using + multipart uploads, this value may not be a direct checksum value of the + full object. Instead, it's a calculation based on the checksum values + of each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. This + header is present if the object was uploaded with the `CRC64NVME` + checksum algorithm, or if it was uploaded without a checksum (and Amazon + S3 added the default checksum, `CRC64NVME`, to the uploaded object). For + more information about how checksums are calculated with multipart + uploads, see [Checking object integrity in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use the API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum + is only present if the checksum was uploaded with the object. When you + use an API operation on an object that was uploaded using multipart + uploads, this value may not be a direct checksum value of the full + object. Instead, it's a calculation based on the checksum values of + each individual part. For more information about how checksums are + calculated with multipart uploads, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` digest of the object. This header + is present if the object was uploaded with the `SHA512` checksum + algorithm. For more information, see [Checking object integrity in the + Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` digest of the object. This header is + present if the object was uploaded with the `MD5` checksum algorithm. + For more information, see [Checking object integrity in the Amazon S3 + User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the object. This + header is present if the object was uploaded with the `XXHASH64` + checksum algorithm. For more information, see [Checking object integrity + in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the object. This header + is present if the object was uploaded with the `XXHASH3` checksum + algorithm. For more information, see [Checking object integrity in the + Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the object. This + header is present if the object was uploaded with the `XXHASH128` + checksum algorithm. For more information, see [Checking object integrity + in the Amazon S3 User + Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html). + """ + checksum_type: str | None = ... + """ + This header specifies the checksum type of the object, which determines + how part-level checksums are combined to create an object-level checksum + for multipart objects. For `PutObject` uploads, the checksum type is + always `FULL_OBJECT`. You can use this header as a data integrity check + to verify that the checksum type that is received is the same checksum + that was specified. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + version_id: str | None = ... + """ + Version ID of the object. + + 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) + in the *Amazon S3 User Guide*. For information about returning the + versioning state of a bucket, see + [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + ssekms_encryption_context: str | None = ... + """ + If present, indicates the Amazon Web Services KMS Encryption Context to + use for object encryption. The value of this header is a Base64 encoded + string of a UTF-8 encoded JSON, which contains the encryption context as + key-value pairs. This value is stored as object metadata and + automatically gets passed on to Amazon Web Services KMS for future + `GetObject` operations on this object. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the uploaded object uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + size: int | None = ... + """ + The size of the object in bytes. This value is only be present if you + append to an object. + + Note: + This functionality is only supported for objects in the Amazon S3 + Express One Zone storage class in directory buckets. + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectRetentionInput(_SerdeShape): + """Dataclass for PutObjectRetentionInput structure.""" + + bucket: str | None = ... + """ + The bucket name that contains the object you want to apply this Object + Retention configuration to. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """ + The key name for the object that you want to apply this Object Retention + configuration to. + """ + retention: ObjectLockRetention | None = ... + """The container element for the Object Retention configuration.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + version_id: str | None = ... + """ + The version ID for the object that you want to apply this Object + Retention configuration to. + """ + bypass_governance_retention: bool | None = ... + """ + Indicates whether this action should bypass Governance-mode + restrictions. + """ + content_md5: str | None = ... + """ + The MD5 hash for the request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutObjectRetentionOutput(_SerdeShape): + """Dataclass for PutObjectRetentionOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutObjectTaggingInput(_SerdeShape): + """Dataclass for PutObjectTaggingInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Name of the object key.""" + version_id: str | None = ... + """The versionId of the object that the tag-set will be added to.""" + content_md5: str | None = ... + """ + The MD5 hash for the request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + tagging: Tagging | None = ... + """Container for the `TagSet` and `Tag` elements""" + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that she or he will be charged for the + tagging object request. Bucket owners need not specify this parameter in + their requests. + """ + +@dataclass(kw_only=True) +class PutObjectTaggingOutput(_SerdeShape): + """Dataclass for PutObjectTaggingOutput structure.""" + + version_id: str | None = ... + """The versionId of the object the tag-set was added to.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class PutPublicAccessBlockInput(_SerdeShape): + """Dataclass for PutPublicAccessBlockInput structure.""" + + bucket: str | None = ... + """ + The name of the Amazon S3 bucket whose `PublicAccessBlock` configuration + you want to set. + """ + content_md5: str | None = ... + """ + The MD5 hash of the `PutPublicAccessBlock` request body. + + For requests made using the Amazon Web Services Command Line Interface + (CLI) or Amazon Web Services SDKs, this field is calculated + automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + public_access_block_configuration: PublicAccessBlockConfiguration | None = ... + """ + The `PublicAccessBlock` configuration that you want to apply to this + Amazon S3 bucket. You can enable the configuration options in any + combination. For more information about when Amazon S3 considers a + bucket or object public, see [The Meaning of + \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + in the *Amazon S3 User Guide*. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class PutPublicAccessBlockOutput(_SerdeShape): + """Dataclass for PutPublicAccessBlockOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class QueueConfiguration(_SerdeShape): + """ + Specifies the configuration for publishing messages to an Amazon Simple + Queue Service (Amazon SQS) queue when Amazon S3 detects specified + events. + """ + + id: str | None = ... + """ + An optional unique identifier for configurations in a notification + configuration. If you don't provide one, Amazon S3 will assign an ID. + """ + queue_arn: str + """ + The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon + S3 publishes a message when it detects events of the specified type. + """ + events: list[str] + """A collection of bucket events for which to send notifications""" + filter: NotificationConfigurationFilter | None = ... + """ + Specifies object key name filtering rules. For information about key + name filtering, see [Configuring event notifications using object key + name + filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) + in the *Amazon S3 User Guide*. + """ + +class QuoteFields(UnknownEnumMixin, StrEnum): + ALWAYS = "ALWAYS" + ASNEEDED = "ASNEEDED" + +@dataclass(kw_only=True) +class RecordExpiration(_SerdeShape): + """ + The journal table record expiration settings for a journal table in an + S3 Metadata configuration. + """ + + expiration: str + """ + Specifies whether journal table record expiration is enabled or + disabled. + """ + days: int | None = ... + """ + If you enable journal table record expiration, you can set the number of + days to retain your journal table records. Journal table records must be + retained for a minimum of 7 days. To set this value, specify any whole + number from `7` to `2147483647`. For example, to retain your journal + table records for one year, set this value to `365`. + """ + +@dataclass(kw_only=True) +class RecordsEvent(_SerdeShape): + """The container for the records event.""" + + payload: bytes | None = ... + """ + The byte array of partial, one or more result records. S3 Select + doesn't guarantee that a record will be self-contained in one record + frame. To ensure continuous streaming of data, S3 Select might split the + same record across multiple record frames instead of aggregating the + results in memory. Some S3 clients (for example, the SDK for Java) + handle this behavior by creating a `ByteStream` out of the response by + default. Other clients might not handle this behavior by default. In + those cases, you must aggregate the results on the client side and parse + the response. + """ + +@dataclass(kw_only=True) +class Redirect(_SerdeShape): + """ + Specifies how requests are redirected. In the event of an error, you can + specify a different error code to return. + """ + + host_name: str | None = ... + """The host name to use in the redirect request.""" + http_redirect_code: str | None = ... + """ + The HTTP redirect code to use on the response. Not required if one of + the siblings is present. + """ + protocol: str | None = ... + """ + Protocol to use when redirecting requests. The default is the protocol + that is used in the original request. + """ + replace_key_prefix_with: str | None = ... + """ + The object key prefix to use in the redirect request. For example, to + redirect requests for all pages with prefix `docs/` (objects in the + `docs/` folder) to `documents/`, you can set a condition block with + `KeyPrefixEquals` set to `docs/` and in the Redirect set + `ReplaceKeyPrefixWith` to `/documents`. Not required if one of the + siblings is present. Can be present only if `ReplaceKeyWith` is not + provided. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + replace_key_with: str | None = ... + """ + The specific object key to use in the redirect request. For example, + redirect request to `error.html`. Not required if one of the siblings is + present. Can be present only if `ReplaceKeyPrefixWith` is not provided. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + +@dataclass(kw_only=True) +class RedirectAllRequestsTo(_SerdeShape): + """ + Specifies the redirect behavior of all requests to a website endpoint of + an Amazon S3 bucket. + """ + + host_name: str + """Name of the host where requests are redirected.""" + protocol: str | None = ... + """ + Protocol to use when redirecting requests. The default is the protocol + that is used in the original request. + """ + +@dataclass(kw_only=True) +class RenameObjectInput(_SerdeShape): + """Dataclass for RenameObjectInput structure.""" + + bucket: str | None = ... + """ + The bucket name of the directory bucket containing the object. + + You must use virtual-hosted-style requests in the format + `Bucket-name.s3express-zone-id.region-code.amazonaws.com`. Path-style + requests are not supported. Directory bucket names must be unique in the + chosen Availability Zone. Bucket names must follow the format + `bucket-base-name--zone-id--x-s3 ` (for example, + `amzn-s3-demo-bucket--usw2-az1--x-s3`). For information about bucket + naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Key name of the object to rename.""" + rename_source: str | None = ... + """ + Specifies the source for the rename operation. The value must be URL + encoded. + """ + destination_if_match: str | None = ... + """ + Renames the object only if the ETag (entity tag) value provided during + the operation matches the ETag of the object in S3. The `If-Match` + header field makes the request method conditional on ETags. If the ETag + values do not match, the operation returns a `412 Precondition Failed` + error. + + Expects the ETag value as a string. + """ + destination_if_none_match: str | None = ... + """ + Renames the object only if the destination does not already exist in the + specified directory bucket. If the object does exist when you send a + request with `If-None-Match:*`, the S3 API will return a + `412 Precondition Failed` error, preventing an overwrite. The + `If-None-Match` header prevents overwrites of existing data by + validating that there's not an object with the same key name already in + your directory bucket. + + Expects the `*` character (asterisk). + """ + destination_if_modified_since: datetime | None = ... + """ + Renames the object if the destination exists and if it has been modified + since the specified time. + """ + destination_if_unmodified_since: datetime | None = ... + """Renames the object if it hasn't been modified since the specified time.""" + source_if_match: str | None = ... + """ + Renames the object if the source exists and if its entity tag (ETag) + matches the specified ETag. + """ + source_if_none_match: str | None = ... + """ + Renames the object if the source exists and if its entity tag (ETag) is + different than the specified ETag. If an asterisk (`*`) character is + provided, the operation will fail and return a `412 Precondition Failed` + error. + """ + source_if_modified_since: datetime | None = ... + """ + Renames the object if the source exists and if it has been modified + since the specified time. + """ + source_if_unmodified_since: datetime | None = ... + """ + Renames the object if the source exists and hasn't been modified since + the specified time. + """ + client_token: str | None = ... + """ + A unique string with a max of 64 ASCII characters in the ASCII range of + 33 - 126. + + Note: + `RenameObject` supports idempotency using a client token. To make an + idempotent API request using `RenameObject`, specify a client token in + the request. You should not reuse the same client token for other API + requests. If you retry a request that completed successfully using the + same client token and the same parameters, the retry succeeds without + performing any further actions. If you retry a successful request using + the same client token, but one or more of the parameters are different, + the retry fails and an `IdempotentParameterMismatch` error is returned. + """ + +@dataclass(kw_only=True) +class RenameObjectOutput(_SerdeShape): + """Dataclass for RenameObjectOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class ReplicaModifications(_SerdeShape): + """ + A filter that you can specify for selection for modifications on + replicas. Amazon S3 doesn't replicate replica modifications by default. + In the latest version of replication configuration (when `Filter` is + specified), you can specify this element and set the status to `Enabled` + to replicate modifications on replicas. + + Note: + If you don't specify the `Filter` element, Amazon S3 assumes that the + replication configuration is the earlier version, V1. In the earlier + version, this element is not allowed. + """ + + status: str + """Specifies whether Amazon S3 replicates modifications on replicas.""" + +class ReplicaModificationsStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class ReplicationConfiguration(_SerdeShape): + """ + A container for replication rules. You can add up to 1,000 rules. The + maximum size of a replication configuration is 2 MB. + """ + + role: str + """ + The Amazon Resource Name (ARN) of the Identity and Access Management + (IAM) role that Amazon S3 assumes when replicating objects. For more + information, see [How to Set Up + Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) + in the *Amazon S3 User Guide*. + """ + rules: list[ReplicationRule] + """ + A container for one or more replication rules. A replication + configuration must have at least one rule and can contain a maximum of + 1,000 rules. + """ + +@dataclass(kw_only=True) +class ReplicationRule(_SerdeShape): + """ + Specifies which Amazon S3 objects to replicate and where to store the + replicas. + """ + + id: str | None = ... + """A unique identifier for the rule. The maximum value is 255 characters.""" + priority: int | None = ... + """ + The priority indicates which rule has precedence whenever two or more + replication rules conflict. Amazon S3 will attempt to replicate objects + according to all replication rules. However, if there are two or more + rules with the same destination 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 + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) + in the *Amazon S3 User Guide*. + """ + prefix: str | None = ... + """ + An object key name prefix that identifies the object or objects to which + the rule applies. The maximum prefix length is 1,024 characters. To + include all objects in a bucket, specify an empty string. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + filter: ReplicationRuleFilter | None = ... + """ + A filter that identifies the subset of objects to which the replication + rule applies. A `Filter` must specify exactly one `Prefix`, `Tag`, or an + `And` child element. + """ + status: str + """Specifies whether the rule is enabled.""" + source_selection_criteria: SourceSelectionCriteria | None = ... + """ + A container that describes additional filters for identifying the source + objects that you want to replicate. You can choose to enable or disable + the replication of these objects. Currently, Amazon S3 supports only the + filter that you can specify for objects created with server-side + encryption using a customer managed key stored in Amazon Web Services + Key Management Service (SSE-KMS). + """ + existing_object_replication: ExistingObjectReplication | None = ... + """ + Optional configuration to replicate existing source bucket objects. + + Note: + This parameter is no longer supported. To replicate existing objects, + see [Replicating existing objects with S3 Batch + Replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html) + in the *Amazon S3 User Guide*. + """ + destination: Destination + """ + A container for information about the replication destination and its + configurations including enabling the S3 Replication Time Control (S3 + RTC). + """ + delete_marker_replication: DeleteMarkerReplication | None = ... + """ + Specifies whether Amazon S3 replicates delete markers. If you specify a + `Filter` in your replication configuration, you must also include a + `DeleteMarkerReplication` element. If your `Filter` includes a `Tag` + element, the `DeleteMarkerReplication` `Status` must be set to Disabled, + because Amazon S3 does not support replicating delete markers for + tag-based rules. For an example configuration, see [Basic Rule + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + + For more information about delete marker replication, see [Basic Rule + Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). + + Note: + If you are using an earlier version of the replication configuration, + Amazon S3 handles replication of delete markers differently. For more + information, see [Backward + Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). + """ + +@dataclass(kw_only=True) +class ReplicationRuleAndOperator(_SerdeShape): + """ + A container for specifying rule filters. The filters determine the + subset of objects to which the rule applies. This element is required + only if you specify more than one filter. + + For example: + + - If you specify both a `Prefix` and a `Tag` filter, wrap these filters + in an `And` tag. + + - If you specify a filter based on multiple tags, wrap the `Tag` + elements in an `And` tag. + """ + + prefix: str | None = ... + """ + An object key name prefix that identifies the subset of objects to which + the rule applies. + """ + tags: list[Tag] | None = ... + """An array of tags containing key and value pairs.""" + +@dataclass(kw_only=True) +class ReplicationRuleFilter(_SerdeShape): + """ + A filter that identifies the subset of objects to which the replication + rule applies. A `Filter` must specify exactly one `Prefix`, `Tag`, or an + `And` child element. + """ + + prefix: str | None = ... + """ + An object key name prefix that identifies the subset of objects to which + the rule applies. + + Warning: + Replacement must be made for object keys containing special characters + (such as carriage returns) when using XML requests. For more + information, see [XML related object key + constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). + """ + tag: Tag | None = ... + """ + A container for specifying a tag key and value. + + The rule applies only to objects that have the tag in their tag set. + """ + and_: ReplicationRuleAndOperator | None = ... + """ + A container for specifying rule filters. The filters determine the + subset of objects to which the rule applies. This element is required + only if you specify more than one filter. For example: + + - If you specify both a `Prefix` and a `Tag` filter, wrap these filters + in an `And` tag. + + - If you specify a filter based on multiple tags, wrap the `Tag` + elements in an `And` tag. + """ + +class ReplicationRuleStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +class ReplicationStatus(UnknownEnumMixin, StrEnum): + COMPLETE = "COMPLETE" + PENDING = "PENDING" + FAILED = "FAILED" + REPLICA = "REPLICA" + COMPLETED = "COMPLETED" + +@dataclass(kw_only=True) +class ReplicationTime(_SerdeShape): + """ + A container specifying S3 Replication Time Control (S3 RTC) related + information, including whether S3 RTC is enabled and the time when all + objects and operations on objects must be replicated. Must be specified + together with a `Metrics` block. + """ + + status: str + """Specifies whether the replication time is enabled.""" + time: ReplicationTimeValue + """ + A container specifying the time by which replication should be complete + for all objects and operations on objects. + """ + +class ReplicationTimeStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class ReplicationTimeValue(_SerdeShape): + """ + A container specifying the time value for S3 Replication Time Control + (S3 RTC) and replication metrics `EventThreshold`. + """ + + minutes: int | None = ... + """ + Contains an integer specifying time in minutes. + + Valid value: 15 + """ + +class RequestCharged(UnknownEnumMixin, StrEnum): + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + + REQUESTER = "requester" + +class RequestPayer(UnknownEnumMixin, StrEnum): + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + + REQUESTER = "requester" + +@dataclass(kw_only=True) +class RequestPaymentConfiguration(_SerdeShape): + """Container for Payer.""" + + payer: str + """Specifies who pays for the download and request fees.""" + +@dataclass(kw_only=True) +class RequestProgress(_SerdeShape): + """ + Container for specifying if periodic `QueryProgress` messages should be + sent. + """ + + enabled: bool | None = ... + """ + Specifies whether periodic QueryProgress frames should be sent. Valid + values: TRUE, FALSE. Default value: FALSE. + """ + +@dataclass(kw_only=True) +class RestoreObjectInput(_SerdeShape): + """Dataclass for RestoreObjectInput structure.""" + + bucket: str | None = ... + """ + The bucket name containing the object to restore. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Object key for which the action was initiated.""" + version_id: str | None = ... + """VersionId used to reference a specific version of the object.""" + restore_request: RestoreRequest | None = ... + """Container for restore job parameters.""" + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class RestoreObjectOutput(_SerdeShape): + """Dataclass for RestoreObjectOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + restore_output_path: str | None = ... + """ + Indicates the path in the provided S3 output location where Select + results will be restored to. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class RestoreRequest(_SerdeShape): + """Container for restore job parameters.""" + + days: int | None = ... + """ + Lifetime of the active copy in days. Do not use with restores that + specify `OutputLocation`. + + The Days element is required for regular restores, and must not be + provided for select requests. + """ + glacier_job_parameters: GlacierJobParameters | None = ... + """ + S3 Glacier related parameters pertaining to this job. Do not use with + restores that specify `OutputLocation`. + """ + type: str | None = ... + """ + Warning: + Amazon S3 Select is no longer available to new customers. Existing + customers of Amazon S3 Select can continue to use the feature as usual. + [Learn + more](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + + Type of restore request. + """ + tier: str | None = ... + """Retrieval tier at which the restore will be processed.""" + description: str | None = ... + """The optional description for the job.""" + select_parameters: SelectParameters | None = ... + """ + Warning: + Amazon S3 Select is no longer available to new customers. Existing + customers of Amazon S3 Select can continue to use the feature as usual. + [Learn + more](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + + Describes the parameters for Select job types. + """ + output_location: OutputLocation | None = ... + """Describes the location where the restore job's output is stored.""" + +class RestoreRequestType(UnknownEnumMixin, StrEnum): + SELECT = "SELECT" + +@dataclass(kw_only=True) +class RestoreStatus(_SerdeShape): + """ + Specifies the restoration status of an object. Objects in certain + storage classes must be restored before they can be retrieved. For more + information about these storage classes and how to work with archived + objects, see [Working with archived + objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. Directory + buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone storage + class) in Availability Zones and `ONEZONE_IA` (the S3 One + Zone-Infrequent Access storage class) in Dedicated Local Zones. + """ + + is_restore_in_progress: bool | None = ... + """ + Specifies whether the object is currently being restored. If the object + restoration is in progress, the header returns the value `TRUE`. For + example: + + `x-amz-optional-object-attributes: IsRestoreInProgress="true"` + + If the object restoration has completed, the header returns the value + `FALSE`. For example: + + `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"` + + If the object hasn't been restored, there is no header response. + """ + restore_expiry_date: datetime | None = ... + """ + Indicates when the restored copy will expire. This value is populated + only if the object has already been restored. For example: + + `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"` + """ + +@dataclass(kw_only=True) +class RoutingRule(_SerdeShape): + """ + Specifies the redirect behavior and when a redirect is applied. For more + information about routing rules, see [Configuring advanced conditional + redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) + in the *Amazon S3 User Guide*. + """ + + condition: Condition | None = ... + """ + A container for describing a condition that must be met for the + specified redirect to apply. For example, 1. If request is for pages in + the `/docs` folder, redirect to the `/documents` folder. 2. If request + results in HTTP error 4xx, redirect request to another host where you + might process the error. + """ + redirect: Redirect + """ + Container for redirect information. You can redirect requests to another + host, to another page, or with another protocol. In the event of an + error, you can specify a different error code to return. + """ + +@dataclass(kw_only=True) +class S3KeyFilter(_SerdeShape): + """A container for object key name prefix and suffix filtering rules.""" + + filter_rules: list[FilterRule] | None = ... + """ + A list of containers for the key-value pair that defines the criteria + for the filter rule. + """ + +@dataclass(kw_only=True) +class S3Location(_SerdeShape): + """ + Describes an Amazon S3 location that will receive the results of the + restore request. + """ + + bucket_name: str + """The name of the bucket where the restore results will be placed.""" + prefix: str + """The prefix that is prepended to the restore results for this request.""" + encryption: Encryption | None = ... + """Contains the type of server-side encryption used.""" + canned_acl: str | None = ... + """The canned ACL to apply to the restore results.""" + access_control_list: list[Grant] | None = ... + """A list of grants that control access to the staged results.""" + tagging: Tagging | None = ... + """The tag-set that is applied to the restore results.""" + user_metadata: list[MetadataEntry] | None = ... + """A list of metadata to store with the restore results in S3.""" + storage_class: str | None = ... + """The class of storage used to store the restore results.""" + +class S3TablesBucketType(UnknownEnumMixin, StrEnum): + AWS = "aws" + CUSTOMER = "customer" + +@dataclass(kw_only=True) +class S3TablesDestination(_SerdeShape): + """ + The destination information for a V1 S3 Metadata configuration. The + destination table bucket must be in the same Region and Amazon Web + Services account as the general purpose bucket. The specified metadata + table name must be unique within the `aws_s3_metadata` namespace in the + destination table bucket. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + table_bucket_arn: str + """ + The Amazon Resource Name (ARN) for the table bucket that's specified as + the destination in the metadata table configuration. The destination + table bucket must be in the same Region and Amazon Web Services account + as the general purpose bucket. + """ + table_name: str + """ + The name for the metadata table in your metadata table configuration. + The specified metadata table name must be unique within the + `aws_s3_metadata` namespace in the destination table bucket. + """ + +@dataclass(kw_only=True) +class S3TablesDestinationResult(_SerdeShape): + """ + The destination information for a V1 S3 Metadata configuration. The + destination table bucket must be in the same Region and Amazon Web + Services account as the general purpose bucket. The specified metadata + table name must be unique within the `aws_s3_metadata` namespace in the + destination table bucket. + + Note: + If you created your S3 Metadata configuration before July 15, 2025, we + recommend that you delete and re-create your configuration by using + [CreateBucketMetadataConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) + so that you can expire journal table records and create a live inventory + table. + """ + + table_bucket_arn: str + """ + The Amazon Resource Name (ARN) for the table bucket that's specified as + the destination in the metadata table configuration. The destination + table bucket must be in the same Region and Amazon Web Services account + as the general purpose bucket. + """ + table_name: str + """ + The name for the metadata table in your metadata table configuration. + The specified metadata table name must be unique within the + `aws_s3_metadata` namespace in the destination table bucket. + """ + table_arn: str + """ + The Amazon Resource Name (ARN) for the metadata table in the metadata + table configuration. The specified metadata table name must be unique + within the `aws_s3_metadata` namespace in the destination table bucket. + """ + table_namespace: str + """ + The table bucket namespace for the metadata table in your metadata table + configuration. This value is always `aws_s3_metadata`. + """ + +@dataclass(kw_only=True) +class ScanRange(_SerdeShape): + """ + Specifies the byte range of the object to get the records from. A record + is processed when its first byte is contained by the range. This + parameter is optional, but when specified, it must not be empty. See RFC + 2616, Section 14.35.1 about how to specify the start and end of the + range. + """ + + start: int | None = ... + """ + Specifies the start of the byte range. This parameter is optional. Valid + values: non-negative integers. The default value is 0. If only `start` + is supplied, it means scan from that point to the end of the file. For + example, + ``{=html}``{=html}`50```{=html}``{=html} + means scan from byte 50 until the end of the file. + """ + end: int | None = ... + """ + Specifies the end of the byte range. This parameter is optional. Valid + values: non-negative integers. The default value is one less than the + size of the object being queried. If only the End parameter is supplied, + it is interpreted to mean scan the last N bytes of the file. For + example, + ``{=html}``{=html}`50```{=html}``{=html} + means scan the last 50 bytes. + """ + +@dataclass +class SelectObjectContentEventStreamRecords(_SerdeShape): + """The Records Event.""" + + value: RecordsEvent + +@dataclass +class SelectObjectContentEventStreamStats(_SerdeShape): + """The Stats Event.""" + + value: StatsEvent + +@dataclass +class SelectObjectContentEventStreamProgress(_SerdeShape): + """The Progress Event.""" + + value: ProgressEvent + +@dataclass +class SelectObjectContentEventStreamCont(_SerdeShape): + """The Continuation Event.""" + + value: ContinuationEvent + +@dataclass +class SelectObjectContentEventStreamEnd(_SerdeShape): + """The End Event.""" + + value: EndEvent + +@dataclass +class SelectObjectContentEventStreamUnknown(_SerdeShape): + """ + Represents an unknown variant. If you receive this value, you will need + to update your library to receive the parsed value. This value may not + be deliberately sent. + """ + + tag: str + +SelectObjectContentEventStream = Union[ + SelectObjectContentEventStreamRecords + | SelectObjectContentEventStreamStats + | SelectObjectContentEventStreamProgress + | SelectObjectContentEventStreamCont + | SelectObjectContentEventStreamEnd + | SelectObjectContentEventStreamUnknown +] +"""The container for selecting objects from a content event stream.""" + +class _SelectObjectContentEventStreamDeserializer: + def deserialize( + self, deserializer: ShapeDeserializer + ) -> SelectObjectContentEventStream: ... + +@dataclass(kw_only=True) +class SelectObjectContentInput(_SerdeShape): + """ + Note: + Learn Amazon S3 Select is no longer available to new customers. Existing + customers of Amazon S3 Select can continue to use the feature as usual. + [Learn + more](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + + Request to filter the contents of an Amazon S3 object based on a simple + Structured Query Language (SQL) statement. In the request, along with + the SQL expression, you must specify a data serialization format (JSON + or CSV) of the object. Amazon S3 uses this to parse object data into + records. It returns only records that match the specified SQL + expression. You must also specify the data serialization format for the + response. For more information, see [S3Select API + Documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html). + """ + + bucket: str | None = ... + """The S3 bucket.""" + key: str | None = ... + """The object key.""" + sse_customer_algorithm: str | None = ... + """ + The server-side encryption (SSE) algorithm used to encrypt the object. + This parameter is needed only when the object was created using a + checksum algorithm. For more information, see [Protecting data using + SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + """ + sse_customer_key: str | None = ... + """ + The server-side encryption (SSE) customer managed key. This parameter is + needed only when the object was created using a checksum algorithm. For + more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + """ + sse_customer_key_md5: str | None = ... + """ + The MD5 server-side encryption (SSE) customer managed key. This + parameter is needed only when the object was created using a checksum + algorithm. For more information, see [Protecting data using SSE-C + keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + in the *Amazon S3 User Guide*. + """ + expression: str | None = ... + """The expression that is used to query the object.""" + expression_type: str | None = ... + """The type of the provided expression (for example, SQL).""" + request_progress: RequestProgress | None = ... + """Specifies if periodic request progress information should be enabled.""" + input_serialization: InputSerialization | None = ... + """Describes the format of the data in the object that is being queried.""" + output_serialization: OutputSerialization | None = ... + """ + Describes the format of the data that you want Amazon S3 to return in + response. + """ + scan_range: ScanRange | None = ... + """ + Specifies the byte range of the object to get the records from. A record + is processed when its first byte is contained by the range. This + parameter is optional, but when specified, it must not be empty. See RFC + 2616, Section 14.35.1 about how to specify the start and end of the + range. + + `ScanRange`may be used in the following ways: + + - ``{=html}``{=html}`50```{=html}``{=html}`100```{=html}``{=html} - + process only the records starting between the bytes 50 and 100 + (inclusive, counting from zero) + + - ``{=html}``{=html}`50```{=html}``{=html} - + process only the records starting after the byte 50 + + - ``{=html}``{=html}`50```{=html}``{=html} - + process only the records within the last 50 bytes of the file. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class SelectObjectContentOutput(_SerdeShape): + """Dataclass for SelectObjectContentOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class SelectParameters(_SerdeShape): + """ + Warning: + Amazon S3 Select is no longer available to new customers. Existing + customers of Amazon S3 Select can continue to use the feature as usual. + [Learn + more](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + + Describes the parameters for Select job types. + + Learn [How to optimize querying your data in Amazon + S3](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + using [Amazon + Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html), [S3 + Object + Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html), + or client-side filtering. + """ + + input_serialization: InputSerialization + """Describes the serialization format of the object.""" + expression_type: str + """The type of the provided expression (for example, SQL).""" + expression: str + """ + Warning: + Amazon S3 Select is no longer available to new customers. Existing + customers of Amazon S3 Select can continue to use the feature as usual. + [Learn + more](http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) + + The expression that is used to query the object. + """ + output_serialization: OutputSerialization + """Describes how the results of the Select job are serialized.""" + +class ServerSideEncryption(UnknownEnumMixin, StrEnum): + AES256 = "AES256" + AWS_FSX = "aws:fsx" + AWS_BACKUP = "aws:backup" + AWS_KMS = "aws:kms" + AWS_KMS_DSSE = "aws:kms:dsse" + +@dataclass(kw_only=True) +class ServerSideEncryptionByDefault(_SerdeShape): + """ + Describes the default server-side encryption to apply to new objects in + the bucket. If a PUT Object request doesn't specify any server-side + encryption, this default encryption will be applied. For more + information, see + [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html). + + Note: + - **General purpose buckets** - If you don't specify a customer managed + key at configuration, Amazon S3 automatically creates an Amazon Web + Services KMS key (`aws/s3`) in your Amazon Web Services account the + first time that you add an object encrypted with SSE-KMS to a bucket. + By default, Amazon S3 uses this KMS key for SSE-KMS. + + - **Directory buckets** - Your SSE-KMS configuration can only support 1 + [customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + per directory bucket's lifetime. The [Amazon Web Services managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) + (`aws/s3`) isn't supported. + + - **Directory buckets** - For directory buckets, there are only two + supported options for server-side encryption: SSE-S3 and SSE-KMS. + """ + + sse_algorithm: str + """ + Server-side encryption algorithm to use for the default encryption. + + Note: + For directory buckets, there are only two supported values for + server-side encryption: `AES256` and `aws:kms`. + """ + kms_master_key_id: str | None = ... + """ + Amazon Web Services Key Management Service (KMS) customer managed key ID + to use for the default encryption. + + Note: + - **General purpose buckets** - This parameter is allowed if and only if + `SSEAlgorithm` is set to `aws:kms` or `aws:kms:dsse`. + + - **Directory buckets** - This parameter is allowed if and only if + `SSEAlgorithm` is set to `aws:kms`. + + You can specify the key ID, key alias, or the Amazon Resource Name (ARN) + of the KMS key. + + - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key ARN: + `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` + + - Key Alias: `alias/alias-name` + + If you are using encryption with cross-account or Amazon Web Services + service operations, you must use a fully qualified KMS key ARN. For more + information, see [Using encryption for cross-account + operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). + + Note: + - **General purpose buckets** - If you're specifying a customer managed + KMS key, we recommend using a fully qualified KMS key ARN. If you use + a KMS key alias instead, then KMS resolves the key within the + requester's account. This behavior can result in data that's + encrypted with a KMS key that belongs to the requester, and not the + bucket owner. Also, if you use a key ID, you can run into a + LogDestination undeliverable error when creating a VPC flow log. + + - **Directory buckets** - When you specify an [KMS customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + for encryption in your directory bucket, only use the key ID or key + ARN. The key alias format of the KMS key isn't supported. + Warning: + Amazon S3 only supports symmetric encryption KMS keys. For more + information, see [Asymmetric keys in Amazon Web Services + KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + in the *Amazon Web Services Key Management Service Developer Guide*. + """ + +@dataclass(kw_only=True) +class ServerSideEncryptionConfiguration(_SerdeShape): + """Specifies the default server-side-encryption configuration.""" + + rules: list[ServerSideEncryptionRule] + """ + Container for information about a particular server-side encryption + configuration rule. + """ + +@dataclass(kw_only=True) +class ServerSideEncryptionRule(_SerdeShape): + """ + Specifies the default server-side encryption configuration. + + Note: + - **General purpose buckets** - If you're specifying a customer managed + KMS key, we recommend using a fully qualified KMS key ARN. If you use + a KMS key alias instead, then KMS resolves the key within the + requester's account. This behavior can result in data that's + encrypted with a KMS key that belongs to the requester, and not the + bucket owner. + + - **Directory buckets** - When you specify an [KMS customer managed + key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) + for encryption in your directory bucket, only use the key ID or key + ARN. The key alias format of the KMS key isn't supported. + """ + + apply_server_side_encryption_by_default: ServerSideEncryptionByDefault | None = ... + """ + Specifies the default server-side encryption to apply to new objects in + the bucket. If a PUT Object request doesn't specify any server-side + encryption, this default encryption will be applied. + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key with server-side + encryption using KMS (SSE-KMS) for new objects in the bucket. Existing + objects are not affected. Setting the `BucketKeyEnabled` element to + `true` causes Amazon S3 to use an S3 Bucket Key. + + Note: + - **General purpose buckets** - By default, S3 Bucket Key is not + enabled. For more information, see [Amazon S3 Bucket + Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) + in the *Amazon S3 User Guide*. + + - **Directory buckets** - S3 Bucket Keys are always enabled for `GET` + and `PUT` operations in a directory bucket and can't be disabled. S3 + Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects + from general purpose buckets to directory buckets, from directory + buckets to general purpose buckets, or between directory buckets, + through + [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), + [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), + [the Copy operation in Batch + Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops), + or [the import + jobs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job). + In this case, Amazon S3 makes a call to KMS every time a copy request + is made for a KMS-encrypted object. + """ + blocked_encryption_types: BlockedEncryptionTypes | None = ... + """ + A bucket-level setting for Amazon S3 general purpose buckets used to + prevent the upload of new objects encrypted with the specified + server-side encryption type. For example, blocking an encryption type + will block `PutObject`, `CopyObject`, `PostObject`, multipart upload, + and replication requests to the bucket for objects with the specified + encryption type. However, you can continue to read and list any + pre-existing objects already encrypted with the specified encryption + type. For more information, see [Blocking or unblocking SSE-C for a + general purpose + bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html). + + Note: + Currently, this parameter only supports blocking or unblocking + server-side encryption with customer-provided keys (SSE-C). For more + information about SSE-C, see [Using server-side encryption with + customer-provided keys + (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html). + """ + +@dataclass(kw_only=True) +class SessionCredentials(_SerdeShape): + """ + The established temporary security credentials of the session. + + Note: + **Directory buckets** - These session credentials are only supported for + the authentication and authorization of Zonal endpoint API operations on + directory buckets. + """ + + access_key_id: str + """ + A unique identifier that's associated with a secret access key. The + access key ID and the secret access key are used together to sign + programmatic Amazon Web Services requests cryptographically. + """ + secret_access_key: str + """ + A key that's used with the access key ID to cryptographically sign + programmatic Amazon Web Services requests. Signing a request identifies + the sender and prevents the request from being altered. + """ + session_token: str + """ + A part of the temporary security credentials. The session token is used + to validate the temporary security credentials. + """ + expiration: datetime + """ + Temporary security credentials expire after a specified interval. After + temporary credentials expire, any calls that you make with those + credentials will fail. So you must generate a new set of temporary + credentials. Temporary credentials cannot be extended or refreshed + beyond the original specified interval. + """ + +class SessionMode(UnknownEnumMixin, StrEnum): + READ_ONLY = "ReadOnly" + READ_WRITE = "ReadWrite" + +@dataclass(kw_only=True) +class SimplePrefix(_SerdeShape): + """ + To use simple format for S3 keys for log objects, set SimplePrefix to an + empty object. + + `[DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]` + """ + +@dataclass(kw_only=True) +class SourceSelectionCriteria(_SerdeShape): + """ + A container that describes additional filters for identifying the source + objects that you want to replicate. You can choose to enable or disable + the replication of these objects. Currently, Amazon S3 supports only the + filter that you can specify for objects created with server-side + encryption using a customer managed key stored in Amazon Web Services + Key Management Service (SSE-KMS). + """ + + sse_kms_encrypted_objects: SseKmsEncryptedObjects | None = ... + """ + A container for filter information for the selection of Amazon S3 + objects encrypted with Amazon Web Services KMS. If you include + `SourceSelectionCriteria` in the replication configuration, this element + is required. + """ + replica_modifications: ReplicaModifications | None = ... + """ + A filter that you can specify for selections for modifications on + replicas. Amazon S3 doesn't replicate replica modifications by default. + In the latest version of replication configuration (when `Filter` is + specified), you can specify this element and set the status to `Enabled` + to replicate modifications on replicas. + + Note: + If you don't specify the `Filter` element, Amazon S3 assumes that the + replication configuration is the earlier version, V1. In the earlier + version, this element is not allowed + """ + +@dataclass(kw_only=True) +class SSEKMS(_SerdeShape): + """Specifies the use of SSE-KMS to encrypt delivered inventory reports.""" + + key_id: str + """ + Specifies the ID of the Key Management Service (KMS) symmetric + encryption customer managed key to use for encrypting inventory reports. + """ + +@dataclass(kw_only=True) +class SseKmsEncryptedObjects(_SerdeShape): + """ + A container for filter information for the selection of S3 objects + encrypted with Amazon Web Services KMS. + """ + + status: str + """ + Specifies whether Amazon S3 replicates objects created with server-side + encryption using an Amazon Web Services KMS key stored in Amazon Web + Services Key Management Service. + """ + +class SseKmsEncryptedObjectsStatus(UnknownEnumMixin, StrEnum): + ENABLED = "Enabled" + DISABLED = "Disabled" + +@dataclass(kw_only=True) +class SSEKMSEncryption(_SerdeShape): + """ + If `SSEKMS` is specified for `ObjectEncryption`, this data type + specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to + use and whether to use an S3 Bucket Key for server-side encryption using + Key Management Service (KMS) keys (SSE-KMS). + """ + + kms_key_arn: str + """ + Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to + use for the updated server-side encryption type. Required if + `ObjectEncryption` specifies `SSEKMS`. + + Note: + You must specify the full Amazon Web Services KMS key ARN. The KMS key + ID and KMS key alias aren't supported. + + Pattern: (`arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+`) + """ + bucket_key_enabled: bool | None = ... + """ + Specifies whether Amazon S3 should use an S3 Bucket Key for object + encryption with server-side encryption using Key Management Service + (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to + `false`. Setting this value to `true` causes Amazon S3 to use an S3 + Bucket Key for object encryption with SSE-KMS. For more information, see + [Using Amazon S3 Bucket + Keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) + in the *Amazon S3 User Guide*. + + Valid Values: `true` | `false` + """ + +@dataclass(kw_only=True) +class SSES3(_SerdeShape): + """Specifies the use of SSE-S3 to encrypt delivered inventory reports.""" + +@dataclass(kw_only=True) +class Stats(_SerdeShape): + """Container for the stats details.""" + + bytes_scanned: int | None = ... + """The total number of object bytes scanned.""" + bytes_processed: int | None = ... + """The total number of uncompressed object bytes processed.""" + bytes_returned: int | None = ... + """The total number of bytes of records payload data returned.""" + +@dataclass(kw_only=True) +class StatsEvent(_SerdeShape): + """Container for the Stats Event.""" + + details: Stats | None = ... + """The Stats event details.""" + +class StorageClass(UnknownEnumMixin, StrEnum): + STANDARD = "STANDARD" + REDUCED_REDUNDANCY = "REDUCED_REDUNDANCY" + STANDARD_IA = "STANDARD_IA" + ONEZONE_IA = "ONEZONE_IA" + INTELLIGENT_TIERING = "INTELLIGENT_TIERING" + GLACIER = "GLACIER" + DEEP_ARCHIVE = "DEEP_ARCHIVE" + OUTPOSTS = "OUTPOSTS" + GLACIER_IR = "GLACIER_IR" + SNOW = "SNOW" + EXPRESS_ONEZONE = "EXPRESS_ONEZONE" + FSX_OPENZFS = "FSX_OPENZFS" + FSX_ONTAP = "FSX_ONTAP" + AWS_BACKUP_WARM = "AWS_BACKUP_WARM" + AWS_BACKUP_LOW_COST_WARM = "AWS_BACKUP_LOW_COST_WARM" + +@dataclass(kw_only=True) +class StorageClassAnalysis(_SerdeShape): + """ + Specifies data related to access patterns to be collected and made + available to analyze the tradeoffs between different storage classes for + an Amazon S3 bucket. + """ + + data_export: StorageClassAnalysisDataExport | None = ... + """ + Specifies how data related to the storage class analysis for an Amazon + S3 bucket should be exported. + """ + +@dataclass(kw_only=True) +class StorageClassAnalysisDataExport(_SerdeShape): + """ + Container for data related to the storage class analysis for an Amazon + S3 bucket for export. + """ + + output_schema_version: str + """ + The version of the output schema to use when exporting data. Must be + `V_1`. + """ + destination: AnalyticsExportDestination + """The place to store the data for an analysis.""" + +class StorageClassAnalysisSchemaVersion(UnknownEnumMixin, StrEnum): + V_1 = "V_1" + +class TableSseAlgorithm(UnknownEnumMixin, StrEnum): + AWS_KMS = "aws:kms" + AES256 = "AES256" + +@dataclass(kw_only=True) +class Tag(_SerdeShape): + """A container of a key value name pair.""" + + key: str + """Name of the object key.""" + value: str + """Value of the tag.""" + +@dataclass(kw_only=True) +class Tagging(_SerdeShape): + """Container for `TagSet` elements.""" + + tag_set: list[Tag] + """A collection for a set of tags""" + +class TaggingDirective(UnknownEnumMixin, StrEnum): + COPY = "COPY" + REPLACE = "REPLACE" + +@dataclass(kw_only=True) +class TargetGrant(_SerdeShape): + """ + Container for granting information. + + Buckets that use the bucket owner enforced setting for Object Ownership + don't support target grants. For more information, see [Permissions + server access log + delivery](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) + in the *Amazon S3 User Guide*. + """ + + grantee: Grantee | None = ... + """Container for the person being granted permissions.""" + permission: str | None = ... + """Logging permissions assigned to the grantee for the bucket.""" + +@dataclass(kw_only=True) +class TargetObjectKeyFormat(_SerdeShape): + """ + Amazon S3 key format for log objects. Only one format, PartitionedPrefix + or SimplePrefix, is allowed. + """ + + simple_prefix: SimplePrefix | None = ... + """ + To use the simple format for S3 keys for log objects. To specify + SimplePrefix format, set SimplePrefix to {}. + """ + partitioned_prefix: PartitionedPrefix | None = ... + """Partitioned S3 key for log objects.""" + +class Tier(UnknownEnumMixin, StrEnum): + STANDARD = "Standard" + BULK = "Bulk" + EXPEDITED = "Expedited" + +@dataclass(kw_only=True) +class Tiering(_SerdeShape): + """ + The S3 Intelligent-Tiering storage class is designed to optimize storage + costs by automatically moving data to the most cost-effective storage + access tier, without additional operational overhead. + """ + + days: int + """ + The number of consecutive days of no access after which an object will + be eligible to be transitioned to the corresponding tier. The minimum + number of days specified for Archive Access tier must be at least 90 + days and Deep Archive Access tier must be at least 180 days. The maximum + can be up to 2 years (730 days). + """ + access_tier: str + """ + S3 Intelligent-Tiering access tier. See [Storage class for automatically + optimizing frequently and infrequently accessed + objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) + for a list of access tiers in the S3 Intelligent-Tiering storage class. + """ + +@dataclass(kw_only=True) +class TooManyParts(ServiceError, _SerdeShape): + """ + You have attempted to add more parts than the maximum of 10000 that are + allowed for this object. You can use the CopyObject operation to copy + this object to another and then add more data to the newly copied + object. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class TopicConfiguration(_SerdeShape): + """ + A container for specifying the configuration for publication of messages + to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon + S3 detects specified events. + """ + + id: str | None = ... + """ + An optional unique identifier for configurations in a notification + configuration. If you don't provide one, Amazon S3 will assign an ID. + """ + topic_arn: str + """ + The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon + S3 publishes a message when it detects events of the specified type. + """ + events: list[str] + """ + The Amazon S3 bucket event about which to send notifications. For more + information, see [Supported Event + Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + in the *Amazon S3 User Guide*. + """ + filter: NotificationConfigurationFilter | None = ... + """ + Specifies object key name filtering rules. For information about key + name filtering, see [Configuring event notifications using object key + name + filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) + in the *Amazon S3 User Guide*. + """ + +@dataclass(kw_only=True) +class Transition(_SerdeShape): + """ + Specifies when an object transitions to a specified storage class. For + more information about Amazon S3 lifecycle configuration rules, see + [Transitioning Objects Using Amazon S3 + Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) + in the *Amazon S3 User Guide*. + """ + + date: datetime | None = ... + """ + Indicates when objects are transitioned to the specified storage class. + The date value must be in ISO 8601 format. The time is always midnight + UTC. + """ + days: int | None = ... + """ + Indicates the number of days after creation when objects are + transitioned to the specified storage class. The value can be `0` or any + positive integer. Be aware that some storage classes have a minimum + storage duration and that you're charged for transitioning objects + before their minimum storage duration. For more information, see + [Constraints and considerations for + transitions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#lifecycle-configuration-constraints) + in the *Amazon S3 User Guide*. + """ + storage_class: str | None = ... + """The storage class to which you want the object to transition.""" + +class TransitionDefaultMinimumObjectSize(UnknownEnumMixin, StrEnum): + VARIES_BY_STORAGE_CLASS = "varies_by_storage_class" + ALL_STORAGE_CLASSES_128_K = "all_storage_classes_128K" + +class TransitionStorageClass(UnknownEnumMixin, StrEnum): + GLACIER = "GLACIER" + STANDARD_IA = "STANDARD_IA" + ONEZONE_IA = "ONEZONE_IA" + INTELLIGENT_TIERING = "INTELLIGENT_TIERING" + DEEP_ARCHIVE = "DEEP_ARCHIVE" + GLACIER_IR = "GLACIER_IR" + +class Type(UnknownEnumMixin, StrEnum): + CANONICAL_USER = "CanonicalUser" + AMAZON_CUSTOMER_BY_EMAIL = "AmazonCustomerByEmail" + GROUP = "Group" + +@dataclass(kw_only=True) +class UnsupportedMediaType(ServiceError, _SerdeShape): + """The annotation payload is not valid UTF-8 encoded text.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateBucketMetadataAnnotationTableConfigurationInput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataAnnotationTableConfigurationInput + structure. + """ + + bucket: str | None = ... + """The name of the bucket whose annotation table configuration to update.""" + content_md5: str | None = ... + """Base64-encoded MD5 digest of the message body.""" + checksum_algorithm: str | None = ... + """Checksum algorithm for the request payload.""" + annotation_table_configuration: AnnotationTableConfigurationUpdates | None = ... + """The annotation table configuration updates to apply.""" + expected_bucket_owner: str | None = ... + """The account ID of the expected bucket owner.""" + +@dataclass(kw_only=True) +class UpdateBucketMetadataAnnotationTableConfigurationOutput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataAnnotationTableConfigurationOutput + structure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateBucketMetadataInventoryTableConfigurationInput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataInventoryTableConfigurationInput + structure. + """ + + bucket: str | None = ... + """ + The general purpose bucket that corresponds to the metadata + configuration that you want to enable or disable an inventory table for. + """ + content_md5: str | None = ... + """The `Content-MD5` header for the inventory table configuration.""" + checksum_algorithm: str | None = ... + """The checksum algorithm to use with your inventory table configuration.""" + inventory_table_configuration: InventoryTableConfigurationUpdates | None = ... + """The contents of your inventory table configuration.""" + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that corresponds to the + metadata table configuration that you want to enable or disable an + inventory table for. + """ + +@dataclass(kw_only=True) +class UpdateBucketMetadataInventoryTableConfigurationOutput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataInventoryTableConfigurationOutput + structure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateBucketMetadataJournalTableConfigurationInput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataJournalTableConfigurationInput + structure. + """ + + bucket: str | None = ... + """ + The general purpose bucket that corresponds to the metadata + configuration that you want to enable or disable journal table record + expiration for. + """ + content_md5: str | None = ... + """The `Content-MD5` header for the journal table configuration.""" + checksum_algorithm: str | None = ... + """The checksum algorithm to use with your journal table configuration.""" + journal_table_configuration: JournalTableConfigurationUpdates | None = ... + """The contents of your journal table configuration.""" + expected_bucket_owner: str | None = ... + """ + The expected owner of the general purpose bucket that corresponds to the + metadata table configuration that you want to enable or disable journal + table record expiration for. + """ + +@dataclass(kw_only=True) +class UpdateBucketMetadataJournalTableConfigurationOutput(_SerdeShape): + """ + Dataclass for UpdateBucketMetadataJournalTableConfigurationOutput + structure. + """ + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UpdateObjectEncryptionInput(_SerdeShape): + """Dataclass for UpdateObjectEncryptionInput structure.""" + + bucket: str | None = ... + """ + The name of the general purpose bucket that contains the specified + object key name. + + When you use this operation with an access point attached to a general + purpose bucket, you must either provide the alias of the access point in + place of the bucket name or you must specify the access point Amazon + Resource Name (ARN). When using the access point ARN, you must direct + requests to the access point hostname. The access point hostname takes + the form + ` `*`AccessPointName`*`-`*`AccountId`*`.s3-accesspoint.`*`Region`*`.amazonaws.com`. + When using this operation with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Referencing + access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-naming.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """ + The key name of the object that you want to update the server-side + encryption type for. + """ + version_id: str | None = ... + """ + The version ID of the object that you want to update the server-side + encryption type for. + """ + object_encryption: ObjectEncryption | None = ... + """ + The updated server-side encryption type for this object. The + `UpdateObjectEncryption` operation supports the SSE-S3 and SSE-KMS + encryption types. + + Valid Values: `SSES3` | `SSEKMS` + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide doesn't match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + content_md5: str | None = ... + """ + The MD5 hash for the request body. For requests made using the Amazon + Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, + this field is calculated automatically. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use an Amazon Web Services SDK. This header doesn't provide any + additional functionality if you don't use the SDK. When you send this + header, there must be a corresponding `x-amz-checksum` or + `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request with + the HTTP status code `400 Bad Request`. For more information, see + [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + """ + +@dataclass(kw_only=True) +class UpdateObjectEncryptionOutput(_SerdeShape): + """Dataclass for UpdateObjectEncryptionOutput structure.""" + + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UploadPartCopyInput(_SerdeShape): + """Dataclass for UploadPartCopyInput structure.""" + + bucket: str | None = ... + """ + The bucket name. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + Note: + Copying objects across different Amazon Web Services Regions isn't + supported when the source or destination bucket is in Amazon Web + Services Local Zones. The source and destination buckets must have the + same parent Amazon Web Services Region. Otherwise, you get an HTTP + `400 Bad Request` error with the error code `InvalidRequest`. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + copy_source: str | None = ... + """ + Specifies the source object for the copy operation. You specify the + value in one of two formats, depending on whether you want to access the + source object through an [access + point](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): + + - For objects not accessed through an access point, specify the name of + the source bucket and key of the source object, separated by a slash + (/). For example, to copy the object `reports/january.pdf` from the + bucket `awsexamplebucket`, use `awsexamplebucket/reports/january.pdf`. + The value must be URL-encoded. + + - For objects accessed through access points, specify the Amazon + Resource Name (ARN) of the object as accessed through the access + point, in the format + `arn:aws:s3:```{=html}`:```{=html}`:accesspoint/```{=html}`/object/```{=html}. + For example, to copy the object `reports/january.pdf` through access + point `my-access-point` owned by account `123456789012` in Region + `us-west-2`, use the URL encoding of + `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`. + The value must be URL encoded. + + Note: + - Amazon S3 supports copy operations using Access points only when the + source and destination buckets are in the same Amazon Web Services + Region. + + - Access points are not supported by directory buckets. + + Alternatively, for objects accessed through Amazon S3 on Outposts, + specify the ARN of the object as accessed in the format + `arn:aws:s3-outposts:```{=html}`:```{=html}`:outpost/```{=html}`/object/```{=html}. + For example, to copy the object `reports/january.pdf` through outpost + `my-outpost` owned by account `123456789012` in Region `us-west-2`, + use the URL encoding of + `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`. + The value must be URL-encoded. + + If your bucket has versioning enabled, you could have multiple versions + of the same object. By default, `x-amz-copy-source` identifies the + current version of the source object to copy. To copy a specific version + of the source object to copy, append `?versionId=```{=html} + to the `x-amz-copy-source` request header (for example, + `x-amz-copy-source: /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`). + + If the current version is a delete marker and you don't specify a + versionId in the `x-amz-copy-source` request header, Amazon S3 returns a + `404 Not Found` error, because the object does not exist. If you specify + versionId in the `x-amz-copy-source` and the versionId is a delete + marker, Amazon S3 returns an HTTP `400 Bad Request` error, because you + are not allowed to specify a delete marker as a version for the + `x-amz-copy-source`. + + Note: + **Directory buckets** - S3 Versioning isn't enabled and supported for + directory buckets. + """ + copy_source_if_match: str | None = ... + """ + Copies the object if its entity tag (ETag) matches the specified tag. + + If both of the `x-amz-copy-source-if-match` and + `x-amz-copy-source-if-unmodified-since` headers are present in the + request as follows: + + `x-amz-copy-source-if-match` condition evaluates to `true`, and; + + `x-amz-copy-source-if-unmodified-since` condition evaluates to `false`; + + Amazon S3 returns `200 OK` and copies the data. + """ + copy_source_if_modified_since: datetime | None = ... + """ + Copies the object if it has been modified since the specified time. + + If both of the `x-amz-copy-source-if-none-match` and + `x-amz-copy-source-if-modified-since` headers are present in the request + as follows: + + `x-amz-copy-source-if-none-match` condition evaluates to `false`, and; + + `x-amz-copy-source-if-modified-since` condition evaluates to `true`; + + Amazon S3 returns `412 Precondition Failed` response code. + """ + copy_source_if_none_match: str | None = ... + """ + Copies the object if its entity tag (ETag) is different than the + specified ETag. + + If both of the `x-amz-copy-source-if-none-match` and + `x-amz-copy-source-if-modified-since` headers are present in the request + as follows: + + `x-amz-copy-source-if-none-match` condition evaluates to `false`, and; + + `x-amz-copy-source-if-modified-since` condition evaluates to `true`; + + Amazon S3 returns `412 Precondition Failed` response code. + """ + copy_source_if_unmodified_since: datetime | None = ... + """ + Copies the object if it hasn't been modified since the specified time. + + If both of the `x-amz-copy-source-if-match` and + `x-amz-copy-source-if-unmodified-since` headers are present in the + request as follows: + + `x-amz-copy-source-if-match` condition evaluates to `true`, and; + + `x-amz-copy-source-if-unmodified-since` condition evaluates to `false`; + + Amazon S3 returns `200 OK` and copies the data. + """ + copy_source_range: str | None = ... + """ + The range of bytes to copy from the source object. The range value must + use the form bytes=first-last, where the first and last are the + zero-based byte offsets to copy. For example, bytes=0-9 indicates that + you want to copy the first 10 bytes of the source. You can copy a range + only if the source object is greater than 5 MB. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + part_number: int | None = ... + """ + Part number of part being copied. This is a positive integer between 1 + and 10,000. + """ + upload_id: str | None = ... + """Upload ID identifying the multipart upload whose part is being copied.""" + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + AES256). + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm` header. This must be + the same encryption key specified in the initiate multipart upload + request. + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported when the destination bucket is a + directory bucket. + """ + copy_source_sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when decrypting the source object (for + example, `AES256`). + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + copy_source_sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use to + decrypt the source object. The encryption key provided in this header + must be one that was used when the source object was created. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + copy_source_sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected destination bucket owner. If the account + ID that you provide does not match the actual owner of the destination + bucket, the request fails with the HTTP status code `403 Forbidden` + (access denied). + """ + expected_source_bucket_owner: str | None = ... + """ + The account ID of the expected source bucket owner. If the account ID + that you provide does not match the actual owner of the source bucket, + the request fails with the HTTP status code `403 Forbidden` (access + denied). + """ + +@dataclass(kw_only=True) +class UploadPartCopyOutput(_SerdeShape): + """Dataclass for UploadPartCopyOutput structure.""" + + copy_source_version_id: str | None = ... + """ + The version of the source object that was copied, if you have enabled + versioning on the source bucket. + + Note: + This functionality is not supported when the source object is in a + directory bucket. + """ + copy_part_result: CopyPartResult | None = ... + """Container for all response elements.""" + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the multipart upload uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class UploadPartInput(_SerdeShape): + """Dataclass for UploadPartInput structure.""" + + body: StreamingBlob = ... + """Object data.""" + bucket: str | None = ... + """ + The name of the bucket to which the multipart upload was initiated. + + **Directory buckets** - When you use this operation with a directory + bucket, you must use virtual-hosted-style requests in the format + ` `*`Bucket-name`*`.s3express-`*`zone-id`*`.`*`region-code`*`.amazonaws.com`. + Path-style requests are not supported. Directory bucket names must be + unique in the chosen Zone (Availability Zone or Local Zone). Bucket + names must follow the format + ` `*`bucket-base-name`*`--`*`zone-id`*`--x-s3` (for example, + ` `*`amzn-s3-demo-bucket`*`--`*`usw2-az1`*`--x-s3`). For information + about bucket naming restrictions, see [Directory bucket naming + rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + in the *Amazon S3 User Guide*. + + **Access points** - When you use this action with an access point for + general purpose buckets, you must provide the alias of the access point + in place of the bucket name or specify the access point ARN. When you + use this action with an access point for directory buckets, you must + provide the access point name in place of the bucket name. When using + the access point ARN, you must direct requests to the access point + hostname. The access point hostname takes the form + *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. + When using this action with an access point through the Amazon Web + Services SDKs, you provide the access point ARN in place of the bucket + name. For more information about access point ARNs, see [Using access + points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) + in the *Amazon S3 User Guide*. + + Note: + Object Lambda access points are not supported by directory buckets. + + **S3 on Outposts** - When you use this action with S3 on Outposts, you + must direct requests to the S3 on Outposts hostname. The S3 on Outposts + hostname takes the form + ` `*`AccessPointName`*`-`*`AccountId`*`.`*`outpostID`*`.s3-outposts.`*`Region`*`.amazonaws.com`. + When you use this action with S3 on Outposts, the destination bucket + must be the Outposts access point ARN or the access point alias. For + more information about S3 on Outposts, see [What is S3 on + Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + in the *Amazon S3 User Guide*. + """ + content_length: int | None = ... + """ + Size of the body in bytes. This parameter is useful when the size of the + body cannot be determined automatically. + """ + content_md5: str | None = ... + """ + The Base64 encoded 128-bit MD5 digest of the part data. This parameter + is auto-populated when using the command from the CLI. This parameter is + required if object lock parameters are specified. + + Note: + This functionality is not supported for directory buckets. + """ + checksum_algorithm: str | None = ... + """ + Indicates the algorithm used to create the checksum for the object when + you use the SDK. This header will not provide any additional + functionality if you don't use the SDK. When you send this header, + there must be a corresponding `x-amz-checksum` or `x-amz-trailer` header + sent. Otherwise, Amazon S3 fails the request with the HTTP status code + `400 Bad Request`. For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + If you provide an individual checksum, Amazon S3 ignores any provided + `ChecksumAlgorithm` parameter. + + This checksum algorithm must be the same for all parts and it match the + checksum value supplied in the `CreateMultipartUpload` request. + """ + checksum_crc32: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32` checksum of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 256-bit `SHA256` digest of the object. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 512-bit `SHA512` digest of the part. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `MD5` digest of the part. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH64` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH3` checksum of the part. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `XXHASH128` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + key: str | None = ... + """Object key for which the multipart upload was initiated.""" + part_number: int | None = ... + """ + Part number of part being uploaded. This is a positive integer between 1 + and 10,000. + """ + upload_id: str | None = ... + """Upload ID identifying the multipart upload whose part is being uploaded.""" + sse_customer_algorithm: str | None = ... + """ + Specifies the algorithm to use when encrypting the object (for example, + AES256). + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key: str | None = ... + """ + Specifies the customer-provided encryption key for Amazon S3 to use in + encrypting data. This value is used to store the object and then it is + discarded; Amazon S3 does not store the encryption key. The key must be + appropriate for use with the algorithm specified in the + `x-amz-server-side-encryption-customer-algorithm header`. This must be + the same encryption key specified in the initiate multipart upload + request. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + Specifies the 128-bit MD5 digest of the encryption key according to RFC + 1321. Amazon S3 uses this header for a message integrity check to ensure + that the encryption key was transmitted without error. + + Note: + This functionality is not supported for directory buckets. + """ + request_payer: str | None = ... + """ + Confirms that the requester knows that they will be charged for the + request. Bucket owners need not specify this parameter in their + requests. If either the source or destination S3 bucket has Requester + Pays enabled, the requester will pay for the corresponding charges. For + information about downloading objects from Requester Pays buckets, see + [Downloading Objects in Requester Pays + Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + in the *Amazon S3 User Guide*. + + Note: + This functionality is not supported for directory buckets. + """ + expected_bucket_owner: str | None = ... + """ + The account ID of the expected bucket owner. If the account ID that you + provide does not match the actual owner of the bucket, the request fails + with the HTTP status code `403 Forbidden` (access denied). + """ + +@dataclass(kw_only=True) +class UploadPartOutput(_SerdeShape): + """Dataclass for UploadPartOutput structure.""" + + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when you store this object in + Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + e_tag: str | None = ... + """Entity tag for the uploaded object.""" + checksum_crc32: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32` checksum of the part. This will only + be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc32_c: str | None = ... + """ + The Base64 encoded, 32-bit `CRC32C` checksum of the part. This will only + be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_crc64_nvme: str | None = ... + """ + The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + The Base64 encoded, 160-bit `SHA1` checksum of the part. This will only + be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha256: str | None = ... + """ + The Base64 encoded, 256-bit `SHA256` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha512: str | None = ... + """ + The Base64 encoded, 512-bit `SHA512` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + The Base64 encoded, 128-bit `MD5` checksum of the part. This will only + be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH64` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + The Base64 encoded, 64-bit `XXHASH3` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + The Base64 encoded, 128-bit `XXHASH128` checksum of the part. This will + only be present if the checksum was provided in the request. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + sse_customer_algorithm: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to confirm the + encryption algorithm that's used. + + Note: + This functionality is not supported for directory buckets. + """ + sse_customer_key_md5: str | None = ... + """ + If server-side encryption with a customer-provided encryption key was + requested, the response will include this header to provide the + round-trip message integrity verification of the customer-provided + encryption key. + + Note: + This functionality is not supported for directory buckets. + """ + ssekms_key_id: str | None = ... + """ + If present, indicates the ID of the KMS key that was used for object + encryption. + """ + bucket_key_enabled: bool | None = ... + """ + Indicates whether the multipart upload uses an S3 Bucket Key for + server-side encryption with Key Management Service (KMS) keys (SSE-KMS). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class VersioningConfiguration(_SerdeShape): + """ + Describes the versioning state of an Amazon S3 bucket. For more + information, see [PUT Bucket + versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) + in the *Amazon S3 API Reference*. + """ + + mfa_delete: str | None = ... + """ + Specifies whether MFA delete is enabled in the bucket versioning + configuration. This element is only returned if the bucket has been + configured with MFA delete. If the bucket has never been so configured, + this element is not returned. + """ + status: str | None = ... + """The versioning state of the bucket.""" + +@dataclass(kw_only=True) +class WebsiteConfiguration(_SerdeShape): + """Specifies website configuration parameters for an Amazon S3 bucket.""" + + error_document: ErrorDocument | None = ... + """The name of the error document for the website.""" + index_document: IndexDocument | None = ... + """The name of the index document for the website.""" + redirect_all_requests_to: RedirectAllRequestsTo | None = ... + """ + The redirect behavior for every request to this bucket's website + endpoint. + + Warning: + If you specify this property, you can't specify any other property. + """ + routing_rules: list[RoutingRule] | None = ... + """Rules that define when a redirect is applied and the redirect behavior.""" + +@dataclass(kw_only=True) +class WriteGetObjectResponseInput(_SerdeShape): + """Dataclass for WriteGetObjectResponseInput structure.""" + + request_route: str | None = ... + """Route prefix to the HTTP URL generated.""" + request_token: str | None = ... + """ + A single use encrypted token that maps `WriteGetObjectResponse` to the + end user `GetObject` request. + """ + body: StreamingBlob = ... + """The object data.""" + status_code: int | None = ... + """ + The integer status code for an HTTP response of a corresponding + `GetObject` request. The following is a list of status codes. + + - `200 - OK` + + - `206 - Partial Content` + + - `304 - Not Modified` + + - `400 - Bad Request` + + - `401 - Unauthorized` + + - `403 - Forbidden` + + - `404 - Not Found` + + - `405 - Method Not Allowed` + + - `409 - Conflict` + + - `411 - Length Required` + + - `412 - Precondition Failed` + + - `416 - Range Not Satisfiable` + + - `500 - Internal Server Error` + + - `503 - Service Unavailable` + """ + error_code: str | None = ... + """ +

+ A string that uniquely identifies an error condition. Returned in the + + tag of the error XML response for a corresponding `GetObject` call. + Cannot be used with a successful `StatusCode` header or when the + transformed object is provided in the body. All error codes from S3 are + sentence-cased. The regular expression (regex) value is + `"^[A-Z][a-zA-Z]+$"`. +

+ """ + error_message: str | None = ... + """ + Contains a generic description of the error condition. Returned in the + ``{=html} tag of the error XML response for a corresponding + `GetObject` call. Cannot be used with a successful `StatusCode` header + or when the transformed object is provided in body. + """ + accept_ranges: str | None = ... + """Indicates that a range of bytes was specified.""" + cache_control: str | None = ... + """Specifies caching behavior along the request/reply chain.""" + content_disposition: str | None = ... + """Specifies presentational information for the object.""" + content_encoding: str | None = ... + """ + Specifies what content encodings have been applied to the object and + thus what decoding mechanisms must be applied to obtain the media-type + referenced by the Content-Type header field. + """ + content_language: str | None = ... + """The language the content is in.""" + content_length: int | None = ... + """The size of the content body in bytes.""" + content_range: str | None = ... + """The portion of the object returned in the response.""" + content_type: str | None = ... + """A standard MIME type describing the format of the object data.""" + checksum_crc32: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This specifies + the Base64 encoded, 32-bit `CRC32` checksum of the object returned by + the Object Lambda function. This may not match the checksum for the + object stored in Amazon S3. Amazon S3 will perform validation of the + checksum values only when the original `GetObject` request required + checksum validation. For more information about checksums, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + Only one checksum header can be specified at a time. If you supply + multiple checksum headers, this request will fail. + """ + checksum_crc32_c: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This specifies + the Base64 encoded, 32-bit `CRC32C` checksum of the object returned by + the Object Lambda function. This may not match the checksum for the + object stored in Amazon S3. Amazon S3 will perform validation of the + checksum values only when the original `GetObject` request required + checksum validation. For more information about checksums, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + Only one checksum header can be specified at a time. If you supply + multiple checksum headers, this request will fail. + """ + checksum_crc64_nvme: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_sha1: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This specifies + the Base64 encoded, 160-bit `SHA1` digest of the object returned by the + Object Lambda function. This may not match the checksum for the object + stored in Amazon S3. Amazon S3 will perform validation of the checksum + values only when the original `GetObject` request required checksum + validation. For more information about checksums, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + Only one checksum header can be specified at a time. If you supply + multiple checksum headers, this request will fail. + """ + checksum_sha256: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This specifies + the Base64 encoded, 256-bit `SHA256` digest of the object returned by + the Object Lambda function. This may not match the checksum for the + object stored in Amazon S3. Amazon S3 will perform validation of the + checksum values only when the original `GetObject` request required + checksum validation. For more information about checksums, see [Checking + object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + + Only one checksum header can be specified at a time. If you supply + multiple checksum headers, this request will fail. + """ + checksum_sha512: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 512-bit `SHA512` digest of the part. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_md5: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `MD5` digest of the part. For more + information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash64: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH64` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash3: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 64-bit `XXHASH3` checksum of the part. For + more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + checksum_xxhash128: str | None = ... + """ + This header can be used as a data integrity check to verify that the + data received is the same data that was originally sent. This header + specifies the Base64 encoded, 128-bit `XXHASH128` checksum of the part. + For more information, see [Checking object + integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + in the *Amazon S3 User Guide*. + """ + delete_marker: bool | None = ... + """ + Specifies whether an object stored in Amazon S3 is (`true`) or is not + (`false`) a delete marker. To learn more about delete markers, see + [Working with delete + markers](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html). + """ + e_tag: str | None = ... + """ + An opaque identifier assigned by a web server to a specific version of a + resource found at a URL. + """ + expires: str | None = ... + """The date and time at which the object is no longer cacheable.""" + expiration: str | None = ... + """ + If the object expiration is configured (see PUT Bucket lifecycle), the + response includes this header. It includes the `expiry-date` and + `rule-id` key-value pairs that provide the object expiration + information. The value of the `rule-id` is URL-encoded. + """ + last_modified: datetime | None = ... + """The date and time that the object was last modified.""" + missing_meta: int | None = ... + """ + Set to the number of metadata entries not returned in `x-amz-meta` + headers. This can happen if you create metadata using an API like SOAP + that supports more flexible metadata than the REST API. For example, + using SOAP, you can create metadata whose values are not legal HTTP + headers. + """ + metadata: dict[str, str] | None = ... + """A map of metadata to store with the object in S3.""" + object_lock_mode: str | None = ... + """ + Indicates whether an object stored in Amazon S3 has Object Lock enabled. + For more information about S3 Object Lock, see [Object + Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html). + """ + object_lock_legal_hold_status: str | None = ... + """ + Indicates whether an object stored in Amazon S3 has an active legal + hold. + """ + object_lock_retain_until_date: datetime | None = ... + """The date and time when Object Lock is configured to expire.""" + parts_count: int | None = ... + """The count of parts this object has.""" + replication_status: str | None = ... + """ + Indicates if request involves bucket that is either a source or + destination in a Replication rule. For more information about S3 + Replication, see + [Replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html). + """ + request_charged: str | None = ... + """ + If present, indicates that the requester was successfully charged for + the request. For more information, see [Using Requester Pays buckets for + storage transfers and + usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) + in the *Amazon Simple Storage Service user guide*. + + Note: + This functionality is not supported for directory buckets. + """ + restore: str | None = ... + """ + Provides information about object restoration operation and expiration + time of the restored object copy. + """ + server_side_encryption: str | None = ... + """ + The server-side encryption algorithm used when storing requested object + in Amazon S3 or Amazon FSx. + + Note: + When accessing data stored in Amazon FSx file systems using S3 access + points, the only valid server side encryption option is `aws:fsx`. + """ + sse_customer_algorithm: str | None = ... + """ + Encryption algorithm used if server-side encryption with a + customer-provided encryption key was specified for object stored in + Amazon S3. + """ + ssekms_key_id: str | None = ... + """ + If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the + Amazon Web Services Key Management Service (Amazon Web Services KMS) + symmetric encryption customer managed key that was used for stored in + Amazon S3 object. + """ + sse_customer_key_md5: str | None = ... + """ + 128-bit MD5 digest of customer-provided encryption key used in Amazon S3 + to encrypt data stored in S3. For more information, see [Protecting data + using server-side encryption with customer-provided encryption keys + (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html). + """ + storage_class: str | None = ... + """ + Provides storage class information of the object. Amazon S3 returns this + header for all objects except for S3 Standard storage class objects. + + For more information, see [Storage + Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). + """ + tag_count: int | None = ... + """The number of tags, if any, on the object.""" + version_id: str | None = ... + """An ID used to reference a specific version of the object.""" + bucket_key_enabled: bool | None = ... + """ + Indicates whether the object stored in Amazon S3 uses an S3 bucket key + for server-side encryption with Amazon Web Services KMS (SSE-KMS). + """ + +@dataclass(kw_only=True) +class WriteGetObjectResponseOutput(_SerdeShape): + """Dataclass for WriteGetObjectResponseOutput structure.""" + + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +ABORT_MULTIPART_UPLOAD: APIOperation[ + AbortMultipartUploadInput, AbortMultipartUploadOutput +] +COMPLETE_MULTIPART_UPLOAD: APIOperation[ + CompleteMultipartUploadInput, CompleteMultipartUploadOutput +] +COPY_OBJECT: APIOperation[CopyObjectInput, CopyObjectOutput] +CREATE_BUCKET: APIOperation[CreateBucketInput, CreateBucketOutput] +CREATE_BUCKET_METADATA_CONFIGURATION: APIOperation[ + CreateBucketMetadataConfigurationInput, CreateBucketMetadataConfigurationOutput +] +CREATE_BUCKET_METADATA_TABLE_CONFIGURATION: APIOperation[ + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, +] +CREATE_MULTIPART_UPLOAD: APIOperation[ + CreateMultipartUploadInput, CreateMultipartUploadOutput +] +CREATE_SESSION: APIOperation[CreateSessionInput, CreateSessionOutput] +DELETE_BUCKET: APIOperation[DeleteBucketInput, DeleteBucketOutput] +DELETE_BUCKET_ANALYTICS_CONFIGURATION: APIOperation[ + DeleteBucketAnalyticsConfigurationInput, DeleteBucketAnalyticsConfigurationOutput +] +DELETE_BUCKET_CORS: APIOperation[DeleteBucketCorsInput, DeleteBucketCorsOutput] +DELETE_BUCKET_ENCRYPTION: APIOperation[ + DeleteBucketEncryptionInput, DeleteBucketEncryptionOutput +] +DELETE_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: APIOperation[ + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, +] +DELETE_BUCKET_INVENTORY_CONFIGURATION: APIOperation[ + DeleteBucketInventoryConfigurationInput, DeleteBucketInventoryConfigurationOutput +] +DELETE_BUCKET_LIFECYCLE: APIOperation[ + DeleteBucketLifecycleInput, DeleteBucketLifecycleOutput +] +DELETE_BUCKET_METADATA_CONFIGURATION: APIOperation[ + DeleteBucketMetadataConfigurationInput, DeleteBucketMetadataConfigurationOutput +] +DELETE_BUCKET_METADATA_TABLE_CONFIGURATION: APIOperation[ + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, +] +DELETE_BUCKET_METRICS_CONFIGURATION: APIOperation[ + DeleteBucketMetricsConfigurationInput, DeleteBucketMetricsConfigurationOutput +] +DELETE_BUCKET_OWNERSHIP_CONTROLS: APIOperation[ + DeleteBucketOwnershipControlsInput, DeleteBucketOwnershipControlsOutput +] +DELETE_BUCKET_POLICY: APIOperation[DeleteBucketPolicyInput, DeleteBucketPolicyOutput] +DELETE_BUCKET_REPLICATION: APIOperation[ + DeleteBucketReplicationInput, DeleteBucketReplicationOutput +] +DELETE_BUCKET_TAGGING: APIOperation[DeleteBucketTaggingInput, DeleteBucketTaggingOutput] +DELETE_BUCKET_WEBSITE: APIOperation[DeleteBucketWebsiteInput, DeleteBucketWebsiteOutput] +DELETE_OBJECT: APIOperation[DeleteObjectInput, DeleteObjectOutput] +DELETE_OBJECT_ANNOTATION: APIOperation[ + DeleteObjectAnnotationInput, DeleteObjectAnnotationOutput +] +DELETE_OBJECTS: APIOperation[DeleteObjectsInput, DeleteObjectsOutput] +DELETE_OBJECT_TAGGING: APIOperation[DeleteObjectTaggingInput, DeleteObjectTaggingOutput] +DELETE_PUBLIC_ACCESS_BLOCK: APIOperation[ + DeletePublicAccessBlockInput, DeletePublicAccessBlockOutput +] +GET_BUCKET_ABAC: APIOperation[GetBucketAbacInput, GetBucketAbacOutput] +GET_BUCKET_ACCELERATE_CONFIGURATION: APIOperation[ + GetBucketAccelerateConfigurationInput, GetBucketAccelerateConfigurationOutput +] +GET_BUCKET_ACL: APIOperation[GetBucketAclInput, GetBucketAclOutput] +GET_BUCKET_ANALYTICS_CONFIGURATION: APIOperation[ + GetBucketAnalyticsConfigurationInput, GetBucketAnalyticsConfigurationOutput +] +GET_BUCKET_CORS: APIOperation[GetBucketCorsInput, GetBucketCorsOutput] +GET_BUCKET_ENCRYPTION: APIOperation[GetBucketEncryptionInput, GetBucketEncryptionOutput] +GET_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: APIOperation[ + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, +] +GET_BUCKET_INVENTORY_CONFIGURATION: APIOperation[ + GetBucketInventoryConfigurationInput, GetBucketInventoryConfigurationOutput +] +GET_BUCKET_LIFECYCLE_CONFIGURATION: APIOperation[ + GetBucketLifecycleConfigurationInput, GetBucketLifecycleConfigurationOutput +] +GET_BUCKET_LOCATION: APIOperation[GetBucketLocationInput, GetBucketLocationOutput] +GET_BUCKET_LOGGING: APIOperation[GetBucketLoggingInput, GetBucketLoggingOutput] +GET_BUCKET_METADATA_CONFIGURATION: APIOperation[ + GetBucketMetadataConfigurationInput, GetBucketMetadataConfigurationOutput +] +GET_BUCKET_METADATA_TABLE_CONFIGURATION: APIOperation[ + GetBucketMetadataTableConfigurationInput, GetBucketMetadataTableConfigurationOutput +] +GET_BUCKET_METRICS_CONFIGURATION: APIOperation[ + GetBucketMetricsConfigurationInput, GetBucketMetricsConfigurationOutput +] +GET_BUCKET_NOTIFICATION_CONFIGURATION: APIOperation[ + GetBucketNotificationConfigurationInput, GetBucketNotificationConfigurationOutput +] +GET_BUCKET_OWNERSHIP_CONTROLS: APIOperation[ + GetBucketOwnershipControlsInput, GetBucketOwnershipControlsOutput +] +GET_BUCKET_POLICY: APIOperation[GetBucketPolicyInput, GetBucketPolicyOutput] +GET_BUCKET_POLICY_STATUS: APIOperation[ + GetBucketPolicyStatusInput, GetBucketPolicyStatusOutput +] +GET_BUCKET_REPLICATION: APIOperation[ + GetBucketReplicationInput, GetBucketReplicationOutput +] +GET_BUCKET_REQUEST_PAYMENT: APIOperation[ + GetBucketRequestPaymentInput, GetBucketRequestPaymentOutput +] +GET_BUCKET_TAGGING: APIOperation[GetBucketTaggingInput, GetBucketTaggingOutput] +GET_BUCKET_VERSIONING: APIOperation[GetBucketVersioningInput, GetBucketVersioningOutput] +GET_BUCKET_WEBSITE: APIOperation[GetBucketWebsiteInput, GetBucketWebsiteOutput] +GET_OBJECT: APIOperation[GetObjectInput, GetObjectOutput] +GET_OBJECT_ACL: APIOperation[GetObjectAclInput, GetObjectAclOutput] +GET_OBJECT_ANNOTATION: APIOperation[GetObjectAnnotationInput, GetObjectAnnotationOutput] +GET_OBJECT_ATTRIBUTES: APIOperation[GetObjectAttributesInput, GetObjectAttributesOutput] +GET_OBJECT_LEGAL_HOLD: APIOperation[GetObjectLegalHoldInput, GetObjectLegalHoldOutput] +GET_OBJECT_LOCK_CONFIGURATION: APIOperation[ + GetObjectLockConfigurationInput, GetObjectLockConfigurationOutput +] +GET_OBJECT_RETENTION: APIOperation[GetObjectRetentionInput, GetObjectRetentionOutput] +GET_OBJECT_TAGGING: APIOperation[GetObjectTaggingInput, GetObjectTaggingOutput] +GET_OBJECT_TORRENT: APIOperation[GetObjectTorrentInput, GetObjectTorrentOutput] +GET_PUBLIC_ACCESS_BLOCK: APIOperation[ + GetPublicAccessBlockInput, GetPublicAccessBlockOutput +] +HEAD_BUCKET: APIOperation[HeadBucketInput, HeadBucketOutput] +HEAD_OBJECT: APIOperation[HeadObjectInput, HeadObjectOutput] +LIST_BUCKET_ANALYTICS_CONFIGURATIONS: APIOperation[ + ListBucketAnalyticsConfigurationsInput, ListBucketAnalyticsConfigurationsOutput +] +LIST_BUCKET_INTELLIGENT_TIERING_CONFIGURATIONS: APIOperation[ + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, +] +LIST_BUCKET_INVENTORY_CONFIGURATIONS: APIOperation[ + ListBucketInventoryConfigurationsInput, ListBucketInventoryConfigurationsOutput +] +LIST_BUCKET_METRICS_CONFIGURATIONS: APIOperation[ + ListBucketMetricsConfigurationsInput, ListBucketMetricsConfigurationsOutput +] +LIST_BUCKETS: APIOperation[ListBucketsInput, ListBucketsOutput] +LIST_DIRECTORY_BUCKETS: APIOperation[ + ListDirectoryBucketsInput, ListDirectoryBucketsOutput +] +LIST_MULTIPART_UPLOADS: APIOperation[ + ListMultipartUploadsInput, ListMultipartUploadsOutput +] +LIST_OBJECT_ANNOTATIONS: APIOperation[ + ListObjectAnnotationsInput, ListObjectAnnotationsOutput +] +LIST_OBJECTS: APIOperation[ListObjectsInput, ListObjectsOutput] +LIST_OBJECTS_V2: APIOperation[ListObjectsV2Input, ListObjectsV2Output] +LIST_OBJECT_VERSIONS: APIOperation[ListObjectVersionsInput, ListObjectVersionsOutput] +LIST_PARTS: APIOperation[ListPartsInput, ListPartsOutput] +PUT_BUCKET_ABAC: APIOperation[PutBucketAbacInput, PutBucketAbacOutput] +PUT_BUCKET_ACCELERATE_CONFIGURATION: APIOperation[ + PutBucketAccelerateConfigurationInput, PutBucketAccelerateConfigurationOutput +] +PUT_BUCKET_ACL: APIOperation[PutBucketAclInput, PutBucketAclOutput] +PUT_BUCKET_ANALYTICS_CONFIGURATION: APIOperation[ + PutBucketAnalyticsConfigurationInput, PutBucketAnalyticsConfigurationOutput +] +PUT_BUCKET_CORS: APIOperation[PutBucketCorsInput, PutBucketCorsOutput] +PUT_BUCKET_ENCRYPTION: APIOperation[PutBucketEncryptionInput, PutBucketEncryptionOutput] +PUT_BUCKET_INTELLIGENT_TIERING_CONFIGURATION: APIOperation[ + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, +] +PUT_BUCKET_INVENTORY_CONFIGURATION: APIOperation[ + PutBucketInventoryConfigurationInput, PutBucketInventoryConfigurationOutput +] +PUT_BUCKET_LIFECYCLE_CONFIGURATION: APIOperation[ + PutBucketLifecycleConfigurationInput, PutBucketLifecycleConfigurationOutput +] +PUT_BUCKET_LOGGING: APIOperation[PutBucketLoggingInput, PutBucketLoggingOutput] +PUT_BUCKET_METRICS_CONFIGURATION: APIOperation[ + PutBucketMetricsConfigurationInput, PutBucketMetricsConfigurationOutput +] +PUT_BUCKET_NOTIFICATION_CONFIGURATION: APIOperation[ + PutBucketNotificationConfigurationInput, PutBucketNotificationConfigurationOutput +] +PUT_BUCKET_OWNERSHIP_CONTROLS: APIOperation[ + PutBucketOwnershipControlsInput, PutBucketOwnershipControlsOutput +] +PUT_BUCKET_POLICY: APIOperation[PutBucketPolicyInput, PutBucketPolicyOutput] +PUT_BUCKET_REPLICATION: APIOperation[ + PutBucketReplicationInput, PutBucketReplicationOutput +] +PUT_BUCKET_REQUEST_PAYMENT: APIOperation[ + PutBucketRequestPaymentInput, PutBucketRequestPaymentOutput +] +PUT_BUCKET_TAGGING: APIOperation[PutBucketTaggingInput, PutBucketTaggingOutput] +PUT_BUCKET_VERSIONING: APIOperation[PutBucketVersioningInput, PutBucketVersioningOutput] +PUT_BUCKET_WEBSITE: APIOperation[PutBucketWebsiteInput, PutBucketWebsiteOutput] +PUT_OBJECT: APIOperation[PutObjectInput, PutObjectOutput] +PUT_OBJECT_ACL: APIOperation[PutObjectAclInput, PutObjectAclOutput] +PUT_OBJECT_ANNOTATION: APIOperation[PutObjectAnnotationInput, PutObjectAnnotationOutput] +PUT_OBJECT_LEGAL_HOLD: APIOperation[PutObjectLegalHoldInput, PutObjectLegalHoldOutput] +PUT_OBJECT_LOCK_CONFIGURATION: APIOperation[ + PutObjectLockConfigurationInput, PutObjectLockConfigurationOutput +] +PUT_OBJECT_RETENTION: APIOperation[PutObjectRetentionInput, PutObjectRetentionOutput] +PUT_OBJECT_TAGGING: APIOperation[PutObjectTaggingInput, PutObjectTaggingOutput] +PUT_PUBLIC_ACCESS_BLOCK: APIOperation[ + PutPublicAccessBlockInput, PutPublicAccessBlockOutput +] +RENAME_OBJECT: APIOperation[RenameObjectInput, RenameObjectOutput] +RESTORE_OBJECT: APIOperation[RestoreObjectInput, RestoreObjectOutput] +SELECT_OBJECT_CONTENT: APIOperation[SelectObjectContentInput, SelectObjectContentOutput] +UPDATE_BUCKET_METADATA_ANNOTATION_TABLE_CONFIGURATION: APIOperation[ + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, +] +UPDATE_BUCKET_METADATA_INVENTORY_TABLE_CONFIGURATION: APIOperation[ + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, +] +UPDATE_BUCKET_METADATA_JOURNAL_TABLE_CONFIGURATION: APIOperation[ + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, +] +UPDATE_OBJECT_ENCRYPTION: APIOperation[ + UpdateObjectEncryptionInput, UpdateObjectEncryptionOutput +] +UPLOAD_PART: APIOperation[UploadPartInput, UploadPartOutput] +UPLOAD_PART_COPY: APIOperation[UploadPartCopyInput, UploadPartCopyOutput] +WRITE_GET_OBJECT_RESPONSE: APIOperation[ + WriteGetObjectResponseInput, WriteGetObjectResponseOutput +] diff --git a/clients/aws-sdk-s3/src/aws_sdk_s3/user_agent.py b/clients/aws-sdk-s3/src/aws_sdk_s3/user_agent.py new file mode 100644 index 00000000..b63861eb --- /dev/null +++ b/clients/aws-sdk-s3/src/aws_sdk_s3/user_agent.py @@ -0,0 +1,17 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_aws_core.interceptors.user_agent import UserAgentInterceptor + +from . import __version__ +from .config import S3Config + + +def aws_user_agent_plugin(config: S3Config): + config.interceptors.append( + UserAgentInterceptor( + ua_suffix=config.user_agent_extra, + ua_app_id=config.sdk_ua_app_id, + sdk_version=__version__, + service_id="S3", + ) + ) diff --git a/clients/aws-sdk-s3/tests/__init__.py b/clients/aws-sdk-s3/tests/__init__.py new file mode 100644 index 00000000..247be3e3 --- /dev/null +++ b/clients/aws-sdk-s3/tests/__init__.py @@ -0,0 +1 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. diff --git a/clients/aws-sdk-s3/tests/_typecheck.py b/clients/aws-sdk-s3/tests/_typecheck.py new file mode 100644 index 00000000..dcf1bbf1 --- /dev/null +++ b/clients/aws-sdk-s3/tests/_typecheck.py @@ -0,0 +1,791 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from typing import Any + +from aws_sdk_s3.models import ( + AbacStatus, + AbortIncompleteMultipartUpload, + AbortMultipartUploadInput, + AbortMultipartUploadOutput, + AccelerateConfiguration, + AccessControlPolicy, + AccessControlTranslation, + AnalyticsAndOperator, + AnalyticsConfiguration, + AnalyticsExportDestination, + AnalyticsS3BucketDestination, + AnnotationEntry, + AnnotationTableConfiguration, + AnnotationTableConfigurationResult, + AnnotationTableConfigurationUpdates, + BlockedEncryptionTypes, + Bucket, + BucketInfo, + BucketLifecycleConfiguration, + BucketLoggingStatus, + CORSConfiguration, + CORSRule, + CSVInput, + CSVOutput, + Checksum, + CommonPrefix, + CompleteMultipartUploadInput, + CompleteMultipartUploadOutput, + CompletedMultipartUpload, + CompletedPart, + Condition, + ContinuationEvent, + CopyObjectInput, + CopyObjectOutput, + CopyObjectResult, + CopyPartResult, + CreateBucketConfiguration, + CreateBucketInput, + CreateBucketMetadataConfigurationInput, + CreateBucketMetadataConfigurationOutput, + CreateBucketMetadataTableConfigurationInput, + CreateBucketMetadataTableConfigurationOutput, + CreateBucketOutput, + CreateMultipartUploadInput, + CreateMultipartUploadOutput, + CreateSessionInput, + CreateSessionOutput, + DefaultRetention, + Delete, + DeleteBucketAnalyticsConfigurationInput, + DeleteBucketAnalyticsConfigurationOutput, + DeleteBucketCorsInput, + DeleteBucketCorsOutput, + DeleteBucketEncryptionInput, + DeleteBucketEncryptionOutput, + DeleteBucketInput, + DeleteBucketIntelligentTieringConfigurationInput, + DeleteBucketIntelligentTieringConfigurationOutput, + DeleteBucketInventoryConfigurationInput, + DeleteBucketInventoryConfigurationOutput, + DeleteBucketLifecycleInput, + DeleteBucketLifecycleOutput, + DeleteBucketMetadataConfigurationInput, + DeleteBucketMetadataConfigurationOutput, + DeleteBucketMetadataTableConfigurationInput, + DeleteBucketMetadataTableConfigurationOutput, + DeleteBucketMetricsConfigurationInput, + DeleteBucketMetricsConfigurationOutput, + DeleteBucketOutput, + DeleteBucketOwnershipControlsInput, + DeleteBucketOwnershipControlsOutput, + DeleteBucketPolicyInput, + DeleteBucketPolicyOutput, + DeleteBucketReplicationInput, + DeleteBucketReplicationOutput, + DeleteBucketTaggingInput, + DeleteBucketTaggingOutput, + DeleteBucketWebsiteInput, + DeleteBucketWebsiteOutput, + DeleteMarkerEntry, + DeleteMarkerReplication, + DeleteObjectAnnotationInput, + DeleteObjectAnnotationOutput, + DeleteObjectInput, + DeleteObjectOutput, + DeleteObjectTaggingInput, + DeleteObjectTaggingOutput, + DeleteObjectsInput, + DeleteObjectsOutput, + DeletePublicAccessBlockInput, + DeletePublicAccessBlockOutput, + DeletedObject, + Destination, + DestinationResult, + Encryption, + EncryptionConfiguration, + EndEvent, + Error, + ErrorDetails, + ErrorDocument, + EventBridgeConfiguration, + EventHoldDuration, + ExistingObjectReplication, + FilterRule, + GetBucketAbacInput, + GetBucketAbacOutput, + GetBucketAccelerateConfigurationInput, + GetBucketAccelerateConfigurationOutput, + GetBucketAclInput, + GetBucketAclOutput, + GetBucketAnalyticsConfigurationInput, + GetBucketAnalyticsConfigurationOutput, + GetBucketCorsInput, + GetBucketCorsOutput, + GetBucketEncryptionInput, + GetBucketEncryptionOutput, + GetBucketIntelligentTieringConfigurationInput, + GetBucketIntelligentTieringConfigurationOutput, + GetBucketInventoryConfigurationInput, + GetBucketInventoryConfigurationOutput, + GetBucketLifecycleConfigurationInput, + GetBucketLifecycleConfigurationOutput, + GetBucketLocationInput, + GetBucketLocationOutput, + GetBucketLoggingInput, + GetBucketLoggingOutput, + GetBucketMetadataConfigurationInput, + GetBucketMetadataConfigurationOutput, + GetBucketMetadataConfigurationResult, + GetBucketMetadataTableConfigurationInput, + GetBucketMetadataTableConfigurationOutput, + GetBucketMetadataTableConfigurationResult, + GetBucketMetricsConfigurationInput, + GetBucketMetricsConfigurationOutput, + GetBucketNotificationConfigurationInput, + GetBucketNotificationConfigurationOutput, + GetBucketOwnershipControlsInput, + GetBucketOwnershipControlsOutput, + GetBucketPolicyInput, + GetBucketPolicyOutput, + GetBucketPolicyStatusInput, + GetBucketPolicyStatusOutput, + GetBucketReplicationInput, + GetBucketReplicationOutput, + GetBucketRequestPaymentInput, + GetBucketRequestPaymentOutput, + GetBucketTaggingInput, + GetBucketTaggingOutput, + GetBucketVersioningInput, + GetBucketVersioningOutput, + GetBucketWebsiteInput, + GetBucketWebsiteOutput, + GetObjectAclInput, + GetObjectAclOutput, + GetObjectAnnotationInput, + GetObjectAnnotationOutput, + GetObjectAttributesInput, + GetObjectAttributesOutput, + GetObjectAttributesParts, + GetObjectInput, + GetObjectLegalHoldInput, + GetObjectLegalHoldOutput, + GetObjectLockConfigurationInput, + GetObjectLockConfigurationOutput, + GetObjectOutput, + GetObjectRetentionInput, + GetObjectRetentionOutput, + GetObjectTaggingInput, + GetObjectTaggingOutput, + GetObjectTorrentInput, + GetObjectTorrentOutput, + GetPublicAccessBlockInput, + GetPublicAccessBlockOutput, + GlacierJobParameters, + Grant, + Grantee, + HeadBucketInput, + HeadBucketOutput, + HeadObjectInput, + HeadObjectOutput, + IndexDocument, + Initiator, + InputSerialization, + IntelligentTieringAndOperator, + IntelligentTieringConfiguration, + IntelligentTieringFilter, + InventoryConfiguration, + InventoryDestination, + InventoryEncryption, + InventoryFilter, + InventoryS3BucketDestination, + InventorySchedule, + InventoryTableConfiguration, + InventoryTableConfigurationResult, + InventoryTableConfigurationUpdates, + JSONInput, + JSONOutput, + JournalTableConfiguration, + JournalTableConfigurationResult, + JournalTableConfigurationUpdates, + LambdaFunctionConfiguration, + LifecycleExpiration, + LifecycleRule, + LifecycleRuleAndOperator, + LifecycleRuleFilter, + ListBucketAnalyticsConfigurationsInput, + ListBucketAnalyticsConfigurationsOutput, + ListBucketIntelligentTieringConfigurationsInput, + ListBucketIntelligentTieringConfigurationsOutput, + ListBucketInventoryConfigurationsInput, + ListBucketInventoryConfigurationsOutput, + ListBucketMetricsConfigurationsInput, + ListBucketMetricsConfigurationsOutput, + ListBucketsInput, + ListBucketsOutput, + ListDirectoryBucketsInput, + ListDirectoryBucketsOutput, + ListMultipartUploadsInput, + ListMultipartUploadsOutput, + ListObjectAnnotationsInput, + ListObjectAnnotationsOutput, + ListObjectVersionsInput, + ListObjectVersionsOutput, + ListObjectsInput, + ListObjectsOutput, + ListObjectsV2Input, + ListObjectsV2Output, + ListPartsInput, + ListPartsOutput, + LocationInfo, + LoggingEnabled, + MetadataConfiguration, + MetadataConfigurationResult, + MetadataEntry, + MetadataTableConfiguration, + MetadataTableConfigurationResult, + MetadataTableEncryptionConfiguration, + Metrics, + MetricsAndOperator, + MetricsConfiguration, + MultipartUpload, + NoncurrentVersionExpiration, + NoncurrentVersionTransition, + NotificationConfiguration, + NotificationConfigurationFilter, + Object, + ObjectIdentifier, + ObjectLockConfiguration, + ObjectLockLegalHold, + ObjectLockRetention, + ObjectLockRule, + ObjectPart, + ObjectVersion, + OutputLocation, + OutputSerialization, + Owner, + OwnershipControls, + OwnershipControlsRule, + ParquetInput, + Part, + PartitionedPrefix, + PolicyStatus, + Progress, + ProgressEvent, + PublicAccessBlockConfiguration, + PutBucketAbacInput, + PutBucketAbacOutput, + PutBucketAccelerateConfigurationInput, + PutBucketAccelerateConfigurationOutput, + PutBucketAclInput, + PutBucketAclOutput, + PutBucketAnalyticsConfigurationInput, + PutBucketAnalyticsConfigurationOutput, + PutBucketCorsInput, + PutBucketCorsOutput, + PutBucketEncryptionInput, + PutBucketEncryptionOutput, + PutBucketIntelligentTieringConfigurationInput, + PutBucketIntelligentTieringConfigurationOutput, + PutBucketInventoryConfigurationInput, + PutBucketInventoryConfigurationOutput, + PutBucketLifecycleConfigurationInput, + PutBucketLifecycleConfigurationOutput, + PutBucketLoggingInput, + PutBucketLoggingOutput, + PutBucketMetricsConfigurationInput, + PutBucketMetricsConfigurationOutput, + PutBucketNotificationConfigurationInput, + PutBucketNotificationConfigurationOutput, + PutBucketOwnershipControlsInput, + PutBucketOwnershipControlsOutput, + PutBucketPolicyInput, + PutBucketPolicyOutput, + PutBucketReplicationInput, + PutBucketReplicationOutput, + PutBucketRequestPaymentInput, + PutBucketRequestPaymentOutput, + PutBucketTaggingInput, + PutBucketTaggingOutput, + PutBucketVersioningInput, + PutBucketVersioningOutput, + PutBucketWebsiteInput, + PutBucketWebsiteOutput, + PutObjectAclInput, + PutObjectAclOutput, + PutObjectAnnotationInput, + PutObjectAnnotationOutput, + PutObjectInput, + PutObjectLegalHoldInput, + PutObjectLegalHoldOutput, + PutObjectLockConfigurationInput, + PutObjectLockConfigurationOutput, + PutObjectOutput, + PutObjectRetentionInput, + PutObjectRetentionOutput, + PutObjectTaggingInput, + PutObjectTaggingOutput, + PutPublicAccessBlockInput, + PutPublicAccessBlockOutput, + QueueConfiguration, + RecordExpiration, + RecordsEvent, + Redirect, + RedirectAllRequestsTo, + RenameObjectInput, + RenameObjectOutput, + ReplicaModifications, + ReplicationConfiguration, + ReplicationRule, + ReplicationRuleAndOperator, + ReplicationRuleFilter, + ReplicationTime, + ReplicationTimeValue, + RequestPaymentConfiguration, + RequestProgress, + RestoreObjectInput, + RestoreObjectOutput, + RestoreRequest, + RestoreStatus, + RoutingRule, + S3KeyFilter, + S3Location, + S3TablesDestination, + S3TablesDestinationResult, + SSEKMS, + SSEKMSEncryption, + SSES3, + ScanRange, + SelectObjectContentInput, + SelectObjectContentOutput, + SelectParameters, + ServerSideEncryptionByDefault, + ServerSideEncryptionConfiguration, + ServerSideEncryptionRule, + SessionCredentials, + SimplePrefix, + SourceSelectionCriteria, + SseKmsEncryptedObjects, + Stats, + StatsEvent, + StorageClassAnalysis, + StorageClassAnalysisDataExport, + Tag, + Tagging, + TargetGrant, + TargetObjectKeyFormat, + Tiering, + TopicConfiguration, + Transition, + UpdateBucketMetadataAnnotationTableConfigurationInput, + UpdateBucketMetadataAnnotationTableConfigurationOutput, + UpdateBucketMetadataInventoryTableConfigurationInput, + UpdateBucketMetadataInventoryTableConfigurationOutput, + UpdateBucketMetadataJournalTableConfigurationInput, + UpdateBucketMetadataJournalTableConfigurationOutput, + UpdateObjectEncryptionInput, + UpdateObjectEncryptionOutput, + UploadPartCopyInput, + UploadPartCopyOutput, + UploadPartInput, + UploadPartOutput, + VersioningConfiguration, + WebsiteConfiguration, + WriteGetObjectResponseInput, + WriteGetObjectResponseOutput, +) + + +# Static type fixture: pyright over this validates models.pyi. +# Not executed as a test; it only needs to type-check. + +_: Any = ... + +AbacStatus() +AbortIncompleteMultipartUpload() +AbortMultipartUploadInput() +AbortMultipartUploadOutput() +AccelerateConfiguration() +AccessControlPolicy() +AccessControlTranslation(owner=_) +AnalyticsAndOperator() +AnalyticsConfiguration(id=_, storage_class_analysis=_) +AnalyticsExportDestination(s3_bucket_destination=_) +AnalyticsS3BucketDestination(format=_, bucket=_) +AnnotationEntry(annotation_name=_, last_modified=_, size=_) +AnnotationTableConfiguration(configuration_state=_) +AnnotationTableConfigurationResult(configuration_state=_) +AnnotationTableConfigurationUpdates(configuration_state=_) +BlockedEncryptionTypes() +Bucket() +BucketInfo() +BucketLifecycleConfiguration(rules=_) +BucketLoggingStatus() +Checksum() +CommonPrefix() +CompletedMultipartUpload() +CompletedPart() +CompleteMultipartUploadInput() +CompleteMultipartUploadOutput() +Condition() +ContinuationEvent() +CopyObjectInput() +CopyObjectOutput() +CopyObjectResult() +CopyPartResult() +CORSConfiguration(cors_rules=_) +CORSRule(allowed_methods=_, allowed_origins=_) +CreateBucketConfiguration() +CreateBucketInput() +CreateBucketMetadataConfigurationInput() +CreateBucketMetadataConfigurationOutput() +CreateBucketMetadataTableConfigurationInput() +CreateBucketMetadataTableConfigurationOutput() +CreateBucketOutput() +CreateMultipartUploadInput() +CreateMultipartUploadOutput() +CreateSessionInput() +CreateSessionOutput(credentials=_) +CSVInput() +CSVOutput() +DefaultRetention() +Delete(objects=_) +DeleteBucketAnalyticsConfigurationInput() +DeleteBucketAnalyticsConfigurationOutput() +DeleteBucketCorsInput() +DeleteBucketCorsOutput() +DeleteBucketEncryptionInput() +DeleteBucketEncryptionOutput() +DeleteBucketInput() +DeleteBucketIntelligentTieringConfigurationInput() +DeleteBucketIntelligentTieringConfigurationOutput() +DeleteBucketInventoryConfigurationInput() +DeleteBucketInventoryConfigurationOutput() +DeleteBucketLifecycleInput() +DeleteBucketLifecycleOutput() +DeleteBucketMetadataConfigurationInput() +DeleteBucketMetadataConfigurationOutput() +DeleteBucketMetadataTableConfigurationInput() +DeleteBucketMetadataTableConfigurationOutput() +DeleteBucketMetricsConfigurationInput() +DeleteBucketMetricsConfigurationOutput() +DeleteBucketOutput() +DeleteBucketOwnershipControlsInput() +DeleteBucketOwnershipControlsOutput() +DeleteBucketPolicyInput() +DeleteBucketPolicyOutput() +DeleteBucketReplicationInput() +DeleteBucketReplicationOutput() +DeleteBucketTaggingInput() +DeleteBucketTaggingOutput() +DeleteBucketWebsiteInput() +DeleteBucketWebsiteOutput() +DeletedObject() +DeleteMarkerEntry() +DeleteMarkerReplication() +DeleteObjectAnnotationInput() +DeleteObjectAnnotationOutput() +DeleteObjectInput() +DeleteObjectOutput() +DeleteObjectsInput() +DeleteObjectsOutput() +DeleteObjectTaggingInput() +DeleteObjectTaggingOutput() +DeletePublicAccessBlockInput() +DeletePublicAccessBlockOutput() +Destination(bucket=_) +DestinationResult() +Encryption(encryption_type=_) +EncryptionConfiguration() +EndEvent() +Error() +ErrorDetails() +ErrorDocument(key=_) +EventBridgeConfiguration() +EventHoldDuration() +ExistingObjectReplication(status=_) +FilterRule() +GetBucketAbacInput() +GetBucketAbacOutput() +GetBucketAccelerateConfigurationInput() +GetBucketAccelerateConfigurationOutput() +GetBucketAclInput() +GetBucketAclOutput() +GetBucketAnalyticsConfigurationInput() +GetBucketAnalyticsConfigurationOutput() +GetBucketCorsInput() +GetBucketCorsOutput() +GetBucketEncryptionInput() +GetBucketEncryptionOutput() +GetBucketIntelligentTieringConfigurationInput() +GetBucketIntelligentTieringConfigurationOutput() +GetBucketInventoryConfigurationInput() +GetBucketInventoryConfigurationOutput() +GetBucketLifecycleConfigurationInput() +GetBucketLifecycleConfigurationOutput() +GetBucketLocationInput() +GetBucketLocationOutput() +GetBucketLoggingInput() +GetBucketLoggingOutput() +GetBucketMetadataConfigurationInput() +GetBucketMetadataConfigurationOutput() +GetBucketMetadataConfigurationResult(metadata_configuration_result=_) +GetBucketMetadataTableConfigurationInput() +GetBucketMetadataTableConfigurationOutput() +GetBucketMetadataTableConfigurationResult( + metadata_table_configuration_result=_, status=_ +) +GetBucketMetricsConfigurationInput() +GetBucketMetricsConfigurationOutput() +GetBucketNotificationConfigurationInput() +GetBucketNotificationConfigurationOutput() +GetBucketOwnershipControlsInput() +GetBucketOwnershipControlsOutput() +GetBucketPolicyInput() +GetBucketPolicyOutput() +GetBucketPolicyStatusInput() +GetBucketPolicyStatusOutput() +GetBucketReplicationInput() +GetBucketReplicationOutput() +GetBucketRequestPaymentInput() +GetBucketRequestPaymentOutput() +GetBucketTaggingInput() +GetBucketTaggingOutput(tag_set=_) +GetBucketVersioningInput() +GetBucketVersioningOutput() +GetBucketWebsiteInput() +GetBucketWebsiteOutput() +GetObjectAclInput() +GetObjectAclOutput() +GetObjectAnnotationInput() +GetObjectAnnotationOutput() +GetObjectAttributesInput() +GetObjectAttributesOutput() +GetObjectAttributesParts() +GetObjectInput() +GetObjectLegalHoldInput() +GetObjectLegalHoldOutput() +GetObjectLockConfigurationInput() +GetObjectLockConfigurationOutput() +GetObjectOutput() +GetObjectRetentionInput() +GetObjectRetentionOutput() +GetObjectTaggingInput() +GetObjectTaggingOutput(tag_set=_) +GetObjectTorrentInput() +GetObjectTorrentOutput() +GetPublicAccessBlockInput() +GetPublicAccessBlockOutput() +GlacierJobParameters(tier=_) +Grant() +Grantee(type=_) +HeadBucketInput() +HeadBucketOutput() +HeadObjectInput() +HeadObjectOutput() +IndexDocument(suffix=_) +Initiator() +InputSerialization() +IntelligentTieringAndOperator() +IntelligentTieringConfiguration(id=_, status=_, tierings=_) +IntelligentTieringFilter() +InventoryConfiguration( + destination=_, is_enabled=_, id=_, included_object_versions=_, schedule=_ +) +InventoryDestination(s3_bucket_destination=_) +InventoryEncryption() +InventoryFilter(prefix=_) +InventoryS3BucketDestination(bucket=_, format=_) +InventorySchedule(frequency=_) +InventoryTableConfiguration(configuration_state=_) +InventoryTableConfigurationResult(configuration_state=_) +InventoryTableConfigurationUpdates(configuration_state=_) +JournalTableConfiguration(record_expiration=_) +JournalTableConfigurationResult(table_status=_, table_name=_, record_expiration=_) +JournalTableConfigurationUpdates(record_expiration=_) +JSONInput() +JSONOutput() +LambdaFunctionConfiguration(lambda_function_arn=_, events=_) +LifecycleExpiration() +LifecycleRule(status=_) +LifecycleRuleAndOperator() +LifecycleRuleFilter() +ListBucketAnalyticsConfigurationsInput() +ListBucketAnalyticsConfigurationsOutput() +ListBucketIntelligentTieringConfigurationsInput() +ListBucketIntelligentTieringConfigurationsOutput() +ListBucketInventoryConfigurationsInput() +ListBucketInventoryConfigurationsOutput() +ListBucketMetricsConfigurationsInput() +ListBucketMetricsConfigurationsOutput() +ListBucketsInput() +ListBucketsOutput() +ListDirectoryBucketsInput() +ListDirectoryBucketsOutput() +ListMultipartUploadsInput() +ListMultipartUploadsOutput() +ListObjectAnnotationsInput() +ListObjectAnnotationsOutput() +ListObjectsInput() +ListObjectsOutput() +ListObjectsV2Input() +ListObjectsV2Output() +ListObjectVersionsInput() +ListObjectVersionsOutput() +ListPartsInput() +ListPartsOutput() +LocationInfo() +LoggingEnabled(target_bucket=_, target_prefix=_) +MetadataConfiguration(journal_table_configuration=_) +MetadataConfigurationResult(destination_result=_) +MetadataEntry() +MetadataTableConfiguration(s3_tables_destination=_) +MetadataTableConfigurationResult(s3_tables_destination_result=_) +MetadataTableEncryptionConfiguration(sse_algorithm=_) +Metrics(status=_) +MetricsAndOperator() +MetricsConfiguration(id=_) +MultipartUpload() +NoncurrentVersionExpiration() +NoncurrentVersionTransition() +NotificationConfiguration() +NotificationConfigurationFilter() +Object() +ObjectIdentifier(key=_) +ObjectLockConfiguration() +ObjectLockLegalHold() +ObjectLockRetention() +ObjectLockRule() +ObjectPart() +ObjectVersion() +OutputLocation() +OutputSerialization() +Owner() +OwnershipControls(rules=_) +OwnershipControlsRule(object_ownership=_) +ParquetInput() +Part() +PartitionedPrefix() +PolicyStatus() +Progress() +ProgressEvent() +PublicAccessBlockConfiguration() +PutBucketAbacInput() +PutBucketAbacOutput() +PutBucketAccelerateConfigurationInput() +PutBucketAccelerateConfigurationOutput() +PutBucketAclInput() +PutBucketAclOutput() +PutBucketAnalyticsConfigurationInput() +PutBucketAnalyticsConfigurationOutput() +PutBucketCorsInput() +PutBucketCorsOutput() +PutBucketEncryptionInput() +PutBucketEncryptionOutput() +PutBucketIntelligentTieringConfigurationInput() +PutBucketIntelligentTieringConfigurationOutput() +PutBucketInventoryConfigurationInput() +PutBucketInventoryConfigurationOutput() +PutBucketLifecycleConfigurationInput() +PutBucketLifecycleConfigurationOutput() +PutBucketLoggingInput() +PutBucketLoggingOutput() +PutBucketMetricsConfigurationInput() +PutBucketMetricsConfigurationOutput() +PutBucketNotificationConfigurationInput() +PutBucketNotificationConfigurationOutput() +PutBucketOwnershipControlsInput() +PutBucketOwnershipControlsOutput() +PutBucketPolicyInput() +PutBucketPolicyOutput() +PutBucketReplicationInput() +PutBucketReplicationOutput() +PutBucketRequestPaymentInput() +PutBucketRequestPaymentOutput() +PutBucketTaggingInput() +PutBucketTaggingOutput() +PutBucketVersioningInput() +PutBucketVersioningOutput() +PutBucketWebsiteInput() +PutBucketWebsiteOutput() +PutObjectAclInput() +PutObjectAclOutput() +PutObjectAnnotationInput() +PutObjectAnnotationOutput() +PutObjectInput() +PutObjectLegalHoldInput() +PutObjectLegalHoldOutput() +PutObjectLockConfigurationInput() +PutObjectLockConfigurationOutput() +PutObjectOutput() +PutObjectRetentionInput() +PutObjectRetentionOutput() +PutObjectTaggingInput() +PutObjectTaggingOutput() +PutPublicAccessBlockInput() +PutPublicAccessBlockOutput() +QueueConfiguration(queue_arn=_, events=_) +RecordExpiration(expiration=_) +RecordsEvent() +Redirect() +RedirectAllRequestsTo(host_name=_) +RenameObjectInput() +RenameObjectOutput() +ReplicaModifications(status=_) +ReplicationConfiguration(role=_, rules=_) +ReplicationRule(status=_, destination=_) +ReplicationRuleAndOperator() +ReplicationRuleFilter() +ReplicationTime(status=_, time=_) +ReplicationTimeValue() +RequestPaymentConfiguration(payer=_) +RequestProgress() +RestoreObjectInput() +RestoreObjectOutput() +RestoreRequest() +RestoreStatus() +RoutingRule(redirect=_) +S3KeyFilter() +S3Location(bucket_name=_, prefix=_) +S3TablesDestination(table_bucket_arn=_, table_name=_) +S3TablesDestinationResult( + table_bucket_arn=_, table_name=_, table_arn=_, table_namespace=_ +) +ScanRange() +SelectObjectContentInput() +SelectObjectContentOutput() +SelectParameters( + input_serialization=_, expression_type=_, expression=_, output_serialization=_ +) +ServerSideEncryptionByDefault(sse_algorithm=_) +ServerSideEncryptionConfiguration(rules=_) +ServerSideEncryptionRule() +SessionCredentials(access_key_id=_, secret_access_key=_, session_token=_, expiration=_) +SimplePrefix() +SourceSelectionCriteria() +SSEKMS(key_id=_) +SseKmsEncryptedObjects(status=_) +SSEKMSEncryption(kms_key_arn=_) +SSES3() +Stats() +StatsEvent() +StorageClassAnalysis() +StorageClassAnalysisDataExport(output_schema_version=_, destination=_) +Tag(key=_, value=_) +Tagging(tag_set=_) +TargetGrant() +TargetObjectKeyFormat() +Tiering(days=_, access_tier=_) +TopicConfiguration(topic_arn=_, events=_) +Transition() +UpdateBucketMetadataAnnotationTableConfigurationInput() +UpdateBucketMetadataAnnotationTableConfigurationOutput() +UpdateBucketMetadataInventoryTableConfigurationInput() +UpdateBucketMetadataInventoryTableConfigurationOutput() +UpdateBucketMetadataJournalTableConfigurationInput() +UpdateBucketMetadataJournalTableConfigurationOutput() +UpdateObjectEncryptionInput() +UpdateObjectEncryptionOutput() +UploadPartCopyInput() +UploadPartCopyOutput() +UploadPartInput() +UploadPartOutput() +VersioningConfiguration() +WebsiteConfiguration() +WriteGetObjectResponseInput() +WriteGetObjectResponseOutput() diff --git a/clients/aws-sdk-s3/tests/test_endpoints.py b/clients/aws-sdk-s3/tests/test_endpoints.py new file mode 100644 index 00000000..e9e1c1d3 --- /dev/null +++ b/clients/aws-sdk-s3/tests/test_endpoints.py @@ -0,0 +1,12777 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from collections.abc import Awaitable, Callable, Mapping +from typing import Any + +from pytest import mark, param +from smithy_aws_core.aio.identity.static import AsyncStaticCredentialsResolver +from smithy_aws_core.endpoints import AWS_RULES_EXTENSION +from smithy_aws_core.identity import AWSCredentialsIdentity +from smithy_core.aio.utils import close_async +from smithy_core.endpoints import BddEndpointResolver +from smithy_core.interceptors import Interceptor +from smithy_core.retries import SimpleRetryStrategy +from smithy_test import check_rules_case +from smithy_test.aio import check_client_case_async + +from aws_sdk_s3.aio.client import AsyncS3Client +from aws_sdk_s3.aio.config import AsyncS3Config +from aws_sdk_s3.models import ( + CreateBucketInput, + GetObjectInput, + ListBucketsInput, + ListDirectoryBucketsInput, + ListObjectsInput, + WriteGetObjectResponseInput, +) + + +# Endpoint tests from the endpointTests trait of com.amazonaws.s3#AmazonS3. + +_TEST_CONFIG: dict[str, Any] = { + "region": "us-east-1", + "endpoint_uri": None, + "aws_credentials_identity_resolver": AsyncStaticCredentialsResolver( + AWSCredentialsIdentity( + access_key_id="test-access-key-id", + secret_access_key="test-secret-access-key", + ) + ), + "use_fips_endpoint": None, + "use_dualstack_endpoint": None, + "use_arn_region": None, + "disable_multi_region_access_points": None, + "disable_s3_express_session_auth": None, +} + + +async def _config(**fields: Any) -> AsyncS3Config: + return await AsyncS3Config.resolve( + **(_TEST_CONFIG | fields), retry_strategy=SimpleRetryStrategy(max_attempts=1) + ) + + +# Every rules test shares one resolver, so its caches see changing parameters. +_resolver: BddEndpointResolver | None = None + + +async def _endpoint_resolver() -> BddEndpointResolver: + global _resolver + if _resolver is None: + config = await _config() + # Only the resolver is used, so the transport is closed right away. + await close_async(config.transport) + # The rules checks are sync, so they need the default sync resolver. + assert isinstance(config.endpoint_resolver, BddEndpointResolver) + _resolver = config.endpoint_resolver + return _resolver + + +async def _client( + config: Mapping[str, Any], capture: Interceptor[Any, Any, Any, Any] +) -> AsyncS3Client: + return AsyncS3Client(config=await _config(**config, interceptors=[capture])) + + +_RULES_EXTENSIONS = [AWS_RULES_EXTENSION] + +RULES_CASES = [ + param( + {"Region": "a b", "UseFIPS": False, "UseDualStack": False, "Accelerate": False}, + {"error": "Invalid region: region was not a valid DNS name."}, + id="region is not a valid DNS-suffix", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + {"error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3"}, + id="Invalid access point ARN: Not S3", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data", + }, + { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + id="Invalid access point ARN: invalid resource", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:", + }, + { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + id="Invalid access point ARN: invalid no ap name", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname", + }, + { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`" + }, + id="Invalid access point ARN: AccountId is invalid", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name", + }, + { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`" + }, + id="Invalid access point ARN: access point name is invalid", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableAccessPoints": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access points (disable access points explicitly false)", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint", + }, + {"error": "Partition does not support FIPS"}, + id="Access points: partition does not support FIPS", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableAccessPoints": False, + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint", + }, + {"error": "Invalid region in ARN: `us-west -2` (invalid DNS name)"}, + id="Bucket region is invalid", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableAccessPoints": True, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + {"error": "Access points are not supported for this operation"}, + id="Access points when Access points explicitly disabled (used for CreateBucket)", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableAccessPoints": True, + "Bucket": "arn:aws:s3:us-west-2:123456789012:", + }, + { + "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN" + }, + id="missing arn type", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "UseDualStack": True, + "UseFIPS": False, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + access point + Dualstack is an error", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableAccessPoints": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access point ARN with FIPS & Dualstack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableAccessPoints": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access point ARN with Dualstack", + ), + param( + { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": False, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": ["*"], + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla MRAP", + ), + param( + { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": False, + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + {"error": "S3 MRAP does not support FIPS"}, + id="MRAP does not support FIPS", + ), + param( + { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": False, + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + {"error": "S3 MRAP does not support dual-stack"}, + id="MRAP does not support DualStack", + ), + param( + { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": False, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + }, + {"error": "S3 MRAP does not support S3 Accelerate"}, + id="MRAP does not support S3 Accelerate", + ), + param( + { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled." + }, + id="MRAP explicitly disabled", + ), + param( + { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": True, + "UseFIPS": False, + "Accelerate": False, + "UseDualStack": True, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Dual-stack endpoint with path-style forced", + ), + param( + { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": True, + "UseFIPS": False, + "Accelerate": False, + "UseDualStack": True, + "Endpoint": "https://abc.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="Dual-stack endpoint + SDK::Host is error", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + ARN bucket", + ), + param( + { + "Accelerate": False, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="implicit path style bucket + dualstack", + ), + param( + { + "Accelerate": False, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + "Endpoint": "http://abc.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="implicit path style bucket + dualstack (2)", + ), + param( + { + "Bucket": "example.com#", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/example.com%23", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="don't allow URL injections in the bucket", + ), + param( + { + "Bucket": "bucket name", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket%20name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="URI encode bucket names in the path", + ), + param( + { + "Accelerate": False, + "Bucket": "99_ab", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="scheme is respected", + ), + param( + { + "Accelerate": False, + "Bucket": "bucketname", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="scheme is respected (virtual addressing)", + ), + param( + { + "Accelerate": False, + "Bucket": "99_ab", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + implicit private link", + ), + param( + { + "Accelerate": False, + "Bucket": "bucketname", + "Endpoint": "abcde://nota#url", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Custom endpoint `abcde://nota#url` was not a valid URI"}, + id="invalid Endpoint override", + ), + param( + { + "Accelerate": False, + "Bucket": "bucketname", + "Endpoint": "https://123.123.0.1", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://123.123.0.1/bucketname", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="using an IPv4 address forces path style", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "UseArnRegion": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="vanilla access point arn with region mismatch and UseArnRegion=false", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "us-east-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn with region mismatch and UseArnRegion unset", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "UseArnRegion": True, + "Region": "us-east-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn with region mismatch and UseArnRegion=true", + ), + param( + {"Bucket": "bucket.name", "Region": "us-east-1"}, + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/bucket.name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="subdomains are not allowed in virtual buckets", + ), + param( + {"Bucket": "aaa", "Region": "us-east-1"}, + { + "endpoint": { + "url": "https://aaa.s3.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with 3 characters are allowed in virtual buckets", + ), + param( + {"Bucket": "aa", "Region": "us-east-1"}, + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/aa", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with fewer than 3 characters are not allowed in virtual host", + ), + param( + {"Bucket": "BucketName", "Region": "us-east-1"}, + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/BucketName", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with uppercase characters are not allowed in virtual host", + ), + param( + { + "Bucket": "bucket.name", + "Region": "us-east-1", + "Endpoint": "http://example.com", + }, + { + "endpoint": { + "url": "http://bucket.name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="subdomains are allowed in virtual buckets on http endpoints", + ), + param( + {"Bucket": "bucket-name"}, + {"error": "A region must be set when sending requests to S3."}, + id="no region set", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint", + ), + param( + { + "Region": "us-west-2", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint", + ), + param( + { + "Region": "cn-north-1", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack", + ), + param( + { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom", + ), + param( + { + "Region": "us-west-2", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region uses the global endpoint", + ), + param( + { + "Region": "aws-global", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with fips uses the regional endpoint", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with dualstack uses the regional endpoint", + ), + param( + { + "Region": "aws-global", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with fips and dualstack uses the regional endpoint", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate", + ), + param( + { + "Region": "aws-global", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": False, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with custom endpoint, uses custom", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region uses the global endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Prefix": "prefix", + "Key": "key", + }, + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "CopySource": "/copy/source", + "Key": "key", + }, + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with Copy Source, and Key uses the global endpoint. Copy Source and Key parameters should not be used in endpoint evaluation.", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with fips uses the regional fips endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with accelerate uses the global accelerate endpoint", + ), + param( + { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with custom endpoint", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint", + ), + param( + { + "Region": "us-west-2", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint", + ), + param( + { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": True, + "Bucket": "bucket-name", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://bucket-name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region uses the global endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": True, + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + "name": "sigv4", + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region with fips is invalid", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint", + ), + param( + { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://example.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region custom endpoint uses the custom endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": True, + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint", + ), + param( + { + "Region": "us-west-2", + "Bucket": "bucket-name", + "UseGlobalEndpoint": True, + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": True, + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket-name", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": True, + "ForcePathStyle": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://example.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint", + ), + param( + { + "Region": "aws-global", + "UseArnRegion": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="ARN with aws-global region and UseArnRegion uses the regional endpoint", + ), + param( + { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-west-1", + }, + { + "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`" + }, + id="cross partition MRAP ARN is an error", + ), + param( + { + "Endpoint": "http://beta.example.com:1234", + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + }, + { + "endpoint": { + "url": "http://myendpoint-123456789012.beta.example.com:1234", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Endpoint override, accesspoint with HTTP, port", + ), + param( + { + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "http://myendpoint-123456789012.beta.example.com:1234/path", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Endpoint override, accesspoint with http, path, query, and port", + ), + param( + { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": True, + "UseDualStack": False, + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="non-bucket endpoint override with FIPS = error", + ), + param( + { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": True, + "UseDualStack": True, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="FIPS + dualstack + custom endpoint", + ), + param( + { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": False, + "UseDualStack": True, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="dualstack + custom endpoint", + ), + param( + { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": False, + "UseDualStack": False, + }, + { + "endpoint": { + "url": "http://beta.example.com:1234/path", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="custom endpoint without FIPS/dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:myendpoint", + "DisableAccessPoints": True, + }, + {"error": "Access points are not supported for this operation"}, + id="s3 object lambda with access points disabled", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": False}, + { + "endpoint": { + "url": "https://s3-fips.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="non bucket + FIPS", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": False}, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="standard non bucket endpoint", + ), + param( + {"Region": "us-west-2", "UseFIPS": True, "UseDualStack": True}, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="non bucket endpoint with FIPS + Dualstack", + ), + param( + {"Region": "us-west-2", "UseFIPS": False, "UseDualStack": True}, + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="non bucket endpoint with dualstack", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": False, + "UseDualStack": False, + "Endpoint": "http://127.0.0.1", + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "http://127.0.0.1/bucket", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="use global endpoint + IP address endpoint override", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": False, + "UseDualStack": False, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="non-dns endpoint + global endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": False, + "UseDualStack": False, + "UseGlobalEndpoint": True, + "Endpoint": "http://foo.com", + }, + { + "endpoint": { + "url": "http://foo.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="endpoint override + use global endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": True, + "UseDualStack": True, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + dualstack + non-bucket endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": True, + "UseFIPS": True, + "UseDualStack": True, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + dualstack + non-DNS endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": True, + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "http://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="endpoint override + FIPS + dualstack (BUG)", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": True, + "UseDualStack": False, + "Endpoint": "http://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="endpoint override + non-dns bucket + FIPS (BUG)", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": True, + "UseFIPS": True, + "UseDualStack": False, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + bucket endpoint + force path style", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket", + "ForcePathStyle": True, + "UseFIPS": True, + "UseDualStack": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket + FIPS + force path style", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": True, + "UseDualStack": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://bucket.s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + dualstack + use global endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": True, + "UseDualStack": False, + "UseGlobalEndpoint": True, + "Endpoint": "https://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="URI encoded bucket + use global endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + path based endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://bucket.s3-accelerate.dualstack.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="accelerate + dualstack + global endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "Accelerate": False, + "UseDualStack": True, + "UseFIPS": False, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="dualstack + global endpoint + non URI safe bucket", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": True, + "Accelerate": False, + "UseDualStack": False, + "UseFIPS": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + uri encoded bucket", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": True, + "Accelerate": False, + "UseDualStack": False, + "UseFIPS": True, + "Endpoint": "http://foo.com", + "UseGlobalEndpoint": True, + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="endpoint override + non-uri safe endpoint + force path style", + ), + param( + { + "Region": "us-east-1", + "Bucket": "bucket!", + "Accelerate": False, + "UseDualStack": True, + "UseFIPS": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="FIPS + Dualstack + global endpoint + non-dns bucket", + ), + param( + { + "Region": "us-east-1", + "UseDualStack": True, + "UseFIPS": True, + "UseGlobalEndpoint": True, + "Endpoint": "http://foo.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="endpoint override + FIPS + dualstack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "UseGlobalEndpoint": True, + "Endpoint": "http://foo.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="non-bucket endpoint override + dualstack + global endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "UseGlobalEndpoint": True, + "Endpoint": "http://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="Endpoint override + UseGlobalEndpoint + us-east-1", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "UseGlobalEndpoint": True, + }, + {"error": "Partition does not support FIPS"}, + id="non-FIPS partition with FIPS set + custom endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "UseFIPS": True, + "Accelerate": False, + "UseDualStack": True, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global signs as us-east-1", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket", + "UseDualStack": False, + "UseFIPS": False, + "Accelerate": False, + "Endpoint": "https://foo.com", + }, + { + "endpoint": { + "url": "https://bucket.foo.com", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global signs as us-east-1 (2)", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": True, + "UseFIPS": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global + dualstack + path-only bucket", + ), + param( + {"Region": "aws-global", "Bucket": "bucket!"}, + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global + path-only bucket", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": False, + "UseFIPS": True, + "Accelerate": False, + "Endpoint": "http://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="aws-global + fips + custom endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": False, + "UseFIPS": False, + "Accelerate": False, + "Endpoint": "http://foo.com", + }, + { + "endpoint": { + "url": "http://foo.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global, endpoint override & path only-bucket", + ), + param( + { + "Region": "aws-global", + "UseDualStack": True, + "UseFIPS": False, + "Accelerate": False, + "Endpoint": "http://foo.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="aws-global + dualstack + custom endpoint", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket", + "UseDualStack": True, + "UseFIPS": False, + "Accelerate": True, + }, + { + "endpoint": { + "url": "https://bucket.s3-accelerate.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate, dualstack + aws-global", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "ForcePathStyle": True, + "UseDualStack": True, + "UseFIPS": True, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="FIPS + aws-global + path only bucket. This is not supported by S3 but we allow garbage in garbage out", + ), + param( + {"Region": "aws-global", "UseFIPS": True, "Endpoint": "http://foo.com"}, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="aws-global + FIPS + endpoint override.", + ), + param( + { + "Region": "aws-global", + "Bucket": "bucket!", + "ForcePathStyle": True, + "UseFIPS": True, + "Endpoint": "http://foo.com", + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="force path style, FIPS, aws-global & endpoint override", + ), + param( + {"Region": "aws-global", "Bucket": "bucket", "Endpoint": "http://192.168.1.1"}, + { + "endpoint": { + "url": "http://192.168.1.1/bucket", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ip address causes path style to be forced", + ), + param( + { + "Region": "aws-global", + "UseFIPS": True, + "UseDualStack": True, + "Endpoint": "http://foo.com", + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="endpoint override with aws-global region", + ), + param( + {"Region": "aws-global", "Bucket": "bucket!", "UseFIPS": True}, + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="FIPS + path-only (TODO: consider making this an error)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:not-s3:us-west-2:123456789012::myendpoint", + }, + {"error": "Invalid ARN: No ARN type specified"}, + id="empty arn type", + ), + param( + {"Region": "us-east-2", "Bucket": "bucket!", "Accelerate": True}, + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style can't be used with accelerate", + ), + param( + { + "Region": "us-east-2!", + "Bucket": "bucket.subdomain", + "Endpoint": "http://foo.com", + }, + {"error": "Invalid region: region was not a valid DNS name."}, + id="invalid region", + ), + param( + {"Region": "us-east-2!", "Bucket": "bucket", "Endpoint": "http://foo.com"}, + {"error": "Invalid region: region was not a valid DNS name."}, + id="invalid region (2)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3::123456789012:accesspoint:my_endpoint", + }, + {"error": "Invalid Access Point Name"}, + id="empty arn type (2)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint", + "UseArnRegion": True, + }, + { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint`) has `aws-cn`" + }, + id="empty arn type (3)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-object-lambda:us-east_2:123456789012:accesspoint:my-endpoint", + "UseArnRegion": True, + }, + {"error": "Invalid region in ARN: `us-east_2` (invalid DNS name)"}, + id="invalid arn region", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op_01234567890123456/accesspoint/reports", + "UseArnRegion": True, + }, + { + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `op_01234567890123456`" + }, + id="invalid ARN outpost", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/reports", + }, + {"error": "Invalid ARN: expected an access point name"}, + id="invalid ARN", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456", + }, + {"error": "Invalid ARN: Expected a 4-component resource"}, + id="invalid ARN (2)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports", + }, + {"error": "Expected an outpost type `accesspoint`, found not-accesspoint"}, + id="invalid outpost type", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east_1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports", + }, + {"error": "Invalid region in ARN: `us-east_1` (invalid DNS name)"}, + id="invalid outpost type (2)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:12345_789012:outpost/op-01234567890123456/not-accesspoint/reports", + }, + { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `12345_789012`" + }, + id="invalid outpost type (3)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:12345789012:outpost", + }, + {"error": "Invalid ARN: The Outpost Id was not set"}, + id="invalid outpost type (4)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "bucket", + "Endpoint": "http://example.com", + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "http://bucket.example.com", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="use global endpoint virtual addressing", + ), + param( + { + "Region": "us-east-2", + "Bucket": "bucket", + "Endpoint": "http://192.168.0.1", + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "http://192.168.0.1/bucket", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="global endpoint + ip address", + ), + param( + {"Region": "us-east-2", "Bucket": "bucket!", "UseGlobalEndpoint": True}, + { + "endpoint": { + "url": "https://s3.us-east-2.amazonaws.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="invalid outpost type (5)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "bucket", + "Accelerate": True, + "UseGlobalEndpoint": True, + }, + { + "endpoint": { + "url": "https://bucket.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="invalid outpost type (6)", + ), + param( + { + "Region": "us-east-2", + "Bucket": "bucket!", + "UseGlobalEndpoint": True, + "Endpoint": "http://foo.com", + }, + { + "endpoint": { + "url": "http://foo.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="use global endpoint + custom endpoint", + ), + param( + { + "Region": "us-east-2", + "Bucket": "bucket!", + "UseGlobalEndpoint": True, + "ForcePathStyle": True, + "Endpoint": "http://foo.com", + }, + { + "endpoint": { + "url": "http://foo.com/bucket%21", + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="use global endpoint, not us-east-1, force path style", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@us-west-2", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate + dualstack@us-west-2", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate (dualstack=false)@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + fips@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack + fips@us-west-2", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Accelerate cannot be used with FIPS"}, + id="accelerate + fips = error@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@cn-north-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "S3 Accelerate cannot be used in this region"}, + id="accelerate (dualstack=false)@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="virtual addressing + fips@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate + dualstack@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate (dualstack=false)@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + fips@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack + fips@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Accelerate cannot be used with FIPS"}, + id="accelerate + fips = error@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket.with.dots", + "Region": "us-gov-west-1", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots", + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": True, + "name": "sigv4", + } + ] + }, + } + }, + id="fips@us-gov-west-2, bucket is not S3-dns-compatible (subdomains)", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "ForcePathStyle": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="path style + fips@cn-north-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "ForcePathStyle": True, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://s3-fips.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + "name": "sigv4", + } + ] + }, + } + }, + id="path style + fips@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "ForcePathStyle": True, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "99a_b", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="SDK::Host + FIPS@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": False, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@us-west-2", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "A custom endpoint cannot be combined with S3 Accelerate"}, + id="SDK::HOST + accelerate@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Endpoint": "https://beta.example.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="FIPS@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": True, + "UseFIPS": False, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@cn-north-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "A custom endpoint cannot be combined with S3 Accelerate"}, + id="SDK::HOST + accelerate@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": True, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="SDK::Host + FIPS@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": False, + }, + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "bucket-name", + "ForcePathStyle": False, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "A custom endpoint cannot be combined with S3 Accelerate"}, + id="SDK::HOST + accelerate@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Endpoint": "https://beta.example.com", + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS@us-west-2", + ), + param( + { + "Accelerate": True, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": True, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS + DualStack@us-west-2", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="access point arn + FIPS@cn-north-1", + ), + param( + { + "Accelerate": True, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "cn-north-1", + "UseDualStack": True, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="access point arn + FIPS + DualStack@cn-north-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS@af-south-1", + ), + param( + { + "Accelerate": True, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@af-south-1", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": False, + "Region": "af-south-1", + "UseDualStack": True, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS + DualStack@af-south-1", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 outposts vanilla test", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Endpoint": "https://example.amazonaws.com", + }, + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 outposts custom endpoint", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": False, + "UseArnRegion": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="outposts arn with region mismatch and UseArnRegion=false", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://example.com", + "ForcePathStyle": False, + "UseArnRegion": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="outposts arn with region mismatch, custom region and UseArnRegion=false", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": False, + "UseArnRegion": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="outposts arn with region mismatch and UseArnRegion=true", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="outposts arn with region mismatch and UseArnRegion unset", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": False, + "UseArnRegion": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`" + }, + id="outposts arn with partition mismatch and UseArnRegion=true", + ), + param( + { + "Region": "us-east-1", + "UseGlobalEndpoint": True, + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + {"error": "S3 Outposts does not support Dual-stack"}, + id="S3 outposts does not support dualstack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + {"error": "S3 Outposts does not support FIPS"}, + id="S3 outposts does not support fips", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + }, + {"error": "S3 Outposts does not support S3 Accelerate"}, + id="S3 outposts does not support accelerate", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo", + }, + {"error": "Invalid Arn: Outpost Access Point ARN contains sub resources"}, + id="validates against subresource", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:invalid.bucket#", + }, + { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `invalid.bucket#`" + }, + id="validates against access point host label", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-west-2", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda, colon resource deliminator @us-west-2", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region us-west-2, useArnRegion=true", + ), + param( + { + "Region": "s3-external-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region s3-external-1, useArnRegion=true", + ), + param( + { + "Region": "s3-external-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`" + }, + id="object lambda @us-east-1, client region s3-external-1, useArnRegion=false", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region aws-global, useArnRegion=true", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`" + }, + id="object lambda @us-east-1, client region aws-global, useArnRegion=false", + ), + param( + { + "Region": "aws-global", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + }, + { + "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`" + }, + id="object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + }, + {"error": "S3 Object Lambda does not support Dual-stack"}, + id="object lambda with dualstack", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-gov-east-1", + ), + param( + { + "Region": "us-gov-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-gov-east-1, with fips", + ), + param( + { + "Region": "cn-north-1", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + }, + {"error": "Partition does not support FIPS"}, + id="object lambda @cn-north-1, with fips", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + }, + {"error": "S3 Object Lambda does not support S3 Accelerate"}, + id="object lambda with accelerate", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource", + }, + { + "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)" + }, + id="object lambda with invalid arn - bad service and someresource", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket", + }, + { + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`" + }, + id="object lambda with invalid arn - invalid resource", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner", + }, + {"error": "Invalid ARN: bucket ARN is missing a region"}, + id="object lambda with invalid arn - missing region", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner", + }, + {"error": "Invalid ARN: Missing account id"}, + id="object lambda with invalid arn - missing account-id", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket", + }, + { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`" + }, + id="object lambda with invalid arn - account id contains invalid characters", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint", + }, + { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + id="object lambda with invalid arn - missing access point name", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*", + }, + { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`" + }, + id="object lambda with invalid arn - access point name contains invalid character: *", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket", + }, + { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`" + }, + id="object lambda with invalid arn - access point name contains invalid character: .", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": True, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo", + }, + { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + id="object lambda with invalid arn - access point name contains sub resources", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseArnRegion": False, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Endpoint": "https://my-endpoint.com", + }, + { + "endpoint": { + "url": "https://mybanner-123456789012.my-endpoint.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda with custom endpoint", + ), + param( + { + "Accelerate": False, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "ForcePathStyle": False, + "UseArnRegion": False, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="object lambda arn with region mismatch and UseArnRegion=false", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse @ us-west-2", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Endpoint": "https://my-endpoint.com", + "Region": "us-west-2", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://my-endpoint.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse with custom endpoint", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "us-east-1", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse @ us-east-1", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "us-east-1", + "UseDualStack": False, + "UseFIPS": True, + }, + { + "endpoint": { + "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse with fips", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "us-east-1", + "UseDualStack": True, + "UseFIPS": False, + }, + {"error": "S3 Object Lambda does not support Dual-stack"}, + id="WriteGetObjectResponse with dualstack", + ), + param( + { + "Accelerate": True, + "UseObjectLambdaEndpoint": True, + "Region": "us-east-1", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "S3 Object Lambda does not support S3 Accelerate"}, + id="WriteGetObjectResponse with accelerate", + ), + param( + { + "Accelerate": False, + "Region": "cn-north-1", + "UseObjectLambdaEndpoint": True, + "UseDualStack": False, + "UseFIPS": True, + }, + {"error": "Partition does not support FIPS"}, + id="WriteGetObjectResponse with fips in CN", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "not a valid DNS name", + "UseDualStack": False, + "UseFIPS": False, + }, + {"error": "Invalid region: region was not a valid DNS name."}, + id="WriteGetObjectResponse with invalid partition", + ), + param( + { + "Accelerate": False, + "UseObjectLambdaEndpoint": True, + "Region": "us-east.special", + "UseDualStack": False, + "UseFIPS": False, + }, + { + "endpoint": { + "url": "https://s3-object-lambda.us-east.special.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": True, + "signingRegion": "us-east.special", + } + ] + }, + } + }, + id="WriteGetObjectResponse with an unknown partition", + ), + param( + { + "Region": "us-west-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Real Outpost Prod us-west-1", + ), + param( + { + "Region": "ap-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "ap-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Real Outpost Prod ap-east-1", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Ec2 Outpost Prod us-east-1", + ), + param( + { + "Region": "me-south-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "me-south-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Ec2 Outpost Prod me-south-1", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Real Outpost Beta", + ), + param( + { + "Region": "us-east-1", + "Bucket": "161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 Outposts bucketAlias Ec2 Outpost Beta", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + {"error": "Expected a endpoint to be specified but no endpoint was found"}, + id="S3 Outposts bucketAlias - No endpoint set for beta", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1de75431d83bebd/8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + {"error": "Invalid Outposts Bucket alias - it must be a valid bucket name."}, + id="S3 Outposts invalid bucket name", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-h0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "error": 'Unrecognized hardware type: "Expected hardware type o or e but got h"' + }, + id="S3 Outposts bucketAlias Invalid hardware type", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-o00000754%1d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`." + }, + id="S3 Outposts bucketAlias Special character in Outpost Arn", + ), + param( + { + "Region": "us-east-1", + "Bucket": "test-accessp-e0b1d075431d83bebde8xz5w8ijx1qzlbp3i3ebeta0--op-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + {"error": "Expected a endpoint to be specified but no endpoint was found"}, + id="S3 Outposts bucketAlias - No endpoint set for beta (2)", + ), + param( + { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "http://10.0.1.12:433", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "http://10.0.1.12:433/bucketName", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="S3 Snow with bucket", + ), + param( + { + "Region": "snow", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://10.0.1.12:433", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="S3 Snow without bucket", + ), + param( + { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "http://10.0.1.12", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "http://10.0.1.12/bucketName", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="S3 Snow no port", + ), + param( + { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://amazonaws.com", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + }, + { + "endpoint": { + "url": "https://amazonaws.com/bucketName", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="S3 Snow dns endpoint", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--abcd-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "mybucket--abcd-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name china region", + ), + param( + { + "Region": "us-east-1", + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name with AP", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name with AP china region", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone names (13 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone names (13 chars) with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone names (14 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone names (14 chars) with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone names (20 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone names (20 chars) (2)", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test-ab1--x-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone fips", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "Partition does not support FIPS"}, + id="Data Plane with short zone fips china region", + ), + param( + { + "Region": "us-east-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-ab1--xa-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone fips with AP", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "Partition does not support FIPS"}, + id="Data Plane with short zone fips with AP china region", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone (13 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone (13 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone (14 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone (14 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ fips with AP", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control.cn-north-1.amazonaws.com.cn/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket china region", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket and fips", + ), + param( + { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + {"error": "Partition does not support FIPS"}, + id="Control plane with short AZ bucket and fips china region", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket and fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short zone (13 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short zone (13 chars) with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short zone (13 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short zone (13 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long AZ", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long AZ with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with medium zone(14 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with medium zone(14 chars) with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone(20 chars)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone(20 chars) with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long AZ fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long AZ fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with medium zone (14 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with medium zone (14 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone (20 chars) fips", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone (20 chars) fips with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": True, + "Endpoint": "https://custom.com", + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control Plane host override", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": True, + "Endpoint": "https://custom.com", + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control Plane host override with AP", + ), + param( + { + "Region": "us-west-2", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": True, + "Endpoint": "https://custom.com", + }, + { + "endpoint": { + "url": "https://custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control Plane host override no bucket", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://10.0.0.1", + }, + { + "endpoint": { + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override non virtual session auth", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://10.0.0.1", + }, + { + "endpoint": { + "url": "https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override non virtual session auth with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": True, + "Endpoint": "https://10.0.0.1", + }, + { + "endpoint": { + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control Plane host override ip", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": True, + "Endpoint": "https://10.0.0.1", + }, + { + "endpoint": { + "url": "https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control Plane host override ip with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override with AP", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "Unrecognized S3Express bucket name format."}, + id="bad format error", + ), + param( + { + "Region": "us-east-1", + "Bucket": "myaccesspoint--usaz1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "Unrecognized S3Express bucket name format."}, + id="bad AP format error", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + {"error": "Unrecognized S3Express bucket name format."}, + id="bad format error no session auth", + ), + param( + { + "Region": "us-east-1", + "Bucket": "myaccesspoint--usaz1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + "DisableS3ExpressSessionAuth": True, + }, + {"error": "Unrecognized S3Express bucket name format."}, + id="bad AP format error no session auth", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "S3Express does not support S3 Accelerate."}, + id="accelerate error", + ), + param( + { + "Region": "us-east-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": True, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "S3Express does not support S3 Accelerate."}, + id="accelerate error with AP", + ), + param( + { + "Region": "us-east-1", + "Bucket": "my.bucket--test-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="Data plane bucket format error", + ), + param( + { + "Region": "us-east-1", + "Bucket": "my.myaccesspoint--test-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="Data plane AP format error", + ), + param( + { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane bucket error session auth", + ), + param( + { + "Region": "us-west-2", + "Bucket": "my.myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane AP error session auth", + ), + param( + { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + "DisableS3ExpressSessionAuth": True, + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane bucket error", + ), + param( + { + "Region": "us-west-2", + "Bucket": "my.myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "Endpoint": "https://custom.com", + "DisableS3ExpressSessionAuth": True, + }, + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane AP error", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket and dualstack", + ), + param( + { + "Region": "us-east-1", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket, fips and dualstack", + ), + param( + { + "Region": "us-east-1", + "Bucket": "my--s3--bucket--abcd-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://my--s3--bucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with bucket containing delimiters", + ), + param( + { + "Region": "us-east-1", + "Bucket": "my--s3--bucket--abcd-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": False, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + "DisableS3ExpressSessionAuth": False, + }, + { + "endpoint": { + "url": "https://s3express-control.us-east-1.amazonaws.com/my--s3--bucket--abcd-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with with bucket containing delimiters", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short AZ and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short AZ and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with short AZ and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with 9-char zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with 13-char zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with 13-char zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with 13-char zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with 13-char zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with 14-char zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with 14-char zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with 14-char zone and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with 14-char zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 cha) and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 char) and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone (20 char) and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with long zone (20 char) and FIPS with dualstack", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane with zone and dualstack and AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane with zone and FIPS with dualstack and AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with zone and dualstack and AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane AP sigv4 auth with zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone (9 char) and AP with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone (9 char) and FIPS with AP and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with (9 char) zone and dualstack with AP", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Access Point sigv4 auth with (9 char) zone and FIPS with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone (13 char) and AP with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with zone (13 char) and AP with FIPS and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with (13 char) zone with AP and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with (13 char) zone with AP and FIPS and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with (14 char) zone and AP with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with (14 char) zone and AP with FIPS and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane sigv4 auth with (14 char) zone and AP with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with (14 char) zone and AP with FIPS and dualstack (2)", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with (20 char) zone and AP with dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": False, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with (20 char) zone and AP with FIPS and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane AP with sigv4 and dualstack", + ), + param( + { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": True, + "UseDualStack": True, + "Accelerate": False, + "DisableS3ExpressSessionAuth": True, + }, + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane AP sigv4 with fips and dualstack", + ), + param( + { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": False, + "UseDualStack": True, + "Accelerate": False, + "UseS3ExpressControlEndpoint": True, + }, + { + "endpoint": { + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with dualstack and bucket", + ), +] + + +@mark.parametrize(("params", "expect"), RULES_CASES) +async def test_endpoint_rules(params: dict[str, Any], expect: dict[str, Any]) -> None: + check_rules_case( + await _endpoint_resolver(), params, expect, extensions=_RULES_EXTENSIONS + ) + + +CLIENT_CASES = [ + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3"}, + id="Invalid access point ARN: Not S3", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data", + key="key", + ), + { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + id="Invalid access point ARN: invalid resource", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:", key="key" + ), + { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + id="Invalid access point ARN: invalid no ap name", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456_789012:accesspoint:apname", key="key" + ), + { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`" + }, + id="Invalid access point ARN: AccountId is invalid", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name", key="key" + ), + { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`" + }, + id="Invalid access point ARN: access point name is invalid", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access points (disable access points explicitly false)", + ), + param( + {"region": "cn-north-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Partition does not support FIPS"}, + id="Access points: partition does not support FIPS", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Invalid region in ARN: `us-west -2` (invalid DNS name)"}, + id="Bucket region is invalid", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.create_bucket, + CreateBucketInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + ), + {"error": "Access points are not supported for this operation"}, + id="Access points when Access points explicitly disabled (used for CreateBucket)", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="arn:aws:s3:us-west-2:123456789012:", key="key"), + { + "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN" + }, + id="missing arn type", + ), + param( + { + "region": "cn-north-1", + "use_dualstack_endpoint": True, + "endpoint_uri": "https://beta.example.com", + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + access point + Dualstack is an error", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access point ARN with FIPS & Dualstack", + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Access point ARN with Dualstack", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + { + "endpoint": { + "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": ["*"], + "signingName": "s3", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla MRAP", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + {"error": "S3 MRAP does not support FIPS"}, + id="MRAP does not support FIPS", + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + {"error": "S3 MRAP does not support dual-stack"}, + id="MRAP does not support DualStack", + ), + param( + {"region": "us-east-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + {"error": "S3 MRAP does not support S3 Accelerate"}, + id="MRAP does not support S3 Accelerate", + ), + param( + {"region": "us-east-1", "disable_multi_region_access_points": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + { + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled." + }, + id="MRAP explicitly disabled", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucketname", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Dual-stack endpoint with path-style forced", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "endpoint_uri": "https://abc.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucketname", key="key"), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="Dual-stack endpoint + SDK::Host is error", + ), + param( + {"region": "us-west-2", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", key="key" + ), + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + ARN bucket", + ), + param( + {"region": "us-west-2", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99_ab", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="implicit path style bucket + dualstack", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "endpoint_uri": "http://abc.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="99_ab", key="key"), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="implicit path style bucket + dualstack (2)", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="example.com#", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/example.com%23", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="don't allow URL injections in the bucket", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket name", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket%20name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="URI encode bucket names in the path", + ), + param( + { + "region": "af-south-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="99_ab", key="key"), + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + implicit private link", + ), + param( + {"region": "af-south-1", "endpoint_uri": "https://123.123.0.1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucketname", key="key"), + { + "endpoint": { + "url": "https://123.123.0.1/bucketname", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="using an IPv4 address forces path style", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", key="key" + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="vanilla access point arn with region mismatch and UseArnRegion=false", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn with region mismatch and UseArnRegion unset", + ), + param( + {"region": "us-east-1", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn with region mismatch and UseArnRegion=true", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket.name", key="key"), + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/bucket.name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="subdomains are not allowed in virtual buckets", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="aaa", key="key"), + { + "endpoint": { + "url": "https://aaa.s3.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with 3 characters are allowed in virtual buckets", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="aa", key="key"), + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/aa", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with fewer than 3 characters are not allowed in virtual host", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="BucketName", key="key"), + { + "endpoint": { + "url": "https://s3.us-east-1.amazonaws.com/BucketName", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="bucket names with uppercase characters are not allowed in virtual host", + ), + param( + {"region": "us-east-1", "endpoint_uri": "http://example.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket.name", key="key"), + { + "endpoint": { + "url": "http://bucket.name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": True, + "signingRegion": "us-east-1", + } + ] + }, + } + }, + id="subdomains are allowed in virtual buckets on http endpoints", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "endpoint_uri": "https://example.com"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://example.com"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_accelerate_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "aws-global"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region uses the global endpoint", + ), + param( + {"region": "aws-global", "use_fips_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with fips uses the regional endpoint", + ), + param( + {"region": "aws-global", "use_dualstack_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with dualstack uses the regional endpoint", + ), + param( + { + "region": "aws-global", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with fips and dualstack uses the regional endpoint", + ), + param( + {"region": "aws-global", "use_accelerate_endpoint": True}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate", + ), + param( + {"region": "aws-global", "endpoint_uri": "https://example.com"}, + AsyncS3Client.list_buckets, + ListBucketsInput(), + { + "endpoint": { + "url": "https://example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="aws-global region with custom endpoint, uses custom", + ), + param( + {"region": "aws-global"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region uses the global endpoint", + ), + param( + {"region": "aws-global"}, + AsyncS3Client.list_objects, + ListObjectsInput(bucket="bucket-name", prefix="prefix"), + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.", + ), + param( + {"region": "aws-global", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with fips uses the regional fips endpoint", + ), + param( + {"region": "aws-global", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint", + ), + param( + { + "region": "aws-global", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint", + ), + param( + {"region": "aws-global", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with accelerate uses the global accelerate endpoint", + ), + param( + {"region": "aws-global", "endpoint_uri": "https://example.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, aws-global region with custom endpoint", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "endpoint_uri": "https://example.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "aws-global", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region uses the global endpoint", + ), + param( + { + "region": "aws-global", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint", + ), + param( + { + "region": "aws-global", + "endpoint_uri": "https://example.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://example.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, aws-global region custom endpoint uses the custom endpoint", + ), + param( + {"region": "us-east-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-west-2", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + { + "region": "us-east-1", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + { + "region": "us-east-1", + "endpoint_uri": "https://example.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://example.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "aws-global", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + key="key", + ), + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="ARN with aws-global region and UseArnRegion uses the regional endpoint", + ), + param( + {"region": "us-west-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + key="key", + ), + { + "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`" + }, + id="cross partition MRAP ARN is an error", + ), + param( + {"region": "us-west-2", "endpoint_uri": "http://beta.example.com:1234"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "http://myendpoint-123456789012.beta.example.com:1234", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="Endpoint override, accesspoint with HTTP, port", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@us-west-2", + ), + param( + {"region": "us-west-2", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate + dualstack@us-west-2", + ), + param( + {"region": "us-west-2", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate (dualstack=false)@us-west-2", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + fips@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack + fips@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_fips_endpoint": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Accelerate cannot be used with FIPS"}, + id="accelerate + fips = error@us-west-2", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@cn-north-1", + ), + param( + {"region": "cn-north-1", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@cn-north-1", + ), + param( + {"region": "af-south-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla virtual addressing@af-south-1", + ), + param( + {"region": "af-south-1", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_dualstack_endpoint": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate + dualstack@af-south-1", + ), + param( + {"region": "af-south-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-accelerate.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="accelerate (dualstack=false)@af-south-1", + ), + param( + {"region": "af-south-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + fips@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + dualstack + fips@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_fips_endpoint": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Accelerate cannot be used with FIPS"}, + id="accelerate + fips = error@af-south-1", + ), + param( + {"region": "us-west-2", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@us-west-2", + ), + param( + { + "region": "us-gov-west-1", + "use_fips_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket.with.dots", key="key"), + { + "endpoint": { + "url": "https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots", + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": True, + "name": "sigv4", + } + ] + }, + } + }, + id="fips@us-gov-west-2, bucket is not S3-dns-compatible (subdomains)", + ), + param( + { + "region": "us-west-2", + "force_path_style": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@us-west-2", + ), + param( + {"region": "us-west-2", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + key="key", + ), + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@us-west-2", + ), + param( + {"region": "us-west-2", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@us-west-2", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.us-west-2.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@us-west-2", + ), + param( + {"region": "cn-north-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@cn-north-1", + ), + param( + {"region": "cn-north-1", "use_fips_endpoint": True, "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Partition does not support FIPS"}, + id="path style + fips@cn-north-1", + ), + param( + { + "region": "cn-north-1", + "force_path_style": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@cn-north-1", + ), + param( + { + "region": "cn-north-1", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@cn-north-1", + ), + param( + {"region": "cn-north-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + key="key", + ), + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@cn-north-1", + ), + param( + {"region": "cn-north-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@cn-north-1", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@cn-north-1", + ), + param( + {"region": "af-south-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla path style@af-south-1", + ), + param( + {"region": "af-south-1", "use_fips_endpoint": True, "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3-fips.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + "name": "sigv4", + } + ] + }, + } + }, + id="path style + fips@af-south-1", + ), + param( + { + "region": "af-south-1", + "force_path_style": True, + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Path-style addressing cannot be used with S3 Accelerate"}, + id="path style + accelerate = error@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_dualstack_endpoint": True, + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + dualstack@af-south-1", + ), + param( + {"region": "af-south-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + key="key", + ), + {"error": "Path-style addressing cannot be used with ARN buckets"}, + id="path style + arn is error@af-south-1", + ), + param( + {"region": "af-south-1", "force_path_style": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + invalid DNS name@af-south-1", + ), + param( + {"region": "af-south-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="99a_b", key="key"), + { + "endpoint": { + "url": "https://s3.af-south-1.amazonaws.com/99a_b", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="no path style + invalid DNS name@af-south-1", + ), + param( + { + "region": "us-west-2", + "endpoint_uri": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@us-west-2", + ), + param( + { + "region": "us-west-2", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_fips_endpoint": True, + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="SDK::Host + FIPS@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@us-west-2", + ), + param( + { + "region": "us-west-2", + "endpoint_uri": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "A custom endpoint cannot be combined with S3 Accelerate"}, + id="SDK::HOST + accelerate@us-west-2", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://beta.example.com"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@us-west-2", + ), + param( + { + "region": "cn-north-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@cn-north-1", + ), + param( + { + "region": "cn-north-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@cn-north-1", + ), + param( + { + "region": "cn-north-1", + "use_dualstack_endpoint": True, + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@cn-north-1", + ), + param( + {"region": "cn-north-1", "endpoint_uri": "https://beta.example.com"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@cn-north-1", + ), + param( + { + "region": "af-south-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="virtual addressing + private link@af-south-1", + ), + param( + { + "region": "af-south-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "force_path_style": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + { + "endpoint": { + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="path style + private link@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_fips_endpoint": True, + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "A custom endpoint cannot be combined with FIPS"}, + id="SDK::Host + FIPS@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_dualstack_endpoint": True, + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "Cannot set dual-stack in combination with a custom endpoint."}, + id="SDK::Host + DualStack@af-south-1", + ), + param( + { + "region": "af-south-1", + "endpoint_uri": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "use_accelerate_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="bucket-name", key="key"), + {"error": "A custom endpoint cannot be combined with S3 Accelerate"}, + id="SDK::HOST + accelerate@af-south-1", + ), + param( + {"region": "af-south-1", "endpoint_uri": "https://beta.example.com"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.beta.example.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="SDK::Host + access point ARN@af-south-1", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@us-west-2", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS@us-west-2", + ), + param( + {"region": "us-west-2", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@us-west-2", + ), + param( + { + "region": "us-west-2", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", key="key" + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS + DualStack@us-west-2", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@cn-north-1", + ), + param( + {"region": "cn-north-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@cn-north-1", + ), + param( + {"region": "af-south-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="vanilla access point arn@af-south-1", + ), + param( + {"region": "af-south-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS@af-south-1", + ), + param( + {"region": "af-south-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + key="key", + ), + {"error": "Access Points do not support S3 Accelerate"}, + id="access point arn + accelerate = error@af-south-1", + ), + param( + { + "region": "af-south-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + key="key", + ), + { + "endpoint": { + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="access point arn + FIPS + DualStack@af-south-1", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + key="key", + ), + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 outposts vanilla test", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://example.amazonaws.com"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + key="key", + ), + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="S3 outposts custom endpoint", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + key="key", + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="outposts arn with region mismatch and UseArnRegion=false", + ), + param( + { + "region": "us-west-2", + "endpoint_uri": "https://example.com", + "use_arn_region": False, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + key="key", + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="outposts arn with region mismatch, custom region and UseArnRegion=false", + ), + param( + {"region": "us-west-2", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + key="key", + ), + { + "endpoint": { + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="outposts arn with region mismatch and UseArnRegion=true", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + key="key", + ), + { + "endpoint": { + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="outposts arn with region mismatch and UseArnRegion unset", + ), + param( + {"region": "us-west-2", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + key="key", + ), + { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`" + }, + id="outposts arn with partition mismatch and UseArnRegion=true", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + key="key", + ), + { + "endpoint": { + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": ["*"], + "disableDoubleEncoding": True, + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + }, + ] + }, + } + }, + id="ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint", + marks=mark.skip( + reason="No config field sets the built-in AWS::S3::UseGlobalEndpoint" + ), + ), + param( + {"region": "us-east-1", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-west-2", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda, colon resource deliminator @us-west-2", + ), + param( + {"region": "us-west-2", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region us-west-2, useArnRegion=true", + ), + param( + {"region": "s3-external-1", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region s3-external-1, useArnRegion=true", + ), + param( + {"region": "s3-external-1", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`" + }, + id="object lambda @us-east-1, client region s3-external-1, useArnRegion=false", + ), + param( + {"region": "aws-global", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda @us-east-1, client region aws-global, useArnRegion=true", + ), + param( + {"region": "aws-global", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`" + }, + id="object lambda @us-east-1, client region aws-global, useArnRegion=false", + ), + param( + {"region": "aws-global", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`" + }, + id="object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true", + ), + param( + { + "region": "us-west-2", + "use_dualstack_endpoint": True, + "use_arn_region": False, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + key="key", + ), + {"error": "S3 Object Lambda does not support Dual-stack"}, + id="object lambda with dualstack", + ), + param( + { + "region": "us-west-2", + "use_accelerate_endpoint": True, + "use_arn_region": False, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + key="key", + ), + {"error": "S3 Object Lambda does not support S3 Accelerate"}, + id="object lambda with accelerate", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:sqs:us-west-2:123456789012:someresource", key="key" + ), + { + "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)" + }, + id="object lambda with invalid arn - bad service and someresource", + ), + param( + {"region": "us-west-2", "use_arn_region": True}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket", + key="key", + ), + { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`" + }, + id="object lambda with invalid arn - account id contains invalid characters", + ), + param( + { + "region": "us-west-2", + "endpoint_uri": "https://my-endpoint.com", + "use_arn_region": False, + }, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + key="key", + ), + { + "endpoint": { + "url": "https://mybanner-123456789012.my-endpoint.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="object lambda with custom endpoint", + ), + param( + {"region": "us-west-2", "use_arn_region": False}, + AsyncS3Client.get_object, + GetObjectInput( + bucket="arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + key="key", + ), + { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + id="object lambda arn with region mismatch and UseArnRegion=false", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.write_get_object_response, + WriteGetObjectResponseInput( + request_route="RequestRoute", request_token="RequestToken" + ), + { + "endpoint": { + "url": "https://s3-object-lambda.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse @ us-west-2", + marks=mark.xfail( + reason="Host labels in an endpoint trait's hostPrefix aren't serialized yet", + strict=True, + ), + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://my-endpoint.com"}, + AsyncS3Client.write_get_object_response, + WriteGetObjectResponseInput( + request_route="RequestRoute", request_token="RequestToken" + ), + { + "endpoint": { + "url": "https://my-endpoint.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse with custom endpoint", + marks=mark.xfail( + reason="Host labels in an endpoint trait's hostPrefix aren't serialized yet", + strict=True, + ), + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.write_get_object_response, + WriteGetObjectResponseInput( + request_route="RequestRoute", request_token="RequestToken" + ), + { + "endpoint": { + "url": "https://s3-object-lambda.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse @ us-east-1", + marks=mark.xfail( + reason="Host labels in an endpoint trait's hostPrefix aren't serialized yet", + strict=True, + ), + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.write_get_object_response, + WriteGetObjectResponseInput( + request_route="RequestRoute", request_token="RequestToken" + ), + { + "endpoint": { + "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ] + }, + } + }, + id="WriteGetObjectResponse with fips", + marks=mark.xfail( + reason="Host labels in an endpoint trait's hostPrefix aren't serialized yet", + strict=True, + ), + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.write_get_object_response, + WriteGetObjectResponseInput( + request_route="RequestRoute", request_token="RequestToken" + ), + {"error": "S3 Object Lambda does not support Dual-stack"}, + id="WriteGetObjectResponse with dualstack", + marks=mark.xfail( + reason="Host labels in an endpoint trait's hostPrefix aren't serialized yet", + strict=True, + ), + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--abcd-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--abcd-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name china region", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--abcd-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name with AP", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--abcd-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone name with AP china region", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone names (13 chars)", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone names (13 chars) with AP", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone names (14 chars)", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone names (14 chars) with AP", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-long1-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone names (20 chars)", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-long1-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone names (20 chars) (2)", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test-ab1--x-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone fips", + ), + param( + {"region": "cn-north-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test-ab1--x-s3", key="key"), + {"error": "Partition does not support FIPS"}, + id="Data Plane with short zone fips china region", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test-ab1--xa-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone fips with AP", + ), + param( + {"region": "cn-north-1", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test-ab1--xa-s3", key="key"), + {"error": "Partition does not support FIPS"}, + id="Data Plane with short zone fips with AP china region", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone (13 chars) fips", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short zone (13 chars) fips with AP", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone (14 chars) fips", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with medium zone (14 chars) fips with AP", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-long1-zone-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 chars) fips", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-long1-zone-ab1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long zone (20 chars) fips with AP", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ", + ), + param( + {"region": "us-west-2"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-az1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ with AP", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test1-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ fips", + ), + param( + {"region": "us-west-2", "use_fips_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test1-az1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with long AZ fips with AP", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + { + "endpoint": { + "url": "https://s3express-control.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket", + ), + param( + {"region": "cn-north-1"}, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + { + "endpoint": { + "url": "https://s3express-control.cn-north-1.amazonaws.com.cn/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket china region", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + { + "endpoint": { + "url": "https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with short AZ bucket and fips", + ), + param( + {"region": "cn-north-1", "use_fips_endpoint": True}, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + {"error": "Partition does not support FIPS"}, + id="Control plane with short AZ bucket and fips china region", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.list_directory_buckets, + ListDirectoryBucketsInput(), + { + "endpoint": { + "url": "https://s3express-control.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket", + ), + param( + {"region": "us-east-1", "use_fips_endpoint": True}, + AsyncS3Client.list_directory_buckets, + ListDirectoryBucketsInput(), + { + "endpoint": { + "url": "https://s3express-control-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket and fips", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://10.0.0.1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usw2-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override non virtual session auth", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://10.0.0.1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--usw2-az1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override non virtual session auth with AP", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://custom.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usw2-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://custom.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--usw2-az1--xa-s3", key="key"), + { + "endpoint": { + "url": "https://myaccesspoint--usw2-az1--xa-s3.custom.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data plane host override with AP", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usaz1--x-s3", key="key"), + {"error": "Unrecognized S3Express bucket name format."}, + id="bad format error", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--usaz1--xa-s3", key="key"), + {"error": "Unrecognized S3Express bucket name format."}, + id="bad AP format error", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usaz1--x-s3", key="key"), + {"error": "Unrecognized S3Express bucket name format."}, + id="bad format error no session auth", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--usaz1--xa-s3", key="key"), + {"error": "Unrecognized S3Express bucket name format."}, + id="bad AP format error no session auth", + ), + param( + {"region": "us-east-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--test-ab1--x-s3", key="key"), + {"error": "S3Express does not support S3 Accelerate."}, + id="accelerate error", + ), + param( + {"region": "us-east-1", "use_accelerate_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="myaccesspoint--test-ab1--xa-s3", key="key"), + {"error": "S3Express does not support S3 Accelerate."}, + id="accelerate error with AP", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="my.bucket--test-ab1--x-s3", key="key"), + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="Data plane bucket format error", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="my.myaccesspoint--test-ab1--xa-s3", key="key"), + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="Data plane AP format error", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://custom.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="my.bucket--usw2-az1--x-s3", key="key"), + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane bucket error session auth", + ), + param( + {"region": "us-west-2", "endpoint_uri": "https://custom.com"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="my.myaccesspoint--usw2-az1--xa-s3", key="key"), + {"error": "S3Express bucket name is not a valid virtual hostable name."}, + id="host override data plane AP error session auth", + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.list_directory_buckets, + ListDirectoryBucketsInput(), + { + "endpoint": { + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket and dualstack", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.list_directory_buckets, + ListDirectoryBucketsInput(), + { + "endpoint": { + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane without bucket, fips and dualstack", + ), + param( + {"region": "us-east-1"}, + AsyncS3Client.get_object, + GetObjectInput(bucket="my--s3--bucket--abcd-ab1--x-s3", key="key"), + { + "endpoint": { + "url": "https://my--s3--bucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with bucket containing delimiters", + ), + param( + {"region": "us-west-2", "use_dualstack_endpoint": True}, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usw2-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short AZ and dualstack", + ), + param( + { + "region": "us-west-2", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.get_object, + GetObjectInput(bucket="mybucket--usw2-az1--x-s3", key="key"), + { + "endpoint": { + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Data Plane with short AZ and FIPS with dualstack", + ), + param( + { + "region": "us-east-1", + "use_fips_endpoint": True, + "use_dualstack_endpoint": True, + }, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + { + "endpoint": { + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane and FIPS with dualstack", + ), + param( + {"region": "us-east-1", "use_dualstack_endpoint": True}, + AsyncS3Client.create_bucket, + CreateBucketInput(bucket="mybucket--test-ab1--x-s3"), + { + "endpoint": { + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": True, + } + ], + "backend": "S3Express", + }, + } + }, + id="Control plane with dualstack and bucket", + ), +] + + +@mark.parametrize(("config", "operation", "input", "expect"), CLIENT_CASES) +async def test_endpoint_client( + config: dict[str, Any], + operation: Callable[[AsyncS3Client, Any], Awaitable[Any]], + input: Any, + expect: dict[str, Any], +) -> None: + await check_client_case_async( + lambda capture: _client(config, capture), + operation, + input, + expect, + extensions=_RULES_EXTENSIONS, + ) diff --git a/clients/aws-sdk-s3/tests/test_model_conformance.py b/clients/aws-sdk-s3/tests/test_model_conformance.py new file mode 100644 index 00000000..b77aa94d --- /dev/null +++ b/clients/aws-sdk-s3/tests/test_model_conformance.py @@ -0,0 +1,13 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from pathlib import Path + +from smithy_test import verify_models + +from aws_sdk_s3 import models as _models +from aws_sdk_s3._private import schemas as _schemas + + +def test_model_conformance() -> None: + pyi = Path(_models.__file__).with_suffix(".pyi") + verify_models(_models, _schemas, pyi_path=str(pyi) if pyi.exists() else None) diff --git a/clients/aws-sdk-s3/tests/test_restxml_protocol.py b/clients/aws-sdk-s3/tests/test_restxml_protocol.py new file mode 100644 index 00000000..e2516c0f --- /dev/null +++ b/clients/aws-sdk-s3/tests/test_restxml_protocol.py @@ -0,0 +1,69 @@ +# Code generated by smithy-python-codegen DO NOT EDIT. + +from smithy_core.aio.types import AsyncBytesReader +from smithy_http import HTTPResponse as _smithy_http_HTTPResponse, tuples_to_fields +from smithy_http.interfaces import ( + HTTPClientConfiguration, + HTTPRequest, + HTTPRequestConfiguration, + HTTPResponse as _smithy_http_interfaces_HTTPResponse, +) + +from aws_sdk_s3.models import ServiceError + + +class TestHttpServiceError(ServiceError): + """A test error that subclasses the service-error for protocol tests.""" + + def __init__(self, request: HTTPRequest): + self.request = request + + +class RequestTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__(self, *, client_config: HTTPClientConfiguration | None = None): + self._client_config = client_config + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_interfaces_HTTPResponse: + # Raise the exception with the request object to bypass actual request handling + raise TestHttpServiceError(request) + + +class ResponseTestHTTPClient: + """An asynchronous HTTP client solely for testing purposes.""" + + TIMEOUT_EXCEPTIONS = () + SUPPORTS_DUPLEX_STREAMING: bool = True + + def __init__( + self, + *, + client_config: HTTPClientConfiguration | None = None, + status: int = 200, + headers: list[tuple[str, str]] | None = None, + body: bytes = b"", + ): + self._client_config = client_config + self.status = status + self.fields = tuples_to_fields(headers or []) + self.body = body + + async def send( + self, + request: HTTPRequest, + *, + request_config: HTTPRequestConfiguration | None = None, + ) -> _smithy_http_HTTPResponse: + # Pre-construct the response from the request and return it + return _smithy_http_HTTPResponse( + status=self.status, fields=self.fields, body=AsyncBytesReader(self.body) + ) diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/_private/schemas.py b/clients/aws-sdk-signin/src/aws_sdk_signin/_private/schemas.py index 65dc6ef1..74bf13aa 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/_private/schemas.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/_private/schemas.py @@ -18,6 +18,20 @@ _RNF = "RESOURCE_NOT_FOUND" _CONFLICT = "CONFLICT" _SQE = "SERVICE_QUOTA_EXCEEDED" +_OUGT = "OAUTH_UNSUPPORTED_GRANT_TYPE" +_ugt = "unsupported_grant_type" +_OIR = "OAUTH_INVALID_REQUEST" +_ir = "invalid_request" +_OIG = "OAUTH_INVALID_GRANT" +_ig = "invalid_grant" +_OIS = "OAUTH_INVALID_SCOPE" +_is = "invalid_scope" +_OIT = "OAUTH_INVALID_TARGET" +_it = "invalid_target" +_ORE = "OAUTH_RATE_EXCEEDED" +_re = "rate_exceeded" +_OSU = "OAUTH_SERVICE_UNAVAILABLE" +_su = "service_unavailable" _ADE = "AccessDeniedException" _s = "smithy.api#error" _c = "client" @@ -32,6 +46,7 @@ _sT = "sessionToken" _AI = "AccountId" _AC = "AuthorizationCode" +_BTEI = "BearerTokenExpiresIn" _BTT = "BearerTokenType" _CCGT = "ClientCredentialsGrantType" _CI = "ClientId" @@ -47,58 +62,86 @@ _CE = "ConflictException" _sE = "smithy.api#httpError" _CPMR = "ConsolePermissionMaxResults" +_TD = "TokenDuration" +_R = "Resource" +_CBTI = "CreateBearerTokenInput" +_sSI = "smithy.synthetic#originalShapeId" +_cCBTR = "com.amazonaws.signin#CreateBearerTokenRequest" +_smit = "smithy.api#input" +_gT = "grantType" +_gt = "grant_type" +_r = "resource" +_dS = "durationSeconds" +_d = "duration" +_OAAT = "OAuthAccessToken" +_CBTO = "CreateBearerTokenOutput" +_cCBTRo = "com.amazonaws.signin#CreateBearerTokenResponse" +_smith = "smithy.api#output" +_aT = "accessToken" +_at = "access_token" +_tT = "tokenType" +_tt = "token_type" +_eI = "expiresIn" +_ei = "expires_in" +_ISE = "InternalServerException" +_ser = "server" +_TMRE = "TooManyRequestsError" +_VE = "ValidationException" +_CBT = "CreateBearerToken" +_sCP = "smithy.rules#staticContextParams" +_smithy = "smithy.api#http" _GT = "GrantType" _RU = "RedirectUri" _RT = "RefreshToken" _COATRB = "CreateOAuth2TokenRequestBody" _cI = "clientId" -_gT = "grantType" _co = "code" _rU = "redirectUri" _cV = "codeVerifier" _rT = "refreshToken" _COATI = "CreateOAuth2TokenInput" -_sSI = "smithy.synthetic#originalShapeId" _cCOATR = "com.amazonaws.signin#CreateOAuth2TokenRequest" -_smit = "smithy.api#input" _tI = "tokenInput" _sP = "smithy.api#httpPayload" _EI = "ExpiresIn" _IT = "IdToken" _TT = "TokenType" _COATRBr = "CreateOAuth2TokenResponseBody" -_aT = "accessToken" -_tT = "tokenType" -_eI = "expiresIn" _iT = "idToken" _COATO = "CreateOAuth2TokenOutput" _cCOATRo = "com.amazonaws.signin#CreateOAuth2TokenResponse" -_smith = "smithy.api#output" _tO = "tokenOutput" -_ISE = "InternalServerException" -_ser = "server" -_TMRE = "TooManyRequestsError" -_VE = "ValidationException" _COAT = "CreateOAuth2Token" -_sCP = "smithy.rules#staticContextParams" -_smithy = "smithy.api#http" _COATWIAMI = "CreateOAuth2TokenWithIAMInput" _cCOATWIAMR = "com.amazonaws.signin#CreateOAuth2TokenWithIAMRequest" -_gt = "grant_type" -_r = "resource" -_OAAT = "OAuthAccessToken" _TEI = "TokenExpiresIn" _COATWIAMO = "CreateOAuth2TokenWithIAMOutput" _cCOATWIAMRo = "com.amazonaws.signin#CreateOAuth2TokenWithIAMResponse" -_at = "access_token" -_tt = "token_type" -_ei = "expires_in" _COATWIAM = "CreateOAuth2TokenWithIAM" +_TEGT = "TokenExchangeGrantType" +_S = "Scope" +_ST = "SubjectToken" +_STT = "SubjectTokenType" +_COATWTEI = "CreateOAuth2TokenWithTokenExchangeInput" +_cCOATWTER = "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeRequest" +_sTu = "subjectToken" +_st = "subject_token" +_sTT = "subjectTokenType" +_stt = "subject_token_type" +_sc = "scope" +_IOAATT = "IssuedOAuthAccessTokenType" +_COATWTEO = "CreateOAuth2TokenWithTokenExchangeOutput" +_cCOATWTERo = "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeResponse" +_iTT = "issuedTokenType" +_itt = "issued_token_type" +_IGE = "InvalidGrantException" +_ISEn = "InvalidScopeException" +_SUE = "ServiceUnavailableException" +_COATWTE = "CreateOAuth2TokenWithTokenExchange" _TI = "TargetId" _DCACI = "DeleteConsoleAuthorizationConfigurationInput" _tIa = "targetId" _DCACO = "DeleteConsoleAuthorizationConfigurationOutput" -_sc = "scope" _cAE = "consoleAuthorizationEnabled" _RNFE = "ResourceNotFoundException" _DCAC = "DeleteConsoleAuthorizationConfiguration" @@ -122,14 +165,13 @@ _p = "principal" _a = "action" _A = "Action" -_R = "Resource" _con = "condition" _PSo = "PolicyStatements" _SRBP = "SigninResourceBasedPolicy" _ve = "version" _V = "Version" -_st = "statement" -_S = "Statement" +_sta = "statement" +_St = "Statement" _GRPO = "GetResourcePolicyOutput" _sRBP = "signinResourceBasedPolicy" _GRP = "GetResourcePolicy" @@ -150,9 +192,9 @@ _ex = "exp" _i = "iat" _n = "nbf" -_su = "sub" +_sub = "sub" _au = "aud" -_is = "iss" +_iss = "iss" _j = "jti" _aI = "accountId" _ai = "account_id" @@ -204,7 +246,24 @@ n0, _OAEC, 0, - (_TE, _UCC, _IP, _AE, _SE, _IR, _RNF, _CONFLICT, _SQE), + ( + _TE, + _UCC, + _IP, + _AE, + _SE, + _IR, + _RNF, + _CONFLICT, + _SQE, + _OUGT, + _OIR, + _OIG, + _OIS, + _OIT, + _ORE, + _OSU, + ), ( (-1, {_sV: _TE}), (-1, {_sV: _UCC}), @@ -215,6 +274,13 @@ (-1, {_sV: _RNF}), (-1, {_sV: _CONFLICT}), (-1, {_sV: _SQE}), + (-1, {_sV: _ugt}), + (-1, {_sV: _ir}), + (-1, {_sV: _ig}), + (-1, {_sV: _is}), + (-1, {_sV: _it}), + (-1, {_sV: _re}), + (-1, {_sV: _su}), ), ) @@ -244,6 +310,8 @@ AUTHORIZATION_CODE: StaticSchema = (3, n0, _AC, 0) +BEARER_TOKEN_EXPIRES_IN: StaticSchema = (7, n0, _BTEI, 0) + BEARER_TOKEN_TYPE: StaticSchema = (3, n0, _BTT, 0) CLIENT_CREDENTIALS_GRANT_TYPE: StaticSchema = (3, n0, _CCGT, 0) @@ -280,6 +348,85 @@ CONSOLE_PERMISSION_MAX_RESULTS: StaticSchema = (7, n0, _CPMR, 0) +TOKEN_DURATION: StaticSchema = (7, n0, _TD, 0) + +RESOURCE: StaticSchema = (3, n0, _R, 0) + +CREATE_BEARER_TOKEN_INPUT: StaticSchema = ( + 18, + n0, + _CBTI, + {_sSI: _cCBTR, _smit: None}, + (_gT, _r, _dS), + ( + (CLIENT_CREDENTIALS_GRANT_TYPE, {_sN: _gt, _sm: None}), + (RESOURCE, 1), + (TOKEN_DURATION, {_sN: _d}), + ), +) + +O_AUTH_ACCESS_TOKEN: StaticSchema = (3, n0, _OAAT, 4) + +CREATE_BEARER_TOKEN_OUTPUT: StaticSchema = ( + 18, + n0, + _CBTO, + {_sSI: _cCBTRo, _smith: None}, + (_aT, _tT, _eI), + ( + (O_AUTH_ACCESS_TOKEN, {_sN: _at, _sm: None}), + (BEARER_TOKEN_TYPE, {_sN: _tt, _sm: None}), + (BEARER_TOKEN_EXPIRES_IN, {_sN: _ei, _sm: None}), + ), +) + +INTERNAL_SERVER_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISE, + {_s: _ser, _sE: 500}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +TOO_MANY_REQUESTS_ERROR: StaticSchema = ( + 18, + n0, + _TMRE, + {_s: _c, _sE: 429}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +VALIDATION_EXCEPTION: StaticSchema = ( + 18, + n0, + _VE, + {_s: _c, _sE: 400}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +CREATE_BEARER_TOKEN: StaticOperationSchema = ( + 23, + n0, + _CBT, + { + _sCP: MappingProxyType({"IsOAuthEndpoint": MappingProxyType({"value": True})}), + _smithy: MappingProxyType( + {"method": "POST", "uri": "/v1/token?x-amz-token-request-type=bearer"} + ), + }, + CREATE_BEARER_TOKEN_INPUT, + CREATE_BEARER_TOKEN_OUTPUT, + ( + ACCESS_DENIED_EXCEPTION, + INTERNAL_SERVER_EXCEPTION, + TOO_MANY_REQUESTS_ERROR, + VALIDATION_EXCEPTION, + ), +) + GRANT_TYPE: StaticSchema = (3, n0, _GT, 0) REDIRECT_URI: StaticSchema = (3, n0, _RU, 0) @@ -341,33 +488,6 @@ ((CREATE_O_AUTH2_TOKEN_RESPONSE_BODY, 17),), ) -INTERNAL_SERVER_EXCEPTION: StaticSchema = ( - 18, - n0, - _ISE, - {_s: _ser, _sE: 500}, - (_e, _m), - ((O_AUTH2_ERROR_CODE, 1), (3, 1)), -) - -TOO_MANY_REQUESTS_ERROR: StaticSchema = ( - 18, - n0, - _TMRE, - {_s: _c, _sE: 429}, - (_e, _m), - ((O_AUTH2_ERROR_CODE, 1), (3, 1)), -) - -VALIDATION_EXCEPTION: StaticSchema = ( - 18, - n0, - _VE, - {_s: _c, _sE: 400}, - (_e, _m), - ((O_AUTH2_ERROR_CODE, 1), (3, 1)), -) - CREATE_O_AUTH2_TOKEN: StaticOperationSchema = ( 23, n0, @@ -392,11 +512,9 @@ _COATWIAMI, {_sSI: _cCOATWIAMR, _smit: None}, (_gT, _r), - ((CLIENT_CREDENTIALS_GRANT_TYPE, {_sN: _gt, _sm: None}), (3, 1)), + ((CLIENT_CREDENTIALS_GRANT_TYPE, {_sN: _gt, _sm: None}), (RESOURCE, 1)), ) -O_AUTH_ACCESS_TOKEN: StaticSchema = (3, n0, _OAAT, 4) - TOKEN_EXPIRES_IN: StaticSchema = (7, n0, _TEI, 0) CREATE_O_AUTH2_TOKEN_WITH_IAM_OUTPUT: StaticSchema = ( @@ -432,6 +550,97 @@ ), ) +TOKEN_EXCHANGE_GRANT_TYPE: StaticSchema = (3, n0, _TEGT, 0) + +SCOPE: StaticSchema = (3, n0, _S, 0) + +SUBJECT_TOKEN: StaticSchema = (3, n0, _ST, 4) + +SUBJECT_TOKEN_TYPE: StaticSchema = (3, n0, _STT, 0) + +CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_INPUT: StaticSchema = ( + 18, + n0, + _COATWTEI, + {_sSI: _cCOATWTER, _smit: None}, + (_gT, _sTu, _sTT, _r, _sc), + ( + (TOKEN_EXCHANGE_GRANT_TYPE, {_sN: _gt, _sm: None}), + (SUBJECT_TOKEN, {_sN: _st}), + (SUBJECT_TOKEN_TYPE, {_sN: _stt}), + (RESOURCE, 0), + (SCOPE, 0), + ), +) + +ISSUED_O_AUTH_ACCESS_TOKEN_TYPE: StaticSchema = (3, n0, _IOAATT, 0) + +CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_OUTPUT: StaticSchema = ( + 18, + n0, + _COATWTEO, + {_sSI: _cCOATWTERo, _smith: None}, + (_aT, _iTT, _tT, _eI), + ( + (O_AUTH_ACCESS_TOKEN, {_sN: _at, _sm: None}), + (ISSUED_O_AUTH_ACCESS_TOKEN_TYPE, {_sN: _itt}), + (BEARER_TOKEN_TYPE, {_sN: _tt, _sm: None}), + (TOKEN_EXPIRES_IN, {_sN: _ei, _sm: None}), + ), +) + +INVALID_GRANT_EXCEPTION: StaticSchema = ( + 18, + n0, + _IGE, + {_s: _c, _sE: 400}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +INVALID_SCOPE_EXCEPTION: StaticSchema = ( + 18, + n0, + _ISEn, + {_s: _c, _sE: 400}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +SERVICE_UNAVAILABLE_EXCEPTION: StaticSchema = ( + 18, + n0, + _SUE, + {_s: _ser, _sE: 503}, + (_e, _m), + ((O_AUTH2_ERROR_CODE, 1), (3, 1)), +) + +CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE: StaticOperationSchema = ( + 23, + n0, + _COATWTE, + { + _sCP: MappingProxyType({"IsOAuthEndpoint": MappingProxyType({"value": True})}), + _smithy: MappingProxyType( + { + "method": "POST", + "uri": "/v1/token?x-amz-oauth-token-method=token-exchange", + } + ), + }, + CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_INPUT, + CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_OUTPUT, + ( + INTERNAL_SERVER_EXCEPTION, + INVALID_GRANT_EXCEPTION, + INVALID_SCOPE_EXCEPTION, + SERVICE_UNAVAILABLE_EXCEPTION, + TOO_MANY_REQUESTS_ERROR, + VALIDATION_EXCEPTION, + ), +) + TARGET_ID: StaticSchema = (3, n0, _TI, 0) DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION_INPUT: StaticSchema = ( @@ -590,8 +799,8 @@ n0, _SRBP, 0, - (_ve, _st), - ((3, {_sN: _V}), (POLICY_STATEMENTS, {_sN: _S})), + (_ve, _sta), + ((3, {_sN: _V}), (POLICY_STATEMENTS, {_sN: _St})), ) GET_RESOURCE_POLICY_OUTPUT: StaticSchema = ( @@ -641,7 +850,7 @@ n0, _IOATWIAMO, {_sSI: _cIOATWIAMRo, _smith: None}, - (_ac, _cI, _uI, _tT, _ex, _i, _n, _su, _au, _is, _j, _aI, _sS, _r), + (_ac, _cI, _uI, _tT, _ex, _i, _n, _sub, _au, _iss, _j, _aI, _sS, _r), ( (2, 1), (3, {_sN: _ci}), @@ -650,13 +859,13 @@ (8, {_sN: _ex}), (8, {_sN: _i}), (8, {_sN: _n}), - (3, {_sN: _su}), + (3, {_sN: _sub}), (3, {_sN: _au}), - (3, {_sN: _is}), + (3, {_sN: _iss}), (3, {_sN: _j}), (ACCOUNT_ID, {_sN: _ai}), (3, {_sN: _ss}), - (3, {_sN: _r}), + (RESOURCE, {_sN: _r}), ), ) diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/aio/client.py b/clients/aws-sdk-signin/src/aws_sdk_signin/aio/client.py index 38b247ab..0c522036 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/aio/client.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/aio/client.py @@ -20,10 +20,14 @@ if TYPE_CHECKING: from ..models import ( + CreateBearerTokenInput, + CreateBearerTokenOutput, CreateOAuth2TokenInput, CreateOAuth2TokenOutput, CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, DeleteResourcePermissionStatementInput, @@ -50,39 +54,40 @@ class AsyncSigninClient(AsyncClient[AsyncSigninConfig]): """ - AWS Sign-In manages authentication for AWS services. This service - provides secure authentication flows for accessing AWS resources from - the console and developer tools. + AWS Sign-In manages authentication for AWS services. It implements OAuth + 2.0, providing secure token exchange and refresh capabilities. """ _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + async def create_bearer_token( + self, input: CreateBearerTokenInput, plugins: list[Plugin] | None = None + ) -> CreateBearerTokenOutput: + """ + Creates a bearer token that represents your IAM credentials and can be + used to access a supported AWS service. By default, the token is valid + for 12 hours. + + Args: + input: + An instance of `CreateBearerTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBearerTokenOutput`. + """ + return await self._invoke(input, _models.CREATE_BEARER_TOKEN, [], plugins) + async def create_o_auth2_token( self, input: CreateOAuth2TokenInput, plugins: list[Plugin] | None = None ) -> CreateOAuth2TokenOutput: """ - CreateOAuth2Token API Path: /v1/token Request Method: POST Content-Type: - application/json or application/x-www-form-urlencoded This API - implements OAuth 2.0 flows for AWS Sign-In CLI clients, supporting - both: 1. Authorization code redemption (grant_type=authorization_code) - - NOT idempotent 2. Token refresh (grant_type=refresh_token) - Idempotent - within token validity window The operation behavior is determined by the - grant_type parameter in the request body: **Authorization Code Flow - (NOT Idempotent):** - JSON or form-encoded body with client_id, - grant_type=authorization_code, code, redirect_uri, code_verifier - - Returns access_token, token_type, expires_in, refresh_token, and - id_token - Each authorization code can only be used ONCE for security - (prevents replay attacks) **Token Refresh Flow (Idempotent):** - - JSON or form-encoded body with client_id, grant_type=refresh_token, - refresh_token - Returns access_token, token_type, expires_in, and - refresh_token (no id_token) - Multiple calls with same refresh_token - return consistent results within validity window Authentication and - authorization: - Confidential clients: sigv4 signing required with - signin:ExchangeToken permissions - CLI clients (public): authn/authz - skipped based on client_id & grant_type Note: This operation cannot be - marked as @idempotent because it handles both idempotent (token - refresh) and non-idempotent (auth code redemption) flows in a single - endpoint. + Exchanges an authorization code or refresh token for an OAuth 2.0 access + token and refresh token. Args: input: @@ -102,9 +107,8 @@ async def create_o_auth2_token_with_iam( self, input: CreateOAuth2TokenWithIAMInput, plugins: list[Plugin] | None = None ) -> CreateOAuth2TokenWithIAMOutput: """ - Grants permission to exchange client credentials for an OAuth 2.0 access - token scoped to a resource that can be used to access AWS services from - applications + Exchanges client credentials for an OAuth 2.0 access token scoped to a + resource, which you can use to access AWS services from applications. Args: input: @@ -122,6 +126,31 @@ async def create_o_auth2_token_with_iam( input, _models.CREATE_O_AUTH2_TOKEN_WITH_IAM, [], plugins ) + async def create_o_auth2_token_with_token_exchange( + self, + input: CreateOAuth2TokenWithTokenExchangeInput, + plugins: list[Plugin] | None = None, + ) -> CreateOAuth2TokenWithTokenExchangeOutput: + """ + Exchanges a supported token for an OAuth 2.0 access token scoped to a + resource, which you can use to access AWS services from applications. + + Args: + input: + An instance of `CreateOAuth2TokenWithTokenExchangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOAuth2TokenWithTokenExchangeOutput`. + """ + return await self._invoke( + input, _models.CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE, [], plugins + ) + async def delete_console_authorization_configuration( self, input: DeleteConsoleAuthorizationConfigurationInput, @@ -222,14 +251,10 @@ async def introspect_o_auth2_token_with_iam( plugins: list[Plugin] | None = None, ) -> IntrospectOAuth2TokenWithIAMOutput: """ - Grants permission to inspect the metadata and state of an OAuth 2.0 - access token or refresh token Implements RFC 7662 OAuth 2.0 Token - Introspection over a SigV4-authenticated endpoint. Inspects the metadata - of an access_token or refresh_token issued by AWS Sign-In and returns - the claims associated with it. Inactive token semantics (RFC 7662 §2.2): - when the supplied token is unknown, expired, revoked, malformed, or - owned by a different account, the response body is exactly { \"active\": - false } with all other claims omitted. + Inspects the metadata and active state of an OAuth 2.0 access token or + refresh token. Implements RFC 7662 OAuth 2.0 Token Introspection over a + SigV4-authenticated endpoint. Returns the claims associated with a token + issued by AWS Sign-In. Args: input: @@ -326,12 +351,7 @@ async def revoke_o_auth2_token_with_iam( self, input: RevokeOAuth2TokenWithIAMInput, plugins: list[Plugin] | None = None ) -> RevokeOAuth2TokenWithIAMOutput: """ - Grants permission to revoke an OAuth 2.0 refresh token and its - associated refresh tokens Revokes a refresh_token issued by AWS Sign-In, - invalidating the entire token chain so that the refresh_token can no - longer be used to mint new access_tokens. Idempotency: revoking an - already-revoked, expired, or otherwise invalid token still returns 200 - OK with an empty body. Only the refresh_token type is accepted. + Revokes an OAuth 2.0 refresh token and its associated token chain. Args: input: diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/aio/config.py b/clients/aws-sdk-signin/src/aws_sdk_signin/aio/config.py index 80634982..16764240 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/aio/config.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/aio/config.py @@ -49,10 +49,14 @@ if TYPE_CHECKING: from smithy_core.interceptors import Interceptor from ..models import ( + CreateBearerTokenInput, + CreateBearerTokenOutput, CreateOAuth2TokenInput, CreateOAuth2TokenOutput, CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, DeleteResourcePermissionStatementInput, @@ -74,10 +78,17 @@ ) _ServiceInterceptor = Union[ + Interceptor[CreateBearerTokenInput, CreateBearerTokenOutput, Any, Any], Interceptor[CreateOAuth2TokenInput, CreateOAuth2TokenOutput, Any, Any], Interceptor[ CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, Any, Any ], + Interceptor[ + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, + Any, + Any, + ], Interceptor[ DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/auth.py b/clients/aws-sdk-signin/src/aws_sdk_signin/auth.py index 10973899..84fb2bda 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/auth.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/auth.py @@ -15,6 +15,12 @@ def resolve_auth_scheme( ) -> list[_smithy_core_interfaces_auth_AuthOption]: auth_options: list[_smithy_core_interfaces_auth_AuthOption] = [] + if auth_parameters.operation == "CreateBearerToken": + if (option := _generate_sigv4_option(auth_parameters)) is not None: + auth_options.append(option) + + return auth_options + if auth_parameters.operation == "CreateOAuth2Token": return auth_options @@ -24,6 +30,9 @@ def resolve_auth_scheme( return auth_options + if auth_parameters.operation == "CreateOAuth2TokenWithTokenExchange": + return auth_options + if auth_parameters.operation == "IntrospectOAuth2TokenWithIAM": if (option := _generate_sigv4_option(auth_parameters)) is not None: auth_options.append(option) diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/client.py b/clients/aws-sdk-signin/src/aws_sdk_signin/client.py index c0b15ebc..bf97cfcc 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/client.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/client.py @@ -20,10 +20,14 @@ if TYPE_CHECKING: from .models import ( + CreateBearerTokenInput, + CreateBearerTokenOutput, CreateOAuth2TokenInput, CreateOAuth2TokenOutput, CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, DeleteResourcePermissionStatementInput, @@ -50,39 +54,40 @@ class SigninClient(Client[SigninConfig]): """ - AWS Sign-In manages authentication for AWS services. This service - provides secure authentication flows for accessing AWS resources from - the console and developer tools. + AWS Sign-In manages authentication for AWS services. It implements OAuth + 2.0, providing secure token exchange and refresh capabilities. """ _client_plugins = (aws_user_agent_plugin, user_agent_plugin) + def create_bearer_token( + self, input: CreateBearerTokenInput, plugins: list[Plugin] | None = None + ) -> CreateBearerTokenOutput: + """ + Creates a bearer token that represents your IAM credentials and can be + used to access a supported AWS service. By default, the token is valid + for 12 hours. + + Args: + input: + An instance of `CreateBearerTokenInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateBearerTokenOutput`. + """ + return self._invoke(input, _models.CREATE_BEARER_TOKEN, [], plugins) + def create_o_auth2_token( self, input: CreateOAuth2TokenInput, plugins: list[Plugin] | None = None ) -> CreateOAuth2TokenOutput: """ - CreateOAuth2Token API Path: /v1/token Request Method: POST Content-Type: - application/json or application/x-www-form-urlencoded This API - implements OAuth 2.0 flows for AWS Sign-In CLI clients, supporting - both: 1. Authorization code redemption (grant_type=authorization_code) - - NOT idempotent 2. Token refresh (grant_type=refresh_token) - Idempotent - within token validity window The operation behavior is determined by the - grant_type parameter in the request body: **Authorization Code Flow - (NOT Idempotent):** - JSON or form-encoded body with client_id, - grant_type=authorization_code, code, redirect_uri, code_verifier - - Returns access_token, token_type, expires_in, refresh_token, and - id_token - Each authorization code can only be used ONCE for security - (prevents replay attacks) **Token Refresh Flow (Idempotent):** - - JSON or form-encoded body with client_id, grant_type=refresh_token, - refresh_token - Returns access_token, token_type, expires_in, and - refresh_token (no id_token) - Multiple calls with same refresh_token - return consistent results within validity window Authentication and - authorization: - Confidential clients: sigv4 signing required with - signin:ExchangeToken permissions - CLI clients (public): authn/authz - skipped based on client_id & grant_type Note: This operation cannot be - marked as @idempotent because it handles both idempotent (token - refresh) and non-idempotent (auth code redemption) flows in a single - endpoint. + Exchanges an authorization code or refresh token for an OAuth 2.0 access + token and refresh token. Args: input: @@ -102,9 +107,8 @@ def create_o_auth2_token_with_iam( self, input: CreateOAuth2TokenWithIAMInput, plugins: list[Plugin] | None = None ) -> CreateOAuth2TokenWithIAMOutput: """ - Grants permission to exchange client credentials for an OAuth 2.0 access - token scoped to a resource that can be used to access AWS services from - applications + Exchanges client credentials for an OAuth 2.0 access token scoped to a + resource, which you can use to access AWS services from applications. Args: input: @@ -120,6 +124,31 @@ def create_o_auth2_token_with_iam( """ return self._invoke(input, _models.CREATE_O_AUTH2_TOKEN_WITH_IAM, [], plugins) + def create_o_auth2_token_with_token_exchange( + self, + input: CreateOAuth2TokenWithTokenExchangeInput, + plugins: list[Plugin] | None = None, + ) -> CreateOAuth2TokenWithTokenExchangeOutput: + """ + Exchanges a supported token for an OAuth 2.0 access token scoped to a + resource, which you can use to access AWS services from applications. + + Args: + input: + An instance of `CreateOAuth2TokenWithTokenExchangeInput`. + plugins: + A list of callables that modify the configuration dynamically. + Changes made by these plugins only apply for the duration of the + operation execution and will not affect any other operation + invocations. + + Returns: + An instance of `CreateOAuth2TokenWithTokenExchangeOutput`. + """ + return self._invoke( + input, _models.CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE, [], plugins + ) + def delete_console_authorization_configuration( self, input: DeleteConsoleAuthorizationConfigurationInput | None = None, @@ -222,14 +251,10 @@ def introspect_o_auth2_token_with_iam( plugins: list[Plugin] | None = None, ) -> IntrospectOAuth2TokenWithIAMOutput: """ - Grants permission to inspect the metadata and state of an OAuth 2.0 - access token or refresh token Implements RFC 7662 OAuth 2.0 Token - Introspection over a SigV4-authenticated endpoint. Inspects the metadata - of an access_token or refresh_token issued by AWS Sign-In and returns - the claims associated with it. Inactive token semantics (RFC 7662 §2.2): - when the supplied token is unknown, expired, revoked, malformed, or - owned by a different account, the response body is exactly { \"active\": - false } with all other claims omitted. + Inspects the metadata and active state of an OAuth 2.0 access token or + refresh token. Implements RFC 7662 OAuth 2.0 Token Introspection over a + SigV4-authenticated endpoint. Returns the claims associated with a token + issued by AWS Sign-In. Args: input: @@ -326,12 +351,7 @@ def revoke_o_auth2_token_with_iam( self, input: RevokeOAuth2TokenWithIAMInput, plugins: list[Plugin] | None = None ) -> RevokeOAuth2TokenWithIAMOutput: """ - Grants permission to revoke an OAuth 2.0 refresh token and its - associated refresh tokens Revokes a refresh_token issued by AWS Sign-In, - invalidating the entire token chain so that the refresh_token can no - longer be used to mint new access_tokens. Idempotency: revoking an - already-revoked, expired, or otherwise invalid token still returns 200 - OK with an empty body. Only the refresh_token type is accepted. + Revokes an OAuth 2.0 refresh token and its associated token chain. Args: input: diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/config.py b/clients/aws-sdk-signin/src/aws_sdk_signin/config.py index d8677b52..65632171 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/config.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/config.py @@ -44,10 +44,14 @@ if TYPE_CHECKING: from smithy_core.interceptors import Interceptor from .models import ( + CreateBearerTokenInput, + CreateBearerTokenOutput, CreateOAuth2TokenInput, CreateOAuth2TokenOutput, CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, DeleteResourcePermissionStatementInput, @@ -69,10 +73,17 @@ ) _ServiceInterceptor = Union[ + Interceptor[CreateBearerTokenInput, CreateBearerTokenOutput, Any, Any], Interceptor[CreateOAuth2TokenInput, CreateOAuth2TokenOutput, Any, Any], Interceptor[ CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, Any, Any ], + Interceptor[ + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, + Any, + Any, + ], Interceptor[ DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/models.py b/clients/aws-sdk-signin/src/aws_sdk_signin/models.py index 820b3588..c7d39383 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/models.py +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/models.py @@ -23,12 +23,16 @@ class ServiceError(ModeledError): "AccessDeniedException": "ACCESS_DENIED_EXCEPTION", "AccessToken": "ACCESS_TOKEN", "ConflictException": "CONFLICT_EXCEPTION", + "CreateBearerTokenInput": "CREATE_BEARER_TOKEN_INPUT", + "CreateBearerTokenOutput": "CREATE_BEARER_TOKEN_OUTPUT", "CreateOAuth2TokenInput": "CREATE_O_AUTH2_TOKEN_INPUT", "CreateOAuth2TokenOutput": "CREATE_O_AUTH2_TOKEN_OUTPUT", "CreateOAuth2TokenRequestBody": "CREATE_O_AUTH2_TOKEN_REQUEST_BODY", "CreateOAuth2TokenResponseBody": "CREATE_O_AUTH2_TOKEN_RESPONSE_BODY", "CreateOAuth2TokenWithIAMInput": "CREATE_O_AUTH2_TOKEN_WITH_IAM_INPUT", "CreateOAuth2TokenWithIAMOutput": "CREATE_O_AUTH2_TOKEN_WITH_IAM_OUTPUT", + "CreateOAuth2TokenWithTokenExchangeInput": "CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_INPUT", + "CreateOAuth2TokenWithTokenExchangeOutput": "CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE_OUTPUT", "DeleteConsoleAuthorizationConfigurationInput": "DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION_INPUT", "DeleteConsoleAuthorizationConfigurationOutput": "DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION_OUTPUT", "DeleteResourcePermissionStatementInput": "DELETE_RESOURCE_PERMISSION_STATEMENT_INPUT", @@ -40,6 +44,8 @@ class ServiceError(ModeledError): "InternalServerException": "INTERNAL_SERVER_EXCEPTION", "IntrospectOAuth2TokenWithIAMInput": "INTROSPECT_O_AUTH2_TOKEN_WITH_IAM_INPUT", "IntrospectOAuth2TokenWithIAMOutput": "INTROSPECT_O_AUTH2_TOKEN_WITH_IAM_OUTPUT", + "InvalidGrantException": "INVALID_GRANT_EXCEPTION", + "InvalidScopeException": "INVALID_SCOPE_EXCEPTION", "ListResourcePermissionStatementsInput": "LIST_RESOURCE_PERMISSION_STATEMENTS_INPUT", "ListResourcePermissionStatementsOutput": "LIST_RESOURCE_PERMISSION_STATEMENTS_OUTPUT", "OAuth2ErrorCode": "O_AUTH2_ERROR_CODE", @@ -53,6 +59,7 @@ class ServiceError(ModeledError): "RevokeOAuth2TokenWithIAMInput": "REVOKE_O_AUTH2_TOKEN_WITH_IAM_INPUT", "RevokeOAuth2TokenWithIAMOutput": "REVOKE_O_AUTH2_TOKEN_WITH_IAM_OUTPUT", "ServiceQuotaExceededException": "SERVICE_QUOTA_EXCEEDED_EXCEPTION", + "ServiceUnavailableException": "SERVICE_UNAVAILABLE_EXCEPTION", "SigninResourceBasedPolicy": "SIGNIN_RESOURCE_BASED_POLICY", "TooManyRequestsError": "TOO_MANY_REQUESTS_ERROR", "ValidationException": "VALIDATION_EXCEPTION", @@ -62,12 +69,16 @@ class ServiceError(ModeledError): "AccessDeniedException", "AccessToken", "ConflictException", + "CreateBearerTokenInput", + "CreateBearerTokenOutput", "CreateOAuth2TokenInput", "CreateOAuth2TokenOutput", "CreateOAuth2TokenRequestBody", "CreateOAuth2TokenResponseBody", "CreateOAuth2TokenWithIAMInput", "CreateOAuth2TokenWithIAMOutput", + "CreateOAuth2TokenWithTokenExchangeInput", + "CreateOAuth2TokenWithTokenExchangeOutput", "DeleteConsoleAuthorizationConfigurationInput", "DeleteConsoleAuthorizationConfigurationOutput", "DeleteResourcePermissionStatementInput", @@ -79,6 +90,8 @@ class ServiceError(ModeledError): "InternalServerException", "IntrospectOAuth2TokenWithIAMInput", "IntrospectOAuth2TokenWithIAMOutput", + "InvalidGrantException", + "InvalidScopeException", "ListResourcePermissionStatementsInput", "ListResourcePermissionStatementsOutput", "OAuth2ErrorCode", @@ -92,6 +105,7 @@ class ServiceError(ModeledError): "RevokeOAuth2TokenWithIAMInput", "RevokeOAuth2TokenWithIAMOutput", "ServiceQuotaExceededException", + "ServiceUnavailableException", "SigninResourceBasedPolicy", "TooManyRequestsError", "ValidationException", @@ -102,8 +116,10 @@ class ServiceError(ModeledError): _operation_data = {} _operation_names = ( + "CREATE_BEARER_TOKEN", "CREATE_O_AUTH2_TOKEN", "CREATE_O_AUTH2_TOKEN_WITH_IAM", + "CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE", "DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION", "DELETE_RESOURCE_PERMISSION_STATEMENT", "GET_CONSOLE_AUTHORIZATION_CONFIGURATION", @@ -138,6 +154,17 @@ def __dir__(): return sorted({*globals(), *_operation_names}) +_operation_data["CREATE_BEARER_TOKEN"] = ( + "CREATE_BEARER_TOKEN", + ( + "com.amazonaws.signin#AccessDeniedException", + "com.amazonaws.signin#InternalServerException", + "com.amazonaws.signin#TooManyRequestsError", + "com.amazonaws.signin#ValidationException", + ), + ("aws.auth#sigv4",), +) + _operation_data["CREATE_O_AUTH2_TOKEN"] = ( "CREATE_O_AUTH2_TOKEN", ( @@ -160,6 +187,19 @@ def __dir__(): ("aws.auth#sigv4",), ) +_operation_data["CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE"] = ( + "CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE", + ( + "com.amazonaws.signin#InternalServerException", + "com.amazonaws.signin#InvalidGrantException", + "com.amazonaws.signin#InvalidScopeException", + "com.amazonaws.signin#ServiceUnavailableException", + "com.amazonaws.signin#TooManyRequestsError", + "com.amazonaws.signin#ValidationException", + ), + ("smithy.api#noAuth",), +) + _operation_data["DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION"] = ( "DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION", ( diff --git a/clients/aws-sdk-signin/src/aws_sdk_signin/models.pyi b/clients/aws-sdk-signin/src/aws_sdk_signin/models.pyi index caf0fb60..3085f263 100644 --- a/clients/aws-sdk-signin/src/aws_sdk_signin/models.pyi +++ b/clients/aws-sdk-signin/src/aws_sdk_signin/models.pyi @@ -27,21 +27,12 @@ class ServiceError(ModeledError): @dataclass(kw_only=True) class AccessDeniedException(ServiceError, _SerdeShape): - """ - Error thrown for access denied scenarios with flexible HTTP status - mapping Runtime HTTP Status Code Mapping: - HTTP 401 (Unauthorized): - TOKEN_EXPIRED, AUTHCODE_EXPIRED - HTTP 403 (Forbidden): - USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS The specific HTTP - status code is determined at runtime based on the error enum value. - Consumers should use the error field to determine the specific access - denial reason. - """ + """You do not have sufficient access to perform this action.""" error: str """ - OAuth 2.0 error code indicating the specific type of access denial Can - be TOKEN_EXPIRED, AUTHCODE_EXPIRED, USER_CREDENTIALS_CHANGED, or - INSUFFICIENT_PERMISSIONS + One of TOKEN_EXPIRED, AUTHCODE_EXPIRED, USER_CREDENTIALS_CHANGED, or + INSUFFICIENT_PERMISSIONS. """ response_metadata: ResponseMetadata = ... """ @@ -54,16 +45,16 @@ class AccessDeniedException(ServiceError, _SerdeShape): @dataclass(kw_only=True) class AccessToken(_SerdeShape): """ - AWS credentials structure containing temporary access credentials - Scoped, temporary AWS credentials with a 15-minute duration. + Contains the scoped, temporary AWS credentials used to sign requests + with SigV4. Valid for 15 minutes. """ access_key_id: str - """AWS access key ID for temporary credentials""" + """The AWS access key ID for the temporary credentials.""" secret_access_key: str - """AWS secret access key for temporary credentials""" + """The AWS secret access key used to sign requests.""" session_token: str - """AWS session token for temporary credentials""" + """The session token that validates the temporary security credentials.""" @dataclass(kw_only=True) class ConflictException(ServiceError, _SerdeShape): @@ -83,6 +74,42 @@ class ConflictException(ServiceError, _SerdeShape): optional. """ +@dataclass(kw_only=True) +class CreateBearerTokenInput(_SerdeShape): + """Input structure for CreateBearerToken operation""" + + grant_type: str | None = ... + """The grant type. Must be \"client_credentials\".""" + resource: str | None = ... + """The AWS service the bearer token is for. Example: \"ecr.amazonaws.com\".""" + duration_seconds: int | None = ... + """ + The requested token lifetime in seconds, from 300 (5 minutes) up to the + maximum allowed for the service, currently 43200 (12 hours). If omitted, + the token is valid for 12 hours. + """ + +@dataclass(kw_only=True) +class CreateBearerTokenOutput(_SerdeShape): + """ + Output structure for CreateBearerToken operation Contains the bearer + token, its type, and its lifetime. + """ + + access_token: str + """The bearer token. Present it to the AWS service named in the request.""" + token_type: str + """The token type. Always \"Bearer\".""" + expires_in: int + """Token lifetime in seconds.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class CreateOAuth2TokenInput(_SerdeShape): """ @@ -94,8 +121,8 @@ class CreateOAuth2TokenInput(_SerdeShape): token_input: CreateOAuth2TokenRequestBody | None = ... """ - Flattened token operation inputs The specific operation is determined by - grant_type in the request body + Flattened token operation inputs. The \"grant_type\" in the request body + determines the specific operation. """ @dataclass(kw_only=True) @@ -109,8 +136,8 @@ class CreateOAuth2TokenOutput(_SerdeShape): token_output: CreateOAuth2TokenResponseBody """ - Flattened token operation outputs The specific response fields depend on - the grant_type used in the request + Flattened token operation outputs. The specific response fields depend + on the grant_type used in the request. """ response_metadata: ResponseMetadata = ... """ @@ -123,78 +150,76 @@ class CreateOAuth2TokenOutput(_SerdeShape): @dataclass(kw_only=True) class CreateOAuth2TokenRequestBody(_SerdeShape): """ - Request body payload for CreateOAuth2Token operation The operation type - is determined by the grant_type parameter: - - grant_type=authorization_code: Requires code, redirect_uri, - code_verifier - grant_type=refresh_token: Requires refresh_token + The request body for creating an OAuth 2.0 token. Supports both the + authorization code and refresh token flows, selected by the + \"grant_type\" parameter. """ client_id: str """ - The client identifier (ARN) used during Sign-In onboarding Required for - both authorization code and refresh token flows + The OAuth 2.0 client identifier. Expected values: + \"arn:aws:signin\\:::devtools/same-device\" or + \"arn:aws:signin\\:::devtools/cross-device\". """ grant_type: str """ - OAuth 2.0 grant type - determines which flow is used Must be - \"authorization_code\" or \"refresh_token\" + The OAuth 2.0 grant type. Supported values: - \"authorization_code\" - + Exchange an authorization code for tokens. - \"refresh_token\" - Use a + refresh token to obtain a new access token. """ code: str | None = ... """ - The authorization code received from /v1/authorize Required only when - grant_type=authorization_code + The authorization code received from the \"/v1/authorize\" endpoint. + Required when \"grant_type=authorization_code\". """ redirect_uri: str | None = ... """ - The redirect URI that must match the original authorization request - Required only when grant_type=authorization_code + The redirect URI that was used in the original authorization request. + Must match exactly. Required when \"grant_type=authorization_code\". """ code_verifier: str | None = ... """ - PKCE code verifier to prove possession of the original code challenge - Required only when grant_type=authorization_code + The PKCE code verifier that proves possession of the original code + challenge. Required when \"grant_type=authorization_code\". """ refresh_token: str | None = ... """ - The refresh token returned from auth_code redemption Required only when - grant_type=refresh_token + The refresh token issued by a previous token response. Required when + \"grant_type=refresh_token\". """ @dataclass(kw_only=True) class CreateOAuth2TokenResponseBody(_SerdeShape): """ - Response body payload for CreateOAuth2Token operation The response - content depends on the grant_type from the request: - - grant_type=authorization_code: Returns all fields including - refresh_token and id_token - grant_type=refresh_token: Returns - access_token, token_type, expires_in, refresh_token (no id_token) + The response body for an OAuth 2.0 token request. The fields returned + depend on the \"grant_type\". The authorization code flow returns + \"refresh_token\" and \"id_token\". The refresh token flow omits + \"id_token\". """ access_token: AccessToken """ - Scoped-down AWS credentials (15 minute duration) Present for both - authorization code redemption and token refresh + The access token issued by the authorization server. The token contains + temporary AWS security credentials that you use to sign requests with + SigV4. """ token_type: str - """ - Token type indicating this is AWS SigV4 credentials Value is - \"aws_sigv4\" for both flows - """ + """The type of token issued. Value is \"aws_sigv4\".""" expires_in: int """ - Time to expiry in seconds (maximum 900) Present for both authorization - code redemption and token refresh + The number of seconds until the access token expires. Maximum value is + 900 seconds (15 minutes). """ refresh_token: str """ - Encrypted refresh token with cnf.jkt (SHA-256 thumbprint of presented - jwk) Always present in responses (required for both flows) + A refresh token that can be used to obtain new access tokens without + re-authenticating. """ id_token: str | None = ... """ - ID token containing user identity information Present only in - authorization code redemption response (grant_type=authorization_code) - Not included in token refresh responses + A JSON Web Token (JWT) containing user identity claims. Present only + when \"grant_type=authorization_code\". Not included in refresh token + responses. """ @dataclass(kw_only=True) @@ -202,7 +227,7 @@ class CreateOAuth2TokenWithIAMInput(_SerdeShape): """Input structure for CreateOAuth2TokenWithIAM operation""" grant_type: str | None = ... - """OAuth 2.0 grant type. Must be \"client_credentials\".""" + """The OAuth 2.0 grant type. Must be \"client_credentials\".""" resource: str | None = ... """ The OAuth resource for which the access token is requested. Example: @@ -212,21 +237,93 @@ class CreateOAuth2TokenWithIAMInput(_SerdeShape): @dataclass(kw_only=True) class CreateOAuth2TokenWithIAMOutput(_SerdeShape): """ - Output structure for CreateOAuth2TokenWithIAM operation Contains the JWT - access token, token type, and expiration per RFC 6749 §5.1. + Output structure for CreateOAuth2TokenWithIAM operation Contains the + access token, token type, and expiration as defined in RFC 6749 §5.1. + """ + + access_token: str + """ + Access token containing principal identity, resource scope, and session + metadata. + """ + token_type: str + """The token type. Always \"Bearer\" as defined in RFC 6749.""" + expires_in: int + """ + Token lifetime in seconds. Value is the minimum of the caller's session + validity and 1 hour (3600 seconds). + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class CreateOAuth2TokenWithTokenExchangeInput(_SerdeShape): + """Input structure for CreateOAuth2TokenWithTokenExchange operation""" + + grant_type: str | None = ... + """ + The OAuth 2.0 grant type. Currently only supports + \"urn:ietf:params:oauth:grant-type:token-exchange\". + """ + subject_token: str | None = ... + """ + The subject token that represents the identity of the party on whose + behalf the request is made. Required when + \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\". + """ + subject_token_type: str | None = ... + """ + The token type of the subject token. Currently only supports + \"urn:ietf:params:oauth:token-type:jwt\". Required when + \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\". + """ + resource: str | None = ... + """ + The OAuth resource for which the access token is requested. Required + when \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\". + Example: \"glue.amazonaws.com\". + """ + scope: str | None = ... + """ + IAM managed policy Amazon Resource Names (ARNs) to apply as session + policies that further scope down the permissions of the issued access + token, provided as a space-delimited list. Example: + \"arn:aws:iam::444455556666:policy/MyPolicy\". + """ + +@dataclass(kw_only=True) +class CreateOAuth2TokenWithTokenExchangeOutput(_SerdeShape): + """ + Output structure for CreateOAuth2TokenWithTokenExchange operation. + Contains the access token, issued token type, token type, and expiration + as defined in RFC 6749 §5.1 and RFC 8693 §2.2.1. """ access_token: str """ - JWT access token containing principal identity, resource scope, and - session metadata + Access token containing principal identity, resource scope, and session + metadata. + """ + issued_token_type: str | None = ... + """ + The token type of the issued token. Always + \"urn:ietf:params:oauth:token-type:access_token\" as defined in RFC 8693 + §2.2.1. """ token_type: str - """Always \"Bearer\" per OAuth 2.1 specification""" + """ + The token type. Currently only supports \"Bearer\" as defined in RFC + 6749. + """ expires_in: int """ - Token lifetime in seconds. Value is the minimum of session validity and - 1 hour. + Token lifetime in seconds. Value is the minimum of the subject token's + validity and 1 hour (3600 seconds). """ response_metadata: ResponseMetadata = ... """ @@ -327,17 +424,10 @@ class GetResourcePolicyOutput(_SerdeShape): @dataclass(kw_only=True) class InternalServerException(ServiceError, _SerdeShape): - """ - Error thrown when an internal server error occurs HTTP Status Code: 500 - Internal Server Error Used for unexpected server-side errors that - prevent request processing. - """ + """The request failed because of an internal server error.""" error: str - """ - OAuth 2.0 error code indicating server error Will be SERVER_ERROR for - internal server errors - """ + """Will be server_error.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -355,16 +445,13 @@ class IntrospectOAuth2TokenWithIAMInput(_SerdeShape): """ token: str | None = ... - """ - The string value of the token to introspect. May be either an - access_token or a refresh_token issued by AWS Sign-In. - """ + """The access token or refresh token issued by AWS Sign-In.""" token_type_hint: str | None = ... """ - Optional hint about the type of the token submitted for introspection. - The server uses this hint to optimize lookup, but still falls back to - the other token type on miss. Allowed values: access_token, - refresh_token. + An optional hint about the type of the token submitted for + introspection, as defined in RFC 7662 §2.1. The server checks both token + types regardless of the hint. Allowed values: \"access_token\", + \"refresh_token\". """ @dataclass(kw_only=True) @@ -377,17 +464,16 @@ class IntrospectOAuth2TokenWithIAMOutput(_SerdeShape): active: bool """ - Indicates whether the token is currently active. `true` only when the - token is valid, has not expired, has not been revoked, and belongs to - the caller's account. + Indicates whether the token is currently active. Returns \"true\" only + when the token is valid, has not expired, has not been revoked, and + belongs to the caller's account. """ client_id: str | None = ... """Client identifier for the OAuth 2.0 client that requested the token.""" user_id: str | None = ... """ - User identifier matching sts:GetCallerIdentity's `UserId` field for - the token's subject principal (e.g. \"AIDAEXAMPLE\" for an IAM user, or - \"AROAEXAMPLE:session-name\" for an assumed role). + User identifier matching the \"UserId\" field from + \"sts:GetCallerIdentity\" for the token's subject principal. """ token_type: str | None = ... """ @@ -402,14 +488,13 @@ class IntrospectOAuth2TokenWithIAMOutput(_SerdeShape): """Token \"not before\" time as a NumericDate (Unix epoch seconds).""" sub: str | None = ... """ - Subject of the token: the IAM principal ARN. For assumed-role sessions, - this is the session ARN (matches sts:GetCallerIdentity's `Arn` - field), e.g. arn:aws:sts::123456789012:assumed-role/MyRole/session-name. + The IAM principal Amazon Resource Name (ARN). For assumed-role sessions, + this is the session ARN. """ aud: str | None = ... """ - Audience of the token: the OAuth resource the token is scoped to (for - example, \"aws-mcp.amazonaws.com\"). Omitted for refresh tokens. + The OAuth resource the token is scoped to. Omitted for refresh tokens. + Example: \"aws-mcp.amazonaws.com\". """ iss: str | None = ... """Issuer of the token. Always \"signin.amazonaws.com\" for AWS Sign-In.""" @@ -424,9 +509,40 @@ class IntrospectOAuth2TokenWithIAMOutput(_SerdeShape): """ resource: str | None = ... """ - The OAuth resource the token is scoped to during Human OAuth flow. Only - present for refresh token introspection. + The OAuth resource the token is scoped to. Only present for refresh + token introspection. + """ + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidGrantException(ServiceError, _SerdeShape): + """The request failed because the provided grant is invalid or expired.""" + + error: str + """Will be invalid_grant.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + +@dataclass(kw_only=True) +class InvalidScopeException(ServiceError, _SerdeShape): """ + The request failed because the requested scope is invalid or exceeds the + scope that can be granted. + """ + + error: str + """Will be invalid_scope.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -468,26 +584,33 @@ class OAuth2ErrorCode(UnknownEnumMixin, StrEnum): """ TOKEN_EXPIRED = "TOKEN_EXPIRED" - """Token has expired and needs to be refreshed""" + """Token has expired.""" USER_CREDENTIALS_CHANGED = "USER_CREDENTIALS_CHANGED" - """User credentials have been changed""" + """User credentials have been changed.""" INSUFFICIENT_PERMISSIONS = "INSUFFICIENT_PERMISSIONS" - """Insufficient permissions to perform this operation""" + """Insufficient permissions to perform this operation.""" AUTHCODE_EXPIRED = "AUTHCODE_EXPIRED" - """Authorization code has expired""" + """Authorization code has expired.""" SERVER_ERROR = "server_error" - """Internal server error occurred""" + """Internal server error occurred.""" INVALID_REQUEST = "INVALID_REQUEST" """ The request is missing a required parameter, includes an invalid - parameter value, or is otherwise malformed + parameter value, or is otherwise malformed. """ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND" - """Requested resource was not found""" + """Requested resource was not found.""" CONFLICT = "CONFLICT" - """Request conflicts with current state of the resource""" + """Request conflicts with the current state of the resource.""" SERVICE_QUOTA_EXCEEDED = "SERVICE_QUOTA_EXCEEDED" - """Request would cause a service quota to be exceeded""" + """Request would cause a service quota to be exceeded.""" + OAUTH_UNSUPPORTED_GRANT_TYPE = "unsupported_grant_type" + OAUTH_INVALID_REQUEST = "invalid_request" + OAUTH_INVALID_GRANT = "invalid_grant" + OAUTH_INVALID_SCOPE = "invalid_scope" + OAUTH_INVALID_TARGET = "invalid_target" + OAUTH_RATE_EXCEEDED = "rate_exceeded" + OAUTH_SERVICE_UNAVAILABLE = "service_unavailable" @dataclass(kw_only=True) class PermissionStatementSummary(_SerdeShape): @@ -605,9 +728,8 @@ class RevokeOAuth2TokenWithIAMInput(_SerdeShape): token: str | None = ... """ - The refresh_token to revoke. Must be a refresh_token issued by AWS - Sign-In (prefix \"ASOR\"); access_tokens are not accepted for - revocation. + The refresh token to revoke. Must be a refresh token issued by AWS + Sign-In. Access tokens are not accepted for revocation. """ @dataclass(kw_only=True) @@ -647,6 +769,23 @@ class ServiceQuotaExceededException(ServiceError, _SerdeShape): optional. """ +@dataclass(kw_only=True) +class ServiceUnavailableException(ServiceError, _SerdeShape): + """ + The request failed because a dependency is temporarily unavailable. You + can retry the request. + """ + + error: str + """Will be service_unavailable.""" + response_metadata: ResponseMetadata = ... + """ + Metadata about the response that produced this output. Use this to + recover the request identifiers a service's support team needs in order + to investigate a call. Members of the metadata are individually + optional. + """ + @dataclass(kw_only=True) class SigninResourceBasedPolicy(_SerdeShape): """SignIn resource-based policy document""" @@ -659,19 +798,12 @@ class SigninResourceBasedPolicy(_SerdeShape): @dataclass(kw_only=True) class TooManyRequestsError(ServiceError, _SerdeShape): """ - Error thrown when rate limit is exceeded HTTP Status Code: 429 Too Many - Requests Possible OAuth2ErrorCode values: - INVALID_REQUEST: Rate - limiting, too many requests, abuse prevention Possible causes: - Too - many token requests from the same client - Rate limiting based on - client_id or IP address - Abuse prevention mechanisms triggered - - Service protection against excessive token generation + The request failed because you exceeded the request rate limit for this + operation. """ error: str - """ - OAuth 2.0 error code indicating the specific type of error Will be - INVALID_REQUEST for rate limiting scenarios - """ + """Will be rate_exceeded.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -683,16 +815,12 @@ class TooManyRequestsError(ServiceError, _SerdeShape): @dataclass(kw_only=True) class ValidationException(ServiceError, _SerdeShape): """ - Error thrown when request validation fails HTTP Status Code: 400 Bad - Request Used for request validation errors such as malformed parameters, - missing required fields, or invalid parameter values. + The request failed because it contains a malformed, missing, or invalid + parameter. """ error: str - """ - OAuth 2.0 error code indicating validation failure Will be - INVALID_REQUEST for validation errors - """ + """The specific code depends on which validation failed.""" response_metadata: ResponseMetadata = ... """ Metadata about the response that produced this output. Use this to @@ -701,10 +829,14 @@ class ValidationException(ServiceError, _SerdeShape): optional. """ +CREATE_BEARER_TOKEN: APIOperation[CreateBearerTokenInput, CreateBearerTokenOutput] CREATE_O_AUTH2_TOKEN: APIOperation[CreateOAuth2TokenInput, CreateOAuth2TokenOutput] CREATE_O_AUTH2_TOKEN_WITH_IAM: APIOperation[ CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput ] +CREATE_O_AUTH2_TOKEN_WITH_TOKEN_EXCHANGE: APIOperation[ + CreateOAuth2TokenWithTokenExchangeInput, CreateOAuth2TokenWithTokenExchangeOutput +] DELETE_CONSOLE_AUTHORIZATION_CONFIGURATION: APIOperation[ DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, diff --git a/clients/aws-sdk-signin/tests/_typecheck.py b/clients/aws-sdk-signin/tests/_typecheck.py index 9d3de7a1..c03d3ee9 100644 --- a/clients/aws-sdk-signin/tests/_typecheck.py +++ b/clients/aws-sdk-signin/tests/_typecheck.py @@ -4,12 +4,16 @@ from aws_sdk_signin.models import ( AccessToken, + CreateBearerTokenInput, + CreateBearerTokenOutput, CreateOAuth2TokenInput, CreateOAuth2TokenOutput, CreateOAuth2TokenRequestBody, CreateOAuth2TokenResponseBody, CreateOAuth2TokenWithIAMInput, CreateOAuth2TokenWithIAMOutput, + CreateOAuth2TokenWithTokenExchangeInput, + CreateOAuth2TokenWithTokenExchangeOutput, DeleteConsoleAuthorizationConfigurationInput, DeleteConsoleAuthorizationConfigurationOutput, DeleteResourcePermissionStatementInput, @@ -40,6 +44,8 @@ _: Any = ... AccessToken(access_key_id=_, secret_access_key=_, session_token=_) +CreateBearerTokenInput() +CreateBearerTokenOutput(access_token=_, token_type=_, expires_in=_) CreateOAuth2TokenInput() CreateOAuth2TokenOutput(token_output=_) CreateOAuth2TokenRequestBody(client_id=_, grant_type=_) @@ -48,6 +54,8 @@ ) CreateOAuth2TokenWithIAMInput() CreateOAuth2TokenWithIAMOutput(access_token=_, token_type=_, expires_in=_) +CreateOAuth2TokenWithTokenExchangeInput() +CreateOAuth2TokenWithTokenExchangeOutput(access_token=_, token_type=_, expires_in=_) DeleteConsoleAuthorizationConfigurationInput() DeleteConsoleAuthorizationConfigurationOutput( target_id=_, scope=_, console_authorization_enabled=_ diff --git a/codegen/aws-models/acm.json b/codegen/aws-models/acm.json new file mode 100644 index 00000000..dfd7d5fe --- /dev/null +++ b/codegen/aws-models/acm.json @@ -0,0 +1,8411 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.acm#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.acm#ServiceErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AccessDenied", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

You do not have access required to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.acm#AcmCertificateMetadata": { + "type": "structure", + "members": { + "CreatedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was requested.

" + } + }, + "Exported": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the certificate has been exported.

" + } + }, + "ImportedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the certificate was imported. This value exists only when the certificate type is IMPORTED.

" + } + }, + "InUse": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the certificate is currently in use by an Amazon Web Services service.

" + } + }, + "IssuedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "RenewalEligibility": { + "target": "com.amazonaws.acm#RenewalEligibility", + "traits": { + "smithy.api#documentation": "

Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the RenewCertificate command.

" + } + }, + "RevokedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#CertificateStatus", + "traits": { + "smithy.api#documentation": "

The status of the certificate.

A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic Certificate request fails. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with DNS validation or Email validation, and try again. If validation succeeds, the certificate enters status ISSUED.

" + } + }, + "RenewalStatus": { + "target": "com.amazonaws.acm#RenewalStatus", + "traits": { + "smithy.api#documentation": "

The renewal status of the certificate.

" + } + }, + "Type": { + "target": "com.amazonaws.acm#CertificateType", + "traits": { + "smithy.api#documentation": "

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Certificate Manager User Guide.

" + } + }, + "ExportOption": { + "target": "com.amazonaws.acm#CertificateExport", + "traits": { + "smithy.api#documentation": "

Indicates whether the certificate can be exported.

" + } + }, + "ManagedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon Web Services service that manages the certificate issued by ACM.

" + } + }, + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

Specifies the domain validation method.

" + } + }, + "CertificateKeyPairOrigin": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigin", + "traits": { + "smithy.api#documentation": "

The origin of the certificate's key pair.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ACME endpoint used to issue the certificate.

" + } + }, + "AcmeAccountId": { + "target": "com.amazonaws.acm#AcmeAccountId", + "traits": { + "smithy.api#documentation": "

The ACME account identifier associated with the certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains ACM-specific metadata about a certificate.

" + } + }, + "com.amazonaws.acm#AcmCertificateMetadataFilter": { + "type": "union", + "members": { + "Status": { + "target": "com.amazonaws.acm#CertificateStatus", + "traits": { + "smithy.api#documentation": "

Filter by certificate status.

" + } + }, + "RenewalStatus": { + "target": "com.amazonaws.acm#RenewalStatus", + "traits": { + "smithy.api#documentation": "

Filter by certificate renewal status.

" + } + }, + "Type": { + "target": "com.amazonaws.acm#CertificateType", + "traits": { + "smithy.api#documentation": "

Filter by certificate type.

" + } + }, + "InUse": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Filter by whether the certificate is in use.

" + } + }, + "Exported": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Filter by whether the certificate has been exported.

" + } + }, + "ExportOption": { + "target": "com.amazonaws.acm#CertificateExport", + "traits": { + "smithy.api#documentation": "

Filter by certificate export option.

" + } + }, + "ManagedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Filter by the entity that manages the certificate.

" + } + }, + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

Filter by validation method.

" + } + }, + "CertificateKeyPairOrigin": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigin", + "traits": { + "smithy.api#documentation": "

Filter by certificate key pair origin.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

Filter by ACME endpoint ARN.

" + } + }, + "AcmeAccountId": { + "target": "com.amazonaws.acm#AcmeAccountId", + "traits": { + "smithy.api#documentation": "

Filter by ACME account identifier.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by ACM metadata.

" + } + }, + "com.amazonaws.acm#AcmeAccount": { + "type": "structure", + "members": { + "AccountUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME account.

" + } + }, + "PublicKeyThumbprint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The thumbprint of the public key associated with the ACME account.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeAccountStatus", + "traits": { + "smithy.api#documentation": "

The status of the ACME account.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME account was created.

" + } + }, + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the external account binding associated with this ACME account.

" + } + }, + "Contacts": { + "target": "com.amazonaws.acm#ContactList", + "traits": { + "smithy.api#documentation": "

The contact information for the ACME account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about an ACME account.

" + } + }, + "com.amazonaws.acm#AcmeAccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + } + } + }, + "com.amazonaws.acm#AcmeAccountList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#AcmeAccountSummary" + } + }, + "com.amazonaws.acm#AcmeAccountStatus": { + "type": "enum", + "members": { + "VALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALID" + } + }, + "DEACTIVATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEACTIVATED" + } + }, + "REVOKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REVOKED" + } + } + } + }, + "com.amazonaws.acm#AcmeAccountSummary": { + "type": "structure", + "members": { + "AccountUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME account.

" + } + }, + "PublicKeyThumbprint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The thumbprint of the public key associated with the ACME account.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeAccountStatus", + "traits": { + "smithy.api#documentation": "

The status of the ACME account.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME account was created.

" + } + }, + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the external account binding associated with this ACME account.

" + } + }, + "Contacts": { + "target": "com.amazonaws.acm#ContactList", + "traits": { + "smithy.api#documentation": "

The contact information for the ACME account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about an ACME account.

" + } + }, + "com.amazonaws.acm#AcmeAuthorizationBehavior": { + "type": "enum", + "members": { + "PRE_APPROVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRE_APPROVED" + } + } + } + }, + "com.amazonaws.acm#AcmeContact": { + "type": "enum", + "members": { + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUIRED" + } + }, + "NOT_REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_REQUIRED" + } + } + } + }, + "com.amazonaws.acm#AcmeDomainValidation": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME domain validation.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "DomainName": { + "target": "com.amazonaws.acm#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name being validated.

" + } + }, + "PrevalidationType": { + "target": "com.amazonaws.acm#PrevalidationType", + "traits": { + "smithy.api#documentation": "

The type of prevalidation used.

" + } + }, + "PrevalidationDetails": { + "target": "com.amazonaws.acm#PrevalidationDetails", + "traits": { + "smithy.api#documentation": "

Details about the prevalidation configuration.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeDomainValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the domain validation.

" + } + }, + "FailureDetails": { + "target": "com.amazonaws.acm#FailureDetails", + "traits": { + "smithy.api#documentation": "

Details about the failure, if the validation failed.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the domain validation was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the domain validation was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about an ACME domain validation.

" + } + }, + "com.amazonaws.acm#AcmeDomainValidationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:acm:[a-z0-9-]+:[0-9]{12}:acme-endpoint/[a-zA-Z0-9-]+/acme-domain-validation/[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.acm#AcmeDomainValidationFailureReason": { + "type": "enum", + "members": { + "ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCESS_DENIED" + } + }, + "DOMAIN_MISMATCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOMAIN_MISMATCH" + } + }, + "DOMAIN_NOT_ALLOWED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOMAIN_NOT_ALLOWED" + } + }, + "ENDPOINT_NOT_ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENDPOINT_NOT_ACTIVE" + } + }, + "HOSTED_ZONE_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOSTED_ZONE_NOT_FOUND" + } + }, + "INTERNAL_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_FAILURE" + } + }, + "INVALID_CHANGE_BATCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_CHANGE_BATCH" + } + }, + "INVALID_PUBLIC_DOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_PUBLIC_DOMAIN" + } + }, + "TIMED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIMED_OUT" + } + } + } + }, + "com.amazonaws.acm#AcmeDomainValidationList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#AcmeDomainValidationSummary" + } + }, + "com.amazonaws.acm#AcmeDomainValidationStatus": { + "type": "enum", + "members": { + "VALIDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATING" + } + }, + "VALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALID" + } + }, + "INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + } + } + }, + "com.amazonaws.acm#AcmeDomainValidationSummary": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME domain validation.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "DomainName": { + "target": "com.amazonaws.acm#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name being validated.

" + } + }, + "PrevalidationType": { + "target": "com.amazonaws.acm#PrevalidationType", + "traits": { + "smithy.api#documentation": "

The type of prevalidation used.

" + } + }, + "PrevalidationDetails": { + "target": "com.amazonaws.acm#PrevalidationDetails", + "traits": { + "smithy.api#documentation": "

Details about the prevalidation configuration.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeDomainValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the domain validation.

" + } + }, + "FailureDetails": { + "target": "com.amazonaws.acm#FailureDetails", + "traits": { + "smithy.api#documentation": "

Details about the failure, if the validation failed.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the domain validation was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the domain validation was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about an ACME domain validation.

" + } + }, + "com.amazonaws.acm#AcmeEndpoint": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "EndpointUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME endpoint.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeEndpointStatus", + "traits": { + "smithy.api#documentation": "

The status of the ACME endpoint.

" + } + }, + "FailureReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The reason the ACME endpoint failed, if applicable.

" + } + }, + "AuthorizationBehavior": { + "target": "com.amazonaws.acm#AcmeAuthorizationBehavior", + "traits": { + "smithy.api#documentation": "

The authorization behavior of the ACME endpoint.

" + } + }, + "Contact": { + "target": "com.amazonaws.acm#AcmeContact", + "traits": { + "smithy.api#documentation": "

Whether ACME clients must provide contact information during account registration.

" + } + }, + "CertificateAuthority": { + "target": "com.amazonaws.acm#CertificateAuthority", + "traits": { + "smithy.api#documentation": "

The certificate authority configuration for the ACME endpoint.

" + } + }, + "CertificateTags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

Tags applied to certificates issued through this ACME endpoint.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME endpoint was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME endpoint was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about an ACME endpoint.

" + } + }, + "com.amazonaws.acm#AcmeEndpointArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:acm:[a-z0-9-]+:[0-9]{12}:acme-endpoint/[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.acm#AcmeEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#AcmeEndpointSummary" + } + }, + "com.amazonaws.acm#AcmeEndpointStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.acm#AcmeEndpointSummary": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "EndpointUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME endpoint.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#AcmeEndpointStatus", + "traits": { + "smithy.api#documentation": "

The status of the ACME endpoint.

" + } + }, + "FailureReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The reason the ACME endpoint failed, if applicable.

" + } + }, + "AuthorizationBehavior": { + "target": "com.amazonaws.acm#AcmeAuthorizationBehavior", + "traits": { + "smithy.api#documentation": "

The authorization behavior of the ACME endpoint.

" + } + }, + "Contact": { + "target": "com.amazonaws.acm#AcmeContact", + "traits": { + "smithy.api#documentation": "

Whether ACME clients must provide contact information during account registration.

" + } + }, + "CertificateAuthority": { + "target": "com.amazonaws.acm#CertificateAuthority", + "traits": { + "smithy.api#documentation": "

The certificate authority configuration for the ACME endpoint.

" + } + }, + "CertificateTags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

Tags applied to certificates issued through this ACME endpoint.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME endpoint was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the ACME endpoint was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about an ACME endpoint.

" + } + }, + "com.amazonaws.acm#AcmeExternalAccountBinding": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.acm#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role associated with the external account binding.

" + } + }, + "ExpiresAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding expires.

" + } + }, + "RevokedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was revoked.

" + } + }, + "LastUsedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was last used.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about an ACME external account binding.

" + } + }, + "com.amazonaws.acm#AcmeExternalAccountBindingArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:acm:[a-z0-9-]+:[0-9]{12}:acme-endpoint/[a-zA-Z0-9-]+/acme-external-account-binding/[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.acm#AcmeExternalAccountBindingList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingSummary" + } + }, + "com.amazonaws.acm#AcmeExternalAccountBindingSummary": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.acm#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role associated with the external account binding.

" + } + }, + "ExpiresAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding expires.

" + } + }, + "RevokedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was revoked.

" + } + }, + "LastUsedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was last used.

" + } + }, + "CreatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was created.

" + } + }, + "UpdatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the external account binding was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about an ACME external account binding.

" + } + }, + "com.amazonaws.acm#AddTagsToCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#AddTagsToCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidParameterException" + }, + { + "target": "com.amazonaws.acm#InvalidTagException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#TagPolicyException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#TooManyTagsException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an ACM certificate. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.

This action applies only to the certificate resource type. For all other ACM resource types, use TagResource instead.

You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM certificates.

To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#AddTagsToCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the ACM certificate to which the tag is to be applied. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

The key-value pair that defines the tag. The tag value is optional.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[\\w+=/,.@-]+:acm:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*$" + } + }, + "com.amazonaws.acm#AvailabilityErrorMessage": { + "type": "string" + }, + "com.amazonaws.acm#CertificateArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[\\w+=/,.@-]+:acm:[\\w+=/,.@-]*:[0-9]+:certificate/[\\w+=,.@-]+" + } + }, + "com.amazonaws.acm#CertificateAuthority": { + "type": "union", + "members": { + "PublicCertificateAuthority": { + "target": "com.amazonaws.acm#PublicCertificateAuthority", + "traits": { + "smithy.api#documentation": "

Configuration for using a public certificate authority.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the certificate authority to use for an ACME endpoint.

" + } + }, + "com.amazonaws.acm#CertificateBody": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32768 + }, + "smithy.api#pattern": "^-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?$" + } + }, + "com.amazonaws.acm#CertificateBodyBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32768 + } + } + }, + "com.amazonaws.acm#CertificateChain": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2097152 + }, + "smithy.api#pattern": "^(-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}\\u000D?\\u000A)*-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?$" + } + }, + "com.amazonaws.acm#CertificateChainBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2097152 + } + } + }, + "com.amazonaws.acm#CertificateDetail": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name for the certificate, such as www.example.com or example.com.

" + } + }, + "SubjectAlternativeNames": { + "target": "com.amazonaws.acm#DomainList", + "traits": { + "smithy.api#documentation": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

" + } + }, + "ManagedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon Web Services service that manages the certificate issued by ACM.

" + } + }, + "DomainValidationOptions": { + "target": "com.amazonaws.acm#DomainValidationList", + "traits": { + "smithy.api#documentation": "

Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "Serial": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The serial number of the certificate.

" + } + }, + "Subject": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The name of the entity that is associated with the public key contained in the certificate.

" + } + }, + "Issuer": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The name of the certificate authority that issued and signed the certificate.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was requested.

" + } + }, + "IssuedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "ImportedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the certificate was imported. This value exists only when the certificate type is IMPORTED.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#CertificateStatus", + "traits": { + "smithy.api#documentation": "

The status of the certificate.

A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic Certificate request fails. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with DNS validation or Email validation, and try again. If validation succeeds, the certificate enters status ISSUED.

" + } + }, + "RevokedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

" + } + }, + "RevocationReason": { + "target": "com.amazonaws.acm#RevocationReason", + "traits": { + "smithy.api#documentation": "

The reason the certificate was revoked. This value exists only when the certificate status is REVOKED.

" + } + }, + "NotBefore": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time before which the certificate is not valid.

" + } + }, + "NotAfter": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time after which the certificate is not valid.

" + } + }, + "KeyAlgorithm": { + "target": "com.amazonaws.acm#KeyAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to generate the public-private key pair.

" + } + }, + "SignatureAlgorithm": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to sign the certificate.

" + } + }, + "InUseBy": { + "target": "com.amazonaws.acm#InUseList", + "traits": { + "smithy.api#documentation": "

A list of ARNs for the Amazon Web Services resources that are using the certificate. A certificate can be used by multiple Amazon Web Services resources.

" + } + }, + "FailureReason": { + "target": "com.amazonaws.acm#FailureReason", + "traits": { + "smithy.api#documentation": "

The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the Certificate Manager User Guide.

" + } + }, + "Type": { + "target": "com.amazonaws.acm#CertificateType", + "traits": { + "smithy.api#documentation": "

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Certificate Manager User Guide.

" + } + }, + "RenewalSummary": { + "target": "com.amazonaws.acm#RenewalSummary", + "traits": { + "smithy.api#documentation": "

Contains information about the status of ACM's managed renewal for the certificate. This field exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "KeyUsages": { + "target": "com.amazonaws.acm#KeyUsageList", + "traits": { + "smithy.api#documentation": "

A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.

" + } + }, + "ExtendedKeyUsages": { + "target": "com.amazonaws.acm#ExtendedKeyUsageList", + "traits": { + "smithy.api#documentation": "

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + } + }, + "CertificateAuthorityArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the private certificate authority (CA) that issued the certificate. This has the following format:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" + } + }, + "RenewalEligibility": { + "target": "com.amazonaws.acm#RenewalEligibility", + "traits": { + "smithy.api#documentation": "

Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the RenewCertificate command.

" + } + }, + "Options": { + "target": "com.amazonaws.acm#CertificateOptions", + "traits": { + "smithy.api#documentation": "

Contains the certificate options. Certificate transparency logging opt-out is no longer available. All public certificates are recorded in a certificate transparency log.

" + } + }, + "UpdateSummary": { + "target": "com.amazonaws.acm#UpdateSummary", + "traits": { + "smithy.api#documentation": "

Contains information about the most recent update to the certificate. This field exists only when the certificate type is AMAZON_ISSUED and a certificate update has been requested.

" + } + }, + "CertificateKeyPairOrigin": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigin", + "traits": { + "smithy.api#documentation": "

The origin of the certificate's key pair.

" + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ACME endpoint used to issue the certificate.

" + } + }, + "AcmeAccountId": { + "target": "com.amazonaws.acm#AcmeAccountId", + "traits": { + "smithy.api#documentation": "

The ACME account identifier associated with the certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains metadata about an ACM certificate. This structure is returned in the response to a DescribeCertificate request.

" + } + }, + "com.amazonaws.acm#CertificateExport": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.acm#CertificateFilter": { + "type": "union", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

Filter by certificate ARN.

" + } + }, + "X509AttributeFilter": { + "target": "com.amazonaws.acm#X509AttributeFilter", + "traits": { + "smithy.api#documentation": "

Filter by X.509 certificate attributes.

" + } + }, + "AcmCertificateMetadataFilter": { + "target": "com.amazonaws.acm#AcmCertificateMetadataFilter", + "traits": { + "smithy.api#documentation": "

Filter by ACM certificate metadata.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines a filter for searching certificates by ARN, X.509 attributes, or ACM metadata.

" + } + }, + "com.amazonaws.acm#CertificateFilterStatement": { + "type": "union", + "members": { + "And": { + "target": "com.amazonaws.acm#CertificateFilterStatementList", + "traits": { + "smithy.api#documentation": "

A list of filter statements that must all be true.

" + } + }, + "Or": { + "target": "com.amazonaws.acm#CertificateFilterStatementList", + "traits": { + "smithy.api#documentation": "

A list of filter statements where at least one must be true.

" + } + }, + "Not": { + "target": "com.amazonaws.acm#CertificateFilterStatement", + "traits": { + "smithy.api#documentation": "

A filter statement that must not be true.

" + } + }, + "Filter": { + "target": "com.amazonaws.acm#CertificateFilter", + "traits": { + "smithy.api#documentation": "

A single certificate filter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter statement used to search for certificates. Can contain AND, OR, NOT logical operators or a single filter.

" + } + }, + "com.amazonaws.acm#CertificateFilterStatementList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CertificateFilterStatement" + }, + "traits": { + "smithy.api#documentation": "

A list of CertificateFilterStatement objects.

", + "smithy.api#length": { + "min": 1, + "max": 15 + } + } + }, + "com.amazonaws.acm#CertificateKeyPairOrigin": { + "type": "enum", + "members": { + "AWS_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_MANAGED" + } + }, + "ACME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACME" + } + }, + "CUSTOMER_PROVIDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOMER_PROVIDED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The origin of the certificate's key pair.

" + } + }, + "com.amazonaws.acm#CertificateKeyPairOrigins": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigin" + }, + "traits": { + "smithy.api#documentation": "

A list of CertificateKeyPairOrigin values used to filter certificates.

", + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.acm#CertificateManagedBy": { + "type": "enum", + "members": { + "CLOUDFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUDFRONT" + } + } + } + }, + "com.amazonaws.acm#CertificateManager": { + "type": "service", + "version": "2015-12-08", + "operations": [ + { + "target": "com.amazonaws.acm#AddTagsToCertificate" + }, + { + "target": "com.amazonaws.acm#CreateAcmeDomainValidation" + }, + { + "target": "com.amazonaws.acm#CreateAcmeEndpoint" + }, + { + "target": "com.amazonaws.acm#CreateAcmeExternalAccountBinding" + }, + { + "target": "com.amazonaws.acm#DeleteAcmeDomainValidation" + }, + { + "target": "com.amazonaws.acm#DeleteAcmeEndpoint" + }, + { + "target": "com.amazonaws.acm#DeleteAcmeExternalAccountBinding" + }, + { + "target": "com.amazonaws.acm#DeleteCertificate" + }, + { + "target": "com.amazonaws.acm#DescribeAcmeAccount" + }, + { + "target": "com.amazonaws.acm#DescribeAcmeDomainValidation" + }, + { + "target": "com.amazonaws.acm#DescribeAcmeEndpoint" + }, + { + "target": "com.amazonaws.acm#DescribeAcmeExternalAccountBinding" + }, + { + "target": "com.amazonaws.acm#DescribeCertificate" + }, + { + "target": "com.amazonaws.acm#ExportCertificate" + }, + { + "target": "com.amazonaws.acm#GetAccountConfiguration" + }, + { + "target": "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentials" + }, + { + "target": "com.amazonaws.acm#GetCertificate" + }, + { + "target": "com.amazonaws.acm#ImportCertificate" + }, + { + "target": "com.amazonaws.acm#ListAcmeAccounts" + }, + { + "target": "com.amazonaws.acm#ListAcmeDomainValidations" + }, + { + "target": "com.amazonaws.acm#ListAcmeEndpoints" + }, + { + "target": "com.amazonaws.acm#ListAcmeExternalAccountBindings" + }, + { + "target": "com.amazonaws.acm#ListCertificateDomainValidations" + }, + { + "target": "com.amazonaws.acm#ListCertificates" + }, + { + "target": "com.amazonaws.acm#ListTagsForCertificate" + }, + { + "target": "com.amazonaws.acm#ListTagsForResource" + }, + { + "target": "com.amazonaws.acm#PutAccountConfiguration" + }, + { + "target": "com.amazonaws.acm#RemoveTagsFromCertificate" + }, + { + "target": "com.amazonaws.acm#RenewCertificate" + }, + { + "target": "com.amazonaws.acm#RequestCertificate" + }, + { + "target": "com.amazonaws.acm#ResendValidationEmail" + }, + { + "target": "com.amazonaws.acm#RevokeAcmeAccount" + }, + { + "target": "com.amazonaws.acm#RevokeAcmeExternalAccountBinding" + }, + { + "target": "com.amazonaws.acm#RevokeCertificate" + }, + { + "target": "com.amazonaws.acm#SearchCertificates" + }, + { + "target": "com.amazonaws.acm#TagResource" + }, + { + "target": "com.amazonaws.acm#UntagResource" + }, + { + "target": "com.amazonaws.acm#UpdateAcmeDomainValidation" + }, + { + "target": "com.amazonaws.acm#UpdateAcmeEndpoint" + }, + { + "target": "com.amazonaws.acm#UpdateCertificateOptions" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "ACM", + "endpointPrefix": "acm", + "arnNamespace": "acm", + "cloudTrailEventSource": "acm.amazonaws.com", + "cloudFormationName": "CertificateManager" + }, + "aws.auth#sigv4": { + "name": "acm" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Certificate Manager

You can use Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the Certificate Manager User Guide.

", + "smithy.api#title": "AWS Certificate Manager", + "smithy.rules#clientContextParams": { + "ServiceType": { + "type": "string", + "documentation": "The service type: ACM or ACM-ACME. Injected via @staticContextParams." + } + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region to send requests to.", + "type": "string" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send requests.", + "type": "string" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "Use FIPS endpoints.", + "type": "boolean" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "Use dual-stack endpoints.", + "type": "boolean" + }, + "ServiceType": { + "required": true, + "documentation": "The service type: ACM or ACM-ACME. Injected via @staticContextParams.", + "type": "string" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "ServiceType" + }, + "ACM-ACME" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "results": [ + { + "conditions": [], + "endpoint": { + "url": "{Endpoint}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS endpoints are not available for ACME operations", + "type": "error" + }, + { + "documentation": "ACME standard", + "conditions": [], + "endpoint": { + "url": "https://acm-acme.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "documentation": "ACME operations are only available in the aws and aws-us-gov partitions", + "conditions": [], + "error": "ACME operations are only available in the aws and aws-us-gov partitions", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "documentation": "ACM FIPS standard", + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "documentation": "ACM standard", + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "documentation": "Fallback error if region is not set", + "conditions": [], + "error": "Region must be set to resolve an endpoint.", + "type": "error" + } + ], + "root": 2, + "nodeCount": 13, + "nodes": "/////wAAAAH/////AAAAAAX14QEAAAADAAAAAQAAAAQF9eEKAAAAAgAAAAkAAAAFAAAAAwAAAAcAAAAGAAAABQX14QgF9eEJAAAABQX14QUAAAAIAAAABgX14QYF9eEHAAAAAwAAAAwAAAAKAAAABAX14QMAAAALAAAABgX14QMF9eEEAAAABAX14QIAAAANAAAABgX14QIF9eEE" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region to send requests to." + }, + "Endpoint": { + "type": "string", + "builtIn": "SDK::Endpoint", + "documentation": "Override the endpoint used to send requests." + }, + "UseFIPS": { + "type": "boolean", + "builtIn": "AWS::UseFIPS", + "documentation": "Use FIPS endpoints.", + "default": false, + "required": true + }, + "UseDualStack": { + "type": "boolean", + "builtIn": "AWS::UseDualStack", + "documentation": "Use dual-stack endpoints.", + "default": false, + "required": true + }, + "ServiceType": { + "type": "string", + "required": true, + "documentation": "The service type: ACM or ACM-ACME. Injected via @staticContextParams." + } + }, + "rules": [ + { + "documentation": "Use custom endpoint if provided", + "type": "endpoint", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": "{Endpoint}" + } + }, + { + "documentation": "Resolve partition for region", + "type": "tree", + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "documentation": "ACME operations", + "type": "tree", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "ServiceType" + }, + "ACM-ACME" + ] + } + ], + "rules": [ + { + "documentation": "ACME with custom endpoint", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": "{Endpoint}" + }, + "type": "endpoint" + }, + { + "documentation": "ACME in the aws partition", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "rules": [ + { + "documentation": "FIPS endpoints are not available for ACME operations", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "FIPS endpoints are not available for ACME operations", + "type": "error" + }, + { + "documentation": "ACME standard", + "conditions": [], + "endpoint": { + "url": "https://acm-acme.{Region}.{PartitionResult#dualStackDnsSuffix}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "documentation": "ACME in the aws-us-gov partition", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "rules": [ + { + "documentation": "FIPS endpoints are not available for ACME operations", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "FIPS endpoints are not available for ACME operations", + "type": "error" + }, + { + "documentation": "ACME standard", + "conditions": [], + "endpoint": { + "url": "https://acm-acme.{Region}.{PartitionResult#dualStackDnsSuffix}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "documentation": "ACME operations are only available in the aws and aws-us-gov partitions", + "conditions": [], + "error": "ACME operations are only available in the aws and aws-us-gov partitions", + "type": "error" + } + ] + }, + { + "documentation": "ACM operations", + "type": "tree", + "conditions": [], + "rules": [ + { + "documentation": "ACM FIPS + DualStack", + "type": "endpoint", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}" + } + }, + { + "documentation": "ACM FIPS only", + "type": "tree", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "documentation": "ACM FIPS GovCloud", + "type": "endpoint", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://acm.{Region}.amazonaws.com" + } + }, + { + "documentation": "ACM FIPS standard", + "type": "endpoint", + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}" + } + } + ] + }, + { + "documentation": "ACM DualStack only", + "type": "endpoint", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}" + } + }, + { + "documentation": "ACM standard", + "type": "endpoint", + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}" + } + } + ] + } + ] + }, + { + "documentation": "Fallback error if region is not set", + "type": "error", + "conditions": [], + "error": "Region must be set to resolve an endpoint." + } + ] + }, + "smithy.rules#endpointTests": { + "version": "1.0", + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.af-south-1.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-1.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-2.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-3.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-south-1.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-1.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-2.amazonaws.com" + } + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-3.amazonaws.com" + } + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.ca-central-1.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-central-1.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-north-1.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-south-1.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-west-1.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-west-2.amazonaws.com" + } + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.eu-west-3.amazonaws.com" + } + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.me-south-1.amazonaws.com" + } + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.sa-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-east-2.amazonaws.com" + } + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-west-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-west-2.amazonaws.com" + } + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.ca-central-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-2.amazonaws.com" + } + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-2.amazonaws.com" + } + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-1.api.aws" + } + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-east-1.api.aws" + } + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.cn-north-1.amazonaws.com.cn" + } + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.cn-northwest-1.amazonaws.com.cn" + } + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-north-1.api.amazonwebservices.com.cn" + } + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-north-1.amazonaws.com.cn" + } + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.cn-north-1.api.amazonwebservices.com.cn" + } + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-gov-west-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm-fips.us-gov-east-1.api.aws" + } + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.amazonaws.com" + } + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true, + "ServiceType": "ACM" + }, + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.api.aws" + } + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and DualStack disabled", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM", + "Endpoint": "https://example.com" + }, + "expect": { + "endpoint": { + "url": "https://example.com" + } + } + }, + { + "documentation": "For custom endpoint with FIPS enabled and DualStack disabled", + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM", + "Endpoint": "https://example.com" + }, + "expect": { + "endpoint": { + "url": "https://example.com" + } + } + }, + { + "documentation": "For custom endpoint with FIPS disabled and dualstack enabled", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "ServiceType": "ACM", + "Endpoint": "https://example.com" + }, + "expect": { + "endpoint": { + "url": "https://example.com" + } + } + }, + { + "documentation": "ACM-ACME standard endpoint for us-east-1", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "endpoint": { + "url": "https://acm-acme.us-east-1.api.aws" + } + } + }, + { + "documentation": "ACM-ACME FIPS returns error", + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "error": "FIPS endpoints are not available for ACME operations" + } + }, + { + "documentation": "ACM-ACME custom endpoint", + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME", + "Endpoint": "https://custom.example.com" + }, + "expect": { + "endpoint": { + "url": "https://custom.example.com" + } + } + }, + { + "documentation": "ACM-ACME standard endpoint for us-gov-west-1", + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "endpoint": { + "url": "https://acm-acme.us-gov-west-1.api.aws" + } + } + }, + { + "documentation": "ACM-ACME standard endpoint for us-gov-east-1", + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "endpoint": { + "url": "https://acm-acme.us-gov-east-1.api.aws" + } + } + }, + { + "documentation": "ACM-ACME in cn-north-1 returns partition error", + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "error": "ACME operations are only available in the aws and aws-us-gov partitions" + } + }, + { + "documentation": "ACM-ACME in cn-northwest-1 returns partition error", + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "error": "ACME operations are only available in the aws and aws-us-gov partitions" + } + }, + { + "documentation": "ACM-ACME with DualStack enabled for us-gov-west-1", + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true, + "ServiceType": "ACM-ACME" + }, + "expect": { + "endpoint": { + "url": "https://acm-acme.us-gov-west-1.api.aws" + } + } + }, + { + "documentation": "ACM-ACME FIPS in us-gov-west-1 returns error", + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false, + "ServiceType": "ACM-ACME" + }, + "expect": { + "error": "FIPS endpoints are not available for ACME operations" + } + } + ] + } + } + }, + "com.amazonaws.acm#CertificateMetadata": { + "type": "union", + "members": { + "AcmCertificateMetadata": { + "target": "com.amazonaws.acm#AcmCertificateMetadata", + "traits": { + "smithy.api#documentation": "

Metadata for an ACM certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains metadata about a certificate. Currently supports ACM certificate metadata.

" + } + }, + "com.amazonaws.acm#CertificateOptions": { + "type": "structure", + "members": { + "CertificateTransparencyLoggingPreference": { + "target": "com.amazonaws.acm#CertificateTransparencyLoggingPreference", + "traits": { + "smithy.api#deprecated": { + "message": "Certificate transparency logging opt-out is no longer available.", + "since": "12th June 2026" + }, + "smithy.api#documentation": "

This parameter has been deprecated. Certificate transparency logging opt-out is no longer available. All public certificates are recorded in a certificate transparency log.

" + } + }, + "Export": { + "target": "com.amazonaws.acm#CertificateExport", + "traits": { + "smithy.api#documentation": "

You can opt in to allow the export of your certificates by specifying ENABLED. You cannot update the value of Export after the the certificate is created.

" + } + }, + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

The domain validation method for the certificate. To migrate from email to DNS validation, specify DNS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Structure that contains options for your certificate. You can use this structure to change the domain validation method or specify whether to export your certificate.

All public certificates are recorded in a certificate transparency log. For general information, see Certificate Transparency Logging.

You can export public ACM certificates to use with Amazon Web Services services as well as outside Amazon Web Services Cloud. For more information, see Certificate Manager exportable public certificate.

" + } + }, + "com.amazonaws.acm#CertificateSearchResult": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the certificate.

" + } + }, + "X509Attributes": { + "target": "com.amazonaws.acm#X509Attributes", + "traits": { + "smithy.api#documentation": "

X.509 certificate attributes such as subject, issuer, and validity period.

" + } + }, + "CertificateMetadata": { + "target": "com.amazonaws.acm#CertificateMetadata", + "traits": { + "smithy.api#documentation": "

ACM-specific metadata about the certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a certificate returned by the SearchCertificates action. This structure includes the certificate ARN, X.509 attributes, and ACM metadata.

" + } + }, + "com.amazonaws.acm#CertificateSearchResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CertificateSearchResult" + }, + "traits": { + "smithy.api#documentation": "

A list of CertificateSearchResult objects.

" + } + }, + "com.amazonaws.acm#CertificateStatus": { + "type": "enum", + "members": { + "PENDING_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_VALIDATION" + } + }, + "ISSUED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ISSUED" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRED" + } + }, + "VALIDATION_TIMED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_TIMED_OUT" + } + }, + "REVOKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REVOKED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.acm#CertificateStatuses": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CertificateStatus" + } + }, + "com.amazonaws.acm#CertificateSummary": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the certificate. This is of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

" + } + }, + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate.

" + } + }, + "SubjectAlternativeNameSummaries": { + "target": "com.amazonaws.acm#DomainList", + "traits": { + "smithy.api#documentation": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

When called by ListCertificates, this parameter will only return the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use DescribeCertificate.

" + } + }, + "HasAdditionalSubjectAlternativeNames": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

When called by ListCertificates, indicates whether the full list of subject alternative names has been included in the response. If false, the response includes all of the subject alternative names included in the certificate. If true, the response only includes the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use DescribeCertificate.

" + } + }, + "Status": { + "target": "com.amazonaws.acm#CertificateStatus", + "traits": { + "smithy.api#documentation": "

The status of the certificate.

A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic Certificate request fails. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with DNS validation or Email validation, and try again. If validation succeeds, the certificate enters status ISSUED.

" + } + }, + "Type": { + "target": "com.amazonaws.acm#CertificateType", + "traits": { + "smithy.api#documentation": "

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Certificate Manager User Guide.

" + } + }, + "KeyAlgorithm": { + "target": "com.amazonaws.acm#KeyAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to generate the public-private key pair.

" + } + }, + "KeyUsages": { + "target": "com.amazonaws.acm#KeyUsageNames", + "traits": { + "smithy.api#documentation": "

A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.

" + } + }, + "ExtendedKeyUsages": { + "target": "com.amazonaws.acm#ExtendedKeyUsageNames", + "traits": { + "smithy.api#documentation": "

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + } + }, + "ExportOption": { + "target": "com.amazonaws.acm#CertificateExport", + "traits": { + "smithy.api#documentation": "

Indicates if export is enabled for the certificate.

" + } + }, + "InUse": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the certificate is currently in use by any Amazon Web Services resources.

" + } + }, + "Exported": { + "target": "com.amazonaws.acm#NullableBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the certificate has been exported.

" + } + }, + "RenewalEligibility": { + "target": "com.amazonaws.acm#RenewalEligibility", + "traits": { + "smithy.api#documentation": "

Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the RenewCertificate command.

" + } + }, + "NotBefore": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time before which the certificate is not valid.

" + } + }, + "NotAfter": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time after which the certificate is not valid.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was requested.

" + } + }, + "IssuedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "ImportedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the certificate was imported. This value exists only when the certificate type is IMPORTED.

" + } + }, + "RevokedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

" + } + }, + "ManagedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon Web Services service that manages the certificate issued by ACM.

" + } + }, + "CertificateKeyPairOrigin": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigin", + "traits": { + "smithy.api#documentation": "

The origin of the certificate's key pair.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure is returned in the response object of ListCertificates action.

" + } + }, + "com.amazonaws.acm#CertificateSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CertificateSummary" + } + }, + "com.amazonaws.acm#CertificateTransparencyLoggingPreference": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + }, + "traits": { + "smithy.api#deprecated": { + "message": "Certificate transparency logging opt-out is no longer available.", + "since": "12th June 2026" + } + } + }, + "com.amazonaws.acm#CertificateType": { + "type": "enum", + "members": { + "IMPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORTED" + } + }, + "AMAZON_ISSUED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AMAZON_ISSUED" + } + }, + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRIVATE" + } + } + } + }, + "com.amazonaws.acm#CommonNameFilter": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.acm#FilterString", + "traits": { + "smithy.api#documentation": "

The value to match against.

", + "smithy.api#required": {} + } + }, + "ComparisonOperator": { + "target": "com.amazonaws.acm#ComparisonOperator", + "traits": { + "smithy.api#documentation": "

The comparison operator to use.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by common name.

" + } + }, + "com.amazonaws.acm#ComparisonOperator": { + "type": "enum", + "members": { + "CONTAINS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINS" + } + }, + "EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EQUALS" + } + } + }, + "traits": { + "smithy.api#documentation": "

The comparison operator to use for string filters. Valid values are CONTAINS and EQUALS.

" + } + }, + "com.amazonaws.acm#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

You are trying to update a resource or configuration that is already being created or updated. Wait for the previous operation to finish and try again.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#ContactList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.acm#CoralAvailabilityThrottledResource": { + "type": "string" + }, + "com.amazonaws.acm#CoralAvailabilityThrottlingReason": { + "type": "string" + }, + "com.amazonaws.acm#CreateAcmeDomainValidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#CreateAcmeDomainValidationRequest" + }, + "output": { + "target": "com.amazonaws.acm#CreateAcmeDomainValidationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a domain validation for an ACME endpoint. Domain validations authorize the endpoint to issue certificates for specified domain names. You configure prevalidation to prove domain ownership.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#CreateAcmeDomainValidationRequest": { + "type": "structure", + "members": { + "IdempotencyToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.acm#DomainName", + "traits": { + "smithy.api#documentation": "

The domain name to validate.

", + "smithy.api#required": {} + } + }, + "PrevalidationOptions": { + "target": "com.amazonaws.acm#PrevalidationOptions", + "traits": { + "smithy.api#documentation": "

The prevalidation options for the domain.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

One or more tags to associate with the domain validation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#CreateAcmeDomainValidationResponse": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the created domain validation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#CreateAcmeEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#CreateAcmeEndpointRequest" + }, + "output": { + "target": "com.amazonaws.acm#CreateAcmeEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an ACME endpoint, which is a managed ACME server with a unique endpoint URL. After creation, ACME clients can use the endpoint URL to automate certificate issuance using the ACME protocol.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#CreateAcmeEndpointRequest": { + "type": "structure", + "members": { + "IdempotencyToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "AuthorizationBehavior": { + "target": "com.amazonaws.acm#AcmeAuthorizationBehavior", + "traits": { + "smithy.api#documentation": "

The authorization behavior for the ACME endpoint.

", + "smithy.api#required": {} + } + }, + "Contact": { + "target": "com.amazonaws.acm#AcmeContact", + "traits": { + "smithy.api#default": "REQUIRED", + "smithy.api#documentation": "

Specifies whether ACME clients must provide contact information during account registration.

" + } + }, + "CertificateAuthority": { + "target": "com.amazonaws.acm#CertificateAuthority", + "traits": { + "smithy.api#documentation": "

The type of certificate authority to use for issuing certificates through this ACME endpoint.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

One or more tags to associate with the ACME endpoint.

" + } + }, + "CertificateTags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

Tags to apply to certificates issued through this ACME endpoint.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#CreateAcmeEndpointResponse": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the created ACME endpoint.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#CreateAcmeExternalAccountBinding": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#CreateAcmeExternalAccountBindingRequest" + }, + "output": { + "target": "com.amazonaws.acm#CreateAcmeExternalAccountBindingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an external account binding (EAB) for an ACME endpoint. An EAB provides credentials that authorize an ACME client to register an account with the endpoint. Each EAB is associated with an IAM role that controls what certificate operations the ACME client can perform.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#CreateAcmeExternalAccountBindingRequest": { + "type": "structure", + "members": { + "IdempotencyToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.acm#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to associate with the external account binding.

", + "smithy.api#required": {} + } + }, + "Expiration": { + "target": "com.amazonaws.acm#Expiration", + "traits": { + "smithy.api#documentation": "

The expiration configuration for the external account binding.

" + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

One or more tags to associate with the external account binding.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#CreateAcmeExternalAccountBindingResponse": { + "type": "structure", + "members": { + "ExternalAccountBinding": { + "target": "com.amazonaws.acm#AcmeExternalAccountBinding", + "traits": { + "smithy.api#documentation": "

The created external account binding.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#CustomAttribute": { + "type": "structure", + "members": { + "ObjectIdentifier": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Specifies the object identifier (OID) of the attribute type of the relative distinguished name (RDN).

" + } + }, + "Value": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Specifies the attribute value of relative distinguished name (RDN).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the X.500 relative distinguished name (RDN).

" + } + }, + "com.amazonaws.acm#CustomAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#CustomAttribute" + }, + "traits": { + "smithy.api#documentation": "

A list of CustomAttribute objects.

" + } + }, + "com.amazonaws.acm#DeleteAcmeDomainValidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DeleteAcmeDomainValidationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a domain validation. After deletion, the ACME endpoint can no longer issue certificates for the associated domain.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#DeleteAcmeDomainValidationRequest": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME domain validation to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#DeleteAcmeEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DeleteAcmeEndpointRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an ACME endpoint. After deletion, the endpoint URL is no longer accessible and ACME clients cannot issue certificates through it. Any existing external account bindings and domain validations associated with the endpoint are also deleted.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#DeleteAcmeEndpointRequest": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#DeleteAcmeExternalAccountBinding": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DeleteAcmeExternalAccountBindingRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an external account binding. Previously fetched credentials for this binding will no longer be usable for account registration. A deleted binding cannot be recovered.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#DeleteAcmeExternalAccountBindingRequest": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#DeleteCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DeleteCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#ResourceInUseException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a certificate and its associated private key. If this action succeeds, the certificate is not available for use by Amazon Web Services services integrated with ACM. Deleting a certificate is eventually consistent. The may be a short delay before the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action.

You cannot delete an ACM certificate that is being used by another Amazon Web Services service. To delete a certificate that is in use, you must first remove the certificate association using the console or the CLI for the associated service.

Deleting a certificate issued by a private certificate authority (CA) has no effect on the CA. You will continue to be charged for the CA until it is deleted. For more information, see Deleting Your Private CA in the Private Certificate Authority User Guide.

You cannot delete a certificate with a CertificateKeyPairOrigin of ACME. ACM automatically deletes these certificates 1 year after they expire.

Deleting a certificate issued by a private certificate authority (CA) has no effect on the CA. You will continue to be charged for the CA until it is deleted. For more information, see Deleting your private CA in the Amazon Web Services Private Certificate Authority User Guide.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#DeleteCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the ACM certificate to be deleted. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#DescribeAcmeAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DescribeAcmeAccountRequest" + }, + "output": { + "target": "com.amazonaws.acm#DescribeAcmeAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed metadata about the specified ACME account, including its status, public key thumbprint, and associated external account binding.

", + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#DescribeAcmeAccountRequest": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + }, + "AccountUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#DescribeAcmeAccountResponse": { + "type": "structure", + "members": { + "AcmeAccount": { + "target": "com.amazonaws.acm#AcmeAccount", + "traits": { + "smithy.api#documentation": "

The ACME account details.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#DescribeAcmeDomainValidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DescribeAcmeDomainValidationRequest" + }, + "output": { + "target": "com.amazonaws.acm#DescribeAcmeDomainValidationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed metadata about the specified domain validation, including its status, domain scope, and DNS resource records required for validation.

", + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + }, + "smithy.waiters#waitable": { + "AcmeDomainValidationValidated": { + "documentation": "Wait until an ACME domain validation reaches a terminal validation state.", + "minDelay": 5, + "maxDelay": 300, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "AcmeDomainValidation.Status", + "expected": "VALID", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "AcmeDomainValidation.Status", + "expected": "INVALID", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "AcmeDomainValidation.Status", + "expected": "VALIDATING", + "comparator": "stringEquals" + } + } + } + ] + }, + "AcmeDomainValidationDeleted": { + "documentation": "Wait until an ACME domain validation has been deleted.", + "minDelay": 5, + "maxDelay": 300, + "acceptors": [ + { + "state": "success", + "matcher": { + "errorType": "ResourceNotFoundException" + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "AcmeDomainValidation.Status", + "expected": "DELETING", + "comparator": "stringEquals" + } + } + } + ] + } + } + } + }, + "com.amazonaws.acm#DescribeAcmeDomainValidationRequest": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME domain validation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#DescribeAcmeDomainValidationResponse": { + "type": "structure", + "members": { + "AcmeDomainValidation": { + "target": "com.amazonaws.acm#AcmeDomainValidation", + "traits": { + "smithy.api#documentation": "

The ACME domain validation details.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#DescribeAcmeEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DescribeAcmeEndpointRequest" + }, + "output": { + "target": "com.amazonaws.acm#DescribeAcmeEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed metadata about the specified ACME endpoint, including its status, URL, authorization behavior, and certificate authority configuration.

", + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + }, + "smithy.waiters#waitable": { + "AcmeEndpointActive": { + "documentation": "Wait until an ACME endpoint has finished provisioning and is ACTIVE.", + "minDelay": 5, + "maxDelay": 300, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "AcmeEndpoint.Status", + "expected": "ACTIVE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "AcmeEndpoint.Status", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "AcmeEndpoint.Status", + "expected": "CREATING", + "comparator": "stringEquals" + } + } + } + ] + }, + "AcmeEndpointDeleted": { + "documentation": "Wait until an ACME endpoint has been deleted.", + "minDelay": 5, + "maxDelay": 300, + "acceptors": [ + { + "state": "success", + "matcher": { + "errorType": "ResourceNotFoundException" + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "AcmeEndpoint.Status", + "expected": "DELETING", + "comparator": "stringEquals" + } + } + } + ] + } + } + } + }, + "com.amazonaws.acm#DescribeAcmeEndpointRequest": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#DescribeAcmeEndpointResponse": { + "type": "structure", + "members": { + "AcmeEndpoint": { + "target": "com.amazonaws.acm#AcmeEndpoint", + "traits": { + "smithy.api#documentation": "

The ACME endpoint details.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#DescribeAcmeExternalAccountBinding": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DescribeAcmeExternalAccountBindingRequest" + }, + "output": { + "target": "com.amazonaws.acm#DescribeAcmeExternalAccountBindingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed metadata about the specified external account binding, including the associated IAM role, expiration time, and usage history.

", + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#DescribeAcmeExternalAccountBindingRequest": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#DescribeAcmeExternalAccountBindingResponse": { + "type": "structure", + "members": { + "ExternalAccountBinding": { + "target": "com.amazonaws.acm#AcmeExternalAccountBinding", + "traits": { + "smithy.api#documentation": "

The external account binding details.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#DescribeCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#DescribeCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#DescribeCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed metadata about the specified ACM certificate.

If you have just created a certificate using the RequestCertificate action, there is a delay of several seconds before you can retrieve information about it.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + }, + "smithy.waiters#waitable": { + "CertificateValidated": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Certificate.DomainValidationOptions[].ValidationStatus", + "expected": "SUCCESS", + "comparator": "allStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "Certificate.DomainValidationOptions[].ValidationStatus", + "expected": "PENDING_VALIDATION", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Certificate.Status", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ResourceNotFoundException" + } + } + ], + "minDelay": 60 + } + } + } + }, + "com.amazonaws.acm#DescribeCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have the following form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#DescribeCertificateResponse": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.acm#CertificateDetail", + "traits": { + "smithy.api#documentation": "

Metadata about an ACM certificate.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#DistinguishedName": { + "type": "structure", + "members": { + "CommonName": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The common name (CN) attribute.

" + } + }, + "DomainComponents": { + "target": "com.amazonaws.acm#DomainComponentList", + "traits": { + "smithy.api#documentation": "

The domain component attributes.

" + } + }, + "Country": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The country (C) attribute.

" + } + }, + "CustomAttributes": { + "target": "com.amazonaws.acm#CustomAttributeList", + "traits": { + "smithy.api#documentation": "

A list of custom attributes in the distinguished name. Each custom attribute contains an object identifier (OID) and its corresponding value.

" + } + }, + "DistinguishedNameQualifier": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The distinguished name qualifier attribute.

" + } + }, + "GenerationQualifier": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The generation qualifier attribute.

" + } + }, + "GivenName": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The given name attribute.

" + } + }, + "Initials": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The initials attribute.

" + } + }, + "Locality": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The locality (L) attribute.

" + } + }, + "Organization": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The organization (O) attribute.

" + } + }, + "OrganizationalUnit": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The organizational unit (OU) attribute.

" + } + }, + "Pseudonym": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The pseudonym attribute.

" + } + }, + "SerialNumber": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The serial number attribute.

" + } + }, + "State": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The state or province (ST) attribute.

" + } + }, + "Surname": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The surname attribute.

" + } + }, + "Title": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The title attribute.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains X.500 distinguished name information.

" + } + }, + "com.amazonaws.acm#DnsNameFilter": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.acm#FilterString", + "traits": { + "smithy.api#documentation": "

The DNS name value to match against.

", + "smithy.api#required": {} + } + }, + "ComparisonOperator": { + "target": "com.amazonaws.acm#ComparisonOperator", + "traits": { + "smithy.api#documentation": "

The comparison operator to use.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by DNS name.

" + } + }, + "com.amazonaws.acm#DnsPrevalidationDetails": { + "type": "structure", + "members": { + "DomainScope": { + "target": "com.amazonaws.acm#DomainScope", + "traits": { + "smithy.api#documentation": "

The scope of domains covered by this prevalidation.

" + } + }, + "HostedZoneId": { + "target": "com.amazonaws.acm#HostedZoneId", + "traits": { + "smithy.api#documentation": "

The Route 53 hosted zone ID for DNS validation.

" + } + }, + "ResourceRecord": { + "target": "com.amazonaws.acm#ResourceRecord", + "traits": { + "smithy.api#documentation": "

The DNS resource record to create for domain validation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

DNS prevalidation details including the resource record for validation.

" + } + }, + "com.amazonaws.acm#DnsPrevalidationOptions": { + "type": "structure", + "members": { + "DomainScope": { + "target": "com.amazonaws.acm#DomainScope", + "traits": { + "smithy.api#documentation": "

The scope of domains covered by this prevalidation.

" + } + }, + "HostedZoneId": { + "target": "com.amazonaws.acm#HostedZoneId", + "traits": { + "smithy.api#documentation": "

The Route 53 hosted zone ID for DNS validation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

DNS prevalidation options for domain validation.

" + } + }, + "com.amazonaws.acm#DnsValidationChallenge": { + "type": "structure", + "members": { + "ResourceRecord": { + "target": "com.amazonaws.acm#ResourceRecord", + "traits": { + "smithy.api#documentation": "

The CNAME record that ACM creates for DNS validation. Add this record to your DNS configuration to prove that you own or control the domain.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the CNAME record that you must add to your DNS configuration to validate domain ownership using DNS validation.

" + } + }, + "com.amazonaws.acm#DomainComponentList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#String" + }, + "traits": { + "smithy.api#documentation": "

A list of domain component strings.

" + } + }, + "com.amazonaws.acm#DomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#DomainNameString" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.acm#DomainName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]*[a-z0-9])?$" + } + }, + "com.amazonaws.acm#DomainNameString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$" + } + }, + "com.amazonaws.acm#DomainScope": { + "type": "structure", + "members": { + "ExactDomain": { + "target": "com.amazonaws.acm#DomainScopeOption", + "traits": { + "smithy.api#documentation": "

Whether validation applies to the exact domain.

" + } + }, + "Subdomains": { + "target": "com.amazonaws.acm#DomainScopeOption", + "traits": { + "smithy.api#documentation": "

Whether validation applies to subdomains.

" + } + }, + "Wildcards": { + "target": "com.amazonaws.acm#DomainScopeOption", + "traits": { + "smithy.api#documentation": "

Whether validation applies to wildcard domains.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the scope of domain validation.

" + } + }, + "com.amazonaws.acm#DomainScopeOption": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.acm#DomainStatus": { + "type": "enum", + "members": { + "PENDING_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_VALIDATION" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.acm#DomainValidation": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com.

", + "smithy.api#required": {} + } + }, + "ValidationEmails": { + "target": "com.amazonaws.acm#ValidationEmailList", + "traits": { + "smithy.api#documentation": "

A list of email addresses that ACM used to send domain validation emails.

" + } + }, + "ValidationDomain": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The domain name that ACM used to send domain validation emails.

" + } + }, + "ValidationStatus": { + "target": "com.amazonaws.acm#DomainStatus", + "traits": { + "smithy.api#documentation": "

The validation status of the domain name. This can be one of the following values:

  • PENDING_VALIDATION

  • SUCCESS

  • FAILED

" + } + }, + "ResourceRecord": { + "target": "com.amazonaws.acm#ResourceRecord", + "traits": { + "smithy.api#documentation": "

Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership.

The CNAME information that you need does not include the name of your domain. If you include your domain name in the DNS database CNAME record, validation fails. For example, if the name is _a79865eb4cd1a6ab990a45779b4e0b96.yourdomain.com, only _a79865eb4cd1a6ab990a45779b4e0b96 must be used.

" + } + }, + "HttpRedirect": { + "target": "com.amazonaws.acm#HttpRedirect", + "traits": { + "smithy.api#documentation": "

Contains information for HTTP-based domain validation of certificates requested through Amazon CloudFront and issued by ACM. This field exists only when the certificate type is AMAZON_ISSUED and the validation method is HTTP.

" + } + }, + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

Specifies the domain validation method.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the validation of each domain name in the certificate.

" + } + }, + "com.amazonaws.acm#DomainValidationList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#DomainValidation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.acm#DomainValidationMethodUpdateSummary": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

The validation method that the certificate was using before the update.

" + } + }, + "To": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

The target validation method for the update.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a domain validation method migration, including the previous validation method and the target validation method.

" + } + }, + "com.amazonaws.acm#DomainValidationOption": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

A fully qualified domain name (FQDN) in the certificate request.

", + "smithy.api#required": {} + } + }, + "ValidationDomain": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or a superdomain of the DomainName value. For example, if you request a certificate for testing.example.com, you can specify example.com for this value. In that case, ACM sends domain validation emails to the following five addresses:

  • admin@example.com

  • administrator@example.com

  • hostmaster@example.com

  • postmaster@example.com

  • webmaster@example.com

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the domain names that you want ACM to use to send you emails that enable you to validate domain ownership.

" + } + }, + "com.amazonaws.acm#DomainValidationOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#DomainValidationOption" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.acm#DomainValidationSummary": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) in the certificate for which this validation summary applies.

", + "smithy.api#required": {} + } + }, + "ActiveValidationConfiguration": { + "target": "com.amazonaws.acm#ValidationConfiguration", + "traits": { + "smithy.api#documentation": "

The validation configuration currently in effect for this domain. This reflects the validation method that ACM is currently using to validate domain ownership (for example, email or DNS).

" + } + }, + "RequestedValidationConfiguration": { + "target": "com.amazonaws.acm#ValidationConfiguration", + "traits": { + "smithy.api#documentation": "

The validation configuration for a pending validation method migration. This field is present only when a migration is in progress (for example, from email to DNS validation). It contains the target validation method, the current validation status, and the validation challenge details (such as the CNAME record to add to your DNS configuration).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains per-domain validation information for a certificate. This structure is returned as a member of the ListCertificateDomainValidations response.

" + } + }, + "com.amazonaws.acm#DomainValidationSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#DomainValidationSummary" + } + }, + "com.amazonaws.acm#EmailValidationChallenge": { + "type": "structure", + "members": { + "ValidationEmails": { + "target": "com.amazonaws.acm#ValidationEmailList", + "traits": { + "smithy.api#documentation": "

A list of email addresses that ACM uses to send domain validation emails.

" + } + }, + "ValidationDomain": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The domain name that ACM uses to send validation emails.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the email addresses used for email-based domain validation.

" + } + }, + "com.amazonaws.acm#Expiration": { + "type": "structure", + "members": { + "Value": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

The numeric value of the expiration.

", + "smithy.api#range": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.acm#TimeType", + "traits": { + "smithy.api#documentation": "

The time unit for the expiration value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies an expiration configuration.

" + } + }, + "com.amazonaws.acm#ExpiryEventsConfiguration": { + "type": "structure", + "members": { + "DaysBeforeExpiry": { + "target": "com.amazonaws.acm#PositiveInteger", + "traits": { + "smithy.api#documentation": "

Specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Object containing expiration events options associated with an Amazon Web Services account.

" + } + }, + "com.amazonaws.acm#ExportCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ExportCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#ExportCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#RequestInProgressException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Exports a private certificate issued by a private certificate authority (CA) or a public certificate for use anywhere. The exported file contains the certificate, the certificate chain, and the encrypted private key associated with the public key that is embedded in the certificate. For security, you must assign a passphrase for the private key when exporting it.

For information about exporting and formatting a certificate using the ACM console or CLI, see Export a private certificate and Export a public certificate.

ACM public certificates created prior to June 17, 2025 cannot be exported.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ExportCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

An Amazon Resource Name (ARN) of the issued certificate. This must be of the form:

arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012

", + "smithy.api#required": {} + } + }, + "Passphrase": { + "target": "com.amazonaws.acm#PassphraseBlob", + "traits": { + "smithy.api#documentation": "

Passphrase to associate with the encrypted exported private key.

When creating your passphrase, you can use any ASCII character except #, $, or %.

If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key. After entering the command, you are prompted for the passphrase.

openssl rsa -in encrypted_key.pem -out decrypted_key.pem

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ExportCertificateResponse": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.acm#CertificateBody", + "traits": { + "smithy.api#documentation": "

The base64 PEM-encoded certificate.

" + } + }, + "CertificateChain": { + "target": "com.amazonaws.acm#CertificateChain", + "traits": { + "smithy.api#documentation": "

The base64 PEM-encoded certificate chain. This does not include the certificate that you are exporting.

" + } + }, + "PrivateKey": { + "target": "com.amazonaws.acm#PrivateKey", + "traits": { + "smithy.api#documentation": "

The encrypted private key associated with the public key in the certificate. The key is output in PKCS #8 format and is base64 PEM-encoded.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ExtendedKeyUsage": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.acm#ExtendedKeyUsageName", + "traits": { + "smithy.api#documentation": "

The name of an Extended Key Usage value.

" + } + }, + "OID": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

An object identifier (OID) for the extension value. OIDs are strings of numbers separated by periods. The following OIDs are defined in RFC 3280 and RFC 5280.

  • 1.3.6.1.5.5.7.3.1 (TLS_WEB_SERVER_AUTHENTICATION)

  • 1.3.6.1.5.5.7.3.2 (TLS_WEB_CLIENT_AUTHENTICATION)

  • 1.3.6.1.5.5.7.3.3 (CODE_SIGNING)

  • 1.3.6.1.5.5.7.3.4 (EMAIL_PROTECTION)

  • 1.3.6.1.5.5.7.3.8 (TIME_STAMPING)

  • 1.3.6.1.5.5.7.3.9 (OCSP_SIGNING)

  • 1.3.6.1.5.5.7.3.5 (IPSEC_END_SYSTEM)

  • 1.3.6.1.5.5.7.3.6 (IPSEC_TUNNEL)

  • 1.3.6.1.5.5.7.3.7 (IPSEC_USER)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Extended Key Usage X.509 v3 extension defines one or more purposes for which the public key can be used. This is in addition to or in place of the basic purposes specified by the Key Usage extension.

" + } + }, + "com.amazonaws.acm#ExtendedKeyUsageFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#ExtendedKeyUsageName" + } + }, + "com.amazonaws.acm#ExtendedKeyUsageList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#ExtendedKeyUsage" + } + }, + "com.amazonaws.acm#ExtendedKeyUsageName": { + "type": "enum", + "members": { + "TLS_WEB_SERVER_AUTHENTICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLS_WEB_SERVER_AUTHENTICATION" + } + }, + "TLS_WEB_CLIENT_AUTHENTICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLS_WEB_CLIENT_AUTHENTICATION" + } + }, + "CODE_SIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODE_SIGNING" + } + }, + "EMAIL_PROTECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EMAIL_PROTECTION" + } + }, + "TIME_STAMPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIME_STAMPING" + } + }, + "OCSP_SIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OCSP_SIGNING" + } + }, + "IPSEC_END_SYSTEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPSEC_END_SYSTEM" + } + }, + "IPSEC_TUNNEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPSEC_TUNNEL" + } + }, + "IPSEC_USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPSEC_USER" + } + }, + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + } + } + }, + "com.amazonaws.acm#ExtendedKeyUsageNames": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#ExtendedKeyUsageName" + } + }, + "com.amazonaws.acm#FailureDetails": { + "type": "structure", + "members": { + "Reason": { + "target": "com.amazonaws.acm#AcmeDomainValidationFailureReason", + "traits": { + "smithy.api#documentation": "

The reason for the failure.

" + } + }, + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A message describing the failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about a failure.

" + } + }, + "com.amazonaws.acm#FailureReason": { + "type": "enum", + "members": { + "NO_AVAILABLE_CONTACTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_AVAILABLE_CONTACTS" + } + }, + "ADDITIONAL_VERIFICATION_REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADDITIONAL_VERIFICATION_REQUIRED" + } + }, + "DOMAIN_NOT_ALLOWED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOMAIN_NOT_ALLOWED" + } + }, + "INVALID_PUBLIC_DOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_PUBLIC_DOMAIN" + } + }, + "DOMAIN_VALIDATION_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOMAIN_VALIDATION_DENIED" + } + }, + "CAA_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAA_ERROR" + } + }, + "PCA_LIMIT_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_LIMIT_EXCEEDED" + } + }, + "PCA_INVALID_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_INVALID_ARN" + } + }, + "PCA_INVALID_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_INVALID_STATE" + } + }, + "PCA_REQUEST_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_REQUEST_FAILED" + } + }, + "PCA_NAME_CONSTRAINTS_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_NAME_CONSTRAINTS_VALIDATION" + } + }, + "PCA_RESOURCE_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_RESOURCE_NOT_FOUND" + } + }, + "PCA_INVALID_ARGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_INVALID_ARGS" + } + }, + "PCA_INVALID_DURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_INVALID_DURATION" + } + }, + "PCA_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCA_ACCESS_DENIED" + } + }, + "SLR_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SLR_NOT_FOUND" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OTHER" + } + } + } + }, + "com.amazonaws.acm#FilterString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.acm#Filters": { + "type": "structure", + "members": { + "extendedKeyUsage": { + "target": "com.amazonaws.acm#ExtendedKeyUsageFilterList", + "traits": { + "smithy.api#documentation": "

Specify one or more ExtendedKeyUsage extension values.

" + } + }, + "keyUsage": { + "target": "com.amazonaws.acm#KeyUsageFilterList", + "traits": { + "smithy.api#documentation": "

Specify one or more KeyUsage extension values.

" + } + }, + "keyTypes": { + "target": "com.amazonaws.acm#KeyAlgorithmList", + "traits": { + "smithy.api#documentation": "

Specify one or more algorithms that can be used to generate key pairs.

Default filtering returns only RSA_1024 and RSA_2048 certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, \"keyTypes\": [\"RSA_2048\",\"RSA_4096\"] returns both RSA_2048 and RSA_4096 certificates.

" + } + }, + "exportOption": { + "target": "com.amazonaws.acm#CertificateExport", + "traits": { + "smithy.api#documentation": "

Specify ENABLED or DISABLED to identify certificates that can be exported.

" + } + }, + "managedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon Web Services service that manages the certificate issued by ACM.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure can be used in the ListCertificates action to filter the output of the certificate list.

" + } + }, + "com.amazonaws.acm#GeneralName": { + "type": "union", + "members": { + "DirectoryName": { + "target": "com.amazonaws.acm#DistinguishedName", + "traits": { + "smithy.api#documentation": "

Contains information about the certificate subject. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The Subject must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate.

" + } + }, + "DnsName": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Represents GeneralName as a DNS name.

" + } + }, + "IpAddress": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Represents GeneralName as an IPv4 or IPv6 address.

" + } + }, + "OtherName": { + "target": "com.amazonaws.acm#OtherName", + "traits": { + "smithy.api#documentation": "

Represents GeneralName using an OtherName object.

" + } + }, + "RegisteredId": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Represents GeneralName as an object identifier (OID).

" + } + }, + "Rfc822Name": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Represents GeneralName as an RFC 822 email address.

" + } + }, + "UniformResourceIdentifier": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Represents GeneralName as a URI.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an ASN.1 X.400 GeneralName as defined in RFC 5280. Only one of the following naming options should be provided.

" + } + }, + "com.amazonaws.acm#GeneralNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#GeneralName" + }, + "traits": { + "smithy.api#documentation": "

A list of GeneralName objects representing subject alternative names.

" + } + }, + "com.amazonaws.acm#GetAccountConfiguration": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.acm#GetAccountConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the account configuration options associated with an Amazon Web Services account.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#GetAccountConfigurationResponse": { + "type": "structure", + "members": { + "ExpiryEvents": { + "target": "com.amazonaws.acm#ExpiryEventsConfiguration", + "traits": { + "smithy.api#documentation": "

Expiration events configuration options associated with the Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentials": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsRequest" + }, + "output": { + "target": "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the key ID and MAC key credentials for an external account binding. These credentials are used by ACME clients during account registration to bind to the endpoint.

", + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsRequest": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#GetAcmeExternalAccountBindingCredentialsResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The key identifier for the external account binding credentials.

" + } + }, + "MacKey": { + "target": "com.amazonaws.acm#MacKey", + "traits": { + "smithy.api#documentation": "

The MAC key for the external account binding credentials.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#GetCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#GetCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#GetCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#RequestInProgressException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a certificate and its certificate chain. The certificate may be either a public or private certificate issued using the ACM RequestCertificate action, or a certificate imported into ACM using the ImportCertificate action. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. All of the certificates are base64 encoded. You can use OpenSSL to decode the certificates and inspect individual fields.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + }, + "smithy.test#smokeTests": [ + { + "id": "GetCertificateFailure", + "params": { + "CertificateArn": "arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012" + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ] + } + }, + "com.amazonaws.acm#GetCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains a certificate ARN in the following format:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#GetCertificateResponse": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.acm#CertificateBody", + "traits": { + "smithy.api#documentation": "

The ACM-issued certificate corresponding to the ARN specified as input.

" + } + }, + "CertificateChain": { + "target": "com.amazonaws.acm#CertificateChain", + "traits": { + "smithy.api#documentation": "

Certificates forming the requested certificate's chain of trust. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#HostedZoneId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^Z[A-Z0-9]+$" + } + }, + "com.amazonaws.acm#HttpRedirect": { + "type": "structure", + "members": { + "RedirectFrom": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The URL including the domain to be validated. The certificate authority sends GET requests here during validation.

" + } + }, + "RedirectTo": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The URL hosting the validation token. RedirectFrom must return this content or redirect here.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information for HTTP-based domain validation of certificates requested through Amazon CloudFront and issued by ACM. This field exists only when the certificate type is AMAZON_ISSUED and the validation method is HTTP.

" + } + }, + "com.amazonaws.acm#IdempotencyToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^\\w+$" + } + }, + "com.amazonaws.acm#ImportCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ImportCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#ImportCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidParameterException" + }, + { + "target": "com.amazonaws.acm#InvalidTagException" + }, + { + "target": "com.amazonaws.acm#LimitExceededException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#TagPolicyException" + }, + { + "target": "com.amazonaws.acm#TooManyTagsException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Imports a certificate into Certificate Manager (ACM) to use with services that are integrated with ACM. Note that integrated services allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see Importing Certificates in the Certificate Manager User Guide.

ACM does not provide managed renewal for certificates that you import.

Note the following guidelines when importing third party certificates:

  • You must enter the private key that matches the certificate you are importing.

  • The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase.

  • The private key must be no larger than 5 KB (5,120 bytes).

  • The certificate, private key, and certificate chain must be PEM-encoded.

  • The current time must be between the Not Before and Not After certificate fields.

  • The Issuer field must not be empty.

  • The OCSP authority URL, if present, must not exceed 1000 characters.

  • To import a new certificate, omit the CertificateArn argument. Include this argument only when you want to replace a previously imported certificate.

  • When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by fileb://. For example, you can specify a certificate saved in the C:\\temp folder as fileb://C:\\temp\\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs.

  • When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using.

  • The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA.

This operation returns the Amazon Resource Name (ARN) of the imported certificate.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ImportCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field.

" + } + }, + "Certificate": { + "target": "com.amazonaws.acm#CertificateBodyBlob", + "traits": { + "smithy.api#documentation": "

The certificate to import.

", + "smithy.api#required": {} + } + }, + "PrivateKey": { + "target": "com.amazonaws.acm#PrivateKeyBlob", + "traits": { + "smithy.api#documentation": "

The private key that matches the public key in the certificate.

", + "smithy.api#required": {} + } + }, + "CertificateChain": { + "target": "com.amazonaws.acm#CertificateChainBlob", + "traits": { + "smithy.api#documentation": "

The PEM encoded certificate chain.

" + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

One or more resource tags to associate with the imported certificate.

Note: You cannot apply tags when reimporting a certificate.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ImportCertificateResponse": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the imported certificate.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#InUseList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#String" + } + }, + "com.amazonaws.acm#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The request processing has failed because of an unknown error, exception, or failure.

", + "smithy.api#error": "server", + "smithy.api#retryable": {} + } + }, + "com.amazonaws.acm#InvalidArgsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

One or more of request parameters specified is not valid.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#InvalidArnException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The requested Amazon Resource Name (ARN) does not refer to an existing resource.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#InvalidDomainValidationOptionsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

One or more values in the DomainValidationOption structure is incorrect.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#InvalidParameterException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

An input parameter was invalid.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#InvalidStateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

Processing has reached an invalid state.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#InvalidTagException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

One or both of the values that make up the key-value pair is not valid. For example, you cannot specify a tag value that begins with aws:.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#KeyAlgorithm": { + "type": "enum", + "members": { + "RSA_1024": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_1024" + } + }, + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "RSA_3072": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_3072" + } + }, + "RSA_4096": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_4096" + } + }, + "EC_prime256v1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC_prime256v1" + } + }, + "EC_secp384r1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC_secp384r1" + } + }, + "EC_secp521r1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC_secp521r1" + } + } + } + }, + "com.amazonaws.acm#KeyAlgorithmList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#KeyAlgorithm" + } + }, + "com.amazonaws.acm#KeyUsage": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.acm#KeyUsageName", + "traits": { + "smithy.api#documentation": "

A string value that contains a Key Usage extension name.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Key Usage X.509 v3 extension defines the purpose of the public key contained in the certificate.

" + } + }, + "com.amazonaws.acm#KeyUsageFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#KeyUsageName" + } + }, + "com.amazonaws.acm#KeyUsageList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#KeyUsage" + } + }, + "com.amazonaws.acm#KeyUsageName": { + "type": "enum", + "members": { + "DIGITAL_SIGNATURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DIGITAL_SIGNATURE" + } + }, + "NON_REPUDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NON_REPUDIATION" + } + }, + "KEY_ENCIPHERMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_ENCIPHERMENT" + } + }, + "DATA_ENCIPHERMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DATA_ENCIPHERMENT" + } + }, + "KEY_AGREEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_AGREEMENT" + } + }, + "CERTIFICATE_SIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CERTIFICATE_SIGNING" + } + }, + "CRL_SIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRL_SIGNING" + } + }, + "ENCHIPER_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENCIPHER_ONLY" + } + }, + "DECIPHER_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DECIPHER_ONLY" + } + }, + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANY" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + } + } + }, + "com.amazonaws.acm#KeyUsageNames": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#KeyUsageName" + } + }, + "com.amazonaws.acm#LimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

An ACM quota has been exceeded.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#ListAcmeAccounts": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListAcmeAccountsRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListAcmeAccountsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of ACME accounts registered with the specified ACME endpoint. ACME accounts are created when clients use external account binding credentials to register.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "AcmeAccounts" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#ListAcmeAccountsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListAcmeAccountsResponse": { + "type": "structure", + "members": { + "AcmeAccounts": { + "target": "com.amazonaws.acm#AcmeAccountList", + "traits": { + "smithy.api#documentation": "

The list of ACME accounts.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListAcmeDomainValidations": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListAcmeDomainValidationsRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListAcmeDomainValidationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of domain validations for the specified ACME endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "AcmeDomainValidations" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#ListAcmeDomainValidationsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListAcmeDomainValidationsResponse": { + "type": "structure", + "members": { + "AcmeDomainValidations": { + "target": "com.amazonaws.acm#AcmeDomainValidationList", + "traits": { + "smithy.api#documentation": "

The list of domain validations.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListAcmeEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListAcmeEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListAcmeEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of ACME endpoints in your account. Use this operation to view all configured ACME endpoints and their current status.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "AcmeEndpoints" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#ListAcmeEndpointsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListAcmeEndpointsResponse": { + "type": "structure", + "members": { + "AcmeEndpoints": { + "target": "com.amazonaws.acm#AcmeEndpointList", + "traits": { + "smithy.api#documentation": "

The list of ACME endpoints.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListAcmeExternalAccountBindings": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListAcmeExternalAccountBindingsRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListAcmeExternalAccountBindingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of external account bindings for the specified ACME endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "ExternalAccountBindings" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#ListAcmeExternalAccountBindingsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListAcmeExternalAccountBindingsResponse": { + "type": "structure", + "members": { + "ExternalAccountBindings": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingList", + "traits": { + "smithy.api#documentation": "

The list of external account bindings.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token for pagination.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListCertificateDomainValidations": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListCertificateDomainValidationsRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListCertificateDomainValidationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#InvalidArgsException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns per-domain validation summaries for an ACM certificate. Each summary includes the domain name, the active validation configuration, and the requested validation configuration when a validation method migration is in progress. You can use the results to monitor the progress of an email-to-DNS validation migration and to retrieve the CNAME records required for DNS validation.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "DomainValidationSummaryList", + "pageSize": "MaxItems" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ListCertificateDomainValidationsRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#CertificateArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the certificate for which to list domain validation summaries.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

A token returned by a previous call to ListCertificateDomainValidations. If the number of results exceeds MaxItems, use this token to retrieve the next page of results.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.acm#MaxItems", + "traits": { + "smithy.api#documentation": "

The maximum number of domain validation summaries to return. If you don't specify a value, the default is 1000.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListCertificateDomainValidationsResponse": { + "type": "structure", + "members": { + "DomainValidationSummaryList": { + "target": "com.amazonaws.acm#DomainValidationSummaryList", + "traits": { + "smithy.api#documentation": "

A list of DomainValidationSummary objects, one for each domain on the certificate. Each object contains the domain name and its active and requested validation configurations.

" + } + }, + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

If the number of results exceeds MaxItems, this token is included in the response. Use this token in a subsequent ListCertificateDomainValidations request to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListCertificatesRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListCertificatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArgsException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only RSA_2048 certificates. For more information, see Filters.

By default, this action does not return certificates with a CertificateKeyPairOrigin of ACME. To include ACME certificates, specify ACME in the CertificateKeyPairOrigins filter.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CertificateSummaryList", + "pageSize": "MaxItems" + }, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + }, + "smithy.test#smokeTests": [ + { + "id": "ListCertificatesSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.acm#ListCertificatesRequest": { + "type": "structure", + "members": { + "CertificateStatuses": { + "target": "com.amazonaws.acm#CertificateStatuses", + "traits": { + "smithy.api#documentation": "

Filter the certificate list by status value.

" + } + }, + "CertificateKeyPairOrigins": { + "target": "com.amazonaws.acm#CertificateKeyPairOrigins", + "traits": { + "smithy.api#documentation": "

Filter the certificate list by certificate key pair origin. Specify one or more CertificateKeyPairOrigin values. Default filtering returns only certificates with key pair origin of AWS_MANAGED and CUSTOMER_PROVIDED.

" + } + }, + "Includes": { + "target": "com.amazonaws.acm#Filters", + "traits": { + "smithy.api#documentation": "

Filter the certificate list. For more information, see the Filters structure.

" + } + }, + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.acm#MaxItems", + "traits": { + "smithy.api#documentation": "

Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items.

" + } + }, + "SortBy": { + "target": "com.amazonaws.acm#SortBy", + "traits": { + "smithy.api#documentation": "

Specifies the field to sort results by. If you specify SortBy, you must also specify SortOrder.

" + } + }, + "SortOrder": { + "target": "com.amazonaws.acm#SortOrder", + "traits": { + "smithy.api#documentation": "

Specifies the order of sorted results. If you specify SortOrder, you must also specify SortBy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListCertificatesResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

When the list is truncated, this value is present and contains the value to use for the NextToken parameter in a subsequent pagination request.

" + } + }, + "CertificateSummaryList": { + "target": "com.amazonaws.acm#CertificateSummaryList", + "traits": { + "smithy.api#documentation": "

A list of ACM certificates.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListTagsForCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListTagsForCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListTagsForCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that have been applied to the ACM certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action.

This action applies only to the certificate resource type. For all other ACM resource types, use ListTagsForResource instead.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ListTagsForCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the ACM certificate for which you want to list the tags. This must have the following form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListTagsForCertificateResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

The key-value pairs that define the applied tags.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.acm#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags associated with an ACM resource.

Use this action for all ACM resource types except the certificate resource type. For certificate resources, use ListTagsForCertificate instead.

To add one or more tags, use the TagResource action. To remove one or more tags, use the UntagResource action.

", + "smithy.api#readonly": {}, + "smithy.api#tags": [ + "newTaggingApi" + ], + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ACM resource for which to list tags.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

The tags associated with the resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#MacKey": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.acm#MaxItems": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.acm#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*$" + } + }, + "com.amazonaws.acm#NullableBoolean": { + "type": "boolean" + }, + "com.amazonaws.acm#OtherName": { + "type": "structure", + "members": { + "ObjectIdentifier": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Specifies an OID.

" + } + }, + "Value": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

Specifies an OID value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines a custom ASN.1 X.400 GeneralName using an object identifier (OID) and value. For more information, see NIST's definition of Object Identifier (OID).

" + } + }, + "com.amazonaws.acm#PassphraseBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 128 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.acm#PcaArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*$" + } + }, + "com.amazonaws.acm#PositiveInteger": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.acm#PrevalidationDetails": { + "type": "union", + "members": { + "DnsPrevalidation": { + "target": "com.amazonaws.acm#DnsPrevalidationDetails", + "traits": { + "smithy.api#documentation": "

DNS-based prevalidation details.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the prevalidation configuration.

" + } + }, + "com.amazonaws.acm#PrevalidationOptions": { + "type": "union", + "members": { + "DnsPrevalidation": { + "target": "com.amazonaws.acm#DnsPrevalidationOptions", + "traits": { + "smithy.api#documentation": "

DNS-based prevalidation options.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies prevalidation options for domain validation.

" + } + }, + "com.amazonaws.acm#PrevalidationType": { + "type": "enum", + "members": { + "DNS_PREVALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DNS_PREVALIDATION" + } + } + } + }, + "com.amazonaws.acm#PrivateKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 524288 + }, + "smithy.api#pattern": "^-{5}BEGIN PRIVATE KEY-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END PRIVATE KEY-{5}(\\u000D?\\u000A)?$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.acm#PrivateKeyBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8192 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.acm#PublicCertificateAuthority": { + "type": "structure", + "members": { + "AllowedKeyAlgorithms": { + "target": "com.amazonaws.acm#PublicKeyAlgorithmList", + "traits": { + "smithy.api#documentation": "

The key algorithms allowed for certificates issued by this certificate authority.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for a public certificate authority.

" + } + }, + "com.amazonaws.acm#PublicKeyAlgorithm": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "EC_PRIME256_V1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC_prime256v1" + } + }, + "EC_SECP384_R1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC_secp384r1" + } + } + } + }, + "com.amazonaws.acm#PublicKeyAlgorithmList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#PublicKeyAlgorithm" + } + }, + "com.amazonaws.acm#PutAccountConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#PutAccountConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or modifies account-level configurations in ACM.

The supported configuration option is DaysBeforeExpiry. This option specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#PutAccountConfigurationRequest": { + "type": "structure", + "members": { + "ExpiryEvents": { + "target": "com.amazonaws.acm#ExpiryEventsConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies expiration events associated with an account.

" + } + }, + "IdempotencyToken": { + "target": "com.amazonaws.acm#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

Customer-chosen string used to distinguish between calls to PutAccountConfiguration. Idempotency tokens time out after one hour. If you call PutAccountConfiguration multiple times with the same unexpired idempotency token, ACM treats it as the same request and returns the original result. If you change the idempotency token for each call, ACM treats each call as a new request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RecordType": { + "type": "enum", + "members": { + "CNAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CNAME" + } + } + } + }, + "com.amazonaws.acm#RemoveTagsFromCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RemoveTagsFromCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidParameterException" + }, + { + "target": "com.amazonaws.acm#InvalidTagException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#TagPolicyException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Remove one or more tags from an ACM certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value.

This action applies only to the certificate resource type. For all other ACM resource types, use UntagResource instead.

To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM certificate, use the ListTagsForCertificate action.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#RemoveTagsFromCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

The key-value pair that defines the tag to remove.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RenewCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RenewCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#RequestInProgressException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Renews an eligible ACM certificate. In order to renew your Amazon Web Services Private CA certificates with ACM, you must first grant the ACM service principal permission to do so. For more information, see Testing Managed Renewal in the ACM User Guide.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#RenewCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the ACM certificate to be renewed. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RenewalEligibility": { + "type": "enum", + "members": { + "ELIGIBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ELIGIBLE" + } + }, + "INELIGIBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INELIGIBLE" + } + } + } + }, + "com.amazonaws.acm#RenewalStatus": { + "type": "enum", + "members": { + "PENDING_AUTO_RENEWAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_AUTO_RENEWAL" + } + }, + "PENDING_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_VALIDATION" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.acm#RenewalSummary": { + "type": "structure", + "members": { + "RenewalStatus": { + "target": "com.amazonaws.acm#RenewalStatus", + "traits": { + "smithy.api#documentation": "

The status of ACM's managed renewal of the certificate.

", + "smithy.api#required": {} + } + }, + "DomainValidationOptions": { + "target": "com.amazonaws.acm#DomainValidationList", + "traits": { + "smithy.api#documentation": "

Contains information about the validation of each domain name in the certificate, as it pertains to ACM's managed renewal. This is different from the initial validation that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED.

", + "smithy.api#required": {} + } + }, + "RenewalStatusReason": { + "target": "com.amazonaws.acm#FailureReason", + "traits": { + "smithy.api#documentation": "

The reason that a renewal request was unsuccessful.

" + } + }, + "UpdatedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the renewal summary was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the status of ACM's managed renewal for the certificate. This structure exists only when the certificate type is AMAZON_ISSUED.

" + } + }, + "com.amazonaws.acm#RequestCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RequestCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#RequestCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidDomainValidationOptionsException" + }, + { + "target": "com.amazonaws.acm#InvalidParameterException" + }, + { + "target": "com.amazonaws.acm#InvalidTagException" + }, + { + "target": "com.amazonaws.acm#LimitExceededException" + }, + { + "target": "com.amazonaws.acm#TagPolicyException" + }, + { + "target": "com.amazonaws.acm#TooManyTagsException" + } + ], + "traits": { + "smithy.api#documentation": "

Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter.

If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use DNS validation or email validation. We recommend that you use DNS validation.

ACM behavior differs from the RFC 6125 specification of the certificate validation process. ACM first checks for a Subject Alternative Name, and, if it finds one, ignores the common name (CN).

After successful completion of the RequestCertificate action, there is a delay of several seconds before you can retrieve information about the new certificate.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#RequestCertificateRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

In compliance with RFC 5280, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.

", + "smithy.api#required": {} + } + }, + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can validate with DNS or validate with email. We recommend that you use DNS validation.

" + } + }, + "SubjectAlternativeNames": { + "target": "com.amazonaws.acm#DomainList", + "traits": { + "smithy.api#documentation": "

Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see Quotas.

The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

  • (63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • (64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.

  • (63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.

" + } + }, + "IdempotencyToken": { + "target": "com.amazonaws.acm#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

Customer chosen string that can be used to distinguish between calls to RequestCertificate. Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.

" + } + }, + "DomainValidationOptions": { + "target": "com.amazonaws.acm#DomainValidationOptionList", + "traits": { + "smithy.api#documentation": "

The domain name that you want ACM to use to send you emails so that you can validate domain ownership.

" + } + }, + "Options": { + "target": "com.amazonaws.acm#CertificateOptions", + "traits": { + "smithy.api#documentation": "

You can use this parameter to specify whether to export your certificate.

Certificate transparency logging opt-out is no longer available. All public certificates are recorded in a certificate transparency log. For more information, see Certificate Transparency Logging.

You can export public ACM certificates to use with Amazon Web Services services as well as outside the Amazon Web Services Cloud. For more information, see Certificate Manager exportable public certificate.

" + } + }, + "CertificateAuthorityArn": { + "target": "com.amazonaws.acm#PcaArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the Amazon Web Services Private Certificate Authority user guide. The ARN must have the following form:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

One or more resource tags to associate with the certificate.

" + } + }, + "KeyAlgorithm": { + "target": "com.amazonaws.acm#KeyAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some Amazon Web Services services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the Amazon Web Services service where you plan to deploy your certificate. For more information about selecting an algorithm, see Key algorithms.

Algorithms supported for an ACM certificate request include:

  • RSA_2048

  • EC_prime256v1

  • EC_secp384r1

Other listed algorithms are for imported certificates only.

When you request a private PKI certificate signed by a CA from Amazon Web Services Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key.

Default: RSA_2048

" + } + }, + "ManagedBy": { + "target": "com.amazonaws.acm#CertificateManagedBy", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon Web Services service that manages the certificate issued by ACM.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RequestCertificateResponse": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the issued certificate. This must be of the form:

arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#RequestInProgressException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The certificate request is in process and the certificate in your account has not yet been issued.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#ResendValidationEmail": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#ResendValidationEmailRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidDomainValidationOptionsException" + }, + { + "target": "com.amazonaws.acm#InvalidStateException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Resends the email that requests domain ownership validation. The domain owner or an authorized representative must approve the ACM certificate before it can be issued. The certificate can be approved by clicking a link in the mail to navigate to the Amazon certificate approval website and then clicking I Approve. However, the validation email can be blocked by spam filters. Therefore, if you do not receive the original mail, you can request that the mail be resent within 72 hours of requesting the ACM certificate. If more than 72 hours have elapsed since your original request or since your last attempt to resend validation mail, you must request a new certificate. For more information about setting up your contact email addresses, see Configure Email for your Domain.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#ResendValidationEmailRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form:

arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

", + "smithy.api#required": {} + } + }, + "Domain": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of the certificate that needs to be validated.

", + "smithy.api#required": {} + } + }, + "ValidationDomain": { + "target": "com.amazonaws.acm#DomainNameString", + "traits": { + "smithy.api#documentation": "

The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the the following five addresses:

  • admin@subdomain.example.com

  • administrator@subdomain.example.com

  • hostmaster@subdomain.example.com

  • postmaster@subdomain.example.com

  • webmaster@subdomain.example.com

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#ResourceInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The certificate is in use by another Amazon Web Services service in the caller's account. Remove the association and try again.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The specified certificate cannot be found in the caller's account or the caller's account cannot be found.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#ResourceRecord": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The name of the DNS record to create in your domain. This is supplied by ACM.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.acm#RecordType", + "traits": { + "smithy.api#documentation": "

The type of DNS record. Currently this can be CNAME.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.acm#String", + "traits": { + "smithy.api#documentation": "

The value of the CNAME record to add to your DNS database. This is supplied by ACM.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a DNS record value that you can use to validate ownership or control of a domain. This is used by the DescribeCertificate action.

" + } + }, + "com.amazonaws.acm#RevocationReason": { + "type": "enum", + "members": { + "UNSPECIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSPECIFIED" + } + }, + "KEY_COMPROMISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_COMPROMISE" + } + }, + "CA_COMPROMISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CA_COMPROMISE" + } + }, + "AFFILIATION_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFFILIATION_CHANGED" + } + }, + "SUPERCEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUPERCEDED" + } + }, + "SUPERSEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUPERSEDED" + } + }, + "CESSATION_OF_OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CESSATION_OF_OPERATION" + } + }, + "CERTIFICATE_HOLD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CERTIFICATE_HOLD" + } + }, + "REMOVE_FROM_CRL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE_FROM_CRL" + } + }, + "PRIVILEGE_WITHDRAWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRIVILEGE_WITHDRAWN" + } + }, + "A_A_COMPROMISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "A_A_COMPROMISE" + } + } + } + }, + "com.amazonaws.acm#RevokeAcmeAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RevokeAcmeAccountRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Revokes an ACME account, preventing it from requesting or revoking certificates. This operation is irreversible.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#RevokeAcmeAccountRequest": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint.

", + "smithy.api#required": {} + } + }, + "AccountUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the ACME account to revoke.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RevokeAcmeExternalAccountBinding": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RevokeAcmeExternalAccountBindingRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Revokes an external account binding, preventing new ACME accounts from being registered using this binding. Existing ACME accounts that were previously registered using the binding are not affected and must be revoked separately.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#RevokeAcmeExternalAccountBindingRequest": { + "type": "structure", + "members": { + "AcmeExternalAccountBindingArn": { + "target": "com.amazonaws.acm#AcmeExternalAccountBindingArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME external account binding to revoke.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#RevokeCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#RevokeCertificateRequest" + }, + "output": { + "target": "com.amazonaws.acm#RevokeCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#ResourceInUseException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Revokes a public ACM certificate. You can only revoke certificates that have been previously exported.

Once a certificate is revoked, you cannot reuse the certificate. Revoking a certificate is permanent.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#RevokeCertificateRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the public or private certificate that will be revoked. The ARN must have the following form:

arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012

", + "smithy.api#required": {} + } + }, + "RevocationReason": { + "target": "com.amazonaws.acm#RevocationReason", + "traits": { + "smithy.api#documentation": "

Specifies why you revoked the certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#RevokeCertificateResponse": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the public or private certificate that was revoked.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#RoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:iam::[0-9]{12}:role/.+$" + } + }, + "com.amazonaws.acm#SearchCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#SearchCertificatesRequest" + }, + "output": { + "target": "com.amazonaws.acm#SearchCertificatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of certificates matching search criteria. You can filter certificates by X.509 attributes and ACM specific properties like certificate status, type and renewal eligibility. This operation provides more flexible filtering than ListCertificates by supporting complex filter statements.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Results", + "pageSize": "MaxResults" + }, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + }, + "smithy.test#smokeTests": [ + { + "id": "SearchCertificatesSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.acm#SearchCertificatesRequest": { + "type": "structure", + "members": { + "FilterStatement": { + "target": "com.amazonaws.acm#CertificateFilterStatement", + "traits": { + "smithy.api#documentation": "

A filter statement that defines the search criteria. You can combine multiple filters using AND, OR, and NOT logical operators to create complex queries.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.acm#SearchMaxResults", + "traits": { + "smithy.api#default": 100, + "smithy.api#documentation": "

The maximum number of results to return in the response. Default is 100.

" + } + }, + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received.

" + } + }, + "SortBy": { + "target": "com.amazonaws.acm#SearchCertificatesSortBy", + "traits": { + "smithy.api#default": "CREATED_AT", + "smithy.api#documentation": "

Specifies the field to sort results by. Valid values are CREATED_AT, NOT_AFTER, STATUS, RENEWAL_STATUS, EXPORTED, IN_USE, NOT_BEFORE, KEY_ALGORITHM, TYPE, CERTIFICATE_ARN, COMMON_NAME, REVOKED_AT, RENEWAL_ELIGIBILITY, ISSUED_AT, MANAGED_BY, EXPORT_OPTION, VALIDATION_METHOD, and IMPORTED_AT.

" + } + }, + "SortOrder": { + "target": "com.amazonaws.acm#SearchCertificatesSortOrder", + "traits": { + "smithy.api#default": "ASCENDING", + "smithy.api#documentation": "

Specifies the order of sorted results. Valid values are ASCENDING or DESCENDING.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#SearchCertificatesResponse": { + "type": "structure", + "members": { + "Results": { + "target": "com.amazonaws.acm#CertificateSearchResultList", + "traits": { + "smithy.api#documentation": "

A list of certificate search results containing certificate ARNs, X.509 attributes, and ACM metadata.

" + } + }, + "NextToken": { + "target": "com.amazonaws.acm#NextToken", + "traits": { + "smithy.api#documentation": "

When the list is truncated, this value is present and contains the value to use for the NextToken parameter in a subsequent pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.acm#SearchCertificatesSortBy": { + "type": "enum", + "members": { + "CREATED_AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED_AT" + } + }, + "NOT_AFTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_AFTER" + } + }, + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATUS" + } + }, + "RENEWAL_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RENEWAL_STATUS" + } + }, + "EXPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORTED" + } + }, + "IN_USE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_USE" + } + }, + "NOT_BEFORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_BEFORE" + } + }, + "KEY_ALGORITHM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_ALGORITHM" + } + }, + "TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TYPE" + } + }, + "CERTIFICATE_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CERTIFICATE_ARN" + } + }, + "COMMON_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMMON_NAME" + } + }, + "REVOKED_AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REVOKED_AT" + } + }, + "RENEWAL_ELIGIBILITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RENEWAL_ELIGIBILITY" + } + }, + "ISSUED_AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ISSUED_AT" + } + }, + "MANAGED_BY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED_BY" + } + }, + "EXPORT_OPTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_OPTION" + } + }, + "VALIDATION_METHOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_METHOD" + } + }, + "IMPORTED_AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORTED_AT" + } + }, + "ACME_ENDPOINT_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACME_ENDPOINT_ARN" + } + }, + "ACME_ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACME_ACCOUNT_ID" + } + }, + "CERTIFICATE_KEY_PAIR_ORIGIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CERTIFICATE_KEY_PAIR_ORIGIN" + } + } + }, + "traits": { + "smithy.api#documentation": "

The field to sort search results by.

" + } + }, + "com.amazonaws.acm#SearchCertificatesSortOrder": { + "type": "enum", + "members": { + "ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASCENDING" + } + }, + "DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESCENDING" + } + } + }, + "traits": { + "smithy.api#documentation": "

The order to sort search results.

" + } + }, + "com.amazonaws.acm#SearchMaxResults": { + "type": "integer", + "traits": { + "smithy.api#default": 100, + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.acm#SerialNumber": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 59 + }, + "smithy.api#pattern": "^[0-9a-f]{2}(:[0-9a-f]{2}){1,19}$" + } + }, + "com.amazonaws.acm#ServiceErrorMessage": { + "type": "string" + }, + "com.amazonaws.acm#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

A service quota has been exceeded.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#SortBy": { + "type": "enum", + "members": { + "CREATED_AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED_AT" + } + } + } + }, + "com.amazonaws.acm#SortOrder": { + "type": "enum", + "members": { + "ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASCENDING" + } + }, + "DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESCENDING" + } + } + } + }, + "com.amazonaws.acm#String": { + "type": "string" + }, + "com.amazonaws.acm#SubjectAlternativeNameFilter": { + "type": "union", + "members": { + "DnsName": { + "target": "com.amazonaws.acm#DnsNameFilter", + "traits": { + "smithy.api#documentation": "

Filter by DNS name in subject alternative names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by subject alternative name attributes.

" + } + }, + "com.amazonaws.acm#SubjectFilter": { + "type": "union", + "members": { + "CommonName": { + "target": "com.amazonaws.acm#CommonNameFilter", + "traits": { + "smithy.api#documentation": "

Filter by common name in the subject.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by subject attributes.

" + } + }, + "com.amazonaws.acm#TStamp": { + "type": "timestamp" + }, + "com.amazonaws.acm#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.acm#TagKey", + "traits": { + "smithy.api#documentation": "

The key of the tag.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.acm#TagValue", + "traits": { + "smithy.api#documentation": "

The value of the tag.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A key-value pair that identifies or specifies metadata about an ACM resource.

" + } + }, + "com.amazonaws.acm#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.acm#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.acm#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.acm#TagPolicyException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

A specified tag did not comply with an existing tag policy and was rejected.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#TagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an ACM resource. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value.

Use this action for all ACM resource types except the certificate resource type. For certificate resources, use AddTagsToCertificate instead.

To remove one or more tags, use the UntagResource action. To view all of the tags that have been applied to a resource, use the ListTagsForResource action.

", + "smithy.api#tags": [ + "newTaggingApi" + ], + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ACM resource to which the tag is to be applied.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.acm#TagList", + "traits": { + "smithy.api#documentation": "

The key-value pair that defines the tag to apply.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.acm#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#AvailabilityErrorMessage" + }, + "throttlingReasons": { + "target": "com.amazonaws.acm#ThrottlingReasonList", + "traits": { + "smithy.api#documentation": "

One or more reasons why the request was throttled.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "Throttling", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was denied because it exceeded a quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.acm#ThrottlingReason": { + "type": "structure", + "members": { + "reason": { + "target": "com.amazonaws.acm#CoralAvailabilityThrottlingReason", + "traits": { + "smithy.api#documentation": "

A description of why a request was throttled.

" + } + }, + "resource": { + "target": "com.amazonaws.acm#CoralAvailabilityThrottledResource", + "traits": { + "smithy.api#documentation": "

The resource that causes the request to be throttled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A description of why a request was throttled.

" + } + }, + "com.amazonaws.acm#ThrottlingReasonList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#ThrottlingReason" + } + }, + "com.amazonaws.acm#TimeType": { + "type": "enum", + "members": { + "MINUTES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MINUTES" + } + }, + "HOURS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOURS" + } + }, + "DAYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAYS" + } + } + } + }, + "com.amazonaws.acm#TimestampRange": { + "type": "structure", + "members": { + "Start": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The start of the time range. This value is inclusive.

" + } + }, + "End": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The end of the time range. This value is inclusive.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a time range for filtering certificates.

" + } + }, + "com.amazonaws.acm#TooManyTagsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#String" + } + }, + "traits": { + "smithy.api#documentation": "

The request contains too many tags. Try the request again with fewer tags.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.acm#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#UntagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes one or more tags from an ACM resource.

Use this action for all ACM resource types except the certificate resource type. For certificate resources, use RemoveTagsFromCertificate instead.

To add one or more tags, use the TagResource action. To view all of the tags that have been applied to a resource, use the ListTagsForResource action.

", + "smithy.api#tags": [ + "newTaggingApi" + ], + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ACM resource from which the tag is to be removed.

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.acm#TagKeyList", + "traits": { + "smithy.api#documentation": "

The key of each tag to remove.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#UpdateAcmeDomainValidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#UpdateAcmeDomainValidationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the prevalidation configuration of an existing domain validation.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#UpdateAcmeDomainValidationRequest": { + "type": "structure", + "members": { + "AcmeDomainValidationArn": { + "target": "com.amazonaws.acm#AcmeDomainValidationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME domain validation to update.

", + "smithy.api#required": {} + } + }, + "PrevalidationOptions": { + "target": "com.amazonaws.acm#PrevalidationOptions", + "traits": { + "smithy.api#documentation": "

The updated prevalidation options.

" + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [] + } + }, + "com.amazonaws.acm#UpdateAcmeEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#UpdateAcmeEndpointRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#AccessDeniedException" + }, + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InternalServerException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ThrottlingException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the configuration of an existing ACME endpoint. You can change the authorization behavior, contact requirement, or certificate authority settings.

", + "smithy.api#idempotent": {}, + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM-ACME" + } + } + } + }, + "com.amazonaws.acm#UpdateAcmeEndpointRequest": { + "type": "structure", + "members": { + "AcmeEndpointArn": { + "target": "com.amazonaws.acm#AcmeEndpointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACME endpoint to update.

", + "smithy.api#required": {} + } + }, + "AuthorizationBehavior": { + "target": "com.amazonaws.acm#AcmeAuthorizationBehavior", + "traits": { + "smithy.api#documentation": "

The updated authorization behavior.

" + } + }, + "Contact": { + "target": "com.amazonaws.acm#AcmeContact", + "traits": { + "smithy.api#documentation": "

The updated contact requirement.

" + } + }, + "CertificateAuthority": { + "target": "com.amazonaws.acm#CertificateAuthority", + "traits": { + "smithy.api#documentation": "

The updated certificate authority configuration.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#UpdateCertificateOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.acm#UpdateCertificateOptionsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.acm#ConflictException" + }, + { + "target": "com.amazonaws.acm#InvalidArnException" + }, + { + "target": "com.amazonaws.acm#InvalidStateException" + }, + { + "target": "com.amazonaws.acm#LimitExceededException" + }, + { + "target": "com.amazonaws.acm#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.acm#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates certificate options. You can use this operation to change the domain validation method or specify whether to export your certificate. For more information, see Migrate from email to DNS validation and Certificate Manager Exportable Managed Certificates.

", + "smithy.rules#staticContextParams": { + "ServiceType": { + "value": "ACM" + } + } + } + }, + "com.amazonaws.acm#UpdateCertificateOptionsRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.acm#Arn", + "traits": { + "smithy.api#documentation": "

ARN of the requested certificate to update. This must be of the form:

arn:aws:acm:us-east-1:account:certificate/12345678-1234-1234-1234-123456789012

", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.acm#CertificateOptions", + "traits": { + "smithy.api#documentation": "

Use to update the options for your certificate. Currently, you can change the domain validation method or specify whether to export your certificate. For more information about migrating from email to DNS validation, see Migrate from email to DNS validation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.acm#UpdateStatus": { + "type": "enum", + "members": { + "PENDING_DOMAIN_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_DOMAIN_VALIDATION" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of a certificate update. Possible values:

  • PENDING_DOMAIN_VALIDATION – The update is waiting for domain validation to complete.

  • SUCCESS – The update completed successfully.

  • FAILED – The update failed.

" + } + }, + "com.amazonaws.acm#UpdateSummary": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.acm#UpdateStatus", + "traits": { + "smithy.api#documentation": "

The status of the certificate update. The following are valid values:

  • PENDING_DOMAIN_VALIDATION – The certificate update is waiting for domain ownership validation to complete.

  • SUCCESS – The certificate was updated successfully.

  • FAILED – The certificate update failed.

" + } + }, + "Type": { + "target": "com.amazonaws.acm#UpdateType", + "traits": { + "smithy.api#documentation": "

The type of update that was requested for the certificate. The following are valid values:

  • DOMAIN_VALIDATION_METHOD – The update changes the domain validation method for the certificate.

" + } + }, + "DomainValidationMethodUpdateSummary": { + "target": "com.amazonaws.acm#DomainValidationMethodUpdateSummary", + "traits": { + "smithy.api#documentation": "

Contains information about a domain validation method migration, including the previous and target validation methods.

" + } + }, + "RequestedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate update was requested.

" + } + }, + "UpdatedAt": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time at which the certificate update status was last changed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the most recent certificate update, such as a domain validation method migration. This structure is returned as part of the CertificateDetail response from DescribeCertificate.

" + } + }, + "com.amazonaws.acm#UpdateType": { + "type": "enum", + "members": { + "DOMAIN_VALIDATION_METHOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOMAIN_VALIDATION_METHOD" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type of certificate update. Valid values:

  • DOMAIN_VALIDATION_METHOD – A change to the domain validation method for the certificate.

" + } + }, + "com.amazonaws.acm#ValidationChallenge": { + "type": "union", + "members": { + "EmailValidationChallenge": { + "target": "com.amazonaws.acm#EmailValidationChallenge" + }, + "DnsValidationChallenge": { + "target": "com.amazonaws.acm#DnsValidationChallenge" + } + }, + "traits": { + "smithy.api#documentation": "

Contains the challenge details that you use to prove domain ownership. Only one member is set, depending on the validation method.

" + } + }, + "com.amazonaws.acm#ValidationConfiguration": { + "type": "structure", + "members": { + "ValidationMethod": { + "target": "com.amazonaws.acm#ValidationMethod", + "traits": { + "smithy.api#documentation": "

The validation method for this configuration. Valid values:

  • DNS – Validation using a CNAME record added to your DNS configuration.

  • EMAIL – Validation using an approval email sent to domain contacts.

  • HTTP – Validation using an HTTP resource placed on your web server.

" + } + }, + "ValidationChallenge": { + "target": "com.amazonaws.acm#ValidationChallenge", + "traits": { + "smithy.api#documentation": "

The validation challenge details for this configuration. The structure varies by validation method: for DNS validation, contains a DnsValidationChallenge with the CNAME record to add; for email validation, contains an EmailValidationChallenge with the validation email addresses.

" + } + }, + "ValidationStatus": { + "target": "com.amazonaws.acm#DomainStatus", + "traits": { + "smithy.api#documentation": "

The validation status for this domain. Valid values:

  • PENDING_VALIDATION – The domain is waiting for validation to complete.

  • SUCCESS – Validation completed successfully.

  • FAILED – Validation failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the validation method, validation status, and validation challenge details for a domain. This structure appears in DomainValidationSummary as both the active and requested validation configuration.

" + } + }, + "com.amazonaws.acm#ValidationEmailList": { + "type": "list", + "member": { + "target": "com.amazonaws.acm#String" + } + }, + "com.amazonaws.acm#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.acm#ValidationExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ValidationError", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The supplied input failed to satisfy constraints of an Amazon Web Services service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.acm#ValidationExceptionMessage": { + "type": "string" + }, + "com.amazonaws.acm#ValidationMethod": { + "type": "enum", + "members": { + "EMAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EMAIL" + } + }, + "DNS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DNS" + } + }, + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP" + } + } + } + }, + "com.amazonaws.acm#X509AttributeFilter": { + "type": "union", + "members": { + "Subject": { + "target": "com.amazonaws.acm#SubjectFilter", + "traits": { + "smithy.api#documentation": "

Filter by certificate subject.

" + } + }, + "SubjectAlternativeName": { + "target": "com.amazonaws.acm#SubjectAlternativeNameFilter", + "traits": { + "smithy.api#documentation": "

Filter by subject alternative names.

" + } + }, + "ExtendedKeyUsage": { + "target": "com.amazonaws.acm#ExtendedKeyUsageName", + "traits": { + "smithy.api#documentation": "

Filter by extended key usage.

" + } + }, + "KeyUsage": { + "target": "com.amazonaws.acm#KeyUsageName", + "traits": { + "smithy.api#documentation": "

Filter by key usage.

" + } + }, + "KeyAlgorithm": { + "target": "com.amazonaws.acm#KeyAlgorithm", + "traits": { + "smithy.api#documentation": "

Filter by key algorithm.

" + } + }, + "SerialNumber": { + "target": "com.amazonaws.acm#SerialNumber", + "traits": { + "smithy.api#documentation": "

Filter by serial number.

" + } + }, + "NotAfter": { + "target": "com.amazonaws.acm#TimestampRange", + "traits": { + "smithy.api#documentation": "

Filter by certificate expiration date. The start date is inclusive.

" + } + }, + "NotBefore": { + "target": "com.amazonaws.acm#TimestampRange", + "traits": { + "smithy.api#documentation": "

Filter by certificate validity start date. The start date is inclusive.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters certificates by X.509 attributes.

" + } + }, + "com.amazonaws.acm#X509Attributes": { + "type": "structure", + "members": { + "Issuer": { + "target": "com.amazonaws.acm#DistinguishedName", + "traits": { + "smithy.api#documentation": "

The distinguished name of the certificate issuer.

" + } + }, + "Subject": { + "target": "com.amazonaws.acm#DistinguishedName", + "traits": { + "smithy.api#documentation": "

The distinguished name of the certificate subject.

" + } + }, + "SubjectAlternativeNames": { + "target": "com.amazonaws.acm#GeneralNameList", + "traits": { + "smithy.api#documentation": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

" + } + }, + "ExtendedKeyUsages": { + "target": "com.amazonaws.acm#ExtendedKeyUsageNames", + "traits": { + "smithy.api#documentation": "

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + } + }, + "KeyAlgorithm": { + "target": "com.amazonaws.acm#KeyAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to generate the public-private key pair.

" + } + }, + "KeyUsages": { + "target": "com.amazonaws.acm#KeyUsageNames", + "traits": { + "smithy.api#documentation": "

A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.

" + } + }, + "SerialNumber": { + "target": "com.amazonaws.acm#SerialNumber", + "traits": { + "smithy.api#documentation": "

The serial number assigned by the certificate authority.

" + } + }, + "NotAfter": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time after which the certificate is not valid.

" + } + }, + "NotBefore": { + "target": "com.amazonaws.acm#TStamp", + "traits": { + "smithy.api#documentation": "

The time before which the certificate is not valid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains X.509 certificate attributes extracted from the certificate.

" + } + } + } +} diff --git a/codegen/aws-models/appconfigdata.json b/codegen/aws-models/appconfigdata.json new file mode 100644 index 00000000..81d2636b --- /dev/null +++ b/codegen/aws-models/appconfigdata.json @@ -0,0 +1,1559 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.appconfigdata#AppConfigData": { + "type": "service", + "version": "2021-11-11", + "operations": [ + { + "target": "com.amazonaws.appconfigdata#GetLatestConfiguration" + } + ], + "resources": [ + { + "target": "com.amazonaws.appconfigdata#ConfigurationSession" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "aws.api#service": { + "sdkId": "AppConfigData", + "arnNamespace": "appconfigdata", + "cloudFormationName": "AppConfigData", + "cloudTrailEventSource": "appconfigdata.amazonaws.com", + "endpointPrefix": "appconfigdata" + }, + "aws.auth#sigv4": { + "name": "appconfig" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

AppConfig Data provides the data plane APIs your application uses to retrieve\n configuration data. Here's how it works:

\n

Your application retrieves configuration data by first establishing a configuration\n session using the AppConfig Data StartConfigurationSession API action.\n Your session's client then makes periodic calls to GetLatestConfiguration\n to check for and retrieve the latest data available.

\n

When calling StartConfigurationSession, your code sends the following\n information:

\n
    \n
  • \n

    Identifiers (ID or name) of an AppConfig application, environment, and\n configuration profile that the session tracks.

    \n
  • \n
  • \n

    (Optional) The minimum amount of time the session's client must wait between calls\n to GetLatestConfiguration.

    \n
  • \n
\n

In response, AppConfig provides an InitialConfigurationToken to be given to\n the session's client and used the first time it calls GetLatestConfiguration\n for that session.

\n \n

This token should only be used once in your first call to\n GetLatestConfiguration. You must use the new token\n in the GetLatestConfiguration response\n (NextPollConfigurationToken) in each subsequent call to\n GetLatestConfiguration.

\n
\n

When calling GetLatestConfiguration, your client code sends the most recent\n ConfigurationToken value it has and receives in response:

\n
    \n
  • \n

    \n NextPollConfigurationToken: the ConfigurationToken value\n to use on the next call to GetLatestConfiguration.

    \n
  • \n
  • \n

    \n NextPollIntervalInSeconds: the duration the client should wait before\n making its next call to GetLatestConfiguration. This duration may vary\n over the course of the session, so it should be used instead of the value sent on the\n StartConfigurationSession call.

    \n
  • \n
  • \n

    The configuration: the latest data intended for the session. This may be empty if\n the client already has the latest version of the configuration.

    \n
  • \n
\n \n

The InitialConfigurationToken and\n NextPollConfigurationToken should only be used once. To support long poll\n use cases, the tokens are valid for up to 24 hours. If a\n GetLatestConfiguration call uses an expired token, the system returns\n BadRequestException.

\n
\n

For more information and to view example CLI commands that show how to retrieve a\n configuration using the AppConfig Data StartConfigurationSession and\n GetLatestConfiguration API actions, see Retrieving the\n configuration in the AppConfig User Guide.

", + "smithy.api#title": "AWS AppConfig Data", + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 14, + "nodes": "/////wAAAAH/////AAAAAAAAAA0AAAADAAAAAQAAAAQF9eEMAAAAAgAAAAUF9eEMAAAAAwAAAAgAAAAGAAAABAAAAAcF9eELAAAABQX14QkF9eEKAAAABAAAAAsAAAAJAAAABgAAAAoF9eEIAAAABwX14QYF9eEHAAAABQAAAAwF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAAOAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://appconfigdata.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{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://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-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://appconfigdata-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://appconfigdata.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-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://appconfigdata-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://appconfigdata.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-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://appconfigdata.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://appconfigdata.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-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 disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.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 disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-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 disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.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" + } + } + }, + "com.amazonaws.appconfigdata#BadRequestDetails": { + "type": "union", + "members": { + "InvalidParameters": { + "target": "com.amazonaws.appconfigdata#InvalidParameterMap", + "traits": { + "smithy.api#documentation": "

One or more specified parameters are not valid for the call.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information about the input that failed to satisfy the constraints specified by\n a call.

" + } + }, + "com.amazonaws.appconfigdata#BadRequestException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.appconfigdata#String" + }, + "Reason": { + "target": "com.amazonaws.appconfigdata#BadRequestReason", + "traits": { + "smithy.api#documentation": "

Code indicating the reason the request was invalid.

" + } + }, + "Details": { + "target": "com.amazonaws.appconfigdata#BadRequestDetails", + "traits": { + "smithy.api#documentation": "

Details describing why the request was invalid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by the service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.appconfigdata#BadRequestReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "InvalidParameters", + "name": "INVALID_PARAMETERS", + "documentation": "Indicates there was a problem with one or more of the parameters.\nSee InvalidParameters in the BadRequestDetails for more information." + } + ] + } + }, + "com.amazonaws.appconfigdata#ConfigurationSession": { + "type": "resource", + "identifiers": { + "SessionId": { + "target": "com.amazonaws.appconfigdata#Id" + } + }, + "create": { + "target": "com.amazonaws.appconfigdata#StartConfigurationSession" + } + }, + "com.amazonaws.appconfigdata#GetLatestConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.appconfigdata#GetLatestConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.appconfigdata#GetLatestConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appconfigdata#BadRequestException" + }, + { + "target": "com.amazonaws.appconfigdata#InternalServerException" + }, + { + "target": "com.amazonaws.appconfigdata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.appconfigdata#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the latest deployed configuration. This API may return empty configuration\n data if the client already has the latest version. For more information about this API\n action and to view example CLI commands that show how to use it with the StartConfigurationSession API action, see Retrieving the\n configuration in the AppConfig User Guide.

\n \n

Note the following important information.

\n
    \n
  • \n

    Each configuration token is only valid for one call to\n GetLatestConfiguration. The GetLatestConfiguration\n response includes a NextPollConfigurationToken that should always\n replace the token used for the just-completed call in preparation for the next\n one.

    \n
  • \n
  • \n

    \n GetLatestConfiguration is a priced call. For more information, see\n Pricing.

    \n
  • \n
\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/configuration", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.appconfigdata#GetLatestConfigurationRequest": { + "type": "structure", + "members": { + "ConfigurationToken": { + "target": "com.amazonaws.appconfigdata#Token", + "traits": { + "smithy.api#documentation": "

Token describing the current state of the configuration session. To obtain a token,\n first call the StartConfigurationSession API. Note that every call to\n GetLatestConfiguration will return a new ConfigurationToken\n (NextPollConfigurationToken in the response) and must\n be provided to subsequent GetLatestConfiguration API calls.

\n \n

This token should only be used once. To support long poll\n use cases, the token is valid for up to 24 hours. If a\n GetLatestConfiguration call uses an expired token, the system returns\n BadRequestException.

\n
", + "smithy.api#httpQuery": "configuration_token", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.appconfigdata#GetLatestConfigurationResponse": { + "type": "structure", + "members": { + "NextPollConfigurationToken": { + "target": "com.amazonaws.appconfigdata#Token", + "traits": { + "smithy.api#documentation": "

The latest token describing the current state of the configuration session. This\n must be provided to the next call to\n GetLatestConfiguration.\n

\n \n

This token should only be used once. To support long poll\n use cases, the token is valid for up to 24 hours. If a\n GetLatestConfiguration call uses an expired token, the system returns\n BadRequestException.

\n
", + "smithy.api#httpHeader": "Next-Poll-Configuration-Token" + } + }, + "NextPollIntervalInSeconds": { + "target": "com.amazonaws.appconfigdata#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The amount of time the client should wait before polling for configuration updates\n again. Use RequiredMinimumPollIntervalInSeconds to set the desired poll\n interval.

", + "smithy.api#httpHeader": "Next-Poll-Interval-In-Seconds" + } + }, + "ContentType": { + "target": "com.amazonaws.appconfigdata#String", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the configuration content.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "Configuration": { + "target": "com.amazonaws.appconfigdata#SensitiveBlob", + "traits": { + "smithy.api#documentation": "

The data of the configuration. This may be empty if the client already has the latest\n version of configuration.

", + "smithy.api#httpPayload": {} + } + }, + "VersionLabel": { + "target": "com.amazonaws.appconfigdata#String", + "traits": { + "smithy.api#documentation": "

The user-defined label for the AppConfig hosted configuration version. This attribute doesn't apply if the configuration is not from an AppConfig hosted configuration version. If the client already has the latest version of the configuration data, this value is empty.

", + "smithy.api#httpHeader": "Version-Label" + } + } + } + }, + "com.amazonaws.appconfigdata#Id": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]{7}$" + } + }, + "com.amazonaws.appconfigdata#Identifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.appconfigdata#Integer": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.appconfigdata#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.appconfigdata#String" + } + }, + "traits": { + "smithy.api#documentation": "

There was an internal failure in the service.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.appconfigdata#InvalidParameterDetail": { + "type": "structure", + "members": { + "Problem": { + "target": "com.amazonaws.appconfigdata#InvalidParameterProblem", + "traits": { + "smithy.api#documentation": "

The reason the parameter is invalid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an invalid parameter.

" + } + }, + "com.amazonaws.appconfigdata#InvalidParameterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.appconfigdata#String" + }, + "value": { + "target": "com.amazonaws.appconfigdata#InvalidParameterDetail" + } + }, + "com.amazonaws.appconfigdata#InvalidParameterProblem": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Corrupted", + "name": "CORRUPTED", + "documentation": "The parameter was corrupted and could not be understood by the service." + }, + { + "value": "Expired", + "name": "EXPIRED", + "documentation": "The parameter was expired and can no longer be used." + }, + { + "value": "PollIntervalNotSatisfied", + "name": "POLL_INTERVAL_NOT_SATISFIED", + "documentation": "The client called the service before the time specified in the poll interval." + } + ] + } + }, + "com.amazonaws.appconfigdata#OptionalPollSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 15, + "max": 86400 + } + } + }, + "com.amazonaws.appconfigdata#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.appconfigdata#String" + }, + "ResourceType": { + "target": "com.amazonaws.appconfigdata#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource that was not found.

" + } + }, + "ReferencedBy": { + "target": "com.amazonaws.appconfigdata#StringMap", + "traits": { + "smithy.api#documentation": "

A map indicating which parameters in the request reference the resource that was not\n found.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requested resource could not be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.appconfigdata#ResourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Application", + "name": "APPLICATION", + "documentation": "Resource type value for the Application resource." + }, + { + "value": "ConfigurationProfile", + "name": "CONFIGURATION_PROFILE", + "documentation": "Resource type value for the ConfigurationProfile resource." + }, + { + "value": "Deployment", + "name": "DEPLOYMENT", + "documentation": "Resource type value for the Deployment resource." + }, + { + "value": "Environment", + "name": "ENVIRONMENT", + "documentation": "Resource type value for the Environment resource." + }, + { + "value": "Configuration", + "name": "CONFIGURATION", + "documentation": "Resource type value for the Configuration resource." + } + ] + } + }, + "com.amazonaws.appconfigdata#SensitiveBlob": { + "type": "blob", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.appconfigdata#StartConfigurationSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.appconfigdata#StartConfigurationSessionRequest" + }, + "output": { + "target": "com.amazonaws.appconfigdata#StartConfigurationSessionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appconfigdata#BadRequestException" + }, + { + "target": "com.amazonaws.appconfigdata#InternalServerException" + }, + { + "target": "com.amazonaws.appconfigdata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.appconfigdata#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts a configuration session used to retrieve a deployed configuration. For more\n information about this API action and to view example CLI commands that show how to use\n it with the GetLatestConfiguration API action, see Retrieving the\n configuration in the AppConfig User Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/configurationsessions", + "code": 201 + } + } + }, + "com.amazonaws.appconfigdata#StartConfigurationSessionRequest": { + "type": "structure", + "members": { + "ApplicationIdentifier": { + "target": "com.amazonaws.appconfigdata#Identifier", + "traits": { + "smithy.api#documentation": "

The application ID or the application name.

", + "smithy.api#required": {} + } + }, + "EnvironmentIdentifier": { + "target": "com.amazonaws.appconfigdata#Identifier", + "traits": { + "smithy.api#documentation": "

The environment ID or the environment name.

", + "smithy.api#required": {} + } + }, + "ConfigurationProfileIdentifier": { + "target": "com.amazonaws.appconfigdata#Identifier", + "traits": { + "smithy.api#documentation": "

The configuration profile ID or the configuration profile name.

", + "smithy.api#required": {} + } + }, + "RequiredMinimumPollIntervalInSeconds": { + "target": "com.amazonaws.appconfigdata#OptionalPollSeconds", + "traits": { + "smithy.api#documentation": "

Sets a constraint on a session. If you specify a value of, for example, 60 seconds, then\n the client that established the session can't call GetLatestConfiguration\n more frequently than every 60 seconds.

" + } + } + } + }, + "com.amazonaws.appconfigdata#StartConfigurationSessionResponse": { + "type": "structure", + "members": { + "InitialConfigurationToken": { + "target": "com.amazonaws.appconfigdata#Token", + "traits": { + "smithy.api#documentation": "

Token encapsulating state about the configuration session. Provide this token to the\n GetLatestConfiguration API to retrieve configuration data.

\n \n

This token should only be used once in your first call to\n GetLatestConfiguration. You must use the new token\n in the GetLatestConfiguration response\n (NextPollConfigurationToken) in each subsequent call to\n GetLatestConfiguration.

\n

The InitialConfigurationToken and\n NextPollConfigurationToken should only be used once. To support long poll\n use cases, the tokens are valid for up to 24 hours. If a\n GetLatestConfiguration call uses an expired token, the system returns\n BadRequestException.

\n
" + } + } + } + }, + "com.amazonaws.appconfigdata#String": { + "type": "string" + }, + "com.amazonaws.appconfigdata#StringMap": { + "type": "map", + "key": { + "target": "com.amazonaws.appconfigdata#String" + }, + "value": { + "target": "com.amazonaws.appconfigdata#String" + } + }, + "com.amazonaws.appconfigdata#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.appconfigdata#String" + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied due to request throttling.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.appconfigdata#Token": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\S{1,8192}$" + } + } + } +} diff --git a/codegen/aws-models/bedrock-agent-runtime.json b/codegen/aws-models/bedrock-agent-runtime.json index 9028c0d9..d6702a27 100644 --- a/codegen/aws-models/bedrock-agent-runtime.json +++ b/codegen/aws-models/bedrock-agent-runtime.json @@ -541,6 +541,12 @@ "traits": { "smithy.api#documentation": "

The details of a long-term memory retrieval that the agent chose to perform.

" } + }, + "codeExecution": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDetails", + "traits": { + "smithy.api#documentation": "

The details of code that the agent chose to run.

" + } } }, "traits": { @@ -581,6 +587,27 @@ "smithy.api#documentation": "

List of actions taken during an agentic retrieval step.

" } }, + "com.amazonaws.bedrockagentruntime#AgenticRetrieveAppliedInstruction": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction applied.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalInstructionVersion", + "traits": { + "smithy.api#documentation": "

The version that was applied: a version number, or DRAFT. The service reports this version whenever it reports appliedInstruction, including DRAFT when the request did not specify a version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The retrieval instruction, identified by its ID and version, that was applied to the request.

" + } + }, "com.amazonaws.bedrockagentruntime#AgenticRetrieveBedrockGuardrailConfiguration": { "type": "structure", "members": { @@ -704,6 +731,52 @@ "smithy.api#documentation": "

List of citation references.

" } }, + "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDetails": { + "type": "structure", + "members": { + "documents": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDocumentList", + "traits": { + "smithy.api#documentation": "

The documents that the code reads. This field is present when the code reads documents.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of code that the agent chose to run in an isolated sandbox. The record includes the documents that the code reads. The corresponding CodeExecution step reports the outcome.

" + } + }, + "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDocument": { + "type": "structure", + "members": { + "documentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The identifier of the document.

" + } + }, + "sourceRetriever": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveSourceRetriever", + "traits": { + "smithy.api#documentation": "

The source retriever associated with the document.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A document that a code execution action reads.

" + } + }, + "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDocumentList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveCodeExecutionDocument", + "traits": { + "smithy.api#documentation": "

A document read by the code.

" + } + }, + "traits": { + "smithy.api#documentation": "

The documents read by a code execution action.

" + } + }, "com.amazonaws.bedrockagentruntime#AgenticRetrieveConfiguration": { "type": "structure", "members": { @@ -853,6 +926,27 @@ "smithy.api#documentation": "

A warning generated by a guardrail during agentic retrieval.

" } }, + "com.amazonaws.bedrockagentruntime#AgenticRetrieveInstructionConfiguration": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction. The instruction must exist in the caller's account and its status must be ACTIVE.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrockagentruntime#RetrievalInstructionVersion", + "traits": { + "smithy.api#documentation": "

The version of the retrieval instruction to apply: a version number, or DRAFT for the instruction's current reviewed content. When omitted, DRAFT is used. This default is permanent.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The retrieval instruction, identified by its ID and optional version, to apply to this request.

" + } + }, "com.amazonaws.bedrockagentruntime#AgenticRetrieveMemoryConfiguration": { "type": "structure", "members": { @@ -1586,6 +1680,13 @@ "smithy.api#documentation": "

The phase that restores prior session history from AgentCore Memory short-term memory, before the agent begins work.

", "smithy.api#enumValue": "SessionHistoryLoad" } + }, + "CODE_EXECUTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The phase that runs agent-generated code in an isolated sandbox. The code can read documents retrieved earlier in the same request.

", + "smithy.api#enumValue": "CodeExecution" + } } }, "traits": { @@ -1692,6 +1793,12 @@ "smithy.api#documentation": "

The configuration for using an Amazon Bedrock AgentCore Memory resource with this retrieval.

" } }, + "retrievalInstructionConfiguration": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveInstructionConfiguration", + "traits": { + "smithy.api#documentation": "

A retrieval instruction to apply to this request.

" + } + }, "generateResponse": { "target": "smithy.api#Boolean", "traits": { @@ -1893,6 +2000,12 @@ "traits": { "smithy.api#documentation": "

The retrieval results from this step.

" } + }, + "appliedInstruction": { + "target": "com.amazonaws.bedrockagentruntime#AgenticRetrieveAppliedInstruction", + "traits": { + "smithy.api#documentation": "

The agent reports the retrieval instruction applied to this request on the first planning step.

" + } } }, "traits": { @@ -7024,7 +7137,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the content of an ingested document from a knowledge base. Returns a pre-signed URL for secure document access.

", + "smithy.api#documentation": "

Retrieves the content of an ingested document from a knowledge base, or of an image embedded in the document. Returns a pre-signed URL for downloading the content. Use this operation to display the source of a Retrieve result.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -7060,10 +7173,16 @@ "smithy.api#required": {} } }, + "mediaId": { + "target": "com.amazonaws.bedrockagentruntime#MediaId", + "traits": { + "smithy.api#documentation": "

The unique identifier (in UUID format) of an image embedded in the specified document. Set this parameter to the _media_id value in the metadata of the corresponding Retrieve result. If you specify this parameter, the response contains a pre-signed URL for the image instead of the document, and you must omit outputFormat or set it to RAW.

" + } + }, "outputFormat": { "target": "com.amazonaws.bedrockagentruntime#DocumentOutputFormat", "traits": { - "smithy.api#documentation": "

The output format for the document content. RAW returns the original file. EXTRACTED returns parsed text as JSON. Defaults to RAW.

" + "smithy.api#documentation": "

The output format for the content. You can specify one of the following values:

RAW

Returns the original document, or the selected image if you specify mediaId.

EXTRACTED

Returns parsed document text as JSON.

If you omit this parameter, the default is RAW. You can't use EXTRACTED with mediaId.

" } }, "userContext": { @@ -7091,21 +7210,21 @@ "mimeType": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The MIME type of the document content. For RAW format, this is the original file type (for example, application/pdf). For EXTRACTED format, this is always application/json.

", + "smithy.api#documentation": "

The MIME type of the returned content. For RAW format, this is the original file type (for example, application/pdf), or the image type (for example, image/png) if you specify mediaId. For EXTRACTED format, this is always application/json.

", "smithy.api#required": {} } }, "presignedUrl": { "target": "com.amazonaws.bedrockagentruntime#PresignedUrl", "traits": { - "smithy.api#documentation": "

A pre-signed URL for downloading the document content. The URL expires after 5 minutes.

", + "smithy.api#documentation": "

A pre-signed URL for downloading the document content, or the selected image if you specify mediaId. The URL expires after 5 minutes.

", "smithy.api#required": {} } }, "documentContentLength": { "target": "smithy.api#Long", "traits": { - "smithy.api#documentation": "

The size of the document content in bytes available at the pre-signed URL.

" + "smithy.api#documentation": "

The size, in bytes, of the content available at the pre-signed URL.

" } } }, @@ -11066,6 +11185,17 @@ } } }, + "com.amazonaws.bedrockagentruntime#MediaId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The unique identifier of an image embedded in a document.

", + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$" + } + }, "com.amazonaws.bedrockagentruntime#Memories": { "type": "list", "member": { @@ -13962,6 +14092,28 @@ } } }, + "com.amazonaws.bedrockagentruntime#RetrievalInstructionId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The identifier of a retrieval instruction resource.

", + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-z0-9]+$" + } + }, + "com.amazonaws.bedrockagentruntime#RetrievalInstructionVersion": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A retrieval instruction version selector: a version number, or DRAFT.

", + "smithy.api#length": { + "min": 1, + "max": 9 + }, + "smithy.api#pattern": "^(DRAFT|[1-9][0-9]{0,8})$" + } + }, "com.amazonaws.bedrockagentruntime#RetrievalOverrides": { "type": "structure", "members": { @@ -16724,4 +16876,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/bedrock-agent.json b/codegen/aws-models/bedrock-agent.json index 82c19114..91d09312 100644 --- a/codegen/aws-models/bedrock-agent.json +++ b/codegen/aws-models/bedrock-agent.json @@ -1594,6 +1594,9 @@ { "target": "com.amazonaws.bedrockagent#PromptResource" }, + { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionResource" + }, { "target": "com.amazonaws.bedrockagent#TaggingResource" }, @@ -1611,6 +1614,30 @@ "aws.auth#sigv4": { "name": "bedrock" }, + "aws.iam#defineConditionKeys": { + "aws:TagKeys": { + "type": "ArrayOfString", + "documentation": "Filters access by creating requests based on the presence of mandatory tags in the request", + "externalDocumentation": "https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-globally-available" + }, + "aws:RequestTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by creating requests based on the allowed set of values for each of the mandatory tags", + "externalDocumentation": "https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-globally-available" + }, + "aws:ResourceTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by having actions based on the tag value associated with the resource", + "externalDocumentation": "https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-globally-available" + } + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], "aws.protocols#restJson1": {}, "smithy.api#cors": { "additionalAllowedHeaders": [ @@ -4827,6 +4854,278 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrockagent#CreateRetrievalInstruction": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstructionRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstructionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:RequestTag/${TagKey}", + "aws:TagKeys" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to create a retrieval instruction" + }, + "smithy.api#documentation": "

Creates a new retrieval instruction. The retrieval instruction is usable once its status becomes ACTIVE. Use GetRetrievalInstruction to check whether it is ready.

", + "smithy.api#http": { + "code": 202, + "method": "POST", + "uri": "/retrievalinstructions/" + }, + "smithy.api#idempotent": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#CreateRetrievalInstructionRequest": { + "type": "structure", + "members": { + "clientToken": { + "target": "com.amazonaws.bedrockagent#ClientToken", + "traits": { + "smithy.api#documentation": "

A caller-supplied token that makes a retried create return the existing resource rather than a second one. The window is 8 hours.

", + "smithy.api#idempotencyToken": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionName", + "traits": { + "smithy.api#documentation": "

Specifies the name of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "instruction": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionContent", + "traits": { + "aws.cloudformation#cfnMutability": "write", + "smithy.api#documentation": "

The instruction content, as a set of named fields. Get does not return this field until the create review passes.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

Specifies a description of the retrieval instruction.

" + } + }, + "customerEncryptionKeyArn": { + "target": "com.amazonaws.bedrockagent#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a customer managed AWS Key Management Service (AWS KMS) key used to encrypt the instruction content at rest. If you omit it, the service uses an AWS owned key. You fix the key at create and cannot change it later.

" + } + }, + "tags": { + "target": "com.amazonaws.bedrockagent#TagsMap", + "traits": { + "aws.cloudformation#cfnMutability": "full", + "smithy.api#documentation": "

Tags for the retrieval instruction.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#CreateRetrievalInstructionResponse": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the newly created retrieval instruction.

", + "smithy.api#required": {} + } + }, + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", + "traits": { + "smithy.api#documentation": "

The ARN of the newly created retrieval instruction.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionName", + "traits": { + "smithy.api#documentation": "

The name of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionStatus", + "traits": { + "smithy.api#documentation": "

Always INACTIVE on this response. The content review has not run when this call returns, so the resource is not yet usable.

", + "smithy.api#required": {} + } + }, + "lastTransitionStatus": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionLastTransitionStatus", + "traits": { + "smithy.api#documentation": "

Always CREATING on this response. Poll GetRetrievalInstruction until this member is neither CREATING nor UPDATING, then read the outcome from it.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When you created the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When the retrieval instruction was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagent#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create a version of a retrieval instruction" + }, + "smithy.api#documentation": "

Creates an immutable numbered version from the retrieval instruction's current reviewed content. The service creates the version synchronously.

The service numbers versions from 1 and assigns them in order, never reusing a number.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/retrievalinstructions/{retrievalInstructionId}/versions" + }, + "smithy.api#idempotent": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionRequest": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction to version.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

A description of this version. Independent of the retrieval instruction's own description.

" + } + }, + "clientToken": { + "target": "com.amazonaws.bedrockagent#ClientToken", + "traits": { + "smithy.api#documentation": "

A caller-supplied token that makes a retried call return the version created by the first call rather than a second version. The window is 8 hours.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersionResponse": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", + "traits": { + "smithy.api#documentation": "

The ARN of the retrieval instruction. Versions do not have their own ARN.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion", + "traits": { + "smithy.api#documentation": "

The number of the version created. Versions are numbered from 1 and allocated monotonically; a number is never reused, even after the version is deleted.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When this version was created.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

The description of this version, when one was supplied.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrockagent#CreateVpcConfiguration": { "type": "operation", "input": { @@ -6675,13 +6974,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.bedrockagent#DeleteVpcConfiguration": { + "com.amazonaws.bedrockagent#DeleteRetrievalInstruction": { "type": "operation", "input": { - "target": "com.amazonaws.bedrockagent#DeleteVpcConfigurationRequest" + "target": "com.amazonaws.bedrockagent#DeleteRetrievalInstructionRequest" }, "output": { - "target": "com.amazonaws.bedrockagent#DeleteVpcConfigurationResponse" + "target": "com.amazonaws.bedrockagent#DeleteRetrievalInstructionResponse" }, "errors": [ { @@ -6704,11 +7003,14 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a VPC configuration. This operation is asynchronous: it returns status DELETING. Poll GetVpcConfiguration until it returns a ResourceNotFoundException, indicating the configuration is deleted. Delete requests are idempotent and safe to retry.

", + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a retrieval instruction" + }, + "smithy.api#documentation": "

Deletes a retrieval instruction or a single version of it. Omit retrievalInstructionVersion to delete the retrieval instruction itself; the service rejects that request with ConflictException while the retrieval instruction has versions or while lastTransitionStatus is CREATING or UPDATING. Specify retrievalInstructionVersion to delete only that version; the retrieval instruction and its other versions are unaffected.

", "smithy.api#http": { - "code": 202, + "code": 200, "method": "DELETE", - "uri": "/knowledgebases/{knowledgeBaseId}/vpcconfigurations/{vpcConfigurationId}" + "uri": "/retrievalinstructions/{retrievalInstructionId}" }, "smithy.api#idempotent": {}, "smithy.api#tags": [ @@ -6716,23 +7018,22 @@ ] } }, - "com.amazonaws.bedrockagent#DeleteVpcConfigurationRequest": { + "com.amazonaws.bedrockagent#DeleteRetrievalInstructionRequest": { "type": "structure", "members": { - "knowledgeBaseId": { - "target": "com.amazonaws.bedrockagent#Id", + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", "traits": { - "smithy.api#documentation": "

The unique identifier of the knowledge base that owns the VPC configuration.

", + "smithy.api#documentation": "

The identifier of the retrieval instruction to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "vpcConfigurationId": { - "target": "com.amazonaws.bedrockagent#VpcConfigurationId", + "retrievalInstructionVersion": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion", "traits": { - "smithy.api#documentation": "

The unique identifier of the VPC configuration to delete.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

The version to delete. Omit this field to delete the retrieval instruction itself, which you can do only when it has no versions; while any version exists the service rejects the request with ConflictException. You cannot delete DRAFT on its own; deleting the retrieval instruction removes it.

", + "smithy.api#httpQuery": "retrievalInstructionVersion" } } }, @@ -6740,44 +7041,137 @@ "smithy.api#input": {} } }, - "com.amazonaws.bedrockagent#DeleteVpcConfigurationResponse": { + "com.amazonaws.bedrockagent#DeleteRetrievalInstructionResponse": { "type": "structure", "members": { - "vpcConfigurationId": { - "target": "com.amazonaws.bedrockagent#VpcConfigurationId", + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", "traits": { - "smithy.api#documentation": "

The unique identifier of the VPC configuration being deleted.

", + "smithy.api#documentation": "

The identifier of the deleted retrieval instruction.

", "smithy.api#required": {} } }, - "status": { - "target": "com.amazonaws.bedrockagent#VpcConfigurationStatus", + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", "traits": { - "smithy.api#documentation": "

The current status of the VPC configuration. Immediately after a delete request this is DELETING.

", + "smithy.api#documentation": "

The ARN of the retrieval instruction.

", "smithy.api#required": {} } + }, + "version": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion", + "traits": { + "smithy.api#documentation": "

The version that you deleted. Absent when you deleted the whole retrieval instruction.

" + } } }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.bedrockagent#DeletionProtectionConfiguration": { - "type": "structure", - "members": { - "deletionProtectionStatus": { - "target": "com.amazonaws.bedrockagent#EnabledOrDisabledState", - "traits": { - "smithy.api#documentation": "

Enable or disable deletion protection for the connector.

", - "smithy.api#required": {} - } - }, - "deletionProtectionThreshold": { - "target": "smithy.api#Integer", - "traits": { - "smithy.api#default": 15, - "smithy.api#documentation": "

The threshold is the maximum percentage of documents that a sync job can delete from your index. If a sync would delete more than this percentage, the sync skips its delete phase, leaving your indexed documents in place. Not supported for the Custom connector.

", - "smithy.api#range": { + "com.amazonaws.bedrockagent#DeleteVpcConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#DeleteVpcConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#DeleteVpcConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a VPC configuration. This operation is asynchronous: it returns status DELETING. Poll GetVpcConfiguration until it returns a ResourceNotFoundException, indicating the configuration is deleted. Delete requests are idempotent and safe to retry.

", + "smithy.api#http": { + "code": 202, + "method": "DELETE", + "uri": "/knowledgebases/{knowledgeBaseId}/vpcconfigurations/{vpcConfigurationId}" + }, + "smithy.api#idempotent": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#DeleteVpcConfigurationRequest": { + "type": "structure", + "members": { + "knowledgeBaseId": { + "target": "com.amazonaws.bedrockagent#Id", + "traits": { + "smithy.api#documentation": "

The unique identifier of the knowledge base that owns the VPC configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "vpcConfigurationId": { + "target": "com.amazonaws.bedrockagent#VpcConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the VPC configuration to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#DeleteVpcConfigurationResponse": { + "type": "structure", + "members": { + "vpcConfigurationId": { + "target": "com.amazonaws.bedrockagent#VpcConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the VPC configuration being deleted.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockagent#VpcConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the VPC configuration. Immediately after a delete request this is DELETING.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockagent#DeletionProtectionConfiguration": { + "type": "structure", + "members": { + "deletionProtectionStatus": { + "target": "com.amazonaws.bedrockagent#EnabledOrDisabledState", + "traits": { + "smithy.api#documentation": "

Enable or disable deletion protection for the connector.

", + "smithy.api#required": {} + } + }, + "deletionProtectionThreshold": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": 15, + "smithy.api#documentation": "

The threshold is the maximum percentage of documents that a sync job can delete from your index. If a sync would delete more than this percentage, the sync skips its delete phase, leaving your indexed documents in place. Not supported for the Custom connector.

", + "smithy.api#range": { "min": 0, "max": 100 } @@ -7419,6 +7813,26 @@ "smithy.api#pattern": "^.*$" } }, + "com.amazonaws.bedrockagent#FieldType": { + "type": "enum", + "members": { + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRING" + } + }, + "STRING_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRING_LIST" + } + } + }, + "traits": { + "smithy.api#documentation": "

The data type of a custom metadata field. Valid values:

  • STRING – The field holds a single string value.

  • STRING_LIST – The field holds a list of string values.

" + } + }, "com.amazonaws.bedrockagent#FieldsForReranking": { "type": "list", "member": { @@ -10616,6 +11030,163 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrockagent#GetRetrievalInstruction": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#GetRetrievalInstructionRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#GetRetrievalInstructionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve a retrieval instruction" + }, + "smithy.api#documentation": "

Gets a retrieval instruction. Also used to poll the terminal reporting of an asynchronous create or update.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/retrievalinstructions/{retrievalInstructionId}" + }, + "smithy.api#readonly": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#GetRetrievalInstructionRequest": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction to get.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "retrievalInstructionVersion": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionVersionSelector", + "traits": { + "smithy.api#documentation": "

The version to return: a version number, or DRAFT for the retrieval instruction's current reviewed content. When omitted, DRAFT is used. This default is permanent: omitting retrievalInstructionVersion will never resolve to a numbered version.

", + "smithy.api#httpQuery": "retrievalInstructionVersion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#GetRetrievalInstructionResponse": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", + "traits": { + "smithy.api#documentation": "

The ARN of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionName", + "traits": { + "smithy.api#documentation": "

The name of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether you can use the instruction. You can resolve only an ACTIVE instruction at retrieval time. Monotone: INACTIVE to ACTIVE once, never back. Numbered versions are always ACTIVE.

", + "smithy.api#required": {} + } + }, + "lastTransitionStatus": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionLastTransitionStatus", + "traits": { + "smithy.api#documentation": "

The outcome or in-progress state of the most recent create or update. CREATING or UPDATING means the operation is still running. Independent of status. Always has a value from the create 202 onward. On a numbered version this is always CREATE_SUCCESSFUL: a version is created once, from reviewed content, and is immutable.

", + "smithy.api#required": {} + } + }, + "instruction": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionContent", + "traits": { + "smithy.api#documentation": "

The reviewed content this instruction serves — what AgenticRetrieveStream resolves while status is ACTIVE. Absent until the first create review passes. Always present on a numbered version.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When the retrieval instruction was created. On a numbered version, when that version was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When the retrieval instruction was last updated. Equal to createdAt on a numbered version, which is immutable.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

A description of the retrieval instruction. On a numbered version, the description of that version.

" + } + }, + "customerEncryptionKeyArn": { + "target": "com.amazonaws.bedrockagent#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the customer managed KMS key protecting this content, when one was supplied at create.

" + } + }, + "lastTransitionStatusReasons": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFailureReasons", + "traits": { + "smithy.api#documentation": "

Why the most recent create or update was rejected. One entry for each rejected field, or a single entry when the review itself failed. Each entry has a machine-readable code and a message, and names the field when it applies to one. The service includes this field only when lastTransitionStatus is CREATE_FAILED or UPDATE_FAILED. Never present on a numbered version.

" + } + }, + "version": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionVersionSelector", + "traits": { + "smithy.api#documentation": "

The version this response describes: a version number, or DRAFT.

" + } + }, + "latestVersion": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion", + "traits": { + "smithy.api#documentation": "

The largest version number that currently exists for this retrieval instruction, that is, the newest version you can retrieve. Present only on a DRAFT read, and only when at least one version exists. Because version numbers are never reused, deleting versions can leave gaps: this is the newest existing version, not a count and not the highest number ever created.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrockagent#GetVpcConfiguration": { "type": "operation", "input": { @@ -11731,6 +12302,12 @@ "traits": { "smithy.api#documentation": "

A list of reasons that the API operation on the knowledge base failed.

" } + }, + "metadataConfigurations": { + "target": "com.amazonaws.bedrockagent#MetadataConfigurations", + "traits": { + "smithy.api#documentation": "

The custom metadata field configurations of the knowledge base. Each configuration specifies whether its field is searchable (ENABLED or DISABLED).

If the update fails, the knowledge base status becomes UPDATE_UNSUCCESSFUL, the field configurations revert to their previous values, and failureReasons describes the cause. You can retry the update from UPDATE_UNSUCCESSFUL.

" + } } }, "traits": { @@ -13652,13 +14229,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.bedrockagent#ListTagsForResource": { + "com.amazonaws.bedrockagent#ListRetrievalInstructionVersions": { "type": "operation", "input": { - "target": "com.amazonaws.bedrockagent#ListTagsForResourceRequest" + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsRequest" }, "output": { - "target": "com.amazonaws.bedrockagent#ListTagsForResourceResponse" + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsResponse" }, "errors": [ { @@ -13678,20 +14255,212 @@ } ], "traits": { - "smithy.api#documentation": "

List all the tags for the resource you specify.

", + "aws.iam#iamAction": { + "documentation": "Grants permission to list the versions of a retrieval instruction" + }, + "smithy.api#documentation": "

Lists the numbered versions of a retrieval instruction, newest first. DRAFT is not listed; read it with GetRetrievalInstruction without retrievalInstructionVersion. Results are paginated. Use the nextToken parameter to retrieve additional results.

", "smithy.api#http": { "code": 200, "method": "GET", - "uri": "/tags/{resourceArn}" + "uri": "/retrievalinstructions/{retrievalInstructionId}/versions" }, - "smithy.api#readonly": {} + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "retrievalInstructionVersionSummaries" + }, + "smithy.api#readonly": {}, + "smithy.api#tags": [ + "console" + ] } }, - "com.amazonaws.bedrockagent#ListTagsForResourceRequest": { + "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsRequest": { "type": "structure", "members": { - "resourceArn": { - "target": "com.amazonaws.bedrockagent#TaggableResourcesArn", + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction whose versions to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionMaxResults", + "traits": { + "smithy.api#documentation": "

Specifies the maximum number of versions to return in a single page. The service enforces the effective upper bound.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockagent#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token from a previous ListRetrievalInstructionVersions response.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#ListRetrievalInstructionVersionsResponse": { + "type": "structure", + "members": { + "retrievalInstructionVersionSummaries": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionVersionSummaries", + "traits": { + "smithy.api#documentation": "

The version summaries in this page, newest first.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockagent#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token to pass to the next ListRetrievalInstructionVersions call, absent on the last page.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockagent#ListRetrievalInstructions": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructionsRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list retrieval instructions" + }, + "smithy.api#documentation": "

Lists the retrieval instructions in the caller's account. Results are paginated. Use the nextToken parameter to retrieve additional results.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/retrievalinstructions/" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "retrievalInstructionSummaries" + }, + "smithy.api#readonly": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#ListRetrievalInstructionsRequest": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionStatus", + "traits": { + "smithy.api#documentation": "

Return only instructions with this availability status.

", + "smithy.api#httpQuery": "status" + } + }, + "maxResults": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single page. The effective upper bound is enforced service-side.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockagent#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token from a previous ListRetrievalInstructions response.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#ListRetrievalInstructionsResponse": { + "type": "structure", + "members": { + "retrievalInstructionSummaries": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionSummaries", + "traits": { + "smithy.api#documentation": "

The retrieval instruction summaries in this page.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bedrockagent#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token to pass to the next ListRetrievalInstructions call, absent on the last page.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrockagent#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

List all the tags for the resource you specify.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/tags/{resourceArn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrockagent#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.bedrockagent#TaggableResourcesArn", "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource for which to list tags.

", "smithy.api#httpLabel": {}, @@ -14217,6 +14986,35 @@ "target": "com.amazonaws.bedrockagent#MetadataAttribute" } }, + "com.amazonaws.bedrockagent#MetadataConfiguration": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockagent#MetadataKeyName", + "traits": { + "smithy.api#documentation": "

The name of the custom metadata field.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.bedrockagent#FieldType", + "traits": { + "smithy.api#documentation": "

The data type of the custom metadata field. Valid values are STRING and STRING_LIST.

", + "smithy.api#required": {} + } + }, + "searchability": { + "target": "com.amazonaws.bedrockagent#SearchableStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the custom metadata field is searchable. Valid values:

  • ENABLED – The field is searchable.

  • DISABLED – The field is not searchable.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the configuration of a single custom metadata field in a knowledge base, including its name, data type, and whether the field is searchable.

" + } + }, "com.amazonaws.bedrockagent#MetadataConfigurationForReranking": { "type": "structure", "members": { @@ -14238,6 +15036,30 @@ "smithy.api#documentation": "

Specifies how metadata fields should be handled during the reranking process.

" } }, + "com.amazonaws.bedrockagent#MetadataConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#MetadataConfiguration" + }, + "traits": { + "smithy.api#documentation": "

A list of up to 30 custom metadata field configurations.

", + "smithy.api#length": { + "max": 30 + } + } + }, + "com.amazonaws.bedrockagent#MetadataKeyName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of a custom metadata field.

", + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_-]*$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagent#MetadataSourceType": { "type": "enum", "members": { @@ -17092,71 +17914,490 @@ "smithy.api#documentation": "

Contains configurations for the service to use for retrieving data to return as the output from the node.

" } }, - "com.amazonaws.bedrockagent#RevisionId": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 255 - } - } - }, - "com.amazonaws.bedrockagent#S3BucketArn": { + "com.amazonaws.bedrockagent#RetrievalInstructionArn": { "type": "string", "traits": { - "smithy.api#length": { - "min": 1, - "max": 2048 + "aws.api#arnReference": { + "type": "AWS::Bedrock::RetrievalInstruction", + "resource": "com.amazonaws.bedrockagent#RetrievalInstructionResource" }, - "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):s3:::[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$" + "smithy.api#documentation": "

Arn representation of the RetrievalInstruction.

", + "smithy.api#pattern": "^arn:aws(-cn|-us-gov|-eusc|-iso(-[b-f])?)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:retrieval-instruction/[a-z0-9]{10}$" } }, - "com.amazonaws.bedrockagent#S3BucketName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 3, - "max": 63 + "com.amazonaws.bedrockagent#RetrievalInstructionContent": { + "type": "structure", + "members": { + "retrievalGuidance": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFieldText", + "traits": { + "smithy.api#documentation": "

How to interpret and decompose the question, and what to prioritise when searching.

" + } }, - "smithy.api#pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$" + "persona": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFieldText", + "traits": { + "smithy.api#documentation": "

Who the assistant is: identity, tone and language.

" + } + }, + "answerFormat": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFieldText", + "traits": { + "smithy.api#documentation": "

How the answer is structured, including how sources are cited.

" + } + }, + "answerPolicy": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFieldText", + "traits": { + "smithy.api#documentation": "

Whether and how to answer: how strongly an answer must be supported, and what to do with questions outside scope.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The instruction content, as a set of named fields. Every field is optional; at least one must be present. Service-side validation enforces per-field and aggregate size limits.

", + "smithy.api#sensitive": {} } }, - "com.amazonaws.bedrockagent#S3BucketUri": { + "com.amazonaws.bedrockagent#RetrievalInstructionDescription": { "type": "string", "traits": { + "smithy.api#documentation": "

A description of a retrieval instruction.

", "smithy.api#length": { "min": 1, - "max": 2048 + "max": 200 }, - "smithy.api#pattern": "^s3://.{1,128}$" + "smithy.api#sensitive": {} } }, - "com.amazonaws.bedrockagent#S3Content": { + "com.amazonaws.bedrockagent#RetrievalInstructionFailureReason": { "type": "structure", "members": { - "s3Location": { - "target": "com.amazonaws.bedrockagent#S3Location", + "fieldName": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFieldName", "traits": { - "smithy.api#documentation": "

The S3 location of the file containing the content to ingest.

", + "smithy.api#documentation": "

The instruction field this entry is about. Present on review rejections of a specific field; absent when the failure applies to the whole review, because a client-side execution failure or a service fault has no single field.

" + } + }, + "code": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFailureReasonCode", + "traits": { + "smithy.api#documentation": "

Stable, machine-readable classification by fault attribution. Valid values:

  • CONTENT_REJECTED – The review rejected the named field's content; revise the text and resubmit.

  • CLIENT_ERROR – The review could not run for a customer-side reason, for example the customer managed AWS KMS key could not be used; fix the configuration and resubmit.

  • INTERNAL_ERROR – The review could not complete due to a service fault; retry the create or update.

New values may be added over time; your client should tolerate values it does not recognize and treat them as a failure.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Human-readable explanation of the specific cause. Never contains the customer's own text.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Contains information about the content to ingest into a knowledge base connected to an Amazon S3 data source.

" + "smithy.api#documentation": "

One reason the most recent create or update did not succeed. code drives programmatic branching (fix the text, fix the configuration, or retry); message carries the specific cause.

" } }, - "com.amazonaws.bedrockagent#S3DataSourceConfiguration": { - "type": "structure", + "com.amazonaws.bedrockagent#RetrievalInstructionFailureReasonCode": { + "type": "enum", "members": { - "bucketArn": { - "target": "com.amazonaws.bedrockagent#S3BucketArn", + "CONTENT_REJECTED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that contains your data.

", - "smithy.api#required": {} + "smithy.api#enumValue": "CONTENT_REJECTED" } }, - "inclusionPrefixes": { + "CLIENT_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLIENT_ERROR" + } + }, + "INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_ERROR" + } + } + }, + "traits": { + "smithy.api#documentation": "

A machine-readable failure classification. See RetrievalInstructionFailureReason.code for the value semantics.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionFailureReasons": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionFailureReason" + }, + "traits": { + "smithy.api#documentation": "

Why the most recent create or update did not succeed: one entry per rejected field (CONTENT_REJECTED, with fieldName), or a single entry for a whole-review failure (CLIENT_ERROR or INTERNAL_ERROR, without fieldName). Present only when lastTransitionStatus is CREATE_FAILED or UPDATE_FAILED.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionFieldName": { + "type": "enum", + "members": { + "RETRIEVAL_GUIDANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETRIEVAL_GUIDANCE" + } + }, + "PERSONA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PERSONA" + } + }, + "ANSWER_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANSWER_FORMAT" + } + }, + "ANSWER_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANSWER_POLICY" + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies one field of RetrievalInstructionContent:

  • RETRIEVAL_GUIDANCE – retrievalGuidance

  • PERSONA – persona

  • ANSWER_FORMAT – answerFormat

  • ANSWER_POLICY – answerPolicy

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionFieldText": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The text of a single retrieval instruction field.

", + "smithy.api#length": { + "min": 1 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The identifier of a retrieval instruction.

", + "smithy.api#length": { + "min": 10, + "max": 10 + }, + "smithy.api#pattern": "^[a-z0-9]{10}$" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionLastTransitionStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "CREATE_SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_SUCCESSFUL" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "UPDATE_SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_SUCCESSFUL" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The outcome or in-progress state of the most recent create or update of a retrieval instruction. Delete is synchronous and has no representation here. Independent of RetrievalInstructionStatus.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionMaxResults": { + "type": "integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return in a single page of ListRetrievalInstructions or ListRetrievalInstructionVersions. The effective upper bound is enforced service-side; the model constrains only to a positive value.

", + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of a retrieval instruction.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A retrieval instruction version number: at most nine digits (1 to 999,999,999). Numbers are allocated monotonically from 1 and never reused, even after the version is deleted, so the shape also bounds the lifetime number of versions an instruction can ever allocate.

", + "smithy.api#pattern": "^[1-9][0-9]{0,8}$" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionResource": { + "type": "resource", + "identifiers": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId" + } + }, + "create": { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstruction" + }, + "read": { + "target": "com.amazonaws.bedrockagent#GetRetrievalInstruction" + }, + "update": { + "target": "com.amazonaws.bedrockagent#UpdateRetrievalInstruction" + }, + "delete": { + "target": "com.amazonaws.bedrockagent#DeleteRetrievalInstruction" + }, + "list": { + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructions" + }, + "operations": [ + { + "target": "com.amazonaws.bedrockagent#CreateRetrievalInstructionVersion" + }, + { + "target": "com.amazonaws.bedrockagent#ListRetrievalInstructionVersions" + } + ], + "traits": { + "aws.api#arn": { + "template": "retrieval-instruction/{retrievalInstructionId}" + }, + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "retrieval-instruction" + } + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether you can use a retrieval instruction. You can resolve only an ACTIVE retrieval instruction at retrieval time. Monotone: INACTIVE to ACTIVE once, never back.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionSummary" + }, + "traits": { + "smithy.api#documentation": "

List of retrieval instruction summaries.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionSummary": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", + "traits": { + "smithy.api#documentation": "

The ARN of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionName", + "traits": { + "smithy.api#documentation": "

The name of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionStatus", + "traits": { + "smithy.api#documentation": "

Whether the instruction can be used. Only ACTIVE is resolvable at retrieval time.

", + "smithy.api#required": {} + } + }, + "lastTransitionStatus": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionLastTransitionStatus", + "traits": { + "smithy.api#documentation": "

The outcome or in-progress state of the most recent create or update of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When you created the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When the retrieval instruction was last updated.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

A description of the retrieval instruction.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a retrieval instruction, without the content.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionVersionSelector": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A version selector for a retrieval instruction: a version number, or DRAFT for the retrieval instruction's current reviewed content. Version numbers are 1 to 999,999,999 (at most nine digits, no leading zeros) — the same number space as RetrievalInstructionNumericalVersion.

", + "smithy.api#length": { + "min": 1, + "max": 9 + }, + "smithy.api#pattern": "^(DRAFT|[1-9][0-9]{0,8})$" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionVersionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionVersionSummary" + }, + "traits": { + "smithy.api#documentation": "

List of retrieval instruction version summaries.

" + } + }, + "com.amazonaws.bedrockagent#RetrievalInstructionVersionSummary": { + "type": "structure", + "members": { + "version": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionNumericalVersion", + "traits": { + "smithy.api#documentation": "

The version number.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When this version was created.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of one numbered version of a retrieval instruction, without the content.

" + } + }, + "com.amazonaws.bedrockagent#RevisionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.bedrockagent#S3BucketArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws(|-cn|-us-gov):s3:::[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$" + } + }, + "com.amazonaws.bedrockagent#S3BucketName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$" + } + }, + "com.amazonaws.bedrockagent#S3BucketUri": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^s3://.{1,128}$" + } + }, + "com.amazonaws.bedrockagent#S3Content": { + "type": "structure", + "members": { + "s3Location": { + "target": "com.amazonaws.bedrockagent#S3Location", + "traits": { + "smithy.api#documentation": "

The S3 location of the file containing the content to ingest.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the content to ingest into a knowledge base connected to an Amazon S3 data source.

" + } + }, + "com.amazonaws.bedrockagent#S3DataSourceConfiguration": { + "type": "structure", + "members": { + "bucketArn": { + "target": "com.amazonaws.bedrockagent#S3BucketArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that contains your data.

", + "smithy.api#required": {} + } + }, + "inclusionPrefixes": { "target": "com.amazonaws.bedrockagent#S3Prefixes", "traits": { "smithy.api#documentation": "

A list of S3 prefixes to include certain files or content. For more information, see Organizing objects using prefixes.

" @@ -17351,6 +18592,26 @@ "smithy.api#documentation": "

The endpoint information to connect to your Salesforce data source.

" } }, + "com.amazonaws.bedrockagent#SearchableStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether a custom metadata field is searchable. The knowledge base matches query text against the values of searchable fields.

" + } + }, "com.amazonaws.bedrockagent#SecretArn": { "type": "string", "traits": { @@ -18263,7 +19524,7 @@ "min": 20, "max": 1011 }, - "smithy.api#pattern": "(^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:(agent|agent-alias|knowledge-base|flow|prompt)/[A-Z0-9]{10}(?:/[A-Z0-9]{10})?$|^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:flow/([A-Z0-9]{10})/alias/([A-Z0-9]{10})$|^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:prompt/([A-Z0-9]{10})?(?::/d+)?$)" + "smithy.api#pattern": "(^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:(agent|agent-alias|knowledge-base|flow|prompt)/[A-Z0-9]{10}(?:/[A-Z0-9]{10})?$|^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:flow/([A-Z0-9]{10})/alias/([A-Z0-9]{10})$|^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:prompt/([A-Z0-9]{10})?(?::/d+)?$|^arn:aws(-cn|-us-gov|-eusc|-iso(-[b-f])?)?:bedrock:[a-zA-Z0-9-]+:[0-9]{12}:retrieval-instruction/[a-z0-9]{10}$)" } }, "com.amazonaws.bedrockagent#TaggingResource": { @@ -20034,6 +21295,12 @@ "traits": { "smithy.api#documentation": "

Specifies the configuration for the vector store used for the knowledge base. You must use the same configuration as when the knowledge base was created.

" } + }, + "metadataConfigurations": { + "target": "com.amazonaws.bedrockagent#MetadataConfigurations", + "traits": { + "smithy.api#documentation": "

Specifies up to 30 custom metadata field configurations for a managed knowledge base.

The list that you specify replaces the existing configurations. The update removes any configuration that you leave out, and its field is no longer searchable. An empty list removes all configurations. If you don't specify a list, the existing configurations don't change.

" + } } }, "traits": { @@ -20220,6 +21487,137 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrockagent#UpdateRetrievalInstruction": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagent#UpdateRetrievalInstructionRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagent#UpdateRetrievalInstructionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagent#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagent#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagent#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagent#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagent#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagent#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update a retrieval instruction" + }, + "smithy.api#documentation": "

Updates the content of a retrieval instruction. The update is processed asynchronously; the stored content is a candidate until content review passes, and the served content does not change while the update is in flight. The service rejects the request with ConflictException while lastTransitionStatus is CREATING or UPDATING.

", + "smithy.api#http": { + "code": 202, + "method": "PUT", + "uri": "/retrievalinstructions/{retrievalInstructionId}" + }, + "smithy.api#idempotent": {}, + "smithy.api#tags": [ + "console" + ] + } + }, + "com.amazonaws.bedrockagent#UpdateRetrievalInstructionRequest": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "instruction": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionContent", + "traits": { + "aws.cloudformation#cfnMutability": "write", + "smithy.api#documentation": "

The replacement instruction content. This is a full replacement of all four fields, not a patch. During UPDATING, Get continues to return the previously-served content until the update review passes.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionDescription", + "traits": { + "smithy.api#documentation": "

A replacement description; applied together with the content when the review passes. Omit to clear.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagent#UpdateRetrievalInstructionResponse": { + "type": "structure", + "members": { + "retrievalInstructionId": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionId", + "traits": { + "smithy.api#documentation": "

The identifier of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "retrievalInstructionArn": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionArn", + "traits": { + "smithy.api#documentation": "

The ARN of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionName", + "traits": { + "smithy.api#documentation": "

The name of the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionStatus", + "traits": { + "smithy.api#documentation": "

Whether the instruction can be used. An update never lowers status. Unchanged from the previous value on this response.

", + "smithy.api#required": {} + } + }, + "lastTransitionStatus": { + "target": "com.amazonaws.bedrockagent#RetrievalInstructionLastTransitionStatus", + "traits": { + "smithy.api#documentation": "

Always UPDATING on this response. Poll GetRetrievalInstruction until this member is neither CREATING nor UPDATING, then read the outcome from it.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When you created the retrieval instruction.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrockagent#DateTimestamp", + "traits": { + "smithy.api#documentation": "

When the retrieval instruction was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrockagent#Url": { "type": "string", "traits": { @@ -21091,4 +22489,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/bedrock-agentcore-control.json b/codegen/aws-models/bedrock-agentcore-control.json index cf0db60a..e65e0f47 100644 --- a/codegen/aws-models/bedrock-agentcore-control.json +++ b/codegen/aws-models/bedrock-agentcore-control.json @@ -771,6 +771,40 @@ } } }, + "com.amazonaws.bedrockagentcorecontrol#AllowedPort": { + "type": "union", + "members": { + "port": { + "target": "com.amazonaws.bedrockagentcorecontrol#Port", + "traits": { + "smithy.api#documentation": "

A single port that is reachable through the runtime's session URL.

" + } + }, + "portRange": { + "target": "com.amazonaws.bedrockagentcorecontrol#PortRange", + "traits": { + "smithy.api#documentation": "

An inclusive range of ports that are reachable through the runtime's session URL.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A port or port range that is reachable through the runtime's session URL. Specify exactly one of port or portRange.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#AllowedPorts": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#AllowedPort" + }, + "traits": { + "smithy.api#documentation": "

Additional ports on the AgentCore Runtime that are reachable through the runtime's session URL. The list can contain up to five non-overlapping entries.

", + "smithy.api#length": { + "min": 1, + "max": 5 + }, + "smithy.api#uniqueItems": {} + } + }, "com.amazonaws.bedrockagentcorecontrol#AllowedQueryParameters": { "type": "list", "member": { @@ -914,6 +948,9 @@ { "target": "com.amazonaws.bedrockagentcorecontrol#PutResourcePolicy" }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterial" + }, { "target": "com.amazonaws.bedrockagentcorecontrol#SetTokenVaultCMK" }, @@ -2895,6 +2932,20 @@ "smithy.api#documentation": "

Contains summary information about a browser. A browser enables Amazon Bedrock AgentCore Agent to interact with web content.

" } }, + "com.amazonaws.bedrockagentcorecontrol#BuildLifecycleHooks": { + "type": "structure", + "members": { + "warmup": { + "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleHook", + "traits": { + "smithy.api#documentation": "

The hook that warms up your agent before any sessions are created. Use this hook to load the resources that your sessions need, such as models, libraries, or caches. Your hook must complete within 120 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The lifecycle hooks that run when you create or update the AgentCore Runtime, before any sessions are created.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#CapacityProviderArn": { "type": "string", "traits": { @@ -3300,7 +3351,7 @@ } }, "traits": { - "smithy.api#documentation": "

A reference to a private certificate authority (CA) certificate that the gateway uses to verify TLS connections to the target endpoint. Use this when the target presents a certificate issued by a private CA that is not trusted by default. Specify exactly one certificate source. The configuration is a reference only and never contains the certificate content.

" + "smithy.api#documentation": "

A reference to a private certificate authority (CA) certificate that AgentCore uses to verify TLS connections to an endpoint, such as a gateway target or an identity provider, that presents a certificate issued by a private CA that is not trusted by default. Specify exactly one certificate source. The configuration is a reference only and never contains the certificate content.

" } }, "com.amazonaws.bedrockagentcorecontrol#CertificateConfigurationList": { @@ -3353,6 +3404,38 @@ } } }, + "com.amazonaws.bedrockagentcorecontrol#CircuitBreakerConfiguration": { + "type": "structure", + "members": { + "mode": { + "target": "com.amazonaws.bedrockagentcorecontrol#CircuitBreakerMode", + "traits": { + "smithy.api#default": "ENABLED", + "smithy.api#documentation": "

Specifies whether you want the circuit breaker turned on. To turn it off, set this value to DISABLED. The default is ENABLED.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether the circuit breaker monitors failures for the targets in a fallback chain.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#CircuitBreakerMode": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, "com.amazonaws.bedrockagentcorecontrol#ClaimMatchOperatorType": { "type": "enum", "members": { @@ -4037,6 +4120,16 @@ "smithy.api#documentation": "

The compute configuration for a capacity provider. This structure defines the type and settings of the compute resources used to launch instances.

" } }, + "com.amazonaws.bedrockagentcorecontrol#ConcreteModelId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-._/@:]*$" + } + }, "com.amazonaws.bedrockagentcorecontrol#ConcurrentModificationException": { "type": "structure", "members": { @@ -4067,10 +4160,16 @@ "traits": { "smithy.api#documentation": "

A condition that matches on the request path.

" } + }, + "matchModels": { + "target": "com.amazonaws.bedrockagentcorecontrol#MatchModels", + "traits": { + "smithy.api#documentation": "

A condition that matches on the model requested in an inference request.

" + } } }, "traits": { - "smithy.api#documentation": "

A condition that determines when a gateway rule applies. Conditions can match on principals or request paths.

" + "smithy.api#documentation": "

A condition that determines when a gateway rule applies. Conditions can match on principals, request paths, or the requested model.

" } }, "com.amazonaws.bedrockagentcorecontrol#Conditions": { @@ -4081,7 +4180,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 2 + "max": 3 } } }, @@ -5167,7 +5266,10 @@ } }, "protocolConfiguration": { - "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration" + "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration", + "traits": { + "smithy.api#documentation": "

The protocol configuration for the AgentCore Runtime, including the protocol, port, and path on which the agent server is available.

" + } }, "lifecycleConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleConfiguration", @@ -5175,6 +5277,12 @@ "smithy.api#documentation": "

The life cycle configuration for the AgentCore Runtime.

" } }, + "hooksConfiguration": { + "target": "com.amazonaws.bedrockagentcorecontrol#RuntimeHooksConfiguration", + "traits": { + "smithy.api#documentation": "

The lifecycle hooks configuration for the AgentCore Runtime. Use lifecycle hooks to run actions in the agent's container at fixed points in the runtime's lifecycle, such as warming up the agent before sessions are created.

" + } + }, "environmentVariables": { "target": "com.amazonaws.bedrockagentcorecontrol#EnvironmentVariablesMap", "traits": { @@ -5204,6 +5312,18 @@ "traits": { "smithy.api#documentation": "

The version of the runtime platform to use for the AgentCore Runtime.

" } + }, + "allowedPorts": { + "target": "com.amazonaws.bedrockagentcorecontrol#AllowedPorts", + "traits": { + "smithy.api#documentation": "

The additional ports on the AgentCore Runtime that are reachable through the runtime's session URL. Specify one to five non-overlapping entries, each containing either a single port or an inclusive port range. Ports must be between 8000 and 12000, excluding the reserved port 8443.

" + } + }, + "resourceConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResourceConfigurations", + "traits": { + "smithy.api#documentation": "

The resource configurations for the AgentCore Runtime, such as the minimum amount of memory to allocate to the runtime. You can specify at most one resource configuration.

" + } } }, "traits": { @@ -6885,6 +7005,12 @@ "traits": { "smithy.api#documentation": "

A map of key-value pairs to associate with the gateway as metadata tags.

" } + }, + "domainOverride": { + "target": "com.amazonaws.bedrockagentcorecontrol#DomainOverride", + "traits": { + "smithy.api#documentation": "

The public domain names that the gateway advertises in its OAuth discovery URLs instead of the inbound Host header. Specify this when clients reach the gateway through your own proxy or custom domain.

" + } } }, "traits": { @@ -7034,6 +7160,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Web Services WAF configuration for the gateway.

" } + }, + "domainOverride": { + "target": "com.amazonaws.bedrockagentcorecontrol#DomainOverride", + "traits": { + "smithy.api#documentation": "

The public domain names that the gateway advertises in its OAuth discovery URLs instead of the inbound Host header.

" + } } }, "traits": { @@ -7784,10 +7916,10 @@ "eventExpiryDuration": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The duration after which memory events expire. Specified as an ISO 8601 duration.

", + "smithy.api#documentation": "

The number of days after which memory events expire, between 7 and 3650 days.

", "smithy.api#range": { "min": 3, - "max": 365 + "max": 3650 }, "smithy.api#required": {} } @@ -8862,7 +8994,7 @@ "clientToken": { "target": "com.amazonaws.bedrockagentcorecontrol#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure the idempotency of the request. The AWS SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without creating a duplicate policy.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure the idempotency of the request. The Amazon Web Services SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without creating a duplicate policy.

", "smithy.api#idempotencyToken": {} } } @@ -9206,6 +9338,9 @@ { "target": "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ConflictException" + }, { "target": "com.amazonaws.bedrockagentcorecontrol#InternalServerException" }, @@ -9885,6 +10020,12 @@ "smithy.api#documentation": "

The private endpoint overrides for the custom JWT authorizer configuration.

" } }, + "certificateConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#CertificateConfigurationList", + "traits": { + "smithy.api#documentation": "

The private certificate authority (CA) configurations for the identity provider. Use this to have AgentCore Identity trust a private CA when establishing TLS connections to identity provider endpoints. You can specify only one certificate authority configuration in this list. Provide the certificate by reference to an Amazon S3 object or an Amazon Web Services Secrets Manager secret. You can use this only together with privateEndpoint.

" + } + }, "allowedWorkloadConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#AllowedWorkloadConfiguration", "traits": { @@ -9939,6 +10080,12 @@ "traits": { "smithy.api#documentation": "

Schema for metadata fields on records generated by this strategy.

" } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) configuration for memory records generated by this strategy. Set recordExpiryDurationDays to the number of days after which records expire. If not specified, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -10012,6 +10159,12 @@ "traits": { "smithy.api#documentation": "

The private endpoint overrides for the custom OAuth2 provider configuration.

" } + }, + "certificateConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#CertificateConfigurationList", + "traits": { + "smithy.api#documentation": "

The private certificate authority (CA) configurations for the identity provider. Use this to have AgentCore Identity trust a private CA when establishing TLS connections to identity provider endpoints. You can specify only one certificate authority configuration in this list. Provide the certificate by reference to an Amazon S3 object or an Amazon Web Services Secrets Manager secret. You can use this only together with privateEndpoint.

" + } } }, "traits": { @@ -10058,6 +10211,12 @@ "smithy.api#documentation": "

The private endpoint overrides for the custom OAuth2 provider configuration.

" } }, + "certificateConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#CertificateConfigurationList", + "traits": { + "smithy.api#documentation": "

The private certificate authority (CA) configurations for the identity provider. Use this to have AgentCore Identity trust a private CA when establishing TLS connections to identity provider endpoints. You can specify only one certificate authority configuration in this list. Provide the certificate by reference to an Amazon S3 object or an Amazon Web Services Secrets Manager secret. You can use this only together with privateEndpoint.

" + } + }, "privateKeyJwtConfig": { "target": "com.amazonaws.bedrockagentcorecontrol#PrivateKeyJwtConfig", "traits": { @@ -12171,7 +12330,7 @@ "clientToken": { "target": "com.amazonaws.bedrockagentcorecontrol#NonEmptyString", "traits": { - "smithy.api#documentation": "

A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique AWS identifier.

", + "smithy.api#documentation": "

A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique Amazon Web Services identifier.

", "smithy.api#httpQuery": "clientToken", "smithy.api#idempotencyToken": {}, "smithy.api#length": { @@ -13251,12 +13410,12 @@ "com.amazonaws.bedrockagentcorecontrol#DimensionKey": { "type": "string", "traits": { - "smithy.api#documentation": "

A dimension key specifying the scope dimension for rate limiting.

Allowed values: targetName, toolName, qualifiedModelId, or context-path expressions: $.context.iam.principal, $.context.iam.sourceIdentity, $.context.jwt.<claim> where <claim> is a JWT claim name (for example, $.context.jwt.sub). Validated server-side to enforce allowed prefixes and patterns.

", + "smithy.api#documentation": "

A dimension key specifying the scope dimension for rate limiting.

Allowed values: targetName, toolName, qualifiedModelId, or trusted context-path expressions: $.context.iam.principal, $.context.iam.sourceIdentity, $.context.jwt.<claim> where <claim> is a JWT claim name (for example, $.context.jwt.sub).

For caller-supplied custom context, you can use only fixed field pointers: $.context.request.header.<HTTP-header-name> and $.context.request.body.<simple-dotted-field-path>. These pointers aren't general JSONPath expressions. The server rejects recursion, filters, bracket notation, and wildcards. It also validates each value to enforce allowed prefixes and patterns.

", "smithy.api#length": { "min": 1, - "max": 80 + "max": 128 }, - "smithy.api#pattern": "^(targetName|toolName|qualifiedModelId|\\$\\.context\\.iam\\.principal|\\$\\.context\\.iam\\.sourceIdentity|\\$\\.context\\.jwt\\.[a-zA-Z_][a-zA-Z0-9_\\-\\.]{0,61}[a-zA-Z0-9_])$" + "smithy.api#pattern": "^(targetName|toolName|qualifiedModelId|\\$\\.context\\.iam\\.principal|\\$\\.context\\.iam\\.sourceIdentity|\\$\\.context\\.jwt\\.[a-zA-Z_][a-zA-Z0-9_\\-\\.]{0,61}[a-zA-Z0-9_]|\\$\\.context\\.request\\.header\\.[a-zA-Z0-9!#$%&'+\\.\\^_`|~\\-]+|\\$\\.context\\.request\\.body\\.[a-zA-Z_][a-zA-Z0-9_\\-]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-]*)*)$" } }, "com.amazonaws.bedrockagentcorecontrol#DimensionKeys": { @@ -13272,6 +13431,27 @@ } } }, + "com.amazonaws.bedrockagentcorecontrol#DimensionRatingScale": { + "type": "union", + "members": { + "numerical": { + "target": "com.amazonaws.bedrockagentcorecontrol#NumericalScaleDefinitions", + "traits": { + "smithy.api#documentation": "

The numerical rating scale with defined score values and descriptions for quantitative evaluation of the dimension.

" + } + }, + "categorical": { + "target": "com.amazonaws.bedrockagentcorecontrol#CategoricalScaleDefinitions", + "traits": { + "smithy.api#documentation": "

The categorical rating scale with named categories and definitions for qualitative evaluation of the dimension.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The rating scale for one dimension of an LLM-as-a-judge evaluator, supporting either a numerical or a categorical scale.

", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentcorecontrol#DimensionValue": { "type": "string", "traits": { @@ -13301,18 +13481,40 @@ "com.amazonaws.bedrockagentcorecontrol#DiscoveryUrl": { "type": "string", "traits": { - "smithy.api#pattern": "^.+/\\.well-known/openid-configuration$" + "smithy.api#pattern": "^[^\\s?#]+/\\.well-known/(openid-configuration|oauth-authorization-server)(/[^\\s?#]+)?$" } }, "com.amazonaws.bedrockagentcorecontrol#DiscoveryUrlType": { "type": "string", "traits": { - "smithy.api#pattern": "^.+/\\.well-known/(openid-configuration|oauth-authorization-server)$" + "smithy.api#pattern": "^[^\\s?#]+/\\.well-known/(openid-configuration|oauth-authorization-server)(/[^\\s?#]+)?$" } }, "com.amazonaws.bedrockagentcorecontrol#DomainName": { "type": "string" }, + "com.amazonaws.bedrockagentcorecontrol#DomainOverride": { + "type": "structure", + "members": { + "defaultDomain": { + "target": "com.amazonaws.bedrockagentcorecontrol#PublicDomainName", + "traits": { + "smithy.api#documentation": "

The default public domain name for the gateway. The gateway advertises this domain when a request doesn't select a specific domain.

", + "smithy.api#jsonName": "default", + "smithy.api#required": {} + } + }, + "alternateDomains": { + "target": "com.amazonaws.bedrockagentcorecontrol#PublicDomainNameList", + "traits": { + "smithy.api#documentation": "

Additional public domain names for the gateway, up to 10. Don't repeat the default domain or list a domain more than once. A request can select one of these domains, or the default domain, with the x-amzn-bedrock-agentcore-gateway-domain header. The gateway rejects a request that selects a domain that isn't configured.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The public domain names for a gateway that clients reach through your own proxy or custom domain. When you configure a domain override, the gateway advertises these domains instead of the inbound Host header in the URLs that it returns for OAuth discovery, such as the protected resource metadata and the WWW-Authenticate challenge.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#DownloadUrl": { "type": "string", "traits": { @@ -13896,6 +14098,12 @@ "traits": { "smithy.api#documentation": "

Schema for metadata fields on records generated by this strategy.

" } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) configuration for memory records generated by this strategy. Set recordExpiryDurationDays to the number of days after which records expire. If not specified, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -14120,6 +14328,18 @@ "smithy.api#documentation": "

Contains configurations to override the default reflection step for the episodic memory strategy.

" } }, + "com.amazonaws.bedrockagentcorecontrol#ErrorStatusCodePattern": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[4-5]([0-9]{2}|XX)$" + } + }, + "com.amazonaws.bedrockagentcorecontrol#ErrorStatusCodePatterns": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#ErrorStatusCodePattern" + } + }, "com.amazonaws.bedrockagentcorecontrol#EvaluationConfigDescription": { "type": "string", "traits": { @@ -14137,6 +14357,66 @@ "smithy.api#pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$" } }, + "com.amazonaws.bedrockagentcorecontrol#EvaluationDimension": { + "type": "structure", + "members": { + "dimensionName": { + "target": "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensionName", + "traits": { + "smithy.api#documentation": "

The name of the dimension. This name is unique within the evaluator and identifies the dimension's results.

", + "smithy.api#required": {} + } + }, + "dimensionInstruction": { + "target": "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensionInstruction", + "traits": { + "smithy.api#documentation": "

The instruction to the evaluator model for this dimension, describing what the model should judge when scoring the dimension.

", + "smithy.api#required": {} + } + }, + "dimensionRatingScale": { + "target": "com.amazonaws.bedrockagentcorecontrol#DimensionRatingScale", + "traits": { + "smithy.api#documentation": "

The rating scale for this dimension, which can be numerical or categorical. A dimension's rating scale cannot itself be multi-dimensional.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A single dimension of an LLM-as-a-judge evaluator, defining what the evaluator model should judge for that dimension and how it should be scored.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensionInstruction": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The instruction to the evaluator model for one dimension of an LLM-as-a-judge evaluator, describing what the model should judge for that dimension.

", + "smithy.api#length": { + "min": 1, + "max": 4000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensionName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The name of a dimension in an LLM-as-a-judge evaluator.

", + "smithy.api#pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$" + } + }, + "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensions": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#EvaluationDimension" + }, + "traits": { + "smithy.api#documentation": "

The list of dimensions for an LLM-as-a-judge evaluator that uses a multi-dimensional rating scale. An evaluator can have up to 50 dimensions.

", + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.bedrockagentcorecontrol#Evaluator": { "type": "resource", "identifiers": { @@ -14552,6 +14832,144 @@ "smithy.api#documentation": "

The extraction type for a metadata field, determining how the value is obtained during memory processing.

" } }, + "com.amazonaws.bedrockagentcorecontrol#Fallback": { + "type": "structure", + "members": { + "triggerOn": { + "target": "com.amazonaws.bedrockagentcorecontrol#FallbackTriggers", + "traits": { + "smithy.api#documentation": "

The status codes and errors from the route's target that cause the gateway to send the request to the first fallback target. If you omit triggerOn, the gateway falls back on 5XX status codes and on the CONNECTION_ERROR, FIRST_BYTE_TIMEOUT, and UNROUTABLE errors. If you specify triggerOn, only the status codes and errors that you list trigger a fallback.

" + } + }, + "firstByteTimeoutMilliseconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum time, in milliseconds, from sending the request to the route's target until the first byte of the response body arrives. If the time expires, the gateway abandons the request and treats it as a FIRST_BYTE_TIMEOUT error. If you don't specify a value, no timeout is enforced.

", + "smithy.api#range": { + "min": 50, + "max": 900000 + } + } + }, + "circuitBreaker": { + "target": "com.amazonaws.bedrockagentcorecontrol#CircuitBreakerConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies whether the gateway temporarily stops sending your requests to a failing target. The circuit breaker tracks each combination of target and model separately. With the circuit breaker enabled, the gateway skips one or more targets and models that fail repeatedly, and your requests go to the next target in the chain. The gateway always tries the last remaining target in the chain. The gateway enables the circuit breaker by default.

" + } + }, + "targetFallback": { + "target": "com.amazonaws.bedrockagentcorecontrol#TargetFallbacks", + "traits": { + "smithy.api#documentation": "

The ordered list of fallback targets. The gateway tries each target in order until a response doesn't match that target's triggers, and returns that response to the caller. If every target fails, the gateway returns the last response. You can specify up to two fallback targets. Each combination of target and model, including the route's target, can appear only once.

", + "smithy.api#length": { + "min": 1, + "max": 2 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The fallback configuration for a route to an inference target. Defines an ordered list of fallback targets to try when a request to the route's target fails, and the conditions that trigger a fallback. A fallback can occur only before the gateway sends the first byte of the response to the caller. After a streaming response starts, the gateway doesn't fall back.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#FallbackError": { + "type": "enum", + "members": { + "CONNECTION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "The gateway could not establish a connection to the destination (connection refused/reset,\nor connection timeout) — the attempt never reached the provider. Feeds the circuit breaker.", + "smithy.api#enumValue": "CONNECTION_ERROR" + } + }, + "FIRST_BYTE_TIMEOUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "The destination accepted the connection but did not return the first response byte within\nfirstByteTimeoutMilliseconds; the attempt is abandoned before any byte reaches the client.\nFeeds the circuit breaker.", + "smithy.api#enumValue": "FIRST_BYTE_TIMEOUT" + } + }, + "UNROUTABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "Gateway-side: the target could not be routed to (target missing, or it does not support the\nrequest's API path). Deterministic — advances the chain but does NOT feed the breaker.", + "smithy.api#enumValue": "UNROUTABLE" + } + } + } + }, + "com.amazonaws.bedrockagentcorecontrol#FallbackErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#FallbackError" + } + }, + "com.amazonaws.bedrockagentcorecontrol#FallbackTarget": { + "type": "structure", + "members": { + "targetName": { + "target": "com.amazonaws.bedrockagentcorecontrol#TargetName", + "traits": { + "smithy.api#documentation": "

The name of the gateway target to fall back to. The target must be an inference target.

", + "smithy.api#required": {} + } + }, + "model": { + "target": "com.amazonaws.bedrockagentcorecontrol#ConcreteModelId", + "traits": { + "smithy.api#documentation": "

The model ID to send to this fallback target. If you don't specify a model, the gateway sends the model from the original request.

" + } + }, + "triggerOn": { + "target": "com.amazonaws.bedrockagentcorecontrol#FallbackTriggers", + "traits": { + "smithy.api#documentation": "

The status codes and errors from this target that cause the gateway to send the request to the next fallback target. This setting isn't inherited from the route. If you omit it, the gateway uses the default triggers: 5XX status codes and the CONNECTION_ERROR, FIRST_BYTE_TIMEOUT, and UNROUTABLE errors.

" + } + }, + "firstByteTimeoutMilliseconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum time, in milliseconds, from sending the request to this target until the first byte of the response body arrives. This setting isn't inherited from the route. If you don't specify a value, no timeout is enforced.

", + "smithy.api#range": { + "min": 50, + "max": 900000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a target to send the request to when the previous target in the fallback chain fails. Includes the target name, the model to send, and the conditions that trigger a fallback from this target to the next one.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#FallbackTriggers": { + "type": "structure", + "members": { + "statusCodes": { + "target": "com.amazonaws.bedrockagentcorecontrol#ErrorStatusCodePatterns", + "traits": { + "smithy.api#documentation": "

The HTTP status codes returned by the target that trigger a fallback. You can specify the following:

  • An exact status code – A three-digit code, such as 429.

  • A class of status codes – The first digit followed by XX, such as 5XX, which matches every code from 500 to 599.

Only 4XX and 5XX codes are supported. Throttling by the gateway itself doesn't trigger a fallback.

", + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "errors": { + "target": "com.amazonaws.bedrockagentcorecontrol#FallbackErrors", + "traits": { + "smithy.api#documentation": "

The errors that trigger a fallback. You can specify the following:

  • CONNECTION_ERROR – The gateway couldn't connect to the target because the connection was refused, reset, or timed out. The request didn't reach the target.

  • FIRST_BYTE_TIMEOUT – The target accepted the connection but didn't return the first byte of the response within firstByteTimeoutMilliseconds. The gateway abandons the request before any of the response reaches you.

  • UNROUTABLE – The gateway couldn't route the request to the target, for example because the target doesn't exist or doesn't support the request path. These errors don't count toward the circuit breaker.

", + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The conditions that trigger a fallback to the next target. A fallback occurs if the response matches any of the specified status codes or errors.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#FilesystemConfiguration": { "type": "union", "members": { @@ -15949,6 +16367,12 @@ "smithy.api#required": {} } }, + "hooksConfiguration": { + "target": "com.amazonaws.bedrockagentcorecontrol#RuntimeHooksConfiguration", + "traits": { + "smithy.api#documentation": "

The lifecycle hooks configuration for the AgentCore Runtime.

" + } + }, "failureReason": { "target": "smithy.api#String", "traits": { @@ -15974,7 +16398,10 @@ } }, "protocolConfiguration": { - "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration" + "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration", + "traits": { + "smithy.api#documentation": "

The protocol configuration for the AgentCore Runtime, including the protocol, port, and path on which the agent server is available.

" + } }, "environmentVariables": { "target": "com.amazonaws.bedrockagentcorecontrol#EnvironmentVariablesMap", @@ -16017,6 +16444,18 @@ "traits": { "smithy.api#documentation": "

The version of the runtime platform used by the AgentCore Runtime.

" } + }, + "allowedPorts": { + "target": "com.amazonaws.bedrockagentcorecontrol#AllowedPorts", + "traits": { + "smithy.api#documentation": "

The additional ports on the AgentCore Runtime that are reachable through the runtime's session URL.

" + } + }, + "resourceConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResourceConfigurations", + "traits": { + "smithy.api#documentation": "

The resource configurations for the AgentCore Runtime.

" + } } }, "traits": { @@ -17731,6 +18170,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Web Services WAF configuration for the gateway.

" } + }, + "domainOverride": { + "target": "com.amazonaws.bedrockagentcorecontrol#DomainOverride", + "traits": { + "smithy.api#documentation": "

The public domain names that the gateway advertises in its OAuth discovery URLs instead of the inbound Host header.

" + } } }, "traits": { @@ -21016,6 +21461,7 @@ "lifecycleConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleConfiguration", "traits": { + "smithy.api#documentation": "

The lifecycle configuration for the harness's runtime environment. For a harness, idleRuntimeSessionTimeout and maxLifetime each accept a value between 60 and 28800 seconds (8 hours), and idleRuntimeSessionTimeout must be less than or equal to maxLifetime.

", "smithy.api#required": {} } }, @@ -21040,7 +21486,10 @@ "type": "structure", "members": { "lifecycleConfiguration": { - "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleConfiguration" + "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleConfiguration", + "traits": { + "smithy.api#documentation": "

The lifecycle configuration for the harness's runtime environment. For a harness, idleRuntimeSessionTimeout and maxLifetime each accept a value between 60 and 28800 seconds (8 hours), and idleRuntimeSessionTimeout must be less than or equal to maxLifetime. Values above 28800 seconds are rejected with a ValidationException.

" + } }, "networkConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#NetworkConfiguration" @@ -21473,7 +21922,7 @@ "oauth": { "target": "com.amazonaws.bedrockagentcorecontrol#OAuthCredentialProvider", "traits": { - "smithy.api#documentation": "

Use OAuth credentials for outbound authentication to the gateway.

" + "smithy.api#documentation": "

Use OAuth credentials for outbound authentication to the gateway.

The AUTHORIZATION_CODE grant type is not supported for outbound authentication from a harness to an AgentCore Gateway, even when defaultReturnUrl is specified.

" } } }, @@ -21632,7 +22081,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration for an AWS Lambda hook target.

" + "smithy.api#documentation": "

The configuration for an Amazon Web Services Lambda hook target.

" } }, "com.amazonaws.bedrockagentcorecontrol#HarnessHookName": { @@ -21667,7 +22116,7 @@ "lambda": { "target": "com.amazonaws.bedrockagentcorecontrol#HarnessHookLambdaTarget", "traits": { - "smithy.api#documentation": "

A Lambda hook target that invokes an AWS Lambda function synchronously and waits for its response.

" + "smithy.api#documentation": "

A Lambda hook target that invokes an Amazon Web Services Lambda function synchronously and waits for its response.

" } }, "sns": { @@ -21741,7 +22190,7 @@ "com.amazonaws.bedrockagentcorecontrol#HarnessLambdaFunctionArn": { "type": "string", "traits": { - "smithy.api#documentation": "

The ARN of an AWS Lambda function.

", + "smithy.api#documentation": "

The ARN of an Amazon Web Services Lambda function.

", "smithy.api#length": { "min": 20, "max": 2048 @@ -21838,7 +22287,7 @@ "encryptionKeyArn": { "target": "com.amazonaws.bedrockagentcorecontrol#KmsKeyArn", "traits": { - "smithy.api#documentation": "

Customer-managed KMS key. Defaults to AWS-owned key. Not updatable after creation.

" + "smithy.api#documentation": "

Customer-managed KMS key. Defaults to Amazon Web Services-owned key. Not updatable after creation.

" } } }, @@ -22054,12 +22503,38 @@ "traits": { "smithy.api#documentation": "

Custom headers to include when connecting to the remote MCP server.

" } + }, + "outboundAuth": { + "target": "com.amazonaws.bedrockagentcorecontrol#HarnessRemoteMcpOutboundAuth", + "traits": { + "smithy.api#documentation": "

How the harness authenticates to this MCP server. Defaults to no authentication.

" + } } }, "traits": { "smithy.api#documentation": "

Configuration for connecting to a remote MCP server.

" } }, + "com.amazonaws.bedrockagentcorecontrol#HarnessRemoteMcpOutboundAuth": { + "type": "union", + "members": { + "awsIam": { + "target": "com.amazonaws.bedrockagentcorecontrol#IamCredentialProvider", + "traits": { + "smithy.api#documentation": "

Sign requests to the remote MCP server with Signature Version 4 (SigV4) using the harness execution role. If you don't specify a Region, the harness Region is used.

" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

No authentication.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Authentication method for calling a remote MCP server.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#HarnessRemoteMcpUrl": { "type": "string", "traits": { @@ -22117,7 +22592,7 @@ "awsSkills": { "target": "com.amazonaws.bedrockagentcorecontrol#HarnessSkillAwsSkillsSource", "traits": { - "smithy.api#documentation": "

AWS Skills baked into the harness's underlying Runtime.

" + "smithy.api#documentation": "

Amazon Web Services Skills baked into the harness's underlying Runtime.

" } } }, @@ -22136,7 +22611,7 @@ } }, "traits": { - "smithy.api#documentation": "

Passed to show that AWS Skills should be included.

" + "smithy.api#documentation": "

Passed to show that Amazon Web Services Skills should be included.

" } }, "com.amazonaws.bedrockagentcorecontrol#HarnessSkillGitAuth": { @@ -22822,6 +23297,27 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentcorecontrol#HttpPostLifecycleHookAction": { + "type": "structure", + "members": { + "path": { + "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleHookPath", + "traits": { + "smithy.api#documentation": "

The path in the agent's container that AgentCore Runtime sends the POST request to.

", + "smithy.api#required": {} + } + }, + "port": { + "target": "com.amazonaws.bedrockagentcorecontrol#ServerPort", + "traits": { + "smithy.api#documentation": "

The port in the agent's container that AgentCore Runtime sends the POST request to. If you don't specify a port, the default is the runtime's server port: the port in the protocol configuration if one is set, otherwise the protocol's default port.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A lifecycle hook action that sends an HTTP POST request to the agent's container. The path and port can't conflict with a path that your agent already serves for AgentCore Runtime, such as the protocol's invocation path or the health check path.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#HttpQueryParameterName": { "type": "string", "traits": { @@ -23230,7 +23726,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "^/[a-zA-Z0-9\\-\\._/]+$" + "smithy.api#pattern": "^/[a-zA-Z0-9\\-\\._/{}]+$" } }, "com.amazonaws.bedrockagentcorecontrol#InferenceProviderTargetConfiguration": { @@ -23871,6 +24367,46 @@ "smithy.api#documentation": "

LifecycleConfiguration lets you manage the lifecycle of runtime sessions and resources in AgentCore Runtime. This configuration helps optimize resource utilization by automatically cleaning up idle sessions and preventing long-running instances from consuming resources indefinitely.

" } }, + "com.amazonaws.bedrockagentcorecontrol#LifecycleHook": { + "type": "structure", + "members": { + "action": { + "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleHookAction", + "traits": { + "smithy.api#documentation": "

The action that AgentCore Runtime runs for the hook. Specify exactly one action.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A lifecycle hook, which defines the action that AgentCore Runtime runs at a point in the runtime's lifecycle.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#LifecycleHookAction": { + "type": "union", + "members": { + "httpPost": { + "target": "com.amazonaws.bedrockagentcorecontrol#HttpPostLifecycleHookAction", + "traits": { + "smithy.api#documentation": "

Sends an HTTP POST request to your agent's container on the specified port and path to run the hook. The hook succeeds if your container returns a 2xx response. The hook fails if your container returns any other response or doesn't respond before the hook times out.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The action that a lifecycle hook runs. Specify exactly one member. Currently, httpPost is the only supported action.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#LifecycleHookPath": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The path for an HTTP POST lifecycle hook action. The path must begin with /, can contain up to 32 characters, and can contain only letters, numbers, and the characters ., _, ~, /, and -.

", + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^/[A-Za-z0-9._~/-]*$" + } + }, "com.amazonaws.bedrockagentcorecontrol#LimitEntries": { "type": "list", "member": { @@ -27758,7 +28294,7 @@ "disableMcpListToolsPagination": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether pagination is disabled for the Model Context Protocol (MCP) tools/list operation. When set to true, the gateway returns the complete list of tools in a single response without a pagination cursor. When set to false or omitted, the gateway returns tools in paginated responses.

" + "smithy.api#documentation": "

Specifies whether the gateway disables pagination for the Model Context Protocol (MCP) tools/list operation. When set to true, the gateway returns the complete list of tools in a single response without a pagination cursor. When set to false or omitted, the gateway returns tools in paginated responses. For information about changing this value on an existing gateway, see UpdateGateway.

" } } }, @@ -27839,6 +28375,70 @@ "smithy.api#documentation": "

Configuration for a managed VPC Lattice resource. The gateway creates and manages the VPC Lattice resource gateway and resource configuration on your behalf using a service-linked role.

" } }, + "com.amazonaws.bedrockagentcorecontrol#MatchModelEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#MatchModelEntry" + } + }, + "com.amazonaws.bedrockagentcorecontrol#MatchModelEntry": { + "type": "structure", + "members": { + "value": { + "target": "com.amazonaws.bedrockagentcorecontrol#ModelPattern", + "traits": { + "smithy.api#documentation": "

The model ID or pattern to match. With the StringLike operator, you can use * and ? as wildcards, for example anthropic.claude-*.

", + "smithy.api#required": {} + } + }, + "operator": { + "target": "com.amazonaws.bedrockagentcorecontrol#MatchOperator", + "traits": { + "smithy.api#default": "StringLike", + "smithy.api#documentation": "

The operator to use when comparing the requested model to the value:

  • StringEquals – Requires an exact match.

  • StringLike – Supports wildcard patterns using * and ?. This is the default.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A model ID or pattern to match against the requested model, and the operator to use for the comparison.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#MatchModels": { + "type": "structure", + "members": { + "anyOf": { + "target": "com.amazonaws.bedrockagentcorecontrol#MatchModelEntries", + "traits": { + "smithy.api#documentation": "

A list of model entries. The condition is met if the requested model matches any of the entries.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A condition that matches inference requests based on the requested model.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#MatchOperator": { + "type": "enum", + "members": { + "StringEquals": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StringEquals" + } + }, + "StringLike": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StringLike" + } + } + } + }, "com.amazonaws.bedrockagentcorecontrol#MatchPathPattern": { "type": "string", "traits": { @@ -28170,7 +28770,7 @@ "smithy.api#documentation": "

The number of days after which memory events will expire.

", "smithy.api#range": { "min": 1, - "max": 365 + "max": 3650 }, "smithy.api#required": {} } @@ -28404,6 +29004,12 @@ "traits": { "smithy.api#documentation": "

Schema for metadata fields on records generated by this strategy.

" } + }, + "recordExpiryDurationDays": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpiryDurationDays", + "traits": { + "smithy.api#documentation": "

The effective record expiry (long-term memory time-to-live), in days, for memory records generated by this strategy. New records expire this many days after they are created. If not set, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -28861,9 +29467,9 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 256 + "max": 2048 }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-\\._\\*\\?@]+(/[a-zA-Z0-9\\-\\._\\*\\?@]+)*$" + "smithy.api#pattern": "^[a-zA-Z0-9\\-\\._\\*\\?@:]+(/[a-zA-Z0-9\\-\\._\\*\\?@:]+)*$" } }, "com.amazonaws.bedrockagentcorecontrol#ModifyConsolidationConfiguration": { @@ -28990,6 +29596,12 @@ "traits": { "smithy.api#documentation": "

Updated metadata schema for records generated by this strategy.

" } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

Updates or removes the record expiry (long-term memory time-to-live) for this strategy. Set recordExpiryDurationDays to configure or update the number of days after which records expire, or set action to REMOVE to remove a previously configured time-to-live so that newer records no longer expire. The change applies only to records created after the update.

" + } } }, "traits": { @@ -29191,7 +29803,6 @@ }, "traits": { "smithy.api#length": { - "min": 1, "max": 5 } } @@ -29828,6 +30439,32 @@ "smithy.api#documentation": "

Contains the output configuration for an OAuth2 provider.

" } }, + "com.amazonaws.bedrockagentcorecontrol#OnBehalfOfAuthenticationConfig": { + "type": "structure", + "members": { + "clientAuthenticationMethod": { + "target": "com.amazonaws.bedrockagentcorecontrol#OnBehalfOfClientAuthenticationMethod", + "traits": { + "smithy.api#documentation": "

The client authentication method to use during the on-behalf-of token exchange. The NO_CLIENT option omits the clientId and clientSecret during the on-behalf-of token exchange with the identity provider.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the client authentication method to use for the on-behalf-of token exchange.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#OnBehalfOfClientAuthenticationMethod": { + "type": "enum", + "members": { + "NO_CLIENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_CLIENT" + } + } + } + }, "com.amazonaws.bedrockagentcorecontrol#OnBehalfOfTokenExchangeConfigType": { "type": "structure", "members": { @@ -29843,6 +30480,12 @@ "traits": { "smithy.api#documentation": "

Configuration specific to the TOKEN_EXCHANGE grant type (RFC 8693).

" } + }, + "onBehalfOfAuthenticationConfig": { + "target": "com.amazonaws.bedrockagentcorecontrol#OnBehalfOfAuthenticationConfig", + "traits": { + "smithy.api#documentation": "

Specify the client authentication configuration to use for the on-behalf-of token exchange. With this configuration, you override the provider level client authentication method for the on-behalf-of exchange with the identity provider. If you don't specify this configuration, we use the provider level client authentication method.

" + } } }, "traits": { @@ -31877,6 +32520,38 @@ "smithy.api#default": "FAIL_ON_ANY_FINDINGS" } }, + "com.amazonaws.bedrockagentcorecontrol#Port": { + "type": "integer", + "traits": { + "smithy.api#documentation": "

A port between 8000 and 12000. Port 8443 is reserved and cannot be used.

", + "smithy.api#range": { + "min": 8000, + "max": 12000 + } + } + }, + "com.amazonaws.bedrockagentcorecontrol#PortRange": { + "type": "structure", + "members": { + "from": { + "target": "com.amazonaws.bedrockagentcorecontrol#Port", + "traits": { + "smithy.api#documentation": "

The first port in the inclusive range.

", + "smithy.api#required": {} + } + }, + "to": { + "target": "com.amazonaws.bedrockagentcorecontrol#Port", + "traits": { + "smithy.api#documentation": "

The last port in the inclusive range.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An inclusive range of ports. The value of from must be less than or equal to the value of to.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#PortalUrlType": { "type": "string", "traits": { @@ -32039,6 +32714,18 @@ "smithy.api#documentation": "

The server protocol for the agent runtime. This field specifies which protocol the agent runtime uses to communicate with clients.

", "smithy.api#required": {} } + }, + "port": { + "target": "com.amazonaws.bedrockagentcorecontrol#ServerPort", + "traits": { + "smithy.api#documentation": "

The port on which the agent server listens. The port must be between 8000 and 12000, excluding the reserved port 8443. When this field is omitted, the default is 8080 for HTTP and AGUI, 8000 for MCP, and 9000 for A2A.

" + } + }, + "path": { + "target": "com.amazonaws.bedrockagentcorecontrol#ServerPath", + "traits": { + "smithy.api#documentation": "

The path on which the agent server accepts requests. The path must begin with /. When this field is omitted, the default is /invocations for HTTP and AGUI, /mcp for MCP, and / for A2A.

" + } } }, "traits": { @@ -32100,6 +32787,28 @@ "smithy.api#documentation": "

The configuration that controls how a provider prefix is applied to model IDs during translation.

" } }, + "com.amazonaws.bedrockagentcorecontrol#PublicDomainName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)(?:\\.(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?))+$" + } + }, + "com.amazonaws.bedrockagentcorecontrol#PublicDomainNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#PublicDomainName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.bedrockagentcorecontrol#PutResourcePolicy": { "type": "operation", "input": { @@ -32226,6 +32935,12 @@ "traits": { "smithy.api#documentation": "

The categorical rating scale with named categories and definitions for qualitative evaluation.

" } + }, + "multiDimensional": { + "target": "com.amazonaws.bedrockagentcorecontrol#EvaluationDimensions", + "traits": { + "smithy.api#documentation": "

A list of dimensions that lets an LLM-as-a-judge evaluator score several dimensions of the same target in a single evaluation. Each dimension has its own instruction and rating scale, and produces its own result.

" + } } }, "traits": { @@ -32251,6 +32966,48 @@ "smithy.api#documentation": "

The reasoning configuration that controls how a reasoning model allocates effort during evaluation.

" } }, + "com.amazonaws.bedrockagentcorecontrol#RecordExpiryAction": { + "type": "enum", + "members": { + "REMOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE" + } + } + }, + "traits": { + "smithy.api#documentation": "

The action to apply to a strategy's record expiry (long-term memory time-to-live) configuration. REMOVE removes a previously configured time-to-live; newer records no longer have a time-to-live set and do not expire.

" + } + }, + "com.amazonaws.bedrockagentcorecontrol#RecordExpiryDurationDays": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 31 + } + } + }, + "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification": { + "type": "union", + "members": { + "recordExpiryDurationDays": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpiryDurationDays", + "traits": { + "smithy.api#documentation": "

The duration, in days, after which memory records generated by this strategy expire. The minimum is 31 days.

" + } + }, + "action": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpiryAction", + "traits": { + "smithy.api#documentation": "

The action to apply to the existing record expiry (long-term memory time-to-live) configuration. Set to REMOVE to remove a previously configured time-to-live so that newer records no longer expire. This value is not applicable on create paths.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the record expiry (long-term memory time-to-live) for a memory strategy. Provide exactly one of recordExpiryDurationDays or action. Set recordExpiryDurationDays to configure or update the time-to-live, or set action to REMOVE to remove a previously configured time-to-live.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#RecordIdentifier": { "type": "string", "traits": { @@ -32891,6 +33648,90 @@ "target": "smithy.api#String" } }, + "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterial": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialRequest" + }, + "output": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ConflictException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#UnauthorizedException" + }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "smithy.api#documentation": "

Resets the key material for a token vault whose customer managed KMS key has been deleted, and re-encrypts the token vault with an Amazon Web Services managed key so that you can use the token vault again.

This operation can't be undone. The reset permanently deletes the OAuth2 access tokens and refresh tokens stored in the token vault, including tokens obtained through all supported flows. After the reset, your agents must complete these flows again to get new tokens, and for user-delegated flows your users must authorize access again. The reset doesn't delete your credential providers or their configuration.

You can reset a token vault only if its customer managed key has been deleted. If the key still exists, including when it's disabled or scheduled for deletion, this operation returns a ValidationException. To use the token vault again, enable the key or cancel its scheduled deletion in KMS. To switch to a different key, use SetTokenVaultCMK.

", + "smithy.api#http": { + "uri": "/identities/reset-token-vault-key-material", + "method": "POST" + } + } + }, + "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialRequest": { + "type": "structure", + "members": { + "tokenVaultId": { + "target": "com.amazonaws.bedrockagentcorecontrol#TokenVaultIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the token vault to reset. To reset your account's default token vault, specify default.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagentcorecontrol#ResetTokenVaultKeyMaterialResponse": { + "type": "structure", + "members": { + "tokenVaultId": { + "target": "com.amazonaws.bedrockagentcorecontrol#TokenVaultIdType", + "traits": { + "smithy.api#documentation": "

The ID of the token vault.

", + "smithy.api#required": {} + } + }, + "kmsConfiguration": { + "target": "com.amazonaws.bedrockagentcorecontrol#KmsConfiguration", + "traits": { + "smithy.api#documentation": "

The KMS configuration for the token vault after the reset. The token vault uses an Amazon Web Services managed key.

", + "smithy.api#required": {} + } + }, + "lastModifiedDate": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the token vault was last modified.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrockagentcorecontrol#Resource": { "type": "union", "members": { @@ -32911,6 +33752,21 @@ "smithy.api#pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}$" } }, + "com.amazonaws.bedrockagentcorecontrol#ResourceConfiguration": { + "type": "structure", + "members": { + "minimumMemoryInMiB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The minimum amount of memory, in mebibytes, to allocate to the AgentCore Runtime.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The resource configuration for an AgentCore Runtime.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#ResourceConfigurationIdentifier": { "type": "string", "traits": { @@ -32921,6 +33777,18 @@ "smithy.api#pattern": "^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}))$" } }, + "com.amazonaws.bedrockagentcorecontrol#ResourceConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResourceConfiguration" + }, + "traits": { + "smithy.api#documentation": "

A list of resource configurations for an AgentCore Runtime. The list can contain at most one resource configuration.

", + "smithy.api#length": { + "max": 1 + } + } + }, "com.amazonaws.bedrockagentcorecontrol#ResourceGatewayArn": { "type": "string", "traits": { @@ -33365,6 +34233,20 @@ "smithy.api#pattern": "^(([0-9]{12})\\.dkr\\.ecr\\.([a-z0-9-]+)\\.amazonaws\\.com(\\.cn)?|public\\.ecr\\.aws)/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?::([^:@]{1,300}))?(?:@(.+))?$" } }, + "com.amazonaws.bedrockagentcorecontrol#RuntimeHooksConfiguration": { + "type": "structure", + "members": { + "build": { + "target": "com.amazonaws.bedrockagentcorecontrol#BuildLifecycleHooks", + "traits": { + "smithy.api#documentation": "

The hooks that run when you create or update the AgentCore Runtime, before any sessions are created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The lifecycle hooks that AgentCore Runtime runs at fixed points in the runtime's lifecycle.

" + } + }, "com.amazonaws.bedrockagentcorecontrol#RuntimeMetadataConfiguration": { "type": "structure", "members": { @@ -34122,6 +35004,12 @@ }, "memoryRecordSchema": { "target": "com.amazonaws.bedrockagentcorecontrol#MemoryRecordSchema" + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) configuration for memory records generated by this strategy. Set recordExpiryDurationDays to the number of days after which records expire. If not specified, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -34227,6 +35115,27 @@ "smithy.api#documentation": "

The server definition for an MCP descriptor. Contains the schema version and inline content for the MCP server configuration.

" } }, + "com.amazonaws.bedrockagentcorecontrol#ServerPath": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The path on which the agent server accepts requests. The path must begin with / and can contain up to 2,048 characters.

", + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^/[A-Za-z0-9\\-._~/%]*$" + } + }, + "com.amazonaws.bedrockagentcorecontrol#ServerPort": { + "type": "integer", + "traits": { + "smithy.api#documentation": "

A port between 8000 and 12000. Port 8443 is reserved and cannot be used.

", + "smithy.api#range": { + "min": 8000, + "max": 12000 + } + } + }, "com.amazonaws.bedrockagentcorecontrol#ServerProtocol": { "type": "enum", "members": { @@ -34366,6 +35275,9 @@ { "target": "com.amazonaws.bedrockagentcorecontrol#ConcurrentModificationException" }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ConflictException" + }, { "target": "com.amazonaws.bedrockagentcorecontrol#InternalServerException" }, @@ -34629,7 +35541,7 @@ "clientToken": { "target": "com.amazonaws.bedrockagentcorecontrol#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure the idempotency of the request. The AWS SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without starting a duplicate generation.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure the idempotency of the request. The Amazon Web Services SDK automatically generates this token, so you don't need to provide it in most cases. If you retry a request with the same client token, the service returns the same response without starting a duplicate generation.

", "smithy.api#idempotencyToken": {} } } @@ -34817,6 +35729,18 @@ "smithy.api#documentation": "

The name of the target to route requests to.

", "smithy.api#required": {} } + }, + "model": { + "target": "com.amazonaws.bedrockagentcorecontrol#ConcreteModelId", + "traits": { + "smithy.api#documentation": "

The model ID to send to the target. Supported only for inference targets. If you don't specify a model, the gateway sends the model from the original request.

" + } + }, + "fallback": { + "target": "com.amazonaws.bedrockagentcorecontrol#Fallback", + "traits": { + "smithy.api#documentation": "

The fallback configuration for this route. Supported only for inference targets.

" + } } }, "traits": { @@ -35433,6 +36357,12 @@ "traits": { "smithy.api#documentation": "

Schema for metadata fields on records generated by this strategy.

" } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) configuration for memory records generated by this strategy. Set recordExpiryDurationDays to the number of days after which records expire. If not specified, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -35753,6 +36683,12 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentcorecontrol#TargetFallbacks": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcorecontrol#FallbackTarget" + } + }, "com.amazonaws.bedrockagentcorecontrol#TargetId": { "type": "string", "traits": { @@ -35991,6 +36927,25 @@ "com.amazonaws.bedrockagentcorecontrol#TargetTrafficSplitEntry": { "type": "structure", "members": { + "targetName": { + "target": "com.amazonaws.bedrockagentcorecontrol#TargetName", + "traits": { + "smithy.api#documentation": "

The name of the target to route traffic to.

", + "smithy.api#required": {} + } + }, + "model": { + "target": "com.amazonaws.bedrockagentcorecontrol#ConcreteModelId", + "traits": { + "smithy.api#documentation": "

The model ID to send to the target for this variant. Supported only for inference targets. If you don't specify a model, the gateway sends the model from the original request.

" + } + }, + "fallback": { + "target": "com.amazonaws.bedrockagentcorecontrol#Fallback", + "traits": { + "smithy.api#documentation": "

The fallback configuration for this variant. Supported only for inference targets.

" + } + }, "name": { "target": "smithy.api#String", "traits": { @@ -36014,13 +36969,6 @@ "smithy.api#required": {} } }, - "targetName": { - "target": "com.amazonaws.bedrockagentcorecontrol#TargetName", - "traits": { - "smithy.api#documentation": "

The name of the target to route traffic to.

", - "smithy.api#required": {} - } - }, "description": { "target": "smithy.api#String", "traits": { @@ -36890,7 +37838,10 @@ } }, "protocolConfiguration": { - "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration" + "target": "com.amazonaws.bedrockagentcorecontrol#ProtocolConfiguration", + "traits": { + "smithy.api#documentation": "

The updated protocol configuration for the AgentCore Runtime, including the protocol, port, and path on which the agent server is available.

" + } }, "lifecycleConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#LifecycleConfiguration", @@ -36898,6 +37849,12 @@ "smithy.api#documentation": "

The updated life cycle configuration for the AgentCore Runtime.

" } }, + "hooksConfiguration": { + "target": "com.amazonaws.bedrockagentcorecontrol#RuntimeHooksConfiguration", + "traits": { + "smithy.api#documentation": "

The updated lifecycle hooks configuration for the AgentCore Runtime.

" + } + }, "metadataConfiguration": { "target": "com.amazonaws.bedrockagentcorecontrol#RuntimeMetadataConfiguration", "traits": { @@ -36928,6 +37885,18 @@ "smithy.api#documentation": "

The updated version of the runtime platform to use for the AgentCore Runtime.

" } }, + "allowedPorts": { + "target": "com.amazonaws.bedrockagentcorecontrol#AllowedPorts", + "traits": { + "smithy.api#documentation": "

The updated additional ports on the AgentCore Runtime that are reachable through the runtime's session URL. Specify one to five non-overlapping entries, each containing either a single port or an inclusive port range. Ports must be between 8000 and 12000, excluding the reserved port 8443.

" + } + }, + "resourceConfigurations": { + "target": "com.amazonaws.bedrockagentcorecontrol#ResourceConfigurations", + "traits": { + "smithy.api#documentation": "

The updated resource configurations for the AgentCore Runtime. You can specify at most one resource configuration.

" + } + }, "clientToken": { "target": "com.amazonaws.bedrockagentcorecontrol#ClientToken", "traits": { @@ -37946,7 +38915,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an existing gateway.

", + "smithy.api#documentation": "

Updates an existing gateway.

Replaces the entire gateway configuration. Any optional field that you omit, including fields in protocolConfiguration, is reset. For information about retrieving the current configuration, see GetGateway.

", "smithy.api#http": { "code": 202, "method": "PUT", @@ -38183,6 +39152,12 @@ "traits": { "smithy.api#documentation": "

The updated Amazon Web Services WAF configuration for the gateway.

" } + }, + "domainOverride": { + "target": "com.amazonaws.bedrockagentcorecontrol#DomainOverride", + "traits": { + "smithy.api#documentation": "

The updated public domain names that the gateway advertises in its OAuth discovery URLs instead of the inbound Host header. Specify this when clients reach the gateway through your own proxy or custom domain.

" + } } }, "traits": { @@ -38329,6 +39304,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Web Services WAF configuration for the gateway.

" } + }, + "domainOverride": { + "target": "com.amazonaws.bedrockagentcorecontrol#DomainOverride", + "traits": { + "smithy.api#documentation": "

The public domain names that the gateway advertises in its OAuth discovery URLs instead of the inbound Host header.

" + } } }, "traits": { @@ -39038,7 +40019,7 @@ "clientToken": { "target": "com.amazonaws.bedrockagentcorecontrol#NonEmptyString", "traits": { - "smithy.api#documentation": "

A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique AWS identifier.

", + "smithy.api#documentation": "

A client token is used for keeping track of idempotent requests. It can contain a session id which can be around 250 chars, combined with a unique Amazon Web Services identifier.

", "smithy.api#idempotencyToken": {}, "smithy.api#length": { "max": 500 @@ -39062,10 +40043,10 @@ "eventExpiryDuration": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The number of days after which memory events will expire, between 7 and 365 days.

", + "smithy.api#documentation": "

The number of days after which memory events expire, between 7 and 3650 days.

", "smithy.api#range": { "min": 3, - "max": 365 + "max": 3650 } } }, @@ -40715,6 +41696,9 @@ { "target": "com.amazonaws.bedrockagentcorecontrol#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrockagentcorecontrol#ConflictException" + }, { "target": "com.amazonaws.bedrockagentcorecontrol#InternalServerException" }, @@ -41181,6 +42165,12 @@ "traits": { "smithy.api#documentation": "

Schema for metadata fields on records generated by this strategy.

" } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcorecontrol#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) configuration for memory records generated by this strategy. Set recordExpiryDurationDays to the number of days after which records expire. If not specified, records generated by this strategy do not expire.

" + } } }, "traits": { @@ -41782,4 +42772,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/bedrock-agentcore.json b/codegen/aws-models/bedrock-agentcore.json index deca2bc9..7d5b9164 100644 --- a/codegen/aws-models/bedrock-agentcore.json +++ b/codegen/aws-models/bedrock-agentcore.json @@ -475,6 +475,9 @@ }, { "target": "com.amazonaws.bedrockagentcore#InvokeHarness" + }, + { + "target": "com.amazonaws.bedrockagentcore#InvokeWebSearch" } ], "resources": [ @@ -1553,6 +1556,12 @@ "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure idempotent processing of the batch request.

", "smithy.api#idempotencyToken": {} } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcore#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) applied to every record created by this request. Set recordExpiryDurationDays to the number of days after which the records expire. Only the expiry provided here is applied; the records' strategy association has no effect on their expiry. If you do not provide this value, the records do not expire. The REMOVE action does not apply when creating records.

" + } } }, "traits": { @@ -1910,6 +1919,12 @@ "smithy.api#documentation": "

A list of memory record update inputs to be processed in the batch operation.

", "smithy.api#required": {} } + }, + "recordExpirySpecification": { + "target": "com.amazonaws.bedrockagentcore#RecordExpirySpecification", + "traits": { + "smithy.api#documentation": "

The record expiry (long-term memory time-to-live) applied to every record updated by this request. Set recordExpiryDurationDays to configure or overwrite the number of days after which the records expire, or set action to REMOVE to clear a previously configured expiry so that the records no longer expire.

When you do not provide this value, the service determines each record's expiry from its current state:

  • If the record already has an expiry configured, the service resets and reapplies the expiry based on the last applied recordExpiryDurationDays.

  • If the record does not have an expiry configured, no expiry is applied and the record remains non-expiring. This is the outcome regardless of whether the record's strategy configures an expiry.

Providing an explicit recordExpiryDurationDays always takes precedence: it overwrites an existing expiry, or sets one on a record that previously had none.

" + } } }, "traits": { @@ -3184,6 +3199,9 @@ "com.amazonaws.bedrockagentcore#ConfigurationBundleArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::BedrockAgentCore::ConfigurationBundle" + }, "smithy.api#pattern": "^arn:aws[a-zA-Z-]*:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:configuration-bundle/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$" } }, @@ -4949,6 +4967,50 @@ "smithy.api#documentation": "

Contains the descriptor configuration for a registry record. Only the field that matches the record's descriptorType is populated.

" } }, + "com.amazonaws.bedrockagentcore#DomainFilter": { + "type": "structure", + "members": { + "include": { + "target": "com.amazonaws.bedrockagentcore#DomainList", + "traits": { + "smithy.api#documentation": "

The domains to return results from. Results from other domains are not returned.

" + } + }, + "exclude": { + "target": "com.amazonaws.bedrockagentcore#DomainList", + "traits": { + "smithy.api#documentation": "

The domains to never return results from.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The domains to include in or exclude from the results. A root domain also matches its subdomains. For example, example.com also matches docs.example.com.

" + } + }, + "com.amazonaws.bedrockagentcore#DomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#DomainName" + }, + "traits": { + "smithy.api#documentation": "

A list of domain names.

", + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.bedrockagentcore#DomainName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A domain name, for example example.com.

", + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$" + } + }, "com.amazonaws.bedrockagentcore#DomainPattern": { "type": "string", "traits": { @@ -5222,6 +5284,12 @@ } } }, + "com.amazonaws.bedrockagentcore#EvaluationDimensionName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$" + } + }, "com.amazonaws.bedrockagentcore#EvaluationErrorCode": { "type": "string", "traits": { @@ -5455,6 +5523,12 @@ "smithy.api#required": {} } }, + "evaluationDimensionName": { + "target": "com.amazonaws.bedrockagentcore#EvaluationDimensionName", + "traits": { + "smithy.api#documentation": "

The name of the dimension that this result scores. This field is set only on results produced by an evaluator that uses a multi-dimensional rating scale, where each dimension is scored independently. For evaluators with a single rating scale, this field is absent.

" + } + }, "explanation": { "target": "com.amazonaws.bedrockagentcore#EvaluationExplanation", "traits": { @@ -5672,6 +5746,12 @@ "smithy.api#documentation": "

The unique identifier of the evaluator.

" } }, + "evaluationDimensionName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the dimension that this summary covers. This field is set only for evaluators that use a multi-dimensional rating scale, where each dimension is summarized separately. For single-scale evaluators, this field is not set.

" + } + }, "statistics": { "target": "com.amazonaws.bedrockagentcore#EvaluatorStatistics", "traits": { @@ -6348,6 +6428,51 @@ "smithy.api#documentation": "

A value used in filter comparisons, supporting different data types.

" } }, + "com.amazonaws.bedrockagentcore#FindingDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentcore#FindingTargetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.bedrockagentcore#FindingTargetType": { + "type": "enum", + "members": { + "SPAN_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPAN_ID" + } + }, + "TRACE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRACE_ID" + } + }, + "SPAN_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPAN_NAME" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type of location in a session that a finding points to: a span ID, a trace ID, or a span name.

" + } + }, "com.amazonaws.bedrockagentcore#GatewayArn": { "type": "string", "traits": { @@ -6782,6 +6907,12 @@ "smithy.api#documentation": "

The aggregated evaluation results, including session completion counts and evaluator score summaries.

" } }, + "insightResults": { + "target": "com.amazonaws.bedrockagentcore#InsightResultList", + "traits": { + "smithy.api#documentation": "

The insights generated when the batch evaluation includes the Builtin.FailureAnalysis evaluator. Each insight groups related failures found across the evaluated sessions. An empty list means that no failures were found. If the analysis fails, this field is omitted and errorDetails describes the error.

" + } + }, "failureAnalysisResult": { "target": "com.amazonaws.bedrockagentcore#FailureAnalysisResultContent", "traits": { @@ -8669,7 +8800,7 @@ "oauth": { "target": "com.amazonaws.bedrockagentcore#OAuthCredentialProvider", "traits": { - "smithy.api#documentation": "

OAuth 2.0 authentication via AgentCore Identity.

" + "smithy.api#documentation": "

OAuth 2.0 authentication via AgentCore Identity.

The AUTHORIZATION_CODE grant type is not supported for outbound authentication from a harness to an AgentCore Gateway, even when defaultReturnUrl is specified.

" } } }, @@ -9212,12 +9343,38 @@ "traits": { "smithy.api#documentation": "

Custom headers to include when connecting to the remote MCP server.

" } + }, + "outboundAuth": { + "target": "com.amazonaws.bedrockagentcore#HarnessRemoteMcpOutboundAuth", + "traits": { + "smithy.api#documentation": "

How the harness authenticates to this MCP server. Defaults to no authentication.

" + } } }, "traits": { "smithy.api#documentation": "

Configuration for connecting to a remote MCP server.

" } }, + "com.amazonaws.bedrockagentcore#HarnessRemoteMcpOutboundAuth": { + "type": "union", + "members": { + "awsIam": { + "target": "com.amazonaws.bedrockagentcore#IamCredentialProvider", + "traits": { + "smithy.api#documentation": "

Sign requests to the remote MCP server with Signature Version 4 (SigV4) using the harness execution role. If you don't specify a Region, the harness Region is used.

" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

No authentication.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Authentication method for calling a remote MCP server.

" + } + }, "com.amazonaws.bedrockagentcore#HarnessRemoteMcpUrl": { "type": "string", "traits": { @@ -9252,7 +9409,7 @@ "awsSkills": { "target": "com.amazonaws.bedrockagentcore#HarnessSkillAwsSkillsSource", "traits": { - "smithy.api#documentation": "

AWS Skills baked into the Harness's underlying Runtime.

" + "smithy.api#documentation": "

Amazon Web Services Skills baked into the Harness's underlying Runtime.

" } } }, @@ -9271,7 +9428,7 @@ } }, "traits": { - "smithy.api#documentation": "

Passed to show that AWS Skills should be included.

" + "smithy.api#documentation": "

Passed to show that Amazon Web Services Skills should be included.

" } }, "com.amazonaws.bedrockagentcore#HarnessSkillGitAuth": { @@ -9982,6 +10139,37 @@ "com.amazonaws.bedrockagentcore#HttpResponseCode": { "type": "integer" }, + "com.amazonaws.bedrockagentcore#IamCredentialProvider": { + "type": "structure", + "members": { + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services service used for SigV4 signing. This value identifies the service to authenticate with when sending requests to the target endpoint.

", + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._-]+$", + "smithy.api#required": {} + } + }, + "region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region used for SigV4 signing. If not specified, defaults to the Region of the resource that makes the request.

", + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + "traits": { + "smithy.api#documentation": "

An IAM credential provider for authenticating requests. This structure contains the configuration for authenticating with a target endpoint using IAM credentials and SigV4 signing.

" + } + }, "com.amazonaws.bedrockagentcore#IgnoredReferenceInputField": { "type": "string", "traits": { @@ -10250,6 +10438,16 @@ "smithy.api#documentation": "

A reference to an insight analysis to run against sessions during batch evaluation. Insights provide deeper analysis beyond individual evaluator scores, including failure detection, user intent clustering, and execution summarization.

" } }, + "com.amazonaws.bedrockagentcore#InsightDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4000 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentcore#InsightId": { "type": "string", "traits": { @@ -10269,6 +10467,161 @@ } } }, + "com.amazonaws.bedrockagentcore#InsightName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentcore#InsightResult": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrockagentcore#InsightType", + "traits": { + "smithy.api#documentation": "

The type of insight. FAILURE indicates a group of related failures.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrockagentcore#InsightName", + "traits": { + "smithy.api#documentation": "

A generated label for the insight. The name is not an identifier and can differ between batch evaluations.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagentcore#InsightDescription", + "traits": { + "smithy.api#documentation": "

A description of the failure pattern that the insight represents.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the insight was generated.

", + "smithy.api#required": {}, + "smithy.api#timestampFormat": "date-time" + } + }, + "affectedSessionCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of distinct sessions affected by the insight.

" + } + }, + "sampleSessions": { + "target": "com.amazonaws.bedrockagentcore#InsightSampleSessionList", + "traits": { + "smithy.api#documentation": "

A sample of up to 10 sessions affected by the insight. Returned only when the insight has no root causes. Otherwise, sample sessions are returned for each root cause.

" + } + }, + "rootCauses": { + "target": "com.amazonaws.bedrockagentcore#InsightRootCauseList", + "traits": { + "smithy.api#documentation": "

The root causes identified for the insight.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An insight that groups related failures found across the sessions in a batch evaluation.

" + } + }, + "com.amazonaws.bedrockagentcore#InsightResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#InsightResult" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.bedrockagentcore#InsightRootCause": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockagentcore#RootCauseName", + "traits": { + "smithy.api#documentation": "

A generated label for the root cause.

", + "smithy.api#required": {} + } + }, + "explanation": { + "target": "com.amazonaws.bedrockagentcore#RootCauseExplanation", + "traits": { + "smithy.api#documentation": "

An explanation of how the root cause leads to the failures in the insight.

", + "smithy.api#required": {} + } + }, + "affectedSessionCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of distinct sessions affected by the root cause. A session can be affected by more than one root cause of the same insight.

" + } + }, + "suggestedFix": { + "target": "com.amazonaws.bedrockagentcore#SuggestedFix", + "traits": { + "smithy.api#documentation": "

A suggested change to the agent that addresses the root cause.

" + } + }, + "sampleSessions": { + "target": "com.amazonaws.bedrockagentcore#InsightSampleSessionList", + "traits": { + "smithy.api#documentation": "

A sample of up to 10 sessions affected by the root cause.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A root cause that contributes to an insight.

" + } + }, + "com.amazonaws.bedrockagentcore#InsightRootCauseList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#InsightRootCause" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.bedrockagentcore#InsightSampleSessionList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#SampleSession" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.bedrockagentcore#InsightType": { + "type": "enum", + "members": { + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILURE" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type of insight.

" + } + }, "com.amazonaws.bedrockagentcore#InsightsFailureCategory": { "type": "enum", "members": { @@ -11032,6 +11385,17 @@ "smithy.api#httpHeader": "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id" } }, + "sessionEndpointUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The HTTPS endpoint that addresses this runtime session directly. This value is returned only when the agent runtime is configured with allowed ports and direct runtime access is available for the session. If this value is not present, use InvokeAgentRuntime to communicate with the session.

", + "smithy.api#httpHeader": "X-Amzn-Bedrock-AgentCore-Runtime-Session-Endpoint-Url", + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "mcpSessionId": { "target": "com.amazonaws.bedrockagentcore#SessionId", "traits": { @@ -11582,6 +11946,133 @@ "smithy.api#streaming": {} } }, + "com.amazonaws.bedrockagentcore#InvokeWebSearch": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrockagentcore#InvokeWebSearchInput" + }, + "output": { + "target": "com.amazonaws.bedrockagentcore#InvokeWebSearchOutput" + }, + "errors": [ + { + "target": "com.amazonaws.bedrockagentcore#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrockagentcore#InternalServerException" + }, + { + "target": "com.amazonaws.bedrockagentcore#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrockagentcore#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.bedrockagentcore#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrockagentcore#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Searches the web and returns a ranked list of results. Each result includes a text extract from the page.

You can filter the results by domain and by publication date.

To use this operation, you must have the bedrock-agentcore:InvokeWebSearch permission on the resource arn:${Partition}:bedrock-agentcore:${Region}:aws:tool/web-search.v1.

", + "smithy.api#examples": [ + { + "title": "Search the web for recent pages from one domain", + "input": { + "webSearchId": "web-search.v1", + "searchQuery": "Amazon Bedrock AgentCore web search", + "maxResults": 1, + "filters": { + "domainFilter": { + "include": [ + "example.com" + ] + }, + "publishedDateFilter": { + "publishedAfter": "2026-01-01T00:00:00Z" + } + } + }, + "output": { + "results": [ + { + "title": "Getting started with web search", + "url": "https://docs.example.com/web-search/getting-started", + "text": "Web search lets an agent find current information on the public web and cite its sources.", + "publishedAt": "2026-03-15T08:00:00Z" + } + ] + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/web-search/{webSearchId}/invoke", + "code": 200 + } + } + }, + "com.amazonaws.bedrockagentcore#InvokeWebSearchInput": { + "type": "structure", + "members": { + "webSearchId": { + "target": "com.amazonaws.bedrockagentcore#WebSearchId", + "traits": { + "smithy.api#documentation": "

The identifier of the web search tool to invoke. The Amazon Web Services-managed web search tool is web-search.v1.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "searchQuery": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The text to search for.

", + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return. Defaults to 25.

", + "smithy.api#range": { + "min": 1, + "max": 25 + } + } + }, + "filters": { + "target": "com.amazonaws.bedrockagentcore#WebSearchFilters", + "traits": { + "smithy.api#documentation": "

The filters to apply to the search results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Request for the InvokeWebSearch operation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrockagentcore#InvokeWebSearchOutput": { + "type": "structure", + "members": { + "results": { + "target": "com.amazonaws.bedrockagentcore#WebSearchResultList", + "traits": { + "smithy.api#documentation": "

The search results, in ranked order.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Response for the InvokeWebSearch operation.

", + "smithy.api#output": {} + } + }, "com.amazonaws.bedrockagentcore#JwtKeyId": { "type": "string", "traits": { @@ -12652,7 +13143,7 @@ "namespace": { "target": "com.amazonaws.bedrockagentcore#Namespace", "traits": { - "smithy.api#documentation": "

The namespace prefix to filter memory records by. Returns all memory records in namespaces that start with the provided prefix. Either namespace or namespacePath is required.

" + "smithy.api#documentation": "

The exact namespace to filter memory records by. Returns all memory records that matches the provided namespace. Either namespace or namespacePath is required.

" } }, "namespacePath": { @@ -13369,11 +13860,23 @@ "smithy.api#required": {} } }, + "timestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp based on which the memory record was ingested. This reflects the time of the source content that the record was derived from, which can differ from createdAt, the time the record itself was written.

" + } + }, "metadata": { "target": "com.amazonaws.bedrockagentcore#MemoryRecordMetadataMap", "traits": { "smithy.api#documentation": "

A map of metadata key-value pairs associated with a memory record.

" } + }, + "expiresAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp at which the memory record expires and becomes eligible for deletion. This value is set when a record expiry (long-term memory time-to-live) applies to the record, either from the strategy the record belongs to or from a record expiry provided on the batch request that created or updated it. If the record has no expiry configured, this value is not present and the record does not expire.

" + } } }, "traits": { @@ -13700,6 +14203,12 @@ "smithy.api#documentation": "

The relevance score of the memory record when returned as part of a search result. Higher values indicate greater relevance to the search query.

" } }, + "timestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp based on which the memory record was ingested. This reflects the time of the source content that the record was derived from, which can differ from createdAt, the time the record itself was written.

" + } + }, "metadata": { "target": "com.amazonaws.bedrockagentcore#MemoryRecordMetadataMap", "traits": { @@ -15731,6 +16240,26 @@ "smithy.api#documentation": "

Union type representing different proxy authentication methods. Currently supports HTTP Basic Authentication (username and password).

" } }, + "com.amazonaws.bedrockagentcore#PublishedDateFilter": { + "type": "structure", + "members": { + "publishedAfter": { + "target": "com.amazonaws.bedrockagentcore#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The earliest publication time of the results, inclusive.

" + } + }, + "publishedBefore": { + "target": "com.amazonaws.bedrockagentcore#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The latest publication time of the results, inclusive. A date without a time, such as one passed to the AWS CLI, means midnight UTC. To include a whole day, use the last second of that day, for example 2026-01-31T23:59:59Z.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A publication time range for the results. Both bounds are optional, and both are inclusive. If publishedAfter is later than publishedBefore, the request fails with a ValidationException.

" + } + }, "com.amazonaws.bedrockagentcore#RecommendationArn": { "type": "string", "traits": { @@ -16028,6 +16557,48 @@ "smithy.api#documentation": "

The type of recommendation to generate.

" } }, + "com.amazonaws.bedrockagentcore#RecordExpiryAction": { + "type": "enum", + "members": { + "REMOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE" + } + } + }, + "traits": { + "smithy.api#documentation": "

The action to apply to an existing record expiry (long-term memory time-to-live) configuration. REMOVE removes a previously configured expiry so that the records no longer expire.

" + } + }, + "com.amazonaws.bedrockagentcore#RecordExpiryDurationDays": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 31 + } + } + }, + "com.amazonaws.bedrockagentcore#RecordExpirySpecification": { + "type": "union", + "members": { + "recordExpiryDurationDays": { + "target": "com.amazonaws.bedrockagentcore#RecordExpiryDurationDays", + "traits": { + "smithy.api#documentation": "

The duration, in days, after which the records in this request expire. The minimum is 31 days.

" + } + }, + "action": { + "target": "com.amazonaws.bedrockagentcore#RecordExpiryAction", + "traits": { + "smithy.api#documentation": "

The action to apply to the existing record expiry configuration. Set to REMOVE to remove a previously configured expiry so that the records no longer expire. This value does not apply when creating records.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the record expiry (long-term memory time-to-live) applied to the records in a batch request. Provide exactly one of recordExpiryDurationDays or action. Set recordExpiryDurationDays to configure or update the expiry, or set action to REMOVE to remove a previously configured expiry.

" + } + }, "com.amazonaws.bedrockagentcore#RegistryArn": { "type": "string", "traits": { @@ -16470,7 +17041,7 @@ "namespace": { "target": "com.amazonaws.bedrockagentcore#Namespace", "traits": { - "smithy.api#documentation": "

The namespace prefix to filter memory records by. Searches for memory records in namespaces that start with the provided prefix. Either namespace or namespacePath is required.

" + "smithy.api#documentation": "

The exact namespace to filter memory records by. Searches for memory records that matches the provided namespace value. Either namespace or namespacePath is required.

" } }, "namespacePath": { @@ -16656,6 +17227,26 @@ } } }, + "com.amazonaws.bedrockagentcore#RootCauseExplanation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentcore#RootCauseName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentcore#RuntimeClientError": { "type": "structure", "members": { @@ -16758,6 +17349,34 @@ "smithy.api#documentation": "

The Amazon S3 location configuration of a resource.

" } }, + "com.amazonaws.bedrockagentcore#SampleSession": { + "type": "structure", + "members": { + "sessionId": { + "target": "com.amazonaws.bedrockagentcore#SessionId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the session.

", + "smithy.api#required": {} + } + }, + "lastSeenAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The latest timestamp observed for the session in the batch evaluation input.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "findings": { + "target": "com.amazonaws.bedrockagentcore#SessionFindingList", + "traits": { + "smithy.api#documentation": "

The failures found in the session that belong to the insight or root cause, up to 10.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A session affected by an insight or root cause. Use the session ID to find the per-session evaluation results in CloudWatch Logs.

" + } + }, "com.amazonaws.bedrockagentcore#SaveBrowserSessionProfile": { "type": "operation", "input": { @@ -17224,6 +17843,30 @@ "smithy.api#httpError": 402 } }, + "com.amazonaws.bedrockagentcore#ServiceUnavailableException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A message that describes the error.

", + "smithy.api#required": {} + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds to wait before you retry the request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service can't handle the request right now. Retry the request. If the response includes retryAfterSeconds, wait that many seconds before you retry.

", + "smithy.api#error": "server", + "smithy.api#httpError": 503, + "smithy.api#retryable": {} + } + }, "com.amazonaws.bedrockagentcore#SessionFilter": { "type": "structure", "members": { @@ -17260,6 +17903,65 @@ "smithy.api#documentation": "

A time range filter for selecting sessions. Specifies the start and end times to narrow down which sessions are included.

" } }, + "com.amazonaws.bedrockagentcore#SessionFinding": { + "type": "structure", + "members": { + "targetId": { + "target": "com.amazonaws.bedrockagentcore#FindingTargetId", + "traits": { + "smithy.api#documentation": "

The identifier or name of the location in the session where the failure was found, interpreted according to targetType.

" + } + }, + "targetType": { + "target": "com.amazonaws.bedrockagentcore#FindingTargetType", + "traits": { + "smithy.api#documentation": "

The type of location that targetId refers to.

" + } + }, + "description": { + "target": "com.amazonaws.bedrockagentcore#FindingDescription", + "traits": { + "smithy.api#documentation": "

A description of the failure.

", + "smithy.api#required": {} + } + }, + "category": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The category of the failure.

", + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "confidence": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The confidence that the finding is a failure, from 0 to 1.

", + "smithy.api#range": { + "min": 0, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

A failure found in a session.

" + } + }, + "com.amazonaws.bedrockagentcore#SessionFindingList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#SessionFinding" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, "com.amazonaws.bedrockagentcore#SessionId": { "type": "string", "traits": { @@ -18971,6 +19673,16 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.bedrockagentcore#SuggestedFix": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4000 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentcore#SystemPromptConfig": { "type": "union", "members": { @@ -20502,6 +21214,79 @@ } } }, + "com.amazonaws.bedrockagentcore#WebSearchFilters": { + "type": "structure", + "members": { + "domainFilter": { + "target": "com.amazonaws.bedrockagentcore#DomainFilter", + "traits": { + "smithy.api#documentation": "

The domains to include in or exclude from the results.

" + } + }, + "publishedDateFilter": { + "target": "com.amazonaws.bedrockagentcore#PublishedDateFilter", + "traits": { + "smithy.api#documentation": "

The publication time range of the results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filters to apply to a web search.

" + } + }, + "com.amazonaws.bedrockagentcore#WebSearchId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The identifier of a web search tool, for example web-search.v1.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-z0-9]+([.-][a-z0-9]+)*$" + } + }, + "com.amazonaws.bedrockagentcore#WebSearchResult": { + "type": "structure", + "members": { + "title": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The title of the page.

" + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The URL of the page.

" + } + }, + "text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A text extract from the page.

", + "smithy.api#required": {} + } + }, + "publishedAt": { + "target": "com.amazonaws.bedrockagentcore#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The time the page was published. This field is absent when the publication time is not known.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A web search result.

" + } + }, + "com.amazonaws.bedrockagentcore#WebSearchResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentcore#WebSearchResult" + }, + "traits": { + "smithy.api#documentation": "

A list of web search results, in ranked order.

" + } + }, "com.amazonaws.bedrockagentcore#WorkloadIdentityNameType": { "type": "string", "traits": { @@ -20546,4 +21331,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/bedrock.json b/codegen/aws-models/bedrock.json index d951e361..d7bd492c 100644 --- a/codegen/aws-models/bedrock.json +++ b/codegen/aws-models/bedrock.json @@ -14459,6 +14459,12 @@ "smithy.api#documentation": "

The filter details for the guardrails contextual grounding policy.

", "smithy.api#required": {} } + }, + "tier": { + "target": "com.amazonaws.bedrock#GuardrailContextualGroundingTier", + "traits": { + "smithy.api#documentation": "

The tier that your guardrail uses for contextual grounding.

" + } } }, "traits": { @@ -14474,12 +14480,68 @@ "smithy.api#documentation": "

The filter configuration details for the guardrails contextual grounding policy.

", "smithy.api#required": {} } + }, + "tierConfig": { + "target": "com.amazonaws.bedrock#GuardrailContextualGroundingTierConfig", + "traits": { + "smithy.api#documentation": "

The tier that your guardrail uses for contextual grounding.

" + } } }, "traits": { "smithy.api#documentation": "

The policy configuration details for the guardrails contextual grounding policy.

" } }, + "com.amazonaws.bedrock#GuardrailContextualGroundingTier": { + "type": "structure", + "members": { + "tierName": { + "target": "com.amazonaws.bedrock#GuardrailContextualGroundingTierName", + "traits": { + "smithy.api#documentation": "

The tier that your guardrail uses for contextual grounding. Valid values include:

  • CLASSIC tier – Provides established contextual grounding functionality supporting English, French, and Spanish languages.

  • STANDARD tier – Provides a more robust solution than the CLASSIC tier, with support for reasoning, conversational content and more comprehensive language support. This tier requires that your guardrail use cross-Region inference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the tier that your guardrail uses for contextual grounding checks.

" + } + }, + "com.amazonaws.bedrock#GuardrailContextualGroundingTierConfig": { + "type": "structure", + "members": { + "tierName": { + "target": "com.amazonaws.bedrock#GuardrailContextualGroundingTierName", + "traits": { + "smithy.api#documentation": "

The tier that your guardrail uses for contextual grounding. Valid values include:

  • CLASSIC tier – Provides established contextual grounding functionality supporting English, French, and Spanish languages.

  • STANDARD tier – Provides a more robust solution than the CLASSIC tier, with support for reasoning, conversational content and more comprehensive language support. This tier requires that your guardrail use cross-Region inference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the tier that your guardrail uses for contextual grounding checks.

" + } + }, + "com.amazonaws.bedrock#GuardrailContextualGroundingTierName": { + "type": "enum", + "members": { + "CLASSIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLASSIC" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + } + }, + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrock#GuardrailCrossRegionConfig": { "type": "structure", "members": { @@ -15246,7 +15308,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 10 + "max": 30 } } }, @@ -21547,7 +21609,7 @@ "type": "float", "traits": { "smithy.api#range": { - "min": 1.0E-7, + "min": 1e-07, "max": 0.001 } } @@ -24419,4 +24481,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/cloudformation.json b/codegen/aws-models/cloudformation.json new file mode 100644 index 00000000..996fb036 --- /dev/null +++ b/codegen/aws-models/cloudformation.json @@ -0,0 +1,18153 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.cloudformation#AcceptTermsAndConditions": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#Account": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.cloudformation#AccountFilterType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "INTERSECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERSECTION" + } + }, + "DIFFERENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DIFFERENCE" + } + }, + "UNION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNION" + } + } + } + }, + "com.amazonaws.cloudformation#AccountGateResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.cloudformation#AccountGateStatus", + "traits": { + "smithy.api#documentation": "

The status of the account gate function.

\n
    \n
  • \n

    \n SUCCEEDED: The account gate function has determined that the account and\n Region passes any requirements for a StackSet operation to occur. CloudFormation proceeds with the\n stack operation in that account and Region.

    \n
  • \n
  • \n

    \n FAILED: The account gate function has determined that the account and Region\n doesn't meet the requirements for a StackSet operation to occur. CloudFormation cancels the\n StackSet operation in that account and Region, and sets the StackSet operation result status\n for that account and Region to FAILED.

    \n
  • \n
  • \n

    \n SKIPPED: CloudFormation has skipped calling the account gate function for this\n account and Region, for one of the following reasons:

    \n
      \n
    • \n

      An account gate function hasn't been specified for the account and Region. CloudFormation\n proceeds with the StackSet operation in this account and Region.

      \n
    • \n
    • \n

      The AWSCloudFormationStackSetExecutionRole of the administration account\n lacks permissions to invoke the function. CloudFormation proceeds with the StackSet operation in\n this account and Region.

      \n
    • \n
    • \n

      Either no action is necessary, or no action is possible, on the stack. CloudFormation skips\n the StackSet operation in this account and Region.

      \n
    • \n
    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#AccountGateStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the account gate status assigned to this account and Region for the StackSet\n operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Structure that contains the results of the account gate function which CloudFormation invokes,\n if present, before proceeding with a StackSet operation in an account and Region.

\n

For each account and Region, CloudFormation lets you specify a Lambda function that encapsulates\n any requirements that must be met before CloudFormation can proceed with a StackSet operation in that\n account and Region. CloudFormation invokes the function each time a StackSet operation is requested\n for that account and Region; if the function returns FAILED, CloudFormation cancels the\n operation in that account and Region, and sets the StackSet operation result status for that\n account and Region to FAILED.

\n

For more information, see Prevent failed StackSets\n deployments using target account gates in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#AccountGateStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "SKIPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SKIPPED" + } + } + } + }, + "com.amazonaws.cloudformation#AccountGateStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#AccountLimit": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudformation#LimitName", + "traits": { + "smithy.api#documentation": "

The name of the account limit.

\n

Values: ConcurrentResourcesLimit | StackLimit |\n StackOutputsLimit\n

" + } + }, + "Value": { + "target": "com.amazonaws.cloudformation#LimitValue", + "traits": { + "smithy.api#documentation": "

The value that's associated with the account limit name.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the current CloudFormation limits for your account.

\n

CloudFormation has the following limits per account:

\n
    \n
  • \n

    Number of concurrent resources

    \n
  • \n
  • \n

    Number of stacks

    \n
  • \n
  • \n

    Number of stack outputs

    \n
  • \n
\n

For more information, see Understand CloudFormation\n quotas in the CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#AccountLimitList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#AccountLimit" + } + }, + "com.amazonaws.cloudformation#AccountList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Account" + } + }, + "com.amazonaws.cloudformation#AccountsUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + }, + "smithy.api#pattern": "^(s3://|http(s?)://).+$" + } + }, + "com.amazonaws.cloudformation#ActivateOrganizationsAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ActivateOrganizationsAccessInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ActivateOrganizationsAccessOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Activate trusted access with Organizations. With trusted access between StackSets\n and Organizations activated, the management account has permissions to create\n and manage StackSets for your organization.

" + } + }, + "com.amazonaws.cloudformation#ActivateOrganizationsAccessInput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ActivateOrganizationsAccessOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ActivateType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ActivateTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ActivateTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Activates a public third-party extension, such as a resource or module, to make it\n available for use in stack templates in your current account and Region. It can also create\n CloudFormation Hooks, which allow you to evaluate resource configurations before CloudFormation\n provisions them. Hooks integrate with both CloudFormation and Cloud Control API operations.

\n

After you activate an extension, you can use SetTypeConfiguration to set specific properties for the extension.

\n

To see which extensions have been activated, use ListTypes. To see\n configuration details for an extension, use DescribeType.

\n

For more information, see Activate a\n third-party public extension in your account in the\n CloudFormation User Guide. For information about creating Hooks, see the\n CloudFormation Hooks User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#ActivateTypeInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The extension type.

\n

Conditional: You must specify PublicTypeArn, or TypeName,\n Type, and PublisherId.

" + } + }, + "PublicTypeArn": { + "target": "com.amazonaws.cloudformation#ThirdPartyTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the public extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName,\n Type, and PublisherId.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The ID of the extension publisher.

\n

Conditional: You must specify PublicTypeArn, or TypeName,\n Type, and PublisherId.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify PublicTypeArn, or TypeName,\n Type, and PublisherId.

" + } + }, + "TypeNameAlias": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

An alias to assign to the public extension in this account and Region. If you specify an\n alias for the extension, CloudFormation treats the alias as the extension type name within this\n account and Region. You must use the alias to refer to the extension in your templates, API\n calls, and CloudFormation console.

\n

An extension alias must be unique within a given account and Region. You can activate the\n same public resource multiple times in the same account and Region, using different type name\n aliases.

" + } + }, + "AutoUpdate": { + "target": "com.amazonaws.cloudformation#AutoUpdate", + "traits": { + "smithy.api#documentation": "

Whether to automatically update the extension in this account and Region when a new\n minor version is published by the extension publisher. Major versions\n released by the publisher must be manually updated.

\n

The default is true.

" + } + }, + "LoggingConfig": { + "target": "com.amazonaws.cloudformation#LoggingConfig", + "traits": { + "smithy.api#documentation": "

Contains logging configuration information for an extension.

" + } + }, + "ExecutionRoleArn": { + "target": "com.amazonaws.cloudformation#RoleARN2", + "traits": { + "smithy.api#documentation": "

The name of the IAM execution role to use to activate the extension.

" + } + }, + "VersionBump": { + "target": "com.amazonaws.cloudformation#VersionBump", + "traits": { + "smithy.api#documentation": "

Manually updates a previously-activated type to a new major or minor version, if\n available. You can also use this parameter to update the value of\n AutoUpdate.

\n
    \n
  • \n

    \n MAJOR: CloudFormation updates the extension to the newest major version, if\n one is available.

    \n
  • \n
  • \n

    \n MINOR: CloudFormation updates the extension to the newest minor version, if\n one is available.

    \n
  • \n
" + } + }, + "MajorVersion": { + "target": "com.amazonaws.cloudformation#MajorVersion", + "traits": { + "smithy.api#documentation": "

The major version of this extension you want to activate, if multiple major versions are\n available. The default is the latest major version. CloudFormation uses the latest available\n minor version of the major version selected.

\n

You can specify MajorVersion or VersionBump, but not\n both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ActivateTypeOutput": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#PrivateTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the activated extension in this account and\n Region.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#AfterContext": { + "type": "string" + }, + "com.amazonaws.cloudformation#AfterValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#AfterValueFrom": { + "type": "enum", + "members": { + "TEMPLATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEMPLATE" + } + } + } + }, + "com.amazonaws.cloudformation#AllowedValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#AllowedValues": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#AllowedValue" + } + }, + "com.amazonaws.cloudformation#AlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AlreadyExistsException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The resource with the name requested already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#Annotation": { + "type": "structure", + "members": { + "AnnotationName": { + "target": "com.amazonaws.cloudformation#AnnotationName", + "traits": { + "smithy.api#documentation": "

An identifier for the evaluation logic that was used when invoking the Hook. For Control Tower,\n this is the control ID. For Guard, this is the rule ID. For Lambda and custom Hooks,\n this is a user-defined identifier.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#AnnotationStatus", + "traits": { + "smithy.api#documentation": "

The status of the Hook invocation from the downstream service.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.cloudformation#RemediationMessageStatusMessage", + "traits": { + "smithy.api#documentation": "

The explanation for the specific status assigned to this Hook invocation. For example,\n \"Bucket does not block public access\".

" + } + }, + "RemediationMessage": { + "target": "com.amazonaws.cloudformation#RemediationMessageRemediationMessage", + "traits": { + "smithy.api#documentation": "

Suggests what to change if your Hook returns a FAILED status. For example,\n \"Block public access to the bucket\".

" + } + }, + "RemediationLink": { + "target": "com.amazonaws.cloudformation#AnnotationRemediationLink", + "traits": { + "smithy.api#documentation": "

A URL that you can access for additional remediation guidance.

" + } + }, + "SeverityLevel": { + "target": "com.amazonaws.cloudformation#AnnotationSeverityLevel", + "traits": { + "smithy.api#documentation": "

The relative risk associated with any violations of this type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Annotation data type.

\n

A GetHookResult call returns detailed information and remediation guidance from\n Control Tower, Guard, Lambda, or custom Hooks for a Hook invocation result.

" + } + }, + "com.amazonaws.cloudformation#AnnotationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Annotation" + } + }, + "com.amazonaws.cloudformation#AnnotationName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.cloudformation#AnnotationRemediationLink": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + } + } + }, + "com.amazonaws.cloudformation#AnnotationSeverityLevel": { + "type": "enum", + "members": { + "INFORMATIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INFORMATIONAL" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOW" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM" + } + }, + "HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HIGH" + } + }, + "CRITICAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRITICAL" + } + } + } + }, + "com.amazonaws.cloudformation#AnnotationStatus": { + "type": "enum", + "members": { + "PASSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "SKIPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SKIPPED" + } + } + } + }, + "com.amazonaws.cloudformation#Arn": { + "type": "string" + }, + "com.amazonaws.cloudformation#AttributeChangeType": { + "type": "enum", + "members": { + "Add": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Add" + } + }, + "Remove": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Remove" + } + }, + "Modify": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Modify" + } + }, + "SyncWithActual": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SyncWithActual" + } + } + } + }, + "com.amazonaws.cloudformation#AutoDeployment": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudformation#AutoDeploymentNullable", + "traits": { + "smithy.api#documentation": "

If set to true, StackSets automatically deploys additional stack instances to\n Organizations accounts that are added to a target organization or organizational unit\n (OU) in the specified Regions. If an account is removed from a target organization or OU,\n StackSets deletes stack instances from the account in the specified Regions.

" + } + }, + "RetainStacksOnAccountRemoval": { + "target": "com.amazonaws.cloudformation#RetainStacksOnAccountRemovalNullable", + "traits": { + "smithy.api#documentation": "

If set to true, stack resources are retained when an account is removed from a\n target organization or OU. If set to false, stack resources are deleted. Specify\n only if Enabled is set to True.

" + } + }, + "DependsOn": { + "target": "com.amazonaws.cloudformation#StackSetARNList", + "traits": { + "smithy.api#documentation": "

A list of StackSet ARNs that this StackSet depends on for auto-deployment operations.\n When auto-deployment is triggered, operations will be sequenced to ensure all dependencies\n complete successfully before this StackSet's operation begins.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether StackSets automatically deploys to Organizations accounts that are\n added to a target organization or organizational unit (OU). For more information, see Enable or\n disable automatic deployments for StackSets in Organizations in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#AutoDeploymentNullable": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#AutoUpdate": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#BatchDescribeTypeConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeConfigurationNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns configuration data for the specified CloudFormation extensions, from the CloudFormation\n registry in your current account and Region.

\n

For more information, see Edit configuration\n data for extensions in your account in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsError": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.cloudformation#ErrorCode", + "traits": { + "smithy.api#documentation": "

The error code.

" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.cloudformation#ErrorMessage", + "traits": { + "smithy.api#documentation": "

The error message.

" + } + }, + "TypeConfigurationIdentifier": { + "target": "com.amazonaws.cloudformation#TypeConfigurationIdentifier", + "traits": { + "smithy.api#documentation": "

Identifying information for the configuration of a CloudFormation extension.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information concerning an error generated during the setting of configuration data\n for a CloudFormation extension.

" + } + }, + "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsError" + } + }, + "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsInput": { + "type": "structure", + "members": { + "TypeConfigurationIdentifiers": { + "target": "com.amazonaws.cloudformation#TypeConfigurationIdentifiers", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The list of identifiers for the desired extension configurations.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsOutput": { + "type": "structure", + "members": { + "Errors": { + "target": "com.amazonaws.cloudformation#BatchDescribeTypeConfigurationsErrors", + "traits": { + "smithy.api#documentation": "

A list of information concerning any errors generated during the setting of the specified\n configurations.

" + } + }, + "UnprocessedTypeConfigurations": { + "target": "com.amazonaws.cloudformation#UnprocessedTypeConfigurations", + "traits": { + "smithy.api#documentation": "

A list of any of the specified extension configurations that CloudFormation could not process\n for any reason.

" + } + }, + "TypeConfigurations": { + "target": "com.amazonaws.cloudformation#TypeConfigurationDetailsList", + "traits": { + "smithy.api#documentation": "

A list of any of the specified extension configurations from the CloudFormation\n registry.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#BeaconStackOperationStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#BeforeContext": { + "type": "string" + }, + "com.amazonaws.cloudformation#BeforeValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#BeforeValueFrom": { + "type": "enum", + "members": { + "PREVIOUS_DEPLOYMENT_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PREVIOUS_DEPLOYMENT_STATE" + } + }, + "ACTUAL_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTUAL_STATE" + } + } + } + }, + "com.amazonaws.cloudformation#BoxedInteger": { + "type": "integer" + }, + "com.amazonaws.cloudformation#BoxedMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#CFNRegistryException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message with details about the error that occurred.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CFNRegistryException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

An error occurred during a CloudFormation registry operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#CallAs": { + "type": "enum", + "members": { + "SELF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SELF" + } + }, + "DELEGATED_ADMIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELEGATED_ADMIN" + } + } + } + }, + "com.amazonaws.cloudformation#CancelUpdateStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CancelUpdateStackInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels an update on the specified stack. If the call completes successfully, the stack\n rolls back the update and reverts to the previous stack configuration.

\n \n

You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.

\n
" + } + }, + "com.amazonaws.cloudformation#CancelUpdateStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response that\n describes all resources in the account.

\n

The IAM policy below can be added to IAM policies when you want to limit\n resource-level permissions and avoid returning a response when no parameter is sent in the\n request:

\n

\n { \"Version\": \"2012-10-17\",\t\t \t \t \"Statement\": [{ \"Effect\": \"Deny\",\n \"Action\": \"cloudformation:DescribeStacks\", \"NotResource\":\n \"arn:aws:cloudformation:*:*:stack/*/*\" }] }\n

\n
\n

The name or the unique stack ID that's associated with the stack.

", + "smithy.api#required": {} + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this CancelUpdateStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to cancel an\n update on a stack with the same name. You might retry CancelUpdateStack requests\n to ensure that CloudFormation successfully received them.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the CancelUpdateStack action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#Capabilities": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Capability" + } + }, + "com.amazonaws.cloudformation#CapabilitiesReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#Capability": { + "type": "enum", + "members": { + "CAPABILITY_IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAPABILITY_IAM" + } + }, + "CAPABILITY_NAMED_IAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAPABILITY_NAMED_IAM" + } + }, + "CAPABILITY_AUTO_EXPAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAPABILITY_AUTO_EXPAND" + } + } + } + }, + "com.amazonaws.cloudformation#Category": { + "type": "enum", + "members": { + "REGISTERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REGISTERED" + } + }, + "ACTIVATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVATED" + } + }, + "THIRD_PARTY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "THIRD_PARTY" + } + }, + "AWS_TYPES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_TYPES" + } + } + } + }, + "com.amazonaws.cloudformation#CausingEntity": { + "type": "string" + }, + "com.amazonaws.cloudformation#Change": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#ChangeType", + "traits": { + "smithy.api#documentation": "

The type of entity that CloudFormation changes.

\n
    \n
  • \n

    \n Resource This change is for a resource.

    \n
  • \n
" + } + }, + "HookInvocationCount": { + "target": "com.amazonaws.cloudformation#HookInvocationCount", + "traits": { + "smithy.api#documentation": "

Is either null, if no Hooks invoke for the resource, or contains the number\n of Hooks that will invoke for the resource.

" + } + }, + "ResourceChange": { + "target": "com.amazonaws.cloudformation#ResourceChange", + "traits": { + "smithy.api#documentation": "

A ResourceChange structure that describes the resource and action that\n CloudFormation will perform.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Change structure describes the changes CloudFormation will perform if you\n execute the change set.

" + } + }, + "com.amazonaws.cloudformation#ChangeAction": { + "type": "enum", + "members": { + "Add": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Add" + } + }, + "Modify": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Modify" + } + }, + "Remove": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Remove" + } + }, + "Import": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Import" + } + }, + "Dynamic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Dynamic" + } + }, + "SyncWithActual": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SyncWithActual" + } + } + } + }, + "com.amazonaws.cloudformation#ChangeSetHook": { + "type": "structure", + "members": { + "InvocationPoint": { + "target": "com.amazonaws.cloudformation#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

The specific point in the provisioning process where the Hook is invoked.

" + } + }, + "FailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

Specify the Hook failure mode for non-compliant resources in the followings ways.

\n
    \n
  • \n

    \n FAIL Stops provisioning resources.

    \n
  • \n
  • \n

    \n WARN Allows provisioning to continue with a warning message.

    \n
  • \n
" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#HookTypeName", + "traits": { + "smithy.api#documentation": "

The unique name for your Hook. Specifies a three-part namespace for your Hook, with a\n recommended pattern of Organization::Service::Hook.

\n \n

The following organization namespaces are reserved and can't be used in your Hook type\n names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n ASK\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
" + } + }, + "TypeVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the type specified.

" + } + }, + "TypeConfigurationVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeConfigurationVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the type configuration.

" + } + }, + "TargetDetails": { + "target": "com.amazonaws.cloudformation#ChangeSetHookTargetDetails", + "traits": { + "smithy.api#documentation": "

Specifies details about the target that the Hook will run against.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the resource, the Hook, and the Hook version to be invoked.

" + } + }, + "com.amazonaws.cloudformation#ChangeSetHookResourceTargetDetails": { + "type": "structure", + "members": { + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The resource's logical ID, which is defined in the stack's template.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#HookTargetTypeName", + "traits": { + "smithy.api#documentation": "

The type of CloudFormation resource, such as AWS::S3::Bucket.

" + } + }, + "ResourceAction": { + "target": "com.amazonaws.cloudformation#ChangeAction", + "traits": { + "smithy.api#documentation": "

Specifies the action of the resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies RESOURCE type target details for activated Hooks.

" + } + }, + "com.amazonaws.cloudformation#ChangeSetHookTargetDetails": { + "type": "structure", + "members": { + "TargetType": { + "target": "com.amazonaws.cloudformation#HookTargetType", + "traits": { + "smithy.api#documentation": "

The Hook target type.

" + } + }, + "ResourceTargetDetails": { + "target": "com.amazonaws.cloudformation#ChangeSetHookResourceTargetDetails", + "traits": { + "smithy.api#documentation": "

Required if TargetType is RESOURCE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies target details for an activated Hook.

" + } + }, + "com.amazonaws.cloudformation#ChangeSetHooks": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ChangeSetHook" + } + }, + "com.amazonaws.cloudformation#ChangeSetHooksStatus": { + "type": "enum", + "members": { + "PLANNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLANNING" + } + }, + "PLANNED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLANNED" + } + }, + "UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNAVAILABLE" + } + } + } + }, + "com.amazonaws.cloudformation#ChangeSetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + }, + "smithy.api#pattern": "^arn:[-a-zA-Z0-9:/]*$" + } + }, + "com.amazonaws.cloudformation#ChangeSetName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z][-a-zA-Z0-9]*$" + } + }, + "com.amazonaws.cloudformation#ChangeSetNameOrId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1600 + }, + "smithy.api#pattern": "^[a-zA-Z][-a-zA-Z0-9]*|arn:[-a-zA-Z0-9:/]*$" + } + }, + "com.amazonaws.cloudformation#ChangeSetNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ChangeSetNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified change set name or ID doesn't exit. To view valid change sets for a stack, use the\n ListChangeSets operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#ChangeSetStatus": { + "type": "enum", + "members": { + "CREATE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_PENDING" + } + }, + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_COMPLETE" + } + }, + "DELETE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_PENDING" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_COMPLETE" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#ChangeSetStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#ChangeSetSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ChangeSetSummary" + } + }, + "com.amazonaws.cloudformation#ChangeSetSummary": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The ID of the stack with which the change set is associated.

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name of the stack with which the change set is associated.

" + } + }, + "ChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The ID of the change set.

" + } + }, + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetName", + "traits": { + "smithy.api#documentation": "

The name of the change set.

" + } + }, + "ExecutionStatus": { + "target": "com.amazonaws.cloudformation#ExecutionStatus", + "traits": { + "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change\n set. If you can't execute the change set, the status indicates why. For example, a change set\n might be in an UNAVAILABLE state because CloudFormation is still creating it or in an\n OBSOLETE state because the stack was already updated.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ChangeSetStatus", + "traits": { + "smithy.api#documentation": "

The state of the change set, such as CREATE_PENDING,\n CREATE_COMPLETE, or FAILED.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#ChangeSetStatusReason", + "traits": { + "smithy.api#documentation": "

A description of the change set's status. For example, if your change set is in the\n FAILED state, CloudFormation shows the error message.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#documentation": "

The start time when the change set was created, in UTC.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

Descriptive information about the change set.

" + } + }, + "IncludeNestedStacks": { + "target": "com.amazonaws.cloudformation#IncludeNestedStacks", + "traits": { + "smithy.api#documentation": "

Specifies the current setting of IncludeNestedStacks for the change set.

" + } + }, + "ParentChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The parent change set ID.

" + } + }, + "RootChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The root change set ID.

" + } + }, + "ImportExistingResources": { + "target": "com.amazonaws.cloudformation#ImportExistingResources", + "traits": { + "smithy.api#documentation": "

Indicates if the change set imports resources that already exist.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ChangeSetSummary structure describes a change set, its status, and the\n stack with which it's associated.

" + } + }, + "com.amazonaws.cloudformation#ChangeSetType": { + "type": "enum", + "members": { + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE" + } + }, + "UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE" + } + }, + "IMPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT" + } + } + } + }, + "com.amazonaws.cloudformation#ChangeSource": { + "type": "enum", + "members": { + "ResourceReference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceReference" + } + }, + "ParameterReference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ParameterReference" + } + }, + "ResourceAttribute": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceAttribute" + } + }, + "DirectModification": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DirectModification" + } + }, + "Automatic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Automatic" + } + }, + "NoModification": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NoModification" + } + } + } + }, + "com.amazonaws.cloudformation#ChangeType": { + "type": "enum", + "members": { + "Resource": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Resource" + } + } + } + }, + "com.amazonaws.cloudformation#Changes": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Change" + } + }, + "com.amazonaws.cloudformation#ClientRequestToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][-a-zA-Z0-9]*$" + } + }, + "com.amazonaws.cloudformation#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudformation#CloudFormation": { + "type": "service", + "version": "2010-05-15", + "operations": [ + { + "target": "com.amazonaws.cloudformation#ActivateOrganizationsAccess" + }, + { + "target": "com.amazonaws.cloudformation#ActivateType" + }, + { + "target": "com.amazonaws.cloudformation#BatchDescribeTypeConfigurations" + }, + { + "target": "com.amazonaws.cloudformation#CancelUpdateStack" + }, + { + "target": "com.amazonaws.cloudformation#ContinueUpdateRollback" + }, + { + "target": "com.amazonaws.cloudformation#CreateChangeSet" + }, + { + "target": "com.amazonaws.cloudformation#CreateGeneratedTemplate" + }, + { + "target": "com.amazonaws.cloudformation#CreateStack" + }, + { + "target": "com.amazonaws.cloudformation#CreateStackInstances" + }, + { + "target": "com.amazonaws.cloudformation#CreateStackRefactor" + }, + { + "target": "com.amazonaws.cloudformation#CreateStackSet" + }, + { + "target": "com.amazonaws.cloudformation#DeactivateOrganizationsAccess" + }, + { + "target": "com.amazonaws.cloudformation#DeactivateType" + }, + { + "target": "com.amazonaws.cloudformation#DeleteChangeSet" + }, + { + "target": "com.amazonaws.cloudformation#DeleteGeneratedTemplate" + }, + { + "target": "com.amazonaws.cloudformation#DeleteStack" + }, + { + "target": "com.amazonaws.cloudformation#DeleteStackInstances" + }, + { + "target": "com.amazonaws.cloudformation#DeleteStackSet" + }, + { + "target": "com.amazonaws.cloudformation#DeregisterType" + }, + { + "target": "com.amazonaws.cloudformation#DescribeAccountLimits" + }, + { + "target": "com.amazonaws.cloudformation#DescribeChangeSet" + }, + { + "target": "com.amazonaws.cloudformation#DescribeChangeSetHooks" + }, + { + "target": "com.amazonaws.cloudformation#DescribeEvents" + }, + { + "target": "com.amazonaws.cloudformation#DescribeGeneratedTemplate" + }, + { + "target": "com.amazonaws.cloudformation#DescribeOrganizationsAccess" + }, + { + "target": "com.amazonaws.cloudformation#DescribePublisher" + }, + { + "target": "com.amazonaws.cloudformation#DescribeResourceScan" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatus" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackEvents" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackInstance" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackRefactor" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackResource" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackResourceDrifts" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackResources" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStacks" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackSet" + }, + { + "target": "com.amazonaws.cloudformation#DescribeStackSetOperation" + }, + { + "target": "com.amazonaws.cloudformation#DescribeType" + }, + { + "target": "com.amazonaws.cloudformation#DescribeTypeRegistration" + }, + { + "target": "com.amazonaws.cloudformation#DetectStackDrift" + }, + { + "target": "com.amazonaws.cloudformation#DetectStackResourceDrift" + }, + { + "target": "com.amazonaws.cloudformation#DetectStackSetDrift" + }, + { + "target": "com.amazonaws.cloudformation#EstimateTemplateCost" + }, + { + "target": "com.amazonaws.cloudformation#ExecuteChangeSet" + }, + { + "target": "com.amazonaws.cloudformation#ExecuteStackRefactor" + }, + { + "target": "com.amazonaws.cloudformation#GetGeneratedTemplate" + }, + { + "target": "com.amazonaws.cloudformation#GetHookResult" + }, + { + "target": "com.amazonaws.cloudformation#GetStackPolicy" + }, + { + "target": "com.amazonaws.cloudformation#GetTemplate" + }, + { + "target": "com.amazonaws.cloudformation#GetTemplateSummary" + }, + { + "target": "com.amazonaws.cloudformation#ImportStacksToStackSet" + }, + { + "target": "com.amazonaws.cloudformation#ListChangeSets" + }, + { + "target": "com.amazonaws.cloudformation#ListExports" + }, + { + "target": "com.amazonaws.cloudformation#ListGeneratedTemplates" + }, + { + "target": "com.amazonaws.cloudformation#ListHookResults" + }, + { + "target": "com.amazonaws.cloudformation#ListImports" + }, + { + "target": "com.amazonaws.cloudformation#ListResourceScanRelatedResources" + }, + { + "target": "com.amazonaws.cloudformation#ListResourceScanResources" + }, + { + "target": "com.amazonaws.cloudformation#ListResourceScans" + }, + { + "target": "com.amazonaws.cloudformation#ListStackInstanceResourceDrifts" + }, + { + "target": "com.amazonaws.cloudformation#ListStackInstances" + }, + { + "target": "com.amazonaws.cloudformation#ListStackRefactorActions" + }, + { + "target": "com.amazonaws.cloudformation#ListStackRefactors" + }, + { + "target": "com.amazonaws.cloudformation#ListStackResources" + }, + { + "target": "com.amazonaws.cloudformation#ListStacks" + }, + { + "target": "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargets" + }, + { + "target": "com.amazonaws.cloudformation#ListStackSetOperationResults" + }, + { + "target": "com.amazonaws.cloudformation#ListStackSetOperations" + }, + { + "target": "com.amazonaws.cloudformation#ListStackSets" + }, + { + "target": "com.amazonaws.cloudformation#ListTypeRegistrations" + }, + { + "target": "com.amazonaws.cloudformation#ListTypes" + }, + { + "target": "com.amazonaws.cloudformation#ListTypeVersions" + }, + { + "target": "com.amazonaws.cloudformation#PublishType" + }, + { + "target": "com.amazonaws.cloudformation#RecordHandlerProgress" + }, + { + "target": "com.amazonaws.cloudformation#RegisterPublisher" + }, + { + "target": "com.amazonaws.cloudformation#RegisterType" + }, + { + "target": "com.amazonaws.cloudformation#RollbackStack" + }, + { + "target": "com.amazonaws.cloudformation#SetStackPolicy" + }, + { + "target": "com.amazonaws.cloudformation#SetTypeConfiguration" + }, + { + "target": "com.amazonaws.cloudformation#SetTypeDefaultVersion" + }, + { + "target": "com.amazonaws.cloudformation#SignalResource" + }, + { + "target": "com.amazonaws.cloudformation#StartResourceScan" + }, + { + "target": "com.amazonaws.cloudformation#StopStackSetOperation" + }, + { + "target": "com.amazonaws.cloudformation#TestType" + }, + { + "target": "com.amazonaws.cloudformation#UpdateGeneratedTemplate" + }, + { + "target": "com.amazonaws.cloudformation#UpdateStack" + }, + { + "target": "com.amazonaws.cloudformation#UpdateStackInstances" + }, + { + "target": "com.amazonaws.cloudformation#UpdateStackSet" + }, + { + "target": "com.amazonaws.cloudformation#UpdateTerminationProtection" + }, + { + "target": "com.amazonaws.cloudformation#ValidateTemplate" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "CloudFormation", + "arnNamespace": "cloudformation", + "cloudFormationName": "CloudFormation", + "cloudTrailEventSource": "cloudformation.amazonaws.com", + "endpointPrefix": "cloudformation" + }, + "aws.auth#sigv4": { + "name": "cloudformation" + }, + "aws.protocols#awsQuery": {}, + "smithy.api#documentation": "CloudFormation\n

CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably and\n repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store,\n Amazon Simple Notification Service, Elastic Load Balancing, and Amazon EC2 Auto Scaling to build highly reliable, highly scalable, cost-effective\n applications without creating or configuring the underlying Amazon Web Services infrastructure.

\n

With CloudFormation, you declare all your resources and dependencies in a template file. The\n template defines a collection of resources as a single unit called a stack. CloudFormation creates\n and deletes all member resources of the stack together and manages all dependencies between\n the resources for you.

\n

For more information about CloudFormation, see the CloudFormation product page.

\n

CloudFormation makes use of other Amazon Web Services products. If you need additional technical information\n about a specific Amazon Web Services product, you can find the product's technical documentation at docs.aws.amazon.com.

", + "smithy.api#title": "AWS CloudFormation", + "smithy.api#xmlNamespace": { + "uri": "http://cloudformation.amazonaws.com/doc/2010-05-15/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 14, + "nodes": "/////wAAAAH/////AAAAAAAAAA0AAAADAAAAAQAAAAQF9eEMAAAAAgAAAAUF9eEMAAAAAwAAAAgAAAAGAAAABAAAAAcF9eELAAAABQX14QkF9eEKAAAABAAAAAsAAAAJAAAABgAAAAoF9eEIAAAABwX14QYF9eEHAAAABQAAAAwF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAAOAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://cloudformation.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{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://cloudformation.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-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://cloudformation-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://cloudformation.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-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 disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + } + }, + "com.amazonaws.cloudformation#ConcurrencyMode": { + "type": "enum", + "members": { + "STRICT_FAILURE_TOLERANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRICT_FAILURE_TOLERANCE" + } + }, + "SOFT_FAILURE_TOLERANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOFT_FAILURE_TOLERANCE" + } + } + } + }, + "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConcurrentResourcesLimitExceeded", + "httpResponseCode": 429 + }, + "smithy.api#documentation": "

No more than 5 generated templates can be in an InProgress or Pending status at one\n time. This error is also returned if a generated template that is in an InProgress or\n Pending status is attempted to be updated or deleted.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.cloudformation#ConfigurationSchema": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 60000 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.cloudformation#ConnectionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+$" + } + }, + "com.amazonaws.cloudformation#ContinueUpdateRollback": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ContinueUpdateRollbackInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ContinueUpdateRollbackOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Continues rolling back a stack from UPDATE_ROLLBACK_FAILED to\n UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can\n manually fix the error and continue the rollback. By continuing the rollback, you can return\n your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state) and then try\n to update the stack again.

\n

A stack enters the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll\n back all changes after a failed stack update. For example, this might occur when a stack\n attempts to roll back to an old database that was deleted outside of CloudFormation. Because\n CloudFormation doesn't know the instance was deleted, it assumes the instance still exists and\n attempts to roll back to it, causing the update rollback to fail.

\n

For more information, see Continue rolling back an update in the CloudFormation User Guide. For\n information for troubleshooting a failed update rollback, see Update rollback failed.

\n

\n ForceRollback and ResourcesToSkip are mutually exclusive.\n For details, see ContinueUpdateRollbackInput$ForceRollback.

" + } + }, + "com.amazonaws.cloudformation#ContinueUpdateRollbackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique ID of the stack that you want to continue rolling back.

\n \n

Don't specify the name of a nested stack (a stack that was created by using the\n AWS::CloudFormation::Stack resource). Instead, use this operation on the\n parent stack (the stack that contains the AWS::CloudFormation::Stack\n resource).

\n
", + "smithy.api#required": {} + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to roll back the\n stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always\n uses this role for all future operations on the stack. Provided that users have permission to\n operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with\n the stack. If no role is available, CloudFormation uses a temporary session that's generated from\n your user credentials.

" + } + }, + "ResourcesToSkip": { + "target": "com.amazonaws.cloudformation#ResourcesToSkip", + "traits": { + "smithy.api#documentation": "

A list of the logical IDs of the resources that CloudFormation skips during the continue\n update rollback operation. You can specify only resources that are in the\n UPDATE_FAILED state because a rollback failed. You can't specify resources that\n are in the UPDATE_FAILED state for other reasons, for example, because an update\n was canceled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

\n \n

Specify this property to skip rolling back resources that CloudFormation can't successfully\n roll back. We recommend that you troubleshoot resources before skipping them. CloudFormation sets the status of the\n specified resources to UPDATE_COMPLETE and continues to roll back the stack.\n After the rollback is complete, the state of the skipped resources will be inconsistent with\n the state of the resources in the stack template. Before performing another stack update,\n you must update the stack or resources to be consistent with each other. If you don't,\n subsequent stack updates might fail, and the stack will become unrecoverable.

\n
\n

Specify the minimum number of resources required to successfully roll back your stack. For\n example, a failed resource update might cause dependent resources to fail. In this case, it\n might not be necessary to skip the dependent resources.

\n

To skip resources that are part of nested stacks, use the following format:\n NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a\n stack resource (Type: AWS::CloudFormation::Stack) in the\n ResourcesToSkip list, then its corresponding embedded stack must be in one of\n the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or\n DELETE_FAILED.

\n \n

Don't confuse a child stack's name with its corresponding logical ID defined in the\n parent stack. For an example of a continue update rollback operation with nested stacks, see\n Continue rolling back from failed nested stack updates.

\n
" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this ContinueUpdateRollback request. Specify this\n token if you plan to retry requests so that CloudFormation knows that you're not attempting to\n continue the rollback to a stack with the same name. You might retry\n ContinueUpdateRollback requests to ensure that CloudFormation successfully received\n them.

" + } + }, + "ForceRollback": { + "target": "com.amazonaws.cloudformation#ForceRollback", + "traits": { + "smithy.api#documentation": "

Specifies whether CloudFormation forces the rollback to continue by skipping resources\n currently in the UPDATE_FAILED state. Use this instead of listing each resource\n individually in ResourcesToSkip. Only resources that entered the\n UPDATE_FAILED state because a rollback failed are skipped. If you don't specify\n a value, the default is false and CloudFormation doesn't skip any resources.

\n

\n ForceRollback and ResourcesToSkip are mutually exclusive.\n Specifying both in the same request returns a validation error.

\n \n

We recommend that you troubleshoot resources before skipping them. CloudFormation sets the status of the\n skipped resources to UPDATE_COMPLETE and continues to roll back the stack,\n including resources in nested stacks. After the rollback completes, the skipped resources no\n longer match the resources in the stack template. Before performing another stack update,\n you must update the stack or resources to be consistent with each other. If you don't,\n subsequent stack updates might fail, and the stack will become unrecoverable.

\n

Drift detection reports skipped resources as NOT_CHECKED. For guidance,\n see Continue rolling back an update in the CloudFormation User Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the ContinueUpdateRollback action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ContinueUpdateRollbackOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The output for a ContinueUpdateRollback operation.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateChangeSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateChangeSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#AlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#InsufficientCapabilitiesException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a list of changes that will be applied to a stack so that you can review the\n changes before executing them. You can create a change set for a stack that doesn't exist or\n an existing stack. If you create a change set for a stack that doesn't exist, the change set\n shows all of the resources that CloudFormation will create. If you create a change set for an\n existing stack, CloudFormation compares the stack's information with the information that you\n submit in the change set and lists the differences. Use change sets to understand which\n resources CloudFormation will create or change, and how it will change resources in an existing\n stack, before you create or update a stack.

\n

To create a change set for a stack that doesn't exist, for the ChangeSetType\n parameter, specify CREATE. To create a change set for an existing stack, specify\n UPDATE for the ChangeSetType parameter. To create a change set for\n an import operation, specify IMPORT for the ChangeSetType parameter.\n After the CreateChangeSet call successfully completes, CloudFormation starts creating\n the change set. To check the status of the change set or to review it, use the DescribeChangeSet action.

\n

When you are satisfied with the changes the change set will make, execute the change set\n by using the ExecuteChangeSet action. CloudFormation doesn't make changes until\n you execute the change set.

\n

To create a change set for the entire stack hierarchy, set\n IncludeNestedStacks to True.

" + } + }, + "com.amazonaws.cloudformation#CreateChangeSetInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique ID of the stack for which you are creating a change set. CloudFormation\n generates the change set by comparing this stack's information with the information that you\n submit, such as a modified template or different parameter input values.

", + "smithy.api#required": {} + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

A structure that contains the body of the revised template, with a minimum length of 1\n byte and a maximum length of 51,200 bytes. CloudFormation generates the change set by comparing\n this template with the template of the stack that you specified.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of the file that contains the revised template. The URL must point to a template\n (max size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. CloudFormation\n generates the change set by comparing this template with the stack that you specified. The\n location for an Amazon S3 bucket must start with https://. URLs from S3 static\n websites are not supported.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "UsePreviousTemplate": { + "target": "com.amazonaws.cloudformation#UsePreviousTemplate", + "traits": { + "smithy.api#documentation": "

Whether to reuse the template that's associated with the stack to create the change\n set.

\n

When using templates with the AWS::LanguageExtensions transform, provide the\n template instead of using UsePreviousTemplate to ensure new parameter values and\n Systems Manager parameter updates are applied correctly. For more information, see AWS::LanguageExtensions transform.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the change\n set. For more information, see the Parameter data type.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your\n Amazon Web Services account, for example, by creating new IAM users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must\n specify CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all\n permissions associated with them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can\n include simple actions like find-and-replace operations, all the way to extensive\n transformations of entire templates. Because of this, users typically create a change set\n from the processed template, so that they can review the changes resulting from the macros\n before actually creating the stack. If your stack template contains one or more macros,\n and you choose to create a stack directly from the processed template, without first\n reviewing the resulting changes in a change set, you must acknowledge this capability.\n This includes the AWS::Include\n and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    \n \n

    This capacity doesn't apply to creating change sets, and specifying it when creating\n change sets has no effect.

    \n

    If you want to create a stack from a stack template that contains macros\n and nested stacks, you must create or update the stack directly\n from the template using the CreateStack or UpdateStack action, and specifying this capability.

    \n
    \n

    For more information about macros, see Perform custom processing\n on CloudFormation templates with template macros.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

Specifies which resource types you can work with, such as AWS::EC2::Instance\n or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource type that you're updating, the\n stack update fails. By default, CloudFormation grants permissions to all resource types. IAM\n uses this parameter for condition keys in IAM policies for CloudFormation. For more information,\n see Control CloudFormation\n access with Identity and Access Management in the CloudFormation User Guide.

\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes when executing the\n change set. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation\n uses this role for all future operations on the stack. Provided that users have permission to\n operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least permission.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with\n the stack. If no role is available, CloudFormation uses a temporary session that is generated from\n your user credentials.

" + } + }, + "RollbackConfiguration": { + "target": "com.amazonaws.cloudformation#RollbackConfiguration", + "traits": { + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating\n operations, and for the specified monitoring period afterwards.

" + } + }, + "NotificationARNs": { + "target": "com.amazonaws.cloudformation#NotificationARNs", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Amazon SNS topics that CloudFormation associates with the\n stack. To remove all associated notification topics, specify an empty list.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to\n resources in the stack. You can specify a maximum of 50 tags.

" + } + }, + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the change set. The name must be unique among all change sets that are\n associated with the specified stack.

\n

A change set name can contain only alphanumeric, case sensitive characters, and hyphens.\n It must start with an alphabetical character and can't exceed 128 characters.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.cloudformation#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this CreateChangeSet request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to create\n another change set with the same name. You might retry CreateChangeSet requests\n to ensure that CloudFormation successfully received them.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description to help you identify this change set.

" + } + }, + "ChangeSetType": { + "target": "com.amazonaws.cloudformation#ChangeSetType", + "traits": { + "smithy.api#documentation": "

The type of change set operation. To create a change set for a new stack, specify\n CREATE. To create a change set for an existing stack, specify\n UPDATE. To create a change set for an import operation, specify\n IMPORT.

\n

If you create a change set for a new stack, CloudFormation creates a stack with a unique stack\n ID, but no template or resources. The stack will be in the REVIEW_IN_PROGRESS\n state until you execute the change set.

\n

By default, CloudFormation specifies UPDATE. You can't use the\n UPDATE type to create a change set for a new stack or the CREATE\n type to create a change set for an existing stack.

" + } + }, + "ResourcesToImport": { + "target": "com.amazonaws.cloudformation#ResourcesToImport", + "traits": { + "smithy.api#documentation": "

The resources to import into your stack.

" + } + }, + "IncludeNestedStacks": { + "target": "com.amazonaws.cloudformation#IncludeNestedStacks", + "traits": { + "smithy.api#documentation": "

Creates a change set for the all nested stacks specified in the template. The default\n behavior of this action is set to False. To include nested sets in a change set,\n specify True.

" + } + }, + "OnStackFailure": { + "target": "com.amazonaws.cloudformation#OnStackFailure", + "traits": { + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. If this parameter is\n specified, the DisableRollback parameter to the ExecuteChangeSet API operation must not be specified. This must be one of these\n values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only\n valid when the ChangeSetType parameter is set to CREATE. If the\n deletion of the stack fails, the status of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent\n to specifying true for the DisableRollback parameter to the\n ExecuteChangeSet API operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is\n equivalent to specifying false for the DisableRollback parameter\n to the ExecuteChangeSet API operation.

    \n
  • \n
\n

For nested stacks, when the OnStackFailure parameter is set to\n DELETE for the change set for the parent stack, any failure in a child stack\n will cause the parent stack creation to fail and all stacks to be deleted.

" + } + }, + "ImportExistingResources": { + "target": "com.amazonaws.cloudformation#ImportExistingResources", + "traits": { + "smithy.api#documentation": "

Indicates if the change set auto-imports resources that already exist. For more\n information, see Import Amazon Web Services\n resources into a CloudFormation stack automatically in the\n CloudFormation User Guide.

\n \n

This parameter can only import resources that have custom names in templates. For more\n information, see name\n type in the CloudFormation User Guide. To import resources that do not\n accept custom names, such as EC2 instances, use the ResourcesToImport parameter\n instead.

\n
" + } + }, + "DeploymentMode": { + "target": "com.amazonaws.cloudformation#DeploymentMode", + "traits": { + "smithy.api#documentation": "

Determines how CloudFormation handles configuration drift during deployment.

\n
    \n
  • \n

    \n REVERT_DRIFT – Creates a drift-aware change set that brings actual\n resource states in line with template definitions. Provides a three-way comparison between\n actual state, previous deployment state, and desired state.

    \n
  • \n
\n

For more information, see Using drift-aware\n change sets in the CloudFormation User Guide.

" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for this stack operation, including the deployment\n mode.

" + } + }, + "DisableValidation": { + "target": "com.amazonaws.cloudformation#DisableValidation", + "traits": { + "smithy.api#documentation": "

\n Set to true to disable pre-deployment validations in changeset or stack operations.\n

\n

\n Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the CreateChangeSet action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateChangeSetOutput": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the change set.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The unique ID of the stack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the CreateChangeSet action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateGeneratedTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateGeneratedTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateGeneratedTemplateOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#AlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a template from existing resources that are not already managed with CloudFormation.\n You can check the status of the template generation using the\n DescribeGeneratedTemplate API action.

", + "smithy.api#examples": [ + { + "title": "To create a generated template", + "documentation": "This example creates a generated template with a resources file.", + "input": { + "Resources": [ + { + "ResourceType": "AWS::S3::Bucket", + "ResourceIdentifier": { + "BucketName": "jazz-bucket" + } + }, + { + "ResourceType": "AWS::EC2::DHCPOptions", + "ResourceIdentifier": { + "DhcpOptionsId": "random-id123" + } + } + ], + "GeneratedTemplateName": "JazzyTemplate" + }, + "output": { + "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca" + } + } + ] + } + }, + "com.amazonaws.cloudformation#CreateGeneratedTemplateInput": { + "type": "structure", + "members": { + "Resources": { + "target": "com.amazonaws.cloudformation#ResourceDefinitions", + "traits": { + "smithy.api#documentation": "

An optional list of resources to be included in the generated template.

\n

If no resources are specified,the template will be created without any resources.\n Resources can be added to the template using the UpdateGeneratedTemplate API\n action.

" + } + }, + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name assigned to the generated template.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

An optional name or ARN of a stack to use as the base stack for the generated\n template.

" + } + }, + "TemplateConfiguration": { + "target": "com.amazonaws.cloudformation#TemplateConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details of the generated template, including the\n DeletionPolicy and UpdateReplacePolicy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateGeneratedTemplateOutput": { + "type": "structure", + "members": { + "GeneratedTemplateId": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the generated template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateStackInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateStackOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#AlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#InsufficientCapabilitiesException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a stack as specified in the template. After the call completes successfully, the\n stack creation starts. You can check the status of the stack through the DescribeStacks operation.

\n

For more information about creating a stack and monitoring stack progress, see Managing Amazon Web Services\n resources as a single unit with CloudFormation stacks in the\n CloudFormation User Guide.

", + "smithy.test#smokeTests": [ + { + "id": "CreateStackFailure", + "params": { + "StackName": "fakestack", + "TemplateURL": "http://s3.amazonaws.com/foo/bar" + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ] + } + }, + "com.amazonaws.cloudformation#CreateStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name that's associated with the stack. The name must be unique in the Region in which\n you are creating the stack.

\n \n

A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It\n must start with an alphabetical character and can't be longer than 128 characters.

\n
", + "smithy.api#required": {} + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body with a minimum length of 1 byte and a maximum\n length of 51,200 bytes.

\n

Conditional: You must specify either TemplateBody or\n TemplateURL, but not both.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template (max\n size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for\n an Amazon S3 bucket must start with https://. URLs from S3 static websites are not\n supported.

\n

Conditional: You must specify either the TemplateBody or the\n TemplateURL parameter, but not both.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack.\n For more information, see the Parameter data\n type.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Set to true to disable rollback of the stack if stack creation failed. You\n can specify either DisableRollback or OnFailure, but not\n both.

\n

Default: false\n

" + } + }, + "RollbackConfiguration": { + "target": "com.amazonaws.cloudformation#RollbackConfiguration", + "traits": { + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating\n operations, and for the specified monitoring period afterwards.

" + } + }, + "TimeoutInMinutes": { + "target": "com.amazonaws.cloudformation#TimeoutMinutes", + "traits": { + "smithy.api#documentation": "

The amount of time that can pass before the stack status becomes\n CREATE_FAILED; if DisableRollback is not set or is set to\n false, the stack will be rolled back.

" + } + }, + "NotificationARNs": { + "target": "com.amazonaws.cloudformation#NotificationARNs", + "traits": { + "smithy.api#documentation": "

The Amazon SNS topic ARNs to publish stack related events. You can find your Amazon SNS topic ARNs\n using the Amazon SNS console or your Command Line Interface (CLI).

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your\n Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must\n specify CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all\n permissions associated with them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can\n include simple actions like find-and-replace operations, all the way to extensive\n transformations of entire templates. Because of this, users typically create a change set\n from the processed template, so that they can review the changes resulting from the macros\n before actually creating the stack. If your stack template contains one or more macros,\n and you choose to create a stack directly from the processed template, without first\n reviewing the resulting changes in a change set, you must acknowledge this capability.\n This includes the AWS::Include\n and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    \n

    If you want to create a stack from a stack template that contains macros\n and nested stacks, you must create the stack directly from the\n template using this capability.

    \n \n

    You should only create stacks directly from a stack template that contains macros if\n you know what processing the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack\n templates. Be aware that the Lambda function owner can update the function operation\n without CloudFormation being notified.

    \n
    \n

    For more information, see Perform custom processing\n on CloudFormation templates with template macros.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

Specifies which resource types you can work with, such as AWS::EC2::Instance\n or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're creating, the stack\n creation fails. By default, CloudFormation grants permissions to all resource types. IAM uses\n this parameter for CloudFormation-specific condition keys in IAM policies. For more information,\n see Control CloudFormation\n access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to create the\n stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always\n uses this role for all future operations on the stack. Provided that users have permission to\n operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with\n the stack. If no role is available, CloudFormation uses a temporary session that's generated from\n your user credentials.

" + } + }, + "OnFailure": { + "target": "com.amazonaws.cloudformation#OnFailure", + "traits": { + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. This must be one of:\n DO_NOTHING, ROLLBACK, or DELETE. You can specify\n either OnFailure or DisableRollback, but not both.

\n \n

Although the default setting is ROLLBACK, there is one exception. This\n exception occurs when a StackSet attempts to deploy a stack instance and the stack instance\n fails to create successfully. In this case, the CreateStack call overrides the\n default setting and sets the value of OnFailure to DELETE.

\n
\n

Default: ROLLBACK\n

" + } + }, + "StackPolicyBody": { + "target": "com.amazonaws.cloudformation#StackPolicyBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide.\n You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + } + }, + "StackPolicyURL": { + "target": "com.amazonaws.cloudformation#StackPolicyURL", + "traits": { + "smithy.api#documentation": "

Location of a file that contains the stack policy. The URL must point to a policy (maximum\n size: 16 KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3\n bucket must start with https://. URLs from S3 static websites are not\n supported.

\n

You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to the\n resources created in the stack. A maximum number of 50 tags can be specified.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this CreateStack request. Specify this token if you\n plan to retry requests so that CloudFormation knows that you're not attempting to create a stack\n with the same name. You might retry CreateStack requests to ensure that\n CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack\n operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the stack\n operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + } + }, + "EnableTerminationProtection": { + "target": "com.amazonaws.cloudformation#EnableTerminationProtection", + "traits": { + "smithy.api#documentation": "

Whether to enable termination protection on the specified stack. If a user attempts to\n delete a stack with termination protection enabled, the operation fails and the stack remains\n unchanged. For more information, see Protect CloudFormation\n stacks from being deleted in the CloudFormation User Guide. Termination\n protection is deactivated on stacks by default.

\n

For nested stacks,\n termination protection is set on the root stack and can't be changed directly on the nested\n stack.

" + } + }, + "RetainExceptOnCreate": { + "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", + "traits": { + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation\n rolls back. This includes newly created resources marked with a deletion policy of\n Retain.

\n

Default: false\n

" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for this stack operation, including the deployment\n mode.

" + } + }, + "DisableValidation": { + "target": "com.amazonaws.cloudformation#DisableValidation", + "traits": { + "smithy.api#documentation": "

\n Set to true to disable pre-deployment validations in changeset or stack operations.\n

\n

\n Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for CreateStack action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateStackInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateStackInstancesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateStackInstancesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#OperationIdAlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StaleRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates stack instances for the specified accounts, within the specified Amazon Web Services Regions. A\n stack instance refers to a stack in a specific account and Region. You must specify at least\n one value for either Accounts or DeploymentTargets, and you must\n specify at least one value for Regions.

\n \n

The maximum number of organizational unit (OUs) supported by a\n CreateStackInstances operation is 50.

\n

If you need more than 50, consider the following options:

\n
    \n
  • \n

    \n Batch processing: If you don't want to expose your OU\n hierarchy, split up the operations into multiple calls with less than 50 OUs\n each.

    \n
  • \n
  • \n

    \n Parent OU strategy: If you don't mind exposing the OU\n hierarchy, target a parent OU that contains all desired child OUs.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.cloudformation#CreateStackInstancesInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to create stack instances from.

", + "smithy.api#required": {} + } + }, + "Accounts": { + "target": "com.amazonaws.cloudformation#AccountList", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The account IDs of one or more Amazon Web Services accounts that you want to\n create stack instances in the specified Region(s) for.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "DeploymentTargets": { + "target": "com.amazonaws.cloudformation#DeploymentTargets", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts in which to create stack\n instances in the specified Amazon Web Services Regions.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions where you want to create stack instances using the\n specified Amazon Web Services accounts.

", + "smithy.api#required": {} + } + }, + "ParameterOverrides": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of StackSet parameters whose values you want to override in the selected stack\n instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified\n accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how\n CloudFormation sets parameter values during stack instance operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its\n value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and\n specify UsePreviousValue as true. (You can't specify both a\n value and set UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the StackSet, specify a\n parameter list but don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at\n all.

    \n
  • \n
\n

During StackSet updates, any parameter values overridden for a stack instance aren't\n updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in the\n StackSet; to add or delete a parameter itself, use UpdateStackSet\n to update the StackSet template.

" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

Preferences for how CloudFormation performs this StackSet operation.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation\n performs the StackSet operation only once, even if you retry the request multiple times. You\n might retry StackSet operation requests to ensure that CloudFormation successfully received\n them.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

\n

Repeating this StackSet operation with a new operation ID retries all stack instances\n whose status is OUTDATED.

", + "smithy.api#idempotencyToken": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateStackInstancesOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateStackOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

A unique identifier for this stack operation that can be used to track the operation's\n progress and events.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a CreateStack action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateStackRefactor": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateStackRefactorInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateStackRefactorOutput" + }, + "traits": { + "smithy.api#documentation": "

Creates a refactor across multiple stacks, with the list of stacks and resources that are\n affected.

" + } + }, + "com.amazonaws.cloudformation#CreateStackRefactorInput": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description to help you identify the stack refactor.

" + } + }, + "EnableStackCreation": { + "target": "com.amazonaws.cloudformation#EnableStackCreation", + "traits": { + "smithy.api#documentation": "

Determines if a new stack is created with the refactor.

" + } + }, + "ResourceMappings": { + "target": "com.amazonaws.cloudformation#ResourceMappings", + "traits": { + "smithy.api#documentation": "

The mappings for the stack resource Source and stack resource\n Destination.

" + } + }, + "StackDefinitions": { + "target": "com.amazonaws.cloudformation#StackDefinitions", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The stacks being refactored.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateStackRefactorOutput": { + "type": "structure", + "members": { + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreateStackSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#CreateStackSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#CreateStackSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CreatedButModifiedException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#NameAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a StackSet.

" + } + }, + "com.amazonaws.cloudformation#CreateStackSetInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name to associate with the StackSet. The name must be unique in the Region where you\n create your StackSet.

\n \n

A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It\n must start with an alphabetic character and can't be longer than 128 characters.

\n
", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description of the StackSet. You can use the description to identify the StackSet's\n purpose or other important information.

" + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

The structure that contains the template body, with a minimum length of 1 byte and a\n maximum length of 51,200 bytes.

\n

Conditional: You must specify either the TemplateBody or the\n TemplateURL parameter, but not both.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template\n (maximum size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The\n location for an Amazon S3 bucket must start with https://. S3 static website URLs are\n not supported.

\n

Conditional: You must specify either the TemplateBody or the\n TemplateURL parameter, but not both.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The stack ID you are importing into a new StackSet. Specify the Amazon Resource Name (ARN)\n of the stack.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

The input parameters for the StackSet template.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your StackSet template contains\n certain capabilities in order for CloudFormation to create the StackSet and related stack\n instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your\n Amazon Web Services account; for example, by creating new IAM users. For those StackSets, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must\n specify CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all\n permissions associated with them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your StackSet template references one or more\n macros, you must create the StackSet directly from the processed template, without first\n reviewing the resulting changes in a change set. To create the StackSet directly, you must\n acknowledge this capability. For more information, see Perform custom processing\n on CloudFormation templates with template macros.

    \n \n

    StackSets with service-managed permissions don't currently support the use of macros\n in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if\n you specify this capability for a StackSet with service-managed permissions, if you\n reference a macro in your template the StackSet operation will fail.

    \n
    \n
  • \n
" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

The key-value pairs to associate with this StackSet and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are created in the stacks. A\n maximum number of 50 tags can be specified.

\n

If you specify tags as part of a CreateStackSet action, CloudFormation checks to\n see if you have the required IAM permission to tag resources. If you don't, the entire\n CreateStackSet action fails with an access denied error, and the\n StackSet is not created.

" + } + }, + "AdministrationRoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to use to create this StackSet.

\n

Specify an IAM role only if you are using customized administrator roles to control\n which users or groups can manage specific StackSets within the same administrator account. For\n more information, see Grant\n self-managed permissions in the CloudFormation User Guide.

\n

Valid only if the permissions model is SELF_MANAGED.

" + } + }, + "ExecutionRoleName": { + "target": "com.amazonaws.cloudformation#ExecutionRoleName", + "traits": { + "smithy.api#documentation": "

The name of the IAM execution role to use to create the StackSet. If you do not specify\n an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole\n role for the StackSet operation.

\n

Specify an IAM role only if you are using customized execution roles to control which\n stack resources users and groups can include in their StackSets.

\n

Valid only if the permissions model is SELF_MANAGED.

" + } + }, + "PermissionModel": { + "target": "com.amazonaws.cloudformation#PermissionModels", + "traits": { + "smithy.api#documentation": "

Describes how the IAM roles required for StackSet operations are created. By default,\n SELF-MANAGED is specified.

\n " + } + }, + "AutoDeployment": { + "target": "com.amazonaws.cloudformation#AutoDeployment", + "traits": { + "smithy.api#documentation": "

Describes whether StackSets automatically deploys to Organizations accounts that\n are added to the target organization or organizational unit (OU). For more information, see\n Enable or disable automatic deployments for StackSets in Organizations\n in the CloudFormation User Guide.

\n

Required if the permissions model is SERVICE_MANAGED. (Not used with\n self-managed permissions.)

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    To create a StackSet with service-managed permissions while signed in to the management account, specify SELF.

    \n
  • \n
  • \n

    To create a StackSet with service-managed permissions while signed in to a delegated\n administrator account, specify DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated admin in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
\n

StackSets with service-managed permissions are created in the management account, including StackSets that are created by delegated administrators.

\n

Valid only if the permissions model is SERVICE_MANAGED.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this CreateStackSet request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to create\n another StackSet with the same name. You might retry CreateStackSet requests to\n ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

", + "smithy.api#idempotencyToken": {} + } + }, + "ManagedExecution": { + "target": "com.amazonaws.cloudformation#ManagedExecution", + "traits": { + "smithy.api#documentation": "

Describes whether CloudFormation performs non-conflicting operations concurrently and queues\n conflicting operations.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#CreateStackSetOutput": { + "type": "structure", + "members": { + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The ID of the StackSet that you're creating.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#CreatedButModifiedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CreatedButModifiedException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The specified resource exists, but has been changed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#CreationTime": { + "type": "timestamp" + }, + "com.amazonaws.cloudformation#DeactivateOrganizationsAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeactivateOrganizationsAccessInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeactivateOrganizationsAccessOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deactivates trusted access with Organizations. If trusted access is deactivated,\n the management account does not have permissions to create and manage\n service-managed StackSets for your organization.

" + } + }, + "com.amazonaws.cloudformation#DeactivateOrganizationsAccessInput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeactivateOrganizationsAccessOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DeactivateType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeactivateTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeactivateTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deactivates a public third-party extension, such as a resource or module, or a CloudFormation\n Hook when you no longer use it.

\n

Deactivating an extension deletes the configuration details that are associated with it.\n To temporarily disable a CloudFormation Hook instead, you can use SetTypeConfiguration.

\n

Once deactivated, an extension can't be used in any CloudFormation operation. This includes\n stack update operations where the stack template includes the extension, even if no updates\n are being made to the extension. In addition, deactivated extensions aren't automatically\n updated if a new version of the extension is released.

\n

To see which extensions are currently activated, use ListTypes.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#DeactivateTypeInput": { + "type": "structure", + "members": { + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The type name of the extension in this account and Region. If you specified a type name\n alias when enabling the extension, use the type name alias.

\n

Conditional: You must specify either Arn, or TypeName and\n Type.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The extension type.

\n

Conditional: You must specify either Arn, or TypeName and\n Type.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudformation#PrivateTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension in this account and Region.

\n

Conditional: You must specify either Arn, or TypeName and\n Type.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeactivateTypeOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DeleteChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeleteChangeSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeleteChangeSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidChangeSetStatusException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified change set. Deleting change sets ensures that no one executes the\n wrong change set.

\n

If the call successfully completes, CloudFormation successfully deleted the change set.

\n

If IncludeNestedStacks specifies True during the creation of the\n nested change set, then DeleteChangeSet will delete all change sets that belong\n to the stacks hierarchy and will also delete all change sets for nested stacks with the status\n of REVIEW_IN_PROGRESS.

" + } + }, + "com.amazonaws.cloudformation#DeleteChangeSetInput": { + "type": "structure", + "members": { + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the change set that you want to delete.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

If you specified the name of a change set to delete, specify the stack name or Amazon\n Resource Name (ARN) that's associated with it.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the DeleteChangeSet action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeleteChangeSetOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The output for the DeleteChangeSet action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DeleteGeneratedTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeleteGeneratedTemplateInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ConcurrentResourcesLimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deleted a generated template.

", + "smithy.api#examples": [ + { + "title": "To delete a generated template", + "documentation": "This example deletes a generated template", + "input": { + "GeneratedTemplateName": "JazzyTemplate" + } + } + ] + } + }, + "com.amazonaws.cloudformation#DeleteGeneratedTemplateInput": { + "type": "structure", + "members": { + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a generated template.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeleteStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeleteStackInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a specified stack. Once the call completes successfully, stack deletion starts.\n Deleted stacks don't show up in the DescribeStacks operation if the deletion\n has been completed successfully.

\n

For more information about deleting a stack, see Delete a stack from\n the CloudFormation console in the CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#DeleteStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID that's associated with the stack.

", + "smithy.api#required": {} + } + }, + "RetainResources": { + "target": "com.amazonaws.cloudformation#RetainResources", + "traits": { + "smithy.api#documentation": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs that\n are associated with the resources you want to retain. During deletion, CloudFormation deletes the\n stack but doesn't delete the retained resources.

\n

Retaining resources is useful when you can't delete a resource, such as a non-empty S3\n bucket, but you want to delete the stack.

" + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to delete the\n stack. CloudFormation uses the role's credentials to make calls on your behalf.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with\n the stack. If no role is available, CloudFormation uses a temporary session that's generated from\n your user credentials.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this DeleteStack request. Specify this token if you\n plan to retry requests so that CloudFormation knows that you're not attempting to delete a stack\n with the same name. You might retry DeleteStack requests to ensure that\n CloudFormation successfully received them.

\n

All events initiated by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack\n operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the stack\n operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + } + }, + "DeletionMode": { + "target": "com.amazonaws.cloudformation#DeletionMode", + "traits": { + "smithy.api#documentation": "

Specifies the deletion mode for the stack. Possible values are:

\n
    \n
  • \n

    \n STANDARD - Use the standard behavior. Specifying this value is the same\n as not specifying this parameter.

    \n
  • \n
  • \n

    \n FORCE_DELETE_STACK - Delete the stack if it's stuck in a\n DELETE_FAILED state due to resource deletion failure.

    \n
  • \n
" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for this stack operation, including the deployment\n mode.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for DeleteStack action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeleteStackInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeleteStackInstancesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeleteStackInstancesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationIdAlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StaleRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes stack instances for the specified accounts, in the specified Amazon Web Services Regions.

\n \n

The maximum number of organizational unit (OUs) supported by a\n DeleteStackInstances operation is 50.

\n

If you need more than 50, consider the following options:

\n
    \n
  • \n

    \n Batch processing: If you don't want to expose your OU\n hierarchy, split up the operations into multiple calls with less than 50 OUs\n each.

    \n
  • \n
  • \n

    \n Parent OU strategy: If you don't mind exposing the OU\n hierarchy, target a parent OU that contains all desired child OUs.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.cloudformation#DeleteStackInstancesInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to delete stack instances for.

", + "smithy.api#required": {} + } + }, + "Accounts": { + "target": "com.amazonaws.cloudformation#AccountList", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The account IDs of the Amazon Web Services accounts that you want to delete\n stack instances for.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "DeploymentTargets": { + "target": "com.amazonaws.cloudformation#DeploymentTargets", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts from which to delete\n stack instances.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Regions where you want to delete StackSet instances.

", + "smithy.api#required": {} + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

Preferences for how CloudFormation performs this StackSet operation.

" + } + }, + "RetainStacks": { + "target": "com.amazonaws.cloudformation#RetainStacks", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Removes the stack instances from the specified StackSet, but doesn't delete the stacks.\n You can't reassociate a retained stack or add an existing, saved stack to a new stack\n set.

\n

For more information, see StackSet operation options.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation\n performs the StackSet operation only once, even if you retry the request multiple times. You\n can retry StackSet operation requests to ensure that CloudFormation successfully received\n them.

\n

Repeating this StackSet operation with a new operation ID retries all stack instances\n whose status is OUTDATED.

", + "smithy.api#idempotencyToken": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeleteStackInstancesOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DeleteStackSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeleteStackSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeleteStackSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotEmptyException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a StackSet. Before you can delete a StackSet, all its member stack instances must\n be deleted. For more information about how to complete this, see DeleteStackInstances.

" + } + }, + "com.amazonaws.cloudformation#DeleteStackSetInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you're deleting. You can obtain this value by\n running ListStackSets.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeleteStackSetOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DeletionMode": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "FORCE_DELETE_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FORCE_DELETE_STACK" + } + } + } + }, + "com.amazonaws.cloudformation#DeletionTime": { + "type": "timestamp" + }, + "com.amazonaws.cloudformation#DeploymentConfig": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.cloudformation#DeploymentConfigMode", + "traits": { + "smithy.api#documentation": "

Specifies the deployment mode for the stack operation. Possible values are:

\n
    \n
  • \n

    \n STANDARD - Use the standard deployment behavior, ensuring resources are\n ready to serve traffic before completing the operation. This is the default. You do not need\n to specify this value explicitly.

    \n
  • \n
  • \n

    \n EXPRESS - Complete the stack operation when resource configuration is\n applied, without waiting for resources to become ready to serve traffic. Resources continue\n becoming ready in the background.

    \n
  • \n
" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Specifies whether to disable rollback of the stack if the stack operation fails.

\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The deployment configuration for a stack operation, including the deployment mode.

" + } + }, + "com.amazonaws.cloudformation#DeploymentConfigMode": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "EXPRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPRESS" + } + } + } + }, + "com.amazonaws.cloudformation#DeploymentMode": { + "type": "enum", + "members": { + "REVERT_DRIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REVERT_DRIFT" + } + } + } + }, + "com.amazonaws.cloudformation#DeploymentTargets": { + "type": "structure", + "members": { + "Accounts": { + "target": "com.amazonaws.cloudformation#AccountList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account IDs where you want to perform stack operations. How these accounts are\n used depends on the AccountFilterType property.

\n

If you have many account numbers, you can provide those accounts using the\n AccountsUrl property instead.

" + } + }, + "AccountsUrl": { + "target": "com.amazonaws.cloudformation#AccountsUrl", + "traits": { + "smithy.api#documentation": "

The Amazon S3 URL path to a file that contains a list of Amazon Web Services account IDs. The file\n format must be either .csv or .txt, and the data can be comma-separated\n or new-line-separated. There is currently a 10MB limit for the data (approximately 800,000\n accounts).

\n

This property serves the same purpose as Accounts but allows you to specify a\n large number of accounts.

" + } + }, + "OrganizationalUnitIds": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitIdList", + "traits": { + "smithy.api#documentation": "

The organization root ID or organizational unit (OU) IDs where you want to perform stack\n operations. CloudFormation will perform operations on accounts within these OUs and their child\n OUs.

" + } + }, + "AccountFilterType": { + "target": "com.amazonaws.cloudformation#AccountFilterType", + "traits": { + "smithy.api#documentation": "

Refines which accounts will have stack operations performed on them by specifying how to use\n the Accounts and OrganizationalUnitIds properties together.

\n

The following values determine how CloudFormation selects target accounts:

\n
    \n
  • \n

    \n INTERSECTION: Performs stack operations only on specific individual accounts\n within the selected OUs. Only accounts that are both specified in the Accounts\n property and belong to the specified OUs will be targeted.

    \n
  • \n
  • \n

    \n DIFFERENCE: Performs stack operations on all accounts in the selected OUs\n except for specific accounts listed in the Accounts property. This enables you to\n exclude certain accounts within an OU, such as suspended accounts.

    \n
  • \n
  • \n

    \n UNION: Performs stack operations on the specified OUs plus additional\n individual accounts listed in the Accounts property. This is the default value if\n AccountFilterType is not provided. This lets you target an entire OU and\n individual accounts from a different OU in one request. Note that UNION is not\n supported for CreateStackInstances operations.

    \n
  • \n
  • \n

    \n NONE: Performs stack operations on all accounts in the specified\n organizational units (OUs).

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Organizations accounts where you want to create, update, or delete\n stack instances. You can target either your entire organization or specific accounts using\n organizational units (OUs) and account filter options.

\n

CloudFormation doesn't deploy stack instances to the organization management account, even if the organization management account is in your organization or in an OU\n in your organization.

\n

When performing create operations, if you specify both OrganizationalUnitIds\n and Accounts, you must also specify the AccountFilterType property.

" + } + }, + "com.amazonaws.cloudformation#DeprecatedStatus": { + "type": "enum", + "members": { + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + }, + "DEPRECATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEPRECATED" + } + } + } + }, + "com.amazonaws.cloudformation#DeregisterType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DeregisterTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DeregisterTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Marks an extension or extension version as DEPRECATED in the CloudFormation\n registry, removing it from active use. Deprecated extensions or extension versions cannot be\n used in CloudFormation operations.

\n

To deregister an entire extension, you must individually deregister all active versions of\n that extension. If an extension has only a single active version, deregistering that version\n results in the extension itself being deregistered and marked as deprecated in the\n registry.

\n

You can't deregister the default version of an extension if there are other active version\n of that extension. If you do deregister the default version of an extension, the extension\n type itself is deregistered as well and marked as deprecated.

\n

To view the deprecation status of an extension or extension version, use DescribeType.

\n

For more information, see Remove\n third-party private extensions from your account in the\n CloudFormation User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#DeregisterTypeInput": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#PrivateTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "VersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of a specific version of the extension. The version ID is the value at the end of\n the Amazon Resource Name (ARN) assigned to the extension version when it is registered.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DeregisterTypeOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeAccountLimits": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeAccountLimitsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeAccountLimitsOutput" + }, + "traits": { + "smithy.api#documentation": "

Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you\n can create in your account. For more information about account limits, see Understand CloudFormation quotas in the CloudFormation User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AccountLimits" + } + } + }, + "com.amazonaws.cloudformation#DescribeAccountLimitsInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the DescribeAccountLimits action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeAccountLimitsOutput": { + "type": "structure", + "members": { + "AccountLimits": { + "target": "com.amazonaws.cloudformation#AccountLimitList", + "traits": { + "smithy.api#documentation": "

An account limit structure that contain a list of CloudFormation account limits and their\n values.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB in size, a string that identifies the next page of limits. If\n no additional page exists, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the DescribeAccountLimits action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeChangeSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeChangeSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ChangeSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the inputs for the change set and a list of changes that CloudFormation will make if\n you execute the change set. For more information, see Update\n CloudFormation stacks using change sets in the\n CloudFormation User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Changes" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "ChangeSetCreateComplete": { + "documentation": "Wait until change set status is CREATE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Status", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 30 + } + } + } + }, + "com.amazonaws.cloudformation#DescribeChangeSetHooks": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeChangeSetHooksInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeChangeSetHooksOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ChangeSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns Hook-related information for the change set and a list of changes that\n CloudFormation makes when you run the change set.

" + } + }, + "com.amazonaws.cloudformation#DescribeChangeSetHooksInput": { + "type": "structure", + "members": { + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the change set that you want to describe.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

If you specified the name of a change set, specify the stack name or stack ID (ARN) of the\n change set you want to describe.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

If specified, lists only the Hooks related to the specified\n LogicalResourceId.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeChangeSetHooksOutput": { + "type": "structure", + "members": { + "ChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The change set identifier (stack ID).

" + } + }, + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetName", + "traits": { + "smithy.api#documentation": "

The change set name.

" + } + }, + "Hooks": { + "target": "com.amazonaws.cloudformation#ChangeSetHooks", + "traits": { + "smithy.api#documentation": "

List of Hook objects.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ChangeSetHooksStatus", + "traits": { + "smithy.api#documentation": "

Provides the status of the change set Hook.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

Pagination token, null or empty if no more results.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The stack identifier (stack ID).

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The stack name.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeChangeSetInput": { + "type": "structure", + "members": { + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the change set that you want to describe.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

If you specified the name of a change set, specify the stack name or ID (ARN) of the\n change set you want to describe.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "IncludePropertyValues": { + "target": "com.amazonaws.cloudformation#IncludePropertyValues", + "traits": { + "smithy.api#documentation": "

If true, the returned changes include detailed changes in the property\n values.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the DescribeChangeSet action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeChangeSetOutput": { + "type": "structure", + "members": { + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetName", + "traits": { + "smithy.api#documentation": "

The name of the change set.

" + } + }, + "ChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the change set.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the stack that's associated with the change set.

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name of the stack that's associated with the change set.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

Information about the change set.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures that describes the input parameters and their\n values used to create the change set. For more information, see the Parameter data type.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#documentation": "

The start time when the change set was created, in UTC.

" + } + }, + "ExecutionStatus": { + "target": "com.amazonaws.cloudformation#ExecutionStatus", + "traits": { + "smithy.api#documentation": "

If the change set execution status is AVAILABLE, you can execute the change\n set. If you can't execute the change set, the status indicates why. For example, a change set\n might be in an UNAVAILABLE state because CloudFormation is still creating it or in an\n OBSOLETE state because the stack was already updated.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ChangeSetStatus", + "traits": { + "smithy.api#documentation": "

The current status of the change set, such as CREATE_PENDING,\n CREATE_COMPLETE, or FAILED.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#ChangeSetStatusReason", + "traits": { + "smithy.api#documentation": "

A description of the change set's status. For example, if your attempt to create a change\n set failed, CloudFormation shows the error message.

" + } + }, + "StackDriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#documentation": "

The drift status of the stack when the change set was created. Valid values:

\n
    \n
  • \n

    \n DRIFTED – The stack has drifted from its last deployment.

    \n
  • \n
  • \n

    \n IN_SYNC – The stack is in sync with its last deployment.

    \n
  • \n
  • \n

    \n NOT_CHECKED – CloudFormation doesn’t currently return this value.

    \n
  • \n
  • \n

    \n UNKNOWN – The drift status could not be determined.

    \n
  • \n
\n

Only present for drift-aware change sets.

" + } + }, + "NotificationARNs": { + "target": "com.amazonaws.cloudformation#NotificationARNs", + "traits": { + "smithy.api#documentation": "

The ARNs of the Amazon SNS topics that will be associated with the stack if you execute the\n change set.

" + } + }, + "RollbackConfiguration": { + "target": "com.amazonaws.cloudformation#RollbackConfiguration", + "traits": { + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating\n operations, and for the specified monitoring period afterwards.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

If you execute the change set, the list of capabilities that were explicitly acknowledged\n when the change set was created.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

If you execute the change set, the tags that will be associated with the stack.

" + } + }, + "Changes": { + "target": "com.amazonaws.cloudformation#Changes", + "traits": { + "smithy.api#documentation": "

A list of Change structures that describes the resources CloudFormation changes\n if you execute the change set.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB, a string that identifies the next page of changes. If there is\n no additional page, this value is null.

" + } + }, + "IncludeNestedStacks": { + "target": "com.amazonaws.cloudformation#IncludeNestedStacks", + "traits": { + "smithy.api#documentation": "

Verifies if IncludeNestedStacks is set to True.

" + } + }, + "ParentChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

Specifies the change set ID of the parent change set in the current nested change set\n hierarchy.

" + } + }, + "RootChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

Specifies the change set ID of the root change set in the current nested change set\n hierarchy.

" + } + }, + "OnStackFailure": { + "target": "com.amazonaws.cloudformation#OnStackFailure", + "traits": { + "smithy.api#documentation": "

Determines what action will be taken if stack creation fails. When this parameter is\n specified, the DisableRollback parameter to the ExecuteChangeSet API operation must not be specified. This must be one of these\n values:

\n
    \n
  • \n

    \n DELETE - Deletes the change set if the stack creation fails. This is only\n valid when the ChangeSetType parameter is set to CREATE. If the\n deletion of the stack fails, the status of the stack is DELETE_FAILED.

    \n
  • \n
  • \n

    \n DO_NOTHING - if the stack creation fails, do nothing. This is equivalent\n to specifying true for the DisableRollback parameter to the\n ExecuteChangeSet API operation.

    \n
  • \n
  • \n

    \n ROLLBACK - if the stack creation fails, roll back the stack. This is\n equivalent to specifying false for the DisableRollback parameter\n to the ExecuteChangeSet API operation.

    \n
  • \n
" + } + }, + "ImportExistingResources": { + "target": "com.amazonaws.cloudformation#ImportExistingResources", + "traits": { + "smithy.api#documentation": "

Indicates if the change set imports resources that already exist.

\n \n

This parameter can only import resources that have custom\n names in templates. To import resources that do not accept custom names, such as\n EC2 instances, use the resource import\n feature instead.

\n
" + } + }, + "DeploymentMode": { + "target": "com.amazonaws.cloudformation#DeploymentMode", + "traits": { + "smithy.api#documentation": "

The deployment mode specified when the change set was created. Valid value is\n REVERT_DRIFT. Only present for drift-aware change sets.

" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration specified when the change set was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the DescribeChangeSet action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeEvents": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeEventsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeEventsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns CloudFormation events based on flexible query criteria. Groups events by operation ID,\n enabling you to focus on individual stack operations during deployment.

\n

An operation is any action performed on a stack, including stack lifecycle actions\n (Create, Update, Delete, Rollback), change set creation, nested stack creation, and automatic\n rollbacks triggered by failures. Each operation has a unique identifier (Operation ID) and\n represents a discrete change attempt on the stack.

\n

Returns different types of events including:

\n
    \n
  • \n

    \n Progress events - Status updates during stack operation\n execution.

    \n
  • \n
  • \n

    \n Validation errors - Failures from CloudFormation Early\n Validations.

    \n
  • \n
  • \n

    \n Provisioning errors - Resource creation and update\n failures.

    \n
  • \n
  • \n

    \n Hook invocation errors - Failures from CloudFormation\n Hook during stack operations.

    \n
  • \n
\n \n

One of ChangeSetName, OperationId or StackName\n must be specified as input.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "OperationEvents" + } + } + }, + "com.amazonaws.cloudformation#DescribeEventsInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

The name or unique stack ID for which you want to retrieve events. If you specified the\n name of a change set, specify the stack name or ID (ARN) of the change set you want to\n describe.

" + } + }, + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the change set for which you want to retrieve\n events.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the operation for which you want to retrieve events.

" + } + }, + "Filters": { + "target": "com.amazonaws.cloudformation#EventFilter", + "traits": { + "smithy.api#documentation": "

Filters to apply when retrieving events.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeEventsOutput": { + "type": "structure", + "members": { + "OperationEvents": { + "target": "com.amazonaws.cloudformation#OperationEvents", + "traits": { + "smithy.api#documentation": "

A list of operation events that match the specified criteria.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call DescribeEvents again and\n assign that token to the request object's NextToken parameter. If the request\n returns all results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeGeneratedTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeGeneratedTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeGeneratedTemplateOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a generated template. The output includes details about the progress of the\n creation of a generated template started by a CreateGeneratedTemplate API action\n or the update of a generated template started with an UpdateGeneratedTemplate API\n action.

" + } + }, + "com.amazonaws.cloudformation#DescribeGeneratedTemplateInput": { + "type": "structure", + "members": { + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a generated template.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeGeneratedTemplateOutput": { + "type": "structure", + "members": { + "GeneratedTemplateId": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the generated template. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}.\n For example,\n arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc\n .

" + } + }, + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the generated template.

" + } + }, + "Resources": { + "target": "com.amazonaws.cloudformation#ResourceDetails", + "traits": { + "smithy.api#documentation": "

A list of objects describing the details of the resources in the template\n generation.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateStatus", + "traits": { + "smithy.api#documentation": "

The status of the template generation. Supported values are:

\n
    \n
  • \n

    \n CreatePending - the creation of the template is pending.

    \n
  • \n
  • \n

    \n CreateInProgress - the creation of the template is in progress.

    \n
  • \n
  • \n

    \n DeletePending - the deletion of the template is pending.

    \n
  • \n
  • \n

    \n DeleteInProgress - the deletion of the template is in progress.

    \n
  • \n
  • \n

    \n UpdatePending - the update of the template is pending.

    \n
  • \n
  • \n

    \n UpdateInProgress - the update of the template is in progress.

    \n
  • \n
  • \n

    \n Failed - the template operation failed.

    \n
  • \n
  • \n

    \n Complete - the template operation is complete.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#TemplateStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the current template generation status. This will provide more details if a\n failure happened.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#documentation": "

The time the generated template was created.

" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.cloudformation#LastUpdatedTime", + "traits": { + "smithy.api#documentation": "

The time the generated template was last updated.

" + } + }, + "Progress": { + "target": "com.amazonaws.cloudformation#TemplateProgress", + "traits": { + "smithy.api#documentation": "

An object describing the progress of the template generation.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The stack ARN of the base stack if a base stack was provided when generating the\n template.

" + } + }, + "TemplateConfiguration": { + "target": "com.amazonaws.cloudformation#TemplateConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details of the generated template, including the\n DeletionPolicy and UpdateReplacePolicy.

" + } + }, + "TotalWarnings": { + "target": "com.amazonaws.cloudformation#TotalWarnings", + "traits": { + "smithy.api#documentation": "

The number of warnings generated for this template. The warnings are found in the details\n of each of the resources in the template.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeOrganizationsAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeOrganizationsAccessInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeOrganizationsAccessOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the account's OrganizationAccess status. This API\n can be called either by the management account or the delegated administrator by using the\n CallAs parameter. This API can also be called without the CallAs\n parameter by the management account.

" + } + }, + "com.amazonaws.cloudformation#DescribeOrganizationsAccessInput": { + "type": "structure", + "members": { + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeOrganizationsAccessOutput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.cloudformation#OrganizationStatus", + "traits": { + "smithy.api#documentation": "

Presents the status of the OrganizationAccess.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribePublisher": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribePublisherInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribePublisherOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about a CloudFormation extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension\n publisher, DescribePublisher returns information about your own publisher\n account.

\n

For more information about registering as a publisher, see:

\n ", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#DescribePublisherInput": { + "type": "structure", + "members": { + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The ID of the extension publisher.

\n

If you don't supply a PublisherId, and you have registered as an extension\n publisher, DescribePublisher returns information about your own publisher\n account.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribePublisherOutput": { + "type": "structure", + "members": { + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The ID of the extension publisher.

" + } + }, + "PublisherStatus": { + "target": "com.amazonaws.cloudformation#PublisherStatus", + "traits": { + "smithy.api#documentation": "

Whether the publisher is verified. Currently, all registered publishers are\n verified.

" + } + }, + "IdentityProvider": { + "target": "com.amazonaws.cloudformation#IdentityProvider", + "traits": { + "smithy.api#documentation": "

The type of account used as the identity provider when registering this publisher with\n CloudFormation.

" + } + }, + "PublisherProfile": { + "target": "com.amazonaws.cloudformation#PublisherProfile", + "traits": { + "smithy.api#documentation": "

The URL to the publisher's profile with the identity provider.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeResourceScan": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeResourceScanInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeResourceScanOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ResourceScanNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes details of a resource scan.

" + } + }, + "com.amazonaws.cloudformation#DescribeResourceScanInput": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeResourceScanOutput": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}. An\n example is\n arn:aws:cloudformation:us-east-1:123456789012:resourceScan/f5b490f7-7ed4-428a-aa06-31ff25db0772\n .

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ResourceScanStatus", + "traits": { + "smithy.api#documentation": "

Status of the resource scan.

\n
\n
\n \n IN_PROGRESS\n \n
\n
\n

The resource scan is still in progress.

\n
\n
\n \n COMPLETE\n \n
\n
\n

The resource scan is complete.

\n
\n
\n \n EXPIRED\n \n
\n
\n

The resource scan has expired.

\n
\n
\n \n FAILED\n \n
\n
\n

The resource scan has failed.

\n
\n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#ResourceScanStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the resource scan status, providing more information if a failure\n happened.

" + } + }, + "StartTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the resource scan was started.

" + } + }, + "EndTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the resource scan was finished.

" + } + }, + "PercentageCompleted": { + "target": "com.amazonaws.cloudformation#PercentageCompleted", + "traits": { + "smithy.api#documentation": "

The percentage of the resource scan that has been completed.

" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

The list of resource types for the specified scan. Resource types are only available for\n scans with a Status set to COMPLETE or FAILED .

" + } + }, + "ResourcesScanned": { + "target": "com.amazonaws.cloudformation#ResourcesScanned", + "traits": { + "smithy.api#documentation": "

The number of resources that were listed. This is only available for scans with a\n Status set to COMPLETE, EXPIRED, or FAILED\n .

" + } + }, + "ResourcesRead": { + "target": "com.amazonaws.cloudformation#ResourcesRead", + "traits": { + "smithy.api#documentation": "

The number of resources that were read. This is only available for scans with a\n Status set to COMPLETE, EXPIRED, or\n FAILED.

\n \n

This field may be 0 if the resource scan failed with a\n ResourceScanLimitExceededException.

\n
" + } + }, + "ScanFilters": { + "target": "com.amazonaws.cloudformation#ScanFilters", + "traits": { + "smithy.api#documentation": "

The scan filters that were used.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns information about a stack drift detection operation. A stack drift detection\n operation detects whether a stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack\n template and any values specified as template parameters. A stack is considered to have\n drifted if one or more of its resources have drifted. For more information about stack and\n resource drift, see Detect unmanaged\n configuration changes to stacks and resources with drift detection.

\n

Use DetectStackDrift to initiate a stack drift detection operation.\n DetectStackDrift returns a StackDriftDetectionId you can use to\n monitor the progress of the operation using DescribeStackDriftDetectionStatus.\n Once the drift detection operation has completed, use DescribeStackResourceDrifts to return drift information about the stack and its\n resources.

" + } + }, + "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusInput": { + "type": "structure", + "members": { + "StackDriftDetectionId": { + "target": "com.amazonaws.cloudformation#StackDriftDetectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of drift results CloudFormation retains for any given stack, and for\n how long, may vary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackDriftDetectionStatusOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the stack.

", + "smithy.api#required": {} + } + }, + "StackDriftDetectionId": { + "target": "com.amazonaws.cloudformation#StackDriftDetectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of reports CloudFormation retains for any given stack, and for how\n long, may vary.

", + "smithy.api#required": {} + } + }, + "StackDriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#documentation": "

Status of the stack's actual configuration compared to its expected configuration.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from its expected template configuration. A\n stack is considered to have drifted if one or more of its resources have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its\n expected template configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: CloudFormation could not run drift detection for a resource in the\n stack. See the DetectionStatusReason for details.

    \n
  • \n
" + } + }, + "DetectionStatus": { + "target": "com.amazonaws.cloudformation#StackDriftDetectionStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The status of the stack drift detection operation.

\n
    \n
  • \n

    \n DETECTION_COMPLETE: The stack drift detection operation has successfully\n completed for all resources in the stack that support drift detection. (Resources that\n don't currently support stack detection remain unchecked.)

    \n

    If you specified logical resource IDs for CloudFormation to use as a filter for the stack\n drift detection operation, only the resources with those logical IDs are checked for\n drift.

    \n
  • \n
  • \n

    \n DETECTION_FAILED: The stack drift detection operation has failed for at\n least one resource in the stack. Results will be available for resources on which\n CloudFormation successfully completed drift detection.

    \n
  • \n
  • \n

    \n DETECTION_IN_PROGRESS: The stack drift detection operation is currently\n in progress.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "DetectionStatusReason": { + "target": "com.amazonaws.cloudformation#StackDriftDetectionStatusReason", + "traits": { + "smithy.api#documentation": "

The reason the stack drift detection operation has its current status.

" + } + }, + "DriftedStackResourceCount": { + "target": "com.amazonaws.cloudformation#BoxedInteger", + "traits": { + "smithy.api#documentation": "

Total number of stack resources that have drifted. This is NULL until the drift detection\n operation reaches a status of DETECTION_COMPLETE. This value will be 0 for stacks\n whose drift status is IN_SYNC.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time at which the stack drift detection operation was initiated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackEvents": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackEventsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackEventsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns all stack related events for a specified stack in reverse chronological order. For\n more information about a stack's event history, see Understand CloudFormation stack creation events in the\n CloudFormation User Guide.

\n \n

You can list events for stacks that have failed to create or have been deleted by\n specifying the unique stack identifier (stack ID).

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StackEvents" + } + } + }, + "com.amazonaws.cloudformation#DescribeStackEventsInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID that's associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for DescribeStackEvents action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackEventsOutput": { + "type": "structure", + "members": { + "StackEvents": { + "target": "com.amazonaws.cloudformation#StackEvents", + "traits": { + "smithy.api#documentation": "

A list of StackEvents structures.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB in size, a string that identifies the next page of events. If\n no additional page exists, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a DescribeStackEvents action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackInstanceInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackInstanceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackInstanceNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the stack instance that's associated with the specified StackSet, Amazon Web Services account,\n and Amazon Web Services Region.

\n

For a list of stack instances that are associated with a specific StackSet, use ListStackInstances.

" + } + }, + "com.amazonaws.cloudformation#DescribeStackInstanceInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID of the StackSet that you want to get stack instance\n information for.

", + "smithy.api#required": {} + } + }, + "StackInstanceAccount": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of an Amazon Web Services account that's associated with this stack instance.

", + "smithy.api#required": {} + } + }, + "StackInstanceRegion": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of a Region that's associated with this stack instance.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackInstanceOutput": { + "type": "structure", + "members": { + "StackInstance": { + "target": "com.amazonaws.cloudformation#StackInstance", + "traits": { + "smithy.api#documentation": "

The stack instance that matches the specified request parameters.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackRefactor": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackRefactorInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackRefactorOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackRefactorNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the stack refactor status.

", + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "StackRefactorCreateComplete": { + "documentation": "Wait until the stack refactor status is CREATE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 5 + }, + "StackRefactorExecuteComplete": { + "documentation": "Wait until the stack refactor status is EXECUTE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ExecutionStatus", + "expected": "EXECUTE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ExecutionStatus", + "expected": "EXECUTE_FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ExecutionStatus", + "expected": "ROLLBACK_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.cloudformation#DescribeStackRefactorInput": { + "type": "structure", + "members": { + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackRefactorOutput": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description to help you identify the refactor.

" + } + }, + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

" + } + }, + "StackIds": { + "target": "com.amazonaws.cloudformation#StackIds", + "traits": { + "smithy.api#documentation": "

The unique ID for each stack.

" + } + }, + "ExecutionStatus": { + "target": "com.amazonaws.cloudformation#StackRefactorExecutionStatus", + "traits": { + "smithy.api#documentation": "

The stack refactor execution operation status that's provided after calling the ExecuteStackRefactor action.

" + } + }, + "ExecutionStatusReason": { + "target": "com.amazonaws.cloudformation#ExecutionStatusReason", + "traits": { + "smithy.api#documentation": "

A detailed explanation for the stack refactor ExecutionStatus.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackRefactorStatus", + "traits": { + "smithy.api#documentation": "

The stack refactor operation status that's provided after calling the CreateStackRefactor action.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#StackRefactorStatusReason", + "traits": { + "smithy.api#documentation": "

A detailed explanation for the stack refactor operation Status.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackResourceInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackResourceOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns a description of the specified resource in the specified stack.

\n

For deleted stacks, DescribeStackResource returns resource information for up to 90 days\n after the stack has been deleted.

" + } + }, + "com.amazonaws.cloudformation#DescribeStackResourceDrifts": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackResourceDriftsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackResourceDriftsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns drift information for the resources that have been checked for drift in the\n specified stack. This includes actual and expected configuration values for resources where\n CloudFormation detects configuration drift.

\n

For a given stack, there will be one StackResourceDrift for each stack\n resource that has been checked for drift. Resources that haven't yet been checked for drift\n aren't included. Resources that don't currently support drift detection aren't checked, and so\n not included. For a list of resources that support drift detection, see Resource\n type support for imports and drift detection.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or\n DetectStackDrift to detect drift on all supported resources for a given\n stack.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#DescribeStackResourceDriftsInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the stack for which you want drift information.

", + "smithy.api#required": {} + } + }, + "StackResourceDriftStatusFilters": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatusFilters", + "traits": { + "smithy.api#documentation": "

The resource drift status values to use as filters for the resource drift results\n returned.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in\n that the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected\n template values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected\n template configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
  • \n

    \n UNKNOWN: CloudFormation could not run drift detection for the\n resource.

    \n
  • \n
" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#BoxedMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResourceDriftsOutput": { + "type": "structure", + "members": { + "StackResourceDrifts": { + "target": "com.amazonaws.cloudformation#StackResourceDrifts", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Drift information for the resources that have been checked for drift in the specified\n stack. This includes actual and expected configuration values for resources where CloudFormation\n detects drift.

\n

For a given stack, there will be one StackResourceDrift for each stack\n resource that has been checked for drift. Resources that haven't yet been checked for drift\n aren't included. Resources that do not currently support drift detection aren't checked, and\n so not included. For a list of resources that support drift detection, see Resource\n type support for imports and drift detection.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call DescribeStackResourceDrifts\n again and assign that token to the request object's NextToken parameter. If the\n request returns all results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResourceInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID that's associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource as specified in the template.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for DescribeStackResource action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResourceOutput": { + "type": "structure", + "members": { + "StackResourceDetail": { + "target": "com.amazonaws.cloudformation#StackResourceDetail", + "traits": { + "smithy.api#documentation": "

A StackResourceDetail structure that contains the description of the\n specified resource in the specified stack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a DescribeStackResource action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackResourcesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackResourcesOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns Amazon Web Services resource descriptions for running and deleted stacks. If\n StackName is specified, all the associated resources that are part of the stack\n are returned. If PhysicalResourceId is specified, the associated resources of the\n stack that the resource belongs to are returned.

\n \n

Only the first 100 resources will be returned. If your stack has more resources than\n this, you should use ListStackResources instead.

\n
\n

For deleted stacks, DescribeStackResources returns resource information for\n up to 90 days after the stack has been deleted.

\n

You must specify either StackName or PhysicalResourceId, but not\n both. In addition, you can specify LogicalResourceId to filter the returned\n result. For more information about resources, the LogicalResourceId and\n PhysicalResourceId, see the CloudFormation User Guide.

\n \n

A ValidationError is returned if you specify both StackName\n and PhysicalResourceId in the same request.

\n
" + } + }, + "com.amazonaws.cloudformation#DescribeStackResourcesInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name or the unique stack ID that is associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
\n

Required: Conditional. If you don't specify StackName, you must specify\n PhysicalResourceId.

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The logical name of the resource as specified in the template.

" + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

\n

For example, for an Amazon Elastic Compute Cloud (EC2) instance,\n PhysicalResourceId corresponds to the InstanceId. You can pass the\n EC2 InstanceId to DescribeStackResources to find which stack the\n instance belongs to and what other resources are part of the stack.

\n

Required: Conditional. If you don't specify PhysicalResourceId, you must\n specify StackName.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for DescribeStackResources action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackResourcesOutput": { + "type": "structure", + "members": { + "StackResources": { + "target": "com.amazonaws.cloudformation#StackResources", + "traits": { + "smithy.api#documentation": "

A list of StackResource structures.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a DescribeStackResources action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the description of the specified StackSet.

\n \n

This API provides strongly consistent reads meaning it will always\n return the most up-to-date data.

\n
" + } + }, + "com.amazonaws.cloudformation#DescribeStackSetInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet whose description you want.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackSetOperation": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStackSetOperationInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStackSetOperationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the description of the specified StackSet operation.

\n \n

This API provides strongly consistent reads meaning it will always\n return the most up-to-date data.

\n
" + } + }, + "com.amazonaws.cloudformation#DescribeStackSetOperationInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID of the StackSet for the stack operation.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique ID of the StackSet operation.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackSetOperationOutput": { + "type": "structure", + "members": { + "StackSetOperation": { + "target": "com.amazonaws.cloudformation#StackSetOperation", + "traits": { + "smithy.api#documentation": "

The specified StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStackSetOutput": { + "type": "structure", + "members": { + "StackSet": { + "target": "com.amazonaws.cloudformation#StackSet", + "traits": { + "smithy.api#documentation": "

The specified StackSet.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeStacks": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeStacksInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeStacksOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the description for the specified stack; if no stack name was specified, then it\n returns the description for all the stacks created. For more information about a stack's event\n history, see Understand CloudFormation stack creation events in the\n CloudFormation User Guide.

\n \n

If the stack doesn't exist, a ValidationError is returned.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Stacks" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "StackCreateComplete": { + "documentation": "Wait until stack status is CREATE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "CREATE_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_IN_PROGRESS", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_FAILED", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_IN_PROGRESS", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_FAILED", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "CREATE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "DELETE_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "DELETE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "ROLLBACK_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 30 + }, + "StackDeleteComplete": { + "documentation": "Wait until stack status is DELETE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "DELETE_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "ValidationError" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "DELETE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "CREATE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_IN_PROGRESS", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30 + }, + "StackExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 5 + }, + "StackImportComplete": { + "documentation": "Wait until stack status is IMPORT_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "IMPORT_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "ROLLBACK_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "IMPORT_ROLLBACK_IN_PROGRESS", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "IMPORT_ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "IMPORT_ROLLBACK_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 30 + }, + "StackRollbackComplete": { + "documentation": "Wait until stack status is UPDATE_ROLLBACK_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "DELETE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 30 + }, + "StackUpdateComplete": { + "documentation": "Wait until stack status is UPDATE_COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "ValidationError" + } + } + ], + "minDelay": 30 + } + } + } + }, + "com.amazonaws.cloudformation#DescribeStacksInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "\n

If you don't pass a parameter to StackName, the API returns a response\n that describes all resources in the account, which can impact performance. This requires\n ListStacks and DescribeStacks permissions.

\n

Consider using the ListStacks API if you're not passing a parameter to\n StackName.

\n

The IAM policy below can be added to IAM policies when you want to limit\n resource-level permissions and avoid returning a response when no parameter is sent in the\n request:

\n

{ \"Version\": \"2012-10-17\",\t\t \t \t \"Statement\": [{ \"Effect\": \"Deny\", \"Action\":\n \"cloudformation:DescribeStacks\", \"NotResource\": \"arn:aws:cloudformation:*:*:stack/*/*\" }]\n }

\n
\n

The name or the unique stack ID that's associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for DescribeStacks action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeStacksOutput": { + "type": "structure", + "members": { + "Stacks": { + "target": "com.amazonaws.cloudformation#Stacks", + "traits": { + "smithy.api#documentation": "

A list of stack structures.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If\n no additional page exists, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a DescribeStacks action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns detailed information about an extension from the CloudFormation registry in your\n current account and Region.

\n

If you specify a VersionId, DescribeType returns information\n about that specific extension version. Otherwise, it returns information about the default\n extension version.

\n

For more information, see Edit configuration\n data for extensions in your account in the\n CloudFormation User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#DescribeTypeInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "VersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of a specific version of the extension. The version ID is the value at the end of\n the Amazon Resource Name (ARN) assigned to the extension version when it is registered.

\n

If you specify a VersionId, DescribeType returns information\n about that specific extension version. Otherwise, it returns information about the default\n extension version.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The publisher ID of the extension publisher.

\n

Extensions provided by Amazon Web Services are not assigned a publisher ID.

" + } + }, + "PublicVersionNumber": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

The version number of a public third-party extension.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeTypeOutput": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

If the extension is a public third-party type you have activated with a type name alias,\n CloudFormation returns the type name alias. For more information, see ActivateType.

" + } + }, + "DefaultVersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the\n extension version isn't specified.

\n

This applies only to private extensions you have registered in your account. For public\n extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns\n null. For more information, see RegisterType.

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" + } + }, + "IsDefaultVersion": { + "target": "com.amazonaws.cloudformation#IsDefaultVersion", + "traits": { + "smithy.api#documentation": "

Whether the specified extension version is set as the default version.

\n

This applies only to private extensions you have registered in your account, and\n extensions published by Amazon Web Services. For public third-party extensions, whether they are activated\n in your account, CloudFormation returns null.

" + } + }, + "TypeTestsStatus": { + "target": "com.amazonaws.cloudformation#TypeTestsStatus", + "traits": { + "smithy.api#documentation": "

The contract test status of the registered extension version. To return the extension test\n status of a specific extension version, you must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this\n information for public extensions, whether they are activated in your account.

\n
    \n
  • \n

    \n PASSED: The extension has passed all its contract tests.

    \n

    An extension must have a test status of PASSED before it can be\n published. For more information, see Publishing\n extensions to make them available for public use in the\n CloudFormation Command Line Interface (CLI) User Guide.

    \n
  • \n
  • \n

    \n FAILED: The extension has failed one or more contract tests.

    \n
  • \n
  • \n

    \n IN_PROGRESS: Contract tests are currently being performed on the\n extension.

    \n
  • \n
  • \n

    \n NOT_TESTED: Contract tests haven't been performed on the\n extension.

    \n
  • \n
" + } + }, + "TypeTestsStatusDescription": { + "target": "com.amazonaws.cloudformation#TypeTestsStatusDescription", + "traits": { + "smithy.api#documentation": "

The description of the test status. To return the extension test status of a specific\n extension version, you must specify VersionId.

\n

This applies only to registered private extension versions. CloudFormation doesn't return this\n information for public extensions, whether they are activated in your account.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description of the extension.

" + } + }, + "Schema": { + "target": "com.amazonaws.cloudformation#TypeSchema", + "traits": { + "smithy.api#documentation": "

The schema that defines the extension.

\n

For more information, see Resource type\n schema in the CloudFormation Command Line Interface (CLI) User Guide and the CloudFormation Hooks User Guide.

" + } + }, + "ProvisioningType": { + "target": "com.amazonaws.cloudformation#ProvisioningType", + "traits": { + "smithy.api#documentation": "

For resource type extensions, the provisioning behavior of the resource type. CloudFormation\n determines the provisioning type during registration, based on the types of handlers in the\n schema handler package submitted.

\n

Valid values include:

\n
    \n
  • \n

    \n FULLY_MUTABLE: The resource type includes an update handler to process\n updates to the type during stack update operations.

    \n
  • \n
  • \n

    \n IMMUTABLE: The resource type doesn't include an update handler, so the\n type can't be updated and must instead be replaced during stack update operations.

    \n
  • \n
  • \n

    \n NON_PROVISIONABLE: The resource type doesn't include all the following\n handlers, and therefore can't actually be provisioned.

    \n
      \n
    • \n

      create

      \n
    • \n
    • \n

      read

      \n
    • \n
    • \n

      delete

      \n
    • \n
    \n
  • \n
" + } + }, + "DeprecatedStatus": { + "target": "com.amazonaws.cloudformation#DeprecatedStatus", + "traits": { + "smithy.api#documentation": "

The deprecation status of the extension version.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension is activated or registered and can be used in\n CloudFormation operations, dependent on its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension has been deactivated or deregistered and can no\n longer be used in CloudFormation operations.

    \n
  • \n
\n

For public third-party extensions, CloudFormation returns null.

" + } + }, + "LoggingConfig": { + "target": "com.amazonaws.cloudformation#LoggingConfig", + "traits": { + "smithy.api#documentation": "

Contains logging configuration information for private extensions. This applies only to\n private extensions you have registered in your account. For public extensions, both those\n provided by Amazon Web Services and published by third parties, CloudFormation returns null. For\n more information, see RegisterType.

" + } + }, + "RequiredActivatedTypes": { + "target": "com.amazonaws.cloudformation#RequiredActivatedTypes", + "traits": { + "smithy.api#documentation": "

For extensions that are modules, the public third-party extensions that must be activated\n in your account in order for the module itself to be activated.

" + } + }, + "ExecutionRoleArn": { + "target": "com.amazonaws.cloudformation#RoleARN2", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM execution role used to register the extension.\n This applies only to private extensions you have registered in your account. For more\n information, see RegisterType.

\n

If the registered extension calls any Amazon Web Services APIs, you must create an \n IAM execution\n role\n that includes the necessary permissions to call those Amazon Web Services APIs,\n and provision that execution role in your account. CloudFormation then assumes that execution role\n to provide your extension with the appropriate credentials.

" + } + }, + "Visibility": { + "target": "com.amazonaws.cloudformation#Visibility", + "traits": { + "smithy.api#documentation": "

The scope at which the extension is visible and usable in CloudFormation operations.

\n

Valid values include:

\n
    \n
  • \n

    \n PRIVATE: The extension is only visible and usable within the account in\n which it is registered. CloudFormation marks any extensions you register as\n PRIVATE.

    \n
  • \n
  • \n

    \n PUBLIC: The extension is publicly visible and usable within any Amazon Web Services\n account.

    \n
  • \n
" + } + }, + "SourceUrl": { + "target": "com.amazonaws.cloudformation#OptionalSecureUrl", + "traits": { + "smithy.api#documentation": "

The URL of the source code for the extension.

" + } + }, + "DocumentationUrl": { + "target": "com.amazonaws.cloudformation#OptionalSecureUrl", + "traits": { + "smithy.api#documentation": "

The URL of a page providing detailed documentation for this extension.

" + } + }, + "LastUpdated": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see\n RegisterType.

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For\n more information, see ActivateType.

    \n
  • \n
" + } + }, + "TimeCreated": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When the specified private extension version was registered or activated in your\n account.

" + } + }, + "ConfigurationSchema": { + "target": "com.amazonaws.cloudformation#ConfigurationSchema", + "traits": { + "smithy.api#documentation": "

A JSON string that represent the current configuration data for the extension in this\n account and Region.

\n

To set the configuration data for an extension, use SetTypeConfiguration.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The publisher ID of the extension publisher.

\n

This applies only to public third-party extensions. For private registered extensions, and\n extensions provided by Amazon Web Services, CloudFormation returns null.

" + } + }, + "OriginalTypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name\n of the public extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account\n and Region, CloudFormation treats that alias as the extension's type name within the account and\n Region, not the type name of the public extension. For more information, see Use aliases to refer to extensions in the\n CloudFormation User Guide.

" + } + }, + "OriginalTypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the Amazon\n Resource Name (ARN) of the public extension.

" + } + }, + "PublicVersionNumber": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

The version number of a public third-party extension.

\n

This applies only if you specify a public extension you have activated in your account, or\n specify a public extension without specifying a version. For all other extensions, CloudFormation\n returns null.

" + } + }, + "LatestPublicVersion": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

The latest version of a public extension that is available for\n use.

\n

This only applies if you specify a public extension, and you don't specify a version. For\n all other requests, CloudFormation returns null.

" + } + }, + "IsActivated": { + "target": "com.amazonaws.cloudformation#IsActivated", + "traits": { + "smithy.api#documentation": "

Whether the extension is activated in the account and Region.

\n

This only applies to public third-party extensions. For all other extensions, CloudFormation\n returns null.

" + } + }, + "AutoUpdate": { + "target": "com.amazonaws.cloudformation#AutoUpdate", + "traits": { + "smithy.api#documentation": "

Whether CloudFormation automatically updates the extension in this account and Region when a\n new minor version is published by the extension publisher. Major versions\n released by the publisher must be manually updated. For more information, see Automatically use new versions of extensions in the\n CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DescribeTypeRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DescribeTypeRegistrationInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DescribeTypeRegistrationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about an extension's registration, including its current status and\n type and version identifiers.

\n

When you initiate a registration request using RegisterType, you can\n then use DescribeTypeRegistration to monitor the progress of that\n registration request.

\n

Once the registration request has completed, use DescribeType to return\n detailed information about an extension.

", + "smithy.api#idempotent": {}, + "smithy.waiters#waitable": { + "TypeRegistrationComplete": { + "documentation": "Wait until type registration is COMPLETE.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ProgressStatus", + "expected": "COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ProgressStatus", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 30 + } + } + } + }, + "com.amazonaws.cloudformation#DescribeTypeRegistrationInput": { + "type": "structure", + "members": { + "RegistrationToken": { + "target": "com.amazonaws.cloudformation#RegistrationToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for this registration request.

\n

This registration token is generated by CloudFormation when you initiate a registration\n request using RegisterType.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DescribeTypeRegistrationOutput": { + "type": "structure", + "members": { + "ProgressStatus": { + "target": "com.amazonaws.cloudformation#RegistrationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the extension registration request.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description of the extension registration request.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension being registered.

\n

For registration requests with a ProgressStatus of other than\n COMPLETE, this will be null.

" + } + }, + "TypeVersionArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of this specific version of the extension being\n registered.

\n

For registration requests with a ProgressStatus of other than\n COMPLETE, this will be null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.cloudformation#DetailedStatus": { + "type": "enum", + "members": { + "CONFIGURATION_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURATION_COMPLETE" + } + }, + "VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#DetectStackDrift": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DetectStackDriftInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DetectStackDriftOutput" + }, + "traits": { + "smithy.api#documentation": "

Detects whether a stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack\n template and any values specified as template parameters. For each resource in the stack that\n supports drift detection, CloudFormation compares the actual configuration of the resource with\n its expected template configuration. Only resource properties explicitly defined in the stack\n template are checked for drift. A stack is considered to have drifted if one or more of its\n resources differ from their expected template configurations. For more information, see Detect unmanaged configuration changes to stacks and resources with drift\n detection.

\n

Use DetectStackDrift to detect drift on all supported resources for a given\n stack, or DetectStackResourceDrift to detect drift on individual\n resources.

\n

For a list of stack resources that currently support drift detection, see Resource\n type support for imports and drift detection.

\n

\n DetectStackDrift can take up to several minutes, depending on the number of\n resources contained within the stack. Use DescribeStackDriftDetectionStatus\n to monitor the progress of a detect stack drift operation. Once the drift detection operation\n has completed, use DescribeStackResourceDrifts to return drift information\n about the stack and its resources.

\n

When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks\n belonging to that stack. Perform DetectStackDrift directly on the nested stack\n itself.

" + } + }, + "com.amazonaws.cloudformation#DetectStackDriftInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the stack for which you want to detect drift.

", + "smithy.api#required": {} + } + }, + "LogicalResourceIds": { + "target": "com.amazonaws.cloudformation#LogicalResourceIds", + "traits": { + "smithy.api#documentation": "

The logical names of any resources you want to use as filters.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DetectStackDriftOutput": { + "type": "structure", + "members": { + "StackDriftDetectionId": { + "target": "com.amazonaws.cloudformation#StackDriftDetectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of drift results CloudFormation retains for any given stack, and for\n how long, may vary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DetectStackResourceDrift": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DetectStackResourceDriftInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DetectStackResourceDriftOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns information about whether a resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack\n template and any values specified as template parameters. This information includes actual and\n expected property values for resources in which CloudFormation detects drift. Only resource\n properties explicitly defined in the stack template are checked for drift. For more\n information about stack and resource drift, see Detect unmanaged\n configuration changes to stacks and resources with drift detection.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or\n DetectStackDrift to detect drift on all resources in a given stack that\n support drift detection.

\n

Resources that don't currently support drift detection can't be checked. For a list of\n resources that support drift detection, see Resource\n type support for imports and drift detection.

" + } + }, + "com.amazonaws.cloudformation#DetectStackResourceDriftInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the stack to which the resource belongs.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource for which to return drift information.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DetectStackResourceDriftOutput": { + "type": "structure", + "members": { + "StackResourceDrift": { + "target": "com.amazonaws.cloudformation#StackResourceDrift", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about whether the resource's actual configuration has drifted from its\n expected template configuration, including actual and expected property values and any\n differences detected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DetectStackSetDrift": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#DetectStackSetDriftInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#DetectStackSetDriftOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Detect drift on a StackSet. When CloudFormation performs drift detection on a StackSet, it\n performs drift detection on the stack associated with each stack instance in the StackSet. For\n more information, see Performing drift detection on\n CloudFormation StackSets.

\n

\n DetectStackSetDrift returns the OperationId of the StackSet\n drift detection operation. Use this operation id with DescribeStackSetOperation to monitor the progress of the drift detection\n operation. The drift detection operation may take some time, depending on the number of stack\n instances included in the StackSet, in addition to the number of resources included in each\n stack.

\n

Once the operation has completed, use the following actions to return drift\n information:

\n
    \n
  • \n

    Use DescribeStackSet to return detailed information about the stack\n set, including detailed information about the last completed drift\n operation performed on the StackSet. (Information about drift operations that are in\n progress isn't included.)

    \n
  • \n
  • \n

    Use ListStackInstances to return a list of stack instances belonging\n to the StackSet, including the drift status and last drift time checked of each\n instance.

    \n
  • \n
  • \n

    Use DescribeStackInstance to return detailed information about a\n specific stack instance, including its drift status and last drift time checked.

    \n
  • \n
\n

You can only run a single drift detection operation on a given StackSet at one\n time.

\n

To stop a drift detection StackSet operation, use StopStackSetOperation.

" + } + }, + "com.amazonaws.cloudformation#DetectStackSetDriftInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the StackSet on which to perform the drift detection operation.

", + "smithy.api#required": {} + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a StackSet operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see StackSet operation options.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

\n The ID of the StackSet operation.\n

", + "smithy.api#idempotencyToken": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#DetectStackSetDriftOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The ID of the drift detection StackSet operation.

\n

You can use this operation ID with DescribeStackSetOperation to monitor\n the progress of the drift detection operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#DetectionReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#DifferenceType": { + "type": "enum", + "members": { + "ADD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADD" + } + }, + "REMOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE" + } + }, + "NOT_EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_EQUAL" + } + } + } + }, + "com.amazonaws.cloudformation#DisableRollback": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#DisableValidation": { + "type": "boolean", + "traits": { + "smithy.api#documentation": "

Boolean to enable or disable pre-deployment validations in changeset and stack operations:

\n
    \n
  • \n

    \n true: disable pre-deployment validations.

    \n
  • \n
  • \n

    \n false: enable pre-deployment validations.

    \n
  • \n
" + } + }, + "com.amazonaws.cloudformation#DriftIgnoredReason": { + "type": "enum", + "members": { + "MANAGED_BY_AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED_BY_AWS" + } + }, + "WRITE_ONLY_PROPERTY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WRITE_ONLY_PROPERTY" + } + }, + "SENSITIVE_PROPERTY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SENSITIVE_PROPERTY" + } + } + } + }, + "com.amazonaws.cloudformation#DriftedStackInstancesCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#EnableStackCreation": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#EnableTerminationProtection": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#ErrorCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + } + } + }, + "com.amazonaws.cloudformation#ErrorMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.cloudformation#EstimateTemplateCost": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#EstimateTemplateCostInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#EstimateTemplateCostOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the estimated monthly cost of a template. The return value is an Amazon Web Services Simple\n Monthly Calculator URL with a query string that describes the resources required to run the\n template.

" + } + }, + "com.amazonaws.cloudformation#EstimateTemplateCostInput": { + "type": "structure", + "members": { + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body with a minimum length of 1 byte and a maximum\n length of 51,200 bytes.

\n

Conditional: You must pass TemplateBody or TemplateURL. If both\n are passed, only TemplateBody is used.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template that's\n located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must\n start with https://. URLs from S3 static websites are not supported.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both\n are passed, only TemplateBody is used.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for an EstimateTemplateCost action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#EstimateTemplateCostOutput": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.cloudformation#Url", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Simple Monthly Calculator URL with a query string that describes the resources\n required to run the template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a EstimateTemplateCost action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#EvaluationType": { + "type": "enum", + "members": { + "Static": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Static" + } + }, + "Dynamic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Dynamic" + } + } + } + }, + "com.amazonaws.cloudformation#EventFilter": { + "type": "structure", + "members": { + "FailedEvents": { + "target": "com.amazonaws.cloudformation#FailedEventsFilter", + "traits": { + "smithy.api#documentation": "

When set to true, only returns failed events within the operation. This helps quickly\n identify root causes for a failed operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Event filter allows you to focus on specific events in an operation.

" + } + }, + "com.amazonaws.cloudformation#EventId": { + "type": "string" + }, + "com.amazonaws.cloudformation#EventType": { + "type": "enum", + "members": { + "STACK_EVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STACK_EVENT" + } + }, + "PROGRESS_EVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROGRESS_EVENT" + } + }, + "VALIDATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_ERROR" + } + }, + "PROVISIONING_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROVISIONING_ERROR" + } + }, + "HOOK_INVOCATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK_INVOCATION_ERROR" + } + } + } + }, + "com.amazonaws.cloudformation#ExecuteChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ExecuteChangeSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ExecuteChangeSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ChangeSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#InsufficientCapabilitiesException" + }, + { + "target": "com.amazonaws.cloudformation#InvalidChangeSetStatusException" + }, + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a stack using the input information that was provided when the specified change\n set was created. After the call successfully completes, CloudFormation starts updating the stack.\n Use the DescribeStacks action to view the status of the update.

\n

When you execute a change set, CloudFormation deletes all other change sets associated with\n the stack because they aren't valid for the updated stack.

\n

If a stack policy is associated with the stack, CloudFormation enforces the policy during the\n update. You can't specify a temporary stack policy that overrides the current policy.

\n

To create a change set for the entire stack hierarchy, IncludeNestedStacks\n must have been set to True.

" + } + }, + "com.amazonaws.cloudformation#ExecuteChangeSetInput": { + "type": "structure", + "members": { + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the change set that you want use to update the\n specified stack.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

If you specified the name of a change set, specify the stack name or Amazon Resource Name\n (ARN) that's associated with the change set you want to execute.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this ExecuteChangeSet request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to execute a\n change set to update a stack with the same name. You might retry ExecuteChangeSet\n requests to ensure that CloudFormation successfully received them.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Preserves the state of previously provisioned resources when an operation fails. This\n parameter can't be specified when the OnStackFailure parameter to the CreateChangeSet API operation was specified.

\n
    \n
  • \n

    \n True - if the stack creation fails, do nothing. This is equivalent to\n specifying DO_NOTHING for the OnStackFailure parameter to the\n CreateChangeSet API operation.

    \n
  • \n
  • \n

    \n False - if the stack creation fails, roll back the stack. This is\n equivalent to specifying ROLLBACK for the OnStackFailure\n parameter to the CreateChangeSet API operation.

    \n
  • \n
\n

Default: True\n

" + } + }, + "RetainExceptOnCreate": { + "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", + "traits": { + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation\n rolls back. This includes newly created resources marked with a deletion policy of\n Retain.

\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the ExecuteChangeSet action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ExecuteChangeSetOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The output for the ExecuteChangeSet action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ExecuteStackRefactor": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ExecuteStackRefactorInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Executes the stack refactor operation.

" + } + }, + "com.amazonaws.cloudformation#ExecuteStackRefactorInput": { + "type": "structure", + "members": { + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ExecutionRoleName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z_0-9+=,.@-]+$" + } + }, + "com.amazonaws.cloudformation#ExecutionStatus": { + "type": "enum", + "members": { + "UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNAVAILABLE" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "EXECUTE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_IN_PROGRESS" + } + }, + "EXECUTE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_COMPLETE" + } + }, + "EXECUTE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_FAILED" + } + }, + "OBSOLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OBSOLETE" + } + } + } + }, + "com.amazonaws.cloudformation#ExecutionStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#Export": { + "type": "structure", + "members": { + "ExportingStackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The stack that contains the exported output name and value.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudformation#ExportName", + "traits": { + "smithy.api#documentation": "

The name of exported output value. Use this name and the Fn::ImportValue\n function to import the associated value into other stacks. The name is defined in the\n Export field in the associated stack's Outputs section.

" + } + }, + "Value": { + "target": "com.amazonaws.cloudformation#ExportValue", + "traits": { + "smithy.api#documentation": "

The value of the exported output, such as a resource physical ID. This value is defined in\n the Export field in the associated stack's Outputs section.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Export structure describes the exported output values for a stack.

\n

For more information, see Get exported outputs from\n a deployed CloudFormation stack.

" + } + }, + "com.amazonaws.cloudformation#ExportName": { + "type": "string" + }, + "com.amazonaws.cloudformation#ExportValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#Exports": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Export" + } + }, + "com.amazonaws.cloudformation#FailedEventsFilter": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#FailedStackInstancesCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#FailureToleranceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#FailureTolerancePercentage": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#ForceRollback": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#GeneratedTemplateDeletionPolicy": { + "type": "enum", + "members": { + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + }, + "RETAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETAIN" + } + } + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "GeneratedTemplateNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The generated template was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateResourceStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + } + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateStatus": { + "type": "enum", + "members": { + "CREATE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_PENDING" + } + }, + "UPDATE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_PENDING" + } + }, + "DELETE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_PENDING" + } + }, + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + } + } + }, + "com.amazonaws.cloudformation#GeneratedTemplateUpdateReplacePolicy": { + "type": "enum", + "members": { + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + }, + "RETAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETAIN" + } + } + } + }, + "com.amazonaws.cloudformation#GetGeneratedTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#GetGeneratedTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#GetGeneratedTemplateOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a generated template. If the template is in an InProgress or\n Pending status then the template returned will be the template when the\n template was last in a Complete status. If the template has not yet been in a\n Complete status then an empty template will be returned.

", + "smithy.api#examples": [ + { + "title": "To get a generated template in JSON format", + "documentation": "This example gets a generated template ins JSON format.", + "input": { + "GeneratedTemplateName": "JazzyTemplate" + }, + "output": { + "Status": "COMPLETE", + "TemplateBody": "{\"Metadata\":{\"TemplateId\":\"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"},\"Parameters\":{\"Stage\":{\"Default\":\"beta\",\"Type\":\"String\"}},\"Resources\":{\"TestRole\":{\"Properties\":{\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":{\"Fn::Sub\":[\"arn:${AWS::Partition}:iam::${AccountId}:root\",{\"AccountId\":{\"Fn::AccountIdFromAlias\":\"test-account-alias\"}}]}},\"Action\":\"sts:AssumeRole\"}]}},\"Type\":\"AWS::IAM::Role\",\"DeletionPolicy\":\"Delete\"},\"DocumentationPartl7ob4vsd76vs\":{\"UpdateReplacePolicy\":\"Retain\",\"Type\":\"AWS::ApiGateway::DocumentationPart\",\"DeletionPolicy\":\"Retain\",\"Properties\":{\"RestApiId\":\"l7ob4vsd76\",\"Properties\":\"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n}\",\"Location\":{\"Path\":\"/ListGeneratedTemplates\",\"Type\":\"RESPONSE\",\"Method\":\"POST\",\"StatusCode\":\"200\"}}}}}" + } + }, + { + "title": "To get a generated template in YAML format", + "documentation": "This example gets a generated template in YAML format.", + "input": { + "GeneratedTemplateName": "JazzyTemplate", + "Format": "YAML" + }, + "output": { + "Status": "COMPLETE", + "TemplateBody": "---\nMetadata:\n TemplateId: \"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"\nParameters:\n Stage:\n Default: \"beta\"\n Type: \"String\"\nResources:\n TestRole:\n Properties:\n AssumeRolePolicyDocument:\n Version: \"2012-10-17\"\n Statement:\n - Effect: \"Allow\"\n Principal:\n AWS:\n Fn::Sub:\n - \"arn:${AWS::Partition}:iam::${AccountId}:root\"\n - AccountId:\n Fn::AccountIdFromAlias: \"test-account-alias\"\n Action: \"sts:AssumeRole\"\n Type: \"AWS::IAM::Role\"\n DeletionPolicy: \"Delete\"\n DocumentationPartl7ob4vsd76vsnAlFMLXKVm:\n UpdateReplacePolicy: \"Retain\"\n Type: \"AWS::ApiGateway::DocumentationPart\"\n DeletionPolicy: \"Retain\"\n Properties:\n RestApiId: \"l7ob4vsd76\"\n Properties: \"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n\\\n }\"\n Location:\n Path: \"/ListGeneratedTemplates\"\n Type: \"RESPONSE\"\n Method: \"POST\"\n StatusCode: \"200\"\n" + } + } + ] + } + }, + "com.amazonaws.cloudformation#GetGeneratedTemplateInput": { + "type": "structure", + "members": { + "Format": { + "target": "com.amazonaws.cloudformation#TemplateFormat", + "traits": { + "smithy.api#documentation": "

The language to use to retrieve for the generated template. Supported values are:

\n
    \n
  • \n

    \n JSON\n

    \n
  • \n
  • \n

    \n YAML\n

    \n
  • \n
" + } + }, + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the generated template. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}.\n For example,\n arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc\n .

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#GetGeneratedTemplateOutput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateStatus", + "traits": { + "smithy.api#documentation": "

The status of the template generation. Supported values are:

\n
    \n
  • \n

    \n CreatePending - the creation of the template is pending.

    \n
  • \n
  • \n

    \n CreateInProgress - the creation of the template is in progress.

    \n
  • \n
  • \n

    \n DeletePending - the deletion of the template is pending.

    \n
  • \n
  • \n

    \n DeleteInProgress - the deletion of the template is in progress.

    \n
  • \n
  • \n

    \n UpdatePending - the update of the template is pending.

    \n
  • \n
  • \n

    \n UpdateInProgress - the update of the template is in progress.

    \n
  • \n
  • \n

    \n Failed - the template operation failed.

    \n
  • \n
  • \n

    \n Complete - the template operation is complete.

    \n
  • \n
" + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

The template body of the generated template, in the language specified by the\n Language parameter.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#GetHookResult": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#GetHookResultInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#GetHookResultOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#HookResultNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves detailed information and remediation guidance for a Hook invocation\n result.

\n

If the Hook uses a KMS key to encrypt annotations, callers of the\n GetHookResult operation must have kms:Decrypt permissions. For\n more information, see KMS key policy\n and permissions for encrypting CloudFormation Hooks results at rest in the\n CloudFormation Hooks User Guide.

" + } + }, + "com.amazonaws.cloudformation#GetHookResultInput": { + "type": "structure", + "members": { + "HookResultId": { + "target": "com.amazonaws.cloudformation#HookInvocationId", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of the Hook invocation result that you want details about.\n You can get the ID from the ListHookResults\n operation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#GetHookResultOutput": { + "type": "structure", + "members": { + "HookResultId": { + "target": "com.amazonaws.cloudformation#HookInvocationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Hook result.

" + } + }, + "InvocationPoint": { + "target": "com.amazonaws.cloudformation#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

The specific point in the provisioning process where the Hook is invoked.

" + } + }, + "FailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

The failure mode of the invocation.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#HookTypeName", + "traits": { + "smithy.api#documentation": "

The name of the Hook that was invoked.

" + } + }, + "OriginalTypeName": { + "target": "com.amazonaws.cloudformation#HookTypeName", + "traits": { + "smithy.api#documentation": "

The original public type name of the Hook when an alias is used.

\n

For example, if you activate AWS::Hooks::GuardHook with alias\n MyCompany::Custom::GuardHook, then TypeName will be\n MyCompany::Custom::GuardHook and OriginalTypeName will be\n AWS::Hooks::GuardHook.

" + } + }, + "TypeVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeVersionId", + "traits": { + "smithy.api#documentation": "

The version identifier of the Hook that was invoked.

" + } + }, + "TypeConfigurationVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeConfigurationVersionId", + "traits": { + "smithy.api#documentation": "

The version identifier of the Hook configuration data that was used during\n invocation.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#HookTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Hook.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#HookStatus", + "traits": { + "smithy.api#documentation": "

The status of the Hook invocation. The following statuses are possible:

\n
    \n
  • \n

    \n HOOK_IN_PROGRESS: The Hook is currently running.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_SUCCEEDED: The Hook completed successfully.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_FAILED: The Hook completed but failed validation.

    \n
  • \n
  • \n

    \n HOOK_FAILED: The Hook encountered an error during execution.

    \n
  • \n
" + } + }, + "HookStatusReason": { + "target": "com.amazonaws.cloudformation#HookStatusReason", + "traits": { + "smithy.api#documentation": "

A message that provides additional details about the Hook invocation status.

" + } + }, + "InvokedAt": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the Hook was invoked.

" + } + }, + "Target": { + "target": "com.amazonaws.cloudformation#HookTarget", + "traits": { + "smithy.api#documentation": "

Information about the target of the Hook invocation.

" + } + }, + "Annotations": { + "target": "com.amazonaws.cloudformation#AnnotationList", + "traits": { + "smithy.api#documentation": "

A list of objects with additional information and guidance that can help you resolve a\n failed Hook invocation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#GetStackPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#GetStackPolicyInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#GetStackPolicyOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null\n value is returned.

" + } + }, + "com.amazonaws.cloudformation#GetStackPolicyInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique stack ID that's associated with the stack whose policy you want to\n get.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the GetStackPolicy action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#GetStackPolicyOutput": { + "type": "structure", + "members": { + "StackPolicyBody": { + "target": "com.amazonaws.cloudformation#StackPolicyBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the stack policy body. For more information, see Prevent updates to stack resources in the\n CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the GetStackPolicy action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#GetTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#GetTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#GetTemplateOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ChangeSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the template body for a specified stack. You can get the template for running or\n deleted stacks.

\n

For deleted stacks, GetTemplate returns the template for up to 90 days after\n the stack has been deleted.

\n \n

If the template doesn't exist, a ValidationError is returned.

\n
" + } + }, + "com.amazonaws.cloudformation#GetTemplateInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name or the unique stack ID that's associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
" + } + }, + "ChangeSetName": { + "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the\n associated template. If you specify a name, you must also specify the\n StackName.

" + } + }, + "TemplateStage": { + "target": "com.amazonaws.cloudformation#TemplateStage", + "traits": { + "smithy.api#documentation": "

For templates that include transforms, the stage of the template that CloudFormation returns.\n To get the user-submitted template, specify Original. To get the template after\n CloudFormation has processed all transforms, specify Processed.

\n

If the template doesn't include transforms, Original and\n Processed return the same template. By default, CloudFormation specifies\n Processed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for a GetTemplate action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#GetTemplateOutput": { + "type": "structure", + "members": { + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body.

\n

CloudFormation returns the same template that was used when the stack was created.

" + } + }, + "StagesAvailable": { + "target": "com.amazonaws.cloudformation#StageList", + "traits": { + "smithy.api#documentation": "

The stage of the template that you can retrieve. For stacks, the Original and\n Processed templates are always available. For change sets, the\n Original template is always available. After CloudFormation finishes creating the\n change set, the Processed template becomes available.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for GetTemplate action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#GetTemplateSummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#GetTemplateSummaryInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#GetTemplateSummaryOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about a new or existing template. The GetTemplateSummary\n action is useful for viewing parameter information, such as default parameter values and\n parameter types, before you create or update a stack or StackSet.

\n

You can use the GetTemplateSummary action when you submit a template, or you\n can get template information for a StackSet, or a running or deleted stack.

\n

For deleted stacks, GetTemplateSummary returns the template information for\n up to 90 days after the stack has been deleted. If the template doesn't exist, a\n ValidationError is returned.

" + } + }, + "com.amazonaws.cloudformation#GetTemplateSummaryInput": { + "type": "structure", + "members": { + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body with a minimum length of 1 byte and a maximum\n length of 51,200 bytes.

\n

Conditional: You must specify only one of the following parameters:\n StackName, StackSetName, TemplateBody, or\n TemplateURL.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template (max\n size: 1 MB) that's located in an Amazon S3 bucket or a Systems Manager document. The location for\n an Amazon S3 bucket must start with https://.

\n

Conditional: You must specify only one of the following parameters:\n StackName, StackSetName, TemplateBody, or\n TemplateURL.

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

The name or the stack ID that's associated with the stack, which aren't always\n interchangeable. For running stacks, you can specify either the stack's name or its unique\n stack ID. For deleted stack, you must specify the unique stack ID.

\n

Conditional: You must specify only one of the following parameters:\n StackName, StackSetName, TemplateBody, or\n TemplateURL.

" + } + }, + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#documentation": "

The name or unique ID of the StackSet from which the stack was created.

\n

Conditional: You must specify only one of the following parameters:\n StackName, StackSetName, TemplateBody, or\n TemplateURL.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + }, + "TemplateSummaryConfig": { + "target": "com.amazonaws.cloudformation#TemplateSummaryConfig", + "traits": { + "smithy.api#documentation": "

Specifies options for the GetTemplateSummary API action.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the GetTemplateSummary action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#GetTemplateSummaryOutput": { + "type": "structure", + "members": { + "Parameters": { + "target": "com.amazonaws.cloudformation#ParameterDeclarations", + "traits": { + "smithy.api#documentation": "

A list of parameter declarations that describe various properties for each\n parameter.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The value that's defined in the Description property of the template.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you\n must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for\n this parameter when you use the CreateStack or UpdateStack\n actions with your template; otherwise, those actions return an\n InsufficientCapabilities error.

\n

For more information, see Acknowledging IAM resources in CloudFormation templates.

" + } + }, + "CapabilitiesReason": { + "target": "com.amazonaws.cloudformation#CapabilitiesReason", + "traits": { + "smithy.api#documentation": "

The list of resources that generated the values in the Capabilities response\n element.

" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

A list of all the template resource types that are defined in the template, such as\n AWS::EC2::Instance, AWS::Dynamo::Table, and\n Custom::MyCustomInstance.

" + } + }, + "Version": { + "target": "com.amazonaws.cloudformation#Version", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services template format version, which identifies the capabilities of the\n template.

" + } + }, + "Metadata": { + "target": "com.amazonaws.cloudformation#Metadata", + "traits": { + "smithy.api#documentation": "

The value that's defined for the Metadata property of the template.

" + } + }, + "DeclaredTransforms": { + "target": "com.amazonaws.cloudformation#TransformsList", + "traits": { + "smithy.api#documentation": "

A list of the transforms that are declared in the template.

" + } + }, + "ResourceIdentifierSummaries": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierSummaries", + "traits": { + "smithy.api#documentation": "

A list of resource identifier summaries that describe the target resources of an import\n operation and the properties you can provide during the import to identify the target\n resources. For example, BucketName is a possible identifier property for an\n AWS::S3::Bucket resource.

" + } + }, + "Warnings": { + "target": "com.amazonaws.cloudformation#Warnings", + "traits": { + "smithy.api#documentation": "

An object that contains any warnings returned.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the GetTemplateSummary action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#HandlerErrorCode": { + "type": "enum", + "members": { + "NotUpdatable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotUpdatable" + } + }, + "InvalidRequest": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvalidRequest" + } + }, + "AccessDenied": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccessDenied" + } + }, + "InvalidCredentials": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvalidCredentials" + } + }, + "AlreadyExists": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AlreadyExists" + } + }, + "NotFound": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotFound" + } + }, + "ResourceConflict": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceConflict" + } + }, + "Throttling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Throttling" + } + }, + "ServiceLimitExceeded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceLimitExceeded" + } + }, + "ServiceTimeout": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotStabilized" + } + }, + "GeneralServiceException": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GeneralServiceException" + } + }, + "ServiceInternalError": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceInternalError" + } + }, + "NetworkFailure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NetworkFailure" + } + }, + "InternalFailure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InternalFailure" + } + }, + "InvalidTypeConfiguration": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvalidTypeConfiguration" + } + }, + "HandlerInternalFailure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HandlerInternalFailure" + } + }, + "NonCompliant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NonCompliant" + } + }, + "Unknown": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Unknown" + } + }, + "UnsupportedTarget": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UnsupportedTarget" + } + } + } + }, + "com.amazonaws.cloudformation#HookFailureMode": { + "type": "enum", + "members": { + "FAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAIL" + } + }, + "WARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WARN" + } + } + } + }, + "com.amazonaws.cloudformation#HookInvocationCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#HookInvocationId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.cloudformation#HookInvocationPoint": { + "type": "enum", + "members": { + "PRE_PROVISION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRE_PROVISION" + } + } + } + }, + "com.amazonaws.cloudformation#HookResultId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1600 + }, + "smithy.api#pattern": "^[a-zA-Z][-a-zA-Z0-9]*|arn:[-a-zA-Z0-9:/]*|^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.cloudformation#HookResultNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "HookResultNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified target doesn't have any requested Hook invocations.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#HookResultSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#HookResultSummary" + } + }, + "com.amazonaws.cloudformation#HookResultSummary": { + "type": "structure", + "members": { + "HookResultId": { + "target": "com.amazonaws.cloudformation#HookInvocationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for this Hook invocation result.

" + } + }, + "InvocationPoint": { + "target": "com.amazonaws.cloudformation#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

The specific point in the provisioning process where the Hook is invoked.

" + } + }, + "FailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

The failure mode of the invocation.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#HookTypeName", + "traits": { + "smithy.api#documentation": "

The name of the Hook that was invoked.

" + } + }, + "TypeVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeVersionId", + "traits": { + "smithy.api#documentation": "

The version of the Hook that was invoked.

" + } + }, + "TypeConfigurationVersionId": { + "target": "com.amazonaws.cloudformation#HookTypeConfigurationVersionId", + "traits": { + "smithy.api#documentation": "

The version of the Hook configuration.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#HookStatus", + "traits": { + "smithy.api#documentation": "

The status of the Hook invocation. The following statuses are possible:

\n
    \n
  • \n

    \n HOOK_IN_PROGRESS: The Hook is currently running.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_SUCCEEDED: The Hook completed successfully.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_FAILED: The Hook completed but failed validation.

    \n
  • \n
  • \n

    \n HOOK_FAILED: The Hook encountered an error during execution.

    \n
  • \n
" + } + }, + "HookStatusReason": { + "target": "com.amazonaws.cloudformation#HookStatusReason", + "traits": { + "smithy.api#documentation": "

A description of the Hook results status. For example, if the Hook result is in a failed\n state, this may contain additional information for the failed state.

" + } + }, + "InvokedAt": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the Hook was invoked.

\n

Only shown in responses when the request does not specify TargetType and\n TargetId filters.

" + } + }, + "TargetType": { + "target": "com.amazonaws.cloudformation#ListHookResultsTargetType", + "traits": { + "smithy.api#documentation": "

The target type that the Hook was invoked against.

" + } + }, + "TargetId": { + "target": "com.amazonaws.cloudformation#HookResultId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Hook invocation target.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#HookTypeArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Hook that was invoked.

" + } + }, + "HookExecutionTarget": { + "target": "com.amazonaws.cloudformation#HookResultId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target stack or request token of the Cloud Control API\n operation.

\n

Only shown in responses when the request does not specify TargetType and\n TargetId filters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A ListHookResults call returns a summary of a Hook invocation.

" + } + }, + "com.amazonaws.cloudformation#HookStatus": { + "type": "enum", + "members": { + "HOOK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK_IN_PROGRESS" + } + }, + "HOOK_COMPLETE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK_COMPLETE_SUCCEEDED" + } + }, + "HOOK_COMPLETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK_COMPLETE_FAILED" + } + }, + "HOOK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK_FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#HookStatusReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.cloudformation#HookTarget": { + "type": "structure", + "members": { + "TargetType": { + "target": "com.amazonaws.cloudformation#HookTargetType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target type.

", + "smithy.api#required": {} + } + }, + "TargetTypeName": { + "target": "com.amazonaws.cloudformation#HookTargetTypeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target name, for example, AWS::S3::Bucket.

", + "smithy.api#required": {} + } + }, + "TargetId": { + "target": "com.amazonaws.cloudformation#HookTargetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of the Hook invocation target.

", + "smithy.api#required": {} + } + }, + "Action": { + "target": "com.amazonaws.cloudformation#HookTargetAction", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The action that invoked the Hook.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The HookTarget data type.

" + } + }, + "com.amazonaws.cloudformation#HookTargetAction": { + "type": "enum", + "members": { + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE" + } + }, + "UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + }, + "IMPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT" + } + } + } + }, + "com.amazonaws.cloudformation#HookTargetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[^_]*$" + } + }, + "com.amazonaws.cloudformation#HookTargetType": { + "type": "enum", + "members": { + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + } + } + }, + "com.amazonaws.cloudformation#HookTargetTypeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}$" + } + }, + "com.amazonaws.cloudformation#HookType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.cloudformation#HookTypeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type/hook/[A-Za-z0-9-]+/?$" + } + }, + "com.amazonaws.cloudformation#HookTypeConfigurationVersionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[A-Za-z0-9-]+$" + } + }, + "com.amazonaws.cloudformation#HookTypeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 196 + } + } + }, + "com.amazonaws.cloudformation#HookTypeVersionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[A-Za-z0-9-]+$" + } + }, + "com.amazonaws.cloudformation#IdentityProvider": { + "type": "enum", + "members": { + "AWS_Marketplace": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_Marketplace" + } + }, + "GitHub": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GitHub" + } + }, + "Bitbucket": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Bitbucket" + } + } + } + }, + "com.amazonaws.cloudformation#ImportExistingResources": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#ImportStacksToStackSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ImportStacksToStackSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ImportStacksToStackSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + }, + { + "target": "com.amazonaws.cloudformation#OperationIdAlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StaleRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Import existing stacks into a new StackSets. Use the stack import operation to import up\n to 10 stacks into a new StackSet in the same account as the source stack or in a different\n administrator account and Region, by specifying the stack ID of the stack you intend to\n import.

" + } + }, + "com.amazonaws.cloudformation#ImportStacksToStackSetInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the StackSet. The name must be unique in the Region where you create your\n StackSet.

", + "smithy.api#required": {} + } + }, + "StackIds": { + "target": "com.amazonaws.cloudformation#StackIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the stacks you are importing into a StackSet. You import up to 10 stacks per\n StackSet at a time.

\n

Specify either StackIds or StackIdsUrl.

" + } + }, + "StackIdsUrl": { + "target": "com.amazonaws.cloudformation#StackIdsUrl", + "traits": { + "smithy.api#documentation": "

The Amazon S3 URL which contains list of stack ids to be inputted.

\n

Specify either StackIds or StackIdsUrl.

" + } + }, + "OrganizationalUnitIds": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitIdList", + "traits": { + "smithy.api#documentation": "

The list of OU ID's to which the imported stacks must be mapped as deployment\n targets.

" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a StackSet operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see StackSet operation options.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique, user defined, identifier for the StackSet operation.

", + "smithy.api#idempotencyToken": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    For service managed StackSets, specify DELEGATED_ADMIN.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ImportStacksToStackSetOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for the StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#Imports": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackName" + } + }, + "com.amazonaws.cloudformation#InProgressStackInstancesCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#InSyncStackInstancesCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#IncludeNestedStacks": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#IncludePropertyValues": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#InsufficientCapabilitiesException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientCapabilitiesException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The template contains resources with capabilities that weren't specified in the Capabilities parameter.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#InvalidChangeSetStatusException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidChangeSetStatus", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified change set can't be used to update the stack. For example, the change set status might be\n CREATE_IN_PROGRESS, or the stack status might be UPDATE_IN_PROGRESS.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#InvalidOperationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidOperationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified operation isn't valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#InvalidStateTransitionException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidStateTransition", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI. CloudFormation doesn't\n return this error to users.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#IsActivated": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#IsDefaultConfiguration": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#IsDefaultVersion": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#JazzLogicalResourceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#LogicalResourceId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.cloudformation#JazzResourceIdentifierProperties": { + "type": "map", + "key": { + "target": "com.amazonaws.cloudformation#JazzResourceIdentifierPropertyKey" + }, + "value": { + "target": "com.amazonaws.cloudformation#JazzResourceIdentifierPropertyValue" + } + }, + "com.amazonaws.cloudformation#JazzResourceIdentifierPropertyKey": { + "type": "string" + }, + "com.amazonaws.cloudformation#JazzResourceIdentifierPropertyValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#Key": { + "type": "string" + }, + "com.amazonaws.cloudformation#LastOperations": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#OperationEntry" + } + }, + "com.amazonaws.cloudformation#LastUpdatedTime": { + "type": "timestamp" + }, + "com.amazonaws.cloudformation#LimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "LimitExceededException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The quota for the resource has already been reached.

\n

For information about resource and stack limitations, see CloudFormation quotas in the\n CloudFormation User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#LimitName": { + "type": "string" + }, + "com.amazonaws.cloudformation#LimitValue": { + "type": "integer" + }, + "com.amazonaws.cloudformation#ListChangeSets": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListChangeSetsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListChangeSetsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the ID and status of each active change set for a stack. For example, CloudFormation\n lists change sets that are in the CREATE_IN_PROGRESS or\n CREATE_PENDING state.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries" + } + } + }, + "com.amazonaws.cloudformation#ListChangeSetsInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the Amazon Resource Name (ARN) of the stack for which you want to list change\n sets.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the ListChangeSets action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListChangeSetsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#ChangeSetSummaries", + "traits": { + "smithy.api#documentation": "

A list of ChangeSetSummary structures that provides the ID and status of each\n change set for the specified stack.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB, a string that identifies the next page of change sets. If\n there is no additional page, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for the ListChangeSets action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListExports": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListExportsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListExportsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists all exported output values in the account and Region in which you call this action.\n Use this action to see the exported output values that you can import into other stacks. To\n import values, use the Fn::ImportValue function.

\n

For more information, see Get exported outputs\n from a deployed CloudFormation stack.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Exports" + } + } + }, + "com.amazonaws.cloudformation#ListExportsInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListExportsOutput": { + "type": "structure", + "members": { + "Exports": { + "target": "com.amazonaws.cloudformation#Exports", + "traits": { + "smithy.api#documentation": "

The output for the ListExports action.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 100 exported output values, a string that identifies the next page\n of exports. If there is no additional page, this value is null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListGeneratedTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListGeneratedTemplatesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListGeneratedTemplatesOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists your generated templates in this Region.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListGeneratedTemplatesInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

If the number of available results exceeds this maximum, the response includes a\n NextToken value that you can use for the NextToken parameter to\n get the next set of results. By default the ListGeneratedTemplates API action\n will return at most 50 results in each response. The maximum value is 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListGeneratedTemplatesOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#TemplateSummaries", + "traits": { + "smithy.api#documentation": "

A list of summaries of the generated templates.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call ListGeneratedTemplates again\n and use that value for the NextToken parameter. If the request returns all\n results, NextToken is set to an empty string.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListHookResults": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListHookResultsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListHookResultsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#HookResultNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summaries of invoked Hooks. For more information, see View invocation\n summaries for CloudFormation Hooks in the CloudFormation Hooks User Guide.

\n

This operation supports the following parameter combinations:

\n
    \n
  • \n

    No parameters: Returns all Hook invocation summaries.

    \n
  • \n
  • \n

    \n TypeArn only: Returns summaries for a specific Hook.

    \n
  • \n
  • \n

    \n TypeArn and Status: Returns summaries for a specific Hook\n filtered by status.

    \n
  • \n
  • \n

    \n TargetId and TargetType: Returns summaries for a specific\n Hook invocation target.

    \n
  • \n
" + } + }, + "com.amazonaws.cloudformation#ListHookResultsInput": { + "type": "structure", + "members": { + "TargetType": { + "target": "com.amazonaws.cloudformation#ListHookResultsTargetType", + "traits": { + "smithy.api#documentation": "

Filters results by target type. Currently, only CHANGE_SET and\n CLOUD_CONTROL are supported filter options.

\n

Required when TargetId is specified and cannot be used otherwise.

" + } + }, + "TargetId": { + "target": "com.amazonaws.cloudformation#HookResultId", + "traits": { + "smithy.api#documentation": "

Filters results by the unique identifier of the target the Hook was invoked\n against.

\n

For change sets, this is the change set ARN. When the target is a Cloud Control API operation, this\n value must be the HookRequestToken returned by the Cloud Control API request. For more\n information on the HookRequestToken, see ProgressEvent.

\n

Required when TargetType is specified and cannot be used otherwise.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#HookTypeArn", + "traits": { + "smithy.api#documentation": "

Filters results by the ARN of the Hook. Can be used alone or in combination with\n Status.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#HookStatus", + "traits": { + "smithy.api#documentation": "

Filters results by the status of Hook invocations. Can only be used in combination with\n TypeArn. Valid values are:

\n
    \n
  • \n

    \n HOOK_IN_PROGRESS: The Hook is currently running.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_SUCCEEDED: The Hook completed successfully.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_FAILED: The Hook completed but failed validation.

    \n
  • \n
  • \n

    \n HOOK_FAILED: The Hook encountered an error during execution.

    \n
  • \n
" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListHookResultsOutput": { + "type": "structure", + "members": { + "TargetType": { + "target": "com.amazonaws.cloudformation#ListHookResultsTargetType", + "traits": { + "smithy.api#documentation": "

The target type.

" + } + }, + "TargetId": { + "target": "com.amazonaws.cloudformation#HookResultId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Hook invocation target.

" + } + }, + "HookResults": { + "target": "com.amazonaws.cloudformation#HookResultSummaries", + "traits": { + "smithy.api#documentation": "

A list of HookResultSummary structures that provides the status and Hook\n status reason for each Hook invocation for the specified target.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

Pagination token, null or empty if no more results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListHookResultsTargetType": { + "type": "enum", + "members": { + "CHANGE_SET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHANGE_SET" + } + }, + "STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STACK" + } + }, + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + }, + "CLOUD_CONTROL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUD_CONTROL" + } + } + } + }, + "com.amazonaws.cloudformation#ListImports": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListImportsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListImportsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists all stacks that are importing an exported output value. To modify or remove an\n exported output value, first use this action to see which stacks are using it. To see the\n exported output values in your account, see ListExports.

\n

For more information about importing an exported output value, see the Fn::ImportValue function.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Imports" + } + } + }, + "com.amazonaws.cloudformation#ListImportsInput": { + "type": "structure", + "members": { + "ExportName": { + "target": "com.amazonaws.cloudformation#ExportName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the exported output value. CloudFormation returns the stack names that are\n importing this value.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListImportsOutput": { + "type": "structure", + "members": { + "Imports": { + "target": "com.amazonaws.cloudformation#Imports", + "traits": { + "smithy.api#documentation": "

A list of stack names that are importing the specified exported output value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

A string that identifies the next page of exports. If there is no additional page, this\n value is null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScanRelatedResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListResourceScanRelatedResourcesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListResourceScanRelatedResourcesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ResourceScanInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#ResourceScanNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the related resources for a list of resources from a resource scan. The response\n indicates whether each returned resource is already managed by CloudFormation.

", + "smithy.api#examples": [ + { + "title": "To list resource scan related resources", + "documentation": "This example lists the resources related to the passed in resources", + "input": { + "ResourceScanId": "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1", + "Resources": [ + { + "ResourceType": "AWS::S3::Bucket", + "ResourceIdentifier": { + "BucketName": "jazz-bucket" + } + }, + { + "ResourceType": "AWS::EC2::DHCPOptions", + "ResourceIdentifier": { + "DhcpOptionsId": "random-id123" + } + } + ] + }, + "output": { + "RelatedResources": [ + { + "ResourceType": "AWS::EC2::VPCDHCPOptionsAssociation", + "ResourceIdentifier": { + "VpcId": "vpc-0123456abcdefg", + "DhcpOptionsId": "dopt-98765edcba" + }, + "ManagedByStack": false + }, + { + "ResourceType": "AWS::EC2::VPC", + "ResourceIdentifier": { + "VpcId": "vpc-0123456abcdefgabc" + }, + "ManagedByStack": false + }, + { + "ResourceType": "AWS::EC2::VPCDHCPOptionsAssociation", + "ResourceIdentifier": { + "VpcId": "vpc-123456abcdef", + "DhcpOptionsId": "dopt-98765edcba" + }, + "ManagedByStack": false + }, + { + "ResourceType": "AWS::EC2::VPC", + "ResourceIdentifier": { + "VpcId": "vpc-12345678abcd" + }, + "ManagedByStack": false + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "RelatedResources", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListResourceScanRelatedResourcesInput": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan.

", + "smithy.api#required": {} + } + }, + "Resources": { + "target": "com.amazonaws.cloudformation#ScannedResourceIdentifiers", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The list of resources for which you want to get the related resources. Up to 100 resources\n can be provided.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#BoxedMaxResults", + "traits": { + "smithy.api#documentation": "

If the number of available results exceeds this maximum, the response includes a\n NextToken value that you can use for the NextToken parameter to\n get the next set of results. By default the ListResourceScanRelatedResources API\n action will return up to 100 results in each response. The maximum value is 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScanRelatedResourcesOutput": { + "type": "structure", + "members": { + "RelatedResources": { + "target": "com.amazonaws.cloudformation#RelatedResources", + "traits": { + "smithy.api#documentation": "

List of up to MaxResults resources in the specified resource scan related to\n the specified resources.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call\n ListResourceScanRelatedResources again and use that value for the\n NextToken parameter. If the request returns all results, NextToken\n is set to an empty string.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScanResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListResourceScanResourcesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListResourceScanResourcesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ResourceScanInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#ResourceScanNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the resources from a resource scan. The results can be filtered by resource\n identifier, resource type prefix, tag key, and tag value. Only resources that match all\n specified filters are returned. The response indicates whether each returned resource is\n already managed by CloudFormation.

", + "smithy.api#examples": [ + { + "title": "To list the resources in your resource scan", + "documentation": "This example lists the resources in your resource scan", + "input": { + "ResourceScanId": "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1" + }, + "output": { + "Resources": [ + { + "ResourceType": "AWS::Amplify::App", + "ResourceIdentifier": { + "Arn": "arn:aws:amplify:us-east-1:123456789012:apps/12345678" + }, + "ManagedByStack": false + }, + { + "ResourceType": "AWS::ApiGateway::Deployment", + "ResourceIdentifier": { + "DeploymentId": "1234567", + "RestApiId": "abcdefgh" + }, + "ManagedByStack": true + } + ], + "NextToken": "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=" + } + }, + { + "title": "To list the resources in your resource scan for specific resource type", + "documentation": "This example lists the resources in your resource scan filtering only the resources that start with the passed in prefix", + "input": { + "ResourceScanId": "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1", + "ResourceTypePrefix": "AWS::S3" + }, + "output": { + "Resources": [ + { + "ResourceType": "AWS::S3::AccessPoint", + "ResourceIdentifier": { + "Name": "test-access-point" + }, + "ManagedByStack": true + }, + { + "ResourceType": "AWS::S3::BucketPolicy", + "ResourceIdentifier": { + "Bucket": "a-random-bucket" + }, + "ManagedByStack": false + } + ], + "NextToken": "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=" + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Resources", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListResourceScanResourcesInput": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan.

", + "smithy.api#required": {} + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#ResourceIdentifier", + "traits": { + "smithy.api#documentation": "

If specified, the returned resources will have the specified resource identifier (or one\n of them in the case where the resource has multiple identifiers).

" + } + }, + "ResourceTypePrefix": { + "target": "com.amazonaws.cloudformation#ResourceTypePrefix", + "traits": { + "smithy.api#documentation": "

If specified, the returned resources will be of any of the resource types with the\n specified prefix.

" + } + }, + "TagKey": { + "target": "com.amazonaws.cloudformation#TagKey", + "traits": { + "smithy.api#documentation": "

If specified, the returned resources will have a matching tag key.

" + } + }, + "TagValue": { + "target": "com.amazonaws.cloudformation#TagValue", + "traits": { + "smithy.api#documentation": "

If specified, the returned resources will have a matching tag value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#ResourceScannerMaxResults", + "traits": { + "smithy.api#documentation": "

If the number of available results exceeds this maximum, the response includes a\n NextToken value that you can use for the NextToken parameter to\n get the next set of results. By default the ListResourceScanResources API action\n will return at most 100 results in each response. The maximum value is 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScanResourcesOutput": { + "type": "structure", + "members": { + "Resources": { + "target": "com.amazonaws.cloudformation#ScannedResources", + "traits": { + "smithy.api#documentation": "

List of up to MaxResults resources in the specified resource scan that match\n all of the specified filters.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call ListResourceScanResources\n again and use that value for the NextToken parameter. If the request returns all\n results, NextToken is set to an empty string.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScans": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListResourceScansInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListResourceScansOutput" + }, + "traits": { + "smithy.api#documentation": "

List the resource scans from newest to oldest. By default it will return up to 10 resource\n scans.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ResourceScanSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListResourceScansInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#ResourceScannerMaxResults", + "traits": { + "smithy.api#documentation": "

If the number of available results exceeds this maximum, the response includes a\n NextToken value that you can use for the NextToken parameter to\n get the next set of results. The default value is 10. The maximum value is 100.

" + } + }, + "ScanTypeFilter": { + "target": "com.amazonaws.cloudformation#ScanType", + "traits": { + "smithy.api#documentation": "

The scan type that you want to get summary information about. The default is\n FULL.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListResourceScansOutput": { + "type": "structure", + "members": { + "ResourceScanSummaries": { + "target": "com.amazonaws.cloudformation#ResourceScanSummaries", + "traits": { + "smithy.api#documentation": "

The list of scans returned.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call ListResourceScans again and\n use that value for the NextToken parameter. If the request returns all results,\n NextToken is set to an empty string.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackInstanceResourceDrifts": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackInstanceResourceDriftsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackInstanceResourceDriftsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackInstanceNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns drift information for resources in a stack instance.

\n \n

\n ListStackInstanceResourceDrifts returns drift information for the most\n recent drift detection operation. If an operation is in progress, it may only return partial\n results.

\n
" + } + }, + "com.amazonaws.cloudformation#ListStackInstanceResourceDriftsInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to list drifted resources for.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "StackInstanceResourceDriftStatuses": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatusFilters", + "traits": { + "smithy.api#documentation": "

The resource drift status of the stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in\n that the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected\n template values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected\n template configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
" + } + }, + "StackInstanceAccount": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon Web Services account that you want to list resource drifts for.

", + "smithy.api#required": {} + } + }, + "StackInstanceRegion": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Region where you want to list resource drifts.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique ID of the drift operation.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackInstanceResourceDriftsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackInstanceResourceDriftsSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackInstanceResourceDriftsSummary structures that contain\n information about the specified stack instances.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the previous paginated request didn't return all of the remaining results, the response\n object's NextToken parameter value is set to a token. To retrieve the next set of\n results, call this action again and assign that token to the request object's\n NextToken parameter. If there are no remaining results, the previous response\n object's NextToken parameter is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackInstancesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackInstancesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about stack instances that are associated with the specified\n StackSet. You can filter for stack instances that are associated with a specific Amazon Web Services account\n name or Region, or that have a specific status.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackInstancesInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to list stack instances for.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "Filters": { + "target": "com.amazonaws.cloudformation#StackInstanceFilters", + "traits": { + "smithy.api#documentation": "

The filter to apply to stack instances

" + } + }, + "StackInstanceAccount": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services account that you want to list stack instances for.

" + } + }, + "StackInstanceRegion": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#documentation": "

The name of the Region where you want to list stack instances.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackInstancesOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackInstanceSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackInstanceSummary structures that contain information about the\n specified stack instances.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call ListStackInstances again and\n assign that token to the request object's NextToken parameter. If the request\n returns all results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackRefactorActions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackRefactorActionsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackRefactorActionsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists the stack refactor actions that will be taken after calling the ExecuteStackRefactor action.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StackRefactorActions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackRefactorActionsInput": { + "type": "structure", + "members": { + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackRefactorActionsOutput": { + "type": "structure", + "members": { + "StackRefactorActions": { + "target": "com.amazonaws.cloudformation#StackRefactorActions", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The stack refactor actions.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call this action again and assign that token to\n the request object's NextToken parameter. If the request returns all results,\n NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackRefactors": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackRefactorsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackRefactorsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists all account stack refactor operations and their statuses.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StackRefactorSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackRefactorsInput": { + "type": "structure", + "members": { + "ExecutionStatusFilter": { + "target": "com.amazonaws.cloudformation#StackRefactorExecutionStatusFilter", + "traits": { + "smithy.api#documentation": "

Execution status to use as a filter. Specify one or more execution status codes to list\n only stack refactors with the specified execution status codes.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackRefactorsOutput": { + "type": "structure", + "members": { + "StackRefactorSummaries": { + "target": "com.amazonaws.cloudformation#StackRefactorSummaries", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Provides a summary of a stack refactor, including the following:

\n
    \n
  • \n

    \n StackRefactorId\n

    \n
  • \n
  • \n

    \n Status\n

    \n
  • \n
  • \n

    \n StatusReason\n

    \n
  • \n
  • \n

    \n ExecutionStatus\n

    \n
  • \n
  • \n

    \n ExecutionStatusReason\n

    \n
  • \n
  • \n

    \n Description\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call this action again and assign that token to\n the request object's NextToken parameter. If the request returns all results,\n NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackResourcesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackResourcesOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns descriptions of all resources of the specified stack.

\n

For deleted stacks, ListStackResources returns resource information for up to 90 days\n after the stack has been deleted.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StackResourceSummaries" + } + } + }, + "com.amazonaws.cloudformation#ListStackResourcesInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or the unique stack ID that is associated with the stack, which aren't always\n interchangeable:

\n
    \n
  • \n

    Running stacks: You can specify either the stack's name or its unique stack ID.

    \n
  • \n
  • \n

    Deleted stacks: You must specify the unique stack ID.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the ListStackResource action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackResourcesOutput": { + "type": "structure", + "members": { + "StackResourceSummaries": { + "target": "com.amazonaws.cloudformation#StackResourceSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackResourceSummary structures.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB, a string that identifies the next page of stack resources. If\n no additional page exists, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for a ListStackResources action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargetsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargetsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about deployment targets for a StackSet.

" + } + }, + "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargetsInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to get automatic deployment targets\n for.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetAutoDeploymentTargetsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackSetAutoDeploymentTargetSummaries", + "traits": { + "smithy.api#documentation": "

An array of summaries of the deployment targets for the StackSet.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call ListStackSetAutoDeploymentTargets again and use that value for the\n NextToken parameter. If the request returns all results, NextToken\n is set to an empty string.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetOperationResults": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackSetOperationResultsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackSetOperationResultsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about the results of a StackSet operation.

\n \n

This API provides eventually consistent reads meaning it may take\n some time but will eventually return the most up-to-date data.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackSetOperationResultsInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to get operation results for.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the StackSet operation.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + }, + "Filters": { + "target": "com.amazonaws.cloudformation#OperationResultFilters", + "traits": { + "smithy.api#documentation": "

The filter to apply to operation results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetOperationResultsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackSetOperationResultSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackSetOperationResultSummary structures that contain information\n about the specified operation results, for accounts and Amazon Web Services Regions that are included in the\n operation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To\n retrieve the next set of results, call ListOperationResults again and assign that\n token to the request object's NextToken parameter. If there are no remaining\n results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetOperations": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackSetOperationsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackSetOperationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about operations performed on a StackSet.

\n \n

This API provides eventually consistent reads meaning it may take\n some time but will eventually return the most up-to-date data.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackSetOperationsInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to get operation summaries for.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetOperationsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackSetOperationSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackSetOperationSummary structures that contain summary\n information about operations for the specified StackSet.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all results, NextToken is set to a token. To\n retrieve the next set of results, call ListOperationResults again and assign that\n token to the request object's NextToken parameter. If there are no remaining\n results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStackSets": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStackSetsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStackSetsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns summary information about StackSets that are associated with the user.

\n \n

This API provides strongly consistent reads meaning it will always\n return the most up-to-date data.

\n
\n
    \n
  • \n

    [Self-managed permissions] If you set the CallAs parameter to\n SELF while signed in to your Amazon Web Services account, ListStackSets\n returns all self-managed StackSets in your Amazon Web Services account.

    \n
  • \n
  • \n

    [Service-managed permissions] If you set the CallAs parameter to\n SELF while signed in to the organization's management account,\n ListStackSets returns all StackSets in the management account.

    \n
  • \n
  • \n

    [Service-managed permissions] If you set the CallAs parameter to\n DELEGATED_ADMIN while signed in to your member account,\n ListStackSets returns all StackSets with service-managed permissions in the\n management account.

    \n
  • \n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Summaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListStackSetsInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous call.)

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetStatus", + "traits": { + "smithy.api#documentation": "

The status of the StackSets that you want to get summary information about.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the management account or as a delegated administrator in a member\n account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStackSetsOutput": { + "type": "structure", + "members": { + "Summaries": { + "target": "com.amazonaws.cloudformation#StackSetSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackSetSummary structures that contain information about the\n user's StackSets.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set\n to a token. To retrieve the next set of results, call ListStackInstances again\n and assign that token to the request object's NextToken parameter. If the request\n returns all results, NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListStacks": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListStacksInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListStacksOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the summary information for stacks whose status matches the specified\n StackStatusFilter. Summary information for stacks that have been deleted is\n kept for 90 days after the stack is deleted. If no StackStatusFilter is\n specified, summary information for all stacks is returned (including existing stacks and\n stacks that have been deleted).

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StackSummaries" + }, + "smithy.test#smokeTests": [ + { + "id": "ListStacksSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.cloudformation#ListStacksInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "StackStatusFilter": { + "target": "com.amazonaws.cloudformation#StackStatusFilter", + "traits": { + "smithy.api#documentation": "

Stack status to use as a filter. Specify one or more stack status codes to list only\n stacks with the specified status codes. For a complete list of stack status codes, see the\n StackStatus parameter of the Stack data type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for ListStacks action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListStacksOutput": { + "type": "structure", + "members": { + "StackSummaries": { + "target": "com.amazonaws.cloudformation#StackSummaries", + "traits": { + "smithy.api#documentation": "

A list of StackSummary structures that contains information about the\n specified stacks.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If\n no additional page exists, this value is null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for ListStacks action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListTypeRegistrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListTypeRegistrationsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListTypeRegistrationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of registration tokens for the specified extension(s).

", + "smithy.api#idempotent": {}, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListTypeRegistrationsInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "RegistrationStatusFilter": { + "target": "com.amazonaws.cloudformation#RegistrationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the extension registration request.

\n

The default is IN_PROGRESS.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListTypeRegistrationsOutput": { + "type": "structure", + "members": { + "RegistrationTokenList": { + "target": "com.amazonaws.cloudformation#RegistrationTokenList", + "traits": { + "smithy.api#documentation": "

A list of extension registration tokens.

\n

Use DescribeTypeRegistration to return detailed information about a type\n registration request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call this action again and assign that token to\n the request object's NextToken parameter. If the request returns all results,\n NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListTypeVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListTypeVersionsInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListTypeVersionsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about the versions of an extension.

", + "smithy.api#idempotent": {}, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListTypeVersionsInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension for which you want version summary information.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension for which you want version summary\n information.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + }, + "DeprecatedStatus": { + "target": "com.amazonaws.cloudformation#DeprecatedStatus", + "traits": { + "smithy.api#documentation": "

The deprecation status of the extension versions that you want to get summary information\n about.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension version is registered and can be used in CloudFormation\n operations, dependent on its provisioning behavior and visibility scope.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension version has been deregistered and can no longer\n be used in CloudFormation operations.

    \n
  • \n
\n

The default is LIVE.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The publisher ID of the extension publisher.

\n

Extensions published by Amazon aren't assigned a publisher ID.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListTypeVersionsOutput": { + "type": "structure", + "members": { + "TypeVersionSummaries": { + "target": "com.amazonaws.cloudformation#TypeVersionSummaries", + "traits": { + "smithy.api#documentation": "

A list of TypeVersionSummary structures that contain information about the\n specified extension's versions.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all of the remaining results, NextToken is set\n to a token. To retrieve the next set of results, call this action again and assign that token\n to the request object's NextToken parameter. If the request returns all results,\n NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ListTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ListTypesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ListTypesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns summary information about all extensions, including your private resource types,\n modules, and Hooks as well as all public extensions from Amazon Web Services and third-party\n publishers.

", + "smithy.api#idempotent": {}, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TypeSummaries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.cloudformation#ListTypesInput": { + "type": "structure", + "members": { + "Visibility": { + "target": "com.amazonaws.cloudformation#Visibility", + "traits": { + "smithy.api#documentation": "

The scope at which the extensions are visible and usable in CloudFormation operations.

\n

Valid values include:

\n
    \n
  • \n

    \n PRIVATE: Extensions that are visible and usable within this account and\n Region. This includes:

    \n
      \n
    • \n

      Private extensions you have registered in this account and Region.

      \n
    • \n
    • \n

      Public extensions that you have activated in this account and Region.

      \n
    • \n
    \n
  • \n
  • \n

    \n PUBLIC: Extensions that are publicly visible and available to be\n activated within any Amazon Web Services account. This includes extensions from Amazon Web Services and third-party\n publishers.

    \n
  • \n
\n

The default is PRIVATE.

" + } + }, + "ProvisioningType": { + "target": "com.amazonaws.cloudformation#ProvisioningType", + "traits": { + "smithy.api#documentation": "

For resource types, the provisioning behavior of the resource type. CloudFormation determines\n the provisioning type during registration, based on the types of handlers in the schema\n handler package submitted.

\n

Valid values include:

\n
    \n
  • \n

    \n FULLY_MUTABLE: The resource type includes an update handler to process\n updates to the type during stack update operations.

    \n
  • \n
  • \n

    \n IMMUTABLE: The resource type doesn't include an update handler, so the\n type can't be updated and must instead be replaced during stack update operations.

    \n
  • \n
  • \n

    \n NON_PROVISIONABLE: The resource type doesn't include create, read, and\n delete handlers, and therefore can't actually be provisioned.

    \n
  • \n
\n

The default is FULLY_MUTABLE.

" + } + }, + "DeprecatedStatus": { + "target": "com.amazonaws.cloudformation#DeprecatedStatus", + "traits": { + "smithy.api#documentation": "

The deprecation status of the extension that you want to get summary information\n about.

\n

Valid values include:

\n
    \n
  • \n

    \n LIVE: The extension is registered for use in CloudFormation\n operations.

    \n
  • \n
  • \n

    \n DEPRECATED: The extension has been deregistered and can no longer be used\n in CloudFormation operations.

    \n
  • \n
" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The type of extension.

" + } + }, + "Filters": { + "target": "com.amazonaws.cloudformation#TypeFilters", + "traits": { + "smithy.api#documentation": "

Filter criteria to use in determining which extensions to return.

\n

Filters must be compatible with Visibility to return valid results. For\n example, specifying AWS_TYPES for Category and PRIVATE\n for Visibility returns an empty list of types, but specifying PUBLIC\n for Visibility returns the desired list.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.cloudformation#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned with a single call. If the number of\n available results exceeds this maximum, the response includes a NextToken value\n that you can assign to the NextToken request parameter to get the next set of\n results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a previous\n call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ListTypesOutput": { + "type": "structure", + "members": { + "TypeSummaries": { + "target": "com.amazonaws.cloudformation#TypeSummaries", + "traits": { + "smithy.api#documentation": "

A list of TypeSummary structures that contain information about the specified\n extensions.

" + } + }, + "NextToken": { + "target": "com.amazonaws.cloudformation#NextToken", + "traits": { + "smithy.api#documentation": "

If the request doesn't return all the remaining results, NextToken is set to\n a token. To retrieve the next set of results, call this action again and assign that token to\n the request object's NextToken parameter. If the request returns all results,\n NextToken is set to null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#LiveResourceDrift": { + "type": "structure", + "members": { + "PreviousValue": { + "target": "com.amazonaws.cloudformation#ResourceDriftPreviousValue", + "traits": { + "smithy.api#documentation": "

The configuration value from the previous CloudFormation deployment.

" + } + }, + "ActualValue": { + "target": "com.amazonaws.cloudformation#ResourceDriftActualValue", + "traits": { + "smithy.api#documentation": "

The current live configuration value of the resource property.

" + } + }, + "DriftDetectionTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when drift was detected for this resource property.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains drift information for a resource property, including actual value, previous\n deployment value, and drift detection timestamp.

" + } + }, + "com.amazonaws.cloudformation#LogGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]+$" + } + }, + "com.amazonaws.cloudformation#LoggingConfig": { + "type": "structure", + "members": { + "LogRoleArn": { + "target": "com.amazonaws.cloudformation#RoleARN2", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that CloudFormation should assume when sending log\n entries to CloudWatch Logs.

", + "smithy.api#required": {} + } + }, + "LogGroupName": { + "target": "com.amazonaws.cloudformation#LogGroupName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the\n extension's handlers.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains logging configuration information for an extension.

" + } + }, + "com.amazonaws.cloudformation#LogicalIdHierarchy": { + "type": "string" + }, + "com.amazonaws.cloudformation#LogicalResourceId": { + "type": "string" + }, + "com.amazonaws.cloudformation#LogicalResourceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#LogicalResourceId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.cloudformation#MajorVersion": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100000 + } + } + }, + "com.amazonaws.cloudformation#ManagedByStack": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#ManagedExecution": { + "type": "structure", + "members": { + "Active": { + "target": "com.amazonaws.cloudformation#ManagedExecutionNullable", + "traits": { + "smithy.api#documentation": "

When true, CloudFormation performs non-conflicting operations concurrently and\n queues conflicting operations. After conflicting operations finish, CloudFormation starts queued\n operations in request order.

\n \n

If there are already running or queued operations, CloudFormation queues all incoming\n operations even if they are non-conflicting.

\n

You can't modify your StackSet's execution configuration while there are running or queued\n operations for that StackSet.

\n
\n

When false (default), StackSets performs one operation at a time in request\n order.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + } + }, + "com.amazonaws.cloudformation#ManagedExecutionNullable": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#MaxConcurrentCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.cloudformation#MaxConcurrentPercentage": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#Metadata": { + "type": "string" + }, + "com.amazonaws.cloudformation#ModuleInfo": { + "type": "structure", + "members": { + "TypeHierarchy": { + "target": "com.amazonaws.cloudformation#TypeHierarchy", + "traits": { + "smithy.api#documentation": "

A concatenated list of the module type or types that contains the resource. Module types are\n listed starting with the inner-most nested module, and separated by /.

\n

In the following example, the resource was created from a module of type\n AWS::First::Example::MODULE, that's nested inside a parent module of type\n AWS::Second::Example::MODULE.

\n

\n AWS::First::Example::MODULE/AWS::Second::Example::MODULE\n

" + } + }, + "LogicalIdHierarchy": { + "target": "com.amazonaws.cloudformation#LogicalIdHierarchy", + "traits": { + "smithy.api#documentation": "

A concatenated list of the logical IDs of the module or modules that contains the resource.\n Modules are listed starting with the inner-most nested module, and separated by\n /.

\n

In the following example, the resource was created from a module, moduleA,\n that's nested inside a parent module, moduleB.

\n

\n moduleA/moduleB\n

\n

For more information, see Reference module resources in\n CloudFormation templates in the CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

\n

For more information about modules, see Create reusable resource configurations\n that can be included across templates with CloudFormation modules in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#MonitoringTimeInMinutes": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 180 + } + } + }, + "com.amazonaws.cloudformation#NameAlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NameAlreadyExistsException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The specified name is already in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.cloudformation#NoEcho": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#NotificationARN": { + "type": "string" + }, + "com.amazonaws.cloudformation#NotificationARNs": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#NotificationARN" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.cloudformation#NumberOfResources": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#OnFailure": { + "type": "enum", + "members": { + "DO_NOTHING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DO_NOTHING" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + } + } + }, + "com.amazonaws.cloudformation#OnStackFailure": { + "type": "enum", + "members": { + "DO_NOTHING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DO_NOTHING" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + } + } + }, + "com.amazonaws.cloudformation#OperationEntry": { + "type": "structure", + "members": { + "OperationType": { + "target": "com.amazonaws.cloudformation#OperationType", + "traits": { + "smithy.api#documentation": "

The type of operation.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a CloudFormation operation.

" + } + }, + "com.amazonaws.cloudformation#OperationEvent": { + "type": "structure", + "members": { + "EventId": { + "target": "com.amazonaws.cloudformation#EventId", + "traits": { + "smithy.api#documentation": "

A unique identifier for this event.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The unique ID name of the instance of the stack.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the operation this event belongs to.

" + } + }, + "OperationType": { + "target": "com.amazonaws.cloudformation#OperationType", + "traits": { + "smithy.api#documentation": "

The type of operation.

" + } + }, + "OperationStatus": { + "target": "com.amazonaws.cloudformation#BeaconStackOperationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the operation.

" + } + }, + "EventType": { + "target": "com.amazonaws.cloudformation#EventType", + "traits": { + "smithy.api#documentation": "

The type of event.

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The logical name of the resource as specified in the template.

" + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a\n resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

Type of resource.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Time the status was updated.

" + } + }, + "StartTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the event started.

" + } + }, + "EndTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the event ended.

" + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#ResourceStatus", + "traits": { + "smithy.api#documentation": "

Current status of the resource.

" + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

Success or failure message associated with the resource.

" + } + }, + "ResourceProperties": { + "target": "com.amazonaws.cloudformation#ResourceProperties", + "traits": { + "smithy.api#documentation": "

The properties used to create the resource.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for the request that initiated this operation.

" + } + }, + "HookType": { + "target": "com.amazonaws.cloudformation#HookType", + "traits": { + "smithy.api#documentation": "

The type name of the Hook that was invoked.

" + } + }, + "HookStatus": { + "target": "com.amazonaws.cloudformation#HookStatus", + "traits": { + "smithy.api#documentation": "

The status of the Hook invocation.

" + } + }, + "HookStatusReason": { + "target": "com.amazonaws.cloudformation#HookStatusReason", + "traits": { + "smithy.api#documentation": "

Additional information about the Hook status.

" + } + }, + "HookInvocationPoint": { + "target": "com.amazonaws.cloudformation#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

The point in the operation lifecycle when the Hook was invoked.

" + } + }, + "HookFailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

Specifies how Hook failures are handled.

" + } + }, + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#DetailedStatus", + "traits": { + "smithy.api#documentation": "

Additional status information about the operation.

" + } + }, + "ValidationFailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

Specifies how validation failures are handled.

" + } + }, + "ValidationName": { + "target": "com.amazonaws.cloudformation#ValidationName", + "traits": { + "smithy.api#documentation": "

The name of the validation that was performed.

" + } + }, + "ValidationStatus": { + "target": "com.amazonaws.cloudformation#ValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the validation.

" + } + }, + "ValidationStatusReason": { + "target": "com.amazonaws.cloudformation#ValidationStatusReason", + "traits": { + "smithy.api#documentation": "

Additional information about the validation status.

" + } + }, + "ValidationPath": { + "target": "com.amazonaws.cloudformation#ValidationPath", + "traits": { + "smithy.api#documentation": "

The path within the resource where the validation was applied.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about an event that occurred during a CloudFormation\n operation.

" + } + }, + "com.amazonaws.cloudformation#OperationEvents": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#OperationEvent" + } + }, + "com.amazonaws.cloudformation#OperationId": { + "type": "string" + }, + "com.amazonaws.cloudformation#OperationIdAlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationIdAlreadyExistsException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The specified operation ID already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#OperationInProgressException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationInProgressException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

Another operation is currently in progress for this StackSet. Only one operation can be performed for a stack\n set at a given time.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#OperationNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified ID refers to an operation that doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#OperationResultFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudformation#OperationResultFilterName", + "traits": { + "smithy.api#documentation": "

The type of filter to apply.

" + } + }, + "Values": { + "target": "com.amazonaws.cloudformation#OperationResultFilterValues", + "traits": { + "smithy.api#documentation": "

The value to filter by.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status that operation results are filtered by.

" + } + }, + "com.amazonaws.cloudformation#OperationResultFilterName": { + "type": "enum", + "members": { + "OPERATION_RESULT_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPERATION_RESULT_STATUS" + } + } + } + }, + "com.amazonaws.cloudformation#OperationResultFilterValues": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 6, + "max": 9 + }, + "smithy.api#pattern": "^\\S{6,9}$" + } + }, + "com.amazonaws.cloudformation#OperationResultFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#OperationResultFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } + } + }, + "com.amazonaws.cloudformation#OperationStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#OperationStatusCheckFailedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConditionalCheckFailed", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Error reserved for use by the CloudFormation CLI. CloudFormation doesn't\n return this error to users.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#OperationType": { + "type": "enum", + "members": { + "CREATE_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_STACK" + } + }, + "UPDATE_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_STACK" + } + }, + "DELETE_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_STACK" + } + }, + "CONTINUE_ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTINUE_ROLLBACK" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + }, + "CREATE_CHANGESET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_CHANGESET" + } + } + } + }, + "com.amazonaws.cloudformation#OptionalSecureUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + } + } + }, + "com.amazonaws.cloudformation#OrganizationStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "DISABLED_PERMANENTLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED_PERMANENTLY" + } + } + } + }, + "com.amazonaws.cloudformation#OrganizationalUnitId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$" + } + }, + "com.amazonaws.cloudformation#OrganizationalUnitIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitId" + } + }, + "com.amazonaws.cloudformation#Output": { + "type": "structure", + "members": { + "OutputKey": { + "target": "com.amazonaws.cloudformation#OutputKey", + "traits": { + "smithy.api#documentation": "

The key associated with the output.

" + } + }, + "OutputValue": { + "target": "com.amazonaws.cloudformation#OutputValue", + "traits": { + "smithy.api#documentation": "

The value associated with the output.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

User defined description associated with the output.

" + } + }, + "ExportName": { + "target": "com.amazonaws.cloudformation#ExportName", + "traits": { + "smithy.api#documentation": "

The name of the export associated with the output.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Output data type.

" + } + }, + "com.amazonaws.cloudformation#OutputKey": { + "type": "string" + }, + "com.amazonaws.cloudformation#OutputValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#Outputs": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Output" + } + }, + "com.amazonaws.cloudformation#Parameter": { + "type": "structure", + "members": { + "ParameterKey": { + "target": "com.amazonaws.cloudformation#ParameterKey", + "traits": { + "smithy.api#documentation": "

The key associated with the parameter. If you don't specify a key and value for a particular\n parameter, CloudFormation uses the default value that's specified in your template.

" + } + }, + "ParameterValue": { + "target": "com.amazonaws.cloudformation#ParameterValue", + "traits": { + "smithy.api#documentation": "

The input value associated with the parameter.

" + } + }, + "UsePreviousValue": { + "target": "com.amazonaws.cloudformation#UsePreviousValue", + "traits": { + "smithy.api#documentation": "

During a stack update, use the existing parameter value that the stack is using for a given\n parameter key. If you specify true, do not specify a parameter value.

" + } + }, + "ResolvedValue": { + "target": "com.amazonaws.cloudformation#ParameterValue", + "traits": { + "smithy.api#documentation": "

Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only\n for Systems Manager parameter types in the template. For more information, see Specify\n existing resources at runtime with CloudFormation-supplied parameter types in the\n CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Parameter data type.

" + } + }, + "com.amazonaws.cloudformation#ParameterConstraints": { + "type": "structure", + "members": { + "AllowedValues": { + "target": "com.amazonaws.cloudformation#AllowedValues", + "traits": { + "smithy.api#documentation": "

A list of values that are permitted for a parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A set of criteria that CloudFormation uses to validate parameter values. Although other\n constraints might be defined in the stack template, CloudFormation returns only the\n AllowedValues property.

" + } + }, + "com.amazonaws.cloudformation#ParameterDeclaration": { + "type": "structure", + "members": { + "ParameterKey": { + "target": "com.amazonaws.cloudformation#ParameterKey", + "traits": { + "smithy.api#documentation": "

The name that's associated with the parameter.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.cloudformation#ParameterValue", + "traits": { + "smithy.api#documentation": "

The default value of the parameter.

" + } + }, + "ParameterType": { + "target": "com.amazonaws.cloudformation#ParameterType", + "traits": { + "smithy.api#documentation": "

The type of parameter.

" + } + }, + "NoEcho": { + "target": "com.amazonaws.cloudformation#NoEcho", + "traits": { + "smithy.api#documentation": "

Flag that indicates whether the parameter value is shown as plain text in logs and in the\n Amazon Web Services Management Console.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description that's associate with the parameter.

" + } + }, + "ParameterConstraints": { + "target": "com.amazonaws.cloudformation#ParameterConstraints", + "traits": { + "smithy.api#documentation": "

The criteria that CloudFormation uses to validate parameter values.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ParameterDeclaration data type.

" + } + }, + "com.amazonaws.cloudformation#ParameterDeclarations": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ParameterDeclaration" + } + }, + "com.amazonaws.cloudformation#ParameterKey": { + "type": "string" + }, + "com.amazonaws.cloudformation#ParameterType": { + "type": "string" + }, + "com.amazonaws.cloudformation#ParameterValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#Parameters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Parameter" + } + }, + "com.amazonaws.cloudformation#PercentageCompleted": { + "type": "double" + }, + "com.amazonaws.cloudformation#PermissionModels": { + "type": "enum", + "members": { + "SERVICE_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_MANAGED" + } + }, + "SELF_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SELF_MANAGED" + } + } + } + }, + "com.amazonaws.cloudformation#PhysicalResourceId": { + "type": "string" + }, + "com.amazonaws.cloudformation#PhysicalResourceIdContext": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#PhysicalResourceIdContextKeyValuePair" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.cloudformation#PhysicalResourceIdContextKeyValuePair": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudformation#Key", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource context key.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudformation#Value", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource context value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Context information that enables CloudFormation to uniquely identify a resource. CloudFormation uses\n context key-value pairs in cases where a resource's logical and physical IDs aren't enough to\n uniquely identify that resource. Each context key-value pair specifies a resource that contains\n the targeted resource.

" + } + }, + "com.amazonaws.cloudformation#PolicyAction": { + "type": "enum", + "members": { + "Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Delete" + } + }, + "Retain": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Retain" + } + }, + "Snapshot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Snapshot" + } + }, + "ReplaceAndDelete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReplaceAndDelete" + } + }, + "ReplaceAndRetain": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReplaceAndRetain" + } + }, + "ReplaceAndSnapshot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReplaceAndSnapshot" + } + } + } + }, + "com.amazonaws.cloudformation#PreviousDeploymentContext": { + "type": "string" + }, + "com.amazonaws.cloudformation#PrivateTypeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+$" + } + }, + "com.amazonaws.cloudformation#Properties": { + "type": "string" + }, + "com.amazonaws.cloudformation#PropertyDescription": { + "type": "string" + }, + "com.amazonaws.cloudformation#PropertyDifference": { + "type": "structure", + "members": { + "PropertyPath": { + "target": "com.amazonaws.cloudformation#PropertyPath", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The fully-qualified path to the resource property.

", + "smithy.api#required": {} + } + }, + "ExpectedValue": { + "target": "com.amazonaws.cloudformation#PropertyValue", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The expected property value of the resource property, as defined in the stack template and\n any values specified as template parameters.

", + "smithy.api#required": {} + } + }, + "ActualValue": { + "target": "com.amazonaws.cloudformation#PropertyValue", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The actual property value of the resource property.

", + "smithy.api#required": {} + } + }, + "DifferenceType": { + "target": "com.amazonaws.cloudformation#DifferenceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of property difference.

\n
    \n
  • \n

    \n ADD: A value has been added to a resource property that's an array or list\n data type.

    \n
  • \n
  • \n

    \n REMOVE: The property has been removed from the current resource\n configuration.

    \n
  • \n
  • \n

    \n NOT_EQUAL: The current property value differs from its expected value (as\n defined in the stack template and any values specified as template parameters).

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a resource property whose actual value differs from its expected value, as\n defined in the stack template and any values specified as template parameters. These will be\n present only for resources whose StackResourceDriftStatus is MODIFIED.\n For more information, see Detect unmanaged\n configuration changes to stacks and resources with drift detection.

" + } + }, + "com.amazonaws.cloudformation#PropertyDifferences": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#PropertyDifference" + } + }, + "com.amazonaws.cloudformation#PropertyName": { + "type": "string" + }, + "com.amazonaws.cloudformation#PropertyPath": { + "type": "string" + }, + "com.amazonaws.cloudformation#PropertyValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#ProvisioningType": { + "type": "enum", + "members": { + "NON_PROVISIONABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NON_PROVISIONABLE" + } + }, + "IMMUTABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMMUTABLE" + } + }, + "FULLY_MUTABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULLY_MUTABLE" + } + } + } + }, + "com.amazonaws.cloudformation#PublicVersionNumber": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5 + }, + "smithy.api#pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(.*)$" + } + }, + "com.amazonaws.cloudformation#PublishType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#PublishTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#PublishTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Publishes the specified extension to the CloudFormation registry as a public extension in this\n Region. Public extensions are available for use by all CloudFormation users. For more information\n about publishing extensions, see Publishing extensions to\n make them available for public use in the\n CloudFormation Command Line Interface (CLI) User Guide.

\n

To publish an extension, you must be registered as a publisher with CloudFormation. For more\n information, see RegisterPublisher.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#PublishTypeInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The type of the extension.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudformation#PrivateTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "PublicVersionNumber": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

The version number to assign to this version of the extension.

\n

Use the following format, and adhere to semantic versioning when assigning a version\n number to your extension:

\n

\n MAJOR.MINOR.PATCH\n

\n

For more information, see Semantic Versioning\n 2.0.0.

\n

If you don't specify a version number, CloudFormation increments the version number by one\n minor version release.

\n

You cannot specify a version number the first time you publish a type. CloudFormation\n automatically sets the first version number to be 1.0.0.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#PublishTypeOutput": { + "type": "structure", + "members": { + "PublicTypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) assigned to the public extension upon publication.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#PublisherId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + }, + "smithy.api#pattern": "^[0-9a-zA-Z]{12,40}$" + } + }, + "com.amazonaws.cloudformation#PublisherName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.cloudformation#PublisherProfile": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^(http:|https:)+[^\\s]+[\\w]$" + } + }, + "com.amazonaws.cloudformation#PublisherStatus": { + "type": "enum", + "members": { + "VERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VERIFIED" + } + }, + "UNVERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNVERIFIED" + } + } + } + }, + "com.amazonaws.cloudformation#Reason": { + "type": "string" + }, + "com.amazonaws.cloudformation#RecordHandlerProgress": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#RecordHandlerProgressInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#RecordHandlerProgressOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidStateTransitionException" + }, + { + "target": "com.amazonaws.cloudformation#OperationStatusCheckFailedException" + } + ], + "traits": { + "smithy.api#documentation": "

Reports progress of a resource handler to CloudFormation.

\n

Reserved for use by the CloudFormation\n CLI. Don't use this API in your code.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#RecordHandlerProgressInput": { + "type": "structure", + "members": { + "BearerToken": { + "target": "com.amazonaws.cloudformation#ClientToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

", + "smithy.api#required": {} + } + }, + "OperationStatus": { + "target": "com.amazonaws.cloudformation#OperationStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

", + "smithy.api#required": {} + } + }, + "CurrentOperationStatus": { + "target": "com.amazonaws.cloudformation#OperationStatus", + "traits": { + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.cloudformation#StatusMessage", + "traits": { + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + } + }, + "ErrorCode": { + "target": "com.amazonaws.cloudformation#HandlerErrorCode", + "traits": { + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + } + }, + "ResourceModel": { + "target": "com.amazonaws.cloudformation#ResourceModel", + "traits": { + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

Reserved for use by the CloudFormation\n CLI.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#RecordHandlerProgressOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#RefreshAllResources": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#Region": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9-]{1,128}$" + } + }, + "com.amazonaws.cloudformation#RegionConcurrencyType": { + "type": "enum", + "members": { + "SEQUENTIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SEQUENTIAL" + } + }, + "PARALLEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PARALLEL" + } + } + } + }, + "com.amazonaws.cloudformation#RegionList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Region" + } + }, + "com.amazonaws.cloudformation#RegisterPublisher": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#RegisterPublisherInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#RegisterPublisherOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Registers your account as a publisher of public extensions in the CloudFormation registry.\n Public extensions are available for use by all CloudFormation users. This publisher ID applies to\n your account in all Amazon Web Services Regions.

\n

For information about requirements for registering as a public extension publisher, see\n Prerequisite: Registering your account to publish CloudFormation extensions in the\n CloudFormation Command Line Interface (CLI) User Guide.

\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#RegisterPublisherInput": { + "type": "structure", + "members": { + "AcceptTermsAndConditions": { + "target": "com.amazonaws.cloudformation#AcceptTermsAndConditions", + "traits": { + "smithy.api#documentation": "

Whether you accept the Terms and Conditions for publishing extensions in the CloudFormation registry. You must\n accept the terms and conditions in order to register to publish public extensions to the\n CloudFormation registry.

\n

The default is false.

" + } + }, + "ConnectionArn": { + "target": "com.amazonaws.cloudformation#ConnectionArn", + "traits": { + "smithy.api#documentation": "

If you are using a Bitbucket or GitHub account for identity verification, the Amazon\n Resource Name (ARN) for your connection to that account.

\n

For more information, see Prerequisite: Registering your account to publish CloudFormation extensions in the\n CloudFormation Command Line Interface (CLI) User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#RegisterPublisherOutput": { + "type": "structure", + "members": { + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The ID assigned this account by CloudFormation for publishing extensions.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#RegisterType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#RegisterTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#RegisterTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + } + ], + "traits": { + "smithy.api#documentation": "

Registers an extension with the CloudFormation service. Registering an extension makes it\n available for use in CloudFormation templates in your Amazon Web Services account, and includes:

\n
    \n
  • \n

    Validating the extension schema.

    \n
  • \n
  • \n

    Determining which handlers, if any, have been specified for the extension.

    \n
  • \n
  • \n

    Making the extension available for use in your account.

    \n
  • \n
\n

For more information about how to develop extensions and ready them for registration, see\n Creating resource types using the CloudFormation CLI in the\n CloudFormation Command Line Interface (CLI) User Guide.

\n

You can have a maximum of 50 resource extension versions registered at a time. This\n maximum is per account and per Region. Use DeregisterType\n to deregister specific extension versions if necessary.

\n

Once you have initiated a registration request using RegisterType, you\n can use DescribeTypeRegistration to monitor the progress of the registration\n request.

\n

Once you have registered a private extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For\n more information, see Edit configuration\n data for extensions in your account in the\n CloudFormation User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#RegisterTypeInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the extension being registered.

\n

We suggest that extension names adhere to the following patterns:

\n
    \n
  • \n

    For resource types, company_or_organization::service::type.

    \n
  • \n
  • \n

    For modules, company_or_organization::service::type::MODULE.

    \n
  • \n
  • \n

    For Hooks, MyCompany::Testing::MyTestHook.

    \n
  • \n
\n \n

The following organization namespaces are reserved and can't be used in your extension\n names:

\n
    \n
  • \n

    \n Alexa\n

    \n
  • \n
  • \n

    \n AMZN\n

    \n
  • \n
  • \n

    \n Amazon\n

    \n
  • \n
  • \n

    \n AWS\n

    \n
  • \n
  • \n

    \n Custom\n

    \n
  • \n
  • \n

    \n Dev\n

    \n
  • \n
\n
", + "smithy.api#required": {} + } + }, + "SchemaHandlerPackage": { + "target": "com.amazonaws.cloudformation#S3Url", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A URL to the S3 bucket that contains the extension project package that contains the\n necessary files for the extension you want to register.

\n

For information about generating a schema handler package for the extension you want to\n register, see submit in\n the CloudFormation Command Line Interface (CLI) User Guide.

\n \n

The user registering the extension must be able to access the package in the S3 bucket.\n That's, the user needs to have GetObject permissions for the schema\n handler package. For more information, see Actions, Resources, and Condition Keys for\n Amazon S3 in the Identity and Access Management User Guide.

\n
", + "smithy.api#required": {} + } + }, + "LoggingConfig": { + "target": "com.amazonaws.cloudformation#LoggingConfig", + "traits": { + "smithy.api#documentation": "

Specifies logging configuration information for an extension.

" + } + }, + "ExecutionRoleArn": { + "target": "com.amazonaws.cloudformation#RoleARN2", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking\n the extension.

\n

For CloudFormation to assume the specified execution role, the role must contain a trust\n relationship with the CloudFormation service principal\n (resources.cloudformation.amazonaws.com). For more information about adding\n trust relationships, see Modifying a role trust policy in the Identity and Access Management User\n Guide.

\n

If your extension calls Amazon Web Services APIs in any of its handlers, you must create an\n \n IAM\n execution role\n that includes the necessary permissions to call those\n Amazon Web Services APIs, and provision that execution role in your account. When CloudFormation needs to invoke\n the resource type handler, CloudFormation assumes this execution role to create a temporary\n session token, which it then passes to the resource type handler, thereby supplying your\n resource type with the appropriate credentials.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#RequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier that acts as an idempotency key for this registration request.\n Specifying a client request token prevents CloudFormation from generating more than one version of\n an extension from the same registration request, even if the request is submitted multiple\n times.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#RegisterTypeOutput": { + "type": "structure", + "members": { + "RegistrationToken": { + "target": "com.amazonaws.cloudformation#RegistrationToken", + "traits": { + "smithy.api#documentation": "

The identifier for this registration request.

\n

Use this registration token when calling DescribeTypeRegistration, which\n returns information about the status and IDs of the extension registration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#RegistrationStatus": { + "type": "enum", + "members": { + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#RegistrationToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][-a-zA-Z0-9]*$" + } + }, + "com.amazonaws.cloudformation#RegistrationTokenList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#RegistrationToken" + } + }, + "com.amazonaws.cloudformation#RegistryType": { + "type": "enum", + "members": { + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + }, + "MODULE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODULE" + } + }, + "HOOK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK" + } + } + } + }, + "com.amazonaws.cloudformation#RelatedResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ScannedResource" + } + }, + "com.amazonaws.cloudformation#RemediationMessageRemediationMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + } + } + }, + "com.amazonaws.cloudformation#RemediationMessageStatusMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + } + } + }, + "com.amazonaws.cloudformation#Replacement": { + "type": "enum", + "members": { + "True": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "True" + } + }, + "False": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "False" + } + }, + "Conditional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Conditional" + } + } + } + }, + "com.amazonaws.cloudformation#RequestToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][-a-zA-Z0-9]*$" + } + }, + "com.amazonaws.cloudformation#RequiredActivatedType": { + "type": "structure", + "members": { + "TypeNameAlias": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

An alias assigned to the public extension, in this account and Region. If you specify an\n alias for the extension, CloudFormation treats the alias as the extension type name within this\n account and Region. You must use the alias to refer to the extension in your templates, API\n calls, and CloudFormation console.

" + } + }, + "OriginalTypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The type name of the public extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account\n and Region, CloudFormation treats that alias as the extension's type name within the account and\n Region, not the type name of the public extension. For more information, see Use\n aliases to refer to extensions in the CloudFormation User Guide.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The publisher ID of the extension publisher.

" + } + }, + "SupportedMajorVersions": { + "target": "com.amazonaws.cloudformation#SupportedMajorVersions", + "traits": { + "smithy.api#documentation": "

A list of the major versions of the extension type that the macro supports.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

For extensions that are modules, a public third-party extension that must be activated in\n your account in order for the module itself to be activated.

\n

For more information, see Requirements for activating third-party public modules in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#RequiredActivatedTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#RequiredActivatedType" + } + }, + "com.amazonaws.cloudformation#RequiredProperty": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#RequiresRecreation": { + "type": "enum", + "members": { + "Never": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Never" + } + }, + "Conditionally": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Conditionally" + } + }, + "Always": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Always" + } + } + } + }, + "com.amazonaws.cloudformation#ResourceAttribute": { + "type": "enum", + "members": { + "Properties": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Properties" + } + }, + "Metadata": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Metadata" + } + }, + "CreationPolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreationPolicy" + } + }, + "UpdatePolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdatePolicy" + } + }, + "DeletionPolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeletionPolicy" + } + }, + "UpdateReplacePolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateReplacePolicy" + } + }, + "Tags": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Tags" + } + } + } + }, + "com.amazonaws.cloudformation#ResourceChange": { + "type": "structure", + "members": { + "PolicyAction": { + "target": "com.amazonaws.cloudformation#PolicyAction", + "traits": { + "smithy.api#documentation": "

The action that will be taken on the physical resource when the change set is\n executed.

\n
    \n
  • \n

    \n Delete The resource will be deleted.

    \n
  • \n
  • \n

    \n Retain The resource will be retained.

    \n
  • \n
  • \n

    \n Snapshot The resource will have a snapshot taken.

    \n
  • \n
  • \n

    \n ReplaceAndDelete The resource will be replaced and then deleted.

    \n
  • \n
  • \n

    \n ReplaceAndRetain The resource will be replaced and then retained.

    \n
  • \n
  • \n

    \n ReplaceAndSnapshot The resource will be replaced and then have a snapshot\n taken.

    \n
  • \n
" + } + }, + "Action": { + "target": "com.amazonaws.cloudformation#ChangeAction", + "traits": { + "smithy.api#documentation": "

The action that CloudFormation takes on the resource, such as Add (adds a new\n resource), Modify (changes a resource), Remove (deletes a resource),\n Import (imports a resource), Dynamic (exact action for the resource\n can't be determined), or SyncWithActual (resource will not be changed, only\n CloudFormation metadata will change).

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The resource's logical ID, which is defined in the stack's template.

" + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The resource's physical ID (resource name). Resources that you are adding don't have\n physical IDs because they haven't been created.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of CloudFormation resource, such as AWS::S3::Bucket.

" + } + }, + "Replacement": { + "target": "com.amazonaws.cloudformation#Replacement", + "traits": { + "smithy.api#documentation": "

For the Modify action, indicates whether CloudFormation will replace the resource\n by creating a new one and deleting the old one. This value depends on the value of the\n RequiresRecreation property in the ResourceTargetDefinition structure.\n For example, if the RequiresRecreation field is Always and the\n Evaluation field is Static, Replacement is\n True. If the RequiresRecreation field is Always and the\n Evaluation field is Dynamic, Replacement is\n Conditional.

\n

If you have multiple changes with different RequiresRecreation values, the\n Replacement value depends on the change with the most impact. A\n RequiresRecreation value of Always has the most impact, followed by\n Conditional, and then Never.

" + } + }, + "Scope": { + "target": "com.amazonaws.cloudformation#Scope", + "traits": { + "smithy.api#documentation": "

For the Modify action, indicates which resource attribute is triggering this\n update, such as a change in the resource attribute's Metadata,\n Properties, or Tags.

" + } + }, + "ResourceDriftStatus": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", + "traits": { + "smithy.api#documentation": "

The drift status of the resource. Valid values:

\n
    \n
  • \n

    \n IN_SYNC – The resource matches its template definition.

    \n
  • \n
  • \n

    \n MODIFIED – Resource properties were modified outside CloudFormation.

    \n
  • \n
  • \n

    \n DELETED – The resource was deleted outside CloudFormation.

    \n
  • \n
  • \n

    \n NOT_CHECKED – CloudFormation doesn’t currently return this value.

    \n
  • \n
  • \n

    \n UNKNOWN – Drift status could not be determined.

    \n
  • \n
  • \n

    \n UNSUPPORTED – Resource type does not support actual state comparison.

    \n
  • \n
\n

Only present for drift-aware change sets.

" + } + }, + "ResourceDriftIgnoredAttributes": { + "target": "com.amazonaws.cloudformation#ResourceDriftIgnoredAttributes", + "traits": { + "smithy.api#documentation": "

List of resource attributes for which drift was ignored.

" + } + }, + "Details": { + "target": "com.amazonaws.cloudformation#ResourceChangeDetails", + "traits": { + "smithy.api#documentation": "

For the Modify action, a list of ResourceChangeDetail structures\n that describes the changes that CloudFormation will make to the resource.

" + } + }, + "ChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The change set ID of the nested change set.

" + } + }, + "ModuleInfo": { + "target": "com.amazonaws.cloudformation#ModuleInfo", + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

" + } + }, + "BeforeContext": { + "target": "com.amazonaws.cloudformation#BeforeContext", + "traits": { + "smithy.api#documentation": "

An encoded JSON string that contains the context of the resource before the change is\n executed.

" + } + }, + "AfterContext": { + "target": "com.amazonaws.cloudformation#AfterContext", + "traits": { + "smithy.api#documentation": "

An encoded JSON string that contains the context of the resource after the change is\n executed.

" + } + }, + "PreviousDeploymentContext": { + "target": "com.amazonaws.cloudformation#PreviousDeploymentContext", + "traits": { + "smithy.api#documentation": "

Information about the resource's state from the previous CloudFormation deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ResourceChange structure describes the resource and the action that\n CloudFormation will perform on it if you execute this change set.

" + } + }, + "com.amazonaws.cloudformation#ResourceChangeDetail": { + "type": "structure", + "members": { + "Target": { + "target": "com.amazonaws.cloudformation#ResourceTargetDefinition", + "traits": { + "smithy.api#documentation": "

A ResourceTargetDefinition structure that describes the field that CloudFormation\n will change and whether the resource will be recreated.

" + } + }, + "Evaluation": { + "target": "com.amazonaws.cloudformation#EvaluationType", + "traits": { + "smithy.api#documentation": "

Indicates whether CloudFormation can determine the target value, and whether the target value\n will change before you execute a change set.

\n

For Static evaluations, CloudFormation can determine that the target value will\n change, and its value. For example, if you directly modify the InstanceType property\n of an EC2 instance, CloudFormation knows that this property value will change, and its value, so this\n is a Static evaluation.

\n

For Dynamic evaluations, can't determine the target value because it depends on\n the result of an intrinsic function, such as a Ref or Fn::GetAtt\n intrinsic function, when the stack is updated. For example, if your template includes a reference\n to a resource that's conditionally recreated, the value of the reference (the physical ID of the\n resource) might change, depending on if the resource is recreated. If the resource is recreated,\n it will have a new physical ID, so all references to that resource will also be updated.

" + } + }, + "ChangeSource": { + "target": "com.amazonaws.cloudformation#ChangeSource", + "traits": { + "smithy.api#documentation": "

The group to which the CausingEntity value belongs. There are five entity\n groups:

\n
    \n
  • \n

    \n ResourceReference entities are Ref intrinsic functions that refer to\n resources in the template, such as { \"Ref\" : \"MyEC2InstanceResource\" }.

    \n
  • \n
  • \n

    \n ParameterReference entities are Ref intrinsic functions that get\n template parameter values, such as { \"Ref\" : \"MyPasswordParameter\" }.

    \n
  • \n
  • \n

    \n ResourceAttribute entities are Fn::GetAtt intrinsic functions that\n get resource attribute values, such as { \"Fn::GetAtt\" : [ \"MyEC2InstanceResource\",\n \"PublicDnsName\" ] }.

    \n
  • \n
  • \n

    \n DirectModification entities are changes that are made directly to the\n template.

    \n
  • \n
  • \n

    \n Automatic entities are AWS::CloudFormation::Stack resource types,\n which are also known as nested stacks. If you made no changes to the\n AWS::CloudFormation::Stack resource, CloudFormation sets the\n ChangeSource to Automatic because the nested stack's template might\n have changed. Changes to a nested stack's template aren't visible to CloudFormation until you run\n an update on the parent stack.

    \n
  • \n
  • \n

    \n NoModification entities are changes made to the template that matches the actual\n state of the resource.

    \n
  • \n
" + } + }, + "CausingEntity": { + "target": "com.amazonaws.cloudformation#CausingEntity", + "traits": { + "smithy.api#documentation": "

The identity of the entity that triggered this change. This entity is a member of the group\n that's specified by the ChangeSource field. For example, if you modified the value\n of the KeyPairName parameter, the CausingEntity is the name of the\n parameter (KeyPairName).

\n

If the ChangeSource value is DirectModification, no value is given\n for CausingEntity.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

For a resource with Modify as the action, the ResourceChange\n structure describes the changes CloudFormation will make to that resource.

" + } + }, + "com.amazonaws.cloudformation#ResourceChangeDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceChangeDetail" + } + }, + "com.amazonaws.cloudformation#ResourceDefinition": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of\n supported resources, see Resource type\n support for imports and drift detection in the\n CloudFormation User Guide\n

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The logical resource id for this resource in the generated template.

" + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierProperties", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of up to 256 key-value pairs that identifies the scanned resource. The key is the\n name of one of the primary identifiers for the resource. (Primary identifiers are specified in\n the primaryIdentifier list in the resource schema.) The value is the value of that\n primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary\n identifiers is TableName so the key-value pair could be \"TableName\":\n \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface (CLI) User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource included in a generated template. This data type is used with the\n CreateGeneratedTemplate and UpdateGeneratedTemplate API\n actions.

" + } + }, + "com.amazonaws.cloudformation#ResourceDefinitions": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceDefinition" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.cloudformation#ResourceDetail": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of\n supported resources, see Resource type\n support for imports and drift detection In the\n CloudFormation User Guide\n

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The logical id for this resource in the final generated template.

" + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierProperties", + "traits": { + "smithy.api#documentation": "

A list of up to 256 key-value pairs that identifies the resource in the generated template.\n The key is the name of one of the primary identifiers for the resource. (Primary identifiers are\n specified in the primaryIdentifier list in the resource schema.) The value is the\n value of that primary identifier. For example, for a AWS::DynamoDB::Table resource,\n the primary identifiers is TableName so the key-value pair could be\n \"TableName\": \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface (CLI) User Guide.

" + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateResourceStatus", + "traits": { + "smithy.api#documentation": "

Status of the processing of a resource in a generated template.

\n
\n
\n \n InProgress\n \n
\n
\n

The resource processing is still in progress.

\n
\n
\n \n Complete\n \n
\n
\n

The resource processing is complete.

\n
\n
\n \n Pending\n \n
\n
\n

The resource processing is pending.

\n
\n
\n \n Failed\n \n
\n
\n

The resource processing has failed.

\n
\n
" + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the resource detail, providing more information if a failure happened.

" + } + }, + "Warnings": { + "target": "com.amazonaws.cloudformation#WarningDetails", + "traits": { + "smithy.api#documentation": "

The warnings generated for this resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a resource in a generated template

" + } + }, + "com.amazonaws.cloudformation#ResourceDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceDetail" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.cloudformation#ResourceDriftActualValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceDriftIgnoredAttribute": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.cloudformation#ResourcePropertyPath", + "traits": { + "smithy.api#documentation": "

Path of the resource attribute for which drift was ignored.

" + } + }, + "Reason": { + "target": "com.amazonaws.cloudformation#DriftIgnoredReason", + "traits": { + "smithy.api#documentation": "

Reason why drift was ignored for the attribute, can have 3 possible values:

\n
    \n
  • \n

    \n WRITE_ONLY_PROPERTY – Property is not included in read response for the\n resource’s live state.

    \n
  • \n
  • \n

    \n MANAGED_BY_AWS – Property is managed by an Amazon Web Services service and is expected to be\n dynamically modified.

    \n
  • \n
  • \n

    \n SENSITIVE_PROPERTY – Property has a sensitive value, such as an Amazon Web Services Secrets Manager value.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ResourceDriftIgnoredAttribute data type.

" + } + }, + "com.amazonaws.cloudformation#ResourceDriftIgnoredAttributes": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceDriftIgnoredAttribute" + } + }, + "com.amazonaws.cloudformation#ResourceDriftPreviousValue": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceIdentifier": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceIdentifierProperties": { + "type": "map", + "key": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierPropertyKey" + }, + "value": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierPropertyValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudformation#ResourceIdentifierPropertyKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.cloudformation#ResourceIdentifierPropertyValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.cloudformation#ResourceIdentifierSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierSummary" + } + }, + "com.amazonaws.cloudformation#ResourceIdentifierSummary": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

The template resource type of the target resources, such as\n AWS::S3::Bucket.

" + } + }, + "LogicalResourceIds": { + "target": "com.amazonaws.cloudformation#LogicalResourceIds", + "traits": { + "smithy.api#documentation": "

The logical IDs of the target resources of the specified ResourceType, as\n defined in the import template.

" + } + }, + "ResourceIdentifiers": { + "target": "com.amazonaws.cloudformation#ResourceIdentifiers", + "traits": { + "smithy.api#documentation": "

The resource properties you can provide during the import to identify your target\n resources. For example, BucketName is a possible identifier property for\n AWS::S3::Bucket resources.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the target resources of a specific type in your import template (for example,\n all AWS::S3::Bucket resources) and the properties you can provide during the\n import to identify resources of that type.

" + } + }, + "com.amazonaws.cloudformation#ResourceIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierPropertyKey" + } + }, + "com.amazonaws.cloudformation#ResourceLocation": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name associated with the stack.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The location of the resource in a stack template.

" + } + }, + "com.amazonaws.cloudformation#ResourceMapping": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.cloudformation#ResourceLocation", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The source stack StackName and LogicalResourceId for the resource\n being refactored.

", + "smithy.api#required": {} + } + }, + "Destination": { + "target": "com.amazonaws.cloudformation#ResourceLocation", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The destination stack StackName and LogicalResourceId for the\n resource being refactored.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the current source of the resource and the destination of where it will be moved\n to.

" + } + }, + "com.amazonaws.cloudformation#ResourceMappings": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceMapping" + } + }, + "com.amazonaws.cloudformation#ResourceModel": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + } + } + }, + "com.amazonaws.cloudformation#ResourceProperties": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourcePropertyPath": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceScanId": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceScanInProgressException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceScanInProgress", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A resource scan is currently in progress. Only one can be run at a time for an account in a Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#ResourceScanLimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceScanLimitExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The limit on resource scans has been exceeded. Reasons include:

\n
    \n
  • \n

    Exceeded the daily quota for resource scans.

    \n
  • \n
  • \n

    A resource scan recently failed. You must wait 10 minutes before starting a new resource scan.

    \n
  • \n
  • \n

    The last resource scan failed after exceeding 100,000 resources. When this happens, you must wait 24 hours\n before starting a new resource scan.

    \n
  • \n
", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#ResourceScanNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceScanNotFound", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The resource scan was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#ResourceScanStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRED" + } + } + } + }, + "com.amazonaws.cloudformation#ResourceScanStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceScanSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceScanSummary" + } + }, + "com.amazonaws.cloudformation#ResourceScanSummary": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ResourceScanStatus", + "traits": { + "smithy.api#documentation": "

Status of the resource scan.

\n
\n
\n \n IN_PROGRESS\n \n
\n
\n

The resource scan is still in progress.

\n
\n
\n \n COMPLETE\n \n
\n
\n

The resource scan is complete.

\n
\n
\n \n EXPIRED\n \n
\n
\n

The resource scan has expired.

\n
\n
\n \n FAILED\n \n
\n
\n

The resource scan has failed.

\n
\n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#ResourceScanStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the resource scan status, providing more information if a failure\n happened.

" + } + }, + "StartTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the resource scan was started.

" + } + }, + "EndTime": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the resource scan was finished.

" + } + }, + "PercentageCompleted": { + "target": "com.amazonaws.cloudformation#PercentageCompleted", + "traits": { + "smithy.api#documentation": "

The percentage of the resource scan that has been completed.

" + } + }, + "ScanType": { + "target": "com.amazonaws.cloudformation#ScanType", + "traits": { + "smithy.api#documentation": "

The scan type that has been completed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the resource scan. This is returned by the ListResourceScan API\n action.

" + } + }, + "com.amazonaws.cloudformation#ResourceScannerMaxResults": { + "type": "integer" + }, + "com.amazonaws.cloudformation#ResourceSignalStatus": { + "type": "enum", + "members": { + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILURE" + } + } + } + }, + "com.amazonaws.cloudformation#ResourceSignalUniqueId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.cloudformation#ResourceStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_COMPLETE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_COMPLETE" + } + }, + "DELETE_SKIPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_SKIPPED" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } + }, + "UPDATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_COMPLETE" + } + }, + "IMPORT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_FAILED" + } + }, + "IMPORT_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_COMPLETE" + } + }, + "IMPORT_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_IN_PROGRESS" + } + }, + "IMPORT_ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_IN_PROGRESS" + } + }, + "IMPORT_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_FAILED" + } + }, + "IMPORT_ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_COMPLETE" + } + }, + "EXPORT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_FAILED" + } + }, + "EXPORT_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_COMPLETE" + } + }, + "EXPORT_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_IN_PROGRESS" + } + }, + "EXPORT_ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_ROLLBACK_IN_PROGRESS" + } + }, + "EXPORT_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_ROLLBACK_FAILED" + } + }, + "EXPORT_ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPORT_ROLLBACK_COMPLETE" + } + }, + "UPDATE_ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_IN_PROGRESS" + } + }, + "UPDATE_ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_COMPLETE" + } + }, + "UPDATE_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_FAILED" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_COMPLETE" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#ResourceStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceTargetDefinition": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.cloudformation#ResourceAttribute", + "traits": { + "smithy.api#documentation": "

Indicates which resource attribute is triggering this update, such as a change in the\n resource attribute's Metadata, Properties, or Tags.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudformation#PropertyName", + "traits": { + "smithy.api#documentation": "

If the Attribute value is Properties, the name of the property.\n For all other attributes, the value is null.

" + } + }, + "RequiresRecreation": { + "target": "com.amazonaws.cloudformation#RequiresRecreation", + "traits": { + "smithy.api#documentation": "

If the Attribute value is Properties, indicates whether a change\n to this property causes the resource to be recreated. The value can be Never,\n Always, or Conditionally. To determine the conditions for a\n Conditionally recreation, see the update behavior for that property in the Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.

" + } + }, + "Path": { + "target": "com.amazonaws.cloudformation#ResourcePropertyPath", + "traits": { + "smithy.api#documentation": "

The property path of the property.

" + } + }, + "BeforeValue": { + "target": "com.amazonaws.cloudformation#BeforeValue", + "traits": { + "smithy.api#documentation": "

The value of the property before the change is executed. Large values can be\n truncated.

" + } + }, + "AfterValue": { + "target": "com.amazonaws.cloudformation#AfterValue", + "traits": { + "smithy.api#documentation": "

The value of the property after the change is executed. Large values can be\n truncated.

" + } + }, + "BeforeValueFrom": { + "target": "com.amazonaws.cloudformation#BeforeValueFrom", + "traits": { + "smithy.api#documentation": "

Indicates the source of the before value. Valid values:

\n
    \n
  • \n

    \n ACTUAL_STATE – The before value represents current actual state.

    \n
  • \n
  • \n

    \n PREVIOUS_DEPLOYMENT_STATE – The before value represents the previous\n CloudFormation deployment state.

    \n
  • \n
\n

Only present for drift-aware change sets.

" + } + }, + "AfterValueFrom": { + "target": "com.amazonaws.cloudformation#AfterValueFrom", + "traits": { + "smithy.api#documentation": "

Indicates the source of the after value. Valid value:

\n
    \n
  • \n

    \n TEMPLATE – The after value comes from the new template.

    \n
  • \n
\n

Only present for drift-aware change sets.

" + } + }, + "Drift": { + "target": "com.amazonaws.cloudformation#LiveResourceDrift", + "traits": { + "smithy.api#documentation": "

Detailed drift information for the resource property, including actual values, previous\n deployment values, and drift detection timestamps.

" + } + }, + "AttributeChangeType": { + "target": "com.amazonaws.cloudformation#AttributeChangeType", + "traits": { + "smithy.api#documentation": "

The type of change to be made to the property if the change is executed.

\n
    \n
  • \n

    \n Add The item will be added.

    \n
  • \n
  • \n

    \n Remove The item will be removed.

    \n
  • \n
  • \n

    \n Modify The item will be modified.

    \n
  • \n
  • \n

    \n SyncWithActual The drift status of this item will be reset but the item will\n not be modified.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The field that CloudFormation will change, such as the name of a resource's property, and\n whether the resource will be recreated.

" + } + }, + "com.amazonaws.cloudformation#ResourceToImport": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of resource to import into your stack, such as AWS::S3::Bucket. For a\n list of supported resource types, see Resource type\n support for imports and drift detection in the\n CloudFormation User Guide.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical ID of the target resource as specified in the template.

", + "smithy.api#required": {} + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#ResourceIdentifierProperties", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A key-value pair that identifies the target resource. The key is an identifier property (for\n example, BucketName for AWS::S3::Bucket resources) and the value is the\n actual property value (for example, MyS3Bucket).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the target resource of an import operation.

" + } + }, + "com.amazonaws.cloudformation#ResourceToSkip": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9]+|[a-zA-Z][-a-zA-Z0-9]*\\.[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.cloudformation#ResourceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudformation#ResourceTypeFilter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#ResourceTypeFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceTypeFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.cloudformation#ResourceTypePrefix": { + "type": "string" + }, + "com.amazonaws.cloudformation#ResourceTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceType" + } + }, + "com.amazonaws.cloudformation#ResourcesFailed": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#ResourcesPending": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#ResourcesProcessing": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#ResourcesRead": { + "type": "integer" + }, + "com.amazonaws.cloudformation#ResourcesScanned": { + "type": "integer" + }, + "com.amazonaws.cloudformation#ResourcesSucceeded": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#ResourcesToImport": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceToImport" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.cloudformation#ResourcesToSkip": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceToSkip" + } + }, + "com.amazonaws.cloudformation#RetainExceptOnCreate": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#RetainResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#LogicalResourceId" + } + }, + "com.amazonaws.cloudformation#RetainStacks": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#RetainStacksNullable": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#RetainStacksOnAccountRemovalNullable": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#RoleARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + } + } + }, + "com.amazonaws.cloudformation#RoleARN2": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^arn:.+:iam::[0-9]{12}:role/.+$" + } + }, + "com.amazonaws.cloudformation#RollbackConfiguration": { + "type": "structure", + "members": { + "RollbackTriggers": { + "target": "com.amazonaws.cloudformation#RollbackTriggers", + "traits": { + "smithy.api#documentation": "

The triggers to monitor during stack creation or update actions.

\n

By default, CloudFormation saves the rollback triggers specified for a stack and applies them to\n any subsequent update operations for the stack, unless you specify otherwise. If you do specify\n rollback triggers for this parameter, those triggers replace any list of triggers previously\n specified for the stack. This means:

\n
    \n
  • \n

    To use the rollback triggers previously specified for this stack, if any, don't specify\n this parameter.

    \n
  • \n
  • \n

    To specify new or updated rollback triggers, you must specify all the\n triggers that you want used for this stack, even triggers you've specified before (for example,\n when creating the stack or during a previous stack update). Any triggers that you don't include\n in the updated list of triggers are no longer applied to the stack.

    \n
  • \n
  • \n

    To remove all currently specified triggers, specify an empty list for this\n parameter.

    \n
  • \n
\n

If a specified trigger is missing, the entire stack operation fails and is rolled\n back.

" + } + }, + "MonitoringTimeInMinutes": { + "target": "com.amazonaws.cloudformation#MonitoringTimeInMinutes", + "traits": { + "smithy.api#documentation": "

The amount of time, in minutes, during which CloudFormation should monitor all the rollback\n triggers after the stack creation or update operation deploys all necessary resources.

\n

The default is 0 minutes.

\n

If you specify a monitoring period but don't specify any rollback triggers, CloudFormation still\n waits the specified period of time before cleaning up old resources after update operations. You\n can use this monitoring period to perform any manual stack validation desired, and manually\n cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

\n

If you specify 0 for this parameter, CloudFormation still monitors the specified rollback\n triggers during stack creation and update operations. Then, for update operations, it begins\n disposing of old resources immediately once the operation completes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Structure that contains the rollback triggers for CloudFormation to monitor during stack\n creation and updating operations, and for the specified monitoring period afterwards.

\n

Rollback triggers enable you to have CloudFormation monitor the state of your application during\n stack creation and updating, and to roll back that operation if the application breaches the\n threshold of any of the alarms you've specified. For more information, see Roll back your CloudFormation stack on alarm breach with rollback triggers.

" + } + }, + "com.amazonaws.cloudformation#RollbackStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#RollbackStackInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#RollbackStackOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

When specifying RollbackStack, you preserve the state of previously\n provisioned resources when an operation fails. You can check the status of the stack through\n the DescribeStacks operation.

\n

Rolls back the specified stack to the last known stable state from\n CREATE_FAILED or UPDATE_FAILED stack statuses.

\n

This operation will delete a stack if it doesn't contain a last known stable state. A last\n known stable state includes any status in a *_COMPLETE. This includes the\n following stack statuses.

\n
    \n
  • \n

    \n CREATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_COMPLETE\n

    \n
  • \n
  • \n

    \n UPDATE_ROLLBACK_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_COMPLETE\n

    \n
  • \n
  • \n

    \n IMPORT_ROLLBACK_COMPLETE\n

    \n
  • \n
" + } + }, + "com.amazonaws.cloudformation#RollbackStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name that's associated with the stack.

", + "smithy.api#required": {} + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to rollback the\n stack.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this RollbackStack request.

" + } + }, + "RetainExceptOnCreate": { + "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", + "traits": { + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation\n rolls back. This includes newly created resources marked with a deletion policy of\n Retain.

\n

Default: false\n

" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for this stack operation, including the deployment\n mode.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#RollbackStackOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

A unique identifier for this rollback operation that can be used to track the operation's\n progress and events.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#RollbackTrigger": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#Arn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the rollback trigger.

\n

If a specified trigger is missing, the entire stack operation fails and is rolled\n back.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#Type", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource type of the rollback trigger. Specify either AWS::CloudWatch::Alarm or AWS::CloudWatch::CompositeAlarm resource types.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A rollback trigger CloudFormation monitors during creation and updating of stacks. If any of the\n alarms you specify goes to ALARM state during the stack operation or within the specified\n monitoring period afterwards, CloudFormation rolls back the entire stack operation.

" + } + }, + "com.amazonaws.cloudformation#RollbackTriggers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#RollbackTrigger" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.cloudformation#S3Bucket": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.cloudformation#S3Url": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, + "com.amazonaws.cloudformation#ScanFilter": { + "type": "structure", + "members": { + "Types": { + "target": "com.amazonaws.cloudformation#ResourceTypeFilters", + "traits": { + "smithy.api#documentation": "

An array of strings where each string represents an Amazon Web Services resource type you want to scan.\n Each string defines the resource type using the format\n AWS::ServiceName::ResourceType, for example, AWS::DynamoDB::Table. For\n the full list of supported resource types, see the Resource type\n support table in the CloudFormation User Guide.

\n

To scan all resource types within a service, you can use a wildcard, represented by an\n asterisk (*). You can place an asterisk at only the end of the string, for example,\n AWS::S3::*.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter that is used to specify which resource types to scan.

" + } + }, + "com.amazonaws.cloudformation#ScanFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ScanFilter" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.cloudformation#ScanType": { + "type": "enum", + "members": { + "FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULL" + } + }, + "PARTIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PARTIAL" + } + } + } + }, + "com.amazonaws.cloudformation#ScannedResource": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of\n supported resources, see Resource type\n support for imports and drift detection In the\n CloudFormation User Guide\n

" + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#JazzResourceIdentifierProperties", + "traits": { + "smithy.api#documentation": "

A list of up to 256 key-value pairs that identifies for the scanned resource. The key is the\n name of one of the primary identifiers for the resource. (Primary identifiers are specified in\n the primaryIdentifier list in the resource schema.) The value is the value of that\n primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary\n identifiers is TableName so the key-value pair could be \"TableName\":\n \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface (CLI) User Guide.

" + } + }, + "ManagedByStack": { + "target": "com.amazonaws.cloudformation#ManagedByStack", + "traits": { + "smithy.api#documentation": "

If true, the resource is managed by a CloudFormation stack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A scanned resource returned by ListResourceScanResources or\n ListResourceScanRelatedResources.

" + } + }, + "com.amazonaws.cloudformation#ScannedResourceIdentifier": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of the resource, such as AWS::DynamoDB::Table. For the list of\n supported resources, see Resource type\n support for imports and drift detection In the\n CloudFormation User Guide.

", + "smithy.api#required": {} + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#JazzResourceIdentifierProperties", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of up to 256 key-value pairs that identifies the scanned resource. The key is the\n name of one of the primary identifiers for the resource. (Primary identifiers are specified in\n the primaryIdentifier list in the resource schema.) The value is the value of that\n primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary\n identifiers is TableName so the key-value pair could be \"TableName\":\n \"MyDDBTable\". For more information, see primaryIdentifier in the CloudFormation Command Line Interface (CLI) User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies a scanned resource. This is used with the\n ListResourceScanRelatedResources API action.

" + } + }, + "com.amazonaws.cloudformation#ScannedResourceIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ScannedResourceIdentifier" + } + }, + "com.amazonaws.cloudformation#ScannedResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ScannedResource" + } + }, + "com.amazonaws.cloudformation#Scope": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#ResourceAttribute" + } + }, + "com.amazonaws.cloudformation#SetStackPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#SetStackPolicyInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Sets a stack policy for a specified stack.

" + } + }, + "com.amazonaws.cloudformation#SetStackPolicyInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique stack ID that you want to associate a policy with.

", + "smithy.api#required": {} + } + }, + "StackPolicyBody": { + "target": "com.amazonaws.cloudformation#StackPolicyBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the stack policy body. For more information, see Prevent updates to stack resources in the CloudFormation User Guide.\n You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + } + }, + "StackPolicyURL": { + "target": "com.amazonaws.cloudformation#StackPolicyURL", + "traits": { + "smithy.api#documentation": "

Location of a file that contains the stack policy. The URL must point to a policy (maximum\n size: 16 KB) located in an Amazon S3 bucket in the same Amazon Web Services Region as the stack. The location for\n an Amazon S3 bucket must start with https://. URLs from S3 static websites are not\n supported.

\n

You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the SetStackPolicy action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#SetTypeConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#SetTypeConfigurationInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#SetTypeConfigurationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the configuration data for a CloudFormation extension, such as a resource or Hook,\n in the given account and Region.

\n

For more information, see Edit configuration\n data for extensions in your account in the\n CloudFormation User Guide.

\n

To view the current configuration data for an extension, refer to the\n ConfigurationSchema element of DescribeType.

\n \n

It's strongly recommended that you use dynamic references to restrict sensitive\n configuration definitions, such as third-party credentials. For more information, see Specify values stored in other services using dynamic references in the\n CloudFormation User Guide.

\n
\n

For more information about setting the configuration data for resource types, see Defining the account-level configuration of an extension in the\n CloudFormation Command Line Interface (CLI) User Guide. For more information about setting the configuration\n data for Hooks, see the CloudFormation Hooks User Guide.

" + } + }, + "com.amazonaws.cloudformation#SetTypeConfigurationInput": { + "type": "structure", + "members": { + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the extension in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the ActivateType API operation in this account and Region. For private extensions, this\n will be the ARN assigned when you call the RegisterType API\n operation in this account and Region.

\n

Do not include the extension versions suffix at the end of the ARN. You can set the\n configuration for an extension, but not for a specific extension version.

" + } + }, + "Configuration": { + "target": "com.amazonaws.cloudformation#TypeConfiguration", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration data for the extension in this account and Region.

\n

The configuration data must be formatted as JSON and validate against the extension's\n schema returned in the Schema response element of DescribeType.

", + "smithy.api#required": {} + } + }, + "ConfigurationAlias": { + "target": "com.amazonaws.cloudformation#TypeConfigurationAlias", + "traits": { + "smithy.api#documentation": "

An alias by which to refer to this extension configuration data.

\n

Conditional: Specifying a configuration alias is required when setting a configuration for\n a resource type extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify ConfigurationArn, or Type and\n TypeName.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The type of extension.

\n

Conditional: You must specify ConfigurationArn, or Type and\n TypeName.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#SetTypeConfigurationOutput": { + "type": "structure", + "members": { + "ConfigurationArn": { + "target": "com.amazonaws.cloudformation#TypeConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the configuration data in this account and\n Region.

\n

Conditional: You must specify ConfigurationArn, or Type and\n TypeName.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#SetTypeDefaultVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#SetTypeDefaultVersionInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#SetTypeDefaultVersionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Specify the default version of an extension. The default version of an extension will be\n used in CloudFormation operations.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#SetTypeDefaultVersionInput": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#PrivateTypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension for which you want version summary\n information.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

Conditional: You must specify either TypeName and Type, or\n Arn.

" + } + }, + "VersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of a specific version of the extension. The version ID is the value at the end of\n the Amazon Resource Name (ARN) assigned to the extension version when it is registered.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#SetTypeDefaultVersionOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#SignalResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#SignalResourceInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Sends a signal to the specified resource with a success or failure status. You can use the\n SignalResource operation in conjunction with a creation policy or update\n policy. CloudFormation doesn't proceed with a stack creation or update until resources receive the\n required number of signals or the timeout period is exceeded. The SignalResource\n operation is useful in cases where you want to send signals from anywhere other than an Amazon EC2\n instance.

" + } + }, + "com.amazonaws.cloudformation#SignalResourceInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The stack name or unique stack ID that includes the resource that you want to\n signal.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical ID of the resource that you want to signal. The logical ID is the name of the\n resource that given in the template.

", + "smithy.api#required": {} + } + }, + "UniqueId": { + "target": "com.amazonaws.cloudformation#ResourceSignalUniqueId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the\n instance ID that you are signaling as the unique ID. If you send multiple signals to a single\n resource (such as signaling a wait condition), each signal requires a different unique\n ID.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#ResourceSignalStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The status of the signal, which is either success or failure. A failure signal causes\n CloudFormation to immediately fail the stack creation or update.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for the SignalResource action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#Stack": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name associated with the stack.

", + "smithy.api#required": {} + } + }, + "ChangeSetId": { + "target": "com.amazonaws.cloudformation#ChangeSetId", + "traits": { + "smithy.api#documentation": "

The unique ID of the change set.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A user-defined description associated with the stack.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The time at which the stack was created.

", + "smithy.api#required": {} + } + }, + "DeletionTime": { + "target": "com.amazonaws.cloudformation#DeletionTime", + "traits": { + "smithy.api#documentation": "

The time the stack was deleted.

" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.cloudformation#LastUpdatedTime", + "traits": { + "smithy.api#documentation": "

The time the stack was last updated. This field will only be returned if the stack has been\n updated at least once.

" + } + }, + "RollbackConfiguration": { + "target": "com.amazonaws.cloudformation#RollbackConfiguration", + "traits": { + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating\n operations, and for the specified monitoring period afterwards.

" + } + }, + "StackStatus": { + "target": "com.amazonaws.cloudformation#StackStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Current status of the stack.

", + "smithy.api#required": {} + } + }, + "StackStatusReason": { + "target": "com.amazonaws.cloudformation#StackStatusReason", + "traits": { + "smithy.api#documentation": "

Success/failure message associated with the stack status.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Boolean to enable or disable rollback on stack creation failures:

\n
    \n
  • \n

    \n true: disable rollback.

    \n
  • \n
  • \n

    \n false: enable rollback.

    \n
  • \n
" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for the stack, including the deployment mode used for stack\n operations.

" + } + }, + "NotificationARNs": { + "target": "com.amazonaws.cloudformation#NotificationARNs", + "traits": { + "smithy.api#documentation": "

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events are published.

" + } + }, + "TimeoutInMinutes": { + "target": "com.amazonaws.cloudformation#TimeoutMinutes", + "traits": { + "smithy.api#documentation": "

The amount of time within which stack creation should complete.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

The capabilities allowed in the stack.

" + } + }, + "Outputs": { + "target": "com.amazonaws.cloudformation#Outputs", + "traits": { + "smithy.api#documentation": "

A list of output structures.

" + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that's associated with the stack. During a\n stack operation, CloudFormation uses this role's credentials to make calls on your behalf.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

A list of Tags that specify information about the stack.

" + } + }, + "EnableTerminationProtection": { + "target": "com.amazonaws.cloudformation#EnableTerminationProtection", + "traits": { + "smithy.api#documentation": "

Whether termination protection is enabled for the stack.

\n

For nested stacks,\n termination protection is set on the root stack and can't be changed directly on the nested\n stack. For more information, see Protect a CloudFormation\n stack from being deleted in the CloudFormation User Guide.

" + } + }, + "ParentId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

For nested stacks, the stack ID of the direct parent of this stack. For the first level of\n nested stacks, the root stack is also the parent stack.

\n

For more information, see Nested stacks in\n the CloudFormation User Guide.

" + } + }, + "RootId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

For nested stacks, the stack ID of the top-level stack to which the nested stack ultimately\n belongs.

\n

For more information, see Nested stacks in\n the CloudFormation User Guide.

" + } + }, + "DriftInformation": { + "target": "com.amazonaws.cloudformation#StackDriftInformation", + "traits": { + "smithy.api#documentation": "

Information about whether a stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. For more information, see Detect\n unmanaged configuration changes to stacks and resources with drift detection.

" + } + }, + "RetainExceptOnCreate": { + "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", + "traits": { + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation rolls\n back. This includes newly created resources marked with a deletion policy of\n Retain.

\n

Default: false\n

" + } + }, + "DeletionMode": { + "target": "com.amazonaws.cloudformation#DeletionMode", + "traits": { + "smithy.api#documentation": "

Specifies the deletion mode for the stack. Possible values are:

\n
    \n
  • \n

    \n STANDARD - Use the standard behavior. Specifying this value is the same as\n not specifying this parameter.

    \n
  • \n
  • \n

    \n FORCE_DELETE_STACK - Delete the stack if it's stuck in a\n DELETE_FAILED state due to resource deletion failure.

    \n
  • \n
" + } + }, + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#DetailedStatus", + "traits": { + "smithy.api#documentation": "

The detailed status of the resource or stack. If CONFIGURATION_COMPLETE is\n present, the resource or resource configuration phase has completed and the stabilization of the\n resources is in progress. The StackSets CONFIGURATION_COMPLETE when all of the\n resources in the stack have reached that event. For more information, see Understand\n CloudFormation stack creation events in the CloudFormation User Guide.

" + } + }, + "LastOperations": { + "target": "com.amazonaws.cloudformation#LastOperations", + "traits": { + "smithy.api#documentation": "

Information about the most recent operations performed on this stack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Stack data type.

" + } + }, + "com.amazonaws.cloudformation#StackDefinition": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name associated with the stack.

" + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

The file path for the stack template file.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The desired final state of the stack template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the stack and the template used by the stack.

" + } + }, + "com.amazonaws.cloudformation#StackDefinitions": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackDefinition" + } + }, + "com.amazonaws.cloudformation#StackDriftDetectionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 36 + } + } + }, + "com.amazonaws.cloudformation#StackDriftDetectionStatus": { + "type": "enum", + "members": { + "DETECTION_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETECTION_IN_PROGRESS" + } + }, + "DETECTION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETECTION_FAILED" + } + }, + "DETECTION_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETECTION_COMPLETE" + } + } + } + }, + "com.amazonaws.cloudformation#StackDriftDetectionStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackDriftInformation": { + "type": "structure", + "members": { + "StackDriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the stack's actual configuration compared to its expected template\n configuration.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from its expected template configuration. A stack\n is considered to have drifted if one or more of its resources have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected\n template configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: CloudFormation could not run drift detection for a resource in the\n stack.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "LastCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when a drift detection operation was initiated on the stack, or any of its\n individual resources that support drift detection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about whether the stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. A stack is considered to have drifted if one or\n more of its resources have drifted.

" + } + }, + "com.amazonaws.cloudformation#StackDriftInformationSummary": { + "type": "structure", + "members": { + "StackDriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the stack's actual configuration compared to its expected template\n configuration.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from its expected template configuration. A stack\n is considered to have drifted if one or more of its resources have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack differs from its expected\n template configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: CloudFormation could not run drift detection for a resource in the\n stack.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "LastCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when a drift detection operation was initiated on the stack, or any of its\n individual resources that support drift detection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about whether the stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. A stack is considered to have drifted if one or\n more of its resources have drifted.

" + } + }, + "com.amazonaws.cloudformation#StackDriftStatus": { + "type": "enum", + "members": { + "DRIFTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRIFTED" + } + }, + "IN_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_SYNC" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNKNOWN" + } + }, + "NOT_CHECKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_CHECKED" + } + } + } + }, + "com.amazonaws.cloudformation#StackEvent": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique ID name of the instance of the stack.

", + "smithy.api#required": {} + } + }, + "EventId": { + "target": "com.amazonaws.cloudformation#EventId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of this event.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name associated with a stack.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the operation that generated this stack event.

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

The logical name of the resource specified in the template.

" + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier associated with the physical instance of the resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#documentation": "

Type of resource. For more information, see Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time the status was updated.

", + "smithy.api#required": {} + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#ResourceStatus", + "traits": { + "smithy.api#documentation": "

Current status of the resource.

" + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

Success/failure message associated with the resource.

" + } + }, + "ResourceProperties": { + "target": "com.amazonaws.cloudformation#ResourceProperties", + "traits": { + "smithy.api#documentation": "

BLOB of the properties used to create the resource.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The token passed to the operation that generated this event.

\n

All events triggered by a given stack operation are assigned the same client request token,\n which you can use to track operations. For example, if you execute a CreateStack\n operation with the token token1, then all the StackEvents generated by\n that operation will have ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack\n operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the stack\n operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + } + }, + "HookType": { + "target": "com.amazonaws.cloudformation#HookType", + "traits": { + "smithy.api#documentation": "

The name of the Hook.

" + } + }, + "HookStatus": { + "target": "com.amazonaws.cloudformation#HookStatus", + "traits": { + "smithy.api#documentation": "

Provides the status of the change set Hook.

" + } + }, + "HookStatusReason": { + "target": "com.amazonaws.cloudformation#HookStatusReason", + "traits": { + "smithy.api#documentation": "

Provides the reason for the Hook status.

" + } + }, + "HookInvocationPoint": { + "target": "com.amazonaws.cloudformation#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

The specific point in the provisioning process where the Hook is invoked.

" + } + }, + "HookInvocationId": { + "target": "com.amazonaws.cloudformation#HookInvocationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Hook invocation.

" + } + }, + "HookFailureMode": { + "target": "com.amazonaws.cloudformation#HookFailureMode", + "traits": { + "smithy.api#documentation": "

Specify the Hook failure mode for non-compliant resources in the followings ways.

\n
    \n
  • \n

    \n FAIL Stops provisioning resources.

    \n
  • \n
  • \n

    \n WARN Allows provisioning to continue with a warning message.

    \n
  • \n
" + } + }, + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#DetailedStatus", + "traits": { + "smithy.api#documentation": "

An optional field that contains information about the detailed status of the stack\n event.

\n \n
    \n
  • \n

    \n VALIDATION_FAILED - template validation failed because of invalid properties\n in the template. The ResourceStatusReason field shows what properties are defined\n incorrectly.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The StackEvent data type.

" + } + }, + "com.amazonaws.cloudformation#StackEvents": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackEvent" + } + }, + "com.amazonaws.cloudformation#StackId": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackId" + } + }, + "com.amazonaws.cloudformation#StackIds": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackId" + } + }, + "com.amazonaws.cloudformation#StackIdsUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + }, + "smithy.api#pattern": "^(s3://|http(s?)://).+$" + } + }, + "com.amazonaws.cloudformation#StackInstance": { + "type": "structure", + "members": { + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The name or unique ID of the StackSet that the stack instance is associated with.

" + } + }, + "Region": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services Region that the stack instance is associated with.

" + } + }, + "Account": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is\n associated with.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The ID of the stack instance.

" + } + }, + "ParameterOverrides": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of parameters from the StackSet template whose values have been overridden in this\n stack instance.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackInstanceStatus", + "traits": { + "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack\n set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.\n INOPERABLE can be returned here when the cause is a failed import. If it's due to\n a failed import, the operation can be retried once the failures are fixed. To see if this is\n due to a failed import, look at the DetailedStatus member in the\n StackInstanceSummary member that is a peer to this Status\n member.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the StackSet\n because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or\n UpdateStackSet operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet\n operation that failed or was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the StackSet.

    \n
  • \n
" + } + }, + "StackInstanceStatus": { + "target": "com.amazonaws.cloudformation#StackInstanceComprehensiveStatus", + "traits": { + "smithy.api#documentation": "

The detailed status of the stack instance.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#Reason", + "traits": { + "smithy.api#documentation": "

The explanation for the specific status code that's assigned to this stack instance.

" + } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitId", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + } + }, + "DriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and\n parameter configuration of the StackSet it belongs to.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter\n configuration of the StackSet it belongs to. A stack instance is considered to have drifted if\n one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its\n expected StackSet configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected\n StackSset configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + } + }, + "LastDriftCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack\n instance. This value will be NULL for any stack instance that drift detection hasn't\n yet been performed on.

" + } + }, + "LastOperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The last unique ID of a StackSet operation performed on a stack instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFormation stack, in a specific account and Region, that's part of a StackSet operation. A\n stack instance is a reference to an attempted or actual stack in a given account within a given\n Region. A stack instance can exist without a stack—for example, if the stack couldn't be created\n for some reason. A stack instance is associated with only one StackSet. Each stack instance\n contains the ID of its associated StackSet, in addition to the ID of the actual stack and the\n stack status.

" + } + }, + "com.amazonaws.cloudformation#StackInstanceComprehensiveStatus": { + "type": "structure", + "members": { + "DetailedStatus": { + "target": "com.amazonaws.cloudformation#StackInstanceDetailedStatus", + "traits": { + "smithy.api#documentation": "
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been\n canceled. This is either because a user has stopped the StackSet operation, or because the\n failure tolerance of the StackSet operation has been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed. If the\n StackSet operation fails in enough accounts within a Region, the failure tolerance for the\n StackSet operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n FAILED_IMPORT: The import of the stack instance in the specified account and\n Region failed and left the stack in an unstable state. Once the issues causing the failure are\n fixed, the import operation can be retried. If enough StackSet operations fail in enough\n accounts within a Region, the failure tolerance for the StackSet operation as a whole might be\n exceeded.

    \n
  • \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to\n start.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in\n progress.

    \n
  • \n
  • \n

    \n SKIPPED_SUSPENDED_ACCOUNT: The operation in the specified account and Region\n has been skipped because the account was suspended at the time of the operation.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed\n successfully.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The detailed status of the stack instance.

" + } + }, + "com.amazonaws.cloudformation#StackInstanceDetailedStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANCELLED" + } + }, + "INOPERABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INOPERABLE" + } + }, + "SKIPPED_SUSPENDED_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SKIPPED_SUSPENDED_ACCOUNT" + } + }, + "FAILED_IMPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED_IMPORT" + } + } + } + }, + "com.amazonaws.cloudformation#StackInstanceFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudformation#StackInstanceFilterName", + "traits": { + "smithy.api#documentation": "

The type of filter to apply.

" + } + }, + "Values": { + "target": "com.amazonaws.cloudformation#StackInstanceFilterValues", + "traits": { + "smithy.api#documentation": "

The status to filter by.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filter to apply to stack instances

" + } + }, + "com.amazonaws.cloudformation#StackInstanceFilterName": { + "type": "enum", + "members": { + "DETAILED_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETAILED_STATUS" + } + }, + "LAST_OPERATION_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAST_OPERATION_ID" + } + }, + "DRIFT_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRIFT_STATUS" + } + } + } + }, + "com.amazonaws.cloudformation#StackInstanceFilterValues": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^\\S{1,128}$" + } + }, + "com.amazonaws.cloudformation#StackInstanceFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackInstanceFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + }, + "com.amazonaws.cloudformation#StackInstanceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StackInstanceNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified stack instance doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#StackInstanceResourceDriftsSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackInstanceResourceDriftsSummary" + } + }, + "com.amazonaws.cloudformation#StackInstanceResourceDriftsSummary": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the stack instance.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

" + } + }, + "PhysicalResourceIdContext": { + "target": "com.amazonaws.cloudformation#PhysicalResourceIdContext", + "traits": { + "smithy.api#documentation": "

Context information that enables CloudFormation to uniquely identify a resource. CloudFormation uses\n context key-value pairs in cases where a resource's logical and physical IDs aren't enough to\n uniquely identify that resource. Each context key-value pair specifies a unique resource that\n contains the targeted resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Type of resource. For more information, see Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.

", + "smithy.api#required": {} + } + }, + "PropertyDifferences": { + "target": "com.amazonaws.cloudformation#PropertyDifferences", + "traits": { + "smithy.api#documentation": "

Status of the actual configuration of the resource compared to its expected configuration.\n These will be present only for resources whose StackInstanceResourceDriftStatus is\n MODIFIED.

" + } + }, + "StackResourceDriftStatus": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The drift status of the resource in a stack instance.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration in\n that the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected template\n values.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation doesn't currently return this value.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time at which the stack instance drift detection operation was initiated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The structure containing summary information about resource drifts for a stack\n instance.

" + } + }, + "com.amazonaws.cloudformation#StackInstanceStatus": { + "type": "enum", + "members": { + "CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CURRENT" + } + }, + "OUTDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OUTDATED" + } + }, + "INOPERABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INOPERABLE" + } + } + } + }, + "com.amazonaws.cloudformation#StackInstanceSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackInstanceSummary" + } + }, + "com.amazonaws.cloudformation#StackInstanceSummary": { + "type": "structure", + "members": { + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The name or unique ID of the StackSet that the stack instance is associated with.

" + } + }, + "Region": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services Region that the stack instance is associated with.

" + } + }, + "Account": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is\n associated with.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The ID of the stack instance.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackInstanceStatus", + "traits": { + "smithy.api#documentation": "

The status of the stack instance, in terms of its synchronization with its associated stack\n set.

\n
    \n
  • \n

    \n INOPERABLE: A DeleteStackInstances operation has failed and left\n the stack in an unstable state. Stacks in this state are excluded from further\n UpdateStackSet operations. You might need to perform a\n DeleteStackInstances operation, with RetainStacks set to\n true, to delete the stack instance, and then delete the stack manually.\n INOPERABLE can be returned here when the cause is a failed import. If it's due to\n a failed import, the operation can be retried once the failures are fixed. To see if this is\n due to a failed import, call the DescribeStackInstance API operation, look at\n the DetailedStatus member returned in the StackInstanceSummary\n member.

    \n
  • \n
  • \n

    \n OUTDATED: The stack isn't currently up to date with the StackSet\n because:

    \n
      \n
    • \n

      The associated stack failed during a CreateStackSet or\n UpdateStackSet operation.

      \n
    • \n
    • \n

      The stack was part of a CreateStackSet or UpdateStackSet\n operation that failed or was stopped before the stack was created or updated.

      \n
    • \n
    \n
  • \n
  • \n

    \n CURRENT: The stack is currently up to date with the StackSet.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#Reason", + "traits": { + "smithy.api#documentation": "

The explanation for the specific status code assigned to this stack instance.

" + } + }, + "StackInstanceStatus": { + "target": "com.amazonaws.cloudformation#StackInstanceComprehensiveStatus", + "traits": { + "smithy.api#documentation": "

The detailed status of the stack instance.

" + } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitId", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + } + }, + "DriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#documentation": "

Status of the stack instance's actual configuration compared to the expected template and\n parameter configuration of the StackSet it belongs to.

\n
    \n
  • \n

    \n DRIFTED: The stack differs from the expected template and parameter\n configuration of the StackSet it belongs to. A stack instance is considered to have drifted if\n one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the stack instance differs from its\n expected StackSet configuration.

    \n
  • \n
  • \n

    \n IN_SYNC: The stack instance's actual configuration matches its expected\n StackSet configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + } + }, + "LastDriftCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the stack\n instance. This value will be NULL for any stack instance that drift detection hasn't\n yet been performed on.

" + } + }, + "LastOperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The last unique ID of a StackSet operation performed on a stack instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The structure that contains summary information about a stack instance.

" + } + }, + "com.amazonaws.cloudformation#StackName": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackNameOrId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + }, + "smithy.api#pattern": "^([a-zA-Z][-a-zA-Z0-9]*)|(arn:\\b(aws|aws-us-gov|aws-cn)\\b:[-a-zA-Z0-9:/._+]*)$" + } + }, + "com.amazonaws.cloudformation#StackNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StackNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified stack ARN doesn't exist or stack doesn't exist corresponding to the ARN in input.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#StackPolicyBody": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + } + } + }, + "com.amazonaws.cloudformation#StackPolicyDuringUpdateBody": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + } + } + }, + "com.amazonaws.cloudformation#StackPolicyDuringUpdateURL": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + } + } + }, + "com.amazonaws.cloudformation#StackPolicyURL": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + } + } + }, + "com.amazonaws.cloudformation#StackRefactorAction": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.cloudformation#StackRefactorActionType", + "traits": { + "smithy.api#documentation": "

The action that CloudFormation takes on the stack.

" + } + }, + "Entity": { + "target": "com.amazonaws.cloudformation#StackRefactorActionEntity", + "traits": { + "smithy.api#documentation": "

The type that will be evaluated in the StackRefactorAction. The following are\n potential Entity types:

\n
    \n
  • \n

    \n Stack\n

    \n
  • \n
  • \n

    \n Resource\n

    \n
  • \n
" + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier associated with the physical instance of the resource.

" + } + }, + "ResourceIdentifier": { + "target": "com.amazonaws.cloudformation#StackRefactorResourceIdentifier", + "traits": { + "smithy.api#documentation": "

A key-value pair that identifies the target resource. The key is an identifier property (for\n example, BucketName for AWS::S3::Bucket resources) and the value is the\n actual property value (for example, MyS3Bucket).

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description to help you identify the refactor.

" + } + }, + "Detection": { + "target": "com.amazonaws.cloudformation#StackRefactorDetection", + "traits": { + "smithy.api#documentation": "

The detection type is one of the following:

\n
    \n
  • \n

    Auto: CloudFormation figured out the mapping on its own.

    \n
  • \n
  • \n

    Manual: The customer provided the mapping in the ResourceMapping\n parameter.

    \n
  • \n
" + } + }, + "DetectionReason": { + "target": "com.amazonaws.cloudformation#DetectionReason", + "traits": { + "smithy.api#documentation": "

The description of the detection type.

" + } + }, + "TagResources": { + "target": "com.amazonaws.cloudformation#StackRefactorTagResources", + "traits": { + "smithy.api#documentation": "

Assigns one or more tags to specified resources.

" + } + }, + "UntagResources": { + "target": "com.amazonaws.cloudformation#StackRefactorUntagResources", + "traits": { + "smithy.api#documentation": "

Removes one or more tags to specified resources.

" + } + }, + "ResourceMapping": { + "target": "com.amazonaws.cloudformation#ResourceMapping", + "traits": { + "smithy.api#documentation": "

The mapping for the stack resource Source and stack resource\n Destination.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the stack and the action that CloudFormation will perform on it if you execute the\n stack refactor.

" + } + }, + "com.amazonaws.cloudformation#StackRefactorActionEntity": { + "type": "enum", + "members": { + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + }, + "STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STACK" + } + } + } + }, + "com.amazonaws.cloudformation#StackRefactorActionType": { + "type": "enum", + "members": { + "MOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MOVE" + } + }, + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE" + } + } + } + }, + "com.amazonaws.cloudformation#StackRefactorActions": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackRefactorAction" + } + }, + "com.amazonaws.cloudformation#StackRefactorDetection": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANUAL" + } + } + } + }, + "com.amazonaws.cloudformation#StackRefactorExecutionStatus": { + "type": "enum", + "members": { + "UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNAVAILABLE" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "OBSOLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OBSOLETE" + } + }, + "EXECUTE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_IN_PROGRESS" + } + }, + "EXECUTE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_COMPLETE" + } + }, + "EXECUTE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXECUTE_FAILED" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_COMPLETE" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#StackRefactorExecutionStatusFilter": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackRefactorExecutionStatus" + } + }, + "com.amazonaws.cloudformation#StackRefactorId": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackRefactorNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StackRefactorNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified stack refactor can't be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#StackRefactorResourceIdentifier": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackRefactorStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_COMPLETE" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_COMPLETE" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + } + } + }, + "com.amazonaws.cloudformation#StackRefactorStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackRefactorSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackRefactorSummary" + } + }, + "com.amazonaws.cloudformation#StackRefactorSummary": { + "type": "structure", + "members": { + "StackRefactorId": { + "target": "com.amazonaws.cloudformation#StackRefactorId", + "traits": { + "smithy.api#documentation": "

The ID associated with the stack refactor created from the CreateStackRefactor action.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description to help you identify the refactor.

" + } + }, + "ExecutionStatus": { + "target": "com.amazonaws.cloudformation#StackRefactorExecutionStatus", + "traits": { + "smithy.api#documentation": "

The operation status that's provided after calling the ExecuteStackRefactor action.

" + } + }, + "ExecutionStatusReason": { + "target": "com.amazonaws.cloudformation#ExecutionStatusReason", + "traits": { + "smithy.api#documentation": "

A detailed explanation for the stack refactor ExecutionStatus.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackRefactorStatus", + "traits": { + "smithy.api#documentation": "

The stack refactor operation status that's provided after calling the CreateStackRefactor action.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#StackRefactorStatusReason", + "traits": { + "smithy.api#documentation": "

A detailed explanation for the stack refactor Status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of a stack refactor operation.

" + } + }, + "com.amazonaws.cloudformation#StackRefactorTagResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Tag" + } + }, + "com.amazonaws.cloudformation#StackRefactorUntagResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TagKey" + } + }, + "com.amazonaws.cloudformation#StackResource": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name associated with the stack.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Type of resource. For more information, see Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.

", + "smithy.api#required": {} + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time the status was updated.

", + "smithy.api#required": {} + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#ResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Current status of the resource.

", + "smithy.api#required": {} + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

Success/failure message associated with the resource.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

User defined description associated with the resource.

" + } + }, + "DriftInformation": { + "target": "com.amazonaws.cloudformation#StackResourceDriftInformation", + "traits": { + "smithy.api#documentation": "

Information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. For more information, see Detect\n unmanaged configuration changes to stacks and resources with drift detection.

" + } + }, + "ModuleInfo": { + "target": "com.amazonaws.cloudformation#ModuleInfo", + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The StackResource data type.

" + } + }, + "com.amazonaws.cloudformation#StackResourceDetail": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#documentation": "

The name associated with the stack.

" + } + }, + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Type of resource. For more information, see Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.

", + "smithy.api#required": {} + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time the status was updated.

", + "smithy.api#required": {} + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#ResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Current status of the resource.

", + "smithy.api#required": {} + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

Success/failure message associated with the resource.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

User defined description associated with the resource.

" + } + }, + "Metadata": { + "target": "com.amazonaws.cloudformation#Metadata", + "traits": { + "smithy.api#documentation": "

The content of the Metadata attribute declared for the resource. For more\n information, see Metadata attribute\n in the CloudFormation User Guide.

" + } + }, + "DriftInformation": { + "target": "com.amazonaws.cloudformation#StackResourceDriftInformation", + "traits": { + "smithy.api#documentation": "

Information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. For more information, see Detect\n unmanaged configuration changes to stacks and resources with drift detection.

" + } + }, + "ModuleInfo": { + "target": "com.amazonaws.cloudformation#ModuleInfo", + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains detailed information about the specified stack resource.

" + } + }, + "com.amazonaws.cloudformation#StackResourceDrift": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the stack.

", + "smithy.api#required": {} + } + }, + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of a resource\n supported by CloudFormation.

" + } + }, + "PhysicalResourceIdContext": { + "target": "com.amazonaws.cloudformation#PhysicalResourceIdContext", + "traits": { + "smithy.api#documentation": "

Context information that enables CloudFormation to uniquely identify a resource. CloudFormation uses\n context key-value pairs in cases where a resource's logical and physical IDs aren't enough to\n uniquely identify that resource. Each context key-value pair specifies a unique resource that\n contains the targeted resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of the resource.

", + "smithy.api#required": {} + } + }, + "ExpectedProperties": { + "target": "com.amazonaws.cloudformation#Properties", + "traits": { + "smithy.api#documentation": "

A JSON structure that contains the expected property values of the stack resource, as\n defined in the stack template and any values specified as template parameters.

\n

For resources whose StackResourceDriftStatus is DELETED, this\n structure will not be present.

" + } + }, + "ActualProperties": { + "target": "com.amazonaws.cloudformation#Properties", + "traits": { + "smithy.api#documentation": "

A JSON structure that contains the actual property values of the stack resource.

\n

For resources whose StackResourceDriftStatus is DELETED, this\n structure will not be present.

" + } + }, + "PropertyDifferences": { + "target": "com.amazonaws.cloudformation#PropertyDifferences", + "traits": { + "smithy.api#documentation": "

A collection of the resource properties whose actual values differ from their expected\n values. These will be present only for resources whose StackResourceDriftStatus is\n MODIFIED.

" + } + }, + "StackResourceDriftStatus": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected template configuration\n because the resource has been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: One or more resource properties differ from their expected values\n (as defined in the stack template and any values specified as template parameters).

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected template\n configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation does not currently return this value.

    \n
  • \n
  • \n

    \n UNKNOWN: CloudFormation could not run drift detection for the resource. See the\n DriftStatusReason for details.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Timestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time at which CloudFormation performed drift detection on the stack resource.

", + "smithy.api#required": {} + } + }, + "ModuleInfo": { + "target": "com.amazonaws.cloudformation#ModuleInfo", + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

" + } + }, + "DriftStatusReason": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the drift status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the drift information for a resource that has been checked for drift. This includes\n actual and expected property values for resources in which CloudFormation has detected drift. Only\n resource properties explicitly defined in the stack template are checked for drift. For more\n information, see Detect unmanaged\n configuration changes to stacks and resources with drift detection.

\n

Resources that don't currently support drift detection can't be checked. For a list of\n resources that support drift detection, see Resource type\n support for imports and drift detection.

\n

Use DetectStackResourceDrift to detect drift on individual resources, or\n DetectStackDrift to detect drift on all resources in a given stack that\n support drift detection.

" + } + }, + "com.amazonaws.cloudformation#StackResourceDriftInformation": { + "type": "structure", + "members": { + "StackResourceDriftStatus": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has\n been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation has not checked if the resource differs from its\n expected configuration.

    \n

    Any resources that do not currently support drift detection have a status of\n NOT_CHECKED. For more information, see Resource\n type support for imports and drift detection.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected\n configuration.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "LastCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When CloudFormation last checked if the resource had drifted from its expected\n configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" + } + }, + "com.amazonaws.cloudformation#StackResourceDriftInformationSummary": { + "type": "structure", + "members": { + "StackResourceDriftStatus": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Status of the resource's actual configuration compared to its expected configuration.

\n
    \n
  • \n

    \n DELETED: The resource differs from its expected configuration in that it has\n been deleted.

    \n
  • \n
  • \n

    \n MODIFIED: The resource differs from its expected configuration.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked if the resource differs from its\n expected configuration.

    \n

    Any resources that don't currently support drift detection have a status of\n NOT_CHECKED. For more information, see Resource\n type support for imports and drift detection. If you performed a ContinueUpdateRollback operation on a stack, resources skipped using\n ResourcesToSkip or ForceRollback also have a status of\n NOT_CHECKED. To detect whether a skipped resource actually differs from the\n template, run DetectStackResourceDrift. For more information about\n skipping resources during rollback operations, see Continue rolling back an update in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n IN_SYNC: The resource's actual configuration matches its expected\n configuration.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "LastCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When CloudFormation last checked if the resource had drifted from its expected\n configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarizes information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration.

" + } + }, + "com.amazonaws.cloudformation#StackResourceDriftStatus": { + "type": "enum", + "members": { + "IN_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_SYNC" + } + }, + "MODIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODIFIED" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + }, + "NOT_CHECKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_CHECKED" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNKNOWN" + } + }, + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSUPPORTED" + } + } + } + }, + "com.amazonaws.cloudformation#StackResourceDriftStatusFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackResourceDriftStatus" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4 + } + } + }, + "com.amazonaws.cloudformation#StackResourceDriftStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackResourceDrifts": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackResourceDrift" + } + }, + "com.amazonaws.cloudformation#StackResourceSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackResourceSummary" + } + }, + "com.amazonaws.cloudformation#StackResourceSummary": { + "type": "structure", + "members": { + "LogicalResourceId": { + "target": "com.amazonaws.cloudformation#LogicalResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The logical name of the resource specified in the template.

", + "smithy.api#required": {} + } + }, + "PhysicalResourceId": { + "target": "com.amazonaws.cloudformation#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

The name or unique identifier that corresponds to a physical instance ID of the\n resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudformation#ResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Type of resource. (For more information, see Amazon Web Services resource and\n property types reference in the CloudFormation User Guide.)

", + "smithy.api#required": {} + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Time the status was updated.

", + "smithy.api#required": {} + } + }, + "ResourceStatus": { + "target": "com.amazonaws.cloudformation#ResourceStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Current status of the resource.

", + "smithy.api#required": {} + } + }, + "ResourceStatusReason": { + "target": "com.amazonaws.cloudformation#ResourceStatusReason", + "traits": { + "smithy.api#documentation": "

Success/failure message associated with the resource.

" + } + }, + "DriftInformation": { + "target": "com.amazonaws.cloudformation#StackResourceDriftInformationSummary", + "traits": { + "smithy.api#documentation": "

Information about whether the resource's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. For more information, see Detect\n unmanaged configuration changes to stacks and resources with drift detection.

" + } + }, + "ModuleInfo": { + "target": "com.amazonaws.cloudformation#ModuleInfo", + "traits": { + "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource\n was created from a module included in the stack template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains high-level information about the specified stack resource.

" + } + }, + "com.amazonaws.cloudformation#StackResources": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackResource" + } + }, + "com.amazonaws.cloudformation#StackSet": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#documentation": "

The name that's associated with the StackSet.

" + } + }, + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The ID of the StackSet.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description of the StackSet that you specify when the StackSet is created or\n updated.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetStatus", + "traits": { + "smithy.api#documentation": "

The status of the StackSet.

" + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

The structure that contains the body of the template that was used to create or update the\n StackSet.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of input parameters for a StackSet.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

The capabilities that are allowed in the StackSet. Some StackSet templates might include\n resources that can affect permissions in your Amazon Web Services account—for example, by creating new\n Identity and Access Management (IAM) users. For more information, see Acknowledging IAM resources in CloudFormation templates.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

A list of tags that specify information about the StackSet. A maximum number of 50 tags can\n be specified.

" + } + }, + "StackSetARN": { + "target": "com.amazonaws.cloudformation#StackSetARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the StackSet.

" + } + }, + "AdministrationRoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to create or update the stack\n set.

\n

Use customized administrator roles to control which users or groups can manage specific\n StackSets within the same administrator account. For more information, see Prerequisites for using CloudFormation StackSets in the\n CloudFormation User Guide.

" + } + }, + "ExecutionRoleName": { + "target": "com.amazonaws.cloudformation#ExecutionRoleName", + "traits": { + "smithy.api#documentation": "

The name of the IAM execution role used to create or update the StackSet.

\n

Use customized execution roles to control which stack resources users and groups can include\n in their StackSets.

" + } + }, + "StackSetDriftDetectionDetails": { + "target": "com.amazonaws.cloudformation#StackSetDriftDetectionDetails", + "traits": { + "smithy.api#documentation": "

Detailed information about the drift status of the StackSet.

\n

For StackSets, contains information about the last completed drift\n operation performed on the StackSet. Information about drift operations currently in progress\n isn't included.

" + } + }, + "AutoDeployment": { + "target": "com.amazonaws.cloudformation#AutoDeployment", + "traits": { + "smithy.api#documentation": "

Describes whether StackSets automatically deploys to Organizations accounts that are\n added to a target organization or organizational unit (OU). Valid only if the StackSet uses\n service-managed permissions.

" + } + }, + "PermissionModel": { + "target": "com.amazonaws.cloudformation#PermissionModels", + "traits": { + "smithy.api#documentation": "

Describes how the IAM roles required for StackSet operations are created.

\n " + } + }, + "OrganizationalUnitIds": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitIdList", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + } + }, + "ManagedExecution": { + "target": "com.amazonaws.cloudformation#ManagedExecution", + "traits": { + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#documentation": "

Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The\n Amazon Web Services Regions list output is in no particular order.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A structure that contains information about a StackSet. With StackSets, you can provision\n stacks across Amazon Web Services accounts and Regions from a single CloudFormation template. Each stack is based\n on the same CloudFormation template, but you can customize individual stacks using parameters.

" + } + }, + "com.amazonaws.cloudformation#StackSetARN": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackSetARNList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSetARN" + } + }, + "com.amazonaws.cloudformation#StackSetAutoDeploymentTargetSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSetAutoDeploymentTargetSummary" + } + }, + "com.amazonaws.cloudformation#StackSetAutoDeploymentTargetSummary": { + "type": "structure", + "members": { + "OrganizationalUnitId": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitId", + "traits": { + "smithy.api#documentation": "

The organization root ID or organizational unit (OU) IDs where the StackSet is\n targeted.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#documentation": "

The list of Regions targeted for this organization or OU.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

One of the targets for the StackSet. Returned by the ListStackSetAutoDeploymentTargets API operation.

" + } + }, + "com.amazonaws.cloudformation#StackSetDriftDetectionDetails": { + "type": "structure", + "members": { + "DriftStatus": { + "target": "com.amazonaws.cloudformation#StackSetDriftStatus", + "traits": { + "smithy.api#documentation": "

Status of the StackSet's actual configuration compared to its expected template and\n parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the StackSet differs\n from the expected template and parameter configuration. A stack instance is considered to have\n drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the StackSet for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All of the stack instances belonging to the StackSet stack match the\n expected template and parameter configuration.

    \n
  • \n
" + } + }, + "DriftDetectionStatus": { + "target": "com.amazonaws.cloudformation#StackSetDriftDetectionStatus", + "traits": { + "smithy.api#documentation": "

The status of the StackSet drift detection operation.

\n
    \n
  • \n

    \n COMPLETED: The drift detection operation completed without failing on any\n stack instances.

    \n
  • \n
  • \n

    \n FAILED: The drift detection operation exceeded the specified failure\n tolerance.

    \n
  • \n
  • \n

    \n PARTIAL_SUCCESS: The drift detection operation completed without exceeding\n the failure tolerance for the operation.

    \n
  • \n
  • \n

    \n IN_PROGRESS: The drift detection operation is currently being\n performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the drift detection operation.

    \n
  • \n
" + } + }, + "LastDriftCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the StackSet. This\n value will be NULL for any StackSet that drift detection hasn't yet been performed\n on.

" + } + }, + "TotalStackInstancesCount": { + "target": "com.amazonaws.cloudformation#TotalStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The total number of stack instances belonging to this StackSet.

\n

The total number of stack instances is equal to the total of:

\n
    \n
  • \n

    Stack instances that match the StackSet configuration.

    \n
  • \n
  • \n

    Stack instances that have drifted from the StackSet configuration.

    \n
  • \n
  • \n

    Stack instances where the drift detection operation has failed.

    \n
  • \n
  • \n

    Stack instances currently being checked for drift.

    \n
  • \n
" + } + }, + "DriftedStackInstancesCount": { + "target": "com.amazonaws.cloudformation#DriftedStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The number of stack instances that have drifted from the expected template and parameter\n configuration of the StackSet. A stack instance is considered to have drifted if one or more of\n the resources in the associated stack don't match their expected configuration.

" + } + }, + "InSyncStackInstancesCount": { + "target": "com.amazonaws.cloudformation#InSyncStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The number of stack instances which match the expected template and parameter configuration\n of the StackSet.

" + } + }, + "InProgressStackInstancesCount": { + "target": "com.amazonaws.cloudformation#InProgressStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The number of stack instances that are currently being checked for drift.

" + } + }, + "FailedStackInstancesCount": { + "target": "com.amazonaws.cloudformation#FailedStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The number of stack instances for which the drift detection operation failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information about the drift status of the StackSet.

\n

For StackSets, contains information about the last completed drift\n operation performed on the StackSet. Information about drift operations in-progress isn't\n included.

\n

For StackSet operations, includes information about drift operations currently being\n performed on the StackSet.

\n

For more information, see Performing drift detection on\n CloudFormation StackSets in the CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#StackSetDriftDetectionStatus": { + "type": "enum", + "members": { + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "PARTIAL_SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PARTIAL_SUCCESS" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetDriftStatus": { + "type": "enum", + "members": { + "DRIFTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRIFTED" + } + }, + "IN_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_SYNC" + } + }, + "NOT_CHECKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_CHECKED" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetId": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackSetName": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackSetNameOrId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z][-a-zA-Z0-9]*(?::[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})?$" + } + }, + "com.amazonaws.cloudformation#StackSetNotEmptyException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StackSetNotEmptyException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

You can't yet delete this StackSet, because it still contains one or more stack instances. Delete all stack\n instances from the StackSet before deleting the StackSet.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#StackSetNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StackSetNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified StackSet doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#StackSetOperation": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique ID of a StackSet operation.

" + } + }, + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The ID of the StackSet.

" + } + }, + "Action": { + "target": "com.amazonaws.cloudformation#StackSetOperationAction", + "traits": { + "smithy.api#documentation": "

The type of StackSet operation: CREATE, UPDATE, or\n DELETE. Create and delete operations affect only the specified stack instances that\n are associated with the specified StackSet. Update operations affect both the StackSet itself, in\n addition to all associated stack instances.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatus", + "traits": { + "smithy.api#documentation": "

The status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure\n tolerance value that you've set for an operation is applied for each Region during stack create\n and update operations. If the number of failed stacks within a Region exceeds the failure\n tolerance, the status of the operation in the Region is set to FAILED. This in\n turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels\n the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require\n a sequence of operations, the operation is queued to be performed. For more information, see\n the StackSets status codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user\n request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified\n stacks without exceeding the failure tolerance for the operation.

    \n
  • \n
" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

The preferences for how CloudFormation performs this StackSet operation.

" + } + }, + "RetainStacks": { + "target": "com.amazonaws.cloudformation#RetainStacksNullable", + "traits": { + "smithy.api#documentation": "

For StackSet operations of action type DELETE, specifies whether to remove the\n stack instances from the specified StackSet, but doesn't delete the stacks. You can't\n re-associate a retained stack, or add an existing, saved stack to a new StackSet.

" + } + }, + "AdministrationRoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used to perform this StackSet\n operation.

\n

Use customized administrator roles to control which users or groups can manage specific\n StackSets within the same administrator account. For more information, see Grant self-managed\n permissions in the CloudFormation User Guide.

" + } + }, + "ExecutionRoleName": { + "target": "com.amazonaws.cloudformation#ExecutionRoleName", + "traits": { + "smithy.api#documentation": "

The name of the IAM execution role used to create or update the StackSet.

\n

Use customized execution roles to control which stack resources users and groups can include\n in their StackSets.

" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the stack\n set operation might differ from the creation time of the individual stacks themselves. This is\n because CloudFormation needs to perform preparatory work for the operation, such as dispatching the\n work to the requested Regions, before actually creating the first stacks.

" + } + }, + "EndTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the StackSet operation ended, across all accounts and Regions specified.\n Note that this doesn't necessarily mean that the StackSet operation was successful, or even\n attempted, in each account or Region.

" + } + }, + "DeploymentTargets": { + "target": "com.amazonaws.cloudformation#DeploymentTargets", + "traits": { + "smithy.api#documentation": "

The Organizations accounts affected by the stack operation. Valid only if the\n StackSet uses service-managed permissions.

" + } + }, + "StackSetDriftDetectionDetails": { + "target": "com.amazonaws.cloudformation#StackSetDriftDetectionDetails", + "traits": { + "smithy.api#documentation": "

Detailed information about the drift status of the StackSet. This includes information about\n drift operations currently being performed on the StackSet.

\n

This information will only be present for StackSet operations whose Action type\n is DETECT_DRIFT.

\n

For more information, see Performing drift detection on\n CloudFormation StackSets in the CloudFormation User Guide.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatusReason", + "traits": { + "smithy.api#documentation": "

The status of the operation in details.

" + } + }, + "StatusDetails": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatusDetails", + "traits": { + "smithy.api#documentation": "

Detailed information about the StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The structure that contains information about a StackSet operation.

" + } + }, + "com.amazonaws.cloudformation#StackSetOperationAction": { + "type": "enum", + "members": { + "CREATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE" + } + }, + "UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + }, + "DETECT_DRIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETECT_DRIFT" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetOperationPreferences": { + "type": "structure", + "members": { + "RegionConcurrencyType": { + "target": "com.amazonaws.cloudformation#RegionConcurrencyType", + "traits": { + "smithy.api#documentation": "

The concurrency type of deploying StackSets operations in Regions, could be in parallel or\n one Region at a time.

" + } + }, + "RegionOrder": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#documentation": "

The order of the Regions where you want to perform the stack operation.

" + } + }, + "FailureToleranceCount": { + "target": "com.amazonaws.cloudformation#FailureToleranceCount", + "traits": { + "smithy.api#documentation": "

The number of accounts per Region this operation can fail in before CloudFormation stops the\n operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't attempt the\n operation in any subsequent Regions.

\n

You can specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" + } + }, + "FailureTolerancePercentage": { + "target": "com.amazonaws.cloudformation#FailureTolerancePercentage", + "traits": { + "smithy.api#documentation": "

The percentage of accounts per Region this stack operation can fail in before CloudFormation\n stops the operation in that Region. If the operation is stopped in a Region, CloudFormation doesn't\n attempt the operation in any subsequent Regions.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds\n down to the next whole number.

\n

You can specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" + } + }, + "MaxConcurrentCount": { + "target": "com.amazonaws.cloudformation#MaxConcurrentCount", + "traits": { + "smithy.api#documentation": "

The maximum number of accounts in which to perform this operation at one time. This can\n depend on the value of FailureToleranceCount depending on your\n ConcurrencyMode. MaxConcurrentCount is at most one more than the\n FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

\n

Note that this setting lets you specify the maximum for operations. For\n large deployments, under certain circumstances the actual number of accounts acted upon\n concurrently may be lower due to service throttling.

\n

You can specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + } + }, + "MaxConcurrentPercentage": { + "target": "com.amazonaws.cloudformation#MaxConcurrentPercentage", + "traits": { + "smithy.api#documentation": "

The maximum percentage of accounts in which to perform this operation at one time.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds\n down to the next whole number. This is true except in cases where rounding down would result is\n zero. In this case, CloudFormation sets the number as one instead.

\n

Note that this setting lets you specify the maximum for operations. For\n large deployments, under certain circumstances the actual number of accounts acted upon\n concurrently may be lower due to service throttling.

\n

You can specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + } + }, + "ConcurrencyMode": { + "target": "com.amazonaws.cloudformation#ConcurrencyMode", + "traits": { + "smithy.api#documentation": "

Specifies how the concurrency level behaves during the operation execution.

\n
    \n
  • \n

    \n STRICT_FAILURE_TOLERANCE: This option dynamically lowers the concurrency\n level to ensure the number of failed accounts never exceeds the value of\n FailureToleranceCount +1. The initial actual concurrency is set to the lower of\n either the value of the MaxConcurrentCount, or the value of\n FailureToleranceCount +1. The actual concurrency is then reduced proportionally\n by the number of failures. This is the default behavior.

    \n

    If failure tolerance or Maximum concurrent accounts are set to percentages, the behavior\n is similar.

    \n
  • \n
  • \n

    \n SOFT_FAILURE_TOLERANCE: This option decouples\n FailureToleranceCount from the actual concurrency. This allows StackSet\n operations to run at the concurrency level set by the MaxConcurrentCount value, or\n MaxConcurrentPercentage, regardless of the number of failures.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a StackSet operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see StackSet\n operation options.

\n \n

\n StackSetOperationPreferences don't apply to AutoDeployment, even\n if it's enabled.

\n
" + } + }, + "com.amazonaws.cloudformation#StackSetOperationResultStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANCELLED" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetOperationResultSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSetOperationResultSummary" + } + }, + "com.amazonaws.cloudformation#StackSetOperationResultSummary": { + "type": "structure", + "members": { + "Account": { + "target": "com.amazonaws.cloudformation#Account", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account for this operation result.

" + } + }, + "Region": { + "target": "com.amazonaws.cloudformation#Region", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services Region for this operation result.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetOperationResultStatus", + "traits": { + "smithy.api#documentation": "

The result status of the StackSet operation for the given account in the given\n Region.

\n
    \n
  • \n

    \n CANCELLED: The operation in the specified account and Region has been\n canceled. This is either because a user has stopped the StackSet operation, or because the\n failure tolerance of the StackSet operation has been exceeded.

    \n
  • \n
  • \n

    \n FAILED: The operation in the specified account and Region failed.

    \n

    If the StackSet operation fails in enough accounts within a Region, the failure tolerance\n for the StackSet operation as a whole might be exceeded.

    \n
  • \n
  • \n

    \n RUNNING: The operation in the specified account and Region is currently in\n progress.

    \n
  • \n
  • \n

    \n PENDING: The operation in the specified account and Region has yet to\n start.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation in the specified account and Region completed\n successfully.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#Reason", + "traits": { + "smithy.api#documentation": "

The reason for the assigned result status.

" + } + }, + "AccountGateResult": { + "target": "com.amazonaws.cloudformation#AccountGateResult", + "traits": { + "smithy.api#documentation": "

The results of the account gate function CloudFormation invokes, if present, before proceeding\n with StackSet operations in an account.

" + } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.cloudformation#OrganizationalUnitId", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The organization root ID or organizational unit (OU) IDs that\n you specified for DeploymentTargets.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The structure that contains information about a specified operation's results for a given\n account in a given Region.

" + } + }, + "com.amazonaws.cloudformation#StackSetOperationStatus": { + "type": "enum", + "members": { + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "STOPPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPING" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + }, + "QUEUED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "QUEUED" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetOperationStatusDetails": { + "type": "structure", + "members": { + "FailedStackInstancesCount": { + "target": "com.amazonaws.cloudformation#FailedStackInstancesCount", + "traits": { + "smithy.api#documentation": "

The number of stack instances for which the StackSet operation failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information about the StackSet operation.

" + } + }, + "com.amazonaws.cloudformation#StackSetOperationStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackSetOperationSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSetOperationSummary" + } + }, + "com.amazonaws.cloudformation#StackSetOperationSummary": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique ID of the StackSet operation.

" + } + }, + "Action": { + "target": "com.amazonaws.cloudformation#StackSetOperationAction", + "traits": { + "smithy.api#documentation": "

The type of operation: CREATE, UPDATE, or DELETE.\n Create and delete operations affect only the specified stack instances that are associated with\n the specified StackSet. Update operations affect both the StackSet itself and\n all associated StackSet instances.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatus", + "traits": { + "smithy.api#documentation": "

The overall status of the operation.

\n
    \n
  • \n

    \n FAILED: The operation exceeded the specified failure tolerance. The failure\n tolerance value that you've set for an operation is applied for each Region during stack create\n and update operations. If the number of failed stacks within a Region exceeds the failure\n tolerance, the status of the operation in the Region is set to FAILED. This in\n turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels\n the operation in any remaining Regions.

    \n
  • \n
  • \n

    \n QUEUED: [Service-managed permissions] For automatic deployments that require\n a sequence of operations, the operation is queued to be performed. For more information, see\n the StackSet status codes in the CloudFormation User Guide.

    \n
  • \n
  • \n

    \n RUNNING: The operation is currently being performed.

    \n
  • \n
  • \n

    \n STOPPED: The user has canceled the operation.

    \n
  • \n
  • \n

    \n STOPPING: The operation is in the process of stopping, at user\n request.

    \n
  • \n
  • \n

    \n SUCCEEDED: The operation completed creating or updating all the specified\n stacks without exceeding the failure tolerance for the operation.

    \n
  • \n
" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the StackSet\n operation might differ from the creation time of the individual stacks themselves. This is\n because CloudFormation needs to perform preparatory work for the operation, such as dispatching the\n work to the requested Regions, before actually creating the first stacks.

" + } + }, + "EndTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the StackSet operation ended, across all accounts and Regions specified.\n Note that this doesn't necessarily mean that the StackSet operation was successful, or even\n attempted, in each account or Region.

" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatusReason", + "traits": { + "smithy.api#documentation": "

The status of the operation in details.

" + } + }, + "StatusDetails": { + "target": "com.amazonaws.cloudformation#StackSetOperationStatusDetails", + "traits": { + "smithy.api#documentation": "

Detailed information about the StackSet operation.

" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

The user-specified preferences for how CloudFormation performs a StackSet operation.

\n

For more information about maximum concurrent accounts and failure tolerance, see StackSet\n operation options.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The structures that contain summary information about the specified operation.

" + } + }, + "com.amazonaws.cloudformation#StackSetStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + } + } + }, + "com.amazonaws.cloudformation#StackSetSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSetSummary" + } + }, + "com.amazonaws.cloudformation#StackSetSummary": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#documentation": "

The name of the StackSet.

" + } + }, + "StackSetId": { + "target": "com.amazonaws.cloudformation#StackSetId", + "traits": { + "smithy.api#documentation": "

The ID of the StackSet.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A description of the StackSet that you specify when the StackSet is created or\n updated.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#StackSetStatus", + "traits": { + "smithy.api#documentation": "

The status of the StackSet.

" + } + }, + "AutoDeployment": { + "target": "com.amazonaws.cloudformation#AutoDeployment", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organizational unit (OU).

" + } + }, + "PermissionModel": { + "target": "com.amazonaws.cloudformation#PermissionModels", + "traits": { + "smithy.api#documentation": "

Describes how the IAM roles required for StackSet operations are created.

\n " + } + }, + "DriftStatus": { + "target": "com.amazonaws.cloudformation#StackDriftStatus", + "traits": { + "smithy.api#documentation": "

Status of the StackSet's actual configuration compared to its expected template and\n parameter configuration.

\n
    \n
  • \n

    \n DRIFTED: One or more of the stack instances belonging to the StackSet differs\n from the expected template and parameter configuration. A stack instance is considered to have\n drifted if one or more of the resources in the associated stack have drifted.

    \n
  • \n
  • \n

    \n NOT_CHECKED: CloudFormation hasn't checked the StackSet for drift.

    \n
  • \n
  • \n

    \n IN_SYNC: All the stack instances belonging to the StackSet match the expected\n template and parameter configuration.

    \n
  • \n
  • \n

    \n UNKNOWN: This value is reserved for future use.

    \n
  • \n
" + } + }, + "LastDriftCheckTimestamp": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

Most recent time when CloudFormation performed a drift detection operation on the StackSet. This\n value will be NULL for any StackSet that drift detection hasn't yet been performed\n on.

" + } + }, + "ManagedExecution": { + "target": "com.amazonaws.cloudformation#ManagedExecution", + "traits": { + "smithy.api#documentation": "

Describes whether StackSets performs non-conflicting operations concurrently and queues\n conflicting operations.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The structures that contain summary information about the specified StackSet.

" + } + }, + "com.amazonaws.cloudformation#StackStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_COMPLETE" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + }, + "ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_COMPLETE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_COMPLETE" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" + } + }, + "UPDATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_COMPLETE" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } + }, + "UPDATE_ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_IN_PROGRESS" + } + }, + "UPDATE_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_FAILED" + } + }, + "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS" + } + }, + "UPDATE_ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_ROLLBACK_COMPLETE" + } + }, + "REVIEW_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REVIEW_IN_PROGRESS" + } + }, + "IMPORT_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_IN_PROGRESS" + } + }, + "IMPORT_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_COMPLETE" + } + }, + "IMPORT_ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_IN_PROGRESS" + } + }, + "IMPORT_ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_FAILED" + } + }, + "IMPORT_ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORT_ROLLBACK_COMPLETE" + } + } + } + }, + "com.amazonaws.cloudformation#StackStatusFilter": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackStatus" + } + }, + "com.amazonaws.cloudformation#StackStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#StackSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#StackSummary" + } + }, + "com.amazonaws.cloudformation#StackSummary": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique stack identifier.

" + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name associated with the stack.

", + "smithy.api#required": {} + } + }, + "TemplateDescription": { + "target": "com.amazonaws.cloudformation#TemplateDescription", + "traits": { + "smithy.api#documentation": "

The template description of the template used to create the stack.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The time the stack was created.

", + "smithy.api#required": {} + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.cloudformation#LastUpdatedTime", + "traits": { + "smithy.api#documentation": "

The time the stack was last updated. This field will only be returned if the stack has been\n updated at least once.

" + } + }, + "DeletionTime": { + "target": "com.amazonaws.cloudformation#DeletionTime", + "traits": { + "smithy.api#documentation": "

The time the stack was deleted.

" + } + }, + "StackStatus": { + "target": "com.amazonaws.cloudformation#StackStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The current status of the stack.

", + "smithy.api#required": {} + } + }, + "StackStatusReason": { + "target": "com.amazonaws.cloudformation#StackStatusReason", + "traits": { + "smithy.api#documentation": "

Success/Failure message associated with the stack status.

" + } + }, + "ParentId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

For nested stacks, the stack ID of the direct parent of this stack. For the first level of\n nested stacks, the root stack is also the parent stack.

\n

For more information, see Nested stacks in\n the CloudFormation User Guide.

" + } + }, + "RootId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

For nested stacks, the stack ID of the top-level stack to which the nested stack ultimately\n belongs.

\n

For more information, see Nested stacks in\n the CloudFormation User Guide.

" + } + }, + "DriftInformation": { + "target": "com.amazonaws.cloudformation#StackDriftInformationSummary", + "traits": { + "smithy.api#documentation": "

Summarizes information about whether a stack's actual configuration differs, or has\n drifted, from its expected configuration, as defined in the stack template\n and any values specified as template parameters. For more information, see Detect\n unmanaged configuration changes to stacks and resources with drift detection.

" + } + }, + "LastOperations": { + "target": "com.amazonaws.cloudformation#LastOperations", + "traits": { + "smithy.api#documentation": "

Information about the most recent operations performed on this stack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The StackSummary Data Type

" + } + }, + "com.amazonaws.cloudformation#Stacks": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Stack" + } + }, + "com.amazonaws.cloudformation#StageList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TemplateStage" + } + }, + "com.amazonaws.cloudformation#StaleRequestException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StaleRequestException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

Another operation has been performed on this StackSet since the specified operation was performed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudformation#StartResourceScan": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#StartResourceScanInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#StartResourceScanOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#ResourceScanInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#ResourceScanLimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts a scan of the resources in this account in this Region. You can the status of a\n scan using the ListResourceScans API action.

", + "smithy.api#examples": [ + { + "title": "To start a resource scan", + "documentation": "This example shows how to start a new resource scan", + "output": { + "ResourceScanId": "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/88f09db1-d211-4cb7-964b-434e2b8469ca" + } + } + ] + } + }, + "com.amazonaws.cloudformation#StartResourceScanInput": { + "type": "structure", + "members": { + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this StartResourceScan request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to start a new\n resource scan.

" + } + }, + "ScanFilters": { + "target": "com.amazonaws.cloudformation#ScanFilters", + "traits": { + "smithy.api#documentation": "

The scan filters to use.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#StartResourceScanOutput": { + "type": "structure", + "members": { + "ResourceScanId": { + "target": "com.amazonaws.cloudformation#ResourceScanId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource scan. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}. An\n example is\n arn:aws:cloudformation:us-east-1:123456789012:resourceScan/f5b490f7-7ed4-428a-aa06-31ff25db0772\n .

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#StatusMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.cloudformation#StopStackSetOperation": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#StopStackSetOperationInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#StopStackSetOperationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Stops an in-progress operation on a StackSet and its associated stack instances. StackSets\n will cancel all the unstarted stack instance deployments and wait for those are in-progress to\n complete.

" + } + }, + "com.amazonaws.cloudformation#StopStackSetOperationInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to stop the operation for.

", + "smithy.api#required": {} + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the stack operation.

", + "smithy.api#required": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid only if the\n StackSet uses service-managed permissions.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#StopStackSetOperationOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#SupportedMajorVersion": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 65535 + } + } + }, + "com.amazonaws.cloudformation#SupportedMajorVersions": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#SupportedMajorVersion" + } + }, + "com.amazonaws.cloudformation#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudformation#TagKey", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string used to identify this tag. You can specify a maximum of 128 characters for a tag\n key. Tags owned by Amazon Web Services have the reserved prefix: aws:.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudformation#TagValue", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string that contains the value for this tag. You can specify a maximum of 256 characters\n for a tag value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Tag type enables you to specify a key-value pair that can be used to store information\n about an CloudFormation stack.

" + } + }, + "com.amazonaws.cloudformation#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.cloudformation#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudformation#Tags": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.cloudformation#TemplateBody": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudformation#TemplateConfiguration": { + "type": "structure", + "members": { + "DeletionPolicy": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateDeletionPolicy", + "traits": { + "smithy.api#documentation": "

The DeletionPolicy assigned to resources in the generated template. Supported\n values are:

\n
    \n
  • \n

    \n DELETE - delete all resources when the stack is deleted.

    \n
  • \n
  • \n

    \n RETAIN - retain all resources when the stack is deleted.

    \n
  • \n
\n

For more information, see DeletionPolicy\n attribute in the CloudFormation User Guide.

" + } + }, + "UpdateReplacePolicy": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateUpdateReplacePolicy", + "traits": { + "smithy.api#documentation": "

The UpdateReplacePolicy assigned to resources in the generated template.\n Supported values are:

\n
    \n
  • \n

    \n DELETE - delete all resources when the resource is replaced during an update\n operation.

    \n
  • \n
  • \n

    \n RETAIN - retain all resources when the resource is replaced during an update\n operation.

    \n
  • \n
\n

For more information, see UpdateReplacePolicy attribute in the CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration details of a generated template.

" + } + }, + "com.amazonaws.cloudformation#TemplateDescription": { + "type": "string" + }, + "com.amazonaws.cloudformation#TemplateFormat": { + "type": "enum", + "members": { + "JSON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JSON" + } + }, + "YAML": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "YAML" + } + } + } + }, + "com.amazonaws.cloudformation#TemplateParameter": { + "type": "structure", + "members": { + "ParameterKey": { + "target": "com.amazonaws.cloudformation#ParameterKey", + "traits": { + "smithy.api#documentation": "

The name associated with the parameter.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.cloudformation#ParameterValue", + "traits": { + "smithy.api#documentation": "

The default value associated with the parameter.

" + } + }, + "NoEcho": { + "target": "com.amazonaws.cloudformation#NoEcho", + "traits": { + "smithy.api#documentation": "

Flag indicating whether the parameter should be displayed as plain text in logs and\n UIs.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

User defined description associated with the parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The TemplateParameter data type.

" + } + }, + "com.amazonaws.cloudformation#TemplateParameters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TemplateParameter" + } + }, + "com.amazonaws.cloudformation#TemplateProgress": { + "type": "structure", + "members": { + "ResourcesSucceeded": { + "target": "com.amazonaws.cloudformation#ResourcesSucceeded", + "traits": { + "smithy.api#documentation": "

The number of resources that succeeded the template generation.

" + } + }, + "ResourcesFailed": { + "target": "com.amazonaws.cloudformation#ResourcesFailed", + "traits": { + "smithy.api#documentation": "

The number of resources that failed the template generation.

" + } + }, + "ResourcesProcessing": { + "target": "com.amazonaws.cloudformation#ResourcesProcessing", + "traits": { + "smithy.api#documentation": "

The number of resources that are in-process for the template generation.

" + } + }, + "ResourcesPending": { + "target": "com.amazonaws.cloudformation#ResourcesPending", + "traits": { + "smithy.api#documentation": "

The number of resources that are still pending the template generation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the progress of the template generation.

" + } + }, + "com.amazonaws.cloudformation#TemplateStage": { + "type": "enum", + "members": { + "Original": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Original" + } + }, + "Processed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Processed" + } + } + } + }, + "com.amazonaws.cloudformation#TemplateStatusReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudformation#TemplateSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TemplateSummary" + } + }, + "com.amazonaws.cloudformation#TemplateSummary": { + "type": "structure", + "members": { + "GeneratedTemplateId": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the generated template. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}. For\n example,\n arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc\n .

" + } + }, + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the generated template.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateStatus", + "traits": { + "smithy.api#documentation": "

The status of the template generation. Supported values are:

\n
    \n
  • \n

    \n CreatePending - the creation of the template is pending.

    \n
  • \n
  • \n

    \n CreateInProgress - the creation of the template is in progress.

    \n
  • \n
  • \n

    \n DeletePending - the deletion of the template is pending.

    \n
  • \n
  • \n

    \n DeleteInProgress - the deletion of the template is in progress.

    \n
  • \n
  • \n

    \n UpdatePending - the update of the template is pending.

    \n
  • \n
  • \n

    \n UpdateInProgress - the update of the template is in progress.

    \n
  • \n
  • \n

    \n Failed - the template operation failed.

    \n
  • \n
  • \n

    \n Complete - the template operation is complete.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.cloudformation#TemplateStatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the current template generation status. This will provide more details if a\n failure happened.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.cloudformation#CreationTime", + "traits": { + "smithy.api#documentation": "

The time the generated template was created.

" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.cloudformation#LastUpdatedTime", + "traits": { + "smithy.api#documentation": "

The time the generated template was last updated.

" + } + }, + "NumberOfResources": { + "target": "com.amazonaws.cloudformation#NumberOfResources", + "traits": { + "smithy.api#documentation": "

The number of resources in the generated template. This is a total of resources in pending,\n in-progress, completed, and failed states.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of a generated template.

" + } + }, + "com.amazonaws.cloudformation#TemplateSummaryConfig": { + "type": "structure", + "members": { + "TreatUnrecognizedResourceTypesAsWarnings": { + "target": "com.amazonaws.cloudformation#TreatUnrecognizedResourceTypesAsWarnings", + "traits": { + "smithy.api#documentation": "

If set to True, any unrecognized resource types generate warnings and not an\n error. Any unrecognized resource types are returned in the Warnings output\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for the GetTemplateSummary API action.

" + } + }, + "com.amazonaws.cloudformation#TemplateURL": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5120 + } + } + }, + "com.amazonaws.cloudformation#TestType": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#TestTypeInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#TestTypeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#CFNRegistryException" + }, + { + "target": "com.amazonaws.cloudformation#TypeNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Tests a registered extension to make sure it meets all necessary requirements for being\n published in the CloudFormation registry.

\n
    \n
  • \n

    For resource types, this includes passing all contracts tests defined for the\n type.

    \n
  • \n
  • \n

    For modules, this includes determining if the module's model meets all necessary\n requirements.

    \n
  • \n
\n

For more information, see Testing your public extension before publishing in the\n CloudFormation Command Line Interface (CLI) User Guide.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in\n your account and Region for testing.

\n

To perform testing, CloudFormation assumes the execution role specified when the type was\n registered. For more information, see RegisterType.

\n

Once you've initiated testing on an extension using TestType, you can pass\n the returned TypeVersionArn into DescribeType to\n monitor the current test status and test status description for the extension.

\n

An extension must have a test status of PASSED before it can be published.\n For more information, see Publishing extensions\n to make them available for public use in the\n CloudFormation Command Line Interface (CLI) User Guide.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudformation#TestTypeInput": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The type of the extension to test.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension to test.

\n

Conditional: You must specify Arn, or TypeName and\n Type.

" + } + }, + "VersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The version of the extension to test.

\n

You can specify the version id with either Arn, or with TypeName\n and Type.

\n

If you don't specify a version, CloudFormation uses the default version of the extension in\n this account and Region for testing.

" + } + }, + "LogDeliveryBucket": { + "target": "com.amazonaws.cloudformation#S3Bucket", + "traits": { + "smithy.api#documentation": "

The S3 bucket to which CloudFormation delivers the contract test execution logs.

\n

CloudFormation delivers the logs by the time contract testing has completed and the extension\n has been assigned a test type status of PASSED or FAILED.

\n

The user calling TestType must be able to access items in the specified S3\n bucket. Specifically, the user needs the following permissions:

\n
    \n
  • \n

    \n GetObject\n

    \n
  • \n
  • \n

    \n PutObject\n

    \n
  • \n
\n

For more information, see Actions, Resources, and\n Condition Keys for Amazon S3 in the Identity and Access Management User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#TestTypeOutput": { + "type": "structure", + "members": { + "TypeVersionArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the extension.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ThirdPartyType": { + "type": "enum", + "members": { + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE" + } + }, + "MODULE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MODULE" + } + }, + "HOOK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOOK" + } + } + } + }, + "com.amazonaws.cloudformation#ThirdPartyTypeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}::type/.+/[0-9a-zA-Z]{12,40}/.+$" + } + }, + "com.amazonaws.cloudformation#TimeoutMinutes": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.cloudformation#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.cloudformation#TokenAlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TokenAlreadyExistsException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A client request token already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudformation#TotalStackInstancesCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#TotalWarnings": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.cloudformation#TransformName": { + "type": "string" + }, + "com.amazonaws.cloudformation#TransformsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TransformName" + } + }, + "com.amazonaws.cloudformation#TreatUnrecognizedResourceTypesAsWarnings": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#Type": { + "type": "string" + }, + "com.amazonaws.cloudformation#TypeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type/.+$" + } + }, + "com.amazonaws.cloudformation#TypeConfiguration": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 204800 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationAlias": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]{1,256}$" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type-configuration/.+$" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationDetails": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudformation#TypeConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN for the configuration data, in this account and Region.

" + } + }, + "Alias": { + "target": "com.amazonaws.cloudformation#TypeConfigurationAlias", + "traits": { + "smithy.api#documentation": "

The alias specified for this configuration, if one was specified when the configuration was\n set.

" + } + }, + "Configuration": { + "target": "com.amazonaws.cloudformation#TypeConfiguration", + "traits": { + "smithy.api#documentation": "

A JSON string specifying the configuration data for the extension, in this account and\n Region.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns\n {}.

" + } + }, + "LastUpdated": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When the configuration data was last updated for this extension.

\n

If a configuration hasn't been set for a specified extension, CloudFormation returns\n null.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The ARN for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the ActivateType API operation in this account and Region. For private extensions, this\n will be the ARN assigned when you call the RegisterType API\n operation in this account and Region.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

" + } + }, + "IsDefaultConfiguration": { + "target": "com.amazonaws.cloudformation#IsDefaultConfiguration", + "traits": { + "smithy.api#documentation": "

Whether this configuration data is the default configuration for the extension.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information concerning the specification of a CloudFormation extension in a given\n account and Region.

\n

For more information, see Edit configuration data\n for extensions in your account in the CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationDetailsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TypeConfigurationDetails" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationIdentifier": { + "type": "structure", + "members": { + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The ARN for the extension, in this account and Region.

\n

For public extensions, this will be the ARN assigned when you call the ActivateType API operation in this account and Region. For private extensions, this\n will be the ARN assigned when you call the RegisterType API\n operation in this account and Region.

" + } + }, + "TypeConfigurationAlias": { + "target": "com.amazonaws.cloudformation#TypeConfigurationAlias", + "traits": { + "smithy.api#documentation": "

The alias specified for this configuration, if one was specified when the configuration was\n set.

" + } + }, + "TypeConfigurationArn": { + "target": "com.amazonaws.cloudformation#TypeConfigurationArn", + "traits": { + "smithy.api#documentation": "

The ARN for the configuration, in this account and Region.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudformation#ThirdPartyType", + "traits": { + "smithy.api#documentation": "

The type of extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension type to which this configuration applies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifying information for the configuration of a CloudFormation extension.

" + } + }, + "com.amazonaws.cloudformation#TypeConfigurationIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TypeConfigurationIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudformation#TypeConfigurationNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message with details about the error that occurred.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TypeConfigurationNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified extension configuration can't be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#TypeFilters": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.cloudformation#Category", + "traits": { + "smithy.api#documentation": "

The category of extensions to return.

\n
    \n
  • \n

    \n REGISTERED: Private extensions that have been registered for this account and\n Region.

    \n
  • \n
  • \n

    \n ACTIVATED: Public extensions that have been activated for this account and\n Region.

    \n
  • \n
  • \n

    \n THIRD_PARTY: Extensions available for use from publishers other than Amazon.\n This includes:

    \n
      \n
    • \n

      Private extensions registered in the account.

      \n
    • \n
    • \n

      Public extensions from publishers other than Amazon, whether activated or not.

      \n
    • \n
    \n
  • \n
  • \n

    \n AWS_TYPES: Extensions available for use from Amazon.

    \n
  • \n
" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The id of the publisher of the extension.

\n

Extensions published by Amazon aren't assigned a publisher ID. Use the\n AWS_TYPES category to specify a list of types published by Amazon.

" + } + }, + "TypeNamePrefix": { + "target": "com.amazonaws.cloudformation#TypeNamePrefix", + "traits": { + "smithy.api#documentation": "

A prefix to use as a filter for results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filter criteria to use in determining which extensions to return.

" + } + }, + "com.amazonaws.cloudformation#TypeHierarchy": { + "type": "string" + }, + "com.amazonaws.cloudformation#TypeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 204 + }, + "smithy.api#pattern": "^[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}$" + } + }, + "com.amazonaws.cloudformation#TypeNamePrefix": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 204 + }, + "smithy.api#pattern": "^([A-Za-z0-9]{2,64}::){0,2}([A-Za-z0-9]{2,64}:?){0,1}$" + } + }, + "com.amazonaws.cloudformation#TypeNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudformation#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message with details about the error that occurred.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TypeNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified extension doesn't exist in the CloudFormation registry.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudformation#TypeSchema": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16777216 + } + } + }, + "com.amazonaws.cloudformation#TypeSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TypeSummary" + } + }, + "com.amazonaws.cloudformation#TypeSummary": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

\n

If you specified a TypeNameAlias when you call the ActivateType API\n operation in your account and Region, CloudFormation considers that alias as the type name.

" + } + }, + "DefaultVersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of the default version of the extension. The default version is used when the\n extension version isn't specified.

\n

This applies only to private extensions you have registered in your account. For public\n extensions, both those provided by Amazon and published by third parties, CloudFormation returns\n null. For more information, see RegisterType.

\n

To set the default version of an extension, use SetTypeDefaultVersion.

" + } + }, + "TypeArn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The ARN of the extension.

" + } + }, + "LastUpdated": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When the specified extension version was registered. This applies only to:

\n
    \n
  • \n

    Private extensions you have registered in your account. For more information, see RegisterType.

    \n
  • \n
  • \n

    Public extensions you have activated in your account with auto-update specified. For more\n information, see ActivateType.

    \n
  • \n
\n

For all other extension types, CloudFormation returns null.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description of the extension.

" + } + }, + "PublisherId": { + "target": "com.amazonaws.cloudformation#PublisherId", + "traits": { + "smithy.api#documentation": "

The ID of the extension publisher, if the extension is published by a third party.\n Extensions published by Amazon don't return a publisher ID.

" + } + }, + "OriginalTypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the type name of\n the public extension.

\n

If you specified a TypeNameAlias when enabling the extension in this account\n and Region, CloudFormation treats that alias as the extension's type name within the account and\n Region, not the type name of the public extension. For more information, see Use\n aliases to refer to extensions in the CloudFormation User Guide.

" + } + }, + "PublicVersionNumber": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of\n the public extension to be used for CloudFormation operations in this account and Region.

\n

How you specified AutoUpdate when enabling the extension affects whether\n CloudFormation automatically updates the extension in this account and Region when a new version is\n released. For more information, see Automatically use new versions of extensions in the\n CloudFormation User Guide.

" + } + }, + "LatestPublicVersion": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the latest\n version of the public extension that is available. For any extensions other\n than activated third-party extensions, CloudFormation returns null.

\n

How you specified AutoUpdate when enabling the extension affects whether\n CloudFormation automatically updates the extension in this account and Region when a new version is\n released. For more information, see Automatically use new versions of extensions in the\n CloudFormation User Guide.

" + } + }, + "PublisherIdentity": { + "target": "com.amazonaws.cloudformation#IdentityProvider", + "traits": { + "smithy.api#documentation": "

The service used to verify the publisher identity.

\n

For more information, see Publishing extensions to make\n them available for public use in the CloudFormation Command Line Interface (CLI) User Guide.

" + } + }, + "PublisherName": { + "target": "com.amazonaws.cloudformation#PublisherName", + "traits": { + "smithy.api#documentation": "

The publisher name, as defined in the public profile for that publisher in the service used\n to verify the publisher identity.

" + } + }, + "IsActivated": { + "target": "com.amazonaws.cloudformation#IsActivated", + "traits": { + "smithy.api#documentation": "

Whether the extension is activated for this account and Region.

\n

This applies only to third-party public extensions. Extensions published by Amazon are\n activated by default.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about the specified CloudFormation extension.

" + } + }, + "com.amazonaws.cloudformation#TypeTestsStatus": { + "type": "enum", + "members": { + "PASSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "NOT_TESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_TESTED" + } + } + } + }, + "com.amazonaws.cloudformation#TypeTestsStatusDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.cloudformation#TypeVersionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[A-Za-z0-9-]+$" + } + }, + "com.amazonaws.cloudformation#TypeVersionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TypeVersionSummary" + } + }, + "com.amazonaws.cloudformation#TypeVersionSummary": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#RegistryType", + "traits": { + "smithy.api#documentation": "

The kind of extension.

" + } + }, + "TypeName": { + "target": "com.amazonaws.cloudformation#TypeName", + "traits": { + "smithy.api#documentation": "

The name of the extension.

" + } + }, + "VersionId": { + "target": "com.amazonaws.cloudformation#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The ID of a specific version of the extension. The version ID is the value at the end of the\n ARN assigned to the extension version when it's registered.

" + } + }, + "IsDefaultVersion": { + "target": "com.amazonaws.cloudformation#IsDefaultVersion", + "traits": { + "smithy.api#documentation": "

Whether the specified extension version is set as the default version.

\n

This applies only to private extensions you have registered in your account, and extensions\n published by Amazon. For public third-party extensions, CloudFormation returns\n null.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudformation#TypeArn", + "traits": { + "smithy.api#documentation": "

The ARN of the extension version.

" + } + }, + "TimeCreated": { + "target": "com.amazonaws.cloudformation#Timestamp", + "traits": { + "smithy.api#documentation": "

When the version was registered.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description of the extension version.

" + } + }, + "PublicVersionNumber": { + "target": "com.amazonaws.cloudformation#PublicVersionNumber", + "traits": { + "smithy.api#documentation": "

For public extensions that have been activated for this account and Region, the version of\n the public extension to be used for CloudFormation operations in this account and Region. For any\n extensions other than activated third-party extensions, CloudFormation returns\n null.

\n

How you specified AutoUpdate when enabling the extension affects whether\n CloudFormation automatically updates the extension in this account and Region when a new version is\n released. For more information, see Automatically use new versions of extensions in the\n CloudFormation User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about a specific version of a CloudFormation extension.

" + } + }, + "com.amazonaws.cloudformation#UnprocessedTypeConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#TypeConfigurationIdentifier" + } + }, + "com.amazonaws.cloudformation#UpdateGeneratedTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#UpdateGeneratedTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#UpdateGeneratedTemplateOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#AlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#GeneratedTemplateNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a generated template. This can be used to change the name, add and remove\n resources, refresh resources, and change the DeletionPolicy and\n UpdateReplacePolicy settings. You can check the status of the update to the\n generated template using the DescribeGeneratedTemplate API action.

", + "smithy.api#examples": [ + { + "title": "To add resources to a generated template", + "documentation": "This example adds resources to a generated template", + "input": { + "GeneratedTemplateName": "JazzyTemplate", + "AddResources": [ + { + "ResourceType": "AWS::S3::Bucket", + "ResourceIdentifier": { + "BucketName": "jazz-bucket" + } + }, + { + "ResourceType": "AWS::EC2::DHCPOptions", + "ResourceIdentifier": { + "DhcpOptionsId": "random-id123" + } + } + ] + }, + "output": { + "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca" + } + }, + { + "title": "To update a generated template's name", + "documentation": "This example updates a generated template with a new name.", + "input": { + "GeneratedTemplateName": "JazzyTemplate", + "NewGeneratedTemplateName": "JazzierTemplate" + }, + "output": { + "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca" + } + }, + { + "title": "To remove resources from a generated template", + "documentation": "This example removes resources from a generated template", + "input": { + "GeneratedTemplateName": "JazzyTemplate", + "RemoveResources": [ + "LogicalResourceId1", + "LogicalResourceId2" + ] + }, + "output": { + "GeneratedTemplateId": "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca" + } + } + ] + } + }, + "com.amazonaws.cloudformation#UpdateGeneratedTemplateInput": { + "type": "structure", + "members": { + "GeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a generated template.

", + "smithy.api#required": {} + } + }, + "NewGeneratedTemplateName": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateName", + "traits": { + "smithy.api#documentation": "

An optional new name to assign to the generated template.

" + } + }, + "AddResources": { + "target": "com.amazonaws.cloudformation#ResourceDefinitions", + "traits": { + "smithy.api#documentation": "

An optional list of resources to be added to the generated template.

" + } + }, + "RemoveResources": { + "target": "com.amazonaws.cloudformation#JazzLogicalResourceIds", + "traits": { + "smithy.api#documentation": "

A list of logical ids for resources to remove from the generated template.

" + } + }, + "RefreshAllResources": { + "target": "com.amazonaws.cloudformation#RefreshAllResources", + "traits": { + "smithy.api#documentation": "

If true, update the resource properties in the generated template with their\n current live state. This feature is useful when the resource properties in your generated a\n template does not reflect the live state of the resource properties. This happens when a user\n update the resource properties after generating a template.

" + } + }, + "TemplateConfiguration": { + "target": "com.amazonaws.cloudformation#TemplateConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details of the generated template, including the\n DeletionPolicy and UpdateReplacePolicy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#UpdateGeneratedTemplateOutput": { + "type": "structure", + "members": { + "GeneratedTemplateId": { + "target": "com.amazonaws.cloudformation#GeneratedTemplateId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the generated template. The format is\n arn:${Partition}:cloudformation:${Region}:${Account}:generatedtemplate/${Id}.\n For example,\n arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc\n .

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#UpdateStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#UpdateStackInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#UpdateStackOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InsufficientCapabilitiesException" + }, + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a stack as specified in the template. After the call completes successfully, the\n stack update starts. You can check the status of the stack through the DescribeStacks action.

\n

To get a copy of the template for an existing stack, you can use the GetTemplate action.

\n

For more information about updating a stack and monitoring the progress of the update, see\n Managing\n Amazon Web Services resources as a single unit with CloudFormation stacks in the\n CloudFormation User Guide.

" + } + }, + "com.amazonaws.cloudformation#UpdateStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique stack ID of the stack to update.

", + "smithy.api#required": {} + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body with a minimum length of 1 byte and a maximum\n length of 51,200 bytes.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template that's\n located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must\n start with https://.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "UsePreviousTemplate": { + "target": "com.amazonaws.cloudformation#UsePreviousTemplate", + "traits": { + "smithy.api#documentation": "

Reuse the existing template that is associated with the stack that you are\n updating.

\n

When using templates with the AWS::LanguageExtensions transform, provide the\n template instead of using UsePreviousTemplate to ensure new parameter values and\n Systems Manager parameter updates are applied correctly. For more information, see AWS::LanguageExtensions transform.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + } + }, + "StackPolicyDuringUpdateBody": { + "target": "com.amazonaws.cloudformation#StackPolicyDuringUpdateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the temporary overriding stack policy body. You can specify either\n the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL\n parameter, but not both.

\n

If you want to update protected resources, specify a temporary overriding stack policy\n during this update. If you don't specify a stack policy, the current policy that is associated\n with the stack will be used.

" + } + }, + "StackPolicyDuringUpdateURL": { + "target": "com.amazonaws.cloudformation#StackPolicyDuringUpdateURL", + "traits": { + "smithy.api#documentation": "

Location of a file that contains the temporary overriding stack policy. The URL must point\n to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. The\n location for an Amazon S3 bucket must start with https://. URLs from S3 static\n websites are not supported.

\n

You can specify either the StackPolicyDuringUpdateBody or the\n StackPolicyDuringUpdateURL parameter, but not both.

\n

If you want to update protected resources, specify a temporary overriding stack policy\n during this update. If you don't specify a stack policy, the current policy that is associated\n with the stack will be used.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of Parameter structures that specify input parameters for the stack.\n For more information, see the Parameter data\n type.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the stack.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your\n Amazon Web Services account, for example, by creating new IAM users. For those stacks, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must\n specify CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we suggest that you review all\n permissions associated with them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some template contain macros. Macros perform custom processing on templates; this can\n include simple actions like find-and-replace operations, all the way to extensive\n transformations of entire templates. Because of this, users typically create a change set\n from the processed template, so that they can review the changes resulting from the macros\n before actually updating the stack. If your stack template contains one or more macros,\n and you choose to update a stack directly from the processed template, without first\n reviewing the resulting changes in a change set, you must acknowledge this capability.\n This includes the AWS::Include\n and AWS::Serverless transforms, which are macros hosted by CloudFormation.

    \n

    If you want to update a stack from a stack template that contains macros\n and nested stacks, you must update the stack directly from the\n template using this capability.

    \n \n

    You should only update stacks directly from a stack template that contains macros if\n you know what processing the macro performs.

    \n

    Each macro relies on an underlying Lambda service function for processing stack\n templates. Be aware that the Lambda function owner can update the function operation\n without CloudFormation being notified.

    \n
    \n

    For more information, see Perform custom processing\n on CloudFormation templates with template macros.

    \n
  • \n
\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

Specifies which resource types you can work with, such as AWS::EC2::Instance\n or Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're updating, the stack\n update fails. By default, CloudFormation grants permissions to all resource types. IAM uses this\n parameter for CloudFormation-specific condition keys in IAM policies. For more information, see\n Control CloudFormation\n access with Identity and Access Management.

\n \n

Only one of the Capabilities and ResourceType parameters can\n be specified.

\n
" + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to update the\n stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always\n uses this role for all future operations on the stack. Provided that users have permission to\n operate on the stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously associated with\n the stack. If no role is available, CloudFormation uses a temporary session that is generated from\n your user credentials.

" + } + }, + "RollbackConfiguration": { + "target": "com.amazonaws.cloudformation#RollbackConfiguration", + "traits": { + "smithy.api#documentation": "

The rollback triggers for CloudFormation to monitor during stack creation and updating\n operations, and for the specified monitoring period afterwards.

" + } + }, + "StackPolicyBody": { + "target": "com.amazonaws.cloudformation#StackPolicyBody", + "traits": { + "smithy.api#documentation": "

Structure that contains a new stack policy body. You can specify either the\n StackPolicyBody or the StackPolicyURL parameter, but not\n both.

\n

You might update the stack policy, for example, in order to protect a new resource that\n you created during a stack update. If you don't specify a stack policy, the current policy\n that is associated with the stack is unchanged.

" + } + }, + "StackPolicyURL": { + "target": "com.amazonaws.cloudformation#StackPolicyURL", + "traits": { + "smithy.api#documentation": "

Location of a file that contains the updated stack policy. The URL must point to a policy\n (max size: 16KB) located in an S3 bucket in the same Region as the stack. The location for an\n Amazon S3 bucket must start with https://. URLs from S3 static websites are not\n supported.

\n

You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource that\n you created during a stack update. If you don't specify a stack policy, the current policy\n that is associated with the stack is unchanged.

" + } + }, + "NotificationARNs": { + "target": "com.amazonaws.cloudformation#NotificationARNs", + "traits": { + "smithy.api#documentation": "

Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that CloudFormation\n associates with the stack. Specify an empty list to remove all notification topics.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates these tags to\n supported resources in the stack. You can specify a maximum number of 50 tags.

\n

If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. If you\n specify an empty value, CloudFormation removes all associated tags.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Preserve the state of previously provisioned resources when an operation fails.

\n

Default: False\n

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this UpdateStack request. Specify this token if you\n plan to retry requests so that CloudFormation knows that you're not attempting to update a stack\n with the same name. You might retry UpdateStack requests to ensure that\n CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab. Stack\n operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the stack\n operation . For example, if you create a stack using the console, each stack event would be\n assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + } + }, + "RetainExceptOnCreate": { + "target": "com.amazonaws.cloudformation#RetainExceptOnCreate", + "traits": { + "smithy.api#documentation": "

When set to true, newly created resources are deleted when the operation\n rolls back. This includes newly created resources marked with a deletion policy of\n Retain.

\n

Default: false\n

" + } + }, + "DeploymentConfig": { + "target": "com.amazonaws.cloudformation#DeploymentConfig", + "traits": { + "smithy.api#documentation": "

The deployment configuration for this stack operation, including the deployment\n mode.

" + } + }, + "DisableValidation": { + "target": "com.amazonaws.cloudformation#DisableValidation", + "traits": { + "smithy.api#documentation": "

\n Set to true to disable pre-deployment validations in changeset or stack operations.\n

\n

\n Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for an UpdateStack action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#UpdateStackInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#UpdateStackInstancesInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#UpdateStackInstancesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationIdAlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackInstanceNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StaleRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the parameter values for stack instances for the specified accounts, within the\n specified Amazon Web Services Regions. A stack instance refers to a stack in a specific account and\n Region.

\n

You can only update stack instances in Amazon Web Services Regions and accounts where they already\n exist; to create additional stack instances, use CreateStackInstances.

\n

During StackSet updates, any parameters overridden for a stack instance aren't updated,\n but retain their overridden value.

\n

You can only update the parameter values that are specified in the\n StackSet. To add or delete a parameter itself, use UpdateStackSet\n to update the StackSet template. If you add a parameter to a template, before you can override\n the parameter value specified in the StackSet you must first use UpdateStackSet\n to update all stack instances with the updated template and parameter value specified in the\n StackSet. Once a stack instance has been updated with the new parameter, you can then override\n the parameter value using UpdateStackInstances.

\n \n

The maximum number of organizational unit (OUs) supported by a\n UpdateStackInstances operation is 50.

\n

If you need more than 50, consider the following options:

\n
    \n
  • \n

    \n Batch processing: If you don't want to expose your OU\n hierarchy, split up the operations into multiple calls with less than 50 OUs\n each.

    \n
  • \n
  • \n

    \n Parent OU strategy: If you don't mind exposing the OU\n hierarchy, target a parent OU that contains all desired child OUs.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.cloudformation#UpdateStackInstancesInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet associated with the stack instances.

", + "smithy.api#required": {} + } + }, + "Accounts": { + "target": "com.amazonaws.cloudformation#AccountList", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The account IDs of one or more Amazon Web Services accounts in which you want\n to update parameter values for stack instances. The overridden parameter values will be\n applied to all stack instances in the specified accounts and Amazon Web Services Regions.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "DeploymentTargets": { + "target": "com.amazonaws.cloudformation#DeploymentTargets", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts in which you want to\n update parameter values for stack instances. If your update targets OUs, the overridden\n parameter values only apply to the accounts that are currently in the target OUs and their\n child OUs. Accounts added to the target OUs and their child OUs in the future won't use the\n overridden values.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The names of one or more Amazon Web Services Regions in which you want to update parameter values for\n stack instances. The overridden parameter values will be applied to all stack instances in the\n specified accounts and Amazon Web Services Regions.

", + "smithy.api#required": {} + } + }, + "ParameterOverrides": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of input parameters whose values you want to update for the specified stack\n instances.

\n

Any overridden parameter values will be applied to all stack instances in the specified\n accounts and Amazon Web Services Regions. When specifying parameters and their values, be aware of how\n CloudFormation sets parameter values during stack instance update operations:

\n
    \n
  • \n

    To override the current value for a parameter, include the parameter and specify its\n value.

    \n
  • \n
  • \n

    To leave an overridden parameter set to its present value, include the parameter and\n specify UsePreviousValue as true. (You can't specify both a\n value and set UsePreviousValue to true.)

    \n
  • \n
  • \n

    To set an overridden parameter back to the value specified in the StackSet, specify a\n parameter list but don't include the parameter in the list.

    \n
  • \n
  • \n

    To leave all parameters set to their present values, don't specify this property at\n all.

    \n
  • \n
\n

During StackSet updates, any parameter values overridden for a stack instance aren't\n updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in the\n StackSet. To add or delete a parameter itself, use UpdateStackSet to update the\n StackSet template. If you add a parameter to a template, before you can override the parameter\n value specified in the StackSet you must first use UpdateStackSet\n to update all stack instances with the updated template and parameter value specified in the\n StackSet. Once a stack instance has been updated with the new parameter, you can then override\n the parameter value using UpdateStackInstances.

" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

Preferences for how CloudFormation performs this StackSet operation.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation\n performs the StackSet operation only once, even if you retry the request multiple times. You\n might retry StackSet operation requests to ensure that CloudFormation successfully received\n them.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

", + "smithy.api#idempotencyToken": {} + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#UpdateStackInstancesOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique identifier for this StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#UpdateStackOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#OperationId", + "traits": { + "smithy.api#documentation": "

A unique identifier for this update operation that can be used to track the operation's\n progress and events.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for an UpdateStack action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#UpdateStackSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#UpdateStackSetInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#UpdateStackSetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#InvalidOperationException" + }, + { + "target": "com.amazonaws.cloudformation#OperationIdAlreadyExistsException" + }, + { + "target": "com.amazonaws.cloudformation#OperationInProgressException" + }, + { + "target": "com.amazonaws.cloudformation#StackInstanceNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StackSetNotFoundException" + }, + { + "target": "com.amazonaws.cloudformation#StaleRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the StackSet and associated stack instances in the specified accounts and\n Amazon Web Services Regions.

\n

Even if the StackSet operation created by updating the StackSet fails (completely or\n partially, below or above a specified failure tolerance), the StackSet is updated with your\n changes. Subsequent CreateStackInstances calls on the specified StackSet use\n the updated StackSet.

\n \n

The maximum number of organizational unit (OUs) supported by a\n UpdateStackSet operation is 50.

\n

If you need more than 50, consider the following options:

\n
    \n
  • \n

    \n Batch processing: If you don't want to expose your OU\n hierarchy, split up the operations into multiple calls with less than 50 OUs\n each.

    \n
  • \n
  • \n

    \n Parent OU strategy: If you don't mind exposing the OU\n hierarchy, target a parent OU that contains all desired child OUs.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.cloudformation#UpdateStackSetInput": { + "type": "structure", + "members": { + "StackSetName": { + "target": "com.amazonaws.cloudformation#StackSetName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the StackSet that you want to update.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

A brief description of updates that you are making.

" + } + }, + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

The structure that contains the template body, with a minimum length of 1 byte and a\n maximum length of 51,200 bytes.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody or TemplateURL—or set\n UsePreviousTemplate to true.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template\n (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The\n location for an Amazon S3 bucket must start with https://. S3 static website URLs are\n not supported.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody or TemplateURL—or set\n UsePreviousTemplate to true.

" + } + }, + "UsePreviousTemplate": { + "target": "com.amazonaws.cloudformation#UsePreviousTemplate", + "traits": { + "smithy.api#documentation": "

Use the existing template that's associated with the StackSet that you're updating.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody or TemplateURL—or set\n UsePreviousTemplate to true.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudformation#Parameters", + "traits": { + "smithy.api#documentation": "

A list of input parameters for the StackSet template.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the StackSet and its associated stack\n instances.

\n
    \n
  • \n

    \n CAPABILITY_IAM and CAPABILITY_NAMED_IAM\n

    \n

    Some stack templates might include resources that can affect permissions in your\n Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must\n explicitly acknowledge this by specifying one of these capabilities.

    \n

    The following IAM resources require you to specify either the\n CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.

    \n
      \n
    • \n

      If you have IAM resources, you can specify either capability.

      \n
    • \n
    • \n

      If you have IAM resources with custom names, you must\n specify CAPABILITY_NAMED_IAM.

      \n
    • \n
    • \n

      If you don't specify either of these capabilities, CloudFormation returns an\n InsufficientCapabilities error.

      \n
    • \n
    \n

    If your stack template contains these resources, we recommend that you review all\n permissions associated with them and edit their permissions if necessary.

    \n \n

    For more information, see Acknowledging IAM resources in CloudFormation templates.

    \n
  • \n
  • \n

    \n CAPABILITY_AUTO_EXPAND\n

    \n

    Some templates reference macros. If your StackSet template references one or more\n macros, you must update the StackSet directly from the processed template, without first\n reviewing the resulting changes in a change set. To update the StackSet directly, you must\n acknowledge this capability. For more information, see Perform custom processing\n on CloudFormation templates with template macros.

    \n \n

    StackSets with service-managed permissions do not currently support the use of\n macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if\n you specify this capability for a StackSet with service-managed permissions, if you\n reference a macro in your template the StackSet operation will fail.

    \n
    \n
  • \n
" + } + }, + "Tags": { + "target": "com.amazonaws.cloudformation#Tags", + "traits": { + "smithy.api#documentation": "

The key-value pairs to associate with this StackSet and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are created in the stacks.\n You can specify a maximum number of 50 tags.

\n

If you specify tags for this parameter, those tags replace any list of tags that are\n currently associated with this StackSet. This means:

\n
    \n
  • \n

    If you don't specify this parameter, CloudFormation doesn't modify the stack's\n tags.

    \n
  • \n
  • \n

    If you specify any tags using this parameter, you must specify\n all the tags that you want associated with this StackSet, even tags\n you've specified before (for example, when creating the StackSet or during a previous\n update of the StackSet.). Any tags that you don't include in the updated list of tags are\n removed from the StackSet, and therefore from the stacks and resources as well.

    \n
  • \n
  • \n

    If you specify an empty value, CloudFormation removes all currently associated\n tags.

    \n
  • \n
\n

If you specify new tags as part of an UpdateStackSet action, CloudFormation\n checks to see if you have the required IAM permission to tag resources. If you omit tags\n that are currently associated with the StackSet from the list of tags you specify, CloudFormation\n assumes that you want to remove those tags from the StackSet, and checks to see if you have\n permission to untag resources. If you don't have the necessary permission(s), the entire\n UpdateStackSet action fails with an access denied error, and the\n StackSet is not updated.

" + } + }, + "OperationPreferences": { + "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", + "traits": { + "smithy.api#documentation": "

Preferences for how CloudFormation performs this StackSet operation.

" + } + }, + "AdministrationRoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The Amazon Resource Name (ARN) of the IAM role to use to\n update this StackSet.

\n

Specify an IAM role only if you are using customized administrator roles to control\n which users or groups can manage specific StackSets within the same administrator account. For\n more information, see Grant\n self-managed permissions in the CloudFormation User Guide.

\n

If you specified a customized administrator role when you created the StackSet, you must\n specify a customized administrator role, even if it is the same customized administrator role\n used with this StackSet previously.

" + } + }, + "ExecutionRoleName": { + "target": "com.amazonaws.cloudformation#ExecutionRoleName", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The name of the IAM execution role to use to update the stack\n set. If you do not specify an execution role, CloudFormation uses the\n AWSCloudFormationStackSetExecutionRole role for the StackSet operation.

\n

Specify an IAM role only if you are using customized execution roles to control which\n stack resources users and groups can include in their StackSets.

\n

If you specify a customized execution role, CloudFormation uses that role to update the stack.\n If you do not specify a customized execution role, CloudFormation performs the update using the\n role previously associated with the StackSet, so long as you have permissions to perform\n operations on the StackSet.

" + } + }, + "DeploymentTargets": { + "target": "com.amazonaws.cloudformation#DeploymentTargets", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] The Organizations accounts in which to update\n associated stack instances.

\n

To update all the stack instances associated with this StackSet, do not specify\n DeploymentTargets or Regions.

\n

If the StackSet update includes changes to the template (that is, if\n TemplateBody or TemplateURL is specified), or the\n Parameters, CloudFormation marks all stack instances with a status of\n OUTDATED prior to updating the stack instances in the specified accounts and\n Amazon Web Services Regions. If the StackSet update doesn't include changes to the template or parameters,\n CloudFormation updates the stack instances in the specified accounts and Regions, while leaving\n all other stack instances with their existing stack instance status.

" + } + }, + "PermissionModel": { + "target": "com.amazonaws.cloudformation#PermissionModels", + "traits": { + "smithy.api#documentation": "

Describes how the IAM roles required for StackSet operations are created. You cannot\n modify PermissionModel if there are stack instances associated with your stack\n set.

\n " + } + }, + "AutoDeployment": { + "target": "com.amazonaws.cloudformation#AutoDeployment", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).\n For more information, see Enable or disable automatic deployments for StackSets in Organizations\n in the CloudFormation User Guide.

\n

If you specify AutoDeployment, don't specify DeploymentTargets\n or Regions.

" + } + }, + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique ID for this StackSet operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation\n performs the StackSet operation only once, even if you retry the request multiple times. You\n might retry StackSet operation requests to ensure that CloudFormation successfully received\n them.

\n

If you don't specify an operation ID, CloudFormation generates one\n automatically.

\n

Repeating this StackSet operation with a new operation ID retries all stack instances\n whose status is OUTDATED.

", + "smithy.api#idempotencyToken": {} + } + }, + "Accounts": { + "target": "com.amazonaws.cloudformation#AccountList", + "traits": { + "smithy.api#documentation": "

[Self-managed permissions] The accounts in which to update associated stack instances. If\n you specify accounts, you must also specify the Amazon Web Services Regions in which to update StackSet\n instances.

\n

To update all the stack instances associated with this StackSet,\n don't specify the Accounts or Regions properties.

\n

If the StackSet update includes changes to the template (that is, if the\n TemplateBody or TemplateURL properties are specified), or the\n Parameters property, CloudFormation marks all stack instances with a status of\n OUTDATED prior to updating the stack instances in the specified accounts and\n Amazon Web Services Regions. If the StackSet update does not include changes to the template or parameters,\n CloudFormation updates the stack instances in the specified accounts and Amazon Web Services Regions, while\n leaving all other stack instances with their existing stack instance status.

" + } + }, + "Regions": { + "target": "com.amazonaws.cloudformation#RegionList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions,\n you must also specify accounts in which to update StackSet instances.

\n

To update all the stack instances associated with this StackSet, do\n not specify the Accounts or Regions properties.

\n

If the StackSet update includes changes to the template (that is, if the\n TemplateBody or TemplateURL properties are specified), or the\n Parameters property, CloudFormation marks all stack instances with a status of\n OUTDATED prior to updating the stack instances in the specified accounts and\n Regions. If the StackSet update does not include changes to the template or parameters,\n CloudFormation updates the stack instances in the specified accounts and Regions, while leaving\n all other stack instances with their existing stack instance status.

" + } + }, + "CallAs": { + "target": "com.amazonaws.cloudformation#CallAs", + "traits": { + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator\n in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for StackSets with\n self-managed permissions.

\n
    \n
  • \n

    If you are signed in to the management account, specify\n SELF.

    \n
  • \n
  • \n

    If you are signed in to a delegated administrator account, specify\n DELEGATED_ADMIN.

    \n

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a\n delegated administrator in the CloudFormation User Guide.

    \n
  • \n
" + } + }, + "ManagedExecution": { + "target": "com.amazonaws.cloudformation#ManagedExecution", + "traits": { + "smithy.api#documentation": "

Describes whether CloudFormation performs non-conflicting operations concurrently and queues\n conflicting operations.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#UpdateStackSetOutput": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

The unique ID for this StackSet operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#UpdateTerminationProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#UpdateTerminationProtectionInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#UpdateTerminationProtectionOutput" + }, + "traits": { + "smithy.api#documentation": "

Updates termination protection for the specified stack. If a user attempts to delete a\n stack with termination protection enabled, the operation fails and the stack remains\n unchanged. For more information, see Protect a CloudFormation\n stack from being deleted in the CloudFormation User Guide.

\n

For nested stacks,\n termination protection is set on the root stack and can't be changed directly on the nested\n stack.

" + } + }, + "com.amazonaws.cloudformation#UpdateTerminationProtectionInput": { + "type": "structure", + "members": { + "EnableTerminationProtection": { + "target": "com.amazonaws.cloudformation#EnableTerminationProtection", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Whether to enable termination protection on the specified stack.

", + "smithy.api#required": {} + } + }, + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name or unique ID of the stack for which you want to set termination\n protection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#UpdateTerminationProtectionOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

The unique ID of the stack.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#Url": { + "type": "string" + }, + "com.amazonaws.cloudformation#UsePreviousTemplate": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#UsePreviousValue": { + "type": "boolean" + }, + "com.amazonaws.cloudformation#ValidateTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#ValidateTemplateInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#ValidateTemplateOutput" + }, + "traits": { + "smithy.api#documentation": "

Validates a specified template. CloudFormation first checks if the template is valid JSON. If\n it isn't, CloudFormation checks if the template is valid YAML. If both these checks fail,\n CloudFormation returns a template validation error.

" + } + }, + "com.amazonaws.cloudformation#ValidateTemplateInput": { + "type": "structure", + "members": { + "TemplateBody": { + "target": "com.amazonaws.cloudformation#TemplateBody", + "traits": { + "smithy.api#documentation": "

Structure that contains the template body with a minimum length of 1 byte and a maximum\n length of 51,200 bytes.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both\n are passed, only TemplateBody is used.

" + } + }, + "TemplateURL": { + "target": "com.amazonaws.cloudformation#TemplateURL", + "traits": { + "smithy.api#documentation": "

The URL of a file that contains the template body. The URL must point to a template (max\n size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for\n an Amazon S3 bucket must start with https://.

\n

Conditional: You must pass TemplateURL or TemplateBody. If both\n are passed, only TemplateBody is used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input for ValidateTemplate action.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudformation#ValidateTemplateOutput": { + "type": "structure", + "members": { + "Parameters": { + "target": "com.amazonaws.cloudformation#TemplateParameters", + "traits": { + "smithy.api#documentation": "

A list of TemplateParameter structures.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#Description", + "traits": { + "smithy.api#documentation": "

The description found within the template.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.cloudformation#Capabilities", + "traits": { + "smithy.api#documentation": "

The capabilities found within the template. If your template contains IAM resources, you\n must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use\n the CreateStack or UpdateStack actions with your template;\n otherwise, those actions return an InsufficientCapabilities error.

\n

For more information, see Acknowledging IAM resources in CloudFormation templates.

" + } + }, + "CapabilitiesReason": { + "target": "com.amazonaws.cloudformation#CapabilitiesReason", + "traits": { + "smithy.api#documentation": "

The list of resources that generated the values in the Capabilities response\n element.

" + } + }, + "DeclaredTransforms": { + "target": "com.amazonaws.cloudformation#TransformsList", + "traits": { + "smithy.api#documentation": "

A list of the transforms that are declared in the template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output for ValidateTemplate action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudformation#ValidationName": { + "type": "string" + }, + "com.amazonaws.cloudformation#ValidationPath": { + "type": "string" + }, + "com.amazonaws.cloudformation#ValidationStatus": { + "type": "enum", + "members": { + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "SKIPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SKIPPED" + } + } + } + }, + "com.amazonaws.cloudformation#ValidationStatusReason": { + "type": "string" + }, + "com.amazonaws.cloudformation#Value": { + "type": "string" + }, + "com.amazonaws.cloudformation#Version": { + "type": "string" + }, + "com.amazonaws.cloudformation#VersionBump": { + "type": "enum", + "members": { + "MAJOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAJOR" + } + }, + "MINOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MINOR" + } + } + } + }, + "com.amazonaws.cloudformation#Visibility": { + "type": "enum", + "members": { + "PUBLIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUBLIC" + } + }, + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRIVATE" + } + } + } + }, + "com.amazonaws.cloudformation#WarningDetail": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudformation#WarningType", + "traits": { + "smithy.api#documentation": "

The type of this warning. For more information, see Resolve\n write-only properties in the CloudFormation User Guide.

\n
    \n
  • \n

    \n MUTUALLY_EXCLUSIVE_PROPERTIES - The resource requires mutually-exclusive\n write-only properties. The IaC generator selects one set of mutually exclusive properties and\n converts the included properties into parameters. The parameter names have a suffix\n OneOf and the parameter descriptions indicate that the corresponding property can\n be replaced with other exclusive properties.

    \n
  • \n
  • \n

    \n UNSUPPORTED_PROPERTIES - Unsupported properties are present in the resource.\n One example of unsupported properties would be a required write-only property that is an array,\n because a parameter cannot be an array. Another example is an optional write-only\n property.

    \n
  • \n
  • \n

    \n MUTUALLY_EXCLUSIVE_TYPES - One or more required write-only properties are\n found in the resource, and the type of that property can be any of several types.

    \n
  • \n
\n \n

Currently the resource and property reference documentation does not indicate if a property\n uses a type of oneOf or anyOf. You need to look at the resource\n provider schema.

\n
" + } + }, + "Properties": { + "target": "com.amazonaws.cloudformation#WarningProperties", + "traits": { + "smithy.api#documentation": "

The properties of the resource that are impacted by this warning.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The warnings generated for a specific resource for this generated template.

" + } + }, + "com.amazonaws.cloudformation#WarningDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#WarningDetail" + } + }, + "com.amazonaws.cloudformation#WarningProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudformation#WarningProperty" + } + }, + "com.amazonaws.cloudformation#WarningProperty": { + "type": "structure", + "members": { + "PropertyPath": { + "target": "com.amazonaws.cloudformation#PropertyPath", + "traits": { + "smithy.api#documentation": "

The path of the property. For example, if this is for the S3Bucket member of\n the Code property, the property path would be Code/S3Bucket.

" + } + }, + "Required": { + "target": "com.amazonaws.cloudformation#RequiredProperty", + "traits": { + "smithy.api#documentation": "

If true, the specified property is required.

" + } + }, + "Description": { + "target": "com.amazonaws.cloudformation#PropertyDescription", + "traits": { + "smithy.api#documentation": "

The description of the property from the resource provider schema.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A specific property that is impacted by a warning.

" + } + }, + "com.amazonaws.cloudformation#WarningType": { + "type": "enum", + "members": { + "MUTUALLY_EXCLUSIVE_PROPERTIES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MUTUALLY_EXCLUSIVE_PROPERTIES" + } + }, + "UNSUPPORTED_PROPERTIES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSUPPORTED_PROPERTIES" + } + }, + "MUTUALLY_EXCLUSIVE_TYPES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MUTUALLY_EXCLUSIVE_TYPES" + } + }, + "EXCLUDED_PROPERTIES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUDED_PROPERTIES" + } + }, + "EXCLUDED_RESOURCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUDED_RESOURCES" + } + } + } + }, + "com.amazonaws.cloudformation#Warnings": { + "type": "structure", + "members": { + "UnrecognizedResourceTypes": { + "target": "com.amazonaws.cloudformation#ResourceTypes", + "traits": { + "smithy.api#documentation": "

A list of all of the unrecognized resource types. This is only returned if the\n TemplateSummaryConfig parameter has the\n TreatUnrecognizedResourceTypesAsWarning configuration set to\n True.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains any warnings returned by the GetTemplateSummary API action.

" + } + } + } +} diff --git a/codegen/aws-models/cloudfront-keyvaluestore.json b/codegen/aws-models/cloudfront-keyvaluestore.json new file mode 100644 index 00000000..df74a43e --- /dev/null +++ b/codegen/aws-models/cloudfront-keyvaluestore.json @@ -0,0 +1,1994 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Access denied.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#CloudFrontKeyValueStore": { + "type": "service", + "version": "2022-07-26", + "operations": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DeleteKey" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStore" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#GetKey" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ListKeys" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#PutKey" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeys" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "CloudFront KeyValueStore", + "arnNamespace": "key-value-store", + "endpointPrefix": "cloudfront-keyvaluestore" + }, + "aws.auth#sigv4": { + "name": "cloudfront-keyvaluestore" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Amazon CloudFront KeyValueStore Service to View and Update Data in a KVS Resource

", + "smithy.api#title": "Amazon CloudFront KeyValueStore", + "smithy.rules#endpointBdd": { + "version": "1.1", + "parameters": { + "KvsARN": { + "required": false, + "documentation": "The ARN of the Key Value Store", + "type": "string" + }, + "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" + } + }, + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "KvsARN" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "KvsARN" + } + ], + "assign": "parsedArn" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "service" + ] + }, + "cloudfront" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "region" + ] + }, + "" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "key-value-store" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "partition" + ] + }, + "aws" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "partition" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "results": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Provided endpoint is not a valid URL", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but Kvs ARN has `{parsedArn#partition}`", + "type": "error" + }, + { + "conditions": [], + "error": "CloudFront-KeyValueStore is not supported in partition `{parsedArn#partition}`", + "type": "error" + }, + { + "conditions": [], + "error": "ARN resource type is invalid. Expected `key-value-store`, found: `{arnType}`", + "type": "error" + }, + { + "conditions": [], + "error": "No resource type found in the KVS ARN. Resource type must be `key-value-store`.", + "type": "error" + }, + { + "conditions": [], + "error": "Provided ARN must be a global resource ARN. Found: `{parsedArn#region}`", + "type": "error" + }, + { + "conditions": [], + "error": "Provided ARN is not a valid CloudFront Service ARN. Found: `{parsedArn#service}`", + "type": "error" + }, + { + "conditions": [], + "error": "KVS ARN must be a valid ARN", + "type": "error" + }, + { + "conditions": [], + "error": "KVS ARN must be provided to use this service", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore.", + "type": "error" + } + ], + "root": 2, + "nodeCount": 15, + "nodes": "/////wAAAAH/////AAAAAAX14QwAAAADAAAAAQAAAAQF9eELAAAAAgAAAAUF9eEKAAAAAwAAAAYF9eEJAAAABAAAAAcF9eEIAAAABQAAAAgF9eEHAAAABgX14QcAAAAJAAAABwAAAAoF9eEGAAAACAAAAAsF9eEFAAAACQAAAAwAAAAOAAAACgAAAA0AAAAOAAAACwAAAA4F9eEEAAAADAAAAA8F9eEDAAAADQX14QEF9eEC" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "KvsARN": { + "required": false, + "documentation": "The ARN of the Key Value Store", + "type": "string" + }, + "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": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "KvsARN" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "KvsARN" + } + ], + "assign": "parsedArn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "service" + ] + }, + "cloudfront" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "region" + ] + }, + "" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "key-value-store" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "partition" + ] + }, + "aws" + ] + } + ], + "rules": [ + { + "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" + ] + }, + "{parsedArn#partition}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Provided endpoint is not a valid URL", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but Kvs ARN has `{parsedArn#partition}`", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{parsedArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Provided endpoint is not a valid URL", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{parsedArn#accountId}.cloudfront-kvs.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "cloudfront-keyvaluestore", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "CloudFront-KeyValueStore is not supported in partition `{parsedArn#partition}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "ARN resource type is invalid. Expected `key-value-store`, found: `{arnType}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "No resource type found in the KVS ARN. Resource type must be `key-value-store`.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "No resource type found in the KVS ARN. Resource type must be `key-value-store`.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Provided ARN must be a global resource ARN. Found: `{parsedArn#region}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Provided ARN is not a valid CloudFront Service ARN. Found: `{parsedArn#service}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "KVS ARN must be a valid ARN", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "KVS ARN must be provided to use this service", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore.", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "FIPS should error", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore." + }, + "params": { + "UseFIPS": true + } + }, + { + "documentation": "KVS ARN must be provided to use this service", + "expect": { + "error": "KVS ARN must be provided to use this service" + } + }, + { + "documentation": "KVS ARN must be a valid ARN", + "expect": { + "error": "KVS ARN must be a valid ARN" + }, + "params": { + "KvsARN": "not-a-valid-arn" + } + }, + { + "documentation": "Provided ARN was not a valid CloudFront Service ARN. Found: `notcloudfront`", + "expect": { + "error": "Provided ARN is not a valid CloudFront Service ARN. Found: `notcloudfront`" + }, + "params": { + "KvsARN": "arn:aws:notcloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "Provided ARN must be a global resource ARN. Found: `us-west-2`", + "expect": { + "error": "Provided ARN must be a global resource ARN. Found: `us-west-2`" + }, + "params": { + "KvsARN": "arn:aws:cloudfront:us-west-2:123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "ARN resource type is invalid. Expected `key-value-store`, found: `some-other-resource-type`", + "expect": { + "error": "ARN resource type is invalid. Expected `key-value-store`, found: `some-other-resource-type`" + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:some-other-resource-type/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "CloudFront-KeyValueStore is not supported in partition `aws-cn`", + "expect": { + "error": "CloudFront-KeyValueStore is not supported in partition `aws-cn`" + }, + "params": { + "KvsARN": "arn:aws-cn:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "CloudFront-KeyValueStore is not supported in partition `aws-us-gov`", + "expect": { + "error": "CloudFront-KeyValueStore is not supported in partition `aws-us-gov`" + }, + "params": { + "KvsARN": "arn:aws-us-gov:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "Valid account based endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://123456789012.cloudfront-kvs.global.api.aws" + } + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba" + } + }, + { + "documentation": "Valid account based endpoint, with SDK region", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://123456789012.cloudfront-kvs.global.api.aws" + } + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-west-2" + } + }, + { + "documentation": "Valid ARN, different partition, should error", + "expect": { + "error": "Client was configured for partition `aws-cn` but Kvs ARN has `aws`" + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "cn-north-1" + } + }, + { + "documentation": "Valid account based endpoint with FIPS, should error", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore." + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "Custom sdk endpoint override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://123456789012.my-override.example.com" + } + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-east-1", + "Endpoint": "https://my-override.example.com" + } + }, + { + "documentation": "Custom sdk endpoint override with path and http", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "cloudfront-keyvaluestore", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "http://123456789012.my-override.example.com/custom-path" + } + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Endpoint": "http://my-override.example.com/custom-path" + } + }, + { + "documentation": "Custom override with different partition should error", + "expect": { + "error": "Client was configured for partition `aws-us-gov` but Kvs ARN has `aws`" + }, + "params": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/my-first-kvs-e10b1dce4f394248811e77167e0451ba", + "Region": "us-gov-east-1", + "Endpoint": "https://my-override.example.com" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Resource is not in expected state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DeleteKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the key value pair specified by the key.

", + "smithy.api#examples": [ + { + "title": "Delete 'key1' from the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "Key": "key1", + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "IfMatch": "KV0AB12C3DEF456" + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 3, + "TotalSizeInBytes": 5 + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequest": { + "type": "structure", + "members": { + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + }, + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version (ETag) of the Key Value Store that you are deleting keys from, which you can get using DescribeKeyValueStore.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequestListItem": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key of the key value pair to be deleted.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

List item for keys to delete.

" + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequestsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequestListItem" + }, + "traits": { + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyResponse": { + "type": "structure", + "members": { + "ItemCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of key value pairs in the Key Value Store after the successful delete.

", + "smithy.api#required": {} + } + }, + "TotalSizeInBytes": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

Total size of the Key Value Store after the successful delete, in bytes.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version identifier of the Key Value Store after the successful delete.

", + "smithy.api#httpHeader": "ETag", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata information about a Key Value Store.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns metadata information about Key Value Store.

", + "smithy.api#examples": [ + { + "title": "Describe the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58" + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 0, + "TotalSizeInBytes": 0, + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "Created": "2023-11-01T22:18:46Z", + "LastModified": "2023-11-01T14:28:17Z", + "Status": "IMPORT_FAILURE", + "FailureReason": "Datasource size exceeds the allowed limit" + } + }, + { + "title": "Describe the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-1234a9d35678'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-1234a9d35678" + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 4, + "TotalSizeInBytes": 15, + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-1234a9d35678", + "Created": "2023-11-01T22:18:46Z", + "LastModified": "2023-11-01T14:28:17Z", + "Status": "READY" + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/key-value-stores/{KvsARN}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreRequest": { + "type": "structure", + "members": { + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#DescribeKeyValueStoreResponse": { + "type": "structure", + "members": { + "ItemCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of key value pairs in the Key Value Store.

", + "smithy.api#required": {} + } + }, + "TotalSizeInBytes": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

Total size of the Key Value Store in bytes.

", + "smithy.api#required": {} + } + }, + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#required": {} + } + }, + "Created": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Date and time when the Key Value Store was created.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the Key Value Store.

", + "smithy.api#httpHeader": "ETag", + "smithy.api#required": {} + } + }, + "LastModified": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Date and time when the key value pairs in the Key Value Store was last modified.

" + } + }, + "Status": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The current status of the Key Value Store.

" + } + }, + "FailureReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The reason for Key Value Store creation failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata information about a Key Value Store.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#Etag": { + "type": "string" + }, + "com.amazonaws.cloudfrontkeyvaluestore#GetKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#GetKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#GetKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a key value pair.

", + "smithy.api#examples": [ + { + "title": "Get 'key1' from the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "Key": "key1", + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58" + }, + "output": { + "Key": "key1", + "Value": "value1", + "ItemCount": 4, + "TotalSizeInBytes": 15 + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#GetKeyRequest": { + "type": "structure", + "members": { + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + }, + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key to get.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#GetKeyResponse": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key of the key value pair.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Value", + "traits": { + "smithy.api#documentation": "

The value of the key value pair.

", + "smithy.api#required": {} + } + }, + "ItemCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of key value pairs in the Key Value Store.

", + "smithy.api#required": {} + } + }, + "TotalSizeInBytes": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

Total size of the Key Value Store in bytes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A key value pair.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Internal server error.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#Key": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#KvsARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ListKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ListKeysRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of key value pairs.

", + "smithy.api#examples": [ + { + "title": "List keys in the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "MaxResults": 3 + }, + "output": { + "NextToken": "hVTTZndkpBZ0VRZ0R1RF", + "Items": [ + { + "Key": "key1", + "Value": "value1" + }, + { + "Key": "key2", + "Value": "value2" + }, + { + "Key": "key3", + "Value": "value3" + } + ] + } + }, + { + "title": "List the next page in the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "MaxResults": 3, + "NextToken": "hVTTZndkpBZ0VRZ0R1RF" + }, + "output": { + "NextToken": "hQTlB5YmM5UFNoFQvMk", + "Items": [ + { + "Key": "key4", + "Value": "value4" + }, + { + "Key": "key5", + "Value": "value5" + }, + { + "Key": "key6", + "Value": "value6" + } + ] + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/key-value-stores/{KvsARN}/keys" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "Items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ListKeysRequest": { + "type": "structure", + "members": { + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

If nextToken is returned in the response, there are more results available. Make the next call using the returned token to retrieve the next page.

", + "smithy.api#httpQuery": "NextToken" + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": 10, + "smithy.api#documentation": "

Maximum number of results that are returned per call. The default is 10 and maximum allowed page is 50.

", + "smithy.api#httpQuery": "MaxResults", + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

If nextToken is returned in the response, there are more results available. Make the next call using the returned token to retrieve the next page.

" + } + }, + "Items": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponseList", + "traits": { + "smithy.api#documentation": "

Key value pairs

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponseListItem" + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ListKeysResponseListItem": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key of the key value pair.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Value", + "traits": { + "smithy.api#documentation": "

The value of the key value pair.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A key value pair.

" + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#PutKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#PutKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new key value pair or replaces the value of an existing key.

", + "smithy.api#examples": [ + { + "title": "Put 'key1' with 'value1' into the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "Key": "key1", + "Value": "value1", + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "IfMatch": "KV0AB12C3DEF456" + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 4, + "TotalSizeInBytes": 15 + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/key-value-stores/{KvsARN}/keys/{Key}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequest": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key to put.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Value", + "traits": { + "smithy.api#documentation": "

The value to put.

", + "smithy.api#required": {} + } + }, + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version (ETag) of the Key Value Store that you are putting keys into, which you can get using DescribeKeyValueStore.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A key value pair.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequestListItem": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Key", + "traits": { + "smithy.api#documentation": "

The key of the key value pair list item to put.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Value", + "traits": { + "smithy.api#documentation": "

The value for the key value pair to put.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

List item for key value pair to put.

" + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequestsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequestListItem" + }, + "traits": { + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#PutKeyResponse": { + "type": "structure", + "members": { + "ItemCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of key value pairs in the Key Value Store after the successful put.

", + "smithy.api#required": {} + } + }, + "TotalSizeInBytes": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

Total size of the Key Value Store after the successful put, in bytes.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version identifier of the Key Value Store after the successful put.

", + "smithy.api#httpHeader": "ETag", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata information about a Key Value Store.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Resource was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Limit exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysRequest" + }, + "output": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#AccessDeniedException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ConflictException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#InternalServerException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.cloudfrontkeyvaluestore#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Puts or Deletes multiple key value pairs in a single, all-or-nothing operation.

", + "smithy.api#examples": [ + { + "title": "Put 2 keys into the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "IfMatch": "KV0AB12C3DEF456", + "Puts": [ + { + "Key": "key1", + "Value": "value1" + }, + { + "Key": "key2", + "Value": "value2" + } + ] + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 4, + "TotalSizeInBytes": 15 + } + }, + { + "title": "Delete 2 keys from the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "IfMatch": "KV0AB12C3DEF456", + "Deletes": [ + { + "Key": "key1" + }, + { + "Key": "key2" + } + ] + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 4, + "TotalSizeInBytes": 15 + } + }, + { + "title": "Put 2 keys into and delete 1 key from the key value store with ARN 'arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58'", + "input": { + "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/327284aa-bcd5-499f-a3ff-26b9a9d31b58", + "IfMatch": "KV0AB12C3DEF456", + "Puts": [ + { + "Key": "key1", + "Value": "value1" + }, + { + "Key": "key2", + "Value": "value2" + } + ], + "Deletes": [ + { + "Key": "key3" + }, + { + "Key": "key4" + } + ] + }, + "output": { + "ETag": "KV7XY89Z0ABC012", + "ItemCount": 4, + "TotalSizeInBytes": 15 + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/key-value-stores/{KvsARN}/keys" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysRequest": { + "type": "structure", + "members": { + "KvsARN": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#KvsARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "KvsARN" + } + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version (ETag) of the Key Value Store that you are updating keys of, which you can get using DescribeKeyValueStore.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "Puts": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#PutKeyRequestsList", + "traits": { + "smithy.api#documentation": "

List of key value pairs to put.

" + } + }, + "Deletes": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#DeleteKeyRequestsList", + "traits": { + "smithy.api#documentation": "

List of keys to delete.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#UpdateKeysResponse": { + "type": "structure", + "members": { + "ItemCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of key value pairs in the Key Value Store after the successful update.

", + "smithy.api#required": {} + } + }, + "TotalSizeInBytes": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

Total size of the Key Value Store after the successful update, in bytes.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfrontkeyvaluestore#Etag", + "traits": { + "smithy.api#documentation": "

The current version identifier of the Key Value Store after the successful update.

", + "smithy.api#httpHeader": "ETag", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata information about a Key Value Store.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

Validation failed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfrontkeyvaluestore#Value": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + } + } +} diff --git a/codegen/aws-models/cloudfront.json b/codegen/aws-models/cloudfront.json new file mode 100644 index 00000000..f97a9946 --- /dev/null +++ b/codegen/aws-models/cloudfront.json @@ -0,0 +1,26945 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.cloudfront#AccessControlAllowHeadersList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Header" + } + } + }, + "com.amazonaws.cloudfront#AccessControlAllowMethodsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowMethodsValues", + "traits": { + "smithy.api#xmlName": "Method" + } + } + }, + "com.amazonaws.cloudfront#AccessControlAllowOriginsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Origin" + } + } + }, + "com.amazonaws.cloudfront#AccessControlExposeHeadersList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Header" + } + } + }, + "com.amazonaws.cloudfront#AccessDenied": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Access denied.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.cloudfront#ActiveTrustedKeyGroups": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field is true if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of key groups in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#KGKeyPairIdsList", + "traits": { + "smithy.api#documentation": "

A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of key groups, and the public keys in each key group, that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field is true if any of the Amazon Web Services accounts in the list are configured as trusted signers. If not, this field is false.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of Amazon Web Services accounts in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#SignerList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services accounts and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#AliasICPRecordal": { + "type": "structure", + "members": { + "CNAME": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A domain name associated with a distribution.

" + } + }, + "ICPRecordalStatus": { + "target": "com.amazonaws.cloudfront#ICPRecordalStatus", + "traits": { + "smithy.api#documentation": "

The Internet Content Provider (ICP) recordal status for a CNAME. The ICPRecordalStatus is set to APPROVED for all CNAMEs (aliases) in Amazon Web Services Regions outside of China.

The status values returned are the following:

  • APPROVED indicates that the associated CNAME has a valid ICP recordal number. Multiple CNAMEs can be associated with a distribution, and CNAMEs can correspond to different ICP recordals. To be marked as APPROVED, that is, valid to use with the China Regions, a CNAME must have one ICP recordal number associated with it.

  • SUSPENDED indicates that the associated CNAME does not have a valid ICP recordal number.

  • PENDING indicates that CloudFront can't determine the ICP recordal status of the CNAME associated with the distribution because there was an error in trying to determine the status. You can try again to see if the error is resolved in which case CloudFront returns an APPROVED or SUSPENDED status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. The status is returned in the CloudFront response; you can't configure it yourself.

For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with Amazon Web Services services in China.

" + } + }, + "com.amazonaws.cloudfront#AliasICPRecordals": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#AliasICPRecordal", + "traits": { + "smithy.api#xmlName": "AliasICPRecordal" + } + } + }, + "com.amazonaws.cloudfront#AliasList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "CNAME" + } + } + }, + "com.amazonaws.cloudfront#Aliases": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of CNAME aliases, if any, that you want to associate with this distribution.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AliasList", + "traits": { + "smithy.api#documentation": "

A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.

" + } + }, + "com.amazonaws.cloudfront#AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP methods that you want CloudFront to forward to your origin. Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD, and OPTIONS requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests).

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#MethodsList", + "traits": { + "smithy.api#documentation": "

A complex type that contains the HTTP methods that you want CloudFront to process and forward to your origin.

", + "smithy.api#required": {} + } + }, + "CachedMethods": { + "target": "com.amazonaws.cloudfront#CachedMethods" + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices:

  • CloudFront forwards only GET and HEAD requests.

  • CloudFront forwards only GET, HEAD, and OPTIONS requests.

  • CloudFront forwards GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests.

If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you might not want users to have permissions to delete objects from your origin.

" + } + }, + "com.amazonaws.cloudfront#AnycastIpList": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#AnycastIpListName", + "traits": { + "smithy.api#documentation": "

The name of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the Anycast static IP list. Valid values: Deployed, Deploying, or Failed.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the Anycast static IP list.

" + } + }, + "IpamConfig": { + "target": "com.amazonaws.cloudfront#IpamConfig", + "traits": { + "smithy.api#documentation": "

The IPAM configuration for the Anycast static IP list, that contains the quantity and list of IPAM CIDR configurations.

" + } + }, + "AnycastIps": { + "target": "com.amazonaws.cloudfront#AnycastIps", + "traits": { + "smithy.api#documentation": "

The static IP addresses that are allocated to the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "IpCount": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of IP addresses in the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last time the Anycast static IP list was modified.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An Anycast static IP list. For more information, see Request Anycast static IPs to use for allowlisting in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#AnycastIpListCollection": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.cloudfront#AnycastIpListSummaries", + "traits": { + "smithy.api#documentation": "

Items in the Anycast static IP list collection. Each item is of the AnycastIpListSummary structure type.

" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Indicates the next page of the Anycast static IP list collection. To get the next page of the list, use this value in the Marker field of your request.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of Anycast static IP list collections that you want returned in the response.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

If there are more items in the list collection than are in this response, this value is true.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The quantity of Anycast static IP lists in the collection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Anycast static IP list collection.

" + } + }, + "com.amazonaws.cloudfront#AnycastIpListName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]{1,64}$" + } + }, + "com.amazonaws.cloudfront#AnycastIpListSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#AnycastIpListSummary", + "traits": { + "smithy.api#xmlName": "AnycastIpListSummary" + } + } + }, + "com.amazonaws.cloudfront#AnycastIpListSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#AnycastIpListName", + "traits": { + "smithy.api#documentation": "

The name of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The deployment status of the Anycast static IP list. Valid values: Deployed, Deploying, or Failed.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "IpCount": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of IP addresses in the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last time the Anycast static IP list was modified.

", + "smithy.api#required": {} + } + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the Anycast static IP list.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the Anycast static IP list.

" + } + }, + "IpamConfig": { + "target": "com.amazonaws.cloudfront#IpamConfig", + "traits": { + "smithy.api#documentation": "

The IPAM configuration for the Anycast static IP list, that contains the quantity and list of IPAM CIDR configurations.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An abbreviated version of the AnycastIpList structure. Omits the allocated static IP addresses (AnycastIpList$AnycastIps).

" + } + }, + "com.amazonaws.cloudfront#AnycastIps": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "AnycastIp" + } + } + }, + "com.amazonaws.cloudfront#AssociateAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#AssociateAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + } + ], + "traits": { + "smithy.api#documentation": "

The AssociateAlias API operation only supports standard distributions. To move domains between distribution tenants and/or standard distributions, we recommend that you use the UpdateDomainAssociation API operation instead.

Associates an alias with a CloudFront standard distribution. An alias is commonly known as a custom domain or vanity domain. It can also be called a CNAME or alternate domain name.

With this operation, you can move an alias that's already used for a standard distribution to a different standard distribution. This prevents the downtime that could occur if you first remove the alias from one standard distribution and then separately add the alias to another standard distribution.

To use this operation, specify the alias and the ID of the target standard distribution.

For more information, including how to set up the target standard distribution, prerequisites that you must complete, and other restrictions, see Moving an alternate domain name to a different standard distribution or distribution tenant in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution/{TargetDistributionId}/associate-alias", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#AssociateAliasRequest": { + "type": "structure", + "members": { + "TargetDistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the standard distribution that you're associating the alias with.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Alias": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The alias (also known as a CNAME) to add to the target standard distribution.

", + "smithy.api#httpQuery": "Alias", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#AssociateDistributionTenantWebACL": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Associates the WAF web ACL with a distribution tenant.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}/associate-web-acl", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "WebACLArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL to associate.

", + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current ETag of the distribution tenant. This value is returned in the response of the GetDistributionTenant API operation.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#AssociateDistributionTenantWebACLResult": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

" + } + }, + "WebACLArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN of the WAF web ACL that you associated with the distribution tenant.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#AssociateDistributionWebACL": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#AssociateDistributionWebACLRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#AssociateDistributionWebACLResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Associates the WAF web ACL with a distribution.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/associate-web-acl", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#AssociateDistributionWebACLRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "WebACLArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL to associate.

", + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the distribution that you're associating with the WAF web ACL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#AssociateDistributionWebACLResult": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution.

" + } + }, + "WebACLArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN of the WAF web ACL that you associated with the distribution.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#AwsAccountNumberList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "AwsAccountNumber" + } + } + }, + "com.amazonaws.cloudfront#BatchTooLarge": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Invalidation batch specified is too large.

", + "smithy.api#error": "client", + "smithy.api#httpError": 413 + } + }, + "com.amazonaws.cloudfront#CNAMEAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The CNAME specified is already defined for CloudFront.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CaCertificatesBundleS3Location": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The S3 bucket.

", + "smithy.api#required": {} + } + }, + "Key": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location's key.

", + "smithy.api#required": {} + } + }, + "Region": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location's Region.

", + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-z]{2}-[a-z]+-\\d$", + "smithy.api#required": {} + } + }, + "Version": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location's version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CA certificates bundle location in Amazon S3.

" + } + }, + "com.amazonaws.cloudfront#CaCertificatesBundleSource": { + "type": "union", + "members": { + "CaCertificatesBundleS3Location": { + "target": "com.amazonaws.cloudfront#CaCertificatesBundleS3Location", + "traits": { + "smithy.api#documentation": "

The CA certificates bundle location in Amazon S3.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A CA certificates bundle source.

" + } + }, + "com.amazonaws.cloudfront#CacheBehavior": { + "type": "structure", + "members": { + "PathPattern": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The pattern (for example, images/*.jpg) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution.

You can optionally include a slash (/) at the beginning of the path pattern. For example, /images/*.jpg. CloudFront behavior is the same with or without the leading /.

The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.

For more information, see Path Pattern in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "TargetOriginId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of ID for the origin that you want CloudFront to route requests to when they match this cache behavior.

", + "smithy.api#required": {} + } + }, + "TrustedSigners": { + "target": "com.amazonaws.cloudfront#TrustedSigners", + "traits": { + "smithy.api#documentation": "

We recommend using TrustedKeyGroups instead of TrustedSigners.

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A list of Amazon Web Services account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies.

When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer's Amazon Web Services account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide.

" + } + }, + "TrustedKeyGroups": { + "target": "com.amazonaws.cloudfront#TrustedKeyGroups", + "traits": { + "smithy.api#documentation": "

A list of key groups that CloudFront can use to validate signed URLs or signed cookies.

When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide.

" + } + }, + "ViewerProtocolPolicy": { + "target": "com.amazonaws.cloudfront#ViewerProtocolPolicy", + "traits": { + "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. You can specify the following options:

  • allow-all: Viewers can use HTTP or HTTPS.

  • redirect-to-https: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  • https-only: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the Amazon CloudFront Developer Guide.

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Managing Cache Expiration in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "AllowedMethods": { + "target": "com.amazonaws.cloudfront#AllowedMethods" + }, + "SmoothStreaming": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false. If you specify true for SmoothStreaming, you can still distribute other content using this cache behavior if the content matches the value of PathPattern.

" + } + }, + "Compress": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

" + } + }, + "LambdaFunctionAssociations": { + "target": "com.amazonaws.cloudfront#LambdaFunctionAssociations", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.

" + } + }, + "FunctionAssociations": { + "target": "com.amazonaws.cloudfront#FunctionAssociations", + "traits": { + "smithy.api#documentation": "

A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the LIVE stage to associate them with a cache behavior.

" + } + }, + "FieldLevelEncryptionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of ID for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior.

" + } + }, + "RealtimeLogConfigArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see Real-time logs in the Amazon CloudFront Developer Guide.

" + } + }, + "CachePolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the cache policy that is attached to this cache behavior. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

A CacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId.

" + } + }, + "OriginRequestPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide.

" + } + }, + "ResponseHeadersPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for a response headers policy.

" + } + }, + "GrpcConfig": { + "target": "com.amazonaws.cloudfront#GrpcConfig", + "traits": { + "smithy.api#documentation": "

The gRPC configuration for your cache behavior.

" + } + }, + "ForwardedValues": { + "target": "com.amazonaws.cloudfront#ForwardedValues", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see Working with policies in the Amazon CloudFront Developer Guide.

If you want to include values in the cache key, use a cache policy. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide.

A CacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId.

A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers.

" + } + }, + "MinTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the MinTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin (under Headers, if you specify 1 for Quantity and * for Name).

" + } + }, + "DefaultTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the DefaultTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

" + } + }, + "MaxTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the MaxTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that describes how CloudFront processes requests.

You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used.

For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see Quotas in the Amazon CloudFront Developer Guide.

If you don't want to specify any cache behaviors, include only an empty CacheBehaviors element. Don't specify an empty individual CacheBehavior element, because this is invalid. For more information, see CacheBehaviors.

To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element.

To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.

If your minimum TTL is greater than 0, CloudFront will cache content for at least the duration specified in the cache policy's minimum TTL, even if the Cache-Control: no-cache, no-store, or private directives are present in the origin headers.

For more information about cache behaviors, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#CacheBehaviorList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#CacheBehavior", + "traits": { + "smithy.api#xmlName": "CacheBehavior" + } + } + }, + "com.amazonaws.cloudfront#CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of cache behaviors for this distribution.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#CacheBehaviorList", + "traits": { + "smithy.api#documentation": "

Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more CacheBehavior elements.

" + } + }, + "com.amazonaws.cloudfront#CachePolicy": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the cache policy.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the cache policy was last modified.

", + "smithy.api#required": {} + } + }, + "CachePolicyConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyConfig", + "traits": { + "smithy.api#documentation": "

The cache policy configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A cache policy.

When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + } + }, + "com.amazonaws.cloudfront#CachePolicyAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A cache policy with this name already exists. You must provide a unique name. To modify an existing cache policy, use UpdateCachePolicy.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CachePolicyConfig": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the cache policy. The comment cannot be longer than 128 characters.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique name to identify the cache policy.

", + "smithy.api#required": {} + } + }, + "DefaultTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object's time to live (TTL) only when the origin does not send Cache-Control or Expires headers with the object. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

The default value for this field is 86400 seconds (one day). If the value of MinTTL is more than 86400 seconds, then the default value for this field is the same as the value of MinTTL.

" + } + }, + "MaxTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends Cache-Control or Expires headers with the object. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

The default value for this field is 31536000 seconds (one year). If the value of MinTTL or DefaultTTL is more than 31536000 seconds, then the default value for this field is the same as the value of DefaultTTL.

" + } + }, + "MinTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "target": "com.amazonaws.cloudfront#ParametersInCacheKeyAndForwardedToOrigin", + "traits": { + "smithy.api#documentation": "

The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are also included in requests that CloudFront sends to the origin.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A cache policy configuration.

This configuration determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

    If your minimum TTL is greater than 0, CloudFront will cache content for at least the duration specified in the cache policy's minimum TTL, even if the Cache-Control: no-cache, no-store, or private directives are present in the origin headers.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + } + }, + "com.amazonaws.cloudfront#CachePolicyCookieBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "allExcept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allExcept" + } + }, + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + } + }, + "com.amazonaws.cloudfront#CachePolicyCookiesConfig": { + "type": "structure", + "members": { + "CookieBehavior": { + "target": "com.amazonaws.cloudfront#CachePolicyCookieBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether any cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No cookies in viewer requests are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the cookies in viewer requests that are listed in the CookieNames type are included in the cache key and in requests that CloudFront sends to the origin.

  • allExcept – All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, except for those that are listed in the CookieNames type, which are not included.

  • all – All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + }, + "Cookies": { + "target": "com.amazonaws.cloudfront#CookieNames" + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#CachePolicyHeaderBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + } + } + }, + "com.amazonaws.cloudfront#CachePolicyHeadersConfig": { + "type": "structure", + "members": { + "HeaderBehavior": { + "target": "com.amazonaws.cloudfront#CachePolicyHeaderBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether any HTTP headers are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No HTTP headers are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the HTTP headers that are listed in the Headers type are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + }, + "Headers": { + "target": "com.amazonaws.cloudfront#Headers" + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#CachePolicyInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the cache policy because it is attached to one or more cache behaviors.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CachePolicyList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing cache policies where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of cache policies requested.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The total number of cache policies returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#CachePolicySummaryList", + "traits": { + "smithy.api#documentation": "

Contains the cache policies in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of cache policies.

" + } + }, + "com.amazonaws.cloudfront#CachePolicyQueryStringBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "allExcept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allExcept" + } + }, + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + } + }, + "com.amazonaws.cloudfront#CachePolicyQueryStringsConfig": { + "type": "structure", + "members": { + "QueryStringBehavior": { + "target": "com.amazonaws.cloudfront#CachePolicyQueryStringBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether any URL query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No query strings in viewer requests are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the query strings in viewer requests that are listed in the QueryStringNames type are included in the cache key and in requests that CloudFront sends to the origin.

  • allExcept – All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, except those that are listed in the QueryStringNames type, which are not included.

  • all – All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + }, + "QueryStrings": { + "target": "com.amazonaws.cloudfront#QueryStringNames", + "traits": { + "smithy.api#documentation": "

Contains the specific query strings in viewer requests that either are or are not included in the cache key and in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the CachePolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#CachePolicySummary": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#CachePolicyType", + "traits": { + "smithy.api#documentation": "

The type of cache policy, either managed (created by Amazon Web Services) or custom (created in this Amazon Web Services account).

", + "smithy.api#required": {} + } + }, + "CachePolicy": { + "target": "com.amazonaws.cloudfront#CachePolicy", + "traits": { + "smithy.api#documentation": "

The cache policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a cache policy.

" + } + }, + "com.amazonaws.cloudfront#CachePolicySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#CachePolicySummary", + "traits": { + "smithy.api#xmlName": "CachePolicySummary" + } + } + }, + "com.amazonaws.cloudfront#CachePolicyType": { + "type": "enum", + "members": { + "managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "managed" + } + }, + "custom": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + } + } + }, + "com.amazonaws.cloudfront#CacheTagConfig": { + "type": "structure", + "members": { + "HeaderName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the HTTP header that your origin includes in responses. CloudFront uses this header to extract cache tags. The header value must contain comma-separated tag values (for example, product:electronics, category:tv, brand:example).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that specifies the HTTP header name from which CloudFront extracts cache tags from origin responses. When you add CacheTagConfig to a distribution, CloudFront reads the specified header from origin responses, parses the comma-separated tag values, and stores them with the cached object. You can then invalidate cached objects by tag using the CreateInvalidation API.

" + } + }, + "com.amazonaws.cloudfront#CachedMethods": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP methods for which you want CloudFront to cache responses. Valid values are 2 (for caching responses to GET and HEAD requests) and 3 (for caching responses to GET, HEAD, and OPTIONS requests).

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#MethodsList", + "traits": { + "smithy.api#documentation": "

A complex type that contains the HTTP methods that you want CloudFront to cache responses to. Valid values for CachedMethods include GET, HEAD, and OPTIONS, depending on which caching option you choose. For more information, see the preceding section.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices:

  • CloudFront caches responses to GET and HEAD requests.

  • CloudFront caches responses to GET, HEAD, and OPTIONS requests.

If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly.

" + } + }, + "com.amazonaws.cloudfront#CannotChangeImmutablePublicKeyFields": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You can't change the value of a public key.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity cannot be deleted while it is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CannotUpdateEntityWhileInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity cannot be updated while it is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#Certificate": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACM certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Certificate Manager (ACM) certificate associated with your distribution.

" + } + }, + "com.amazonaws.cloudfront#CertificateSource": { + "type": "enum", + "members": { + "cloudfront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloudfront" + } + }, + "iam": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "iam" + } + }, + "acm": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "acm" + } + } + } + }, + "com.amazonaws.cloudfront#CertificateTransparencyLoggingPreference": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentity": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID for the origin access identity, for example, E74FTE3AJFJ256A.

", + "smithy.api#required": {} + } + }, + "S3CanonicalUserId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3.

", + "smithy.api#required": {} + } + }, + "CloudFrontOriginAccessIdentityConfig": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityConfig", + "traits": { + "smithy.api#documentation": "

The current configuration information for the identity.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

CloudFront origin access identity.

" + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

If the CallerReference is a value you already sent in a previous request to create an identity but the content of the CloudFrontOriginAccessIdentityConfig is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.

If the value of CallerReference is new (regardless of the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created.

If the CallerReference is a value already sent in a previous identity request, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request.

If the CallerReference is a value you already sent in a previous request to create an identity, but the content of the CloudFrontOriginAccessIdentityConfig is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the origin access identity. The comment cannot be longer than 128 characters.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Origin access identity configuration. Send a GET request to the /CloudFront API version/CloudFront/identity ID/config resource.

" + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The Origin Access Identity specified is already in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page).

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your origin access identities where they left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin access identities you want in the response body.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more origin access identities remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more items in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of CloudFront origin access identities that were created by the current Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentitySummaryList", + "traits": { + "smithy.api#documentation": "

A complex type that contains one CloudFrontOriginAccessIdentitySummary element for each origin access identity that was created by the current Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Lists the origin access identities for CloudFront.Send a GET request to the /CloudFront API version/origin-access-identity/cloudfront resource. The response includes a CloudFrontOriginAccessIdentityList element with zero or more CloudFrontOriginAccessIdentitySummary child elements. By default, your entire list of origin access identities is returned in one single page. If the list is long, you can paginate it using the MaxItems and Marker parameters.

" + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentitySummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID for the origin access identity. For example: E74FTE3AJFJ256A.

", + "smithy.api#required": {} + } + }, + "S3CanonicalUserId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The comment for this origin access identity, as originally specified when created.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary of the information about a CloudFront origin access identity.

" + } + }, + "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentitySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentitySummary", + "traits": { + "smithy.api#xmlName": "CloudFrontOriginAccessIdentitySummary" + } + } + }, + "com.amazonaws.cloudfront#Cloudfront2020_05_31": { + "type": "service", + "version": "2020-05-31", + "operations": [ + { + "target": "com.amazonaws.cloudfront#AssociateAlias" + }, + { + "target": "com.amazonaws.cloudfront#AssociateDistributionTenantWebACL" + }, + { + "target": "com.amazonaws.cloudfront#AssociateDistributionWebACL" + }, + { + "target": "com.amazonaws.cloudfront#CopyDistribution" + }, + { + "target": "com.amazonaws.cloudfront#CreateAnycastIpList" + }, + { + "target": "com.amazonaws.cloudfront#CreateCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#CreateConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#CreateConnectionGroup" + }, + { + "target": "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#CreateDistribution" + }, + { + "target": "com.amazonaws.cloudfront#CreateDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#CreateDistributionWithTags" + }, + { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#CreateFunction" + }, + { + "target": "com.amazonaws.cloudfront#CreateInvalidation" + }, + { + "target": "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#CreateKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#CreateKeyValueStore" + }, + { + "target": "com.amazonaws.cloudfront#CreateMonitoringSubscription" + }, + { + "target": "com.amazonaws.cloudfront#CreateOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#CreateOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#CreatePublicKey" + }, + { + "target": "com.amazonaws.cloudfront#CreateRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#CreateResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#CreateStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#CreateStreamingDistributionWithTags" + }, + { + "target": "com.amazonaws.cloudfront#CreateTrustStore" + }, + { + "target": "com.amazonaws.cloudfront#CreateVpcOrigin" + }, + { + "target": "com.amazonaws.cloudfront#DeleteAnycastIpList" + }, + { + "target": "com.amazonaws.cloudfront#DeleteCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#DeleteCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#DeleteConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#DeleteConnectionGroup" + }, + { + "target": "com.amazonaws.cloudfront#DeleteContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#DeleteDistribution" + }, + { + "target": "com.amazonaws.cloudfront#DeleteDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#DeleteFunction" + }, + { + "target": "com.amazonaws.cloudfront#DeleteKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#DeleteKeyValueStore" + }, + { + "target": "com.amazonaws.cloudfront#DeleteMonitoringSubscription" + }, + { + "target": "com.amazonaws.cloudfront#DeleteOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#DeleteOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#DeletePublicKey" + }, + { + "target": "com.amazonaws.cloudfront#DeleteRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#DeleteResourcePolicy" + }, + { + "target": "com.amazonaws.cloudfront#DeleteResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#DeleteStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#DeleteTrustStore" + }, + { + "target": "com.amazonaws.cloudfront#DeleteVpcOrigin" + }, + { + "target": "com.amazonaws.cloudfront#DescribeConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#DescribeFunction" + }, + { + "target": "com.amazonaws.cloudfront#DescribeKeyValueStore" + }, + { + "target": "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACL" + }, + { + "target": "com.amazonaws.cloudfront#DisassociateDistributionWebACL" + }, + { + "target": "com.amazonaws.cloudfront#GetAnycastIpList" + }, + { + "target": "com.amazonaws.cloudfront#GetCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#GetCachePolicyConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#GetConnectionGroup" + }, + { + "target": "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpoint" + }, + { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetDistribution" + }, + { + "target": "com.amazonaws.cloudfront#GetDistributionConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#GetDistributionTenantByDomain" + }, + { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryption" + }, + { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetFunction" + }, + { + "target": "com.amazonaws.cloudfront#GetInvalidation" + }, + { + "target": "com.amazonaws.cloudfront#GetInvalidationForDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#GetKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#GetKeyGroupConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetManagedCertificateDetails" + }, + { + "target": "com.amazonaws.cloudfront#GetMonitoringSubscription" + }, + { + "target": "com.amazonaws.cloudfront#GetOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#GetOriginAccessControlConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicyConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetPublicKey" + }, + { + "target": "com.amazonaws.cloudfront#GetPublicKeyConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetResourcePolicy" + }, + { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#GetStreamingDistributionConfig" + }, + { + "target": "com.amazonaws.cloudfront#GetTrustStore" + }, + { + "target": "com.amazonaws.cloudfront#GetVpcOrigin" + }, + { + "target": "com.amazonaws.cloudfront#ListAnycastIpLists" + }, + { + "target": "com.amazonaws.cloudfront#ListCachePolicies" + }, + { + "target": "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentities" + }, + { + "target": "com.amazonaws.cloudfront#ListConflictingAliases" + }, + { + "target": "com.amazonaws.cloudfront#ListConnectionFunctions" + }, + { + "target": "com.amazonaws.cloudfront#ListConnectionGroups" + }, + { + "target": "com.amazonaws.cloudfront#ListContinuousDeploymentPolicies" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributions" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByCachePolicyId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionMode" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByOwnedResource" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByTrustStore" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByVpcOriginId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionsByWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionTenants" + }, + { + "target": "com.amazonaws.cloudfront#ListDistributionTenantsByCustomization" + }, + { + "target": "com.amazonaws.cloudfront#ListDomainConflicts" + }, + { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigs" + }, + { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfiles" + }, + { + "target": "com.amazonaws.cloudfront#ListFunctions" + }, + { + "target": "com.amazonaws.cloudfront#ListInvalidations" + }, + { + "target": "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#ListKeyGroups" + }, + { + "target": "com.amazonaws.cloudfront#ListKeyValueStores" + }, + { + "target": "com.amazonaws.cloudfront#ListOriginAccessControls" + }, + { + "target": "com.amazonaws.cloudfront#ListOriginRequestPolicies" + }, + { + "target": "com.amazonaws.cloudfront#ListPublicKeys" + }, + { + "target": "com.amazonaws.cloudfront#ListRealtimeLogConfigs" + }, + { + "target": "com.amazonaws.cloudfront#ListResponseHeadersPolicies" + }, + { + "target": "com.amazonaws.cloudfront#ListStreamingDistributions" + }, + { + "target": "com.amazonaws.cloudfront#ListTagsForResource" + }, + { + "target": "com.amazonaws.cloudfront#ListTrustStores" + }, + { + "target": "com.amazonaws.cloudfront#ListVpcOrigins" + }, + { + "target": "com.amazonaws.cloudfront#PublishConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#PublishFunction" + }, + { + "target": "com.amazonaws.cloudfront#PutResourcePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TagResource" + }, + { + "target": "com.amazonaws.cloudfront#TestConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#TestFunction" + }, + { + "target": "com.amazonaws.cloudfront#UntagResource" + }, + { + "target": "com.amazonaws.cloudfront#UpdateAnycastIpList" + }, + { + "target": "com.amazonaws.cloudfront#UpdateCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#UpdateConnectionFunction" + }, + { + "target": "com.amazonaws.cloudfront#UpdateConnectionGroup" + }, + { + "target": "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#UpdateDistribution" + }, + { + "target": "com.amazonaws.cloudfront#UpdateDistributionTenant" + }, + { + "target": "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfig" + }, + { + "target": "com.amazonaws.cloudfront#UpdateDomainAssociation" + }, + { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#UpdateFunction" + }, + { + "target": "com.amazonaws.cloudfront#UpdateKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#UpdateKeyValueStore" + }, + { + "target": "com.amazonaws.cloudfront#UpdateOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#UpdateOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#UpdatePublicKey" + }, + { + "target": "com.amazonaws.cloudfront#UpdateRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#UpdateResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#UpdateStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#UpdateTrustStore" + }, + { + "target": "com.amazonaws.cloudfront#UpdateVpcOrigin" + }, + { + "target": "com.amazonaws.cloudfront#VerifyDnsConfiguration" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "CloudFront", + "arnNamespace": "cloudfront", + "cloudFormationName": "CloudFront", + "cloudTrailEventSource": "cloudfront.amazonaws.com", + "endpointPrefix": "cloudfront" + }, + "aws.auth#sigv4": { + "name": "cloudfront" + }, + "aws.endpoints#standardPartitionalEndpoints": { + "endpointPatternType": "service_dnsSuffix", + "partitionEndpointSpecialCases": { + "aws": [ + { + "endpoint": "https://cloudfront.global.api.aws", + "region": "us-east-1", + "dualStack": true + }, + { + "endpoint": "https://cloudfront-fips.global.api.aws", + "region": "us-east-1", + "dualStack": true, + "fips": true + } + ], + "aws-cn": [ + { + "endpoint": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "region": "cn-northwest-1" + }, + { + "endpoint": "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn", + "region": "cn-northwest-1", + "fips": true + } + ] + } + }, + "aws.protocols#restXml": {}, + "smithy.api#documentation": "Amazon CloudFront

This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon CloudFront Developer Guide.

", + "smithy.api#title": "Amazon CloudFront", + "smithy.api#xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2020-05-31/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "parameters": { + "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" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 17, + "nodes": "/////wAAAAH/////AAAAAAAAABAAAAADAAAAAQAAAAQF9eEPAAAAAgAAAAUF9eEPAAAAAwAAAAoAAAAGAAAABAAAAAgAAAAHAAAABgX14QYF9eEOAAAABQX14QQAAAAJAAAABwX14QwF9eENAAAABAAAAA0AAAALAAAABgX14QcAAAAMAAAACAX14QoF9eELAAAABQX14QUAAAAOAAAABwAAAA8F9eEJAAAACAX14QgF9eEJAAAAAwX14QEAAAARAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "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" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the 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": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://cloudfront.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://cloudfront-fips.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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 + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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://cloudfront.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront-fips.global.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront-fips.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront.global.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://cloudfront-fips.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://cloudfront-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://cloudfront.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "url": "https://cloudfront-fips.amazonaws.eu" + } + }, + "params": { + "Region": "eusc-de-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.eu" + } + }, + "params": { + "Region": "eusc-de-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://cloudfront-fips.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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://cloudfront.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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://cloudfront-fips.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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://cloudfront.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://cloudfront-fips.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://cloudfront.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://cloudfront-fips.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://cloudfront.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://cloudfront-fips.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://cloudfront-fips.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://cloudfront.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.cloudfront#CommentType": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.cloudfront#ConflictingAlias": { + "type": "structure", + "members": { + "Alias": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An alias (also called a CNAME).

" + } + }, + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The (partially hidden) ID of the CloudFront standard distribution associated with the alias.

" + } + }, + "AccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The (partially hidden) ID of the Amazon Web Services account that owns the standard distribution that's associated with the alias.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An alias (also called a CNAME) and the CloudFront standard distribution and Amazon Web Services account ID that it's associated with. The standard distribution and account IDs are partially hidden, which allows you to identify the standard distributions and accounts that you own, and helps to protect the information of ones that you don't own.

" + } + }, + "com.amazonaws.cloudfront#ConflictingAliases": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ConflictingAlias", + "traits": { + "smithy.api#xmlName": "ConflictingAlias" + } + } + }, + "com.amazonaws.cloudfront#ConflictingAliasesList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing conflicting aliases where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of conflicting aliases requested.

" + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of conflicting aliases returned in the response.

" + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ConflictingAliases", + "traits": { + "smithy.api#documentation": "

Contains the conflicting aliases in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of aliases (also called CNAMEs) and the CloudFront standard distributions and Amazon Web Services accounts that they are associated with. In the list, the standard distribution and account IDs are partially hidden, which allows you to identify the standard distributions and accounts that you own, but helps to protect the information of ones that you don't own.

" + } + }, + "com.amazonaws.cloudfront#ConnectionFunctionAssociation": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The association's ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A connection function association.

" + } + }, + "com.amazonaws.cloudfront#ConnectionFunctionSummary": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The connection function name.

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The connection function ID.

", + "smithy.api#required": {} + } + }, + "ConnectionFunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#required": {} + } + }, + "ConnectionFunctionArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function status.

", + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The connection function stage.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The connection function created time.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The connection function last modified time.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A connection function summary.

" + } + }, + "com.amazonaws.cloudfront#ConnectionFunctionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#xmlName": "ConnectionFunctionSummary" + } + } + }, + "com.amazonaws.cloudfront#ConnectionFunctionTestResult": { + "type": "structure", + "members": { + "ConnectionFunctionSummary": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#documentation": "

The connection function summary.

" + } + }, + "ComputeUtilization": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function compute utilization.

" + } + }, + "ConnectionFunctionExecutionLogs": { + "target": "com.amazonaws.cloudfront#FunctionExecutionLogList", + "traits": { + "smithy.api#documentation": "

The connection function execution logs.

" + } + }, + "ConnectionFunctionErrorMessage": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

The connection function error message.

" + } + }, + "ConnectionFunctionOutput": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

The connection function output.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A connection function test result.

" + } + }, + "com.amazonaws.cloudfront#ConnectionGroup": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the connection group.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the connection group.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the connection group was created.

" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the connection group was updated.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + }, + "Ipv6Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

IPv6 is enabled for the connection group.

" + } + }, + "RoutingEndpoint": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The routing endpoint (also known as the DNS name) that is assigned to the connection group, such as d111111abcdef8.cloudfront.net.

" + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the connection group.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the connection group is enabled.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the connection group is the default connection group for the distribution tenants.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The connection group for your distribution tenants. When you first create a distribution tenant and you don't specify a connection group, CloudFront will automatically create a default connection group for you. When you create a new distribution tenant and don't specify a connection group, the default one will be associated with your distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#ConnectionGroupAssociationFilter": { + "type": "structure", + "members": { + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about what CloudFront resources your connection groups are associated with.

" + } + }, + "com.amazonaws.cloudfront#ConnectionGroupSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the connection group.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the connection group.

", + "smithy.api#required": {} + } + }, + "RoutingEndpoint": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The routing endpoint (also known as the DNS name) that is assigned to the connection group, such as d111111abcdef8.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the connection group was created.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the connection group was updated.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the connection group.

", + "smithy.api#required": {} + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the connection group is enabled

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the connection group.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the connection group is the default connection group for the distribution tenants.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary that contains details about your connection groups.

" + } + }, + "com.amazonaws.cloudfront#ConnectionGroupSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ConnectionGroupSummary", + "traits": { + "smithy.api#xmlName": "ConnectionGroupSummary" + } + } + }, + "com.amazonaws.cloudfront#ConnectionMode": { + "type": "enum", + "members": { + "Direct": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "direct" + } + }, + "TenantOnly": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tenant-only" + } + } + } + }, + "com.amazonaws.cloudfront#ContentTypeProfile": { + "type": "structure", + "members": { + "Format": { + "target": "com.amazonaws.cloudfront#Format", + "traits": { + "smithy.api#documentation": "

The format for a field-level encryption content type-profile mapping.

", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The profile ID for a field-level encryption content type-profile mapping.

" + } + }, + "ContentType": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The content type for a field-level encryption content type-profile mapping.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A field-level encryption content type profile.

" + } + }, + "com.amazonaws.cloudfront#ContentTypeProfileConfig": { + "type": "structure", + "members": { + "ForwardWhenContentTypeIsUnknown": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

The setting in a field-level encryption content type-profile mapping that specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown.

", + "smithy.api#required": {} + } + }, + "ContentTypeProfiles": { + "target": "com.amazonaws.cloudfront#ContentTypeProfiles", + "traits": { + "smithy.api#documentation": "

The configuration for a field-level encryption content type-profile.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a field-level encryption content type-profile mapping.

" + } + }, + "com.amazonaws.cloudfront#ContentTypeProfileList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ContentTypeProfile", + "traits": { + "smithy.api#xmlName": "ContentTypeProfile" + } + } + }, + "com.amazonaws.cloudfront#ContentTypeProfiles": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of field-level encryption content type-profile mappings.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ContentTypeProfileList", + "traits": { + "smithy.api#documentation": "

Items in a field-level encryption content type-profile mapping.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Field-level encryption content type-profile.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicy": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the continuous deployment policy.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time the continuous deployment policy was last modified.

", + "smithy.api#required": {} + } + }, + "ContinuousDeploymentPolicyConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyConfig", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A continuous deployment policy.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A continuous deployment policy with this configuration already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyConfig": { + "type": "structure", + "members": { + "StagingDistributionDnsNames": { + "target": "com.amazonaws.cloudfront#StagingDistributionDnsNames", + "traits": { + "smithy.api#documentation": "

The CloudFront domain name of the staging distribution. For example: d111111abcdef8.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is true, this policy is enabled and in effect. When this value is false, this policy is not enabled and has no effect.

", + "smithy.api#required": {} + } + }, + "TrafficConfig": { + "target": "com.amazonaws.cloudfront#TrafficConfig", + "traits": { + "smithy.api#documentation": "

Contains the parameters for routing production traffic from your primary to staging distributions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the configuration for a continuous deployment policy.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You cannot delete a continuous deployment policy that is associated with a primary distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Indicates the next page of continuous deployment policies. To get the next page of the list, use this value in the Marker field of your request.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of continuous deployment policies that were specified in your request.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The total number of continuous deployment policies in your Amazon Web Services account, regardless of the MaxItems value.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicySummaryList", + "traits": { + "smithy.api#documentation": "

A list of continuous deployment policy items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a list of continuous deployment policies.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicySummary": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicy": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicy", + "traits": { + "smithy.api#documentation": "

The continuous deployment policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the information about your continuous deployment policies.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicySummary", + "traits": { + "smithy.api#xmlName": "ContinuousDeploymentPolicySummary" + } + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentPolicyType": { + "type": "enum", + "members": { + "SingleWeight": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SingleWeight" + } + }, + "SingleHeader": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SingleHeader" + } + } + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentSingleHeaderConfig": { + "type": "structure", + "members": { + "Header": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The request header name that you want CloudFront to send to your staging distribution. The header must contain the prefix aws-cf-cd-.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The request header value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This configuration determines which HTTP requests are sent to the staging distribution. If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.

" + } + }, + "com.amazonaws.cloudfront#ContinuousDeploymentSingleWeightConfig": { + "type": "structure", + "members": { + "Weight": { + "target": "com.amazonaws.cloudfront#float", + "traits": { + "smithy.api#documentation": "

The percentage of traffic to send to a staging distribution, expressed as a decimal number between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent to the staging distribution.

", + "smithy.api#required": {} + } + }, + "SessionStickinessConfig": { + "target": "com.amazonaws.cloudfront#SessionStickinessConfig" + } + }, + "traits": { + "smithy.api#documentation": "

Contains the percentage of traffic to send to a staging distribution.

" + } + }, + "com.amazonaws.cloudfront#CookieNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Name" + } + } + }, + "com.amazonaws.cloudfront#CookieNames": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of cookie names in the Items list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#CookieNameList", + "traits": { + "smithy.api#documentation": "

A list of cookie names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a list of cookie names.

" + } + }, + "com.amazonaws.cloudfront#CookiePreference": { + "type": "structure", + "members": { + "Forward": { + "target": "com.amazonaws.cloudfront#ItemSelection", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the WhitelistedNames complex type.

Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the Forward element.

", + "smithy.api#required": {} + } + }, + "WhitelistedNames": { + "target": "com.amazonaws.cloudfront#CookieNames", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

Required if you specify whitelist for the value of Forward. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies.

If you specify all or none for the value of Forward, omit WhitelistedNames. If you change the value of Forward from whitelist to all or none and you don't delete the WhitelistedNames element and its child elements, CloudFront deletes them automatically.

For the current limit on the number of cookie names that you can whitelist for each cache behavior, see CloudFront Limits in the Amazon Web Services General Reference.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include cookies in the cache key, use CookiesConfig in a cache policy. See CachePolicy.

If you want to send cookies to the origin but not include them in the cache key, use CookiesConfig in an origin request policy. See OriginRequestPolicy.

A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see Caching Content Based on Cookies in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#CopyDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CopyDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CopyDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#DistributionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDefaultRootObject" + }, + { + "target": "com.amazonaws.cloudfront#InvalidErrorCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidForwardCookies" + }, + { + "target": "com.amazonaws.cloudfront#InvalidFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter" + }, + { + "target": "com.amazonaws.cloudfront#InvalidHeadersForS3Origin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLocationCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOrigin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginReadTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidProtocolSettings" + }, + { + "target": "com.amazonaws.cloudfront#InvalidQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRelativePath" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRequiredProtocol" + }, + { + "target": "com.amazonaws.cloudfront#InvalidResponseCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTTLOrder" + }, + { + "target": "com.amazonaws.cloudfront#InvalidViewerCertificate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOrigin" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCacheBehaviors" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCertificates" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributions" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginCustomHeaders" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOrigins" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a staging distribution using the configuration of the provided primary distribution. A staging distribution is a copy of an existing distribution (called the primary distribution) that you can use in a continuous deployment workflow.

After you create a staging distribution, you can use UpdateDistribution to modify the staging distribution's configuration. Then you can use CreateContinuousDeploymentPolicy to incrementally move traffic to the staging distribution.

This API operation requires the following IAM permissions:

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution/{PrimaryDistributionId}/copy", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CopyDistributionRequest": { + "type": "structure", + "members": { + "PrimaryDistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the primary distribution whose configuration you are copying. To get a distribution ID, use ListDistributions.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Staging": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

The type of distribution that your primary distribution will be copied to. The only valid value is True, indicating that you are copying to a staging distribution.

", + "smithy.api#httpHeader": "Staging" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier of the primary distribution whose configuration you are copying. This is the ETag value returned in the response to GetDistribution and GetDistributionConfig.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A value that uniquely identifies a request to create a resource. This helps to prevent CloudFront from creating a duplicate resource if you accidentally resubmit an identical request.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean flag to specify the state of the staging distribution when it's created. When you set this value to True, the staging distribution is enabled. When you set this value to False, the staging distribution is disabled.

If you omit this field, the default value is True.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CopyDistributionResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the staging distribution.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the staging distribution.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateAnycastIpList": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateAnycastIpListRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateAnycastIpListResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Anycast static IP list.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/anycast-ip-list", + "code": 202 + } + } + }, + "com.amazonaws.cloudfront#CreateAnycastIpListRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#AnycastIpListName", + "traits": { + "smithy.api#documentation": "

Name of the Anycast static IP list.

", + "smithy.api#required": {} + } + }, + "IpCount": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of static IP addresses that are allocated to the Anycast static IP list. Valid values: 21 or 3.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the Anycast static IP list. You can specify one of the following options:

  • ipv4 only

  • ipv6 only

  • dualstack - Allocate a list of both IPv4 and IPv6 addresses

" + } + }, + "IpamCidrConfigs": { + "target": "com.amazonaws.cloudfront#IpamCidrConfigList", + "traits": { + "smithy.api#documentation": "

A list of IPAM CIDR configurations that specify the IP address ranges and IPAM pool settings for creating the Anycast static IP list.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateAnycastIpListResult": { + "type": "structure", + "members": { + "AnycastIpList": { + "target": "com.amazonaws.cloudfront#AnycastIpList", + "traits": { + "smithy.api#documentation": "

A response structure that includes the version identifier (ETag) and the created AnycastIpList structure.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the Anycast static IP list.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateCachePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateCachePolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateCachePolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CachePolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCachePolicies" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookiesInCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringsInCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a cache policy.

After you create a cache policy, you can attach it to one or more cache behaviors. When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

    If your minimum TTL is greater than 0, CloudFront will cache content for at least the duration specified in the cache policy's minimum TTL, even if the Cache-Control: no-cache, no-store, or private directives are present in the origin headers.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/cache-policy", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateCachePolicyRequest": { + "type": "structure", + "members": { + "CachePolicyConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyConfig", + "traits": { + "smithy.api#documentation": "

A cache policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "CachePolicyConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateCachePolicyResult": { + "type": "structure", + "members": { + "CachePolicy": { + "target": "com.amazonaws.cloudfront#CachePolicy", + "traits": { + "smithy.api#documentation": "

A cache policy.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the cache policy just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the cache policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentity": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCloudFrontOriginAccessIdentities" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/origin-access-identity/cloudfront", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityRequest": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityConfig", + "traits": { + "smithy.api#documentation": "

The current configuration information for the identity.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "CloudFrontOriginAccessIdentityConfig" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see Restricting Access to Amazon S3 Content by Using an Origin Access Identity in the Amazon CloudFront Developer Guide.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateCloudFrontOriginAccessIdentityResult": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentity", + "traits": { + "smithy.api#documentation": "

The origin access identity's information.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new origin access identity just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin access identity created.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntitySizeLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a connection function.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-function", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateConnectionFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

A name for the connection function.

", + "smithy.api#required": {} + } + }, + "ConnectionFunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#required": {} + } + }, + "ConnectionFunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The code for the connection function.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionSummary": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#documentation": "

The summary for the connection function.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location of the connection function.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the connection function.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateConnectionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateConnectionGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateConnectionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a connection group.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-group", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateConnectionGroupRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the connection group. Enter a friendly identifier that is unique within your Amazon Web Services account. This name can't be updated after you create the connection group.

", + "smithy.api#required": {} + } + }, + "Ipv6Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Enable IPv6 for the connection group. The default is true. For more information, see Enable IPv6 in the Amazon CloudFront Developer Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Enable the connection group.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateConnectionGroupResult": { + "type": "structure", + "members": { + "ConnectionGroup": { + "target": "com.amazonaws.cloudfront#ConnectionGroup", + "traits": { + "smithy.api#documentation": "

The connection group that you created.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the connection group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#StagingDistributionInUse" + }, + { + "target": "com.amazonaws.cloudfront#TooManyContinuousDeploymentPolicies" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a continuous deployment policy that distributes traffic for a custom domain name to two different CloudFront distributions.

To use a continuous deployment policy, first use CopyDistribution to create a staging distribution, then use UpdateDistribution to modify the staging distribution's configuration.

After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This workflow enables you to test changes to a distribution's configuration before moving all of your domain's production traffic to the new configuration.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/continuous-deployment-policy", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyRequest": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicyConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyConfig", + "traits": { + "smithy.api#documentation": "

Contains the configuration for a continuous deployment policy.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ContinuousDeploymentPolicyConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateContinuousDeploymentPolicyResult": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicy": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicy", + "traits": { + "smithy.api#documentation": "

A continuous deployment policy.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location of the continuous deployment policy.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the continuous deployment policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#DistributionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" + }, + { + "target": "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDefaultRootObject" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidErrorCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidForwardCookies" + }, + { + "target": "com.amazonaws.cloudfront#InvalidFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter" + }, + { + "target": "com.amazonaws.cloudfront#InvalidHeadersForS3Origin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLocationCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOrigin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginReadTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidProtocolSettings" + }, + { + "target": "com.amazonaws.cloudfront#InvalidQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRelativePath" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRequiredProtocol" + }, + { + "target": "com.amazonaws.cloudfront#InvalidResponseCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTTLOrder" + }, + { + "target": "com.amazonaws.cloudfront#InvalidViewerCertificate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOrigin" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCacheBehaviors" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCertificates" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributions" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginCustomHeaders" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOrigins" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a CloudFront distribution.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateDistributionRequest": { + "type": "structure", + "members": { + "DistributionConfig": { + "target": "com.amazonaws.cloudfront#DistributionConfig", + "traits": { + "smithy.api#documentation": "

The distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "DistributionConfig" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create a new distribution.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateDistributionResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#documentation": "

The distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new distribution resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution created.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a distribution tenant.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution-tenant", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateDistributionTenantRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the multi-tenant distribution to use for creating the distribution tenant.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the distribution tenant. Enter a friendly identifier that is unique within your Amazon Web Services account. This name can't be updated after you create the distribution tenant.

", + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9-.]{1,126}[a-zA-Z0-9]$", + "smithy.api#required": {} + } + }, + "Domains": { + "target": "com.amazonaws.cloudfront#DomainList", + "traits": { + "smithy.api#documentation": "

The domains associated with the distribution tenant. You must specify at least one domain in the request.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + }, + "Customizations": { + "target": "com.amazonaws.cloudfront#Customizations", + "traits": { + "smithy.api#documentation": "

Customizations for the distribution tenant. For each distribution tenant, you can specify the geographic restrictions, and the Amazon Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are specific values that you can override or disable from the multi-tenant distribution that was used to create the distribution tenant.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudfront#Parameters", + "traits": { + "smithy.api#documentation": "

A list of parameter values to add to the resource. A parameter is specified as a key-value pair. A valid parameter value must exist for any parameter that is marked as required in the multi-tenant distribution.

" + } + }, + "ConnectionGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group to associate with the distribution tenant.

" + } + }, + "ManagedCertificateRequest": { + "target": "com.amazonaws.cloudfront#ManagedCertificateRequest", + "traits": { + "smithy.api#documentation": "

The configuration for the CloudFront managed ACM certificate request.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the distribution tenant should be enabled when created. If the distribution tenant is disabled, the distribution tenant won't serve traffic.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateDistributionTenantResult": { + "type": "structure", + "members": { + "DistributionTenant": { + "target": "com.amazonaws.cloudfront#DistributionTenant", + "traits": { + "smithy.api#documentation": "

The distribution tenant that you created.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateDistributionWithTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateDistributionWithTagsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateDistributionWithTagsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#DistributionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" + }, + { + "target": "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDefaultRootObject" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidErrorCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidForwardCookies" + }, + { + "target": "com.amazonaws.cloudfront#InvalidFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter" + }, + { + "target": "com.amazonaws.cloudfront#InvalidHeadersForS3Origin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLocationCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOrigin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginReadTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidProtocolSettings" + }, + { + "target": "com.amazonaws.cloudfront#InvalidQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRelativePath" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRequiredProtocol" + }, + { + "target": "com.amazonaws.cloudfront#InvalidResponseCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTTLOrder" + }, + { + "target": "com.amazonaws.cloudfront#InvalidViewerCertificate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOrigin" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCacheBehaviors" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCertificates" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributions" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginCustomHeaders" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOrigins" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Create a new distribution with tags. This API operation requires the following IAM permissions:

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution?WithTags", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateDistributionWithTagsRequest": { + "type": "structure", + "members": { + "DistributionConfigWithTags": { + "target": "com.amazonaws.cloudfront#DistributionConfigWithTags", + "traits": { + "smithy.api#documentation": "

The distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "DistributionConfigWithTags" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create a new distribution with tags.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateDistributionWithTagsResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#documentation": "

The distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new distribution resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution created.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfigAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#QueryArgProfileEmpty" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionConfigs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionContentTypeProfiles" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionQueryArgProfiles" + } + ], + "traits": { + "smithy.api#documentation": "

Create a new field-level encryption configuration.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/field-level-encryption", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigRequest": { + "type": "structure", + "members": { + "FieldLevelEncryptionConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfig", + "traits": { + "smithy.api#documentation": "

The request to create a new field-level encryption configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "FieldLevelEncryptionConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionConfigResult": { + "type": "structure", + "members": { + "FieldLevelEncryption": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryption", + "traits": { + "smithy.api#documentation": "

Returned when you create a new field-level encryption configuration.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new configuration resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSizeExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionEncryptionEntities" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionFieldPatterns" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionProfiles" + } + ], + "traits": { + "smithy.api#documentation": "

Create a field-level encryption profile.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/field-level-encryption-profile", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileRequest": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfileConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileConfig", + "traits": { + "smithy.api#documentation": "

The request to create a field-level encryption profile.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "FieldLevelEncryptionProfileConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateFieldLevelEncryptionProfileResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfile": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfile", + "traits": { + "smithy.api#documentation": "

Returned when you create a new field-level encryption profile.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new profile resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#FunctionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#FunctionSizeLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctions" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a CloudFront function.

To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function.

When you create a function, it's in the DEVELOPMENT stage. In this stage, you can test the function with TestFunction, and update it with UpdateFunction.

When you're ready to use your function with a CloudFront distribution, use PublishFunction to copy the function from the DEVELOPMENT stage to LIVE. When it's live, you can attach the function to a distribution's cache behavior, using the function's ARN.

", + "smithy.api#examples": [ + { + "title": "To create a function", + "documentation": "Use the following command to create a function.", + "input": { + "Name": "my-function-name", + "FunctionConfig": { + "Comment": "my-function-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionCode": "function-code.js" + }, + "output": { + "FunctionSummary": { + "Name": "my-function-name", + "Status": "UNPUBLISHED", + "FunctionConfig": { + "Comment": "my-function-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionMetadata": { + "FunctionARN": "arn:aws:cloudfront::123456789012:function/my-function-name", + "Stage": "DEVELOPMENT", + "CreatedTime": "2023-11-07T19:53:50.334Z", + "LastModifiedTime": "2023-11-07T19:53:50.334Z" + } + }, + "Location": "https://cloudfront.amazonaws.com/2020-05-31/function/arn:aws:cloudfront::123456789012:function/my-function-name", + "ETag": "ETVPDKIKX0DER" + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/function", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

A name to identify the function.

", + "smithy.api#required": {} + } + }, + "FunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#documentation": "

Configuration information about the function, including an optional comment and the function's runtime.

", + "smithy.api#required": {} + } + }, + "FunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateFunctionResult": { + "type": "structure", + "members": { + "FunctionSummary": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about a CloudFront function.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the CloudFront function. Use the URL to manage the function with the CloudFront API.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the CloudFront function.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateInvalidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateInvalidationRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateInvalidationResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#BatchTooLarge" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyInvalidationsInProgress" + } + ], + "traits": { + "smithy.api#documentation": "

Create a new invalidation. For more information, see Invalidating files in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#BatchTooLarge" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#TooManyInvalidationsInProgress" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an invalidation for a distribution tenant. For more information, see Invalidating files in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution-tenant/{Id}/invalidation", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "InvalidationBatch": { + "target": "com.amazonaws.cloudfront#InvalidationBatch", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "InvalidationBatch" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateInvalidationForDistributionTenantResult": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location for the invalidation.

", + "smithy.api#httpHeader": "Location" + } + }, + "Invalidation": { + "target": "com.amazonaws.cloudfront#Invalidation", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateInvalidationRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's id.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "InvalidationBatch": { + "target": "com.amazonaws.cloudfront#InvalidationBatch", + "traits": { + "smithy.api#documentation": "

The batch information for the invalidation.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "InvalidationBatch" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create an invalidation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateInvalidationResult": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the distribution and invalidation batch request, including the Invalidation ID.

", + "smithy.api#httpHeader": "Location" + } + }, + "Invalidation": { + "target": "com.amazonaws.cloudfront#Invalidation", + "traits": { + "smithy.api#documentation": "

The invalidation's information.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateKeyGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateKeyGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateKeyGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#KeyGroupAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroups" + }, + { + "target": "com.amazonaws.cloudfront#TooManyPublicKeysInKeyGroup" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a key group that you can use with CloudFront signed URLs and signed cookies.

To create a key group, you must specify at least one public key for the key group. After you create a key group, you can reference it from one or more cache behaviors. When you reference a key group in a cache behavior, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/key-group", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateKeyGroupRequest": { + "type": "structure", + "members": { + "KeyGroupConfig": { + "target": "com.amazonaws.cloudfront#KeyGroupConfig", + "traits": { + "smithy.api#documentation": "

A key group configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "KeyGroupConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateKeyGroupResult": { + "type": "structure", + "members": { + "KeyGroup": { + "target": "com.amazonaws.cloudfront#KeyGroup", + "traits": { + "smithy.api#documentation": "

The key group that was just created.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the key group.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the key group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateKeyValueStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateKeyValueStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateKeyValueStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntitySizeLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the key value store resource to add to your account. In your account, the key value store names must be unique. You can also import key value store data in JSON format from an S3 bucket by providing a valid ImportSource that you own.

", + "smithy.api#examples": [ + { + "title": "To create a KeyValueStore", + "documentation": "Use the following command to create a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "Comment": "my-key-valuestore-comment", + "ImportSource": { + "SourceType": "S3", + "SourceARN": "arn:aws:s3:::amzn-s3-demo-bucket/validJSON.json" + } + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-key-valuestore-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "PROVISIONING", + "LastModifiedTime": "2023-11-07T18:15:52.042Z" + }, + "ETag": "ETVPDKIKX0DER", + "Location": "https://cloudfront.amazonaws.com/2020-05-31/key-value-store/arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/key-value-store", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateKeyValueStoreRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#KeyValueStoreName", + "traits": { + "smithy.api#documentation": "

The name of the key value store. The minimum length is 1 character and the maximum length is 64 characters.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#KeyValueStoreComment", + "traits": { + "smithy.api#documentation": "

The comment of the key value store.

" + } + }, + "ImportSource": { + "target": "com.amazonaws.cloudfront#ImportSource", + "traits": { + "smithy.api#documentation": "

The S3 bucket that provides the source for the import. The source must be in a valid JSON format.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateKeyValueStoreResult": { + "type": "structure", + "members": { + "KeyValueStore": { + "target": "com.amazonaws.cloudfront#KeyValueStore", + "traits": { + "smithy.api#documentation": "

The resulting key value store.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ETag in the resulting key value store.

", + "smithy.api#httpHeader": "ETag" + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The location of the resulting key value store.

", + "smithy.api#httpHeader": "Location" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateMonitoringSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateMonitoringSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateMonitoringSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#MonitoringSubscriptionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Enables or disables additional Amazon CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost.

For more information, see Viewing additional CloudFront distribution metrics in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#CreateMonitoringSubscriptionRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution that you are enabling metrics for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MonitoringSubscription": { + "target": "com.amazonaws.cloudfront#MonitoringSubscription", + "traits": { + "smithy.api#documentation": "

A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "MonitoringSubscription" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateMonitoringSubscriptionResult": { + "type": "structure", + "members": { + "MonitoringSubscription": { + "target": "com.amazonaws.cloudfront#MonitoringSubscription", + "traits": { + "smithy.api#documentation": "

A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateOriginAccessControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateOriginAccessControlRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateOriginAccessControlResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#OriginAccessControlAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginAccessControls" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.

This makes it possible to block public access to the origin, allowing viewers (users) to access the origin's content only through CloudFront.

For more information about using a CloudFront origin access control, see Restricting access to an Amazon Web Services origin in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/origin-access-control", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateOriginAccessControlRequest": { + "type": "structure", + "members": { + "OriginAccessControlConfig": { + "target": "com.amazonaws.cloudfront#OriginAccessControlConfig", + "traits": { + "smithy.api#documentation": "

Contains the origin access control.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "OriginAccessControlConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateOriginAccessControlResult": { + "type": "structure", + "members": { + "OriginAccessControl": { + "target": "com.amazonaws.cloudfront#OriginAccessControl", + "traits": { + "smithy.api#documentation": "

Contains an origin access control.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the origin access control.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the origin access control.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateOriginRequestPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateOriginRequestPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateOriginRequestPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookiesInOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginRequestPolicies" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringsInOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an origin request policy.

After you create an origin request policy, you can attach it to one or more cache behaviors. When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:

  • The request body and the URL path (without the domain name) from the viewer request.

  • The headers that CloudFront automatically includes in every origin request, including Host, User-Agent, and X-Amz-Cf-Id.

  • All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.

CloudFront sends a request when it can't find a valid object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use CachePolicy.

For more information about origin request policies, see Controlling origin requests in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/origin-request-policy", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateOriginRequestPolicyRequest": { + "type": "structure", + "members": { + "OriginRequestPolicyConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyConfig", + "traits": { + "smithy.api#documentation": "

An origin request policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "OriginRequestPolicyConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateOriginRequestPolicyResult": { + "type": "structure", + "members": { + "OriginRequestPolicy": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicy", + "traits": { + "smithy.api#documentation": "

An origin request policy.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the origin request policy just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin request policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreatePublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreatePublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreatePublicKeyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#PublicKeyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyPublicKeys" + } + ], + "traits": { + "smithy.api#documentation": "

Uploads a public key to CloudFront that you can use with signed URLs and signed cookies, or with field-level encryption.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/public-key", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreatePublicKeyRequest": { + "type": "structure", + "members": { + "PublicKeyConfig": { + "target": "com.amazonaws.cloudfront#PublicKeyConfig", + "traits": { + "smithy.api#documentation": "

A CloudFront public key configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "PublicKeyConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreatePublicKeyResult": { + "type": "structure", + "members": { + "PublicKey": { + "target": "com.amazonaws.cloudfront#PublicKey", + "traits": { + "smithy.api#documentation": "

The public key.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the public key.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the public key.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateRealtimeLogConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateRealtimeLogConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateRealtimeLogConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyRealtimeLogConfigs" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a real-time log configuration.

After you create a real-time log configuration, you can attach it to one or more cache behaviors to send real-time log data to the specified Amazon Kinesis data stream.

For more information about real-time log configurations, see Real-time logs in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/realtime-log-config", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateRealtimeLogConfigRequest": { + "type": "structure", + "members": { + "EndPoints": { + "target": "com.amazonaws.cloudfront#EndPointList", + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you are sending real-time log data.

", + "smithy.api#required": {} + } + }, + "Fields": { + "target": "com.amazonaws.cloudfront#FieldList", + "traits": { + "smithy.api#documentation": "

A list of fields to include in each real-time log record.

For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique name to identify this real-time log configuration.

", + "smithy.api#required": {} + } + }, + "SamplingRate": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The sampling rate for this real-time log configuration. You can specify a whole number between 1 and 100 (inclusive) to determine the percentage of viewer requests that are represented in the real-time log data.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateRealtimeLogConfigResult": { + "type": "structure", + "members": { + "RealtimeLogConfig": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfig", + "traits": { + "smithy.api#documentation": "

A real-time log configuration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateResponseHeadersPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateResponseHeadersPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateResponseHeadersPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooLongCSPInResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCustomHeadersInResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyRemoveHeadersInResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyResponseHeadersPolicies" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a response headers policy.

A response headers policy contains information about a set of HTTP headers. To create a response headers policy, you provide some metadata about the policy and a set of configurations that specify the headers.

After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.

For more information, see Adding or removing HTTP headers in CloudFront responses in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/response-headers-policy", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateResponseHeadersPolicyRequest": { + "type": "structure", + "members": { + "ResponseHeadersPolicyConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyConfig", + "traits": { + "smithy.api#documentation": "

Contains metadata about the response headers policy, and a set of configurations that specify the HTTP headers.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ResponseHeadersPolicyConfig" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateResponseHeadersPolicyResult": { + "type": "structure", + "members": { + "ResponseHeadersPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicy", + "traits": { + "smithy.api#documentation": "

Contains a response headers policy.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The URL of the response headers policy.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the response headers policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateStreamingDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateStreamingDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOrigin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#StreamingDistributionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyStreamingDistributions" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/streaming-distribution", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistributionRequest": { + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfig", + "traits": { + "smithy.api#documentation": "

The streaming distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "StreamingDistributionConfig" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create a new streaming distribution.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistributionResult": { + "type": "structure", + "members": { + "StreamingDistribution": { + "target": "com.amazonaws.cloudfront#StreamingDistribution", + "traits": { + "smithy.api#documentation": "

The streaming distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new streaming distribution resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the streaming distribution created.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistributionWithTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOrigin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#StreamingDistributionAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyStreamingDistributions" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/streaming-distribution?WithTags", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsRequest": { + "type": "structure", + "members": { + "StreamingDistributionConfigWithTags": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfigWithTags", + "traits": { + "smithy.api#documentation": "

The streaming distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "StreamingDistributionConfigWithTags" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to create a new streaming distribution with tags.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateStreamingDistributionWithTagsResult": { + "type": "structure", + "members": { + "StreamingDistribution": { + "target": "com.amazonaws.cloudfront#StreamingDistribution", + "traits": { + "smithy.api#documentation": "

The streaming distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The fully qualified URI of the new streaming distribution resource just created.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution created.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateTrustStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateTrustStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateTrustStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a trust store.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/trust-store", + "code": 201 + } + } + }, + "com.amazonaws.cloudfront#CreateTrustStoreRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name for the trust store.

", + "smithy.api#required": {} + } + }, + "CaCertificatesBundleSource": { + "target": "com.amazonaws.cloudfront#CaCertificatesBundleSource", + "traits": { + "smithy.api#documentation": "

The CA certificates bundle source for the trust store.

", + "smithy.api#required": {} + } + }, + "UseClientCertificateOCSPEndpoint": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether to use the CA certificate's OCSP endpoint to check certificate revocation status.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateTrustStoreResult": { + "type": "structure", + "members": { + "TrustStore": { + "target": "com.amazonaws.cloudfront#TrustStore", + "traits": { + "smithy.api#documentation": "

The trust store.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the trust store.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CreateVpcOrigin": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#CreateVpcOriginRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#CreateVpcOriginResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Create an Amazon CloudFront VPC origin.

", + "smithy.api#examples": [ + { + "title": "To create a VPC origin", + "documentation": "The following command creates a VPC origin:", + "input": { + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d", + "HTTPPort": 80, + "HTTPSPort": 443, + "OriginProtocolPolicy": "match-viewer", + "OriginSslProtocols": { + "Quantity": 2, + "Items": [ + "TLSv1.1", + "TLSv1.2" + ] + } + } + }, + "output": { + "VpcOrigin": { + "Status": "Deploying", + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "OriginSslProtocols": { + "Items": [ + "TLSv1.1", + "TLSv1.2" + ], + "Quantity": 2 + }, + "OriginProtocolPolicy": "match-viewer", + "HTTPPort": 80, + "HTTPSPort": 443, + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d" + }, + "CreatedTime": "2024-10-15T17:19:42.318Z", + "LastModifiedTime": "2024-10-15T17:19:42.318Z", + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "Arn": "arn:aws:cloudfront::123456789012:vpcorigin/vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "ETag": "E23ZP02F085DFQ", + "Location": "https://cloudfront.amazonaws.com/2020-05-31/vpc-origin/vo_BQwjxxQxjCaBcQLzJUFkDM" + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/vpc-origin", + "code": 202 + } + } + }, + "com.amazonaws.cloudfront#CreateVpcOriginRequest": { + "type": "structure", + "members": { + "VpcOriginEndpointConfig": { + "target": "com.amazonaws.cloudfront#VpcOriginEndpointConfig", + "traits": { + "smithy.api#documentation": "

The VPC origin endpoint configuration.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#CreateVpcOriginResult": { + "type": "structure", + "members": { + "VpcOrigin": { + "target": "com.amazonaws.cloudfront#VpcOrigin", + "traits": { + "smithy.api#documentation": "

The VPC origin.

", + "smithy.api#httpPayload": {} + } + }, + "Location": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin location.

", + "smithy.api#httpHeader": "Location" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ETag.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#CustomErrorResponse": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The HTTP status code for which you want to specify a custom error page and/or a caching duration.

", + "smithy.api#required": {} + } + }, + "ResponsePagePath": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ErrorCode, for example, /4xx-errors/403-forbidden.html. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:

  • The value of PathPattern matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named /4xx-errors. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, /4xx-errors/*.

  • The value of TargetOriginId specifies the value of the ID element for the origin that contains your custom error pages.

If you specify a value for ResponsePagePath, you must also specify a value for ResponseCode.

We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable.

" + } + }, + "ResponseCode": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The HTTP status code that you want CloudFront to return to the viewer along with the custom error page. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example:

  • Some Internet devices (some firewalls and corporate proxies, for example) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer. If you substitute 200, the response typically won't be intercepted.

  • If you don't care about distinguishing among different client errors or server errors, you can specify 400 or 500 as the ResponseCode for all 4xx or 5xx errors.

  • You might want to return a 200 status code (OK) and static website so your customers don't know that your website is down.

If you specify a value for ResponseCode, you must also specify a value for ResponsePagePath.

" + } + }, + "ErrorCachingMinTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in ErrorCode. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available.

For more information, see Customizing Error Responses in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls:

  • Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer.

  • How long CloudFront caches HTTP status codes in the 4xx and 5xx range.

For more information about custom error pages, see Customizing Error Responses in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#CustomErrorResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#CustomErrorResponse", + "traits": { + "smithy.api#xmlName": "CustomErrorResponse" + } + } + }, + "com.amazonaws.cloudfront#CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP status codes for which you want to specify a custom error page and/or a caching duration. If Quantity is 0, you can omit Items.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#CustomErrorResponseList", + "traits": { + "smithy.api#documentation": "

A complex type that contains a CustomErrorResponse element for each HTTP status code for which you want to specify a custom error page and/or a caching duration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls:

  • Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer.

  • How long CloudFront caches HTTP status codes in the 4xx and 5xx range.

For more information about custom error pages, see Customizing Error Responses in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#CustomHeaders": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of custom headers, if any, for this distribution.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginCustomHeadersList", + "traits": { + "smithy.api#documentation": "

Optional: A list that contains one OriginCustomHeader element for each custom header that you want CloudFront to forward to the origin. If Quantity is 0, omit Items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains the list of Custom Headers for each origin.

" + } + }, + "com.amazonaws.cloudfront#CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP port that the origin listens on.

", + "smithy.api#required": {} + } + }, + "HTTPSPort": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The HTTPS port that CloudFront uses to connect to the origin. Specify the HTTPS port that the origin listens on.

", + "smithy.api#required": {} + } + }, + "OriginProtocolPolicy": { + "target": "com.amazonaws.cloudfront#OriginProtocolPolicy", + "traits": { + "smithy.api#documentation": "

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are:

  • http-only – CloudFront always uses HTTP to connect to the origin.

  • match-viewer – CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront.

  • https-only – CloudFront always uses HTTPS to connect to the origin.

", + "smithy.api#required": {} + } + }, + "OriginSslProtocols": { + "target": "com.amazonaws.cloudfront#OriginSslProtocols", + "traits": { + "smithy.api#documentation": "

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS. Valid values include SSLv3, TLSv1, TLSv1.1, and TLSv1.2.

For more information, see Minimum Origin SSL Protocol in the Amazon CloudFront Developer Guide.

" + } + }, + "OriginReadTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the origin response timeout. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.

For more information, see Response timeout in the Amazon CloudFront Developer Guide.

" + } + }, + "OriginKeepaliveTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 5 seconds.

For more information, see Keep-alive timeout (custom origins only) in the Amazon CloudFront Developer Guide.

" + } + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#IpAddressType", + "traits": { + "smithy.api#documentation": "

Specifies which IP protocol CloudFront uses when connecting to your origin. If your origin uses both IPv4 and IPv6 protocols, you can choose dualstack to help optimize reliability.

" + } + }, + "OriginMtlsConfig": { + "target": "com.amazonaws.cloudfront#OriginMtlsConfig", + "traits": { + "smithy.api#documentation": "

Configures mutual TLS authentication between CloudFront and your origin server.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A custom origin. A custom origin is any origin that is not an Amazon S3 bucket, with one exception. An Amazon S3 bucket that is configured with static website hosting is a custom origin.

" + } + }, + "com.amazonaws.cloudfront#CustomizationActionType": { + "type": "enum", + "members": { + "override": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "override" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.cloudfront#Customizations": { + "type": "structure", + "members": { + "WebAcl": { + "target": "com.amazonaws.cloudfront#WebAclCustomization", + "traits": { + "smithy.api#documentation": "

The WAF web ACL.

" + } + }, + "Certificate": { + "target": "com.amazonaws.cloudfront#Certificate", + "traits": { + "smithy.api#documentation": "

The Certificate Manager (ACM) certificate.

" + } + }, + "GeoRestrictions": { + "target": "com.amazonaws.cloudfront#GeoRestrictionCustomization", + "traits": { + "smithy.api#documentation": "

The geographic restrictions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Customizations for the distribution tenant. For each distribution tenant, you can specify the geographic restrictions, and the Amazon Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are specific values that you can override or disable from the multi-tenant distribution that was used to create the distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of ID for the origin that you want CloudFront to route requests to when they use the default cache behavior.

", + "smithy.api#required": {} + } + }, + "TrustedSigners": { + "target": "com.amazonaws.cloudfront#TrustedSigners", + "traits": { + "smithy.api#documentation": "

We recommend using TrustedKeyGroups instead of TrustedSigners.

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A list of Amazon Web Services account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies.

When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer's Amazon Web Services account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide.

" + } + }, + "TrustedKeyGroups": { + "target": "com.amazonaws.cloudfront#TrustedKeyGroups", + "traits": { + "smithy.api#documentation": "

A list of key groups that CloudFront can use to validate signed URLs or signed cookies.

When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide.

" + } + }, + "ViewerProtocolPolicy": { + "target": "com.amazonaws.cloudfront#ViewerProtocolPolicy", + "traits": { + "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. You can specify the following options:

  • allow-all: Viewers can use HTTP or HTTPS.

  • redirect-to-https: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  • https-only: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the Amazon CloudFront Developer Guide.

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Managing Cache Expiration in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "AllowedMethods": { + "target": "com.amazonaws.cloudfront#AllowedMethods" + }, + "SmoothStreaming": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false. If you specify true for SmoothStreaming, you can still distribute other content using this cache behavior if the content matches the value of PathPattern.

" + } + }, + "Compress": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

" + } + }, + "LambdaFunctionAssociations": { + "target": "com.amazonaws.cloudfront#LambdaFunctionAssociations", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.

" + } + }, + "FunctionAssociations": { + "target": "com.amazonaws.cloudfront#FunctionAssociations", + "traits": { + "smithy.api#documentation": "

A list of CloudFront functions that are associated with this cache behavior. Your functions must be published to the LIVE stage to associate them with a cache behavior.

" + } + }, + "FieldLevelEncryptionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of ID for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior.

" + } + }, + "RealtimeLogConfigArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see Real-time logs in the Amazon CloudFront Developer Guide.

" + } + }, + "CachePolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the cache policy that is attached to the default cache behavior. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId.

" + } + }, + "OriginRequestPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide.

" + } + }, + "ResponseHeadersPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for a response headers policy.

" + } + }, + "GrpcConfig": { + "target": "com.amazonaws.cloudfront#GrpcConfig", + "traits": { + "smithy.api#documentation": "

The gRPC configuration for your cache behavior.

" + } + }, + "ForwardedValues": { + "target": "com.amazonaws.cloudfront#ForwardedValues", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see Working with policies in the Amazon CloudFront Developer Guide.

If you want to include values in the cache key, use a cache policy. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide.

A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId.

A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers.

" + } + }, + "MinTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the MinTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin (under Headers, if you specify 1 for Quantity and * for Name).

" + } + }, + "DefaultTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the DefaultTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

" + } + }, + "MaxTTL": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use the MaxTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide.

The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if request URLs don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

If your minimum TTL is greater than 0, CloudFront will cache content for at least the duration specified in the cache policy's minimum TTL, even if the Cache-Control: no-cache, no-store, or private directives are present in the origin headers.

" + } + }, + "com.amazonaws.cloudfront#DeleteAnycastIpList": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteAnycastIpListRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an Anycast static IP list.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/anycast-ip-list/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteAnycastIpListRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the Anycast static IP list that you are deleting.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteCachePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteCachePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CachePolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a cache policy.

You cannot delete a cache policy if it's attached to a cache behavior. First update your distributions to remove the cache policy from all cache behaviors, then delete the cache policy.

To delete a cache policy, you must provide the policy's identifier and version. To get these values, you can use ListCachePolicies or GetCachePolicy.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/cache-policy/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteCachePolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the cache policy that you are deleting. To get the identifier, you can use ListCachePolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the cache policy that you are deleting. The version is the cache policy's ETag value, which you can get using ListCachePolicies, GetCachePolicy, or GetCachePolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteCloudFrontOriginAccessIdentity": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteCloudFrontOriginAccessIdentityRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityInUse" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Delete an origin access identity.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteCloudFrontOriginAccessIdentityRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The origin access identity's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header you received from a previous GET or PUT request. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

Deletes a origin access identity.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteConnectionFunctionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a connection function.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/connection-function/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteConnectionFunctionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The connection function's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the connection function you are deleting.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteConnectionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteConnectionGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResourceNotDisabled" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a connection group.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/connection-group/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteConnectionGroupRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the connection group to delete.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteContinuousDeploymentPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteContinuousDeploymentPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a continuous deployment policy.

You cannot delete a continuous deployment policy that's attached to a primary distribution. First update your distribution to remove the continuous deployment policy, then you can delete the policy.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteContinuousDeploymentPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the continuous deployment policy that you are deleting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the continuous deployment policy that you are deleting.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteDistributionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#DistributionNotDisabled" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResourceInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Delete a distribution.

Before you can delete a distribution, you must disable it, which requires permission to update the distribution. Once deleted, a distribution cannot be recovered.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/distribution/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteDistributionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when you disabled the distribution. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

This action deletes a web distribution. To delete a web distribution using the CloudFront API, perform the following steps.

To delete a web distribution using the CloudFront API:

  1. Disable the web distribution

  2. Submit a GET Distribution Config request to get the current configuration and the Etag header for the distribution.

  3. Update the XML document that was returned in the response to your GET Distribution Config request to change the value of Enabled to false.

  4. Submit a PUT Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Distribution Config request in Step 2.

  5. Review the response to the PUT Distribution Config request to confirm that the distribution was successfully disabled.

  6. Submit a GET Distribution request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

  7. Submit a DELETE Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Distribution Config request in Step 6.

  8. Review the response to your DELETE Distribution request to confirm that the distribution was successfully deleted.

For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteDistributionTenantRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResourceNotDisabled" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a distribution tenant. If you use this API operation to delete a distribution tenant that is currently enabled, the request will fail.

To delete a distribution tenant, you must first disable the distribution tenant by using the UpdateDistributionTenant API operation.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/distribution-tenant/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteDistributionTenantRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the distribution tenant. This value is returned in the response of the GetDistributionTenant API operation.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionConfigRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfigInUse" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Remove a field-level encryption configuration.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/field-level-encryption/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the configuration you want to delete from CloudFront.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the configuration identity to delete. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileInUse" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Remove a field-level encryption profile.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteFieldLevelEncryptionProfileRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Request the ID of the profile you want to delete from CloudFront.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the profile to delete. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteFunctionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#FunctionInUse" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a CloudFront function.

You cannot delete a function if it's associated with a cache behavior. First, update your distributions to remove the function association from all cache behaviors, then delete the function.

To delete a function, you must provide the function's name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/function/{Name}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function that you are deleting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the function that you are deleting, which you can get using DescribeFunction.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteKeyGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteKeyGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResourceInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a key group.

You cannot delete a key group that is referenced in a cache behavior. First update your distributions to remove the key group from all cache behaviors, then delete the key group.

To delete a key group, you must provide the key group's identifier and version. To get these values, use ListKeyGroups followed by GetKeyGroup or GetKeyGroupConfig.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/key-group/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteKeyGroupRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the key group that you are deleting. To get the identifier, use ListKeyGroups.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the key group that you are deleting. The version is the key group's ETag value. To get the ETag, use GetKeyGroup or GetKeyGroupConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteKeyValueStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteKeyValueStoreRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the key value store to delete.

", + "smithy.api#examples": [ + { + "title": "To delete a KeyValueStore", + "documentation": "Use the following command to delete a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "IfMatch": "ETVPDKIKX0DER" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/key-value-store/{Name}", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudfront#DeleteKeyValueStoreRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#KeyValueStoreName", + "traits": { + "smithy.api#documentation": "

The name of the key value store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The key value store to delete, if a match occurs.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteMonitoringSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchMonitoringSubscription" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Disables additional CloudWatch metrics for the specified CloudFront distribution.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution that you are disabling metrics for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteMonitoringSubscriptionResult": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DeleteOriginAccessControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteOriginAccessControlRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#OriginAccessControlInUse" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a CloudFront origin access control.

You cannot delete an origin access control if it's in use. First, update all distributions to remove the origin access control from all origins, then delete the origin access control.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/origin-access-control/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteOriginAccessControlRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control that you are deleting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the origin access control that you are deleting.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteOriginRequestPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteOriginRequestPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an origin request policy.

You cannot delete an origin request policy if it's attached to any cache behaviors. First update your distributions to remove the origin request policy from all cache behaviors, then delete the origin request policy.

To delete an origin request policy, you must provide the policy's identifier and version. To get the identifier, you can use ListOriginRequestPolicies or GetOriginRequestPolicy.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteOriginRequestPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the origin request policy that you are deleting. To get the identifier, you can use ListOriginRequestPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the origin request policy that you are deleting. The version is the origin request policy's ETag value, which you can get using ListOriginRequestPolicies, GetOriginRequestPolicy, or GetOriginRequestPolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeletePublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeletePublicKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#PublicKeyInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Remove a public key you previously added to CloudFront.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/public-key/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeletePublicKeyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the public key you want to remove from CloudFront.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the public key identity to delete. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteRealtimeLogConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteRealtimeLogConfigRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a real-time log configuration.

You cannot delete a real-time log configuration if it's attached to a cache behavior. First update your distributions to remove the real-time log configuration from all cache behaviors, then delete the real-time log configuration.

To delete a real-time log configuration, you can provide the configuration's name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to delete.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/delete-realtime-log-config", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteRealtimeLogConfigRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the real-time log configuration to delete.

" + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the real-time log configuration to delete.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteResourcePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the resource policy attached to the CloudFront resource.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/delete-resource-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DeleteResourcePolicyRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudFront resource for which the resource policy should be deleted.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteResponseHeadersPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteResponseHeadersPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a response headers policy.

You cannot delete a response headers policy if it's attached to a cache behavior. First update your distributions to remove the response headers policy from all cache behaviors, then delete the response headers policy.

To delete a response headers policy, you must provide the policy's identifier and version. To get these values, you can use ListResponseHeadersPolicies or GetResponseHeadersPolicy.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteResponseHeadersPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the response headers policy that you are deleting.

To get the identifier, you can use ListResponseHeadersPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the response headers policy that you are deleting.

The version is the response headers policy's ETag value, which you can get using ListResponseHeadersPolicies, GetResponseHeadersPolicy, or GetResponseHeadersPolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteStreamingDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteStreamingDistributionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#StreamingDistributionNotDisabled" + } + ], + "traits": { + "smithy.api#documentation": "

Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps.

To delete an RTMP distribution using the CloudFront API:

  1. Disable the RTMP distribution.

  2. Submit a GET Streaming Distribution Config request to get the current configuration and the Etag header for the distribution.

  3. Update the XML document that was returned in the response to your GET Streaming Distribution Config request to change the value of Enabled to false.

  4. Submit a PUT Streaming Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  5. Review the response to the PUT Streaming Distribution Config request to confirm that the distribution was successfully disabled.

  6. Submit a GET Streaming Distribution Config request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

  7. Submit a DELETE Streaming Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  8. Review the response to your DELETE Streaming Distribution request to confirm that the distribution was successfully deleted.

For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/streaming-distribution/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteStreamingDistributionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when you disabled the streaming distribution. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to delete a streaming distribution.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteTrustStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteTrustStoreRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a trust store.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/trust-store/{Id}", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#DeleteTrustStoreRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The trust store's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the trust store you are deleting.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteVpcOrigin": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DeleteVpcOriginRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DeleteVpcOriginResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotDeleteEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalDelete" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Delete an Amazon CloudFront VPC origin.

", + "smithy.api#examples": [ + { + "title": "To delete a VPC origin", + "documentation": "The following command deletes a VPC origin:", + "input": { + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "IfMatch": "E1F83G8C2ARO7P" + }, + "output": { + "VpcOrigin": { + "Status": "Deploying", + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "OriginSslProtocols": { + "Items": [ + "TLSv1.1", + "TLSv1.2" + ], + "Quantity": 2 + }, + "OriginProtocolPolicy": "match-viewer", + "HTTPPort": 80, + "HTTPSPort": 443, + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d" + }, + "CreatedTime": "2024-10-15T17:19:42.318Z", + "LastModifiedTime": "2024-10-15T17:57:08.965Z", + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "Arn": "arn:aws:cloudfront::123456789012:vpcorigin/vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "ETag": "E1PA6795UKMFR9" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/2020-05-31/vpc-origin/{Id}", + "code": 202 + } + } + }, + "com.amazonaws.cloudfront#DeleteVpcOriginRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier of the VPC origin to delete. This is the ETag value returned in the response to GetVpcOrigin.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DeleteVpcOriginResult": { + "type": "structure", + "members": { + "VpcOrigin": { + "target": "com.amazonaws.cloudfront#VpcOrigin", + "traits": { + "smithy.api#documentation": "

The VPC origin.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ETag.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DescribeConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DescribeConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DescribeConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a connection function.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/connection-function/{Identifier}/describe", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DescribeConnectionFunctionRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function's identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The connection function's stage.

", + "smithy.api#httpQuery": "Stage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DescribeConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionSummary": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#documentation": "

The connection function's summary.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the connection function.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DescribeFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DescribeFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DescribeFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets configuration information and metadata about a CloudFront function, but not the function's code. To get a function's code, use GetFunction.

To get configuration information and metadata about a function, you must provide the function's name and stage. To get these values, you can use ListFunctions.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/function/{Name}/describe", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DescribeFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function that you are getting information about.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The function's stage, either DEVELOPMENT or LIVE.

", + "smithy.api#httpQuery": "Stage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DescribeFunctionResult": { + "type": "structure", + "members": { + "FunctionSummary": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about a CloudFront function.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the CloudFront function.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DescribeKeyValueStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DescribeKeyValueStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DescribeKeyValueStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the key value store and its configuration.

", + "smithy.api#examples": [ + { + "title": "To describe a KeyValueStore", + "documentation": "Use the following command to describe a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name" + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-key-valuestore-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:20:33.056Z" + }, + "ETag": "ETVPDKIKX0DER" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/key-value-store/{Name}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DescribeKeyValueStoreRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#KeyValueStoreName", + "traits": { + "smithy.api#documentation": "

The name of the key value store.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DescribeKeyValueStoreResult": { + "type": "structure", + "members": { + "KeyValueStore": { + "target": "com.amazonaws.cloudfront#KeyValueStore", + "traits": { + "smithy.api#documentation": "

The resulting key value store.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ETag of the resulting key value store.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACL": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Disassociates a distribution tenant from the WAF web ACL.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}/disassociate-web-acl", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant that you're disassociating from the WAF web ACL. This is the ETag value returned in the response to the GetDistributionTenant API operation.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionTenantWebACLResult": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionWebACL": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#DisassociateDistributionWebACLRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#DisassociateDistributionWebACLResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Disassociates a distribution from the WAF web ACL.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/disassociate-web-acl", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionWebACLRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the distribution that you're disassociating from the WAF web ACL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#DisassociateDistributionWebACLResult": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#Distribution": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's identifier. For example: E1U5RQF7T870K0.

", + "smithy.api#required": {} + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's status. When the status is Deployed, the distribution's information is fully propagated to all CloudFront edge locations.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the distribution was last modified.

", + "smithy.api#required": {} + } + }, + "InProgressInvalidationBatches": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of invalidation batches currently in progress.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's CloudFront domain name. For example: d111111abcdef8.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "ActiveTrustedSigners": { + "target": "com.amazonaws.cloudfront#ActiveTrustedSigners", + "traits": { + "smithy.api#documentation": "

We recommend using TrustedKeyGroups instead of TrustedSigners.

This field contains a list of Amazon Web Services account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.

" + } + }, + "ActiveTrustedKeyGroups": { + "target": "com.amazonaws.cloudfront#ActiveTrustedKeyGroups", + "traits": { + "smithy.api#documentation": "

This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.

" + } + }, + "DistributionConfig": { + "target": "com.amazonaws.cloudfront#DistributionConfig", + "traits": { + "smithy.api#documentation": "

The distribution's configuration.

", + "smithy.api#required": {} + } + }, + "AliasICPRecordals": { + "target": "com.amazonaws.cloudfront#AliasICPRecordals", + "traits": { + "smithy.api#documentation": "

Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions.

For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with Amazon Web Services services in China.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery.

" + } + }, + "com.amazonaws.cloudfront#DistributionAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The caller reference you attempted to create the distribution with is associated with another distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.

If the value of CallerReference is new (regardless of the content of the DistributionConfig object), CloudFront creates a new distribution.

If CallerReference is a value that you already sent in a previous request to create a distribution, CloudFront returns a DistributionAlreadyExists error.

", + "smithy.api#required": {} + } + }, + "Aliases": { + "target": "com.amazonaws.cloudfront#Aliases", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.

" + } + }, + "DefaultRootObject": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is https://www.example.com, you can specify CloudFront to return the index.html file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, https://www.example.com/product-description.html). A default root object avoids exposing the contents of your distribution.

You can specify the object name or a path to the object name (for example, index.html or exampleFolderName/index.html). Your string can't begin with a forward slash (/). Only specify the object name or the path to the object.

If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element.

To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element.

To replace the default root object, update the distribution configuration and specify the new object.

For more information about the default root object, see Specify a default root object in the Amazon CloudFront Developer Guide.

" + } + }, + "Origins": { + "target": "com.amazonaws.cloudfront#Origins", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about origins for this distribution.

", + "smithy.api#required": {} + } + }, + "OriginGroups": { + "target": "com.amazonaws.cloudfront#OriginGroups", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about origin groups for this distribution.

" + } + }, + "DefaultCacheBehavior": { + "target": "com.amazonaws.cloudfront#DefaultCacheBehavior", + "traits": { + "smithy.api#documentation": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", + "smithy.api#required": {} + } + }, + "CacheBehaviors": { + "target": "com.amazonaws.cloudfront#CacheBehaviors", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more CacheBehavior elements.

" + } + }, + "CustomErrorResponses": { + "target": "com.amazonaws.cloudfront#CustomErrorResponses", + "traits": { + "smithy.api#documentation": "

A complex type that controls the following:

  • Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer.

  • How long CloudFront caches HTTP status codes in the 4xx and 5xx range.

For more information about custom error pages, see Customizing Error Responses in the Amazon CloudFront Developer Guide.

" + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#CommentType", + "traits": { + "smithy.api#documentation": "

A comment to describe the distribution. The comment cannot be longer than 128 characters.

", + "smithy.api#required": {} + } + }, + "Logging": { + "target": "com.amazonaws.cloudfront#LoggingConfig", + "traits": { + "smithy.api#documentation": "

A complex type that controls whether access logs are written for the distribution.

For more information about logging, see Access Logs in the Amazon CloudFront Developer Guide.

" + } + }, + "PriceClass": { + "target": "com.amazonaws.cloudfront#PriceClass", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations.

If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance.

For more information about price classes, see Choosing the Price Class for a CloudFront Distribution in the Amazon CloudFront Developer Guide. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront Pricing.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

From this field, you can enable or disable the selected distribution.

", + "smithy.api#required": {} + } + }, + "ViewerCertificate": { + "target": "com.amazonaws.cloudfront#ViewerCertificate", + "traits": { + "smithy.api#documentation": "

A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.

" + } + }, + "Restrictions": { + "target": "com.amazonaws.cloudfront#Restrictions", + "traits": { + "smithy.api#documentation": "

A complex type that identifies ways in which you want to restrict distribution of your content.

" + } + }, + "WebACLId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Multi-tenant distributions only support WAF V2 web ACLs.

A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. To specify a web ACL created using WAF Classic, use the ACL ID, for example a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the WAF Developer Guide.

" + } + }, + "HttpVersion": { + "target": "com.amazonaws.cloudfront#HttpVersion", + "traits": { + "smithy.api#documentation": "

(Optional) Specify the HTTP version(s) that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see Connection Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, see Supported protocols and ciphers between viewers and CloudFront.

" + } + }, + "IsIPV6Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

To use this field for a multi-tenant distribution, use a connection group instead. For more information, see ConnectionGroup.

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.

In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide.

If you're using an Route 53 Amazon Web Services Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:

  • You enable IPv6 for the distribution

  • You're using alternate domain names in the URLs for your objects

For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Route 53 Amazon Web Services Integration Developer Guide.

If you created a CNAME resource record set, either with Route 53 Amazon Web Services Integration or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.

" + } + }, + "ContinuousDeploymentPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

The identifier of a continuous deployment policy. For more information, see CreateContinuousDeploymentPolicy.

" + } + }, + "Staging": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A Boolean that indicates whether this is a staging distribution. When this value is true, this is a staging distribution. When this value is false, this is not a staging distribution.

" + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

To use this field for a multi-tenant distribution, use a connection group instead. For more information, see ConnectionGroup.

ID of the Anycast static IP list that is associated with the distribution.

" + } + }, + "TenantConfig": { + "target": "com.amazonaws.cloudfront#TenantConfig", + "traits": { + "smithy.api#documentation": "

This field only supports multi-tenant distributions. You can't specify this field for standard distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A distribution tenant configuration.

" + } + }, + "ConnectionMode": { + "target": "com.amazonaws.cloudfront#ConnectionMode", + "traits": { + "smithy.api#documentation": "

This field specifies whether the connection mode is through a standard distribution (direct) or a multi-tenant distribution with distribution tenants (tenant-only).

" + } + }, + "ViewerMtlsConfig": { + "target": "com.amazonaws.cloudfront#ViewerMtlsConfig", + "traits": { + "smithy.api#documentation": "

The distribution's viewer mTLS configuration.

" + } + }, + "ConnectionFunctionAssociation": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionAssociation", + "traits": { + "smithy.api#documentation": "

The distribution's connection function association.

" + } + }, + "CacheTagConfig": { + "target": "com.amazonaws.cloudfront#CacheTagConfig", + "traits": { + "smithy.api#documentation": "

Configuration for cache tag extraction from origin responses. When specified, CloudFront reads the header named in HeaderName from origin responses and stores the comma-separated values as cache tags on the object.

Distributions without CacheTagConfig do not extract tags. When CacheTagConfig is removed from a distribution via UpdateDistribution, CloudFront stops extracting tags from origin responses.

Changing the HeaderName on an existing distribution does not retroactively affect previously cached objects. Tag-based invalidations will not apply to objects already cached using a previous header. To ensure tag invalidations function after updating the header name, use path-based invalidations to recache all objects that use cache tags.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A distribution configuration.

" + } + }, + "com.amazonaws.cloudfront#DistributionConfigWithTags": { + "type": "structure", + "members": { + "DistributionConfig": { + "target": "com.amazonaws.cloudfront#DistributionConfig", + "traits": { + "smithy.api#documentation": "

A distribution configuration.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A distribution Configuration and a list of tags to be associated with the distribution.

" + } + }, + "com.amazonaws.cloudfront#DistributionIdList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value provided in the Marker request field.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Contains the value that you should use in the Marker field of a subsequent request to continue listing distribution IDs where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution IDs requested.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more distribution IDs remain to be listed. If your results were truncated, you can make a subsequent request using the Marker request field to retrieve more distribution IDs in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The total number of distribution IDs returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#DistributionIdListSummary", + "traits": { + "smithy.api#documentation": "

Contains the distribution IDs in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of distribution IDs.

" + } + }, + "com.amazonaws.cloudfront#DistributionIdListSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "DistributionId" + } + } + }, + "com.amazonaws.cloudfront#DistributionIdOwner": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution.

", + "smithy.api#required": {} + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the distribution.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A structure that pairs a CloudFront distribution ID with its owning Amazon Web Services account ID.

" + } + }, + "com.amazonaws.cloudfront#DistributionIdOwnerItemList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DistributionIdOwner", + "traits": { + "smithy.api#xmlName": "DistributionIdOwner" + } + } + }, + "com.amazonaws.cloudfront#DistributionIdOwnerList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of DistributionIdOwner objects. The response includes distributions in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A token used for pagination of results returned in the response. You can use the token from the previous request to define where the current request should begin.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of DistributionIdOwner objects to return.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more DistributionIdOwner objects remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more results in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies the actual number of DistributionIdOwner objects included in the list for the current page.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#DistributionIdOwnerItemList", + "traits": { + "smithy.api#documentation": "

The number of DistributionIdOwner objects.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The list of distribution IDs and the Amazon Web Services accounts that they belong to.

" + } + }, + "com.amazonaws.cloudfront#DistributionList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value you provided for the Marker request parameter.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your distributions where they left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The value you provided for the MaxItems request parameter.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of distributions that were created by the current Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#DistributionSummaryList", + "traits": { + "smithy.api#documentation": "

A complex type that contains one DistributionSummary element for each distribution that was created by the current Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A distribution list.

" + } + }, + "com.amazonaws.cloudfront#DistributionNotDisabled": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified CloudFront distribution is not disabled. You must disable the distribution before you can delete it.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#DistributionResourceId": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the multi-tenant distribution.

" + } + }, + "DistributionTenantId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The IDs for the distribution resources.

" + } + }, + "com.amazonaws.cloudfront#DistributionResourceType": { + "type": "enum", + "members": { + "Distribution": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "distribution" + } + }, + "DistributionTenant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "distribution-tenant" + } + } + } + }, + "com.amazonaws.cloudfront#DistributionSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the distribution. For example: EDFDVBD632BHDS5.

", + "smithy.api#required": {} + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your Amazon Web Services account ID.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current status of the distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time the distribution was last modified.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name that corresponds to the distribution, for example, d111111abcdef8.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "Aliases": { + "target": "com.amazonaws.cloudfront#Aliases", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.

", + "smithy.api#required": {} + } + }, + "Origins": { + "target": "com.amazonaws.cloudfront#Origins", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about origins for this distribution.

", + "smithy.api#required": {} + } + }, + "OriginGroups": { + "target": "com.amazonaws.cloudfront#OriginGroups", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about origin groups for this distribution.

" + } + }, + "DefaultCacheBehavior": { + "target": "com.amazonaws.cloudfront#DefaultCacheBehavior", + "traits": { + "smithy.api#documentation": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", + "smithy.api#required": {} + } + }, + "CacheBehaviors": { + "target": "com.amazonaws.cloudfront#CacheBehaviors", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more CacheBehavior elements.

", + "smithy.api#required": {} + } + }, + "CustomErrorResponses": { + "target": "com.amazonaws.cloudfront#CustomErrorResponses", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more CustomErrorResponses elements.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

The comment originally specified when this distribution was created.

", + "smithy.api#required": {} + } + }, + "PriceClass": { + "target": "com.amazonaws.cloudfront#PriceClass", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

A complex type that contains information about price class for this streaming distribution.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the distribution is enabled to accept user requests for content.

", + "smithy.api#required": {} + } + }, + "ViewerCertificate": { + "target": "com.amazonaws.cloudfront#ViewerCertificate", + "traits": { + "smithy.api#documentation": "

A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.

", + "smithy.api#required": {} + } + }, + "Restrictions": { + "target": "com.amazonaws.cloudfront#Restrictions", + "traits": { + "smithy.api#documentation": "

A complex type that identifies ways in which you want to restrict distribution of your content.

", + "smithy.api#required": {} + } + }, + "WebACLId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Web ACL Id (if any) associated with the distribution.

", + "smithy.api#required": {} + } + }, + "HttpVersion": { + "target": "com.amazonaws.cloudfront#HttpVersion", + "traits": { + "smithy.api#documentation": "

Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 will automatically use an earlier version.

", + "smithy.api#required": {} + } + }, + "IsIPV6Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether CloudFront responds to IPv6 DNS requests with an IPv6 address for your distribution.

", + "smithy.api#required": {} + } + }, + "AliasICPRecordals": { + "target": "com.amazonaws.cloudfront#AliasICPRecordals", + "traits": { + "smithy.api#documentation": "

Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions.

For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with Amazon Web Services services in China.

" + } + }, + "Staging": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that indicates whether this is a staging distribution. When this value is true, this is a staging distribution. When this value is false, this is not a staging distribution.

", + "smithy.api#required": {} + } + }, + "ConnectionMode": { + "target": "com.amazonaws.cloudfront#ConnectionMode", + "traits": { + "smithy.api#documentation": "

This field specifies whether the connection mode is through a standard distribution (direct) or a multi-tenant distribution with distribution tenants (tenant-only).

" + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

ID of the Anycast static IP list that is associated with the distribution.

" + } + }, + "ViewerMtlsConfig": { + "target": "com.amazonaws.cloudfront#ViewerMtlsConfig", + "traits": { + "smithy.api#documentation": "

The distribution's viewer mTLS configuration.

" + } + }, + "ConnectionFunctionAssociation": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionAssociation", + "traits": { + "smithy.api#documentation": "

The distribution's connection function association.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the information about a CloudFront distribution.

" + } + }, + "com.amazonaws.cloudfront#DistributionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DistributionSummary", + "traits": { + "smithy.api#xmlName": "DistributionSummary" + } + } + }, + "com.amazonaws.cloudfront#DistributionTenant": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

" + } + }, + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the multi-tenant distribution.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the distribution tenant.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the distribution tenant.

" + } + }, + "Domains": { + "target": "com.amazonaws.cloudfront#DomainResultList", + "traits": { + "smithy.api#documentation": "

The domains associated with the distribution tenant.

" + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags" + }, + "Customizations": { + "target": "com.amazonaws.cloudfront#Customizations", + "traits": { + "smithy.api#documentation": "

Customizations for the distribution tenant. For each distribution tenant, you can specify the geographic restrictions, and the Amazon Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are specific values that you can override or disable from the multi-tenant distribution that was used to create the distribution tenant.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudfront#Parameters", + "traits": { + "smithy.api#documentation": "

A list of parameter values to add to the resource. A parameter is specified as a key-value pair. A valid parameter value must exist for any parameter that is marked as required in the multi-tenant distribution.

" + } + }, + "ConnectionGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group for the distribution tenant. If you don't specify a connection group, CloudFront uses the default connection group.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the distribution tenant was created.

" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the distribution tenant was updated.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the distribution tenant is in an enabled state. If disabled, the distribution tenant won't serve traffic.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the distribution tenant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#DistributionTenantAssociationFilter": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution ID to filter by. You can find distribution tenants associated with a specific distribution.

" + } + }, + "ConnectionGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group to filter by. You can find distribution tenants associated with a specific connection group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filter by the associated distribution ID or connection group ID.

" + } + }, + "com.amazonaws.cloudfront#DistributionTenantList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DistributionTenantSummary", + "traits": { + "smithy.api#xmlName": "DistributionTenantSummary" + } + } + }, + "com.amazonaws.cloudfront#DistributionTenantSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#required": {} + } + }, + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the multi-tenant distribution. For example: EDFDVBD632BHDS5.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the distribution tenant.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the distribution tenant.

", + "smithy.api#required": {} + } + }, + "Domains": { + "target": "com.amazonaws.cloudfront#DomainResultList", + "traits": { + "smithy.api#documentation": "

The domains associated with the distribution tenant.

", + "smithy.api#required": {} + } + }, + "ConnectionGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group ID for the distribution tenant. If you don't specify a connection group, CloudFront uses the default connection group.

" + } + }, + "Customizations": { + "target": "com.amazonaws.cloudfront#Customizations", + "traits": { + "smithy.api#documentation": "

Customizations for the distribution tenant. For each distribution tenant, you can specify the geographic restrictions, and the Amazon Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are specific values that you can override or disable from the multi-tenant distribution that was used to create the distribution tenant.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the distribution tenant was created.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the distribution tenant was updated.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the distribution tenants are in an enabled state. If disabled, the distribution tenant won't service traffic.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the distribution tenant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the information about a distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#DnsConfiguration": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name that you're verifying.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#DnsConfigurationStatus", + "traits": { + "smithy.api#documentation": "

The status of your domain name.

  • valid-configuration: The domain name is correctly configured and points to the correct routing endpoint of the connection group.

  • invalid-configuration: There is either a missing DNS record or the DNS record exists but it's using an incorrect routing endpoint. Update the DNS record to point to the correct routing endpoint.

  • unknown-configuration: CloudFront can't validate your DNS configuration. This status can appear if CloudFront can't verify the DNS record, or the DNS lookup request failed or timed out.

", + "smithy.api#required": {} + } + }, + "Reason": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Explains the status of the DNS configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The DNS configuration for your domain names.

" + } + }, + "com.amazonaws.cloudfront#DnsConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DnsConfiguration", + "traits": { + "smithy.api#xmlName": "DnsConfiguration" + } + } + }, + "com.amazonaws.cloudfront#DnsConfigurationStatus": { + "type": "enum", + "members": { + "Valid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "valid-configuration" + } + }, + "Invalid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid-configuration" + } + }, + "Unknown": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown-configuration" + } + } + } + }, + "com.amazonaws.cloudfront#DomainConflict": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain used to find existing conflicts for domain configurations.

", + "smithy.api#required": {} + } + }, + "ResourceType": { + "target": "com.amazonaws.cloudfront#DistributionResourceType", + "traits": { + "smithy.api#documentation": "

The CloudFront resource type that has a domain conflict.

", + "smithy.api#required": {} + } + }, + "ResourceId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the resource that has a domain conflict.

", + "smithy.api#required": {} + } + }, + "AccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account for the domain conflict.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the domain conflict. Use this information to determine the affected domain, the related resource, and the affected Amazon Web Services account.

" + } + }, + "com.amazonaws.cloudfront#DomainConflictsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DomainConflict", + "traits": { + "smithy.api#xmlName": "DomainConflicts" + } + } + }, + "com.amazonaws.cloudfront#DomainItem": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The domain for the specified distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#DomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DomainItem" + } + }, + "com.amazonaws.cloudfront#DomainResult": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The specified domain.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#DomainStatus", + "traits": { + "smithy.api#documentation": "

Whether the domain is active or inactive.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details about the domain result.

" + } + }, + "com.amazonaws.cloudfront#DomainResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#DomainResult" + } + }, + "com.amazonaws.cloudfront#DomainStatus": { + "type": "enum", + "members": { + "Active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "Inactive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inactive" + } + } + } + }, + "com.amazonaws.cloudfront#EncryptionEntities": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Number of field pattern items in a field-level encryption content type-profile mapping.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#EncryptionEntityList", + "traits": { + "smithy.api#documentation": "

An array of field patterns in a field-level encryption content type-profile mapping.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Complex data type for field-level encryption profiles that includes all of the encryption entities.

" + } + }, + "com.amazonaws.cloudfront#EncryptionEntity": { + "type": "structure", + "members": { + "PublicKeyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns.

", + "smithy.api#required": {} + } + }, + "ProviderId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The provider associated with the public key being used for encryption. This value must also be provided with the private key for applications to be able to decrypt data.

", + "smithy.api#required": {} + } + }, + "FieldPatterns": { + "target": "com.amazonaws.cloudfront#FieldPatterns", + "traits": { + "smithy.api#documentation": "

Field patterns in a field-level encryption content type profile specify the fields that you want to be encrypted. You can provide the full field name, or any beginning characters followed by a wildcard (*). You can't overlap field patterns. For example, you can't have both ABC* and AB*. Note that field patterns are case-sensitive.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Complex data type for field-level encryption profiles that includes the encryption key and field pattern specifications.

" + } + }, + "com.amazonaws.cloudfront#EncryptionEntityList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#EncryptionEntity", + "traits": { + "smithy.api#xmlName": "EncryptionEntity" + } + } + }, + "com.amazonaws.cloudfront#EndPoint": { + "type": "structure", + "members": { + "StreamType": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The type of data stream where you are sending real-time log data. The only valid value is Kinesis.

", + "smithy.api#required": {} + } + }, + "KinesisStreamConfig": { + "target": "com.amazonaws.cloudfront#KinesisStreamConfig", + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you are sending real-time log data in a real-time log configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you're sending real-time log data in a real-time log configuration.

" + } + }, + "com.amazonaws.cloudfront#EndPointList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#EndPoint" + } + }, + "com.amazonaws.cloudfront#EntityAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity already exists. You must provide a unique entity.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#EntityLimitExceeded": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity limit has been exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#EntityNotFound": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#EntitySizeLimitExceeded": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The entity size limit was exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 413 + } + }, + "com.amazonaws.cloudfront#EventType": { + "type": "enum", + "members": { + "viewer_request": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "viewer-request" + } + }, + "viewer_response": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "viewer-response" + } + }, + "origin_request": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin-request" + } + }, + "origin_response": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin-response" + } + } + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryption": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The configuration ID for a field-level encryption configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last time the field-level encryption configuration was changed.

", + "smithy.api#required": {} + } + }, + "FieldLevelEncryptionConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfig", + "traits": { + "smithy.api#documentation": "

A complex data type that includes the profile configurations specified for field-level encryption.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type that includes the profile configurations and other options specified for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique number that ensures the request can't be replayed.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional comment about the configuration. The comment cannot be longer than 128 characters.

" + } + }, + "QueryArgProfileConfig": { + "target": "com.amazonaws.cloudfront#QueryArgProfileConfig", + "traits": { + "smithy.api#documentation": "

A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.

" + } + }, + "ContentTypeProfileConfig": { + "target": "com.amazonaws.cloudfront#ContentTypeProfileConfig", + "traits": { + "smithy.api#documentation": "

A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type that includes the profile configurations specified for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionConfigAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified configuration for field-level encryption already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionConfigInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified configuration for field-level encryption is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your configurations where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of elements you want in the response body.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of field-level encryption items.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionSummaryList", + "traits": { + "smithy.api#documentation": "

An array of field-level encryption items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

List of field-level encryption configurations.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfile": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last time the field-level encryption profile was updated.

", + "smithy.api#required": {} + } + }, + "FieldLevelEncryptionProfileConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileConfig", + "traits": { + "smithy.api#documentation": "

A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type for field-level encryption profiles.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified profile for field-level encryption already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileConfig": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Profile name for the field-level encryption profile.

", + "smithy.api#required": {} + } + }, + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique number that ensures that the request can't be replayed.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.

" + } + }, + "EncryptionEntities": { + "target": "com.amazonaws.cloudfront#EncryptionEntities", + "traits": { + "smithy.api#documentation": "

A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type of profiles for the field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified profile for field-level encryption is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your profiles where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of field-level encryption profiles you want in the response body.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of field-level encryption profiles.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSummaryList", + "traits": { + "smithy.api#documentation": "

The field-level encryption profile items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

List of field-level encryption profiles.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSizeExceeded": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum size of a profile for field-level encryption was exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

ID for the field-level encryption profile summary.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The time when the field-level encryption profile summary was last updated.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Name for the field-level encryption profile summary.

", + "smithy.api#required": {} + } + }, + "EncryptionEntities": { + "target": "com.amazonaws.cloudfront#EncryptionEntities", + "traits": { + "smithy.api#documentation": "

A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional comment for the field-level encryption profile summary. The comment cannot be longer than 128 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The field-level encryption profile summary.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSummary", + "traits": { + "smithy.api#xmlName": "FieldLevelEncryptionProfileSummary" + } + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique ID of a field-level encryption item.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last time that the summary of field-level encryption items was modified.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional comment about the field-level encryption item. The comment cannot be longer than 128 characters.

" + } + }, + "QueryArgProfileConfig": { + "target": "com.amazonaws.cloudfront#QueryArgProfileConfig", + "traits": { + "smithy.api#documentation": "

A summary of a query argument-profile mapping.

" + } + }, + "ContentTypeProfileConfig": { + "target": "com.amazonaws.cloudfront#ContentTypeProfileConfig", + "traits": { + "smithy.api#documentation": "

A summary of a content type-profile mapping.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a field-level encryption item.

" + } + }, + "com.amazonaws.cloudfront#FieldLevelEncryptionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionSummary", + "traits": { + "smithy.api#xmlName": "FieldLevelEncryptionSummary" + } + } + }, + "com.amazonaws.cloudfront#FieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Field" + } + } + }, + "com.amazonaws.cloudfront#FieldPatternList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "FieldPattern" + } + } + }, + "com.amazonaws.cloudfront#FieldPatterns": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of field-level encryption field patterns.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#FieldPatternList", + "traits": { + "smithy.api#documentation": "

An array of the field-level encryption field patterns.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type that includes the field patterns to match for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#Format": { + "type": "enum", + "members": { + "URLEncoded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "URLEncoded" + } + } + } + }, + "com.amazonaws.cloudfront#ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include query strings in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of QueryString and on the values that you specify for QueryStringCacheKeys, if any:

If you specify true for QueryString and you don't specify any values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin.

If you specify true for QueryString and you specify one or more values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify.

If you specify false for QueryString, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters.

For more information, see Configuring CloudFront to Cache Based on Query String Parameters in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "Cookies": { + "target": "com.amazonaws.cloudfront#CookiePreference", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "Headers": { + "target": "com.amazonaws.cloudfront#Headers", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include headers in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

A complex type that specifies the Headers, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests.

For more information, see Caching Content Based on Request Headers in the Amazon CloudFront Developer Guide.

" + } + }, + "QueryStringCacheKeys": { + "target": "com.amazonaws.cloudfront#QueryStringCacheKeys", + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include query strings in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include values in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide.

If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide.

A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers.

" + } + }, + "com.amazonaws.cloudfront#FrameOptionsList": { + "type": "enum", + "members": { + "DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DENY" + } + }, + "SAMEORIGIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SAMEORIGIN" + } + } + } + }, + "com.amazonaws.cloudfront#FunctionARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 108 + }, + "smithy.api#pattern": "^arn:aws:cloudfront::[0-9]{12}:function\\/[a-zA-Z0-9-_]{1,64}$" + } + }, + "com.amazonaws.cloudfront#FunctionAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A function with the same name already exists in this Amazon Web Services account. To create a function, you must provide a unique name. To update an existing function, use UpdateFunction.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FunctionAssociation": { + "type": "structure", + "members": { + "FunctionARN": { + "target": "com.amazonaws.cloudfront#FunctionARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the function.

", + "smithy.api#required": {} + } + }, + "EventType": { + "target": "com.amazonaws.cloudfront#EventType", + "traits": { + "smithy.api#documentation": "

The event type of the function, either viewer-request or viewer-response. You cannot use origin-facing event types (origin-request and origin-response) with a CloudFront function.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFront function that is associated with a cache behavior in a CloudFront distribution.

" + } + }, + "com.amazonaws.cloudfront#FunctionAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#FunctionAssociation", + "traits": { + "smithy.api#xmlName": "FunctionAssociation" + } + } + }, + "com.amazonaws.cloudfront#FunctionAssociations": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of CloudFront functions in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#FunctionAssociationList", + "traits": { + "smithy.api#documentation": "

The CloudFront functions that are associated with a cache behavior in a CloudFront distribution. Your functions must be published to the LIVE stage to associate them with a cache behavior.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of CloudFront functions that are associated with a cache behavior in a CloudFront distribution. Your functions must be published to the LIVE stage to associate them with a cache behavior.

" + } + }, + "com.amazonaws.cloudfront#FunctionBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40960 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.cloudfront#FunctionConfig": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the function.

", + "smithy.api#required": {} + } + }, + "Runtime": { + "target": "com.amazonaws.cloudfront#FunctionRuntime", + "traits": { + "smithy.api#documentation": "

The function's runtime environment version.

", + "smithy.api#required": {} + } + }, + "KeyValueStoreAssociations": { + "target": "com.amazonaws.cloudfront#KeyValueStoreAssociations", + "traits": { + "smithy.api#documentation": "

The configuration for the key value store associations.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains configuration information about a CloudFront function.

" + } + }, + "com.amazonaws.cloudfront#FunctionEventObject": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 40960 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.cloudfront#FunctionExecutionLogList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.cloudfront#FunctionInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the function because it's attached to one or more cache behaviors.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#FunctionList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing functions where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of functions requested.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of functions returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#FunctionSummaryList", + "traits": { + "smithy.api#documentation": "

Contains the functions in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of CloudFront functions.

" + } + }, + "com.amazonaws.cloudfront#FunctionMetadata": { + "type": "structure", + "members": { + "FunctionARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.

", + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The stage that the function is in, either DEVELOPMENT or LIVE.

When a function is in the DEVELOPMENT stage, you can test the function with TestFunction, and update it with UpdateFunction.

When a function is in the LIVE stage, you can attach the function to a distribution's cache behavior, using the function's ARN.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the function was created.

" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the function was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains metadata about a CloudFront function.

" + } + }, + "com.amazonaws.cloudfront#FunctionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]{1,64}$" + } + }, + "com.amazonaws.cloudfront#FunctionRuntime": { + "type": "enum", + "members": { + "cloudfront_js_1_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloudfront-js-1.0" + } + }, + "cloudfront_js_2_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloudfront-js-2.0" + } + } + } + }, + "com.amazonaws.cloudfront#FunctionSizeLimitExceeded": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The function is too large. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 413 + } + }, + "com.amazonaws.cloudfront#FunctionStage": { + "type": "enum", + "members": { + "DEVELOPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPMENT" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LIVE" + } + } + } + }, + "com.amazonaws.cloudfront#FunctionSummary": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the CloudFront function.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the CloudFront function.

" + } + }, + "FunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#documentation": "

Contains configuration information about a CloudFront function.

", + "smithy.api#required": {} + } + }, + "FunctionMetadata": { + "target": "com.amazonaws.cloudfront#FunctionMetadata", + "traits": { + "smithy.api#documentation": "

Contains metadata about a CloudFront function.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about a CloudFront function.

" + } + }, + "com.amazonaws.cloudfront#FunctionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#xmlName": "FunctionSummary" + } + } + }, + "com.amazonaws.cloudfront#GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": { + "target": "com.amazonaws.cloudfront#GeoRestrictionType", + "traits": { + "smithy.api#documentation": "

The method that you want to use to restrict distribution of your content by country:

  • none: No geo restriction is enabled, meaning access to content is not restricted by client geo location.

  • blacklist: The Location elements specify the countries in which you don't want CloudFront to distribute your content.

  • whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

When geo restriction is enabled, this is the number of countries in your whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and you can omit Items.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#LocationList", + "traits": { + "smithy.api#documentation": "

A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist).

The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country.

CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list on the CloudFront console, which includes both country names and codes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using MaxMind GeoIP databases.

" + } + }, + "com.amazonaws.cloudfront#GeoRestrictionCustomization": { + "type": "structure", + "members": { + "RestrictionType": { + "target": "com.amazonaws.cloudfront#GeoRestrictionType", + "traits": { + "smithy.api#documentation": "

The method that you want to use to restrict distribution of your content by country:

  • none: No geographic restriction is enabled, meaning access to content is not restricted by client geo location.

  • blacklist: The Location elements specify the countries in which you don't want CloudFront to distribute your content.

  • whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content.

", + "smithy.api#required": {} + } + }, + "Locations": { + "target": "com.amazonaws.cloudfront#LocationList", + "traits": { + "smithy.api#documentation": "

The locations for geographic restrictions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The customizations that you specified for the distribution tenant for geographic restrictions.

" + } + }, + "com.amazonaws.cloudfront#GeoRestrictionType": { + "type": "enum", + "members": { + "blacklist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blacklist" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.cloudfront#GetAnycastIpList": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetAnycastIpListRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetAnycastIpListResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets an Anycast static IP list.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/anycast-ip-list/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetAnycastIpListRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetAnycastIpListResult": { + "type": "structure", + "members": { + "AnycastIpList": { + "target": "com.amazonaws.cloudfront#AnycastIpList", + "traits": { + "smithy.api#documentation": "

The Anycast static IP list details.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the Anycast static IP list.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetCachePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetCachePolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetCachePolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a cache policy, including the following metadata:

  • The policy's identifier.

  • The date and time when the policy was last modified.

To get a cache policy, you must provide the policy's identifier. If the cache policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/cache-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetCachePolicyConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetCachePolicyConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetCachePolicyConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a cache policy configuration.

To get a cache policy configuration, you must provide the policy's identifier. If the cache policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/cache-policy/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetCachePolicyConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the cache policy. If the cache policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetCachePolicyConfigResult": { + "type": "structure", + "members": { + "CachePolicyConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyConfig", + "traits": { + "smithy.api#documentation": "

The cache policy configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the cache policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetCachePolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the cache policy. If the cache policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetCachePolicyResult": { + "type": "structure", + "members": { + "CachePolicy": { + "target": "com.amazonaws.cloudfront#CachePolicy", + "traits": { + "smithy.api#documentation": "

The cache policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the cache policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentity": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity" + } + ], + "traits": { + "smithy.api#documentation": "

Get the information about an origin access identity.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity" + } + ], + "traits": { + "smithy.api#documentation": "

Get the configuration information about an origin access identity.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identity's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The origin access identity's configuration information. For more information, see CloudFrontOriginAccessIdentityConfig.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityConfigResult": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityConfig", + "traits": { + "smithy.api#documentation": "

The origin access identity's configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identity's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to get an origin access identity's information.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetCloudFrontOriginAccessIdentityResult": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentity", + "traits": { + "smithy.api#documentation": "

The origin access identity's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin access identity's information. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a connection function.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/connection-function/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetConnectionFunctionRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function's identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The connection function's stage.

", + "smithy.api#httpQuery": "Stage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The connection function's code.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the connection function.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ContentType": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The connection function's content type.

", + "smithy.api#httpHeader": "Content-Type" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetConnectionGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetConnectionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a connection group.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/connection-group/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a connection group by using the endpoint that you specify.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/connection-group", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointRequest": { + "type": "structure", + "members": { + "RoutingEndpoint": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The routing endpoint for the target connection group, such as d111111abcdef8.cloudfront.net.

", + "smithy.api#httpQuery": "RoutingEndpoint", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionGroupByRoutingEndpointResult": { + "type": "structure", + "members": { + "ConnectionGroup": { + "target": "com.amazonaws.cloudfront#ConnectionGroup", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the connection group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionGroupRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID, name, or Amazon Resource Name (ARN) of the connection group.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetConnectionGroupResult": { + "type": "structure", + "members": { + "ConnectionGroup": { + "target": "com.amazonaws.cloudfront#ConnectionGroup", + "traits": { + "smithy.api#documentation": "

The connection group that you retrieved.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the connection group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a continuous deployment policy, including metadata (the policy's identifier and the date and time when the policy was last modified).

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets configuration information about a continuous deployment policy.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the continuous deployment policy whose configuration you are getting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyConfigResult": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicyConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyConfig", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the continuous deployment policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the continuous deployment policy that you are getting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetContinuousDeploymentPolicyResult": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicy": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicy", + "traits": { + "smithy.api#documentation": "

A continuous deployment policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the continuous deployment policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

Get the information about a distribution.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution/{Id}", + "code": 200 + }, + "smithy.waiters#waitable": { + "DistributionDeployed": { + "documentation": "Wait until a distribution is deployed.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Distribution.Status", + "expected": "Deployed", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 60, + "maxDelay": 2100 + } + } + } + }, + "com.amazonaws.cloudfront#GetDistributionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetDistributionConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetDistributionConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

Get the configuration information about a distribution.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetDistributionConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's ID. If the ID is empty, an empty distribution configuration is returned.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to get a distribution configuration.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionConfigResult": { + "type": "structure", + "members": { + "DistributionConfig": { + "target": "com.amazonaws.cloudfront#DistributionConfig", + "traits": { + "smithy.api#documentation": "

The distribution's configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's ID. If the ID is empty, an empty distribution configuration is returned.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to get a distribution's information.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#documentation": "

The distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution's information. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a distribution tenant.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetDistributionTenantByDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetDistributionTenantByDomainRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetDistributionTenantByDomainResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a distribution tenant by the associated domain.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetDistributionTenantByDomainRequest": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A domain name associated with the target distribution tenant.

", + "smithy.api#httpQuery": "domain", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionTenantByDomainResult": { + "type": "structure", + "members": { + "DistributionTenant": { + "target": "com.amazonaws.cloudfront#DistributionTenant", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionTenantRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the distribution tenant. You can specify the ARN, ID, or name of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetDistributionTenantResult": { + "type": "structure", + "members": { + "DistributionTenant": { + "target": "com.amazonaws.cloudfront#DistributionTenant", + "traits": { + "smithy.api#documentation": "

The distribution tenant that you retrieved.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + } + ], + "traits": { + "smithy.api#documentation": "

Get the field-level encryption configuration information.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + } + ], + "traits": { + "smithy.api#documentation": "

Get the field-level encryption configuration information.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Request the ID for the field-level encryption configuration information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionConfigResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfig", + "traits": { + "smithy.api#documentation": "

Return the field-level encryption configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + } + ], + "traits": { + "smithy.api#documentation": "

Get the field-level encryption profile information.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + } + ], + "traits": { + "smithy.api#documentation": "

Get the field-level encryption profile configuration information.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Get the ID for the field-level encryption profile configuration information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileConfigResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfileConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileConfig", + "traits": { + "smithy.api#documentation": "

Return the field-level encryption profile configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field-level encryption profile configuration result. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Get the ID for the field-level encryption profile information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionProfileResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfile": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfile", + "traits": { + "smithy.api#documentation": "

Return the field-level encryption profile information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Request the ID for the field-level encryption configuration information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetFieldLevelEncryptionResult": { + "type": "structure", + "members": { + "FieldLevelEncryption": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryption", + "traits": { + "smithy.api#documentation": "

Return the field-level encryption configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the code of a CloudFront function. To get configuration information and metadata about a function, use DescribeFunction.

To get a function's code, you must provide the function's name and stage. To get these values, you can use ListFunctions.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/function/{Name}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function whose code you are getting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The function's stage, either DEVELOPMENT or LIVE.

", + "smithy.api#httpQuery": "Stage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetFunctionResult": { + "type": "structure", + "members": { + "FunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The function code of a CloudFront function.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the CloudFront function.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ContentType": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The content type (media type) of the response.

", + "smithy.api#httpHeader": "Content-Type" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetInvalidation": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetInvalidationRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetInvalidationResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchInvalidation" + } + ], + "traits": { + "smithy.api#documentation": "

Get the information about an invalidation.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation/{Id}", + "code": 200 + }, + "smithy.waiters#waitable": { + "InvalidationCompleted": { + "documentation": "Wait until an invalidation has completed.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Invalidation.Status", + "expected": "Completed", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 20, + "maxDelay": 600 + } + } + } + }, + "com.amazonaws.cloudfront#GetInvalidationForDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchInvalidation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a specific invalidation for a distribution tenant.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{DistributionTenantId}/invalidation/{Id}", + "code": 200 + }, + "smithy.waiters#waitable": { + "InvalidationForDistributionTenantCompleted": { + "documentation": "Wait until an invalidation for distribution tenant has completed.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Invalidation.Status", + "expected": "Completed", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 20, + "maxDelay": 600 + } + } + } + }, + "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantRequest": { + "type": "structure", + "members": { + "DistributionTenantId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the invalidation to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetInvalidationForDistributionTenantResult": { + "type": "structure", + "members": { + "Invalidation": { + "target": "com.amazonaws.cloudfront#Invalidation", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetInvalidationRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the invalidation request, for example, IDFDVBD632BHDS5.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to get an invalidation's information.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetInvalidationResult": { + "type": "structure", + "members": { + "Invalidation": { + "target": "com.amazonaws.cloudfront#Invalidation", + "traits": { + "smithy.api#documentation": "

The invalidation's information. For more information, see Invalidation Complex Type.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetKeyGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetKeyGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetKeyGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a key group, including the date and time when the key group was last modified.

To get a key group, you must provide the key group's identifier. If the key group is referenced in a distribution's cache behavior, you can get the key group's identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/key-group/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetKeyGroupConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetKeyGroupConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetKeyGroupConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a key group configuration.

To get a key group configuration, you must provide the key group's identifier. If the key group is referenced in a distribution's cache behavior, you can get the key group's identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/key-group/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetKeyGroupConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the key group whose configuration you are getting. To get the identifier, use ListKeyGroups.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetKeyGroupConfigResult": { + "type": "structure", + "members": { + "KeyGroupConfig": { + "target": "com.amazonaws.cloudfront#KeyGroupConfig", + "traits": { + "smithy.api#documentation": "

The key group configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the key group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetKeyGroupRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the key group that you are getting. To get the identifier, use ListKeyGroups.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetKeyGroupResult": { + "type": "structure", + "members": { + "KeyGroup": { + "target": "com.amazonaws.cloudfront#KeyGroup", + "traits": { + "smithy.api#documentation": "

The key group.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the key group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetManagedCertificateDetails": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetManagedCertificateDetailsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetManagedCertificateDetailsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Gets details about the CloudFront managed ACM certificate.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/managed-certificate/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetManagedCertificateDetailsRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the distribution tenant. You can specify the ARN, ID, or name of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetManagedCertificateDetailsResult": { + "type": "structure", + "members": { + "ManagedCertificateDetails": { + "target": "com.amazonaws.cloudfront#ManagedCertificateDetails", + "traits": { + "smithy.api#documentation": "

Contains details about the CloudFront managed ACM certificate.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetMonitoringSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetMonitoringSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetMonitoringSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchMonitoringSubscription" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetMonitoringSubscriptionRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution that you are getting metrics information for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetMonitoringSubscriptionResult": { + "type": "structure", + "members": { + "MonitoringSubscription": { + "target": "com.amazonaws.cloudfront#MonitoringSubscription", + "traits": { + "smithy.api#documentation": "

A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetOriginAccessControlRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetOriginAccessControlResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginAccessControl" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a CloudFront origin access control, including its unique identifier.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-control/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControlConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetOriginAccessControlConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetOriginAccessControlConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginAccessControl" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a CloudFront origin access control configuration.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-control/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControlConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControlConfigResult": { + "type": "structure", + "members": { + "OriginAccessControlConfig": { + "target": "com.amazonaws.cloudfront#OriginAccessControlConfig", + "traits": { + "smithy.api#documentation": "

Contains an origin access control configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the origin access control.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControlRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetOriginAccessControlResult": { + "type": "structure", + "members": { + "OriginAccessControl": { + "target": "com.amazonaws.cloudfront#OriginAccessControl", + "traits": { + "smithy.api#documentation": "

Contains an origin access control, including its unique identifier.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the origin access control.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets an origin request policy, including the following metadata:

  • The policy's identifier.

  • The date and time when the policy was last modified.

To get an origin request policy, you must provide the policy's identifier. If the origin request policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicyConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets an origin request policy configuration.

To get an origin request policy configuration, you must provide the policy's identifier. If the origin request policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-request-policy/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the origin request policy. If the origin request policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicyConfigResult": { + "type": "structure", + "members": { + "OriginRequestPolicyConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyConfig", + "traits": { + "smithy.api#documentation": "

The origin request policy configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin request policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the origin request policy. If the origin request policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetOriginRequestPolicyResult": { + "type": "structure", + "members": { + "OriginRequestPolicy": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicy", + "traits": { + "smithy.api#documentation": "

The origin request policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin request policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetPublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetPublicKeyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a public key.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/public-key/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetPublicKeyConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetPublicKeyConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetPublicKeyConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a public key configuration.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/public-key/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetPublicKeyConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the public key whose configuration you are getting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetPublicKeyConfigResult": { + "type": "structure", + "members": { + "PublicKeyConfig": { + "target": "com.amazonaws.cloudfront#PublicKeyConfig", + "traits": { + "smithy.api#documentation": "

A public key configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the public key configuration.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetPublicKeyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the public key you are getting.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetPublicKeyResult": { + "type": "structure", + "members": { + "PublicKey": { + "target": "com.amazonaws.cloudfront#PublicKey", + "traits": { + "smithy.api#documentation": "

The public key.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the public key.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetRealtimeLogConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetRealtimeLogConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetRealtimeLogConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a real-time log configuration.

To get a real-time log configuration, you can provide the configuration's name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to get.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/get-realtime-log-config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetRealtimeLogConfigRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the real-time log configuration to get.

" + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the real-time log configuration to get.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetRealtimeLogConfigResult": { + "type": "structure", + "members": { + "RealtimeLogConfig": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfig", + "traits": { + "smithy.api#documentation": "

A real-time log configuration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetResourcePolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetResourcePolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the resource policy for the specified CloudFront resource that you own and have shared.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/get-resource-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetResourcePolicyRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudFront resource that is associated with the resource policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetResourcePolicyResult": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudFront resource that is associated with the resource policy.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The resource policy in JSON format.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a response headers policy, including metadata (the policy's identifier and the date and time when the policy was last modified).

To get a response headers policy, you must provide the policy's identifier. If the response headers policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the response headers policy is not attached to a cache behavior, you can get the identifier using ListResponseHeadersPolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a response headers policy configuration.

To get a response headers policy configuration, you must provide the policy's identifier. If the response headers policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the response headers policy is not attached to a cache behavior, you can get the identifier using ListResponseHeadersPolicies.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/response-headers-policy/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the response headers policy.

If the response headers policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the response headers policy is not attached to a cache behavior, you can get the identifier using ListResponseHeadersPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicyConfigResult": { + "type": "structure", + "members": { + "ResponseHeadersPolicyConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyConfig", + "traits": { + "smithy.api#documentation": "

Contains a response headers policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the response headers policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicyRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the response headers policy.

If the response headers policy is attached to a distribution's cache behavior, you can get the policy's identifier using ListDistributions or GetDistribution. If the response headers policy is not attached to a cache behavior, you can get the identifier using ListResponseHeadersPolicies.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetResponseHeadersPolicyResult": { + "type": "structure", + "members": { + "ResponseHeadersPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicy", + "traits": { + "smithy.api#documentation": "

Contains a response headers policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the response headers policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetStreamingDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetStreamingDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetStreamingDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchStreamingDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about a specified RTMP distribution, including the distribution configuration.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/streaming-distribution/{Id}", + "code": 200 + }, + "smithy.waiters#waitable": { + "StreamingDistributionDeployed": { + "documentation": "Wait until a streaming distribution is deployed.", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "StreamingDistribution.Status", + "expected": "Deployed", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 60, + "maxDelay": 1500 + } + } + } + }, + "com.amazonaws.cloudfront#GetStreamingDistributionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetStreamingDistributionConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetStreamingDistributionConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchStreamingDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

Get the configuration information about a streaming distribution.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/streaming-distribution/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetStreamingDistributionConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The streaming distribution's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

To request to get a streaming distribution configuration.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetStreamingDistributionConfigResult": { + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfig", + "traits": { + "smithy.api#documentation": "

The streaming distribution's configuration information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetStreamingDistributionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The streaming distribution's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to get a streaming distribution's information.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetStreamingDistributionResult": { + "type": "structure", + "members": { + "StreamingDistribution": { + "target": "com.amazonaws.cloudfront#StreamingDistribution", + "traits": { + "smithy.api#documentation": "

The streaming distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the streaming distribution's information. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetTrustStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetTrustStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetTrustStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a trust store.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/trust-store/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetTrustStoreRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetTrustStoreResult": { + "type": "structure", + "members": { + "TrustStore": { + "target": "com.amazonaws.cloudfront#TrustStore", + "traits": { + "smithy.api#documentation": "

The trust store.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the trust store.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GetVpcOrigin": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#GetVpcOriginRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#GetVpcOriginResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Get the details of an Amazon CloudFront VPC origin.

", + "smithy.api#examples": [ + { + "title": "To get a VPC origin", + "documentation": "The following command gets a VPC origin:", + "input": { + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "output": { + "VpcOrigin": { + "Status": "Deployed", + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "OriginSslProtocols": { + "Items": [ + "TLSv1.1", + "TLSv1.2" + ], + "Quantity": 2 + }, + "OriginProtocolPolicy": "match-viewer", + "HTTPPort": 80, + "HTTPSPort": 443, + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d" + }, + "CreatedTime": "2024-10-15T17:19:42.318Z", + "LastModifiedTime": "2024-10-15T17:24:35.188Z", + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "Arn": "arn:aws:cloudfront::123456789012:vpcorigin/vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "ETag": "ETVPDKIKX0DER" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/vpc-origin/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#GetVpcOriginRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#GetVpcOriginResult": { + "type": "structure", + "members": { + "VpcOrigin": { + "target": "com.amazonaws.cloudfront#VpcOrigin", + "traits": { + "smithy.api#documentation": "

The VPC origin.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ETag.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#GrpcConfig": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon CloudFront supports gRPC, an open-source remote procedure call (RPC) framework built on HTTP/2. gRPC offers bi-directional streaming and binary protocol that buffers payloads, making it suitable for applications that require low latency communications.

To enable your distribution to handle gRPC requests, you must include HTTP/2 as one of the supported HTTP versions and allow HTTP methods, including POST.

For more information, see Using gRPC with CloudFront distributions in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#HeaderList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Name" + } + } + }, + "com.amazonaws.cloudfront#Headers": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of header names in the Items list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#HeaderList", + "traits": { + "smithy.api#documentation": "

A list of HTTP header names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a list of HTTP header names.

" + } + }, + "com.amazonaws.cloudfront#HttpVersion": { + "type": "enum", + "members": { + "http1_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http1.1" + } + }, + "http2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http2" + } + }, + "http3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http3" + } + }, + "http2and3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http2and3" + } + } + } + }, + "com.amazonaws.cloudfront#ICPRecordalStatus": { + "type": "enum", + "members": { + "APPROVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APPROVED" + } + }, + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUSPENDED" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + } + } + }, + "com.amazonaws.cloudfront#IllegalDelete": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Deletion is not allowed for this entity.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified configuration for field-level encryption can't be associated with the specified cache behavior.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An origin cannot contain both an origin access control (OAC) and an origin access identity (OAI).

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#IllegalUpdate": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The update contains modifications that are not allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#ImportSource": { + "type": "structure", + "members": { + "SourceType": { + "target": "com.amazonaws.cloudfront#ImportSourceType", + "traits": { + "smithy.api#documentation": "

The source type of the import source for the key value store.

", + "smithy.api#required": {} + } + }, + "SourceARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the import source for the key value store.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The import source for the key value store.

" + } + }, + "com.amazonaws.cloudfront#ImportSourceType": { + "type": "enum", + "members": { + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" + } + } + } + }, + "com.amazonaws.cloudfront#InconsistentQuantities": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The value of Quantity and the size of Items don't match.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidArgument": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An argument is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidAssociation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified CloudFront resource can't be associated.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#InvalidDefaultRootObject": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The default root object file name is too big or contains an invalid character.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An origin access control is associated with an origin whose domain name is not supported.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidErrorCode": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An invalid error code was specified.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidForwardCookies": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains forward cookies option which doesn't match with the expectation for the whitelisted list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidFunctionAssociation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFront function association is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified geo restriction parameter is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidHeadersForS3Origin": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The headers specified are not valid for an Amazon S3 origin.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidIfMatchVersion": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The If-Match version is missing or not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified Lambda@Edge function association is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidLocationCode": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The location code specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The minimum protocol version specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidOrigin": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidOriginAccessControl": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The origin access control is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidOriginAccessIdentity": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The origin access identity is not valid or doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The keep alive timeout specified for the origin is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidOriginReadTimeout": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The read timeout specified for the origin is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidProtocolSettings": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that support Server Name Indication (SNI).

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidQueryStringParameters": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The query string parameters specified are not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidRelativePath": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The relative path is too big, is not URL-encoded, or does not begin with a slash (/).

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidRequiredProtocol": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the RequiredProtocols element from your distribution configuration.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidResponseCode": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A response code is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidTTLOrder": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The TTL order specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidTagging": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The tagging specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidViewerCertificate": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A viewer certificate specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#InvalidWebACLId": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A web ACL ID specified is not valid. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. To specify a web ACL created using WAF Classic, use the ACL ID, for example 473e64fd-f30b-4765-81a0-62ad96dd167a.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#Invalidation": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the invalidation request. For example: IDFDVBD632BHDS5.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the invalidation request. When the invalidation batch is finished, the status is Completed.

", + "smithy.api#required": {} + } + }, + "CreateTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time the invalidation request was first made.

", + "smithy.api#required": {} + } + }, + "InvalidationBatch": { + "target": "com.amazonaws.cloudfront#InvalidationBatch", + "traits": { + "smithy.api#documentation": "

The current invalidation information for the batch request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An invalidation.

" + } + }, + "com.amazonaws.cloudfront#InvalidationBatch": { + "type": "structure", + "members": { + "Paths": { + "target": "com.amazonaws.cloudfront#Paths", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the objects that you want to invalidate. For more information, see Specifying the Objects to Invalidate in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A value that you specify to uniquely identify an invalidation request. CloudFront uses the value to prevent you from accidentally resubmitting an identical request. Whenever you create a new invalidation request, you must specify a new value for CallerReference and change other values in the request as applicable. One way to ensure that the value of CallerReference is unique is to use a timestamp, for example, 20120301090000.

If you make a second invalidation request with the same value for CallerReference, and if the rest of the request is the same, CloudFront doesn't create a new invalidation request. Instead, CloudFront returns information about the invalidation request that you previously created with the same CallerReference.

If CallerReference is a value you already sent in a previous invalidation batch request but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An invalidation batch.

" + } + }, + "com.amazonaws.cloudfront#InvalidationList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value that you provided for the Marker request parameter.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If IsTruncated is true, this element is present and contains the value that you can use for the Marker request parameter to continue listing your invalidation batches where they left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The value that you provided for the MaxItems request parameter.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more invalidation batches in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of invalidation batches that were created by the current Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#InvalidationSummaryList", + "traits": { + "smithy.api#documentation": "

A complex type that contains one InvalidationSummary element for each invalidation batch created by the current Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The InvalidationList complex type describes the list of invalidation objects. For more information about invalidation, see Invalidating Objects (Web Distributions Only) in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#InvalidationSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique ID for an invalidation request.

", + "smithy.api#required": {} + } + }, + "CreateTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The time that an invalidation request was created.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of an invalidation request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of an invalidation request.

" + } + }, + "com.amazonaws.cloudfront#InvalidationSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#InvalidationSummary", + "traits": { + "smithy.api#xmlName": "InvalidationSummary" + } + } + }, + "com.amazonaws.cloudfront#IpAddressType": { + "type": "enum", + "members": { + "Ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "Ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + }, + "DualStack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dualstack" + } + } + } + }, + "com.amazonaws.cloudfront#IpamCidrConfig": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The CIDR that specifies the IP address range for this IPAM configuration.

", + "smithy.api#required": {} + } + }, + "IpamPoolArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM pool that the CIDR block is assigned to.

", + "smithy.api#required": {} + } + }, + "AnycastIp": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The specified Anycast IP address allocated from the IPAM pool for this CIDR configuration.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#IpamCidrStatus", + "traits": { + "smithy.api#documentation": "

The current status of the IPAM CIDR configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for an IPAM CIDR that defines a specific IP address range, IPAM pool, and associated Anycast IP address.

" + } + }, + "com.amazonaws.cloudfront#IpamCidrConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#IpamCidrConfig", + "traits": { + "smithy.api#xmlName": "IpamCidrConfig" + } + } + }, + "com.amazonaws.cloudfront#IpamCidrStatus": { + "type": "enum", + "members": { + "Provisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned" + } + }, + "FailedProvision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-provision" + } + }, + "Provisioning": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioning" + } + }, + "Deprovisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioned" + } + }, + "FailedDeprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-deprovision" + } + }, + "Deprovisioning": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioning" + } + }, + "Advertised": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advertised" + } + }, + "FailedAdvertise": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-advertise" + } + }, + "Advertising": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advertising" + } + }, + "Withdrawn": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "withdrawn" + } + }, + "FailedWithdraw": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-withdraw" + } + }, + "Withdrawing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "withdrawing" + } + } + } + }, + "com.amazonaws.cloudfront#IpamConfig": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of IPAM CIDR configurations in the IpamCidrConfigs list.

", + "smithy.api#required": {} + } + }, + "IpamCidrConfigs": { + "target": "com.amazonaws.cloudfront#IpamCidrConfigList", + "traits": { + "smithy.api#documentation": "

A list of IPAM CIDR configurations that define the IP address ranges, IPAM pools, and associated Anycast IP addresses.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration IPAM settings that includes the quantity of CIDR configurations and the list of IPAM CIDR configurations.

" + } + }, + "com.amazonaws.cloudfront#ItemSelection": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + } + }, + "com.amazonaws.cloudfront#KGKeyPairIds": { + "type": "structure", + "members": { + "KeyGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the key group that contains the public keys.

" + } + }, + "KeyPairIds": { + "target": "com.amazonaws.cloudfront#KeyPairIds" + } + }, + "traits": { + "smithy.api#documentation": "

A list of identifiers for the public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#KGKeyPairIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#KGKeyPairIds", + "traits": { + "smithy.api#xmlName": "KeyGroup" + } + } + }, + "com.amazonaws.cloudfront#KeyGroup": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the key group.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the key group was last modified.

", + "smithy.api#required": {} + } + }, + "KeyGroupConfig": { + "target": "com.amazonaws.cloudfront#KeyGroupConfig", + "traits": { + "smithy.api#documentation": "

The key group configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A key group.

A key group contains a list of public keys that you can use with CloudFront signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#KeyGroupAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A key group with this name already exists. You must provide a unique name. To modify an existing key group, use UpdateKeyGroup.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#KeyGroupConfig": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name to identify the key group.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#PublicKeyIdList", + "traits": { + "smithy.api#documentation": "

A list of the identifiers of the public keys in the key group.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the key group. The comment cannot be longer than 128 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A key group configuration.

A key group contains a list of public keys that you can use with CloudFront signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#KeyGroupList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing key groups.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of key groups requested.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of key groups returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#KeyGroupSummaryList", + "traits": { + "smithy.api#documentation": "

A list of key groups.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of key groups.

" + } + }, + "com.amazonaws.cloudfront#KeyGroupSummary": { + "type": "structure", + "members": { + "KeyGroup": { + "target": "com.amazonaws.cloudfront#KeyGroup", + "traits": { + "smithy.api#documentation": "

A key group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a key group.

" + } + }, + "com.amazonaws.cloudfront#KeyGroupSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#KeyGroupSummary", + "traits": { + "smithy.api#xmlName": "KeyGroupSummary" + } + } + }, + "com.amazonaws.cloudfront#KeyPairIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "KeyPairId" + } + } + }, + "com.amazonaws.cloudfront#KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of key pair identifiers in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#KeyPairIdList", + "traits": { + "smithy.api#documentation": "

A list of CloudFront key pair identifiers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of CloudFront key pair identifiers.

" + } + }, + "com.amazonaws.cloudfront#KeyValueStore": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the key value store.

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique Id for the key value store.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment for the key value store.

", + "smithy.api#required": {} + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the key value store.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the key value store.

" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The last-modified time of the key value store.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The key value store. Use this to separate data from function code, allowing you to update data without having to publish a new version of a function. The key value store holds keys and their corresponding values.

" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 85 + }, + "smithy.api#pattern": "^arn:aws:cloudfront::[0-9]{12}:key-value-store\\/[0-9a-fA-F-]{36}$" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreAssociation": { + "type": "structure", + "members": { + "KeyValueStoreARN": { + "target": "com.amazonaws.cloudfront#KeyValueStoreARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the key value store association.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The key value store association.

" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#KeyValueStoreAssociation", + "traits": { + "smithy.api#xmlName": "KeyValueStoreAssociation" + } + } + }, + "com.amazonaws.cloudfront#KeyValueStoreAssociations": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The quantity of key value store associations.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#KeyValueStoreAssociationList", + "traits": { + "smithy.api#documentation": "

The items of the key value store association.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The key value store associations.

" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreComment": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.cloudfront#KeyValueStoreList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The next marker associated with the key value store list.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items in the key value store list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The quantity of the key value store list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#KeyValueStoreSummaryList", + "traits": { + "smithy.api#documentation": "

The items of the key value store list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The key value store list.

" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]{1,64}$" + } + }, + "com.amazonaws.cloudfront#KeyValueStoreSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#KeyValueStore", + "traits": { + "smithy.api#xmlName": "KeyValueStore" + } + } + }, + "com.amazonaws.cloudfront#KinesisStreamConfig": { + "type": "structure", + "members": { + "RoleARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFront can use to send real-time log data to your Kinesis data stream.

For more information the IAM role, see Real-time log configuration IAM role in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Kinesis data stream where you are sending real-time log data.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you are sending real-time log data.

" + } + }, + "com.amazonaws.cloudfront#LambdaFunctionARN": { + "type": "string" + }, + "com.amazonaws.cloudfront#LambdaFunctionAssociation": { + "type": "structure", + "members": { + "LambdaFunctionARN": { + "target": "com.amazonaws.cloudfront#LambdaFunctionARN", + "traits": { + "smithy.api#documentation": "

The ARN of the Lambda@Edge function. You must specify the ARN of a function version; you can't specify an alias or $LATEST.

", + "smithy.api#required": {} + } + }, + "EventType": { + "target": "com.amazonaws.cloudfront#EventType", + "traits": { + "smithy.api#documentation": "

Specifies the event type that triggers a Lambda@Edge function invocation. You can specify the following values:

  • viewer-request: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache.

  • origin-request: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute.

  • origin-response: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute.

  • viewer-response: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache.

    If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute.

", + "smithy.api#required": {} + } + }, + "IncludeBody": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that allows a Lambda@Edge function to have read access to the body content. For more information, see Accessing the Request Body by Choosing the Include Body Option in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains a Lambda@Edge function association.

" + } + }, + "com.amazonaws.cloudfront#LambdaFunctionAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#LambdaFunctionAssociation", + "traits": { + "smithy.api#xmlName": "LambdaFunctionAssociation" + } + } + }, + "com.amazonaws.cloudfront#LambdaFunctionAssociations": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of Lambda@Edge function associations for this cache behavior.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#LambdaFunctionAssociationList", + "traits": { + "smithy.api#documentation": "

Optional: A complex type that contains LambdaFunctionAssociation items for this cache behavior. If Quantity is 0, you can omit Items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that specifies a list of Lambda@Edge functions associations for a cache behavior.

If you want to invoke one or more Lambda@Edge functions triggered by requests that match the PathPattern of the cache behavior, specify the applicable values for Quantity and Items. Note that there can be up to 4 LambdaFunctionAssociation items in this list (one for each possible value of EventType) and each EventType can be associated with only one function.

If you don't want to invoke any Lambda@Edge functions for the requests that match PathPattern, specify 0 for Quantity and omit Items.

" + } + }, + "com.amazonaws.cloudfront#ListAnycastIpLists": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListAnycastIpListsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListAnycastIpListsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Lists your Anycast static IP lists.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/anycast-ip-list", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListAnycastIpListsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of Anycast static IP lists that you want returned in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListAnycastIpListsResult": { + "type": "structure", + "members": { + "AnycastIpLists": { + "target": "com.amazonaws.cloudfront#AnycastIpListCollection", + "traits": { + "smithy.api#documentation": "

Root level tag for the AnycastIpLists parameters.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "AnycastIpListCollection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListCachePolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListCachePoliciesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListCachePoliciesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of cache policies.

You can optionally apply a filter to return only the managed policies created by Amazon Web Services, or only the custom policies created in your Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/cache-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListCachePoliciesRequest": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#CachePolicyType", + "traits": { + "smithy.api#documentation": "

A filter to return only the specified kinds of cache policies. Valid values are:

  • managed – Returns only the managed policies created by Amazon Web Services.

  • custom – Returns only the custom policies created in your Amazon Web Services account.

", + "smithy.api#httpQuery": "Type" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of cache policies. The response includes cache policies in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of cache policies that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListCachePoliciesResult": { + "type": "structure", + "members": { + "CachePolicyList": { + "target": "com.amazonaws.cloudfront#CachePolicyList", + "traits": { + "smithy.api#documentation": "

A list of cache policies.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentities": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists origin access identities.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-identity/cloudfront", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "CloudFrontOriginAccessIdentityList.NextMarker", + "items": "CloudFrontOriginAccessIdentityList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page).

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin access identities you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list origin access identities.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListCloudFrontOriginAccessIdentitiesResult": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityList": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityList", + "traits": { + "smithy.api#documentation": "

The CloudFrontOriginAccessIdentityList type.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListConflictingAliases": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListConflictingAliasesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListConflictingAliasesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

The ListConflictingAliases API operation only supports standard distributions. To list domain conflicts for both standard distributions and distribution tenants, we recommend that you use the ListDomainConflicts API operation instead.

Gets a list of aliases that conflict or overlap with the provided alias, and the associated CloudFront standard distribution and Amazon Web Services accounts for each conflicting alias. An alias is commonly known as a custom domain or vanity domain. It can also be called a CNAME or alternate domain name.

In the returned list, the standard distribution and account IDs are partially hidden, which allows you to identify the standard distribution and accounts that you own, and helps to protect the information of ones that you don't own.

Use this operation to find aliases that are in use in CloudFront that conflict or overlap with the provided alias. For example, if you provide www.example.com as input, the returned list can include www.example.com and the overlapping wildcard alternate domain name (*.example.com), if they exist. If you provide *.example.com as input, the returned list can include *.example.com and any alternate domain names covered by that wildcard (for example, www.example.com, test.example.com, dev.example.com, and so on), if they exist.

To list conflicting aliases, specify the alias to search and the ID of a standard distribution in your account that has an attached TLS certificate that includes the provided alias. For more information, including how to set up the standard distribution and certificate, see Moving an alternate domain name to a different standard distribution or distribution tenant in the Amazon CloudFront Developer Guide.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/conflicting-alias", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListConflictingAliasesRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#distributionIdString", + "traits": { + "smithy.api#documentation": "

The ID of a standard distribution in your account that has an attached TLS certificate that includes the provided alias.

", + "smithy.api#httpQuery": "DistributionId", + "smithy.api#required": {} + } + }, + "Alias": { + "target": "com.amazonaws.cloudfront#aliasString", + "traits": { + "smithy.api#documentation": "

The alias (also called a CNAME) to search for conflicting aliases.

", + "smithy.api#httpQuery": "Alias", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in the list of conflicting aliases. The response includes conflicting aliases in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#listConflictingAliasesMaxItemsInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of conflicting aliases that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListConflictingAliasesResult": { + "type": "structure", + "members": { + "ConflictingAliasesList": { + "target": "com.amazonaws.cloudfront#ConflictingAliasesList", + "traits": { + "smithy.api#documentation": "

A list of conflicting aliases.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListConnectionFunctions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListConnectionFunctionsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListConnectionFunctionsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Lists connection functions.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-functions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "ConnectionFunctions", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListConnectionFunctionsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of connection functions that you want returned in the response.

" + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The connection function's stage.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListConnectionFunctionsResult": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Indicates the next page of connection functions. To get the next page of the list, use this value in the Marker field of your request.

" + } + }, + "ConnectionFunctions": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummaryList", + "traits": { + "smithy.api#documentation": "

A list of connection functions.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListConnectionGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListConnectionGroupsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListConnectionGroupsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the connection groups in your Amazon Web Services account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-groups", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "ConnectionGroups", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListConnectionGroupsRequest": { + "type": "structure", + "members": { + "AssociationFilter": { + "target": "com.amazonaws.cloudfront#ConnectionGroupAssociationFilter", + "traits": { + "smithy.api#documentation": "

Filter by associated Anycast IP list ID.

" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker for the next set of connection groups to retrieve.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of connection groups to return.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListConnectionGroupsResult": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A token used for pagination of results returned in the response. You can use the token from the previous request to define where the current request should begin.

" + } + }, + "ConnectionGroups": { + "target": "com.amazonaws.cloudfront#ConnectionGroupSummaryList", + "traits": { + "smithy.api#documentation": "

The list of connection groups that you retrieved.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListContinuousDeploymentPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of the continuous deployment policies in your Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/continuous-deployment-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of continuous deployment policies. The response includes policies in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of continuous deployment policies that you want returned in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListContinuousDeploymentPoliciesResult": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicyList": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyList", + "traits": { + "smithy.api#documentation": "

A list of continuous deployment policies.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionTenants": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionTenantsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionTenantsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the distribution tenants in your Amazon Web Services account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution-tenants", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "DistributionTenantList", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionTenantsByCustomization": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists distribution tenants by the customization that you specify.

You must specify either the CertificateArn parameter or WebACLArn parameter, but not both in the same request.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distribution-tenants-by-customization", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "DistributionTenantList", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationRequest": { + "type": "structure", + "members": { + "WebACLArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Filter by the ARN of the associated WAF web ACL.

" + } + }, + "CertificateArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Filter by the ARN of the associated ACM certificate.

" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker for the next set of results.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution tenants to return by the specified customization.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionTenantsByCustomizationResult": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A token used for pagination of results returned in the response. You can use the token from the previous request to define where the current request should begin.

" + } + }, + "DistributionTenantList": { + "target": "com.amazonaws.cloudfront#DistributionTenantList", + "traits": { + "smithy.api#documentation": "

A list of distribution tenants with the specified customization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionTenantsRequest": { + "type": "structure", + "members": { + "AssociationFilter": { + "target": "com.amazonaws.cloudfront#DistributionTenantAssociationFilter" + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker for the next set of results.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution tenants to return.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionTenantsResult": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A token used for pagination of results returned in the response. You can use the token from the previous request to define where the current request should begin.

" + } + }, + "DistributionTenantList": { + "target": "com.amazonaws.cloudfront#DistributionTenantList", + "traits": { + "smithy.api#documentation": "

The list of distribution tenants that you retrieved.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

List CloudFront distributions.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "DistributionList.NextMarker", + "items": "DistributionList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the distributions in your account that are associated with the specified AnycastIpListId.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByAnycastIpListId/{AnycastIpListId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions that you want returned in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByAnycastIpListIdResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByCachePolicyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of distribution IDs for distributions that have a cache behavior that's associated with the specified cache policy.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByCachePolicyId/{CachePolicyId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution IDs that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "CachePolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the cache policy whose associated distribution IDs you want to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByCachePolicyIdResult": { + "type": "structure", + "members": { + "DistributionIdList": { + "target": "com.amazonaws.cloudfront#DistributionIdList", + "traits": { + "smithy.api#documentation": "

A list of distribution IDs.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists distributions by connection function.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByConnectionFunction", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "DistributionList.NextMarker", + "items": "DistributionList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions that you want returned in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "ConnectionFunctionIdentifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distributions by connection function identifier.

", + "smithy.api#httpQuery": "ConnectionFunctionIdentifier", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionFunctionResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionMode": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionModeRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByConnectionModeResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the distributions by the connection mode that you specify.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByConnectionMode/{ConnectionMode}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "DistributionList.NextMarker", + "items": "DistributionList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionModeRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker for the next set of distributions to retrieve.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions to return.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "ConnectionMode": { + "target": "com.amazonaws.cloudfront#ConnectionMode", + "traits": { + "smithy.api#documentation": "

This field specifies whether the connection mode is through a standard distribution (direct) or a multi-tenant distribution with distribution tenants (tenant-only).

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByConnectionModeResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByKeyGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByKeyGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByKeyGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of distribution IDs for distributions that have a cache behavior that references the specified key group.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByKeyGroupId/{KeyGroupId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByKeyGroupRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution IDs that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "KeyGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the key group whose associated distribution IDs you are listing.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByKeyGroupResult": { + "type": "structure", + "members": { + "DistributionIdList": { + "target": "com.amazonaws.cloudfront#DistributionIdList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of distribution IDs for distributions that have a cache behavior that's associated with the specified origin request policy.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByOriginRequestPolicyId/{OriginRequestPolicyId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution IDs that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "OriginRequestPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the origin request policy whose associated distribution IDs you want to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOriginRequestPolicyIdResult": { + "type": "structure", + "members": { + "DistributionIdList": { + "target": "com.amazonaws.cloudfront#DistributionIdList", + "traits": { + "smithy.api#documentation": "

A list of distribution IDs.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOwnedResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the CloudFront distributions that are associated with the specified resource that you own.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByOwnedResource/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN of the CloudFront resource that you've shared with other Amazon Web Services accounts.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distributions. The response includes distributions in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions to return.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByOwnedResourceResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionIdOwnerList", + "traits": { + "smithy.api#documentation": "

The list of distributions that are using the shared resource.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of distributions that have a cache behavior that's associated with the specified real-time log configuration.

You can specify the real-time log configuration by its name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to list distributions for.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/distributionsByRealtimeLogConfig", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distributions. The response includes distributions in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions that you want in the response.

" + } + }, + "RealtimeLogConfigName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the real-time log configuration whose associated distributions you want to list.

" + } + }, + "RealtimeLogConfigArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the real-time log configuration whose associated distributions you want to list.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByRealtimeLogConfigResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of distribution IDs for distributions that have a cache behavior that's associated with the specified response headers policy.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByResponseHeadersPolicyId/{ResponseHeadersPolicyId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distribution IDs that you want to get in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "ResponseHeadersPolicyId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the response headers policy whose associated distribution IDs you want to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByResponseHeadersPolicyIdResult": { + "type": "structure", + "members": { + "DistributionIdList": { + "target": "com.amazonaws.cloudfront#DistributionIdList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByTrustStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByTrustStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByTrustStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists distributions by trust store.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByTrustStore", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "DistributionList.NextMarker", + "items": "DistributionList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByTrustStoreRequest": { + "type": "structure", + "members": { + "TrustStoreIdentifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distributions by trust store identifier.

", + "smithy.api#httpQuery": "TrustStoreIdentifier", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions that you want returned in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByTrustStoreResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByVpcOriginId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

List CloudFront distributions by their VPC origin ID.

", + "smithy.api#examples": [ + { + "title": "To list distributions by VPC origin ID", + "documentation": "The following command lists distributions by VPC origin ID:", + "input": { + "VpcOriginId": "vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "output": { + "DistributionIdList": { + "Items": [], + "IsTruncated": false, + "MaxItems": 100, + "Quantity": 0, + "Marker": "a" + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByVpcOriginId/{VpcOriginId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker associated with the VPC origin distributions list.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items included in the list.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "VpcOriginId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByVpcOriginIdResult": { + "type": "structure", + "members": { + "DistributionIdList": { + "target": "com.amazonaws.cloudfront#DistributionIdList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByWebACLId": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDistributionsByWebACLIdRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDistributionsByWebACLIdResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + } + ], + "traits": { + "smithy.api#documentation": "

List the distributions that are associated with a specified WAF web ACL.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distributionsByWebACLId/{WebACLId}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListDistributionsByWebACLIdRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use Marker and MaxItems to control pagination of results. If you have more than MaxItems distributions that satisfy the request, the response includes a NextMarker element. To get the next page of results, submit another request. For the value of Marker, specify the value of NextMarker from the last response. (For the first request, omit Marker.)

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions that you want CloudFront to return in the response body. The maximum and default values are both 100.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "WebACLId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the WAF web ACL that you want to list the associated distributions. If you specify \"null\" for the ID, the request returns a list of the distributions that aren't associated with a web ACL.

For WAFV2, this is the ARN of the web ACL, such as arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

For WAF Classic, this is the ID of the web ACL, such as a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list distributions that are associated with a specified WAF web ACL.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsByWebACLIdResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#documentation": "

The DistributionList type.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The response to a request to list the distributions that are associated with a specified WAF web ACL.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last distribution on that page).

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of distributions you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list your distributions.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDistributionsResult": { + "type": "structure", + "members": { + "DistributionList": { + "target": "com.amazonaws.cloudfront#DistributionList", + "traits": { + "smithy.api#documentation": "

The DistributionList type.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListDomainConflicts": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListDomainConflictsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListDomainConflictsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

We recommend that you use the ListDomainConflicts API operation to check for domain conflicts, as it supports both standard distributions and distribution tenants. ListConflictingAliases performs similar checks but only supports standard distributions.

Lists existing domain associations that conflict with the domain that you specify.

You can use this API operation to identify potential domain conflicts when moving domains between standard distributions and/or distribution tenants. Domain conflicts must be resolved first before they can be moved.

For example, if you provide www.example.com as input, the returned list can include www.example.com and the overlapping wildcard alternate domain name (*.example.com), if they exist. If you provide *.example.com as input, the returned list can include *.example.com and any alternate domain names covered by that wildcard (for example, www.example.com, test.example.com, dev.example.com, and so on), if they exist.

To list conflicting domains, specify the following:

  • The domain to search for

  • The ID of a standard distribution or distribution tenant in your account that has an attached TLS certificate, which covers the specified domain

For more information, including how to set up the standard distribution or distribution tenant, and the certificate, see Moving an alternate domain name to a different standard distribution or distribution tenant in the Amazon CloudFront Developer Guide.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/domain-conflicts", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "DomainConflicts", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListDomainConflictsRequest": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain to check for conflicts.

", + "smithy.api#required": {} + } + }, + "DomainControlValidationResource": { + "target": "com.amazonaws.cloudfront#DistributionResourceId", + "traits": { + "smithy.api#documentation": "

The distribution resource identifier. This can be the standard distribution or distribution tenant that has a valid certificate, which covers the domain that you specify.

", + "smithy.api#required": {} + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of domain conflicts to return.

" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker for the next set of domain conflicts.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListDomainConflictsResult": { + "type": "structure", + "members": { + "DomainConflicts": { + "target": "com.amazonaws.cloudfront#DomainConflictsList", + "traits": { + "smithy.api#documentation": "

Contains details about the domain conflicts.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A token used for pagination of results returned in the response. You can use the token from the previous request to define where the current request should begin.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigs": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

List all field-level encryption configurations that have been created in CloudFront for this account.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of configurations. The results include configurations in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last configuration on that page).

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of field-level encryption configurations you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionConfigsResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionList": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionList", + "traits": { + "smithy.api#documentation": "

Returns a list of all field-level encryption configurations that have been created in CloudFront for this account.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfiles": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Request a list of field-level encryption profiles that have been created in CloudFront for this account.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/field-level-encryption-profile", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of profiles. The results include profiles in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last profile on that page).

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of field-level encryption profiles you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListFieldLevelEncryptionProfilesResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfileList": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileList", + "traits": { + "smithy.api#documentation": "

Returns a list of the field-level encryption profiles that have been created in CloudFront for this account.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListFunctions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListFunctionsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListFunctionsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of all CloudFront functions in your Amazon Web Services account.

You can optionally apply a filter to return only the functions that are in the specified stage, either DEVELOPMENT or LIVE.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/function", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListFunctionsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of functions. The response includes functions in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of functions that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

An optional filter to return only the functions that are in the specified stage, either DEVELOPMENT or LIVE.

", + "smithy.api#httpQuery": "Stage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListFunctionsResult": { + "type": "structure", + "members": { + "FunctionList": { + "target": "com.amazonaws.cloudfront#FunctionList", + "traits": { + "smithy.api#documentation": "

A list of CloudFront functions.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListInvalidations": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListInvalidationsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListInvalidationsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + } + ], + "traits": { + "smithy.api#documentation": "

Lists invalidation batches.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution/{DistributionId}/invalidation", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "InvalidationList.NextMarker", + "items": "InvalidationList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the invalidations for a distribution tenant.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/distribution-tenant/{Id}/invalidation", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "InvalidationList.NextMarker", + "items": "InvalidationList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set Marker to the value of the NextMarker from the current page's response. This value is the same as the ID of the last invalidation batch on that page.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of invalidations to return for the distribution tenant.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListInvalidationsForDistributionTenantResult": { + "type": "structure", + "members": { + "InvalidationList": { + "target": "com.amazonaws.cloudfront#InvalidationList", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListInvalidationsRequest": { + "type": "structure", + "members": { + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set Marker to the value of the NextMarker from the current page's response. This value is the same as the ID of the last invalidation batch on that page.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of invalidation batches that you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list invalidations.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListInvalidationsResult": { + "type": "structure", + "members": { + "InvalidationList": { + "target": "com.amazonaws.cloudfront#InvalidationList", + "traits": { + "smithy.api#documentation": "

Information about invalidation batches.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListKeyGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListKeyGroupsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListKeyGroupsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of key groups.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/key-group", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListKeyGroupsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of key groups. The response includes key groups in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of key groups that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListKeyGroupsResult": { + "type": "structure", + "members": { + "KeyGroupList": { + "target": "com.amazonaws.cloudfront#KeyGroupList", + "traits": { + "smithy.api#documentation": "

A list of key groups.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListKeyValueStores": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListKeyValueStoresRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListKeyValueStoresResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the key value stores to list.

", + "smithy.api#examples": [ + { + "title": "To get a list of KeyValueStores", + "documentation": "The following command retrieves a list of KeyValueStores with READY status.", + "input": { + "Status": "READY" + }, + "output": { + "KeyValueStoreList": { + "NextMarker": "", + "MaxItems": 100, + "Quantity": 1, + "Items": [ + { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:45:21.069Z" + } + ] + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/key-value-store", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "KeyValueStoreList.NextMarker", + "items": "KeyValueStoreList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListKeyValueStoresRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker associated with the key value stores list.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items in the key value stores list.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The status of the request for the key value stores list.

", + "smithy.api#httpQuery": "Status" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListKeyValueStoresResult": { + "type": "structure", + "members": { + "KeyValueStoreList": { + "target": "com.amazonaws.cloudfront#KeyValueStoreList", + "traits": { + "smithy.api#documentation": "

The resulting key value stores list.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListOriginAccessControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListOriginAccessControlsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListOriginAccessControlsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the list of CloudFront origin access controls (OACs) in this Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send another request that specifies the NextMarker value from the current response as the Marker value in the next request.

If you're not using origin access controls for your Amazon Web Services account, the ListOriginAccessControls operation doesn't return the Items element in the response.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-access-control", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "OriginAccessControlList.NextMarker", + "items": "OriginAccessControlList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListOriginAccessControlsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of origin access controls. The response includes the items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin access controls that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListOriginAccessControlsResult": { + "type": "structure", + "members": { + "OriginAccessControlList": { + "target": "com.amazonaws.cloudfront#OriginAccessControlList", + "traits": { + "smithy.api#documentation": "

A list of origin access controls.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListOriginRequestPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListOriginRequestPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListOriginRequestPoliciesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of origin request policies.

You can optionally apply a filter to return only the managed policies created by Amazon Web Services, or only the custom policies created in your Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/origin-request-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListOriginRequestPoliciesRequest": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyType", + "traits": { + "smithy.api#documentation": "

A filter to return only the specified kinds of origin request policies. Valid values are:

  • managed – Returns only the managed policies created by Amazon Web Services.

  • custom – Returns only the custom policies created in your Amazon Web Services account.

", + "smithy.api#httpQuery": "Type" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of origin request policies. The response includes origin request policies in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin request policies that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListOriginRequestPoliciesResult": { + "type": "structure", + "members": { + "OriginRequestPolicyList": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyList", + "traits": { + "smithy.api#documentation": "

A list of origin request policies.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListPublicKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListPublicKeysRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListPublicKeysResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

List all public keys that have been added to CloudFront for this account.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/public-key", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "PublicKeyList.NextMarker", + "items": "PublicKeyList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListPublicKeysRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this when paginating results to indicate where to begin in your list of public keys. The results include public keys in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last public key on that page).

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of public keys you want in the response body.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListPublicKeysResult": { + "type": "structure", + "members": { + "PublicKeyList": { + "target": "com.amazonaws.cloudfront#PublicKeyList", + "traits": { + "smithy.api#documentation": "

Returns a list of all public keys that have been added to CloudFront for this account.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListRealtimeLogConfigs": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListRealtimeLogConfigsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListRealtimeLogConfigsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of real-time log configurations.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/realtime-log-config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListRealtimeLogConfigsRequest": { + "type": "structure", + "members": { + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of real-time log configurations that you want in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of real-time log configurations. The response includes real-time log configurations in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListRealtimeLogConfigsResult": { + "type": "structure", + "members": { + "RealtimeLogConfigs": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigs", + "traits": { + "smithy.api#documentation": "

A list of real-time log configurations.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListResponseHeadersPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListResponseHeadersPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListResponseHeadersPoliciesResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of response headers policies.

You can optionally apply a filter to get only the managed policies created by Amazon Web Services, or only the custom policies created in your Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/response-headers-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListResponseHeadersPoliciesRequest": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyType", + "traits": { + "smithy.api#documentation": "

A filter to get only the specified kind of response headers policies. Valid values are:

  • managed – Gets only the managed policies created by Amazon Web Services.

  • custom – Gets only the custom policies created in your Amazon Web Services account.

", + "smithy.api#httpQuery": "Type" + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list of response headers policies. The response includes response headers policies in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of response headers policies that you want to get in the response.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListResponseHeadersPoliciesResult": { + "type": "structure", + "members": { + "ResponseHeadersPolicyList": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyList", + "traits": { + "smithy.api#documentation": "

A list of response headers policies.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListStreamingDistributions": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListStreamingDistributionsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListStreamingDistributionsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

List streaming distributions.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/streaming-distribution", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "StreamingDistributionList.NextMarker", + "items": "StreamingDistributionList.Items", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListStreamingDistributionsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value that you provided for the Marker request parameter.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The value that you provided for the MaxItems request parameter.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list your streaming distributions.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListStreamingDistributionsResult": { + "type": "structure", + "members": { + "StreamingDistributionList": { + "target": "com.amazonaws.cloudfront#StreamingDistributionList", + "traits": { + "smithy.api#documentation": "

The StreamingDistributionList type.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListTagsForResourceResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

List tags for a CloudFront resource. For more information, see Tagging a distribution in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/tagging", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.cloudfront#ResourceARN", + "traits": { + "smithy.api#documentation": "

An ARN of a CloudFront resource.

", + "smithy.api#httpQuery": "Resource", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to list tags for a CloudFront resource.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListTagsForResourceResult": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.cloudfront#Tags", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListTrustStores": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListTrustStoresRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListTrustStoresResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Lists trust stores.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/trust-stores", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "TrustStoreList", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.cloudfront#ListTrustStoresRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Use this field when paginating results to indicate where to begin in your list. The response includes items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of trust stores that you want returned in the response.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListTrustStoresResult": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Indicates the next page of trust stores. To get the next page of the list, use this value in the Marker field of your request.

" + } + }, + "TrustStoreList": { + "target": "com.amazonaws.cloudfront#TrustStoreList", + "traits": { + "smithy.api#documentation": "

The trust store list.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ListVpcOrigins": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#ListVpcOriginsRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#ListVpcOriginsResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

List the CloudFront VPC origins in your account.

", + "smithy.api#examples": [ + { + "title": "To list VPC origins", + "documentation": "The following command lists VPC origins:", + "output": { + "VpcOriginList": { + "Items": [ + { + "Status": "Deployed", + "Name": "my-vpcorigin-name", + "CreatedTime": "2024-10-15T17:19:42.318Z", + "LastModifiedTime": "2024-10-15T17:24:35.188Z", + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "Arn": "arn:aws:cloudfront::123456789012:vpcorigin/vo_BQwjxxQxjCaBcQLzJUFkDM", + "OriginEndpointArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d" + } + ], + "MaxItems": 100, + "Quantity": 1, + "Marker": "a", + "IsTruncated": true + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/2020-05-31/vpc-origin", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#ListVpcOriginsRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker associated with the VPC origins list.

", + "smithy.api#httpQuery": "Marker" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items included in the list.

", + "smithy.api#httpQuery": "MaxItems" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#ListVpcOriginsResult": { + "type": "structure", + "members": { + "VpcOriginList": { + "target": "com.amazonaws.cloudfront#VpcOriginList", + "traits": { + "smithy.api#documentation": "

List of VPC origins.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#LocationList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Location" + } + } + }, + "com.amazonaws.cloudfront#LoggingConfig": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and prefix, the values are automatically deleted.

" + } + }, + "IncludeCookies": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies.

" + } + }, + "Bucket": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The Amazon S3 bucket to store the access logs in, for example, amzn-s3-demo-bucket.s3.amazonaws.com.

" + } + }, + "Prefix": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that specifies whether access logs are written for the distribution.

If you already enabled standard logging (legacy) and you want to enable standard logging (v2) to send your access logs to Amazon S3, we recommend that you specify a different Amazon S3 bucket or use a separate path in the same bucket (for example, use a log prefix or partitioning). This helps you keep track of which log files are associated with which logging subscription and prevents log files from overwriting each other. For more information, see Standard logging (access logs) in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#ManagedCertificateDetails": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN of the CloudFront managed ACM certificate.

" + } + }, + "CertificateStatus": { + "target": "com.amazonaws.cloudfront#ManagedCertificateStatus", + "traits": { + "smithy.api#documentation": "

The status of the CloudFront managed ACM certificate.

Your distribution tenant will be updated with the latest certificate status. When calling the UpdateDistributionTenant operation, use the latest value for the ETag.

" + } + }, + "ValidationTokenHost": { + "target": "com.amazonaws.cloudfront#ValidationTokenHost", + "traits": { + "smithy.api#documentation": "

Contains details about the validation token host of the specified CloudFront managed ACM certificate.

  • For cloudfront, CloudFront will automatically serve the validation token. Choose this mode if you can point the domain's DNS to CloudFront immediately.

  • For self-hosted, you serve the validation token from your existing infrastructure. Choose this mode when you need to maintain current traffic flow while your certificate is being issued. You can place the validation token at the well-known path on your existing web server, wait for ACM to validate and issue the certificate, and then update your DNS to point to CloudFront.

This setting only affects the initial certificate request. Once the DNS points to CloudFront, all future certificate renewals are automatically handled through CloudFront.

" + } + }, + "ValidationTokenDetails": { + "target": "com.amazonaws.cloudfront#ValidationTokenDetailList", + "traits": { + "smithy.api#documentation": "

Contains details about the validation token of the specified CloudFront managed ACM certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the CloudFront managed ACM certificate.

" + } + }, + "com.amazonaws.cloudfront#ManagedCertificateRequest": { + "type": "structure", + "members": { + "ValidationTokenHost": { + "target": "com.amazonaws.cloudfront#ValidationTokenHost", + "traits": { + "smithy.api#documentation": "

Specify how the HTTP validation token will be served when requesting the CloudFront managed ACM certificate.

  • For cloudfront, CloudFront will automatically serve the validation token. Choose this mode if you can point the domain's DNS to CloudFront immediately.

  • For self-hosted, you serve the validation token from your existing infrastructure. Choose this mode when you need to maintain current traffic flow while your certificate is being issued. You can place the validation token at the well-known path on your existing web server, wait for ACM to validate and issue the certificate, and then update your DNS to point to CloudFront.

", + "smithy.api#required": {} + } + }, + "PrimaryDomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The primary domain name associated with the CloudFront managed ACM certificate.

" + } + }, + "CertificateTransparencyLoggingPreference": { + "target": "com.amazonaws.cloudfront#CertificateTransparencyLoggingPreference", + "traits": { + "smithy.api#documentation": "

You can opt out of certificate transparency logging by specifying the disabled option. Opt in by specifying enabled. For more information, see Certificate Transparency Logging in the Certificate Manager User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the request for the Amazon CloudFront managed ACM certificate.

" + } + }, + "com.amazonaws.cloudfront#ManagedCertificateStatus": { + "type": "enum", + "members": { + "PendingValidation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-validation" + } + }, + "Issued": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "issued" + } + }, + "Inactive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inactive" + } + }, + "Expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "ValidationTimedOut": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "validation-timed-out" + } + }, + "Revoked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "revoked" + } + }, + "Failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.cloudfront#Method": { + "type": "enum", + "members": { + "GET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GET" + } + }, + "HEAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEAD" + } + }, + "POST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST" + } + }, + "PUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUT" + } + }, + "PATCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PATCH" + } + }, + "OPTIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPTIONS" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + } + } + }, + "com.amazonaws.cloudfront#MethodsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#Method", + "traits": { + "smithy.api#xmlName": "Method" + } + } + }, + "com.amazonaws.cloudfront#MinimumProtocolVersion": { + "type": "enum", + "members": { + "SSLv3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSLv3" + } + }, + "TLSv1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1" + } + }, + "TLSv1_2016": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1_2016" + } + }, + "TLSv1_1_2016": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.1_2016" + } + }, + "TLSv1_2_2018": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.2_2018" + } + }, + "TLSv1_2_2019": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.2_2019" + } + }, + "TLSv1_2_2021": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.2_2021" + } + }, + "TLSv1_3_2025": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.3_2025" + } + }, + "TLSv1_2_2025": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.2_2025" + } + } + } + }, + "com.amazonaws.cloudfront#MissingBody": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

This operation requires a body. Ensure that the body is present and the Content-Type header is set.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#MonitoringSubscription": { + "type": "structure", + "members": { + "RealtimeMetricsSubscriptionConfig": { + "target": "com.amazonaws.cloudfront#RealtimeMetricsSubscriptionConfig", + "traits": { + "smithy.api#documentation": "

A subscription configuration for additional CloudWatch metrics.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

" + } + }, + "com.amazonaws.cloudfront#MonitoringSubscriptionAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A monitoring subscription already exists for the specified distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#NoSuchCachePolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The cache policy does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified origin access identity does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The continuous deployment policy doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchDistribution": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified distribution does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified configuration for field-level encryption doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified profile for field-level encryption doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchFunctionExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The function does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchInvalidation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified invalidation does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchMonitoringSubscription": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A monitoring subscription does not exist for the specified distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchOrigin": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

No origin exists with the specified Origin Id.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchOriginAccessControl": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The origin access control does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The origin request policy does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchPublicKey": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified public key doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The real-time log configuration does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchResource": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A resource that was specified is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The response headers policy does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#NoSuchStreamingDistribution": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified streaming distribution does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.cloudfront#Origin": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique identifier for the origin. This value must be unique within the distribution.

Use this value to specify the TargetOriginId in a CacheBehavior or DefaultCacheBehavior.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name for the origin.

For more information, see Origin Domain Name in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "OriginPath": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.

For more information, see Origin Path in the Amazon CloudFront Developer Guide.

" + } + }, + "CustomHeaders": { + "target": "com.amazonaws.cloudfront#CustomHeaders", + "traits": { + "smithy.api#documentation": "

A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin.

For more information, see Adding Custom Headers to Origin Requests in the Amazon CloudFront Developer Guide.

" + } + }, + "S3OriginConfig": { + "target": "com.amazonaws.cloudfront#S3OriginConfig", + "traits": { + "smithy.api#documentation": "

Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the CustomOriginConfig type instead.

" + } + }, + "CustomOriginConfig": { + "target": "com.amazonaws.cloudfront#CustomOriginConfig", + "traits": { + "smithy.api#documentation": "

Use this type to specify an origin that is not an Amazon S3 bucket, with one exception. If the Amazon S3 bucket is configured with static website hosting, use this type. If the Amazon S3 bucket is not configured with static website hosting, use the S3OriginConfig type instead.

" + } + }, + "VpcOriginConfig": { + "target": "com.amazonaws.cloudfront#VpcOriginConfig", + "traits": { + "smithy.api#documentation": "

The VPC origin configuration.

" + } + }, + "ConnectionAttempts": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of times that CloudFront attempts to connect to the origin. The minimum number is 1, the maximum is 3, and the default (if you don't specify otherwise) is 3.

For a custom origin (including an Amazon S3 bucket that's configured with static website hosting), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an Origin Response Timeout.

For more information, see Origin Connection Attempts in the Amazon CloudFront Developer Guide.

" + } + }, + "ConnectionTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of seconds that CloudFront waits when trying to establish a connection to the origin. The minimum timeout is 1 second, the maximum is 10 seconds, and the default (if you don't specify otherwise) is 10 seconds.

For more information, see Origin Connection Timeout in the Amazon CloudFront Developer Guide.

" + } + }, + "ResponseCompletionTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The time (in seconds) that a request from CloudFront to the origin can stay open and wait for a response. If the complete response isn't received from the origin by this time, CloudFront ends the connection.

The value for ResponseCompletionTimeout must be equal to or greater than the value for OriginReadTimeout. If you don't set a value for ResponseCompletionTimeout, CloudFront doesn't enforce a maximum value.

For more information, see Response completion timeout in the Amazon CloudFront Developer Guide.

" + } + }, + "OriginShield": { + "target": "com.amazonaws.cloudfront#OriginShield", + "traits": { + "smithy.api#documentation": "

CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin.

For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide.

" + } + }, + "OriginAccessControlId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of an origin access control for this origin.

For more information, see Restricting access to an Amazon S3 origin in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An origin.

An origin is the location where content is stored, and from which CloudFront gets content to serve to viewers. To specify an origin:

  • Use S3OriginConfig to specify an Amazon S3 bucket that is not configured with static website hosting.

  • Use VpcOriginConfig to specify a VPC origin.

  • Use CustomOriginConfig to specify all other kinds of origins, including:

    • An Amazon S3 bucket that is configured with static website hosting

    • An Elastic Load Balancing load balancer

    • An Elemental MediaPackage endpoint

    • An Elemental MediaStore container

    • Any other HTTP server, running on an Amazon EC2 instance or any other kind of host

For the current maximum number of origins that you can specify per distribution, see General Quotas on Web Distributions in the Amazon CloudFront Developer Guide (quotas were formerly referred to as limits).

" + } + }, + "com.amazonaws.cloudfront#OriginAccessControl": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control.

", + "smithy.api#required": {} + } + }, + "OriginAccessControlConfig": { + "target": "com.amazonaws.cloudfront#OriginAccessControlConfig", + "traits": { + "smithy.api#documentation": "

The origin access control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFront origin access control, including its unique identifier.

" + } + }, + "com.amazonaws.cloudfront#OriginAccessControlAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An origin access control with the specified parameters already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#OriginAccessControlConfig": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name to identify the origin access control. You can specify up to 64 characters.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A description of the origin access control.

" + } + }, + "SigningProtocol": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSigningProtocols", + "traits": { + "smithy.api#documentation": "

The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. The only valid values are sigv4 and sigv4a.

", + "smithy.api#required": {} + } + }, + "SigningBehavior": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSigningBehaviors", + "traits": { + "smithy.api#documentation": "

Specifies which requests CloudFront signs (adds authentication information to). Specify always for the most common use case. For more information, see origin access control advanced settings in the Amazon CloudFront Developer Guide.

This field can have one of the following values:

  • always – CloudFront signs all origin requests, overwriting the Authorization header from the viewer request if one exists.

  • never – CloudFront doesn't sign any origin requests. This value turns off origin access control for all origins in all distributions that use this origin access control.

  • no-override – If the viewer request doesn't contain the Authorization header, then CloudFront signs the origin request. If the viewer request contains the Authorization header, then CloudFront doesn't sign the origin request and instead passes along the Authorization header from the viewer request. WARNING: To pass along the Authorization header from the viewer request, you must add the Authorization header to a cache policy for all cache behaviors that use origins associated with this origin access control.

  • always-amz-auth – CloudFront signs all origin requests with Amazon authentication headers. If the viewer request contains the Authorization header, then CloudFront also forwards that header to the origin. This value is only valid with Lambda-Web origins. WARNING: To forward the Authorization header from the viewer request, you must add the Authorization header to a cache policy for all cache behaviors that use origins associated with this origin access control.

", + "smithy.api#required": {} + } + }, + "OriginAccessControlOriginType": { + "target": "com.amazonaws.cloudfront#OriginAccessControlOriginTypes", + "traits": { + "smithy.api#documentation": "

The type of origin that this origin access control is for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFront origin access control configuration.

" + } + }, + "com.amazonaws.cloudfront#OriginAccessControlInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the origin access control because it's in use by one or more distributions.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#OriginAccessControlList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the Marker field that was provided in the request.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value to use in the Marker field of another request to continue listing origin access controls.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin access controls requested.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this value is true.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of origin access controls returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSummaryList", + "traits": { + "smithy.api#documentation": "

Contains the origin access controls in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of CloudFront origin access controls.

" + } + }, + "com.amazonaws.cloudfront#OriginAccessControlOriginTypes": { + "type": "enum", + "members": { + "s3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3" + } + }, + "mediastore": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mediastore" + } + }, + "mediapackagev2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mediapackagev2" + } + }, + "lambda": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lambda" + } + } + } + }, + "com.amazonaws.cloudfront#OriginAccessControlSigningBehaviors": { + "type": "enum", + "members": { + "never": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "never" + } + }, + "always": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "always" + } + }, + "no_override": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-override" + } + }, + "always_amz_auth": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "always-amz-auth" + } + } + } + }, + "com.amazonaws.cloudfront#OriginAccessControlSigningProtocols": { + "type": "enum", + "members": { + "sigv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sigv4" + } + }, + "sigv4a": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sigv4a" + } + } + } + }, + "com.amazonaws.cloudfront#OriginAccessControlSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A description of the origin access control.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique name that identifies the origin access control.

", + "smithy.api#required": {} + } + }, + "SigningProtocol": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSigningProtocols", + "traits": { + "smithy.api#documentation": "

The signing protocol of the origin access control. The signing protocol determines how CloudFront signs (authenticates) requests. The only valid values are sigv4 and sigv4a.

", + "smithy.api#required": {} + } + }, + "SigningBehavior": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSigningBehaviors", + "traits": { + "smithy.api#documentation": "

A value that specifies which requests CloudFront signs (adds authentication information to). This field can have one of the following values:

  • never – CloudFront doesn't sign any origin requests.

  • always – CloudFront signs all origin requests, overwriting the Authorization header from the viewer request if necessary.

  • no-override – If the viewer request doesn't contain the Authorization header, CloudFront signs the origin request. If the viewer request contains the Authorization header, CloudFront doesn't sign the origin request, but instead passes along the Authorization header that it received in the viewer request.

  • always-amz-auth – CloudFront signs all origin requests with Amazon authentication headers, and forwards the viewer's Authorization header to the origin if one is present. This value is only valid with Lambda-Web origins.

", + "smithy.api#required": {} + } + }, + "OriginAccessControlOriginType": { + "target": "com.amazonaws.cloudfront#OriginAccessControlOriginTypes", + "traits": { + "smithy.api#documentation": "

The type of origin that this origin access control is for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A CloudFront origin access control.

" + } + }, + "com.amazonaws.cloudfront#OriginAccessControlSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#OriginAccessControlSummary", + "traits": { + "smithy.api#xmlName": "OriginAccessControlSummary" + } + } + }, + "com.amazonaws.cloudfront#OriginCustomHeader": { + "type": "structure", + "members": { + "HeaderName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of a header that you want CloudFront to send to your origin. For more information, see Adding Custom Headers to Origin Requests in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "HeaderValue": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

The value for the header that you specified in the HeaderName field.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains HeaderName and HeaderValue elements, if any, for this distribution.

" + } + }, + "com.amazonaws.cloudfront#OriginCustomHeadersList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#OriginCustomHeader", + "traits": { + "smithy.api#xmlName": "OriginCustomHeader" + } + } + }, + "com.amazonaws.cloudfront#OriginGroup": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The origin group's ID.

", + "smithy.api#required": {} + } + }, + "FailoverCriteria": { + "target": "com.amazonaws.cloudfront#OriginGroupFailoverCriteria", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the failover criteria for an origin group.

", + "smithy.api#required": {} + } + }, + "Members": { + "target": "com.amazonaws.cloudfront#OriginGroupMembers", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the origins in an origin group.

", + "smithy.api#required": {} + } + }, + "SelectionCriteria": { + "target": "com.amazonaws.cloudfront#OriginGroupSelectionCriteria", + "traits": { + "smithy.api#documentation": "

The selection criteria for the origin group. For more information, see Create an origin group in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen.

Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests.

" + } + }, + "com.amazonaws.cloudfront#OriginGroupFailoverCriteria": { + "type": "structure", + "members": { + "StatusCodes": { + "target": "com.amazonaws.cloudfront#StatusCodes", + "traits": { + "smithy.api#documentation": "

The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type that includes information about the failover criteria for an origin group, including the status codes for which CloudFront will failover from the primary origin to the second origin.

" + } + }, + "com.amazonaws.cloudfront#OriginGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#OriginGroup", + "traits": { + "smithy.api#xmlName": "OriginGroup" + } + }, + "traits": { + "smithy.api#documentation": "

List of origin groups for a distribution.

" + } + }, + "com.amazonaws.cloudfront#OriginGroupMember": { + "type": "structure", + "members": { + "OriginId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID for an origin in an origin group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An origin in an origin group.

" + } + }, + "com.amazonaws.cloudfront#OriginGroupMemberList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#OriginGroupMember", + "traits": { + "smithy.api#xmlName": "OriginGroupMember" + } + }, + "traits": { + "smithy.api#documentation": "

List of origins in an origin group.

", + "smithy.api#length": { + "min": 2, + "max": 2 + } + } + }, + "com.amazonaws.cloudfront#OriginGroupMembers": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of origins in an origin group.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginGroupMemberList", + "traits": { + "smithy.api#documentation": "

Items (origins) in an origin group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type for the origins included in an origin group.

" + } + }, + "com.amazonaws.cloudfront#OriginGroupSelectionCriteria": { + "type": "enum", + "members": { + "Default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "MediaQualityBased": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "media-quality-based" + } + } + } + }, + "com.amazonaws.cloudfront#OriginGroups": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of origin groups.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginGroupList", + "traits": { + "smithy.api#documentation": "

The items (origin groups) in a distribution.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type for the origin groups specified for a distribution.

" + } + }, + "com.amazonaws.cloudfront#OriginList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#Origin", + "traits": { + "smithy.api#xmlName": "Origin" + } + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudfront#OriginMtlsConfig": { + "type": "structure", + "members": { + "ClientCertificateArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the client certificate stored in Amazon Web Services Certificate Manager (ACM) that CloudFront uses to authenticate with your origin using Mutual TLS.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Configures mutual TLS authentication between CloudFront and your origin server.

" + } + }, + "com.amazonaws.cloudfront#OriginProtocolPolicy": { + "type": "enum", + "members": { + "http_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http-only" + } + }, + "match_viewer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "match-viewer" + } + }, + "https_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "https-only" + } + } + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicy": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the origin request policy.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the origin request policy was last modified.

", + "smithy.api#required": {} + } + }, + "OriginRequestPolicyConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyConfig", + "traits": { + "smithy.api#documentation": "

The origin request policy configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An origin request policy.

When it's attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:

  • The request body and the URL path (without the domain name) from the viewer request.

  • The headers that CloudFront automatically includes in every origin request, including Host, User-Agent, and X-Amz-Cf-Id.

  • All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.

CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use CachePolicy.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

An origin request policy with this name already exists. You must provide a unique name. To modify an existing origin request policy, use UpdateOriginRequestPolicy.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyConfig": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the origin request policy. The comment cannot be longer than 128 characters.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique name to identify the origin request policy.

", + "smithy.api#required": {} + } + }, + "HeadersConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyHeadersConfig", + "traits": { + "smithy.api#documentation": "

The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.

", + "smithy.api#required": {} + } + }, + "CookiesConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyCookiesConfig", + "traits": { + "smithy.api#documentation": "

The cookies from viewer requests to include in origin requests.

", + "smithy.api#required": {} + } + }, + "QueryStringsConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyQueryStringsConfig", + "traits": { + "smithy.api#documentation": "

The URL query strings from viewer requests to include in origin requests.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An origin request policy configuration.

This configuration determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following:

  • The request body and the URL path (without the domain name) from the viewer request.

  • The headers that CloudFront automatically includes in every origin request, including Host, User-Agent, and X-Amz-Cf-Id.

  • All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront.

CloudFront sends a request when it can't find an object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use CachePolicy.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyCookieBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + }, + "allExcept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allExcept" + } + } + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyCookiesConfig": { + "type": "structure", + "members": { + "CookieBehavior": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyCookieBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No cookies in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the cookies in viewer requests that are listed in the CookieNames type are included in requests that CloudFront sends to the origin.

  • all – All cookies in viewer requests are included in requests that CloudFront sends to the origin.

  • allExcept – All cookies in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the CookieNames type, which are not included.

", + "smithy.api#required": {} + } + }, + "Cookies": { + "target": "com.amazonaws.cloudfront#CookieNames" + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyHeaderBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "allViewer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allViewer" + } + }, + "allViewerAndWhitelistCloudFront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allViewerAndWhitelistCloudFront" + } + }, + "allExcept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allExcept" + } + } + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyHeadersConfig": { + "type": "structure", + "members": { + "HeaderBehavior": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyHeaderBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the HTTP headers that are listed in the Headers type are included in requests that CloudFront sends to the origin.

  • allViewer – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin.

  • allViewerAndWhitelistCloudFront – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the Headers type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront.

  • allExcept – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the Headers type, which are not included.

", + "smithy.api#required": {} + } + }, + "Headers": { + "target": "com.amazonaws.cloudfront#Headers" + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any HTTP headers (and if so, which headers) are included in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the origin request policy because it is attached to one or more cache behaviors.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing origin request policies where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of origin request policies requested.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The total number of origin request policies returned in the response.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicySummaryList", + "traits": { + "smithy.api#documentation": "

Contains the origin request policies in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of origin request policies.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyQueryStringBehavior": { + "type": "enum", + "members": { + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "whitelist": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "whitelist" + } + }, + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + }, + "allExcept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allExcept" + } + } + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyQueryStringsConfig": { + "type": "structure", + "members": { + "QueryStringBehavior": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyQueryStringBehavior", + "traits": { + "smithy.api#documentation": "

Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No query strings in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the query strings in viewer requests that are listed in the QueryStringNames type are included in requests that CloudFront sends to the origin.

  • all – All query strings in viewer requests are included in requests that CloudFront sends to the origin.

  • allExcept – All query strings in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the QueryStringNames type, which are not included.

", + "smithy.api#required": {} + } + }, + "QueryStrings": { + "target": "com.amazonaws.cloudfront#QueryStringNames", + "traits": { + "smithy.api#documentation": "

Contains the specific query strings in viewer requests that either are or are not included in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the OriginRequestPolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in requests that CloudFront sends to the origin.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicySummary": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyType", + "traits": { + "smithy.api#documentation": "

The type of origin request policy, either managed (created by Amazon Web Services) or custom (created in this Amazon Web Services account).

", + "smithy.api#required": {} + } + }, + "OriginRequestPolicy": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicy", + "traits": { + "smithy.api#documentation": "

The origin request policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains an origin request policy.

" + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicySummary", + "traits": { + "smithy.api#xmlName": "OriginRequestPolicySummary" + } + } + }, + "com.amazonaws.cloudfront#OriginRequestPolicyType": { + "type": "enum", + "members": { + "managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "managed" + } + }, + "custom": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + } + } + }, + "com.amazonaws.cloudfront#OriginShield": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that specifies whether Origin Shield is enabled.

When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches.

", + "smithy.api#required": {} + } + }, + "OriginShieldRegion": { + "target": "com.amazonaws.cloudfront#OriginShieldRegion", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region for Origin Shield.

Specify the Amazon Web Services Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as us-east-2.

When you enable CloudFront Origin Shield, you must specify the Amazon Web Services Region for Origin Shield. For the list of Amazon Web Services Regions that you can specify, and for help choosing the best Region for your origin, see Choosing the Amazon Web Services Region for Origin Shield in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

CloudFront Origin Shield.

Using Origin Shield can help reduce the load on your origin. For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#OriginShieldRegion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-z]{2}-[a-z]+-\\d$" + } + }, + "com.amazonaws.cloudfront#OriginSslProtocols": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of SSL/TLS protocols that you want to allow CloudFront to use when establishing an HTTPS connection with this origin.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#SslProtocolsList", + "traits": { + "smithy.api#documentation": "

A list that contains allowed SSL/TLS protocols for this distribution.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin.

" + } + }, + "com.amazonaws.cloudfront#Origins": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of origins for this distribution.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#OriginList", + "traits": { + "smithy.api#documentation": "

A list of origins.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the origins for this distribution.

" + } + }, + "com.amazonaws.cloudfront#Parameter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#ParameterName", + "traits": { + "smithy.api#documentation": "

The parameter name.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfront#ParameterValue", + "traits": { + "smithy.api#documentation": "

The parameter value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of parameter values to add to the resource. A parameter is specified as a key-value pair. A valid parameter value must exist for any parameter that is marked as required in the multi-tenant distribution.

" + } + }, + "com.amazonaws.cloudfront#ParameterDefinition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#ParameterName", + "traits": { + "smithy.api#documentation": "

The name of the parameter.

", + "smithy.api#required": {} + } + }, + "Definition": { + "target": "com.amazonaws.cloudfront#ParameterDefinitionSchema", + "traits": { + "smithy.api#documentation": "

The value that you assigned to the parameter.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of parameter values to add to the resource. A parameter is specified as a key-value pair. A valid parameter value must exist for any parameter that is marked as required in the multi-tenant distribution.

" + } + }, + "com.amazonaws.cloudfront#ParameterDefinitionSchema": { + "type": "structure", + "members": { + "StringSchema": { + "target": "com.amazonaws.cloudfront#StringSchemaConfig", + "traits": { + "smithy.api#documentation": "

An object that contains information about the string schema.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains information about the parameter definition.

" + } + }, + "com.amazonaws.cloudfront#ParameterDefinitions": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ParameterDefinition" + } + }, + "com.amazonaws.cloudfront#ParameterName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_]+$" + } + }, + "com.amazonaws.cloudfront#ParameterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.cloudfront#Parameters": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#Parameter" + } + }, + "com.amazonaws.cloudfront#ParametersInCacheKeyAndForwardedToOrigin": { + "type": "structure", + "members": { + "EnableAcceptEncodingGzip": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that can affect whether the Accept-Encoding HTTP header is included in the cache key and included in requests that CloudFront sends to the origin.

This field is related to the EnableAcceptEncodingBrotli field. If one or both of these fields is true and the viewer request includes the Accept-Encoding header, then CloudFront does the following:

  • Normalizes the value of the viewer's Accept-Encoding header

  • Includes the normalized header in the cache key

  • Includes the normalized header in the request to the origin, if a request is necessary

For more information, see Compression support in the Amazon CloudFront Developer Guide.

If you set this value to true, and this cache behavior also has an origin request policy attached, do not include the Accept-Encoding header in the origin request policy. CloudFront always includes the Accept-Encoding header in origin requests when the value of this field is true, so including this header in an origin request policy has no effect.

If both of these fields are false, then CloudFront treats the Accept-Encoding header the same as any other HTTP header in the viewer request. By default, it's not included in the cache key and it's not included in origin requests. In this case, you can manually add Accept-Encoding to the headers whitelist like any other HTTP header.

", + "smithy.api#required": {} + } + }, + "EnableAcceptEncodingBrotli": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that can affect whether the Accept-Encoding HTTP header is included in the cache key and included in requests that CloudFront sends to the origin.

This field is related to the EnableAcceptEncodingGzip field. If one or both of these fields is true and the viewer request includes the Accept-Encoding header, then CloudFront does the following:

  • Normalizes the value of the viewer's Accept-Encoding header

  • Includes the normalized header in the cache key

  • Includes the normalized header in the request to the origin, if a request is necessary

For more information, see Compression support in the Amazon CloudFront Developer Guide.

If you set this value to true, and this cache behavior also has an origin request policy attached, do not include the Accept-Encoding header in the origin request policy. CloudFront always includes the Accept-Encoding header in origin requests when the value of this field is true, so including this header in an origin request policy has no effect.

If both of these fields are false, then CloudFront treats the Accept-Encoding header the same as any other HTTP header in the viewer request. By default, it's not included in the cache key and it's not included in origin requests. In this case, you can manually add Accept-Encoding to the headers whitelist like any other HTTP header.

" + } + }, + "HeadersConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyHeadersConfig", + "traits": { + "smithy.api#documentation": "

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + }, + "CookiesConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyCookiesConfig", + "traits": { + "smithy.api#documentation": "

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + }, + "QueryStringsConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyQueryStringsConfig", + "traits": { + "smithy.api#documentation": "

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and in requests that CloudFront sends to the origin.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object determines the values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + } + }, + "com.amazonaws.cloudfront#PathList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Path" + } + } + }, + "com.amazonaws.cloudfront#Paths": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of invalidation paths specified for the objects that you want to invalidate.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#PathList", + "traits": { + "smithy.api#documentation": "

A complex type that contains a list of the paths that you want to invalidate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the objects that you want to invalidate. For more information, see Specifying the Objects to Invalidate in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#PreconditionFailed": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The precondition in one or more of the request fields evaluated to false.

", + "smithy.api#error": "client", + "smithy.api#httpError": 412 + } + }, + "com.amazonaws.cloudfront#PriceClass": { + "type": "enum", + "members": { + "PriceClass_100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PriceClass_100" + } + }, + "PriceClass_200": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PriceClass_200" + } + }, + "PriceClass_All": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PriceClass_All" + } + }, + "None": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "None" + } + } + } + }, + "com.amazonaws.cloudfront#PublicKey": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the public key.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the public key was uploaded.

", + "smithy.api#required": {} + } + }, + "PublicKeyConfig": { + "target": "com.amazonaws.cloudfront#PublicKeyConfig", + "traits": { + "smithy.api#documentation": "

Configuration information about a public key that you can use with signed URLs and signed cookies, or with field-level encryption.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A public key that you can use with signed URLs and signed cookies, or with field-level encryption.

CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.

" + } + }, + "com.amazonaws.cloudfront#PublicKeyAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified public key already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#PublicKeyConfig": { + "type": "structure", + "members": { + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A string included in the request to help make sure that the request can't be replayed.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name to help identify the public key.

", + "smithy.api#required": {} + } + }, + "EncodedKey": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The public key that you can use with signed URLs and signed cookies, or with field-level encryption.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the public key. The comment cannot be longer than 128 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration information about a public key that you can use with signed URLs and signed cookies, or with field-level encryption.

CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.

" + } + }, + "com.amazonaws.cloudfront#PublicKeyIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "PublicKey" + } + } + }, + "com.amazonaws.cloudfront#PublicKeyInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified public key is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#PublicKeyList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your public keys where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of public keys you want in the response.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of public keys in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#PublicKeySummaryList", + "traits": { + "smithy.api#documentation": "

A list of public keys.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of public keys that you can use with signed URLs and signed cookies, or with field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#PublicKeySummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the public key.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name to help identify the public key.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the public key was uploaded.

", + "smithy.api#required": {} + } + }, + "EncodedKey": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The public key.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the public key. The comment cannot be longer than 128 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a public key.

" + } + }, + "com.amazonaws.cloudfront#PublicKeySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#PublicKeySummary", + "traits": { + "smithy.api#xmlName": "PublicKeySummary" + } + } + }, + "com.amazonaws.cloudfront#PublishConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#PublishConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#PublishConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Publishes a connection function.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-function/{Id}/publish", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#PublishConnectionFunctionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The connection function ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the connection function.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#PublishConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionSummary": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#documentation": "

The connection function summary.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#PublishFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#PublishFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#PublishFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Publishes a CloudFront function by copying the function code from the DEVELOPMENT stage to LIVE. This automatically updates all cache behaviors that are using this function to use the newly published copy in the LIVE stage.

When a function is published to the LIVE stage, you can attach the function to a distribution's cache behavior, using the function's Amazon Resource Name (ARN).

To publish a function, you must provide the function's name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/function/{Name}/publish", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#PublishFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function that you are publishing.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the function that you are publishing, which you can get using DescribeFunction.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#PublishFunctionResult": { + "type": "structure", + "members": { + "FunctionSummary": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about a CloudFront function.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#PutResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#PutResourcePolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#PutResourcePolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a resource control policy for a given CloudFront resource.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/put-resource-policy", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#PutResourcePolicyRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudFront resource for which the policy is being created.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The JSON-formatted resource policy to create.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#PutResourcePolicyResult": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudFront resource for which the policy was created.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#QueryArgProfile": { + "type": "structure", + "members": { + "QueryArg": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Query argument for field-level encryption query argument-profile mapping.

", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

ID of profile to use for field-level encryption query argument-profile mapping

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Query argument-profile mapping for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#QueryArgProfileConfig": { + "type": "structure", + "members": { + "ForwardWhenQueryArgProfileIsUnknown": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown.

", + "smithy.api#required": {} + } + }, + "QueryArgProfiles": { + "target": "com.amazonaws.cloudfront#QueryArgProfiles", + "traits": { + "smithy.api#documentation": "

Profiles specified for query argument-profile mapping for field-level encryption.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for query argument-profile mapping for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#QueryArgProfileEmpty": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

No profile specified for the field-level encryption query argument.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#QueryArgProfileList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#QueryArgProfile", + "traits": { + "smithy.api#xmlName": "QueryArgProfile" + } + } + }, + "com.amazonaws.cloudfront#QueryArgProfiles": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Number of profiles for query argument-profile mapping for field-level encryption.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#QueryArgProfileList", + "traits": { + "smithy.api#documentation": "

Number of items for query argument-profile mapping for field-level encryption.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Query argument-profile mapping for field-level encryption.

" + } + }, + "com.amazonaws.cloudfront#QueryStringCacheKeys": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of whitelisted query string parameters for a cache behavior.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#QueryStringCacheKeysList", + "traits": { + "smithy.api#documentation": "

A list that contains the query string parameters that you want CloudFront to use as a basis for caching for a cache behavior. If Quantity is 0, you can omit Items.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include query strings in the cache key, use QueryStringsConfig in a cache policy. See CachePolicy.

If you want to send query strings to the origin but not include them in the cache key, use QueryStringsConfig in an origin request policy. See OriginRequestPolicy.

A complex type that contains information about the query string parameters that you want CloudFront to use for caching for a cache behavior.

" + } + }, + "com.amazonaws.cloudfront#QueryStringCacheKeysList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Name" + } + } + }, + "com.amazonaws.cloudfront#QueryStringNames": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of query string names in the Items list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#QueryStringNamesList", + "traits": { + "smithy.api#documentation": "

A list of query string names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a list of query string names.

" + } + }, + "com.amazonaws.cloudfront#QueryStringNamesList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "Name" + } + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfig": { + "type": "structure", + "members": { + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of this real-time log configuration.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique name of this real-time log configuration.

", + "smithy.api#required": {} + } + }, + "SamplingRate": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive.

", + "smithy.api#required": {} + } + }, + "EndPoints": { + "target": "com.amazonaws.cloudfront#EndPointList", + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration.

", + "smithy.api#required": {} + } + }, + "Fields": { + "target": "com.amazonaws.cloudfront#FieldList", + "traits": { + "smithy.api#documentation": "

A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream.

For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A real-time log configuration.

" + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfigAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A real-time log configuration with this name already exists. You must provide a unique name. To modify an existing real-time log configuration, use UpdateRealtimeLogConfig.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfigInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the real-time log configuration because it is attached to one or more cache behaviors.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfig" + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified real-time log configuration belongs to a different Amazon Web Services account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 401 + } + }, + "com.amazonaws.cloudfront#RealtimeLogConfigs": { + "type": "structure", + "members": { + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of real-time log configurations requested.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigList", + "traits": { + "smithy.api#documentation": "

Contains the list of real-time log configurations.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether there are more real-time log configurations than are contained in this list.

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

This parameter indicates where this list of real-time log configurations begins. This list includes real-time log configurations that occur after the marker.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing real-time log configurations where you left off.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of real-time log configurations.

" + } + }, + "com.amazonaws.cloudfront#RealtimeMetricsSubscriptionConfig": { + "type": "structure", + "members": { + "RealtimeMetricsSubscriptionStatus": { + "target": "com.amazonaws.cloudfront#RealtimeMetricsSubscriptionStatus", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A subscription configuration for additional CloudWatch metrics.

" + } + }, + "com.amazonaws.cloudfront#RealtimeMetricsSubscriptionStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.cloudfront#ReferrerPolicyList": { + "type": "enum", + "members": { + "no_referrer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-referrer" + } + }, + "no_referrer_when_downgrade": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-referrer-when-downgrade" + } + }, + "origin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin" + } + }, + "origin_when_cross_origin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin-when-cross-origin" + } + }, + "same_origin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "same-origin" + } + }, + "strict_origin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "strict-origin" + } + }, + "strict_origin_when_cross_origin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "strict-origin-when-cross-origin" + } + }, + "unsafe_url": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsafe-url" + } + } + } + }, + "com.amazonaws.cloudfront#ResourceARN": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws(-cn)?:cloudfront::[0-9]+:" + } + }, + "com.amazonaws.cloudfront#ResourceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.cloudfront#ResourceInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete this resource because it is in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ResourceNotDisabled": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified CloudFront resource hasn't been disabled yet.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicy": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the response headers policy.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when the response headers policy was last modified.

", + "smithy.api#required": {} + } + }, + "ResponseHeadersPolicyConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyConfig", + "traits": { + "smithy.api#documentation": "

A response headers policy configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A response headers policy.

A response headers policy contains information about a set of HTTP response headers.

After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.

For more information, see Adding or removing HTTP headers in CloudFront responses in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowHeaders": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP header names in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AccessControlAllowHeadersList", + "traits": { + "smithy.api#documentation": "

The list of HTTP header names. You can specify * to allow all headers.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header.

For more information about the Access-Control-Allow-Headers HTTP response header, see Access-Control-Allow-Headers in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowMethods": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP methods in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AccessControlAllowMethodsList", + "traits": { + "smithy.api#documentation": "

The list of HTTP methods. Valid values are:

  • GET

  • DELETE

  • HEAD

  • OPTIONS

  • PATCH

  • POST

  • PUT

  • ALL

ALL is a special value that includes all of the listed HTTP methods.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.

For more information about the Access-Control-Allow-Methods HTTP response header, see Access-Control-Allow-Methods in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowMethodsValues": { + "type": "enum", + "members": { + "GET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GET" + } + }, + "POST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST" + } + }, + "OPTIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPTIONS" + } + }, + "PUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUT" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + }, + "PATCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PATCH" + } + }, + "HEAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEAD" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowOrigins": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of origins in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AccessControlAllowOriginsList", + "traits": { + "smithy.api#documentation": "

The list of origins (domain names). You can specify * to allow all origins.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header.

For more information about the Access-Control-Allow-Origin HTTP response header, see Access-Control-Allow-Origin in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlExposeHeaders": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP headers in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AccessControlExposeHeadersList", + "traits": { + "smithy.api#documentation": "

The list of HTTP headers. You can specify * to expose all headers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header.

For more information about the Access-Control-Expose-Headers HTTP response header, see Access-Control-Expose-Headers in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A response headers policy with this name already exists. You must provide a unique name. To modify an existing response headers policy, use UpdateResponseHeadersPolicy.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyConfig": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A comment to describe the response headers policy.

The comment cannot be longer than 128 characters.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A name to identify the response headers policy.

The name must be unique for response headers policies in this Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "CorsConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyCorsConfig", + "traits": { + "smithy.api#documentation": "

A configuration for a set of HTTP response headers that are used for cross-origin resource sharing (CORS).

" + } + }, + "SecurityHeadersConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicySecurityHeadersConfig", + "traits": { + "smithy.api#documentation": "

A configuration for a set of security-related HTTP response headers.

" + } + }, + "ServerTimingHeadersConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyServerTimingHeadersConfig", + "traits": { + "smithy.api#documentation": "

A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront.

" + } + }, + "CustomHeadersConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeadersConfig", + "traits": { + "smithy.api#documentation": "

A configuration for a set of custom HTTP response headers.

" + } + }, + "RemoveHeadersConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeadersConfig", + "traits": { + "smithy.api#documentation": "

A configuration for a set of HTTP headers to remove from the HTTP response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A response headers policy configuration.

A response headers policy configuration contains metadata about the response headers policy, and configurations for sets of HTTP response headers.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyContentSecurityPolicy": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the Content-Security-Policy HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + }, + "ContentSecurityPolicy": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header.

For more information about the Content-Security-Policy HTTP response header, see Content-Security-Policy in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyContentTypeOptions": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the X-Content-Type-Options HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-Content-Type-Options HTTP response header with its value set to nosniff.

For more information about the X-Content-Type-Options HTTP response header, see X-Content-Type-Options in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyCorsConfig": { + "type": "structure", + "members": { + "AccessControlAllowOrigins": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowOrigins", + "traits": { + "smithy.api#documentation": "

A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header.

For more information about the Access-Control-Allow-Origin HTTP response header, see Access-Control-Allow-Origin in the MDN Web Docs.

", + "smithy.api#required": {} + } + }, + "AccessControlAllowHeaders": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowHeaders", + "traits": { + "smithy.api#documentation": "

A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header.

For more information about the Access-Control-Allow-Headers HTTP response header, see Access-Control-Allow-Headers in the MDN Web Docs.

", + "smithy.api#required": {} + } + }, + "AccessControlAllowMethods": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlAllowMethods", + "traits": { + "smithy.api#documentation": "

A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.

For more information about the Access-Control-Allow-Methods HTTP response header, see Access-Control-Allow-Methods in the MDN Web Docs.

", + "smithy.api#required": {} + } + }, + "AccessControlAllowCredentials": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that CloudFront uses as the value for the Access-Control-Allow-Credentials HTTP response header.

For more information about the Access-Control-Allow-Credentials HTTP response header, see Access-Control-Allow-Credentials in the MDN Web Docs.

", + "smithy.api#required": {} + } + }, + "AccessControlExposeHeaders": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAccessControlExposeHeaders", + "traits": { + "smithy.api#documentation": "

A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header.

For more information about the Access-Control-Expose-Headers HTTP response header, see Access-Control-Expose-Headers in the MDN Web Docs.

" + } + }, + "AccessControlMaxAgeSec": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

A number that CloudFront uses as the value for the Access-Control-Max-Age HTTP response header.

For more information about the Access-Control-Max-Age HTTP response header, see Access-Control-Max-Age in the MDN Web Docs.

" + } + }, + "OriginOverride": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A configuration for a set of HTTP response headers that are used for cross-origin resource sharing (CORS). CloudFront adds these headers to HTTP responses that it sends for CORS requests that match a cache behavior associated with this response headers policy.

For more information about CORS, see Cross-Origin Resource Sharing (CORS) in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeader": { + "type": "structure", + "members": { + "Header": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The HTTP response header name.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value for the HTTP response header.

", + "smithy.api#required": {} + } + }, + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides a response header with the same name received from the origin with the header specified here.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An HTTP response header name and its value. CloudFront includes this header in HTTP responses that it sends for requests that match a cache behavior that's associated with this response headers policy.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeaderList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeader", + "traits": { + "smithy.api#xmlName": "ResponseHeadersPolicyCustomHeader" + } + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeadersConfig": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP response headers in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyCustomHeaderList", + "traits": { + "smithy.api#documentation": "

The list of HTTP response headers and their values.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of HTTP response header names and their values. CloudFront includes these headers in HTTP responses that it sends for requests that match a cache behavior that's associated with this response headers policy.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyFrameOptions": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the X-Frame-Options HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + }, + "FrameOption": { + "target": "com.amazonaws.cloudfront#FrameOptionsList", + "traits": { + "smithy.api#documentation": "

The value of the X-Frame-Options HTTP response header. Valid values are DENY and SAMEORIGIN.

For more information about these values, see X-Frame-Options in the MDN Web Docs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-Frame-Options HTTP response header and the header's value.

For more information about the X-Frame-Options HTTP response header, see X-Frame-Options in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Cannot delete the response headers policy because it is attached to one or more cache behaviors in a CloudFront distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyList": { + "type": "structure", + "members": { + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing response headers policies where you left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of response headers policies requested.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of response headers policies returned.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicySummaryList", + "traits": { + "smithy.api#documentation": "

The response headers policies in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of response headers policies.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyReferrerPolicy": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the Referrer-Policy HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + }, + "ReferrerPolicy": { + "target": "com.amazonaws.cloudfront#ReferrerPolicyList", + "traits": { + "smithy.api#documentation": "

The value of the Referrer-Policy HTTP response header. Valid values are:

  • no-referrer

  • no-referrer-when-downgrade

  • origin

  • origin-when-cross-origin

  • same-origin

  • strict-origin

  • strict-origin-when-cross-origin

  • unsafe-url

For more information about these values, see Referrer-Policy in the MDN Web Docs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the Referrer-Policy HTTP response header and the header's value.

For more information about the Referrer-Policy HTTP response header, see Referrer-Policy in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeader": { + "type": "structure", + "members": { + "Header": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The HTTP header name.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The name of an HTTP header that CloudFront removes from HTTP responses to requests that match the cache behavior that this response headers policy is attached to.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeaderList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeader", + "traits": { + "smithy.api#xmlName": "ResponseHeadersPolicyRemoveHeader" + } + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeadersConfig": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of HTTP header names in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyRemoveHeaderList", + "traits": { + "smithy.api#documentation": "

The list of HTTP header names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of HTTP header names that CloudFront removes from HTTP responses to requests that match the cache behavior that this response headers policy is attached to.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicySecurityHeadersConfig": { + "type": "structure", + "members": { + "XSSProtection": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyXSSProtection", + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-XSS-Protection HTTP response header and the header's value.

For more information about the X-XSS-Protection HTTP response header, see X-XSS-Protection in the MDN Web Docs.

" + } + }, + "FrameOptions": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyFrameOptions", + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-Frame-Options HTTP response header and the header's value.

For more information about the X-Frame-Options HTTP response header, see X-Frame-Options in the MDN Web Docs.

" + } + }, + "ReferrerPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyReferrerPolicy", + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the Referrer-Policy HTTP response header and the header's value.

For more information about the Referrer-Policy HTTP response header, see Referrer-Policy in the MDN Web Docs.

" + } + }, + "ContentSecurityPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyContentSecurityPolicy", + "traits": { + "smithy.api#documentation": "

The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header.

For more information about the Content-Security-Policy HTTP response header, see Content-Security-Policy in the MDN Web Docs.

" + } + }, + "ContentTypeOptions": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyContentTypeOptions", + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-Content-Type-Options HTTP response header with its value set to nosniff.

For more information about the X-Content-Type-Options HTTP response header, see X-Content-Type-Options in the MDN Web Docs.

" + } + }, + "StrictTransportSecurity": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyStrictTransportSecurity", + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the Strict-Transport-Security HTTP response header and the header's value.

For more information about the Strict-Transport-Security HTTP response header, see Security headers in the Amazon CloudFront Developer Guide and Strict-Transport-Security in the MDN Web Docs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A configuration for a set of security-related HTTP response headers. CloudFront adds these headers to HTTP responses that it sends for requests that match a cache behavior associated with this response headers policy.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyServerTimingHeadersConfig": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront adds the Server-Timing header to HTTP responses that it sends in response to requests that match a cache behavior that's associated with this response headers policy.

", + "smithy.api#required": {} + } + }, + "SamplingRate": { + "target": "com.amazonaws.cloudfront#SamplingRate", + "traits": { + "smithy.api#documentation": "

A number 0–100 (inclusive) that specifies the percentage of responses that you want CloudFront to add the Server-Timing header to. When you set the sampling rate to 100, CloudFront adds the Server-Timing header to the HTTP response for every request that matches the cache behavior that this response headers policy is attached to. When you set it to 50, CloudFront adds the header to 50% of the responses for requests that match the cache behavior. You can set the sampling rate to any number 0–100 with up to four decimal places.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront. CloudFront adds this header to HTTP responses that it sends in response to requests that match a cache behavior that's associated with this response headers policy.

You can use the Server-Timing header to view metrics that can help you gain insights about the behavior and performance of CloudFront. For example, you can see which cache layer served a cache hit, or the first byte latency from the origin when there was a cache miss. You can use the metrics in the Server-Timing header to troubleshoot issues or test the efficiency of your CloudFront configuration. For more information, see Server-Timing header in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyStrictTransportSecurity": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the Strict-Transport-Security HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + }, + "IncludeSubdomains": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront includes the includeSubDomains directive in the Strict-Transport-Security HTTP response header.

" + } + }, + "Preload": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront includes the preload directive in the Strict-Transport-Security HTTP response header.

" + } + }, + "AccessControlMaxAgeSec": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

A number that CloudFront uses as the value for the max-age directive in the Strict-Transport-Security HTTP response header.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the Strict-Transport-Security HTTP response header and the header's value.

For more information about the Strict-Transport-Security HTTP response header, see Strict-Transport-Security in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicySummary": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyType", + "traits": { + "smithy.api#documentation": "

The type of response headers policy, either managed (created by Amazon Web Services) or custom (created in this Amazon Web Services account).

", + "smithy.api#required": {} + } + }, + "ResponseHeadersPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicy", + "traits": { + "smithy.api#documentation": "

The response headers policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a response headers policy.

" + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicySummary", + "traits": { + "smithy.api#xmlName": "ResponseHeadersPolicySummary" + } + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyType": { + "type": "enum", + "members": { + "managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "managed" + } + }, + "custom": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + } + } + }, + "com.amazonaws.cloudfront#ResponseHeadersPolicyXSSProtection": { + "type": "structure", + "members": { + "Override": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy.

", + "smithy.api#required": {} + } + }, + "Protection": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines the value of the X-XSS-Protection HTTP response header. When this setting is true, the value of the X-XSS-Protection header is 1. When this setting is false, the value of the X-XSS-Protection header is 0.

For more information about these settings, see X-XSS-Protection in the MDN Web Docs.

", + "smithy.api#required": {} + } + }, + "ModeBlock": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether CloudFront includes the mode=block directive in the X-XSS-Protection header.

For more information about this directive, see X-XSS-Protection in the MDN Web Docs.

" + } + }, + "ReportUri": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A reporting URI, which CloudFront uses as the value of the report directive in the X-XSS-Protection header.

You cannot specify a ReportUri when ModeBlock is true.

For more information about using a reporting URL, see X-XSS-Protection in the MDN Web Docs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines whether CloudFront includes the X-XSS-Protection HTTP response header and the header's value.

For more information about the X-XSS-Protection HTTP response header, see X-XSS-Protection in the MDN Web Docs.

" + } + }, + "com.amazonaws.cloudfront#Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "target": "com.amazonaws.cloudfront#GeoRestriction", + "traits": { + "smithy.api#documentation": "

A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using MaxMind GeoIP databases.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that identifies ways in which you want to restrict distribution of your content.

" + } + }, + "com.amazonaws.cloudfront#S3Origin": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The DNS name of the Amazon S3 origin.

", + "smithy.api#required": {} + } + }, + "OriginAccessIdentity": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The CloudFront origin access identity to associate with the distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront.

If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.

To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element.

To replace the origin access identity, update the distribution configuration and specify the new origin access identity.

For more information, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.

" + } + }, + "com.amazonaws.cloudfront#S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

If you're using origin access control (OAC) instead of origin access identity, specify an empty OriginAccessIdentity element. For more information, see Restricting access to an Amazon Web Services in the Amazon CloudFront Developer Guide.

The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can only access objects in an Amazon S3 bucket through CloudFront. The format of the value is:

origin-access-identity/cloudfront/ID-of-origin-access-identity

The ID-of-origin-access-identity is the value that CloudFront returned in the ID element when you created the origin access identity.

If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.

To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element.

To replace the origin access identity, update the distribution configuration and specify the new origin access identity.

For more information about the origin access identity, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "OriginReadTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the origin response timeout. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.

For more information, see Response timeout in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin or an S3 bucket that is configured as a website endpoint, use the CustomOriginConfig element instead.

" + } + }, + "com.amazonaws.cloudfront#SSLSupportMethod": { + "type": "enum", + "members": { + "sni_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sni-only" + } + }, + "vip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vip" + } + }, + "static_ip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static-ip" + } + } + } + }, + "com.amazonaws.cloudfront#SamplingRate": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.0, + "max": 100.0 + } + } + }, + "com.amazonaws.cloudfront#ServerCertificateId": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 32 + } + } + }, + "com.amazonaws.cloudfront#SessionStickinessConfig": { + "type": "structure", + "members": { + "IdleTTL": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The amount of time after which you want sessions to cease if no requests are received. Allowed values are 300–3600 seconds (5–60 minutes).

The value must be less than or equal to MaximumTTL.

", + "smithy.api#required": {} + } + }, + "MaximumTTL": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).

The value must be greater than or equal to IdleTTL.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user's requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.

" + } + }, + "com.amazonaws.cloudfront#Signer": { + "type": "structure", + "members": { + "AwsAccountNumber": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services account number that contains active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If the Amazon Web Services account that owns the key pairs is the same account that owns the CloudFront distribution, the value of this field is self.

" + } + }, + "KeyPairIds": { + "target": "com.amazonaws.cloudfront#KeyPairIds", + "traits": { + "smithy.api#documentation": "

A list of CloudFront key pair identifiers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services accounts and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#SignerList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#Signer", + "traits": { + "smithy.api#xmlName": "Signer" + } + } + }, + "com.amazonaws.cloudfront#SslProtocol": { + "type": "enum", + "members": { + "SSLv3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSLv3" + } + }, + "TLSv1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1" + } + }, + "TLSv1_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.1" + } + }, + "TLSv1_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLSv1.2" + } + } + } + }, + "com.amazonaws.cloudfront#SslProtocolsList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#SslProtocol", + "traits": { + "smithy.api#xmlName": "SslProtocol" + } + } + }, + "com.amazonaws.cloudfront#StagingDistributionDnsNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "DnsName" + } + } + }, + "com.amazonaws.cloudfront#StagingDistributionDnsNames": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of CloudFront domain names in your staging distribution.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#StagingDistributionDnsNameList", + "traits": { + "smithy.api#documentation": "

The CloudFront domain name of the staging distribution.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudFront domain name of the staging distribution.

" + } + }, + "com.amazonaws.cloudfront#StagingDistributionInUse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

A continuous deployment policy for this staging distribution already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#StatusCodeList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#xmlName": "StatusCode" + } + }, + "traits": { + "smithy.api#documentation": "

List of status codes for origin failover.

", + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.cloudfront#StatusCodes": { + "type": "structure", + "members": { + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of status codes.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#StatusCodeList", + "traits": { + "smithy.api#documentation": "

The items (status codes) for an origin group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex data type for the status codes that you specify that, when returned by a primary origin, trigger CloudFront to failover to a second origin.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistribution": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the RTMP distribution. For example: EGTXBD79EXAMPLE.

", + "smithy.api#required": {} + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your Amazon Web Services account ID.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current status of the RTMP distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time that the distribution was last modified.

" + } + }, + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name that corresponds to the streaming distribution, for example, s5c39gqb8ow64r.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "ActiveTrustedSigners": { + "target": "com.amazonaws.cloudfront#ActiveTrustedSigners", + "traits": { + "smithy.api#documentation": "

A complex type that lists the Amazon Web Services accounts, if any, that you included in the TrustedSigners complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content.

The Signer complex type lists the Amazon Web Services account number of the trusted signer or self if the signer is the Amazon Web Services account that created the distribution. The Signer element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's Amazon Web Services account. If no KeyPairId element appears for a Signer, that signer can't create signed URLs.

For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "StreamingDistributionConfig": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfig", + "traits": { + "smithy.api#documentation": "

The current configuration information for the RTMP distribution.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A streaming distribution tells CloudFront where you want RTMP content to be delivered from, and the details about how to track and manage content delivery.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistributionAlreadyExists": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The caller reference you attempted to create the streaming distribution with is associated with another distribution

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.

If the value of CallerReference is new (regardless of the content of the StreamingDistributionConfig object), CloudFront creates a new distribution.

If CallerReference is a value that you already sent in a previous request to create a distribution, CloudFront returns a DistributionAlreadyExists error.

", + "smithy.api#required": {} + } + }, + "S3Origin": { + "target": "com.amazonaws.cloudfront#S3Origin", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.

", + "smithy.api#required": {} + } + }, + "Aliases": { + "target": "com.amazonaws.cloudfront#Aliases", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.

" + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Any comments you want to include about the streaming distribution.

", + "smithy.api#required": {} + } + }, + "Logging": { + "target": "com.amazonaws.cloudfront#StreamingLoggingConfig", + "traits": { + "smithy.api#documentation": "

A complex type that controls whether access logs are written for the streaming distribution.

" + } + }, + "TrustedSigners": { + "target": "com.amazonaws.cloudfront#TrustedSigners", + "traits": { + "smithy.api#documentation": "

A complex type that specifies any Amazon Web Services accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "PriceClass": { + "target": "com.amazonaws.cloudfront#PriceClass", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about price class for this streaming distribution.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the streaming distribution is enabled to accept user requests for content.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The RTMP distribution's configuration information.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistributionConfigWithTags": { + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfig", + "traits": { + "smithy.api#documentation": "

A streaming distribution Configuration.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A streaming distribution Configuration and a list of tags to be associated with the streaming distribution.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistributionList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value you provided for the Marker request parameter.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your RTMP distributions where they left off.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The value you provided for the MaxItems request parameter.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of streaming distributions that were created by the current Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#StreamingDistributionSummaryList", + "traits": { + "smithy.api#documentation": "

A complex type that contains one StreamingDistributionSummary element for each distribution that was created by the current Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A streaming distribution list.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistributionNotDisabled": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified CloudFront distribution is not disabled. You must disable the distribution before you can delete it.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.cloudfront#StreamingDistributionSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the distribution, for example, EDFDVBD632BHDS5.

", + "smithy.api#required": {} + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN (Amazon Resource Name) for the streaming distribution. For example: arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5, where 123456789012 is your Amazon Web Services account ID.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

Indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time the distribution was last modified.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.

", + "smithy.api#required": {} + } + }, + "S3Origin": { + "target": "com.amazonaws.cloudfront#S3Origin", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.

", + "smithy.api#required": {} + } + }, + "Aliases": { + "target": "com.amazonaws.cloudfront#Aliases", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.

", + "smithy.api#required": {} + } + }, + "TrustedSigners": { + "target": "com.amazonaws.cloudfront#TrustedSigners", + "traits": { + "smithy.api#documentation": "

A complex type that specifies the Amazon Web Services accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items.If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The comment originally specified when this distribution was created.

", + "smithy.api#required": {} + } + }, + "PriceClass": { + "target": "com.amazonaws.cloudfront#PriceClass", + "traits": { + "smithy.api#documentation": "

A complex type that contains information about price class for this streaming distribution.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the distribution is enabled to accept end user requests for content.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the information for a CloudFront streaming distribution.

" + } + }, + "com.amazonaws.cloudfront#StreamingDistributionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#StreamingDistributionSummary", + "traits": { + "smithy.api#xmlName": "StreamingDistributionSummary" + } + } + }, + "com.amazonaws.cloudfront#StreamingLoggingConfig": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.

", + "smithy.api#required": {} + } + }, + "Bucket": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket to store the access logs in, for example, amzn-s3-demo-bucket.s3.amazonaws.com.

", + "smithy.api#required": {} + } + }, + "Prefix": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that controls whether access logs are written for this streaming distribution.

" + } + }, + "com.amazonaws.cloudfront#StringSchemaConfig": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

A comment to describe the parameter.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.cloudfront#ParameterValue", + "traits": { + "smithy.api#documentation": "

The default value of the parameter.

" + } + }, + "Required": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the defined parameter is required.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a string schema.

" + } + }, + "com.amazonaws.cloudfront#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.cloudfront#TagKey", + "traits": { + "smithy.api#documentation": "

A string that contains Tag key.

The string length should be between 1 and 128 characters. Valid characters include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.cloudfront#TagValue", + "traits": { + "smithy.api#documentation": "

A string that contains an optional Tag value.

The string length should be between 0 and 256 characters. Valid characters include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains Tag key and Tag value.

" + } + }, + "com.amazonaws.cloudfront#TagKey": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A string that contains Tag key.

The string length should be between 1 and 128 characters. Valid characters include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @.

", + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.cloudfront#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#TagKey", + "traits": { + "smithy.api#xmlName": "Key" + } + } + }, + "com.amazonaws.cloudfront#TagKeys": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.cloudfront#TagKeyList", + "traits": { + "smithy.api#documentation": "

A complex type that contains Tag key elements.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

" + } + }, + "com.amazonaws.cloudfront#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#Tag", + "traits": { + "smithy.api#xmlName": "Tag" + } + } + }, + "com.amazonaws.cloudfront#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#TagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

Add tags to a CloudFront resource. For more information, see Tagging a distribution in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/tagging?Operation=Tag", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#TagResourceRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.cloudfront#ResourceARN", + "traits": { + "smithy.api#documentation": "

An ARN of a CloudFront resource.

", + "smithy.api#httpQuery": "Resource", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.cloudfront#Tags", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "Tags" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to add tags to a CloudFront resource.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.cloudfront#Tags": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.cloudfront#TagList", + "traits": { + "smithy.api#documentation": "

A complex type that contains Tag elements.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag elements.

" + } + }, + "com.amazonaws.cloudfront#TenantConfig": { + "type": "structure", + "members": { + "ParameterDefinitions": { + "target": "com.amazonaws.cloudfront#ParameterDefinitions", + "traits": { + "smithy.api#documentation": "

The parameters that you specify for a distribution tenant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This field only supports multi-tenant distributions. You can't specify this field for standard distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

The configuration for a distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#TestConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#TestConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#TestConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TestFunctionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Tests a connection function.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/connection-function/{Id}/test", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#TestConnectionFunctionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The connection function ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the connection function.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The connection function stage.

" + } + }, + "ConnectionObject": { + "target": "com.amazonaws.cloudfront#FunctionEventObject", + "traits": { + "smithy.api#documentation": "

The connection object.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#TestConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionTestResult": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionTestResult", + "traits": { + "smithy.api#documentation": "

The connection function test result.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#TestFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#TestFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#TestFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#TestFunctionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Tests a CloudFront function.

To test a function, you provide an event object that represents an HTTP request or response that your CloudFront distribution could receive in production. CloudFront runs the function, passing it the event object that you provided, and returns the function's result (the modified event object) in the response. The response also contains function logs and error messages, if any exist. For more information about testing functions, see Testing functions in the Amazon CloudFront Developer Guide.

To test a function, you provide the function's name and version (ETag value) along with the event object. To get the function's name and version, you can use ListFunctions and DescribeFunction.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/function/{Name}/test", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#TestFunctionFailed": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The CloudFront function failed.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.cloudfront#TestFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function that you are testing.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the function that you are testing, which you can get using DescribeFunction.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "Stage": { + "target": "com.amazonaws.cloudfront#FunctionStage", + "traits": { + "smithy.api#documentation": "

The stage of the function that you are testing, either DEVELOPMENT or LIVE.

" + } + }, + "EventObject": { + "target": "com.amazonaws.cloudfront#FunctionEventObject", + "traits": { + "smithy.api#documentation": "

The event object to test the function with. For more information about the structure of the event object, see Testing functions in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#TestFunctionResult": { + "type": "structure", + "members": { + "TestResult": { + "target": "com.amazonaws.cloudfront#TestResult", + "traits": { + "smithy.api#documentation": "

An object that represents the result of running the function with the provided event object.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#TestResult": { + "type": "structure", + "members": { + "FunctionSummary": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about the CloudFront function that was tested.

" + } + }, + "ComputeUtilization": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The amount of time that the function took to run as a percentage of the maximum allowed time. For example, a compute utilization of 35 means that the function completed in 35% of the maximum allowed time.

" + } + }, + "FunctionExecutionLogs": { + "target": "com.amazonaws.cloudfront#FunctionExecutionLogList", + "traits": { + "smithy.api#documentation": "

Contains the log lines that the function wrote (if any) when running the test.

" + } + }, + "FunctionErrorMessage": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

If the result of testing the function was an error, this field contains the error message.

" + } + }, + "FunctionOutput": { + "target": "com.amazonaws.cloudfront#sensitiveStringType", + "traits": { + "smithy.api#documentation": "

The event object returned by the function. For more information about the structure of the event object, see Event object structure in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of testing a CloudFront function with TestFunction.

" + } + }, + "com.amazonaws.cloudfront#TooLongCSPInResponseHeadersPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The length of the Content-Security-Policy header value in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCacheBehaviors": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You cannot create more cache behaviors for the distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCachePolicies": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of cache policies for this Amazon Web Services account. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCertificates": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You cannot create anymore custom SSL/TLS certificates.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCloudFrontOriginAccessIdentities": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Processing your request would cause you to exceed the maximum number of origin access identities allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyContinuousDeploymentPolicies": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of continuous deployment policies for this Amazon Web Services account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains more cookie names in the whitelist than are allowed per cache behavior.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCookiesInCachePolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of cookies in the cache policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCookiesInOriginRequestPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of cookies in the origin request policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyCustomHeadersInResponseHeadersPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of custom headers in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionCNAMEs": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains more CNAMEs than are allowed per distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributions": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Processing your request would cause you to exceed the maximum number of distributions allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified cache policy. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified configuration for field-level encryption.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of distributions that reference this key group is more than the maximum allowed. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified origin access control.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified origin request policy. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified response headers policy.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of distributions that are associated with a CloudFront function. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Processing your request would cause the maximum number of distributions with Lambda@Edge function associations per owner to be exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of distributions have been associated with the specified Lambda@Edge function.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionConfigs": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of configurations for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionContentTypeProfiles": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of content type profiles for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionEncryptionEntities": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of encryption entities for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionFieldPatterns": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of field patterns for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionProfiles": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of profiles for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionQueryArgProfiles": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of query arg profiles for field-level encryption have been created.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFunctionAssociations": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of CloudFront function associations for this distribution. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyFunctions": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of CloudFront functions for this Amazon Web Services account. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyHeadersInCachePolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of headers in the cache policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains too many headers in forwarded values.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyHeadersInOriginRequestPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of headers in the origin request policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyInvalidationsInProgress": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have exceeded the maximum number of allowable InProgress invalidation batch requests, or invalidation objects.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyKeyGroups": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of key groups for this Amazon Web Services account. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of key groups referenced by this distribution is more than the maximum allowed. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains more Lambda@Edge function associations than are allowed per distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyOriginAccessControls": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of origin access controls in your Amazon Web Services account exceeds the maximum allowed.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyOriginCustomHeaders": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains too many origin custom headers.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Processing your request would cause you to exceed the maximum number of origin groups allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyOriginRequestPolicies": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of origin request policies for this Amazon Web Services account. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyOrigins": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You cannot create more origins for the distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyPublicKeys": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The maximum number of public keys for field-level encryption have been created. To create a new public key, delete one of the existing keys.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyPublicKeysInKeyGroup": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of public keys in this key group is more than the maximum allowed. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyQueryStringParameters": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains too many query string parameters.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyQueryStringsInCachePolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of query strings in the cache policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyQueryStringsInOriginRequestPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of query strings in the origin request policy exceeds the maximum. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyRealtimeLogConfigs": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of real-time log configurations for this Amazon Web Services account. For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyRemoveHeadersInResponseHeadersPolicy": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The number of headers in RemoveHeadersConfig in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyResponseHeadersPolicies": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

You have reached the maximum number of response headers policies for this Amazon Web Services account.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains more CNAMEs than are allowed per distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyStreamingDistributions": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Processing your request would cause you to exceed the maximum number of streaming distributions allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TooManyTrustedSigners": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

Your request contains more trusted signers than are allowed per distribution.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TrafficConfig": { + "type": "structure", + "members": { + "SingleWeightConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentSingleWeightConfig", + "traits": { + "smithy.api#documentation": "

Contains the percentage of traffic to send to the staging distribution.

" + } + }, + "SingleHeaderConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentSingleHeaderConfig", + "traits": { + "smithy.api#documentation": "

Determines which HTTP requests are sent to the staging distribution.

" + } + }, + "Type": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyType", + "traits": { + "smithy.api#documentation": "

The type of traffic configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The traffic configuration of your continuous deployment.

" + } + }, + "com.amazonaws.cloudfront#TrustStore": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's ID.

" + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's Amazon Resource Name (ARN).

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's name.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#TrustStoreStatus", + "traits": { + "smithy.api#documentation": "

The trust store's status.

" + } + }, + "NumberOfCaCertificates": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The trust store's number of CA certificates.

" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The trust store's last modified time.

" + } + }, + "Reason": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's reason.

" + } + }, + "UseClientCertificateOCSPEndpoint": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether the trust store uses the CA certificate's OCSP endpoint to check certificate revocation status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A trust store.

" + } + }, + "com.amazonaws.cloudfront#TrustStoreConfig": { + "type": "structure", + "members": { + "TrustStoreId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store ID.

", + "smithy.api#required": {} + } + }, + "AdvertiseTrustStoreCaNames": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

The configuration to use to advertise trust store CA names.

" + } + }, + "IgnoreCertificateExpiry": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

The configuration to use to ignore certificate expiration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A trust store configuration.

" + } + }, + "com.amazonaws.cloudfront#TrustStoreList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#TrustStoreSummary", + "traits": { + "smithy.api#xmlName": "TrustStoreSummary" + } + } + }, + "com.amazonaws.cloudfront#TrustStoreStatus": { + "type": "enum", + "members": { + "Pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "Active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "Failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.cloudfront#TrustStoreSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's ID.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's name.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#TrustStoreStatus", + "traits": { + "smithy.api#documentation": "

The trust store's status.

", + "smithy.api#required": {} + } + }, + "NumberOfCaCertificates": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The trust store's number of CA certificates.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The trust store's last modified time.

", + "smithy.api#required": {} + } + }, + "Reason": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The trust store's reason.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the trust store.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A trust store summary.

" + } + }, + "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

The specified key group does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TrustedKeyGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#xmlName": "KeyGroup" + } + } + }, + "com.amazonaws.cloudfront#TrustedKeyGroups": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field is true if any of the key groups in the list have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of key groups in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of key groups identifiers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of key groups whose public keys CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#TrustedSignerDoesNotExist": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

One or more of your trusted signers don't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

This field is true if any of the Amazon Web Services accounts in the list are configured as trusted signers. If not, this field is false.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of Amazon Web Services accounts in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#AwsAccountNumberList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account identifiers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services accounts whose public keys CloudFront can use to verify the signatures of signed URLs and signed cookies.

" + } + }, + "com.amazonaws.cloudfront#UnsupportedOperation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudfront#string" + } + }, + "traits": { + "smithy.api#documentation": "

This operation is not supported in this Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.cloudfront#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UntagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTagging" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + } + ], + "traits": { + "smithy.api#documentation": "

Remove tags from a CloudFront resource. For more information, see Tagging a distribution in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/tagging?Operation=Untag", + "code": 204 + } + } + }, + "com.amazonaws.cloudfront#UntagResourceRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.cloudfront#ResourceARN", + "traits": { + "smithy.api#documentation": "

An ARN of a CloudFront resource.

", + "smithy.api#httpQuery": "Resource", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.cloudfront#TagKeys", + "traits": { + "smithy.api#documentation": "

A complex type that contains zero or more Tag key elements.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "TagKeys" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to remove tags from a CloudFront resource.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateAnycastIpList": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateAnycastIpListRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateAnycastIpListResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Updates an Anycast static IP list.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/anycast-ip-list/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateAnycastIpListRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the Anycast static IP list. You can specify one of the following options:

  • ipv4 only

  • ipv6 only

  • dualstack - Allocate a list of both IPv4 and IPv6 addresses

" + } + }, + "IpamCidrConfigs": { + "target": "com.amazonaws.cloudfront#IpamCidrConfigList", + "traits": { + "smithy.api#documentation": "

A list of IPAM CIDR configurations that specify the IP address ranges and IPAM pool settings for updating the Anycast static IP list.

" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the Anycast static IP list that you are updating.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateAnycastIpListResult": { + "type": "structure", + "members": { + "AnycastIpList": { + "target": "com.amazonaws.cloudfront#AnycastIpList", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the Anycast static IP list.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateCachePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateCachePolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateCachePolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CachePolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookiesInCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringsInCachePolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a cache policy configuration.

When you update a cache policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a cache policy configuration:

  1. Use GetCachePolicyConfig to get the current configuration.

  2. Locally modify the fields in the cache policy configuration that you want to update.

  3. Call UpdateCachePolicy by providing the entire cache policy configuration, including the fields that you modified and those that you didn't.

If your minimum TTL is greater than 0, CloudFront will cache content for at least the duration specified in the cache policy's minimum TTL, even if the Cache-Control: no-cache, no-store, or private directives are present in the origin headers.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/cache-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateCachePolicyRequest": { + "type": "structure", + "members": { + "CachePolicyConfig": { + "target": "com.amazonaws.cloudfront#CachePolicyConfig", + "traits": { + "smithy.api#documentation": "

A cache policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "CachePolicyConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the cache policy that you are updating. The identifier is returned in a cache behavior's CachePolicyId field in the response to GetDistributionConfig.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the cache policy that you are updating. The version is returned in the cache policy's ETag field in the response to GetCachePolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateCachePolicyResult": { + "type": "structure", + "members": { + "CachePolicy": { + "target": "com.amazonaws.cloudfront#CachePolicy", + "traits": { + "smithy.api#documentation": "

A cache policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the cache policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentity": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCloudFrontOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Update an origin access identity.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/origin-access-identity/cloudfront/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityRequest": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentityConfig", + "traits": { + "smithy.api#documentation": "

The identity's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "CloudFrontOriginAccessIdentityConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identity's id.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the identity's configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to update an origin access identity.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateCloudFrontOriginAccessIdentityResult": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "target": "com.amazonaws.cloudfront#CloudFrontOriginAccessIdentity", + "traits": { + "smithy.api#documentation": "

The origin access identity's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateConnectionFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateConnectionFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateConnectionFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#EntitySizeLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a connection function.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/connection-function/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateConnectionFunctionRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The connection function ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the connection function you are updating.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "ConnectionFunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#required": {} + } + }, + "ConnectionFunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The connection function code.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateConnectionFunctionResult": { + "type": "structure", + "members": { + "ConnectionFunctionSummary": { + "target": "com.amazonaws.cloudfront#ConnectionFunctionSummary", + "traits": { + "smithy.api#documentation": "

The connection function summary.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the connection function.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateConnectionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateConnectionGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateConnectionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResourceInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a connection group.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/connection-group/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateConnectionGroupRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the connection group.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Ipv6Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Enable IPv6 for the connection group. For more information, see Enable IPv6 in the Amazon CloudFront Developer Guide.

" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the connection group that you're updating.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "AnycastIpListId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the Anycast static IP list.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Whether the connection group is enabled.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateConnectionGroupResult": { + "type": "structure", + "members": { + "ConnectionGroup": { + "target": "com.amazonaws.cloudfront#ConnectionGroup", + "traits": { + "smithy.api#documentation": "

The connection group that you updated.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the connection group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#StagingDistributionInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a continuous deployment policy. You can update a continuous deployment policy to enable or disable it, to change the percentage of traffic that it sends to the staging distribution, or to change the staging distribution that it sends traffic to.

When you update a continuous deployment policy configuration, all the fields are updated with the values that are provided in the request. You cannot update some fields independent of others. To update a continuous deployment policy configuration:

  1. Use GetContinuousDeploymentPolicyConfig to get the current configuration.

  2. Locally modify the fields in the continuous deployment policy configuration that you want to update.

  3. Use UpdateContinuousDeploymentPolicy, providing the entire continuous deployment policy configuration, including the fields that you modified and those that you didn't.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/continuous-deployment-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyRequest": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicyConfig": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyConfig", + "traits": { + "smithy.api#documentation": "

The continuous deployment policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ContinuousDeploymentPolicyConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the continuous deployment policy that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the continuous deployment policy that you are updating.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateContinuousDeploymentPolicyResult": { + "type": "structure", + "members": { + "ContinuousDeploymentPolicy": { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicy", + "traits": { + "smithy.api#documentation": "

A continuous deployment policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the continuous deployment policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#ContinuousDeploymentPolicyInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" + }, + { + "target": "com.amazonaws.cloudfront#IllegalOriginAccessConfiguration" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDefaultRootObject" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDomainNameForOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidErrorCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidForwardCookies" + }, + { + "target": "com.amazonaws.cloudfront#InvalidFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter" + }, + { + "target": "com.amazonaws.cloudfront#InvalidHeadersForS3Origin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLocationCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginReadTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRelativePath" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRequiredProtocol" + }, + { + "target": "com.amazonaws.cloudfront#InvalidResponseCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTTLOrder" + }, + { + "target": "com.amazonaws.cloudfront#InvalidViewerCertificate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchContinuousDeploymentPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOrigin" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch" + }, + { + "target": "com.amazonaws.cloudfront#StagingDistributionInUse" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCacheBehaviors" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCertificates" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginCustomHeaders" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOrigins" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the configuration for a CloudFront distribution.

The update process includes getting the current distribution configuration, updating it to make your changes, and then submitting an UpdateDistribution request to make the updates.

To update a web distribution using the CloudFront API

  1. Use GetDistributionConfig to get the current configuration, including the version identifier (ETag).

  2. Update the distribution configuration that was returned in the response. Note the following important requirements and restrictions:

    • You must copy the ETag field value from the response. (You'll use it for the IfMatch parameter in your request.) Then, remove the ETag field from the distribution configuration.

    • You can't change the value of CallerReference.

  3. Submit an UpdateDistribution request, providing the updated distribution configuration. The new configuration replaces the existing configuration. The values that you specify in an UpdateDistribution request are not merged into your existing configuration. Make sure to include all fields: the ones that you modified and also the ones that you didn't.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateDistributionRequest": { + "type": "structure", + "members": { + "DistributionConfig": { + "target": "com.amazonaws.cloudfront#DistributionConfig", + "traits": { + "smithy.api#documentation": "

The distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "DistributionConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The distribution's id.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the distribution's configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to update a distribution.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistributionResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#documentation": "

The distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistributionTenant": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateDistributionTenantRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateDistributionTenantResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a distribution tenant.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution-tenant/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateDistributionTenantRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the distribution tenant.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID for the multi-tenant distribution.

" + } + }, + "Domains": { + "target": "com.amazonaws.cloudfront#DomainList", + "traits": { + "smithy.api#documentation": "

The domains to update for the distribution tenant. A domain object can contain only a domain property. You must specify at least one domain. Each distribution tenant can have up to 5 domains.

" + } + }, + "Customizations": { + "target": "com.amazonaws.cloudfront#Customizations", + "traits": { + "smithy.api#documentation": "

Customizations for the distribution tenant. For each distribution tenant, you can specify the geographic restrictions, and the Amazon Resource Names (ARNs) for the ACM certificate and WAF web ACL. These are specific values that you can override or disable from the multi-tenant distribution that was used to create the distribution tenant.

" + } + }, + "Parameters": { + "target": "com.amazonaws.cloudfront#Parameters", + "traits": { + "smithy.api#documentation": "

A list of parameter values to add to the resource. A parameter is specified as a key-value pair. A valid parameter value must exist for any parameter that is marked as required in the multi-tenant distribution.

" + } + }, + "ConnectionGroupId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the target connection group.

" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the distribution tenant to update. This value is returned in the response of the GetDistributionTenant API operation.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "ManagedCertificateRequest": { + "target": "com.amazonaws.cloudfront#ManagedCertificateRequest", + "traits": { + "smithy.api#documentation": "

An object that contains the CloudFront managed ACM certificate request.

" + } + }, + "Enabled": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the distribution tenant should be updated to an enabled state. If you update the distribution tenant and it's not enabled, the distribution tenant won't serve traffic.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistributionTenantResult": { + "type": "structure", + "members": { + "DistributionTenant": { + "target": "com.amazonaws.cloudfront#DistributionTenant", + "traits": { + "smithy.api#documentation": "

The distribution tenant that you're updating.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the distribution tenant.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidDefaultRootObject" + }, + { + "target": "com.amazonaws.cloudfront#InvalidErrorCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidForwardCookies" + }, + { + "target": "com.amazonaws.cloudfront#InvalidFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidGeoRestrictionParameter" + }, + { + "target": "com.amazonaws.cloudfront#InvalidHeadersForS3Origin" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLambdaFunctionAssociation" + }, + { + "target": "com.amazonaws.cloudfront#InvalidLocationCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidMinimumProtocolVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginKeepaliveTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginReadTimeout" + }, + { + "target": "com.amazonaws.cloudfront#InvalidQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRelativePath" + }, + { + "target": "com.amazonaws.cloudfront#InvalidRequiredProtocol" + }, + { + "target": "com.amazonaws.cloudfront#InvalidResponseCode" + }, + { + "target": "com.amazonaws.cloudfront#InvalidTTLOrder" + }, + { + "target": "com.amazonaws.cloudfront#InvalidViewerCertificate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidWebACLId" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchDistribution" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOrigin" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#RealtimeLogConfigOwnerMismatch" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCacheBehaviors" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCertificates" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookieNamesInWhiteList" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToCachePolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToKeyGroup" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsAssociatedToResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithLambdaAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyDistributionsWithSingleFunctionARN" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInForwardedValues" + }, + { + "target": "com.amazonaws.cloudfront#TooManyKeyGroupsAssociatedToDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyLambdaFunctionAssociations" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginCustomHeaders" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOriginGroupsPerDistribution" + }, + { + "target": "com.amazonaws.cloudfront#TooManyOrigins" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringParameters" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedKeyGroupDoesNotExist" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Copies the staging distribution's configuration to its corresponding primary distribution. The primary distribution retains its Aliases (also known as alternate domain names or CNAMEs) and ContinuousDeploymentPolicyId value, but otherwise its configuration is overwritten to match the staging distribution.

You can use this operation in a continuous deployment workflow after you have tested configuration changes on the staging distribution. After using a continuous deployment policy to move a portion of your domain name's traffic to the staging distribution and verifying that it works as intended, you can use this operation to copy the staging distribution's configuration to the primary distribution. This action will disable the continuous deployment policy and move your domain's traffic back to the primary distribution.

This API operation requires the following IAM permissions:

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/distribution/{Id}/promote-staging-config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the primary distribution to which you are copying a staging distribution's configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "StagingDistributionId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the staging distribution whose configuration you are copying to the primary distribution.

", + "smithy.api#httpQuery": "StagingDistributionId" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current versions (ETag values) of both primary and staging distributions. Provide these in the following format:

<primary ETag>, <staging ETag>

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateDistributionWithStagingConfigResult": { + "type": "structure", + "members": { + "Distribution": { + "target": "com.amazonaws.cloudfront#Distribution", + "traits": { + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the primary distribution (after it's updated).

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateDomainAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateDomainAssociationRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateDomainAssociationResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

We recommend that you use the UpdateDomainAssociation API operation to move a domain association, as it supports both standard distributions and distribution tenants. AssociateAlias performs similar checks but only supports standard distributions.

Moves a domain from its current standard distribution or distribution tenant to another one.

You must first disable the source distribution (standard distribution or distribution tenant) and then separately call this operation to move the domain to another target distribution (standard distribution or distribution tenant).

To use this operation, specify the domain and the ID of the target resource (standard distribution or distribution tenant). For more information, including how to set up the target resource, prerequisites that you must complete, and other restrictions, see Moving an alternate domain name to a different standard distribution or distribution tenant in the Amazon CloudFront Developer Guide.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/domain-association", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateDomainAssociationRequest": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain to update.

", + "smithy.api#required": {} + } + }, + "TargetResource": { + "target": "com.amazonaws.cloudfront#DistributionResourceId", + "traits": { + "smithy.api#documentation": "

The target standard distribution or distribution tenant resource for the domain. You can specify either DistributionId or DistributionTenantId, but not both.

", + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag identifier for the standard distribution or distribution tenant that will be associated with the domain.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateDomainAssociationResult": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain that you're moving.

" + } + }, + "ResourceId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The intended destination for the domain.

" + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the target standard distribution or distribution tenant that was associated with the domain.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionConfig" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#QueryArgProfileEmpty" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionContentTypeProfiles" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionQueryArgProfiles" + } + ], + "traits": { + "smithy.api#documentation": "

Update a field-level encryption configuration.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/field-level-encryption/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigRequest": { + "type": "structure", + "members": { + "FieldLevelEncryptionConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionConfig", + "traits": { + "smithy.api#documentation": "

Request to update a field-level encryption configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "FieldLevelEncryptionConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the configuration you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the configuration identity to update. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionConfigResult": { + "type": "structure", + "members": { + "FieldLevelEncryption": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryption", + "traits": { + "smithy.api#documentation": "

Return the results of updating the configuration.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when updating the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileSizeExceeded" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFieldLevelEncryptionProfile" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionEncryptionEntities" + }, + { + "target": "com.amazonaws.cloudfront#TooManyFieldLevelEncryptionFieldPatterns" + } + ], + "traits": { + "smithy.api#documentation": "

Update a field-level encryption profile.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/field-level-encryption-profile/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileRequest": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfileConfig": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfileConfig", + "traits": { + "smithy.api#documentation": "

Request to update a field-level encryption profile.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "FieldLevelEncryptionProfileConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ID of the field-level encryption profile request.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the profile identity to update. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateFieldLevelEncryptionProfileResult": { + "type": "structure", + "members": { + "FieldLevelEncryptionProfile": { + "target": "com.amazonaws.cloudfront#FieldLevelEncryptionProfile", + "traits": { + "smithy.api#documentation": "

Return the results of updating the profile.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The result of the field-level encryption profile request.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateFunction": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateFunctionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateFunctionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#FunctionSizeLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchFunctionExists" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a CloudFront function.

You can update a function's code or the comment that describes the function. You cannot update a function's name.

To update a function, you provide the function's name and version (ETag value) along with the updated function code. To get the name and version, you can use ListFunctions and DescribeFunction.

", + "smithy.api#examples": [ + { + "title": "To update a function", + "documentation": "Use the following command to update a function.", + "input": { + "Name": "my-function-name", + "FunctionConfig": { + "Comment": "my-changed-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionCode": "function-code-changed.js", + "IfMatch": "ETVPDKIKX0DER" + }, + "output": { + "FunctionSummary": { + "Name": "my-function-name", + "Status": "UNPUBLISHED", + "FunctionConfig": { + "Comment": "my-changed-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionMetadata": { + "FunctionARN": "arn:aws:cloudfront::123456789012:function/my-function-name", + "Stage": "DEVELOPMENT", + "CreatedTime": "2023-11-07T19:53:50.334Z", + "LastModifiedTime": "2023-11-07T20:01:37.174Z" + } + }, + "ETag": "E3UN6WX5RRO2AG" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/function/{Name}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateFunctionRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#FunctionName", + "traits": { + "smithy.api#documentation": "

The name of the function that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the function that you are updating, which you can get using DescribeFunction.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + }, + "FunctionConfig": { + "target": "com.amazonaws.cloudfront#FunctionConfig", + "traits": { + "smithy.api#documentation": "

Configuration information about the function.

", + "smithy.api#required": {} + } + }, + "FunctionCode": { + "target": "com.amazonaws.cloudfront#FunctionBlob", + "traits": { + "smithy.api#documentation": "

The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateFunctionResult": { + "type": "structure", + "members": { + "FunctionSummary": { + "target": "com.amazonaws.cloudfront#FunctionSummary", + "traits": { + "smithy.api#documentation": "

Contains configuration information and metadata about a CloudFront function.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the CloudFront function.

", + "smithy.api#httpHeader": "ETtag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateKeyGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateKeyGroupRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateKeyGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#KeyGroupAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResource" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TooManyPublicKeysInKeyGroup" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a key group.

When you update a key group, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a key group:

  1. Get the current key group with GetKeyGroup or GetKeyGroupConfig.

  2. Locally modify the fields in the key group that you want to update. For example, add or remove public key IDs.

  3. Call UpdateKeyGroup with the entire key group object, including the fields that you modified and those that you didn't.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/key-group/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateKeyGroupRequest": { + "type": "structure", + "members": { + "KeyGroupConfig": { + "target": "com.amazonaws.cloudfront#KeyGroupConfig", + "traits": { + "smithy.api#documentation": "

The key group configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "KeyGroupConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the key group that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the key group that you are updating. The version is the key group's ETag value.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateKeyGroupResult": { + "type": "structure", + "members": { + "KeyGroup": { + "target": "com.amazonaws.cloudfront#KeyGroup", + "traits": { + "smithy.api#documentation": "

The key group that was just updated.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for this version of the key group.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateKeyValueStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateKeyValueStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateKeyValueStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Specifies the key value store to update.

", + "smithy.api#examples": [ + { + "title": "To update a KeyValueStore", + "documentation": "Use the following command to update a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "Comment": "my-changed-comment", + "IfMatch": "ETVPDKIKX0DER" + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-changed-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:45:21.069Z" + }, + "ETag": "E3UN6WX5RRO2AG" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/key-value-store/{Name}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudfront#UpdateKeyValueStoreRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#KeyValueStoreName", + "traits": { + "smithy.api#documentation": "

The name of the key value store to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Comment": { + "target": "com.amazonaws.cloudfront#KeyValueStoreComment", + "traits": { + "smithy.api#documentation": "

The comment of the key value store to update.

", + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The key value store to update, if a match occurs.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateKeyValueStoreResult": { + "type": "structure", + "members": { + "KeyValueStore": { + "target": "com.amazonaws.cloudfront#KeyValueStore", + "traits": { + "smithy.api#documentation": "

The resulting key value store to update.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ETag of the resulting key value store.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateOriginAccessControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateOriginAccessControlRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateOriginAccessControlResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#OriginAccessControlAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a CloudFront origin access control.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/origin-access-control/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateOriginAccessControlRequest": { + "type": "structure", + "members": { + "OriginAccessControlConfig": { + "target": "com.amazonaws.cloudfront#OriginAccessControlConfig", + "traits": { + "smithy.api#documentation": "

An origin access control.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "OriginAccessControlConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier of the origin access control that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the origin access control that you are updating.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateOriginAccessControlResult": { + "type": "structure", + "members": { + "OriginAccessControl": { + "target": "com.amazonaws.cloudfront#OriginAccessControl", + "traits": { + "smithy.api#documentation": "

The origin access control after it has been updated.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The new version of the origin access control after it has been updated.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateOriginRequestPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateOriginRequestPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateOriginRequestPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCookiesInOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyHeadersInOriginRequestPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyQueryStringsInOriginRequestPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Updates an origin request policy configuration.

When you update an origin request policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update an origin request policy configuration:

  1. Use GetOriginRequestPolicyConfig to get the current configuration.

  2. Locally modify the fields in the origin request policy configuration that you want to update.

  3. Call UpdateOriginRequestPolicy by providing the entire origin request policy configuration, including the fields that you modified and those that you didn't.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/origin-request-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateOriginRequestPolicyRequest": { + "type": "structure", + "members": { + "OriginRequestPolicyConfig": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicyConfig", + "traits": { + "smithy.api#documentation": "

An origin request policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "OriginRequestPolicyConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The unique identifier for the origin request policy that you are updating. The identifier is returned in a cache behavior's OriginRequestPolicyId field in the response to GetDistributionConfig.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the origin request policy that you are updating. The version is returned in the origin request policy's ETag field in the response to GetOriginRequestPolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateOriginRequestPolicyResult": { + "type": "structure", + "members": { + "OriginRequestPolicy": { + "target": "com.amazonaws.cloudfront#OriginRequestPolicy", + "traits": { + "smithy.api#documentation": "

An origin request policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the origin request policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdatePublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdatePublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdatePublicKeyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotChangeImmutablePublicKeyFields" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchPublicKey" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Update public key information. Note that the only value you can change is the comment.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/public-key/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdatePublicKeyRequest": { + "type": "structure", + "members": { + "PublicKeyConfig": { + "target": "com.amazonaws.cloudfront#PublicKeyConfig", + "traits": { + "smithy.api#documentation": "

A public key configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "PublicKeyConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the public key that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the public key to update. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdatePublicKeyResult": { + "type": "structure", + "members": { + "PublicKey": { + "target": "com.amazonaws.cloudfront#PublicKey", + "traits": { + "smithy.api#documentation": "

The public key.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the current version of the public key.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateRealtimeLogConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateRealtimeLogConfigRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateRealtimeLogConfigResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchRealtimeLogConfig" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a real-time log configuration.

When you update a real-time log configuration, all the parameters are updated with the values provided in the request. You cannot update some parameters independent of others. To update a real-time log configuration:

  1. Call GetRealtimeLogConfig to get the current real-time log configuration.

  2. Locally modify the parameters in the real-time log configuration that you want to update.

  3. Call this API (UpdateRealtimeLogConfig) by providing the entire real-time log configuration, including the parameters that you modified and those that you didn't.

You cannot update a real-time log configuration's Name or ARN.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/realtime-log-config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateRealtimeLogConfigRequest": { + "type": "structure", + "members": { + "EndPoints": { + "target": "com.amazonaws.cloudfront#EndPointList", + "traits": { + "smithy.api#documentation": "

Contains information about the Amazon Kinesis data stream where you are sending real-time log data.

" + } + }, + "Fields": { + "target": "com.amazonaws.cloudfront#FieldList", + "traits": { + "smithy.api#documentation": "

A list of fields to include in each real-time log record.

For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide.

" + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name for this real-time log configuration.

" + } + }, + "ARN": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for this real-time log configuration.

" + } + }, + "SamplingRate": { + "target": "com.amazonaws.cloudfront#long", + "traits": { + "smithy.api#documentation": "

The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. You must provide an integer between 1 and 100, inclusive.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateRealtimeLogConfigResult": { + "type": "structure", + "members": { + "RealtimeLogConfig": { + "target": "com.amazonaws.cloudfront#RealtimeLogConfig", + "traits": { + "smithy.api#documentation": "

A real-time log configuration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateResponseHeadersPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#TooLongCSPInResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyCustomHeadersInResponseHeadersPolicy" + }, + { + "target": "com.amazonaws.cloudfront#TooManyRemoveHeadersInResponseHeadersPolicy" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a response headers policy.

When you update a response headers policy, the entire policy is replaced. You cannot update some policy fields independent of others. To update a response headers policy configuration:

  1. Use GetResponseHeadersPolicyConfig to get the current policy's configuration.

  2. Modify the fields in the response headers policy configuration that you want to update.

  3. Call UpdateResponseHeadersPolicy, providing the entire response headers policy configuration, including the fields that you modified and those that you didn't.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/response-headers-policy/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyRequest": { + "type": "structure", + "members": { + "ResponseHeadersPolicyConfig": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyConfig", + "traits": { + "smithy.api#documentation": "

A response headers policy configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ResponseHeadersPolicyConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier for the response headers policy that you are updating.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version of the response headers policy that you are updating.

The version is returned in the cache policy's ETag field in the response to GetResponseHeadersPolicyConfig.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateResponseHeadersPolicyResult": { + "type": "structure", + "members": { + "ResponseHeadersPolicy": { + "target": "com.amazonaws.cloudfront#ResponseHeadersPolicy", + "traits": { + "smithy.api#documentation": "

A response headers policy.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the response headers policy.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateStreamingDistribution": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateStreamingDistributionRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateStreamingDistributionResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CNAMEAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessControl" + }, + { + "target": "com.amazonaws.cloudfront#InvalidOriginAccessIdentity" + }, + { + "target": "com.amazonaws.cloudfront#MissingBody" + }, + { + "target": "com.amazonaws.cloudfront#NoSuchStreamingDistribution" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#TooManyStreamingDistributionCNAMEs" + }, + { + "target": "com.amazonaws.cloudfront#TooManyTrustedSigners" + }, + { + "target": "com.amazonaws.cloudfront#TrustedSignerDoesNotExist" + } + ], + "traits": { + "smithy.api#documentation": "

Update a streaming distribution.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/streaming-distribution/{Id}/config", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateStreamingDistributionRequest": { + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "target": "com.amazonaws.cloudfront#StreamingDistributionConfig", + "traits": { + "smithy.api#documentation": "

The streaming distribution's configuration information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "StreamingDistributionConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The streaming distribution's id.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The value of the ETag header that you received when retrieving the streaming distribution's configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "If-Match" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request to update a streaming distribution.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateStreamingDistributionResult": { + "type": "structure", + "members": { + "StreamingDistribution": { + "target": "com.amazonaws.cloudfront#StreamingDistribution", + "traits": { + "smithy.api#documentation": "

The streaming distribution's information.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned result of the corresponding request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateTrustStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateTrustStoreRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateTrustStoreResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a trust store.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/trust-store/{Id}", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#UpdateTrustStoreRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#ResourceId", + "traits": { + "smithy.api#documentation": "

The trust store ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CaCertificatesBundleSource": { + "target": "com.amazonaws.cloudfront#CaCertificatesBundleSource", + "traits": { + "smithy.api#documentation": "

The CA certificates bundle source.

", + "smithy.api#httpPayload": {} + } + }, + "UseClientCertificateOCSPEndpoint": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that determines whether to use the CA certificate's OCSP endpoint to check certificate revocation status.

", + "smithy.api#httpHeader": "UseClientCertificateOCSPEndpoint" + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The current version (ETag value) of the trust store you are updating.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateTrustStoreResult": { + "type": "structure", + "members": { + "TrustStore": { + "target": "com.amazonaws.cloudfront#TrustStore", + "traits": { + "smithy.api#documentation": "

The trust store.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The version identifier for the current version of the trust store.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#UpdateVpcOrigin": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#UpdateVpcOriginRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#UpdateVpcOriginResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#CannotUpdateEntityWhileInUse" + }, + { + "target": "com.amazonaws.cloudfront#EntityAlreadyExists" + }, + { + "target": "com.amazonaws.cloudfront#EntityLimitExceeded" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#IllegalUpdate" + }, + { + "target": "com.amazonaws.cloudfront#InconsistentQuantities" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#InvalidIfMatchVersion" + }, + { + "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Update an Amazon CloudFront VPC origin in your account.

", + "smithy.api#examples": [ + { + "title": "To update a VPC origin", + "documentation": "The following command updates a VPC origin:", + "input": { + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d", + "HTTPPort": 80, + "HTTPSPort": 443, + "OriginProtocolPolicy": "match-viewer", + "OriginSslProtocols": { + "Quantity": 2, + "Items": [ + "TLSv1.1", + "TLSv1.2" + ] + } + }, + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "IfMatch": "ETVPDKIKX0DER" + }, + "output": { + "VpcOrigin": { + "Status": "Deploying", + "VpcOriginEndpointConfig": { + "Name": "my-vpcorigin-name", + "OriginSslProtocols": { + "Items": [ + "TLSv1.1", + "TLSv1.2" + ], + "Quantity": 2 + }, + "OriginProtocolPolicy": "match-viewer", + "HTTPPort": 80, + "HTTPSPort": 443, + "Arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb-us-west-2/e6aa5c7d26415c6d" + }, + "CreatedTime": "2024-10-15T17:19:42.318Z", + "LastModifiedTime": "2024-10-15T17:47:08.133Z", + "Id": "vo_BQwjxxQxjCaBcQLzJUFkDM", + "Arn": "arn:aws:cloudfront::123456789012:vpcorigin/vo_BQwjxxQxjCaBcQLzJUFkDM" + }, + "ETag": "E3UN6WX5RRO2AG" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/2020-05-31/vpc-origin/{Id}", + "code": 202 + } + } + }, + "com.amazonaws.cloudfront#UpdateVpcOriginRequest": { + "type": "structure", + "members": { + "VpcOriginEndpointConfig": { + "target": "com.amazonaws.cloudfront#VpcOriginEndpointConfig", + "traits": { + "smithy.api#documentation": "

The VPC origin endpoint configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "VpcOriginEndpointConfig" + } + }, + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "IfMatch": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin to update, if a match occurs.

", + "smithy.api#httpHeader": "If-Match", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#UpdateVpcOriginResult": { + "type": "structure", + "members": { + "VpcOrigin": { + "target": "com.amazonaws.cloudfront#VpcOrigin", + "traits": { + "smithy.api#documentation": "

The VPC origin.

", + "smithy.api#httpPayload": {} + } + }, + "ETag": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ETag.

", + "smithy.api#httpHeader": "ETag" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ValidationTokenDetail": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name.

", + "smithy.api#required": {} + } + }, + "RedirectTo": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain to redirect to.

" + } + }, + "RedirectFrom": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain to redirect from.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the validation token.

" + } + }, + "com.amazonaws.cloudfront#ValidationTokenDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#ValidationTokenDetail" + } + }, + "com.amazonaws.cloudfront#ValidationTokenHost": { + "type": "enum", + "members": { + "CloudFront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloudfront" + } + }, + "SelfHosted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "self-hosted" + } + } + } + }, + "com.amazonaws.cloudfront#VerifyDnsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudfront#VerifyDnsConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.cloudfront#VerifyDnsConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.cloudfront#AccessDenied" + }, + { + "target": "com.amazonaws.cloudfront#EntityNotFound" + }, + { + "target": "com.amazonaws.cloudfront#InvalidArgument" + } + ], + "traits": { + "smithy.api#documentation": "

Verify the DNS configuration for your domain names. This API operation checks whether your domain name points to the correct routing endpoint of the connection group, such as d111111abcdef8.cloudfront.net. You can use this API operation to troubleshoot and resolve DNS configuration issues.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-05-31/verify-dns-configuration", + "code": 200 + } + } + }, + "com.amazonaws.cloudfront#VerifyDnsConfigurationRequest": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The domain name that you're verifying.

" + } + }, + "Identifier": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The identifier of the distribution tenant. You can specify the ARN, ID, or name of the distribution tenant.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudfront#VerifyDnsConfigurationResult": { + "type": "structure", + "members": { + "DnsConfigurationList": { + "target": "com.amazonaws.cloudfront#DnsConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of domain names, their statuses, and a description of each status.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudfront#ViewerCertificate": { + "type": "structure", + "members": { + "CloudFrontDefaultCertificate": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, set this field to true.

If the distribution uses Aliases (alternate domain names or CNAMEs), set this field to false and specify values for the following fields:

  • ACMCertificateArn or IAMCertificateId (specify a value for one, not both)

  • MinimumProtocolVersion

  • SSLSupportMethod

" + } + }, + "IAMCertificateId": { + "target": "com.amazonaws.cloudfront#ServerCertificateId", + "traits": { + "smithy.api#documentation": "

This field only supports standard distributions. You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide.

If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in Identity and Access Management (IAM), provide the ID of the IAM certificate.

If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion and SSLSupportMethod.

" + } + }, + "ACMCertificateArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in Certificate Manager (ACM), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (us-east-1).

If you specify an ACM certificate ARN, you must also specify values for MinimumProtocolVersion and SSLSupportMethod.

" + } + }, + "SSLSupportMethod": { + "target": "com.amazonaws.cloudfront#SSLSupportMethod", + "traits": { + "smithy.api#documentation": "

If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.

  • sni-only – The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is recommended. Most browsers and clients support SNI.

  • vip – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.

  • static-ip - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the Amazon Web ServicesSupport Center.

If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, don't set a value for this field.

" + } + }, + "MinimumProtocolVersion": { + "target": "com.amazonaws.cloudfront#MinimumProtocolVersion", + "traits": { + "smithy.api#documentation": "

If the distribution uses Aliases (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:

  • The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.

  • The ciphers that CloudFront can use to encrypt the content that it returns to viewers.

For more information, see Security Policy and Supported Protocols and Ciphers Between Viewers and CloudFront in the Amazon CloudFront Developer Guide.

On the CloudFront console, this setting is called Security Policy.

When you're using SNI only (you set SSLSupportMethod to sni-only), you must specify TLSv1 or higher.

If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net (you set CloudFrontDefaultCertificate to true), CloudFront automatically sets the security policy to TLSv1 regardless of the value that you set here.

" + } + }, + "Certificate": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field is deprecated. Use one of the following fields instead:

  • ACMCertificateArn

  • IAMCertificateId

  • CloudFrontDefaultCertificate

" + } + }, + "CertificateSource": { + "target": "com.amazonaws.cloudfront#CertificateSource", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

This field is deprecated. Use one of the following fields instead:

  • ACMCertificateArn

  • IAMCertificateId

  • CloudFrontDefaultCertificate

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.

If the distribution doesn't use Aliases (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net—set CloudFrontDefaultCertificate to true and leave all other fields empty.

If the distribution uses Aliases (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:

  • Which viewers the distribution accepts HTTPS connections from: only viewers that support server name indication (SNI) (recommended), or all viewers including those that don't support SNI.

    • To accept HTTPS connections from only viewers that support SNI, set SSLSupportMethod to sni-only. This is recommended. Most browsers and clients support SNI.

    • To accept HTTPS connections from all viewers, including those that don't support SNI, set SSLSupportMethod to vip. This is not recommended, and results in additional monthly charges from CloudFront.

  • The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for MinimumProtocolVersion. For more information, see Security Policy in the Amazon CloudFront Developer Guide.

  • The location of the SSL/TLS certificate, Certificate Manager (ACM) (recommended) or Identity and Access Management (IAM). You specify the location by setting a value in one of the following fields (not both):

    • ACMCertificateArn

    • IAMCertificateId

All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ViewerProtocolPolicy in the CacheBehavior or DefaultCacheBehavior. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use CustomOriginConfig.

For more information, see Using HTTPS with CloudFront and Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide.

" + } + }, + "com.amazonaws.cloudfront#ViewerMtlsConfig": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.cloudfront#ViewerMtlsMode", + "traits": { + "smithy.api#default": "required", + "smithy.api#documentation": "

The viewer mTLS mode.

" + } + }, + "TrustStoreConfig": { + "target": "com.amazonaws.cloudfront#TrustStoreConfig", + "traits": { + "smithy.api#documentation": "

The trust store configuration associated with the viewer mTLS configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A viewer mTLS configuration.

" + } + }, + "com.amazonaws.cloudfront#ViewerMtlsMode": { + "type": "enum", + "members": { + "Required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "Optional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optional" + } + }, + "Passthrough": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "passthrough" + } + } + } + }, + "com.amazonaws.cloudfront#ViewerProtocolPolicy": { + "type": "enum", + "members": { + "allow_all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allow-all" + } + }, + "https_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "https-only" + } + }, + "redirect_to_https": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "redirect-to-https" + } + } + } + }, + "com.amazonaws.cloudfront#VpcIpAddressType": { + "type": "enum", + "members": { + "Ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "DualStack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dualstack" + } + } + }, + "traits": { + "smithy.api#documentation": "IP address type supported for VPC Origins. IPv6-only is not supported for VPC Origins." + } + }, + "com.amazonaws.cloudfront#VpcOrigin": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ARN.

", + "smithy.api#required": {} + } + }, + "AccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The account ID of the Amazon Web Services account that owns the VPC origin.

" + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin status.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The VPC origin created time.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The VPC origin last modified time.

", + "smithy.api#required": {} + } + }, + "VpcOriginEndpointConfig": { + "target": "com.amazonaws.cloudfront#VpcOriginEndpointConfig", + "traits": { + "smithy.api#documentation": "

The VPC origin endpoint configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon CloudFront VPC origin.

" + } + }, + "com.amazonaws.cloudfront#VpcOriginConfig": { + "type": "structure", + "members": { + "VpcOriginId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin ID.

", + "smithy.api#required": {} + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The account ID of the Amazon Web Services account that owns the VPC origin.

" + } + }, + "OriginReadTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the origin response timeout. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.

For more information, see Response timeout in the Amazon CloudFront Developer Guide.

" + } + }, + "OriginKeepaliveTimeout": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 5 seconds.

For more information, see Keep-alive timeout (custom origins only) in the Amazon CloudFront Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon CloudFront VPC origin configuration.

" + } + }, + "com.amazonaws.cloudfront#VpcOriginEndpointConfig": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The name of the CloudFront VPC origin endpoint configuration.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The ARN of the CloudFront VPC origin endpoint configuration.

", + "smithy.api#required": {} + } + }, + "HTTPPort": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The HTTP port for the CloudFront VPC origin endpoint configuration. The default value is 80.

", + "smithy.api#required": {} + } + }, + "HTTPSPort": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The HTTPS port of the CloudFront VPC origin endpoint configuration. The default value is 443.

", + "smithy.api#required": {} + } + }, + "OriginProtocolPolicy": { + "target": "com.amazonaws.cloudfront#OriginProtocolPolicy", + "traits": { + "smithy.api#documentation": "

The origin protocol policy for the CloudFront VPC origin endpoint configuration.

", + "smithy.api#required": {} + } + }, + "OriginSslProtocols": { + "target": "com.amazonaws.cloudfront#OriginSslProtocols" + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#VpcIpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type of the CloudFront VPC origin endpoint configuration. Valid values are ipv4 and dualstack. IPv6-only is not supported for VPC origins.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon CloudFront VPC origin endpoint configuration.

" + } + }, + "com.amazonaws.cloudfront#VpcOriginList": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The marker associated with the VPC origins list.

", + "smithy.api#required": {} + } + }, + "NextMarker": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The next marker associated with the VPC origins list.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items included in the list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.cloudfront#boolean", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether more VPC origins remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more VPC origins in the list.

", + "smithy.api#required": {} + } + }, + "Quantity": { + "target": "com.amazonaws.cloudfront#integer", + "traits": { + "smithy.api#documentation": "

The number of VPC origins in the list.

", + "smithy.api#required": {} + } + }, + "Items": { + "target": "com.amazonaws.cloudfront#VpcOriginSummaryList", + "traits": { + "smithy.api#documentation": "

The items of the VPC origins list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of CloudFront VPC origins.

" + } + }, + "com.amazonaws.cloudfront#VpcOriginSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin summary ID.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin summary name.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin summary status.

", + "smithy.api#required": {} + } + }, + "CreatedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The VPC origin summary created time.

", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.cloudfront#timestamp", + "traits": { + "smithy.api#documentation": "

The VPC origin summary last modified time.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin summary ARN.

", + "smithy.api#required": {} + } + }, + "AccountId": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The account ID of the Amazon Web Services account that owns the VPC origin.

" + } + }, + "OriginEndpointArn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The VPC origin summary origin endpoint ARN.

", + "smithy.api#required": {} + } + }, + "IpAddressType": { + "target": "com.amazonaws.cloudfront#VpcIpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type of the CloudFront VPC origin. Valid values are ipv4 and dualstack. IPv6-only is not supported for VPC origins.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the CloudFront VPC origin.

" + } + }, + "com.amazonaws.cloudfront#VpcOriginSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudfront#VpcOriginSummary", + "traits": { + "smithy.api#xmlName": "VpcOriginSummary" + } + } + }, + "com.amazonaws.cloudfront#WebAclCustomization": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.cloudfront#CustomizationActionType", + "traits": { + "smithy.api#documentation": "

The action for the WAF web ACL customization. You can specify override to specify a separate WAF web ACL for the distribution tenant. If you specify disable, the distribution tenant won't have WAF web ACL protections and won't inherit from the multi-tenant distribution.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.cloudfront#string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The WAF web ACL customization specified for the distribution tenant.

" + } + }, + "com.amazonaws.cloudfront#aliasString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 253 + } + } + }, + "com.amazonaws.cloudfront#boolean": { + "type": "boolean" + }, + "com.amazonaws.cloudfront#distributionIdString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 25 + } + } + }, + "com.amazonaws.cloudfront#float": { + "type": "float" + }, + "com.amazonaws.cloudfront#integer": { + "type": "integer" + }, + "com.amazonaws.cloudfront#listConflictingAliasesMaxItemsInteger": { + "type": "integer", + "traits": { + "smithy.api#range": { + "max": 100 + } + } + }, + "com.amazonaws.cloudfront#long": { + "type": "long" + }, + "com.amazonaws.cloudfront#sensitiveStringType": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.cloudfront#string": { + "type": "string" + }, + "com.amazonaws.cloudfront#timestamp": { + "type": "timestamp" + } + } +} diff --git a/codegen/aws-models/dynamodb.json b/codegen/aws-models/dynamodb.json index 8e6049a6..5a76c107 100644 --- a/codegen/aws-models/dynamodb.json +++ b/codegen/aws-models/dynamodb.json @@ -1392,811 +1392,984 @@ "com.amazonaws.dynamodb#BooleanObject": { "type": "boolean" }, - "com.amazonaws.dynamodb#CancellationReason": { + "com.amazonaws.dynamodb#BulkOperationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 37, + "max": 1024 + } + } + }, + "com.amazonaws.dynamodb#BulkOperationBytes": { "type": "structure", "members": { - "Item": { - "target": "com.amazonaws.dynamodb#AttributeMap", + "BulkPutBytes": { + "target": "com.amazonaws.dynamodb#NonNegativeLongObject", "traits": { - "smithy.api#documentation": "

Item in the request which caused the transaction to get cancelled.

" + "smithy.api#documentation": "

The number of bulk put bytes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the bulk put bytes used during a bulk operation.

" + } + }, + "com.amazonaws.dynamodb#BulkOperationDescription": { + "type": "structure", + "members": { + "BulkOperationArn": { + "target": "com.amazonaws.dynamodb#BulkOperationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bulk operation.

" } }, - "Code": { - "target": "com.amazonaws.dynamodb#Code", + "BulkOperationStatus": { + "target": "com.amazonaws.dynamodb#BulkOperationStatus", "traits": { - "smithy.api#documentation": "

Status code for the result of the cancelled transaction.

" + "smithy.api#documentation": "

The current status of the bulk operation can be one of the following values:

\n
\n
\n IN_PROGRESS\n
\n
\n

DynamoDB is processing the input.

\n
\n
\n COMPLETED\n
\n
\n

The bulk operation finished without parsing or validation errors.\n Condition-check failures do not cause the operation to complete with\n errors.

\n
\n
\n COMPLETED_WITH_ERRORS\n
\n
\n

The bulk operation finished, but DynamoDB couldn't process at\n least one input item because of a parsing or validation error. When you\n enable ERROR output, DynamoDB writes the details to the\n configured Amazon S3 output location.

\n
\n
\n CANCELLING\n
\n
\n

DynamoDB accepted a cancellation request and is stopping the\n operation.

\n
\n
\n CANCELLED\n
\n
\n

DynamoDB stopped the operation after a cancellation\n request.

\n
\n
\n FAILED\n
\n
\n

The bulk operation failed. DynamoDB might write some items\n before the operation reaches this status. See FailureCode and FailureMessage for details.

\n
\n
" } }, - "Message": { - "target": "com.amazonaws.dynamodb#ErrorMessage", + "TableDetails": { + "target": "com.amazonaws.dynamodb#BulkOperationTableDetails", "traits": { - "smithy.api#documentation": "

Cancellation reason message description.

" + "smithy.api#documentation": "

A list containing identifying information for the table targeted by the bulk\n operation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.dynamodb#ClientToken", + "traits": { + "smithy.api#documentation": "

The idempotency token associated with the start request.

" + } + }, + "InputS3Configuration": { + "target": "com.amazonaws.dynamodb#InputS3Configuration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 input configuration associated with the bulk operation.

" + } + }, + "OutputS3Configuration": { + "target": "com.amazonaws.dynamodb#OutputS3Configuration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 output configuration associated with the bulk operation.

" + } + }, + "StartTime": { + "target": "com.amazonaws.dynamodb#BulkOperationStartTime", + "traits": { + "smithy.api#documentation": "

The time when DynamoDB accepted the start request.

" + } + }, + "EndTime": { + "target": "com.amazonaws.dynamodb#BulkOperationEndTime", + "traits": { + "smithy.api#documentation": "

The time when the operation reached a terminal status. DynamoDB omits this\n value while the operation remains in progress.

" + } + }, + "ProcessedItemCount": { + "target": "com.amazonaws.dynamodb#BulkOperationItemCount", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of input items that DynamoDB has processed. This count includes\n successful writes, parsing or validation failures, and condition-check failures.

" + } + }, + "ProcessedInputBytes": { + "target": "com.amazonaws.dynamodb#ProcessedInputBytes", + "traits": { + "smithy.api#documentation": "

The number of bytes that DynamoDB has read from the Amazon S3 input\n objects.

" + } + }, + "TotalInputBytes": { + "target": "com.amazonaws.dynamodb#TotalInputBytes", + "traits": { + "smithy.api#documentation": "

The total size, in bytes, of the Amazon S3 input objects. DynamoDB\n omits this value until the initial input-size calculation completes.

" + } + }, + "BulkOperationUsage": { + "target": "com.amazonaws.dynamodb#BulkOperationUsageMultiple", + "traits": { + "smithy.api#documentation": "

Usage information for the table and its indexes.

" + } + }, + "FailedItemCount": { + "target": "com.amazonaws.dynamodb#BulkOperationItemCount", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of processed input items that failed because of parsing or validation\n errors. This count is included in ProcessedItemCount. Condition-check\n failures do not increase this count.

" + } + }, + "FailureCode": { + "target": "com.amazonaws.dynamodb#FailureCode", + "traits": { + "smithy.api#documentation": "

A code that identifies why the bulk operation failed or was cancelled. DynamoDB returns this value only when BulkOperationStatus is\n FAILED or CANCELLED.

" + } + }, + "FailureMessage": { + "target": "com.amazonaws.dynamodb#FailureMessage", + "traits": { + "smithy.api#documentation": "

A message that describes why the bulk operation failed or was cancelled. DynamoDB returns this value only when BulkOperationStatus is\n FAILED or CANCELLED.

" + } + }, + "MaxWriteRequestUnits": { + "target": "com.amazonaws.dynamodb#BulkOperationMaxWriteRequestUnits", + "traits": { + "smithy.api#documentation": "

The maximum write request unit rate configured for the bulk operation.

" + } + }, + "PerformanceTier": { + "target": "com.amazonaws.dynamodb#BulkOperationPerformanceTier", + "traits": { + "smithy.api#documentation": "

The performance tier selected for the bulk operation. Valid values are\n STANDARD and ACCELERATED. If the start request omitted this\n value, DynamoDB uses STANDARD.

" } } }, "traits": { - "smithy.api#documentation": "

An ordered list of errors for each item in the request which caused the transaction to\n get cancelled. The values of the list are ordered according to the ordering of the\n TransactWriteItems request parameter. If no error occurred for the\n associated item an error with a Null code and Null message will be present.

" + "smithy.api#documentation": "

Contains detailed information about a bulk operation.

" } }, - "com.amazonaws.dynamodb#CancellationReasonList": { - "type": "list", - "member": { - "target": "com.amazonaws.dynamodb#CancellationReason" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - } - } + "com.amazonaws.dynamodb#BulkOperationEndTime": { + "type": "timestamp" }, - "com.amazonaws.dynamodb#Capacity": { - "type": "structure", + "com.amazonaws.dynamodb#BulkOperationInputFormat": { + "type": "enum", "members": { - "ReadCapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", - "traits": { - "smithy.api#documentation": "

The total number of read capacity units consumed on a table or an index.

" - } - }, - "WriteCapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", + "DYNAMODB_JSON": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The total number of write capacity units consumed on a table or an index.

" + "smithy.api#enumValue": "DYNAMODB_JSON" } }, - "CapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", + "ION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The total number of capacity units consumed on a table or an index.

" + "smithy.api#enumValue": "ION" } } - }, - "traits": { - "smithy.api#documentation": "

Represents the amount of provisioned throughput capacity consumed on a table or an\n index.

" } }, - "com.amazonaws.dynamodb#ClientRequestToken": { - "type": "string", + "com.amazonaws.dynamodb#BulkOperationItemCount": { + "type": "long", "traits": { - "smithy.api#length": { - "min": 1, - "max": 36 + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0 } } }, - "com.amazonaws.dynamodb#ClientToken": { - "type": "string", + "com.amazonaws.dynamodb#BulkOperationMaxWriteRequestUnits": { + "type": "long", "traits": { - "smithy.api#pattern": "^[^\\$]+$" + "smithy.api#range": { + "min": 1024 + } } }, - "com.amazonaws.dynamodb#CloudWatchLogGroupArn": { + "com.amazonaws.dynamodb#BulkOperationNextToken": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 1024 - } + }, + "smithy.api#pattern": "^([0-9a-f]{16})+$" } }, - "com.amazonaws.dynamodb#Code": { - "type": "string" - }, - "com.amazonaws.dynamodb#ComparisonOperator": { + "com.amazonaws.dynamodb#BulkOperationPerformanceTier": { "type": "enum", "members": { - "EQ": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EQ" - } - }, - "NE": { + "STANDARD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NE" + "smithy.api#enumValue": "STANDARD" } }, - "IN": { + "ACCELERATED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "IN" + "smithy.api#enumValue": "ACCELERATED" } - }, - "LE": { + } + } + }, + "com.amazonaws.dynamodb#BulkOperationStartTime": { + "type": "timestamp" + }, + "com.amazonaws.dynamodb#BulkOperationStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "LE" + "smithy.api#enumValue": "IN_PROGRESS" } }, - "LT": { + "COMPLETED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "LT" + "smithy.api#enumValue": "COMPLETED" } }, - "GE": { + "COMPLETED_WITH_ERRORS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "GE" + "smithy.api#enumValue": "COMPLETED_WITH_ERRORS" } }, - "GT": { + "CANCELLING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "GT" + "smithy.api#enumValue": "CANCELLING" } }, - "BETWEEN": { + "CANCELLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "BETWEEN" + "smithy.api#enumValue": "CANCELLED" } }, - "NOT_NULL": { + "FAILED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NOT_NULL" + "smithy.api#enumValue": "FAILED" } - }, - "NULL": { - "target": "smithy.api#Unit", + } + } + }, + "com.amazonaws.dynamodb#BulkOperationSummary": { + "type": "structure", + "members": { + "BulkOperationArn": { + "target": "com.amazonaws.dynamodb#BulkOperationArn", "traits": { - "smithy.api#enumValue": "NULL" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bulk operation.

", + "smithy.api#required": {} } }, - "CONTAINS": { - "target": "smithy.api#Unit", + "BulkOperationStatus": { + "target": "com.amazonaws.dynamodb#BulkOperationStatus", "traits": { - "smithy.api#enumValue": "CONTAINS" + "smithy.api#documentation": "

The current status of the bulk operation.

", + "smithy.api#required": {} } }, - "NOT_CONTAINS": { - "target": "smithy.api#Unit", + "StartTime": { + "target": "com.amazonaws.dynamodb#BulkOperationStartTime", "traits": { - "smithy.api#enumValue": "NOT_CONTAINS" + "smithy.api#documentation": "

The time when DynamoDB accepted the start request.

", + "smithy.api#required": {} } }, - "BEGINS_WITH": { - "target": "smithy.api#Unit", + "EndTime": { + "target": "com.amazonaws.dynamodb#BulkOperationEndTime", "traits": { - "smithy.api#enumValue": "BEGINS_WITH" + "smithy.api#documentation": "

The time when the operation reached a terminal status. DynamoDB omits this\n value while the operation remains in progress.

" } } + }, + "traits": { + "smithy.api#documentation": "

Contains summary information about a bulk operation.

" } }, - "com.amazonaws.dynamodb#Condition": { + "com.amazonaws.dynamodb#BulkOperationTableDetail": { "type": "structure", "members": { - "AttributeValueList": { - "target": "com.amazonaws.dynamodb#AttributeValueList", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

One or more values to evaluate against the supplied attribute. The number of values in\n the list depends on the ComparisonOperator being used.

\n

For type Number, value comparisons are numeric.

\n

String value comparisons for greater than, equals, or less than are based on ASCII\n character code values. For example, a is greater than A, and\n a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

\n

For Binary, DynamoDB treats each byte of the binary data as unsigned when it\n compares binary values.

" + "smithy.api#documentation": "

The name or ARN of the table associated with the bulk operation.

" } }, - "ComparisonOperator": { - "target": "com.amazonaws.dynamodb#ComparisonOperator", + "TableId": { + "target": "com.amazonaws.dynamodb#TableId", "traits": { - "smithy.api#documentation": "

A comparator for evaluating attributes. For example, equals, greater than, less than,\n etc.

\n

The following comparison operators are available:

\n

\n EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS |\n BEGINS_WITH | IN | BETWEEN\n

\n

The following are descriptions of each comparison operator.

\n
    \n
  • \n

    \n EQ : Equal. EQ is supported for all data types,\n including lists and maps.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, Binary, String Set, Number Set, or Binary Set.\n If an item contains an AttributeValue element of a different type\n than the one provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n NE : Not equal. NE is supported for all data types,\n including lists and maps.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String, Number, Binary, String Set, Number Set, or Binary Set. If an\n item contains an AttributeValue of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n LE : Less than or equal.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n LT : Less than.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String, Number, or Binary (not a set type). If an item contains an\n AttributeValue element of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n GE : Greater than or equal.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n GT : Greater than.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n NOT_NULL : The attribute exists. NOT_NULL is supported\n for all data types, including lists and maps.

    \n \n

    This operator tests for the existence of an attribute, not its data type.\n If the data type of attribute \"a\" is null, and you evaluate it\n using NOT_NULL, the result is a Boolean true. This\n result is because the attribute \"a\" exists; its data type is\n not relevant to the NOT_NULL comparison operator.

    \n
    \n
  • \n
  • \n

    \n NULL : The attribute does not exist. NULL is supported\n for all data types, including lists and maps.

    \n \n

    This operator tests for the nonexistence of an attribute, not its data\n type. If the data type of attribute \"a\" is null, and you\n evaluate it using NULL, the result is a Boolean\n false. This is because the attribute \"a\"\n exists; its data type is not relevant to the NULL comparison\n operator.

    \n
    \n
  • \n
  • \n

    \n CONTAINS : Checks for a subsequence, or value in a set.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If the target\n attribute of the comparison is of type String, then the operator checks for a\n substring match. If the target attribute of the comparison is of type Binary,\n then the operator looks for a subsequence of the target that matches the input.\n If the target attribute of the comparison is a set (\"SS\",\n \"NS\", or \"BS\"), then the operator evaluates to\n true if it finds an exact match with any member of the set.

    \n

    CONTAINS is supported for lists: When evaluating \"a CONTAINS b\",\n \"a\" can be a list; however, \"b\" cannot be a set, a\n map, or a list.

    \n
  • \n
  • \n

    \n NOT_CONTAINS : Checks for absence of a subsequence, or absence of a\n value in a set.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If the target\n attribute of the comparison is a String, then the operator checks for the\n absence of a substring match. If the target attribute of the comparison is\n Binary, then the operator checks for the absence of a subsequence of the target\n that matches the input. If the target attribute of the comparison is a set\n (\"SS\", \"NS\", or \"BS\"), then the\n operator evaluates to true if it does not find an exact\n match with any member of the set.

    \n

    NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS\n b\", \"a\" can be a list; however, \"b\" cannot\n be a set, a map, or a list.

    \n
  • \n
  • \n

    \n BEGINS_WITH : Checks for a prefix.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String or Binary (not a Number or a set type). The target attribute of\n the comparison must be of type String or Binary (not a Number or a set\n type).

    \n

    \n
  • \n
  • \n

    \n IN : Checks for matching elements in a list.

    \n

    \n AttributeValueList can contain one or more\n AttributeValue elements of type String, Number, or Binary.\n These attributes are compared against an existing attribute of an item. If any\n elements of the input are equal to the item attribute, the expression evaluates\n to true.

    \n
  • \n
  • \n

    \n BETWEEN : Greater than or equal to the first value, and less than\n or equal to the second value.

    \n

    \n AttributeValueList must contain two AttributeValue\n elements of the same type, either String, Number, or Binary (not a set type). A\n target attribute matches if the target value is greater than, or equal to, the\n first element and less than, or equal to, the second element. If an item\n contains an AttributeValue element of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\",\n \"1\"]}\n

    \n
  • \n
\n

For usage examples of AttributeValueList and\n ComparisonOperator, see Legacy\n Conditional Parameters in the Amazon DynamoDB Developer\n Guide.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The unique identifier of the table associated with the bulk operation.

" } } }, "traits": { - "smithy.api#documentation": "

Represents the selection criteria for a Query or Scan\n operation:

\n
    \n
  • \n

    For a Query operation, Condition is used for\n specifying the KeyConditions to use when querying a table or an\n index. For KeyConditions, only the following comparison operators\n are supported:

    \n

    \n EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN\n

    \n

    \n Condition is also used in a QueryFilter, which\n evaluates the query results and returns only the desired values.

    \n
  • \n
  • \n

    For a Scan operation, Condition is used in a\n ScanFilter, which evaluates the scan results and returns only\n the desired values.

    \n
  • \n
" + "smithy.api#documentation": "

Contains identifying information for a table associated with a bulk operation.

" } }, - "com.amazonaws.dynamodb#ConditionCheck": { + "com.amazonaws.dynamodb#BulkOperationTableDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#BulkOperationTableDetail" + } + }, + "com.amazonaws.dynamodb#BulkOperationUsage": { "type": "structure", "members": { - "Key": { - "target": "com.amazonaws.dynamodb#Key", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The primary key of the item to be checked. Each element consists of an attribute name\n and a value for that attribute.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name or ARN of the table associated with the reported usage.

" } }, - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", + "BulkPutBytes": { + "target": "com.amazonaws.dynamodb#NonNegativeLongObject", "traits": { - "smithy.api#documentation": "

Name of the table for the check item request. You can also provide the Amazon Resource Name (ARN) of\n the table in this parameter.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The total number of bulk put bytes used by the operation. This value excludes bulk put\n vector bytes.

" } }, - "ConditionExpression": { - "target": "com.amazonaws.dynamodb#ConditionExpression", + "Table": { + "target": "com.amazonaws.dynamodb#BulkOperationBytes", "traits": { - "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional update to succeed. For\n more information, see Condition expressions in the Amazon DynamoDB Developer\n Guide.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The number of bulk put bytes for the table, excluding its indexes.

" } }, - "ExpressionAttributeNames": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", + "LocalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#SecondaryIndexesBulkBytesMap", "traits": { - "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression. For more\n information, see Expression attribute names in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

The bulk put bytes used on each local secondary index affected by the operation, keyed\n by index name.

" } }, - "ExpressionAttributeValues": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", + "GlobalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#SecondaryIndexesBulkBytesMap", "traits": { - "smithy.api#documentation": "

One or more values that can be substituted in an expression. For more information, see\n Condition expressions in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

The bulk put bytes used on each global secondary index affected by the operation,\n keyed by index name.

" } }, - "ReturnValuesOnConditionCheckFailure": { - "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", + "VectorIndexes": { + "target": "com.amazonaws.dynamodb#VectorIndexesBulkVectorBytesMap", "traits": { - "smithy.api#documentation": "

Use ReturnValuesOnConditionCheckFailure to get the item attributes if the\n ConditionCheck condition fails. For\n ReturnValuesOnConditionCheckFailure, the valid values are: NONE and\n ALL_OLD.

" + "smithy.api#documentation": "

The bulk put vector bytes used on each vector index affected by the operation, keyed\n by index name.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a request to perform a check that an item exists or to check the condition\n of specific attributes of the item.

" + "smithy.api#documentation": "

Contains the bytes used during a bulk operation, including a breakdown for the table\n and its indexes.

" } }, - "com.amazonaws.dynamodb#ConditionExpression": { - "type": "string" + "com.amazonaws.dynamodb#BulkOperationUsageMultiple": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#BulkOperationUsage" + } }, - "com.amazonaws.dynamodb#ConditionalCheckFailedException": { + "com.amazonaws.dynamodb#BulkOperationVectorBytes": { "type": "structure", "members": { - "message": { - "target": "com.amazonaws.dynamodb#ErrorMessage", - "traits": { - "smithy.api#documentation": "

The conditional request failed.

" - } - }, - "Item": { - "target": "com.amazonaws.dynamodb#AttributeMap", + "BulkPutVectorBytes": { + "target": "com.amazonaws.dynamodb#NonNegativeLongObject", "traits": { - "smithy.api#documentation": "

Item which caused the ConditionalCheckFailedException.

" + "smithy.api#documentation": "

The number of bulk put vector bytes used on the vector index.

" } } }, "traits": { - "smithy.api#documentation": "

A condition specified in the operation failed to be evaluated.

", - "smithy.api#error": "client" + "smithy.api#documentation": "

Contains the bulk put vector bytes used by a vector index during a bulk\n operation.

" } }, - "com.amazonaws.dynamodb#ConditionalOperator": { - "type": "enum", - "members": { - "AND": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AND" - } - }, - "OR": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "OR" - } - } + "com.amazonaws.dynamodb#BulkOperationsSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#BulkOperationSummary" } }, - "com.amazonaws.dynamodb#ConfirmRemoveSelfResourceAccess": { - "type": "boolean", + "com.amazonaws.dynamodb#CancelBulkOperation": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#CancelBulkOperationInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#CancelBulkOperationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + } + ], "traits": { - "smithy.api#default": false + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Cancels an in-progress bulk operation asynchronously. Cancellation doesn't remove\n items that the operation has already written. Use DescribeBulkOperation to\n monitor the operation until it reaches a terminal status.

" } }, - "com.amazonaws.dynamodb#ConsistentRead": { - "type": "boolean" - }, - "com.amazonaws.dynamodb#ConsumedCapacity": { + "com.amazonaws.dynamodb#CancelBulkOperationInput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", - "traits": { - "smithy.api#documentation": "

The name of the table that was affected by the operation. If you had specified the\n Amazon Resource Name (ARN) of a table in the input, you'll see the table ARN in the response.

" - } - }, - "CapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", - "traits": { - "smithy.api#documentation": "

The total number of capacity units consumed by the operation.

" - } - }, - "ReadCapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", - "traits": { - "smithy.api#documentation": "

The total number of read capacity units consumed by the operation.

" - } - }, - "WriteCapacityUnits": { - "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", - "traits": { - "smithy.api#documentation": "

The total number of write capacity units consumed by the operation.

" - } - }, - "Table": { - "target": "com.amazonaws.dynamodb#Capacity", - "traits": { - "smithy.api#documentation": "

The amount of throughput consumed on the table affected by the operation.

" - } - }, - "LocalSecondaryIndexes": { - "target": "com.amazonaws.dynamodb#SecondaryIndexesCapacityMap", - "traits": { - "smithy.api#documentation": "

The amount of throughput consumed on each local index affected by the\n operation.

" - } - }, - "GlobalSecondaryIndexes": { - "target": "com.amazonaws.dynamodb#SecondaryIndexesCapacityMap", + "BulkOperationArn": { + "target": "com.amazonaws.dynamodb#BulkOperationArn", "traits": { - "smithy.api#documentation": "

The amount of throughput consumed on each global index affected by the\n operation.

" - } - }, - "VectorIndexes": { - "target": "com.amazonaws.dynamodb#VectorIndexesCapacityMap", - "traits": { - "smithy.api#documentation": "

The amount of throughput consumed on each vector index affected by the operation.\n Each entry contains VectorWriteRequestBytes (for write operations) or\n VectorSearchRequestBytes (for search operations).

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bulk operation to cancel.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } } } }, "traits": { - "smithy.api#documentation": "

The capacity units consumed by an operation. The data returned includes the total\n provisioned throughput consumed, along with statistics for the table and any indexes\n involved in the operation. ConsumedCapacity is only returned if the request\n asked for it. For more information, see Provisioned capacity mode in the Amazon DynamoDB Developer\n Guide.

" - } - }, - "com.amazonaws.dynamodb#ConsumedCapacityMultiple": { - "type": "list", - "member": { - "target": "com.amazonaws.dynamodb#ConsumedCapacity" + "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#ConsumedCapacityUnits": { - "type": "double" - }, - "com.amazonaws.dynamodb#ContinuousBackupsDescription": { + "com.amazonaws.dynamodb#CancelBulkOperationOutput": { "type": "structure", "members": { - "ContinuousBackupsStatus": { - "target": "com.amazonaws.dynamodb#ContinuousBackupsStatus", + "BulkOperationArn": { + "target": "com.amazonaws.dynamodb#BulkOperationArn", "traits": { - "smithy.api#documentation": "

\n ContinuousBackupsStatus can be one of the following states: ENABLED,\n DISABLED

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bulk operation for which DynamoDB\n accepted the cancellation request.

", "smithy.api#required": {} } }, - "PointInTimeRecoveryDescription": { - "target": "com.amazonaws.dynamodb#PointInTimeRecoveryDescription", + "BulkOperationStatus": { + "target": "com.amazonaws.dynamodb#BulkOperationStatus", "traits": { - "smithy.api#documentation": "

The description of the point in time recovery settings applied to the table.

" + "smithy.api#documentation": "

The status returned after DynamoDB accepts the cancellation request. This\n value is CANCELLING. Use DescribeBulkOperation to determine when\n the operation reaches CANCELLED.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Represents the continuous backups and point in time recovery settings on the\n table.

" + "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#ContinuousBackupsStatus": { - "type": "enum", + "com.amazonaws.dynamodb#CancellationReason": { + "type": "structure", "members": { - "ENABLED": { - "target": "smithy.api#Unit", + "Item": { + "target": "com.amazonaws.dynamodb#AttributeMap", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "

Item in the request which caused the transaction to get cancelled.

" } }, - "DISABLED": { - "target": "smithy.api#Unit", + "Code": { + "target": "com.amazonaws.dynamodb#Code", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "

Status code for the result of the cancelled transaction.

" + } + }, + "Message": { + "target": "com.amazonaws.dynamodb#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Cancellation reason message description.

" } } + }, + "traits": { + "smithy.api#documentation": "

An ordered list of errors for each item in the request which caused the transaction to\n get cancelled. The values of the list are ordered according to the ordering of the\n TransactWriteItems request parameter. If no error occurred for the\n associated item an error with a Null code and Null message will be present.

" } }, - "com.amazonaws.dynamodb#ContinuousBackupsUnavailableException": { - "type": "structure", - "members": { - "message": { - "target": "com.amazonaws.dynamodb#ErrorMessage" - } + "com.amazonaws.dynamodb#CancellationReasonList": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#CancellationReason" }, "traits": { - "smithy.api#documentation": "

Backups have not yet been enabled for this table.

", - "smithy.api#error": "client" + "smithy.api#length": { + "min": 1, + "max": 100 + } } }, - "com.amazonaws.dynamodb#ContributorInsightsAction": { - "type": "enum", + "com.amazonaws.dynamodb#Capacity": { + "type": "structure", "members": { - "ENABLE": { - "target": "smithy.api#Unit", + "ReadCapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", "traits": { - "smithy.api#enumValue": "ENABLE" + "smithy.api#documentation": "

The total number of read capacity units consumed on a table or an index.

" } }, - "DISABLE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLE" - } - } - } - }, - "com.amazonaws.dynamodb#ContributorInsightsMode": { - "type": "enum", - "members": { - "ACCESSED_AND_THROTTLED_KEYS": { - "target": "smithy.api#Unit", + "WriteCapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", "traits": { - "smithy.api#enumValue": "ACCESSED_AND_THROTTLED_KEYS" + "smithy.api#documentation": "

The total number of write capacity units consumed on a table or an index.

" } }, - "THROTTLED_KEYS": { - "target": "smithy.api#Unit", + "CapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", "traits": { - "smithy.api#enumValue": "THROTTLED_KEYS" + "smithy.api#documentation": "

The total number of capacity units consumed on a table or an index.

" } } + }, + "traits": { + "smithy.api#documentation": "

Represents the amount of provisioned throughput capacity consumed on a table or an\n index.

" } }, - "com.amazonaws.dynamodb#ContributorInsightsRule": { + "com.amazonaws.dynamodb#ClientRequestToken": { "type": "string", "traits": { - "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9\\-\\_\\.]{0,126}[A-Za-z0-9]$" + "smithy.api#length": { + "min": 1, + "max": 36 + } } }, - "com.amazonaws.dynamodb#ContributorInsightsRuleList": { - "type": "list", - "member": { - "target": "com.amazonaws.dynamodb#ContributorInsightsRule" + "com.amazonaws.dynamodb#ClientToken": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[^\\$]+$" } }, - "com.amazonaws.dynamodb#ContributorInsightsStatus": { + "com.amazonaws.dynamodb#CloudWatchLogGroupArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.dynamodb#Code": { + "type": "string" + }, + "com.amazonaws.dynamodb#ComparisonOperator": { "type": "enum", "members": { - "ENABLING": { + "EQ": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLING" + "smithy.api#enumValue": "EQ" } }, - "ENABLED": { + "NE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "NE" } }, - "DISABLING": { + "IN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLING" + "smithy.api#enumValue": "IN" } }, - "DISABLED": { + "LE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "LE" } }, - "FAILED": { + "LT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FAILED" + "smithy.api#enumValue": "LT" } - } - } - }, - "com.amazonaws.dynamodb#ContributorInsightsSummaries": { - "type": "list", - "member": { - "target": "com.amazonaws.dynamodb#ContributorInsightsSummary" - } - }, - "com.amazonaws.dynamodb#ContributorInsightsSummary": { - "type": "structure", - "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableName", + }, + "GE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Name of the table associated with the summary.

" + "smithy.api#enumValue": "GE" } }, - "IndexName": { - "target": "com.amazonaws.dynamodb#IndexName", + "GT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Name of the index associated with the summary, if any.

" + "smithy.api#enumValue": "GT" } }, - "ContributorInsightsStatus": { - "target": "com.amazonaws.dynamodb#ContributorInsightsStatus", + "BETWEEN": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Describes the current status for contributor insights for the given table and index,\n if applicable.

" + "smithy.api#enumValue": "BETWEEN" } }, - "ContributorInsightsMode": { - "target": "com.amazonaws.dynamodb#ContributorInsightsMode", + "NOT_NULL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Indicates the current mode of CloudWatch Contributor Insights, specifying whether it\n tracks all access and throttled events or throttled events only for the DynamoDB\n table or index.

" + "smithy.api#enumValue": "NOT_NULL" } - } - }, - "traits": { - "smithy.api#documentation": "

Represents a Contributor Insights summary entry.

" - } - }, - "com.amazonaws.dynamodb#CreateBackup": { - "type": "operation", - "input": { - "target": "com.amazonaws.dynamodb#CreateBackupInput" - }, - "output": { - "target": "com.amazonaws.dynamodb#CreateBackupOutput" - }, - "errors": [ - { - "target": "com.amazonaws.dynamodb#BackupInUseException" - }, - { - "target": "com.amazonaws.dynamodb#ContinuousBackupsUnavailableException" - }, - { - "target": "com.amazonaws.dynamodb#InternalServerError" - }, - { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" - }, - { - "target": "com.amazonaws.dynamodb#LimitExceededException" }, - { - "target": "com.amazonaws.dynamodb#TableInUseException" + "NULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NULL" + } }, - { - "target": "com.amazonaws.dynamodb#TableNotFoundException" - } - ], - "traits": { - "aws.api#clientDiscoveredEndpoint": { - "required": false + "CONTAINS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINS" + } }, - "smithy.api#documentation": "

Creates a backup for an existing table.

\n

Each time you create an on-demand backup, the entire table data is backed up. There\n is no limit to the number of on-demand backups that can be taken.

\n

When you create an on-demand backup, a time marker of the request is cataloged, and\n the backup is created asynchronously, by applying all changes until the time of the\n request to the last full table snapshot. Backup requests are processed instantaneously\n and become available for restore within minutes.

\n

You can call CreateBackup at a maximum rate of 50 times per\n second.

\n

All backups in DynamoDB work without consuming any provisioned throughput on the\n table.

\n

If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to\n contain all data committed to the table up to 14:24:00, and data committed after\n 14:26:00 will not be. The backup might contain data modifications made between 14:24:00\n and 14:26:00. On-demand backup does not support causal consistency.

\n

Along with data, the following are also included on the backups:

\n
    \n
  • \n

    Global secondary indexes (GSIs)

    \n
  • \n
  • \n

    Local secondary indexes (LSIs)

    \n
  • \n
  • \n

    Streams

    \n
  • \n
  • \n

    Provisioned read and write capacity

    \n
  • \n
" - } - }, - "com.amazonaws.dynamodb#CreateBackupInput": { - "type": "structure", - "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", + "NOT_CONTAINS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The name of the table. You can also provide the Amazon Resource Name (ARN) of the table in this\n parameter.

", - "smithy.api#required": {}, - "smithy.rules#contextParam": { - "name": "ResourceArn" - } + "smithy.api#enumValue": "NOT_CONTAINS" } }, - "BackupName": { - "target": "com.amazonaws.dynamodb#BackupName", + "BEGINS_WITH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Specified name for the backup.

", - "smithy.api#required": {} + "smithy.api#enumValue": "BEGINS_WITH" } } - }, - "traits": { - "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#CreateBackupOutput": { + "com.amazonaws.dynamodb#Condition": { "type": "structure", "members": { - "BackupDetails": { - "target": "com.amazonaws.dynamodb#BackupDetails", + "AttributeValueList": { + "target": "com.amazonaws.dynamodb#AttributeValueList", "traits": { - "smithy.api#documentation": "

Contains the details of the backup created for the table.

" + "smithy.api#documentation": "

One or more values to evaluate against the supplied attribute. The number of values in\n the list depends on the ComparisonOperator being used.

\n

For type Number, value comparisons are numeric.

\n

String value comparisons for greater than, equals, or less than are based on ASCII\n character code values. For example, a is greater than A, and\n a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

\n

For Binary, DynamoDB treats each byte of the binary data as unsigned when it\n compares binary values.

" + } + }, + "ComparisonOperator": { + "target": "com.amazonaws.dynamodb#ComparisonOperator", + "traits": { + "smithy.api#documentation": "

A comparator for evaluating attributes. For example, equals, greater than, less than,\n etc.

\n

The following comparison operators are available:

\n

\n EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS |\n BEGINS_WITH | IN | BETWEEN\n

\n

The following are descriptions of each comparison operator.

\n
    \n
  • \n

    \n EQ : Equal. EQ is supported for all data types,\n including lists and maps.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, Binary, String Set, Number Set, or Binary Set.\n If an item contains an AttributeValue element of a different type\n than the one provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n NE : Not equal. NE is supported for all data types,\n including lists and maps.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String, Number, Binary, String Set, Number Set, or Binary Set. If an\n item contains an AttributeValue of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n LE : Less than or equal.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n LT : Less than.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String, Number, or Binary (not a set type). If an item contains an\n AttributeValue element of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\",\n \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n GE : Greater than or equal.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n GT : Greater than.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If an item contains\n an AttributeValue element of a different type than the one provided\n in the request, the value does not match. For example, {\"S\":\"6\"}\n does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not\n compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    \n

    \n
  • \n
  • \n

    \n NOT_NULL : The attribute exists. NOT_NULL is supported\n for all data types, including lists and maps.

    \n \n

    This operator tests for the existence of an attribute, not its data type.\n If the data type of attribute \"a\" is null, and you evaluate it\n using NOT_NULL, the result is a Boolean true. This\n result is because the attribute \"a\" exists; its data type is\n not relevant to the NOT_NULL comparison operator.

    \n
    \n
  • \n
  • \n

    \n NULL : The attribute does not exist. NULL is supported\n for all data types, including lists and maps.

    \n \n

    This operator tests for the nonexistence of an attribute, not its data\n type. If the data type of attribute \"a\" is null, and you\n evaluate it using NULL, the result is a Boolean\n false. This is because the attribute \"a\"\n exists; its data type is not relevant to the NULL comparison\n operator.

    \n
    \n
  • \n
  • \n

    \n CONTAINS : Checks for a subsequence, or value in a set.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If the target\n attribute of the comparison is of type String, then the operator checks for a\n substring match. If the target attribute of the comparison is of type Binary,\n then the operator looks for a subsequence of the target that matches the input.\n If the target attribute of the comparison is a set (\"SS\",\n \"NS\", or \"BS\"), then the operator evaluates to\n true if it finds an exact match with any member of the set.

    \n

    CONTAINS is supported for lists: When evaluating \"a CONTAINS b\",\n \"a\" can be a list; however, \"b\" cannot be a set, a\n map, or a list.

    \n
  • \n
  • \n

    \n NOT_CONTAINS : Checks for absence of a subsequence, or absence of a\n value in a set.

    \n

    \n AttributeValueList can contain only one AttributeValue\n element of type String, Number, or Binary (not a set type). If the target\n attribute of the comparison is a String, then the operator checks for the\n absence of a substring match. If the target attribute of the comparison is\n Binary, then the operator checks for the absence of a subsequence of the target\n that matches the input. If the target attribute of the comparison is a set\n (\"SS\", \"NS\", or \"BS\"), then the\n operator evaluates to true if it does not find an exact\n match with any member of the set.

    \n

    NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS\n b\", \"a\" can be a list; however, \"b\" cannot\n be a set, a map, or a list.

    \n
  • \n
  • \n

    \n BEGINS_WITH : Checks for a prefix.

    \n

    \n AttributeValueList can contain only one AttributeValue\n of type String or Binary (not a Number or a set type). The target attribute of\n the comparison must be of type String or Binary (not a Number or a set\n type).

    \n

    \n
  • \n
  • \n

    \n IN : Checks for matching elements in a list.

    \n

    \n AttributeValueList can contain one or more\n AttributeValue elements of type String, Number, or Binary.\n These attributes are compared against an existing attribute of an item. If any\n elements of the input are equal to the item attribute, the expression evaluates\n to true.

    \n
  • \n
  • \n

    \n BETWEEN : Greater than or equal to the first value, and less than\n or equal to the second value.

    \n

    \n AttributeValueList must contain two AttributeValue\n elements of the same type, either String, Number, or Binary (not a set type). A\n target attribute matches if the target value is greater than, or equal to, the\n first element and less than, or equal to, the second element. If an item\n contains an AttributeValue element of a different type than the one\n provided in the request, the value does not match. For example,\n {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also,\n {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\",\n \"1\"]}\n

    \n
  • \n
\n

For usage examples of AttributeValueList and\n ComparisonOperator, see Legacy\n Conditional Parameters in the Amazon DynamoDB Developer\n Guide.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

Represents the selection criteria for a Query or Scan\n operation:

\n
    \n
  • \n

    For a Query operation, Condition is used for\n specifying the KeyConditions to use when querying a table or an\n index. For KeyConditions, only the following comparison operators\n are supported:

    \n

    \n EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN\n

    \n

    \n Condition is also used in a QueryFilter, which\n evaluates the query results and returns only the desired values.

    \n
  • \n
  • \n

    For a Scan operation, Condition is used in a\n ScanFilter, which evaluates the scan results and returns only\n the desired values.

    \n
  • \n
" } }, - "com.amazonaws.dynamodb#CreateGlobalSecondaryIndexAction": { + "com.amazonaws.dynamodb#ConditionCheck": { "type": "structure", "members": { - "IndexName": { - "target": "com.amazonaws.dynamodb#IndexName", + "Key": { + "target": "com.amazonaws.dynamodb#Key", "traits": { - "smithy.api#documentation": "

The name of the global secondary index to be created.

", + "smithy.api#documentation": "

The primary key of the item to be checked. Each element consists of an attribute name\n and a value for that attribute.

", "smithy.api#required": {} } }, - "KeySchema": { - "target": "com.amazonaws.dynamodb#KeySchema", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The key schema for the global secondary index.\n Global secondary index supports up to 4 partition and up to 4 sort keys.

", + "smithy.api#documentation": "

Name of the table for the check item request. You can also provide the Amazon Resource Name (ARN) of\n the table in this parameter.

", "smithy.api#required": {} } }, - "Projection": { - "target": "com.amazonaws.dynamodb#Projection", + "ConditionExpression": { + "target": "com.amazonaws.dynamodb#ConditionExpression", "traits": { - "smithy.api#documentation": "

Represents attributes that are copied (projected) from the table into an index. These\n are in addition to the primary key attributes and index key attributes, which are\n automatically projected.

", + "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional update to succeed. For\n more information, see Condition expressions in the Amazon DynamoDB Developer\n Guide.

", "smithy.api#required": {} } }, - "ProvisionedThroughput": { - "target": "com.amazonaws.dynamodb#ProvisionedThroughput", + "ExpressionAttributeNames": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", "traits": { - "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression. For more\n information, see Expression attribute names in the Amazon DynamoDB Developer\n Guide.

" } }, - "OnDemandThroughput": { - "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "ExpressionAttributeValues": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", "traits": { - "smithy.api#documentation": "

The maximum number of read and write units for the global secondary index being\n created. If you use this parameter, you must specify MaxReadRequestUnits,\n MaxWriteRequestUnits, or both. You must use either OnDemand\n Throughput or ProvisionedThroughput based on your table's\n capacity mode.

" + "smithy.api#documentation": "

One or more values that can be substituted in an expression. For more information, see\n Condition expressions in the Amazon DynamoDB Developer\n Guide.

" } }, - "WarmThroughput": { - "target": "com.amazonaws.dynamodb#WarmThroughput", + "ReturnValuesOnConditionCheckFailure": { + "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", "traits": { - "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per\n second) when creating a secondary index.

" + "smithy.api#documentation": "

Use ReturnValuesOnConditionCheckFailure to get the item attributes if the\n ConditionCheck condition fails. For\n ReturnValuesOnConditionCheckFailure, the valid values are: NONE and\n ALL_OLD.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a new global secondary index to be added to an existing table.

" + "smithy.api#documentation": "

Represents a request to perform a check that an item exists or to check the condition\n of specific attributes of the item.

" } }, - "com.amazonaws.dynamodb#CreateGlobalTable": { - "type": "operation", - "input": { - "target": "com.amazonaws.dynamodb#CreateGlobalTableInput" - }, - "output": { - "target": "com.amazonaws.dynamodb#CreateGlobalTableOutput" - }, - "errors": [ - { - "target": "com.amazonaws.dynamodb#GlobalTableAlreadyExistsException" - }, - { - "target": "com.amazonaws.dynamodb#InternalServerError" - }, - { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" - }, - { - "target": "com.amazonaws.dynamodb#LimitExceededException" - }, - { - "target": "com.amazonaws.dynamodb#TableNotFoundException" - } - ], - "traits": { - "aws.api#clientDiscoveredEndpoint": { - "required": false - }, - "smithy.api#documentation": "

Creates a global table from an existing table. A global table creates a replication\n relationship between two or more DynamoDB tables with the same table name in the\n provided Regions.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
\n

If you want to add a new replica table to a global table, each of the following\n conditions must be true:

\n
    \n
  • \n

    The table must have the same primary key as all of the other replicas.

    \n
  • \n
  • \n

    The table must have the same name as all of the other replicas.

    \n
  • \n
  • \n

    The table must have DynamoDB Streams enabled, with the stream containing both\n the new and the old images of the item.

    \n
  • \n
  • \n

    None of the replica tables in the global table can contain any data.

    \n
  • \n
\n

If global secondary indexes are specified, then the following conditions must also be\n met:

\n
    \n
  • \n

    The global secondary indexes must have the same name.

    \n
  • \n
  • \n

    The global secondary indexes must have the same hash key and sort key (if\n present).

    \n
  • \n
\n

If local secondary indexes are specified, then the following conditions must also be\n met:

\n
    \n
  • \n

    The local secondary indexes must have the same name.

    \n
  • \n
  • \n

    The local secondary indexes must have the same hash key and sort key (if\n present).

    \n
  • \n
\n \n

Write capacity settings should be set consistently across your replica tables and\n secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the\n write capacity settings for all of your global tables replicas and indexes.

\n

If you prefer to manage write capacity settings manually, you should provision\n equal replicated write capacity units to your replica tables. You should also\n provision equal replicated write capacity units to matching secondary indexes across\n your global table.

\n
" - } + "com.amazonaws.dynamodb#ConditionExpression": { + "type": "string" }, - "com.amazonaws.dynamodb#CreateGlobalTableInput": { + "com.amazonaws.dynamodb#ConditionalCheckFailedException": { "type": "structure", "members": { - "GlobalTableName": { - "target": "com.amazonaws.dynamodb#TableName", + "message": { + "target": "com.amazonaws.dynamodb#ErrorMessage", "traits": { - "smithy.api#documentation": "

The global table name.

", - "smithy.api#required": {}, - "smithy.rules#contextParam": { - "name": "ResourceArn" - } + "smithy.api#documentation": "

The conditional request failed.

" } }, - "ReplicationGroup": { - "target": "com.amazonaws.dynamodb#ReplicaList", + "Item": { + "target": "com.amazonaws.dynamodb#AttributeMap", "traits": { - "smithy.api#documentation": "

The Regions where the global table needs to be created.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Item which caused the ConditionalCheckFailedException.

" } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

A condition specified in the operation failed to be evaluated.

", + "smithy.api#error": "client" } }, - "com.amazonaws.dynamodb#CreateGlobalTableOutput": { - "type": "structure", + "com.amazonaws.dynamodb#ConditionalOperator": { + "type": "enum", "members": { - "GlobalTableDescription": { - "target": "com.amazonaws.dynamodb#GlobalTableDescription", + "AND": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Contains the details of the global table.

" + "smithy.api#enumValue": "AND" + } + }, + "OR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OR" } } - }, + } + }, + "com.amazonaws.dynamodb#ConfirmRemoveSelfResourceAccess": { + "type": "boolean", "traits": { - "smithy.api#output": {} + "smithy.api#default": false } }, - "com.amazonaws.dynamodb#CreateGlobalTableWitnessGroupMemberAction": { + "com.amazonaws.dynamodb#ConsistentRead": { + "type": "boolean" + }, + "com.amazonaws.dynamodb#ConsumedCapacity": { "type": "structure", "members": { - "RegionName": { - "target": "com.amazonaws.dynamodb#RegionName", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The Amazon Web Services Region name to be added as a witness Region for the MRSC global\n table. The witness must be in a different Region than the replicas and within the same\n Region set:

\n
    \n
  • \n

    US Region set: US East (N. Virginia), US East (Ohio), US West (Oregon)

    \n
  • \n
  • \n

    EU Region set: Europe (Ireland), Europe (London), Europe (Paris), Europe\n (Frankfurt)

    \n
  • \n
  • \n

    AP Region set: Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific\n (Osaka)

    \n
  • \n
", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the table that was affected by the operation. If you had specified the\n Amazon Resource Name (ARN) of a table in the input, you'll see the table ARN in the response.

" + } + }, + "CapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", + "traits": { + "smithy.api#documentation": "

The total number of capacity units consumed by the operation.

" + } + }, + "ReadCapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", + "traits": { + "smithy.api#documentation": "

The total number of read capacity units consumed by the operation.

" + } + }, + "WriteCapacityUnits": { + "target": "com.amazonaws.dynamodb#ConsumedCapacityUnits", + "traits": { + "smithy.api#documentation": "

The total number of write capacity units consumed by the operation.

" + } + }, + "Table": { + "target": "com.amazonaws.dynamodb#Capacity", + "traits": { + "smithy.api#documentation": "

The amount of throughput consumed on the table affected by the operation.

" + } + }, + "LocalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#SecondaryIndexesCapacityMap", + "traits": { + "smithy.api#documentation": "

The amount of throughput consumed on each local index affected by the\n operation.

" + } + }, + "GlobalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#SecondaryIndexesCapacityMap", + "traits": { + "smithy.api#documentation": "

The amount of throughput consumed on each global index affected by the\n operation.

" + } + }, + "VectorIndexes": { + "target": "com.amazonaws.dynamodb#VectorIndexesCapacityMap", + "traits": { + "smithy.api#documentation": "

The amount of throughput consumed on each vector index affected by the operation.\n Each entry contains VectorWriteRequestBytes (for write operations) or\n VectorSearchRequestBytes (for search operations).

" } } }, "traits": { - "smithy.api#documentation": "

Specifies the action to add a new witness Region to a MRSC global table. A MRSC global\n table can be configured with either three replicas, or with two replicas and one\n witness.

" + "smithy.api#documentation": "

The capacity units consumed by an operation. The data returned includes the total\n provisioned throughput consumed, along with statistics for the table and any indexes\n involved in the operation. ConsumedCapacity is only returned if the request\n asked for it. For more information, see Provisioned capacity mode in the Amazon DynamoDB Developer\n Guide.

" } }, - "com.amazonaws.dynamodb#CreateReplicaAction": { + "com.amazonaws.dynamodb#ConsumedCapacityMultiple": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#ConsumedCapacity" + } + }, + "com.amazonaws.dynamodb#ConsumedCapacityUnits": { + "type": "double" + }, + "com.amazonaws.dynamodb#ContinuousBackupsDescription": { "type": "structure", "members": { - "RegionName": { - "target": "com.amazonaws.dynamodb#RegionName", + "ContinuousBackupsStatus": { + "target": "com.amazonaws.dynamodb#ContinuousBackupsStatus", "traits": { - "smithy.api#documentation": "

The Region of the replica to be added.

", + "smithy.api#documentation": "

\n ContinuousBackupsStatus can be one of the following states: ENABLED,\n DISABLED

", "smithy.api#required": {} } + }, + "PointInTimeRecoveryDescription": { + "target": "com.amazonaws.dynamodb#PointInTimeRecoveryDescription", + "traits": { + "smithy.api#documentation": "

The description of the point in time recovery settings applied to the table.

" + } } }, "traits": { - "smithy.api#documentation": "

Represents a replica to be added.

" + "smithy.api#documentation": "

Represents the continuous backups and point in time recovery settings on the\n table.

" } }, - "com.amazonaws.dynamodb#CreateReplicationGroupMemberAction": { + "com.amazonaws.dynamodb#ContinuousBackupsStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.dynamodb#ContinuousBackupsUnavailableException": { "type": "structure", "members": { - "RegionName": { - "target": "com.amazonaws.dynamodb#RegionName", + "message": { + "target": "com.amazonaws.dynamodb#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Backups have not yet been enabled for this table.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.dynamodb#ContributorInsightsAction": { + "type": "enum", + "members": { + "ENABLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The Region where the new replica will be created.

", - "smithy.api#required": {} + "smithy.api#enumValue": "ENABLE" } }, - "KMSMasterKeyId": { - "target": "com.amazonaws.dynamodb#KMSMasterKeyId", + "DISABLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The KMS key that should be used for KMS encryption in\n the new replica. To specify a key, use its key ID, Amazon Resource Name (ARN), alias\n name, or alias ARN. Note that you should only provide this parameter if the key is\n different from the default DynamoDB KMS key\n alias/aws/dynamodb.

" + "smithy.api#enumValue": "DISABLE" + } + } + } + }, + "com.amazonaws.dynamodb#ContributorInsightsMode": { + "type": "enum", + "members": { + "ACCESSED_AND_THROTTLED_KEYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCESSED_AND_THROTTLED_KEYS" } }, - "ProvisionedThroughputOverride": { - "target": "com.amazonaws.dynamodb#ProvisionedThroughputOverride", + "THROTTLED_KEYS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Replica-specific provisioned throughput. If not specified, uses the source table's\n provisioned throughput settings.

" + "smithy.api#enumValue": "THROTTLED_KEYS" + } + } + } + }, + "com.amazonaws.dynamodb#ContributorInsightsRule": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9\\-\\_\\.]{0,126}[A-Za-z0-9]$" + } + }, + "com.amazonaws.dynamodb#ContributorInsightsRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#ContributorInsightsRule" + } + }, + "com.amazonaws.dynamodb#ContributorInsightsStatus": { + "type": "enum", + "members": { + "ENABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLING" } }, - "OnDemandThroughputOverride": { - "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The maximum on-demand throughput settings for the specified replica table being\n created. You can only modify MaxReadRequestUnits, because you can't modify\n MaxWriteRequestUnits for individual replica tables.

" + "smithy.api#enumValue": "ENABLED" } }, - "GlobalSecondaryIndexes": { - "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexList", + "DISABLING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Replica-specific global secondary index settings.

" + "smithy.api#enumValue": "DISABLING" } }, - "TableClassOverride": { - "target": "com.amazonaws.dynamodb#TableClass", + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Replica-specific table class. If not specified, uses the source table's table\n class.

" + "smithy.api#enumValue": "DISABLED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.dynamodb#ContributorInsightsSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#ContributorInsightsSummary" + } + }, + "com.amazonaws.dynamodb#ContributorInsightsSummary": { + "type": "structure", + "members": { + "TableName": { + "target": "com.amazonaws.dynamodb#TableName", + "traits": { + "smithy.api#documentation": "

Name of the table associated with the summary.

" + } + }, + "IndexName": { + "target": "com.amazonaws.dynamodb#IndexName", + "traits": { + "smithy.api#documentation": "

Name of the index associated with the summary, if any.

" + } + }, + "ContributorInsightsStatus": { + "target": "com.amazonaws.dynamodb#ContributorInsightsStatus", + "traits": { + "smithy.api#documentation": "

Describes the current status for contributor insights for the given table and index,\n if applicable.

" + } + }, + "ContributorInsightsMode": { + "target": "com.amazonaws.dynamodb#ContributorInsightsMode", + "traits": { + "smithy.api#documentation": "

Indicates the current mode of CloudWatch Contributor Insights, specifying whether it\n tracks all access and throttled events or throttled events only for the DynamoDB\n table or index.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a replica to be created.

" + "smithy.api#documentation": "

Represents a Contributor Insights summary entry.

" } }, - "com.amazonaws.dynamodb#CreateTable": { + "com.amazonaws.dynamodb#CreateBackup": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#CreateTableInput" + "target": "com.amazonaws.dynamodb#CreateBackupInput" }, "output": { - "target": "com.amazonaws.dynamodb#CreateTableOutput" + "target": "com.amazonaws.dynamodb#CreateBackupOutput" }, "errors": [ + { + "target": "com.amazonaws.dynamodb#BackupInUseException" + }, + { + "target": "com.amazonaws.dynamodb#ContinuousBackupsUnavailableException" + }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, @@ -2207,316 +2380,116 @@ "target": "com.amazonaws.dynamodb#LimitExceededException" }, { - "target": "com.amazonaws.dynamodb#ResourceInUseException" + "target": "com.amazonaws.dynamodb#TableInUseException" + }, + { + "target": "com.amazonaws.dynamodb#TableNotFoundException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

The CreateTable operation adds a new table to your account. In an Amazon Web Services account, table names must be unique within each Region. That is, you can\n have two tables with same name if you create the tables in different Regions.

\n

\n CreateTable is an asynchronous operation. Upon receiving a\n CreateTable request, DynamoDB immediately returns a response with a\n TableStatus of CREATING. After the table is created,\n DynamoDB sets the TableStatus to ACTIVE. You can perform read\n and write operations only on an ACTIVE table.

\n

You can optionally define secondary indexes on the new table, as part of the\n CreateTable operation. If you want to create multiple tables with\n secondary indexes on them, you must create the tables sequentially. Only one table with\n secondary indexes can be in the CREATING state at any given time.

\n

You can use the DescribeTable action to check the table status.

" + "smithy.api#documentation": "

Creates a backup for an existing table.

\n

Each time you create an on-demand backup, the entire table data is backed up. There\n is no limit to the number of on-demand backups that can be taken.

\n

When you create an on-demand backup, a time marker of the request is cataloged, and\n the backup is created asynchronously, by applying all changes until the time of the\n request to the last full table snapshot. Backup requests are processed instantaneously\n and become available for restore within minutes.

\n

You can call CreateBackup at a maximum rate of 50 times per\n second.

\n

All backups in DynamoDB work without consuming any provisioned throughput on the\n table.

\n

If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to\n contain all data committed to the table up to 14:24:00, and data committed after\n 14:26:00 will not be. The backup might contain data modifications made between 14:24:00\n and 14:26:00. On-demand backup does not support causal consistency.

\n

Along with data, the following are also included on the backups:

\n
    \n
  • \n

    Global secondary indexes (GSIs)

    \n
  • \n
  • \n

    Local secondary indexes (LSIs)

    \n
  • \n
  • \n

    Streams

    \n
  • \n
  • \n

    Provisioned read and write capacity

    \n
  • \n
" } }, - "com.amazonaws.dynamodb#CreateTableInput": { + "com.amazonaws.dynamodb#CreateBackupInput": { "type": "structure", "members": { - "AttributeDefinitions": { - "target": "com.amazonaws.dynamodb#AttributeDefinitions", - "traits": { - "smithy.api#documentation": "

An array of attributes that describe the key schema for the table and indexes.

" - } - }, "TableName": { "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", + "smithy.api#documentation": "

The name of the table. You can also provide the Amazon Resource Name (ARN) of the table in this\n parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } }, - "KeySchema": { - "target": "com.amazonaws.dynamodb#KeySchema", - "traits": { - "smithy.api#documentation": "

Specifies the attributes that make up the primary key for a table or an index. The\n attributes in KeySchema must also be defined in the\n AttributeDefinitions array. For more information, see Data\n Model in the Amazon DynamoDB Developer Guide.

\n

Each KeySchemaElement in the array is composed of:

\n
    \n
  • \n

    \n AttributeName - The name of this key attribute.

    \n
  • \n
  • \n

    \n KeyType - The role that the key attribute will assume:

    \n
      \n
    • \n

      \n HASH - partition key

      \n
    • \n
    • \n

      \n RANGE - sort key

      \n
    • \n
    \n
  • \n
\n \n

The partition key of an item is also known as its hash\n attribute. The term \"hash attribute\" derives from the DynamoDB usage\n of an internal hash function to evenly distribute data items across partitions,\n based on their partition key values.

\n

The sort key of an item is also known as its range attribute.\n The term \"range attribute\" derives from the way DynamoDB stores items with the same\n partition key physically close together, in sorted order by the sort key\n value.

\n
\n

For a simple primary key (partition key), you must provide exactly one element with a\n KeyType of HASH.

\n

For a composite primary key (partition key and sort key), you must provide exactly two\n elements, in this order: The first element must have a KeyType of\n HASH, and the second element must have a KeyType of\n RANGE.

\n

For more information, see Working with Tables in the Amazon DynamoDB Developer\n Guide.

" - } - }, - "LocalSecondaryIndexes": { - "target": "com.amazonaws.dynamodb#LocalSecondaryIndexList", + "BackupName": { + "target": "com.amazonaws.dynamodb#BackupName", "traits": { - "smithy.api#documentation": "

One or more local secondary indexes (the maximum is 5) to be created on the table.\n Each index is scoped to a given partition key value. There is a 10 GB size limit per\n partition key value; otherwise, the size of a local secondary index is\n unconstrained.

\n

Each local secondary index in the array includes the following:

\n
    \n
  • \n

    \n IndexName - The name of the local secondary index. Must be unique\n only for this table.

    \n

    \n
  • \n
  • \n

    \n KeySchema - Specifies the key schema for the local secondary index.\n The key schema must begin with the same partition key as the table.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected) from\n the table into the index. These are in addition to the primary key attributes\n and index key attributes, which are automatically projected. Each attribute\n specification is composed of:

    \n
      \n
    • \n

      \n ProjectionType - One of the following:

      \n
        \n
      • \n

        \n KEYS_ONLY - Only the index and primary keys are\n projected into the index.

        \n
      • \n
      • \n

        \n INCLUDE - Only the specified table attributes are\n projected into the index. The list of projected attributes is in\n NonKeyAttributes.

        \n
      • \n
      • \n

        \n ALL - All of the table attributes are projected\n into the index.

        \n
      • \n
      \n
    • \n
    • \n

      \n NonKeyAttributes - A list of one or more non-key attribute\n names that are projected into the secondary index. The total count of\n attributes provided in NonKeyAttributes, summed across all\n of the secondary indexes, must not exceed 100. If you project the same\n attribute into two different indexes, this counts as two distinct\n attributes when determining the total. This limit only applies when you\n specify the ProjectionType of INCLUDE. You still can\n specify the ProjectionType of ALL to project all attributes\n from the source table, even if the table has more than 100\n attributes.

      \n
    • \n
    \n
  • \n
" - } - }, - "GlobalSecondaryIndexes": { - "target": "com.amazonaws.dynamodb#GlobalSecondaryIndexList", - "traits": { - "smithy.api#documentation": "

One or more global secondary indexes (the maximum is 20) to be created on the table.\n Each global secondary index in the array includes the following:

\n
    \n
  • \n

    \n IndexName - The name of the global secondary index. Must be unique\n only for this table.

    \n

    \n
  • \n
  • \n

    \n KeySchema - Specifies the key schema for the global secondary\n index. Each global secondary index supports up to 4 partition keys and up to 4 sort keys.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected) from\n the table into the index. These are in addition to the primary key attributes\n and index key attributes, which are automatically projected. Each attribute\n specification is composed of:

    \n
      \n
    • \n

      \n ProjectionType - One of the following:

      \n
        \n
      • \n

        \n KEYS_ONLY - Only the index and primary keys are\n projected into the index.

        \n
      • \n
      • \n

        \n INCLUDE - Only the specified table attributes are\n projected into the index. The list of projected attributes is in\n NonKeyAttributes.

        \n
      • \n
      • \n

        \n ALL - All of the table attributes are projected\n into the index.

        \n
      • \n
      \n
    • \n
    • \n

      \n NonKeyAttributes - A list of one or more non-key attribute\n names that are projected into the secondary index. The total count of\n attributes provided in NonKeyAttributes, summed across all\n of the secondary indexes, must not exceed 100. If you project the same\n attribute into two different indexes, this counts as two distinct\n attributes when determining the total. This limit only applies when you\n specify the ProjectionType of INCLUDE. You still can\n specify the ProjectionType of ALL to project all attributes\n from the source table, even if the table has more than 100\n attributes.

      \n
    • \n
    \n
  • \n
  • \n

    \n ProvisionedThroughput - The provisioned throughput settings for the\n global secondary index, consisting of read and write capacity units.

    \n
  • \n
" - } - }, - "BillingMode": { - "target": "com.amazonaws.dynamodb#BillingMode", - "traits": { - "smithy.api#documentation": "

Controls how you are charged for read and write throughput and how you manage\n capacity. This setting can be changed later.

\n
    \n
  • \n

    \n PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST\n for most DynamoDB workloads. PAY_PER_REQUEST sets the billing mode\n to On-demand capacity mode.

    \n
  • \n
  • \n

    \n PROVISIONED - We recommend using PROVISIONED for\n steady workloads with predictable growth where capacity requirements can be\n reliably forecasted. PROVISIONED sets the billing mode to Provisioned capacity mode.

    \n
  • \n
" - } - }, - "ProvisionedThroughput": { - "target": "com.amazonaws.dynamodb#ProvisionedThroughput", - "traits": { - "smithy.api#documentation": "

Represents the provisioned throughput settings for a specified table or index. The\n settings can be modified using the UpdateTable operation.

\n

If you set BillingMode as PROVISIONED, you must specify this property.\n If you set BillingMode as PAY_PER_REQUEST, you cannot specify this\n property.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" - } - }, - "StreamSpecification": { - "target": "com.amazonaws.dynamodb#StreamSpecification", - "traits": { - "smithy.api#documentation": "

The settings for DynamoDB Streams on the table. These settings consist of:

\n
    \n
  • \n

    \n StreamEnabled - Indicates whether DynamoDB Streams is to be enabled\n (true) or disabled (false).

    \n
  • \n
  • \n

    \n StreamViewType - When an item in the table is modified,\n StreamViewType determines what information is written to the\n table's stream. Valid values for StreamViewType are:

    \n
      \n
    • \n

      \n KEYS_ONLY - Only the key attributes of the modified item\n are written to the stream.

      \n
    • \n
    • \n

      \n NEW_IMAGE - The entire item, as it appears after it was\n modified, is written to the stream.

      \n
    • \n
    • \n

      \n OLD_IMAGE - The entire item, as it appeared before it was\n modified, is written to the stream.

      \n
    • \n
    • \n

      \n NEW_AND_OLD_IMAGES - Both the new and the old item images\n of the item are written to the stream.

      \n
    • \n
    \n
  • \n
" - } - }, - "SSESpecification": { - "target": "com.amazonaws.dynamodb#SSESpecification", - "traits": { - "smithy.api#documentation": "

Represents the settings used to enable server-side encryption.

" - } - }, - "Tags": { - "target": "com.amazonaws.dynamodb#TagList", - "traits": { - "smithy.api#documentation": "

A list of key-value pairs to label the table. For more information, see Tagging\n for DynamoDB.

" - } - }, - "TableClass": { - "target": "com.amazonaws.dynamodb#TableClass", - "traits": { - "smithy.api#documentation": "

The table class of the new table. Valid values are STANDARD and\n STANDARD_INFREQUENT_ACCESS.

" - } - }, - "DeletionProtectionEnabled": { - "target": "com.amazonaws.dynamodb#DeletionProtectionEnabled", - "traits": { - "smithy.api#documentation": "

Indicates whether deletion protection is to be enabled (true) or disabled (false) on\n the table.

" - } - }, - "WarmThroughput": { - "target": "com.amazonaws.dynamodb#WarmThroughput", - "traits": { - "smithy.api#documentation": "

Represents the warm throughput (in read units per second and write units per second)\n for creating a table.

" - } - }, - "ResourcePolicy": { - "target": "com.amazonaws.dynamodb#ResourcePolicy", - "traits": { - "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format that will be\n attached to the table.

\n

When you attach a resource-based policy while creating a table, the policy application\n is strongly consistent.

\n

The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this\n limit. For a full list of all considerations that apply for resource-based policies, see\n Resource-based\n policy considerations.

\n \n

You need to specify the CreateTable and\n PutResourcePolicy\n IAM actions for authorizing a user to create a table with a\n resource-based policy.

\n
" - } - }, - "OnDemandThroughput": { - "target": "com.amazonaws.dynamodb#OnDemandThroughput", - "traits": { - "smithy.api#documentation": "

Sets the maximum number of read and write units for the specified table in on-demand\n capacity mode. If you use this parameter, you must specify\n MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" - } - }, - "GlobalTableSourceArn": { - "target": "com.amazonaws.dynamodb#TableArn", - "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source table used for the creation\n of a multi-account global table.

" - } - }, - "GlobalTableSettingsReplicationMode": { - "target": "com.amazonaws.dynamodb#GlobalTableSettingsReplicationMode", - "traits": { - "smithy.api#documentation": "

Controls the settings synchronization mode for the global table. For multi-account global tables,\n this parameter is required and the only supported value is ENABLED. For same-account global tables,\n this parameter is set to ENABLED_WITH_OVERRIDES.\n

" - } - }, - "VectorIndexes": { - "target": "com.amazonaws.dynamodb#VectorIndexList", - "traits": { - "smithy.api#documentation": "

One or more vector indexes to be created on the table. Each vector index enables\n similarity search on a vector attribute. Each element in the list consists of:

\n
    \n
  • \n

    \n IndexName - The name of the vector index. Must be unique\n within the table.

    \n
  • \n
  • \n

    \n VectorAttribute - The attribute that contains vector\n embeddings. If multiple vector indexes reference the same attribute, they\n must all use the same number of dimensions.

    \n
  • \n
  • \n

    \n Dimensions - The number of dimensions in each vector.

    \n
  • \n
  • \n

    \n DistanceFunction - The distance function used to calculate\n similarity. Valid values: COSINE, EUCLIDEAN,\n DOT_PRODUCT.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected)\n from the table into the vector index. The total number of projected\n non-key attributes is shared across the vector attribute (counts as 1)\n and INLINE_FILTER search schema elements (each counts as 1).\n HASH search schema elements do not count toward this\n limit.

    \n
  • \n
  • \n

    \n SearchSchema - (Optional) Defines the partition key\n (HASH) and inline filter (INLINE_FILTER) attributes\n for the vector index.

    \n
  • \n
" + "smithy.api#documentation": "

Specified name for the backup.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Represents the input of a CreateTable operation.

", "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#CreateTableOutput": { + "com.amazonaws.dynamodb#CreateBackupOutput": { "type": "structure", "members": { - "TableDescription": { - "target": "com.amazonaws.dynamodb#TableDescription", + "BackupDetails": { + "target": "com.amazonaws.dynamodb#BackupDetails", "traits": { - "smithy.api#documentation": "

Represents the properties of the table.

" + "smithy.api#documentation": "

Contains the details of the backup created for the table.

" } } }, "traits": { - "smithy.api#documentation": "

Represents the output of a CreateTable operation.

", "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#CreateVectorIndexAction": { + "com.amazonaws.dynamodb#CreateGlobalSecondaryIndexAction": { "type": "structure", "members": { "IndexName": { "target": "com.amazonaws.dynamodb#IndexName", "traits": { - "smithy.api#documentation": "

The name of the vector index. Must be unique within the table.

", + "smithy.api#documentation": "

The name of the global secondary index to be created.

", "smithy.api#required": {} } }, - "VectorAttribute": { - "target": "com.amazonaws.dynamodb#VectorAttributeDefinition", + "KeySchema": { + "target": "com.amazonaws.dynamodb#KeySchema", "traits": { - "smithy.api#documentation": "

The attribute that contains vector embeddings. If multiple vector indexes\n reference the same attribute, they must all use the same number of\n dimensions.

", + "smithy.api#documentation": "

The key schema for the global secondary index.\n Global secondary index supports up to 4 partition and up to 4 sort keys.

", "smithy.api#required": {} } }, - "SearchSchema": { - "target": "com.amazonaws.dynamodb#SearchSchema", - "traits": { - "smithy.api#documentation": "

The partition key and inline filter attribute definitions for the vector\n index.

" - } - }, "Projection": { "target": "com.amazonaws.dynamodb#Projection", "traits": { - "smithy.api#documentation": "

Specifies attributes that are copied (projected) from the table into the vector\n index.

", - "smithy.api#required": {} - } - }, - "Dimensions": { - "target": "com.amazonaws.dynamodb#PositiveLongObject", - "traits": { - "smithy.api#documentation": "

The number of dimensions in each vector.

", - "smithy.api#required": {} - } - }, - "DistanceFunction": { - "target": "com.amazonaws.dynamodb#VectorDistanceFunction", - "traits": { - "smithy.api#documentation": "

The distance function used to calculate similarity. Valid values:\n COSINE, EUCLIDEAN, DOT_PRODUCT.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

A new vector index to be added to a table.

" - } - }, - "com.amazonaws.dynamodb#CsvDelimiter": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 1 - }, - "smithy.api#pattern": "^[,;:|\\t ]$" - } - }, - "com.amazonaws.dynamodb#CsvHeader": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 65536 - }, - "smithy.api#pattern": "^[\\x20-\\x21\\x23-\\x2B\\x2D-\\x7E]*$" - } - }, - "com.amazonaws.dynamodb#CsvHeaderList": { - "type": "list", - "member": { - "target": "com.amazonaws.dynamodb#CsvHeader" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 255 - } - } - }, - "com.amazonaws.dynamodb#CsvOptions": { - "type": "structure", - "members": { - "Delimiter": { - "target": "com.amazonaws.dynamodb#CsvDelimiter", - "traits": { - "smithy.api#documentation": "

The delimiter used for separating items in the CSV file being imported.

" - } - }, - "HeaderList": { - "target": "com.amazonaws.dynamodb#CsvHeaderList", - "traits": { - "smithy.api#documentation": "

List of the headers used to specify a common header for all source CSV files being\n imported. If this field is specified then the first line of each CSV file is treated as\n data instead of the header. If this field is not specified the the first line of each\n CSV file is treated as the header.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Processing options for the CSV file being imported.

" - } - }, - "com.amazonaws.dynamodb#Date": { - "type": "timestamp" - }, - "com.amazonaws.dynamodb#Delete": { - "type": "structure", - "members": { - "Key": { - "target": "com.amazonaws.dynamodb#Key", - "traits": { - "smithy.api#documentation": "

The primary key of the item to be deleted. Each element consists of an attribute name\n and a value for that attribute.

", - "smithy.api#required": {} - } - }, - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", - "traits": { - "smithy.api#documentation": "

Name of the table in which the item to be deleted resides. You can also provide the\n Amazon Resource Name (ARN) of the table in this parameter.

", + "smithy.api#documentation": "

Represents attributes that are copied (projected) from the table into an index. These\n are in addition to the primary key attributes and index key attributes, which are\n automatically projected.

", "smithy.api#required": {} } }, - "ConditionExpression": { - "target": "com.amazonaws.dynamodb#ConditionExpression", - "traits": { - "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional delete to\n succeed.

" - } - }, - "ExpressionAttributeNames": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", + "ProvisionedThroughput": { + "target": "com.amazonaws.dynamodb#ProvisionedThroughput", "traits": { - "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression.

" + "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" } }, - "ExpressionAttributeValues": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", "traits": { - "smithy.api#documentation": "

One or more values that can be substituted in an expression.

" + "smithy.api#documentation": "

The maximum number of read and write units for the global secondary index being\n created. If you use this parameter, you must specify MaxReadRequestUnits,\n MaxWriteRequestUnits, or both. You must use either OnDemand\n Throughput or ProvisionedThroughput based on your table's\n capacity mode.

" } }, - "ReturnValuesOnConditionCheckFailure": { - "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", "traits": { - "smithy.api#documentation": "

Use ReturnValuesOnConditionCheckFailure to get the item attributes if the\n Delete condition fails. For\n ReturnValuesOnConditionCheckFailure, the valid values are: NONE and\n ALL_OLD.

" + "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per\n second) when creating a secondary index.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a request to perform a DeleteItem operation.

" + "smithy.api#documentation": "

Represents a new global secondary index to be added to an existing table.

" } }, - "com.amazonaws.dynamodb#DeleteBackup": { + "com.amazonaws.dynamodb#CreateGlobalTable": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DeleteBackupInput" + "target": "com.amazonaws.dynamodb#CreateGlobalTableInput" }, "output": { - "target": "com.amazonaws.dynamodb#DeleteBackupOutput" + "target": "com.amazonaws.dynamodb#CreateGlobalTableOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#BackupInUseException" - }, - { - "target": "com.amazonaws.dynamodb#BackupNotFoundException" + "target": "com.amazonaws.dynamodb#GlobalTableAlreadyExistsException" }, { "target": "com.amazonaws.dynamodb#InternalServerError" @@ -2526,40 +2499,50 @@ }, { "target": "com.amazonaws.dynamodb#LimitExceededException" + }, + { + "target": "com.amazonaws.dynamodb#TableNotFoundException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Deletes an existing backup of a table.

\n

You can call DeleteBackup at a maximum rate of 10 times per\n second.

" + "smithy.api#documentation": "

Creates a global table from an existing table. A global table creates a replication\n relationship between two or more DynamoDB tables with the same table name in the\n provided Regions.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
\n

If you want to add a new replica table to a global table, each of the following\n conditions must be true:

\n
    \n
  • \n

    The table must have the same primary key as all of the other replicas.

    \n
  • \n
  • \n

    The table must have the same name as all of the other replicas.

    \n
  • \n
  • \n

    The table must have DynamoDB Streams enabled, with the stream containing both\n the new and the old images of the item.

    \n
  • \n
  • \n

    None of the replica tables in the global table can contain any data.

    \n
  • \n
\n

If global secondary indexes are specified, then the following conditions must also be\n met:

\n
    \n
  • \n

    The global secondary indexes must have the same name.

    \n
  • \n
  • \n

    The global secondary indexes must have the same hash key and sort key (if\n present).

    \n
  • \n
\n

If local secondary indexes are specified, then the following conditions must also be\n met:

\n
    \n
  • \n

    The local secondary indexes must have the same name.

    \n
  • \n
  • \n

    The local secondary indexes must have the same hash key and sort key (if\n present).

    \n
  • \n
\n \n

Write capacity settings should be set consistently across your replica tables and\n secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the\n write capacity settings for all of your global tables replicas and indexes.

\n

If you prefer to manage write capacity settings manually, you should provision\n equal replicated write capacity units to your replica tables. You should also\n provision equal replicated write capacity units to matching secondary indexes across\n your global table.

\n
" } }, - "com.amazonaws.dynamodb#DeleteBackupInput": { + "com.amazonaws.dynamodb#CreateGlobalTableInput": { "type": "structure", "members": { - "BackupArn": { - "target": "com.amazonaws.dynamodb#BackupArn", + "GlobalTableName": { + "target": "com.amazonaws.dynamodb#TableName", "traits": { - "smithy.api#documentation": "

The ARN associated with the backup.

", + "smithy.api#documentation": "

The global table name.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } - } - }, - "traits": { + }, + "ReplicationGroup": { + "target": "com.amazonaws.dynamodb#ReplicaList", + "traits": { + "smithy.api#documentation": "

The Regions where the global table needs to be created.

", + "smithy.api#required": {} + } + } + }, + "traits": { "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DeleteBackupOutput": { + "com.amazonaws.dynamodb#CreateGlobalTableOutput": { "type": "structure", "members": { - "BackupDescription": { - "target": "com.amazonaws.dynamodb#BackupDescription", + "GlobalTableDescription": { + "target": "com.amazonaws.dynamodb#GlobalTableDescription", "traits": { - "smithy.api#documentation": "

Contains the description of the backup created for the table.

" + "smithy.api#documentation": "

Contains the details of the global table.

" } } }, @@ -2567,48 +2550,90 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DeleteGlobalSecondaryIndexAction": { + "com.amazonaws.dynamodb#CreateGlobalTableWitnessGroupMemberAction": { "type": "structure", "members": { - "IndexName": { - "target": "com.amazonaws.dynamodb#IndexName", + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", "traits": { - "smithy.api#documentation": "

The name of the global secondary index to be deleted.

", + "smithy.api#documentation": "

The Amazon Web Services Region name to be added as a witness Region for the MRSC global\n table. The witness must be in a different Region than the replicas and within the same\n Region set:

\n
    \n
  • \n

    US Region set: US East (N. Virginia), US East (Ohio), US West (Oregon)

    \n
  • \n
  • \n

    EU Region set: Europe (Ireland), Europe (London), Europe (Paris), Europe\n (Frankfurt)

    \n
  • \n
  • \n

    AP Region set: Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific\n (Osaka)

    \n
  • \n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Represents a global secondary index to be deleted from an existing table.

" + "smithy.api#documentation": "

Specifies the action to add a new witness Region to a MRSC global table. A MRSC global\n table can be configured with either three replicas, or with two replicas and one\n witness.

" } }, - "com.amazonaws.dynamodb#DeleteGlobalTableWitnessGroupMemberAction": { + "com.amazonaws.dynamodb#CreateReplicaAction": { "type": "structure", "members": { "RegionName": { "target": "com.amazonaws.dynamodb#RegionName", "traits": { - "smithy.api#documentation": "

The witness Region name to be removed from the MRSC global table.

", + "smithy.api#documentation": "

The Region of the replica to be added.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Specifies the action to remove a witness Region from a MRSC global table. You cannot\n delete a single witness from a MRSC global table - you must delete both a replica and\n the witness together. The deletion of both a witness and replica converts the remaining\n replica to a single-Region DynamoDB table.

" + "smithy.api#documentation": "

Represents a replica to be added.

" } }, - "com.amazonaws.dynamodb#DeleteItem": { + "com.amazonaws.dynamodb#CreateReplicationGroupMemberAction": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", + "traits": { + "smithy.api#documentation": "

The Region where the new replica will be created.

", + "smithy.api#required": {} + } + }, + "KMSMasterKeyId": { + "target": "com.amazonaws.dynamodb#KMSMasterKeyId", + "traits": { + "smithy.api#documentation": "

The KMS key that should be used for KMS encryption in\n the new replica. To specify a key, use its key ID, Amazon Resource Name (ARN), alias\n name, or alias ARN. Note that you should only provide this parameter if the key is\n different from the default DynamoDB KMS key\n alias/aws/dynamodb.

" + } + }, + "ProvisionedThroughputOverride": { + "target": "com.amazonaws.dynamodb#ProvisionedThroughputOverride", + "traits": { + "smithy.api#documentation": "

Replica-specific provisioned throughput. If not specified, uses the source table's\n provisioned throughput settings.

" + } + }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

The maximum on-demand throughput settings for the specified replica table being\n created. You can only modify MaxReadRequestUnits, because you can't modify\n MaxWriteRequestUnits for individual replica tables.

" + } + }, + "GlobalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexList", + "traits": { + "smithy.api#documentation": "

Replica-specific global secondary index settings.

" + } + }, + "TableClassOverride": { + "target": "com.amazonaws.dynamodb#TableClass", + "traits": { + "smithy.api#documentation": "

Replica-specific table class. If not specified, uses the source table's table\n class.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a replica to be created.

" + } + }, + "com.amazonaws.dynamodb#CreateTable": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DeleteItemInput" + "target": "com.amazonaws.dynamodb#CreateTableInput" }, "output": { - "target": "com.amazonaws.dynamodb#DeleteItemOutput" + "target": "com.amazonaws.dynamodb#CreateTableOutput" }, "errors": [ - { - "target": "com.amazonaws.dynamodb#ConditionalCheckFailedException" - }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, @@ -2616,340 +2641,344 @@ "target": "com.amazonaws.dynamodb#InvalidEndpointException" }, { - "target": "com.amazonaws.dynamodb#ItemCollectionSizeLimitExceededException" - }, - { - "target": "com.amazonaws.dynamodb#ProvisionedThroughputExceededException" - }, - { - "target": "com.amazonaws.dynamodb#ReplicatedWriteConflictException" - }, - { - "target": "com.amazonaws.dynamodb#RequestLimitExceeded" - }, - { - "target": "com.amazonaws.dynamodb#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.dynamodb#ThrottlingException" + "target": "com.amazonaws.dynamodb#LimitExceededException" }, { - "target": "com.amazonaws.dynamodb#TransactionConflictException" + "target": "com.amazonaws.dynamodb#ResourceInUseException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Deletes a single item in a table by primary key. You can perform a conditional delete\n operation that deletes the item if it exists, or if it has an expected attribute\n value.

\n

In addition to deleting an item, you can also return the item's attribute values in\n the same operation, using the ReturnValues parameter.

\n

Unless you specify conditions, the DeleteItem is an idempotent operation;\n running it multiple times on the same item or attribute does not\n result in an error response.

\n

Conditional deletes are useful for deleting items only if specific conditions are met.\n If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not\n deleted.

", - "smithy.api#examples": [ - { - "title": "To delete an item", - "documentation": "This example deletes an item from the Music table.", - "input": { - "TableName": "Music", - "Key": { - "Artist": { - "S": "No One You Know" - }, - "SongTitle": { - "S": "Scared of My Shadow" - } - } - }, - "output": { - "ConsumedCapacity": { - "CapacityUnits": 1, - "TableName": "Music" - } - } - } - ] + "smithy.api#documentation": "

The CreateTable operation adds a new table to your account. In an Amazon Web Services account, table names must be unique within each Region. That is, you can\n have two tables with same name if you create the tables in different Regions.

\n

\n CreateTable is an asynchronous operation. Upon receiving a\n CreateTable request, DynamoDB immediately returns a response with a\n TableStatus of CREATING. After the table is created,\n DynamoDB sets the TableStatus to ACTIVE. You can perform read\n and write operations only on an ACTIVE table.

\n

You can optionally define secondary indexes on the new table, as part of the\n CreateTable operation. If you want to create multiple tables with\n secondary indexes on them, you must create the tables sequentially. Only one table with\n secondary indexes can be in the CREATING state at any given time.

\n

You can use the DescribeTable action to check the table status.

" } }, - "com.amazonaws.dynamodb#DeleteItemInput": { + "com.amazonaws.dynamodb#CreateTableInput": { "type": "structure", "members": { + "AttributeDefinitions": { + "target": "com.amazonaws.dynamodb#AttributeDefinitions", + "traits": { + "smithy.api#documentation": "

An array of attributes that describe the key schema for the table and indexes.

" + } + }, "TableName": { "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The name of the table from which to delete the item. You can also provide the\n Amazon Resource Name (ARN) of the table in this parameter.

", + "smithy.api#documentation": "

The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } }, - "Key": { - "target": "com.amazonaws.dynamodb#Key", + "KeySchema": { + "target": "com.amazonaws.dynamodb#KeySchema", "traits": { - "smithy.api#documentation": "

A map of attribute names to AttributeValue objects, representing the\n primary key of the item to delete.

\n

For the primary key, you must provide all of the key attributes. For example, with a\n simple primary key, you only need to provide a value for the partition key. For a\n composite primary key, you must provide values for both the partition key and the sort\n key.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Specifies the attributes that make up the primary key for a table or an index. The\n attributes in KeySchema must also be defined in the\n AttributeDefinitions array. For more information, see Data\n Model in the Amazon DynamoDB Developer Guide.

\n

Each KeySchemaElement in the array is composed of:

\n
    \n
  • \n

    \n AttributeName - The name of this key attribute.

    \n
  • \n
  • \n

    \n KeyType - The role that the key attribute will assume:

    \n
      \n
    • \n

      \n HASH - partition key

      \n
    • \n
    • \n

      \n RANGE - sort key

      \n
    • \n
    \n
  • \n
\n \n

The partition key of an item is also known as its hash\n attribute. The term \"hash attribute\" derives from the DynamoDB usage\n of an internal hash function to evenly distribute data items across partitions,\n based on their partition key values.

\n

The sort key of an item is also known as its range attribute.\n The term \"range attribute\" derives from the way DynamoDB stores items with the same\n partition key physically close together, in sorted order by the sort key\n value.

\n
\n

For a simple primary key (partition key), you must provide exactly one element with a\n KeyType of HASH.

\n

For a composite primary key (partition key and sort key), you must provide exactly two\n elements, in this order: The first element must have a KeyType of\n HASH, and the second element must have a KeyType of\n RANGE.

\n

For more information, see Working with Tables in the Amazon DynamoDB Developer\n Guide.

" } }, - "Expected": { - "target": "com.amazonaws.dynamodb#ExpectedAttributeMap", + "LocalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#LocalSecondaryIndexList", "traits": { - "smithy.api#documentation": "

This is a legacy parameter. Use ConditionExpression instead. For more\n information, see Expected in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

One or more local secondary indexes (the maximum is 5) to be created on the table.\n Each index is scoped to a given partition key value. There is a 10 GB size limit per\n partition key value; otherwise, the size of a local secondary index is\n unconstrained.

\n

Each local secondary index in the array includes the following:

\n
    \n
  • \n

    \n IndexName - The name of the local secondary index. Must be unique\n only for this table.

    \n

    \n
  • \n
  • \n

    \n KeySchema - Specifies the key schema for the local secondary index.\n The key schema must begin with the same partition key as the table.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected) from\n the table into the index. These are in addition to the primary key attributes\n and index key attributes, which are automatically projected. Each attribute\n specification is composed of:

    \n
      \n
    • \n

      \n ProjectionType - One of the following:

      \n
        \n
      • \n

        \n KEYS_ONLY - Only the index and primary keys are\n projected into the index.

        \n
      • \n
      • \n

        \n INCLUDE - Only the specified table attributes are\n projected into the index. The list of projected attributes is in\n NonKeyAttributes.

        \n
      • \n
      • \n

        \n ALL - All of the table attributes are projected\n into the index.

        \n
      • \n
      \n
    • \n
    • \n

      \n NonKeyAttributes - A list of one or more non-key attribute\n names that are projected into the secondary index. The total count of\n attributes provided in NonKeyAttributes, summed across all\n of the secondary indexes, must not exceed 100. If you project the same\n attribute into two different indexes, this counts as two distinct\n attributes when determining the total. This limit only applies when you\n specify the ProjectionType of INCLUDE. You still can\n specify the ProjectionType of ALL to project all attributes\n from the source table, even if the table has more than 100\n attributes.

      \n
    • \n
    \n
  • \n
" } }, - "ConditionalOperator": { - "target": "com.amazonaws.dynamodb#ConditionalOperator", + "GlobalSecondaryIndexes": { + "target": "com.amazonaws.dynamodb#GlobalSecondaryIndexList", "traits": { - "smithy.api#documentation": "

This is a legacy parameter. Use ConditionExpression instead. For more\n information, see ConditionalOperator in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

One or more global secondary indexes (the maximum is 20) to be created on the table.\n Each global secondary index in the array includes the following:

\n
    \n
  • \n

    \n IndexName - The name of the global secondary index. Must be unique\n only for this table.

    \n

    \n
  • \n
  • \n

    \n KeySchema - Specifies the key schema for the global secondary\n index. Each global secondary index supports up to 4 partition keys and up to 4 sort keys.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected) from\n the table into the index. These are in addition to the primary key attributes\n and index key attributes, which are automatically projected. Each attribute\n specification is composed of:

    \n
      \n
    • \n

      \n ProjectionType - One of the following:

      \n
        \n
      • \n

        \n KEYS_ONLY - Only the index and primary keys are\n projected into the index.

        \n
      • \n
      • \n

        \n INCLUDE - Only the specified table attributes are\n projected into the index. The list of projected attributes is in\n NonKeyAttributes.

        \n
      • \n
      • \n

        \n ALL - All of the table attributes are projected\n into the index.

        \n
      • \n
      \n
    • \n
    • \n

      \n NonKeyAttributes - A list of one or more non-key attribute\n names that are projected into the secondary index. The total count of\n attributes provided in NonKeyAttributes, summed across all\n of the secondary indexes, must not exceed 100. If you project the same\n attribute into two different indexes, this counts as two distinct\n attributes when determining the total. This limit only applies when you\n specify the ProjectionType of INCLUDE. You still can\n specify the ProjectionType of ALL to project all attributes\n from the source table, even if the table has more than 100\n attributes.

      \n
    • \n
    \n
  • \n
  • \n

    \n ProvisionedThroughput - The provisioned throughput settings for the\n global secondary index, consisting of read and write capacity units.

    \n
  • \n
" } }, - "ReturnValues": { - "target": "com.amazonaws.dynamodb#ReturnValue", + "BillingMode": { + "target": "com.amazonaws.dynamodb#BillingMode", "traits": { - "smithy.api#documentation": "

Use ReturnValues if you want to get the item attributes as they appeared\n before they were deleted. For DeleteItem, the valid values are:

\n
    \n
  • \n

    \n NONE - If ReturnValues is not specified, or if its\n value is NONE, then nothing is returned. (This setting is the\n default for ReturnValues.)

    \n
  • \n
  • \n

    \n ALL_OLD - The content of the old item is returned.

    \n
  • \n
\n

There is no additional cost associated with requesting a return value aside from the\n small network and processing overhead of receiving a larger response. No read capacity\n units are consumed.

\n \n

The ReturnValues parameter is used by several DynamoDB operations;\n however, DeleteItem does not recognize any values other than\n NONE or ALL_OLD.

\n
" + "smithy.api#documentation": "

Controls how you are charged for read and write throughput and how you manage\n capacity. This setting can be changed later.

\n
    \n
  • \n

    \n PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST\n for most DynamoDB workloads. PAY_PER_REQUEST sets the billing mode\n to On-demand capacity mode.

    \n
  • \n
  • \n

    \n PROVISIONED - We recommend using PROVISIONED for\n steady workloads with predictable growth where capacity requirements can be\n reliably forecasted. PROVISIONED sets the billing mode to Provisioned capacity mode.

    \n
  • \n
" } }, - "ReturnConsumedCapacity": { - "target": "com.amazonaws.dynamodb#ReturnConsumedCapacity" + "ProvisionedThroughput": { + "target": "com.amazonaws.dynamodb#ProvisionedThroughput", + "traits": { + "smithy.api#documentation": "

Represents the provisioned throughput settings for a specified table or index. The\n settings can be modified using the UpdateTable operation.

\n

If you set BillingMode as PROVISIONED, you must specify this property.\n If you set BillingMode as PAY_PER_REQUEST, you cannot specify this\n property.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" + } }, - "ReturnItemCollectionMetrics": { - "target": "com.amazonaws.dynamodb#ReturnItemCollectionMetrics", + "StreamSpecification": { + "target": "com.amazonaws.dynamodb#StreamSpecification", "traits": { - "smithy.api#documentation": "

Determines whether item collection metrics are returned. If set to SIZE,\n the response includes statistics about item collections, if any, that were modified\n during the operation are returned in the response. If set to NONE (the\n default), no statistics are returned.

" + "smithy.api#documentation": "

The settings for DynamoDB Streams on the table. These settings consist of:

\n
    \n
  • \n

    \n StreamEnabled - Indicates whether DynamoDB Streams is to be enabled\n (true) or disabled (false).

    \n
  • \n
  • \n

    \n StreamViewType - When an item in the table is modified,\n StreamViewType determines what information is written to the\n table's stream. Valid values for StreamViewType are:

    \n
      \n
    • \n

      \n KEYS_ONLY - Only the key attributes of the modified item\n are written to the stream.

      \n
    • \n
    • \n

      \n NEW_IMAGE - The entire item, as it appears after it was\n modified, is written to the stream.

      \n
    • \n
    • \n

      \n OLD_IMAGE - The entire item, as it appeared before it was\n modified, is written to the stream.

      \n
    • \n
    • \n

      \n NEW_AND_OLD_IMAGES - Both the new and the old item images\n of the item are written to the stream.

      \n
    • \n
    \n
  • \n
" } }, - "ConditionExpression": { - "target": "com.amazonaws.dynamodb#ConditionExpression", + "SSESpecification": { + "target": "com.amazonaws.dynamodb#SSESpecification", "traits": { - "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional DeleteItem\n to succeed.

\n

An expression can contain any of the following:

\n
    \n
  • \n

    Functions: attribute_exists | attribute_not_exists | attribute_type |\n contains | begins_with | size\n

    \n

    These function names are case-sensitive.

    \n
  • \n
  • \n

    Comparison operators: = | <> |\n < | > | <= | >= |\n BETWEEN | IN \n

    \n
  • \n
  • \n

    Logical operators: AND | OR | NOT\n

    \n
  • \n
\n

For more information about condition expressions, see Condition Expressions in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

Represents the settings used to enable server-side encryption.

" } }, - "ExpressionAttributeNames": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", + "Tags": { + "target": "com.amazonaws.dynamodb#TagList", "traits": { - "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression. The following\n are some use cases for using ExpressionAttributeNames:

\n
    \n
  • \n

    To access an attribute whose name conflicts with a DynamoDB reserved\n word.

    \n
  • \n
  • \n

    To create a placeholder for repeating occurrences of an attribute name in an\n expression.

    \n
  • \n
  • \n

    To prevent special characters in an attribute name from being misinterpreted\n in an expression.

    \n
  • \n
\n

Use the # character in an expression to dereference\n an attribute name. For example, consider the following attribute name:

\n
    \n
  • \n

    \n Percentile\n

    \n
  • \n
\n

The name of this attribute conflicts with a reserved word, so it cannot be used\n directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer\n Guide). To work around this, you could specify the following for\n ExpressionAttributeNames:

\n
    \n
  • \n

    \n {\"#P\":\"Percentile\"}\n

    \n
  • \n
\n

You could then use this substitution in an expression, as in this example:

\n
    \n
  • \n

    \n #P = :val\n

    \n
  • \n
\n \n

Tokens that begin with the : character are\n expression attribute values, which are placeholders for the\n actual value at runtime.

\n
\n

For more information on expression attribute names, see Specifying Item Attributes in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

A list of key-value pairs to label the table. For more information, see Tagging\n for DynamoDB.

" } }, - "ExpressionAttributeValues": { - "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", + "TableClass": { + "target": "com.amazonaws.dynamodb#TableClass", "traits": { - "smithy.api#documentation": "

One or more values that can be substituted in an expression.

\n

Use the : (colon) character in an expression to\n dereference an attribute value. For example, suppose that you wanted to check whether\n the value of the ProductStatus attribute was one of the following:

\n

\n Available | Backordered | Discontinued\n

\n

You would first need to specify ExpressionAttributeValues as\n follows:

\n

\n { \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"},\n \":disc\":{\"S\":\"Discontinued\"} }\n

\n

You could then use these values in an expression, such as this:

\n

\n ProductStatus IN (:avail, :back, :disc)\n

\n

For more information on expression attribute values, see Condition Expressions in the Amazon DynamoDB Developer\n Guide.

" + "smithy.api#documentation": "

The table class of the new table. Valid values are STANDARD and\n STANDARD_INFREQUENT_ACCESS.

" } }, - "ReturnValuesOnConditionCheckFailure": { - "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", + "DeletionProtectionEnabled": { + "target": "com.amazonaws.dynamodb#DeletionProtectionEnabled", "traits": { - "smithy.api#documentation": "

An optional parameter that returns the item attributes for a DeleteItem\n operation that failed a condition check.

\n

There is no additional cost associated with requesting a return value aside from the\n small network and processing overhead of receiving a larger response. No read capacity\n units are consumed.

" + "smithy.api#documentation": "

Indicates whether deletion protection is to be enabled (true) or disabled (false) on\n the table.

" } - } - }, - "traits": { - "smithy.api#documentation": "

Represents the input of a DeleteItem operation.

", - "smithy.api#input": {} - } - }, - "com.amazonaws.dynamodb#DeleteItemOutput": { - "type": "structure", - "members": { - "Attributes": { - "target": "com.amazonaws.dynamodb#AttributeMap", + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", "traits": { - "smithy.api#documentation": "

A map of attribute names to AttributeValue objects, representing the item\n as it appeared before the DeleteItem operation. This map appears in the\n response only if ReturnValues was specified as ALL_OLD in the\n request.

" + "smithy.api#documentation": "

Represents the warm throughput (in read units per second and write units per second)\n for creating a table.

" } }, - "ConsumedCapacity": { - "target": "com.amazonaws.dynamodb#ConsumedCapacity", + "ResourcePolicy": { + "target": "com.amazonaws.dynamodb#ResourcePolicy", "traits": { - "smithy.api#documentation": "

The capacity units consumed by the DeleteItem operation. The data\n returned includes the total provisioned throughput consumed, along with statistics for\n the table and any indexes involved in the operation. ConsumedCapacity is\n only returned if the ReturnConsumedCapacity parameter was specified. For\n more information, see Provisioned capacity mode in the Amazon DynamoDB Developer\n Guide.

\n

If the table has vector indexes, the response includes a\n VectorIndexes field with VectorWriteRequestBytes consumed\n for each affected vector index.

" + "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format that will be\n attached to the table.

\n

When you attach a resource-based policy while creating a table, the policy application\n is strongly consistent.

\n

The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this\n limit. For a full list of all considerations that apply for resource-based policies, see\n Resource-based\n policy considerations.

\n \n

You need to specify the CreateTable and\n PutResourcePolicy\n IAM actions for authorizing a user to create a table with a\n resource-based policy.

\n
" } }, - "ItemCollectionMetrics": { - "target": "com.amazonaws.dynamodb#ItemCollectionMetrics", + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", "traits": { - "smithy.api#documentation": "

Information about item collections, if any, that were affected by the\n DeleteItem operation. ItemCollectionMetrics is only\n returned if the ReturnItemCollectionMetrics parameter was specified. If the\n table does not have any local secondary indexes, this information is not returned in the\n response.

\n

Each ItemCollectionMetrics element consists of:

\n
    \n
  • \n

    \n ItemCollectionKey - The partition key value of the item collection.\n This is the same as the partition key value of the item itself.

    \n
  • \n
  • \n

    \n SizeEstimateRangeGB - An estimate of item collection size, in\n gigabytes. This value is a two-element array containing a lower bound and an\n upper bound for the estimate. The estimate includes the size of all the items in\n the table, plus the size of all attributes projected into all of the local\n secondary indexes on that table. Use this estimate to measure whether a local\n secondary index is approaching its size limit.

    \n

    The estimate is subject to change over time; therefore, do not rely on the\n precision or accuracy of the estimate.

    \n
  • \n
" + "smithy.api#documentation": "

Sets the maximum number of read and write units for the specified table in on-demand\n capacity mode. If you use this parameter, you must specify\n MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } + }, + "GlobalTableSourceArn": { + "target": "com.amazonaws.dynamodb#TableArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source table used for the creation\n of a multi-account global table.

" + } + }, + "GlobalTableSettingsReplicationMode": { + "target": "com.amazonaws.dynamodb#GlobalTableSettingsReplicationMode", + "traits": { + "smithy.api#documentation": "

Controls the settings synchronization mode for the global table. For multi-account global tables,\n this parameter is required and the only supported value is ENABLED. For same-account global tables,\n this parameter is set to ENABLED_WITH_OVERRIDES.\n

" + } + }, + "VectorIndexes": { + "target": "com.amazonaws.dynamodb#VectorIndexList", + "traits": { + "smithy.api#documentation": "

One or more vector indexes to be created on the table. Each vector index enables\n similarity search on a vector attribute. Each element in the list consists of:

\n
    \n
  • \n

    \n IndexName - The name of the vector index. Must be unique\n within the table.

    \n
  • \n
  • \n

    \n VectorAttribute - The attribute that contains vector\n embeddings. If multiple vector indexes reference the same attribute, they\n must all use the same number of dimensions.

    \n
  • \n
  • \n

    \n Dimensions - The number of dimensions in each vector.

    \n
  • \n
  • \n

    \n DistanceFunction - The distance function used to calculate\n similarity. Valid values: COSINE, EUCLIDEAN,\n DOT_PRODUCT.

    \n
  • \n
  • \n

    \n Projection - Specifies attributes that are copied (projected)\n from the table into the vector index. The total number of projected\n non-key attributes is shared across the vector attribute (counts as 1)\n and INLINE_FILTER search schema elements (each counts as 1).\n HASH search schema elements do not count toward this\n limit.

    \n
  • \n
  • \n

    \n SearchSchema - (Optional) Defines the partition key\n (HASH) and inline filter (INLINE_FILTER) attributes\n for the vector index.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

Represents the output of a DeleteItem operation.

", - "smithy.api#output": {} + "smithy.api#documentation": "

Represents the input of a CreateTable operation.

", + "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DeleteReplicaAction": { + "com.amazonaws.dynamodb#CreateTableOutput": { "type": "structure", "members": { - "RegionName": { - "target": "com.amazonaws.dynamodb#RegionName", + "TableDescription": { + "target": "com.amazonaws.dynamodb#TableDescription", "traits": { - "smithy.api#documentation": "

The Region of the replica to be removed.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Represents the properties of the table.

" } } }, "traits": { - "smithy.api#documentation": "

Represents a replica to be removed.

" + "smithy.api#documentation": "

Represents the output of a CreateTable operation.

", + "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DeleteReplicationGroupMemberAction": { + "com.amazonaws.dynamodb#CreateVectorIndexAction": { "type": "structure", "members": { - "RegionName": { - "target": "com.amazonaws.dynamodb#RegionName", + "IndexName": { + "target": "com.amazonaws.dynamodb#IndexName", "traits": { - "smithy.api#documentation": "

The Region where the replica exists.

", + "smithy.api#documentation": "

The name of the vector index. Must be unique within the table.

", "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "

Represents a replica to be deleted.

" - } - }, - "com.amazonaws.dynamodb#DeleteRequest": { - "type": "structure", - "members": { - "Key": { - "target": "com.amazonaws.dynamodb#Key", + }, + "VectorAttribute": { + "target": "com.amazonaws.dynamodb#VectorAttributeDefinition", "traits": { - "smithy.api#documentation": "

A map of attribute name to attribute values, representing the primary key of the item\n to delete. All of the table's primary key attributes must be specified, and their data\n types must match those of the table's key schema.

", + "smithy.api#documentation": "

The attribute that contains vector embeddings. If multiple vector indexes\n reference the same attribute, they must all use the same number of\n dimensions.

", + "smithy.api#required": {} + } + }, + "SearchSchema": { + "target": "com.amazonaws.dynamodb#SearchSchema", + "traits": { + "smithy.api#documentation": "

The partition key and inline filter attribute definitions for the vector\n index.

" + } + }, + "Projection": { + "target": "com.amazonaws.dynamodb#Projection", + "traits": { + "smithy.api#documentation": "

Specifies attributes that are copied (projected) from the table into the vector\n index.

", + "smithy.api#required": {} + } + }, + "Dimensions": { + "target": "com.amazonaws.dynamodb#PositiveLongObject", + "traits": { + "smithy.api#documentation": "

The number of dimensions in each vector.

", + "smithy.api#required": {} + } + }, + "DistanceFunction": { + "target": "com.amazonaws.dynamodb#VectorDistanceFunction", + "traits": { + "smithy.api#documentation": "

The distance function used to calculate similarity. Valid values:\n COSINE, EUCLIDEAN, DOT_PRODUCT.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Represents a request to perform a DeleteItem operation on an item.

" + "smithy.api#documentation": "

A new vector index to be added to a table.

" } }, - "com.amazonaws.dynamodb#DeleteResourcePolicy": { - "type": "operation", - "input": { - "target": "com.amazonaws.dynamodb#DeleteResourcePolicyInput" - }, - "output": { - "target": "com.amazonaws.dynamodb#DeleteResourcePolicyOutput" - }, - "errors": [ - { - "target": "com.amazonaws.dynamodb#InternalServerError" - }, - { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" - }, - { - "target": "com.amazonaws.dynamodb#LimitExceededException" - }, - { - "target": "com.amazonaws.dynamodb#PolicyNotFoundException" - }, - { - "target": "com.amazonaws.dynamodb#ResourceInUseException" + "com.amazonaws.dynamodb#CsvDelimiter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 }, - { - "target": "com.amazonaws.dynamodb#ResourceNotFoundException" - } - ], + "smithy.api#pattern": "^[,;:|\\t ]$" + } + }, + "com.amazonaws.dynamodb#CsvHeader": { + "type": "string", "traits": { - "aws.api#clientDiscoveredEndpoint": { - "required": false + "smithy.api#length": { + "min": 1, + "max": 65536 }, - "smithy.api#documentation": "

Deletes the resource-based policy attached to the resource, which can be a table or\n stream.

\n

\n DeleteResourcePolicy is an idempotent operation; running it multiple\n times on the same resource doesn't result in an error response,\n unless you specify an ExpectedRevisionId, which will then return a\n PolicyNotFoundException.

\n \n

To make sure that you don't inadvertently lock yourself out of your own resources,\n the root principal in your Amazon Web Services account can perform\n DeleteResourcePolicy requests, even if your resource-based policy\n explicitly denies the root principal's access.

\n
\n \n

\n DeleteResourcePolicy is an asynchronous operation. If you issue a\n GetResourcePolicy request immediately after running the\n DeleteResourcePolicy request, DynamoDB might still return\n the deleted policy. This is because the policy for your resource might not have been\n deleted yet. Wait for a few seconds, and then try the GetResourcePolicy\n request again.

\n
" + "smithy.api#pattern": "^[\\x20-\\x21\\x23-\\x2B\\x2D-\\x7E]*$" } }, - "com.amazonaws.dynamodb#DeleteResourcePolicyInput": { + "com.amazonaws.dynamodb#CsvHeaderList": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#CsvHeader" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.dynamodb#CsvOptions": { "type": "structure", "members": { - "ResourceArn": { - "target": "com.amazonaws.dynamodb#ResourceArnString", + "Delimiter": { + "target": "com.amazonaws.dynamodb#CsvDelimiter", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DynamoDB resource from which the policy will be\n removed. The resources you can specify include tables and streams. If you remove the\n policy of a table, it will also remove the permissions for the table's indexes defined\n in that policy document. This is because index permissions are defined in the table's\n policy.

", - "smithy.api#required": {}, - "smithy.rules#contextParam": { - "name": "ResourceArn" - } + "smithy.api#documentation": "

The delimiter used for separating items in the CSV file being imported.

" } }, - "ExpectedRevisionId": { - "target": "com.amazonaws.dynamodb#PolicyRevisionId", + "HeaderList": { + "target": "com.amazonaws.dynamodb#CsvHeaderList", "traits": { - "smithy.api#documentation": "

A string value that you can use to conditionally delete your policy. When you provide\n an expected revision ID, if the revision ID of the existing policy on the resource\n doesn't match or if there's no policy attached to the resource, the request will fail\n and return a PolicyNotFoundException.

" + "smithy.api#documentation": "

List of the headers used to specify a common header for all source CSV files being\n imported. If this field is specified then the first line of each CSV file is treated as\n data instead of the header. If this field is not specified the the first line of each\n CSV file is treated as the header.

" } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Processing options for the CSV file being imported.

" } }, - "com.amazonaws.dynamodb#DeleteResourcePolicyOutput": { + "com.amazonaws.dynamodb#Date": { + "type": "timestamp" + }, + "com.amazonaws.dynamodb#Delete": { "type": "structure", "members": { - "RevisionId": { - "target": "com.amazonaws.dynamodb#PolicyRevisionId", + "Key": { + "target": "com.amazonaws.dynamodb#Key", "traits": { - "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.

\n

This value will be empty if you make a request against a resource without a\n policy.

" + "smithy.api#documentation": "

The primary key of the item to be deleted. Each element consists of an attribute name\n and a value for that attribute.

", + "smithy.api#required": {} + } + }, + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", + "traits": { + "smithy.api#documentation": "

Name of the table in which the item to be deleted resides. You can also provide the\n Amazon Resource Name (ARN) of the table in this parameter.

", + "smithy.api#required": {} + } + }, + "ConditionExpression": { + "target": "com.amazonaws.dynamodb#ConditionExpression", + "traits": { + "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional delete to\n succeed.

" + } + }, + "ExpressionAttributeNames": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", + "traits": { + "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression.

" + } + }, + "ExpressionAttributeValues": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", + "traits": { + "smithy.api#documentation": "

One or more values that can be substituted in an expression.

" + } + }, + "ReturnValuesOnConditionCheckFailure": { + "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", + "traits": { + "smithy.api#documentation": "

Use ReturnValuesOnConditionCheckFailure to get the item attributes if the\n Delete condition fails. For\n ReturnValuesOnConditionCheckFailure, the valid values are: NONE and\n ALL_OLD.

" } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

Represents a request to perform a DeleteItem operation.

" } }, - "com.amazonaws.dynamodb#DeleteTable": { + "com.amazonaws.dynamodb#DeleteBackup": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DeleteTableInput" + "target": "com.amazonaws.dynamodb#DeleteBackupInput" }, "output": { - "target": "com.amazonaws.dynamodb#DeleteTableOutput" + "target": "com.amazonaws.dynamodb#DeleteBackupOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#InternalServerError" + "target": "com.amazonaws.dynamodb#BackupInUseException" }, { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" + "target": "com.amazonaws.dynamodb#BackupNotFoundException" }, { - "target": "com.amazonaws.dynamodb#LimitExceededException" + "target": "com.amazonaws.dynamodb#InternalServerError" }, { - "target": "com.amazonaws.dynamodb#ResourceInUseException" + "target": "com.amazonaws.dynamodb#InvalidEndpointException" }, { - "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + "target": "com.amazonaws.dynamodb#LimitExceededException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

The DeleteTable operation deletes a table and all of its items. After a\n DeleteTable request, the specified table is in the\n DELETING state until DynamoDB completes the deletion. If the table is\n in the ACTIVE state, you can delete it. If a table is in\n CREATING or UPDATING states, then DynamoDB returns a\n ResourceInUseException. If the specified table does not exist, DynamoDB\n returns a ResourceNotFoundException. If table is already in the\n DELETING state, no error is returned.

\n \n

DynamoDB might continue to accept data read and write operations, such as\n GetItem and PutItem, on a table in the\n DELETING state until the table deletion is complete. For the full\n list of table states, see TableStatus.

\n
\n

When you delete a table, any indexes on that table are also deleted.

\n

If you have DynamoDB Streams enabled on the table, then the corresponding stream on\n that table goes into the DISABLED state, and the stream is automatically\n deleted after 24 hours.

\n

Use the DescribeTable action to check the status of the table.

", - "smithy.api#examples": [ - { - "title": "To delete a table", - "documentation": "This example deletes the Music table.", - "input": { - "TableName": "Music" - }, - "output": { - "TableDescription": { - "TableStatus": "DELETING", - "TableSizeBytes": 0, - "ItemCount": 0, - "TableName": "Music", - "ProvisionedThroughput": { - "NumberOfDecreasesToday": 1, - "WriteCapacityUnits": 5, - "ReadCapacityUnits": 5 - } - } - } - } - ] + "smithy.api#documentation": "

Deletes an existing backup of a table.

\n

You can call DeleteBackup at a maximum rate of 10 times per\n second.

" } }, - "com.amazonaws.dynamodb#DeleteTableInput": { + "com.amazonaws.dynamodb#DeleteBackupInput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", + "BackupArn": { + "target": "com.amazonaws.dynamodb#BackupArn", "traits": { - "smithy.api#documentation": "

The name of the table to delete. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", + "smithy.api#documentation": "

The ARN associated with the backup.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" @@ -2958,108 +2987,279 @@ } }, "traits": { - "smithy.api#documentation": "

Represents the input of a DeleteTable operation.

", "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DeleteTableOutput": { + "com.amazonaws.dynamodb#DeleteBackupOutput": { "type": "structure", "members": { - "TableDescription": { - "target": "com.amazonaws.dynamodb#TableDescription", + "BackupDescription": { + "target": "com.amazonaws.dynamodb#BackupDescription", "traits": { - "smithy.api#documentation": "

Represents the properties of a table.

" + "smithy.api#documentation": "

Contains the description of the backup created for the table.

" } } }, "traits": { - "smithy.api#documentation": "

Represents the output of a DeleteTable operation.

", "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DeleteVectorIndexAction": { + "com.amazonaws.dynamodb#DeleteGlobalSecondaryIndexAction": { "type": "structure", "members": { "IndexName": { "target": "com.amazonaws.dynamodb#IndexName", "traits": { - "smithy.api#documentation": "

The name of the vector index to delete.

", + "smithy.api#documentation": "

The name of the global secondary index to be deleted.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A vector index to be removed from a table.

" + "smithy.api#documentation": "

Represents a global secondary index to be deleted from an existing table.

" } }, - "com.amazonaws.dynamodb#DeletionProtectionEnabled": { - "type": "boolean" - }, - "com.amazonaws.dynamodb#DescribeBackup": { - "type": "operation", - "input": { - "target": "com.amazonaws.dynamodb#DescribeBackupInput" + "com.amazonaws.dynamodb#DeleteGlobalTableWitnessGroupMemberAction": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", + "traits": { + "smithy.api#documentation": "

The witness Region name to be removed from the MRSC global table.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the action to remove a witness Region from a MRSC global table. You cannot\n delete a single witness from a MRSC global table - you must delete both a replica and\n the witness together. The deletion of both a witness and replica converts the remaining\n replica to a single-Region DynamoDB table.

" + } + }, + "com.amazonaws.dynamodb#DeleteItem": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#DeleteItemInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeBackupOutput" + "target": "com.amazonaws.dynamodb#DeleteItemOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#BackupNotFoundException" + "target": "com.amazonaws.dynamodb#ConditionalCheckFailedException" }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, { "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#ItemCollectionSizeLimitExceededException" + }, + { + "target": "com.amazonaws.dynamodb#ProvisionedThroughputExceededException" + }, + { + "target": "com.amazonaws.dynamodb#ReplicatedWriteConflictException" + }, + { + "target": "com.amazonaws.dynamodb#RequestLimitExceeded" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.dynamodb#ThrottlingException" + }, + { + "target": "com.amazonaws.dynamodb#TransactionConflictException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Describes an existing backup of a table.

\n

You can call DescribeBackup at a maximum rate of 10 times per\n second.

" + "smithy.api#documentation": "

Deletes a single item in a table by primary key. You can perform a conditional delete\n operation that deletes the item if it exists, or if it has an expected attribute\n value.

\n

In addition to deleting an item, you can also return the item's attribute values in\n the same operation, using the ReturnValues parameter.

\n

Unless you specify conditions, the DeleteItem is an idempotent operation;\n running it multiple times on the same item or attribute does not\n result in an error response.

\n

Conditional deletes are useful for deleting items only if specific conditions are met.\n If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not\n deleted.

", + "smithy.api#examples": [ + { + "title": "To delete an item", + "documentation": "This example deletes an item from the Music table.", + "input": { + "TableName": "Music", + "Key": { + "Artist": { + "S": "No One You Know" + }, + "SongTitle": { + "S": "Scared of My Shadow" + } + } + }, + "output": { + "ConsumedCapacity": { + "CapacityUnits": 1, + "TableName": "Music" + } + } + } + ] } }, - "com.amazonaws.dynamodb#DescribeBackupInput": { + "com.amazonaws.dynamodb#DeleteItemInput": { "type": "structure", "members": { - "BackupArn": { - "target": "com.amazonaws.dynamodb#BackupArn", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the backup.

", + "smithy.api#documentation": "

The name of the table from which to delete the item. You can also provide the\n Amazon Resource Name (ARN) of the table in this parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } + }, + "Key": { + "target": "com.amazonaws.dynamodb#Key", + "traits": { + "smithy.api#documentation": "

A map of attribute names to AttributeValue objects, representing the\n primary key of the item to delete.

\n

For the primary key, you must provide all of the key attributes. For example, with a\n simple primary key, you only need to provide a value for the partition key. For a\n composite primary key, you must provide values for both the partition key and the sort\n key.

", + "smithy.api#required": {} + } + }, + "Expected": { + "target": "com.amazonaws.dynamodb#ExpectedAttributeMap", + "traits": { + "smithy.api#documentation": "

This is a legacy parameter. Use ConditionExpression instead. For more\n information, see Expected in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "ConditionalOperator": { + "target": "com.amazonaws.dynamodb#ConditionalOperator", + "traits": { + "smithy.api#documentation": "

This is a legacy parameter. Use ConditionExpression instead. For more\n information, see ConditionalOperator in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "ReturnValues": { + "target": "com.amazonaws.dynamodb#ReturnValue", + "traits": { + "smithy.api#documentation": "

Use ReturnValues if you want to get the item attributes as they appeared\n before they were deleted. For DeleteItem, the valid values are:

\n
    \n
  • \n

    \n NONE - If ReturnValues is not specified, or if its\n value is NONE, then nothing is returned. (This setting is the\n default for ReturnValues.)

    \n
  • \n
  • \n

    \n ALL_OLD - The content of the old item is returned.

    \n
  • \n
\n

There is no additional cost associated with requesting a return value aside from the\n small network and processing overhead of receiving a larger response. No read capacity\n units are consumed.

\n \n

The ReturnValues parameter is used by several DynamoDB operations;\n however, DeleteItem does not recognize any values other than\n NONE or ALL_OLD.

\n
" + } + }, + "ReturnConsumedCapacity": { + "target": "com.amazonaws.dynamodb#ReturnConsumedCapacity" + }, + "ReturnItemCollectionMetrics": { + "target": "com.amazonaws.dynamodb#ReturnItemCollectionMetrics", + "traits": { + "smithy.api#documentation": "

Determines whether item collection metrics are returned. If set to SIZE,\n the response includes statistics about item collections, if any, that were modified\n during the operation are returned in the response. If set to NONE (the\n default), no statistics are returned.

" + } + }, + "ConditionExpression": { + "target": "com.amazonaws.dynamodb#ConditionExpression", + "traits": { + "smithy.api#documentation": "

A condition that must be satisfied in order for a conditional DeleteItem\n to succeed.

\n

An expression can contain any of the following:

\n
    \n
  • \n

    Functions: attribute_exists | attribute_not_exists | attribute_type |\n contains | begins_with | size\n

    \n

    These function names are case-sensitive.

    \n
  • \n
  • \n

    Comparison operators: = | <> |\n < | > | <= | >= |\n BETWEEN | IN \n

    \n
  • \n
  • \n

    Logical operators: AND | OR | NOT\n

    \n
  • \n
\n

For more information about condition expressions, see Condition Expressions in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "ExpressionAttributeNames": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeNameMap", + "traits": { + "smithy.api#documentation": "

One or more substitution tokens for attribute names in an expression. The following\n are some use cases for using ExpressionAttributeNames:

\n
    \n
  • \n

    To access an attribute whose name conflicts with a DynamoDB reserved\n word.

    \n
  • \n
  • \n

    To create a placeholder for repeating occurrences of an attribute name in an\n expression.

    \n
  • \n
  • \n

    To prevent special characters in an attribute name from being misinterpreted\n in an expression.

    \n
  • \n
\n

Use the # character in an expression to dereference\n an attribute name. For example, consider the following attribute name:

\n
    \n
  • \n

    \n Percentile\n

    \n
  • \n
\n

The name of this attribute conflicts with a reserved word, so it cannot be used\n directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer\n Guide). To work around this, you could specify the following for\n ExpressionAttributeNames:

\n
    \n
  • \n

    \n {\"#P\":\"Percentile\"}\n

    \n
  • \n
\n

You could then use this substitution in an expression, as in this example:

\n
    \n
  • \n

    \n #P = :val\n

    \n
  • \n
\n \n

Tokens that begin with the : character are\n expression attribute values, which are placeholders for the\n actual value at runtime.

\n
\n

For more information on expression attribute names, see Specifying Item Attributes in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "ExpressionAttributeValues": { + "target": "com.amazonaws.dynamodb#ExpressionAttributeValueMap", + "traits": { + "smithy.api#documentation": "

One or more values that can be substituted in an expression.

\n

Use the : (colon) character in an expression to\n dereference an attribute value. For example, suppose that you wanted to check whether\n the value of the ProductStatus attribute was one of the following:

\n

\n Available | Backordered | Discontinued\n

\n

You would first need to specify ExpressionAttributeValues as\n follows:

\n

\n { \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"},\n \":disc\":{\"S\":\"Discontinued\"} }\n

\n

You could then use these values in an expression, such as this:

\n

\n ProductStatus IN (:avail, :back, :disc)\n

\n

For more information on expression attribute values, see Condition Expressions in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "ReturnValuesOnConditionCheckFailure": { + "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure", + "traits": { + "smithy.api#documentation": "

An optional parameter that returns the item attributes for a DeleteItem\n operation that failed a condition check.

\n

There is no additional cost associated with requesting a return value aside from the\n small network and processing overhead of receiving a larger response. No read capacity\n units are consumed.

" + } } }, "traits": { + "smithy.api#documentation": "

Represents the input of a DeleteItem operation.

", "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeBackupOutput": { + "com.amazonaws.dynamodb#DeleteItemOutput": { "type": "structure", "members": { - "BackupDescription": { - "target": "com.amazonaws.dynamodb#BackupDescription", + "Attributes": { + "target": "com.amazonaws.dynamodb#AttributeMap", "traits": { - "smithy.api#documentation": "

Contains the description of the backup created for the table.

" + "smithy.api#documentation": "

A map of attribute names to AttributeValue objects, representing the item\n as it appeared before the DeleteItem operation. This map appears in the\n response only if ReturnValues was specified as ALL_OLD in the\n request.

" + } + }, + "ConsumedCapacity": { + "target": "com.amazonaws.dynamodb#ConsumedCapacity", + "traits": { + "smithy.api#documentation": "

The capacity units consumed by the DeleteItem operation. The data\n returned includes the total provisioned throughput consumed, along with statistics for\n the table and any indexes involved in the operation. ConsumedCapacity is\n only returned if the ReturnConsumedCapacity parameter was specified. For\n more information, see Provisioned capacity mode in the Amazon DynamoDB Developer\n Guide.

\n

If the table has vector indexes, the response includes a\n VectorIndexes field with VectorWriteRequestBytes consumed\n for each affected vector index.

" + } + }, + "ItemCollectionMetrics": { + "target": "com.amazonaws.dynamodb#ItemCollectionMetrics", + "traits": { + "smithy.api#documentation": "

Information about item collections, if any, that were affected by the\n DeleteItem operation. ItemCollectionMetrics is only\n returned if the ReturnItemCollectionMetrics parameter was specified. If the\n table does not have any local secondary indexes, this information is not returned in the\n response.

\n

Each ItemCollectionMetrics element consists of:

\n
    \n
  • \n

    \n ItemCollectionKey - The partition key value of the item collection.\n This is the same as the partition key value of the item itself.

    \n
  • \n
  • \n

    \n SizeEstimateRangeGB - An estimate of item collection size, in\n gigabytes. This value is a two-element array containing a lower bound and an\n upper bound for the estimate. The estimate includes the size of all the items in\n the table, plus the size of all attributes projected into all of the local\n secondary indexes on that table. Use this estimate to measure whether a local\n secondary index is approaching its size limit.

    \n

    The estimate is subject to change over time; therefore, do not rely on the\n precision or accuracy of the estimate.

    \n
  • \n
" } } }, "traits": { + "smithy.api#documentation": "

Represents the output of a DeleteItem operation.

", "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeContinuousBackups": { + "com.amazonaws.dynamodb#DeleteReplicaAction": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", + "traits": { + "smithy.api#documentation": "

The Region of the replica to be removed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a replica to be removed.

" + } + }, + "com.amazonaws.dynamodb#DeleteReplicationGroupMemberAction": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", + "traits": { + "smithy.api#documentation": "

The Region where the replica exists.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a replica to be deleted.

" + } + }, + "com.amazonaws.dynamodb#DeleteRequest": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.dynamodb#Key", + "traits": { + "smithy.api#documentation": "

A map of attribute name to attribute values, representing the primary key of the item\n to delete. All of the table's primary key attributes must be specified, and their data\n types must match those of the table's key schema.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a request to perform a DeleteItem operation on an item.

" + } + }, + "com.amazonaws.dynamodb#DeleteResourcePolicy": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeContinuousBackupsInput" + "target": "com.amazonaws.dynamodb#DeleteResourcePolicyInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeContinuousBackupsOutput" + "target": "com.amazonaws.dynamodb#DeleteResourcePolicyOutput" }, "errors": [ { @@ -3069,41 +3269,56 @@ "target": "com.amazonaws.dynamodb#InvalidEndpointException" }, { - "target": "com.amazonaws.dynamodb#TableNotFoundException" + "target": "com.amazonaws.dynamodb#LimitExceededException" + }, + { + "target": "com.amazonaws.dynamodb#PolicyNotFoundException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceInUseException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Checks the status of continuous backups and point in time recovery on the specified\n table. Continuous backups are ENABLED on all tables at table creation. If\n point in time recovery is enabled, PointInTimeRecoveryStatus will be set to\n ENABLED.

\n

After continuous backups and point in time recovery are enabled, you can restore to\n any point in time within EarliestRestorableDateTime and\n LatestRestorableDateTime.

\n

\n LatestRestorableDateTime is typically 5 minutes before the current time.\n You can restore your table to any point in time in the last 35 days. You can set the\n recovery period to any value between 1 and 35 days.

\n

You can call DescribeContinuousBackups at a maximum rate of 10 times per\n second.

" + "smithy.api#documentation": "

Deletes the resource-based policy attached to the resource, which can be a table or\n stream.

\n

\n DeleteResourcePolicy is an idempotent operation; running it multiple\n times on the same resource doesn't result in an error response,\n unless you specify an ExpectedRevisionId, which will then return a\n PolicyNotFoundException.

\n \n

To make sure that you don't inadvertently lock yourself out of your own resources,\n the root principal in your Amazon Web Services account can perform\n DeleteResourcePolicy requests, even if your resource-based policy\n explicitly denies the root principal's access.

\n
\n \n

\n DeleteResourcePolicy is an asynchronous operation. If you issue a\n GetResourcePolicy request immediately after running the\n DeleteResourcePolicy request, DynamoDB might still return\n the deleted policy. This is because the policy for your resource might not have been\n deleted yet. Wait for a few seconds, and then try the GetResourcePolicy\n request again.

\n
" } }, - "com.amazonaws.dynamodb#DescribeContinuousBackupsInput": { + "com.amazonaws.dynamodb#DeleteResourcePolicyInput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", + "ResourceArn": { + "target": "com.amazonaws.dynamodb#ResourceArnString", "traits": { - "smithy.api#documentation": "

Name of the table for which the customer wants to check the continuous backups and\n point in time recovery settings.

\n

You can also provide the Amazon Resource Name (ARN) of the table in this parameter.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DynamoDB resource from which the policy will be\n removed. The resources you can specify include tables and streams. If you remove the\n policy of a table, it will also remove the permissions for the table's indexes defined\n in that policy document. This is because index permissions are defined in the table's\n policy.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } + }, + "ExpectedRevisionId": { + "target": "com.amazonaws.dynamodb#PolicyRevisionId", + "traits": { + "smithy.api#documentation": "

A string value that you can use to conditionally delete your policy. When you provide\n an expected revision ID, if the revision ID of the existing policy on the resource\n doesn't match or if there's no policy attached to the resource, the request will fail\n and return a PolicyNotFoundException.

" + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeContinuousBackupsOutput": { + "com.amazonaws.dynamodb#DeleteResourcePolicyOutput": { "type": "structure", "members": { - "ContinuousBackupsDescription": { - "target": "com.amazonaws.dynamodb#ContinuousBackupsDescription", + "RevisionId": { + "target": "com.amazonaws.dynamodb#PolicyRevisionId", "traits": { - "smithy.api#documentation": "

Represents the continuous backups and point in time recovery settings on the\n table.

" + "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.

\n

This value will be empty if you make a request against a resource without a\n policy.

" } } }, @@ -3111,154 +3326,163 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeContributorInsights": { + "com.amazonaws.dynamodb#DeleteTable": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeContributorInsightsInput" + "target": "com.amazonaws.dynamodb#DeleteTableInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeContributorInsightsOutput" + "target": "com.amazonaws.dynamodb#DeleteTableOutput" }, "errors": [ { "target": "com.amazonaws.dynamodb#InternalServerError" }, { - "target": "com.amazonaws.dynamodb#ResourceNotFoundException" - } - ], - "traits": { - "smithy.api#documentation": "

Returns information about contributor insights for a given table or global secondary\n index.

", - "smithy.waiters#waitable": { - "ContributorInsightsEnabled": { - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "ContributorInsightsStatus", - "expected": "ENABLED", - "comparator": "stringEquals" - } - } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "ContributorInsightsStatus", - "expected": "FAILED", - "comparator": "stringEquals" - } + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#LimitExceededException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceInUseException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

The DeleteTable operation deletes a table and all of its items. After a\n DeleteTable request, the specified table is in the\n DELETING state until DynamoDB completes the deletion. If the table is\n in the ACTIVE state, you can delete it. If a table is in\n CREATING or UPDATING states, then DynamoDB returns a\n ResourceInUseException. If the specified table does not exist, DynamoDB\n returns a ResourceNotFoundException. If table is already in the\n DELETING state, no error is returned.

\n \n

DynamoDB might continue to accept data read and write operations, such as\n GetItem and PutItem, on a table in the\n DELETING state until the table deletion is complete. For the full\n list of table states, see TableStatus.

\n
\n

When you delete a table, any indexes on that table are also deleted.

\n

If you have DynamoDB Streams enabled on the table, then the corresponding stream on\n that table goes into the DISABLED state, and the stream is automatically\n deleted after 24 hours.

\n

Use the DescribeTable action to check the status of the table.

", + "smithy.api#examples": [ + { + "title": "To delete a table", + "documentation": "This example deletes the Music table.", + "input": { + "TableName": "Music" + }, + "output": { + "TableDescription": { + "TableStatus": "DELETING", + "TableSizeBytes": 0, + "ItemCount": 0, + "TableName": "Music", + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 1, + "WriteCapacityUnits": 5, + "ReadCapacityUnits": 5 } } - ], - "minDelay": 20 + } } - } + ] } }, - "com.amazonaws.dynamodb#DescribeContributorInsightsInput": { + "com.amazonaws.dynamodb#DeleteTableInput": { "type": "structure", "members": { "TableName": { "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The name of the table to describe. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", + "smithy.api#documentation": "

The name of the table to delete. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } - }, - "IndexName": { - "target": "com.amazonaws.dynamodb#IndexName", - "traits": { - "smithy.api#documentation": "

The name of the global secondary index to describe, if applicable.

" - } } }, "traits": { + "smithy.api#documentation": "

Represents the input of a DeleteTable operation.

", "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeContributorInsightsOutput": { + "com.amazonaws.dynamodb#DeleteTableOutput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableName", + "TableDescription": { + "target": "com.amazonaws.dynamodb#TableDescription", "traits": { - "smithy.api#documentation": "

The name of the table being described.

" + "smithy.api#documentation": "

Represents the properties of a table.

" } - }, + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output of a DeleteTable operation.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#DeleteVectorIndexAction": { + "type": "structure", + "members": { "IndexName": { "target": "com.amazonaws.dynamodb#IndexName", "traits": { - "smithy.api#documentation": "

The name of the global secondary index being described.

" - } - }, - "ContributorInsightsRuleList": { - "target": "com.amazonaws.dynamodb#ContributorInsightsRuleList", - "traits": { - "smithy.api#documentation": "

List of names of the associated contributor insights rules.

" - } - }, - "ContributorInsightsStatus": { - "target": "com.amazonaws.dynamodb#ContributorInsightsStatus", - "traits": { - "smithy.api#documentation": "

Current status of contributor insights.

" - } - }, - "LastUpdateDateTime": { - "target": "com.amazonaws.dynamodb#LastUpdateDateTime", - "traits": { - "smithy.api#documentation": "

Timestamp of the last time the status was changed.

" - } - }, - "FailureException": { - "target": "com.amazonaws.dynamodb#FailureException", - "traits": { - "smithy.api#documentation": "

Returns information about the last failure that was encountered.

\n

The most common exceptions for a FAILED status are:

\n
    \n
  • \n

    LimitExceededException - Per-account Amazon CloudWatch Contributor Insights\n rule limit reached. Please disable Contributor Insights for other tables/indexes\n OR disable Contributor Insights rules before retrying.

    \n
  • \n
  • \n

    AccessDeniedException - Amazon CloudWatch Contributor Insights rules cannot be\n modified due to insufficient permissions.

    \n
  • \n
  • \n

    AccessDeniedException - Failed to create service-linked role for Contributor\n Insights due to insufficient permissions.

    \n
  • \n
  • \n

    InternalServerError - Failed to create Amazon CloudWatch Contributor Insights\n rules. Please retry request.

    \n
  • \n
" - } - }, - "ContributorInsightsMode": { - "target": "com.amazonaws.dynamodb#ContributorInsightsMode", - "traits": { - "smithy.api#documentation": "

The mode of CloudWatch Contributor Insights for DynamoDB that determines\n which events are emitted. Can be set to track all access and throttled events or throttled\n events only.

" + "smithy.api#documentation": "

The name of the vector index to delete.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

A vector index to be removed from a table.

" } }, - "com.amazonaws.dynamodb#DescribeEndpoints": { + "com.amazonaws.dynamodb#DeletionProtectionEnabled": { + "type": "boolean" + }, + "com.amazonaws.dynamodb#DescribeBackup": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeEndpointsRequest" + "target": "com.amazonaws.dynamodb#DescribeBackupInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeEndpointsResponse" + "target": "com.amazonaws.dynamodb#DescribeBackupOutput" }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#BackupNotFoundException" + }, + { + "target": "com.amazonaws.dynamodb#InternalServerError" + }, + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + } + ], "traits": { - "smithy.api#documentation": "

Returns the regional endpoint information. For more information on policy permissions,\n please see Internetwork traffic privacy.

" + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Describes an existing backup of a table.

\n

You can call DescribeBackup at a maximum rate of 10 times per\n second.

" } }, - "com.amazonaws.dynamodb#DescribeEndpointsRequest": { + "com.amazonaws.dynamodb#DescribeBackupInput": { "type": "structure", - "members": {}, + "members": { + "BackupArn": { + "target": "com.amazonaws.dynamodb#BackupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the backup.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } + } + } + }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeEndpointsResponse": { + "com.amazonaws.dynamodb#DescribeBackupOutput": { "type": "structure", "members": { - "Endpoints": { - "target": "com.amazonaws.dynamodb#Endpoints", + "BackupDescription": { + "target": "com.amazonaws.dynamodb#BackupDescription", "traits": { - "smithy.api#documentation": "

List of endpoints.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Contains the description of the backup created for the table.

" } } }, @@ -3266,45 +3490,66 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeExport": { + "com.amazonaws.dynamodb#DescribeBulkOperation": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeExportInput" + "target": "com.amazonaws.dynamodb#DescribeBulkOperationInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeExportOutput" + "target": "com.amazonaws.dynamodb#DescribeBulkOperationOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#ExportNotFoundException" - }, - { - "target": "com.amazonaws.dynamodb#InternalServerError" + "target": "com.amazonaws.dynamodb#InvalidEndpointException" }, { - "target": "com.amazonaws.dynamodb#LimitExceededException" + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" } ], "traits": { - "smithy.api#documentation": "

Describes an existing table export.

", + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Describes the specified bulk operation.

", "smithy.waiters#waitable": { - "ExportCompleted": { + "BulkOperationCompleted": { + "documentation": "Wait until a bulk operation is completed.", "acceptors": [ { "state": "success", "matcher": { "output": { - "path": "ExportDescription.ExportStatus", + "path": "BulkOperationDescription.BulkOperationStatus", "expected": "COMPLETED", "comparator": "stringEquals" } } }, + { + "state": "success", + "matcher": { + "output": { + "path": "BulkOperationDescription.BulkOperationStatus", + "expected": "COMPLETED_WITH_ERRORS", + "comparator": "stringEquals" + } + } + }, { "state": "failure", "matcher": { "output": { - "path": "ExportDescription.ExportStatus", + "path": "BulkOperationDescription.BulkOperationStatus", + "expected": "CANCELLED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "BulkOperationDescription.BulkOperationStatus", "expected": "FAILED", "comparator": "stringEquals" } @@ -3316,13 +3561,13 @@ } } }, - "com.amazonaws.dynamodb#DescribeExportInput": { + "com.amazonaws.dynamodb#DescribeBulkOperationInput": { "type": "structure", "members": { - "ExportArn": { - "target": "com.amazonaws.dynamodb#ExportArn", + "BulkOperationArn": { + "target": "com.amazonaws.dynamodb#BulkOperationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the export.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bulk operation to describe.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" @@ -3334,13 +3579,14 @@ "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeExportOutput": { + "com.amazonaws.dynamodb#DescribeBulkOperationOutput": { "type": "structure", "members": { - "ExportDescription": { - "target": "com.amazonaws.dynamodb#ExportDescription", + "BulkOperationDescription": { + "target": "com.amazonaws.dynamodb#BulkOperationDescription", "traits": { - "smithy.api#documentation": "

Represents the properties of the export.

" + "smithy.api#documentation": "

Contains detailed information about the bulk operation.

", + "smithy.api#required": {} } } }, @@ -3348,39 +3594,39 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeGlobalTable": { + "com.amazonaws.dynamodb#DescribeContinuousBackups": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeGlobalTableInput" + "target": "com.amazonaws.dynamodb#DescribeContinuousBackupsInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeGlobalTableOutput" + "target": "com.amazonaws.dynamodb#DescribeContinuousBackupsOutput" }, "errors": [ - { - "target": "com.amazonaws.dynamodb#GlobalTableNotFoundException" - }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, { "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#TableNotFoundException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Returns information about the specified global table.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
" + "smithy.api#documentation": "

Checks the status of continuous backups and point in time recovery on the specified\n table. Continuous backups are ENABLED on all tables at table creation. If\n point in time recovery is enabled, PointInTimeRecoveryStatus will be set to\n ENABLED.

\n

After continuous backups and point in time recovery are enabled, you can restore to\n any point in time within EarliestRestorableDateTime and\n LatestRestorableDateTime.

\n

\n LatestRestorableDateTime is typically 5 minutes before the current time.\n You can restore your table to any point in time in the last 35 days. You can set the\n recovery period to any value between 1 and 35 days.

\n

You can call DescribeContinuousBackups at a maximum rate of 10 times per\n second.

" } }, - "com.amazonaws.dynamodb#DescribeGlobalTableInput": { + "com.amazonaws.dynamodb#DescribeContinuousBackupsInput": { "type": "structure", "members": { - "GlobalTableName": { - "target": "com.amazonaws.dynamodb#TableName", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The name of the global table.

", + "smithy.api#documentation": "

Name of the table for which the customer wants to check the continuous backups and\n point in time recovery settings.

\n

You can also provide the Amazon Resource Name (ARN) of the table in this parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" @@ -3392,13 +3638,13 @@ "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeGlobalTableOutput": { + "com.amazonaws.dynamodb#DescribeContinuousBackupsOutput": { "type": "structure", "members": { - "GlobalTableDescription": { - "target": "com.amazonaws.dynamodb#GlobalTableDescription", + "ContinuousBackupsDescription": { + "target": "com.amazonaws.dynamodb#ContinuousBackupsDescription", "traits": { - "smithy.api#documentation": "

Contains the details of the global table.

" + "smithy.api#documentation": "

Represents the continuous backups and point in time recovery settings on the\n table.

" } } }, @@ -3406,63 +3652,120 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeGlobalTableSettings": { + "com.amazonaws.dynamodb#DescribeContributorInsights": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeGlobalTableSettingsInput" + "target": "com.amazonaws.dynamodb#DescribeContributorInsightsInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeGlobalTableSettingsOutput" + "target": "com.amazonaws.dynamodb#DescribeContributorInsightsOutput" }, "errors": [ - { - "target": "com.amazonaws.dynamodb#GlobalTableNotFoundException" - }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" } ], "traits": { - "aws.api#clientDiscoveredEndpoint": { - "required": false - }, - "smithy.api#documentation": "

Describes Region-specific settings for a global table.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
" + "smithy.api#documentation": "

Returns information about contributor insights for a given table or global secondary\n index.

", + "smithy.waiters#waitable": { + "ContributorInsightsEnabled": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ContributorInsightsStatus", + "expected": "ENABLED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ContributorInsightsStatus", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 20 + } + } } }, - "com.amazonaws.dynamodb#DescribeGlobalTableSettingsInput": { + "com.amazonaws.dynamodb#DescribeContributorInsightsInput": { "type": "structure", "members": { - "GlobalTableName": { - "target": "com.amazonaws.dynamodb#TableName", + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", "traits": { - "smithy.api#documentation": "

The name of the global table to describe.

", + "smithy.api#documentation": "

The name of the table to describe. You can also provide the Amazon Resource Name (ARN) of the table in\n this parameter.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" } } + }, + "IndexName": { + "target": "com.amazonaws.dynamodb#IndexName", + "traits": { + "smithy.api#documentation": "

The name of the global secondary index to describe, if applicable.

" + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeGlobalTableSettingsOutput": { + "com.amazonaws.dynamodb#DescribeContributorInsightsOutput": { "type": "structure", "members": { - "GlobalTableName": { + "TableName": { "target": "com.amazonaws.dynamodb#TableName", "traits": { - "smithy.api#documentation": "

The name of the global table.

" + "smithy.api#documentation": "

The name of the table being described.

" } }, - "ReplicaSettings": { - "target": "com.amazonaws.dynamodb#ReplicaSettingsDescriptionList", + "IndexName": { + "target": "com.amazonaws.dynamodb#IndexName", "traits": { - "smithy.api#documentation": "

The Region-specific settings for the global table.

" + "smithy.api#documentation": "

The name of the global secondary index being described.

" + } + }, + "ContributorInsightsRuleList": { + "target": "com.amazonaws.dynamodb#ContributorInsightsRuleList", + "traits": { + "smithy.api#documentation": "

List of names of the associated contributor insights rules.

" + } + }, + "ContributorInsightsStatus": { + "target": "com.amazonaws.dynamodb#ContributorInsightsStatus", + "traits": { + "smithy.api#documentation": "

Current status of contributor insights.

" + } + }, + "LastUpdateDateTime": { + "target": "com.amazonaws.dynamodb#LastUpdateDateTime", + "traits": { + "smithy.api#documentation": "

Timestamp of the last time the status was changed.

" + } + }, + "FailureException": { + "target": "com.amazonaws.dynamodb#FailureException", + "traits": { + "smithy.api#documentation": "

Returns information about the last failure that was encountered.

\n

The most common exceptions for a FAILED status are:

\n
    \n
  • \n

    LimitExceededException - Per-account Amazon CloudWatch Contributor Insights\n rule limit reached. Please disable Contributor Insights for other tables/indexes\n OR disable Contributor Insights rules before retrying.

    \n
  • \n
  • \n

    AccessDeniedException - Amazon CloudWatch Contributor Insights rules cannot be\n modified due to insufficient permissions.

    \n
  • \n
  • \n

    AccessDeniedException - Failed to create service-linked role for Contributor\n Insights due to insufficient permissions.

    \n
  • \n
  • \n

    InternalServerError - Failed to create Amazon CloudWatch Contributor Insights\n rules. Please retry request.

    \n
  • \n
" + } + }, + "ContributorInsightsMode": { + "target": "com.amazonaws.dynamodb#ContributorInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of CloudWatch Contributor Insights for DynamoDB that determines\n which events are emitted. Can be set to track all access and throttled events or throttled\n events only.

" } } }, @@ -3470,29 +3773,69 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeImport": { + "com.amazonaws.dynamodb#DescribeEndpoints": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeImportInput" + "target": "com.amazonaws.dynamodb#DescribeEndpointsRequest" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeImportOutput" + "target": "com.amazonaws.dynamodb#DescribeEndpointsResponse" + }, + "traits": { + "smithy.api#documentation": "

Returns the regional endpoint information. For more information on policy permissions,\n please see Internetwork traffic privacy.

" + } + }, + "com.amazonaws.dynamodb#DescribeEndpointsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#DescribeEndpointsResponse": { + "type": "structure", + "members": { + "Endpoints": { + "target": "com.amazonaws.dynamodb#Endpoints", + "traits": { + "smithy.api#documentation": "

List of endpoints.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#DescribeExport": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#DescribeExportInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#DescribeExportOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#ImportNotFoundException" + "target": "com.amazonaws.dynamodb#ExportNotFoundException" + }, + { + "target": "com.amazonaws.dynamodb#InternalServerError" + }, + { + "target": "com.amazonaws.dynamodb#LimitExceededException" } ], "traits": { - "smithy.api#documentation": "

Represents the properties of the import.

", + "smithy.api#documentation": "

Describes an existing table export.

", "smithy.waiters#waitable": { - "ImportCompleted": { + "ExportCompleted": { "acceptors": [ { "state": "success", "matcher": { "output": { - "path": "ImportTableDescription.ImportStatus", + "path": "ExportDescription.ExportStatus", "expected": "COMPLETED", "comparator": "stringEquals" } @@ -3502,21 +3845,11 @@ "state": "failure", "matcher": { "output": { - "path": "ImportTableDescription.ImportStatus", + "path": "ExportDescription.ExportStatus", "expected": "FAILED", "comparator": "stringEquals" } } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "ImportTableDescription.ImportStatus", - "expected": "CANCELLED", - "comparator": "stringEquals" - } - } } ], "minDelay": 20 @@ -3524,13 +3857,13 @@ } } }, - "com.amazonaws.dynamodb#DescribeImportInput": { + "com.amazonaws.dynamodb#DescribeExportInput": { "type": "structure", "members": { - "ImportArn": { - "target": "com.amazonaws.dynamodb#ImportArn", + "ExportArn": { + "target": "com.amazonaws.dynamodb#ExportArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the table you're importing to.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the export.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" @@ -3542,14 +3875,13 @@ "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeImportOutput": { + "com.amazonaws.dynamodb#DescribeExportOutput": { "type": "structure", "members": { - "ImportTableDescription": { - "target": "com.amazonaws.dynamodb#ImportTableDescription", + "ExportDescription": { + "target": "com.amazonaws.dynamodb#ExportDescription", "traits": { - "smithy.api#documentation": "

Represents the properties of the table created for the import, and parameters of the\n import. The import parameters include import status, how many items were processed, and\n how many errors were encountered.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Represents the properties of the export.

" } } }, @@ -3557,66 +3889,39 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeKinesisStreamingDestination": { + "com.amazonaws.dynamodb#DescribeGlobalTable": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationInput" + "target": "com.amazonaws.dynamodb#DescribeGlobalTableInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationOutput" + "target": "com.amazonaws.dynamodb#DescribeGlobalTableOutput" }, "errors": [ { - "target": "com.amazonaws.dynamodb#InternalServerError" + "target": "com.amazonaws.dynamodb#GlobalTableNotFoundException" }, { - "target": "com.amazonaws.dynamodb#InvalidEndpointException" + "target": "com.amazonaws.dynamodb#InternalServerError" }, { - "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + "target": "com.amazonaws.dynamodb#InvalidEndpointException" } ], "traits": { "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Returns information about the status of Kinesis streaming.

", - "smithy.waiters#waitable": { - "KinesisStreamingDestinationActive": { - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "KinesisDataStreamDestinations[].DestinationStatus", - "expected": "ACTIVE", - "comparator": "anyStringEquals" - } - } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "length(KinesisDataStreamDestinations) > `0` && length(KinesisDataStreamDestinations[?DestinationStatus == 'DISABLED' || DestinationStatus == 'ENABLE_FAILED']) == length(KinesisDataStreamDestinations)", - "expected": "true", - "comparator": "booleanEquals" - } - } - } - ], - "minDelay": 20 - } - } + "smithy.api#documentation": "

Returns information about the specified global table.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
" } }, - "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationInput": { + "com.amazonaws.dynamodb#DescribeGlobalTableInput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableArn", + "GlobalTableName": { + "target": "com.amazonaws.dynamodb#TableName", "traits": { - "smithy.api#documentation": "

The name of the table being described. You can also provide the Amazon Resource Name (ARN) of the table\n in this parameter.

", + "smithy.api#documentation": "

The name of the global table.

", "smithy.api#required": {}, "smithy.rules#contextParam": { "name": "ResourceArn" @@ -3628,19 +3933,13 @@ "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationOutput": { + "com.amazonaws.dynamodb#DescribeGlobalTableOutput": { "type": "structure", "members": { - "TableName": { - "target": "com.amazonaws.dynamodb#TableName", - "traits": { - "smithy.api#documentation": "

The name of the table being described.

" - } - }, - "KinesisDataStreamDestinations": { - "target": "com.amazonaws.dynamodb#KinesisDataStreamDestinations", + "GlobalTableDescription": { + "target": "com.amazonaws.dynamodb#GlobalTableDescription", "traits": { - "smithy.api#documentation": "

The list of replica structures for the table being described.

" + "smithy.api#documentation": "

Contains the details of the global table.

" } } }, @@ -3648,15 +3947,18 @@ "smithy.api#output": {} } }, - "com.amazonaws.dynamodb#DescribeLimits": { + "com.amazonaws.dynamodb#DescribeGlobalTableSettings": { "type": "operation", "input": { - "target": "com.amazonaws.dynamodb#DescribeLimitsInput" + "target": "com.amazonaws.dynamodb#DescribeGlobalTableSettingsInput" }, "output": { - "target": "com.amazonaws.dynamodb#DescribeLimitsOutput" + "target": "com.amazonaws.dynamodb#DescribeGlobalTableSettingsOutput" }, "errors": [ + { + "target": "com.amazonaws.dynamodb#GlobalTableNotFoundException" + }, { "target": "com.amazonaws.dynamodb#InternalServerError" }, @@ -3668,18 +3970,257 @@ "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Returns the current provisioned-capacity quotas for your Amazon Web Services account in\n a Region, both for the Region as a whole and for any one DynamoDB table that you create\n there.

\n

When you establish an Amazon Web Services account, the account has initial quotas on\n the maximum read capacity units and write capacity units that you can provision across\n all of your DynamoDB tables in a given Region. Also, there are per-table\n quotas that apply when you create a table there. For more information, see Service,\n Account, and Table Quotas page in the Amazon DynamoDB\n Developer Guide.

\n

Although you can increase these quotas by filing a case at Amazon Web Services Support Center, obtaining the\n increase is not instantaneous. The DescribeLimits action lets you write\n code to compare the capacity you are currently using to those quotas imposed by your\n account so that you have enough time to apply for an increase before you hit a\n quota.

\n

For example, you could use one of the Amazon Web Services SDKs to do the\n following:

\n
    \n
  1. \n

    Call DescribeLimits for a particular Region to obtain your\n current account quotas on provisioned capacity there.

    \n
  2. \n
  3. \n

    Create a variable to hold the aggregate read capacity units provisioned for\n all your tables in that Region, and one to hold the aggregate write capacity\n units. Zero them both.

    \n
  4. \n
  5. \n

    Call ListTables to obtain a list of all your DynamoDB\n tables.

    \n
  6. \n
  7. \n

    For each table name listed by ListTables, do the\n following:

    \n
      \n
    • \n

      Call DescribeTable with the table name.

      \n
    • \n
    • \n

      Use the data returned by DescribeTable to add the read\n capacity units and write capacity units provisioned for the table itself\n to your variables.

      \n
    • \n
    • \n

      If the table has one or more global secondary indexes (GSIs), loop\n over these GSIs and add their provisioned capacity values to your\n variables as well.

      \n
    • \n
    \n
  8. \n
  9. \n

    Report the account quotas for that Region returned by\n DescribeLimits, along with the total current provisioned\n capacity levels you have calculated.

    \n
  10. \n
\n

This will let you see whether you are getting close to your account-level\n quotas.

\n

The per-table quotas apply only when you are creating a new table. They restrict the\n sum of the provisioned capacity of the new table itself and all its global secondary\n indexes.

\n

For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned\n capacity extremely rapidly, but the only quota that applies is that the aggregate\n provisioned capacity over all your tables and GSIs cannot exceed either of the\n per-account quotas.

\n \n

\n DescribeLimits should only be called periodically. You can expect\n throttling errors if you call it more than once in a minute.

\n
\n

The DescribeLimits Request element has no content.

", - "smithy.api#examples": [ - { - "title": "To determine capacity limits per table and account, in the current AWS region", - "documentation": "The following example returns the maximum read and write capacity units per table, and for the AWS account, in the current AWS region.", - "output": { - "TableMaxWriteCapacityUnits": 10000, - "TableMaxReadCapacityUnits": 10000, - "AccountMaxReadCapacityUnits": 20000, - "AccountMaxWriteCapacityUnits": 20000 - } - } + "smithy.api#documentation": "

Describes Region-specific settings for a global table.

\n \n

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

\n

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

\n
" + } + }, + "com.amazonaws.dynamodb#DescribeGlobalTableSettingsInput": { + "type": "structure", + "members": { + "GlobalTableName": { + "target": "com.amazonaws.dynamodb#TableName", + "traits": { + "smithy.api#documentation": "

The name of the global table to describe.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#DescribeGlobalTableSettingsOutput": { + "type": "structure", + "members": { + "GlobalTableName": { + "target": "com.amazonaws.dynamodb#TableName", + "traits": { + "smithy.api#documentation": "

The name of the global table.

" + } + }, + "ReplicaSettings": { + "target": "com.amazonaws.dynamodb#ReplicaSettingsDescriptionList", + "traits": { + "smithy.api#documentation": "

The Region-specific settings for the global table.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#DescribeImport": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#DescribeImportInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#DescribeImportOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#ImportNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Represents the properties of the import.

", + "smithy.waiters#waitable": { + "ImportCompleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ImportTableDescription.ImportStatus", + "expected": "COMPLETED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ImportTableDescription.ImportStatus", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ImportTableDescription.ImportStatus", + "expected": "CANCELLED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 20 + } + } + } + }, + "com.amazonaws.dynamodb#DescribeImportInput": { + "type": "structure", + "members": { + "ImportArn": { + "target": "com.amazonaws.dynamodb#ImportArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the table you're importing to.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#DescribeImportOutput": { + "type": "structure", + "members": { + "ImportTableDescription": { + "target": "com.amazonaws.dynamodb#ImportTableDescription", + "traits": { + "smithy.api#documentation": "

Represents the properties of the table created for the import, and parameters of the\n import. The import parameters include import status, how many items were processed, and\n how many errors were encountered.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#DescribeKinesisStreamingDestination": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#InternalServerError" + }, + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Returns information about the status of Kinesis streaming.

", + "smithy.waiters#waitable": { + "KinesisStreamingDestinationActive": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "KinesisDataStreamDestinations[].DestinationStatus", + "expected": "ACTIVE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "length(KinesisDataStreamDestinations) > `0` && length(KinesisDataStreamDestinations[?DestinationStatus == 'DISABLED' || DestinationStatus == 'ENABLE_FAILED']) == length(KinesisDataStreamDestinations)", + "expected": "true", + "comparator": "booleanEquals" + } + } + } + ], + "minDelay": 20 + } + } + } + }, + "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationInput": { + "type": "structure", + "members": { + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", + "traits": { + "smithy.api#documentation": "

The name of the table being described. You can also provide the Amazon Resource Name (ARN) of the table\n in this parameter.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#DescribeKinesisStreamingDestinationOutput": { + "type": "structure", + "members": { + "TableName": { + "target": "com.amazonaws.dynamodb#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table being described.

" + } + }, + "KinesisDataStreamDestinations": { + "target": "com.amazonaws.dynamodb#KinesisDataStreamDestinations", + "traits": { + "smithy.api#documentation": "

The list of replica structures for the table being described.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#DescribeLimits": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#DescribeLimitsInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#DescribeLimitsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#InternalServerError" + }, + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Returns the current provisioned-capacity quotas for your Amazon Web Services account in\n a Region, both for the Region as a whole and for any one DynamoDB table that you create\n there.

\n

When you establish an Amazon Web Services account, the account has initial quotas on\n the maximum read capacity units and write capacity units that you can provision across\n all of your DynamoDB tables in a given Region. Also, there are per-table\n quotas that apply when you create a table there. For more information, see Service,\n Account, and Table Quotas page in the Amazon DynamoDB\n Developer Guide.

\n

Although you can increase these quotas by filing a case at Amazon Web Services Support Center, obtaining the\n increase is not instantaneous. The DescribeLimits action lets you write\n code to compare the capacity you are currently using to those quotas imposed by your\n account so that you have enough time to apply for an increase before you hit a\n quota.

\n

For example, you could use one of the Amazon Web Services SDKs to do the\n following:

\n
    \n
  1. \n

    Call DescribeLimits for a particular Region to obtain your\n current account quotas on provisioned capacity there.

    \n
  2. \n
  3. \n

    Create a variable to hold the aggregate read capacity units provisioned for\n all your tables in that Region, and one to hold the aggregate write capacity\n units. Zero them both.

    \n
  4. \n
  5. \n

    Call ListTables to obtain a list of all your DynamoDB\n tables.

    \n
  6. \n
  7. \n

    For each table name listed by ListTables, do the\n following:

    \n
      \n
    • \n

      Call DescribeTable with the table name.

      \n
    • \n
    • \n

      Use the data returned by DescribeTable to add the read\n capacity units and write capacity units provisioned for the table itself\n to your variables.

      \n
    • \n
    • \n

      If the table has one or more global secondary indexes (GSIs), loop\n over these GSIs and add their provisioned capacity values to your\n variables as well.

      \n
    • \n
    \n
  8. \n
  9. \n

    Report the account quotas for that Region returned by\n DescribeLimits, along with the total current provisioned\n capacity levels you have calculated.

    \n
  10. \n
\n

This will let you see whether you are getting close to your account-level\n quotas.

\n

The per-table quotas apply only when you are creating a new table. They restrict the\n sum of the provisioned capacity of the new table itself and all its global secondary\n indexes.

\n

For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned\n capacity extremely rapidly, but the only quota that applies is that the aggregate\n provisioned capacity over all your tables and GSIs cannot exceed either of the\n per-account quotas.

\n \n

\n DescribeLimits should only be called periodically. You can expect\n throttling errors if you call it more than once in a minute.

\n
\n

The DescribeLimits Request element has no content.

", + "smithy.api#examples": [ + { + "title": "To determine capacity limits per table and account, in the current AWS region", + "documentation": "The following example returns the maximum read and write capacity units per table, and for the AWS account, in the current AWS region.", + "output": { + "TableMaxWriteCapacityUnits": 10000, + "TableMaxReadCapacityUnits": 10000, + "AccountMaxReadCapacityUnits": 20000, + "AccountMaxWriteCapacityUnits": 20000 + } + } ] } }, @@ -4001,13 +4542,55 @@ "smithy.api#documentation": "

Stops replication from the DynamoDB table to the Kinesis data stream. This\n is done without deleting either of the resources.

" } }, - "com.amazonaws.dynamodb#DoubleObject": { - "type": "double" - }, - "com.amazonaws.dynamodb#DuplicateItemException": { + "com.amazonaws.dynamodb#DisassociateReplicationGroupMemberAction": { "type": "structure", "members": { - "message": { + "RegionName": { + "target": "com.amazonaws.dynamodb#RegionName", + "traits": { + "smithy.api#documentation": "

The Region of the replica to disassociate. Set this value to the Region where\n you send the UpdateTable request. You must use credentials for the\n account that owns the replica.

", + "smithy.api#required": {} + } + }, + "DisassociationMode": { + "target": "com.amazonaws.dynamodb#DisassociationMode", + "traits": { + "smithy.api#documentation": "

The mode for handling pending replication before disassociation completes.\n You must specify WAIT_FOR_REPLICATION. For more information, see\n Disassociating a global table replica in the Amazon DynamoDB\n Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The parameters for disassociating the local replica from a global table using\n Version 2019.11.21 with multi-Region eventual consistency (MREC).

\n

After disassociation completes, the replica remains a standalone regional table\n that keeps its data, indexes, and table settings.

\n

For request requirements, see UpdateTable.\n For prerequisites, the protection update, and completion checks, see Disassociating a global table replica in the Amazon DynamoDB\n Developer Guide.

" + } + }, + "com.amazonaws.dynamodb#DisassociationMode": { + "type": "enum", + "members": { + "WAIT_FOR_REPLICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WAIT_FOR_REPLICATION" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies how pending replication is handled before a replica is disassociated.\n WAIT_FOR_REPLICATION is the only supported value.

" + } + }, + "com.amazonaws.dynamodb#DisassociationProtectionEnabled": { + "type": "boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether a global table replica is protected from disassociation. While\n protection is enabled, UpdateTable rejects requests to disassociate the\n replica. Disassociation protection is enabled by default and is independent of\n deletion protection.

" + } + }, + "com.amazonaws.dynamodb#DoubleObject": { + "type": "double" + }, + "com.amazonaws.dynamodb#DuplicateItemException": { + "type": "structure", + "members": { + "message": { "target": "com.amazonaws.dynamodb#ErrorMessage" } }, @@ -4029,6 +4612,9 @@ { "target": "com.amazonaws.dynamodb#BatchWriteItem" }, + { + "target": "com.amazonaws.dynamodb#CancelBulkOperation" + }, { "target": "com.amazonaws.dynamodb#CreateBackup" }, @@ -4053,6 +4639,9 @@ { "target": "com.amazonaws.dynamodb#DescribeBackup" }, + { + "target": "com.amazonaws.dynamodb#DescribeBulkOperation" + }, { "target": "com.amazonaws.dynamodb#DescribeContinuousBackups" }, @@ -4116,6 +4705,9 @@ { "target": "com.amazonaws.dynamodb#ListBackups" }, + { + "target": "com.amazonaws.dynamodb#ListBulkOperations" + }, { "target": "com.amazonaws.dynamodb#ListContributorInsights" }, @@ -4155,6 +4747,9 @@ { "target": "com.amazonaws.dynamodb#SearchVectors" }, + { + "target": "com.amazonaws.dynamodb#StartBulkPutItems" + }, { "target": "com.amazonaws.dynamodb#TagResource" }, @@ -4406,6 +5001,42 @@ } ] }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + }, { "fn": "stringEquals", "argv": [ @@ -4456,12 +5087,10 @@ { "ref": "ParsedArn_ssa_2" }, - "region" + "service" ] }, - { - "ref": "Region" - } + "dynamodb" ] }, { @@ -4473,10 +5102,12 @@ { "ref": "ParsedArn_ssa_2" }, - "service" + "region" ] }, - "dynamodb" + { + "ref": "Region" + } ] }, { @@ -4488,7 +5119,7 @@ { "ref": "ParsedArn_ssa_2" }, - "region" + "accountId" ] }, false @@ -4503,7 +5134,7 @@ { "ref": "ParsedArn_ssa_2" }, - "accountId" + "region" ] }, false @@ -4697,9 +5328,9 @@ "properties": { "authSchemes": [ { - "signingRegion": "us-east-1", + "name": "sigv4", "signingName": "dynamodb", - "name": "sigv4" + "signingRegion": "us-east-1" } ] }, @@ -4776,6 +5407,29 @@ "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" }, + { + "conditions": [], + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { @@ -4864,29 +5518,6 @@ "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", "type": "error" }, - { - "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": "https://search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", @@ -4977,8 +5608,8 @@ } ], "root": 2, - "nodeCount": 82, - "nodes": "/////wAAAAH/////AAAAAAAAAAYAAAADAAAAAQAAAAQF9eEjAAAAAgX14QEAAAAFAAAAAwX14QIF9eEEAAAAAQAAAE0AAAAHAAAAAgAAAD0AAAAIAAAAAwAAACIAAAAJAAAABAAAAAoF9eEjAAAABQX14QcAAAALAAAACwAAAAwAAABFAAAADAAAAA4AAAANAAAAHAX14RkAAABFAAAADQAAACEAAAAPAAAADgAAABAAAAAVAAAADwAAABEAAAAVAAAAEAAAABIAAAAVAAAAEQAAABMAAAAVAAAAEgAAABQAAAAVAAAAEwAAACAAAAAVAAAAFAAAABYAAAAcAAAAFQAAABcAAAAcAAAAFgAAABgAAAAcAAAAFwAAABkAAAAcAAAAGAAAABoAAAAcAAAAGQAAABsAAAAcAAAAGgAAAB8AAAAcAAAAGwAAAB0AAAAhAAAAHQAAAB4F9eEXAAAAHwX14SEF9eEiAAAAHwX14R8F9eEgAAAAHwX14R0F9eEeAAAAHAX14RgAAABFAAAABAAAACMF9eEjAAAABQX14QYAAAAkAAAACQAAACUF9eEcAAAACwAAACYAAAA8AAAADAAAACgAAAAnAAAAHAX14RkAAAA8AAAADQAAADsAAAApAAAADgAAACoAAAAvAAAADwAAACsAAAAvAAAAEAAAACwAAAAvAAAAEQAAAC0AAAAvAAAAEgAAAC4AAAAvAAAAEwAAADoAAAAvAAAAFAAAADAAAAA2AAAAFQAAADEAAAA2AAAAFgAAADIAAAA2AAAAFwAAADMAAAA2AAAAGAAAADQAAAA2AAAAGQAAADUAAAA2AAAAGgAAADkAAAA2AAAAGwAAADcAAAA7AAAAHQAAADgF9eEXAAAAHwX14RUF9eEWAAAAHwX14RMF9eEUAAAAHwX14REF9eESAAAAHAX14RgAAAA8AAAAHwX14RoF9eEbAAAAAwAAAEYAAAA+AAAABAAAAD8F9eEjAAAABQX14QUAAABAAAAABgAAAEEF9eEQAAAACwAAAEIAAABDAAAAHAX14QgAAABDAAAAHgAAAEUAAABEAAAAHwX14Q4F9eEPAAAAHwX14QwF9eENAAAABAAAAEcF9eEjAAAABQX14QUAAABIAAAABgAAAEkF9eELAAAACQAAAEoF9eELAAAACwAAAEsAAABMAAAAHAX14QgAAABMAAAAHwX14QkF9eEKAAAAAgX14QEAAABOAAAAAwX14QIAAABPAAAABAAAAFAF9eEEAAAABwAAAFEF9eEEAAAACAX14QMAAABSAAAACgX14QMF9eEE" + "nodeCount": 90, + "nodes": "/////wAAAAH/////AAAAAAAAAAYAAAADAAAAAQAAAAQF9eEjAAAAAgX14QEAAAAFAAAAAwX14QIF9eEEAAAAAQAAAFUAAAAHAAAAAgAAAEUAAAAIAAAAAwAAACYAAAAJAAAABAAAAAoF9eEjAAAABQX14QcAAAALAAAACwAAAAwAAABNAAAADAAAABIAAAANAAAADQAAABIAAAAOAAAADgAAABIAAAAPAAAADwAAABIAAAAQAAAAEAAAABIAAAARAAAAIAX14REAAABNAAAAEQAAACUAAAATAAAAEgAAABQAAAAZAAAAEwAAABUAAAAZAAAAFAAAABYAAAAZAAAAFQAAABcAAAAZAAAAFgAAABgAAAAZAAAAFwAAACQAAAAZAAAAGAAAABoAAAAgAAAAGQAAABsAAAAgAAAAGgAAABwAAAAgAAAAGwAAAB0AAAAgAAAAHAAAAB4AAAAgAAAAHQAAAB8AAAAgAAAAHgAAACMAAAAgAAAAHwAAACEAAAAlAAAAIQAAACIF9eEaAAAAIwX14SEF9eEiAAAAIwX14R8F9eEgAAAAIwX14R0F9eEeAAAAIAX14RsAAABNAAAABAAAACcF9eEjAAAABQX14QYAAAAoAAAACQAAACkF9eEcAAAACwAAACoAAABEAAAADAAAADAAAAArAAAADQAAADAAAAAsAAAADgAAADAAAAAtAAAADwAAADAAAAAuAAAAEAAAADAAAAAvAAAAIAX14REAAABEAAAAEQAAAEMAAAAxAAAAEgAAADIAAAA3AAAAEwAAADMAAAA3AAAAFAAAADQAAAA3AAAAFQAAADUAAAA3AAAAFgAAADYAAAA3AAAAFwAAAEIAAAA3AAAAGAAAADgAAAA+AAAAGQAAADkAAAA+AAAAGgAAADoAAAA+AAAAGwAAADsAAAA+AAAAHAAAADwAAAA+AAAAHQAAAD0AAAA+AAAAHgAAAEEAAAA+AAAAHwAAAD8AAABDAAAAIQAAAEAF9eEaAAAAIwX14RgF9eEZAAAAIwX14RYF9eEXAAAAIwX14RQF9eEVAAAAIAX14RsAAABEAAAAIwX14RIF9eETAAAAAwAAAE4AAABGAAAABAAAAEcF9eEjAAAABQX14QUAAABIAAAABgAAAEkF9eEQAAAACwAAAEoAAABLAAAAIAX14QgAAABLAAAAIgAAAE0AAABMAAAAIwX14Q4F9eEPAAAAIwX14QwF9eENAAAABAAAAE8F9eEjAAAABQX14QUAAABQAAAABgAAAFEF9eELAAAACQAAAFIF9eELAAAACwAAAFMAAABUAAAAIAX14QgAAABUAAAAIwX14QkF9eEKAAAAAgX14QEAAABWAAAAAwX14QIAAABXAAAABAAAAFgF9eEEAAAABwAAAFkF9eEEAAAACAX14QMAAABaAAAACgX14QMF9eEE" }, "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -5289,9 +5920,9 @@ "properties": { "authSchemes": [ { - "signingRegion": "us-east-1", + "name": "sigv4", "signingName": "dynamodb", - "name": "sigv4" + "signingRegion": "us-east-1" } ] }, @@ -5378,11 +6009,124 @@ ] } ], + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } + ] + } + ], "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "IsSearchOperation" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "IsSearchOperation" + }, + true + ] + } + ], + "endpoint": { + "url": "https://search-dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", - "type": "error" + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -5468,48 +6212,161 @@ "rules": [ { "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, { "fn": "stringEquals", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] + "ref": "AccountIdEndpointMode" }, - "aws-us-gov" + "required" ] } ], - "rules": [ - { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "rules": [ + { "conditions": [ { - "fn": "isSet", + "fn": "not", "argv": [ { - "ref": "AccountIdEndpointMode" + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] } ] }, { - "fn": "stringEquals", + "fn": "not", "argv": [ { - "ref": "AccountIdEndpointMode" - }, - "required" + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } ] } ], "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "IsSearchOperation" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "IsSearchOperation" + }, + true + ] + } + ], + "endpoint": { + "url": "https://search-dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", - "type": "error" + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -5556,28 +6413,118 @@ { "conditions": [ { - "fn": "isSet", + "fn": "not", "argv": [ { - "ref": "AccountIdEndpointMode" + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] } ] }, { - "fn": "stringEquals", + "fn": "not", "argv": [ { - "ref": "AccountIdEndpointMode" - }, - "required" + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } ] } ], "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "IsSearchOperation" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "IsSearchOperation" + }, + true + ] + } + ], + "endpoint": { + "url": "https://search-dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", - "type": "error" + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ], "type": "tree" @@ -5663,14 +6610,6 @@ "rules": [ { "conditions": [ - { - "fn": "isSet", - "argv": [ - { - "ref": "AccountIdEndpointMode" - } - ] - }, { "fn": "not", "argv": [ @@ -5678,72 +6617,207 @@ "fn": "stringEquals", "argv": [ { - "ref": "AccountIdEndpointMode" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] }, - "disabled" + "aws" ] } ] }, { - "fn": "stringEquals", + "fn": "not", "argv": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "name" + "us-gov-east-1" ] - }, - "aws" + } ] }, { "fn": "not", "argv": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "Region" }, - true + "us-gov-west-1" ] } ] }, { - "fn": "isSet", + "fn": "not", "argv": [ { - "ref": "ResourceArn" + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] } ] }, { - "fn": "aws.parseArn", - "argv": [ - { - "ref": "ResourceArn" - } - ], - "assign": "ParsedArn" - }, - { - "fn": "stringEquals", + "fn": "not", "argv": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "ParsedArn" + "ref": "Region" }, - "service" + "cn-northwest-1" ] - }, - "dynamodb" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "required" + ] + } + ], + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "IsSearchOperation" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "IsSearchOperation" + }, + true + ] + } + ], + "endpoint": { + "url": "https://search-dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "ResourceArn" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ResourceArn" + } + ], + "assign": "ParsedArn" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "ParsedArn" + }, + "service" + ] + }, + "dynamodb" ] }, { @@ -5864,21 +6938,6 @@ } ] }, - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, { "fn": "not", "argv": [ @@ -6053,21 +7112,6 @@ } ] }, - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, { "fn": "not", "argv": [ @@ -6180,67 +7224,8 @@ ] } ], - "rules": [ - { - "conditions": [ - { - "fn": "not", - "argv": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ] - } - ], - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - } - ], - "rules": [ - { - "conditions": [], - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", - "type": "error" - } - ], - "type": "tree" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", + "type": "error" }, { "conditions": [ @@ -6292,10 +7277,22 @@ { "conditions": [ { - "fn": "isSet", + "fn": "not", "argv": [ { - "ref": "AccountIdEndpointMode" + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] } ] }, @@ -6306,56 +7303,171 @@ "fn": "stringEquals", "argv": [ { - "ref": "AccountIdEndpointMode" + "ref": "Region" }, - "disabled" + "us-gov-east-1" ] } ] }, { - "fn": "stringEquals", + "fn": "not", "argv": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "name" + "us-gov-west-1" ] - }, - "aws" + } ] }, { "fn": "not", "argv": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "Region" }, - true + "cn-north-1" ] } ] }, { - "fn": "isSet", + "fn": "not", "argv": [ { - "ref": "ResourceArn" + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] } ] - }, + } + ], + "rules": [ { - "fn": "aws.parseArn", - "argv": [ + "conditions": [ { - "ref": "ResourceArn" - } + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "required" + ] + } + ], + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "IsSearchOperation" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "IsSearchOperation" + }, + true + ] + } + ], + "endpoint": { + "url": "https://search-dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "ResourceArn" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ResourceArn" + } ], "assign": "ParsedArn" }, @@ -6492,21 +7604,6 @@ } ] }, - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, { "fn": "not", "argv": [ @@ -6681,21 +7778,6 @@ } ] }, - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - }, { "fn": "not", "argv": [ @@ -6808,67 +7890,8 @@ ] } ], - "rules": [ - { - "conditions": [ - { - "fn": "not", - "argv": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ] - } - ], - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" - ] - } - ], - "rules": [ - { - "conditions": [], - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition", - "type": "error" - } - ], - "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported", - "type": "error" - } - ], - "type": "tree" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", + "type": "error" }, { "conditions": [ @@ -7586,17 +8609,19 @@ } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://example.com" + } }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, @@ -7604,26 +8629,26 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, + "AWS::UseFIPS": false, + "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, @@ -7631,26 +8656,26 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, @@ -7658,28 +8683,26 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, @@ -7687,16 +8710,16 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", "expect": { "endpoint": { "url": "https://example.com" @@ -7710,167 +8733,76 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "endpoint": { - "url": "https://example.com" + "operationInputs": [ + { + "builtInParams": { + "SDK::Endpoint": "https://example.com", + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListTables" } - }, + ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", "expect": { "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, @@ -7881,54 +8813,52 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": true, "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://example.com" + } }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com}", "expect": { "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, @@ -7939,370 +8869,263 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "Endpoint": "https://example.com" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, AccountIdEndpointMode=preferred}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, AccountIdEndpointMode=preferred}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred" } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://dynamodb.us-east-1.api.aws", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred" } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://111111111111.ddb.us-east-1.api.aws" + } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "params": { + "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred}", + "expect": { + "endpoint": { + "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" } - ], + }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred" } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, AccountIdEndpointMode=preferred}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", + "Endpoint": "https://dynamodb.eu-west-1.api.aws", + "Region": "eu-west-1", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, AccountIdEndpointMode=preferred}", + "expect": { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + "params": { + "Endpoint": "https://dynamodb.us-west-2.api.aws", + "Region": "us-west-2", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, AccountIdEndpointMode=preferred}", + "expect": { + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + }, + "params": { + "Endpoint": "https://dynamodb.us-east-1.api.aws/", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "local", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::Region": "local", + "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "disabled" @@ -8311,286 +9134,242 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": true, + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "local", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{UseFIPS=false, UseDualStack=false}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Missing Region" }, "params": { "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:not_an_account:table/table_name}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "ResourceArn": "arn:aws:dynamodb:us-east-1:not_an_account:table/table_name" } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", + "AccountId": "111111111111", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "error": "Credentials-sourced account ID parameter is invalid" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "AccountId": "", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "DescribeTable", "operationParams": { @@ -8599,165 +9378,120 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" } - ], + }, "params": { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "ResourceArnList": [], "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream" } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "BatchGetItem", "operationParams": { @@ -8776,70 +9510,58 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" } - ], + }, "params": { - "UseFIPS": true, - "UseDualStack": false, + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "BatchGetItem", "operationParams": { @@ -8858,219 +9580,298 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, + "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "disabled", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "ListTables" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } - ], + }, "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:s3:us-east-1:333333333333:stream/testStream" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream" + } } ], "params": { - "UseFIPS": true, - "UseDualStack": false, + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + } + }, + "params": { "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:s3:us-east-1:333333333333:stream/testStream" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.api.aws" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://example.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "BatchGetItem", "operationParams": { @@ -9089,248 +9890,291 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListTables" + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "BatchGetItem", + "operationParams": { + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } + } + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListTables" + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.api.aws" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": true, "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "DescribeTable", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } } } ], "params": { + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "UseDualStack": true + } + }, + { + "documentation": "{Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "DescribeTable", "operationParams": { @@ -9339,105 +10183,115 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "ResourceArn": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "ResourceArnList": [], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream" } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "BatchGetItem", "operationParams": { @@ -9456,29 +10310,48 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "BatchGetItem", "operationParams": { @@ -9497,233 +10370,248 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, + "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": true, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], "Region": "us-east-1", - "Endpoint": "https://example.com" + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:s3:us-east-1:333333333333:stream/testStream" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream" + } + } + ], + "params": { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:s3:us-east-1:333333333333:stream/testStream" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "url": "http://localhost:8000" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } + } + ], + "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "BatchGetItem", "operationParams": { @@ -9742,254 +10630,153 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "url": "http://localhost:8000" + "operationName": "ListTables" } - }, + ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "url": "http://localhost:8000" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } } - }, + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "BatchGetItem", + "operationParams": { + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } + } + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "DescribeTable", "operationParams": { @@ -9998,181 +10785,256 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "BatchGetItem", + "operationParams": { + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } } } ], "params": { + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + "expect": { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + "expect": { + "error": "Credentials-sourced account ID parameter is invalid" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "", + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "ListTables" + } + ], + "params": { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } + } + ], "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + "expect": { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + "params": { "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArnList=[], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArnList": [], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name" + } + } + ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream" + } + } + ], "params": { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "BatchGetItem", "operationParams": { @@ -10191,164 +11053,58 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "BatchGetItem", "operationParams": { @@ -10367,437 +11123,478 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "ResourceArnList": [ "arn:aws:s3:us-east-1:333333333333:stream/testStream" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream" + } } ], "params": { + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:af-south-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws:dynamodb:af-south-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + } }, "params": { + "AccountId": "111111111111", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "ResourceArnList": [ + "arn:aws:s3:us-east-1:333333333333:stream/testStream" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" } } ], "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "DescribeTable", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } } } ], "params": { + "ResourceArnList": [ + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + ], + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, - "url": "http://localhost:8000" + "operationName": "ListTables" } - }, + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "local" + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } + } + ], "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "BatchGetItem", + "operationParams": { + "RequestItems": { + "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } + } + } + ], "params": { - "UseFIPS": true, - "UseDualStack": false, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "ListTables" + } + ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "required" }, - "url": "http://localhost:8000" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + } } + ], + "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "BatchGetItem", "operationParams": { @@ -10816,169 +11613,125 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArnList": [ "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{Region=us-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.us-new-1.amazonaws.com" } }, "params": { + "Region": "us-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn" } }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListTables" + } + ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "disabled", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" + } } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "BatchGetItem", "operationParams": { "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": { "Keys": [ { "pk": { @@ -10992,570 +11745,411 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://222222222222.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } + "metricValues": [ + "O" ] }, - "url": "http://localhost:8000" + "url": "https://333333333333.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "local" + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local" + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" } } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "DescribeTable", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" + "RequestItems": { + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } } } ], "params": { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "local" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { - "UseFIPS": true, - "UseDualStack": false, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" + } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "local" + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=local}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "local" + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=local}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "local" + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], "params": { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -11563,31 +12157,31 @@ "O" ] }, - "url": "https://111111111111.ddb.us-east-1.api.aws" + "url": "https://111111111111.ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -11595,31 +12189,33 @@ "O" ] }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + "url": "https://222222222222.ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name" + } } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -11627,22 +12223,21 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://333333333333.ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "BatchGetItem", "operationParams": { "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name": { "Keys": [ { "pk": { @@ -11656,18 +12251,17 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -11675,23 +12269,19 @@ "O" ] }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + "url": "https://111111111111.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -11699,23 +12289,19 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://222222222222.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -11723,154 +12309,230 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://333333333333.ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "ResourceArnList": [ + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" + ], + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": false, + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name], Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" + "arn:aws-cn:dynamodb:cn-north-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{Region=cn-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + "url": "https://dynamodb.cn-new-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], + "Region": "cn-new-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "AccountId": "111111111111", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Credentials-sourced account ID parameter is invalid" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, + "AWS::Region": "us-gov-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::Region": "us-gov-east-1", + "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "DescribeTable", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" + "RequestItems": { + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] + } + } } } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -11878,33 +12540,19 @@ "O" ] }, - "url": "https://222222222222.ddb.us-east-1.api.aws" + "url": "https://111111111111.ddb.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -11912,210 +12560,208 @@ "O" ] }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + "url": "https://222222222222.ddb.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } + "url": "https://333333333333.ddb.us-gov-east-1.api.aws" } - ], + }, "params": { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } + "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Region": "us-gov-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::Region": "us-gov-east-1", + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "BatchGetItem", + "operationName": "DescribeTable", "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://333333333333.ddb.us-east-1.api.aws" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "BatchGetItem", "operationParams": { "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": { "Keys": [ { "pk": { @@ -12129,150 +12775,158 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-east-1.api.aws" } }, "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.api.aws" + } + }, + "params": { "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1" + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } - ], + }, "params": { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, - "UseDualStack": true, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" + } + }, + "params": { "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" + } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" } - ], + }, "params": { + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -12280,15 +12934,15 @@ "O" ] }, - "url": "https://111111111111.ddb.us-east-1.api.aws" + "url": "https://111111111111.ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, @@ -12296,15 +12950,15 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -12312,31 +12966,33 @@ "O" ] }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" + "url": "https://222222222222.ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "ListTables" + "operationName": "DescribeTable", + "operationParams": { + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name" + } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { "properties": { @@ -12344,22 +13000,21 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://333333333333.ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "BatchGetItem", "operationParams": { "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name": { "Keys": [ { "pk": { @@ -12373,18 +13028,17 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -12392,23 +13046,19 @@ "O" ] }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + "url": "https://111111111111.ddb.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -12416,23 +13066,19 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://222222222222.ddb.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { "properties": { @@ -12440,300 +13086,191 @@ "O" ] }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" + "url": "https://333333333333.ddb.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.ddb.us-east-1.amazonaws.com" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } + "UseFIPS": true, + "UseDualStack": false + } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Credentials-sourced account ID parameter is invalid" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name], Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.ddb.us-east-1.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArnList": [ + "arn:aws-us-gov:dynamodb:us-gov-east-1:333333333333:table/table_name" + ], + "Region": "us-gov-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{Region=us-gov-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" + "url": "https://dynamodb.us-gov-new-1.amazonaws.com" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], "params": { + "Region": "us-gov-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } + "operationName": "ListTables" } ], "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" } } ], "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1}", - "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "BatchGetItem", "operationParams": { "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": { "Keys": [ { "pk": { @@ -12747,4139 +13284,625 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" + } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" } - ], + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" + } + }, "params": { - "UseFIPS": true, - "UseDualStack": false, "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1" + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://333333333333.ddb.us-east-1.api.aws" + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", - "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://333333333333.ddb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=us-east-1}", - "expect": { - "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.ddb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1}", - "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=cn-north-1}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.api.aws" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=cn-north-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-iso-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-west-2:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-west-2:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, ResourceArnList=[arn:aws:s3:us-east-1:333333333333:stream/testStream], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "ResourceArnList": [ - "arn:aws:s3:us-east-1:333333333333:stream/testStream" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "ListTables" - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "DescribeTable", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream" - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-gov-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "BatchGetItem", - "operationParams": { - "RequestItems": { - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name": { - "Keys": [ - { - "pk": { - "S": "value" - } - } - ] - } - } - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, ResourceArnList=[arn:aws:dynamodb:us-east-1:333333333333:table/table_name], AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "ResourceArnList": [ - "arn:aws:dynamodb:us-east-1:333333333333:table/table_name" - ], - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-gov-east-1}", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", - "Region": "cn-north-1" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", - "Region": "us-gov-east-1" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.us-east-1.api.aws", - "Region": "us-east-1" - } - }, - { - "documentation": "{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws" - } - }, - "params": { - "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", - "Region": "us-east-1" - } - }, - { - "documentation": "{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1}", - "expect": { - "endpoint": { - "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" - } - }, - "params": { - "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "Region": "us-east-1" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.eu-west-1.api.aws", - "Region": "eu-west-1" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.us-west-2.api.aws", - "Region": "us-west-2" - } - }, - { - "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1}", - "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" - }, - "params": { - "Endpoint": "https://dynamodb.us-east-1.api.aws/", - "Region": "us-east-1" - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" } - ], + }, "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseDualStack": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" } - ], + }, "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListTables" } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "SearchVectors", + "operationName": "DescribeTable", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "disabled" }, - "operationName": "SearchVectors", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" + "RequestItems": { + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] } - ], - "TopK": 10 + } } } ], "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" } }, "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true}", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "operationName": "ListTables" } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "SearchVectors", + "operationName": "DescribeTable", "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name" } } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://example.com", - "AWS::Region": "us-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", + "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "required" }, - "operationName": "SearchVectors", + "operationName": "BatchGetItem", "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" + "RequestItems": { + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name": { + "Keys": [ + { + "pk": { + "S": "value" + } + } + ] } - ], - "TopK": 10 + } } } ], "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, - "UseDualStack": true, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" + }, + "params": { "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{ResourceArnList=[arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name], Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArnList": [ + "arn:aws-iso:dynamodb:us-iso-east-1:333333333333:table/table_name" + ], + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "{Region=us-iso-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false}", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-new-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://example.com" @@ -16893,7 +13916,7 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -16915,21 +13938,19 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "operationInputs": [ { @@ -16937,9 +13958,9 @@ "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -16961,17 +13982,17 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, @@ -16981,12 +14002,13 @@ "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17004,17 +14026,17 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, @@ -17024,12 +14046,13 @@ "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17047,19 +14070,21 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + "endpoint": { + "url": "https://example.com" + } }, "operationInputs": [ { @@ -17067,12 +14092,13 @@ "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17090,21 +14116,19 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "operationInputs": [ { @@ -17112,12 +14136,13 @@ "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17135,34 +14160,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17180,34 +14204,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://example.com" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { "SDK::Endpoint": "https://example.com", "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17225,34 +14248,17 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "Endpoint": "https://example.com", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, Endpoint=https://example.com, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://example.com" @@ -17265,6 +14271,7 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", @@ -17287,80 +14294,29 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "SDK::Endpoint": "https://example.com", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -17382,38 +14338,29 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, + "SDK::Endpoint": "https://example.com", + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -17435,83 +14382,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", + "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, Endpoint=https://example.com, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "SDK::Endpoint": "https://example.com", + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17526,44 +14423,33 @@ ], "TopK": 10 } - } - ], - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "local", + } + ], + "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, + "Endpoint": "https://example.com", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "SDK::Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "AWS::Region": "cn-north-1", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17581,41 +14467,27 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "SDK::Endpoint": "https://dynamodb.us-gov-east-1.api.aws", + "AWS::Region": "us-gov-east-1", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17633,61 +14505,22 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", + "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "SDK::Endpoint": "https://dynamodb.us-east-1.api.aws", + "AWS::Region": "us-east-1", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", @@ -17710,79 +14543,25 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, + "Endpoint": "https://dynamodb.us-east-1.api.aws", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://111111111111.ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "SDK::Endpoint": "https://111111111111.ddb.us-east-1.api.aws", + "AWS::Region": "us-east-1", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -17804,38 +14583,25 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "SDK::Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", + "AWS::Region": "us-east-1", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -17857,83 +14623,27 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "SDK::Endpoint": "https://dynamodb.eu-west-1.api.aws", + "AWS::Region": "eu-west-1", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -17951,41 +14661,27 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Endpoint": "https://dynamodb.eu-west-1.api.aws", + "Region": "eu-west-1", + "AccountIdEndpointMode": "preferred", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "SDK::Endpoint": "https://dynamodb.us-west-2.api.aws", + "AWS::Region": "us-west-2", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -18003,41 +14699,27 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Endpoint": "https://dynamodb.us-west-2.api.aws", + "Region": "us-west-2", + "AccountIdEndpointMode": "preferred", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, AccountIdEndpointMode=preferred, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "SDK::Endpoint": "https://dynamodb.us-east-1.api.aws/", + "AWS::Region": "us-east-1", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -18055,41 +14737,14 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "local", + "Endpoint": "https://dynamodb.us-east-1.api.aws/", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "properties": { @@ -18110,7 +14765,8 @@ "AWS::Region": "local", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -18132,57 +14788,58 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "AccountIdEndpointMode": "disabled", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "local", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "properties": { @@ -18204,7 +14861,7 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -18226,111 +14883,58 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], - "params": { + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: FIPS and local endpoint are not supported" + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "local", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + "error": "Invalid Configuration: FIPS and local endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "local", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "properties": { @@ -18351,11 +14955,12 @@ "AWS::Region": "local", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -18373,93 +14978,85 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "local", "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=local, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { + "AccountId": "111111111111", "Region": "local", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } + "error": "Invalid Configuration: Missing Region" }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "local", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:not_an_account:table/table_name, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws:dynamodb:us-east-1:not_an_account:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -18477,62 +15074,28 @@ } ], "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "local", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", - "expect": { - "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "local", + "ResourceArn": "arn:aws:dynamodb:us-east-1:not_an_account:table/table_name", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=local, IsSearchOperation=true}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "url": "http://localhost:8000" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "local", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -18554,26 +15117,31 @@ } ], "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "local", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.api.aws" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, @@ -18597,28 +15165,26 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" - } + "error": "Credentials-sourced account ID parameter is invalid" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountId": "", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", @@ -18641,16 +15207,16 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", + "AccountId": "", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "properties": { @@ -18658,7 +15224,7 @@ "O" ] }, - "url": "https://111111111111.search-ddb.us-east-1.api.aws" + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com" } }, "operationInputs": [ @@ -18666,13 +15232,12 @@ "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", + "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -18690,24 +15255,35 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "ResourceArn": "", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ @@ -18716,12 +15292,11 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -18739,18 +15314,20 @@ } ], "params": { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Credentials-sourced account ID parameter is invalid" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { @@ -18758,12 +15335,11 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -18781,32 +15357,32 @@ } ], "params": { + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", + "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.api.aws" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -18824,32 +15400,38 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": false, + "AWS::UseFIPS": false, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -18867,16 +15449,16 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { "properties": { @@ -18915,37 +15497,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -18963,32 +15541,32 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19006,32 +15584,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -19049,48 +15628,32 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-east-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", "AccountIdEndpointMode": "preferred", - "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb-fips.us-east-1.api.aws" } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19108,26 +15671,28 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -19149,27 +15714,28 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -19191,24 +15757,19 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.search-ddb.us-east-1.api.aws" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ @@ -19216,9 +15777,9 @@ "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -19240,24 +15801,19 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "AccountId": "", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-east-1.amazonaws.com" } }, "operationInputs": [ @@ -19266,12 +15822,11 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19289,18 +15844,36 @@ } ], "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "ResourceArn": "", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Credentials-sourced account ID parameter is invalid" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { @@ -19308,12 +15881,11 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19331,30 +15903,32 @@ } ], "params": { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -19372,30 +15946,32 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + "endpoint": { + "url": "https://search-dynamodb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -19413,24 +15989,19 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.search-ddb.us-east-1.api.aws" + "url": "https://search-dynamodb.us-east-1.api.aws" } }, "operationInputs": [ @@ -19439,11 +16010,12 @@ "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -19461,24 +16033,19 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "properties": { - "metricValues": [ - "O" - ] - }, - "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-east-1.api.aws" } }, "operationInputs": [ @@ -19486,8 +16053,8 @@ "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -19509,30 +16076,33 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "endpoint": { + "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -19550,30 +16120,32 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "endpoint": { + "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19591,40 +16163,29 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", - "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" - }, - "params": { - "UseFIPS": false, + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "required", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + "endpoint": { + "url": "https://search-dynamodb-fips.us-east-1.api.aws" + } }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -19646,72 +16207,32 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "us-east-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { - "UseFIPS": false, "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "endpoint": { + "url": "https://search-dynamodb-fips.us-east-1.api.aws" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "required" + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19729,26 +16250,25 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", @@ -19771,72 +16291,37 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", - "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -19854,30 +16339,31 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "Credentials-sourced account ID parameter is invalid" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "", "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -19895,30 +16381,37 @@ } ], "params": { + "AccountId": "", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-east-1.amazonaws.com" + } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19936,44 +16429,44 @@ } ], "params": { + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "params": { - "UseFIPS": false, - "UseDualStack": false, "ResourceArn": "", + "Region": "us-east-1", "AccountIdEndpointMode": "required", - "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=required, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:af-south-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "us-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -19991,32 +16484,30 @@ } ], "params": { + "ResourceArn": "arn:aws:dynamodb:af-south-1:222222222222:table/table_name", + "Region": "us-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "AccountIdEndpointMode": "required", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:us-east-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.api.aws" - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -20034,33 +16525,30 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", + "ResourceArn": "arn:aws:s3:us-east-1:222222222222:stream/testStream", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:s3:af-south-1:222222222222:stream/testStream, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" - } + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": true, + "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "IndexName": "test-index", "SearchVector": [ { @@ -20078,19 +16566,24 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", + "ResourceArn": "arn:aws:s3:af-south-1:222222222222:stream/testStream", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.api.aws" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-east-1.api.aws" } }, "operationInputs": [ @@ -20100,7 +16593,7 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": true, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -20122,19 +16615,24 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-east-1.api.aws" } }, "operationInputs": [ @@ -20142,13 +16640,12 @@ "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": true, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -20166,29 +16663,27 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "disabled", + "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -20210,28 +16705,26 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "disabled", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": true, - "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -20253,32 +16746,31 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": true, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-east-1.amazonaws.com" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", "AWS::UseFIPS": true, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::UseDualStack": true, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -20296,28 +16788,26 @@ } ], "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", + "AccountId": "111111111111", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, Region=us-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb.us-east-1.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "operationInputs": [ { "builtInParams": { "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, + "AWS::UseFIPS": true, "AWS::UseDualStack": true, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -20339,32 +16829,38 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": true, "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", "Region": "us-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{Region=us-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-new-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "us-new-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -20382,32 +16878,38 @@ } ], "params": { + "Region": "us-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -20425,32 +16927,37 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-east-1", + "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -20468,122 +16975,122 @@ } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=disabled, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-east-1.amazonaws.com" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "disabled" + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "url": "https://222222222222.search-ddb.cn-north-1.api.amazonwebservices.com.cn" } - ], + }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "disabled", - "Region": "us-east-1", + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, "UseDualStack": false, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, "AccountId": "111111111111", + "Region": "cn-north-1", "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "Region": "cn-north-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" @@ -20596,7 +17103,7 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -20618,16 +17125,16 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" @@ -20639,12 +17146,11 @@ "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -20662,67 +17168,120 @@ } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "AccountId": "111111111111", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "AccountId": "111111111111", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://search-dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "AccountId": "111111111111", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://search-dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "Region": "cn-north-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ @@ -20731,11 +17290,12 @@ "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -20753,19 +17313,24 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.cn-north-1.amazonaws.com.cn" } }, "operationInputs": [ @@ -20774,11 +17339,11 @@ "AWS::Region": "cn-north-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -20796,86 +17361,126 @@ } ], "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "cn-north-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "properties": { + "metricValues": [ + "O" + ] }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "url": "https://111111111111.search-ddb.cn-north-1.api.amazonwebservices.com.cn" } - ], + }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name, Region=cn-north-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-cn:dynamodb:cn-north-1:222222222222:table/table_name", "Region": "cn-north-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{Region=cn-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.cn-north-1.amazonaws.com.cn" + "url": "https://search-dynamodb.cn-new-1.amazonaws.com.cn" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "cn-north-1", + "AWS::Region": "cn-new-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", @@ -20898,72 +17503,30 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "cn-north-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "AccountId": "111111111111", + "Region": "cn-new-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", - "IsSearchOperation": true - } - }, - { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", - "expect": { - "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-iso-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", @@ -20989,33 +17552,37 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-iso-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21033,123 +17600,139 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "AccountId": "", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-gov-east-1.api.aws" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-gov-east-1.api.aws" + } + }, + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" + "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "AccountId": "111111111111", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-iso-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -21167,32 +17750,32 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-iso-east-1", + "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21210,125 +17793,120 @@ } ], "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.api.aws" } }, "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "ResourceArn": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-iso-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + "url": "https://search-dynamodb.us-gov-east-1.api.aws" } }, - "operationInputs": [ - { - "builtInParams": { - "AWS::Region": "us-iso-east-1", - "AWS::UseFIPS": false, - "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, - "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-iso-east-1", + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" + "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": true, "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" + } + }, + "params": { "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.api.aws" + "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=111111111111, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ @@ -21338,7 +17916,7 @@ "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountId": "111111111111", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -21360,19 +17938,24 @@ } ], "params": { - "UseFIPS": false, - "UseDualStack": false, "AccountId": "111111111111", - "AccountIdEndpointMode": "preferred", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountId=, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-gov-east-1.amazonaws.com" } }, "operationInputs": [ @@ -21381,12 +17964,11 @@ "AWS::Region": "us-gov-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountId": "", - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21404,80 +17986,131 @@ } ], "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", "UseFIPS": false, "UseDualStack": false, - "AccountId": "", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb-fips.us-gov-east-1.api.aws" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://111111111111.search-ddb.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=true, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://222222222222.search-ddb.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", + "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=true, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name, Region=us-gov-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", + "ResourceArn": "arn:aws-us-gov:dynamodb:us-gov-east-1:222222222222:table/table_name", "Region": "us-gov-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-east-1:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{Region=us-gov-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-gov-new-1.amazonaws.com" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-gov-east-1", + "AWS::Region": "us-gov-new-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -21495,32 +18128,33 @@ } ], "params": { + "Region": "us-gov-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-east-1:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:dynamodb:us-west-2:222222222222:table/table_name, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-gov-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", + "TableName": "test-table", "IndexName": "test-index", "SearchVector": [ { @@ -21538,32 +18172,32 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:dynamodb:us-west-2:222222222222:table/table_name", - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=arn:aws:s3:us-west-2:222222222222:stream/testStream, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-gov-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21581,44 +18215,125 @@ } ], "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, "UseDualStack": false, - "ResourceArn": "arn:aws:s3:us-west-2:222222222222:stream/testStream", + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, ResourceArn=, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" } }, "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, "UseDualStack": false, - "ResourceArn": "", + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{UseFIPS=false, UseDualStack=false, AccountIdEndpointMode=preferred, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", "expect": { "endpoint": { - "url": "https://search-dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=preferred, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" } }, "operationInputs": [ { "builtInParams": { - "AWS::Region": "us-gov-east-1", + "AWS::Region": "us-iso-east-1", "AWS::UseFIPS": false, "AWS::UseDualStack": false, - "AWS::Auth::AccountIdEndpointMode": "preferred" + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { @@ -21640,27 +18355,32 @@ } ], "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", "UseFIPS": false, "UseDualStack": false, - "AccountIdEndpointMode": "preferred", - "Region": "us-gov-east-1", "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.cn-north-1.api.amazonwebservices.com.cn, Region=cn-north-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "endpoint": { + "url": "https://search-dynamodb.us-iso-east-1.c2s.ic.gov" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", - "AWS::Region": "cn-north-1" + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "disabled" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21678,57 +18398,123 @@ } ], "params": { - "Endpoint": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn", - "Region": "cn-north-1", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.us-gov-east-1.api.aws, Region=us-gov-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "endpoint": { + "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" + } }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://dynamodb.us-gov-east-1.api.aws", - "AWS::Region": "us-gov-east-1" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-iso-east-1.api.aws.ic.gov" } - ], + }, "params": { - "Endpoint": "https://dynamodb.us-gov-east-1.api.aws", - "Region": "us-gov-east-1", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=disabled, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb-fips.us-iso-east-1.api.aws.ic.gov" + } + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "disabled", + "UseFIPS": true, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://dynamodb.us-east-1.api.aws", - "AWS::Region": "us-east-1" + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { @@ -21750,27 +18536,30 @@ } ], "params": { - "Endpoint": "https://dynamodb.us-east-1.api.aws", - "Region": "us-east-1", + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://111111111111.ddb.us-east-1.api.aws, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://111111111111.ddb.us-east-1.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://111111111111.ddb.us-east-1.api.aws", - "AWS::Region": "us-east-1" + "AWS::Region": "us-iso-east-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountIdEndpointMode": "required" }, "operationName": "SearchVectors", "operationParams": { - "TableName": "test-table", + "TableName": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", "IndexName": "test-index", "SearchVector": [ { @@ -21788,131 +18577,113 @@ } ], "params": { - "Endpoint": "https://111111111111.ddb.us-east-1.api.aws", - "Region": "us-east-1", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { - "endpoint": { - "url": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws" - } + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "AWS::Region": "us-east-1" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "Endpoint": "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.api.aws", - "Region": "us-east-1", + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.eu-west-1.api.aws, Region=eu-west-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=false, UseDualStack=true, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this region" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://dynamodb.eu-west-1.api.aws", - "AWS::Region": "eu-west-1" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "Endpoint": "https://dynamodb.eu-west-1.api.aws", - "Region": "eu-west-1", + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.us-west-2.api.aws, Region=us-west-2, IsSearchOperation=true}", + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" }, - "operationInputs": [ - { - "builtInParams": { - "SDK::Endpoint": "https://dynamodb.us-west-2.api.aws", - "AWS::Region": "us-west-2" - }, - "operationName": "SearchVectors", - "operationParams": { - "TableName": "test-table", - "IndexName": "test-index", - "SearchVector": [ - { - "N": "1.0" - }, - { - "N": "2.0" - }, - { - "N": "3.0" - } - ], - "TopK": 10 - } - } - ], "params": { - "Endpoint": "https://dynamodb.us-west-2.api.aws", - "Region": "us-west-2", + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, "IsSearchOperation": true } }, { - "documentation": "{Endpoint=https://dynamodb.us-east-1.api.aws/, Region=us-east-1, IsSearchOperation=true}", + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=false, IsSearchOperation=true}", "expect": { - "error": "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html" + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false, + "IsSearchOperation": true + } + }, + { + "documentation": "{AccountId=111111111111, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "AccountId": "111111111111", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{ResourceArn=arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name, Region=us-iso-east-1, AccountIdEndpointMode=required, UseFIPS=true, UseDualStack=true, IsSearchOperation=true}", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported" + }, + "params": { + "ResourceArn": "arn:aws-iso:dynamodb:us-iso-east-1:222222222222:table/table_name", + "Region": "us-iso-east-1", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": true, + "IsSearchOperation": true + } + }, + { + "documentation": "{Region=us-iso-new-1, AccountIdEndpointMode=preferred, AccountId=111111111111, UseFIPS=false, UseDualStack=false, IsSearchOperation=true}", + "expect": { + "endpoint": { + "url": "https://search-dynamodb.us-iso-new-1.c2s.ic.gov" + } }, "operationInputs": [ { "builtInParams": { - "SDK::Endpoint": "https://dynamodb.us-east-1.api.aws/", - "AWS::Region": "us-east-1" + "AWS::Region": "us-iso-new-1", + "AWS::UseFIPS": false, + "AWS::UseDualStack": false, + "AWS::Auth::AccountId": "111111111111", + "AWS::Auth::AccountIdEndpointMode": "preferred" }, "operationName": "SearchVectors", "operationParams": { @@ -21934,8 +18705,11 @@ } ], "params": { - "Endpoint": "https://dynamodb.us-east-1.api.aws/", - "Region": "us-east-1", + "Region": "us-iso-new-1", + "AccountIdEndpointMode": "preferred", + "AccountId": "111111111111", + "UseFIPS": false, + "UseDualStack": false, "IsSearchOperation": true } } @@ -24071,6 +20845,46 @@ "smithy.api#documentation": "

The format options for the data that was imported into the target table. There is one\n value, CsvOption.

" } }, + "com.amazonaws.dynamodb#InputS3Configuration": { + "type": "structure", + "members": { + "S3BucketOwner": { + "target": "com.amazonaws.dynamodb#S3BucketOwner", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the input bucket owner. If you omit this value,\n DynamoDB uses the Amazon Web Services account ID of the requester.

\n \n

\n S3BucketOwner is required when the bucket is owned by another Amazon Web Services account.

\n
" + } + }, + "S3Bucket": { + "target": "com.amazonaws.dynamodb#S3Bucket", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket that contains the input objects.

", + "smithy.api#required": {} + } + }, + "S3KeyPrefix": { + "target": "com.amazonaws.dynamodb#S3Prefix", + "traits": { + "smithy.api#documentation": "

An optional key prefix that limits the input to matching objects in the Amazon S3 bucket.

" + } + }, + "InputFormat": { + "target": "com.amazonaws.dynamodb#BulkOperationInputFormat", + "traits": { + "smithy.api#documentation": "

The format of the input objects. DYNAMODB_JSON uses JSON Lines, with one\n JSON record per line. ION uses a sequence of Ion structs.

", + "smithy.api#required": {} + } + }, + "InputCompressionType": { + "target": "com.amazonaws.dynamodb#InputCompressionType", + "traits": { + "smithy.api#documentation": "

The compression type of the input objects. Valid values are GZIP,\n ZSTD, and NONE. If you don't specify a value, DynamoDB uses NONE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the Amazon S3 location and format settings for bulk operation input.\n The S3Bucket and InputFormat fields are required.

" + } + }, "com.amazonaws.dynamodb#Integer": { "type": "integer", "traits": { @@ -24548,16 +21362,82 @@ "smithy.api#documentation": "

Only backups created before this time are listed. TimeRangeUpperBound is\n exclusive.

" } }, - "ExclusiveStartBackupArn": { - "target": "com.amazonaws.dynamodb#BackupArn", + "ExclusiveStartBackupArn": { + "target": "com.amazonaws.dynamodb#BackupArn", + "traits": { + "smithy.api#documentation": "

\n LastEvaluatedBackupArn is the Amazon Resource Name (ARN) of the backup last\n evaluated when the current page of results was returned, inclusive of the current page\n of results. This value may be specified as the ExclusiveStartBackupArn of a\n new ListBackups operation in order to fetch the next page of results.\n

" + } + }, + "BackupType": { + "target": "com.amazonaws.dynamodb#BackupTypeFilter", + "traits": { + "smithy.api#documentation": "

The backups from the table specified by BackupType are listed.

\n

Where BackupType can be:

\n
    \n
  • \n

    \n USER - On-demand backup created by you. (The default setting if no\n other backup types are specified.)

    \n
  • \n
  • \n

    \n SYSTEM - On-demand backup automatically created by DynamoDB.

    \n
  • \n
  • \n

    \n ALL - All types of on-demand backups (USER and SYSTEM).

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#ListBackupsOutput": { + "type": "structure", + "members": { + "BackupSummaries": { + "target": "com.amazonaws.dynamodb#BackupSummaries", + "traits": { + "smithy.api#documentation": "

List of BackupSummary objects.

" + } + }, + "LastEvaluatedBackupArn": { + "target": "com.amazonaws.dynamodb#BackupArn", + "traits": { + "smithy.api#documentation": "

The ARN of the backup last evaluated when the current page of results was returned,\n inclusive of the current page of results. This value may be specified as the\n ExclusiveStartBackupArn of a new ListBackups operation in\n order to fetch the next page of results.

\n

If LastEvaluatedBackupArn is empty, then the last page of results has\n been processed and there are no more results to be retrieved.

\n

If LastEvaluatedBackupArn is not empty, this may or may not indicate\n that there is more data to be returned. All results are guaranteed to have been returned\n if and only if no value for LastEvaluatedBackupArn is returned.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.dynamodb#ListBulkOperations": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#ListBulkOperationsInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#ListBulkOperationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Lists bulk operations that started within the past 90 days for the current Amazon Web Services account and Amazon Web Services Region, with the most recent operations\n first. Results are paginated. Use the NextToken parameter to retrieve\n additional results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "BulkOperationsSummaryList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.dynamodb#ListBulkOperationsInput": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.dynamodb#ListBulkOperationsMaxLimit", "traits": { - "smithy.api#documentation": "

\n LastEvaluatedBackupArn is the Amazon Resource Name (ARN) of the backup last\n evaluated when the current page of results was returned, inclusive of the current page\n of results. This value may be specified as the ExclusiveStartBackupArn of a\n new ListBackups operation in order to fetch the next page of results.\n

" + "smithy.api#documentation": "

The maximum number of bulk operation summaries to return in one page. If you don't\n specify a value, DynamoDB uses 10.

" } }, - "BackupType": { - "target": "com.amazonaws.dynamodb#BackupTypeFilter", + "NextToken": { + "target": "com.amazonaws.dynamodb#BulkOperationNextToken", "traits": { - "smithy.api#documentation": "

The backups from the table specified by BackupType are listed.

\n

Where BackupType can be:

\n
    \n
  • \n

    \n USER - On-demand backup created by you. (The default setting if no\n other backup types are specified.)

    \n
  • \n
  • \n

    \n SYSTEM - On-demand backup automatically created by DynamoDB.

    \n
  • \n
  • \n

    \n ALL - All types of on-demand backups (USER and SYSTEM).

    \n
  • \n
" + "smithy.api#documentation": "

An optional string that, if supplied, must be copied from the output of a previous\n call to ListBulkOperations. When provided in this manner, the API fetches\n the next page of results.

" } } }, @@ -24565,19 +21445,28 @@ "smithy.api#input": {} } }, - "com.amazonaws.dynamodb#ListBackupsOutput": { + "com.amazonaws.dynamodb#ListBulkOperationsMaxLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.dynamodb#ListBulkOperationsOutput": { "type": "structure", "members": { - "BackupSummaries": { - "target": "com.amazonaws.dynamodb#BackupSummaries", + "BulkOperationsSummaryList": { + "target": "com.amazonaws.dynamodb#BulkOperationsSummaryList", "traits": { - "smithy.api#documentation": "

List of BackupSummary objects.

" + "smithy.api#documentation": "

A list of bulk operation summaries for the current Amazon Web Services account and\n Amazon Web Services Region.

" } }, - "LastEvaluatedBackupArn": { - "target": "com.amazonaws.dynamodb#BackupArn", + "NextToken": { + "target": "com.amazonaws.dynamodb#BulkOperationNextToken", "traits": { - "smithy.api#documentation": "

The ARN of the backup last evaluated when the current page of results was returned,\n inclusive of the current page of results. This value may be specified as the\n ExclusiveStartBackupArn of a new ListBackups operation in\n order to fetch the next page of results.

\n

If LastEvaluatedBackupArn is empty, then the last page of results has\n been processed and there are no more results to be retrieved.

\n

If LastEvaluatedBackupArn is not empty, this may or may not indicate\n that there is more data to be returned. All results are guaranteed to have been returned\n if and only if no value for LastEvaluatedBackupArn is returned.

" + "smithy.api#documentation": "

If this value is returned, there are additional results to be displayed. To retrieve\n them, call ListBulkOperations again, with NextToken set to this\n value.

" } } }, @@ -25310,6 +22199,74 @@ "smithy.api#documentation": "

Overrides the on-demand throughput settings for this replica table. If you don't\n specify a value for this parameter, it uses the source table's on-demand throughput\n settings.

" } }, + "com.amazonaws.dynamodb#OutputS3Configuration": { + "type": "structure", + "members": { + "S3BucketOwner": { + "target": "com.amazonaws.dynamodb#S3BucketOwner", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the output bucket owner. If you omit this value,\n DynamoDB uses the Amazon Web Services account ID of the requester.

\n \n

\n S3BucketOwner is required when the bucket is owned by another Amazon Web Services account.

\n
" + } + }, + "S3Bucket": { + "target": "com.amazonaws.dynamodb#S3Bucket", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket where DynamoDB writes output\n records.

" + } + }, + "S3KeyPrefix": { + "target": "com.amazonaws.dynamodb#S3Prefix", + "traits": { + "smithy.api#documentation": "

An optional key prefix under which DynamoDB writes the output records.

" + } + }, + "S3SseAlgorithm": { + "target": "com.amazonaws.dynamodb#S3SseAlgorithm", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm for the output objects. Valid values are\n AES256 and KMS. If you don't specify a value, Amazon S3 applies the destination bucket's default encryption settings.

" + } + }, + "S3SseKmsKeyId": { + "target": "com.amazonaws.dynamodb#S3SseKmsKeyId", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key that encrypts the output objects. Specify\n this value when S3SseAlgorithm is KMS. Don't specify it when the\n algorithm is AES256.

" + } + }, + "OutputType": { + "target": "com.amazonaws.dynamodb#OutputTypeList", + "traits": { + "smithy.api#documentation": "

The following values describe the types of output that DynamoDB writes for\n individual input items. Include one or both values.

\n
\n
\n ERROR\n
\n
\n

Reports input records or input objects that DynamoDB couldn't\n process. This includes malformed input and item validation failures, such as\n a missing or incorrectly typed primary key attribute or an item that exceeds\n a DynamoDB limit.

\n
\n
\n CONDITION_CHECK_FAILURE\n
\n
\n

Reports the attempted item and, when present, the existing item for a\n write whose condition expression evaluates to false.

\n
\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the Amazon S3 location, encryption settings, and output types for a\n bulk operation. The S3Bucket and OutputType fields are\n required.

" + } + }, + "com.amazonaws.dynamodb#OutputTypeEnum": { + "type": "enum", + "members": { + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERROR" + } + }, + "CONDITION_CHECK_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONDITION_CHECK_FAILURE" + } + } + } + }, + "com.amazonaws.dynamodb#OutputTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.dynamodb#OutputTypeEnum" + } + }, "com.amazonaws.dynamodb#ParameterizedStatement": { "type": "structure", "members": { @@ -25515,6 +22472,14 @@ } } }, + "com.amazonaws.dynamodb#ProcessedInputBytes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.dynamodb#ProcessedItemCount": { "type": "long", "traits": { @@ -26915,10 +23880,16 @@ "traits": { "smithy.api#documentation": "

The parameters required for deleting a replica for the table.

" } + }, + "Disassociate": { + "target": "com.amazonaws.dynamodb#DisassociateReplicationGroupMemberAction", + "traits": { + "smithy.api#documentation": "

The parameters for disassociating the local replica from the global table and\n retaining it as a standalone regional table.

" + } } }, "traits": { - "smithy.api#documentation": "

Represents one of the following:

\n
    \n
  • \n

    A new replica to be added to an existing regional table or global table. This\n request invokes the CreateTableReplica action in the destination\n Region.

    \n
  • \n
  • \n

    New parameters for an existing replica. This request invokes the\n UpdateTable action in the destination Region.

    \n
  • \n
  • \n

    An existing replica to be deleted. The request invokes the\n DeleteTableReplica action in the destination Region, deleting\n the replica and all if its items in the destination Region.

    \n
  • \n
\n \n

When you manually remove a table or global table replica, you do not automatically\n remove any associated scalable targets, scaling policies, or CloudWatch\n alarms.

\n
" + "smithy.api#documentation": "

Represents one of the following:

\n
    \n
  • \n

    A new replica to be added to an existing regional table or global table. This\n request invokes the CreateTableReplica action in the destination\n Region.

    \n
  • \n
  • \n

    New parameters for an existing replica. This request invokes the\n UpdateTable action in the destination Region.

    \n
  • \n
  • \n

    An existing replica to be deleted. The request invokes the\n DeleteTableReplica action in the destination Region, deleting\n the replica and all if its items in the destination Region.

    \n
  • \n
  • \n

    The local replica to be disassociated from a global table and retained as\n a standalone regional table.

    \n
  • \n
\n

Each ReplicationGroupUpdate contains exactly one action. A\n Disassociate action must be the only replica update in the request;\n including other updates causes the request to fail.

\n \n

When you manually remove a table or global table replica, you do not automatically\n remove any associated scalable targets, scaling policies, or CloudWatch\n alarms.

\n
" } }, "com.amazonaws.dynamodb#ReplicationGroupUpdateList": { @@ -28095,7 +25066,7 @@ "SearchConditionExpression": { "target": "com.amazonaws.dynamodb#String", "traits": { - "smithy.api#documentation": "

A condition expression used to filter the vector search results. The expression can\n reference attributes defined in the vector index search schema, including\n HASH and INLINE_FILTER key elements.

\n

Only the equality operator (=) is supported for HASH\n attributes. Comparison and range operators are supported for\n INLINE_FILTER attributes. Only top-level attributes from the search\n schema can be referenced.

" + "smithy.api#documentation": "

A condition expression used to filter the vector search results. The expression can\n reference attributes defined in the vector index search schema, including\n HASH and INLINE_FILTER key elements.

\n

The HASH and INLINE_FILTER attributes support only\n the equality operator (=). You can reference only top-level attributes\n from the search schema.

" } }, "TopK": { @@ -28130,6 +25101,15 @@ "smithy.api#output": {} } }, + "com.amazonaws.dynamodb#SecondaryIndexesBulkBytesMap": { + "type": "map", + "key": { + "target": "com.amazonaws.dynamodb#IndexName" + }, + "value": { + "target": "com.amazonaws.dynamodb#BulkOperationBytes" + } + }, "com.amazonaws.dynamodb#SecondaryIndexesCapacityMap": { "type": "map", "key": { @@ -28282,6 +25262,104 @@ "smithy.api#documentation": "

Contains the details of the features enabled on the table when the backup was created.\n For example, LSIs, GSIs, streams, TTL.

" } }, + "com.amazonaws.dynamodb#StartBulkPutItems": { + "type": "operation", + "input": { + "target": "com.amazonaws.dynamodb#StartBulkPutItemsInput" + }, + "output": { + "target": "com.amazonaws.dynamodb#StartBulkPutItemsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.dynamodb#IdempotentParameterMismatchException" + }, + { + "target": "com.amazonaws.dynamodb#InvalidEndpointException" + }, + { + "target": "com.amazonaws.dynamodb#LimitExceededException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceInUseException" + }, + { + "target": "com.amazonaws.dynamodb#ResourceNotFoundException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": false + }, + "smithy.api#documentation": "

Starts an asynchronous bulk operation that reads items from Amazon S3 and\n writes them to an existing DynamoDB table, so you can efficiently load or\n migrate large datasets.

" + } + }, + "com.amazonaws.dynamodb#StartBulkPutItemsInput": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.dynamodb#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that ensures the bulk operation starts no more\n than one time. During the 8 hours after the initial request, repeated requests that use\n the same token and parameters return the same bulk operation. If a request reuses the\n token with different parameters, DynamoDB returns an\n IdempotentParameterMismatchException. If you omit the token, an Amazon Web Services SDK automatically generates one.

", + "smithy.api#idempotencyToken": {} + } + }, + "InputS3Configuration": { + "target": "com.amazonaws.dynamodb#InputS3Configuration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 location, data format, and compression settings for the input\n objects.

", + "smithy.api#required": {} + } + }, + "OutputS3Configuration": { + "target": "com.amazonaws.dynamodb#OutputS3Configuration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 location, encryption settings, and output types for the bulk\n operation.

", + "smithy.api#required": {} + } + }, + "TableName": { + "target": "com.amazonaws.dynamodb#TableArn", + "traits": { + "smithy.api#documentation": "

The name or ARN of the existing DynamoDB table that receives the\n items.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceArn" + } + } + }, + "MaxWriteRequestUnits": { + "target": "com.amazonaws.dynamodb#BulkOperationMaxWriteRequestUnits", + "traits": { + "smithy.api#documentation": "

The maximum rate, in write request units per second, at which the bulk operation\n attempts to write. The value must be at least 1,024. With this setting, you limit only\n the bulk operation; the table's provisioned or on-demand capacity settings don't\n change. The actual write rate can be lower.

" + } + }, + "PerformanceTier": { + "target": "com.amazonaws.dynamodb#BulkOperationPerformanceTier", + "traits": { + "smithy.api#documentation": "

The performance tier for the bulk operation. Valid values are\n STANDARD and ACCELERATED. If you don't specify a value,\n the operation uses STANDARD.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.dynamodb#StartBulkPutItemsOutput": { + "type": "structure", + "members": { + "BulkOperationDescription": { + "target": "com.amazonaws.dynamodb#BulkOperationDescription", + "traits": { + "smithy.api#documentation": "

Contains detailed information about a bulk operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.dynamodb#StreamArn": { "type": "string", "traits": { @@ -28607,7 +25685,7 @@ "Replicas": { "target": "com.amazonaws.dynamodb#ReplicaDescriptionList", "traits": { - "smithy.api#documentation": "

Represents replicas of the table.

" + "smithy.api#documentation": "

Represents replicas of the table.

\n

After a successful disassociation, this list is absent or empty. To confirm\n disassociation, also verify that TableStatus is\n ACTIVE.

" } }, "GlobalTableWitnesses": { @@ -28652,6 +25730,12 @@ "smithy.api#documentation": "

Indicates whether deletion protection is enabled (true) or disabled (false) on the\n table.

" } }, + "DisassociationProtectionEnabled": { + "target": "com.amazonaws.dynamodb#DisassociationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether disassociation protection is enabled (true) or\n disabled (false) for the local global table replica. Protection is\n enabled by default.

" + } + }, "OnDemandThroughput": { "target": "com.amazonaws.dynamodb#OnDemandThroughput", "traits": { @@ -29061,6 +26145,14 @@ } } }, + "com.amazonaws.dynamodb#TotalInputBytes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.dynamodb#TransactGetItem": { "type": "structure", "members": { @@ -30234,7 +27326,108 @@ "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB\n Streams settings for a given table.

\n

You can only perform one of the following operations at once:

\n
    \n
  • \n

    Modify the provisioned throughput settings of the table.

    \n
  • \n
  • \n

    Remove a global secondary index from the table.

    \n
  • \n
  • \n

    Create a new global secondary index on the table. After the index begins\n backfilling, you can use UpdateTable to perform other\n operations.

    \n
  • \n
\n

\n UpdateTable is an asynchronous operation; while it's executing, the table\n status changes from ACTIVE to UPDATING. While it's\n UPDATING, you can't issue another UpdateTable request.\n When the table returns to the ACTIVE state, the UpdateTable\n operation is complete.

" + "smithy.api#documentation": "

Modifies the provisioned throughput settings, global secondary indexes, DynamoDB\n Streams settings, or global table replica settings for a given table.

\n

You can only perform one of the following operations at once:

\n
    \n
  • \n

    Modify the provisioned throughput settings of the table.

    \n
  • \n
  • \n

    Remove a global secondary index from the table.

    \n
  • \n
  • \n

    Create a new global secondary index on the table. After the index begins\n backfilling, you can use UpdateTable to perform other\n operations.

    \n
  • \n
  • \n

    Enable or disable disassociation protection for the local global table\n replica.

    \n
  • \n
  • \n

    Disassociate the local global table replica and keep it as a standalone\n regional table. The Disassociate action must be the only\n replica update in the request. If the request includes any other update,\n UpdateTable fails with a ValidationException and\n the disassociation does not start.

    \n
  • \n
\n

\n UpdateTable is an asynchronous operation; while it's executing, the table\n status changes from ACTIVE to UPDATING. While it's\n UPDATING, you can't issue another UpdateTable request.\n Use DescribeTable to monitor the table's status.

\n

To use this operation to disassociate a local replica, you must have the\n dynamodb:UpdateTable and dynamodb:DisassociateTableReplica\n IAM permissions on the local replica. Send disassociation and disassociation\n protection requests to the replica's Region using credentials for the account that\n owns the replica. For prerequisites and the procedure, see\n Disassociating a global table replica in the Amazon DynamoDB\n Developer Guide.

\n

To confirm successful disassociation, call DescribeTable in the\n replica's Region and verify that TableStatus is ACTIVE\n and Replicas is absent or empty. If TableStatus returns to\n ACTIVE but the response still includes a Replicas list, the\n disassociation did not complete. Check ReplicaStatus for a\n replication-permission or encryption-access problem, resolve it, and retry.

", + "smithy.api#examples": [ + { + "title": "To modify a table's provisioned throughput", + "documentation": "This example increases the provisioned read and write capacity on the Music table.", + "input": { + "ProvisionedThroughput": { + "ReadCapacityUnits": 10, + "WriteCapacityUnits": 10 + }, + "TableName": "MusicCollection" + }, + "output": { + "TableDescription": { + "AttributeDefinitions": [ + { + "AttributeName": "Artist", + "AttributeType": "S" + }, + { + "AttributeName": "SongTitle", + "AttributeType": "S" + } + ], + "ProvisionedThroughput": { + "NumberOfDecreasesToday": 1, + "WriteCapacityUnits": 1, + "LastIncreaseDateTime": 1421874759.194, + "ReadCapacityUnits": 1 + }, + "TableSizeBytes": 0, + "TableName": "MusicCollection", + "TableStatus": "UPDATING", + "KeySchema": [ + { + "KeyType": "HASH", + "AttributeName": "Artist" + }, + { + "KeyType": "RANGE", + "AttributeName": "SongTitle" + } + ], + "ItemCount": 0, + "CreationDateTime": 1421866952.062 + } + } + }, + { + "title": "To disable disassociation protection on a local replica", + "documentation": "This example disables disassociation protection on the MusicCollection replica in us-west-2. You must send the request to us-west-2 using credentials for the account that owns the replica. Your table must be a global table that uses Version 2019.11.21 and multi-Region eventual consistency (MREC). You cannot combine this change with any other change in the same UpdateTable request. Before requesting disassociation, use DescribeTable to confirm that DisassociationProtectionEnabled is false and TableStatus is ACTIVE.", + "input": { + "TableName": "MusicCollection", + "DisassociationProtectionEnabled": false + }, + "output": { + "TableDescription": { + "TableName": "MusicCollection", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableStatus": "ACTIVE", + "GlobalTableVersion": "2019.11.21", + "DisassociationProtectionEnabled": false, + "Replicas": [ + { + "RegionName": "us-east-1", + "ReplicaStatus": "ACTIVE" + } + ] + } + } + }, + { + "title": "To disassociate a local global table replica", + "documentation": "This example disassociates the MusicCollection replica in us-west-2. You must first disable protection in a separate UpdateTable request. You must send the request to us-west-2 using credentials for account 123456789012, the account that owns the replica. This request works for global tables that use Version 2019.11.21 and multi-Region eventual consistency (MREC). Replicas can belong to one account or multiple accounts. You must specify WAIT_FOR_REPLICATION. The response shows that DynamoDB accepted the asynchronous request. To confirm completion, use DescribeTable in us-west-2. Verify that TableStatus is ACTIVE and Replicas is absent or empty. ACTIVE alone does not confirm successful disassociation.", + "input": { + "TableName": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "ReplicaUpdates": [ + { + "Disassociate": { + "RegionName": "us-west-2", + "DisassociationMode": "WAIT_FOR_REPLICATION" + } + } + ] + }, + "output": { + "TableDescription": { + "TableName": "MusicCollection", + "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", + "TableStatus": "UPDATING", + "GlobalTableVersion": "2019.11.21", + "DisassociationProtectionEnabled": false, + "Replicas": [ + { + "RegionName": "us-east-1", + "ReplicaStatus": "ACTIVE" + } + ] + } + } + } + ] } }, "com.amazonaws.dynamodb#UpdateTableInput": { @@ -30289,7 +27482,7 @@ "ReplicaUpdates": { "target": "com.amazonaws.dynamodb#ReplicationGroupUpdateList", "traits": { - "smithy.api#documentation": "

A list of replica update actions (create, delete, or update) for the table.

" + "smithy.api#documentation": "

A list of replica update actions (create, delete, update, or disassociate) for the\n table.

" } }, "TableClass": { @@ -30334,6 +27527,12 @@ "smithy.api#documentation": "

Controls the settings replication mode for a global table replica. This attribute can be defined\n using UpdateTable operation only on a regional table with values:

\n
    \n
  • \n

    \n ENABLED: Defines settings replication on a regional table to be used as a\n source table for creating Multi-Account Global Table.

    \n
  • \n
  • \n

    \n DISABLED: Remove settings replication on a regional table. Settings replication needs\n to be defined to ENABLED again in order to create a Multi-Account Global Table using this table.\n

    \n
  • \n
" } }, + "DisassociationProtectionEnabled": { + "target": "com.amazonaws.dynamodb#DisassociationProtectionEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether disassociation protection is enabled (true) or\n disabled (false) for the local replica of a multi-Region eventual\n consistency (MREC) global table using Version 2019.11.21.

\n

Disassociation protection is enabled by default. If you omit this parameter, the\n existing setting is unchanged. This setting is independent of\n DeletionProtectionEnabled.

\n

You can't combine this change with any other change in the same\n UpdateTable request.

" + } + }, "VectorIndexUpdates": { "target": "com.amazonaws.dynamodb#VectorIndexUpdateList", "traits": { @@ -30784,6 +27983,15 @@ "target": "com.amazonaws.dynamodb#VectorIndexInfo" } }, + "com.amazonaws.dynamodb#VectorIndexesBulkVectorBytesMap": { + "type": "map", + "key": { + "target": "com.amazonaws.dynamodb#IndexName" + }, + "value": { + "target": "com.amazonaws.dynamodb#BulkOperationVectorBytes" + } + }, "com.amazonaws.dynamodb#VectorIndexesCapacityMap": { "type": "map", "key": { diff --git a/codegen/aws-models/ec2.json b/codegen/aws-models/ec2.json new file mode 100644 index 00000000..a92c0aaa --- /dev/null +++ b/codegen/aws-models/ec2.json @@ -0,0 +1,148408 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.ec2#AcceleratorCount": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum number of accelerators. If this parameter is not specified, there is no minimum\n limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum number of accelerators. If this parameter is not specified, there is no\n maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips)\n on an instance.

" + } + }, + "com.amazonaws.ec2#AcceleratorCountRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum number of accelerators. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of accelerators. To specify no maximum limit, omit this\n parameter. To exclude accelerator-enabled instance types, set Max to\n 0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips)\n on an instance. To exclude accelerator-enabled instance types, set Max to\n 0.

" + } + }, + "com.amazonaws.ec2#AcceleratorManufacturer": { + "type": "enum", + "members": { + "AMAZON_WEB_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-web-services" + } + }, + "AMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amd" + } + }, + "NVIDIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nvidia" + } + }, + "XILINX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "xilinx" + } + }, + "HABANA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "habana" + } + } + } + }, + "com.amazonaws.ec2#AcceleratorManufacturerSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AcceleratorManufacturer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AcceleratorName": { + "type": "enum", + "members": { + "A100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a100" + } + }, + "INFERENTIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inferentia" + } + }, + "K520": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "k520" + } + }, + "K80": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "k80" + } + }, + "M60": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m60" + } + }, + "RADEON_PRO_V520": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "radeon-pro-v520" + } + }, + "T4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4" + } + }, + "VU9P": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vu9p" + } + }, + "V100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v100" + } + }, + "A10G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a10g" + } + }, + "H100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h100" + } + }, + "T4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g" + } + }, + "L40S": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l40s" + } + }, + "L4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l4" + } + }, + "GAUDI_HL_205": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gaudi-hl-205" + } + }, + "INFERENTIA2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inferentia2" + } + }, + "TRAINIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trainium" + } + }, + "TRAINIUM2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trainium2" + } + }, + "U30": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u30" + } + } + } + }, + "com.amazonaws.ec2#AcceleratorNameSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AcceleratorName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AcceleratorTotalMemoryMiB": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum amount of accelerator memory, in MiB. If this parameter is not specified,\n there is no minimum limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum amount of accelerator memory, in MiB. If this parameter is not specified,\n there is no maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total accelerator memory, in MiB.

" + } + }, + "com.amazonaws.ec2#AcceleratorTotalMemoryMiBRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total accelerator memory, in MiB.

" + } + }, + "com.amazonaws.ec2#AcceleratorType": { + "type": "enum", + "members": { + "GPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gpu" + } + }, + "FPGA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fpga" + } + }, + "INFERENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inference" + } + }, + "MEDIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "media" + } + } + } + }, + "com.amazonaws.ec2#AcceleratorTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AcceleratorType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AcceptAddressTransfer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptAddressTransferRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptAddressTransferResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts an Elastic IP address transfer. For more information, see Accept a transferred Elastic IP address in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AcceptAddressTransferRequest": { + "type": "structure", + "members": { + "Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Elastic IP address you are accepting for transfer.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptAddressTransferResult": { + "type": "structure", + "members": { + "AddressTransfer": { + "target": "com.amazonaws.ec2#AddressTransfer", + "traits": { + "aws.protocols#ec2QueryName": "AddressTransfer", + "smithy.api#documentation": "

An Elastic IP address transfer.

", + "smithy.api#xmlName": "addressTransfer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnership": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts a request to assign billing of the available capacity of a shared Capacity\n\t\t\tReservation to your account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" + } + }, + "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation for which to accept the request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnershipResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuote": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call.

" + } + }, + "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ReservedInstanceIds": { + "target": "com.amazonaws.ec2#ReservedInstanceIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved\n Instance of the same or higher value.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ReservedInstanceId" + } + }, + "TargetConfigurations": { + "target": "com.amazonaws.ec2#TargetConfigurationRequestSet", + "traits": { + "smithy.api#documentation": "

The configuration of the target Convertible Reserved Instance to exchange for your current\n Convertible Reserved Instances.

", + "smithy.api#xmlName": "TargetConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for accepting the quote.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuoteResult": { + "type": "structure", + "members": { + "ExchangeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExchangeId", + "smithy.api#documentation": "

The ID of the successful exchange.

", + "smithy.api#xmlName": "exchangeId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The result of the exchange and whether it was successful.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts a Transit Gateway attachment request for a Client VPN endpoint. The Transit Gateway owner must accept the attachment request before the Client VPN endpoint can route traffic through the Transit Gateway.

" + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Transit Gateway attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayClientVpnAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayClientVpnAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayClientVpnAttachment", + "smithy.api#documentation": "

Information about the Transit Gateway Client VPN attachment.

", + "smithy.api#xmlName": "transitGatewayClientVpnAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts a request to associate subnets with a transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway attachment.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets to associate with the transit gateway multicast domain.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociationsResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociations", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Information about the multicast domain associations.

", + "smithy.api#xmlName": "associations" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts a transit gateway peering attachment request. The peering attachment must be\n in the pendingAcceptance state.

" + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayPeeringAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPeeringAttachment", + "smithy.api#documentation": "

The transit gateway peering attachment.

", + "smithy.api#xmlName": "transitGatewayPeeringAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts a request to attach a VPC to a transit gateway.

\n

The VPC attachment must be in the pendingAcceptance state.\n Use DescribeTransitGatewayVpcAttachments to view your pending VPC attachment requests.\n Use RejectTransitGatewayVpcAttachment to reject a VPC attachment request.

" + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachment", + "smithy.api#documentation": "

The VPC attachment.

", + "smithy.api#xmlName": "transitGatewayVpcAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptVpcEndpointConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptVpcEndpointConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptVpcEndpointConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Accepts connection requests to your VPC endpoint service.

" + } + }, + "com.amazonaws.ec2#AcceptVpcEndpointConnectionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC endpoint service.

", + "smithy.api#required": {} + } + }, + "VpcEndpointIds": { + "target": "com.amazonaws.ec2#VpcEndpointIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the interface VPC endpoints.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "VpcEndpointId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptVpcEndpointConnectionsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the interface endpoints that were not accepted, if\n applicable.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AcceptVpcPeeringConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AcceptVpcPeeringConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AcceptVpcPeeringConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must\n be in the pending-acceptance state, and you must be the owner of the peer VPC.\n Use DescribeVpcPeeringConnections to view your outstanding VPC\n peering connection requests.

\n

For an inter-Region VPC peering connection request, you must accept the VPC peering\n connection in the Region of the accepter VPC.

" + } + }, + "com.amazonaws.ec2#AcceptVpcPeeringConnectionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionIdWithResolver", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC peering connection. You must specify this parameter in the\n\t\t\trequest.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AcceptVpcPeeringConnectionResult": { + "type": "structure", + "members": { + "VpcPeeringConnection": { + "target": "com.amazonaws.ec2#VpcPeeringConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnection", + "smithy.api#documentation": "

Information about the VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AccessScopeAnalysisFinding": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisId", + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisId" + } + }, + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeId", + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeId" + } + }, + "FindingId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FindingId", + "smithy.api#documentation": "

The ID of the finding.

", + "smithy.api#xmlName": "findingId" + } + }, + "FindingComponents": { + "target": "com.amazonaws.ec2#PathComponentList", + "traits": { + "aws.protocols#ec2QueryName": "FindingComponentSet", + "smithy.api#documentation": "

The finding components.

", + "smithy.api#xmlName": "findingComponentSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a finding for a Network Access Scope.

" + } + }, + "com.amazonaws.ec2#AccessScopeAnalysisFindingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccessScopeAnalysisFinding", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AccessScopePath": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#PathStatement", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

The source.

", + "smithy.api#xmlName": "source" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#PathStatement", + "traits": { + "aws.protocols#ec2QueryName": "Destination", + "smithy.api#documentation": "

The destination.

", + "smithy.api#xmlName": "destination" + } + }, + "ThroughResources": { + "target": "com.amazonaws.ec2#ThroughResourcesStatementList", + "traits": { + "aws.protocols#ec2QueryName": "ThroughResourceSet", + "smithy.api#documentation": "

The through resources.

", + "smithy.api#xmlName": "throughResourceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path.

" + } + }, + "com.amazonaws.ec2#AccessScopePathList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccessScopePath", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AccessScopePathListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccessScopePathRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AccessScopePathRequest": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#PathStatementRequest", + "traits": { + "smithy.api#documentation": "

The source.

" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#PathStatementRequest", + "traits": { + "smithy.api#documentation": "

The destination.

" + } + }, + "ThroughResources": { + "target": "com.amazonaws.ec2#ThroughResourcesStatementRequestList", + "traits": { + "smithy.api#documentation": "

The through resources.

", + "smithy.api#xmlName": "ThroughResource" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path.

" + } + }, + "com.amazonaws.ec2#AccountAttribute": { + "type": "structure", + "members": { + "AttributeName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttributeName", + "smithy.api#documentation": "

The name of the account attribute.

", + "smithy.api#xmlName": "attributeName" + } + }, + "AttributeValues": { + "target": "com.amazonaws.ec2#AccountAttributeValueList", + "traits": { + "aws.protocols#ec2QueryName": "AttributeValueSet", + "smithy.api#documentation": "

The values for the account attribute.

", + "smithy.api#xmlName": "attributeValueSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an account attribute.

" + } + }, + "com.amazonaws.ec2#AccountAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccountAttribute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AccountAttributeName": { + "type": "enum", + "members": { + "supported_platforms": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported-platforms" + } + }, + "default_vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default-vpc" + } + } + } + }, + "com.amazonaws.ec2#AccountAttributeNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccountAttributeName", + "traits": { + "smithy.api#xmlName": "attributeName" + } + } + }, + "com.amazonaws.ec2#AccountAttributeValue": { + "type": "structure", + "members": { + "AttributeValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttributeValue", + "smithy.api#documentation": "

The value of the attribute.

", + "smithy.api#xmlName": "attributeValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a value of an account attribute.

" + } + }, + "com.amazonaws.ec2#AccountAttributeValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AccountAttributeValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AccountID": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.ec2#AccountVpcEncryptionControl": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControlState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "state" + } + }, + "Mode": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControlMode", + "traits": { + "aws.protocols#ec2QueryName": "Mode", + "smithy.api#documentation": "

The encryption mode for the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "mode" + } + }, + "Exclusions": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControlExclusions", + "traits": { + "aws.protocols#ec2QueryName": "Exclusions", + "smithy.api#documentation": "

Information about the traffic exclusions for the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "exclusions" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "managedBy" + } + }, + "LastUpdateTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdateTimestamp", + "smithy.api#documentation": "

The date and time when the account-level VPC Encryption Control configuration was last updated.

", + "smithy.api#xmlName": "lastUpdateTimestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the account-level VPC Encryption Control configuration, including its mode, state, and exclusions.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AccountVpcEncryptionControlExclusions": { + "type": "structure", + "members": { + "InternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "InternetGateway", + "smithy.api#documentation": "

The exclusion configuration for internet gateway resource.

", + "smithy.api#xmlName": "internetGateway" + } + }, + "EgressOnlyInternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGateway", + "smithy.api#documentation": "

The exclusion configuration for egress-only internet gateway resource.

", + "smithy.api#xmlName": "egressOnlyInternetGateway" + } + }, + "NatGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "NatGateway", + "smithy.api#documentation": "

The exclusion configuration for NAT gateway resource.

", + "smithy.api#xmlName": "natGateway" + } + }, + "VirtualPrivateGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "VirtualPrivateGateway", + "smithy.api#documentation": "

The exclusion configuration for virtual private gateway resource.

", + "smithy.api#xmlName": "virtualPrivateGateway" + } + }, + "VpcPeering": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeering", + "smithy.api#documentation": "

The exclusion configuration for VPC peering connection resource.

", + "smithy.api#xmlName": "vpcPeering" + } + }, + "Lambda": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "Lambda", + "smithy.api#documentation": "

The exclusion configuration for Lambda service.

", + "smithy.api#xmlName": "lambda" + } + }, + "VpcLattice": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "VpcLattice", + "smithy.api#documentation": "

The exclusion configuration for VPC Lattice service.

", + "smithy.api#xmlName": "vpcLattice" + } + }, + "ElasticFileSystem": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "ElasticFileSystem", + "smithy.api#documentation": "

The exclusion configuration for Elastic File System service.

", + "smithy.api#xmlName": "elasticFileSystem" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the exclusion configurations for the various resource types in the account-level VPC Encryption Control configuration.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AccountVpcEncryptionControlMode": { + "type": "enum", + "members": { + "unmanaged": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unmanaged" + } + }, + "attempt_monitor": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attempt-monitor" + } + }, + "attempt_enforce": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attempt-enforce" + } + } + } + }, + "com.amazonaws.ec2#AccountVpcEncryptionControlState": { + "type": "enum", + "members": { + "default_state": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default-state" + } + }, + "transitions_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transitions-in-progress" + } + }, + "transitions_partially_successful": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transitions-partially-successful" + } + }, + "transitions_successful": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transitions-successful" + } + }, + "transitions_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transitions-failed" + } + } + } + }, + "com.amazonaws.ec2#ActiveInstance": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "SpotInstanceRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestId", + "smithy.api#documentation": "

The ID of the Spot Instance request.

", + "smithy.api#xmlName": "spotInstanceRequestId" + } + }, + "InstanceHealth": { + "target": "com.amazonaws.ec2#InstanceHealthStatus", + "traits": { + "aws.protocols#ec2QueryName": "InstanceHealth", + "smithy.api#documentation": "

The health status of the instance. If the status of either the instance status check\n or the system status check is impaired, the health status of the instance\n is unhealthy. Otherwise, the health status is healthy.

", + "smithy.api#xmlName": "instanceHealth" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a running instance in a Spot Fleet.

" + } + }, + "com.amazonaws.ec2#ActiveInstanceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ActiveInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ActiveVpnTunnelStatus": { + "type": "structure", + "members": { + "Phase1EncryptionAlgorithm": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Phase1EncryptionAlgorithm", + "smithy.api#documentation": "

The encryption algorithm negotiated in Phase 1 IKE negotiations.

", + "smithy.api#xmlName": "phase1EncryptionAlgorithm" + } + }, + "Phase2EncryptionAlgorithm": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Phase2EncryptionAlgorithm", + "smithy.api#documentation": "

The encryption algorithm negotiated in Phase 2 IKE negotiations.

", + "smithy.api#xmlName": "phase2EncryptionAlgorithm" + } + }, + "Phase1IntegrityAlgorithm": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Phase1IntegrityAlgorithm", + "smithy.api#documentation": "

The integrity algorithm negotiated in Phase 1 IKE negotiations.

", + "smithy.api#xmlName": "phase1IntegrityAlgorithm" + } + }, + "Phase2IntegrityAlgorithm": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Phase2IntegrityAlgorithm", + "smithy.api#documentation": "

The integrity algorithm negotiated in Phase 2 IKE negotiations.

", + "smithy.api#xmlName": "phase2IntegrityAlgorithm" + } + }, + "Phase1DHGroup": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Phase1DHGroup", + "smithy.api#documentation": "

The Diffie-Hellman group number being used in Phase 1 IKE negotiations.

", + "smithy.api#xmlName": "phase1DHGroup" + } + }, + "Phase2DHGroup": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Phase2DHGroup", + "smithy.api#documentation": "

The Diffie-Hellman group number being used in Phase 2 IKE negotiations.

", + "smithy.api#xmlName": "phase2DHGroup" + } + }, + "IkeVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IkeVersion", + "smithy.api#documentation": "

The version of the Internet Key Exchange (IKE) protocol being used.

", + "smithy.api#xmlName": "ikeVersion" + } + }, + "ProvisioningStatus": { + "target": "com.amazonaws.ec2#VpnTunnelProvisioningStatus", + "traits": { + "aws.protocols#ec2QueryName": "ProvisioningStatus", + "smithy.api#documentation": "

The current provisioning status of the VPN tunnel.

", + "smithy.api#xmlName": "provisioningStatus" + } + }, + "ProvisioningStatusReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ProvisioningStatusReason", + "smithy.api#documentation": "

The reason for the current provisioning status.

", + "smithy.api#xmlName": "provisioningStatusReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the current security configuration of an active VPN tunnel.

" + } + }, + "com.amazonaws.ec2#ActivityStatus": { + "type": "enum", + "members": { + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "PENDING_FULFILLMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending_fulfillment" + } + }, + "PENDING_TERMINATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending_termination" + } + }, + "FULFILLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fulfilled" + } + } + } + }, + "com.amazonaws.ec2#AddIpamOperatingRegion": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the operating Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Add an operating Region to an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#AddIpamOperatingRegionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddIpamOperatingRegion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*.

\n
    \n
  • \n

    Example 1

    \n
      \n
    • \n

      Path to a child OU: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/\n

      \n
    • \n
    • \n

      In this example, o-a1b2c3d4e5 is the organization ID, r-f6g7h8i9j0example is the root ID , ou-ghi0-awsccccc is an OU ID, and ou-jkl0-awsddddd is a child OU ID.

      \n
    • \n
    • \n

      IPAM will not manage the IP addresses in accounts in the child OU.

      \n
    • \n
    \n
  • \n
  • \n

    Example 2

    \n
      \n
    • \n

      Path where all child OUs will be part of the exclusion: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/*\n

      \n
    • \n
    • \n

      In this example, IPAM will not manage the IP addresses in accounts in the OU (ou-ghi0-awsccccc) or in accounts in any OUs that are children of the OU.

      \n
    • \n
    \n
  • \n
\n

For more information on how to construct an entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#AddPrefixListEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddPrefixListEntry" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#AddPrefixListEntry": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR block.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the entry.

\n

Constraints: Up to 255 characters in length.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An entry for a prefix list.

" + } + }, + "com.amazonaws.ec2#AddedPrincipal": { + "type": "structure", + "members": { + "PrincipalType": { + "target": "com.amazonaws.ec2#PrincipalType", + "traits": { + "aws.protocols#ec2QueryName": "PrincipalType", + "smithy.api#documentation": "

The type of principal.

", + "smithy.api#xmlName": "principalType" + } + }, + "Principal": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Principal", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal.

", + "smithy.api#xmlName": "principal" + } + }, + "ServicePermissionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServicePermissionId", + "smithy.api#documentation": "

The ID of the service permission.

", + "smithy.api#xmlName": "servicePermissionId" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#xmlName": "serviceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a principal.

" + } + }, + "com.amazonaws.ec2#AddedPrincipalSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddedPrincipal", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AdditionalDetail": { + "type": "structure", + "members": { + "AdditionalDetailType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalDetailType", + "smithy.api#documentation": "

The additional detail code.

", + "smithy.api#xmlName": "additionalDetailType" + } + }, + "Component": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Component", + "smithy.api#documentation": "

The path component.

", + "smithy.api#xmlName": "component" + } + }, + "VpcEndpointService": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointService", + "smithy.api#documentation": "

The VPC endpoint service.

", + "smithy.api#xmlName": "vpcEndpointService" + } + }, + "RuleOptions": { + "target": "com.amazonaws.ec2#RuleOptionList", + "traits": { + "aws.protocols#ec2QueryName": "RuleOptionSet", + "smithy.api#documentation": "

The rule options.

", + "smithy.api#xmlName": "ruleOptionSet" + } + }, + "RuleGroupTypePairs": { + "target": "com.amazonaws.ec2#RuleGroupTypePairList", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupTypePairSet", + "smithy.api#documentation": "

The rule group type.

", + "smithy.api#xmlName": "ruleGroupTypePairSet" + } + }, + "RuleGroupRuleOptionsPairs": { + "target": "com.amazonaws.ec2#RuleGroupRuleOptionsPairList", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupRuleOptionsPairSet", + "smithy.api#documentation": "

The rule options.

", + "smithy.api#xmlName": "ruleGroupRuleOptionsPairSet" + } + }, + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceName", + "smithy.api#documentation": "

The name of the VPC endpoint service.

", + "smithy.api#xmlName": "serviceName" + } + }, + "LoadBalancers": { + "target": "com.amazonaws.ec2#AnalysisComponentList", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerSet", + "smithy.api#documentation": "

The load balancers.

", + "smithy.api#xmlName": "loadBalancerSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an additional detail for a path analysis. For more information, see Reachability Analyzer additional detail codes.

" + } + }, + "com.amazonaws.ec2#AdditionalDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AdditionalDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AdditionalFlexibleNetworkInterfaces": { + "type": "integer" + }, + "com.amazonaws.ec2#Address": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The ID representing the allocation of the address.

", + "smithy.api#xmlName": "allocationId" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID representing the association of the address with an instance.

", + "smithy.api#xmlName": "associationId" + } + }, + "Domain": { + "target": "com.amazonaws.ec2#DomainType", + "traits": { + "aws.protocols#ec2QueryName": "Domain", + "smithy.api#documentation": "

The network (vpc).

", + "smithy.api#xmlName": "domain" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "NetworkInterfaceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the network interface.

", + "smithy.api#xmlName": "networkInterfaceOwnerId" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IP address associated with the Elastic IP address.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the Elastic IP address.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PublicIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4Pool", + "smithy.api#documentation": "

The ID of an address pool.

", + "smithy.api#xmlName": "publicIpv4Pool" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which Amazon Web Services advertises IP addresses.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "CustomerOwnedIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIp", + "smithy.api#documentation": "

The customer-owned IP address.

", + "smithy.api#xmlName": "customerOwnedIp" + } + }, + "CustomerOwnedIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIpv4Pool", + "smithy.api#documentation": "

The ID of the customer-owned address pool.

", + "smithy.api#xmlName": "customerOwnedIpv4Pool" + } + }, + "CarrierIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CarrierIp", + "smithy.api#documentation": "

The carrier IP address associated. This option is only available for network interfaces\n which reside in a subnet in a Wavelength Zone (for example an EC2 instance).

", + "smithy.api#xmlName": "carrierIp" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet where the IP address is allocated.

", + "smithy.api#xmlName": "subnetId" + } + }, + "ServiceManaged": { + "target": "com.amazonaws.ec2#ServiceManaged", + "traits": { + "aws.protocols#ec2QueryName": "ServiceManaged", + "smithy.api#documentation": "

The service that manages the elastic IP address.

\n \n

The only option supported today is alb.

\n
", + "smithy.api#xmlName": "serviceManaged" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance that the address is associated with (if any).

", + "smithy.api#xmlName": "instanceId" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The Elastic IP address.

", + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Elastic IP address, or a carrier IP address.

" + } + }, + "com.amazonaws.ec2#AddressAttribute": { + "type": "structure", + "members": { + "PublicIp": { + "target": "com.amazonaws.ec2#PublicIpAddress", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The public IP address.

", + "smithy.api#xmlName": "publicIp" + } + }, + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

[EC2-VPC] The allocation ID.

", + "smithy.api#xmlName": "allocationId" + } + }, + "PtrRecord": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PtrRecord", + "smithy.api#documentation": "

The pointer (PTR) record for the IP address.

", + "smithy.api#xmlName": "ptrRecord" + } + }, + "PtrRecordUpdate": { + "target": "com.amazonaws.ec2#PtrUpdateStatus", + "traits": { + "aws.protocols#ec2QueryName": "PtrRecordUpdate", + "smithy.api#documentation": "

The updated PTR record for the IP address.

", + "smithy.api#xmlName": "ptrRecordUpdate" + } + } + }, + "traits": { + "smithy.api#documentation": "

The attributes associated with an Elastic IP address.

" + } + }, + "com.amazonaws.ec2#AddressAttributeName": { + "type": "enum", + "members": { + "domain_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "domain-name" + } + } + } + }, + "com.amazonaws.ec2#AddressFamily": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + } + } + }, + "com.amazonaws.ec2#AddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Address", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AddressMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#AddressSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddressAttribute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AddressTransfer": { + "type": "structure", + "members": { + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The Elastic IP address being transferred.

", + "smithy.api#xmlName": "publicIp" + } + }, + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The allocation ID of an Elastic IP address.

", + "smithy.api#xmlName": "allocationId" + } + }, + "TransferAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransferAccountId", + "smithy.api#documentation": "

The ID of the account that you want to transfer the Elastic IP address to.

", + "smithy.api#xmlName": "transferAccountId" + } + }, + "TransferOfferExpirationTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "TransferOfferExpirationTimestamp", + "smithy.api#documentation": "

The timestamp when the Elastic IP address transfer expired. When the source account starts\n the transfer, the transfer account has seven hours to allocate the Elastic IP address to\n complete the transfer, or the Elastic IP address will return to its original owner.

", + "smithy.api#xmlName": "transferOfferExpirationTimestamp" + } + }, + "TransferOfferAcceptedTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "TransferOfferAcceptedTimestamp", + "smithy.api#documentation": "

The timestamp when the Elastic IP address transfer was accepted.

", + "smithy.api#xmlName": "transferOfferAcceptedTimestamp" + } + }, + "AddressTransferStatus": { + "target": "com.amazonaws.ec2#AddressTransferStatus", + "traits": { + "aws.protocols#ec2QueryName": "AddressTransferStatus", + "smithy.api#documentation": "

The Elastic IP address transfer status.

", + "smithy.api#xmlName": "addressTransferStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on the Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AddressTransferList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AddressTransfer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AddressTransferStatus": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "accepted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accepted" + } + } + } + }, + "com.amazonaws.ec2#AdvertiseByoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AdvertiseByoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AdvertiseByoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Advertises an IPv4 or IPv6 address range that is provisioned for use with your Amazon Web Services resources through \n bring your own IP addresses (BYOIP).

\n

You can perform this operation at most once every 10 seconds, even if you specify different \n address ranges each time.

\n

We recommend that you stop advertising the BYOIP CIDR from other locations when you advertise\n it from Amazon Web Services. To minimize down time, you can configure your Amazon Web Services resources to use an address from a\n BYOIP CIDR before it is advertised, and then simultaneously stop advertising it from the current \n location and start advertising it through Amazon Web Services.

\n

It can take a few minutes before traffic to the specified addresses starts routing to Amazon Web Services\n because of BGP propagation delays.

" + } + }, + "com.amazonaws.ec2#AdvertiseByoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The address range, in CIDR notation. This must be the exact range that you provisioned. \n You can't advertise only a portion of the provisioned range.

", + "smithy.api#required": {} + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The public 2-byte or 4-byte ASN that you want to advertise.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

If you have Local Zones enabled, you can choose a network border group for Local Zones when you provision and advertise a BYOIPv4 CIDR. Choose the network border group carefully as the EIP and the Amazon Web Services resource it is associated with must reside in the same network border group.

\n

You can provision BYOIP address ranges to and advertise them in the following Local Zone network border groups:

\n
    \n
  • \n

    us-east-1-dfw-2

    \n
  • \n
  • \n

    us-west-2-lax-1

    \n
  • \n
  • \n

    us-west-2-phx-2

    \n
  • \n
\n \n

You cannot provision or advertise BYOIPv6 address ranges in Local Zones at this time.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AdvertiseByoipCidrResult": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidr", + "smithy.api#documentation": "

Information about the address range.

", + "smithy.api#xmlName": "byoipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#Affinity": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "host": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + } + } + }, + "com.amazonaws.ec2#AggregationStatusEnum": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ec2#AllocateAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AllocateAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AllocateAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Allocates an Elastic IP address to your Amazon Web Services account. After you allocate the Elastic IP address you can associate \n it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address \n pool and can be allocated to a different Amazon Web Services account.

\n

You can allocate an Elastic IP address from one of the following address pools:

\n
    \n
  • \n

    Amazon's pool of IPv4 addresses

    \n
  • \n
  • \n

    Public IPv4 address range that you own and bring to your Amazon Web Services account using \n Bring Your Own IP Addresses (BYOIP)\n

    \n
  • \n
  • \n

    An IPv4 IPAM pool with an Amazon-provided or BYOIP public IPv4 address range

    \n
  • \n
  • \n

    IPv4 addresses from your on-premises network made available for use with an Outpost\n using a customer-owned IP address\n pool (CoIP pool)

    \n
  • \n
\n

For more information, see Elastic IP Addresses in the Amazon EC2 User Guide.

\n

If you release an Elastic IP address, you might be able to recover it. You cannot recover\n an Elastic IP address that you released after it is allocated to another Amazon Web Services account. To attempt to recover an Elastic IP address that you released, specify\n it in this operation.

\n

You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, \n to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance).

", + "smithy.api#examples": [ + { + "title": "To allocate an Elastic IP address", + "documentation": "This example allocates an Elastic IP address.", + "output": { + "PublicIp": "203.0.113.0", + "AllocationId": "eipalloc-64d5890a", + "PublicIpv4Pool": "amazon", + "NetworkBorderGroup": "us-east-1", + "Domain": "vpc" + } + } + ] + } + }, + "com.amazonaws.ec2#AllocateAddressRequest": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.ec2#DomainType", + "traits": { + "smithy.api#documentation": "

The network (vpc).

" + } + }, + "Address": { + "target": "com.amazonaws.ec2#PublicIpAddress", + "traits": { + "smithy.api#documentation": "

The Elastic IP address to recover or an IPv4 address from an address pool.

" + } + }, + "PublicIpv4Pool": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#documentation": "

The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool.\n To specify a specific address from the address pool, use the Address parameter instead.

" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services\n advertises IP addresses. Use this parameter to limit the IP address to this location. IP\n addresses cannot move between network border groups.

" + } + }, + "CustomerOwnedIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of a customer-owned address pool. Use this parameter to let Amazon EC2 \n select an address from the address pool. Alternatively, specify a specific \n address from the address pool.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Elastic IP address.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of an IPAM pool which has an Amazon-provided or BYOIP public IPv4 CIDR provisioned to it. For more information, see Allocate sequential Elastic IP addresses from an IPAM pool in the Amazon VPC IPAM User Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AllocateAddressResult": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The ID that represents the allocation of the Elastic IP address.

", + "smithy.api#xmlName": "allocationId" + } + }, + "PublicIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4Pool", + "smithy.api#documentation": "

The ID of an address pool that you own.

", + "smithy.api#xmlName": "publicIpv4Pool" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n IP addresses.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "Domain": { + "target": "com.amazonaws.ec2#DomainType", + "traits": { + "aws.protocols#ec2QueryName": "Domain", + "smithy.api#documentation": "

The network (vpc).

", + "smithy.api#xmlName": "domain" + } + }, + "CustomerOwnedIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIp", + "smithy.api#documentation": "

The customer-owned IP address.

", + "smithy.api#xmlName": "customerOwnedIp" + } + }, + "CustomerOwnedIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIpv4Pool", + "smithy.api#documentation": "

The ID of the customer-owned address pool.

", + "smithy.api#xmlName": "customerOwnedIpv4Pool" + } + }, + "CarrierIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CarrierIp", + "smithy.api#documentation": "

The carrier IP address. Available only for network interfaces that reside\n in a subnet in a Wavelength Zone.

", + "smithy.api#xmlName": "carrierIp" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The Amazon-owned IP address. Not available when using an address pool that you own.

", + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AllocateHosts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AllocateHostsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AllocateHostsResult" + }, + "traits": { + "smithy.api#documentation": "

Allocates a Dedicated Host to your account. At a minimum, specify the supported\n instance type or instance family, the Availability Zone in which to allocate the host,\n and the number of hosts to allocate.

" + } + }, + "com.amazonaws.ec2#AllocateHostsRequest": { + "type": "structure", + "members": { + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specifies the instance family to be supported by the Dedicated Hosts. If you specify\n an instance family, the Dedicated Hosts support multiple instance types within that\n instance family.

\n

If you want the Dedicated Hosts to support a specific instance type only, omit this\n parameter and specify InstanceType instead. You cannot\n specify InstanceFamily and InstanceType in the same request.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Dedicated Host during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "HostRecovery": { + "target": "com.amazonaws.ec2#HostRecovery", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable or disable host recovery for the Dedicated Host. Host\n recovery is disabled by default. For more information, see Host recovery\n in the Amazon EC2 User Guide.

\n

Default: off\n

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate\n the Dedicated Host. If you specify OutpostArn, you can \n optionally specify AssetIds.

\n

If you are allocating the Dedicated Host in a Region, omit this parameter.

" + } + }, + "HostMaintenance": { + "target": "com.amazonaws.ec2#HostMaintenance", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable or disable host maintenance for the Dedicated Host. For\n more information, see Host\n maintenance in the Amazon EC2 User Guide.

" + } + }, + "AssetIds": { + "target": "com.amazonaws.ec2#AssetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Outpost hardware assets on which to allocate the Dedicated Hosts. Targeting \n specific hardware assets on an Outpost can help to minimize latency between your workloads. \n This parameter is supported only if you specify OutpostArn. \n If you are allocating the Dedicated Hosts in a Region, omit this parameter.

\n
    \n
  • \n

    If you specify this parameter, you can omit Quantity. \n In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware \n asset.

    \n
  • \n
  • \n

    If you specify both AssetIds and \n Quantity, then the value for \n Quantity must be equal to the number of asset IDs \n specified.

    \n
  • \n
", + "smithy.api#xmlName": "AssetId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone.

" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#HostCpuOptionsRequest", + "traits": { + "smithy.api#documentation": "

The CPU configuration options to apply to the Dedicated Host.

" + } + }, + "AutoPlacement": { + "target": "com.amazonaws.ec2#AutoPlacement", + "traits": { + "aws.protocols#ec2QueryName": "AutoPlacement", + "smithy.api#documentation": "

Indicates whether the host accepts any untargeted instance launches that match its\n instance type configuration, or if it only accepts Host tenancy instance launches that\n specify its unique host ID. For more information, see Understanding auto-placement and affinity in the\n Amazon EC2 User Guide.

\n

Default: off\n

", + "smithy.api#xmlName": "autoPlacement" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

Specifies the instance type to be supported by the Dedicated Hosts. If you specify an\n instance type, the Dedicated Hosts support instances of the specified instance type\n only.

\n

If you want the Dedicated Hosts to support multiple instance types in a specific\n instance family, omit this parameter and specify InstanceFamily instead. You cannot specify InstanceType and InstanceFamily in the\n same request.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Quantity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Quantity", + "smithy.api#documentation": "

The number of Dedicated Hosts to allocate to your account with these parameters. If you are \n allocating the Dedicated Hosts on an Outpost, and you specify AssetIds, \n you can omit this parameter. In this case, Amazon EC2 allocates a Dedicated Host on each \n specified hardware asset. If you specify both AssetIds and \n Quantity, then the value that you specify for \n Quantity must be equal to the number of asset IDs specified.

", + "smithy.api#xmlName": "quantity" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which to allocate the Dedicated Host.

", + "smithy.api#xmlName": "availabilityZone" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AllocateHostsResult": { + "type": "structure", + "members": { + "HostIds": { + "target": "com.amazonaws.ec2#ResponseHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "HostIdSet", + "smithy.api#documentation": "

The ID of the allocated Dedicated Host. This is used to launch an instance onto a\n specific host.

", + "smithy.api#xmlName": "hostIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of AllocateHosts.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AllocateIpamPoolCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AllocateIpamPoolCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AllocateIpamPoolCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM pool is available for allocations.

\n

In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource. For more information, see Allocate CIDRs in the Amazon VPC IPAM User Guide.

\n \n

This action creates an allocation with strong consistency. The returned CIDR will not overlap with any other allocations from the same pool.

\n
" + } + }, + "com.amazonaws.ec2#AllocateIpamPoolCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool from which you would like to allocate a CIDR.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR you would like to allocate from the IPAM pool. Note the following:

\n
    \n
  • \n

    If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.

    \n
  • \n
  • \n

    If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.

    \n
  • \n
\n

Possible values: Any available IPv4 or IPv6 CIDR.

" + } + }, + "NetmaskLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The netmask length of the CIDR you would like to allocate from the IPAM pool. Note the following:

\n
    \n
  • \n

    If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.

    \n
  • \n
  • \n

    If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.

    \n
  • \n
\n

Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the allocation.

" + } + }, + "PreviewNextCidr": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A preview of the next available CIDR in a pool.

" + } + }, + "AllowedCidrs": { + "target": "com.amazonaws.ec2#IpamPoolAllocationAllowedCidrs", + "traits": { + "smithy.api#documentation": "

Include a particular CIDR range that can be returned by the pool. Allowed CIDRs are only allowed if using netmask length for allocation.

", + "smithy.api#xmlName": "AllowedCidr" + } + }, + "DisallowedCidrs": { + "target": "com.amazonaws.ec2#IpamPoolAllocationDisallowedCidrs", + "traits": { + "smithy.api#documentation": "

Exclude a particular CIDR range from being returned by the pool. Disallowed CIDRs are only allowed if using netmask length for allocation.

", + "smithy.api#xmlName": "DisallowedCidr" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

\n

If you specify tags, the request is authorized against the allocation resource in addition to the pool resource.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AllocateIpamPoolCidrResult": { + "type": "structure", + "members": { + "IpamPoolAllocation": { + "target": "com.amazonaws.ec2#IpamPoolAllocation", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolAllocation", + "smithy.api#documentation": "

Information about the allocation created.

", + "smithy.api#xmlName": "ipamPoolAllocation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AllocationId": { + "type": "string" + }, + "com.amazonaws.ec2#AllocationIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#xmlName": "AllocationId" + } + } + }, + "com.amazonaws.ec2#AllocationIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AllocationState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "under_assessment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "under-assessment" + } + }, + "permanent_failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permanent-failure" + } + }, + "released": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "released" + } + }, + "released_permanent_failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "released-permanent-failure" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "configuring": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "configuring" + } + } + } + }, + "com.amazonaws.ec2#AllocationStrategy": { + "type": "enum", + "members": { + "LOWEST_PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lowestPrice" + } + }, + "DIVERSIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "diversified" + } + }, + "CAPACITY_OPTIMIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacityOptimized" + } + }, + "CAPACITY_OPTIMIZED_PRIORITIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacityOptimizedPrioritized" + } + }, + "PRICE_CAPACITY_OPTIMIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "priceCapacityOptimized" + } + } + } + }, + "com.amazonaws.ec2#AllocationType": { + "type": "enum", + "members": { + "used": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "used" + } + }, + "future": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "future" + } + }, + "cancelling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + } + } + }, + "com.amazonaws.ec2#AllowedImagesSettingsDisabledState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#AllowedImagesSettingsEnabledState": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "audit_mode": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "audit-mode" + } + } + } + }, + "com.amazonaws.ec2#AllowedInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$" + } + }, + "com.amazonaws.ec2#AllowedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AllowedInstanceType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 400 + } + } + }, + "com.amazonaws.ec2#AllowedPrincipal": { + "type": "structure", + "members": { + "PrincipalType": { + "target": "com.amazonaws.ec2#PrincipalType", + "traits": { + "aws.protocols#ec2QueryName": "PrincipalType", + "smithy.api#documentation": "

The type of principal.

", + "smithy.api#xmlName": "principalType" + } + }, + "Principal": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Principal", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal.

", + "smithy.api#xmlName": "principal" + } + }, + "ServicePermissionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServicePermissionId", + "smithy.api#documentation": "

The ID of the service permission.

", + "smithy.api#xmlName": "servicePermissionId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#xmlName": "serviceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a principal.

" + } + }, + "com.amazonaws.ec2#AllowedPrincipalSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AllowedPrincipal", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AllowsMultipleInstanceTypes": { + "type": "enum", + "members": { + "on": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on" + } + }, + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + } + } + }, + "com.amazonaws.ec2#AlternatePathHint": { + "type": "structure", + "members": { + "ComponentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ComponentId", + "smithy.api#documentation": "

The ID of the component.

", + "smithy.api#xmlName": "componentId" + } + }, + "ComponentArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ComponentArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the component.

", + "smithy.api#xmlName": "componentArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an potential intermediate component of a feasible path.

" + } + }, + "com.amazonaws.ec2#AlternatePathHintList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AlternatePathHint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AmazonEC2": { + "type": "service", + "version": "2016-11-15", + "operations": [ + { + "target": "com.amazonaws.ec2#AcceptAddressTransfer" + }, + { + "target": "com.amazonaws.ec2#AcceptCapacityReservationBillingOwnership" + }, + { + "target": "com.amazonaws.ec2#AcceptReservedInstancesExchangeQuote" + }, + { + "target": "com.amazonaws.ec2#AcceptTransitGatewayClientVpnAttachment" + }, + { + "target": "com.amazonaws.ec2#AcceptTransitGatewayMulticastDomainAssociations" + }, + { + "target": "com.amazonaws.ec2#AcceptTransitGatewayPeeringAttachment" + }, + { + "target": "com.amazonaws.ec2#AcceptTransitGatewayVpcAttachment" + }, + { + "target": "com.amazonaws.ec2#AcceptVpcEndpointConnections" + }, + { + "target": "com.amazonaws.ec2#AcceptVpcPeeringConnection" + }, + { + "target": "com.amazonaws.ec2#AdvertiseByoipCidr" + }, + { + "target": "com.amazonaws.ec2#AllocateAddress" + }, + { + "target": "com.amazonaws.ec2#AllocateHosts" + }, + { + "target": "com.amazonaws.ec2#AllocateIpamPoolCidr" + }, + { + "target": "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetwork" + }, + { + "target": "com.amazonaws.ec2#AssignIpv6Addresses" + }, + { + "target": "com.amazonaws.ec2#AssignPrivateIpAddresses" + }, + { + "target": "com.amazonaws.ec2#AssignPrivateNatGatewayAddress" + }, + { + "target": "com.amazonaws.ec2#AssociateAddress" + }, + { + "target": "com.amazonaws.ec2#AssociateApplicationStatusCheck" + }, + { + "target": "com.amazonaws.ec2#AssociateCapacityReservationBillingOwner" + }, + { + "target": "com.amazonaws.ec2#AssociateClientVpnTargetNetwork" + }, + { + "target": "com.amazonaws.ec2#AssociateDhcpOptions" + }, + { + "target": "com.amazonaws.ec2#AssociateEnclaveCertificateIamRole" + }, + { + "target": "com.amazonaws.ec2#AssociateIamInstanceProfile" + }, + { + "target": "com.amazonaws.ec2#AssociateInstanceEventWindow" + }, + { + "target": "com.amazonaws.ec2#AssociateIpamByoasn" + }, + { + "target": "com.amazonaws.ec2#AssociateIpamResourceDiscovery" + }, + { + "target": "com.amazonaws.ec2#AssociateNatGatewayAddress" + }, + { + "target": "com.amazonaws.ec2#AssociateRouteServer" + }, + { + "target": "com.amazonaws.ec2#AssociateRouteTable" + }, + { + "target": "com.amazonaws.ec2#AssociateSecurityGroupVpc" + }, + { + "target": "com.amazonaws.ec2#AssociateSubnetCidrBlock" + }, + { + "target": "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomain" + }, + { + "target": "com.amazonaws.ec2#AssociateTransitGatewayPolicyTable" + }, + { + "target": "com.amazonaws.ec2#AssociateTransitGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#AssociateTrunkInterface" + }, + { + "target": "com.amazonaws.ec2#AssociateVpcCidrBlock" + }, + { + "target": "com.amazonaws.ec2#AttachClassicLinkVpc" + }, + { + "target": "com.amazonaws.ec2#AttachImageWatermark" + }, + { + "target": "com.amazonaws.ec2#AttachInternetGateway" + }, + { + "target": "com.amazonaws.ec2#AttachNetworkInterface" + }, + { + "target": "com.amazonaws.ec2#AttachVerifiedAccessTrustProvider" + }, + { + "target": "com.amazonaws.ec2#AttachVolume" + }, + { + "target": "com.amazonaws.ec2#AttachVpnGateway" + }, + { + "target": "com.amazonaws.ec2#AuthorizeClientVpnIngress" + }, + { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupEgress" + }, + { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupIngress" + }, + { + "target": "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrations" + }, + { + "target": "com.amazonaws.ec2#BundleInstance" + }, + { + "target": "com.amazonaws.ec2#CancelBundleTask" + }, + { + "target": "com.amazonaws.ec2#CancelCapacityReservation" + }, + { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleets" + }, + { + "target": "com.amazonaws.ec2#CancelConversionTask" + }, + { + "target": "com.amazonaws.ec2#CancelDeclarativePoliciesReport" + }, + { + "target": "com.amazonaws.ec2#CancelExportTask" + }, + { + "target": "com.amazonaws.ec2#CancelImageLaunchPermission" + }, + { + "target": "com.amazonaws.ec2#CancelImportTask" + }, + { + "target": "com.amazonaws.ec2#CancelReservedInstancesListing" + }, + { + "target": "com.amazonaws.ec2#CancelSpotFleetRequests" + }, + { + "target": "com.amazonaws.ec2#CancelSpotInstanceRequests" + }, + { + "target": "com.amazonaws.ec2#ConfirmProductInstance" + }, + { + "target": "com.amazonaws.ec2#CopyFpgaImage" + }, + { + "target": "com.amazonaws.ec2#CopyImage" + }, + { + "target": "com.amazonaws.ec2#CopySnapshot" + }, + { + "target": "com.amazonaws.ec2#CopyVolumes" + }, + { + "target": "com.amazonaws.ec2#CreateApplicationStatusCheck" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityManagerDataExport" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservation" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservationBySplitting" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservationCancellationQuote" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuote" + }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleet" + }, + { + "target": "com.amazonaws.ec2#CreateCarrierGateway" + }, + { + "target": "com.amazonaws.ec2#CreateClientVpnEndpoint" + }, + { + "target": "com.amazonaws.ec2#CreateClientVpnRoute" + }, + { + "target": "com.amazonaws.ec2#CreateCoipCidr" + }, + { + "target": "com.amazonaws.ec2#CreateCoipPool" + }, + { + "target": "com.amazonaws.ec2#CreateCustomerGateway" + }, + { + "target": "com.amazonaws.ec2#CreateDefaultSubnet" + }, + { + "target": "com.amazonaws.ec2#CreateDefaultVpc" + }, + { + "target": "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTask" + }, + { + "target": "com.amazonaws.ec2#CreateDhcpOptions" + }, + { + "target": "com.amazonaws.ec2#CreateEgressOnlyInternetGateway" + }, + { + "target": "com.amazonaws.ec2#CreateFleet" + }, + { + "target": "com.amazonaws.ec2#CreateFlowLogs" + }, + { + "target": "com.amazonaws.ec2#CreateFpgaImage" + }, + { + "target": "com.amazonaws.ec2#CreateImage" + }, + { + "target": "com.amazonaws.ec2#CreateImageUsageReport" + }, + { + "target": "com.amazonaws.ec2#CreateInstanceConnectEndpoint" + }, + { + "target": "com.amazonaws.ec2#CreateInstanceEventWindow" + }, + { + "target": "com.amazonaws.ec2#CreateInstanceExportTask" + }, + { + "target": "com.amazonaws.ec2#CreateInternetGateway" + }, + { + "target": "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocation" + }, + { + "target": "com.amazonaws.ec2#CreateIpam" + }, + { + "target": "com.amazonaws.ec2#CreateIpamExternalResourceVerificationToken" + }, + { + "target": "com.amazonaws.ec2#CreateIpamInternetRegistryAssociation" + }, + { + "target": "com.amazonaws.ec2#CreateIpamPolicy" + }, + { + "target": "com.amazonaws.ec2#CreateIpamPool" + }, + { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolver" + }, + { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolverTarget" + }, + { + "target": "com.amazonaws.ec2#CreateIpamResourceDiscovery" + }, + { + "target": "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistration" + }, + { + "target": "com.amazonaws.ec2#CreateIpamScope" + }, + { + "target": "com.amazonaws.ec2#CreateKeyPair" + }, + { + "target": "com.amazonaws.ec2#CreateLaunchTemplate" + }, + { + "target": "com.amazonaws.ec2#CreateLaunchTemplateVersion" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociation" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterface" + }, + { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroup" + }, + { + "target": "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTask" + }, + { + "target": "com.amazonaws.ec2#CreateManagedPrefixList" + }, + { + "target": "com.amazonaws.ec2#CreateNatGateway" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkAcl" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkAclEntry" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkInsightsAccessScope" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkInsightsPath" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkInterface" + }, + { + "target": "com.amazonaws.ec2#CreateNetworkInterfacePermission" + }, + { + "target": "com.amazonaws.ec2#CreatePlacementGroup" + }, + { + "target": "com.amazonaws.ec2#CreatePublicIpv4Pool" + }, + { + "target": "com.amazonaws.ec2#CreateReplaceRootVolumeTask" + }, + { + "target": "com.amazonaws.ec2#CreateReservedInstancesListing" + }, + { + "target": "com.amazonaws.ec2#CreateRestoreImageTask" + }, + { + "target": "com.amazonaws.ec2#CreateRoute" + }, + { + "target": "com.amazonaws.ec2#CreateRouteServer" + }, + { + "target": "com.amazonaws.ec2#CreateRouteServerEndpoint" + }, + { + "target": "com.amazonaws.ec2#CreateRouteServerPeer" + }, + { + "target": "com.amazonaws.ec2#CreateRouteTable" + }, + { + "target": "com.amazonaws.ec2#CreateSecondaryNetwork" + }, + { + "target": "com.amazonaws.ec2#CreateSecondarySubnet" + }, + { + "target": "com.amazonaws.ec2#CreateSecurityGroup" + }, + { + "target": "com.amazonaws.ec2#CreateSnapshot" + }, + { + "target": "com.amazonaws.ec2#CreateSnapshots" + }, + { + "target": "com.amazonaws.ec2#CreateSpotDatafeedSubscription" + }, + { + "target": "com.amazonaws.ec2#CreateStoreImageTask" + }, + { + "target": "com.amazonaws.ec2#CreateSubnet" + }, + { + "target": "com.amazonaws.ec2#CreateSubnetCidrReservation" + }, + { + "target": "com.amazonaws.ec2#CreateTags" + }, + { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilter" + }, + { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterRule" + }, + { + "target": "com.amazonaws.ec2#CreateTrafficMirrorSession" + }, + { + "target": "com.amazonaws.ec2#CreateTrafficMirrorTarget" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGateway" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnect" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectPeer" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicy" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntry" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayMulticastDomain" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachment" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTable" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntry" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayPrefixListReference" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncement" + }, + { + "target": "com.amazonaws.ec2#CreateTransitGatewayVpcAttachment" + }, + { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpoint" + }, + { + "target": "com.amazonaws.ec2#CreateVerifiedAccessGroup" + }, + { + "target": "com.amazonaws.ec2#CreateVerifiedAccessInstance" + }, + { + "target": "com.amazonaws.ec2#CreateVerifiedAccessTrustProvider" + }, + { + "target": "com.amazonaws.ec2#CreateVolume" + }, + { + "target": "com.amazonaws.ec2#CreateVpc" + }, + { + "target": "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusion" + }, + { + "target": "com.amazonaws.ec2#CreateVpcEncryptionControl" + }, + { + "target": "com.amazonaws.ec2#CreateVpcEndpoint" + }, + { + "target": "com.amazonaws.ec2#CreateVpcEndpointConnectionNotification" + }, + { + "target": "com.amazonaws.ec2#CreateVpcEndpointServiceConfiguration" + }, + { + "target": "com.amazonaws.ec2#CreateVpcPeeringConnection" + }, + { + "target": "com.amazonaws.ec2#CreateVpnConcentrator" + }, + { + "target": "com.amazonaws.ec2#CreateVpnConnection" + }, + { + "target": "com.amazonaws.ec2#CreateVpnConnectionRoute" + }, + { + "target": "com.amazonaws.ec2#CreateVpnGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteApplicationStatusCheck" + }, + { + "target": "com.amazonaws.ec2#DeleteCapacityManagerDataExport" + }, + { + "target": "com.amazonaws.ec2#DeleteCarrierGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpoint" + }, + { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicy" + }, + { + "target": "com.amazonaws.ec2#DeleteClientVpnRoute" + }, + { + "target": "com.amazonaws.ec2#DeleteCoipCidr" + }, + { + "target": "com.amazonaws.ec2#DeleteCoipPool" + }, + { + "target": "com.amazonaws.ec2#DeleteCustomerGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteDhcpOptions" + }, + { + "target": "com.amazonaws.ec2#DeleteEgressOnlyInternetGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteFleets" + }, + { + "target": "com.amazonaws.ec2#DeleteFlowLogs" + }, + { + "target": "com.amazonaws.ec2#DeleteFpgaImage" + }, + { + "target": "com.amazonaws.ec2#DeleteImageUsageReport" + }, + { + "target": "com.amazonaws.ec2#DeleteInstanceConnectEndpoint" + }, + { + "target": "com.amazonaws.ec2#DeleteInstanceEventWindow" + }, + { + "target": "com.amazonaws.ec2#DeleteInternetGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteIpam" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationToken" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociation" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamPolicy" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamPool" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolver" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolverTarget" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamResourceDiscovery" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistration" + }, + { + "target": "com.amazonaws.ec2#DeleteIpamScope" + }, + { + "target": "com.amazonaws.ec2#DeleteKeyPair" + }, + { + "target": "com.amazonaws.ec2#DeleteLaunchTemplate" + }, + { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersions" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociation" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterface" + }, + { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroup" + }, + { + "target": "com.amazonaws.ec2#DeleteManagedPrefixList" + }, + { + "target": "com.amazonaws.ec2#DeleteNatGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkAcl" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkAclEntry" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScope" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysis" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAnalysis" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsPath" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInterface" + }, + { + "target": "com.amazonaws.ec2#DeleteNetworkInterfacePermission" + }, + { + "target": "com.amazonaws.ec2#DeletePlacementGroup" + }, + { + "target": "com.amazonaws.ec2#DeletePublicIpv4Pool" + }, + { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstances" + }, + { + "target": "com.amazonaws.ec2#DeleteRoute" + }, + { + "target": "com.amazonaws.ec2#DeleteRouteServer" + }, + { + "target": "com.amazonaws.ec2#DeleteRouteServerEndpoint" + }, + { + "target": "com.amazonaws.ec2#DeleteRouteServerPeer" + }, + { + "target": "com.amazonaws.ec2#DeleteRouteTable" + }, + { + "target": "com.amazonaws.ec2#DeleteSecondaryNetwork" + }, + { + "target": "com.amazonaws.ec2#DeleteSecondarySubnet" + }, + { + "target": "com.amazonaws.ec2#DeleteSecurityGroup" + }, + { + "target": "com.amazonaws.ec2#DeleteSnapshot" + }, + { + "target": "com.amazonaws.ec2#DeleteSpotDatafeedSubscription" + }, + { + "target": "com.amazonaws.ec2#DeleteSubnet" + }, + { + "target": "com.amazonaws.ec2#DeleteSubnetCidrReservation" + }, + { + "target": "com.amazonaws.ec2#DeleteTags" + }, + { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilter" + }, + { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilterRule" + }, + { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorSession" + }, + { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorTarget" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGateway" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachment" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnect" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnectPeer" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicy" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntry" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomain" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachment" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTable" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntry" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReference" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncement" + }, + { + "target": "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachment" + }, + { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessEndpoint" + }, + { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessGroup" + }, + { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessInstance" + }, + { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessTrustProvider" + }, + { + "target": "com.amazonaws.ec2#DeleteVolume" + }, + { + "target": "com.amazonaws.ec2#DeleteVpc" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusion" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcEncryptionControl" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotifications" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcEndpoints" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurations" + }, + { + "target": "com.amazonaws.ec2#DeleteVpcPeeringConnection" + }, + { + "target": "com.amazonaws.ec2#DeleteVpnConcentrator" + }, + { + "target": "com.amazonaws.ec2#DeleteVpnConnection" + }, + { + "target": "com.amazonaws.ec2#DeleteVpnConnectionRoute" + }, + { + "target": "com.amazonaws.ec2#DeleteVpnGateway" + }, + { + "target": "com.amazonaws.ec2#DeprovisionByoipCidr" + }, + { + "target": "com.amazonaws.ec2#DeprovisionIpamByoasn" + }, + { + "target": "com.amazonaws.ec2#DeprovisionIpamPoolCidr" + }, + { + "target": "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidr" + }, + { + "target": "com.amazonaws.ec2#DeregisterImage" + }, + { + "target": "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributes" + }, + { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembers" + }, + { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSources" + }, + { + "target": "com.amazonaws.ec2#DescribeAccountAttributes" + }, + { + "target": "com.amazonaws.ec2#DescribeAccountVpcEncryptionControl" + }, + { + "target": "com.amazonaws.ec2#DescribeAddresses" + }, + { + "target": "com.amazonaws.ec2#DescribeAddressesAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeAddressTransfers" + }, + { + "target": "com.amazonaws.ec2#DescribeAggregateIdFormat" + }, + { + "target": "com.amazonaws.ec2#DescribeApplicationStatus" + }, + { + "target": "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeApplicationStatusChecks" + }, + { + "target": "com.amazonaws.ec2#DescribeAvailabilityZones" + }, + { + "target": "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptions" + }, + { + "target": "com.amazonaws.ec2#DescribeBundleTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeByoipCidrs" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistory" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferings" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferings" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlocks" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityBlockStatus" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityManagerDataExports" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationBillingRequests" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotes" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotes" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleets" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservations" + }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationTopology" + }, + { + "target": "com.amazonaws.ec2#DescribeCarrierGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeClassicLinkInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeClientVpnAuthorizationRules" + }, + { + "target": "com.amazonaws.ec2#DescribeClientVpnConnections" + }, + { + "target": "com.amazonaws.ec2#DescribeClientVpnEndpoints" + }, + { + "target": "com.amazonaws.ec2#DescribeClientVpnRoutes" + }, + { + "target": "com.amazonaws.ec2#DescribeClientVpnTargetNetworks" + }, + { + "target": "com.amazonaws.ec2#DescribeCoipPools" + }, + { + "target": "com.amazonaws.ec2#DescribeConversionTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeCustomerGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeDeclarativePoliciesReports" + }, + { + "target": "com.amazonaws.ec2#DescribeDhcpOptions" + }, + { + "target": "com.amazonaws.ec2#DescribeEgressOnlyInternetGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeElasticGpus" + }, + { + "target": "com.amazonaws.ec2#DescribeExportImageTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeExportTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeFastLaunchImages" + }, + { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestores" + }, + { + "target": "com.amazonaws.ec2#DescribeFleetHistory" + }, + { + "target": "com.amazonaws.ec2#DescribeFleetInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeFleets" + }, + { + "target": "com.amazonaws.ec2#DescribeFlowLogs" + }, + { + "target": "com.amazonaws.ec2#DescribeFpgaImageAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeFpgaImages" + }, + { + "target": "com.amazonaws.ec2#DescribeHostReservationOfferings" + }, + { + "target": "com.amazonaws.ec2#DescribeHostReservations" + }, + { + "target": "com.amazonaws.ec2#DescribeHosts" + }, + { + "target": "com.amazonaws.ec2#DescribeIamInstanceProfileAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeIdentityIdFormat" + }, + { + "target": "com.amazonaws.ec2#DescribeIdFormat" + }, + { + "target": "com.amazonaws.ec2#DescribeImageAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeImageReferences" + }, + { + "target": "com.amazonaws.ec2#DescribeImages" + }, + { + "target": "com.amazonaws.ec2#DescribeImageUsageReportEntries" + }, + { + "target": "com.amazonaws.ec2#DescribeImageUsageReports" + }, + { + "target": "com.amazonaws.ec2#DescribeImportImageTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeImportSnapshotTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceConnectEndpoints" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceCreditSpecifications" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributes" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceEventWindows" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceImageMetadata" + }, + { + "target": "com.amazonaws.ec2#DescribeInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStates" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaStates" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceStatus" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceTopology" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceTypeOfferings" + }, + { + "target": "com.amazonaws.ec2#DescribeInstanceTypes" + }, + { + "target": "com.amazonaws.ec2#DescribeInternetGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamByoasn" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokens" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamPolicies" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamPoolAllocations" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamPools" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolvers" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargets" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveries" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeIpams" + }, + { + "target": "com.amazonaws.ec2#DescribeIpamScopes" + }, + { + "target": "com.amazonaws.ec2#DescribeIpv6Pools" + }, + { + "target": "com.amazonaws.ec2#DescribeKeyPairs" + }, + { + "target": "com.amazonaws.ec2#DescribeLaunchTemplates" + }, + { + "target": "com.amazonaws.ec2#DescribeLaunchTemplateVersions" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTables" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroups" + }, + { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaces" + }, + { + "target": "com.amazonaws.ec2#DescribeLockedSnapshots" + }, + { + "target": "com.amazonaws.ec2#DescribeMacHosts" + }, + { + "target": "com.amazonaws.ec2#DescribeMacModificationTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeManagedPrefixLists" + }, + { + "target": "com.amazonaws.ec2#DescribeMovingAddresses" + }, + { + "target": "com.amazonaws.ec2#DescribeNatGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkAcls" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalyses" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopes" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAnalyses" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsPaths" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInterfaceAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacePermissions" + }, + { + "target": "com.amazonaws.ec2#DescribeNetworkInterfaces" + }, + { + "target": "com.amazonaws.ec2#DescribeOutpostLags" + }, + { + "target": "com.amazonaws.ec2#DescribePlacementGroups" + }, + { + "target": "com.amazonaws.ec2#DescribePrefixLists" + }, + { + "target": "com.amazonaws.ec2#DescribePrincipalIdFormat" + }, + { + "target": "com.amazonaws.ec2#DescribePublicIpv4Pools" + }, + { + "target": "com.amazonaws.ec2#DescribeRegions" + }, + { + "target": "com.amazonaws.ec2#DescribeReplaceRootVolumeTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeReservedInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeReservedInstancesListings" + }, + { + "target": "com.amazonaws.ec2#DescribeReservedInstancesModifications" + }, + { + "target": "com.amazonaws.ec2#DescribeReservedInstancesOfferings" + }, + { + "target": "com.amazonaws.ec2#DescribeRouteServerEndpoints" + }, + { + "target": "com.amazonaws.ec2#DescribeRouteServerPeers" + }, + { + "target": "com.amazonaws.ec2#DescribeRouteServers" + }, + { + "target": "com.amazonaws.ec2#DescribeRouteTables" + }, + { + "target": "com.amazonaws.ec2#DescribeScheduledInstanceAvailability" + }, + { + "target": "com.amazonaws.ec2#DescribeScheduledInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeSecondaryInterfaces" + }, + { + "target": "com.amazonaws.ec2#DescribeSecondaryNetworks" + }, + { + "target": "com.amazonaws.ec2#DescribeSecondarySubnets" + }, + { + "target": "com.amazonaws.ec2#DescribeSecurityGroupReferences" + }, + { + "target": "com.amazonaws.ec2#DescribeSecurityGroupRules" + }, + { + "target": "com.amazonaws.ec2#DescribeSecurityGroups" + }, + { + "target": "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfaces" + }, + { + "target": "com.amazonaws.ec2#DescribeSnapshotAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeSnapshots" + }, + { + "target": "com.amazonaws.ec2#DescribeSnapshotTierStatus" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotDatafeedSubscription" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotFleetInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistory" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequests" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotInstanceRequests" + }, + { + "target": "com.amazonaws.ec2#DescribeSpotPriceHistory" + }, + { + "target": "com.amazonaws.ec2#DescribeStaleSecurityGroups" + }, + { + "target": "com.amazonaws.ec2#DescribeStoreImageTasks" + }, + { + "target": "com.amazonaws.ec2#DescribeSubnets" + }, + { + "target": "com.amazonaws.ec2#DescribeTags" + }, + { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFilterRules" + }, + { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFilters" + }, + { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorSessions" + }, + { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorTargets" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayAttachments" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnectPeers" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnects" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMeteringPolicies" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomains" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachments" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPolicyTables" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncements" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTables" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGateways" + }, + { + "target": "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachments" + }, + { + "target": "com.amazonaws.ec2#DescribeTrunkInterfaceAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessEndpoints" + }, + { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessGroups" + }, + { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurations" + }, + { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstances" + }, + { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessTrustProviders" + }, + { + "target": "com.amazonaws.ec2#DescribeVolumeAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeVolumes" + }, + { + "target": "com.amazonaws.ec2#DescribeVolumesModifications" + }, + { + "target": "com.amazonaws.ec2#DescribeVolumeStatus" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcAttribute" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusions" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptions" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcClassicLink" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupport" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEncryptionControls" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointAssociations" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotifications" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnections" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpoints" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurations" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServicePermissions" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServices" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcPeeringConnections" + }, + { + "target": "com.amazonaws.ec2#DescribeVpcs" + }, + { + "target": "com.amazonaws.ec2#DescribeVpnConcentrators" + }, + { + "target": "com.amazonaws.ec2#DescribeVpnConnections" + }, + { + "target": "com.amazonaws.ec2#DescribeVpnGateways" + }, + { + "target": "com.amazonaws.ec2#DetachClassicLinkVpc" + }, + { + "target": "com.amazonaws.ec2#DetachImageWatermark" + }, + { + "target": "com.amazonaws.ec2#DetachInternetGateway" + }, + { + "target": "com.amazonaws.ec2#DetachNetworkInterface" + }, + { + "target": "com.amazonaws.ec2#DetachVerifiedAccessTrustProvider" + }, + { + "target": "com.amazonaws.ec2#DetachVolume" + }, + { + "target": "com.amazonaws.ec2#DetachVpnGateway" + }, + { + "target": "com.amazonaws.ec2#DisableAddressTransfer" + }, + { + "target": "com.amazonaws.ec2#DisableAllowedImagesSettings" + }, + { + "target": "com.amazonaws.ec2#DisableApplicationStatusCheckSuppression" + }, + { + "target": "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscription" + }, + { + "target": "com.amazonaws.ec2#DisableCapacityManager" + }, + { + "target": "com.amazonaws.ec2#DisableEbsEncryptionByDefault" + }, + { + "target": "com.amazonaws.ec2#DisableFastLaunch" + }, + { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestores" + }, + { + "target": "com.amazonaws.ec2#DisableImage" + }, + { + "target": "com.amazonaws.ec2#DisableImageBlockPublicAccess" + }, + { + "target": "com.amazonaws.ec2#DisableImageDeprecation" + }, + { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtection" + }, + { + "target": "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetections" + }, + { + "target": "com.amazonaws.ec2#DisableIpamOrganizationAdminAccount" + }, + { + "target": "com.amazonaws.ec2#DisableIpamPolicy" + }, + { + "target": "com.amazonaws.ec2#DisableRouteServerPropagation" + }, + { + "target": "com.amazonaws.ec2#DisableSerialConsoleAccess" + }, + { + "target": "com.amazonaws.ec2#DisableSnapshotBlockPublicAccess" + }, + { + "target": "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagation" + }, + { + "target": "com.amazonaws.ec2#DisableVgwRoutePropagation" + }, + { + "target": "com.amazonaws.ec2#DisableVpcClassicLink" + }, + { + "target": "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupport" + }, + { + "target": "com.amazonaws.ec2#DisassociateAddress" + }, + { + "target": "com.amazonaws.ec2#DisassociateApplicationStatusCheck" + }, + { + "target": "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwner" + }, + { + "target": "com.amazonaws.ec2#DisassociateClientVpnTargetNetwork" + }, + { + "target": "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRole" + }, + { + "target": "com.amazonaws.ec2#DisassociateIamInstanceProfile" + }, + { + "target": "com.amazonaws.ec2#DisassociateInstanceEventWindow" + }, + { + "target": "com.amazonaws.ec2#DisassociateIpamByoasn" + }, + { + "target": "com.amazonaws.ec2#DisassociateIpamResourceDiscovery" + }, + { + "target": "com.amazonaws.ec2#DisassociateNatGatewayAddress" + }, + { + "target": "com.amazonaws.ec2#DisassociateRouteServer" + }, + { + "target": "com.amazonaws.ec2#DisassociateRouteTable" + }, + { + "target": "com.amazonaws.ec2#DisassociateSecurityGroupVpc" + }, + { + "target": "com.amazonaws.ec2#DisassociateSubnetCidrBlock" + }, + { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomain" + }, + { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTable" + }, + { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayRouteTable" + }, + { + "target": "com.amazonaws.ec2#DisassociateTrunkInterface" + }, + { + "target": "com.amazonaws.ec2#DisassociateVpcCidrBlock" + }, + { + "target": "com.amazonaws.ec2#EnableAddressTransfer" + }, + { + "target": "com.amazonaws.ec2#EnableAllowedImagesSettings" + }, + { + "target": "com.amazonaws.ec2#EnableApplicationStatusCheckSuppression" + }, + { + "target": "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscription" + }, + { + "target": "com.amazonaws.ec2#EnableCapacityManager" + }, + { + "target": "com.amazonaws.ec2#EnableEbsEncryptionByDefault" + }, + { + "target": "com.amazonaws.ec2#EnableFastLaunch" + }, + { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestores" + }, + { + "target": "com.amazonaws.ec2#EnableImage" + }, + { + "target": "com.amazonaws.ec2#EnableImageBlockPublicAccess" + }, + { + "target": "com.amazonaws.ec2#EnableImageDeprecation" + }, + { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtection" + }, + { + "target": "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetections" + }, + { + "target": "com.amazonaws.ec2#EnableIpamInternetRegistryAssociation" + }, + { + "target": "com.amazonaws.ec2#EnableIpamOrganizationAdminAccount" + }, + { + "target": "com.amazonaws.ec2#EnableIpamPolicy" + }, + { + "target": "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharing" + }, + { + "target": "com.amazonaws.ec2#EnableRouteServerPropagation" + }, + { + "target": "com.amazonaws.ec2#EnableSerialConsoleAccess" + }, + { + "target": "com.amazonaws.ec2#EnableSnapshotBlockPublicAccess" + }, + { + "target": "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagation" + }, + { + "target": "com.amazonaws.ec2#EnableVgwRoutePropagation" + }, + { + "target": "com.amazonaws.ec2#EnableVolumeIO" + }, + { + "target": "com.amazonaws.ec2#EnableVpcClassicLink" + }, + { + "target": "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupport" + }, + { + "target": "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationList" + }, + { + "target": "com.amazonaws.ec2#ExportClientVpnClientConfiguration" + }, + { + "target": "com.amazonaws.ec2#ExportImage" + }, + { + "target": "com.amazonaws.ec2#ExportTransitGatewayRoutes" + }, + { + "target": "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfiguration" + }, + { + "target": "com.amazonaws.ec2#GetActiveVpnTunnelStatus" + }, + { + "target": "com.amazonaws.ec2#GetAllowedImagesSettings" + }, + { + "target": "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRoles" + }, + { + "target": "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrs" + }, + { + "target": "com.amazonaws.ec2#GetAwsNetworkPerformanceData" + }, + { + "target": "com.amazonaws.ec2#GetCapacityManagerAttributes" + }, + { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricData" + }, + { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricDimensions" + }, + { + "target": "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeys" + }, + { + "target": "com.amazonaws.ec2#GetCapacityManagerSupportabilityScores" + }, + { + "target": "com.amazonaws.ec2#GetCapacityReservationUsage" + }, + { + "target": "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicy" + }, + { + "target": "com.amazonaws.ec2#GetCoipPoolUsage" + }, + { + "target": "com.amazonaws.ec2#GetConsoleOutput" + }, + { + "target": "com.amazonaws.ec2#GetConsoleScreenshot" + }, + { + "target": "com.amazonaws.ec2#GetDeclarativePoliciesReportSummary" + }, + { + "target": "com.amazonaws.ec2#GetDefaultCreditSpecification" + }, + { + "target": "com.amazonaws.ec2#GetEbsDefaultKmsKeyId" + }, + { + "target": "com.amazonaws.ec2#GetEbsEncryptionByDefault" + }, + { + "target": "com.amazonaws.ec2#GetEnabledIpamPolicy" + }, + { + "target": "com.amazonaws.ec2#GetFlowLogsIntegrationTemplate" + }, + { + "target": "com.amazonaws.ec2#GetGroupsForCapacityReservation" + }, + { + "target": "com.amazonaws.ec2#GetHostReservationPurchasePreview" + }, + { + "target": "com.amazonaws.ec2#GetImageAncestry" + }, + { + "target": "com.amazonaws.ec2#GetImageBlockPublicAccessState" + }, + { + "target": "com.amazonaws.ec2#GetImageFindings" + }, + { + "target": "com.amazonaws.ec2#GetInstanceMetadataDefaults" + }, + { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPub" + }, + { + "target": "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirements" + }, + { + "target": "com.amazonaws.ec2#GetInstanceUefiData" + }, + { + "target": "com.amazonaws.ec2#GetIpamAddressHistory" + }, + { + "target": "com.amazonaws.ec2#GetIpamDiscoveredAccounts" + }, + { + "target": "com.amazonaws.ec2#GetIpamDiscoveredPublicAddresses" + }, + { + "target": "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrs" + }, + { + "target": "com.amazonaws.ec2#GetIpamDiscoveredRoutes" + }, + { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsns" + }, + { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrs" + }, + { + "target": "com.amazonaws.ec2#GetIpamPolicyAllocationRules" + }, + { + "target": "com.amazonaws.ec2#GetIpamPolicyOrganizationTargets" + }, + { + "target": "com.amazonaws.ec2#GetIpamPoolAllocations" + }, + { + "target": "com.amazonaws.ec2#GetIpamPoolCidrs" + }, + { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverRules" + }, + { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntries" + }, + { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersions" + }, + { + "target": "com.amazonaws.ec2#GetIpamResourceCidrs" + }, + { + "target": "com.amazonaws.ec2#GetIpamRouteOriginAuthorizations" + }, + { + "target": "com.amazonaws.ec2#GetIpamRouteProtectionFindings" + }, + { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltas" + }, + { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrations" + }, + { + "target": "com.amazonaws.ec2#GetLaunchTemplateData" + }, + { + "target": "com.amazonaws.ec2#GetManagedPrefixListAssociations" + }, + { + "target": "com.amazonaws.ec2#GetManagedPrefixListEntries" + }, + { + "target": "com.amazonaws.ec2#GetManagedResourceVisibility" + }, + { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindings" + }, + { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContent" + }, + { + "target": "com.amazonaws.ec2#GetPasswordData" + }, + { + "target": "com.amazonaws.ec2#GetReservedInstancesExchangeQuote" + }, + { + "target": "com.amazonaws.ec2#GetRouteServerAssociations" + }, + { + "target": "com.amazonaws.ec2#GetRouteServerPropagations" + }, + { + "target": "com.amazonaws.ec2#GetRouteServerRoutingDatabase" + }, + { + "target": "com.amazonaws.ec2#GetSecurityGroupsForVpc" + }, + { + "target": "com.amazonaws.ec2#GetSerialConsoleAccessStatus" + }, + { + "target": "com.amazonaws.ec2#GetSnapshotBlockPublicAccessState" + }, + { + "target": "com.amazonaws.ec2#GetSpotPlacementScores" + }, + { + "target": "com.amazonaws.ec2#GetSubnetCidrReservations" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfiguration" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagations" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntries" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociations" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociations" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntries" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayPrefixListReferences" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociations" + }, + { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagations" + }, + { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicy" + }, + { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointTargets" + }, + { + "target": "com.amazonaws.ec2#GetVerifiedAccessGroupPolicy" + }, + { + "target": "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcement" + }, + { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfiguration" + }, + { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceTypes" + }, + { + "target": "com.amazonaws.ec2#GetVpnTunnelReplacementStatus" + }, + { + "target": "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationList" + }, + { + "target": "com.amazonaws.ec2#ImportImage" + }, + { + "target": "com.amazonaws.ec2#ImportInstance" + }, + { + "target": "com.amazonaws.ec2#ImportKeyPair" + }, + { + "target": "com.amazonaws.ec2#ImportSnapshot" + }, + { + "target": "com.amazonaws.ec2#ImportVolume" + }, + { + "target": "com.amazonaws.ec2#ListImagesInRecycleBin" + }, + { + "target": "com.amazonaws.ec2#ListSnapshotsInRecycleBin" + }, + { + "target": "com.amazonaws.ec2#ListVolumesInRecycleBin" + }, + { + "target": "com.amazonaws.ec2#LockSnapshot" + }, + { + "target": "com.amazonaws.ec2#ModifyAccountVpcEncryptionControl" + }, + { + "target": "com.amazonaws.ec2#ModifyAddressAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyApplicationStatusCheck" + }, + { + "target": "com.amazonaws.ec2#ModifyAvailabilityZoneGroup" + }, + { + "target": "com.amazonaws.ec2#ModifyCapacityReservation" + }, + { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleet" + }, + { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpoint" + }, + { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicy" + }, + { + "target": "com.amazonaws.ec2#ModifyDefaultCreditSpecification" + }, + { + "target": "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyId" + }, + { + "target": "com.amazonaws.ec2#ModifyFleet" + }, + { + "target": "com.amazonaws.ec2#ModifyFpgaImageAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyHosts" + }, + { + "target": "com.amazonaws.ec2#ModifyIdentityIdFormat" + }, + { + "target": "com.amazonaws.ec2#ModifyIdFormat" + }, + { + "target": "com.amazonaws.ec2#ModifyImageAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributes" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceConnectEndpoint" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceCpuOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceCreditSpecification" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceEventStartTime" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceEventWindow" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceMaintenanceOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataDefaults" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyInstancePlacement" + }, + { + "target": "com.amazonaws.ec2#ModifyIpam" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamPolicyAllocationRules" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamPool" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamPoolAllocation" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolver" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolverTarget" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamResourceCidr" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamResourceDiscovery" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistration" + }, + { + "target": "com.amazonaws.ec2#ModifyIpamScope" + }, + { + "target": "com.amazonaws.ec2#ModifyLaunchTemplate" + }, + { + "target": "com.amazonaws.ec2#ModifyLocalGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#ModifyManagedPrefixList" + }, + { + "target": "com.amazonaws.ec2#ModifyManagedResourceVisibility" + }, + { + "target": "com.amazonaws.ec2#ModifyNetworkInterfaceAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyPrivateDnsNameOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyPublicIpDnsNameOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyReservedInstances" + }, + { + "target": "com.amazonaws.ec2#ModifyRouteServer" + }, + { + "target": "com.amazonaws.ec2#ModifySecurityGroupRules" + }, + { + "target": "com.amazonaws.ec2#ModifySnapshotAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifySnapshotTier" + }, + { + "target": "com.amazonaws.ec2#ModifySpotFleetRequest" + }, + { + "target": "com.amazonaws.ec2#ModifySubnetAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServices" + }, + { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterRule" + }, + { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorSession" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGateway" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfiguration" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicy" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntry" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReference" + }, + { + "target": "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachment" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpoint" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicy" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroup" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicy" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstance" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfiguration" + }, + { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessTrustProvider" + }, + { + "target": "com.amazonaws.ec2#ModifyVolume" + }, + { + "target": "com.amazonaws.ec2#ModifyVolumeAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcAttribute" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusion" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEncryptionControl" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpoint" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotification" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibility" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServiceConfiguration" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibility" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePermissions" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyVpcTenancy" + }, + { + "target": "com.amazonaws.ec2#ModifyVpnConnection" + }, + { + "target": "com.amazonaws.ec2#ModifyVpnConnectionOptions" + }, + { + "target": "com.amazonaws.ec2#ModifyVpnTunnelCertificate" + }, + { + "target": "com.amazonaws.ec2#ModifyVpnTunnelOptions" + }, + { + "target": "com.amazonaws.ec2#MonitorInstances" + }, + { + "target": "com.amazonaws.ec2#MoveAddressToVpc" + }, + { + "target": "com.amazonaws.ec2#MoveByoipCidrToIpam" + }, + { + "target": "com.amazonaws.ec2#MoveCapacityReservationInstances" + }, + { + "target": "com.amazonaws.ec2#ProvisionByoipCidr" + }, + { + "target": "com.amazonaws.ec2#ProvisionIpamByoasn" + }, + { + "target": "com.amazonaws.ec2#ProvisionIpamPoolCidr" + }, + { + "target": "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidr" + }, + { + "target": "com.amazonaws.ec2#PurchaseCapacityBlock" + }, + { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtension" + }, + { + "target": "com.amazonaws.ec2#PurchaseHostReservation" + }, + { + "target": "com.amazonaws.ec2#PurchaseReservedInstancesOffering" + }, + { + "target": "com.amazonaws.ec2#PurchaseScheduledInstances" + }, + { + "target": "com.amazonaws.ec2#RebootInstances" + }, + { + "target": "com.amazonaws.ec2#RegisterImage" + }, + { + "target": "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributes" + }, + { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembers" + }, + { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSources" + }, + { + "target": "com.amazonaws.ec2#RejectCapacityReservationBillingOwnership" + }, + { + "target": "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachment" + }, + { + "target": "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociations" + }, + { + "target": "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachment" + }, + { + "target": "com.amazonaws.ec2#RejectTransitGatewayVpcAttachment" + }, + { + "target": "com.amazonaws.ec2#RejectVpcEndpointConnections" + }, + { + "target": "com.amazonaws.ec2#RejectVpcPeeringConnection" + }, + { + "target": "com.amazonaws.ec2#ReleaseAddress" + }, + { + "target": "com.amazonaws.ec2#ReleaseHosts" + }, + { + "target": "com.amazonaws.ec2#ReleaseIpamPoolAllocation" + }, + { + "target": "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociation" + }, + { + "target": "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettings" + }, + { + "target": "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecification" + }, + { + "target": "com.amazonaws.ec2#ReplaceNetworkAclAssociation" + }, + { + "target": "com.amazonaws.ec2#ReplaceNetworkAclEntry" + }, + { + "target": "com.amazonaws.ec2#ReplaceRoute" + }, + { + "target": "com.amazonaws.ec2#ReplaceRouteTableAssociation" + }, + { + "target": "com.amazonaws.ec2#ReplaceTransitGatewayRoute" + }, + { + "target": "com.amazonaws.ec2#ReplaceVpnTunnel" + }, + { + "target": "com.amazonaws.ec2#ReportInstanceStatus" + }, + { + "target": "com.amazonaws.ec2#RequestSpotFleet" + }, + { + "target": "com.amazonaws.ec2#RequestSpotInstances" + }, + { + "target": "com.amazonaws.ec2#ResetAddressAttribute" + }, + { + "target": "com.amazonaws.ec2#ResetEbsDefaultKmsKeyId" + }, + { + "target": "com.amazonaws.ec2#ResetFpgaImageAttribute" + }, + { + "target": "com.amazonaws.ec2#ResetImageAttribute" + }, + { + "target": "com.amazonaws.ec2#ResetInstanceAttribute" + }, + { + "target": "com.amazonaws.ec2#ResetNetworkInterfaceAttribute" + }, + { + "target": "com.amazonaws.ec2#ResetSnapshotAttribute" + }, + { + "target": "com.amazonaws.ec2#RestoreAddressToClassic" + }, + { + "target": "com.amazonaws.ec2#RestoreImageFromRecycleBin" + }, + { + "target": "com.amazonaws.ec2#RestoreManagedPrefixListVersion" + }, + { + "target": "com.amazonaws.ec2#RestoreSnapshotFromRecycleBin" + }, + { + "target": "com.amazonaws.ec2#RestoreSnapshotTier" + }, + { + "target": "com.amazonaws.ec2#RestoreVolumeFromRecycleBin" + }, + { + "target": "com.amazonaws.ec2#RevokeClientVpnIngress" + }, + { + "target": "com.amazonaws.ec2#RevokeSecurityGroupEgress" + }, + { + "target": "com.amazonaws.ec2#RevokeSecurityGroupIngress" + }, + { + "target": "com.amazonaws.ec2#RunInstances" + }, + { + "target": "com.amazonaws.ec2#RunScheduledInstances" + }, + { + "target": "com.amazonaws.ec2#SearchLocalGatewayRoutes" + }, + { + "target": "com.amazonaws.ec2#SearchTransitGatewayMulticastGroups" + }, + { + "target": "com.amazonaws.ec2#SearchTransitGatewayRoutes" + }, + { + "target": "com.amazonaws.ec2#SendDiagnosticInterrupt" + }, + { + "target": "com.amazonaws.ec2#StartDeclarativePoliciesReport" + }, + { + "target": "com.amazonaws.ec2#StartInstances" + }, + { + "target": "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysis" + }, + { + "target": "com.amazonaws.ec2#StartNetworkInsightsAnalysis" + }, + { + "target": "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerification" + }, + { + "target": "com.amazonaws.ec2#StopInstances" + }, + { + "target": "com.amazonaws.ec2#TerminateClientVpnConnections" + }, + { + "target": "com.amazonaws.ec2#TerminateInstances" + }, + { + "target": "com.amazonaws.ec2#UnassignIpv6Addresses" + }, + { + "target": "com.amazonaws.ec2#UnassignPrivateIpAddresses" + }, + { + "target": "com.amazonaws.ec2#UnassignPrivateNatGatewayAddress" + }, + { + "target": "com.amazonaws.ec2#UnlockSnapshot" + }, + { + "target": "com.amazonaws.ec2#UnmonitorInstances" + }, + { + "target": "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeys" + }, + { + "target": "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccess" + }, + { + "target": "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocation" + }, + { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgress" + }, + { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngress" + }, + { + "target": "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterface" + }, + { + "target": "com.amazonaws.ec2#WithdrawByoipCidr" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "EC2", + "arnNamespace": "ec2", + "cloudFormationName": "EC2", + "cloudTrailEventSource": "ec2.amazonaws.com", + "endpointPrefix": "ec2" + }, + "aws.auth#sigv4": { + "name": "ec2" + }, + "aws.protocols#ec2Query": {}, + "smithy.api#documentation": "Amazon Elastic Compute Cloud\n

This is the Amazon EC2 API Reference. It provides descriptions, API request\n parameters, and the XML response for each of the Amazon EC2 Query API actions. Note that the\n Amazon EC2 API includes actions for Amazon EC2 plus additional services, such as Amazon EBS and Amazon VPC.

\n

\n Learn more\n

\n \n

Alternatively, use one of the following methods to access the Amazon EC2 API, instead of using\n the Query API directly:

\n ", + "smithy.api#title": "Amazon Elastic Compute Cloud", + "smithy.api#xmlNamespace": { + "uri": "http://ec2.amazonaws.com/doc/2016-11-15" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 14, + "nodes": "/////wAAAAH/////AAAAAAAAAA0AAAADAAAAAQAAAAQF9eEMAAAAAgAAAAUF9eEMAAAAAwAAAAgAAAAGAAAABAAAAAcF9eELAAAABQX14QkF9eEKAAAABAAAAAsAAAAJAAAABgAAAAoF9eEIAAAABwX14QYF9eEHAAAABQAAAAwF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAAOAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{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://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-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://ec2.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-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://ec2-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://ec2.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-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://ec2.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://ec2.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + } + }, + "com.amazonaws.ec2#AmdSevSnp": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#AmdSevSnpSpecification": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#AnalysisAclRule": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "Egress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Egress", + "smithy.api#documentation": "

Indicates whether the rule is an outbound rule.

", + "smithy.api#xmlName": "egress" + } + }, + "PortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "PortRange", + "smithy.api#documentation": "

The range of ports.

", + "smithy.api#xmlName": "portRange" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#documentation": "

Indicates whether to allow or deny traffic that matches the rule.

", + "smithy.api#xmlName": "ruleAction" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#documentation": "

The rule number.

", + "smithy.api#xmlName": "ruleNumber" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network access control (ACL) rule.

" + } + }, + "com.amazonaws.ec2#AnalysisComponent": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The ID of the component.

", + "smithy.api#xmlName": "id" + } + }, + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the component.

", + "smithy.api#xmlName": "arn" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the analysis component.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path component.

" + } + }, + "com.amazonaws.ec2#AnalysisComponentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AnalysisLoadBalancerListener": { + "type": "structure", + "members": { + "LoadBalancerPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerPort", + "smithy.api#documentation": "

The port on which the load balancer is listening.

", + "smithy.api#xmlName": "loadBalancerPort" + } + }, + "InstancePort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "InstancePort", + "smithy.api#documentation": "

[Classic Load Balancers] The back-end port for the listener.

", + "smithy.api#xmlName": "instancePort" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load balancer listener.

" + } + }, + "com.amazonaws.ec2#AnalysisLoadBalancerTarget": { + "type": "structure", + "members": { + "Address": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "Address", + "smithy.api#documentation": "

The IP address.

", + "smithy.api#xmlName": "address" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Instance": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Instance", + "smithy.api#documentation": "

Information about the instance.

", + "smithy.api#xmlName": "instance" + } + }, + "Port": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The port on which the target is listening.

", + "smithy.api#xmlName": "port" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load balancer target.

" + } + }, + "com.amazonaws.ec2#AnalysisPacketHeader": { + "type": "structure", + "members": { + "DestinationAddresses": { + "target": "com.amazonaws.ec2#IpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationAddressSet", + "smithy.api#documentation": "

The destination addresses.

", + "smithy.api#xmlName": "destinationAddressSet" + } + }, + "DestinationPortRanges": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRangeSet", + "smithy.api#documentation": "

The destination port ranges.

", + "smithy.api#xmlName": "destinationPortRangeSet" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "SourceAddresses": { + "target": "com.amazonaws.ec2#IpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "SourceAddressSet", + "smithy.api#documentation": "

The source addresses.

", + "smithy.api#xmlName": "sourceAddressSet" + } + }, + "SourcePortRanges": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRangeSet", + "smithy.api#documentation": "

The source port ranges.

", + "smithy.api#xmlName": "sourcePortRangeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a header. Reflects any changes made by a component as traffic passes through.\n The fields of an inbound header are null except for the first component of a path.

" + } + }, + "com.amazonaws.ec2#AnalysisRouteTableRoute": { + "type": "structure", + "members": { + "DestinationCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidr", + "smithy.api#documentation": "

The destination IPv4 address, in CIDR notation.

", + "smithy.api#xmlName": "destinationCidr" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPrefixListId", + "smithy.api#documentation": "

The prefix of the Amazon Web Services service.

", + "smithy.api#xmlName": "destinationPrefixListId" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewayId", + "smithy.api#documentation": "

The ID of an egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGatewayId" + } + }, + "GatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of the gateway, such as an internet gateway or virtual private gateway.

", + "smithy.api#xmlName": "gatewayId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance, such as a NAT instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of a NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of a network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Origin": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Origin", + "smithy.api#documentation": "

Describes how the route was created. The following are the possible values:

\n
    \n
  • \n

    CreateRouteTable - The route was automatically created when the route table was created.

    \n
  • \n
  • \n

    CreateRoute - The route was manually added to the route table.

    \n
  • \n
  • \n

    EnableVgwRoutePropagation - The route was propagated by route propagation.

    \n
  • \n
", + "smithy.api#xmlName": "origin" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of a transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of a VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state. The following are the possible values:

\n
    \n
  • \n

    active

    \n
  • \n
  • \n

    blackhole

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGatewayId", + "smithy.api#documentation": "

The ID of a carrier gateway.

", + "smithy.api#xmlName": "carrierGatewayId" + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a core network.

", + "smithy.api#xmlName": "coreNetworkArn" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of a local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route table route.

" + } + }, + "com.amazonaws.ec2#AnalysisSecurityGroupRule": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "Direction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Direction", + "smithy.api#documentation": "

The direction. The following are the possible values:

\n
    \n
  • \n

    egress

    \n
  • \n
  • \n

    ingress

    \n
  • \n
", + "smithy.api#xmlName": "direction" + } + }, + "SecurityGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupId", + "smithy.api#documentation": "

The security group ID.

", + "smithy.api#xmlName": "securityGroupId" + } + }, + "PortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "PortRange", + "smithy.api#documentation": "

The port range.

", + "smithy.api#xmlName": "portRange" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The prefix list ID.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol name.

", + "smithy.api#xmlName": "protocol" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group rule.

" + } + }, + "com.amazonaws.ec2#AnalysisStatus": { + "type": "enum", + "members": { + "running": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "succeeded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#AnalysisTransitGatewayPolicyTableEntry": { + "type": "structure", + "members": { + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#documentation": "

The rule number for the policy table entry. Entries are evaluated in ascending order of rule number.

", + "smithy.api#xmlName": "ruleNumber" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol number. A value of -1 means that the entry matches all protocols.

", + "smithy.api#xmlName": "protocol" + } + }, + "SourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceCidr", + "smithy.api#documentation": "

The source CIDR block. If this value is not present, the entry matches any source address.

", + "smithy.api#xmlName": "sourceCidr" + } + }, + "DestinationCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidr", + "smithy.api#documentation": "

The destination CIDR block. If this value is not present, the entry matches any destination address.

", + "smithy.api#xmlName": "destinationCidr" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRange", + "smithy.api#documentation": "

The source port range. If this value is not present, the entry matches any source port.

", + "smithy.api#xmlName": "sourcePortRange" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRange", + "smithy.api#documentation": "

The destination port range. If this value is not present, the entry matches any destination port.

", + "smithy.api#xmlName": "destinationPortRange" + } + }, + "TargetRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TargetRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table to which the entry routes matching traffic.

", + "smithy.api#xmlName": "targetRouteTableId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an entry in a transit gateway policy table.

" + } + }, + "com.amazonaws.ec2#ApplianceModeSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#ApplicationStatus": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ApplicationStatusEnum", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current instance-level application status. This status is derived from application status checks with Aggregation set to included. Possible values:

\n
    \n
  • \n

    \n ok – All included checks passed.

    \n
  • \n
  • \n

    \n impaired – At least one included check failed.

    \n
  • \n
  • \n

    \n initializing – At least one included check is initializing, and no included check is impaired.

    \n
  • \n
  • \n

    \n insufficient-data – At least one included check has insufficient data, and no included check is impaired or initializing.

    \n
  • \n
  • \n

    \n not-applicable – No checks with Aggregation set to included apply to the instance.

    \n
  • \n
  • \n

    \n suppressed – Application status reporting is suppressed for the instance.

    \n
  • \n
\n

Checks with Aggregation set to excluded do not affect this value.

", + "smithy.api#xmlName": "status" + } + }, + "StatusTimeStamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StatusTimeStamp", + "smithy.api#documentation": "

The date and time of the last status update.

", + "smithy.api#xmlName": "statusTimeStamp" + } + }, + "StatusSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StatusSince", + "smithy.api#documentation": "

The date and time when the current status started.

", + "smithy.api#xmlName": "statusSince" + } + }, + "ResumeAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ResumeAt", + "smithy.api#documentation": "

The date and time when application status reporting resumes after suppression.

", + "smithy.api#xmlName": "resumeAt" + } + }, + "Details": { + "target": "com.amazonaws.ec2#ApplicationStatusDetailSet", + "traits": { + "aws.protocols#ec2QueryName": "DetailSet", + "smithy.api#documentation": "

Details about the application status checks for the instance.

", + "smithy.api#xmlName": "detailSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the application-level health status for an instance.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckAssociationObject": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckId", + "smithy.api#documentation": "

The ID of the application status check.

", + "smithy.api#xmlName": "applicationStatusCheckId" + } + }, + "AssociationType": { + "target": "com.amazonaws.ec2#AssociationTypeEnum", + "traits": { + "aws.protocols#ec2QueryName": "AssociationType", + "smithy.api#documentation": "

The type of target that the application status check is associated with. Possible values:

\n
    \n
  • \n

    \n tag – The check applies to current and future instances with a matching tag key-value pair.

    \n
  • \n
  • \n

    \n instance-id – The check applies to a specific instance.

    \n
  • \n
", + "smithy.api#xmlName": "associationType" + } + }, + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The key for the association. This value is present only for tag-based associations, where it contains the tag key. For instance-based associations, this value is absent.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value for the association target. For tag-based associations, this is the tag value. For instance-based associations, this is the instance ID (for example, i-0123456789abcdef0).

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an application status check association. Each item in the associationSet of a DescribeApplicationStatusCheckAssociations response is of this type.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckAssociationObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckEnum": { + "type": "enum", + "members": { + "PASSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "passed" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "INITIALIZING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initializing" + } + }, + "INSUFFICIENT_DATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + }, + "NOT_APPLICABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-applicable" + } + } + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckId": { + "type": "string" + }, + "com.amazonaws.ec2#ApplicationStatusCheckIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckResponseObject": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckId", + "smithy.api#documentation": "

The ID of the application status check.

", + "smithy.api#xmlName": "applicationStatusCheckId" + } + }, + "Aggregation": { + "target": "com.amazonaws.ec2#AggregationStatusEnum", + "traits": { + "aws.protocols#ec2QueryName": "Aggregation", + "smithy.api#documentation": "

The aggregation setting for the application status check. When set to included, the result of this check contributes to the instance-level application status. When set to excluded, the check runs independently and does not affect the instance-level status.

", + "smithy.api#xmlName": "aggregation" + } + }, + "HealthCheckPaths": { + "target": "com.amazonaws.ec2#HealthCheckPathResponseList", + "traits": { + "aws.protocols#ec2QueryName": "HealthCheckPathSet", + "smithy.api#documentation": "

The health check paths for the application status check.

", + "smithy.api#xmlName": "healthCheckPathSet" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#NetworkProtocolEnum", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol used for the health check.

", + "smithy.api#xmlName": "protocol" + } + }, + "Port": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The port used for the health check.

", + "smithy.api#xmlName": "port" + } + }, + "Path": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Path", + "smithy.api#documentation": "

The URL path used for the health check HTTP request.

", + "smithy.api#xmlName": "path" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The index of the network device used for the health check. The value is greater than or equal to 0.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "IpVersion": { + "target": "com.amazonaws.ec2#IpVersionEnum", + "traits": { + "aws.protocols#ec2QueryName": "IpVersion", + "smithy.api#documentation": "

The IP version used for the health check.

", + "smithy.api#xmlName": "ipVersion" + } + }, + "IpScope": { + "target": "com.amazonaws.ec2#IpScopeEnum", + "traits": { + "aws.protocols#ec2QueryName": "IpScope", + "smithy.api#documentation": "

The IP scope used for the health check.

", + "smithy.api#xmlName": "ipScope" + } + }, + "Interval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Interval", + "smithy.api#documentation": "

The interval, in seconds, between health checks. Valid value: 60.

", + "smithy.api#xmlName": "interval" + } + }, + "Timeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Timeout", + "smithy.api#documentation": "

The amount of time, in seconds, to wait for a health check response. Valid values: 1 to 30.

", + "smithy.api#xmlName": "timeout" + } + }, + "FailureThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FailureThreshold", + "smithy.api#documentation": "

The number of consecutive failed health checks before the application status is considered impaired. The value must be greater than 0.

", + "smithy.api#xmlName": "failureThreshold" + } + }, + "SuccessThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SuccessThreshold", + "smithy.api#documentation": "

The number of consecutive successful health checks before the application status is considered healthy. The value must be greater than 0.

", + "smithy.api#xmlName": "successThreshold" + } + }, + "StatusCodeMatcher": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusCodeMatcher", + "smithy.api#documentation": "

The comma-separated list of individual HTTP status codes or ranges that indicate a successful health check response.

", + "smithy.api#xmlName": "statusCodeMatcher" + } + }, + "InitializationGracePeriodSeconds": { + "target": "com.amazonaws.ec2#InitializationGracePeriodSeconds", + "traits": { + "aws.protocols#ec2QueryName": "InitializationGracePeriodSeconds", + "smithy.api#documentation": "

The number of seconds to wait before starting health checks after an instance is launched. Valid values: 1 to 600.

", + "smithy.api#xmlName": "initializationGracePeriodSeconds" + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedAt", + "smithy.api#documentation": "

The date and time when the application status check was last updated.

", + "smithy.api#xmlName": "lastUpdatedAt" + } + }, + "TargetTagAssociations": { + "target": "com.amazonaws.ec2#CustomKeyValuePairResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "TargetTagAssociationSet", + "smithy.api#documentation": "

The tags associated with the application status check. Instances with these tags are automatically monitored by this check.

", + "smithy.api#xmlName": "targetTagAssociationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the application status check.

", + "smithy.api#xmlName": "tagSet" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The date and time when the application status check was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "ModifyTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ModifyTime", + "smithy.api#documentation": "

The date and time when the application status check was last modified.

", + "smithy.api#xmlName": "modifyTime" + } + }, + "DeletionTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DeletionTime", + "smithy.api#documentation": "

The date and time when the application status check was deleted.

", + "smithy.api#xmlName": "deletionTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an application status check.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusCheckResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ApplicationStatusDetail": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckId", + "smithy.api#documentation": "

The ID of the application status check.

", + "smithy.api#xmlName": "applicationStatusCheckId" + } + }, + "CheckUpdateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CheckUpdateTime", + "smithy.api#documentation": "

The date and time when the check was last updated.

", + "smithy.api#xmlName": "checkUpdateTime" + } + }, + "Aggregation": { + "target": "com.amazonaws.ec2#AggregationStatusEnum", + "traits": { + "aws.protocols#ec2QueryName": "Aggregation", + "smithy.api#documentation": "

The aggregation setting for the application status check. When set to included, the result of this check contributes to the instance-level application status. When set to excluded, the check runs independently and does not affect the instance-level status.

", + "smithy.api#xmlName": "aggregation" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckEnum", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the individual application status check. Possible values:

\n
    \n
  • \n

    \n passed – The check reached its success threshold.

    \n
  • \n
  • \n

    \n failed – The check reached its failure threshold.

    \n
  • \n
  • \n

    \n initializing – The check is initializing or has not reached a success or failure threshold.

    \n
  • \n
  • \n

    \n insufficient-data – The check does not have enough data to determine a result.

    \n
  • \n
  • \n

    \n not-applicable – The check does not apply to the instance.

    \n
  • \n
\n

This value reflects the check result and is not affected by aggregation or suppression.

", + "smithy.api#xmlName": "status" + } + }, + "StatusTimeStamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StatusTimeStamp", + "smithy.api#documentation": "

The date and time of the last status update for this check.

", + "smithy.api#xmlName": "statusTimeStamp" + } + }, + "StatusSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StatusSince", + "smithy.api#documentation": "

The date and time when the current status started for this check.

", + "smithy.api#xmlName": "statusSince" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#ApplicationStatusReason", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason for the current status.

", + "smithy.api#xmlName": "reason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the details of an application status check for an instance.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusDetailSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ApplicationStatusDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ApplicationStatusEnum": { + "type": "enum", + "members": { + "OK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ok" + } + }, + "IMPAIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + }, + "INITIALIZING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initializing" + } + }, + "INSUFFICIENT_DATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + }, + "NOT_APPLICABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-applicable" + } + }, + "SUPPRESSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suppressed" + } + } + } + }, + "com.amazonaws.ec2#ApplicationStatusReason": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The reason code for the application status check result. Possible values:

\n
    \n
  • \n

    \n ResponseCodeMatched – The HTTP status code returned by the health check matched the configured StatusCodeMatcher.

    \n
  • \n
  • \n

    \n ResponseCodeMismatch – The HTTP status code returned by the health check did not match the configured StatusCodeMatcher.

    \n
  • \n
  • \n

    \n ConnectionTimeout – The connection to the target timed out.

    \n
  • \n
  • \n

    \n ResponseTimeout – The health check timed out while waiting for a response from the target.

    \n
  • \n
  • \n

    \n ConnectionRefused – The target refused the health check connection.

    \n
  • \n
  • \n

    \n ConnectionReset – The target reset the health check connection before returning a response.

    \n
  • \n
\n

Current health check results use the values in the preceding list. Legacy results that do not contain structured reason metadata can instead contain a producer error type, such as Http Status Code or HttpConnectTimeoutException.

\n

For ResponseCodeMatched and ResponseCodeMismatch, the statusCode field contains the returned HTTP status code. The protocol field contains the protocol used for the health check.

", + "smithy.api#xmlName": "code" + } + }, + "StatusCode": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "StatusCode", + "smithy.api#documentation": "

The HTTP status code returned by the health check.

", + "smithy.api#xmlName": "statusCode" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol used for the health check. Possible values: HTTP and HTTPS.

", + "smithy.api#xmlName": "protocol" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the reason for an application status check result.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusSummary": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#SummaryStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current status.

", + "smithy.api#xmlName": "status" + } + }, + "ImpairedSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ImpairedSince", + "smithy.api#documentation": "

The date and time when the application status became impaired.

", + "smithy.api#xmlName": "impairedSince" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summary of the application-level health status for an instance.

" + } + }, + "com.amazonaws.ec2#ApplicationStatusesResponseType": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#InstanceApplicationStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

The application status information for the instances.

", + "smithy.api#xmlName": "instanceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the application statuses for instances.

" + } + }, + "com.amazonaws.ec2#ApplyCancellationCharges": { + "type": "enum", + "members": { + "COMMITMENT_WIND_DOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commitment-wind-down" + } + } + } + }, + "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkResult" + }, + "traits": { + "smithy.api#documentation": "

Applies a security group to the association between the target network and the Client VPN endpoint. This action replaces the existing \n\t\t\tsecurity groups with the specified security groups.

" + } + }, + "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC in which the associated target network is located.

", + "smithy.api#required": {} + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the security groups to apply to the associated target network. Up to 5 security groups can \n\t\t\tbe applied to an associated target network.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ApplySecurityGroupsToClientVpnTargetNetworkResult": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupIds", + "smithy.api#documentation": "

The IDs of the applied security groups.

", + "smithy.api#xmlName": "securityGroupIds" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ArchitectureType": { + "type": "enum", + "members": { + "i386": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i386" + } + }, + "x86_64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x86_64" + } + }, + "arm64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "arm64" + } + }, + "x86_64_mac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x86_64_mac" + } + }, + "arm64_mac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "arm64_mac" + } + } + } + }, + "com.amazonaws.ec2#ArchitectureTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ArchitectureType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ArchitectureTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ArchitectureType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + }, + "com.amazonaws.ec2#ArchitectureValues": { + "type": "enum", + "members": { + "i386": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i386" + } + }, + "x86_64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x86_64" + } + }, + "arm64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "arm64" + } + }, + "x86_64_mac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x86_64_mac" + } + }, + "arm64_mac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "arm64_mac" + } + } + } + }, + "com.amazonaws.ec2#ArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AsPath": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AsnAssociation": { + "type": "structure", + "members": { + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The association's ASN.

", + "smithy.api#xmlName": "asn" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The association's CIDR.

", + "smithy.api#xmlName": "cidr" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The association's status message.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "State": { + "target": "com.amazonaws.ec2#AsnAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The association's state.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Autonomous System Number (ASN) and BYOIP CIDR association.

" + } + }, + "com.amazonaws.ec2#AsnAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AsnAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AsnAssociationState": { + "type": "enum", + "members": { + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "failed_disassociation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-disassociation" + } + }, + "failed_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-association" + } + }, + "pending_disassociation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-disassociation" + } + }, + "pending_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-association" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + } + } + }, + "com.amazonaws.ec2#AsnAuthorizationContext": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The authorization context's message.

", + "smithy.api#required": {} + } + }, + "Signature": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The authorization context's signature.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides authorization for Amazon to bring an Autonomous System Number (ASN) to a specific Amazon Web Services account using bring your own ASN (BYOASN). \n For details on the format of the message and signature, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

" + } + }, + "com.amazonaws.ec2#AsnList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AsnState": { + "type": "enum", + "members": { + "deprovisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioned" + } + }, + "failed_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-deprovision" + } + }, + "failed_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-provision" + } + }, + "pending_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-deprovision" + } + }, + "pending_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-provision" + } + }, + "provisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned" + } + } + } + }, + "com.amazonaws.ec2#AssetId": { + "type": "string" + }, + "com.amazonaws.ec2#AssetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AssetId" + } + }, + "com.amazonaws.ec2#AssignIpv6Addresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssignIpv6AddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssignIpv6AddressesResult" + }, + "traits": { + "smithy.api#documentation": "

Assigns the specified IPv6 addresses to the specified network interface. You can\n specify specific IPv6 addresses, or you can specify the number of IPv6 addresses to be\n automatically assigned from the subnet's IPv6 CIDR block range. You can assign as many\n IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the\n limit varies by instance type.

\n

You must specify either the IPv6 addresses or the IPv6 address count in the request.

\n

You can optionally use Prefix Delegation on the network interface. You must specify\n either the IPV6 Prefix Delegation prefixes, or the IPv6 Prefix Delegation count. For\n information, see Assigning prefixes to network\n interfaces in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#AssignIpv6AddressesRequest": { + "type": "structure", + "members": { + "Ipv6PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 prefixes that Amazon Web Services automatically assigns to the\n network interface. You cannot use this option if you use the Ipv6Prefixes\n option.

" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "smithy.api#documentation": "

One or more IPv6 prefixes assigned to the network interface. You can't use this option if you use the Ipv6PrefixCount option.

", + "smithy.api#xmlName": "Ipv6Prefix" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#Ipv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Addresses", + "smithy.api#documentation": "

The IPv6 addresses to be assigned to the network interface. You can't use this option\n if you're specifying a number of IPv6 addresses.

", + "smithy.api#xmlName": "ipv6Addresses" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressCount", + "smithy.api#documentation": "

The number of additional IPv6 addresses to assign to the network interface. The\n specified number of IPv6 addresses are assigned in addition to the existing IPv6\n addresses that are already assigned to the network interface. Amazon EC2 automatically\n selects the IPv6 addresses from the subnet range. You can't use this option if\n specifying specific IPv6 addresses.

", + "smithy.api#xmlName": "ipv6AddressCount" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssignIpv6AddressesResult": { + "type": "structure", + "members": { + "AssignedIpv6Addresses": { + "target": "com.amazonaws.ec2#Ipv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "AssignedIpv6Addresses", + "smithy.api#documentation": "

The new IPv6 addresses assigned to the network interface. Existing IPv6 addresses that\n were assigned to the network interface before the request are not included.

", + "smithy.api#xmlName": "assignedIpv6Addresses" + } + }, + "AssignedIpv6Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "AssignedIpv6PrefixSet", + "smithy.api#documentation": "

The IPv6 prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "assignedIpv6PrefixSet" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssignPrivateIpAddresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssignPrivateIpAddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssignPrivateIpAddressesResult" + }, + "traits": { + "smithy.api#documentation": "

Assigns the specified secondary private IP addresses to the specified network\n interface.

\n

You can specify specific secondary IP addresses, or you can specify the number of\n secondary IP addresses to be automatically assigned from the subnet's CIDR block range.\n The number of secondary IP addresses that you can assign to an instance varies by\n instance type. For more information about Elastic IP addresses, see Elastic IP\n Addresses in the Amazon EC2 User Guide.

\n

When you move a secondary private IP address to another network interface, any Elastic\n IP address that is associated with the IP address is also moved.

\n

Remapping an IP address is an asynchronous operation. When you move an IP address from\n one network interface to another, check\n network/interfaces/macs/mac/local-ipv4s in the instance metadata to\n confirm that the remapping is complete.

\n

You must specify either the IP addresses or the IP address count in the\n request.

\n

You can optionally use Prefix Delegation on the network interface. You must specify\n either the IPv4 Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For\n information, see Assigning prefixes to network\n interfaces in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To assign a specific secondary private IP address to an interface", + "documentation": "This example assigns the specified secondary private IP address to the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-e5aa89a3", + "PrivateIpAddresses": [ + "10.0.0.82" + ] + } + }, + { + "title": "To assign secondary private IP addresses that Amazon EC2 selects to an interface", + "documentation": "This example assigns two secondary private IP addresses to the specified network interface. Amazon EC2 automatically assigns these IP addresses from the available IP addresses in the CIDR block range of the subnet the network interface is associated with.", + "input": { + "NetworkInterfaceId": "eni-e5aa89a3", + "SecondaryPrivateIpAddressCount": 2 + } + } + ] + } + }, + "com.amazonaws.ec2#AssignPrivateIpAddressesRequest": { + "type": "structure", + "members": { + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "smithy.api#documentation": "

One or more IPv4 prefixes assigned to the network interface. You can't use this option if you use the Ipv4PrefixCount option.

", + "smithy.api#xmlName": "Ipv4Prefix" + } + }, + "Ipv4PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface. You can't use this option if you use the Ipv4 Prefixes option.

" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressStringList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The IP addresses to be assigned as a secondary private IP address to the network\n interface. You can't specify this parameter when also specifying a number of secondary\n IP addresses.

\n

If you don't specify an IP address, Amazon EC2 automatically selects an IP address within\n the subnet range.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount", + "smithy.api#documentation": "

The number of secondary IP addresses to assign to the network interface. You can't\n specify this parameter when also specifying private IP addresses.

", + "smithy.api#xmlName": "secondaryPrivateIpAddressCount" + } + }, + "AllowReassignment": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowReassignment", + "smithy.api#documentation": "

Indicates whether to allow an IP address that is already assigned to another network\n interface or instance to be reassigned to the specified network interface.

", + "smithy.api#xmlName": "allowReassignment" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for AssignPrivateIpAddresses.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssignPrivateIpAddressesResult": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "AssignedPrivateIpAddresses": { + "target": "com.amazonaws.ec2#AssignedPrivateIpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "AssignedPrivateIpAddressesSet", + "smithy.api#documentation": "

The private IP addresses assigned to the network interface.

", + "smithy.api#xmlName": "assignedPrivateIpAddressesSet" + } + }, + "AssignedIpv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixesList", + "traits": { + "aws.protocols#ec2QueryName": "AssignedIpv4PrefixSet", + "smithy.api#documentation": "

The IPv4 prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "assignedIpv4PrefixSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssignPrivateNatGatewayAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssignPrivateNatGatewayAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssignPrivateNatGatewayAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Assigns private IPv4 addresses to a private NAT gateway. For more information, see \n Work with NAT gateways in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AssignPrivateNatGatewayAddressRequest": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#required": {} + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#IpList", + "traits": { + "smithy.api#documentation": "

The private IPv4 addresses you want to assign to the private NAT gateway.

", + "smithy.api#xmlName": "PrivateIpAddress" + } + }, + "PrivateIpAddressCount": { + "target": "com.amazonaws.ec2#PrivateIpAddressCount", + "traits": { + "smithy.api#documentation": "

The number of private IP addresses to assign to the NAT gateway. You can't specify this parameter when also specifying private IP addresses.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssignPrivateNatGatewayAddressResult": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "NatGatewayAddresses": { + "target": "com.amazonaws.ec2#NatGatewayAddressList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayAddressSet", + "smithy.api#documentation": "

NAT gateway IP addresses.

", + "smithy.api#xmlName": "natGatewayAddressSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssignedPrivateIpAddress": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IP address assigned to the network interface.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the private IP addresses assigned to a network interface.

" + } + }, + "com.amazonaws.ec2#AssignedPrivateIpAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AssignedPrivateIpAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AssociateAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an Elastic IP address, or carrier IP address (for instances that are in\n subnets in Wavelength Zones) with an instance or a network interface. Before you can use an\n Elastic IP address, you must allocate it to your account.

\n

If the Elastic IP address is already\n associated with a different instance, it is disassociated from that instance and associated\n with the specified instance. If you associate an Elastic IP address with an instance that has\n an existing Elastic IP address, the existing address is disassociated from the instance, but\n remains allocated to your account.

\n

[Subnets in Wavelength Zones] You can associate an IP address from the telecommunication\n carrier to the instance or network interface.

\n

You cannot associate an Elastic IP address with an interface in a different network border group.

\n \n

This is an idempotent operation. If you perform the operation more than once, Amazon EC2\n doesn't return an error, and you may be charged for each time the Elastic IP address is\n remapped to the same instance. For more information, see the Elastic IP\n Addresses section of Amazon EC2\n Pricing.

\n
", + "smithy.api#examples": [ + { + "title": "To associate an Elastic IP address", + "documentation": "This example associates the specified Elastic IP address with the specified instance.", + "input": { + "AllocationId": "eipalloc-64d5890a", + "InstanceId": "i-0b263919b6498b123" + }, + "output": { + "AssociationId": "eipassoc-2bebb745" + } + }, + { + "title": "To associate an Elastic IP address with a network interface", + "documentation": "This example associates the specified Elastic IP address with the specified network interface.", + "input": { + "AllocationId": "eipalloc-64d5890a", + "NetworkInterfaceId": "eni-1a2b3c4d" + }, + "output": { + "AssociationId": "eipassoc-2bebb745" + } + } + ] + } + }, + "com.amazonaws.ec2#AssociateAddressRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#documentation": "

The allocation ID. This is required.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the instance. The instance must have exactly one attached network interface.\n You can specify either the instance ID or the network interface ID, but not both.

" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#EipAllocationPublicIp", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.

\n

You can specify either the instance ID or the network interface ID, but not both.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "AllowReassociation": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowReassociation", + "smithy.api#documentation": "

Reassociation is automatic, but you can specify false to ensure the operation fails if the Elastic IP address is already associated with another resource.

", + "smithy.api#xmlName": "allowReassociation" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateAddressResult": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID that represents the association of the Elastic IP address with an instance.

", + "smithy.api#xmlName": "associationId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateApplicationStatusCheck": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateApplicationStatusCheckRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateApplicationStatusCheckResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an application status check with instances or tags. Once you create an association, health monitoring automatically begins for the specified instances or for instances that match the specified tags. The following rules apply:

\n
    \n
  • \n

    You must specify either TargetTagAssociations or InstanceIds, but not both. Specifying both results in an InvalidParameterCombination error.

    \n
  • \n
  • \n

    You must own the application status check. The check must already exist in your account.

    \n
  • \n
  • \n

    You must not leave tag keys blank.

    \n
  • \n
  • \n

    You can create a maximum of 50 tag associations for each application status check.

    \n
  • \n
  • \n

    You can use DisassociateApplicationStatusCheck to remove associations.

    \n
  • \n
  • \n

    You can associate tags so that the application status check automatically monitors all current and future instances that have the specified tags.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To associate an application status check with tags", + "documentation": "This example associates an application status check with instances matching the specified tag.", + "input": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "TargetTagAssociations": [ + { + "Key": "env", + "Value": "prod" + } + ] + }, + "output": { + "SuccessfulResults": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "AssociationType": "EC2TAG", + "AssociationValue": "env=prod" + } + ], + "UnsuccessfulResults": [] + } + } + ] + } + }, + "com.amazonaws.ec2#AssociateApplicationStatusCheckRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the application status check to associate.

", + "smithy.api#required": {} + } + }, + "TargetTagAssociations": { + "target": "com.amazonaws.ec2#CustomKeyValuePairRequestSet", + "traits": { + "smithy.api#documentation": "

The tags to associate the application status check with. Each tag is a key-value pair. When you associate tags, the application status check automatically monitors all instances that have the specified tags.

", + "smithy.api#xmlName": "TargetTagAssociation" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances to associate with the application status check.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateApplicationStatusCheckResult": { + "type": "structure", + "members": { + "SuccessfulResults": { + "target": "com.amazonaws.ec2#SuccessfulAssociationResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulResultSet", + "smithy.api#documentation": "

The associations that were successfully created.

", + "smithy.api#xmlName": "successfulResultSet" + } + }, + "UnsuccessfulResults": { + "target": "com.amazonaws.ec2#UnsuccessfulAssociationResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulResultSet", + "smithy.api#documentation": "

The associations that failed to be created.

", + "smithy.api#xmlName": "unsuccessfulResultSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateCapacityReservationBillingOwner": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerResult" + }, + "traits": { + "smithy.api#documentation": "

Initiates a request to assign billing of the unused capacity of a shared Capacity\n\t\t\tReservation to a consumer account that is consolidated under the same Amazon Web Services\n\t\t\torganizations payer account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" + } + }, + "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "UnusedReservationBillingOwnerId": { + "target": "com.amazonaws.ec2#AccountID", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the consumer account to which to assign billing.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateCapacityReservationBillingOwnerResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateClientVpnTargetNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateClientVpnTargetNetworkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateClientVpnTargetNetworkResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a target network with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy.

\n

If you specified a VPC when you created the Client VPN endpoint or if you have previous subnet associations, the specified subnet must be in the same VPC. To specify a subnet that's in a different VPC, you must first modify the Client VPN endpoint (ModifyClientVpnEndpoint) and change the VPC that's associated with it.

" + } + }, + "com.amazonaws.ec2#AssociateClientVpnTargetNetworkRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet to associate with the Client VPN endpoint. Required for VPC-based endpoints. For Transit Gateway-based endpoints, use AvailabilityZone or AvailabilityZoneId instead.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \nFor more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The Availability Zone name for the Transit Gateway association. Required if when associating an Availability Zone with a Client VPN endpoint that uses a Transit Gateway. You cannot specify both SubnetId and AvailabilityZone.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The Availability Zone ID for the Transit Gateway association. Required if when associating an Availability Zone with a Client VPN endpoint that uses a Transit Gateway. You cannot specify both AvailabilityZone and AvailabilityZoneId.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateClientVpnTargetNetworkResult": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The unique ID of the target network association.

", + "smithy.api#xmlName": "associationId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AssociationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the target network association.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateDhcpOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateDhcpOptionsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.

\n

After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.

\n

For more information, see DHCP option sets\n in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To associate a DHCP options set with a VPC", + "documentation": "This example associates the specified DHCP options set with the specified VPC.", + "input": { + "DhcpOptionsId": "dopt-d9070ebb", + "VpcId": "vpc-a01106c2" + } + }, + { + "title": "To associate the default DHCP options set with a VPC", + "documentation": "This example associates the default DHCP options set with the specified VPC.", + "input": { + "DhcpOptionsId": "default", + "VpcId": "vpc-a01106c2" + } + } + ] + } + }, + "com.amazonaws.ec2#AssociateDhcpOptionsRequest": { + "type": "structure", + "members": { + "DhcpOptionsId": { + "target": "com.amazonaws.ec2#DefaultingDhcpOptionsId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the DHCP options set, or default to associate \n no DHCP options with the VPC.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateEnclaveCertificateIamRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an Identity and Access Management (IAM) role with an Certificate Manager (ACM) certificate. \n\t\t\tThis enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. For more \n\t\t\tinformation, see Certificate Manager for Nitro Enclaves in the Amazon Web Services Nitro Enclaves \n\t\t\t\t\tUser Guide.

\n

When the IAM role is associated with the ACM certificate, the certificate, certificate chain, and encrypted \n\t\t\tprivate key are placed in an Amazon S3 location that only the associated IAM role can access. The private key of the certificate \n\t\t\tis encrypted with an Amazon Web Services managed key that has an attached attestation-based key policy.

\n

To enable the IAM role to access the Amazon S3 object, you must grant it permission to call s3:GetObject \n\t\t\ton the Amazon S3 bucket returned by the command. To enable the IAM role to access the KMS key,\n\t\t\tyou must grant it permission to call kms:Decrypt on the KMS key returned by the command. \n\t\t\tFor more information, see \n\t\t\t\tGrant the role permission to access the certificate and encryption key in the \n\t\t\tAmazon Web Services Nitro Enclaves User Guide.

" + } + }, + "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.ec2#CertificateId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the ACM certificate with which to associate the IAM role.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.ec2#RoleId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the IAM role to associate with the ACM certificate. You can associate up to 16 IAM roles with an ACM \n\t\t\tcertificate.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateEnclaveCertificateIamRoleResult": { + "type": "structure", + "members": { + "CertificateS3BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateS3BucketName", + "smithy.api#documentation": "

The name of the Amazon S3 bucket to which the certificate was uploaded.

", + "smithy.api#xmlName": "certificateS3BucketName" + } + }, + "CertificateS3ObjectKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateS3ObjectKey", + "smithy.api#documentation": "

The Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored. The \n\t\t\tobject key is formatted as follows: role_arn/certificate_arn.

", + "smithy.api#xmlName": "certificateS3ObjectKey" + } + }, + "EncryptionKmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionKmsKeyId", + "smithy.api#documentation": "

The ID of the KMS key used to encrypt the private key of the certificate.

", + "smithy.api#xmlName": "encryptionKmsKeyId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateIamInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateIamInstanceProfileRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateIamInstanceProfileResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an IAM instance profile with a running or stopped instance. You cannot\n associate more than one IAM instance profile with an instance.

", + "smithy.api#examples": [ + { + "title": "To associate an IAM instance profile with an instance", + "documentation": "This example associates an IAM instance profile named admin-role with the specified instance.", + "input": { + "IamInstanceProfile": { + "Name": "admin-role" + }, + "InstanceId": "i-123456789abcde123" + }, + "output": { + "IamInstanceProfileAssociation": { + "InstanceId": "i-123456789abcde123", + "State": "associating", + "AssociationId": "iip-assoc-0e7736511a163c209", + "IamInstanceProfile": { + "Id": "AIPAJBLK7RKJKWDXVHIEC", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + } + } + } + ] + } + }, + "com.amazonaws.ec2#AssociateIamInstanceProfileRequest": { + "type": "structure", + "members": { + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#required": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateIamInstanceProfileResult": { + "type": "structure", + "members": { + "IamInstanceProfileAssociation": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfileAssociation", + "smithy.api#documentation": "

Information about the IAM instance profile association.

", + "smithy.api#xmlName": "iamInstanceProfileAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateInstanceEventWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateInstanceEventWindowRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateInstanceEventWindowResult" + }, + "traits": { + "smithy.api#documentation": "

Associates one or more targets with an event window. Only one type of target (instance\n IDs, Dedicated Host IDs, or tags) can be specified with an event window.

\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#AssociateInstanceEventWindowRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#required": {} + } + }, + "AssociationTarget": { + "target": "com.amazonaws.ec2#InstanceEventWindowAssociationRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more targets associated with the specified event window.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateInstanceEventWindowResult": { + "type": "structure", + "members": { + "InstanceEventWindow": { + "target": "com.amazonaws.ec2#InstanceEventWindow", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindow", + "smithy.api#documentation": "

Information about the event window.

", + "smithy.api#xmlName": "instanceEventWindow" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateIpamByoasn": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateIpamByoasnRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateIpamByoasnResult" + }, + "traits": { + "smithy.api#documentation": "

Associates your Autonomous System Number (ASN) with a BYOIP CIDR that you own in the same Amazon Web Services Region. \n For more information, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

\n

After the association succeeds, the ASN is eligible for \n advertisement. You can view the association with DescribeByoipCidrs. You can advertise the CIDR with AdvertiseByoipCidr.

" + } + }, + "com.amazonaws.ec2#AssociateIpamByoasnRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A public 2-byte or 4-byte ASN.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The BYOIP CIDR you want to associate with an ASN.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateIpamByoasnResult": { + "type": "structure", + "members": { + "AsnAssociation": { + "target": "com.amazonaws.ec2#AsnAssociation", + "traits": { + "aws.protocols#ec2QueryName": "AsnAssociation", + "smithy.api#documentation": "

The ASN and BYOIP CIDR association.

", + "smithy.api#xmlName": "asnAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateIpamResourceDiscovery": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateIpamResourceDiscoveryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateIpamResourceDiscoveryResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an IPAM resource discovery with an Amazon VPC IPAM. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#AssociateIpamResourceDiscoveryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An IPAM ID.

", + "smithy.api#required": {} + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource discovery ID.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tag specifications.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A client token.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateIpamResourceDiscoveryResult": { + "type": "structure", + "members": { + "IpamResourceDiscoveryAssociation": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryAssociation", + "smithy.api#documentation": "

A resource discovery association. An associated resource discovery is a resource discovery that has been associated with an IPAM.

", + "smithy.api#xmlName": "ipamResourceDiscoveryAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateNatGatewayAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateNatGatewayAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateNatGatewayAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a public NAT gateway. For more information, \n see Work with NAT gateways in the Amazon VPC User Guide.

\n

By default, you can associate up to 2 Elastic IP addresses per public NAT gateway. You can increase the limit by requesting a quota adjustment. \n For more information, see Elastic IP address quotas in the Amazon VPC User Guide.

\n \n

When you associate an EIP or secondary EIPs with a public NAT gateway, the network border group of the EIPs \n must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. If it's not the same, \n the EIP will fail to associate. You can see the network border group for the subnet's AZ by viewing the details of the subnet.\n Similarly, you can view the network border group of an EIP by viewing the details of the EIP address. For more information \n about network border groups and EIPs, see Allocate an Elastic IP address in the Amazon VPC User Guide. \n

\n
" + } + }, + "com.amazonaws.ec2#AssociateNatGatewayAddressRequest": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#required": {} + } + }, + "AllocationIds": { + "target": "com.amazonaws.ec2#AllocationIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The allocation IDs of EIPs that you want to associate with your NAT gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "AllocationId" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#IpList", + "traits": { + "smithy.api#documentation": "

The private IPv4 addresses that you want to assign to the NAT gateway.

", + "smithy.api#xmlName": "PrivateIpAddress" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: The Availability Zone where you want to associate an Elastic IP address (EIP). The regional NAT gateway uses a separate EIP in each AZ to handle outbound NAT traffic from that AZ.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: The ID of the Availability Zone where you want to associate an Elastic IP address (EIP). The regional NAT gateway uses a separate EIP in each AZ to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across Amazon Web Services Regions.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateNatGatewayAddressResult": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "NatGatewayAddresses": { + "target": "com.amazonaws.ec2#NatGatewayAddressList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayAddressSet", + "smithy.api#documentation": "

The IP addresses.

", + "smithy.api#xmlName": "natGatewayAddressSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateRouteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateRouteServerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateRouteServerResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a route server with a VPC to enable dynamic route updates.

\n

A route server association is the connection established between a route server and a VPC.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AssociateRouteServerRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier for the route server to be associated.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC to associate with the route server.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateRouteServerResult": { + "type": "structure", + "members": { + "RouteServerAssociation": { + "target": "com.amazonaws.ec2#RouteServerAssociation", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerAssociation", + "smithy.api#documentation": "

Information about the association between the route server and the VPC.

", + "smithy.api#xmlName": "routeServerAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a subnet in your VPC or an internet gateway or virtual private gateway\n attached to your VPC with a route table in your VPC. This association causes traffic\n from the subnet or gateway to be routed according to the routes in the route table. The\n action returns an association ID, which you need in order to disassociate the route\n table later. A route table can be associated with multiple subnets.

\n

For more information, see Route tables in the\n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To associate a route table with a subnet", + "documentation": "This example associates the specified route table with the specified subnet.", + "input": { + "SubnetId": "subnet-9d4a7b6", + "RouteTableId": "rtb-22574640" + }, + "output": { + "AssociationId": "rtbassoc-781d0d1a" + } + } + ] + } + }, + "com.amazonaws.ec2#AssociateRouteTableRequest": { + "type": "structure", + "members": { + "GatewayId": { + "target": "com.amazonaws.ec2#RouteGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the internet gateway or virtual private gateway.

" + } + }, + "PublicIpv4Pool": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#documentation": "

The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 addresses that you've brought to Amazon Web Services with BYOIP.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateRouteTableResult": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The route table association ID. This ID is required for disassociating the route\n\t\t\ttable.

", + "smithy.api#xmlName": "associationId" + } + }, + "AssociationState": { + "target": "com.amazonaws.ec2#RouteTableAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "AssociationState", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "associationState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateSecurityGroupVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateSecurityGroupVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateSecurityGroupVpcResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a security group with another VPC in the same Region. This enables you to use the same security group with network interfaces and instances in the specified VPC.

\n \n
    \n
  • \n

    The VPC you want to associate the security group with must be in the same Region.

    \n
  • \n
  • \n

    You can associate the security group with another VPC if your account owns the VPC or if the VPC was shared with you.

    \n
  • \n
  • \n

    You must own the security group.

    \n
  • \n
  • \n

    You cannot use this feature with default security groups.

    \n
  • \n
  • \n

    You cannot use this feature with the default VPC.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.ec2#AssociateSecurityGroupVpcRequest": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A security group ID.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A VPC ID.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateSecurityGroupVpcResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SecurityGroupVpcAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateSubnetCidrBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateSubnetCidrBlockRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateSubnetCidrBlockResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR\n block with your subnet.

" + } + }, + "com.amazonaws.ec2#AssociateSubnetCidrBlockRequest": { + "type": "structure", + "members": { + "Ipv6IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

An IPv6 IPAM pool ID.

" + } + }, + "Ipv6NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

An IPv6 netmask length.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of your subnet.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "subnetId" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block for your subnet.

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateSubnetCidrBlockResult": { + "type": "structure", + "members": { + "Ipv6CidrBlockAssociation": { + "target": "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv6 association.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociation" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainResult" + }, + "traits": { + "smithy.api#documentation": "

Associates the specified subnets and transit gateway attachments with the specified transit gateway multicast domain.

\n

The transit gateway attachment must be in the available state before you can add a resource. Use DescribeTransitGatewayAttachments \n to see the state of the attachment.

" + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment to associate with the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#TransitGatewaySubnetIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the subnets to associate with the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayMulticastDomainResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociations", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Information about the transit gateway multicast domain associations.

", + "smithy.api#xmlName": "associations" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayPolicyTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableResult" + }, + "traits": { + "smithy.api#documentation": "

Associates the specified transit gateway attachment with a transit gateway policy table.

" + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table to associate with the transit gateway attachment.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment to associate with the policy table.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayPolicyTableResult": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

Describes the association of a transit gateway and a transit gateway policy table.

", + "smithy.api#xmlName": "association" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateTransitGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Associates the specified attachment with the specified transit gateway route table. You can \n associate only one route table with an attachment.

" + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayRouteTableRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateTransitGatewayRouteTableResult": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#TransitGatewayAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "association" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateTrunkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateTrunkInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateTrunkInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a branch network interface with a trunk network interface.

\n

Before you create the association, use CreateNetworkInterface command and set the interface type\n to trunk. You must also create a network interface for \n each branch network interface that you want to associate with the trunk \n network interface.

" + } + }, + "com.amazonaws.ec2#AssociateTrunkInterfaceRequest": { + "type": "structure", + "members": { + "BranchInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the branch network interface.

", + "smithy.api#required": {} + } + }, + "TrunkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the trunk network interface.

", + "smithy.api#required": {} + } + }, + "VlanId": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The ID of the VLAN. This applies to the VLAN protocol.

" + } + }, + "GreKey": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The application key. This applies to the GRE protocol.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateTrunkInterfaceResult": { + "type": "structure", + "members": { + "InterfaceAssociation": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociation", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceAssociation", + "smithy.api#documentation": "

Information about the association between the trunk network interface and branch network interface.

", + "smithy.api#xmlName": "interfaceAssociation" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociateVpcCidrBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AssociateVpcCidrBlockRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AssociateVpcCidrBlockResult" + }, + "traits": { + "smithy.api#documentation": "

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block,\n an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that\n you provisioned through bring your own IP addresses (BYOIP).

\n

You must specify one of the following in the request: an IPv4 CIDR block, an IPv6\n pool, or an Amazon-provided IPv6 CIDR block.

\n

For more information about associating CIDR blocks with your VPC and applicable\n restrictions, see IP addressing for your VPCs and subnets \n in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AssociateVpcCidrBlockRequest": { + "type": "structure", + "members": { + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An IPv4 CIDR block to associate with the VPC.

" + } + }, + "Ipv6CidrBlockNetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter\n to limit the CIDR block to this location.

\n

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

\n

You can have one IPv6 CIDR block association per network border group.

" + } + }, + "Ipv6Pool": { + "target": "com.amazonaws.ec2#Ipv6PoolEc2Id", + "traits": { + "smithy.api#documentation": "

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.

" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool in the request.

\n

To let Amazon choose the IPv6 CIDR block for you, omit this parameter.

" + } + }, + "Ipv4IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "Ipv4NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.\n

" + } + }, + "Ipv6IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "Ipv6NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + }, + "AmazonProvidedIpv6CidrBlock": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AmazonProvidedIpv6CidrBlock", + "smithy.api#documentation": "

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You\n cannot specify the range of IPv6 addresses or the size of the CIDR block.

", + "smithy.api#xmlName": "amazonProvidedIpv6CidrBlock" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AssociateVpcCidrBlockResult": { + "type": "structure", + "members": { + "Ipv6CidrBlockAssociation": { + "target": "com.amazonaws.ec2#VpcIpv6CidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv6 CIDR block association.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociation" + } + }, + "CidrBlockAssociation": { + "target": "com.amazonaws.ec2#VpcCidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv4 CIDR block association.

", + "smithy.api#xmlName": "cidrBlockAssociation" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AssociatedNetworkType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + } + } + }, + "com.amazonaws.ec2#AssociatedRole": { + "type": "structure", + "members": { + "AssociatedRoleArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedRoleArn", + "smithy.api#documentation": "

The ARN of the associated IAM role.

", + "smithy.api#xmlName": "associatedRoleArn" + } + }, + "CertificateS3BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateS3BucketName", + "smithy.api#documentation": "

The name of the Amazon S3 bucket in which the Amazon S3 object is stored.

", + "smithy.api#xmlName": "certificateS3BucketName" + } + }, + "CertificateS3ObjectKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateS3ObjectKey", + "smithy.api#documentation": "

The key of the Amazon S3 object where the certificate, certificate chain, and encrypted private key bundle \n\t\t\tare stored. The object key is formatted as follows: role_arn/certificate_arn.\n\t\t

", + "smithy.api#xmlName": "certificateS3ObjectKey" + } + }, + "EncryptionKmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionKmsKeyId", + "smithy.api#documentation": "

The ID of the KMS key used to encrypt the private key.

", + "smithy.api#xmlName": "encryptionKmsKeyId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the associated IAM roles.

" + } + }, + "com.amazonaws.ec2#AssociatedRolesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AssociatedRole", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AssociatedSubnetList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AssociatedTargetNetwork": { + "type": "structure", + "members": { + "NetworkId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "networkId" + } + }, + "NetworkType": { + "target": "com.amazonaws.ec2#AssociatedNetworkType", + "traits": { + "aws.protocols#ec2QueryName": "NetworkType", + "smithy.api#documentation": "

The target network type.

", + "smithy.api#xmlName": "networkType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a target network that is associated with a Client VPN endpoint. A target network is a subnet in a VPC.

" + } + }, + "com.amazonaws.ec2#AssociatedTargetNetworkSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AssociatedTargetNetwork", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AssociationIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociationId", + "traits": { + "smithy.api#xmlName": "AssociationId" + } + } + }, + "com.amazonaws.ec2#AssociationStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#AssociationStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the target network association.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the target network association, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a target network association.

" + } + }, + "com.amazonaws.ec2#AssociationStatusCode": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "association_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "association-failed" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + } + } + }, + "com.amazonaws.ec2#AssociationTypeEnum": { + "type": "enum", + "members": { + "TAG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tag" + } + }, + "INSTANCE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-id" + } + } + } + }, + "com.amazonaws.ec2#AthenaIntegration": { + "type": "structure", + "members": { + "IntegrationResultS3DestinationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The location in Amazon S3 to store the generated CloudFormation template.

", + "smithy.api#required": {} + } + }, + "PartitionLoadFrequency": { + "target": "com.amazonaws.ec2#PartitionLoadFrequency", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The schedule for adding new partitions to the table.

", + "smithy.api#required": {} + } + }, + "PartitionStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The start date for the partition.

" + } + }, + "PartitionEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The end date for the partition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes integration options for Amazon Athena.

" + } + }, + "com.amazonaws.ec2#AthenaIntegrationsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AthenaIntegration", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ec2#AttachClassicLinkVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachClassicLinkVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AttachClassicLinkVpcResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC\n\t\t\tsecurity groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You\n\t\t\tcan only link an instance that's in the running state. An instance is\n\t\t\tautomatically unlinked from a VPC when it's stopped - you can link it to the VPC again when\n\t\t\tyou restart it.

\n

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

\n

Linking your instance to a VPC is sometimes referred to as attaching your instance.

" + } + }, + "com.amazonaws.ec2#AttachClassicLinkVpcRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2-Classic instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the ClassicLink-enabled VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the security groups. You cannot specify security groups from a different VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SecurityGroupId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachClassicLinkVpcResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AttachImageWatermark": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachImageWatermarkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AttachImageWatermarkResult" + }, + "traits": { + "smithy.api#documentation": "

Attaches a watermark to a non-public AMI. The watermark is a structured identifier that\n automatically propagates to all derivative images created through\n CreateImage, and\n CopyImage.

\n

Only the AMI owner can attach watermarks. Watermarks cannot be added to public\n AMIs.

" + } + }, + "com.amazonaws.ec2#AttachImageWatermarkRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "WatermarkName": { + "target": "com.amazonaws.ec2#ImageWatermarkNameRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name for the watermark. Combined with the caller's account ID to form the\n WatermarkKey (accountId:watermarkName).

\n

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces\n ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or\n underscores(_)

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachImageWatermarkResult": { + "type": "structure", + "members": { + "WatermarkKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "WatermarkKey", + "smithy.api#documentation": "

The watermark identifier, in accountId:watermarkName format (for example,\n 123456789012:approvedAmi).

", + "smithy.api#xmlName": "watermarkKey" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AttachInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachInternetGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Attaches an internet gateway or a virtual private gateway to a VPC, enabling connectivity \n\t\t between the internet and the VPC. For more information, see Internet gateways in the \n\t\t Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To attach an Internet gateway to a VPC", + "documentation": "This example attaches the specified Internet gateway to the specified VPC.", + "input": { + "InternetGatewayId": "igw-c0a643a9", + "VpcId": "vpc-a01106c2" + } + } + ] + } + }, + "com.amazonaws.ec2#AttachInternetGatewayRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InternetGatewayId": { + "target": "com.amazonaws.ec2#InternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the internet gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "internetGatewayId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachNetworkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachNetworkInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AttachNetworkInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Attaches a network interface to an instance.

", + "smithy.api#examples": [ + { + "title": "To attach a network interface to an instance", + "documentation": "This example attaches the specified network interface to the specified instance.", + "input": { + "NetworkInterfaceId": "eni-e5aa89a3", + "InstanceId": "i-1234567890abcdef0", + "DeviceIndex": 1 + }, + "output": { + "AttachmentId": "eni-attach-66c4350a" + } + } + ] + } + }, + "com.amazonaws.ec2#AttachNetworkInterfaceRequest": { + "type": "structure", + "members": { + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network card. Some instance types support multiple network cards. The\n primary network interface must be assigned to network card index 0. The default is\n network card index 0.

" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#EnaSrdSpecification", + "traits": { + "smithy.api#documentation": "

Configures ENA Express for the network interface that this action attaches to the\n instance.

" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of ENA queues to be created with the instance.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The index of the device for the network interface attachment.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "deviceIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for AttachNetworkInterface.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachNetworkInterfaceResult": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the network interface attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of AttachNetworkInterface.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AttachVerifiedAccessTrustProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderResult" + }, + "traits": { + "smithy.api#documentation": "

Attaches the specified Amazon Web Services Verified Access trust provider to the specified Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access trust provider.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachVerifiedAccessTrustProviderResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProvider", + "smithy.api#documentation": "

Details about the Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProvider" + } + }, + "VerifiedAccessInstance": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstance", + "smithy.api#documentation": "

Details about the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstance" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AttachVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachVolumeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#VolumeAttachment" + }, + "traits": { + "smithy.api#documentation": "

Attaches an Amazon EBS volume to a running or stopped \n instance, and exposes it to the instance with the specified device name.

\n \n

The maximum number of Amazon EBS volumes that you can attach to an instance depends on the \n instance type. If you exceed the volume attachment limit for an instance type, the attachment \n request fails with the AttachmentLimitExceeded error. For more information, \n see Instance \n volume limits.

\n
\n

After you attach an EBS volume, you must make it available for use. For more information, \n see Make an \n EBS volume available for use.

\n

If a volume has an Amazon Web Services Marketplace product code:

\n
    \n
  • \n

    The volume can be attached only to a stopped instance.

    \n
  • \n
  • \n

    Amazon Web Services Marketplace product codes are copied from the volume to the instance.

    \n
  • \n
  • \n

    You must be subscribed to the product.

    \n
  • \n
  • \n

    The instance type and operating system of the instance must support the product. For\n example, you can't detach a volume from a Windows instance and attach it to a Linux\n instance.

    \n
  • \n
\n

For more information, see Attach an Amazon EBS volume to an instance in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To attach a volume to an instance", + "documentation": "This example attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``.", + "input": { + "VolumeId": "vol-1234567890abcdef0", + "InstanceId": "i-01474ef662b89480", + "Device": "/dev/sdf" + }, + "output": { + "AttachTime": "2016-08-29T18:52:32.724Z", + "InstanceId": "i-01474ef662b89480", + "VolumeId": "vol-1234567890abcdef0", + "State": "attaching", + "Device": "/dev/sdf" + } + } + ] + } + }, + "com.amazonaws.ec2#AttachVolumeRequest": { + "type": "structure", + "members": { + "Device": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The device name (for example, /dev/sdh or xvdh).

", + "smithy.api#required": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EBS volume. The volume and instance must be within the same Availability\n Zone.

", + "smithy.api#required": {} + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachVpnGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AttachVpnGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AttachVpnGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Attaches an available virtual private gateway to a VPC. You can attach one virtual private\n gateway to one VPC at a time.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

" + } + }, + "com.amazonaws.ec2#AttachVpnGatewayRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for AttachVpnGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AttachVpnGatewayResult": { + "type": "structure", + "members": { + "VpcAttachment": { + "target": "com.amazonaws.ec2#VpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

Information about the attachment.

", + "smithy.api#xmlName": "attachment" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of AttachVpnGateway.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AttachmentEnaSrdSpecification": { + "type": "structure", + "members": { + "EnaSrdEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdEnabled", + "smithy.api#documentation": "

Indicates whether ENA Express is enabled for the network interface.

", + "smithy.api#xmlName": "enaSrdEnabled" + } + }, + "EnaSrdUdpSpecification": { + "target": "com.amazonaws.ec2#AttachmentEnaSrdUdpSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpSpecification", + "smithy.api#documentation": "

Configures ENA Express for UDP network traffic.

", + "smithy.api#xmlName": "enaSrdUdpSpecification" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the \n\t\t\tmaximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. \n\t\t\tWith ENA Express, you can communicate between two EC2 instances in the same subnet within the same \n\t\t\taccount, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

\n

To improve the reliability of network packet delivery, ENA Express reorders network packets on the \n\t\t\treceiving end by default. However, some UDP-based applications are designed to handle network packets \n\t\t\tthat are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express \n\t\t\tis enabled, you can specify whether UDP network traffic uses it.

" + } + }, + "com.amazonaws.ec2#AttachmentEnaSrdUdpSpecification": { + "type": "structure", + "members": { + "EnaSrdUdpEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpEnabled", + "smithy.api#documentation": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, \n\t\t\tyou must first enable ENA Express.

", + "smithy.api#xmlName": "enaSrdUdpEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic \n\t\t\tautomatically uses it. However, some UDP-based applications are designed to handle network packets that are \n\t\t\tout of order, without a need for retransmission, such as live video broadcasting or other near-real-time \n\t\t\tapplications. For UDP traffic, you can specify whether to use ENA Express, based on your application \n\t\t\tenvironment needs.

" + } + }, + "com.amazonaws.ec2#AttachmentLimitType": { + "type": "enum", + "members": { + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "shared" + } + }, + "DEDICATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + } + } + }, + "com.amazonaws.ec2#AttachmentStatus": { + "type": "enum", + "members": { + "attaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attaching" + } + }, + "attached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attached" + } + }, + "detaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detaching" + } + }, + "detached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detached" + } + } + } + }, + "com.amazonaws.ec2#AttributeBooleanValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The attribute value. The valid values are true or false.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a value for a resource attribute that is a Boolean value.

" + } + }, + "com.amazonaws.ec2#AttributeSummary": { + "type": "structure", + "members": { + "AttributeName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttributeName", + "smithy.api#documentation": "

The name of the attribute.

", + "smithy.api#xmlName": "attributeName" + } + }, + "MostFrequentValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MostFrequentValue", + "smithy.api#documentation": "

The configuration value that is most frequently observed for the attribute.

", + "smithy.api#xmlName": "mostFrequentValue" + } + }, + "NumberOfMatchedAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfMatchedAccounts", + "smithy.api#documentation": "

The number of accounts with the same configuration value for the attribute that is\n most frequently observed.

", + "smithy.api#xmlName": "numberOfMatchedAccounts" + } + }, + "NumberOfUnmatchedAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfUnmatchedAccounts", + "smithy.api#documentation": "

The number of accounts with a configuration value different from the most frequently\n observed value for the attribute.

", + "smithy.api#xmlName": "numberOfUnmatchedAccounts" + } + }, + "RegionalSummaries": { + "target": "com.amazonaws.ec2#RegionalSummaryList", + "traits": { + "aws.protocols#ec2QueryName": "RegionalSummarySet", + "smithy.api#documentation": "

The summary report for each Region for the attribute.

", + "smithy.api#xmlName": "regionalSummarySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary report for the attribute across all Regions.

" + } + }, + "com.amazonaws.ec2#AttributeSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AttributeSummary", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AttributeValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The attribute value. The value is case-sensitive.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a value for a resource attribute that is a String.

" + } + }, + "com.amazonaws.ec2#AuthorizationRule": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint with which the authorization rule is associated.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A brief description of the authorization rule.

", + "smithy.api#xmlName": "description" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the Active Directory group to which the authorization rule grants access.

", + "smithy.api#xmlName": "groupId" + } + }, + "AccessAll": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AccessAll", + "smithy.api#documentation": "

Indicates whether the authorization rule grants access to all clients.

", + "smithy.api#xmlName": "accessAll" + } + }, + "DestinationCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidr", + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies.

", + "smithy.api#xmlName": "destinationCidr" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization rule.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an authorization rule.

" + } + }, + "com.amazonaws.ec2#AuthorizationRuleSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AuthorizationRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AuthorizeClientVpnIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AuthorizeClientVpnIngressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AuthorizeClientVpnIngressResult" + }, + "traits": { + "smithy.api#documentation": "

Adds an ingress authorization rule to a Client VPN endpoint. Ingress authorization rules act as \n\t\t\tfirewall rules that grant access to networks. You must configure ingress authorization rules to \n\t\t\tenable clients to access resources in Amazon Web Services or on-premises networks.

" + } + }, + "com.amazonaws.ec2#AuthorizeClientVpnIngressRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "TargetNetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the network for which access is being authorized.

", + "smithy.api#required": {} + } + }, + "AccessGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the group to grant access to, for example, the Active Directory group or identity provider (IdP) group. Required if AuthorizeAllGroups is false or not specified.

" + } + }, + "AuthorizeAllGroups": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to grant access to all clients. Specify true to grant all\n clients who successfully establish a VPN connection access to the network. Must be set\n to true if AccessGroupId is not specified.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A brief description of the authorization rule.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \nFor more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AuthorizeClientVpnIngressResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization rule.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupEgress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupEgressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupEgressResult" + }, + "traits": { + "smithy.api#documentation": "

Adds the specified outbound (egress) rules to a security group.

\n

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 \n address ranges, the IP address ranges specified by a prefix list, or the instances \n that are associated with a source security group. For more information, see Security group rules.

\n

You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, \n a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). \n If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is \n ICMP or ICMPv6, you must also specify the ICMP type and code.

\n

Rule changes are propagated to instances associated with the security group as quickly \n as possible. However, a small delay might occur.

\n

For examples of rules that you can add to security groups for specific access scenarios, \n see Security group rules for different use cases in the Amazon EC2 User Guide.

\n

For information about security group quotas, see Amazon VPC quotas in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a rule that allows outbound traffic to a specific address range", + "documentation": "This example adds a rule that grants access to the specified address ranges on TCP port 80.", + "input": { + "GroupId": "sg-1a2b3c4d", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "IpRanges": [ + { + "CidrIp": "10.0.0.0/16" + } + ] + } + ] + }, + "output": {} + }, + { + "title": "To add a rule that allows outbound traffic to a specific security group", + "documentation": "This example adds a rule that grants access to the specified security group on TCP port 80.", + "input": { + "GroupId": "sg-1a2b3c4d", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "UserIdGroupPairs": [ + { + "GroupId": "sg-4b51a32f" + } + ] + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupEgressRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags applied to the security group rule.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "groupId" + } + }, + "SourceSecurityGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceSecurityGroupName", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "sourceSecurityGroupName" + } + }, + "SourceSecurityGroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceSecurityGroupOwnerId", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "sourceSecurityGroupOwnerId" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "toPort" + } + }, + "CidrIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIp", + "smithy.api#documentation": "

Not supported. Use IP permissions instead.

", + "smithy.api#xmlName": "cidrIp" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "IpPermissions", + "smithy.api#documentation": "

The permissions for the security group rules.

", + "smithy.api#xmlName": "ipPermissions" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupEgressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "SecurityGroupRules": { + "target": "com.amazonaws.ec2#SecurityGroupRuleList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleSet", + "smithy.api#documentation": "

Information about the outbound (egress) security group rules that were added.

", + "smithy.api#xmlName": "securityGroupRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupIngressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#AuthorizeSecurityGroupIngressResult" + }, + "traits": { + "smithy.api#documentation": "

Adds the specified inbound (ingress) rules to a security group.

\n

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 \n address range, the IP address ranges that are specified by a prefix list, or the instances \n that are associated with a destination security group. For more information, see Security group rules.

\n

You must specify exactly one of the following sources: an IPv4 or IPv6 address range,\n a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). \n If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is \n ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code.

\n

Rule changes are propagated to instances associated with the security group as quickly \n as possible. However, a small delay might occur.

\n

For examples of rules that you can add to security groups for specific access scenarios, \n see Security group rules for different use cases in the Amazon EC2 User Guide.

\n

For more information about security group quotas, see Amazon VPC quotas in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a rule that allows inbound HTTP traffic from another security group", + "documentation": "This example enables inbound traffic on TCP port 80 from the specified security group. The group must be in the same VPC or a peer VPC. Incoming traffic is allowed based on the private IP addresses of instances that are associated with the specified security group.", + "input": { + "GroupId": "sg-111aaa22", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "UserIdGroupPairs": [ + { + "GroupId": "sg-1a2b3c4d", + "Description": "HTTP access from other instances" + } + ] + } + ] + }, + "output": {} + }, + { + "title": "To add a rule that allows inbound SSH traffic from an IPv4 address range", + "documentation": "This example enables inbound traffic on TCP port 22 (SSH). The rule includes a description to help you identify it later.", + "input": { + "GroupId": "sg-903004f8", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 22, + "ToPort": 22, + "IpRanges": [ + { + "CidrIp": "203.0.113.0/24", + "Description": "SSH access from the LA office" + } + ] + } + ] + }, + "output": {} + }, + { + "title": "To add a rule that allows inbound RDP traffic from an IPv6 address range", + "documentation": "This example adds an inbound rule that allows RDP traffic from the specified IPv6 address range. The rule includes a description to help you identify it later.", + "input": { + "GroupId": "sg-123abc12 ", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 3389, + "ToPort": 3389, + "Ipv6Ranges": [ + { + "CidrIpv6": "2001:db8:1234:1a00::/64", + "Description": "RDP access from the NY office" + } + ] + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupIngressRequest": { + "type": "structure", + "members": { + "CidrIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 address range, in CIDR format.

\n \n

\n Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, \n Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will \n return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the \n non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized \n form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.

\n
\n

To specify an IPv6 address range, use IP permissions instead.

\n

To specify multiple rules and descriptions for the rules, use IP permissions instead.

" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range.\n If the protocol is ICMP, this is the ICMP type or -1 (all ICMP types).

\n

To specify multiple rules and descriptions for the rules, use IP permissions instead.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the security group. For security groups for a default VPC\n you can specify either the ID or the name of the security group. For security groups for\n a nondefault VPC, you must specify the ID of the security group.

" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "smithy.api#documentation": "

The permissions for the security group rules.

" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp) or number\n (see Protocol Numbers). To specify all protocols, use -1.

\n

To specify icmpv6, use IP permissions instead.

\n

If you specify a protocol other than one of the supported values, traffic is allowed \n on all ports, regardless of any ports that you specify.

\n

To specify multiple rules and descriptions for the rules, use IP permissions instead.

" + } + }, + "SourceSecurityGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the source security group.

\n

The rule grants full ICMP, UDP, and TCP access. To create a rule with a specific protocol\n and port range, specify a set of IP permissions instead.

" + } + }, + "SourceSecurityGroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the source security group, if the source security group is \n in a different account.

\n

The rule grants full ICMP, UDP, and TCP access. To create a rule with a specific protocol \n and port range, use IP permissions instead.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP, this is the ICMP code or -1 (all ICMP codes). \n If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).

\n

To specify multiple rules and descriptions for the rules, use IP permissions instead.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags applied to the security group rule.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#AuthorizeSecurityGroupIngressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "SecurityGroupRules": { + "target": "com.amazonaws.ec2#SecurityGroupRuleList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleSet", + "smithy.api#documentation": "

Information about the inbound (ingress) security group rules that were added.

", + "smithy.api#xmlName": "securityGroupRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#AutoAcceptSharedAssociationsValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#AutoAcceptSharedAttachmentsValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#AutoPlacement": { + "type": "enum", + "members": { + "on": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on" + } + }, + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + } + } + }, + "com.amazonaws.ec2#AutoProvisionZonesState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#AutoRecoveryFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#AutoScalingIpsState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#AvailabilityMode": { + "type": "enum", + "members": { + "ZONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zonal" + } + }, + "REGIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "regional" + } + } + } + }, + "com.amazonaws.ec2#AvailabilityZone": { + "type": "structure", + "members": { + "OptInStatus": { + "target": "com.amazonaws.ec2#AvailabilityZoneOptInStatus", + "traits": { + "aws.protocols#ec2QueryName": "OptInStatus", + "smithy.api#documentation": "

For Availability Zones, this parameter always has the value of\n opt-in-not-required.

\n

For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible\n values are opted-in and not-opted-in.

", + "smithy.api#xmlName": "optInStatus" + } + }, + "Messages": { + "target": "com.amazonaws.ec2#AvailabilityZoneMessageList", + "traits": { + "aws.protocols#ec2QueryName": "MessageSet", + "smithy.api#documentation": "

Any messages about the Availability Zone, Local Zone, or Wavelength Zone.

", + "smithy.api#xmlName": "messageSet" + } + }, + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RegionName", + "smithy.api#documentation": "

The name of the Region.

", + "smithy.api#xmlName": "regionName" + } + }, + "ZoneName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneName", + "smithy.api#documentation": "

The name of the Availability Zone, Local Zone, or Wavelength Zone.

", + "smithy.api#xmlName": "zoneName" + } + }, + "ZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone, Local Zone, or Wavelength Zone.

", + "smithy.api#xmlName": "zoneId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the zone group. For example:

\n
    \n
  • \n

    Availability Zones - us-east-1-zg-1\n

    \n
  • \n
  • \n

    Local Zones - us-west-2-lax-1\n

    \n
  • \n
  • \n

    Wavelength Zones - us-east-1-wl1-bos-wlz-1\n

    \n
  • \n
", + "smithy.api#xmlName": "groupName" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The name of the network border group.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "ZoneType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneType", + "smithy.api#documentation": "

The type of zone.

\n

Valid values: availability-zone | local-zone |\n wavelength-zone\n

", + "smithy.api#xmlName": "zoneType" + } + }, + "ParentZoneName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ParentZoneName", + "smithy.api#documentation": "

The name of the zone that handles some of the Local Zone or Wavelength Zone control plane\n operations, such as API calls.

", + "smithy.api#xmlName": "parentZoneName" + } + }, + "ParentZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ParentZoneId", + "smithy.api#documentation": "

The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane\n operations, such as API calls.

", + "smithy.api#xmlName": "parentZoneId" + } + }, + "GroupLongName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupLongName", + "smithy.api#documentation": "

The long name of the Availability Zone group, Local Zone group, or Wavelength Zone\n group.

", + "smithy.api#xmlName": "groupLongName" + } + }, + "Geography": { + "target": "com.amazonaws.ec2#AvailabilityZoneGeographyList", + "traits": { + "aws.protocols#ec2QueryName": "GeographySet", + "smithy.api#documentation": "

The geography information for the Availability Zone or Local Zone. The geography is returned as a list.

", + "smithy.api#xmlName": "geographySet" + } + }, + "SubGeography": { + "target": "com.amazonaws.ec2#AvailabilityZoneSubGeographyList", + "traits": { + "aws.protocols#ec2QueryName": "SubGeographySet", + "smithy.api#documentation": "

The sub-geography information for the Availability Zone or Local Zone. The sub-geography is returned\n as a list.

", + "smithy.api#xmlName": "subGeographySet" + } + }, + "State": { + "target": "com.amazonaws.ec2#AvailabilityZoneState", + "traits": { + "aws.protocols#ec2QueryName": "ZoneState", + "smithy.api#documentation": "

The state of the Availability Zone, Local Zone, or Wavelength Zone. The possible values are\n available, unavailable, and constrained.

", + "smithy.api#xmlName": "zoneState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes Availability Zones, Local Zones, and Wavelength Zones.

" + } + }, + "com.amazonaws.ec2#AvailabilityZoneAddress": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: The Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: The ID of the Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across Amazon Web Services Regions.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

" + } + }, + "AllocationIds": { + "target": "com.amazonaws.ec2#AllocationIdList", + "traits": { + "smithy.api#documentation": "

The allocation IDs of the Elastic IP addresses (EIPs) to be used for handling outbound NAT traffic in this specific Availability Zone.

", + "smithy.api#xmlName": "AllocationId" + } + } + }, + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: The configuration specifying which Elastic IP address (EIP) to use for handling outbound NAT traffic from a specific Availability Zone.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#AvailabilityZoneAddresses": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneAddress", + "traits": { + "smithy.api#xmlName": "AvailabilityZoneAddress" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneGeography": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the geography, for example, United States of America.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the geography information for an Availability Zone or Local Zone.

" + } + }, + "com.amazonaws.ec2#AvailabilityZoneGeographyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneGeography", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneId": { + "type": "string" + }, + "com.amazonaws.ec2#AvailabilityZoneIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "AvailabilityZoneId" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZone", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneMessage": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The message about the Availability Zone, Local Zone, or Wavelength Zone.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a message about an Availability Zone, Local Zone, or Wavelength Zone.

" + } + }, + "com.amazonaws.ec2#AvailabilityZoneMessageList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneMessage", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneName": { + "type": "string" + }, + "com.amazonaws.ec2#AvailabilityZoneOptInStatus": { + "type": "enum", + "members": { + "opt_in_not_required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "opt-in-not-required" + } + }, + "opted_in": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "opted-in" + } + }, + "not_opted_in": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-opted-in" + } + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "information": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "information" + } + }, + "impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + }, + "constrained": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "constrained" + } + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "AvailabilityZone" + } + } + }, + "com.amazonaws.ec2#AvailabilityZoneSubGeography": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the sub-geography, for example, Oregon.\n

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the sub-geography information for an Availability Zone or Local Zone.

" + } + }, + "com.amazonaws.ec2#AvailabilityZoneSubGeographyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneSubGeography", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#AvailableCapacity": { + "type": "structure", + "members": { + "AvailableInstanceCapacity": { + "target": "com.amazonaws.ec2#AvailableInstanceCapacityList", + "traits": { + "aws.protocols#ec2QueryName": "AvailableInstanceCapacity", + "smithy.api#documentation": "

The number of instances that can be launched onto the Dedicated Host depending on the\n host's available capacity. For Dedicated Hosts that support multiple instance types,\n this parameter represents the number of instances for each instance size that is\n supported on the host.

", + "smithy.api#xmlName": "availableInstanceCapacity" + } + }, + "AvailableVCpus": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableVCpus", + "smithy.api#documentation": "

The number of vCPUs available for launching instances onto the Dedicated Host.

", + "smithy.api#xmlName": "availableVCpus" + } + } + }, + "traits": { + "smithy.api#documentation": "

The capacity information for instances that can be launched onto the Dedicated Host.\n

" + } + }, + "com.amazonaws.ec2#AvailableInstanceCapacityList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceCapacity", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BandwidthWeightingType": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "VPC_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-1" + } + }, + "EBS_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs-1" + } + } + } + }, + "com.amazonaws.ec2#BandwidthWeightingTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BandwidthWeightingType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BareMetal": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ec2#BareMetalFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#BaselineBandwidthInGbps": { + "type": "double" + }, + "com.amazonaws.ec2#BaselineBandwidthInMbps": { + "type": "integer" + }, + "com.amazonaws.ec2#BaselineEbsBandwidthMbps": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum baseline bandwidth, in Mbps. If this parameter is not specified, there is no\n minimum limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum baseline bandwidth, in Mbps. If this parameter is not specified, there is no\n maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see\n Amazon\n EBS–optimized instances in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#BaselineEbsBandwidthMbpsRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit\n this parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit\n this parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see\n Amazon\n EBS–optimized instances in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#BaselineIops": { + "type": "integer" + }, + "com.amazonaws.ec2#BaselinePerformanceFactors": { + "type": "structure", + "members": { + "Cpu": { + "target": "com.amazonaws.ec2#CpuPerformanceFactor", + "traits": { + "aws.protocols#ec2QueryName": "Cpu", + "smithy.api#documentation": "

The CPU performance to consider, using an instance family as the baseline reference.

", + "smithy.api#xmlName": "cpu" + } + } + }, + "traits": { + "smithy.api#documentation": "

The baseline performance to consider, using an instance family as a baseline reference.\n The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this\n baseline to guide instance type selection, but there is no guarantee that the selected\n instance types will always exceed the baseline for every application.

\n

Currently, this parameter only supports CPU performance as a baseline performance\n factor. For example, specifying c6i would use the CPU performance of the\n c6i family as the baseline reference.

" + } + }, + "com.amazonaws.ec2#BaselinePerformanceFactorsRequest": { + "type": "structure", + "members": { + "Cpu": { + "target": "com.amazonaws.ec2#CpuPerformanceFactorRequest", + "traits": { + "smithy.api#documentation": "

The CPU performance to consider, using an instance family as the baseline reference.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The baseline performance to consider, using an instance family as a baseline reference.\n The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this\n baseline to guide instance type selection, but there is no guarantee that the selected\n instance types will always exceed the baseline for every application.

\n

Currently, this parameter only supports CPU performance as a baseline performance\n factor. For example, specifying c6i would use the CPU performance of the\n c6i family as the baseline reference.

" + } + }, + "com.amazonaws.ec2#BaselineThroughputInMBps": { + "type": "double" + }, + "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies multiple routing policy registrations in a single operation. You can create, update, or delete Route Origin Authorizations (ROAs) in batch.

" + } + }, + "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "DeltaJson": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The batch modifications to apply, in JSON format.

", + "smithy.api#required": {} + } + }, + "Force": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Forces the batch modification even if individual changes conflict with announced routes. Default: false.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#BatchModifyIpamRoutingPolicyRegistrationsResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrationDelta": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationDelta", + "smithy.api#documentation": "

Information about the routing policy registration delta created by this batch operation.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationDelta" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#BatchState": { + "type": "enum", + "members": { + "SUBMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "submitted" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELLED_RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled_running" + } + }, + "CANCELLED_TERMINATING_INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled_terminating" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + } + } + }, + "com.amazonaws.ec2#BgpStatus": { + "type": "enum", + "members": { + "up": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "up" + } + }, + "down": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "down" + } + } + } + }, + "com.amazonaws.ec2#BillingProductList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Blob": { + "type": "blob" + }, + "com.amazonaws.ec2#BlockDeviceMapping": { + "type": "structure", + "members": { + "Ebs": { + "target": "com.amazonaws.ec2#EbsBlockDevice", + "traits": { + "aws.protocols#ec2QueryName": "Ebs", + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

", + "smithy.api#xmlName": "ebs" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NoDevice", + "smithy.api#documentation": "

To omit the device from the block device mapping, specify an empty string. When this\n property is specified, the device is removed from the block device mapping regardless of\n the assigned value.

", + "smithy.api#xmlName": "noDevice" + } + }, + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The device name. For available device names, see Device names for volumes.

", + "smithy.api#xmlName": "deviceName" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VirtualName", + "smithy.api#documentation": "

The virtual device name (ephemeralN). Instance store volumes are numbered\n starting from 0. An instance type with 2 available instance store volumes can specify\n mappings for ephemeral0 and ephemeral1. The number of\n available instance store volumes depends on the instance type. After you connect to the\n instance, you must mount the volume.

\n

NVMe instance store volumes are automatically enumerated and assigned a device name.\n Including them in your block device mapping has no effect.

\n

Constraints: For M3 instances, you must specify instance store volumes in the block\n device mapping for the instance. When you launch an M3 instance, we ignore any instance\n store volumes specified in the block device mapping for the AMI.

", + "smithy.api#xmlName": "virtualName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping, which defines the EBS volumes and instance store\n volumes to attach to an instance at launch.

" + } + }, + "com.amazonaws.ec2#BlockDeviceMappingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BlockDeviceMapping", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BlockDeviceMappingRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BlockDeviceMapping", + "traits": { + "smithy.api#xmlName": "BlockDeviceMapping" + } + } + }, + "com.amazonaws.ec2#BlockDeviceMappingResponse": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The device name (for example, /dev/sdh or xvdh).

", + "smithy.api#xmlName": "deviceName" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VirtualName", + "smithy.api#documentation": "

The virtual device name.

", + "smithy.api#xmlName": "virtualName" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#EbsBlockDeviceResponse", + "traits": { + "aws.protocols#ec2QueryName": "Ebs", + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

", + "smithy.api#xmlName": "ebs" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NoDevice", + "smithy.api#documentation": "

Suppresses the specified device included in the block device mapping.

", + "smithy.api#xmlName": "noDevice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping, which defines the EBS volumes and instance store\n volumes to attach to an instance at launch.

" + } + }, + "com.amazonaws.ec2#BlockDeviceMappingResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BlockDeviceMappingResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BlockPublicAccessMode": { + "type": "enum", + "members": { + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "block_bidirectional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-bidirectional" + } + }, + "block_ingress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-ingress" + } + } + } + }, + "com.amazonaws.ec2#BlockPublicAccessStates": { + "type": "structure", + "members": { + "InternetGatewayBlockMode": { + "target": "com.amazonaws.ec2#BlockPublicAccessMode", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayBlockMode", + "smithy.api#documentation": "

The mode of VPC BPA.

\n
    \n
  • \n

    \n off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region.

    \n
  • \n
  • \n

    \n block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets).

    \n
  • \n
  • \n

    \n block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established.

    \n
  • \n
", + "smithy.api#xmlName": "internetGatewayBlockMode" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of VPC Block Public Access (BPA).

" + } + }, + "com.amazonaws.ec2#Boolean": { + "type": "boolean" + }, + "com.amazonaws.ec2#BootModeOverrideValues": { + "type": "enum", + "members": { + "uefi": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefi" + } + } + } + }, + "com.amazonaws.ec2#BootModeType": { + "type": "enum", + "members": { + "legacy_bios": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "legacy-bios" + } + }, + "uefi": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefi" + } + } + } + }, + "com.amazonaws.ec2#BootModeTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BootModeType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BootModeValues": { + "type": "enum", + "members": { + "legacy_bios": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "legacy-bios" + } + }, + "uefi": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefi" + } + }, + "uefi_preferred": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefi-preferred" + } + } + } + }, + "com.amazonaws.ec2#BoxedBoolean": { + "type": "boolean" + }, + "com.amazonaws.ec2#BoxedDouble": { + "type": "double" + }, + "com.amazonaws.ec2#BoxedInteger": { + "type": "integer" + }, + "com.amazonaws.ec2#BoxedLong": { + "type": "long" + }, + "com.amazonaws.ec2#BundleId": { + "type": "string" + }, + "com.amazonaws.ec2#BundleIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BundleId", + "traits": { + "smithy.api#xmlName": "BundleId" + } + } + }, + "com.amazonaws.ec2#BundleInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#BundleInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#BundleInstanceResult" + }, + "traits": { + "smithy.api#documentation": "

Bundles an Amazon instance store-backed Windows instance.

\n

During bundling, only the root device volume (C:\\) is bundled. Data on other instance\n store volumes is not preserved.

\n \n

BundleInstance is no longer supported. To create an AMI, use\n CreateImage instead.\n For more information about creating an Amazon EBS-backed AMI, see \n Create an Amazon EBS-backed AMI in the Amazon EC2 User Guide.

\n
" + } + }, + "com.amazonaws.ec2#BundleInstanceRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to bundle.

\n

Default: None

", + "smithy.api#required": {} + } + }, + "Storage": { + "target": "com.amazonaws.ec2#Storage", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a\n new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone\n else, Amazon EC2 returns an error.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for BundleInstance.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#BundleInstanceResult": { + "type": "structure", + "members": { + "BundleTask": { + "target": "com.amazonaws.ec2#BundleTask", + "traits": { + "aws.protocols#ec2QueryName": "BundleInstanceTask", + "smithy.api#documentation": "

Information about the bundle task.

", + "smithy.api#xmlName": "bundleInstanceTask" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of BundleInstance.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#BundleTask": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance associated with this bundle task.

", + "smithy.api#xmlName": "instanceId" + } + }, + "BundleId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BundleId", + "smithy.api#documentation": "

The ID of the bundle task.

", + "smithy.api#xmlName": "bundleId" + } + }, + "State": { + "target": "com.amazonaws.ec2#BundleTaskState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the task.

", + "smithy.api#xmlName": "state" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time this task started.

", + "smithy.api#xmlName": "startTime" + } + }, + "UpdateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateTime", + "smithy.api#documentation": "

The time of the most recent update for the task.

", + "smithy.api#xmlName": "updateTime" + } + }, + "Storage": { + "target": "com.amazonaws.ec2#Storage", + "traits": { + "aws.protocols#ec2QueryName": "Storage", + "smithy.api#documentation": "

The Amazon S3 storage locations.

", + "smithy.api#xmlName": "storage" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The level of task completion, as a percent (for example, 20%).

", + "smithy.api#xmlName": "progress" + } + }, + "BundleTaskError": { + "target": "com.amazonaws.ec2#BundleTaskError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

If the task fails, a description of the error.

", + "smithy.api#xmlName": "error" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a bundle task.

" + } + }, + "com.amazonaws.ec2#BundleTaskError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an error for BundleInstance.

" + } + }, + "com.amazonaws.ec2#BundleTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#BundleTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#BundleTaskState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "waiting_for_shutdown": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "waiting-for-shutdown" + } + }, + "bundling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bundling" + } + }, + "storing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "storing" + } + }, + "cancelling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + }, + "complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "complete" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#BurstablePerformance": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ec2#BurstablePerformanceFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#Byoasn": { + "type": "structure", + "members": { + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

A public 2-byte or 4-byte ASN.

", + "smithy.api#xmlName": "asn" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

An IPAM ID.

", + "smithy.api#xmlName": "ipamId" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "State": { + "target": "com.amazonaws.ec2#AsnState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The provisioning state of the BYOASN.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Autonomous System Number (ASN) and BYOIP CIDR association.

" + } + }, + "com.amazonaws.ec2#ByoasnSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Byoasn", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ByoipCidr": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The address range, in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the address range.

", + "smithy.api#xmlName": "description" + } + }, + "AsnAssociations": { + "target": "com.amazonaws.ec2#AsnAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "AsnAssociationSet", + "smithy.api#documentation": "

The BYOIP CIDR associations with ASNs.

", + "smithy.api#xmlName": "asnAssociationSet" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

Upon success, contains the ID of the address pool. Otherwise, contains an error message.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "State": { + "target": "com.amazonaws.ec2#ByoipCidrState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the address range.

\n
    \n
  • \n

    \n advertised: The address range is being advertised to the internet by Amazon Web Services.

    \n
  • \n
  • \n

    \n deprovisioned: The address range is deprovisioned.

    \n
  • \n
  • \n

    \n failed-deprovision: The request to deprovision the address range was unsuccessful. Ensure that all EIPs from the range have been deallocated and try again.

    \n
  • \n
  • \n

    \n failed-provision: The request to provision the address range was unsuccessful.

    \n
  • \n
  • \n

    \n pending-deprovision: You’ve submitted a request to deprovision an address range and it's pending.

    \n
  • \n
  • \n

    \n pending-provision: You’ve submitted a request to provision an address range and it's pending.

    \n
  • \n
  • \n

    \n provisioned: The address range is provisioned and can be advertised. The range is not currently advertised.

    \n
  • \n
  • \n

    \n provisioned-not-publicly-advertisable: The address range is provisioned and cannot be advertised.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

If you have Local Zones enabled, you can choose a network border group for Local Zones when you provision and advertise a BYOIPv4 CIDR. Choose the network border group carefully as the EIP and the Amazon Web Services resource it is associated with must reside in the same network border group.

\n

You can provision BYOIP address ranges to and advertise them in the following Local Zone network border groups:

\n
    \n
  • \n

    us-east-1-dfw-2

    \n
  • \n
  • \n

    us-west-2-lax-1

    \n
  • \n
  • \n

    us-west-2-phx-2

    \n
  • \n
\n \n

You cannot provision or advertise BYOIPv6 address ranges in Local Zones at this time.

\n
", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "AdvertisementType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AdvertisementType", + "smithy.api#documentation": "

Specifies the advertisement method for the BYOIP CIDR. Valid values are:

\n
    \n
  • \n

    \n unicast: IP is advertised from a single location (regional services like EC2)

    \n
  • \n
  • \n

    \n anycast: IP is advertised from multiple global locations simultaneously (global services like CloudFront)

    \n
  • \n
\n

For more information, see Bring your own IP to CloudFront using IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "advertisementType" + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the address pool associated with the CIDR.

", + "smithy.api#xmlName": "poolId" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The ID of the IPAM pool associated with the CIDR.

", + "smithy.api#xmlName": "ipamPoolId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an address range that is provisioned for use with your Amazon Web Services resources \n through bring your own IP addresses (BYOIP).

" + } + }, + "com.amazonaws.ec2#ByoipCidrSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ByoipCidrState": { + "type": "enum", + "members": { + "advertised": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advertised" + } + }, + "deprovisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioned" + } + }, + "failed_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-deprovision" + } + }, + "failed_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-provision" + } + }, + "pending_advertising": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-advertising" + } + }, + "pending_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-deprovision" + } + }, + "pending_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-provision" + } + }, + "pending_withdrawal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-withdrawal" + } + }, + "provisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned" + } + }, + "provisioned_not_publicly_advertisable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned-not-publicly-advertisable" + } + } + } + }, + "com.amazonaws.ec2#CallerRole": { + "type": "enum", + "members": { + "odcr_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "odcr-owner" + } + }, + "unused_reservation_billing_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unused-reservation-billing-owner" + } + } + } + }, + "com.amazonaws.ec2#CancelBatchErrorCode": { + "type": "enum", + "members": { + "FLEET_REQUEST_ID_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetRequestIdDoesNotExist" + } + }, + "FLEET_REQUEST_ID_MALFORMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetRequestIdMalformed" + } + }, + "FLEET_REQUEST_NOT_IN_CANCELLABLE_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetRequestNotInCancellableState" + } + }, + "UNEXPECTED_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unexpectedError" + } + } + } + }, + "com.amazonaws.ec2#CancelBundleTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelBundleTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelBundleTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels a bundling operation for an instance store-backed Windows instance.

\n \n

CancelBundleTask is no longer supported because BundleInstance,\n the operation it cancels, is no longer supported.

\n
" + } + }, + "com.amazonaws.ec2#CancelBundleTaskRequest": { + "type": "structure", + "members": { + "BundleId": { + "target": "com.amazonaws.ec2#BundleId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the bundle task.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CancelBundleTask.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelBundleTaskResult": { + "type": "structure", + "members": { + "BundleTask": { + "target": "com.amazonaws.ec2#BundleTask", + "traits": { + "aws.protocols#ec2QueryName": "BundleInstanceTask", + "smithy.api#documentation": "

Information about the bundle task.

", + "smithy.api#xmlName": "bundleInstanceTask" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CancelBundleTask.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelCapacityReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels the specified Capacity Reservation, releases the reserved capacity, and\n\t\t\tchanges the Capacity Reservation's state to cancelled.

\n

You can cancel a Capacity Reservation that is in the following states:

\n
    \n
  • \n

    \n assessing\n

    \n
  • \n
  • \n

    \n scheduled — requires a cancellation quote. Use\n\t\t\t\t\tCreateCapacityReservationCancellationQuote to generate a quote,\n\t\t\t\t\tthen pass the quote ID with ApplyCancellationCharges set to\n\t\t\t\t\tcommitment-wind-down. The cancellation charge depends on how\n\t\t\t\t\tclose the reservation is to its start date.

    \n
  • \n
  • \n

    \n active and there is no commitment duration or the commitment\n\t\t\t\t\tduration has elapsed.

    \n
  • \n
  • \n

    \n active during the commitment duration — requires a\n\t\t\t\t\tcancellation quote. Use\n\t\t\t\t\tCreateCapacityReservationCancellationQuote to generate a quote,\n\t\t\t\t\tthen pass the quote ID with ApplyCancellationCharges set to\n\t\t\t\t\tcommitment-wind-down. The Capacity Reservation transitions to\n\t\t\t\t\tcancelling while charges are applied.

    \n
  • \n
  • \n

    \n delayed — the commitment duration is waived, so no\n\t\t\t\t\tcancellation charge applies.

    \n
  • \n
\n \n

You can't modify or cancel a Capacity Block. For more information, see Capacity Blocks for ML.

\n
\n

Instances running in the reserved capacity continue running until you stop them.\n\t\t\tStopped instances that target the Capacity Reservation can no longer launch. Modify\n\t\t\tthese instances to either target a different Capacity Reservation, launch On-Demand\n\t\t\tInstance capacity, or run in any open Capacity Reservation that has matching attributes\n\t\t\tand sufficient capacity.

" + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetErrorMessage", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet cancellation error.

" + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetErrorCode": { + "type": "string" + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetErrorMessage": { + "type": "string" + }, + "com.amazonaws.ec2#CancelCapacityReservationFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity\n\t\t\tReservation Fleet, the following happens:

\n
    \n
  • \n

    The Capacity Reservation Fleet's status changes to\n\t\t\t\t\tcancelled.

    \n
  • \n
  • \n

    The individual Capacity Reservations in the Fleet are cancelled. Instances\n\t\t\t\t\trunning in the Capacity Reservations at the time of cancelling the Fleet\n\t\t\t\t\tcontinue to run in shared capacity.

    \n
  • \n
  • \n

    The Fleet stops creating new Capacity Reservations.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationFleetIds": { + "target": "com.amazonaws.ec2#CapacityReservationFleetIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Capacity Reservation Fleets to cancel.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "CapacityReservationFleetId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetsResult": { + "type": "structure", + "members": { + "SuccessfulFleetCancellations": { + "target": "com.amazonaws.ec2#CapacityReservationFleetCancellationStateSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulFleetCancellationSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that were successfully\n\t\t\tcancelled.

", + "smithy.api#xmlName": "successfulFleetCancellationSet" + } + }, + "FailedFleetCancellations": { + "target": "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResultSet", + "traits": { + "aws.protocols#ec2QueryName": "FailedFleetCancellationSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that could not be cancelled.

", + "smithy.api#xmlName": "failedFleetCancellationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelCapacityReservationRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation to be cancelled.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ApplyCancellationCharges": { + "target": "com.amazonaws.ec2#ApplyCancellationCharges", + "traits": { + "smithy.api#documentation": "

Specifies the cancellation charge type to apply when cancelling a future-dated Capacity\n\t\t\tReservation during its commitment duration. Possible values include\n\t\t\tcommitment-wind-down, which continues billing for the remaining commitment\n\t\t\tduration without delivering capacity.

" + } + }, + "QuoteId": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteId", + "traits": { + "smithy.api#documentation": "

The ID of the cancellation quote to use for the cancellation. You can generate a\n\t\t\tcancellation quote by using the CreateCapacityReservationCancellationQuote\n\t\t\taction. The cancellation quote must be in an active state.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelCapacityReservationResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelConversionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "ConversionTaskId": { + "target": "com.amazonaws.ec2#ConversionTaskId", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTaskId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the conversion task.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "conversionTaskId" + } + }, + "ReasonMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReasonMessage", + "smithy.api#documentation": "

The reason for canceling the conversion task.

", + "smithy.api#xmlName": "reasonMessage" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelConversionTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelConversionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all\n artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is\n in the process of transferring the final disk image, the command fails and returns an exception.

" + } + }, + "com.amazonaws.ec2#CancelDeclarativePoliciesReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelDeclarativePoliciesReportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelDeclarativePoliciesReportResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels the generation of an account status report.

\n

You can only cancel a report while it has the running status. Reports\n with other statuses (complete, cancelled, or\n error) can't be canceled.

\n

For more information, see Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" + } + }, + "com.amazonaws.ec2#CancelDeclarativePoliciesReportRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ReportId": { + "target": "com.amazonaws.ec2#DeclarativePoliciesReportId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelDeclarativePoliciesReportResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelExportTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelExportTaskRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Cancels an active export task. The request removes all artifacts of the export, including any partially-created\n Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the\n command fails and returns an error.

" + } + }, + "com.amazonaws.ec2#CancelExportTaskRequest": { + "type": "structure", + "members": { + "ExportTaskId": { + "target": "com.amazonaws.ec2#ExportVmTaskId", + "traits": { + "aws.protocols#ec2QueryName": "ExportTaskId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the export task. This is the ID returned by the\n CreateInstanceExportTask and ExportImage operations.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "exportTaskId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelImageLaunchPermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelImageLaunchPermissionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelImageLaunchPermissionResult" + }, + "traits": { + "smithy.api#documentation": "

Removes your Amazon Web Services account from the launch permissions for the specified AMI.\n For more information, see Cancel having an AMI shared with\n your Amazon Web Services account in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CancelImageLaunchPermissionRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI that was shared with your Amazon Web Services account.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelImageLaunchPermissionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelImportTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelImportTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelImportTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels an in-process import virtual machine or import snapshot task.

" + } + }, + "com.amazonaws.ec2#CancelImportTaskRequest": { + "type": "structure", + "members": { + "CancelReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The reason for canceling the task.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ImportTaskId": { + "target": "com.amazonaws.ec2#ImportTaskId", + "traits": { + "smithy.api#documentation": "

The ID of the import image or import snapshot task to be canceled.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelImportTaskResult": { + "type": "structure", + "members": { + "ImportTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImportTaskId", + "smithy.api#documentation": "

The ID of the task being canceled.

", + "smithy.api#xmlName": "importTaskId" + } + }, + "PreviousState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PreviousState", + "smithy.api#documentation": "

The current state of the task being canceled.

", + "smithy.api#xmlName": "previousState" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the task being canceled.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelReservedInstancesListing": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelReservedInstancesListingRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelReservedInstancesListingResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels the specified Reserved Instance listing in the Reserved Instance\n Marketplace.

\n

For more information, see Sell in the Reserved Instance\n Marketplace in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CancelReservedInstancesListingRequest": { + "type": "structure", + "members": { + "ReservedInstancesListingId": { + "target": "com.amazonaws.ec2#ReservedInstancesListingId", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Reserved Instance listing.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "reservedInstancesListingId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CancelReservedInstancesListing.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelReservedInstancesListingResult": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "target": "com.amazonaws.ec2#ReservedInstancesListingList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingsSet", + "smithy.api#documentation": "

The Reserved Instance listing.

", + "smithy.api#xmlName": "reservedInstancesListingsSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CancelReservedInstancesListing.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsResponse" + }, + "traits": { + "smithy.api#documentation": "

Cancels the specified Spot Fleet requests.

\n

After you cancel a Spot Fleet request, the Spot Fleet launches no new instances.

\n

You must also specify whether a canceled Spot Fleet request should terminate its instances. If you\n choose to terminate the instances, the Spot Fleet request enters the\n cancelled_terminating state. Otherwise, the Spot Fleet request enters\n the cancelled_running state and the instances continue to run until they\n are interrupted or you terminate them manually.

\n \n

\n Terminating an instance is permanent and irreversible.\n

\n

After you terminate an instance, you can no longer connect to it, and it can't be recovered. \n All attached Amazon EBS volumes that are configured to be deleted on termination are also permanently \n deleted and can't be recovered. All data stored on instance store volumes is permanently lost. \n For more information, see \n How instance termination works.

\n

Before you terminate an instance, ensure that you have backed up all data that you need to \n retain after the termination to persistent storage.

\n
\n

\n Restrictions\n

\n
    \n
  • \n

    You can delete up to 100 fleets in a single request. If you exceed the specified\n number, no fleets are deleted.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To cancel a Spot fleet request", + "documentation": "This example cancels the specified Spot fleet request and terminates its associated Spot Instances.", + "input": { + "SpotFleetRequestIds": [ + "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + ], + "TerminateInstances": true + }, + "output": { + "SuccessfulFleetRequests": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "CurrentSpotFleetRequestState": "cancelled_running", + "PreviousSpotFleetRequestState": "active" + } + ] + } + }, + { + "title": "To cancel a Spot fleet request without terminating its Spot Instances", + "documentation": "This example cancels the specified Spot fleet request without terminating its associated Spot Instances.", + "input": { + "SpotFleetRequestIds": [ + "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + ], + "TerminateInstances": false + }, + "output": { + "SuccessfulFleetRequests": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "CurrentSpotFleetRequestState": "cancelled_terminating", + "PreviousSpotFleetRequestState": "active" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#CancelBatchErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The description for the error code.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Fleet error.

" + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsErrorItem": { + "type": "structure", + "members": { + "Error": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The error.

", + "smithy.api#xmlName": "error" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Fleet request that was not successfully canceled.

" + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotFleetRequestIds": { + "target": "com.amazonaws.ec2#SpotFleetRequestIdList", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Spot Fleet requests.

\n

Constraint: You can specify up to 100 IDs in a single request.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "TerminateInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "TerminateInstances", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to terminate the associated instances when the Spot Fleet request is canceled. \n The default is to terminate the instances.

\n

To let the instances continue to run after the Spot Fleet request is canceled, specify\n no-terminate-instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "terminateInstances" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CancelSpotFleetRequests.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsResponse": { + "type": "structure", + "members": { + "SuccessfulFleetRequests": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulFleetRequestSet", + "smithy.api#documentation": "

Information about the Spot Fleet requests that are successfully canceled.

", + "smithy.api#xmlName": "successfulFleetRequestSet" + } + }, + "UnsuccessfulFleetRequests": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulFleetRequestSet", + "smithy.api#documentation": "

Information about the Spot Fleet requests that are not successfully canceled.

", + "smithy.api#xmlName": "unsuccessfulFleetRequestSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CancelSpotFleetRequests.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsSuccessItem": { + "type": "structure", + "members": { + "CurrentSpotFleetRequestState": { + "target": "com.amazonaws.ec2#BatchState", + "traits": { + "aws.protocols#ec2QueryName": "CurrentSpotFleetRequestState", + "smithy.api#documentation": "

The current state of the Spot Fleet request.

", + "smithy.api#xmlName": "currentSpotFleetRequestState" + } + }, + "PreviousSpotFleetRequestState": { + "target": "com.amazonaws.ec2#BatchState", + "traits": { + "aws.protocols#ec2QueryName": "PreviousSpotFleetRequestState", + "smithy.api#documentation": "

The previous state of the Spot Fleet request.

", + "smithy.api#xmlName": "previousSpotFleetRequestState" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Fleet request that was successfully canceled.

" + } + }, + "com.amazonaws.ec2#CancelSpotFleetRequestsSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CancelSpotFleetRequestsSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CancelSpotInstanceRequestState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "open": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open" + } + }, + "closed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "closed" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + } + } + }, + "com.amazonaws.ec2#CancelSpotInstanceRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelSpotInstanceRequestsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelSpotInstanceRequestsResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels one or more Spot Instance requests.

\n \n

Canceling a Spot Instance request does not terminate running Spot Instances\n associated with the request.

\n
", + "smithy.api#examples": [ + { + "title": "To cancel Spot Instance requests", + "documentation": "This example cancels a Spot Instance request.", + "input": { + "SpotInstanceRequestIds": [ + "sir-08b93456" + ] + }, + "output": { + "CancelledSpotInstanceRequests": [ + { + "State": "cancelled", + "SpotInstanceRequestId": "sir-08b93456" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#CancelSpotInstanceRequestsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotInstanceRequestIds": { + "target": "com.amazonaws.ec2#SpotInstanceRequestIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Spot Instance requests.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SpotInstanceRequestId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CancelSpotInstanceRequests.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CancelSpotInstanceRequestsResult": { + "type": "structure", + "members": { + "CancelledSpotInstanceRequests": { + "target": "com.amazonaws.ec2#CancelledSpotInstanceRequestList", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestSet", + "smithy.api#documentation": "

The Spot Instance requests.

", + "smithy.api#xmlName": "spotInstanceRequestSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CancelSpotInstanceRequests.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CancellationTerms": { + "type": "structure", + "members": { + "CancellationType": { + "target": "com.amazonaws.ec2#ApplyCancellationCharges", + "traits": { + "aws.protocols#ec2QueryName": "CancellationType", + "smithy.api#documentation": "

The type of cancellation charge. Possible values include\n\t\t\tcommitment-wind-down.

", + "smithy.api#xmlName": "cancellationType" + } + }, + "ReservationState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationState", + "smithy.api#documentation": "

The state that the Capacity Reservation will transition to after\n\t\t\tcancellation.

", + "smithy.api#xmlName": "reservationState" + } + }, + "CommittedInstanceCount": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "aws.protocols#ec2QueryName": "CommittedInstanceCount", + "smithy.api#documentation": "

The number of instances under commitment after cancellation.

", + "smithy.api#xmlName": "committedInstanceCount" + } + }, + "ChargeCommitmentDurationHours": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "ChargeCommitmentDurationHours", + "smithy.api#documentation": "

The number of hours for which cancellation charges will apply.

", + "smithy.api#xmlName": "chargeCommitmentDurationHours" + } + }, + "ChargeEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ChargeEndDate", + "smithy.api#documentation": "

The date and time at which cancellation charges will stop.

", + "smithy.api#xmlName": "chargeEndDate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the cancellation terms for cancelling a future-dated Capacity Reservation\n\t\t\tduring its commitment duration.

" + } + }, + "com.amazonaws.ec2#CancellationTermsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CancellationTerms", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CancelledSpotInstanceRequest": { + "type": "structure", + "members": { + "SpotInstanceRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestId", + "smithy.api#documentation": "

The ID of the Spot Instance request.

", + "smithy.api#xmlName": "spotInstanceRequestId" + } + }, + "State": { + "target": "com.amazonaws.ec2#CancelSpotInstanceRequestState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Spot Instance request.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a request to cancel a Spot Instance.

" + } + }, + "com.amazonaws.ec2#CancelledSpotInstanceRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CancelledSpotInstanceRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityAllocation": { + "type": "structure", + "members": { + "AllocationType": { + "target": "com.amazonaws.ec2#AllocationType", + "traits": { + "aws.protocols#ec2QueryName": "AllocationType", + "smithy.api#documentation": "

The usage type. used indicates that the instance capacity is in use by\n\t\t\tinstances that are running in the Capacity Reservation.

", + "smithy.api#xmlName": "allocationType" + } + }, + "Count": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The amount of instance capacity associated with the usage. For example a value of\n\t\t\t\t4 indicates that instance capacity for 4 instances is currently in\n\t\t\tuse.

", + "smithy.api#xmlName": "count" + } + }, + "AllocationMetadata": { + "target": "com.amazonaws.ec2#CapacityAllocationMetadataList", + "traits": { + "aws.protocols#ec2QueryName": "AllocationMetadataList", + "smithy.api#documentation": "

Additional metadata associated with the capacity allocation. Each entry contains a key-value pair providing context \n\t\t\tabout the allocation.

", + "smithy.api#xmlName": "allocationMetadataList" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about instance capacity usage for a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityAllocationMetadataEntry": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The key of the metadata entry.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value of the metadata entry.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

A key-value pair that provides additional metadata about a capacity allocation.

" + } + }, + "com.amazonaws.ec2#CapacityAllocationMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityAllocationMetadataEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityAllocations": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityAllocation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityAmount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#CapacityAvailabilityZoneIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#CapacityBlock": { + "type": "structure", + "members": { + "CapacityBlockId": { + "target": "com.amazonaws.ec2#CapacityBlockId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block.

", + "smithy.api#xmlName": "capacityBlockId" + } + }, + "UltraserverType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UltraserverType", + "smithy.api#documentation": "

The EC2 UltraServer type of the Capacity Block.

", + "smithy.api#xmlName": "ultraserverType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID of the Capacity Block.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationIdSet", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationIdSet" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block was started.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block expires. When a Capacity Block expires,\n\t\t\tall instances in the Capacity Block are terminated.

", + "smithy.api#xmlName": "endDate" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityBlockResourceState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Capacity Block.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Capacity Block.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Reserve powerful GPU instances on a future date to support your short duration machine learning (ML) workloads. Instances that run inside a Capacity Block are automatically placed close together inside Amazon EC2 UltraClusters, for low-latency, petabit-scale, non-blocking networking.

\n

You can also reserve Amazon EC2 UltraServers. UltraServers connect multiple EC2 instances using a low-latency, high-bandwidth accelerator interconnect (NeuronLink). They are built to tackle very large-scale AI/ML workloads that require significant processing power. For more information, see Amazon EC2 UltraServers.

" + } + }, + "com.amazonaws.ec2#CapacityBlockExtension": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The reservation ID of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type of the Capacity Block extension.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Block extension.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block extension.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID of the Capacity Block extension.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingId", + "smithy.api#documentation": "

The ID of the Capacity Block extension offering.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingId" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionDurationHours", + "smithy.api#documentation": "

The duration of the Capacity Block extension in hours.

", + "smithy.api#xmlName": "capacityBlockExtensionDurationHours" + } + }, + "CapacityBlockExtensionStatus": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStatus", + "smithy.api#documentation": "

The status of the Capacity Block extension. A Capacity Block extension can have one of\n\t\t\tthe following statuses:

\n
    \n
  • \n

    \n payment-pending - The Capacity Block extension payment is\n\t\t\t\t\tprocessing. If your payment can't be processed within 12 hours, the Capacity\n\t\t\t\t\tBlock extension is failed.

    \n
  • \n
  • \n

    \n payment-failed - Payment for the Capacity Block extension request\n\t\t\t\t\twas not successful.

    \n
  • \n
  • \n

    \n payment-succeeded - Payment for the Capacity Block extension\n\t\t\t\t\trequest was successful. You receive an invoice that reflects the one-time\n\t\t\t\t\tupfront payment. In the invoice, you can associate the paid amount with the\n\t\t\t\t\tCapacity Block reservation ID.

    \n
  • \n
", + "smithy.api#xmlName": "capacityBlockExtensionStatus" + } + }, + "CapacityBlockExtensionPurchaseDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionPurchaseDate", + "smithy.api#documentation": "

The date when the Capacity Block extension was purchased.

", + "smithy.api#xmlName": "capacityBlockExtensionPurchaseDate" + } + }, + "CapacityBlockExtensionStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStartDate", + "smithy.api#documentation": "

The start date of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityBlockExtensionStartDate" + } + }, + "CapacityBlockExtensionEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionEndDate", + "smithy.api#documentation": "

The end date of the Capacity Block extension.

", + "smithy.api#xmlName": "capacityBlockExtensionEndDate" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontFee", + "smithy.api#documentation": "

The total price to be paid up front.

", + "smithy.api#xmlName": "upfrontFee" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the payment for the Capacity Block extension.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "ZoneType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneType", + "smithy.api#documentation": "

The type of zone where the Capacity Block extension is located.

", + "smithy.api#xmlName": "zoneType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Block extension. With an extension, you can extend the duration\n\t\t\tof time for an existing Capacity Block.

" + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionOffering": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingId", + "smithy.api#documentation": "

The ID of the Capacity Block extension offering.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Block extension offering.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "startDate" + } + }, + "CapacityBlockExtensionStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionStartDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block extension will start. This date is also\n\t\t\tthe same as the end date of the Capacity Block that will be extended.

", + "smithy.api#xmlName": "capacityBlockExtensionStartDate" + } + }, + "CapacityBlockExtensionEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionEndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Block extension expires. When a Capacity Block\n\t\t\texpires, the reserved capacity is released and you can no longer launch instances into\n\t\t\tit. The Capacity Block's state changes to expired when it reaches its end\n\t\t\tdate

", + "smithy.api#xmlName": "capacityBlockExtensionEndDate" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionDurationHours", + "smithy.api#documentation": "

The amount of time of the Capacity Block extension offering in hours.

", + "smithy.api#xmlName": "capacityBlockExtensionDurationHours" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontFee", + "smithy.api#documentation": "

The total price of the Capacity Block extension offering, to be paid up front.

", + "smithy.api#xmlName": "upfrontFee" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the payment for the Capacity Block extension offering.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Block extension offering. A Capacity Block can\n\t\t\thave one of the following tenancy settings:

\n
    \n
  • \n

    \n default - The Capacity Block is created on hardware that is\n\t\t\t\t\tshared with other Amazon Web Services accounts.

    \n
  • \n
  • \n

    \n dedicated - The Capacity Block is created on single-tenant\n\t\t\t\t\thardware that is dedicated to a single Amazon Web Services account.

    \n
  • \n
", + "smithy.api#xmlName": "tenancy" + } + }, + "ZoneType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneType", + "smithy.api#documentation": "

The type of zone where the Capacity Block extension offering is available.

", + "smithy.api#xmlName": "zoneType" + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommended Capacity Block extension that fits your search requirements.

" + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionOfferingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockExtension", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockExtensionStatus": { + "type": "enum", + "members": { + "PAYMENT_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "PAYMENT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + }, + "PAYMENT_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-succeeded" + } + } + } + }, + "com.amazonaws.ec2#CapacityBlockId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityBlockIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockInterconnectStatus": { + "type": "enum", + "members": { + "ok": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ok" + } + }, + "impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + }, + "insufficient_data": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + } + } + }, + "com.amazonaws.ec2#CapacityBlockOffering": { + "type": "structure", + "members": { + "CapacityBlockOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockOfferingId", + "smithy.api#documentation": "

The ID of the Capacity Block offering.

", + "smithy.api#xmlName": "capacityBlockOfferingId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type of the Capacity Block offering.

", + "smithy.api#xmlName": "instanceType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Capacity Block offering.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Block offering.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date of the Capacity Block offering.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The end date of the Capacity Block offering.

", + "smithy.api#xmlName": "endDate" + } + }, + "CapacityBlockDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockDurationHours", + "smithy.api#documentation": "

The number of hours (in addition to capacityBlockDurationMinutes) for the\n\t\t\tduration of the Capacity Block reservation. For example, if a Capacity Block starts at\n\t\t\t\t04:55 and ends at 11:30, the hours field would be 6.

", + "smithy.api#xmlName": "capacityBlockDurationHours" + } + }, + "UpfrontFee": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontFee", + "smithy.api#documentation": "

The total price to be paid up front.

", + "smithy.api#xmlName": "upfrontFee" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the payment for the Capacity Block.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the Capacity Block.

", + "smithy.api#xmlName": "tenancy" + } + }, + "UltraserverType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UltraserverType", + "smithy.api#documentation": "

The EC2 UltraServer type of the Capacity Block offering.

", + "smithy.api#xmlName": "ultraserverType" + } + }, + "UltraserverCount": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "aws.protocols#ec2QueryName": "UltraserverCount", + "smithy.api#documentation": "

The number of EC2 UltraServers in the offering.

", + "smithy.api#xmlName": "ultraserverCount" + } + }, + "CapacityBlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockDurationMinutes", + "smithy.api#documentation": "

The number of minutes (in addition to capacityBlockDurationHours) for the\n\t\t\tduration of the Capacity Block reservation. For example, if a Capacity Block starts at\n\t\t\t\t08:55 and ends at 11:30, the minutes field would be 35.

", + "smithy.api#xmlName": "capacityBlockDurationMinutes" + } + }, + "ZoneType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneType", + "smithy.api#documentation": "

The type of zone where the Capacity Block offering is available.

", + "smithy.api#xmlName": "zoneType" + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommended Capacity Block that fits your search requirements.

" + } + }, + "com.amazonaws.ec2#CapacityBlockOfferingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockResourceState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "scheduled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "payment_pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "payment_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + } + } + }, + "com.amazonaws.ec2#CapacityBlockSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlock", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityBlockStatus": { + "type": "structure", + "members": { + "CapacityBlockId": { + "target": "com.amazonaws.ec2#CapacityBlockId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block.

", + "smithy.api#xmlName": "capacityBlockId" + } + }, + "InterconnectStatus": { + "target": "com.amazonaws.ec2#CapacityBlockInterconnectStatus", + "traits": { + "aws.protocols#ec2QueryName": "InterconnectStatus", + "smithy.api#documentation": "

The status of the high-bandwidth accelerator interconnect. Possible states include:

\n
    \n
  • \n

    \n ok the accelerator interconnect is healthy.

    \n
  • \n
  • \n

    \n impaired - accelerator interconnect communication is impaired.

    \n
  • \n
  • \n

    \n insufficient-data - insufficient data to determine accelerator interconnect status.

    \n
  • \n
", + "smithy.api#xmlName": "interconnectStatus" + } + }, + "TotalCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalCapacity", + "smithy.api#documentation": "

The combined amount of Available and Unavailable capacity in the Capacity Block.

", + "smithy.api#xmlName": "totalCapacity" + } + }, + "TotalAvailableCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalAvailableCapacity", + "smithy.api#documentation": "

The remaining capacity. Indicates the number of resources that can be launched into the Capacity Block.

", + "smithy.api#xmlName": "totalAvailableCapacity" + } + }, + "TotalUnavailableCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalUnavailableCapacity", + "smithy.api#documentation": "

The unavailable capacity. Indicates the instance capacity that is unavailable for use \n\t\t\tdue to a system status check failure.

", + "smithy.api#xmlName": "totalUnavailableCapacity" + } + }, + "CapacityReservationStatuses": { + "target": "com.amazonaws.ec2#CapacityReservationStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationStatusSet", + "smithy.api#documentation": "

The availability of capacity for the Capacity Block reservations.

", + "smithy.api#xmlName": "capacityReservationStatusSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the availability of capacity for a Capacity Block.

" + } + }, + "com.amazonaws.ec2#CapacityBlockStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityBlockStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityManagerCondition": { + "type": "structure", + "members": { + "DimensionCondition": { + "target": "com.amazonaws.ec2#DimensionCondition", + "traits": { + "smithy.api#documentation": "

\nThe dimension-based condition that specifies how to filter the data based on dimension values.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nRepresents a filter condition for Capacity Manager queries. Contains dimension-based filtering criteria used to narrow down metric data and dimension results.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerConditionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerCondition", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.ec2#CapacityManagerDataExportId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityManagerDataExportIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityManagerDataExportResponse": { + "type": "structure", + "members": { + "CapacityManagerDataExportId": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerDataExportId", + "smithy.api#documentation": "

\nThe unique identifier for the data export configuration.\n

", + "smithy.api#xmlName": "capacityManagerDataExportId" + } + }, + "S3BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3BucketName", + "smithy.api#documentation": "

\nThe name of the S3 bucket where export files are delivered.\n

", + "smithy.api#xmlName": "s3BucketName" + } + }, + "S3BucketPrefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3BucketPrefix", + "smithy.api#documentation": "

\nThe S3 key prefix used for organizing export files within the bucket.\n

", + "smithy.api#xmlName": "s3BucketPrefix" + } + }, + "Schedule": { + "target": "com.amazonaws.ec2#Schedule", + "traits": { + "aws.protocols#ec2QueryName": "Schedule", + "smithy.api#documentation": "

\nThe frequency at which data exports are generated.\n

", + "smithy.api#xmlName": "schedule" + } + }, + "OutputFormat": { + "target": "com.amazonaws.ec2#OutputFormat", + "traits": { + "aws.protocols#ec2QueryName": "OutputFormat", + "smithy.api#documentation": "

\nThe file format of the exported data.\n

", + "smithy.api#xmlName": "outputFormat" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

\nThe timestamp when the data export configuration was created.\n

", + "smithy.api#xmlName": "createTime" + } + }, + "LatestDeliveryStatus": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportStatus", + "traits": { + "aws.protocols#ec2QueryName": "LatestDeliveryStatus", + "smithy.api#documentation": "

\nThe status of the most recent export delivery.\n

", + "smithy.api#xmlName": "latestDeliveryStatus" + } + }, + "LatestDeliveryStatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LatestDeliveryStatusMessage", + "smithy.api#documentation": "

\nA message describing the status of the most recent export delivery, including any error details if the delivery failed.\n

", + "smithy.api#xmlName": "latestDeliveryStatusMessage" + } + }, + "LatestDeliveryS3LocationUri": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LatestDeliveryS3LocationUri", + "smithy.api#documentation": "

\nThe S3 URI of the most recently delivered export file.\n

", + "smithy.api#xmlName": "latestDeliveryS3LocationUri" + } + }, + "LatestDeliveryTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LatestDeliveryTime", + "smithy.api#documentation": "

\nThe timestamp when the most recent export was delivered to S3.\n

", + "smithy.api#xmlName": "latestDeliveryTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

\nThe tags associated with the data export configuration.\n

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nContains information about a Capacity Manager data export configuration, including export settings, delivery status, and recent export activity.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerDataExportResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityManagerDataExportStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-progress" + } + }, + "DELIVERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delivered" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#CapacityManagerDimension": { + "type": "structure", + "members": { + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

\n The Amazon Web Services Region where the capacity resource is located.\n

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

\nThe unique identifier of the Availability Zone where the capacity resource is located.\n

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "AccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccountId", + "smithy.api#documentation": "

\n The Amazon Web Services account ID that owns the capacity resource.\n

", + "smithy.api#xmlName": "accountId" + } + }, + "AccountName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccountName", + "smithy.api#documentation": "

\n The name of the Amazon Web Services account that owns the capacity resource. This dimension is only available when Organizations access is enabled for Capacity Manager.\n

", + "smithy.api#xmlName": "accountName" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

\nThe EC2 instance family of the capacity resource.\n

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

\nThe specific EC2 instance type of the capacity resource.\n

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstancePlatform", + "smithy.api#documentation": "

\nThe platform or operating system of the instance.\n

", + "smithy.api#xmlName": "instancePlatform" + } + }, + "ReservationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationArn", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the capacity reservation. This provides a unique identifier that can be used across Amazon Web Services services to reference the specific reservation.\n

", + "smithy.api#xmlName": "reservationArn" + } + }, + "ReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationId", + "smithy.api#documentation": "

\nThe unique identifier of the capacity reservation.\n

", + "smithy.api#xmlName": "reservationId" + } + }, + "ReservationType": { + "target": "com.amazonaws.ec2#ReservationType", + "traits": { + "aws.protocols#ec2QueryName": "ReservationType", + "smithy.api#documentation": "

\nThe type of capacity reservation.\n

", + "smithy.api#xmlName": "reservationType" + } + }, + "ReservationCreateTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ReservationCreateTimestamp", + "smithy.api#documentation": "

\nThe timestamp when the capacity reservation was originally created, in milliseconds since epoch. This differs from the start timestamp as \nreservations can be created before they become active.\n

", + "smithy.api#xmlName": "reservationCreateTimestamp" + } + }, + "ReservationStartTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ReservationStartTimestamp", + "smithy.api#documentation": "

\nThe timestamp when the capacity reservation becomes active and available for use, in milliseconds since epoch. This is when the reservation begins providing capacity.\n

", + "smithy.api#xmlName": "reservationStartTimestamp" + } + }, + "ReservationEndTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ReservationEndTimestamp", + "smithy.api#documentation": "

\nThe timestamp when the capacity reservation expires and is no longer available, in milliseconds since epoch. After this time, the reservation will not provide any capacity.\n

", + "smithy.api#xmlName": "reservationEndTimestamp" + } + }, + "ReservationEndDateType": { + "target": "com.amazonaws.ec2#ReservationEndDateType", + "traits": { + "aws.protocols#ec2QueryName": "ReservationEndDateType", + "smithy.api#documentation": "

\nThe type of end date for the capacity reservation. This indicates whether the reservation has a fixed end date, is open-ended, or follows a specific termination pattern.\n

", + "smithy.api#xmlName": "reservationEndDateType" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

\nThe tenancy of the EC2 instances associated with this capacity dimension. Valid values are 'default' for shared tenancy, 'dedicated' for dedicated instances, or 'host' for dedicated hosts.\n

", + "smithy.api#xmlName": "tenancy" + } + }, + "ReservationState": { + "target": "com.amazonaws.ec2#ReservationState", + "traits": { + "aws.protocols#ec2QueryName": "ReservationState", + "smithy.api#documentation": "

\nThe current state of the capacity reservation.\n

", + "smithy.api#xmlName": "reservationState" + } + }, + "ReservationInstanceMatchCriteria": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationInstanceMatchCriteria", + "smithy.api#documentation": "

\nThe instance matching criteria for the capacity reservation, determining how instances are matched to the reservation.\n

", + "smithy.api#xmlName": "reservationInstanceMatchCriteria" + } + }, + "ReservationUnusedFinancialOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationUnusedFinancialOwner", + "smithy.api#documentation": "

\n The Amazon Web Services account ID that is financially responsible for unused capacity reservation costs. \n

", + "smithy.api#xmlName": "reservationUnusedFinancialOwner" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#CapacityManagerTagDimensionSet", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

\nThe tags associated with the capacity resource, represented as key-value pairs. Only tags that have been activated for monitoring via UpdateCapacityManagerMonitoredTagKeys are included.\n

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nRepresents dimension values for capacity metrics, including resource identifiers, geographic information, and reservation details used for grouping and filtering capacity data.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerMonitoredTagKey": { + "type": "structure", + "members": { + "TagKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TagKey", + "smithy.api#documentation": "

\nThe tag key being monitored.\n

", + "smithy.api#xmlName": "tagKey" + } + }, + "Status": { + "target": "com.amazonaws.ec2#CapacityManagerMonitoredTagKeyStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

\nThe current status of the monitored tag key. Valid values are activating, activated, deactivating, and suspended.\n

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

\nA message providing additional details about the current status of the monitored tag key.\n

", + "smithy.api#xmlName": "statusMessage" + } + }, + "CapacityManagerProvided": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerProvided", + "smithy.api#documentation": "

\nIndicates whether this tag key is provided by Capacity Manager by default, rather than being user-activated.\n

", + "smithy.api#xmlName": "capacityManagerProvided" + } + }, + "EarliestDatapointTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EarliestDatapointTimestamp", + "smithy.api#documentation": "

\nThe earliest timestamp from which tag data is available for queries, in UTC ISO 8601 format.\n

", + "smithy.api#xmlName": "earliestDatapointTimestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nDescribes a tag key that is being monitored by Capacity Manager, including its activation status and the earliest available data point.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerMonitoredTagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerMonitoredTagKey", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityManagerMonitoredTagKeyStatus": { + "type": "enum", + "members": { + "ACTIVATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "activating" + } + }, + "ACTIVATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "activated" + } + }, + "DEACTIVATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deactivating" + } + }, + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + } + } + }, + "com.amazonaws.ec2#CapacityManagerStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#CapacityManagerSupportabilityScore": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

\nThe instance type.\n

", + "smithy.api#xmlName": "instanceType" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

\nThe ID of the Availability Zone.\n

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Score": { + "target": "com.amazonaws.ec2#SupportabilityScore", + "traits": { + "aws.protocols#ec2QueryName": "Score", + "smithy.api#documentation": "

\nHow well the combination can support the requested capacity right now. high means that the combination holds several times the requested amount. \nmedium means that it can cover the request with little to spare. low means that it holds less than the requested amount.\n

", + "smithy.api#xmlName": "score" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nThe supportability score for a single instance type and Availability Zone combination.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerSupportabilityScoreSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerSupportabilityScore", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityManagerTagDimension": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

\nThe tag key.\n

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

\nThe tag value.\n

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nA key-value pair representing a tag associated with a capacity resource in Capacity Manager.\n

" + } + }, + "com.amazonaws.ec2#CapacityManagerTagDimensionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerTagDimension", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservation": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the Capacity Reservation.

", + "smithy.api#xmlName": "ownerId" + } + }, + "CapacityReservationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationArn" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the capacity is reserved.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The type of instance for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "aws.protocols#ec2QueryName": "InstancePlatform", + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "instancePlatform" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the capacity is reserved.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one\n\t\t\tof the following tenancy settings:

\n
    \n
  • \n

    \n default - The Capacity Reservation is created on hardware that is\n\t\t\t\t\tshared with other Amazon Web Services accounts.

    \n
  • \n
  • \n

    \n dedicated - The Capacity Reservation is created on single-tenant\n\t\t\t\t\thardware that is dedicated to a single Amazon Web Services account.

    \n
  • \n
", + "smithy.api#xmlName": "tenancy" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalInstanceCount", + "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "totalInstanceCount" + } + }, + "AvailableInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableInstanceCount", + "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the\n\t\t\tCapacity Reservation.

", + "smithy.api#xmlName": "availableInstanceCount" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This\n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration\n\t\t\tstack to provide optimal I/O performance. This optimization isn't available with all\n\t\t\tinstance types. Additional usage charges apply when using an EBS- optimized\n\t\t\tinstance.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "EphemeralStorage": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EphemeralStorage", + "smithy.api#documentation": "

\n Deprecated.\n

", + "smithy.api#xmlName": "ephemeralStorage" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of\n\t\t\tthe following states:

\n
    \n
  • \n

    \n active - The capacity is available for use.

    \n
  • \n
  • \n

    \n expired - The Capacity Reservation expired automatically at the date and time \n\t\tspecified in your reservation request. The reserved capacity is no longer available for your use.

    \n
  • \n
  • \n

    \n cancelled - The Capacity Reservation was canceled. The reserved capacity is no \n\t\tlonger available for your use.

    \n
  • \n
  • \n

    \n pending - The Capacity Reservation request was successful but the capacity \n\t\tprovisioning is still pending.

    \n
  • \n
  • \n

    \n failed - The Capacity Reservation request has failed. A request can fail due to \n\t\trequest parameters that are not valid, capacity constraints, or instance limit constraints. You \n\t\tcan view a failed request for 60 minutes.

    \n
  • \n
  • \n

    \n scheduled - (Future-dated Capacity Reservations) The \n\t\tfuture-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled \n\t\tfor delivery on the requested start date.

    \n
  • \n
  • \n

    \n payment-pending - (Capacity Blocks) The upfront \n\t payment has not been processed yet.

    \n
  • \n
  • \n

    \n payment-failed - (Capacity Blocks) The upfront \n\t payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    \n
  • \n
  • \n

    \n assessing - (Future-dated Capacity Reservations) \n\t\tAmazon EC2 is assessing your request for a future-dated Capacity Reservation.

    \n
  • \n
  • \n

    \n delayed - (Future-dated Capacity Reservations) Amazon EC2 \n\t\tencountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is \n\t\tunable to deliver the requested capacity by the requested start date and time.

    \n
  • \n
  • \n

    \n unsupported - (Future-dated Capacity Reservations) Amazon EC2\n\t\tcan't support the future-dated Capacity Reservation request due to capacity constraints. You can view\n\t\tunsupported requests for 30 days. The Capacity Reservation will not be delivered.

    \n
  • \n
  • \n

    \n cancelling - (Future-dated Capacity Reservations) The\n\t\tCapacity Reservation is being cancelled. Capacity has been released but charges continue for\n\t\tthe commitment wind-down period. The reservation transitions to cancelled when\n\t\tthe wind-down completes.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The date and time the Capacity Reservation was started.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time the Capacity Reservation expires. When a Capacity\n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Reservation's state changes to expired when\n\t\t\tit reaches its end date and time.

", + "smithy.api#xmlName": "endDate" + } + }, + "EndDateType": { + "target": "com.amazonaws.ec2#EndDateType", + "traits": { + "aws.protocols#ec2QueryName": "EndDateType", + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n
    \n
  • \n

    \n unlimited - The Capacity Reservation remains active until you\n\t\t\t\t\texplicitly cancel it.

    \n
  • \n
  • \n

    \n limited - The Capacity Reservation expires automatically at a\n\t\t\t\t\tspecified date and time.

    \n
  • \n
", + "smithy.api#xmlName": "endDateType" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#InstanceMatchCriteria", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMatchCriteria", + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The\n\t\t\toptions include:

\n
    \n
  • \n

    \n open - The Capacity Reservation accepts all instances that have\n\t\t\t\t\tmatching attributes (instance type, platform, and Availability Zone). Instances\n\t\t\t\t\tthat have matching attributes launch into the Capacity Reservation automatically\n\t\t\t\t\twithout specifying any additional parameters.

    \n
  • \n
  • \n

    \n targeted - The Capacity Reservation only accepts instances that\n\t\t\t\t\thave matching attributes (instance type, platform, and Availability Zone), and\n\t\t\t\t\texplicitly target the Capacity Reservation. This ensures that only permitted\n\t\t\t\t\tinstances can use the reserved capacity.

    \n
  • \n
", + "smithy.api#xmlName": "instanceMatchCriteria" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The date and time the Capacity Reservation was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the Capacity Reservation.

", + "smithy.api#xmlName": "tagSet" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#OutpostArn", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which the Capacity Reservation was\n\t\t\tcreated.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to which the Capacity Reservation belongs.\n\t\t\tOnly valid for Capacity Reservations that were created by a Capacity Reservation\n\t\t\tFleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "PlacementGroupArn": { + "target": "com.amazonaws.ec2#PlacementGroupArn", + "traits": { + "aws.protocols#ec2QueryName": "PlacementGroupArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster placement group in which the Capacity\n\t\t\tReservation was created. For more information, see Capacity Reservations for cluster\n\t\t\t\tplacement groups in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "placementGroupArn" + } + }, + "CapacityAllocations": { + "target": "com.amazonaws.ec2#CapacityAllocations", + "traits": { + "aws.protocols#ec2QueryName": "CapacityAllocationSet", + "smithy.api#documentation": "

Information about instance capacity usage.

", + "smithy.api#xmlName": "capacityAllocationSet" + } + }, + "ReservationType": { + "target": "com.amazonaws.ec2#CapacityReservationType", + "traits": { + "aws.protocols#ec2QueryName": "ReservationType", + "smithy.api#documentation": "

The type of Capacity Reservation.

", + "smithy.api#xmlName": "reservationType" + } + }, + "UnusedReservationBillingOwnerId": { + "target": "com.amazonaws.ec2#AccountID", + "traits": { + "aws.protocols#ec2QueryName": "UnusedReservationBillingOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account to which billing of the unused capacity of\n\t\t\tthe Capacity Reservation is assigned.

", + "smithy.api#xmlName": "unusedReservationBillingOwnerId" + } + }, + "CommitmentInfo": { + "target": "com.amazonaws.ec2#CapacityReservationCommitmentInfo", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentInfo", + "smithy.api#documentation": "

Information about your commitment for a future-dated Capacity Reservation.

", + "smithy.api#xmlName": "commitmentInfo" + } + }, + "DeliveryPreference": { + "target": "com.amazonaws.ec2#CapacityReservationDeliveryPreference", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryPreference", + "smithy.api#documentation": "

The delivery method for a future-dated Capacity Reservation. incremental\n\t\t\tindicates that the requested capacity is delivered in addition to any running instances\n\t\t\tand reserved capacity that you have in your account at the requested date and\n\t\t\ttime.

", + "smithy.api#xmlName": "deliveryPreference" + } + }, + "CapacityBlockId": { + "target": "com.amazonaws.ec2#CapacityBlockId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block.

", + "smithy.api#xmlName": "capacityBlockId" + } + }, + "Interruptible": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "aws.protocols#ec2QueryName": "Interruptible", + "smithy.api#documentation": "

\n\t\t\tIndicates whether this Capacity Reservation is interruptible, meaning instances may be terminated when the owner reclaims capacity.\n\t\t

", + "smithy.api#xmlName": "interruptible" + } + }, + "InterruptibleCapacityAllocation": { + "target": "com.amazonaws.ec2#InterruptibleCapacityAllocation", + "traits": { + "aws.protocols#ec2QueryName": "InterruptibleCapacityAllocation", + "smithy.api#documentation": "

\n\t\t\tContains allocation details for interruptible reservations, including current allocated instances and target instance counts within the interruptibleCapacityAllocation object.\n\t\t

", + "smithy.api#xmlName": "interruptibleCapacityAllocation" + } + }, + "InterruptionInfo": { + "target": "com.amazonaws.ec2#InterruptionInfo", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionInfo", + "smithy.api#documentation": "

\n\t\t\tInformation about the interruption configuration and association with the source reservation for interruptible Capacity Reservations.\n\t\t

", + "smithy.api#xmlName": "interruptionInfo" + } + }, + "AdjustmentStatus": { + "target": "com.amazonaws.ec2#CapacityReservationAdjustmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "AdjustmentStatus", + "smithy.api#documentation": "

The status of the most recent modification to the Capacity Reservation. A Capacity\n\t\t\tReservation can have one of the following adjustment statuses:

\n
    \n
  • \n

    \n requested - The modification was requested and is being\n\t\t\t\t\tprocessed.

    \n
  • \n
  • \n

    \n applied - The modification was applied to the Capacity\n\t\t\t\t\tReservation.

    \n
  • \n
  • \n

    \n rejected - The modification was not applied and the Capacity\n\t\t\t\t\tReservation keeps its existing configuration.

    \n
  • \n
\n

This field is not returned if the Capacity Reservation has never been modified.

", + "smithy.api#xmlName": "adjustmentStatus" + } + }, + "AdjustmentDetails": { + "target": "com.amazonaws.ec2#CapacityReservationAdjustmentDetails", + "traits": { + "aws.protocols#ec2QueryName": "AdjustmentDetails", + "smithy.api#documentation": "

The configuration that the Capacity Reservation will have after the requested adjustment\n\t\t\tis applied.

", + "smithy.api#xmlName": "adjustmentDetails" + } + }, + "OriginalStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OriginalStartDate", + "smithy.api#documentation": "

The start date that you originally requested for the Capacity Reservation, in the ISO8601\n\t\t\tformat in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). This value doesn't\n\t\t\tchange when you push out the start date.

", + "smithy.api#xmlName": "originalStartDate" + } + }, + "ZeroSizePreference": { + "target": "com.amazonaws.ec2#ZeroSizePreference", + "traits": { + "aws.protocols#ec2QueryName": "ZeroSizePreference", + "smithy.api#documentation": "

\n\t\t\tThe zero-size preference configured for the interruptible Capacity Reservation. A value of retain keeps the interruptible Capacity Reservation active at zero capacity when you reduce its allocation to zero. A value of default cancels the interruptible Capacity Reservation when you reduce its allocation to zero.\n\t\t

", + "smithy.api#xmlName": "zeroSizePreference" + } + }, + "LaunchStatus": { + "target": "com.amazonaws.ec2#CapacityReservationLaunchStatus", + "traits": { + "aws.protocols#ec2QueryName": "LaunchStatus", + "smithy.api#documentation": "\n

Only supported for UltraServers.

\n
\n

Indicates whether you can launch instances into the Capacity Reservation. A Capacity\n\t\t\tReservation can have the following launch statuses:

\n
    \n
  • \n

    \n launchable - You can launch instances into the Capacity\n\t\t\t\t\tReservation.

    \n
  • \n
  • \n

    \n unlaunchable - You can't launch instances into the Capacity\n\t\t\t\t\tReservation. For example, the Capacity Reservation is not active.

    \n
  • \n
", + "smithy.api#xmlName": "launchStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationAdjustmentDetails": { + "type": "structure", + "members": { + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date that the Capacity Reservation will have after the adjustment.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The end date that the Capacity Reservation will have after the adjustment.

", + "smithy.api#xmlName": "endDate" + } + }, + "CommitmentEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentEndDate", + "smithy.api#documentation": "

The date and time at which the commitment duration will expire after the\n\t\t\tadjustment.

", + "smithy.api#xmlName": "commitmentEndDate" + } + }, + "EndDateType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EndDateType", + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation will end after the adjustment.\n\t\t\tPossible values are:

\n
    \n
  • \n

    \n unlimited - The Capacity Reservation remains active until you\n\t\t\t\t\texplicitly cancel it.

    \n
  • \n
  • \n

    \n limited - The Capacity Reservation expires automatically at the\n\t\t\t\t\tdate and time given by endDate.

    \n
  • \n
", + "smithy.api#xmlName": "endDateType" + } + }, + "CommitmentDuration": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentDuration", + "smithy.api#documentation": "

The commitment duration, in seconds, that the Capacity Reservation will have after the\n\t\t\tadjustment.

", + "smithy.api#xmlName": "commitmentDuration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration that a Capacity Reservation will have after a pending\n\t\t\tadjustment is applied.

" + } + }, + "com.amazonaws.ec2#CapacityReservationAdjustmentStatus": { + "type": "enum", + "members": { + "requested": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "requested" + } + }, + "applied": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "applied" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationBillingRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "RequestedBy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RequestedBy", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that initiated the request.

", + "smithy.api#xmlName": "requestedBy" + } + }, + "UnusedReservationBillingOwnerId": { + "target": "com.amazonaws.ec2#AccountID", + "traits": { + "aws.protocols#ec2QueryName": "UnusedReservationBillingOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account to which the request was sent.

", + "smithy.api#xmlName": "unusedReservationBillingOwnerId" + } + }, + "LastUpdateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdateTime", + "smithy.api#documentation": "

The date and time, in UTC time format, at which the request was initiated.

", + "smithy.api#xmlName": "lastUpdateTime" + } + }, + "Status": { + "target": "com.amazonaws.ec2#CapacityReservationBillingRequestStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the request. For more information, see View billing assignment\n\t\t\t\trequests for a shared Amazon EC2 Capacity Reservation.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

Information about the status.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "CapacityReservationInfo": { + "target": "com.amazonaws.ec2#CapacityReservationInfo", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationInfo", + "smithy.api#documentation": "

Information about the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a request to assign billing of the unused capacity of a Capacity\n\t\t\tReservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationBillingRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationBillingRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationBillingRequestStatus": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "accepted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accepted" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "revoked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "revoked" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationCancellationQuote": { + "type": "structure", + "members": { + "CapacityReservationCancellationQuoteId": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationCancellationQuoteId", + "smithy.api#documentation": "

The ID of the cancellation quote.

", + "smithy.api#xmlName": "capacityReservationCancellationQuoteId" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation associated with the cancellation quote.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the cancellation quote was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ExpirationTime", + "smithy.api#documentation": "

The date and time at which the cancellation quote expires.

", + "smithy.api#xmlName": "expirationTime" + } + }, + "QuoteState": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteState", + "traits": { + "aws.protocols#ec2QueryName": "QuoteState", + "smithy.api#documentation": "

The state of the cancellation quote. Possible values include\n\t\t\tpending, active, and expired.

", + "smithy.api#xmlName": "quoteState" + } + }, + "CurrentConfiguration": { + "target": "com.amazonaws.ec2#CapacityReservationConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "CurrentConfiguration", + "smithy.api#documentation": "

The current configuration of the Capacity Reservation.

", + "smithy.api#xmlName": "currentConfiguration" + } + }, + "CancellationTerms": { + "target": "com.amazonaws.ec2#CancellationTermsSet", + "traits": { + "aws.protocols#ec2QueryName": "CancellationTermSet", + "smithy.api#documentation": "

The cancellation terms associated with the quote, including the fee type and\n\t\t\tcharge details.

", + "smithy.api#xmlName": "cancellationTermSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the cancellation quote.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation cancellation quote, which provides the cancellation\n\t\t\tterms for cancelling a future-dated Capacity Reservation during its commitment\n\t\t\tduration.

" + } + }, + "com.amazonaws.ec2#CapacityReservationCancellationQuoteId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityReservationCancellationQuoteIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationCancellationQuoteResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuote", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationCancellationQuoteState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationCommitmentDuration": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 200000000 + } + } + }, + "com.amazonaws.ec2#CapacityReservationCommitmentInfo": { + "type": "structure", + "members": { + "CommittedInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CommittedInstanceCount", + "smithy.api#documentation": "

The instance capacity that you committed to when you requested the future-dated\n\t\t\tCapacity Reservation.

", + "smithy.api#xmlName": "committedInstanceCount" + } + }, + "CommitmentEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentEndDate", + "smithy.api#documentation": "

The date and time at which the commitment duration expires, in the ISO8601 format in\n\t\t\tthe UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). You can't decrease the\n\t\t\tinstance count or cancel the Capacity Reservation before this date and time.

", + "smithy.api#xmlName": "commitmentEndDate" + } + }, + "CommitmentDuration": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "CommitmentDuration", + "smithy.api#documentation": "

The commitment duration, in seconds, for the future-dated Capacity Reservation. This is\n\t\t\tthe minimum duration for which you commit to having the Capacity Reservation in the\n\t\t\tactive state in your account after it has been delivered.

", + "smithy.api#xmlName": "commitmentDuration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about your commitment for a future-dated Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationConfiguration": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Reservation.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "ReservationState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationState", + "smithy.api#documentation": "

The current state of the Capacity Reservation.

", + "smithy.api#xmlName": "reservationState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationDeliveryPreference": { + "type": "enum", + "members": { + "FIXED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fixed" + } + }, + "INCREMENTAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incremental" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleet": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "CapacityReservationFleetArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetArn", + "smithy.api#documentation": "

The ARN of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetArn" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Capacity Reservation Fleet. Possible states include:

\n
    \n
  • \n

    \n submitted - The Capacity Reservation Fleet request has been\n\t\t\t\t\tsubmitted and Amazon Elastic Compute Cloud is preparing to create the Capacity\n\t\t\t\t\tReservations.

    \n
  • \n
  • \n

    \n modifying - The Capacity Reservation Fleet is being modified. The\n\t\t\t\t\tFleet remains in this state until the modification is complete.

    \n
  • \n
  • \n

    \n active - The Capacity Reservation Fleet has fulfilled its total\n\t\t\t\t\ttarget capacity and it is attempting to maintain this capacity. The Fleet\n\t\t\t\t\tremains in this state until it is modified or deleted.

    \n
  • \n
  • \n

    \n partially_fulfilled - The Capacity Reservation Fleet has\n\t\t\t\t\tpartially fulfilled its total target capacity. There is insufficient Amazon EC2 to fulfill the total target capacity. The Fleet is attempting to\n\t\t\t\t\tasynchronously fulfill its total target capacity.

    \n
  • \n
  • \n

    \n expiring - The Capacity Reservation Fleet has reach its end date\n\t\t\t\t\tand it is in the process of expiring. One or more of its Capacity reservations\n\t\t\t\t\tmight still be active.

    \n
  • \n
  • \n

    \n expired - The Capacity Reservation Fleet has reach its end date.\n\t\t\t\t\tThe Fleet and its Capacity Reservations are expired. The Fleet can't create new\n\t\t\t\t\tCapacity Reservations.

    \n
  • \n
  • \n

    \n cancelling - The Capacity Reservation Fleet is in the process of\n\t\t\t\t\tbeing cancelled. One or more of its Capacity reservations might still be\n\t\t\t\t\tactive.

    \n
  • \n
  • \n

    \n cancelled - The Capacity Reservation Fleet has been manually\n\t\t\t\t\tcancelled. The Fleet and its Capacity Reservations are cancelled and the Fleet\n\t\t\t\t\tcan't create new Capacity Reservations.

    \n
  • \n
  • \n

    \n failed - The Capacity Reservation Fleet failed to reserve\n\t\t\t\t\tcapacity for the specified instance types.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalTargetCapacity", + "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves\n\t\t\tcapacity. For more information, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "totalTargetCapacity" + } + }, + "TotalFulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "TotalFulfilledCapacity", + "smithy.api#documentation": "

The capacity units that have been fulfilled.

", + "smithy.api#xmlName": "totalFulfilledCapacity" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the Capacity Reservation Fleet. Tenancies include:

\n
    \n
  • \n

    \n default - The Capacity Reservation Fleet is created on hardware\n\t\t\t\t\tthat is shared with other Amazon Web Services accounts.

    \n
  • \n
  • \n

    \n dedicated - The Capacity Reservation Fleet is created on\n\t\t\t\t\tsingle-tenant hardware that is dedicated to a single Amazon Web Services account.

    \n
  • \n
", + "smithy.api#xmlName": "tenancy" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires.

", + "smithy.api#xmlName": "endDate" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMatchCriteria", + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts.\n\t\t\tAll Capacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching\n\t\t\tcriteria only. This means that instances that have matching attributes (instance type,\n\t\t\tplatform, and Availability Zone) run in the Capacity Reservations automatically.\n\t\t\tInstances do not need to explicitly target a Capacity Reservation Fleet to use its\n\t\t\treserved capacity.

", + "smithy.api#xmlName": "instanceMatchCriteria" + } + }, + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the\n\t\t\tspecified instance types to use. For more information, see For more information, see\n\t\t\t\tAllocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "InstanceTypeSpecifications": { + "target": "com.amazonaws.ec2#FleetCapacityReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeSpecificationSet", + "smithy.api#documentation": "

Information about the instance types for which to reserve the capacity.

", + "smithy.api#xmlName": "instanceTypeSpecificationSet" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "aws.protocols#ec2QueryName": "InstanceRequirements", + "smithy.api#documentation": "

Reserved for internal use.

", + "smithy.api#xmlName": "instanceRequirements" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

Reserved for internal use.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

Reserved for internal use.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#CapacityReservationFleetCancellationState": { + "type": "structure", + "members": { + "CurrentFleetState": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "CurrentFleetState", + "smithy.api#documentation": "

The current state of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "currentFleetState" + } + }, + "PreviousFleetState": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "PreviousFleetState", + "smithy.api#documentation": "

The previous state of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "previousFleetState" + } + }, + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet that was successfully cancelled.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet that was successfully cancelled.

" + } + }, + "com.amazonaws.ec2#CapacityReservationFleetCancellationStateSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleetCancellationState", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityReservationFleetIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleet", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetState": { + "type": "enum", + "members": { + "SUBMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "submitted" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "PARTIALLY_FULFILLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "partially_fulfilled" + } + }, + "EXPIRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expiring" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "CANCELLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationGroup": { + "type": "structure", + "members": { + "GroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupArn", + "smithy.api#documentation": "

The ARN of the resource group.

", + "smithy.api#xmlName": "groupArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the resource group.

", + "smithy.api#xmlName": "ownerId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a resource group to which a Capacity Reservation has been added.

" + } + }, + "com.amazonaws.ec2#CapacityReservationGroupSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityReservationIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationInfo": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type for the Capacity Reservation.

", + "smithy.api#xmlName": "instanceType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone for the Capacity Reservation.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the Capacity Reservation.

", + "smithy.api#xmlName": "tenancy" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationInstancePlatform": { + "type": "enum", + "members": { + "LINUX_UNIX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux/UNIX" + } + }, + "RED_HAT_ENTERPRISE_LINUX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Red Hat Enterprise Linux" + } + }, + "SUSE_LINUX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUSE Linux" + } + }, + "WINDOWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows" + } + }, + "WINDOWS_WITH_SQL_SERVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows with SQL Server" + } + }, + "WINDOWS_WITH_SQL_SERVER_ENTERPRISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows with SQL Server Enterprise" + } + }, + "WINDOWS_WITH_SQL_SERVER_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows with SQL Server Standard" + } + }, + "WINDOWS_WITH_SQL_SERVER_WEB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows with SQL Server Web" + } + }, + "LINUX_WITH_SQL_SERVER_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux with SQL Server Standard" + } + }, + "LINUX_WITH_SQL_SERVER_WEB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux with SQL Server Web" + } + }, + "LINUX_WITH_SQL_SERVER_ENTERPRISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux with SQL Server Enterprise" + } + }, + "RHEL_WITH_SQL_SERVER_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with SQL Server Standard" + } + }, + "RHEL_WITH_SQL_SERVER_ENTERPRISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with SQL Server Enterprise" + } + }, + "RHEL_WITH_SQL_SERVER_WEB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with SQL Server Web" + } + }, + "RHEL_WITH_HA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with HA" + } + }, + "RHEL_WITH_HA_AND_SQL_SERVER_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with HA and SQL Server Standard" + } + }, + "RHEL_WITH_HA_AND_SQL_SERVER_ENTERPRISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RHEL with HA and SQL Server Enterprise" + } + }, + "UBUNTU_PRO_LINUX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Ubuntu Pro" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationLaunchStatus": { + "type": "enum", + "members": { + "LAUNCHABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchable" + } + }, + "UNLAUNCHABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlaunchable" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationModificationQuote": { + "type": "structure", + "members": { + "CapacityReservationModificationQuoteId": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationModificationQuoteId", + "smithy.api#documentation": "

The ID of the modification quote.

", + "smithy.api#xmlName": "capacityReservationModificationQuoteId" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation associated with the modification quote.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the modification quote was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ExpirationTime", + "smithy.api#documentation": "

The date and time at which the modification quote expires.

", + "smithy.api#xmlName": "expirationTime" + } + }, + "QuoteState": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteState", + "traits": { + "aws.protocols#ec2QueryName": "QuoteState", + "smithy.api#documentation": "

The state of the modification quote itself. Possible values are:

\n
    \n
  • \n

    \n active - The quote can still be used.

    \n
  • \n
  • \n

    \n expired - The quote can no longer be used. A quote becomes\n\t\t\t\t\texpired at its expirationTime.

    \n
  • \n
", + "smithy.api#xmlName": "quoteState" + } + }, + "CurrentConfiguration": { + "target": "com.amazonaws.ec2#ModificationQuoteCurrentConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "CurrentConfiguration", + "smithy.api#documentation": "

The configuration that the Capacity Reservation has at the time the quote was\n\t\t\tgenerated.

", + "smithy.api#xmlName": "currentConfiguration" + } + }, + "ModificationTerms": { + "target": "com.amazonaws.ec2#ModificationTerms", + "traits": { + "aws.protocols#ec2QueryName": "ModificationTerms", + "smithy.api#documentation": "

The terms of the modification, including the configuration that the Capacity Reservation\n\t\t\twill have if you accept them by using ModifyCapacityReservation.

", + "smithy.api#xmlName": "modificationTerms" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the modification quote.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation modification quote, which provides the terms for\n\t\t\tchanging the start date or the commitment of a future-dated Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationModificationQuoteId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityReservationModificationQuoteIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteId", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#CapacityReservationModificationQuoteResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuote", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationModificationQuoteState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationOptions": { + "type": "structure", + "members": { + "UsageStrategy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationUsageStrategy", + "traits": { + "aws.protocols#ec2QueryName": "UsageStrategy", + "smithy.api#documentation": "

Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity.

\n

If you specify use-capacity-reservations-first, the fleet uses unused\n Capacity Reservations to fulfill On-Demand capacity up to the target On-Demand capacity. If\n multiple instance pools have unused Capacity Reservations, the On-Demand allocation\n strategy (lowest-price or prioritized) is applied. If the number\n of unused Capacity Reservations is less than the On-Demand target capacity, the remaining\n On-Demand target capacity is launched according to the On-Demand allocation strategy\n (lowest-price or prioritized).

\n

If you do not specify a value, the fleet fulfils the On-Demand capacity according to the\n chosen On-Demand allocation strategy.

", + "smithy.api#xmlName": "usageStrategy" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand\n capacity.

\n \n

This strategy can only be used if the EC2 Fleet is of type\n instant.

\n
\n

For more information about Capacity Reservations, see On-Demand Capacity\n Reservations in the Amazon EC2 User Guide. For examples of using\n Capacity Reservations in an EC2 Fleet, see EC2 Fleet example\n configurations in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CapacityReservationOptionsRequest": { + "type": "structure", + "members": { + "UsageStrategy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationUsageStrategy", + "traits": { + "smithy.api#documentation": "

Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity.

\n

If you specify use-capacity-reservations-first, the fleet uses unused\n Capacity Reservations to fulfill On-Demand capacity up to the target On-Demand capacity. If\n multiple instance pools have unused Capacity Reservations, the On-Demand allocation\n strategy (lowest-price or prioritized) is applied. If the number\n of unused Capacity Reservations is less than the On-Demand target capacity, the remaining\n On-Demand target capacity is launched according to the On-Demand allocation strategy\n (lowest-price or prioritized).

\n

If you do not specify a value, the fleet fulfils the On-Demand capacity according to the\n chosen On-Demand allocation strategy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand\n capacity.

\n \n

This strategy can only be used if the EC2 Fleet is of type instant.

\n
\n

For more information about Capacity Reservations, see On-Demand Capacity\n Reservations in the Amazon EC2 User Guide. For examples of using\n Capacity Reservations in an EC2 Fleet, see EC2 Fleet example\n configurations in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CapacityReservationPreference": { + "type": "enum", + "members": { + "capacity_reservations_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-reservations-only" + } + }, + "open": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationResourceGroupArnSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ResourceGroupName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationSpecification": { + "type": "structure", + "members": { + "CapacityReservationPreference": { + "target": "com.amazonaws.ec2#CapacityReservationPreference", + "traits": { + "smithy.api#documentation": "

Indicates the instance's Capacity Reservation preferences. Possible preferences\n\t\t\tinclude:

\n
    \n
  • \n

    \n capacity-reservations-only - The instance will only run in a\n\t\t\t\t\tCapacity Reservation or Capacity Reservation group. If capacity isn't available,\n\t\t\t\t\tthe instance will fail to launch.

    \n
  • \n
  • \n

    \n open - The instance can run in any open Capacity\n\t\t\t\t\tReservation that has matching attributes (instance type, platform, Availability\n\t\t\t\t\tZone, and tenancy). If capacity isn't available, the instance runs as an\n\t\t\t\t\tOn-Demand Instance.

    \n
  • \n
  • \n

    \n none - The instance doesn't run in a Capacity Reservation even if\n\t\t\t\t\tone is available. The instance runs as an On-Demand Instance.

    \n
  • \n
" + } + }, + "CapacityReservationTarget": { + "target": "com.amazonaws.ec2#CapacityReservationTarget", + "traits": { + "smithy.api#documentation": "

Information about the target Capacity Reservation or Capacity Reservation\n\t\t\tgroup.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance's Capacity Reservation targeting option.

\n

Use the CapacityReservationPreference parameter to configure the instance\n\t\t\tto run as an On-Demand Instance, to run in any open Capacity Reservation\n\t\t\tthat has matching attributes, or to run only in a Capacity Reservation or Capacity\n\t\t\tReservation group. Use the CapacityReservationTarget parameter to\n\t\t\texplicitly target a specific Capacity Reservation or a Capacity Reservation\n\t\t\tgroup.

\n

You can only specify CapacityReservationPreference and\n\t\t\t\tCapacityReservationTarget if the\n\t\t\t\tCapacityReservationPreference is\n\t\t\t\tcapacity-reservations-only.

" + } + }, + "com.amazonaws.ec2#CapacityReservationSpecificationResponse": { + "type": "structure", + "members": { + "CapacityReservationPreference": { + "target": "com.amazonaws.ec2#CapacityReservationPreference", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationPreference", + "smithy.api#documentation": "

Describes the instance's Capacity Reservation preferences. Possible preferences include:

\n
    \n
  • \n

    \n open - The instance can run in any open Capacity Reservation that\n has matching attributes (instance type, platform, Availability Zone).

    \n
  • \n
  • \n

    \n none - The instance avoids running in a Capacity Reservation even if one is\n available. The instance runs in On-Demand capacity.

    \n
  • \n
", + "smithy.api#xmlName": "capacityReservationPreference" + } + }, + "CapacityReservationTarget": { + "target": "com.amazonaws.ec2#CapacityReservationTargetResponse", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationTarget", + "smithy.api#documentation": "

Information about the targeted Capacity Reservation or Capacity Reservation group.

", + "smithy.api#xmlName": "capacityReservationTarget" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instance's Capacity Reservation targeting preferences. The action returns the\n capacityReservationPreference response element if the instance is\n configured to run in On-Demand capacity, or if it is configured in run in any\n open Capacity Reservation that has matching attributes (instance type, platform,\n Availability Zone). The action returns the capacityReservationTarget\n response element if the instance explicily targets a specific Capacity Reservation or Capacity Reservation group.

" + } + }, + "com.amazonaws.ec2#CapacityReservationState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "scheduled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "payment_pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "payment_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + }, + "assessing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "assessing" + } + }, + "delayed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delayed" + } + }, + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "cancelling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationStatus": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "TotalCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalCapacity", + "smithy.api#documentation": "

The combined amount of Available and Unavailable capacity in the Capacity Reservation.

", + "smithy.api#xmlName": "totalCapacity" + } + }, + "TotalAvailableCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalAvailableCapacity", + "smithy.api#documentation": "

The remaining capacity. Indicates the amount of resources that can be launched into the Capacity Reservation.

", + "smithy.api#xmlName": "totalAvailableCapacity" + } + }, + "TotalUnavailableCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalUnavailableCapacity", + "smithy.api#documentation": "

The used capacity. Indicates that the capacity is in use by resources that are running in the Capacity Reservation.

", + "smithy.api#xmlName": "totalUnavailableCapacity" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the availability of capacity for a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#CapacityReservationStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationTarget": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#documentation": "

The ID of the Capacity Reservation in which to run the instance.

" + } + }, + "CapacityReservationResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Capacity Reservation resource group in which to run the\n\t\t\tinstance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a target Capacity Reservation or Capacity Reservation group.

" + } + }, + "com.amazonaws.ec2#CapacityReservationTargetResponse": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the targeted Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "CapacityReservationResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationResourceGroupArn", + "smithy.api#documentation": "

The ARN of the targeted Capacity Reservation group.

", + "smithy.api#xmlName": "capacityReservationResourceGroupArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a target Capacity Reservation or Capacity Reservation group.

" + } + }, + "com.amazonaws.ec2#CapacityReservationTenancy": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "dedicated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + } + } + }, + "com.amazonaws.ec2#CapacityReservationTopology": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "CapacityBlockId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block. This parameter is only supported for UltraServer\n instances and identifies instances within the UltraServer domain.

", + "smithy.api#xmlName": "capacityBlockId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the Capacity Reservation. For the list of possible states, see\n DescribeCapacityReservations.

", + "smithy.api#xmlName": "state" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group that the Capacity Reservation is in.

", + "smithy.api#xmlName": "groupName" + } + }, + "NetworkNodes": { + "target": "com.amazonaws.ec2#NetworkNodeSet", + "traits": { + "aws.protocols#ec2QueryName": "NetworkNodeSet", + "smithy.api#documentation": "

The network nodes. The nodes are hashed based on your account. Capacity Reservations\n from different accounts running under the same server will return a different hashed\n list of strings.

\n

The value is null or empty if:

\n
    \n
  • \n

    The instance type is not supported.

    \n
  • \n
  • \n

    The Capacity Reservation is in a state other than active or\n pending.

    \n
  • \n
", + "smithy.api#xmlName": "networkNodeSet" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone or Local Zone that the Capacity Reservation is\n in.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The name of the Availability Zone or Local Zone that the Capacity Reservation is\n in.

", + "smithy.api#xmlName": "availabilityZone" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Capacity Reservation topology.

" + } + }, + "com.amazonaws.ec2#CapacityReservationTopologySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationTopology", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationType": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "CAPACITY_BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + } + } + }, + "com.amazonaws.ec2#CapacityTenancy": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "DEDICATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + } + } + }, + "com.amazonaws.ec2#CapacityUnit": { + "type": "enum", + "members": { + "VCPUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vcpus" + } + }, + "INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instances" + } + } + } + }, + "com.amazonaws.ec2#CarrierGateway": { + "type": "structure", + "members": { + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#CarrierGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGatewayId", + "smithy.api#documentation": "

The ID of the carrier gateway.

", + "smithy.api#xmlName": "carrierGatewayId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC associated with the carrier gateway.

", + "smithy.api#xmlName": "vpcId" + } + }, + "State": { + "target": "com.amazonaws.ec2#CarrierGatewayState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the carrier gateway.

", + "smithy.api#xmlName": "state" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the carrier gateway.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the carrier gateway.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a carrier gateway.

" + } + }, + "com.amazonaws.ec2#CarrierGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#CarrierGatewayIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CarrierGatewayId" + } + }, + "com.amazonaws.ec2#CarrierGatewayMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#CarrierGatewaySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CarrierGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CarrierGatewayState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#CertificateArn": { + "type": "string" + }, + "com.amazonaws.ec2#CertificateAuthentication": { + "type": "structure", + "members": { + "ClientRootCertificateChain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientRootCertificateChain", + "smithy.api#documentation": "

The ARN of the client certificate.

", + "smithy.api#xmlName": "clientRootCertificateChain" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the client certificate used for authentication.

" + } + }, + "com.amazonaws.ec2#CertificateAuthenticationRequest": { + "type": "structure", + "members": { + "ClientRootCertificateChainArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the client certificate. The certificate must be signed by a certificate \n\t\t\tauthority (CA) and it must be provisioned in Certificate Manager (ACM).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the client certificate to be used for authentication.

" + } + }, + "com.amazonaws.ec2#CertificateId": { + "type": "string" + }, + "com.amazonaws.ec2#ChronologicalOrder": { + "type": "enum", + "members": { + "forward": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "reverse": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reverse" + } + } + }, + "traits": { + "smithy.api#documentation": "

The chronological order for returning results.

" + } + }, + "com.amazonaws.ec2#CidrAuthorizationContext": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The plain-text authorization message for the prefix and account.

", + "smithy.api#required": {} + } + }, + "Signature": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The signed authorization message for the prefix and account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides authorization for Amazon to bring a specific IP address range to a specific\n Amazon Web Services account using bring your own IP addresses (BYOIP). For more information, see Configuring your BYOIP address range in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CidrBlock": { + "type": "structure", + "members": { + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block.

", + "smithy.api#xmlName": "cidrBlock" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 CIDR block.

" + } + }, + "com.amazonaws.ec2#CidrBlockSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CidrBlock", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClassicLinkDnsSupport": { + "type": "structure", + "members": { + "ClassicLinkDnsSupported": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ClassicLinkDnsSupported", + "smithy.api#documentation": "

Indicates whether ClassicLink DNS support is enabled for the VPC.

", + "smithy.api#xmlName": "classicLinkDnsSupported" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Deprecated.

\n
\n

Describes the ClassicLink DNS support status of a VPC.

" + } + }, + "com.amazonaws.ec2#ClassicLinkDnsSupportList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClassicLinkDnsSupport", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClassicLinkInstance": { + "type": "structure", + "members": { + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups.

", + "smithy.api#xmlName": "groupSet" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the instance.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Deprecated.

\n
\n

Describes a linked EC2-Classic instance.

" + } + }, + "com.amazonaws.ec2#ClassicLinkInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClassicLinkInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClassicLoadBalancer": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the load balancer.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Classic Load Balancer.

" + } + }, + "com.amazonaws.ec2#ClassicLoadBalancers": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClassicLoadBalancer", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ec2#ClassicLoadBalancersConfig": { + "type": "structure", + "members": { + "ClassicLoadBalancers": { + "target": "com.amazonaws.ec2#ClassicLoadBalancers", + "traits": { + "aws.protocols#ec2QueryName": "ClassicLoadBalancers", + "smithy.api#documentation": "

One or more Classic Load Balancers.

", + "smithy.api#xmlName": "classicLoadBalancers" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Classic Load Balancers to attach to a Spot Fleet. Spot Fleet registers\n the running Spot Instances with these Classic Load Balancers.

" + } + }, + "com.amazonaws.ec2#ClientCertificateRevocationListStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientCertificateRevocationListStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the client certificate revocation list.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the client certificate revocation list, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a client certificate revocation list.

" + } + }, + "com.amazonaws.ec2#ClientCertificateRevocationListStatusCode": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + } + } + }, + "com.amazonaws.ec2#ClientConnectOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether client connect options are enabled. The default is false (not enabled).

" + } + }, + "LambdaFunctionArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function used for connection authorization.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" + } + }, + "com.amazonaws.ec2#ClientConnectResponseOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Indicates whether client connect options are enabled.

", + "smithy.api#xmlName": "enabled" + } + }, + "LambdaFunctionArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LambdaFunctionArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function used for connection authorization.

", + "smithy.api#xmlName": "lambdaFunctionArn" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnEndpointAttributeStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of any updates to the client connect options.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" + } + }, + "com.amazonaws.ec2#ClientData": { + "type": "structure", + "members": { + "Comment": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A user-defined comment about the disk upload.

" + } + }, + "UploadEnd": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The time that the disk upload ends.

" + } + }, + "UploadSize": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The size of the uploaded disk image, in GiB.

" + } + }, + "UploadStart": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The time that the disk upload starts.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the client-specific data.

" + } + }, + "com.amazonaws.ec2#ClientLoginBannerOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable or disable a customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.

\n

Valid values: true | false\n

\n

Default value: false\n

" + } + }, + "BannerText": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Customizable text that will be displayed in a banner on Amazon Web Services provided\n\t\t\tclients when a VPN session is established. UTF-8 encoded characters only. Maximum of\n\t\t\t1400 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for enabling a customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.

" + } + }, + "com.amazonaws.ec2#ClientLoginBannerResponseOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Current state of text banner feature.

\n

Valid values: true | false\n

", + "smithy.api#xmlName": "enabled" + } + }, + "BannerText": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BannerText", + "smithy.api#documentation": "

Customizable text that will be displayed in a banner on Amazon Web Services provided\n\t\t\tclients when a VPN session is established. UTF-8 encoded\n\t\t\tcharacters only. Maximum of 1400 characters.

", + "smithy.api#xmlName": "bannerText" + } + } + }, + "traits": { + "smithy.api#documentation": "

Current state of options for customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.

" + } + }, + "com.amazonaws.ec2#ClientRouteEnforcementOptions": { + "type": "structure", + "members": { + "Enforced": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable or disable Client Route Enforcement. The state can either be true\n\t\t\t(enabled) or false (disabled). The default is false.

\n

Valid values: true | false\n

\n

Default value: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Client Route Enforcement is a feature of Client VPN that helps enforce administrator defined\n\t\t\troutes on devices connected through the VPN. This feature helps improve your security\n\t\t\tposture by ensuring that network traffic originating from a connected client is not\n\t\t\tinadvertently sent outside the VPN tunnel.

\n

Client Route Enforcement works by monitoring the route table of a connected device for\n\t\t\trouting policy changes to the VPN connection. If the feature detects any VPN routing\n\t\t\tpolicy modifications, it will automatically force an update to the route table,\n\t\t\treverting it back to the expected route configurations.

" + } + }, + "com.amazonaws.ec2#ClientRouteEnforcementResponseOptions": { + "type": "structure", + "members": { + "Enforced": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enforced", + "smithy.api#documentation": "

Status of the client route enforcement feature, indicating whether Client Route Enforcement\n\t\t\tis true (enabled) or false (disabled).

\n

Valid values: true | false\n

\n

Default value: false\n

", + "smithy.api#xmlName": "enforced" + } + } + }, + "traits": { + "smithy.api#documentation": "

The current status of Client Route Enforcement.

" + } + }, + "com.amazonaws.ec2#ClientSecretType": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ClientVpnAuthentication": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#ClientVpnAuthenticationType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The authentication type used.

", + "smithy.api#xmlName": "type" + } + }, + "ActiveDirectory": { + "target": "com.amazonaws.ec2#DirectoryServiceAuthentication", + "traits": { + "aws.protocols#ec2QueryName": "ActiveDirectory", + "smithy.api#documentation": "

Information about the Active Directory, if applicable.

", + "smithy.api#xmlName": "activeDirectory" + } + }, + "MutualAuthentication": { + "target": "com.amazonaws.ec2#CertificateAuthentication", + "traits": { + "aws.protocols#ec2QueryName": "MutualAuthentication", + "smithy.api#documentation": "

Information about the authentication certificates, if applicable.

", + "smithy.api#xmlName": "mutualAuthentication" + } + }, + "FederatedAuthentication": { + "target": "com.amazonaws.ec2#FederatedAuthentication", + "traits": { + "aws.protocols#ec2QueryName": "FederatedAuthentication", + "smithy.api#documentation": "

Information about the IAM SAML identity provider, if applicable.

", + "smithy.api#xmlName": "federatedAuthentication" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the authentication methods used by a Client VPN endpoint. For more information, see Authentication \n\t\t\tin the Client VPN Administrator Guide.

" + } + }, + "com.amazonaws.ec2#ClientVpnAuthenticationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnAuthentication", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnAuthenticationRequest": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#ClientVpnAuthenticationType", + "traits": { + "smithy.api#documentation": "

The type of client authentication to be used.

" + } + }, + "ActiveDirectory": { + "target": "com.amazonaws.ec2#DirectoryServiceAuthenticationRequest", + "traits": { + "smithy.api#documentation": "

Information about the Active Directory to be used, if applicable. You must provide this information if Type is directory-service-authentication.

" + } + }, + "MutualAuthentication": { + "target": "com.amazonaws.ec2#CertificateAuthenticationRequest", + "traits": { + "smithy.api#documentation": "

Information about the authentication certificates to be used, if applicable. You must provide this information if Type is certificate-authentication.

" + } + }, + "FederatedAuthentication": { + "target": "com.amazonaws.ec2#FederatedAuthenticationRequest", + "traits": { + "smithy.api#documentation": "

Information about the IAM SAML identity provider to be used, if applicable. You must provide this information if Type is federated-authentication.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the authentication method to be used by a Client VPN endpoint. For more information, see Authentication \n\t\t\tin the Client VPN Administrator Guide.

" + } + }, + "com.amazonaws.ec2#ClientVpnAuthenticationRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnAuthenticationRequest" + } + }, + "com.amazonaws.ec2#ClientVpnAuthenticationType": { + "type": "enum", + "members": { + "certificate_authentication": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "certificate-authentication" + } + }, + "directory_service_authentication": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "directory-service-authentication" + } + }, + "federated_authentication": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "federated-authentication" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnAuthorizationPolicyShadowMode": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the authorization policy for a Client VPN endpoint is evaluated in shadow mode. Possible values include:

\n
    \n
  • \n

    \n enabled - The authorization policy is evaluated and the results are logged, but access is not enforced.

    \n
  • \n
  • \n

    \n disabled - The authorization policy is enforced.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#ClientVpnAuthorizationPolicyStatus": { + "type": "enum", + "members": { + "creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "updating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "updating" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of an authorization policy for a Client VPN endpoint. Possible states include:

\n
    \n
  • \n

    \n creating - The authorization policy is being created.

    \n
  • \n
  • \n

    \n updating - The authorization policy is being updated.

    \n
  • \n
  • \n

    \n active - The authorization policy has been applied to the Client VPN endpoint.

    \n
  • \n
  • \n

    \n failed - The authorization policy could not be applied to the Client VPN endpoint.

    \n
  • \n
  • \n

    \n deleting - The authorization policy is being deleted.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the authorization rule.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the authorization rule, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of an authorization rule.

" + } + }, + "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatusCode": { + "type": "enum", + "members": { + "authorizing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "authorizing" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "revoking": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "revoking" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnAvailabilityZoneIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnAvailabilityZoneSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnConnection": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint to which the client is connected.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The current date and time.

", + "smithy.api#xmlName": "timestamp" + } + }, + "ConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionId", + "smithy.api#documentation": "

The ID of the client connection.

", + "smithy.api#xmlName": "connectionId" + } + }, + "Username": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Username", + "smithy.api#documentation": "

The username of the client who established the client connection. This information is only provided \n\t\t\tif Active Directory client authentication is used.

", + "smithy.api#xmlName": "username" + } + }, + "ConnectionEstablishedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionEstablishedTime", + "smithy.api#documentation": "

The date and time the client connection was established.

", + "smithy.api#xmlName": "connectionEstablishedTime" + } + }, + "IngressBytes": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IngressBytes", + "smithy.api#documentation": "

The number of bytes sent by the client.

", + "smithy.api#xmlName": "ingressBytes" + } + }, + "EgressBytes": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EgressBytes", + "smithy.api#documentation": "

The number of bytes received by the client.

", + "smithy.api#xmlName": "egressBytes" + } + }, + "IngressPackets": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IngressPackets", + "smithy.api#documentation": "

The number of packets sent by the client.

", + "smithy.api#xmlName": "ingressPackets" + } + }, + "EgressPackets": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EgressPackets", + "smithy.api#documentation": "

The number of packets received by the client.

", + "smithy.api#xmlName": "egressPackets" + } + }, + "ClientIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientIp", + "smithy.api#documentation": "

The IP address of the client.

", + "smithy.api#xmlName": "clientIp" + } + }, + "ClientIpv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientIpv6Address", + "smithy.api#documentation": "

The IPv6 address assigned to the client connection when using a dual-stack Client VPN endpoint. This field is only populated when the endpoint is configured for dual-stack addressing, and the client is using IPv6 for connectivity.

", + "smithy.api#xmlName": "clientIpv6Address" + } + }, + "CommonName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CommonName", + "smithy.api#documentation": "

The common name associated with the client. This is either the name of the client certificate,\n\t\t\tor the Active Directory user name.

", + "smithy.api#xmlName": "commonName" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnConnectionStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the client connection.

", + "smithy.api#xmlName": "status" + } + }, + "ConnectionEndTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionEndTime", + "smithy.api#documentation": "

The date and time the client connection was terminated.

", + "smithy.api#xmlName": "connectionEndTime" + } + }, + "PostureComplianceStatuses": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "PostureComplianceStatusSet", + "smithy.api#documentation": "

The statuses returned by the client connect handler for posture compliance, if applicable.

", + "smithy.api#xmlName": "postureComplianceStatusSet" + } + }, + "AuthorizationPolicyLastEvaluatedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AuthorizationPolicyLastEvaluatedTime", + "smithy.api#documentation": "

The date and time the authorization policy was last evaluated for the client connection, if applicable.

", + "smithy.api#xmlName": "authorizationPolicyLastEvaluatedTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a client connection.

" + } + }, + "com.amazonaws.ec2#ClientVpnConnectionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnConnection", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnConnectionStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientVpnConnectionStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the client connection.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the client connection, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of a client connection.

" + } + }, + "com.amazonaws.ec2#ClientVpnConnectionStatusCode": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "failed_to_terminate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-to-terminate" + } + }, + "terminating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminating" + } + }, + "terminated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminated" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnDeviceTrustProviderType": { + "type": "enum", + "members": { + "crowdstrike": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "crowdstrike" + } + }, + "jamf": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jamf" + } + }, + "jumpcloud": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jumpcloud" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnEndpoint": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A brief description of the endpoint.

", + "smithy.api#xmlName": "description" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnEndpointStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the Client VPN endpoint.

", + "smithy.api#xmlName": "status" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The date and time the Client VPN endpoint was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "DeletionTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeletionTime", + "smithy.api#documentation": "

The date and time the Client VPN endpoint was deleted, if applicable.

", + "smithy.api#xmlName": "deletionTime" + } + }, + "DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The DNS name to be used by clients when connecting to the Client VPN endpoint.

", + "smithy.api#xmlName": "dnsName" + } + }, + "ClientCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientCidrBlock", + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, from which client IP addresses are assigned.

", + "smithy.api#xmlName": "clientCidrBlock" + } + }, + "DnsServers": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DnsServer", + "smithy.api#documentation": "

Information about the DNS servers to be used for DNS resolution.

", + "smithy.api#xmlName": "dnsServer" + } + }, + "SplitTunnel": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SplitTunnel", + "smithy.api#documentation": "

Indicates whether split-tunnel is enabled in the Client VPN endpoint.

\n

For information about split-tunnel VPN endpoints, see Split-Tunnel Client VPN endpoint \n\t\t\tin the Client VPN Administrator Guide.

", + "smithy.api#xmlName": "splitTunnel" + } + }, + "VpnProtocol": { + "target": "com.amazonaws.ec2#VpnProtocol", + "traits": { + "aws.protocols#ec2QueryName": "VpnProtocol", + "smithy.api#documentation": "

The protocol used by the VPN session.

", + "smithy.api#xmlName": "vpnProtocol" + } + }, + "TransportProtocol": { + "target": "com.amazonaws.ec2#TransportProtocol", + "traits": { + "aws.protocols#ec2QueryName": "TransportProtocol", + "smithy.api#documentation": "

The transport protocol used by the Client VPN endpoint.

", + "smithy.api#xmlName": "transportProtocol" + } + }, + "VpnPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VpnPort", + "smithy.api#documentation": "

The port number for the Client VPN endpoint.

", + "smithy.api#xmlName": "vpnPort" + } + }, + "AssociatedTargetNetworks": { + "target": "com.amazonaws.ec2#AssociatedTargetNetworkSet", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedTargetNetwork", + "smithy.api#deprecated": { + "message": "This property is deprecated. To view the target networks associated with a Client VPN endpoint, call DescribeClientVpnTargetNetworks and inspect the clientVpnTargetNetworks response element." + }, + "smithy.api#documentation": "

Information about the associated target networks. A target network is a subnet in a VPC.

", + "smithy.api#xmlName": "associatedTargetNetwork" + } + }, + "ServerCertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServerCertificateArn", + "smithy.api#documentation": "

The ARN of the server certificate.

", + "smithy.api#xmlName": "serverCertificateArn" + } + }, + "AuthenticationOptions": { + "target": "com.amazonaws.ec2#ClientVpnAuthenticationList", + "traits": { + "aws.protocols#ec2QueryName": "AuthenticationOptions", + "smithy.api#documentation": "

Information about the authentication method used by the Client VPN endpoint.

", + "smithy.api#xmlName": "authenticationOptions" + } + }, + "ConnectionLogOptions": { + "target": "com.amazonaws.ec2#ConnectionLogResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionLogOptions", + "smithy.api#documentation": "

Information about the client connection logging options for the Client VPN endpoint.

", + "smithy.api#xmlName": "connectionLogOptions" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the Client VPN endpoint.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupIdSet", + "smithy.api#documentation": "

The IDs of the security groups for the target network.

", + "smithy.api#xmlName": "securityGroupIdSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SelfServicePortalUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SelfServicePortalUrl", + "smithy.api#documentation": "

The URL of the self-service portal.

", + "smithy.api#xmlName": "selfServicePortalUrl" + } + }, + "ClientConnectOptions": { + "target": "com.amazonaws.ec2#ClientConnectResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "ClientConnectOptions", + "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

", + "smithy.api#xmlName": "clientConnectOptions" + } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SessionTimeoutHours", + "smithy.api#documentation": "

The maximum VPN session duration time in hours.

\n

Valid values: 8 | 10 | 12 | 24\n

\n

Default value: 24\n

", + "smithy.api#xmlName": "sessionTimeoutHours" + } + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "ClientLoginBannerOptions", + "smithy.api#documentation": "

Options for enabling a customizable text banner that will be displayed on Amazon Web Services provided clients when a VPN session is\n\t\t\testablished.

", + "smithy.api#xmlName": "clientLoginBannerOptions" + } + }, + "ClientRouteEnforcementOptions": { + "target": "com.amazonaws.ec2#ClientRouteEnforcementResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "ClientRouteEnforcementOptions", + "smithy.api#documentation": "

Client route enforcement is a feature of the Client VPN service that helps enforce administrator defined routes on devices connected through the VPN. T\n\t\this feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel.

\n

Client route enforcement works by monitoring the route table of a connected device for routing policy changes to the VPN connection. If the feature detects any VPN routing policy modifications, it will automatically force an update to the route table, \n\t\t\treverting it back to the expected route configurations.

", + "smithy.api#xmlName": "clientRouteEnforcementOptions" + } + }, + "DisconnectOnSessionTimeout": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DisconnectOnSessionTimeout", + "smithy.api#documentation": "

Indicates whether the client VPN session is disconnected after the maximum sessionTimeoutHours is reached. If true, users are prompted to reconnect client VPN. If false, client VPN attempts to reconnect automatically. The default value is true.

", + "smithy.api#xmlName": "disconnectOnSessionTimeout" + } + }, + "EndpointIpAddressType": { + "target": "com.amazonaws.ec2#EndpointIpAddressType", + "traits": { + "aws.protocols#ec2QueryName": "EndpointIpAddressType", + "smithy.api#documentation": "

The IP address type of the Client VPN endpoint. Possible values are ipv4 for IPv4 addressing only, ipv6 for IPv6 addressing only, or dual-stack for both IPv4 and IPv6 addressing.

", + "smithy.api#xmlName": "endpointIpAddressType" + } + }, + "TrafficIpAddressType": { + "target": "com.amazonaws.ec2#TrafficIpAddressType", + "traits": { + "aws.protocols#ec2QueryName": "TrafficIpAddressType", + "smithy.api#documentation": "

The IP address type of the Client VPN endpoint. Possible values are either ipv4 for IPv4 addressing only, ipv6 for IPv6 addressing only, or dual-stack for both IPv4 and IPv6 addressing.

", + "smithy.api#xmlName": "trafficIpAddressType" + } + }, + "TransitGatewayConfiguration": { + "target": "com.amazonaws.ec2#TransitGatewayConfigurationDescribeEndpointStructure", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConfiguration", + "smithy.api#documentation": "

The Transit Gateway configuration for the Client VPN endpoint.

", + "smithy.api#xmlName": "transitGatewayConfiguration" + } + }, + "DevicePostureOptions": { + "target": "com.amazonaws.ec2#DevicePostureResponseOptions", + "traits": { + "aws.protocols#ec2QueryName": "DevicePostureOptions", + "smithy.api#documentation": "

The device trust providers configured for the Client VPN endpoint, if applicable.

", + "smithy.api#xmlName": "devicePostureOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ClientVpnEndpointAttributeStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientVpnEndpointAttributeStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The status message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of the Client VPN endpoint attribute.

" + } + }, + "com.amazonaws.ec2#ClientVpnEndpointAttributeStatusCode": { + "type": "enum", + "members": { + "applying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "applying" + } + }, + "applied": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "applied" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnEndpointId": { + "type": "string" + }, + "com.amazonaws.ec2#ClientVpnEndpointIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnEndpointStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientVpnEndpointStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the Client VPN endpoint. Possible states include:

\n
    \n
  • \n

    \n pending-associate - The Client VPN endpoint has been created but no target networks \n\t\t\t\t\thave been associated. The Client VPN endpoint cannot accept connections.

    \n
  • \n
  • \n

    \n available - The Client VPN endpoint has been created and a target network has been\n\t\t\t\t\tassociated. The Client VPN endpoint can accept connections.

    \n
  • \n
  • \n

    \n deleting - The Client VPN endpoint is being deleted. The Client VPN endpoint cannot accept\n\t\t\t\t\tconnections.

    \n
  • \n
  • \n

    \n deleted - The Client VPN endpoint has been deleted. The Client VPN endpoint cannot accept\n\t\t\t\t\tconnections.

    \n
  • \n
  • \n

    \n pending - The Client VPN endpoint has been created with a Transit Gateway configuration and is waiting for the Transit Gateway attachment to be accepted. The Client VPN endpoint cannot accept connections.

    \n
  • \n
", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the Client VPN endpoint.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ClientVpnEndpointStatusCode": { + "type": "enum", + "members": { + "pending_associate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-associate" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnRoute": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint with which the route is associated.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "DestinationCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidr", + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the route destination.

", + "smithy.api#xmlName": "destinationCidr" + } + }, + "TargetSubnet": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TargetSubnet", + "smithy.api#documentation": "

The ID of the subnet through which traffic is routed.

", + "smithy.api#xmlName": "targetSubnet" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The route type.

", + "smithy.api#xmlName": "type" + } + }, + "Origin": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Origin", + "smithy.api#documentation": "

Indicates how the route was associated with the Client VPN endpoint. \n\t\t\tassociate indicates that the route was automatically added when the target network \n\t\t\twas associated with the Client VPN endpoint. add-route indicates that the route \n\t\t\twas manually added using the CreateClientVpnRoute action.

", + "smithy.api#xmlName": "origin" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnRouteStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the route.

", + "smithy.api#xmlName": "status" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A brief description of the route.

", + "smithy.api#xmlName": "description" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the Transit Gateway attachment, if the route targets a Transit Gateway.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Client VPN endpoint route.

" + } + }, + "com.amazonaws.ec2#ClientVpnRouteSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnRouteStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#ClientVpnRouteStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the Client VPN endpoint route.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message about the status of the Client VPN endpoint route, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a Client VPN endpoint route.

" + } + }, + "com.amazonaws.ec2#ClientVpnRouteStatusCode": { + "type": "enum", + "members": { + "creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnTrustProvider": { + "type": "structure", + "members": { + "TrustProviderType": { + "target": "com.amazonaws.ec2#ClientVpnDeviceTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "TrustProviderType", + "smithy.api#documentation": "

The type of the device trust provider. Possible values include:

\n
    \n
  • \n

    \n crowdstrike - CrowdStrike device trust provider.

    \n
  • \n
  • \n

    \n jamf - Jamf device trust provider.

    \n
  • \n
  • \n

    \n jumpcloud - JumpCloud device trust provider.

    \n
  • \n
", + "smithy.api#xmlName": "trustProviderType" + } + }, + "TenantId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TenantId", + "smithy.api#documentation": "

The tenant ID associated with your device trust provider account.

", + "smithy.api#xmlName": "tenantId" + } + }, + "PublicSigningKeyUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicSigningKeyUrl", + "smithy.api#documentation": "

The URL of the public signing key that is used to verify the identity token issued by the device trust provider.

", + "smithy.api#xmlName": "publicSigningKeyUrl" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a device trust provider configured for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ClientVpnTrustProviderRequest": { + "type": "structure", + "members": { + "TrustProviderType": { + "target": "com.amazonaws.ec2#ClientVpnDeviceTrustProviderType", + "traits": { + "smithy.api#documentation": "

The type of the device trust provider. Possible values include:

\n
    \n
  • \n

    \n crowdstrike - CrowdStrike device trust provider.

    \n
  • \n
  • \n

    \n jamf - Jamf device trust provider.

    \n
  • \n
  • \n

    \n jumpcloud - JumpCloud device trust provider.

    \n
  • \n
" + } + }, + "TenantId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The tenant ID associated with your device trust provider account.

" + } + }, + "PublicSigningKeyUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The URL of the public signing key that is used to verify the identity token issued by the device trust provider.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a device trust provider to configure for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ClientVpnTrustProviderRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnTrustProviderRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ClientVpnTrustProviderSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnTrustProvider", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CloudWatchLogGroupArn": { + "type": "string" + }, + "com.amazonaws.ec2#CloudWatchLogOptions": { + "type": "structure", + "members": { + "LogEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "LogEnabled", + "smithy.api#documentation": "

Status of VPN tunnel logging feature. Default value is False.

\n

Valid values: True | False\n

", + "smithy.api#xmlName": "logEnabled" + } + }, + "LogGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogGroupArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.

", + "smithy.api#xmlName": "logGroupArn" + } + }, + "LogOutputFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogOutputFormat", + "smithy.api#documentation": "

Configured log format. Default format is json.

\n

Valid values: json | text\n

", + "smithy.api#xmlName": "logOutputFormat" + } + }, + "BgpLogEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "BgpLogEnabled", + "smithy.api#documentation": "

Indicates whether Border Gateway Protocol (BGP) logging is enabled for the VPN connection. Default value is False.

\n

Valid values: True | False\n

", + "smithy.api#xmlName": "bgpLogEnabled" + } + }, + "BgpLogGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BgpLogGroupArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch log group for BGP logs.

", + "smithy.api#xmlName": "bgpLogGroupArn" + } + }, + "BgpLogOutputFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BgpLogOutputFormat", + "smithy.api#documentation": "

The output format for BGP logs sent to CloudWatch. Default format is json.

\n

Valid values: json | text\n

", + "smithy.api#xmlName": "bgpLogOutputFormat" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for sending VPN tunnel logs to CloudWatch.

" + } + }, + "com.amazonaws.ec2#CloudWatchLogOptionsSpecification": { + "type": "structure", + "members": { + "LogEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable or disable VPN tunnel logging feature. Default value is False.

\n

Valid values: True | False\n

" + } + }, + "LogGroupArn": { + "target": "com.amazonaws.ec2#CloudWatchLogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.

" + } + }, + "LogOutputFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Set log format. Default format is json.

\n

Valid values: json | text\n

" + } + }, + "BgpLogEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable BGP logging for the VPN connection. Default value is False.

\n

Valid values: True | False\n

" + } + }, + "BgpLogGroupArn": { + "target": "com.amazonaws.ec2#CloudWatchLogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch log group where BGP logs will be sent.

" + } + }, + "BgpLogOutputFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The desired output format for BGP logs to be sent to CloudWatch. Default format is json.

\n

Valid values: json | text\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for sending VPN tunnel logs to CloudWatch.

" + } + }, + "com.amazonaws.ec2#CoipAddressUsage": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The allocation ID of the address.

", + "smithy.api#xmlName": "allocationId" + } + }, + "AwsAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsAccountId", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", + "smithy.api#xmlName": "awsAccountId" + } + }, + "AwsService": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsService", + "smithy.api#documentation": "

The Amazon Web Services service.

", + "smithy.api#xmlName": "awsService" + } + }, + "CoIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoIp", + "smithy.api#documentation": "

The customer-owned IP address.

", + "smithy.api#xmlName": "coIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes address usage for a customer-owned address pool.

" + } + }, + "com.amazonaws.ec2#CoipAddressUsageSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CoipAddressUsage", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CoipCidr": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

\n An address range in a customer-owned IP address space.\n

", + "smithy.api#xmlName": "cidr" + } + }, + "CoipPoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "aws.protocols#ec2QueryName": "CoipPoolId", + "smithy.api#documentation": "

\n The ID of the address pool.\n

", + "smithy.api#xmlName": "coipPoolId" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

\n The ID of the local gateway route table.\n

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Information about a customer-owned IP address range.\n

" + } + }, + "com.amazonaws.ec2#CoipPool": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the address pool.

", + "smithy.api#xmlName": "poolId" + } + }, + "PoolCidrs": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "PoolCidrSet", + "smithy.api#documentation": "

The address ranges of the address pool.

", + "smithy.api#xmlName": "poolCidrSet" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PoolArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "PoolArn", + "smithy.api#documentation": "

The ARN of the address pool.

", + "smithy.api#xmlName": "poolArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a customer-owned address pool.

" + } + }, + "com.amazonaws.ec2#CoipPoolId": { + "type": "string" + }, + "com.amazonaws.ec2#CoipPoolIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CoipPoolMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#CoipPoolSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CoipPool", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Comparison": { + "type": "enum", + "members": { + "EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "equals" + } + }, + "IN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in" + } + } + } + }, + "com.amazonaws.ec2#ComponentAccount": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\d{12}$" + } + }, + "com.amazonaws.ec2#ComponentRegion": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z]{2}-[a-z]+-[1-9]+$" + } + }, + "com.amazonaws.ec2#ConditionValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + } + } + }, + "com.amazonaws.ec2#ConditionValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ConditionValue", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#ConfirmProductInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ConfirmProductInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ConfirmProductInstanceResult" + }, + "traits": { + "smithy.api#documentation": "

Determines whether a product code is associated with an instance. This action can only\n be used by the owner of the product code. It is useful when a product code owner must\n verify whether another user's instance is eligible for support.

", + "smithy.api#examples": [ + { + "title": "To confirm the product instance", + "documentation": "This example determines whether the specified product code is associated with the specified instance.", + "input": { + "ProductCode": "774F4FF8", + "InstanceId": "i-1234567890abcdef0" + }, + "output": { + "OwnerId": "123456789012" + } + } + ] + } + }, + "com.amazonaws.ec2#ConfirmProductInstanceRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "ProductCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The product code. This must be a product code that you own.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ConfirmProductInstanceResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

The return value of the request. Returns true if the specified product\n code is owned by the requester and associated with the specified instance.

", + "smithy.api#xmlName": "return" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the instance owner. This is only present if the\n product code is attached to the instance.

", + "smithy.api#xmlName": "ownerId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ConnectionLogOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether connection logging is enabled.

" + } + }, + "CloudwatchLogGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch Logs log group. Required if connection logging is enabled.

" + } + }, + "CloudwatchLogStream": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch Logs log stream to which the connection data is published.

" + } + }, + "IncludeAuthorizationPolicyContext": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include the authorization policy evaluation context in the connection logs for the Client VPN endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the client connection logging options for the Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ConnectionLogResponseOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether client connection logging is enabled for the Client VPN endpoint.

" + } + }, + "CloudwatchLogGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log group to which connection logging data is published.

" + } + }, + "CloudwatchLogStream": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log stream to which connection logging data is published.

" + } + }, + "IncludeAuthorizationPolicyContext": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the authorization policy evaluation context is included in the connection logs for the Client VPN endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the client connection logging options for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ConnectionNotification": { + "type": "structure", + "members": { + "ConnectionNotificationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotificationId", + "smithy.api#documentation": "

The ID of the notification.

", + "smithy.api#xmlName": "connectionNotificationId" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the endpoint service.

", + "smithy.api#xmlName": "serviceId" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The ID of the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "ConnectionNotificationType": { + "target": "com.amazonaws.ec2#ConnectionNotificationType", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotificationType", + "smithy.api#documentation": "

The type of notification.

", + "smithy.api#xmlName": "connectionNotificationType" + } + }, + "ConnectionNotificationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotificationArn", + "smithy.api#documentation": "

The ARN of the SNS topic for the notification.

", + "smithy.api#xmlName": "connectionNotificationArn" + } + }, + "ConnectionEvents": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionEvents", + "smithy.api#documentation": "

The events for the notification. Valid values are Accept,\n Connect, Delete, and Reject.

", + "smithy.api#xmlName": "connectionEvents" + } + }, + "ConnectionNotificationState": { + "target": "com.amazonaws.ec2#ConnectionNotificationState", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotificationState", + "smithy.api#documentation": "

The state of the notification.

", + "smithy.api#xmlName": "connectionNotificationState" + } + }, + "ServiceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceRegion", + "smithy.api#documentation": "

The Region for the endpoint service.

", + "smithy.api#xmlName": "serviceRegion" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a connection notification for a VPC endpoint or VPC endpoint\n service.

" + } + }, + "com.amazonaws.ec2#ConnectionNotificationId": { + "type": "string" + }, + "com.amazonaws.ec2#ConnectionNotificationIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ConnectionNotificationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ConnectionNotificationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ConnectionNotification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ConnectionNotificationState": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.ec2#ConnectionNotificationType": { + "type": "enum", + "members": { + "Topic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Topic" + } + } + } + }, + "com.amazonaws.ec2#ConnectionTrackingConfiguration": { + "type": "structure", + "members": { + "TcpEstablishedTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TcpEstablishedTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle TCP\n\t\t\t\t\t\tconnections in an established state. Min: 60 seconds. Max: 432000 seconds (5\n\t\t\t\t\t\tdays). Default: 350 seconds for Nitro v6 instance types (excluding\n\t\t\t\t\t\tP6e-GB200); 432000 seconds for all other instance types (including\n\t\t\t\t\t\tP6e-GB200). Recommended: Less than 432000 seconds.

", + "smithy.api#xmlName": "tcpEstablishedTimeout" + } + }, + "UdpStreamTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpStreamTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP\n\t\t\t\t\t\tflows classified as streams which have seen more than one request-response\n\t\t\t\t\t\ttransaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180\n\t\t\t\t\t\tseconds.

", + "smithy.api#xmlName": "udpStreamTimeout" + } + }, + "UdpTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP flows that\n\t\t\t\t\t\thave seen traffic only in a single direction or a single request-response\n\t\t\t\t\t\ttransaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.

", + "smithy.api#xmlName": "udpTimeout" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group connection tracking configuration that enables you to set the idle\n timeout for connection tracking on an Elastic network interface. For more information,\n see Connection tracking timeouts in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ConnectionTrackingSpecification": { + "type": "structure", + "members": { + "TcpEstablishedTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TcpEstablishedTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle TCP\n\t\t\t\t\t\tconnections in an established state. Min: 60 seconds. Max: 432000 seconds (5\n\t\t\t\t\t\tdays). Default: 350 seconds for Nitro v6 instance types (excluding\n\t\t\t\t\t\tP6e-GB200); 432000 seconds for all other instance types (including\n\t\t\t\t\t\tP6e-GB200). Recommended: Less than 432000 seconds.

", + "smithy.api#xmlName": "tcpEstablishedTimeout" + } + }, + "UdpTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP flows that\n\t\t\t\t\t\thave seen traffic only in a single direction or a single request-response\n\t\t\t\t\t\ttransaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.

", + "smithy.api#xmlName": "udpTimeout" + } + }, + "UdpStreamTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpStreamTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP\n\t\t\t\t\t\tflows classified as streams which have seen more than one request-response\n\t\t\t\t\t\ttransaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180\n\t\t\t\t\t\tseconds.

", + "smithy.api#xmlName": "udpStreamTimeout" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group connection tracking specification that enables you to set the idle\n timeout for connection tracking on an Elastic network interface. For more information,\n see Connection tracking timeouts in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ConnectionTrackingSpecificationRequest": { + "type": "structure", + "members": { + "TcpEstablishedTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Timeout (in seconds) for idle TCP\n\t\t\t\t\t\tconnections in an established state. Min: 60 seconds. Max: 432000 seconds (5\n\t\t\t\t\t\tdays). Default: 350 seconds for Nitro v6 instance types (excluding\n\t\t\t\t\t\tP6e-GB200); 432000 seconds for all other instance types (including\n\t\t\t\t\t\tP6e-GB200). Recommended: Less than 432000 seconds.

" + } + }, + "UdpStreamTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP\n\t\t\t\t\t\tflows classified as streams which have seen more than one request-response\n\t\t\t\t\t\ttransaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180\n\t\t\t\t\t\tseconds.

" + } + }, + "UdpTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP flows that\n\t\t\t\t\t\thave seen traffic only in a single direction or a single request-response\n\t\t\t\t\t\ttransaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group connection tracking specification request that enables you to set the\n idle timeout for connection tracking on an Elastic network interface. For more\n information, see Connection tracking timeouts in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ConnectionTrackingSpecificationResponse": { + "type": "structure", + "members": { + "TcpEstablishedTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TcpEstablishedTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle TCP\n\t\t\t\t\t\tconnections in an established state. Min: 60 seconds. Max: 432000 seconds (5\n\t\t\t\t\t\tdays). Default: 350 seconds for Nitro v6 instance types (excluding\n\t\t\t\t\t\tP6e-GB200); 432000 seconds for all other instance types (including\n\t\t\t\t\t\tP6e-GB200). Recommended: Less than 432000 seconds.

", + "smithy.api#xmlName": "tcpEstablishedTimeout" + } + }, + "UdpStreamTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpStreamTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP\n\t\t\t\t\t\tflows classified as streams which have seen more than one request-response\n\t\t\t\t\t\ttransaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180\n\t\t\t\t\t\tseconds.

", + "smithy.api#xmlName": "udpStreamTimeout" + } + }, + "UdpTimeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UdpTimeout", + "smithy.api#documentation": "

Timeout (in seconds) for idle UDP flows that\n\t\t\t\t\t\thave seen traffic only in a single direction or a single request-response\n\t\t\t\t\t\ttransaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.

", + "smithy.api#xmlName": "udpTimeout" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group connection tracking specification response that enables you to set\n the idle timeout for connection tracking on an Elastic network interface. For more\n information, see Connection tracking timeouts in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ConnectivityType": { + "type": "enum", + "members": { + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + }, + "PUBLIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public" + } + } + } + }, + "com.amazonaws.ec2#ContainerFormat": { + "type": "enum", + "members": { + "ova": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ova" + } + } + } + }, + "com.amazonaws.ec2#ConversionIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ConversionTaskId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ConversionTask": { + "type": "structure", + "members": { + "ConversionTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTaskId", + "smithy.api#documentation": "

The ID of the conversion task.

", + "smithy.api#xmlName": "conversionTaskId" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExpirationTime", + "smithy.api#documentation": "

The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel\n the task.

", + "smithy.api#xmlName": "expirationTime" + } + }, + "ImportInstance": { + "target": "com.amazonaws.ec2#ImportInstanceTaskDetails", + "traits": { + "aws.protocols#ec2QueryName": "ImportInstance", + "smithy.api#documentation": "

If the task is for importing an instance, this contains information about the import instance task.

", + "smithy.api#xmlName": "importInstance" + } + }, + "ImportVolume": { + "target": "com.amazonaws.ec2#ImportVolumeTaskDetails", + "traits": { + "aws.protocols#ec2QueryName": "ImportVolume", + "smithy.api#documentation": "

If the task is for importing a volume, this contains information about the import volume task.

", + "smithy.api#xmlName": "importVolume" + } + }, + "State": { + "target": "com.amazonaws.ec2#ConversionTaskState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the conversion task.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message related to the conversion task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a conversion task.

" + } + }, + "com.amazonaws.ec2#ConversionTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ConversionTaskState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "cancelling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + } + } + }, + "com.amazonaws.ec2#CoolOffPeriodRequestHours": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 72 + } + } + }, + "com.amazonaws.ec2#CoolOffPeriodResponseHours": { + "type": "integer" + }, + "com.amazonaws.ec2#CopyFpgaImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CopyFpgaImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CopyFpgaImageResult" + }, + "traits": { + "smithy.api#documentation": "

Copies the specified Amazon FPGA Image (AFI) to the current Region.

" + } + }, + "com.amazonaws.ec2#CopyFpgaImageRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SourceFpgaImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the source AFI.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description for the new AFI.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name for the new AFI. The default is the name of the source AFI.

" + } + }, + "SourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Region that contains the source AFI.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \n \tFor more information, see Ensuring idempotency.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CopyFpgaImageResult": { + "type": "structure", + "members": { + "FpgaImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageId", + "smithy.api#documentation": "

The ID of the new AFI.

", + "smithy.api#xmlName": "fpgaImageId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CopyImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CopyImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CopyImageResult" + }, + "traits": { + "smithy.api#documentation": "

Initiates an AMI copy operation. You must specify the source AMI ID and both the source\n and destination locations. The copy operation must be initiated in the destination\n Region.

\n

\n CopyImage supports the following source to destination copies:\n

\n
    \n
  • \n

    Region to Region

    \n
  • \n
  • \n

    Region to Outpost

    \n
  • \n
  • \n

    Parent Region to Local Zone

    \n
  • \n
  • \n

    Local Zone to parent Region

    \n
  • \n
  • \n

    Between Local Zones with the same parent Region (only supported for certain Local\n Zones)

    \n
  • \n
\n

\n CopyImage does not support the following source to destination copies:\n

\n
    \n
  • \n

    Local Zone to non-parent Regions

    \n
  • \n
  • \n

    Between Local Zones with different parent Regions

    \n
  • \n
  • \n

    Local Zone to Outpost

    \n
  • \n
  • \n

    Outpost to Local Zone

    \n
  • \n
  • \n

    Outpost to Region

    \n
  • \n
  • \n

    Between Outposts

    \n
  • \n
  • \n

    Within same Outpost

    \n
  • \n
  • \n

    Cross-partition copies (use CreateStoreImageTask instead)

    \n
  • \n
\n

\n Destination specification\n

\n
    \n
  • \n

    Region to Region: The destination Region is the Region in which you initiate the copy\n operation.

    \n
  • \n
  • \n

    Region to Outpost: Specify the destination using the\n DestinationOutpostArn parameter (the ARN of the Outpost)

    \n
  • \n
  • \n

    Region to Local Zone, and Local Zone to Local Zone copies: Specify the destination\n using the DestinationAvailabilityZone parameter (the name of the destination\n Local Zone) or DestinationAvailabilityZoneId parameter (the ID of the\n destination Local Zone).

    \n
  • \n
\n

\n Snapshot encryption\n

\n
    \n
  • \n

    Region to Outpost: Backing snapshots copied to an Outpost are encrypted by default\n using the default encryption key for the Region or the key that you specify. Outposts do\n not support unencrypted snapshots.

    \n
  • \n
  • \n

    Region to Local Zone, and Local Zone to Local Zone: Not all Local Zones require\n encrypted snapshots. In Local Zones that require encrypted snapshots, backing snapshots\n are automatically encrypted during copy. In Local Zones where encryption is not required,\n snapshots retain their original encryption state (encrypted or unencrypted) by\n default.

    \n
  • \n
\n

For more information, including the required permissions for copying an AMI, see Copy an Amazon EC2 AMI in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To copy an AMI to another region", + "documentation": "This example copies the specified AMI from the us-east-1 region to the current region.", + "input": { + "Description": "", + "Name": "My server", + "SourceImageId": "ami-5731123e", + "SourceRegion": "us-east-1" + }, + "output": { + "ImageId": "ami-438bea42" + } + } + ] + } + }, + "com.amazonaws.ec2#CopyImageClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.ec2#CopyImageRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#CopyImageClientToken", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For\n more information, see Ensuring idempotency in\n Amazon EC2 API requests in the Amazon EC2 API\n Reference.

", + "smithy.api#idempotencyToken": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#ImageDescriptionRequest", + "traits": { + "smithy.api#documentation": "

A description for the new AMI.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Specifies whether to encrypt the snapshots of the copied image.

\n

You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted\n copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a\n non-default Key Management Service (KMS) KMS key using KmsKeyId. For more information, see Use encryption with\n EBS-backed AMIs in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "encrypted" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The identifier of the symmetric Key Management Service (KMS) KMS key to use when creating encrypted volumes.\n If this parameter is not specified, your Amazon Web Services managed KMS key for Amazon EBS is used. If you\n specify a KMS key, you must also set the encrypted state to true.

\n

You can specify a KMS key using any of the following:

\n
    \n
  • \n

    Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Key alias. For example, alias/ExampleAlias.

    \n
  • \n
  • \n

    Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an identifier\n that is not valid, the action can appear to complete, but eventually fails.

\n

The specified KMS key must exist in the destination Region.

\n

Amazon EBS does not support asymmetric KMS keys.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#ImageNameRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the new AMI.

", + "smithy.api#required": {} + } + }, + "SourceImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI to copy.

", + "smithy.api#required": {} + } + }, + "SourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Region that contains the AMI to copy.

", + "smithy.api#required": {} + } + }, + "DestinationOutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost for the new AMI.

\n

Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The\n AMI must be in the Region of the destination Outpost. You can't copy an AMI from an Outpost to\n a Region, from one Outpost to another, or within the same Outpost.

\n

For more information, see Copy AMIs from an Amazon Web Services Region\n to an Outpost in the Amazon EBS User Guide.

\n

Only one of DestinationAvailabilityZone,\n DestinationAvailabilityZoneId, or DestinationOutpostArn can be\n specified.

" + } + }, + "CopyImageTags": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy your user-defined AMI tags to the new AMI.

\n

The following tags are not be copied:

\n
    \n
  • \n

    System tags (prefixed with aws:)

    \n
  • \n
  • \n

    For public and shared AMIs, user-defined tags that are attached by other Amazon Web Services\n accounts, except tags with the ec2:SharedTag/ prefix. For more information\n about tag sharing, see Sharing\n tags in the Amazon EC2 User Guide.

    \n
  • \n
\n

Default: Your user-defined AMI tags are not copied.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new AMI and new snapshots. You can tag the AMI, the snapshots, or\n both.

\n
    \n
  • \n

    To tag the new AMI, the value for ResourceType must be\n image.

    \n
  • \n
  • \n

    To tag the new snapshots, the value for ResourceType must be\n snapshot. The same tag is applied to all the new snapshots.

    \n
  • \n
\n

If you specify other values for ResourceType, the request fails.

\n

To tag an AMI or snapshot after it has been created, see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "SnapshotCopyCompletionDurationMinutes": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

Specify a completion duration, in 15 minute increments, to initiate a time-based AMI copy.\n The specified completion duration applies to each of the snapshots associated with the AMI.\n Each snapshot associated with the AMI will be completed within the specified completion\n duration, with copy throughput automatically adjusted for each snapshot based on its size to\n meet the timing target.

\n

If you do not specify a value, the AMI copy operation is completed on a best-effort \n basis.

\n \n

This parameter is not supported when copying an AMI to or from a Local Zone, or to an\n Outpost.

\n
\n

For more information, see Time-based copies for Amazon EBS snapshots and\n EBS-backed AMIs.

" + } + }, + "DestinationAvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Local Zone for the new AMI (for example, cn-north-1-pkx-1a).

\n

Only one of DestinationAvailabilityZone,\n DestinationAvailabilityZoneId, or DestinationOutpostArn can be\n specified.

" + } + }, + "DestinationAvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Local Zone for the new AMI (for example, cnn1-pkx1-az1).

\n

Only one of DestinationAvailabilityZone,\n DestinationAvailabilityZoneId, or DestinationOutpostArn can be\n specified.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CopyImage.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CopyImageResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the new AMI.

", + "smithy.api#xmlName": "imageId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CopyImage.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CopySnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CopySnapshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CopySnapshotResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an exact copy of an Amazon EBS snapshot.

\n

The location of the source snapshot determines whether you can copy it or not, \n and the allowed destinations for the snapshot copy.

\n
    \n
  • \n

    If the source snapshot is in a Region, you can copy it within that Region, \n to another Region, to an Outpost associated with that Region, or to a Local \n Zone in that Region.

    \n
  • \n
  • \n

    If the source snapshot is in a Local Zone, you can copy it within that Local Zone, \n to another Local Zone in the same zone group, or to the parent Region of the Local \n Zone.

    \n
  • \n
  • \n

    If the source snapshot is on an Outpost, you can't copy it.

    \n
  • \n
\n

When copying snapshots to a Region, the encryption outcome for the snapshot copy depends on the \n Amazon EBS encryption by default setting for the destination Region, the encryption status of the source \n snapshot, and the encryption parameters you specify in the request. For more information, see \n Encryption and snapshot copying.

\n

Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots are not supported \n on Outposts. For more information, \n Amazon EBS local snapshots on Outposts.

\n \n

Snapshots copies have an arbitrary source volume ID. Do not use this volume ID for \n any purpose.

\n
\n

For more information, see Copy an Amazon EBS snapshot in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To copy a snapshot", + "documentation": "This example copies a snapshot with the snapshot ID of ``snap-066877671789bd71b`` from the ``us-west-2`` region to the ``us-east-1`` region and adds a short description to identify the snapshot.", + "input": { + "SourceRegion": "us-west-2", + "SourceSnapshotId": "snap-066877671789bd71b", + "Description": "This is my copied snapshot.", + "DestinationRegion": "us-east-1" + }, + "output": { + "SnapshotId": "snap-066877671789bd71b" + } + } + ] + } + }, + "com.amazonaws.ec2#CopySnapshotRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the EBS snapshot.

" + } + }, + "DestinationOutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot.

\n \n

Only supported when copying a snapshot to an Outpost.

\n
\n

For more information, see \n \t\tCopy snapshots from an Amazon Web Services Region to an Outpost in the \n Amazon EBS User Guide.

" + } + }, + "DestinationRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationRegion", + "smithy.api#documentation": "

The destination Region to use in the PresignedUrl parameter of a snapshot\n copy operation. This parameter is only valid for specifying the destination Region in a\n PresignedUrl parameter, where it is required.

\n

The snapshot copy is sent to the regional endpoint that you sent the HTTP\n \trequest to (for example, ec2.us-east-1.amazonaws.com). With the CLI, this is\n specified using the --region parameter or the default Region in your Amazon Web Services\n configuration file.

", + "smithy.api#xmlName": "destinationRegion" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, \n enable encryption using this parameter. Otherwise, omit this parameter. Copies of encrypted \n snapshots are encrypted, even if you omit this parameter and encryption by default is not \n enabled. You cannot set this parameter to false. For more information, see Amazon EBS encryption in the \n Amazon EBS User Guide.

", + "smithy.api#xmlName": "encrypted" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The identifier of the KMS key to use for Amazon EBS encryption.\n If this parameter is not specified, your KMS key for Amazon EBS is used. If KmsKeyId is\n specified, the encrypted state must be true.

\n

You can specify the KMS key using any of the following:

\n
    \n
  • \n

    Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Key alias. For example, alias/ExampleAlias.

    \n
  • \n
  • \n

    Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, \n the action can appear to complete, but eventually fails.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "PresignedUrl": { + "target": "com.amazonaws.ec2#CopySnapshotRequestPSU", + "traits": { + "aws.protocols#ec2QueryName": "PresignedUrl", + "smithy.api#documentation": "

When you copy an encrypted source snapshot using the Amazon EC2 Query API, you must supply a\n pre-signed URL. This parameter is optional for unencrypted snapshots. For more information,\n see Query\n requests.

\n

The PresignedUrl should use the snapshot source endpoint, the\n CopySnapshot action, and include the SourceRegion,\n SourceSnapshotId, and DestinationRegion parameters. The\n PresignedUrl must be signed using Amazon Web Services Signature Version 4. Because EBS\n snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic\n that is described in \n Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) in the Amazon S3 API Reference. An\n invalid or improperly signed PresignedUrl will cause the copy operation to fail\n asynchronously, and the snapshot will move to an error state.

", + "smithy.api#xmlName": "presignedUrl" + } + }, + "SourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Region that contains the snapshot to be copied.

", + "smithy.api#required": {} + } + }, + "SourceSnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EBS snapshot to copy.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new snapshot.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "CompletionDurationMinutes": { + "target": "com.amazonaws.ec2#SnapshotCompletionDurationMinutesRequest", + "traits": { + "smithy.api#documentation": "\n

Not supported when copying snapshots to or from Local Zones or Outposts.

\n
\n

Specify a completion duration, in 15 minute increments, to initiate a time-based snapshot \n copy. Time-based snapshot copy operations complete within the specified duration. For more \n information, see \n Time-based copies.

\n

If you do not specify a value, the snapshot copy operation is completed on a \n best-effort basis.

" + } + }, + "DestinationAvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Local Zone, for example, cn-north-1-pkx-1a to which to copy the \n snapshot.

\n \n

Only supported when copying a snapshot to a Local Zone.

\n
" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CopySnapshotRequestPSU": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#CopySnapshotResult": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags applied to the new snapshot.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the new snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CopyTagsFromSource": { + "type": "enum", + "members": { + "volume": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volume" + } + } + } + }, + "com.amazonaws.ec2#CopyVolumes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CopyVolumesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CopyVolumesResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a crash-consistent, point-in-time copy of an existing Amazon EBS volume within the same \n Availability Zone. The volume copy can be attached to an Amazon EC2 instance once it reaches the \n available state. For more information, see Copy an Amazon EBS volume.

" + } + }, + "com.amazonaws.ec2#CopyVolumesRequest": { + "type": "structure", + "members": { + "SourceVolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the source EBS volume to copy.

", + "smithy.api#required": {} + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) to provision for the volume copy. \n Required for io1 and io2 volumes. Optional for gp3 \n volumes. Omit for all other volume types. Full provisioned IOPS performance can be \n achieved only once the volume copy is fully initialized.

\n

Valid ranges:

\n
    \n
  • \n

    gp3: 3,000 (default) - 80,000 IOPS

    \n
  • \n
  • \n

    io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    io2: 100 - 256,000 IOPS

    \n
  • \n
\n \n

\n \nInstances built on the Nitro System can support up to 256,000 IOPS. Other instances can support up to 32,000 \nIOPS.

\n
" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The size of the volume copy, in GiBs. The size must be equal to or greater than the \n size of the source volume. If not specified, the size defaults to the size of the source \n volume.

\n

Maximum supported sizes:

\n
    \n
  • \n

    gp2: 16,384 GiB

    \n
  • \n
  • \n

    gp3: 65,536 GiB

    \n
  • \n
  • \n

    io1: 16,384 GiB

    \n
  • \n
  • \n

    io2: 65,536 GiB

    \n
  • \n
  • \n

    st1 and sc1: 16,384 GiB

    \n
  • \n
  • \n

    standard: 1024 GiB

    \n
  • \n
" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "smithy.api#documentation": "

The volume type for the volume copy. If not specified, the volume type defaults to \n gp2.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the volume copy during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "MultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable Amazon EBS Multi-Attach for the volume copy. If you enable \n Multi-Attach, you can attach the volume to up to 16 Nitro instances in the same \n Availability Zone simultaneously. Supported with io1 and io2 volumes only. For more \n information, see \n Amazon EBS Multi-Attach.

" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The throughput to provision for the volume copy, in MiB/s. Supported for gp3 \n volumes only. Omit for all other volume types. Full provisioned throughput performance can be \n achieved only once the volume copy is fully initialized.

\n

Valid Range: 125 - 2000 MiB/s

\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the \n request. For more information, see \n Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to encrypt the volume copy. If the source volume is encrypted, the \n service always encrypts the copy regardless of this value. Set to true to \n encrypt a copy of an unencrypted source volume during the copy operation. If you set \n Encrypted to true but do not specify KmsKeyId, the \n service uses the default KMS key for EBS encryption in your account.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key to use for encryption of the volume copy. Specify a \n symmetric encryption KMS key. You can specify a KMS key using the key ID, key ARN, alias \n name, or alias ARN. If you set Encrypted to true but do not \n specify this parameter, the service uses the default KMS key for EBS encryption in your \n account. For cross-account volume copies, this must be a KMS key in the calling \n account.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CopyVolumesResult": { + "type": "structure", + "members": { + "Volumes": { + "target": "com.amazonaws.ec2#VolumeList", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSet", + "smithy.api#documentation": "

Information about the volume copy.

", + "smithy.api#xmlName": "volumeSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CoreCount": { + "type": "integer" + }, + "com.amazonaws.ec2#CoreCountList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CoreCount", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CoreNetworkArn": { + "type": "string" + }, + "com.amazonaws.ec2#CpuManufacturer": { + "type": "enum", + "members": { + "INTEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "intel" + } + }, + "AMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amd" + } + }, + "AMAZON_WEB_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-web-services" + } + }, + "APPLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "apple" + } + } + } + }, + "com.amazonaws.ec2#CpuManufacturerName": { + "type": "string" + }, + "com.amazonaws.ec2#CpuManufacturerSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CpuManufacturer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CpuOptions": { + "type": "structure", + "members": { + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CoreCount", + "smithy.api#documentation": "

The number of CPU cores for the instance.

", + "smithy.api#xmlName": "coreCount" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ThreadsPerCore", + "smithy.api#documentation": "

The number of threads per CPU core.

", + "smithy.api#xmlName": "threadsPerCore" + } + }, + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnpSpecification", + "traits": { + "aws.protocols#ec2QueryName": "AmdSevSnp", + "smithy.api#documentation": "

Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see \n AMD SEV-SNP.

", + "smithy.api#xmlName": "amdSevSnp" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "aws.protocols#ec2QueryName": "NestedVirtualization", + "smithy.api#documentation": "

Indicates whether the instance is enabled for nested virtualization.

", + "smithy.api#xmlName": "nestedVirtualization" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU options for the instance.

" + } + }, + "com.amazonaws.ec2#CpuOptionsRequest": { + "type": "structure", + "members": { + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of CPU cores for the instance.

" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of threads per CPU core. To disable multithreading for the instance,\n specify a value of 1. Otherwise, specify the default value of\n 2.

" + } + }, + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnpSpecification", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported \n with M6a, R6a, and C6a instance types only. For more information, see \n AMD SEV-SNP.

" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable the instance for nested virtualization.\n Nested virtualization is supported only on 8th generation Intel-based instance types (c8i, m8i, r8i, and their flex variants).\n When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU options for the instance. Both the core count and threads per core must be\n specified in the request.

" + } + }, + "com.amazonaws.ec2#CpuPerformanceFactor": { + "type": "structure", + "members": { + "References": { + "target": "com.amazonaws.ec2#PerformanceFactorReferenceSet", + "traits": { + "aws.protocols#ec2QueryName": "ReferenceSet", + "smithy.api#documentation": "

Specify an instance family to use as the baseline reference for CPU performance. All\n instance types that match your specified attributes will be compared against the CPU\n performance of the referenced instance family, regardless of CPU manufacturer or\n architecture differences.

\n \n

Currently, only one instance family can be specified in the list.

\n
", + "smithy.api#xmlName": "referenceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU performance to consider, using an instance family as the baseline reference.

" + } + }, + "com.amazonaws.ec2#CpuPerformanceFactorRequest": { + "type": "structure", + "members": { + "References": { + "target": "com.amazonaws.ec2#PerformanceFactorReferenceSetRequest", + "traits": { + "smithy.api#documentation": "

Specify an instance family to use as the baseline reference for CPU performance. All\n instance types that match your specified attributes will be compared against the CPU\n performance of the referenced instance family, regardless of CPU manufacturer or\n architecture differences.

\n \n

Currently, only one instance family can be specified in the list.

\n
", + "smithy.api#xmlName": "Reference" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU performance to consider, using an instance family as the baseline reference.

" + } + }, + "com.amazonaws.ec2#CreateApplicationStatusCheck": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateApplicationStatusCheckRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateApplicationStatusCheckResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an application status check for monitoring the health of applications running on your instances. You can configure the protocol, port, path, and thresholds for the health check. The following rules apply:

\n
    \n
  • \n

    You can create a maximum of 50 application status checks for each account.

    \n
  • \n
  • \n

    You must associate the check with instances or tags using AssociateApplicationStatusCheck before health checks start.

    \n
  • \n
  • \n

    You must set the Timeout value to less than the Interval value.

    \n
  • \n
  • \n

    You must start the Path with a forward slash (/). Default: /.

    \n
  • \n
  • \n

    You can specify Aggregation as included or excluded. If you do not specify a value, it defaults to included, which means the check contributes to the instance-level application status.

    \n
  • \n
  • \n

    You can use the following default values: Interval is 60 seconds, Timeout is 6 seconds, FailureThreshold is 2, SuccessThreshold is 2, StatusCodeMatcher is 200, InitializationGracePeriodSeconds is 300 seconds.

    \n
  • \n
  • \n

    You can tag the application status check during creation. For more information, see Tag your Amazon EC2 resources.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To create an application status check", + "documentation": "This example creates an application status check that monitors HTTP health on port 80.", + "input": { + "Protocol": "http", + "Port": 80, + "Path": "/health", + "Aggregation": "included" + }, + "output": { + "ApplicationStatusCheck": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Protocol": "http", + "Port": 80, + "Path": "/health", + "Aggregation": "included", + "Interval": 60, + "Timeout": 6, + "FailureThreshold": 2, + "SuccessThreshold": 2 + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateApplicationStatusCheckRequest": { + "type": "structure", + "members": { + "HealthCheckPaths": { + "target": "com.amazonaws.ec2#HealthCheckPathRequestList", + "traits": { + "smithy.api#documentation": "

The health check paths to use for the application status check. Health check paths define the network path from a source subnet to one or more destination subnets for cross-Availability Zone or Availability Zone to Local Zone health checking. If omitted, health checks are performed in the same subnet as the instance.

", + "smithy.api#xmlName": "HealthCheckPath" + } + }, + "Aggregation": { + "target": "com.amazonaws.ec2#AggregationStatusEnum", + "traits": { + "smithy.api#documentation": "

The aggregation setting for the application status check. When set to included, the result of this check contributes to the instance-level application status reported by DescribeApplicationStatus. When set to excluded, the check runs independently and does not affect the instance-level status. Valid values: included | excluded.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#NetworkProtocolEnum", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The protocol to use for the health check. Valid values: http | https.

", + "smithy.api#required": {} + } + }, + "Port": { + "target": "com.amazonaws.ec2#PortNumber", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The port to use for the health check. Valid values: 1 to 65535.

", + "smithy.api#required": {} + } + }, + "Path": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The URL path to use for the health check HTTP request (for example, /health or /status).

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network device to use for the health check. The value must be greater than or equal to 0.

" + } + }, + "IpVersion": { + "target": "com.amazonaws.ec2#IpVersionEnum", + "traits": { + "smithy.api#documentation": "

The IP version to use for the health check. Valid values: ipv4 and ipv6.

" + } + }, + "IpScope": { + "target": "com.amazonaws.ec2#IpScopeEnum", + "traits": { + "smithy.api#documentation": "

The IP scope to use for the health check. Valid value: private.

" + } + }, + "Interval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between health checks. Valid value: 60.

" + } + }, + "Timeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, to wait for a health check response before considering it failed. Valid values: 1 to 30. The value must be less than Interval.

" + } + }, + "FailureThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of consecutive failed health checks before the application status is considered impaired. The value must be greater than 0.

" + } + }, + "SuccessThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of consecutive successful health checks before the application status is considered healthy. The value must be greater than 0.

" + } + }, + "StatusCodeMatcher": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The HTTP status codes that indicate a successful health check response. Specify a comma-separated list of individual status codes or ranges, for example, 200,202,300-399. For a range, the first value must be less than the second value. Maximum length: 64 characters. Default: 200.

" + } + }, + "InitializationGracePeriodSeconds": { + "target": "com.amazonaws.ec2#InitializationGracePeriodSeconds", + "traits": { + "smithy.api#documentation": "

The number of seconds to wait before starting health checks after an instance is launched. Valid values: 1 to 600.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the application status check.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateApplicationStatusCheckResult": { + "type": "structure", + "members": { + "ApplicationStatusCheck": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckResponseObject", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheck", + "smithy.api#documentation": "

Information about the application status check.

", + "smithy.api#xmlName": "applicationStatusCheck" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityManagerDataExport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityManagerDataExportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityManagerDataExportResult" + }, + "traits": { + "smithy.api#documentation": "

\nCreates a new data export configuration for EC2 Capacity Manager. This allows you to automatically export capacity usage data to an S3 bucket on a scheduled basis. \nThe exported data includes metrics for On-Demand, Spot, and Capacity Reservations usage across your organization.\n

" + } + }, + "com.amazonaws.ec2#CreateCapacityManagerDataExportRequest": { + "type": "structure", + "members": { + "S3BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe name of the S3 bucket where the capacity data export files will be delivered. The bucket must exist and you must have write permissions to it.\n

", + "smithy.api#required": {} + } + }, + "S3BucketPrefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nThe S3 key prefix for the exported data files. This allows you to organize exports in a specific folder structure within your bucket. If not specified, files are placed at the bucket root.\n

" + } + }, + "Schedule": { + "target": "com.amazonaws.ec2#Schedule", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe frequency at which data exports are generated. \n

", + "smithy.api#required": {} + } + }, + "OutputFormat": { + "target": "com.amazonaws.ec2#OutputFormat", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe file format for the exported data. Parquet format is recommended for large datasets and better compression.\n

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nUnique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.\n

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\nThe tags to apply to the data export configuration. You can tag the export for organization and cost tracking purposes.\n

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityManagerDataExportResult": { + "type": "structure", + "members": { + "CapacityManagerDataExportId": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerDataExportId", + "smithy.api#documentation": "

\nThe unique identifier for the created data export configuration. Use this ID to reference the export in other API calls.\n

", + "smithy.api#xmlName": "capacityManagerDataExportId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a new Capacity Reservation with the specified attributes. Capacity\n\t\t\tReservations enable you to reserve capacity for your Amazon EC2 instances in a specific\n\t\t\tAvailability Zone for any duration.

\n

You can create a Capacity Reservation at any time, and you can choose when it starts.\n\t\t\tYou can create a Capacity Reservation for immediate use or you can request a Capacity\n\t\t\tReservation for a future date.

\n

For more information, see Reserve compute\n\t\t\t\tcapacity with On-Demand Capacity Reservations in the\n\t\t\t\tAmazon EC2 User Guide.

\n

Your request to create a Capacity Reservation could fail if:

\n
    \n
  • \n

    Amazon EC2 does not have sufficient capacity. In this case, try again\n\t\t\t\t\tat a later time, try in a different Availability Zone, or request a smaller\n\t\t\t\t\tCapacity Reservation. If your workload is flexible across instance types and\n\t\t\t\t\tsizes, try with different instance attributes.

    \n
  • \n
  • \n

    The requested quantity exceeds your On-Demand Instance quota. In this case,\n\t\t\t\t\tincrease your On-Demand Instance quota for the requested instance type and try\n\t\t\t\t\tagain. For more information, see \n\t\t\t\t\t\tAmazon EC2 Service Quotas in the\n\t\t\t\t\t\tAmazon EC2 User Guide.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationBySplitting": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationBySplittingRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationBySplittingResult" + }, + "traits": { + "smithy.api#documentation": "

Create a new Capacity Reservation by splitting the capacity of the source Capacity\n\t\t\tReservation. The new Capacity Reservation will have the same attributes as the source\n\t\t\tCapacity Reservation except for tags. The source Capacity Reservation must be\n\t\t\t\tactive and owned by your Amazon Web Services account.

" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationBySplittingRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "SourceCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation from which you want to split the capacity.

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances to split from the source Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new Capacity Reservation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationBySplittingResult": { + "type": "structure", + "members": { + "SourceCapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "SourceCapacityReservation", + "smithy.api#documentation": "

Information about the source Capacity Reservation.

", + "smithy.api#xmlName": "sourceCapacityReservation" + } + }, + "DestinationCapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCapacityReservation", + "smithy.api#documentation": "

Information about the destination Capacity Reservation.

", + "smithy.api#xmlName": "destinationCapacityReservation" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the new Capacity Reservation. The number of instances in\n\t\t\tthe source Capacity Reservation was reduced by this amount.

", + "smithy.api#xmlName": "instanceCount" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationCancellationQuote": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteResult" + }, + "traits": { + "smithy.api#documentation": "

Generates a cancellation quote for a future-dated Capacity Reservation that is\n\t\t\twithin its commitment duration. The quote includes the cancellation terms and a quote ID\n\t\t\tthat you can pass to the CancelCapacityReservation action. Cancellation\n\t\t\tquotes are valid for 24 hours.

" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the cancellation quote.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationCancellationQuoteResult": { + "type": "structure", + "members": { + "CapacityReservationCancellationQuote": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuote", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationCancellationQuote", + "smithy.api#documentation": "

Information about the Capacity Reservation cancellation quote.

", + "smithy.api#xmlName": "capacityReservationCancellationQuote" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuote": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteResult" + }, + "traits": { + "smithy.api#documentation": "

Generates a quote for changing the start date of a future-dated Capacity Reservation\n\t\t\tthat has not yet been delivered. The quote includes the new start date, the resulting\n\t\t\tcommitment end date, and a quote ID. Pass the quote ID to\n\t\t\tModifyCapacityReservation to apply the change.

\n

The cumulative pushout across all changes is limited to 30 days from the Capacity\n\t\t\tReservation's original start date. Quotes are valid for 24 hours, and always expire at\n\t\t\tleast one hour before the start date.

" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "NewStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The requested new start date for the Capacity Reservation, in the ISO8601 format in the\n\t\t\tUTC time zone (YYYY-MM-DDThh:mm:ss.sssZ). The new start date must be later\n\t\t\tthan the current start date and within the cumulative 30-day pushout limit.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the date change quote.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationDateChangeQuoteResult": { + "type": "structure", + "members": { + "CapacityReservationModificationQuote": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuote", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationModificationQuote", + "smithy.api#documentation": "

Information about the Capacity Reservation date change quote.

", + "smithy.api#xmlName": "capacityReservationModificationQuote" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Capacity Reservation Fleet. For more information, see Create a\n\t\t\t\tCapacity Reservation Fleet in the\n\t\t\tAmazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationFleetRequest": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the\n\t\t\tspecified instance types to use. Currently, only the prioritized allocation\n\t\t\tstrategy is supported. For more information, see Allocation\n\t\t\t\tstrategy in the Amazon EC2 User Guide.

\n

Valid values: prioritized\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "InstanceTypeSpecifications": { + "target": "com.amazonaws.ec2#ReservationFleetInstanceSpecificationList", + "traits": { + "smithy.api#documentation": "

Information about the instance types for which to reserve the capacity.

", + "smithy.api#xmlName": "InstanceTypeSpecification" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation Fleet. All Capacity Reservations in\n\t\t\tthe Fleet inherit this tenancy. The Capacity Reservation Fleet can have one of the\n\t\t\tfollowing tenancy settings:

\n
    \n
  • \n

    \n default - The Capacity Reservation Fleet is created on hardware\n\t\t\t\t\tthat is shared with other Amazon Web Services accounts.

    \n
  • \n
  • \n

    \n dedicated - The Capacity Reservations are created on single-tenant\n\t\t\t\t\thardware that is dedicated to a single Amazon Web Services account.

    \n
  • \n
" + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet.\n\t\t\tThis value, together with the instance type weights that you assign to each instance\n\t\t\ttype used by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", + "smithy.api#required": {} + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity\n\t\t\tReservation Fleet expires, its state changes to expired and all of the\n\t\t\tCapacity Reservations in the Fleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity\n\t\t\tReservation Fleet is guaranteed to expire between 13:30:55 and\n\t\t\t\t14:30:55 on 5/31/2019.

" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts.\n\t\t\tAll Capacity Reservations in the Fleet inherit this instance matching criteria.

\n

Currently, Capacity Reservation Fleets support open instance matching\n\t\t\tcriteria only. This means that instances that have matching attributes (instance type,\n\t\t\tplatform, and Availability Zone) run in the Capacity Reservations automatically.\n\t\t\tInstances do not need to explicitly target a Capacity Reservation Fleet to use its\n\t\t\treserved capacity.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Capacity Reservation Fleet. The tags are automatically\n\t\t\tassigned to the Capacity Reservations in the Fleet.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationFleetResult": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The status of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "state" + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalTargetCapacity", + "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "totalTargetCapacity" + } + }, + "TotalFulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "TotalFulfilledCapacity", + "smithy.api#documentation": "

The requested capacity units that have been successfully reserved.

", + "smithy.api#xmlName": "totalFulfilledCapacity" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMatchCriteria", + "smithy.api#documentation": "

The instance matching criteria for the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "instanceMatchCriteria" + } + }, + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The allocation strategy used by the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires.

", + "smithy.api#xmlName": "endDate" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

Indicates the tenancy of Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tenancy" + } + }, + "FleetCapacityReservations": { + "target": "com.amazonaws.ec2#FleetCapacityReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "FleetCapacityReservationSet", + "smithy.api#documentation": "

Information about the individual Capacity Reservations in the Capacity Reservation\n\t\t\tFleet.

", + "smithy.api#xmlName": "fleetCapacityReservationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance type for which to reserve capacity.

\n \n

You can request future-dated Capacity Reservations for instance types in the C, M,\n\t\t\t\tR, I, T, and G instance families only.

\n
\n

For more information, see Instance types in the\n\t\t\t\tAmazon EC2 User Guide.

", + "smithy.api#required": {} + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of operating system for which to reserve capacity.

", + "smithy.api#required": {} + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which to create the Capacity Reservation.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which to create the Capacity Reservation.

" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#CapacityReservationTenancy", + "traits": { + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one\n\t\t\tof the following tenancy settings:

\n
    \n
  • \n

    \n default - The Capacity Reservation is created on hardware that is\n\t\t\t\t\tshared with other Amazon Web Services accounts.

    \n
  • \n
  • \n

    \n dedicated - The Capacity Reservation is created on single-tenant\n\t\t\t\t\thardware that is dedicated to a single Amazon Web Services account.

    \n
  • \n
" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances for which to reserve capacity.

\n \n

You can request future-dated Capacity Reservations for an instance count with a\n\t\t\t\tminimum of 32 vCPUs. For example, if you request a future-dated Capacity\n\t\t\t\tReservation for m5.xlarge instances, you must request at least 8\n\t\t\t\tinstances (8 * m5.xlarge = 32 vCPUs).

\n
\n

Valid range: 1 - 1000

", + "smithy.api#required": {} + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the Capacity Reservation supports EBS-optimized instances. This\n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration\n\t\t\tstack to provide optimal I/O performance. This optimization isn't available with all\n\t\t\tinstance types. Additional usage charges apply when using an EBS- optimized\n\t\t\tinstance.

" + } + }, + "EphemeralStorage": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\n Deprecated.\n

" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity\n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Reservation's state changes to expired when\n\t\t\tit reaches its end date and time.

\n

You must provide an EndDate value if EndDateType is\n\t\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\t\tunlimited.

\n

If the EndDateType is limited, the Capacity Reservation is\n\t\t\tcancelled within an hour from the specified time. For example, if you specify 5/31/2019,\n\t\t\t13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on\n\t\t\t5/31/2019.

\n

If you are requesting a future-dated Capacity Reservation, you can't specify an end\n\t\t\tdate and time that is within the commitment duration.

" + } + }, + "EndDateType": { + "target": "com.amazonaws.ec2#EndDateType", + "traits": { + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n
    \n
  • \n

    \n unlimited - The Capacity Reservation remains active until you\n\t\t\t\t\texplicitly cancel it. Do not provide an EndDate if the\n\t\t\t\t\t\tEndDateType is unlimited.

    \n
  • \n
  • \n

    \n limited - The Capacity Reservation expires automatically at a\n\t\t\t\t\tspecified date and time. You must provide an EndDate value if the\n\t\t\t\t\t\tEndDateType value is limited.

    \n
  • \n
" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#InstanceMatchCriteria", + "traits": { + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation accepts. The\n\t\t\toptions include:

\n
    \n
  • \n

    \n open - The Capacity Reservation automatically matches all instances\n\t\t\t\t\tthat have matching attributes (instance type, platform, and Availability Zone).\n\t\t\t\t\tInstances that have matching attributes run in the Capacity Reservation\n\t\t\t\t\tautomatically without specifying any additional parameters.

    \n
  • \n
  • \n

    \n targeted - The Capacity Reservation only accepts instances that\n\t\t\t\t\thave matching attributes (instance type, platform, and Availability Zone), and\n\t\t\t\t\texplicitly target the Capacity Reservation. This ensures that only permitted\n\t\t\t\t\tinstances can use the reserved capacity.

    \n
  • \n
\n \n

If you are requesting a future-dated Capacity Reservation, you must specify\n\t\t\t\t\ttargeted.

\n
\n

Default: open\n

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Capacity Reservation during launch.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#OutpostArn", + "traits": { + "smithy.api#documentation": "\n

Not supported for future-dated Capacity Reservations.

\n
\n

The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity\n\t\t\tReservation.

" + } + }, + "PlacementGroupArn": { + "target": "com.amazonaws.ec2#PlacementGroupArn", + "traits": { + "smithy.api#documentation": "\n

Not supported for future-dated Capacity Reservations.

\n
\n

The Amazon Resource Name (ARN) of the cluster placement group in which to create the\n\t\t\tCapacity Reservation. For more information, see Capacity Reservations for cluster\n\t\t\t\tplacement groups in the Amazon EC2 User Guide.

" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity\n\t\t\t\tReservation for immediate use, omit this parameter.

\n
\n

The date and time at which the future-dated Capacity Reservation should become\n\t\t\tavailable for use, in the ISO8601 format in the UTC time zone\n\t\t\t\t(YYYY-MM-DDThh:mm:ss.sssZ).

\n

You can request a future-dated Capacity Reservation between 5 and 120 days in\n\t\t\tadvance.

" + } + }, + "CommitmentDuration": { + "target": "com.amazonaws.ec2#CapacityReservationCommitmentDuration", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity\n\t\t\t\tReservation for immediate use, omit this parameter.

\n
\n

Specify a commitment duration, in seconds, for the future-dated Capacity\n\t\t\tReservation.

\n

The commitment duration is a minimum duration for which you commit to having the\n\t\t\tfuture-dated Capacity Reservation in the active state in your account after\n\t\t\tit has been delivered.

\n

For more information, see Commitment\n\t\t\t\tduration.

" + } + }, + "DeliveryPreference": { + "target": "com.amazonaws.ec2#CapacityReservationDeliveryPreference", + "traits": { + "smithy.api#documentation": "\n

Required for future-dated Capacity Reservations only. To create a Capacity\n\t\t\t\tReservation for immediate use, omit this parameter.

\n
\n

Indicates that the requested capacity will be delivered in addition to any running\n\t\t\tinstances or reserved capacity that you have in your account at the requested date and\n\t\t\ttime.

\n

The only supported value is incremental.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCapacityReservationResult": { + "type": "structure", + "members": { + "CapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservation", + "smithy.api#documentation": "

Information about the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCarrierGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCarrierGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCarrierGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a carrier gateway. For more information about carrier gateways, see Carrier gateways in the Amazon Web Services Wavelength Developer Guide.

" + } + }, + "com.amazonaws.ec2#CreateCarrierGatewayRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC to associate with the carrier gateway.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to associate with the carrier gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCarrierGatewayResult": { + "type": "structure", + "members": { + "CarrierGateway": { + "target": "com.amazonaws.ec2#CarrierGateway", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGateway", + "smithy.api#documentation": "

Information about the carrier gateway.

", + "smithy.api#xmlName": "carrierGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateClientVpnEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateClientVpnEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateClientVpnEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Client VPN endpoint. A Client VPN endpoint is the resource you create and configure to \n\t\t\tenable and manage client VPN sessions. It is the destination endpoint at which all client VPN sessions \n\t\t\tare terminated.

" + } + }, + "com.amazonaws.ec2#CreateClientVpnEndpointRequest": { + "type": "structure", + "members": { + "ClientCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. Client CIDR range must have a size of at least /22 and must not be greater than /12.

" + } + }, + "ServerCertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the server certificate. For more information, see \n\t\t\tthe Certificate Manager User Guide.

", + "smithy.api#required": {} + } + }, + "AuthenticationOptions": { + "target": "com.amazonaws.ec2#ClientVpnAuthenticationRequestList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the authentication method to be used to authenticate clients.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Authentication" + } + }, + "ConnectionLogOptions": { + "target": "com.amazonaws.ec2#ConnectionLogOptions", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the client connection logging options.

\n

If you enable client connection logging, data about client connections is sent to a\n\t\t\tCloudwatch Logs log stream. The following information is logged:

\n
    \n
  • \n

    Client connection requests

    \n
  • \n
  • \n

    Client connection results (successful and unsuccessful)

    \n
  • \n
  • \n

    Reasons for unsuccessful client connection requests

    \n
  • \n
  • \n

    Client connection termination time

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "DnsServers": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can\n\t\t\thave up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.

" + } + }, + "TransportProtocol": { + "target": "com.amazonaws.ec2#TransportProtocol", + "traits": { + "smithy.api#documentation": "

The transport protocol to be used by the VPN session.

\n

Default value: udp\n

" + } + }, + "VpnPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The port number to assign to the Client VPN endpoint for TCP and UDP traffic.

\n

Valid Values: 443 | 1194\n

\n

Default Value: 443\n

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A brief description of the Client VPN endpoint.

" + } + }, + "SplitTunnel": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether split-tunnel is enabled on the Client VPN endpoint.

\n

By default, split-tunnel on a VPN endpoint is disabled.

\n

For information about split-tunnel VPN endpoints, see Split-tunnel Client VPN endpoint in the \n\t\t\tClient VPN Administrator Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \nFor more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Client VPN endpoint during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.

" + } + }, + "SelfServicePortal": { + "target": "com.amazonaws.ec2#SelfServicePortal", + "traits": { + "smithy.api#documentation": "

Specify whether to enable the self-service portal for the Client VPN endpoint.

\n

Default Value: enabled\n

" + } + }, + "ClientConnectOptions": { + "target": "com.amazonaws.ec2#ClientConnectOptions", + "traits": { + "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" + } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum VPN session duration time in hours.

\n

Valid values: 8 | 10 | 12 | 24\n

\n

Default value: 24\n

" + } + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerOptions", + "traits": { + "smithy.api#documentation": "

Options for enabling a customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.

" + } + }, + "ClientRouteEnforcementOptions": { + "target": "com.amazonaws.ec2#ClientRouteEnforcementOptions", + "traits": { + "smithy.api#documentation": "

Client route enforcement is a feature of the Client VPN service that helps enforce administrator defined routes on devices connected through the VPN. T\n\t\this feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel.

\n

Client route enforcement works by monitoring the route table of a connected device for routing policy changes to the VPN connection. If the feature detects any VPN routing policy modifications, it will automatically force an update to the route table, \n\t\t\treverting it back to the expected route configurations.

" + } + }, + "DisconnectOnSessionTimeout": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the client VPN session is disconnected after the maximum timeout specified in SessionTimeoutHours is reached. If true, users are prompted to reconnect client VPN. If false, client VPN attempts to reconnect automatically. \n The default value is true.

" + } + }, + "EndpointIpAddressType": { + "target": "com.amazonaws.ec2#EndpointIpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the Client VPN endpoint. Valid values are ipv4\n\t\t\t(default) for IPv4 addressing only, ipv6 for IPv6 addressing only, or dual-stack for both IPv4 and IPv6\n\t\t\taddressing. When set to dual-stack, clients can connect to the endpoint\n\t\t\tusing either IPv4 or IPv6 addresses..

" + } + }, + "TrafficIpAddressType": { + "target": "com.amazonaws.ec2#TrafficIpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for traffic within the Client VPN tunnel. Valid values are ipv4 (default) for IPv4 traffic only, ipv6 for IPv6 addressing only, or dual-stack for both IPv4 and IPv6 traffic. When set to dual-stack, clients can access both IPv4 and IPv6 resources through the VPN .

" + } + }, + "TransitGatewayConfiguration": { + "target": "com.amazonaws.ec2#TransitGatewayConfigurationInputStructure", + "traits": { + "smithy.api#documentation": "

The Transit Gateway configuration for the Client VPN endpoint. Use this parameter to associate the endpoint with a Transit Gateway instead of a VPC. You cannot specify both TransitGatewayConfiguration and VpcId/SecurityGroupIds.

" + } + }, + "DevicePostureOptions": { + "target": "com.amazonaws.ec2#DevicePostureOptions", + "traits": { + "smithy.api#documentation": "

The device posture options for the Client VPN endpoint. Use this parameter to specify the device trust providers that the endpoint uses to evaluate the security posture of connecting devices.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateClientVpnEndpointResult": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnEndpointStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the Client VPN endpoint.

", + "smithy.api#xmlName": "status" + } + }, + "DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The DNS name to be used by clients when establishing their VPN session.

", + "smithy.api#xmlName": "dnsName" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateClientVpnRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateClientVpnRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateClientVpnRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the \n\t\t\tavailable destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.

" + } + }, + "com.amazonaws.ec2#CreateClientVpnRouteRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint to which to add the route.

", + "smithy.api#required": {} + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the route destination. For example:

\n
    \n
  • \n

    To add a route for Internet access, enter 0.0.0.0/0\n

    \n
  • \n
  • \n

    To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range

    \n
  • \n
  • \n

    To add a route for an on-premises network, enter the Amazon Web Services Site-to-Site VPN connection's IPv4 CIDR range

    \n
  • \n
  • \n

    To add a route for the local network, enter the client CIDR range

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "TargetVpcSubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet through which you want to route traffic. The specified subnet must be\n\t\t\tan existing target network of the Client VPN endpoint.

\n

Alternatively, if you're adding a route for the local network, specify local.

\n

This parameter is required for VPC-based Client VPN endpoints. For Transit Gateway-based endpoints, this parameter is not required.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A brief description of the route.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \nFor more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateClientVpnRouteResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnRouteStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the route.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

\n Creates a range of customer-owned IP addresses.\n

" + } + }, + "com.amazonaws.ec2#CreateCoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n A customer-owned IP address range to create.\n

", + "smithy.api#required": {} + } + }, + "CoipPoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the address pool.\n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCoipCidrResult": { + "type": "structure", + "members": { + "CoipCidr": { + "target": "com.amazonaws.ec2#CoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "CoipCidr", + "smithy.api#documentation": "

\n Information about a range of customer-owned IP addresses.\n

", + "smithy.api#xmlName": "coipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCoipPool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCoipPoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCoipPoolResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a pool of customer-owned IP (CoIP) addresses.

" + } + }, + "com.amazonaws.ec2#CreateCoipPoolRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway route table.\n

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n The tags to assign to the CoIP address pool.\n

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCoipPoolResult": { + "type": "structure", + "members": { + "CoipPool": { + "target": "com.amazonaws.ec2#CoipPool", + "traits": { + "aws.protocols#ec2QueryName": "CoipPool", + "smithy.api#documentation": "

Information about the CoIP address pool.

", + "smithy.api#xmlName": "coipPool" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateCustomerGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCustomerGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCustomerGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Provides information to Amazon Web Services about your customer gateway device. The\n customer gateway device is the appliance at your end of the VPN connection. You\n must provide the IP address of the customer gateway device’s external\n interface. The IP address must be static and can be behind a device performing network\n address translation (NAT).

\n

For devices that use Border Gateway Protocol (BGP), you can also provide the device's\n BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.\n If you don't have an ASN already, you can use a private ASN. For more information, see \n Customer gateway \n options for your Site-to-Site VPN connection in the Amazon Web Services Site-to-Site VPN User Guide.

\n

To create more than one customer gateway with the same VPN type, IP address, and\n BGP ASN, specify a unique device name for each customer gateway. An identical request\n returns information about the existing customer gateway; it doesn't create a new customer\n gateway.

", + "smithy.api#examples": [ + { + "title": "To create a customer gateway", + "documentation": "This example creates a customer gateway with the specified IP address for its outside interface.", + "input": { + "Type": "ipsec.1", + "PublicIp": "12.1.2.3", + "BgpAsn": 65534 + }, + "output": { + "CustomerGateway": { + "CustomerGatewayId": "cgw-0e11f167", + "IpAddress": "12.1.2.3", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65534" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateCustomerGatewayRequest": { + "type": "structure", + "members": { + "BgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

For customer gateway devices that support BGP, specify the device's ASN. You must specify either BgpAsn or BgpAsnExtended when creating the customer gateway. If the ASN is larger than 2,147,483,647, you must use BgpAsnExtended.

\n

Default: 65000

\n

Valid values: 1 to 2,147,483,647\n

" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\n This member has been deprecated. The Internet-routable IP address for the customer gateway's outside interface. The\n address must be static.

" + } + }, + "CertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the customer gateway certificate.

" + } + }, + "Type": { + "target": "com.amazonaws.ec2#GatewayType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of VPN connection that this customer gateway supports\n (ipsec.1).

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the customer gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A name for the customer gateway device.

\n

Length Constraints: Up to 255 characters.

" + } + }, + "IpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP address for the customer gateway device's outside interface. The address must be\n static. If OutsideIpAddressType in your VPN connection options is set to\n PrivateIpv4, you can use an RFC6598 or RFC1918 private IPv4 address. If\n OutsideIpAddressType is set to Ipv6, you can use an IPv6 address.

" + } + }, + "BgpAsnExtended": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

For customer gateway devices that support BGP, specify the device's ASN. You must specify either BgpAsn or BgpAsnExtended when creating the customer gateway. If the ASN is larger than 2,147,483,647, you must use BgpAsnExtended.

\n

Valid values: 2,147,483,648 to 4,294,967,295\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateCustomerGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateCustomerGatewayResult": { + "type": "structure", + "members": { + "CustomerGateway": { + "target": "com.amazonaws.ec2#CustomerGateway", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGateway", + "smithy.api#documentation": "

Information about the customer gateway.

", + "smithy.api#xmlName": "customerGateway" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateCustomerGateway.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateDefaultSubnet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateDefaultSubnetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateDefaultSubnetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a default subnet with a size /20 IPv4 CIDR block in the\n specified Availability Zone in your default VPC. You can have only one default subnet\n per Availability Zone. For more information, see Create a default\n subnet in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateDefaultSubnetRequest": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which to create the default subnet.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Ipv6Native": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to create an IPv6 only subnet. If you already have a default subnet\n for this Availability Zone, you must delete it before you can create an IPv6 only subnet.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateDefaultSubnetResult": { + "type": "structure", + "members": { + "Subnet": { + "target": "com.amazonaws.ec2#Subnet", + "traits": { + "aws.protocols#ec2QueryName": "Subnet", + "smithy.api#documentation": "

Information about the subnet.

", + "smithy.api#xmlName": "subnet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateDefaultVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateDefaultVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateDefaultVpcResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet\n\t\t\tin each Availability Zone. For more information about the components of a default VPC,\n\t\t\tsee Default VPCs \n\t\t in the Amazon VPC User Guide. You cannot specify the components of the \n\t\t default VPC yourself.

\n

If you deleted your previous default VPC, you can create a default VPC. You cannot have\n\t\t\tmore than one default VPC per Region.

" + } + }, + "com.amazonaws.ec2#CreateDefaultVpcRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateDefaultVpcResult": { + "type": "structure", + "members": { + "Vpc": { + "target": "com.amazonaws.ec2#Vpc", + "traits": { + "aws.protocols#ec2QueryName": "Vpc", + "smithy.api#documentation": "

Information about the VPC.

", + "smithy.api#xmlName": "vpc" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Delegates ownership of the Amazon EBS root volume for an Apple silicon \n Mac instance to an administrative user.

" + } + }, + "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon EC2 Mac instance.

", + "smithy.api#required": {} + } + }, + "MacCredentials": { + "target": "com.amazonaws.ec2#SensitiveMacCredentials", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies the following credentials:

\n
    \n
  • \n

    \n Internal disk administrative user\n

    \n
      \n
    • \n

      \n Username - Only the default administrative user \n (aws-managed-user) is supported and it is used by default. You can't \n specify a different administrative user.

      \n
    • \n
    • \n

      \n Password - If you did not change the default \n password for aws-managed-user, specify the default password, which is \n blank. Otherwise, specify your password.

      \n
    • \n
    \n
  • \n
  • \n

    \n Amazon EBS root volume administrative user\n

    \n
      \n
    • \n

      \n Username - If you did not change the default \n administrative user, specify ec2-user. Otherwise, specify the username \n for your administrative user.

      \n
    • \n
    • \n

      \n Password - Specify the password for the \n administrative user.

      \n
    • \n
    \n
  • \n
\n

The credentials must be specified in the following JSON format:

\n

\n {\n \"internalDiskPassword\":\"internal-disk-admin_password\",\n \"rootVolumeUsername\":\"root-volume-admin_username\",\n \"rootVolumepassword\":\"root-volume-admin_password\"\n}\n

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the volume ownership delegation task.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateDelegateMacVolumeOwnershipTaskResult": { + "type": "structure", + "members": { + "MacModificationTask": { + "target": "com.amazonaws.ec2#MacModificationTask", + "traits": { + "aws.protocols#ec2QueryName": "MacModificationTask", + "smithy.api#documentation": "

Information about the volume ownership delegation task.

", + "smithy.api#xmlName": "macModificationTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateDhcpOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateDhcpOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateDhcpOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a custom set of DHCP options. After you create a DHCP option set, you associate\n\t it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly \n\t launched instances in the VPC use this set of DHCP options.

\n

The following are the individual DHCP options you can specify. For more information, see \n DHCP option sets \n in the Amazon VPC User Guide.

\n
    \n
  • \n

    \n domain-name - If you're using AmazonProvidedDNS in us-east-1, \n specify ec2.internal. If you're using AmazonProvidedDNS in any other Region, \n specify region.compute.internal. Otherwise, specify a custom domain name.\n This value is used to complete unqualified DNS hostnames.

    \n

    Some Linux operating systems accept multiple domain names separated by spaces.\n However, Windows and other Linux operating systems treat the value as a single\n domain, which results in unexpected behavior. If your DHCP option set is\n associated with a VPC that has instances running operating systems that treat\n the value as a single domain, specify only one domain name.

    \n
  • \n
  • \n

    \n domain-name-servers - The IP addresses of up to four DNS servers,\n or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, \n separate the IP addresses using commas. To have your instances receive custom DNS \n hostnames as specified in domain-name, you must specify a custom DNS\n server.

    \n
  • \n
  • \n

    \n ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP)\n servers (four IPv4 addresses and four IPv6 addresses).

    \n
  • \n
  • \n

    \n netbios-name-servers - The IP addresses of up to four NetBIOS name\n servers.

    \n
  • \n
  • \n

    \n netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that\n you specify 2. Broadcast and multicast are not supported. For more information about \n NetBIOS node types, see RFC 2132.

    \n
  • \n
  • \n

    \n ipv6-address-preferred-lease-time - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. \n Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent \n lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To create a DHCP options set", + "documentation": "This example creates a DHCP options set.", + "input": { + "DhcpConfigurations": [ + { + "Key": "domain-name-servers", + "Values": [ + "10.2.5.1", + "10.2.5.2" + ] + } + ] + }, + "output": { + "DhcpOptions": { + "DhcpConfigurations": [ + { + "Values": [ + { + "Value": "10.2.5.2" + }, + { + "Value": "10.2.5.1" + } + ], + "Key": "domain-name-servers" + } + ], + "DhcpOptionsId": "dopt-d9070ebb" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateDhcpOptionsRequest": { + "type": "structure", + "members": { + "DhcpConfigurations": { + "target": "com.amazonaws.ec2#NewDhcpConfigurationList", + "traits": { + "aws.protocols#ec2QueryName": "DhcpConfiguration", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A DHCP configuration option.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "dhcpConfiguration" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the DHCP option.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateDhcpOptionsResult": { + "type": "structure", + "members": { + "DhcpOptions": { + "target": "com.amazonaws.ec2#DhcpOptions", + "traits": { + "aws.protocols#ec2QueryName": "DhcpOptions", + "smithy.api#documentation": "

A set of DHCP options.

", + "smithy.api#xmlName": "dhcpOptions" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateEgressOnlyInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

[IPv6 only] Creates an egress-only internet gateway for your VPC. An egress-only\n\t\t\tinternet gateway is used to enable outbound communication over IPv6 from instances in\n\t\t\tyour VPC to the internet, and prevents hosts outside of your VPC from initiating an IPv6\n\t\t\tconnection with your instance.

" + } + }, + "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n\t\t\trequest. For more information, see Ensuring idempotency.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC for which to create the egress-only internet gateway.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the egress-only internet gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateEgressOnlyInternetGatewayResult": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n\t\t\trequest.

", + "smithy.api#xmlName": "clientToken" + } + }, + "EgressOnlyInternetGateway": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGateway", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGateway", + "smithy.api#documentation": "

Information about the egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an EC2 Fleet that contains the configuration information for On-Demand Instances and Spot Instances.\n Instances are launched immediately if there is available capacity.

\n

A single EC2 Fleet can include multiple launch specifications that vary by instance type,\n AMI, Availability Zone, or subnet.

\n

For more information, see EC2 Fleet in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateFleetError": { + "type": "structure", + "members": { + "LaunchTemplateAndOverrides": { + "target": "com.amazonaws.ec2#LaunchTemplateAndOverridesResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateAndOverrides", + "smithy.api#documentation": "

The launch templates and overrides that were used for launching the instances. The\n values that you specify in the Overrides replace the values in the launch template.

", + "smithy.api#xmlName": "launchTemplateAndOverrides" + } + }, + "Lifecycle": { + "target": "com.amazonaws.ec2#InstanceLifecycle", + "traits": { + "aws.protocols#ec2QueryName": "Lifecycle", + "smithy.api#documentation": "

Indicates if the instance that could not be launched was a Spot, On-Demand, Capacity Block for ML,\n or interruptible Capacity Reservation instance. If you are using ReservedCapacityOptions with\n on-demand-capacity-reservation in the ReservationTypes list, the\n value can also be on-demand-capacity-reservation.

", + "smithy.api#xmlName": "lifecycle" + } + }, + "ErrorCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ErrorCode", + "smithy.api#documentation": "

The error code that indicates why the instance could not be launched. For more\n information about error codes, see Error codes.

", + "smithy.api#xmlName": "errorCode" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ErrorMessage", + "smithy.api#documentation": "

The error message that describes why the instance could not be launched. For more\n information about error messages, see Error codes.

", + "smithy.api#xmlName": "errorMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instances that could not be launched by the fleet.

" + } + }, + "com.amazonaws.ec2#CreateFleetErrorsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CreateFleetError", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CreateFleetInstance": { + "type": "structure", + "members": { + "LaunchTemplateAndOverrides": { + "target": "com.amazonaws.ec2#LaunchTemplateAndOverridesResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateAndOverrides", + "smithy.api#documentation": "

The launch templates and overrides that were used for launching the instances. The\n values that you specify in the Overrides replace the values in the launch template.

", + "smithy.api#xmlName": "launchTemplateAndOverrides" + } + }, + "Lifecycle": { + "target": "com.amazonaws.ec2#InstanceLifecycle", + "traits": { + "aws.protocols#ec2QueryName": "Lifecycle", + "smithy.api#documentation": "

Indicates if the instance that was launched is a Spot, On-Demand, Capacity Block for ML,\n or interruptible Capacity Reservation instance.

", + "smithy.api#xmlName": "lifecycle" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdsSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceIds", + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#xmlName": "instanceIds" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The value is windows for Windows instances in an EC2 Fleet. Otherwise, the value is\n blank.

", + "smithy.api#xmlName": "platform" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the instance was launched. For example,\n use2-az1.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The name of the Availability Zone in which the instance was launched. For example,\n us-east-2a.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which the instance was launched.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "subnetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instances that were launched by the fleet.

" + } + }, + "com.amazonaws.ec2#CreateFleetInstancesSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CreateFleetInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CreateFleetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. If you do not specify a client token, a randomly generated token is used for\n the request to ensure idempotency.

\n

For more information, see Ensuring\n idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "SpotOptions": { + "target": "com.amazonaws.ec2#SpotOptionsRequest", + "traits": { + "smithy.api#documentation": "

Describes the configuration of Spot Instances in an EC2 Fleet.

" + } + }, + "OnDemandOptions": { + "target": "com.amazonaws.ec2#OnDemandOptionsRequest", + "traits": { + "smithy.api#documentation": "

Describes the configuration of On-Demand Instances in an EC2 Fleet.

" + } + }, + "ReservedCapacityOptions": { + "target": "com.amazonaws.ec2#ReservedCapacityOptionsRequest", + "traits": { + "smithy.api#documentation": "

Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType is set to reserved-capacity.

\n

Supported only for fleets of type instant.

" + } + }, + "ExcessCapacityTerminationPolicy": { + "target": "com.amazonaws.ec2#FleetExcessCapacityTerminationPolicy", + "traits": { + "smithy.api#documentation": "

Indicates whether running instances should be terminated if the total target capacity of\n the EC2 Fleet is decreased below the current size of the EC2 Fleet.

\n

Supported only for fleets of type maintain.

" + } + }, + "LaunchTemplateConfigs": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateConfigListRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration for the EC2 Fleet.

", + "smithy.api#required": {} + } + }, + "TargetCapacitySpecification": { + "target": "com.amazonaws.ec2#TargetCapacitySpecificationRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of units to request.

", + "smithy.api#required": {} + } + }, + "TerminateInstancesWithExpiration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether running instances should be terminated when the EC2 Fleet expires.

" + } + }, + "Type": { + "target": "com.amazonaws.ec2#FleetType", + "traits": { + "smithy.api#documentation": "

The fleet type. The default value is maintain.

\n
    \n
  • \n

    \n maintain - The EC2 Fleet places an asynchronous request for your desired\n capacity, and continues to maintain your desired Spot capacity by replenishing\n interrupted Spot Instances.

    \n
  • \n
  • \n

    \n request - The EC2 Fleet places an asynchronous one-time request for your\n desired capacity, but does submit Spot requests in alternative capacity pools if Spot\n capacity is unavailable, and does not maintain Spot capacity if Spot Instances are\n interrupted.

    \n
  • \n
  • \n

    \n instant - The EC2 Fleet places a synchronous one-time request for your\n desired capacity, and returns errors for any instances that could not be\n launched.

    \n
  • \n
\n

For more information, see EC2 Fleet\n request types in the Amazon EC2 User Guide.

" + } + }, + "ValidFrom": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The start date and time of the request, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n The default is to start fulfilling the request immediately.

" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The end date and time of the request, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.

" + } + }, + "ReplaceUnhealthyInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for\n fleets of type maintain. For more information, see EC2 Fleet\n health checks in the Amazon EC2 User Guide.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key-value pair for tagging the EC2 Fleet request on creation. For more information, see \n Tag your resources.

\n

If the fleet type is instant, specify a resource type of fleet \n to tag the fleet, instance to tag the instances at launch,\n volume to tag the volumes at launch, or network-interface to\n tag the network interfaces at launch.

\n

If the fleet type is maintain or request, specify a resource\n type of fleet to tag the fleet. You cannot specify a resource type of\n instance, volume, or network-interface. To tag instances at launch, specify the tags in a launch template.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateFleetResult": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetId" + } + }, + "Errors": { + "target": "com.amazonaws.ec2#CreateFleetErrorsSet", + "traits": { + "aws.protocols#ec2QueryName": "ErrorSet", + "smithy.api#documentation": "

Information about the instances that could not be launched by the fleet. Supported only for\n fleets of type instant.

", + "smithy.api#xmlName": "errorSet" + } + }, + "Instances": { + "target": "com.amazonaws.ec2#CreateFleetInstancesSet", + "traits": { + "aws.protocols#ec2QueryName": "FleetInstanceSet", + "smithy.api#documentation": "

Information about the instances that were launched by the fleet. Supported only for\n fleets of type instant.

", + "smithy.api#xmlName": "fleetInstanceSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateFlowLogs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateFlowLogsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateFlowLogsResult" + }, + "traits": { + "smithy.api#documentation": "

Creates one or more flow logs to capture information about IP traffic for a specific network interface,\n subnet, or VPC.

\n

Flow log data for a monitored network interface is recorded as flow log records, which are log events \n consisting of fields that describe the traffic flow. For more information, see \n Flow log records \n in the Amazon VPC User Guide.

\n

When publishing to CloudWatch Logs, flow log records are published to a log group, and each network \n interface has a unique log stream in the log group. When publishing to Amazon S3, flow log records for all \n of the monitored network interfaces are published to a single log file object that is stored in the specified \n bucket.

\n

For more information, see VPC Flow Logs \n in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateFlowLogsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

" + } + }, + "DeliverLogsPermissionArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination.

\n

This parameter is required if the destination type is cloud-watch-logs,\n or if the destination type is kinesis-data-firehose and the delivery stream\n and the resources to monitor are in different accounts.

" + } + }, + "DeliverCrossAccountRole": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.

" + } + }, + "LogGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.

\n

This parameter is valid only if the destination type is cloud-watch-logs.

" + } + }, + "ResourceIds": { + "target": "com.amazonaws.ec2#FlowLogResourceIds", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the resources to monitor. For example, if the resource type is\n VPC, specify the IDs of the VPCs.

\n

Constraints: Maximum of 25 for transit gateway resource types. Maximum of 300 for the\n other resource types.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ResourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#FlowLogsResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of resource to monitor.

", + "smithy.api#required": {} + } + }, + "TrafficType": { + "target": "com.amazonaws.ec2#TrafficType", + "traits": { + "smithy.api#documentation": "

The type of traffic to monitor (accepted traffic, rejected traffic, or all traffic).\n This parameter is not supported for transit gateway or Cloud WAN resource types. It is\n required for the other resource types.

" + } + }, + "LogDestinationType": { + "target": "com.amazonaws.ec2#LogDestinationType", + "traits": { + "smithy.api#documentation": "

The type of destination for the flow log data.

\n

Default: cloud-watch-logs\n

" + } + }, + "LogDestination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination for the flow log data. The meaning of this parameter depends on the destination type.

\n
    \n
  • \n

    If the destination type is cloud-watch-logs, specify the ARN of a CloudWatch Logs log group. For example:

    \n

    arn:aws:logs:region:account_id:log-group:my_group\n

    \n

    Alternatively, use the LogGroupName parameter.

    \n
  • \n
  • \n

    If the destination type is s3, specify the ARN of an S3 bucket. For example:

    \n

    arn:aws:s3:::my_bucket/my_subfolder/

    \n

    The subfolder is optional. Note that you can't use AWSLogs as a subfolder name.

    \n
  • \n
  • \n

    If the destination type is kinesis-data-firehose, specify the ARN of a Kinesis Data Firehose delivery stream. For example:

    \n

    arn:aws:firehose:region:account_id:deliverystream:my_stream\n

    \n
  • \n
" + } + }, + "LogFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The fields to include in the flow log record. List the fields in the order in which\n they should appear. If you omit this parameter, the flow log is created using the\n default format. If you specify this parameter, you must include at least one\n field. For more information about the available fields, see Flow log records \n in the Amazon VPC User Guide, Transit Gateway Flow Log\n records in the Amazon Web Services Transit Gateway Guide,\n or Cloud WAN Flow Log\n records in the Amazon Web Services Cloud WAN User Guide.

\n

Specify the fields using the ${field-id} format, separated by spaces.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the flow logs.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "MaxAggregationInterval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. \n The possible values are 60 seconds (1 minute) or 600 seconds (10 minutes).\n This parameter must be 60 seconds for transit gateway and Cloud WAN resource types.

\n

When a network interface is attached to a Nitro-based\n instance, the aggregation interval is always 60 seconds or less, regardless\n of the value that you specify.

\n

Default: 600

" + } + }, + "DestinationOptions": { + "target": "com.amazonaws.ec2#DestinationOptionsRequest", + "traits": { + "smithy.api#documentation": "

The destination options.

" + } + }, + "TagFieldSpecifications": { + "target": "com.amazonaws.ec2#TagFieldSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The tag configuration associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

", + "smithy.api#xmlName": "TagFieldSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateFlowLogsResult": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request.

", + "smithy.api#xmlName": "clientToken" + } + }, + "FlowLogIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "FlowLogIdSet", + "smithy.api#documentation": "

The IDs of the flow logs.

", + "smithy.api#xmlName": "flowLogIdSet" + } + }, + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the flow logs that could not be created successfully.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateFpgaImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateFpgaImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateFpgaImageResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).

\n

The create operation is asynchronous. To verify that the AFI was successfully \n created and is ready for use, check the output logs.

\n

An AFI contains the FPGA bitstream that is ready to download to an FPGA. \n You can securely deploy an AFI on multiple FPGA-accelerated instances.\n For more information, see the Amazon Web Services FPGA Hardware Development Kit.

" + } + }, + "com.amazonaws.ec2#CreateFpgaImageRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InputStorageLocation": { + "target": "com.amazonaws.ec2#StorageLocation", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball.

", + "smithy.api#required": {} + } + }, + "LogsStorageLocation": { + "target": "com.amazonaws.ec2#StorageLocation", + "traits": { + "smithy.api#documentation": "

The location in Amazon S3 for the output logs.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the AFI.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A name for the AFI.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \n \tFor more information, see Ensuring Idempotency.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the FPGA image during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateFpgaImageResult": { + "type": "structure", + "members": { + "FpgaImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageId", + "smithy.api#documentation": "

The FPGA image identifier (AFI ID).

", + "smithy.api#xmlName": "fpgaImageId" + } + }, + "FpgaImageGlobalId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageGlobalId", + "smithy.api#documentation": "

The global FPGA image identifier (AGFI ID).

", + "smithy.api#xmlName": "fpgaImageGlobalId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateImageResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or\n stopped.

\n

If you customized your instance with instance store volumes or Amazon EBS volumes in addition\n to the root device volume, the new AMI contains block device mapping information for those\n volumes. When you launch an instance from this new AMI, the instance automatically launches\n with those additional volumes.

\n

The location of the source instance determines where you can create the snapshots of the\n AMI:

\n
    \n
  • \n

    If the source instance is in a Region, you must create the snapshots in the same\n Region as the instance.

    \n
  • \n
  • \n

    If the source instance is in a Local Zone, you can create the snapshots in the same\n Local Zone or in its parent Region.

    \n
  • \n
  • \n

    If the source instance is on an Outpost that supports local snapshots, you can create\n the snapshots on the same Outpost or in the parent Region of that Outpost. In this case,\n you must use the SnapshotLocation parameter to specify where to create the\n snapshots.

    \n
  • \n
\n

For more information, see Create an Amazon EBS-backed AMI in\n the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "com.amazonaws.ec2#CreateImageRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the\n snapshots, or both.

\n
    \n
  • \n

    To tag the AMI, the value for ResourceType must be\n image.

    \n
  • \n
  • \n

    To tag the snapshots that are created of the root volume and of other Amazon EBS volumes\n that are attached to the instance, the value for ResourceType must be\n snapshot. The same tag is applied to all of the snapshots that are\n created.

    \n
  • \n
\n

If you specify other values for ResourceType, the request fails.

\n

To tag an AMI or snapshot after it has been created, see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "SnapshotLocation": { + "target": "com.amazonaws.ec2#SnapshotLocationEnum", + "traits": { + "smithy.api#documentation": "\n

Only supported for instances in Local Zones and for instances on Outposts that support\n local snapshots. If the source instance is not in one of these locations, omit this\n parameter.

\n
\n

The Amazon S3 location where the snapshots will be stored.

\n
    \n
  • \n

    To create local snapshots in the same Local Zone or on the same Outpost as the source\n instance, specify local.

    \n
  • \n
  • \n

    To create regional snapshots in the parent Region of the Local Zone or Outpost, specify\n regional.

    \n
  • \n
\n

If the source instance is in a Local Zone and you omit this parameter, regional snapshots\n are created in the parent Region of the Local Zone.

\n

If the source instance is on an Outpost that supports local snapshots, this parameter is\n required. If you omit it, the request fails with an\n InvalidParameterValue error.

\n

Default: regional (for instances in Local Zones only)

" + } + }, + "BootModeOverride": { + "target": "com.amazonaws.ec2#BootModeOverrideValues", + "traits": { + "smithy.api#documentation": "

The boot mode of the new image, which overrides the default boot mode. By default, \n if you do not specify this parameter, the new image inherits \n the boot-mode from the source instance.

\n

A value of uefi indicates that the image only supports UEFI boot mode. You can\n specify this parameter only if the current-instance-boot-mode of the source instance is\n uefi. To find the boot-mode or current-instance-boot-mode of \n an instance, see DescribeInstances.

\n \n

The operating system contained in the AMI must be configured to support the specified\n boot mode.

\n
\n

For more information, see Instance launch behavior with Amazon EC2 boot modes in\n the Amazon EC2 User Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#ImageNameRequest", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A name for the new image.

\n

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces\n ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or\n underscores(_)

", + "smithy.api#required": {}, + "smithy.api#xmlName": "name" + } + }, + "Description": { + "target": "com.amazonaws.ec2#ImageDescriptionRequest", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the new image.

", + "smithy.api#xmlName": "description" + } + }, + "NoReboot": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "NoReboot", + "smithy.api#documentation": "

Indicates whether or not the instance should be automatically rebooted before creating the\n image. Specify one of the following values:

\n
    \n
  • \n

    \n true - The instance is not rebooted before creating the image. This\n creates crash-consistent snapshots that include only the data that has been written to the\n volumes at the time the snapshots are created. Buffered data and data in memory that has\n not yet been written to the volumes is not included in the snapshots.

    \n
  • \n
  • \n

    \n false - The instance is rebooted before creating the image. This ensures\n that all buffered data and data in memory is written to the volumes before the snapshots\n are created.

    \n
  • \n
\n

Default: false\n

", + "smithy.api#xmlName": "noReboot" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingRequestList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

The block device mappings.

\n

When using the CreateImage action:

\n
    \n
  • \n

    You can't change the volume size using the VolumeSize parameter. If you want a\n different volume size, you must first change the volume size of the source\n instance.

    \n
  • \n
  • \n

    You can't modify the encryption status of existing volumes or snapshots. To create an\n AMI with volumes or snapshots that have a different encryption status (for example, where\n the source volume and snapshots are unencrypted, and you want to create an AMI with\n encrypted volumes or snapshots), copy the image instead.

    \n
  • \n
  • \n

    The only option that can be changed for existing mappings or snapshots is\n DeleteOnTermination.

    \n
  • \n
", + "smithy.api#xmlName": "blockDeviceMapping" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateImageResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the new AMI.

", + "smithy.api#xmlName": "imageId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateImageUsageReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateImageUsageReportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateImageUsageReportResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a report that shows how your image is used across other Amazon Web Services accounts. The report\n provides visibility into which accounts are using the specified image, and how many resources\n (EC2 instances or launch templates) are referencing it.

\n

For more information, see View your AMI usage in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateImageUsageReportClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.ec2#CreateImageUsageReportRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the image to report on.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeRequestList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource types to include in the report.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ResourceType" + } + }, + "AccountIds": { + "target": "com.amazonaws.ec2#ImageUsageReportUserIdStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account IDs to include in the report. To include all accounts, omit this\n parameter.

", + "smithy.api#xmlName": "AccountId" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#CreateImageUsageReportClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the report on creation. The ResourceType must be set to\n image-usage-report; any other value will cause the report creation to\n fail.

\n

To tag a report after it has been created, see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateImageUsageReportResult": { + "type": "structure", + "members": { + "ReportId": { + "target": "com.amazonaws.ec2#ImageUsageReportId", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateInstanceConnectEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateInstanceConnectEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateInstanceConnectEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an EC2 Instance Connect Endpoint.

\n

An EC2 Instance Connect Endpoint allows you to connect to an instance, without\n requiring the instance to have a public IPv4 or public IPv6 address. For more\n information, see Connect to your instances using EC2 Instance Connect Endpoint in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateInstanceConnectEndpointRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet in which to create the EC2 Instance Connect Endpoint.

", + "smithy.api#required": {} + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringListRequest", + "traits": { + "smithy.api#documentation": "

One or more security groups to associate with the endpoint. If you don't specify a security group, \n the default security group for your VPC will be associated with the endpoint.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "PreserveClientIp": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the client IP address is preserved as the source. The following are the possible values.

\n
    \n
  • \n

    \n true - Use the client IP address as the source.

    \n
  • \n
  • \n

    \n false - Use the network interface IP address as the source.

    \n
  • \n
\n \n

\n PreserveClientIp is only supported on IPv4 EC2 Instance Connect\n Endpoints. To use PreserveClientIp, the value for\n IpAddressType must be ipv4.

\n
\n

Default: false\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the EC2 Instance Connect Endpoint during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type of the endpoint.

\n

If no value is specified, the default value is determined by the IP address type of\n the subnet:

\n
    \n
  • \n

    \n dualstack - If the subnet has both IPv4 and IPv6 CIDRs

    \n
  • \n
  • \n

    \n ipv4 - If the subnet has only IPv4 CIDRs

    \n
  • \n
  • \n

    \n ipv6 - If the subnet has only IPv6 CIDRs

    \n
  • \n
\n \n

\n PreserveClientIp is only supported on IPv4 EC2 Instance Connect\n Endpoints. To use PreserveClientIp, the value for\n IpAddressType must be ipv4.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateInstanceConnectEndpointResult": { + "type": "structure", + "members": { + "InstanceConnectEndpoint": { + "target": "com.amazonaws.ec2#Ec2InstanceConnectEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "InstanceConnectEndpoint", + "smithy.api#documentation": "

Information about the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "instanceConnectEndpoint" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive idempotency token provided by the client in the the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateInstanceEventWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateInstanceEventWindowRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateInstanceEventWindowResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an event window in which scheduled events for the associated Amazon EC2 instances can\n run.

\n

You can define either a set of time ranges or a cron expression when creating the event\n window, but not both. All event window times are in UTC.

\n

You can create up to 200 event windows per Amazon Web Services Region.

\n

When you create the event window, targets (instance IDs, Dedicated Host IDs, or tags)\n are not yet associated with it. To ensure that the event window can be used, you must\n associate one or more targets with it by using the AssociateInstanceEventWindow API.

\n \n

Event windows are applicable only for scheduled events that stop, reboot, or\n terminate instances.

\n

Event windows are not applicable for:

\n
    \n
  • \n

    Expedited scheduled events and network maintenance events.

    \n
  • \n
  • \n

    Unscheduled maintenance such as AutoRecovery and unplanned reboots.

    \n
  • \n
\n
\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateInstanceEventWindowRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the event window.

" + } + }, + "TimeRanges": { + "target": "com.amazonaws.ec2#InstanceEventWindowTimeRangeRequestSet", + "traits": { + "smithy.api#documentation": "

The time range for the event window. If you specify a time range, you can't specify a\n cron expression.

", + "smithy.api#xmlName": "TimeRange" + } + }, + "CronExpression": { + "target": "com.amazonaws.ec2#InstanceEventWindowCronExpression", + "traits": { + "smithy.api#documentation": "

The cron expression for the event window, for example, * 0-4,20-23 * * 1,5.\n If you specify a cron expression, you can't specify a time range.

\n

Constraints:

\n
    \n
  • \n

    Only hour and day of the week values are supported.

    \n
  • \n
  • \n

    For day of the week values, you can specify either integers 0 through\n 6, or alternative single values SUN through\n SAT.

    \n
  • \n
  • \n

    The minute, month, and year must be specified by *.

    \n
  • \n
  • \n

    The hour value must be one or a multiple range, for example, 0-4 or\n 0-4,20-23.

    \n
  • \n
  • \n

    Each hour range must be >= 2 hours, for example, 0-2 or\n 20-23.

    \n
  • \n
  • \n

    The event window must be >= 4 hours. The combined total time ranges in the event\n window must be >= 4 hours.

    \n
  • \n
\n

For more information about cron expressions, see cron on the Wikipedia\n website.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the event window.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateInstanceEventWindowResult": { + "type": "structure", + "members": { + "InstanceEventWindow": { + "target": "com.amazonaws.ec2#InstanceEventWindow", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindow", + "smithy.api#documentation": "

Information about the event window.

", + "smithy.api#xmlName": "instanceEventWindow" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateInstanceExportTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateInstanceExportTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateInstanceExportTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Exports a running or stopped instance to an Amazon S3 bucket.

\n

For information about the prerequisites for your Amazon S3 bucket, supported operating systems,\n image formats, and known limitations for the types of instances you can export, see Exporting an instance as a VM Using VM\n Import/Export in the VM Import/Export User Guide.

" + } + }, + "com.amazonaws.ec2#CreateInstanceExportTaskRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the export instance task during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the conversion task or the resource being exported. The maximum length is 255 characters.

", + "smithy.api#xmlName": "description" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "TargetEnvironment": { + "target": "com.amazonaws.ec2#ExportEnvironment", + "traits": { + "aws.protocols#ec2QueryName": "TargetEnvironment", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target virtualization environment.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "targetEnvironment" + } + }, + "ExportToS3Task": { + "target": "com.amazonaws.ec2#ExportToS3TaskSpecification", + "traits": { + "aws.protocols#ec2QueryName": "ExportToS3", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The format and location for an export instance task.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "exportToS3" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateInstanceExportTaskResult": { + "type": "structure", + "members": { + "ExportTask": { + "target": "com.amazonaws.ec2#ExportTask", + "traits": { + "aws.protocols#ec2QueryName": "ExportTask", + "smithy.api#documentation": "

Information about the export instance task.

", + "smithy.api#xmlName": "exportTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateInternetGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateInternetGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an internet gateway for use with a VPC. After creating the internet gateway,\n\t\t\tyou attach it to a VPC using AttachInternetGateway.

\n

For more information, see Internet gateways in the \n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an Internet gateway", + "documentation": "This example creates an Internet gateway.", + "output": { + "InternetGateway": { + "Tags": [], + "InternetGatewayId": "igw-c0a643a9", + "Attachments": [] + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateInternetGatewayRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the internet gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateInternetGatewayResult": { + "type": "structure", + "members": { + "InternetGateway": { + "target": "com.amazonaws.ec2#InternetGateway", + "traits": { + "aws.protocols#ec2QueryName": "InternetGateway", + "smithy.api#documentation": "

Information about the internet gateway.

", + "smithy.api#xmlName": "internetGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationResult" + }, + "traits": { + "smithy.api#documentation": "

\n\t\t\tCreates an interruptible Capacity Reservation by specifying the number of unused instances you want to allocate from your source reservation. This helps you make unused capacity available for other workloads within your account while maintaining control to reclaim it.\n\t\t

" + } + }, + "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n\t\t\tThe ID of the source Capacity Reservation from which to create the interruptible Capacity Reservation. Your Capacity Reservation must be in active state with no end date set and have available capacity for allocation.\n\t\t

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n\t\t\tThe number of instances to allocate from your source reservation. You can only allocate available instances (also called unused capacity).\n\t\t

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\n\t\t\tUnique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n\t\t

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\n\t\t\tChecks whether you have the required permissions for the action, without actually making the request, and provides an error response.\n\t\t

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n\t\t\tThe tags to apply to the interruptible Capacity Reservation during creation.\n\t\t

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ZeroSizePreference": { + "target": "com.amazonaws.ec2#ZeroSizePreference", + "traits": { + "smithy.api#documentation": "

\n\t\t\tSpecifies the behavior for the interruptible Capacity Reservation when you reduce its allocation to zero instances. Specify retain to keep the interruptible Capacity Reservation active at zero capacity so that you can allocate instances to it again later. Specify default to cancel the interruptible Capacity Reservation and return the capacity to your source Capacity Reservation. The default value is default.\n\t\t

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateInterruptibleCapacityReservationAllocationResult": { + "type": "structure", + "members": { + "SourceCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "SourceCapacityReservationId", + "smithy.api#documentation": "

\n\t\t\tThe ID of the source Capacity Reservation from which the interruptible Capacity Reservation was created.\n\t\t

", + "smithy.api#xmlName": "sourceCapacityReservationId" + } + }, + "TargetInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetInstanceCount", + "smithy.api#documentation": "

\n\t\t\tThe number of instances allocated to the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "targetInstanceCount" + } + }, + "Status": { + "target": "com.amazonaws.ec2#InterruptibleCapacityReservationAllocationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

\n\t\t\tThe current status of the allocation request (creating, active, updating).\n\t\t

", + "smithy.api#xmlName": "status" + } + }, + "InterruptionType": { + "target": "com.amazonaws.ec2#InterruptionType", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionType", + "smithy.api#documentation": "

\n\t\t\tThe type of interruption applied to the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "interruptionType" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpam": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamResult" + }, + "traits": { + "smithy.api#documentation": "

Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature that you can use\n to automate your IP address management workflows including assigning, tracking,\n troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts\n throughout your Amazon Web Services Organization.

\n

For more information, see Create an IPAM in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#CreateIpamExternalResourceVerificationToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenResult" + }, + "traits": { + "smithy.api#documentation": "

Create a verification token.

\n

A verification token is an Amazon Web Services-generated random value that you can use to prove ownership of an external resource. For example, you can use a verification token to validate that you control a public IP address range when you bring an IP address range to Amazon Web Services (BYOIP).\n

" + } + }, + "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM that will create the token.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Token tags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamExternalResourceVerificationTokenResult": { + "type": "structure", + "members": { + "IpamExternalResourceVerificationToken": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationToken", + "traits": { + "aws.protocols#ec2QueryName": "IpamExternalResourceVerificationToken", + "smithy.api#documentation": "

The verification token.

", + "smithy.api#xmlName": "ipamExternalResourceVerificationToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamInternetRegistryAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an association between an IPAM and a Regional Internet Registry (RIR) for Resource Public Key Infrastructure (RPKI) management. You can use this association to create Route Origin Authorizations (ROAs) for IP address prefixes registered with the internet registry. Your IPAM must be in the Advanced tier to use this feature.

" + } + }, + "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM to associate with the internet registry.

", + "smithy.api#required": {} + } + }, + "Rir": { + "target": "com.amazonaws.ec2#Rir", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Regional Internet Registry to associate with. Possible values:

\n
    \n
  • \n

    \n ripe - RIPE NCC (Europe, the Middle East, and Central Asia).

    \n
  • \n
  • \n

    \n apnic - APNIC (Asia Pacific).

    \n
  • \n
  • \n

    \n arin - ARIN (North America).

    \n
  • \n
  • \n

    \n lacnic - LACNIC (Latin America and the Caribbean).

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "OrganizationHandle": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The organization handle at the internet registry (for example, a RIPE NCC organization ID or ARIN Org ID).

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the internet registry association.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the internet registry association.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamInternetRegistryAssociationResult": { + "type": "structure", + "members": { + "IpamInternetRegistryAssociation": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociation", + "smithy.api#documentation": "

Information about the internet registry association.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

\n

For more information, see Define public IPv4 allocation strategy with IPAM policies in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#CreateIpamPolicyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the IPAM policy.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure the idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM for which you're creating the policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamPolicyResult": { + "type": "structure", + "members": { + "IpamPolicy": { + "target": "com.amazonaws.ec2#IpamPolicy", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicy", + "smithy.api#documentation": "

Information about the created IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

", + "smithy.api#xmlName": "ipamPolicy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamPool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamPoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamPoolResult" + }, + "traits": { + "smithy.api#documentation": "

Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.

\n

For more information, see Create a top-level pool in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#CreateIpamPoolRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the scope in which you would like to create the IPAM pool.

", + "smithy.api#required": {} + } + }, + "Locale": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The locale for the pool should be one of the following:

\n
    \n
  • \n

    An Amazon Web Services Region where you want this IPAM pool to be available for allocations.

    \n
  • \n
  • \n

    The network border group for an Amazon Web Services Local Zone where you want this IPAM pool to be available for allocations (supported Local Zones). This option is only available for IPAM IPv4 pools in the public scope.

    \n
  • \n
\n

Possible values: Any Amazon Web Services Region or supported Amazon Web Services Local Zone. Default is none and means any locale.

" + } + }, + "SourceIpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of the source IPAM pool. Use this option to create a pool within an existing pool. Note that the CIDR you provision for the pool within the source pool must be available in the source pool's CIDR range.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the IPAM pool.

" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#AddressFamily", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 protocol for a pool.

", + "smithy.api#required": {} + } + }, + "AutoImport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If selected, IPAM will continuously look for resources within the CIDR range of this pool \n and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n

\n

A locale must be set on the pool for this feature to work.

" + } + }, + "PubliclyAdvertisable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Determines if the pool is publicly advertisable. The request can only contain PubliclyAdvertisable if AddressFamily is ipv6 and PublicIpSource is byoip.

" + } + }, + "AllocationMinNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be \n less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.

" + } + }, + "AllocationMaxNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be \n greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.

" + } + }, + "AllocationDefaultNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, \n new allocations will default to 10.0.0.0/16.

" + } + }, + "AllocationResourceTags": { + "target": "com.amazonaws.ec2#RequestIpamResourceTagList", + "traits": { + "smithy.api#documentation": "

Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.

", + "smithy.api#xmlName": "AllocationResourceTag" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "AwsService": { + "target": "com.amazonaws.ec2#IpamPoolAwsService", + "traits": { + "smithy.api#documentation": "

Limits which service in Amazon Web Services that the pool can be used in. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs.

" + } + }, + "PublicIpSource": { + "target": "com.amazonaws.ec2#IpamPoolPublicIpSource", + "traits": { + "smithy.api#documentation": "

The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is byoip. For more information, see Create IPv6 pools in the Amazon VPC IPAM User Guide. \n By default, you can add only one Amazon-provided IPv6 CIDR block to a top-level IPv6 pool if PublicIpSource is amazon. For information on increasing the default limit, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "SourceResource": { + "target": "com.amazonaws.ec2#IpamPoolSourceResourceRequest", + "traits": { + "smithy.api#documentation": "

The resource used to provision CIDRs to a resource planning pool.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamPoolResult": { + "type": "structure", + "members": { + "IpamPool": { + "target": "com.amazonaws.ec2#IpamPool", + "traits": { + "aws.protocols#ec2QueryName": "IpamPool", + "smithy.api#documentation": "

Information about the IPAM pool created.

", + "smithy.api#xmlName": "ipamPool" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolverRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolverResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an IPAM prefix list resolver.

\n

An IPAM prefix list resolver is a component that manages the synchronization between IPAM's CIDR selection rules and customer-managed prefix lists. It automates connectivity configurations by selecting CIDRs from IPAM's database based on your business logic and synchronizing them with prefix lists used in resources such as VPC route tables and security groups.

\n

For more information about IPAM prefix list resolver, see Automate prefix list updates with IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolverRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM that will serve as the source of the IP address database for CIDR selection. The IPAM must be in the Advanced tier to use this feature.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the IPAM prefix list resolver to help you identify its purpose and configuration.

" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#AddressFamily", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The address family for the IPAM prefix list resolver. Valid values are ipv4 and ipv6. You must create separate resolvers for IPv4 and IPv6 CIDRs as they cannot be mixed in the same resolver.

", + "smithy.api#required": {} + } + }, + "Rules": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleRequestSet", + "traits": { + "smithy.api#documentation": "

The CIDR selection rules for the resolver.

\n

CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.

", + "smithy.api#xmlName": "Rule" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the IPAM prefix list resolver during creation. Tags help you organize and manage your Amazon Web Services resources.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolverResult": { + "type": "structure", + "members": { + "IpamPrefixListResolver": { + "target": "com.amazonaws.ec2#IpamPrefixListResolver", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolver", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver that was created.

", + "smithy.api#xmlName": "ipamPrefixListResolver" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolverTarget": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an IPAM prefix list resolver target.

\n

An IPAM prefix list resolver target is an association between a specific customer-managed prefix list and an IPAM prefix list resolver. The target enables the resolver to synchronize CIDRs selected by its rules into the specified prefix list, which can then be referenced in Amazon Web Services resources.

\n

For more information about IPAM prefix list resolver, see Automate prefix list updates with IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver that will manage the synchronization of CIDRs to the target prefix list.

", + "smithy.api#required": {} + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the managed prefix list that will be synchronized with CIDRs selected by the IPAM prefix list resolver. This prefix list becomes an IPAM managed prefix list.

\n

An IPAM-managed prefix list is a customer-managed prefix list that has been associated with an IPAM prefix list resolver target. When a prefix list becomes IPAM managed, its CIDRs are automatically synchronized based on the IPAM prefix list resolver's CIDR selection rules, and direct CIDR modifications are restricted.

", + "smithy.api#required": {} + } + }, + "PrefixListRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Region where the prefix list is located. This is required when referencing a prefix list in a different Region.

", + "smithy.api#required": {} + } + }, + "DesiredVersion": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "smithy.api#documentation": "

The specific version of the prefix list to target. If not specified, the resolver will target the latest version.

" + } + }, + "TrackLatestVersion": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether the resolver target should automatically track the latest version of the prefix list. When enabled, the target will always synchronize with the most current version of the prefix list.

\n

Choose this for automatic updates when you want your prefix lists to stay current with infrastructure changes without manual intervention.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the IPAM prefix list resolver target during creation. Tags help you organize and manage your Amazon Web Services resources.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamPrefixListResolverTargetResult": { + "type": "structure", + "members": { + "IpamPrefixListResolverTarget": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTarget", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTarget", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver target that was created.

", + "smithy.api#xmlName": "ipamPrefixListResolverTarget" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the IPAM.

" + } + }, + "OperatingRegions": { + "target": "com.amazonaws.ec2#AddIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

The operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.\n

", + "smithy.api#xmlName": "OperatingRegion" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "Tier": { + "target": "com.amazonaws.ec2#IpamTier", + "traits": { + "smithy.api#documentation": "

IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see Amazon VPC pricing > IPAM tab.

" + } + }, + "EnablePrivateGua": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.

" + } + }, + "MeteredAccount": { + "target": "com.amazonaws.ec2#IpamMeteredAccount", + "traits": { + "smithy.api#documentation": "

A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see Enable cost distribution in the Amazon VPC IPAM User Guide.

\n

Possible values:

\n
    \n
  • \n

    \n ipam-owner (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.

    \n
  • \n
  • \n

    \n resource-owner: The Amazon Web Services account that owns the IP address is charged for the active IP address.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamResourceDiscovery": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamResourceDiscoveryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamResourceDiscoveryResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an IPAM resource discovery. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#CreateIpamResourceDiscoveryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the IPAM resource discovery.

" + } + }, + "OperatingRegions": { + "target": "com.amazonaws.ec2#AddIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

Operating Regions for the IPAM resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

", + "smithy.api#xmlName": "OperatingRegion" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tag specifications for the IPAM resource discovery.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A client token for the IPAM resource discovery.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamResourceDiscoveryResult": { + "type": "structure", + "members": { + "IpamResourceDiscovery": { + "target": "com.amazonaws.ec2#IpamResourceDiscovery", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscovery", + "smithy.api#documentation": "

An IPAM resource discovery.

", + "smithy.api#xmlName": "ipamResourceDiscovery" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamResult": { + "type": "structure", + "members": { + "Ipam": { + "target": "com.amazonaws.ec2#Ipam", + "traits": { + "aws.protocols#ec2QueryName": "Ipam", + "smithy.api#documentation": "

Information about the IPAM created.

", + "smithy.api#xmlName": "ipam" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a routing policy registration and publishes Route Origin Authorizations (ROAs) to the RPKI for the specified CIDR prefix and ASNs.

" + } + }, + "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP address prefix in CIDR notation to authorize in the ROA.

", + "smithy.api#required": {} + } + }, + "Asns": { + "target": "com.amazonaws.ec2#AsnList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Autonomous System Numbers (ASNs) authorized to originate the prefix.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Asn" + } + }, + "PermitMoreSpecificAnnouncements": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to permit more specific route announcements than the CIDR prefix. When enabled, ASNs can announce sub-prefixes of the authorized CIDR up to the specified maximum length. Default: false.

" + } + }, + "MaxLength": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationMaxLength", + "traits": { + "smithy.api#documentation": "

The maximum prefix length that the ASNs are authorized to announce. Must be greater than or equal to the prefix length of the CIDR. If not specified, defaults to the prefix length of the CIDR (exact match only).

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the routing policy registration.

" + } + }, + "Force": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Forces the creation of the routing policy registration even if it conflicts with an announced route. Default: false.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamRoutingPolicyRegistrationResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrationDelta": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationDelta", + "smithy.api#documentation": "

Information about the routing policy registration delta created by this operation.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationDelta" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateIpamScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateIpamScopeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateIpamScopeResult" + }, + "traits": { + "smithy.api#documentation": "

Create an IPAM scope. In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

\n

For more information, see Add a scope in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#CreateIpamScopeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM for which you're creating this scope.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the scope you're creating.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "ExternalAuthorityConfiguration": { + "target": "com.amazonaws.ec2#ExternalAuthorityConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.

\n

In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateIpamScopeResult": { + "type": "structure", + "members": { + "IpamScope": { + "target": "com.amazonaws.ec2#IpamScope", + "traits": { + "aws.protocols#ec2QueryName": "IpamScope", + "smithy.api#documentation": "

Information about the created scope.

", + "smithy.api#xmlName": "ipamScope" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateKeyPair": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateKeyPairRequest" + }, + "output": { + "target": "com.amazonaws.ec2#KeyPair" + }, + "traits": { + "smithy.api#documentation": "

Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the\n specified format. Amazon EC2 stores the public key and displays the private\n key for you to save to a file. The private key is returned as an unencrypted PEM encoded\n PKCS#1 private key or an unencrypted PPK formatted private key for use with PuTTY. If a\n key with the specified name already exists, Amazon EC2 returns an error.

\n

The key pair returned to you is available only in the Amazon Web Services Region in which you create it.\n If you prefer, you can create your own key pair using a third-party tool and upload it\n to any Region using ImportKeyPair.

\n

You can have up to 5,000 key pairs per Amazon Web Services Region.

\n

For more information, see Amazon EC2 key pairs in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a key pair", + "documentation": "This example creates a key pair named my-key-pair.", + "input": { + "KeyName": "my-key-pair" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateKeyPairRequest": { + "type": "structure", + "members": { + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique name for the key pair.

\n

Constraints: Up to 255 ASCII characters

", + "smithy.api#required": {} + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#KeyType", + "traits": { + "smithy.api#documentation": "

The type of key pair. Note that ED25519 keys are not supported for Windows instances.

\n

Default: rsa\n

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new key pair.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "KeyFormat": { + "target": "com.amazonaws.ec2#KeyFormat", + "traits": { + "smithy.api#documentation": "

The format of the key pair.

\n

Default: pem\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLaunchTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLaunchTemplateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLaunchTemplateResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a launch template.

\n

A launch template contains the parameters to launch an instance. When you launch an\n instance using RunInstances, you can specify a launch template instead\n of providing the launch parameters in the request. For more information, see Store\n instance launch parameters in Amazon EC2 launch templates in the\n Amazon EC2 User Guide.

\n

To clone an existing launch template as the basis for a new launch template, use the\n Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more\n information, see Create a launch template from an existing launch template in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a launch template", + "documentation": "This example creates a launch template that specifies the subnet in which to launch the instance, assigns a public IP address and an IPv6 address to the instance, and creates a tag for the instance.", + "input": { + "LaunchTemplateName": "my-template", + "VersionDescription": "WebVersion1", + "LaunchTemplateData": { + "NetworkInterfaces": [ + { + "AssociatePublicIpAddress": true, + "DeviceIndex": 0, + "Ipv6AddressCount": 1, + "SubnetId": "subnet-7b16de0c" + } + ], + "ImageId": "ami-8c1be5f6", + "InstanceType": "t2.small", + "TagSpecifications": [ + { + "ResourceType": "instance", + "Tags": [ + { + "Key": "Name", + "Value": "webserver" + } + ] + } + ] + } + }, + "output": { + "LaunchTemplate": { + "LatestVersionNumber": 1, + "LaunchTemplateId": "lt-01238c059e3466abc", + "LaunchTemplateName": "my-template", + "DefaultVersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-27T09:13:24.000Z" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateLaunchTemplateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the\n request. If a client token isn't specified, a randomly generated token is used in the\n request to ensure idempotency.

\n

For more information, see Ensuring\n idempotency.

\n

Constraint: Maximum 128 ASCII characters.

", + "smithy.api#idempotencyToken": {} + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A name for the launch template.

", + "smithy.api#required": {} + } + }, + "VersionDescription": { + "target": "com.amazonaws.ec2#VersionDescription", + "traits": { + "smithy.api#documentation": "

A description for the first version of the launch template.

" + } + }, + "LaunchTemplateData": { + "target": "com.amazonaws.ec2#RequestLaunchTemplateData", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The information for the launch template.

", + "smithy.api#required": {} + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the launch template on creation. To tag the launch template, the\n resource type must be launch-template.

\n

To specify the tags for the resources that are created when an instance is launched,\n you must use the TagSpecifications parameter in the launch template\n data structure.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLaunchTemplateResult": { + "type": "structure", + "members": { + "LaunchTemplate": { + "target": "com.amazonaws.ec2#LaunchTemplate", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

Information about the launch template.

", + "smithy.api#xmlName": "launchTemplate" + } + }, + "Warning": { + "target": "com.amazonaws.ec2#ValidationWarning", + "traits": { + "aws.protocols#ec2QueryName": "Warning", + "smithy.api#documentation": "

If the launch template contains parameters or parameter combinations that are not\n valid, an error code and an error message are returned for each issue that's\n found.

", + "smithy.api#xmlName": "warning" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLaunchTemplateVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLaunchTemplateVersionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLaunchTemplateVersionResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a new version of a launch template. You must specify an existing launch\n template, either by name or ID. You can determine whether the new version inherits\n parameters from a source version, and add or overwrite parameters as needed.

\n

Launch template versions are numbered in the order in which they are created. You\n can't specify, change, or replace the numbering of launch template versions.

\n

Launch templates are immutable; after you create a launch template, you can't modify\n it. Instead, you can create a new version of the launch template that includes the\n changes that you require.

\n

For more information, see Modify a launch\n template (manage launch template versions) in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a launch template version", + "documentation": "This example creates a new launch template version based on version 1 of the specified launch template and specifies a different AMI ID.", + "input": { + "LaunchTemplateId": "lt-0abcd290751193123", + "SourceVersion": "1", + "VersionDescription": "WebVersion2", + "LaunchTemplateData": { + "ImageId": "ami-c998b6b2" + } + }, + "output": { + "LaunchTemplateVersion": { + "VersionDescription": "WebVersion2", + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "my-template", + "VersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "LaunchTemplateData": { + "ImageId": "ami-c998b6b2", + "InstanceType": "t2.micro", + "NetworkInterfaces": [ + { + "Ipv6Addresses": [ + { + "Ipv6Address": "2001:db8:1234:1a00::123" + } + ], + "DeviceIndex": 0, + "SubnetId": "subnet-7b16de0c", + "AssociatePublicIpAddress": true + } + ] + }, + "DefaultVersion": false, + "CreateTime": "2017-12-01T13:35:46.000Z" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateLaunchTemplateVersionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the\n request. If a client token isn't specified, a randomly generated token is used in the\n request to ensure idempotency.

\n

For more information, see Ensuring\n idempotency.

\n

Constraint: Maximum 128 ASCII characters.

", + "smithy.api#idempotencyToken": {} + } + }, + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "SourceVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The version of the launch template on which to base the new version. Snapshots applied\n to the block device mapping are ignored when creating a new version unless they are\n explicitly included.

\n

If you specify this parameter, the new version inherits the launch parameters from the\n source version. If you specify additional launch parameters for the new version, they\n overwrite any corresponding launch parameters inherited from the source version.

\n

If you omit this parameter, the new version contains only the launch parameters that\n you specify for the new version.

" + } + }, + "VersionDescription": { + "target": "com.amazonaws.ec2#VersionDescription", + "traits": { + "smithy.api#documentation": "

A description for the version of the launch template.

" + } + }, + "LaunchTemplateData": { + "target": "com.amazonaws.ec2#RequestLaunchTemplateData", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The information for the launch template.

", + "smithy.api#required": {} + } + }, + "ResolveAlias": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, and if a Systems Manager parameter is specified for\n ImageId, the AMI ID is displayed in the response for\n imageID. For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLaunchTemplateVersionResult": { + "type": "structure", + "members": { + "LaunchTemplateVersion": { + "target": "com.amazonaws.ec2#LaunchTemplateVersion", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateVersion", + "smithy.api#documentation": "

Information about the launch template version.

", + "smithy.api#xmlName": "launchTemplateVersion" + } + }, + "Warning": { + "target": "com.amazonaws.ec2#ValidationWarning", + "traits": { + "aws.protocols#ec2QueryName": "Warning", + "smithy.api#documentation": "

If the new version of the launch template contains parameters or parameter\n combinations that are not valid, an error code and an error message are returned for\n each issue that's found.

", + "smithy.api#xmlName": "warning" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a static route for the specified local gateway route table. You must specify one of the \n following targets:

\n
    \n
  • \n

    \n LocalGatewayVirtualInterfaceGroupId\n

    \n
  • \n
  • \n

    \n NetworkInterfaceId\n

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR range used for destination matches. Routing decisions are based on \n the most specific match.

" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#required": {} + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the virtual interface group.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The ID of the network interface.

" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the prefix list. Use a prefix list in place of DestinationCidrBlock. You \n cannot use DestinationPrefixListId and DestinationCidrBlock in the same request.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#LocalGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the route.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

\n Creates a local gateway route table. \n

" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableRequest": { + "type": "structure", + "members": { + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway. \n

", + "smithy.api#required": {} + } + }, + "Mode": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableMode", + "traits": { + "smithy.api#documentation": "

\n The mode of the local gateway route table.\n

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n The tags assigned to the local gateway route table.\n

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTable": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTable", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTable", + "smithy.api#documentation": "

Information about the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

\n Creates a local gateway route table virtual interface group association. \n

" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway route table.\n

", + "smithy.api#required": {} + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway route table virtual interface group association.\n

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n The tags assigned to the local gateway route table virtual interface group association.\n

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "smithy.api#documentation": "

Information about the local gateway route table virtual interface group association.

", + "smithy.api#xmlName": "localGatewayRouteTableVirtualInterfaceGroupAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Associates the specified VPC with the specified local gateway route table.

" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the local gateway route table VPC association.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayRouteTableVpcAssociationResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociation": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociation", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVpcAssociation", + "smithy.api#documentation": "

Information about the association.

", + "smithy.api#xmlName": "localGatewayRouteTableVpcAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Create a virtual interface for a local gateway.

" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Create a local gateway virtual interface group.

" + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupRequest": { + "type": "structure", + "members": { + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#required": {} + } + }, + "LocalBgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).

" + } + }, + "LocalBgpAsnExtended": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The extended 32-bit ASN for the local BGP configuration.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the local gateway virtual interface group when the resource is\n being created.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceGroupResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroup": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroup", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroup", + "smithy.api#documentation": "

Information about the created local gateway virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceRequest": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway virtual interface group.

", + "smithy.api#required": {} + } + }, + "OutpostLagId": { + "target": "com.amazonaws.ec2#OutpostLagId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

References the Link Aggregation Group (LAG) that connects the Outpost to on-premises network devices.

", + "smithy.api#required": {} + } + }, + "Vlan": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The virtual local area network (VLAN) used for the local gateway virtual interface.

", + "smithy.api#required": {} + } + }, + "LocalAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP address assigned to the local gateway virtual interface on the Outpost side. Only IPv4 is supported.

", + "smithy.api#required": {} + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The peer IP address for the local gateway virtual interface. Only IPv4 is\n supported.

", + "smithy.api#required": {} + } + }, + "PeerBgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The Autonomous System Number (ASN) of the Border Gateway Protocol (BGP) peer.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to a resource when the local gateway virtual interface is being created.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PeerBgpAsnExtended": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The extended 32-bit ASN of the BGP peer for use with larger ASN values.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateLocalGatewayVirtualInterfaceResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterface": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterface", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterface", + "smithy.api#documentation": "

Information about the local gateway virtual interface.

", + "smithy.api#xmlName": "localGatewayVirtualInterface" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a System Integrity Protection (SIP) modification task to configure the SIP settings \n for an x86 Mac instance or Apple silicon Mac instance. For more information, see \n \n Configure SIP for Amazon EC2 instances in the Amazon EC2 User Guide.

\n

When you configure the SIP settings for your instance, you can either enable \n or disable all SIP settings, or you can specify a custom SIP configuration that \n selectively enables or disables specific SIP settings.

\n \n

If you implement a custom configuration, \n connect to the instance and verify the settings to ensure that your \n requirements are properly implemented and functioning as intended.

\n

SIP configurations might change with macOS updates. We recommend that you \n review custom SIP settings after any macOS version upgrade to ensure \n continued compatibility and proper functionality of your security configurations.

\n
\n

To enable or disable all SIP settings, use the MacSystemIntegrityProtectionStatus \n parameter only. For example, to enable all SIP settings, specify the following:

\n
    \n
  • \n

    \n MacSystemIntegrityProtectionStatus=enabled\n

    \n
  • \n
\n

To specify a custom configuration that selectively enables or disables specific SIP \n settings, use the MacSystemIntegrityProtectionStatus \n parameter to enable or disable all SIP settings, and then use the \n MacSystemIntegrityProtectionConfiguration parameter \n to specify exceptions. In this case, the exceptions you specify for MacSystemIntegrityProtectionConfiguration override the value \n you specify for MacSystemIntegrityProtectionStatus. \n For example, to enable all SIP settings, except NvramProtections, \n specify the following:

\n
    \n
  • \n

    \n MacSystemIntegrityProtectionStatus=enabled\n

    \n
  • \n
  • \n

    \n MacSystemIntegrityProtectionConfigurationRequest \"NvramProtections=disabled\"\n

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon EC2 Mac instance.

", + "smithy.api#required": {} + } + }, + "MacCredentials": { + "target": "com.amazonaws.ec2#SensitiveMacCredentials", + "traits": { + "smithy.api#documentation": "

\n [Apple silicon Mac instances only] Specifies the \n following credentials:

\n
    \n
  • \n

    \n Internal disk administrative user\n

    \n
      \n
    • \n

      \n Username - Only the default administrative \n user (aws-managed-user) is supported and it is used by default. You \n can't specify a different administrative user.

      \n
    • \n
    • \n

      \n Password - If you did not change the default \n password for aws-managed-user, specify the default password, which \n is blank. Otherwise, specify your password.

      \n
    • \n
    \n
  • \n
  • \n

    \n Amazon EBS root volume administrative user\n

    \n
      \n
    • \n

      \n Username - If you did not change the default \n administrative user, specify ec2-user. Otherwise, specify the username \n for your administrative user.

      \n
    • \n
    • \n

      \n Password - Specify the password for the \n administrative user.

      \n
    • \n
    \n
  • \n
\n

The credentials must be specified in the following JSON format:

\n

\n {\n \"internalDiskPassword\":\"internal-disk-admin_password\",\n \"rootVolumeUsername\":\"root-volume-admin_username\",\n \"rootVolumepassword\":\"root-volume-admin_password\"\n}\n

" + } + }, + "MacSystemIntegrityProtectionConfiguration": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionConfigurationRequest", + "traits": { + "smithy.api#documentation": "

Specifies the overrides to selectively enable or disable individual SIP settings. \n The individual settings you specify here override the overall SIP status you specify \n for MacSystemIntegrityProtectionStatus.

" + } + }, + "MacSystemIntegrityProtectionStatus": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies the overall SIP status for the instance. To enable all SIP settings, specify \n enabled. To disable all SIP settings, specify disabled.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Specifies tags to apply to the SIP modification task.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateMacSystemIntegrityProtectionModificationTaskResult": { + "type": "structure", + "members": { + "MacModificationTask": { + "target": "com.amazonaws.ec2#MacModificationTask", + "traits": { + "aws.protocols#ec2QueryName": "MacModificationTask", + "smithy.api#documentation": "

Information about the SIP modification task.

", + "smithy.api#xmlName": "macModificationTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateManagedPrefixList": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateManagedPrefixListRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateManagedPrefixListResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a managed prefix list. You can specify entries for the prefix list. \n Each entry consists of a CIDR block and an optional description.

" + } + }, + "com.amazonaws.ec2#CreateManagedPrefixListRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A name for the prefix list.

\n

Constraints: Up to 255 characters in length. The name cannot start with com.amazonaws.

", + "smithy.api#required": {} + } + }, + "Entries": { + "target": "com.amazonaws.ec2#AddPrefixListEntries", + "traits": { + "smithy.api#documentation": "

One or more entries for the prefix list.

", + "smithy.api#xmlName": "Entry" + } + }, + "MaxEntries": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The maximum number of entries for the prefix list.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the prefix list during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP address type.

\n

Valid Values: IPv4 | IPv6\n

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

\n

Constraints: Up to 255 UTF-8 characters in length.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateManagedPrefixListResult": { + "type": "structure", + "members": { + "PrefixList": { + "target": "com.amazonaws.ec2#ManagedPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "PrefixList", + "smithy.api#documentation": "

Information about the prefix list.

", + "smithy.api#xmlName": "prefixList" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNatGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNatGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNatGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a NAT gateway in the specified subnet. This action creates a network interface\n in the specified subnet with a private IP address from the IP address range of the\n subnet. You can create either a public NAT gateway or a private NAT gateway.

\n

With a public NAT gateway, internet-bound traffic from a private subnet can be routed\n to the NAT gateway, so that instances in a private subnet can connect to the internet.

\n

With a private NAT gateway, private communication is routed across VPCs and on-premises\n networks through a transit gateway or virtual private gateway. Common use cases include\n running large workloads behind a small pool of allowlisted IPv4 addresses, preserving\n private IPv4 addresses, and communicating between overlapping networks.

\n

For more information, see NAT gateways in the Amazon VPC User Guide.

\n \n

When you create a public NAT gateway and assign it an EIP or secondary EIPs, \n the network border group of the EIPs must match the network border group of the Availability Zone (AZ) \n that the public NAT gateway is in. If it's not the same, the NAT gateway will fail to launch. \n You can see the network border group for the subnet's AZ by viewing the details of the subnet. \n Similarly, you can view the network border group of an EIP by viewing the details of the EIP address. \n For more information about network border groups and EIPs, see Allocate an Elastic IP address \n in the Amazon VPC User Guide. \n

\n
", + "smithy.api#examples": [ + { + "title": "To create a NAT gateway", + "documentation": "This example creates a NAT gateway in subnet subnet-1a2b3c4d and associates an Elastic IP address with the allocation ID eipalloc-37fc1a52 with the NAT gateway.", + "input": { + "SubnetId": "subnet-1a2b3c4d", + "AllocationId": "eipalloc-37fc1a52" + }, + "output": { + "NatGateway": { + "NatGatewayAddresses": [ + { + "AllocationId": "eipalloc-37fc1a52" + } + ], + "VpcId": "vpc-1122aabb", + "State": "pending", + "NatGatewayId": "nat-08d48af2a8e83edfd", + "SubnetId": "subnet-1a2b3c4d", + "CreateTime": "2015-12-17T12:45:26.732Z" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateNatGatewayRequest": { + "type": "structure", + "members": { + "AvailabilityMode": { + "target": "com.amazonaws.ec2#AvailabilityMode", + "traits": { + "smithy.api#documentation": "

Specifies whether to create a zonal (single-AZ) or regional (multi-AZ) NAT gateway. Defaults to zonal.

\n

A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

" + } + }, + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#documentation": "

[Public NAT gateways only] The allocation ID of an Elastic IP address to associate \n with the NAT gateway. You cannot specify an Elastic IP address with a private NAT gateway.\n If the Elastic IP address is associated with another resource, you must first disassociate it.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n\t\t\trequest. For more information, see Ensuring idempotency.

\n

Constraint: Maximum 64 ASCII characters.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet in which to create the NAT gateway.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC where you want to create a regional NAT gateway.

" + } + }, + "AvailabilityZoneAddresses": { + "target": "com.amazonaws.ec2#AvailabilityZoneAddresses", + "traits": { + "smithy.api#documentation": "

For regional NAT gateways only: Specifies which Availability Zones you want the NAT gateway to support and the Elastic IP addresses (EIPs) to use in each AZ. The regional NAT gateway uses these EIPs to handle outbound NAT traffic from their respective AZs. If not specified, the NAT gateway will automatically expand to new AZs and associate EIPs upon detection of an elastic network interface. If you specify this parameter, auto-expansion is disabled and you must manually manage AZ coverage.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "AvailabilityZoneAddress" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the NAT gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ConnectivityType": { + "target": "com.amazonaws.ec2#ConnectivityType", + "traits": { + "smithy.api#documentation": "

Indicates whether the NAT gateway supports public or private connectivity. \n The default is public connectivity.

" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.

" + } + }, + "SecondaryAllocationIds": { + "target": "com.amazonaws.ec2#AllocationIdList", + "traits": { + "smithy.api#documentation": "

Secondary EIP allocation IDs. For more information, see Create a NAT gateway \n in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "SecondaryAllocationId" + } + }, + "SecondaryPrivateIpAddresses": { + "target": "com.amazonaws.ec2#IpList", + "traits": { + "smithy.api#documentation": "

Secondary private IPv4 addresses. For more information about secondary addresses, see \n Create a NAT gateway in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "SecondaryPrivateIpAddress" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#PrivateIpAddressCount", + "traits": { + "smithy.api#documentation": "

[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. \n For more information about secondary addresses, see Create a NAT gateway \n in the Amazon VPC User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNatGatewayResult": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + }, + "NatGateway": { + "target": "com.amazonaws.ec2#NatGateway", + "traits": { + "aws.protocols#ec2QueryName": "NatGateway", + "smithy.api#documentation": "

Information about the NAT gateway.

", + "smithy.api#xmlName": "natGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNetworkAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkAclRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNetworkAclResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

\n

For more information, see Network ACLs in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a network ACL", + "documentation": "This example creates a network ACL for the specified VPC.", + "input": { + "VpcId": "vpc-a01106c2" + }, + "output": { + "NetworkAcl": { + "Associations": [], + "NetworkAclId": "acl-5fb85d36", + "VpcId": "vpc-a01106c2", + "Tags": [], + "Entries": [ + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": true, + "RuleAction": "deny" + }, + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": false, + "RuleAction": "deny" + } + ], + "IsDefault": false + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateNetworkAclEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkAclEntryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules \n\t\t and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated \n\t\t with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of \n\t\t ingress rules and a separate set of egress rules.

\n

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the \n\t\t other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

\n

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

\n

For more information about network ACLs, see Network ACLs \n in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a network ACL entry", + "documentation": "This example creates an entry for the specified network ACL. The rule allows ingress traffic from anywhere (0.0.0.0/0) on UDP port 53 (DNS) into any associated subnet.", + "input": { + "NetworkAclId": "acl-5fb85d36", + "RuleNumber": 100, + "Protocol": "17", + "RuleAction": "allow", + "Egress": false, + "CidrBlock": "0.0.0.0/0", + "PortRange": { + "From": 53, + "To": 53 + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateNetworkAclEntryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network ACL.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkAclId" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.

\n

Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ruleNumber" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The protocol number. A value of \"-1\" means all protocols. If you specify \"-1\" or a\n \t\t\tprotocol number other than \"6\" (TCP), \"17\" (UDP), or \"1\" (ICMP), traffic on all ports is \n\t\t\tallowed, regardless of any ports or ICMP types or codes that you specify. If you specify \n\t\t\tprotocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and \n\t\t\tcodes allowed, regardless of any that you specify. If you specify protocol \"58\" (ICMPv6) \n\t\t\tand specify an IPv6 CIDR block, you must specify an ICMP type and code.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "protocol" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#RuleAction", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ruleAction" + } + }, + "Egress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Egress", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", + "smithy.api#required": {}, + "smithy.api#xmlName": "egress" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 network range to allow or deny, in CIDR notation (for example\n\t\t 172.16.0.0/24). We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 network range to allow or deny, in CIDR notation (for example\n 2001:db8:1234:1a00::/64).

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + }, + "IcmpTypeCode": { + "target": "com.amazonaws.ec2#IcmpTypeCode", + "traits": { + "smithy.api#documentation": "

ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol \n\t\t 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.

", + "smithy.api#xmlName": "Icmp" + } + }, + "PortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "PortRange", + "smithy.api#documentation": "

TCP or UDP protocols: The range of ports the rule applies to.\n\t\t Required if specifying protocol 6 (TCP) or 17 (UDP).

", + "smithy.api#xmlName": "portRange" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkAclRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the network ACL.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkAclResult": { + "type": "structure", + "members": { + "NetworkAcl": { + "target": "com.amazonaws.ec2#NetworkAcl", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAcl", + "smithy.api#documentation": "

Information about the network ACL.

", + "smithy.api#xmlName": "networkAcl" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsAccessScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Network Access Scope.

\n

Amazon Web Services Network Access Analyzer enables cloud networking and cloud operations teams \n to verify that their networks on Amazon Web Services conform to their network security and governance \n objectives. For more information, see the Amazon Web Services Network Access Analyzer Guide.

" + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeRequest": { + "type": "structure", + "members": { + "MatchPaths": { + "target": "com.amazonaws.ec2#AccessScopePathListRequest", + "traits": { + "smithy.api#documentation": "

The paths to match.

", + "smithy.api#xmlName": "MatchPath" + } + }, + "ExcludePaths": { + "target": "com.amazonaws.ec2#AccessScopePathListRequest", + "traits": { + "smithy.api#documentation": "

The paths to exclude.

", + "smithy.api#xmlName": "ExcludePath" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, \n see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsAccessScopeResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScope": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScope", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScope", + "smithy.api#documentation": "

The Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScope" + } + }, + "NetworkInsightsAccessScopeContent": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeContent", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeContent", + "smithy.api#documentation": "

The Network Access Scope content.

", + "smithy.api#xmlName": "networkInsightsAccessScopeContent" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsPath": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkInsightsPathRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNetworkInsightsPathResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a path to analyze for reachability.

\n

Reachability Analyzer enables you to analyze and debug network reachability between\n two resources in your virtual private cloud (VPC). For more information, see the \n Reachability Analyzer Guide.

" + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsPathRequest": { + "type": "structure", + "members": { + "SourceIp": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "smithy.api#documentation": "

The IP address of the source.

" + } + }, + "DestinationIp": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "smithy.api#documentation": "

The IP address of the destination.

" + } + }, + "Source": { + "target": "com.amazonaws.ec2#NetworkInsightsResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID or ARN of the source. If the resource is in another account, you must specify an ARN.

", + "smithy.api#required": {} + } + }, + "Destination": { + "target": "com.amazonaws.ec2#NetworkInsightsResourceId", + "traits": { + "smithy.api#documentation": "

The ID or ARN of the destination. If the resource is in another account, you must specify an ARN.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#Protocol", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The protocol.

", + "smithy.api#required": {} + } + }, + "DestinationPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "smithy.api#documentation": "

The destination port.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to add to the path.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, \n see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "FilterAtSource": { + "target": "com.amazonaws.ec2#PathRequestFilter", + "traits": { + "smithy.api#documentation": "

Scopes the analysis to network paths that match specific filters at the source. If you specify\n this parameter, you can't specify the parameters for the source IP address or the destination port.

" + } + }, + "FilterAtDestination": { + "target": "com.amazonaws.ec2#PathRequestFilter", + "traits": { + "smithy.api#documentation": "

Scopes the analysis to network paths that match specific filters at the destination. If you specify\n this parameter, you can't specify the parameter for the destination IP address.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInsightsPathResult": { + "type": "structure", + "members": { + "NetworkInsightsPath": { + "target": "com.amazonaws.ec2#NetworkInsightsPath", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPath", + "smithy.api#documentation": "

Information about the path.

", + "smithy.api#xmlName": "networkInsightsPath" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNetworkInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a network interface in the specified subnet.

\n

The number of IP addresses you can assign to a network interface varies by instance\n type.

\n

For more information about network interfaces, see Elastic network interfaces in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateNetworkInterfacePermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateNetworkInterfacePermissionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateNetworkInterfacePermissionResult" + }, + "traits": { + "smithy.api#documentation": "

Grants an Amazon Web Services-authorized account permission to attach the specified\n network interface to an instance in their account.

\n

You can grant permission to a single Amazon Web Services account only, and only one\n account at a time.

" + } + }, + "com.amazonaws.ec2#CreateNetworkInterfacePermissionRequest": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {} + } + }, + "AwsAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID.

" + } + }, + "AwsService": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service. Currently not supported.

" + } + }, + "Permission": { + "target": "com.amazonaws.ec2#InterfacePermissionType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of permission to grant.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateNetworkInterfacePermission.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInterfacePermissionResult": { + "type": "structure", + "members": { + "InterfacePermission": { + "target": "com.amazonaws.ec2#NetworkInterfacePermission", + "traits": { + "aws.protocols#ec2QueryName": "InterfacePermission", + "smithy.api#documentation": "

Information about the permission for the network interface.

", + "smithy.api#xmlName": "interfacePermission" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateNetworkInterfacePermission.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInterfaceRequest": { + "type": "structure", + "members": { + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixList", + "traits": { + "smithy.api#documentation": "

The IPv4 prefixes assigned to the network interface.

\n

You can't specify IPv4 prefixes if you've specified one of the following: a count of\n IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4\n addresses.

", + "smithy.api#xmlName": "Ipv4Prefix" + } + }, + "Ipv4PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv4 prefixes that Amazon Web Services automatically assigns to the\n network interface.

\n

You can't specify a count of IPv4 prefixes if you've specified one of the following:\n specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4\n addresses.

" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#Ipv6PrefixList", + "traits": { + "smithy.api#documentation": "

The IPv6 prefixes assigned to the network interface.

\n

You can't specify IPv6 prefixes if you've specified one of the following: a count of\n IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

", + "smithy.api#xmlName": "Ipv6Prefix" + } + }, + "Ipv6PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 prefixes that Amazon Web Services automatically assigns to the\n network interface.

\n

You can't specify a count of IPv6 prefixes if you've specified one of the following:\n specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#NetworkInterfaceCreationType", + "traits": { + "smithy.api#documentation": "

The type of network interface. The default is interface.

\n

If you specify efa-only, do not assign any IP addresses to the network\n interface. EFA-only network interfaces do not support IP addresses.

\n

The only supported values are interface, efa,\n efa-only, and trunk.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new network interface.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "EnablePrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have\n the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA\n address associated with an ENI that you have enabled to use a primary IPv6 address. Use\n this option if the instance that this ENI will be attached to relies on its IPv6 address\n not changing. Amazon Web Services will automatically assign an IPv6 address associated\n with the ENI attached to your instance to be the primary IPv6 address. Once you enable\n an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6\n GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6\n address until the instance is terminated or the network interface is detached. If you\n have multiple IPv6 addresses associated with an ENI attached to your instance and you\n enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI\n becomes the primary IPv6 address.

" + } + }, + "ConnectionTrackingSpecification": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecificationRequest", + "traits": { + "smithy.api#documentation": "

A connection tracking specification for the network interface.

" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet to associate with the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "subnetId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the network interface.

", + "smithy.api#xmlName": "description" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The primary private IPv4 address of the network interface. If you don't specify an\n IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you\n specify an IP address, you cannot indicate any IP addresses specified in\n privateIpAddresses as primary (only one IP address can be designated as\n primary).

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddresses", + "smithy.api#documentation": "

The private IPv4 addresses.

\n

You can't specify private IPv4 addresses if you've specified one of the following: a\n count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4\n prefixes.

", + "smithy.api#xmlName": "privateIpAddresses" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount", + "smithy.api#documentation": "

The number of secondary private IPv4 addresses to assign to a network interface. When\n you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses\n within the subnet's IPv4 CIDR range. You can't specify this option and specify more than\n one private IP address using privateIpAddresses.

\n

You can't specify a count of private IPv4 addresses if you've specified one of the\n following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4\n prefixes.

", + "smithy.api#xmlName": "secondaryPrivateIpAddressCount" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Addresses", + "smithy.api#documentation": "

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

\n

You can't specify IPv6 addresses using this parameter if you've specified one of the\n following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6\n prefixes.

", + "smithy.api#xmlName": "ipv6Addresses" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressCount", + "smithy.api#documentation": "

The number of IPv6 addresses to assign to a network interface. Amazon EC2\n automatically selects the IPv6 addresses from the subnet range.

\n

You can't specify a count of IPv6 addresses using this parameter if you've specified\n one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of\n IPv6 prefixes.

\n

If your subnet has the AssignIpv6AddressOnCreation attribute set, you can\n override that setting by specifying 0 as the IPv6 address count.

", + "smithy.api#xmlName": "ipv6AddressCount" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateNetworkInterfaceResult": { + "type": "structure", + "members": { + "NetworkInterface": { + "target": "com.amazonaws.ec2#NetworkInterface", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterface", + "smithy.api#documentation": "

Information about the network interface.

", + "smithy.api#xmlName": "networkInterface" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreatePlacementGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreatePlacementGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreatePlacementGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a placement group in which to launch instances. The strategy of the placement\n group determines how the instances are organized within the group.

\n

A cluster placement group is a logical grouping of instances within a\n single Availability Zone that benefit from low network latency, high network throughput.\n A spread placement group places instances on distinct hardware. A\n partition placement group places groups of instances in different\n partitions, where instances in one partition do not share the same hardware with\n instances in another partition. A precision-time placement group places\n instances on supported hardware with direct access to high-precision time sources in\n Amazon Web Services infrastructure.

\n

For more information, see Placement groups in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a placement group", + "documentation": "This example creates a placement group with the specified name.", + "input": { + "GroupName": "my-cluster", + "Strategy": "cluster" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#CreatePlacementGroupRequest": { + "type": "structure", + "members": { + "PartitionCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of partitions. Valid only when Strategy is\n set to partition.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the new placement group.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "SpreadLevel": { + "target": "com.amazonaws.ec2#SpreadLevel", + "traits": { + "smithy.api#documentation": "

Determines how placement groups spread instances.

\n
    \n
  • \n

    Host – You can use host only with Outpost placement\n groups.

    \n
  • \n
  • \n

    Rack – No usage restrictions.

    \n
  • \n
" + } + }, + "LinkedGroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "ParentGroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "smithy.api#documentation": "

The ID of a parent placement group. Valid only when Strategy\n is set to cluster.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

A name for the placement group. Must be unique within the scope of your account for\n the Region.

\n

Constraints: Up to 255 ASCII characters

", + "smithy.api#xmlName": "groupName" + } + }, + "Strategy": { + "target": "com.amazonaws.ec2#PlacementStrategy", + "traits": { + "aws.protocols#ec2QueryName": "Strategy", + "smithy.api#documentation": "

The placement strategy.

", + "smithy.api#xmlName": "strategy" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreatePlacementGroupResult": { + "type": "structure", + "members": { + "PlacementGroup": { + "target": "com.amazonaws.ec2#PlacementGroup", + "traits": { + "aws.protocols#ec2QueryName": "PlacementGroup", + "smithy.api#documentation": "

Information about the placement group.

", + "smithy.api#xmlName": "placementGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreatePublicIpv4Pool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreatePublicIpv4PoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreatePublicIpv4PoolResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP address pool required for the public IPv4 CIDRs that you own and bring to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to Amazon Web Services, however, use IPAM pools only. To monitor the status of pool creation, use DescribePublicIpv4Pools.

" + } + }, + "com.amazonaws.ec2#CreatePublicIpv4PoolRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) or Local Zone (LZ) network border group that the resource that the IP address is assigned to is in. Defaults to an AZ network border group. For more information on available Local Zones, see Local Zone availability in the Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreatePublicIpv4PoolResult": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the public IPv4 pool.

", + "smithy.api#xmlName": "poolId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateReplaceRootVolumeTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateReplaceRootVolumeTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateReplaceRootVolumeTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Replaces the EBS-backed root volume for a running instance with a new \n volume that is restored to the original root volume's launch state, that is restored to a \n specific snapshot taken from the original root volume, that is restored from an AMI \n that has the same key characteristics as that of the instance, or that is replaced by \n a specified volume.

\n

For more information, see Replace a root volume in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateReplaceRootVolumeTaskRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance for which to replace the root volume.

", + "smithy.api#required": {} + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The ID of the snapshot from which to restore the replacement root volume. The \n specified snapshot must be a snapshot that you previously created from the original \n root volume.

\n

If you want to restore the replacement root volume to the initial launch state, \n if you want to restore the replacement root volume from an AMI, or if you want to \n replace the root volume with a specified volume, omit this parameter.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. \n If you do not specify a client token, a randomly generated token is used for the request \n to ensure idempotency. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the root volume replacement task.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#documentation": "

The ID of the AMI to use to restore the root volume. The specified AMI must have the \n same product code, billing information, architecture type, and virtualization type as \n that of the instance.

\n

If you want to restore the replacement volume from a specific snapshot, if you want \n to restore it to its launch state, or if you want to replace the root volume with a \n specified volume, omit this parameter.

" + } + }, + "DeleteReplacedRootVolume": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to automatically delete the original root volume after the root volume \n replacement task completes. To delete the original root volume, specify true. \n If you choose to keep the original root volume after the replacement task completes, you must \n manually delete it when you no longer need it.

" + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download \n the snapshot blocks from Amazon S3 to the replacement root volume. This is also known as \n volume initialization. Specifying a volume initialization rate ensures that \n the volume is initialized at a predictable and consistent rate after creation.

\n

Omit this parameter if:

\n
    \n
  • \n

    You want to create the volume using fast snapshot restore. You must specify a snapshot \n that is enabled for fast snapshot restore. In this case, the volume is fully initialized at \n creation.

    \n \n

    If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, \n the volume will be initialized at the specified rate instead of fast snapshot restore.

    \n
    \n
  • \n
  • \n

    You want to create a volume that is initialized at the default rate.

    \n
  • \n
\n

For more information, see \n Initialize Amazon EBS volumes in the Amazon EC2 User Guide.

\n

Valid range: 100 - 300 MiB/s

" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#documentation": "

The ID of the volume to use as the replacement root volume. The specified volume must \n be in the same Availability Zone as the instance, must be in the available\n state, and must not be attached to an instance. If the original root volume is encrypted,\n the specified volume must also be encrypted.

\n

If you want to restore the replacement root volume from a specific snapshot, an AMI, \n or to its launch state, omit this parameter.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateReplaceRootVolumeTaskResult": { + "type": "structure", + "members": { + "ReplaceRootVolumeTask": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTask", + "traits": { + "aws.protocols#ec2QueryName": "ReplaceRootVolumeTask", + "smithy.api#documentation": "

Information about the root volume replacement task.

", + "smithy.api#xmlName": "replaceRootVolumeTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateReservedInstancesListing": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateReservedInstancesListingRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateReservedInstancesListingResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved\n Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get\n a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation.

\n \n

Only Standard Reserved Instances can be sold in the Reserved Instance Marketplace.\n Convertible Reserved Instances cannot be sold.

\n
\n

The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved\n Instance capacity that they no longer need with buyers who want to purchase additional\n capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work\n like any other Reserved Instances.

\n

To sell your Standard Reserved Instances, you must first register as a seller in the\n Reserved Instance Marketplace. After completing the registration process, you can create a\n Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and\n specify the upfront price to receive for them. Your Standard Reserved Instance listings then\n become available for purchase. To view the details of your Standard Reserved Instance listing,\n you can use the DescribeReservedInstancesListings operation.

\n

For more information, see Sell in the Reserved Instance\n Marketplace in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateReservedInstancesListingRequest": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#ReservationId", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the active Standard Reserved Instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "reservedInstancesId" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances that are a part of a Reserved Instance account to be listed in the\n Reserved Instance Marketplace. This number should be less than or equal to the instance count\n associated with the Reserved Instance ID specified in this call.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceCount" + } + }, + "PriceSchedules": { + "target": "com.amazonaws.ec2#PriceScheduleSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "PriceSchedules", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list specifying the price of the Standard Reserved Instance for each month remaining in\n the Reserved Instance term.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "priceSchedules" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This\n helps avoid duplicate listings. For more information, see Ensuring\n Idempotency.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateReservedInstancesListing.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateReservedInstancesListingResult": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "target": "com.amazonaws.ec2#ReservedInstancesListingList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingsSet", + "smithy.api#documentation": "

Information about the Standard Reserved Instance listing.

", + "smithy.api#xmlName": "reservedInstancesListingsSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateReservedInstancesListing.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRestoreImageTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRestoreImageTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRestoreImageTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Starts a task that restores an AMI from an Amazon S3 object that was previously created by\n using CreateStoreImageTask.

\n

To use this API, you must have the required permissions. For more information, see Permissions for storing and restoring AMIs using S3 in the\n Amazon EC2 User Guide.

\n

For more information, see Store and restore an AMI using\n S3 in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateRestoreImageTaskRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon S3 bucket that contains the stored AMI object.

", + "smithy.api#required": {} + } + }, + "ObjectKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the stored AMI object in the bucket.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.ec2#ImageNameRequest", + "traits": { + "smithy.api#documentation": "

The name for the restored AMI. The name must be unique for AMIs in the Region for this\n account. If you do not provide a name, the new AMI gets the same name as the original\n AMI.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the AMI and snapshots on restoration. You can tag the AMI, the\n snapshots, or both.

\n
    \n
  • \n

    To tag the AMI, the value for ResourceType must be\n image.

    \n
  • \n
  • \n

    To tag the snapshots, the value for ResourceType must be\n snapshot. The same tag is applied to all of the snapshots that are\n created.

    \n
  • \n
", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRestoreImageTaskResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The AMI ID.

", + "smithy.api#xmlName": "imageId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a route in a route table within a VPC.

\n

You must specify either a destination CIDR block or a prefix list ID. You must also specify \n exactly one of the resources from the parameter list.

\n

When determining how to route traffic, we use the route with the most specific match.\n For example, traffic is destined for the IPv4 address 192.0.2.3, and the\n route table includes the following two IPv4 routes:

\n
    \n
  • \n

    \n 192.0.2.0/24 (goes to some target A)

    \n
  • \n
  • \n

    \n 192.0.2.0/28 (goes to some target B)

    \n
  • \n
\n

Both routes apply to the traffic destined for 192.0.2.3. However, the second route\n\t\t\t\tin the list covers a smaller number of IP addresses and is therefore more specific,\n\t\t\t\tso we use that route to determine where to target the traffic.

\n

For more information about route tables, see Route tables in the\n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a route", + "documentation": "This example creates a route for the specified route table. The route matches all traffic (0.0.0.0/0) and routes it to the specified Internet gateway.", + "input": { + "RouteTableId": "rtb-22574640", + "DestinationCidrBlock": "0.0.0.0/0", + "GatewayId": "igw-c0a643a9" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateRouteRequest": { + "type": "structure", + "members": { + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

The ID of a prefix list used for the destination match.

" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#documentation": "

The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.

" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of a transit gateway.

" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the local gateway.

" + } + }, + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#CarrierGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the carrier gateway.

\n

You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.

" + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.ec2#CoreNetworkArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the core network.

" + } + }, + "OdbNetworkArn": { + "target": "com.amazonaws.ec2#OdbNetworkArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ODB network.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table for the route.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "GatewayId": { + "target": "com.amazonaws.ec2#RouteGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of an internet gateway or virtual private gateway attached to your\n\t\t\tVPC.

", + "smithy.api#xmlName": "gatewayId" + } + }, + "DestinationIpv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationIpv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.

", + "smithy.api#xmlName": "destinationIpv6CidrBlock" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewayId", + "smithy.api#documentation": "

[IPv6 traffic only] The ID of an egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGatewayId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", + "smithy.api#xmlName": "instanceId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of a network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of a VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

[IPv4 traffic only] The ID of a NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRouteResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRouteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRouteServerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRouteServerResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a new route server to manage dynamic routing in a VPC.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateRouteServerEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRouteServerEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRouteServerEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a new endpoint for a route server in a specified subnet.

\n

A route server endpoint is an Amazon Web Services-managed component inside a subnet that facilitates BGP (Border Gateway Protocol) connections between your route server and your BGP peers.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateRouteServerEndpointRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to create an endpoint.

", + "smithy.api#required": {} + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet in which to create the route server endpoint.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the route server endpoint during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRouteServerEndpointResult": { + "type": "structure", + "members": { + "RouteServerEndpoint": { + "target": "com.amazonaws.ec2#RouteServerEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpoint", + "smithy.api#documentation": "

Information about the created route server endpoint.

", + "smithy.api#xmlName": "routeServerEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRouteServerPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRouteServerPeerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRouteServerPeerResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a new BGP peer for a specified route server endpoint.

\n

A route server peer is a session between a route server endpoint and the device deployed in Amazon Web Services (such as a firewall appliance or other network security function running on an EC2 instance). The device must meet these requirements:

\n
    \n
  • \n

    Have an elastic network interface in the VPC

    \n
  • \n
  • \n

    Support BGP (Border Gateway Protocol)

    \n
  • \n
  • \n

    Can initiate BGP sessions

    \n
  • \n
\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateRouteServerPeerRequest": { + "type": "structure", + "members": { + "RouteServerEndpointId": { + "target": "com.amazonaws.ec2#RouteServerEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server endpoint for which to create a peer.

", + "smithy.api#required": {} + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 address of the peer device.

", + "smithy.api#required": {} + } + }, + "BgpOptions": { + "target": "com.amazonaws.ec2#RouteServerBgpOptionsRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The BGP options for the peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the route server peer during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRouteServerPeerResult": { + "type": "structure", + "members": { + "RouteServerPeer": { + "target": "com.amazonaws.ec2#RouteServerPeer", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPeer", + "smithy.api#documentation": "

Information about the created route server peer.

", + "smithy.api#xmlName": "routeServerPeer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRouteServerRequest": { + "type": "structure", + "members": { + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The private Autonomous System Number (ASN) for the Amazon side of the BGP session. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PersistRoutes": { + "target": "com.amazonaws.ec2#RouteServerPersistRoutesAction", + "traits": { + "smithy.api#documentation": "

Indicates whether routes should be persisted after all BGP sessions are terminated.

" + } + }, + "PersistRoutesDuration": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "smithy.api#documentation": "

The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. Required if PersistRoutes is enabled.

\n

If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.

" + } + }, + "SnsNotificationsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether SNS notifications should be enabled for route server events. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by Amazon Web Services.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the route server during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRouteServerResult": { + "type": "structure", + "members": { + "RouteServer": { + "target": "com.amazonaws.ec2#RouteServer", + "traits": { + "aws.protocols#ec2QueryName": "RouteServer", + "smithy.api#documentation": "

Information about the created route server.

", + "smithy.api#xmlName": "routeServer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

\n

For more information, see Route tables in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a route table", + "documentation": "This example creates a route table for the specified VPC.", + "input": { + "VpcId": "vpc-a01106c2" + }, + "output": { + "RouteTable": { + "Associations": [], + "RouteTableId": "rtb-22574640", + "VpcId": "vpc-a01106c2", + "PropagatingVgws": [], + "Tags": [], + "Routes": [ + { + "GatewayId": "local", + "DestinationCidrBlock": "10.0.0.0/16", + "State": "active" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateRouteTableRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the route table.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateRouteTableResult": { + "type": "structure", + "members": { + "RouteTable": { + "target": "com.amazonaws.ec2#RouteTable", + "traits": { + "aws.protocols#ec2QueryName": "RouteTable", + "smithy.api#documentation": "

Information about the route table.

", + "smithy.api#xmlName": "routeTable" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSecondaryNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSecondaryNetworkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSecondaryNetworkResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a secondary network.

\n

The allowed size for a secondary network CIDR block is between /28 netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses).

", + "smithy.api#examples": [ + { + "title": "To create a secondary network", + "documentation": "This example creates a rdma secondary network with a /16 CIDR block.", + "input": { + "Ipv4CidrBlock": "10.0.0.0/16", + "NetworkType": "rdma", + "ClientToken": "550e8400-e29b-41d4-a716-446655440000", + "TagSpecifications": [ + { + "ResourceType": "secondary-network", + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Network" + } + ] + } + ] + }, + "output": { + "SecondaryNetwork": { + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkArn": "arn:aws:ec2:us-east-2:123456789012:secondary-network/sn-0123456789abcdef0", + "OwnerId": "123456789012", + "Type": "rdma", + "State": "create-in-progress", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "sn-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/16", + "State": "associating" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Network" + } + ] + }, + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSecondaryNetworkRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Ipv4CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 CIDR block for the secondary network. The CIDR block size must be between /12 and /28.

", + "smithy.api#required": {} + } + }, + "NetworkType": { + "target": "com.amazonaws.ec2#SecondaryNetworkType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of secondary network.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the secondary network.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSecondaryNetworkResult": { + "type": "structure", + "members": { + "SecondaryNetwork": { + "target": "com.amazonaws.ec2#SecondaryNetwork", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetwork", + "smithy.api#documentation": "

Information about the secondary network.

", + "smithy.api#xmlName": "secondaryNetwork" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSecondarySubnet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSecondarySubnetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSecondarySubnetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a secondary subnet in a secondary network.

\n

A secondary subnet CIDR block must not overlap with the CIDR block of an existing secondary subnet in the secondary network. After you create a secondary subnet, you can't change its CIDR block.

\n

The allowed size for a secondary subnet CIDR block is between /28 netmask (16 IP addresses) and /12 netmask (1,048,576 IP addresses). Amazon reserves the first four IP addresses and the last IP address in each secondary subnet for internal use.

", + "smithy.api#examples": [ + { + "title": "To create a secondary subnet", + "documentation": "This example creates a secondary subnet with a /24 CIDR block in the specified secondary network and Availability Zone.", + "input": { + "SecondaryNetworkId": "sn-0123456789abcdef0", + "Ipv4CidrBlock": "10.0.0.0/24", + "AvailabilityZoneId": "use2-az1", + "ClientToken": "550e8400-e29b-41d4-a716-446655440000", + "TagSpecifications": [ + { + "ResourceType": "secondary-subnet", + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Subnet" + }, + { + "Key": "Environment", + "Value": "Production" + } + ] + } + ] + }, + "output": { + "SecondarySubnet": { + "SecondarySubnetId": "ss-0123456789abcdef0", + "SecondarySubnetArn": "arn:aws:ec2:us-east-2:123456789012:secondary-subnet/ss-0123456789abcdef0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "OwnerId": "123456789012", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "ss-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/24", + "State": "associating" + } + ], + "State": "create-in-progress", + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Subnet" + }, + { + "Key": "Environment", + "Value": "Production" + } + ] + }, + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSecondarySubnetRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The Availability Zone for the secondary subnet. You cannot specify both AvailabilityZone and AvailabilityZoneId in the same request.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone for the secondary subnet. This option is preferred over AvailabilityZone as it provides a consistent identifier across Amazon Web Services accounts. You cannot specify both AvailabilityZone and AvailabilityZoneId in the same request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Ipv4CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 CIDR block for the secondary subnet. The CIDR block size must be between /12 and /28.

", + "smithy.api#required": {} + } + }, + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the secondary network in which to create the secondary subnet.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the secondary subnet.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSecondarySubnetResult": { + "type": "structure", + "members": { + "SecondarySubnet": { + "target": "com.amazonaws.ec2#SecondarySubnet", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnet", + "smithy.api#documentation": "

Information about the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnet" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSecurityGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSecurityGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSecurityGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a security group.

\n

A security group acts as a virtual firewall for your instance to control inbound and outbound traffic.\n For more information, see\n\t\t\t\tAmazon EC2 security groups in \n\t\t\t\tthe Amazon EC2 User Guide and \n\t\t\t\tSecurity groups for your VPC in the\n\t\t\t\tAmazon VPC User Guide.

\n

When you create a security group, you specify a friendly name of your choice. \n You can't have two security groups for the same VPC with the same name.

\n

You have a default security group for use in your VPC. If you don't specify a security group \n when you launch an instance, the instance is launched into the appropriate default security group. \n A default security group includes a default rule that grants instances unrestricted network access \n to each other.

\n

You can add or remove rules from your security groups using \n\t\t\t\t\tAuthorizeSecurityGroupIngress,\n\t\t\t\t\tAuthorizeSecurityGroupEgress,\n\t\t\t\t\tRevokeSecurityGroupIngress, and\n\t\t\t\t\tRevokeSecurityGroupEgress.

\n

For more information about VPC security group limits, see Amazon VPC Limits.

", + "smithy.api#examples": [ + { + "title": "To create a security group for a VPC", + "documentation": "This example creates a security group for the specified VPC.", + "input": { + "Description": "My security group", + "GroupName": "my-security-group", + "VpcId": "vpc-1a2b3c4d" + }, + "output": { + "GroupId": "sg-903004f8" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSecurityGroupRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A description for the security group.

\n

Constraints: Up to 255 characters in length

\n

Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "smithy.api#required": {}, + "smithy.api#xmlName": "GroupDescription" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the security group. Names are case-insensitive and must be unique within the VPC.

\n

Constraints: Up to 255 characters in length. Can't start with sg-.

\n

Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC. Required for a nondefault VPC.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the security group.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSecurityGroupResult": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the security group.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SecurityGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupArn", + "smithy.api#documentation": "

The security group ARN.

", + "smithy.api#xmlName": "securityGroupArn" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#Snapshot" + }, + "traits": { + "smithy.api#documentation": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for\n \tbackups, to make copies of EBS volumes, and to save data before shutting down an\n \tinstance.

\n

The location of the source EBS volume determines where you can create the snapshot.

\n
    \n
  • \n

    If the source volume is in a Region, you must create the snapshot in the same \n Region as the volume.

    \n
  • \n
  • \n

    If the source volume is in a Local Zone, you can create the snapshot in the same Local\n Zone or in its parent Amazon Web Services Region.

    \n
  • \n
  • \n

    If the source volume is on an Outpost, you can create the snapshot on the same \n Outpost or in its parent Amazon Web Services Region.

    \n
  • \n
\n

When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the\n source volume are propagated to the snapshot.

\n

You can take a snapshot of an attached volume that is in use. However, snapshots only\n capture data that has been written to your Amazon EBS volume at the time the snapshot command is\n issued; this might exclude any data that has been cached by any applications or the operating\n system. If you can pause any file systems on the volume long enough to take a snapshot, your\n snapshot should be complete. However, if you cannot pause all file writes to the volume, you\n should unmount the volume from within the instance, issue the snapshot command, and then\n remount the volume to ensure a consistent and complete snapshot. You may remount and use your\n volume while the snapshot status is pending.

\n

When you create a snapshot for an EBS volume that serves as a root device, we recommend \n that you stop the instance before taking the snapshot.

\n

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that\n are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes\n and any associated snapshots always remain protected. For more information, see Amazon EBS encryption\n in the Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a snapshot", + "documentation": "This example creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot.", + "input": { + "VolumeId": "vol-1234567890abcdef0", + "Description": "This is my root volume snapshot." + }, + "output": { + "Description": "This is my root volume snapshot.", + "Tags": [], + "VolumeId": "vol-1234567890abcdef0", + "State": "pending", + "VolumeSize": 8, + "StartTime": "2014-02-28T21:06:01.000Z", + "OwnerId": "012345678910", + "SnapshotId": "snap-066877671789bd71b" + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSnapshotRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the snapshot.

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "\n

Only supported for volumes on Outposts. If the source volume is not on an Outpost, \n omit this parameter.

\n
\n
    \n
  • \n

    To create the snapshot on the same Outpost as the source volume, specify the \n ARN of that Outpost. The snapshot must be created on the same Outpost as the volume.

    \n
  • \n
  • \n

    To create the snapshot in the parent Region of the Outpost, omit this parameter.

    \n
  • \n
\n

For more information, see Create local snapshots from volumes on an Outpost in the Amazon EBS User Guide.

" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon EBS volume.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the snapshot during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "Location": { + "target": "com.amazonaws.ec2#SnapshotLocationEnum", + "traits": { + "smithy.api#documentation": "\n

Only supported for volumes in Local Zones. If the source volume is not in a Local Zone, \n omit this parameter.

\n
\n
    \n
  • \n

    To create a local snapshot in the same Local Zone as the source volume, specify \n local.

    \n
  • \n
  • \n

    To create a regional snapshot in the parent Region of the Local Zone, specify \n regional or omit this parameter.

    \n
  • \n
\n

Default value: regional\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSnapshots": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSnapshotsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSnapshotsResult" + }, + "traits": { + "smithy.api#documentation": "

Creates crash-consistent snapshots of multiple EBS volumes attached to an Amazon EC2 instance.\n Volumes are chosen by specifying an instance. Each volume attached to the specified instance \n will produce one snapshot that is crash-consistent across the instance. You can include all of \n the volumes currently attached to the instance, or you can exclude the root volume or specific \n data (non-root) volumes from the multi-volume snapshot set.

\n

The location of the source instance determines where you can create the snapshots.

\n
    \n
  • \n

    If the source instance is in a Region, you must create the snapshots in the same \n Region as the instance.

    \n
  • \n
  • \n

    If the source instance is in a Local Zone, you can create the snapshots in the same\n Local Zone or in its parent Amazon Web Services Region.

    \n
  • \n
  • \n

    If the source instance is on an Outpost, you can create the snapshots on the same \n Outpost or in its parent Amazon Web Services Region.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#CreateSnapshotsRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description propagated to every snapshot specified by the instance.

" + } + }, + "InstanceSpecification": { + "target": "com.amazonaws.ec2#InstanceSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance to specify which volumes should be included in the snapshots.

", + "smithy.api#required": {} + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "\n

Only supported for instances on Outposts. If the source instance is not on an Outpost, \n omit this parameter.

\n
\n
    \n
  • \n

    To create the snapshots on the same Outpost as the source instance, specify the \n ARN of that Outpost. The snapshots must be created on the same Outpost as the instance.

    \n
  • \n
  • \n

    To create the snapshots in the parent Region of the Outpost, omit this parameter.

    \n
  • \n
\n

For more information, see \n Create local snapshots from volumes on an Outpost in the Amazon EBS User Guide.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to apply to every snapshot specified by the instance.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "CopyTagsFromSource": { + "target": "com.amazonaws.ec2#CopyTagsFromSource", + "traits": { + "smithy.api#documentation": "

Copies the tags from the specified volume to corresponding snapshot.

" + } + }, + "Location": { + "target": "com.amazonaws.ec2#SnapshotLocationEnum", + "traits": { + "smithy.api#documentation": "\n

Only supported for instances in Local Zones. If the source instance is not in a Local Zone, \n omit this parameter.

\n
\n
    \n
  • \n

    To create local snapshots in the same Local Zone as the source instance, specify \n local.

    \n
  • \n
  • \n

    To create regional snapshots in the parent Region of the Local Zone, specify \n regional or omit this parameter.

    \n
  • \n
\n

Default value: regional\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSnapshotsResult": { + "type": "structure", + "members": { + "Snapshots": { + "target": "com.amazonaws.ec2#SnapshotSet", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotSet", + "smithy.api#documentation": "

List of snapshots.

", + "smithy.api#xmlName": "snapshotSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSpotDatafeedSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs.\n You can create one data feed per Amazon Web Services account. For more information, see\n Spot Instance data feed \n in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a Spot Instance datafeed", + "documentation": "This example creates a Spot Instance data feed for your AWS account.", + "input": { + "Bucket": "my-s3-bucket", + "Prefix": "spotdata" + }, + "output": { + "SpotDatafeedSubscription": { + "OwnerId": "123456789012", + "Prefix": "spotdata", + "Bucket": "my-s3-bucket", + "State": "Active" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Bucket", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon S3 bucket in which to store the Spot Instance data feed. For\n more information about bucket names, see Bucket naming rules \n in the Amazon S3 User Guide.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "bucket" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The prefix for the data feed file names.

", + "smithy.api#xmlName": "prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateSpotDatafeedSubscription.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSpotDatafeedSubscriptionResult": { + "type": "structure", + "members": { + "SpotDatafeedSubscription": { + "target": "com.amazonaws.ec2#SpotDatafeedSubscription", + "traits": { + "aws.protocols#ec2QueryName": "SpotDatafeedSubscription", + "smithy.api#documentation": "

The Spot Instance data feed subscription.

", + "smithy.api#xmlName": "spotDatafeedSubscription" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateSpotDatafeedSubscription.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateStoreImageTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateStoreImageTaskRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateStoreImageTaskResult" + }, + "traits": { + "smithy.api#documentation": "

Stores an AMI as a single object in an Amazon S3 bucket.

\n

To use this API, you must have the required permissions. For more information, see Permissions for storing and restoring AMIs using S3 in the\n Amazon EC2 User Guide.

\n

For more information, see Store and restore an AMI using\n S3 in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateStoreImageTaskRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon S3 bucket in which the AMI object will be stored. The bucket must be in\n the Region in which the request is being made. The AMI object appears in the bucket only after\n the upload task has completed.

", + "smithy.api#required": {} + } + }, + "S3ObjectTags": { + "target": "com.amazonaws.ec2#S3ObjectTagList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the AMI object that will be stored in the Amazon S3 bucket.

", + "smithy.api#xmlName": "S3ObjectTag" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateStoreImageTaskResult": { + "type": "structure", + "members": { + "ObjectKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ObjectKey", + "smithy.api#documentation": "

The name of the stored AMI object in the S3 bucket.

", + "smithy.api#xmlName": "objectKey" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSubnet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSubnetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSubnetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4 CIDR block.\n If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead.\n For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both\n an IPv4 CIDR block and an IPv6 CIDR block.

\n

A subnet CIDR block must not overlap the CIDR block of an existing subnet in the VPC.\n After you create a subnet, you can't change its CIDR block.

\n

The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses) and \n a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the first four and \n the last IPv4 address in each subnet's CIDR block. They're not available for your use.

\n

If you've associated an IPv6 CIDR block with your VPC, you can associate an IPv6 CIDR\n block with a subnet when you create it.

\n

If you add more than one subnet to a VPC, they're set up in a star topology with a\n logical router in the middle.

\n

When you stop an instance in a subnet, it retains its private IPv4 address. It's\n therefore possible to have a subnet with no running instances (they're all stopped), but\n no remaining IP addresses available.

\n

For more information, see Subnets in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a subnet", + "documentation": "This example creates a subnet in the specified VPC with the specified CIDR block. We recommend that you let us select an Availability Zone for you.", + "input": { + "VpcId": "vpc-a01106c2", + "CidrBlock": "10.0.1.0/24" + }, + "output": { + "Subnet": { + "VpcId": "vpc-a01106c2", + "CidrBlock": "10.0.1.0/24", + "State": "pending", + "AvailabilityZone": "us-west-2c", + "SubnetId": "subnet-9d4a7b6c", + "AvailableIpAddressCount": 251 + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateSubnetCidrReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateSubnetCidrReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateSubnetCidrReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a subnet CIDR reservation. For more information, see Subnet CIDR reservations \n in the Amazon VPC User Guide and Manage prefixes \n for your network interfaces in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateSubnetCidrReservationRequest": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 or IPV6 CIDR range to reserve.

", + "smithy.api#required": {} + } + }, + "ReservationType": { + "target": "com.amazonaws.ec2#SubnetCidrReservationType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of reservation. The reservation type determines how the reserved IP addresses are \n assigned to resources.

\n
    \n
  • \n

    \n prefix - Amazon Web Services assigns the reserved IP addresses to \n network interfaces.

    \n
  • \n
  • \n

    \n explicit - You assign the reserved IP addresses to network interfaces.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description to assign to the subnet CIDR reservation.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the subnet CIDR reservation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSubnetCidrReservationResult": { + "type": "structure", + "members": { + "SubnetCidrReservation": { + "target": "com.amazonaws.ec2#SubnetCidrReservation", + "traits": { + "aws.protocols#ec2QueryName": "SubnetCidrReservation", + "smithy.api#documentation": "

Information about the created subnet CIDR reservation.

", + "smithy.api#xmlName": "subnetCidrReservation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateSubnetRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the subnet.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone or Local Zone for the subnet.

\n

Default: Amazon Web Services selects one for you. If you create more than one subnet in your VPC, we \n do not necessarily select a different zone for each subnet.

\n

To create a subnet in a Local Zone, set this value to the Local Zone ID, for example\n us-west-2-lax-1a. For information about the Regions that support Local Zones, \n see Available Local Zones.

\n

To create a subnet in an Outpost, set this value to the Availability Zone for the\n Outpost and specify the Outpost ARN.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The AZ ID or the Local Zone ID of the subnet.

" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. \n We modify the specified CIDR block to its canonical form; for example, if you specify \n 100.68.0.18/18, we modify it to 100.68.0.0/18.

\n

This parameter is not supported for an IPv6 only subnet.

" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 network range for the subnet, in CIDR notation. This parameter is required\n for an IPv6 only subnet.

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost. If you specify an Outpost ARN, you must also\n specify the Availability Zone of the Outpost subnet.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "Ipv6Native": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to create an IPv6 only subnet.

" + } + }, + "Ipv4IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

An IPv4 IPAM pool ID for the subnet.

" + } + }, + "Ipv4NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

An IPv4 netmask length for the subnet.

" + } + }, + "Ipv6IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

An IPv6 IPAM pool ID for the subnet.

" + } + }, + "Ipv6NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

An IPv6 netmask length for the subnet.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateSubnetResult": { + "type": "structure", + "members": { + "Subnet": { + "target": "com.amazonaws.ec2#Subnet", + "traits": { + "aws.protocols#ec2QueryName": "Subnet", + "smithy.api#documentation": "

Information about the subnet.

", + "smithy.api#xmlName": "subnet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTagsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Adds or overwrites only the specified tags for the specified Amazon EC2 resource or\n resources. When you specify an existing tag key, the value is overwritten with\n the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and\n optional value. Tag keys must be unique per resource.

\n

For more information about tags, see Tag your Amazon EC2 resources in the\n Amazon Elastic Compute Cloud User Guide. For more information about\n creating IAM policies that control users' access to resources based on tags, see Supported\n resource-level permissions for Amazon EC2 API actions in the Amazon\n Elastic Compute Cloud User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a tag to a resource", + "documentation": "This example adds the tag Stack=production to the specified image, or overwrites an existing tag for the AMI where the tag key is Stack.", + "input": { + "Resources": [ + "ami-78a54011" + ], + "Tags": [ + { + "Key": "Stack", + "Value": "production" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#CreateTagsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Resources": { + "target": "com.amazonaws.ec2#ResourceIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the resources, separated by spaces.

\n

Constraints: Up to 1000 resource IDs. We recommend breaking up this request into smaller batches.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ResourceId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The tags. The value parameter is required, but if you don't want the tag to have a value,\n specify the parameter with no value, and we set the value to an empty string.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilter": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Traffic Mirror filter.

\n

A Traffic Mirror filter is a set of rules that defines the traffic to mirror.

\n

By default, no traffic is mirrored. To mirror traffic, use CreateTrafficMirrorFilterRule \n to add Traffic Mirror rules to the filter. The rules you add define what traffic gets mirrored. \n You can also use ModifyTrafficMirrorFilterNetworkServices to mirror supported network services.

" + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilterRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the Traffic Mirror filter.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to a Traffic Mirror filter.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilterResult": { + "type": "structure", + "members": { + "TrafficMirrorFilter": { + "target": "com.amazonaws.ec2#TrafficMirrorFilter", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilter", + "smithy.api#documentation": "

Information about the Traffic Mirror filter.

", + "smithy.api#xmlName": "trafficMirrorFilter" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilterRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Traffic Mirror filter rule.

\n

A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.

\n

You need the Traffic Mirror filter ID when you create the rule.

" + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the filter that this rule is associated with.

", + "smithy.api#required": {} + } + }, + "TrafficDirection": { + "target": "com.amazonaws.ec2#TrafficDirection", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of traffic.

", + "smithy.api#required": {} + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given\n direction. The rules are processed in ascending order by rule number.

", + "smithy.api#required": {} + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#TrafficMirrorRuleAction", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The action to take on the filtered traffic.

", + "smithy.api#required": {} + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRangeRequest", + "traits": { + "smithy.api#documentation": "

The destination port range.

" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRangeRequest", + "traits": { + "smithy.api#documentation": "

The source port range.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The protocol, for example UDP, to assign to the Traffic Mirror rule.

\n

For information about the protocol value, see Protocol Numbers on the Internet Assigned Numbers Authority (IANA) website.

" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The destination CIDR block to assign to the Traffic Mirror rule.

", + "smithy.api#required": {} + } + }, + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The source CIDR block to assign to the Traffic Mirror rule.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the Traffic Mirror rule.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Traffic Mirroring tags specifications.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleResult": { + "type": "structure", + "members": { + "TrafficMirrorFilterRule": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRule", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterRule", + "smithy.api#documentation": "

The Traffic Mirror rule.

", + "smithy.api#xmlName": "trafficMirrorFilterRule" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorSessionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorSessionResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Traffic Mirror session.

\n

A Traffic Mirror session actively copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a filter, and then assign it\n to the session to define a subset of the traffic to mirror, for example all TCP\n traffic.

\n

The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a different VPC connected via VPC peering or a transit gateway.

\n

By default, no traffic is mirrored. Use CreateTrafficMirrorFilter to\n create filter rules that specify the traffic to mirror.

" + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorSessionRequest": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the source network interface.

", + "smithy.api#required": {} + } + }, + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror target.

", + "smithy.api#required": {} + } + }, + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#required": {} + } + }, + "PacketLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of bytes in each packet to mirror. These are bytes after the VXLAN header. Do\n not specify this parameter when you want to mirror the entire packet. To mirror a subset of\n the packet, set this to the length (in bytes) that you want to mirror. For example, if you\n set this value to 100, then the first 100 bytes that meet the filter criteria are copied to\n the target.

\n

If you do not want to mirror the entire packet, use the PacketLength parameter to specify the number of bytes in each packet to mirror.

\n

For sessions with Network Load Balancer (NLB) Traffic Mirror targets the default PacketLength will be set to 8500. Valid values are 1-8500. Setting a PacketLength greater than 8500 will result in an error response.

" + } + }, + "SessionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.

\n

Valid values are 1-32766.

", + "smithy.api#required": {} + } + }, + "VirtualNetworkId": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The VXLAN ID for the Traffic Mirror session. For more information about the VXLAN\n protocol, see RFC 7348. If you do\n not specify a VirtualNetworkId, an account-wide unique ID is chosen at\n random.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the Traffic Mirror session.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to a Traffic Mirror session.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorSessionResult": { + "type": "structure", + "members": { + "TrafficMirrorSession": { + "target": "com.amazonaws.ec2#TrafficMirrorSession", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorSession", + "smithy.api#documentation": "

Information about the Traffic Mirror session.

", + "smithy.api#xmlName": "trafficMirrorSession" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorTarget": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorTargetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTrafficMirrorTargetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a target for your Traffic Mirror session.

\n

A Traffic Mirror target is the destination for mirrored traffic. The Traffic Mirror source and\n the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in\n different VPCs connected via VPC peering or a transit gateway.

\n

A Traffic Mirror target can be a network interface, a Network Load Balancer, or a Gateway Load Balancer endpoint.

\n

To use the target in a Traffic Mirror session, use CreateTrafficMirrorSession.

" + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorTargetRequest": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The network interface ID that is associated with the target.

" + } + }, + "NetworkLoadBalancerArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Network Load Balancer that is associated with the target.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the Traffic Mirror target.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Traffic Mirror target.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "GatewayLoadBalancerEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the Gateway Load Balancer endpoint.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTrafficMirrorTargetResult": { + "type": "structure", + "members": { + "TrafficMirrorTarget": { + "target": "com.amazonaws.ec2#TrafficMirrorTarget", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorTarget", + "smithy.api#documentation": "

Information about the Traffic Mirror target.

", + "smithy.api#xmlName": "trafficMirrorTarget" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a transit gateway.

\n

You can use a transit gateway to interconnect your virtual private clouds (VPC) and on-premises networks.\n After the transit gateway enters the available state, you can attach your VPCs and VPN\n connections to the transit gateway.

\n

To attach your VPCs, use CreateTransitGatewayVpcAttachment.

\n

To attach a VPN connection, use CreateCustomerGateway to create a customer \n gateway and specify the ID of the customer gateway and the ID of the transit gateway in a call to\n CreateVpnConnection.

\n

When you create a transit gateway, we create a default transit gateway route table and use it as the default association route table\n and the default propagation route table. You can use CreateTransitGatewayRouteTable to create\n additional transit gateway route tables. If you disable automatic route propagation, we do not create a default transit gateway route table. \n You can use EnableTransitGatewayRouteTablePropagation to propagate routes from a resource \n attachment to a transit gateway route table. If you disable automatic associations, you can use AssociateTransitGatewayRouteTable to associate a resource attachment with a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnect": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Connect attachment from a specified transit gateway attachment. A Connect attachment is a GRE-based tunnel attachment that you can use to establish a connection between a transit gateway and an appliance.

\n

A Connect attachment uses an existing VPC or Amazon Web Services Direct Connect attachment as the underlying transport mechanism.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectPeerResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Connect peer for a specified transit gateway Connect attachment between a\n transit gateway and an appliance.

\n

The peer address and transit gateway address must be the same IP address family (IPv4 or IPv6).

\n

For more information, see Connect peers\n in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectPeerRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Connect attachment.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The peer IP address (GRE outer IP address) on the transit gateway side of the Connect peer, which must be\n specified from a transit gateway CIDR block. If not specified, Amazon automatically assigns\n the first available IP address from the transit gateway CIDR block.

" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The peer IP address (GRE outer IP address) on the appliance side of the Connect peer.

", + "smithy.api#required": {} + } + }, + "BgpOptions": { + "target": "com.amazonaws.ec2#TransitGatewayConnectRequestBgpOptions", + "traits": { + "smithy.api#documentation": "

The BGP options for the Connect peer.

" + } + }, + "InsideCidrBlocks": { + "target": "com.amazonaws.ec2#InsideCidrBlocksStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The range of inside IP addresses that are used for BGP peering. You must specify a\n size /29 IPv4 CIDR block from the 169.254.0.0/16 range. The first address\n from the range must be configured on the appliance as the BGP IP address. You can also\n optionally specify a size /125 IPv6 CIDR block from the fd00::/8\n range.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Connect peer.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectPeerResult": { + "type": "structure", + "members": { + "TransitGatewayConnectPeer": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeer", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnectPeer", + "smithy.api#documentation": "

Information about the Connect peer.

", + "smithy.api#xmlName": "transitGatewayConnectPeer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectRequest": { + "type": "structure", + "members": { + "TransportTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment. You can specify a VPC attachment or Amazon Web Services Direct Connect attachment.

", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.ec2#CreateTransitGatewayConnectRequestOptions", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Connect attachment options.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Connect attachment.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectRequestOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#ProtocolValue", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The tunnel protocol.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for a Connect attachment.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayConnectResult": { + "type": "structure", + "members": { + "TransitGatewayConnect": { + "target": "com.amazonaws.ec2#TransitGatewayConnect", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnect", + "smithy.api#documentation": "

Information about the Connect attachment.

", + "smithy.api#xmlName": "transitGatewayConnect" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a metering policy for a transit gateway to track and measure network traffic.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an entry in a transit gateway metering policy to define traffic measurement rules.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway metering policy to add the entry to.

", + "smithy.api#required": {} + } + }, + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number for the metering policy entry. Rules are processed in order from lowest to highest number.

", + "smithy.api#required": {} + } + }, + "SourceTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the source transit gateway attachment for traffic matching.

" + } + }, + "SourceTransitGatewayAttachmentType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "smithy.api#documentation": "

The type of the source transit gateway attachment for traffic matching. Note that the tgw-peering resource type has been deprecated. To configure metering policies for Connect, use the transport attachment type.

" + } + }, + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source CIDR block for traffic matching.

" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source port range for traffic matching.

" + } + }, + "DestinationTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the destination transit gateway attachment for traffic matching.

" + } + }, + "DestinationTransitGatewayAttachmentType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "smithy.api#documentation": "

The type of the destination transit gateway attachment for traffic matching. Note that the tgw-peering resource type has been deprecated. To configure metering policies for Connect, use the transport attachment type.

" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination CIDR block for traffic matching.

" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination port range for traffic matching.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The protocol for traffic matching (1, 6, 17, etc.).

" + } + }, + "MeteredAccount": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPayerType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services account ID to which the metered traffic should be attributed.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyEntryResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyEntry": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicyEntry", + "smithy.api#documentation": "

Information about the created transit gateway metering policy entry.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicyEntry" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway for which to create the metering policy.

", + "smithy.api#required": {} + } + }, + "MiddleboxAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the middlebox attachments to include in the metering policy.

", + "smithy.api#xmlName": "MiddleboxAttachmentId" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the metering policy.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMeteringPolicyResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicy": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicy", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicy", + "smithy.api#documentation": "

Information about the created transit gateway metering policy.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMulticastDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a multicast domain using the specified transit gateway.

\n

The transit gateway must be in the available state before you create a domain. Use DescribeTransitGateways to see the state of transit gateway.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainRequestOptions", + "traits": { + "smithy.api#documentation": "

The options for the transit gateway multicast domain.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags for the transit gateway multicast domain.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainRequestOptions": { + "type": "structure", + "members": { + "Igmpv2Support": { + "target": "com.amazonaws.ec2#Igmpv2SupportValue", + "traits": { + "smithy.api#documentation": "

Specify whether to enable Internet Group Management Protocol (IGMP) version 2 for the transit gateway multicast domain.

" + } + }, + "StaticSourcesSupport": { + "target": "com.amazonaws.ec2#StaticSourcesSupportValue", + "traits": { + "smithy.api#documentation": "

Specify whether to enable support for statically configuring multicast group sources for a domain.

" + } + }, + "AutoAcceptSharedAssociations": { + "target": "com.amazonaws.ec2#AutoAcceptSharedAssociationsValue", + "traits": { + "smithy.api#documentation": "

Indicates whether to automatically accept cross-account subnet associations that are associated with the transit gateway multicast domain.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for the transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayMulticastDomainResult": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomain": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomain", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomain", + "smithy.api#documentation": "

Information about the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomain" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Requests a transit gateway peering attachment between the specified transit gateway\n (requester) and a peer transit gateway (accepter). The peer transit gateway can be in \n your account or a different Amazon Web Services account.

\n

After you create the peering attachment, the owner of the accepter transit gateway \n must accept the attachment request.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "PeerTransitGatewayId": { + "target": "com.amazonaws.ec2#TransitAssociationGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the peer transit gateway with which to create the peering attachment.

", + "smithy.api#required": {} + } + }, + "PeerAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the peer transit gateway.

", + "smithy.api#required": {} + } + }, + "PeerRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Region where the peer transit gateway is located.

", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentRequestOptions", + "traits": { + "smithy.api#documentation": "

Requests a transit gateway peering attachment.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the transit gateway peering attachment.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentRequestOptions": { + "type": "structure", + "members": { + "DynamicRouting": { + "target": "com.amazonaws.ec2#DynamicRoutingValue", + "traits": { + "smithy.api#documentation": "

Indicates whether dynamic routing is enabled or disabled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether dynamic routing is enabled or disabled for the transit gateway peering request.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPeeringAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayPeeringAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPeeringAttachment", + "smithy.api#documentation": "

The transit gateway peering attachment.

", + "smithy.api#xmlName": "transitGatewayPeeringAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTableResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a transit gateway policy table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryResult" + }, + "traits": { + "smithy.api#documentation": "

Creates an entry in a transit gateway policy table to route matching traffic to a specified route table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#required": {} + } + }, + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number for the policy table entry. Lower rule numbers are evaluated first and take precedence.

", + "smithy.api#required": {} + } + }, + "PolicyRule": { + "target": "com.amazonaws.ec2#TransitGatewayRequestPolicyRule", + "traits": { + "smithy.api#documentation": "

The matching criteria for the policy table entry.

" + } + }, + "TargetRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table to use for traffic matching this rule.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTableEntryResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableEntry": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntry", + "smithy.api#documentation": "

Describes a transit gateway policy table entry

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntry" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTableRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway used for the policy table.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags specification for the transit gateway policy table created during the request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPolicyTableResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTable": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTable", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTable", + "smithy.api#documentation": "

Describes the created transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPrefixListReference": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a reference (route) to a prefix list in a specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list that is used for destination matches.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment to which traffic is routed.

" + } + }, + "Blackhole": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to drop traffic that matches this route.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayPrefixListReferenceResult": { + "type": "structure", + "members": { + "TransitGatewayPrefixListReference": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReference", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPrefixListReference", + "smithy.api#documentation": "

Information about the prefix list reference.

", + "smithy.api#xmlName": "transitGatewayPrefixListReference" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description of the transit gateway.

" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayRequestOptions", + "traits": { + "smithy.api#documentation": "

The transit gateway options.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the transit gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayResult": { + "type": "structure", + "members": { + "TransitGateway": { + "target": "com.amazonaws.ec2#TransitGateway", + "traits": { + "aws.protocols#ec2QueryName": "TransitGateway", + "smithy.api#documentation": "

Information about the transit gateway.

", + "smithy.api#xmlName": "transitGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a static route for the specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR range used for destination matches. Routing decisions are based on the\n most specific match.

", + "smithy.api#required": {} + } + }, + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment.

" + } + }, + "Blackhole": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to drop traffic that matches this route.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#TransitGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the route.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a route table for the specified transit gateway.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncement": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementResult" + }, + "traits": { + "smithy.api#documentation": "

Advertises a new transit gateway route table.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "PeeringAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the peering attachment.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags specifications applied to the transit gateway route table announcement.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTableAnnouncementResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncement": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncement", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncement", + "smithy.api#documentation": "

Provides details about the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncement" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTableRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the transit gateway route table.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayRouteTableResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTable": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTable", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTable", + "smithy.api#documentation": "

Information about the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Attaches the specified VPC to the specified transit gateway.

\n

If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is already attached,\n the new VPC CIDR range is not propagated to the default propagation route table.

\n

To send VPC traffic to an attached transit gateway, add a route to the VPC route table using CreateRoute.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#TransitGatewaySubnetIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of one or more subnets. You can specify only one subnet per Availability Zone. \n You must specify at least one subnet, but we recommend that you specify two subnets for better availability.\n The transit gateway uses one IP address from each specified subnet.

", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentRequestOptions", + "traits": { + "smithy.api#documentation": "

The VPC attachment options.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the VPC attachment.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentRequestOptions": { + "type": "structure", + "members": { + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable DNS support. The default is enable.

" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.

\n

This option is set to enable by default. However, at the transit gateway level the default is set to disable.

\n

For more information about security group referencing, see Security group referencing in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "Ipv6Support": { + "target": "com.amazonaws.ec2#Ipv6SupportValue", + "traits": { + "smithy.api#documentation": "

Specifies whether IPv6 support is enabled for the attachment. When enabled, the transit gateway network interface receives an IPv6 address. When you enable route propagation, IPv6 VPC CIDRs propagate to the transit gateway route tables. When disabled, the network interface does not receive an IPv6 address, and IPv6 routes do not propagate. The setting does not filter IPv6 traffic. The default is disable.

" + } + }, + "ApplianceModeSupport": { + "target": "com.amazonaws.ec2#ApplianceModeSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable support for appliance mode. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. The default is disable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for a VPC attachment.

" + } + }, + "com.amazonaws.ec2#CreateTransitGatewayVpcAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachment", + "smithy.api#documentation": "

Information about the VPC attachment.

", + "smithy.api#xmlName": "transitGatewayVpcAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Verified Access endpoint is where you define your application along with an optional endpoint-level access policy.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointCidrOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The protocol.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR.

" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the CIDR options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointEniOptions": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The ID of the network interface.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The IP protocol.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The IP port number.

" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the network interface options when creating an Amazon Web Services Verified Access endpoint using the\n network-interface type.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointLoadBalancerOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The IP protocol.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The IP port number.

" + } + }, + "LoadBalancerArn": { + "target": "com.amazonaws.ec2#LoadBalancerArn", + "traits": { + "smithy.api#documentation": "

The ARN of the load balancer.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets. You can specify only one subnet per Availability Zone.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the load balancer options when creating an Amazon Web Services Verified Access endpoint using the\n load-balancer type.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The start of the port range.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The end of the port range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the port range for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointPortRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointRdsOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The protocol.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The port.

" + } + }, + "RdsDbInstanceArn": { + "target": "com.amazonaws.ec2#RdsDbInstanceArn", + "traits": { + "smithy.api#documentation": "

The ARN of the RDS instance.

" + } + }, + "RdsDbClusterArn": { + "target": "com.amazonaws.ec2#RdsDbClusterArn", + "traits": { + "smithy.api#documentation": "

The ARN of the DB cluster.

" + } + }, + "RdsDbProxyArn": { + "target": "com.amazonaws.ec2#RdsDbProxyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the RDS proxy.

" + } + }, + "RdsEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The RDS endpoint.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets. You can specify only one subnet per Availability Zone.

", + "smithy.api#xmlName": "SubnetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the RDS options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access group to associate the endpoint with.

", + "smithy.api#required": {} + } + }, + "EndpointType": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of Verified Access endpoint to create.

", + "smithy.api#required": {} + } + }, + "AttachmentType": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointAttachmentType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of attachment.

", + "smithy.api#required": {} + } + }, + "DomainCertificateArn": { + "target": "com.amazonaws.ec2#CertificateArn", + "traits": { + "smithy.api#documentation": "

The ARN of the public TLS/SSL certificate in Amazon Web Services Certificate Manager to associate with the endpoint.\n The CN in the certificate must match the DNS name your end users will use to reach your\n application.

" + } + }, + "ApplicationDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The DNS name for users to reach your application.

" + } + }, + "EndpointDomainPrefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A custom identifier that is prepended to the DNS name that is generated for the\n endpoint.

" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups to associate with the Verified Access endpoint. Required if AttachmentType is set to vpc.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "LoadBalancerOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointLoadBalancerOptions", + "traits": { + "smithy.api#documentation": "

The load balancer details. This parameter is required if the endpoint type is\n load-balancer.

" + } + }, + "NetworkInterfaceOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointEniOptions", + "traits": { + "smithy.api#documentation": "

The network interface details. This parameter is required if the endpoint type is\n network-interface.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access endpoint.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Verified Access policy document.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Verified Access endpoint.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + }, + "RdsOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointRdsOptions", + "traits": { + "smithy.api#documentation": "

The RDS details. This parameter is required if the endpoint type is rds.

" + } + }, + "CidrOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessEndpointCidrOptions", + "traits": { + "smithy.api#documentation": "

The CIDR options. This parameter is required if the endpoint type is cidr.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointResult": { + "type": "structure", + "members": { + "VerifiedAccessEndpoint": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpoint", + "smithy.api#documentation": "

Details about the Verified Access endpoint.

", + "smithy.api#xmlName": "verifiedAccessEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessEndpointSubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessGroupResult" + }, + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Verified Access group is a collection of Amazon Web Services Verified Access endpoints who's associated applications have\n similar security requirements. Each instance within a Verified Access group shares an Verified Access policy. For\n example, you can group all Verified Access instances associated with \"sales\" applications together and\n use one common Verified Access policy.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessGroupRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access group.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Verified Access policy document.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Verified Access group.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessGroupResult": { + "type": "structure", + "members": { + "VerifiedAccessGroup": { + "target": "com.amazonaws.ec2#VerifiedAccessGroup", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroup", + "smithy.api#documentation": "

Details about the Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessInstanceResult" + }, + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Verified Access instance is a regional entity that evaluates application requests and grants\n access only when your security requirements are met.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessInstanceRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access instance.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Verified Access instance.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FIPSEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable or disable support for Federal Information Processing Standards (FIPS) on the instance.

" + } + }, + "CidrEndpointsCustomSubDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The custom subdomain.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessInstanceResult": { + "type": "structure", + "members": { + "VerifiedAccessInstance": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstance", + "smithy.api#documentation": "

Details about the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstance" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessNativeApplicationOidcOptions": { + "type": "structure", + "members": { + "PublicSigningKeyEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The public signing key endpoint.

" + } + }, + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC issuer identifier of the IdP.

" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The authorization endpoint of the IdP.

" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token endpoint of the IdP.

" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The user info endpoint of the IdP.

" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OAuth 2.0 client identifier.

" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "smithy.api#documentation": "

The OAuth 2.0 client secret.

" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The set of user claims to be requested from the IdP.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the OpenID Connect (OIDC) options.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessTrustProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderResult" + }, + "traits": { + "smithy.api#documentation": "

A trust provider is a third-party entity that creates, maintains, and manages identity\n information for users and devices. When an application request is made, the identity\n information sent by the trust provider is evaluated by Verified Access before allowing or\n denying the application request.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderDeviceOptions": { + "type": "structure", + "members": { + "TenantId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the tenant application with the device-identity provider.

" + } + }, + "PublicSigningKeyUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\n The URL Amazon Web Services Verified Access will use to verify the authenticity of the device tokens.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options when creating an Amazon Web Services Verified Access trust provider using the\n device type.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderOidcOptions": { + "type": "structure", + "members": { + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC issuer.

" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC authorization endpoint.

" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC token endpoint.

" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC user info endpoint.

" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The client identifier.

" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "smithy.api#documentation": "

The client secret.

" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to a user's details. Each scope returns a specific set of user attributes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options when creating an Amazon Web Services Verified Access trust provider using the user\n type.

" + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderRequest": { + "type": "structure", + "members": { + "TrustProviderType": { + "target": "com.amazonaws.ec2#TrustProviderType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of trust provider.

", + "smithy.api#required": {} + } + }, + "UserTrustProviderType": { + "target": "com.amazonaws.ec2#UserTrustProviderType", + "traits": { + "smithy.api#documentation": "

The type of user-based trust provider. This parameter is required when the provider type\n is user.

" + } + }, + "DeviceTrustProviderType": { + "target": "com.amazonaws.ec2#DeviceTrustProviderType", + "traits": { + "smithy.api#documentation": "

The type of device-based trust provider. This parameter is required when the provider\n type is device.

" + } + }, + "OidcOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderOidcOptions", + "traits": { + "smithy.api#documentation": "

The options for a OpenID Connect-compatible user-identity trust provider. This parameter\n is required when the provider type is user.

" + } + }, + "DeviceOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderDeviceOptions", + "traits": { + "smithy.api#documentation": "

The options for a device-based trust provider. This parameter is required when the\n provider type is device.

" + } + }, + "PolicyReferenceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier to be used when working with policy rules.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access trust provider.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Verified Access trust provider.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + }, + "NativeApplicationOidcOptions": { + "target": "com.amazonaws.ec2#CreateVerifiedAccessNativeApplicationOidcOptions", + "traits": { + "smithy.api#documentation": "

The OpenID Connect (OIDC) options.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVerifiedAccessTrustProviderResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProvider", + "smithy.api#documentation": "

Details about the Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProvider" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVolumeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#Volume" + }, + "traits": { + "smithy.api#documentation": "

Creates an EBS volume that can be attached to an instance in the same Availability Zone.

\n

You can create a new empty volume or restore a volume from an EBS snapshot.\n Any Amazon Web Services Marketplace product codes from the snapshot are propagated to the volume.

\n

You can create encrypted volumes. Encrypted volumes must be attached to instances that \n support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically \n encrypted. For more information, see Amazon EBS encryption\n in the Amazon EBS User Guide.

\n

You can tag your volumes during creation. For more information, see Tag your Amazon EC2\n resources in the Amazon EC2 User Guide.

\n

For more information, see Create an Amazon EBS volume in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a new Provisioned IOPS (SSD) volume from a snapshot", + "documentation": "This example creates a new Provisioned IOPS (SSD) volume with 1000 provisioned IOPS from a snapshot in the Availability Zone ``us-east-1a``.", + "input": { + "AvailabilityZone": "us-east-1a", + "Iops": 1000, + "VolumeType": "io1", + "SnapshotId": "snap-066877671789bd71b" + }, + "output": { + "AvailabilityZone": "us-east-1a", + "Attachments": [], + "Tags": [], + "VolumeType": "io1", + "VolumeId": "vol-1234567890abcdef0", + "State": "creating", + "Iops": 1000, + "SnapshotId": "snap-066877671789bd71b", + "CreateTime": "2016-08-29T18:52:32.724Z", + "Size": 500 + } + }, + { + "title": "To create a new volume", + "documentation": "This example creates an 80 GiB General Purpose (SSD) volume in the Availability Zone ``us-east-1a``.", + "input": { + "AvailabilityZone": "us-east-1a", + "Size": 80, + "VolumeType": "gp2" + }, + "output": { + "AvailabilityZone": "us-east-1a", + "Encrypted": false, + "VolumeType": "gp2", + "VolumeId": "vol-6b60b7c7", + "State": "creating", + "Iops": 240, + "SnapshotId": "", + "CreateTime": "2016-08-29T18:52:32.724Z", + "Size": 80 + } + } + ] + } + }, + "com.amazonaws.ec2#CreateVolumePermission": { + "type": "structure", + "members": { + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account to be added or removed.

", + "smithy.api#xmlName": "userId" + } + }, + "Group": { + "target": "com.amazonaws.ec2#PermissionGroup", + "traits": { + "aws.protocols#ec2QueryName": "Group", + "smithy.api#documentation": "

The group to be added or removed. The possible value is all.

", + "smithy.api#xmlName": "group" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the user or group to be added or removed from the list of create volume\n permissions for a volume.

" + } + }, + "com.amazonaws.ec2#CreateVolumePermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CreateVolumePermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CreateVolumePermissionModifications": { + "type": "structure", + "members": { + "Add": { + "target": "com.amazonaws.ec2#CreateVolumePermissionList", + "traits": { + "smithy.api#documentation": "

Adds the specified Amazon Web Services account ID or group to the list.

" + } + }, + "Remove": { + "target": "com.amazonaws.ec2#CreateVolumePermissionList", + "traits": { + "smithy.api#documentation": "

Removes the specified Amazon Web Services account ID or group from the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes modifications to the list of create volume permissions for a volume.

" + } + }, + "com.amazonaws.ec2#CreateVolumeRequest": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which to create the volume. For example, us-east-1a.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which to create the volume. For example, use1-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the volume should be encrypted. \n The effect of setting the encryption state to true depends on \nthe volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. \n For more information, see Encryption by default\n in the Amazon EBS User Guide.

\n

Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. \n For more information, see Supported\n instance types.

", + "smithy.api#xmlName": "encrypted" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) to provision for the volume. \n Required for io1 and io2 volumes. Optional for gp3 \n volumes. Omit for all other volume types.

\n

Valid ranges:

\n
    \n
  • \n

    gp3: 3,000 (default) - 80,000 IOPS

    \n
  • \n
  • \n

    io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    io2: 100 - 256,000 IOPS

    \n
  • \n
\n \n

\n \nInstances built on the Nitro System can support up to 256,000 IOPS. Other instances can support up to 32,000 \nIOPS.

\n
" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key to use for Amazon EBS encryption.\n If this parameter is not specified, your KMS key for Amazon EBS is used. If KmsKeyId is\n specified, the encrypted state must be true.

\n

You can specify the KMS key using any of the following:

\n
    \n
  • \n

    Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Key alias. For example, alias/ExampleAlias.

    \n
  • \n
  • \n

    Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, \n the action can appear to complete, but eventually fails.

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which to create the volume.

\n

If you intend to use a volume with an instance running on an outpost, then you must \n create the volume on the same outpost as the instance. You can't use a volume created \n in an Amazon Web Services Region with an instance on an Amazon Web Services outpost, or the other way around.

" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.\n If you specify a snapshot, the default is the snapshot size, and you can specify a volume size \n that is equal to or larger than the snapshot size.

\n

Valid sizes:

\n
    \n
  • \n

    gp2: 1 - 16,384 GiB

    \n
  • \n
  • \n

    gp3: 1 - 65,536 GiB

    \n
  • \n
  • \n

    io1: 4 - 16,384 GiB

    \n
  • \n
  • \n

    io2: 4 - 65,536 GiB

    \n
  • \n
  • \n

    st1 and sc1: 125 - 16,384 GiB

    \n
  • \n
  • \n

    standard: 1 - 1024 GiB

    \n
  • \n
" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.

" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "smithy.api#documentation": "

The volume type. This parameter can be one of the following values:

\n
    \n
  • \n

    General Purpose SSD: gp2 | gp3\n

    \n
  • \n
  • \n

    Provisioned IOPS SSD: io1 | io2\n

    \n
  • \n
  • \n

    Throughput Optimized HDD: st1\n

    \n
  • \n
  • \n

    Cold HDD: sc1\n

    \n
  • \n
  • \n

    Magnetic: standard\n

    \n
  • \n
\n \n

Throughput Optimized HDD (st1) and Cold HDD (sc1) volumes can't be used as boot volumes.

\n
\n

For more information, see Amazon EBS volume types in the\n Amazon EBS User Guide.

\n

Default: gp2\n

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the volume during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "MultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the \n volume to up to 16 Instances built on the Nitro System in the same Availability Zone. This parameter is \n \tsupported with io1 and io2 volumes only. For more information, \n \tsee \n \t\tAmazon EBS Multi-Attach in the Amazon EBS User Guide.

" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The throughput to provision for the volume, in MiB/s. Supported for gp3 \n volumes only. Omit for all other volume types.

\n

Valid Range: 125 - 2000 MiB/s

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency \n of the request. For more information, see Ensure \n Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download \n the snapshot blocks from Amazon S3 to the volume. This is also known as volume \n initialization. Specifying a volume initialization rate ensures that the volume is \n initialized at a predictable and consistent rate after creation.

\n

This parameter is supported only for volumes created from snapshots. Omit this parameter \n if:

\n
    \n
  • \n

    You want to create the volume using fast snapshot restore. You must specify a snapshot \n that is enabled for fast snapshot restore. In this case, the volume is fully initialized at \n creation.

    \n \n

    If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, \n the volume will be initialized at the specified rate instead of fast snapshot restore.

    \n
    \n
  • \n
  • \n

    You want to create a volume that is initialized at the default rate.

    \n
  • \n
\n

For more information, see \n Initialize Amazon EBS volumes in the Amazon EC2 User Guide.

\n

Valid range: 100 - 300 MiB/s

" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPC with the specified CIDR blocks.

\n

A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 CIDR block or an\n IPAM-allocated IPv4 CIDR block. You can optionally associate an IPv6 CIDR block with a\n VPC. You can choose an IPv6 CIDR block, an Amazon-provided IPv6 CIDR block, an\n IPAM-allocated IPv6 CIDR block, or an IPv6 CIDR block that you brought to Amazon Web Services. For\n more information, see IP addressing for your VPCs and\n subnets in the Amazon VPC User Guide.

\n

By default, each instance that you launch in the VPC has the default DHCP options, which\n\t\t\tinclude only a default DNS server that we provide (AmazonProvidedDNS). For more\n\t\t\tinformation, see DHCP option sets in the Amazon VPC User Guide.

\n

You can specify DNS options and tenancy for a VPC when you create it. You can't change\n the tenancy of a VPC after you create it. For more information, see VPC configuration options in the\n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a VPC", + "documentation": "This example creates a VPC with the specified CIDR block.", + "input": { + "CidrBlock": "10.0.0.0/16" + }, + "output": { + "Vpc": { + "InstanceTenancy": "default", + "State": "pending", + "VpcId": "vpc-a01106c2", + "CidrBlock": "10.0.0.0/16", + "DhcpOptionsId": "dopt-7a8b9c2d" + } + } + } + ] + } + }, + "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusion": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionResult" + }, + "traits": { + "smithy.api#documentation": "

Create a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that exempts it from the account’s BPA mode and will allow bidirectional or egress-only access. You can create BPA exclusions for VPCs and subnets even when BPA is not enabled on the account to ensure that there is no traffic disruption to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

A subnet ID.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

A VPC ID.

" + } + }, + "InternetGatewayExclusionMode": { + "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n
    \n
  • \n

    \n allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets.

    \n
  • \n
  • \n

    \n allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

\n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcBlockPublicAccessExclusionResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessExclusion": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessExclusion", + "smithy.api#documentation": "

Details about an exclusion.

", + "smithy.api#xmlName": "vpcBlockPublicAccessExclusion" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcEncryptionControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcEncryptionControlRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcEncryptionControlResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPC Encryption Control configuration for a specified VPC. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements for standards like HIPAA, FedRAMP, and PCI DSS.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpcEncryptionControlRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC for which to create the encryption control configuration.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the VPC Encryption Control resource.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcEncryptionControlResult": { + "type": "structure", + "members": { + "VpcEncryptionControl": { + "target": "com.amazonaws.ec2#VpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "VpcEncryptionControl", + "smithy.api#documentation": "

Information about the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "vpcEncryptionControl" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPC endpoint. A VPC endpoint provides a private connection between the\n specified VPC and the specified endpoint service. You can use an endpoint service\n provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or another\n Amazon Web Services account. For more information, see the Amazon Web Services PrivateLink User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpcEndpointConnectionNotification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a connection notification for a specified VPC endpoint or VPC endpoint\n service. A connection notification notifies you of specific endpoint events. You must\n create an SNS topic to receive notifications. For more information, see Creating an Amazon SNS topic in\n the Amazon SNS Developer Guide.

\n

You can create a connection notification for interface endpoints only.

" + } + }, + "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#documentation": "

The ID of the endpoint service.

" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the endpoint.

" + } + }, + "ConnectionNotificationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the SNS topic for the notifications.

", + "smithy.api#required": {} + } + }, + "ConnectionEvents": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The endpoint events for which to receive notifications. Valid values are\n Accept, Connect, Delete, and\n Reject.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpointConnectionNotificationResult": { + "type": "structure", + "members": { + "ConnectionNotification": { + "target": "com.amazonaws.ec2#ConnectionNotification", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotification", + "smithy.api#documentation": "

Information about the notification.

", + "smithy.api#xmlName": "connectionNotification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpointRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEndpointType": { + "target": "com.amazonaws.ec2#VpcEndpointType", + "traits": { + "smithy.api#documentation": "

The type of endpoint.

\n

For more information about the types of VPC endpoints, see VPC endpoints in the Amazon Web Services PrivateLink User Guide.

\n

Default: Gateway

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the endpoint service.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

(Interface and gateway endpoints) A policy to attach to the endpoint that controls access to the\n service. The policy must be in valid JSON format. If this parameter is not specified, we\n attach a default policy that allows full access to the service.

" + } + }, + "RouteTableIds": { + "target": "com.amazonaws.ec2#VpcEndpointRouteTableIdList", + "traits": { + "smithy.api#documentation": "

(Gateway endpoint) The route table IDs.

", + "smithy.api#xmlName": "RouteTableId" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#VpcEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

(Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, and Tunnel endpoints only) The IDs of the\n subnets in which to create endpoint network interfaces. For a Gateway Load Balancer endpoint, you can\n specify only one subnet. For a Tunnel endpoint, the subnets must be in the\n Availability Zones of the resource gateway associated with the shared resource\n configuration. An endpoint network interface is created only in an Availability Zone\n that the resource gateway is also in.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#VpcEndpointSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

(Interface, Resource, ServiceNetwork, and Tunnel endpoints only) The IDs of the security groups\n to associate with the endpoint network interfaces. If this parameter is not specified,\n we use the default security group for the VPC.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the endpoint.

" + } + }, + "DnsOptions": { + "target": "com.amazonaws.ec2#DnsOptionsSpecification", + "traits": { + "smithy.api#documentation": "

The DNS options for the endpoint.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

" + } + }, + "PrivateDnsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

(Interface endpoint) Indicates whether to associate a private hosted zone with the\n specified VPC. The private hosted zone contains a record set for the default public DNS\n name for the service for the Region (for example,\n kinesis.us-east-1.amazonaws.com), which resolves to the private IP\n addresses of the endpoint network interfaces in the VPC. This enables you to make\n requests to the default public DNS name for the service instead of the public DNS names\n that are automatically generated by the VPC endpoint service.

\n

To use a private hosted zone, you must set the following VPC attributes to\n true: enableDnsHostnames and\n enableDnsSupport. Use ModifyVpcAttribute to set the VPC\n attributes.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to associate with the endpoint.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "SubnetConfigurations": { + "target": "com.amazonaws.ec2#SubnetConfigurationsList", + "traits": { + "smithy.api#documentation": "

The subnet configurations for the endpoint.

", + "smithy.api#xmlName": "SubnetConfiguration" + } + }, + "ServiceNetworkArn": { + "target": "com.amazonaws.ec2#ServiceNetworkArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a service network that will be associated with the VPC\n endpoint of type service-network.

" + } + }, + "ResourceConfigurationArn": { + "target": "com.amazonaws.ec2#ResourceConfigurationArn", + "traits": { + "smithy.api#documentation": "

(Resource and Tunnel endpoints only) The Amazon Resource Name (ARN) of a resource\n configuration associated with the VPC endpoint. The type of resource configuration depends\n on the endpoint type:

\n
    \n
  • \n

    For a Resource endpoint, you can specify a resource configuration that is of type\n SINGLE, GROUP, or ARN. To reach a resource\n that belongs to a group, specify the parent GROUP resource\n configuration.

    \n
  • \n
  • \n

    For a Tunnel endpoint, you can specify a resource configuration that is of type\n CIDR.

    \n
  • \n
\n

For more information about the types of resource configurations, see Types of resource configurations in the Amazon Web Services PrivateLink User Guide.

\n

This request fails if a VPC endpoint owned by a different Amazon Web Services account\n already exists on a resource gateway that is enabled for ResourceGatewayCharges\n payer responsibility.

" + } + }, + "ServiceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Region where the service is hosted. The default is the current Region.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpointResult": { + "type": "structure", + "members": { + "VpcEndpoint": { + "target": "com.amazonaws.ec2#VpcEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpoint", + "smithy.api#documentation": "

Information about the endpoint.

", + "smithy.api#xmlName": "vpcEndpoint" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpointServiceConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts,\n users, and IAM roles) can connect.

\n

Before you create an endpoint service, you must create one of the following for your service:

\n
    \n
  • \n

    A Network Load Balancer. \n Service consumers connect to your service using an interface endpoint.

    \n
  • \n
  • \n

    A Gateway Load Balancer. \n Service consumers connect to your service using a Gateway Load Balancer endpoint.

    \n
  • \n
\n

If you set the private DNS name, you must prove that you own the private DNS domain\n name.

\n

For more information, see the Amazon Web Services PrivateLink \n\t Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "AcceptanceRequired": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether requests from service consumers to create an endpoint to your service must\n be accepted manually.

" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

(Interface endpoint configuration) The private DNS name to assign to the VPC endpoint service.

" + } + }, + "NetworkLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the Network Load Balancers.

", + "smithy.api#xmlName": "NetworkLoadBalancerArn" + } + }, + "GatewayLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the Gateway Load Balancers.

", + "smithy.api#xmlName": "GatewayLoadBalancerArn" + } + }, + "SupportedIpAddressTypes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The supported IP address types. The possible values are ipv4 and ipv6.

", + "smithy.api#xmlName": "SupportedIpAddressType" + } + }, + "SupportedRegions": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Regions from which service consumers can access the service.

", + "smithy.api#xmlName": "SupportedRegion" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n For more information, see How to ensure\n idempotency.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to associate with the service.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationResult": { + "type": "structure", + "members": { + "ServiceConfiguration": { + "target": "com.amazonaws.ec2#ServiceConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "ServiceConfiguration", + "smithy.api#documentation": "

Information about the service configuration.

", + "smithy.api#xmlName": "serviceConfiguration" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcPeeringConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpcPeeringConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpcPeeringConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and\n\t\t an accepter VPC with which to create the connection. The accepter VPC can belong to\n\t\t another Amazon Web Services account and can be in a different Region to the requester VPC. \n The requester VPC and accepter VPC cannot have overlapping CIDR blocks.

\n \n

Limitations and rules apply to a VPC peering connection. For more information, see \n the VPC peering limitations in the VPC Peering Guide.

\n
\n

The owner of the accepter VPC must accept the peering request to activate the peering\n connection. The VPC peering connection request expires after 7 days, after which it\n cannot be accepted or rejected.

\n

If you create a VPC peering connection request between VPCs with overlapping CIDR\n blocks, the VPC peering connection has a status of failed.

" + } + }, + "com.amazonaws.ec2#CreateVpcPeeringConnectionRequest": { + "type": "structure", + "members": { + "PeerRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Region code for the accepter VPC, if the accepter VPC is located in a Region\n other than the Region in which you make the request.

\n

Default: The Region in which you make the request.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the peering connection.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the requester VPC. You must specify this parameter in the\n\t\t\trequest.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + }, + "PeerVpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerVpcId", + "smithy.api#documentation": "

The ID of the VPC with which you are creating the VPC peering connection. You must\n\t\t\tspecify this parameter in the request.

", + "smithy.api#xmlName": "peerVpcId" + } + }, + "PeerOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the accepter VPC.

\n

Default: Your Amazon Web Services account ID

", + "smithy.api#xmlName": "peerOwnerId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcPeeringConnectionResult": { + "type": "structure", + "members": { + "VpcPeeringConnection": { + "target": "com.amazonaws.ec2#VpcPeeringConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnection", + "smithy.api#documentation": "

Information about the VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpcRequest": { + "type": "structure", + "members": { + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 network range for the VPC, in CIDR notation. For example,\n\t\t 10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

" + } + }, + "Ipv6Pool": { + "target": "com.amazonaws.ec2#Ipv6PoolEc2Id", + "traits": { + "smithy.api#documentation": "

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.

" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool in the request.

\n

To let Amazon choose the IPv6 CIDR block for you, omit this parameter.

" + } + }, + "Ipv4IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.\n \n

" + } + }, + "Ipv4NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "Ipv6IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "Ipv6NetmaskLength": { + "target": "com.amazonaws.ec2#NetmaskLength", + "traits": { + "smithy.api#documentation": "

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "Ipv6CidrBlockNetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.

\n

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

" + } + }, + "VpcEncryptionControl": { + "target": "com.amazonaws.ec2#VpcEncryptionControlConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the encryption control configuration to apply to the VPC during creation. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the VPC.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTenancy", + "smithy.api#documentation": "

The tenancy options for instances launched into the VPC. For default, instances\n are launched with shared tenancy by default. You can launch instances with any tenancy into a\n shared tenancy VPC. For dedicated, instances are launched as dedicated tenancy\n instances by default. You can only launch instances with a tenancy of dedicated\n or host into a dedicated tenancy VPC.

\n

\n Important: The host value cannot be used with this parameter. Use the default or dedicated values only.

\n

Default: default\n

", + "smithy.api#xmlName": "instanceTenancy" + } + }, + "AmazonProvidedIpv6CidrBlock": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AmazonProvidedIpv6CidrBlock", + "smithy.api#documentation": "

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.\n You cannot specify the range of IP addresses, or the size of the CIDR block.

", + "smithy.api#xmlName": "amazonProvidedIpv6CidrBlock" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpcResult": { + "type": "structure", + "members": { + "Vpc": { + "target": "com.amazonaws.ec2#Vpc", + "traits": { + "aws.protocols#ec2QueryName": "Vpc", + "smithy.api#documentation": "

Information about the VPC.

", + "smithy.api#xmlName": "vpc" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpnConcentrator": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpnConcentratorRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpnConcentratorResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPN concentrator that aggregates multiple VPN connections to a transit gateway.

" + } + }, + "com.amazonaws.ec2#CreateVpnConcentratorRequest": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#VpnConcentratorType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of VPN concentrator to create.

", + "smithy.api#required": {} + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway to attach the VPN concentrator to.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the VPN concentrator during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpnConcentratorResult": { + "type": "structure", + "members": { + "VpnConcentrator": { + "target": "com.amazonaws.ec2#VpnConcentrator", + "traits": { + "aws.protocols#ec2QueryName": "VpnConcentrator", + "smithy.api#documentation": "

Information about the VPN concentrator.

", + "smithy.api#xmlName": "vpnConcentrator" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpnConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpnConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpnConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a VPN connection between an existing virtual private gateway or transit\n gateway and a customer gateway. The supported connection type is\n ipsec.1.

\n

The response includes information that you need to give to your network administrator\n to configure your customer gateway.

\n \n

We strongly recommend that you use HTTPS when calling this operation because the\n response contains sensitive cryptographic information for configuring your customer\n gateway device.

\n
\n

If you decide to shut down your VPN connection for any reason and later create a new\n VPN connection, you must reconfigure your customer gateway with the new information\n returned from this call.

\n

This is an idempotent operation. If you perform the operation more than once, Amazon\n EC2 doesn't return an error.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpnConnectionRequest": { + "type": "structure", + "members": { + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#CustomerGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the customer gateway.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of VPN connection (ipsec.1).

", + "smithy.api#required": {} + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the virtual private gateway. If you specify a virtual private gateway, you\n cannot specify a transit gateway.

" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway. If you specify a transit gateway, you cannot specify a virtual private\n gateway.

" + } + }, + "VpnConcentratorId": { + "target": "com.amazonaws.ec2#VpnConcentratorId", + "traits": { + "smithy.api#documentation": "

The ID of the VPN concentrator to associate with the VPN connection.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the VPN connection.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "PreSharedKeyStorage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage mode for the pre-shared key (PSK). Valid values are Standard\" (stored in the Site-to-Site VPN service) or SecretsManager (stored in Amazon Web Services Secrets Manager).

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Options": { + "target": "com.amazonaws.ec2#VpnConnectionOptionsSpecification", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The options for the VPN connection.

", + "smithy.api#xmlName": "options" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateVpnConnection.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpnConnectionResult": { + "type": "structure", + "members": { + "VpnConnection": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

Information about the VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateVpnConnection.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreateVpnConnectionRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpnConnectionRouteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Creates a static route associated with a VPN connection between an existing virtual\n private gateway and a VPN customer gateway. The static route allows traffic to be routed\n from the virtual private gateway to the VPN customer gateway.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpnConnectionRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR block associated with the local subnet of the customer network.

", + "smithy.api#required": {} + } + }, + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN connection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateVpnConnectionRoute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpnGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateVpnGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateVpnGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the\n VPC side of your VPN connection. You can create a virtual private gateway before\n creating the VPC itself.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

" + } + }, + "com.amazonaws.ec2#CreateVpnGatewayRequest": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone for the virtual private gateway.

" + } + }, + "Type": { + "target": "com.amazonaws.ec2#GatewayType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of VPN connection this virtual private gateway supports.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the virtual private gateway.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If\n you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a\n 32-bit ASN, it must be in the 4200000000 to 4294967294 range.

\n

Default: 64512

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for CreateVpnGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#CreateVpnGatewayResult": { + "type": "structure", + "members": { + "VpnGateway": { + "target": "com.amazonaws.ec2#VpnGateway", + "traits": { + "aws.protocols#ec2QueryName": "VpnGateway", + "smithy.api#documentation": "

Information about the virtual private gateway.

", + "smithy.api#xmlName": "vpnGateway" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of CreateVpnGateway.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#CreationDateCondition": { + "type": "structure", + "members": { + "MaximumDaysSinceCreated": { + "target": "com.amazonaws.ec2#MaximumDaysSinceCreatedValue", + "traits": { + "aws.protocols#ec2QueryName": "MaximumDaysSinceCreated", + "smithy.api#documentation": "

The maximum number of days that have elapsed since the image was created. For example, a\n value of 300 allows images that were created within the last 300 days.

", + "smithy.api#xmlName": "maximumDaysSinceCreated" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maximum age for allowed images.

" + } + }, + "com.amazonaws.ec2#CreationDateConditionRequest": { + "type": "structure", + "members": { + "MaximumDaysSinceCreated": { + "target": "com.amazonaws.ec2#MaximumDaysSinceCreatedValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days that have elapsed since the image was created. For example, a\n value of 300 allows images that were created within the last 300 days.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maximum age for allowed images.

" + } + }, + "com.amazonaws.ec2#CreditSpecification": { + "type": "structure", + "members": { + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CpuCredits", + "smithy.api#documentation": "

The credit option for CPU usage of a T instance.

\n

Valid values: standard | unlimited\n

", + "smithy.api#xmlName": "cpuCredits" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the credit option for CPU usage of a T instance.

" + } + }, + "com.amazonaws.ec2#CreditSpecificationRequest": { + "type": "structure", + "members": { + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The credit option for CPU usage of a T instance.

\n

Valid values: standard | unlimited\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The credit option for CPU usage of a T instance.

" + } + }, + "com.amazonaws.ec2#CurrencyCodeValues": { + "type": "enum", + "members": { + "USD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USD" + } + } + } + }, + "com.amazonaws.ec2#CurrentGenerationFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#CustomKeyValuePairRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CustomTagKeyValueRequestPair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CustomKeyValuePairResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CustomTagKeyValueResponsePair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CustomTagKeyValueRequestPair": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The key of the tag.

" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value of the tag.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a tag key-value pair for an application status check association request.

" + } + }, + "com.amazonaws.ec2#CustomTagKeyValueResponsePair": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The key of the tag.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value of the tag.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a tag key-value pair for an application status check association.

" + } + }, + "com.amazonaws.ec2#CustomerGateway": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the customer gateway certificate.

", + "smithy.api#xmlName": "certificateArn" + } + }, + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The name of customer gateway device.

", + "smithy.api#xmlName": "deviceName" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the customer gateway.

", + "smithy.api#xmlName": "tagSet" + } + }, + "BgpAsnExtended": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BgpAsnExtended", + "smithy.api#documentation": "

The customer gateway device's Border Gateway Protocol (BGP) Autonomous System Number\n (ASN).

\n

Valid values: 2,147,483,648 to 4,294,967,295\n

", + "smithy.api#xmlName": "bgpAsnExtended" + } + }, + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGatewayId", + "smithy.api#documentation": "

The ID of the customer gateway.

", + "smithy.api#xmlName": "customerGatewayId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the customer gateway (pending | available | deleting |\n deleted).

", + "smithy.api#xmlName": "state" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of VPN connection the customer gateway supports\n (ipsec.1).

", + "smithy.api#xmlName": "type" + } + }, + "IpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpAddress", + "smithy.api#documentation": "

\n The IP address for the customer gateway device's outside interface. The address must be static. If OutsideIpAddressType in your VPN connection options is set to PrivateIpv4, you can use an RFC6598 or RFC1918 private IPv4 address. If \n OutsideIpAddressType is set to PublicIpv4, you can use a public IPv4 address. If OutsideIpAddressType is set to Ipv6, you can use a public IPv6 address.\n

", + "smithy.api#xmlName": "ipAddress" + } + }, + "BgpAsn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BgpAsn", + "smithy.api#documentation": "

The customer gateway device's Border Gateway Protocol (BGP) Autonomous System Number\n (ASN).

\n

Valid values: 1 to 2,147,483,647\n

", + "smithy.api#xmlName": "bgpAsn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a customer gateway.

" + } + }, + "com.amazonaws.ec2#CustomerGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#CustomerGatewayIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CustomerGatewayId", + "traits": { + "smithy.api#xmlName": "CustomerGatewayId" + } + } + }, + "com.amazonaws.ec2#CustomerGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CustomerGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DITMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DITOMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DataQueries": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DataQuery" + } + }, + "com.amazonaws.ec2#DataQuery": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A user-defined ID associated with a data query that's returned in the dataResponse identifying the query. For example, if you set the Id to MyQuery01in the query, the dataResponse identifies the query as MyQuery01.

" + } + }, + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Region or Availability Zone that's the source for the data query. For example, us-east-1.

" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Region or Availability Zone that's the target for the data query. For example, eu-north-1.

" + } + }, + "Metric": { + "target": "com.amazonaws.ec2#MetricType", + "traits": { + "smithy.api#documentation": "

The metric used for the network performance request.

" + } + }, + "Statistic": { + "target": "com.amazonaws.ec2#StatisticType", + "traits": { + "smithy.api#documentation": "

The metric data aggregation period, p50, between the specified startDate \n and endDate. For example, a metric of five_minutes is the median of all \n the data points gathered within those five minutes. p50 is the only supported metric.

" + } + }, + "Period": { + "target": "com.amazonaws.ec2#PeriodType", + "traits": { + "smithy.api#documentation": "

The aggregation period used for the data query.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A query used for retrieving network health data.

" + } + }, + "com.amazonaws.ec2#DataResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The ID passed in the DataQuery.

", + "smithy.api#xmlName": "id" + } + }, + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

The Region or Availability Zone that's the source for the data query. For example, us-east-1.

", + "smithy.api#xmlName": "source" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Destination", + "smithy.api#documentation": "

The Region or Availability Zone that's the destination for the data query. For example, eu-west-1.

", + "smithy.api#xmlName": "destination" + } + }, + "Metric": { + "target": "com.amazonaws.ec2#MetricType", + "traits": { + "aws.protocols#ec2QueryName": "Metric", + "smithy.api#documentation": "

The metric used for the network performance request.

", + "smithy.api#xmlName": "metric" + } + }, + "Statistic": { + "target": "com.amazonaws.ec2#StatisticType", + "traits": { + "aws.protocols#ec2QueryName": "Statistic", + "smithy.api#documentation": "

The statistic used for the network performance request.

", + "smithy.api#xmlName": "statistic" + } + }, + "Period": { + "target": "com.amazonaws.ec2#PeriodType", + "traits": { + "aws.protocols#ec2QueryName": "Period", + "smithy.api#documentation": "

The period used for the network performance request.

", + "smithy.api#xmlName": "period" + } + }, + "MetricPoints": { + "target": "com.amazonaws.ec2#MetricPoints", + "traits": { + "aws.protocols#ec2QueryName": "MetricPointSet", + "smithy.api#documentation": "

A list of MetricPoint objects.

", + "smithy.api#xmlName": "metricPointSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The response to a DataQuery.

" + } + }, + "com.amazonaws.ec2#DataResponses": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DataResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DatafeedSubscriptionState": { + "type": "enum", + "members": { + "Active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Active" + } + }, + "Inactive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Inactive" + } + } + } + }, + "com.amazonaws.ec2#DateTime": { + "type": "timestamp" + }, + "com.amazonaws.ec2#DeclarativePoliciesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DeclarativePoliciesReport": { + "type": "structure", + "members": { + "ReportId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The name of the Amazon S3 bucket where the report is located.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Prefix", + "smithy.api#documentation": "

The prefix for your S3 object.

", + "smithy.api#xmlName": "s3Prefix" + } + }, + "TargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TargetId", + "smithy.api#documentation": "

The root ID, organizational unit ID, or account ID.

\n

Format:

\n
    \n
  • \n

    For root: r-ab12\n

    \n
  • \n
  • \n

    For OU: ou-ab12-cdef1234\n

    \n
  • \n
  • \n

    For account: 123456789012\n

    \n
  • \n
", + "smithy.api#xmlName": "targetId" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time when the report generation started.

", + "smithy.api#xmlName": "startTime" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndTime", + "smithy.api#documentation": "

The time when the report generation ended.

", + "smithy.api#xmlName": "endTime" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ReportState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current status of the report.

", + "smithy.api#xmlName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the report.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the metadata of the account status report.

" + } + }, + "com.amazonaws.ec2#DeclarativePoliciesReportId": { + "type": "string" + }, + "com.amazonaws.ec2#DeclarativePoliciesReportList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeclarativePoliciesReport", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DedicatedHostFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#DedicatedHostId": { + "type": "string" + }, + "com.amazonaws.ec2#DedicatedHostIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DefaultConnectionTrackingConfiguration": { + "type": "structure", + "members": { + "DefaultTcpEstablishedTimeout": { + "target": "com.amazonaws.ec2#DefaultTcpEstablishedTimeout", + "traits": { + "aws.protocols#ec2QueryName": "DefaultTcpEstablishedTimeout", + "smithy.api#documentation": "

Default timeout (in seconds) for idle TCP connections in an established state.

", + "smithy.api#xmlName": "defaultTcpEstablishedTimeout" + } + }, + "DefaultUdpTimeout": { + "target": "com.amazonaws.ec2#DefaultUdpTimeout", + "traits": { + "aws.protocols#ec2QueryName": "DefaultUdpTimeout", + "smithy.api#documentation": "

Default timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction.

", + "smithy.api#xmlName": "defaultUdpTimeout" + } + }, + "DefaultUdpStreamTimeout": { + "target": "com.amazonaws.ec2#DefaultUdpStreamTimeout", + "traits": { + "aws.protocols#ec2QueryName": "DefaultUdpStreamTimeout", + "smithy.api#documentation": "

Default timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction.

", + "smithy.api#xmlName": "defaultUdpStreamTimeout" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates default conntrack information for the instance type. For more\n information, see\n Connection tracking timeouts\n in the Amazon EC2 User Guide.\n

" + } + }, + "com.amazonaws.ec2#DefaultEnaQueueCountPerInterface": { + "type": "integer" + }, + "com.amazonaws.ec2#DefaultHttpTokensEnforcedState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "no_preference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-preference" + } + } + } + }, + "com.amazonaws.ec2#DefaultInstanceMetadataEndpointState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "no_preference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-preference" + } + } + } + }, + "com.amazonaws.ec2#DefaultInstanceMetadataTagsState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "no_preference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-preference" + } + } + } + }, + "com.amazonaws.ec2#DefaultNetworkCardIndex": { + "type": "integer" + }, + "com.amazonaws.ec2#DefaultRouteTableAssociationValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#DefaultRouteTablePropagationValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#DefaultTargetCapacityType": { + "type": "enum", + "members": { + "SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + }, + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + }, + "CAPACITY_BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "RESERVED_CAPACITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-capacity" + } + } + } + }, + "com.amazonaws.ec2#DefaultTcpEstablishedTimeout": { + "type": "integer" + }, + "com.amazonaws.ec2#DefaultUdpStreamTimeout": { + "type": "integer" + }, + "com.amazonaws.ec2#DefaultUdpTimeout": { + "type": "integer" + }, + "com.amazonaws.ec2#DefaultingDhcpOptionsId": { + "type": "string" + }, + "com.amazonaws.ec2#DeleteApplicationStatusCheck": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteApplicationStatusCheckRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteApplicationStatusCheckResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an application status check. The following rules apply:

\n
    \n
  • \n

    Deleting a check automatically removes all of its associations.

    \n
  • \n
  • \n

    Use DescribeApplicationStatusChecks to view existing checks before deleting.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To delete an application status check", + "documentation": "This example deletes the specified application status check.", + "input": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0" + }, + "output": { + "ApplicationStatusCheck": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Protocol": "http", + "Port": 80, + "Path": "/health", + "Aggregation": "included" + } + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteApplicationStatusCheckRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the application status check to delete.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteApplicationStatusCheckResult": { + "type": "structure", + "members": { + "ApplicationStatusCheck": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckResponseObject", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheck", + "smithy.api#documentation": "

Information about the deleted application status check.

", + "smithy.api#xmlName": "applicationStatusCheck" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteCapacityManagerDataExport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteCapacityManagerDataExportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteCapacityManagerDataExportResult" + }, + "traits": { + "smithy.api#documentation": "

\nDeletes an existing Capacity Manager data export configuration. This stops future scheduled exports but does not delete previously exported files from S3.\n

" + } + }, + "com.amazonaws.ec2#DeleteCapacityManagerDataExportRequest": { + "type": "structure", + "members": { + "CapacityManagerDataExportId": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe unique identifier of the data export configuration to delete.\n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteCapacityManagerDataExportResult": { + "type": "structure", + "members": { + "CapacityManagerDataExportId": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerDataExportId", + "smithy.api#documentation": "

\nThe unique identifier of the deleted data export configuration.\n

", + "smithy.api#xmlName": "capacityManagerDataExportId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteCarrierGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteCarrierGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteCarrierGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a carrier gateway.

\n \n

If you do not delete the route that contains the carrier gateway as the\n Target, the route is a blackhole route. For information about how to delete a route, see \n DeleteRoute.

\n
" + } + }, + "com.amazonaws.ec2#DeleteCarrierGatewayRequest": { + "type": "structure", + "members": { + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#CarrierGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the carrier gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteCarrierGatewayResult": { + "type": "structure", + "members": { + "CarrierGateway": { + "target": "com.amazonaws.ec2#CarrierGateway", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGateway", + "smithy.api#documentation": "

Information about the carrier gateway.

", + "smithy.api#xmlName": "carrierGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Client VPN endpoint. You must disassociate all target networks before you \n\t\t\tcan delete a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the authorization policy for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpointAuthorizationPolicyResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationPolicyStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization policy.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpointRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN to be deleted.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnEndpointResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnEndpointStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the Client VPN endpoint.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteClientVpnRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteClientVpnRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a route from a Client VPN endpoint. You can only delete routes that you manually added using \n\t\t\tthe CreateClientVpnRoute action. You cannot delete routes that were \n\t\t\tautomatically added when associating a subnet. To remove routes that have been automatically added, \n\t\t\tdisassociate the target subnet from the Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#DeleteClientVpnRouteRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint from which the route is to be deleted.

", + "smithy.api#required": {} + } + }, + "TargetVpcSubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the target subnet used by the route.

" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the route to be deleted.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteClientVpnRouteResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnRouteStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the route.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteCoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteCoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteCoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

\n Deletes a range of customer-owned IP addresses.\n

" + } + }, + "com.amazonaws.ec2#DeleteCoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A customer-owned IP address range that you want to delete.

", + "smithy.api#required": {} + } + }, + "CoipPoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the customer-owned address pool. \n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteCoipCidrResult": { + "type": "structure", + "members": { + "CoipCidr": { + "target": "com.amazonaws.ec2#CoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "CoipCidr", + "smithy.api#documentation": "

\n Information about a range of customer-owned IP addresses.\n

", + "smithy.api#xmlName": "coipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteCoipPool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteCoipPoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteCoipPoolResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a pool of customer-owned IP (CoIP) addresses.

" + } + }, + "com.amazonaws.ec2#DeleteCoipPoolRequest": { + "type": "structure", + "members": { + "CoipPoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the CoIP pool that you want to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteCoipPoolResult": { + "type": "structure", + "members": { + "CoipPool": { + "target": "com.amazonaws.ec2#CoipPool", + "traits": { + "aws.protocols#ec2QueryName": "CoipPool", + "smithy.api#documentation": "

Information about the CoIP address pool.

", + "smithy.api#xmlName": "coipPool" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteCustomerGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteCustomerGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified customer gateway. You must delete the VPN connection before you\n can delete the customer gateway.

", + "smithy.api#examples": [ + { + "title": "To delete a customer gateway", + "documentation": "This example deletes the specified customer gateway.", + "input": { + "CustomerGatewayId": "cgw-0e11f167" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteCustomerGatewayRequest": { + "type": "structure", + "members": { + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#CustomerGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the customer gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteCustomerGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteDhcpOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteDhcpOptionsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

", + "smithy.api#examples": [ + { + "title": "To delete a DHCP options set", + "documentation": "This example deletes the specified DHCP options set.", + "input": { + "DhcpOptionsId": "dopt-d9070ebb" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteDhcpOptionsRequest": { + "type": "structure", + "members": { + "DhcpOptionsId": { + "target": "com.amazonaws.ec2#DhcpOptionsId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the DHCP options set.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteEgressOnlyInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an egress-only internet gateway.

" + } + }, + "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the egress-only internet gateway.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteEgressOnlyInternetGatewayResult": { + "type": "structure", + "members": { + "ReturnCode": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReturnCode", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "returnCode" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteFleetError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#DeleteFleetErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The description for the error code.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Fleet error.

" + } + }, + "com.amazonaws.ec2#DeleteFleetErrorCode": { + "type": "enum", + "members": { + "FLEET_ID_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetIdDoesNotExist" + } + }, + "FLEET_ID_MALFORMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetIdMalformed" + } + }, + "FLEET_NOT_IN_DELETABLE_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetNotInDeletableState" + } + }, + "UNEXPECTED_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unexpectedError" + } + } + } + }, + "com.amazonaws.ec2#DeleteFleetErrorItem": { + "type": "structure", + "members": { + "Error": { + "target": "com.amazonaws.ec2#DeleteFleetError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The error.

", + "smithy.api#xmlName": "error" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Fleet that was not successfully deleted.

" + } + }, + "com.amazonaws.ec2#DeleteFleetErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeleteFleetErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeleteFleetSuccessItem": { + "type": "structure", + "members": { + "CurrentFleetState": { + "target": "com.amazonaws.ec2#FleetStateCode", + "traits": { + "aws.protocols#ec2QueryName": "CurrentFleetState", + "smithy.api#documentation": "

The current state of the EC2 Fleet.

", + "smithy.api#xmlName": "currentFleetState" + } + }, + "PreviousFleetState": { + "target": "com.amazonaws.ec2#FleetStateCode", + "traits": { + "aws.protocols#ec2QueryName": "PreviousFleetState", + "smithy.api#documentation": "

The previous state of the EC2 Fleet.

", + "smithy.api#xmlName": "previousFleetState" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Fleet that was successfully deleted.

" + } + }, + "com.amazonaws.ec2#DeleteFleetSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeleteFleetSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeleteFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified EC2 Fleet request.

\n

After you delete an EC2 Fleet request, it launches no new instances.

\n

You must also specify whether a deleted EC2 Fleet request should terminate its instances. If\n you choose to terminate the instances, the EC2 Fleet request enters the\n deleted_terminating state. Otherwise, it enters the\n deleted_running state, and the instances continue to run until they are\n interrupted or you terminate them manually.

\n

A deleted instant fleet with running instances is not supported. When you\n delete an instant fleet, Amazon EC2 automatically terminates all its instances. For\n fleets with more than 1000 instances, the deletion request might fail. If your fleet has\n more than 1000 instances, first terminate most of the instances manually, leaving 1000 or\n fewer. Then delete the fleet, and the remaining instances will be terminated automatically.

\n \n

\n Terminating an instance is permanent and irreversible.\n

\n

After you terminate an instance, you can no longer connect to it, and it can't be recovered. \n All attached Amazon EBS volumes that are configured to be deleted on termination are also permanently \n deleted and can't be recovered. All data stored on instance store volumes is permanently lost. \n For more information, see \n How instance termination works.

\n

Before you terminate an instance, ensure that you have backed up all data that you need to \n retain after the termination to persistent storage.

\n
\n

\n Restrictions\n

\n
    \n
  • \n

    You can delete up to 25 fleets of type instant in a single\n request.

    \n
  • \n
  • \n

    You can delete up to 100 fleets of type maintain or\n request in a single request.

    \n
  • \n
  • \n

    You can delete up to 125 fleets in a single request, provided you do not exceed\n the quota for each fleet type, as specified above.

    \n
  • \n
  • \n

    If you exceed the specified number of fleets to delete, no fleets are\n deleted.

    \n
  • \n
\n

For more information, see Delete an EC2 Fleet request and the instances\n in the fleet in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteFleetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FleetIds": { + "target": "com.amazonaws.ec2#FleetIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the EC2 Fleets.

\n

Constraints: In a single request, you can specify up to 25 instant fleet\n IDs and up to 100 maintain or request fleet IDs.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "FleetId" + } + }, + "TerminateInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to terminate the associated instances when the EC2 Fleet is deleted. The default is to\n terminate the instances.

\n

To let the instances continue to run after the EC2 Fleet is deleted, specify\n no-terminate-instances. Supported only for fleets of type\n maintain and request.

\n

For instant fleets, you cannot specify NoTerminateInstances. A\n deleted instant fleet with running instances is not supported.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteFleetsResult": { + "type": "structure", + "members": { + "SuccessfulFleetDeletions": { + "target": "com.amazonaws.ec2#DeleteFleetSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulFleetDeletionSet", + "smithy.api#documentation": "

Information about the EC2 Fleets that are successfully deleted.

", + "smithy.api#xmlName": "successfulFleetDeletionSet" + } + }, + "UnsuccessfulFleetDeletions": { + "target": "com.amazonaws.ec2#DeleteFleetErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulFleetDeletionSet", + "smithy.api#documentation": "

Information about the EC2 Fleets that are not successfully deleted.

", + "smithy.api#xmlName": "unsuccessfulFleetDeletionSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteFlowLogs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteFlowLogsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteFlowLogsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes one or more flow logs.

" + } + }, + "com.amazonaws.ec2#DeleteFlowLogsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FlowLogIds": { + "target": "com.amazonaws.ec2#FlowLogIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more flow log IDs.

\n

Constraint: Maximum of 1000 flow log IDs.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "FlowLogId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteFlowLogsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the flow logs that could not be deleted successfully.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteFpgaImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteFpgaImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteFpgaImageResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Amazon FPGA Image (AFI).

" + } + }, + "com.amazonaws.ec2#DeleteFpgaImageRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FpgaImageId": { + "target": "com.amazonaws.ec2#FpgaImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AFI.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteFpgaImageResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteImageUsageReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteImageUsageReportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteImageUsageReportResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified image usage report.

\n

For more information, see View your AMI usage in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteImageUsageReportRequest": { + "type": "structure", + "members": { + "ReportId": { + "target": "com.amazonaws.ec2#ImageUsageReportId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the report to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteImageUsageReportResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteInstanceConnectEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteInstanceConnectEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteInstanceConnectEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified EC2 Instance Connect Endpoint.

" + } + }, + "com.amazonaws.ec2#DeleteInstanceConnectEndpointRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceConnectEndpointId": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2 Instance Connect Endpoint to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteInstanceConnectEndpointResult": { + "type": "structure", + "members": { + "InstanceConnectEndpoint": { + "target": "com.amazonaws.ec2#Ec2InstanceConnectEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "InstanceConnectEndpoint", + "smithy.api#documentation": "

Information about the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "instanceConnectEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteInstanceEventWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteInstanceEventWindowRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteInstanceEventWindowResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified event window.

\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteInstanceEventWindowRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ForceDelete": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify true to force delete the event window. Use the force delete\n parameter if the event window is currently associated with targets.

" + } + }, + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceEventWindowId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteInstanceEventWindowResult": { + "type": "structure", + "members": { + "InstanceEventWindowState": { + "target": "com.amazonaws.ec2#InstanceEventWindowStateChange", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindowState", + "smithy.api#documentation": "

The state of the event window.

", + "smithy.api#xmlName": "instanceEventWindowState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteInternetGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified internet gateway. You must detach the internet gateway from the\n\t\t\tVPC before you can delete it.

", + "smithy.api#examples": [ + { + "title": "To delete an Internet gateway", + "documentation": "This example deletes the specified Internet gateway.", + "input": { + "InternetGatewayId": "igw-c0a643a9" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteInternetGatewayRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InternetGatewayId": { + "target": "com.amazonaws.ec2#InternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the internet gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "internetGatewayId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpam": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an IPAM. Deleting an IPAM removes all monitored data associated with the IPAM including the historical data for CIDRs.

\n

For more information, see Delete an IPAM in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenResult" + }, + "traits": { + "smithy.api#documentation": "

Delete a verification token.

\n

A verification token is an Amazon Web Services-generated random value that you can use to prove ownership of an external resource. For example, you can use a verification token to validate that you control a public IP address range when you bring an IP address range to Amazon Web Services (BYOIP).\n

" + } + }, + "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamExternalResourceVerificationTokenId": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationTokenId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The token ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamExternalResourceVerificationTokenResult": { + "type": "structure", + "members": { + "IpamExternalResourceVerificationToken": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationToken", + "traits": { + "aws.protocols#ec2QueryName": "IpamExternalResourceVerificationToken", + "smithy.api#documentation": "

The verification token.

", + "smithy.api#xmlName": "ipamExternalResourceVerificationToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an IPAM internet registry association. Before deleting, you must remove all routing policy registrations associated with the internet registry.

" + } + }, + "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamInternetRegistryAssociationResult": { + "type": "structure", + "members": { + "IpamInternetRegistryAssociation": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociation", + "smithy.api#documentation": "

Information about the deleted internet registry association.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" + } + }, + "com.amazonaws.ec2#DeleteIpamPolicyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPolicyResult": { + "type": "structure", + "members": { + "IpamPolicy": { + "target": "com.amazonaws.ec2#IpamPolicy", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicy", + "smithy.api#documentation": "

Information about the deleted IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

", + "smithy.api#xmlName": "ipamPolicy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamPoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamPoolResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an IPAM pool.

\n \n

You cannot delete an IPAM pool if there are allocations in it or CIDRs provisioned to it. To release \n allocations, see ReleaseIpamPoolAllocation. To deprovision pool \n CIDRs, see DeprovisionIpamPoolCidr.

\n
\n

For more information, see Delete a pool in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#DeleteIpamPoolRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the pool to delete.

", + "smithy.api#required": {} + } + }, + "Cascade": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enables you to quickly delete an IPAM pool and all resources within that pool, including\n provisioned CIDRs, allocations, and other pools.

\n \n

You can only use this option to delete pools in the private scope or pools in the public scope with a source resource. A source resource is a resource used to provision CIDRs to a resource planning pool.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPoolResult": { + "type": "structure", + "members": { + "IpamPool": { + "target": "com.amazonaws.ec2#IpamPool", + "traits": { + "aws.protocols#ec2QueryName": "IpamPool", + "smithy.api#documentation": "

Information about the results of the deletion.

", + "smithy.api#xmlName": "ipamPool" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolverRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolverResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an IPAM prefix list resolver. Before deleting a resolver, you must first delete all resolver targets associated with it.

" + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolverRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolverResult": { + "type": "structure", + "members": { + "IpamPrefixListResolver": { + "target": "com.amazonaws.ec2#IpamPrefixListResolver", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolver", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver that was deleted.

", + "smithy.api#xmlName": "ipamPrefixListResolver" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolverTarget": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an IPAM prefix list resolver target. This removes the association between the resolver and the managed prefix list, stopping automatic CIDR synchronization.

\n

For more information about IPAM prefix list resolver, see Automate prefix list updates with IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverTargetId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTargetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver target to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamPrefixListResolverTargetResult": { + "type": "structure", + "members": { + "IpamPrefixListResolverTarget": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTarget", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTarget", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver target that was deleted.

", + "smithy.api#xmlName": "ipamPrefixListResolverTarget" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM to delete.

", + "smithy.api#required": {} + } + }, + "Cascade": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enables you to quickly delete an IPAM, private scopes, pools in private scopes, and\n any allocations in the pools in private scopes. You cannot delete the IPAM with this option if there is a pool in your public scope. If you use this option, IPAM does the following:

\n
    \n
  • \n

    Deallocates any CIDRs allocated to VPC resources (such as VPCs) in pools in private scopes.

    \n \n

    No VPC resources are deleted as a result of enabling this option. The CIDR associated with the resource will no longer be allocated from an IPAM pool, but the CIDR itself will remain unchanged.

    \n
    \n
  • \n
  • \n

    Deprovisions all IPv4 CIDRs provisioned to IPAM pools in private scopes.

    \n
  • \n
  • \n

    Deletes all IPAM pools in private scopes.

    \n
  • \n
  • \n

    Deletes all non-default private scopes in the IPAM.

    \n
  • \n
  • \n

    Deletes the default public and private scopes and the IPAM.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamResourceDiscovery": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamResourceDiscoveryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamResourceDiscoveryResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an IPAM resource discovery. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#DeleteIpamResourceDiscoveryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPAM resource discovery ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamResourceDiscoveryResult": { + "type": "structure", + "members": { + "IpamResourceDiscovery": { + "target": "com.amazonaws.ec2#IpamResourceDiscovery", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscovery", + "smithy.api#documentation": "

The IPAM resource discovery.

", + "smithy.api#xmlName": "ipamResourceDiscovery" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamResult": { + "type": "structure", + "members": { + "Ipam": { + "target": "com.amazonaws.ec2#Ipam", + "traits": { + "aws.protocols#ec2QueryName": "Ipam", + "smithy.api#documentation": "

Information about the results of the deletion.

", + "smithy.api#xmlName": "ipam" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a routing policy registration for a specified CIDR prefix.

" + } + }, + "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP address prefix in CIDR notation identifying the routing policy registration to delete.

", + "smithy.api#required": {} + } + }, + "Force": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Forces the deletion even if it conflicts with an announced route. Default: false.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamRoutingPolicyRegistrationResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrationDelta": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationDelta", + "smithy.api#documentation": "

Information about the routing policy registration delta created by this deletion.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationDelta" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteIpamScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteIpamScopeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteIpamScopeResult" + }, + "traits": { + "smithy.api#documentation": "

Delete the scope for an IPAM. You cannot delete the default scopes.

\n

For more information, see Delete a scope in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#DeleteIpamScopeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the scope to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteIpamScopeResult": { + "type": "structure", + "members": { + "IpamScope": { + "target": "com.amazonaws.ec2#IpamScope", + "traits": { + "aws.protocols#ec2QueryName": "IpamScope", + "smithy.api#documentation": "

Information about the results of the deletion.

", + "smithy.api#xmlName": "ipamScope" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteKeyPair": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteKeyPairRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteKeyPairResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", + "smithy.api#examples": [ + { + "title": "To delete a key pair", + "documentation": "This example deletes the specified key pair.", + "input": { + "KeyName": "my-key-pair" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteKeyPairRequest": { + "type": "structure", + "members": { + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairNameWithResolver", + "traits": { + "smithy.api#documentation": "

The name of the key pair.

" + } + }, + "KeyPairId": { + "target": "com.amazonaws.ec2#KeyPairId", + "traits": { + "smithy.api#documentation": "

The ID of the key pair.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteKeyPairResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + }, + "KeyPairId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyPairId", + "smithy.api#documentation": "

The ID of the key pair.

", + "smithy.api#xmlName": "keyPairId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a launch template. Deleting a launch template deletes all of its\n versions.

", + "smithy.api#examples": [ + { + "title": "To delete a launch template", + "documentation": "This example deletes the specified launch template.", + "input": { + "LaunchTemplateId": "lt-0abcd290751193123" + }, + "output": { + "LaunchTemplate": { + "LatestVersionNumber": 2, + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "my-template", + "DefaultVersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-11-23T16:46:25.000Z" + } + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateResult": { + "type": "structure", + "members": { + "LaunchTemplate": { + "target": "com.amazonaws.ec2#LaunchTemplate", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

Information about the launch template.

", + "smithy.api#xmlName": "launchTemplate" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes one or more versions of a launch template.

\n

You can't delete the default version of a launch template; you must first assign a\n different version as the default. If the default version is the only version for the\n launch template, you must delete the entire launch template using DeleteLaunchTemplate.

\n

You can delete up to 200 launch template versions in a single request. To delete more\n than 200 versions in a single request, use DeleteLaunchTemplate, which\n deletes the launch template and all of its versions.

\n

For more information, see Delete a launch template version in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a launch template version", + "documentation": "This example deletes the specified launch template version.", + "input": { + "LaunchTemplateId": "lt-0abcd290751193123", + "Versions": [ + "1" + ] + }, + "output": { + "SuccessfullyDeletedLaunchTemplateVersions": [ + { + "LaunchTemplateName": "my-template", + "VersionNumber": 1, + "LaunchTemplateId": "lt-0abcd290751193123" + } + ], + "UnsuccessfullyDeletedLaunchTemplateVersions": [] + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "Versions": { + "target": "com.amazonaws.ec2#VersionStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The version numbers of one or more launch template versions to delete. You can specify\n up to 200 launch template version numbers.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "LaunchTemplateVersion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseErrorItem": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "VersionNumber": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "VersionNumber", + "smithy.api#documentation": "

The version number of the launch template.

", + "smithy.api#xmlName": "versionNumber" + } + }, + "ResponseError": { + "target": "com.amazonaws.ec2#ResponseError", + "traits": { + "aws.protocols#ec2QueryName": "ResponseError", + "smithy.api#documentation": "

Information about the error.

", + "smithy.api#xmlName": "responseError" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template version that could not be deleted.

" + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseSuccessItem": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "VersionNumber": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "VersionNumber", + "smithy.api#documentation": "

The version number of the launch template.

", + "smithy.api#xmlName": "versionNumber" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template version that was successfully deleted.

" + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResult": { + "type": "structure", + "members": { + "SuccessfullyDeletedLaunchTemplateVersions": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfullyDeletedLaunchTemplateVersionSet", + "smithy.api#documentation": "

Information about the launch template versions that were successfully deleted.

", + "smithy.api#xmlName": "successfullyDeletedLaunchTemplateVersionSet" + } + }, + "UnsuccessfullyDeletedLaunchTemplateVersions": { + "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResponseErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfullyDeletedLaunchTemplateVersionSet", + "smithy.api#documentation": "

Information about the launch template versions that could not be deleted.

", + "smithy.api#xmlName": "unsuccessfullyDeletedLaunchTemplateVersionSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route from the specified local gateway route table.

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR range for the route. This must match the CIDR for the route exactly.

" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

\n Use a prefix list in place of DestinationCidrBlock. You cannot use \n DestinationPrefixListId and DestinationCidrBlock in the same request.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#LocalGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the route.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

\n Deletes a local gateway route table.\n

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway route table.\n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTable": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTable", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTable", + "smithy.api#documentation": "

Information about the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

\n Deletes a local gateway route table virtual interface group association.\n

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n The ID of the local gateway route table virtual interface group association.\n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "smithy.api#documentation": "

Information about the association.

", + "smithy.api#xmlName": "localGatewayRouteTableVirtualInterfaceGroupAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified association between a VPC and local gateway route table.

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociationId": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayRouteTableVpcAssociationResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociation": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociation", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVpcAssociation", + "smithy.api#documentation": "

Information about the association.

", + "smithy.api#xmlName": "localGatewayRouteTableVpcAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified local gateway virtual interface.

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Delete the specified local gateway interface group.

" + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupRequest": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway virtual interface group to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceGroupResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroup": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroup", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroup", + "smithy.api#documentation": "

Information about the deleted local gateway virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceRequest": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local virtual interface to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteLocalGatewayVirtualInterfaceResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterface": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterface", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterface", + "smithy.api#documentation": "

Information about the deleted local gateway virtual interface.

", + "smithy.api#xmlName": "localGatewayVirtualInterface" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteManagedPrefixList": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteManagedPrefixListRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteManagedPrefixListResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified managed prefix list. You must first remove all references to the prefix list in your resources.

" + } + }, + "com.amazonaws.ec2#DeleteManagedPrefixListRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteManagedPrefixListResult": { + "type": "structure", + "members": { + "PrefixList": { + "target": "com.amazonaws.ec2#ManagedPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "PrefixList", + "smithy.api#documentation": "

Information about the prefix list.

", + "smithy.api#xmlName": "prefixList" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNatGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNatGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNatGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified NAT gateway. Deleting a public NAT gateway disassociates its Elastic IP address, \n but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway \n routes in your route tables.

", + "smithy.api#examples": [ + { + "title": "To delete a NAT gateway", + "documentation": "This example deletes the specified NAT gateway.", + "input": { + "NatGatewayId": "nat-04ae55e711cec5680" + }, + "output": { + "NatGatewayId": "nat-04ae55e711cec5680" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteNatGatewayRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "NatGatewayId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNatGatewayResult": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkAclRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", + "smithy.api#examples": [ + { + "title": "To delete a network ACL", + "documentation": "This example deletes the specified network ACL.", + "input": { + "NetworkAclId": "acl-5fb85d36" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteNetworkAclEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkAclEntryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", + "smithy.api#examples": [ + { + "title": "To delete a network ACL entry", + "documentation": "This example deletes ingress rule number 100 from the specified network ACL.", + "input": { + "NetworkAclId": "acl-5fb85d36", + "RuleNumber": 100, + "Egress": true + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteNetworkAclEntryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network ACL.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkAclId" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number of the entry to delete.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ruleNumber" + } + }, + "Egress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Egress", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether the rule is an egress rule.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "egress" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkAclRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network ACL.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkAclId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Network Access Scope.

" + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Network Access Scope analysis.

" + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeAnalysisResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisId", + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAccessScopeResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeId", + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified network insights analysis.

" + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NetworkInsightsAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network insights analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsAnalysisResult": { + "type": "structure", + "members": { + "NetworkInsightsAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAnalysisId", + "smithy.api#documentation": "

The ID of the network insights analysis.

", + "smithy.api#xmlName": "networkInsightsAnalysisId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsPath": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsPathRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNetworkInsightsPathResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified path.

" + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsPathRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the path.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInsightsPathResult": { + "type": "structure", + "members": { + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPathId", + "smithy.api#documentation": "

The ID of the path.

", + "smithy.api#xmlName": "networkInsightsPathId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInterfaceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified network interface. You must detach the network interface before\n you can delete it.

", + "smithy.api#examples": [ + { + "title": "To delete a network interface", + "documentation": "This example deletes the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-e5aa89a3" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteNetworkInterfacePermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteNetworkInterfacePermissionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteNetworkInterfacePermissionResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a permission for a network interface. By default, you cannot delete the\n permission if the account for which you're removing the permission has attached the\n network interface to an instance. However, you can force delete the permission,\n regardless of any attachment.

" + } + }, + "com.amazonaws.ec2#DeleteNetworkInterfacePermissionRequest": { + "type": "structure", + "members": { + "NetworkInterfacePermissionId": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface permission.

", + "smithy.api#required": {} + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify true to remove the permission even if the network interface is\n attached to an instance.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteNetworkInterfacePermission.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInterfacePermissionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output for DeleteNetworkInterfacePermission.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteNetworkInterfaceRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteNetworkInterface.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeletePlacementGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeletePlacementGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified placement group. You must terminate all instances in the\n placement group before you can delete the placement group. You cannot delete a\n placement group that is a parent of a cluster placement group. Delete the cluster\n placement groups first. For more information, see\n Placement groups in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a placement group", + "documentation": "This example deletes the specified placement group.\n", + "input": { + "GroupName": "my-cluster" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#DeletePlacementGroupRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupNameWithResolver", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the placement group.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "groupName" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeletePublicIpv4Pool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeletePublicIpv4PoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeletePublicIpv4PoolResult" + }, + "traits": { + "smithy.api#documentation": "

Delete a public IPv4 pool. A public IPv4 pool is an EC2 IP address pool required for the public IPv4 CIDRs that you own and bring to Amazon Web Services to manage with IPAM. IPv6 addresses you bring to Amazon Web Services, however, use IPAM pools only.

" + } + }, + "com.amazonaws.ec2#DeletePublicIpv4PoolRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the public IPv4 pool you want to delete.

", + "smithy.api#required": {} + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) or Local Zone (LZ) network border group that the resource that the IP address is assigned to is in. Defaults to an AZ network border group. For more information on available Local Zones, see Local Zone availability in the Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeletePublicIpv4PoolResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReturnValue", + "smithy.api#documentation": "

Information about the result of deleting the public IPv4 pool.

", + "smithy.api#xmlName": "returnValue" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the queued purchases for the specified Reserved Instances.

" + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstancesError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstancesErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the error for a Reserved Instance whose queued purchase could not be\n deleted.

" + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstancesErrorCode": { + "type": "enum", + "members": { + "RESERVED_INSTANCES_ID_INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-instances-id-invalid" + } + }, + "RESERVED_INSTANCES_NOT_IN_QUEUED_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-instances-not-in-queued-state" + } + }, + "UNEXPECTED_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unexpected-error" + } + } + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstancesIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservationId", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ReservedInstancesIds": { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstancesIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Reserved Instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ReservedInstancesId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteQueuedReservedInstancesResult": { + "type": "structure", + "members": { + "SuccessfulQueuedPurchaseDeletions": { + "target": "com.amazonaws.ec2#SuccessfulQueuedPurchaseDeletionSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulQueuedPurchaseDeletionSet", + "smithy.api#documentation": "

Information about the queued purchases that were successfully deleted.

", + "smithy.api#xmlName": "successfulQueuedPurchaseDeletionSet" + } + }, + "FailedQueuedPurchaseDeletions": { + "target": "com.amazonaws.ec2#FailedQueuedPurchaseDeletionSet", + "traits": { + "aws.protocols#ec2QueryName": "FailedQueuedPurchaseDeletionSet", + "smithy.api#documentation": "

Information about the queued purchases that could not be deleted.

", + "smithy.api#xmlName": "failedQueuedPurchaseDeletionSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteRouteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route from the specified route table.

", + "smithy.api#examples": [ + { + "title": "To delete a route", + "documentation": "This example deletes the specified route from the specified route table.", + "input": { + "RouteTableId": "rtb-22574640", + "DestinationCidrBlock": "0.0.0.0/0" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteRouteRequest": { + "type": "structure", + "members": { + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the prefix list for the route.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "DestinationIpv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationIpv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

", + "smithy.api#xmlName": "destinationIpv6CidrBlock" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteRouteServerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteRouteServerResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route server.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteRouteServerEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteRouteServerEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteRouteServerEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route server endpoint.

\n

A route server endpoint is an Amazon Web Services-managed component inside a subnet that facilitates BGP (Border Gateway Protocol) connections between your route server and your BGP peers.

" + } + }, + "com.amazonaws.ec2#DeleteRouteServerEndpointRequest": { + "type": "structure", + "members": { + "RouteServerEndpointId": { + "target": "com.amazonaws.ec2#RouteServerEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server endpoint to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServerEndpointResult": { + "type": "structure", + "members": { + "RouteServerEndpoint": { + "target": "com.amazonaws.ec2#RouteServerEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpoint", + "smithy.api#documentation": "

Information about the deleted route server endpoint.

", + "smithy.api#xmlName": "routeServerEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServerPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteRouteServerPeerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteRouteServerPeerResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified BGP peer from a route server.

\n

A route server peer is a session between a route server endpoint and the device deployed in Amazon Web Services (such as a firewall appliance or other network security function running on an EC2 instance). The device must meet these requirements:

\n
    \n
  • \n

    Have an elastic network interface in the VPC

    \n
  • \n
  • \n

    Support BGP (Border Gateway Protocol)

    \n
  • \n
  • \n

    Can initiate BGP sessions

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#DeleteRouteServerPeerRequest": { + "type": "structure", + "members": { + "RouteServerPeerId": { + "target": "com.amazonaws.ec2#RouteServerPeerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server peer to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServerPeerResult": { + "type": "structure", + "members": { + "RouteServerPeer": { + "target": "com.amazonaws.ec2#RouteServerPeer", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPeer", + "smithy.api#documentation": "

Information about the deleted route server peer.

", + "smithy.api#xmlName": "routeServerPeer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServerRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteRouteServerResult": { + "type": "structure", + "members": { + "RouteServer": { + "target": "com.amazonaws.ec2#RouteServer", + "traits": { + "aws.protocols#ec2QueryName": "RouteServer", + "smithy.api#documentation": "

Information about the deleted route server.

", + "smithy.api#xmlName": "routeServer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteRouteTableRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.

", + "smithy.api#examples": [ + { + "title": "To delete a route table", + "documentation": "This example deletes the specified route table.", + "input": { + "RouteTableId": "rtb-22574640" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteRouteTableRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSecondaryNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSecondaryNetworkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteSecondaryNetworkResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a secondary network. You must delete all secondary subnets in the secondary network before you can delete the secondary network.

", + "smithy.api#examples": [ + { + "title": "To delete a secondary network", + "documentation": "This example deletes a secondary network.", + "input": { + "SecondaryNetworkId": "sn-0123456789abcdef0", + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + }, + "output": { + "SecondaryNetwork": { + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkArn": "arn:aws:ec2:us-east-2:123456789012:secondary-network/sn-0123456789abcdef0", + "OwnerId": "123456789012", + "Type": "rdma", + "State": "delete-in-progress", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "sn-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/16", + "State": "disassociating" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Network" + } + ] + }, + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteSecondaryNetworkRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the secondary network.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSecondaryNetworkResult": { + "type": "structure", + "members": { + "SecondaryNetwork": { + "target": "com.amazonaws.ec2#SecondaryNetwork", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetwork", + "smithy.api#documentation": "

Information about the secondary network.

", + "smithy.api#xmlName": "secondaryNetwork" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteSecondarySubnet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSecondarySubnetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteSecondarySubnetResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a secondary subnet. A secondary subnet must not contain any secondary interfaces prior to deletion.

", + "smithy.api#examples": [ + { + "title": "To delete a secondary subnet", + "documentation": "This example deletes a secondary subnet.", + "input": { + "SecondarySubnetId": "ss-0123456789abcdef0", + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + }, + "output": { + "SecondarySubnet": { + "SecondarySubnetId": "ss-0123456789abcdef0", + "SecondarySubnetArn": "arn:aws:ec2:us-east-2:123456789012:secondary-subnet/ss-0123456789abcdef0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "OwnerId": "123456789012", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "ss-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/24", + "State": "disassociating" + } + ], + "State": "delete-in-progress", + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Subnet" + } + ] + }, + "ClientToken": "550e8400-e29b-41d4-a716-446655440000" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteSecondarySubnetRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the secondary subnet to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSecondarySubnetResult": { + "type": "structure", + "members": { + "SecondarySubnet": { + "target": "com.amazonaws.ec2#SecondarySubnet", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnet", + "smithy.api#documentation": "

Information about the secondary subnet being deleted.

", + "smithy.api#xmlName": "secondarySubnet" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteSecurityGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSecurityGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteSecurityGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a security group.

\n

If you attempt to delete a security group that is associated with an instance or network interface, is\n\t\t\t referenced by another security group in the same VPC, or has a VPC association, the operation fails with\n\t\t\t\tDependencyViolation.

", + "smithy.api#examples": [ + { + "title": "To delete a security group", + "documentation": "This example deletes the specified security group.", + "input": { + "GroupId": "sg-903004f8" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#DeleteSecurityGroupRequest": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the security group. You can specify either the\n security group name or the security group ID. For security groups in a nondefault VPC,\n you must specify the security group ID.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSecurityGroupResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the deleted security group.

", + "smithy.api#xmlName": "groupId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSnapshotRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified snapshot.

\n

When you make periodic snapshots of a volume, the snapshots are incremental, and only the\n blocks on the device that have changed since your last snapshot are saved in the new snapshot.\n When you delete a snapshot, only the data not needed for any other snapshot is removed. So\n regardless of which prior snapshots have been deleted, all active snapshots will have access\n to all the information needed to restore the volume.

\n

You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI.\n You must first deregister the AMI before you can delete the snapshot.

\n

For more information, see Delete an Amazon EBS snapshot in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a snapshot", + "documentation": "This example deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.", + "input": { + "SnapshotId": "snap-1234567890abcdef0" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#DeleteSnapshotRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EBS snapshot.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSnapshotResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeleteSnapshotReturnCode", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeleteSnapshotReturnCode": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "ReturnCode": { + "target": "com.amazonaws.ec2#SnapshotReturnCodes", + "traits": { + "aws.protocols#ec2QueryName": "ReturnCode", + "smithy.api#documentation": "

The result code from the snapshot deletion attempt. Possible values:

\n
    \n
  • \n

    \n success - The snapshot was successfully deleted.

    \n
  • \n
  • \n

    \n skipped - The snapshot was not deleted because it's associated with other\n AMIs.

    \n
  • \n
  • \n

    \n missing-permissions - The snapshot was not deleted because the role lacks\n DeleteSnapshot permissions. For more information, see How\n Amazon EBS works with IAM.

    \n
  • \n
  • \n

    \n internal-error - The snapshot was not deleted due to a server\n error.

    \n
  • \n
  • \n

    \n client-error - The snapshot was not deleted due to a client configuration\n error.

    \n
  • \n
\n

For details about an error, check the DeleteSnapshot event in the CloudTrail\n event history. For more information, see View event history\n in the Amazon Web Services CloudTrail User Guide.

", + "smithy.api#xmlName": "returnCode" + } + } + }, + "traits": { + "smithy.api#documentation": "

The snapshot ID and its deletion result code.

" + } + }, + "com.amazonaws.ec2#DeleteSpotDatafeedSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSpotDatafeedSubscriptionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the data feed for Spot Instances.

", + "smithy.api#examples": [ + { + "title": "To cancel a Spot Instance data feed subscription", + "documentation": "This example deletes a Spot data feed subscription for the account." + } + ] + } + }, + "com.amazonaws.ec2#DeleteSpotDatafeedSubscriptionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteSpotDatafeedSubscription.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSubnet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSubnetRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

", + "smithy.api#examples": [ + { + "title": "To delete a subnet", + "documentation": "This example deletes the specified subnet.", + "input": { + "SubnetId": "subnet-9d4a7b6c" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteSubnetCidrReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteSubnetCidrReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteSubnetCidrReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a subnet CIDR reservation.

" + } + }, + "com.amazonaws.ec2#DeleteSubnetCidrReservationRequest": { + "type": "structure", + "members": { + "SubnetCidrReservationId": { + "target": "com.amazonaws.ec2#SubnetCidrReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet CIDR reservation.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteSubnetCidrReservationResult": { + "type": "structure", + "members": { + "DeletedSubnetCidrReservation": { + "target": "com.amazonaws.ec2#SubnetCidrReservation", + "traits": { + "aws.protocols#ec2QueryName": "DeletedSubnetCidrReservation", + "smithy.api#documentation": "

Information about the deleted subnet CIDR reservation.

", + "smithy.api#xmlName": "deletedSubnetCidrReservation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteSubnetRequest": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTagsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified set of tags from the specified set of resources.

\n

To list the current tags, use DescribeTags. For more information about\n tags, see Tag\n your Amazon EC2 resources in the Amazon Elastic Compute Cloud User\n Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a tag from a resource", + "documentation": "This example deletes the tag Stack=test from the specified image.", + "input": { + "Resources": [ + "ami-78a54011" + ], + "Tags": [ + { + "Key": "Stack", + "Value": "test" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteTagsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Resources": { + "target": "com.amazonaws.ec2#ResourceIdList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the resources, separated by spaces.

\n

Constraints: Up to 1000 resource IDs. We recommend breaking up this request into smaller batches.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "resourceId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "Tag", + "smithy.api#documentation": "

The tags to delete. Specify a tag key and an optional tag value to delete\n specific tags. If you specify a tag key without a tag value, we delete any tag with this\n key regardless of its value. If you specify a tag key with an empty string as the tag\n value, we delete the tag only if its value is an empty string.

\n

If you omit this parameter, we delete all user-defined tags for the specified\n resources. We do not delete Amazon Web Services-generated tags (tags that have the aws:\n prefix).

\n

Constraints: Up to 1000 tags.

", + "smithy.api#xmlName": "tag" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilter": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilterRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilterResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Traffic Mirror filter.

\n

You cannot delete a Traffic Mirror filter that is in use by a Traffic Mirror session.

" + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilterRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilterResult": { + "type": "structure", + "members": { + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterId", + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#xmlName": "trafficMirrorFilterId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilterRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Traffic Mirror rule.

" + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterRuleId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleIdWithResolver", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror rule.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorFilterRuleResult": { + "type": "structure", + "members": { + "TrafficMirrorFilterRuleId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterRuleId", + "smithy.api#documentation": "

The ID of the deleted Traffic Mirror rule.

", + "smithy.api#xmlName": "trafficMirrorFilterRuleId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorSessionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorSessionResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Traffic Mirror session.

" + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorSessionRequest": { + "type": "structure", + "members": { + "TrafficMirrorSessionId": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror session.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorSessionResult": { + "type": "structure", + "members": { + "TrafficMirrorSessionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorSessionId", + "smithy.api#documentation": "

The ID of the deleted Traffic Mirror session.

", + "smithy.api#xmlName": "trafficMirrorSessionId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorTarget": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorTargetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTrafficMirrorTargetResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Traffic Mirror target.

\n

You cannot delete a Traffic Mirror target that is in use by a Traffic Mirror session.

" + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorTargetRequest": { + "type": "structure", + "members": { + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror target.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTrafficMirrorTargetResult": { + "type": "structure", + "members": { + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorTargetId", + "smithy.api#documentation": "

The ID of the deleted Traffic Mirror target.

", + "smithy.api#xmlName": "trafficMirrorTargetId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified transit gateway.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a Transit Gateway attachment for a Client VPN endpoint. The Transit Gateway owner can delete the attachment to remove the association between the Client VPN endpoint and the Transit Gateway.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Transit Gateway attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayClientVpnAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayClientVpnAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayClientVpnAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayClientVpnAttachment", + "smithy.api#documentation": "

Information about the Transit Gateway Client VPN attachment.

", + "smithy.api#xmlName": "transitGatewayClientVpnAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnect": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnectRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnectResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Connect attachment. You must first delete any Connect peers for\n the attachment.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified Connect peer.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerRequest": { + "type": "structure", + "members": { + "TransitGatewayConnectPeerId": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Connect peer.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnectPeerResult": { + "type": "structure", + "members": { + "TransitGatewayConnectPeer": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeer", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnectPeer", + "smithy.api#documentation": "

Information about the deleted Connect peer.

", + "smithy.api#xmlName": "transitGatewayConnectPeer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnectRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Connect attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayConnectResult": { + "type": "structure", + "members": { + "TransitGatewayConnect": { + "target": "com.amazonaws.ec2#TransitGatewayConnect", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnect", + "smithy.api#documentation": "

Information about the deleted Connect attachment.

", + "smithy.api#xmlName": "transitGatewayConnect" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes an entry from a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway metering policy containing the entry to delete.

", + "smithy.api#required": {} + } + }, + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number of the metering policy entry to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyEntryResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyEntry": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicyEntry", + "smithy.api#documentation": "

Information about the deleted transit gateway metering policy entry.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicyEntry" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway metering policy to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMeteringPolicyResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicy": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicy", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicy", + "smithy.api#documentation": "

Information about the deleted transit gateway metering policy.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayMulticastDomainResult": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomain": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomain", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomain", + "smithy.api#documentation": "

Information about the deleted transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomain" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a transit gateway peering attachment.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway peering attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPeeringAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayPeeringAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPeeringAttachment", + "smithy.api#documentation": "

The transit gateway peering attachment.

", + "smithy.api#xmlName": "transitGatewayPeeringAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified transit gateway policy table.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified transit gateway policy table entry.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#required": {} + } + }, + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number of the policy table entry to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableEntryResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableEntry": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntry", + "smithy.api#documentation": "

Describes a transit gateway policy table entry

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntry" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The transit gateway policy table to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPolicyTableResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTable": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTable", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTable", + "smithy.api#documentation": "

Provides details about the deleted transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReference": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a reference (route) to a prefix list in a specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {} + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayPrefixListReferenceResult": { + "type": "structure", + "members": { + "TransitGatewayPrefixListReference": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReference", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPrefixListReference", + "smithy.api#documentation": "

Information about the deleted prefix list reference.

", + "smithy.api#xmlName": "transitGatewayPrefixListReference" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayResult": { + "type": "structure", + "members": { + "TransitGateway": { + "target": "com.amazonaws.ec2#TransitGateway", + "traits": { + "aws.protocols#ec2QueryName": "TransitGateway", + "smithy.api#documentation": "

Information about the deleted transit gateway.

", + "smithy.api#xmlName": "transitGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified route from the specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR range for the route. This must match the CIDR for the route exactly.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#TransitGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the route.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified transit gateway route table. Before you can delete a transit gateway route table, you\n must disassociate all attachments from it by using DisassociateTransitGatewayRouteTable and wait for the disassociations to\n complete. You can't delete a transit gateway route table that is the default association route table\n or default propagation route table for the transit gateway. To change the default route tables, use\n ModifyTransitGateway.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncement": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementResult" + }, + "traits": { + "smithy.api#documentation": "

Advertises to the transit gateway that a transit gateway route table is deleted.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The transit gateway route table ID that's being deleted.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncementResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncement": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncement", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncement", + "smithy.api#documentation": "

Provides details about a deleted transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncement" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTableRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayRouteTableResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTable": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTable", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTable", + "smithy.api#documentation": "

Information about the deleted transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTable" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPC attachment.

" + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteTransitGatewayVpcAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachment", + "smithy.api#documentation": "

Information about the deleted VPC attachment.

", + "smithy.api#xmlName": "transitGatewayVpcAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an Amazon Web Services Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessEndpointRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessEndpointResult": { + "type": "structure", + "members": { + "VerifiedAccessEndpoint": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpoint", + "smithy.api#documentation": "

Details about the Verified Access endpoint.

", + "smithy.api#xmlName": "verifiedAccessEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an Amazon Web Services Verified Access group.

" + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessGroupRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access group.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessGroupResult": { + "type": "structure", + "members": { + "VerifiedAccessGroup": { + "target": "com.amazonaws.ec2#VerifiedAccessGroup", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroup", + "smithy.api#documentation": "

Details about the Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessInstanceResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessInstanceRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessInstanceResult": { + "type": "structure", + "members": { + "VerifiedAccessInstance": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstance", + "smithy.api#documentation": "

Details about the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstance" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessTrustProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderResult" + }, + "traits": { + "smithy.api#documentation": "

Delete an Amazon Web Services Verified Access trust provider.

" + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderRequest": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access trust provider.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVerifiedAccessTrustProviderResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProvider", + "smithy.api#documentation": "

Details about the Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProvider" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVolumeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified EBS volume. The volume must be in the available state\n (not attached to an instance).

\n

The volume can remain in the deleting state for several minutes.

\n

For more information, see Delete an Amazon EBS volume in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a volume", + "documentation": "This example deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned.", + "input": { + "VolumeId": "vol-049df61146c4d7901" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#DeleteVolumeRequest": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPC. You must detach or delete all gateways and resources that are associated \n\t\t with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, \n\t\t delete all security groups associated with the VPC (except the default one), delete all route tables \n\t\t associated with the VPC (except the default one), and so on. When you delete the VPC, it deletes the \n\t\t default security group, network ACL, and route table for the VPC.

\n

If you created a flow log for the VPC that you are deleting, note that flow logs for deleted \n VPCs are eventually automatically removed.

", + "smithy.api#examples": [ + { + "title": "To delete a VPC", + "documentation": "This example deletes the specified VPC.", + "input": { + "VpcId": "vpc-a01106c2" + } + } + ] + } + }, + "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusion": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionResult" + }, + "traits": { + "smithy.api#documentation": "

Delete a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that exempts it from the account’s BPA mode and will allow bidirectional or egress-only access. You can create BPA exclusions for VPCs and subnets even when BPA is not enabled on the account to ensure that there is no traffic disruption to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ExclusionId": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the exclusion.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcBlockPublicAccessExclusionResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessExclusion": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessExclusion", + "smithy.api#documentation": "

Details about an exclusion.

", + "smithy.api#xmlName": "vpcBlockPublicAccessExclusion" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEncryptionControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcEncryptionControlRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcEncryptionControlResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a VPC Encryption Control configuration. This removes the encryption policy enforcement from the specified VPC.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DeleteVpcEncryptionControlRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEncryptionControlId": { + "target": "com.amazonaws.ec2#VpcEncryptionControlId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC Encryption Control resource to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEncryptionControlResult": { + "type": "structure", + "members": { + "VpcEncryptionControl": { + "target": "com.amazonaws.ec2#VpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "VpcEncryptionControl", + "smithy.api#documentation": "

Information about the deleted VPC Encryption Control configuration.

", + "smithy.api#xmlName": "vpcEncryptionControl" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPC endpoint connection notifications.

" + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ConnectionNotificationIds": { + "target": "com.amazonaws.ec2#ConnectionNotificationIdsList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the notifications.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ConnectionNotificationId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotificationsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the notifications that could not be deleted\n successfully.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPC endpoint service configurations. Before you can delete\n an endpoint service configuration, you must reject any Available or\n PendingAcceptance interface endpoint connections that are attached to\n the service.

" + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceIds": { + "target": "com.amazonaws.ec2#VpcEndpointServiceIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the services.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ServiceId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointServiceConfigurationsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the service configurations that were not deleted, if\n applicable.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPC endpoints.

\n

When you delete a gateway endpoint, we delete the endpoint routes in the route tables for the endpoint.

\n

When you delete a Gateway Load Balancer endpoint, we delete its endpoint network interfaces. \n You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted.

\n

When you delete an interface endpoint, we delete its endpoint network interfaces.

" + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEndpointIds": { + "target": "com.amazonaws.ec2#VpcEndpointIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the VPC endpoints.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "VpcEndpointId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcEndpointsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the VPC endpoints that were not successfully deleted.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcPeeringConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpcPeeringConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpcPeeringConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a VPC peering connection. Either the owner of the requester VPC or the owner\n of the accepter VPC can delete the VPC peering connection if it's in the\n active state. The owner of the requester VPC can delete a VPC peering\n connection in the pending-acceptance state. You cannot delete a VPC peering\n connection that's in the failed or rejected state.

" + } + }, + "com.amazonaws.ec2#DeleteVpcPeeringConnectionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC peering connection.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpcPeeringConnectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpcRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpnConcentrator": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpnConcentratorRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeleteVpnConcentratorResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPN concentrator.

" + } + }, + "com.amazonaws.ec2#DeleteVpnConcentratorRequest": { + "type": "structure", + "members": { + "VpnConcentratorId": { + "target": "com.amazonaws.ec2#VpnConcentratorId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN concentrator to delete.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpnConcentratorResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeleteVpnConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpnConnectionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified VPN connection.

\n

If you're deleting the VPC and its associated components, we recommend that you detach\n the virtual private gateway from the VPC and delete the VPC before deleting the VPN\n connection. If you believe that the tunnel credentials for your VPN connection have been\n compromised, you can delete the VPN connection and create a new one that has new keys,\n without needing to delete the VPC or virtual private gateway. If you create a new VPN\n connection, you must reconfigure the customer gateway device using the new configuration\n information returned with the new VPN connection ID.

\n

For certificate-based authentication, delete all Certificate Manager (ACM) private\n certificates used for the Amazon Web Services-side tunnel endpoints for the VPN\n connection before deleting the VPN connection.

" + } + }, + "com.amazonaws.ec2#DeleteVpnConnectionRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN connection.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteVpnConnection.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpnConnectionRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpnConnectionRouteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified static route associated with a VPN connection between an\n existing virtual private gateway and a VPN customer gateway. The static route allows\n traffic to be routed from the virtual private gateway to the VPN customer\n gateway.

" + } + }, + "com.amazonaws.ec2#DeleteVpnConnectionRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR block associated with the local subnet of the customer network.

", + "smithy.api#required": {} + } + }, + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN connection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteVpnConnectionRoute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeleteVpnGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeleteVpnGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the specified virtual private gateway. You must first detach the virtual\n private gateway from the VPC. Note that you don't need to delete the virtual private\n gateway if you plan to delete and recreate the VPN connection between your VPC and your\n network.

" + } + }, + "com.amazonaws.ec2#DeleteVpnGatewayRequest": { + "type": "structure", + "members": { + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeleteVpnGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeprecationTimeCondition": { + "type": "structure", + "members": { + "MaximumDaysSinceDeprecated": { + "target": "com.amazonaws.ec2#MaximumDaysSinceDeprecatedValue", + "traits": { + "aws.protocols#ec2QueryName": "MaximumDaysSinceDeprecated", + "smithy.api#documentation": "

The maximum number of days that have elapsed since the image was deprecated. When set to\n 0, no deprecated images are allowed.

", + "smithy.api#xmlName": "maximumDaysSinceDeprecated" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maximum period since deprecation for allowed images.

" + } + }, + "com.amazonaws.ec2#DeprecationTimeConditionRequest": { + "type": "structure", + "members": { + "MaximumDaysSinceDeprecated": { + "target": "com.amazonaws.ec2#MaximumDaysSinceDeprecatedValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days that have elapsed since the image was deprecated. Set to\n 0 to exclude all deprecated images.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maximum period since deprecation for allowed images.

" + } + }, + "com.amazonaws.ec2#DeprovisionByoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeprovisionByoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeprovisionByoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Releases the specified address range that you provisioned for use with your Amazon Web Services resources\n through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

\n

Before you can release an address range, you must stop advertising it and you must not \n have any IP addresses allocated from its address range.

" + } + }, + "com.amazonaws.ec2#DeprovisionByoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The address range, in CIDR notation. The prefix must be the same prefix \n that you specified when you provisioned the address range.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeprovisionByoipCidrResult": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidr", + "smithy.api#documentation": "

Information about the address range.

", + "smithy.api#xmlName": "byoipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeprovisionIpamByoasn": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeprovisionIpamByoasnRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeprovisionIpamByoasnResult" + }, + "traits": { + "smithy.api#documentation": "

Deprovisions your Autonomous System Number (ASN) from your Amazon Web Services account. This action can only be called after any BYOIP CIDR associations are removed from your Amazon Web Services account with DisassociateIpamByoasn.\n For more information, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

" + } + }, + "com.amazonaws.ec2#DeprovisionIpamByoasnRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPAM ID.

", + "smithy.api#required": {} + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An ASN.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeprovisionIpamByoasnResult": { + "type": "structure", + "members": { + "Byoasn": { + "target": "com.amazonaws.ec2#Byoasn", + "traits": { + "aws.protocols#ec2QueryName": "Byoasn", + "smithy.api#documentation": "

An ASN and BYOIP CIDR association.

", + "smithy.api#xmlName": "byoasn" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeprovisionIpamPoolCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeprovisionIpamPoolCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeprovisionIpamPoolCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a CIDR from a pool that has a source pool, the CIDR is recycled back into the source pool. For more information, see Deprovision pool CIDRs in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#DeprovisionIpamPoolCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the pool that has the CIDR you want to deprovision.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR which you want to deprovision from the pool.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeprovisionIpamPoolCidrResult": { + "type": "structure", + "members": { + "IpamPoolCidr": { + "target": "com.amazonaws.ec2#IpamPoolCidr", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolCidr", + "smithy.api#documentation": "

The deprovisioned pool CIDR.

", + "smithy.api#xmlName": "ipamPoolCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Deprovision a CIDR from a public IPv4 pool.

" + } + }, + "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the pool that you want to deprovision the CIDR from.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR you want to deprovision from the pool.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeprovisionPublicIpv4PoolCidrResult": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the pool that you deprovisioned the CIDR from.

", + "smithy.api#xmlName": "poolId" + } + }, + "DeprovisionedAddresses": { + "target": "com.amazonaws.ec2#DeprovisionedAddressSet", + "traits": { + "aws.protocols#ec2QueryName": "DeprovisionedAddressSet", + "smithy.api#documentation": "

The deprovisioned CIDRs.

", + "smithy.api#xmlName": "deprovisionedAddressSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeprovisionedAddressSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeregisterImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeregisterImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeregisterImageResult" + }, + "traits": { + "smithy.api#documentation": "

Deregisters the specified AMI. A deregistered AMI can't be used to launch new\n instances.

\n

If a deregistered EBS-backed AMI matches a Recycle Bin retention rule, it moves to the\n Recycle Bin for the specified retention period. It can be restored before its retention period\n expires, after which it is permanently deleted. If the deregistered AMI doesn't match a\n retention rule, it is permanently deleted immediately. For more information, see Recover deleted Amazon EBS\n snapshots and EBS-backed AMIs with Recycle Bin in the Amazon EBS User\n Guide.

\n

When deregistering an EBS-backed AMI, you can optionally delete its associated snapshots\n at the same time. However, if a snapshot is associated with multiple AMIs, it won't be deleted\n even if specified for deletion, although the AMI will still be deregistered.

\n

Deregistering an AMI does not delete the following:

\n
    \n
  • \n

    Instances already launched from the AMI. You'll continue to incur usage costs for the\n instances until you terminate them.

    \n
  • \n
  • \n

    For EBS-backed AMIs: Snapshots that are associated with multiple AMIs. You'll continue\n to incur snapshot storage costs.

    \n
  • \n
  • \n

    For instance store-backed AMIs: The files uploaded to Amazon S3 during AMI creation. You'll\n continue to incur S3 storage costs.

    \n
  • \n
\n

For more information, see Deregister an Amazon EC2 AMI in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DeregisterImageRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DeleteAssociatedSnapshots": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to delete the snapshots associated with the AMI during\n deregistration.

\n \n

If a snapshot is associated with multiple AMIs, it is not deleted, regardless of this setting.

\n
\n

Default: The snapshots are not deleted.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DeregisterImage.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeregisterImageResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "DeleteSnapshotResults": { + "target": "com.amazonaws.ec2#DeleteSnapshotResultSet", + "traits": { + "aws.protocols#ec2QueryName": "DeleteSnapshotResultSet", + "smithy.api#documentation": "

The deletion result for each snapshot associated with the AMI, including the snapshot ID\n and its success or error code.

", + "smithy.api#xmlName": "deleteSnapshotResultSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

Deregisters tag keys to prevent tags that have the specified tag keys from being\n included in scheduled event notifications for resources in the Region.

" + } + }, + "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceTagAttribute": { + "target": "com.amazonaws.ec2#DeregisterInstanceTagAttributeRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the tag keys to deregister.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeregisterInstanceEventNotificationAttributesResult": { + "type": "structure", + "members": { + "InstanceTagAttribute": { + "target": "com.amazonaws.ec2#InstanceTagNotificationAttribute", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTagAttribute", + "smithy.api#documentation": "

The resulting set of tag keys.

", + "smithy.api#xmlName": "instanceTagAttribute" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeregisterInstanceTagAttributeRequest": { + "type": "structure", + "members": { + "IncludeAllTagsOfInstance": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to deregister all tag keys in the current Region. Specify\n false to deregister all tag keys.

" + } + }, + "InstanceTagKeys": { + "target": "com.amazonaws.ec2#InstanceTagKeySet", + "traits": { + "smithy.api#documentation": "

Information about the tag keys to deregister.

", + "smithy.api#xmlName": "InstanceTagKey" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the tag keys to deregister for the current Region. You can either\n specify individual tag keys or deregister all tag keys in the current Region. You must\n specify either IncludeAllTagsOfInstance or InstanceTagKeys in the\n request

" + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersResult" + }, + "traits": { + "smithy.api#documentation": "

Deregisters the specified members (network interfaces) from the transit gateway multicast group.

" + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#TransitGatewayNetworkInterfaceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the group members' network interfaces.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupMembersResult": { + "type": "structure", + "members": { + "DeregisteredMulticastGroupMembers": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDeregisteredGroupMembers", + "traits": { + "aws.protocols#ec2QueryName": "DeregisteredMulticastGroupMembers", + "smithy.api#documentation": "

Information about the deregistered members.

", + "smithy.api#xmlName": "deregisteredMulticastGroupMembers" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSources": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesResult" + }, + "traits": { + "smithy.api#documentation": "

Deregisters the specified sources (network interfaces) from the transit gateway multicast group.

" + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#TransitGatewayNetworkInterfaceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the group sources' network interfaces.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeregisterTransitGatewayMulticastGroupSourcesResult": { + "type": "structure", + "members": { + "DeregisteredMulticastGroupSources": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDeregisteredGroupSources", + "traits": { + "aws.protocols#ec2QueryName": "DeregisteredMulticastGroupSources", + "smithy.api#documentation": "

Information about the deregistered group sources.

", + "smithy.api#xmlName": "deregisteredMulticastGroupSources" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAccountAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAccountAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAccountAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes attributes of your Amazon Web Services account. The following are the supported account attributes:

\n
    \n
  • \n

    \n default-vpc: The ID of the default VPC for your account, or none.

    \n
  • \n
  • \n

    \n max-instances: This attribute is no longer supported. The returned\n value does not reflect your actual vCPU limit for running On-Demand Instances.\n For more information, see On-Demand Instance Limits in the\n Amazon Elastic Compute Cloud User Guide.

    \n
  • \n
  • \n

    \n max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate.

    \n
  • \n
  • \n

    \n supported-platforms: This attribute is deprecated.

    \n
  • \n
  • \n

    \n vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate.

    \n
  • \n
  • \n

    \n vpc-max-security-groups-per-interface: The maximum number of security groups\n that you can assign to a network interface.

    \n
  • \n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe a single attribute for your AWS account", + "documentation": "This example describes the supported-platforms attribute for your AWS account.", + "input": { + "AttributeNames": [ + "supported-platforms" + ] + }, + "output": { + "AccountAttributes": [ + { + "AttributeName": "supported-platforms", + "AttributeValues": [ + { + "AttributeValue": "EC2" + }, + { + "AttributeValue": "VPC" + } + ] + } + ] + } + }, + { + "title": "To describe all attributes for your AWS account", + "documentation": "This example describes the attributes for your AWS account.", + "output": { + "AccountAttributes": [ + { + "AttributeName": "supported-platforms", + "AttributeValues": [ + { + "AttributeValue": "EC2" + }, + { + "AttributeValue": "VPC" + } + ] + }, + { + "AttributeName": "vpc-max-security-groups-per-interface", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + }, + { + "AttributeName": "max-elastic-ips", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + }, + { + "AttributeName": "max-instances", + "AttributeValues": [ + { + "AttributeValue": "20" + } + ] + }, + { + "AttributeName": "vpc-max-elastic-ips", + "AttributeValues": [ + { + "AttributeValue": "5" + } + ] + }, + { + "AttributeName": "default-vpc", + "AttributeValues": [ + { + "AttributeValue": "none" + } + ] + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeAccountAttributesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AttributeNames": { + "target": "com.amazonaws.ec2#AccountAttributeNameStringList", + "traits": { + "aws.protocols#ec2QueryName": "AttributeName", + "smithy.api#documentation": "

The account attribute names.

", + "smithy.api#xmlName": "attributeName" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAccountAttributesResult": { + "type": "structure", + "members": { + "AccountAttributes": { + "target": "com.amazonaws.ec2#AccountAttributeList", + "traits": { + "aws.protocols#ec2QueryName": "AccountAttributeSet", + "smithy.api#documentation": "

Information about the account attributes.

", + "smithy.api#xmlName": "accountAttributeSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAccountVpcEncryptionControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the account-level VPC Encryption Control configuration for your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAccountVpcEncryptionControlResult": { + "type": "structure", + "members": { + "AccountVpcEncryptionControl": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "AccountVpcEncryptionControl", + "smithy.api#documentation": "

Information about the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "accountVpcEncryptionControl" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAddressTransfers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAddressTransfersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAddressTransfersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes an Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon VPC User Guide.

\n

When you transfer an Elastic IP address, there is a two-step handshake\n between the source and transfer Amazon Web Services accounts. When the source account starts the transfer,\n the transfer account has seven days to accept the Elastic IP address\n transfer. During those seven days, the source account can view the\n pending transfer by using this action. After seven days, the\n transfer expires and ownership of the Elastic IP\n address returns to the source\n account. Accepted transfers are visible to the source account for 14 days\n after the transfers have been accepted.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AddressTransfers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeAddressTransfersMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeAddressTransfersRequest": { + "type": "structure", + "members": { + "AllocationIds": { + "target": "com.amazonaws.ec2#AllocationIdList", + "traits": { + "smithy.api#documentation": "

The allocation IDs of Elastic IP addresses.

", + "smithy.api#xmlName": "AllocationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeAddressTransfersMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of address transfers to return in one page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAddressTransfersResult": { + "type": "structure", + "members": { + "AddressTransfers": { + "target": "com.amazonaws.ec2#AddressTransferList", + "traits": { + "aws.protocols#ec2QueryName": "AddressTransferSet", + "smithy.api#documentation": "

The Elastic IP address transfer.

", + "smithy.api#xmlName": "addressTransferSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAddresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAddressesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Elastic IP addresses or all of your Elastic IP addresses.

", + "smithy.api#examples": [ + { + "title": "To describe your Elastic IP addresses", + "documentation": "This example describes your Elastic IP addresses.", + "output": { + "Addresses": [ + { + "InstanceId": "i-1234567890abcdef0", + "PublicIp": "198.51.100.0", + "Domain": "standard" + }, + { + "Domain": "vpc", + "InstanceId": "i-1234567890abcdef0", + "NetworkInterfaceId": "eni-12345678", + "AssociationId": "eipassoc-12345678", + "NetworkInterfaceOwnerId": "123456789012", + "PublicIp": "203.0.113.0", + "AllocationId": "eipalloc-12345678", + "PrivateIpAddress": "10.0.1.241" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeAddressesAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAddressesAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAddressesAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the attributes of the specified Elastic IP addresses. For requirements, see Using reverse DNS for email applications.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Addresses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeAddressesAttributeRequest": { + "type": "structure", + "members": { + "AllocationIds": { + "target": "com.amazonaws.ec2#AllocationIds", + "traits": { + "smithy.api#documentation": "

[EC2-VPC] The allocation IDs.

", + "smithy.api#xmlName": "AllocationId" + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#AddressAttributeName", + "traits": { + "smithy.api#documentation": "

The attribute of the IP address.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#AddressMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAddressesAttributeResult": { + "type": "structure", + "members": { + "Addresses": { + "target": "com.amazonaws.ec2#AddressSet", + "traits": { + "aws.protocols#ec2QueryName": "AddressSet", + "smithy.api#documentation": "

Information about the IP addresses.

", + "smithy.api#xmlName": "addressSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAddressesRequest": { + "type": "structure", + "members": { + "PublicIps": { + "target": "com.amazonaws.ec2#PublicIpStringList", + "traits": { + "smithy.api#documentation": "

One or more Elastic IP addresses.

\n

Default: Describes all your Elastic IP addresses.

", + "smithy.api#xmlName": "PublicIp" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n allocation-id - The allocation ID for the address.

    \n
  • \n
  • \n

    \n association-id - The association ID for the address.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance the address is associated with, if any.

    \n
  • \n
  • \n

    \n network-border-group - A unique set of Availability Zones, Local Zones,\n or Wavelength Zones from where Amazon Web Services advertises IP addresses.

    \n
  • \n
  • \n

    \n network-interface-id - The ID of the network interface that the address is associated with, if any.

    \n
  • \n
  • \n

    \n network-interface-owner-id - The Amazon Web Services account ID of the owner.

    \n
  • \n
  • \n

    \n private-ip-address - The private IP address associated with the Elastic IP address.

    \n
  • \n
  • \n

    \n public-ip - The Elastic IP address, or the carrier IP address.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "AllocationIds": { + "target": "com.amazonaws.ec2#AllocationIdList", + "traits": { + "smithy.api#documentation": "

Information about the allocation IDs.

", + "smithy.api#xmlName": "AllocationId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAddressesResult": { + "type": "structure", + "members": { + "Addresses": { + "target": "com.amazonaws.ec2#AddressList", + "traits": { + "aws.protocols#ec2QueryName": "AddressesSet", + "smithy.api#documentation": "

Information about the Elastic IP addresses.

", + "smithy.api#xmlName": "addressesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAggregateIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAggregateIdFormatRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAggregateIdFormatResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the longer ID format settings for all resource types in a specific\n Region. This request is useful for performing a quick audit to determine whether a\n specific Region is fully opted in for longer IDs (17-character IDs).

\n

This request only returns information about resource types that support longer IDs.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc |\n vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

" + } + }, + "com.amazonaws.ec2#DescribeAggregateIdFormatRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAggregateIdFormatResult": { + "type": "structure", + "members": { + "UseLongIdsAggregated": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "UseLongIdsAggregated", + "smithy.api#documentation": "

Indicates whether all resource types in the Region are configured to use longer IDs.\n This value is only true if all users are configured to use longer IDs for\n all resources types in the Region.

", + "smithy.api#xmlName": "useLongIdsAggregated" + } + }, + "Statuses": { + "target": "com.amazonaws.ec2#IdFormatList", + "traits": { + "aws.protocols#ec2QueryName": "StatusSet", + "smithy.api#documentation": "

Information about each resource's ID format.

", + "smithy.api#xmlName": "statusSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the aggregated application health status for the specified instances. The following rules apply:

\n
    \n
  • \n

    The instance-level status is derived from all application status checks with the aggregation setting set to included.

    \n
  • \n
  • \n

    Use DescribeApplicationStatusChecks to view the configuration of individual checks.

    \n
  • \n
  • \n

    Use EnableApplicationStatusCheckSuppression to temporarily suppress health check results from affecting the instance-level status.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To describe application status for instances", + "documentation": "This example describes the application status for the specified instance.", + "input": { + "InstanceIds": [ + "i-0123456789abcdef0" + ] + }, + "output": { + "ApplicationStatuses": { + "Instances": [ + { + "InstanceId": "i-0123456789abcdef0", + "ApplicationStatus": { + "Status": "ok", + "Details": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Aggregation": "included", + "Status": "passed", + "Reason": { + "Code": "ResponseCodeMatched", + "StatusCode": 200, + "Protocol": "HTTP" + } + } + ] + } + } + ] + } + } + }, + { + "title": "To describe application status using filters", + "documentation": "This example uses a filter to describe impaired application status in a specific Availability Zone.", + "input": { + "Filters": [ + { + "Name": "availability-zone-id", + "Values": [ + "use1-az1" + ] + }, + { + "Name": "status", + "Values": [ + "impaired" + ] + } + ], + "MaxResults": 10 + }, + "output": { + "ApplicationStatuses": { + "Instances": [ + { + "InstanceId": "i-0123456789abcdef0", + "ApplicationStatus": { + "Status": "impaired", + "Details": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Aggregation": "included", + "Status": "failed", + "Reason": { + "Code": "ConnectionTimeout" + } + } + ] + } + } + ] + } + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the associations for one or more application status checks. For more\n information, see Application\n status checks. To avoid timeouts and retrieve complete results, use the\n pagination parameters.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary.

\n
", + "smithy.api#examples": [ + { + "title": "To describe application status check associations", + "documentation": "This example describes instance ID associations for the specified application status check.", + "input": { + "ApplicationStatusCheckIds": [ + "asc-0123456789abcdef0" + ], + "Filters": [ + { + "Name": "association-type", + "Values": [ + "instance-id" + ] + } + ] + }, + "output": { + "Associations": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "AssociationType": "instance-id", + "Value": "i-0123456789abcdef0" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckIds": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the application status checks for which to describe associations.

", + "smithy.api#xmlName": "ApplicationStatusCheckId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters to use to limit the results.

\n
    \n
  • \n

    \n association-type – The type of association. Valid values: tag and instance-id.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusCheckAssociationsResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "AssociationSet", + "smithy.api#documentation": "

The associations for the specified application status checks.

", + "smithy.api#xmlName": "associationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags associated with the application status checks.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusChecks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusChecksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusChecksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes application status checks, including configuration details such as protocol, port, path, thresholds, and associations. Results are paginated. Use the NextToken parameter to retrieve additional results. The following rules apply:

\n
    \n
  • \n

    If you do not specify any application status check IDs, all checks in your account are returned.

    \n
  • \n
  • \n

    Use DescribeApplicationStatus to see the actual health status of instances.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To describe application status checks", + "documentation": "This example describes the specified application status checks.", + "input": { + "ApplicationStatusCheckIds": [ + "asc-0123456789abcdef0" + ] + }, + "output": { + "ApplicationStatusChecks": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Protocol": "http", + "Port": 80, + "Path": "/health", + "Aggregation": "included", + "Interval": 60, + "Timeout": 6, + "FailureThreshold": 2, + "SuccessThreshold": 2 + } + ] + } + }, + { + "title": "To describe application status checks using filters", + "documentation": "This example uses a filter to describe application status checks included in aggregation.", + "input": { + "Filters": [ + { + "Name": "aggregation", + "Values": [ + "included" + ] + } + ], + "MaxResults": 10 + }, + "output": { + "ApplicationStatusChecks": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Protocol": "http", + "Port": 80, + "Path": "/health", + "Aggregation": "included", + "Interval": 60, + "Timeout": 6, + "FailureThreshold": 2, + "SuccessThreshold": 2 + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusChecksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusChecksRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckIds": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the application status checks to describe.

", + "smithy.api#xmlName": "ApplicationStatusCheckId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n aggregation – The aggregation setting. Valid values: included and excluded.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusChecksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "IncludeAll": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include recently deleted application status checks that remain available during the deletion grace period. If you omit this parameter or set it to false, the response includes only active checks.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusChecksResult": { + "type": "structure", + "members": { + "ApplicationStatusChecks": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckSet", + "smithy.api#documentation": "

Information about the application status checks.

", + "smithy.api#xmlName": "applicationStatusCheckSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances for which to describe application status.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone-id – The ID of the Availability Zone.

    \n
  • \n
  • \n

    \n status – The instance-level application status. For valid values and their meanings, see ApplicationStatus.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeApplicationStatusMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeApplicationStatusResult": { + "type": "structure", + "members": { + "ApplicationStatuses": { + "target": "com.amazonaws.ec2#ApplicationStatusesResponseType", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusesResponseType", + "smithy.api#documentation": "

The application statuses for the specified instances.

", + "smithy.api#xmlName": "applicationStatusesResponseType" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAvailabilityZones": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAvailabilityZonesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAvailabilityZonesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to\n you.

\n

For more information about Availability Zones, Local Zones, and Wavelength Zones, see\n Regions and zones \n in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe your Availability Zones", + "documentation": "This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.", + "output": { + "AvailabilityZones": [ + { + "State": "available", + "RegionName": "us-east-1", + "Messages": [], + "ZoneName": "us-east-1b" + }, + { + "State": "available", + "RegionName": "us-east-1", + "Messages": [], + "ZoneName": "us-east-1c" + }, + { + "State": "available", + "RegionName": "us-east-1", + "Messages": [], + "ZoneName": "us-east-1d" + }, + { + "State": "available", + "RegionName": "us-east-1", + "Messages": [], + "ZoneName": "us-east-1e" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeAvailabilityZonesRequest": { + "type": "structure", + "members": { + "ZoneNames": { + "target": "com.amazonaws.ec2#ZoneNameStringList", + "traits": { + "smithy.api#documentation": "

The names of the Availability Zones, Local Zones, and Wavelength Zones.

", + "smithy.api#xmlName": "ZoneName" + } + }, + "ZoneIds": { + "target": "com.amazonaws.ec2#ZoneIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the Availability Zones, Local Zones, and Wavelength Zones.

", + "smithy.api#xmlName": "ZoneId" + } + }, + "AllAvailabilityZones": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Include all Availability Zones, Local Zones, and Wavelength Zones regardless of your\n opt-in status.

\n

If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n group-long-name - The long name of the zone group for the Availability Zone (for\n example, US West (Oregon) 1), the Local Zone (for example, for Zone group us-west-2-lax-1, it is US West (Los Angeles),\n or the Wavelength Zone (for example, for Zone group us-east-1-wl1, it is US East (Verizon).

    \n
  • \n
  • \n

    \n group-name - The name of the zone group for the Availability Zone (for\n example, us-east-1-zg-1), the Local Zone (for example, us-west-2-lax-1),\n or the Wavelength Zone (for example, us-east-1-wl1).

    \n
  • \n
  • \n

    \n message - The Zone message.

    \n
  • \n
  • \n

    \n opt-in-status - The opt-in status (opted-in |\n not-opted-in | opt-in-not-required).

    \n
  • \n
  • \n

    \n parent-zone-id - The ID of the zone that handles some of the Local Zone\n and Wavelength Zone control plane operations, such as API calls.

    \n
  • \n
  • \n

    \n parent-zone-name - The ID of the zone that handles some of the Local Zone\n and Wavelength Zone control plane operations, such as API calls.

    \n
  • \n
  • \n

    \n region-name - The name of the Region for the Zone (for example,\n us-east-1).

    \n
  • \n
  • \n

    \n state - The state of the Availability Zone, the Local Zone, or the\n Wavelength Zone (available | unavailable |\n constrained).

    \n
  • \n
  • \n

    \n zone-id - The ID of the Availability Zone (for example,\n use1-az1), the Local Zone (for example, usw2-lax1-az1), or the\n Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    \n
  • \n
  • \n

    \n zone-name - The name of the Availability Zone (for example,\n us-east-1a), the Local Zone (for example, us-west-2-lax-1a), or\n the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

    \n
  • \n
  • \n

    \n zone-type - The type of zone (availability-zone | \n local-zone | wavelength-zone).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAvailabilityZonesResult": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.ec2#AvailabilityZoneList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneInfo", + "smithy.api#documentation": "

Information about the Availability Zones, Local Zones, and Wavelength Zones.

", + "smithy.api#xmlName": "availabilityZoneInfo" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the current Infrastructure Performance metric subscriptions.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Subscriptions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#MaxResultsParam", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeAwsNetworkPerformanceMetricSubscriptionsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Subscriptions": { + "target": "com.amazonaws.ec2#SubscriptionList", + "traits": { + "aws.protocols#ec2QueryName": "SubscriptionSet", + "smithy.api#documentation": "

Describes the current Infrastructure Performance subscriptions.

", + "smithy.api#xmlName": "subscriptionSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeBundleTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeBundleTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeBundleTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified bundle tasks or all of your bundle tasks.

\n \n

Completed bundle tasks are listed for only a limited time. If your bundle task is no\n longer in the list, you can still register an AMI from it. Just use\n RegisterImage with the Amazon S3 bucket name and image manifest name you provided\n to the bundle task.

\n
\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.waiters#waitable": { + "BundleTaskComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "BundleTasks[].State", + "expected": "complete", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "BundleTasks[].State", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeBundleTasksRequest": { + "type": "structure", + "members": { + "BundleIds": { + "target": "com.amazonaws.ec2#BundleIdStringList", + "traits": { + "smithy.api#documentation": "

The bundle task IDs.

\n

Default: Describes all your bundle tasks.

", + "smithy.api#xmlName": "BundleId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n bundle-id - The ID of the bundle task.

    \n
  • \n
  • \n

    \n error-code - If the task failed, the error code returned.

    \n
  • \n
  • \n

    \n error-message - If the task failed, the error message returned.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n progress - The level of task completion, as a percentage (for example,\n 20%).

    \n
  • \n
  • \n

    \n s3-bucket - The Amazon S3 bucket to store the AMI.

    \n
  • \n
  • \n

    \n s3-prefix - The beginning of the AMI name.

    \n
  • \n
  • \n

    \n start-time - The time the task started (for example,\n 2013-09-15T17:15:20.000Z).

    \n
  • \n
  • \n

    \n state - The state of the task (pending |\n waiting-for-shutdown | bundling | storing |\n cancelling | complete | failed).

    \n
  • \n
  • \n

    \n update-time - The time of the most recent update for the task.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeBundleTasksResult": { + "type": "structure", + "members": { + "BundleTasks": { + "target": "com.amazonaws.ec2#BundleTaskList", + "traits": { + "aws.protocols#ec2QueryName": "BundleInstanceTasksSet", + "smithy.api#documentation": "

Information about the bundle tasks.

", + "smithy.api#xmlName": "bundleInstanceTasksSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeByoipCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeByoipCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeByoipCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the IP address ranges that were provisioned for use with Amazon Web Services resources\n through through bring your own IP addresses (BYOIP).

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ByoipCidrs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeByoipCidrsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeByoipCidrsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeByoipCidrsMaxResults", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeByoipCidrsResult": { + "type": "structure", + "members": { + "ByoipCidrs": { + "target": "com.amazonaws.ec2#ByoipCidrSet", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidrSet", + "smithy.api#documentation": "

Information about your address ranges.

", + "smithy.api#xmlName": "byoipCidrSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the events for the specified Capacity Block extension during the specified\n\t\t\ttime.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockExtensions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryRequest": { + "type": "structure", + "members": { + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of Capacity Block reservations that you want to display the history\n\t\t\tfor.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeFutureCapacityMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters

\n
    \n
  • \n

    \n availability-zone - The Availability Zone of the\n\t\t\t\t\textension.

    \n
  • \n
  • \n

    \n availability-zone-id - The Availability Zone ID of the\n\t\t\t\t\textension.

    \n
  • \n
  • \n

    \n capacity-block-extension-offering-id - The ID of the extension\n\t\t\t\t\toffering.

    \n
  • \n
  • \n

    \n capacity-block-extension-status - The status of the extension\n\t\t\t\t\t\t(payment-pending | payment-failed |\n\t\t\t\t\t\tpayment-succeeded).

    \n
  • \n
  • \n

    \n capacity-reservation-id - The reservation ID of the\n\t\t\t\t\textension.

    \n
  • \n
  • \n

    \n instance-type - The instance type of the extension.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionHistoryResult": { + "type": "structure", + "members": { + "CapacityBlockExtensions": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionSet", + "smithy.api#documentation": "

Describes one or more of your Capacity Block extensions. The results describe only the\n\t\t\tCapacity Block extensions in the Amazon Web Services Region that you're currently using.

", + "smithy.api#xmlName": "capacityBlockExtensionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes Capacity Block extension offerings available for purchase in the Amazon Web Services\n\t\t\tRegion that you're currently using.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockExtensionOfferings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityBlockExtensionDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The duration of the Capacity Block extension offering in hours.

", + "smithy.api#required": {} + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity reservation to be extended.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockExtensionOfferingsResult": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferings": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionOfferingSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionOfferingSet", + "smithy.api#documentation": "

The recommended Capacity Block extension offerings for the dates specified.

", + "smithy.api#xmlName": "capacityBlockExtensionOfferingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you can \n\t\t\tpurchase a specific GPU instance type or EC2 UltraServer for a period of time.

\n

To search for an available Capacity Block offering, you specify a reservation duration\n\t\t\tand instance count.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockOfferings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockOfferingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockOfferingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of instance for which the Capacity Block offering reserves capacity.

" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances for which to reserve capacity. Each Capacity Block can have up\n\t\t\tto 64 instances, and you can have up to 256 instances across Capacity Blocks.

" + } + }, + "StartDateRange": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The earliest start date for the Capacity Block offering.

" + } + }, + "EndDateRange": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The latest end date for the Capacity Block offering.

" + } + }, + "CapacityDurationHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The reservation duration for the Capacity Block, in hours. You must specify the\n\t\t\tduration in 1-day increments up 14 days, and in 7-day increments up to 182 days.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockOfferingsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "UltraserverType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The EC2 UltraServer type of the Capacity Block offerings.

" + } + }, + "UltraserverCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of EC2 UltraServers in the offerings.

" + } + }, + "AllAvailabilityZones": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\n\t\t\tInclude all Availability Zones and Local Zones, regardless of your opt-in status.\n\t\t\tIf you do not use this parameter, the results include available offerings from all\n\t\t\tAvailability Zones in the Amazon Web Services Region and Local Zones you are opted into.\n\t\t

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockOfferingsResult": { + "type": "structure", + "members": { + "CapacityBlockOfferings": { + "target": "com.amazonaws.ec2#CapacityBlockOfferingSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockOfferingSet", + "smithy.api#documentation": "

The recommended Capacity Block offering for the dates specified.

", + "smithy.api#xmlName": "capacityBlockOfferingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the availability of capacity for the specified Capacity blocks, or all of your Capacity Blocks.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlockStatuses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockStatusMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockStatusRequest": { + "type": "structure", + "members": { + "CapacityBlockIds": { + "target": "com.amazonaws.ec2#CapacityBlockIds", + "traits": { + "smithy.api#documentation": "

The ID of the Capacity Block.

", + "smithy.api#xmlName": "CapacityBlockId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityBlockStatusMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n interconnect-status - The status of the interconnect for the Capacity Block (ok | impaired | insufficient-data).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlockStatusResult": { + "type": "structure", + "members": { + "CapacityBlockStatuses": { + "target": "com.amazonaws.ec2#CapacityBlockStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockStatusSet", + "smithy.api#documentation": "

The availability of capacity for a Capacity Block.

", + "smithy.api#xmlName": "capacityBlockStatusSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlocks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityBlocksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityBlocksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes details about Capacity Blocks in the Amazon Web Services Region that you're currently using.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityBlocks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlocksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityBlocksRequest": { + "type": "structure", + "members": { + "CapacityBlockIds": { + "target": "com.amazonaws.ec2#CapacityBlockIds", + "traits": { + "smithy.api#documentation": "

The IDs of the Capacity Blocks.

", + "smithy.api#xmlName": "CapacityBlockId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityBlocksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n capacity-block-id - The ID of the Capacity Block.

    \n
  • \n
  • \n

    \n ultraserver-type - The Capacity Block type. The type can be\n\t\t\t\t\tinstances or ultraservers.

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the Capacity\n\t\t\t\t\tBlock.

    \n
  • \n
  • \n

    \n start-date - The date and time at which the Capacity Block was\n\t\t\t\t\tstarted.

    \n
  • \n
  • \n

    \n end-date - The date and time at which the Capacity Block expires.\n\t\t\t\t\tWhen a Capacity Block expires, all instances in the Capacity Block are\n\t\t\t\t\tterminated.

    \n
  • \n
  • \n

    \n create-date - The date and time at which the Capacity Block was\n\t\t\t\t\tcreated.

    \n
  • \n
  • \n

    \n state - The state of the Capacity Block (active | \n\t\t\t\t\texpired | unavailable | cancelled | \n\t\t\t\t\tfailed | scheduled | payment-pending | \n\t\t\t\t\tpayment-failed).

    \n
  • \n
  • \n

    \n tags - The tags assigned to the Capacity Block.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityBlocksResult": { + "type": "structure", + "members": { + "CapacityBlocks": { + "target": "com.amazonaws.ec2#CapacityBlockSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockSet", + "smithy.api#documentation": "

The Capacity Blocks.

", + "smithy.api#xmlName": "capacityBlockSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityManagerDataExports": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityManagerDataExportsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityManagerDataExportsResult" + }, + "traits": { + "smithy.api#documentation": "

\nDescribes one or more Capacity Manager data export configurations. Returns information about export settings, delivery status, and recent export activity.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityManagerDataExports", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityManagerDataExportsRequest": { + "type": "structure", + "members": { + "CapacityManagerDataExportIds": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportIdSet", + "traits": { + "smithy.api#documentation": "

\nThe IDs of the data export configurations to describe. If not specified, all export configurations are returned.\n

", + "smithy.api#xmlName": "CapacityManagerDataExportId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityManagerDataExportsRequestMaxResults", + "traits": { + "smithy.api#documentation": "

\nThe maximum number of results to return in a single call. If not specified, up to 1000 results are returned.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nThe token for the next page of results. Use this value in a subsequent call to retrieve additional results.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

\nOne or more filters to narrow the results. Supported filters include export status, creation date, and S3 bucket name.\n

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityManagerDataExportsRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityManagerDataExportsResult": { + "type": "structure", + "members": { + "CapacityManagerDataExports": { + "target": "com.amazonaws.ec2#CapacityManagerDataExportResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerDataExportSet", + "smithy.api#documentation": "

\nInformation about the data export configurations, including export settings, delivery status, and recent activity.\n

", + "smithy.api#xmlName": "capacityManagerDataExportSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

\nThe token to use to retrieve the next page of results. This value is null when there are no more results to return.\n

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationBillingRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a request to assign the billing of the unused capacity of a Capacity\n\t\t\tReservation. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservationBillingRequests", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsRequest": { + "type": "structure", + "members": { + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "Role": { + "target": "com.amazonaws.ec2#CallerRole", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify one of the following:

\n
    \n
  • \n

    \n odcr-owner - If you are the Capacity Reservation owner, specify\n\t\t\t\t\tthis value to view requests that you have initiated. Not supported with the\n\t\t\t\t\t\trequested-by filter.

    \n
  • \n
  • \n

    \n unused-reservation-billing-owner - If you are the consumer\n\t\t\t\t\taccount, specify this value to view requests that have been sent to you. Not\n\t\t\t\t\tsupported with the unused-reservation-billing-owner filter.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n status - The state of the request (pending |\n\t\t\t\t\t\taccepted | rejected | cancelled |\n\t\t\t\t\t\trevoked | expired).

    \n
  • \n
  • \n

    \n requested-by - The account ID of the Capacity Reservation owner\n\t\t\t\t\tthat initiated the request. Not supported if you specify\n\t\t\t\t\t\trequested-by for Role.

    \n
  • \n
  • \n

    \n unused-reservation-billing-owner - The ID of the consumer account\n\t\t\t\t\tto which the request was sent. Not supported if you specify\n\t\t\t\t\t\tunused-reservation-billing-owner for Role.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationBillingRequestsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "CapacityReservationBillingRequests": { + "target": "com.amazonaws.ec2#CapacityReservationBillingRequestSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationBillingRequestSet", + "smithy.api#documentation": "

Information about the request.

", + "smithy.api#xmlName": "capacityReservationBillingRequestSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Capacity Reservation cancellation quotes. The results describe\n\t\t\tonly the quotes that you have previously generated by using the\n\t\t\tCreateCapacityReservationCancellationQuote action.

" + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesRequest": { + "type": "structure", + "members": { + "CapacityReservationCancellationQuoteIds": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the cancellation quotes to describe.

", + "smithy.api#xmlName": "CapacityReservationCancellationQuoteId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationCancellationQuotesResult": { + "type": "structure", + "members": { + "CapacityReservationCancellationQuotes": { + "target": "com.amazonaws.ec2#CapacityReservationCancellationQuoteResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationCancellationQuoteSet", + "smithy.api#documentation": "

Information about the Capacity Reservation cancellation quotes.

", + "smithy.api#xmlName": "capacityReservationCancellationQuoteSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Capacity Reservation date change quotes that you generated by using\n\t\t\tthe CreateCapacityReservationDateChangeQuote operation.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservationModificationQuotes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesRequest": { + "type": "structure", + "members": { + "CapacityReservationModificationQuoteIds": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the date change quotes to describe.

", + "smithy.api#xmlName": "CapacityReservationModificationQuoteId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationDateChangeQuotesResult": { + "type": "structure", + "members": { + "CapacityReservationModificationQuotes": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationModificationQuoteSet", + "smithy.api#documentation": "

Information about the Capacity Reservation date change quotes.

", + "smithy.api#xmlName": "capacityReservationModificationQuoteSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Capacity Reservation Fleets.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservationFleets", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsRequest": { + "type": "structure", + "members": { + "CapacityReservationFleetIds": { + "target": "com.amazonaws.ec2#CapacityReservationFleetIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the Capacity Reservation Fleets to describe.

", + "smithy.api#xmlName": "CapacityReservationFleetId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n state - The state of the Fleet (submitted |\n\t\t\t\t\t\tmodifying | active |\n\t\t\t\t\t\tpartially_fulfilled | expiring |\n\t\t\t\t\t\texpired | cancelling | cancelled |\n\t\t\t\t\t\tfailed).

    \n
  • \n
  • \n

    \n instance-match-criteria - The instance matching criteria for the\n\t\t\t\t\tFleet. Only open is supported.

    \n
  • \n
  • \n

    \n tenancy - The tenancy of the Fleet (default |\n\t\t\t\t\t\tdedicated).

    \n
  • \n
  • \n

    \n allocation-strategy - The allocation strategy used by the Fleet.\n\t\t\t\t\tOnly prioritized is supported.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsResult": { + "type": "structure", + "members": { + "CapacityReservationFleets": { + "target": "com.amazonaws.ec2#CapacityReservationFleetSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets.

", + "smithy.api#xmlName": "capacityReservationFleetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationTopology": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationTopologyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationTopologyResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a tree-based hierarchy that represents the physical host placement of your\n pending or active Capacity Reservations within an Availability Zone or Local Zone. You\n can use this information to determine the relative proximity of your capacity within the\n Amazon Web Services network before it is launched and use this information to allocate capacity\n together to support your tightly coupled workloads.

\n

Capacity Reservation topology is supported for specific instance types only. For more\n information, see Prerequisites\n for Amazon EC2 instance topology in the\n Amazon EC2 User Guide.

\n \n

The Amazon EC2 API follows an eventual consistency model due to the\n distributed nature of the system supporting it. As a result, when you call the\n DescribeCapacityReservationTopology API command immediately after launching\n instances, the response might return a null value for\n capacityBlockId because the data might not have fully propagated\n across all subsystems. For more information, see Eventual consistency in the\n Amazon EC2 API in the Amazon EC2 Developer\n Guide.

\n
\n

For more information, see Amazon EC2 topology in\n the Amazon EC2 User Guide.

\n

" + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationTopologyMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationTopologyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationTopologyMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You can't specify this parameter and the Capacity Reservation IDs parameter in the\n same request.

\n

Default: 10\n

" + } + }, + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The Capacity Reservation IDs.

\n

Default: Describes all your Capacity Reservations.

\n

Constraints: Maximum 10 explicitly specified Capacity Reservation IDs.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The name of the Availability Zone (for\n example, us-west-2a) or Local Zone (for example,\n us-west-2-lax-1b) that the Capacity Reservation is in.

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example,\n p4d.24xlarge) or instance family (for example,\n p4d*). You can use the * wildcard to match zero or\n more characters, or the ? wildcard to match zero or one\n character.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationTopologyResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "CapacityReservations": { + "target": "com.amazonaws.ec2#CapacityReservationTopologySet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationSet", + "smithy.api#documentation": "

Information about the topology of each Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your Capacity Reservations. The results describe only the\n\t\t\tCapacity Reservations in the Amazon Web Services Region that you're currently\n\t\t\tusing.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationsRequest": { + "type": "structure", + "members": { + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n instance-type - The type of instance for which the Capacity\n\t\t\t\t\tReservation reserves capacity.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the\n\t\t\t\t\tCapacity Reservation.

    \n
  • \n
  • \n

    \n instance-platform - The type of operating system for which the\n\t\t\t\t\tCapacity Reservation reserves capacity.

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the Capacity\n\t\t\t\t\tReservation.

    \n
  • \n
  • \n

    \n tenancy - Indicates the tenancy of the Capacity Reservation. A\n\t\t\t\t\tCapacity Reservation can have one of the following tenancy settings:

    \n
      \n
    • \n

      \n default - The Capacity Reservation is created on hardware\n\t\t\t\t\t\t\tthat is shared with other Amazon Web Services accounts.

      \n
    • \n
    • \n

      \n dedicated - The Capacity Reservation is created on\n\t\t\t\t\t\t\tsingle-tenant hardware that is dedicated to a single Amazon Web Services account.

      \n
    • \n
    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the Outpost on\n\t\t\t\t\twhich the Capacity Reservation was created.

    \n
  • \n
  • \n

    \n state - The current state of the Capacity Reservation. A Capacity\n\t\t\t\t\tReservation can be in one of the following states:

    \n
      \n
    • \n

      \n active- The Capacity Reservation is active and the\n\t\t\t\t\t\t\tcapacity is available for your use.

      \n
    • \n
    • \n

      \n expired - The Capacity Reservation expired automatically\n\t\t\t\t\t\t\tat the date and time specified in your request. The reserved capacity is\n\t\t\t\t\t\t\tno longer available for your use.

      \n
    • \n
    • \n

      \n cancelled - The Capacity Reservation was cancelled. The\n\t\t\t\t\t\t\treserved capacity is no longer available for your use.

      \n
    • \n
    • \n

      \n pending - The Capacity Reservation request was successful\n\t\t\t\t\t\t\tbut the capacity provisioning is still pending.

      \n
    • \n
    • \n

      \n failed - The Capacity Reservation request has failed. A\n\t\t\t\t\t\t\trequest might fail due to invalid request parameters, capacity\n\t\t\t\t\t\t\tconstraints, or instance limit constraints. Failed requests are retained\n\t\t\t\t\t\t\tfor 60 minutes.

      \n
    • \n
    \n
  • \n
  • \n

    \n start-date - The date and time at which the Capacity Reservation\n\t\t\t\t\twas started.

    \n
  • \n
  • \n

    \n end-date - The date and time at which the Capacity Reservation\n\t\t\t\t\texpires. When a Capacity Reservation expires, the reserved capacity is released\n\t\t\t\t\tand you can no longer launch instances into it. The Capacity Reservation's state\n\t\t\t\t\tchanges to expired when it reaches its end date and time.

    \n
  • \n
  • \n

    \n end-date-type - Indicates the way in which the Capacity\n\t\t\t\t\tReservation ends. A Capacity Reservation can have one of the following end\n\t\t\t\t\ttypes:

    \n
      \n
    • \n

      \n unlimited - The Capacity Reservation remains active until\n\t\t\t\t\t\t\tyou explicitly cancel it.

      \n
    • \n
    • \n

      \n limited - The Capacity Reservation expires automatically\n\t\t\t\t\t\t\tat a specified date and time.

      \n
    • \n
    \n
  • \n
  • \n

    \n instance-match-criteria - Indicates the type of instance launches\n\t\t\t\t\tthat the Capacity Reservation accepts. The options include:

    \n
      \n
    • \n

      \n open - The Capacity Reservation accepts all instances\n\t\t\t\t\t\t\tthat have matching attributes (instance type, platform, and Availability\n\t\t\t\t\t\t\tZone). Instances that have matching attributes launch into the Capacity\n\t\t\t\t\t\t\tReservation automatically without specifying any additional\n\t\t\t\t\t\t\tparameters.

      \n
    • \n
    • \n

      \n targeted - The Capacity Reservation only accepts\n\t\t\t\t\t\t\tinstances that have matching attributes (instance type, platform, and\n\t\t\t\t\t\t\tAvailability Zone), and explicitly target the Capacity Reservation. This\n\t\t\t\t\t\t\tensures that only permitted instances can use the reserved\n\t\t\t\t\t\t\tcapacity.

      \n
    • \n
    \n
  • \n
  • \n

    \n placement-group-arn - The ARN of the cluster placement group in\n\t\t\t\t\twhich the Capacity Reservation was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "CapacityReservations": { + "target": "com.amazonaws.ec2#CapacityReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationSet", + "smithy.api#documentation": "

Information about the Capacity Reservations.

", + "smithy.api#xmlName": "capacityReservationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCarrierGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCarrierGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCarrierGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your carrier gateways.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CarrierGateways", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCarrierGatewaysRequest": { + "type": "structure", + "members": { + "CarrierGatewayIds": { + "target": "com.amazonaws.ec2#CarrierGatewayIdSet", + "traits": { + "smithy.api#documentation": "

One or more carrier gateway IDs.

", + "smithy.api#xmlName": "CarrierGatewayId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n carrier-gateway-id - The ID of the carrier gateway.

    \n
  • \n
  • \n

    \n state - The state of the carrier gateway (pending |\n failed | available | deleting | deleted).

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner of the carrier gateway.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC associated with the carrier gateway.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#CarrierGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCarrierGatewaysResult": { + "type": "structure", + "members": { + "CarrierGateways": { + "target": "com.amazonaws.ec2#CarrierGatewaySet", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGatewaySet", + "smithy.api#documentation": "

Information about the carrier gateway.

", + "smithy.api#xmlName": "carrierGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClassicLinkInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClassicLinkInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClassicLinkInstancesResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Describes your linked EC2-Classic instances. This request only returns\n\t\t\tinformation about EC2-Classic instances linked to a VPC through ClassicLink. You cannot\n\t\t\tuse this request to return information about other instances.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Instances", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClassicLinkInstancesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClassicLinkInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The instance IDs. Must be instances linked to a VPC through ClassicLink.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n group-id - The ID of a VPC security group that's associated with the instance.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC to which the instance is linked.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClassicLinkInstancesMaxResults", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

\n

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClassicLinkInstancesResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#ClassicLinkInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

Information about one or more linked EC2-Classic instances.

", + "smithy.api#xmlName": "instancesSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnAuthorizationRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the authorization rules for a specified Client VPN endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AuthorizationRules", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n description - The description of the authorization rule.

    \n
  • \n
  • \n

    \n destination-cidr - The CIDR of the network to which the authorization rule\n applies.

    \n
  • \n
  • \n

    \n group-id - The ID of the Active Directory group to which the authorization rule grants access.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesResult": { + "type": "structure", + "members": { + "AuthorizationRules": { + "target": "com.amazonaws.ec2#AuthorizationRuleSet", + "traits": { + "aws.protocols#ec2QueryName": "AuthorizationRule", + "smithy.api#documentation": "

Information about the authorization rules.

", + "smithy.api#xmlName": "authorizationRule" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClientVpnConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClientVpnConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes active client connections and connections that have been terminated within the last 60 \n\t\t\tminutes for the specified Client VPN endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Connections", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnConnectionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnConnectionsRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n connection-id - The ID of the connection.

    \n
  • \n
  • \n

    \n username - For Active Directory client authentication, the user name of the\n client who established the client connection.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClientVpnConnectionsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnConnectionsResult": { + "type": "structure", + "members": { + "Connections": { + "target": "com.amazonaws.ec2#ClientVpnConnectionSet", + "traits": { + "aws.protocols#ec2QueryName": "Connections", + "smithy.api#documentation": "

Information about the active and terminated client connections.

", + "smithy.api#xmlName": "connections" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnEndpointMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClientVpnEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClientVpnEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Client VPN endpoints in the account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ClientVpnEndpoints", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnEndpointsRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointIds": { + "target": "com.amazonaws.ec2#ClientVpnEndpointIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "ClientVpnEndpointId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClientVpnEndpointMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n endpoint-id - The ID of the Client VPN endpoint.

    \n
  • \n
  • \n

    \n transport-protocol - The transport protocol (tcp |\n udp).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnEndpointsResult": { + "type": "structure", + "members": { + "ClientVpnEndpoints": { + "target": "com.amazonaws.ec2#EndpointSet", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpoint", + "smithy.api#documentation": "

Information about the Client VPN endpoints.

", + "smithy.api#xmlName": "clientVpnEndpoint" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClientVpnRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClientVpnRoutesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the routes for the specified Client VPN endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Routes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnRoutesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnRoutesRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n destination-cidr - The CIDR of the route destination.

    \n
  • \n
  • \n

    \n origin - How the route was associated with the Client VPN endpoint (associate | add-route).

    \n
  • \n
  • \n

    \n target-subnet - The ID of the subnet through which traffic is routed.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClientVpnRoutesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnRoutesResult": { + "type": "structure", + "members": { + "Routes": { + "target": "com.amazonaws.ec2#ClientVpnRouteSet", + "traits": { + "aws.protocols#ec2QueryName": "Routes", + "smithy.api#documentation": "

Information about the Client VPN endpoint routes.

", + "smithy.api#xmlName": "routes" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnTargetNetworks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeClientVpnTargetNetworksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeClientVpnTargetNetworksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the target networks associated with the specified Client VPN endpoint.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ClientVpnTargetNetworks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnTargetNetworksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeClientVpnTargetNetworksRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "AssociationIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the target network associations.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeClientVpnTargetNetworksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n association-id - The ID of the association.

    \n
  • \n
  • \n

    \n target-network-id - The ID of the subnet specified as the target network.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC in which the target network is located.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeClientVpnTargetNetworksResult": { + "type": "structure", + "members": { + "ClientVpnTargetNetworks": { + "target": "com.amazonaws.ec2#TargetNetworkSet", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnTargetNetworks", + "smithy.api#documentation": "

Information about the associated target networks.

", + "smithy.api#xmlName": "clientVpnTargetNetworks" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCoipPools": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCoipPoolsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCoipPoolsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified customer-owned address pools or all of your customer-owned address pools.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CoipPools", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCoipPoolsRequest": { + "type": "structure", + "members": { + "PoolIds": { + "target": "com.amazonaws.ec2#CoipPoolIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the address pools.

", + "smithy.api#xmlName": "PoolId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n coip-pool.local-gateway-route-table-id - The ID of the local gateway route table.

    \n
  • \n
  • \n

    \n coip-pool.pool-id - The ID of the address pool.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#CoipPoolMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCoipPoolsResult": { + "type": "structure", + "members": { + "CoipPools": { + "target": "com.amazonaws.ec2#CoipPoolSet", + "traits": { + "aws.protocols#ec2QueryName": "CoipPoolSet", + "smithy.api#documentation": "

Information about the address pools.

", + "smithy.api#xmlName": "coipPoolSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeConversionTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ConversionTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DescribeConversionTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeConversionTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeConversionTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified conversion tasks or all your conversion tasks. For more information, see the\n VM Import/Export User Guide.

\n

For information about the import manifest referenced by this API action, see VM Import Manifest.

", + "smithy.waiters#waitable": { + "ConversionTaskCancelled": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ConversionTasks[].State", + "expected": "cancelled", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "ConversionTaskCompleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ConversionTasks[].State", + "expected": "completed", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ConversionTasks[].State", + "expected": "cancelled", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ConversionTasks[].State", + "expected": "cancelling", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "ConversionTaskDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ConversionTasks[].State", + "expected": "deleted", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeConversionTasksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "ConversionTaskIds": { + "target": "com.amazonaws.ec2#ConversionIdStringList", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTaskId", + "smithy.api#documentation": "

The conversion task IDs.

", + "smithy.api#xmlName": "conversionTaskId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeConversionTasksResult": { + "type": "structure", + "members": { + "ConversionTasks": { + "target": "com.amazonaws.ec2#DescribeConversionTaskList", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTasks", + "smithy.api#documentation": "

Information about the conversion tasks.

", + "smithy.api#xmlName": "conversionTasks" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeCustomerGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCustomerGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCustomerGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your VPN customer gateways.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a customer gateway", + "documentation": "This example describes the specified customer gateway.", + "input": { + "CustomerGatewayIds": [ + "cgw-0e11f167" + ] + }, + "output": { + "CustomerGateways": [ + { + "CustomerGatewayId": "cgw-0e11f167", + "IpAddress": "12.1.2.3", + "State": "available", + "Type": "ipsec.1", + "BgpAsn": "65534" + } + ] + } + } + ], + "smithy.waiters#waitable": { + "CustomerGatewayAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "CustomerGateways[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "CustomerGateways[].State", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "CustomerGateways[].State", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeCustomerGatewaysRequest": { + "type": "structure", + "members": { + "CustomerGatewayIds": { + "target": "com.amazonaws.ec2#CustomerGatewayIdStringList", + "traits": { + "smithy.api#documentation": "

One or more customer gateway IDs.

\n

Default: Describes all your customer gateways.

", + "smithy.api#xmlName": "CustomerGatewayId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n bgp-asn - The customer gateway's Border Gateway Protocol (BGP)\n Autonomous System Number (ASN).

    \n
  • \n
  • \n

    \n customer-gateway-id - The ID of the customer gateway.

    \n
  • \n
  • \n

    \n ip-address - The IP address of the customer gateway\n device's external interface.

    \n
  • \n
  • \n

    \n state - The state of the customer gateway (pending |\n available | deleting |\n deleted).

    \n
  • \n
  • \n

    \n type - The type of customer gateway. Currently, the only\n supported type is ipsec.1.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeCustomerGateways.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeCustomerGatewaysResult": { + "type": "structure", + "members": { + "CustomerGateways": { + "target": "com.amazonaws.ec2#CustomerGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGatewaySet", + "smithy.api#documentation": "

Information about one or more customer gateways.

", + "smithy.api#xmlName": "customerGatewaySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeCustomerGateways.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeDeclarativePoliciesReports": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the metadata of an account status report, including the status of the\n report.

\n

To view the full report, download it from the Amazon S3 bucket where it was saved.\n Reports are accessible only when they have the complete status. Reports\n with other statuses (running, cancelled, or\n error) are not available in the S3 bucket. For more information about\n downloading objects from an S3 bucket, see Downloading objects in\n the Amazon Simple Storage Service User Guide.

\n

For more information, see Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DeclarativePoliciesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "ReportIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

One or more report IDs.

", + "smithy.api#xmlName": "ReportId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeDeclarativePoliciesReportsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Reports": { + "target": "com.amazonaws.ec2#DeclarativePoliciesReportList", + "traits": { + "aws.protocols#ec2QueryName": "ReportSet", + "smithy.api#documentation": "

The report metadata.

", + "smithy.api#xmlName": "reportSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeDhcpOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeDhcpOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeDhcpOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your DHCP option sets. The default is to describe all your DHCP option sets. \n\t\t Alternatively, you can specify specific DHCP option set IDs or filter the results to\n\t\t include only the DHCP option sets that match specific criteria.

\n

For more information, see DHCP option sets in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a DHCP options set", + "documentation": "This example describes the specified DHCP options set.", + "input": { + "DhcpOptionsIds": [ + "dopt-d9070ebb" + ] + }, + "output": { + "DhcpOptions": [ + { + "DhcpConfigurations": [ + { + "Values": [ + { + "Value": "10.2.5.2" + }, + { + "Value": "10.2.5.1" + } + ], + "Key": "domain-name-servers" + } + ], + "DhcpOptionsId": "dopt-d9070ebb" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "DhcpOptions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeDhcpOptionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeDhcpOptionsRequest": { + "type": "structure", + "members": { + "DhcpOptionsIds": { + "target": "com.amazonaws.ec2#DhcpOptionsIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of DHCP option sets.

", + "smithy.api#xmlName": "DhcpOptionsId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeDhcpOptionsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n dhcp-options-id - The ID of a DHCP options set.

    \n
  • \n
  • \n

    \n key - The key for one of the options (for example, domain-name).

    \n
  • \n
  • \n

    \n value - The value for one of the options.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the DHCP options set.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeDhcpOptionsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "DhcpOptions": { + "target": "com.amazonaws.ec2#DhcpOptionsList", + "traits": { + "aws.protocols#ec2QueryName": "DhcpOptionsSet", + "smithy.api#documentation": "

Information about the DHCP options sets.

", + "smithy.api#xmlName": "dhcpOptionsSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeEgressOnlyInternetGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your egress-only internet gateways. The default is to describe all your egress-only internet gateways. \n Alternatively, you can specify specific egress-only internet gateway IDs or filter the results to\n include only the egress-only internet gateways that match specific criteria.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "EgressOnlyInternetGateways", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "EgressOnlyInternetGatewayIds": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the egress-only internet gateways.

", + "smithy.api#xmlName": "EgressOnlyInternetGatewayId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysResult": { + "type": "structure", + "members": { + "EgressOnlyInternetGateways": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewaySet", + "smithy.api#documentation": "

Information about the egress-only internet gateways.

", + "smithy.api#xmlName": "egressOnlyInternetGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeElasticGpus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeElasticGpusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeElasticGpusResult" + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
\n

Describes the Elastic Graphics accelerator associated with your instances.

" + } + }, + "com.amazonaws.ec2#DescribeElasticGpusMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 10, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeElasticGpusRequest": { + "type": "structure", + "members": { + "ElasticGpuIds": { + "target": "com.amazonaws.ec2#ElasticGpuIdSet", + "traits": { + "smithy.api#documentation": "

The Elastic Graphics accelerator IDs.

", + "smithy.api#xmlName": "ElasticGpuId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone in which the\n Elastic Graphics accelerator resides.

    \n
  • \n
  • \n

    \n elastic-gpu-health - The status of the Elastic Graphics accelerator\n (OK | IMPAIRED).

    \n
  • \n
  • \n

    \n elastic-gpu-state - The state of the Elastic Graphics accelerator\n (ATTACHED).

    \n
  • \n
  • \n

    \n elastic-gpu-type - The type of Elastic Graphics accelerator; for example,\n eg1.medium.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance to which the\n Elastic Graphics accelerator is associated.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeElasticGpusMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. To retrieve the remaining\n results, make another call with the returned NextToken value. This value\n can be between 5 and 1000.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeElasticGpusResult": { + "type": "structure", + "members": { + "ElasticGpuSet": { + "target": "com.amazonaws.ec2#ElasticGpuSet", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuSet", + "smithy.api#documentation": "

Information about the Elastic Graphics accelerators.

", + "smithy.api#xmlName": "elasticGpuSet" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The total number of items to return. If the total number of items available is more\n than the value specified in max-items then a Next-Token will be provided in the output\n that you can use to resume pagination.

", + "smithy.api#xmlName": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is\n null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeExportImageTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeExportImageTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeExportImageTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified export image tasks or all of your export image tasks.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ExportImageTasks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeExportImageTasksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.ec2#DescribeExportImageTasksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filter tasks using the task-state filter and one of the following values: active,\n completed, deleting, or deleted.

", + "smithy.api#xmlName": "Filter" + } + }, + "ExportImageTaskIds": { + "target": "com.amazonaws.ec2#ExportImageTaskIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the export image tasks.

", + "smithy.api#xmlName": "ExportImageTaskId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeExportImageTasksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

A token that indicates the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeExportImageTasksResult": { + "type": "structure", + "members": { + "ExportImageTasks": { + "target": "com.amazonaws.ec2#ExportImageTaskList", + "traits": { + "aws.protocols#ec2QueryName": "ExportImageTaskSet", + "smithy.api#documentation": "

Information about the export image tasks.

", + "smithy.api#xmlName": "exportImageTaskSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to get the next page of results. This value is null when there are no more results\n to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeExportTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeExportTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeExportTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified export instance tasks or all of your export instance tasks.

", + "smithy.waiters#waitable": { + "ExportTaskCancelled": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ExportTasks[].State", + "expected": "cancelled", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "ExportTaskCompleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ExportTasks[].State", + "expected": "completed", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeExportTasksRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

the filters for the export tasks.

", + "smithy.api#xmlName": "Filter" + } + }, + "ExportTaskIds": { + "target": "com.amazonaws.ec2#ExportTaskIdStringList", + "traits": { + "aws.protocols#ec2QueryName": "ExportTaskId", + "smithy.api#documentation": "

The export task IDs.

", + "smithy.api#xmlName": "exportTaskId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeExportTasksResult": { + "type": "structure", + "members": { + "ExportTasks": { + "target": "com.amazonaws.ec2#ExportTaskList", + "traits": { + "aws.protocols#ec2QueryName": "ExportTaskSet", + "smithy.api#documentation": "

Information about the export tasks.

", + "smithy.api#xmlName": "exportTaskSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImages": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFastLaunchImagesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFastLaunchImagesResult" + }, + "traits": { + "smithy.api#documentation": "

Describe details for Windows AMIs that are configured for Windows fast launch.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "FastLaunchImages", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImagesRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#FastLaunchImageIdList", + "traits": { + "smithy.api#documentation": "

Specify one or more Windows AMI image IDs for the request.

", + "smithy.api#xmlName": "ImageId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Use the following filters to streamline results.

\n
    \n
  • \n

    \n resource-type - The resource type for pre-provisioning.

    \n
  • \n
  • \n

    \n owner-id - The owner ID for the pre-provisioning resource.

    \n
  • \n
  • \n

    \n state - The current state of fast launching for the Windows AMI.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeFastLaunchImagesRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImagesRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImagesResult": { + "type": "structure", + "members": { + "FastLaunchImages": { + "target": "com.amazonaws.ec2#DescribeFastLaunchImagesSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "FastLaunchImageSet", + "smithy.api#documentation": "

A collection of details about the fast-launch enabled Windows images that meet the\n requested criteria.

", + "smithy.api#xmlName": "fastLaunchImageSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImagesSuccessItem": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The image ID that identifies the Windows fast launch enabled image.

", + "smithy.api#xmlName": "imageId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#FastLaunchResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type that Amazon EC2 uses for pre-provisioning the Windows AMI. Supported values\n include: snapshot.

", + "smithy.api#xmlName": "resourceType" + } + }, + "SnapshotConfiguration": { + "target": "com.amazonaws.ec2#FastLaunchSnapshotConfigurationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotConfiguration", + "smithy.api#documentation": "

A group of parameters that are used for pre-provisioning the associated Windows AMI using\n snapshots.

", + "smithy.api#xmlName": "snapshotConfiguration" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

The launch template that the Windows fast launch enabled AMI uses when it launches Windows\n instances from pre-provisioned snapshots.

", + "smithy.api#xmlName": "launchTemplate" + } + }, + "MaxParallelLaunches": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxParallelLaunches", + "smithy.api#documentation": "

The maximum number of instances that Amazon EC2 can launch at the same time to create\n pre-provisioned snapshots for Windows fast launch.

", + "smithy.api#xmlName": "maxParallelLaunches" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The owner ID for the Windows fast launch enabled AMI.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastLaunchStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of Windows fast launch for the specified Windows AMI.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason that Windows fast launch for the AMI changed to the current state.

", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "StateTransitionTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionTime", + "smithy.api#documentation": "

The time that Windows fast launch for the AMI changed to the current state.

", + "smithy.api#xmlName": "stateTransitionTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describe details about a Windows image with Windows fast launch enabled that meets the\n requested criteria. Criteria are defined by the DescribeFastLaunchImages action\n filters.

" + } + }, + "com.amazonaws.ec2#DescribeFastLaunchImagesSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DescribeFastLaunchImagesSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestoreSuccessItem": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastSnapshotRestoreStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of fast snapshot restores.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason for the state transition. The possible values are as follows:

\n
    \n
  • \n

    \n Client.UserInitiated - The state successfully transitioned to enabling or\n disabling.

    \n
  • \n
  • \n

    \n Client.UserInitiated - Lifecycle state transition - The state successfully transitioned \n to optimizing, enabled, or disabled.

    \n
  • \n
", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that enabled fast snapshot restores on the snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "OwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerAlias", + "smithy.api#documentation": "

The Amazon Web Services owner alias that enabled fast snapshot restores on the snapshot. This is intended for future use.

", + "smithy.api#xmlName": "ownerAlias" + } + }, + "EnablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabling state.

", + "smithy.api#xmlName": "enablingTime" + } + }, + "OptimizingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OptimizingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the optimizing state.

", + "smithy.api#xmlName": "optimizingTime" + } + }, + "EnabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabled state.

", + "smithy.api#xmlName": "enabledTime" + } + }, + "DisablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabling state.

", + "smithy.api#xmlName": "disablingTime" + } + }, + "DisabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabled state.

", + "smithy.api#xmlName": "disabledTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes fast snapshot restores for a snapshot.

" + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestoreSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestoreSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestores": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestoresRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestoresResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the state of fast snapshot restores for your snapshots.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "FastSnapshotRestores", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestoresMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestoresRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. The possible values are:

\n
    \n
  • \n

    \n availability-zone: The Availability Zone of the snapshot. For example, us-east-2a.

    \n
  • \n
  • \n

    \n availability-zone-id: The ID of the Availability Zone of the snapshot. For example, use2-az1.

    \n
  • \n
  • \n

    \n owner-id: The ID of the Amazon Web Services account that enabled fast snapshot restore on the snapshot.

    \n
  • \n
  • \n

    \n snapshot-id: The ID of the snapshot.

    \n
  • \n
  • \n

    \n state: The state of fast snapshot restores for the snapshot \n (enabling | \n optimizing | \n enabled | \n disabling | \n disabled).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestoresMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFastSnapshotRestoresResult": { + "type": "structure", + "members": { + "FastSnapshotRestores": { + "target": "com.amazonaws.ec2#DescribeFastSnapshotRestoreSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "FastSnapshotRestoreSet", + "smithy.api#documentation": "

Information about the state of fast snapshot restores.

", + "smithy.api#xmlName": "fastSnapshotRestoreSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFleetError": { + "type": "structure", + "members": { + "LaunchTemplateAndOverrides": { + "target": "com.amazonaws.ec2#LaunchTemplateAndOverridesResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateAndOverrides", + "smithy.api#documentation": "

The launch templates and overrides that were used for launching the instances. The\n values that you specify in the Overrides replace the values in the launch template.

", + "smithy.api#xmlName": "launchTemplateAndOverrides" + } + }, + "Lifecycle": { + "target": "com.amazonaws.ec2#InstanceLifecycle", + "traits": { + "aws.protocols#ec2QueryName": "Lifecycle", + "smithy.api#documentation": "

Indicates if the instance that could not be launched was a Spot, On-Demand, Capacity Block for ML,\n or interruptible Capacity Reservation instance. If you are using ReservedCapacityOptions with\n on-demand-capacity-reservation in the ReservationTypes list, the\n value can also be on-demand-capacity-reservation.

", + "smithy.api#xmlName": "lifecycle" + } + }, + "ErrorCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ErrorCode", + "smithy.api#documentation": "

The error code that indicates why the instance could not be launched. For more\n information about error codes, see Error codes.

", + "smithy.api#xmlName": "errorCode" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ErrorMessage", + "smithy.api#documentation": "

The error message that describes why the instance could not be launched. For more\n information about error messages, see Error codes.

", + "smithy.api#xmlName": "errorMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instances that could not be launched by the fleet.

" + } + }, + "com.amazonaws.ec2#DescribeFleetHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFleetHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFleetHistoryResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the events for the specified EC2 Fleet during the specified time.

\n

EC2 Fleet events are delayed by up to 30 seconds before they can be described. This ensures\n that you can query by the last evaluated time and not miss a recorded event. EC2 Fleet events\n are available for 48 hours.

\n

For more information, see Monitor fleet events using Amazon EventBridge in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeFleetHistoryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#FleetEventType", + "traits": { + "smithy.api#documentation": "

The type of events to describe. By default, all events are described.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#required": {} + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The start date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFleetHistoryResult": { + "type": "structure", + "members": { + "HistoryRecords": { + "target": "com.amazonaws.ec2#HistoryRecordSet", + "traits": { + "aws.protocols#ec2QueryName": "HistoryRecordSet", + "smithy.api#documentation": "

Information about the events in the history of the EC2 Fleet.

", + "smithy.api#xmlName": "historyRecordSet" + } + }, + "LastEvaluatedTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastEvaluatedTime", + "smithy.api#documentation": "

The last date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n All records up to this time were retrieved.

\n

If nextToken indicates that there are more items, this value is not\n present.

", + "smithy.api#xmlName": "lastEvaluatedTime" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC Fleet.

", + "smithy.api#xmlName": "fleetId" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The start date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "startTime" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFleetInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFleetInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFleetInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the running instances for the specified EC2 Fleet.

\n \n

Currently, DescribeFleetInstances does not support fleets of type\n instant. Instead, use DescribeFleets, specifying the\n instant fleet ID in the request.

\n
\n

For more information, see Describe your\n EC2 Fleet in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeFleetInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n instance-type - The instance type.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFleetInstancesResult": { + "type": "structure", + "members": { + "ActiveInstances": { + "target": "com.amazonaws.ec2#ActiveInstanceSet", + "traits": { + "aws.protocols#ec2QueryName": "ActiveInstanceSet", + "smithy.api#documentation": "

The running instances. This list is refreshed periodically and might be out of\n date.

", + "smithy.api#xmlName": "activeInstanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified EC2 Fleet or all of your EC2 Fleets.

\n \n

If a fleet is of type instant, you must specify the fleet ID in the\n request, otherwise the fleet does not appear in the response.

\n
\n

For more information, see Describe your\n EC2 Fleet in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Fleets", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeFleetsErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DescribeFleetError", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DescribeFleetsInstances": { + "type": "structure", + "members": { + "LaunchTemplateAndOverrides": { + "target": "com.amazonaws.ec2#LaunchTemplateAndOverridesResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateAndOverrides", + "smithy.api#documentation": "

The launch templates and overrides that were used for launching the instances. The\n values that you specify in the Overrides replace the values in the launch template.

", + "smithy.api#xmlName": "launchTemplateAndOverrides" + } + }, + "Lifecycle": { + "target": "com.amazonaws.ec2#InstanceLifecycle", + "traits": { + "aws.protocols#ec2QueryName": "Lifecycle", + "smithy.api#documentation": "

Indicates if the instance that was launched is a Spot, On-Demand, Capacity Block for ML,\n or interruptible Capacity Reservation instance.

", + "smithy.api#xmlName": "lifecycle" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdsSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceIds", + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#xmlName": "instanceIds" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The value is windows for Windows instances in an EC2 Fleet. Otherwise, the value is\n blank.

", + "smithy.api#xmlName": "platform" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instances that were launched by the fleet.

" + } + }, + "com.amazonaws.ec2#DescribeFleetsInstancesSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DescribeFleetsInstances", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DescribeFleetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "FleetIds": { + "target": "com.amazonaws.ec2#FleetIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the EC2 Fleets.

\n \n

If a fleet is of type instant, you must specify the fleet ID, otherwise\n it does not appear in the response.

\n
", + "smithy.api#xmlName": "FleetId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n activity-status - The progress of the EC2 Fleet ( error |\n pending-fulfillment | pending-termination |\n fulfilled).

    \n
  • \n
  • \n

    \n excess-capacity-termination-policy - Indicates whether to terminate\n running instances if the target capacity is decreased below the current EC2 Fleet size\n (true | false).

    \n
  • \n
  • \n

    \n fleet-state - The state of the EC2 Fleet (submitted |\n active | deleted | failed |\n deleted-running | deleted-terminating |\n modifying).

    \n
  • \n
  • \n

    \n replace-unhealthy-instances - Indicates whether EC2 Fleet should replace\n unhealthy instances (true | false).

    \n
  • \n
  • \n

    \n type - The type of request (instant |\n request | maintain).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFleetsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Fleets": { + "target": "com.amazonaws.ec2#FleetSet", + "traits": { + "aws.protocols#ec2QueryName": "FleetSet", + "smithy.api#documentation": "

Information about the EC2 Fleets.

", + "smithy.api#xmlName": "fleetSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFlowLogs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFlowLogsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFlowLogsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more flow logs.

\n

To view the published flow log records, you must view the log destination. For example, \n the CloudWatch Logs log group, the Amazon S3 bucket, or the Kinesis Data Firehose delivery stream.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "FlowLogs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeFlowLogsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filter": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n deliver-log-status - The status of the logs delivery (SUCCESS |\n FAILED).

    \n
  • \n
  • \n

    \n log-destination-type - The type of destination for the flow log\n data (cloud-watch-logs | s3 |\n kinesis-data-firehose).

    \n
  • \n
  • \n

    \n flow-log-id - The ID of the flow log.

    \n
  • \n
  • \n

    \n log-group-name - The name of the log group.

    \n
  • \n
  • \n

    \n resource-id - The ID of the VPC, subnet, or network interface.

    \n
  • \n
  • \n

    \n traffic-type - The type of traffic (ACCEPT |\n REJECT | ALL).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
" + } + }, + "FlowLogIds": { + "target": "com.amazonaws.ec2#FlowLogIdList", + "traits": { + "smithy.api#documentation": "

One or more flow log IDs.

\n

Constraint: Maximum of 1000 flow log IDs.

", + "smithy.api#xmlName": "FlowLogId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of items. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFlowLogsResult": { + "type": "structure", + "members": { + "FlowLogs": { + "target": "com.amazonaws.ec2#FlowLogSet", + "traits": { + "aws.protocols#ec2QueryName": "FlowLogSet", + "smithy.api#documentation": "

Information about the flow logs.

", + "smithy.api#xmlName": "flowLogSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to request the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFpgaImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFpgaImageAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFpgaImageAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified Amazon FPGA Image (AFI).

" + } + }, + "com.amazonaws.ec2#DescribeFpgaImageAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FpgaImageId": { + "target": "com.amazonaws.ec2#FpgaImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AFI.

", + "smithy.api#required": {} + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#FpgaImageAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The AFI attribute.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFpgaImageAttributeResult": { + "type": "structure", + "members": { + "FpgaImageAttribute": { + "target": "com.amazonaws.ec2#FpgaImageAttribute", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageAttribute", + "smithy.api#documentation": "

Information about the attribute.

", + "smithy.api#xmlName": "fpgaImageAttribute" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFpgaImages": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeFpgaImagesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeFpgaImagesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon FPGA Images (AFIs) available to you. These include public AFIs,\n\t\t\tprivate AFIs that you own, and AFIs owned by other Amazon Web Services accounts for which you have load\n\t\t\tpermissions.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "FpgaImages", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeFpgaImagesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeFpgaImagesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FpgaImageIds": { + "target": "com.amazonaws.ec2#FpgaImageIdList", + "traits": { + "smithy.api#documentation": "

The AFI IDs.

", + "smithy.api#xmlName": "FpgaImageId" + } + }, + "Owners": { + "target": "com.amazonaws.ec2#OwnerStringList", + "traits": { + "smithy.api#documentation": "

Filters the AFI by owner. Specify an Amazon Web Services account ID, self \n\t\t\t(owner is the sender of the request), or an Amazon Web Services owner alias (valid values are \n\t\t\tamazon | aws-marketplace).

", + "smithy.api#xmlName": "Owner" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n create-time - The creation time of the AFI.

    \n
  • \n
  • \n

    \n fpga-image-id - The FPGA image identifier (AFI ID).

    \n
  • \n
  • \n

    \n fpga-image-global-id - The global FPGA image identifier (AGFI ID).

    \n
  • \n
  • \n

    \n name - The name of the AFI.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the AFI owner.

    \n
  • \n
  • \n

    \n product-code - The product code.

    \n
  • \n
  • \n

    \n shell-version - The version of the Amazon Web Services Shell that was used to create the bitstream.

    \n
  • \n
  • \n

    \n state - The state of the AFI (pending | failed | available | unavailable).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n update-time - The time of the most recent update.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeFpgaImagesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeFpgaImagesResult": { + "type": "structure", + "members": { + "FpgaImages": { + "target": "com.amazonaws.ec2#FpgaImageList", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageSet", + "smithy.api#documentation": "

Information about the FPGA images.

", + "smithy.api#xmlName": "fpgaImageSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeFutureCapacityMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeHostReservationOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeHostReservationOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeHostReservationOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Dedicated Host reservations that are available to purchase.

\n

The results describe all of the Dedicated Host reservation offerings, including\n offerings that might not match the instance family and Region of your Dedicated Hosts.\n When purchasing an offering, ensure that the instance family and Region of the offering\n matches that of the Dedicated Hosts with which it is to be associated. For more\n information about supported instance types, see Dedicated Hosts\n in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "OfferingSet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeHostReservationOfferingsRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n instance-family - The instance family of the offering (for example,\n m4).

    \n
  • \n
  • \n

    \n payment-option - The payment option (NoUpfront |\n PartialUpfront | AllUpfront).

    \n
  • \n
" + } + }, + "MaxDuration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

This is the maximum duration of the reservation to purchase, specified in seconds.\n Reservations are available in one-year and three-year terms. The number of seconds\n specified must be the number of seconds in a year (365x24x60x60) times one of the\n supported durations (1 or 3). For example, specify 94608000 for three years.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeHostReservationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

" + } + }, + "MinDuration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

This is the minimum duration of the reservation you'd like to purchase, specified in\n seconds. Reservations are available in one-year and three-year terms. The number of\n seconds specified must be the number of seconds in a year (365x24x60x60) times one of\n the supported durations (1 or 3). For example, specify 31536000 for one year.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#documentation": "

The ID of the reservation offering.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeHostReservationOfferingsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "OfferingSet": { + "target": "com.amazonaws.ec2#HostOfferingSet", + "traits": { + "aws.protocols#ec2QueryName": "OfferingSet", + "smithy.api#documentation": "

Information about the offerings.

", + "smithy.api#xmlName": "offeringSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeHostReservations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeHostReservationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeHostReservationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes reservations that are associated with Dedicated Hosts in your\n account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "HostReservationSet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeHostReservationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 500 + } + } + }, + "com.amazonaws.ec2#DescribeHostReservationsRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n instance-family - The instance family (for example,\n m4).

    \n
  • \n
  • \n

    \n payment-option - The payment option (NoUpfront |\n PartialUpfront | AllUpfront).

    \n
  • \n
  • \n

    \n state - The state of the reservation (payment-pending\n | payment-failed | active |\n retired).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
" + } + }, + "HostReservationIdSet": { + "target": "com.amazonaws.ec2#HostReservationIdSet", + "traits": { + "smithy.api#documentation": "

The host reservation IDs.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeHostReservationsResult": { + "type": "structure", + "members": { + "HostReservationSet": { + "target": "com.amazonaws.ec2#HostReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "HostReservationSet", + "smithy.api#documentation": "

Details about the reservation's configuration.

", + "smithy.api#xmlName": "hostReservationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeHosts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeHostsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeHostsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Dedicated Hosts or all your Dedicated Hosts.

\n

The results describe only the Dedicated Hosts in the Region you're currently using.\n All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have\n recently been released are listed with the state released.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Hosts", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeHostsRequest": { + "type": "structure", + "members": { + "HostIds": { + "target": "com.amazonaws.ec2#RequestHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts. The IDs are used for targeted instance\n launches.

", + "smithy.api#xmlName": "hostId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

\n

You cannot specify this parameter and the host IDs parameter in the same\n request.

", + "smithy.api#xmlName": "maxResults" + } + }, + "Filter": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "aws.protocols#ec2QueryName": "Filter", + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n auto-placement - Whether auto-placement is enabled or disabled\n (on | off).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the host.

    \n
  • \n
  • \n

    \n client-token - The idempotency token that you provided when you\n allocated the host.

    \n
  • \n
  • \n

    \n host-reservation-id - The ID of the reservation assigned to this\n host.

    \n
  • \n
  • \n

    \n instance-type - The instance type size that the Dedicated Host is\n configured to support.

    \n
  • \n
  • \n

    \n state - The allocation state of the Dedicated Host\n (available | under-assessment |\n permanent-failure | released |\n released-permanent-failure).

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeHostsResult": { + "type": "structure", + "members": { + "Hosts": { + "target": "com.amazonaws.ec2#HostList", + "traits": { + "aws.protocols#ec2QueryName": "HostSet", + "smithy.api#documentation": "

Information about the Dedicated Hosts.

", + "smithy.api#xmlName": "hostSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIamInstanceProfileAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your IAM instance profile associations.

", + "smithy.api#examples": [ + { + "title": "To describe an IAM instance profile association", + "documentation": "This example describes the specified IAM instance profile association.", + "input": { + "AssociationIds": [ + "iip-assoc-0db249b1f25fa24b8" + ] + }, + "output": { + "IamInstanceProfileAssociations": [ + { + "InstanceId": "i-09eb09efa73ec1dee", + "State": "associated", + "AssociationId": "iip-assoc-0db249b1f25fa24b8", + "IamInstanceProfile": { + "Id": "AIPAJVQN4F5WVLGCJDRGM", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IamInstanceProfileAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsRequest": { + "type": "structure", + "members": { + "AssociationIds": { + "target": "com.amazonaws.ec2#AssociationIdList", + "traits": { + "smithy.api#documentation": "

The IAM instance profile associations.

", + "smithy.api#xmlName": "AssociationId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n state - The state of the association (associating |\n associated | disassociating).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of\n items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsResult": { + "type": "structure", + "members": { + "IamInstanceProfileAssociations": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfileAssociationSet", + "smithy.api#documentation": "

Information about the IAM instance profile associations.

", + "smithy.api#xmlName": "iamInstanceProfileAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIdFormatRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIdFormatResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the ID format settings for your resources on a per-Region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

\n

These settings apply to the IAM user who makes the request; they do not apply to the entire\n Amazon Web Services account. By default, an IAM user defaults to the same settings as the root user, unless\n they explicitly override the settings by running the ModifyIdFormat command. Resources\n created with longer IDs are visible to all IAM users, regardless of these settings and\n provided that they have permission to use the relevant Describe command for the\n resource type.

" + } + }, + "com.amazonaws.ec2#DescribeIdFormatRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of resource: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIdFormatResult": { + "type": "structure", + "members": { + "Statuses": { + "target": "com.amazonaws.ec2#IdFormatList", + "traits": { + "aws.protocols#ec2QueryName": "StatusSet", + "smithy.api#documentation": "

Information about the ID format for the resource.

", + "smithy.api#xmlName": "statusSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIdentityIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIdentityIdFormatRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIdentityIdFormatResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the ID format settings for resources for the specified IAM user, IAM role, or root\n user. For example, you can view the resource types that are enabled for longer IDs. This request only\n returns information about resource types whose ID formats can be modified; it does not return\n information about other resource types. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

\n

These settings apply to the principal specified in the request. They do not apply to the\n principal that makes the request.

" + } + }, + "com.amazonaws.ec2#DescribeIdentityIdFormatRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Resource", + "smithy.api#documentation": "

The type of resource: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway\n

", + "smithy.api#xmlName": "resource" + } + }, + "PrincipalArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrincipalArn", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the principal, which can be an IAM role, IAM user, or the root user.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "principalArn" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIdentityIdFormatResult": { + "type": "structure", + "members": { + "Statuses": { + "target": "com.amazonaws.ec2#IdFormatList", + "traits": { + "aws.protocols#ec2QueryName": "StatusSet", + "smithy.api#documentation": "

Information about the ID format for the resources.

", + "smithy.api#xmlName": "statusSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImageAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImageAttribute" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified AMI. You can specify only one attribute\n at a time.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe the launch permissions for an AMI", + "documentation": "This example describes the launch permissions for the specified AMI.", + "input": { + "Attribute": "launchPermission", + "ImageId": "ami-5731123e" + }, + "output": { + "ImageId": "ami-5731123e", + "LaunchPermissions": [ + { + "UserId": "123456789012" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeImageAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#ImageAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The AMI attribute.

\n

\n Note: The blockDeviceMapping attribute is\n deprecated. Using this attribute returns the Client.AuthFailure error. To get\n information about the block device mappings for an AMI, describe the image instead.

", + "smithy.api#required": {} + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeImageAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImageReferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImageReferencesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImageReferencesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your Amazon Web Services resources that are referencing the specified images.

\n

For more information, see Identify your resources referencing\n specified AMIs in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImageReferences", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeImageReferencesImageIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ec2#DescribeImageReferencesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5 + } + } + }, + "com.amazonaws.ec2#DescribeImageReferencesRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#DescribeImageReferencesImageIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the images to check for resource references.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ImageId" + } + }, + "IncludeAllResourceTypes": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to check all supported Amazon Web Services resource types for image references. When\n specified, default values are applied for ResourceTypeOptions. For the default\n values, see How AMI\n reference checks work in the Amazon EC2 User Guide. If you also\n specify ResourceTypes with ResourceTypeOptions, your specified\n values override the default values.

\n

Supported resource types: ec2:Instance | ec2:LaunchTemplate |\n ssm:Parameter | imagebuilder:ImageRecipe |\n imagebuilder:ContainerRecipe\n

\n

Either IncludeAllResourceTypes or ResourceTypes must be\n specified.

" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.ec2#ResourceTypeRequestList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services resource types to check for image references.

\n

Either IncludeAllResourceTypes or ResourceTypes must be\n specified.

", + "smithy.api#xmlName": "ResourceType" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeImageReferencesMaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImageReferencesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ImageReferences": { + "target": "com.amazonaws.ec2#ImageReferenceList", + "traits": { + "aws.protocols#ec2QueryName": "ImageReferenceSet", + "smithy.api#documentation": "

The resources that are referencing the specified images.

", + "smithy.api#xmlName": "imageReferenceSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportEntries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportEntriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportEntriesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the entries in image usage reports, showing how your images are used across\n other Amazon Web Services accounts.

\n

For more information, see View your AMI usage in the\n Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImageUsageReportEntries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportEntriesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportEntriesRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportsImageIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the images for filtering the report entries. If specified, only report entries\n containing these images are returned.

", + "smithy.api#xmlName": "ImageId" + } + }, + "ReportIds": { + "target": "com.amazonaws.ec2#ImageUsageReportIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the usage reports.

", + "smithy.api#xmlName": "ReportId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n account-id - A 12-digit Amazon Web Services account ID.

    \n
  • \n
  • \n

    \n creation-time - The time when the report was created, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2025-11-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2025-11-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n resource-type - The resource type (ec2:Instance |\n ec2:LaunchTemplate).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportEntriesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportEntriesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ImageUsageReportEntries": { + "target": "com.amazonaws.ec2#ImageUsageReportEntryList", + "traits": { + "aws.protocols#ec2QueryName": "ImageUsageReportEntrySet", + "smithy.api#documentation": "

The content of the usage reports.

", + "smithy.api#xmlName": "imageUsageReportEntrySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImageUsageReports": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration and status of image usage reports, filtered by report IDs or\n image IDs.

\n

For more information, see View your AMI usage in the\n Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImageUsageReports", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "ImageUsageReportAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ImageUsageReports[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ImageUsageReports[].State", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportsImageIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportsRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportsImageIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the images for filtering the reports. If specified, only reports containing\n these images are returned.

", + "smithy.api#xmlName": "ImageId" + } + }, + "ReportIds": { + "target": "com.amazonaws.ec2#ImageUsageReportIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the image usage reports.

", + "smithy.api#xmlName": "ReportId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n creation-time - The time when the report was created, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2025-11-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2025-11-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n state - The state of the report (available |\n pending | error).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeImageUsageReportsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImageUsageReportsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ImageUsageReports": { + "target": "com.amazonaws.ec2#ImageUsageReportList", + "traits": { + "aws.protocols#ec2QueryName": "ImageUsageReportSet", + "smithy.api#documentation": "

The image usage reports.

", + "smithy.api#xmlName": "imageUsageReportSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImages": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImagesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImagesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the\n images available to you.

\n

The images available to you include public images, private images that you own, and\n private images owned by other Amazon Web Services accounts for which you have explicit launch\n permissions.

\n

Recently deregistered images appear in the returned results for a short interval and then\n return empty results. After all instances that reference a deregistered AMI are terminated,\n specifying the ID of the image will eventually return an error indicating that the AMI ID\n cannot be found.

\n

When Allowed AMIs is set to enabled, only allowed images are returned in the\n results, with the imageAllowed field set to true for each image. In\n audit-mode, the imageAllowed field is set to true for\n images that meet the account's Allowed AMIs criteria, and false for images that\n don't meet the criteria. For more information, see Allowed AMIs.

\n

The Amazon EC2 API follows an eventual consistency model. This means that the result of an API\n command you run that creates or modifies resources might not be immediately available to all\n subsequent commands you run. For guidance on how to manage eventual consistency, see Eventual\n consistency in the Amazon EC2 API in the Amazon EC2 Developer\n Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe an AMI", + "documentation": "This example describes the specified AMI.", + "input": { + "ImageIds": [ + "ami-5731123e" + ] + }, + "output": { + "Images": [ + { + "VirtualizationType": "paravirtual", + "Name": "My server", + "Hypervisor": "xen", + "ImageId": "ami-5731123e", + "RootDeviceType": "ebs", + "State": "available", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "DeleteOnTermination": true, + "SnapshotId": "snap-1234567890abcdef0", + "VolumeSize": 8, + "VolumeType": "standard" + } + } + ], + "Architecture": "x86_64", + "ImageLocation": "123456789012/My server", + "KernelId": "aki-88aa75e1", + "OwnerId": "123456789012", + "RootDeviceName": "/dev/sda1", + "Public": false, + "ImageType": "machine", + "Description": "An AMI for my server" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Images", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "ImageAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Images[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Images[].State", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "ImageExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(Images[]) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidAMIID.NotFound" + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeImagesRequest": { + "type": "structure", + "members": { + "ExecutableUsers": { + "target": "com.amazonaws.ec2#ExecutableByStringList", + "traits": { + "smithy.api#documentation": "

Scopes the images by users with explicit launch permissions. Specify an Amazon Web Services account ID, self (the sender of the request), or all\n (public AMIs).

\n
    \n
  • \n

    If you specify an Amazon Web Services account ID that is not your own, only AMIs shared\n with that specific Amazon Web Services account ID are returned. However, AMIs that are\n shared with the account’s organization or organizational unit (OU) are not\n returned.

    \n
  • \n
  • \n

    If you specify self or your own Amazon Web Services account ID, AMIs\n shared with your account are returned. In addition, AMIs that are shared with the\n organization or OU of which you are member are also returned.

    \n
  • \n
  • \n

    If you specify all, all public AMIs are returned.

    \n
  • \n
", + "smithy.api#xmlName": "ExecutableBy" + } + }, + "ImageIds": { + "target": "com.amazonaws.ec2#ImageIdStringList", + "traits": { + "smithy.api#documentation": "

The image IDs.

\n

Default: Describes all images available to you.

", + "smithy.api#xmlName": "ImageId" + } + }, + "Owners": { + "target": "com.amazonaws.ec2#OwnerStringList", + "traits": { + "smithy.api#documentation": "

Scopes the results to images with the specified owners. You can specify a combination of\n Amazon Web Services account IDs, self, amazon,\n aws-backup-vault, and aws-marketplace. If you omit this parameter,\n the results include all images for which you have launch permissions, regardless of\n ownership.

", + "smithy.api#xmlName": "Owner" + } + }, + "IncludeDeprecated": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include deprecated AMIs.

\n

Default: No deprecated AMIs are included in the response.

\n \n

If you are the AMI owner, all deprecated AMIs appear in the response regardless of what\n you specify for this parameter.

\n
" + } + }, + "IncludeDisabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include disabled AMIs.

\n

Default: No disabled AMIs are included in the response.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n architecture - The image architecture (i386 |\n x86_64 | arm64 | x86_64_mac |\n arm64_mac).

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean value that indicates\n whether the Amazon EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in the block\n device mapping (for example, /dev/sdh or xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS\n volume.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in\n GiB.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-type - The volume type of the Amazon EBS volume\n (io1 | io2 | gp2 | gp3 | sc1\n | st1 | standard).

    \n
  • \n
  • \n

    \n block-device-mapping.encrypted - A Boolean that indicates whether the Amazon EBS\n volume is encrypted.

    \n
  • \n
  • \n

    \n boot-mode – The boot mode of the image (legacy-bios |\n uefi | uefi-preferred).

    \n
  • \n
  • \n

    \n creation-date - The time when the image was created, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2021-09-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n description - The description of the image (provided during image\n creation).

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether enhanced networking with\n ENA is enabled.

    \n
  • \n
  • \n

    \n free-tier-eligible - A Boolean that indicates whether this image can be\n used under the Amazon Web Services Free Tier (true | false).

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type (ovm |\n xen).

    \n
  • \n
  • \n

    \n image-allowed - A Boolean that indicates whether the image meets the\n criteria specified for Allowed AMIs.

    \n
  • \n
  • \n

    \n image-id - The ID of the image.

    \n
  • \n
  • \n

    \n image-watermark.source-image-creation-time - The creation date of the\n source AMI, in the ISO 8601 format in the UTC time zone\n (\n YYYY-MM-DDTHH:MM:SS.ssssss+HH:MM\n ).\n You can use a wildcard (*), for example, 2021-09-29T*, which\n matches an entire day.

    \n
  • \n
  • \n

    \n image-watermark.source-image-id - The ID of the AMI to which the\n watermark was originally attached.

    \n
  • \n
  • \n

    \n image-watermark.source-image-region - The Region where the watermark\n was originally attached.

    \n
  • \n
  • \n

    \n image-watermark.watermark-creation-time - The date and time the\n watermark was attached to the AMI, in the ISO 8601 format in the UTC time zone\n (\n YYYY-MM-DDTHH:MM:SS.ssssss+HH:MM\n ).\n You can use a wildcard (*), for example, 2021-09-29T*, which\n matches an entire day.

    \n
  • \n
  • \n

    \n image-watermark.watermark-key - The watermark identifier, in\n accountId:watermarkName format (for example,\n 123456789012:approvedAmi).

    \n
  • \n
  • \n

    \n image-type - The image type (machine | kernel |\n ramdisk).

    \n
  • \n
  • \n

    \n instance-type-specification.supported-instance-type – The instance\n types that are compatible with the AMI, as specified by the AMI owner. Values can be\n individual instance types (for example, t3.micro) or wildcard patterns that\n match multiple instance types (for example, t3.*).

    \n
  • \n
  • \n

    \n instance-type-specification.unsupported-instance-type – The instance\n types that are not compatible with the AMI, as specified by the AMI owner. Values can be\n individual instance types (for example, t3.micro) or wildcard patterns that\n match multiple instance types (for example, t3.*).

    \n
  • \n
  • \n

    \n is-public - A Boolean that indicates whether the image is public.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n manifest-location - The location of the image manifest.

    \n
  • \n
  • \n

    \n name - The name of the AMI (provided during image creation).

    \n
  • \n
  • \n

    \n owner-alias - The owner alias (amazon |\n aws-backup-vault | aws-marketplace). The valid aliases are\n defined in an Amazon-maintained list. This is not the Amazon Web Services account alias\n that can be set using the IAM console. We recommend that you use the Owner request parameter instead of this filter.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner. We recommend\n that you use the Owner request parameter instead of this\n filter.

    \n
  • \n
  • \n

    \n platform - The platform. The only supported value is\n windows.

    \n
  • \n
  • \n

    \n product-code - The product code.

    \n
  • \n
  • \n

    \n product-code.type - The type of the product code\n (marketplace).

    \n
  • \n
  • \n

    \n public-ssm-parameter-name - The name of a public Systems Manager\n parameter associated with the AMI. The parameter must be in a trusted Amazon Web Services namespace\n under aws/service/. Returns all AMIs that have ever been associated with\n the parameter, including previous versions.

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for example,\n /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n scan-result.critical-fix-available-since - The earliest date and time, in\n the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon\n Inspector reported a fix as available for a critical severity finding on the\n AMI.

    \n
  • \n
  • \n

    \n scan-result.finding-scan-date - The date and time, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), of the most recent Amazon\n Inspector scan of the AMI.

    \n
  • \n
  • \n

    \n scan-result.high-fix-available-since - The earliest date and time, in the\n ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector\n reported a fix as available for a high severity finding on the AMI.

    \n
  • \n
  • \n

    \n scan-result.highest-finding-severity-label - The highest severity among\n the AMI's Amazon Inspector findings, whether or not a fix is available. The valid values\n are the following Amazon Inspector severity levels:

    \n
      \n
    • \n

      \n informational - CVSS score of 0.

      \n
    • \n
    • \n

      \n low - CVSS score of 0.1 to 3.9.

      \n
    • \n
    • \n

      \n medium - CVSS score of 4.0 to 6.9.

      \n
    • \n
    • \n

      \n high - CVSS score of 7.0 to 8.9.

      \n
    • \n
    • \n

      \n critical - CVSS score of 9.0 to 10.0.

      \n
    • \n
    \n
  • \n
  • \n

    \n scan-result.informational-fix-available-since - The earliest date and\n time, in the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), at which\n Amazon Inspector reported a fix as available for an informational severity\n finding on the AMI.

    \n
  • \n
  • \n

    \n scan-result.low-fix-available-since - The earliest date and time, in the\n ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector\n reported a fix as available for a low severity finding on the AMI.

    \n
  • \n
  • \n

    \n scan-result.medium-fix-available-since - The earliest date and time, in\n the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon\n Inspector reported a fix as available for a medium severity finding on the\n AMI.

    \n
  • \n
  • \n

    \n source-image-id - The ID of the source AMI from which the AMI was\n created.

    \n
  • \n
  • \n

    \n source-image-region - The Region of the source AMI.

    \n
  • \n
  • \n

    \n source-instance-id - The ID of the instance that the AMI was created from\n if the AMI was created using CreateImage. This filter is applicable only if the AMI was\n created using CreateImage.

    \n
  • \n
  • \n

    \n state - The state of the image (available | pending\n | failed).

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - The message for the state change.

    \n
  • \n
  • \n

    \n sriov-net-support - A value of simple indicates that\n enhanced networking with the Intel 82599 VF interface is enabled.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type (paravirtual |\n hvm).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImagesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Images": { + "target": "com.amazonaws.ec2#ImageList", + "traits": { + "aws.protocols#ec2QueryName": "ImagesSet", + "smithy.api#documentation": "

Information about the images.

", + "smithy.api#xmlName": "imagesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImportImageTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImportImageTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImportImageTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Displays details about an import virtual machine or import snapshot tasks that are already created.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImportImageTasks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeImportImageTasksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filter tasks using the task-state filter and one of the following values: active,\n completed, deleting, or deleted.

", + "smithy.api#xmlName": "Filters" + } + }, + "ImportTaskIds": { + "target": "com.amazonaws.ec2#ImportTaskIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the import image tasks.

", + "smithy.api#xmlName": "ImportTaskId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A token that indicates the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImportImageTasksResult": { + "type": "structure", + "members": { + "ImportImageTasks": { + "target": "com.amazonaws.ec2#ImportImageTaskList", + "traits": { + "aws.protocols#ec2QueryName": "ImportImageTaskSet", + "smithy.api#documentation": "

A list of zero or more import image tasks that are currently active or were completed or canceled in the\n previous 7 days.

", + "smithy.api#xmlName": "importImageTaskSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to get the next page of results. This value is null when there are no more results\n to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeImportSnapshotTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeImportSnapshotTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeImportSnapshotTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your import snapshot tasks.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImportSnapshotTasks", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "SnapshotImported": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ImportSnapshotTasks[].SnapshotTaskDetail.Status", + "expected": "completed", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ImportSnapshotTasks[].SnapshotTaskDetail.Status", + "expected": "error", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeImportSnapshotTasksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

", + "smithy.api#xmlName": "Filters" + } + }, + "ImportTaskIds": { + "target": "com.amazonaws.ec2#ImportSnapshotTaskIdList", + "traits": { + "smithy.api#documentation": "

A list of import snapshot task IDs.

", + "smithy.api#xmlName": "ImportTaskId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A token that indicates the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeImportSnapshotTasksResult": { + "type": "structure", + "members": { + "ImportSnapshotTasks": { + "target": "com.amazonaws.ec2#ImportSnapshotTaskList", + "traits": { + "aws.protocols#ec2QueryName": "ImportSnapshotTaskSet", + "smithy.api#documentation": "

A list of zero or more import snapshot tasks that are currently active or were completed or canceled in the\n previous 7 days.

", + "smithy.api#xmlName": "importSnapshotTaskSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to get the next page of results. This value is null when there are no more results\n to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#InstanceAttribute" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified instance. You can specify only one\n attribute at a time. Available attributes include SQL license exemption configuration\n for instances registered with the SQL LE service.\n

", + "smithy.api#examples": [ + { + "title": "To describe the block device mapping for an instance", + "documentation": "This example describes the ``blockDeviceMapping`` attribute of the specified instance.\n", + "input": { + "InstanceId": "i-1234567890abcdef0", + "Attribute": "blockDeviceMapping" + }, + "output": { + "InstanceId": "i-1234567890abcdef0", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "Status": "attached", + "DeleteOnTermination": true, + "VolumeId": "vol-049df61146c4d7901", + "AttachTime": "2013-05-17T22:42:34.000Z" + } + }, + { + "DeviceName": "/dev/sdf", + "Ebs": { + "Status": "attached", + "DeleteOnTermination": false, + "VolumeId": "vol-049df61146c4d7901", + "AttachTime": "2013-09-10T23:07:00.000Z" + } + } + ] + } + }, + { + "title": "To describe the instance type", + "documentation": "This example describes the instance type of the specified instance.\n", + "input": { + "InstanceId": "i-1234567890abcdef0", + "Attribute": "instanceType" + }, + "output": { + "InstanceId": "i-1234567890abcdef0", + "InstanceType": { + "Value": "t1.micro" + } + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeInstanceAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#InstanceAttributeName", + "traits": { + "aws.protocols#ec2QueryName": "Attribute", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance attribute.

\n

Note that the enaSupport attribute is not supported.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "attribute" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceConnectEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceConnectEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceConnectEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified EC2 Instance Connect Endpoints or all EC2 Instance Connect Endpoints.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceConnectEndpoints", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceConnectEndpointsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n instance-connect-endpoint-id - The ID of the EC2 Instance Connect Endpoint.

    \n
  • \n
  • \n

    \n state - The state of the EC2 Instance Connect Endpoint (create-in-progress | create-complete | create-failed | \n delete-in-progress | delete-complete | delete-failed).

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet in which the EC2 Instance\n Connect Endpoint was created.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tag-value - The value of a tag assigned to the resource. Use this filter to find all resources \n that have a tag with a specific value, regardless of tag key.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC in which the EC2 Instance Connect\n Endpoint was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "InstanceConnectEndpointIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

One or more EC2 Instance Connect Endpoint IDs.

", + "smithy.api#xmlName": "InstanceConnectEndpointId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceConnectEndpointsResult": { + "type": "structure", + "members": { + "InstanceConnectEndpoints": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceConnectEndpointSet", + "smithy.api#documentation": "

Information about the EC2 Instance Connect Endpoints.

", + "smithy.api#xmlName": "instanceConnectEndpointSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceCreditSpecifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the credit option for CPU usage of the specified burstable performance\n instances. The credit options are standard and\n unlimited.

\n

If you do not specify an instance ID, Amazon EC2 returns burstable performance\n instances with the unlimited credit option, as well as instances that were\n previously configured as T2, T3, and T3a with the unlimited credit option.\n For example, if you resize a T2 instance, while it is configured as\n unlimited, to an M4 instance, Amazon EC2 returns the M4\n instance.

\n

If you specify one or more instance IDs, Amazon EC2 returns the credit option\n (standard or unlimited) of those instances. If you specify\n an instance ID that is not a burstable performance instance, Amazon EC2 returns the\n standard credit option.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If an Availability Zone is experiencing a service disruption and you specify instance\n IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If\n you specify only instance IDs in an unaffected zone, the call works normally.

\n

For more information, see Burstable\n performance instances in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceCreditSpecifications", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The instance IDs.

\n

Default: Describes all your instances.

\n

Constraints: Maximum 1000 explicitly specified instance IDs.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You cannot specify this parameter and the instance IDs\n parameter in the same call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsResult": { + "type": "structure", + "members": { + "InstanceCreditSpecifications": { + "target": "com.amazonaws.ec2#InstanceCreditSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCreditSpecificationSet", + "smithy.api#documentation": "

Information about the credit option for CPU usage of an instance.

", + "smithy.api#xmlName": "instanceCreditSpecificationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the tag keys that are registered to appear in scheduled event notifications\n for resources in the current Region.

" + } + }, + "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceEventNotificationAttributesResult": { + "type": "structure", + "members": { + "InstanceTagAttribute": { + "target": "com.amazonaws.ec2#InstanceTagNotificationAttribute", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTagAttribute", + "smithy.api#documentation": "

Information about the registered tag keys.

", + "smithy.api#xmlName": "instanceTagAttribute" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceEventWindows": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceEventWindowsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceEventWindowsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified event windows or all event windows.

\n

If you specify event window IDs, the output includes information for only the specified\n event windows. If you specify filters, the output includes information for only those event\n windows that meet the filter criteria. If you do not specify event windows IDs or filters,\n the output includes information for all event windows, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceEventWindows", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceEventWindowsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceEventWindowIds": { + "target": "com.amazonaws.ec2#InstanceEventWindowIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the event windows.

", + "smithy.api#xmlName": "InstanceEventWindowId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n dedicated-host-id - The event windows associated with the specified\n Dedicated Host ID.

    \n
  • \n
  • \n

    \n event-window-name - The event windows associated with the specified\n names.

    \n
  • \n
  • \n

    \n instance-id - The event windows associated with the specified\n instance ID.

    \n
  • \n
  • \n

    \n instance-tag - The event windows associated with the specified tag\n and value.

    \n
  • \n
  • \n

    \n instance-tag-key - The event windows associated with the specified\n tag key, regardless of the value.

    \n
  • \n
  • \n

    \n instance-tag-value - The event windows associated with the specified\n tag value, regardless of the key.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the\n event window. Use the tag key in the filter name and the tag value as the filter\n value. For example, to find all resources that have a tag with the key\n Owner and the value CMX, specify tag:Owner\n for the filter name and CMX for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the event window. Use this\n filter to find all event windows that have a tag with a specific key, regardless of\n the tag value.

    \n
  • \n
  • \n

    \n tag-value - The value of a tag assigned to the event window. Use this\n filter to find all event windows that have a tag with a specific value, regardless of\n the tag key.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#ResultRange", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. To retrieve the remaining\n results, make another call with the returned NextToken value. This value can\n be between 20 and 500. You cannot specify this parameter and the event window IDs parameter\n in the same call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describe instance event windows by InstanceEventWindow.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceEventWindowsResult": { + "type": "structure", + "members": { + "InstanceEventWindows": { + "target": "com.amazonaws.ec2#InstanceEventWindowSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindowSet", + "smithy.api#documentation": "

Information about the event windows.

", + "smithy.api#xmlName": "instanceEventWindowSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null\n when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceImageMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceImageMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceImageMetadataResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the AMI that was used to launch an instance, even if the AMI is deprecated,\n deregistered, made private (no longer public or shared with your account), or not\n allowed.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those instances\n that meet the filter criteria. If you do not specify instance IDs or filters, the output\n includes information for all instances, which can affect performance.

\n

If you specify an instance ID that is not valid, an instance that doesn't exist, or an\n instance that you do not own, an error (InvalidInstanceID.NotFound) is\n returned.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

In the rare case where an Availability Zone is experiencing a service disruption and you\n specify instance IDs that are in the affected Availability Zone, or do not specify any\n instance IDs at all, the call fails. If you specify only instance IDs that are in an\n unaffected Availability Zone, the call works normally.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceImageMetadata", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceImageMetadataMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeInstanceImageMetadataRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The name of the Availability Zone (for example,\n us-west-2a) or Local Zone (for example, us-west-2-lax-1b) of\n the instance.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n image-allowed - A Boolean that indicates whether the image meets the\n criteria specified for Allowed AMIs.

    \n
  • \n
  • \n

    \n instance-state-name - The state of the instance (pending |\n running | shutting-down | terminated |\n stopping | stopped).

    \n
  • \n
  • \n

    \n instance-type - The type of instance (for example,\n t3.micro).

    \n
  • \n
  • \n

    \n launch-time - The time when the instance was launched, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2023-09-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2023-09-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n owner-alias - The owner alias (amazon |\n aws-marketplace | aws-backup-vault). The valid aliases are\n defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be set\n using the IAM console. We recommend that you use the Owner request parameter\n instead of this filter.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner. We recommend that you use\n the Owner request parameter instead of this filter.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n zone-id - The ID of the Availability Zone (for example,\n usw2-az2) or Local Zone (for example, usw2-lax1-az1) of the\n instance.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The instance IDs.

\n

If you don't specify an instance ID or filters, the output includes information for all\n instances.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInstanceImageMetadataMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

Default: 1000

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceImageMetadataResult": { + "type": "structure", + "members": { + "InstanceImageMetadata": { + "target": "com.amazonaws.ec2#InstanceImageMetadataList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceImageMetadataSet", + "smithy.api#documentation": "

Information about the instance and the AMI used to launch the instance.

", + "smithy.api#xmlName": "instanceImageMetadataSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStates": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the historical SQL Server High Availability states for Amazon EC2 \n instances that are enabled for Amazon EC2 High Availability for SQL Server monitoring.

" + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the SQL Server High Availability instances to describe. If omitted, the API returns \n historical states for all SQL Server High Availability instances.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The start data and time of the period for which to get the historical \n SQL Server High Availability states. If omitted, the API returns all available historical states.

\n

Timezone: UTC

\n

Format: YYYY-MM-DDThh:mm:ss.sssZ\n

" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The end data and time of the period for which to get historical SQL Server High Availability \n states. If omitted, the API returns historical states up to the current \n date and time.

\n

Timezone: UTC

\n

Format: YYYY-MM-DDThh:mm:ss.sssZ\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequestMaxResultsInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a \n single page. The remaining results can be seen by sending another request with the \n returned nextToken value.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results. Supported filters \n include:

\n
    \n
  • \n

    \n tag: - The tag key and value pair assigned to the \n instance. For example, to find all instances tagged with Owner:TeamA, specify \n tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The tag key assigned to the instance.

    \n
  • \n
  • \n

    \n haStatus - The SQL Server High Availability status of the SQL Server High Availability instance (processing | \n active | standby | invalid).

    \n
  • \n
  • \n

    \n sqlServerLicenseUsage - The license type for the SQL Server license \n (full | waived).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, \n without actually making the request, and provides an error response. If you have the \n required permissions, the error response is DryRunOperation. Otherwise, \n it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaHistoryStatesResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#RegisteredInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

Information about the historical SQL Server High Availability states of the SQL Server High Availability instances.

", + "smithy.api#xmlName": "instanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. \n This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaStates": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaStatesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the SQL Server High Availability states for Amazon EC2 instances that are \n enabled for Amazon EC2 High Availability for SQL Server monitoring.

" + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the SQL Server High Availability instances to describe. If omitted, the API returns \n SQL Server High Availability states for all SQL Server High Availability instances.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequestMaxResultsInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a \n single page. The remaining results can be seen by sending another request with the \n returned nextToken value.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results. Supported filters \n include:

\n
    \n
  • \n

    \n tag: - The tag key and value pair assigned to the \n instance. For example, to find all instances tagged with Owner:TeamA, specify \n tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The tag key assigned to the instance.

    \n
  • \n
  • \n

    \n haStatus - The SQL Server High Availability status of the SQL Server High Availability instance (processing | \n active | standby | invalid).

    \n
  • \n
  • \n

    \n sqlServerLicenseUsage - The license type for the SQL Server license \n (full | waived).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, \n without actually making the request, and provides an error response. If you have the \n required permissions, the error response is DryRunOperation. Otherwise, \n it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaStatesRequestMaxResultsInteger": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeInstanceSqlHaStatesResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#RegisteredInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

Information about the SQL Server High Availability instances.

", + "smithy.api#xmlName": "instanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. \n This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the status of the specified instances or all of your instances. By default,\n only running instances are described, unless you specifically indicate to return the\n status of all instances.

\n

Instance status includes the following components:

\n
    \n
  • \n

    \n Status checks - Amazon EC2 performs status\n checks on running EC2 instances to identify hardware and software issues. For\n more information, see Status checks for your instances and Troubleshoot\n instances with failed status checks in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Application status checks - Amazon EC2 reports\n application-level health status for instances, indicating whether applications\n running on the instance are functioning properly.

    \n
  • \n
  • \n

    \n Scheduled events - Amazon EC2 can schedule\n events (such as reboot, stop, or terminate) for your instances related to\n hardware issues, software updates, or system maintenance. For more information,\n see Scheduled events for your instances in the Amazon EC2 User\n Guide.

    \n
  • \n
  • \n

    \n Instance state - You can manage your instances\n from the moment you launch them through their termination. For more information,\n see Instance\n lifecycle in the Amazon EC2 User Guide.

    \n
  • \n
\n

The Amazon EC2 API follows an eventual consistency model. This means that the result of an\n API command you run that creates or modifies resources might not be immediately\n available to all subsequent commands you run. For guidance on how to manage eventual\n consistency, see Eventual consistency in the\n Amazon EC2 API in the Amazon EC2 Developer\n Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe the status of an instance", + "documentation": "This example describes the current status of the specified instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef0" + ] + }, + "output": { + "InstanceStatuses": [ + { + "InstanceId": "i-1234567890abcdef0", + "InstanceState": { + "Code": 16, + "Name": "running" + }, + "AvailabilityZone": "us-east-1d", + "SystemStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "reachability" + } + ] + }, + "InstanceStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "reachability" + } + ] + } + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceStatuses", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "InstanceStatusOk": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "InstanceStatuses[].InstanceStatus.Status", + "expected": "ok", + "comparator": "allStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInstanceID.NotFound" + } + } + ], + "minDelay": 15 + }, + "SystemStatusOk": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "InstanceStatuses[].SystemStatus.Status", + "expected": "ok", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeInstanceStatusRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The instance IDs.

\n

Default: Describes all your instances.

\n

Constraints: Maximum 100 explicitly specified instance IDs.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You cannot specify this parameter and the instance IDs parameter in the same request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set\n to true, the output includes resources that are managed by Amazon Web Services services,\n even if managed resource visibility is set to hidden.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone of the instance.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone of the\n instance.

    \n
  • \n
  • \n

    \n event.code - The code for the scheduled event\n (instance-reboot | system-reboot |\n system-maintenance | instance-retirement |\n instance-stop).

    \n
  • \n
  • \n

    \n event.description - A description of the event.

    \n
  • \n
  • \n

    \n event.instance-event-id - The ID of the event whose date and time\n you are modifying.

    \n
  • \n
  • \n

    \n event.not-after - The latest end time for the scheduled event\n (for example, 2014-09-15T17:15:20.000Z).

    \n
  • \n
  • \n

    \n event.not-before - The earliest start time for the scheduled\n event (for example, 2014-09-15T17:15:20.000Z).

    \n
  • \n
  • \n

    \n event.not-before-deadline - The deadline for starting the event\n (for example, 2014-09-15T17:15:20.000Z).

    \n
  • \n
  • \n

    \n instance-state-code - The code for the instance state, as a\n 16-bit unsigned integer. The high byte is used for internal purposes and should\n be ignored. The low byte is set based on the state represented. The valid values\n are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n (stopping), and 80 (stopped).

    \n
  • \n
  • \n

    \n instance-state-name - The state of the instance\n (pending | running | shutting-down |\n terminated | stopping |\n stopped).

    \n
  • \n
  • \n

    \n instance-status.reachability - Filters on instance status where\n the name is reachability (passed | failed\n | initializing | insufficient-data).

    \n
  • \n
  • \n

    \n instance-status.status - The status of the instance\n (ok | impaired | initializing |\n insufficient-data | not-applicable).

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed instance.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the instance.\n Only valid for managed instances, where managed is\n true.

    \n
  • \n
  • \n

    \n system-status.reachability - Filters on system status where the\n name is reachability (passed | failed |\n initializing | insufficient-data).

    \n
  • \n
  • \n

    \n system-status.status - The system status of the instance\n (ok | impaired | initializing |\n insufficient-data | not-applicable).

    \n
  • \n
  • \n

    \n attached-ebs-status.status - The status of the attached EBS volume \n for the instance (ok | impaired | initializing | \n insufficient-data | not-applicable).

    \n
  • \n
  • \n

    \n application-status.status - The application status of the instance\n (ok | impaired | initializing |\n insufficient-data | not-applicable).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "IncludeAllInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IncludeAllInstances", + "smithy.api#documentation": "

When true, includes the health status for all instances. When\n false, includes the health status for running instances only.

\n

Default: false\n

", + "smithy.api#xmlName": "includeAllInstances" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceStatusResult": { + "type": "structure", + "members": { + "InstanceStatuses": { + "target": "com.amazonaws.ec2#InstanceStatusList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceStatusSet", + "smithy.api#documentation": "

Information about the status of the instances.

", + "smithy.api#xmlName": "instanceStatusSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTopology": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceTopologyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceTopologyResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a tree-based hierarchy that represents the physical host placement of your\n EC2 instances within an Availability Zone or Local Zone. You can use this information to\n determine the relative proximity of your EC2 instances within the Amazon Web Services network to\n support your tightly coupled workloads.

\n

Instance topology is supported for specific instance types only. For more information,\n see Prerequisites\n for Amazon EC2 instance topology in the\n Amazon EC2 User Guide.

\n \n

The Amazon EC2 API follows an eventual consistency model due to the\n distributed nature of the system supporting it. As a result, when you call the\n DescribeInstanceTopology API command immediately after launching instances, the\n response might return a null value for capacityBlockId\n because the data might not have fully propagated across all subsystems. For more\n information, see Eventual consistency in the\n Amazon EC2 API in the Amazon EC2 Developer\n Guide.

\n
\n

For more information, see Amazon EC2 topology in\n the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Instances", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceTopologyGroupNameSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PlacementGroupName" + } + }, + "com.amazonaws.ec2#DescribeInstanceTopologyInstanceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId" + } + }, + "com.amazonaws.ec2#DescribeInstanceTopologyMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeInstanceTopologyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInstanceTopologyMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You can't specify this parameter and the instance IDs parameter in the same\n request.

\n

Default: 20\n

" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#DescribeInstanceTopologyInstanceIdSet", + "traits": { + "smithy.api#documentation": "

The instance IDs.

\n

Default: Describes all your instances.

\n

Constraints: Maximum 100 explicitly specified instance IDs.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "GroupNames": { + "target": "com.amazonaws.ec2#DescribeInstanceTopologyGroupNameSet", + "traits": { + "smithy.api#documentation": "

The name of the placement group that each instance is in.

\n

Constraints: Maximum 100 explicitly specified placement group names.

", + "smithy.api#xmlName": "GroupName" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The name of the Availability Zone (for\n example, us-west-2a) or Local Zone (for example,\n us-west-2-lax-1b) that the instance is in.

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example,\n p4d.24xlarge) or instance family (for example,\n p4d*). You can use the * wildcard to match zero or\n more characters, or the ? wildcard to match zero or one\n character.

    \n
  • \n
  • \n

    \n zone-id - The ID of the Availability Zone (for example,\n usw2-az2) or Local Zone (for example,\n usw2-lax1-az1) that the instance is in.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTopologyResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#InstanceSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

Information about the topology of each instance.

", + "smithy.api#xmlName": "instanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTypeOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceTypeOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceTypeOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Lists the instance types that are offered for the specified location. If no location is\n specified, the default is to list the instance types that are offered in the current\n Region.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceTypeOfferings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceTypeOfferingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request,\n and provides an error response. If you have the required permissions, the error response is\n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "LocationType": { + "target": "com.amazonaws.ec2#LocationType", + "traits": { + "smithy.api#documentation": "

The location type.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone. When you specify a location\n filter, it must be an Availability Zone for the current Region.

    \n
  • \n
  • \n

    \n availability-zone-id - The AZ ID. When you specify a location filter, it must\n be an AZ ID for the current Region.

    \n
  • \n
  • \n

    \n outpost - The Outpost ARN. When you specify a location filter, it must be an\n Outpost ARN for the current Region.

    \n
  • \n
  • \n

    \n region - The current Region. If you specify a location filter, it must match\n the current Region.

    \n
  • \n
" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n instance-type - The instance type. For a list of possible values, see Instance.

    \n
  • \n
  • \n

    \n location - The location. For a list of possible identifiers, see Regions and Zones.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DITOMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTypeOfferingsResult": { + "type": "structure", + "members": { + "InstanceTypeOfferings": { + "target": "com.amazonaws.ec2#InstanceTypeOfferingsList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeOfferingSet", + "smithy.api#documentation": "

The instance types offered in the location.

", + "smithy.api#xmlName": "instanceTypeOfferingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstanceTypesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstanceTypesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified instance types. By default, all instance types for the current\n Region are described. Alternatively, you can filter the results. To include instance types\n that are not supported in the current Region, set IncludeUnsupportedInRegion\n to true.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceTypes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeInstanceTypesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request,\n and provides an error response. If you have the required permissions, the error response is\n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceTypes": { + "target": "com.amazonaws.ec2#RequestInstanceTypeList", + "traits": { + "smithy.api#documentation": "

The instance types.

", + "smithy.api#xmlName": "InstanceType" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n auto-recovery-supported - Indicates whether Amazon CloudWatch action\n based recovery is supported (true | false).

    \n
  • \n
  • \n

    \n bare-metal - Indicates whether it is a bare metal instance type\n (true | false).

    \n
  • \n
  • \n

    \n burstable-performance-supported - Indicates whether the instance type is a\n burstable performance T instance type (true | false).

    \n
  • \n
  • \n

    \n current-generation - Indicates whether this instance type is the latest\n generation instance type of an instance family (true | false).

    \n
  • \n
  • \n

    \n dedicated-hosts-supported - Indicates whether the instance type supports\n Dedicated Hosts. (true | false)

    \n
  • \n
  • \n

    \n ebs-info.attachment-limit-type - The type of Amazon EBS volume attachment limit \n (shared | dedicated).

    \n
  • \n
  • \n

    \n ebs-info.maximum-ebs-attachments - The maximum number of Amazon EBS volumes that \n can be attached to the instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps - The baseline\n bandwidth performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-iops - The baseline input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps - The maximum bandwidth\n performance for an EBS-optimized instance type, in Mbps.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-iops - The maximum input/output storage\n operations per second for an EBS-optimized instance type.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum\n throughput performance for an EBS-optimized instance type, in MB/s.

    \n
  • \n
  • \n

    \n ebs-info.ebs-optimized-support - Indicates whether the instance type is\n EBS-optimized (supported | unsupported |\n default).

    \n
  • \n
  • \n

    \n ebs-info.encryption-support - Indicates whether EBS encryption is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n ebs-info.nvme-support - Indicates whether non-volatile memory express (NVMe)\n is supported for EBS volumes (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n free-tier-eligible - A Boolean that indicates whether this instance type can\n be used under the Amazon Web Services Free Tier (true | false).

    \n
  • \n
  • \n

    \n hibernation-supported - Indicates whether On-Demand hibernation is supported\n (true | false).

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor (nitro | xen).

    \n
  • \n
  • \n

    \n instance-storage-info.disk.count - The number of local disks.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.size-in-gb - The storage size of each instance\n storage disk, in GB.

    \n
  • \n
  • \n

    \n instance-storage-info.disk.type - The storage technology for the local\n instance storage disks (hdd | ssd).

    \n
  • \n
  • \n

    \n instance-storage-info.encryption-support - Indicates whether data is\n encrypted at rest (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.nvme-support - Indicates whether non-volatile memory\n express (NVMe) is supported for instance store (required | supported\n | unsupported).

    \n
  • \n
  • \n

    \n instance-storage-info.total-size-in-gb - The total amount of storage\n available from all local instance storage, in GB.

    \n
  • \n
  • \n

    \n instance-storage-supported - Indicates whether the instance type has local\n instance storage (true | false).

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example c5.2xlarge or\n c5*).

    \n
  • \n
  • \n

    \n memory-info.size-in-mib - The memory size.

    \n
  • \n
  • \n

    \n network-info.bandwidth-weightings - For instances that support bandwidth\n weighting to boost performance (default, vpc-1,\n ebs-1).

    \n
  • \n
  • \n

    \n network-info.efa-info.maximum-efa-interfaces - The maximum number of Elastic\n Fabric Adapters (EFAs) per instance.

    \n
  • \n
  • \n

    \n network-info.efa-supported - Indicates whether the instance type supports\n Elastic Fabric Adapter (EFA) (true | false).

    \n
  • \n
  • \n

    \n network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is\n supported or required (required | supported |\n unsupported).

    \n
  • \n
  • \n

    \n network-info.flexible-ena-queues-support - Indicates whether an instance supports\n flexible ENA queues (supported | unsupported).

    \n
  • \n
  • \n

    \n network-info.encryption-in-transit-supported - Indicates whether the instance\n type automatically encrypts in-transit traffic between instances (true | false).

    \n
  • \n
  • \n

    \n network-info.ipv4-addresses-per-interface - The maximum number of private\n IPv4 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-addresses-per-interface - The maximum number of private\n IPv6 addresses per network interface.

    \n
  • \n
  • \n

    \n network-info.ipv6-supported - Indicates whether the instance type supports\n IPv6 (true | false).

    \n
  • \n
  • \n

    \n network-info.maximum-network-cards - The maximum number of network cards per\n instance.

    \n
  • \n
  • \n

    \n network-info.maximum-network-interfaces - The maximum number of network\n interfaces per instance.

    \n
  • \n
  • \n

    \n network-info.network-performance - The network performance (for example, \"25\n Gigabit\").

    \n
  • \n
  • \n

    \n nitro-enclaves-support - Indicates whether Nitro Enclaves is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-support - Indicates whether NitroTPM is supported\n (supported | unsupported).

    \n
  • \n
  • \n

    \n nitro-tpm-info.supported-versions - The supported NitroTPM version\n (2.0).

    \n
  • \n
  • \n

    \n processor-info.supported-architecture - The CPU architecture\n (arm64 | i386 | x86_64).

    \n
  • \n
  • \n

    \n processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in\n GHz.

    \n
  • \n
  • \n

    \n processor-info.supported-features - The supported CPU features\n (amd-sev-snp).

    \n
  • \n
  • \n

    \n reboot-migration-support - Indicates whether enabling reboot migration is\n supported (supported | unsupported).

    \n
  • \n
  • \n

    \n supported-boot-mode - The boot mode (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n supported-root-device-type - The root device type (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n supported-usage-class - The usage class (on-demand |\n spot | capacity-block).

    \n
  • \n
  • \n

    \n supported-virtualization-type - The virtualization type (hvm |\n paravirtual).

    \n
  • \n
  • \n

    \n vcpu-info.default-cores - The default number of cores for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.default-threads-per-core - The default number of threads per core\n for the instance type.

    \n
  • \n
  • \n

    \n vcpu-info.default-vcpus - The default number of vCPUs for the instance\n type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-cores - The number of cores that can be configured for the\n instance type.

    \n
  • \n
  • \n

    \n vcpu-info.valid-threads-per-core - The number of threads per core that can be\n configured for the instance type. For example, \"1\" or \"1,2\".

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DITMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "IncludeUnsupportedInRegion": { + "target": "com.amazonaws.ec2#IncludeUnsupportedInRegion", + "traits": { + "smithy.api#documentation": "

If true, the response includes instance types that are not supported\n in the current Region, in addition to the supported types. Default: false.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstanceTypesResult": { + "type": "structure", + "members": { + "InstanceTypes": { + "target": "com.amazonaws.ec2#InstanceTypeInfoList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeSet", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceTypeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified instances or all instances.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those\n instances that meet the filter criteria. If you do not specify instance IDs or filters,\n the output includes information for all instances, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

The response includes SQL license exemption status information for instances registered\n with the SQL LE service, providing visibility into license exemption configuration and status.

\n

If you specify an instance ID that is not valid, an error is returned. If you specify\n an instance that you do not own, it is not included in the output.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If you describe instances in the rare case where an Availability Zone is experiencing\n a service disruption and you specify instance IDs that are in the affected zone, or do\n not specify any instance IDs at all, the call fails. If you describe instances and\n specify only instance IDs that are in an unaffected zone, the call works\n normally.

\n

The Amazon EC2 API follows an eventual consistency model. This means that the result of an\n API command you run that creates or modifies resources might not be immediately\n available to all subsequent commands you run. For guidance on how to manage eventual\n consistency, see Eventual consistency in the\n Amazon EC2 API in the Amazon EC2 Developer\n Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe an Amazon EC2 instance", + "documentation": "This example describes the specified instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef0" + ] + }, + "output": {} + }, + { + "title": "To describe the instances with a specific tag", + "documentation": "This example describes the instances with the Purpose=test tag.", + "input": { + "Filters": [ + { + "Name": "tag:Purpose", + "Values": [ + "test" + ] + } + ] + }, + "output": {} + }, + { + "title": "To describe the instances with a specific instance type", + "documentation": "This example describes the instances with the t2.micro instance type.", + "input": { + "Filters": [ + { + "Name": "instance-type", + "Values": [ + "t2.micro" + ] + } + ] + }, + "output": {} + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Reservations", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.test#smokeTests": [ + { + "id": "DescribeInstancesFailure", + "params": { + "InstanceIds": [ + "i-12345678" + ] + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], + "smithy.waiters#waitable": { + "InstanceExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(Reservations[]) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInstanceID.NotFound" + } + } + ], + "minDelay": 5 + }, + "InstanceRunning": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "running", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "shutting-down", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "terminated", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "stopping", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInstanceID.NotFound" + } + } + ], + "minDelay": 15 + }, + "InstanceStopped": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "stopped", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "pending", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "terminated", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "InstanceTerminated": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "terminated", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "pending", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Reservations[].Instances[].State.Name", + "expected": "stopping", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#documentation": "

The instance IDs.

\n

Default: Describes all your instances.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set\n to true, the output includes resources that are managed by Amazon Web Services services,\n even if managed resource visibility is set to hidden.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n affinity - The affinity setting for an instance running on a\n Dedicated Host (default | host).

    \n
  • \n
  • \n

    \n architecture - The instance architecture (i386 |\n x86_64 | arm64).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the instance.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone of the\n instance.

    \n
  • \n
  • \n

    \n block-device-mapping.attach-time - The attach time for an EBS\n volume mapped to the instance, for example,\n 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean that\n indicates whether the EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in\n the block device mapping (for example, /dev/sdh or\n xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.status - The status for the EBS volume\n (attaching | attached | detaching |\n detached).

    \n
  • \n
  • \n

    \n block-device-mapping.volume-id - The volume ID of the EBS\n volume.

    \n
  • \n
  • \n

    \n boot-mode - The boot mode that was specified by the AMI\n (legacy-bios | uefi |\n uefi-preferred).

    \n
  • \n
  • \n

    \n capacity-reservation-id - The ID of the Capacity Reservation into which the\n instance was launched.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-preference\n - The instance's Capacity Reservation preference (open | none).

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id\n - The ID of the targeted Capacity Reservation.

    \n
  • \n
  • \n

    \n capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn\n - The ARN of the targeted Capacity Reservation group.

    \n
  • \n
  • \n

    \n client-token - The idempotency token you provided when you\n launched the instance.

    \n
  • \n
  • \n

    \n current-instance-boot-mode - The boot mode that is used to launch\n the instance at launch or start (legacy-bios |\n uefi).

    \n
  • \n
  • \n

    \n dns-name - The public DNS name of the instance.

    \n
  • \n
  • \n

    \n ebs-optimized - A Boolean that indicates whether the instance is\n optimized for Amazon EBS I/O.

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether the instance is\n enabled for enhanced networking with ENA.

    \n
  • \n
  • \n

    \n enclave-options.enabled - A Boolean that indicates whether the\n instance is enabled for Amazon Web Services Nitro Enclaves.

    \n
  • \n
  • \n

    \n hibernation-options.configured - A Boolean that indicates whether\n the instance is enabled for hibernation. A value of true means that\n the instance is enabled for hibernation.

    \n
  • \n
  • \n

    \n host-id - The ID of the Dedicated Host on which the instance is\n running, if applicable.

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type of the instance\n (ovm | xen). The value xen is used\n for both Xen and Nitro hypervisors.

    \n
  • \n
  • \n

    \n iam-instance-profile.arn - The instance profile associated with\n the instance. Specified as an ARN.

    \n
  • \n
  • \n

    \n iam-instance-profile.id - The instance profile associated with\n the instance. Specified as an ID.

    \n
  • \n
  • \n

    \n image-id - The ID of the image used to launch the\n instance.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance.

    \n
  • \n
  • \n

    \n instance-lifecycle - Indicates whether this is a Spot Instance, a Scheduled Instance, or\n a Capacity Block (spot | scheduled | capacity-block).

    \n
  • \n
  • \n

    \n instance-state-code - The state of the instance, as a 16-bit\n unsigned integer. The high byte is used for internal purposes and should be\n ignored. The low byte is set based on the state represented. The valid values\n are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n (stopping), and 80 (stopped).

    \n
  • \n
  • \n

    \n instance-state-name - The state of the instance\n (pending | running | shutting-down |\n terminated | stopping |\n stopped).

    \n
  • \n
  • \n

    \n instance-type - The type of instance (for example,\n t2.micro).

    \n
  • \n
  • \n

    \n instance.group-id - The ID of the security group for the\n instance.

    \n
  • \n
  • \n

    \n instance.group-name - The name of the security group for the\n instance.

    \n
  • \n
  • \n

    \n ip-address - The public IPv4 address of the instance.

    \n
  • \n
  • \n

    \n ipv6-address - The IPv6 address of the instance.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n key-name - The name of the key pair used when the instance was\n launched.

    \n
  • \n
  • \n

    \n launch-index - When launching multiple instances, this is the\n index for the instance in the launch group (for example, 0, 1, 2, and so on).\n

    \n
  • \n
  • \n

    \n launch-time - The time when the instance was launched, in the ISO\n 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2021-09-29T11:04:43.305Z. You can use a wildcard\n (*), for example, 2021-09-29T*, which matches an\n entire day.

    \n
  • \n
  • \n

    \n maintenance-options.auto-recovery - The current automatic\n recovery behavior of the instance (disabled | default).

    \n
  • \n
  • \n

    \n metadata-options.http-endpoint - The status of access to the HTTP\n metadata endpoint on your instance (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv4 - Indicates whether the IPv4\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-protocol-ipv6 - Indicates whether the IPv6\n endpoint is enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n metadata-options.http-put-response-hop-limit - The HTTP metadata\n request put response hop limit (integer, possible values 1 to\n 64)

    \n
  • \n
  • \n

    \n metadata-options.http-tokens - The metadata request authorization\n state (optional | required)

    \n
  • \n
  • \n

    \n metadata-options.instance-metadata-tags - The status of access to\n instance tags from the instance metadata (enabled |\n disabled)

    \n
  • \n
  • \n

    \n metadata-options.state - The state of the metadata option changes\n (pending | applied).

    \n
  • \n
  • \n

    \n monitoring-state - Indicates whether detailed monitoring is\n enabled (disabled | enabled).

    \n
  • \n
  • \n

    \n network-interface.addresses.association.allocation-id - The allocation ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.association-id - The association ID.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.carrier-ip - The carrier IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.ip-owner-id - The owner\n ID of the private IPv4 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.association.public-ip - The ID of the\n association of an Elastic IP address (IPv4) with a network interface.

    \n
  • \n
  • \n

    \n network-interface.addresses.primary - Specifies whether the IPv4\n address of the network interface is the primary private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-dns-name - The private DNS name.

    \n
  • \n
  • \n

    \n network-interface.addresses.private-ip-address - The private IPv4\n address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.allocation-id - The allocation ID\n returned when you allocated the Elastic IP address (IPv4) for your network\n interface.

    \n
  • \n
  • \n

    \n network-interface.association.association-id - The association ID\n returned when the network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.association.carrier-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.customer-owned-ip - The customer-owned IP address.

    \n
  • \n
  • \n

    \n network-interface.association.ip-owner-id - The owner of the\n Elastic IP address (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.association.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.association.public-ip - The address of the\n Elastic IP address (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n network-interface.attachment.attach-time - The time that the\n network interface was attached to an instance.

    \n
  • \n
  • \n

    \n network-interface.attachment.attachment-id - The ID of the\n interface attachment.

    \n
  • \n
  • \n

    \n network-interface.attachment.delete-on-termination - Specifies\n whether the attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n network-interface.attachment.device-index - The device index to\n which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-id - The ID of the instance\n to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.instance-owner-id - The owner ID of\n the instance to which the network interface is attached.

    \n
  • \n
  • \n

    \n network-interface.attachment.network-card-index - The index of the network card.

    \n
  • \n
  • \n

    \n network-interface.attachment.status - The status of the\n attachment (attaching | attached |\n detaching | detached).

    \n
  • \n
  • \n

    \n network-interface.availability-zone - The Availability Zone for\n the network interface.

    \n
  • \n
  • \n

    \n network-interface.deny-all-igw-traffic - A Boolean that indicates whether \n a network interface with an IPv6 address is unreachable from the public internet.

    \n
  • \n
  • \n

    \n network-interface.description - The description of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.group-id - The ID of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.group-name - The name of a security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv4-prefixes.ipv4-prefix - The IPv4 prefixes that are assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-address - The IPv6 address associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.ipv6-address - The IPv6 address\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-addresses.is-primary-ipv6 - A Boolean that indicates whether this\n is the primary IPv6 address.

    \n
  • \n
  • \n

    \n network-interface.ipv6-native - A Boolean that indicates whether this is\n an IPv6 only network interface.

    \n
  • \n
  • \n

    \n network-interface.ipv6-prefixes.ipv6-prefix - The IPv6 prefix assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.mac-address - The MAC address of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.network-interface-id - The ID of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.operator.managed - A Boolean that indicates\n whether the instance has a managed network interface.

    \n
  • \n
  • \n

    \n network-interface.operator.principal - The principal that manages\n the network interface. Only valid for instances with managed network interfaces,\n where managed is true.

    \n
  • \n
  • \n

    \n network-interface.outpost-arn - The ARN of the Outpost.

    \n
  • \n
  • \n

    \n network-interface.owner-id - The ID of the owner of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.private-dns-name - The private DNS name of the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.private-ip-address - The private IPv4 address.

    \n
  • \n
  • \n

    \n network-interface.public-dns-name - The public DNS name.

    \n
  • \n
  • \n

    \n network-interface.requester-id - The requester ID for the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.requester-managed - Indicates whether the\n network interface is being managed by Amazon Web Services.

    \n
  • \n
  • \n

    \n network-interface.status - The status of the network interface\n (available) | in-use).

    \n
  • \n
  • \n

    \n network-interface.source-dest-check - Whether the network\n interface performs source/destination checking. A value of true\n means that checking is enabled, and false means that checking is\n disabled. The value must be false for the network interface to\n perform network address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n network-interface.subnet-id - The ID of the subnet for the\n network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-key - The key of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.tag-value - The value of a tag assigned to the network interface.

    \n
  • \n
  • \n

    \n network-interface.vpc-id - The ID of the VPC for the network\n interface.

    \n
  • \n
  • \n

    \n network-performance-options.bandwidth-weighting - Where the performance boost \n \t\t\tis applied, if applicable. Valid values: default, vpc-1, \n \t\t\tebs-1.

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed instance.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the instance.\n Only valid for managed instances, where managed is\n true.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the\n Outpost.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the instance\n owner.

    \n
  • \n
  • \n

    \n placement-group-name - The name of the placement group for the\n instance.

    \n
  • \n
  • \n

    \n placement-partition-number - The partition in which the instance is\n located.

    \n
  • \n
  • \n

    \n platform - The platform. To list only Windows instances, use\n windows.

    \n
  • \n
  • \n

    \n platform-details - The platform (Linux/UNIX |\n Red Hat BYOL Linux | Red Hat Enterprise Linux |\n Red Hat Enterprise Linux with HA | Red Hat Enterprise Linux with High Availability | Red Hat Enterprise\n Linux with SQL Server Standard and HA | Red Hat Enterprise\n Linux with SQL Server Enterprise and HA | Red Hat Enterprise\n Linux with SQL Server Standard | Red Hat Enterprise Linux with\n SQL Server Web | Red Hat Enterprise Linux with SQL Server\n Enterprise | SQL Server Enterprise | SQL Server\n Standard | SQL Server Web | SUSE Linux |\n Ubuntu Pro | Windows | Windows BYOL |\n Windows with SQL Server Enterprise | Windows with SQL\n Server Standard | Windows with SQL Server Web).

    \n
  • \n
  • \n

    \n private-dns-name - The private IPv4 DNS name of the\n instance.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-a-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS A records.

    \n
  • \n
  • \n

    \n private-dns-name-options.enable-resource-name-dns-aaaa-record - A\n Boolean that indicates whether to respond to DNS queries for instance hostnames\n with DNS AAAA records.

    \n
  • \n
  • \n

    \n private-dns-name-options.hostname-type - The type of hostname\n (ip-name | resource-name).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address of the instance.\n This can only be used to filter by the primary IP address of the network\n interface attached to the instance. To filter by additional IP addresses\n assigned to the network interface, use the filter\n network-interface.addresses.private-ip-address.

    \n
  • \n
  • \n

    \n product-code - The product code associated with the AMI used to\n launch the instance.

    \n
  • \n
  • \n

    \n product-code.type - The type of product code (devpay\n | marketplace).

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n reason - The reason for the current state of the instance (for\n example, shows \"User Initiated [date]\" when you stop or terminate the instance).\n Similar to the state-reason-code filter.

    \n
  • \n
  • \n

    \n requester-id - The ID of the entity that launched the instance on\n your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so\n on).

    \n
  • \n
  • \n

    \n reservation-id - The ID of the instance's reservation. A\n reservation ID is created any time you launch an instance. A reservation ID has\n a one-to-one relationship with an instance launch request, but can be associated\n with more than one instance if you launch multiple instances using the same\n launch request. For example, if you launch one instance, you get one reservation\n ID. If you launch ten instances using the same launch request, you also get one\n reservation ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for\n example, /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume\n (ebs | instance-store).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the instance performs\n source/destination checking. A value of true means that checking is\n enabled, and false means that checking is disabled. The value must\n be false for the instance to perform network address translation\n (NAT) in your VPC.

    \n
  • \n
  • \n

    \n spot-instance-request-id - The ID of the Spot Instance\n request.

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - A message that describes the state\n change.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the instance.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tenancy - The tenancy of an instance (dedicated |\n default | host).

    \n
  • \n
  • \n

    \n tpm-support - Indicates if the instance is configured for\n NitroTPM support (v2.0).

    \n
  • \n
  • \n

    \n usage-operation - The usage operation value for the instance\n (RunInstances | RunInstances:00g0 |\n RunInstances:0010 | RunInstances:1010 |\n RunInstances:1014 | RunInstances:1110 |\n RunInstances:0014 | RunInstances:0210 |\n RunInstances:0110 | RunInstances:0100 |\n RunInstances:0004 | RunInstances:0200 |\n RunInstances:000g | RunInstances:0g00 |\n RunInstances:0002 | RunInstances:0800 |\n RunInstances:0102 | RunInstances:0006 |\n RunInstances:0202).

    \n
  • \n
  • \n

    \n usage-operation-update-time - The time that the usage operation\n was last updated, for example, 2022-09-15T17:15:20.000Z.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type of the instance\n (paravirtual | hvm).

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC that the instance is running in.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You cannot specify this parameter and the instance IDs parameter in the same request.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInstancesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Reservations": { + "target": "com.amazonaws.ec2#ReservationList", + "traits": { + "aws.protocols#ec2QueryName": "ReservationSet", + "smithy.api#documentation": "

Information about the reservations.

", + "smithy.api#xmlName": "reservationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeInternetGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeInternetGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeInternetGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your internet gateways. The default is to describe all your internet gateways. \n Alternatively, you can specify specific internet gateway IDs or filter the results to\n include only the internet gateways that match specific criteria.

", + "smithy.api#examples": [ + { + "title": "To describe the Internet gateway for a VPC", + "documentation": "This example describes the Internet gateway for the specified VPC.", + "input": { + "Filters": [ + { + "Name": "attachment.vpc-id", + "Values": [ + "vpc-a01106c2" + ] + } + ] + }, + "output": { + "InternetGateways": [ + { + "Tags": [], + "InternetGatewayId": "igw-c0a643a9", + "Attachments": [ + { + "State": "attached", + "VpcId": "vpc-a01106c2" + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InternetGateways", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "InternetGatewayExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(InternetGateways[].InternetGatewayId) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInternetGateway.NotFound" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.ec2#DescribeInternetGatewaysMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeInternetGatewaysRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeInternetGatewaysMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InternetGatewayIds": { + "target": "com.amazonaws.ec2#InternetGatewayIdList", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayId", + "smithy.api#documentation": "

The IDs of the internet gateways.

\n

Default: Describes all your internet gateways.

", + "smithy.api#xmlName": "internetGatewayId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n attachment.state - The current state of the attachment between the gateway\n and the VPC (available). Present only if a VPC is attached.

    \n
  • \n
  • \n

    \n attachment.vpc-id - The ID of an attached VPC.

    \n
  • \n
  • \n

    \n internet-gateway-id - The ID of the Internet gateway.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the internet gateway.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeInternetGatewaysResult": { + "type": "structure", + "members": { + "InternetGateways": { + "target": "com.amazonaws.ec2#InternetGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewaySet", + "smithy.api#documentation": "

Information about the internet gateways.

", + "smithy.api#xmlName": "internetGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamByoasn": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamByoasnRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamByoasnResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your Autonomous System Numbers (ASNs), their provisioning statuses, and the BYOIP CIDRs with which they are associated. For more information, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

" + } + }, + "com.amazonaws.ec2#DescribeIpamByoasnMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeIpamByoasnRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeIpamByoasnMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamByoasnResult": { + "type": "structure", + "members": { + "Byoasns": { + "target": "com.amazonaws.ec2#ByoasnSet", + "traits": { + "aws.protocols#ec2QueryName": "ByoasnSet", + "smithy.api#documentation": "

ASN and BYOIP CIDR associations.

", + "smithy.api#xmlName": "byoasnSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokens": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensResult" + }, + "traits": { + "smithy.api#documentation": "

Describe verification tokens.

\n

A verification token is an Amazon Web Services-generated random value that you can use to prove ownership of an external resource. For example, you can use a verification token to validate that you control a public IP address range when you bring an IP address range to Amazon Web Services (BYOIP).\n

" + } + }, + "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

\n

Available filters:

\n
    \n
  • \n

    \n ipam-arn\n

    \n
  • \n
  • \n

    \n ipam-external-resource-verification-token-arn\n

    \n
  • \n
  • \n

    \n ipam-external-resource-verification-token-id\n

    \n
  • \n
  • \n

    \n ipam-id\n

    \n
  • \n
  • \n

    \n ipam-region\n

    \n
  • \n
  • \n

    \n state\n

    \n
  • \n
  • \n

    \n status\n

    \n
  • \n
  • \n

    \n token-name\n

    \n
  • \n
  • \n

    \n token-value\n

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of tokens to return in one page of results.

" + } + }, + "IpamExternalResourceVerificationTokenIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

Verification token IDs.

", + "smithy.api#xmlName": "IpamExternalResourceVerificationTokenId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamExternalResourceVerificationTokensResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamExternalResourceVerificationTokens": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationTokenSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamExternalResourceVerificationTokenSet", + "smithy.api#documentation": "

Verification tokens.

", + "smithy.api#xmlName": "ipamExternalResourceVerificationTokenSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more IPAM internet registry associations. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the internet registry associations to describe.

", + "smithy.api#xmlName": "IpamInternetRegistryAssociationId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamInternetRegistryAssociationsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamInternetRegistryAssociations": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociationSet", + "smithy.api#documentation": "

The internet registry associations.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamPoliciesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more IPAM policies.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" + } + }, + "com.amazonaws.ec2#DescribeIpamPoliciesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the IPAM policy description.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamPolicyIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAM policies to describe.

", + "smithy.api#xmlName": "IpamPolicyId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPoliciesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamPolicies": { + "target": "com.amazonaws.ec2#IpamPolicySet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicySet", + "smithy.api#documentation": "

Information about the IPAM policies.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

", + "smithy.api#xmlName": "ipamPolicySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPoolAllocations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamPoolAllocationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamPoolAllocationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes IPAM pool allocations. You can describe all allocations owned by you across all pools, or you can describe specific allocations by ID.

\n

If you specify IpamPoolAllocationIds, the results include only the specified allocations. If you do not specify IpamPoolAllocationIds, the results include all allocations owned by you. You can use Filters to narrow the results.

\n \n

This action returns only allocations directly owned by you. To view all allocations in a pool you own or that has been shared with you, including allocations owned by other accounts, use GetIpamPoolAllocations.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPoolAllocations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamPoolAllocationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1000, + "max": 100000 + } + } + }, + "com.amazonaws.ec2#DescribeIpamPoolAllocationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolAllocationIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAM pool allocations you want to describe.

", + "smithy.api#xmlName": "IpamPoolAllocationId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeIpamPoolAllocationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPoolAllocationsResult": { + "type": "structure", + "members": { + "IpamPoolAllocations": { + "target": "com.amazonaws.ec2#IpamPoolAllocationSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolAllocationSet", + "smithy.api#documentation": "

Information about the IPAM pool allocations.

", + "smithy.api#xmlName": "ipamPoolAllocationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPools": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamPoolsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamPoolsResult" + }, + "traits": { + "smithy.api#documentation": "

Get information about your IPAM pools.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPools", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamPoolsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamPoolIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAM pools you would like information on.

", + "smithy.api#xmlName": "IpamPoolId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPoolsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamPools": { + "target": "com.amazonaws.ec2#IpamPoolSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolSet", + "smithy.api#documentation": "

Information about the IPAM pools.

", + "smithy.api#xmlName": "ipamPoolSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more IPAM prefix list resolver Targets. Use this operation to view the configuration and status of resolver targets.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPrefixListResolverTargets", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to limit the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamPrefixListResolverTargetIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAM prefix list resolver Targets to describe. If not specified, all targets in your account are described.

", + "smithy.api#xmlName": "IpamPrefixListResolverTargetId" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver to filter targets by. Only targets associated with this resolver will be returned.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolverTargetsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamPrefixListResolverTargets": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTargetSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTargetSet", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver Targets.

", + "smithy.api#xmlName": "ipamPrefixListResolverTargetSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolvers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolversRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamPrefixListResolversResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more IPAM prefix list resolvers. Use this operation to view the configuration, status, and properties of your resolvers.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPrefixListResolvers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolversRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to limit the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamPrefixListResolverIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAM prefix list resolvers to describe. If not specified, all resolvers in your account are described.

", + "smithy.api#xmlName": "IpamPrefixListResolverId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamPrefixListResolversResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamPrefixListResolvers": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverSet", + "smithy.api#documentation": "

Information about the IPAM prefix list resolvers.

", + "smithy.api#xmlName": "ipamPrefixListResolverSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes IPAM resource discoveries. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamResourceDiscoveries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IPAM resource discovery IDs.

", + "smithy.api#xmlName": "IpamResourceDiscoveryId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of resource discoveries to return in one page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The resource discovery filters.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveriesResult": { + "type": "structure", + "members": { + "IpamResourceDiscoveries": { + "target": "com.amazonaws.ec2#IpamResourceDiscoverySet", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoverySet", + "smithy.api#documentation": "

The resource discoveries.

", + "smithy.api#xmlName": "ipamResourceDiscoverySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes resource discovery association with an Amazon VPC IPAM. An associated resource discovery is a resource discovery that has been associated with an IPAM..

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamResourceDiscoveryAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryAssociationIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The resource discovery association IDs.

", + "smithy.api#xmlName": "IpamResourceDiscoveryAssociationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of resource discovery associations to return in one page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The resource discovery association filters.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamResourceDiscoveryAssociationsResult": { + "type": "structure", + "members": { + "IpamResourceDiscoveryAssociations": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryAssociationSet", + "smithy.api#documentation": "

The resource discovery associations.

", + "smithy.api#xmlName": "ipamResourceDiscoveryAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpamScopes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamScopesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamScopesResult" + }, + "traits": { + "smithy.api#documentation": "

Get information about your IPAM scopes.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamScopes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamScopesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamScopeIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the scopes you want information on.

", + "smithy.api#xmlName": "IpamScopeId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamScopesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamScopes": { + "target": "com.amazonaws.ec2#IpamScopeSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeSet", + "smithy.api#documentation": "

The scopes you want information on.

", + "smithy.api#xmlName": "ipamScopeSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpams": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpamsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpamsResult" + }, + "traits": { + "smithy.api#documentation": "

Get information about your IPAM pools.

\n

For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Ipams", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpamsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPAMs you want information on.

", + "smithy.api#xmlName": "IpamId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpamsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Ipams": { + "target": "com.amazonaws.ec2#IpamSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamSet", + "smithy.api#documentation": "

Information about the IPAMs.

", + "smithy.api#xmlName": "ipamSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeIpv6Pools": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeIpv6PoolsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeIpv6PoolsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your IPv6 address pools.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Ipv6Pools", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeIpv6PoolsRequest": { + "type": "structure", + "members": { + "PoolIds": { + "target": "com.amazonaws.ec2#Ipv6PoolIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the IPv6 address pools.

", + "smithy.api#xmlName": "PoolId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Ipv6PoolMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeIpv6PoolsResult": { + "type": "structure", + "members": { + "Ipv6Pools": { + "target": "com.amazonaws.ec2#Ipv6PoolSet", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PoolSet", + "smithy.api#documentation": "

Information about the IPv6 address pools.

", + "smithy.api#xmlName": "ipv6PoolSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeKeyPairs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeKeyPairsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeKeyPairsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified key pairs or all of your key pairs.

\n

For more information about key pairs, see Amazon EC2 key pairs \n\t\t\t\tin the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To display a key pair", + "documentation": "This example displays the fingerprint for the specified key.", + "input": { + "KeyNames": [ + "my-key-pair" + ] + }, + "output": { + "KeyPairs": [ + { + "KeyName": "my-key-pair", + "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f" + } + ] + } + } + ], + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "KeyPairExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(KeyPairs[].KeyName) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidKeyPair.NotFound" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.ec2#DescribeKeyPairsRequest": { + "type": "structure", + "members": { + "KeyNames": { + "target": "com.amazonaws.ec2#KeyNameStringList", + "traits": { + "smithy.api#documentation": "

The key pair names.

\n

Default: Describes all of your key pairs.

", + "smithy.api#xmlName": "KeyName" + } + }, + "KeyPairIds": { + "target": "com.amazonaws.ec2#KeyPairIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the key pairs.

", + "smithy.api#xmlName": "KeyPairId" + } + }, + "IncludePublicKey": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, the public key material is included in the response.

\n

Default: false\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n key-pair-id - The ID of the key pair.

    \n
  • \n
  • \n

    \n fingerprint - The fingerprint of the key pair.

    \n
  • \n
  • \n

    \n key-name - The name of the key pair.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeKeyPairsResult": { + "type": "structure", + "members": { + "KeyPairs": { + "target": "com.amazonaws.ec2#KeyPairList", + "traits": { + "aws.protocols#ec2QueryName": "KeySet", + "smithy.api#documentation": "

Information about the key pairs.

", + "smithy.api#xmlName": "keySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplateVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLaunchTemplateVersionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLaunchTemplateVersionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more versions of a specified launch template. You can describe all\n versions, individual versions, or a range of versions. You can also describe all the\n latest versions or all the default versions of all the launch templates in your\n account.

", + "smithy.api#examples": [ + { + "title": "To describe the versions for a launch template", + "documentation": "This example describes the versions for the specified launch template.", + "input": { + "LaunchTemplateId": "068f72b72934aff71" + }, + "output": { + "LaunchTemplateVersions": [ + { + "LaunchTemplateId": "lt-068f72b72934aff71", + "LaunchTemplateName": "Webservers", + "VersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789102:root", + "LaunchTemplateData": { + "KeyName": "kp-us-east", + "ImageId": "ami-6057e21a", + "InstanceType": "t2.medium", + "NetworkInterfaces": [ + { + "SubnetId": "subnet-1a2b3c4d", + "DeviceIndex": 0, + "Groups": [ + "sg-7c227019" + ] + } + ] + }, + "DefaultVersion": false, + "CreateTime": "2017-11-20T13:12:32.000Z" + }, + { + "LaunchTemplateId": "lt-068f72b72934aff71", + "LaunchTemplateName": "Webservers", + "VersionNumber": 1, + "CreatedBy": "arn:aws:iam::123456789102:root", + "LaunchTemplateData": { + "UserData": "", + "KeyName": "kp-us-east", + "ImageId": "ami-aabbcc11", + "InstanceType": "t2.medium", + "NetworkInterfaces": [ + { + "SubnetId": "subnet-7b16de0c", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "Groups": [ + "sg-7c227019" + ], + "AssociatePublicIpAddress": true + } + ] + }, + "DefaultVersion": true, + "CreateTime": "2017-11-20T12:52:33.000Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LaunchTemplateVersions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplateVersionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the launch template ID or the launch template name, but not both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the launch template name or the launch template ID, but not both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" + } + }, + "Versions": { + "target": "com.amazonaws.ec2#VersionStringList", + "traits": { + "smithy.api#documentation": "

One or more versions of the launch template. Valid values depend on whether you are\n describing a specified launch template (by ID or name) or all launch templates in your\n account.

\n

To describe one or more versions of a specified launch template, valid values are\n $Latest, $Default, and numbers.

\n

To describe all launch templates in your account that are defined as the latest\n version, the valid value is $Latest. To describe all launch templates in\n your account that are defined as the default version, the valid value is\n $Default. You can specify $Latest and\n $Default in the same request. You cannot specify numbers.

", + "smithy.api#xmlName": "LaunchTemplateVersion" + } + }, + "MinVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The version number after which to describe launch template versions.

" + } + }, + "MaxVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The version number up to which to describe launch template versions.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. To retrieve the remaining\n results, make another call with the returned NextToken value. This value\n can be between 1 and 200.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n create-time - The time the launch template version was\n created.

    \n
  • \n
  • \n

    \n ebs-optimized - A boolean that indicates whether the instance is\n optimized for Amazon EBS I/O.

    \n
  • \n
  • \n

    \n http-endpoint - Indicates whether the HTTP metadata endpoint on\n your instances is enabled (enabled | disabled).

    \n
  • \n
  • \n

    \n http-protocol-ipv4 - Indicates whether the IPv4 endpoint for the\n instance metadata service is enabled (enabled |\n disabled).

    \n
  • \n
  • \n

    \n host-resource-group-arn - The ARN of the host resource group in\n which to launch the instances.

    \n
  • \n
  • \n

    \n http-tokens - The state of token usage for your instance metadata\n requests (optional | required).

    \n
  • \n
  • \n

    \n iam-instance-profile - The ARN of the IAM instance\n profile.

    \n
  • \n
  • \n

    \n image-id - The ID of the AMI.

    \n
  • \n
  • \n

    \n instance-type - The instance type.

    \n
  • \n
  • \n

    \n is-default-version - A boolean that indicates whether the launch\n template version is the default version.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n license-configuration-arn - The ARN of the license\n configuration.

    \n
  • \n
  • \n

    \n network-card-index - The index of the network card.

    \n
  • \n
  • \n

    \n ram-disk-id - The RAM disk ID.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "ResolveAlias": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, and if a Systems Manager parameter is specified for\n ImageId, the AMI ID is displayed in the response for\n imageId.

\n

If false, and if a Systems Manager parameter is specified for\n ImageId, the parameter is displayed in the response for\n imageId.

\n

For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

\n

Default: false\n

" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set to true, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplateVersionsResult": { + "type": "structure", + "members": { + "LaunchTemplateVersions": { + "target": "com.amazonaws.ec2#LaunchTemplateVersionSet", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateVersionSet", + "smithy.api#documentation": "

Information about the launch template versions.

", + "smithy.api#xmlName": "launchTemplateVersionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null\n when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLaunchTemplatesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLaunchTemplatesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more launch templates.

", + "smithy.api#examples": [ + { + "title": "To describe a launch template", + "documentation": "This example describes the specified launch template.", + "input": { + "LaunchTemplateIds": [ + "lt-01238c059e3466abc" + ] + }, + "output": { + "LaunchTemplates": [ + { + "LatestVersionNumber": 1, + "LaunchTemplateName": "my-template", + "LaunchTemplateId": "lt-01238c059e3466abc", + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2018-01-16T04:32:57.000Z", + "DefaultVersionNumber": 1 + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LaunchTemplates", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplatesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplatesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "LaunchTemplateIds": { + "target": "com.amazonaws.ec2#LaunchTemplateIdStringList", + "traits": { + "smithy.api#documentation": "

One or more launch template IDs.

", + "smithy.api#xmlName": "LaunchTemplateId" + } + }, + "LaunchTemplateNames": { + "target": "com.amazonaws.ec2#LaunchTemplateNameStringList", + "traits": { + "smithy.api#documentation": "

One or more launch template names.

", + "smithy.api#xmlName": "LaunchTemplateName" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n create-time - The time the launch template was created.

    \n
  • \n
  • \n

    \n launch-template-name - The name of the launch template.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeLaunchTemplatesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. To retrieve the remaining\n results, make another call with the returned NextToken value. This value\n can be between 1 and 200.

" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set to true, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLaunchTemplatesResult": { + "type": "structure", + "members": { + "LaunchTemplates": { + "target": "com.amazonaws.ec2#LaunchTemplateSet", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplates", + "smithy.api#documentation": "

Information about the launch templates.

", + "smithy.api#xmlName": "launchTemplates" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null\n when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the associations between virtual interface groups and local gateway route tables.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGatewayRouteTableVirtualInterfaceGroupAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the associations.

", + "smithy.api#xmlName": "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-gateway-id - The ID of a local gateway.

    \n
  • \n
  • \n

    \n local-gateway-route-table-arn - The Amazon Resource Name (ARN) of the local \n gateway route table for the virtual interface group.

    \n
  • \n
  • \n

    \n local-gateway-route-table-id - The ID of the local gateway route table.

    \n
  • \n
  • \n

    \n local-gateway-route-table-virtual-interface-group-association-id - The ID of the association.

    \n
  • \n
  • \n

    \n local-gateway-route-table-virtual-interface-group-id - The ID of the virtual interface group.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway virtual \n interface group association.

    \n
  • \n
  • \n

    \n state - The state of the association.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociations": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet", + "smithy.api#documentation": "

Information about the associations.

", + "smithy.api#xmlName": "localGatewayRouteTableVirtualInterfaceGroupAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified associations between VPCs and local gateway route tables.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGatewayRouteTableVpcAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociationIds": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the associations.

", + "smithy.api#xmlName": "LocalGatewayRouteTableVpcAssociationId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-gateway-id - The ID of a local gateway.

    \n
  • \n
  • \n

    \n local-gateway-route-table-arn - The Amazon Resource Name (ARN) of the local \n gateway route table for the association.

    \n
  • \n
  • \n

    \n local-gateway-route-table-id - The ID of the local gateway route table.

    \n
  • \n
  • \n

    \n local-gateway-route-table-vpc-association-id - The ID of the association.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway route table\n for the association.

    \n
  • \n
  • \n

    \n state - The state of the association.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTableVpcAssociationsResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociations": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVpcAssociationSet", + "smithy.api#documentation": "

Information about the associations.

", + "smithy.api#xmlName": "localGatewayRouteTableVpcAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTables": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more local gateway route tables. By default, all local gateway route tables are described.\n Alternatively, you can filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGatewayRouteTables", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableIds": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the local gateway route tables.

", + "smithy.api#xmlName": "LocalGatewayRouteTableId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-gateway-id - The ID of a local gateway.

    \n
  • \n
  • \n

    \n local-gateway-route-table-arn - The Amazon Resource Name (ARN) of the \n local gateway route table.

    \n
  • \n
  • \n

    \n local-gateway-route-table-id - The ID of a local gateway route table.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway route table.

    \n
  • \n
  • \n

    \n state - The state of the local gateway route table.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayRouteTablesResult": { + "type": "structure", + "members": { + "LocalGatewayRouteTables": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableSet", + "smithy.api#documentation": "

Information about the local gateway route tables.

", + "smithy.api#xmlName": "localGatewayRouteTableSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified local gateway virtual interface groups.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGatewayVirtualInterfaceGroups", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsRequest": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroupIds": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the virtual interface groups.

", + "smithy.api#xmlName": "LocalGatewayVirtualInterfaceGroupId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-gateway-id - The ID of a local gateway.

    \n
  • \n
  • \n

    \n local-gateway-virtual-interface-group-id - The ID of the virtual interface group.

    \n
  • \n
  • \n

    \n local-gateway-virtual-interface-id - The ID of the virtual interface.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway virtual interface group.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaceGroupsResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroups": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupSet", + "smithy.api#documentation": "

The virtual interface groups.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified local gateway virtual interfaces.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGatewayVirtualInterfaces", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesRequest": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceIds": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the virtual interfaces.

", + "smithy.api#xmlName": "LocalGatewayVirtualInterfaceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-address - The local address.

    \n
  • \n
  • \n

    \n local-bgp-asn - The Border Gateway Protocol (BGP) Autonomous System Number (ASN) \n of the local gateway.

    \n
  • \n
  • \n

    \n local-gateway-id - The ID of the local gateway.

    \n
  • \n
  • \n

    \n local-gateway-virtual-interface-id - The ID of the virtual interface.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway virtual interface.

    \n
  • \n
  • \n

    \n peer-address - The peer address.

    \n
  • \n
  • \n

    \n peer-bgp-asn - The peer BGP ASN.

    \n
  • \n
  • \n

    \n vlan - The ID of the VLAN.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewayVirtualInterfacesResult": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaces": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceSet", + "smithy.api#documentation": "

Information about the virtual interfaces.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLocalGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLocalGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more local gateways. By default, all local gateways are described. \n Alternatively, you can filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LocalGateways", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeLocalGatewaysRequest": { + "type": "structure", + "members": { + "LocalGatewayIds": { + "target": "com.amazonaws.ec2#LocalGatewayIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the local gateways.

", + "smithy.api#xmlName": "LocalGatewayId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n local-gateway-id - The ID of a local gateway.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the local gateway.

    \n
  • \n
  • \n

    \n state - The state of the association.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#LocalGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLocalGatewaysResult": { + "type": "structure", + "members": { + "LocalGateways": { + "target": "com.amazonaws.ec2#LocalGatewaySet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewaySet", + "smithy.api#documentation": "

Information about the local gateways.

", + "smithy.api#xmlName": "localGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeLockedSnapshots": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeLockedSnapshotsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeLockedSnapshotsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the lock status for a snapshot.

" + } + }, + "com.amazonaws.ec2#DescribeLockedSnapshotsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeLockedSnapshotsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n lock-state - The state of the snapshot lock (compliance-cooloff | \n governance | compliance | expired).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeLockedSnapshotsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "SnapshotIds": { + "target": "com.amazonaws.ec2#SnapshotIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the snapshots for which to view the lock status.

", + "smithy.api#xmlName": "SnapshotId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeLockedSnapshotsResult": { + "type": "structure", + "members": { + "Snapshots": { + "target": "com.amazonaws.ec2#LockedSnapshotsInfoList", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotSet", + "smithy.api#documentation": "

Information about the snapshots.

", + "smithy.api#xmlName": "snapshotSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeMacHosts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeMacHostsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeMacHostsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified EC2 Mac Dedicated Host or all of your EC2 Mac Dedicated Hosts.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MacHosts", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeMacHostsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone of the EC2 Mac Dedicated Host.

    \n
  • \n
  • \n

    \n instance-type - The instance type size that the EC2 Mac Dedicated Host is\n configured to support.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "HostIds": { + "target": "com.amazonaws.ec2#RequestHostIdList", + "traits": { + "smithy.api#documentation": "

\n The IDs of the EC2 Mac Dedicated Hosts.\n

", + "smithy.api#xmlName": "HostId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeMacHostsRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeMacHostsRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 500 + } + } + }, + "com.amazonaws.ec2#DescribeMacHostsResult": { + "type": "structure", + "members": { + "MacHosts": { + "target": "com.amazonaws.ec2#MacHostList", + "traits": { + "aws.protocols#ec2QueryName": "MacHostSet", + "smithy.api#documentation": "

\n Information about the EC2 Mac Dedicated Hosts.\n

", + "smithy.api#xmlName": "macHostSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeMacModificationTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeMacModificationTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeMacModificationTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a System Integrity Protection (SIP) modification task or volume ownership delegation \n task for an Amazon EC2 Mac instance. For more information, see Configure \n SIP for Amazon EC2 instances in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MacModificationTasks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeMacModificationTasksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.ec2#DescribeMacModificationTasksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Specifies one or more filters for the request:

\n
    \n
  • \n

    \n instance-id - The ID of the instance for which the task was created.

    \n
  • \n
  • \n

    \n task-state - The state of the task (successful | failed | \n in-progress | pending).

    \n
  • \n
  • \n

    \n mac-system-integrity-protection-configuration.sip-status - The overall SIP \n state requested in the task (enabled | disabled).

    \n
  • \n
  • \n

    \n start-time - The date and time the task was created.

    \n
  • \n
  • \n

    \n task-type - The type of task (sip-modification | volume-ownership-delegation).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MacModificationTaskIds": { + "target": "com.amazonaws.ec2#MacModificationTaskIdList", + "traits": { + "smithy.api#documentation": "

The ID of task.

", + "smithy.api#xmlName": "MacModificationTaskId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeMacModificationTasksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeMacModificationTasksResult": { + "type": "structure", + "members": { + "MacModificationTasks": { + "target": "com.amazonaws.ec2#MacModificationTaskList", + "traits": { + "aws.protocols#ec2QueryName": "MacModificationTaskSet", + "smithy.api#documentation": "

Information about the tasks.

", + "smithy.api#xmlName": "macModificationTaskSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeManagedPrefixLists": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeManagedPrefixListsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeManagedPrefixListsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your managed prefix lists and any Amazon Web Services-managed prefix lists.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "PrefixLists", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeManagedPrefixListsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n owner-id - The ID of the prefix list owner.

    \n
  • \n
  • \n

    \n prefix-list-id - The ID of the prefix list.

    \n
  • \n
  • \n

    \n prefix-list-name - The name of the prefix list.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#PrefixListMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "PrefixListIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

One or more prefix list IDs.

", + "smithy.api#xmlName": "PrefixListId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeManagedPrefixListsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "PrefixLists": { + "target": "com.amazonaws.ec2#ManagedPrefixListSet", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListSet", + "smithy.api#documentation": "

Information about the prefix lists.

", + "smithy.api#xmlName": "prefixListSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeMovingAddresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeMovingAddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeMovingAddressesResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Describes your Elastic IP addresses that are being moved from or being restored to the EC2-Classic platform. \n This request does not return information about any other Elastic IP addresses in your account.

", + "smithy.api#examples": [ + { + "title": "To describe your moving addresses", + "documentation": "This example describes all of your moving Elastic IP addresses.", + "output": { + "MovingAddressStatuses": [ + { + "PublicIp": "198.51.100.0", + "MoveStatus": "movingToVpc" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MovingAddressStatuses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeMovingAddressesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeMovingAddressesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "PublicIps": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

One or more Elastic IP addresses.

", + "smithy.api#xmlName": "publicIp" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token for the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "aws.protocols#ec2QueryName": "Filter", + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n moving-status - The status of the Elastic IP address\n (MovingToVpc | RestoringToClassic).

    \n
  • \n
", + "smithy.api#xmlName": "filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeMovingAddressesMaxResults", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining\n results of the initial request can be seen by sending another request with the returned\n NextToken value. This value can be between 5 and 1000; if\n MaxResults is given a value outside of this range, an error is returned.

\n

Default: If no value is provided, the default is 1000.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeMovingAddressesResult": { + "type": "structure", + "members": { + "MovingAddressStatuses": { + "target": "com.amazonaws.ec2#MovingAddressStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "MovingAddressStatusSet", + "smithy.api#documentation": "

The status for each Elastic IP address.

", + "smithy.api#xmlName": "movingAddressStatusSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNatGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNatGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNatGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your NAT gateways. The default is to describe all your NAT gateways. \n Alternatively, you can specify specific NAT gateway IDs or filter the results to\n include only the NAT gateways that match specific criteria.

", + "smithy.api#examples": [ + { + "title": "To describe a NAT gateway", + "documentation": "This example describes the NAT gateway for the specified VPC.", + "input": { + "Filter": [ + { + "Name": "vpc-id", + "Values": [ + "vpc-1a2b3c4d" + ] + } + ] + }, + "output": { + "NatGateways": [ + { + "NatGatewayAddresses": [ + { + "PublicIp": "198.11.222.333", + "NetworkInterfaceId": "eni-9dec76cd", + "AllocationId": "eipalloc-89c620ec", + "PrivateIp": "10.0.0.149" + } + ], + "VpcId": "vpc-1a2b3c4d", + "State": "available", + "NatGatewayId": "nat-05dba92075d71c408", + "SubnetId": "subnet-847e4dc2", + "CreateTime": "2015-12-01T12:26:55.983Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NatGateways", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "NatGatewayAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "NatGateways[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "NatGateways[].State", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "NatGateways[].State", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "NatGateways[].State", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NatGatewayNotFound" + } + } + ], + "minDelay": 15 + }, + "NatGatewayDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "NatGateways[].State", + "expected": "deleted", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "NatGatewayNotFound" + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeNatGatewaysMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeNatGatewaysRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filter": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n nat-gateway-id - The ID of the NAT gateway.

    \n
  • \n
  • \n

    \n state - The state of the NAT gateway (pending |\n failed | available | deleting | deleted).

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet in which the NAT gateway resides.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC in which the NAT gateway resides.

    \n
  • \n
" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeNatGatewaysMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "NatGatewayIds": { + "target": "com.amazonaws.ec2#NatGatewayIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the NAT gateways.

", + "smithy.api#xmlName": "NatGatewayId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNatGatewaysResult": { + "type": "structure", + "members": { + "NatGateways": { + "target": "com.amazonaws.ec2#NatGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewaySet", + "smithy.api#documentation": "

Information about the NAT gateways.

", + "smithy.api#xmlName": "natGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkAcls": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkAclsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkAclsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your network ACLs. The default is to describe all your network ACLs. \n Alternatively, you can specify specific network ACL IDs or filter the results to\n include only the network ACLs that match specific criteria.

\n

For more information, see Network ACLs in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a network ACL", + "documentation": "This example describes the specified network ACL.", + "input": { + "NetworkAclIds": [ + "acl-5fb85d36" + ] + }, + "output": { + "NetworkAcls": [ + { + "Associations": [ + { + "SubnetId": "subnet-65ea5f08", + "NetworkAclId": "acl-9aeb5ef7", + "NetworkAclAssociationId": "aclassoc-66ea5f0b" + } + ], + "NetworkAclId": "acl-5fb85d36", + "VpcId": "vpc-a01106c2", + "Tags": [], + "Entries": [ + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": true, + "RuleAction": "deny" + }, + { + "CidrBlock": "0.0.0.0/0", + "RuleNumber": 32767, + "Protocol": "-1", + "Egress": false, + "RuleAction": "deny" + } + ], + "IsDefault": false + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkAcls", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkAclsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeNetworkAclsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeNetworkAclsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkAclIds": { + "target": "com.amazonaws.ec2#NetworkAclIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the network ACLs.

", + "smithy.api#xmlName": "NetworkAclId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n association.association-id - The ID of an association ID for the ACL.

    \n
  • \n
  • \n

    \n association.network-acl-id - The ID of the network ACL involved in the association.

    \n
  • \n
  • \n

    \n association.subnet-id - The ID of the subnet involved in the association.

    \n
  • \n
  • \n

    \n default - Indicates whether the ACL is the default network ACL for the VPC.

    \n
  • \n
  • \n

    \n entry.cidr - The IPv4 CIDR range specified in the entry.

    \n
  • \n
  • \n

    \n entry.icmp.code - The ICMP code specified in the entry, if any.

    \n
  • \n
  • \n

    \n entry.icmp.type - The ICMP type specified in the entry, if any.

    \n
  • \n
  • \n

    \n entry.ipv6-cidr - The IPv6 CIDR range specified in the entry.

    \n
  • \n
  • \n

    \n entry.port-range.from - The start of the port range specified in the entry.

    \n
  • \n
  • \n

    \n entry.port-range.to - The end of the port range specified in the entry.

    \n
  • \n
  • \n

    \n entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).

    \n
  • \n
  • \n

    \n entry.rule-action - Allows or denies the matching traffic (allow | deny).

    \n
  • \n
  • \n

    \n entry.egress - A Boolean that indicates the type of rule. Specify true \n\t\t for egress rules, or false for ingress rules.

    \n
  • \n
  • \n

    \n entry.rule-number - The number of an entry (in other words, rule) in\n the set of ACL entries.

    \n
  • \n
  • \n

    \n network-acl-id - The ID of the network ACL.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the network ACL.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC for the network ACL.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkAclsResult": { + "type": "structure", + "members": { + "NetworkAcls": { + "target": "com.amazonaws.ec2#NetworkAclList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclSet", + "smithy.api#documentation": "

Information about the network ACLs.

", + "smithy.api#xmlName": "networkAclSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalyses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Network Access Scope analyses.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInsightsAccessScopeAnalyses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisIds": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Network Access Scope analyses.

", + "smithy.api#xmlName": "NetworkInsightsAccessScopeAnalysisId" + } + }, + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "smithy.api#documentation": "

The ID of the Network Access Scope.

" + } + }, + "AnalysisStartTimeBegin": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

Filters the results based on the start time. The analysis must have started on or after this time.

" + } + }, + "AnalysisStartTimeEnd": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

Filters the results based on the start time. The analysis must have started on or before this time.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

There are no supported filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#NetworkInsightsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopeAnalysesResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalyses": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisSet", + "smithy.api#documentation": "

The Network Access Scope analyses.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Network Access Scopes.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInsightsAccessScopes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeIds": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Network Access Scopes.

", + "smithy.api#xmlName": "NetworkInsightsAccessScopeId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

There are no supported filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#NetworkInsightsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAccessScopesResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopes": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeSet", + "smithy.api#documentation": "

The Network Access Scopes.

", + "smithy.api#xmlName": "networkInsightsAccessScopeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAnalyses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your network insights analyses.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInsightsAnalyses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesRequest": { + "type": "structure", + "members": { + "NetworkInsightsAnalysisIds": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisIdList", + "traits": { + "smithy.api#documentation": "

The ID of the network insights analyses. You must specify either analysis IDs or a path ID.

", + "smithy.api#xmlName": "NetworkInsightsAnalysisId" + } + }, + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "smithy.api#documentation": "

The ID of the path. You must specify either a path ID or analysis IDs.

" + } + }, + "AnalysisStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The time when the network insights analyses started.

" + } + }, + "AnalysisEndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The time when the network insights analyses ended.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. The following are the possible values:

\n
    \n
  • \n

    path-found - A Boolean value that indicates whether a feasible path is found.

    \n
  • \n
  • \n

    status - The status of the analysis (running | succeeded | failed).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#NetworkInsightsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsAnalysesResult": { + "type": "structure", + "members": { + "NetworkInsightsAnalyses": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAnalysisSet", + "smithy.api#documentation": "

Information about the network insights analyses.

", + "smithy.api#xmlName": "networkInsightsAnalysisSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsPaths": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsPathsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInsightsPathsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your paths.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInsightsPaths", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsPathsRequest": { + "type": "structure", + "members": { + "NetworkInsightsPathIds": { + "target": "com.amazonaws.ec2#NetworkInsightsPathIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the paths.

", + "smithy.api#xmlName": "NetworkInsightsPathId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. The following are the possible values:

\n
    \n
  • \n

    destination - The ID of the resource.

    \n
  • \n
  • \n

    filter-at-source.source-address - The source IPv4 address at the source.

    \n
  • \n
  • \n

    filter-at-source.source-port-range - The source port range at the source.

    \n
  • \n
  • \n

    filter-at-source.destination-address - The destination IPv4 address at the source.

    \n
  • \n
  • \n

    filter-at-source.destination-port-range - The destination port range at the source.

    \n
  • \n
  • \n

    filter-at-destination.source-address - The source IPv4 address at the destination.

    \n
  • \n
  • \n

    filter-at-destination.source-port-range - The source port range at the destination.

    \n
  • \n
  • \n

    filter-at-destination.destination-address - The destination IPv4 address at the destination.

    \n
  • \n
  • \n

    filter-at-destination.destination-port-range - The destination port range at the destination.

    \n
  • \n
  • \n

    protocol - The protocol.

    \n
  • \n
  • \n

    source - The ID of the resource.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#NetworkInsightsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInsightsPathsResult": { + "type": "structure", + "members": { + "NetworkInsightsPaths": { + "target": "com.amazonaws.ec2#NetworkInsightsPathList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPathSet", + "smithy.api#documentation": "

Information about the paths.

", + "smithy.api#xmlName": "networkInsightsPathSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfaceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface attribute. You can specify only one attribute at a\n time.

", + "smithy.api#examples": [ + { + "title": "To describe the attachment attribute of a network interface", + "documentation": "This example describes the attachment attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Attribute": "attachment" + }, + "output": { + "NetworkInterfaceId": "eni-686ea200", + "Attachment": { + "Status": "attached", + "DeviceIndex": 0, + "AttachTime": "2015-05-21T20:02:20.000Z", + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": true, + "AttachmentId": "eni-attach-43348162", + "InstanceOwnerId": "123456789012" + } + } + }, + { + "title": "To describe the description attribute of a network interface", + "documentation": "This example describes the description attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Attribute": "description" + }, + "output": { + "NetworkInterfaceId": "eni-686ea200", + "Description": { + "Value": "My description" + } + } + }, + { + "title": "To describe the groupSet attribute of a network interface", + "documentation": "This example describes the groupSet attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Attribute": "groupSet" + }, + "output": { + "NetworkInterfaceId": "eni-686ea200", + "Groups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-903004f8" + } + ] + } + }, + { + "title": "To describe the sourceDestCheck attribute of a network interface", + "documentation": "This example describes the sourceDestCheck attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Attribute": "sourceDestCheck" + }, + "output": { + "NetworkInterfaceId": "eni-686ea200", + "SourceDestCheck": { + "Value": true + } + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttribute", + "traits": { + "aws.protocols#ec2QueryName": "Attribute", + "smithy.api#documentation": "

The attribute of the network interface. This parameter is required.

", + "smithy.api#xmlName": "attribute" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeNetworkInterfaceAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfaceAttributeResult": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

The attachment (if any) of the network interface.

", + "smithy.api#xmlName": "attachment" + } + }, + "Description": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the network interface.

", + "smithy.api#xmlName": "description" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups associated with the network interface.

", + "smithy.api#xmlName": "groupSet" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssociatePublicIpAddress", + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to a network interface. This option\n can be enabled for any network interface but will only apply to the primary network\n interface (eth0).

", + "smithy.api#xmlName": "associatePublicIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeNetworkInterfaceAttribute.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacePermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the permissions for your network interfaces.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInterfacePermissions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsRequest": { + "type": "structure", + "members": { + "NetworkInterfacePermissionIds": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionIdList", + "traits": { + "smithy.api#documentation": "

The network interface permission IDs.

", + "smithy.api#xmlName": "NetworkInterfacePermissionId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n network-interface-permission.network-interface-permission-id -\n The ID of the permission.

    \n
  • \n
  • \n

    \n network-interface-permission.network-interface-id - The ID of the\n network interface.

    \n
  • \n
  • \n

    \n network-interface-permission.aws-account-id - The Amazon Web Services account ID.

    \n
  • \n
  • \n

    \n network-interface-permission.aws-service - The Amazon Web Services\n service.

    \n
  • \n
  • \n

    \n network-interface-permission.permission - The type of permission\n (INSTANCE-ATTACH | EIP-ASSOCIATE).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the\n end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items,\n make another request with the token returned in the output. If this parameter is not\n specified, up to 50 results are returned by default. For more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeNetworkInterfacePermissions.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsResult": { + "type": "structure", + "members": { + "NetworkInterfacePermissions": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfacePermissions", + "smithy.api#documentation": "

The network interface permissions.

", + "smithy.api#xmlName": "networkInterfacePermissions" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is\n null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output for DescribeNetworkInterfacePermissions.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified network interfaces or all your network interfaces.

\n

If you have a large number of network interfaces, the operation fails unless you use\n pagination or one of the following filters: group-id,\n mac-address, private-dns-name,\n private-ip-address, subnet-id, or\n vpc-id.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
", + "smithy.api#examples": [ + { + "title": "To describe a network interface", + "documentation": "", + "input": { + "NetworkInterfaceIds": [ + "eni-e5aa89a3" + ] + }, + "output": { + "NetworkInterfaces": [ + { + "Status": "in-use", + "MacAddress": "02:2f:8f:b0:cf:75", + "SourceDestCheck": true, + "VpcId": "vpc-a01106c2", + "Description": "my network interface", + "Association": { + "PublicIp": "203.0.113.12", + "AssociationId": "eipassoc-0fbb766a", + "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com", + "IpOwnerId": "123456789012" + }, + "NetworkInterfaceId": "eni-e5aa89a3", + "PrivateIpAddresses": [ + { + "PrivateDnsName": "ip-10-0-1-17.ec2.internal", + "Association": { + "PublicIp": "203.0.113.12", + "AssociationId": "eipassoc-0fbb766a", + "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com", + "IpOwnerId": "123456789012" + }, + "Primary": true, + "PrivateIpAddress": "10.0.1.17" + } + ], + "RequesterManaged": false, + "PrivateDnsName": "ip-10-0-1-17.ec2.internal", + "AvailabilityZone": "us-east-1d", + "Attachment": { + "Status": "attached", + "DeviceIndex": 1, + "AttachTime": "2013-11-30T23:36:42.000Z", + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": false, + "AttachmentId": "eni-attach-66c4350a", + "InstanceOwnerId": "123456789012" + }, + "Groups": [ + { + "GroupName": "default", + "GroupId": "sg-8637d3e3" + } + ], + "SubnetId": "subnet-b61f49f0", + "OwnerId": "123456789012", + "TagSet": [], + "PrivateIpAddress": "10.0.1.17" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "NetworkInterfaces", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "NetworkInterfaceAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "NetworkInterfaces[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "errorType": "InvalidNetworkInterfaceID.NotFound" + } + } + ], + "minDelay": 20 + } + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the\n end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeNetworkInterfacesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items,\n make another request with the token returned in the output. You cannot specify this\n parameter and the network interface IDs parameter in the same request. For more\n information, see Pagination.

" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set\n to true, the output includes resources that are managed by Amazon Web Services services,\n even if managed resource visibility is set to hidden.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#NetworkInterfaceIdList", + "traits": { + "smithy.api#documentation": "

The network interface IDs.

\n

Default: Describes all your network interfaces.

", + "smithy.api#xmlName": "NetworkInterfaceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "aws.protocols#ec2QueryName": "Filter", + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n association.allocation-id - The allocation ID returned when you\n allocated the Elastic IP address (IPv4) for your network interface.

    \n
  • \n
  • \n

    \n association.association-id - The association ID returned when the\n network interface was associated with an IPv4 address.

    \n
  • \n
  • \n

    \n addresses.association.owner-id - The owner ID of the addresses\n associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.association.public-ip - The association ID returned\n when the network interface was associated with the Elastic IP address\n (IPv4).

    \n
  • \n
  • \n

    \n addresses.primary - Whether the private IPv4 address is the\n primary IP address associated with the network interface.

    \n
  • \n
  • \n

    \n addresses.private-ip-address - The private IPv4 addresses\n associated with the network interface.

    \n
  • \n
  • \n

    \n association.ip-owner-id - The owner of the Elastic IP address\n (IPv4) associated with the network interface.

    \n
  • \n
  • \n

    \n association.public-ip - The address of the Elastic IP address\n (IPv4) bound to the network interface.

    \n
  • \n
  • \n

    \n association.public-dns-name - The public DNS name for the network\n interface (IPv4).

    \n
  • \n
  • \n

    \n attachment.attach-time - The time that the network interface was\n attached to an instance.

    \n
  • \n
  • \n

    \n attachment.attachment-id - The ID of the interface\n attachment.

    \n
  • \n
  • \n

    \n attachment.delete-on-termination - Indicates whether the\n attachment is deleted when an instance is terminated.

    \n
  • \n
  • \n

    \n attachment.device-index - The device index to which the network\n interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-id - The ID of the instance to which the\n network interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-owner-id - The owner ID of the instance to\n which the network interface is attached.

    \n
  • \n
  • \n

    \n attachment.status - The status of the attachment\n (attaching | attached | detaching |\n detached).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the network\n interface.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone of the\n network interface.

    \n
  • \n
  • \n

    \n description - The description of the network interface.

    \n
  • \n
  • \n

    \n group-id - The ID of a security group associated with the network\n interface.

    \n
  • \n
  • \n

    \n ipv6-addresses.ipv6-address - An IPv6 address associated with the\n network interface.

    \n
  • \n
  • \n

    \n interface-type - The type of network interface\n (api_gateway_managed |\n aws_codestar_connections_managed | branch |\n ec2_instance_connect_endpoint | efa |\n efa-only | efs |\n evs |\n gateway_load_balancer |\n gateway_load_balancer_endpoint |\n global_accelerator_managed | interface |\n iot_rules_managed | lambda |\n load_balancer | nat_gateway |\n network_load_balancer | quicksight |\n transit_gateway | trunk |\n vpc_endpoint).

    \n
  • \n
  • \n

    \n mac-address - The MAC address of the network interface.

    \n
  • \n
  • \n

    \n network-interface-id - The ID of the network interface.

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a\n managed network interface.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the network\n interface. Only valid for managed network interfaces, where managed\n is true.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the network\n interface owner.

    \n
  • \n
  • \n

    \n private-dns-name - The private DNS name of the network interface\n (IPv4).

    \n
  • \n
  • \n

    \n private-ip-address - The private IPv4 address or addresses of the\n network interface.

    \n
  • \n
  • \n

    \n requester-id - The alias or Amazon Web Services account ID of the\n principal or service that created the network interface.

    \n
  • \n
  • \n

    \n requester-managed - Indicates whether the network interface is\n being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

    \n
  • \n
  • \n

    \n source-dest-check - Indicates whether the network interface\n performs source/destination checking. A value of true means\n checking is enabled, and false means checking is disabled. The\n value must be false for the network interface to perform network\n address translation (NAT) in your VPC.

    \n
  • \n
  • \n

    \n status - The status of the network interface. If the network\n interface is not attached to an instance, the status is available;\n if a network interface is attached to an instance the status is\n in-use.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet for the network\n interface.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC for the network interface.

    \n
  • \n
", + "smithy.api#xmlName": "filter" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeNetworkInterfaces.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeNetworkInterfacesResult": { + "type": "structure", + "members": { + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#NetworkInterfaceList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceSet", + "smithy.api#documentation": "

Information about the network interfaces.

", + "smithy.api#xmlName": "networkInterfaceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is\n null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeOutpostLags": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeOutpostLagsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeOutpostLagsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Outposts link aggregation groups (LAGs).

\n \n

LAGs are only available for second-generation Outposts racks at this time.

\n
" + } + }, + "com.amazonaws.ec2#DescribeOutpostLagsRequest": { + "type": "structure", + "members": { + "OutpostLagIds": { + "target": "com.amazonaws.ec2#OutpostLagIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the Outpost LAGs.

", + "smithy.api#xmlName": "OutpostLagId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters to use for narrowing down the request. The following filters are\n supported:

\n
    \n
  • \n

    \n service-link-virtual-interface-id - The ID of the service link virtual interface.

    \n
  • \n
  • \n

    \n service-link-virtual-interface-arn - The ARN of the service link virtual interface.

    \n
  • \n
  • \n

    \n outpost-id - The Outpost ID.

    \n
  • \n
  • \n

    \n outpost-arn - The Outpost ARN.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the service link virtual interface.

    \n
  • \n
  • \n

    \n vlan - The ID of the address pool.

    \n
  • \n
  • \n

    \n local-address - The local address.

    \n
  • \n
  • \n

    \n peer-address - The peer address.

    \n
  • \n
  • \n

    \n peer-bgp-asn - The peer BGP ASN.

    \n
  • \n
  • \n

    \n outpost-lag-id - The Outpost LAG ID.

    \n
  • \n
  • \n

    \n configuration-state - The configuration state of the service link virtual interface.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#OutpostLagMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeOutpostLagsResult": { + "type": "structure", + "members": { + "OutpostLags": { + "target": "com.amazonaws.ec2#OutpostLagSet", + "traits": { + "aws.protocols#ec2QueryName": "OutpostLagSet", + "smithy.api#documentation": "

The Outpost LAGs.

", + "smithy.api#xmlName": "outpostLagSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribePlacementGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribePlacementGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribePlacementGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified placement groups or all of your placement groups.

\n \n

To describe a specific placement group that is shared with\n your account, you must specify the ID of the placement group using the\n GroupId parameter. Specifying the name of a\n shared placement group using the GroupNames\n parameter will result in an error.

\n
\n

For more information, see Placement groups in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DescribePlacementGroupsRequest": { + "type": "structure", + "members": { + "GroupIds": { + "target": "com.amazonaws.ec2#PlacementGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the placement groups.

", + "smithy.api#xmlName": "GroupId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "GroupNames": { + "target": "com.amazonaws.ec2#PlacementGroupStringList", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The names of the placement groups.

\n

Constraints:

\n
    \n
  • \n

    You can specify a name only if the placement group is owned by your\n account.

    \n
  • \n
  • \n

    If a placement group is shared with your account,\n specifying the name results in an error. You must use the GroupId\n parameter instead.

    \n
  • \n
", + "smithy.api#xmlName": "groupName" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n group-name - The name of the placement group.

    \n
  • \n
  • \n

    \n group-arn - The Amazon Resource Name (ARN) of the placement\n group.

    \n
  • \n
  • \n

    \n spread-level - The spread level for the placement group\n (host | rack).

    \n
  • \n
  • \n

    \n state - The state of the placement group (pending |\n available | deleting |\n deleted).

    \n
  • \n
  • \n

    \n strategy - The strategy of the placement group\n (cluster | spread |\n partition | precision-time).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribePlacementGroupsResult": { + "type": "structure", + "members": { + "PlacementGroups": { + "target": "com.amazonaws.ec2#PlacementGroupList", + "traits": { + "aws.protocols#ec2QueryName": "PlacementGroupSet", + "smithy.api#documentation": "

Information about the placement groups.

", + "smithy.api#xmlName": "placementGroupSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribePrefixLists": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribePrefixListsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribePrefixListsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes available Amazon Web Services services in a prefix list format, which includes the prefix list\n name and prefix list ID of the service and the IP address range for the service.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "PrefixLists", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribePrefixListsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n prefix-list-id: The ID of a prefix list.

    \n
  • \n
  • \n

    \n prefix-list-name: The name of a prefix list.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "PrefixListIds": { + "target": "com.amazonaws.ec2#PrefixListResourceIdStringList", + "traits": { + "smithy.api#documentation": "

One or more prefix list IDs.

", + "smithy.api#xmlName": "PrefixListId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribePrefixListsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "PrefixLists": { + "target": "com.amazonaws.ec2#PrefixListSet", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListSet", + "smithy.api#documentation": "

All available prefix lists.

", + "smithy.api#xmlName": "prefixListSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribePrincipalIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribePrincipalIdFormatRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribePrincipalIdFormatResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the ID format settings for the root user and all IAM roles and IAM users\n that have explicitly specified a longer ID (17-character ID) preference.

\n

By default, all IAM roles and IAM users default to the same ID settings as the root user, unless they\n explicitly override the settings. This request is useful for identifying those IAM users and IAM roles\n that have overridden the default ID settings.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Principals", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribePrincipalIdFormatMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribePrincipalIdFormatRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Resources": { + "target": "com.amazonaws.ec2#ResourceList", + "traits": { + "smithy.api#documentation": "

The type of resource: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway\n

", + "smithy.api#xmlName": "Resource" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribePrincipalIdFormatMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribePrincipalIdFormatResult": { + "type": "structure", + "members": { + "Principals": { + "target": "com.amazonaws.ec2#PrincipalIdFormatList", + "traits": { + "aws.protocols#ec2QueryName": "PrincipalSet", + "smithy.api#documentation": "

Information about the ID format settings for the ARN.

", + "smithy.api#xmlName": "principalSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribePublicIpv4Pools": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribePublicIpv4PoolsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribePublicIpv4PoolsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified IPv4 address pools.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "PublicIpv4Pools", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribePublicIpv4PoolsRequest": { + "type": "structure", + "members": { + "PoolIds": { + "target": "com.amazonaws.ec2#PublicIpv4PoolIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the address pools.

", + "smithy.api#xmlName": "PoolId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#PoolMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribePublicIpv4PoolsResult": { + "type": "structure", + "members": { + "PublicIpv4Pools": { + "target": "com.amazonaws.ec2#PublicIpv4PoolSet", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4PoolSet", + "smithy.api#documentation": "

Information about the address pools.

", + "smithy.api#xmlName": "publicIpv4PoolSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeRegions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeRegionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeRegionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Regions that are enabled for your account, or all Regions.

\n

For a list of the Regions supported by Amazon EC2, see Amazon EC2 service endpoints.

\n

For information about enabling and disabling Regions for your account, see Specify which Amazon Web Services Regions \n your account can use in the Amazon Web Services Account Management Reference Guide.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe your regions", + "documentation": "This example describes all the regions that are available to you.", + "output": { + "Regions": [ + { + "Endpoint": "ec2.ap-south-1.amazonaws.com", + "RegionName": "ap-south-1" + }, + { + "Endpoint": "ec2.eu-west-1.amazonaws.com", + "RegionName": "eu-west-1" + }, + { + "Endpoint": "ec2.ap-southeast-1.amazonaws.com", + "RegionName": "ap-southeast-1" + }, + { + "Endpoint": "ec2.ap-southeast-2.amazonaws.com", + "RegionName": "ap-southeast-2" + }, + { + "Endpoint": "ec2.eu-central-1.amazonaws.com", + "RegionName": "eu-central-1" + }, + { + "Endpoint": "ec2.ap-northeast-2.amazonaws.com", + "RegionName": "ap-northeast-2" + }, + { + "Endpoint": "ec2.ap-northeast-1.amazonaws.com", + "RegionName": "ap-northeast-1" + }, + { + "Endpoint": "ec2.us-east-1.amazonaws.com", + "RegionName": "us-east-1" + }, + { + "Endpoint": "ec2.sa-east-1.amazonaws.com", + "RegionName": "sa-east-1" + }, + { + "Endpoint": "ec2.us-west-1.amazonaws.com", + "RegionName": "us-west-1" + }, + { + "Endpoint": "ec2.us-west-2.amazonaws.com", + "RegionName": "us-west-2" + } + ] + } + } + ], + "smithy.test#smokeTests": [ + { + "id": "DescribeRegionsSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeRegionsRequest": { + "type": "structure", + "members": { + "RegionNames": { + "target": "com.amazonaws.ec2#RegionNameStringList", + "traits": { + "smithy.api#documentation": "

The names of the Regions. You can specify any Regions, whether they are enabled and disabled for your account.

", + "smithy.api#xmlName": "RegionName" + } + }, + "AllRegions": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to display all Regions, including Regions that are disabled for your account.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n endpoint - The endpoint of the Region (for example, ec2.us-east-1.amazonaws.com).

    \n
  • \n
  • \n

    \n opt-in-status - The opt-in status of the Region (opt-in-not-required | opted-in | \n not-opted-in).

    \n
  • \n
  • \n

    \n region-name - The name of the Region (for example, us-east-1).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeRegionsResult": { + "type": "structure", + "members": { + "Regions": { + "target": "com.amazonaws.ec2#RegionList", + "traits": { + "aws.protocols#ec2QueryName": "RegionInfo", + "smithy.api#documentation": "

Information about the Regions.

", + "smithy.api#xmlName": "regionInfo" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeReplaceRootVolumeTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes a root volume replacement task. For more information, see \n Replace a root volume in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ReplaceRootVolumeTasks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksRequest": { + "type": "structure", + "members": { + "ReplaceRootVolumeTaskIds": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTaskIds", + "traits": { + "smithy.api#documentation": "

The ID of the root volume replacement task to view.

", + "smithy.api#xmlName": "ReplaceRootVolumeTaskId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filter to use:

\n
    \n
  • \n

    \n instance-id - The ID of the instance for which the root volume replacement task was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksResult": { + "type": "structure", + "members": { + "ReplaceRootVolumeTasks": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTasks", + "traits": { + "aws.protocols#ec2QueryName": "ReplaceRootVolumeTaskSet", + "smithy.api#documentation": "

Information about the root volume replacement task.

", + "smithy.api#xmlName": "replaceRootVolumeTaskSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of the Reserved Instances that you purchased.

\n

For more information about Reserved Instances, see Reserved\n Instances in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
" + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesListings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesListingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesListingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your account's Reserved Instance listings in the Reserved Instance\n Marketplace.

\n

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance\n capacity that they no longer need with buyers who want to purchase additional capacity.\n Reserved Instances bought and sold through the Reserved Instance Marketplace work like any\n other Reserved Instances.

\n

As a seller, you choose to list some or all of your Reserved Instances, and you specify\n the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved\n Instance Marketplace and are available for purchase.

\n

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the\n Marketplace matches what you're searching for with what's available. The Marketplace first\n sells the lowest priced Reserved Instances to you, and continues to sell available Reserved\n Instance listings to you until your demand is met. You are charged based on the total price of\n all of the listings that you purchase.

\n

For more information, see Sell in the Reserved Instance\n Marketplace in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
" + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesListingsRequest": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#ReservationId", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

One or more Reserved Instance IDs.

", + "smithy.api#xmlName": "reservedInstancesId" + } + }, + "ReservedInstancesListingId": { + "target": "com.amazonaws.ec2#ReservedInstancesListingId", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingId", + "smithy.api#documentation": "

One or more Reserved Instance listing IDs.

", + "smithy.api#xmlName": "reservedInstancesListingId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n reserved-instances-id - The ID of the Reserved Instances.

    \n
  • \n
  • \n

    \n reserved-instances-listing-id - The ID of the Reserved Instances\n listing.

    \n
  • \n
  • \n

    \n status - The status of the Reserved Instance listing (pending |\n active | cancelled | closed).

    \n
  • \n
  • \n

    \n status-message - The reason for the status.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeReservedInstancesListings.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesListingsResult": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "target": "com.amazonaws.ec2#ReservedInstancesListingList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingsSet", + "smithy.api#documentation": "

Information about the Reserved Instance listing.

", + "smithy.api#xmlName": "reservedInstancesListingsSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeReservedInstancesListings.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesModificationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesModificationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the modifications made to your Reserved Instances. If no parameter is specified,\n information about all your Reserved Instances modification requests is returned. If a\n modification ID is specified, only information about the specific modification is\n returned.

\n

For more information, see Modify Reserved Instances in the\n Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ReservedInstancesModifications" + } + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesModificationsRequest": { + "type": "structure", + "members": { + "ReservedInstancesModificationIds": { + "target": "com.amazonaws.ec2#ReservedInstancesModificationIdStringList", + "traits": { + "smithy.api#documentation": "

IDs for the submitted modification request.

", + "smithy.api#xmlName": "ReservedInstancesModificationId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n client-token - The idempotency token for the modification request.

    \n
  • \n
  • \n

    \n create-date - The time when the modification request was created.

    \n
  • \n
  • \n

    \n effective-date - The time when the modification becomes effective.

    \n
  • \n
  • \n

    \n modification-result.reserved-instances-id - The ID for the Reserved Instances\n created as part of the modification request. This ID is only available when the status of\n the modification is fulfilled.

    \n
  • \n
  • \n

    \n modification-result.target-configuration.availability-zone - The Availability\n Zone for the new Reserved Instances.

    \n
  • \n
  • \n

    \n modification-result.target-configuration.availability-zone-id - The ID of the\n Availability Zone for the new Reserved Instances.

    \n
  • \n
  • \n

    \n modification-result.target-configuration.instance-count - The number of new\n Reserved Instances.

    \n
  • \n
  • \n

    \n modification-result.target-configuration.instance-type - The instance type of\n the new Reserved Instances.

    \n
  • \n
  • \n

    \n reserved-instances-id - The ID of the Reserved Instances modified.

    \n
  • \n
  • \n

    \n reserved-instances-modification-id - The ID of the modification\n request.

    \n
  • \n
  • \n

    \n status - The status of the Reserved Instances modification request\n (processing | fulfilled | failed).

    \n
  • \n
  • \n

    \n status-message - The reason for the status.

    \n
  • \n
  • \n

    \n update-date - The time when the modification request was last updated.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeReservedInstancesModifications.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesModificationsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null\n when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ReservedInstancesModifications": { + "target": "com.amazonaws.ec2#ReservedInstancesModificationList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesModificationsSet", + "smithy.api#documentation": "

The Reserved Instance modification information.

", + "smithy.api#xmlName": "reservedInstancesModificationsSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeReservedInstancesModifications.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeReservedInstancesOfferingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes Reserved Instance offerings that are available for purchase. With Reserved\n Instances, you purchase the right to launch instances for a period of time. During that time\n period, you do not receive insufficient capacity errors, and you pay a lower usage rate than\n the rate charged for On-Demand instances for the actual time used.

\n

If you have listed your own Reserved Instances for sale in the Reserved Instance\n Marketplace, they will be excluded from these results. This is to ensure that you do not\n purchase your own Reserved Instances.

\n

For more information, see Sell in the Reserved Instance\n Marketplace in the Amazon EC2 User Guide.

\n \n

The order of the elements in the response, including those within nested structures,\n might vary. Applications should not assume the elements appear in a particular order.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ReservedInstancesOfferings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesOfferingsRequest": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which the Reserved Instance can be used.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified,\n but not both.

" + } + }, + "IncludeMarketplace": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Include Reserved Instance Marketplace offerings in the response.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type that the reservation will cover (for example, m1.small).\n For more information, see Amazon EC2 instance types in the\n Amazon EC2 User Guide.

" + } + }, + "MaxDuration": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The maximum duration (in seconds) to filter when searching for offerings.

\n

Default: 94608000 (3 years)

" + } + }, + "MaxInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of instances to filter when searching for offerings.

\n

Default: 20

" + } + }, + "MinDuration": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The minimum duration (in seconds) to filter when searching for offerings.

\n

Default: 2592000 (1 month)

" + } + }, + "OfferingClass": { + "target": "com.amazonaws.ec2#OfferingClassType", + "traits": { + "smithy.api#documentation": "

The offering class of the Reserved Instance. Can be standard or\n convertible.

" + } + }, + "ProductDescription": { + "target": "com.amazonaws.ec2#RIProductDescription", + "traits": { + "smithy.api#documentation": "

The Reserved Instance product platform description. Instances that include (Amazon\n VPC) in the description are for use with Amazon VPC.

" + } + }, + "ReservedInstancesOfferingIds": { + "target": "com.amazonaws.ec2#ReservedInstancesOfferingIdStringList", + "traits": { + "smithy.api#documentation": "

One or more Reserved Instances offering IDs.

", + "smithy.api#xmlName": "ReservedInstancesOfferingId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified,\n but not both.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone where the Reserved Instance can be\n used.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone where the Reserved\n Instance can be used.

    \n
  • \n
  • \n

    \n duration - The duration of the Reserved Instance (for example, one year or\n three years), in seconds (31536000 | 94608000).

    \n
  • \n
  • \n

    \n fixed-price - The purchase price of the Reserved Instance (for example,\n 9800.0).

    \n
  • \n
  • \n

    \n instance-type - The instance type that is covered by the reservation.

    \n
  • \n
  • \n

    \n marketplace - Set to true to show only Reserved Instance\n Marketplace offerings. When this filter is not used, which is the default behavior, all\n offerings from both Amazon Web Services and the Reserved Instance Marketplace are listed.

    \n
  • \n
  • \n

    \n product-description - The Reserved Instance product platform description\n (Linux/UNIX | Linux with SQL Server Standard | Linux\n with SQL Server Web | Linux with SQL Server Enterprise | SUSE\n Linux | Red Hat Enterprise Linux | Red Hat Enterprise Linux\n with HA | Windows | Windows with SQL Server Standard |\n Windows with SQL Server Web | Windows with SQL Server\n Enterprise).

    \n
  • \n
  • \n

    \n reserved-instances-offering-id - The Reserved Instances offering ID.

    \n
  • \n
  • \n

    \n scope - The scope of the Reserved Instance (Availability Zone or\n Region).

    \n
  • \n
  • \n

    \n usage-price - The usage price of the Reserved Instance, per hour (for\n example, 0.84).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTenancy", + "smithy.api#documentation": "

The tenancy of the instances covered by the reservation. A Reserved Instance with a\n tenancy of dedicated is applied to instances that run in a VPC on single-tenant\n hardware (i.e., Dedicated Instances).

\n

\n Important: The host value cannot be used with\n this parameter. Use the default or dedicated values only.

\n

Default: default\n

", + "smithy.api#xmlName": "instanceTenancy" + } + }, + "OfferingType": { + "target": "com.amazonaws.ec2#OfferingTypeValues", + "traits": { + "aws.protocols#ec2QueryName": "OfferingType", + "smithy.api#documentation": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01\n API version, you only have access to the Medium Utilization Reserved Instance\n offering type.

", + "smithy.api#xmlName": "offeringType" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining\n results of the initial request can be seen by sending another request with the returned\n NextToken value. The maximum is 100.

\n

Default: 100

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeReservedInstancesOfferings.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesOfferingsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null\n when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ReservedInstancesOfferings": { + "target": "com.amazonaws.ec2#ReservedInstancesOfferingList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesOfferingsSet", + "smithy.api#documentation": "

A list of Reserved Instances offerings.

", + "smithy.api#xmlName": "reservedInstancesOfferingsSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeReservedInstancesOfferings.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesRequest": { + "type": "structure", + "members": { + "OfferingClass": { + "target": "com.amazonaws.ec2#OfferingClassType", + "traits": { + "smithy.api#documentation": "

Describes whether the Reserved Instance is Standard or Convertible.

" + } + }, + "ReservedInstancesIds": { + "target": "com.amazonaws.ec2#ReservedInstancesIdStringList", + "traits": { + "smithy.api#documentation": "

One or more Reserved Instance IDs.

\n

Default: Describes all your Reserved Instances, or only those otherwise specified.

", + "smithy.api#xmlName": "ReservedInstancesId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone where the Reserved Instance can\n be used.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone where the Reserved\n Instance can be used.

    \n
  • \n
  • \n

    \n duration - The duration of the Reserved Instance (one year or three\n years), in seconds (31536000 | 94608000).

    \n
  • \n
  • \n

    \n end - The time when the Reserved Instance expires (for example,\n 2015-08-07T11:54:42.000Z).

    \n
  • \n
  • \n

    \n fixed-price - The purchase price of the Reserved Instance (for example,\n 9800.0).

    \n
  • \n
  • \n

    \n instance-type - The instance type that is covered by the\n reservation.

    \n
  • \n
  • \n

    \n scope - The scope of the Reserved Instance (Region or\n Availability Zone).

    \n
  • \n
  • \n

    \n product-description - The Reserved Instance product platform description\n (Linux/UNIX | Linux with SQL Server Standard | Linux\n with SQL Server Web | Linux with SQL Server Enterprise | SUSE\n Linux | Red Hat Enterprise Linux | Red Hat Enterprise Linux\n with HA | Windows | Windows with SQL Server Standard |\n Windows with SQL Server Web | Windows with SQL Server\n Enterprise).

    \n
  • \n
  • \n

    \n reserved-instances-id - The ID of the Reserved Instance.

    \n
  • \n
  • \n

    \n start - The time at which the Reserved Instance purchase request was\n placed (for example, 2014-08-07T11:54:42.000Z).

    \n
  • \n
  • \n

    \n state - The state of the Reserved Instance (payment-pending\n | active | payment-failed | retired).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n usage-price - The usage price of the Reserved Instance, per hour (for\n example, 0.84).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "OfferingType": { + "target": "com.amazonaws.ec2#OfferingTypeValues", + "traits": { + "aws.protocols#ec2QueryName": "OfferingType", + "smithy.api#documentation": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01\n API version, you only have access to the Medium Utilization Reserved Instance\n offering type.

", + "smithy.api#xmlName": "offeringType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeReservedInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeReservedInstancesResult": { + "type": "structure", + "members": { + "ReservedInstances": { + "target": "com.amazonaws.ec2#ReservedInstancesList", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesSet", + "smithy.api#documentation": "

A list of Reserved Instances.

", + "smithy.api#xmlName": "reservedInstancesSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output for DescribeReservedInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServerEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeRouteServerEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeRouteServerEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more route server endpoints.

\n

A route server endpoint is an Amazon Web Services-managed component inside a subnet that facilitates BGP (Border Gateway Protocol) connections between your route server and your BGP peers.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "RouteServerEndpoints", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeRouteServerEndpointsRequest": { + "type": "structure", + "members": { + "RouteServerEndpointIds": { + "target": "com.amazonaws.ec2#RouteServerEndpointIdsList", + "traits": { + "smithy.api#documentation": "

The IDs of the route server endpoints to describe.

", + "smithy.api#xmlName": "RouteServerEndpointId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#RouteServerMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return with a single call.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the describe request.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServerEndpointsResult": { + "type": "structure", + "members": { + "RouteServerEndpoints": { + "target": "com.amazonaws.ec2#RouteServerEndpointsList", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpointSet", + "smithy.api#documentation": "

Information about the described route server endpoints.

", + "smithy.api#xmlName": "routeServerEndpointSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServerPeers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeRouteServerPeersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeRouteServerPeersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more route server peers.

\n

A route server peer is a session between a route server endpoint and the device deployed in Amazon Web Services (such as a firewall appliance or other network security function running on an EC2 instance). The device must meet these requirements:

\n
    \n
  • \n

    Have an elastic network interface in the VPC

    \n
  • \n
  • \n

    Support BGP (Border Gateway Protocol)

    \n
  • \n
  • \n

    Can initiate BGP sessions

    \n
  • \n
\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "RouteServerPeers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeRouteServerPeersRequest": { + "type": "structure", + "members": { + "RouteServerPeerIds": { + "target": "com.amazonaws.ec2#RouteServerPeerIdsList", + "traits": { + "smithy.api#documentation": "

The IDs of the route server peers to describe.

", + "smithy.api#xmlName": "RouteServerPeerId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#RouteServerMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return with a single call.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the describe request.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServerPeersResult": { + "type": "structure", + "members": { + "RouteServerPeers": { + "target": "com.amazonaws.ec2#RouteServerPeersList", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPeerSet", + "smithy.api#documentation": "

Information about the described route server peers.

", + "smithy.api#xmlName": "routeServerPeerSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeRouteServersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeRouteServersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more route servers.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "RouteServers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeRouteServersRequest": { + "type": "structure", + "members": { + "RouteServerIds": { + "target": "com.amazonaws.ec2#RouteServerIdsList", + "traits": { + "smithy.api#documentation": "

The IDs of the route servers to describe.

", + "smithy.api#xmlName": "RouteServerId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#RouteServerMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return with a single call.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the describe request.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeRouteServersResult": { + "type": "structure", + "members": { + "RouteServers": { + "target": "com.amazonaws.ec2#RouteServersList", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerSet", + "smithy.api#documentation": "

Information about the described route servers.

", + "smithy.api#xmlName": "routeServerSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeRouteTables": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeRouteTablesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeRouteTablesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your route tables. The default is to describe all your route tables. \n Alternatively, you can specify specific route table IDs or filter the results to\n include only the route tables that match specific criteria.

\n

Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations.

\n

For more information, see Route tables in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a route table", + "documentation": "This example describes the specified route table.", + "input": { + "RouteTableIds": [ + "rtb-1f382e7d" + ] + }, + "output": { + "RouteTables": [ + { + "Associations": [ + { + "RouteTableAssociationId": "rtbassoc-d8ccddba", + "Main": true, + "RouteTableId": "rtb-1f382e7d" + } + ], + "RouteTableId": "rtb-1f382e7d", + "VpcId": "vpc-a01106c2", + "PropagatingVgws": [], + "Tags": [], + "Routes": [ + { + "GatewayId": "local", + "DestinationCidrBlock": "10.0.0.0/16", + "State": "active" + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "RouteTables", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeRouteTablesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeRouteTablesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeRouteTablesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "RouteTableIds": { + "target": "com.amazonaws.ec2#RouteTableIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the route tables.

", + "smithy.api#xmlName": "RouteTableId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n association.gateway-id - The ID of the gateway involved in the\n\t\t association.

    \n
  • \n
  • \n

    \n association.route-table-association-id - The ID of an association\n ID for the route table.

    \n
  • \n
  • \n

    \n association.route-table-id - The ID of the route table involved in\n the association.

    \n
  • \n
  • \n

    \n association.subnet-id - The ID of the subnet involved in the\n association.

    \n
  • \n
  • \n

    \n association.main - Indicates whether the route table is the main\n route table for the VPC (true | false). Route tables\n that do not have an association ID are not returned in the response.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the route table.

    \n
  • \n
  • \n

    \n route-table-id - The ID of the route table.

    \n
  • \n
  • \n

    \n route.destination-cidr-block - The IPv4 CIDR range specified in a\n route in the table.

    \n
  • \n
  • \n

    \n route.destination-ipv6-cidr-block - The IPv6 CIDR range specified in a route in the route table.

    \n
  • \n
  • \n

    \n route.destination-prefix-list-id - The ID (prefix) of the Amazon Web Services \n\t\t\t\t service specified in a route in the table.

    \n
  • \n
  • \n

    \n route.egress-only-internet-gateway-id - The ID of an\n egress-only Internet gateway specified in a route in the route table.

    \n
  • \n
  • \n

    \n route.gateway-id - The ID of a gateway specified in a route in the table.

    \n
  • \n
  • \n

    \n route.instance-id - The ID of an instance specified in a route in the table.

    \n
  • \n
  • \n

    \n route.nat-gateway-id - The ID of a NAT gateway.

    \n
  • \n
  • \n

    \n route.transit-gateway-id - The ID of a transit gateway.

    \n
  • \n
  • \n

    \n route.origin - Describes how the route was created. \n CreateRouteTable indicates that the route was automatically\n created when the route table was created; CreateRoute indicates\n that the route was manually added to the route table;\n EnableVgwRoutePropagation indicates that the route was\n propagated by route propagation.

    \n
  • \n
  • \n

    \n route.state - The state of a route in the route table\n (active | blackhole). The blackhole state\n indicates that the route's target isn't available (for example, the specified\n gateway isn't attached to the VPC, the specified NAT instance has been\n terminated, and so on).

    \n
  • \n
  • \n

    \n route.vpc-peering-connection-id - The ID of a VPC peering\n\t\t connection specified in a route in the table.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC for the route table.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeRouteTablesResult": { + "type": "structure", + "members": { + "RouteTables": { + "target": "com.amazonaws.ec2#RouteTableList", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableSet", + "smithy.api#documentation": "

Information about the route tables.

", + "smithy.api#xmlName": "routeTableSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeRouteTables.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeScheduledInstanceAvailability": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityResult" + }, + "traits": { + "smithy.api#documentation": "

Finds available schedules that meet the specified criteria.

\n

You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.

\n

After you find a schedule that meets your needs, call PurchaseScheduledInstances\n to purchase Scheduled Instances with that schedule.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ScheduledInstanceAvailabilitySet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 300 + } + } + }, + "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone (for example, us-west-2a).

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example, c4.large).

    \n
  • \n
  • \n

    \n platform - The platform (Linux/UNIX or Windows).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "FirstSlotStartTimeRange": { + "target": "com.amazonaws.ec2#SlotDateTimeRangeRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The time period for the first schedule to start.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. \n This value can be between 5 and 300. The default value is 300.\n To retrieve the remaining results, make another call with the returned\n NextToken value.

" + } + }, + "MaxSlotDurationInHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum available duration, in hours. This value must be greater than MinSlotDurationInHours\n and less than 1,720.

" + } + }, + "MinSlotDurationInHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum available duration, in hours. The minimum required duration is 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results.

" + } + }, + "Recurrence": { + "target": "com.amazonaws.ec2#ScheduledInstanceRecurrenceRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The schedule recurrence.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeScheduledInstanceAvailability.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ScheduledInstanceAvailabilitySet": { + "target": "com.amazonaws.ec2#ScheduledInstanceAvailabilitySet", + "traits": { + "aws.protocols#ec2QueryName": "ScheduledInstanceAvailabilitySet", + "smithy.api#documentation": "

Information about the available Scheduled Instances.

", + "smithy.api#xmlName": "scheduledInstanceAvailabilitySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeScheduledInstanceAvailability.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeScheduledInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeScheduledInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeScheduledInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Scheduled Instances or all your Scheduled Instances.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ScheduledInstanceSet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeScheduledInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone (for example, us-west-2a).

    \n
  • \n
  • \n

    \n instance-type - The instance type (for example, c4.large).

    \n
  • \n
  • \n

    \n platform - The platform (Linux/UNIX or Windows).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. \n This value can be between 5 and 300. The default value is 100.\n To retrieve the remaining results, make another call with the returned\n NextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results.

" + } + }, + "ScheduledInstanceIds": { + "target": "com.amazonaws.ec2#ScheduledInstanceIdRequestSet", + "traits": { + "smithy.api#documentation": "

The Scheduled Instance IDs.

", + "smithy.api#xmlName": "ScheduledInstanceId" + } + }, + "SlotStartTimeRange": { + "target": "com.amazonaws.ec2#SlotStartTimeRangeRequest", + "traits": { + "smithy.api#documentation": "

The time period for the first schedule to start.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeScheduledInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeScheduledInstancesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "ScheduledInstanceSet": { + "target": "com.amazonaws.ec2#ScheduledInstanceSet", + "traits": { + "aws.protocols#ec2QueryName": "ScheduledInstanceSet", + "smithy.api#documentation": "

Information about the Scheduled Instances.

", + "smithy.api#xmlName": "scheduledInstanceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeScheduledInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecondaryInterfaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecondaryInterfacesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecondaryInterfacesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your secondary interfaces.

", + "smithy.api#examples": [ + { + "title": "To describe all secondary interfaces", + "documentation": "This example describes all secondary interfaces in the current Region.", + "output": { + "SecondaryInterfaces": [ + { + "SecondaryInterfaceId": "si-0123456789abcdef0", + "SecondaryInterfaceArn": "arn:aws:ec2:us-east-2:123456789012:secondary-interface/si-0123456789abcdef0", + "OwnerId": "123456789012", + "SecondarySubnetId": "ss-0123456789abcdef0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "MacAddress": "02:2f:8f:b0:cf:75", + "SourceDestCheck": true, + "Status": "in-use", + "SecondaryInterfaceType": "secondary", + "PrivateIpv4Addresses": [ + { + "PrivateIpAddress": "10.0.1.17" + } + ], + "Attachment": { + "Status": "attached", + "DeviceIndex": 0, + "NetworkCardIndex": 1, + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": true, + "AttachmentId": "si-attach-0123456789abcdef0", + "InstanceOwnerId": "123456789012", + "AttachTime": "2026-02-28T23:35:33.000Z" + }, + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Interface" + } + ] + } + ] + } + }, + { + "title": "To describe secondary interfaces using filters", + "documentation": "This example uses filters to describe secondary interfaces attached to a specific instance.", + "input": { + "Filters": [ + { + "Name": "attachment.instance-id", + "Values": [ + "i-1234567890abcdef0" + ] + } + ], + "MaxResults": 5 + }, + "output": { + "SecondaryInterfaces": [ + { + "SecondaryInterfaceId": "si-0123456789abcdef0", + "SecondaryInterfaceArn": "arn:aws:ec2:us-east-2:123456789012:secondary-interface/si-0123456789abcdef0", + "OwnerId": "123456789012", + "SecondarySubnetId": "ss-0123456789abcdef0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "MacAddress": "02:2f:8f:b0:cf:75", + "SourceDestCheck": true, + "Status": "in-use", + "SecondaryInterfaceType": "secondary", + "PrivateIpv4Addresses": [ + { + "PrivateIpAddress": "10.0.1.17" + } + ], + "Attachment": { + "Status": "attached", + "DeviceIndex": 0, + "NetworkCardIndex": 1, + "InstanceId": "i-1234567890abcdef0", + "DeleteOnTermination": true, + "AttachmentId": "si-attach-0123456789abcdef0", + "InstanceOwnerId": "123456789012", + "AttachTime": "2026-02-28T23:35:33.000Z" + }, + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Interface" + } + ] + } + ], + "NextToken": "123456789MSIsInMiOjEsImMiOiIteGh3TERRTUEwanpsaVpab1dOdjZhMlBuRXZpZXJqTl==" + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecondaryInterfaces", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeSecondaryInterfacesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecondaryInterfacesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n attachment.attachment-id - The ID of the secondary interface attachment.

    \n
  • \n
  • \n

    \n attachment.instance-id - The ID of the instance to which the secondary interface is attached.

    \n
  • \n
  • \n

    \n attachment.instance-owner-id - The ID of the Amazon Web Services account that owns the instance to which the secondary interface is attached.

    \n
  • \n
  • \n

    \n attachment.status - The attachment status (attaching | attached | detaching | detached).

    \n
  • \n
  • \n

    \n private-ipv4-addresses.private-ip-address - The private IPv4 address associated with the secondary interface.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the secondary interface.

    \n
  • \n
  • \n

    \n secondary-interface-arn - The ARN of the secondary interface.

    \n
  • \n
  • \n

    \n secondary-interface-id - The ID of the secondary interface.

    \n
  • \n
  • \n

    \n secondary-interface-type - The type of secondary interface (secondary).

    \n
  • \n
  • \n

    \n secondary-network-id - The ID of the secondary network.

    \n
  • \n
  • \n

    \n secondary-network-type - The type of the secondary network (rdma).

    \n
  • \n
  • \n

    \n secondary-subnet-id - The ID of the secondary subnet.

    \n
  • \n
  • \n

    \n status - The status of the secondary interface (available | in-use).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecondaryInterfacesMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "SecondaryInterfaceIds": { + "target": "com.amazonaws.ec2#SecondaryInterfaceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the secondary interfaces.

", + "smithy.api#xmlName": "SecondaryInterfaceId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecondaryInterfacesResult": { + "type": "structure", + "members": { + "SecondaryInterfaces": { + "target": "com.amazonaws.ec2#SecondaryInterfaceList", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceSet", + "smithy.api#documentation": "

Information about the secondary interfaces.

", + "smithy.api#xmlName": "secondaryInterfaceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecondaryNetworks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecondaryNetworksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecondaryNetworksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more secondary networks.

", + "smithy.api#examples": [ + { + "title": "To describe specified secondary networks", + "documentation": "This example describes the specified secondary networks.", + "input": { + "SecondaryNetworkIds": [ + "sn-0123456789abcdef0", + "sn-0987654321fedcba0" + ] + }, + "output": { + "SecondaryNetworks": [ + { + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkArn": "arn:aws:ec2:us-east-2:123456789012:secondary-network/sn-0123456789abcdef0", + "OwnerId": "123456789012", + "Type": "rdma", + "State": "create-complete", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "sn-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/16", + "State": "associated" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Network" + } + ] + }, + { + "SecondaryNetworkId": "sn-0987654321fedcba0", + "SecondaryNetworkArn": "arn:aws:ec2:us-east-2:123456789012:secondary-network/sn-0987654321fedcba0", + "OwnerId": "123456789012", + "Type": "rdma", + "State": "create-complete", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "sn-cidr-assoc-09876543210fedcba0", + "CidrBlock": "10.1.0.0/16", + "State": "associated" + } + ], + "Tags": [ + { + "Key": "Name", + "Value": "Dev Secondary Network" + } + ] + } + ] + } + }, + { + "title": "To describe secondary networks using filters", + "documentation": "This example uses filters to describe any secondary network you own that has a tag with the key Environment and the value Production and whose state is create-complete.", + "input": { + "Filters": [ + { + "Name": "tag:Environment", + "Values": [ + "Production" + ] + }, + { + "Name": "state", + "Values": [ + "create-complete" + ] + } + ], + "MaxResults": 5 + }, + "output": { + "SecondaryNetworks": [ + { + "SecondaryNetworkId": "sn-9876543210abc1234", + "SecondaryNetworkArn": "arn:aws:ec2:us-east-2:123456789012:secondary-network/sn-9876543210abc1234", + "OwnerId": "123456789012", + "Type": "rdma", + "State": "create-complete", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "sn-cidr-assoc-12349901234abc1234", + "CidrBlock": "10.0.0.0/16", + "State": "associated" + } + ], + "Tags": [ + { + "Key": "Environment", + "Value": "Production" + } + ] + } + ], + "NextToken": "123456789MSIsInMiOjEsImMiOiIteGh3TERRTUEwanpsaVpab1dOdjZhMlBuRXZpZXJqTl==" + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecondaryNetworks", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "SecondaryNetworkCreateComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecondaryNetworks[].State", + "expected": "create-complete", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecondaryNetworks[].State", + "expected": "create-failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidSecondaryNetworkId.NotFound" + } + } + ], + "minDelay": 10 + }, + "SecondaryNetworkDeleteComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecondaryNetworks[].State", + "expected": "delete-complete", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecondaryNetworks[].State", + "expected": "delete-failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 10 + } + } + } + }, + "com.amazonaws.ec2#DescribeSecondaryNetworksMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecondaryNetworksRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. The following are the possible values:

\n
    \n
  • \n

    \n ipv4-cidr-block-association.association-id - The association ID for an IPv4 CIDR block associated with the secondary network.

    \n
  • \n
  • \n

    \n ipv4-cidr-block-association.cidr-block - An IPv4 CIDR block associated with the secondary network.

    \n
  • \n
  • \n

    \n ipv4-cidr-block-association.state - The state of an IPv4 CIDR block associated with the secondary network.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the secondary network.

    \n
  • \n
  • \n

    \n secondary-network-id - The ID of the secondary network.

    \n
  • \n
  • \n

    \n secondary-network-arn - The ARN of the secondary network.

    \n
  • \n
  • \n

    \n state - The state of the secondary network (create-in-progress | create-complete | create-failed | delete-in-progress | delete-complete | delete-failed).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n type - The type of the secondary network (rdma).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecondaryNetworksMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "SecondaryNetworkIds": { + "target": "com.amazonaws.ec2#SecondaryNetworkIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the secondary networks.

", + "smithy.api#xmlName": "SecondaryNetworkId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecondaryNetworksResult": { + "type": "structure", + "members": { + "SecondaryNetworks": { + "target": "com.amazonaws.ec2#SecondaryNetworkList", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkSet", + "smithy.api#documentation": "

Information about the secondary networks.

", + "smithy.api#xmlName": "secondaryNetworkSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecondarySubnets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecondarySubnetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecondarySubnetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your secondary subnets.

", + "smithy.api#examples": [ + { + "title": "To describe specified secondary subnets", + "documentation": "This example describes the specified secondary subnets.", + "input": { + "SecondarySubnetIds": [ + "ss-0123456789abcdef0", + "ss-0987654321fedcba0" + ] + }, + "output": { + "SecondarySubnets": [ + { + "SecondarySubnetId": "ss-0123456789abcdef0", + "SecondarySubnetArn": "arn:aws:ec2:us-east-2:123456789012:secondary-subnet/ss-0123456789abcdef0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "OwnerId": "123456789012", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "ss-cidr-assoc-56789901234abcdef0", + "CidrBlock": "10.0.0.0/24", + "State": "associated" + } + ], + "State": "create-complete", + "Tags": [ + { + "Key": "Name", + "Value": "Prod Secondary Subnet" + } + ] + }, + { + "SecondarySubnetId": "ss-0987654321fedcba0", + "SecondarySubnetArn": "arn:aws:ec2:us-east-2:123456789012:secondary-subnet/ss-0987654321fedcba0", + "SecondaryNetworkId": "sn-0123456789abcdef0", + "SecondaryNetworkType": "rdma", + "OwnerId": "123456789012", + "AvailabilityZoneId": "use2-az1", + "AvailabilityZone": "us-east-2a", + "Ipv4CidrBlockAssociations": [ + { + "AssociationId": "ss-cidr-assoc-09876543210fedcba0", + "CidrBlock": "10.0.1.0/24", + "State": "associated" + } + ], + "State": "create-complete", + "Tags": [ + { + "Key": "Name", + "Value": "Dev Secondary Subnet" + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecondarySubnets", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "SecondarySubnetCreateComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecondarySubnets[].State", + "expected": "create-complete", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecondarySubnets[].State", + "expected": "delete-failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidSecondarySubnetId.NotFound" + } + } + ], + "minDelay": 10 + }, + "SecondarySubnetDeleteComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecondarySubnets[].State", + "expected": "delete-complete", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecondarySubnets[].State", + "expected": "delete-failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 10 + } + } + } + }, + "com.amazonaws.ec2#DescribeSecondarySubnetsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecondarySubnetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n ipv4-cidr-block-association.association-id - The association ID for an IPv4 CIDR block associated with the secondary subnet.

    \n
  • \n
  • \n

    \n ipv4-cidr-block-association.cidr-block - An IPv4 CIDR block associated with the secondary subnet.

    \n
  • \n
  • \n

    \n ipv4-cidr-block-association.state - The state of an IPv4 CIDR block associated with the secondary subnet.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the secondary subnet.

    \n
  • \n
  • \n

    \n secondary-network-id - The ID of the secondary network.

    \n
  • \n
  • \n

    \n secondary-network-type - The type of the secondary network (rdma).

    \n
  • \n
  • \n

    \n secondary-subnet-id - The ID of the secondary subnet.

    \n
  • \n
  • \n

    \n secondary-subnet-arn - The ARN of the secondary subnet.

    \n
  • \n
  • \n

    \n state - The state of the secondary subnet (create-in-progress | create-complete | create-failed | delete-in-progress | delete-complete | delete-failed).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecondarySubnetsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "SecondarySubnetIds": { + "target": "com.amazonaws.ec2#SecondarySubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the secondary subnets.

", + "smithy.api#xmlName": "SecondarySubnetId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecondarySubnetsResult": { + "type": "structure", + "members": { + "SecondarySubnets": { + "target": "com.amazonaws.ec2#SecondarySubnetList", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetSet", + "smithy.api#documentation": "

Information about the secondary subnets.

", + "smithy.api#xmlName": "secondarySubnetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupReferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupReferencesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupReferencesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the VPCs on the other side of a VPC peering or Transit Gateway connection that are referencing the security groups you've specified in this request.

", + "smithy.api#examples": [ + { + "title": "To describe security group references", + "documentation": "This example describes the security group references for the specified security group.", + "input": { + "GroupId": [ + "sg-903004f8" + ] + }, + "output": { + "SecurityGroupReferenceSet": [ + { + "ReferencingVpcId": "vpc-1a2b3c4d", + "GroupId": "sg-903004f8", + "VpcPeeringConnectionId": "pcx-b04deed9" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupReferencesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#GroupIds", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the security groups in your account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupReferencesResult": { + "type": "structure", + "members": { + "SecurityGroupReferenceSet": { + "target": "com.amazonaws.ec2#SecurityGroupReferences", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupReferenceSet", + "smithy.api#documentation": "

Information about the VPCs with the referencing security groups.

", + "smithy.api#xmlName": "securityGroupReferenceSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your security group rules.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecurityGroupRules", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupRulesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupRulesRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n group-id - The ID of the security group.

    \n
  • \n
  • \n

    \n security-group-rule-id - The ID of the security group rule.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "SecurityGroupRuleIds": { + "target": "com.amazonaws.ec2#SecurityGroupRuleIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the security group rules.

", + "smithy.api#xmlName": "SecurityGroupRuleId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupRulesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of \n items, make another request with the token returned in the output. This value\n can be between 5 and 1000. If this parameter is not specified, then all items are\n returned. For more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupRulesResult": { + "type": "structure", + "members": { + "SecurityGroupRules": { + "target": "com.amazonaws.ec2#SecurityGroupRuleList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleSet", + "smithy.api#documentation": "

Information about security group rules.

", + "smithy.api#xmlName": "securityGroupRuleSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes security group VPC associations made with AssociateSecurityGroupVpc.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecurityGroupVpcAssociations", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "SecurityGroupVpcAssociationAssociated": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "associated", + "comparator": "allStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "associating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "association-failed", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 10 + }, + "SecurityGroupVpcAssociationDisassociated": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "disassociated", + "comparator": "allStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "disassociating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SecurityGroupVpcAssociations[].State", + "expected": "disassociation-failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "length(SecurityGroupVpcAssociations[]) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + } + ], + "minDelay": 10 + } + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Security group VPC association filters.

\n
    \n
  • \n

    \n group-id: The security group ID.

    \n
  • \n
  • \n

    \n group-owner-id: The group owner ID.

    \n
  • \n
  • \n

    \n state: The state of the association.

    \n
  • \n
  • \n

    \n vpc-id: The ID of the associated VPC.

    \n
  • \n
  • \n

    \n vpc-owner-id: The account ID of the VPC owner.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupVpcAssociationsResult": { + "type": "structure", + "members": { + "SecurityGroupVpcAssociations": { + "target": "com.amazonaws.ec2#SecurityGroupVpcAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupVpcAssociationSet", + "smithy.api#documentation": "

The security group VPC associations.

", + "smithy.api#xmlName": "securityGroupVpcAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified security groups or all of your security groups.

", + "smithy.api#examples": [ + { + "title": "To describe a security group", + "documentation": "This example describes the specified security group.", + "input": { + "GroupIds": [ + "sg-903004f8" + ] + }, + "output": {} + }, + { + "title": "To describe a tagged security group", + "documentation": "This example describes the security groups that include the specified tag (Purpose=test).", + "input": { + "Filters": [ + { + "Name": "tag:Purpose", + "Values": [ + "test" + ] + } + ] + }, + "output": {} + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecurityGroups", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "SecurityGroupExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(SecurityGroups[].GroupId) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidGroup.NotFound" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupsRequest": { + "type": "structure", + "members": { + "GroupIds": { + "target": "com.amazonaws.ec2#GroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups. Required for security groups in a nondefault VPC.

\n

Default: Describes all of your security groups.

", + "smithy.api#xmlName": "GroupId" + } + }, + "GroupNames": { + "target": "com.amazonaws.ec2#GroupNameStringList", + "traits": { + "smithy.api#documentation": "

[Default VPC] The names of the security groups. You can specify either\n\t\t\tthe security group name or the security group ID.

\n

Default: Describes all of your security groups.

", + "smithy.api#xmlName": "GroupName" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSecurityGroupsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items,\n make another request with the token returned in the output. This value can be between 5 and 1000. \n If this parameter is not specified, then all items are returned. For more information, see \n Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

\n
    \n
  • \n

    \n description - The description of the security group.

    \n
  • \n
  • \n

    \n egress.ip-permission.cidr - An IPv4 CIDR block for an outbound\n security group rule.

    \n
  • \n
  • \n

    \n egress.ip-permission.from-port - For an outbound rule, the\n start of port range for the TCP and UDP protocols, or an ICMP type\n number.

    \n
  • \n
  • \n

    \n egress.ip-permission.group-id - The ID of a security group\n that has been referenced in an outbound security group rule.

    \n
  • \n
  • \n

    \n egress.ip-permission.group-name - The name of a security group\n that is referenced in an outbound security group rule.

    \n
  • \n
  • \n

    \n egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an\n outbound security group rule.

    \n
  • \n
  • \n

    \n egress.ip-permission.prefix-list-id - The ID of a prefix list to which a security group rule allows outbound access.

    \n
  • \n
  • \n

    \n egress.ip-permission.protocol - The IP protocol for an\n outbound security group rule (tcp | udp |\n icmp, a protocol number, or -1 for all protocols).

    \n
  • \n
  • \n

    \n egress.ip-permission.to-port - For an outbound rule, the end\n of port range for the TCP and UDP protocols, or an ICMP code.

    \n
  • \n
  • \n

    \n egress.ip-permission.user-id - The ID of an Amazon Web Services account that\n has been referenced in an outbound security group rule.

    \n
  • \n
  • \n

    \n group-id - The ID of the security group.

    \n
  • \n
  • \n

    \n group-name - The name of the security group.

    \n
  • \n
  • \n

    \n ip-permission.cidr - An IPv4 CIDR block for an inbound security\n group rule.

    \n
  • \n
  • \n

    \n ip-permission.from-port - For an inbound rule, the start of port\n range for the TCP and UDP protocols, or an ICMP type number.

    \n
  • \n
  • \n

    \n ip-permission.group-id - The ID of a security group that has been\n referenced in an inbound security group rule.

    \n
  • \n
  • \n

    \n ip-permission.group-name - The name of a security group that is\n referenced in an inbound security group rule.

    \n
  • \n
  • \n

    \n ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound security\n group rule.

    \n
  • \n
  • \n

    \n ip-permission.prefix-list-id - The ID of a prefix list from which a security group rule allows inbound access.

    \n
  • \n
  • \n

    \n ip-permission.protocol - The IP protocol for an inbound security\n group rule (tcp | udp | icmp, a\n protocol number, or -1 for all protocols).

    \n
  • \n
  • \n

    \n ip-permission.to-port - For an inbound rule, the end of port range\n for the TCP and UDP protocols, or an ICMP code.

    \n
  • \n
  • \n

    \n ip-permission.user-id - The ID of an Amazon Web Services account that has been\n referenced in an inbound security group rule.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner of the security group.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC specified when the security group was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSecurityGroupsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#SecurityGroupList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupInfo", + "smithy.api#documentation": "

Information about the security groups.

", + "smithy.api#xmlName": "securityGroupInfo" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Outpost service link virtual interfaces.

" + } + }, + "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesRequest": { + "type": "structure", + "members": { + "ServiceLinkVirtualInterfaceIds": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the service link virtual interfaces.

", + "smithy.api#xmlName": "ServiceLinkVirtualInterfaceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters to use for narrowing down the request. The following filters are\n supported:

\n
    \n
  • \n

    \n outpost-lag-id - The ID of the Outpost LAG.

    \n
  • \n
  • \n

    \n outpost-arn - The Outpost ARN.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the service link virtual interface.

    \n
  • \n
  • \n

    \n state - The state of the Outpost LAG.

    \n
  • \n
  • \n

    \n vlan - The ID of the address pool.

    \n
  • \n
  • \n

    \n service-link-virtual-interface-id - The ID of the service link virtual interface.

    \n
  • \n
  • \n

    \n local-gateway-virtual-interface-id - The ID of the local gateway virtual interface.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#ServiceLinkMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeServiceLinkVirtualInterfacesResult": { + "type": "structure", + "members": { + "ServiceLinkVirtualInterfaces": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceLinkVirtualInterfaceSet", + "smithy.api#documentation": "

Describes the service link virtual interfaces.

", + "smithy.api#xmlName": "serviceLinkVirtualInterfaceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshotAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSnapshotAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSnapshotAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified snapshot. You can specify only one\n attribute at a time.

\n

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe snapshot attributes", + "documentation": "This example describes the ``createVolumePermission`` attribute on a snapshot with the snapshot ID of ``snap-066877671789bd71b``.", + "input": { + "SnapshotId": "snap-066877671789bd71b", + "Attribute": "createVolumePermission" + }, + "output": { + "SnapshotId": "snap-066877671789bd71b", + "CreateVolumePermissions": [] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeSnapshotAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#SnapshotAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The snapshot attribute you would like to view.

", + "smithy.api#required": {} + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EBS snapshot.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshotAttributeResult": { + "type": "structure", + "members": { + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes.

", + "smithy.api#xmlName": "productCodes" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the EBS snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "CreateVolumePermissions": { + "target": "com.amazonaws.ec2#CreateVolumePermissionList", + "traits": { + "aws.protocols#ec2QueryName": "CreateVolumePermission", + "smithy.api#documentation": "

The users and groups that have the permissions for creating volumes from the\n snapshot.

", + "smithy.api#xmlName": "createVolumePermission" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshotTierStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSnapshotTierStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSnapshotTierStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the storage tier status of one or more Amazon EBS snapshots.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SnapshotTierStatuses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeSnapshotTierStatusMaxResults": { + "type": "integer" + }, + "com.amazonaws.ec2#DescribeSnapshotTierStatusRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n snapshot-id - The snapshot ID.

    \n
  • \n
  • \n

    \n volume-id - The ID of the volume the snapshot is for.

    \n
  • \n
  • \n

    \n last-tiering-operation - The state of the last archive or restore action. (archival-in-progress | archival-completed |\n archival-failed | permanent-restore-in-progress | permanent-restore-completed | permanent-restore-failed | \n\t\ttemporary-restore-in-progress | temporary-restore-completed | temporary-restore-failed)

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSnapshotTierStatusMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshotTierStatusResult": { + "type": "structure", + "members": { + "SnapshotTierStatuses": { + "target": "com.amazonaws.ec2#snapshotTierStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotTierStatusSet", + "smithy.api#documentation": "

Information about the snapshot's storage tier.

", + "smithy.api#xmlName": "snapshotTierStatusSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshots": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSnapshotsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSnapshotsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified EBS snapshots available to you or all of the EBS snapshots\n available to you.

\n

The snapshots available to you include public snapshots, private snapshots that you own,\n and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume\n permissions.

\n

The create volume permissions fall into the following categories:

\n
    \n
  • \n

    \n public: The owner of the snapshot granted create volume\n permissions for the snapshot to the all group. All Amazon Web Services accounts have create\n volume permissions for these snapshots.

    \n
  • \n
  • \n

    \n explicit: The owner of the snapshot granted create volume\n permissions to a specific Amazon Web Services account.

    \n
  • \n
  • \n

    \n implicit: An Amazon Web Services account has implicit create volume permissions\n for all snapshots it owns.

    \n
  • \n
\n

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot\n owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, \n Amazon EC2 returns all snapshots for which you have create volume permissions.

\n

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are\n returned. If you specify an invalid snapshot ID, an error is returned. If you specify a\n snapshot ID for which you do not have access, it is not included in the returned\n results.

\n

If you specify one or more snapshot owners using the OwnerIds option, only\n snapshots from the specified owners and for which you have access are returned. The results\n can include the Amazon Web Services account IDs of the specified owners, amazon for snapshots\n owned by Amazon, or self for snapshots that you own.

\n

If you specify a list of restorable users, only snapshots with create snapshot permissions\n for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots),\n self for snapshots for which you own or have explicit permissions, or\n all for public snapshots.

\n

If you are describing a long list of snapshots, we recommend that you paginate the output to make the\n list more manageable. For more information, see Pagination.

\n

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
", + "smithy.api#examples": [ + { + "title": "To describe a snapshot", + "documentation": "This example describes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``.", + "input": { + "SnapshotIds": [ + "snap-1234567890abcdef0" + ] + }, + "output": { + "Snapshots": [ + { + "Description": "This is my snapshot.", + "VolumeId": "vol-049df61146c4d7901", + "State": "completed", + "VolumeSize": 8, + "Progress": "100%", + "StartTime": "2014-02-28T21:28:32.000Z", + "SnapshotId": "snap-1234567890abcdef0", + "OwnerId": "012345678910" + } + ], + "NextToken": "" + } + }, + { + "title": "To describe snapshots using filters", + "documentation": "This example describes all snapshots owned by the ID 012345678910 that are in the ``pending`` status.", + "input": { + "OwnerIds": [ + "012345678910" + ], + "Filters": [ + { + "Values": [ + "pending" + ], + "Name": "status" + } + ] + }, + "output": { + "Snapshots": [ + { + "Description": "This is my copied snapshot.", + "VolumeId": "vol-1234567890abcdef0", + "State": "pending", + "VolumeSize": 8, + "Progress": "87%", + "StartTime": "2014-02-28T21:37:27.000Z", + "SnapshotId": "snap-066877671789bd71b", + "OwnerId": "012345678910" + } + ], + "NextToken": "" + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Snapshots", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "SnapshotCompleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Snapshots[].State", + "expected": "completed", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Snapshots[].State", + "expected": "error", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeSnapshotsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "OwnerIds": { + "target": "com.amazonaws.ec2#OwnerStringList", + "traits": { + "smithy.api#documentation": "

Scopes the results to snapshots with the specified owners. You can specify a combination of\n Amazon Web Services account IDs, self, and amazon.

", + "smithy.api#xmlName": "Owner" + } + }, + "RestorableByUserIds": { + "target": "com.amazonaws.ec2#RestorableByStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the Amazon Web Services accounts that can create volumes from the snapshot.

", + "smithy.api#xmlName": "RestorableBy" + } + }, + "SnapshotIds": { + "target": "com.amazonaws.ec2#SnapshotIdStringList", + "traits": { + "smithy.api#documentation": "

The snapshot IDs.

\n

Default: Describes the snapshots for which you have create volume permissions.

", + "smithy.api#xmlName": "SnapshotId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n description - A description of the snapshot.

    \n
  • \n
  • \n

    \n encrypted - Indicates whether the snapshot is encrypted\n (true | false)

    \n
  • \n
  • \n

    \n owner-alias - The owner alias, from an Amazon-maintained list \n (amazon). \n This is not the user-configured Amazon Web Services account alias set using the IAM console.\n We recommend that you use the related parameter instead of this filter.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner. We recommend that \n you use the related parameter instead of this filter.

    \n
  • \n
  • \n

    \n progress - The progress of the snapshot, as a percentage (for example,\n 80%).

    \n
  • \n
  • \n

    \n snapshot-id - The snapshot ID.

    \n
  • \n
  • \n

    \n start-time - The time stamp when the snapshot was initiated.

    \n
  • \n
  • \n

    \n status - The status of the snapshot (pending |\n completed | error).

    \n
  • \n
  • \n

    \n storage-tier - The storage tier of the snapshot (archive |\n standard).

    \n
  • \n
  • \n

    \n transfer-type - The type of operation used to create the snapshot (time-based | standard).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n volume-id - The ID of the volume the snapshot is for.

    \n
  • \n
  • \n

    \n volume-size - The size of the volume, in GiB.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSnapshotsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Snapshots": { + "target": "com.amazonaws.ec2#SnapshotList", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotSet", + "smithy.api#documentation": "

Information about the snapshots.

", + "smithy.api#xmlName": "snapshotSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotDatafeedSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the data feed for Spot Instances. For more information, see Spot\n Instance data feed in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe the datafeed for your AWS account", + "documentation": "This example describes the Spot Instance datafeed subscription for your AWS account.", + "output": { + "SpotDatafeedSubscription": { + "OwnerId": "123456789012", + "Prefix": "spotdata", + "Bucket": "my-s3-bucket", + "State": "Active" + } + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotDatafeedSubscription.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionResult": { + "type": "structure", + "members": { + "SpotDatafeedSubscription": { + "target": "com.amazonaws.ec2#SpotDatafeedSubscription", + "traits": { + "aws.protocols#ec2QueryName": "SpotDatafeedSubscription", + "smithy.api#documentation": "

The Spot Instance data feed subscription.

", + "smithy.api#xmlName": "spotDatafeedSubscription" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotDatafeedSubscription.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotFleetInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotFleetInstancesResponse" + }, + "traits": { + "smithy.api#documentation": "

Describes the running instances for the specified Spot Fleet.

", + "smithy.api#examples": [ + { + "title": "To describe the Spot Instances associated with a Spot fleet", + "documentation": "This example lists the Spot Instances associated with the specified Spot fleet.", + "input": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + }, + "output": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "ActiveInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "InstanceType": "m3.medium", + "SpotInstanceRequestId": "sir-08b93456" + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeSpotFleetInstancesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSpotFleetInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#SpotFleetRequestId", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSpotFleetInstancesMaxResults", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotFleetInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetInstancesResponse": { + "type": "structure", + "members": { + "ActiveInstances": { + "target": "com.amazonaws.ec2#ActiveInstanceSet", + "traits": { + "aws.protocols#ec2QueryName": "ActiveInstanceSet", + "smithy.api#documentation": "

The running instances. This list is refreshed periodically and might be out of\n date.

", + "smithy.api#xmlName": "activeInstanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotFleetInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryResponse" + }, + "traits": { + "smithy.api#documentation": "

Describes the events for the specified Spot Fleet request during the specified\n time.

\n

Spot Fleet events are delayed by up to 30 seconds before they can be described. This\n ensures that you can query by the last evaluated time and not miss a recorded event.\n Spot Fleet events are available for 48 hours.

\n

For more information, see Monitor fleet events using Amazon\n EventBridge in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe Spot fleet history", + "documentation": "This example returns the history for the specified Spot fleet starting at the specified time.", + "input": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "StartTime": "2015-05-26T00:00:00Z" + }, + "output": { + "HistoryRecords": [ + { + "Timestamp": "2015-05-26T23:17:20.697Z", + "EventInformation": { + "EventSubType": "submitted" + }, + "EventType": "fleetRequestChange" + }, + { + "Timestamp": "2015-05-26T23:17:20.873Z", + "EventInformation": { + "EventSubType": "active" + }, + "EventType": "fleetRequestChange" + }, + { + "Timestamp": "2015-05-26T23:21:21.712Z", + "EventInformation": { + "InstanceId": "i-1234567890abcdef0", + "EventSubType": "launched" + }, + "EventType": "instanceChange" + }, + { + "Timestamp": "2015-05-26T23:21:21.816Z", + "EventInformation": { + "InstanceId": "i-1234567890abcdef1", + "EventSubType": "launched" + }, + "EventType": "instanceChange" + } + ], + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "StartTime": "2015-05-26T00:00:00Z", + "NextToken": "CpHNsscimcV5oH7bSbub03CI2Qms5+ypNpNm+53MNlR0YcXAkp0xFlfKf91yVxSExmbtma3awYxMFzNA663ZskT0AHtJ6TCb2Z8bQC2EnZgyELbymtWPfpZ1ZbauVg+P+TfGlWxWWB/Vr5dk5d4LfdgA/DRAHUrYgxzrEXAMPLE=" + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#SpotFleetRequestId", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#EventType", + "traits": { + "aws.protocols#ec2QueryName": "EventType", + "smithy.api#documentation": "

The type of events to describe. By default, all events are described.

", + "smithy.api#xmlName": "eventType" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The starting date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#required": {}, + "smithy.api#xmlName": "startTime" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryMaxResults", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotFleetRequestHistory.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryResponse": { + "type": "structure", + "members": { + "HistoryRecords": { + "target": "com.amazonaws.ec2#HistoryRecords", + "traits": { + "aws.protocols#ec2QueryName": "HistoryRecordSet", + "smithy.api#documentation": "

Information about the events in the history of the Spot Fleet request.

", + "smithy.api#xmlName": "historyRecordSet" + } + }, + "LastEvaluatedTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastEvaluatedTime", + "smithy.api#documentation": "

The last date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n All records up to this time were retrieved.

\n

If nextToken indicates that there are more items, this value is not\n present.

", + "smithy.api#xmlName": "lastEvaluatedTime" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The starting date and time for the events, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "startTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotFleetRequestHistory.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotFleetRequestsResponse" + }, + "traits": { + "smithy.api#documentation": "

Describes your Spot Fleet requests.

\n

Spot Fleet requests are deleted 48 hours after they are canceled and their instances\n are terminated.

", + "smithy.api#examples": [ + { + "title": "To describe a Spot fleet request", + "documentation": "This example describes the specified Spot fleet request.", + "input": { + "SpotFleetRequestIds": [ + "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + ] + }, + "output": { + "SpotFleetRequestConfigs": [ + { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "SpotFleetRequestConfig": { + "TargetCapacity": 20, + "LaunchSpecifications": [ + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "cc2.8xlarge", + "ImageId": "ami-1a2b3c4d" + }, + { + "EbsOptimized": false, + "NetworkInterfaces": [ + { + "SubnetId": "subnet-a61dafcf", + "DeviceIndex": 0, + "DeleteOnTermination": false, + "AssociatePublicIpAddress": true, + "SecondaryPrivateIpAddressCount": 0 + } + ], + "InstanceType": "r3.8xlarge", + "ImageId": "ami-1a2b3c4d" + } + ], + "SpotPrice": "0.05", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role" + }, + "SpotFleetRequestState": "active" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SpotFleetRequestConfigs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotFleetRequestIds": { + "target": "com.amazonaws.ec2#SpotFleetRequestIdList", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The IDs of the Spot Fleet requests.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotFleetRequests.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotFleetRequestsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SpotFleetRequestConfigs": { + "target": "com.amazonaws.ec2#SpotFleetRequestConfigSet", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestConfigSet", + "smithy.api#documentation": "

Information about the configuration of your Spot Fleet.

", + "smithy.api#xmlName": "spotFleetRequestConfigSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotFleetRequests.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotInstanceRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotInstanceRequestsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotInstanceRequestsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Spot Instance requests.

\n

You can use DescribeSpotInstanceRequests to find a running Spot Instance by\n examining the response. If the status of the Spot Instance is fulfilled, the\n instance ID appears in the response and contains the identifier of the instance.\n Alternatively, you can use DescribeInstances\n with a filter to look for instances where the instance lifecycle is\n spot.

\n

We recommend that you set MaxResults to a value between 5 and 1000 to\n limit the number of items returned. This paginates the output, which makes the list\n more manageable and returns the items faster. If the list of items exceeds your\n MaxResults value, then that number of items is returned along with a\n NextToken value that can be passed to a subsequent\n DescribeSpotInstanceRequests request to retrieve the remaining\n items.

\n

Spot Instance requests are deleted four hours after they are canceled and their instances are\n terminated.

", + "smithy.api#examples": [ + { + "title": "To describe a Spot Instance request", + "documentation": "This example describes the specified Spot Instance request.", + "input": { + "SpotInstanceRequestIds": [ + "sir-08b93456" + ] + }, + "output": { + "SpotInstanceRequests": [ + { + "Status": { + "UpdateTime": "2014-04-30T18:16:21.000Z", + "Code": "fulfilled", + "Message": "Your Spot request is fulfilled." + }, + "ProductDescription": "Linux/UNIX", + "InstanceId": "i-1234567890abcdef0", + "SpotInstanceRequestId": "sir-08b93456", + "State": "active", + "LaunchedAvailabilityZone": "us-west-1b", + "LaunchSpecification": { + "ImageId": "ami-7aba833f", + "KeyName": "my-key-pair", + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sda1", + "Ebs": { + "DeleteOnTermination": true, + "VolumeType": "standard", + "VolumeSize": 8 + } + } + ], + "EbsOptimized": false, + "SecurityGroups": [ + { + "GroupName": "my-security-group", + "GroupId": "sg-e38f24a7" + } + ], + "InstanceType": "m1.small" + }, + "Type": "one-time", + "CreateTime": "2014-04-30T18:14:55.000Z", + "SpotPrice": "0.010000" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SpotInstanceRequests", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "SpotInstanceRequestFulfilled": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "fulfilled", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "request-canceled-and-instance-running", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "schedule-expired", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "canceled-before-fulfillment", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "bad-parameters", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "SpotInstanceRequests[].Status.Code", + "expected": "system-error", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidSpotInstanceRequestID.NotFound" + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeSpotInstanceRequestsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotInstanceRequestIds": { + "target": "com.amazonaws.ec2#SpotInstanceRequestIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Spot Instance requests.

", + "smithy.api#xmlName": "SpotInstanceRequestId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone-group - The Availability Zone group.

    \n
  • \n
  • \n

    \n create-time - The time stamp when the Spot Instance request was\n created.

    \n
  • \n
  • \n

    \n fault-code - The fault code related to the request.

    \n
  • \n
  • \n

    \n fault-message - The fault message related to the request.

    \n
  • \n
  • \n

    \n instance-id - The ID of the instance that fulfilled the\n request.

    \n
  • \n
  • \n

    \n launch-group - The Spot Instance launch group.

    \n
  • \n
  • \n

    \n launch.block-device-mapping.delete-on-termination - Indicates\n whether the EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n launch.block-device-mapping.device-name - The device name for the\n volume in the block device mapping (for example, /dev/sdh or\n xvdh).

    \n
  • \n
  • \n

    \n launch.block-device-mapping.snapshot-id - The ID of the snapshot\n for the EBS volume.

    \n
  • \n
  • \n

    \n launch.block-device-mapping.volume-size - The size of the EBS\n volume, in GiB.

    \n
  • \n
  • \n

    \n launch.block-device-mapping.volume-type - The type of EBS volume:\n gp2 or gp3 for General Purpose SSD, io1 \n or io2 for Provisioned IOPS SSD, st1 for Throughput\n Optimized HDD, sc1 for Cold HDD, or standard for\n Magnetic.

    \n
  • \n
  • \n

    \n launch.group-id - The ID of the security group for the\n instance.

    \n
  • \n
  • \n

    \n launch.group-name - The name of the security group for the\n instance.

    \n
  • \n
  • \n

    \n launch.image-id - The ID of the AMI.

    \n
  • \n
  • \n

    \n launch.instance-type - The type of instance (for example,\n m3.medium).

    \n
  • \n
  • \n

    \n launch.kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n launch.key-name - The name of the key pair the instance launched\n with.

    \n
  • \n
  • \n

    \n launch.monitoring-enabled - Whether detailed monitoring is\n enabled for the Spot Instance.

    \n
  • \n
  • \n

    \n launch.ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n launched-availability-zone - The Availability Zone in which the\n request is launched.

    \n
  • \n
  • \n

    \n launched-availability-zone-id - The ID of the Availability Zone\n in which the request is launched.

    \n
  • \n
  • \n

    \n network-interface.addresses.primary - Indicates whether the IP\n address is the primary private IP address.

    \n
  • \n
  • \n

    \n network-interface.delete-on-termination - Indicates whether the\n network interface is deleted when the instance is terminated.

    \n
  • \n
  • \n

    \n network-interface.description - A description of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.device-index - The index of the device for the\n network interface attachment on the instance.

    \n
  • \n
  • \n

    \n network-interface.group-id - The ID of the security group\n associated with the network interface.

    \n
  • \n
  • \n

    \n network-interface.network-interface-id - The ID of the network\n interface.

    \n
  • \n
  • \n

    \n network-interface.private-ip-address - The primary private IP\n address of the network interface.

    \n
  • \n
  • \n

    \n network-interface.subnet-id - The ID of the subnet for the\n instance.

    \n
  • \n
  • \n

    \n product-description - The product description associated with the\n instance (Linux/UNIX | Windows).

    \n
  • \n
  • \n

    \n spot-instance-request-id - The Spot Instance request ID.

    \n
  • \n
  • \n

    \n spot-price - The maximum hourly price for any Spot Instance\n launched to fulfill the request.

    \n
  • \n
  • \n

    \n state - The state of the Spot Instance request (open\n | active | closed | cancelled |\n failed). Spot request status information can help you track\n your Amazon EC2 Spot Instance requests. For more information, see Spot\n request status in the Amazon EC2 User Guide.

    \n
  • \n
  • \n

    \n status-code - The short code describing the most recent\n evaluation of your Spot Instance request.

    \n
  • \n
  • \n

    \n status-message - The message explaining the status of the Spot\n Instance request.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n type - The type of Spot Instance request (one-time |\n persistent).

    \n
  • \n
  • \n

    \n valid-from - The start date of the request.

    \n
  • \n
  • \n

    \n valid-until - The end date of the request.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotInstanceRequests.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotInstanceRequestsResult": { + "type": "structure", + "members": { + "SpotInstanceRequests": { + "target": "com.amazonaws.ec2#SpotInstanceRequestList", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestSet", + "smithy.api#documentation": "

The Spot Instance requests.

", + "smithy.api#xmlName": "spotInstanceRequestSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotInstanceRequests.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSpotPriceHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSpotPriceHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSpotPriceHistoryResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Spot price history. For more information, see Spot Instance pricing history in the\n Amazon EC2 User Guide.

\n

When you specify a start and end time, the operation returns the prices of the\n instance types within that time range. It also returns the last price change before the\n start time, which is the effective price as of the start time.

", + "smithy.api#examples": [ + { + "title": "To describe Spot price history for Linux/UNIX (Amazon VPC)", + "documentation": "This example returns the Spot Price history for m1.xlarge, Linux/UNIX (Amazon VPC) instances for a particular day in January.", + "input": { + "StartTime": "2014-01-06T07:08:09.05Z", + "EndTime": "2014-01-06T08:09:10.05Z", + "InstanceTypes": [ + "m1.xlarge" + ], + "ProductDescriptions": [ + "Linux/UNIX (Amazon VPC)" + ] + }, + "output": { + "SpotPriceHistory": [ + { + "Timestamp": "2014-01-06T04:32:53.000Z", + "ProductDescription": "Linux/UNIX (Amazon VPC)", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.080000", + "AvailabilityZone": "us-west-1a" + }, + { + "Timestamp": "2014-01-05T11:28:26.000Z", + "ProductDescription": "Linux/UNIX (Amazon VPC)", + "InstanceType": "m1.xlarge", + "SpotPrice": "0.080000", + "AvailabilityZone": "us-west-1c" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SpotPriceHistory", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeSpotPriceHistoryRequest": { + "type": "structure", + "members": { + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

Filters the results by the specified ID of the Availability Zone.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The date and time, up to the past 90 days, from which to start retrieving the price\n history data, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "startTime" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndTime", + "smithy.api#documentation": "

The date and time, up to the current date, from which to stop retrieving the price\n history data, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "endTime" + } + }, + "InstanceTypes": { + "target": "com.amazonaws.ec2#InstanceTypeList", + "traits": { + "smithy.api#documentation": "

Filters the results by the specified instance types.

", + "smithy.api#xmlName": "InstanceType" + } + }, + "ProductDescriptions": { + "target": "com.amazonaws.ec2#ProductDescriptionList", + "traits": { + "smithy.api#documentation": "

Filters the results by the specified basic product descriptions.

", + "smithy.api#xmlName": "ProductDescription" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone for which prices should\n be returned.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone for which\n prices should be returned.

    \n
  • \n
  • \n

    \n instance-type - The type of instance (for example,\n m3.medium).

    \n
  • \n
  • \n

    \n product-description - The product description for the Spot price\n (Linux/UNIX | Red Hat Enterprise Linux |\n SUSE Linux | Windows | Linux/UNIX (Amazon\n VPC) | Red Hat Enterprise Linux (Amazon VPC) |\n SUSE Linux (Amazon VPC) | Windows (Amazon\n VPC)).

    \n
  • \n
  • \n

    \n spot-price - The Spot price. The value must match exactly (or use\n wildcards; greater than or less than comparison is not supported).

    \n
  • \n
  • \n

    \n timestamp - The time stamp of the Spot price history, in UTC format\n (for example, ddd MMM dd\n HH:mm:ss UTC\n YYYY). You can use wildcards (* and\n ?). Greater than or less than comparison is not\n supported.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

Filters the results by the specified Availability Zone.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeSpotPriceHistory.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSpotPriceHistoryResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is\n an empty string (\"\") or null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SpotPriceHistory": { + "target": "com.amazonaws.ec2#SpotPriceHistoryList", + "traits": { + "aws.protocols#ec2QueryName": "SpotPriceHistorySet", + "smithy.api#documentation": "

The historical Spot prices.

", + "smithy.api#xmlName": "spotPriceHistorySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeSpotPriceHistory.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeStaleSecurityGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the stale security group rules for security groups referenced across a VPC\n peering connection, transit gateway connection, or with a security group VPC\n association. Rules are stale when they reference a deleted security group. Rules can\n also be stale if they reference a security group in a peer VPC for which the VPC peering\n connection has been deleted, across a transit gateway where the transit gateway has been\n deleted (or the transit\n gateway security group referencing feature has been disabled), or if a\n security group VPC association has been disassociated.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StaleSecurityGroupSet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeStaleSecurityGroupsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#DescribeStaleSecurityGroupsNextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.ec2#DescribeStaleSecurityGroupsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items,\n make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsNextToken", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeStaleSecurityGroupsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "StaleSecurityGroupSet": { + "target": "com.amazonaws.ec2#StaleSecurityGroupSet", + "traits": { + "aws.protocols#ec2QueryName": "StaleSecurityGroupSet", + "smithy.api#documentation": "

Information about the stale security groups.

", + "smithy.api#xmlName": "staleSecurityGroupSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeStoreImageTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeStoreImageTasksRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeStoreImageTasksResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the progress of the AMI store tasks. You can describe the store tasks for\n specified AMIs. If you don't specify the AMIs, you get a paginated list of store tasks from\n the last 31 days.

\n

For each AMI task, the response indicates if the task is InProgress,\n Completed, or Failed. For tasks InProgress, the\n response shows the estimated progress as a percentage.

\n

Tasks are listed in reverse chronological order. Currently, only tasks from the past 31\n days can be viewed.

\n

To use this API, you must have the required permissions. For more information, see Permissions for storing and restoring AMIs using S3 in the\n Amazon EC2 User Guide.

\n

For more information, see Store and restore an AMI using\n S3 in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "StoreImageTaskResults", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "StoreImageTaskComplete": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "StoreImageTaskResults[].StoreTaskState", + "expected": "Completed", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "StoreImageTaskResults[].StoreTaskState", + "expected": "Failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "StoreImageTaskResults[].StoreTaskState", + "expected": "InProgress", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.ec2#DescribeStoreImageTasksRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#ImageIdList", + "traits": { + "smithy.api#documentation": "

The AMI IDs for which to show progress. Up to 20 AMI IDs can be included in a\n request.

", + "smithy.api#xmlName": "ImageId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n task-state - Returns tasks in a certain state (InProgress |\n Completed | Failed)

    \n
  • \n
  • \n

    \n bucket - Returns task information for tasks that targeted a specific\n bucket. For the filter value, specify the bucket name.

    \n
  • \n
\n \n

When you specify the ImageIds parameter, any filters that you specify are\n ignored. To use the filters, you must remove the ImageIds parameter.

\n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeStoreImageTasksRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

\n

You cannot specify this parameter and the ImageIds parameter in the same\n call.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeStoreImageTasksRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeStoreImageTasksResult": { + "type": "structure", + "members": { + "StoreImageTaskResults": { + "target": "com.amazonaws.ec2#StoreImageTaskResultSet", + "traits": { + "aws.protocols#ec2QueryName": "StoreImageTaskResultSet", + "smithy.api#documentation": "

The information about the AMI store tasks.

", + "smithy.api#xmlName": "storeImageTaskResultSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeSubnets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeSubnetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeSubnetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your subnets. The default is to describe all your subnets. \n Alternatively, you can specify specific subnet IDs or filter the results to\n include only the subnets that match specific criteria.

\n

For more information, see Subnets in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe the subnets for a VPC", + "documentation": "This example describes the subnets for the specified VPC.", + "input": { + "Filters": [ + { + "Name": "vpc-id", + "Values": [ + "vpc-a01106c2" + ] + } + ] + }, + "output": { + "Subnets": [ + { + "VpcId": "vpc-a01106c2", + "CidrBlock": "10.0.1.0/24", + "MapPublicIpOnLaunch": false, + "DefaultForAz": false, + "State": "available", + "AvailabilityZone": "us-east-1c", + "SubnetId": "subnet-9d4a7b6c", + "AvailableIpAddressCount": 251 + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Subnets", + "pageSize": "MaxResults" + }, + "smithy.waiters#waitable": { + "SubnetAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Subnets[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeSubnetsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeSubnetsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone for the subnet. You can also use\n availabilityZone as the filter name.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone for the subnet.\n You can also use availabilityZoneId as the filter name.

    \n
  • \n
  • \n

    \n available-ip-address-count - The number of IPv4 addresses in the\n subnet that are available.

    \n
  • \n
  • \n

    \n cidr-block - The IPv4 CIDR block of the subnet. The CIDR block\n you specify must exactly match the subnet's CIDR block for information to be\n returned for the subnet. You can also use cidr or\n cidrBlock as the filter names.

    \n
  • \n
  • \n

    \n customer-owned-ipv4-pool - The customer-owned IPv4 address pool\n associated with the subnet.

    \n
  • \n
  • \n

    \n default-for-az - Indicates whether this is the default subnet for\n the Availability Zone (true | false). You can also use\n defaultForAz as the filter name.

    \n
  • \n
  • \n

    \n enable-dns64 - Indicates whether DNS queries made to the\n Amazon-provided DNS Resolver in this subnet should return synthetic IPv6\n addresses for IPv4-only destinations.

    \n
  • \n
  • \n

    \n enable-lni-at-device-index - Indicates the device position for\n local network interfaces in this subnet. For example, 1 indicates\n local network interfaces in this subnet are the secondary network interface\n (eth1).

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR\n block associated with the subnet.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.association-id - An association ID\n for an IPv6 CIDR block associated with the subnet.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.state - The state of an IPv6 CIDR\n block associated with the subnet.

    \n
  • \n
  • \n

    \n ipv6-native - Indicates whether this is an IPv6 only subnet\n (true | false).

    \n
  • \n
  • \n

    \n map-customer-owned-ip-on-launch - Indicates whether a network\n interface created in this subnet (including a network interface created by RunInstances) receives a customer-owned IPv4 address.

    \n
  • \n
  • \n

    \n map-public-ip-on-launch - Indicates whether instances launched in\n this subnet receive a public IPv4 address.

    \n
  • \n
  • \n

    \n outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the\n subnet.

    \n
  • \n
  • \n

    \n private-dns-name-options-on-launch.hostname-type - The type of\n hostname to assign to instances in the subnet at launch. For IPv4-only and\n dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be based on the\n instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6\n only subnets, an instance DNS name must be based on the instance ID\n (resource-name).

    \n
  • \n
  • \n

    \n private-dns-name-options-on-launch.enable-resource-name-dns-a-record\n - Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

    \n
  • \n
  • \n

    \n private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record\n - Indicates whether to respond to DNS queries for instance hostnames with DNS\n AAAA records.

    \n
  • \n
  • \n

    \n state - The state of the subnet (pending | available).

    \n
  • \n
  • \n

    \n subnet-arn - The Amazon Resource Name (ARN) of the subnet.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC for the subnet.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#SubnetIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets.

\n

Default: Describes all your subnets.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeSubnetsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeSubnetsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Subnets": { + "target": "com.amazonaws.ec2#SubnetList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetSet", + "smithy.api#documentation": "

Information about the subnets.

", + "smithy.api#xmlName": "subnetSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTagsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTagsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified tags for your EC2 resources.

\n

For more information about tags, see Tag your Amazon EC2 resources in the\n Amazon Elastic Compute Cloud User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe the tags for a single resource", + "documentation": "This example describes the tags for the specified instance.", + "input": { + "Filters": [ + { + "Name": "resource-id", + "Values": [ + "i-1234567890abcdef8" + ] + } + ] + }, + "output": { + "Tags": [ + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "test", + "Key": "Stack" + }, + { + "ResourceType": "instance", + "ResourceId": "i-1234567890abcdef8", + "Value": "Beta Server", + "Key": "Name" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Tags", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTagsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n key - The tag key.

    \n
  • \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type. For a list of possible values, see \n TagSpecification.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of the tag. For example,\n specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find\n resources with the tag \"Owner=TeamA\".

    \n
  • \n
  • \n

    \n value - The tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request. This value can be between 5 and 1000. \n To get the next page of items, make another request with the token returned in the output.\n For more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTagsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagDescriptionList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFilterRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Describe traffic mirror filters that determine the traffic that is mirrored.

" + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterRuleIds": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleIdList", + "traits": { + "smithy.api#documentation": "

Traffic filter rule IDs.

", + "smithy.api#xmlName": "TrafficMirrorFilterRuleId" + } + }, + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#documentation": "

Traffic filter ID.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Traffic mirror filters.

\n
    \n
  • \n

    \n traffic-mirror-filter-rule-id: The ID of the Traffic Mirror rule.

    \n
  • \n
  • \n

    \n traffic-mirror-filter-id: The ID of the filter that this rule is associated with.

    \n
  • \n
  • \n

    \n rule-number: The number of the Traffic Mirror rule.

    \n
  • \n
  • \n

    \n rule-action: The action taken on the filtered traffic. Possible actions are accept and reject.

    \n
  • \n
  • \n

    \n traffic-direction: The traffic direction. Possible directions are ingress and egress.

    \n
  • \n
  • \n

    \n protocol: The protocol, for example UDP, assigned to the Traffic Mirror rule.

    \n
  • \n
  • \n

    \n source-cidr-block: The source CIDR block assigned to the Traffic Mirror rule.

    \n
  • \n
  • \n

    \n destination-cidr-block: The destination CIDR block assigned to the Traffic Mirror rule.

    \n
  • \n
  • \n

    \n description: The description of the Traffic Mirror rule.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TrafficMirroringMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFilterRulesResult": { + "type": "structure", + "members": { + "TrafficMirrorFilterRules": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleSet", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterRuleSet", + "smithy.api#documentation": "

Traffic mirror rules.

", + "smithy.api#xmlName": "trafficMirrorFilterRuleSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. The value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFilters": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFiltersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorFiltersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Traffic Mirror filters.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TrafficMirrorFilters", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFiltersRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterIds": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#xmlName": "TrafficMirrorFilterId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n description: The Traffic Mirror filter description.

    \n
  • \n
  • \n

    \n traffic-mirror-filter-id: The ID of the Traffic Mirror filter.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TrafficMirroringMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorFiltersResult": { + "type": "structure", + "members": { + "TrafficMirrorFilters": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterSet", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterSet", + "smithy.api#documentation": "

Information about one or more Traffic Mirror filters.

", + "smithy.api#xmlName": "trafficMirrorFilterSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. The value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorSessions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorSessionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorSessionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror sessions are described. Alternatively, you can filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TrafficMirrorSessions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorSessionsRequest": { + "type": "structure", + "members": { + "TrafficMirrorSessionIds": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Traffic Mirror session.

", + "smithy.api#xmlName": "TrafficMirrorSessionId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n description: The Traffic Mirror session description.

    \n
  • \n
  • \n

    \n network-interface-id: The ID of the Traffic Mirror session network interface.

    \n
  • \n
  • \n

    \n owner-id: The ID of the account that owns the Traffic Mirror session.

    \n
  • \n
  • \n

    \n packet-length: The assigned number of packets to mirror.

    \n
  • \n
  • \n

    \n session-number: The assigned session number.

    \n
  • \n
  • \n

    \n traffic-mirror-filter-id: The ID of the Traffic Mirror filter.

    \n
  • \n
  • \n

    \n traffic-mirror-session-id: The ID of the Traffic Mirror session.

    \n
  • \n
  • \n

    \n traffic-mirror-target-id: The ID of the Traffic Mirror target.

    \n
  • \n
  • \n

    \n virtual-network-id: The virtual network ID of the Traffic Mirror session.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TrafficMirroringMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorSessionsResult": { + "type": "structure", + "members": { + "TrafficMirrorSessions": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionSet", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorSessionSet", + "smithy.api#documentation": "

Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror sessions are described. Alternatively, you can filter the results.

", + "smithy.api#xmlName": "trafficMirrorSessionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. The value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorTargetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTrafficMirrorTargetsResult" + }, + "traits": { + "smithy.api#documentation": "

Information about one or more Traffic Mirror targets.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TrafficMirrorTargets", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorTargetsRequest": { + "type": "structure", + "members": { + "TrafficMirrorTargetIds": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Traffic Mirror targets.

", + "smithy.api#xmlName": "TrafficMirrorTargetId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n description: The Traffic Mirror target description.

    \n
  • \n
  • \n

    \n network-interface-id: The ID of the Traffic Mirror session network interface.

    \n
  • \n
  • \n

    \n network-load-balancer-arn: The Amazon Resource Name (ARN) of the Network Load Balancer that is associated with the session.

    \n
  • \n
  • \n

    \n owner-id: The ID of the account that owns the Traffic Mirror session.

    \n
  • \n
  • \n

    \n traffic-mirror-target-id: The ID of the Traffic Mirror target.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TrafficMirroringMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTrafficMirrorTargetsResult": { + "type": "structure", + "members": { + "TrafficMirrorTargets": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetSet", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorTargetSet", + "smithy.api#documentation": "

Information about one or more Traffic Mirror targets.

", + "smithy.api#xmlName": "trafficMirrorTargetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. The value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayAttachments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more attachments between resources and transit gateways. By default, all attachments are described.\n Alternatively, you can filter the results by attachment ID, attachment state, resource ID, or resource owner.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayAttachments", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the attachments.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n association.state - The state of the association (associating | associated |\n disassociating).

    \n
  • \n
  • \n

    \n association.transit-gateway-route-table-id - The ID of the route table for the transit gateway.

    \n
  • \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-owner-id - The ID of the Amazon Web Services account that owns the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type. Valid values are vpc\n | vpn | direct-connect-gateway | peering\n | connect.

    \n
  • \n
  • \n

    \n state - The state of the attachment. Valid values are available | deleted | deleting | failed | failing | initiatingRequest | modifying | pendingAcceptance | pending | rollingBack | rejected | rejecting.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n transit-gateway-owner-id - The ID of the Amazon Web Services account that owns the transit gateway.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayAttachmentsResult": { + "type": "structure", + "members": { + "TransitGatewayAttachments": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachments", + "smithy.api#documentation": "

Information about the attachments.

", + "smithy.api#xmlName": "transitGatewayAttachments" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnectPeers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Connect peers.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayConnectPeers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersRequest": { + "type": "structure", + "members": { + "TransitGatewayConnectPeerIds": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the Connect peers.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n state - The state of the Connect peer (pending |\n available | deleting |\n deleted).

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
  • \n

    \n transit-gateway-connect-peer-id - The ID of the Connect peer.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnectPeersResult": { + "type": "structure", + "members": { + "TransitGatewayConnectPeers": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnectPeerSet", + "smithy.api#documentation": "

Information about the Connect peers.

", + "smithy.api#xmlName": "transitGatewayConnectPeerSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnects": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnectsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayConnectsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Connect attachments.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayConnects", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnectsRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the attachments.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n options.protocol - The tunnel protocol (gre).

    \n
  • \n
  • \n

    \n state - The state of the attachment (initiating |\n initiatingRequest | pendingAcceptance |\n rollingBack | pending | available |\n modifying | deleting | deleted |\n failed | rejected | rejecting |\n failing).

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the\n Connect attachment.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n transport-transit-gateway-attachment-id - The ID of the transit gateway attachment from which the Connect attachment was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayConnectsResult": { + "type": "structure", + "members": { + "TransitGatewayConnects": { + "target": "com.amazonaws.ec2#TransitGatewayConnectList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnectSet", + "smithy.api#documentation": "

Information about the Connect attachments.

", + "smithy.api#xmlName": "transitGatewayConnectSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMeteringPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateway metering policies.

" + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyIds": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the transit gateway metering policies to describe.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply when describing transit gateway metering policies.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMeteringPoliciesResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicies": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicies", + "smithy.api#documentation": "

Information about the transit gateway metering policies.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicies" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomains": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateway multicast domains.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayMulticastDomains", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainIds": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainIdStringList", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n state - The state of the transit gateway multicast domain. Valid values are pending | available | deleting | deleted.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n transit-gateway-multicast-domain-id - The ID of the transit gateway multicast domain.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayMulticastDomainsResult": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomains": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomains", + "smithy.api#documentation": "

Information about the transit gateway multicast domains.

", + "smithy.api#xmlName": "transitGatewayMulticastDomains" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your transit gateway peering attachments.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayPeeringAttachments", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

One or more IDs of the transit gateway peering attachments.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n transit-gateway-attachment-id - The ID of the transit gateway attachment.

    \n
  • \n
  • \n

    \n local-owner-id - The ID of your Amazon Web Services account.

    \n
  • \n
  • \n

    \n remote-owner-id - The ID of the Amazon Web Services account in the remote Region that owns the transit gateway.

    \n
  • \n
  • \n

    \n state - The state of the peering attachment. Valid values are available | deleted | deleting | failed | failing | initiatingRequest | modifying | pendingAcceptance | pending | rollingBack | rejected | rejecting).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPeeringAttachmentsResult": { + "type": "structure", + "members": { + "TransitGatewayPeeringAttachments": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPeeringAttachments", + "smithy.api#documentation": "

The transit gateway peering attachments.

", + "smithy.api#xmlName": "transitGatewayPeeringAttachments" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPolicyTables": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateway route policy tables.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayPolicyTables", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableIds": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the transit gateway policy tables.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters associated with the transit gateway policy table.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayPolicyTablesResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTables": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTables", + "smithy.api#documentation": "

Describes the transit gateway policy tables.

", + "smithy.api#xmlName": "transitGatewayPolicyTables" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token for the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncements": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateway route table advertisements.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayRouteTableAnnouncements", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncementIds": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the transit gateway route tables that are being advertised.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters associated with the transit gateway policy table.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTableAnnouncementsResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncements": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncements", + "smithy.api#documentation": "

Describes the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncements" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token for the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTables": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateway route tables. By default, all transit gateway route tables are described.\n Alternatively, you can filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayRouteTables", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableIds": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the transit gateway route tables.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n default-association-route-table - Indicates whether this is the default\n association route table for the transit gateway (true | false).

    \n
  • \n
  • \n

    \n default-propagation-route-table - Indicates whether this is the default\n propagation route table for the transit gateway (true | false).

    \n
  • \n
  • \n

    \n state - The state of the route table (available | deleting | deleted | pending).

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n transit-gateway-route-table-id - The ID of the transit gateway route table.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayRouteTablesResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTables": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTables", + "smithy.api#documentation": "

Information about the transit gateway route tables.

", + "smithy.api#xmlName": "transitGatewayRouteTables" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more VPC attachments. By default, all VPC attachments are described.\n Alternatively, you can filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayVpcAttachments", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the attachments.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n state - The state of the attachment. Valid values are available | deleted | deleting | failed | failing | initiatingRequest | modifying | pendingAcceptance | pending | rollingBack | rejected | rejecting.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewayVpcAttachmentsResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachments": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachments", + "smithy.api#documentation": "

Information about the VPC attachments.

", + "smithy.api#xmlName": "transitGatewayVpcAttachments" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTransitGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTransitGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more transit gateways. By default, all transit gateways are described. Alternatively, you can\n filter the results.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGateways", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTransitGatewaysRequest": { + "type": "structure", + "members": { + "TransitGatewayIds": { + "target": "com.amazonaws.ec2#TransitGatewayIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the transit gateways.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n options.propagation-default-route-table-id - The ID of the default propagation route table.

    \n
  • \n
  • \n

    \n options.amazon-side-asn - The private ASN for the Amazon side of a BGP session.

    \n
  • \n
  • \n

    \n options.association-default-route-table-id - The ID of the default association route table.

    \n
  • \n
  • \n

    \n options.auto-accept-shared-attachments - Indicates whether there is automatic acceptance of attachment requests (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-association - Indicates whether resource attachments are automatically \n associated with the default association route table (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-propagation - Indicates whether resource attachments automatically propagate \n routes to the default propagation route table (enable | disable).

    \n
  • \n
  • \n

    \n options.dns-support - Indicates whether DNS support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n options.vpn-ecmp-support - Indicates whether Equal Cost Multipath Protocol support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the transit gateway.

    \n
  • \n
  • \n

    \n state - The state of the transit gateway (available | deleted | deleting | modifying | pending).

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n tag-key - The key/value combination of a tag assigned to the resource. Use the\n tag key in the filter name and the tag value as the filter value. For example, to\n find all resources that have a tag with the key Owner and the value TeamA, specify\n tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTransitGatewaysResult": { + "type": "structure", + "members": { + "TransitGateways": { + "target": "com.amazonaws.ec2#TransitGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewaySet", + "smithy.api#documentation": "

Information about the transit gateways.

", + "smithy.api#xmlName": "transitGatewaySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeTrunkInterfaceAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more network interface trunk associations.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InterfaceAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsRequest": { + "type": "structure", + "members": { + "AssociationIds": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociationIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the associations.

", + "smithy.api#xmlName": "AssociationId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n gre-key - The ID of a trunk interface association.

    \n
  • \n
  • \n

    \n interface-protocol - The interface protocol. Valid values are VLAN and GRE.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsResult": { + "type": "structure", + "members": { + "InterfaceAssociations": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceAssociationSet", + "smithy.api#documentation": "

Information about the trunk associations.

", + "smithy.api#xmlName": "interfaceAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Amazon Web Services Verified Access endpoints.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VerifiedAccessEndpoints", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointIds": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#xmlName": "VerifiedAccessEndpointId" + } + }, + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access instance.

" + } + }, + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access group.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsResult": { + "type": "structure", + "members": { + "VerifiedAccessEndpoints": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointSet", + "smithy.api#documentation": "

Details about the Verified Access endpoints.

", + "smithy.api#xmlName": "verifiedAccessEndpointSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessGroupMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Verified Access groups.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VerifiedAccessGroups", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessGroupsRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupIds": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupIdList", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access groups.

", + "smithy.api#xmlName": "VerifiedAccessGroupId" + } + }, + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access instance.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessGroupMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessGroupsResult": { + "type": "structure", + "members": { + "VerifiedAccessGroups": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroupSet", + "smithy.api#documentation": "

Details about the Verified Access groups.

", + "smithy.api#xmlName": "verifiedAccessGroupSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Amazon Web Services Verified Access instances.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "LoggingConfigurations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceIds": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Verified Access instances.

", + "smithy.api#xmlName": "VerifiedAccessInstanceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsResult": { + "type": "structure", + "members": { + "LoggingConfigurations": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceLoggingConfigurationList", + "traits": { + "aws.protocols#ec2QueryName": "LoggingConfigurationSet", + "smithy.api#documentation": "

The logging configuration for the Verified Access instances.

", + "smithy.api#xmlName": "loggingConfigurationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Amazon Web Services Verified Access instances.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VerifiedAccessInstances", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstancesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstancesRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceIds": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Verified Access instances.

", + "smithy.api#xmlName": "VerifiedAccessInstanceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstancesMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessInstancesResult": { + "type": "structure", + "members": { + "VerifiedAccessInstances": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceSet", + "smithy.api#documentation": "

Details about the Verified Access instances.

", + "smithy.api#xmlName": "verifiedAccessInstanceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessTrustProviders": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified Amazon Web Services Verified Access trust providers.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VerifiedAccessTrustProviders", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 200 + } + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersRequest": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviderIds": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Verified Access trust providers.

", + "smithy.api#xmlName": "VerifiedAccessTrustProviderId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviders": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProviderSet", + "smithy.api#documentation": "

Details about the Verified Access trust providers.

", + "smithy.api#xmlName": "verifiedAccessTrustProviderSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVolumeAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVolumeAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVolumeAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified volume. You can specify only one\n attribute at a time.

\n

For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a volume attribute", + "documentation": "This example describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``.", + "input": { + "VolumeId": "vol-049df61146c4d7901", + "Attribute": "autoEnableIO" + }, + "output": { + "AutoEnableIO": { + "Value": false + }, + "VolumeId": "vol-049df61146c4d7901" + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeVolumeAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#VolumeAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attribute of the volume. This parameter is required.

", + "smithy.api#required": {} + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVolumeAttributeResult": { + "type": "structure", + "members": { + "AutoEnableIO": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "AutoEnableIO", + "smithy.api#documentation": "

The state of autoEnableIO attribute.

", + "smithy.api#xmlName": "autoEnableIO" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

A list of product codes.

", + "smithy.api#xmlName": "productCodes" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#xmlName": "volumeId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVolumeStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVolumeStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVolumeStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the status of the specified volumes. Volume status provides the result of the\n checks performed on your volumes to determine events that can impair the performance of your\n volumes. The performance of a volume can be affected if an issue occurs on the volume's\n underlying host. If the volume's underlying host experiences a power outage or system issue,\n after the system is restored, there could be data inconsistencies on the volume. Volume events\n notify you if this occurs. Volume actions notify you if any action needs to be taken in\n response to the event.

\n

The DescribeVolumeStatus operation provides the following information about\n the specified volumes:

\n

\n Status: Reflects the current status of the volume. The possible\n values are ok, impaired , warning, or\n insufficient-data. If all checks pass, the overall status of the volume is\n ok. If the check fails, the overall status is impaired. If the\n status is insufficient-data, then the checks might still be taking place on your\n volume at the time. We recommend that you retry the request. For more information about volume\n status, see Monitor the status of your volumes in the Amazon EBS User Guide.

\n

\n Events: Reflect the cause of a volume status and might require you to\n take action. For example, if your volume returns an impaired status, then the\n volume event might be potential-data-inconsistency. This means that your volume\n has been affected by an issue with the underlying host, has all I/O operations disabled, and\n might have inconsistent data.

\n

\n Actions: Reflect the actions you might have to take in response to an\n event. For example, if the status of the volume is impaired and the volume event\n shows potential-data-inconsistency, then the action shows\n enable-volume-io. This means that you may want to enable the I/O operations for\n the volume and then check the volume for data consistency. For more information, see \n Work with an \n impaired EBS volume.

\n

Volume status is based on the volume status checks, and does not reflect the volume state.\n Therefore, volume status does not indicate volumes in the error state (for\n example, when a volume is incapable of accepting I/O.)

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe the status of a single volume", + "documentation": "This example describes the status for the volume ``vol-1234567890abcdef0``.", + "input": { + "VolumeIds": [ + "vol-1234567890abcdef0" + ] + }, + "output": { + "VolumeStatuses": [ + { + "VolumeStatus": { + "Status": "ok", + "Details": [ + { + "Status": "passed", + "Name": "io-enabled" + }, + { + "Status": "not-applicable", + "Name": "io-performance" + } + ] + }, + "AvailabilityZone": "us-east-1a", + "VolumeId": "vol-1234567890abcdef0", + "Actions": [], + "Events": [] + } + ] + } + }, + { + "title": "To describe the status of impaired volumes", + "documentation": "This example describes the status for all volumes that are impaired. In this example output, there are no impaired volumes.", + "input": { + "Filters": [ + { + "Values": [ + "impaired" + ], + "Name": "volume-status.status" + } + ] + }, + "output": { + "VolumeStatuses": [] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VolumeStatuses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVolumeStatusRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "VolumeIds": { + "target": "com.amazonaws.ec2#VolumeIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the volumes.

\n

Default: Describes all your volumes.

", + "smithy.api#xmlName": "VolumeId" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set to true, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n action.code - The action code for the event (for example,\n enable-volume-io).

    \n
  • \n
  • \n

    \n action.description - A description of the action.

    \n
  • \n
  • \n

    \n action.event-id - The event ID associated with the action.

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone of the instance.

    \n
  • \n
  • \n

    \n event.description - A description of the event.

    \n
  • \n
  • \n

    \n event.event-id - The event ID.

    \n
  • \n
  • \n

    \n event.event-type - The event type (for io-enabled:\n passed | failed; for io-performance:\n io-performance:degraded | io-performance:severely-degraded |\n io-performance:stalled).

    \n
  • \n
  • \n

    \n event.not-after - The latest end time for the event.

    \n
  • \n
  • \n

    \n event.not-before - The earliest start time for the event.

    \n
  • \n
  • \n

    \n volume-status.details-name - The cause for\n volume-status.status (io-enabled |\n io-performance).

    \n
  • \n
  • \n

    \n volume-status.details-status - The status of\n volume-status.details-name (for io-enabled:\n passed | failed; for io-performance:\n normal | degraded | severely-degraded |\n stalled).

    \n
  • \n
  • \n

    \n volume-status.status - The status of the volume (ok |\n impaired | warning | insufficient-data).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVolumeStatusResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "VolumeStatuses": { + "target": "com.amazonaws.ec2#VolumeStatusList", + "traits": { + "aws.protocols#ec2QueryName": "VolumeStatusSet", + "smithy.api#documentation": "

Information about the status of the volumes.

", + "smithy.api#xmlName": "volumeStatusSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVolumes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVolumesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVolumesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified EBS volumes or all of your EBS volumes.

\n

If you are describing a long list of volumes, we recommend that you paginate the output to make the list\n more manageable. For more information, see Pagination.

\n

For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#examples": [ + { + "title": "To describe all volumes", + "documentation": "This example describes all of your volumes in the default region.", + "output": { + "Volumes": [ + { + "AvailabilityZone": "us-east-1a", + "Attachments": [ + { + "AttachTime": "2013-12-18T22:35:00.000Z", + "InstanceId": "i-1234567890abcdef0", + "VolumeId": "vol-049df61146c4d7901", + "State": "attached", + "DeleteOnTermination": true, + "Device": "/dev/sda1" + } + ], + "VolumeType": "standard", + "VolumeId": "vol-049df61146c4d7901", + "State": "in-use", + "SnapshotId": "snap-1234567890abcdef0", + "CreateTime": "2013-12-18T22:35:00.084Z", + "Size": 8 + } + ], + "NextToken": "" + } + }, + { + "title": "To describe volumes that are attached to a specific instance", + "documentation": "This example describes all volumes that are both attached to the instance with the ID i-1234567890abcdef0 and set to delete when the instance terminates.", + "input": { + "Filters": [ + { + "Values": [ + "i-1234567890abcdef0" + ], + "Name": "attachment.instance-id" + }, + { + "Values": [ + "true" + ], + "Name": "attachment.delete-on-termination" + } + ] + }, + "output": { + "Volumes": [ + { + "AvailabilityZone": "us-east-1a", + "Attachments": [ + { + "AttachTime": "2013-12-18T22:35:00.000Z", + "InstanceId": "i-1234567890abcdef0", + "VolumeId": "vol-049df61146c4d7901", + "State": "attached", + "DeleteOnTermination": true, + "Device": "/dev/sda1" + } + ], + "VolumeType": "standard", + "VolumeId": "vol-049df61146c4d7901", + "State": "in-use", + "SnapshotId": "snap-1234567890abcdef0", + "CreateTime": "2013-12-18T22:35:00.084Z", + "Size": 8 + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Volumes", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "VolumeAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Volumes[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Volumes[].State", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "VolumeDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Volumes[].State", + "expected": "deleted", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "InvalidVolume.NotFound" + } + } + ], + "minDelay": 15 + }, + "VolumeInUse": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Volumes[].State", + "expected": "in-use", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Volumes[].State", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeVolumesModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVolumesModificationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVolumesModificationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the most recent volume modification request for the specified EBS volumes.

\n

For more information, see \n Monitor the progress of volume modifications in the Amazon EBS User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VolumesModifications", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVolumesModificationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VolumeIds": { + "target": "com.amazonaws.ec2#VolumeIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the volumes.

", + "smithy.api#xmlName": "VolumeId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n modification-state - The current modification state (modifying | \n optimizing | completed | failed).

    \n
  • \n
  • \n

    \n original-iops - The original IOPS rate of the volume.

    \n
  • \n
  • \n

    \n original-size - The original size of the volume, in GiB.

    \n
  • \n
  • \n

    \n original-volume-type - The original volume type of the volume (standard | \n io1 | io2 | gp2 | sc1 | st1).

    \n
  • \n
  • \n

    \n originalMultiAttachEnabled - Indicates whether Multi-Attach support was enabled (true | false).

    \n
  • \n
  • \n

    \n start-time - The modification start time.

    \n
  • \n
  • \n

    \n target-iops - The target IOPS rate of the volume.

    \n
  • \n
  • \n

    \n target-size - The target size of the volume, in GiB.

    \n
  • \n
  • \n

    \n target-volume-type - The target volume type of the volume (standard | \n io1 | io2 | gp2 | sc1 | st1).

    \n
  • \n
  • \n

    \n targetMultiAttachEnabled - Indicates whether Multi-Attach support is to be enabled (true | false).

    \n
  • \n
  • \n

    \n volume-id - The ID of the volume.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results (up to a limit of 500) to be returned in a paginated\n request. For more information, see Pagination.

" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set to true, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVolumesModificationsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "VolumesModifications": { + "target": "com.amazonaws.ec2#VolumeModificationList", + "traits": { + "aws.protocols#ec2QueryName": "VolumeModificationSet", + "smithy.api#documentation": "

Information about the volume modifications.

", + "smithy.api#xmlName": "volumeModificationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVolumesRequest": { + "type": "structure", + "members": { + "VolumeIds": { + "target": "com.amazonaws.ec2#VolumeIdStringList", + "traits": { + "smithy.api#documentation": "

The volume IDs. If not specified, then all volumes are included in the response.

", + "smithy.api#xmlName": "VolumeId" + } + }, + "IncludeManagedResources": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include managed resources in the output. If this parameter is set to true, the output includes resources that are managed by Amazon Web Services services, even if managed resource visibility is set to hidden.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n attachment.attach-time - The time stamp when the attachment\n initiated.

    \n
  • \n
  • \n

    \n attachment.delete-on-termination - Whether the volume is deleted on\n instance termination.

    \n
  • \n
  • \n

    \n attachment.device - The device name specified in the block device mapping\n (for example, /dev/sda1).

    \n
  • \n
  • \n

    \n attachment.instance-id - The ID of the instance the volume is attached\n to.

    \n
  • \n
  • \n

    \n attachment.status - The attachment state (attaching |\n attached | detaching).

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone in which the volume was\n created.

    \n
  • \n
  • \n

    \n availability-zone-id - The ID of the Availability Zone in which the\n volume was created.

    \n
  • \n
  • \n

    \n create-time - The time stamp when the volume was created.

    \n
  • \n
  • \n

    \n encrypted - Indicates whether the volume is encrypted (true\n | false)

    \n
  • \n
  • \n

    \n fast-restored - Indicates whether the volume was created from a \n snapshot that is enabled for fast snapshot restore (true | \n false).

    \n
  • \n
  • \n

    \n multi-attach-enabled - Indicates whether the volume is enabled for Multi-Attach (true\n \t\t\t| false)

    \n
  • \n
  • \n

    \n operator.managed - A Boolean that indicates whether this is a managed\n volume.

    \n
  • \n
  • \n

    \n operator.principal - The principal that manages the volume. Only valid\n for managed volumes, where managed is true.

    \n
  • \n
  • \n

    \n size - The size of the volume, in GiB.

    \n
  • \n
  • \n

    \n snapshot-id - The snapshot from which the volume was created.

    \n
  • \n
  • \n

    \n status - The state of the volume (creating |\n available | in-use | deleting |\n deleted | error).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n volume-id - The volume ID.

    \n
  • \n
  • \n

    \n volume-type - The Amazon EBS volume type (gp2 | gp3 | io1 | io2 | \n st1 | sc1| standard)

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVolumesResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Volumes": { + "target": "com.amazonaws.ec2#VolumeList", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSet", + "smithy.api#documentation": "

Information about the volumes.

", + "smithy.api#xmlName": "volumeSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.

", + "smithy.api#examples": [ + { + "title": "To describe the enableDnsSupport attribute", + "documentation": "This example describes the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.", + "input": { + "VpcId": "vpc-a01106c2", + "Attribute": "enableDnsSupport" + }, + "output": { + "VpcId": "vpc-a01106c2", + "EnableDnsSupport": { + "Value": true + } + } + }, + { + "title": "To describe the enableDnsHostnames attribute", + "documentation": "This example describes the enableDnsHostnames attribute. This attribute indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.", + "input": { + "VpcId": "vpc-a01106c2", + "Attribute": "enableDnsHostnames" + }, + "output": { + "VpcId": "vpc-a01106c2", + "EnableDnsHostnames": { + "Value": true + } + } + } + ] + } + }, + "com.amazonaws.ec2#DescribeVpcAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#VpcAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The VPC attribute.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcAttributeResult": { + "type": "structure", + "members": { + "EnableDnsHostnames": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EnableDnsHostnames", + "smithy.api#documentation": "

Indicates whether the instances launched in the VPC get DNS hostnames.\n\t\t\t\tIf this attribute is true, instances in the VPC get DNS hostnames;\n\t\t\t\totherwise, they do not.

", + "smithy.api#xmlName": "enableDnsHostnames" + } + }, + "EnableDnsSupport": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EnableDnsSupport", + "smithy.api#documentation": "

Indicates whether DNS resolution is enabled for\n\t\t\t\tthe VPC. If this attribute is true, the Amazon DNS server\n\t\t\t\tresolves DNS hostnames for your instances to their corresponding\n\t\t\t\tIP addresses; otherwise, it does not.

", + "smithy.api#xmlName": "enableDnsSupport" + } + }, + "EnableNetworkAddressUsageMetrics": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EnableNetworkAddressUsageMetrics", + "smithy.api#documentation": "

Indicates whether Network Address Usage metrics are enabled for your VPC.

", + "smithy.api#xmlName": "enableNetworkAddressUsageMetrics" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describe VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that exempts it from the account’s BPA mode and will allow bidirectional or egress-only access. You can create BPA exclusions for VPCs and subnets even when BPA is not enabled on the account to ensure that there is no traffic disruption to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filters for the request:

\n
    \n
  • \n

    \n resource-arn - The Amazon Resource Name (ARN) of a exclusion.

    \n
  • \n
  • \n

    \n internet-gateway-exclusion-mode - The mode of a VPC BPA exclusion. Possible values: allow-bidirectional | allow-egress.

    \n
  • \n
  • \n

    \n state - The state of VPC BPA. Possible values: create-in-progress | create-complete | update-in-progress | update-complete | delete-in-progress | deleted-complete | disable-in-progress | disable-complete\n

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n tag-value: The value of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific value, regardless of the tag key.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "ExclusionIds": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionIdList", + "traits": { + "smithy.api#documentation": "

IDs of exclusions.

", + "smithy.api#xmlName": "ExclusionId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessExclusionsResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessExclusions": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionList", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessExclusionSet", + "smithy.api#documentation": "

Details related to the exclusions.

", + "smithy.api#xmlName": "vpcBlockPublicAccessExclusionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describe VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcBlockPublicAccessOptionsResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessOptions": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessOptions", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessOptions", + "smithy.api#documentation": "

Details related to the options.

", + "smithy.api#xmlName": "vpcBlockPublicAccessOptions" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Describes the ClassicLink status of the specified VPCs.

" + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS\n hostname of a linked EC2-Classic instance resolves to its private IP address when\n addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n of an instance in a VPC resolves to its private IP address when addressed from a linked\n EC2-Classic instance.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Vpcs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportNextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportRequest": { + "type": "structure", + "members": { + "VpcIds": { + "target": "com.amazonaws.ec2#VpcClassicLinkIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPCs.

", + "smithy.api#xmlName": "VpcIds" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportMaxResults", + "traits": { + "aws.protocols#ec2QueryName": "MaxResults", + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

", + "smithy.api#xmlName": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportNextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportNextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Vpcs": { + "target": "com.amazonaws.ec2#ClassicLinkDnsSupportList", + "traits": { + "aws.protocols#ec2QueryName": "Vpcs", + "smithy.api#documentation": "

Information about the ClassicLink DNS support status of the VPCs.

", + "smithy.api#xmlName": "vpcs" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcIds": { + "target": "com.amazonaws.ec2#VpcClassicLinkIdList", + "traits": { + "smithy.api#documentation": "

The VPCs for which you want to describe the ClassicLink status.

", + "smithy.api#xmlName": "VpcId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n is-classic-link-enabled - Whether the VPC is enabled for ClassicLink\n\t\t\t\t\t (true | false).

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcClassicLinkResult": { + "type": "structure", + "members": { + "Vpcs": { + "target": "com.amazonaws.ec2#VpcClassicLinkList", + "traits": { + "aws.protocols#ec2QueryName": "VpcSet", + "smithy.api#documentation": "

The ClassicLink status of the VPCs.

", + "smithy.api#xmlName": "vpcSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEncryptionControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEncryptionControlsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEncryptionControlsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more VPC Encryption Control configurations. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements You can filter the results to return information about specific encryption controls or VPCs.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeVpcEncryptionControlsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVpcEncryptionControlsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters to apply to the request.

", + "smithy.api#xmlName": "Filter" + } + }, + "VpcEncryptionControlIds": { + "target": "com.amazonaws.ec2#VpcEncryptionControlIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPC Encryption Control configurations to describe.

", + "smithy.api#xmlName": "VpcEncryptionControlId" + } + }, + "VpcIds": { + "target": "com.amazonaws.ec2#VpcIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPCs to describe encryption control configurations for.

", + "smithy.api#xmlName": "VpcId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVpcEncryptionControlsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEncryptionControlsResult": { + "type": "structure", + "members": { + "VpcEncryptionControls": { + "target": "com.amazonaws.ec2#VpcEncryptionControlList", + "traits": { + "aws.protocols#ec2QueryName": "VpcEncryptionControlSet", + "smithy.api#documentation": "

Information about the VPC Encryption Control configurations.

", + "smithy.api#xmlName": "vpcEncryptionControlSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC resources, VPC endpoint services, Amazon Lattice services, or service networks\n associated with the VPC endpoint.

" + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointAssociationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEndpointIds": { + "target": "com.amazonaws.ec2#VpcEndpointIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPC endpoints.

", + "smithy.api#xmlName": "VpcEndpointId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n vpc-endpoint-id - The ID of the VPC endpoint.

    \n
  • \n
  • \n

    \n associated-resource-accessibility - The association state. When the\n state is accessible, it returns AVAILABLE. When the state\n is inaccessible, it returns PENDING or\n FAILED.

    \n
  • \n
  • \n

    \n association-id - The ID of the VPC endpoint association.

    \n
  • \n
  • \n

    \n associated-resource-id - The ID of the associated resource\n configuration.

    \n
  • \n
  • \n

    \n service-network-arn - The Amazon Resource Name (ARN) of the\n associated service network. Only VPC endpoints of type service network will be\n returned.

    \n
  • \n
  • \n

    \n resource-configuration-group-arn - The Amazon Resource Name (ARN) of\n the resource configuration of type GROUP.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#MaxResults2", + "traits": { + "smithy.api#documentation": "

The maximum page size.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The pagination token.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointAssociationsResult": { + "type": "structure", + "members": { + "VpcEndpointAssociations": { + "target": "com.amazonaws.ec2#VpcEndpointAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointAssociationSet", + "smithy.api#documentation": "

Details of the endpoint associations.

", + "smithy.api#xmlName": "vpcEndpointAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The pagination token.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the connection notifications for VPC endpoints and VPC endpoint\n services.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ConnectionNotificationSet", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ConnectionNotificationId": { + "target": "com.amazonaws.ec2#ConnectionNotificationId", + "traits": { + "smithy.api#documentation": "

The ID of the notification.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n connection-notification-arn - The ARN of the SNS topic for the\n notification.

    \n
  • \n
  • \n

    \n connection-notification-id - The ID of the\n notification.

    \n
  • \n
  • \n

    \n connection-notification-state - The state of the notification\n (Enabled | Disabled).

    \n
  • \n
  • \n

    \n connection-notification-type - The type of notification\n (Topic).

    \n
  • \n
  • \n

    \n service-id - The ID of the endpoint service.

    \n
  • \n
  • \n

    \n vpc-endpoint-id - The ID of the VPC endpoint.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnectionNotificationsResult": { + "type": "structure", + "members": { + "ConnectionNotificationSet": { + "target": "com.amazonaws.ec2#ConnectionNotificationSet", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionNotificationSet", + "smithy.api#documentation": "

The notifications.

", + "smithy.api#xmlName": "connectionNotificationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is\n null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC endpoint connections to your VPC endpoint services, including any\n endpoints that are pending your acceptance.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VpcEndpointConnections", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnectionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n ip-address-type - The IP address type (ipv4 | ipv6).

    \n
  • \n
  • \n

    \n service-id - The ID of the service.

    \n
  • \n
  • \n

    \n vpc-endpoint-owner - The ID of the Amazon Web Services account ID \n\t\t that owns the endpoint.

    \n
  • \n
  • \n

    \n vpc-endpoint-region - The Region of the endpoint or cross-region\n\t\t to find endpoints for other Regions.

    \n
  • \n
  • \n

    \n vpc-endpoint-state - The state of the endpoint\n\t\t\t (pendingAcceptance | pending |\n\t\t\t available | deleting | deleted |\n\t\t\t rejected | failed).

    \n
  • \n
  • \n

    \n vpc-endpoint-id - The ID of the endpoint.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining\n results of the initial request can be seen by sending another request with the returned\n NextToken value. This value can be between 5 and 1,000; if\n MaxResults is given a value larger than 1,000, only 1,000 results are\n returned.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointConnectionsResult": { + "type": "structure", + "members": { + "VpcEndpointConnections": { + "target": "com.amazonaws.ec2#VpcEndpointConnectionSet", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointConnectionSet", + "smithy.api#documentation": "

Information about the VPC endpoint connections.

", + "smithy.api#xmlName": "vpcEndpointConnectionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC endpoint service configurations in your account (your services).

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ServiceConfigurations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceIds": { + "target": "com.amazonaws.ec2#VpcEndpointServiceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the endpoint services.

", + "smithy.api#xmlName": "ServiceId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n service-name - The name of the service.

    \n
  • \n
  • \n

    \n service-id - The ID of the service.

    \n
  • \n
  • \n

    \n service-state - The state of the service (Pending |\n Available | Deleting | Deleted |\n Failed).

    \n
  • \n
  • \n

    \n supported-ip-address-types - The IP address type (ipv4 | ipv6).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining\n results of the initial request can be seen by sending another request with the returned\n NextToken value. This value can be between 5 and 1,000; if\n MaxResults is given a value larger than 1,000, only 1,000 results are\n returned.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServiceConfigurationsResult": { + "type": "structure", + "members": { + "ServiceConfigurations": { + "target": "com.amazonaws.ec2#ServiceConfigurationSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceConfigurationSet", + "smithy.api#documentation": "

Information about the services.

", + "smithy.api#xmlName": "serviceConfigurationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServicePermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the principals (service consumers) that are permitted to discover your VPC\n endpoint service. Principal ARNs with path components aren't supported.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AllowedPrincipals", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n principal - The ARN of the principal.

    \n
  • \n
  • \n

    \n principal-type - The principal type (All |\n\t\t\t\t\t\tService | OrganizationUnit | Account\n\t\t\t\t\t| User | Role).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining\n results of the initial request can be seen by sending another request with the returned\n NextToken value. This value can be between 5 and 1,000; if\n MaxResults is given a value larger than 1,000, only 1,000 results are\n returned.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServicePermissionsResult": { + "type": "structure", + "members": { + "AllowedPrincipals": { + "target": "com.amazonaws.ec2#AllowedPrincipalSet", + "traits": { + "aws.protocols#ec2QueryName": "AllowedPrincipals", + "smithy.api#documentation": "

Information about the allowed principals.

", + "smithy.api#xmlName": "allowedPrincipals" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServices": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServicesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointServicesResult" + }, + "traits": { + "smithy.api#documentation": "

Describes available services to which you can create a VPC endpoint.

\n

When the service provider and the consumer have different accounts in multiple\n Availability Zones, and the consumer views the VPC endpoint service information, the\n response only includes the common Availability Zones. For example, when the service\n provider account uses us-east-1a and us-east-1c and the\n consumer uses us-east-1a and us-east-1b, the response includes\n the VPC endpoint services in the common Availability Zone,\n us-east-1a.

" + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServicesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceNames": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The service names.

", + "smithy.api#xmlName": "ServiceName" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n owner - The ID or alias of the Amazon Web Services account that owns \n the service.

    \n
  • \n
  • \n

    \n service-name - The name of the service.

    \n
  • \n
  • \n

    \n service-region - The Region of the service.

    \n
  • \n
  • \n

    \n service-type - The type of service (Interface |\n Gateway | GatewayLoadBalancer).

    \n
  • \n
  • \n

    \n supported-ip-address-types - The IP address type (ipv4 | ipv6).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

\n

Constraint: If the value is greater than 1,000, we return only 1,000 items.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a prior call.)

" + } + }, + "ServiceRegions": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The service Regions.

", + "smithy.api#xmlName": "ServiceRegion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointServicesResult": { + "type": "structure", + "members": { + "ServiceNames": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "ServiceNameSet", + "smithy.api#documentation": "

The supported services.

", + "smithy.api#xmlName": "serviceNameSet" + } + }, + "ServiceDetails": { + "target": "com.amazonaws.ec2#ServiceDetailSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceDetailSet", + "smithy.api#documentation": "

Information about the service.

", + "smithy.api#xmlName": "serviceDetailSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcEndpointsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your VPC endpoints. The default is to describe all your VPC endpoints. \n Alternatively, you can specify specific VPC endpoint IDs or filter the results to\n include only the VPC endpoints that match specific criteria.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VpcEndpoints", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEndpointIds": { + "target": "com.amazonaws.ec2#VpcEndpointIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPC endpoints.

", + "smithy.api#xmlName": "VpcEndpointId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n ip-address-type - The IP address type (ipv4 | ipv6).

    \n
  • \n
  • \n

    \n service-name - The name of the service.

    \n
  • \n
  • \n

    \n service-region - The Region of the service.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC in which the endpoint resides.

    \n
  • \n
  • \n

    \n vpc-endpoint-id - The ID of the endpoint.

    \n
  • \n
  • \n

    \n vpc-endpoint-state - The state of the endpoint\n (pendingAcceptance | pending |\n available | deleting | deleted |\n rejected | failed).

    \n
  • \n
  • \n

    \n vpc-endpoint-type - The type of VPC endpoint (Interface |\n Gateway | GatewayLoadBalancer | Resource | \n ServiceNetwork | Tunnel).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

\n

Constraint: If the value is greater than 1,000, we return only 1,000 items.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of items to return. (You received this token from a prior call.)

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcEndpointsResult": { + "type": "structure", + "members": { + "VpcEndpoints": { + "target": "com.amazonaws.ec2#VpcEndpointSet", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointSet", + "smithy.api#documentation": "

Information about the VPC endpoints.

", + "smithy.api#xmlName": "vpcEndpointSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcPeeringConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcPeeringConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcPeeringConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your VPC peering connections. The default is to describe all your VPC peering connections. \n Alternatively, you can specify specific VPC peering connection IDs or filter the results to\n include only the VPC peering connections that match specific criteria.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VpcPeeringConnections", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "VpcPeeringConnectionDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "VpcPeeringConnections[].Status.Code", + "expected": "deleted", + "comparator": "allStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "InvalidVpcPeeringConnectionID.NotFound" + } + } + ], + "minDelay": 15 + }, + "VpcPeeringConnectionExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidVpcPeeringConnectionID.NotFound" + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeVpcPeeringConnectionsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVpcPeeringConnectionsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVpcPeeringConnectionsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcPeeringConnectionIds": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPC peering connections.

\n

Default: Describes all your VPC peering connections.

", + "smithy.api#xmlName": "VpcPeeringConnectionId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n accepter-vpc-info.cidr-block - The IPv4 CIDR block of the accepter\n VPC.

    \n
  • \n
  • \n

    \n accepter-vpc-info.owner-id - The ID of the Amazon Web Services account that owns the\n accepter VPC.

    \n
  • \n
  • \n

    \n accepter-vpc-info.vpc-id - The ID of the accepter VPC.

    \n
  • \n
  • \n

    \n expiration-time - The expiration date and time for the VPC peering\n connection.

    \n
  • \n
  • \n

    \n requester-vpc-info.cidr-block - The IPv4 CIDR block of the\n requester's VPC.

    \n
  • \n
  • \n

    \n requester-vpc-info.owner-id - The ID of the Amazon Web Services account that owns the\n requester VPC.

    \n
  • \n
  • \n

    \n requester-vpc-info.vpc-id - The ID of the requester VPC.

    \n
  • \n
  • \n

    \n status-code - The status of the VPC peering connection\n (pending-acceptance | failed |\n expired | provisioning | active |\n deleting | deleted |\n rejected).

    \n
  • \n
  • \n

    \n status-message - A message that provides more information about the status\n of the VPC peering connection, if applicable.

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-peering-connection-id - The ID of the VPC peering connection.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcPeeringConnectionsResult": { + "type": "structure", + "members": { + "VpcPeeringConnections": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionList", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionSet", + "smithy.api#documentation": "

Information about the VPC peering connections.

", + "smithy.api#xmlName": "vpcPeeringConnectionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpcs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpcsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpcsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes your VPCs. The default is to describe all your VPCs. \n Alternatively, you can specify specific VPC IDs or filter the results to\n include only the VPCs that match specific criteria.

", + "smithy.api#examples": [ + { + "title": "To describe a VPC", + "documentation": "This example describes the specified VPC.", + "input": { + "VpcIds": [ + "vpc-a01106c2" + ] + }, + "output": { + "Vpcs": [ + { + "VpcId": "vpc-a01106c2", + "InstanceTenancy": "default", + "Tags": [ + { + "Value": "MyVPC", + "Key": "Name" + } + ], + "State": "available", + "DhcpOptionsId": "dopt-7a8b9c2d", + "CidrBlock": "10.0.0.0/16", + "IsDefault": false + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Vpcs", + "pageSize": "MaxResults" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "VpcAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Vpcs[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "VpcExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidVpcID.NotFound" + } + } + ], + "minDelay": 1 + } + } + } + }, + "com.amazonaws.ec2#DescribeVpcsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#DescribeVpcsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n cidr - The primary IPv4 CIDR block of the VPC. The CIDR block you\n specify must exactly match the VPC's CIDR block for information to be returned\n for the VPC. Must contain the slash followed by one or two digits (for example,\n /28).

    \n
  • \n
  • \n

    \n cidr-block-association.cidr-block - An IPv4 CIDR block associated with the\n VPC.

    \n
  • \n
  • \n

    \n cidr-block-association.association-id - The association ID for\n an IPv4 CIDR block associated with the VPC.

    \n
  • \n
  • \n

    \n cidr-block-association.state - The state of an IPv4 CIDR block\n associated with the VPC.

    \n
  • \n
  • \n

    \n dhcp-options-id - The ID of a set of DHCP options.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR\n block associated with the VPC.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.ipv6-pool - The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.association-id - The association\n ID for an IPv6 CIDR block associated with the VPC.

    \n
  • \n
  • \n

    \n ipv6-cidr-block-association.state - The state of an IPv6 CIDR\n block associated with the VPC.

    \n
  • \n
  • \n

    \n is-default - Indicates whether the VPC is the default VPC.

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the VPC.

    \n
  • \n
  • \n

    \n state - The state of the VPC (pending | available).

    \n
  • \n
  • \n

    \n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n vpc-id - The ID of the VPC.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "VpcIds": { + "target": "com.amazonaws.ec2#VpcIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the VPCs.

", + "smithy.api#xmlName": "VpcId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeVpcsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpcsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "Vpcs": { + "target": "com.amazonaws.ec2#VpcList", + "traits": { + "aws.protocols#ec2QueryName": "VpcSet", + "smithy.api#documentation": "

Information about the VPCs.

", + "smithy.api#xmlName": "vpcSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpnConcentrators": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpnConcentratorsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpnConcentratorsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your VPN concentrators.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VpnConcentrators", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeVpnConcentratorsRequest": { + "type": "structure", + "members": { + "VpnConcentratorIds": { + "target": "com.amazonaws.ec2#VpnConcentratorIdStringList", + "traits": { + "smithy.api#documentation": "

One or more VPN concentrator IDs.

", + "smithy.api#xmlName": "VpnConcentratorId" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to limit the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GVCDMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpnConcentratorsResult": { + "type": "structure", + "members": { + "VpnConcentrators": { + "target": "com.amazonaws.ec2#VpnConcentratorList", + "traits": { + "aws.protocols#ec2QueryName": "VpnConcentratorSet", + "smithy.api#documentation": "

Information about the VPN concentrators.

", + "smithy.api#xmlName": "vpnConcentratorSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpnConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpnConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpnConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your VPN connections.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

", + "smithy.waiters#waitable": { + "VpnConnectionAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "VpnConnections[].State", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "VpnConnections[].State", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "VpnConnections[].State", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + }, + "VpnConnectionDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "VpnConnections[].State", + "expected": "deleted", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "VpnConnections[].State", + "expected": "pending", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#DescribeVpnConnectionsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n customer-gateway-configuration - The configuration information\n for the customer gateway.

    \n
  • \n
  • \n

    \n customer-gateway-id - The ID of a customer gateway associated\n with the VPN connection.

    \n
  • \n
  • \n

    \n state - The state of the VPN connection (pending |\n available | deleting |\n deleted).

    \n
  • \n
  • \n

    \n option.static-routes-only - Indicates whether the connection has\n static routes only. Used for devices that do not support Border Gateway Protocol\n (BGP).

    \n
  • \n
  • \n

    \n route.destination-cidr-block - The destination CIDR block. This\n corresponds to the subnet used in a customer data center.

    \n
  • \n
  • \n

    \n bgp-asn - The BGP Autonomous System Number (ASN) associated with\n a BGP device.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n type - The type of VPN connection. Currently the only supported\n type is ipsec.1.

    \n
  • \n
  • \n

    \n vpn-connection-id - The ID of the VPN connection.

    \n
  • \n
  • \n

    \n vpn-gateway-id - The ID of a virtual private gateway associated\n with the VPN connection.

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of a transit gateway associated with\n the VPN connection.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "VpnConnectionIds": { + "target": "com.amazonaws.ec2#VpnConnectionIdStringList", + "traits": { + "smithy.api#documentation": "

One or more VPN connection IDs.

\n

Default: Describes your VPN connections.

", + "smithy.api#xmlName": "VpnConnectionId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeVpnConnections.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpnConnectionsResult": { + "type": "structure", + "members": { + "VpnConnections": { + "target": "com.amazonaws.ec2#VpnConnectionList", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionSet", + "smithy.api#documentation": "

Information about one or more VPN connections.

", + "smithy.api#xmlName": "vpnConnectionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeVpnConnections.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DescribeVpnGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeVpnGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeVpnGatewaysResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more of your virtual private gateways.

\n

For more information, see Amazon Web Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN\n User Guide.

" + } + }, + "com.amazonaws.ec2#DescribeVpnGatewaysRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n amazon-side-asn - The Autonomous System Number (ASN) for the\n Amazon side of the gateway.

    \n
  • \n
  • \n

    \n attachment.state - The current state of the attachment between\n the gateway and the VPC (attaching | attached |\n detaching | detached).

    \n
  • \n
  • \n

    \n attachment.vpc-id - The ID of an attached VPC.

    \n
  • \n
  • \n

    \n availability-zone - The Availability Zone for the virtual private\n gateway (if applicable).

    \n
  • \n
  • \n

    \n state - The state of the virtual private gateway\n (pending | available | deleting |\n deleted).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n type - The type of virtual private gateway. Currently the only\n supported type is ipsec.1.

    \n
  • \n
  • \n

    \n vpn-gateway-id - The ID of the virtual private gateway.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "VpnGatewayIds": { + "target": "com.amazonaws.ec2#VpnGatewayIdStringList", + "traits": { + "smithy.api#documentation": "

One or more virtual private gateway IDs.

\n

Default: Describes all your virtual private gateways.

", + "smithy.api#xmlName": "VpnGatewayId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DescribeVpnGateways.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DescribeVpnGatewaysResult": { + "type": "structure", + "members": { + "VpnGateways": { + "target": "com.amazonaws.ec2#VpnGatewayList", + "traits": { + "aws.protocols#ec2QueryName": "VpnGatewaySet", + "smithy.api#documentation": "

Information about one or more virtual private gateways.

", + "smithy.api#xmlName": "vpnGatewaySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of DescribeVpnGateways.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DestinationFileFormat": { + "type": "enum", + "members": { + "plain_text": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "plain-text" + } + }, + "parquet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "parquet" + } + } + } + }, + "com.amazonaws.ec2#DestinationOptionsRequest": { + "type": "structure", + "members": { + "FileFormat": { + "target": "com.amazonaws.ec2#DestinationFileFormat", + "traits": { + "smithy.api#documentation": "

The format for the flow log. The default is plain-text.

" + } + }, + "HiveCompatiblePartitions": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.\n The default is false.

" + } + }, + "PerHourPartition": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to partition the flow log per hour. This reduces the cost and response \n time for queries. The default is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the destination options for a flow log.

" + } + }, + "com.amazonaws.ec2#DestinationOptionsResponse": { + "type": "structure", + "members": { + "FileFormat": { + "target": "com.amazonaws.ec2#DestinationFileFormat", + "traits": { + "aws.protocols#ec2QueryName": "FileFormat", + "smithy.api#documentation": "

The format for the flow log.

", + "smithy.api#xmlName": "fileFormat" + } + }, + "HiveCompatiblePartitions": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "HiveCompatiblePartitions", + "smithy.api#documentation": "

Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.

", + "smithy.api#xmlName": "hiveCompatiblePartitions" + } + }, + "PerHourPartition": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PerHourPartition", + "smithy.api#documentation": "

Indicates whether to partition the flow log per hour.

", + "smithy.api#xmlName": "perHourPartition" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the destination options for a flow log.

" + } + }, + "com.amazonaws.ec2#DetachClassicLinkVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachClassicLinkVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DetachClassicLinkVpcResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, \n\t\t the VPC security groups are no longer associated with it. An instance is automatically unlinked from \n\t\t a VPC when it's stopped.

" + } + }, + "com.amazonaws.ec2#DetachClassicLinkVpcRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to unlink from the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC to which the instance is linked.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachClassicLinkVpcResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DetachImageWatermark": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachImageWatermarkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DetachImageWatermarkResult" + }, + "traits": { + "smithy.api#documentation": "

Removes a watermark from the specified AMI. This is an idempotent operation. It succeeds\n even if the watermark does not exist on the image.

\n

Removing a watermark from an image does not affect derivative images that already carry\n the watermark.

\n

Only the AMI owner can detach watermarks.

" + } + }, + "com.amazonaws.ec2#DetachImageWatermarkRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "WatermarkKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The watermark key to remove, in accountId:watermarkName format (for example,\n 123456789012:approvedAmi).

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachImageWatermarkResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DetachInternetGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachInternetGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Detaches an internet gateway from a VPC, disabling connectivity between the internet\n\t\t\tand the VPC. The VPC must not contain any running instances with Elastic IP addresses or\n\t\t\tpublic IPv4 addresses.

", + "smithy.api#examples": [ + { + "title": "To detach an Internet gateway from a VPC", + "documentation": "This example detaches the specified Internet gateway from the specified VPC.", + "input": { + "InternetGatewayId": "igw-c0a643a9", + "VpcId": "vpc-a01106c2" + } + } + ] + } + }, + "com.amazonaws.ec2#DetachInternetGatewayRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InternetGatewayId": { + "target": "com.amazonaws.ec2#InternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the internet gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "internetGatewayId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachNetworkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachNetworkInterfaceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Detaches a network interface from an instance.

", + "smithy.api#examples": [ + { + "title": "To detach a network interface from an instance", + "documentation": "This example detaches the specified network interface from its attached instance.", + "input": { + "AttachmentId": "eni-attach-66c4350a" + } + } + ] + } + }, + "com.amazonaws.ec2#DetachNetworkInterfaceRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "attachmentId" + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Force", + "smithy.api#documentation": "

Specifies whether to force a detachment.

\n \n
    \n
  • \n

    Use the Force parameter only as a last resort to detach a\n network interface from a failed instance.

    \n
  • \n
  • \n

    If you use the Force parameter to detach a network interface,\n you might not be able to attach a different network interface to the same\n index on the instance without first stopping and starting the\n instance.

    \n
  • \n
  • \n

    If you force the detachment of a network interface, the instance\n metadata might not get updated. This means that the attributes\n associated with the detached network interface might still be visible. The\n instance metadata will get updated when you stop and start the\n instance.

    \n
  • \n
\n
", + "smithy.api#xmlName": "force" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DetachNetworkInterface.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachVerifiedAccessTrustProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderResult" + }, + "traits": { + "smithy.api#documentation": "

Detaches the specified Amazon Web Services Verified Access trust provider from the specified Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access trust provider.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachVerifiedAccessTrustProviderResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProvider", + "smithy.api#documentation": "

Details about the Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProvider" + } + }, + "VerifiedAccessInstance": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstance", + "smithy.api#documentation": "

Details about the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstance" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DetachVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachVolumeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#VolumeAttachment" + }, + "traits": { + "smithy.api#documentation": "

Detaches an EBS volume from an instance. Make sure to unmount any file systems on the\n device within your operating system before detaching the volume. Failure to do so can result\n in the volume becoming stuck in the busy state while detaching. If this happens,\n detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot\n the instance, or all three. If an EBS volume is the root device of an instance, it can't be\n detached while the instance is running. To detach the root volume, stop the instance\n first.

\n

When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the\n product code is no longer associated with the instance.

\n

You can't detach or force detach volumes that are attached to Amazon Web Services-managed resources. \n Attempting to do this results in the UnsupportedOperationException \n exception.

\n

For more information, see Detach an Amazon EBS volume in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To detach a volume from an instance", + "documentation": "This example detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to.", + "input": { + "VolumeId": "vol-1234567890abcdef0" + }, + "output": { + "AttachTime": "2014-02-27T19:23:06.000Z", + "InstanceId": "i-1234567890abcdef0", + "VolumeId": "vol-049df61146c4d7901", + "State": "detaching", + "Device": "/dev/sdb" + } + } + ] + } + }, + "com.amazonaws.ec2#DetachVolumeRequest": { + "type": "structure", + "members": { + "Device": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The device name.

" + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Forces detachment if the previous detachment attempt did not occur cleanly (for example,\n logging into an instance, unmounting the volume, and detaching normally). This option can lead\n to data loss or a corrupted file system. Use this option only as a last resort to detach a\n volume from a failed instance. The instance won't have an opportunity to flush file system\n caches or file system metadata. If you use this option, you must perform file system check and\n repair procedures.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceIdForResolver", + "traits": { + "smithy.api#documentation": "

The ID of the instance. If you are detaching a Multi-Attach enabled volume, you must specify an instance ID.

" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeIdWithResolver", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DetachVpnGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DetachVpnGatewayRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn\n off the VPC and not use it anymore. You can confirm a virtual private gateway has been\n completely detached from a VPC by describing the virtual private gateway (any\n attachments to the virtual private gateway are also described).

\n

You must wait for the attachment's state to switch to detached before you\n can delete the VPC or attach a different VPC to the virtual private gateway.

" + } + }, + "com.amazonaws.ec2#DetachVpnGatewayRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DetachVpnGateway.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DeviceOptions": { + "type": "structure", + "members": { + "TenantId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TenantId", + "smithy.api#documentation": "

The ID of the tenant application with the device-identity provider.

", + "smithy.api#xmlName": "tenantId" + } + }, + "PublicSigningKeyUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicSigningKeyUrl", + "smithy.api#documentation": "

\n The URL Amazon Web Services Verified Access will use to verify the authenticity of the device tokens.\n

", + "smithy.api#xmlName": "publicSigningKeyUrl" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for an Amazon Web Services Verified Access device-identity based trust provider.

" + } + }, + "com.amazonaws.ec2#DevicePostureOptions": { + "type": "structure", + "members": { + "TrustProviders": { + "target": "com.amazonaws.ec2#ClientVpnTrustProviderRequestList", + "traits": { + "smithy.api#documentation": "

The device trust providers to configure for the Client VPN endpoint.

", + "smithy.api#xmlName": "TrustProvider" + } + }, + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether device posture evaluation is enabled for the Client VPN endpoint. Specify false to disable device posture, which clears the configured device trust providers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the device posture options for a Client VPN endpoint. Device posture options specify the device trust providers that the endpoint uses to evaluate the security posture of connecting devices.

" + } + }, + "com.amazonaws.ec2#DevicePostureResponseOptions": { + "type": "structure", + "members": { + "TrustProviders": { + "target": "com.amazonaws.ec2#ClientVpnTrustProviderSet", + "traits": { + "aws.protocols#ec2QueryName": "TrustProviderSet", + "smithy.api#documentation": "

The device trust providers configured for the Client VPN endpoint.

", + "smithy.api#xmlName": "trustProviderSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the device posture options for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#DeviceTrustProviderType": { + "type": "enum", + "members": { + "jamf": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jamf" + } + }, + "crowdstrike": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "crowdstrike" + } + }, + "jumpcloud": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "jumpcloud" + } + } + } + }, + "com.amazonaws.ec2#DeviceTrustProviderTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DeviceTrustProviderType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DeviceType": { + "type": "enum", + "members": { + "ebs": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs" + } + }, + "instance_store": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-store" + } + } + } + }, + "com.amazonaws.ec2#DhcpConfiguration": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The name of a DHCP option.

", + "smithy.api#xmlName": "key" + } + }, + "Values": { + "target": "com.amazonaws.ec2#DhcpConfigurationValueList", + "traits": { + "aws.protocols#ec2QueryName": "ValueSet", + "smithy.api#documentation": "

The values for the DHCP option.

", + "smithy.api#xmlName": "valueSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a DHCP configuration option.

" + } + }, + "com.amazonaws.ec2#DhcpConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DhcpConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DhcpConfigurationValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DhcpOptions": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the DHCP options set.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the DHCP options set.

", + "smithy.api#xmlName": "tagSet" + } + }, + "DhcpOptionsId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DhcpOptionsId", + "smithy.api#documentation": "

The ID of the set of DHCP options.

", + "smithy.api#xmlName": "dhcpOptionsId" + } + }, + "DhcpConfigurations": { + "target": "com.amazonaws.ec2#DhcpConfigurationList", + "traits": { + "aws.protocols#ec2QueryName": "DhcpConfigurationSet", + "smithy.api#documentation": "

The DHCP options in the set.

", + "smithy.api#xmlName": "dhcpConfigurationSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The set of DHCP options.

" + } + }, + "com.amazonaws.ec2#DhcpOptionsId": { + "type": "string" + }, + "com.amazonaws.ec2#DhcpOptionsIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DhcpOptionsId", + "traits": { + "smithy.api#xmlName": "DhcpOptionsId" + } + } + }, + "com.amazonaws.ec2#DhcpOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DhcpOptions", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DimensionCondition": { + "type": "structure", + "members": { + "Dimension": { + "target": "com.amazonaws.ec2#FilterByDimension", + "traits": { + "smithy.api#documentation": "

\nThe name of the dimension to filter by.\n

" + } + }, + "Comparison": { + "target": "com.amazonaws.ec2#Comparison", + "traits": { + "smithy.api#documentation": "

\nThe comparison operator to use for the filter.\n

" + } + }, + "Values": { + "target": "com.amazonaws.ec2#ConditionValueList", + "traits": { + "smithy.api#documentation": "

\nThe list of values to match against the specified dimension. For 'equals' comparison, only the first value is used. For 'in' comparison, any matching value will satisfy the condition.\n

", + "smithy.api#xmlName": "Value" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nSpecifies a condition for filtering capacity data based on dimension values. Used to create precise filters for metric queries and dimension lookups.\n

" + } + }, + "com.amazonaws.ec2#DirectoryServiceAuthentication": { + "type": "structure", + "members": { + "DirectoryId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DirectoryId", + "smithy.api#documentation": "

The ID of the Active Directory used for authentication.

", + "smithy.api#xmlName": "directoryId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Active Directory.

" + } + }, + "com.amazonaws.ec2#DirectoryServiceAuthenticationRequest": { + "type": "structure", + "members": { + "DirectoryId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Active Directory to be used for authentication.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Active Directory to be used for client authentication.

" + } + }, + "com.amazonaws.ec2#DisableAddressTransfer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableAddressTransferRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableAddressTransferResult" + }, + "traits": { + "smithy.api#documentation": "

Disables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DisableAddressTransferRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The allocation ID of an Elastic IP address.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableAddressTransferResult": { + "type": "structure", + "members": { + "AddressTransfer": { + "target": "com.amazonaws.ec2#AddressTransfer", + "traits": { + "aws.protocols#ec2QueryName": "AddressTransfer", + "smithy.api#documentation": "

An Elastic IP address transfer.

", + "smithy.api#xmlName": "addressTransfer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableAllowedImagesSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableAllowedImagesSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableAllowedImagesSettingsResult" + }, + "traits": { + "smithy.api#documentation": "

Disables Allowed AMIs for your account in the specified Amazon Web Services Region. When set to\n disabled, the image criteria in your Allowed AMIs settings do not apply, and no\n restrictions are placed on AMI discoverability or usage. Users in your account can launch\n instances using any public AMI or AMI shared with your account.

\n \n

The Allowed AMIs feature does not restrict the AMIs owned by your account. Regardless of\n the criteria you set, the AMIs created by your account will always be discoverable and\n usable by users in your account.

\n
\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableAllowedImagesSettingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableAllowedImagesSettingsResult": { + "type": "structure", + "members": { + "AllowedImagesSettingsState": { + "target": "com.amazonaws.ec2#AllowedImagesSettingsDisabledState", + "traits": { + "aws.protocols#ec2QueryName": "AllowedImagesSettingsState", + "smithy.api#documentation": "

Returns disabled if the request succeeds; otherwise, it returns an\n error.

", + "smithy.api#xmlName": "allowedImagesSettingsState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableApplicationStatusCheckSuppression": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionResult" + }, + "traits": { + "smithy.api#documentation": "

Disables suppression of application status checks for the specified instances. After suppression is disabled, health check results resume affecting the instance-level application status. You can specify a maximum of 100 instance IDs for each request.

", + "smithy.api#examples": [ + { + "title": "To disable application status check suppression", + "documentation": "This example disables application status check suppression for the specified instance, resuming normal status reporting.", + "input": { + "InstanceIds": [ + "i-0123456789abcdef0" + ] + }, + "output": { + "SuccessfulResults": [ + { + "InstanceId": "i-0123456789abcdef0" + } + ], + "UnsuccessfulResults": [] + } + } + ] + } + }, + "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances for which to disable application status check suppression.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableApplicationStatusCheckSuppressionResult": { + "type": "structure", + "members": { + "SuccessfulResults": { + "target": "com.amazonaws.ec2#SuccessfulSuppressionResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulResultSet", + "smithy.api#documentation": "

The instances for which suppression was successfully disabled.

", + "smithy.api#xmlName": "successfulResultSet" + } + }, + "UnsuccessfulResults": { + "target": "com.amazonaws.ec2#UnsuccessfulSuppressionResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulResultSet", + "smithy.api#documentation": "

The instances for which suppression failed to be disabled.

", + "smithy.api#xmlName": "unsuccessfulResultSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionResult" + }, + "traits": { + "smithy.api#documentation": "

Disables Infrastructure Performance metric subscriptions.

" + } + }, + "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionRequest": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source Region or Availability Zone that the metric subscription is disabled for. For example, us-east-1.

" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The target Region or Availability Zone that the metric subscription is disabled for. For example, eu-north-1.

" + } + }, + "Metric": { + "target": "com.amazonaws.ec2#MetricType", + "traits": { + "smithy.api#documentation": "

The metric used for the disabled subscription.

" + } + }, + "Statistic": { + "target": "com.amazonaws.ec2#StatisticType", + "traits": { + "smithy.api#documentation": "

The statistic used for the disabled subscription.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableAwsNetworkPerformanceMetricSubscriptionResult": { + "type": "structure", + "members": { + "Output": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Output", + "smithy.api#documentation": "

Indicates whether the unsubscribe action was successful.

", + "smithy.api#xmlName": "output" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableCapacityManager": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableCapacityManagerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableCapacityManagerResult" + }, + "traits": { + "smithy.api#documentation": "

\nDisables EC2 Capacity Manager for your account. This stops data ingestion and removes access to capacity analytics and optimization recommendations. \nPreviously collected data is retained but no new data will be processed.\n

" + } + }, + "com.amazonaws.ec2#DisableCapacityManagerRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nUnique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableCapacityManagerResult": { + "type": "structure", + "members": { + "CapacityManagerStatus": { + "target": "com.amazonaws.ec2#CapacityManagerStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerStatus", + "smithy.api#documentation": "

\nThe current status of Capacity Manager after the disable operation. \n

", + "smithy.api#xmlName": "capacityManagerStatus" + } + }, + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsAccess", + "smithy.api#documentation": "

\n Indicates whether Organizations access is enabled. This will be false after disabling Capacity Manager.\n

", + "smithy.api#xmlName": "organizationsAccess" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableEbsEncryptionByDefault": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableEbsEncryptionByDefaultRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableEbsEncryptionByDefaultResult" + }, + "traits": { + "smithy.api#documentation": "

Disables EBS encryption by default for your account in the current Region.

\n

After you disable encryption by default, you can still create encrypted volumes by \n enabling encryption when you create each volume.

\n

Disabling encryption by default does not change the encryption status of your\n existing volumes.

\n

For more information, see Amazon EBS encryption in the\n Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#DisableEbsEncryptionByDefaultRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableEbsEncryptionByDefaultResult": { + "type": "structure", + "members": { + "EbsEncryptionByDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsEncryptionByDefault", + "smithy.api#documentation": "

The updated status of encryption by default.

", + "smithy.api#xmlName": "ebsEncryptionByDefault" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableFastLaunch": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableFastLaunchRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableFastLaunchResult" + }, + "traits": { + "smithy.api#documentation": "

Discontinue Windows fast launch for a Windows AMI, and clean up existing pre-provisioned\n snapshots. After you disable Windows fast launch, the AMI uses the standard launch process for\n each new instance. Amazon EC2 must remove all pre-provisioned snapshots before you can enable\n Windows fast launch again.

\n \n

You can only change these settings for Windows AMIs that you own or that have been\n shared with you.

\n
" + } + }, + "com.amazonaws.ec2#DisableFastLaunchRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify the ID of the image for which to disable Windows fast launch.

", + "smithy.api#required": {} + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Forces the image settings to turn off Windows fast launch for your Windows AMI. This\n parameter overrides any errors that are encountered while cleaning up resources in your\n account.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableFastLaunchResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the image for which Windows fast launch was disabled.

", + "smithy.api#xmlName": "imageId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#FastLaunchResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The pre-provisioning resource type that must be cleaned after turning off Windows fast\n launch for the Windows AMI. Supported values include: snapshot.

", + "smithy.api#xmlName": "resourceType" + } + }, + "SnapshotConfiguration": { + "target": "com.amazonaws.ec2#FastLaunchSnapshotConfigurationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotConfiguration", + "smithy.api#documentation": "

Parameters that were used for Windows fast launch for the Windows AMI before Windows fast\n launch was disabled. This informs the clean-up process.

", + "smithy.api#xmlName": "snapshotConfiguration" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

The launch template that was used to launch Windows instances from pre-provisioned\n snapshots.

", + "smithy.api#xmlName": "launchTemplate" + } + }, + "MaxParallelLaunches": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxParallelLaunches", + "smithy.api#documentation": "

The maximum number of instances that Amazon EC2 can launch at the same time to create\n pre-provisioned snapshots for Windows fast launch.

", + "smithy.api#xmlName": "maxParallelLaunches" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The owner of the Windows AMI for which Windows fast launch was disabled.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastLaunchStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of Windows fast launch for the specified Windows AMI.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason that the state changed for Windows fast launch for the Windows AMI.

", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "StateTransitionTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionTime", + "smithy.api#documentation": "

The time that the state changed for Windows fast launch for the Windows AMI.

", + "smithy.api#xmlName": "stateTransitionTime" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreErrorItem": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "FastSnapshotRestoreStateErrors": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreStateErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "FastSnapshotRestoreStateErrorSet", + "smithy.api#documentation": "

The errors.

", + "smithy.api#xmlName": "fastSnapshotRestoreStateErrorSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the errors that occurred when disabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreStateError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an error that occurred when disabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreStateErrorItem": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Error": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreStateError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The error.

", + "smithy.api#xmlName": "error" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an error that occurred when disabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreStateErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreStateErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreSuccessItem": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastSnapshotRestoreStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of fast snapshot restores for the snapshot.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason for the state transition. The possible values are as follows:

\n
    \n
  • \n

    \n Client.UserInitiated - The state successfully transitioned to enabling or\n disabling.

    \n
  • \n
  • \n

    \n Client.UserInitiated - Lifecycle state transition - The state successfully transitioned \n to optimizing, enabled, or disabled.

    \n
  • \n
", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that enabled fast snapshot restores on the snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "OwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerAlias", + "smithy.api#documentation": "

The Amazon Web Services owner alias that enabled fast snapshot restores on the snapshot. This is intended for future use.

", + "smithy.api#xmlName": "ownerAlias" + } + }, + "EnablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabling state.

", + "smithy.api#xmlName": "enablingTime" + } + }, + "OptimizingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OptimizingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the optimizing state.

", + "smithy.api#xmlName": "optimizingTime" + } + }, + "EnabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabled state.

", + "smithy.api#xmlName": "enabledTime" + } + }, + "DisablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabling state.

", + "smithy.api#xmlName": "disablingTime" + } + }, + "DisabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabled state.

", + "smithy.api#xmlName": "disabledTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes fast snapshot restores that were successfully disabled.

" + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoreSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestores": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoresRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoresResult" + }, + "traits": { + "smithy.api#documentation": "

Disables fast snapshot restores for the specified snapshots in the specified Availability Zones.

" + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoresRequest": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.ec2#AvailabilityZoneStringList", + "traits": { + "smithy.api#documentation": "

One or more Availability Zones. For example, us-east-2a.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.

", + "smithy.api#xmlName": "AvailabilityZone" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#AvailabilityZoneIdStringList", + "traits": { + "smithy.api#documentation": "

One or more Availability Zone IDs. For example, use2-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.

", + "smithy.api#xmlName": "AvailabilityZoneId" + } + }, + "SourceSnapshotIds": { + "target": "com.amazonaws.ec2#SnapshotIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of one or more snapshots. For example, snap-1234567890abcdef0.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SourceSnapshotId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableFastSnapshotRestoresResult": { + "type": "structure", + "members": { + "Successful": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "Successful", + "smithy.api#documentation": "

Information about the snapshots for which fast snapshot restores were successfully disabled.

", + "smithy.api#xmlName": "successful" + } + }, + "Unsuccessful": { + "target": "com.amazonaws.ec2#DisableFastSnapshotRestoreErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the snapshots for which fast snapshot restores could not be disabled.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableImageResult" + }, + "traits": { + "smithy.api#documentation": "

Sets the AMI state to disabled and removes all launch permissions from the\n AMI. A disabled AMI can't be used for instance launches.

\n

A disabled AMI can't be shared. If an AMI was public or previously shared, it is made\n private. If an AMI was shared with an Amazon Web Services account, organization, or Organizational Unit,\n they lose access to the disabled AMI.

\n

A disabled AMI does not appear in DescribeImages API calls by\n default.

\n

Only the AMI owner can disable an AMI.

\n

You can re-enable a disabled AMI using EnableImage.

\n

For more information, see Disable an AMI in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableImageBlockPublicAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableImageBlockPublicAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableImageBlockPublicAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Disables block public access for AMIs at the account level in the\n specified Amazon Web Services Region. This removes the block public access restriction\n from your account. With the restriction removed, you can publicly share your AMIs in the\n specified Amazon Web Services Region.

\n

For more information, see Block\n public access to your AMIs in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableImageBlockPublicAccessRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableImageBlockPublicAccessResult": { + "type": "structure", + "members": { + "ImageBlockPublicAccessState": { + "target": "com.amazonaws.ec2#ImageBlockPublicAccessDisabledState", + "traits": { + "aws.protocols#ec2QueryName": "ImageBlockPublicAccessState", + "smithy.api#documentation": "

Returns unblocked if the request succeeds; otherwise, it returns an\n error.

", + "smithy.api#xmlName": "imageBlockPublicAccessState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableImageDeprecation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableImageDeprecationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableImageDeprecationResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels the deprecation of the specified AMI.

\n

For more information, see Deprecate an Amazon EC2 AMI in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableImageDeprecationRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableImageDeprecationResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableImageDeregistrationProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtectionResult" + }, + "traits": { + "smithy.api#documentation": "

Disables deregistration protection for an AMI. When deregistration protection is disabled,\n the AMI can be deregistered.

\n

If you chose to include a 24-hour cooldown period when you enabled deregistration\n protection for the AMI, then, when you disable deregistration protection, you won’t\n immediately be able to deregister the AMI.

\n

For more information, see Protect an Amazon EC2 AMI from\n deregistration in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableImageDeregistrationProtectionRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableImageDeregistrationProtectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableImageRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableImageResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Disable Amazon EC2 instances running in an SQL Server High Availability cluster from SQL Server High Availability \n instance standby detection monitoring. Once disabled, Amazon Web Services no longer monitors the \n metadata for the instances to determine whether they are active or standby nodes in the \n SQL Server High Availability cluster.

" + } + }, + "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdUpdateStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances to disable from SQL Server High Availability standby detection monitoring.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, \n without actually making the request, and provides an error response. If you have the \n required permissions, the error response is DryRunOperation. Otherwise, \n it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableInstanceSqlHaStandbyDetectionsResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#RegisteredInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

Information about the instances that were disabled from SQL Server High Availability standby \n detection monitoring.

", + "smithy.api#xmlName": "instanceSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableIpamOrganizationAdminAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountResult" + }, + "traits": { + "smithy.api#documentation": "

Disable the IPAM account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "DelegatedAdminAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Organizations member account ID that you want to disable as IPAM account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableIpamOrganizationAdminAccountResult": { + "type": "structure", + "members": { + "Success": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Success", + "smithy.api#documentation": "

The result of disabling the IPAM account.

", + "smithy.api#xmlName": "success" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableIpamPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableIpamPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableIpamPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Disables an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" + } + }, + "com.amazonaws.ec2#DisableIpamPolicyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy to disable.

", + "smithy.api#required": {} + } + }, + "OrganizationTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services Organizations target for which to disable the IPAM policy. This parameter is required only when IPAM is integrated with Amazon Web Services Organizations. When IPAM is not integrated with Amazon Web Services Organizations, omit this parameter and the policy will be disabled for the current account.

\n

A target can be an individual Amazon Web Services account or an entity within an Amazon Web Services Organization to which an IPAM policy can be applied.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableIpamPolicyResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the IPAM policy was successfully disabled.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableRouteServerPropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableRouteServerPropagationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableRouteServerPropagationResult" + }, + "traits": { + "smithy.api#documentation": "

Disables route propagation from a route server to a specified route table.

\n

When enabled, route server propagation installs the routes in the FIB on the route table you've specified. Route server supports IPv4 and IPv6 route propagation.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DisableRouteServerPropagationRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to disable propagation.

", + "smithy.api#required": {} + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table for which to disable route server propagation.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableRouteServerPropagationResult": { + "type": "structure", + "members": { + "RouteServerPropagation": { + "target": "com.amazonaws.ec2#RouteServerPropagation", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPropagation", + "smithy.api#documentation": "

Information about the disabled route server propagation.

", + "smithy.api#xmlName": "routeServerPropagation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableSerialConsoleAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableSerialConsoleAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableSerialConsoleAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Disables access to the EC2 serial console of all instances for your account. By default,\n\t\t\taccess to the EC2 serial console is disabled for your account. For more information, see\n\t\t\t\tManage account access to the EC2 serial console in the Amazon EC2\n\t\t\t\tUser Guide.

" + } + }, + "com.amazonaws.ec2#DisableSerialConsoleAccessRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableSerialConsoleAccessResult": { + "type": "structure", + "members": { + "SerialConsoleAccessEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled", + "smithy.api#documentation": "

If true, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If false, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.

", + "smithy.api#xmlName": "serialConsoleAccessEnabled" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableSnapshotBlockPublicAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Disables the block public access for snapshots setting at \n the account level for the specified Amazon Web Services Region. After you disable block public \n access for snapshots in a Region, users can publicly share snapshots in that Region.

\n \n

Enabling block public access for snapshots in block-all-sharing \n mode does not change the permissions for snapshots that are already publicly shared. \n Instead, it prevents these snapshots from be publicly visible and publicly accessible. \n Therefore, the attributes for these snapshots still indicate that they are publicly \n shared, even though they are not publicly available.

\n

If you disable block public access , these snapshots will become publicly available \n again.

\n
\n

For more information, see \n Block public access for snapshots in the Amazon EBS User Guide .

\n

" + } + }, + "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableSnapshotBlockPublicAccessResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SnapshotBlockPublicAccessState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

Returns unblocked if the request succeeds.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationResult" + }, + "traits": { + "smithy.api#documentation": "

Disables the specified resource attachment from propagating routes to the specified\n propagation route table.

" + } + }, + "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the propagation route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "smithy.api#documentation": "

The ID of the route table announcement.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableTransitGatewayRouteTablePropagationResult": { + "type": "structure", + "members": { + "Propagation": { + "target": "com.amazonaws.ec2#TransitGatewayPropagation", + "traits": { + "aws.protocols#ec2QueryName": "Propagation", + "smithy.api#documentation": "

Information about route propagation.

", + "smithy.api#xmlName": "propagation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableVgwRoutePropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableVgwRoutePropagationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Disables a virtual private gateway (VGW) from propagating routes to a specified route\n table of a VPC.

", + "smithy.api#examples": [ + { + "title": "To disable route propagation", + "documentation": "This example disables the specified virtual private gateway from propagating static routes to the specified route table.", + "input": { + "RouteTableId": "rtb-22574640", + "GatewayId": "vgw-9a4cacf3" + } + } + ] + } + }, + "com.amazonaws.ec2#DisableVgwRoutePropagationRequest": { + "type": "structure", + "members": { + "GatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#required": {} + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for DisableVgwRoutePropagation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableVpcClassicLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableVpcClassicLinkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableVpcClassicLinkResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances\n linked to it.

" + } + }, + "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to\n\t\t\tpublic IP addresses when addressed between a linked EC2-Classic instance and instances\n\t\t\tin the VPC to which it's linked.

\n

You must specify a VPC ID in the request.

" + } + }, + "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "VpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisableVpcClassicLinkRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableVpcClassicLinkResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateAddressRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Disassociates an Elastic IP address from the instance or network interface it's associated with.

\n

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

\n

An address cannot be disassociated if the all of the following conditions are met:

\n
    \n
  • \n

    Network interface has a publicDualStackDnsName publicDnsName

    \n
  • \n
  • \n

    Public IPv4 address is the primary public IPv4 address

    \n
  • \n
  • \n

    Network interface only has one remaining public IPv4 address

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To disassociate an Elastic IP address", + "documentation": "This example disassociates an Elastic IP address from an instance.", + "input": { + "AssociationId": "eipassoc-2bebb745" + } + } + ] + } + }, + "com.amazonaws.ec2#DisassociateAddressRequest": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#ElasticIpAssociationId", + "traits": { + "smithy.api#documentation": "

The association ID. This parameter is required.

" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#EipAllocationPublicIp", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateApplicationStatusCheck": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateApplicationStatusCheckRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateApplicationStatusCheckResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates an application status check from instances or tags. After disassociation, health monitoring stops for the affected instances. The following rules apply:

\n
    \n
  • \n

    You must specify either TargetTagAssociations or InstanceIds, but not both. Specifying both results in an InvalidParameterCombination error.

    \n
  • \n
  • \n

    The application status check must already exist and belong to your account.

    \n
  • \n
  • \n

    Tag keys must not be blank.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To disassociate an application status check from tags", + "documentation": "This example disassociates an application status check from instances matching the specified tag.", + "input": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "TargetTagAssociations": [ + { + "Key": "env", + "Value": "prod" + } + ] + }, + "output": { + "SuccessfulResults": [ + { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "AssociationType": "EC2TAG", + "AssociationValue": "env=prod" + } + ], + "UnsuccessfulResults": [] + } + } + ] + } + }, + "com.amazonaws.ec2#DisassociateApplicationStatusCheckRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the application status check to disassociate.

", + "smithy.api#required": {} + } + }, + "TargetTagAssociations": { + "target": "com.amazonaws.ec2#CustomKeyValuePairRequestSet", + "traits": { + "smithy.api#documentation": "

The tags to disassociate from the application status check. Specify the same key-value pairs that were used during association.

", + "smithy.api#xmlName": "TargetTagAssociation" + } + }, + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances to disassociate from the application status check.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateApplicationStatusCheckResult": { + "type": "structure", + "members": { + "SuccessfulResults": { + "target": "com.amazonaws.ec2#SuccessfulAssociationResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulResultSet", + "smithy.api#documentation": "

The associations that were successfully removed.

", + "smithy.api#xmlName": "successfulResultSet" + } + }, + "UnsuccessfulResults": { + "target": "com.amazonaws.ec2#UnsuccessfulAssociationResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulResultSet", + "smithy.api#documentation": "

The associations that failed to be removed.

", + "smithy.api#xmlName": "unsuccessfulResultSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwner": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels a pending request to assign billing of the unused capacity of a Capacity\n\t\t\tReservation to a consumer account, or revokes a request that has already been accepted.\n\t\t\tFor more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" + } + }, + "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "UnusedReservationBillingOwnerId": { + "target": "com.amazonaws.ec2#AccountID", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the consumer account to which the request was sent.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateCapacityReservationBillingOwnerResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateClientVpnTargetNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a target network from the specified Client VPN endpoint. When you disassociate the \n\t\t\tlast target network from a Client VPN, the following happens:

\n
    \n
  • \n

    The route that was automatically added for the VPC is deleted

    \n
  • \n
  • \n

    All active client connections are terminated

    \n
  • \n
  • \n

    New client connections are disallowed

    \n
  • \n
  • \n

    The Client VPN endpoint's status changes to pending-associate\n

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint from which to disassociate the target network.

", + "smithy.api#required": {} + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the target network association.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateClientVpnTargetNetworkResult": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID of the target network association.

", + "smithy.api#xmlName": "associationId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AssociationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the target network association.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates an IAM role from an Certificate Manager (ACM) certificate. Disassociating an IAM role \n\t\t\tfrom an ACM certificate removes the Amazon S3 object that contains the certificate, certificate chain, and \n\t\t\tencrypted private key from the Amazon S3 bucket. It also revokes the IAM role's permission to use the\n\t\t\tKMS key used to encrypt the private key. This effectively revokes the role's permission \n\t\t\tto use the certificate.

" + } + }, + "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.ec2#CertificateId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the ACM certificate from which to disassociate the IAM role.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.ec2#RoleId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the IAM role to disassociate.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateEnclaveCertificateIamRoleResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateIamInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateIamInstanceProfileRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateIamInstanceProfileResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates an IAM instance profile from a running or stopped instance.

\n

Use DescribeIamInstanceProfileAssociations to get the association\n ID.

", + "smithy.api#examples": [ + { + "title": "To disassociate an IAM instance profile", + "documentation": "This example disassociates the specified IAM instance profile from an instance.", + "input": { + "AssociationId": "iip-assoc-05020b59952902f5f" + }, + "output": { + "IamInstanceProfileAssociation": { + "InstanceId": "i-123456789abcde123", + "State": "disassociating", + "AssociationId": "iip-assoc-05020b59952902f5f", + "IamInstanceProfile": { + "Id": "AIPAI5IVIHMFFYY2DKV5Y", + "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role" + } + } + } + } + ] + } + }, + "com.amazonaws.ec2#DisassociateIamInstanceProfileRequest": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IAM instance profile association.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateIamInstanceProfileResult": { + "type": "structure", + "members": { + "IamInstanceProfileAssociation": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfileAssociation", + "smithy.api#documentation": "

Information about the IAM instance profile association.

", + "smithy.api#xmlName": "iamInstanceProfileAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateInstanceEventWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateInstanceEventWindowRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateInstanceEventWindowResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates one or more targets from an event window.

\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisassociateInstanceEventWindowRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#required": {} + } + }, + "AssociationTarget": { + "target": "com.amazonaws.ec2#InstanceEventWindowDisassociationRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more targets to disassociate from the specified event window.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateInstanceEventWindowResult": { + "type": "structure", + "members": { + "InstanceEventWindow": { + "target": "com.amazonaws.ec2#InstanceEventWindow", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindow", + "smithy.api#documentation": "

Information about the event window.

", + "smithy.api#xmlName": "instanceEventWindow" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateIpamByoasn": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateIpamByoasnRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateIpamByoasnResult" + }, + "traits": { + "smithy.api#documentation": "

Remove the association between your Autonomous System Number (ASN) and your BYOIP CIDR. You may want to use this action to disassociate an ASN from a CIDR or if you want to swap ASNs. \n For more information, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

" + } + }, + "com.amazonaws.ec2#DisassociateIpamByoasnRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A public 2-byte or 4-byte ASN.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A BYOIP CIDR.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateIpamByoasnResult": { + "type": "structure", + "members": { + "AsnAssociation": { + "target": "com.amazonaws.ec2#AsnAssociation", + "traits": { + "aws.protocols#ec2QueryName": "AsnAssociation", + "smithy.api#documentation": "

An ASN and BYOIP CIDR association.

", + "smithy.api#xmlName": "asnAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateIpamResourceDiscovery": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a resource discovery from an Amazon VPC IPAM. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryAssociationId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource discovery association ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateIpamResourceDiscoveryResult": { + "type": "structure", + "members": { + "IpamResourceDiscoveryAssociation": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryAssociation", + "smithy.api#documentation": "

A resource discovery association.

", + "smithy.api#xmlName": "ipamResourceDiscoveryAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateNatGatewayAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateNatGatewayAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateNatGatewayAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates secondary Elastic IP addresses (EIPs) from a public NAT gateway. \n You cannot disassociate your primary EIP. For more information, see Edit secondary IP address associations in the Amazon VPC User Guide.

\n

While disassociating is in progress, you cannot associate/disassociate additional EIPs while the connections are being drained. You are, however, allowed to delete the NAT gateway.

\n

An EIP is released only at the end of MaxDrainDurationSeconds. It stays\n associated and supports the existing connections but does not support any new connections\n (new connections are distributed across the remaining associated EIPs). As the existing\n connections drain out, the EIPs (and the corresponding private IP addresses mapped to them) \n are released.

" + } + }, + "com.amazonaws.ec2#DisassociateNatGatewayAddressRequest": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#required": {} + } + }, + "AssociationIds": { + "target": "com.amazonaws.ec2#EipAssociationIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The association IDs of EIPs that have been associated with the NAT gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "AssociationId" + } + }, + "MaxDrainDurationSeconds": { + "target": "com.amazonaws.ec2#DrainSeconds", + "traits": { + "smithy.api#documentation": "

The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateNatGatewayAddressResult": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "NatGatewayAddresses": { + "target": "com.amazonaws.ec2#NatGatewayAddressList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayAddressSet", + "smithy.api#documentation": "

Information about the NAT gateway IP addresses.

", + "smithy.api#xmlName": "natGatewayAddressSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateRouteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateRouteServerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateRouteServerResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a route server from a VPC.

\n

A route server association is the connection established between a route server and a VPC.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#DisassociateRouteServerRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server to disassociate.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC to disassociate from the route server.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateRouteServerResult": { + "type": "structure", + "members": { + "RouteServerAssociation": { + "target": "com.amazonaws.ec2#RouteServerAssociation", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerAssociation", + "smithy.api#documentation": "

Information about the disassociated route server.

", + "smithy.api#xmlName": "routeServerAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateRouteTableRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a subnet or gateway from a route table.

\n

After you perform this action, the subnet no longer uses the routes in the route table.\n\t\t\t\tInstead, it uses the routes in the VPC's main route table. For more information\n\t\t\t\tabout route tables, see Route\n\t\t\t\ttables in the Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To disassociate a route table", + "documentation": "This example disassociates the specified route table from its associated subnet.", + "input": { + "AssociationId": "rtbassoc-781d0d1a" + } + } + ] + } + }, + "com.amazonaws.ec2#DisassociateRouteTableRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#RouteTableAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The association ID representing the current association between the route table and subnet or gateway.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "associationId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateSecurityGroupVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateSecurityGroupVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateSecurityGroupVpcResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a security group from a VPC. You cannot disassociate the security group if any Elastic network interfaces in the associated VPC are still associated with the security group.\n \n Note that the disassociation is asynchronous and you can check the status of the request with DescribeSecurityGroupVpcAssociations.

" + } + }, + "com.amazonaws.ec2#DisassociateSecurityGroupVpcRequest": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#DisassociateSecurityGroupVpcSecurityGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A security group ID.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A VPC ID.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateSecurityGroupVpcResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SecurityGroupVpcAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the disassociation.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateSecurityGroupVpcSecurityGroupId": { + "type": "string" + }, + "com.amazonaws.ec2#DisassociateSubnetCidrBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateSubnetCidrBlockRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateSubnetCidrBlockResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

" + } + }, + "com.amazonaws.ec2#DisassociateSubnetCidrBlockRequest": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#SubnetCidrAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The association ID for the CIDR block.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "associationId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateSubnetCidrBlockResult": { + "type": "structure", + "members": { + "Ipv6CidrBlockAssociation": { + "target": "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv6 CIDR block association.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociation" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates the specified subnets from the transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#TransitGatewaySubnetIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the subnets;

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayMulticastDomainResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociations", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Information about the association.

", + "smithy.api#xmlName": "associations" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableResult" + }, + "traits": { + "smithy.api#documentation": "

Removes the association between an an attachment and a policy table.

" + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the disassociated policy table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment to disassociate from the policy table.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayPolicyTableResult": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

Returns details about the transit gateway policy table disassociation.

", + "smithy.api#xmlName": "association" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayRouteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a resource attachment from a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateTransitGatewayRouteTableResult": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#TransitGatewayAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

Information about the association.

", + "smithy.api#xmlName": "association" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateTrunkInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateTrunkInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateTrunkInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Removes an association between a branch network interface with a trunk network interface.

" + } + }, + "com.amazonaws.ec2#DisassociateTrunkInterfaceRequest": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the association

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateTrunkInterfaceResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds and an error otherwise.

", + "smithy.api#xmlName": "return" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

", + "smithy.api#xmlName": "clientToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DisassociateVpcCidrBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisassociateVpcCidrBlockRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisassociateVpcCidrBlockResult" + }, + "traits": { + "smithy.api#documentation": "

Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must\n specify its association ID. You can get the association ID by using\n DescribeVpcs. You must detach or delete all gateways and resources that\n are associated with the CIDR block before you can disassociate it.

\n

You cannot disassociate the CIDR block with which you originally created the VPC (the\n\t\t\tprimary CIDR block).

" + } + }, + "com.amazonaws.ec2#DisassociateVpcCidrBlockRequest": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#VpcCidrAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The association ID for the CIDR block.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "associationId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisassociateVpcCidrBlockResult": { + "type": "structure", + "members": { + "Ipv6CidrBlockAssociation": { + "target": "com.amazonaws.ec2#VpcIpv6CidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv6 CIDR block association.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociation" + } + }, + "CidrBlockAssociation": { + "target": "com.amazonaws.ec2#VpcCidrBlockAssociation", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlockAssociation", + "smithy.api#documentation": "

Information about the IPv4 CIDR block association.

", + "smithy.api#xmlName": "cidrBlockAssociation" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#DiskCount": { + "type": "integer" + }, + "com.amazonaws.ec2#DiskImage": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description of the disk image.

" + } + }, + "Image": { + "target": "com.amazonaws.ec2#DiskImageDetail", + "traits": { + "smithy.api#documentation": "

Information about the disk image.

" + } + }, + "Volume": { + "target": "com.amazonaws.ec2#VolumeDetail", + "traits": { + "smithy.api#documentation": "

Information about the volume.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a disk image.

" + } + }, + "com.amazonaws.ec2#DiskImageDescription": { + "type": "structure", + "members": { + "Checksum": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Checksum", + "smithy.api#documentation": "

The checksum computed for the disk image.

", + "smithy.api#xmlName": "checksum" + } + }, + "Format": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "aws.protocols#ec2QueryName": "Format", + "smithy.api#documentation": "

The disk image format.

", + "smithy.api#xmlName": "format" + } + }, + "ImportManifestUrl": { + "target": "com.amazonaws.ec2#ImportManifestUrl", + "traits": { + "aws.protocols#ec2QueryName": "ImportManifestUrl", + "smithy.api#documentation": "

A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for\n an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in\n the Amazon Simple Storage Service Developer Guide.

\n

For information about the import manifest referenced by this API action, see VM Import Manifest.

", + "smithy.api#xmlName": "importManifestUrl" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Size", + "smithy.api#documentation": "

The size of the disk image, in GiB.

", + "smithy.api#xmlName": "size" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a disk image.

" + } + }, + "com.amazonaws.ec2#DiskImageDetail": { + "type": "structure", + "members": { + "Format": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "aws.protocols#ec2QueryName": "Format", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The disk image format.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "format" + } + }, + "Bytes": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Bytes", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The size of the disk image, in GiB.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "bytes" + } + }, + "ImportManifestUrl": { + "target": "com.amazonaws.ec2#ImportManifestUrl", + "traits": { + "aws.protocols#ec2QueryName": "ImportManifestUrl", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL.\n For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication\n Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer\n Guide.

\n

For information about the import manifest referenced by this API action, see VM Import Manifest.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "importManifestUrl" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a disk image.

" + } + }, + "com.amazonaws.ec2#DiskImageFormat": { + "type": "enum", + "members": { + "VMDK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VMDK" + } + }, + "RAW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RAW" + } + }, + "VHD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VHD" + } + } + } + }, + "com.amazonaws.ec2#DiskImageList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DiskImage" + } + }, + "com.amazonaws.ec2#DiskImageVolumeDescription": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The volume identifier.

", + "smithy.api#xmlName": "id" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Size", + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#xmlName": "size" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a disk image volume.

" + } + }, + "com.amazonaws.ec2#DiskInfo": { + "type": "structure", + "members": { + "SizeInGB": { + "target": "com.amazonaws.ec2#DiskSize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInGB", + "smithy.api#documentation": "

The size of the disk in GB.

", + "smithy.api#xmlName": "sizeInGB" + } + }, + "Count": { + "target": "com.amazonaws.ec2#DiskCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of disks with this configuration.

", + "smithy.api#xmlName": "count" + } + }, + "Type": { + "target": "com.amazonaws.ec2#DiskType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of disk.

", + "smithy.api#xmlName": "type" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a disk.

" + } + }, + "com.amazonaws.ec2#DiskInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DiskInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DiskSize": { + "type": "long" + }, + "com.amazonaws.ec2#DiskType": { + "type": "enum", + "members": { + "hdd": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hdd" + } + }, + "ssd": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ssd" + } + } + } + }, + "com.amazonaws.ec2#DnsEntry": { + "type": "structure", + "members": { + "DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The DNS name.

", + "smithy.api#xmlName": "dnsName" + } + }, + "HostedZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostedZoneId", + "smithy.api#documentation": "

The ID of the private hosted zone.

", + "smithy.api#xmlName": "hostedZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a DNS entry.

" + } + }, + "com.amazonaws.ec2#DnsEntrySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DnsEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#DnsNameState": { + "type": "enum", + "members": { + "PendingVerification": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pendingVerification" + } + }, + "Verified": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified" + } + }, + "Failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#DnsOptions": { + "type": "structure", + "members": { + "DnsRecordIpType": { + "target": "com.amazonaws.ec2#DnsRecordIpType", + "traits": { + "aws.protocols#ec2QueryName": "DnsRecordIpType", + "smithy.api#documentation": "

The DNS records created for the endpoint.

", + "smithy.api#xmlName": "dnsRecordIpType" + } + }, + "PrivateDnsOnlyForInboundResolverEndpoint": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsOnlyForInboundResolverEndpoint", + "smithy.api#documentation": "

Indicates whether to enable private DNS only for inbound endpoints.

", + "smithy.api#xmlName": "privateDnsOnlyForInboundResolverEndpoint" + } + }, + "PrivateDnsPreference": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsPreference", + "smithy.api#documentation": "

\nThe preference for which private domains have a private hosted zone created for and associated with the specified VPC. Only supported when private DNS is enabled and when the VPC endpoint type is ServiceNetwork or Resource.\n

\n
    \n
  • \n

    \n ALL_DOMAINS - VPC Lattice provisions private hosted zones for all custom domain names.

    \n
  • \n
  • \n

    \n VERIFIED_DOMAINS_ONLY - VPC Lattice provisions a private hosted zone only if custom domain name has been verified by the provider.

    \n
  • \n
  • \n

    \n VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS - VPC Lattice provisions private hosted zones for all verified custom domain names and other domain names that the resource consumer specifies. The resource consumer specifies the domain names in the PrivateDnsSpecifiedDomains parameter.

    \n
  • \n
  • \n

    \n SPECIFIED_DOMAINS_ONLY - VPC Lattice provisions a private hosted zone for domain names specified by the resource consumer. The resource consumer specifies the domain names in the PrivateDnsSpecifiedDomains parameter.

    \n
  • \n
", + "smithy.api#xmlName": "privateDnsPreference" + } + }, + "PrivateDnsSpecifiedDomains": { + "target": "com.amazonaws.ec2#PrivateDnsSpecifiedDomainSet", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsSpecifiedDomainSet", + "smithy.api#documentation": "

\nIndicates which of the private domains to create private hosted zones for and associate with the specified VPC. Only supported when private DNS is enabled and the private DNS preference is VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS or SPECIFIED_DOMAINS_ONLY. \n

", + "smithy.api#xmlName": "privateDnsSpecifiedDomainSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the DNS options for an endpoint.

" + } + }, + "com.amazonaws.ec2#DnsOptionsSpecification": { + "type": "structure", + "members": { + "DnsRecordIpType": { + "target": "com.amazonaws.ec2#DnsRecordIpType", + "traits": { + "smithy.api#documentation": "

The DNS records created for the endpoint.

" + } + }, + "PrivateDnsOnlyForInboundResolverEndpoint": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable private DNS only for inbound endpoints. This option is\n available only for services that support both gateway and interface endpoints. It routes\n traffic that originates from the VPC to the gateway endpoint and traffic that originates\n from on-premises to the interface endpoint.

" + } + }, + "PrivateDnsPreference": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\n The preference for which private domains have a private hosted zone created for and associated with the specified VPC. Only supported when private DNS is enabled and when the VPC endpoint type is ServiceNetwork or Resource.\n

\n
    \n
  • \n

    \n ALL_DOMAINS - VPC Lattice provisions private hosted zones for all custom domain names.

    \n
  • \n
  • \n

    \n VERIFIED_DOMAINS_ONLY - VPC Lattice provisions a private hosted zone only if custom domain name has been verified by the provider.

    \n
  • \n
  • \n

    \n VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS - VPC Lattice provisions private hosted zones for all verified custom domain names and other domain names that the resource consumer specifies. The resource consumer specifies the domain names in the PrivateDnsSpecifiedDomains parameter.

    \n
  • \n
  • \n

    \n SPECIFIED_DOMAINS_ONLY - VPC Lattice provisions a private hosted zone for domain names specified by the resource consumer. The resource consumer specifies the domain names in the PrivateDnsSpecifiedDomains parameter.

    \n
  • \n
" + } + }, + "PrivateDnsSpecifiedDomains": { + "target": "com.amazonaws.ec2#PrivateDnsSpecifiedDomainSet", + "traits": { + "smithy.api#documentation": "

\nIndicates which of the private domains to create private hosted zones for and associate with the specified VPC. Only supported when private DNS is enabled and the private DNS preference is verified-domains-and-specified-domains or specified-domains-only. \n

", + "smithy.api#xmlName": "PrivateDnsSpecifiedDomain" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the DNS options for an endpoint.

" + } + }, + "com.amazonaws.ec2#DnsRecordIpType": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "dualstack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dualstack" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + }, + "service_defined": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service-defined" + } + } + } + }, + "com.amazonaws.ec2#DnsServersOptionsModifyStructure": { + "type": "structure", + "members": { + "CustomDnsServers": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the DNS servers to be used. You can specify up to \n\t\t\ttwo DNS servers. Ensure that the DNS servers can be reached by the clients. The specified values \n\t\t\toverwrite the existing values.

" + } + }, + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether DNS servers should be used. Specify False to delete the existing DNS \n\t\t\tservers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the DNS server to be used.

" + } + }, + "com.amazonaws.ec2#DnsSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#DomainType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + } + } + }, + "com.amazonaws.ec2#Double": { + "type": "double" + }, + "com.amazonaws.ec2#DoubleWithConstraints": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.001, + "max": 99.999 + } + } + }, + "com.amazonaws.ec2#DrainSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 4000 + } + } + }, + "com.amazonaws.ec2#DynamicRoutingValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#EbsBlockDevice": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the EBS volume is deleted on instance termination. For more\n information, see Preserving Amazon EBS volumes on instance termination in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Iops", + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,\n this represents the number of IOPS that are provisioned for the volume. For gp2\n volumes, this represents the baseline performance of the volume and the rate at which\n the volume accumulates I/O credits for bursting.

\n

The following are the supported values for each volume type:

\n
    \n
  • \n

    \n gp3: 3,000 - 80,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

For io2 volumes, you can achieve up to 256,000 IOPS on \ninstances \nbuilt on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.

\n

This parameter is required for io1 and io2 volumes. The default for gp3 volumes\n is 3,000 IOPS.

", + "smithy.api#xmlName": "iops" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

The size of the volume, in GiBs. You must specify either a snapshot ID or a volume\n size. If you specify a snapshot, the default is the snapshot size. You can specify a\n volume size that is equal to or larger than the snapshot size.

\n

The following are the supported sizes for each volume type:

\n
    \n
  • \n

    \n gp2: 1 - 16,384 GiB

    \n
  • \n
  • \n

    \n gp3: 1 - 65,536 GiB

    \n
  • \n
  • \n

    \n io1: 4 - 16,384 GiB

    \n
  • \n
  • \n

    \n io2: 4 - 65,536 GiB

    \n
  • \n
  • \n

    \n st1 and sc1: 125 - 16,384 GiB

    \n
  • \n
  • \n

    \n standard: 1 - 1024 GiB

    \n
  • \n
", + "smithy.api#xmlName": "volumeSize" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "VolumeType", + "smithy.api#documentation": "

The volume type. For more information, see Amazon EBS volume types in the\n Amazon EBS User Guide.

", + "smithy.api#xmlName": "volumeType" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key \n to use for EBS encryption.

\n

This parameter is only supported on BlockDeviceMapping objects called by\n RunInstances, RequestSpotFleet,\n and RequestSpotInstances.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Throughput", + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

\n

This parameter is valid only for gp3 volumes.

\n

Valid Range: Minimum value of 125. Maximum value of 2,000.

", + "smithy.api#xmlName": "throughput" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The ARN of the Outpost on which the snapshot is stored.

\n

This parameter is not supported when using CreateImage.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone where the EBS volume will be created (for example,\n us-east-1a).

\n

Either AvailabilityZone or AvailabilityZoneId can be specified,\n but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within\n the Region.

\n

This parameter is not supported when using \n CreateFleet, \n CreateImage, \n DescribeImages, \n RequestSpotFleet, \n RequestSpotInstances, and \n RunInstances.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the encryption state of an EBS volume is changed while being\n restored from a backing snapshot. The effect of setting the encryption state to true depends on \nthe volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EBS User Guide.

\n

In no case can you remove encryption from an encrypted volume.

\n

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For\n more information, see Supported instance types.

\n

This parameter is not returned by DescribeImageAttribute.

\n

For CreateImage and RegisterImage, whether you can \n include this parameter, and the allowed values differ depending on the type of block \n device mapping you are creating.

\n
    \n
  • \n

    If you are creating a block device mapping for a new (empty) \n volume, you can include this parameter, and specify either true \n for an encrypted volume, or false for an unencrypted volume. If you omit \n this parameter, it defaults to false (unencrypted).

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing \n encrypted or unencrypted snapshot, you must omit this parameter. If you \n include this parameter, the request will fail, regardless of the value that you \n specify.

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing \n unencrypted volume, you can include this parameter, but you must specify \n false. If you specify true, the request will fail. In this \n case, we recommend that you omit the parameter.

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing \n encrypted volume, you can include this parameter, and specify either \n true or false. However, if you specify false, \n the parameter is ignored and the block device mapping is always encrypted. In this \n case, we recommend that you omit the parameter.

    \n
  • \n
", + "smithy.api#xmlName": "encrypted" + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot \n blocks from Amazon S3 to the volume. This is also known as volume \n initialization. Specifying a volume initialization rate ensures that the volume is initialized \n at a predictable and consistent rate after creation. For more information, see \n Initialize \n Amazon EBS volumes in the Amazon EC2 User Guide.

\n

This parameter is supported only for volumes created from snapshots. Omit this parameter \n if:

\n
    \n
  • \n

    You want to create the volume using fast snapshot restore. You must specify a snapshot \n that is enabled for fast snapshot restore. In this case, the volume is fully initialized at \n creation.

    \n \n

    If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, \n the volume will be initialized at the specified rate instead of fast snapshot restore.

    \n
    \n
  • \n
  • \n

    You want to create a volume that is initialized at the default rate.

    \n
  • \n
\n

This parameter is not supported when using CreateImage \n and DescribeImages.

\n

Valid range: 100 - 300 MiB/s

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone where the EBS volume will be created (for example,\n use1-az1).

\n

Either AvailabilityZone or AvailabilityZoneId can be specified,\n but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within\n the Region.

\n

This parameter is not supported when using \n CreateFleet, \n CreateImage, \n DescribeImages, \n RequestSpotFleet, \n RequestSpotInstances, and \n RunInstances.

" + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device for an EBS volume.

" + } + }, + "com.amazonaws.ec2#EbsBlockDeviceResponse": { + "type": "structure", + "members": { + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the volume is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the volume is deleted on instance termination.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Iops", + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,\n this represents the number of IOPS that are provisioned for the volume. For gp2\n volumes, this represents the baseline performance of the volume and the rate at which\n the volume accumulates I/O credits for bursting.

", + "smithy.api#xmlName": "iops" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Throughput", + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

", + "smithy.api#xmlName": "throughput" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key \n to use for EBS encryption.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

The size of the volume, in GiBs.

", + "smithy.api#xmlName": "volumeSize" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "VolumeType", + "smithy.api#documentation": "

The volume type. For more information, see Amazon EBS volume types in the\n Amazon EBS User Guide.

", + "smithy.api#xmlName": "volumeType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device for an EBS volume.

" + } + }, + "com.amazonaws.ec2#EbsCardIndex": { + "type": "integer" + }, + "com.amazonaws.ec2#EbsCardInfo": { + "type": "structure", + "members": { + "EbsCardIndex": { + "target": "com.amazonaws.ec2#EbsCardIndex", + "traits": { + "aws.protocols#ec2QueryName": "EbsCardIndex", + "smithy.api#documentation": "

The index of the EBS card.

", + "smithy.api#xmlName": "ebsCardIndex" + } + }, + "BaselineBandwidthInMbps": { + "target": "com.amazonaws.ec2#BaselineBandwidthInMbps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineBandwidthInMbps", + "smithy.api#documentation": "

The baseline bandwidth performance for the EBS card, in Mbps.

", + "smithy.api#xmlName": "baselineBandwidthInMbps" + } + }, + "BaselineThroughputInMBps": { + "target": "com.amazonaws.ec2#BaselineThroughputInMBps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineThroughputInMBps", + "smithy.api#documentation": "

The baseline throughput performance for the EBS card, in MBps.

", + "smithy.api#xmlName": "baselineThroughputInMBps" + } + }, + "BaselineIops": { + "target": "com.amazonaws.ec2#BaselineIops", + "traits": { + "aws.protocols#ec2QueryName": "BaselineIops", + "smithy.api#documentation": "

The baseline IOPS performance for the EBS card.

", + "smithy.api#xmlName": "baselineIops" + } + }, + "MaximumBandwidthInMbps": { + "target": "com.amazonaws.ec2#MaximumBandwidthInMbps", + "traits": { + "aws.protocols#ec2QueryName": "MaximumBandwidthInMbps", + "smithy.api#documentation": "

The maximum bandwidth performance for the EBS card, in Mbps.

", + "smithy.api#xmlName": "maximumBandwidthInMbps" + } + }, + "MaximumThroughputInMBps": { + "target": "com.amazonaws.ec2#MaximumThroughputInMBps", + "traits": { + "aws.protocols#ec2QueryName": "MaximumThroughputInMBps", + "smithy.api#documentation": "

The maximum throughput performance for the EBS card, in MBps.

", + "smithy.api#xmlName": "maximumThroughputInMBps" + } + }, + "MaximumIops": { + "target": "com.amazonaws.ec2#MaximumIops", + "traits": { + "aws.protocols#ec2QueryName": "MaximumIops", + "smithy.api#documentation": "

The maximum IOPS performance for the EBS card.

", + "smithy.api#xmlName": "maximumIops" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the performance characteristics of an EBS card on the instance type.

" + } + }, + "com.amazonaws.ec2#EbsCardInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EbsCardInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EbsEncryptionSupport": { + "type": "enum", + "members": { + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "supported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#EbsInfo": { + "type": "structure", + "members": { + "EbsOptimizedSupport": { + "target": "com.amazonaws.ec2#EbsOptimizedSupport", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimizedSupport", + "smithy.api#documentation": "

Indicates whether the instance type is Amazon EBS-optimized. For more information, see Amazon EBS-optimized\n instances in Amazon EC2 User Guide.

", + "smithy.api#xmlName": "ebsOptimizedSupport" + } + }, + "EncryptionSupport": { + "target": "com.amazonaws.ec2#EbsEncryptionSupport", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionSupport", + "smithy.api#documentation": "

Indicates whether Amazon EBS encryption is supported.

", + "smithy.api#xmlName": "encryptionSupport" + } + }, + "EbsOptimizedInfo": { + "target": "com.amazonaws.ec2#EbsOptimizedInfo", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimizedInfo", + "smithy.api#documentation": "

Describes the optimized EBS performance for the instance type.

", + "smithy.api#xmlName": "ebsOptimizedInfo" + } + }, + "NvmeSupport": { + "target": "com.amazonaws.ec2#EbsNvmeSupport", + "traits": { + "aws.protocols#ec2QueryName": "NvmeSupport", + "smithy.api#documentation": "

Indicates whether non-volatile memory express (NVMe) is supported.

", + "smithy.api#xmlName": "nvmeSupport" + } + }, + "MaximumEbsAttachments": { + "target": "com.amazonaws.ec2#MaximumEbsAttachments", + "traits": { + "aws.protocols#ec2QueryName": "MaximumEbsAttachments", + "smithy.api#documentation": "

Indicates the maximum number of Amazon EBS volumes that can be attached to \n the instance type. For more information, see Amazon EBS volume limits for \n Amazon EC2 instances in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "maximumEbsAttachments" + } + }, + "AttachmentLimitType": { + "target": "com.amazonaws.ec2#AttachmentLimitType", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentLimitType", + "smithy.api#documentation": "

Indicates whether the instance type features a shared or dedicated Amazon EBS \n volume attachment limit. For more information, see Amazon EBS volume limits for \n Amazon EC2 instances in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "attachmentLimitType" + } + }, + "MaximumEbsCards": { + "target": "com.amazonaws.ec2#MaximumEbsCards", + "traits": { + "aws.protocols#ec2QueryName": "MaximumEbsCards", + "smithy.api#documentation": "

Indicates the number of EBS cards supported by the instance type.

", + "smithy.api#xmlName": "maximumEbsCards" + } + }, + "EbsCards": { + "target": "com.amazonaws.ec2#EbsCardInfoList", + "traits": { + "aws.protocols#ec2QueryName": "EbsCardSet", + "smithy.api#documentation": "

Describes the EBS cards available for the instance type.

", + "smithy.api#xmlName": "ebsCardSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon EBS features supported by the instance type.

" + } + }, + "com.amazonaws.ec2#EbsInstanceBlockDevice": { + "type": "structure", + "members": { + "AttachTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The time stamp when the attachment initiated.

", + "smithy.api#xmlName": "attachTime" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the volume is deleted on instance termination.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state.

", + "smithy.api#xmlName": "status" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the EBS volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "AssociatedResource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedResource", + "smithy.api#documentation": "

The ARN of the Amazon Web Services-managed resource \n to which the volume is attached.

", + "smithy.api#xmlName": "associatedResource" + } + }, + "VolumeOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the volume.

\n

This parameter is returned only for volumes that are attached to \n Amazon Web Services-managed resources.

", + "smithy.api#xmlName": "volumeOwnerId" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the EBS volume.

", + "smithy.api#xmlName": "operator" + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EbsCardIndex", + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

", + "smithy.api#xmlName": "ebsCardIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a parameter used to set up an EBS volume in a block device mapping.

" + } + }, + "com.amazonaws.ec2#EbsInstanceBlockDeviceSpecification": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the EBS volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the volume is deleted on instance termination.

", + "smithy.api#xmlName": "deleteOnTermination" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes information used to set up an EBS volume specified in a block device\n mapping.

" + } + }, + "com.amazonaws.ec2#EbsNvmeSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#EbsOptimizedInfo": { + "type": "structure", + "members": { + "BaselineBandwidthInMbps": { + "target": "com.amazonaws.ec2#BaselineBandwidthInMbps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineBandwidthInMbps", + "smithy.api#documentation": "

The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.

", + "smithy.api#xmlName": "baselineBandwidthInMbps" + } + }, + "BaselineThroughputInMBps": { + "target": "com.amazonaws.ec2#BaselineThroughputInMBps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineThroughputInMBps", + "smithy.api#documentation": "

The baseline throughput performance for an EBS-optimized instance type, in MB/s.

", + "smithy.api#xmlName": "baselineThroughputInMBps" + } + }, + "BaselineIops": { + "target": "com.amazonaws.ec2#BaselineIops", + "traits": { + "aws.protocols#ec2QueryName": "BaselineIops", + "smithy.api#documentation": "

The baseline input/output storage operations per seconds for an EBS-optimized instance\n type.

", + "smithy.api#xmlName": "baselineIops" + } + }, + "MaximumBandwidthInMbps": { + "target": "com.amazonaws.ec2#MaximumBandwidthInMbps", + "traits": { + "aws.protocols#ec2QueryName": "MaximumBandwidthInMbps", + "smithy.api#documentation": "

The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.

", + "smithy.api#xmlName": "maximumBandwidthInMbps" + } + }, + "MaximumThroughputInMBps": { + "target": "com.amazonaws.ec2#MaximumThroughputInMBps", + "traits": { + "aws.protocols#ec2QueryName": "MaximumThroughputInMBps", + "smithy.api#documentation": "

The maximum throughput performance for an EBS-optimized instance type, in MB/s.

", + "smithy.api#xmlName": "maximumThroughputInMBps" + } + }, + "MaximumIops": { + "target": "com.amazonaws.ec2#MaximumIops", + "traits": { + "aws.protocols#ec2QueryName": "MaximumIops", + "smithy.api#documentation": "

The maximum input/output storage operations per second for an EBS-optimized instance\n type.

", + "smithy.api#xmlName": "maximumIops" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the optimized EBS performance for supported instance types.

" + } + }, + "com.amazonaws.ec2#EbsOptimizedSupport": { + "type": "enum", + "members": { + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "supported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + }, + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#EbsStatusDetails": { + "type": "structure", + "members": { + "ImpairedSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ImpairedSince", + "smithy.api#documentation": "

The date and time when the attached EBS status check failed.

", + "smithy.api#xmlName": "impairedSince" + } + }, + "Name": { + "target": "com.amazonaws.ec2#StatusName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the attached EBS status check.

", + "smithy.api#xmlName": "name" + } + }, + "Status": { + "target": "com.amazonaws.ec2#StatusType", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The result of the attached EBS status check.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the attached EBS status check for an instance.

" + } + }, + "com.amazonaws.ec2#EbsStatusDetailsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EbsStatusDetails", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EbsStatusSummary": { + "type": "structure", + "members": { + "Details": { + "target": "com.amazonaws.ec2#EbsStatusDetailsList", + "traits": { + "aws.protocols#ec2QueryName": "Details", + "smithy.api#documentation": "

Details about the attached EBS status check for an instance.

", + "smithy.api#xmlName": "details" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SummaryStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current status.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summary of the attached EBS volume status for an instance.

" + } + }, + "com.amazonaws.ec2#Ec2InstanceConnectEndpoint": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that created the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "ownerId" + } + }, + "InstanceConnectEndpointId": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceConnectEndpointId", + "smithy.api#documentation": "

The ID of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "instanceConnectEndpointId" + } + }, + "InstanceConnectEndpointArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "InstanceConnectEndpointArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "instanceConnectEndpointArn" + } + }, + "State": { + "target": "com.amazonaws.ec2#Ec2InstanceConnectEndpointState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

The message for the current state of the EC2 Instance Connect Endpoint. \n Can include a failure message.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The DNS name of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "dnsName" + } + }, + "FipsDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FipsDnsName", + "smithy.api#documentation": "

The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2\n Instance Connect Endpoint.

", + "smithy.api#xmlName": "fipsDnsName" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#NetworkInterfaceIdSet", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceIdSet", + "smithy.api#documentation": "

The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2\n Instance Connect Endpoint.

", + "smithy.api#xmlName": "networkInterfaceIdSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC in which the EC2 Instance Connect Endpoint was created.

", + "smithy.api#xmlName": "vpcId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "CreatedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreatedAt", + "smithy.api#documentation": "

The date and time that the EC2 Instance Connect Endpoint was created.

", + "smithy.api#xmlName": "createdAt" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which the EC2 Instance Connect Endpoint was created.

", + "smithy.api#xmlName": "subnetId" + } + }, + "PreserveClientIp": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PreserveClientIp", + "smithy.api#documentation": "

Indicates whether your client's IP address is preserved as the source when you connect to a resource.\n The following are the possible values.

\n
    \n
  • \n

    \n true - Use the IP address of the client. Your instance must have an IPv4 address.

    \n
  • \n
  • \n

    \n false - Use the IP address of the network interface.

    \n
  • \n
\n

Default: false\n

", + "smithy.api#xmlName": "preserveClientIp" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdSet", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupIdSet", + "smithy.api#documentation": "

The security groups associated with the endpoint. If you didn't specify a security group, \n the default security group for your VPC is associated with the endpoint.

", + "smithy.api#xmlName": "securityGroupIdSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "tagSet" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "aws.protocols#ec2QueryName": "IpAddressType", + "smithy.api#documentation": "

The IP address type of the endpoint.

", + "smithy.api#xmlName": "ipAddressType" + } + }, + "PublicDnsNames": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointPublicDnsNames", + "traits": { + "aws.protocols#ec2QueryName": "PublicDnsNames", + "smithy.api#documentation": "

The public DNS names of the endpoint.

", + "smithy.api#xmlName": "publicDnsNames" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Instance Connect Endpoint.

" + } + }, + "com.amazonaws.ec2#Ec2InstanceConnectEndpointState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "update_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-in-progress" + } + }, + "update_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-complete" + } + }, + "update_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-failed" + } + } + } + }, + "com.amazonaws.ec2#EfaInfo": { + "type": "structure", + "members": { + "MaximumEfaInterfaces": { + "target": "com.amazonaws.ec2#MaximumEfaInterfaces", + "traits": { + "aws.protocols#ec2QueryName": "MaximumEfaInterfaces", + "smithy.api#documentation": "

The maximum number of Elastic Fabric Adapters for the instance type.

", + "smithy.api#xmlName": "maximumEfaInterfaces" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Elastic Fabric Adapters for the instance type.

" + } + }, + "com.amazonaws.ec2#EfaSupportedFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#EgressOnlyInternetGateway": { + "type": "structure", + "members": { + "Attachments": { + "target": "com.amazonaws.ec2#InternetGatewayAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentSet", + "smithy.api#documentation": "

Information about the attachment of the egress-only internet gateway.

", + "smithy.api#xmlName": "attachmentSet" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewayId", + "smithy.api#documentation": "

The ID of the egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGatewayId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the egress-only internet gateway.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an egress-only internet gateway.

" + } + }, + "com.amazonaws.ec2#EgressOnlyInternetGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#EgressOnlyInternetGatewayIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EgressOnlyInternetGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EipAllocationPublicIp": { + "type": "string" + }, + "com.amazonaws.ec2#EipAssociationIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticIpAssociationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EkPubKeyFormat": { + "type": "enum", + "members": { + "der": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "der" + } + }, + "tpmt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tpmt" + } + } + } + }, + "com.amazonaws.ec2#EkPubKeyType": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rsa-2048" + } + }, + "ECC_SEC_P384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ecc-sec-p384" + } + } + } + }, + "com.amazonaws.ec2#EkPubKeyValue": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ElasticGpuAssociation": { + "type": "structure", + "members": { + "ElasticGpuId": { + "target": "com.amazonaws.ec2#ElasticGpuId", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuId", + "smithy.api#documentation": "

The ID of the Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuId" + } + }, + "ElasticGpuAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuAssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "elasticGpuAssociationId" + } + }, + "ElasticGpuAssociationState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuAssociationState", + "smithy.api#documentation": "

The state of the association between the instance and the\n Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuAssociationState" + } + }, + "ElasticGpuAssociationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuAssociationTime", + "smithy.api#documentation": "

The time the Elastic Graphics accelerator was associated with the instance.

", + "smithy.api#xmlName": "elasticGpuAssociationTime" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
\n

Describes the association between an instance and an Elastic Graphics accelerator.

" + } + }, + "com.amazonaws.ec2#ElasticGpuAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpuAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticGpuHealth": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ElasticGpuStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The health status.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
\n

Describes the status of an Elastic Graphics accelerator.

" + } + }, + "com.amazonaws.ec2#ElasticGpuId": { + "type": "string" + }, + "com.amazonaws.ec2#ElasticGpuIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpuId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticGpuSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticGpuSpecification": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of Elastic Graphics accelerator.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
\n

A specification for an Elastic Graphics accelerator.

" + } + }, + "com.amazonaws.ec2#ElasticGpuSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpuSpecification", + "traits": { + "smithy.api#xmlName": "ElasticGpuSpecification" + } + } + }, + "com.amazonaws.ec2#ElasticGpuSpecificationResponse": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
", + "smithy.api#xmlName": "type" + } + } + }, + "traits": { + "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
" + } + }, + "com.amazonaws.ec2#ElasticGpuSpecificationResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpuSpecificationResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticGpuSpecifications": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticGpuSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticGpuState": { + "type": "enum", + "members": { + "Attached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATTACHED" + } + } + } + }, + "com.amazonaws.ec2#ElasticGpuStatus": { + "type": "enum", + "members": { + "Ok": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OK" + } + }, + "Impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPAIRED" + } + } + } + }, + "com.amazonaws.ec2#ElasticGpus": { + "type": "structure", + "members": { + "ElasticGpuId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuId", + "smithy.api#documentation": "

The ID of the Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in the which the Elastic Graphics accelerator resides.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "ElasticGpuType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuType", + "smithy.api#documentation": "

The type of Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuType" + } + }, + "ElasticGpuHealth": { + "target": "com.amazonaws.ec2#ElasticGpuHealth", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuHealth", + "smithy.api#documentation": "

The status of the Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuHealth" + } + }, + "ElasticGpuState": { + "target": "com.amazonaws.ec2#ElasticGpuState", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuState", + "smithy.api#documentation": "

The state of the Elastic Graphics accelerator.

", + "smithy.api#xmlName": "elasticGpuState" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance to which the Elastic Graphics accelerator is attached.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Elastic Graphics accelerator.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
\n

Describes an Elastic Graphics accelerator.

" + } + }, + "com.amazonaws.ec2#ElasticInferenceAccelerator": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n \tThe type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, eia1.xlarge, eia2.medium, eia2.large, and eia2.xlarge.\n

", + "smithy.api#required": {} + } + }, + "Count": { + "target": "com.amazonaws.ec2#ElasticInferenceAcceleratorCount", + "traits": { + "smithy.api#documentation": "

\n The number of elastic inference accelerators to attach to the instance. \n

\n

Default: 1

" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

\n Describes an elastic inference accelerator. \n

" + } + }, + "com.amazonaws.ec2#ElasticInferenceAcceleratorAssociation": { + "type": "structure", + "members": { + "ElasticInferenceAcceleratorArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorArn", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the elastic inference accelerator. \n

", + "smithy.api#xmlName": "elasticInferenceAcceleratorArn" + } + }, + "ElasticInferenceAcceleratorAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorAssociationId", + "smithy.api#documentation": "

\n The ID of the association. \n

", + "smithy.api#xmlName": "elasticInferenceAcceleratorAssociationId" + } + }, + "ElasticInferenceAcceleratorAssociationState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorAssociationState", + "smithy.api#documentation": "

\n The state of the elastic inference accelerator.\n

", + "smithy.api#xmlName": "elasticInferenceAcceleratorAssociationState" + } + }, + "ElasticInferenceAcceleratorAssociationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorAssociationTime", + "smithy.api#documentation": "

\n The time at which the elastic inference accelerator is associated with an instance.\n

", + "smithy.api#xmlName": "elasticInferenceAcceleratorAssociationTime" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

\n Describes the association between an instance and an elastic inference accelerator. \n

" + } + }, + "com.amazonaws.ec2#ElasticInferenceAcceleratorAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticInferenceAcceleratorAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticInferenceAcceleratorCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#ElasticInferenceAccelerators": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ElasticInferenceAccelerator", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ElasticIpAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#EnaSrdSpecification": { + "type": "structure", + "members": { + "EnaSrdEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether ENA Express is enabled for the network interface.

" + } + }, + "EnaSrdUdpSpecification": { + "target": "com.amazonaws.ec2#EnaSrdUdpSpecification", + "traits": { + "smithy.api#documentation": "

Configures ENA Express for UDP network traffic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the \n\t\t\tmaximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. \n\t\t\tWith ENA Express, you can communicate between two EC2 instances in the same subnet within the same \n\t\t\taccount, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

\n

To improve the reliability of network packet delivery, ENA Express reorders network packets on the \n\t\t\treceiving end by default. However, some UDP-based applications are designed to handle network packets \n\t\t\tthat are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express \n\t\t\tis enabled, you can specify whether UDP network traffic uses it.

" + } + }, + "com.amazonaws.ec2#EnaSrdSpecificationRequest": { + "type": "structure", + "members": { + "EnaSrdEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether ENA Express is enabled for the network interface when you launch an\n instance.

" + } + }, + "EnaSrdUdpSpecification": { + "target": "com.amazonaws.ec2#EnaSrdUdpSpecificationRequest", + "traits": { + "smithy.api#documentation": "

Contains ENA Express settings for UDP network traffic for the network interface\n attached to the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Launch instances with ENA Express settings configured from your launch\n template.

" + } + }, + "com.amazonaws.ec2#EnaSrdSupported": { + "type": "boolean" + }, + "com.amazonaws.ec2#EnaSrdUdpSpecification": { + "type": "structure", + "members": { + "EnaSrdUdpEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, \n\t\t\tyou must first enable ENA Express.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic \n\t\t\tautomatically uses it. However, some UDP-based applications are designed to handle network packets that are \n\t\t\tout of order, without a need for retransmission, such as live video broadcasting or other near-real-time \n\t\t\tapplications. For UDP traffic, you can specify whether to use ENA Express, based on your application \n\t\t\tenvironment needs.

" + } + }, + "com.amazonaws.ec2#EnaSrdUdpSpecificationRequest": { + "type": "structure", + "members": { + "EnaSrdUdpEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether UDP traffic uses ENA Express for your instance. To ensure that UDP\n traffic can use ENA Express when you launch an instance, you must also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configures ENA Express for UDP network traffic from your launch template.

" + } + }, + "com.amazonaws.ec2#EnaSupport": { + "type": "enum", + "members": { + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "supported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + }, + "required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#EnableAddressTransfer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableAddressTransferRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableAddressTransferResult" + }, + "traits": { + "smithy.api#documentation": "

Enables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#EnableAddressTransferRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The allocation ID of an Elastic IP address.

", + "smithy.api#required": {} + } + }, + "TransferAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the account that you want to transfer the Elastic IP address to.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableAddressTransferResult": { + "type": "structure", + "members": { + "AddressTransfer": { + "target": "com.amazonaws.ec2#AddressTransfer", + "traits": { + "aws.protocols#ec2QueryName": "AddressTransfer", + "smithy.api#documentation": "

An Elastic IP address transfer.

", + "smithy.api#xmlName": "addressTransfer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableAllowedImagesSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableAllowedImagesSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableAllowedImagesSettingsResult" + }, + "traits": { + "smithy.api#documentation": "

Enables Allowed AMIs for your account in the specified Amazon Web Services Region. Two values are\n accepted:

\n
    \n
  • \n

    \n enabled: The image criteria in your Allowed AMIs settings are applied. As\n a result, only AMIs matching these criteria are discoverable and can be used by your\n account to launch instances.

    \n
  • \n
  • \n

    \n audit-mode: The image criteria in your Allowed AMIs settings are not\n applied. No restrictions are placed on AMI discoverability or usage. Users in your account\n can launch instances using any public AMI or AMI shared with your account.

    \n

    The purpose of audit-mode is to indicate which AMIs will be affected when\n Allowed AMIs is enabled. In audit-mode, each AMI displays either\n \"ImageAllowed\": true or \"ImageAllowed\": false to indicate\n whether the AMI will be discoverable and available to users in the account when Allowed\n AMIs is enabled.

    \n
  • \n
\n \n

The Allowed AMIs feature does not restrict the AMIs owned by your account. Regardless of\n the criteria you set, the AMIs created by your account will always be discoverable and\n usable by users in your account.

\n
\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableAllowedImagesSettingsRequest": { + "type": "structure", + "members": { + "AllowedImagesSettingsState": { + "target": "com.amazonaws.ec2#AllowedImagesSettingsEnabledState", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify enabled to apply the image criteria specified by the Allowed AMIs\n settings. Specify audit-mode so that you can check which AMIs will be allowed or\n not allowed by the image criteria.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableAllowedImagesSettingsResult": { + "type": "structure", + "members": { + "AllowedImagesSettingsState": { + "target": "com.amazonaws.ec2#AllowedImagesSettingsEnabledState", + "traits": { + "aws.protocols#ec2QueryName": "AllowedImagesSettingsState", + "smithy.api#documentation": "

Returns enabled or audit-mode if the request succeeds;\n otherwise, it returns an error.

", + "smithy.api#xmlName": "allowedImagesSettingsState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableApplicationStatusCheckSuppression": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionResult" + }, + "traits": { + "smithy.api#documentation": "

Suppresses application status checks for the specified instances. While suppressed, health checks continue to run but do not affect the instance-level application status. The following rules apply:

\n
    \n
  • \n

    You can specify a maximum of 100 instance IDs for each request.

    \n
  • \n
  • \n

    Use DisableApplicationStatusCheckSuppression to resume normal health check reporting.

    \n
  • \n
  • \n

    If you do not specify DurationSeconds, suppression continues indefinitely until you call DisableApplicationStatusCheckSuppression.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To enable application status check suppression", + "documentation": "This example suppresses application status check reporting for the specified instance for one hour.", + "input": { + "InstanceIds": [ + "i-0123456789abcdef0" + ], + "DurationSeconds": 3600 + }, + "output": { + "SuccessfulResults": [ + { + "InstanceId": "i-0123456789abcdef0", + "ResumeAt": "2026-05-14T19:30:00.000Z" + } + ], + "UnsuccessfulResults": [] + } + } + ] + } + }, + "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances for which to suppress application status checks.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "DurationSeconds": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The duration, in seconds, for which to suppress application status checks. If omitted, the application status check is suppressed indefinitely until you call DisableApplicationStatusCheckSuppression.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableApplicationStatusCheckSuppressionResult": { + "type": "structure", + "members": { + "SuccessfulResults": { + "target": "com.amazonaws.ec2#SuccessfulSuppressionResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulResultSet", + "smithy.api#documentation": "

The instances for which suppression was successfully enabled.

", + "smithy.api#xmlName": "successfulResultSet" + } + }, + "UnsuccessfulResults": { + "target": "com.amazonaws.ec2#UnsuccessfulSuppressionResponseSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulResultSet", + "smithy.api#documentation": "

The instances for which suppression failed to be enabled.

", + "smithy.api#xmlName": "unsuccessfulResultSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionResult" + }, + "traits": { + "smithy.api#documentation": "

Enables Infrastructure Performance subscriptions.

" + } + }, + "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionRequest": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source Region (like us-east-1) or Availability Zone ID (like use1-az1) that the metric subscription is enabled for. If you use Availability Zone IDs, the Source and Destination Availability Zones must be in the same Region.

" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The target Region (like us-east-2) or Availability Zone ID (like use2-az2) that the metric subscription is enabled for. If you use Availability Zone IDs, the Source and Destination Availability Zones must be in the same Region.

" + } + }, + "Metric": { + "target": "com.amazonaws.ec2#MetricType", + "traits": { + "smithy.api#documentation": "

The metric used for the enabled subscription.

" + } + }, + "Statistic": { + "target": "com.amazonaws.ec2#StatisticType", + "traits": { + "smithy.api#documentation": "

The statistic used for the enabled subscription.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableAwsNetworkPerformanceMetricSubscriptionResult": { + "type": "structure", + "members": { + "Output": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Output", + "smithy.api#documentation": "

Indicates whether the subscribe action was successful.

", + "smithy.api#xmlName": "output" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableCapacityManager": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableCapacityManagerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableCapacityManagerResult" + }, + "traits": { + "smithy.api#documentation": "

\nEnables EC2 Capacity Manager for your account. This starts data ingestion for your EC2 capacity usage across On-Demand, Spot, and Capacity Reservations. \nInitial data processing may take several hours to complete.\n

" + } + }, + "com.amazonaws.ec2#EnableCapacityManagerRequest": { + "type": "structure", + "members": { + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nSpecifies whether to enable cross-account access for Amazon Web Services Organizations. When enabled, Capacity Manager can aggregate data from all accounts in your organization. Default is false.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nUnique, case-sensitive identifier that you provide to ensure the idempotency of the request. \n

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableCapacityManagerResult": { + "type": "structure", + "members": { + "CapacityManagerStatus": { + "target": "com.amazonaws.ec2#CapacityManagerStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerStatus", + "smithy.api#documentation": "

\nThe current status of Capacity Manager after the enable operation.\n

", + "smithy.api#xmlName": "capacityManagerStatus" + } + }, + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsAccess", + "smithy.api#documentation": "

\nIndicates whether Organizations access is enabled for cross-account data aggregation.\n

", + "smithy.api#xmlName": "organizationsAccess" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableEbsEncryptionByDefault": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableEbsEncryptionByDefaultRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableEbsEncryptionByDefaultResult" + }, + "traits": { + "smithy.api#documentation": "

Enables EBS encryption by default for your account in the current Region.

\n

After you enable encryption by default, the EBS volumes that you create are\n \talways encrypted, either using the default KMS key or the KMS key that you specified\n when you created each volume. For more information, see Amazon EBS encryption in the\n Amazon EBS User Guide.

\n

Enabling encryption by default has no effect on the encryption status of your \n existing volumes.

\n

After you enable encryption by default, you can no longer launch instances\n using instance types that do not support encryption. For more information, see Supported\n instance types.

" + } + }, + "com.amazonaws.ec2#EnableEbsEncryptionByDefaultRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableEbsEncryptionByDefaultResult": { + "type": "structure", + "members": { + "EbsEncryptionByDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsEncryptionByDefault", + "smithy.api#documentation": "

The updated status of encryption by default.

", + "smithy.api#xmlName": "ebsEncryptionByDefault" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableFastLaunch": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableFastLaunchRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableFastLaunchResult" + }, + "traits": { + "smithy.api#documentation": "

When you enable Windows fast launch for a Windows AMI, images are pre-provisioned, using\n snapshots to launch instances up to 65% faster. To create the optimized Windows image, Amazon EC2\n launches an instance and runs through Sysprep steps, rebooting as required. Then it creates a\n set of reserved snapshots that are used for subsequent launches. The reserved snapshots are\n automatically replenished as they are used, depending on your settings for launch\n frequency.

\n \n

You can only change these settings for Windows AMIs that you own or that have been\n shared with you.

\n
" + } + }, + "com.amazonaws.ec2#EnableFastLaunchRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify the ID of the image for which to enable Windows fast launch.

", + "smithy.api#required": {} + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of resource to use for pre-provisioning the AMI for Windows fast launch.\n Supported values include: snapshot, which is the default value.

" + } + }, + "SnapshotConfiguration": { + "target": "com.amazonaws.ec2#FastLaunchSnapshotConfigurationRequest", + "traits": { + "smithy.api#documentation": "

Configuration settings for creating and managing the snapshots that are used for\n pre-provisioning the AMI for Windows fast launch. The associated ResourceType\n must be snapshot.

" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The launch template to use when launching Windows instances from pre-provisioned\n snapshots. Launch template parameters can include either the name or ID of the launch\n template, but not both.

" + } + }, + "MaxParallelLaunches": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of instances that Amazon EC2 can launch at the same time to create\n pre-provisioned snapshots for Windows fast launch. Value must be 6 or\n greater.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableFastLaunchResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The image ID that identifies the AMI for which Windows fast launch was enabled.

", + "smithy.api#xmlName": "imageId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#FastLaunchResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource that was defined for pre-provisioning the AMI for Windows fast\n launch.

", + "smithy.api#xmlName": "resourceType" + } + }, + "SnapshotConfiguration": { + "target": "com.amazonaws.ec2#FastLaunchSnapshotConfigurationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotConfiguration", + "smithy.api#documentation": "

Settings to create and manage the pre-provisioned snapshots that Amazon EC2 uses for faster\n launches from the Windows AMI. This property is returned when the associated\n resourceType is snapshot.

", + "smithy.api#xmlName": "snapshotConfiguration" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

The launch template that is used when launching Windows instances from pre-provisioned\n snapshots.

", + "smithy.api#xmlName": "launchTemplate" + } + }, + "MaxParallelLaunches": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxParallelLaunches", + "smithy.api#documentation": "

The maximum number of instances that Amazon EC2 can launch at the same time to create\n pre-provisioned snapshots for Windows fast launch.

", + "smithy.api#xmlName": "maxParallelLaunches" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The owner ID for the AMI for which Windows fast launch was enabled.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastLaunchStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of Windows fast launch for the specified AMI.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason that the state changed for Windows fast launch for the AMI.

", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "StateTransitionTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionTime", + "smithy.api#documentation": "

The time that the state changed for Windows fast launch for the AMI.

", + "smithy.api#xmlName": "stateTransitionTime" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreErrorItem": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "FastSnapshotRestoreStateErrors": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreStateErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "FastSnapshotRestoreStateErrorSet", + "smithy.api#documentation": "

The errors.

", + "smithy.api#xmlName": "fastSnapshotRestoreStateErrorSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the errors that occurred when enabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreStateError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an error that occurred when enabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreStateErrorItem": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Error": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreStateError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The error.

", + "smithy.api#xmlName": "error" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an error that occurred when enabling fast snapshot restores.

" + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreStateErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreStateErrorItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreSuccessItem": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FastSnapshotRestoreStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of fast snapshot restores.

", + "smithy.api#xmlName": "state" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateTransitionReason", + "smithy.api#documentation": "

The reason for the state transition. The possible values are as follows:

\n
    \n
  • \n

    \n Client.UserInitiated - The state successfully transitioned to enabling or\n disabling.

    \n
  • \n
  • \n

    \n Client.UserInitiated - Lifecycle state transition - The state successfully transitioned \n to optimizing, enabled, or disabled.

    \n
  • \n
", + "smithy.api#xmlName": "stateTransitionReason" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that enabled fast snapshot restores on the snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "OwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerAlias", + "smithy.api#documentation": "

The Amazon Web Services owner alias that enabled fast snapshot restores on the snapshot. This is intended for future use.

", + "smithy.api#xmlName": "ownerAlias" + } + }, + "EnablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabling state.

", + "smithy.api#xmlName": "enablingTime" + } + }, + "OptimizingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OptimizingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the optimizing state.

", + "smithy.api#xmlName": "optimizingTime" + } + }, + "EnabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EnabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the enabled state.

", + "smithy.api#xmlName": "enabledTime" + } + }, + "DisablingTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisablingTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabling state.

", + "smithy.api#xmlName": "disablingTime" + } + }, + "DisabledTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DisabledTime", + "smithy.api#documentation": "

The time at which fast snapshot restores entered the disabled state.

", + "smithy.api#xmlName": "disabledTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes fast snapshot restores that were successfully enabled.

" + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoreSuccessSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreSuccessItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestores": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoresRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoresResult" + }, + "traits": { + "smithy.api#documentation": "

Enables fast snapshot restores for the specified snapshots in the specified Availability Zones.

\n

You get the full benefit of fast snapshot restores after they enter the enabled state.

\n

For more information, see Amazon EBS fast snapshot\n restore in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoresRequest": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.ec2#AvailabilityZoneStringList", + "traits": { + "smithy.api#documentation": "

One or more Availability Zones. For example, us-east-2a.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.

", + "smithy.api#xmlName": "AvailabilityZone" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#AvailabilityZoneIdStringList", + "traits": { + "smithy.api#documentation": "

One or more Availability Zone IDs. For example, use2-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.

", + "smithy.api#xmlName": "AvailabilityZoneId" + } + }, + "SourceSnapshotIds": { + "target": "com.amazonaws.ec2#SnapshotIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of one or more snapshots. For example, snap-1234567890abcdef0. You can specify\n a snapshot that was shared with you from another Amazon Web Services account.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SourceSnapshotId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableFastSnapshotRestoresResult": { + "type": "structure", + "members": { + "Successful": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreSuccessSet", + "traits": { + "aws.protocols#ec2QueryName": "Successful", + "smithy.api#documentation": "

Information about the snapshots for which fast snapshot restores were successfully enabled.

", + "smithy.api#xmlName": "successful" + } + }, + "Unsuccessful": { + "target": "com.amazonaws.ec2#EnableFastSnapshotRestoreErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the snapshots for which fast snapshot restores could not be enabled.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableImageResult" + }, + "traits": { + "smithy.api#documentation": "

Re-enables a disabled AMI. The re-enabled AMI is marked as available and can\n be used for instance launches, appears in describe operations, and can be shared. Amazon Web Services\n accounts, organizations, and Organizational Units that lost access to the AMI when it was\n disabled do not regain access automatically. Once the AMI is available, it can be shared with\n them again.

\n

Only the AMI owner can re-enable a disabled AMI.

\n

For more information, see Disable an Amazon EC2 AMI\n in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableImageBlockPublicAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableImageBlockPublicAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableImageBlockPublicAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Enables block public access for AMIs at the account level in the\n specified Amazon Web Services Region. This prevents the public sharing of your AMIs. However, if you already\n have public AMIs, they will remain publicly available.

\n

The API can take up to 10 minutes to configure this setting. During this time, if you run\n GetImageBlockPublicAccessState, the response will be unblocked. When\n the API has completed the configuration, the response will be\n block-new-sharing.

\n

For more information, see Block\n public access to your AMIs in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableImageBlockPublicAccessRequest": { + "type": "structure", + "members": { + "ImageBlockPublicAccessState": { + "target": "com.amazonaws.ec2#ImageBlockPublicAccessEnabledState", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify block-new-sharing to enable block public access for AMIs at the\n account level in the specified Region. This will block any attempt to publicly share your AMIs\n in the specified Region.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableImageBlockPublicAccessResult": { + "type": "structure", + "members": { + "ImageBlockPublicAccessState": { + "target": "com.amazonaws.ec2#ImageBlockPublicAccessEnabledState", + "traits": { + "aws.protocols#ec2QueryName": "ImageBlockPublicAccessState", + "smithy.api#documentation": "

Returns block-new-sharing if the request succeeds; otherwise, it returns an\n error.

", + "smithy.api#xmlName": "imageBlockPublicAccessState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableImageDeprecation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableImageDeprecationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableImageDeprecationResult" + }, + "traits": { + "smithy.api#documentation": "

Enables deprecation of the specified AMI at the specified date and time.

\n

For more information, see Deprecate an AMI in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableImageDeprecationRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DeprecateAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The date and time to deprecate the AMI, in UTC, in the following format:\n YYYY-MM-DDTHH:MM:SSZ.\n If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

\n

You can’t specify a date in the past. The upper limit for DeprecateAt is 10\n years from now, except for public AMIs, where the upper limit is 2 years from the creation\n date.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableImageDeprecationResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableImageDeregistrationProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtectionResult" + }, + "traits": { + "smithy.api#documentation": "

Enables deregistration protection for an AMI. When deregistration protection is enabled,\n the AMI can't be deregistered.

\n

To allow the AMI to be deregistered, you must first disable deregistration protection.

\n

For more information, see Protect an\n Amazon EC2 AMI from deregistration in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableImageDeregistrationProtectionRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "WithCooldown": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, enforces deregistration protection for 24 hours after deregistration\n protection is disabled.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableImageDeregistrationProtectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableImageRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableImageResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Enable Amazon EC2 instances running in an SQL Server High Availability cluster for SQL Server High Availability \n instance standby detection monitoring. Once enabled, Amazon Web Services monitors the metadata for \n the instances to determine whether they are active or standby nodes in the SQL Server High Availability cluster. \n If the instances are determined to be standby failover nodes, Amazon Web Services \n automatically applies SQL Server licensing fee waiver for those instances.

\n

To register an instance, it must be running a Windows SQL Server license-included \n AMI and have the Amazon Web Services Systems Manager agent installed and running. Only Windows Server 2019 and later \n and SQL Server (Standard and Enterprise editions) 2017 and later are supported. For more \n information, see \n Prerequisites for using SQL Server High Availability instance standby detection.

" + } + }, + "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdUpdateStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances to enable for SQL Server High Availability standby detection monitoring.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "SqlServerCredentials": { + "target": "com.amazonaws.ec2#SecretArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Secrets Manager secret containing the SQL Server access credentials. The specified \n secret must contain valid SQL Server credentials for the specified instances. If not specified, \n deafult local user credentials will be used by the Amazon Web Services Systems Manager agent. To enable \n instances with different credentials, you must make separate requests.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, \n without actually making the request, and provides an error response. If you have the \n required permissions, the error response is DryRunOperation. Otherwise, \n it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableInstanceSqlHaStandbyDetectionsResult": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.ec2#RegisteredInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceSet", + "smithy.api#documentation": "

Information about the instances that were enabled for SQL Server High Availability standby \n detection monitoring.

", + "smithy.api#xmlName": "instanceSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableIpamInternetRegistryAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Enables Resource Public Key Infrastructure (RPKI) on an existing IPAM internet registry association by providing BGP Public Key Infrastructure (BPKI) certificate details. After enabling, you can create Route Origin Authorizations (ROAs) for prefixes registered with the internet registry.

" + } + }, + "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association to enable.

", + "smithy.api#required": {} + } + }, + "RpkiVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The RPKI version to use from the Parent Response XML.

", + "smithy.api#required": {} + } + }, + "ServiceUri": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The RPKI service URI for the publication point from the Parent Response XML.

", + "smithy.api#required": {} + } + }, + "ChildHandle": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The child handle for the BPKI certificate hierarchy from the Parent Response XML.

", + "smithy.api#required": {} + } + }, + "ParentHandle": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The parent handle for the BPKI certificate hierarchy from the Parent Response XML.

", + "smithy.api#required": {} + } + }, + "ParentBpkiTa": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The parent BPKI Trust Anchor certificate in PEM format from the Parent Response XML.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableIpamInternetRegistryAssociationResult": { + "type": "structure", + "members": { + "IpamInternetRegistryAssociation": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociation", + "smithy.api#documentation": "

Information about the enabled internet registry association.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableIpamOrganizationAdminAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountResult" + }, + "traits": { + "smithy.api#documentation": "

Enable an Organizations member account as the IPAM admin account. You cannot select the Organizations management account as the IPAM admin account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "DelegatedAdminAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Organizations member account ID that you want to enable as the IPAM account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableIpamOrganizationAdminAccountResult": { + "type": "structure", + "members": { + "Success": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Success", + "smithy.api#documentation": "

The result of enabling the IPAM account.

", + "smithy.api#xmlName": "success" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableIpamPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableIpamPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableIpamPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Enables an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

\n

For more information, see Define public IPv4 allocation strategy with IPAM policies in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#EnableIpamPolicyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy to enable.

", + "smithy.api#required": {} + } + }, + "OrganizationTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A target can be an individual Amazon Web Services account or an entity within an Amazon Web Services Organization to which an IPAM policy can be applied.

\n

The ID of the Amazon Web Services Organizations target for which to enable the IPAM policy. This parameter is required only when IPAM is integrated with Amazon Web Services Organizations. When IPAM is not integrated with Amazon Web Services Organizations, omit this parameter and the policy will apply to the current account.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableIpamPolicyResult": { + "type": "structure", + "members": { + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyId", + "smithy.api#documentation": "

The ID of the IPAM policy that was enabled.

", + "smithy.api#xmlName": "ipamPolicyId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharing": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingResult" + }, + "traits": { + "smithy.api#documentation": "

Establishes a trust relationship between Reachability Analyzer and Organizations.\n This operation must be performed by the management account for the organization.

\n

After you establish a trust relationship, a user in the management account or \n a delegated administrator account can run a cross-account analysis using resources \n from the member accounts.

" + } + }, + "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableReachabilityAnalyzerOrganizationSharingResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReturnValue", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "returnValue" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableRouteServerPropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableRouteServerPropagationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableRouteServerPropagationResult" + }, + "traits": { + "smithy.api#documentation": "

Defines which route tables the route server can update with routes.

\n

When enabled, route server propagation installs the routes in the FIB on the route table you've specified. Route server supports IPv4 and IPv6 route propagation.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#EnableRouteServerPropagationRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to enable propagation.

", + "smithy.api#required": {} + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table to which route server will propagate routes.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableRouteServerPropagationResult": { + "type": "structure", + "members": { + "RouteServerPropagation": { + "target": "com.amazonaws.ec2#RouteServerPropagation", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPropagation", + "smithy.api#documentation": "

Information about the enabled route server propagation.

", + "smithy.api#xmlName": "routeServerPropagation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableSerialConsoleAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableSerialConsoleAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableSerialConsoleAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Enables access to the EC2 serial console of all instances for your account. By default,\n\t\t\taccess to the EC2 serial console is disabled for your account. For more information, see Manage account access to the EC2 serial console\n\t\t\tin the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableSerialConsoleAccessRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableSerialConsoleAccessResult": { + "type": "structure", + "members": { + "SerialConsoleAccessEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled", + "smithy.api#documentation": "

If true, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If false, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.

", + "smithy.api#xmlName": "serialConsoleAccessEnabled" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableSnapshotBlockPublicAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessResult" + }, + "traits": { + "smithy.api#documentation": "

Enables or modifies the block public access for snapshots \n setting at the account level for the specified Amazon Web Services Region. After you enable block \n public access for snapshots in a Region, users can no longer request public sharing \n for snapshots in that Region. Snapshots that are already publicly shared are either \n treated as private or they remain publicly shared, depending on the \n State that you specify.

\n \n

Enabling block public access for snapshots in block all sharing \n mode does not change the permissions for snapshots that are already publicly shared. \n Instead, it prevents these snapshots from be publicly visible and publicly accessible. \n Therefore, the attributes for these snapshots still indicate that they are publicly \n shared, even though they are not publicly available.

\n

If you later disable block public access or change the mode to block new \n sharing, these snapshots will become publicly available again.

\n
\n

For more information, see \n Block public access for snapshots in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessRequest": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SnapshotBlockPublicAccessState", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The mode in which to enable block public access for snapshots for the Region. \n Specify one of the following values:

\n
    \n
  • \n

    \n block-all-sharing - Prevents all public sharing of snapshots in \n the Region. Users in the account will no longer be able to request new public \n sharing. Additionally, snapshots that are already publicly shared are treated as \n private and they are no longer publicly available.

    \n
  • \n
  • \n

    \n block-new-sharing - Prevents only new public sharing of snapshots \n in the Region. Users in the account will no longer be able to request new public \n sharing. However, snapshots that are already publicly shared, remain publicly \n available.

    \n
  • \n
\n

\n unblocked is not a valid value for EnableSnapshotBlockPublicAccess.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableSnapshotBlockPublicAccessResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SnapshotBlockPublicAccessState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of block public access for snapshots for the account and Region. Returns \n either block-all-sharing or block-new-sharing if the request \n succeeds.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationResult" + }, + "traits": { + "smithy.api#documentation": "

Enables the specified attachment to propagate routes to the specified\n propagation route table.

" + } + }, + "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the propagation route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway route table announcement.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableTransitGatewayRouteTablePropagationResult": { + "type": "structure", + "members": { + "Propagation": { + "target": "com.amazonaws.ec2#TransitGatewayPropagation", + "traits": { + "aws.protocols#ec2QueryName": "Propagation", + "smithy.api#documentation": "

Information about route propagation.

", + "smithy.api#xmlName": "propagation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableVgwRoutePropagation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableVgwRoutePropagationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Enables a virtual private gateway (VGW) to propagate routes to the specified route\n table of a VPC.

", + "smithy.api#examples": [ + { + "title": "To enable route propagation", + "documentation": "This example enables the specified virtual private gateway to propagate static routes to the specified route table.", + "input": { + "RouteTableId": "rtb-22574640", + "GatewayId": "vgw-9a4cacf3" + } + } + ] + } + }, + "com.amazonaws.ec2#EnableVgwRoutePropagationRequest": { + "type": "structure", + "members": { + "GatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the virtual private gateway that is attached to a VPC. The virtual private\n gateway must be attached to the same VPC that the routing tables are associated with.\n

", + "smithy.api#required": {} + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table. The routing table must be associated with the same VPC that\n the virtual private gateway is attached to.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for EnableVgwRoutePropagation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableVolumeIO": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableVolumeIORequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Enables I/O operations for a volume that had I/O operations disabled because the data on\n the volume was potentially inconsistent.

", + "smithy.api#examples": [ + { + "title": "To enable I/O for a volume", + "documentation": "This example enables I/O on volume ``vol-1234567890abcdef0``.", + "input": { + "VolumeId": "vol-1234567890abcdef0" + } + } + ] + } + }, + "com.amazonaws.ec2#EnableVolumeIORequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "volumeId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableVpcClassicLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableVpcClassicLinkRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableVpcClassicLinkResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your\n\t\t\tClassicLink-enabled VPC to allow communication over private IP addresses. You cannot\n\t\t\tenable your VPC for ClassicLink if any of your VPC route tables have existing routes for\n\t\t\taddress ranges within the 10.0.0.0/8 IP address range, excluding local\n\t\t\troutes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address\n\t\t\tranges.

" + } + }, + "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS\n\t\t\thostname of a linked EC2-Classic instance resolves to its private IP address when\n\t\t\taddressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n\t\t\tof an instance in a VPC resolves to its private IP address when addressed from a linked\n\t\t\tEC2-Classic instance.

\n

You must specify a VPC ID in the request.

" + } + }, + "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "VpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnableVpcClassicLinkRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableVpcClassicLinkResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#EnclaveOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

If this parameter is set to true, the instance is enabled for Amazon Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro\n Enclaves.

", + "smithy.api#xmlName": "enabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro\n Enclaves.

" + } + }, + "com.amazonaws.ec2#EnclaveOptionsRequest": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to\n true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For\n more information, see What is Amazon Web Services Nitro\n Enclaves? in the Amazon Web Services Nitro Enclaves User\n Guide.

" + } + }, + "com.amazonaws.ec2#EncryptionInTransitSupported": { + "type": "boolean" + }, + "com.amazonaws.ec2#EncryptionStateValue": { + "type": "enum", + "members": { + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#EncryptionSupport": { + "type": "structure", + "members": { + "EncryptionState": { + "target": "com.amazonaws.ec2#EncryptionStateValue", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionState", + "smithy.api#documentation": "

The current encryption state of the resource.

", + "smithy.api#xmlName": "encryptionState" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message describing the encryption state.

", + "smithy.api#xmlName": "stateMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the encryption support status for a transit gateway.

" + } + }, + "com.amazonaws.ec2#EncryptionSupportOptionValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#EndDateType": { + "type": "enum", + "members": { + "unlimited": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlimited" + } + }, + "limited": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "limited" + } + } + } + }, + "com.amazonaws.ec2#EndpointIpAddressType": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + }, + "dual_stack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dual-stack" + } + } + } + }, + "com.amazonaws.ec2#EndpointSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ClientVpnEndpoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EphemeralNvmeSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#ErrorSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ValidationError", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#EventCode": { + "type": "enum", + "members": { + "instance_reboot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-reboot" + } + }, + "system_reboot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "system-reboot" + } + }, + "system_maintenance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "system-maintenance" + } + }, + "instance_retirement": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-retirement" + } + }, + "instance_stop": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-stop" + } + } + } + }, + "com.amazonaws.ec2#EventInformation": { + "type": "structure", + "members": { + "EventDescription": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventDescription", + "smithy.api#documentation": "

The description of the event.

", + "smithy.api#xmlName": "eventDescription" + } + }, + "EventSubType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventSubType", + "smithy.api#documentation": "

The event.

\n

\n error events:

\n
    \n
  • \n

    \n iamFleetRoleInvalid - The EC2 Fleet or Spot Fleet does not have the required\n permissions either to launch or terminate an instance.

    \n
  • \n
  • \n

    \n allLaunchSpecsTemporarilyBlacklisted - None of the configurations\n are valid, and several attempts to launch instances have failed. For more\n information, see the description of the event.

    \n
  • \n
  • \n

    \n spotInstanceCountLimitExceeded - You've reached the limit on the\n number of Spot Instances that you can launch.

    \n
  • \n
  • \n

    \n spotFleetRequestConfigurationInvalid - The configuration is not\n valid. For more information, see the description of the event.

    \n
  • \n
\n

\n fleetRequestChange events:

\n
    \n
  • \n

    \n active - The EC2 Fleet or Spot Fleet request has been validated and Amazon EC2 is\n attempting to maintain the target number of running instances.

    \n
  • \n
  • \n

    \n deleted (EC2 Fleet) / cancelled (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and has no running\n instances. The EC2 Fleet or Spot Fleet will be deleted two days after its instances are\n terminated.

    \n
  • \n
  • \n

    \n deleted_running (EC2 Fleet) / cancelled_running (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and does\n not launch additional instances. Its existing instances continue to run until\n they are interrupted or terminated. The request remains in this state until all\n instances are interrupted or terminated.

    \n
  • \n
  • \n

    \n deleted_terminating (EC2 Fleet) / cancelled_terminating (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and\n its instances are terminating. The request remains in this state until all\n instances are terminated.

    \n
  • \n
  • \n

    \n expired - The EC2 Fleet or Spot Fleet request has expired. If the request was\n created with TerminateInstancesWithExpiration set, a subsequent\n terminated event indicates that the instances are\n terminated.

    \n
  • \n
  • \n

    \n modify_in_progress - The EC2 Fleet or Spot Fleet request is being modified.\n The request remains in this state until the modification is fully\n processed.

    \n
  • \n
  • \n

    \n modify_succeeded - The EC2 Fleet or Spot Fleet request was modified.

    \n
  • \n
  • \n

    \n submitted - The EC2 Fleet or Spot Fleet request is being evaluated and Amazon EC2\n is preparing to launch the target number of instances.

    \n
  • \n
  • \n

    \n progress - The EC2 Fleet or Spot Fleet request is in the process of being fulfilled.

    \n
  • \n
\n

\n instanceChange events:

\n
    \n
  • \n

    \n launched - A new instance was launched.

    \n
  • \n
  • \n

    \n terminated - An instance was terminated by the user.

    \n
  • \n
  • \n

    \n termination_notified - An instance termination notification was\n sent when a Spot Instance was terminated by Amazon EC2 during scale-down, when the target\n capacity of the fleet was modified down, for example, from a target capacity of\n 4 to a target capacity of 3.

    \n
  • \n
\n

\n Information events:

\n
    \n
  • \n

    \n fleetProgressHalted - The price in every launch specification is\n not valid because it is below the Spot price (all the launch specifications have\n produced launchSpecUnusable events). A launch specification might\n become valid if the Spot price changes.

    \n
  • \n
  • \n

    \n launchSpecTemporarilyBlacklisted - The configuration is not valid\n and several attempts to launch instances have failed. For more information, see\n the description of the event.

    \n
  • \n
  • \n

    \n launchSpecUnusable - The price specified in a launch specification \n is not valid because it is below the Spot price for the requested Spot pools.

    \n

    Note: Even if a fleet with the maintain request type is in the process \n of being canceled, it may still publish a launchSpecUnusable event. This \n does not mean that the canceled fleet is attempting to launch a new instance.

    \n
  • \n
  • \n

    \n registerWithLoadBalancersFailed - An attempt to register\n instances with load balancers failed. For more information, see the description\n of the event.

    \n
  • \n
", + "smithy.api#xmlName": "eventSubType" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance. This information is available only for\n instanceChange events.

", + "smithy.api#xmlName": "instanceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Fleet or Spot Fleet event.

" + } + }, + "com.amazonaws.ec2#EventType": { + "type": "enum", + "members": { + "INSTANCE_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instanceChange" + } + }, + "BATCH_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleetRequestChange" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "INFORMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "information" + } + } + } + }, + "com.amazonaws.ec2#ExcessCapacityTerminationPolicy": { + "type": "enum", + "members": { + "NO_TERMINATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "noTermination" + } + }, + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#ExcludedInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$" + } + }, + "com.amazonaws.ec2#ExcludedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ExcludedInstanceType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 400 + } + } + }, + "com.amazonaws.ec2#ExecutableByStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "ExecutableBy" + } + } + }, + "com.amazonaws.ec2#Explanation": { + "type": "structure", + "members": { + "Acl": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Acl", + "smithy.api#documentation": "

The network ACL.

", + "smithy.api#xmlName": "acl" + } + }, + "AclRule": { + "target": "com.amazonaws.ec2#AnalysisAclRule", + "traits": { + "aws.protocols#ec2QueryName": "AclRule", + "smithy.api#documentation": "

The network ACL rule.

", + "smithy.api#xmlName": "aclRule" + } + }, + "Address": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "Address", + "smithy.api#documentation": "

The IPv4 address, in CIDR notation.

", + "smithy.api#xmlName": "address" + } + }, + "Addresses": { + "target": "com.amazonaws.ec2#IpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "AddressSet", + "smithy.api#documentation": "

The IPv4 addresses, in CIDR notation.

", + "smithy.api#xmlName": "addressSet" + } + }, + "AttachedTo": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "AttachedTo", + "smithy.api#documentation": "

The resource to which the component is attached.

", + "smithy.api#xmlName": "attachedTo" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneSet", + "smithy.api#documentation": "

The Availability Zones.

", + "smithy.api#xmlName": "availabilityZoneSet" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneIdSet", + "smithy.api#documentation": "

The IDs of the Availability Zones.

", + "smithy.api#xmlName": "availabilityZoneIdSet" + } + }, + "Cidrs": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "CidrSet", + "smithy.api#documentation": "

The CIDR ranges.

", + "smithy.api#xmlName": "cidrSet" + } + }, + "Component": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Component", + "smithy.api#documentation": "

The component.

", + "smithy.api#xmlName": "component" + } + }, + "CustomerGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGateway", + "smithy.api#documentation": "

The customer gateway.

", + "smithy.api#xmlName": "customerGateway" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Destination", + "smithy.api#documentation": "

The destination.

", + "smithy.api#xmlName": "destination" + } + }, + "DestinationVpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "DestinationVpc", + "smithy.api#documentation": "

The destination VPC.

", + "smithy.api#xmlName": "destinationVpc" + } + }, + "Direction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Direction", + "smithy.api#documentation": "

The direction. The following are the possible values:

\n
    \n
  • \n

    egress

    \n
  • \n
  • \n

    ingress

    \n
  • \n
", + "smithy.api#xmlName": "direction" + } + }, + "ExplanationCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExplanationCode", + "smithy.api#documentation": "

The explanation code.

", + "smithy.api#xmlName": "explanationCode" + } + }, + "IngressRouteTable": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "IngressRouteTable", + "smithy.api#documentation": "

The route table.

", + "smithy.api#xmlName": "ingressRouteTable" + } + }, + "InternetGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "InternetGateway", + "smithy.api#documentation": "

The internet gateway.

", + "smithy.api#xmlName": "internetGateway" + } + }, + "LoadBalancerArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer.

", + "smithy.api#xmlName": "loadBalancerArn" + } + }, + "ClassicLoadBalancerListener": { + "target": "com.amazonaws.ec2#AnalysisLoadBalancerListener", + "traits": { + "aws.protocols#ec2QueryName": "ClassicLoadBalancerListener", + "smithy.api#documentation": "

The listener for a Classic Load Balancer.

", + "smithy.api#xmlName": "classicLoadBalancerListener" + } + }, + "LoadBalancerListenerPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerListenerPort", + "smithy.api#documentation": "

The listener port of the load balancer.

", + "smithy.api#xmlName": "loadBalancerListenerPort" + } + }, + "LoadBalancerTarget": { + "target": "com.amazonaws.ec2#AnalysisLoadBalancerTarget", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerTarget", + "smithy.api#documentation": "

The target.

", + "smithy.api#xmlName": "loadBalancerTarget" + } + }, + "LoadBalancerTargetGroup": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerTargetGroup", + "smithy.api#documentation": "

The target group.

", + "smithy.api#xmlName": "loadBalancerTargetGroup" + } + }, + "LoadBalancerTargetGroups": { + "target": "com.amazonaws.ec2#AnalysisComponentList", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerTargetGroupSet", + "smithy.api#documentation": "

The target groups.

", + "smithy.api#xmlName": "loadBalancerTargetGroupSet" + } + }, + "LoadBalancerTargetPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerTargetPort", + "smithy.api#documentation": "

The target port.

", + "smithy.api#xmlName": "loadBalancerTargetPort" + } + }, + "ElasticLoadBalancerListener": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "ElasticLoadBalancerListener", + "smithy.api#documentation": "

The load balancer listener.

", + "smithy.api#xmlName": "elasticLoadBalancerListener" + } + }, + "MissingComponent": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MissingComponent", + "smithy.api#documentation": "

The missing component.

", + "smithy.api#xmlName": "missingComponent" + } + }, + "NatGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "NatGateway", + "smithy.api#documentation": "

The NAT gateway.

", + "smithy.api#xmlName": "natGateway" + } + }, + "NetworkInterface": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterface", + "smithy.api#documentation": "

The network interface.

", + "smithy.api#xmlName": "networkInterface" + } + }, + "PacketField": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PacketField", + "smithy.api#documentation": "

The packet field.

", + "smithy.api#xmlName": "packetField" + } + }, + "VpcPeeringConnection": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnection", + "smithy.api#documentation": "

The VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnection" + } + }, + "Port": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The port.

", + "smithy.api#xmlName": "port" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "PortRangeSet", + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "portRangeSet" + } + }, + "PrefixList": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "PrefixList", + "smithy.api#documentation": "

The prefix list.

", + "smithy.api#xmlName": "prefixList" + } + }, + "Protocols": { + "target": "com.amazonaws.ec2#StringList", + "traits": { + "aws.protocols#ec2QueryName": "ProtocolSet", + "smithy.api#documentation": "

The protocols.

", + "smithy.api#xmlName": "protocolSet" + } + }, + "RouteTableRoute": { + "target": "com.amazonaws.ec2#AnalysisRouteTableRoute", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableRoute", + "smithy.api#documentation": "

The route table route.

", + "smithy.api#xmlName": "routeTableRoute" + } + }, + "RouteTable": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "RouteTable", + "smithy.api#documentation": "

The route table.

", + "smithy.api#xmlName": "routeTable" + } + }, + "SecurityGroup": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroup", + "smithy.api#documentation": "

The security group.

", + "smithy.api#xmlName": "securityGroup" + } + }, + "SecurityGroupRule": { + "target": "com.amazonaws.ec2#AnalysisSecurityGroupRule", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRule", + "smithy.api#documentation": "

The security group rule.

", + "smithy.api#xmlName": "securityGroupRule" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#AnalysisComponentList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupSet", + "smithy.api#documentation": "

The security groups.

", + "smithy.api#xmlName": "securityGroupSet" + } + }, + "SourceVpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "SourceVpc", + "smithy.api#documentation": "

The source VPC.

", + "smithy.api#xmlName": "sourceVpc" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state.

", + "smithy.api#xmlName": "state" + } + }, + "Subnet": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Subnet", + "smithy.api#documentation": "

The subnet.

", + "smithy.api#xmlName": "subnet" + } + }, + "SubnetRouteTable": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "SubnetRouteTable", + "smithy.api#documentation": "

The route table for the subnet.

", + "smithy.api#xmlName": "subnetRouteTable" + } + }, + "Vpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Vpc", + "smithy.api#documentation": "

The component VPC.

", + "smithy.api#xmlName": "vpc" + } + }, + "VpcEndpoint": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpoint", + "smithy.api#documentation": "

The VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpoint" + } + }, + "VpnConnection": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

The VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + }, + "VpnGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "VpnGateway", + "smithy.api#documentation": "

The VPN gateway.

", + "smithy.api#xmlName": "vpnGateway" + } + }, + "TransitGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "TransitGateway", + "smithy.api#documentation": "

The transit gateway.

", + "smithy.api#xmlName": "transitGateway" + } + }, + "TransitGatewayRouteTable": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTable", + "smithy.api#documentation": "

The transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTable" + } + }, + "TransitGatewayRouteTableRoute": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableRoute", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableRoute", + "smithy.api#documentation": "

The transit gateway route table route.

", + "smithy.api#xmlName": "transitGatewayRouteTableRoute" + } + }, + "TransitGatewayPolicyTable": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTable", + "smithy.api#documentation": "

The transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTable" + } + }, + "TransitGatewayPolicyTableEntry": { + "target": "com.amazonaws.ec2#AnalysisTransitGatewayPolicyTableEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntry", + "smithy.api#documentation": "

The transit gateway policy table entry.

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntry" + } + }, + "TransitGatewayAttachment": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachment", + "smithy.api#documentation": "

The transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachment" + } + }, + "ComponentAccount": { + "target": "com.amazonaws.ec2#ComponentAccount", + "traits": { + "aws.protocols#ec2QueryName": "ComponentAccount", + "smithy.api#documentation": "

The Amazon Web Services account for the component.

", + "smithy.api#xmlName": "componentAccount" + } + }, + "ComponentRegion": { + "target": "com.amazonaws.ec2#ComponentRegion", + "traits": { + "aws.protocols#ec2QueryName": "ComponentRegion", + "smithy.api#documentation": "

The Region for the component.

", + "smithy.api#xmlName": "componentRegion" + } + }, + "FirewallStatelessRule": { + "target": "com.amazonaws.ec2#FirewallStatelessRule", + "traits": { + "aws.protocols#ec2QueryName": "FirewallStatelessRule", + "smithy.api#documentation": "

The Network Firewall stateless rule.

", + "smithy.api#xmlName": "firewallStatelessRule" + } + }, + "FirewallStatefulRule": { + "target": "com.amazonaws.ec2#FirewallStatefulRule", + "traits": { + "aws.protocols#ec2QueryName": "FirewallStatefulRule", + "smithy.api#documentation": "

The Network Firewall stateful rule.

", + "smithy.api#xmlName": "firewallStatefulRule" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an explanation code for an unreachable path. For more information, see Reachability Analyzer explanation codes.

" + } + }, + "com.amazonaws.ec2#ExplanationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Explanation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationList": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListResult" + }, + "traits": { + "smithy.api#documentation": "

Downloads the client certificate revocation list for the specified Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ExportClientVpnClientCertificateRevocationListResult": { + "type": "structure", + "members": { + "CertificateRevocationList": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateRevocationList", + "smithy.api#documentation": "

Information about the client certificate revocation list.

", + "smithy.api#xmlName": "certificateRevocationList" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientCertificateRevocationListStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the client certificate revocation list.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ExportClientVpnClientConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ExportClientVpnClientConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ExportClientVpnClientConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Downloads the contents of the Client VPN endpoint configuration file for the specified Client VPN endpoint. The Client VPN endpoint configuration \n\t\t\tfile includes the Client VPN endpoint and certificate information clients need to establish a connection \n\t\t\twith the Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#ExportClientVpnClientConfigurationRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ExportClientVpnClientConfigurationResult": { + "type": "structure", + "members": { + "ClientConfiguration": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientConfiguration", + "smithy.api#documentation": "

The contents of the Client VPN endpoint configuration file.

", + "smithy.api#xmlName": "clientConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ExportEnvironment": { + "type": "enum", + "members": { + "citrix": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "citrix" + } + }, + "vmware": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vmware" + } + }, + "microsoft": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "microsoft" + } + } + } + }, + "com.amazonaws.ec2#ExportImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ExportImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ExportImageResult" + }, + "traits": { + "smithy.api#documentation": "

Exports an Amazon Machine Image (AMI) to a VM file. For more information, see Exporting a VM\n directly from an Amazon Machine Image (AMI) in the\n VM Import/Export User Guide.

" + } + }, + "com.amazonaws.ec2#ExportImageRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Token to enable idempotency for export image requests.

", + "smithy.api#idempotencyToken": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description of the image being exported. The maximum length is 255 characters.

" + } + }, + "DiskImageFormat": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The disk image format.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the image.

", + "smithy.api#required": {} + } + }, + "S3ExportLocation": { + "target": "com.amazonaws.ec2#ExportTaskS3LocationRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon S3 bucket for the destination image. The destination bucket must exist.

", + "smithy.api#required": {} + } + }, + "RoleName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the role that grants VM Import/Export permission to export images to your Amazon\n S3 bucket. If this parameter is not specified, the default role is named 'vmimport'.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the export image task during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ExportImageResult": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the image being exported.

", + "smithy.api#xmlName": "description" + } + }, + "DiskImageFormat": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "aws.protocols#ec2QueryName": "DiskImageFormat", + "smithy.api#documentation": "

The disk image format for the exported image.

", + "smithy.api#xmlName": "diskImageFormat" + } + }, + "ExportImageTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExportImageTaskId", + "smithy.api#documentation": "

The ID of the export image task.

", + "smithy.api#xmlName": "exportImageTaskId" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the image.

", + "smithy.api#xmlName": "imageId" + } + }, + "RoleName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RoleName", + "smithy.api#documentation": "

The name of the role that grants VM Import/Export permission to export images to your Amazon\n S3 bucket.

", + "smithy.api#xmlName": "roleName" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The percent complete of the export image task.

", + "smithy.api#xmlName": "progress" + } + }, + "S3ExportLocation": { + "target": "com.amazonaws.ec2#ExportTaskS3Location", + "traits": { + "aws.protocols#ec2QueryName": "S3ExportLocation", + "smithy.api#documentation": "

Information about the destination Amazon S3 bucket.

", + "smithy.api#xmlName": "s3ExportLocation" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the export image task. The possible values are active, completed,\n deleting, and deleted.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message for the export image task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the export image task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ExportImageTask": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the image being exported.

", + "smithy.api#xmlName": "description" + } + }, + "ExportImageTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExportImageTaskId", + "smithy.api#documentation": "

The ID of the export image task.

", + "smithy.api#xmlName": "exportImageTaskId" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the image.

", + "smithy.api#xmlName": "imageId" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The percent complete of the export image task.

", + "smithy.api#xmlName": "progress" + } + }, + "S3ExportLocation": { + "target": "com.amazonaws.ec2#ExportTaskS3Location", + "traits": { + "aws.protocols#ec2QueryName": "S3ExportLocation", + "smithy.api#documentation": "

Information about the destination Amazon S3 bucket.

", + "smithy.api#xmlName": "s3ExportLocation" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the export image task. The possible values are active, completed,\n deleting, and deleted.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message for the export image task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the export image task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an export image task.

" + } + }, + "com.amazonaws.ec2#ExportImageTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ExportImageTaskIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ExportImageTaskId", + "traits": { + "smithy.api#xmlName": "ExportImageTaskId" + } + } + }, + "com.amazonaws.ec2#ExportImageTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ExportImageTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ExportTask": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the resource being exported.

", + "smithy.api#xmlName": "description" + } + }, + "ExportTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExportTaskId", + "smithy.api#documentation": "

The ID of the export task.

", + "smithy.api#xmlName": "exportTaskId" + } + }, + "ExportToS3Task": { + "target": "com.amazonaws.ec2#ExportToS3Task", + "traits": { + "aws.protocols#ec2QueryName": "ExportToS3", + "smithy.api#documentation": "

Information about the export task.

", + "smithy.api#xmlName": "exportToS3" + } + }, + "InstanceExportDetails": { + "target": "com.amazonaws.ec2#InstanceExportDetails", + "traits": { + "aws.protocols#ec2QueryName": "InstanceExport", + "smithy.api#documentation": "

Information about the instance to export.

", + "smithy.api#xmlName": "instanceExport" + } + }, + "State": { + "target": "com.amazonaws.ec2#ExportTaskState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the export task.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message related to the export task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the export task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an export instance task.

" + } + }, + "com.amazonaws.ec2#ExportTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ExportTaskIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ExportTaskId", + "traits": { + "smithy.api#xmlName": "ExportTaskId" + } + } + }, + "com.amazonaws.ec2#ExportTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ExportTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ExportTaskS3Location": { + "type": "structure", + "members": { + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The destination Amazon S3 bucket.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Prefix", + "smithy.api#documentation": "

The prefix (logical hierarchy) in the bucket.

", + "smithy.api#xmlName": "s3Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the destination for an export image task.

" + } + }, + "com.amazonaws.ec2#ExportTaskS3LocationRequest": { + "type": "structure", + "members": { + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The destination Amazon S3 bucket.

", + "smithy.api#required": {} + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The prefix (logical hierarchy) in the bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the destination for an export image task.

" + } + }, + "com.amazonaws.ec2#ExportTaskState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "cancelling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + } + } + }, + "com.amazonaws.ec2#ExportToS3Task": { + "type": "structure", + "members": { + "ContainerFormat": { + "target": "com.amazonaws.ec2#ContainerFormat", + "traits": { + "aws.protocols#ec2QueryName": "ContainerFormat", + "smithy.api#documentation": "

The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is\n exported.

", + "smithy.api#xmlName": "containerFormat" + } + }, + "DiskImageFormat": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "aws.protocols#ec2QueryName": "DiskImageFormat", + "smithy.api#documentation": "

The format for the exported image.

", + "smithy.api#xmlName": "diskImageFormat" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The Amazon S3 bucket for the destination image. The destination bucket must exist and have\n an access control list (ACL) attached that specifies the Region-specific canonical account ID for\n the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Key", + "smithy.api#documentation": "

The encryption key for your S3 bucket.

", + "smithy.api#xmlName": "s3Key" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the format and location for the export task.

" + } + }, + "com.amazonaws.ec2#ExportToS3TaskSpecification": { + "type": "structure", + "members": { + "DiskImageFormat": { + "target": "com.amazonaws.ec2#DiskImageFormat", + "traits": { + "aws.protocols#ec2QueryName": "DiskImageFormat", + "smithy.api#documentation": "

The format for the exported image.

", + "smithy.api#xmlName": "diskImageFormat" + } + }, + "ContainerFormat": { + "target": "com.amazonaws.ec2#ContainerFormat", + "traits": { + "aws.protocols#ec2QueryName": "ContainerFormat", + "smithy.api#documentation": "

The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is\n exported.

", + "smithy.api#xmlName": "containerFormat" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The Amazon S3 bucket for the destination image. The destination bucket must exist and have\n an access control list (ACL) attached that specifies the Region-specific canonical account ID for\n the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Prefix", + "smithy.api#documentation": "

The image is written to a single object in the Amazon S3 bucket at the S3 key s3prefix +\n exportTaskId + '.' + diskImageFormat.

", + "smithy.api#xmlName": "s3Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an export instance task.

" + } + }, + "com.amazonaws.ec2#ExportTransitGatewayRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ExportTransitGatewayRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ExportTransitGatewayRoutesResult" + }, + "traits": { + "smithy.api#documentation": "

Exports routes from the specified transit gateway route table to the specified S3 bucket.\n By default, all routes are exported. Alternatively, you can filter by CIDR range.

\n

The routes are saved to the specified bucket in a JSON file. For more information, see\n Export route tables\n to Amazon S3 in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "com.amazonaws.ec2#ExportTransitGatewayRoutesRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n attachment.transit-gateway-attachment-id - The id of the transit gateway attachment.

    \n
  • \n
  • \n

    \n attachment.resource-id - The resource id of the transit gateway attachment.

    \n
  • \n
  • \n

    \n route-search.exact-match - The exact match of the specified filter.

    \n
  • \n
  • \n

    \n route-search.longest-prefix-match - The longest prefix that matches the route.

    \n
  • \n
  • \n

    \n route-search.subnet-of-match - The routes with a subnet that match the specified CIDR filter.

    \n
  • \n
  • \n

    \n route-search.supernet-of-match - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29.

    \n
  • \n
  • \n

    \n state - The state of the route (active | blackhole).

    \n
  • \n
  • \n

    \n transit-gateway-route-destination-cidr-block - The CIDR range.

    \n
  • \n
  • \n

    \n type - The type of route (propagated |\n static).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the S3 bucket.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ExportTransitGatewayRoutesResult": { + "type": "structure", + "members": { + "S3Location": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Location", + "smithy.api#documentation": "

The URL of the exported file in Amazon S3. For example, \n s3://bucket_name/VPCTransitGateway/TransitGatewayRouteTables/file_name.

", + "smithy.api#xmlName": "s3Location" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Exports the client configuration for a Verified Access instance.

" + } + }, + "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ExportVerifiedAccessInstanceClientConfigurationResult": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The version.

", + "smithy.api#xmlName": "version" + } + }, + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceId", + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstanceId" + } + }, + "Region": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Region", + "smithy.api#documentation": "

The Region.

", + "smithy.api#xmlName": "region" + } + }, + "DeviceTrustProviders": { + "target": "com.amazonaws.ec2#DeviceTrustProviderTypeList", + "traits": { + "aws.protocols#ec2QueryName": "DeviceTrustProviderSet", + "smithy.api#documentation": "

The device trust providers.

", + "smithy.api#xmlName": "deviceTrustProviderSet" + } + }, + "UserTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceUserTrustProviderClientConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "UserTrustProvider", + "smithy.api#documentation": "

The user identity trust provider.

", + "smithy.api#xmlName": "userTrustProvider" + } + }, + "OpenVpnConfigurations": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationList", + "traits": { + "aws.protocols#ec2QueryName": "OpenVpnConfigurationSet", + "smithy.api#documentation": "

The Open VPN configuration.

", + "smithy.api#xmlName": "openVpnConfigurationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ExportVmTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ExternalAuthorityConfiguration": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#IpamScopeExternalAuthorityType", + "traits": { + "smithy.api#documentation": "

The type of external authority.

" + } + }, + "ExternalResourceIdentifier": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The identifier for the external resource managing this scope. For Infoblox integrations, this is the Infoblox resource identifier in the format .identity.account...

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.

\n

For more information, see Integrate VPC IPAM with Infoblox infrastructure in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResult": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet that could not be cancelled.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "CancelCapacityReservationFleetError": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetError", + "traits": { + "aws.protocols#ec2QueryName": "CancelCapacityReservationFleetError", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleet cancellation error.

", + "smithy.api#xmlName": "cancelCapacityReservationFleetError" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet that could not be cancelled.

" + } + }, + "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResult", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FailedQueuedPurchaseDeletion": { + "type": "structure", + "members": { + "Error": { + "target": "com.amazonaws.ec2#DeleteQueuedReservedInstancesError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The error.

", + "smithy.api#xmlName": "error" + } + }, + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID of the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstancesId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance whose queued purchase was not deleted.

" + } + }, + "com.amazonaws.ec2#FailedQueuedPurchaseDeletionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FailedQueuedPurchaseDeletion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FastLaunchImageIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#xmlName": "ImageId" + } + } + }, + "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationRequest": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

Specify the ID of the launch template that the AMI should use for Windows fast\n launch.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specify the name of the launch template that the AMI should use for Windows fast\n launch.

" + } + }, + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify the version of the launch template that the AMI should use for Windows fast\n launch.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Request to create a launch template for a Windows fast launch enabled AMI.

\n \n

Note - You can specify either the LaunchTemplateName or the\n LaunchTemplateId, but not both.

\n
" + } + }, + "com.amazonaws.ec2#FastLaunchLaunchTemplateSpecificationResponse": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template that the AMI uses for Windows fast launch.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template that the AMI uses for Windows fast launch.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The version of the launch template that the AMI uses for Windows fast launch.

", + "smithy.api#xmlName": "version" + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies the launch template that the AMI uses for Windows fast launch.

" + } + }, + "com.amazonaws.ec2#FastLaunchResourceType": { + "type": "enum", + "members": { + "SNAPSHOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "snapshot" + } + } + } + }, + "com.amazonaws.ec2#FastLaunchSnapshotConfigurationRequest": { + "type": "structure", + "members": { + "TargetResourceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of pre-provisioned snapshots to keep on hand for a Windows fast launch enabled\n AMI.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration settings for creating and managing pre-provisioned snapshots for a Windows\n fast launch enabled AMI.

" + } + }, + "com.amazonaws.ec2#FastLaunchSnapshotConfigurationResponse": { + "type": "structure", + "members": { + "TargetResourceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetResourceCount", + "smithy.api#documentation": "

The number of pre-provisioned snapshots requested to keep on hand for a Windows fast\n launch enabled AMI.

", + "smithy.api#xmlName": "targetResourceCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration settings for creating and managing pre-provisioned snapshots for a Windows\n fast launch enabled Windows AMI.

" + } + }, + "com.amazonaws.ec2#FastLaunchStateCode": { + "type": "enum", + "members": { + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "enabling_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling-failed" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "enabled_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled-failed" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "disabling_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling-failed" + } + } + } + }, + "com.amazonaws.ec2#FastSnapshotRestoreStateCode": { + "type": "enum", + "members": { + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "optimizing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optimizing" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#FederatedAuthentication": { + "type": "structure", + "members": { + "SamlProviderArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SamlProviderArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM SAML identity provider.

", + "smithy.api#xmlName": "samlProviderArn" + } + }, + "SelfServiceSamlProviderArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SelfServiceSamlProviderArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM SAML identity provider for the self-service portal.

", + "smithy.api#xmlName": "selfServiceSamlProviderArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the IAM SAML identity providers used for federated authentication.

" + } + }, + "com.amazonaws.ec2#FederatedAuthenticationRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM SAML identity provider.

" + } + }, + "SelfServiceSAMLProviderArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM SAML identity provider for the self-service portal.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The IAM SAML identity provider used for federated authentication.

" + } + }, + "com.amazonaws.ec2#Filter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the filter. Filter names are case-sensitive.

" + } + }, + "Values": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The filter values. Filter values are case-sensitive. If you specify multiple values for a \n filter, the values are joined with an OR, and the request returns all results \n that match any of the specified values.

", + "smithy.api#xmlName": "Value" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter name and value pair that is used to return a more specific list of results from a describe operation. \n Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

\n

If you specify multiple filters, the filters are joined with an AND, and the request returns only \n results that match all of the specified filters.

\n

For more information, see List and filter using the CLI and API in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#FilterByDimension": { + "type": "enum", + "members": { + "RESOURCE_REGION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-region" + } + }, + "AVAILABILITY_ZONE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "availability-zone-id" + } + }, + "ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account-id" + } + }, + "ACCOUNT_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account-name" + } + }, + "INSTANCE_FAMILY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-family" + } + }, + "INSTANCE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-type" + } + }, + "INSTANCE_PLATFORM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-platform" + } + }, + "RESERVATION_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-arn" + } + }, + "RESERVATION_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-id" + } + }, + "RESERVATION_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-type" + } + }, + "RESERVATION_CREATE_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-create-timestamp" + } + }, + "RESERVATION_START_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-start-timestamp" + } + }, + "RESERVATION_END_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-end-timestamp" + } + }, + "RESERVATION_END_DATE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-end-date-type" + } + }, + "TENANCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tenancy" + } + }, + "RESERVATION_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-state" + } + }, + "RESERVATION_INSTANCE_MATCH_CRITERIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-instance-match-criteria" + } + }, + "RESERVATION_UNUSED_FINANCIAL_OWNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-unused-financial-owner" + } + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + } + } + }, + "com.amazonaws.ec2#FilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Filter", + "traits": { + "smithy.api#xmlName": "Filter" + } + } + }, + "com.amazonaws.ec2#FilterPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

The first port in the range.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

The last port in the range.

", + "smithy.api#xmlName": "toPort" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a port range.

" + } + }, + "com.amazonaws.ec2#FindingsFound": { + "type": "enum", + "members": { + "true": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "true" + } + }, + "false": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "false" + } + }, + "unknown": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown" + } + } + } + }, + "com.amazonaws.ec2#FirewallStatefulRule": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupArn", + "smithy.api#documentation": "

The ARN of the stateful rule group.

", + "smithy.api#xmlName": "ruleGroupArn" + } + }, + "Sources": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SourceSet", + "smithy.api#documentation": "

The source IP addresses, in CIDR notation.

", + "smithy.api#xmlName": "sourceSet" + } + }, + "Destinations": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationSet", + "smithy.api#documentation": "

The destination IP addresses, in CIDR notation.

", + "smithy.api#xmlName": "destinationSet" + } + }, + "SourcePorts": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortSet", + "smithy.api#documentation": "

The source ports.

", + "smithy.api#xmlName": "sourcePortSet" + } + }, + "DestinationPorts": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortSet", + "smithy.api#documentation": "

The destination ports.

", + "smithy.api#xmlName": "destinationPortSet" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#documentation": "

The rule action. The possible values are pass, drop, and \n alert.

", + "smithy.api#xmlName": "ruleAction" + } + }, + "Direction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Direction", + "smithy.api#documentation": "

The direction. The possible values are FORWARD and ANY.

", + "smithy.api#xmlName": "direction" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a stateful rule.

" + } + }, + "com.amazonaws.ec2#FirewallStatelessRule": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupArn", + "smithy.api#documentation": "

The ARN of the stateless rule group.

", + "smithy.api#xmlName": "ruleGroupArn" + } + }, + "Sources": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SourceSet", + "smithy.api#documentation": "

The source IP addresses, in CIDR notation.

", + "smithy.api#xmlName": "sourceSet" + } + }, + "Destinations": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationSet", + "smithy.api#documentation": "

The destination IP addresses, in CIDR notation.

", + "smithy.api#xmlName": "destinationSet" + } + }, + "SourcePorts": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortSet", + "smithy.api#documentation": "

The source ports.

", + "smithy.api#xmlName": "sourcePortSet" + } + }, + "DestinationPorts": { + "target": "com.amazonaws.ec2#PortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortSet", + "smithy.api#documentation": "

The destination ports.

", + "smithy.api#xmlName": "destinationPortSet" + } + }, + "Protocols": { + "target": "com.amazonaws.ec2#ProtocolIntList", + "traits": { + "aws.protocols#ec2QueryName": "ProtocolSet", + "smithy.api#documentation": "

The protocols.

", + "smithy.api#xmlName": "protocolSet" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#documentation": "

The rule action. The possible values are pass, drop, and \n forward_to_site.

", + "smithy.api#xmlName": "ruleAction" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#Priority", + "traits": { + "aws.protocols#ec2QueryName": "Priority", + "smithy.api#documentation": "

The rule priority.

", + "smithy.api#xmlName": "priority" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a stateless rule.

" + } + }, + "com.amazonaws.ec2#FleetActivityStatus": { + "type": "enum", + "members": { + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "PENDING_FULFILLMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending_fulfillment" + } + }, + "PENDING_TERMINATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending_termination" + } + }, + "FULFILLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fulfilled" + } + } + } + }, + "com.amazonaws.ec2#FleetBlockDeviceMappingRequest": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The device name (for example, /dev/sdh or xvdh).

" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The virtual device name (ephemeralN). Instance store volumes are numbered\n starting from 0. An instance type with 2 available instance store volumes can specify\n mappings for ephemeral0 and ephemeral1. The number of available\n instance store volumes depends on the instance type. After you connect to the instance, you\n must mount the volume.

\n

NVMe instance store volumes are automatically enumerated and assigned a device name.\n Including them in your block device mapping has no effect.

\n

Constraints: For M3 instances, you must specify instance store volumes in the block\n device mapping for the instance. When you launch an M3 instance, we ignore any instance\n store volumes specified in the block device mapping for the AMI.

" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#FleetEbsBlockDeviceRequest", + "traits": { + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

To omit the device from the block device mapping, specify an empty string. When this\n property is specified, the device is removed from the block device mapping regardless of\n the assigned value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping, which defines the EBS volumes and instance store\n volumes to attach to an instance at launch.

\n

To override a block device mapping specified in the launch template:

\n
    \n
  • \n

    Specify the exact same DeviceName here as specified in the launch\n template.

    \n
  • \n
  • \n

    Only specify the parameters you want to change.

    \n
  • \n
  • \n

    Any parameters you don't specify here will keep their original launch template\n values.

    \n
  • \n
\n

To add a new block device mapping:

\n
    \n
  • \n

    Specify a DeviceName that doesn't exist in the launch\n template.

    \n
  • \n
  • \n

    Specify all desired parameters here.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#FleetBlockDeviceMappingRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetBlockDeviceMappingRequest", + "traits": { + "smithy.api#xmlName": "BlockDeviceMapping" + } + } + }, + "com.amazonaws.ec2#FleetCapacityReservation": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "aws.protocols#ec2QueryName": "InstancePlatform", + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "instancePlatform" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalInstanceCount", + "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves\n\t\t\tcapacity.

", + "smithy.api#xmlName": "totalInstanceCount" + } + }, + "FulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "FulfilledCapacity", + "smithy.api#documentation": "

The number of capacity units fulfilled by the Capacity Reservation. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "fulfilledCapacity" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the Capacity Reservation reserves capacity for EBS-optimized\n\t\t\tinstance types.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "Weight": { + "target": "com.amazonaws.ec2#DoubleWithConstraints", + "traits": { + "aws.protocols#ec2QueryName": "Weight", + "smithy.api#documentation": "

The weight of the instance type in the Capacity Reservation Fleet. For more\n\t\t\tinformation, see Instance type\n\t\t\t\tweight in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "weight" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#IntegerWithConstraints", + "traits": { + "aws.protocols#ec2QueryName": "Priority", + "smithy.api#documentation": "

The priority of the instance type in the Capacity Reservation Fleet. For more\n\t\t\tinformation, see Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "priority" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Capacity Reservation in a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#FleetCapacityReservationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetCapacityReservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetCapacityReservationTargetRequest": { + "type": "structure", + "members": { + "CapacityReservationIds": { + "target": "com.amazonaws.ec2#CapacityReservationIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the Capacity Reservations in which to launch the instances.

", + "smithy.api#xmlName": "CapacityReservationId" + } + }, + "CapacityReservationResourceGroupArns": { + "target": "com.amazonaws.ec2#CapacityReservationResourceGroupArnSet", + "traits": { + "smithy.api#documentation": "

The ARNs of the Capacity Reservation Resource Groups in which to launch the\n instances.

", + "smithy.api#xmlName": "CapacityReservationResourceGroupArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the target Capacity Reservations or Capacity Reservation Resource Groups for an EC2 Fleet\n that launches into reserved capacity. You can specify Capacity Reservation IDs or a\n Capacity Reservation Resource Group ARN, but not both.

" + } + }, + "com.amazonaws.ec2#FleetCapacityReservationTenancy": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#FleetCapacityReservationUsageStrategy": { + "type": "enum", + "members": { + "USE_CAPACITY_RESERVATIONS_FIRST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "use-capacity-reservations-first" + } + } + } + }, + "com.amazonaws.ec2#FleetData": { + "type": "structure", + "members": { + "ActivityStatus": { + "target": "com.amazonaws.ec2#FleetActivityStatus", + "traits": { + "aws.protocols#ec2QueryName": "ActivityStatus", + "smithy.api#documentation": "

The progress of the EC2 Fleet.

\n

For fleets of type instant, the status is fulfilled after all\n requests are placed, regardless of whether target capacity is met (this is the only\n possible status for instant fleets).

\n

For fleets of type request or maintain, the status is\n pending_fulfillment after all requests are placed, fulfilled\n when the fleet size meets or exceeds target capacity, pending_termination\n while instances are terminating when fleet size is decreased, and error if\n there's an error.

", + "smithy.api#xmlName": "activityStatus" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The creation date and time of the EC2 Fleet.

", + "smithy.api#xmlName": "createTime" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "aws.protocols#ec2QueryName": "FleetId", + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetId" + } + }, + "FleetState": { + "target": "com.amazonaws.ec2#FleetStateCode", + "traits": { + "aws.protocols#ec2QueryName": "FleetState", + "smithy.api#documentation": "

The state of the EC2 Fleet.

", + "smithy.api#xmlName": "fleetState" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring\n idempotency.

\n

Constraints: Maximum 64 ASCII characters

", + "smithy.api#xmlName": "clientToken" + } + }, + "ExcessCapacityTerminationPolicy": { + "target": "com.amazonaws.ec2#FleetExcessCapacityTerminationPolicy", + "traits": { + "aws.protocols#ec2QueryName": "ExcessCapacityTerminationPolicy", + "smithy.api#documentation": "

Indicates whether running instances should be terminated if the target capacity of the\n EC2 Fleet is decreased below the current size of the EC2 Fleet.

\n

Supported only for fleets of type maintain.

", + "smithy.api#xmlName": "excessCapacityTerminationPolicy" + } + }, + "FulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "FulfilledCapacity", + "smithy.api#documentation": "

The number of units fulfilled by this request compared to the set target\n capacity.

", + "smithy.api#xmlName": "fulfilledCapacity" + } + }, + "FulfilledOnDemandCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "FulfilledOnDemandCapacity", + "smithy.api#documentation": "

The number of units fulfilled by this request compared to the set target On-Demand\n capacity.

", + "smithy.api#xmlName": "fulfilledOnDemandCapacity" + } + }, + "LaunchTemplateConfigs": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateConfigList", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateConfigs", + "smithy.api#documentation": "

The launch template and overrides.

", + "smithy.api#xmlName": "launchTemplateConfigs" + } + }, + "TargetCapacitySpecification": { + "target": "com.amazonaws.ec2#TargetCapacitySpecification", + "traits": { + "aws.protocols#ec2QueryName": "TargetCapacitySpecification", + "smithy.api#documentation": "

The number of units to request. You can choose to set the target capacity in terms of\n instances or a performance characteristic that is important to your application workload,\n such as vCPUs, memory, or I/O. If the request type is maintain, you can\n specify a target capacity of 0 and add capacity later.

", + "smithy.api#xmlName": "targetCapacitySpecification" + } + }, + "TerminateInstancesWithExpiration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "TerminateInstancesWithExpiration", + "smithy.api#documentation": "

Indicates whether running instances should be terminated when the EC2 Fleet expires.

", + "smithy.api#xmlName": "terminateInstancesWithExpiration" + } + }, + "Type": { + "target": "com.amazonaws.ec2#FleetType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of request. Indicates whether the EC2 Fleet only requests the target\n capacity, or also attempts to maintain it. If you request a certain target\n capacity, EC2 Fleet only places the required requests; it does not attempt to replenish\n instances if capacity is diminished, and it does not submit requests in alternative\n capacity pools if capacity is unavailable. To maintain a certain target capacity, EC2 Fleet\n places the required requests to meet this target capacity. It also automatically\n replenishes any interrupted Spot Instances. Default: maintain.

", + "smithy.api#xmlName": "type" + } + }, + "ValidFrom": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidFrom", + "smithy.api#documentation": "

The start date and time of the request, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n The default is to start fulfilling the request immediately.

", + "smithy.api#xmlName": "validFrom" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidUntil", + "smithy.api#documentation": "

The end date and time of the request, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n At this point, no new instance requests are placed or able to fulfill the request. The\n default end date is 7 days from the current date.

", + "smithy.api#xmlName": "validUntil" + } + }, + "ReplaceUnhealthyInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReplaceUnhealthyInstances", + "smithy.api#documentation": "

Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for\n fleets of type maintain. For more information, see EC2 Fleet\n health checks in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "replaceUnhealthyInstances" + } + }, + "SpotOptions": { + "target": "com.amazonaws.ec2#SpotOptions", + "traits": { + "aws.protocols#ec2QueryName": "SpotOptions", + "smithy.api#documentation": "

The configuration of Spot Instances in an EC2 Fleet.

", + "smithy.api#xmlName": "spotOptions" + } + }, + "OnDemandOptions": { + "target": "com.amazonaws.ec2#OnDemandOptions", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandOptions", + "smithy.api#documentation": "

The allocation strategy of On-Demand Instances in an EC2 Fleet.

", + "smithy.api#xmlName": "onDemandOptions" + } + }, + "ReservedCapacityOptions": { + "target": "com.amazonaws.ec2#ReservedCapacityOptions", + "traits": { + "aws.protocols#ec2QueryName": "ReservedCapacityOptions", + "smithy.api#documentation": "

Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType is set to reserved-capacity.

", + "smithy.api#xmlName": "reservedCapacityOptions" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for an EC2 Fleet resource.

", + "smithy.api#xmlName": "tagSet" + } + }, + "Errors": { + "target": "com.amazonaws.ec2#DescribeFleetsErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "ErrorSet", + "smithy.api#documentation": "

Information about the instances that could not be launched by the fleet. Valid only when\n Type is set to instant.

", + "smithy.api#xmlName": "errorSet" + } + }, + "Instances": { + "target": "com.amazonaws.ec2#DescribeFleetsInstancesSet", + "traits": { + "aws.protocols#ec2QueryName": "FleetInstanceSet", + "smithy.api#documentation": "

Information about the instances that were launched by the fleet. Valid only when\n Type is set to instant.

", + "smithy.api#xmlName": "fleetInstanceSet" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Context", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "context" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EC2 Fleet.

" + } + }, + "com.amazonaws.ec2#FleetEbsBlockDeviceRequest": { + "type": "structure", + "members": { + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the encryption state of an EBS volume is changed while being restored\n from a backing snapshot. The effect of setting the encryption state to true\n depends on the volume origin (new or from a snapshot), starting encryption state,\n ownership, and whether encryption by default is enabled. For more information, see Amazon EBS\n encryption in the Amazon EBS User Guide.

\n

In no case can you remove encryption from an encrypted volume.

\n

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For\n more information, see Supported instance types.

\n

This parameter is not returned by DescribeImageAttribute.

\n

For CreateImage and RegisterImage, whether you\n can include this parameter, and the allowed values differ depending on the type of block\n device mapping you are creating.

\n
    \n
  • \n

    If you are creating a block device mapping for a new (empty)\n volume, you can include this parameter, and specify either\n true for an encrypted volume, or false for an\n unencrypted volume. If you omit this parameter, it defaults to false\n (unencrypted).

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing encrypted or\n unencrypted snapshot, you must omit this parameter. If you include this\n parameter, the request will fail, regardless of the value that you specify.

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing unencrypted\n volume, you can include this parameter, but you must specify\n false. If you specify true, the request will fail. In\n this case, we recommend that you omit the parameter.

    \n
  • \n
  • \n

    If you are creating a block device mapping from an existing encrypted\n volume, you can include this parameter, and specify either\n true or false. However, if you specify\n false, the parameter is ignored and the block device mapping is\n always encrypted. In this case, we recommend that you omit the parameter.

    \n
  • \n
" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the EBS volume is deleted on instance termination. For more\n information, see Preserve data when\n an instance is terminated in the Amazon EC2 User Guide.

" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,\n this represents the number of IOPS that are provisioned for the volume. For gp2\n volumes, this represents the baseline performance of the volume and the rate at which\n the volume accumulates I/O credits for bursting.

\n

The following are the supported values for each volume type:

\n
    \n
  • \n

    \n gp3: 3,000 - 80,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

For io2 volumes, you can achieve up to 256,000 IOPS on \ninstances \nbuilt on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.

\n

This parameter is required for io1 and io2 volumes. The default for gp3 volumes\n is 3,000 IOPS.

" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

\n

This parameter is valid only for gp3 volumes.

\n

Valid Range: Minimum value of 125. Maximum value of 2,000.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key \n to use for EBS encryption.

\n

This parameter is only supported on BlockDeviceMapping objects called by\n CreateFleet, RequestSpotInstances, and RunInstances.

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The ID of the snapshot.

" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The size of the volume, in GiBs. You must specify either a snapshot ID or a volume\n size. If you specify a snapshot, the default is the snapshot size. You can specify a\n volume size that is equal to or larger than the snapshot size.

\n

The following are the supported sizes for each volume type:

\n
    \n
  • \n

    \n gp2: 1 - 16,384 GiB

    \n
  • \n
  • \n

    \n gp3: 1 - 65,536 GiB

    \n
  • \n
  • \n

    \n io1: 4 - 16,384 GiB

    \n
  • \n
  • \n

    \n io2: 4 - 65,536 GiB

    \n
  • \n
  • \n

    \n st1 and sc1: 125 - 16,384 GiB

    \n
  • \n
  • \n

    \n standard: 1 - 1024 GiB

    \n
  • \n
" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "smithy.api#documentation": "

The volume type. For more information, see Amazon EBS volume types in the\n Amazon EBS User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device for an EBS volume.

" + } + }, + "com.amazonaws.ec2#FleetEventType": { + "type": "enum", + "members": { + "INSTANCE_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-change" + } + }, + "FLEET_CHANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleet-change" + } + }, + "SERVICE_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service-error" + } + } + } + }, + "com.amazonaws.ec2#FleetExcessCapacityTerminationPolicy": { + "type": "enum", + "members": { + "NO_TERMINATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-termination" + } + }, + "TERMINATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "termination" + } + } + } + }, + "com.amazonaws.ec2#FleetHttpTokensState": { + "type": "enum", + "members": { + "OPTIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optional" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#FleetIamInstanceProfileSpecificationRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the instance profile.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IAM instance profile. Supported only for fleets of type\n instant.

" + } + }, + "com.amazonaws.ec2#FleetId": { + "type": "string" + }, + "com.amazonaws.ec2#FleetIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetId" + } + }, + "com.amazonaws.ec2#FleetInstanceMatchCriteria": { + "type": "enum", + "members": { + "open": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open" + } + } + } + }, + "com.amazonaws.ec2#FleetInstanceMetadataEndpointState": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#FleetInstanceMetadataOptionsRequest": { + "type": "structure", + "members": { + "HttpTokens": { + "target": "com.amazonaws.ec2#FleetHttpTokensState", + "traits": { + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional, which means that you can use either\n IMDSv2 or IMDSv1.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required, which means that IMDSv1 is\n disabled, and you must use IMDSv2.

    \n
  • \n
" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n number, the further instance metadata requests can travel.

\n

Default: 1\n

\n

Possible values: Integers from 1 to 64

" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#FleetInstanceMetadataEndpointState", + "traits": { + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances.

\n
    \n
  • \n

    \n enabled - The HTTP metadata endpoint is enabled.

    \n
  • \n
  • \n

    \n disabled - The HTTP metadata endpoint is disabled.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the metadata options for the instances. Supported only for fleets of type\n instant.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateConfig": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateSpecification", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateSpecification", + "smithy.api#documentation": "

The launch template.

", + "smithy.api#xmlName": "launchTemplateSpecification" + } + }, + "Overrides": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateOverridesList", + "traits": { + "aws.protocols#ec2QueryName": "Overrides", + "smithy.api#documentation": "

Any parameters that you specify override the same parameters in the launch\n template.

", + "smithy.api#xmlName": "overrides" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template and overrides.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateConfig", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateConfigListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateConfigRequest", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateConfigRequest": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The launch template to use. You must specify either the launch template ID or launch\n template name in the request.

" + } + }, + "Overrides": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateOverridesListRequest", + "traits": { + "smithy.api#documentation": "

Any parameters that you specify override the same parameters in the launch\n template.

\n

For fleets of type request and maintain, a maximum of 300\n items is allowed across all launch templates.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template and overrides.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateOverrides": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

\n

\n mac1.metal is not supported as a launch template override.

\n \n

If you specify InstanceType, you can't specify\n InstanceRequirements.

\n
", + "smithy.api#xmlName": "instanceType" + } + }, + "MaxPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MaxPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not \n recommend using this parameter because it can lead to increased interruptions. If you \n do not specify this parameter, you will pay the current Spot price.\n

\n \n

If you specify a maximum price, your instances will be interrupted more frequently \n than if you do not specify this parameter.

\n

If you specify a maximum price, it must be more than USD $0.001. Specifying a value\n below USD $0.001 will result in an InvalidParameterValue error\n message.

\n
", + "smithy.api#xmlName": "maxPrice" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which to launch the instances.

", + "smithy.api#xmlName": "subnetId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which to launch the instances. For example,\n us-east-2a.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "WeightedCapacity", + "smithy.api#documentation": "

The number of units provided by the specified instance type. These are the same units\n that you chose to set the target capacity in terms of instances, or a performance\n characteristic such as vCPUs, memory, or I/O.

\n

If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the\n number of instances to the next whole number. If this value is not specified, the default\n is 1.

\n \n

When specifying weights, the price used in the lowest-price and\n price-capacity-optimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
", + "smithy.api#xmlName": "weightedCapacity" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Priority", + "smithy.api#documentation": "

The priority for the launch template override. The highest priority is launched\n first.

\n

If the On-Demand AllocationStrategy is set to prioritized,\n EC2 Fleet uses priority to determine which launch template override to use first in fulfilling\n On-Demand capacity.

\n

If the Spot AllocationStrategy is set to\n capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis\n to determine which launch template override to use in fulfilling Spot capacity, but\n optimizes for capacity first.

\n

Valid values are whole numbers starting at 0. The lower the number, the\n higher the priority. If no number is set, the override has the lowest priority. You can set\n the same priority for different launch template overrides.

", + "smithy.api#xmlName": "priority" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#PlacementResponse", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The location where the instance launched, if applicable.

", + "smithy.api#xmlName": "placement" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirements", + "traits": { + "aws.protocols#ec2QueryName": "InstanceRequirements", + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with those attributes.

\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n
", + "smithy.api#xmlName": "instanceRequirements" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI in the format ami-17characters00000.

\n

Alternatively, you can specify a Systems Manager parameter, using one of the following\n formats. The Systems Manager parameter will resolve to an AMI ID on launch.

\n

To reference a public parameter:

\n
    \n
  • \n

    \n resolve:ssm:public-parameter\n \n

    \n
  • \n
\n

To reference a parameter stored in the same account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-name\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:label\n \n

    \n
  • \n
\n

To reference a parameter shared from another Amazon Web Services account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-ARN\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:label\n \n

    \n
  • \n
\n

For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

\n \n

This parameter is only available for fleets of type instant. For fleets\n of type maintain and request, you must specify the AMI ID in\n the launch template.

\n
", + "smithy.api#xmlName": "imageId" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingResponseList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMappingSet", + "smithy.api#documentation": "

The block device mappings, which define the EBS volumes and instance store volumes to\n attach to the instance at launch.

\n

Supported only for fleets of type instant.

\n

For more information, see Block device mappings\n for volumes on Amazon EC2 instances in the Amazon EC2 User\n Guide.

", + "smithy.api#xmlName": "blockDeviceMappingSet" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which to launch the instances. For example,\n use2-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes overrides for a launch template.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateOverridesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateOverrides", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateOverridesListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateOverridesRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateOverridesRequest": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type.

\n

\n mac1.metal is not supported as a launch template override.

\n \n

If you specify InstanceType, you can't specify\n InstanceRequirements.

\n
" + } + }, + "MaxPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not \n recommend using this parameter because it can lead to increased interruptions. If you \n do not specify this parameter, you will pay the current Spot price.\n

\n \n

If you specify a maximum price, your instances will be interrupted more \n frequently than if you do not specify this parameter.

\n

If you specify a maximum price, it must be more than USD $0.001. Specifying a value\n below USD $0.001 will result in an InvalidParameterValue error\n message.

\n
" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets in which to launch the instances. Separate multiple subnet IDs using commas (for example, subnet-1234abcdeexample1, subnet-0987cdef6example2). A request of type instant can have only one subnet ID.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which to launch the instances. For example,\n us-east-2a.

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

" + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The number of units provided by the specified instance type. These are the same units\n that you chose to set the target capacity in terms of instances, or a performance\n characteristic such as vCPUs, memory, or I/O.

\n

If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the\n number of instances to the next whole number. If this value is not specified, the default\n is 1.

\n \n

When specifying weights, the price used in the lowest-price and\n price-capacity-optimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The priority for the launch template override. The highest priority is launched\n first.

\n

If the On-Demand AllocationStrategy is set to prioritized,\n EC2 Fleet uses priority to determine which launch template override to use first in fulfilling\n On-Demand capacity.

\n

If the Spot AllocationStrategy is set to\n capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis\n to determine which launch template override to use in fulfilling Spot capacity, but\n optimizes for capacity first.

\n

Valid values are whole numbers starting at 0. The lower the number, the\n higher the priority. If no number is set, the launch template override has the lowest\n priority. You can set the same priority for different launch template overrides.

" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#Placement", + "traits": { + "smithy.api#documentation": "

The location where the instance launched, if applicable.

" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the key pair to use for the instances.

\n

Supported only for fleets of type instant.

\n

For more information, see Amazon EC2 key pairs\n in the Amazon EC2 User Guide.

" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#FleetBlockDeviceMappingRequestList", + "traits": { + "smithy.api#documentation": "

The block device mappings, which define the EBS volumes and instance store volumes to\n attach to the instance at launch.

\n

Supported only for fleets of type instant.

\n

For more information, see Block device mappings\n for volumes on Amazon EC2 instances in the Amazon EC2 User\n Guide.

", + "smithy.api#xmlName": "BlockDeviceMapping" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#FleetIamInstanceProfileSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The IAM instance profile to associate with the instances.

\n

Supported only for fleets of type instant.

\n

For more information, see IAM roles for Amazon EC2\n in the Amazon EC2 User Guide.

" + } + }, + "MetadataOptions": { + "target": "com.amazonaws.ec2#FleetInstanceMetadataOptionsRequest", + "traits": { + "smithy.api#documentation": "

The metadata options for the instances.

\n

Supported only for fleets of type instant.

\n

For more information, see Configure the\n instance metadata service in the Amazon EC2 User Guide.

" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with those attributes.

\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n
" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the AMI in the format ami-17characters00000.

\n

Alternatively, you can specify a Systems Manager parameter, using one of the following\n formats. The Systems Manager parameter will resolve to an AMI ID on launch.

\n

To reference a public parameter:

\n
    \n
  • \n

    \n resolve:ssm:public-parameter\n \n

    \n
  • \n
\n

To reference a parameter stored in the same account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-name\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:label\n \n

    \n
  • \n
\n

To reference a parameter shared from another Amazon Web Services account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-ARN\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:label\n \n

    \n
  • \n
\n

For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

\n \n

This parameter is only available for fleets of type instant. For fleets\n of type maintain and request, you must specify the AMI ID in\n the launch template.

\n
" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which to launch the instances. For example,\n use2-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes overrides for a launch template.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateSpecification": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The launch template version number, $Latest, or $Default.\n You must specify a value, otherwise the request fails.

\n

If the value is $Latest, Amazon EC2 uses the latest version of the launch\n template.

\n

If the value is $Default, Amazon EC2 uses the default version of the launch\n template.

", + "smithy.api#xmlName": "version" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon EC2 launch template that can be used by\n a Spot Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.

\n

For information about launch templates,\n see Launch an instance from a launch template in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#FleetLaunchTemplateSpecificationRequest": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

" + } + }, + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The launch template version number, $Latest, or $Default. You must specify a value, otherwise the request fails.

\n

If the value is $Latest, Amazon EC2 uses the latest version of the launch template.

\n

If the value is $Default, Amazon EC2 uses the default version of the launch template.

" + } + }, + "LaunchTemplateSpecificationUserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "smithy.api#documentation": "

The base64-encoded user data for instances launched by the fleet. User data is limited\n to 16 KB, in raw form, before it is base64-encoded.

\n

Supported only for fleets of type instant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon EC2 launch template that can be used by\n an EC2 Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.

\n

For information about launch templates, see Launch\n an instance from a launch template in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#FleetOnDemandAllocationStrategy": { + "type": "enum", + "members": { + "LOWEST_PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lowest-price" + } + }, + "PRIORITIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prioritized" + } + } + } + }, + "com.amazonaws.ec2#FleetReplacementStrategy": { + "type": "enum", + "members": { + "LAUNCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launch" + } + }, + "LAUNCH_BEFORE_TERMINATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launch-before-terminate" + } + } + } + }, + "com.amazonaws.ec2#FleetReservationType": { + "type": "enum", + "members": { + "ON_DEMAND_CAPACITY_RESERVATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand-capacity-reservation" + } + }, + "CAPACITY_BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "INTERRUPTIBLE_CAPACITY_RESERVATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interruptible-capacity-reservation" + } + } + } + }, + "com.amazonaws.ec2#FleetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetData", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetSpotCapacityRebalance": { + "type": "structure", + "members": { + "ReplacementStrategy": { + "target": "com.amazonaws.ec2#FleetReplacementStrategy", + "traits": { + "aws.protocols#ec2QueryName": "ReplacementStrategy", + "smithy.api#documentation": "

The replacement strategy to use. Only available for fleets of type\n maintain.

\n

\n launch - EC2 Fleet launches a new replacement Spot Instance when a\n rebalance notification is emitted for an existing Spot Instance in the fleet. EC2 Fleet\n does not terminate the instances that receive a rebalance notification. You can terminate\n the old instances, or you can leave them running. You are charged for all instances while\n they are running.

\n

\n launch-before-terminate - EC2 Fleet launches a new replacement Spot\n Instance when a rebalance notification is emitted for an existing Spot Instance in the\n fleet, and then, after a delay that you specify (in TerminationDelay),\n terminates the instances that received a rebalance notification.

", + "smithy.api#xmlName": "replacementStrategy" + } + }, + "TerminationDelay": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TerminationDelay", + "smithy.api#documentation": "

The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n Instance after launching a new replacement Spot Instance.

\n

Required when ReplacementStrategy is set to launch-before-terminate.

\n

Not valid when ReplacementStrategy is set to launch.

\n

Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds.

", + "smithy.api#xmlName": "terminationDelay" + } + } + }, + "traits": { + "smithy.api#documentation": "

The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an\n elevated risk of being interrupted.

" + } + }, + "com.amazonaws.ec2#FleetSpotCapacityRebalanceRequest": { + "type": "structure", + "members": { + "ReplacementStrategy": { + "target": "com.amazonaws.ec2#FleetReplacementStrategy", + "traits": { + "smithy.api#documentation": "

The replacement strategy to use. Only available for fleets of type\n maintain.

\n

\n launch - EC2 Fleet launches a replacement Spot Instance when a rebalance\n notification is emitted for an existing Spot Instance in the fleet. EC2 Fleet does not\n terminate the instances that receive a rebalance notification. You can terminate the old\n instances, or you can leave them running. You are charged for all instances while they are\n running.

\n

\n launch-before-terminate - EC2 Fleet launches a replacement Spot Instance\n when a rebalance notification is emitted for an existing Spot Instance in the fleet, and\n then, after a delay that you specify (in TerminationDelay), terminates the\n instances that received a rebalance notification.

" + } + }, + "TerminationDelay": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n Instance after launching a new replacement Spot Instance.

\n

Required when ReplacementStrategy is set to launch-before-terminate.

\n

Not valid when ReplacementStrategy is set to launch.

\n

Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Spot Instance replacement strategy to use when Amazon EC2 emits a rebalance\n notification signal that your Spot Instance is at an elevated risk of being interrupted.\n For more information, see Capacity rebalancing in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#FleetSpotMaintenanceStrategies": { + "type": "structure", + "members": { + "CapacityRebalance": { + "target": "com.amazonaws.ec2#FleetSpotCapacityRebalance", + "traits": { + "aws.protocols#ec2QueryName": "CapacityRebalance", + "smithy.api#documentation": "

The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an\n elevated risk of being interrupted.

", + "smithy.api#xmlName": "capacityRebalance" + } + } + }, + "traits": { + "smithy.api#documentation": "

The strategies for managing your Spot Instances that are at an elevated risk of being\n interrupted.

" + } + }, + "com.amazonaws.ec2#FleetSpotMaintenanceStrategiesRequest": { + "type": "structure", + "members": { + "CapacityRebalance": { + "target": "com.amazonaws.ec2#FleetSpotCapacityRebalanceRequest", + "traits": { + "smithy.api#documentation": "

The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an\n elevated risk of being interrupted.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.

" + } + }, + "com.amazonaws.ec2#FleetStateCode": { + "type": "enum", + "members": { + "SUBMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "submitted" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "DELETED_RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted_running" + } + }, + "DELETED_TERMINATING_INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted_terminating" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + } + } + }, + "com.amazonaws.ec2#FleetType": { + "type": "enum", + "members": { + "REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "request" + } + }, + "MAINTAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintain" + } + }, + "INSTANT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instant" + } + } + } + }, + "com.amazonaws.ec2#FlexibleEnaQueuesSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#Float": { + "type": "float" + }, + "com.amazonaws.ec2#FlowLog": { + "type": "structure", + "members": { + "CreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The date and time the flow log was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "DeliverLogsErrorMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeliverLogsErrorMessage", + "smithy.api#documentation": "

Information about the error that occurred. Rate limited indicates that\n CloudWatch Logs throttling has been applied for one or more network interfaces, or that you've\n reached the limit on the number of log groups that you can create. Access\n error indicates that the IAM role associated with the flow log does not have\n sufficient permissions to publish to CloudWatch Logs. Unknown error indicates an\n internal error.

", + "smithy.api#xmlName": "deliverLogsErrorMessage" + } + }, + "DeliverLogsPermissionArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeliverLogsPermissionArn", + "smithy.api#documentation": "

The ARN of the IAM role allows the service to publish logs to CloudWatch Logs.

", + "smithy.api#xmlName": "deliverLogsPermissionArn" + } + }, + "DeliverCrossAccountRole": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeliverCrossAccountRole", + "smithy.api#documentation": "

The ARN of the IAM role that allows the service to publish flow logs across accounts.

", + "smithy.api#xmlName": "deliverCrossAccountRole" + } + }, + "DeliverLogsStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeliverLogsStatus", + "smithy.api#documentation": "

The status of the logs delivery (SUCCESS | FAILED).

", + "smithy.api#xmlName": "deliverLogsStatus" + } + }, + "FlowLogId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FlowLogId", + "smithy.api#documentation": "

The ID of the flow log.

", + "smithy.api#xmlName": "flowLogId" + } + }, + "FlowLogStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FlowLogStatus", + "smithy.api#documentation": "

The status of the flow log (ACTIVE).

", + "smithy.api#xmlName": "flowLogStatus" + } + }, + "LogGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogGroupName", + "smithy.api#documentation": "

The name of the flow log group.

", + "smithy.api#xmlName": "logGroupName" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource being monitored.

", + "smithy.api#xmlName": "resourceId" + } + }, + "TrafficType": { + "target": "com.amazonaws.ec2#TrafficType", + "traits": { + "aws.protocols#ec2QueryName": "TrafficType", + "smithy.api#documentation": "

The type of traffic captured for the flow log.

", + "smithy.api#xmlName": "trafficType" + } + }, + "LogDestinationType": { + "target": "com.amazonaws.ec2#LogDestinationType", + "traits": { + "aws.protocols#ec2QueryName": "LogDestinationType", + "smithy.api#documentation": "

The type of destination for the flow log data.

", + "smithy.api#xmlName": "logDestinationType" + } + }, + "LogDestination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogDestination", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination for the flow log data.

", + "smithy.api#xmlName": "logDestination" + } + }, + "LogFormat": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogFormat", + "smithy.api#documentation": "

The format of the flow log record.

", + "smithy.api#xmlName": "logFormat" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the flow log.

", + "smithy.api#xmlName": "tagSet" + } + }, + "MaxAggregationInterval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxAggregationInterval", + "smithy.api#documentation": "

The maximum interval of time, in seconds, during which a flow of packets is captured and aggregated into a flow log record.

\n

When a network interface is attached to a Nitro-based\n instance, the aggregation interval is always 60 seconds (1 minute) or less,\n regardless of the specified value.

\n

Valid Values: 60 | 600\n

", + "smithy.api#xmlName": "maxAggregationInterval" + } + }, + "DestinationOptions": { + "target": "com.amazonaws.ec2#DestinationOptionsResponse", + "traits": { + "aws.protocols#ec2QueryName": "DestinationOptions", + "smithy.api#documentation": "

The destination options.

", + "smithy.api#xmlName": "destinationOptions" + } + }, + "TagFieldSpecifications": { + "target": "com.amazonaws.ec2#TagFieldSpecificationListResponse", + "traits": { + "aws.protocols#ec2QueryName": "TagFieldSpecificationSet", + "smithy.api#documentation": "

The tag configuration associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

", + "smithy.api#xmlName": "tagFieldSpecificationSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a flow log.

" + } + }, + "com.amazonaws.ec2#FlowLogIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcFlowLogId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FlowLogResourceId": { + "type": "string" + }, + "com.amazonaws.ec2#FlowLogResourceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FlowLogResourceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FlowLogSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FlowLog", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FlowLogsResourceType": { + "type": "enum", + "members": { + "VPC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPC" + } + }, + "Subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Subnet" + } + }, + "NetworkInterface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NetworkInterface" + } + }, + "TransitGateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TransitGateway" + } + }, + "TransitGatewayAttachment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TransitGatewayAttachment" + } + }, + "RegionalNatGateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RegionalNatGateway" + } + }, + "CoreNetwork": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CoreNetwork" + } + }, + "CoreNetworkEdge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CoreNetworkEdge" + } + }, + "CoreNetworkAttachment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CoreNetworkAttachment" + } + } + } + }, + "com.amazonaws.ec2#FpgaDeviceCount": { + "type": "integer" + }, + "com.amazonaws.ec2#FpgaDeviceInfo": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#FpgaDeviceName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the FPGA accelerator.

", + "smithy.api#xmlName": "name" + } + }, + "Manufacturer": { + "target": "com.amazonaws.ec2#FpgaDeviceManufacturerName", + "traits": { + "aws.protocols#ec2QueryName": "Manufacturer", + "smithy.api#documentation": "

The manufacturer of the FPGA accelerator.

", + "smithy.api#xmlName": "manufacturer" + } + }, + "Count": { + "target": "com.amazonaws.ec2#FpgaDeviceCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The count of FPGA accelerators for the instance type.

", + "smithy.api#xmlName": "count" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#FpgaDeviceMemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory for the FPGA accelerator for the instance type.

", + "smithy.api#xmlName": "memoryInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the FPGA accelerator for the instance type.

" + } + }, + "com.amazonaws.ec2#FpgaDeviceInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FpgaDeviceInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FpgaDeviceManufacturerName": { + "type": "string" + }, + "com.amazonaws.ec2#FpgaDeviceMemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#FpgaDeviceMemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory available to the FPGA accelerator, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the memory for the FPGA accelerator for the instance type.

" + } + }, + "com.amazonaws.ec2#FpgaDeviceMemorySize": { + "type": "integer" + }, + "com.amazonaws.ec2#FpgaDeviceName": { + "type": "string" + }, + "com.amazonaws.ec2#FpgaImage": { + "type": "structure", + "members": { + "FpgaImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageId", + "smithy.api#documentation": "

The FPGA image identifier (AFI ID).

", + "smithy.api#xmlName": "fpgaImageId" + } + }, + "FpgaImageGlobalId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageGlobalId", + "smithy.api#documentation": "

The global FPGA image identifier (AGFI ID).

", + "smithy.api#xmlName": "fpgaImageGlobalId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the AFI.

", + "smithy.api#xmlName": "name" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the AFI.

", + "smithy.api#xmlName": "description" + } + }, + "ShellVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ShellVersion", + "smithy.api#documentation": "

The version of the Amazon Web Services Shell that was used to create the bitstream.

", + "smithy.api#xmlName": "shellVersion" + } + }, + "PciId": { + "target": "com.amazonaws.ec2#PciId", + "traits": { + "aws.protocols#ec2QueryName": "PciId", + "smithy.api#documentation": "

Information about the PCI bus.

", + "smithy.api#xmlName": "pciId" + } + }, + "State": { + "target": "com.amazonaws.ec2#FpgaImageState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

Information about the state of the AFI.

", + "smithy.api#xmlName": "state" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time the AFI was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "UpdateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateTime", + "smithy.api#documentation": "

The time of the most recent update to the AFI.

", + "smithy.api#xmlName": "updateTime" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the AFI.

", + "smithy.api#xmlName": "ownerId" + } + }, + "OwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerAlias", + "smithy.api#documentation": "

The alias of the AFI owner. Possible values include self, amazon, and aws-marketplace.

", + "smithy.api#xmlName": "ownerAlias" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes for the AFI.

", + "smithy.api#xmlName": "productCodes" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "Tags", + "smithy.api#documentation": "

Any tags assigned to the AFI.

", + "smithy.api#xmlName": "tags" + } + }, + "Public": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Public", + "smithy.api#documentation": "

Indicates whether the AFI is public.

", + "smithy.api#xmlName": "public" + } + }, + "DataRetentionSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DataRetentionSupport", + "smithy.api#documentation": "

Indicates whether data retention support is enabled for the AFI.

", + "smithy.api#xmlName": "dataRetentionSupport" + } + }, + "InstanceTypes": { + "target": "com.amazonaws.ec2#InstanceTypesList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypes", + "smithy.api#documentation": "

The instance types supported by the AFI.

", + "smithy.api#xmlName": "instanceTypes" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon FPGA image (AFI).

" + } + }, + "com.amazonaws.ec2#FpgaImageAttribute": { + "type": "structure", + "members": { + "FpgaImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageId", + "smithy.api#documentation": "

The ID of the AFI.

", + "smithy.api#xmlName": "fpgaImageId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the AFI.

", + "smithy.api#xmlName": "name" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the AFI.

", + "smithy.api#xmlName": "description" + } + }, + "LoadPermissions": { + "target": "com.amazonaws.ec2#LoadPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "LoadPermissions", + "smithy.api#documentation": "

The load permissions.

", + "smithy.api#xmlName": "loadPermissions" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes.

", + "smithy.api#xmlName": "productCodes" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon FPGA image (AFI) attribute.

" + } + }, + "com.amazonaws.ec2#FpgaImageAttributeName": { + "type": "enum", + "members": { + "description": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "description" + } + }, + "name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "name" + } + }, + "loadPermission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "loadPermission" + } + }, + "productCodes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "productCodes" + } + } + } + }, + "com.amazonaws.ec2#FpgaImageId": { + "type": "string" + }, + "com.amazonaws.ec2#FpgaImageIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FpgaImageId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FpgaImageList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FpgaImage", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FpgaImageState": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#FpgaImageStateCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state. The following are the possible values:

\n
    \n
  • \n

    \n pending - AFI bitstream generation is in progress.

    \n
  • \n
  • \n

    \n available - The AFI is available for use.

    \n
  • \n
  • \n

    \n failed - AFI bitstream generation failed.

    \n
  • \n
  • \n

    \n unavailable - The AFI is no longer available for use.

    \n
  • \n
", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

If the state is failed, this is the error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of the bitstream generation process for an Amazon FPGA image (AFI).

" + } + }, + "com.amazonaws.ec2#FpgaImageStateCode": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + } + } + }, + "com.amazonaws.ec2#FpgaInfo": { + "type": "structure", + "members": { + "Fpgas": { + "target": "com.amazonaws.ec2#FpgaDeviceInfoList", + "traits": { + "aws.protocols#ec2QueryName": "Fpgas", + "smithy.api#documentation": "

Describes the FPGAs for the instance type.

", + "smithy.api#xmlName": "fpgas" + } + }, + "TotalFpgaMemoryInMiB": { + "target": "com.amazonaws.ec2#totalFpgaMemory", + "traits": { + "aws.protocols#ec2QueryName": "TotalFpgaMemoryInMiB", + "smithy.api#documentation": "

The total memory of all FPGA accelerators for the instance type.

", + "smithy.api#xmlName": "totalFpgaMemoryInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the FPGAs for the instance type.

" + } + }, + "com.amazonaws.ec2#FreeTierEligibleFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#GVCDMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 200, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GatewayAssociationState": { + "type": "enum", + "members": { + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "not_associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-associated" + } + }, + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + } + } + }, + "com.amazonaws.ec2#GatewayType": { + "type": "enum", + "members": { + "ipsec_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipsec.1" + } + } + } + }, + "com.amazonaws.ec2#GetActiveVpnTunnelStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetActiveVpnTunnelStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetActiveVpnTunnelStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the currently negotiated security parameters for an active VPN tunnel, including IKE version, DH groups, encryption algorithms, and integrity algorithms.

" + } + }, + "com.amazonaws.ec2#GetActiveVpnTunnelStatusRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN connection for which to retrieve the active tunnel status.

", + "smithy.api#required": {} + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The external IP address of the VPN tunnel for which to retrieve the active status.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetActiveVpnTunnelStatusResult": { + "type": "structure", + "members": { + "ActiveVpnTunnelStatus": { + "target": "com.amazonaws.ec2#ActiveVpnTunnelStatus", + "traits": { + "aws.protocols#ec2QueryName": "ActiveVpnTunnelStatus", + "smithy.api#documentation": "

Information about the current security configuration of the VPN tunnel.

", + "smithy.api#xmlName": "activeVpnTunnelStatus" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetAllowedImagesSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetAllowedImagesSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetAllowedImagesSettingsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the current state of the Allowed AMIs setting and the list of Allowed AMIs criteria\n at the account level in the specified Region.

\n \n

The Allowed AMIs feature does not restrict the AMIs owned by your account. Regardless of\n the criteria you set, the AMIs created by your account will always be discoverable and\n usable by users in your account.

\n
\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetAllowedImagesSettingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetAllowedImagesSettingsResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the Allowed AMIs setting at the account level in the specified Amazon Web Services\n Region.

\n

Possible values:

\n
    \n
  • \n

    \n disabled: All AMIs are allowed.

    \n
  • \n
  • \n

    \n audit-mode: All AMIs are allowed, but the ImageAllowed field\n is set to true if the AMI would be allowed with the current list of criteria\n if allowed AMIs was enabled.

    \n
  • \n
  • \n

    \n enabled: Only AMIs matching the image criteria are discoverable and\n available for use.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "ImageCriteria": { + "target": "com.amazonaws.ec2#ImageCriterionList", + "traits": { + "aws.protocols#ec2QueryName": "ImageCriterionSet", + "smithy.api#documentation": "

The list of criteria for images that are discoverable and usable in the account in the\n specified Amazon Web Services Region.

", + "smithy.api#xmlName": "imageCriterionSet" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the Allowed AMIs settings. Possible values include:

\n
    \n
  • \n

    \n account - The Allowed AMIs settings is managed by the account.

    \n
  • \n
  • \n

    \n declarative-policy - The Allowed AMIs settings is managed by a\n declarative policy and can't be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRoles": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the IAM roles that are associated with the specified ACM (ACM) certificate. \n\t\t\tIt also returns the name of the Amazon S3 bucket and the Amazon S3 object key where the certificate, \n\t\t\tcertificate chain, and encrypted private key bundle are stored, and the ARN of the KMS key \n\t\t\tthat's used to encrypt the private key.

" + } + }, + "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesRequest": { + "type": "structure", + "members": { + "CertificateArn": { + "target": "com.amazonaws.ec2#CertificateId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the ACM certificate for which to view the associated IAM roles, encryption keys, and Amazon \n\t\t\tS3 object information.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetAssociatedEnclaveCertificateIamRolesResult": { + "type": "structure", + "members": { + "AssociatedRoles": { + "target": "com.amazonaws.ec2#AssociatedRolesList", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedRoleSet", + "smithy.api#documentation": "

Information about the associated IAM roles.

", + "smithy.api#xmlName": "associatedRoleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the IPv6 CIDR block associations for a specified IPv6 address pool.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Ipv6CidrAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsRequest": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv6PoolEc2Id", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPv6 address pool.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Ipv6PoolMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetAssociatedIpv6PoolCidrsResult": { + "type": "structure", + "members": { + "Ipv6CidrAssociations": { + "target": "com.amazonaws.ec2#Ipv6CidrAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrAssociationSet", + "smithy.api#documentation": "

Information about the IPv6 CIDR block associations.

", + "smithy.api#xmlName": "ipv6CidrAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetAwsNetworkPerformanceData": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetAwsNetworkPerformanceDataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetAwsNetworkPerformanceDataResult" + }, + "traits": { + "smithy.api#documentation": "

Gets network performance data.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "DataResponses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetAwsNetworkPerformanceDataRequest": { + "type": "structure", + "members": { + "DataQueries": { + "target": "com.amazonaws.ec2#DataQueries", + "traits": { + "smithy.api#documentation": "

A list of network performance data queries.

", + "smithy.api#xmlName": "DataQuery" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The starting time for the performance data request. The starting time must be formatted\n as yyyy-mm-ddThh:mm:ss. For example, 2022-06-10T12:00:00.000Z.

" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The ending time for the performance data request. The end time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetAwsNetworkPerformanceDataResult": { + "type": "structure", + "members": { + "DataResponses": { + "target": "com.amazonaws.ec2#DataResponses", + "traits": { + "aws.protocols#ec2QueryName": "DataResponseSet", + "smithy.api#documentation": "

The list of data responses.

", + "smithy.api#xmlName": "dataResponseSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityManagerAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityManagerAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

\nRetrieves the current configuration and status of EC2 Capacity Manager for your account, including enablement status, Organizations access settings, and data ingestion status.\n

" + } + }, + "com.amazonaws.ec2#GetCapacityManagerAttributesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerAttributesResult": { + "type": "structure", + "members": { + "CapacityManagerStatus": { + "target": "com.amazonaws.ec2#CapacityManagerStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerStatus", + "smithy.api#documentation": "

\nThe current status of Capacity Manager.\n

", + "smithy.api#xmlName": "capacityManagerStatus" + } + }, + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsAccess", + "smithy.api#documentation": "

\nIndicates whether Organizations access is enabled for cross-account data aggregation.\n

", + "smithy.api#xmlName": "organizationsAccess" + } + }, + "DataExportCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DataExportCount", + "smithy.api#documentation": "

\nThe number of active data export configurations for this account. This count includes all data exports regardless of their current delivery status.\n

", + "smithy.api#xmlName": "dataExportCount" + } + }, + "IngestionStatus": { + "target": "com.amazonaws.ec2#IngestionStatus", + "traits": { + "aws.protocols#ec2QueryName": "IngestionStatus", + "smithy.api#documentation": "

\nThe current data ingestion status. Initial ingestion may take several hours after enabling Capacity Manager.\n

", + "smithy.api#xmlName": "ingestionStatus" + } + }, + "IngestionStatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IngestionStatusMessage", + "smithy.api#documentation": "

\nA descriptive message providing additional details about the current ingestion status. This may include error information if ingestion has \nfailed or progress details during initial setup.\n

", + "smithy.api#xmlName": "ingestionStatusMessage" + } + }, + "EarliestDatapointTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EarliestDatapointTimestamp", + "smithy.api#documentation": "

\nThe timestamp of the earliest data point available in Capacity Manager, in milliseconds since epoch. This indicates how far back historical data is available for queries.\n

", + "smithy.api#xmlName": "earliestDatapointTimestamp" + } + }, + "LatestDatapointTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LatestDatapointTimestamp", + "smithy.api#documentation": "

\nThe timestamp of the most recent data point ingested by Capacity Manager, in milliseconds since epoch. This indicates how current your capacity data is.\n

", + "smithy.api#xmlName": "latestDatapointTimestamp" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricData": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricDataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricDataResult" + }, + "traits": { + "smithy.api#documentation": "

\nRetrieves capacity usage metrics for your EC2 resources. Returns time-series data for metrics like unused capacity, utilization rates, and costs \nacross On-Demand, Spot, and Capacity Reservations. Data can be grouped and filtered by various dimensions such as region, account, and instance family.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MetricDataResults", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricDataRequest": { + "type": "structure", + "members": { + "MetricNames": { + "target": "com.amazonaws.ec2#MetricSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe names of the metrics to retrieve. Maximum of 10 metrics per request.\n

", + "smithy.api#required": {}, + "smithy.api#xmlName": "MetricName" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe start time for the metric data query, in ISO 8601 format. The time range (end time - start time) must be a multiple of the specified period.\n

", + "smithy.api#required": {} + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe end time for the metric data query, in ISO 8601 format. If the end time is beyond the latest ingested data, it will be automatically adjusted to the latest available data point.\n

", + "smithy.api#required": {} + } + }, + "Period": { + "target": "com.amazonaws.ec2#Period", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe granularity, in seconds, of the returned data points. \n

", + "smithy.api#required": {} + } + }, + "GroupBy": { + "target": "com.amazonaws.ec2#GroupBySet", + "traits": { + "smithy.api#documentation": "

\nThe dimensions by which to group the metric data. This determines how the data is aggregated and returned.\n

", + "smithy.api#xmlName": "GroupBy" + } + }, + "FilterBy": { + "target": "com.amazonaws.ec2#CapacityManagerConditionSet", + "traits": { + "smithy.api#documentation": "

\nConditions to filter the metric data. Each filter specifies a dimension, comparison operator ('equals', 'in'), and values to match against.\n

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#MaxResults", + "traits": { + "smithy.api#documentation": "

\nThe maximum number of data points to return. Valid range is 1 to 100,000. Use with NextToken for pagination of large result sets.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

\nThe token for the next page of results. Use this value in a subsequent call to retrieve additional data points.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have \nthe required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricDataResult": { + "type": "structure", + "members": { + "MetricDataResults": { + "target": "com.amazonaws.ec2#MetricDataResultSet", + "traits": { + "aws.protocols#ec2QueryName": "MetricDataResultSet", + "smithy.api#documentation": "

\nThe metric data points returned by the query. Each result contains dimension values, timestamp, and metric values with their associated statistics.\n

", + "smithy.api#xmlName": "metricDataResultSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

\nThe token to use to retrieve the next page of results. This value is null when there are no more results to return.\n

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricDimensions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsResult" + }, + "traits": { + "smithy.api#documentation": "

\nRetrieves the available dimension values for capacity metrics within a specified time range. This is useful for discovering what accounts, \nregions, instance families, and other dimensions have data available for filtering and grouping.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MetricDimensionResults", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsRequest": { + "type": "structure", + "members": { + "GroupBy": { + "target": "com.amazonaws.ec2#GroupBySet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe dimensions to group by when retrieving available dimension values. This determines which dimension combinations are returned. Required parameter.\n

", + "smithy.api#required": {}, + "smithy.api#xmlName": "GroupBy" + } + }, + "FilterBy": { + "target": "com.amazonaws.ec2#CapacityManagerConditionSet", + "traits": { + "smithy.api#documentation": "

\nConditions to filter which dimension values are returned. Each filter specifies a dimension, comparison operator, and values to match against.\n

" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe start time for the dimension query, in ISO 8601 format. Only dimensions with data in this time range will be returned. \n

", + "smithy.api#required": {} + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe end time for the dimension query, in ISO 8601 format. Only dimensions with data in this time range will be returned. \n

", + "smithy.api#required": {} + } + }, + "MetricNames": { + "target": "com.amazonaws.ec2#MetricSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe metric names to use as an additional filter when retrieving dimensions. Only dimensions that have data for these \nmetrics will be returned. Required parameter with maximum size of 1 for v1.\n

", + "smithy.api#required": {}, + "smithy.api#xmlName": "MetricName" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#MaxResults", + "traits": { + "smithy.api#documentation": "

\nThe maximum number of dimension combinations to return. Valid range is 1 to 1000. Use with NextToken for pagination.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

\nThe token for the next page of results. Use this value in a subsequent call to retrieve additional dimension values.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides \nan error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMetricDimensionsResult": { + "type": "structure", + "members": { + "MetricDimensionResults": { + "target": "com.amazonaws.ec2#MetricDimensionResultSet", + "traits": { + "aws.protocols#ec2QueryName": "MetricDimensionResultSet", + "smithy.api#documentation": "

\nThe available dimension combinations that have data within the specified time range and filters.\n

", + "smithy.api#xmlName": "metricDimensionResultSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

\nThe token to use to retrieve the next page of results. This value is null when there are no more results to return.\n

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysResult" + }, + "traits": { + "smithy.api#documentation": "

\nRetrieves the tag keys that are currently being monitored by EC2 Capacity Manager. Monitored tag keys are included as dimensions in capacity metric data, enabling you to group and filter metrics by tag values.\n

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityManagerTagKeys", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysRequestMaxResults", + "traits": { + "smithy.api#documentation": "

\nThe maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. If not specified, up to 1000 results are returned.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nThe token for the next page of results. Use the value returned from a previous call to retrieve additional results.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response.\nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetCapacityManagerMonitoredTagKeysResult": { + "type": "structure", + "members": { + "CapacityManagerTagKeys": { + "target": "com.amazonaws.ec2#CapacityManagerMonitoredTagKeyList", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerTagKeySet", + "smithy.api#documentation": "

\nThe list of tag keys being monitored by Capacity Manager, including their current status and metadata.\n

", + "smithy.api#xmlName": "capacityManagerTagKeySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

\nThe token to use to retrieve the next page of results. This value is null when there are no more results to return.\n

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerSupportabilityScores": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresResult" + }, + "traits": { + "smithy.api#documentation": "

\nScores how well each instance type and Availability Zone combination can support a capacity request, based on current Amazon EC2 capacity. \nThe response includes a score for each combination and an aggregate score for all combinations in the request. \nThis action doesn't launch or reserve instances, and a score doesn't guarantee that a later launch will succeed.\n

\n

\nCall this action in the Region where you turned on Capacity Manager. A single request can include Availability Zones in any Region. \nReal-time supportability checks are available only to Amazon Web Services Support customers on the Unified Operations plan.\n

\n

For more information, see Check supportability in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresRequest": { + "type": "structure", + "members": { + "MarketType": { + "target": "com.amazonaws.ec2#SupportabilityMarketType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe capacity market to score.\n

", + "smithy.api#required": {} + } + }, + "CapacityAmount": { + "target": "com.amazonaws.ec2#CapacityAmount", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe amount of capacity that you need, in the unit that you specify for CapacityUnit. Each score is relative to this amount.\n

", + "smithy.api#required": {} + } + }, + "CapacityUnit": { + "target": "com.amazonaws.ec2#CapacityUnit", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe unit for CapacityAmount.\n

", + "smithy.api#required": {} + } + }, + "CapacityAvailabilityZoneIds": { + "target": "com.amazonaws.ec2#CapacityAvailabilityZoneIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\nThe IDs of the Availability Zones to score, such as use1-az1. You can specify Availability Zones in different Regions. \nYou can specify up to 10 Availability Zones.\n

", + "smithy.api#required": {}, + "smithy.api#xmlName": "CapacityAvailabilityZoneId" + } + }, + "InstanceTypes": { + "target": "com.amazonaws.ec2#SupportabilityInstanceTypeList", + "traits": { + "smithy.api#documentation": "

\nThe instance types to score. You can specify up to 50 instance types.\n

\n

\nSpecify either InstanceTypes or InstanceRequirementsWithMetadata, but not both.\n

", + "smithy.api#xmlName": "InstanceType" + } + }, + "InstanceRequirementsWithMetadata": { + "target": "com.amazonaws.ec2#InstanceRequirementsWithMetadataRequest", + "traits": { + "smithy.api#documentation": "

\nThe attributes that the instance types must have, such as vCPU and memory ranges. Capacity Manager resolves the attributes into matching instance types and scores each one.\n

\n

\nSpecify either InstanceTypes or InstanceRequirementsWithMetadata, but not both.\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. \nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityManagerSupportabilityScoresResult": { + "type": "structure", + "members": { + "AggregateScore": { + "target": "com.amazonaws.ec2#SupportabilityScore", + "traits": { + "aws.protocols#ec2QueryName": "AggregateScore", + "smithy.api#documentation": "

\nThe score for all instance type and Availability Zone combinations in the request together. \nA high aggregate score with lower individual scores means that no single combination can support the full request, but the combinations together can.\n

", + "smithy.api#xmlName": "aggregateScore" + } + }, + "CapacityManagerSupportabilityScores": { + "target": "com.amazonaws.ec2#CapacityManagerSupportabilityScoreSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerSupportabilityScoreSet", + "smithy.api#documentation": "

\nThe score for each instance type and Availability Zone combination in the request.\n

", + "smithy.api#xmlName": "capacityManagerSupportabilityScoreSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCapacityReservationUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCapacityReservationUsageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCapacityReservationUsageResult" + }, + "traits": { + "smithy.api#documentation": "

Gets usage information about a Capacity Reservation. If the Capacity Reservation is\n\t\t\tshared, it shows usage information for the Capacity Reservation owner and each Amazon Web Services account that is currently using the shared capacity. If the Capacity\n\t\t\tReservation is not shared, it shows only the Capacity Reservation owner's usage.

" + } + }, + "com.amazonaws.ec2#GetCapacityReservationUsageRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetCapacityReservationUsageRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCapacityReservationUsageRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetCapacityReservationUsageResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The type of instance for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "instanceType" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalInstanceCount", + "smithy.api#documentation": "

The number of instances for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "totalInstanceCount" + } + }, + "AvailableInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableInstanceCount", + "smithy.api#documentation": "

The remaining capacity. Indicates the number of instances that can be launched in the\n\t\t\tCapacity Reservation.

", + "smithy.api#xmlName": "availableInstanceCount" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the Capacity Reservation. A Capacity Reservation can be in one of\n\t\t\tthe following states:

\n
    \n
  • \n

    \n active - The capacity is available for use.

    \n
  • \n
  • \n

    \n expired - The Capacity Reservation expired automatically at the date and time \n\t\tspecified in your reservation request. The reserved capacity is no longer available for your use.

    \n
  • \n
  • \n

    \n cancelled - The Capacity Reservation was canceled. The reserved capacity is no \n\t\tlonger available for your use.

    \n
  • \n
  • \n

    \n pending - The Capacity Reservation request was successful but the capacity \n\t\tprovisioning is still pending.

    \n
  • \n
  • \n

    \n failed - The Capacity Reservation request has failed. A request can fail due to \n\t\trequest parameters that are not valid, capacity constraints, or instance limit constraints. You \n\t\tcan view a failed request for 60 minutes.

    \n
  • \n
  • \n

    \n scheduled - (Future-dated Capacity Reservations) The \n\t\tfuture-dated Capacity Reservation request was approved and the Capacity Reservation is scheduled \n\t\tfor delivery on the requested start date.

    \n
  • \n
  • \n

    \n payment-pending - (Capacity Blocks) The upfront \n\t payment has not been processed yet.

    \n
  • \n
  • \n

    \n payment-failed - (Capacity Blocks) The upfront \n\t payment was not processed in the 12-hour time frame. Your Capacity Block was released.

    \n
  • \n
  • \n

    \n assessing - (Future-dated Capacity Reservations) \n\t\tAmazon EC2 is assessing your request for a future-dated Capacity Reservation.

    \n
  • \n
  • \n

    \n delayed - (Future-dated Capacity Reservations) Amazon EC2 \n\t\tencountered a delay in provisioning the requested future-dated Capacity Reservation. Amazon EC2 is \n\t\tunable to deliver the requested capacity by the requested start date and time.

    \n
  • \n
  • \n

    \n unsupported - (Future-dated Capacity Reservations) Amazon EC2\n\t\tcan't support the future-dated Capacity Reservation request due to capacity constraints. You can view\n\t\tunsupported requests for 30 days. The Capacity Reservation will not be delivered.

    \n
  • \n
  • \n

    \n cancelling - (Future-dated Capacity Reservations) The\n\t\tCapacity Reservation is being cancelled. Capacity has been released but charges continue for\n\t\tthe commitment wind-down period. The reservation transitions to cancelled when\n\t\tthe wind-down completes.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "InstanceUsages": { + "target": "com.amazonaws.ec2#InstanceUsageSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceUsageSet", + "smithy.api#documentation": "

Information about the Capacity Reservation usage.

", + "smithy.api#xmlName": "instanceUsageSet" + } + }, + "Interruptible": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "aws.protocols#ec2QueryName": "Interruptible", + "smithy.api#documentation": "

\n\t\t\tIndicates whether the Capacity Reservation is interruptible, meaning instances may be terminated when the owner reclaims capacity.\n\t\t

", + "smithy.api#xmlName": "interruptible" + } + }, + "InterruptibleCapacityAllocation": { + "target": "com.amazonaws.ec2#InterruptibleCapacityAllocation", + "traits": { + "aws.protocols#ec2QueryName": "InterruptibleCapacityAllocation", + "smithy.api#documentation": "

\n\t\t\tInformation about the capacity allocated to the interruptible Capacity Reservation, including instance counts and allocation status.\n\t\t

", + "smithy.api#xmlName": "interruptibleCapacityAllocation" + } + }, + "InterruptionInfo": { + "target": "com.amazonaws.ec2#InterruptionInfo", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionInfo", + "smithy.api#documentation": "

\n\t\t\tDetails about the interruption configuration and source reservation for interruptible Capacity Reservations.\n\t\t

", + "smithy.api#xmlName": "interruptionInfo" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the authorization policy for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetClientVpnEndpointAuthorizationPolicyResult": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The authorization policy document, written in the Cedar policy language.

", + "smithy.api#xmlName": "policyDocument" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A brief description of the authorization policy.

", + "smithy.api#xmlName": "description" + } + }, + "ShadowMode": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationPolicyShadowMode", + "traits": { + "aws.protocols#ec2QueryName": "ShadowMode", + "smithy.api#documentation": "

Specifies whether the authorization policy is evaluated in shadow mode. Possible values include:

\n
    \n
  • \n

    \n enabled - The authorization policy is evaluated and the results are logged, but access is not enforced.

    \n
  • \n
  • \n

    \n disabled - The authorization policy is enforced.

    \n
  • \n
", + "smithy.api#xmlName": "shadowMode" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationPolicyStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization policy.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetCoipPoolUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetCoipPoolUsageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetCoipPoolUsageResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the allocations from the specified customer-owned address pool.

" + } + }, + "com.amazonaws.ec2#GetCoipPoolUsageRequest": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolCoipId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the address pool.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n coip-address-usage.allocation-id - The allocation ID of the address.

    \n
  • \n
  • \n

    \n coip-address-usage.aws-account-id - The ID of the Amazon Web Services account that is using the customer-owned IP address.

    \n
  • \n
  • \n

    \n coip-address-usage.aws-service - The Amazon Web Services service that is using the customer-owned IP address.

    \n
  • \n
  • \n

    \n coip-address-usage.co-ip - The customer-owned IP address.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#CoipPoolMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetCoipPoolUsageResult": { + "type": "structure", + "members": { + "CoipPoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoipPoolId", + "smithy.api#documentation": "

The ID of the customer-owned address pool.

", + "smithy.api#xmlName": "coipPoolId" + } + }, + "CoipAddressUsages": { + "target": "com.amazonaws.ec2#CoipAddressUsageSet", + "traits": { + "aws.protocols#ec2QueryName": "CoipAddressUsageSet", + "smithy.api#documentation": "

Information about the address usage.

", + "smithy.api#xmlName": "coipAddressUsageSet" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetConsoleOutput": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetConsoleOutputRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetConsoleOutputResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the console output for the specified instance. For Linux instances, the instance\n console output displays the exact console output that would normally be displayed on a\n physical monitor attached to a computer. For Windows instances, the instance console\n output includes the last three system event log errors.

\n

For more information, see Instance\n console output in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To get the console output", + "documentation": "This example gets the console output for the specified instance.", + "input": { + "InstanceId": "i-1234567890abcdef0" + }, + "output": { + "InstanceId": "i-1234567890abcdef0", + "Output": "...", + "Timestamp": "2018-05-25T21:23:53.000Z" + } + } + ] + } + }, + "com.amazonaws.ec2#GetConsoleOutputRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "Latest": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

When enabled, retrieves the latest console output for the instance.

\n

Default: disabled (false)

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetConsoleOutputResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The time at which the output was last updated.

", + "smithy.api#xmlName": "timestamp" + } + }, + "Output": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Output", + "smithy.api#documentation": "

The console output, base64-encoded. If you are using a command line tool, the tool\n decodes the output for you.

", + "smithy.api#xmlName": "output" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetConsoleScreenshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetConsoleScreenshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetConsoleScreenshotResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieve a JPG-format screenshot of a running instance to help with\n troubleshooting.

\n

The returned content is Base64-encoded.

\n

For more information, see Instance console output in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetConsoleScreenshotRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "WakeUp": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

When set to true, acts as keystroke input and wakes up an instance that's\n in standby or \"sleep\" mode.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetConsoleScreenshotResult": { + "type": "structure", + "members": { + "ImageData": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageData", + "smithy.api#documentation": "

The data that comprises the image.

", + "smithy.api#xmlName": "imageData" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetDeclarativePoliciesReportSummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves a summary of the account status report.

\n

To view the full report, download it from the Amazon S3 bucket where it was saved.\n Reports are accessible only when they have the complete status. Reports\n with other statuses (running, cancelled, or\n error) are not available in the S3 bucket. For more information about\n downloading objects from an S3 bucket, see Downloading objects in\n the Amazon Simple Storage Service User Guide.

\n

For more information, see Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" + } + }, + "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ReportId": { + "target": "com.amazonaws.ec2#DeclarativePoliciesReportId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetDeclarativePoliciesReportSummaryResult": { + "type": "structure", + "members": { + "ReportId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The name of the Amazon S3 bucket where the report is located.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Prefix", + "smithy.api#documentation": "

The prefix for your S3 object.

", + "smithy.api#xmlName": "s3Prefix" + } + }, + "TargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TargetId", + "smithy.api#documentation": "

The root ID, organizational unit ID, or account ID.

\n

Format:

\n
    \n
  • \n

    For root: r-ab12\n

    \n
  • \n
  • \n

    For OU: ou-ab12-cdef1234\n

    \n
  • \n
  • \n

    For account: 123456789012\n

    \n
  • \n
", + "smithy.api#xmlName": "targetId" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time when the report generation started.

", + "smithy.api#xmlName": "startTime" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndTime", + "smithy.api#documentation": "

The time when the report generation ended.

", + "smithy.api#xmlName": "endTime" + } + }, + "NumberOfAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfAccounts", + "smithy.api#documentation": "

The total number of accounts associated with the specified\n targetId.

", + "smithy.api#xmlName": "numberOfAccounts" + } + }, + "NumberOfFailedAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfFailedAccounts", + "smithy.api#documentation": "

The number of accounts where attributes could not be retrieved in any Region.

", + "smithy.api#xmlName": "numberOfFailedAccounts" + } + }, + "AttributeSummaries": { + "target": "com.amazonaws.ec2#AttributeSummaryList", + "traits": { + "aws.protocols#ec2QueryName": "AttributeSummarySet", + "smithy.api#documentation": "

The attributes described in the report.

", + "smithy.api#xmlName": "attributeSummarySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetDefaultCreditSpecification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetDefaultCreditSpecificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetDefaultCreditSpecificationResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the default credit option for CPU usage of a burstable performance instance\n family.

\n

For more information, see Burstable\n performance instances in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetDefaultCreditSpecificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#UnlimitedSupportedInstanceFamily", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance family.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetDefaultCreditSpecificationResult": { + "type": "structure", + "members": { + "InstanceFamilyCreditSpecification": { + "target": "com.amazonaws.ec2#InstanceFamilyCreditSpecification", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamilyCreditSpecification", + "smithy.api#documentation": "

The default credit option for CPU usage of the instance family.

", + "smithy.api#xmlName": "instanceFamilyCreditSpecification" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetEbsDefaultKmsKeyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the default KMS key for EBS encryption by default for your account in this Region.

\n

For more information, see Amazon EBS encryption\n in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetEbsDefaultKmsKeyIdResult": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the default KMS key for encryption by default.

", + "smithy.api#xmlName": "kmsKeyId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetEbsEncryptionByDefault": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetEbsEncryptionByDefaultRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetEbsEncryptionByDefaultResult" + }, + "traits": { + "smithy.api#documentation": "

Describes whether EBS encryption by default is enabled for your account in the current\n Region.

\n

For more information, see Amazon EBS encryption\n in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#GetEbsEncryptionByDefaultRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetEbsEncryptionByDefaultResult": { + "type": "structure", + "members": { + "EbsEncryptionByDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsEncryptionByDefault", + "smithy.api#documentation": "

Indicates whether encryption by default is enabled.

", + "smithy.api#xmlName": "ebsEncryptionByDefault" + } + }, + "SseType": { + "target": "com.amazonaws.ec2#SSEType", + "traits": { + "aws.protocols#ec2QueryName": "SseType", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "sseType" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetEnabledIpamPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetEnabledIpamPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetEnabledIpamPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the enabled IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" + } + }, + "com.amazonaws.ec2#GetEnabledIpamPolicyRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetEnabledIpamPolicyResult": { + "type": "structure", + "members": { + "IpamPolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyEnabled", + "smithy.api#documentation": "

Indicates whether the IPAM policy is enabled.

", + "smithy.api#xmlName": "ipamPolicyEnabled" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyId", + "smithy.api#documentation": "

The ID of the enabled IPAM policy.

", + "smithy.api#xmlName": "ipamPolicyId" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#IpamPolicyManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the IPAM policy.

", + "smithy.api#xmlName": "managedBy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetFlowLogsIntegrationTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateResult" + }, + "traits": { + "smithy.api#documentation": "

Generates a CloudFormation template that streamlines and automates the integration of VPC flow logs \n with Amazon Athena. This make it easier for you to query and gain insights from VPC flow logs data. \n Based on the information that you provide, we configure resources in the template to do the following:

\n
    \n
  • \n

    Create a table in Athena that maps fields to a custom log format

    \n
  • \n
  • \n

    Create a Lambda function that updates the table with new partitions on a daily, weekly, or\n monthly basis

    \n
  • \n
  • \n

    Create a table partitioned between two timestamps in the past

    \n
  • \n
  • \n

    Create a set of named queries in Athena that you can use to get started quickly

    \n
  • \n
\n \n

\n GetFlowLogsIntegrationTemplate does not support integration between\n Amazon Web Services Transit Gateway Flow Logs or Amazon Web Services Cloud WAN Flow Logs\n and Amazon Athena.

\n
" + } + }, + "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FlowLogId": { + "target": "com.amazonaws.ec2#VpcFlowLogId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the flow log.

", + "smithy.api#required": {} + } + }, + "ConfigDeliveryS3DestinationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

To store the CloudFormation template in Amazon S3, specify the location in Amazon S3.

", + "smithy.api#required": {} + } + }, + "IntegrateServices": { + "target": "com.amazonaws.ec2#IntegrateServices", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the service integration.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "IntegrateService" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateResult": { + "type": "structure", + "members": { + "Result": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Result", + "smithy.api#documentation": "

The generated CloudFormation template.

", + "smithy.api#xmlName": "result" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetGroupsForCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetGroupsForCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetGroupsForCapacityReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Lists the resource groups to which a Capacity Reservation has been added.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservationGroups", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetGroupsForCapacityReservationRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation. If you specify a Capacity Reservation that is\n\t\t\tshared with you, the operation returns only Capacity Reservation groups that you\n\t\t\town.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetGroupsForCapacityReservationRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, \n see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetGroupsForCapacityReservationRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetGroupsForCapacityReservationResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "CapacityReservationGroups": { + "target": "com.amazonaws.ec2#CapacityReservationGroupSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationGroupSet", + "smithy.api#documentation": "

Information about the resource groups to which the Capacity Reservation has been\n\t\t\tadded.

", + "smithy.api#xmlName": "capacityReservationGroupSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetHostReservationPurchasePreview": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetHostReservationPurchasePreviewRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetHostReservationPurchasePreviewResult" + }, + "traits": { + "smithy.api#documentation": "

Preview a reservation purchase with configurations that match those of your Dedicated\n Host. You must have active Dedicated Hosts in your account before you purchase a\n reservation.

\n

This is a preview of the PurchaseHostReservation action and does not\n result in the offering being purchased.

" + } + }, + "com.amazonaws.ec2#GetHostReservationPurchasePreviewRequest": { + "type": "structure", + "members": { + "HostIdSet": { + "target": "com.amazonaws.ec2#RequestHostIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Dedicated Hosts with which the reservation is associated.

", + "smithy.api#required": {} + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The offering ID of the reservation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetHostReservationPurchasePreviewResult": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency in which the totalUpfrontPrice and\n totalHourlyPrice amounts are specified. At this time, the only\n supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Purchase": { + "target": "com.amazonaws.ec2#PurchaseSet", + "traits": { + "aws.protocols#ec2QueryName": "Purchase", + "smithy.api#documentation": "

The purchase information of the Dedicated Host reservation and the Dedicated Hosts\n associated with it.

", + "smithy.api#xmlName": "purchase" + } + }, + "TotalHourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TotalHourlyPrice", + "smithy.api#documentation": "

The potential total hourly price of the reservation per hour.

", + "smithy.api#xmlName": "totalHourlyPrice" + } + }, + "TotalUpfrontPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TotalUpfrontPrice", + "smithy.api#documentation": "

The potential total upfront price. This is billed immediately.

", + "smithy.api#xmlName": "totalUpfrontPrice" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetImageAncestry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetImageAncestryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetImageAncestryResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the ancestry chain of the specified AMI, tracing its lineage back to the root\n AMI. For more information, see AMI ancestry in\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetImageAncestryRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI whose ancestry you want to trace.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetImageAncestryResult": { + "type": "structure", + "members": { + "ImageAncestryEntries": { + "target": "com.amazonaws.ec2#ImageAncestryEntryList", + "traits": { + "aws.protocols#ec2QueryName": "ImageAncestryEntrySet", + "smithy.api#documentation": "

A list of entries in the AMI ancestry chain, from the specified AMI to the root\n AMI.

", + "smithy.api#xmlName": "imageAncestryEntrySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetImageBlockPublicAccessState": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetImageBlockPublicAccessStateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetImageBlockPublicAccessStateResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the current state of block public access for AMIs at the account\n level in the specified Amazon Web Services Region.

\n

For more information, see Block\n public access to your AMIs in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetImageBlockPublicAccessStateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetImageBlockPublicAccessStateResult": { + "type": "structure", + "members": { + "ImageBlockPublicAccessState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageBlockPublicAccessState", + "smithy.api#documentation": "

The current state of block public access for AMIs at the account level in the specified\n Amazon Web Services Region.

\n

Possible values:

\n
    \n
  • \n

    \n block-new-sharing - Any attempt to publicly share your AMIs in the\n specified Region is blocked.

    \n
  • \n
  • \n

    \n unblocked - Your AMIs in the specified Region can be publicly\n shared.

    \n
  • \n
", + "smithy.api#xmlName": "imageBlockPublicAccessState" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the state for block public access for AMIs. Possible values\n include:

\n
    \n
  • \n

    \n account - The state is managed by the account.

    \n
  • \n
  • \n

    \n declarative-policy - The state is managed by a declarative policy and\n can't be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetImageFindings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetImageFindingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetImageFindingsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon Inspector vulnerability findings for the specified AMI.

\n

You can get findings for AMIs that you own, AMIs that are shared with you, and public\n AMIs. Amazon Inspector returns findings only for AMIs that it has scanned.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ImageFindings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetImageFindingsEntrySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageFinding", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#GetImageFindingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetImageFindingsRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetImageFindingsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetImageFindingsResult": { + "type": "structure", + "members": { + "ImageFindings": { + "target": "com.amazonaws.ec2#GetImageFindingsEntrySet", + "traits": { + "aws.protocols#ec2QueryName": "ImageFindingSet", + "smithy.api#documentation": "

The Amazon Inspector findings for the AMI.

", + "smithy.api#xmlName": "imageFindingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetInstanceMetadataDefaults": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetInstanceMetadataDefaultsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetInstanceMetadataDefaultsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the default instance metadata service (IMDS) settings that are set at the account\n level in the specified Amazon Web Services
 Region.

\n

For more information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetInstanceMetadataDefaultsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetInstanceMetadataDefaultsResult": { + "type": "structure", + "members": { + "AccountLevel": { + "target": "com.amazonaws.ec2#InstanceMetadataDefaultsResponse", + "traits": { + "aws.protocols#ec2QueryName": "AccountLevel", + "smithy.api#documentation": "

The account-level default IMDS settings.

", + "smithy.api#xmlName": "accountLevel" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetInstanceTpmEkPub": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPubRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPubResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the public endorsement key associated with the Nitro Trusted \n Platform Module (NitroTPM) for the specified instance.

" + } + }, + "com.amazonaws.ec2#GetInstanceTpmEkPubRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance for which to get the public endorsement key.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#EkPubKeyType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The required public endorsement key type.

", + "smithy.api#required": {} + } + }, + "KeyFormat": { + "target": "com.amazonaws.ec2#EkPubKeyFormat", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The required public endorsement key format. Specify der for a DER-encoded public \n key that is compatible with OpenSSL. Specify tpmt for a TPM 2.0 format that is \n compatible with tpm2-tools. The returned key is base64 encoded.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify this parameter to verify whether the request will succeed, without actually making the \n request. If the request will succeed, the response is DryRunOperation. Otherwise, \n the response is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetInstanceTpmEkPubResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#EkPubKeyType", + "traits": { + "aws.protocols#ec2QueryName": "KeyType", + "smithy.api#documentation": "

The public endorsement key type.

", + "smithy.api#xmlName": "keyType" + } + }, + "KeyFormat": { + "target": "com.amazonaws.ec2#EkPubKeyFormat", + "traits": { + "aws.protocols#ec2QueryName": "KeyFormat", + "smithy.api#documentation": "

The public endorsement key format.

", + "smithy.api#xmlName": "keyFormat" + } + }, + "KeyValue": { + "target": "com.amazonaws.ec2#EkPubKeyValue", + "traits": { + "aws.protocols#ec2QueryName": "KeyValue", + "smithy.api#documentation": "

The public endorsement key material.

", + "smithy.api#xmlName": "keyValue" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirements": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsResult" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of instance types with the specified instance attributes. You can\n use the response to preview the instance types without launching instances. Note\n that the response does not consider capacity.

\n

When you specify multiple parameters, you get instance types that satisfy all of the\n specified parameters. If you specify multiple values for a parameter, you get instance\n types that satisfy any of the specified values.

\n

For more information, see Preview instance types with specified attributes, Specify attributes for instance type selection for EC2 Fleet or Spot Fleet, and Spot\n placement score in the Amazon EC2 User Guide, and Creating\n mixed instance groups using attribute-based instance type selection in the\n Amazon EC2 Auto Scaling User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceTypes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ArchitectureTypes": { + "target": "com.amazonaws.ec2#ArchitectureTypeSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The processor architecture type.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ArchitectureType" + } + }, + "VirtualizationTypes": { + "target": "com.amazonaws.ec2#VirtualizationTypeSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The virtualization type.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "VirtualizationType" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attributes required for the instance types.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirementsResult": { + "type": "structure", + "members": { + "InstanceTypes": { + "target": "com.amazonaws.ec2#InstanceTypeInfoFromInstanceRequirementsSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeSet", + "smithy.api#documentation": "

The instance types with the specified instance attributes.

", + "smithy.api#xmlName": "instanceTypeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetInstanceUefiData": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetInstanceUefiDataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetInstanceUefiDataResult" + }, + "traits": { + "smithy.api#documentation": "

A binary representation of the UEFI variable store. Only non-volatile variables are\n stored. This is a base64 encoded and zlib compressed binary value that must be properly\n encoded.

\n

When you use register-image to create\n an AMI, you can create an exact copy of your variable store by passing the UEFI data in\n the UefiData parameter. You can modify the UEFI data by using the python-uefivars tool on\n GitHub. You can use the tool to convert the UEFI data into a human-readable format\n (JSON), which you can inspect and modify, and then convert back into the binary format\n to use with register-image.

\n

For more information, see UEFI Secure Boot in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#GetInstanceUefiDataRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance from which to retrieve the UEFI data.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetInstanceUefiDataResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance from which to retrieve the UEFI data.

", + "smithy.api#xmlName": "instanceId" + } + }, + "UefiData": { + "target": "com.amazonaws.ec2#SensitiveString", + "traits": { + "aws.protocols#ec2QueryName": "UefiData", + "smithy.api#documentation": "

Base64 representation of the non-volatile UEFI variable store.

", + "smithy.api#xmlName": "uefiData" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamAddressHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamAddressHistoryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamAddressHistoryResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieve historical information about a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "HistoryRecords", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamAddressHistoryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR you want the history of. The CIDR can be an IPv4 or IPv6 IP address range. \n If you enter a /16 IPv4 CIDR, you will get records that match it exactly. You will not get records for any subnets within the /16 CIDR.

", + "smithy.api#required": {} + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM scope that the CIDR is in.

", + "smithy.api#required": {} + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the VPC you want your history records filtered by.

" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The start of the time period for which you are looking for history. If you omit this option, it will default to the value of EndTime.

" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The end of the time period for which you are looking for history. If you omit this option, it will default to the current time.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamAddressHistoryMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of historical results you would like returned per page. Defaults to 100.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamAddressHistoryResult": { + "type": "structure", + "members": { + "HistoryRecords": { + "target": "com.amazonaws.ec2#IpamAddressHistoryRecordSet", + "traits": { + "aws.protocols#ec2QueryName": "HistoryRecordSet", + "smithy.api#documentation": "

A historical record for a CIDR within an IPAM scope. If the CIDR is associated with an EC2 instance, you will see an object in the response for the instance and one for the network interface.

", + "smithy.api#xmlName": "historyRecordSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredAccounts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredAccountsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredAccountsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets IPAM discovered accounts. A discovered account is an Amazon Web Services account that is monitored under a resource discovery. If you have integrated IPAM with Amazon Web Services Organizations, all accounts in the organization are discovered accounts. Only the IPAM account can get all discovered accounts in the organization.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamDiscoveredAccounts", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredAccountsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource discovery ID.

", + "smithy.api#required": {} + } + }, + "DiscoveryRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Region that the account information is returned from.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Discovered account filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of discovered accounts to return in one page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredAccountsResult": { + "type": "structure", + "members": { + "IpamDiscoveredAccounts": { + "target": "com.amazonaws.ec2#IpamDiscoveredAccountSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamDiscoveredAccountSet", + "smithy.api#documentation": "

Discovered accounts.

", + "smithy.api#xmlName": "ipamDiscoveredAccountSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredPublicAddresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the public IP addresses that have been discovered by IPAM.

" + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An IPAM resource discovery ID.

", + "smithy.api#required": {} + } + }, + "AddressRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Region for the IP address.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of IPAM discovered public addresses to return in one page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredPublicAddressesResult": { + "type": "structure", + "members": { + "IpamDiscoveredPublicAddresses": { + "target": "com.amazonaws.ec2#IpamDiscoveredPublicAddressSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamDiscoveredPublicAddressSet", + "smithy.api#documentation": "

IPAM discovered public addresses.

", + "smithy.api#xmlName": "ipamDiscoveredPublicAddressSet" + } + }, + "OldestSampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OldestSampleTime", + "smithy.api#documentation": "

The oldest successful resource discovery time.

", + "smithy.api#xmlName": "oldestSampleTime" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the resource CIDRs that are monitored as part of a resource discovery. A discovered resource is a resource CIDR monitored under a resource discovery. The following resources can be discovered: VPCs, Public IPv4 pools, VPC subnets, and Elastic IP addresses.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamDiscoveredResourceCidrs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource discovery ID.

", + "smithy.api#required": {} + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource Region.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filters.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of discovered resource CIDRs to return in one page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredResourceCidrsResult": { + "type": "structure", + "members": { + "IpamDiscoveredResourceCidrs": { + "target": "com.amazonaws.ec2#IpamDiscoveredResourceCidrSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamDiscoveredResourceCidrSet", + "smithy.api#documentation": "

Discovered resource CIDRs.

", + "smithy.api#xmlName": "ipamDiscoveredResourceCidrSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

Specify the pagination token from a previous request to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamDiscoveredRoutesResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves Border Gateway Protocol (BGP) routes discovered by IPAM resource discovery for a specified Region. Use this operation to view the Bring Your Own IP (BYOIP) address ranges that are currently advertised through BGP. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredRoutesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM resource discovery.

", + "smithy.api#required": {} + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Region to retrieve discovered routes for.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamDiscoveredRoutesResult": { + "type": "structure", + "members": { + "IpamDiscoveredRoutes": { + "target": "com.amazonaws.ec2#IpamDiscoveredRouteSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamDiscoveredRouteSet", + "smithy.api#documentation": "

The discovered BGP routes.

", + "smithy.api#xmlName": "ipamDiscoveredRouteSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsns": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves Autonomous System Numbers (ASNs) registered with an internet registry for an IPAM internet registry association. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationAsnsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamInternetRegistryAssociationAsns": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationAsnSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociationAsnSet", + "smithy.api#documentation": "

The ASNs registered with the internet registry.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociationAsnSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves IP address CIDRs registered with an internet registry for an IPAM internet registry association. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamInternetRegistryAssociationCidrsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamInternetRegistryAssociationCidrs": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationCidrSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociationCidrSet", + "smithy.api#documentation": "

The CIDRs registered with the internet registry.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociationCidrSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPolicyAllocationRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPolicyAllocationRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPolicyAllocationRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the allocation rules for an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

" + } + }, + "com.amazonaws.ec2#GetIpamPolicyAllocationRulesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy for which to get allocation rules.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the allocation rules.

", + "smithy.api#xmlName": "Filter" + } + }, + "Locale": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The locale for which to get the allocation rules.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPolicyResourceType", + "traits": { + "smithy.api#documentation": "

The resource type for which to get the allocation rules.

\n

The Amazon Web Services service or resource type that can use IP addresses through IPAM policies. Supported services and resource types include:

\n
    \n
  • \n

    Elastic IP addresses

    \n
  • \n
" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPolicyAllocationRulesResult": { + "type": "structure", + "members": { + "IpamPolicyDocuments": { + "target": "com.amazonaws.ec2#IpamPolicyDocumentSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyDocumentSet", + "smithy.api#documentation": "

The IPAM policy documents containing the allocation rules.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

", + "smithy.api#xmlName": "ipamPolicyDocumentSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPolicyOrganizationTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the Amazon Web Services Organizations targets for an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

\n

A target can be an individual Amazon Web Services account or an entity within an Amazon Web Services Organization to which an IPAM policy can be applied.

" + } + }, + "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy for which to get Amazon Web Services Organizations targets.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the Amazon Web Services Organizations targets.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPolicyOrganizationTargetsResult": { + "type": "structure", + "members": { + "OrganizationTargets": { + "target": "com.amazonaws.ec2#IpamPolicyOrganizationTargetSet", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationTargetSet", + "smithy.api#documentation": "

The IDs of the Amazon Web Services Organizations targets.

\n

A target can be an individual Amazon Web Services account or an entity within an Amazon Web Services Organization to which an IPAM policy can be applied.

", + "smithy.api#xmlName": "organizationTargetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPoolAllocations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPoolAllocationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPoolAllocationsResult" + }, + "traits": { + "smithy.api#documentation": "

Get a list of all the CIDR allocations in an IPAM pool. The Region you use should be the IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM pool is available for allocations.

\n \n

If you use this action after AllocateIpamPoolCidr or ReleaseIpamPoolAllocation, note that all EC2 API actions follow an eventual consistency model.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPoolAllocations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamPoolAllocationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1000, + "max": 100000 + } + } + }, + "com.amazonaws.ec2#GetIpamPoolAllocationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool you want to see the allocations for.

", + "smithy.api#required": {} + } + }, + "IpamPoolAllocationId": { + "target": "com.amazonaws.ec2#IpamPoolAllocationId", + "traits": { + "smithy.api#documentation": "

The ID of the allocation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetIpamPoolAllocationsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results you would like returned per page.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPoolAllocationsResult": { + "type": "structure", + "members": { + "IpamPoolAllocations": { + "target": "com.amazonaws.ec2#IpamPoolAllocationSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolAllocationSet", + "smithy.api#documentation": "

The IPAM pool allocations you want information on.

", + "smithy.api#xmlName": "ipamPoolAllocationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPoolCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPoolCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPoolCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Get the CIDRs provisioned to an IPAM pool.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPoolCidrs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamPoolCidrsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool you want the CIDR for.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPoolCidrsResult": { + "type": "structure", + "members": { + "IpamPoolCidrs": { + "target": "com.amazonaws.ec2#IpamPoolCidrSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolCidrSet", + "smithy.api#documentation": "

Information about the CIDRs provisioned to an IPAM pool.

", + "smithy.api#xmlName": "ipamPoolCidrSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the CIDR selection rules for an IPAM prefix list resolver. Use this operation to view the business logic that determines which CIDRs are selected for synchronization with prefix lists.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Rules", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverRulesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver whose rules you want to retrieve.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to limit the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverRulesResult": { + "type": "structure", + "members": { + "Rules": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleSet", + "traits": { + "aws.protocols#ec2QueryName": "RuleSet", + "smithy.api#documentation": "

The CIDR selection rules for the IPAM prefix list resolver.

", + "smithy.api#xmlName": "ruleSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the CIDR entries for a specific version of an IPAM prefix list resolver. This shows the actual CIDRs that were selected and synchronized at a particular point in time.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Entries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver whose version entries you want to retrieve.

", + "smithy.api#required": {} + } + }, + "IpamPrefixListResolverVersion": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The version number of the resolver for which to retrieve CIDR entries. If not specified, the latest version is used.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersionEntriesResult": { + "type": "structure", + "members": { + "Entries": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersionEntrySet", + "traits": { + "aws.protocols#ec2QueryName": "EntrySet", + "smithy.api#documentation": "

The CIDR entries for the specified resolver version.

", + "smithy.api#xmlName": "entrySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves version information for an IPAM prefix list resolver.

\n

Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list\nchanges due to infrastructure changes.

\n

\n Version example:\n

\n

\n Initial State (Version 1)\n

\n

Production environment:

\n
    \n
  • \n

    vpc-prod-web (10.1.0.0/16) - tagged env=prod

    \n
  • \n
  • \n

    vpc-prod-db (10.2.0.0/16) - tagged env=prod

    \n
  • \n
\n

Resolver rule: Include all VPCs tagged env=prod

\n

\n Version 1 CIDRs: 10.1.0.0/16, 10.2.0.0/16

\n

\n Infrastructure Change (Version 2)\n

\n

New VPC added:

\n
    \n
  • \n

    vpc-prod-api (10.3.0.0/16) - tagged env=prod

    \n
  • \n
\n

IPAM automatically detects the change and creates a new version.

\n

\n Version 2 CIDRs: 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamPrefixListResolverVersions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver whose versions you want to retrieve.

", + "smithy.api#required": {} + } + }, + "IpamPrefixListResolverVersions": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersionNumberSet", + "traits": { + "smithy.api#documentation": "

Specific version numbers to retrieve. If not specified, all versions are returned.

", + "smithy.api#xmlName": "IpamPrefixListResolverVersion" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to limit the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamPrefixListResolverVersionsResult": { + "type": "structure", + "members": { + "IpamPrefixListResolverVersions": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersionSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverVersionSet", + "smithy.api#documentation": "

Information about the IPAM prefix list resolver versions.

", + "smithy.api#xmlName": "ipamPrefixListResolverVersionSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamResourceCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamResourceCidrsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamResourceCidrsResult" + }, + "traits": { + "smithy.api#documentation": "

Returns resource CIDRs managed by IPAM in a given scope. If an IPAM is associated with more than one resource discovery, the resource CIDRs across all of the resource discoveries is returned. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "IpamResourceCidrs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetIpamResourceCidrsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the scope that the resource is in.

", + "smithy.api#required": {} + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of the IPAM pool that the resource is in.

" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the resource.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamResourceType", + "traits": { + "smithy.api#documentation": "

The resource type.

" + } + }, + "ResourceTag": { + "target": "com.amazonaws.ec2#RequestIpamResourceTag", + "traits": { + "smithy.api#documentation": "

The resource tag.

" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamResourceCidrsResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "IpamResourceCidrs": { + "target": "com.amazonaws.ec2#IpamResourceCidrSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceCidrSet", + "smithy.api#documentation": "

The resource CIDRs.

", + "smithy.api#xmlName": "ipamResourceCidrSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamRouteOriginAuthorizations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the current Route Origin Authorizations (ROAs) published to the RPKI for an IPAM internet registry association. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Filter results to a specific CIDR prefix.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamRouteOriginAuthorizationsResult": { + "type": "structure", + "members": { + "IpamRouteOriginAuthorizations": { + "target": "com.amazonaws.ec2#IpamRouteOriginAuthorizationInfoSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamRouteOriginAuthorizationSet", + "smithy.api#documentation": "

The Route Origin Authorizations published to the RPKI.

", + "smithy.api#xmlName": "ipamRouteOriginAuthorizationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamRouteProtectionFindings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamRouteProtectionFindingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamRouteProtectionFindingsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves route protection findings for an IPAM. Route protection findings show the Resource Public Key Infrastructure (RPKI) validation status of your Bring Your Own IP (BYOIP) routes. Findings identify routes that have valid, invalid, or unknown validation states. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamRouteProtectionFindingsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM to retrieve route protection findings for.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply to the results.

", + "smithy.api#xmlName": "Filter" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamRouteProtectionFindingsResult": { + "type": "structure", + "members": { + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The ID of the IPAM.

", + "smithy.api#xmlName": "ipamId" + } + }, + "RouteProtectionFindings": { + "target": "com.amazonaws.ec2#IpamRouteProtectionFindingSet", + "traits": { + "aws.protocols#ec2QueryName": "RouteProtectionFindingSet", + "smithy.api#documentation": "

The route protection findings.

", + "smithy.api#xmlName": "routeProtectionFindingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltas": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the history of routing policy registration changes for an IPAM internet registry association. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "DeltaId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Filter results to a specific delta ID.

" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The start of the time range to filter deltas by.

" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The end of the time range to filter deltas by.

" + } + }, + "ChronologicalOrder": { + "target": "com.amazonaws.ec2#ChronologicalOrder", + "traits": { + "smithy.api#documentation": "

The chronological order to return results in. Valid values: forward | reverse.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationDeltasResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrationDeltas": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDeltaSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationDeltaSet", + "smithy.api#documentation": "

The routing policy registration deltas.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationDeltaSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves routing policy registrations for an IPAM internet registry association. Each registration represents a Route Origin Authorization (ROA) that has been created or is pending publication to the RPKI. We recommend using pagination to ensure that the operation returns quickly and successfully.

" + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Filter results to a specific CIDR prefix.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#IpamMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in a single call. If not specified, all available results are returned. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetIpamRoutingPolicyRegistrationsResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrations": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationSet", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationSet", + "smithy.api#documentation": "

The routing policy registrations.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetLaunchTemplateData": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetLaunchTemplateDataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetLaunchTemplateDataResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the configuration data of the specified instance. You can use this data to\n create a launch template.

\n

This action calls on other describe actions to get instance information. Depending on\n your instance configuration, you may need to allow the following actions in your IAM\n policy: DescribeSpotInstanceRequests,\n DescribeInstanceCreditSpecifications, DescribeVolumes, and\n DescribeInstanceAttribute.\n Or, you can allow describe* depending on your instance requirements.

", + "smithy.api#examples": [ + { + "title": "To get the launch template data for an instance ", + "documentation": "This example gets the launch template data for the specified instance.", + "input": { + "InstanceId": "0123d646e8048babc" + }, + "output": { + "LaunchTemplateData": { + "NetworkInterfaces": [ + { + "DeviceIndex": 0, + "Groups": [ + "sg-d14e1bb4" + ], + "Ipv6Addresses": [], + "AssociatePublicIpAddress": false, + "NetworkInterfaceId": "eni-4338b5a9", + "DeleteOnTermination": true, + "Description": "", + "PrivateIpAddress": "10.0.3.233", + "SubnetId": "subnet-5264e837", + "PrivateIpAddresses": [ + { + "PrivateIpAddress": "10.0.3.233", + "Primary": true + } + ] + } + ], + "Placement": { + "GroupName": "", + "Tenancy": "default", + "AvailabilityZone": "us-east-2b" + }, + "InstanceType": "t2.medium", + "EbsOptimized": false, + "BlockDeviceMappings": [ + { + "Ebs": { + "VolumeType": "gp2", + "Encrypted": false, + "Iops": 100, + "VolumeSize": 8, + "SnapshotId": "snap-02594938353ef77d3", + "DeleteOnTermination": true + }, + "DeviceName": "/dev/xvda" + } + ], + "KeyName": "my-key-pair", + "ImageId": "ami-32cf7b4a", + "Monitoring": { + "Enabled": false + } + } + } + } + ] + } + }, + "com.amazonaws.ec2#GetLaunchTemplateDataRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetLaunchTemplateDataResult": { + "type": "structure", + "members": { + "LaunchTemplateData": { + "target": "com.amazonaws.ec2#ResponseLaunchTemplateData", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateData", + "smithy.api#documentation": "

The instance data.

", + "smithy.api#xmlName": "launchTemplateData" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetManagedPrefixListAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetManagedPrefixListAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetManagedPrefixListAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the resources that are associated with the specified managed prefix list.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "PrefixListAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetManagedPrefixListAssociationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 255 + } + } + }, + "com.amazonaws.ec2#GetManagedPrefixListAssociationsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetManagedPrefixListAssociationsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetManagedPrefixListAssociationsResult": { + "type": "structure", + "members": { + "PrefixListAssociations": { + "target": "com.amazonaws.ec2#PrefixListAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListAssociationSet", + "smithy.api#documentation": "

Information about the associations.

", + "smithy.api#xmlName": "prefixListAssociationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetManagedPrefixListEntries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetManagedPrefixListEntriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetManagedPrefixListEntriesResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the entries for a specified managed prefix list.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Entries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetManagedPrefixListEntriesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "TargetVersion": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The version of the prefix list for which to return the entries. The default is the current version.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#PrefixListMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetManagedPrefixListEntriesResult": { + "type": "structure", + "members": { + "Entries": { + "target": "com.amazonaws.ec2#PrefixListEntrySet", + "traits": { + "aws.protocols#ec2QueryName": "EntrySet", + "smithy.api#documentation": "

Information about the prefix list entries.

", + "smithy.api#xmlName": "entrySet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetManagedResourceVisibility": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetManagedResourceVisibilityRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetManagedResourceVisibilityResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the managed resource visibility configuration for the account. The response\n indicates whether managed resources are hidden or visible by default.

" + } + }, + "com.amazonaws.ec2#GetManagedResourceVisibilityRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetManagedResourceVisibilityResult": { + "type": "structure", + "members": { + "Visibility": { + "target": "com.amazonaws.ec2#ManagedResourceVisibilitySettings", + "traits": { + "aws.protocols#ec2QueryName": "Visibility", + "smithy.api#documentation": "

The managed resource visibility settings for the account.

", + "smithy.api#xmlName": "visibility" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the findings for the specified Network Access Scope analysis.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AnalysisFindings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeAnalysisFindingsResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisId", + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisId" + } + }, + "AnalysisStatus": { + "target": "com.amazonaws.ec2#AnalysisStatus", + "traits": { + "aws.protocols#ec2QueryName": "AnalysisStatus", + "smithy.api#documentation": "

The status of Network Access Scope Analysis.

", + "smithy.api#xmlName": "analysisStatus" + } + }, + "AnalysisFindings": { + "target": "com.amazonaws.ec2#AccessScopeAnalysisFindingList", + "traits": { + "aws.protocols#ec2QueryName": "AnalysisFindingSet", + "smithy.api#documentation": "

The findings associated with Network Access Scope Analysis.

", + "smithy.api#xmlName": "analysisFindingSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContent": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the content for the specified Network Access Scope.

" + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetNetworkInsightsAccessScopeContentResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeContent": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeContent", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeContent", + "smithy.api#documentation": "

The Network Access Scope content.

", + "smithy.api#xmlName": "networkInsightsAccessScopeContent" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetPasswordData": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetPasswordDataRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetPasswordDataResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the encrypted administrator password for a running Windows instance.

\n

The Windows password is generated at boot by the EC2Config service or\n EC2Launch scripts (Windows Server 2016 and later). This usually only\n happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the\n Amazon EC2 User Guide.

\n

For the EC2Config service, the password is not generated for rebundled\n AMIs unless Ec2SetPassword is enabled before bundling.

\n

The password is encrypted using the key pair that you specified when you launched the\n instance. You must provide the corresponding key pair file.

\n

When you launch an instance, password generation and encryption may take a few\n minutes. If you try to retrieve the password before it's available, the output returns\n an empty string. We recommend that you wait up to 15 minutes after launching an instance\n before trying to retrieve the generated password.

", + "smithy.waiters#waitable": { + "PasswordDataAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(PasswordData) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + } + ], + "minDelay": 15 + } + } + } + }, + "com.amazonaws.ec2#GetPasswordDataRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Windows instance.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetPasswordDataResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the Windows instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The time the data was last updated.

", + "smithy.api#xmlName": "timestamp" + } + }, + "PasswordData": { + "target": "com.amazonaws.ec2#PasswordData", + "traits": { + "aws.protocols#ec2QueryName": "PasswordData", + "smithy.api#documentation": "

The password of the instance. Returns an empty string if the password is not\n available.

", + "smithy.api#xmlName": "passwordData" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetReservedInstancesExchangeQuote": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteResult" + }, + "traits": { + "smithy.api#documentation": "

Returns a quote and exchange information for exchanging one or more specified Convertible\n Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be\n performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuote to perform the exchange.

" + } + }, + "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ReservedInstanceIds": { + "target": "com.amazonaws.ec2#ReservedInstanceIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Convertible Reserved Instances to exchange.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ReservedInstanceId" + } + }, + "TargetConfigurations": { + "target": "com.amazonaws.ec2#TargetConfigurationRequestSet", + "traits": { + "smithy.api#documentation": "

The configuration of the target Convertible Reserved Instance to exchange for your current\n Convertible Reserved Instances.

", + "smithy.api#xmlName": "TargetConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for GetReservedInstanceExchangeQuote.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetReservedInstancesExchangeQuoteResult": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the transaction.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "IsValidExchange": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsValidExchange", + "smithy.api#documentation": "

If true, the exchange is valid. If false, the exchange cannot be\n completed.

", + "smithy.api#xmlName": "isValidExchange" + } + }, + "OutputReservedInstancesWillExpireAt": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "OutputReservedInstancesWillExpireAt", + "smithy.api#documentation": "

The new end date of the reservation term.

", + "smithy.api#xmlName": "outputReservedInstancesWillExpireAt" + } + }, + "PaymentDue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PaymentDue", + "smithy.api#documentation": "

The total true upfront charge for the exchange.

", + "smithy.api#xmlName": "paymentDue" + } + }, + "ReservedInstanceValueRollup": { + "target": "com.amazonaws.ec2#ReservationValue", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstanceValueRollup", + "smithy.api#documentation": "

The cost associated with the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstanceValueRollup" + } + }, + "ReservedInstanceValueSet": { + "target": "com.amazonaws.ec2#ReservedInstanceReservationValueSet", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstanceValueSet", + "smithy.api#documentation": "

The configuration of your Convertible Reserved Instances.

", + "smithy.api#xmlName": "reservedInstanceValueSet" + } + }, + "TargetConfigurationValueRollup": { + "target": "com.amazonaws.ec2#ReservationValue", + "traits": { + "aws.protocols#ec2QueryName": "TargetConfigurationValueRollup", + "smithy.api#documentation": "

The cost associated with the Reserved Instance.

", + "smithy.api#xmlName": "targetConfigurationValueRollup" + } + }, + "TargetConfigurationValueSet": { + "target": "com.amazonaws.ec2#TargetReservationValueSet", + "traits": { + "aws.protocols#ec2QueryName": "TargetConfigurationValueSet", + "smithy.api#documentation": "

The values of the target Convertible Reserved Instances.

", + "smithy.api#xmlName": "targetConfigurationValueSet" + } + }, + "ValidationFailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ValidationFailureReason", + "smithy.api#documentation": "

Describes the reason why the exchange cannot be completed.

", + "smithy.api#xmlName": "validationFailureReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of GetReservedInstancesExchangeQuote.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetRouteServerAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetRouteServerAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetRouteServerAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the associations for the specified route server.

\n

A route server association is the connection established between a route server and a VPC.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#GetRouteServerAssociationsRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to get association information.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetRouteServerAssociationsResult": { + "type": "structure", + "members": { + "RouteServerAssociations": { + "target": "com.amazonaws.ec2#RouteServerAssociationsList", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerAssociationSet", + "smithy.api#documentation": "

Information about the associations for the specified route server.

", + "smithy.api#xmlName": "routeServerAssociationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetRouteServerPropagations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetRouteServerPropagationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetRouteServerPropagationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the route propagations for the specified route server.

\n

When enabled, route server propagation installs the routes in the FIB on the route table you've specified. Route server supports IPv4 and IPv6 route propagation.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

" + } + }, + "com.amazonaws.ec2#GetRouteServerPropagationsRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to get propagation information.

", + "smithy.api#required": {} + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#documentation": "

The ID of the route table for which to get propagation information.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetRouteServerPropagationsResult": { + "type": "structure", + "members": { + "RouteServerPropagations": { + "target": "com.amazonaws.ec2#RouteServerPropagationsList", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPropagationSet", + "smithy.api#documentation": "

Information about the route propagations for the specified route server.

", + "smithy.api#xmlName": "routeServerPropagationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetRouteServerRoutingDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetRouteServerRoutingDatabaseRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetRouteServerRoutingDatabaseResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the routing database for the specified route server. The Routing Information Base (RIB) serves as a database that stores all the routing information and network topology data collected by a router or routing system, such as routes learned from BGP peers. The RIB is constantly updated as new routing information is received or existing routes change. This ensures that the route server always has the most current view of the network topology and can make optimal routing decisions.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

" + } + }, + "com.amazonaws.ec2#GetRouteServerRoutingDatabaseRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server for which to get the routing database.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#RouteServerMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of routing database entries to return in a single response.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

Filters to apply to the routing database query.

", + "smithy.api#xmlName": "Filter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetRouteServerRoutingDatabaseResult": { + "type": "structure", + "members": { + "AreRoutesPersisted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AreRoutesPersisted", + "smithy.api#documentation": "

Indicates whether routes are being persisted in the routing database.

", + "smithy.api#xmlName": "areRoutesPersisted" + } + }, + "Routes": { + "target": "com.amazonaws.ec2#RouteServerRouteList", + "traits": { + "aws.protocols#ec2QueryName": "RouteSet", + "smithy.api#documentation": "

The collection of routes in the route server's routing database.

", + "smithy.api#xmlName": "routeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetSecurityGroupsForVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcResult" + }, + "traits": { + "smithy.api#documentation": "

Gets security groups that can be associated by the Amazon Web Services account making the request with network interfaces in the specified VPC.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SecurityGroupForVpcs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetSecurityGroupsForVpcRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The VPC ID where the security group can be used.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcRequestMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters. If using multiple filters, the results include security groups which match all filters.

\n
    \n
  • \n

    \n group-id: The security group ID.

    \n
  • \n
  • \n

    \n description: The security group's description.

    \n
  • \n
  • \n

    \n group-name: The security group name.

    \n
  • \n
  • \n

    \n owner-id: The security group owner ID.

    \n
  • \n
  • \n

    \n primary-vpc-id: The VPC ID in which the security group was created.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetSecurityGroupsForVpcRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetSecurityGroupsForVpcResult": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + }, + "SecurityGroupForVpcs": { + "target": "com.amazonaws.ec2#SecurityGroupForVpcList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupForVpcSet", + "smithy.api#documentation": "

The security group that can be used by interfaces in the VPC.

", + "smithy.api#xmlName": "securityGroupForVpcSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetSerialConsoleAccessStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetSerialConsoleAccessStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetSerialConsoleAccessStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the access status of your account to the EC2 serial console of all instances. By\n\t\t\tdefault, access to the EC2 serial console is disabled for your account. For more\n\t\t\tinformation, see Manage account access to the EC2 serial console in the Amazon EC2\n\t\t\t\tUser Guide.

" + } + }, + "com.amazonaws.ec2#GetSerialConsoleAccessStatusRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetSerialConsoleAccessStatusResult": { + "type": "structure", + "members": { + "SerialConsoleAccessEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled", + "smithy.api#documentation": "

If true, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If false, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.

", + "smithy.api#xmlName": "serialConsoleAccessEnabled" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages access to the serial console. Possible values include:

\n
    \n
  • \n

    \n account - Access is managed by the account.

    \n
  • \n
  • \n

    \n declarative-policy - Access is managed by a declarative policy and can't\n be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetSnapshotBlockPublicAccessState": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the current state of block public access for snapshots setting \n for the account and Region.

\n

For more information, see \n Block public access for snapshots in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetSnapshotBlockPublicAccessStateResult": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SnapshotBlockPublicAccessState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of block public access for snapshots. Possible values include:

\n
    \n
  • \n

    \n block-all-sharing - All public sharing of snapshots is blocked. Users in \n the account can't request new public sharing. Additionally, snapshots that were already \n publicly shared are treated as private and are not publicly available.

    \n
  • \n
  • \n

    \n block-new-sharing - Only new public sharing of snapshots is blocked. \n Users in the account can't request new public sharing. However, snapshots that were \n already publicly shared, remain publicly available.

    \n
  • \n
  • \n

    \n unblocked - Public sharing is not blocked. Users can publicly share \n snapshots.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the state for block public access for snapshots. Possible\n values include:

\n
    \n
  • \n

    \n account - The state is managed by the account.

    \n
  • \n
  • \n

    \n declarative-policy - The state is managed by a declarative policy and\n can't be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetSpotPlacementScores": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetSpotPlacementScoresRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetSpotPlacementScoresResult" + }, + "traits": { + "smithy.api#documentation": "

Calculates the Spot placement score for a Region or Availability Zone based on the\n specified target capacity and compute requirements.

\n

You can specify your compute requirements either by using\n InstanceRequirementsWithMetadata and letting Amazon EC2 choose the optimal\n instance types to fulfill your Spot request, or you can specify the instance types by using\n InstanceTypes.

\n

For more information, see Spot placement score in\n the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SpotPlacementScores", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetSpotPlacementScoresRequest": { + "type": "structure", + "members": { + "InstanceTypes": { + "target": "com.amazonaws.ec2#InstanceTypes", + "traits": { + "smithy.api#documentation": "

The instance types. We recommend that you specify at least three instance types. If you\n specify one or two instance types, or specify variations of a single instance type (for\n example, an m3.xlarge with and without instance storage), the returned\n placement score will always be low.

\n

If you specify InstanceTypes, you can't specify\n InstanceRequirementsWithMetadata.

", + "smithy.api#xmlName": "InstanceType" + } + }, + "TargetCapacity": { + "target": "com.amazonaws.ec2#SpotPlacementScoresTargetCapacity", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The target capacity.

", + "smithy.api#required": {} + } + }, + "TargetCapacityUnitType": { + "target": "com.amazonaws.ec2#TargetCapacityUnitType", + "traits": { + "smithy.api#documentation": "

The unit for the target capacity.

" + } + }, + "SingleAvailabilityZone": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify true so that the response returns a list of scored Availability Zones.\n Otherwise, the response returns a list of scored Regions.

\n

A list of scored Availability Zones is useful if you want to launch all of your Spot\n capacity into a single Availability Zone.

" + } + }, + "RegionNames": { + "target": "com.amazonaws.ec2#RegionNames", + "traits": { + "smithy.api#documentation": "

The Regions used to narrow down the list of Regions to be scored. Enter the Region code,\n for example, us-east-1.

", + "smithy.api#xmlName": "RegionName" + } + }, + "InstanceRequirementsWithMetadata": { + "target": "com.amazonaws.ec2#InstanceRequirementsWithMetadataRequest", + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with those attributes.

\n

If you specify InstanceRequirementsWithMetadata, you can't specify\n InstanceTypes.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#SpotPlacementScoresMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "IncludeLocalZones": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify true so that the response returns scores that include Local Zones. Otherwise, the response ignores Local Zones.

\n

When you request regional scores, Local Zone capacity counts toward its parent Region.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetSpotPlacementScoresResult": { + "type": "structure", + "members": { + "SpotPlacementScores": { + "target": "com.amazonaws.ec2#SpotPlacementScores", + "traits": { + "aws.protocols#ec2QueryName": "SpotPlacementScoreSet", + "smithy.api#documentation": "

The Spot placement score for the top 10 Regions or Availability Zones, scored on a scale\n from 1 to 10. Each score
 reflects how likely it is that each Region or Availability Zone\n will succeed at fulfilling the specified target capacity
 at the time of the Spot\n placement score request. A score of 10 means that your Spot\n capacity request is highly likely to succeed in that Region or Availability Zone.

\n

If you request a Spot placement score for Regions, a high score assumes that your fleet\n request will be configured to use all Availability Zones and the\n capacity-optimized allocation strategy. If you request a Spot placement\n score for Availability Zones, a high score assumes that your fleet request will be\n configured to use a single Availability Zone and the capacity-optimized\n allocation strategy.

\n

Different
 Regions or Availability Zones might return the same score.

\n \n

The Spot placement score serves as a recommendation only. No score guarantees that your\n Spot request will be fully or partially fulfilled.

\n
", + "smithy.api#xmlName": "spotPlacementScoreSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetSubnetCidrReservations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetSubnetCidrReservationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetSubnetCidrReservationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the subnet CIDR reservations.

" + } + }, + "com.amazonaws.ec2#GetSubnetCidrReservationsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetSubnetCidrReservationsRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n reservationType - The type of reservation (prefix |\n explicit).

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetSubnetCidrReservationsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetSubnetCidrReservationsResult": { + "type": "structure", + "members": { + "SubnetIpv4CidrReservations": { + "target": "com.amazonaws.ec2#SubnetCidrReservationList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIpv4CidrReservationSet", + "smithy.api#documentation": "

Information about the IPv4 subnet CIDR reservations.

", + "smithy.api#xmlName": "subnetIpv4CidrReservationSet" + } + }, + "SubnetIpv6CidrReservations": { + "target": "com.amazonaws.ec2#SubnetCidrReservationList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIpv6CidrReservationSet", + "smithy.api#documentation": "

Information about the IPv6 subnet CIDR reservations.

", + "smithy.api#xmlName": "subnetIpv6CidrReservationSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Describes the NAT configuration for the specified transit gateway attachment. Only the owner of the transit gateway can describe the NAT configuration.

" + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentNatConfigurationResult": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "NatGatewaySupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportState", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewaySupport", + "smithy.api#documentation": "

The state of NAT gateway support for the attachment.

", + "smithy.api#xmlName": "natGatewaySupport" + } + }, + "NatSystemRouteSupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatSystemRouteSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "NatSystemRouteSupport", + "smithy.api#documentation": "

Specifies whether the transit gateway installs routes for the NAT CIDRs in the route tables to which the attachment propagates.

", + "smithy.api#xmlName": "natSystemRouteSupport" + } + }, + "NatGatewayRules": { + "target": "com.amazonaws.ec2#TransitGatewayNatRuleList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayRuleSet", + "smithy.api#documentation": "

The NAT gateway rules for the attachment.

", + "smithy.api#xmlName": "natGatewayRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsResult" + }, + "traits": { + "smithy.api#documentation": "

Lists the route tables to which the specified resource attachment propagates routes.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayAttachmentPropagations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n transit-gateway-route-table-id - The ID of the transit gateway route table.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayAttachmentPropagationsResult": { + "type": "structure", + "members": { + "TransitGatewayAttachmentPropagations": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentPropagationList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentPropagations", + "smithy.api#documentation": "

Information about the propagation route tables.

", + "smithy.api#xmlName": "transitGatewayAttachmentPropagations" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the entries for a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway metering policy to retrieve entries for.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters to apply when retrieving metering policy entries.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayMeteringPolicyEntriesResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyEntries": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntryList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicyEntries", + "smithy.api#documentation": "

Information about the transit gateway metering policy entries.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicyEntries" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the associations for the transit gateway multicast domain.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MulticastDomainAssociations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The type of resource. The valid value is: vpc.

    \n
  • \n
  • \n

    \n state - The state of the subnet association. Valid values are\n associated | associating |\n disassociated | disassociating.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The id of the transit gateway attachment.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayMulticastDomainAssociationsResult": { + "type": "structure", + "members": { + "MulticastDomainAssociations": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "MulticastDomainAssociations", + "smithy.api#documentation": "

Information about the multicast domain associations.

", + "smithy.api#xmlName": "multicastDomainAssociations" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets a list of the transit gateway policy table associations.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Associations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

The filters associated with the transit gateway policy table.

", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableAssociationsResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Returns details about the transit gateway policy table association.

", + "smithy.api#xmlName": "associations" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token for the next page of results.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntries": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesResult" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of transit gateway policy table entries.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayPolicyTableEntries", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n policy-rule-number - The rule number for the transit gateway policy table entry.

    \n
  • \n
  • \n

    \n target-route-table-id - The ID of the target route table.

    \n
  • \n
  • \n

    \n policy-rule.source-ip - The source CIDR block for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.destination-ip - The destination CIDR block for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.source-port - The source port or port range for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.destination-port - The destination port or port range for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.protocol - The protocol for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.meta-data.key - The metadata key for the policy rule.

    \n
  • \n
  • \n

    \n policy-rule.meta-data.value - The metadata value for the policy rule.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPolicyTableEntriesResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableEntries": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntryList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntries", + "smithy.api#documentation": "

The entries for the transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntries" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPrefixListReferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the prefix list references in a specified transit gateway route table.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayPrefixListReferences", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n attachment.resource-id - The ID of the resource for the attachment.

    \n
  • \n
  • \n

    \n attachment.resource-type - The type of resource for the\n attachment. Valid values are vpc | vpn |\n direct-connect-gateway | peering.

    \n
  • \n
  • \n

    \n attachment.transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
  • \n

    \n is-blackhole - Whether traffic matching the route is blocked (true | false).

    \n
  • \n
  • \n

    \n prefix-list-id - The ID of the prefix list.

    \n
  • \n
  • \n

    \n prefix-list-owner-id - The ID of the owner of the prefix list.

    \n
  • \n
  • \n

    \n state - The state of the prefix list reference (pending | available | modifying | deleting).

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayPrefixListReferencesResult": { + "type": "structure", + "members": { + "TransitGatewayPrefixListReferences": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReferenceSet", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPrefixListReferenceSet", + "smithy.api#documentation": "

Information about the prefix list references.

", + "smithy.api#xmlName": "transitGatewayPrefixListReferenceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the associations for the specified transit gateway route table.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Associations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type. Valid values are vpc\n | vpn | direct-connect-gateway | peering\n | connect.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTableAssociationsResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Information about the associations.

", + "smithy.api#xmlName": "associations" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about the route table propagations for the specified transit gateway route table.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TransitGatewayRouteTablePropagations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type. Valid values are vpc\n | vpn | direct-connect-gateway | peering\n | connect.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The ID of the attachment.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetTransitGatewayRouteTablePropagationsResult": { + "type": "structure", + "members": { + "TransitGatewayRouteTablePropagations": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTablePropagationList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTablePropagations", + "smithy.api#documentation": "

Information about the route table propagations.

", + "smithy.api#xmlName": "transitGatewayRouteTablePropagations" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Get the Verified Access policy associated with the endpoint.

" + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointPolicyResult": { + "type": "structure", + "members": { + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PolicyEnabled", + "smithy.api#documentation": "

The status of the Verified Access policy.

", + "smithy.api#xmlName": "policyEnabled" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The Verified Access policy document.

", + "smithy.api#xmlName": "policyDocument" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the targets for the specified network CIDR endpoint for Verified Access.

" + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network CIDR endpoint.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "VerifiedAccessEndpointId" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessEndpointTargetsResult": { + "type": "structure", + "members": { + "VerifiedAccessEndpointTargets": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointTargetList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointTargetSet", + "smithy.api#documentation": "

The Verified Access targets.

", + "smithy.api#xmlName": "verifiedAccessEndpointTargetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Shows the contents of the Verified Access policy associated with the group.

" + } + }, + "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access group.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVerifiedAccessGroupPolicyResult": { + "type": "structure", + "members": { + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PolicyEnabled", + "smithy.api#documentation": "

The status of the Verified Access policy.

", + "smithy.api#xmlName": "policyEnabled" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The Verified Access policy document.

", + "smithy.api#xmlName": "policyDocument" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcement": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementResult" + }, + "traits": { + "smithy.api#documentation": "

Gets information about resources in a VPC that are blocking encryption enforcement.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC to check for resources blocking encryption enforcement.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVpcResourcesBlockingEncryptionEnforcementResult": { + "type": "structure", + "members": { + "NonCompliantResources": { + "target": "com.amazonaws.ec2#VpcEncryptionNonCompliantResourceList", + "traits": { + "aws.protocols#ec2QueryName": "NonCompliantResourceSet", + "smithy.api#documentation": "

Information about resources that are blocking encryption enforcement.

", + "smithy.api#xmlName": "nonCompliantResourceSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Download an Amazon Web Services-provided sample configuration file to be used with the customer\n gateway device specified for your Site-to-Site VPN connection.

" + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The VpnConnectionId specifies the Site-to-Site VPN connection used for the sample\n configuration.

", + "smithy.api#required": {} + } + }, + "VpnConnectionDeviceTypeId": { + "target": "com.amazonaws.ec2#VpnConnectionDeviceTypeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Device identifier provided by the GetVpnConnectionDeviceTypes API.

", + "smithy.api#required": {} + } + }, + "InternetKeyExchangeVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IKE version to be used in the sample configuration file for your customer gateway\n device. You can specify one of the following versions: ikev1 or\n ikev2.

" + } + }, + "SampleType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of sample configuration to generate. Valid values are \"compatibility\" (includes IKEv1) or \"recommended\" (throws UnsupportedOperationException for IKEv1).

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationResult": { + "type": "structure", + "members": { + "VpnConnectionDeviceSampleConfiguration": { + "target": "com.amazonaws.ec2#VpnConnectionDeviceSampleConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionDeviceSampleConfiguration", + "smithy.api#documentation": "

Sample configuration file for the specified customer gateway device.

", + "smithy.api#xmlName": "vpnConnectionDeviceSampleConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceTypesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVpnConnectionDeviceTypesResult" + }, + "traits": { + "smithy.api#documentation": "

Obtain a list of customer gateway devices for which sample configuration\n files can be provided. The request has no additional parameters. You can also see the\n list of device types with sample configuration files available under Your customer gateway\n device in the Amazon Web Services Site-to-Site VPN User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "VpnConnectionDeviceTypes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceTypesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#GVCDMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results returned by GetVpnConnectionDeviceTypes in\n paginated output. When this parameter is used, GetVpnConnectionDeviceTypes\n only returns MaxResults results in a single page along with a\n NextToken response element. The remaining results of the initial\n request can be seen by sending another GetVpnConnectionDeviceTypes request\n with the returned NextToken value. This value can be between 200 and 1000.\n If this parameter is not used, then GetVpnConnectionDeviceTypes returns all\n results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "smithy.api#documentation": "

The NextToken value returned from a previous paginated\n GetVpnConnectionDeviceTypes request where MaxResults was\n used and the results exceeded the value of that parameter. Pagination continues from the\n end of the previous results that returned the NextToken value. This value\n is null when there are no more results to return.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVpnConnectionDeviceTypesResult": { + "type": "structure", + "members": { + "VpnConnectionDeviceTypes": { + "target": "com.amazonaws.ec2#VpnConnectionDeviceTypeList", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionDeviceTypeSet", + "smithy.api#documentation": "

List of customer gateway devices that have a sample configuration file available for\n use.

", + "smithy.api#xmlName": "vpnConnectionDeviceTypeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#NextToken", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The NextToken value to include in a future\n GetVpnConnectionDeviceTypes request. When the results of a\n GetVpnConnectionDeviceTypes request exceed MaxResults,\n this value can be used to retrieve the next page of results. This value is null when\n there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GetVpnTunnelReplacementStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetVpnTunnelReplacementStatusRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetVpnTunnelReplacementStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Get details of available tunnel endpoint maintenance.

" + } + }, + "com.amazonaws.ec2#GetVpnTunnelReplacementStatusRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Site-to-Site VPN connection.

", + "smithy.api#required": {} + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetVpnTunnelReplacementStatusResult": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionId", + "smithy.api#documentation": "

The ID of the Site-to-Site VPN connection.

", + "smithy.api#xmlName": "vpnConnectionId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway associated with the VPN connection.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#CustomerGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGatewayId", + "smithy.api#documentation": "

The ID of the customer gateway.

", + "smithy.api#xmlName": "customerGatewayId" + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "VpnGatewayId", + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#xmlName": "vpnGatewayId" + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnTunnelOutsideIpAddress", + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#xmlName": "vpnTunnelOutsideIpAddress" + } + }, + "MaintenanceDetails": { + "target": "com.amazonaws.ec2#MaintenanceDetails", + "traits": { + "aws.protocols#ec2QueryName": "MaintenanceDetails", + "smithy.api#documentation": "

Get details of pending tunnel endpoint maintenance.

", + "smithy.api#xmlName": "maintenanceDetails" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#GpuDeviceCount": { + "type": "integer" + }, + "com.amazonaws.ec2#GpuDeviceInfo": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#GpuDeviceName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the GPU accelerator.

", + "smithy.api#xmlName": "name" + } + }, + "Manufacturer": { + "target": "com.amazonaws.ec2#GpuDeviceManufacturerName", + "traits": { + "aws.protocols#ec2QueryName": "Manufacturer", + "smithy.api#documentation": "

The manufacturer of the GPU accelerator.

", + "smithy.api#xmlName": "manufacturer" + } + }, + "Count": { + "target": "com.amazonaws.ec2#GpuDeviceCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of GPUs for the instance type.

", + "smithy.api#xmlName": "count" + } + }, + "LogicalGpuCount": { + "target": "com.amazonaws.ec2#LogicalGpuCount", + "traits": { + "aws.protocols#ec2QueryName": "LogicalGpuCount", + "smithy.api#documentation": "

Total number of GPU devices of this type.

", + "smithy.api#xmlName": "logicalGpuCount" + } + }, + "GpuPartitionSize": { + "target": "com.amazonaws.ec2#GpuPartitionSize", + "traits": { + "aws.protocols#ec2QueryName": "GpuPartitionSize", + "smithy.api#documentation": "

The size of each GPU as a fraction of a full GPU, between 0 (excluded) and 1 (included).

", + "smithy.api#xmlName": "gpuPartitionSize" + } + }, + "Workloads": { + "target": "com.amazonaws.ec2#WorkloadsList", + "traits": { + "aws.protocols#ec2QueryName": "WorkloadSet", + "smithy.api#documentation": "

A list of workload types this GPU supports.

", + "smithy.api#xmlName": "workloadSet" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#GpuDeviceMemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory available to the GPU accelerator.

", + "smithy.api#xmlName": "memoryInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the GPU accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#GpuDeviceInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#GpuDeviceInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#GpuDeviceManufacturerName": { + "type": "string" + }, + "com.amazonaws.ec2#GpuDeviceMemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#GpuDeviceMemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory available to the GPU accelerator, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the memory available to the GPU accelerator.

" + } + }, + "com.amazonaws.ec2#GpuDeviceMemorySize": { + "type": "integer" + }, + "com.amazonaws.ec2#GpuDeviceName": { + "type": "string" + }, + "com.amazonaws.ec2#GpuInfo": { + "type": "structure", + "members": { + "Gpus": { + "target": "com.amazonaws.ec2#GpuDeviceInfoList", + "traits": { + "aws.protocols#ec2QueryName": "Gpus", + "smithy.api#documentation": "

Describes the GPU accelerators for the instance type.

", + "smithy.api#xmlName": "gpus" + } + }, + "TotalGpuMemoryInMiB": { + "target": "com.amazonaws.ec2#totalGpuMemory", + "traits": { + "aws.protocols#ec2QueryName": "TotalGpuMemoryInMiB", + "smithy.api#documentation": "

The total size of the memory for the GPU accelerators for the instance type, in MiB.

", + "smithy.api#xmlName": "totalGpuMemoryInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the GPU accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#GpuPartitionSize": { + "type": "double" + }, + "com.amazonaws.ec2#GroupBy": { + "type": "enum", + "members": { + "RESOURCE_REGION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-region" + } + }, + "AVAILABILITY_ZONE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "availability-zone-id" + } + }, + "ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account-id" + } + }, + "ACCOUNT_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account-name" + } + }, + "INSTANCE_FAMILY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-family" + } + }, + "INSTANCE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-type" + } + }, + "INSTANCE_PLATFORM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-platform" + } + }, + "RESERVATION_ARN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-arn" + } + }, + "RESERVATION_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-id" + } + }, + "RESERVATION_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-type" + } + }, + "RESERVATION_CREATE_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-create-timestamp" + } + }, + "RESERVATION_START_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-start-timestamp" + } + }, + "RESERVATION_END_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-end-timestamp" + } + }, + "RESERVATION_END_DATE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-end-date-type" + } + }, + "TENANCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tenancy" + } + }, + "RESERVATION_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-state" + } + }, + "RESERVATION_INSTANCE_MATCH_CRITERIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-instance-match-criteria" + } + }, + "RESERVATION_UNUSED_FINANCIAL_OWNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-unused-financial-owner" + } + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + } + } + }, + "com.amazonaws.ec2#GroupBySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#GroupBy", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.ec2#GroupIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "groupId" + } + } + }, + "com.amazonaws.ec2#GroupIdentifier": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the security group.

", + "smithy.api#xmlName": "groupName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group.

" + } + }, + "com.amazonaws.ec2#GroupIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#GroupIdentifier", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#GroupIdentifierSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupIdentifier", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#GroupIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#GroupNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#xmlName": "GroupName" + } + } + }, + "com.amazonaws.ec2#HaStatus": { + "type": "enum", + "members": { + "processing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "processing" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "standby": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standby" + } + }, + "invalid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid" + } + } + } + }, + "com.amazonaws.ec2#HealthCheckPathDestinationRequestObject": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet for the destination.

" + } + }, + "SecurityGroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group for the destination.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a destination for a health check path in a request. Destinations can be in a different Availability Zone than the source (cross-AZ) or in a Local Zone (AZ to Local Zone), enabling remote health validation of your application.

" + } + }, + "com.amazonaws.ec2#HealthCheckPathDestinationRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HealthCheckPathDestinationRequestObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HealthCheckPathDestinationResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HealthCheckPathDestinationResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HealthCheckPathDestinationResponseObject": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet for the destination.

", + "smithy.api#xmlName": "subnetId" + } + }, + "SecurityGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupId", + "smithy.api#documentation": "

The ID of the security group for the destination.

", + "smithy.api#xmlName": "securityGroupId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a destination for a health check path.

" + } + }, + "com.amazonaws.ec2#HealthCheckPathRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HealthCheckPathRequestObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HealthCheckPathRequestObject": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#HealthCheckPathSourceRequestObject", + "traits": { + "smithy.api#documentation": "

The source for the health check path.

" + } + }, + "Destinations": { + "target": "com.amazonaws.ec2#HealthCheckPathDestinationRequestSet", + "traits": { + "smithy.api#documentation": "

The destinations for the health check path.

", + "smithy.api#xmlName": "Destination" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a health check path for an application status check request.

" + } + }, + "com.amazonaws.ec2#HealthCheckPathResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HealthCheckPathResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HealthCheckPathResponseObject": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#HealthCheckPathSourceResponseObject", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

The source for the health check path.

", + "smithy.api#xmlName": "source" + } + }, + "Destinations": { + "target": "com.amazonaws.ec2#HealthCheckPathDestinationResponseList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationSet", + "smithy.api#documentation": "

The destinations for the health check path.

", + "smithy.api#xmlName": "destinationSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a health check path for an application status check.

" + } + }, + "com.amazonaws.ec2#HealthCheckPathSourceRequestObject": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet for the source.

" + } + }, + "SecurityGroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group for the source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the source for a health check path in a request. The source defines the subnet and security group where a health check elastic network interface (ENI) is created to originate health check traffic.

" + } + }, + "com.amazonaws.ec2#HealthCheckPathSourceResponseObject": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet for the source.

", + "smithy.api#xmlName": "subnetId" + } + }, + "SecurityGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupId", + "smithy.api#documentation": "

The ID of the security group for the source.

", + "smithy.api#xmlName": "securityGroupId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the source for a health check path.

" + } + }, + "com.amazonaws.ec2#HibernationFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#HibernationOptions": { + "type": "structure", + "members": { + "Configured": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Configured", + "smithy.api#documentation": "

If true, your instance is enabled for hibernation; otherwise, it is not\n enabled for hibernation.

", + "smithy.api#xmlName": "configured" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether your instance is configured for hibernation. This parameter is valid\n only if the instance meets the hibernation\n prerequisites. For more information, see Hibernate your Amazon EC2\n instance in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#HibernationOptionsRequest": { + "type": "structure", + "members": { + "Configured": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Set to true to enable your instance for hibernation.

\n

For Spot Instances, if you set Configured to true, either\n omit the InstanceInterruptionBehavior parameter (for \n SpotMarketOptions\n ), or set it to\n hibernate. When Configured is true:

\n
    \n
  • \n

    If you omit InstanceInterruptionBehavior, it defaults to\n hibernate.

    \n
  • \n
  • \n

    If you set InstanceInterruptionBehavior to a value other than\n hibernate, you'll get an error.

    \n
  • \n
\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether your instance is configured for hibernation. This parameter is valid\n only if the instance meets the hibernation\n prerequisites. For more information, see Hibernate your Amazon EC2\n instance in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#HistoryRecord": { + "type": "structure", + "members": { + "EventInformation": { + "target": "com.amazonaws.ec2#EventInformation", + "traits": { + "aws.protocols#ec2QueryName": "EventInformation", + "smithy.api#documentation": "

Information about the event.

", + "smithy.api#xmlName": "eventInformation" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#EventType", + "traits": { + "aws.protocols#ec2QueryName": "EventType", + "smithy.api#documentation": "

The event type.

\n
    \n
  • \n

    \n error - An error with the Spot Fleet request.

    \n
  • \n
  • \n

    \n fleetRequestChange - A change in the status or configuration of\n the Spot Fleet request.

    \n
  • \n
  • \n

    \n instanceChange - An instance was launched or terminated.

    \n
  • \n
  • \n

    \n Information - An informational event.

    \n
  • \n
", + "smithy.api#xmlName": "eventType" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The date and time of the event, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "timestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an event in the history of the Spot Fleet request.

" + } + }, + "com.amazonaws.ec2#HistoryRecordEntry": { + "type": "structure", + "members": { + "EventInformation": { + "target": "com.amazonaws.ec2#EventInformation", + "traits": { + "aws.protocols#ec2QueryName": "EventInformation", + "smithy.api#documentation": "

Information about the event.

", + "smithy.api#xmlName": "eventInformation" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#FleetEventType", + "traits": { + "aws.protocols#ec2QueryName": "EventType", + "smithy.api#documentation": "

The event type.

", + "smithy.api#xmlName": "eventType" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The date and time of the event, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "timestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an event in the history of an EC2 Fleet.

" + } + }, + "com.amazonaws.ec2#HistoryRecordSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HistoryRecordEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HistoryRecords": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HistoryRecord", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Host": { + "type": "structure", + "members": { + "AutoPlacement": { + "target": "com.amazonaws.ec2#AutoPlacement", + "traits": { + "aws.protocols#ec2QueryName": "AutoPlacement", + "smithy.api#documentation": "

Whether auto-placement is on or off.

", + "smithy.api#xmlName": "autoPlacement" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the Dedicated Host.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailableCapacity": { + "target": "com.amazonaws.ec2#AvailableCapacity", + "traits": { + "aws.protocols#ec2QueryName": "AvailableCapacity", + "smithy.api#documentation": "

Information about the instances running on the Dedicated Host.

", + "smithy.api#xmlName": "availableCapacity" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "HostId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

The ID of the Dedicated Host.

", + "smithy.api#xmlName": "hostId" + } + }, + "HostProperties": { + "target": "com.amazonaws.ec2#HostProperties", + "traits": { + "aws.protocols#ec2QueryName": "HostProperties", + "smithy.api#documentation": "

The hardware specifications of the Dedicated Host.

", + "smithy.api#xmlName": "hostProperties" + } + }, + "HostReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostReservationId", + "smithy.api#documentation": "

The reservation ID of the Dedicated Host. This returns a null response if\n the Dedicated Host doesn't have an associated reservation.

", + "smithy.api#xmlName": "hostReservationId" + } + }, + "Instances": { + "target": "com.amazonaws.ec2#HostInstanceList", + "traits": { + "aws.protocols#ec2QueryName": "Instances", + "smithy.api#documentation": "

The IDs and instance type that are currently running on the Dedicated Host.

", + "smithy.api#xmlName": "instances" + } + }, + "State": { + "target": "com.amazonaws.ec2#AllocationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The Dedicated Host's state.

", + "smithy.api#xmlName": "state" + } + }, + "AllocationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "AllocationTime", + "smithy.api#documentation": "

The time that the Dedicated Host was allocated.

", + "smithy.api#xmlName": "allocationTime" + } + }, + "ReleaseTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ReleaseTime", + "smithy.api#documentation": "

The time that the Dedicated Host was released.

", + "smithy.api#xmlName": "releaseTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the Dedicated Host.

", + "smithy.api#xmlName": "tagSet" + } + }, + "HostRecovery": { + "target": "com.amazonaws.ec2#HostRecovery", + "traits": { + "aws.protocols#ec2QueryName": "HostRecovery", + "smithy.api#documentation": "

Indicates whether host recovery is enabled or disabled for the Dedicated Host.

", + "smithy.api#xmlName": "hostRecovery" + } + }, + "AllowsMultipleInstanceTypes": { + "target": "com.amazonaws.ec2#AllowsMultipleInstanceTypes", + "traits": { + "aws.protocols#ec2QueryName": "AllowsMultipleInstanceTypes", + "smithy.api#documentation": "

Indicates whether the Dedicated Host supports multiple instance types of the same\n instance family. If the value is on, the Dedicated Host supports multiple\n instance types in the instance family. If the value is off, the Dedicated\n Host supports a single instance type only.

", + "smithy.api#xmlName": "allowsMultipleInstanceTypes" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the Dedicated Host.

", + "smithy.api#xmlName": "ownerId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the Dedicated Host is allocated.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "MemberOfServiceLinkedResourceGroup": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "MemberOfServiceLinkedResourceGroup", + "smithy.api#documentation": "

Indicates whether the Dedicated Host is in a host resource group. If memberOfServiceLinkedResourceGroup is true, the\n host is in a host resource group; otherwise, it is not.

", + "smithy.api#xmlName": "memberOfServiceLinkedResourceGroup" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which the\n Dedicated Host is allocated.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "HostMaintenance": { + "target": "com.amazonaws.ec2#HostMaintenance", + "traits": { + "aws.protocols#ec2QueryName": "HostMaintenance", + "smithy.api#documentation": "

Indicates whether host maintenance is enabled or disabled for the Dedicated\n Host.

", + "smithy.api#xmlName": "hostMaintenance" + } + }, + "AssetId": { + "target": "com.amazonaws.ec2#AssetId", + "traits": { + "aws.protocols#ec2QueryName": "AssetId", + "smithy.api#documentation": "

The ID of the Outpost hardware asset on which the Dedicated Host is allocated.

", + "smithy.api#xmlName": "assetId" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#HostCpuOptions", + "traits": { + "aws.protocols#ec2QueryName": "CpuOptions", + "smithy.api#documentation": "

The CPU options for the Dedicated Host, including AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings.

", + "smithy.api#xmlName": "cpuOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of the Dedicated Host.

" + } + }, + "com.amazonaws.ec2#HostCpuOptions": { + "type": "structure", + "members": { + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnp", + "traits": { + "aws.protocols#ec2QueryName": "AmdSevSnp", + "smithy.api#documentation": "

Specifies whether AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) is enabled or disabled for the Dedicated Host. If you don't specify a value, AMD SEV-SNP is disabled.

", + "smithy.api#xmlName": "amdSevSnp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the CPU options for a Dedicated Host, including AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings.

" + } + }, + "com.amazonaws.ec2#HostCpuOptionsRequest": { + "type": "structure", + "members": { + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnp", + "traits": { + "smithy.api#documentation": "

Specifies whether AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) is enabled or disabled for the Dedicated Host. If you don't specify a value, AMD SEV-SNP is disabled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the CPU configuration options for a Dedicated Host allocation request. Options include AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) settings.

" + } + }, + "com.amazonaws.ec2#HostInstance": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of instance that is running on the Dedicated Host.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type (for example, m3.medium) of the running\n instance.

", + "smithy.api#xmlName": "instanceType" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the instance.

", + "smithy.api#xmlName": "ownerId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance running on a Dedicated Host.

" + } + }, + "com.amazonaws.ec2#HostInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HostInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HostList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Host", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HostMaintenance": { + "type": "enum", + "members": { + "on": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on" + } + }, + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + } + } + }, + "com.amazonaws.ec2#HostOffering": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the offering.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Duration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Duration", + "smithy.api#documentation": "

The duration of the offering (in seconds).

", + "smithy.api#xmlName": "duration" + } + }, + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly price of the offering.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family of the offering.

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "OfferingId", + "smithy.api#documentation": "

The ID of the offering.

", + "smithy.api#xmlName": "offeringId" + } + }, + "PaymentOption": { + "target": "com.amazonaws.ec2#PaymentOption", + "traits": { + "aws.protocols#ec2QueryName": "PaymentOption", + "smithy.api#documentation": "

The available payment option.

", + "smithy.api#xmlName": "paymentOption" + } + }, + "UpfrontPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontPrice", + "smithy.api#documentation": "

The upfront price of the offering. Does not apply to No Upfront offerings.

", + "smithy.api#xmlName": "upfrontPrice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the Dedicated Host Reservation offering.

" + } + }, + "com.amazonaws.ec2#HostOfferingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HostOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HostProperties": { + "type": "structure", + "members": { + "Cores": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Cores", + "smithy.api#documentation": "

The number of cores on the Dedicated Host.

", + "smithy.api#xmlName": "cores" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type supported by the Dedicated Host. For example, m5.large.\n If the host supports multiple instance types, no instanceType is returned.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family supported by the Dedicated Host. For example,\n m5.

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "Sockets": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Sockets", + "smithy.api#documentation": "

The number of sockets on the Dedicated Host.

", + "smithy.api#xmlName": "sockets" + } + }, + "TotalVCpus": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalVCpus", + "smithy.api#documentation": "

The total number of vCPUs on the Dedicated Host.

", + "smithy.api#xmlName": "totalVCpus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of a Dedicated Host.

" + } + }, + "com.amazonaws.ec2#HostRecovery": { + "type": "enum", + "members": { + "on": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on" + } + }, + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + } + } + }, + "com.amazonaws.ec2#HostReservation": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of Dedicated Hosts the reservation is associated with.

", + "smithy.api#xmlName": "count" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency in which the upfrontPrice and hourlyPrice\n amounts are specified. At this time, the only supported currency is\n USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Duration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Duration", + "smithy.api#documentation": "

The length of the reservation's term, specified in seconds. Can be 31536000 (1\n year) | 94608000 (3 years).

", + "smithy.api#xmlName": "duration" + } + }, + "End": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "End", + "smithy.api#documentation": "

The date and time that the reservation ends.

", + "smithy.api#xmlName": "end" + } + }, + "HostIdSet": { + "target": "com.amazonaws.ec2#ResponseHostIdSet", + "traits": { + "aws.protocols#ec2QueryName": "HostIdSet", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts associated with the reservation.

", + "smithy.api#xmlName": "hostIdSet" + } + }, + "HostReservationId": { + "target": "com.amazonaws.ec2#HostReservationId", + "traits": { + "aws.protocols#ec2QueryName": "HostReservationId", + "smithy.api#documentation": "

The ID of the reservation that specifies the associated Dedicated Hosts.

", + "smithy.api#xmlName": "hostReservationId" + } + }, + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly price of the reservation.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family of the Dedicated Host Reservation. The instance family on the\n Dedicated Host must be the same in order for it to benefit from the reservation.

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "aws.protocols#ec2QueryName": "OfferingId", + "smithy.api#documentation": "

The ID of the reservation. This remains the same regardless of which Dedicated Hosts\n are associated with it.

", + "smithy.api#xmlName": "offeringId" + } + }, + "PaymentOption": { + "target": "com.amazonaws.ec2#PaymentOption", + "traits": { + "aws.protocols#ec2QueryName": "PaymentOption", + "smithy.api#documentation": "

The payment option selected for this reservation.

", + "smithy.api#xmlName": "paymentOption" + } + }, + "Start": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Start", + "smithy.api#documentation": "

The date and time that the reservation started.

", + "smithy.api#xmlName": "start" + } + }, + "State": { + "target": "com.amazonaws.ec2#ReservationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the reservation.

", + "smithy.api#xmlName": "state" + } + }, + "UpfrontPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontPrice", + "smithy.api#documentation": "

The upfront price of the reservation.

", + "smithy.api#xmlName": "upfrontPrice" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the Dedicated Host Reservation.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the Dedicated Host Reservation and associated Dedicated Hosts.

" + } + }, + "com.amazonaws.ec2#HostReservationId": { + "type": "string" + }, + "com.amazonaws.ec2#HostReservationIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HostReservationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HostReservationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#HostReservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#HostTenancy": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "dedicated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + }, + "host": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + } + } + }, + "com.amazonaws.ec2#HostnameType": { + "type": "enum", + "members": { + "ip_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ip-name" + } + }, + "resource_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-name" + } + } + } + }, + "com.amazonaws.ec2#Hour": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 23 + } + } + }, + "com.amazonaws.ec2#HttpTokensEnforcedState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#HttpTokensState": { + "type": "enum", + "members": { + "optional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optional" + } + }, + "required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#HypervisorType": { + "type": "enum", + "members": { + "ovm": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ovm" + } + }, + "xen": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "xen" + } + } + } + }, + "com.amazonaws.ec2#IKEVersionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IKEVersionsListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IKEVersionsListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The IKE version.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The internet key exchange (IKE) version permitted for the VPN tunnel.

" + } + }, + "com.amazonaws.ec2#IKEVersionsRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IKEVersionsRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IKEVersionsRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IKE version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The IKE version that is permitted for the VPN tunnel.

" + } + }, + "com.amazonaws.ec2#IamInstanceProfile": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile.

", + "smithy.api#xmlName": "arn" + } + }, + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The ID of the instance profile.

", + "smithy.api#xmlName": "id" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IAM instance profile.

" + } + }, + "com.amazonaws.ec2#IamInstanceProfileAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "associationId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfile", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "State": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The time the IAM instance profile was associated with the instance.

", + "smithy.api#xmlName": "timestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between an IAM instance profile and an instance.

" + } + }, + "com.amazonaws.ec2#IamInstanceProfileAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#IamInstanceProfileAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IamInstanceProfileAssociationState": { + "type": "enum", + "members": { + "ASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "ASSOCIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "DISASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "DISASSOCIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + } + } + }, + "com.amazonaws.ec2#IamInstanceProfileSpecification": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile.

", + "smithy.api#xmlName": "arn" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the instance profile.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IAM instance profile.

" + } + }, + "com.amazonaws.ec2#IcmpTypeCode": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The ICMP code. A value of -1 means all codes for the specified ICMP type.

", + "smithy.api#xmlName": "code" + } + }, + "Type": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The ICMP type. A value of -1 means all types.

", + "smithy.api#xmlName": "type" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the ICMP type and code.

" + } + }, + "com.amazonaws.ec2#IdFormat": { + "type": "structure", + "members": { + "Deadline": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Deadline", + "smithy.api#documentation": "

The date in UTC at which you are permanently switched over to using longer IDs. If a deadline is not yet available for this resource type, this field is not returned.

", + "smithy.api#xmlName": "deadline" + } + }, + "Resource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Resource", + "smithy.api#documentation": "

The type of resource.

", + "smithy.api#xmlName": "resource" + } + }, + "UseLongIds": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "UseLongIds", + "smithy.api#documentation": "

Indicates whether longer IDs (17-character IDs) are enabled for the resource.

", + "smithy.api#xmlName": "useLongIds" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the ID format for a resource.

" + } + }, + "com.amazonaws.ec2#IdFormatList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IdFormat", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Igmpv2SupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#Image": { + "type": "structure", + "members": { + "PlatformDetails": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PlatformDetails", + "smithy.api#documentation": "

The platform details associated with the billing code of the AMI. For more information,\n see Understand\n AMI billing information in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "platformDetails" + } + }, + "UsageOperation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UsageOperation", + "smithy.api#documentation": "

The operation of the Amazon EC2 instance and the billing code that is associated with the AMI.\n usageOperation corresponds to the lineitem/Operation column on your Amazon Web Services Cost and Usage Report and in the Amazon Web Services Price\n List API. You can view these fields on the Instances or AMIs pages in the Amazon EC2 console,\n or in the responses that are returned by the DescribeImages command in\n the Amazon EC2 API, or the describe-images command in the\n CLI.

", + "smithy.api#xmlName": "usageOperation" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

Any block device mapping entries.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the AMI that was provided during image creation.

", + "smithy.api#xmlName": "description" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Specifies whether enhanced networking with ENA is enabled.

", + "smithy.api#xmlName": "enaSupport" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#HypervisorType", + "traits": { + "aws.protocols#ec2QueryName": "Hypervisor", + "smithy.api#documentation": "

The hypervisor type of the image. Only xen is supported. ovm is\n not supported.

", + "smithy.api#xmlName": "hypervisor" + } + }, + "ImageOwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageOwnerAlias", + "smithy.api#documentation": "

The owner alias (amazon | aws-backup-vault |\n aws-marketplace).

", + "smithy.api#xmlName": "imageOwnerAlias" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the AMI that was provided during image creation.

", + "smithy.api#xmlName": "name" + } + }, + "RootDeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceName", + "smithy.api#documentation": "

The device name of the root device volume (for example, /dev/sda1).

", + "smithy.api#xmlName": "rootDeviceName" + } + }, + "RootDeviceType": { + "target": "com.amazonaws.ec2#DeviceType", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceType", + "smithy.api#documentation": "

The type of root device used by the AMI. The AMI can use an Amazon EBS volume or an instance\n store volume.

", + "smithy.api#xmlName": "rootDeviceType" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is\n enabled.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#StateReason", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the state change.

", + "smithy.api#xmlName": "stateReason" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the image.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VirtualizationType": { + "target": "com.amazonaws.ec2#VirtualizationType", + "traits": { + "aws.protocols#ec2QueryName": "VirtualizationType", + "smithy.api#documentation": "

The type of virtualization of the AMI.

", + "smithy.api#xmlName": "virtualizationType" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode of the image. For more information, see Instance launch behavior with Amazon EC2\n boot modes in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "bootMode" + } + }, + "TpmSupport": { + "target": "com.amazonaws.ec2#TpmSupportValues", + "traits": { + "aws.protocols#ec2QueryName": "TpmSupport", + "smithy.api#documentation": "

If the image is configured for NitroTPM support, the value is v2.0. For more\n information, see NitroTPM in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "tpmSupport" + } + }, + "DeprecationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeprecationTime", + "smithy.api#documentation": "

The date and time to deprecate the AMI, in UTC, in the following format:\n YYYY-MM-DDTHH:MM:SSZ.\n If you specified a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

", + "smithy.api#xmlName": "deprecationTime" + } + }, + "ImdsSupport": { + "target": "com.amazonaws.ec2#ImdsSupportValues", + "traits": { + "aws.protocols#ec2QueryName": "ImdsSupport", + "smithy.api#documentation": "

If v2.0, it indicates that IMDSv2 is specified in the AMI. Instances launched\n from this AMI will have HttpTokens automatically set to required so\n that, by default, the instance requires that IMDSv2 is used when requesting instance metadata.\n In addition, HttpPutResponseHopLimit is set to 2. For more\n information, see Configure the AMI in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "imdsSupport" + } + }, + "SourceInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceInstanceId", + "smithy.api#documentation": "

The ID of the instance that the AMI was created from if the AMI was created using CreateImage. This field only appears if the AMI was created using\n CreateImage.

", + "smithy.api#xmlName": "sourceInstanceId" + } + }, + "DeregistrationProtection": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeregistrationProtection", + "smithy.api#documentation": "

Indicates whether deregistration protection is enabled for the AMI.

", + "smithy.api#xmlName": "deregistrationProtection" + } + }, + "LastLaunchedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastLaunchedTime", + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the AMI was last used to launch an EC2 instance. When the AMI is used\n to launch an instance, there is a 24-hour delay before that usage is reported.

\n \n

\n lastLaunchedTime data is available starting April 2017.

\n
", + "smithy.api#xmlName": "lastLaunchedTime" + } + }, + "ImageAllowed": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ImageAllowed", + "smithy.api#documentation": "

If true, the AMI satisfies the criteria for Allowed AMIs and can be\n discovered and used in the account. If false and Allowed AMIs is set to\n enabled, the AMI can't be discovered or used in the account. If\n false and Allowed AMIs is set to audit-mode, the AMI can be\n discovered and used in the account.

\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "imageAllowed" + } + }, + "SourceImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageId", + "smithy.api#documentation": "

The ID of the source AMI from which the AMI was created.

", + "smithy.api#xmlName": "sourceImageId" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageRegion", + "smithy.api#documentation": "

The Region of the source AMI.

", + "smithy.api#xmlName": "sourceImageRegion" + } + }, + "FreeTierEligible": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "FreeTierEligible", + "smithy.api#documentation": "

Indicates whether the image is eligible for Amazon Web Services Free Tier.

\n
    \n
  • \n

    If true, the AMI is eligible for Free Tier and can be used to launch\n instances under the Free Tier limits.

    \n
  • \n
  • \n

    If false, the AMI is not eligible for Free Tier.

    \n
  • \n
", + "smithy.api#xmlName": "freeTierEligible" + } + }, + "PublicSsmParameterName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicSsmParameterName", + "smithy.api#documentation": "

The name of the public Systems Manager parameter that resolves to this AMI, under the\n aws/service/ namespace.

", + "smithy.api#xmlName": "publicSsmParameterName" + } + }, + "ImageWatermarks": { + "target": "com.amazonaws.ec2#ImageWatermarkList", + "traits": { + "aws.protocols#ec2QueryName": "ImageWatermarkSet", + "smithy.api#documentation": "

The watermarks attached to the AMI.

", + "smithy.api#xmlName": "imageWatermarkSet" + } + }, + "ScanResults": { + "target": "com.amazonaws.ec2#ScanResults", + "traits": { + "aws.protocols#ec2QueryName": "ScanResults", + "smithy.api#documentation": "

The Amazon Inspector scan results for the AMI. This information is present only for AMIs\n that Amazon Inspector has scanned.

\n

When you share an AMI with other accounts, organizations, or organizational units\n (OUs), or make it public, its scan results are available to the accounts that can use the\n AMI.

", + "smithy.api#xmlName": "scanResults" + } + }, + "InstanceTypeSpecification": { + "target": "com.amazonaws.ec2#InstanceTypeSpecification", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeSpecification", + "smithy.api#documentation": "

The instance type specification for the AMI, which defines which instance types are\n compatible with this image.

", + "smithy.api#xmlName": "instanceTypeSpecification" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "ImageLocation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageLocation", + "smithy.api#documentation": "

The location of the AMI.

", + "smithy.api#xmlName": "imageLocation" + } + }, + "State": { + "target": "com.amazonaws.ec2#ImageState", + "traits": { + "aws.protocols#ec2QueryName": "ImageState", + "smithy.api#documentation": "

The current state of the AMI. If the state is available, the image is\n successfully registered and can be used to launch an instance.

", + "smithy.api#xmlName": "imageState" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the image.

", + "smithy.api#xmlName": "imageOwnerId" + } + }, + "CreationDate": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationDate", + "smithy.api#documentation": "

The date and time the image was created.

", + "smithy.api#xmlName": "creationDate" + } + }, + "Public": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPublic", + "smithy.api#documentation": "

Indicates whether the image has public launch permissions. The value is true\n if this image has public launch permissions or false if it has only implicit and\n explicit launch permissions.

", + "smithy.api#xmlName": "isPublic" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

Any product codes associated with the AMI.

", + "smithy.api#xmlName": "productCodes" + } + }, + "Architecture": { + "target": "com.amazonaws.ec2#ArchitectureValues", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the image.

", + "smithy.api#xmlName": "architecture" + } + }, + "ImageType": { + "target": "com.amazonaws.ec2#ImageTypeValues", + "traits": { + "aws.protocols#ec2QueryName": "ImageType", + "smithy.api#documentation": "

The type of image.

", + "smithy.api#xmlName": "imageType" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The kernel associated with the image, if any. Only applicable for machine images.

", + "smithy.api#xmlName": "kernelId" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The RAM disk associated with the image, if any. Only applicable for machine images.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

This value is set to windows for Windows AMIs; otherwise, it is blank.

", + "smithy.api#xmlName": "platform" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an image.

" + } + }, + "com.amazonaws.ec2#ImageAncestryEntry": { + "type": "structure", + "members": { + "CreationDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationDate", + "smithy.api#documentation": "

The date and time when this AMI was created.

", + "smithy.api#xmlName": "creationDate" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of this AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "ImageOwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageOwnerAlias", + "smithy.api#documentation": "

The owner alias (amazon | aws-backup-vault |\n aws-marketplace ) of this AMI, if one is assigned. Otherwise, the value is\n null.

", + "smithy.api#xmlName": "imageOwnerAlias" + } + }, + "SourceImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageId", + "smithy.api#documentation": "

The ID of the parent AMI.

", + "smithy.api#xmlName": "sourceImageId" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the parent AMI.

", + "smithy.api#xmlName": "sourceImageRegion" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a single AMI in the ancestry chain and its source (parent) AMI.

" + } + }, + "com.amazonaws.ec2#ImageAncestryEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageAncestryEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageAttribute": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the AMI.

", + "smithy.api#xmlName": "description" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Kernel", + "smithy.api#documentation": "

The kernel ID.

", + "smithy.api#xmlName": "kernel" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Ramdisk", + "smithy.api#documentation": "

The RAM disk ID.

", + "smithy.api#xmlName": "ramdisk" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is\n enabled.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode.

", + "smithy.api#xmlName": "bootMode" + } + }, + "TpmSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "TpmSupport", + "smithy.api#documentation": "

If the image is configured for NitroTPM support, the value is v2.0.

", + "smithy.api#xmlName": "tpmSupport" + } + }, + "UefiData": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "UefiData", + "smithy.api#documentation": "

Base64 representation of the non-volatile UEFI variable store. To retrieve the UEFI data,\n use the GetInstanceUefiData command. You can inspect and modify the UEFI data by using the\n python-uefivars tool on\n GitHub. For more information, see UEFI Secure Boot for Amazon EC2\n instances in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "uefiData" + } + }, + "LastLaunchedTime": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "LastLaunchedTime", + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the AMI was last used to launch an EC2 instance. When the AMI is used\n to launch an instance, there is a 24-hour delay before that usage is reported.

\n \n

\n lastLaunchedTime data is available starting April 2017.

\n
", + "smithy.api#xmlName": "lastLaunchedTime" + } + }, + "ImdsSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "ImdsSupport", + "smithy.api#documentation": "

If v2.0, it indicates that IMDSv2 is specified in the AMI. Instances launched\n from this AMI will have HttpTokens automatically set to required so\n that, by default, the instance requires that IMDSv2 is used when requesting instance metadata.\n In addition, HttpPutResponseHopLimit is set to 2. For more\n information, see Configure the AMI in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "imdsSupport" + } + }, + "DeregistrationProtection": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "DeregistrationProtection", + "smithy.api#documentation": "

Indicates whether deregistration protection is enabled for the AMI.

", + "smithy.api#xmlName": "deregistrationProtection" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "LaunchPermissions": { + "target": "com.amazonaws.ec2#LaunchPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "LaunchPermission", + "smithy.api#documentation": "

The launch permissions.

", + "smithy.api#xmlName": "launchPermission" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes.

", + "smithy.api#xmlName": "productCodes" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

The block device mapping entries.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an image attribute.

" + } + }, + "com.amazonaws.ec2#ImageAttributeName": { + "type": "enum", + "members": { + "description": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "description" + } + }, + "kernel": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kernel" + } + }, + "ramdisk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ramdisk" + } + }, + "launchPermission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchPermission" + } + }, + "productCodes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "productCodes" + } + }, + "blockDeviceMapping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blockDeviceMapping" + } + }, + "sriovNetSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sriovNetSupport" + } + }, + "bootMode": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bootMode" + } + }, + "tpmSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tpmSupport" + } + }, + "uefiData": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefiData" + } + }, + "lastLaunchedTime": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lastLaunchedTime" + } + }, + "imdsSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "imdsSupport" + } + }, + "deregistrationProtection": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deregistrationProtection" + } + } + } + }, + "com.amazonaws.ec2#ImageBlockPublicAccessDisabledState": { + "type": "enum", + "members": { + "unblocked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unblocked" + } + } + } + }, + "com.amazonaws.ec2#ImageBlockPublicAccessEnabledState": { + "type": "enum", + "members": { + "block_new_sharing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-new-sharing" + } + } + } + }, + "com.amazonaws.ec2#ImageCriterion": { + "type": "structure", + "members": { + "ImageProviders": { + "target": "com.amazonaws.ec2#ImageProviderList", + "traits": { + "aws.protocols#ec2QueryName": "ImageProviderSet", + "smithy.api#documentation": "

The image providers whose images are allowed.

\n

Possible values:

\n
    \n
  • \n

    \n amazon: Allow AMIs created by Amazon or verified providers.

    \n
  • \n
  • \n

    \n aws-marketplace: Allow AMIs created by verified providers in the Amazon Web Services\n Marketplace.

    \n
  • \n
  • \n

    \n aws-backup-vault: Allow AMIs created by Amazon Web Services Backup.

    \n
  • \n
  • \n

    12-digit account ID: Allow AMIs created by this account. One or more account IDs can be\n specified.

    \n
  • \n
  • \n

    \n none: Allow AMIs created by your own account only.

    \n
  • \n
\n

Maximum: 200 values

", + "smithy.api#xmlName": "imageProviderSet" + } + }, + "MarketplaceProductCodes": { + "target": "com.amazonaws.ec2#MarketplaceProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "MarketplaceProductCodeSet", + "smithy.api#documentation": "

The Amazon Web Services Marketplace product codes for allowed images.

\n

Length: 1-25 characters

\n

Valid characters: Letters (A–Z, a–z) and numbers (0–9)

\n

Maximum: 50 values

", + "smithy.api#xmlName": "marketplaceProductCodeSet" + } + }, + "ImageNames": { + "target": "com.amazonaws.ec2#ImageNameList", + "traits": { + "aws.protocols#ec2QueryName": "ImageNameSet", + "smithy.api#documentation": "

The names of allowed images. Names can include wildcards (? and\n *).

\n

Length: 1–128 characters. With ?, the minimum is 3 characters.

\n

Valid characters:

\n
    \n
  • \n

    Letters: A–Z, a–z\n

    \n
  • \n
  • \n

    Numbers: 0–9\n

    \n
  • \n
  • \n

    Special characters: ( ) [ ] . / - ' @ _ * ?\n

    \n
  • \n
  • \n

    Spaces

    \n
  • \n
\n

Maximum: 50 values

", + "smithy.api#xmlName": "imageNameSet" + } + }, + "DeprecationTimeCondition": { + "target": "com.amazonaws.ec2#DeprecationTimeCondition", + "traits": { + "aws.protocols#ec2QueryName": "DeprecationTimeCondition", + "smithy.api#documentation": "

The maximum period since deprecation for allowed images.

", + "smithy.api#xmlName": "deprecationTimeCondition" + } + }, + "CreationDateCondition": { + "target": "com.amazonaws.ec2#CreationDateCondition", + "traits": { + "aws.protocols#ec2QueryName": "CreationDateCondition", + "smithy.api#documentation": "

The maximum age for allowed images.

", + "smithy.api#xmlName": "creationDateCondition" + } + }, + "ImageWatermarks": { + "target": "com.amazonaws.ec2#ImageWatermarkFilterResponseList", + "traits": { + "aws.protocols#ec2QueryName": "ImageWatermarkSet", + "smithy.api#documentation": "

The watermark criteria that an AMI must match to be allowed. An AMI is allowed if it\n carries at least one watermark that satisfies an ImageWatermarkFilter. A watermark satisfies a\n filter when all specified fields in the ImageWatermarkFilter match the corresponding values on\n the watermark of the AMI.

\n

Maximum: 50 values

", + "smithy.api#xmlName": "imageWatermarkSet" + } + }, + "ScanResultCondition": { + "target": "com.amazonaws.ec2#ScanResultCondition", + "traits": { + "aws.protocols#ec2QueryName": "ScanResultCondition", + "smithy.api#documentation": "

The Amazon Inspector scan-result criteria that an AMI must meet to be allowed. The\n criteria can limit the highest finding severity, the number of days since Amazon Inspector\n last scanned the AMI, and the number of days since Amazon Inspector reported a fix as\n available.

", + "smithy.api#xmlName": "scanResultCondition" + } + } + }, + "traits": { + "smithy.api#documentation": "

The criteria that are evaluated to determine which AMIs are discoverable and usable in\n your account for the specified Amazon Web Services Region.

\n

For more information, see How Allowed AMIs\n works in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ImageCriterionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageCriterion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageCriterionRequest": { + "type": "structure", + "members": { + "ImageProviders": { + "target": "com.amazonaws.ec2#ImageProviderRequestList", + "traits": { + "smithy.api#documentation": "

The image providers whose images are allowed.

\n

Possible values:

\n
    \n
  • \n

    \n amazon: Allow AMIs created by Amazon or verified providers.

    \n
  • \n
  • \n

    \n aws-marketplace: Allow AMIs created by verified providers in the Amazon Web Services\n Marketplace.

    \n
  • \n
  • \n

    \n aws-backup-vault: Allow AMIs created by Amazon Web Services Backup.

    \n
  • \n
  • \n

    12-digit account ID: Allow AMIs created by the specified accounts. One or more account IDs can be\n specified.

    \n
  • \n
  • \n

    \n none: Allow AMIs created by your own account only. When none is\n specified, no other values can be specified.

    \n
  • \n
\n

Maximum: 200 values

", + "smithy.api#xmlName": "ImageProvider" + } + }, + "MarketplaceProductCodes": { + "target": "com.amazonaws.ec2#MarketplaceProductCodeRequestList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Marketplace product codes for allowed images.

\n

Length: 1-25 characters

\n

Valid characters: Letters (A–Z, a–z) and numbers (0–9)

\n

Maximum: 50 values

", + "smithy.api#xmlName": "MarketplaceProductCode" + } + }, + "ImageNames": { + "target": "com.amazonaws.ec2#ImageNameCriteriaRequestList", + "traits": { + "smithy.api#documentation": "

The names of allowed images. Names can include wildcards (? and\n *).

\n

Length: 1–128 characters. With ?, the minimum is 3 characters.

\n

Valid characters:

\n
    \n
  • \n

    Letters: A–Z, a–z\n

    \n
  • \n
  • \n

    Numbers: 0–9\n

    \n
  • \n
  • \n

    Special characters: ( ) [ ] . / - ' @ _ * ?\n

    \n
  • \n
  • \n

    Spaces

    \n
  • \n
\n

Maximum: 50 values

", + "smithy.api#xmlName": "ImageName" + } + }, + "DeprecationTimeCondition": { + "target": "com.amazonaws.ec2#DeprecationTimeConditionRequest", + "traits": { + "smithy.api#documentation": "

The maximum period since deprecation for allowed images.

" + } + }, + "CreationDateCondition": { + "target": "com.amazonaws.ec2#CreationDateConditionRequest", + "traits": { + "smithy.api#documentation": "

The maximum age for allowed images.

" + } + }, + "ImageWatermarks": { + "target": "com.amazonaws.ec2#ImageWatermarkFilterRequestList", + "traits": { + "smithy.api#documentation": "

The watermark criteria that an AMI must match to be allowed. An AMI is allowed if it\n carries at least one watermark that satisfies an ImageWatermarkFilter. A watermark satisfies a\n filter when all specified fields in the ImageWatermarkFilter match the corresponding values on\n the watermark of the AMI.

\n

Maximum: 50 values

", + "smithy.api#xmlName": "ImageWatermark" + } + }, + "ScanResultCondition": { + "target": "com.amazonaws.ec2#ScanResultConditionRequest", + "traits": { + "smithy.api#documentation": "

The Amazon Inspector scan-result criteria that an AMI must meet to be allowed. The\n criteria can limit the highest finding severity, the number of days since Amazon Inspector\n last scanned the AMI, and the number of days since Amazon Inspector reported a fix as\n available.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The criteria that are evaluated to determine which AMIs are discoverable and usable in\n your account for the specified Amazon Web Services Region.

\n

The ImageCriteria can include up to:

\n
    \n
  • \n

    10 ImageCriterion\n

    \n
  • \n
\n

Each ImageCriterion can include up to:

\n
    \n
  • \n

    200 values for ImageProviders\n

    \n
  • \n
  • \n

    50 values for ImageNames\n

    \n
  • \n
  • \n

    50 values for MarketplaceProductCodes\n

    \n
  • \n
  • \n

    50 values for ImageWatermarks\n

    \n
  • \n
\n

For more information, see How Allowed AMIs\n works in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ImageCriterionRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageCriterionRequest", + "traits": { + "smithy.api#xmlName": "ImageCriterion" + } + } + }, + "com.amazonaws.ec2#ImageDescriptionRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.ec2#ImageDiskContainer": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the disk image.

" + } + }, + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The block device mapping for the disk.

" + } + }, + "Format": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The format of the disk image being imported.

\n

Valid values: OVA | VHD | VHDX | VMDK | RAW\n

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The ID of the EBS snapshot to be used for importing the snapshot.

" + } + }, + "Url": { + "target": "com.amazonaws.ec2#SensitiveUrl", + "traits": { + "smithy.api#documentation": "

The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an\n Amazon S3 URL (s3://..)

" + } + }, + "UserBucket": { + "target": "com.amazonaws.ec2#UserBucket", + "traits": { + "smithy.api#documentation": "

The S3 bucket for the disk image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the disk container object for an import image task.

" + } + }, + "com.amazonaws.ec2#ImageDiskContainerList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageDiskContainer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageFinding": { + "type": "structure", + "members": { + "FixAvailable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "FixAvailable", + "smithy.api#documentation": "

Specifies whether a fix is available for the finding. This value is true when\n Amazon Inspector reports a full or partial fix for the finding.

", + "smithy.api#xmlName": "fixAvailable" + } + }, + "Score": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Score", + "smithy.api#documentation": "

The Amazon Inspector score for the finding.

", + "smithy.api#xmlName": "score" + } + }, + "FirstObservedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "FirstObservedAt", + "smithy.api#documentation": "

The date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), when Amazon Inspector first observed the finding.

", + "smithy.api#xmlName": "firstObservedAt" + } + }, + "UpdatedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdatedAt", + "smithy.api#documentation": "

The date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), when Amazon Inspector last updated the finding.

", + "smithy.api#xmlName": "updatedAt" + } + }, + "Title": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Title", + "smithy.api#documentation": "

The title of the finding.

", + "smithy.api#xmlName": "title" + } + }, + "Paths": { + "target": "com.amazonaws.ec2#ImageFindingPathSet", + "traits": { + "aws.protocols#ec2QueryName": "PathSet", + "smithy.api#documentation": "

The file paths in the AMI that are affected by the finding. Amazon EC2 returns up to 10\n file paths for each finding.

", + "smithy.api#xmlName": "pathSet" + } + }, + "SeverityLabel": { + "target": "com.amazonaws.ec2#SeverityLabel", + "traits": { + "aws.protocols#ec2QueryName": "SeverityLabel", + "smithy.api#documentation": "

The severity of the finding.

\n

The valid values are the following Amazon Inspector severity levels, which correspond to\n CVSS score ranges:

\n
    \n
  • \n

    \n informational - CVSS score of 0.

    \n
  • \n
  • \n

    \n low - CVSS score of 0.1 to 3.9.

    \n
  • \n
  • \n

    \n medium - CVSS score of 4.0 to 6.9.

    \n
  • \n
  • \n

    \n high - CVSS score of 7.0 to 8.9.

    \n
  • \n
  • \n

    \n critical - CVSS score of 9.0 to 10.0.

    \n
  • \n
\n

For more information, see Software\n package vulnerability severity in the Amazon Inspector User Guide.

", + "smithy.api#xmlName": "severityLabel" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the Amazon EBS snapshot of the AMI in which the finding was detected.

", + "smithy.api#xmlName": "snapshotId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon Inspector vulnerability finding for an AMI.

" + } + }, + "com.amazonaws.ec2#ImageFindingPathSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageId": { + "type": "string" + }, + "com.amazonaws.ec2#ImageIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#xmlName": "ImageId" + } + } + }, + "com.amazonaws.ec2#ImageList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Image", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageMetadata": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the AMI.

", + "smithy.api#xmlName": "name" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the AMI.

", + "smithy.api#xmlName": "imageOwnerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#ImageState", + "traits": { + "aws.protocols#ec2QueryName": "ImageState", + "smithy.api#documentation": "

The current state of the AMI. If the state is available, the AMI is\n successfully registered and can be used to launch an instance.

", + "smithy.api#xmlName": "imageState" + } + }, + "ImageOwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageOwnerAlias", + "smithy.api#documentation": "

The alias of the AMI owner.

\n

Valid values: amazon | aws-backup-vault |\n aws-marketplace\n

", + "smithy.api#xmlName": "imageOwnerAlias" + } + }, + "CreationDate": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationDate", + "smithy.api#documentation": "

The date and time the AMI was created.

", + "smithy.api#xmlName": "creationDate" + } + }, + "DeprecationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeprecationTime", + "smithy.api#documentation": "

The deprecation date and time of the AMI, in UTC, in the following format:\n YYYY-MM-DDTHH:MM:SSZ.

", + "smithy.api#xmlName": "deprecationTime" + } + }, + "ImageAllowed": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ImageAllowed", + "smithy.api#documentation": "

If true, the AMI satisfies the criteria for Allowed AMIs and can be\n discovered and used in the account. If false, the AMI can't be discovered or used\n in the account.

\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "imageAllowed" + } + }, + "IsPublic": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPublic", + "smithy.api#documentation": "

Indicates whether the AMI has public launch permissions. A value of true\n means this AMI has public launch permissions, while false means it has only\n implicit (AMI owner) or explicit (shared with your account) launch permissions.

", + "smithy.api#xmlName": "isPublic" + } + }, + "ImageWatermarks": { + "target": "com.amazonaws.ec2#ImageWatermarkList", + "traits": { + "aws.protocols#ec2QueryName": "ImageWatermarkSet", + "smithy.api#documentation": "

The watermarks attached to the AMI.

", + "smithy.api#xmlName": "imageWatermarkSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the AMI.

" + } + }, + "com.amazonaws.ec2#ImageName": { + "type": "string" + }, + "com.amazonaws.ec2#ImageNameCriteriaRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.ec2#ImageNameCriteriaRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageNameCriteriaRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageNameRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + } + } + }, + "com.amazonaws.ec2#ImageProvider": { + "type": "string" + }, + "com.amazonaws.ec2#ImageProviderList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageProvider", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageProviderRequest": { + "type": "string" + }, + "com.amazonaws.ec2#ImageProviderRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageProviderRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageRecycleBinInfo": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the AMI.

", + "smithy.api#xmlName": "name" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the AMI.

", + "smithy.api#xmlName": "description" + } + }, + "RecycleBinEnterTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinEnterTime", + "smithy.api#documentation": "

The date and time when the AMI entered the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinEnterTime" + } + }, + "RecycleBinExitTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinExitTime", + "smithy.api#documentation": "

The date and time when the AMI is to be permanently deleted from the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinExitTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an AMI that is currently in the Recycle Bin.

" + } + }, + "com.amazonaws.ec2#ImageRecycleBinInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageRecycleBinInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageReference": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the referenced image.

", + "smithy.api#xmlName": "imageId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#ImageReferenceResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource referencing the image.

", + "smithy.api#xmlName": "resourceType" + } + }, + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource referencing the image.

", + "smithy.api#xmlName": "arn" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource that is referencing an image.

" + } + }, + "com.amazonaws.ec2#ImageReferenceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageReference", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageReferenceOptionName": { + "type": "enum", + "members": { + "STATE_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "state-name" + } + }, + "VERSION_DEPTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "version-depth" + } + } + } + }, + "com.amazonaws.ec2#ImageReferenceResourceType": { + "type": "enum", + "members": { + "EC2_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ec2:Instance" + } + }, + "EC2_LAUNCH_TEMPLATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ec2:LaunchTemplate" + } + }, + "SSM_PARAMETER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ssm:Parameter" + } + }, + "IMAGE_BUILDER_IMAGE_RECIPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "imagebuilder:ImageRecipe" + } + }, + "IMAGE_BUILDER_CONTAINER_RECIPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "imagebuilder:ContainerRecipe" + } + } + } + }, + "com.amazonaws.ec2#ImageState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "invalid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid" + } + }, + "deregistered": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deregistered" + } + }, + "transient": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transient" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "error": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#ImageTypeValues": { + "type": "enum", + "members": { + "machine": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "machine" + } + }, + "kernel": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kernel" + } + }, + "ramdisk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ramdisk" + } + } + } + }, + "com.amazonaws.ec2#ImageUefiDataRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ImageUsageReport": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the image that was specified when the report was created.

", + "smithy.api#xmlName": "imageId" + } + }, + "ReportId": { + "target": "com.amazonaws.ec2#ImageUsageReportId", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTypeSet", + "smithy.api#documentation": "

The resource types that were specified when the report was created.

", + "smithy.api#xmlName": "resourceTypeSet" + } + }, + "AccountIds": { + "target": "com.amazonaws.ec2#UserIdList", + "traits": { + "aws.protocols#ec2QueryName": "AccountIdSet", + "smithy.api#documentation": "

The IDs of the Amazon Web Services accounts that were specified when the report was created.

", + "smithy.api#xmlName": "accountIdSet" + } + }, + "State": { + "target": "com.amazonaws.ec2#ImageUsageReportState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the report. Possible values:

\n
    \n
  • \n

    \n available - The report is available to view.

    \n
  • \n
  • \n

    \n pending - The report is being created and not available to view.

    \n
  • \n
  • \n

    \n error - The report could not be created.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#ImageUsageReportStateReason", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

Provides additional details when the report is in an error state.

", + "smithy.api#xmlName": "stateReason" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The date and time when the report was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ExpirationTime", + "smithy.api#documentation": "

The date and time when Amazon EC2 will delete the report (30 days after the report was\n created).

", + "smithy.api#xmlName": "expirationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the report.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration and status of an image usage report.

" + } + }, + "com.amazonaws.ec2#ImageUsageReportEntry": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeName", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource (ec2:Instance or\n ec2:LaunchTemplate).

", + "smithy.api#xmlName": "resourceType" + } + }, + "ReportId": { + "target": "com.amazonaws.ec2#ImageUsageReportId", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + }, + "UsageCount": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "UsageCount", + "smithy.api#documentation": "

The number of times resources of this type reference this image in the account.

", + "smithy.api#xmlName": "usageCount" + } + }, + "AccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccountId", + "smithy.api#documentation": "

The ID of the account that uses the image.

", + "smithy.api#xmlName": "accountId" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the image.

", + "smithy.api#xmlName": "imageId" + } + }, + "ReportCreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ReportCreationTime", + "smithy.api#documentation": "

The date and time the report creation was initiated.

", + "smithy.api#xmlName": "reportCreationTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single entry in an image usage report, detailing how an image is being used by a\n specific Amazon Web Services account and resource type.

" + } + }, + "com.amazonaws.ec2#ImageUsageReportEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageReportEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageUsageReportId": { + "type": "string" + }, + "com.amazonaws.ec2#ImageUsageReportIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageReportId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.ec2#ImageUsageReportList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageReport", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageUsageReportState": { + "type": "string" + }, + "com.amazonaws.ec2#ImageUsageReportStateReason": { + "type": "string" + }, + "com.amazonaws.ec2#ImageUsageReportUserIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "UserId" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.ec2#ImageUsageResourceType": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeName", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type.

\n

Valid values: ec2:Instance | ec2:LaunchTemplate\n

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceTypeOptions": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTypeOptionSet", + "smithy.api#documentation": "

The options that affect the scope of the report. Valid only when ResourceType\n is ec2:LaunchTemplate.

", + "smithy.api#xmlName": "resourceTypeOptionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource type to include in the report. Associated options can also be specified if the\n resource type is a launch template.

" + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageResourceType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeName": { + "type": "string" + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOption": { + "type": "structure", + "members": { + "OptionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OptionName", + "smithy.api#documentation": "

The name of the option.

", + "smithy.api#xmlName": "optionName" + } + }, + "OptionValues": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionValuesList", + "traits": { + "aws.protocols#ec2QueryName": "OptionValueSet", + "smithy.api#documentation": "

The number of launch template versions to check.

", + "smithy.api#xmlName": "optionValueSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options that affect the scope of the report.

" + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOption", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOptionRequest": { + "type": "structure", + "members": { + "OptionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the option.

\n

Valid value: version-depth - The number of launch template versions to\n check.

" + } + }, + "OptionValues": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionValuesList", + "traits": { + "smithy.api#documentation": "

A value for the specified option.

\n

Valid values: Integers between 1 and 10000\n

\n

Default: 20\n

", + "smithy.api#xmlName": "OptionValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options that affect the scope of the report.

" + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOptionRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionRequest" + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOptionValue": { + "type": "string" + }, + "com.amazonaws.ec2#ImageUsageResourceTypeOptionValuesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeRequest": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeName", + "traits": { + "smithy.api#documentation": "

The resource type.

\n

Valid values: ec2:Instance | ec2:LaunchTemplate\n

" + } + }, + "ResourceTypeOptions": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeOptionRequestList", + "traits": { + "smithy.api#documentation": "

The options that affect the scope of the report. Valid only when ResourceType\n is ec2:LaunchTemplate.

", + "smithy.api#xmlName": "ResourceTypeOption" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource type to include in the report. Associated options can also be specified if the\n resource type is a launch template.

" + } + }, + "com.amazonaws.ec2#ImageUsageResourceTypeRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageUsageResourceTypeRequest" + } + }, + "com.amazonaws.ec2#ImageWatermark": { + "type": "structure", + "members": { + "WatermarkKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "WatermarkKey", + "smithy.api#documentation": "

The watermark identifier, in accountId:watermarkName format (for example,\n 123456789012:approvedAmi). The accountId portion is the Amazon Web Services account\n ID of the watermark creator. The watermarkName portion is customer-provided.

", + "smithy.api#xmlName": "watermarkKey" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageRegion", + "smithy.api#documentation": "

The Region where the watermark was originally attached.

", + "smithy.api#xmlName": "sourceImageRegion" + } + }, + "SourceImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageId", + "smithy.api#documentation": "

The ID of the AMI to which the watermark was originally attached.

", + "smithy.api#xmlName": "sourceImageId" + } + }, + "SourceImageCreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageCreationTime", + "smithy.api#documentation": "

The creation date of the source AMI, in the\n following format:\n YYYY-MM-DDTHH:MM:SS.ssssss+HH:MM.

", + "smithy.api#xmlName": "sourceImageCreationTime" + } + }, + "WatermarkCreationTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "WatermarkCreationTime", + "smithy.api#documentation": "

The date and time the watermark was attached to the AMI, in the following format:\n YYYY-MM-DDTHH:MM:SS.ssssss+HH:MM.

", + "smithy.api#xmlName": "watermarkCreationTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a watermark attached to an AMI.

" + } + }, + "com.amazonaws.ec2#ImageWatermarkFilterRequest": { + "type": "structure", + "members": { + "WatermarkKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The accountId:name of the watermark. Supports wildcards (*,\n ?).

" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Region where the watermark was originally created. Supports wildcards (*,\n ?).

" + } + }, + "MaximumDaysSinceSourceImageCreated": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of days that have elapsed since the source image was\n created.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaximumDaysSinceWatermarkCreated": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of days that have elapsed since the watermark was attached to the\n image.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The watermark filter criteria for an allowed image. Each entry can specify one or more\n fields. All specified fields must match the same watermark on the image.

" + } + }, + "com.amazonaws.ec2#ImageWatermarkFilterRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageWatermarkFilterRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageWatermarkFilterResponse": { + "type": "structure", + "members": { + "WatermarkKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "WatermarkKey", + "smithy.api#documentation": "

The accountId:name of the watermark. Supports wildcards (*,\n ?).

", + "smithy.api#xmlName": "watermarkKey" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageRegion", + "smithy.api#documentation": "

The Region where the watermark was originally created. Supports wildcards (*,\n ?).

", + "smithy.api#xmlName": "sourceImageRegion" + } + }, + "MaximumDaysSinceSourceImageCreated": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaximumDaysSinceSourceImageCreated", + "smithy.api#documentation": "

The maximum number of days that have elapsed since the source image was\n created.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maximumDaysSinceSourceImageCreated" + } + }, + "MaximumDaysSinceWatermarkCreated": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaximumDaysSinceWatermarkCreated", + "smithy.api#documentation": "

The maximum number of days that have elapsed since the watermark was attached to the\n image.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maximumDaysSinceWatermarkCreated" + } + } + }, + "traits": { + "smithy.api#documentation": "

The watermark filter criteria for an allowed image. Each entry can specify one or more\n fields. All specified fields must match the same watermark on the image.

" + } + }, + "com.amazonaws.ec2#ImageWatermarkFilterResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageWatermarkFilterResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageWatermarkList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImageWatermark", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImageWatermarkNameRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + } + } + }, + "com.amazonaws.ec2#ImdsSupportValues": { + "type": "enum", + "members": { + "v2_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v2.0" + } + } + } + }, + "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationList": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListResult" + }, + "traits": { + "smithy.api#documentation": "

Uploads a client certificate revocation list to the specified Client VPN endpoint. Uploading a client certificate revocation list overwrites the existing client certificate revocation list.

\n

Uploading a client certificate revocation list resets existing client connections.

" + } + }, + "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint to which the client certificate revocation list applies.

", + "smithy.api#required": {} + } + }, + "CertificateRevocationList": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The client certificate revocation list file. For more information, see Generate a Client Certificate Revocation List in the\n\t\t\t\tClient VPN Administrator Guide.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportClientVpnClientCertificateRevocationListResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportImageResult" + }, + "traits": { + "smithy.api#documentation": "\n

To import your virtual machines (VMs) with a console-based experience, you can use the\n Import virtual machine images to Amazon Web Services template in the Migration Hub Orchestrator console. For more\n information, see the \n Migration Hub Orchestrator User Guide\n .

\n
\n

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

\n \n

Amazon Web Services VM Import/Export strongly recommends specifying a value for either the\n --license-type or --usage-operation parameter when you create a new\n VM Import task. This ensures your operating system is licensed appropriately and your billing is\n optimized.

\n
\n

For more information, see Importing a \n VM as an image using VM Import/Export in the VM Import/Export User Guide.

" + } + }, + "com.amazonaws.ec2#ImportImageLicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of a license configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request information of license configurations.

" + } + }, + "com.amazonaws.ec2#ImportImageLicenseConfigurationResponse": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LicenseConfigurationArn", + "smithy.api#documentation": "

The ARN of a license configuration.

", + "smithy.api#xmlName": "licenseConfigurationArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

The response information for license configurations.

" + } + }, + "com.amazonaws.ec2#ImportImageLicenseSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportImageLicenseConfigurationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImportImageLicenseSpecificationListResponse": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportImageLicenseConfigurationResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImportImageRequest": { + "type": "structure", + "members": { + "Architecture": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The architecture of the virtual machine.

\n

Valid values: i386 | x86_64\n

" + } + }, + "ClientData": { + "target": "com.amazonaws.ec2#ClientData", + "traits": { + "smithy.api#documentation": "

The client-specific data.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to enable idempotency for VM import requests.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description string for the import image task.

" + } + }, + "DiskContainers": { + "target": "com.amazonaws.ec2#ImageDiskContainerList", + "traits": { + "smithy.api#documentation": "

Information about the disk containers.

", + "smithy.api#xmlName": "DiskContainer" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the destination AMI of the imported image should be encrypted. The default KMS key for EBS is used\n unless you specify a non-default KMS key using KmsKeyId. For more information, see Amazon EBS Encryption in the\n Amazon Elastic Compute Cloud User Guide.

" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The target hypervisor platform.

\n

Valid values: xen\n

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

An identifier for the symmetric KMS key to use when creating the\n encrypted AMI. This parameter is only required if you want to use a non-default KMS key; if this\n parameter is not specified, the default KMS key for EBS is used. If a KmsKeyId is\n specified, the Encrypted flag must also be set.

\n

The KMS key identifier may be provided in any of the following formats:

\n
    \n
  • \n

    Key ID

    \n
  • \n
  • \n

    Key alias

    \n
  • \n
  • \n

    ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the key namespace, and then the key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

    \n
  • \n
  • \n

    ARN using key alias. The alias ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the alias namespace, and then the key alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even\n though you provided an invalid identifier. This action will eventually report failure.

\n

The specified KMS key must exist in the Region that the AMI is being copied to.

\n

Amazon EBS does not support asymmetric KMS keys.

" + } + }, + "LicenseType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The license type to be used for the Amazon Machine Image (AMI) after importing.

\n

Specify AWS to replace the source-system license with an Amazon Web Services\n license or BYOL to retain the source-system license. Leaving this parameter\n undefined is the same as choosing AWS when importing a Windows Server operating\n system, and the same as choosing BYOL when importing a Windows client operating\n system (such as Windows 10) or a Linux operating system.

\n

To use BYOL, you must have existing licenses with rights to use these licenses in a third party\n cloud, such as Amazon Web Services. For more information, see Prerequisites in the\n VM Import/Export User Guide.

" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The operating system of the virtual machine. If you import a VM that is compatible with\n Unified Extensible Firmware Interface (UEFI) using an EBS snapshot, you must specify a value for\n the platform.

\n

Valid values: Windows | Linux\n

" + } + }, + "RoleName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the role to use when not using the default role, 'vmimport'.

" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#ImportImageLicenseSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The ARNs of the license configurations.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the import image task during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "UsageOperation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The usage operation value. For more information, see Licensing options in the VM Import/Export User Guide.

" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "smithy.api#documentation": "

The boot mode of the virtual machine.

\n \n

The uefi-preferred boot mode isn't supported for importing images. For more\n information, see Boot modes in\n the VM Import/Export User Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportImageResult": { + "type": "structure", + "members": { + "Architecture": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the virtual machine.

", + "smithy.api#xmlName": "architecture" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the import task.

", + "smithy.api#xmlName": "description" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the AMI is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Hypervisor", + "smithy.api#documentation": "

The target hypervisor of the import task.

", + "smithy.api#xmlName": "hypervisor" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the Amazon Machine Image (AMI) created by the import task.

", + "smithy.api#xmlName": "imageId" + } + }, + "ImportTaskId": { + "target": "com.amazonaws.ec2#ImportImageTaskId", + "traits": { + "aws.protocols#ec2QueryName": "ImportTaskId", + "smithy.api#documentation": "

The task ID of the import image task.

", + "smithy.api#xmlName": "importTaskId" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The identifier for the symmetric KMS key that was used to create the encrypted AMI.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "LicenseType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LicenseType", + "smithy.api#documentation": "

The license type of the virtual machine.

", + "smithy.api#xmlName": "licenseType" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The operating system of the virtual machine.

", + "smithy.api#xmlName": "platform" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The progress of the task.

", + "smithy.api#xmlName": "progress" + } + }, + "SnapshotDetails": { + "target": "com.amazonaws.ec2#SnapshotDetailList", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotDetailSet", + "smithy.api#documentation": "

Information about the snapshots.

", + "smithy.api#xmlName": "snapshotDetailSet" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

A brief status of the task.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A detailed status message of the import task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#ImportImageLicenseSpecificationListResponse", + "traits": { + "aws.protocols#ec2QueryName": "LicenseSpecifications", + "smithy.api#documentation": "

The ARNs of the license configurations.

", + "smithy.api#xmlName": "licenseSpecifications" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the import image task.

", + "smithy.api#xmlName": "tagSet" + } + }, + "UsageOperation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UsageOperation", + "smithy.api#documentation": "

The usage operation value.

", + "smithy.api#xmlName": "usageOperation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportImageTask": { + "type": "structure", + "members": { + "Architecture": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the virtual machine.

\n

Valid values: i386 | x86_64 | arm64\n

", + "smithy.api#xmlName": "architecture" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the import task.

", + "smithy.api#xmlName": "description" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the image is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Hypervisor", + "smithy.api#documentation": "

The target hypervisor for the import task.

\n

Valid values: xen\n

", + "smithy.api#xmlName": "hypervisor" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the Amazon Machine Image (AMI) of the imported virtual machine.

", + "smithy.api#xmlName": "imageId" + } + }, + "ImportTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImportTaskId", + "smithy.api#documentation": "

The ID of the import image task.

", + "smithy.api#xmlName": "importTaskId" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The identifier for the KMS key that was used to create the encrypted image.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "LicenseType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LicenseType", + "smithy.api#documentation": "

The license type of the virtual machine.

", + "smithy.api#xmlName": "licenseType" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The description string for the import image task.

", + "smithy.api#xmlName": "platform" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The percentage of progress of the import image task.

", + "smithy.api#xmlName": "progress" + } + }, + "SnapshotDetails": { + "target": "com.amazonaws.ec2#SnapshotDetailList", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotDetailSet", + "smithy.api#documentation": "

Information about the snapshots.

", + "smithy.api#xmlName": "snapshotDetailSet" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

A brief status for the import image task.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A descriptive status message for the import image task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the import image task.

", + "smithy.api#xmlName": "tagSet" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#ImportImageLicenseSpecificationListResponse", + "traits": { + "aws.protocols#ec2QueryName": "LicenseSpecifications", + "smithy.api#documentation": "

The ARNs of the license configurations that are associated with the import image task.

", + "smithy.api#xmlName": "licenseSpecifications" + } + }, + "UsageOperation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UsageOperation", + "smithy.api#documentation": "

The usage operation value.

", + "smithy.api#xmlName": "usageOperation" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode of the virtual machine.

", + "smithy.api#xmlName": "bootMode" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an import image task.

" + } + }, + "com.amazonaws.ec2#ImportImageTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ImportImageTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportImageTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImportInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportInstanceResult" + }, + "traits": { + "smithy.api#documentation": "\n

We recommend that you use the \n ImportImage\n \n API instead. For more information, see Importing a VM as an image using VM\n Import/Export in the VM Import/Export User Guide.

\n
\n

Creates an import instance task using metadata from the specified disk image.

\n

This API action supports only single-volume VMs. To import multi-volume VMs, use ImportImage\n instead.

\n

For information about the import manifest referenced by this API action, see VM Import Manifest.

\n

This API action is not supported by the Command Line Interface (CLI).

" + } + }, + "com.amazonaws.ec2#ImportInstanceLaunchSpecification": { + "type": "structure", + "members": { + "Architecture": { + "target": "com.amazonaws.ec2#ArchitectureValues", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the instance.

", + "smithy.api#xmlName": "architecture" + } + }, + "GroupNames": { + "target": "com.amazonaws.ec2#SecurityGroupStringList", + "traits": { + "smithy.api#documentation": "

The security group names.

", + "smithy.api#xmlName": "GroupName" + } + }, + "GroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The security group IDs.

", + "smithy.api#xmlName": "GroupId" + } + }, + "AdditionalInfo": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalInfo", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "additionalInfo" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#UserData", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The Base64-encoded user data to make available to the instance.

", + "smithy.api#xmlName": "userData" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. For more information about the instance types that you can import, see Instance Types in the\n VM Import/Export User Guide.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#Placement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The placement information for the instance.

", + "smithy.api#xmlName": "placement" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

Indicates whether monitoring is enabled.

", + "smithy.api#xmlName": "monitoring" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

[EC2-VPC] The ID of the subnet in which to launch the instance.

", + "smithy.api#xmlName": "subnetId" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#ShutdownBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInitiatedShutdownBehavior", + "smithy.api#documentation": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the\n operating system command for system shutdown).

", + "smithy.api#xmlName": "instanceInitiatedShutdownBehavior" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

[EC2-VPC] An available IP address from the IP address range of the subnet.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch specification for VM import.

" + } + }, + "com.amazonaws.ec2#ImportInstanceRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the instance being imported.

", + "smithy.api#xmlName": "description" + } + }, + "LaunchSpecification": { + "target": "com.amazonaws.ec2#ImportInstanceLaunchSpecification", + "traits": { + "aws.protocols#ec2QueryName": "LaunchSpecification", + "smithy.api#documentation": "

The launch specification.

", + "smithy.api#xmlName": "launchSpecification" + } + }, + "DiskImages": { + "target": "com.amazonaws.ec2#DiskImageList", + "traits": { + "aws.protocols#ec2QueryName": "DiskImage", + "smithy.api#documentation": "

The disk image.

", + "smithy.api#xmlName": "diskImage" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance operating system.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "platform" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportInstanceResult": { + "type": "structure", + "members": { + "ConversionTask": { + "target": "com.amazonaws.ec2#ConversionTask", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTask", + "smithy.api#documentation": "

Information about the conversion task.

", + "smithy.api#xmlName": "conversionTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportInstanceTaskDetails": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the task.

", + "smithy.api#xmlName": "description" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The instance operating system.

", + "smithy.api#xmlName": "platform" + } + }, + "Volumes": { + "target": "com.amazonaws.ec2#ImportInstanceVolumeDetailSet", + "traits": { + "aws.protocols#ec2QueryName": "Volumes", + "smithy.api#documentation": "

The volumes.

", + "smithy.api#xmlName": "volumes" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an import instance task.

" + } + }, + "com.amazonaws.ec2#ImportInstanceVolumeDetailItem": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone where the resulting instance will reside.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone where the resulting instance will reside.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "BytesConverted": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "BytesConverted", + "smithy.api#documentation": "

The number of bytes converted so far.

", + "smithy.api#xmlName": "bytesConverted" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the task.

", + "smithy.api#xmlName": "description" + } + }, + "Image": { + "target": "com.amazonaws.ec2#DiskImageDescription", + "traits": { + "aws.protocols#ec2QueryName": "Image", + "smithy.api#documentation": "

The image.

", + "smithy.api#xmlName": "image" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the import of this particular disk image.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status information or errors related to the disk image.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Volume": { + "target": "com.amazonaws.ec2#DiskImageVolumeDescription", + "traits": { + "aws.protocols#ec2QueryName": "Volume", + "smithy.api#documentation": "

The volume.

", + "smithy.api#xmlName": "volume" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an import volume task.

" + } + }, + "com.amazonaws.ec2#ImportInstanceVolumeDetailSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportInstanceVolumeDetailItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImportKeyPair": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportKeyPairRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportKeyPairResult" + }, + "traits": { + "smithy.api#documentation": "

Imports the public key from an RSA or ED25519 key pair that you created using a third-party tool. \n You give Amazon Web Services only the public key. The private key is never transferred between you and Amazon Web Services.

\n

For more information about the requirements for importing a key pair, see Create a key pair and import the public key to Amazon EC2 in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ImportKeyPairRequest": { + "type": "structure", + "members": { + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the imported key pair.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique name for the key pair.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "keyName" + } + }, + "PublicKeyMaterial": { + "target": "com.amazonaws.ec2#Blob", + "traits": { + "aws.protocols#ec2QueryName": "PublicKeyMaterial", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The public key.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "publicKeyMaterial" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportKeyPairResult": { + "type": "structure", + "members": { + "KeyFingerprint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyFingerprint", + "smithy.api#documentation": "
    \n
  • \n

    For RSA key pairs, the key fingerprint is the MD5 public key fingerprint as specified in section 4 of RFC 4716.

    \n
  • \n
  • \n

    For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which is the default for OpenSSH, starting with OpenSSH 6.8.

    \n
  • \n
", + "smithy.api#xmlName": "keyFingerprint" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The key pair name that you provided.

", + "smithy.api#xmlName": "keyName" + } + }, + "KeyPairId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyPairId", + "smithy.api#documentation": "

The ID of the resulting key pair.

", + "smithy.api#xmlName": "keyPairId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags applied to the imported key pair.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportManifestUrl": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ImportSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportSnapshotResult" + }, + "traits": { + "smithy.api#documentation": "

Imports a disk into an EBS snapshot.

\n

For more information, see Importing a disk as a snapshot using VM Import/Export in the \n VM Import/Export User Guide.

" + } + }, + "com.amazonaws.ec2#ImportSnapshotRequest": { + "type": "structure", + "members": { + "ClientData": { + "target": "com.amazonaws.ec2#ClientData", + "traits": { + "smithy.api#documentation": "

The client-specific data.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Token to enable idempotency for VM import requests.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description string for the import snapshot task.

" + } + }, + "DiskContainer": { + "target": "com.amazonaws.ec2#SnapshotDiskContainer", + "traits": { + "smithy.api#documentation": "

Information about the disk container.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the destination snapshot of the imported image should be encrypted. The default KMS key for EBS is\n used unless you specify a non-default KMS key using KmsKeyId. For more information, see Amazon EBS Encryption in the\n Amazon Elastic Compute Cloud User Guide.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

An identifier for the symmetric KMS key to use when creating the\n encrypted snapshot. This parameter is only required if you want to use a non-default KMS key; if this\n parameter is not specified, the default KMS key for EBS is used. If a KmsKeyId is\n specified, the Encrypted flag must also be set.

\n

The KMS key identifier may be provided in any of the following formats:

\n
    \n
  • \n

    Key ID

    \n
  • \n
  • \n

    Key alias

    \n
  • \n
  • \n

    ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the key namespace, and then the key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

    \n
  • \n
  • \n

    ARN using key alias. The alias ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the alias namespace, and then the key alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even\n though you provided an invalid identifier. This action will eventually report failure.

\n

The specified KMS key must exist in the Region that the snapshot is being copied to.

\n

Amazon EBS does not support asymmetric KMS keys.

" + } + }, + "RoleName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the role to use when not using the default role, 'vmimport'.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the import snapshot task during creation.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportSnapshotResult": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the import snapshot task.

", + "smithy.api#xmlName": "description" + } + }, + "ImportTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImportTaskId", + "smithy.api#documentation": "

The ID of the import snapshot task.

", + "smithy.api#xmlName": "importTaskId" + } + }, + "SnapshotTaskDetail": { + "target": "com.amazonaws.ec2#SnapshotTaskDetail", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotTaskDetail", + "smithy.api#documentation": "

Information about the import snapshot task.

", + "smithy.api#xmlName": "snapshotTaskDetail" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the import snapshot task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportSnapshotTask": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the import snapshot task.

", + "smithy.api#xmlName": "description" + } + }, + "ImportTaskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImportTaskId", + "smithy.api#documentation": "

The ID of the import snapshot task.

", + "smithy.api#xmlName": "importTaskId" + } + }, + "SnapshotTaskDetail": { + "target": "com.amazonaws.ec2#SnapshotTaskDetail", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotTaskDetail", + "smithy.api#documentation": "

Describes an import snapshot task.

", + "smithy.api#xmlName": "snapshotTaskDetail" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the import snapshot task.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an import snapshot task.

" + } + }, + "com.amazonaws.ec2#ImportSnapshotTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ImportSnapshotTaskIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportSnapshotTaskId", + "traits": { + "smithy.api#xmlName": "ImportTaskId" + } + } + }, + "com.amazonaws.ec2#ImportSnapshotTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportSnapshotTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ImportTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ImportTaskIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ImportImageTaskId", + "traits": { + "smithy.api#xmlName": "ImportTaskId" + } + } + }, + "com.amazonaws.ec2#ImportVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ImportVolumeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ImportVolumeResult" + }, + "traits": { + "smithy.api#documentation": "\n

This API action supports only single-volume VMs. To import multi-volume VMs, use \n ImportImage instead. To import a disk to a snapshot, use\n ImportSnapshot instead.

\n
\n

Creates an import volume task using metadata from the specified disk image.

\n

For information about the import manifest referenced by this API action, see VM Import Manifest.

\n

This API action is not supported by the Command Line Interface (CLI).

" + } + }, + "com.amazonaws.ec2#ImportVolumeRequest": { + "type": "structure", + "members": { + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone for the resulting EBS volume.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone for the resulting EBS volume.

\n

Either AvailabilityZone or AvailabilityZoneId must be specified,\n but not both.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Image": { + "target": "com.amazonaws.ec2#DiskImageDetail", + "traits": { + "aws.protocols#ec2QueryName": "Image", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The disk image.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "image" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the volume.

", + "smithy.api#xmlName": "description" + } + }, + "Volume": { + "target": "com.amazonaws.ec2#VolumeDetail", + "traits": { + "aws.protocols#ec2QueryName": "Volume", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The volume size.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "volume" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ImportVolumeResult": { + "type": "structure", + "members": { + "ConversionTask": { + "target": "com.amazonaws.ec2#ConversionTask", + "traits": { + "aws.protocols#ec2QueryName": "ConversionTask", + "smithy.api#documentation": "

Information about the conversion task.

", + "smithy.api#xmlName": "conversionTask" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ImportVolumeTaskDetails": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone where the resulting volume will reside.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone where the resulting volume will reside.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "BytesConverted": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "BytesConverted", + "smithy.api#documentation": "

The number of bytes converted so far.

", + "smithy.api#xmlName": "bytesConverted" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description you provided when starting the import volume task.

", + "smithy.api#xmlName": "description" + } + }, + "Image": { + "target": "com.amazonaws.ec2#DiskImageDescription", + "traits": { + "aws.protocols#ec2QueryName": "Image", + "smithy.api#documentation": "

The image.

", + "smithy.api#xmlName": "image" + } + }, + "Volume": { + "target": "com.amazonaws.ec2#DiskImageVolumeDescription", + "traits": { + "aws.protocols#ec2QueryName": "Volume", + "smithy.api#documentation": "

The volume.

", + "smithy.api#xmlName": "volume" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an import volume task.

" + } + }, + "com.amazonaws.ec2#IncludeUnsupportedInRegion": { + "type": "boolean" + }, + "com.amazonaws.ec2#InferenceAcceleratorInfo": { + "type": "structure", + "members": { + "Accelerators": { + "target": "com.amazonaws.ec2#InferenceDeviceInfoList", + "traits": { + "aws.protocols#ec2QueryName": "Accelerators", + "smithy.api#documentation": "

Describes the Inference accelerators for the instance type.

", + "smithy.api#xmlName": "accelerators" + } + }, + "TotalInferenceMemoryInMiB": { + "target": "com.amazonaws.ec2#totalInferenceMemory", + "traits": { + "aws.protocols#ec2QueryName": "TotalInferenceMemoryInMiB", + "smithy.api#documentation": "

The total size of the memory for the inference accelerators for the instance type, in\n MiB.

", + "smithy.api#xmlName": "totalInferenceMemoryInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

Describes the Inference accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#InferenceDeviceCount": { + "type": "integer" + }, + "com.amazonaws.ec2#InferenceDeviceInfo": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#InferenceDeviceCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of Inference accelerators for the instance type.

", + "smithy.api#xmlName": "count" + } + }, + "Name": { + "target": "com.amazonaws.ec2#InferenceDeviceName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the Inference accelerator.

", + "smithy.api#xmlName": "name" + } + }, + "Manufacturer": { + "target": "com.amazonaws.ec2#InferenceDeviceManufacturerName", + "traits": { + "aws.protocols#ec2QueryName": "Manufacturer", + "smithy.api#documentation": "

The manufacturer of the Inference accelerator.

", + "smithy.api#xmlName": "manufacturer" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#InferenceDeviceMemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory available to the inference accelerator.

", + "smithy.api#xmlName": "memoryInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

Describes the Inference accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#InferenceDeviceInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InferenceDeviceInfo" + } + }, + "com.amazonaws.ec2#InferenceDeviceManufacturerName": { + "type": "string" + }, + "com.amazonaws.ec2#InferenceDeviceMemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#InferenceDeviceMemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory available to the inference accelerator, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

Describes the memory available to the inference accelerator.

" + } + }, + "com.amazonaws.ec2#InferenceDeviceMemorySize": { + "type": "integer" + }, + "com.amazonaws.ec2#InferenceDeviceName": { + "type": "string" + }, + "com.amazonaws.ec2#IngestionStatus": { + "type": "enum", + "members": { + "INITIAL_INGESTION_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initial-ingestion-in-progress" + } + }, + "INGESTION_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ingestion-complete" + } + }, + "INGESTION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ingestion-failed" + } + } + } + }, + "com.amazonaws.ec2#InitializationGracePeriodSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": -1, + "max": 600 + } + } + }, + "com.amazonaws.ec2#InitializationStatusDetails": { + "type": "structure", + "members": { + "InitializationType": { + "target": "com.amazonaws.ec2#InitializationType", + "traits": { + "aws.protocols#ec2QueryName": "InitializationType", + "smithy.api#documentation": "

The method used for volume initialization. Possible values include:

\n
    \n
  • \n

    \n default - Volume initialized using the default volume initialization \n rate or fast snapshot restore.

    \n
  • \n
  • \n

    \n provisioned-rate - Volume initialized using an Amazon EBS Provisioned \n Rate for Volume Initialization.

    \n
  • \n
  • \n

    \n volume-copy - Volume copy initialized at the rate for volume copies.

    \n
  • \n
", + "smithy.api#xmlName": "initializationType" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The current volume initialization progress as a percentage (0-100). Returns 100 \n when volume initialization has completed.

", + "smithy.api#xmlName": "progress" + } + }, + "EstimatedTimeToCompleteInSeconds": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "EstimatedTimeToCompleteInSeconds", + "smithy.api#documentation": "

The estimated remaining time, in seconds, for volume initialization to complete. Returns \n 0 when volume initialization has completed.

\n

Only available for volumes created with Amazon EBS Provisioned Rate for Volume Initialization.

", + "smithy.api#xmlName": "estimatedTimeToCompleteInSeconds" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the volume initialization. For more information, see Initialize Amazon EBS volumes.

" + } + }, + "com.amazonaws.ec2#InitializationType": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "provisioned_rate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned-rate" + } + }, + "volume_copy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volume-copy" + } + } + } + }, + "com.amazonaws.ec2#InsideCidrBlocksStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Instance": { + "type": "structure", + "members": { + "Architecture": { + "target": "com.amazonaws.ec2#ArchitectureValues", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the image.

", + "smithy.api#xmlName": "architecture" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#InstanceBlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

Any block device mapping entries for the instance.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

The idempotency token you provided when you launched the instance, if\n applicable.

", + "smithy.api#xmlName": "clientToken" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n provide optimal I/O performance. This optimization isn't available with all instance\n types. Additional usage charges apply when using an EBS Optimized instance.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Specifies whether enhanced networking with ENA is enabled.

", + "smithy.api#xmlName": "enaSupport" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#HypervisorType", + "traits": { + "aws.protocols#ec2QueryName": "Hypervisor", + "smithy.api#documentation": "

The hypervisor type of the instance. The value xen is used for both Xen\n and Nitro hypervisors.

", + "smithy.api#xmlName": "hypervisor" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfile", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile associated with the instance, if\n applicable.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "InstanceLifecycle": { + "target": "com.amazonaws.ec2#InstanceLifecycleType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceLifecycle", + "smithy.api#documentation": "

Indicates whether this is a Spot Instance or a Scheduled Instance.

", + "smithy.api#xmlName": "instanceLifecycle" + } + }, + "ElasticGpuAssociations": { + "target": "com.amazonaws.ec2#ElasticGpuAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuAssociationSet", + "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
", + "smithy.api#xmlName": "elasticGpuAssociationSet" + } + }, + "ElasticInferenceAcceleratorAssociations": { + "target": "com.amazonaws.ec2#ElasticInferenceAcceleratorAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorAssociationSet", + "smithy.api#documentation": "

Deprecated

\n \n

Amazon Elastic Inference is no longer available.

\n
", + "smithy.api#xmlName": "elasticInferenceAcceleratorAssociationSet" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceSet", + "smithy.api#documentation": "

The network interfaces for the instance.

", + "smithy.api#xmlName": "networkInterfaceSet" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "RootDeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceName", + "smithy.api#documentation": "

The device name of the root device volume (for example,\n /dev/sda1).

", + "smithy.api#xmlName": "rootDeviceName" + } + }, + "RootDeviceType": { + "target": "com.amazonaws.ec2#DeviceType", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceType", + "smithy.api#documentation": "

The root device type used by the AMI. The AMI can use an EBS volume or an instance\n store volume.

", + "smithy.api#xmlName": "rootDeviceType" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups for the instance.

", + "smithy.api#xmlName": "groupSet" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "SpotInstanceRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestId", + "smithy.api#documentation": "

If the request is a Spot Instance request, the ID of the request.

", + "smithy.api#xmlName": "spotInstanceRequestId" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface\n is enabled.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#StateReason", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the most recent state transition.

", + "smithy.api#xmlName": "stateReason" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the instance.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VirtualizationType": { + "target": "com.amazonaws.ec2#VirtualizationType", + "traits": { + "aws.protocols#ec2QueryName": "VirtualizationType", + "smithy.api#documentation": "

The virtualization type of the instance.

", + "smithy.api#xmlName": "virtualizationType" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#CpuOptions", + "traits": { + "aws.protocols#ec2QueryName": "CpuOptions", + "smithy.api#documentation": "

The CPU options for the instance.

", + "smithy.api#xmlName": "cpuOptions" + } + }, + "CapacityBlockId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block.

\n \n

For P5 instances, a Capacity Block ID refers to a group of instances. For Trn2u\n instances, a capacity block ID refers to an EC2 UltraServer.

\n
", + "smithy.api#xmlName": "capacityBlockId" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "CapacityReservationSpecification": { + "target": "com.amazonaws.ec2#CapacityReservationSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationSpecification", + "smithy.api#documentation": "

Information about the Capacity Reservation targeting option.

", + "smithy.api#xmlName": "capacityReservationSpecification" + } + }, + "HibernationOptions": { + "target": "com.amazonaws.ec2#HibernationOptions", + "traits": { + "aws.protocols#ec2QueryName": "HibernationOptions", + "smithy.api#documentation": "

Indicates whether the instance is enabled for hibernation.

", + "smithy.api#xmlName": "hibernationOptions" + } + }, + "Licenses": { + "target": "com.amazonaws.ec2#LicenseList", + "traits": { + "aws.protocols#ec2QueryName": "LicenseSet", + "smithy.api#documentation": "

The license configurations for the instance.

", + "smithy.api#xmlName": "licenseSet" + } + }, + "MetadataOptions": { + "target": "com.amazonaws.ec2#InstanceMetadataOptionsResponse", + "traits": { + "aws.protocols#ec2QueryName": "MetadataOptions", + "smithy.api#documentation": "

The metadata options for the instance.

", + "smithy.api#xmlName": "metadataOptions" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#EnclaveOptions", + "traits": { + "aws.protocols#ec2QueryName": "EnclaveOptions", + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro\n Enclaves.

", + "smithy.api#xmlName": "enclaveOptions" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode that was specified by the AMI. If the value is uefi-preferred, \n the AMI supports both UEFI and Legacy BIOS. The currentInstanceBootMode parameter \n is the boot mode that is used to boot the instance at launch or start.

\n \n

The operating system contained in the AMI must be configured to support the specified boot mode.

\n
\n

For more information, see Boot modes in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "bootMode" + } + }, + "PlatformDetails": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PlatformDetails", + "smithy.api#documentation": "

The platform details value for the instance. For more information, see AMI\n billing information fields in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "platformDetails" + } + }, + "UsageOperation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UsageOperation", + "smithy.api#documentation": "

The usage operation value for the instance. For more information, see AMI\n billing information fields in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "usageOperation" + } + }, + "UsageOperationUpdateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UsageOperationUpdateTime", + "smithy.api#documentation": "

The time that the usage operation was last updated.

", + "smithy.api#xmlName": "usageOperationUpdateTime" + } + }, + "PrivateDnsNameOptions": { + "target": "com.amazonaws.ec2#PrivateDnsNameOptionsResponse", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameOptions", + "smithy.api#documentation": "

The options for the instance hostname.

", + "smithy.api#xmlName": "privateDnsNameOptions" + } + }, + "Ipv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Address", + "smithy.api#documentation": "

The IPv6 address assigned to the instance.

", + "smithy.api#xmlName": "ipv6Address" + } + }, + "TpmSupport": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TpmSupport", + "smithy.api#documentation": "

If the instance is configured for NitroTPM support, the value is v2.0.\n For more information, see NitroTPM in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "tpmSupport" + } + }, + "MaintenanceOptions": { + "target": "com.amazonaws.ec2#InstanceMaintenanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "MaintenanceOptions", + "smithy.api#documentation": "

Provides information on the recovery and maintenance options of your instance.

", + "smithy.api#xmlName": "maintenanceOptions" + } + }, + "CurrentInstanceBootMode": { + "target": "com.amazonaws.ec2#InstanceBootModeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrentInstanceBootMode", + "smithy.api#documentation": "

The boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "currentInstanceBootMode" + } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#InstanceNetworkPerformanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformanceOptions", + "smithy.api#documentation": "

Contains settings for the network performance options for your instance.

", + "smithy.api#xmlName": "networkPerformanceOptions" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the instance.

", + "smithy.api#xmlName": "operator" + } + }, + "SecondaryInterfaces": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfaceList", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceSet", + "smithy.api#documentation": "

The secondary interfaces for the instance.

", + "smithy.api#xmlName": "secondaryInterfaceSet" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI used to launch the instance.

", + "smithy.api#xmlName": "imageId" + } + }, + "State": { + "target": "com.amazonaws.ec2#InstanceState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceState", + "smithy.api#documentation": "

The current state of the instance.

", + "smithy.api#xmlName": "instanceState" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS hostname\n can only be used inside the Amazon EC2 network. This name is not available until the\n instance enters the running state.

\n

The Amazon-provided DNS server resolves Amazon-provided private DNS\n hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not\n using the Amazon-provided DNS server in your VPC, your custom domain name servers must\n resolve the hostname as appropriate.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PublicDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The public DNS name assigned to the instance. This name is not available\n until the instance enters the running state. This name is only\n available if you've enabled DNS hostnames for your VPC. The format of this\n name depends on the public hostname type.

", + "smithy.api#xmlName": "dnsName" + } + }, + "StateTransitionReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason for the most recent state transition. This might be an empty string.

", + "smithy.api#xmlName": "reason" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair, if this instance was launched with an associated key\n pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "AmiLaunchIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AmiLaunchIndex", + "smithy.api#documentation": "

The AMI launch index, which can be used to find this instance in the launch\n group.

", + "smithy.api#xmlName": "amiLaunchIndex" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes attached to this instance, if applicable.

", + "smithy.api#xmlName": "productCodes" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "LaunchTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTime", + "smithy.api#documentation": "

The time that the instance was last launched. To determine the time that instance was first launched,\n see the attachment time for the primary network interface.

", + "smithy.api#xmlName": "launchTime" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#Placement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The location where the instance launched, if applicable.

", + "smithy.api#xmlName": "placement" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The kernel associated with this instance, if applicable.

", + "smithy.api#xmlName": "kernelId" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The RAM disk associated with this instance, if applicable.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#PlatformValues", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The platform. This value is windows for Windows instances; otherwise, it is empty.

", + "smithy.api#xmlName": "platform" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#Monitoring", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

The monitoring for the instance.

", + "smithy.api#xmlName": "monitoring" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which the instance is running.

", + "smithy.api#xmlName": "subnetId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC in which the instance is running.

", + "smithy.api#xmlName": "vpcId" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address assigned to the instance.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "PublicIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpAddress", + "smithy.api#documentation": "

The public IPv4 address, or the Carrier IP address assigned to the instance, if\n applicable.

\n

A Carrier IP address only applies to an instance launched in a subnet associated with\n a Wavelength Zone.

", + "smithy.api#xmlName": "ipAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance.

" + } + }, + "com.amazonaws.ec2#InstanceApplicationStatus": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "ApplicationStatus": { + "target": "com.amazonaws.ec2#ApplicationStatus", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatus", + "smithy.api#documentation": "

The application status for the instance.

", + "smithy.api#xmlName": "applicationStatus" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the instance.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the application status for an instance.

" + } + }, + "com.amazonaws.ec2#InstanceApplicationStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceApplicationStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceAttachmentEnaSrdSpecification": { + "type": "structure", + "members": { + "EnaSrdEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdEnabled", + "smithy.api#documentation": "

Indicates whether ENA Express is enabled for the network interface.

", + "smithy.api#xmlName": "enaSrdEnabled" + } + }, + "EnaSrdUdpSpecification": { + "target": "com.amazonaws.ec2#InstanceAttachmentEnaSrdUdpSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpSpecification", + "smithy.api#documentation": "

Configures ENA Express for UDP network traffic.

", + "smithy.api#xmlName": "enaSrdUdpSpecification" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the \n\t\t\tmaximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. \n\t\t\tWith ENA Express, you can communicate between two EC2 instances in the same subnet within the same \n\t\t\taccount, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

\n

To improve the reliability of network packet delivery, ENA Express reorders network packets on the \n\t\t\treceiving end by default. However, some UDP-based applications are designed to handle network packets \n\t\t\tthat are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express \n\t\t\tis enabled, you can specify whether UDP network traffic uses it.

" + } + }, + "com.amazonaws.ec2#InstanceAttachmentEnaSrdUdpSpecification": { + "type": "structure", + "members": { + "EnaSrdUdpEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpEnabled", + "smithy.api#documentation": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, \n\t\t\tyou must first enable ENA Express.

", + "smithy.api#xmlName": "enaSrdUdpEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic \n\t\t\tautomatically uses it. However, some UDP-based applications are designed to handle network packets that are \n\t\t\tout of order, without a need for retransmission, such as live video broadcasting or other near-real-time \n\t\t\tapplications. For UDP traffic, you can specify whether to use ENA Express, based on your application \n\t\t\tenvironment needs.

" + } + }, + "com.amazonaws.ec2#InstanceAttribute": { + "type": "structure", + "members": { + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#InstanceBlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

The block device mapping of the instance.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "DisableApiTermination": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiTermination", + "smithy.api#documentation": "

Indicates whether termination protection is enabled. If the value is true, \n you can't terminate the instance using the Amazon EC2 console, command line tools, or API.

", + "smithy.api#xmlName": "disableApiTermination" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Indicates whether enhanced networking with ENA is enabled.

", + "smithy.api#xmlName": "enaSupport" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#EnclaveOptions", + "traits": { + "aws.protocols#ec2QueryName": "EnclaveOptions", + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

", + "smithy.api#xmlName": "enclaveOptions" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInitiatedShutdownBehavior", + "smithy.api#documentation": "

Indicates whether an instance stops or terminates when you initiate shutdown from the\n instance (using the operating system command for system shutdown).

", + "smithy.api#xmlName": "instanceInitiatedShutdownBehavior" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Kernel", + "smithy.api#documentation": "

The kernel ID.

", + "smithy.api#xmlName": "kernel" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeList", + "traits": { + "aws.protocols#ec2QueryName": "ProductCodes", + "smithy.api#documentation": "

The product codes.

", + "smithy.api#xmlName": "productCodes" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Ramdisk", + "smithy.api#documentation": "

The RAM disk ID.

", + "smithy.api#xmlName": "ramdisk" + } + }, + "RootDeviceName": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceName", + "smithy.api#documentation": "

The device name of the root device volume (for example,\n /dev/sda1).

", + "smithy.api#xmlName": "rootDeviceName" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checks are enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Indicates whether enhanced networking with the Intel 82599 Virtual Function interface\n is enabled.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The user data.

", + "smithy.api#xmlName": "userData" + } + }, + "DisableApiStop": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiStop", + "smithy.api#documentation": "

Indicates whether stop protection is enabled for the instance.

", + "smithy.api#xmlName": "disableApiStop" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups associated with the instance.

", + "smithy.api#xmlName": "groupSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance attribute.

" + } + }, + "com.amazonaws.ec2#InstanceAttributeName": { + "type": "enum", + "members": { + "instanceType": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instanceType" + } + }, + "kernel": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kernel" + } + }, + "ramdisk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ramdisk" + } + }, + "userData": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "userData" + } + }, + "disableApiTermination": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disableApiTermination" + } + }, + "instanceInitiatedShutdownBehavior": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instanceInitiatedShutdownBehavior" + } + }, + "rootDeviceName": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rootDeviceName" + } + }, + "blockDeviceMapping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blockDeviceMapping" + } + }, + "productCodes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "productCodes" + } + }, + "sourceDestCheck": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sourceDestCheck" + } + }, + "groupSet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "groupSet" + } + }, + "ebsOptimized": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebsOptimized" + } + }, + "sriovNetSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sriovNetSupport" + } + }, + "enaSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enaSupport" + } + }, + "enclaveOptions": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enclaveOptions" + } + }, + "disableApiStop": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disableApiStop" + } + } + } + }, + "com.amazonaws.ec2#InstanceAutoRecoveryState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#InstanceBandwidthWeighting": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "VPC_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-1" + } + }, + "EBS_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs-1" + } + } + } + }, + "com.amazonaws.ec2#InstanceBlockDeviceMapping": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The device name.

", + "smithy.api#xmlName": "deviceName" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#EbsInstanceBlockDevice", + "traits": { + "aws.protocols#ec2QueryName": "Ebs", + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

", + "smithy.api#xmlName": "ebs" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping.

" + } + }, + "com.amazonaws.ec2#InstanceBlockDeviceMappingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceBlockDeviceMapping", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceBlockDeviceMappingSpecification": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The device name. For available device names, see Device names for volumes.

", + "smithy.api#xmlName": "deviceName" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#EbsInstanceBlockDeviceSpecification", + "traits": { + "aws.protocols#ec2QueryName": "Ebs", + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

", + "smithy.api#xmlName": "ebs" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VirtualName", + "smithy.api#documentation": "

The virtual device name.

", + "smithy.api#xmlName": "virtualName" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NoDevice", + "smithy.api#documentation": "

Suppresses the specified device included in the block device mapping.

", + "smithy.api#xmlName": "noDevice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping entry.

" + } + }, + "com.amazonaws.ec2#InstanceBlockDeviceMappingSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceBlockDeviceMappingSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceBootModeValues": { + "type": "enum", + "members": { + "legacy_bios": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "legacy-bios" + } + }, + "uefi": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "uefi" + } + } + } + }, + "com.amazonaws.ec2#InstanceCapacity": { + "type": "structure", + "members": { + "AvailableCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableCapacity", + "smithy.api#documentation": "

The number of instances that can be launched onto the Dedicated Host based on the\n host's available capacity.

", + "smithy.api#xmlName": "availableCapacity" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type supported by the Dedicated Host.

", + "smithy.api#xmlName": "instanceType" + } + }, + "TotalCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalCapacity", + "smithy.api#documentation": "

The total number of instances that can be launched onto the Dedicated Host if there\n are no instances running on it.

", + "smithy.api#xmlName": "totalCapacity" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the number of instances that can be launched onto the Dedicated\n Host.

" + } + }, + "com.amazonaws.ec2#InstanceConnectEndpointDnsNames": { + "type": "structure", + "members": { + "DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsName", + "smithy.api#documentation": "

The DNS name of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "dnsName" + } + }, + "FipsDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FipsDnsName", + "smithy.api#documentation": "

The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "fipsDnsName" + } + } + }, + "traits": { + "smithy.api#documentation": "

The DNS names of the endpoint.

" + } + }, + "com.amazonaws.ec2#InstanceConnectEndpointId": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceConnectEndpointMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.ec2#InstanceConnectEndpointPublicDnsNames": { + "type": "structure", + "members": { + "Ipv4": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointDnsNames", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4", + "smithy.api#documentation": "

The IPv4-only DNS name of the EC2 Instance Connect Endpoint.

", + "smithy.api#xmlName": "ipv4" + } + }, + "Dualstack": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointDnsNames", + "traits": { + "aws.protocols#ec2QueryName": "Dualstack", + "smithy.api#documentation": "

The dualstack DNS name of the EC2 Instance Connect Endpoint. A dualstack DNS name supports connections from both IPv4 and IPv6 clients.

", + "smithy.api#xmlName": "dualstack" + } + } + }, + "traits": { + "smithy.api#documentation": "

The public DNS names of the endpoint, including IPv4-only and dualstack DNS\n names.

" + } + }, + "com.amazonaws.ec2#InstanceConnectEndpointSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ec2InstanceConnectEndpoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceCount": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of listed Reserved Instances in the state specified by the\n state.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "State": { + "target": "com.amazonaws.ec2#ListingState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The states of the listed Reserved Instances.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance listing state.

" + } + }, + "com.amazonaws.ec2#InstanceCountList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceCount", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceCreditSpecification": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CpuCredits", + "smithy.api#documentation": "

The credit option for CPU usage of the instance.

\n

Valid values: standard | unlimited\n

", + "smithy.api#xmlName": "cpuCredits" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the credit option for CPU usage of a burstable performance instance.

" + } + }, + "com.amazonaws.ec2#InstanceCreditSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceCreditSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceCreditSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceCreditSpecificationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceCreditSpecificationRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The credit option for CPU usage of the instance.

\n

Valid values: standard | unlimited\n

\n

T3 instances with host tenancy do not support the unlimited\n CPU credit option.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the credit option for CPU usage of a burstable performance instance.

" + } + }, + "com.amazonaws.ec2#InstanceEventId": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceEventWindow": { + "type": "structure", + "members": { + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindowId", + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#xmlName": "instanceEventWindowId" + } + }, + "TimeRanges": { + "target": "com.amazonaws.ec2#InstanceEventWindowTimeRangeList", + "traits": { + "aws.protocols#ec2QueryName": "TimeRangeSet", + "smithy.api#documentation": "

One or more time ranges defined for the event window.

", + "smithy.api#xmlName": "timeRangeSet" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the event window.

", + "smithy.api#xmlName": "name" + } + }, + "CronExpression": { + "target": "com.amazonaws.ec2#InstanceEventWindowCronExpression", + "traits": { + "aws.protocols#ec2QueryName": "CronExpression", + "smithy.api#documentation": "

The cron expression defined for the event window.

", + "smithy.api#xmlName": "cronExpression" + } + }, + "AssociationTarget": { + "target": "com.amazonaws.ec2#InstanceEventWindowAssociationTarget", + "traits": { + "aws.protocols#ec2QueryName": "AssociationTarget", + "smithy.api#documentation": "

One or more targets associated with the event window.

", + "smithy.api#xmlName": "associationTarget" + } + }, + "State": { + "target": "com.amazonaws.ec2#InstanceEventWindowState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the event window.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The instance tags associated with the event window.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The event window.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowAssociationRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances to associate with the event window. If the instance is on a\n Dedicated Host, you can't specify the Instance ID parameter; you must use the Dedicated\n Host ID parameter.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "InstanceTags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "smithy.api#documentation": "

The instance tags to associate with the event window. Any instances associated with the\n tags will be associated with the event window.

\n

Note that while you can't create tag keys beginning with aws:, you can\n specify existing Amazon Web Services managed tag keys (with the aws: prefix) when specifying\n them as targets to associate with the event window.

", + "smithy.api#xmlName": "InstanceTag" + } + }, + "DedicatedHostIds": { + "target": "com.amazonaws.ec2#DedicatedHostIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Dedicated Hosts to associate with the event window.

", + "smithy.api#xmlName": "DedicatedHostId" + } + } + }, + "traits": { + "smithy.api#documentation": "

One or more targets associated with the specified event window. Only one\n type of target (instance ID, instance tag, or Dedicated Host ID)\n can be associated with an event window.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowAssociationTarget": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceIdSet", + "smithy.api#documentation": "

The IDs of the instances associated with the event window.

", + "smithy.api#xmlName": "instanceIdSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The instance tags associated with the event window. Any instances associated with the\n tags will be associated with the event window.

\n

Note that while you can't create tag keys beginning with aws:, you can\n specify existing Amazon Web Services managed tag keys (with the aws: prefix) when specifying\n them as targets to associate with the event window.

", + "smithy.api#xmlName": "tagSet" + } + }, + "DedicatedHostIds": { + "target": "com.amazonaws.ec2#DedicatedHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "DedicatedHostIdSet", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts associated with the event window.

", + "smithy.api#xmlName": "dedicatedHostIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

One or more targets associated with the event window.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowCronExpression": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceEventWindowDisassociationRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the instances to disassociate from the event window.

", + "smithy.api#xmlName": "InstanceId" + } + }, + "InstanceTags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "smithy.api#documentation": "

The instance tags to disassociate from the event window. Any instances associated with\n the tags will be disassociated from the event window.

", + "smithy.api#xmlName": "InstanceTag" + } + }, + "DedicatedHostIds": { + "target": "com.amazonaws.ec2#DedicatedHostIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the Dedicated Hosts to disassociate from the event window.

", + "smithy.api#xmlName": "DedicatedHostId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The targets to disassociate from the specified event window.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowId": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceEventWindowIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "smithy.api#xmlName": "InstanceEventWindowId" + } + } + }, + "com.amazonaws.ec2#InstanceEventWindowSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceEventWindow", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceEventWindowState": { + "type": "enum", + "members": { + "creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#InstanceEventWindowStateChange": { + "type": "structure", + "members": { + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindowId", + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#xmlName": "instanceEventWindowId" + } + }, + "State": { + "target": "com.amazonaws.ec2#InstanceEventWindowState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the event window.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of the event window.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowTimeRange": { + "type": "structure", + "members": { + "StartWeekDay": { + "target": "com.amazonaws.ec2#WeekDay", + "traits": { + "aws.protocols#ec2QueryName": "StartWeekDay", + "smithy.api#documentation": "

The day on which the time range begins.

", + "smithy.api#xmlName": "startWeekDay" + } + }, + "StartHour": { + "target": "com.amazonaws.ec2#Hour", + "traits": { + "aws.protocols#ec2QueryName": "StartHour", + "smithy.api#documentation": "

The hour when the time range begins.

", + "smithy.api#xmlName": "startHour" + } + }, + "EndWeekDay": { + "target": "com.amazonaws.ec2#WeekDay", + "traits": { + "aws.protocols#ec2QueryName": "EndWeekDay", + "smithy.api#documentation": "

The day on which the time range ends.

", + "smithy.api#xmlName": "endWeekDay" + } + }, + "EndHour": { + "target": "com.amazonaws.ec2#Hour", + "traits": { + "aws.protocols#ec2QueryName": "EndHour", + "smithy.api#documentation": "

The hour when the time range ends.

", + "smithy.api#xmlName": "endHour" + } + } + }, + "traits": { + "smithy.api#documentation": "

The start day and time and the end day and time of the time range, in UTC.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowTimeRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceEventWindowTimeRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceEventWindowTimeRangeRequest": { + "type": "structure", + "members": { + "StartWeekDay": { + "target": "com.amazonaws.ec2#WeekDay", + "traits": { + "smithy.api#documentation": "

The day on which the time range begins.

" + } + }, + "StartHour": { + "target": "com.amazonaws.ec2#Hour", + "traits": { + "smithy.api#documentation": "

The hour when the time range begins.

" + } + }, + "EndWeekDay": { + "target": "com.amazonaws.ec2#WeekDay", + "traits": { + "smithy.api#documentation": "

The day on which the time range ends.

" + } + }, + "EndHour": { + "target": "com.amazonaws.ec2#Hour", + "traits": { + "smithy.api#documentation": "

The hour when the time range ends.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The start day and time and the end day and time of the time range, in UTC.

" + } + }, + "com.amazonaws.ec2#InstanceEventWindowTimeRangeRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceEventWindowTimeRangeRequest" + } + }, + "com.amazonaws.ec2#InstanceExportDetails": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the resource being exported.

", + "smithy.api#xmlName": "instanceId" + } + }, + "TargetEnvironment": { + "target": "com.amazonaws.ec2#ExportEnvironment", + "traits": { + "aws.protocols#ec2QueryName": "TargetEnvironment", + "smithy.api#documentation": "

The target virtualization environment.

", + "smithy.api#xmlName": "targetEnvironment" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance to export.

" + } + }, + "com.amazonaws.ec2#InstanceFamilyCreditSpecification": { + "type": "structure", + "members": { + "InstanceFamily": { + "target": "com.amazonaws.ec2#UnlimitedSupportedInstanceFamily", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family.

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CpuCredits", + "smithy.api#documentation": "

The default credit option for CPU usage of the instance family. Valid values are\n standard and unlimited.

", + "smithy.api#xmlName": "cpuCredits" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the default credit option for CPU usage of a burstable performance instance\n family.

" + } + }, + "com.amazonaws.ec2#InstanceGeneration": { + "type": "enum", + "members": { + "CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "current" + } + }, + "PREVIOUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "previous" + } + } + } + }, + "com.amazonaws.ec2#InstanceGenerationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceGeneration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceHealthStatus": { + "type": "enum", + "members": { + "HEALTHY_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "healthy" + } + }, + "UNHEALTHY_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unhealthy" + } + } + } + }, + "com.amazonaws.ec2#InstanceId": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceIdForResolver": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#xmlName": "InstanceId" + } + } + }, + "com.amazonaws.ec2#InstanceIdUpdateStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, + "com.amazonaws.ec2#InstanceIdWithVolumeResolver": { + "type": "string" + }, + "com.amazonaws.ec2#InstanceIdsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceImageMetadata": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "LaunchTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTime", + "smithy.api#documentation": "

The time the instance was launched.

", + "smithy.api#xmlName": "launchTime" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone or Local Zone of the instance.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "ZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone or Local Zone of the instance.

", + "smithy.api#xmlName": "zoneId" + } + }, + "State": { + "target": "com.amazonaws.ec2#InstanceState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceState", + "smithy.api#documentation": "

The current state of the instance.

", + "smithy.api#xmlName": "instanceState" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the instance.

", + "smithy.api#xmlName": "instanceOwnerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the instance.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ImageMetadata": { + "target": "com.amazonaws.ec2#ImageMetadata", + "traits": { + "aws.protocols#ec2QueryName": "ImageMetadata", + "smithy.api#documentation": "

Information about the AMI used to launch the instance.

", + "smithy.api#xmlName": "imageMetadata" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The entity that manages the instance.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the instance and the AMI used to launch the instance.

" + } + }, + "com.amazonaws.ec2#InstanceImageMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceImageMetadata", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceInterruptionBehavior": { + "type": "enum", + "members": { + "hibernate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hibernate" + } + }, + "stop": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stop" + } + }, + "terminate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminate" + } + } + } + }, + "com.amazonaws.ec2#InstanceIpv4Prefix": { + "type": "structure", + "members": { + "Ipv4Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4Prefix", + "smithy.api#documentation": "

One or more IPv4 prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv4Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an IPv4 prefix.

" + } + }, + "com.amazonaws.ec2#InstanceIpv4PrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceIpv4Prefix", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceIpv6Address": { + "type": "structure", + "members": { + "Ipv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Address", + "smithy.api#documentation": "

The IPv6 address.

", + "smithy.api#xmlName": "ipv6Address" + } + }, + "IsPrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPrimaryIpv6", + "smithy.api#documentation": "

Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. \n For more information, see RunInstances.

", + "smithy.api#xmlName": "isPrimaryIpv6" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address.

" + } + }, + "com.amazonaws.ec2#InstanceIpv6AddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceIpv6Address", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceIpv6AddressListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressRequest", + "traits": { + "smithy.api#xmlName": "InstanceIpv6Address" + } + } + }, + "com.amazonaws.ec2#InstanceIpv6AddressRequest": { + "type": "structure", + "members": { + "Ipv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 address.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address.

" + } + }, + "com.amazonaws.ec2#InstanceIpv6Prefix": { + "type": "structure", + "members": { + "Ipv6Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Prefix", + "smithy.api#documentation": "

One or more IPv6 prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv6Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an IPv6 prefix.

" + } + }, + "com.amazonaws.ec2#InstanceIpv6PrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceIpv6Prefix", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceLifecycle": { + "type": "enum", + "members": { + "SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + }, + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + }, + "INTERRUPTIBLE_CAPACITY_RESERVATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interruptible-capacity-reservation" + } + }, + "CAPACITY_BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + } + } + }, + "com.amazonaws.ec2#InstanceLifecycleType": { + "type": "enum", + "members": { + "spot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + }, + "scheduled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "capacity_block": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "interruptible_capacity_reservation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interruptible-capacity-reservation" + } + } + } + }, + "com.amazonaws.ec2#InstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Instance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceMaintenanceOptions": { + "type": "structure", + "members": { + "AutoRecovery": { + "target": "com.amazonaws.ec2#InstanceAutoRecoveryState", + "traits": { + "aws.protocols#ec2QueryName": "AutoRecovery", + "smithy.api#documentation": "

Provides information on the current automatic recovery behavior of your\n instance.

", + "smithy.api#xmlName": "autoRecovery" + } + }, + "RebootMigration": { + "target": "com.amazonaws.ec2#InstanceRebootMigrationState", + "traits": { + "aws.protocols#ec2QueryName": "RebootMigration", + "smithy.api#documentation": "

Specifies whether to attempt reboot migration during a user-initiated reboot of an\n instance that has a scheduled system-reboot event:

\n
    \n
  • \n

    \n default - Amazon EC2 attempts to migrate the instance to\n new hardware (reboot migration). If successful, the system-reboot\n event is cleared. If unsuccessful, an in-place reboot occurs and the event\n remains scheduled.

    \n
  • \n
  • \n

    \n disabled - Amazon EC2 keeps the instance on the same\n hardware (in-place reboot). The system-reboot event remains\n scheduled.

    \n
  • \n
\n

This setting only applies to supported instances that have a scheduled reboot event.\n For more information, see Enable or disable reboot migration in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "rebootMigration" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maintenance options for the instance.

" + } + }, + "com.amazonaws.ec2#InstanceMaintenanceOptionsRequest": { + "type": "structure", + "members": { + "AutoRecovery": { + "target": "com.amazonaws.ec2#InstanceAutoRecoveryState", + "traits": { + "smithy.api#documentation": "

Disables the automatic recovery behavior of your instance or sets it to default. For\n more information, see Simplified automatic recovery.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maintenance options for the instance.

" + } + }, + "com.amazonaws.ec2#InstanceMarketOptionsRequest": { + "type": "structure", + "members": { + "MarketType": { + "target": "com.amazonaws.ec2#MarketType", + "traits": { + "smithy.api#documentation": "

The market type.

" + } + }, + "SpotOptions": { + "target": "com.amazonaws.ec2#SpotMarketOptions", + "traits": { + "smithy.api#documentation": "

The options for Spot Instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the market (purchasing) option for the instances.

" + } + }, + "com.amazonaws.ec2#InstanceMatchCriteria": { + "type": "enum", + "members": { + "open": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open" + } + }, + "targeted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "targeted" + } + } + } + }, + "com.amazonaws.ec2#InstanceMetadataDefaultsResponse": { + "type": "structure", + "members": { + "HttpTokens": { + "target": "com.amazonaws.ec2#HttpTokensState", + "traits": { + "aws.protocols#ec2QueryName": "HttpTokens", + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional – IMDSv2 is optional, which means that you can\n use either IMDSv2 or IMDSv1.

    \n
  • \n
  • \n

    \n required – IMDSv2 is required, which means that IMDSv1 is\n disabled, and you must use IMDSv2.

    \n
  • \n
", + "smithy.api#xmlName": "httpTokens" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "aws.protocols#ec2QueryName": "HttpPutResponseHopLimit", + "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel.

", + "smithy.api#xmlName": "httpPutResponseHopLimit" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", + "traits": { + "aws.protocols#ec2QueryName": "HttpEndpoint", + "smithy.api#documentation": "

Indicates whether the IMDS endpoint for an instance is enabled or disabled. When disabled, the instance\n metadata can't be accessed.

", + "smithy.api#xmlName": "httpEndpoint" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#InstanceMetadataTagsState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMetadataTags", + "smithy.api#documentation": "

Indicates whether access to instance tags from the instance metadata is enabled or\n disabled. For more information, see View tags for your EC2\n instances using instance metadata in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "instanceMetadataTags" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the IMDS default settings. Possible values include:

\n
    \n
  • \n

    \n account - The IMDS default settings are managed by the\n account.

    \n
  • \n
  • \n

    \n declarative-policy - The IMDS default settings are managed\n by a declarative policy and can't be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + }, + "ManagedExceptionMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ManagedExceptionMessage", + "smithy.api#documentation": "

The customized exception message that is specified in the declarative policy.

", + "smithy.api#xmlName": "managedExceptionMessage" + } + }, + "HttpTokensEnforced": { + "target": "com.amazonaws.ec2#HttpTokensEnforcedState", + "traits": { + "aws.protocols#ec2QueryName": "HttpTokensEnforced", + "smithy.api#documentation": "

Indicates whether to enforce the requirement of IMDSv2 on an instance at the time of\n launch. When enforcement is enabled, the instance can't launch unless IMDSv2\n (HttpTokens) is set to required.

", + "smithy.api#xmlName": "httpTokensEnforced" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default instance metadata service (IMDS) settings that were set at the account\n level in the specified Amazon Web Services
 Region.

" + } + }, + "com.amazonaws.ec2#InstanceMetadataEndpointState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#InstanceMetadataOptionsRequest": { + "type": "structure", + "members": { + "HttpTokens": { + "target": "com.amazonaws.ec2#HttpTokensState", + "traits": { + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional, which means that you can use\n either IMDSv2 or IMDSv1.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required, which means that IMDSv1 is\n disabled, and you must use IMDSv2.

    \n
  • \n
\n

Default:

\n
    \n
  • \n

    If the value of ImdsSupport for the Amazon Machine Image (AMI)\n for your instance is v2.0 and the account level default is set to\n no-preference, the default is required.

    \n
  • \n
  • \n

    If the value of ImdsSupport for the Amazon Machine Image (AMI)\n for your instance is v2.0, but the account level default is set to\n V1 or V2, the default is optional.

    \n
  • \n
\n

The default value can also be affected by other combinations of parameters. For more\n information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel.

\n

Possible values: Integers from 1 to 64

" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", + "traits": { + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances.

\n

If you specify a value of disabled, you cannot access your instance\n metadata.

\n

Default: enabled\n

" + } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#InstanceMetadataProtocolState", + "traits": { + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service.

\n

Default: disabled\n

" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#InstanceMetadataTagsState", + "traits": { + "smithy.api#documentation": "

Set to enabled to allow access to instance tags from the instance\n metadata. Set to disabled to turn off access to instance tags from the\n instance metadata. For more information, see View tags for your EC2\n instances using instance metadata.

\n

Default: disabled\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metadata options for the instance.

" + } + }, + "com.amazonaws.ec2#InstanceMetadataOptionsResponse": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#InstanceMetadataOptionsState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the metadata option changes.

\n

\n pending - The metadata options are being updated and the instance is not\n ready to process metadata traffic with the new selection.

\n

\n applied - The metadata options have been successfully applied on the\n instance.

", + "smithy.api#xmlName": "state" + } + }, + "HttpTokens": { + "target": "com.amazonaws.ec2#HttpTokensState", + "traits": { + "aws.protocols#ec2QueryName": "HttpTokens", + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional, which means that you can use\n either IMDSv2 or IMDSv1.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required, which means that IMDSv1 is\n disabled, and you must use IMDSv2.

    \n
  • \n
", + "smithy.api#xmlName": "httpTokens" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "HttpPutResponseHopLimit", + "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel.

\n

Possible values: Integers from 1 to 64\n

", + "smithy.api#xmlName": "httpPutResponseHopLimit" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", + "traits": { + "aws.protocols#ec2QueryName": "HttpEndpoint", + "smithy.api#documentation": "

Indicates whether the HTTP metadata endpoint on your instances is enabled or\n disabled.

\n

If the value is disabled, you cannot access your instance\n metadata.

", + "smithy.api#xmlName": "httpEndpoint" + } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#InstanceMetadataProtocolState", + "traits": { + "aws.protocols#ec2QueryName": "HttpProtocolIpv6", + "smithy.api#documentation": "

Indicates whether the IPv6 endpoint for the instance metadata service is enabled or\n disabled.

\n

Default: disabled\n

", + "smithy.api#xmlName": "httpProtocolIpv6" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#InstanceMetadataTagsState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMetadataTags", + "smithy.api#documentation": "

Indicates whether access to instance tags from the instance metadata is enabled or\n disabled. For more information, see View tags for your EC2\n instances using instance metadata.

", + "smithy.api#xmlName": "instanceMetadataTags" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metadata options for the instance.

" + } + }, + "com.amazonaws.ec2#InstanceMetadataOptionsState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "applied": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "applied" + } + } + } + }, + "com.amazonaws.ec2#InstanceMetadataProtocolState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#InstanceMetadataTagsState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#InstanceMonitoring": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#Monitoring", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

The monitoring for the instance.

", + "smithy.api#xmlName": "monitoring" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the monitoring of an instance.

" + } + }, + "com.amazonaws.ec2#InstanceMonitoringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceMonitoring", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceNetworkInterface": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The association information for an Elastic IPv4 associated with the network\n interface.

", + "smithy.api#xmlName": "association" + } + }, + "Attachment": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

The network interface attachment.

", + "smithy.api#xmlName": "attachment" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description.

", + "smithy.api#xmlName": "description" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups.

", + "smithy.api#xmlName": "groupSet" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressesSet", + "smithy.api#documentation": "

The IPv6 addresses associated with the network interface.

", + "smithy.api#xmlName": "ipv6AddressesSet" + } + }, + "MacAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MacAddress", + "smithy.api#documentation": "

The MAC address.

", + "smithy.api#xmlName": "macAddress" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that created the network interface.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private DNS name.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The IPv4 address of the network interface within the subnet.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#InstancePrivateIpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressesSet", + "smithy.api#documentation": "

The private IPv4 addresses associated with the network interface.

", + "smithy.api#xmlName": "privateIpAddressesSet" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "Status": { + "target": "com.amazonaws.ec2#NetworkInterfaceStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the network interface.

", + "smithy.api#xmlName": "status" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceType", + "smithy.api#documentation": "

The type of network interface.

\n

Valid values: interface | efa | efa-only | evs |\n trunk\n

", + "smithy.api#xmlName": "interfaceType" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#InstanceIpv4PrefixList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4PrefixSet", + "smithy.api#documentation": "

The IPv4 delegated prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "ipv4PrefixSet" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#InstanceIpv6PrefixList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PrefixSet", + "smithy.api#documentation": "

The IPv6 delegated prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "ipv6PrefixSet" + } + }, + "ConnectionTrackingConfiguration": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionTrackingConfiguration", + "smithy.api#documentation": "

A security group connection tracking configuration that enables you to set the timeout\n for connection tracking on an Elastic network interface. For more information, see\n Connection tracking timeouts in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "connectionTrackingConfiguration" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the network interface.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface.

" + } + }, + "com.amazonaws.ec2#InstanceNetworkInterfaceAssociation": { + "type": "structure", + "members": { + "CarrierIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CarrierIp", + "smithy.api#documentation": "

The carrier IP address associated with the network interface.

", + "smithy.api#xmlName": "carrierIp" + } + }, + "CustomerOwnedIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIp", + "smithy.api#documentation": "

The customer-owned IP address associated with the network interface.

", + "smithy.api#xmlName": "customerOwnedIp" + } + }, + "IpOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpOwnerId", + "smithy.api#documentation": "

The ID of the owner of the Elastic IP address.

", + "smithy.api#xmlName": "ipOwnerId" + } + }, + "PublicDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicDnsName", + "smithy.api#documentation": "

The public DNS name.

", + "smithy.api#xmlName": "publicDnsName" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The public IP address or Elastic IP address bound to the network interface.

", + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes association information for an Elastic IP address (IPv4).

" + } + }, + "com.amazonaws.ec2#InstanceNetworkInterfaceAttachment": { + "type": "structure", + "members": { + "AttachTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The time stamp when the attachment initiated.

", + "smithy.api#xmlName": "attachTime" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the network interface attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the network interface is deleted when the instance is\n terminated.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The index of the device on the instance for the network interface attachment.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state.

", + "smithy.api#xmlName": "status" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#InstanceAttachmentEnaSrdSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdSpecification", + "smithy.api#documentation": "

Contains the ENA Express settings for the network interface that's attached to\n the instance.

", + "smithy.api#xmlName": "enaSrdSpecification" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EnaQueueCount", + "smithy.api#documentation": "

The number of ENA queues created with the instance.

", + "smithy.api#xmlName": "enaQueueCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface attachment.

" + } + }, + "com.amazonaws.ec2#InstanceNetworkInterfaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceNetworkInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceNetworkInterfaceSpecification": { + "type": "structure", + "members": { + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssociatePublicIpAddress", + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to an instance you launch in a VPC.\n The public IP address can only be assigned to a network interface for eth0, and can only\n be assigned to a new network interface, not an existing one. You cannot specify more\n than one network interface in the request. If launching into a default subnet, the\n default value is true.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

", + "smithy.api#xmlName": "associatePublicIpAddress" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

If set to true, the interface is deleted when the instance is terminated.\n You can specify true only if creating a new network interface when\n launching an instance.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the network interface. Applies only if creating a network interface\n when launching an instance.

", + "smithy.api#xmlName": "description" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The position of the network interface in the attachment order. A primary network\n interface has a device index of 0.

\n

If you specify a network interface when launching an instance, you must specify the\n device index.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups for the network interface. Applies only if creating a\n network interface when launching an instance.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressCount", + "smithy.api#documentation": "

A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the\n IPv6 addresses from the range of the subnet. You cannot specify this option and the\n option to assign specific IPv6 addresses in the same request. You can specify this\n option if you've specified a minimum number of instances to launch.

", + "smithy.api#xmlName": "ipv6AddressCount" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Addresses", + "smithy.api#documentation": "

The IPv6 addresses to assign to the network interface. You cannot specify this option\n and the option to assign a number of IPv6 addresses in the same request. You cannot\n specify this option if you've specified a minimum number of instances to launch.

", + "smithy.api#xmlName": "ipv6AddressesSet" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

\n

If you are creating a Spot Fleet, omit this parameter because you can’t specify a\n network interface ID in a launch specification.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address of the network interface. Applies only if creating a network\n interface when launching an instance. You cannot specify this option if you're launching\n more than one instance in a RunInstances\n request.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddresses", + "smithy.api#documentation": "

The private IPv4 addresses to assign to the network interface. Only one private IPv4\n address can be designated as primary. You cannot specify this option if you're launching\n more than one instance in a RunInstances\n request.

", + "smithy.api#xmlName": "privateIpAddressesSet" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount", + "smithy.api#documentation": "

The number of secondary private IPv4 addresses. You can’t specify this parameter and\n also specify a secondary private IP address using the PrivateIpAddress\n parameter.

", + "smithy.api#xmlName": "secondaryPrivateIpAddressCount" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet associated with the network interface. Applies only if creating a\n network interface when launching an instance.

", + "smithy.api#xmlName": "subnetId" + } + }, + "AssociateCarrierIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to assign a carrier IP address to the network interface.

\n

You can only assign a carrier IP address to a network interface that is in a subnet in\n a Wavelength Zone. For more information about carrier IP addresses, see Carrier IP address in the Amazon Web Services Wavelength Developer\n Guide.

" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of network interface.

\n

If you specify efa-only, do not assign any IP addresses to the network\n interface. EFA-only network interfaces do not support IP addresses.

\n

Valid values: interface | efa | efa-only\n

" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network card. Some instance types support multiple network cards. The\n primary network interface must be assigned to network card index 0. The default is\n network card index 0.

\n

If you are using RequestSpotInstances to create Spot Instances, omit this parameter because\n you can’t specify the network card index when using this API. To specify the network\n card index, use RunInstances.

" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixList", + "traits": { + "smithy.api#documentation": "

The IPv4 delegated prefixes to be assigned to the network interface. You cannot use\n this option if you use the Ipv4PrefixCount option.

", + "smithy.api#xmlName": "Ipv4Prefix" + } + }, + "Ipv4PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv4 delegated prefixes to be automatically assigned to the network\n interface. You cannot use this option if you use the Ipv4Prefix\n option.

" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#Ipv6PrefixList", + "traits": { + "smithy.api#documentation": "

The IPv6 delegated prefixes to be assigned to the network interface. You cannot use\n this option if you use the Ipv6PrefixCount option.

", + "smithy.api#xmlName": "Ipv6Prefix" + } + }, + "Ipv6PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 delegated prefixes to be automatically assigned to the network\n interface. You cannot use this option if you use the Ipv6Prefix\n option.

" + } + }, + "PrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances.

" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#EnaSrdSpecificationRequest", + "traits": { + "smithy.api#documentation": "

Specifies the ENA Express settings for the network interface that's attached to\n the instance.

" + } + }, + "ConnectionTrackingSpecification": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecificationRequest", + "traits": { + "smithy.api#documentation": "

A security group connection tracking specification that enables you to set the timeout\n for connection tracking on an Elastic network interface. For more information, see\n Connection tracking timeouts in the\n Amazon EC2 User Guide.

" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of ENA queues to be created with the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface.

" + } + }, + "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceNetworkPerformanceOptions": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

When you configure network bandwidth weighting, you can boost your baseline bandwidth for either \n \t\tnetworking or EBS by up to 25%. The total available baseline bandwidth for your instance remains \n \t\tthe same. The default option uses the standard bandwidth configuration for your instance type.

", + "smithy.api#xmlName": "bandwidthWeighting" + } + } + }, + "traits": { + "smithy.api#documentation": "

With network performance options, you can adjust your bandwidth preferences to meet \n \t\tthe needs of the workload that runs on your instance.

" + } + }, + "com.amazonaws.ec2#InstanceNetworkPerformanceOptionsRequest": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#documentation": "

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, \n \t\tas follows:

\n
\n
default
\n
\n

This option uses the standard bandwidth configuration for your instance type.

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS baseline \n \t\t\t\t\tbandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking baseline \n \t\t\t\t\tbandwidth.

\n
\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configure network performance options for your instance that are geared towards performance \n \t\timprovements based on the workload that it runs.

" + } + }, + "com.amazonaws.ec2#InstancePrivateIpAddress": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The association information for an Elastic IP address for the network\n interface.

", + "smithy.api#xmlName": "association" + } + }, + "Primary": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Primary", + "smithy.api#documentation": "

Indicates whether this IPv4 address is the primary private IP address of the network\n interface.

", + "smithy.api#xmlName": "primary" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private IPv4 DNS name.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address of the network interface.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address.

" + } + }, + "com.amazonaws.ec2#InstancePrivateIpAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstancePrivateIpAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceRebootMigrationState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#InstanceRequirements": { + "type": "structure", + "members": { + "VCpuCount": { + "target": "com.amazonaws.ec2#VCpuCountRange", + "traits": { + "aws.protocols#ec2QueryName": "VCpuCount", + "smithy.api#documentation": "

The minimum and maximum number of vCPUs.

", + "smithy.api#xmlName": "vCpuCount" + } + }, + "MemoryMiB": { + "target": "com.amazonaws.ec2#MemoryMiB", + "traits": { + "aws.protocols#ec2QueryName": "MemoryMiB", + "smithy.api#documentation": "

The minimum and maximum amount of memory, in MiB.

", + "smithy.api#xmlName": "memoryMiB" + } + }, + "CpuManufacturers": { + "target": "com.amazonaws.ec2#CpuManufacturerSet", + "traits": { + "aws.protocols#ec2QueryName": "CpuManufacturerSet", + "smithy.api#documentation": "

The CPU manufacturers to include.

\n
    \n
  • \n

    For instance types with Intel CPUs, specify intel.

    \n
  • \n
  • \n

    For instance types with AMD CPUs, specify amd.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services CPUs, specify amazon-web-services.

    \n
  • \n
  • \n

    For instance types with Apple CPUs, specify apple.

    \n
  • \n
\n \n

Don't confuse the CPU manufacturer with the CPU architecture. Instances will \n be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you \n specify in your launch template.

\n
\n

Default: Any manufacturer

", + "smithy.api#xmlName": "cpuManufacturerSet" + } + }, + "MemoryGiBPerVCpu": { + "target": "com.amazonaws.ec2#MemoryGiBPerVCpu", + "traits": { + "aws.protocols#ec2QueryName": "MemoryGiBPerVCpu", + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU, in GiB.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "memoryGiBPerVCpu" + } + }, + "ExcludedInstanceTypes": { + "target": "com.amazonaws.ec2#ExcludedInstanceTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "ExcludedInstanceTypeSet", + "smithy.api#documentation": "

The instance types to exclude.

\n

You can use strings with one or more wild cards, represented by\n an asterisk (*), to exclude an instance type, size, or generation. The\n following are examples: m5.8xlarge, c5*.*, m5a.*,\n r*, *3*.

\n

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance\n family, which includes all C5a and C5n instance types. If you specify\n m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n\n instance types.

\n \n

If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.

\n
\n

Default: No excluded instance types

", + "smithy.api#xmlName": "excludedInstanceTypeSet" + } + }, + "InstanceGenerations": { + "target": "com.amazonaws.ec2#InstanceGenerationSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceGenerationSet", + "smithy.api#documentation": "

Indicates whether current or previous generation instance types are included. The\n current generation instance types are recommended for use. Current generation instance types are\n typically the latest two to three generations in each instance family. For more\n information, see Instance types in the\n Amazon EC2 User Guide.

\n

For current generation instance types, specify current.

\n

For previous generation instance types, specify previous.

\n

Default: Current and previous generation instance types

", + "smithy.api#xmlName": "instanceGenerationSet" + } + }, + "SpotMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SpotMaxPricePercentageOverLowestPrice", + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the per-vCPU\n or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
\n

Default: 100\n

", + "smithy.api#xmlName": "spotMaxPricePercentageOverLowestPrice" + } + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandMaxPricePercentageOverLowestPrice", + "smithy.api#documentation": "

[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher\n than an identified On-Demand price. The identified On-Demand price is the price of the\n lowest priced current generation C, M, or R instance type with your specified attributes.\n When Amazon EC2 selects instance types with your attributes, it will exclude instance types\n whose price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 20\n

", + "smithy.api#xmlName": "onDemandMaxPricePercentageOverLowestPrice" + } + }, + "BareMetal": { + "target": "com.amazonaws.ec2#BareMetal", + "traits": { + "aws.protocols#ec2QueryName": "BareMetal", + "smithy.api#documentation": "

Indicates whether bare metal instance types must be included, excluded, or required.

\n
    \n
  • \n

    To include bare metal instance types, specify included.

    \n
  • \n
  • \n

    To require only bare metal instance types, specify required.

    \n
  • \n
  • \n

    To exclude bare metal instance types, specify excluded.

    \n
  • \n
\n

Default: excluded\n

", + "smithy.api#xmlName": "bareMetal" + } + }, + "BurstablePerformance": { + "target": "com.amazonaws.ec2#BurstablePerformance", + "traits": { + "aws.protocols#ec2QueryName": "BurstablePerformance", + "smithy.api#documentation": "

Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see \n Burstable performance instances.

\n
    \n
  • \n

    To include burstable performance instance types, specify included.

    \n
  • \n
  • \n

    To require only burstable performance instance types, specify required.

    \n
  • \n
  • \n

    To exclude burstable performance instance types, specify excluded.

    \n
  • \n
\n

Default: excluded\n

", + "smithy.api#xmlName": "burstablePerformance" + } + }, + "RequireHibernateSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "RequireHibernateSupport", + "smithy.api#documentation": "

Indicates whether instance types must support hibernation for On-Demand\n Instances.

\n

This parameter is not supported for GetSpotPlacementScores.

\n

Default: false\n

", + "smithy.api#xmlName": "requireHibernateSupport" + } + }, + "NetworkInterfaceCount": { + "target": "com.amazonaws.ec2#NetworkInterfaceCount", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceCount", + "smithy.api#documentation": "

The minimum and maximum number of network interfaces.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "networkInterfaceCount" + } + }, + "LocalStorage": { + "target": "com.amazonaws.ec2#LocalStorage", + "traits": { + "aws.protocols#ec2QueryName": "LocalStorage", + "smithy.api#documentation": "

Indicates whether instance types with instance store volumes are included, excluded, or required. For more information,\n Amazon\n EC2 instance store in the Amazon EC2 User Guide.

\n
    \n
  • \n

    To include instance types with instance store volumes, specify\n included.

    \n
  • \n
  • \n

    To require only instance types with instance store volumes, specify\n required.

    \n
  • \n
  • \n

    To exclude instance types with instance store volumes, specify\n excluded.

    \n
  • \n
\n

Default: included\n

", + "smithy.api#xmlName": "localStorage" + } + }, + "LocalStorageTypes": { + "target": "com.amazonaws.ec2#LocalStorageTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalStorageTypeSet", + "smithy.api#documentation": "

The type of local storage that is required.

\n
    \n
  • \n

    For instance types with hard disk drive (HDD) storage, specify hdd.

    \n
  • \n
  • \n

    For instance types with solid state drive (SSD) storage, specify\n ssd.

    \n
  • \n
\n

Default: hdd and ssd\n

", + "smithy.api#xmlName": "localStorageTypeSet" + } + }, + "TotalLocalStorageGB": { + "target": "com.amazonaws.ec2#TotalLocalStorageGB", + "traits": { + "aws.protocols#ec2QueryName": "TotalLocalStorageGB", + "smithy.api#documentation": "

The minimum and maximum amount of total local storage, in GB.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "totalLocalStorageGB" + } + }, + "BaselineEbsBandwidthMbps": { + "target": "com.amazonaws.ec2#BaselineEbsBandwidthMbps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineEbsBandwidthMbps", + "smithy.api#documentation": "

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see\n Amazon\n EBS–optimized instances in the Amazon EC2 User Guide.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "baselineEbsBandwidthMbps" + } + }, + "AcceleratorTypes": { + "target": "com.amazonaws.ec2#AcceleratorTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "AcceleratorTypeSet", + "smithy.api#documentation": "

The accelerator types that must be on the instance type.

\n
    \n
  • \n

    For instance types with FPGA accelerators, specify fpga.

    \n
  • \n
  • \n

    For instance types with GPU accelerators, specify gpu.

    \n
  • \n
  • \n

    For instance types with Inference accelerators, specify inference.

    \n
  • \n
  • \n

    For instance types with Media accelerators, specify media.

    \n
  • \n
\n

Default: Any accelerator type

", + "smithy.api#xmlName": "acceleratorTypeSet" + } + }, + "AcceleratorCount": { + "target": "com.amazonaws.ec2#AcceleratorCount", + "traits": { + "aws.protocols#ec2QueryName": "AcceleratorCount", + "smithy.api#documentation": "

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on\n an instance.

\n

To exclude accelerator-enabled instance types, set Max to 0.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "acceleratorCount" + } + }, + "AcceleratorManufacturers": { + "target": "com.amazonaws.ec2#AcceleratorManufacturerSet", + "traits": { + "aws.protocols#ec2QueryName": "AcceleratorManufacturerSet", + "smithy.api#documentation": "

Indicates whether instance types must have accelerators by specific manufacturers.

\n
    \n
  • \n

    For instance types with Amazon Web Services devices, specify amazon-web-services.

    \n
  • \n
  • \n

    For instance types with AMD devices, specify amd.

    \n
  • \n
  • \n

    For instance types with Habana devices, specify habana.

    \n
  • \n
  • \n

    For instance types with NVIDIA devices, specify nvidia.

    \n
  • \n
  • \n

    For instance types with Xilinx devices, specify xilinx.

    \n
  • \n
\n

Default: Any manufacturer

", + "smithy.api#xmlName": "acceleratorManufacturerSet" + } + }, + "AcceleratorNames": { + "target": "com.amazonaws.ec2#AcceleratorNameSet", + "traits": { + "aws.protocols#ec2QueryName": "AcceleratorNameSet", + "smithy.api#documentation": "

The accelerators that must be on the instance type.

\n
    \n
  • \n

    For instance types with NVIDIA A10G GPUs, specify a10g.

    \n
  • \n
  • \n

    For instance types with NVIDIA A100 GPUs, specify a100.

    \n
  • \n
  • \n

    For instance types with NVIDIA H100 GPUs, specify h100.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Inferentia chips, specify inferentia.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2.

    \n
  • \n
  • \n

    For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205.

    \n
  • \n
  • \n

    For instance types with NVIDIA GRID K520 GPUs, specify k520.

    \n
  • \n
  • \n

    For instance types with NVIDIA K80 GPUs, specify k80.

    \n
  • \n
  • \n

    For instance types with NVIDIA L4 GPUs, specify l4.

    \n
  • \n
  • \n

    For instance types with NVIDIA L40S GPUs, specify l40s.

    \n
  • \n
  • \n

    For instance types with NVIDIA M60 GPUs, specify m60.

    \n
  • \n
  • \n

    For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Trainium chips, specify trainium.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Trainium2 chips, specify trainium2.

    \n
  • \n
  • \n

    For instance types with NVIDIA T4 GPUs, specify t4.

    \n
  • \n
  • \n

    For instance types with NVIDIA T4G GPUs, specify t4g.

    \n
  • \n
  • \n

    For instance types with Xilinx U30 cards, specify u30.

    \n
  • \n
  • \n

    For instance types with Xilinx VU9P FPGAs, specify vu9p.

    \n
  • \n
  • \n

    For instance types with NVIDIA V100 GPUs, specify v100.

    \n
  • \n
\n

Default: Any accelerator

", + "smithy.api#xmlName": "acceleratorNameSet" + } + }, + "AcceleratorTotalMemoryMiB": { + "target": "com.amazonaws.ec2#AcceleratorTotalMemoryMiB", + "traits": { + "aws.protocols#ec2QueryName": "AcceleratorTotalMemoryMiB", + "smithy.api#documentation": "

The minimum and maximum amount of total accelerator memory, in MiB.

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "acceleratorTotalMemoryMiB" + } + }, + "NetworkBandwidthGbps": { + "target": "com.amazonaws.ec2#NetworkBandwidthGbps", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBandwidthGbps", + "smithy.api#documentation": "

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

\n

Default: No minimum or maximum limits

", + "smithy.api#xmlName": "networkBandwidthGbps" + } + }, + "AllowedInstanceTypes": { + "target": "com.amazonaws.ec2#AllowedInstanceTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "AllowedInstanceTypeSet", + "smithy.api#documentation": "

The instance types to apply your specified attributes against. All other instance types \n are ignored, even if they match your specified attributes.

\n

You can use strings with one or more wild cards, represented by\n an asterisk (*), to allow an instance type, size, or generation. The\n following are examples: m5.8xlarge, c5*.*, m5a.*,\n r*, *3*.

\n

For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance\n family, which includes all C5a and C5n instance types. If you specify\n m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n\n instance types.

\n \n

If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

\n
\n

Default: All instance types

", + "smithy.api#xmlName": "allowedInstanceTypeSet" + } + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice", + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
", + "smithy.api#xmlName": "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" + } + }, + "BaselinePerformanceFactors": { + "target": "com.amazonaws.ec2#BaselinePerformanceFactors", + "traits": { + "aws.protocols#ec2QueryName": "BaselinePerformanceFactors", + "smithy.api#documentation": "

The baseline performance to consider, using an instance family as a baseline reference.\n The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this\n baseline to guide instance type selection, but there is no guarantee that the selected\n instance types will always exceed the baseline for every application. Currently, this\n parameter only supports CPU performance as a baseline performance factor. For more\n information, see Performance protection in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "baselinePerformanceFactors" + } + }, + "RequireEncryptionInTransit": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "RequireEncryptionInTransit", + "smithy.api#documentation": "

Specifies whether instance types must support encrypting in-transit traffic between\n instances. For more information, including the supported instance types, see Encryption in\n transit in the Amazon EC2 User Guide.

\n

Default: false\n

", + "smithy.api#xmlName": "requireEncryptionInTransit" + } + } + }, + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with these attributes.

\n

You must specify VCpuCount and MemoryMiB. All other attributes\n are optional. Any unspecified optional attribute is set to its default.

\n

When you specify multiple attributes, you get instance types that satisfy all of the\n specified attributes. If you specify multiple values for an attribute, you get instance\n types that satisfy any of the specified values.

\n

To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n you can use one of the following parameters, but not both in the same request:

\n
    \n
  • \n

    \n AllowedInstanceTypes - The instance types to include in the list. All \n other instance types are ignored, even if they match your specified attributes.

    \n
  • \n
  • \n

    \n ExcludedInstanceTypes - The instance types to exclude from the list, \n even if they match your specified attributes.

    \n
  • \n
\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n

Attribute-based instance type selection is only supported when using Auto Scaling\n groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n the launch instance\n wizard or with the RunInstances API, you\n can't specify InstanceRequirements.

\n
\n

For more information, see Create mixed instances group using attribute-based instance type selection in\n the Amazon EC2 Auto Scaling User Guide, and also Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot\n placement score in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#InstanceRequirementsRequest": { + "type": "structure", + "members": { + "VCpuCount": { + "target": "com.amazonaws.ec2#VCpuCountRangeRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The minimum and maximum number of vCPUs.

", + "smithy.api#required": {} + } + }, + "MemoryMiB": { + "target": "com.amazonaws.ec2#MemoryMiBRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The minimum and maximum amount of memory, in MiB.

", + "smithy.api#required": {} + } + }, + "CpuManufacturers": { + "target": "com.amazonaws.ec2#CpuManufacturerSet", + "traits": { + "smithy.api#documentation": "

The CPU manufacturers to include.

\n
    \n
  • \n

    For instance types with Intel CPUs, specify intel.

    \n
  • \n
  • \n

    For instance types with AMD CPUs, specify amd.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services CPUs, specify amazon-web-services.

    \n
  • \n
  • \n

    For instance types with Apple CPUs, specify apple.

    \n
  • \n
\n \n

Don't confuse the CPU manufacturer with the CPU architecture. Instances will \n be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you \n specify in your launch template.

\n
\n

Default: Any manufacturer

", + "smithy.api#xmlName": "CpuManufacturer" + } + }, + "MemoryGiBPerVCpu": { + "target": "com.amazonaws.ec2#MemoryGiBPerVCpuRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU, in GiB.

\n

Default: No minimum or maximum limits

" + } + }, + "ExcludedInstanceTypes": { + "target": "com.amazonaws.ec2#ExcludedInstanceTypeSet", + "traits": { + "smithy.api#documentation": "

The instance types to exclude.

\n

You can use strings with one or more wild cards, represented by\n an asterisk (*), to exclude an instance family, type, size, or generation. The\n following are examples: m5.8xlarge, c5*.*, m5a.*,\n r*, *3*.

\n

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance\n family, which includes all C5a and C5n instance types. If you specify\n m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n\n instance types.

\n \n

If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.

\n
\n

Default: No excluded instance types

", + "smithy.api#xmlName": "ExcludedInstanceType" + } + }, + "InstanceGenerations": { + "target": "com.amazonaws.ec2#InstanceGenerationSet", + "traits": { + "smithy.api#documentation": "

Indicates whether current or previous generation instance types are included. The\n current generation instance types are recommended for use. Current generation instance types are\n typically the latest two to three generations in each instance family. For more\n information, see Instance types in the\n Amazon EC2 User Guide.

\n

For current generation instance types, specify current.

\n

For previous generation instance types, specify previous.

\n

Default: Current and previous generation instance types

", + "smithy.api#xmlName": "InstanceGeneration" + } + }, + "SpotMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than\n an identified Spot price. The identified Spot price is the Spot price of the lowest priced\n current generation C, M, or R instance type with your specified attributes. If no current\n generation C, M, or R instance type matches your attributes, then the identified Spot price\n is from the lowest priced current generation instance types, and failing that, from the\n lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose Spot\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
\n

Default: 100\n

" + } + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than\n an identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. When\n Amazon EC2 selects instance types with your attributes, it will exclude instance types whose\n price exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To indicate no price protection threshold, specify a high value, such as\n 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 20\n

" + } + }, + "BareMetal": { + "target": "com.amazonaws.ec2#BareMetal", + "traits": { + "smithy.api#documentation": "

Indicates whether bare metal instance types must be included, excluded, or required.

\n
    \n
  • \n

    To include bare metal instance types, specify included.

    \n
  • \n
  • \n

    To require only bare metal instance types, specify required.

    \n
  • \n
  • \n

    To exclude bare metal instance types, specify excluded.

    \n
  • \n
\n

Default: excluded\n

" + } + }, + "BurstablePerformance": { + "target": "com.amazonaws.ec2#BurstablePerformance", + "traits": { + "smithy.api#documentation": "

Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see \n Burstable performance instances.

\n
    \n
  • \n

    To include burstable performance instance types, specify included.

    \n
  • \n
  • \n

    To require only burstable performance instance types, specify required.

    \n
  • \n
  • \n

    To exclude burstable performance instance types, specify excluded.

    \n
  • \n
\n

Default: excluded\n

" + } + }, + "RequireHibernateSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether instance types must support hibernation for On-Demand Instances.

\n

This parameter is not supported for GetSpotPlacementScores.

\n

Default: false\n

" + } + }, + "NetworkInterfaceCount": { + "target": "com.amazonaws.ec2#NetworkInterfaceCountRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of network interfaces.

\n

Default: No minimum or maximum limits

" + } + }, + "LocalStorage": { + "target": "com.amazonaws.ec2#LocalStorage", + "traits": { + "smithy.api#documentation": "

Indicates whether instance types with instance store volumes are included, excluded, or required. For more information,\n Amazon\n EC2 instance store in the Amazon EC2 User Guide.

\n
    \n
  • \n

    To include instance types with instance store volumes, specify\n included.

    \n
  • \n
  • \n

    To require only instance types with instance store volumes, specify\n required.

    \n
  • \n
  • \n

    To exclude instance types with instance store volumes, specify\n excluded.

    \n
  • \n
\n

Default: included\n

" + } + }, + "LocalStorageTypes": { + "target": "com.amazonaws.ec2#LocalStorageTypeSet", + "traits": { + "smithy.api#documentation": "

The type of local storage that is required.

\n
    \n
  • \n

    For instance types with hard disk drive (HDD) storage, specify hdd.

    \n
  • \n
  • \n

    For instance types with solid state drive (SSD) storage, specify\n ssd.

    \n
  • \n
\n

Default: hdd and ssd\n

", + "smithy.api#xmlName": "LocalStorageType" + } + }, + "TotalLocalStorageGB": { + "target": "com.amazonaws.ec2#TotalLocalStorageGBRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total local storage, in GB.

\n

Default: No minimum or maximum limits

" + } + }, + "BaselineEbsBandwidthMbps": { + "target": "com.amazonaws.ec2#BaselineEbsBandwidthMbpsRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see\n Amazon\n EBS–optimized instances in the Amazon EC2 User Guide.

\n

Default: No minimum or maximum limits

" + } + }, + "AcceleratorTypes": { + "target": "com.amazonaws.ec2#AcceleratorTypeSet", + "traits": { + "smithy.api#documentation": "

The accelerator types that must be on the instance type.

\n
    \n
  • \n

    For instance types with FPGA accelerators, specify fpga.

    \n
  • \n
  • \n

    For instance types with GPU accelerators, specify gpu.

    \n
  • \n
  • \n

    For instance types with Inference accelerators, specify inference.

    \n
  • \n
  • \n

    For instance types with Media accelerators, specify media.

    \n
  • \n
\n

Default: Any accelerator type

", + "smithy.api#xmlName": "AcceleratorType" + } + }, + "AcceleratorCount": { + "target": "com.amazonaws.ec2#AcceleratorCountRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on\n an instance.

\n

To exclude accelerator-enabled instance types, set Max to 0.

\n

Default: No minimum or maximum limits

" + } + }, + "AcceleratorManufacturers": { + "target": "com.amazonaws.ec2#AcceleratorManufacturerSet", + "traits": { + "smithy.api#documentation": "

Indicates whether instance types must have accelerators by specific manufacturers.

\n
    \n
  • \n

    For instance types with Amazon Web Services devices, specify amazon-web-services.

    \n
  • \n
  • \n

    For instance types with AMD devices, specify amd.

    \n
  • \n
  • \n

    For instance types with Habana devices, specify habana.

    \n
  • \n
  • \n

    For instance types with NVIDIA devices, specify nvidia.

    \n
  • \n
  • \n

    For instance types with Xilinx devices, specify xilinx.

    \n
  • \n
\n

Default: Any manufacturer

", + "smithy.api#xmlName": "AcceleratorManufacturer" + } + }, + "AcceleratorNames": { + "target": "com.amazonaws.ec2#AcceleratorNameSet", + "traits": { + "smithy.api#documentation": "

The accelerators that must be on the instance type.

\n
    \n
  • \n

    For instance types with NVIDIA A10G GPUs, specify a10g.

    \n
  • \n
  • \n

    For instance types with NVIDIA A100 GPUs, specify a100.

    \n
  • \n
  • \n

    For instance types with NVIDIA H100 GPUs, specify h100.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Inferentia chips, specify inferentia.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2.

    \n
  • \n
  • \n

    For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205.

    \n
  • \n
  • \n

    For instance types with NVIDIA GRID K520 GPUs, specify k520.

    \n
  • \n
  • \n

    For instance types with NVIDIA K80 GPUs, specify k80.

    \n
  • \n
  • \n

    For instance types with NVIDIA L4 GPUs, specify l4.

    \n
  • \n
  • \n

    For instance types with NVIDIA L40S GPUs, specify l40s.

    \n
  • \n
  • \n

    For instance types with NVIDIA M60 GPUs, specify m60.

    \n
  • \n
  • \n

    For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Trainium chips, specify trainium.

    \n
  • \n
  • \n

    For instance types with Amazon Web Services Trainium2 chips, specify trainium2.

    \n
  • \n
  • \n

    For instance types with NVIDIA T4 GPUs, specify t4.

    \n
  • \n
  • \n

    For instance types with NVIDIA T4G GPUs, specify t4g.

    \n
  • \n
  • \n

    For instance types with Xilinx U30 cards, specify u30.

    \n
  • \n
  • \n

    For instance types with Xilinx VU9P FPGAs, specify vu9p.

    \n
  • \n
  • \n

    For instance types with NVIDIA V100 GPUs, specify v100.

    \n
  • \n
\n

Default: Any accelerator

", + "smithy.api#xmlName": "AcceleratorName" + } + }, + "AcceleratorTotalMemoryMiB": { + "target": "com.amazonaws.ec2#AcceleratorTotalMemoryMiBRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total accelerator memory, in MiB.

\n

Default: No minimum or maximum limits

" + } + }, + "NetworkBandwidthGbps": { + "target": "com.amazonaws.ec2#NetworkBandwidthGbpsRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of baseline network bandwidth, in gigabits per second \n (Gbps). For more information, see Amazon EC2 instance network bandwidth in the Amazon EC2 User Guide.

\n

Default: No minimum or maximum limits

" + } + }, + "AllowedInstanceTypes": { + "target": "com.amazonaws.ec2#AllowedInstanceTypeSet", + "traits": { + "smithy.api#documentation": "

The instance types to apply your specified attributes against. All other instance types \n are ignored, even if they match your specified attributes.

\n

You can use strings with one or more wild cards, represented by\n an asterisk (*), to allow an instance type, size, or generation. The\n following are examples: m5.8xlarge, c5*.*, m5a.*,\n r*, *3*.

\n

For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance\n family, which includes all C5a and C5n instance types. If you specify\n m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n\n instance types.

\n \n

If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

\n
\n

Default: All instance types

", + "smithy.api#xmlName": "AllowedInstanceType" + } + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

[Price protection] The price protection threshold for Spot Instances, as a percentage of an\n identified On-Demand price. The identified On-Demand price is the price of the lowest\n priced current generation C, M, or R instance type with your specified attributes. If no\n current generation C, M, or R instance type matches your attributes, then the identified\n price is from the lowest priced current generation instance types, and failing that, from\n the lowest priced previous generation instance types that match your attributes. When Amazon EC2\n selects instance types with your attributes, it will exclude instance types whose price\n exceeds your specified threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is based on the per vCPU or per\n memory price instead of the per instance price.

\n \n

Only one of SpotMaxPricePercentageOverLowestPrice or\n MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you\n don't specify either, Amazon EC2 will automatically apply optimal price protection to\n consistently select from a wide range of instance types. To indicate no price protection\n threshold for Spot Instances, meaning you want to consider all instance types that match your\n attributes, include one of these parameters and specify a high value, such as\n 999999.

\n
" + } + }, + "BaselinePerformanceFactors": { + "target": "com.amazonaws.ec2#BaselinePerformanceFactorsRequest", + "traits": { + "smithy.api#documentation": "

The baseline performance to consider, using an instance family as a baseline reference.\n The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this\n baseline to guide instance type selection, but there is no guarantee that the selected\n instance types will always exceed the baseline for every application. Currently, this\n parameter only supports CPU performance as a baseline performance factor. For more\n information, see Performance protection in the Amazon EC2 User Guide.

" + } + }, + "RequireEncryptionInTransit": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether instance types must support encrypting in-transit traffic between\n instances. For more information, including the supported instance types, see Encryption in\n transit in the Amazon EC2 User Guide.

\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with these attributes.

\n

You must specify VCpuCount and MemoryMiB. All other attributes\n are optional. Any unspecified optional attribute is set to its default.

\n

When you specify multiple attributes, you get instance types that satisfy all of the\n specified attributes. If you specify multiple values for an attribute, you get instance\n types that satisfy any of the specified values.

\n

To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n you can use one of the following parameters, but not both in the same request:

\n
    \n
  • \n

    \n AllowedInstanceTypes - The instance types to include in the list. All \n other instance types are ignored, even if they match your specified attributes.

    \n
  • \n
  • \n

    \n ExcludedInstanceTypes - The instance types to exclude from the list, \n even if they match your specified attributes.

    \n
  • \n
\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n

Attribute-based instance type selection is only supported when using Auto Scaling\n groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n the launch instance\n wizard, or with the RunInstances API or\n AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify\n InstanceRequirements.

\n
\n

For more information, see Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot\n placement score in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#InstanceRequirementsWithMetadataRequest": { + "type": "structure", + "members": { + "ArchitectureTypes": { + "target": "com.amazonaws.ec2#ArchitectureTypeSet", + "traits": { + "smithy.api#documentation": "

The architecture type.

", + "smithy.api#xmlName": "ArchitectureType" + } + }, + "VirtualizationTypes": { + "target": "com.amazonaws.ec2#VirtualizationTypeSet", + "traits": { + "smithy.api#documentation": "

The virtualization type.

", + "smithy.api#xmlName": "VirtualizationType" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with those attributes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The architecture type, virtualization type, and other attributes for the instance types.\n When you specify instance attributes, Amazon EC2 will identify instance types with those\n attributes.

\n

If you specify InstanceRequirementsWithMetadataRequest, you can't specify\n InstanceTypes.

" + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterface": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfaceAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

The attachment information for the secondary interface.

", + "smithy.api#xmlName": "attachment" + } + }, + "MacAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MacAddress", + "smithy.api#documentation": "

The MAC address of the secondary interface.

", + "smithy.api#xmlName": "macAddress" + } + }, + "SecondaryInterfaceId": { + "target": "com.amazonaws.ec2#SecondaryInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceId", + "smithy.api#documentation": "

The ID of the secondary interface.

", + "smithy.api#xmlName": "secondaryInterfaceId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the secondary interface.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressSet", + "smithy.api#documentation": "

The private IPv4 addresses associated with the secondary interface.

", + "smithy.api#xmlName": "privateIpAddressSet" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SecondaryInterfaceStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the secondary interface.

", + "smithy.api#xmlName": "status" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetId", + "smithy.api#documentation": "

The ID of the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnetId" + } + }, + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkId", + "smithy.api#documentation": "

The ID of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkId" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#SecondaryInterfaceType", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceType", + "smithy.api#documentation": "

The type of secondary interface.

", + "smithy.api#xmlName": "interfaceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary interface attached to an instance.

" + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfaceAttachment": { + "type": "structure", + "members": { + "AttachTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The timestamp when the attachment was created.

", + "smithy.api#xmlName": "attachTime" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the secondary interface is deleted when the instance is terminated.

\n

The only supported value for this field is true.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The device index of the secondary interface.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state.

", + "smithy.api#xmlName": "status" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the attachment of a secondary interface to an instance.

" + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddress": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address for a secondary interface.

" + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressRequest": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address for a secondary interface request.

" + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfaceSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfaceSpecificationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceSecondaryInterfaceSpecificationRequest": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the secondary interface is deleted when the instance is terminated.

\n

The only supported value for this field is true.

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The device index for the secondary interface attachment.

" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfacePrivateIpAddressListRequest", + "traits": { + "smithy.api#documentation": "

The private IPv4 addresses to assign to the secondary interface.

", + "smithy.api#xmlName": "PrivateIpAddress" + } + }, + "PrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of private IPv4 addresses to assign to the secondary interface.

" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the secondary subnet.

" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#SecondaryInterfaceType", + "traits": { + "smithy.api#documentation": "

The type of secondary interface.

" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network card. The network card must support secondary interfaces.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary interface specification for launching an instance.

" + } + }, + "com.amazonaws.ec2#InstanceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTopology", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceSpecification": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceIdWithVolumeResolver", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance to specify which volumes should be snapshotted.

", + "smithy.api#required": {} + } + }, + "ExcludeBootVolume": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Excludes the root volume from being snapshotted.

" + } + }, + "ExcludeDataVolumeIds": { + "target": "com.amazonaws.ec2#VolumeIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the data (non-root) volumes to exclude from the multi-volume snapshot set. \n If you specify the ID of the root volume, the request fails. To exclude the root volume, \n use ExcludeBootVolume.

\n

You can specify up to 40 volume IDs per request.

", + "smithy.api#xmlName": "ExcludeDataVolumeId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The instance details to specify which volumes should be snapshotted.

" + } + }, + "com.amazonaws.ec2#InstanceState": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The state of the instance as a 16-bit unsigned integer.

\n

The high byte is all of the bits between 2^8 and (2^16)-1, which equals decimal values\n between 256 and 65,535. These numerical values are used for internal purposes and should\n be ignored.

\n

The low byte is all of the bits between 2^0 and (2^8)-1, which equals decimal values\n between 0 and 255.

\n

The valid values for instance-state-code will all be in the range of the low byte and\n they are:

\n
    \n
  • \n

    \n 0 : pending\n

    \n
  • \n
  • \n

    \n 16 : running\n

    \n
  • \n
  • \n

    \n 32 : shutting-down\n

    \n
  • \n
  • \n

    \n 48 : terminated\n

    \n
  • \n
  • \n

    \n 64 : stopping\n

    \n
  • \n
  • \n

    \n 80 : stopped\n

    \n
  • \n
\n

You can ignore the high byte value by zeroing out all of the bits above 2^8 or 256 in\n decimal.

", + "smithy.api#xmlName": "code" + } + }, + "Name": { + "target": "com.amazonaws.ec2#InstanceStateName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The current state of the instance.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the current state of an instance.

" + } + }, + "com.amazonaws.ec2#InstanceStateChange": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "CurrentState": { + "target": "com.amazonaws.ec2#InstanceState", + "traits": { + "aws.protocols#ec2QueryName": "CurrentState", + "smithy.api#documentation": "

The current state of the instance.

", + "smithy.api#xmlName": "currentState" + } + }, + "PreviousState": { + "target": "com.amazonaws.ec2#InstanceState", + "traits": { + "aws.protocols#ec2QueryName": "PreviousState", + "smithy.api#documentation": "

The previous state of the instance.

", + "smithy.api#xmlName": "previousState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance state change.

" + } + }, + "com.amazonaws.ec2#InstanceStateChangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceStateChange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceStateName": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "running": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "shutting_down": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "shutting-down" + } + }, + "terminated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminated" + } + }, + "stopping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stopping" + } + }, + "stopped": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stopped" + } + } + } + }, + "com.amazonaws.ec2#InstanceStatus": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the instance.

", + "smithy.api#xmlName": "operator" + } + }, + "Events": { + "target": "com.amazonaws.ec2#InstanceStatusEventList", + "traits": { + "aws.protocols#ec2QueryName": "EventsSet", + "smithy.api#documentation": "

Any scheduled events associated with the instance.

", + "smithy.api#xmlName": "eventsSet" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceState": { + "target": "com.amazonaws.ec2#InstanceState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceState", + "smithy.api#documentation": "

The intended state of the instance. DescribeInstanceStatus requires\n that an instance be in the running state.

", + "smithy.api#xmlName": "instanceState" + } + }, + "InstanceStatus": { + "target": "com.amazonaws.ec2#InstanceStatusSummary", + "traits": { + "aws.protocols#ec2QueryName": "InstanceStatus", + "smithy.api#documentation": "

Reports impaired functionality that stems from issues internal to the instance, such\n as impaired reachability.

", + "smithy.api#xmlName": "instanceStatus" + } + }, + "SystemStatus": { + "target": "com.amazonaws.ec2#InstanceStatusSummary", + "traits": { + "aws.protocols#ec2QueryName": "SystemStatus", + "smithy.api#documentation": "

Reports impaired functionality that stems from issues related to the systems that\n support an instance, such as hardware failures and network connectivity problems.

", + "smithy.api#xmlName": "systemStatus" + } + }, + "AttachedEbsStatus": { + "target": "com.amazonaws.ec2#EbsStatusSummary", + "traits": { + "aws.protocols#ec2QueryName": "AttachedEbsStatus", + "smithy.api#documentation": "

Reports impaired functionality that stems from an attached Amazon EBS volume that is \n unreachable and unable to complete I/O operations.

", + "smithy.api#xmlName": "attachedEbsStatus" + } + }, + "ApplicationStatus": { + "target": "com.amazonaws.ec2#ApplicationStatusSummary", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatus", + "smithy.api#documentation": "

Reports the application-level health status for the instance.

", + "smithy.api#xmlName": "applicationStatus" + } + }, + "PerformanceStatus": { + "target": "com.amazonaws.ec2#PerformanceStatusSummary", + "traits": { + "aws.protocols#ec2QueryName": "PerformanceStatus", + "smithy.api#documentation": "

Reports the performance-related health status for the instance. This information is\n returned only when performance status checks are enabled for the instance.

", + "smithy.api#xmlName": "performanceStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of an instance, including system status, instance status,\n attached EBS status, application status, and performance status.

" + } + }, + "com.amazonaws.ec2#InstanceStatusDetails": { + "type": "structure", + "members": { + "ImpairedSince": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ImpairedSince", + "smithy.api#documentation": "

The time when a status check failed. For an instance that was launched and impaired,\n this is the time when the instance was launched.

", + "smithy.api#xmlName": "impairedSince" + } + }, + "Name": { + "target": "com.amazonaws.ec2#StatusName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The type of instance status.

", + "smithy.api#xmlName": "name" + } + }, + "Status": { + "target": "com.amazonaws.ec2#StatusType", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instance status.

" + } + }, + "com.amazonaws.ec2#InstanceStatusDetailsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceStatusDetails", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceStatusEvent": { + "type": "structure", + "members": { + "InstanceEventId": { + "target": "com.amazonaws.ec2#InstanceEventId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventId", + "smithy.api#documentation": "

The ID of the event.

", + "smithy.api#xmlName": "instanceEventId" + } + }, + "Code": { + "target": "com.amazonaws.ec2#EventCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The event code.

", + "smithy.api#xmlName": "code" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the event.

\n

After a scheduled event is completed, it can still be described for up to a week. If\n the event has been completed, this description starts with the following text:\n [Completed].

", + "smithy.api#xmlName": "description" + } + }, + "NotAfter": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotAfter", + "smithy.api#documentation": "

The latest scheduled end time for the event.

", + "smithy.api#xmlName": "notAfter" + } + }, + "NotBefore": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotBefore", + "smithy.api#documentation": "

The earliest scheduled start time for the event.

", + "smithy.api#xmlName": "notBefore" + } + }, + "NotBeforeDeadline": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotBeforeDeadline", + "smithy.api#documentation": "

The deadline for starting the event.

", + "smithy.api#xmlName": "notBeforeDeadline" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a scheduled event for an instance.

" + } + }, + "com.amazonaws.ec2#InstanceStatusEventList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceStatusEvent", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceStatusSummary": { + "type": "structure", + "members": { + "Details": { + "target": "com.amazonaws.ec2#InstanceStatusDetailsList", + "traits": { + "aws.protocols#ec2QueryName": "Details", + "smithy.api#documentation": "

The system instance health or application instance health.

", + "smithy.api#xmlName": "details" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SummaryStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of an instance.

" + } + }, + "com.amazonaws.ec2#InstanceStorageEncryptionSupport": { + "type": "enum", + "members": { + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#InstanceStorageFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#InstanceStorageInfo": { + "type": "structure", + "members": { + "TotalSizeInGB": { + "target": "com.amazonaws.ec2#DiskSize", + "traits": { + "aws.protocols#ec2QueryName": "TotalSizeInGB", + "smithy.api#documentation": "

The total size of the disks, in GB.

", + "smithy.api#xmlName": "totalSizeInGB" + } + }, + "Disks": { + "target": "com.amazonaws.ec2#DiskInfoList", + "traits": { + "aws.protocols#ec2QueryName": "Disks", + "smithy.api#documentation": "

Describes the disks that are available for the instance type.

", + "smithy.api#xmlName": "disks" + } + }, + "NvmeSupport": { + "target": "com.amazonaws.ec2#EphemeralNvmeSupport", + "traits": { + "aws.protocols#ec2QueryName": "NvmeSupport", + "smithy.api#documentation": "

Indicates whether non-volatile memory express (NVMe) is supported.

", + "smithy.api#xmlName": "nvmeSupport" + } + }, + "EncryptionSupport": { + "target": "com.amazonaws.ec2#InstanceStorageEncryptionSupport", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionSupport", + "smithy.api#documentation": "

Indicates whether data is encrypted at rest.

", + "smithy.api#xmlName": "encryptionSupport" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instance store features that are supported by the instance type.

" + } + }, + "com.amazonaws.ec2#InstanceTagKeySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceTagNotificationAttribute": { + "type": "structure", + "members": { + "InstanceTagKeys": { + "target": "com.amazonaws.ec2#InstanceTagKeySet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTagKeySet", + "smithy.api#documentation": "

The registered tag keys.

", + "smithy.api#xmlName": "instanceTagKeySet" + } + }, + "IncludeAllTagsOfInstance": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IncludeAllTagsOfInstance", + "smithy.api#documentation": "

Indicates wheter all tag keys in the current Region are registered to appear in\n scheduled event notifications. true indicates that all tag keys in the current\n Region are registered.

", + "smithy.api#xmlName": "includeAllTagsOfInstance" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the registered tag keys for the current Region.

" + } + }, + "com.amazonaws.ec2#InstanceTopology": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The instance ID.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group that the instance is in.

", + "smithy.api#xmlName": "groupName" + } + }, + "NetworkNodes": { + "target": "com.amazonaws.ec2#NetworkNodesList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkNodeSet", + "smithy.api#documentation": "

The network nodes. The nodes are hashed based on your account. Instances from\n different accounts running under the same server will return a different hashed list of\n strings.

\n

The value is null or empty if:

\n
    \n
  • \n

    The instance type is not supported.

    \n
  • \n
  • \n

    The instance is in a state other than running.

    \n
  • \n
", + "smithy.api#xmlName": "networkNodeSet" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The name of the Availability Zone or Local Zone that the instance is in.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "ZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone or Local Zone that the instance is in.

", + "smithy.api#xmlName": "zoneId" + } + }, + "CapacityBlockId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockId", + "smithy.api#documentation": "

The ID of the Capacity Block. This parameter is only supported for UltraServer\n instances and identifies instances within the UltraServer domain.

", + "smithy.api#xmlName": "capacityBlockId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the instance topology.

" + } + }, + "com.amazonaws.ec2#InstanceType": { + "type": "enum", + "members": { + "a1_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.medium" + } + }, + "a1_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.large" + } + }, + "a1_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.xlarge" + } + }, + "a1_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.2xlarge" + } + }, + "a1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.4xlarge" + } + }, + "a1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a1.metal" + } + }, + "c1_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c1.medium" + } + }, + "c1_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c1.xlarge" + } + }, + "c3_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c3.large" + } + }, + "c3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c3.xlarge" + } + }, + "c3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c3.2xlarge" + } + }, + "c3_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c3.4xlarge" + } + }, + "c3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c3.8xlarge" + } + }, + "c4_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c4.large" + } + }, + "c4_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c4.xlarge" + } + }, + "c4_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c4.2xlarge" + } + }, + "c4_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c4.4xlarge" + } + }, + "c4_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c4.8xlarge" + } + }, + "c5_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.large" + } + }, + "c5_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.xlarge" + } + }, + "c5_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.2xlarge" + } + }, + "c5_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.4xlarge" + } + }, + "c5_9xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.9xlarge" + } + }, + "c5_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.12xlarge" + } + }, + "c5_18xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.18xlarge" + } + }, + "c5_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.24xlarge" + } + }, + "c5_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5.metal" + } + }, + "c5a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.large" + } + }, + "c5a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.xlarge" + } + }, + "c5a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.2xlarge" + } + }, + "c5a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.4xlarge" + } + }, + "c5a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.8xlarge" + } + }, + "c5a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.12xlarge" + } + }, + "c5a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.16xlarge" + } + }, + "c5a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5a.24xlarge" + } + }, + "c5ad_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.large" + } + }, + "c5ad_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.xlarge" + } + }, + "c5ad_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.2xlarge" + } + }, + "c5ad_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.4xlarge" + } + }, + "c5ad_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.8xlarge" + } + }, + "c5ad_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.12xlarge" + } + }, + "c5ad_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.16xlarge" + } + }, + "c5ad_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5ad.24xlarge" + } + }, + "c5d_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.large" + } + }, + "c5d_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.xlarge" + } + }, + "c5d_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.2xlarge" + } + }, + "c5d_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.4xlarge" + } + }, + "c5d_9xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.9xlarge" + } + }, + "c5d_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.12xlarge" + } + }, + "c5d_18xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.18xlarge" + } + }, + "c5d_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.24xlarge" + } + }, + "c5d_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5d.metal" + } + }, + "c5n_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.large" + } + }, + "c5n_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.xlarge" + } + }, + "c5n_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.2xlarge" + } + }, + "c5n_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.4xlarge" + } + }, + "c5n_9xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.9xlarge" + } + }, + "c5n_18xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.18xlarge" + } + }, + "c5n_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c5n.metal" + } + }, + "c6g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.medium" + } + }, + "c6g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.large" + } + }, + "c6g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.xlarge" + } + }, + "c6g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.2xlarge" + } + }, + "c6g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.4xlarge" + } + }, + "c6g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.8xlarge" + } + }, + "c6g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.12xlarge" + } + }, + "c6g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.16xlarge" + } + }, + "c6g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6g.metal" + } + }, + "c6gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.medium" + } + }, + "c6gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.large" + } + }, + "c6gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.xlarge" + } + }, + "c6gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.2xlarge" + } + }, + "c6gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.4xlarge" + } + }, + "c6gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.8xlarge" + } + }, + "c6gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.12xlarge" + } + }, + "c6gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.16xlarge" + } + }, + "c6gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gd.metal" + } + }, + "c6gn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.medium" + } + }, + "c6gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.large" + } + }, + "c6gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.xlarge" + } + }, + "c6gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.2xlarge" + } + }, + "c6gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.4xlarge" + } + }, + "c6gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.8xlarge" + } + }, + "c6gn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.12xlarge" + } + }, + "c6gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6gn.16xlarge" + } + }, + "c6i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.large" + } + }, + "c6i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.xlarge" + } + }, + "c6i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.2xlarge" + } + }, + "c6i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.4xlarge" + } + }, + "c6i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.8xlarge" + } + }, + "c6i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.12xlarge" + } + }, + "c6i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.16xlarge" + } + }, + "c6i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.24xlarge" + } + }, + "c6i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.32xlarge" + } + }, + "c6i_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6i.metal" + } + }, + "cc1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cc1.4xlarge" + } + }, + "cc2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cc2.8xlarge" + } + }, + "cg1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cg1.4xlarge" + } + }, + "cr1_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cr1.8xlarge" + } + }, + "d2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d2.xlarge" + } + }, + "d2_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d2.2xlarge" + } + }, + "d2_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d2.4xlarge" + } + }, + "d2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d2.8xlarge" + } + }, + "d3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3.xlarge" + } + }, + "d3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3.2xlarge" + } + }, + "d3_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3.4xlarge" + } + }, + "d3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3.8xlarge" + } + }, + "d3en_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.xlarge" + } + }, + "d3en_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.2xlarge" + } + }, + "d3en_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.4xlarge" + } + }, + "d3en_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.6xlarge" + } + }, + "d3en_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.8xlarge" + } + }, + "d3en_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "d3en.12xlarge" + } + }, + "dl1_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dl1.24xlarge" + } + }, + "f1_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f1.2xlarge" + } + }, + "f1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f1.4xlarge" + } + }, + "f1_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f1.16xlarge" + } + }, + "g2_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g2.2xlarge" + } + }, + "g2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g2.8xlarge" + } + }, + "g3_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g3.4xlarge" + } + }, + "g3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g3.8xlarge" + } + }, + "g3_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g3.16xlarge" + } + }, + "g3s_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g3s.xlarge" + } + }, + "g4ad_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4ad.xlarge" + } + }, + "g4ad_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4ad.2xlarge" + } + }, + "g4ad_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4ad.4xlarge" + } + }, + "g4ad_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4ad.8xlarge" + } + }, + "g4ad_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4ad.16xlarge" + } + }, + "g4dn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.xlarge" + } + }, + "g4dn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.2xlarge" + } + }, + "g4dn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.4xlarge" + } + }, + "g4dn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.8xlarge" + } + }, + "g4dn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.12xlarge" + } + }, + "g4dn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.16xlarge" + } + }, + "g4dn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g4dn.metal" + } + }, + "g5_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.xlarge" + } + }, + "g5_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.2xlarge" + } + }, + "g5_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.4xlarge" + } + }, + "g5_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.8xlarge" + } + }, + "g5_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.12xlarge" + } + }, + "g5_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.16xlarge" + } + }, + "g5_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.24xlarge" + } + }, + "g5_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5.48xlarge" + } + }, + "g5g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.xlarge" + } + }, + "g5g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.2xlarge" + } + }, + "g5g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.4xlarge" + } + }, + "g5g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.8xlarge" + } + }, + "g5g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.16xlarge" + } + }, + "g5g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g5g.metal" + } + }, + "hi1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hi1.4xlarge" + } + }, + "hpc6a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc6a.48xlarge" + } + }, + "hs1_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hs1.8xlarge" + } + }, + "h1_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h1.2xlarge" + } + }, + "h1_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h1.4xlarge" + } + }, + "h1_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h1.8xlarge" + } + }, + "h1_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h1.16xlarge" + } + }, + "i2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i2.xlarge" + } + }, + "i2_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i2.2xlarge" + } + }, + "i2_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i2.4xlarge" + } + }, + "i2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i2.8xlarge" + } + }, + "i3_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.large" + } + }, + "i3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.xlarge" + } + }, + "i3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.2xlarge" + } + }, + "i3_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.4xlarge" + } + }, + "i3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.8xlarge" + } + }, + "i3_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.16xlarge" + } + }, + "i3_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3.metal" + } + }, + "i3en_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.large" + } + }, + "i3en_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.xlarge" + } + }, + "i3en_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.2xlarge" + } + }, + "i3en_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.3xlarge" + } + }, + "i3en_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.6xlarge" + } + }, + "i3en_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.12xlarge" + } + }, + "i3en_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.24xlarge" + } + }, + "i3en_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i3en.metal" + } + }, + "im4gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.large" + } + }, + "im4gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.xlarge" + } + }, + "im4gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.2xlarge" + } + }, + "im4gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.4xlarge" + } + }, + "im4gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.8xlarge" + } + }, + "im4gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "im4gn.16xlarge" + } + }, + "inf1_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf1.xlarge" + } + }, + "inf1_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf1.2xlarge" + } + }, + "inf1_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf1.6xlarge" + } + }, + "inf1_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf1.24xlarge" + } + }, + "is4gen_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.medium" + } + }, + "is4gen_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.large" + } + }, + "is4gen_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.xlarge" + } + }, + "is4gen_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.2xlarge" + } + }, + "is4gen_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.4xlarge" + } + }, + "is4gen_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "is4gen.8xlarge" + } + }, + "m1_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m1.small" + } + }, + "m1_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m1.medium" + } + }, + "m1_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m1.large" + } + }, + "m1_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m1.xlarge" + } + }, + "m2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m2.xlarge" + } + }, + "m2_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m2.2xlarge" + } + }, + "m2_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m2.4xlarge" + } + }, + "m3_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m3.medium" + } + }, + "m3_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m3.large" + } + }, + "m3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m3.xlarge" + } + }, + "m3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m3.2xlarge" + } + }, + "m4_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.large" + } + }, + "m4_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.xlarge" + } + }, + "m4_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.2xlarge" + } + }, + "m4_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.4xlarge" + } + }, + "m4_10xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.10xlarge" + } + }, + "m4_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m4.16xlarge" + } + }, + "m5_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.large" + } + }, + "m5_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.xlarge" + } + }, + "m5_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.2xlarge" + } + }, + "m5_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.4xlarge" + } + }, + "m5_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.8xlarge" + } + }, + "m5_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.12xlarge" + } + }, + "m5_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.16xlarge" + } + }, + "m5_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.24xlarge" + } + }, + "m5_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5.metal" + } + }, + "m5a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.large" + } + }, + "m5a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.xlarge" + } + }, + "m5a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.2xlarge" + } + }, + "m5a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.4xlarge" + } + }, + "m5a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.8xlarge" + } + }, + "m5a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.12xlarge" + } + }, + "m5a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.16xlarge" + } + }, + "m5a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5a.24xlarge" + } + }, + "m5ad_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.large" + } + }, + "m5ad_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.xlarge" + } + }, + "m5ad_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.2xlarge" + } + }, + "m5ad_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.4xlarge" + } + }, + "m5ad_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.8xlarge" + } + }, + "m5ad_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.12xlarge" + } + }, + "m5ad_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.16xlarge" + } + }, + "m5ad_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5ad.24xlarge" + } + }, + "m5d_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.large" + } + }, + "m5d_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.xlarge" + } + }, + "m5d_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.2xlarge" + } + }, + "m5d_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.4xlarge" + } + }, + "m5d_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.8xlarge" + } + }, + "m5d_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.12xlarge" + } + }, + "m5d_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.16xlarge" + } + }, + "m5d_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.24xlarge" + } + }, + "m5d_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5d.metal" + } + }, + "m5dn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.large" + } + }, + "m5dn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.xlarge" + } + }, + "m5dn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.2xlarge" + } + }, + "m5dn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.4xlarge" + } + }, + "m5dn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.8xlarge" + } + }, + "m5dn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.12xlarge" + } + }, + "m5dn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.16xlarge" + } + }, + "m5dn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.24xlarge" + } + }, + "m5dn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5dn.metal" + } + }, + "m5n_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.large" + } + }, + "m5n_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.xlarge" + } + }, + "m5n_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.2xlarge" + } + }, + "m5n_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.4xlarge" + } + }, + "m5n_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.8xlarge" + } + }, + "m5n_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.12xlarge" + } + }, + "m5n_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.16xlarge" + } + }, + "m5n_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.24xlarge" + } + }, + "m5n_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5n.metal" + } + }, + "m5zn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.large" + } + }, + "m5zn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.xlarge" + } + }, + "m5zn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.2xlarge" + } + }, + "m5zn_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.3xlarge" + } + }, + "m5zn_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.6xlarge" + } + }, + "m5zn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.12xlarge" + } + }, + "m5zn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m5zn.metal" + } + }, + "m6a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.large" + } + }, + "m6a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.xlarge" + } + }, + "m6a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.2xlarge" + } + }, + "m6a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.4xlarge" + } + }, + "m6a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.8xlarge" + } + }, + "m6a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.12xlarge" + } + }, + "m6a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.16xlarge" + } + }, + "m6a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.24xlarge" + } + }, + "m6a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.32xlarge" + } + }, + "m6a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.48xlarge" + } + }, + "m6g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.metal" + } + }, + "m6g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.medium" + } + }, + "m6g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.large" + } + }, + "m6g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.xlarge" + } + }, + "m6g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.2xlarge" + } + }, + "m6g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.4xlarge" + } + }, + "m6g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.8xlarge" + } + }, + "m6g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.12xlarge" + } + }, + "m6g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6g.16xlarge" + } + }, + "m6gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.metal" + } + }, + "m6gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.medium" + } + }, + "m6gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.large" + } + }, + "m6gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.xlarge" + } + }, + "m6gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.2xlarge" + } + }, + "m6gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.4xlarge" + } + }, + "m6gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.8xlarge" + } + }, + "m6gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.12xlarge" + } + }, + "m6gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6gd.16xlarge" + } + }, + "m6i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.large" + } + }, + "m6i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.xlarge" + } + }, + "m6i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.2xlarge" + } + }, + "m6i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.4xlarge" + } + }, + "m6i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.8xlarge" + } + }, + "m6i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.12xlarge" + } + }, + "m6i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.16xlarge" + } + }, + "m6i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.24xlarge" + } + }, + "m6i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.32xlarge" + } + }, + "m6i_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6i.metal" + } + }, + "mac1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac1.metal" + } + }, + "p2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p2.xlarge" + } + }, + "p2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p2.8xlarge" + } + }, + "p2_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p2.16xlarge" + } + }, + "p3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p3.2xlarge" + } + }, + "p3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p3.8xlarge" + } + }, + "p3_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p3.16xlarge" + } + }, + "p3dn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p3dn.24xlarge" + } + }, + "p4d_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p4d.24xlarge" + } + }, + "r3_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r3.large" + } + }, + "r3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r3.xlarge" + } + }, + "r3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r3.2xlarge" + } + }, + "r3_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r3.4xlarge" + } + }, + "r3_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r3.8xlarge" + } + }, + "r4_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.large" + } + }, + "r4_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.xlarge" + } + }, + "r4_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.2xlarge" + } + }, + "r4_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.4xlarge" + } + }, + "r4_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.8xlarge" + } + }, + "r4_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r4.16xlarge" + } + }, + "r5_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.large" + } + }, + "r5_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.xlarge" + } + }, + "r5_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.2xlarge" + } + }, + "r5_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.4xlarge" + } + }, + "r5_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.8xlarge" + } + }, + "r5_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.12xlarge" + } + }, + "r5_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.16xlarge" + } + }, + "r5_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.24xlarge" + } + }, + "r5_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5.metal" + } + }, + "r5a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.large" + } + }, + "r5a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.xlarge" + } + }, + "r5a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.2xlarge" + } + }, + "r5a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.4xlarge" + } + }, + "r5a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.8xlarge" + } + }, + "r5a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.12xlarge" + } + }, + "r5a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.16xlarge" + } + }, + "r5a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5a.24xlarge" + } + }, + "r5ad_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.large" + } + }, + "r5ad_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.xlarge" + } + }, + "r5ad_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.2xlarge" + } + }, + "r5ad_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.4xlarge" + } + }, + "r5ad_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.8xlarge" + } + }, + "r5ad_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.12xlarge" + } + }, + "r5ad_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.16xlarge" + } + }, + "r5ad_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5ad.24xlarge" + } + }, + "r5b_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.large" + } + }, + "r5b_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.xlarge" + } + }, + "r5b_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.2xlarge" + } + }, + "r5b_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.4xlarge" + } + }, + "r5b_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.8xlarge" + } + }, + "r5b_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.12xlarge" + } + }, + "r5b_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.16xlarge" + } + }, + "r5b_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.24xlarge" + } + }, + "r5b_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5b.metal" + } + }, + "r5d_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.large" + } + }, + "r5d_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.xlarge" + } + }, + "r5d_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.2xlarge" + } + }, + "r5d_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.4xlarge" + } + }, + "r5d_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.8xlarge" + } + }, + "r5d_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.12xlarge" + } + }, + "r5d_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.16xlarge" + } + }, + "r5d_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.24xlarge" + } + }, + "r5d_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5d.metal" + } + }, + "r5dn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.large" + } + }, + "r5dn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.xlarge" + } + }, + "r5dn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.2xlarge" + } + }, + "r5dn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.4xlarge" + } + }, + "r5dn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.8xlarge" + } + }, + "r5dn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.12xlarge" + } + }, + "r5dn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.16xlarge" + } + }, + "r5dn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.24xlarge" + } + }, + "r5dn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5dn.metal" + } + }, + "r5n_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.large" + } + }, + "r5n_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.xlarge" + } + }, + "r5n_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.2xlarge" + } + }, + "r5n_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.4xlarge" + } + }, + "r5n_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.8xlarge" + } + }, + "r5n_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.12xlarge" + } + }, + "r5n_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.16xlarge" + } + }, + "r5n_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.24xlarge" + } + }, + "r5n_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r5n.metal" + } + }, + "r6g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.medium" + } + }, + "r6g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.large" + } + }, + "r6g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.xlarge" + } + }, + "r6g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.2xlarge" + } + }, + "r6g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.4xlarge" + } + }, + "r6g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.8xlarge" + } + }, + "r6g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.12xlarge" + } + }, + "r6g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.16xlarge" + } + }, + "r6g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6g.metal" + } + }, + "r6gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.medium" + } + }, + "r6gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.large" + } + }, + "r6gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.xlarge" + } + }, + "r6gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.2xlarge" + } + }, + "r6gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.4xlarge" + } + }, + "r6gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.8xlarge" + } + }, + "r6gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.12xlarge" + } + }, + "r6gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.16xlarge" + } + }, + "r6gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6gd.metal" + } + }, + "r6i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.large" + } + }, + "r6i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.xlarge" + } + }, + "r6i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.2xlarge" + } + }, + "r6i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.4xlarge" + } + }, + "r6i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.8xlarge" + } + }, + "r6i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.12xlarge" + } + }, + "r6i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.16xlarge" + } + }, + "r6i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.24xlarge" + } + }, + "r6i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.32xlarge" + } + }, + "r6i_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6i.metal" + } + }, + "t1_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t1.micro" + } + }, + "t2_nano": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.nano" + } + }, + "t2_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.micro" + } + }, + "t2_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.small" + } + }, + "t2_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.medium" + } + }, + "t2_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.large" + } + }, + "t2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.xlarge" + } + }, + "t2_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2.2xlarge" + } + }, + "t3_nano": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.nano" + } + }, + "t3_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.micro" + } + }, + "t3_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.small" + } + }, + "t3_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.medium" + } + }, + "t3_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.large" + } + }, + "t3_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.xlarge" + } + }, + "t3_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3.2xlarge" + } + }, + "t3a_nano": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.nano" + } + }, + "t3a_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.micro" + } + }, + "t3a_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.small" + } + }, + "t3a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.medium" + } + }, + "t3a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.large" + } + }, + "t3a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.xlarge" + } + }, + "t3a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a.2xlarge" + } + }, + "t4g_nano": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.nano" + } + }, + "t4g_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.micro" + } + }, + "t4g_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.small" + } + }, + "t4g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.medium" + } + }, + "t4g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.large" + } + }, + "t4g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.xlarge" + } + }, + "t4g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g.2xlarge" + } + }, + "u_6tb1_56xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-6tb1.56xlarge" + } + }, + "u_6tb1_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-6tb1.112xlarge" + } + }, + "u_9tb1_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-9tb1.112xlarge" + } + }, + "u_12tb1_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-12tb1.112xlarge" + } + }, + "u_6tb1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-6tb1.metal" + } + }, + "u_9tb1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-9tb1.metal" + } + }, + "u_12tb1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-12tb1.metal" + } + }, + "u_18tb1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-18tb1.metal" + } + }, + "u_24tb1_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-24tb1.metal" + } + }, + "vt1_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vt1.3xlarge" + } + }, + "vt1_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vt1.6xlarge" + } + }, + "vt1_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vt1.24xlarge" + } + }, + "x1_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1.16xlarge" + } + }, + "x1_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1.32xlarge" + } + }, + "x1e_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.xlarge" + } + }, + "x1e_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.2xlarge" + } + }, + "x1e_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.4xlarge" + } + }, + "x1e_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.8xlarge" + } + }, + "x1e_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.16xlarge" + } + }, + "x1e_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x1e.32xlarge" + } + }, + "x2iezn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.2xlarge" + } + }, + "x2iezn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.4xlarge" + } + }, + "x2iezn_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.6xlarge" + } + }, + "x2iezn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.8xlarge" + } + }, + "x2iezn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.12xlarge" + } + }, + "x2iezn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iezn.metal" + } + }, + "x2gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.medium" + } + }, + "x2gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.large" + } + }, + "x2gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.xlarge" + } + }, + "x2gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.2xlarge" + } + }, + "x2gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.4xlarge" + } + }, + "x2gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.8xlarge" + } + }, + "x2gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.12xlarge" + } + }, + "x2gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.16xlarge" + } + }, + "x2gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2gd.metal" + } + }, + "z1d_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.large" + } + }, + "z1d_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.xlarge" + } + }, + "z1d_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.2xlarge" + } + }, + "z1d_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.3xlarge" + } + }, + "z1d_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.6xlarge" + } + }, + "z1d_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.12xlarge" + } + }, + "z1d_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "z1d.metal" + } + }, + "x2idn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2idn.16xlarge" + } + }, + "x2idn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2idn.24xlarge" + } + }, + "x2idn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2idn.32xlarge" + } + }, + "x2iedn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.xlarge" + } + }, + "x2iedn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.2xlarge" + } + }, + "x2iedn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.4xlarge" + } + }, + "x2iedn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.8xlarge" + } + }, + "x2iedn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.16xlarge" + } + }, + "x2iedn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.24xlarge" + } + }, + "x2iedn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.32xlarge" + } + }, + "c6a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.large" + } + }, + "c6a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.xlarge" + } + }, + "c6a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.2xlarge" + } + }, + "c6a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.4xlarge" + } + }, + "c6a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.8xlarge" + } + }, + "c6a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.12xlarge" + } + }, + "c6a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.16xlarge" + } + }, + "c6a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.24xlarge" + } + }, + "c6a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.32xlarge" + } + }, + "c6a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.48xlarge" + } + }, + "c6a_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6a.metal" + } + }, + "m6a_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6a.metal" + } + }, + "i4i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.large" + } + }, + "i4i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.xlarge" + } + }, + "i4i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.2xlarge" + } + }, + "i4i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.4xlarge" + } + }, + "i4i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.8xlarge" + } + }, + "i4i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.16xlarge" + } + }, + "i4i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.32xlarge" + } + }, + "i4i_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.metal" + } + }, + "x2idn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2idn.metal" + } + }, + "x2iedn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x2iedn.metal" + } + }, + "c7g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.medium" + } + }, + "c7g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.large" + } + }, + "c7g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.xlarge" + } + }, + "c7g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.2xlarge" + } + }, + "c7g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.4xlarge" + } + }, + "c7g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.8xlarge" + } + }, + "c7g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.12xlarge" + } + }, + "c7g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.16xlarge" + } + }, + "mac2_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac2.metal" + } + }, + "c6id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.large" + } + }, + "c6id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.xlarge" + } + }, + "c6id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.2xlarge" + } + }, + "c6id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.4xlarge" + } + }, + "c6id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.8xlarge" + } + }, + "c6id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.12xlarge" + } + }, + "c6id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.16xlarge" + } + }, + "c6id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.24xlarge" + } + }, + "c6id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.32xlarge" + } + }, + "c6id_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6id.metal" + } + }, + "m6id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.large" + } + }, + "m6id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.xlarge" + } + }, + "m6id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.2xlarge" + } + }, + "m6id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.4xlarge" + } + }, + "m6id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.8xlarge" + } + }, + "m6id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.12xlarge" + } + }, + "m6id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.16xlarge" + } + }, + "m6id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.24xlarge" + } + }, + "m6id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.32xlarge" + } + }, + "m6id_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6id.metal" + } + }, + "r6id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.large" + } + }, + "r6id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.xlarge" + } + }, + "r6id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.2xlarge" + } + }, + "r6id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.4xlarge" + } + }, + "r6id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.8xlarge" + } + }, + "r6id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.12xlarge" + } + }, + "r6id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.16xlarge" + } + }, + "r6id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.24xlarge" + } + }, + "r6id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.32xlarge" + } + }, + "r6id_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6id.metal" + } + }, + "r6a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.large" + } + }, + "r6a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.xlarge" + } + }, + "r6a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.2xlarge" + } + }, + "r6a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.4xlarge" + } + }, + "r6a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.8xlarge" + } + }, + "r6a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.12xlarge" + } + }, + "r6a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.16xlarge" + } + }, + "r6a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.24xlarge" + } + }, + "r6a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.32xlarge" + } + }, + "r6a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.48xlarge" + } + }, + "r6a_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6a.metal" + } + }, + "p4de_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p4de.24xlarge" + } + }, + "u_3tb1_56xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-3tb1.56xlarge" + } + }, + "u_18tb1_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-18tb1.112xlarge" + } + }, + "u_24tb1_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u-24tb1.112xlarge" + } + }, + "trn1_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn1.2xlarge" + } + }, + "trn1_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn1.32xlarge" + } + }, + "hpc6id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc6id.32xlarge" + } + }, + "c6in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.large" + } + }, + "c6in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.xlarge" + } + }, + "c6in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.2xlarge" + } + }, + "c6in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.4xlarge" + } + }, + "c6in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.8xlarge" + } + }, + "c6in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.12xlarge" + } + }, + "c6in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.16xlarge" + } + }, + "c6in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.24xlarge" + } + }, + "c6in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.32xlarge" + } + }, + "m6in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.large" + } + }, + "m6in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.xlarge" + } + }, + "m6in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.2xlarge" + } + }, + "m6in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.4xlarge" + } + }, + "m6in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.8xlarge" + } + }, + "m6in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.12xlarge" + } + }, + "m6in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.16xlarge" + } + }, + "m6in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.24xlarge" + } + }, + "m6in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.32xlarge" + } + }, + "m6idn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.large" + } + }, + "m6idn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.xlarge" + } + }, + "m6idn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.2xlarge" + } + }, + "m6idn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.4xlarge" + } + }, + "m6idn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.8xlarge" + } + }, + "m6idn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.12xlarge" + } + }, + "m6idn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.16xlarge" + } + }, + "m6idn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.24xlarge" + } + }, + "m6idn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.32xlarge" + } + }, + "r6in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.large" + } + }, + "r6in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.xlarge" + } + }, + "r6in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.2xlarge" + } + }, + "r6in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.4xlarge" + } + }, + "r6in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.8xlarge" + } + }, + "r6in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.12xlarge" + } + }, + "r6in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.16xlarge" + } + }, + "r6in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.24xlarge" + } + }, + "r6in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.32xlarge" + } + }, + "r6idn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.large" + } + }, + "r6idn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.xlarge" + } + }, + "r6idn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.2xlarge" + } + }, + "r6idn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.4xlarge" + } + }, + "r6idn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.8xlarge" + } + }, + "r6idn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.12xlarge" + } + }, + "r6idn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.16xlarge" + } + }, + "r6idn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.24xlarge" + } + }, + "r6idn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.32xlarge" + } + }, + "c7g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7g.metal" + } + }, + "m7g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.medium" + } + }, + "m7g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.large" + } + }, + "m7g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.xlarge" + } + }, + "m7g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.2xlarge" + } + }, + "m7g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.4xlarge" + } + }, + "m7g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.8xlarge" + } + }, + "m7g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.12xlarge" + } + }, + "m7g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.16xlarge" + } + }, + "m7g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7g.metal" + } + }, + "r7g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.medium" + } + }, + "r7g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.large" + } + }, + "r7g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.xlarge" + } + }, + "r7g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.2xlarge" + } + }, + "r7g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.4xlarge" + } + }, + "r7g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.8xlarge" + } + }, + "r7g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.12xlarge" + } + }, + "r7g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.16xlarge" + } + }, + "r7g_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7g.metal" + } + }, + "c6in_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c6in.metal" + } + }, + "m6in_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6in.metal" + } + }, + "m6idn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m6idn.metal" + } + }, + "r6in_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6in.metal" + } + }, + "r6idn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r6idn.metal" + } + }, + "inf2_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf2.xlarge" + } + }, + "inf2_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf2.8xlarge" + } + }, + "inf2_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf2.24xlarge" + } + }, + "inf2_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inf2.48xlarge" + } + }, + "trn1n_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn1n.32xlarge" + } + }, + "i4g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.large" + } + }, + "i4g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.xlarge" + } + }, + "i4g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.2xlarge" + } + }, + "i4g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.4xlarge" + } + }, + "i4g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.8xlarge" + } + }, + "i4g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4g.16xlarge" + } + }, + "hpc7g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7g.4xlarge" + } + }, + "hpc7g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7g.8xlarge" + } + }, + "hpc7g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7g.16xlarge" + } + }, + "c7gn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.medium" + } + }, + "c7gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.large" + } + }, + "c7gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.xlarge" + } + }, + "c7gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.2xlarge" + } + }, + "c7gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.4xlarge" + } + }, + "c7gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.8xlarge" + } + }, + "c7gn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.12xlarge" + } + }, + "c7gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.16xlarge" + } + }, + "p5_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p5.48xlarge" + } + }, + "m7i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.large" + } + }, + "m7i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.xlarge" + } + }, + "m7i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.2xlarge" + } + }, + "m7i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.4xlarge" + } + }, + "m7i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.8xlarge" + } + }, + "m7i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.12xlarge" + } + }, + "m7i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.16xlarge" + } + }, + "m7i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.24xlarge" + } + }, + "m7i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.48xlarge" + } + }, + "m7i_flex_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.large" + } + }, + "m7i_flex_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.xlarge" + } + }, + "m7i_flex_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.2xlarge" + } + }, + "m7i_flex_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.4xlarge" + } + }, + "m7i_flex_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.8xlarge" + } + }, + "m7a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.medium" + } + }, + "m7a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.large" + } + }, + "m7a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.xlarge" + } + }, + "m7a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.2xlarge" + } + }, + "m7a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.4xlarge" + } + }, + "m7a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.8xlarge" + } + }, + "m7a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.12xlarge" + } + }, + "m7a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.16xlarge" + } + }, + "m7a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.24xlarge" + } + }, + "m7a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.32xlarge" + } + }, + "m7a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.48xlarge" + } + }, + "m7a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7a.metal-48xl" + } + }, + "hpc7a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7a.12xlarge" + } + }, + "hpc7a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7a.24xlarge" + } + }, + "hpc7a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7a.48xlarge" + } + }, + "hpc7a_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc7a.96xlarge" + } + }, + "c7gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.medium" + } + }, + "c7gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.large" + } + }, + "c7gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.xlarge" + } + }, + "c7gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.2xlarge" + } + }, + "c7gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.4xlarge" + } + }, + "c7gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.8xlarge" + } + }, + "c7gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.12xlarge" + } + }, + "c7gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.16xlarge" + } + }, + "m7gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.medium" + } + }, + "m7gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.large" + } + }, + "m7gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.xlarge" + } + }, + "m7gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.2xlarge" + } + }, + "m7gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.4xlarge" + } + }, + "m7gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.8xlarge" + } + }, + "m7gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.12xlarge" + } + }, + "m7gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.16xlarge" + } + }, + "r7gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.medium" + } + }, + "r7gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.large" + } + }, + "r7gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.xlarge" + } + }, + "r7gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.2xlarge" + } + }, + "r7gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.4xlarge" + } + }, + "r7gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.8xlarge" + } + }, + "r7gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.12xlarge" + } + }, + "r7gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.16xlarge" + } + }, + "r7a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.medium" + } + }, + "r7a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.large" + } + }, + "r7a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.xlarge" + } + }, + "r7a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.2xlarge" + } + }, + "r7a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.4xlarge" + } + }, + "r7a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.8xlarge" + } + }, + "r7a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.12xlarge" + } + }, + "r7a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.16xlarge" + } + }, + "r7a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.24xlarge" + } + }, + "r7a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.32xlarge" + } + }, + "r7a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.48xlarge" + } + }, + "c7i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.large" + } + }, + "c7i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.xlarge" + } + }, + "c7i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.2xlarge" + } + }, + "c7i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.4xlarge" + } + }, + "c7i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.8xlarge" + } + }, + "c7i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.12xlarge" + } + }, + "c7i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.16xlarge" + } + }, + "c7i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.24xlarge" + } + }, + "c7i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.48xlarge" + } + }, + "mac2_m2pro_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac2-m2pro.metal" + } + }, + "r7iz_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.large" + } + }, + "r7iz_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.xlarge" + } + }, + "r7iz_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.2xlarge" + } + }, + "r7iz_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.4xlarge" + } + }, + "r7iz_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.8xlarge" + } + }, + "r7iz_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.12xlarge" + } + }, + "r7iz_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.16xlarge" + } + }, + "r7iz_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.32xlarge" + } + }, + "c7a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.medium" + } + }, + "c7a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.large" + } + }, + "c7a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.xlarge" + } + }, + "c7a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.2xlarge" + } + }, + "c7a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.4xlarge" + } + }, + "c7a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.8xlarge" + } + }, + "c7a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.12xlarge" + } + }, + "c7a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.16xlarge" + } + }, + "c7a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.24xlarge" + } + }, + "c7a_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.32xlarge" + } + }, + "c7a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.48xlarge" + } + }, + "c7a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7a.metal-48xl" + } + }, + "r7a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7a.metal-48xl" + } + }, + "r7i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.large" + } + }, + "r7i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.xlarge" + } + }, + "r7i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.2xlarge" + } + }, + "r7i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.4xlarge" + } + }, + "r7i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.8xlarge" + } + }, + "r7i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.12xlarge" + } + }, + "r7i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.16xlarge" + } + }, + "r7i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.24xlarge" + } + }, + "r7i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.48xlarge" + } + }, + "dl2q_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dl2q.24xlarge" + } + }, + "mac2_m2_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac2-m2.metal" + } + }, + "i4i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.12xlarge" + } + }, + "i4i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i4i.24xlarge" + } + }, + "c7i_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.metal-24xl" + } + }, + "c7i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i.metal-48xl" + } + }, + "m7i_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.metal-24xl" + } + }, + "m7i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i.metal-48xl" + } + }, + "r7i_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.metal-24xl" + } + }, + "r7i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7i.metal-48xl" + } + }, + "r7iz_metal_16xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.metal-16xl" + } + }, + "r7iz_metal_32xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7iz.metal-32xl" + } + }, + "c7gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gd.metal" + } + }, + "m7gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7gd.metal" + } + }, + "r7gd_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r7gd.metal" + } + }, + "g6_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.xlarge" + } + }, + "g6_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.2xlarge" + } + }, + "g6_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.4xlarge" + } + }, + "g6_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.8xlarge" + } + }, + "g6_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.12xlarge" + } + }, + "g6_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.16xlarge" + } + }, + "g6_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.24xlarge" + } + }, + "g6_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6.48xlarge" + } + }, + "gr6_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gr6.4xlarge" + } + }, + "gr6_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gr6.8xlarge" + } + }, + "c7i_flex_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.large" + } + }, + "c7i_flex_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.xlarge" + } + }, + "c7i_flex_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.2xlarge" + } + }, + "c7i_flex_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.4xlarge" + } + }, + "c7i_flex_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.8xlarge" + } + }, + "u7i_12tb_224xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7i-12tb.224xlarge" + } + }, + "u7in_16tb_224xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7in-16tb.224xlarge" + } + }, + "u7in_24tb_224xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7in-24tb.224xlarge" + } + }, + "u7in_32tb_224xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7in-32tb.224xlarge" + } + }, + "u7ib_12tb_224xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7ib-12tb.224xlarge" + } + }, + "c7gn_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7gn.metal" + } + }, + "r8g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.medium" + } + }, + "r8g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.large" + } + }, + "r8g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.xlarge" + } + }, + "r8g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.2xlarge" + } + }, + "r8g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.4xlarge" + } + }, + "r8g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.8xlarge" + } + }, + "r8g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.12xlarge" + } + }, + "r8g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.16xlarge" + } + }, + "r8g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.24xlarge" + } + }, + "r8g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.48xlarge" + } + }, + "r8g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.metal-24xl" + } + }, + "r8g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8g.metal-48xl" + } + }, + "mac2_m1ultra_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac2-m1ultra.metal" + } + }, + "g6e_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.xlarge" + } + }, + "g6e_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.2xlarge" + } + }, + "g6e_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.4xlarge" + } + }, + "g6e_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.8xlarge" + } + }, + "g6e_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.12xlarge" + } + }, + "g6e_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.16xlarge" + } + }, + "g6e_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.24xlarge" + } + }, + "g6e_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6e.48xlarge" + } + }, + "c8g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.medium" + } + }, + "c8g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.large" + } + }, + "c8g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.xlarge" + } + }, + "c8g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.2xlarge" + } + }, + "c8g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.4xlarge" + } + }, + "c8g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.8xlarge" + } + }, + "c8g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.12xlarge" + } + }, + "c8g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.16xlarge" + } + }, + "c8g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.24xlarge" + } + }, + "c8g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.48xlarge" + } + }, + "c8g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.metal-24xl" + } + }, + "c8g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8g.metal-48xl" + } + }, + "m8g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.medium" + } + }, + "m8g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.large" + } + }, + "m8g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.xlarge" + } + }, + "m8g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.2xlarge" + } + }, + "m8g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.4xlarge" + } + }, + "m8g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.8xlarge" + } + }, + "m8g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.12xlarge" + } + }, + "m8g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.16xlarge" + } + }, + "m8g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.24xlarge" + } + }, + "m8g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.48xlarge" + } + }, + "m8g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.metal-24xl" + } + }, + "m8g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8g.metal-48xl" + } + }, + "x8g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.medium" + } + }, + "x8g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.large" + } + }, + "x8g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.xlarge" + } + }, + "x8g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.2xlarge" + } + }, + "x8g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.4xlarge" + } + }, + "x8g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.8xlarge" + } + }, + "x8g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.12xlarge" + } + }, + "x8g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.16xlarge" + } + }, + "x8g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.24xlarge" + } + }, + "x8g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.48xlarge" + } + }, + "x8g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.metal-24xl" + } + }, + "x8g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8g.metal-48xl" + } + }, + "i7ie_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.large" + } + }, + "i7ie_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.xlarge" + } + }, + "i7ie_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.2xlarge" + } + }, + "i7ie_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.3xlarge" + } + }, + "i7ie_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.6xlarge" + } + }, + "i7ie_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.12xlarge" + } + }, + "i7ie_18xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.18xlarge" + } + }, + "i7ie_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.24xlarge" + } + }, + "i7ie_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.48xlarge" + } + }, + "i8g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.large" + } + }, + "i8g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.xlarge" + } + }, + "i8g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.2xlarge" + } + }, + "i8g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.4xlarge" + } + }, + "i8g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.8xlarge" + } + }, + "i8g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.12xlarge" + } + }, + "i8g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.16xlarge" + } + }, + "i8g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.24xlarge" + } + }, + "i8g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.metal-24xl" + } + }, + "u7i_6tb_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7i-6tb.112xlarge" + } + }, + "u7i_8tb_112xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7i-8tb.112xlarge" + } + }, + "u7inh_32tb_480xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "u7inh-32tb.480xlarge" + } + }, + "p5e_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p5e.48xlarge" + } + }, + "p5en_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p5en.48xlarge" + } + }, + "f2_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f2.12xlarge" + } + }, + "f2_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f2.48xlarge" + } + }, + "trn2_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn2.48xlarge" + } + }, + "c7i_flex_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.12xlarge" + } + }, + "c7i_flex_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c7i-flex.16xlarge" + } + }, + "m7i_flex_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.12xlarge" + } + }, + "m7i_flex_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m7i-flex.16xlarge" + } + }, + "i7ie_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.metal-24xl" + } + }, + "i7ie_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7ie.metal-48xl" + } + }, + "i8g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.48xlarge" + } + }, + "c8gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.medium" + } + }, + "c8gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.large" + } + }, + "c8gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.xlarge" + } + }, + "c8gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.2xlarge" + } + }, + "c8gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.4xlarge" + } + }, + "c8gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.8xlarge" + } + }, + "c8gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.12xlarge" + } + }, + "c8gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.16xlarge" + } + }, + "c8gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.24xlarge" + } + }, + "c8gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.48xlarge" + } + }, + "c8gd_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.metal-24xl" + } + }, + "c8gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gd.metal-48xl" + } + }, + "i7i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.large" + } + }, + "i7i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.xlarge" + } + }, + "i7i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.2xlarge" + } + }, + "i7i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.4xlarge" + } + }, + "i7i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.8xlarge" + } + }, + "i7i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.12xlarge" + } + }, + "i7i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.16xlarge" + } + }, + "i7i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.24xlarge" + } + }, + "i7i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.48xlarge" + } + }, + "i7i_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.metal-24xl" + } + }, + "i7i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i7i.metal-48xl" + } + }, + "p6_b200_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p6-b200.48xlarge" + } + }, + "m8gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.medium" + } + }, + "m8gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.large" + } + }, + "m8gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.xlarge" + } + }, + "m8gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.2xlarge" + } + }, + "m8gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.4xlarge" + } + }, + "m8gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.8xlarge" + } + }, + "m8gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.12xlarge" + } + }, + "m8gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.16xlarge" + } + }, + "m8gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.24xlarge" + } + }, + "m8gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.48xlarge" + } + }, + "m8gd_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.metal-24xl" + } + }, + "m8gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gd.metal-48xl" + } + }, + "r8gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.medium" + } + }, + "r8gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.large" + } + }, + "r8gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.xlarge" + } + }, + "r8gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.2xlarge" + } + }, + "r8gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.4xlarge" + } + }, + "r8gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.8xlarge" + } + }, + "r8gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.12xlarge" + } + }, + "r8gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.16xlarge" + } + }, + "r8gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.24xlarge" + } + }, + "r8gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.48xlarge" + } + }, + "r8gd_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.metal-24xl" + } + }, + "r8gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gd.metal-48xl" + } + }, + "c8gn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.medium" + } + }, + "c8gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.large" + } + }, + "c8gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.xlarge" + } + }, + "c8gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.2xlarge" + } + }, + "c8gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.4xlarge" + } + }, + "c8gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.8xlarge" + } + }, + "c8gn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.12xlarge" + } + }, + "c8gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.16xlarge" + } + }, + "c8gn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.24xlarge" + } + }, + "c8gn_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.48xlarge" + } + }, + "c8gn_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.metal-24xl" + } + }, + "c8gn_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gn.metal-48xl" + } + }, + "f2_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "f2.6xlarge" + } + }, + "p6e_gb200_36xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p6e-gb200.36xlarge" + } + }, + "g6f_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6f.large" + } + }, + "g6f_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6f.xlarge" + } + }, + "g6f_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6f.2xlarge" + } + }, + "g6f_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g6f.4xlarge" + } + }, + "gr6f_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gr6f.4xlarge" + } + }, + "p5_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p5.4xlarge" + } + }, + "r8i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.large" + } + }, + "r8i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.xlarge" + } + }, + "r8i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.2xlarge" + } + }, + "r8i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.4xlarge" + } + }, + "r8i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.8xlarge" + } + }, + "r8i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.12xlarge" + } + }, + "r8i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.16xlarge" + } + }, + "r8i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.24xlarge" + } + }, + "r8i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.32xlarge" + } + }, + "r8i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.48xlarge" + } + }, + "r8i_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.96xlarge" + } + }, + "r8i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.metal-48xl" + } + }, + "r8i_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i.metal-96xl" + } + }, + "r8i_flex_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.large" + } + }, + "r8i_flex_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.xlarge" + } + }, + "r8i_flex_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.2xlarge" + } + }, + "r8i_flex_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.4xlarge" + } + }, + "r8i_flex_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.8xlarge" + } + }, + "r8i_flex_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.12xlarge" + } + }, + "r8i_flex_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8i-flex.16xlarge" + } + }, + "m8i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.large" + } + }, + "m8i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.xlarge" + } + }, + "m8i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.2xlarge" + } + }, + "m8i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.4xlarge" + } + }, + "m8i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.8xlarge" + } + }, + "m8i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.12xlarge" + } + }, + "m8i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.16xlarge" + } + }, + "m8i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.24xlarge" + } + }, + "m8i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.32xlarge" + } + }, + "m8i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.48xlarge" + } + }, + "m8i_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.96xlarge" + } + }, + "m8i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.metal-48xl" + } + }, + "m8i_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i.metal-96xl" + } + }, + "m8i_flex_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.large" + } + }, + "m8i_flex_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.xlarge" + } + }, + "m8i_flex_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.2xlarge" + } + }, + "m8i_flex_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.4xlarge" + } + }, + "m8i_flex_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.8xlarge" + } + }, + "m8i_flex_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.12xlarge" + } + }, + "m8i_flex_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8i-flex.16xlarge" + } + }, + "i8ge_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.large" + } + }, + "i8ge_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.xlarge" + } + }, + "i8ge_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.2xlarge" + } + }, + "i8ge_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.3xlarge" + } + }, + "i8ge_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.6xlarge" + } + }, + "i8ge_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.12xlarge" + } + }, + "i8ge_18xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.18xlarge" + } + }, + "i8ge_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.24xlarge" + } + }, + "i8ge_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.48xlarge" + } + }, + "i8ge_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.metal-24xl" + } + }, + "i8ge_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8ge.metal-48xl" + } + }, + "mac_m4_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac-m4.metal" + } + }, + "mac_m4pro_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac-m4pro.metal" + } + }, + "r8gn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.medium" + } + }, + "r8gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.large" + } + }, + "r8gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.xlarge" + } + }, + "r8gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.2xlarge" + } + }, + "r8gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.4xlarge" + } + }, + "r8gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.8xlarge" + } + }, + "r8gn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.12xlarge" + } + }, + "r8gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.16xlarge" + } + }, + "r8gn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.24xlarge" + } + }, + "r8gn_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.48xlarge" + } + }, + "r8gn_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.metal-24xl" + } + }, + "r8gn_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gn.metal-48xl" + } + }, + "c8i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.large" + } + }, + "c8i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.xlarge" + } + }, + "c8i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.2xlarge" + } + }, + "c8i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.4xlarge" + } + }, + "c8i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.8xlarge" + } + }, + "c8i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.12xlarge" + } + }, + "c8i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.16xlarge" + } + }, + "c8i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.24xlarge" + } + }, + "c8i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.32xlarge" + } + }, + "c8i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.48xlarge" + } + }, + "c8i_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.96xlarge" + } + }, + "c8i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.metal-48xl" + } + }, + "c8i_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i.metal-96xl" + } + }, + "c8i_flex_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.large" + } + }, + "c8i_flex_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.xlarge" + } + }, + "c8i_flex_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.2xlarge" + } + }, + "c8i_flex_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.4xlarge" + } + }, + "c8i_flex_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.8xlarge" + } + }, + "c8i_flex_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.12xlarge" + } + }, + "c8i_flex_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8i-flex.16xlarge" + } + }, + "r8gb_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.medium" + } + }, + "r8gb_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.large" + } + }, + "r8gb_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.xlarge" + } + }, + "r8gb_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.2xlarge" + } + }, + "r8gb_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.4xlarge" + } + }, + "r8gb_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.8xlarge" + } + }, + "r8gb_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.12xlarge" + } + }, + "r8gb_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.16xlarge" + } + }, + "r8gb_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.24xlarge" + } + }, + "r8gb_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.metal-24xl" + } + }, + "m8a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.medium" + } + }, + "m8a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.large" + } + }, + "m8a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.xlarge" + } + }, + "m8a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.2xlarge" + } + }, + "m8a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.4xlarge" + } + }, + "m8a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.8xlarge" + } + }, + "m8a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.12xlarge" + } + }, + "m8a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.16xlarge" + } + }, + "m8a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.24xlarge" + } + }, + "m8a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.48xlarge" + } + }, + "m8a_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.metal-24xl" + } + }, + "m8a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8a.metal-48xl" + } + }, + "trn2_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn2.3xlarge" + } + }, + "r8a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.medium" + } + }, + "r8a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.large" + } + }, + "r8a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.xlarge" + } + }, + "r8a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.2xlarge" + } + }, + "r8a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.4xlarge" + } + }, + "r8a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.8xlarge" + } + }, + "r8a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.12xlarge" + } + }, + "r8a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.16xlarge" + } + }, + "r8a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.24xlarge" + } + }, + "r8a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.48xlarge" + } + }, + "r8a_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.metal-24xl" + } + }, + "r8a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8a.metal-48xl" + } + }, + "p6_b300_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p6-b300.48xlarge" + } + }, + "c8a_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.medium" + } + }, + "c8a_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.large" + } + }, + "c8a_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.xlarge" + } + }, + "c8a_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.2xlarge" + } + }, + "c8a_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.4xlarge" + } + }, + "c8a_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.8xlarge" + } + }, + "c8a_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.12xlarge" + } + }, + "c8a_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.16xlarge" + } + }, + "c8a_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.24xlarge" + } + }, + "c8a_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.48xlarge" + } + }, + "c8a_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.metal-24xl" + } + }, + "c8a_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8a.metal-48xl" + } + }, + "c8gb_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.12xlarge" + } + }, + "c8gb_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.16xlarge" + } + }, + "c8gb_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.24xlarge" + } + }, + "c8gb_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.2xlarge" + } + }, + "c8gb_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.4xlarge" + } + }, + "c8gb_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.8xlarge" + } + }, + "c8gb_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.large" + } + }, + "c8gb_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.medium" + } + }, + "c8gb_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.metal-24xl" + } + }, + "c8gb_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.xlarge" + } + }, + "c8gb_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.48xlarge" + } + }, + "c8gb_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8gb.metal-48xl" + } + }, + "m8gb_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.12xlarge" + } + }, + "m8gb_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.16xlarge" + } + }, + "m8gb_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.24xlarge" + } + }, + "m8gb_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.2xlarge" + } + }, + "m8gb_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.4xlarge" + } + }, + "m8gb_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.8xlarge" + } + }, + "m8gb_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.large" + } + }, + "m8gb_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.medium" + } + }, + "m8gb_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.xlarge" + } + }, + "m8gb_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.48xlarge" + } + }, + "m8gb_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.metal-24xl" + } + }, + "m8gb_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gb.metal-48xl" + } + }, + "m8gn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.12xlarge" + } + }, + "m8gn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.16xlarge" + } + }, + "m8gn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.24xlarge" + } + }, + "m8gn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.2xlarge" + } + }, + "m8gn_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.48xlarge" + } + }, + "m8gn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.4xlarge" + } + }, + "m8gn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.8xlarge" + } + }, + "m8gn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.large" + } + }, + "m8gn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.medium" + } + }, + "m8gn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.xlarge" + } + }, + "m8gn_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.metal-24xl" + } + }, + "m8gn_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8gn.metal-48xl" + } + }, + "x8aedz_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.12xlarge" + } + }, + "x8aedz_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.24xlarge" + } + }, + "x8aedz_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.3xlarge" + } + }, + "x8aedz_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.6xlarge" + } + }, + "x8aedz_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.large" + } + }, + "x8aedz_metal_12xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.metal-12xl" + } + }, + "x8aedz_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.metal-24xl" + } + }, + "x8aedz_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8aedz.xlarge" + } + }, + "m8azn_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.medium" + } + }, + "m8azn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.large" + } + }, + "m8azn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.xlarge" + } + }, + "m8azn_3xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.3xlarge" + } + }, + "m8azn_6xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.6xlarge" + } + }, + "m8azn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.12xlarge" + } + }, + "m8azn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.24xlarge" + } + }, + "m8azn_metal_12xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.metal-12xl" + } + }, + "m8azn_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8azn.metal-24xl" + } + }, + "x8i_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.large" + } + }, + "x8i_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.xlarge" + } + }, + "x8i_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.2xlarge" + } + }, + "x8i_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.4xlarge" + } + }, + "x8i_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.8xlarge" + } + }, + "x8i_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.12xlarge" + } + }, + "x8i_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.16xlarge" + } + }, + "x8i_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.24xlarge" + } + }, + "x8i_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.32xlarge" + } + }, + "x8i_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.48xlarge" + } + }, + "x8i_64xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.64xlarge" + } + }, + "x8i_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.96xlarge" + } + }, + "x8i_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.metal-48xl" + } + }, + "x8i_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "x8i.metal-96xl" + } + }, + "mac_m4max_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac-m4max.metal" + } + }, + "g7e_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.2xlarge" + } + }, + "g7e_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.4xlarge" + } + }, + "g7e_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.8xlarge" + } + }, + "g7e_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.12xlarge" + } + }, + "g7e_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.24xlarge" + } + }, + "g7e_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7e.48xlarge" + } + }, + "r8id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.large" + } + }, + "r8id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.xlarge" + } + }, + "r8id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.2xlarge" + } + }, + "r8id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.4xlarge" + } + }, + "r8id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.8xlarge" + } + }, + "r8id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.12xlarge" + } + }, + "r8id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.16xlarge" + } + }, + "r8id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.24xlarge" + } + }, + "r8id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.32xlarge" + } + }, + "r8id_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.48xlarge" + } + }, + "r8id_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.96xlarge" + } + }, + "r8id_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.metal-48xl" + } + }, + "r8id_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8id.metal-96xl" + } + }, + "c8id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.large" + } + }, + "c8id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.xlarge" + } + }, + "c8id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.2xlarge" + } + }, + "c8id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.4xlarge" + } + }, + "c8id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.8xlarge" + } + }, + "c8id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.12xlarge" + } + }, + "c8id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.16xlarge" + } + }, + "c8id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.24xlarge" + } + }, + "c8id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.32xlarge" + } + }, + "c8id_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.48xlarge" + } + }, + "c8id_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.96xlarge" + } + }, + "c8id_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.metal-48xl" + } + }, + "c8id_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8id.metal-96xl" + } + }, + "m8id_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.large" + } + }, + "m8id_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.xlarge" + } + }, + "m8id_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.2xlarge" + } + }, + "m8id_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.4xlarge" + } + }, + "m8id_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.8xlarge" + } + }, + "m8id_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.12xlarge" + } + }, + "m8id_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.16xlarge" + } + }, + "m8id_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.24xlarge" + } + }, + "m8id_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.32xlarge" + } + }, + "m8id_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.48xlarge" + } + }, + "m8id_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.96xlarge" + } + }, + "m8id_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.metal-48xl" + } + }, + "m8id_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8id.metal-96xl" + } + }, + "hpc8a_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hpc8a.96xlarge" + } + }, + "c8in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.large" + } + }, + "c8in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.xlarge" + } + }, + "c8in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.2xlarge" + } + }, + "c8in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.4xlarge" + } + }, + "c8in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.8xlarge" + } + }, + "c8in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.12xlarge" + } + }, + "c8in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.16xlarge" + } + }, + "c8in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.24xlarge" + } + }, + "c8in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.32xlarge" + } + }, + "c8in_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.48xlarge" + } + }, + "c8in_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.96xlarge" + } + }, + "c8in_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.metal-48xl" + } + }, + "c8in_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8in.metal-96xl" + } + }, + "c8ib_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.large" + } + }, + "c8ib_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.xlarge" + } + }, + "c8ib_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.2xlarge" + } + }, + "c8ib_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.4xlarge" + } + }, + "c8ib_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.8xlarge" + } + }, + "c8ib_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.12xlarge" + } + }, + "c8ib_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.16xlarge" + } + }, + "c8ib_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.24xlarge" + } + }, + "c8ib_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.32xlarge" + } + }, + "c8ib_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.48xlarge" + } + }, + "c8ib_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.96xlarge" + } + }, + "c8ib_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.metal-48xl" + } + }, + "c8ib_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ib.metal-96xl" + } + }, + "r8in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.large" + } + }, + "r8in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.xlarge" + } + }, + "r8in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.2xlarge" + } + }, + "r8in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.4xlarge" + } + }, + "r8in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.8xlarge" + } + }, + "r8in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.12xlarge" + } + }, + "r8in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.16xlarge" + } + }, + "r8in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.24xlarge" + } + }, + "r8in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.32xlarge" + } + }, + "r8in_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.48xlarge" + } + }, + "r8in_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.96xlarge" + } + }, + "r8ib_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.large" + } + }, + "r8ib_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.xlarge" + } + }, + "r8ib_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.2xlarge" + } + }, + "r8ib_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.4xlarge" + } + }, + "r8ib_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.8xlarge" + } + }, + "r8ib_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.12xlarge" + } + }, + "r8ib_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.16xlarge" + } + }, + "r8ib_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.24xlarge" + } + }, + "r8ib_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.32xlarge" + } + }, + "r8ib_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.48xlarge" + } + }, + "r8ib_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.96xlarge" + } + }, + "m8in_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.large" + } + }, + "m8in_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.xlarge" + } + }, + "m8in_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.2xlarge" + } + }, + "m8in_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.4xlarge" + } + }, + "m8in_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.8xlarge" + } + }, + "m8in_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.12xlarge" + } + }, + "m8in_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.16xlarge" + } + }, + "m8in_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.24xlarge" + } + }, + "m8in_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.32xlarge" + } + }, + "m8in_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.48xlarge" + } + }, + "m8in_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.96xlarge" + } + }, + "m8ib_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.large" + } + }, + "m8ib_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.xlarge" + } + }, + "m8ib_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.2xlarge" + } + }, + "m8ib_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.4xlarge" + } + }, + "m8ib_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.8xlarge" + } + }, + "m8ib_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.12xlarge" + } + }, + "m8ib_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.16xlarge" + } + }, + "m8ib_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.24xlarge" + } + }, + "m8ib_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.32xlarge" + } + }, + "m8ib_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.48xlarge" + } + }, + "m8ib_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.96xlarge" + } + }, + "m8ine_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.large" + } + }, + "m8ine_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.xlarge" + } + }, + "m8ine_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.2xlarge" + } + }, + "m8ine_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.4xlarge" + } + }, + "m8ine_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.8xlarge" + } + }, + "m8ine_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ine.12xlarge" + } + }, + "c8ine_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.large" + } + }, + "c8ine_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.xlarge" + } + }, + "c8ine_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.2xlarge" + } + }, + "c8ine_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.4xlarge" + } + }, + "c8ine_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.8xlarge" + } + }, + "c8ine_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c8ine.12xlarge" + } + }, + "m8idn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.large" + } + }, + "m8idn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.xlarge" + } + }, + "m8idn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.2xlarge" + } + }, + "m8idn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.4xlarge" + } + }, + "m8idn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.8xlarge" + } + }, + "m8idn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.12xlarge" + } + }, + "m8idn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.16xlarge" + } + }, + "m8idn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.24xlarge" + } + }, + "m8idn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.32xlarge" + } + }, + "m8idn_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.48xlarge" + } + }, + "m8idn_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.96xlarge" + } + }, + "r8idn_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.large" + } + }, + "r8idn_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.xlarge" + } + }, + "r8idn_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.2xlarge" + } + }, + "r8idn_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.4xlarge" + } + }, + "r8idn_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.8xlarge" + } + }, + "r8idn_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.12xlarge" + } + }, + "r8idn_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.16xlarge" + } + }, + "r8idn_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.24xlarge" + } + }, + "r8idn_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.32xlarge" + } + }, + "r8idn_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.48xlarge" + } + }, + "r8idn_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.96xlarge" + } + }, + "m8idb_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.large" + } + }, + "m8idb_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.xlarge" + } + }, + "m8idb_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.2xlarge" + } + }, + "m8idb_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.4xlarge" + } + }, + "m8idb_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.8xlarge" + } + }, + "m8idb_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.12xlarge" + } + }, + "m8idb_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.16xlarge" + } + }, + "m8idb_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.24xlarge" + } + }, + "m8idb_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.32xlarge" + } + }, + "m8idb_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.48xlarge" + } + }, + "m8idb_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.96xlarge" + } + }, + "r8idb_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.large" + } + }, + "r8idb_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.xlarge" + } + }, + "r8idb_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.2xlarge" + } + }, + "r8idb_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.4xlarge" + } + }, + "r8idb_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.8xlarge" + } + }, + "r8idb_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.12xlarge" + } + }, + "r8idb_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.16xlarge" + } + }, + "r8idb_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.24xlarge" + } + }, + "r8idb_32xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.32xlarge" + } + }, + "r8idb_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.48xlarge" + } + }, + "r8idb_96xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.96xlarge" + } + }, + "mac_m3ultra_metal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac-m3ultra.metal" + } + }, + "m9g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.large" + } + }, + "m9g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.xlarge" + } + }, + "m9g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.2xlarge" + } + }, + "m9g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.4xlarge" + } + }, + "m9g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.8xlarge" + } + }, + "m9g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.12xlarge" + } + }, + "m9g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.16xlarge" + } + }, + "m9g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.24xlarge" + } + }, + "m9g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.48xlarge" + } + }, + "m9g_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.metal-24xl" + } + }, + "m9g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.metal-48xl" + } + }, + "m9gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.large" + } + }, + "m9gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.xlarge" + } + }, + "m9gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.2xlarge" + } + }, + "m9gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.4xlarge" + } + }, + "m9gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.8xlarge" + } + }, + "m9gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.12xlarge" + } + }, + "m9gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.16xlarge" + } + }, + "m9gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.24xlarge" + } + }, + "m9gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.48xlarge" + } + }, + "m9gd_metal_24xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.metal-24xl" + } + }, + "m9gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.metal-48xl" + } + }, + "r8in_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.metal-48xl" + } + }, + "r8in_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8in.metal-96xl" + } + }, + "r8ib_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.metal-48xl" + } + }, + "r8ib_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8ib.metal-96xl" + } + }, + "r8idn_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.metal-48xl" + } + }, + "r8idn_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idn.metal-96xl" + } + }, + "r8idb_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.metal-48xl" + } + }, + "r8idb_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8idb.metal-96xl" + } + }, + "m8in_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.metal-48xl" + } + }, + "m8in_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8in.metal-96xl" + } + }, + "m8ib_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.metal-48xl" + } + }, + "m8ib_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8ib.metal-96xl" + } + }, + "m8idn_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.metal-48xl" + } + }, + "m8idn_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idn.metal-96xl" + } + }, + "m8idb_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.metal-48xl" + } + }, + "m8idb_metal_96xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m8idb.metal-96xl" + } + }, + "g7_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.2xlarge" + } + }, + "g7_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.4xlarge" + } + }, + "g7_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.8xlarge" + } + }, + "g7_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.12xlarge" + } + }, + "g7_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.24xlarge" + } + }, + "g7_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "g7.48xlarge" + } + }, + "c9g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.medium" + } + }, + "c9g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.large" + } + }, + "c9g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.xlarge" + } + }, + "c9g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.2xlarge" + } + }, + "c9g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.4xlarge" + } + }, + "c9g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.8xlarge" + } + }, + "c9g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.12xlarge" + } + }, + "c9g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.16xlarge" + } + }, + "c9g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.24xlarge" + } + }, + "c9g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.48xlarge" + } + }, + "c9g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9g.metal-48xl" + } + }, + "c9gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.medium" + } + }, + "c9gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.large" + } + }, + "c9gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.xlarge" + } + }, + "c9gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.2xlarge" + } + }, + "c9gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.4xlarge" + } + }, + "c9gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.8xlarge" + } + }, + "c9gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.12xlarge" + } + }, + "c9gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.16xlarge" + } + }, + "c9gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.24xlarge" + } + }, + "c9gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.48xlarge" + } + }, + "c9gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "c9gd.metal-48xl" + } + }, + "r9g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.medium" + } + }, + "r9g_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.large" + } + }, + "r9g_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.xlarge" + } + }, + "r9g_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.2xlarge" + } + }, + "r9g_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.4xlarge" + } + }, + "r9g_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.8xlarge" + } + }, + "r9g_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.12xlarge" + } + }, + "r9g_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.16xlarge" + } + }, + "r9g_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.24xlarge" + } + }, + "r9g_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.48xlarge" + } + }, + "r9g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9g.metal-48xl" + } + }, + "r9gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.medium" + } + }, + "r9gd_large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.large" + } + }, + "r9gd_xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.xlarge" + } + }, + "r9gd_2xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.2xlarge" + } + }, + "r9gd_4xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.4xlarge" + } + }, + "r9gd_8xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.8xlarge" + } + }, + "r9gd_12xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.12xlarge" + } + }, + "r9gd_16xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.16xlarge" + } + }, + "r9gd_24xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.24xlarge" + } + }, + "r9gd_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.48xlarge" + } + }, + "r9gd_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r9gd.metal-48xl" + } + }, + "m9g_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9g.medium" + } + }, + "t8i_nano": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t8i.nano" + } + }, + "t8i_micro": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t8i.micro" + } + }, + "t8i_small": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t8i.small" + } + }, + "t8i_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t8i.medium" + } + }, + "i8g_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "i8g.metal-48xl" + } + }, + "r8gb_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.48xlarge" + } + }, + "r8gb_metal_48xl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "r8gb.metal-48xl" + } + }, + "m9gd_medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m9gd.medium" + } + }, + "trn2u_48xlarge": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trn2u.48xlarge" + } + } + } + }, + "com.amazonaws.ec2#InstanceTypeHypervisor": { + "type": "enum", + "members": { + "NITRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nitro" + } + }, + "XEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "xen" + } + } + } + }, + "com.amazonaws.ec2#InstanceTypeInfo": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. For more information, see Instance types in the Amazon EC2\n User Guide.

", + "smithy.api#xmlName": "instanceType" + } + }, + "CurrentGeneration": { + "target": "com.amazonaws.ec2#CurrentGenerationFlag", + "traits": { + "aws.protocols#ec2QueryName": "CurrentGeneration", + "smithy.api#documentation": "

Indicates whether the instance type is current generation.

", + "smithy.api#xmlName": "currentGeneration" + } + }, + "FreeTierEligible": { + "target": "com.amazonaws.ec2#FreeTierEligibleFlag", + "traits": { + "aws.protocols#ec2QueryName": "FreeTierEligible", + "smithy.api#documentation": "

Indicates whether the instance type is eligible for the free tier.

", + "smithy.api#xmlName": "freeTierEligible" + } + }, + "SupportedUsageClasses": { + "target": "com.amazonaws.ec2#UsageClassTypeList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedUsageClasses", + "smithy.api#documentation": "

Indicates whether the instance type is offered for spot, On-Demand, or Capacity\n Blocks.

", + "smithy.api#xmlName": "supportedUsageClasses" + } + }, + "SupportedRootDeviceTypes": { + "target": "com.amazonaws.ec2#RootDeviceTypeList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedRootDeviceTypes", + "smithy.api#documentation": "

The supported root device types.

", + "smithy.api#xmlName": "supportedRootDeviceTypes" + } + }, + "SupportedVirtualizationTypes": { + "target": "com.amazonaws.ec2#VirtualizationTypeList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedVirtualizationTypes", + "smithy.api#documentation": "

The supported virtualization types.

", + "smithy.api#xmlName": "supportedVirtualizationTypes" + } + }, + "BareMetal": { + "target": "com.amazonaws.ec2#BareMetalFlag", + "traits": { + "aws.protocols#ec2QueryName": "BareMetal", + "smithy.api#documentation": "

Indicates whether the instance is a bare metal instance type.

", + "smithy.api#xmlName": "bareMetal" + } + }, + "Hypervisor": { + "target": "com.amazonaws.ec2#InstanceTypeHypervisor", + "traits": { + "aws.protocols#ec2QueryName": "Hypervisor", + "smithy.api#documentation": "

The hypervisor for the instance type.

", + "smithy.api#xmlName": "hypervisor" + } + }, + "ProcessorInfo": { + "target": "com.amazonaws.ec2#ProcessorInfo", + "traits": { + "aws.protocols#ec2QueryName": "ProcessorInfo", + "smithy.api#documentation": "

Describes the processor.

", + "smithy.api#xmlName": "processorInfo" + } + }, + "VCpuInfo": { + "target": "com.amazonaws.ec2#VCpuInfo", + "traits": { + "aws.protocols#ec2QueryName": "VCpuInfo", + "smithy.api#documentation": "

Describes the vCPU configurations for the instance type.

", + "smithy.api#xmlName": "vCpuInfo" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#MemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory for the instance type.

", + "smithy.api#xmlName": "memoryInfo" + } + }, + "InstanceStorageSupported": { + "target": "com.amazonaws.ec2#InstanceStorageFlag", + "traits": { + "aws.protocols#ec2QueryName": "InstanceStorageSupported", + "smithy.api#documentation": "

Indicates whether instance storage is supported.

", + "smithy.api#xmlName": "instanceStorageSupported" + } + }, + "InstanceStorageInfo": { + "target": "com.amazonaws.ec2#InstanceStorageInfo", + "traits": { + "aws.protocols#ec2QueryName": "InstanceStorageInfo", + "smithy.api#documentation": "

Describes the instance storage for the instance type.

", + "smithy.api#xmlName": "instanceStorageInfo" + } + }, + "EbsInfo": { + "target": "com.amazonaws.ec2#EbsInfo", + "traits": { + "aws.protocols#ec2QueryName": "EbsInfo", + "smithy.api#documentation": "

Describes the Amazon EBS settings for the instance type.

", + "smithy.api#xmlName": "ebsInfo" + } + }, + "NetworkInfo": { + "target": "com.amazonaws.ec2#NetworkInfo", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInfo", + "smithy.api#documentation": "

Describes the network settings for the instance type.

", + "smithy.api#xmlName": "networkInfo" + } + }, + "GpuInfo": { + "target": "com.amazonaws.ec2#GpuInfo", + "traits": { + "aws.protocols#ec2QueryName": "GpuInfo", + "smithy.api#documentation": "

Describes the GPU accelerator settings for the instance type.

", + "smithy.api#xmlName": "gpuInfo" + } + }, + "FpgaInfo": { + "target": "com.amazonaws.ec2#FpgaInfo", + "traits": { + "aws.protocols#ec2QueryName": "FpgaInfo", + "smithy.api#documentation": "

Describes the FPGA accelerator settings for the instance type.

", + "smithy.api#xmlName": "fpgaInfo" + } + }, + "PlacementGroupInfo": { + "target": "com.amazonaws.ec2#PlacementGroupInfo", + "traits": { + "aws.protocols#ec2QueryName": "PlacementGroupInfo", + "smithy.api#documentation": "

Describes the placement group settings for the instance type.

", + "smithy.api#xmlName": "placementGroupInfo" + } + }, + "InferenceAcceleratorInfo": { + "target": "com.amazonaws.ec2#InferenceAcceleratorInfo", + "traits": { + "aws.protocols#ec2QueryName": "InferenceAcceleratorInfo", + "smithy.api#documentation": "

Describes the Inference accelerator settings for the instance type.

", + "smithy.api#xmlName": "inferenceAcceleratorInfo" + } + }, + "HibernationSupported": { + "target": "com.amazonaws.ec2#HibernationFlag", + "traits": { + "aws.protocols#ec2QueryName": "HibernationSupported", + "smithy.api#documentation": "

Indicates whether On-Demand hibernation is supported.

", + "smithy.api#xmlName": "hibernationSupported" + } + }, + "BurstablePerformanceSupported": { + "target": "com.amazonaws.ec2#BurstablePerformanceFlag", + "traits": { + "aws.protocols#ec2QueryName": "BurstablePerformanceSupported", + "smithy.api#documentation": "

Indicates whether the instance type is a burstable performance T instance type. For more\n information, see Burstable performance\n instances.

", + "smithy.api#xmlName": "burstablePerformanceSupported" + } + }, + "DedicatedHostsSupported": { + "target": "com.amazonaws.ec2#DedicatedHostFlag", + "traits": { + "aws.protocols#ec2QueryName": "DedicatedHostsSupported", + "smithy.api#documentation": "

Indicates whether Dedicated Hosts are supported on the instance type.

", + "smithy.api#xmlName": "dedicatedHostsSupported" + } + }, + "AutoRecoverySupported": { + "target": "com.amazonaws.ec2#AutoRecoveryFlag", + "traits": { + "aws.protocols#ec2QueryName": "AutoRecoverySupported", + "smithy.api#documentation": "

Indicates whether Amazon CloudWatch action based recovery is supported.

", + "smithy.api#xmlName": "autoRecoverySupported" + } + }, + "SupportedBootModes": { + "target": "com.amazonaws.ec2#BootModeTypeList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedBootModes", + "smithy.api#documentation": "

The supported boot modes. For more information, see Boot modes in the Amazon EC2 User\n Guide.

", + "smithy.api#xmlName": "supportedBootModes" + } + }, + "NitroEnclavesSupport": { + "target": "com.amazonaws.ec2#NitroEnclavesSupport", + "traits": { + "aws.protocols#ec2QueryName": "NitroEnclavesSupport", + "smithy.api#documentation": "

Indicates whether Nitro Enclaves is supported.

", + "smithy.api#xmlName": "nitroEnclavesSupport" + } + }, + "NitroTpmSupport": { + "target": "com.amazonaws.ec2#NitroTpmSupport", + "traits": { + "aws.protocols#ec2QueryName": "NitroTpmSupport", + "smithy.api#documentation": "

Indicates whether NitroTPM is supported.

", + "smithy.api#xmlName": "nitroTpmSupport" + } + }, + "NitroTpmInfo": { + "target": "com.amazonaws.ec2#NitroTpmInfo", + "traits": { + "aws.protocols#ec2QueryName": "NitroTpmInfo", + "smithy.api#documentation": "

Describes the supported NitroTPM versions for the instance type.

", + "smithy.api#xmlName": "nitroTpmInfo" + } + }, + "MediaAcceleratorInfo": { + "target": "com.amazonaws.ec2#MediaAcceleratorInfo", + "traits": { + "aws.protocols#ec2QueryName": "MediaAcceleratorInfo", + "smithy.api#documentation": "

Describes the media accelerator settings for the instance type.

", + "smithy.api#xmlName": "mediaAcceleratorInfo" + } + }, + "NeuronInfo": { + "target": "com.amazonaws.ec2#NeuronInfo", + "traits": { + "aws.protocols#ec2QueryName": "NeuronInfo", + "smithy.api#documentation": "

Describes the Neuron accelerator settings for the instance type.

", + "smithy.api#xmlName": "neuronInfo" + } + }, + "PhcSupport": { + "target": "com.amazonaws.ec2#PhcSupport", + "traits": { + "aws.protocols#ec2QueryName": "PhcSupport", + "smithy.api#documentation": "

Indicates whether a local Precision Time Protocol (PTP) hardware clock (PHC) is\n supported.

", + "smithy.api#xmlName": "phcSupport" + } + }, + "RebootMigrationSupport": { + "target": "com.amazonaws.ec2#RebootMigrationSupport", + "traits": { + "aws.protocols#ec2QueryName": "RebootMigrationSupport", + "smithy.api#documentation": "

Indicates whether reboot migration during a user-initiated reboot is supported for\n instances that have a scheduled system-reboot event. For more information,\n see Enable or disable reboot migration in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "rebootMigrationSupport" + } + }, + "SupportedInRegion": { + "target": "com.amazonaws.ec2#SupportedInRegion", + "traits": { + "aws.protocols#ec2QueryName": "SupportedInRegion", + "smithy.api#documentation": "

Indicates whether the instance type is supported in the current Region.

", + "smithy.api#xmlName": "supportedInRegion" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instance type.

" + } + }, + "com.amazonaws.ec2#InstanceTypeInfoFromInstanceRequirements": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The matching instance type.

", + "smithy.api#xmlName": "instanceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

The list of instance types with the specified instance attributes.

" + } + }, + "com.amazonaws.ec2#InstanceTypeInfoFromInstanceRequirementsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeInfoFromInstanceRequirements", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceTypeInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceTypeItem": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type or wildcard pattern (for example, t3.* or\n m5.large).

", + "smithy.api#xmlName": "instanceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

An instance type name or wildcard pattern in an instance type specification.

" + } + }, + "com.amazonaws.ec2#InstanceTypeItemRequest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 24 + } + } + }, + "com.amazonaws.ec2#InstanceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceType" + } + }, + "com.amazonaws.ec2#InstanceTypeOffering": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. For more information, see Instance types in the Amazon EC2\n User Guide.

", + "smithy.api#xmlName": "instanceType" + } + }, + "LocationType": { + "target": "com.amazonaws.ec2#LocationType", + "traits": { + "aws.protocols#ec2QueryName": "LocationType", + "smithy.api#documentation": "

The location type.

", + "smithy.api#xmlName": "locationType" + } + }, + "Location": { + "target": "com.amazonaws.ec2#Location", + "traits": { + "aws.protocols#ec2QueryName": "Location", + "smithy.api#documentation": "

The identifier for the location. This depends on the location type. For example, if the\n location type is region, the location is the Region code (for example,\n us-east-2.)

", + "smithy.api#xmlName": "location" + } + } + }, + "traits": { + "smithy.api#documentation": "

The instance types offered.

" + } + }, + "com.amazonaws.ec2#InstanceTypeOfferingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceTypeSpecification": { + "type": "structure", + "members": { + "SupportedInstanceTypes": { + "target": "com.amazonaws.ec2#SupportedInstanceTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "SupportedInstanceTypeSet", + "smithy.api#documentation": "

The instance types that the AMI supports.

", + "smithy.api#xmlName": "supportedInstanceTypeSet" + } + }, + "UnsupportedInstanceTypes": { + "target": "com.amazonaws.ec2#UnsupportedInstanceTypeSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsupportedInstanceTypeSet", + "smithy.api#documentation": "

The instance types that the AMI does not support.

", + "smithy.api#xmlName": "unsupportedInstanceTypeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the instance type compatibility rules for an AMI, including lists of supported\n and unsupported instance type patterns.

" + } + }, + "com.amazonaws.ec2#InstanceTypeSpecificationRequest": { + "type": "structure", + "members": { + "SupportedInstanceTypes": { + "target": "com.amazonaws.ec2#SupportedInstanceTypeRequestSet", + "traits": { + "smithy.api#documentation": "

The instance types that the AMI supports. You can specify instance type names or use\n wildcard patterns (for example, t3.*).

\n

Constraints: Maximum 100 entries. Each entry must be 1-24 characters and match the pattern\n ^[A-Za-z0-9_.*-]+$. Consecutive wildcard characters (**) are not\n allowed. Entries must be unique within each list and across both lists; duplicate entries cause the request to fail.

", + "smithy.api#xmlName": "SupportedInstanceType" + } + }, + "UnsupportedInstanceTypes": { + "target": "com.amazonaws.ec2#UnsupportedInstanceTypeRequestSet", + "traits": { + "smithy.api#documentation": "

The instance types that the AMI does not support. You can specify instance type names or\n use wildcard patterns (for example, t3.*).

\n

Constraints: Maximum 100 entries. Each entry must be 1-24 characters and match the pattern\n ^[A-Za-z0-9_.*-]+$. Consecutive wildcard characters (**) are not\n allowed. Entries must be unique within each list and across both lists; duplicate entries cause the request to fail.

", + "smithy.api#xmlName": "UnsupportedInstanceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

The instance type specification for an AMI, which contains lists of supported and\n unsupported instance types that define which instance types are compatible with the AMI.

" + } + }, + "com.amazonaws.ec2#InstanceTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#InstanceTypesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InstanceUsage": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccountId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that is making use of the Capacity\n\t\t\tReservation.

", + "smithy.api#xmlName": "accountId" + } + }, + "UsedInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "UsedInstanceCount", + "smithy.api#documentation": "

The number of instances the Amazon Web Services account currently has in the Capacity\n\t\t\tReservation.

", + "smithy.api#xmlName": "usedInstanceCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Capacity Reservation usage.

" + } + }, + "com.amazonaws.ec2#InstanceUsageSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceUsage", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Integer": { + "type": "integer" + }, + "com.amazonaws.ec2#IntegerWithConstraints": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.ec2#IntegrateServices": { + "type": "structure", + "members": { + "AthenaIntegrations": { + "target": "com.amazonaws.ec2#AthenaIntegrationsSet", + "traits": { + "smithy.api#documentation": "

Information about the integration with Amazon Athena.

", + "smithy.api#xmlName": "AthenaIntegration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes service integrations with VPC Flow logs.

" + } + }, + "com.amazonaws.ec2#InterfacePermissionType": { + "type": "enum", + "members": { + "INSTANCE_ATTACH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSTANCE-ATTACH" + } + }, + "EIP_ASSOCIATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EIP-ASSOCIATE" + } + } + } + }, + "com.amazonaws.ec2#InterfaceProtocolType": { + "type": "enum", + "members": { + "VLAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VLAN" + } + }, + "GRE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GRE" + } + } + } + }, + "com.amazonaws.ec2#InternetGateway": { + "type": "structure", + "members": { + "Attachments": { + "target": "com.amazonaws.ec2#InternetGatewayAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentSet", + "smithy.api#documentation": "

Any VPCs attached to the internet gateway.

", + "smithy.api#xmlName": "attachmentSet" + } + }, + "InternetGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayId", + "smithy.api#documentation": "

The ID of the internet gateway.

", + "smithy.api#xmlName": "internetGatewayId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the internet gateway.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the internet gateway.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an internet gateway.

" + } + }, + "com.amazonaws.ec2#InternetGatewayAttachment": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the attachment. For an internet gateway, the state is\n\t\t\t\tavailable when attached to a VPC; otherwise, this value is not\n\t\t\treturned.

", + "smithy.api#xmlName": "state" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the attachment of a VPC to an internet gateway or an egress-only internet gateway.

" + } + }, + "com.amazonaws.ec2#InternetGatewayAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InternetGatewayAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InternetGatewayBlockMode": { + "type": "enum", + "members": { + "off": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "block_bidirectional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-bidirectional" + } + }, + "block_ingress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-ingress" + } + } + } + }, + "com.amazonaws.ec2#InternetGatewayExclusionMode": { + "type": "enum", + "members": { + "allow_bidirectional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allow-bidirectional" + } + }, + "allow_egress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allow-egress" + } + } + } + }, + "com.amazonaws.ec2#InternetGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#InternetGatewayIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InternetGatewayId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InternetGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InternetGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#InterruptibleCapacityAllocation": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

\n\t\t\tThe current number of instances allocated to the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "instanceCount" + } + }, + "TargetInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetInstanceCount", + "smithy.api#documentation": "

\n\t\t\tAfter your modify request, the requested number of instances allocated to interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "targetInstanceCount" + } + }, + "Status": { + "target": "com.amazonaws.ec2#InterruptibleCapacityReservationAllocationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

\n\t\t\tThe current status of the allocation (updating during reclamation, active when complete).\n\t\t

", + "smithy.api#xmlName": "status" + } + }, + "InterruptibleCapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InterruptibleCapacityReservationId", + "smithy.api#documentation": "

\n\t\t\tThe ID of the interruptible Capacity Reservation created from the allocation.\n\t\t

", + "smithy.api#xmlName": "interruptibleCapacityReservationId" + } + }, + "InterruptionType": { + "target": "com.amazonaws.ec2#InterruptionType", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionType", + "smithy.api#documentation": "

\n\t\t\tThe type of interruption policy applied to the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "interruptionType" + } + }, + "ZeroSizePreference": { + "target": "com.amazonaws.ec2#ZeroSizePreference", + "traits": { + "aws.protocols#ec2QueryName": "ZeroSizePreference", + "smithy.api#documentation": "

\n\t\t\tSpecifies how Amazon EC2 handles the interruptible Capacity Reservation when you reduce its allocation to zero instances. A value of retain keeps the interruptible Capacity Reservation active at zero capacity so that you can allocate instances to it again later. A value of default cancels the interruptible Capacity Reservation and returns the capacity to your source Capacity Reservation.\n\t\t

", + "smithy.api#xmlName": "zeroSizePreference" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n\t\t\tRepresents the allocation of capacity from a source reservation to an interruptible reservation, tracking current and target instance counts for allocation management.\n\t\t

" + } + }, + "com.amazonaws.ec2#InterruptibleCapacityReservationAllocationStatus": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "updating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "updating" + } + }, + "canceling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceling" + } + }, + "canceled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#InterruptionInfo": { + "type": "structure", + "members": { + "SourceCapacityReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceCapacityReservationId", + "smithy.api#documentation": "

\n\t\t\tThe ID of the source Capacity Reservation from which the interruptible reservation was created.\n\t\t

", + "smithy.api#xmlName": "sourceCapacityReservationId" + } + }, + "InterruptionType": { + "target": "com.amazonaws.ec2#InterruptionType", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionType", + "smithy.api#documentation": "

\n\t\t\tThe interruption type that determines how instances are terminated when capacity is reclaimed.\n\t\t

", + "smithy.api#xmlName": "interruptionType" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n\t\t\tContains information about how and when instances in an interruptible reservation can be terminated when capacity is reclaimed.\n\t\t

" + } + }, + "com.amazonaws.ec2#InterruptionType": { + "type": "enum", + "members": { + "adhoc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "adhoc" + } + } + } + }, + "com.amazonaws.ec2#IpAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 15 + }, + "smithy.api#pattern": "^([0-9]{1,3}.){3}[0-9]{1,3}$" + } + }, + "com.amazonaws.ec2#IpAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpAddressType": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "dualstack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dualstack" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + } + } + }, + "com.amazonaws.ec2#IpList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpPermission": { + "type": "structure", + "members": { + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp, icmpv6) \n or number (see Protocol Numbers).

\n

Use -1 to specify all protocols. When authorizing\n security group rules, specifying -1 or a protocol number other than\n tcp, udp, icmp, or icmpv6 allows\n traffic on all ports, regardless of any port range you specify. For tcp,\n udp, and icmp, you must specify a port range. For icmpv6,\n the port range is optional; if you omit the port range, traffic for all types and codes is allowed.

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). \n If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).

", + "smithy.api#xmlName": "toPort" + } + }, + "UserIdGroupPairs": { + "target": "com.amazonaws.ec2#UserIdGroupPairList", + "traits": { + "aws.protocols#ec2QueryName": "Groups", + "smithy.api#documentation": "

The security group and Amazon Web Services account ID pairs.

", + "smithy.api#xmlName": "groups" + } + }, + "IpRanges": { + "target": "com.amazonaws.ec2#IpRangeList", + "traits": { + "aws.protocols#ec2QueryName": "IpRanges", + "smithy.api#documentation": "

The IPv4 address ranges.

", + "smithy.api#xmlName": "ipRanges" + } + }, + "Ipv6Ranges": { + "target": "com.amazonaws.ec2#Ipv6RangeList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Ranges", + "smithy.api#documentation": "

The IPv6 address ranges.

", + "smithy.api#xmlName": "ipv6Ranges" + } + }, + "PrefixListIds": { + "target": "com.amazonaws.ec2#PrefixListIdList", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListIds", + "smithy.api#documentation": "

The prefix list IDs.

", + "smithy.api#xmlName": "prefixListIds" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the permissions for a security group rule.

" + } + }, + "com.amazonaws.ec2#IpPermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpPermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpPrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpRange": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the security group rule that references this IPv4 address range.

\n

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9,\n spaces, and ._-:/()#,@[]+=&;{}!$*

", + "smithy.api#xmlName": "description" + } + }, + "CidrIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIp", + "smithy.api#documentation": "

The IPv4 address range. You can either specify a CIDR block or a source security group,\n not both. To specify a single IPv4 address, use the /32 prefix length.

\n \n

\n Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, \n Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will \n return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the \n non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized \n form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.

\n
", + "smithy.api#xmlName": "cidrIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 address range.

" + } + }, + "com.amazonaws.ec2#IpRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpRanges": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpScopeEnum": { + "type": "enum", + "members": { + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + } + } + }, + "com.amazonaws.ec2#IpSource": { + "type": "enum", + "members": { + "amazon": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon" + } + }, + "byoip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "byoip" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ec2#IpVersionEnum": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "IPV6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + } + } + }, + "com.amazonaws.ec2#Ipam": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the IPAM.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The ID of the IPAM.

", + "smithy.api#xmlName": "ipamId" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the IPAM.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "PublicDefaultScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "aws.protocols#ec2QueryName": "PublicDefaultScopeId", + "smithy.api#documentation": "

The ID of the IPAM's default public scope.

", + "smithy.api#xmlName": "publicDefaultScopeId" + } + }, + "PrivateDefaultScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDefaultScopeId", + "smithy.api#documentation": "

The ID of the IPAM's default private scope.

", + "smithy.api#xmlName": "privateDefaultScopeId" + } + }, + "ScopeCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ScopeCount", + "smithy.api#documentation": "

The number of scopes in the IPAM. The scope quota is 5. For more information on quotas, see Quotas in IPAM in the Amazon VPC IPAM User Guide.\n

", + "smithy.api#xmlName": "scopeCount" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description for the IPAM.

", + "smithy.api#xmlName": "description" + } + }, + "OperatingRegions": { + "target": "com.amazonaws.ec2#IpamOperatingRegionSet", + "traits": { + "aws.protocols#ec2QueryName": "OperatingRegionSet", + "smithy.api#documentation": "

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "operatingRegionSet" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the IPAM.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "tagSet" + } + }, + "DefaultResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "DefaultResourceDiscoveryId", + "smithy.api#documentation": "

The IPAM's default resource discovery ID.

", + "smithy.api#xmlName": "defaultResourceDiscoveryId" + } + }, + "DefaultResourceDiscoveryAssociationId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "DefaultResourceDiscoveryAssociationId", + "smithy.api#documentation": "

The IPAM's default resource discovery association ID.

", + "smithy.api#xmlName": "defaultResourceDiscoveryAssociationId" + } + }, + "ResourceDiscoveryAssociationCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ResourceDiscoveryAssociationCount", + "smithy.api#documentation": "

The IPAM's resource discovery association count.

", + "smithy.api#xmlName": "resourceDiscoveryAssociationCount" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

The state message.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "Tier": { + "target": "com.amazonaws.ec2#IpamTier", + "traits": { + "aws.protocols#ec2QueryName": "Tier", + "smithy.api#documentation": "

IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see Amazon VPC pricing > IPAM tab.

", + "smithy.api#xmlName": "tier" + } + }, + "EnablePrivateGua": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnablePrivateGua", + "smithy.api#documentation": "

Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.

", + "smithy.api#xmlName": "enablePrivateGua" + } + }, + "MeteredAccount": { + "target": "com.amazonaws.ec2#IpamMeteredAccount", + "traits": { + "aws.protocols#ec2QueryName": "MeteredAccount", + "smithy.api#documentation": "

A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see Enable cost distribution in the Amazon VPC IPAM User Guide.

\n

Possible values:

\n
    \n
  • \n

    \n ipam-owner (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.

    \n
  • \n
  • \n

    \n resource-owner: The Amazon Web Services account that owns the IP address is charged for the active IP address.

    \n
  • \n
", + "smithy.api#xmlName": "meteredAccount" + } + } + }, + "traits": { + "smithy.api#documentation": "

IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#IpamAddressHistoryMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#IpamAddressHistoryRecord": { + "type": "structure", + "members": { + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the resource owner.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the resource.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamAddressHistoryResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of the resource.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceCidr", + "smithy.api#documentation": "

The CIDR of the resource.

", + "smithy.api#xmlName": "resourceCidr" + } + }, + "ResourceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceName", + "smithy.api#documentation": "

The name of the resource.

", + "smithy.api#xmlName": "resourceName" + } + }, + "ResourceComplianceStatus": { + "target": "com.amazonaws.ec2#IpamComplianceStatus", + "traits": { + "aws.protocols#ec2QueryName": "ResourceComplianceStatus", + "smithy.api#documentation": "

The compliance status of a resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "resourceComplianceStatus" + } + }, + "ResourceOverlapStatus": { + "target": "com.amazonaws.ec2#IpamOverlapStatus", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOverlapStatus", + "smithy.api#documentation": "

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "resourceOverlapStatus" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The VPC ID of the resource.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SampledStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampledStartTime", + "smithy.api#documentation": "

Sampled start time of the resource-to-CIDR association within the IPAM scope. Changes are picked up in periodic snapshots, so the start time may have occurred before this specific time.

", + "smithy.api#xmlName": "sampledStartTime" + } + }, + "SampledEndTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampledEndTime", + "smithy.api#documentation": "

Sampled end time of the resource-to-CIDR association within the IPAM scope. Changes are picked up in periodic snapshots, so the end time may have occurred before this specific time.

", + "smithy.api#xmlName": "sampledEndTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

The historical record of a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#IpamAddressHistoryRecordSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamAddressHistoryRecord", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamAddressHistoryResourceType": { + "type": "enum", + "members": { + "eip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eip" + } + }, + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet" + } + }, + "network_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-interface" + } + }, + "instance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + } + } + }, + "com.amazonaws.ec2#IpamAssociatedResourceDiscoveryStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-found" + } + } + } + }, + "com.amazonaws.ec2#IpamByoipAdvertisementType": { + "type": "enum", + "members": { + "regional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "regional" + } + }, + "global": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "global" + } + } + }, + "traits": { + "smithy.api#documentation": "

The advertisement type of a BYOIP route.

" + } + }, + "com.amazonaws.ec2#IpamByoipCidrState": { + "type": "enum", + "members": { + "advertised": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advertised" + } + }, + "deprovisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioned" + } + }, + "failed_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-deprovision" + } + }, + "failed_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-provision" + } + }, + "pending_advertising": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-advertising" + } + }, + "pending_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-deprovision" + } + }, + "pending_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-provision" + } + }, + "pending_withdrawal": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-withdrawal" + } + }, + "provisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned" + } + }, + "provisioned_not_publicly_advertisable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned-not-publicly-advertisable" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of a BYOIP CIDR.

" + } + }, + "com.amazonaws.ec2#IpamCidrAuthorizationContext": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The plain-text authorization message for the prefix and account.

" + } + }, + "Signature": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The signed authorization message for the prefix and account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP.

" + } + }, + "com.amazonaws.ec2#IpamComplianceStatus": { + "type": "enum", + "members": { + "compliant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "compliant" + } + }, + "noncompliant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "noncompliant" + } + }, + "unmanaged": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unmanaged" + } + }, + "ignored": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ignored" + } + } + } + }, + "com.amazonaws.ec2#IpamDiscoveredAccount": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccountId", + "smithy.api#documentation": "

The account ID.

", + "smithy.api#xmlName": "accountId" + } + }, + "DiscoveryRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DiscoveryRegion", + "smithy.api#documentation": "

The Amazon Web Services Region that the account information is returned from. \n An account can be discovered in multiple regions and will have a separate discovered account for each Region.

", + "smithy.api#xmlName": "discoveryRegion" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#IpamDiscoveryFailureReason", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

The resource discovery failure reason.

", + "smithy.api#xmlName": "failureReason" + } + }, + "LastAttemptedDiscoveryTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastAttemptedDiscoveryTime", + "smithy.api#documentation": "

The last attempted resource discovery time.

", + "smithy.api#xmlName": "lastAttemptedDiscoveryTime" + } + }, + "LastSuccessfulDiscoveryTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastSuccessfulDiscoveryTime", + "smithy.api#documentation": "

The last successful resource discovery time.

", + "smithy.api#xmlName": "lastSuccessfulDiscoveryTime" + } + }, + "OrganizationalUnitId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationalUnitId", + "smithy.api#documentation": "

The ID of an Organizational Unit in Amazon Web Services Organizations.

", + "smithy.api#xmlName": "organizationalUnitId" + } + } + }, + "traits": { + "smithy.api#documentation": "

An IPAM discovered account. A discovered account is an Amazon Web Services account that is monitored under a resource discovery. If you have integrated IPAM with Amazon Web Services Organizations, all accounts in the organization are discovered accounts.

" + } + }, + "com.amazonaws.ec2#IpamDiscoveredAccountSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamDiscoveredAccount", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamDiscoveredPublicAddress": { + "type": "structure", + "members": { + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryId", + "smithy.api#documentation": "

The resource discovery ID.

", + "smithy.api#xmlName": "ipamResourceDiscoveryId" + } + }, + "AddressRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressRegion", + "smithy.api#documentation": "

The Region of the resource the IP address is assigned to.

", + "smithy.api#xmlName": "addressRegion" + } + }, + "Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Address", + "smithy.api#documentation": "

The IP address.

", + "smithy.api#xmlName": "address" + } + }, + "AddressOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressOwnerId", + "smithy.api#documentation": "

The ID of the owner of the resource the IP address is assigned to.

", + "smithy.api#xmlName": "addressOwnerId" + } + }, + "AddressAllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressAllocationId", + "smithy.api#documentation": "

The allocation ID of the resource the IP address is assigned to.

", + "smithy.api#xmlName": "addressAllocationId" + } + }, + "AssociationStatus": { + "target": "com.amazonaws.ec2#IpamPublicAddressAssociationStatus", + "traits": { + "aws.protocols#ec2QueryName": "AssociationStatus", + "smithy.api#documentation": "

The association status.

", + "smithy.api#xmlName": "associationStatus" + } + }, + "AddressType": { + "target": "com.amazonaws.ec2#IpamPublicAddressType", + "traits": { + "aws.protocols#ec2QueryName": "AddressType", + "smithy.api#documentation": "

The IP address type.

", + "smithy.api#xmlName": "addressType" + } + }, + "Service": { + "target": "com.amazonaws.ec2#IpamPublicAddressAwsService", + "traits": { + "aws.protocols#ec2QueryName": "Service", + "smithy.api#documentation": "

The Amazon Web Services service associated with the IP address.

", + "smithy.api#xmlName": "service" + } + }, + "ServiceResource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceResource", + "smithy.api#documentation": "

The resource ARN or ID.

", + "smithy.api#xmlName": "serviceResource" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC that the resource with the assigned IP address is in.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet that the resource with the assigned IP address is in.

", + "smithy.api#xmlName": "subnetId" + } + }, + "PublicIpv4PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4PoolId", + "smithy.api#documentation": "

The ID of the public IPv4 pool that the resource with the assigned IP address is from.

", + "smithy.api#xmlName": "publicIpv4PoolId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The network interface ID of the resource with the assigned IP address.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "NetworkInterfaceDescription": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceDescription", + "smithy.api#documentation": "

The description of the network interface that IP address is assigned to.

", + "smithy.api#xmlName": "networkInterfaceDescription" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The instance ID of the instance the assigned IP address is assigned to.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#IpamPublicAddressTags", + "traits": { + "aws.protocols#ec2QueryName": "Tags", + "smithy.api#documentation": "

Tags associated with the IP address.

", + "smithy.api#xmlName": "tags" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The Availability Zone (AZ) or Local Zone (LZ) network border group that the resource that the IP address is assigned to is in. Defaults to an AZ network border group. For more information on available Local Zones, see Local Zone availability in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#IpamPublicAddressSecurityGroupList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupSet", + "smithy.api#documentation": "

Security groups associated with the resource that the IP address is assigned to.

", + "smithy.api#xmlName": "securityGroupSet" + } + }, + "SampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampleTime", + "smithy.api#documentation": "

The last successful resource discovery time.

", + "smithy.api#xmlName": "sampleTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

A public IP Address discovered by IPAM.

" + } + }, + "com.amazonaws.ec2#IpamDiscoveredPublicAddressSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamDiscoveredPublicAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamDiscoveredResourceCidr": { + "type": "structure", + "members": { + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryId", + "smithy.api#documentation": "

The resource discovery ID.

", + "smithy.api#xmlName": "ipamResourceDiscoveryId" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The resource Region.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The resource ID.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The resource owner ID.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "ResourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceCidr", + "smithy.api#documentation": "

The resource CIDR.

", + "smithy.api#xmlName": "resourceCidr" + } + }, + "IpSource": { + "target": "com.amazonaws.ec2#IpamResourceCidrIpSource", + "traits": { + "aws.protocols#ec2QueryName": "IpSource", + "smithy.api#documentation": "

The source that allocated the IP address space. byoip or amazon indicates public IP address space allocated by Amazon or space that you have allocated with Bring your own IP (BYOIP). none indicates private space.

", + "smithy.api#xmlName": "ipSource" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceTags": { + "target": "com.amazonaws.ec2#IpamResourceTagList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTagSet", + "smithy.api#documentation": "

The resource tags.

", + "smithy.api#xmlName": "resourceTagSet" + } + }, + "IpUsage": { + "target": "com.amazonaws.ec2#BoxedDouble", + "traits": { + "aws.protocols#ec2QueryName": "IpUsage", + "smithy.api#documentation": "

The percentage of IP address space in use. To convert the decimal to a percentage, multiply the decimal by 100. Note the following:

\n
    \n
  • \n

    For resources that are VPCs, this is the percentage of IP address space in the VPC that's taken up by subnet CIDRs.\n

    \n
  • \n
  • \n

    For resources that are subnets, if the subnet has an IPv4 CIDR provisioned to it, this is the percentage of IPv4 address space in the subnet that's in use. If the subnet has an IPv6 CIDR provisioned to it, the percentage of IPv6 address space in use is not represented. The percentage of IPv6 address space in use cannot currently be calculated.\n

    \n
  • \n
  • \n

    For resources that are public IPv4 pools, this is the percentage of IP address space in the pool that's been allocated to Elastic IP addresses (EIPs).\n

    \n
  • \n
", + "smithy.api#xmlName": "ipUsage" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The VPC ID.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The subnet ID.

", + "smithy.api#xmlName": "subnetId" + } + }, + "NetworkInterfaceAttachmentStatus": { + "target": "com.amazonaws.ec2#IpamNetworkInterfaceAttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceAttachmentStatus", + "smithy.api#documentation": "

For elastic network interfaces, this is the status of whether or not the elastic network interface is attached.

", + "smithy.api#xmlName": "networkInterfaceAttachmentStatus" + } + }, + "SampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampleTime", + "smithy.api#documentation": "

The last successful resource discovery time.

", + "smithy.api#xmlName": "sampleTime" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

An IPAM discovered resource CIDR. A discovered resource is a resource CIDR monitored under a resource discovery. The following resources can be discovered: VPCs, Public IPv4 pools, VPC subnets, and Elastic IP addresses. The discovered resource CIDR is the IP address range in CIDR notation that is associated with the resource.

" + } + }, + "com.amazonaws.ec2#IpamDiscoveredResourceCidrSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamDiscoveredResourceCidr", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamDiscoveredRoute": { + "type": "structure", + "members": { + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryId", + "smithy.api#documentation": "

The ID of the IPAM resource discovery that discovered the route.

", + "smithy.api#xmlName": "ipamResourceDiscoveryId" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region where the route was discovered.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the resource owner.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IP address prefix of the discovered route in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The Autonomous System Number (ASN) that originates the route.

", + "smithy.api#xmlName": "asn" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamByoipCidrState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the BYOIP CIDR. Possible values:

\n
    \n
  • \n

    \n advertised - The CIDR is being advertised.

    \n
  • \n
  • \n

    \n deprovisioned - The CIDR has been deprovisioned.

    \n
  • \n
  • \n

    \n failed-deprovision - Deprovisioning failed.

    \n
  • \n
  • \n

    \n failed-provision - Provisioning failed.

    \n
  • \n
  • \n

    \n pending-deprovision - Deprovisioning is in progress.

    \n
  • \n
  • \n

    \n pending-provision - Provisioning is in progress.

    \n
  • \n
  • \n

    \n provisioned - The CIDR is provisioned.

    \n
  • \n
  • \n

    \n provisioned-not-publicly-advertisable - The CIDR is provisioned but not publicly advertisable.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "AdvertisementType": { + "target": "com.amazonaws.ec2#IpamByoipAdvertisementType", + "traits": { + "aws.protocols#ec2QueryName": "AdvertisementType", + "smithy.api#documentation": "

The advertisement type of the route. Possible values:

\n
    \n
  • \n

    \n regional - The IP address is advertised from a single location (regional services such as Amazon EC2).

    \n
  • \n
  • \n

    \n global - The IP address is advertised from multiple global locations simultaneously (global services such as Amazon CloudFront).

    \n
  • \n
", + "smithy.api#xmlName": "advertisementType" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The network border group for the route.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the BYOIP pool associated with the route.

", + "smithy.api#xmlName": "poolId" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The ID of the IPAM pool associated with the route.

", + "smithy.api#xmlName": "ipamPoolId" + } + }, + "SampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampleTime", + "smithy.api#documentation": "

The time when the route was last sampled.

", + "smithy.api#xmlName": "sampleTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a BGP route discovered by IPAM resource discovery.

" + } + }, + "com.amazonaws.ec2#IpamDiscoveredRouteSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamDiscoveredRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamDiscoveryFailureCode": { + "type": "enum", + "members": { + "assume_role_failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "assume-role-failure" + } + }, + "throttling_failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "throttling-failure" + } + }, + "unauthorized_failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unauthorized-failure" + } + } + } + }, + "com.amazonaws.ec2#IpamDiscoveryFailureReason": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#IpamDiscoveryFailureCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The discovery failure code.

\n
    \n
  • \n

    \n assume-role-failure - IPAM could not assume the Amazon Web Services IAM service-linked role. This could be because of any of the following:

    \n
      \n
    • \n

      SLR has not been created yet and IPAM is still creating it.

      \n
    • \n
    • \n

      You have opted-out of the IPAM home Region.

      \n
    • \n
    • \n

      Account you are using as your IPAM account has been suspended.

      \n
    • \n
    \n
  • \n
  • \n

    \n throttling-failure - IPAM account is already using the allotted transactions per second and IPAM is receiving a throttling error when assuming the Amazon Web Services IAM SLR.

    \n
  • \n
  • \n

    \n unauthorized-failure - Amazon Web Services account making the request is not authorized. For more information, see AuthFailure in the Amazon Elastic Compute Cloud API Reference.

    \n
  • \n
", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The discovery failure message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

The discovery failure reason.

" + } + }, + "com.amazonaws.ec2#IpamExternalResourceVerificationToken": { + "type": "structure", + "members": { + "IpamExternalResourceVerificationTokenId": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationTokenId", + "traits": { + "aws.protocols#ec2QueryName": "IpamExternalResourceVerificationTokenId", + "smithy.api#documentation": "

The ID of the token.

", + "smithy.api#xmlName": "ipamExternalResourceVerificationTokenId" + } + }, + "IpamExternalResourceVerificationTokenArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamExternalResourceVerificationTokenArn", + "smithy.api#documentation": "

Token ARN.

", + "smithy.api#xmlName": "ipamExternalResourceVerificationTokenArn" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The ID of the IPAM that created the token.

", + "smithy.api#xmlName": "ipamId" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

ARN of the IPAM that created the token.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

Region of the IPAM that created the token.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "TokenValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TokenValue", + "smithy.api#documentation": "

Token value.

", + "smithy.api#xmlName": "tokenValue" + } + }, + "TokenName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TokenName", + "smithy.api#documentation": "

Token name.

", + "smithy.api#xmlName": "tokenName" + } + }, + "NotAfter": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotAfter", + "smithy.api#documentation": "

Token expiration.

", + "smithy.api#xmlName": "notAfter" + } + }, + "Status": { + "target": "com.amazonaws.ec2#TokenState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

Token status.

", + "smithy.api#xmlName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Token tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationTokenState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

Token state.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

A verification token is an Amazon Web Services-generated random value that you can use to prove ownership of an external resource. For example, you can use a verification token to validate that you control a public IP address range when you bring an IP address range to Amazon Web Services (BYOIP).\n

" + } + }, + "com.amazonaws.ec2#IpamExternalResourceVerificationTokenId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamExternalResourceVerificationTokenSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationToken", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamExternalResourceVerificationTokenState": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#IpamId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociation": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the internet registry association.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociationId", + "smithy.api#documentation": "

The ID of the internet registry association.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociationId" + } + }, + "IpamInternetRegistryAssociationArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamInternetRegistryAssociationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the internet registry association.

", + "smithy.api#xmlName": "ipamInternetRegistryAssociationArn" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The ID of the associated IPAM.

", + "smithy.api#xmlName": "ipamId" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the IPAM.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "Rir": { + "target": "com.amazonaws.ec2#Rir", + "traits": { + "aws.protocols#ec2QueryName": "Rir", + "smithy.api#documentation": "

The Regional Internet Registry. Possible values:

\n
    \n
  • \n

    \n ripe - RIPE NCC (Europe, the Middle East, and Central Asia).

    \n
  • \n
  • \n

    \n apnic - APNIC (Asia Pacific).

    \n
  • \n
  • \n

    \n arin - ARIN (North America).

    \n
  • \n
  • \n

    \n lacnic - LACNIC (Latin America and the Caribbean).

    \n
  • \n
", + "smithy.api#xmlName": "rir" + } + }, + "OrganizationHandle": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationHandle", + "smithy.api#documentation": "

The organization handle at the internet registry.

", + "smithy.api#xmlName": "organizationHandle" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the internet registry association.

", + "smithy.api#xmlName": "description" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the internet registry association. Valid values: pending-activation | pending-enable | create-in-progress | create-failed | enable-in-progress | enable-complete | enable-failed | delete-in-progress | delete-complete | delete-failed.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message describing the current state of the internet registry association, including additional details such as the reason for a failure.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "ChildRequestXml": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ChildRequestXml", + "smithy.api#documentation": "

The XML content for the child request to be submitted to the internet registry to complete the BPKI setup.

", + "smithy.api#xmlName": "childRequestXml" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the internet registry association.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an association between an IPAM and a Regional Internet Registry (RIR) for delegated RPKI management.

" + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationAsn": { + "type": "structure", + "members": { + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The Autonomous System Number.

", + "smithy.api#xmlName": "asn" + } + }, + "LastObservedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastObservedAt", + "smithy.api#documentation": "

The time when the ASN was last observed at the internet registry.

", + "smithy.api#xmlName": "lastObservedAt" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an Autonomous System Number (ASN) registered at an internet registry and associated with an IPAM.

" + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationAsnSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationAsn", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationCidr": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IP address prefix in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "LastObservedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastObservedAt", + "smithy.api#documentation": "

The time when the CIDR was last observed at the internet registry.

", + "smithy.api#xmlName": "lastObservedAt" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IP address CIDR registered at an internet registry and associated with an IPAM.

" + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationCidrSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationCidr", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamInternetRegistryAssociationState": { + "type": "enum", + "members": { + "pending_enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-enable" + } + }, + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "enable_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable-in-progress" + } + }, + "enable_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable-complete" + } + }, + "enable_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable-failed" + } + }, + "disable_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable-in-progress" + } + }, + "disable_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable-complete" + } + }, + "disable_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of an IPAM internet registry association.

" + } + }, + "com.amazonaws.ec2#IpamManagementState": { + "type": "enum", + "members": { + "managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "managed" + } + }, + "unmanaged": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unmanaged" + } + }, + "ignored": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ignored" + } + } + } + }, + "com.amazonaws.ec2#IpamMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#IpamMeteredAccount": { + "type": "enum", + "members": { + "ipam_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-owner" + } + }, + "resource_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-owner" + } + } + } + }, + "com.amazonaws.ec2#IpamNetmaskLength": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.ec2#IpamNetworkInterfaceAttachmentStatus": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "in_use": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-use" + } + } + } + }, + "com.amazonaws.ec2#IpamOperatingRegion": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RegionName", + "smithy.api#documentation": "

The name of the operating Region.

", + "smithy.api#xmlName": "regionName" + } + } + }, + "traits": { + "smithy.api#documentation": "

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#IpamOperatingRegionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamOperatingRegion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsEntityPath", + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. For more information on the entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

", + "smithy.api#xmlName": "organizationsEntityPath" + } + } + }, + "traits": { + "smithy.api#documentation": "

If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.

" + } + }, + "com.amazonaws.ec2#IpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamOrganizationalUnitExclusion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamOverlapStatus": { + "type": "enum", + "members": { + "overlapping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "overlapping" + } + }, + "nonoverlapping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nonoverlapping" + } + }, + "ignored": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ignored" + } + } + } + }, + "com.amazonaws.ec2#IpamPolicy": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The account ID that owns the IPAM policy.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyId", + "smithy.api#documentation": "

The ID of the IPAM policy.

", + "smithy.api#xmlName": "ipamPolicyId" + } + }, + "IpamPolicyArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM policy.

", + "smithy.api#xmlName": "ipamPolicyArn" + } + }, + "IpamPolicyRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyRegion", + "smithy.api#documentation": "

The Region of the IPAM policy.

", + "smithy.api#xmlName": "ipamPolicyRegion" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamPolicyState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the IPAM policy.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message about the state of the IPAM policy.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the IPAM policy.

", + "smithy.api#xmlName": "tagSet" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The ID of the IPAM this policy belongs to.

", + "smithy.api#xmlName": "ipamId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

" + } + }, + "com.amazonaws.ec2#IpamPolicyAllocationRule": { + "type": "structure", + "members": { + "SourceIpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "SourceIpamPoolId", + "smithy.api#documentation": "

The ID of the source IPAM pool for the allocation rule.

\n

An IPAM pool is a collection of IP addresses in IPAM that can be allocated to Amazon Web Services resources.

", + "smithy.api#xmlName": "sourceIpamPoolId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an IPAM policy allocation rule.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

" + } + }, + "com.amazonaws.ec2#IpamPolicyAllocationRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPolicyAllocationRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPolicyAllocationRuleListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPolicyAllocationRuleRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPolicyAllocationRuleRequest": { + "type": "structure", + "members": { + "SourceIpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#documentation": "

The ID of the source IPAM pool for the requested allocation rule.

\n

An IPAM pool is a collection of IP addresses in IPAM that can be allocated to Amazon Web Services resources.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a requested IPAM policy allocation rule.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

" + } + }, + "com.amazonaws.ec2#IpamPolicyDocument": { + "type": "structure", + "members": { + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyId", + "smithy.api#documentation": "

The ID of the IPAM policy.

", + "smithy.api#xmlName": "ipamPolicyId" + } + }, + "Locale": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Locale", + "smithy.api#documentation": "

The locale of the IPAM policy document.

", + "smithy.api#xmlName": "locale" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPolicyResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type of the IPAM policy document.

\n

The Amazon Web Services service or resource type that can use IP addresses through IPAM policies. Supported services and resource types include:

\n
    \n
  • \n

    Elastic IP addresses

    \n
  • \n
", + "smithy.api#xmlName": "resourceType" + } + }, + "AllocationRules": { + "target": "com.amazonaws.ec2#IpamPolicyAllocationRuleList", + "traits": { + "aws.protocols#ec2QueryName": "AllocationRuleSet", + "smithy.api#documentation": "

The allocation rules in the IPAM policy document.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

", + "smithy.api#xmlName": "allocationRuleSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an IPAM policy.

" + } + }, + "com.amazonaws.ec2#IpamPolicyDocumentSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPolicyDocument", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPolicyId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPolicyManagedBy": { + "type": "enum", + "members": { + "account": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account" + } + }, + "delegated_administrator_for_ipam": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delegated-administrator-for-ipam" + } + } + } + }, + "com.amazonaws.ec2#IpamPolicyOrganizationTarget": { + "type": "structure", + "members": { + "OrganizationTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationTargetId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Organizations target.

\n

A target can be an individual Amazon Web Services account or an entity within an Amazon Web Services Organization to which an IPAM policy can be applied.

", + "smithy.api#xmlName": "organizationTargetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Organizations target for an IPAM policy.

" + } + }, + "com.amazonaws.ec2#IpamPolicyOrganizationTargetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPolicyOrganizationTarget", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPolicyResourceType": { + "type": "enum", + "members": { + "alb": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "alb" + } + }, + "eip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eip" + } + }, + "rds": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rds" + } + }, + "rnat": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rnat" + } + } + } + }, + "com.amazonaws.ec2#IpamPolicySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPolicy", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPolicyState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamPool": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the IPAM pool.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The ID of the IPAM pool.

", + "smithy.api#xmlName": "ipamPoolId" + } + }, + "SourceIpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "SourceIpamPoolId", + "smithy.api#documentation": "

The ID of the source IPAM pool. You can use this option to create an IPAM pool within an existing source pool.

", + "smithy.api#xmlName": "sourceIpamPoolId" + } + }, + "IpamPoolArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM pool.

", + "smithy.api#xmlName": "ipamPoolArn" + } + }, + "IpamScopeArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeArn", + "smithy.api#documentation": "

The ARN of the scope of the IPAM pool.

", + "smithy.api#xmlName": "ipamScopeArn" + } + }, + "IpamScopeType": { + "target": "com.amazonaws.ec2#IpamScopeType", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeType", + "smithy.api#documentation": "

In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

", + "smithy.api#xmlName": "ipamScopeType" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

The ARN of the IPAM.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the IPAM pool.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "Locale": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Locale", + "smithy.api#documentation": "

The locale of the IPAM pool.

\n

The locale for the pool should be one of the following:

\n
    \n
  • \n

    An Amazon Web Services Region where you want this IPAM pool to be available for allocations.

    \n
  • \n
  • \n

    The network border group for an Amazon Web Services Local Zone where you want this IPAM pool to be available for allocations (supported Local Zones). This option is only available for IPAM IPv4 pools in the public scope.

    \n
  • \n
\n

If you choose an Amazon Web Services Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.

", + "smithy.api#xmlName": "locale" + } + }, + "PoolDepth": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PoolDepth", + "smithy.api#documentation": "

The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see Quotas in IPAM in the Amazon VPC IPAM User Guide.\n

", + "smithy.api#xmlName": "poolDepth" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamPoolState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the IPAM pool.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

The state message.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the IPAM pool.

", + "smithy.api#xmlName": "description" + } + }, + "AutoImport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AutoImport", + "smithy.api#documentation": "

If selected, IPAM will continuously look for resources within the CIDR range of this pool \n and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n

\n

A locale must be set on the pool for this feature to work.

", + "smithy.api#xmlName": "autoImport" + } + }, + "PubliclyAdvertisable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PubliclyAdvertisable", + "smithy.api#documentation": "

Determines if a pool is publicly advertisable. This option is not available for pools with AddressFamily set to ipv4.

", + "smithy.api#xmlName": "publiclyAdvertisable" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#AddressFamily", + "traits": { + "aws.protocols#ec2QueryName": "AddressFamily", + "smithy.api#documentation": "

The address family of the pool.

", + "smithy.api#xmlName": "addressFamily" + } + }, + "AllocationMinNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "aws.protocols#ec2QueryName": "AllocationMinNetmaskLength", + "smithy.api#documentation": "

The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.

", + "smithy.api#xmlName": "allocationMinNetmaskLength" + } + }, + "AllocationMaxNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "aws.protocols#ec2QueryName": "AllocationMaxNetmaskLength", + "smithy.api#documentation": "

The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.

", + "smithy.api#xmlName": "allocationMaxNetmaskLength" + } + }, + "AllocationDefaultNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "aws.protocols#ec2QueryName": "AllocationDefaultNetmaskLength", + "smithy.api#documentation": "

The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and \n you enter 16 here, new allocations will default to 10.0.0.0/16.

", + "smithy.api#xmlName": "allocationDefaultNetmaskLength" + } + }, + "AllocationResourceTags": { + "target": "com.amazonaws.ec2#IpamResourceTagList", + "traits": { + "aws.protocols#ec2QueryName": "AllocationResourceTagSet", + "smithy.api#documentation": "

Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.

", + "smithy.api#xmlName": "allocationResourceTagSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "tagSet" + } + }, + "AwsService": { + "target": "com.amazonaws.ec2#IpamPoolAwsService", + "traits": { + "aws.protocols#ec2QueryName": "AwsService", + "smithy.api#documentation": "

Limits which service in Amazon Web Services that the pool can be used in. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs.

", + "smithy.api#xmlName": "awsService" + } + }, + "PublicIpSource": { + "target": "com.amazonaws.ec2#IpamPoolPublicIpSource", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpSource", + "smithy.api#documentation": "

The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is BYOIP. For more information, see Create IPv6 pools in the Amazon VPC IPAM User Guide. \n By default, you can add only one Amazon-provided IPv6 CIDR block to a top-level IPv6 pool. For information on increasing the default limit, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "publicIpSource" + } + }, + "SourceResource": { + "target": "com.amazonaws.ec2#IpamPoolSourceResource", + "traits": { + "aws.protocols#ec2QueryName": "SourceResource", + "smithy.api#documentation": "

The resource used to provision CIDRs to a resource planning pool.

", + "smithy.api#xmlName": "sourceResource" + } + } + }, + "traits": { + "smithy.api#documentation": "

In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.

" + } + }, + "com.amazonaws.ec2#IpamPoolAllocation": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR for the allocation. A CIDR is a representation of an IP address and its associated network mask (or netmask) and \n refers to a range of IP addresses. An IPv4 CIDR example is 10.24.34.0/23. An IPv6 CIDR example is 2001:DB8::/32.

", + "smithy.api#xmlName": "cidr" + } + }, + "IpamPoolAllocationId": { + "target": "com.amazonaws.ec2#IpamPoolAllocationId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolAllocationId", + "smithy.api#documentation": "

The ID of an allocation.

", + "smithy.api#xmlName": "ipamPoolAllocationId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the pool allocation.

", + "smithy.api#xmlName": "description" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPoolAllocationResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of the resource.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the resource.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwner", + "smithy.api#documentation": "

The owner of the resource.

", + "smithy.api#xmlName": "resourceOwner" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the IPAM pool allocation.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource.

" + } + }, + "com.amazonaws.ec2#IpamPoolAllocationAllowedCidrs": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPoolAllocationDisallowedCidrs": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPoolAllocationId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPoolAllocationResourceType": { + "type": "enum", + "members": { + "ipam_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-pool" + } + }, + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "ec2_public_ipv4_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ec2-public-ipv4-pool" + } + }, + "custom": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet" + } + }, + "eip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eip" + } + }, + "anycast_ip_list": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "anycast-ip-list" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolAllocationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPoolAllocation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPoolAwsService": { + "type": "enum", + "members": { + "ec2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ec2" + } + }, + "global_services": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "global-services" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolCidr": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR provisioned to the IPAM pool. A CIDR is a representation of an IP address and its associated network mask (or netmask) \n and refers to a range of IP addresses. An IPv4 CIDR example is 10.24.34.0/23. An IPv6 CIDR example is 2001:DB8::/32.

", + "smithy.api#xmlName": "cidr" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamPoolCidrState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the CIDR.

", + "smithy.api#xmlName": "state" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#IpamPoolCidrFailureReason", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

Details related to why an IPAM pool CIDR failed to be provisioned.

", + "smithy.api#xmlName": "failureReason" + } + }, + "IpamPoolCidrId": { + "target": "com.amazonaws.ec2#IpamPoolCidrId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolCidrId", + "smithy.api#documentation": "

The IPAM pool CIDR ID.

", + "smithy.api#xmlName": "ipamPoolCidrId" + } + }, + "NetmaskLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetmaskLength", + "smithy.api#documentation": "

The netmask length of the CIDR you'd like to provision to a pool. Can be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools and for provisioning CIDRs to pools with source pools. Cannot be used to provision BYOIP CIDRs to top-level pools. \"NetmaskLength\" or \"Cidr\" is required.

", + "smithy.api#xmlName": "netmaskLength" + } + } + }, + "traits": { + "smithy.api#documentation": "

A CIDR provisioned to an IPAM pool.

" + } + }, + "com.amazonaws.ec2#IpamPoolCidrFailureCode": { + "type": "enum", + "members": { + "cidr_not_available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cidr-not-available" + } + }, + "limit_exceeded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "limit-exceeded" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolCidrFailureReason": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#IpamPoolCidrFailureCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

An error code related to why an IPAM pool CIDR failed to be provisioned.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message related to why an IPAM pool CIDR failed to be provisioned.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to why an IPAM pool CIDR failed to be provisioned.

" + } + }, + "com.amazonaws.ec2#IpamPoolCidrId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPoolCidrSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPoolCidr", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPoolCidrState": { + "type": "enum", + "members": { + "pending_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-provision" + } + }, + "provisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioned" + } + }, + "failed_provision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-provision" + } + }, + "pending_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-deprovision" + } + }, + "deprovisioned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deprovisioned" + } + }, + "failed_deprovision": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-deprovision" + } + }, + "pending_import": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-import" + } + }, + "failed_import": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-import" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPoolPublicIpSource": { + "type": "enum", + "members": { + "amazon": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon" + } + }, + "byoip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "byoip" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPool", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPoolSourceResource": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The source resource ID.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPoolSourceResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The source resource type.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The source resource Region.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwner", + "smithy.api#documentation": "

The source resource owner.

", + "smithy.api#xmlName": "resourceOwner" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resource used to provision CIDRs to a resource planning pool.

" + } + }, + "com.amazonaws.ec2#IpamPoolSourceResourceRequest": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source resource ID.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPoolSourceResourceType", + "traits": { + "smithy.api#documentation": "

The source resource type.

" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source resource Region.

" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source resource owner.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resource used to provision CIDRs to a resource planning pool.

" + } + }, + "com.amazonaws.ec2#IpamPoolSourceResourceType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + } + } + }, + "com.amazonaws.ec2#IpamPoolState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolver": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the IPAM prefix list resolver.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverId", + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver.

", + "smithy.api#xmlName": "ipamPrefixListResolverId" + } + }, + "IpamPrefixListResolverArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM prefix list resolver.

", + "smithy.api#xmlName": "ipamPrefixListResolverArn" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM associated with this resolver.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The Amazon Web Services Region where the associated IPAM is located.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the IPAM prefix list resolver.

", + "smithy.api#xmlName": "description" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#AddressFamily", + "traits": { + "aws.protocols#ec2QueryName": "AddressFamily", + "smithy.api#documentation": "

The address family (IPv4 or IPv6) for the IPAM prefix list resolver.

", + "smithy.api#xmlName": "addressFamily" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the IPAM prefix list resolver. Valid values include create-in-progress, create-complete, create-failed, modify-in-progress, modify-complete, modify-failed, delete-in-progress, delete-complete, and delete-failed.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the IPAM prefix list resolver.

", + "smithy.api#xmlName": "tagSet" + } + }, + "LastVersionCreationStatus": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersionCreationStatus", + "traits": { + "aws.protocols#ec2QueryName": "LastVersionCreationStatus", + "smithy.api#documentation": "

The status for the last time a version was created.

\n

Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list\nchanges due to infrastructure changes.

", + "smithy.api#xmlName": "lastVersionCreationStatus" + } + }, + "LastVersionCreationStatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastVersionCreationStatusMessage", + "smithy.api#documentation": "

The status message for the last time a version was created.

\n

Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list\nchanges due to infrastructure changes.

", + "smithy.api#xmlName": "lastVersionCreationStatusMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPAM prefix list resolver.

\n

An IPAM prefix list resolver is a component that manages the synchronization between IPAM's CIDR selection rules and customer-managed prefix lists. It automates connectivity configurations by selecting CIDRs from IPAM's database based on your business logic and synchronizing them with prefix lists used in resources such as VPC route tables and security groups.

" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPrefixListResolverRule": { + "type": "structure", + "members": { + "RuleType": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleType", + "traits": { + "aws.protocols#ec2QueryName": "RuleType", + "smithy.api#documentation": "

The type of CIDR selection rule. Valid values include include for selecting CIDRs that match the conditions, and exclude for excluding CIDRs that match the conditions.

", + "smithy.api#xmlName": "ruleType" + } + }, + "StaticCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StaticCidr", + "smithy.api#documentation": "

A fixed list of CIDRs that do not change (like a manual list replicated across Regions).

", + "smithy.api#xmlName": "staticCidr" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeId", + "smithy.api#documentation": "

The ID of the IPAM scope from which to select CIDRs. This determines whether to select from public or private IP address space.

", + "smithy.api#xmlName": "ipamScopeId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

For rules of type ipam-resource-cidr, this is the resource type.

", + "smithy.api#xmlName": "resourceType" + } + }, + "Conditions": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionSet", + "traits": { + "aws.protocols#ec2QueryName": "ConditionSet", + "smithy.api#documentation": "

The conditions that determine which CIDRs are selected by this rule. Conditions specify criteria such as resource type, tags, account IDs, and Regions.

", + "smithy.api#xmlName": "conditionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a CIDR selection rule.

\n

CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.

" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleCondition": { + "type": "structure", + "members": { + "Operation": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionOperation", + "traits": { + "aws.protocols#ec2QueryName": "Operation", + "smithy.api#documentation": "

The operation to perform when evaluating this condition. Valid values include equals, not-equals, contains, and not-contains.

", + "smithy.api#xmlName": "operation" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The ID of the IPAM pool to match against. This condition selects CIDRs that belong to the specified IPAM pool.

", + "smithy.api#xmlName": "ipamPoolId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the Amazon Web Services resource to match against. This condition selects CIDRs associated with the specified resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwner", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resources to match against. This condition selects CIDRs from resources owned by the specified account.

", + "smithy.api#xmlName": "resourceOwner" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region where the resources are located. This condition selects CIDRs from resources in the specified Region.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceTag": { + "target": "com.amazonaws.ec2#IpamResourceTag", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTag", + "smithy.api#documentation": "

A tag key-value pair to match against. This condition selects CIDRs from resources that have the specified tag.

", + "smithy.api#xmlName": "resourceTag" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

A CIDR block to match against. This condition selects CIDRs that fall within or match the specified CIDR range.

", + "smithy.api#xmlName": "cidr" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a condition within a CIDR selection rule. Conditions define the criteria for selecting CIDRs from IPAM's database based on resource attributes.

\n

CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.

\n

There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions.

\n
    \n
  • \n

    \n Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions)

    \n
  • \n
  • \n

    \n IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool)

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Conditions:\n

      \n
        \n
      • \n

        \n Property\n

        \n
          \n
        • \n

          \n IPAM pool ID: Select an IPAM pool that contains the resources

          \n
        • \n
        • \n

          \n CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    \n Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Resource type: Select a resource, like a VPC or subnet.

      \n
    • \n
    • \n

      \n Conditions:

      \n
        \n
      • \n

        \n Property:

        \n
          \n
        • \n

          Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0)

          \n
        • \n
        • \n

          Resource owner (like 111122223333)

          \n
        • \n
        • \n

          Resource region (like us-east-1)

          \n
        • \n
        • \n

          Resource tag (like key: name, value: dev-vpc-1)

          \n
        • \n
        • \n

          CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionOperation": { + "type": "enum", + "members": { + "equals": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "equals" + } + }, + "not_equals": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-equals" + } + }, + "subnet_of": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet-of" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionRequest": { + "type": "structure", + "members": { + "Operation": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionOperation", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The operation to perform when evaluating this condition.

", + "smithy.api#required": {} + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the IPAM pool to match against. This condition selects CIDRs that belong to the specified IPAM pool.

" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services resource to match against. This condition selects CIDRs associated with the specified resource.

" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resources to match against. This condition selects CIDRs from resources owned by the specified account.

" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region where the resources are located. This condition selects CIDRs from resources in the specified Region.

" + } + }, + "ResourceTag": { + "target": "com.amazonaws.ec2#RequestIpamResourceTag", + "traits": { + "smithy.api#documentation": "

A tag key-value pair to match against. This condition selects CIDRs from resources that have the specified tag.

" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A CIDR block to match against. This condition selects CIDRs that fall within or match the specified CIDR range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a condition used when creating or modifying resolver rules.

\n

CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.

\n

There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions.

\n
    \n
  • \n

    \n Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions)

    \n
  • \n
  • \n

    \n IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool)

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Conditions:\n

      \n
        \n
      • \n

        \n Property\n

        \n
          \n
        • \n

          \n IPAM pool ID: Select an IPAM pool that contains the resources

          \n
        • \n
        • \n

          \n CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    \n Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Resource type: Select a resource, like a VPC or subnet.

      \n
    • \n
    • \n

      \n Conditions:

      \n
        \n
      • \n

        \n Property:

        \n
          \n
        • \n

          Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0)

          \n
        • \n
        • \n

          Resource owner (like 111122223333)

          \n
        • \n
        • \n

          Resource region (like us-east-1)

          \n
        • \n
        • \n

          Resource tag (like key: name, value: dev-vpc-1)

          \n
        • \n
        • \n

          CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionRequest", + "traits": { + "smithy.api#xmlName": "Condition" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleCondition", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleRequest": { + "type": "structure", + "members": { + "RuleType": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of CIDR selection rule. Valid values include include for selecting CIDRs that match the conditions, and exclude for excluding CIDRs that match the conditions.

", + "smithy.api#required": {} + } + }, + "StaticCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A fixed list of CIDRs that do not change (like a manual list replicated across Regions).

" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#documentation": "

The ID of the IPAM scope from which to select CIDRs. This determines whether to select from public or private IP address space.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamResourceType", + "traits": { + "smithy.api#documentation": "

For rules of type ipam-resource-cidr, this is the resource type.

" + } + }, + "Conditions": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleConditionRequestSet", + "traits": { + "smithy.api#documentation": "

The conditions that determine which CIDRs are selected by this rule. Conditions specify criteria such as resource type, tags, account IDs, and Regions.

", + "smithy.api#xmlName": "Condition" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a CIDR selection rule to include in a request. This is used when creating or modifying resolver rules.

\n

CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.

\n

There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions.

\n
    \n
  • \n

    \n Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions)

    \n
  • \n
  • \n

    \n IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool)

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Conditions:\n

      \n
        \n
      • \n

        \n Property\n

        \n
          \n
        • \n

          \n IPAM pool ID: Select an IPAM pool that contains the resources

          \n
        • \n
        • \n

          \n CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    \n Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope

    \n

    If you choose this option, choose the following:

    \n
      \n
    • \n

      \n IPAM scope: Select the IPAM scope to search for resources

      \n
    • \n
    • \n

      \n Resource type: Select a resource, like a VPC or subnet.

      \n
    • \n
    • \n

      \n Conditions:

      \n
        \n
      • \n

        \n Property:

        \n
          \n
        • \n

          Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0)

          \n
        • \n
        • \n

          Resource owner (like 111122223333)

          \n
        • \n
        • \n

          Resource region (like us-east-1)

          \n
        • \n
        • \n

          Resource tag (like key: name, value: dev-vpc-1)

          \n
        • \n
        • \n

          CIDR (like 10.24.34.0/23)

          \n
        • \n
        \n
      • \n
      • \n

        \n Operation: Equals/Not equals

        \n
      • \n
      • \n

        \n Value: The value on which to match the condition

        \n
      • \n
      \n
    • \n
    \n
  • \n
" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleRequest", + "traits": { + "smithy.api#xmlName": "Rule" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverRuleType": { + "type": "enum", + "members": { + "static_cidr": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static-cidr" + } + }, + "ipam_resource_cidr": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-resource-cidr" + } + }, + "ipam_pool_cidr": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-pool-cidr" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolver", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverTarget": { + "type": "structure", + "members": { + "IpamPrefixListResolverTargetId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTargetId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTargetId", + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver target.

", + "smithy.api#xmlName": "ipamPrefixListResolverTargetId" + } + }, + "IpamPrefixListResolverTargetArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTargetArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IPAM prefix list resolver target.

", + "smithy.api#xmlName": "ipamPrefixListResolverTargetArn" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverId", + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver associated with this target.

", + "smithy.api#xmlName": "ipamPrefixListResolverId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the IPAM prefix list resolver target.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the managed prefix list associated with this target.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "PrefixListRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListRegion", + "smithy.api#documentation": "

The Amazon Web Services Region where the prefix list associated with this target is located.

", + "smithy.api#xmlName": "prefixListRegion" + } + }, + "DesiredVersion": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "DesiredVersion", + "smithy.api#documentation": "

The desired version of the prefix list that this target should synchronize with.

", + "smithy.api#xmlName": "desiredVersion" + } + }, + "LastSyncedVersion": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "LastSyncedVersion", + "smithy.api#documentation": "

The version of the prefix list that was last successfully synchronized by this target.

", + "smithy.api#xmlName": "lastSyncedVersion" + } + }, + "TrackLatestVersion": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "TrackLatestVersion", + "smithy.api#documentation": "

Indicates whether this target automatically tracks the latest version of the prefix list.

", + "smithy.api#xmlName": "trackLatestVersion" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message describing the current state of the IPAM prefix list resolver target, including any error information.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTargetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the IPAM prefix list resolver target. Valid values include create-in-progress, create-complete, create-failed, modify-in-progress, modify-complete, modify-failed, delete-in-progress, delete-complete, and delete-failed.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the IPAM prefix list resolver target.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPAM prefix list resolver target.

\n

An IPAM prefix list resolver target is an association between a specific customer-managed prefix list and an IPAM prefix list resolver. The target enables the resolver to synchronize CIDRs selected by its rules into the specified prefix list, which can then be referenced in Amazon Web Services resources.

" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverTargetId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamPrefixListResolverTargetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTarget", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverTargetState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "sync_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sync-in-progress" + } + }, + "sync_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sync-complete" + } + }, + "sync_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sync-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersion": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The version number of the IPAM prefix list resolver.

\n

Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list\nchanges due to infrastructure changes.

", + "smithy.api#xmlName": "version" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a version of an IPAM prefix list resolver.

\n

Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list\nchanges due to infrastructure changes.

\n

\n Version example:\n

\n

\n Initial State (Version 1)\n

\n

Production environment:

\n
    \n
  • \n

    vpc-prod-web (10.1.0.0/16) - tagged env=prod

    \n
  • \n
  • \n

    vpc-prod-db (10.2.0.0/16) - tagged env=prod

    \n
  • \n
\n

Resolver rule: Include all VPCs tagged env=prod

\n

\n Version 1 CIDRs: 10.1.0.0/16, 10.2.0.0/16

\n

\n Infrastructure Change (Version 2)\n

\n

New VPC added:

\n
    \n
  • \n

    vpc-prod-api (10.3.0.0/16) - tagged env=prod

    \n
  • \n
\n

IPAM automatically detects the change and creates a new version.

\n

\n Version 2 CIDRs: 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16

" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersionCreationStatus": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "success": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "success" + } + }, + "failure": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failure" + } + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersionEntry": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR block that was selected and synchronized in this resolver version.

", + "smithy.api#xmlName": "cidr" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a CIDR entry in a specific version of an IPAM prefix list resolver. This represents a CIDR that was selected and synchronized at a particular point in time.

" + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersionEntrySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersionEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersionNumberSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPrefixListResolverVersionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverVersion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPublicAddressAssociationStatus": { + "type": "enum", + "members": { + "ASSOCIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "DISASSOCIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + } + } + }, + "com.amazonaws.ec2#IpamPublicAddressAwsService": { + "type": "enum", + "members": { + "NAT_GATEWAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nat-gateway" + } + }, + "DMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "database-migration-service" + } + }, + "REDSHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "redshift" + } + }, + "ECS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elastic-container-service" + } + }, + "RDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "relational-database-service" + } + }, + "S2S_VPN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "site-to-site-vpn" + } + }, + "EC2_LB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "load-balancer" + } + }, + "AGA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "global-accelerator" + } + }, + "CLOUDFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloudfront" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + } + } + }, + "com.amazonaws.ec2#IpamPublicAddressSecurityGroup": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The security group's name.

", + "smithy.api#xmlName": "groupName" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The security group's ID.

", + "smithy.api#xmlName": "groupId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The security group that the resource with the public IP address is in.

" + } + }, + "com.amazonaws.ec2#IpamPublicAddressSecurityGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPublicAddressSecurityGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPublicAddressTag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The tag's key.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The tag's value.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

A tag for a public IP address discovered by IPAM.

" + } + }, + "com.amazonaws.ec2#IpamPublicAddressTagList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamPublicAddressTag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamPublicAddressTags": { + "type": "structure", + "members": { + "EipTags": { + "target": "com.amazonaws.ec2#IpamPublicAddressTagList", + "traits": { + "aws.protocols#ec2QueryName": "EipTagSet", + "smithy.api#documentation": "

Tags for an Elastic IP address.

", + "smithy.api#xmlName": "eipTagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Tags for a public IP address discovered by IPAM.

" + } + }, + "com.amazonaws.ec2#IpamPublicAddressType": { + "type": "enum", + "members": { + "SERVICE_MANAGED_IP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service-managed-ip" + } + }, + "SERVICE_MANAGED_BYOIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service-managed-byoip" + } + }, + "AMAZON_OWNED_EIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-owned-eip" + } + }, + "AMAZON_OWNED_CONTIG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-owned-contig" + } + }, + "BYOIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "byoip" + } + }, + "EC2_PUBLIC_IP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ec2-public-ip" + } + }, + "ANYCAST_IP_LIST_IP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "anycast-ip-list-ip" + } + } + } + }, + "com.amazonaws.ec2#IpamResourceCidr": { + "type": "structure", + "members": { + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The IPAM ID for an IPAM resource.

", + "smithy.api#xmlName": "ipamId" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeId", + "smithy.api#documentation": "

The scope ID for an IPAM resource.

", + "smithy.api#xmlName": "ipamScopeId" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The pool ID for an IPAM resource.

", + "smithy.api#xmlName": "ipamPoolId" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region for an IPAM resource.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account number of the owner of an IPAM resource.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of an IPAM resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceName", + "smithy.api#documentation": "

The name of an IPAM resource.

", + "smithy.api#xmlName": "resourceName" + } + }, + "ResourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceCidr", + "smithy.api#documentation": "

The CIDR for an IPAM resource.

", + "smithy.api#xmlName": "resourceCidr" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of IPAM resource.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceTags": { + "target": "com.amazonaws.ec2#IpamResourceTagList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTagSet", + "smithy.api#documentation": "

The tags for an IPAM resource.

", + "smithy.api#xmlName": "resourceTagSet" + } + }, + "IpUsage": { + "target": "com.amazonaws.ec2#BoxedDouble", + "traits": { + "aws.protocols#ec2QueryName": "IpUsage", + "smithy.api#documentation": "

The percentage of IP address space in use. To convert the decimal to a percentage, multiply the decimal by 100. Note the following:

\n
    \n
  • \n

    For resources that are VPCs, this is the percentage of IP address space in the VPC that's taken up by subnet CIDRs.\n

    \n
  • \n
  • \n

    For resources that are subnets, if the subnet has an IPv4 CIDR provisioned to it, this is the percentage of IPv4 address space in the subnet that's in use. If the subnet has an IPv6 CIDR provisioned to it, the percentage of IPv6 address space in use is not represented. The percentage of IPv6 address space in use cannot currently be calculated.\n

    \n
  • \n
  • \n

    For resources that are public IPv4 pools, this is the percentage of IP address space in the pool that's been allocated to Elastic IP addresses (EIPs).\n

    \n
  • \n
", + "smithy.api#xmlName": "ipUsage" + } + }, + "ComplianceStatus": { + "target": "com.amazonaws.ec2#IpamComplianceStatus", + "traits": { + "aws.protocols#ec2QueryName": "ComplianceStatus", + "smithy.api#documentation": "

The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "complianceStatus" + } + }, + "ManagementState": { + "target": "com.amazonaws.ec2#IpamManagementState", + "traits": { + "aws.protocols#ec2QueryName": "ManagementState", + "smithy.api#documentation": "

The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "managementState" + } + }, + "OverlapStatus": { + "target": "com.amazonaws.ec2#IpamOverlapStatus", + "traits": { + "aws.protocols#ec2QueryName": "OverlapStatus", + "smithy.api#documentation": "

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "overlapStatus" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of a VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone ID.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CIDR for an IPAM resource.

" + } + }, + "com.amazonaws.ec2#IpamResourceCidrIpSource": { + "type": "enum", + "members": { + "amazon": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon" + } + }, + "byoip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "byoip" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ec2#IpamResourceCidrSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamResourceCidr", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamResourceDiscovery": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the owner.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryId", + "smithy.api#documentation": "

The resource discovery ID.

", + "smithy.api#xmlName": "ipamResourceDiscoveryId" + } + }, + "IpamResourceDiscoveryArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryArn", + "smithy.api#documentation": "

The resource discovery Amazon Resource Name (ARN).

", + "smithy.api#xmlName": "ipamResourceDiscoveryArn" + } + }, + "IpamResourceDiscoveryRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryRegion", + "smithy.api#documentation": "

The resource discovery Region.

", + "smithy.api#xmlName": "ipamResourceDiscoveryRegion" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The resource discovery description.

", + "smithy.api#xmlName": "description" + } + }, + "OperatingRegions": { + "target": "com.amazonaws.ec2#IpamOperatingRegionSet", + "traits": { + "aws.protocols#ec2QueryName": "OperatingRegionSet", + "smithy.api#documentation": "

The operating Regions for the resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

", + "smithy.api#xmlName": "operatingRegionSet" + } + }, + "IsDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsDefault", + "smithy.api#documentation": "

Defines if the resource discovery is the default. The default resource discovery is the resource discovery automatically created when you create an IPAM.

", + "smithy.api#xmlName": "isDefault" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The lifecycle state of the resource discovery.

\n
    \n
  • \n

    \n create-in-progress - Resource discovery is being created.

    \n
  • \n
  • \n

    \n create-complete - Resource discovery creation is complete.

    \n
  • \n
  • \n

    \n create-failed - Resource discovery creation has failed.

    \n
  • \n
  • \n

    \n modify-in-progress - Resource discovery is being modified.

    \n
  • \n
  • \n

    \n modify-complete - Resource discovery modification is complete.

    \n
  • \n
  • \n

    \n modify-failed - Resource discovery modification has failed.

    \n
  • \n
  • \n

    \n delete-in-progress - Resource discovery is being deleted.

    \n
  • \n
  • \n

    \n delete-complete - Resource discovery deletion is complete.

    \n
  • \n
  • \n

    \n delete-failed - Resource discovery deletion has failed.

    \n
  • \n
  • \n

    \n isolate-in-progress - Amazon Web Services account that created the resource discovery has been removed and the resource discovery is being isolated.

    \n
  • \n
  • \n

    \n isolate-complete - Resource discovery isolation is complete.

    \n
  • \n
  • \n

    \n restore-in-progress - Amazon Web Services account that created the resource discovery and was isolated has been restored.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

", + "smithy.api#xmlName": "tagSet" + } + }, + "OrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#IpamOrganizationalUnitExclusionSet", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationalUnitExclusionSet", + "smithy.api#documentation": "

If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.

", + "smithy.api#xmlName": "organizationalUnitExclusionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#IpamResourceDiscoveryAssociation": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the resource discovery owner.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamResourceDiscoveryAssociationId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryAssociationId", + "smithy.api#documentation": "

The resource discovery association ID.

", + "smithy.api#xmlName": "ipamResourceDiscoveryAssociationId" + } + }, + "IpamResourceDiscoveryAssociationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryAssociationArn", + "smithy.api#documentation": "

The resource discovery association Amazon Resource Name (ARN).

", + "smithy.api#xmlName": "ipamResourceDiscoveryAssociationArn" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscoveryId", + "smithy.api#documentation": "

The resource discovery ID.

", + "smithy.api#xmlName": "ipamResourceDiscoveryId" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "aws.protocols#ec2QueryName": "IpamId", + "smithy.api#documentation": "

The IPAM ID.

", + "smithy.api#xmlName": "ipamId" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

The IPAM ARN.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The IPAM home Region.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "IsDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsDefault", + "smithy.api#documentation": "

Defines if the resource discovery is the default. When you create an IPAM, a default resource discovery is created for your IPAM and it's associated with your IPAM.

", + "smithy.api#xmlName": "isDefault" + } + }, + "ResourceDiscoveryStatus": { + "target": "com.amazonaws.ec2#IpamAssociatedResourceDiscoveryStatus", + "traits": { + "aws.protocols#ec2QueryName": "ResourceDiscoveryStatus", + "smithy.api#documentation": "

The resource discovery status.

\n
    \n
  • \n

    \n active - Connection or permissions required to read the\n results of the resource discovery are intact.

    \n
  • \n
  • \n

    \n not-found - Connection or permissions required to read the\n results of the resource discovery are broken. This may happen if the owner of the resource discovery stopped sharing it or deleted the resource discovery. Verify the resource discovery still exists and the Amazon Web Services RAM resource share is still intact.

    \n
  • \n
", + "smithy.api#xmlName": "resourceDiscoveryStatus" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The lifecycle state of the association when you associate or disassociate a resource discovery.

\n
    \n
  • \n

    \n associate-in-progress - Resource discovery is being associated.

    \n
  • \n
  • \n

    \n associate-complete - Resource discovery association is complete.

    \n
  • \n
  • \n

    \n associate-failed - Resource discovery association has failed.

    \n
  • \n
  • \n

    \n disassociate-in-progress - Resource discovery is being disassociated.

    \n
  • \n
  • \n

    \n disassociate-complete - Resource discovery disassociation is complete.

    \n
  • \n
  • \n

    \n disassociate-failed - Resource discovery disassociation has failed.

    \n
  • \n
  • \n

    \n isolate-in-progress - Amazon Web Services account that created the resource discovery association has been removed and the resource discovery association is being isolated.

    \n
  • \n
  • \n

    \n isolate-complete - Resource discovery isolation is complete.

    \n
  • \n
  • \n

    \n restore-in-progress - Resource discovery is being restored.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

An IPAM resource discovery association. An associated resource discovery is a resource discovery that has been associated with an IPAM. IPAM aggregates the resource CIDRs discovered by the associated resource discovery.

" + } + }, + "com.amazonaws.ec2#IpamResourceDiscoveryAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamResourceDiscoveryAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamResourceDiscoveryAssociationState": { + "type": "enum", + "members": { + "ASSOCIATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associate-in-progress" + } + }, + "ASSOCIATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associate-complete" + } + }, + "ASSOCIATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associate-failed" + } + }, + "DISASSOCIATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociate-in-progress" + } + }, + "DISASSOCIATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociate-complete" + } + }, + "DISASSOCIATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociate-failed" + } + }, + "ISOLATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "ISOLATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "RESTORE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamResourceDiscoveryId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamResourceDiscoverySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamResourceDiscovery", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamResourceDiscoveryState": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "MODIFY_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "MODIFY_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "MODIFY_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "ISOLATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "ISOLATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "RESTORE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamResourceTag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value of the tag.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

" + } + }, + "com.amazonaws.ec2#IpamResourceTagList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamResourceTag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamResourceType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet" + } + }, + "eip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eip" + } + }, + "public_ipv4_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-ipv4-pool" + } + }, + "ipv6_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6-pool" + } + }, + "eni": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eni" + } + }, + "anycast_ip_list": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "anycast-ip-list" + } + } + } + }, + "com.amazonaws.ec2#IpamRouteOriginAuthorization": { + "type": "structure", + "members": { + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The Autonomous System Number (ASN) authorized by the ROA.

", + "smithy.api#xmlName": "asn" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The IP address prefix authorized by the ROA in CIDR notation.

", + "smithy.api#xmlName": "prefix" + } + }, + "MaxLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxLength", + "smithy.api#documentation": "

The maximum prefix length that the ASN is authorized to announce.

", + "smithy.api#xmlName": "maxLength" + } + }, + "Match": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Match", + "smithy.api#documentation": "

Specifies whether the ROA matches the route announcement.

", + "smithy.api#xmlName": "match" + } + }, + "Expiration": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "Expiration", + "smithy.api#documentation": "

The expiration date of the ROA.

", + "smithy.api#xmlName": "expiration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a Route Origin Authorization (ROA) published in the RPKI. A ROA cryptographically attests that a specific ASN is authorized to originate a specific IP address prefix.

" + } + }, + "com.amazonaws.ec2#IpamRouteOriginAuthorizationInfo": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IP address prefix in CIDR notation authorized by the ROA.

", + "smithy.api#xmlName": "cidr" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The Autonomous System Number (ASN) authorized to originate the prefix.

", + "smithy.api#xmlName": "asn" + } + }, + "MaxLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxLength", + "smithy.api#documentation": "

The maximum prefix length that the ASN is authorized to announce.

", + "smithy.api#xmlName": "maxLength" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a Route Origin Authorization (ROA) currently published in the RPKI.

" + } + }, + "com.amazonaws.ec2#IpamRouteOriginAuthorizationInfoSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRouteOriginAuthorizationInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamRouteOriginAuthorizationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRouteOriginAuthorization", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamRouteOverlap": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The overlapping IP address prefix in CIDR notation.

", + "smithy.api#xmlName": "prefix" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The ASN originating the overlapping route.

", + "smithy.api#xmlName": "asn" + } + }, + "DetectedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DetectedAt", + "smithy.api#documentation": "

The time when the overlap was detected.

", + "smithy.api#xmlName": "detectedAt" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an overlapping route detected for a BYOIP prefix.

" + } + }, + "com.amazonaws.ec2#IpamRouteOverlapSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRouteOverlap", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#IpamRouteProtectionFinding": { + "type": "structure", + "members": { + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the resource owner.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the resource.

", + "smithy.api#xmlName": "resourceRegion" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolId", + "smithy.api#documentation": "

The ID of the IPAM pool associated with the finding.

", + "smithy.api#xmlName": "ipamPoolId" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IP address prefix in CIDR notation.

", + "smithy.api#xmlName": "cidr" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamByoipCidrState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the BYOIP CIDR. Possible values:

\n
    \n
  • \n

    \n advertised - The CIDR is being advertised.

    \n
  • \n
  • \n

    \n deprovisioned - The CIDR has been deprovisioned.

    \n
  • \n
  • \n

    \n failed-deprovision - Deprovisioning failed.

    \n
  • \n
  • \n

    \n failed-provision - Provisioning failed.

    \n
  • \n
  • \n

    \n pending-deprovision - Deprovisioning is in progress.

    \n
  • \n
  • \n

    \n pending-provision - Provisioning is in progress.

    \n
  • \n
  • \n

    \n provisioned - The CIDR is provisioned.

    \n
  • \n
  • \n

    \n provisioned-not-publicly-advertisable - The CIDR is provisioned but not publicly advertisable.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "AdvertisementType": { + "target": "com.amazonaws.ec2#IpamByoipAdvertisementType", + "traits": { + "aws.protocols#ec2QueryName": "AdvertisementType", + "smithy.api#documentation": "

The advertisement type. Possible values:

\n
    \n
  • \n

    \n regional - The IP address is advertised from a single location (regional services such as Amazon EC2).

    \n
  • \n
  • \n

    \n global - The IP address is advertised from multiple global locations simultaneously (global services such as Amazon CloudFront).

    \n
  • \n
", + "smithy.api#xmlName": "advertisementType" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The network border group.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the BYOIP pool.

", + "smithy.api#xmlName": "poolId" + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Asn", + "smithy.api#documentation": "

The Autonomous System Number (ASN) that originates the route.

", + "smithy.api#xmlName": "asn" + } + }, + "RpkiStatus": { + "target": "com.amazonaws.ec2#IpamRpkiStatus", + "traits": { + "aws.protocols#ec2QueryName": "RpkiStatus", + "smithy.api#documentation": "

The RPKI validation status of the route. Possible values:

\n
    \n
  • \n

    \n valid - The route has a matching ROA that covers the prefix and origin ASN.

    \n
  • \n
  • \n

    \n invalid - The route has a ROA for the prefix, but the origin ASN or prefix length does not match.

    \n
  • \n
  • \n

    \n unknown - No ROA exists for the prefix, so RPKI validation cannot be performed.

    \n
  • \n
", + "smithy.api#xmlName": "rpkiStatus" + } + }, + "RpkiStrength": { + "target": "com.amazonaws.ec2#IpamRpkiStrength", + "traits": { + "aws.protocols#ec2QueryName": "RpkiStrength", + "smithy.api#documentation": "

The RPKI enforcement strength for the route. Possible values:

\n
    \n
  • \n

    \n strict - Invalid routes are rejected.

    \n
  • \n
  • \n

    \n permissive - Invalid routes are accepted but flagged.

    \n
  • \n
", + "smithy.api#xmlName": "rpkiStrength" + } + }, + "Roas": { + "target": "com.amazonaws.ec2#IpamRouteOriginAuthorizationSet", + "traits": { + "aws.protocols#ec2QueryName": "RoaSet", + "smithy.api#documentation": "

The Route Origin Authorizations (ROAs) that cover the prefix.

", + "smithy.api#xmlName": "roaSet" + } + }, + "RouteOverlaps": { + "target": "com.amazonaws.ec2#IpamRouteOverlapSet", + "traits": { + "aws.protocols#ec2QueryName": "RouteOverlapSet", + "smithy.api#documentation": "

The overlapping routes detected for this prefix.

", + "smithy.api#xmlName": "routeOverlapSet" + } + }, + "SampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SampleTime", + "smithy.api#documentation": "

The time when the route was last sampled.

", + "smithy.api#xmlName": "sampleTime" + } + }, + "RoaSampleTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RoaSampleTime", + "smithy.api#documentation": "

The time when the ROA data was last sampled.

", + "smithy.api#xmlName": "roaSampleTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a route protection finding, including the RPKI validation status of a BYOIP route announcement.

" + } + }, + "com.amazonaws.ec2#IpamRouteProtectionFindingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRouteProtectionFinding", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistration": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The IP address prefix in CIDR notation authorized by the ROA.

", + "smithy.api#xmlName": "cidr" + } + }, + "Asns": { + "target": "com.amazonaws.ec2#AsnList", + "traits": { + "aws.protocols#ec2QueryName": "AsnSet", + "smithy.api#documentation": "

The Autonomous System Numbers (ASNs) authorized to originate the prefix.

", + "smithy.api#xmlName": "asnSet" + } + }, + "PermitMoreSpecificAnnouncements": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "aws.protocols#ec2QueryName": "PermitMoreSpecificAnnouncements", + "smithy.api#documentation": "

Specifies whether to permit more specific route announcements than the CIDR prefix. When enabled, ASNs can announce sub-prefixes of the authorized CIDR up to the specified maximum length. Default: false.

", + "smithy.api#xmlName": "permitMoreSpecificAnnouncements" + } + }, + "MaxLength": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationMaxLength", + "traits": { + "aws.protocols#ec2QueryName": "MaxLength", + "smithy.api#documentation": "

The maximum prefix length that the ASNs are authorized to announce.

", + "smithy.api#xmlName": "maxLength" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the routing policy registration.

", + "smithy.api#xmlName": "description" + } + }, + "LatestDeltaId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LatestDeltaId", + "smithy.api#documentation": "

The ID of the most recent delta that modified this registration.

", + "smithy.api#xmlName": "latestDeltaId" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the routing policy registration. Valid values: pending-activate | activate-failed | create-in-progress | create-complete | update-in-progress | update-complete | delete-in-progress | delete-complete.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a routing policy registration that represents a Route Origin Authorization (ROA) managed through IPAM.

" + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta": { + "type": "structure", + "members": { + "DeltaId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeltaId", + "smithy.api#documentation": "

The unique identifier of the delta.

", + "smithy.api#xmlName": "deltaId" + } + }, + "DeltaJson": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeltaJson", + "smithy.api#documentation": "

The JSON specification describing the changes applied in this delta.

", + "smithy.api#xmlName": "deltaJson" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDeltaState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the delta. Valid values: pending | published | failed.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message describing the current state, including error information if the delta failed.

", + "smithy.api#xmlName": "stateMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a routing policy registration change, including the changes applied and their publication state.

" + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDeltaSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDeltaState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "published": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "published" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of a routing policy registration delta.

" + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationMaxLength": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 48 + } + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamRoutingPolicyRegistrationState": { + "type": "enum", + "members": { + "pending_activate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-activate" + } + }, + "activate_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "activate-failed" + } + }, + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "update_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-in-progress" + } + }, + "update_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-complete" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of a routing policy registration.

" + } + }, + "com.amazonaws.ec2#IpamRpkiStatus": { + "type": "enum", + "members": { + "valid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "valid" + } + }, + "invalid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid" + } + }, + "unknown": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown" + } + } + }, + "traits": { + "smithy.api#documentation": "

The RPKI validation status of a BGP route.

" + } + }, + "com.amazonaws.ec2#IpamRpkiStrength": { + "type": "enum", + "members": { + "strict": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "strict" + } + }, + "permissive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permissive" + } + } + }, + "traits": { + "smithy.api#documentation": "

The RPKI enforcement strength for route protection.

" + } + }, + "com.amazonaws.ec2#IpamScope": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the scope.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeId", + "smithy.api#documentation": "

The ID of the scope.

", + "smithy.api#xmlName": "ipamScopeId" + } + }, + "IpamScopeArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the scope.

", + "smithy.api#xmlName": "ipamScopeArn" + } + }, + "IpamArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "IpamArn", + "smithy.api#documentation": "

The ARN of the IPAM.

", + "smithy.api#xmlName": "ipamArn" + } + }, + "IpamRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamRegion", + "smithy.api#documentation": "

The Amazon Web Services Region of the IPAM scope.

", + "smithy.api#xmlName": "ipamRegion" + } + }, + "IpamScopeType": { + "target": "com.amazonaws.ec2#IpamScopeType", + "traits": { + "aws.protocols#ec2QueryName": "IpamScopeType", + "smithy.api#documentation": "

The type of the scope.

", + "smithy.api#xmlName": "ipamScopeType" + } + }, + "IsDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsDefault", + "smithy.api#documentation": "

Defines if the scope is the default scope or not.

", + "smithy.api#xmlName": "isDefault" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the scope.

", + "smithy.api#xmlName": "description" + } + }, + "PoolCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PoolCount", + "smithy.api#documentation": "

The number of pools in the scope.

", + "smithy.api#xmlName": "poolCount" + } + }, + "State": { + "target": "com.amazonaws.ec2#IpamScopeState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the IPAM scope.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ExternalAuthorityConfiguration": { + "target": "com.amazonaws.ec2#IpamScopeExternalAuthorityConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "ExternalAuthorityConfiguration", + "smithy.api#documentation": "

The external authority configuration for this IPAM scope, if configured.

\n

The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.

\n

In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.

", + "smithy.api#xmlName": "externalAuthorityConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "

In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

\n

For more information, see How IPAM works in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#IpamScopeExternalAuthorityConfiguration": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#IpamScopeExternalAuthorityType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of external authority managing this scope. Currently supports Infoblox for integration with Infoblox Universal DDI.

", + "smithy.api#xmlName": "type" + } + }, + "ExternalResourceIdentifier": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ExternalResourceIdentifier", + "smithy.api#documentation": "

The identifier for the external resource managing this scope. For Infoblox integrations, this is the Infoblox resource identifier in the format .identity.account...

", + "smithy.api#xmlName": "externalResourceIdentifier" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.

\n

In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.

" + } + }, + "com.amazonaws.ec2#IpamScopeExternalAuthorityType": { + "type": "enum", + "members": { + "infoblox": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "infoblox" + } + } + } + }, + "com.amazonaws.ec2#IpamScopeId": { + "type": "string" + }, + "com.amazonaws.ec2#IpamScopeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#IpamScope", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamScopeState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamScopeType": { + "type": "enum", + "members": { + "public": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public" + } + }, + "private": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + } + } + }, + "com.amazonaws.ec2#IpamSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipam", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#IpamState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + }, + "isolate_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-in-progress" + } + }, + "isolate_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "isolate-complete" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + } + } + }, + "com.amazonaws.ec2#IpamTier": { + "type": "enum", + "members": { + "free": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "free" + } + }, + "advanced": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advanced" + } + } + } + }, + "com.amazonaws.ec2#Ipv4AddressesPerSecondaryInterface": { + "type": "integer" + }, + "com.amazonaws.ec2#Ipv4PoolCoipId": { + "type": "string" + }, + "com.amazonaws.ec2#Ipv4PoolEc2Id": { + "type": "string" + }, + "com.amazonaws.ec2#Ipv4PrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv4PrefixSpecificationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv4PrefixListResponse": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv4PrefixSpecificationResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv4PrefixSpecification": { + "type": "structure", + "members": { + "Ipv4Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4Prefix", + "smithy.api#documentation": "

The IPv4 prefix. For information, see \n Assigning prefixes to network interfaces in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "ipv4Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 prefix.

" + } + }, + "com.amazonaws.ec2#Ipv4PrefixSpecificationRequest": { + "type": "structure", + "members": { + "Ipv4Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 prefix. For information, see \n Assigning prefixes to network interfaces in the\n Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the IPv4 prefix option for a network interface.

" + } + }, + "com.amazonaws.ec2#Ipv4PrefixSpecificationResponse": { + "type": "structure", + "members": { + "Ipv4Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4Prefix", + "smithy.api#documentation": "

The IPv4 delegated prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv4Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the IPv4 delegated prefixes assigned to a network interface.

" + } + }, + "com.amazonaws.ec2#Ipv4PrefixesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv4PrefixSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6Address": { + "type": "string" + }, + "com.amazonaws.ec2#Ipv6AddressAttribute": { + "type": "enum", + "members": { + "public": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public" + } + }, + "private": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + } + } + }, + "com.amazonaws.ec2#Ipv6AddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6CidrAssociation": { + "type": "structure", + "members": { + "Ipv6Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Cidr", + "smithy.api#documentation": "

The IPv6 CIDR block.

", + "smithy.api#xmlName": "ipv6Cidr" + } + }, + "AssociatedResource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedResource", + "smithy.api#documentation": "

The resource that's associated with the IPv6 CIDR block.

", + "smithy.api#xmlName": "associatedResource" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 CIDR block association.

" + } + }, + "com.amazonaws.ec2#Ipv6CidrAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6CidrAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6CidrBlock": { + "type": "structure", + "members": { + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block.

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 CIDR block.

" + } + }, + "com.amazonaws.ec2#Ipv6CidrBlockSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6CidrBlock", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6Flag": { + "type": "boolean" + }, + "com.amazonaws.ec2#Ipv6Pool": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the address pool.

", + "smithy.api#xmlName": "poolId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description for the address pool.

", + "smithy.api#xmlName": "description" + } + }, + "PoolCidrBlocks": { + "target": "com.amazonaws.ec2#PoolCidrBlocksSet", + "traits": { + "aws.protocols#ec2QueryName": "PoolCidrBlockSet", + "smithy.api#documentation": "

The CIDR blocks for the address pool.

", + "smithy.api#xmlName": "poolCidrBlockSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags for the address pool.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address pool.

" + } + }, + "com.amazonaws.ec2#Ipv6PoolEc2Id": { + "type": "string" + }, + "com.amazonaws.ec2#Ipv6PoolIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6PoolEc2Id", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6PoolMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#Ipv6PoolSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6Pool", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6PrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6PrefixSpecificationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6PrefixListResponse": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6PrefixSpecificationResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6PrefixSpecification": { + "type": "structure", + "members": { + "Ipv6Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Prefix", + "smithy.api#documentation": "

The IPv6 prefix.

", + "smithy.api#xmlName": "ipv6Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the IPv6 prefix.

" + } + }, + "com.amazonaws.ec2#Ipv6PrefixSpecificationRequest": { + "type": "structure", + "members": { + "Ipv6Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 prefix.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the IPv6 prefix option for a network interface.

" + } + }, + "com.amazonaws.ec2#Ipv6PrefixSpecificationResponse": { + "type": "structure", + "members": { + "Ipv6Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Prefix", + "smithy.api#documentation": "

The IPv6 delegated prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv6Prefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the IPv6 delegated prefixes assigned to a network interface.

" + } + }, + "com.amazonaws.ec2#Ipv6PrefixesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6PrefixSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6Range": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the security group rule that references this IPv6 address range.

\n

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9,\n spaces, and ._-:/()#,@[]+=&;{}!$*

", + "smithy.api#xmlName": "description" + } + }, + "CidrIpv6": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIpv6", + "smithy.api#documentation": "

The IPv6 address range. You can either specify a CIDR block or a source security group,\n not both. To specify a single IPv6 address, use the /128 prefix length.

\n \n

\n Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, \n Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will \n return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the \n non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized \n form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.

\n
", + "smithy.api#xmlName": "cidrIpv6" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address range.

" + } + }, + "com.amazonaws.ec2#Ipv6RangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv6Range", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Ipv6SupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#KernelId": { + "type": "string" + }, + "com.amazonaws.ec2#KeyFormat": { + "type": "enum", + "members": { + "pem": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pem" + } + }, + "ppk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ppk" + } + } + } + }, + "com.amazonaws.ec2#KeyNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#KeyPairName", + "traits": { + "smithy.api#xmlName": "KeyName" + } + } + }, + "com.amazonaws.ec2#KeyPair": { + "type": "structure", + "members": { + "KeyPairId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyPairId", + "smithy.api#documentation": "

The ID of the key pair.

", + "smithy.api#xmlName": "keyPairId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags applied to the key pair.

", + "smithy.api#xmlName": "tagSet" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "KeyFingerprint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyFingerprint", + "smithy.api#documentation": "
    \n
  • \n

    For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER encoded private key.

    \n
  • \n
  • \n

    For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which is the default for OpenSSH, starting with OpenSSH 6.8.

    \n
  • \n
", + "smithy.api#xmlName": "keyFingerprint" + } + }, + "KeyMaterial": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "aws.protocols#ec2QueryName": "KeyMaterial", + "smithy.api#documentation": "

An unencrypted PEM encoded RSA or ED25519 private key.

", + "smithy.api#xmlName": "keyMaterial" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a key pair.

" + } + }, + "com.amazonaws.ec2#KeyPairId": { + "type": "string" + }, + "com.amazonaws.ec2#KeyPairIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#KeyPairId", + "traits": { + "smithy.api#xmlName": "KeyPairId" + } + } + }, + "com.amazonaws.ec2#KeyPairInfo": { + "type": "structure", + "members": { + "KeyPairId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyPairId", + "smithy.api#documentation": "

The ID of the key pair.

", + "smithy.api#xmlName": "keyPairId" + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#KeyType", + "traits": { + "aws.protocols#ec2QueryName": "KeyType", + "smithy.api#documentation": "

The type of key pair.

", + "smithy.api#xmlName": "keyType" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags applied to the key pair.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PublicKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicKey", + "smithy.api#documentation": "

The public key material.

", + "smithy.api#xmlName": "publicKey" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

If you used Amazon EC2 to create the key pair, this is the date and time when the key\n was created, in ISO\n 8601 date-time format, in the UTC time zone.

\n

If you imported an existing key pair to Amazon EC2, this is the date and time the key\n was imported, in ISO\n 8601 date-time format, in the UTC time zone.

", + "smithy.api#xmlName": "createTime" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "KeyFingerprint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyFingerprint", + "smithy.api#documentation": "

If you used CreateKeyPair to create the key pair:

\n
    \n
  • \n

    For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER encoded private key.

    \n
  • \n
  • \n

    For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which \n is the default for OpenSSH, starting with OpenSSH 6.8.

    \n
  • \n
\n

If you used ImportKeyPair to provide Amazon Web Services the public key:

\n
    \n
  • \n

    For RSA key pairs, the key fingerprint is the MD5 public key fingerprint as specified in section 4 of RFC4716.

    \n
  • \n
  • \n

    For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256\n digest, which is the default for OpenSSH, starting with OpenSSH 6.8.

    \n
  • \n
", + "smithy.api#xmlName": "keyFingerprint" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a key pair.

" + } + }, + "com.amazonaws.ec2#KeyPairList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#KeyPairInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#KeyPairName": { + "type": "string" + }, + "com.amazonaws.ec2#KeyPairNameWithResolver": { + "type": "string" + }, + "com.amazonaws.ec2#KeyType": { + "type": "enum", + "members": { + "rsa": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rsa" + } + }, + "ed25519": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ed25519" + } + } + } + }, + "com.amazonaws.ec2#KmsKeyArn": { + "type": "string" + }, + "com.amazonaws.ec2#KmsKeyId": { + "type": "string" + }, + "com.amazonaws.ec2#LastError": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message for the VPC endpoint error.

", + "smithy.api#xmlName": "message" + } + }, + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code for the VPC endpoint error.

", + "smithy.api#xmlName": "code" + } + } + }, + "traits": { + "smithy.api#documentation": "

The last error that occurred for a VPC endpoint.

" + } + }, + "com.amazonaws.ec2#LaunchPermission": { + "type": "structure", + "members": { + "OrganizationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an organization.

", + "smithy.api#xmlName": "organizationArn" + } + }, + "OrganizationalUnitArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationalUnitArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an organizational unit (OU).

", + "smithy.api#xmlName": "organizationalUnitArn" + } + }, + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserId", + "smithy.api#documentation": "

The Amazon Web Services account ID.

\n

Constraints: Up to 10 000 account IDs can be specified in a single request.

", + "smithy.api#xmlName": "userId" + } + }, + "Group": { + "target": "com.amazonaws.ec2#PermissionGroup", + "traits": { + "aws.protocols#ec2QueryName": "Group", + "smithy.api#documentation": "

The name of the group.

", + "smithy.api#xmlName": "group" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch permission.

" + } + }, + "com.amazonaws.ec2#LaunchPermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchPermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchPermissionModifications": { + "type": "structure", + "members": { + "Add": { + "target": "com.amazonaws.ec2#LaunchPermissionList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID, organization ARN, or OU ARN to add to the list of\n launch permissions for the AMI.

" + } + }, + "Remove": { + "target": "com.amazonaws.ec2#LaunchPermissionList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID, organization ARN, or OU ARN to remove from the list of\n launch permissions for the AMI.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch permission modification.

" + } + }, + "com.amazonaws.ec2#LaunchSpecification": { + "type": "structure", + "members": { + "UserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", + "smithy.api#xmlName": "userData" + } + }, + "AddressingType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressingType", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "addressingType" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

The block device mapping entries.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

\n

Default: false\n

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. Only one instance type can be specified.

", + "smithy.api#xmlName": "instanceType" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The ID of the kernel.

", + "smithy.api#xmlName": "kernelId" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceSet", + "smithy.api#documentation": "

The network interfaces. If you specify a network interface, you must specify \n subnet IDs and security group IDs using the network interface.

", + "smithy.api#xmlName": "networkInterfaceSet" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#SpotPlacement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The placement information for the instance.

", + "smithy.api#xmlName": "placement" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The ID of the RAM disk.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which to launch the instance.

", + "smithy.api#xmlName": "subnetId" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The IDs of the security groups.

", + "smithy.api#xmlName": "groupSet" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#RunInstancesMonitoringEnabled", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#xmlName": "monitoring" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch specification for an instance.

" + } + }, + "com.amazonaws.ec2#LaunchSpecsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotFleetLaunchSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplate": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The time launch template was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "CreatedBy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreatedBy", + "smithy.api#documentation": "

The principal that created the launch template.

", + "smithy.api#xmlName": "createdBy" + } + }, + "DefaultVersionNumber": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "DefaultVersionNumber", + "smithy.api#documentation": "

The version number of the default version of the launch template.

", + "smithy.api#xmlName": "defaultVersionNumber" + } + }, + "LatestVersionNumber": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "LatestVersionNumber", + "smithy.api#documentation": "

The version number of the latest version of the launch template.

", + "smithy.api#xmlName": "latestVersionNumber" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the launch template.

", + "smithy.api#xmlName": "tagSet" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The entity that manages the launch template.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateAndOverridesResponse": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateSpecification", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateSpecification", + "smithy.api#documentation": "

The launch template.

", + "smithy.api#xmlName": "launchTemplateSpecification" + } + }, + "Overrides": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateOverrides", + "traits": { + "aws.protocols#ec2QueryName": "Overrides", + "smithy.api#documentation": "

Any parameters that you specify override the same parameters in the launch\n template.

", + "smithy.api#xmlName": "overrides" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template and overrides.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateAutoRecoveryState": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateBlockDeviceMapping": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The device name.

", + "smithy.api#xmlName": "deviceName" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VirtualName", + "smithy.api#documentation": "

The virtual device name (ephemeralN).

", + "smithy.api#xmlName": "virtualName" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#LaunchTemplateEbsBlockDevice", + "traits": { + "aws.protocols#ec2QueryName": "Ebs", + "smithy.api#documentation": "

Information about the block device for an EBS volume.

", + "smithy.api#xmlName": "ebs" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NoDevice", + "smithy.api#documentation": "

To omit the device from the block device mapping, specify an empty string.

", + "smithy.api#xmlName": "noDevice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateBlockDeviceMapping", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingRequest": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The device name (for example, /dev/sdh or xvdh).

" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting\n from 0. An instance type with 2 available instance store volumes can specify mappings\n for ephemeral0 and ephemeral1. The number of available instance store volumes depends on\n the instance type. After you connect to the instance, you must mount the volume.

" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#LaunchTemplateEbsBlockDeviceRequest", + "traits": { + "smithy.api#documentation": "

Parameters used to automatically set up EBS volumes when the instance is\n launched.

" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

To omit the device from the block device mapping, specify an empty string.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingRequest", + "traits": { + "smithy.api#xmlName": "BlockDeviceMapping" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateCapacityReservationSpecificationRequest": { + "type": "structure", + "members": { + "CapacityReservationPreference": { + "target": "com.amazonaws.ec2#CapacityReservationPreference", + "traits": { + "smithy.api#documentation": "

Indicates the instance's Capacity Reservation preferences. Possible preferences\n include:

\n
    \n
  • \n

    \n capacity-reservations-only - The instance will only run in a\n Capacity Reservation or Capacity Reservation group. If capacity isn't available,\n the instance will fail to launch.

    \n
  • \n
  • \n

    \n open - The instance can run in any open Capacity\n Reservation that has matching attributes (instance type, platform, Availability\n Zone, tenancy).

    \n
  • \n
  • \n

    \n none - The instance avoids running in a Capacity Reservation even\n if one is available. The instance runs in On-Demand capacity.

    \n
  • \n
" + } + }, + "CapacityReservationTarget": { + "target": "com.amazonaws.ec2#CapacityReservationTarget", + "traits": { + "smithy.api#documentation": "

Information about the target Capacity Reservation or Capacity Reservation\n group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an instance's Capacity Reservation targeting option. You can specify only\n one option at a time. Use the CapacityReservationPreference parameter to\n configure the instance to run in On-Demand capacity or to run in any open\n Capacity Reservation that has matching attributes (instance type, platform, Availability\n Zone). Use the CapacityReservationTarget parameter to explicitly target a\n specific Capacity Reservation or a Capacity Reservation group.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateCapacityReservationSpecificationResponse": { + "type": "structure", + "members": { + "CapacityReservationPreference": { + "target": "com.amazonaws.ec2#CapacityReservationPreference", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationPreference", + "smithy.api#documentation": "

Indicates the instance's Capacity Reservation preferences. Possible preferences\n include:

\n
    \n
  • \n

    \n open - The instance can run in any open Capacity\n Reservation that has matching attributes (instance type, platform, Availability\n Zone).

    \n
  • \n
  • \n

    \n none - The instance avoids running in a Capacity Reservation even\n if one is available. The instance runs in On-Demand capacity.

    \n
  • \n
", + "smithy.api#xmlName": "capacityReservationPreference" + } + }, + "CapacityReservationTarget": { + "target": "com.amazonaws.ec2#CapacityReservationTargetResponse", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationTarget", + "smithy.api#documentation": "

Information about the target Capacity Reservation or Capacity Reservation\n group.

", + "smithy.api#xmlName": "capacityReservationTarget" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Capacity Reservation targeting option.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateConfig": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateSpecification", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateSpecification", + "smithy.api#documentation": "

The launch template to use. Make sure that the launch template does not contain the\n NetworkInterfaceId parameter because you can't specify a network interface\n ID in a Spot Fleet.

", + "smithy.api#xmlName": "launchTemplateSpecification" + } + }, + "Overrides": { + "target": "com.amazonaws.ec2#LaunchTemplateOverridesList", + "traits": { + "aws.protocols#ec2QueryName": "Overrides", + "smithy.api#documentation": "

Any parameters that you specify override the same parameters in the launch\n template.

", + "smithy.api#xmlName": "overrides" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template and overrides.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateConfig", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateCpuOptions": { + "type": "structure", + "members": { + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CoreCount", + "smithy.api#documentation": "

The number of CPU cores for the instance.

", + "smithy.api#xmlName": "coreCount" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ThreadsPerCore", + "smithy.api#documentation": "

The number of threads per CPU core.

", + "smithy.api#xmlName": "threadsPerCore" + } + }, + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnpSpecification", + "traits": { + "aws.protocols#ec2QueryName": "AmdSevSnp", + "smithy.api#documentation": "

Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see\n AMD SEV-SNP\n for Amazon EC2 instances.

", + "smithy.api#xmlName": "amdSevSnp" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "aws.protocols#ec2QueryName": "NestedVirtualization", + "smithy.api#documentation": "

Indicates whether the instance is enabled for nested virtualization.

", + "smithy.api#xmlName": "nestedVirtualization" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU options for the instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateCpuOptionsRequest": { + "type": "structure", + "members": { + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of CPU cores for the instance.

" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of threads per CPU core. To disable multithreading for the instance,\n specify a value of 1. Otherwise, specify the default value of\n 2.

" + } + }, + "AmdSevSnp": { + "target": "com.amazonaws.ec2#AmdSevSnpSpecification", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported\n with M6a, R6a, and C6a instance types only. For more information, see AMD SEV-SNP for\n Amazon EC2 instances.

" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable the instance for nested virtualization.\n Nested virtualization is supported only on 8th generation Intel-based instance types (c8i, m8i, r8i, and their flex variants).\n When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CPU options for the instance. Both the core count and threads per core must be\n specified in the request.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateEbsBlockDevice": { + "type": "structure", + "members": { + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the EBS volume is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the EBS volume is deleted on instance termination.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Iops", + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) that the volume supports.

", + "smithy.api#xmlName": "iops" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#xmlName": "volumeSize" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "VolumeType", + "smithy.api#documentation": "

The volume type.

", + "smithy.api#xmlName": "volumeType" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Throughput", + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

", + "smithy.api#xmlName": "throughput" + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeInitializationRate", + "smithy.api#documentation": "

The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume, in MiB/s. \n If no volume initialization rate was specified, the value is null.

", + "smithy.api#xmlName": "volumeInitializationRate" + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EbsCardIndex", + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

", + "smithy.api#xmlName": "ebsCardIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device for an EBS volume.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateEbsBlockDeviceRequest": { + "type": "structure", + "members": { + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached\n to instances that support Amazon EBS encryption. If you are creating a volume from a\n snapshot, you can't specify an encryption value.

" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the EBS volume is deleted on instance termination.

" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3,\n io1, and io2 volumes, this represents the number of IOPS that\n are provisioned for the volume. For gp2 volumes, this represents the\n baseline performance of the volume and the rate at which the volume accumulates I/O\n credits for bursting.

\n

The following are the supported values for each volume type:

\n
    \n
  • \n

    \n gp3: 3,000 - 80,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n

For io2 volumes, you can achieve up to 256,000 IOPS on \ninstances \nbuilt on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.

\n

This parameter is supported for io1, io2, and gp3 volumes only.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#documentation": "

Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The ID of the snapshot.

" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The size of the volume, in GiBs. You must specify either a snapshot ID or a volume\n size. The following are the supported volumes sizes for each volume type:

\n
    \n
  • \n

    \n gp2: 1 - 16,384 GiB

    \n
  • \n
  • \n

    \n gp3: 1 - 65,536 GiB

    \n
  • \n
  • \n

    \n io1: 4 - 16,384 GiB

    \n
  • \n
  • \n

    \n io2: 4 - 65,536 GiB

    \n
  • \n
  • \n

    \n st1 and sc1: 125 - 16,384 GiB

    \n
  • \n
  • \n

    \n standard: 1 - 1024 GiB

    \n
  • \n
" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "smithy.api#documentation": "

The volume type. For more information, see Amazon EBS volume types in the\n Amazon EBS User Guide.

" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The throughput to provision for a gp3 volume, with a maximum of 2,000\n MiB/s.

\n

Valid Range: Minimum value of 125. Maximum value of 2,000.

" + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download \n the snapshot blocks from Amazon S3 to the volume. This is also known as volume \n initialization. Specifying a volume initialization rate ensures that the volume is \n initialized at a predictable and consistent rate after creation.

\n

This parameter is supported only for volumes created from snapshots. Omit this parameter \n if:

\n
    \n
  • \n

    You want to create the volume using fast snapshot restore. You must specify a snapshot \n that is enabled for fast snapshot restore. In this case, the volume is fully initialized \n at creation.

    \n \n

    If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, \n the volume will be initialized at the specified rate instead of fast snapshot restore.

    \n
    \n
  • \n
  • \n

    You want to create a volume that is initialized at the default rate.

    \n
  • \n
\n

For more information, see \n Initialize Amazon EBS volumes in the Amazon EC2 User Guide.

\n

Valid range: 100 - 300 MiB/s

" + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The parameters for a block device for an EBS volume.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateElasticInferenceAccelerator": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of elastic inference accelerator. The possible values are eia1.medium,\n eia1.large, and eia1.xlarge.

", + "smithy.api#required": {} + } + }, + "Count": { + "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorCount", + "traits": { + "smithy.api#documentation": "

The number of elastic inference accelerators to attach to the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

Describes an elastic inference accelerator.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAccelerator", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorResponse": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of elastic inference accelerator. The possible values are eia1.medium,\n eia1.large, and eia1.xlarge.

", + "smithy.api#xmlName": "type" + } + }, + "Count": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of elastic inference accelerators to attach to the instance.

", + "smithy.api#xmlName": "count" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

Describes an elastic inference accelerator.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorResponse", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateEnaSrdSpecification": { + "type": "structure", + "members": { + "EnaSrdEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdEnabled", + "smithy.api#documentation": "

Indicates whether ENA Express is enabled for the network interface.

", + "smithy.api#xmlName": "enaSrdEnabled" + } + }, + "EnaSrdUdpSpecification": { + "target": "com.amazonaws.ec2#LaunchTemplateEnaSrdUdpSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpSpecification", + "smithy.api#documentation": "

Configures ENA Express for UDP network traffic.

", + "smithy.api#xmlName": "enaSrdUdpSpecification" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the \n\t\t\tmaximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. \n\t\t\tWith ENA Express, you can communicate between two EC2 instances in the same subnet within the same \n\t\t\taccount, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

\n

To improve the reliability of network packet delivery, ENA Express reorders network packets on the \n\t\t\treceiving end by default. However, some UDP-based applications are designed to handle network packets \n\t\t\tthat are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express \n\t\t\tis enabled, you can specify whether UDP network traffic uses it.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateEnaSrdUdpSpecification": { + "type": "structure", + "members": { + "EnaSrdUdpEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdUdpEnabled", + "smithy.api#documentation": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, \n\t\t\tyou must first enable ENA Express.

", + "smithy.api#xmlName": "enaSrdUdpEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic \n\t\t\tautomatically uses it. However, some UDP-based applications are designed to handle network packets that are \n\t\t\tout of order, without a need for retransmission, such as live video broadcasting or other near-real-time \n\t\t\tapplications. For UDP traffic, you can specify whether to use ENA Express, based on your application \n\t\t\tenvironment needs.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateEnclaveOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

If this parameter is set to true, the instance is enabled for Amazon Web Services Nitro\n Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves.

", + "smithy.api#xmlName": "enabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateEnclaveOptionsRequest": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to\n true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more\n information, see What is Nitro Enclaves? in the\n Amazon Web Services Nitro Enclaves User Guide.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateErrorCode": { + "type": "enum", + "members": { + "LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchTemplateIdDoesNotExist" + } + }, + "LAUNCH_TEMPLATE_ID_MALFORMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchTemplateIdMalformed" + } + }, + "LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchTemplateNameDoesNotExist" + } + }, + "LAUNCH_TEMPLATE_NAME_MALFORMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchTemplateNameMalformed" + } + }, + "LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchTemplateVersionDoesNotExist" + } + }, + "UNEXPECTED_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unexpectedError" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateHibernationOptions": { + "type": "structure", + "members": { + "Configured": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Configured", + "smithy.api#documentation": "

If this parameter is set to true, the instance is enabled for\n hibernation; otherwise, it is not enabled for hibernation.

", + "smithy.api#xmlName": "configured" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether an instance is configured for hibernation.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateHibernationOptionsRequest": { + "type": "structure", + "members": { + "Configured": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If you set this parameter to true, the instance is enabled for\n hibernation.

\n

Default: false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is configured for hibernation. This parameter is valid\n only if the instance meets the hibernation\n prerequisites.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateHttpTokensState": { + "type": "enum", + "members": { + "optional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optional" + } + }, + "required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateIamInstanceProfileSpecification": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile.

", + "smithy.api#xmlName": "arn" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the instance profile.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IAM instance profile.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateIamInstanceProfileSpecificationRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the instance profile.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An IAM instance profile.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateId": { + "type": "string" + }, + "com.amazonaws.ec2#LaunchTemplateIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMaintenanceOptions": { + "type": "structure", + "members": { + "AutoRecovery": { + "target": "com.amazonaws.ec2#LaunchTemplateAutoRecoveryState", + "traits": { + "aws.protocols#ec2QueryName": "AutoRecovery", + "smithy.api#documentation": "

Disables the automatic recovery behavior of your instance or sets it to\n default.

", + "smithy.api#xmlName": "autoRecovery" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maintenance options of your instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMaintenanceOptionsRequest": { + "type": "structure", + "members": { + "AutoRecovery": { + "target": "com.amazonaws.ec2#LaunchTemplateAutoRecoveryState", + "traits": { + "smithy.api#documentation": "

Disables the automatic recovery behavior of your instance or sets it to default. For\n more information, see Simplified automatic recovery.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maintenance options of your instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMarketOptions": { + "type": "structure", + "members": { + "MarketType": { + "target": "com.amazonaws.ec2#MarketType", + "traits": { + "aws.protocols#ec2QueryName": "MarketType", + "smithy.api#documentation": "

The market type.

", + "smithy.api#xmlName": "marketType" + } + }, + "SpotOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateSpotMarketOptions", + "traits": { + "aws.protocols#ec2QueryName": "SpotOptions", + "smithy.api#documentation": "

The options for Spot Instances.

", + "smithy.api#xmlName": "spotOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

The market (purchasing) option for the instances.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMarketOptionsRequest": { + "type": "structure", + "members": { + "MarketType": { + "target": "com.amazonaws.ec2#MarketType", + "traits": { + "smithy.api#documentation": "

The market type.

" + } + }, + "SpotOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateSpotMarketOptionsRequest", + "traits": { + "smithy.api#documentation": "

The options for Spot Instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The market (purchasing) option for the instances.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataEndpointState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptions": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptionsState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the metadata option changes.

\n

\n pending - The metadata options are being updated and the instance is not\n ready to process metadata traffic with the new selection.

\n

\n applied - The metadata options have been successfully applied on the\n instance.

", + "smithy.api#xmlName": "state" + } + }, + "HttpTokens": { + "target": "com.amazonaws.ec2#LaunchTemplateHttpTokensState", + "traits": { + "aws.protocols#ec2QueryName": "HttpTokens", + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional. You can choose whether to send a\n session token in your instance metadata retrieval requests. If you retrieve IAM\n role credentials without a session token, you receive the IMDSv1 role\n credentials. If you retrieve IAM role credentials using a valid session token,\n you receive the IMDSv2 role credentials.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required. You must send a session token in\n your instance metadata retrieval requests. With this option, retrieving the IAM\n role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not\n available.

    \n
  • \n
", + "smithy.api#xmlName": "httpTokens" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "HttpPutResponseHopLimit", + "smithy.api#documentation": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n number, the further instance metadata requests can travel.

\n

Possible values: Integers from 1 to 64

", + "smithy.api#xmlName": "httpPutResponseHopLimit" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataEndpointState", + "traits": { + "aws.protocols#ec2QueryName": "HttpEndpoint", + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances. If the parameter is\n not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access\n your instance metadata.

\n
", + "smithy.api#xmlName": "httpEndpoint" + } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6", + "traits": { + "aws.protocols#ec2QueryName": "HttpProtocolIpv6", + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service.

\n

Default: disabled\n

", + "smithy.api#xmlName": "httpProtocolIpv6" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataTagsState", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMetadataTags", + "smithy.api#documentation": "

Set to enabled to allow access to instance tags from the instance\n metadata. Set to disabled to turn off access to instance tags from the\n instance metadata. For more information, see View tags for your EC2\n instances using instance metadata.

\n

Default: disabled\n

", + "smithy.api#xmlName": "instanceMetadataTags" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metadata options for the instance. For more information, see Use\n instance metadata to manage your EC2 instance in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptionsRequest": { + "type": "structure", + "members": { + "HttpTokens": { + "target": "com.amazonaws.ec2#LaunchTemplateHttpTokensState", + "traits": { + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional. You can choose whether to send a\n session token in your instance metadata retrieval requests. If you retrieve IAM\n role credentials without a session token, you receive the IMDSv1 role\n credentials. If you retrieve IAM role credentials using a valid session token,\n you receive the IMDSv2 role credentials.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required. You must send a session token in\n your instance metadata retrieval requests. With this option, retrieving the IAM\n role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not\n available.

    \n
  • \n
\n

Default: If the value of ImdsSupport for the Amazon Machine Image (AMI)\n for your instance is v2.0, the default is required.

" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n number, the further instance metadata requests can travel.

\n

Default: 1\n

\n

Possible values: Integers from 1 to 64

" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataEndpointState", + "traits": { + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances. If the parameter is\n not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access\n your instance metadata.

\n
" + } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6", + "traits": { + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service.

\n

Default: disabled\n

" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataTagsState", + "traits": { + "smithy.api#documentation": "

Set to enabled to allow access to instance tags from the instance\n metadata. Set to disabled to turn off access to instance tags from the\n instance metadata. For more information, see View tags for your EC2\n instances using instance metadata.

\n

Default: disabled\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metadata options for the instance. For more information, see Use\n instance metadata to manage your EC2 instance in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptionsState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "applied": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "applied" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataTagsState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecification": { + "type": "structure", + "members": { + "AssociateCarrierIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssociateCarrierIpAddress", + "smithy.api#documentation": "

Indicates whether to associate a Carrier IP address with eth0 for a new network\n interface.

\n

Use this option when you launch an instance in a Wavelength Zone and want to associate\n a Carrier IP address with the network interface. For more information about Carrier IP\n addresses, see Carrier IP address in the Wavelength Developer\n Guide.

", + "smithy.api#xmlName": "associateCarrierIpAddress" + } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssociatePublicIpAddress", + "smithy.api#documentation": "

Indicates whether to associate a public IPv4 address with eth0 for a new network\n interface.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

", + "smithy.api#xmlName": "associatePublicIpAddress" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the network interface is deleted when the instance is\n terminated.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the network interface.

", + "smithy.api#xmlName": "description" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The device index for the network interface attachment.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdStringList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The IDs of one or more security groups.

", + "smithy.api#xmlName": "groupSet" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceType", + "smithy.api#documentation": "

The type of network interface.

", + "smithy.api#xmlName": "interfaceType" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressCount", + "smithy.api#documentation": "

The number of IPv6 addresses for the network interface.

", + "smithy.api#xmlName": "ipv6AddressCount" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressesSet", + "smithy.api#documentation": "

The IPv6 addresses for the network interface.

", + "smithy.api#xmlName": "ipv6AddressesSet" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The primary private IPv4 address of the network interface.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressesSet", + "smithy.api#documentation": "

One or more private IPv4 addresses.

", + "smithy.api#xmlName": "privateIpAddressesSet" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount", + "smithy.api#documentation": "

The number of secondary private IPv4 addresses for the network interface.

", + "smithy.api#xmlName": "secondaryPrivateIpAddressCount" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet for the network interface.

", + "smithy.api#xmlName": "subnetId" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixListResponse", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4PrefixSet", + "smithy.api#documentation": "

One or more IPv4 prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv4PrefixSet" + } + }, + "Ipv4PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4PrefixCount", + "smithy.api#documentation": "

The number of IPv4 prefixes that Amazon Web Services automatically assigned to the network\n interface.

", + "smithy.api#xmlName": "ipv4PrefixCount" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#Ipv6PrefixListResponse", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PrefixSet", + "smithy.api#documentation": "

One or more IPv6 prefixes assigned to the network interface.

", + "smithy.api#xmlName": "ipv6PrefixSet" + } + }, + "Ipv6PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PrefixCount", + "smithy.api#documentation": "

The number of IPv6 prefixes that Amazon Web Services automatically assigned to the network\n interface.

", + "smithy.api#xmlName": "ipv6PrefixCount" + } + }, + "PrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PrimaryIpv6", + "smithy.api#documentation": "

The primary IPv6 address of the network interface. When you enable an IPv6 GUA address\n to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the\n instance is terminated or the network interface is detached. For more information about\n primary IPv6 addresses, see RunInstances.

", + "smithy.api#xmlName": "primaryIpv6" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#LaunchTemplateEnaSrdSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdSpecification", + "smithy.api#documentation": "

Contains the ENA Express settings for instances launched from your launch\n template.

", + "smithy.api#xmlName": "enaSrdSpecification" + } + }, + "ConnectionTrackingSpecification": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecification", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionTrackingSpecification", + "smithy.api#documentation": "

A security group connection tracking specification that enables you to set the timeout\n for connection tracking on an Elastic network interface. For more information, see\n Idle connection tracking timeout in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "connectionTrackingSpecification" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EnaQueueCount", + "smithy.api#documentation": "

The number of ENA queues created with the instance.

", + "smithy.api#xmlName": "enaQueueCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationRequest": { + "type": "structure", + "members": { + "AssociateCarrierIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Associates a Carrier IP address with eth0 for a new network interface.

\n

Use this option when you launch an instance in a Wavelength Zone and want to associate\n a Carrier IP address with the network interface. For more information about Carrier IP\n addresses, see Carrier IP addresses in the Wavelength Developer\n Guide.

" + } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Associates a public IPv4 address with eth0 for a new network interface.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the network interface is deleted when the instance is\n terminated.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the network interface.

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The device index for the network interface attachment. The primary network interface\n has a device index of 0. Each network interface is of type interface, you\n must specify a device index. If you create a launch template that includes secondary\n network interfaces but not a primary network interface, then you must add a primary\n network interface as a launch parameter when you launch an instance from the\n template.

" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of one or more security groups.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of network interface. To create an Elastic Fabric Adapter (EFA), specify\n efa or efa. For more information, see Elastic Fabric Adapter for AI/ML\n and HPC workloads on Amazon EC2 in the\n Amazon EC2 User Guide.

\n

If you are not creating an EFA, specify interface or omit this\n parameter.

\n

If you specify efa-only, do not assign any IP addresses to the network\n interface. EFA-only network interfaces do not support IP addresses.

\n

Valid values: interface | efa | efa-only\n

" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 addresses to assign to a network interface. Amazon EC2\n automatically selects the IPv6 addresses from the subnet range. You can't use this\n option if specifying specific IPv6 addresses.

" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressListRequest", + "traits": { + "smithy.api#documentation": "

One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You\n can't use this option if you're specifying a number of IPv6 addresses.

" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The ID of the network interface.

" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The primary private IPv4 address of the network interface.

" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressSpecificationList", + "traits": { + "smithy.api#documentation": "

One or more private IPv4 addresses.

" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of secondary private IPv4 addresses to assign to a network\n interface.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet for the network interface.

" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network card. Some instance types support multiple network cards. The\n primary network interface must be assigned to network card index 0. The default is\n network card index 0.

" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixList", + "traits": { + "smithy.api#documentation": "

One or more IPv4 prefixes to be assigned to the network interface. You cannot use this\n option if you use the Ipv4PrefixCount option.

", + "smithy.api#xmlName": "Ipv4Prefix" + } + }, + "Ipv4PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv4 prefixes to be automatically assigned to the network interface. You\n cannot use this option if you use the Ipv4Prefix option.

" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#Ipv6PrefixList", + "traits": { + "smithy.api#documentation": "

One or more IPv6 prefixes to be assigned to the network interface. You cannot use this\n option if you use the Ipv6PrefixCount option.

", + "smithy.api#xmlName": "Ipv6Prefix" + } + }, + "Ipv6PrefixCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 prefixes to be automatically assigned to the network interface. You\n cannot use this option if you use the Ipv6Prefix option.

" + } + }, + "PrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

The primary IPv6 address of the network interface. When you enable an IPv6 GUA address\n to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the\n instance is terminated or the network interface is detached. For more information about\n primary IPv6 addresses, see RunInstances.

" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#EnaSrdSpecificationRequest", + "traits": { + "smithy.api#documentation": "

Configure ENA Express settings for your launch template.

" + } + }, + "ConnectionTrackingSpecification": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecificationRequest", + "traits": { + "smithy.api#documentation": "

A security group connection tracking specification that enables you to set the timeout\n for connection tracking on an Elastic network interface. For more information, see\n Idle connection tracking timeout in the\n Amazon EC2 User Guide.

" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of ENA queues to be created with the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The parameters for a network interface.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationRequest", + "traits": { + "smithy.api#xmlName": "InstanceNetworkInterfaceSpecification" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecification": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the secondary interface is deleted when the instance is terminated.

\n

The only supported value for this field is true.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The device index for the secondary interface attachment.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressesSet", + "smithy.api#documentation": "

The private IPv4 addresses to assign to the secondary interface.

\n

If you specify privateIpAddresses you cannot specify privateIpAddressCount\n

", + "smithy.api#xmlName": "privateIpAddressesSet" + } + }, + "PrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressCount", + "smithy.api#documentation": "

The number of private IPv4 addresses to assign to the secondary interface.

\n

If you specify privateIpAddressCount you cannot specify privateIpAddresses\n

", + "smithy.api#xmlName": "privateIpAddressCount" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetId", + "smithy.api#documentation": "

The ID of the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnetId" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#SecondaryInterfaceType", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceType", + "smithy.api#documentation": "

The type of secondary interface.

", + "smithy.api#xmlName": "interfaceType" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary interface specification in a launch template.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the secondary interface is deleted when the instance is terminated.

\n

The only supported value for this field is true.

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The device index for the secondary interface attachment.

" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The private IPv4 addresses to assign to the secondary interface.

", + "smithy.api#xmlName": "PrivateIpAddress" + } + }, + "PrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of private IPv4 addresses to assign to the secondary interface.

" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the secondary subnet.

" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#SecondaryInterfaceType", + "traits": { + "smithy.api#documentation": "

The type of secondary interface.

" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network card.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary interface specification for a launch template request.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest", + "traits": { + "smithy.api#xmlName": "InstanceSecondaryInterfaceSpecification" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateLicenseConfiguration": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LicenseConfigurationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the license configuration.

", + "smithy.api#xmlName": "licenseConfigurationArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a license configuration.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateLicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the license configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a license configuration.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateLicenseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateLicenseConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateLicenseSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateLicenseConfigurationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\(\\)\\.\\-/_]+$" + } + }, + "com.amazonaws.ec2#LaunchTemplateNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptions": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

When you configure network bandwidth weighting, you can boost baseline bandwidth for\n either networking or EBS by up to 25%. The total available baseline bandwidth for your\n instance remains the same. The default option uses the standard bandwidth configuration\n for your instance type.

", + "smithy.api#xmlName": "bandwidthWeighting" + } + } + }, + "traits": { + "smithy.api#documentation": "

With network performance options, you can adjust your bandwidth preferences to meet\n the needs of the workload that runs on your instance at launch.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptionsRequest": { + "type": "structure", + "members": { + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#documentation": "

Specify the bandwidth weighting option to boost the associated type of baseline\n bandwidth, as follows:

\n
\n
default
\n
\n

This option uses the standard bandwidth configuration for your instance\n type.

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS\n baseline bandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking\n baseline bandwidth.

\n
\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

When you configure network performance options in your launch template, your instance\n is geared for performance improvements based on the workload that it runs as soon as\n it's available.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateOverrides": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to \n increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which to launch the instances.

", + "smithy.api#xmlName": "subnetId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which to launch the instances. For example,\n us-east-2a.

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "WeightedCapacity", + "smithy.api#documentation": "

The number of units provided by the specified instance type. These are the same units\n that you chose to set the target capacity in terms of instances, or a performance\n characteristic such as vCPUs, memory, or I/O.

\n

If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the\n number of instances to the next whole number. If this value is not specified, the default\n is 1.

\n \n

When specifying weights, the price used in the lowestPrice and\n priceCapacityOptimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
", + "smithy.api#xmlName": "weightedCapacity" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Priority", + "smithy.api#documentation": "

The priority for the launch template override. The highest priority is launched\n first.

\n

If OnDemandAllocationStrategy is set to prioritized, Spot Fleet\n uses priority to determine which launch template override to use first in fulfilling\n On-Demand capacity.

\n

If the Spot AllocationStrategy is set to\n capacityOptimizedPrioritized, Spot Fleet uses priority on a best-effort basis\n to determine which launch template override to use in fulfilling Spot capacity, but\n optimizes for capacity first.

\n

Valid values are whole numbers starting at 0. The lower the number, the\n higher the priority. If no number is set, the launch template override has the lowest\n priority. You can set the same priority for different launch template overrides.

", + "smithy.api#xmlName": "priority" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirements", + "traits": { + "aws.protocols#ec2QueryName": "InstanceRequirements", + "smithy.api#documentation": "

The instance requirements. When you specify instance requirements, Amazon EC2 will identify\n instance types with the provided requirements, and then use your On-Demand and Spot\n allocation strategies to launch instances from these instance types, in the same way as\n when you specify a list of instance types.

\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n
", + "smithy.api#xmlName": "instanceRequirements" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which to launch the instances. For example,\n use2-az1.

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes overrides for a launch template.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateOverridesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateOverrides", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplatePlacement": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the instance.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Affinity": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Affinity", + "smithy.api#documentation": "

The affinity setting for the instance on the Dedicated Host.

", + "smithy.api#xmlName": "affinity" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group for the instance.

", + "smithy.api#xmlName": "groupName" + } + }, + "HostId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

The ID of the Dedicated Host for the instance.

", + "smithy.api#xmlName": "hostId" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the instance. An instance with a tenancy of dedicated runs\n on single-tenant hardware.

", + "smithy.api#xmlName": "tenancy" + } + }, + "SpreadDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpreadDomain", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "spreadDomain" + } + }, + "HostResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostResourceGroupArn", + "smithy.api#documentation": "

The ARN of the host resource group in which to launch the instances.

", + "smithy.api#xmlName": "hostResourceGroupArn" + } + }, + "PartitionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PartitionNumber", + "smithy.api#documentation": "

The number of the partition the instance should launch in. Valid only if the placement\n group strategy is set to partition.

", + "smithy.api#xmlName": "partitionNumber" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The Group ID of the placement group. You must specify the Placement Group Group ID to launch an instance in a shared placement\n group.

", + "smithy.api#xmlName": "groupId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement of an instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplatePlacementRequest": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone for the instance.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone for the instance.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

" + } + }, + "Affinity": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The affinity setting for an instance on a Dedicated Host.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "smithy.api#documentation": "

The name of the placement group for the instance.

" + } + }, + "HostId": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "smithy.api#documentation": "

The ID of the Dedicated Host for the instance.

" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "smithy.api#documentation": "

The tenancy of the instance. An instance with a tenancy of dedicated runs on\n single-tenant hardware.

" + } + }, + "SpreadDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "HostResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the host resource group in which to launch the instances. If you specify a\n host resource group ARN, omit the Tenancy parameter or\n set it to host.

" + } + }, + "PartitionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of the partition the instance should launch in. Valid only if the placement\n group strategy is set to partition.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "smithy.api#documentation": "

The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement\n group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement of an instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplatePrivateDnsNameOptions": { + "type": "structure", + "members": { + "HostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "aws.protocols#ec2QueryName": "HostnameType", + "smithy.api#documentation": "

The type of hostname to assign to an instance.

", + "smithy.api#xmlName": "hostnameType" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsARecord" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsAAAARecord" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for instance hostnames.

" + } + }, + "com.amazonaws.ec2#LaunchTemplatePrivateDnsNameOptionsRequest": { + "type": "structure", + "members": { + "HostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "smithy.api#documentation": "

The type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name\n must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS\n name must be based on the instance ID. For dual-stack subnets, you can specify whether\n DNS names use the instance IPv4 address or the instance ID.

" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n records.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for instance hostnames.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplate", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateSpecification": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" + } + }, + "Version": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The launch template version number, $Latest, or\n $Default.

\n

A value of $Latest uses the latest version of the launch template.

\n

A value of $Default uses the default version of the launch template.

\n

Default: The default version of the launch template.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch template to use.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateSpotMarketOptions": { + "type": "structure", + "members": { + "MaxPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MaxPrice", + "smithy.api#documentation": "

The maximum hourly price you're willing to pay for a Spot Instance. We do not\n recommend using this parameter because it can lead to increased interruptions. If you do\n not specify this parameter, you will pay the current Spot price. If you do specify this\n parameter, it must be more than USD $0.001. Specifying a value below USD $0.001 will\n result in an InvalidParameterValue error message when the launch template\n is used to launch an instance.

", + "smithy.api#xmlName": "maxPrice" + } + }, + "SpotInstanceType": { + "target": "com.amazonaws.ec2#SpotInstanceType", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceType", + "smithy.api#documentation": "

The Spot Instance request type.

", + "smithy.api#xmlName": "spotInstanceType" + } + }, + "BlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "BlockDurationMinutes", + "smithy.api#documentation": "

The required duration for the Spot Instances (also known as Spot blocks), in minutes.\n This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

", + "smithy.api#xmlName": "blockDurationMinutes" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidUntil", + "smithy.api#documentation": "

The end date of the request. For a one-time request, the request remains active until\n all instances launch, the request is canceled, or this date is reached. If the request\n is persistent, it remains active until it is canceled or this date and time is\n reached.

", + "smithy.api#xmlName": "validUntil" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInterruptionBehavior", + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted.

", + "smithy.api#xmlName": "instanceInterruptionBehavior" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for Spot Instances.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateSpotMarketOptionsRequest": { + "type": "structure", + "members": { + "MaxPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The maximum hourly price you're willing to pay for a Spot Instance. We do not\n recommend using this parameter because it can lead to increased interruptions. If you do\n not specify this parameter, you will pay the current Spot price. If you do specify this\n parameter, it must be more than USD $0.001. Specifying a value below USD $0.001 will\n result in an InvalidParameterValue error message when the launch template\n is used to launch an instance.

\n \n

If you specify a maximum price, your Spot Instances will be interrupted more\n frequently than if you do not specify this parameter.

\n
" + } + }, + "SpotInstanceType": { + "target": "com.amazonaws.ec2#SpotInstanceType", + "traits": { + "smithy.api#documentation": "

The Spot Instance request type.

" + } + }, + "BlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The end date of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ). Supported only for\n persistent requests.

\n
    \n
  • \n

    For a persistent request, the request remains active until the\n ValidUntil date and time is reached. Otherwise, the request\n remains active until you cancel it.

    \n
  • \n
  • \n

    For a one-time request, ValidUntil is not supported. The request\n remains active until all instances launch or you cancel the request.

    \n
  • \n
\n

Default: 7 days from the current date

" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted. The default is\n terminate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for Spot Instances.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateTagSpecification": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource to tag.

", + "smithy.api#xmlName": "resourceType" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the resource.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tags specification for the launch template.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateTagSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateTagSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateTagSpecificationRequest": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource to tag.

\n

Valid Values lists all resource types for Amazon EC2 that can be tagged. When you\n create a launch template, you can specify tags for the following resource types only:\n instance | volume |\n network-interface | spot-instances-request. If the instance\n does not include the resource type that you specify, the instance launch fails. For\n example, not all instance types include a volume.

\n

To tag a resource after it has been created, see CreateTags.

" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the resource.

", + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tags specification for the resources that are created during instance\n launch.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateTagSpecificationRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateTagSpecificationRequest", + "traits": { + "smithy.api#xmlName": "LaunchTemplateTagSpecificationRequest" + } + } + }, + "com.amazonaws.ec2#LaunchTemplateVersion": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateId", + "smithy.api#documentation": "

The ID of the launch template.

", + "smithy.api#xmlName": "launchTemplateId" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateName", + "smithy.api#documentation": "

The name of the launch template.

", + "smithy.api#xmlName": "launchTemplateName" + } + }, + "VersionNumber": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "VersionNumber", + "smithy.api#documentation": "

The version number.

", + "smithy.api#xmlName": "versionNumber" + } + }, + "VersionDescription": { + "target": "com.amazonaws.ec2#VersionDescription", + "traits": { + "aws.protocols#ec2QueryName": "VersionDescription", + "smithy.api#documentation": "

The description for the version.

", + "smithy.api#xmlName": "versionDescription" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The time the version was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "CreatedBy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreatedBy", + "smithy.api#documentation": "

The principal that created the version.

", + "smithy.api#xmlName": "createdBy" + } + }, + "DefaultVersion": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DefaultVersion", + "smithy.api#documentation": "

Indicates whether the version is the default version.

", + "smithy.api#xmlName": "defaultVersion" + } + }, + "LaunchTemplateData": { + "target": "com.amazonaws.ec2#ResponseLaunchTemplateData", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateData", + "smithy.api#documentation": "

Information about the launch template.

", + "smithy.api#xmlName": "launchTemplateData" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The entity that manages the launch template.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch template version.

" + } + }, + "com.amazonaws.ec2#LaunchTemplateVersionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LaunchTemplateVersion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LaunchTemplatesMonitoring": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is\n enabled.

", + "smithy.api#xmlName": "enabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the monitoring for the instance.

" + } + }, + "com.amazonaws.ec2#LaunchTemplatesMonitoringRequest": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify true to enable detailed monitoring. Otherwise, basic monitoring\n is enabled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the monitoring for the instance.

" + } + }, + "com.amazonaws.ec2#LicenseConfiguration": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LicenseConfigurationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the license configuration.

", + "smithy.api#xmlName": "licenseConfigurationArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a license configuration.

" + } + }, + "com.amazonaws.ec2#LicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the license configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a license configuration.

" + } + }, + "com.amazonaws.ec2#LicenseList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LicenseConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LicenseSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LicenseConfigurationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ListImagesInRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ListImagesInRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ListImagesInRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Lists one or more AMIs that are currently in the Recycle Bin. For more information, see\n Recycle\n Bin in the Amazon EC2 User Guide.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Images", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#ListImagesInRecycleBinMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#ListImagesInRecycleBinRequest": { + "type": "structure", + "members": { + "ImageIds": { + "target": "com.amazonaws.ec2#ImageIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the AMIs to list. Omit this parameter to list all of the AMIs that are in the\n Recycle Bin. You can specify up to 20 IDs in a single request.

", + "smithy.api#xmlName": "ImageId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#ListImagesInRecycleBinMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n To get the next page of items, make another request with the token returned in the output.\n\t For more information, see Pagination.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ListImagesInRecycleBinResult": { + "type": "structure", + "members": { + "Images": { + "target": "com.amazonaws.ec2#ImageRecycleBinInfoList", + "traits": { + "aws.protocols#ec2QueryName": "ImageSet", + "smithy.api#documentation": "

Information about the AMIs.

", + "smithy.api#xmlName": "imageSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. This value is null when there\n are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ListSnapshotsInRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ListSnapshotsInRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ListSnapshotsInRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Lists one or more snapshots that are currently in the Recycle Bin.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Snapshots", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#ListSnapshotsInRecycleBinMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#ListSnapshotsInRecycleBinRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.ec2#ListSnapshotsInRecycleBinMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + }, + "SnapshotIds": { + "target": "com.amazonaws.ec2#SnapshotIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the snapshots to list. Omit this parameter to list all of the \n snapshots that are in the Recycle Bin.

", + "smithy.api#xmlName": "SnapshotId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ListSnapshotsInRecycleBinResult": { + "type": "structure", + "members": { + "Snapshots": { + "target": "com.amazonaws.ec2#SnapshotRecycleBinInfoList", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotSet", + "smithy.api#documentation": "

Information about the snapshots.

", + "smithy.api#xmlName": "snapshotSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ListVolumesInRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ListVolumesInRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ListVolumesInRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Lists one or more volumes that are currently in the Recycle Bin.

" + } + }, + "com.amazonaws.ec2#ListVolumesInRecycleBinRequest": { + "type": "structure", + "members": { + "VolumeIds": { + "target": "com.amazonaws.ec2#VolumeIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the volumes to list. Omit this parameter to list all of the \n volumes that are in the Recycle Bin.

", + "smithy.api#xmlName": "VolumeId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see Pagination.

\n

Valid range: 5 - 500

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token returned from a previous paginated request.\n Pagination continues from the end of the items returned by the previous request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ListVolumesInRecycleBinResult": { + "type": "structure", + "members": { + "Volumes": { + "target": "com.amazonaws.ec2#VolumeRecycleBinInfoList", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSet", + "smithy.api#documentation": "

Information about the volumes.

", + "smithy.api#xmlName": "volumeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to include in another request to get the next page of items. \n This value is null when there are no more items to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ListingState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "sold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sold" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + } + } + }, + "com.amazonaws.ec2#ListingStatus": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "closed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "closed" + } + } + } + }, + "com.amazonaws.ec2#LoadBalancerArn": { + "type": "string" + }, + "com.amazonaws.ec2#LoadBalancersConfig": { + "type": "structure", + "members": { + "ClassicLoadBalancersConfig": { + "target": "com.amazonaws.ec2#ClassicLoadBalancersConfig", + "traits": { + "aws.protocols#ec2QueryName": "ClassicLoadBalancersConfig", + "smithy.api#documentation": "

The Classic Load Balancers.

", + "smithy.api#xmlName": "classicLoadBalancersConfig" + } + }, + "TargetGroupsConfig": { + "target": "com.amazonaws.ec2#TargetGroupsConfig", + "traits": { + "aws.protocols#ec2QueryName": "TargetGroupsConfig", + "smithy.api#documentation": "

The target groups.

", + "smithy.api#xmlName": "targetGroupsConfig" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Classic Load Balancers and target groups to attach to a Spot Fleet\n request.

" + } + }, + "com.amazonaws.ec2#LoadPermission": { + "type": "structure", + "members": { + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserId", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", + "smithy.api#xmlName": "userId" + } + }, + "Group": { + "target": "com.amazonaws.ec2#PermissionGroup", + "traits": { + "aws.protocols#ec2QueryName": "Group", + "smithy.api#documentation": "

The name of the group.

", + "smithy.api#xmlName": "group" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load permission.

" + } + }, + "com.amazonaws.ec2#LoadPermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LoadPermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LoadPermissionListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LoadPermissionRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LoadPermissionModifications": { + "type": "structure", + "members": { + "Add": { + "target": "com.amazonaws.ec2#LoadPermissionListRequest", + "traits": { + "smithy.api#documentation": "

The load permissions to add.

" + } + }, + "Remove": { + "target": "com.amazonaws.ec2#LoadPermissionListRequest", + "traits": { + "smithy.api#documentation": "

The load permissions to remove.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes modifications to the load permissions of an Amazon FPGA image (AFI).

" + } + }, + "com.amazonaws.ec2#LoadPermissionRequest": { + "type": "structure", + "members": { + "Group": { + "target": "com.amazonaws.ec2#PermissionGroup", + "traits": { + "smithy.api#documentation": "

The name of the group.

" + } + }, + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load permission.

" + } + }, + "com.amazonaws.ec2#LocalGateway": { + "type": "structure", + "members": { + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the local gateway.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the local gateway.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a local gateway.

" + } + }, + "com.amazonaws.ec2#LocalGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewayIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#LocalGatewayRoute": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The CIDR block used for destination matches.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupId", + "smithy.api#documentation": "

The ID of the virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupId" + } + }, + "Type": { + "target": "com.amazonaws.ec2#LocalGatewayRouteType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The route type.

", + "smithy.api#xmlName": "type" + } + }, + "State": { + "target": "com.amazonaws.ec2#LocalGatewayRouteState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the route.

", + "smithy.api#xmlName": "state" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "LocalGatewayRouteTableArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route.

", + "smithy.api#xmlName": "ownerId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "CoipPoolId": { + "target": "com.amazonaws.ec2#CoipPoolId", + "traits": { + "aws.protocols#ec2QueryName": "CoipPoolId", + "smithy.api#documentation": "

The ID of the customer-owned address pool.

", + "smithy.api#xmlName": "coipPoolId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPrefixListId", + "smithy.api#documentation": "

\n The ID of the prefix list.\n

", + "smithy.api#xmlName": "destinationPrefixListId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route for a local gateway route table.

" + } + }, + "com.amazonaws.ec2#LocalGatewayRouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "blackhole": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blackhole" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTable": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "LocalGatewayRouteTableArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableArn" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route table.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the local gateway route table.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the local gateway route table.

", + "smithy.api#xmlName": "tagSet" + } + }, + "Mode": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableMode", + "traits": { + "aws.protocols#ec2QueryName": "Mode", + "smithy.api#documentation": "

The mode of the local gateway route table.

", + "smithy.api#xmlName": "mode" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#StateReason", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

Information about the state change.

", + "smithy.api#xmlName": "stateReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a local gateway route table.

" + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableMode": { + "type": "enum", + "members": { + "direct_vpc_routing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "direct-vpc-routing" + } + }, + "coip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "coip" + } + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTable", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "localGatewayRouteTableVirtualInterfaceGroupAssociationId" + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupId", + "smithy.api#documentation": "

The ID of the virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupId" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "LocalGatewayRouteTableArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the local gateway route table for the virtual interface group.

", + "smithy.api#xmlName": "localGatewayRouteTableArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface group association.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the association.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a local gateway route table and a virtual interface group.

" + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociation": { + "type": "structure", + "members": { + "LocalGatewayRouteTableVpcAssociationId": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableVpcAssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "localGatewayRouteTableVpcAssociationId" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#xmlName": "localGatewayRouteTableId" + } + }, + "LocalGatewayRouteTableArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayRouteTableArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the local gateway route table for the association.

", + "smithy.api#xmlName": "localGatewayRouteTableArn" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route table for the association.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the association.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a local gateway route table and a VPC.

" + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayRouteTableVpcAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayRouteType": { + "type": "enum", + "members": { + "static": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static" + } + }, + "propagated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "propagated" + } + } + } + }, + "com.amazonaws.ec2#LocalGatewayRoutetableId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewaySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterface": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceId", + "smithy.api#documentation": "

The ID of the virtual interface.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceId" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupId", + "smithy.api#documentation": "

The ID of the local gateway virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupId" + } + }, + "LocalGatewayVirtualInterfaceArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceArn", + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the local gateway virtual interface.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceArn" + } + }, + "OutpostLagId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostLagId", + "smithy.api#documentation": "

The Outpost LAG ID.

", + "smithy.api#xmlName": "outpostLagId" + } + }, + "Vlan": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Vlan", + "smithy.api#documentation": "

The ID of the VLAN.

", + "smithy.api#xmlName": "vlan" + } + }, + "LocalAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalAddress", + "smithy.api#documentation": "

The local address.

", + "smithy.api#xmlName": "localAddress" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerAddress", + "smithy.api#documentation": "

The peer address.

", + "smithy.api#xmlName": "peerAddress" + } + }, + "LocalBgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "LocalBgpAsn", + "smithy.api#documentation": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.

", + "smithy.api#xmlName": "localBgpAsn" + } + }, + "PeerBgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PeerBgpAsn", + "smithy.api#documentation": "

The peer BGP ASN.

", + "smithy.api#xmlName": "peerBgpAsn" + } + }, + "PeerBgpAsnExtended": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "PeerBgpAsnExtended", + "smithy.api#documentation": "

The extended 32-bit ASN of the BGP peer for use with larger ASN values.

", + "smithy.api#xmlName": "peerBgpAsnExtended" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the virtual interface.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ConfigurationState": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceConfigurationState", + "traits": { + "aws.protocols#ec2QueryName": "ConfigurationState", + "smithy.api#documentation": "

The current state of the local gateway virtual interface.

", + "smithy.api#xmlName": "configurationState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a local gateway virtual interface.

" + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceConfigurationState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroup": { + "type": "structure", + "members": { + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupId", + "smithy.api#documentation": "

The ID of the virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupId" + } + }, + "LocalGatewayVirtualInterfaceIds": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceIdSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceIdSet", + "smithy.api#documentation": "

The IDs of the virtual interfaces.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceIdSet" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface group.

", + "smithy.api#xmlName": "ownerId" + } + }, + "LocalBgpAsn": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "LocalBgpAsn", + "smithy.api#documentation": "

The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).

", + "smithy.api#xmlName": "localBgpAsn" + } + }, + "LocalBgpAsnExtended": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "LocalBgpAsnExtended", + "smithy.api#documentation": "

The extended 32-bit ASN for the local BGP configuration.

", + "smithy.api#xmlName": "localBgpAsnExtended" + } + }, + "LocalGatewayVirtualInterfaceGroupArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceGroupArn", + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the local gateway virtual interface group.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceGroupArn" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the virtual interface group.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ConfigurationState": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupConfigurationState", + "traits": { + "aws.protocols#ec2QueryName": "ConfigurationState", + "smithy.api#documentation": "

The current state of the local gateway virtual interface group.

", + "smithy.api#xmlName": "configurationState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a local gateway virtual interface group.

" + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupConfigurationState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "incomplete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incomplete" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceId": { + "type": "string" + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalGatewayVirtualInterfaceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LocalStorage": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ec2#LocalStorageType": { + "type": "enum", + "members": { + "HDD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hdd" + } + }, + "SSD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ssd" + } + } + } + }, + "com.amazonaws.ec2#LocalStorageTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LocalStorageType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Location": { + "type": "string" + }, + "com.amazonaws.ec2#LocationType": { + "type": "enum", + "members": { + "region": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "region" + } + }, + "availability_zone": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "availability-zone" + } + }, + "availability_zone_id": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "availability-zone-id" + } + }, + "outpost": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "outpost" + } + } + } + }, + "com.amazonaws.ec2#LockMode": { + "type": "enum", + "members": { + "compliance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "compliance" + } + }, + "governance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "governance" + } + } + } + }, + "com.amazonaws.ec2#LockSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#LockSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#LockSnapshotResult" + }, + "traits": { + "smithy.api#documentation": "

Locks an Amazon EBS snapshot in either governance or compliance \n mode to protect it against accidental or malicious deletions for a specific duration. A locked snapshot \n can't be deleted.

\n

You can also use this action to modify the lock settings for a snapshot that is already locked. The \n allowed modifications depend on the lock mode and lock state:

\n
    \n
  • \n

    If the snapshot is locked in governance mode, you can modify the lock mode and the lock duration \n or lock expiration date.

    \n
  • \n
  • \n

    If the snapshot is locked in compliance mode and it is in the cooling-off period, you can modify \n the lock mode and the lock duration or lock expiration date.

    \n
  • \n
  • \n

    If the snapshot is locked in compliance mode and the cooling-off period has lapsed, you can \n only increase the lock duration or extend the lock expiration date.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#LockSnapshotRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot to lock.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "LockMode": { + "target": "com.amazonaws.ec2#LockMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The mode in which to lock the snapshot. Specify one of the following:

\n
    \n
  • \n

    \n governance - Locks the snapshot in governance mode. Snapshots locked in governance \n mode can't be deleted until one of the following conditions are met:

    \n
      \n
    • \n

      The lock duration expires.

      \n
    • \n
    • \n

      The snapshot is unlocked by a user with the appropriate permissions.

      \n
    • \n
    \n

    Users with the appropriate IAM permissions can unlock the snapshot, increase or decrease the lock \n duration, and change the lock mode to compliance at any time.

    \n

    If you lock a snapshot in governance mode, omit \n CoolOffPeriod.

    \n
  • \n
  • \n

    \n compliance - Locks the snapshot in compliance mode. Snapshots locked in compliance \n mode can't be unlocked by any user. They can be deleted only after the lock duration expires. Users \n can't decrease the lock duration or change the lock mode to governance. However, users \n with appropriate IAM permissions can increase the lock duration at any time.

    \n

    If you lock a snapshot in compliance mode, you can optionally specify \n CoolOffPeriod.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "CoolOffPeriod": { + "target": "com.amazonaws.ec2#CoolOffPeriodRequestHours", + "traits": { + "smithy.api#documentation": "

The cooling-off period during which you can unlock the snapshot or modify the lock settings after \n locking the snapshot in compliance mode, in hours. After the cooling-off period expires, you can't \n unlock or delete the snapshot, decrease the lock duration, or change the lock mode. You can increase \n the lock duration after the cooling-off period expires.

\n

The cooling-off period is optional when locking a snapshot in compliance mode. If you are locking \n the snapshot in governance mode, omit this parameter.

\n

To lock the snapshot in compliance mode immediately without a cooling-off period, omit this \n parameter.

\n

If you are extending the lock duration for a snapshot that is locked in compliance mode after \n the cooling-off period has expired, omit this parameter. If you specify a cooling-period in a such \n a request, the request fails.

\n

Allowed values: Min 1, max 72.

" + } + }, + "LockDuration": { + "target": "com.amazonaws.ec2#RetentionPeriodRequestDays", + "traits": { + "smithy.api#documentation": "

The period of time for which to lock the snapshot, in days. The snapshot lock will automatically \n expire after this period lapses.

\n

You must specify either this parameter or ExpirationDate, but \n not both.

\n

Allowed values: Min: 1, max 36500

" + } + }, + "ExpirationDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the snapshot lock is to automatically expire, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

\n

You must specify either this parameter or LockDuration, but \n not both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#LockSnapshotResult": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot

", + "smithy.api#xmlName": "snapshotId" + } + }, + "LockState": { + "target": "com.amazonaws.ec2#LockState", + "traits": { + "aws.protocols#ec2QueryName": "LockState", + "smithy.api#documentation": "

The state of the snapshot lock. Valid states include:

\n
    \n
  • \n

    \n compliance-cooloff - The snapshot has been locked in \n compliance mode but it is still within the cooling-off period. The snapshot can't be \n deleted, but it can be unlocked and the lock settings can be modified by users with \n appropriate permissions.

    \n
  • \n
  • \n

    \n governance - The snapshot is locked in governance mode. The \n snapshot can't be deleted, but it can be unlocked and the lock settings can be \n modified by users with appropriate permissions.

    \n
  • \n
  • \n

    \n compliance - The snapshot is locked in compliance mode and the \n cooling-off period has expired. The snapshot can't be unlocked or deleted. The lock \n duration can only be increased by users with appropriate permissions.

    \n
  • \n
  • \n

    \n expired - The snapshot was locked in compliance or governance \n mode but the lock duration has expired. The snapshot is not locked and can be deleted.

    \n
  • \n
", + "smithy.api#xmlName": "lockState" + } + }, + "LockDuration": { + "target": "com.amazonaws.ec2#RetentionPeriodResponseDays", + "traits": { + "aws.protocols#ec2QueryName": "LockDuration", + "smithy.api#documentation": "

The period of time for which the snapshot is locked, in days.

", + "smithy.api#xmlName": "lockDuration" + } + }, + "CoolOffPeriod": { + "target": "com.amazonaws.ec2#CoolOffPeriodResponseHours", + "traits": { + "aws.protocols#ec2QueryName": "CoolOffPeriod", + "smithy.api#documentation": "

The compliance mode cooling-off period, in hours.

", + "smithy.api#xmlName": "coolOffPeriod" + } + }, + "CoolOffPeriodExpiresOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CoolOffPeriodExpiresOn", + "smithy.api#documentation": "

The date and time at which the compliance mode cooling-off period expires, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "coolOffPeriodExpiresOn" + } + }, + "LockCreatedOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockCreatedOn", + "smithy.api#documentation": "

The date and time at which the snapshot was locked, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lockCreatedOn" + } + }, + "LockExpiresOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockExpiresOn", + "smithy.api#documentation": "

The date and time at which the lock will expire, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lockExpiresOn" + } + }, + "LockDurationStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockDurationStartTime", + "smithy.api#documentation": "

The date and time at which the lock duration started, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lockDurationStartTime" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#LockState": { + "type": "enum", + "members": { + "compliance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "compliance" + } + }, + "governance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "governance" + } + }, + "compliance_cooloff": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "compliance-cooloff" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + } + } + }, + "com.amazonaws.ec2#LockedSnapshotsInfo": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The account ID of the Amazon Web Services account that owns the snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "LockState": { + "target": "com.amazonaws.ec2#LockState", + "traits": { + "aws.protocols#ec2QueryName": "LockState", + "smithy.api#documentation": "

The state of the snapshot lock. Valid states include:

\n
    \n
  • \n

    \n compliance-cooloff - The snapshot has been locked in \n compliance mode but it is still within the cooling-off period. The snapshot can't be \n deleted, but it can be unlocked and the lock settings can be modified by users with \n appropriate permissions.

    \n
  • \n
  • \n

    \n governance - The snapshot is locked in governance mode. The \n snapshot can't be deleted, but it can be unlocked and the lock settings can be \n modified by users with appropriate permissions.

    \n
  • \n
  • \n

    \n compliance - The snapshot is locked in compliance mode and the \n cooling-off period has expired. The snapshot can't be unlocked or deleted. The lock \n duration can only be increased by users with appropriate permissions.

    \n
  • \n
  • \n

    \n expired - The snapshot was locked in compliance or governance \n mode but the lock duration has expired. The snapshot is not locked and can be deleted.

    \n
  • \n
", + "smithy.api#xmlName": "lockState" + } + }, + "LockDuration": { + "target": "com.amazonaws.ec2#RetentionPeriodResponseDays", + "traits": { + "aws.protocols#ec2QueryName": "LockDuration", + "smithy.api#documentation": "

The period of time for which the snapshot is locked, in days.

", + "smithy.api#xmlName": "lockDuration" + } + }, + "CoolOffPeriod": { + "target": "com.amazonaws.ec2#CoolOffPeriodResponseHours", + "traits": { + "aws.protocols#ec2QueryName": "CoolOffPeriod", + "smithy.api#documentation": "

The compliance mode cooling-off period, in hours.

", + "smithy.api#xmlName": "coolOffPeriod" + } + }, + "CoolOffPeriodExpiresOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CoolOffPeriodExpiresOn", + "smithy.api#documentation": "

The date and time at which the compliance mode cooling-off period expires, in the UTC time zone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "coolOffPeriodExpiresOn" + } + }, + "LockCreatedOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockCreatedOn", + "smithy.api#documentation": "

The date and time at which the snapshot was locked, in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lockCreatedOn" + } + }, + "LockDurationStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockDurationStartTime", + "smithy.api#documentation": "

The date and time at which the lock duration started, in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ).

\n

If you lock a snapshot that is in the pending state, the lock duration \n starts only once the snapshot enters the completed state.

", + "smithy.api#xmlName": "lockDurationStartTime" + } + }, + "LockExpiresOn": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LockExpiresOn", + "smithy.api#documentation": "

The date and time at which the lock will expire, in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lockExpiresOn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a locked snapshot.

" + } + }, + "com.amazonaws.ec2#LockedSnapshotsInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#LockedSnapshotsInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#LogDestinationType": { + "type": "enum", + "members": { + "cloud_watch_logs": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cloud-watch-logs" + } + }, + "s3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3" + } + }, + "kinesis_data_firehose": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "kinesis-data-firehose" + } + } + } + }, + "com.amazonaws.ec2#LogicalGpuCount": { + "type": "integer" + }, + "com.amazonaws.ec2#Long": { + "type": "long" + }, + "com.amazonaws.ec2#MacHost": { + "type": "structure", + "members": { + "HostId": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

\n The EC2 Mac Dedicated Host ID.\n

", + "smithy.api#xmlName": "hostId" + } + }, + "MacOSLatestSupportedVersions": { + "target": "com.amazonaws.ec2#MacOSVersionStringList", + "traits": { + "aws.protocols#ec2QueryName": "MacOSLatestSupportedVersionSet", + "smithy.api#documentation": "

\n The latest macOS versions that the EC2 Mac Dedicated Host can launch without being upgraded.\n

", + "smithy.api#xmlName": "macOSLatestSupportedVersionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Information about the EC2 Mac Dedicated Host.\n

" + } + }, + "com.amazonaws.ec2#MacHostList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MacHost", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MacModificationTask": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the Amazon EC2 Mac instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "MacModificationTaskId": { + "target": "com.amazonaws.ec2#MacModificationTaskId", + "traits": { + "aws.protocols#ec2QueryName": "MacModificationTaskId", + "smithy.api#documentation": "

The ID of task.

", + "smithy.api#xmlName": "macModificationTaskId" + } + }, + "MacSystemIntegrityProtectionConfig": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "MacSystemIntegrityProtectionConfig", + "smithy.api#documentation": "

[SIP modification tasks only] Information about the SIP \n configuration.

", + "smithy.api#xmlName": "macSystemIntegrityProtectionConfig" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The date and time the task was created, in the UTC timezone \n (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "startTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the task.

", + "smithy.api#xmlName": "tagSet" + } + }, + "TaskState": { + "target": "com.amazonaws.ec2#MacModificationTaskState", + "traits": { + "aws.protocols#ec2QueryName": "TaskState", + "smithy.api#documentation": "

The state of the task.

", + "smithy.api#xmlName": "taskState" + } + }, + "TaskType": { + "target": "com.amazonaws.ec2#MacModificationTaskType", + "traits": { + "aws.protocols#ec2QueryName": "TaskType", + "smithy.api#documentation": "

The type of task.

", + "smithy.api#xmlName": "taskType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a System Integrity Protection (SIP) modification task or volume \n ownership delegation task for an Amazon EC2 Mac instance.

" + } + }, + "com.amazonaws.ec2#MacModificationTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#MacModificationTaskIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MacModificationTaskId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MacModificationTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MacModificationTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MacModificationTaskState": { + "type": "enum", + "members": { + "successful": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "successful" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "inprogress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-progress" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + } + } + }, + "com.amazonaws.ec2#MacModificationTaskType": { + "type": "enum", + "members": { + "SIPModification": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sip-modification" + } + }, + "VolumeOwnershipDelegation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volume-ownership-delegation" + } + } + } + }, + "com.amazonaws.ec2#MacOSVersionStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MacSystemIntegrityProtectionConfiguration": { + "type": "structure", + "members": { + "AppleInternal": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "AppleInternal", + "smithy.api#documentation": "

Indicates whether Apple Internal was enabled or disabled by the task.

", + "smithy.api#xmlName": "appleInternal" + } + }, + "BaseSystem": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "BaseSystem", + "smithy.api#documentation": "

Indicates whether Base System was enabled or disabled by the task.

", + "smithy.api#xmlName": "baseSystem" + } + }, + "DebuggingRestrictions": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "DebuggingRestrictions", + "smithy.api#documentation": "

Indicates whether Debugging Restrictions was enabled or disabled by the task.

", + "smithy.api#xmlName": "debuggingRestrictions" + } + }, + "DTraceRestrictions": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "DTraceRestrictions", + "smithy.api#documentation": "

Indicates whether Dtrace Restrictions was enabled or disabled by the task.

", + "smithy.api#xmlName": "dTraceRestrictions" + } + }, + "FilesystemProtections": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "FilesystemProtections", + "smithy.api#documentation": "

Indicates whether Filesystem Protections was enabled or disabled by the task.

", + "smithy.api#xmlName": "filesystemProtections" + } + }, + "KextSigning": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "KextSigning", + "smithy.api#documentation": "

Indicates whether Kext Signing was enabled or disabled by the task.

", + "smithy.api#xmlName": "kextSigning" + } + }, + "NvramProtections": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "NvramProtections", + "smithy.api#documentation": "

Indicates whether NVRAM Protections was enabled or disabled by the task.

", + "smithy.api#xmlName": "nvramProtections" + } + }, + "Status": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

Indicates SIP was enabled or disabled by the task.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration for a System Integrity Protection (SIP) modification task.

" + } + }, + "com.amazonaws.ec2#MacSystemIntegrityProtectionConfigurationRequest": { + "type": "structure", + "members": { + "AppleInternal": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Apple Internal.

" + } + }, + "BaseSystem": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Base System.

" + } + }, + "DebuggingRestrictions": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Debugging Restrictions.

" + } + }, + "DTraceRestrictions": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Dtrace Restrictions.

" + } + }, + "FilesystemProtections": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Filesystem Protections.

" + } + }, + "KextSigning": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Kext Signing.

" + } + }, + "NvramProtections": { + "target": "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus", + "traits": { + "smithy.api#documentation": "

Enables or disables Nvram Protections.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a custom configuration for a System Integrity Protection (SIP) modification task.

" + } + }, + "com.amazonaws.ec2#MacSystemIntegrityProtectionSettingStatus": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#MaintenanceDetails": { + "type": "structure", + "members": { + "PendingMaintenance": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PendingMaintenance", + "smithy.api#documentation": "

Verify existence of a pending maintenance.

", + "smithy.api#xmlName": "pendingMaintenance" + } + }, + "MaintenanceAutoAppliedAfter": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "MaintenanceAutoAppliedAfter", + "smithy.api#documentation": "

The timestamp after which Amazon Web Services will automatically apply maintenance.

", + "smithy.api#xmlName": "maintenanceAutoAppliedAfter" + } + }, + "LastMaintenanceApplied": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastMaintenanceApplied", + "smithy.api#documentation": "

Timestamp of last applied maintenance.

", + "smithy.api#xmlName": "lastMaintenanceApplied" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details for Site-to-Site VPN tunnel endpoint maintenance events.

" + } + }, + "com.amazonaws.ec2#ManagedBy": { + "type": "enum", + "members": { + "account": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account" + } + }, + "declarative_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "declarative-policy" + } + } + } + }, + "com.amazonaws.ec2#ManagedPrefixList": { + "type": "structure", + "members": { + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "AddressFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressFamily", + "smithy.api#documentation": "

The IP address version.

", + "smithy.api#xmlName": "addressFamily" + } + }, + "State": { + "target": "com.amazonaws.ec2#PrefixListState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the prefix list.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

The state message.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "PrefixListArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the prefix list.

", + "smithy.api#xmlName": "prefixListArn" + } + }, + "PrefixListName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListName", + "smithy.api#documentation": "

The name of the prefix list.

", + "smithy.api#xmlName": "prefixListName" + } + }, + "MaxEntries": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxEntries", + "smithy.api#documentation": "

The maximum number of entries for the prefix list.

", + "smithy.api#xmlName": "maxEntries" + } + }, + "Version": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The version of the prefix list.

", + "smithy.api#xmlName": "version" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the prefix list.

", + "smithy.api#xmlName": "tagSet" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the owner of the prefix list.

", + "smithy.api#xmlName": "ownerId" + } + }, + "IpamPrefixListResolverTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTargetId", + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver target associated with this managed prefix list. When set, this prefix list becomes an IPAM managed prefix list.

\n

An IPAM-managed prefix list is a customer-managed prefix list that has been associated with an IPAM prefix list resolver target. When a prefix list becomes IPAM managed, its CIDRs are automatically synchronized based on the IPAM prefix list resolver's CIDR selection rules, and direct CIDR modifications are restricted.

", + "smithy.api#xmlName": "ipamPrefixListResolverTargetId" + } + }, + "IpamPrefixListResolverSyncEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverSyncEnabled", + "smithy.api#documentation": "

Indicates whether synchronization with an IPAM prefix list resolver is enabled for this managed prefix list. When enabled, the prefix list CIDRs are automatically updated based on the resolver's CIDR selection rules.

", + "smithy.api#xmlName": "ipamPrefixListResolverSyncEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a managed prefix list.

" + } + }, + "com.amazonaws.ec2#ManagedPrefixListSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ManagedPrefixList", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ManagedResourceDefaultVisibility": { + "type": "enum", + "members": { + "hidden": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hidden" + } + }, + "visible": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "visible" + } + } + } + }, + "com.amazonaws.ec2#ManagedResourceVisibilitySettings": { + "type": "structure", + "members": { + "DefaultVisibility": { + "target": "com.amazonaws.ec2#ManagedResourceDefaultVisibility", + "traits": { + "aws.protocols#ec2QueryName": "DefaultVisibility", + "smithy.api#documentation": "

The default visibility setting for managed resources. A value of\n hidden indicates that managed resources are not included in Describe\n operation responses by default. A value of visible indicates that managed\n resources are included by default.

", + "smithy.api#xmlName": "defaultVisibility" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the managed resource visibility settings for the account.

" + } + }, + "com.amazonaws.ec2#MarketType": { + "type": "enum", + "members": { + "spot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + }, + "capacity_block": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "interruptible_capacity_reservation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interruptible-capacity-reservation" + } + }, + "on_demand": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + } + } + }, + "com.amazonaws.ec2#MarketplaceProductCode": { + "type": "string" + }, + "com.amazonaws.ec2#MarketplaceProductCodeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MarketplaceProductCode", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MarketplaceProductCodeRequest": { + "type": "string" + }, + "com.amazonaws.ec2#MarketplaceProductCodeRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MarketplaceProductCodeRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.ec2#MaxDaysSinceLastFindingScanValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.ec2#MaxIpv4AddrPerInterface": { + "type": "integer" + }, + "com.amazonaws.ec2#MaxIpv6AddrPerInterface": { + "type": "integer" + }, + "com.amazonaws.ec2#MaxNetworkInterfaces": { + "type": "integer" + }, + "com.amazonaws.ec2#MaxResults": { + "type": "integer" + }, + "com.amazonaws.ec2#MaxResults2": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#MaxResultsParam": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#MaximumBandwidthInMbps": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumDaysSinceCreatedValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.ec2#MaximumDaysSinceDeprecatedValue": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.ec2#MaximumEbsAttachments": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumEbsCards": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumEfaInterfaces": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumEnaQueueCount": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumEnaQueueCountPerInterface": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumIops": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumNetworkCards": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumSecondaryNetworkInterfaces": { + "type": "integer" + }, + "com.amazonaws.ec2#MaximumThroughputInMBps": { + "type": "double" + }, + "com.amazonaws.ec2#MediaAcceleratorInfo": { + "type": "structure", + "members": { + "Accelerators": { + "target": "com.amazonaws.ec2#MediaDeviceInfoList", + "traits": { + "aws.protocols#ec2QueryName": "Accelerators", + "smithy.api#documentation": "

Describes the media accelerators for the instance type.

", + "smithy.api#xmlName": "accelerators" + } + }, + "TotalMediaMemoryInMiB": { + "target": "com.amazonaws.ec2#TotalMediaMemory", + "traits": { + "aws.protocols#ec2QueryName": "TotalMediaMemoryInMiB", + "smithy.api#documentation": "

The total size of the memory for the media accelerators for the instance type, in\n MiB.

", + "smithy.api#xmlName": "totalMediaMemoryInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the media accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#MediaDeviceCount": { + "type": "integer" + }, + "com.amazonaws.ec2#MediaDeviceInfo": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#MediaDeviceCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of media accelerators for the instance type.

", + "smithy.api#xmlName": "count" + } + }, + "Name": { + "target": "com.amazonaws.ec2#MediaDeviceName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the media accelerator.

", + "smithy.api#xmlName": "name" + } + }, + "Manufacturer": { + "target": "com.amazonaws.ec2#MediaDeviceManufacturerName", + "traits": { + "aws.protocols#ec2QueryName": "Manufacturer", + "smithy.api#documentation": "

The manufacturer of the media accelerator.

", + "smithy.api#xmlName": "manufacturer" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#MediaDeviceMemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory available to the media accelerator.

", + "smithy.api#xmlName": "memoryInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the media accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#MediaDeviceInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MediaDeviceInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MediaDeviceManufacturerName": { + "type": "string" + }, + "com.amazonaws.ec2#MediaDeviceMemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#MediaDeviceMemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory available to each media accelerator, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the memory available to the media accelerator.

" + } + }, + "com.amazonaws.ec2#MediaDeviceMemorySize": { + "type": "integer" + }, + "com.amazonaws.ec2#MediaDeviceName": { + "type": "string" + }, + "com.amazonaws.ec2#MembershipType": { + "type": "enum", + "members": { + "static": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static" + } + }, + "igmp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "igmp" + } + } + } + }, + "com.amazonaws.ec2#MemoryGiBPerVCpu": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum amount of memory per vCPU, in GiB. If this parameter is not specified, there is\n no minimum limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum amount of memory per vCPU, in GiB. If this parameter is not specified, there is\n no maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU, in GiB.

\n

" + } + }, + "com.amazonaws.ec2#MemoryGiBPerVCpuRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU, in GiB.

" + } + }, + "com.amazonaws.ec2#MemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#MemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the memory for the instance type.

" + } + }, + "com.amazonaws.ec2#MemoryMiB": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum amount of memory, in MiB. If this parameter is not specified, there is no minimum\n limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum amount of memory, in MiB. If this parameter is not specified, there is no\n maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory, in MiB.

" + } + }, + "com.amazonaws.ec2#MemoryMiBRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The minimum amount of memory, in MiB. To specify no minimum limit, specify\n 0.

", + "smithy.api#required": {} + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory, in MiB. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory, in MiB.

" + } + }, + "com.amazonaws.ec2#MemorySize": { + "type": "long" + }, + "com.amazonaws.ec2#MetadataDefaultHttpTokensState": { + "type": "enum", + "members": { + "optional": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optional" + } + }, + "required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "no_preference": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-preference" + } + } + } + }, + "com.amazonaws.ec2#Metric": { + "type": "enum", + "members": { + "RESERVATION_TOTAL_CAPACITY_HRS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-total-capacity-hrs-vcpu" + } + }, + "RESERVATION_TOTAL_CAPACITY_HRS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-total-capacity-hrs-inst" + } + }, + "RESERVATION_MAX_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-size-vcpu" + } + }, + "RESERVATION_MAX_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-size-inst" + } + }, + "RESERVATION_MIN_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-size-vcpu" + } + }, + "RESERVATION_MIN_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-size-inst" + } + }, + "RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-unused-total-capacity-hrs-vcpu" + } + }, + "RESERVATION_UNUSED_TOTAL_CAPACITY_HRS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-unused-total-capacity-hrs-inst" + } + }, + "RESERVATION_UNUSED_TOTAL_ESTIMATED_COST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-unused-total-estimated-cost" + } + }, + "RESERVATION_MAX_UNUSED_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-unused-size-vcpu" + } + }, + "RESERVATION_MAX_UNUSED_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-unused-size-inst" + } + }, + "RESERVATION_MIN_UNUSED_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-unused-size-vcpu" + } + }, + "RESERVATION_MIN_UNUSED_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-unused-size-inst" + } + }, + "RESERVATION_MAX_UTILIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-utilization" + } + }, + "RESERVATION_MIN_UTILIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-utilization" + } + }, + "RESERVATION_AVG_UTILIZATION_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-utilization-vcpu" + } + }, + "RESERVATION_AVG_UTILIZATION_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-utilization-inst" + } + }, + "RESERVATION_TOTAL_COUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-total-count" + } + }, + "RESERVATION_TOTAL_ESTIMATED_COST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-total-estimated-cost" + } + }, + "RESERVATION_AVG_FUTURE_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-future-size-vcpu" + } + }, + "RESERVATION_AVG_FUTURE_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-future-size-inst" + } + }, + "RESERVATION_MIN_FUTURE_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-future-size-vcpu" + } + }, + "RESERVATION_MIN_FUTURE_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-future-size-inst" + } + }, + "RESERVATION_MAX_FUTURE_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-future-size-vcpu" + } + }, + "RESERVATION_MAX_FUTURE_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-future-size-inst" + } + }, + "RESERVATION_AVG_COMMITTED_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-committed-size-vcpu" + } + }, + "RESERVATION_AVG_COMMITTED_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-avg-committed-size-inst" + } + }, + "RESERVATION_MAX_COMMITTED_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-committed-size-vcpu" + } + }, + "RESERVATION_MAX_COMMITTED_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-max-committed-size-inst" + } + }, + "RESERVATION_MIN_COMMITTED_SIZE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-committed-size-vcpu" + } + }, + "RESERVATION_MIN_COMMITTED_SIZE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reservation-min-committed-size-inst" + } + }, + "RESERVED_TOTAL_USAGE_HRS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-total-usage-hrs-vcpu" + } + }, + "RESERVED_TOTAL_USAGE_HRS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-total-usage-hrs-inst" + } + }, + "RESERVED_TOTAL_ESTIMATED_COST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-total-estimated-cost" + } + }, + "UNRESERVED_TOTAL_USAGE_HRS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unreserved-total-usage-hrs-vcpu" + } + }, + "UNRESERVED_TOTAL_USAGE_HRS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unreserved-total-usage-hrs-inst" + } + }, + "UNRESERVED_TOTAL_ESTIMATED_COST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unreserved-total-estimated-cost" + } + }, + "SPOT_TOTAL_USAGE_HRS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-usage-hrs-vcpu" + } + }, + "SPOT_TOTAL_USAGE_HRS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-usage-hrs-inst" + } + }, + "SPOT_TOTAL_ESTIMATED_COST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-estimated-cost" + } + }, + "SPOT_AVG_RUN_TIME_BEFORE_INTERRUPTION_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-avg-run-time-before-interruption-inst" + } + }, + "SPOT_MAX_RUN_TIME_BEFORE_INTERRUPTION_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-max-run-time-before-interruption-inst" + } + }, + "SPOT_MIN_RUN_TIME_BEFORE_INTERRUPTION_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-min-run-time-before-interruption-inst" + } + }, + "SPOT_TOTAL_INTERRUPTIONS_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-interruptions-inst" + } + }, + "SPOT_TOTAL_INTERRUPTIONS_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-interruptions-vcpu" + } + }, + "SPOT_TOTAL_COUNT_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-count-inst" + } + }, + "SPOT_TOTAL_COUNT_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-total-count-vcpu" + } + }, + "SPOT_INTERRUPTION_RATE_INST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-interruption-rate-inst" + } + }, + "SPOT_INTERRUPTION_RATE_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-interruption-rate-vcpu" + } + }, + "CAPACITY_TOTAL_REQUESTED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-total-requested-vcpu" + } + }, + "CAPACITY_TOTAL_FULFILLED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-total-fulfilled-vcpu" + } + }, + "SPOT_CAPACITY_TOTAL_REQUESTED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-capacity-total-requested-vcpu" + } + }, + "SPOT_CAPACITY_TOTAL_FULFILLED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-capacity-total-fulfilled-vcpu" + } + }, + "CAPACITY_REQUEST_FULFILLMENT_RATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-request-fulfillment-rate" + } + }, + "AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "avg-inst-az-count-per-requested-vcpu" + } + }, + "INST_AZ_FULFILLMENT_RATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inst-az-fulfillment-rate" + } + }, + "SPOT_CAPACITY_REQUEST_FULFILLMENT_RATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-capacity-request-fulfillment-rate" + } + }, + "SPOT_AVG_INST_AZ_COUNT_PER_REQUESTED_VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-avg-inst-az-count-per-requested-vcpu" + } + }, + "SPOT_INST_AZ_FULFILLMENT_RATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-inst-az-fulfillment-rate" + } + } + } + }, + "com.amazonaws.ec2#MetricDataResult": { + "type": "structure", + "members": { + "Dimension": { + "target": "com.amazonaws.ec2#CapacityManagerDimension", + "traits": { + "aws.protocols#ec2QueryName": "Dimension", + "smithy.api#documentation": "

\nThe dimension values that identify this specific data point, such as account ID, region, and instance family.\n

", + "smithy.api#xmlName": "dimension" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

\nThe timestamp for this data point, indicating when the capacity usage occurred.\n

", + "smithy.api#xmlName": "timestamp" + } + }, + "MetricValues": { + "target": "com.amazonaws.ec2#MetricValueSet", + "traits": { + "aws.protocols#ec2QueryName": "MetricValueSet", + "smithy.api#documentation": "

\nThe metric values and statistics for this data point, containing the actual capacity usage numbers.\n

", + "smithy.api#xmlName": "metricValueSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nContains a single data point from a capacity metrics query, including the dimension values, timestamp, and metric values for that specific combination.\n

" + } + }, + "com.amazonaws.ec2#MetricDataResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MetricDataResult", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MetricDimensionResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityManagerDimension", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MetricPoint": { + "type": "structure", + "members": { + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date for the metric point. The starting date for the metric point. The starting time must be formatted\n as yyyy-mm-ddThh:mm:ss. For example, 2022-06-10T12:00:00.000Z.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The end date for the metric point. The ending time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z.

", + "smithy.api#xmlName": "endDate" + } + }, + "Value": { + "target": "com.amazonaws.ec2#Float", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#xmlName": "value" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the metric point.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the network was healthy or degraded at a particular point. The value is aggregated from the startDate to the endDate. Currently only five_minutes is supported.

" + } + }, + "com.amazonaws.ec2#MetricPoints": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MetricPoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MetricSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Metric", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 40 + } + } + }, + "com.amazonaws.ec2#MetricType": { + "type": "enum", + "members": { + "aggregate_latency": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aggregate-latency" + } + } + } + }, + "com.amazonaws.ec2#MetricValue": { + "type": "structure", + "members": { + "Metric": { + "target": "com.amazonaws.ec2#Metric", + "traits": { + "aws.protocols#ec2QueryName": "Metric", + "smithy.api#documentation": "

\nThe name of the metric.\n

", + "smithy.api#xmlName": "metric" + } + }, + "Value": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

\nThe numerical value of the metric for the specified statistic and time period.\n

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nRepresents a single metric value with its associated statistic, such as the sum or average of unused capacity hours.\n

" + } + }, + "com.amazonaws.ec2#MetricValueSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MetricValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MillisecondDateTime": { + "type": "timestamp" + }, + "com.amazonaws.ec2#ModificationQuoteCurrentConfiguration": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances in the Capacity Reservation.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "ReservationState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationState", + "smithy.api#documentation": "

The current state of the Capacity Reservation.

", + "smithy.api#xmlName": "reservationState" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The start date that the Capacity Reservation has before the quoted modification is\n\t\t\tapplied.

", + "smithy.api#xmlName": "startDate" + } + }, + "OriginalStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "OriginalStartDate", + "smithy.api#documentation": "

The start date that the Capacity Reservation was originally requested with. This value\n\t\t\tdoes not change when you push out the start date.

", + "smithy.api#xmlName": "originalStartDate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration that a Capacity Reservation has at the time a modification\n\t\t\tquote is generated.

" + } + }, + "com.amazonaws.ec2#ModificationReservationUpdate": { + "type": "structure", + "members": { + "NewCommitmentEndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "NewCommitmentEndDate", + "smithy.api#documentation": "

The date and time at which the commitment duration will expire after the modification,\n\t\t\tin the ISO8601 format in the UTC time zone\n\t\t\t(YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "newCommitmentEndDate" + } + }, + "NewStartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "NewStartDate", + "smithy.api#documentation": "

The start date that the Capacity Reservation will have after the modification, in the\n\t\t\tISO8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "newStartDate" + } + }, + "NewCommitmentDuration": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "aws.protocols#ec2QueryName": "NewCommitmentDuration", + "smithy.api#documentation": "

The commitment duration, in seconds, that the Capacity Reservation will have after the\n\t\t\tmodification.

", + "smithy.api#xmlName": "newCommitmentDuration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the changes that a Capacity Reservation modification quote will apply to a\n\t\t\tCapacity Reservation.

" + } + }, + "com.amazonaws.ec2#ModificationTerms": { + "type": "structure", + "members": { + "ReservationUpdate": { + "target": "com.amazonaws.ec2#ModificationReservationUpdate", + "traits": { + "aws.protocols#ec2QueryName": "ReservationUpdate", + "smithy.api#documentation": "

The changes that will be applied to the Capacity Reservation if you accept the\n\t\t\tmodification terms.

", + "smithy.api#xmlName": "reservationUpdate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the terms of a Capacity Reservation modification quote.

" + } + }, + "com.amazonaws.ec2#ModifyAccountVpcEncryptionControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the account-level VPC Encryption Control configuration. This sets the encryption control mode and resource exclusions that apply to the VPCs in your account. VPC Encryption Control enables you to enforce encryption for all data in transit within and between VPCs to meet compliance requirements.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Mode": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControlMode", + "traits": { + "smithy.api#documentation": "

The encryption mode for the account encryption control configuration.

" + } + }, + "InternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude internet gateway resource from account-level encryption enforcement.

" + } + }, + "EgressOnlyInternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude egress-only internet gateway resource from account-level encryption enforcement.

" + } + }, + "NatGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude NAT gateway resource from account-level encryption enforcement.

" + } + }, + "VirtualPrivateGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude virtual private gateway resource from account-level encryption enforcement.

" + } + }, + "VpcPeering": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC peering connection resource from account-level encryption enforcement.

" + } + }, + "Lambda": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Lambda service from account-level encryption enforcement.

" + } + }, + "VpcLattice": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC Lattice service from account-level encryption enforcement.

" + } + }, + "ElasticFileSystem": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Elastic File System service from account-level encryption enforcement.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyAccountVpcEncryptionControlResult": { + "type": "structure", + "members": { + "AccountVpcEncryptionControl": { + "target": "com.amazonaws.ec2#AccountVpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "AccountVpcEncryptionControl", + "smithy.api#documentation": "

Information about the account-level VPC Encryption Control configuration.

", + "smithy.api#xmlName": "accountVpcEncryptionControl" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyAddressAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyAddressAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyAddressAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies an attribute of the specified Elastic IP address. For requirements, see Using reverse DNS for email applications.

" + } + }, + "com.amazonaws.ec2#ModifyAddressAttributeRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

[EC2-VPC] The allocation ID.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The domain name to modify for the IP address.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyAddressAttributeResult": { + "type": "structure", + "members": { + "Address": { + "target": "com.amazonaws.ec2#AddressAttribute", + "traits": { + "aws.protocols#ec2QueryName": "Address", + "smithy.api#documentation": "

Information about the Elastic IP address.

", + "smithy.api#xmlName": "address" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyApplicationStatusCheck": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyApplicationStatusCheckRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyApplicationStatusCheckResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies an existing application status check. You can update the protocol, port, path, thresholds, and other configuration settings. The following rules apply:

\n
    \n
  • \n

    The application status check must exist and belong to your account.

    \n
  • \n
  • \n

    Changes take effect on the next health check interval.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To modify an application status check", + "documentation": "This example modifies the port and path of an existing application status check.", + "input": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Port": 8080, + "Path": "/healthv2" + }, + "output": { + "ApplicationStatusCheck": { + "ApplicationStatusCheckId": "asc-0123456789abcdef0", + "Protocol": "http", + "Port": 8080, + "Path": "/healthv2", + "Aggregation": "included", + "Interval": 60, + "Timeout": 6, + "FailureThreshold": 2, + "SuccessThreshold": 2 + } + } + } + ] + } + }, + "com.amazonaws.ec2#ModifyApplicationStatusCheckRequest": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the application status check to modify.

", + "smithy.api#required": {} + } + }, + "Aggregation": { + "target": "com.amazonaws.ec2#AggregationStatusEnum", + "traits": { + "smithy.api#documentation": "

The aggregation setting for the application status check. When set to included, the result of this check contributes to the instance-level application status reported by DescribeApplicationStatus. When set to excluded, the check runs independently and does not affect the instance-level status. Valid values: included | excluded.

" + } + }, + "HealthCheckPaths": { + "target": "com.amazonaws.ec2#HealthCheckPathRequestList", + "traits": { + "smithy.api#documentation": "

The health check paths to use for the application status check.

", + "smithy.api#xmlName": "HealthCheckPath" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#NetworkProtocolEnum", + "traits": { + "smithy.api#documentation": "

The protocol to use for the health check. Valid values: http | https.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#PortNumber", + "traits": { + "smithy.api#documentation": "

The port to use for the health check. Valid values: 1 to 65535.

" + } + }, + "Path": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The URL path to use for the health check HTTP request (for example, /health or /status).

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the network device to use for the health check. The value must be greater than or equal to 0.

" + } + }, + "IpVersion": { + "target": "com.amazonaws.ec2#IpVersionEnum", + "traits": { + "smithy.api#documentation": "

The IP version to use for the health check. Valid values: ipv4 and ipv6.

" + } + }, + "IpScope": { + "target": "com.amazonaws.ec2#IpScopeEnum", + "traits": { + "smithy.api#documentation": "

The IP scope to use for the health check. Valid value: private.

" + } + }, + "Interval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between health checks. Valid value: 60.

" + } + }, + "Timeout": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, to wait for a health check response before considering it failed. Valid values: 1 to 30. The value must be less than Interval.

" + } + }, + "FailureThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of consecutive failed health checks before the application status is considered impaired. The value must be greater than 0.

" + } + }, + "SuccessThreshold": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of consecutive successful health checks before the application status is considered healthy. The value must be greater than 0.

" + } + }, + "StatusCodeMatcher": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The HTTP status codes that indicate a successful health check response. Specify a comma-separated list of individual status codes or ranges, for example, 200,202,300-399. For a range, the first value must be less than the second value. Maximum length: 64 characters.

" + } + }, + "InitializationGracePeriodSeconds": { + "target": "com.amazonaws.ec2#InitializationGracePeriodSeconds", + "traits": { + "smithy.api#documentation": "

The number of seconds to wait before starting health checks after an instance is launched. Valid values: 1 to 600.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If you retry a request with the same token, the service ignores the request but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyApplicationStatusCheckResult": { + "type": "structure", + "members": { + "ApplicationStatusCheck": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckResponseObject", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheck", + "smithy.api#documentation": "

Information about the modified application status check.

", + "smithy.api#xmlName": "applicationStatusCheck" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyAvailabilityZoneGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyAvailabilityZoneGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyAvailabilityZoneGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Changes the opt-in status of the specified zone group for your account.

" + } + }, + "com.amazonaws.ec2#ModifyAvailabilityZoneGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Availability Zone group, Local Zone group, or Wavelength Zone\n group.

", + "smithy.api#required": {} + } + }, + "OptInStatus": { + "target": "com.amazonaws.ec2#ModifyAvailabilityZoneOptInStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to opt in to the zone group. The only valid value is opted-in. \n You must contact Amazon Web Services Support to opt out of a Local Zone or Wavelength Zone group.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyAvailabilityZoneGroupResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyAvailabilityZoneOptInStatus": { + "type": "enum", + "members": { + "opted_in": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "opted-in" + } + }, + "not_opted_in": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-opted-in" + } + } + } + }, + "com.amazonaws.ec2#ModifyCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a Capacity Reservation's capacity, instance eligibility, and the conditions\n\t\t\tunder which it is to be released. You can't modify a Capacity Reservation's instance\n\t\t\ttype, EBS optimization, platform, instance store settings, Availability Zone, or\n\t\t\ttenancy. If you need to modify any of these attributes, we recommend that you cancel the\n\t\t\tCapacity Reservation, and then create a new one with the required attributes. For more\n\t\t\tinformation, see Modify an active\n\t\t\t\tCapacity Reservation.

\n

The allowed modifications depend on the state of the Capacity Reservation:

\n
    \n
  • \n

    \n assessing or scheduled state - You can modify the\n\t\t\t\t\ttags only.

    \n
  • \n
  • \n

    \n pending state - You can't modify the Capacity Reservation in any\n\t\t\t\t\tway.

    \n
  • \n
  • \n

    \n active state but still within the commitment duration - You can't\n\t\t\t\t\tdecrease the instance count or set an end date that is within the commitment\n\t\t\t\t\tduration. All other modifications are allowed.

    \n
  • \n
  • \n

    \n active state with no commitment duration or elapsed commitment\n\t\t\t\t\tduration - All modifications are allowed.

    \n
  • \n
  • \n

    \n expired, cancelled, unsupported, or\n\t\t\t\t\t\tfailed state - You can't modify the Capacity Reservation in any\n\t\t\t\t\tway.

    \n
  • \n
\n

For a future-dated Capacity Reservation that has not yet been delivered, pushing out the\n\t\t\tstart date requires a quote generated by\n\t\t\tCreateCapacityReservationDateChangeQuote. For more information, see Modify an active\n\t\t\t\tCapacity Reservation in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a Capacity Reservation Fleet.

\n

When you modify the total target capacity of a Capacity Reservation Fleet, the Fleet\n\t\t\tautomatically creates new Capacity Reservations, or modifies or cancels existing\n\t\t\tCapacity Reservations in the Fleet to meet the new total target capacity. When you\n\t\t\tmodify the end date for the Fleet, the end dates for all of the individual Capacity\n\t\t\tReservations in the Fleet are updated accordingly.

" + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to modify.

", + "smithy.api#required": {} + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet.\n\t\t\tThis value, together with the instance type weights that you assign to each instance\n\t\t\ttype used by the Fleet determine the number of instances for which the Fleet reserves\n\t\t\tcapacity. Both values are based on units that make sense for your workload. For more\n\t\t\tinformation, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity\n\t\t\tReservation Fleet expires, its state changes to expired and all of the\n\t\t\tCapacity Reservations in the Fleet expire.

\n

The Capacity Reservation Fleet expires within an hour after the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity\n\t\t\tReservation Fleet is guaranteed to expire between 13:30:55 and\n\t\t\t\t14:30:55 on 5/31/2019.

\n

You can't specify EndDate and \n\t\t\t\tRemoveEndDate in the same request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "RemoveEndDate": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to remove the end date from the Capacity Reservation Fleet. If you\n\t\t\tremove the end date, the Capacity Reservation Fleet does not expire and it remains\n\t\t\tactive until you explicitly cancel it using the CancelCapacityReservationFleet action.

\n

You can't specify RemoveEndDate and EndDate in the same request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationFleetResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances for which to reserve capacity. The number of instances can't\n\t\t\tbe increased or decreased by more than 1000 in a single request.

" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation expires. When a Capacity\n\t\t\tReservation expires, the reserved capacity is released and you can no longer launch\n\t\t\tinstances into it. The Capacity Reservation's state changes to expired when\n\t\t\tit reaches its end date and time.

\n

The Capacity Reservation is cancelled within an hour from the specified time. For\n\t\t\texample, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to\n\t\t\tend between 13:30:55 and 14:30:55 on 5/31/2019.

\n

You must provide an EndDate value if EndDateType is\n\t\t\t\tlimited. Omit EndDate if EndDateType is\n\t\t\t\tunlimited.

" + } + }, + "EndDateType": { + "target": "com.amazonaws.ec2#EndDateType", + "traits": { + "smithy.api#documentation": "

Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can\n\t\t\thave one of the following end types:

\n
    \n
  • \n

    \n unlimited - The Capacity Reservation remains active until you\n\t\t\t\t\texplicitly cancel it. Do not provide an EndDate value if\n\t\t\t\t\t\tEndDateType is unlimited.

    \n
  • \n
  • \n

    \n limited - The Capacity Reservation expires automatically at a\n\t\t\t\t\tspecified date and time. You must provide an EndDate value if\n\t\t\t\t\t\tEndDateType is limited.

    \n
  • \n
" + } + }, + "Accept": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Reserved. Capacity Reservations you have created are accepted by default.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "AdditionalInfo": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#InstanceMatchCriteria", + "traits": { + "smithy.api#documentation": "

The matching criteria (instance eligibility) that you want to use in the modified\n\t\t\tCapacity Reservation. If you change the instance eligibility of an existing Capacity\n\t\t\tReservation from targeted to open, any running instances that\n\t\t\tmatch the attributes of the Capacity Reservation, have the\n\t\t\t\tCapacityReservationPreference set to open, and are not yet\n\t\t\trunning in the Capacity Reservation, will automatically use the modified Capacity\n\t\t\tReservation.

\n

To modify the instance eligibility, the Capacity Reservation must be completely idle\n\t\t\t(zero usage).

" + } + }, + "AcceptModificationTerms": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates that you accept the modification terms of the quote identified by\n\t\t\tQuoteId. To apply a quoted modification, set this parameter to\n\t\t\ttrue.

" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The new start date for the Capacity Reservation, in the ISO8601 format in the UTC time\n\t\t\tzone (YYYY-MM-DDThh:mm:ss.sssZ). Applies to future-dated Capacity\n\t\t\tReservations only. Requires a quote from\n\t\t\tCreateCapacityReservationDateChangeQuote; pass the quote ID in\n\t\t\tQuoteId with AcceptModificationTerms set to\n\t\t\ttrue.

" + } + }, + "QuoteId": { + "target": "com.amazonaws.ec2#CapacityReservationModificationQuoteId", + "traits": { + "smithy.api#documentation": "

The ID of the quote that describes the modification you want to apply. Generate a quote\n\t\t\tby using CreateCapacityReservationDateChangeQuote. The quote must be in the\n\t\t\tactive state, and each quote can be used only once.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "AdjustmentStatus": { + "target": "com.amazonaws.ec2#CapacityReservationAdjustmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "AdjustmentStatus", + "smithy.api#documentation": "

The status of the requested modification. For a description of each possible value, see\n\t\t\tthe adjustmentStatus field of the CapacityReservation data\n\t\t\ttype.

", + "smithy.api#xmlName": "adjustmentStatus" + } + }, + "AdjustmentDetails": { + "target": "com.amazonaws.ec2#CapacityReservationAdjustmentDetails", + "traits": { + "aws.protocols#ec2QueryName": "AdjustmentDetails", + "smithy.api#documentation": "

The configuration that the Capacity Reservation will have after the adjustment is\n\t\t\tapplied.

", + "smithy.api#xmlName": "adjustmentDetails" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Client VPN endpoint. Modifying the DNS server resets existing client connections.

" + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Creates or updates the authorization policy for a Client VPN endpoint. A Client VPN endpoint can have one authorization policy. If a policy already exists for the endpoint, the values that you specify replace the corresponding values in the existing policy, and values that you do not specify remain unchanged.

" + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The authorization policy document, written in the Cedar policy language. This parameter is required when you create the authorization policy for a Client VPN endpoint that does not already have one.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A brief description of the authorization policy.

" + } + }, + "ShadowMode": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationPolicyShadowMode", + "traits": { + "smithy.api#documentation": "

Specifies whether the authorization policy is evaluated in shadow mode. Possible values include:

\n
    \n
  • \n

    \n enabled - The authorization policy is evaluated and the results are logged, but access is not enforced.

    \n
  • \n
  • \n

    \n disabled - The authorization policy is enforced.

    \n
  • \n
\n

The default value is disabled.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \nFor more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpointAuthorizationPolicyResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationPolicyStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization policy.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpointRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint to modify.

", + "smithy.api#required": {} + } + }, + "ServerCertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the server certificate to be used. The server certificate must be provisioned in \n\t\t\tCertificate Manager (ACM).

" + } + }, + "ConnectionLogOptions": { + "target": "com.amazonaws.ec2#ConnectionLogOptions", + "traits": { + "smithy.api#documentation": "

Information about the client connection logging options.

\n

If you enable client connection logging, data about client connections is sent to a\n\t\t\tCloudwatch Logs log stream. The following information is logged:

\n
    \n
  • \n

    Client connection requests

    \n
  • \n
  • \n

    Client connection results (successful and unsuccessful)

    \n
  • \n
  • \n

    Reasons for unsuccessful client connection requests

    \n
  • \n
  • \n

    Client connection termination time

    \n
  • \n
" + } + }, + "DnsServers": { + "target": "com.amazonaws.ec2#DnsServersOptionsModifyStructure", + "traits": { + "smithy.api#documentation": "

Information about the DNS servers to be used by Client VPN connections. A Client VPN endpoint can have \n\t\t\tup to two DNS servers.

" + } + }, + "VpnPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The port number to assign to the Client VPN endpoint for TCP and UDP traffic.

\n

Valid Values: 443 | 1194\n

\n

Default Value: 443\n

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A brief description of the Client VPN endpoint.

" + } + }, + "SplitTunnel": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the VPN is split-tunnel.

\n

For information about split-tunnel VPN endpoints, see Split-tunnel Client VPN endpoint in the \n \tClient VPN Administrator Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ClientVpnSecurityGroupIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of one or more security groups to apply to the target network.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC to associate with the Client VPN endpoint.

" + } + }, + "SelfServicePortal": { + "target": "com.amazonaws.ec2#SelfServicePortal", + "traits": { + "smithy.api#documentation": "

Specify whether to enable the self-service portal for the Client VPN endpoint.

" + } + }, + "ClientConnectOptions": { + "target": "com.amazonaws.ec2#ClientConnectOptions", + "traits": { + "smithy.api#documentation": "

The options for managing connection authorization for new client connections.

" + } + }, + "SessionTimeoutHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum VPN session duration time in hours.

\n

Valid values: 8 | 10 | 12 | 24\n

\n

Default value: 24\n

" + } + }, + "ClientLoginBannerOptions": { + "target": "com.amazonaws.ec2#ClientLoginBannerOptions", + "traits": { + "smithy.api#documentation": "

Options for enabling a customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.

" + } + }, + "ClientRouteEnforcementOptions": { + "target": "com.amazonaws.ec2#ClientRouteEnforcementOptions", + "traits": { + "smithy.api#documentation": "

Client route enforcement is a feature of the Client VPN service that helps enforce administrator defined routes on devices connected through the VPN. T\n\t\this feature helps improve your security posture by ensuring that network traffic originating from a connected client is not inadvertently sent outside the VPN tunnel.

\n

Client route enforcement works by monitoring the route table of a connected device for routing policy changes to the VPN connection. If the feature detects any VPN routing policy modifications, it will automatically force an update to the route table, \n\t\t\treverting it back to the expected route configurations.

" + } + }, + "DisconnectOnSessionTimeout": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the client VPN session is disconnected after the maximum timeout specified in sessionTimeoutHours is reached. If true, users are prompted to reconnect client VPN. If false, client VPN attempts to reconnect automatically. The default value is true.

" + } + }, + "TransitGatewayConfiguration": { + "target": "com.amazonaws.ec2#TransitGatewayConfigurationInputStructure", + "traits": { + "smithy.api#documentation": "

The Transit Gateway configuration for the Client VPN endpoint. This option is currently not supported.

" + } + }, + "DevicePostureOptions": { + "target": "com.amazonaws.ec2#DevicePostureOptions", + "traits": { + "smithy.api#documentation": "

The device posture options for the Client VPN endpoint. Specifying this parameter replaces the entire device posture configuration for the endpoint. To disable device posture and remove all device trust providers, specify false for Enabled.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyClientVpnEndpointResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyDefaultCreditSpecification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyDefaultCreditSpecificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyDefaultCreditSpecificationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the default credit option for CPU usage of burstable performance instances.\n The default credit option is set at the account level per Amazon Web Services Region, and\n is specified per instance family. All new burstable performance instances in the account\n launch using the default credit option.

\n

\n ModifyDefaultCreditSpecification is an asynchronous operation, which\n works at an Amazon Web Services Region level and modifies the credit option for each\n Availability Zone. All zones in a Region are updated within five minutes. But if\n instances are launched during this operation, they might not get the new credit option\n until the zone is updated. To verify whether the update has occurred, you can call\n GetDefaultCreditSpecification and check\n DefaultCreditSpecification for updates.

\n

For more information, see Burstable\n performance instances in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyDefaultCreditSpecificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#UnlimitedSupportedInstanceFamily", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance family.

", + "smithy.api#required": {} + } + }, + "CpuCredits": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The credit option for CPU usage of the instance family.

\n

Valid Values: standard | unlimited\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyDefaultCreditSpecificationResult": { + "type": "structure", + "members": { + "InstanceFamilyCreditSpecification": { + "target": "com.amazonaws.ec2#InstanceFamilyCreditSpecification", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamilyCreditSpecification", + "smithy.api#documentation": "

The default credit option for CPU usage of the instance family.

", + "smithy.api#xmlName": "instanceFamilyCreditSpecification" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdResult" + }, + "traits": { + "smithy.api#documentation": "

Changes the default KMS key for EBS encryption by default for your account in this Region.

\n

Amazon Web Services creates a unique Amazon Web Services managed KMS key in each Region for use with encryption by default. If\n you change the default KMS key to a symmetric customer managed KMS key, it is used instead of the Amazon Web Services\n managed KMS key. Amazon EBS does not support asymmetric KMS keys.

\n

If you delete or disable the customer managed KMS key that you specified for use with\n encryption by default, your instances will fail to launch.

\n

For more information, see Amazon EBS encryption\n in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdRequest": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.ec2#KmsKeyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the KMS key to use for Amazon EBS encryption.\n If this parameter is not specified, your KMS key for Amazon EBS is used. If KmsKeyId is\n specified, the encrypted state must be true.

\n

You can specify the KMS key using any of the following:

\n
    \n
  • \n

    Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Key alias. For example, alias/ExampleAlias.

    \n
  • \n
  • \n

    Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    \n
  • \n
  • \n

    Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

    \n
  • \n
\n

Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, \n the action can appear to complete, but eventually fails.

\n

Amazon EBS does not support asymmetric KMS keys.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyEbsDefaultKmsKeyIdResult": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the default KMS key for encryption by default.

", + "smithy.api#xmlName": "kmsKeyId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified EC2 Fleet.

\n

You can only modify an EC2 Fleet request of type maintain.

\n

While the EC2 Fleet is being modified, it is in the modifying state.

\n

To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet launches the additional\n Spot Instances according to the allocation strategy for the EC2 Fleet request. If the allocation\n strategy is lowest-price, the EC2 Fleet launches instances using the Spot Instance\n pool with the lowest price. If the allocation strategy is diversified, the\n EC2 Fleet distributes the instances across the Spot Instance pools. If the allocation strategy\n is capacity-optimized, EC2 Fleet launches instances from Spot Instance pools with optimal\n capacity for the number of instances that are launching.

\n

To scale down your EC2 Fleet, decrease its target capacity. First, the EC2 Fleet cancels any open\n requests that exceed the new target capacity. You can request that the EC2 Fleet terminate Spot\n Instances until the size of the fleet no longer exceeds the new target capacity. If the\n allocation strategy is lowest-price, the EC2 Fleet terminates the instances with\n the highest price per unit. If the allocation strategy is capacity-optimized,\n the EC2 Fleet terminates the instances in the Spot Instance pools that have the least available\n Spot Instance capacity. If the allocation strategy is diversified, the EC2 Fleet terminates\n instances across the Spot Instance pools. Alternatively, you can request that the EC2 Fleet keep\n the fleet at its current size, but not replace any Spot Instances that are interrupted or\n that you terminate manually.

\n

If you are finished with your EC2 Fleet for now, but will use it again later, you can set the\n target capacity to 0.

" + } + }, + "com.amazonaws.ec2#ModifyFleetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ExcessCapacityTerminationPolicy": { + "target": "com.amazonaws.ec2#FleetExcessCapacityTerminationPolicy", + "traits": { + "smithy.api#documentation": "

Indicates whether running instances should be terminated if the total target capacity of\n the EC2 Fleet is decreased below the current size of the EC2 Fleet.

\n

Supported only for fleets of type maintain.

" + } + }, + "LaunchTemplateConfigs": { + "target": "com.amazonaws.ec2#FleetLaunchTemplateConfigListRequest", + "traits": { + "smithy.api#documentation": "

The launch template and overrides.

", + "smithy.api#xmlName": "LaunchTemplateConfig" + } + }, + "FleetId": { + "target": "com.amazonaws.ec2#FleetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2 Fleet.

", + "smithy.api#required": {} + } + }, + "TargetCapacitySpecification": { + "target": "com.amazonaws.ec2#TargetCapacitySpecificationRequest", + "traits": { + "smithy.api#documentation": "

The size of the EC2 Fleet.

" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyFleetResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

If the request succeeds, the response returns true. If the request fails,\n no response is returned, and instead an error message is returned.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyFpgaImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyFpgaImageAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyFpgaImageAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified attribute of the specified Amazon FPGA Image (AFI).

" + } + }, + "com.amazonaws.ec2#ModifyFpgaImageAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FpgaImageId": { + "target": "com.amazonaws.ec2#FpgaImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AFI.

", + "smithy.api#required": {} + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#FpgaImageAttributeName", + "traits": { + "smithy.api#documentation": "

The name of the attribute.

" + } + }, + "OperationType": { + "target": "com.amazonaws.ec2#OperationType", + "traits": { + "smithy.api#documentation": "

The operation type.

" + } + }, + "UserIds": { + "target": "com.amazonaws.ec2#UserIdStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account IDs. This parameter is valid only when modifying the loadPermission attribute.

", + "smithy.api#xmlName": "UserId" + } + }, + "UserGroups": { + "target": "com.amazonaws.ec2#UserGroupStringList", + "traits": { + "smithy.api#documentation": "

The user groups. This parameter is valid only when modifying the loadPermission attribute.

", + "smithy.api#xmlName": "UserGroup" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeStringList", + "traits": { + "smithy.api#documentation": "

The product codes. After you add a product code to an AFI, it can't be removed.\n\t\t This parameter is valid only when modifying the productCodes attribute.

", + "smithy.api#xmlName": "ProductCode" + } + }, + "LoadPermission": { + "target": "com.amazonaws.ec2#LoadPermissionModifications", + "traits": { + "smithy.api#documentation": "

The load permission for the AFI.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the AFI.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A name for the AFI.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyFpgaImageAttributeResult": { + "type": "structure", + "members": { + "FpgaImageAttribute": { + "target": "com.amazonaws.ec2#FpgaImageAttribute", + "traits": { + "aws.protocols#ec2QueryName": "FpgaImageAttribute", + "smithy.api#documentation": "

Information about the attribute.

", + "smithy.api#xmlName": "fpgaImageAttribute" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyHosts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyHostsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyHostsResult" + }, + "traits": { + "smithy.api#documentation": "

Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled,\n any instances that you launch with a tenancy of host but without a specific\n host ID are placed onto any available Dedicated Host in your account that has\n auto-placement enabled. When auto-placement is disabled, you need to provide a host ID\n to have the instance launch onto a specific host. If no host ID is provided, the\n instance is launched onto a suitable host with auto-placement enabled.

\n

You can also use this API action to modify a Dedicated Host to support either multiple\n instance types in an instance family, or to support a specific instance type\n only.

" + } + }, + "com.amazonaws.ec2#ModifyHostsRequest": { + "type": "structure", + "members": { + "HostRecovery": { + "target": "com.amazonaws.ec2#HostRecovery", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable or disable host recovery for the Dedicated Host. For more\n information, see Host recovery in\n the Amazon EC2 User Guide.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specifies the instance type to be supported by the Dedicated Host. Specify this\n parameter to modify a Dedicated Host to support only a specific instance type.

\n

If you want to modify a Dedicated Host to support multiple instance types in its\n current instance family, omit this parameter and specify InstanceFamily instead. You cannot specify InstanceType and InstanceFamily in the\n same request.

" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specifies the instance family to be supported by the Dedicated Host. Specify this\n parameter to modify a Dedicated Host to support multiple instance types within its\n current instance family.

\n

If you want to modify a Dedicated Host to support a specific instance type only, omit\n this parameter and specify InstanceType instead. You\n cannot specify InstanceFamily and InstanceType in the same request.

" + } + }, + "HostMaintenance": { + "target": "com.amazonaws.ec2#HostMaintenance", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable or disable host maintenance for the Dedicated Host. For\n more information, see Host\n maintenance in the Amazon EC2 User Guide.

" + } + }, + "HostIds": { + "target": "com.amazonaws.ec2#RequestHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Dedicated Hosts to modify.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "hostId" + } + }, + "AutoPlacement": { + "target": "com.amazonaws.ec2#AutoPlacement", + "traits": { + "aws.protocols#ec2QueryName": "AutoPlacement", + "smithy.api#documentation": "

Specify whether to enable or disable auto-placement.

", + "smithy.api#xmlName": "autoPlacement" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyHostsResult": { + "type": "structure", + "members": { + "Successful": { + "target": "com.amazonaws.ec2#ResponseHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "Successful", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts that were successfully modified.

", + "smithy.api#xmlName": "successful" + } + }, + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemList", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts that could not be modified. Check whether the setting\n you requested can be used.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIdFormatRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the ID format for the specified resource on a per-Region basis. You can\n specify that resources should receive longer IDs (17-character IDs) when they are\n created.

\n

This request can only be used to modify longer ID settings for resource types that\n are within the opt-in period. Resources currently in their opt-in period include:\n bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

This setting applies to the IAM user who makes the request; it does not apply to the\n entire Amazon Web Services account. By default, an IAM user defaults to the same settings as the root user. If\n you're using this action as the root user, then these settings apply to the entire account,\n unless an IAM user explicitly overrides these settings for themselves. For more information,\n see Resource IDs \n in the Amazon Elastic Compute Cloud User Guide.

\n

Resources created with longer IDs are visible to all IAM roles and users, regardless\n of these settings and provided that they have permission to use the relevant\n Describe command for the resource type.

" + } + }, + "com.amazonaws.ec2#ModifyIdFormatRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of resource: bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

Alternatively, use the all-current option to include all resource types that are\n currently within their opt-in period for longer IDs.

", + "smithy.api#required": {} + } + }, + "UseLongIds": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicate whether the resource should use longer IDs (17-character IDs).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIdentityIdFormat": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIdentityIdFormatRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the ID format of a resource for a specified IAM user, IAM role, or the root\n user for an account; or all IAM users, IAM roles, and the root user for an account. You can\n specify that resources should receive longer IDs (17-character IDs) when they are created.

\n

This request can only be used to modify longer ID settings for resource types that are\n within the opt-in period. Resources currently in their opt-in period include:\n bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

For more information, see Resource IDs in the\n Amazon Elastic Compute Cloud User Guide.

\n

This setting applies to the principal specified in the request; it does not apply to the\n principal that makes the request.

\n

Resources created with longer IDs are visible to all IAM roles and users, regardless of these\n settings and provided that they have permission to use the relevant Describe\n command for the resource type.

" + } + }, + "com.amazonaws.ec2#ModifyIdentityIdFormatRequest": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Resource", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of resource: bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

Alternatively, use the all-current option to include all resource types that are\n currently within their opt-in period for longer IDs.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "resource" + } + }, + "UseLongIds": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "UseLongIds", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether the resource should use longer IDs (17-character IDs)

", + "smithy.api#required": {}, + "smithy.api#xmlName": "useLongIds" + } + }, + "PrincipalArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrincipalArn", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify\n all to modify the ID format for all IAM users, IAM roles, and the root user of\n the account.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "principalArn" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyImageAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute\n at a time.

\n

To specify the attribute, you can use the Attribute parameter, or one of the\n following parameters: Description, ImdsSupport, or\n LaunchPermission.

\n

Images with an Amazon Web Services Marketplace product code cannot be made public.

\n

To enable the SriovNetSupport enhanced networking attribute of an image, enable\n SriovNetSupport on an instance and create an AMI from the instance.

", + "smithy.api#examples": [ + { + "title": "To grant launch permissions", + "documentation": "This example grants launch permissions for the specified AMI to the specified AWS account.", + "input": { + "ImageId": "ami-5731123e", + "LaunchPermission": { + "Add": [ + { + "UserId": "123456789012" + } + ] + } + }, + "output": {} + }, + { + "title": "To make an AMI public", + "documentation": "This example makes the specified AMI public.", + "input": { + "ImageId": "ami-5731123e", + "LaunchPermission": { + "Add": [ + { + "Group": "all" + } + ] + } + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ModifyImageAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the attribute to modify.

\n

Valid values: description | imdsSupport |\n launchPermission\n

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "smithy.api#documentation": "

A new description for the AMI.

" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "LaunchPermission": { + "target": "com.amazonaws.ec2#LaunchPermissionModifications", + "traits": { + "smithy.api#documentation": "

A new launch permission for the AMI.

" + } + }, + "OperationType": { + "target": "com.amazonaws.ec2#OperationType", + "traits": { + "smithy.api#documentation": "

The operation type. This parameter can be used only when the Attribute\n parameter is launchPermission.

" + } + }, + "ProductCodes": { + "target": "com.amazonaws.ec2#ProductCodeStringList", + "traits": { + "smithy.api#documentation": "

Not supported.

", + "smithy.api#xmlName": "ProductCode" + } + }, + "UserGroups": { + "target": "com.amazonaws.ec2#UserGroupStringList", + "traits": { + "smithy.api#documentation": "

The user groups. This parameter can be used only when the Attribute parameter\n is launchPermission.

", + "smithy.api#xmlName": "UserGroup" + } + }, + "UserIds": { + "target": "com.amazonaws.ec2#UserIdStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account IDs. This parameter can be used only when the\n Attribute parameter is launchPermission.

", + "smithy.api#xmlName": "UserId" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value of the attribute being modified. This parameter can be used only when the\n Attribute parameter is description or\n imdsSupport.

" + } + }, + "OrganizationArns": { + "target": "com.amazonaws.ec2#OrganizationArnStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an organization. This parameter can be used only when\n the Attribute parameter is launchPermission.

", + "smithy.api#xmlName": "OrganizationArn" + } + }, + "OrganizationalUnitArns": { + "target": "com.amazonaws.ec2#OrganizationalUnitArnStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an organizational unit (OU). This parameter can be used\n only when the Attribute parameter is launchPermission.

", + "smithy.api#xmlName": "OrganizationalUnitArn" + } + }, + "ImdsSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "smithy.api#documentation": "

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. Instances\n launched from this AMI will have HttpTokens automatically set to\n required so that, by default, the instance requires that IMDSv2 is used when\n requesting instance metadata. In addition, HttpPutResponseHopLimit is set to\n 2. For more information, see Configure the AMI in the Amazon EC2 User Guide.

\n \n

Do not use this parameter unless your AMI software supports IMDSv2. After you set the\n value to v2.0, you can't undo it. The only way to “reset” your AMI is to create\n a new AMI from the underlying snapshot.

\n
" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ModifyImageAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified attribute of the specified instance. You can specify only one\n attribute at a time.

\n

\n Note: Using this action to change the security groups\n associated with an elastic network interface (ENI) attached to an instance can\n result in an error if the instance has more than one ENI. To change the security groups\n associated with an ENI attached to an instance that has multiple ENIs, we recommend that\n you use the ModifyNetworkInterfaceAttribute action.

\n

To modify some attributes, the instance must be stopped. For more information, see\n Modify a stopped instance in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To enable enhanced networking", + "documentation": "This example enables enhanced networking for the specified stopped instance.", + "input": { + "InstanceId": "i-1234567890abcdef0", + "EnaSupport": { + "Value": true + } + }, + "output": {} + }, + { + "title": "To modify the instance type", + "documentation": "This example modifies the instance type of the specified stopped instance.", + "input": { + "InstanceId": "i-1234567890abcdef0", + "InstanceType": { + "Value": "m5.large" + } + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ModifyInstanceAttributeRequest": { + "type": "structure", + "members": { + "SourceDestCheck": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Enable or disable source/destination checks, which ensure that the instance is either\n the source or the destination of any traffic that it receives. If the value is\n true, source/destination checks are enabled; otherwise, they are\n disabled. The default value is true. You must disable source/destination\n checks if the instance runs services such as network address translation, routing, or\n firewalls.

" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#EnclaveOptionsRequest", + "traits": { + "smithy.api#documentation": "

Enables or disables the instance for Amazon Web Services Nitro Enclaves. For more\n information, see the Amazon Web Services Nitro Enclaves User\n Guide.

" + } + }, + "DisableApiStop": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether an instance is enabled for stop protection. For more information,\n see Enable stop\n protection for your instance.

\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#InstanceAttributeName", + "traits": { + "aws.protocols#ec2QueryName": "Attribute", + "smithy.api#documentation": "

The name of the attribute to modify.

\n \n

When changing the instance type: If the original instance type is configured for\n configurable bandwidth, and the desired instance type doesn't support configurable\n bandwidth, first set the existing bandwidth configuration to default\n using the ModifyInstanceNetworkPerformanceOptions\n operation.

\n
\n \n

You can modify the following attributes only: disableApiTermination |\n instanceType | kernel | ramdisk |\n instanceInitiatedShutdownBehavior | blockDeviceMapping\n | userData | sourceDestCheck | groupSet |\n ebsOptimized | sriovNetSupport |\n enaSupport | nvmeSupport | disableApiStop\n | enclaveOptions\n

\n
", + "smithy.api#xmlName": "attribute" + } + }, + "Value": { + "target": "com.amazonaws.ec2#ModifyInstanceAttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

A new value for the attribute. Use only with the kernel,\n ramdisk, userData, disableApiTermination, or\n instanceInitiatedShutdownBehavior attribute.

", + "smithy.api#xmlName": "value" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#InstanceBlockDeviceMappingSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

Modifies the DeleteOnTermination attribute for volumes that are currently\n attached. The volume must be owned by the caller. If no value is specified for\n DeleteOnTermination, the default is true and the volume is\n deleted when the instance is terminated. You can't modify the DeleteOnTermination \n attribute for volumes that are attached to Amazon Web Services-managed resources.

\n

To add instance store volumes to an Amazon EBS-backed instance, you must add them when\n you launch the instance. For more information, see Update the block device mapping when launching an instance in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "DisableApiTermination": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiTermination", + "smithy.api#documentation": "

Enable or disable termination protection for the instance. If the value is true, \n you can't terminate the instance using the Amazon EC2 console, command line interface, or API. \n You can't enable termination protection for Spot Instances.

", + "smithy.api#xmlName": "disableApiTermination" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

Changes the instance type to the specified value. For more information, see Instance\n types in the Amazon EC2 User Guide. If the instance type is\n not valid, the error returned is InvalidInstanceAttributeValue.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Kernel": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Kernel", + "smithy.api#documentation": "

Changes the instance's kernel to the specified value. We recommend that you use\n PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "smithy.api#xmlName": "kernel" + } + }, + "Ramdisk": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Ramdisk", + "smithy.api#documentation": "

Changes the instance's RAM disk to the specified value. We recommend that you use\n PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "smithy.api#xmlName": "ramdisk" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#SecureBlobAttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

Changes the instance's user data to the specified value. User data must be base64-encoded.\n Depending on the tool or SDK that you're using, the base64-encoding might be performed for you.\n For more information, see Work with instance user data.

", + "smithy.api#xmlName": "userData" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInitiatedShutdownBehavior", + "smithy.api#documentation": "

Specifies whether an instance stops or terminates when you initiate shutdown from the\n instance (using the operating system command for system shutdown).

", + "smithy.api#xmlName": "instanceInitiatedShutdownBehavior" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdStringList", + "traits": { + "smithy.api#documentation": "

Replaces the security groups of the instance with the specified security groups.\n You must specify the ID of at least one security group, even if it's just the default\n security group for the VPC.

", + "smithy.api#xmlName": "GroupId" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Specifies whether the instance is optimized for Amazon EBS I/O. This optimization\n provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n provide optimal EBS I/O performance. This optimization isn't available with all instance\n types. Additional usage charges apply when using an EBS Optimized instance.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Set to simple to enable enhanced networking with the Intel 82599 Virtual\n Function interface for the instance.

\n

There is no way to disable enhanced networking with the Intel 82599 Virtual Function\n interface at this time.

\n

This option is supported only for HVM instances. Specifying this option with a PV\n instance can make it unreachable.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Set to true to enable enhanced networking with ENA for the\n instance.

\n

This option is supported only for HVM instances. Specifying this option with a PV\n instance can make it unreachable.

", + "smithy.api#xmlName": "enaSupport" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceAttributeValue": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the Capacity Reservation settings for a stopped instance. Use this action to\n\t\t\tconfigure an instance to target a specific Capacity Reservation, run in any\n\t\t\t\topen Capacity Reservation with matching attributes, run in On-Demand\n\t\t\tInstance capacity, or only run in a Capacity Reservation.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to be modified.

", + "smithy.api#required": {} + } + }, + "CapacityReservationSpecification": { + "target": "com.amazonaws.ec2#CapacityReservationSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the Capacity Reservation targeting option.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCapacityReservationAttributesResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceConnectEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceConnectEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceConnectEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified EC2 Instance Connect Endpoint.

\n

For more information, see Modify an\n EC2 Instance Connect Endpoint in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceConnectEndpointRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceConnectEndpointId": { + "target": "com.amazonaws.ec2#InstanceConnectEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the EC2 Instance Connect Endpoint to modify.

", + "smithy.api#required": {} + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "smithy.api#documentation": "

The new IP address type for the EC2 Instance Connect Endpoint.

\n \n

\n PreserveClientIp is only supported on IPv4 EC2 Instance Connect\n Endpoints. To use PreserveClientIp, the value for\n IpAddressType must be ipv4.

\n
" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringListRequest", + "traits": { + "smithy.api#documentation": "

Changes the security groups for the EC2 Instance Connect Endpoint. The new set of\n groups you specify replaces the current set. You must specify at least one group, even\n if it's just the default security group in the VPC. You must specify the ID of the\n security group, not the name.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "PreserveClientIp": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the client IP address is preserved as the source when you connect to a resource. \n The following are the possible values.

\n
    \n
  • \n

    \n true - Use the IP address of the client. Your instance must have an IPv4 address.

    \n
  • \n
  • \n

    \n false - Use the IP address of the network interface.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceConnectEndpointResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCpuOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceCpuOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceCpuOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

By default, all vCPUs for the instance type are active when you launch an instance. When you \n\t\t\tconfigure the number of active vCPUs for the instance, it can help you save on licensing costs and \n\t\t\toptimize performance. The base cost of the instance remains unchanged.

\n

The number of active vCPUs equals the number of threads per CPU core multiplied by the number \n\t\t\tof cores. The instance must be in a Stopped state before you make changes.

\n \n

Some instance type options do not support this capability. For more information, see \n\t\t\t\tSupported CPU \n\t\t\t\t\toptions in the Amazon EC2 User Guide.

\n
" + } + }, + "com.amazonaws.ec2#ModifyInstanceCpuOptionsRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to update.

", + "smithy.api#required": {} + } + }, + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of CPU cores to activate for the specified instance.

" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of threads to run for each CPU core.

" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable or disable nested virtualization for the instance.\n When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCpuOptionsResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance that was updated.

", + "smithy.api#xmlName": "instanceId" + } + }, + "CoreCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "CoreCount", + "smithy.api#documentation": "

The number of CPU cores that are running for the specified instance after the \n\t\t\tupdate.

", + "smithy.api#xmlName": "coreCount" + } + }, + "ThreadsPerCore": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ThreadsPerCore", + "smithy.api#documentation": "

The number of threads that are running per CPU core for the specified \n\t\t\tinstance after the update.

", + "smithy.api#xmlName": "threadsPerCore" + } + }, + "NestedVirtualization": { + "target": "com.amazonaws.ec2#NestedVirtualizationSpecification", + "traits": { + "aws.protocols#ec2QueryName": "NestedVirtualization", + "smithy.api#documentation": "

Indicates whether nested virtualization has been enabled or disabled.

", + "smithy.api#xmlName": "nestedVirtualization" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCreditSpecification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceCreditSpecificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceCreditSpecificationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the credit option for CPU usage on a running or stopped burstable performance\n instance. The credit options are standard and\n unlimited.

\n

For more information, see Burstable\n performance instances in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceCreditSpecificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring\n Idempotency.

" + } + }, + "InstanceCreditSpecifications": { + "target": "com.amazonaws.ec2#InstanceCreditSpecificationListRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the credit option for CPU usage.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceCreditSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceCreditSpecificationResult": { + "type": "structure", + "members": { + "SuccessfulInstanceCreditSpecifications": { + "target": "com.amazonaws.ec2#SuccessfulInstanceCreditSpecificationSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulInstanceCreditSpecificationSet", + "smithy.api#documentation": "

Information about the instances whose credit option for CPU usage was successfully\n modified.

", + "smithy.api#xmlName": "successfulInstanceCreditSpecificationSet" + } + }, + "UnsuccessfulInstanceCreditSpecifications": { + "target": "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationSet", + "traits": { + "aws.protocols#ec2QueryName": "UnsuccessfulInstanceCreditSpecificationSet", + "smithy.api#documentation": "

Information about the instances whose credit option for CPU usage was not\n modified.

", + "smithy.api#xmlName": "unsuccessfulInstanceCreditSpecificationSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceEventStartTime": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceEventStartTimeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceEventStartTimeResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the start time for a scheduled Amazon EC2 instance event.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceEventStartTimeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance with the scheduled event.

", + "smithy.api#required": {} + } + }, + "InstanceEventId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the event whose date and time you are modifying.

", + "smithy.api#required": {} + } + }, + "NotBefore": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The new date and time when the event will take place.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceEventStartTimeResult": { + "type": "structure", + "members": { + "Event": { + "target": "com.amazonaws.ec2#InstanceStatusEvent", + "traits": { + "aws.protocols#ec2QueryName": "Event", + "smithy.api#documentation": "

Information about the event.

", + "smithy.api#xmlName": "event" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceEventWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceEventWindowRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceEventWindowResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified event window.

\n

You can define either a set of time ranges or a cron expression when modifying the event\n window, but not both.

\n

To modify the targets associated with the event window, use the AssociateInstanceEventWindow and DisassociateInstanceEventWindow API.

\n

If Amazon Web Services has already scheduled an event, modifying an event window won't change the time\n of the scheduled event.

\n

For more information, see Define event windows for scheduled\n events in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceEventWindowRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the event window.

" + } + }, + "InstanceEventWindowId": { + "target": "com.amazonaws.ec2#InstanceEventWindowId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the event window.

", + "smithy.api#required": {} + } + }, + "TimeRanges": { + "target": "com.amazonaws.ec2#InstanceEventWindowTimeRangeRequestSet", + "traits": { + "smithy.api#documentation": "

The time ranges of the event window.

", + "smithy.api#xmlName": "TimeRange" + } + }, + "CronExpression": { + "target": "com.amazonaws.ec2#InstanceEventWindowCronExpression", + "traits": { + "smithy.api#documentation": "

The cron expression of the event window, for example, * 0-4,20-23 * *\n 1,5.

\n

Constraints:

\n
    \n
  • \n

    Only hour and day of the week values are supported.

    \n
  • \n
  • \n

    For day of the week values, you can specify either integers 0 through\n 6, or alternative single values SUN through\n SAT.

    \n
  • \n
  • \n

    The minute, month, and year must be specified by *.

    \n
  • \n
  • \n

    The hour value must be one or a multiple range, for example, 0-4 or\n 0-4,20-23.

    \n
  • \n
  • \n

    Each hour range must be >= 2 hours, for example, 0-2 or\n 20-23.

    \n
  • \n
  • \n

    The event window must be >= 4 hours. The combined total time ranges in the event\n window must be >= 4 hours.

    \n
  • \n
\n

For more information about cron expressions, see cron on the Wikipedia\n website.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceEventWindowResult": { + "type": "structure", + "members": { + "InstanceEventWindow": { + "target": "com.amazonaws.ec2#InstanceEventWindow", + "traits": { + "aws.protocols#ec2QueryName": "InstanceEventWindow", + "smithy.api#documentation": "

Information about the event window.

", + "smithy.api#xmlName": "instanceEventWindow" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMaintenanceOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the recovery behavior of your instance to disable simplified automatic\n recovery or set the recovery behavior to default. The default configuration will not\n enable simplified automatic recovery for an unsupported instance type. For more\n information, see Simplified automatic recovery.

\n

Modifies the reboot migration behavior during a user-initiated reboot of an instance\n that has a pending system-reboot event. For more information, see Enable or disable reboot migration.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "AutoRecovery": { + "target": "com.amazonaws.ec2#InstanceAutoRecoveryState", + "traits": { + "smithy.api#documentation": "

Disables the automatic recovery behavior of your instance or sets it to\n default.

" + } + }, + "RebootMigration": { + "target": "com.amazonaws.ec2#InstanceRebootMigrationState", + "traits": { + "smithy.api#documentation": "

Specifies whether to attempt reboot migration during a user-initiated reboot of an\n instance that has a scheduled system-reboot event:

\n
    \n
  • \n

    \n default - Amazon EC2 attempts to migrate the instance to\n new hardware (reboot migration). If successful, the system-reboot\n event is cleared. If unsuccessful, an in-place reboot occurs and the event\n remains scheduled.

    \n
  • \n
  • \n

    \n disabled - Amazon EC2 keeps the instance on the same\n hardware (in-place reboot). The system-reboot event remains\n scheduled.

    \n
  • \n
\n

This setting only applies to supported instances that have a scheduled reboot event.\n For more information, see Enable or disable reboot migration in the\n Amazon EC2 User Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMaintenanceOptionsResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "AutoRecovery": { + "target": "com.amazonaws.ec2#InstanceAutoRecoveryState", + "traits": { + "aws.protocols#ec2QueryName": "AutoRecovery", + "smithy.api#documentation": "

Provides information on the current automatic recovery behavior of your\n instance.

", + "smithy.api#xmlName": "autoRecovery" + } + }, + "RebootMigration": { + "target": "com.amazonaws.ec2#InstanceRebootMigrationState", + "traits": { + "aws.protocols#ec2QueryName": "RebootMigration", + "smithy.api#documentation": "

Specifies whether to attempt reboot migration during a user-initiated reboot of an\n instance that has a scheduled system-reboot event:

\n
    \n
  • \n

    \n default - Amazon EC2 attempts to migrate the instance to\n new hardware (reboot migration). If successful, the system-reboot\n event is cleared. If unsuccessful, an in-place reboot occurs and the event\n remains scheduled.

    \n
  • \n
  • \n

    \n disabled - Amazon EC2 keeps the instance on the same\n hardware (in-place reboot). The system-reboot event remains\n scheduled.

    \n
  • \n
\n

This setting only applies to supported instances that have a scheduled reboot event.\n For more information, see Enable or disable reboot migration in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "rebootMigration" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataDefaults": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the default instance metadata service (IMDS) settings at the account level in\n the specified Amazon Web Services
 Region.

\n \n

To remove a parameter's account-level default setting, specify\n no-preference. If an account-level setting is cleared with\n no-preference, then the instance launch considers the other\n instance metadata settings. For more information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

\n
" + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsRequest": { + "type": "structure", + "members": { + "HttpTokens": { + "target": "com.amazonaws.ec2#MetadataDefaultHttpTokensState", + "traits": { + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional – IMDSv2 is optional, which means that you can\n use either IMDSv2 or IMDSv1.

    \n
  • \n
  • \n

    \n required – IMDSv2 is required, which means that IMDSv1 is\n disabled, and you must use IMDSv2.

    \n
  • \n
" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel. To indicate no\n preference, specify -1.

\n

Possible values: Integers from 1 to 64, and -1\n to indicate no preference

" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#DefaultInstanceMetadataEndpointState", + "traits": { + "smithy.api#documentation": "

Enables or disables the IMDS endpoint on an instance. When disabled, the instance\n metadata can't be accessed.

" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#DefaultInstanceMetadataTagsState", + "traits": { + "smithy.api#documentation": "

Enables or disables access to an instance's tags from the instance metadata. For more\n information, see View tags for your EC2\n instances using instance metadata in the\n Amazon EC2 User Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "HttpTokensEnforced": { + "target": "com.amazonaws.ec2#DefaultHttpTokensEnforcedState", + "traits": { + "smithy.api#documentation": "

Specifies whether to enforce the requirement of IMDSv2 on an instance at the time of\n launch. When enforcement is enabled, the instance can't launch unless IMDSv2\n (HttpTokens) is set to required. For more information, see\n Enforce IMDSv2 at the account level in the\n Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

If the request succeeds, the response returns true. If the request fails,\n no response is returned, and instead an error message is returned.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceMetadataOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modify the instance metadata parameters on a running or stopped instance. When you\n modify the parameters on a stopped instance, they are applied when the instance is\n started. When you modify the parameters on a running instance, the API responds with a\n state of “pending”. After the parameter modifications are successfully applied to the\n instance, the state of the modifications changes from “pending” to “applied” in\n subsequent describe-instances API calls. For more information, see Instance metadata and user data in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataOptionsRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "HttpTokens": { + "target": "com.amazonaws.ec2#HttpTokensState", + "traits": { + "smithy.api#documentation": "

Indicates whether IMDSv2 is required.

\n
    \n
  • \n

    \n optional - IMDSv2 is optional. You can choose whether to send a \n session token in your instance metadata retrieval requests. If you retrieve \n IAM role credentials without a session token, you receive the IMDSv1 role \n credentials. If you retrieve IAM role credentials using a valid session token, \n you receive the IMDSv2 role credentials.

    \n
  • \n
  • \n

    \n required - IMDSv2 is required. You must send a session token \n in your instance metadata retrieval requests. With this option, retrieving the \n IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are \n not available.

    \n
  • \n
\n

Default:

\n
    \n
  • \n

    If the value of ImdsSupport for the Amazon Machine Image (AMI)\n for your instance is v2.0 and the account level default is set to\n no-preference, the default is required.

    \n
  • \n
  • \n

    If the value of ImdsSupport for the Amazon Machine Image (AMI)\n for your instance is v2.0, but the account level default is set to\n V1 or V2, the default is optional.

    \n
  • \n
\n

The default value can also be affected by other combinations of parameters. For more\n information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

" + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n number, the further instance metadata requests can travel. If no parameter is specified,\n the existing state is maintained.

\n

Possible values: Integers from 1 to 64

" + } + }, + "HttpEndpoint": { + "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", + "traits": { + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances. If this parameter is\n not specified, the existing state is maintained.

\n

If you specify a value of disabled, you cannot access your instance\n metadata.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#InstanceMetadataProtocolState", + "traits": { + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service. \n Applies only if you enabled the HTTP metadata endpoint.

" + } + }, + "InstanceMetadataTags": { + "target": "com.amazonaws.ec2#InstanceMetadataTagsState", + "traits": { + "smithy.api#documentation": "

Set to enabled to allow access to instance tags from the instance\n metadata. Set to disabled to turn off access to instance tags from the\n instance metadata. For more information, see View tags for your EC2\n instances using instance metadata.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceMetadataOptionsResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceMetadataOptions": { + "target": "com.amazonaws.ec2#InstanceMetadataOptionsResponse", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMetadataOptions", + "smithy.api#documentation": "

The metadata options for the instance.

", + "smithy.api#xmlName": "instanceMetadataOptions" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceResult" + }, + "traits": { + "smithy.api#documentation": "

Change the configuration of the network performance options for an existing \n instance.

" + } + }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance to update.

", + "smithy.api#required": {} + } + }, + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, as follows:

\n
\n
default
\n
\n

This option uses the standard bandwidth configuration for your instance type.

\n
\n
vpc-1
\n
\n

This option boosts your networking baseline bandwidth and reduces your EBS \n baseline bandwidth.

\n
\n
ebs-1
\n
\n

This option boosts your EBS baseline bandwidth and reduces your networking \n baseline bandwidth.

\n
\n
", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstanceNetworkPerformanceResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The instance ID that was updated.

", + "smithy.api#xmlName": "instanceId" + } + }, + "BandwidthWeighting": { + "target": "com.amazonaws.ec2#InstanceBandwidthWeighting", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeighting", + "smithy.api#documentation": "

Contains the updated configuration for bandwidth weighting on the specified instance.

", + "smithy.api#xmlName": "bandwidthWeighting" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyInstancePlacement": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyInstancePlacementRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyInstancePlacementResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the placement attributes for a specified instance. You can do the\n following:

\n
    \n
  • \n

    Modify the affinity between an instance and a Dedicated\n Host. When affinity is set to host and the instance is\n not associated with a specific Dedicated Host, the next time the instance is\n started, it is automatically associated with the host on which it lands. If the\n instance is restarted or rebooted, this relationship persists.

    \n
  • \n
  • \n

    Change the Dedicated Host with which an instance is associated.

    \n
  • \n
  • \n

    Change the instance tenancy of an instance.

    \n
  • \n
  • \n

    Move an instance to or from a placement\n group.

    \n
  • \n
\n

At least one attribute for affinity, host ID, tenancy, or placement group name must be\n specified in the request. Affinity and tenancy can be modified in the same\n request.

\n

To modify the host ID, tenancy, placement group, or partition for an instance, the\n instance must be in the stopped state.

" + } + }, + "com.amazonaws.ec2#ModifyInstancePlacementRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "smithy.api#documentation": "

The name of the placement group in which to place the instance. For spread placement\n groups, the instance must have a tenancy of default. For cluster and\n partition placement groups, the instance must have a tenancy of default or\n dedicated.

\n

To remove an instance from a placement group, specify an empty string (\"\").

" + } + }, + "PartitionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of the partition in which to place the instance. Valid only if the\n placement group strategy is set to partition.

" + } + }, + "HostResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN of the host resource group in which to place the instance. The instance must\n have a tenancy of host to specify this parameter.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "smithy.api#documentation": "

The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement\n group.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance that you are modifying.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#HostTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy for the instance.

\n \n

For T3 instances, you must launch the instance on a Dedicated Host to use a\n tenancy of host. You can't change the tenancy from\n host to dedicated or default.\n Attempting to make one of these unsupported tenancy changes results in an\n InvalidRequest error code.

\n
", + "smithy.api#xmlName": "tenancy" + } + }, + "Affinity": { + "target": "com.amazonaws.ec2#Affinity", + "traits": { + "aws.protocols#ec2QueryName": "Affinity", + "smithy.api#documentation": "

The affinity setting for the instance. For more information, see Host affinity in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "affinity" + } + }, + "HostId": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

The ID of the Dedicated Host with which to associate the instance.

", + "smithy.api#xmlName": "hostId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyInstancePlacementResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpam": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamResult" + }, + "traits": { + "smithy.api#documentation": "

Modify the configurations of an IPAM.\n

" + } + }, + "com.amazonaws.ec2#ModifyIpamPolicyAllocationRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the allocation rules in an IPAM policy.

\n

An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

" + } + }, + "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPolicyId": { + "target": "com.amazonaws.ec2#IpamPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM policy whose allocation rules you want to modify.

", + "smithy.api#required": {} + } + }, + "Locale": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The locale for which to modify the allocation rules.

", + "smithy.api#required": {} + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#IpamPolicyResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource type for which to modify the allocation rules.

\n

The Amazon Web Services service or resource type that can use IP addresses through IPAM policies. Supported services and resource types include:

\n
    \n
  • \n

    Elastic IP addresses

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "AllocationRules": { + "target": "com.amazonaws.ec2#IpamPolicyAllocationRuleListRequest", + "traits": { + "smithy.api#documentation": "

The new allocation rules to apply to the IPAM policy.

\n

Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses.

", + "smithy.api#xmlName": "AllocationRule" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPolicyAllocationRulesResult": { + "type": "structure", + "members": { + "IpamPolicyDocument": { + "target": "com.amazonaws.ec2#IpamPolicyDocument", + "traits": { + "aws.protocols#ec2QueryName": "IpamPolicyDocument", + "smithy.api#documentation": "

The modified IPAM policy containing the updated allocation rules.

", + "smithy.api#xmlName": "ipamPolicyDocument" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPool": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamPoolRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamPoolResult" + }, + "traits": { + "smithy.api#documentation": "

Modify the configurations of an IPAM pool.

\n

For more information, see Modify a pool in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#ModifyIpamPoolAllocation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamPoolAllocationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamPoolAllocationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the description of an IPAM pool allocation. For more information, see Modify an IPAM pool allocation in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyIpamPoolAllocationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolAllocationId": { + "target": "com.amazonaws.ec2#IpamPoolAllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool allocation you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The new description for the IPAM pool allocation. If you submit a null value, the description is removed from the allocation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPoolAllocationResult": { + "type": "structure", + "members": { + "IpamPoolAllocation": { + "target": "com.amazonaws.ec2#IpamPoolAllocation", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolAllocation", + "smithy.api#documentation": "

The modified IPAM pool allocation.

", + "smithy.api#xmlName": "ipamPoolAllocation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPoolRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the IPAM pool you want to modify.

" + } + }, + "AutoImport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, IPAM will continuously look for resources within the CIDR range of this pool \n and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n

\n

A locale must be set on the pool for this feature to work.

" + } + }, + "AllocationMinNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. Possible \n netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128. The minimum netmask \n length must be less than the maximum netmask length.

" + } + }, + "AllocationMaxNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. Possible \n netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.The maximum netmask \n length must be greater than the minimum netmask length.

" + } + }, + "AllocationDefaultNetmaskLength": { + "target": "com.amazonaws.ec2#IpamNetmaskLength", + "traits": { + "smithy.api#documentation": "

The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.

" + } + }, + "ClearAllocationDefaultNetmaskLength": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Clear the default netmask length allocation rule for this pool.

" + } + }, + "AddAllocationResourceTags": { + "target": "com.amazonaws.ec2#RequestIpamResourceTagList", + "traits": { + "smithy.api#documentation": "

Add tag allocation rules to a pool. For more information about allocation rules, see Create a top-level pool in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "AddAllocationResourceTag" + } + }, + "RemoveAllocationResourceTags": { + "target": "com.amazonaws.ec2#RequestIpamResourceTagList", + "traits": { + "smithy.api#documentation": "

Remove tag allocation rules from a pool.

", + "smithy.api#xmlName": "RemoveAllocationResourceTag" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPoolResult": { + "type": "structure", + "members": { + "IpamPool": { + "target": "com.amazonaws.ec2#IpamPool", + "traits": { + "aws.protocols#ec2QueryName": "IpamPool", + "smithy.api#documentation": "

The results of the modification.

", + "smithy.api#xmlName": "ipamPool" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolverRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolverResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies an IPAM prefix list resolver. You can update the description and CIDR selection rules. Changes to rules will trigger re-evaluation and potential updates to associated prefix lists.

" + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolverRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A new description for the IPAM prefix list resolver.

" + } + }, + "Rules": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverRuleRequestSet", + "traits": { + "smithy.api#documentation": "

The updated CIDR selection rules for the resolver. These rules replace the existing rules entirely.

", + "smithy.api#xmlName": "Rule" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolverResult": { + "type": "structure", + "members": { + "IpamPrefixListResolver": { + "target": "com.amazonaws.ec2#IpamPrefixListResolver", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolver", + "smithy.api#documentation": "

Information about the modified IPAM prefix list resolver.

", + "smithy.api#xmlName": "ipamPrefixListResolver" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolverTarget": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies an IPAM prefix list resolver target. You can update version tracking settings and the desired version of the target prefix list.

" + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPrefixListResolverTargetId": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTargetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM prefix list resolver target to modify.

", + "smithy.api#required": {} + } + }, + "DesiredVersion": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "smithy.api#documentation": "

The desired version of the prefix list to target. This allows you to pin the target to a specific version.

" + } + }, + "TrackLatestVersion": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the resolver target should automatically track the latest version of the prefix list. When enabled, the target will always synchronize with the most current version.

\n

Choose this for automatic updates when you want your prefix lists to stay current with infrastructure changes without manual intervention.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamPrefixListResolverTargetResult": { + "type": "structure", + "members": { + "IpamPrefixListResolverTarget": { + "target": "com.amazonaws.ec2#IpamPrefixListResolverTarget", + "traits": { + "aws.protocols#ec2QueryName": "IpamPrefixListResolverTarget", + "smithy.api#documentation": "

Information about the modified IPAM prefix list resolver target.

", + "smithy.api#xmlName": "ipamPrefixListResolverTarget" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the IPAM you want to modify.

" + } + }, + "AddOperatingRegions": { + "target": "com.amazonaws.ec2#AddIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", + "smithy.api#xmlName": "AddOperatingRegion" + } + }, + "RemoveOperatingRegions": { + "target": "com.amazonaws.ec2#RemoveIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

The operating Regions to remove.

", + "smithy.api#xmlName": "RemoveOperatingRegion" + } + }, + "Tier": { + "target": "com.amazonaws.ec2#IpamTier", + "traits": { + "smithy.api#documentation": "

IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see Amazon VPC pricing > IPAM tab.

" + } + }, + "EnablePrivateGua": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.

" + } + }, + "MeteredAccount": { + "target": "com.amazonaws.ec2#IpamMeteredAccount", + "traits": { + "smithy.api#documentation": "

A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see Enable cost distribution in the Amazon VPC IPAM User Guide.

\n

Possible values:

\n
    \n
  • \n

    \n ipam-owner (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.

    \n
  • \n
  • \n

    \n resource-owner: The Amazon Web Services account that owns the IP address is charged for the active IP address.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamResourceCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamResourceCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamResourceCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Modify a resource CIDR. You can use this action to transfer resource CIDRs between scopes and ignore resource CIDRs that you do not want to manage. If set to false, the resource will not be tracked for overlap, it cannot be auto-imported into a pool, and it will be removed from any pool it has an allocation in.

\n

For more information, see Move resource CIDRs between scopes and Change the monitoring state of resource CIDRs in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyIpamResourceCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the resource you want to modify.

", + "smithy.api#required": {} + } + }, + "ResourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR of the resource you want to modify.

", + "smithy.api#required": {} + } + }, + "ResourceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services Region of the resource you want to modify.

", + "smithy.api#required": {} + } + }, + "CurrentIpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the current scope that the resource CIDR is in.

", + "smithy.api#required": {} + } + }, + "DestinationIpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#documentation": "

The ID of the scope you want to transfer the resource CIDR to.

" + } + }, + "Monitored": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Determines if the resource is monitored by IPAM. If a resource is monitored, the resource is discovered by IPAM and you can view details about the resource’s CIDR.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamResourceCidrResult": { + "type": "structure", + "members": { + "IpamResourceCidr": { + "target": "com.amazonaws.ec2#IpamResourceCidr", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceCidr", + "smithy.api#documentation": "

The CIDR of the resource.

", + "smithy.api#xmlName": "ipamResourceCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamResourceDiscovery": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamResourceDiscoveryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamResourceDiscoveryResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a resource discovery. A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.

" + } + }, + "com.amazonaws.ec2#ModifyIpamResourceDiscoveryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamResourceDiscoveryId": { + "target": "com.amazonaws.ec2#IpamResourceDiscoveryId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A resource discovery ID.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A resource discovery description.

" + } + }, + "AddOperatingRegions": { + "target": "com.amazonaws.ec2#AddIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

Add operating Regions to the resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

", + "smithy.api#xmlName": "AddOperatingRegion" + } + }, + "RemoveOperatingRegions": { + "target": "com.amazonaws.ec2#RemoveIpamOperatingRegionSet", + "traits": { + "smithy.api#documentation": "

Remove operating Regions.

", + "smithy.api#xmlName": "RemoveOperatingRegion" + } + }, + "AddOrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#AddIpamOrganizationalUnitExclusionSet", + "traits": { + "smithy.api#documentation": "

Add an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

\n \n

The resulting set of exclusions must not result in \"overlap\", meaning two or more OU\n exclusions must not exclude the same OU. For more information and examples, see the Amazon Web Services CLI request process in Add or remove OU exclusions\n in the Amazon VPC User Guide.

\n
", + "smithy.api#xmlName": "AddOrganizationalUnitExclusion" + } + }, + "RemoveOrganizationalUnitExclusions": { + "target": "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusionSet", + "traits": { + "smithy.api#documentation": "

Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

\n \n

The resulting set of exclusions must not result in \"overlap\", meaning two or more OU\n exclusions must not exclude the same OU. For more information and examples, see the Amazon Web Services CLI request process in Add or remove OU exclusions\n in the Amazon VPC User Guide.

\n
", + "smithy.api#xmlName": "RemoveOrganizationalUnitExclusion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamResourceDiscoveryResult": { + "type": "structure", + "members": { + "IpamResourceDiscovery": { + "target": "com.amazonaws.ec2#IpamResourceDiscovery", + "traits": { + "aws.protocols#ec2QueryName": "IpamResourceDiscovery", + "smithy.api#documentation": "

A resource discovery.

", + "smithy.api#xmlName": "ipamResourceDiscovery" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamResult": { + "type": "structure", + "members": { + "Ipam": { + "target": "com.amazonaws.ec2#Ipam", + "traits": { + "aws.protocols#ec2QueryName": "Ipam", + "smithy.api#documentation": "

The results of the modification.

", + "smithy.api#xmlName": "ipam" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies an existing routing policy registration. You can update the authorized ASNs, maximum prefix length, and other properties of a Route Origin Authorization (ROA).

" + } + }, + "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamInternetRegistryAssociationId": { + "target": "com.amazonaws.ec2#IpamInternetRegistryAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM internet registry association.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IP address prefix in CIDR notation identifying the routing policy registration to modify.

", + "smithy.api#required": {} + } + }, + "Asns": { + "target": "com.amazonaws.ec2#AsnList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The updated list of Autonomous System Numbers (ASNs) authorized to originate the prefix.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Asn" + } + }, + "PermitMoreSpecificAnnouncements": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to permit more specific route announcements than the CIDR prefix. Default: false.

" + } + }, + "MaxLength": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationMaxLength", + "traits": { + "smithy.api#documentation": "

The new maximum prefix length that the ASNs are authorized to announce. Must be greater than or equal to the prefix length of the CIDR.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A new description for the routing policy registration.

" + } + }, + "Force": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Forces the modification even if it conflicts with an announced route. Default: false.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the operation ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamRoutingPolicyRegistrationResult": { + "type": "structure", + "members": { + "IpamRoutingPolicyRegistrationDelta": { + "target": "com.amazonaws.ec2#IpamRoutingPolicyRegistrationDelta", + "traits": { + "aws.protocols#ec2QueryName": "IpamRoutingPolicyRegistrationDelta", + "smithy.api#documentation": "

Information about the routing policy registration delta created by this modification.

", + "smithy.api#xmlName": "ipamRoutingPolicyRegistrationDelta" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyIpamScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyIpamScopeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyIpamScopeResult" + }, + "traits": { + "smithy.api#documentation": "

Modify an IPAM scope.

" + } + }, + "com.amazonaws.ec2#ModifyIpamScopeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamScopeId": { + "target": "com.amazonaws.ec2#IpamScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the scope you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the scope you want to modify.

" + } + }, + "ExternalAuthorityConfiguration": { + "target": "com.amazonaws.ec2#ExternalAuthorityConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.

\n

In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.

" + } + }, + "RemoveExternalAuthorityConfiguration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Remove the external authority configuration. true to remove.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyIpamScopeResult": { + "type": "structure", + "members": { + "IpamScope": { + "target": "com.amazonaws.ec2#IpamScope", + "traits": { + "aws.protocols#ec2QueryName": "IpamScope", + "smithy.api#documentation": "

The results of the modification.

", + "smithy.api#xmlName": "ipamScope" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyLaunchTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyLaunchTemplateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyLaunchTemplateResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a launch template. You can specify which version of the launch template to\n set as the default version. When launching an instance, the default version applies when\n a launch template version is not specified.

", + "smithy.api#examples": [ + { + "title": "To change the default version of a launch template", + "documentation": "This example specifies version 2 as the default version of the specified launch template.", + "input": { + "LaunchTemplateId": "lt-0abcd290751193123", + "DefaultVersion": "2" + }, + "output": { + "LaunchTemplate": { + "LatestVersionNumber": 2, + "LaunchTemplateId": "lt-0abcd290751193123", + "LaunchTemplateName": "WebServers", + "DefaultVersionNumber": 2, + "CreatedBy": "arn:aws:iam::123456789012:root", + "CreateTime": "2017-12-01T13:35:46.000Z" + } + } + } + ] + } + }, + "com.amazonaws.ec2#ModifyLaunchTemplateRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the\n request. If a client token isn't specified, a randomly generated token is used in the\n request to ensure idempotency.

\n

For more information, see Ensuring\n idempotency.

\n

Constraint: Maximum 128 ASCII characters.

", + "smithy.api#idempotencyToken": {} + } + }, + "LaunchTemplateId": { + "target": "com.amazonaws.ec2#LaunchTemplateId", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.ec2#LaunchTemplateName", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the launch template name, but not\n both.

" + } + }, + "DefaultVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The version number of the launch template to set as the default version.

", + "smithy.api#xmlName": "SetDefaultVersion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyLaunchTemplateResult": { + "type": "structure", + "members": { + "LaunchTemplate": { + "target": "com.amazonaws.ec2#LaunchTemplate", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplate", + "smithy.api#documentation": "

Information about the launch template.

", + "smithy.api#xmlName": "launchTemplate" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyLocalGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyLocalGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyLocalGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified local gateway route.

" + } + }, + "com.amazonaws.ec2#ModifyLocalGatewayRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR block used for destination matches. The value that you provide must match the CIDR of an existing route in the table.

" + } + }, + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#required": {} + } + }, + "LocalGatewayVirtualInterfaceGroupId": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", + "traits": { + "smithy.api#documentation": "

\n The ID of the virtual interface group.\n

" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The ID of the network interface.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the prefix list. Use a prefix list in place of DestinationCidrBlock. You \n cannot use DestinationPrefixListId and DestinationCidrBlock in the same request.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyLocalGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#LocalGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the local gateway route table.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyManagedPrefixList": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyManagedPrefixListRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyManagedPrefixListResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified managed prefix list.

\n

Adding or removing entries in a prefix list creates a new version of the prefix list.\n Changing the name of the prefix list does not affect the version.

\n

If you specify a current version number that does not match the true current version\n number, the request fails.

" + } + }, + "com.amazonaws.ec2#ModifyManagedPrefixListRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "CurrentVersion": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The current version of the prefix list.

" + } + }, + "PrefixListName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A name for the prefix list.

" + } + }, + "AddEntries": { + "target": "com.amazonaws.ec2#AddPrefixListEntries", + "traits": { + "smithy.api#documentation": "

One or more entries to add to the prefix list.

", + "smithy.api#xmlName": "AddEntry" + } + }, + "RemoveEntries": { + "target": "com.amazonaws.ec2#RemovePrefixListEntries", + "traits": { + "smithy.api#documentation": "

One or more entries to remove from the prefix list.

", + "smithy.api#xmlName": "RemoveEntry" + } + }, + "MaxEntries": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of entries for the prefix list. You cannot modify the entries \n of a prefix list and modify the size of a prefix list at the same time.

\n

If any of the resources that reference the prefix list cannot support the new\n maximum size, the modify operation fails. Check the state message for the IDs of \n the first ten resources that do not support the new maximum size.

" + } + }, + "IpamPrefixListResolverSyncEnabled": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether synchronization with an IPAM prefix list resolver should be enabled for this managed prefix list. When enabled, the prefix list CIDRs are automatically updated based on the associated resolver's CIDR selection rules.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyManagedPrefixListResult": { + "type": "structure", + "members": { + "PrefixList": { + "target": "com.amazonaws.ec2#ManagedPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "PrefixList", + "smithy.api#documentation": "

Information about the prefix list.

", + "smithy.api#xmlName": "prefixList" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyManagedResourceVisibility": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyManagedResourceVisibilityRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyManagedResourceVisibilityResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the managed resource visibility configuration for the account. Use this\n operation to control whether managed resources are hidden or visible by default.\n Visibility settings are account-wide and affect all IAM principals uniformly. Hidden\n resources remain fully operational and billable.

" + } + }, + "com.amazonaws.ec2#ModifyManagedResourceVisibilityRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "DefaultVisibility": { + "target": "com.amazonaws.ec2#ManagedResourceDefaultVisibility", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The default visibility setting for managed resources. Valid values:\n hidden | visible.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyManagedResourceVisibilityResult": { + "type": "structure", + "members": { + "Visibility": { + "target": "com.amazonaws.ec2#ManagedResourceVisibilitySettings", + "traits": { + "aws.protocols#ec2QueryName": "Visibility", + "smithy.api#documentation": "

The updated managed resource visibility settings for the account.

", + "smithy.api#xmlName": "visibility" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyNetworkInterfaceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyNetworkInterfaceAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified network interface attribute. You can specify only one attribute\n at a time. You can use this action to attach and detach security groups from an existing\n EC2 instance.

", + "smithy.api#examples": [ + { + "title": "To modify the attachment attribute of a network interface", + "documentation": "This example modifies the attachment attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Attachment": { + "AttachmentId": "eni-attach-43348162", + "DeleteOnTermination": false + } + } + }, + { + "title": "To modify the description attribute of a network interface", + "documentation": "This example modifies the description attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Description": { + "Value": "My description" + } + } + }, + { + "title": "To modify the groupSet attribute of a network interface", + "documentation": "This example command modifies the groupSet attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "Groups": [ + "sg-903004f8", + "sg-1a2b3c4d" + ] + } + }, + { + "title": "To modify the sourceDestCheck attribute of a network interface", + "documentation": "This example command modifies the sourceDestCheck attribute of the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-686ea200", + "SourceDestCheck": { + "Value": false + } + } + } + ] + } + }, + "com.amazonaws.ec2#ModifyNetworkInterfaceAttributeRequest": { + "type": "structure", + "members": { + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#EnaSrdSpecification", + "traits": { + "smithy.api#documentation": "

Updates the ENA Express configuration for the network interface that’s attached to the\n instance.

" + } + }, + "EnablePrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If you’re modifying a network interface in a dual-stack or IPv6-only subnet, you have\n the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA\n address associated with an ENI that you have enabled to use a primary IPv6 address. Use\n this option if the instance that this ENI will be attached to relies on its IPv6 address\n not changing. Amazon Web Services will automatically assign an IPv6 address associated\n with the ENI attached to your instance to be the primary IPv6 address. Once you enable\n an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6\n GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6\n address until the instance is terminated or the network interface is detached. If you\n have multiple IPv6 addresses associated with an ENI attached to your instance and you\n enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI\n becomes the primary IPv6 address.

" + } + }, + "ConnectionTrackingSpecification": { + "target": "com.amazonaws.ec2#ConnectionTrackingSpecificationRequest", + "traits": { + "smithy.api#documentation": "

A connection tracking specification.

" + } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to a network interface. This option\n can be enabled for any network interface but will only apply to the primary network\n interface (eth0).

" + } + }, + "AssociatedSubnetIds": { + "target": "com.amazonaws.ec2#SubnetIdList", + "traits": { + "smithy.api#documentation": "

A list of subnet IDs to associate with the network interface.

", + "smithy.api#xmlName": "AssociatedSubnetId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the network interface.

", + "smithy.api#xmlName": "description" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Enable or disable source/destination checks, which ensure that the instance is either\n the source or the destination of any traffic that it receives. If the value is\n true, source/destination checks are enabled; otherwise, they are\n disabled. The default value is true. You must disable source/destination\n checks if the instance runs services such as network address translation, routing, or\n firewalls.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

Changes the security groups for the network interface. The new set of groups you\n specify replaces the current set. You must specify at least one group, even if it's just\n the default security group in the VPC. You must specify the ID of the security group,\n not the name.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "Attachment": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttachmentChanges", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

Information about the interface attachment. If modifying the delete on\n termination attribute, you must specify the ID of the interface\n attachment.

", + "smithy.api#xmlName": "attachment" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ModifyNetworkInterfaceAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyPrivateDnsNameOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the options for instance hostnames for the specified instance.

" + } + }, + "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "PrivateDnsHostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "smithy.api#documentation": "

The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name\n must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name\n must be based on the instance ID. For dual-stack subnets, you can specify whether DNS\n names use the instance IPv4 address or the instance ID.

" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n records.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyPrivateDnsNameOptionsResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an\n error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyPublicIpDnsNameOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modify public hostname options for a network interface. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsRequest": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A network interface ID.

", + "smithy.api#required": {} + } + }, + "HostnameType": { + "target": "com.amazonaws.ec2#PublicIpDnsOption", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The public hostname type. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

\n
    \n
  • \n

    \n public-dual-stack-dns-name: A dual-stack public hostname for a network interface. Requests from within the VPC resolve to both the private IPv4 address and the IPv6 Global Unicast Address of the network interface. Requests from the internet resolve to both the public IPv4 and the IPv6 GUA address of the network interface.

    \n
  • \n
  • \n

    \n public-ipv4-dns-name: An IPv4-enabled public hostname for a network interface. Requests from within the VPC resolve to the private primary IPv4 address of the network interface. Requests from the internet resolve to the public IPv4 address of the network interface.

    \n
  • \n
  • \n

    \n public-ipv6-dns-name: An IPv6-enabled public hostname for a network interface. Requests from within the VPC or from the internet resolve to the IPv6 GUA of the network interface.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyPublicIpDnsNameOptionsResult": { + "type": "structure", + "members": { + "Successful": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Successful", + "smithy.api#documentation": "

Whether or not the request was successful.

", + "smithy.api#xmlName": "successful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyReservedInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyReservedInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyReservedInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of your Reserved Instances, such as the Availability Zone,\n instance count, or instance type. The Reserved Instances to be modified must be identical,\n except for Availability Zone, network platform, and instance type.

\n

For more information, see Modify Reserved Instances in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyReservedInstancesRequest": { + "type": "structure", + "members": { + "ReservedInstancesIds": { + "target": "com.amazonaws.ec2#ReservedInstancesIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Reserved Instances to modify.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ReservedInstancesId" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

A unique, case-sensitive token you provide to ensure idempotency of your modification\n request. For more information, see Ensuring\n Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "TargetConfigurations": { + "target": "com.amazonaws.ec2#ReservedInstancesConfigurationList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration settings for the Reserved Instances to modify.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ReservedInstancesConfigurationSetItemType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ModifyReservedInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyReservedInstancesResult": { + "type": "structure", + "members": { + "ReservedInstancesModificationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesModificationId", + "smithy.api#documentation": "

The ID for the modification.

", + "smithy.api#xmlName": "reservedInstancesModificationId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of ModifyReservedInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyRouteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyRouteServerRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyRouteServerResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of an existing route server.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

\n

For more information see Dynamic routing in your VPC with VPC Route Server in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyRouteServerRequest": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route server to modify.

", + "smithy.api#required": {} + } + }, + "PersistRoutes": { + "target": "com.amazonaws.ec2#RouteServerPersistRoutesAction", + "traits": { + "smithy.api#documentation": "

Specifies whether to persist routes after all BGP sessions are terminated.

\n
    \n
  • \n

    enable: Routes will be persisted in FIB and RIB after all BGP sessions are terminated.

    \n
  • \n
  • \n

    disable: Routes will not be persisted in FIB and RIB after all BGP sessions are terminated.

    \n
  • \n
  • \n

    reset: If a route server has persisted routes due to all BGP sessions having ended, reset will withdraw all routes and reset route server to an empty FIB and RIB.

    \n
  • \n
" + } + }, + "PersistRoutesDuration": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "smithy.api#documentation": "

The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. Required if PersistRoutes is enabled.

\n

If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.

" + } + }, + "SnsNotificationsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable SNS notifications for route server events. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by Amazon Web Services.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyRouteServerResult": { + "type": "structure", + "members": { + "RouteServer": { + "target": "com.amazonaws.ec2#RouteServer", + "traits": { + "aws.protocols#ec2QueryName": "RouteServer", + "smithy.api#documentation": "

Information about the modified route server.

", + "smithy.api#xmlName": "routeServer" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifySecurityGroupRules": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifySecurityGroupRulesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifySecurityGroupRulesResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the rules of a security group.

" + } + }, + "com.amazonaws.ec2#ModifySecurityGroupRulesRequest": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#required": {} + } + }, + "SecurityGroupRules": { + "target": "com.amazonaws.ec2#SecurityGroupRuleUpdateList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the security group properties to update.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SecurityGroupRule" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifySecurityGroupRulesResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifySnapshotAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifySnapshotAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Adds or removes permission settings for the specified snapshot. You may add or remove\n specified Amazon Web Services account IDs from a snapshot's list of create volume permissions, but you cannot\n do both in a single operation. If you need to both add and remove account IDs for a snapshot,\n you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation.

\n

Encrypted snapshots and snapshots with Amazon Web Services Marketplace product codes cannot be made\n public. Snapshots encrypted with your default KMS key cannot be shared with other accounts.

\n

For more information about modifying snapshot permissions, see Share a snapshot in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To make a snapshot public", + "documentation": "This example makes the snapshot ``snap-1234567890abcdef0`` public.", + "input": { + "SnapshotId": "snap-1234567890abcdef0", + "Attribute": "createVolumePermission", + "OperationType": "add", + "GroupNames": [ + "all" + ] + }, + "output": {} + }, + { + "title": "To modify a snapshot attribute", + "documentation": "This example modifies snapshot ``snap-1234567890abcdef0`` to remove the create volume permission for a user with the account ID ``123456789012``. If the command succeeds, no output is returned.", + "input": { + "SnapshotId": "snap-1234567890abcdef0", + "Attribute": "createVolumePermission", + "OperationType": "remove", + "UserIds": [ + "123456789012" + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ModifySnapshotAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#SnapshotAttributeName", + "traits": { + "smithy.api#documentation": "

The snapshot attribute to modify. Only volume creation permissions can be modified.

" + } + }, + "CreateVolumePermission": { + "target": "com.amazonaws.ec2#CreateVolumePermissionModifications", + "traits": { + "smithy.api#documentation": "

A JSON representation of the snapshot attribute modification.

" + } + }, + "GroupNames": { + "target": "com.amazonaws.ec2#GroupNameStringList", + "traits": { + "smithy.api#documentation": "

The group to modify for the snapshot.

", + "smithy.api#xmlName": "UserGroup" + } + }, + "OperationType": { + "target": "com.amazonaws.ec2#OperationType", + "traits": { + "smithy.api#documentation": "

The type of operation to perform to the attribute.

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#required": {} + } + }, + "UserIds": { + "target": "com.amazonaws.ec2#UserIdStringList", + "traits": { + "smithy.api#documentation": "

The account ID to modify for the snapshot.

", + "smithy.api#xmlName": "UserId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifySnapshotTier": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifySnapshotTierRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifySnapshotTierResult" + }, + "traits": { + "smithy.api#documentation": "

Archives an Amazon EBS snapshot. When you archive a snapshot, it is converted to a full \n snapshot that includes all of the blocks of data that were written to the volume at the \n time the snapshot was created, and moved from the standard tier to the archive \n tier. For more information, see Archive Amazon EBS snapshots \n in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#ModifySnapshotTierRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#required": {} + } + }, + "StorageTier": { + "target": "com.amazonaws.ec2#TargetStorageTier", + "traits": { + "smithy.api#documentation": "

The name of the storage tier. You must specify archive.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifySnapshotTierResult": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "TieringStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "TieringStartTime", + "smithy.api#documentation": "

The date and time when the archive process was started.

", + "smithy.api#xmlName": "tieringStartTime" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifySpotFleetRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifySpotFleetRequestRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifySpotFleetRequestResponse" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Spot Fleet request.

\n

You can only modify a Spot Fleet request of type maintain.

\n

While the Spot Fleet request is being modified, it is in the modifying\n state.

\n

To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the\n additional Spot Instances according to the allocation strategy for the Spot Fleet\n request. If the allocation strategy is lowestPrice, the Spot Fleet launches\n instances using the Spot Instance pool with the lowest price. If the allocation strategy\n is diversified, the Spot Fleet distributes the instances across the Spot\n Instance pools. If the allocation strategy is capacityOptimized, Spot Fleet\n launches instances from Spot Instance pools with optimal capacity for the number of instances\n that are launching.

\n

To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet\n cancels any open requests that exceed the new target capacity. You can request that the\n Spot Fleet terminate Spot Instances until the size of the fleet no longer exceeds the\n new target capacity. If the allocation strategy is lowestPrice, the Spot\n Fleet terminates the instances with the highest price per unit. If the allocation\n strategy is capacityOptimized, the Spot Fleet terminates the instances in\n the Spot Instance pools that have the least available Spot Instance capacity. If the allocation\n strategy is diversified, the Spot Fleet terminates instances across the\n Spot Instance pools. Alternatively, you can request that the Spot Fleet keep the fleet\n at its current size, but not replace any Spot Instances that are interrupted or that you\n terminate manually.

\n

If you are finished with your Spot Fleet for now, but will use it again later, you can\n set the target capacity to 0.

", + "smithy.api#examples": [ + { + "title": "To increase the target capacity of a Spot fleet request", + "documentation": "This example increases the target capacity of the specified Spot fleet request.", + "input": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", + "TargetCapacity": 20 + }, + "output": { + "Return": true + } + } + ] + } + }, + "com.amazonaws.ec2#ModifySpotFleetRequestRequest": { + "type": "structure", + "members": { + "LaunchTemplateConfigs": { + "target": "com.amazonaws.ec2#LaunchTemplateConfigList", + "traits": { + "smithy.api#documentation": "

The launch template and overrides. You can only use this parameter if you specified a\n launch template (LaunchTemplateConfigs) in your Spot Fleet request. If you\n specified LaunchSpecifications in your Spot Fleet request, then omit this\n parameter.

", + "smithy.api#xmlName": "LaunchTemplateConfig" + } + }, + "OnDemandTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of On-Demand Instances in the fleet.

" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Reserved.

" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#SpotFleetRequestId", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "TargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetCapacity", + "smithy.api#documentation": "

The size of the fleet.

", + "smithy.api#xmlName": "targetCapacity" + } + }, + "ExcessCapacityTerminationPolicy": { + "target": "com.amazonaws.ec2#ExcessCapacityTerminationPolicy", + "traits": { + "aws.protocols#ec2QueryName": "ExcessCapacityTerminationPolicy", + "smithy.api#documentation": "

Indicates whether running instances should be terminated if the target capacity\n of the Spot Fleet request is decreased below the current size of the Spot Fleet.

\n

Supported only for fleets of type maintain.

", + "smithy.api#xmlName": "excessCapacityTerminationPolicy" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ModifySpotFleetRequest.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifySpotFleetRequestResponse": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

If the request succeeds, the response returns true. If the request fails,\n no response is returned, and instead an error message is returned.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of ModifySpotFleetRequest.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifySubnetAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifySubnetAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies a subnet attribute. You can only modify one attribute at a time.

\n

Use this action to modify subnets on Amazon Web Services Outposts.

\n
    \n
  • \n

    To modify a subnet on an Outpost rack, set both\n MapCustomerOwnedIpOnLaunch and\n CustomerOwnedIpv4Pool. These two parameters act as a single\n attribute.

    \n
  • \n
  • \n

    To modify a subnet on an Outpost server, set either\n EnableLniAtDeviceIndex or\n DisableLniAtDeviceIndex.

    \n
  • \n
\n

For more information about Amazon Web Services Outposts, see the following:

\n ", + "smithy.api#examples": [ + { + "title": "To change a subnet's public IP addressing behavior", + "documentation": "This example modifies the specified subnet so that all instances launched into this subnet are assigned a public IP address.", + "input": { + "SubnetId": "subnet-1a2b3c4d", + "MapPublicIpOnLaunch": { + "Value": true + } + } + } + ] + } + }, + "com.amazonaws.ec2#ModifySubnetAttributeRequest": { + "type": "structure", + "members": { + "AssignIpv6AddressOnCreation": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Specify true to indicate that network interfaces created in the\n specified subnet should be assigned an IPv6 address. This includes a network interface\n that's created when launching an instance into the subnet (the instance therefore\n receives an IPv6 address).

\n

If you enable the IPv6 addressing feature for your subnet, your network interface\n or instance only receives an IPv6 address if it's created using version\n 2016-11-15 or later of the Amazon EC2 API.

" + } + }, + "MapPublicIpOnLaunch": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Specify true to indicate that network interfaces attached to instances created in the\n specified subnet should be assigned a public IPv4 address.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "subnetId" + } + }, + "MapCustomerOwnedIpOnLaunch": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Specify true to indicate that network interfaces attached to instances created in the\n specified subnet should be assigned a customer-owned IPv4 address.

\n

When this value is true, you must specify the customer-owned IP pool using CustomerOwnedIpv4Pool.

" + } + }, + "CustomerOwnedIpv4Pool": { + "target": "com.amazonaws.ec2#CoipPoolId", + "traits": { + "smithy.api#documentation": "

The customer-owned IPv4 address pool associated with the subnet.

\n

You must set this value when you specify true for MapCustomerOwnedIpOnLaunch.

" + } + }, + "EnableDns64": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet \n should return synthetic IPv6 addresses for IPv4-only destinations.

\n

You must first configure a NAT gateway in a public subnet (separate from the subnet \n containing the IPv6-only workloads). For example, the subnet containing the NAT gateway \n should have a 0.0.0.0/0 route pointing to the internet gateway. For more \n information, see Configure DNS64 and NAT64 in the Amazon VPC User Guide.

" + } + }, + "PrivateDnsHostnameTypeOnLaunch": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "smithy.api#documentation": "

The type of hostname to assign to instances in the subnet at launch. For IPv4-only and dual-stack (IPv4 and IPv6) subnets, an\n instance DNS name can be based on the instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6 only subnets, an instance\n DNS name must be based on the instance ID (resource-name).

" + } + }, + "EnableResourceNameDnsARecordOnLaunch": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A records.

" + } + }, + "EnableResourceNameDnsAAAARecordOnLaunch": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.

" + } + }, + "EnableLniAtDeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

\n Indicates the device position for local network interfaces in this subnet. For example, \n 1 indicates local network interfaces in this subnet are the secondary \n network interface (eth1). A local network interface cannot be the primary network\n interface (eth0).\n

" + } + }, + "DisableLniAtDeviceIndex": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

\n Specify true to indicate that local network interfaces at the current \n position should be disabled. \n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServices": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesResult" + }, + "traits": { + "smithy.api#documentation": "

Allows or restricts mirroring network services.

\n

By default, Amazon DNS network services are not eligible for Traffic Mirror. Use AddNetworkServices to add network services to a Traffic Mirror filter. When a network service is added to the Traffic Mirror filter, all traffic related to that network service will be mirrored.\n When you no longer want to mirror network services, use RemoveNetworkServices to remove the network services from the Traffic Mirror filter.\n

" + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#required": {} + } + }, + "AddNetworkServices": { + "target": "com.amazonaws.ec2#TrafficMirrorNetworkServiceList", + "traits": { + "smithy.api#documentation": "

The network service, for example Amazon DNS, that you want to mirror.

", + "smithy.api#xmlName": "AddNetworkService" + } + }, + "RemoveNetworkServices": { + "target": "com.amazonaws.ec2#TrafficMirrorNetworkServiceList", + "traits": { + "smithy.api#documentation": "

The network service, for example Amazon DNS, that you no longer want to mirror.

", + "smithy.api#xmlName": "RemoveNetworkService" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesResult": { + "type": "structure", + "members": { + "TrafficMirrorFilter": { + "target": "com.amazonaws.ec2#TrafficMirrorFilter", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilter", + "smithy.api#documentation": "

The Traffic Mirror filter that the network service is associated with.

", + "smithy.api#xmlName": "trafficMirrorFilter" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterRule": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Traffic Mirror rule.

\n

\n DestinationCidrBlock and SourceCidrBlock must both be an IPv4\n range or an IPv6 range.

" + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleRequest": { + "type": "structure", + "members": { + "TrafficMirrorFilterRuleId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleIdWithResolver", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror rule.

", + "smithy.api#required": {} + } + }, + "TrafficDirection": { + "target": "com.amazonaws.ec2#TrafficDirection", + "traits": { + "smithy.api#documentation": "

The type of traffic to assign to the rule.

" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given\n direction. The rules are processed in ascending order by rule number.

" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#TrafficMirrorRuleAction", + "traits": { + "smithy.api#documentation": "

The action to assign to the rule.

" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRangeRequest", + "traits": { + "smithy.api#documentation": "

The destination ports that are associated with the Traffic Mirror rule.

" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRangeRequest", + "traits": { + "smithy.api#documentation": "

The port range to assign to the Traffic Mirror rule.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The protocol, for example TCP, to assign to the Traffic Mirror rule.

" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination CIDR block to assign to the Traffic Mirror rule.

" + } + }, + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source CIDR block to assign to the Traffic Mirror rule.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description to assign to the Traffic Mirror rule.

" + } + }, + "RemoveFields": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleFieldList", + "traits": { + "smithy.api#documentation": "

The properties that you want to remove from the Traffic Mirror filter rule.

\n

When you remove a property from a Traffic Mirror filter rule, the property is set to the default.

", + "smithy.api#xmlName": "RemoveField" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorFilterRuleResult": { + "type": "structure", + "members": { + "TrafficMirrorFilterRule": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRule", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterRule", + "smithy.api#documentation": "\n

Tags are not returned for ModifyTrafficMirrorFilterRule.

\n
\n

A Traffic Mirror rule.

", + "smithy.api#xmlName": "trafficMirrorFilterRule" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorSessionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTrafficMirrorSessionResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a Traffic Mirror session.

" + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorSessionRequest": { + "type": "structure", + "members": { + "TrafficMirrorSessionId": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Traffic Mirror session.

", + "smithy.api#required": {} + } + }, + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetId", + "traits": { + "smithy.api#documentation": "

The Traffic Mirror target. The target must be in the same VPC as the source, or have a VPC peering connection with the source.

" + } + }, + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

" + } + }, + "PacketLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of bytes in each packet to mirror. These are bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet.

\n

For sessions with Network Load Balancer (NLB) traffic mirror targets, the default PacketLength will be set to 8500. Valid values are 1-8500. Setting a PacketLength greater than 8500 will result in an error response.

" + } + }, + "SessionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.

\n

Valid values are 1-32766.

" + } + }, + "VirtualNetworkId": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The virtual network ID of the Traffic Mirror session.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description to assign to the Traffic Mirror session.

" + } + }, + "RemoveFields": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionFieldList", + "traits": { + "smithy.api#documentation": "

The properties that you want to remove from the Traffic Mirror session.

\n

When you remove a property from a Traffic Mirror session, the property is set to the default.

", + "smithy.api#xmlName": "RemoveField" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTrafficMirrorSessionResult": { + "type": "structure", + "members": { + "TrafficMirrorSession": { + "target": "com.amazonaws.ec2#TrafficMirrorSession", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorSession", + "smithy.api#documentation": "

Information about the Traffic Mirror session.

", + "smithy.api#xmlName": "trafficMirrorSession" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified transit gateway. When you modify a transit gateway, the modified options are applied to new transit gateway attachments only. Your existing transit gateway attachments are not modified.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the NAT configuration for the specified transit gateway attachment. Use this operation to do the following:

\n
    \n
  • \n

    Enable or disable NAT gateway support for the attachment.

    \n
  • \n
  • \n

    Specify whether the transit gateway installs routes for the NAT CIDRs.

    \n
  • \n
  • \n

    Replace the NAT gateway rules for the attachment.

    \n
  • \n
\n

Only the owner of the transit gateway can modify the NAT configuration.

\n

With NAT gateway support enabled, the transit gateway translates addresses in each rule's MatchSourceCidr range \n to the corresponding addresses in its NatCidr range.

\n

The transit gateway applies changes asynchronously. To check the result, use GetTransitGatewayAttachmentNatConfiguration.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#required": {} + } + }, + "NatGatewaySupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportValue", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable or disable NAT gateway support for the attachment. To enable NAT gateway support, the attachment \n must have at least one NAT gateway rule. You can't modify the NAT configuration while NAT gateway support is enabling \n or disabling. If you omit this parameter, the current value doesn't change.

" + } + }, + "NatSystemRouteSupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatSystemRouteSupportValue", + "traits": { + "smithy.api#documentation": "

Specifies whether the transit gateway installs routes for the NAT CIDRs in the route tables to which the attachment \n propagates. For VPC attachments, the transit gateway always installs these routes. You can enable or disable this option only for \n Amazon Web Services Direct Connect gateway attachments and Site-to-Site VPN attachments that use dynamic routing. For these \n attachments, the default is enable. If you omit this parameter, the current value doesn't change.

" + } + }, + "NatGatewayRules": { + "target": "com.amazonaws.ec2#TransitGatewayNatRuleRequestList", + "traits": { + "smithy.api#documentation": "

The NAT gateway rules for the attachment. The rules that you specify replace all existing NAT gateway rules for the attachment. \n You can specify up to 50 rules for an attachment. If you omit this parameter, the existing rules don't change. \n To remove all rules, use ResetNatGatewayRules.

", + "smithy.api#xmlName": "NatGatewayRule" + } + }, + "ResetNatGatewayRules": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to remove all NAT gateway rules from the attachment. If you omit this parameter, the transit gateway doesn't \n remove any rules. You can't specify this parameter together with NatGatewayRules. Because you can't enable \n NAT gateway support without rules, also set NatGatewaySupport to disable in the same request \n if NAT gateway support is currently enabled.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayAttachmentNatConfigurationResult": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "NatGatewaySupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportState", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewaySupport", + "smithy.api#documentation": "

The state of NAT gateway support for the attachment.

", + "smithy.api#xmlName": "natGatewaySupport" + } + }, + "NatSystemRouteSupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatSystemRouteSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "NatSystemRouteSupport", + "smithy.api#documentation": "

Specifies whether the transit gateway installs routes for the NAT CIDRs in the route tables to which the attachment propagates.

", + "smithy.api#xmlName": "natSystemRouteSupport" + } + }, + "NatGatewayRules": { + "target": "com.amazonaws.ec2#TransitGatewayNatRuleList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayRuleSet", + "smithy.api#documentation": "

The NAT gateway rules for the attachment.

", + "smithy.api#xmlName": "natGatewayRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyRequest": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway metering policy to modify.

", + "smithy.api#required": {} + } + }, + "AddMiddleboxAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of middlebox attachments to add to the metering policy.

", + "smithy.api#xmlName": "AddMiddleboxAttachmentId" + } + }, + "RemoveMiddleboxAttachmentIds": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of middlebox attachments to remove from the metering policy.

", + "smithy.api#xmlName": "RemoveMiddleboxAttachmentId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayMeteringPolicyResult": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicy": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicy", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicy", + "smithy.api#documentation": "

Information about the modified transit gateway metering policy.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicy" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayOptions": { + "type": "structure", + "members": { + "AddTransitGatewayCidrBlocks": { + "target": "com.amazonaws.ec2#TransitGatewayCidrBlockStringList", + "traits": { + "smithy.api#documentation": "

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

" + } + }, + "RemoveTransitGatewayCidrBlocks": { + "target": "com.amazonaws.ec2#TransitGatewayCidrBlockStringList", + "traits": { + "smithy.api#documentation": "

Removes CIDR blocks for the transit gateway.

" + } + }, + "VpnEcmpSupport": { + "target": "com.amazonaws.ec2#VpnEcmpSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable Equal Cost Multipath Protocol support.

" + } + }, + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable DNS support.

" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.\n\n

\n

This option is disabled by default.

\n

For more information about security group referencing, see Security group referencing in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "AutoAcceptSharedAttachments": { + "target": "com.amazonaws.ec2#AutoAcceptSharedAttachmentsValue", + "traits": { + "smithy.api#documentation": "

Enable or disable automatic acceptance of attachment requests.

" + } + }, + "DefaultRouteTableAssociation": { + "target": "com.amazonaws.ec2#DefaultRouteTableAssociationValue", + "traits": { + "smithy.api#documentation": "

Enable or disable automatic association with the default association route table.

" + } + }, + "AssociationDefaultRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#documentation": "

The ID of the default association route table.

" + } + }, + "DefaultRouteTablePropagation": { + "target": "com.amazonaws.ec2#DefaultRouteTablePropagationValue", + "traits": { + "smithy.api#documentation": "

Indicates whether resource attachments automatically propagate routes to the default\n propagation route table. Enabled by default. If defaultRouteTablePropagation\n is set to enable,\n Amazon Web Services Transit Gateway will create the default transit gateway route\n table.

" + } + }, + "PropagationDefaultRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#documentation": "

The ID of the default propagation route table.

" + } + }, + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.

\n

The modify ASN operation is not allowed on a transit gateway if it has the following attachments:

\n
    \n
  • \n

    Dynamic VPN

    \n
  • \n
  • \n

    Static VPN

    \n
  • \n
  • \n

    Direct Connect Gateway

    \n
  • \n
  • \n

    Connect

    \n
  • \n
  • \n

    VPN Concentrator

    \n
  • \n
  • \n

    Client VPN

    \n
  • \n
\n

You must first delete all transit gateway attachments configured prior to modifying the ASN on\n the transit gateway.

" + } + }, + "EncryptionSupport": { + "target": "com.amazonaws.ec2#EncryptionSupportOptionValue", + "traits": { + "smithy.api#documentation": "

Enable or disable encryption support for VPC Encryption Control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The transit gateway options.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified transit gateway policy table entry.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryRequest": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#required": {} + } + }, + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number of the policy table entry to modify.

", + "smithy.api#required": {} + } + }, + "PolicyRule": { + "target": "com.amazonaws.ec2#TransitGatewayRequestPolicyRule", + "traits": { + "smithy.api#documentation": "

The updated matching criteria for the policy table entry. Unspecified fields retain their current values.

" + } + }, + "TargetRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway route table to use for traffic matching this rule.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPolicyTableEntryResult": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableEntry": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntry", + "smithy.api#documentation": "

Describes a transit gateway policy table entry

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntry" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReference": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a reference (route) to a prefix list in a specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment to which traffic is routed.

" + } + }, + "Blackhole": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to drop traffic that matches this route.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayPrefixListReferenceResult": { + "type": "structure", + "members": { + "TransitGatewayPrefixListReference": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReference", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPrefixListReference", + "smithy.api#documentation": "

Information about the prefix list reference.

", + "smithy.api#xmlName": "transitGatewayPrefixListReference" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayRequest": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description for the transit gateway.

" + } + }, + "Options": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayOptions", + "traits": { + "smithy.api#documentation": "

The options to modify.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayResult": { + "type": "structure", + "members": { + "TransitGateway": { + "target": "com.amazonaws.ec2#TransitGateway", + "traits": { + "aws.protocols#ec2QueryName": "TransitGateway", + "smithy.api#documentation": "

Information about the transit gateway.

", + "smithy.api#xmlName": "transitGateway" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified VPC attachment.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "AddSubnetIds": { + "target": "com.amazonaws.ec2#TransitGatewaySubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of one or more subnets to add. You can specify at most one subnet per Availability Zone.

" + } + }, + "RemoveSubnetIds": { + "target": "com.amazonaws.ec2#TransitGatewaySubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of one or more subnets to remove.

" + } + }, + "Options": { + "target": "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentRequestOptions", + "traits": { + "smithy.api#documentation": "

The new VPC attachment options.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentRequestOptions": { + "type": "structure", + "members": { + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable DNS support. The default is enable.

" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.\n\n

\n

This option is disabled by default.

\n

For more information about security group referencing, see Security group referencing in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "Ipv6Support": { + "target": "com.amazonaws.ec2#Ipv6SupportValue", + "traits": { + "smithy.api#documentation": "

Specifies whether IPv6 support is enabled for the attachment. When enabled, the transit gateway network interface receives an IPv6 address. When you enable route propagation, IPv6 VPC CIDRs propagate to the transit gateway route tables. When disabled, the network interface does not receive an IPv6 address, and IPv6 routes do not propagate. The setting does not filter IPv6 traffic.

" + } + }, + "ApplianceModeSupport": { + "target": "com.amazonaws.ec2#ApplianceModeSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable support for appliance mode. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. The default is disable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for a VPC attachment.

" + } + }, + "com.amazonaws.ec2#ModifyTransitGatewayVpcAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachment", + "smithy.api#documentation": "

Information about the modified attachment.

", + "smithy.api#xmlName": "transitGatewayVpcAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of the specified Amazon Web Services Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointCidrOptions": { + "type": "structure", + "members": { + "PortRanges": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CIDR options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointEniOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The IP protocol.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The IP port number.

" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options when modifying a Verified Access endpoint with the\n network-interface type.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointLoadBalancerOptions": { + "type": "structure", + "members": { + "SubnetIds": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "smithy.api#documentation": "

The IP protocol.

" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The IP port number.

" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRangeList", + "traits": { + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "PortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load balancer when creating an Amazon Web Services Verified Access endpoint using the\n load-balancer type.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Amazon Web Services Verified Access endpoint policy.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#required": {} + } + }, + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

The status of the Verified Access policy.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Verified Access policy document.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPolicyResult": { + "type": "structure", + "members": { + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PolicyEnabled", + "smithy.api#documentation": "

The status of the Verified Access policy.

", + "smithy.api#xmlName": "policyEnabled" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The Verified Access policy document.

", + "smithy.api#xmlName": "policyDocument" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SseSpecification", + "smithy.api#documentation": "

The options in use for server side encryption.

", + "smithy.api#xmlName": "sseSpecification" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The start of the port range.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The end of the port range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the port range for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointPortRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointRdsOptions": { + "type": "structure", + "members": { + "SubnetIds": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "SubnetId" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "smithy.api#documentation": "

The port.

" + } + }, + "RdsEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The RDS endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The RDS options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointRequest": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#required": {} + } + }, + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access group.

" + } + }, + "LoadBalancerOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointLoadBalancerOptions", + "traits": { + "smithy.api#documentation": "

The load balancer details if creating the Verified Access endpoint as\n load-balancertype.

" + } + }, + "NetworkInterfaceOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointEniOptions", + "traits": { + "smithy.api#documentation": "

The network interface options.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access endpoint.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "RdsOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointRdsOptions", + "traits": { + "smithy.api#documentation": "

The RDS options.

" + } + }, + "CidrOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessEndpointCidrOptions", + "traits": { + "smithy.api#documentation": "

The CIDR options.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointResult": { + "type": "structure", + "members": { + "VerifiedAccessEndpoint": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpoint", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpoint", + "smithy.api#documentation": "

Details about the Verified Access endpoint.

", + "smithy.api#xmlName": "verifiedAccessEndpoint" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessEndpointSubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroupRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroupResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Amazon Web Services Verified Access group configuration.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified Amazon Web Services Verified Access group policy.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access group.

", + "smithy.api#required": {} + } + }, + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

The status of the Verified Access policy.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Verified Access policy document.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroupPolicyResult": { + "type": "structure", + "members": { + "PolicyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PolicyEnabled", + "smithy.api#documentation": "

The status of the Verified Access policy.

", + "smithy.api#xmlName": "policyEnabled" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The Verified Access policy document.

", + "smithy.api#xmlName": "policyDocument" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SseSpecification", + "smithy.api#documentation": "

The options in use for server side encryption.

", + "smithy.api#xmlName": "sseSpecification" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroupRequest": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access group.

", + "smithy.api#required": {} + } + }, + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the Verified Access instance.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access group.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessGroupResult": { + "type": "structure", + "members": { + "VerifiedAccessGroup": { + "target": "com.amazonaws.ec2#VerifiedAccessGroup", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroup", + "smithy.api#documentation": "

Details about the Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroup" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstanceResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of the specified Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the logging configuration for the specified Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "AccessLogs": { + "target": "com.amazonaws.ec2#VerifiedAccessLogOptions", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration options for Verified Access instances.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstanceLoggingConfigurationResult": { + "type": "structure", + "members": { + "LoggingConfiguration": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceLoggingConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "LoggingConfiguration", + "smithy.api#documentation": "

The logging configuration for the Verified Access instance.

", + "smithy.api#xmlName": "loggingConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstanceRequest": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access instance.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access instance.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "CidrEndpointsCustomSubDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The custom subdomain.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessInstanceResult": { + "type": "structure", + "members": { + "VerifiedAccessInstance": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstance", + "smithy.api#documentation": "

Details about the Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstance" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessNativeApplicationOidcOptions": { + "type": "structure", + "members": { + "PublicSigningKeyEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The public signing key endpoint.

" + } + }, + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC issuer identifier of the IdP.

" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The authorization endpoint of the IdP.

" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token endpoint of the IdP.

" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The user info endpoint of the IdP.

" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OAuth 2.0 client identifier.

" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "smithy.api#documentation": "

The OAuth 2.0 client secret.

" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The set of user claims to be requested from the IdP.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the OpenID Connect (OIDC) options.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessTrustProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of the specified Amazon Web Services Verified Access trust provider.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderDeviceOptions": { + "type": "structure", + "members": { + "PublicSigningKeyUrl": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The URL Amazon Web Services Verified Access will use to verify the authenticity of the device tokens.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Modifies the configuration of the specified device-based Amazon Web Services Verified Access trust provider.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderOidcOptions": { + "type": "structure", + "members": { + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC issuer.

" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC authorization endpoint.

" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC token endpoint.

" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The OIDC user info endpoint.

" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The client identifier.

" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "smithy.api#documentation": "

The client secret.

" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to a user's details. Each scope returns a specific set of user attributes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for an OpenID Connect-compatible user-identity trust provider.

" + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderRequest": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Verified Access trust provider.

", + "smithy.api#required": {} + } + }, + "OidcOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderOidcOptions", + "traits": { + "smithy.api#documentation": "

The options for an OpenID Connect-compatible user-identity trust provider.

" + } + }, + "DeviceOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderDeviceOptions", + "traits": { + "smithy.api#documentation": "

The options for a device-based trust provider. This parameter is required when the\n provider type is device.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the Verified Access trust provider.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive token that you provide to ensure idempotency of your\n modification request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The options for server side encryption.

" + } + }, + "NativeApplicationOidcOptions": { + "target": "com.amazonaws.ec2#ModifyVerifiedAccessNativeApplicationOidcOptions", + "traits": { + "smithy.api#documentation": "

The OpenID Connect (OIDC) options.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVerifiedAccessTrustProviderResult": { + "type": "structure", + "members": { + "VerifiedAccessTrustProvider": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProvider", + "smithy.api#documentation": "

Details about the Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProvider" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVolumeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVolumeResult" + }, + "traits": { + "smithy.api#documentation": "

You can modify several parameters of an existing EBS volume, including volume size, volume\n type, and IOPS capacity. If your EBS volume is attached to a current-generation EC2 instance\n type, you might be able to apply these changes without stopping the instance or detaching the\n volume from it. For more information about modifying EBS volumes, see Amazon EBS Elastic Volumes \n in the Amazon EBS User Guide.

\n

When you complete a resize operation on your volume, you need to extend the volume's\n file-system size to take advantage of the new storage capacity. For more information, see Extend the file system.

\n

For more information, see Monitor the progress of volume modifications in the Amazon EBS User Guide.

\n

With previous-generation instance types, resizing an EBS volume might require detaching and\n reattaching the volume or stopping and restarting the instance.

\n

After you initiate a volume modification, you must wait for that modification to reach the \n completed state before you can initiate another modification for the same volume. \n You can modify a volume up to four times within a rolling 24-hour period, as long as the volume \n is in the in-use or available state, and all previous modifications \n for that volume are completed. If you exceed this limit, you get an error message \n that indicates when you can perform your next modification.

" + } + }, + "com.amazonaws.ec2#ModifyVolumeAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVolumeAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies a volume attribute.

\n

By default, all I/O operations for the volume are suspended when the data on the volume is\n determined to be potentially inconsistent, to prevent undetectable, latent data corruption.\n The I/O access to the volume can be resumed by first enabling I/O access and then checking the\n data consistency on your volume.

\n

You can change the default behavior to resume I/O operations. We recommend that you change\n this only for boot volumes or for volumes that are stateless or disposable.

", + "smithy.api#examples": [ + { + "title": "To modify a volume attribute", + "documentation": "This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.", + "input": { + "DryRun": true, + "VolumeId": "vol-1234567890abcdef0", + "AutoEnableIO": { + "Value": true + } + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ModifyVolumeAttributeRequest": { + "type": "structure", + "members": { + "AutoEnableIO": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume should be auto-enabled for I/O operations.

" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVolumeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#required": {} + } + }, + "Size": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The target size of the volume, in GiB. The target volume size must be greater than or\n equal to the existing size of the volume.

\n

The following are the supported volumes sizes for each volume type:

\n
    \n
  • \n

    \n gp2: 1 - 16,384 GiB

    \n
  • \n
  • \n

    \n gp3: 1 - 65,536 GiB

    \n
  • \n
  • \n

    \n io1: 4 - 16,384 GiB

    \n
  • \n
  • \n

    \n io2: 4 - 65,536 GiB

    \n
  • \n
  • \n

    \n st1 and sc1: 125 - 16,384 GiB

    \n
  • \n
  • \n

    \n standard: 1 - 1024 GiB

    \n
  • \n
\n

Default: The existing size is retained.

" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "smithy.api#documentation": "

The target EBS volume type of the volume. For more information, see Amazon EBS volume types in the Amazon EBS User Guide.

\n

Default: The existing type is retained.

" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The target IOPS rate of the volume. This parameter is valid only for gp3, io1, and io2 volumes.

\n

The following are the supported values for each volume type:

\n
    \n
  • \n

    \n gp3: 3,000 - 80,000 IOPS

    \n
  • \n
  • \n

    \n io1: 100 - 64,000 IOPS

    \n
  • \n
  • \n

    \n io2: 100 - 256,000 IOPS

    \n
  • \n
\n \n

\n \nInstances built on the Nitro System can support up to 256,000 IOPS. Other instances can support up to 32,000 \nIOPS.

\n
\n

Default: The existing value is retained if you keep the same volume type. If you change\n the volume type to io1, io2, or gp3, the default is 3,000.

" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The target throughput of the volume, in MiB/s. This parameter is valid only for gp3 volumes. \n The maximum value is 2,000.

\n

Default: The existing value is retained if the source and target volume type is gp3.\n Otherwise, the default value is 125.

\n

Valid Range: Minimum value of 125. Maximum value of 2,000.

" + } + }, + "MultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the \n\t volume to up to 16 \n\t\t\tNitro-based instances in the same Availability Zone. This parameter is \n\t\tsupported with io1 and io2 volumes only. For more information, see \n\t \n\t\t\tAmazon EBS Multi-Attach in the Amazon EBS User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVolumeResult": { + "type": "structure", + "members": { + "VolumeModification": { + "target": "com.amazonaws.ec2#VolumeModification", + "traits": { + "aws.protocols#ec2QueryName": "VolumeModification", + "smithy.api#documentation": "

Information about the volume modification.

", + "smithy.api#xmlName": "volumeModification" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Modifies the specified attribute of the specified VPC.

", + "smithy.api#examples": [ + { + "title": "To modify the enableDnsSupport attribute", + "documentation": "This example modifies the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for instances in the VPC to their corresponding IP addresses; otherwise, it does not.", + "input": { + "VpcId": "vpc-a01106c2", + "EnableDnsSupport": { + "Value": false + } + } + }, + { + "title": "To modify the enableDnsHostnames attribute", + "documentation": "This example modifies the enableDnsHostnames attribute. This attribute indicates whether instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.", + "input": { + "VpcId": "vpc-a01106c2", + "EnableDnsHostnames": { + "Value": false + } + } + } + ] + } + }, + "com.amazonaws.ec2#ModifyVpcAttributeRequest": { + "type": "structure", + "members": { + "EnableDnsHostnames": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

\n

You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute. You can only enable DNS hostnames if you've enabled DNS support.

" + } + }, + "EnableDnsSupport": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to\n\t\t\tthe Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP\n\t\t\taddress at the base of the VPC network range \"plus two\" succeed. If disabled, the Amazon\n\t\t\tprovided DNS service in the VPC that resolves public DNS hostnames to IP addresses is\n\t\t\tnot enabled.

\n

You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute.

" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcId" + } + }, + "EnableNetworkAddressUsageMetrics": { + "target": "com.amazonaws.ec2#AttributeBooleanValue", + "traits": { + "smithy.api#documentation": "

Indicates whether Network Address Usage metrics are enabled for your VPC.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusion": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionResult" + }, + "traits": { + "smithy.api#documentation": "

Modify VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that exempts it from the account’s BPA mode and will allow bidirectional or egress-only access. You can create BPA exclusions for VPCs and subnets even when BPA is not enabled on the account to ensure that there is no traffic disruption to the exclusions when VPC BPA is turned on.

" + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ExclusionId": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of an exclusion.

", + "smithy.api#required": {} + } + }, + "InternetGatewayExclusionMode": { + "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n
    \n
  • \n

    \n allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets.

    \n
  • \n
  • \n

    \n allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessExclusionResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessExclusion": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessExclusion", + "smithy.api#documentation": "

Details related to the exclusion.

", + "smithy.api#xmlName": "vpcBlockPublicAccessExclusion" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modify VPC Block Public Access (BPA) options. VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InternetGatewayBlockMode": { + "target": "com.amazonaws.ec2#InternetGatewayBlockMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The mode of VPC BPA.

\n
    \n
  • \n

    \n off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region.

    \n
  • \n
  • \n

    \n block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets).

    \n
  • \n
  • \n

    \n block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcBlockPublicAccessOptionsResult": { + "type": "structure", + "members": { + "VpcBlockPublicAccessOptions": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessOptions", + "traits": { + "aws.protocols#ec2QueryName": "VpcBlockPublicAccessOptions", + "smithy.api#documentation": "

Details related to the VPC Block Public Access (BPA) options.

", + "smithy.api#xmlName": "vpcBlockPublicAccessOptions" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEncryptionControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEncryptionControlRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEncryptionControlResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the encryption control configuration for a VPC. You can update the encryption mode and exclusion settings for various gateway types and peering connections.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEncryptionControlRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEncryptionControlId": { + "target": "com.amazonaws.ec2#VpcEncryptionControlId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC Encryption Control resource to modify.

", + "smithy.api#required": {} + } + }, + "Mode": { + "target": "com.amazonaws.ec2#VpcEncryptionControlMode", + "traits": { + "smithy.api#documentation": "

The encryption mode for the VPC Encryption Control configuration.

" + } + }, + "InternetGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude internet gateway traffic from encryption enforcement.

" + } + }, + "EgressOnlyInternetGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude egress-only internet gateway traffic from encryption enforcement.

" + } + }, + "NatGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude NAT gateway traffic from encryption enforcement.

" + } + }, + "VirtualPrivateGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude virtual private gateway traffic from encryption enforcement.

" + } + }, + "VpcPeeringExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC peering connection traffic from encryption enforcement.

" + } + }, + "LambdaExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Lambda function traffic from encryption enforcement.

" + } + }, + "VpcLatticeExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC Lattice traffic from encryption enforcement.

" + } + }, + "ElasticFileSystemExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Elastic File System traffic from encryption enforcement.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEncryptionControlResult": { + "type": "structure", + "members": { + "VpcEncryptionControl": { + "target": "com.amazonaws.ec2#VpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "VpcEncryptionControl", + "smithy.api#documentation": "

Information about the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "vpcEncryptionControl" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies attributes of a specified VPC endpoint. The attributes that you can modify\n depend on the type of VPC endpoint (interface, gateway, or Gateway Load Balancer). For more information, \n see the Amazon Web Services PrivateLink \n Guide.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a connection notification for VPC endpoint or VPC endpoint service. You\n can change the SNS topic for the notification, or the events for which to be notified.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ConnectionNotificationId": { + "target": "com.amazonaws.ec2#ConnectionNotificationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the notification.

", + "smithy.api#required": {} + } + }, + "ConnectionNotificationArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ARN for the SNS topic for the notification.

" + } + }, + "ConnectionEvents": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The events for the endpoint. Valid values are Accept,\n Connect, Delete, and Reject.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointConnectionNotificationResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibility": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the billing account for VPC endpoint usage/charges.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#documentation": "

The ID of the VPC endpoint service.

" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC endpoint.

", + "smithy.api#required": {} + } + }, + "PayerResponsibility": { + "target": "com.amazonaws.ec2#PayerResponsibilityType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services account to which the usage of VPC endpoint is charged.

", + "smithy.api#required": {} + } + }, + "Scope": { + "target": "com.amazonaws.ec2#PayerResponsibilityScope", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The scope of usage/charges for which the billing account is being modified.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointPayerResponsibilityResult": { + "type": "structure", + "members": { + "VpcEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The ID of the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "PayerResponsibilities": { + "target": "com.amazonaws.ec2#PayerResponsibilitySet", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibilitySet", + "smithy.api#documentation": "

The payer responsibility settings for the VPC endpoint.

", + "smithy.api#xmlName": "payerResponsibilitySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the endpoint.

", + "smithy.api#required": {} + } + }, + "ResetPolicy": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

(Gateway endpoint) Specify true to reset the policy document to the\n default policy. The default policy allows full access to the service.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

(Interface and gateway endpoints) A policy to attach to the endpoint that controls access to the service. The policy must\n be in valid JSON format.

" + } + }, + "AddRouteTableIds": { + "target": "com.amazonaws.ec2#VpcEndpointRouteTableIdList", + "traits": { + "smithy.api#documentation": "

(Gateway endpoint) The IDs of the route tables to associate with the endpoint.

", + "smithy.api#xmlName": "AddRouteTableId" + } + }, + "RemoveRouteTableIds": { + "target": "com.amazonaws.ec2#VpcEndpointRouteTableIdList", + "traits": { + "smithy.api#documentation": "

(Gateway endpoint) The IDs of the route tables to disassociate from the endpoint.

", + "smithy.api#xmlName": "RemoveRouteTableId" + } + }, + "AddSubnetIds": { + "target": "com.amazonaws.ec2#VpcEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

(Interface and Gateway Load Balancer endpoints) The IDs of the subnets in which to serve the endpoint. \n For a Gateway Load Balancer endpoint, you can specify only one subnet.

", + "smithy.api#xmlName": "AddSubnetId" + } + }, + "RemoveSubnetIds": { + "target": "com.amazonaws.ec2#VpcEndpointSubnetIdList", + "traits": { + "smithy.api#documentation": "

(Interface endpoint) The IDs of the subnets from which to remove the endpoint.

", + "smithy.api#xmlName": "RemoveSubnetId" + } + }, + "AddSecurityGroupIds": { + "target": "com.amazonaws.ec2#VpcEndpointSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

(Interface endpoint) The IDs of the security groups to associate with the endpoint network interfaces.

", + "smithy.api#xmlName": "AddSecurityGroupId" + } + }, + "RemoveSecurityGroupIds": { + "target": "com.amazonaws.ec2#VpcEndpointSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

(Interface endpoint) The IDs of the security groups to disassociate from the endpoint network interfaces.

", + "smithy.api#xmlName": "RemoveSecurityGroupId" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the endpoint.

" + } + }, + "DnsOptions": { + "target": "com.amazonaws.ec2#DnsOptionsSpecification", + "traits": { + "smithy.api#documentation": "

The DNS options for the endpoint.

" + } + }, + "PrivateDnsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

(Interface endpoint) Indicates whether a private hosted zone is associated with the VPC.

" + } + }, + "SubnetConfigurations": { + "target": "com.amazonaws.ec2#SubnetConfigurationsList", + "traits": { + "smithy.api#documentation": "

The subnet configurations for the endpoint.

", + "smithy.api#xmlName": "SubnetConfiguration" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServiceConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the attributes of the specified VPC endpoint service configuration.

\n

If you set or modify the private DNS name, you must prove that you own the private DNS\n domain name.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#required": {} + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

(Interface endpoint configuration) The private DNS name to assign to the endpoint service.

" + } + }, + "RemovePrivateDnsName": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

(Interface endpoint configuration) Removes the private DNS name of the endpoint service.

" + } + }, + "AcceptanceRequired": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether requests to create an endpoint to the service must be accepted.

" + } + }, + "AddNetworkLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Network Load Balancers to add to the service\n configuration.

", + "smithy.api#xmlName": "AddNetworkLoadBalancerArn" + } + }, + "RemoveNetworkLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Network Load Balancers to remove from the service\n configuration.

", + "smithy.api#xmlName": "RemoveNetworkLoadBalancerArn" + } + }, + "AddGatewayLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Gateway Load Balancers to add to the service configuration.

", + "smithy.api#xmlName": "AddGatewayLoadBalancerArn" + } + }, + "RemoveGatewayLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of Gateway Load Balancers to remove from the service configuration.

", + "smithy.api#xmlName": "RemoveGatewayLoadBalancerArn" + } + }, + "AddSupportedIpAddressTypes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IP address types to add to the service configuration.

", + "smithy.api#xmlName": "AddSupportedIpAddressType" + } + }, + "RemoveSupportedIpAddressTypes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IP address types to remove from the service configuration.

", + "smithy.api#xmlName": "RemoveSupportedIpAddressType" + } + }, + "AddSupportedRegions": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The supported Regions to add to the service configuration.

", + "smithy.api#xmlName": "AddSupportedRegion" + } + }, + "RemoveSupportedRegions": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The supported Regions to remove from the service configuration.

", + "smithy.api#xmlName": "RemoveSupportedRegion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServiceConfigurationResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibility": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the payer responsibility for your VPC endpoint service.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#required": {} + } + }, + "PayerResponsibility": { + "target": "com.amazonaws.ec2#PayerResponsibility", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The entity that is responsible for the endpoint costs. The default is the endpoint owner.\n If you set the payer responsibility to the service owner, you cannot set it back to the\n endpoint owner.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePayerResponsibilityResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the permissions for your VPC endpoint service. You can add or remove permissions\n for service consumers (Amazon Web Services accounts, users, and IAM roles) to connect to\n your endpoint service. Principal ARNs with path components aren't supported.

\n

If you grant permissions to all principals, the service is public. Any users who know the name of a\n\t public service can send a request to attach an endpoint. If the service does not require manual approval,\n\t attachments are automatically approved.

" + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#required": {} + } + }, + "AddAllowedPrincipals": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the principals.\n\t Permissions are granted to the principals in this list.\n\t To grant permissions to all principals, specify an asterisk (*).

" + } + }, + "RemoveAllowedPrincipals": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the principals.\n\t Permissions are revoked for principals in this list.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsResult": { + "type": "structure", + "members": { + "AddedPrincipals": { + "target": "com.amazonaws.ec2#AddedPrincipalSet", + "traits": { + "aws.protocols#ec2QueryName": "AddedPrincipalSet", + "smithy.api#documentation": "

Information about the added principals.

", + "smithy.api#xmlName": "addedPrincipalSet" + } + }, + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the VPC peering connection options on one side of a VPC peering connection.

\n

If the peered VPCs are in the same Amazon Web Services account, you can enable DNS\n resolution for queries from the local VPC. This ensures that queries from the local VPC\n resolve to private IP addresses in the peer VPC. This option is not available if the\n peered VPCs are in different Amazon Web Services accounts or different Regions. For\n peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account\n owner must initiate a separate request to modify the peering connection options. For\n inter-region peering connections, you must use the Region for the requester VPC to\n modify the requester VPC peering options and the Region for the accepter VPC to modify\n the accepter VPC peering options. To verify which VPCs are the accepter and the\n requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

" + } + }, + "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsRequest": { + "type": "structure", + "members": { + "AccepterPeeringConnectionOptions": { + "target": "com.amazonaws.ec2#PeeringConnectionOptionsRequest", + "traits": { + "smithy.api#documentation": "

The VPC peering connection options for the accepter VPC.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "RequesterPeeringConnectionOptions": { + "target": "com.amazonaws.ec2#PeeringConnectionOptionsRequest", + "traits": { + "smithy.api#documentation": "

The VPC peering connection options for the requester VPC.

" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC peering connection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsResult": { + "type": "structure", + "members": { + "AccepterPeeringConnectionOptions": { + "target": "com.amazonaws.ec2#PeeringConnectionOptions", + "traits": { + "aws.protocols#ec2QueryName": "AccepterPeeringConnectionOptions", + "smithy.api#documentation": "

Information about the VPC peering connection options for the accepter VPC.

", + "smithy.api#xmlName": "accepterPeeringConnectionOptions" + } + }, + "RequesterPeeringConnectionOptions": { + "target": "com.amazonaws.ec2#PeeringConnectionOptions", + "traits": { + "aws.protocols#ec2QueryName": "RequesterPeeringConnectionOptions", + "smithy.api#documentation": "

Information about the VPC peering connection options for the requester VPC.

", + "smithy.api#xmlName": "requesterPeeringConnectionOptions" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpcTenancy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpcTenancyRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpcTenancyResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the instance tenancy attribute of the specified VPC. You can change the\n instance tenancy attribute of a VPC to default only. You cannot change the\n instance tenancy attribute to dedicated.

\n

After you modify the tenancy of the VPC, any new instances that you launch into the\n VPC have a tenancy of default, unless you specify otherwise during launch.\n The tenancy of any existing instances in the VPC is not affected.

\n

For more information, see Dedicated Instances in the\n\t\t\t\tAmazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyVpcTenancyRequest": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#required": {} + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#VpcTenancy", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance tenancy attribute for the VPC.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpcTenancyResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an\n error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpnConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpnConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpnConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the customer gateway or the target gateway of an Amazon Web Services Site-to-Site VPN connection. To\n modify the target gateway, the following migration options are available:

\n
    \n
  • \n

    An existing virtual private gateway to a new virtual private gateway

    \n
  • \n
  • \n

    An existing virtual private gateway to a transit gateway

    \n
  • \n
  • \n

    An existing transit gateway to a new transit gateway

    \n
  • \n
  • \n

    An existing transit gateway to a virtual private gateway

    \n
  • \n
\n

Before you perform the migration to the new gateway, you must configure the new\n gateway. Use CreateVpnGateway to create a virtual private gateway, or\n CreateTransitGateway to create a transit gateway.

\n

This step is required when you migrate from a virtual private gateway with static\n routes to a transit gateway.

\n

You must delete the static routes before you migrate to the new gateway.

\n

Keep a copy of the static route before you delete it. You will need to add back these\n routes to the transit gateway after the VPN connection migration is complete.

\n

After you migrate to the new gateway, you might need to modify your VPC route table.\n Use CreateRoute and DeleteRoute to make the changes\n described in Update VPC route\n tables in the Amazon Web Services Site-to-Site VPN User Guide.

\n

When the new gateway is a transit gateway, modify the transit gateway route table to\n allow traffic between the VPC and the Amazon Web Services Site-to-Site VPN connection.\n Use CreateTransitGatewayRoute to add the routes.

\n

If you deleted VPN static routes, you must add the static routes to the transit\n gateway route table.

\n

After you perform this operation, the VPN endpoint's IP addresses on the Amazon Web Services side and the tunnel options remain intact. Your Amazon Web Services Site-to-Site VPN connection will\n be temporarily unavailable for a brief period while we provision the new\n endpoints.

" + } + }, + "com.amazonaws.ec2#ModifyVpnConnectionOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpnConnectionOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpnConnectionOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the connection options for your Site-to-Site VPN connection.

\n

When you modify the VPN connection options, the VPN endpoint IP addresses on the\n Amazon Web Services side do not change, and the tunnel options do not change. Your\n VPN connection will be temporarily unavailable for a brief period while the VPN\n connection is updated.

" + } + }, + "com.amazonaws.ec2#ModifyVpnConnectionOptionsRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Site-to-Site VPN connection.

", + "smithy.api#required": {} + } + }, + "LocalIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.

\n

Default: 0.0.0.0/0\n

" + } + }, + "RemoteIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR on the Amazon Web Services side of the VPN connection.

\n

Default: 0.0.0.0/0\n

" + } + }, + "LocalIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.

\n

Default: ::/0\n

" + } + }, + "RemoteIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR on the Amazon Web Services side of the VPN connection.

\n

Default: ::/0\n

" + } + }, + "TunnelBandwidth": { + "target": "com.amazonaws.ec2#VpnTunnelBandwidth", + "traits": { + "smithy.api#documentation": "

The desired bandwidth specification for the VPN connection. standard supports up to 1.25 Gbps per tunnel, while large supports up to 5 Gbps per tunnel. Large bandwidth is only available for VPN connections attached to a transit gateway or to Cloud WAN. The default value is standard.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpnConnectionOptionsResult": { + "type": "structure", + "members": { + "VpnConnection": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

Information about the VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpnConnectionRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPN connection.

", + "smithy.api#required": {} + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway.

" + } + }, + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#CustomerGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the customer gateway at your end of the VPN connection.

" + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the virtual private gateway at the Amazon Web Services side of the VPN\n connection.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpnConnectionResult": { + "type": "structure", + "members": { + "VpnConnection": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

Information about the VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpnTunnelCertificateRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpnTunnelCertificateResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the VPN tunnel endpoint certificate.

" + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelCertificateRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon Web Services Site-to-Site VPN connection.

", + "smithy.api#required": {} + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelCertificateResult": { + "type": "structure", + "members": { + "VpnConnection": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

Information about the VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyVpnTunnelOptionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyVpnTunnelOptionsResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies the options for a VPN tunnel in an Amazon Web Services Site-to-Site VPN connection. You can modify\n multiple options for a tunnel in a single request, but you can only modify one tunnel at\n a time. For more information, see Site-to-Site VPN tunnel options for your Site-to-Site VPN\n connection in the Amazon Web Services Site-to-Site VPN User Guide.

" + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelOptionsRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon Web Services Site-to-Site VPN connection.

", + "smithy.api#required": {} + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#required": {} + } + }, + "TunnelOptions": { + "target": "com.amazonaws.ec2#ModifyVpnTunnelOptionsSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The tunnel options to modify.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

" + } + }, + "SkipTunnelReplacement": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Choose whether or not to trigger immediate tunnel replacement. This is only applicable when turning on or off EnableTunnelLifecycleControl.

\n

Valid values: True | False\n

" + } + }, + "PreSharedKeyStorage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage mode for the pre-shared key (PSK). Valid values are Standard (stored in Site-to-Site VPN service) or SecretsManager (stored in Amazon Web Services Secrets Manager).

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelOptionsResult": { + "type": "structure", + "members": { + "VpnConnection": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnection", + "smithy.api#documentation": "

Information about the VPN connection.

", + "smithy.api#xmlName": "vpnConnection" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ModifyVpnTunnelOptionsSpecification": { + "type": "structure", + "members": { + "TunnelInsideCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The range of inside IPv4 addresses for the tunnel. Any specified CIDR blocks must be\n unique across all VPN connections that use the same virtual private gateway.

\n

Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The\n following CIDR blocks are reserved and cannot be used:

\n
    \n
  • \n

    \n 169.254.0.0/30\n

    \n
  • \n
  • \n

    \n 169.254.1.0/30\n

    \n
  • \n
  • \n

    \n 169.254.2.0/30\n

    \n
  • \n
  • \n

    \n 169.254.3.0/30\n

    \n
  • \n
  • \n

    \n 169.254.4.0/30\n

    \n
  • \n
  • \n

    \n 169.254.5.0/30\n

    \n
  • \n
  • \n

    \n 169.254.169.252/30\n

    \n
  • \n
" + } + }, + "TunnelInsideIpv6Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must be\n unique across all VPN connections that use the same transit gateway.

\n

Constraints: A size /126 CIDR block from the local fd00::/8 range.

" + } + }, + "PreSharedKey": { + "target": "com.amazonaws.ec2#preSharedKey", + "traits": { + "smithy.api#documentation": "

The pre-shared key (PSK) to establish initial authentication between the virtual\n private gateway and the customer gateway.

\n

Constraints: Allowed characters are alphanumeric characters, periods (.), and\n underscores (_). Must be between 8 and 64 characters in length and cannot start with\n zero (0).

" + } + }, + "Phase1LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 1 of the IKE negotiation, in seconds.

\n

Constraints: A value between 900 and 28,800.

\n

Default: 28800\n

" + } + }, + "Phase2LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 2 of the IKE negotiation, in seconds.

\n

Constraints: A value between 900 and 3,600. The value must be less than the value for\n Phase1LifetimeSeconds.

\n

Default: 3600\n

" + } + }, + "RekeyMarginTimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The margin time, in seconds, before the phase 2 lifetime expires, during which the\n Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time\n of the rekey is randomly selected based on the value for\n RekeyFuzzPercentage.

\n

Constraints: A value between 60 and half of Phase2LifetimeSeconds.

\n

Default: 270\n

" + } + }, + "RekeyFuzzPercentage": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of the rekey window (determined by RekeyMarginTimeSeconds)\n during which the rekey time is randomly selected.

\n

Constraints: A value between 0 and 100.

\n

Default: 100\n

" + } + }, + "ReplayWindowSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of packets in an IKE replay window.

\n

Constraints: A value between 64 and 2048.

\n

Default: 1024\n

" + } + }, + "DPDTimeoutSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds after which a DPD timeout occurs. A DPD timeout of 40 seconds means that the VPN endpoint will consider the peer dead 30 seconds after the first failed keep-alive.

\n

Constraints: A value greater than or equal to 30.

\n

Default: 40\n

" + } + }, + "DPDTimeoutAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The action to take after DPD timeout occurs. Specify restart to restart\n the IKE initiation. Specify clear to end the IKE session.

\n

Valid Values: clear | none | restart\n

\n

Default: clear\n

" + } + }, + "Phase1EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase1EncryptionAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more encryption algorithms that are permitted for the VPN tunnel for phase 1\n IKE negotiations.

\n

Valid values: AES128 | AES256 | AES128-GCM-16 |\n AES256-GCM-16\n

", + "smithy.api#xmlName": "Phase1EncryptionAlgorithm" + } + }, + "Phase2EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase2EncryptionAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more encryption algorithms that are permitted for the VPN tunnel for phase 2\n IKE negotiations.

\n

Valid values: AES128 | AES256 | AES128-GCM-16 |\n AES256-GCM-16\n

", + "smithy.api#xmlName": "Phase2EncryptionAlgorithm" + } + }, + "Phase1IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase1IntegrityAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE\n negotiations.

\n

Valid values: SHA1 | SHA2-256 | SHA2-384 |\n SHA2-512\n

", + "smithy.api#xmlName": "Phase1IntegrityAlgorithm" + } + }, + "Phase2IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase2IntegrityAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE\n negotiations.

\n

Valid values: SHA1 | SHA2-256 | SHA2-384 |\n SHA2-512\n

", + "smithy.api#xmlName": "Phase2IntegrityAlgorithm" + } + }, + "Phase1DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase1DHGroupNumbersRequestList", + "traits": { + "smithy.api#documentation": "

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for\n phase 1 IKE negotiations.

\n

Valid values: 2 | 14 | 15 | 16 |\n 17 | 18 | 19 | 20 |\n 21 | 22 | 23 | 24\n

", + "smithy.api#xmlName": "Phase1DHGroupNumber" + } + }, + "Phase2DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase2DHGroupNumbersRequestList", + "traits": { + "smithy.api#documentation": "

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for\n phase 2 IKE negotiations.

\n

Valid values: 2 | 5 | 14 | 15 |\n 16 | 17 | 18 | 19 |\n 20 | 21 | 22 | 23 |\n 24\n

", + "smithy.api#xmlName": "Phase2DHGroupNumber" + } + }, + "IKEVersions": { + "target": "com.amazonaws.ec2#IKEVersionsRequestList", + "traits": { + "smithy.api#documentation": "

The IKE versions that are permitted for the VPN tunnel.

\n

Valid values: ikev1 | ikev2\n

", + "smithy.api#xmlName": "IKEVersion" + } + }, + "StartupAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The action to take when the establishing the tunnel for the VPN connection. By\n default, your customer gateway device must initiate the IKE negotiation and bring up the\n tunnel. Specify start for Amazon Web Services to initiate the IKE\n negotiation.

\n

Valid Values: add | start\n

\n

Default: add\n

" + } + }, + "LogOptions": { + "target": "com.amazonaws.ec2#VpnTunnelLogOptionsSpecification", + "traits": { + "smithy.api#documentation": "

Options for logging VPN tunnel activity.

" + } + }, + "EnableTunnelLifecycleControl": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Turn on or off tunnel endpoint lifecycle control feature.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Site-to-Site VPN tunnel options to modify.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#MonitorInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#MonitorInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#MonitorInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Enables detailed monitoring for a running instance. Otherwise, basic monitoring is\n enabled. For more information, see Monitor your instances using\n CloudWatch in the Amazon EC2 User Guide.

\n

To disable detailed monitoring, see UnmonitorInstances.

" + } + }, + "com.amazonaws.ec2#MonitorInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#MonitorInstancesResult": { + "type": "structure", + "members": { + "InstanceMonitorings": { + "target": "com.amazonaws.ec2#InstanceMonitoringList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

The monitoring information.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#Monitoring": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#MonitoringState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is\n enabled.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the monitoring of an instance.

" + } + }, + "com.amazonaws.ec2#MonitoringState": { + "type": "enum", + "members": { + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + } + } + }, + "com.amazonaws.ec2#MoveAddressToVpc": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#MoveAddressToVpcRequest" + }, + "output": { + "target": "com.amazonaws.ec2#MoveAddressToVpcResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The\n Elastic IP address must be allocated to your account for more than 24 hours, and it must not\n be associated with an instance. After the Elastic IP address is moved, it is no longer\n available for use in the EC2-Classic platform. You cannot move an Elastic IP address that was\n originally allocated for use in the EC2-VPC platform to the EC2-Classic platform.

", + "smithy.api#examples": [ + { + "title": "To move an address to EC2-VPC", + "documentation": "This example moves the specified Elastic IP address to the EC2-VPC platform.", + "input": { + "PublicIp": "54.123.4.56" + }, + "output": { + "Status": "MoveInProgress" + } + } + ] + } + }, + "com.amazonaws.ec2#MoveAddressToVpcRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Elastic IP address.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#MoveAddressToVpcResult": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The allocation ID for the Elastic IP address.

", + "smithy.api#xmlName": "allocationId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#Status", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the move of the IP address.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#MoveByoipCidrToIpam": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#MoveByoipCidrToIpamRequest" + }, + "output": { + "target": "com.amazonaws.ec2#MoveByoipCidrToIpamResult" + }, + "traits": { + "smithy.api#documentation": "

Move a BYOIPv4 CIDR to IPAM from a public IPv4 pool.

\n

If you already have a BYOIPv4 CIDR with Amazon Web Services, you can move the CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 CIDR to IPAM. If you are bringing a new IP address to Amazon Web Services for the first time, complete the steps in Tutorial: BYOIP address CIDRs to IPAM.

" + } + }, + "com.amazonaws.ec2#MoveByoipCidrToIpamRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The BYOIP CIDR.

", + "smithy.api#required": {} + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPAM pool ID.

", + "smithy.api#required": {} + } + }, + "IpamPoolOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the IPAM pool.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#MoveByoipCidrToIpamResult": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidr", + "smithy.api#documentation": "

The BYOIP CIDR.

", + "smithy.api#xmlName": "byoipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#MoveCapacityReservationInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#MoveCapacityReservationInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#MoveCapacityReservationInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Move available capacity from a source Capacity Reservation to a destination Capacity\n\t\t\tReservation. The source Capacity Reservation and the destination Capacity Reservation\n\t\t\tmust be active, owned by your Amazon Web Services account, and share the following:

\n
    \n
  • \n

    Instance type

    \n
  • \n
  • \n

    Platform

    \n
  • \n
  • \n

    Availability Zone

    \n
  • \n
  • \n

    Tenancy

    \n
  • \n
  • \n

    Placement group

    \n
  • \n
  • \n

    Capacity Reservation end time - At specific time or\n\t\t\t\t\t\tManually.

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#MoveCapacityReservationInstancesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "SourceCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation from which you want to move capacity.

", + "smithy.api#required": {} + } + }, + "DestinationCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation that you want to move capacity into.

", + "smithy.api#required": {} + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances that you want to move from the source Capacity Reservation.\n\t\t

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#MoveCapacityReservationInstancesResult": { + "type": "structure", + "members": { + "SourceCapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "SourceCapacityReservation", + "smithy.api#documentation": "

Information about the source Capacity Reservation.

", + "smithy.api#xmlName": "sourceCapacityReservation" + } + }, + "DestinationCapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCapacityReservation", + "smithy.api#documentation": "

Information about the destination Capacity Reservation.

", + "smithy.api#xmlName": "destinationCapacityReservation" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances that were moved from the source Capacity Reservation to the\n\t\t\tdestination Capacity Reservation.

", + "smithy.api#xmlName": "instanceCount" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#MoveStatus": { + "type": "enum", + "members": { + "movingToVpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "movingToVpc" + } + }, + "restoringToClassic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restoringToClassic" + } + } + } + }, + "com.amazonaws.ec2#MovingAddressStatus": { + "type": "structure", + "members": { + "MoveStatus": { + "target": "com.amazonaws.ec2#MoveStatus", + "traits": { + "aws.protocols#ec2QueryName": "MoveStatus", + "smithy.api#documentation": "

The status of the Elastic IP address that's being moved or restored.

", + "smithy.api#xmlName": "moveStatus" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The Elastic IP address.

", + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Describes the status of a moving Elastic IP address.

" + } + }, + "com.amazonaws.ec2#MovingAddressStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#MovingAddressStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#MulticastSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#NatGateway": { + "type": "structure", + "members": { + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time the NAT gateway was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "DeleteTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "DeleteTime", + "smithy.api#documentation": "

The date and time the NAT gateway was deleted, if applicable.

", + "smithy.api#xmlName": "deleteTime" + } + }, + "FailureCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureCode", + "smithy.api#documentation": "

If the NAT gateway could not be created, specifies the error code for the failure.\n (InsufficientFreeAddressesInSubnet | Gateway.NotAttached |\n InvalidAllocationID.NotFound | Resource.AlreadyAssociated |\n InternalError | InvalidSubnetID.NotFound)

", + "smithy.api#xmlName": "failureCode" + } + }, + "FailureMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureMessage", + "smithy.api#documentation": "

If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code.

\n
    \n
  • \n

    For InsufficientFreeAddressesInSubnet: \"Subnet has insufficient free addresses to create this NAT gateway\"

    \n
  • \n
  • \n

    For Gateway.NotAttached: \"Network vpc-xxxxxxxx has no Internet gateway attached\"

    \n
  • \n
  • \n

    For InvalidAllocationID.NotFound: \"Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway\"

    \n
  • \n
  • \n

    For Resource.AlreadyAssociated: \"Elastic IP address eipalloc-xxxxxxxx is already associated\"

    \n
  • \n
  • \n

    For InternalError: \"Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again.\"

    \n
  • \n
  • \n

    For InvalidSubnetID.NotFound: \"The specified subnet subnet-xxxxxxxx does not exist or could not be found.\"

    \n
  • \n
", + "smithy.api#xmlName": "failureMessage" + } + }, + "NatGatewayAddresses": { + "target": "com.amazonaws.ec2#NatGatewayAddressList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayAddressSet", + "smithy.api#documentation": "

Information about the IP addresses and network interface associated with the NAT gateway.

", + "smithy.api#xmlName": "natGatewayAddressSet" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "ProvisionedBandwidth": { + "target": "com.amazonaws.ec2#ProvisionedBandwidth", + "traits": { + "aws.protocols#ec2QueryName": "ProvisionedBandwidth", + "smithy.api#documentation": "

Reserved. If you need to sustain traffic greater than the documented limits, \n contact Amazon Web Services Support.

", + "smithy.api#xmlName": "provisionedBandwidth" + } + }, + "State": { + "target": "com.amazonaws.ec2#NatGatewayState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the NAT gateway.

\n
    \n
  • \n

    \n pending: The NAT gateway is being created and is not ready to process\n traffic.

    \n
  • \n
  • \n

    \n failed: The NAT gateway could not be created. Check the\n failureCode and failureMessage fields for the reason.

    \n
  • \n
  • \n

    \n available: The NAT gateway is able to process traffic. This status remains\n until you delete the NAT gateway, and does not indicate the health of the NAT gateway.

    \n
  • \n
  • \n

    \n deleting: The NAT gateway is in the process of being terminated and may\n still be processing traffic.

    \n
  • \n
  • \n

    \n deleted: The NAT gateway has been terminated and is no longer processing\n traffic.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which the NAT gateway is located.

", + "smithy.api#xmlName": "subnetId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC in which the NAT gateway is located.

", + "smithy.api#xmlName": "vpcId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the NAT gateway.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ConnectivityType": { + "target": "com.amazonaws.ec2#ConnectivityType", + "traits": { + "aws.protocols#ec2QueryName": "ConnectivityType", + "smithy.api#documentation": "

Indicates whether the NAT gateway supports public or private connectivity.

", + "smithy.api#xmlName": "connectivityType" + } + }, + "AvailabilityMode": { + "target": "com.amazonaws.ec2#AvailabilityMode", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityMode", + "smithy.api#documentation": "

Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.

\n

A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "availabilityMode" + } + }, + "AutoScalingIps": { + "target": "com.amazonaws.ec2#AutoScalingIpsState", + "traits": { + "aws.protocols#ec2QueryName": "AutoScalingIps", + "smithy.api#documentation": "

For regional NAT gateways only: Indicates whether Amazon Web Services automatically allocates additional Elastic IP addresses (EIPs) in an AZ when the NAT gateway needs more ports due to increased concurrent connections to a single destination from that AZ.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "autoScalingIps" + } + }, + "AutoProvisionZones": { + "target": "com.amazonaws.ec2#AutoProvisionZonesState", + "traits": { + "aws.protocols#ec2QueryName": "AutoProvisionZones", + "smithy.api#documentation": "

For regional NAT gateways only: Indicates whether Amazon Web Services automatically manages AZ coverage. When enabled, the NAT gateway associates EIPs in all AZs where your VPC has subnets to handle outbound NAT traffic, expands to new AZs when you create subnets there, and retracts from AZs where you've removed all subnets. When disabled, you must manually manage which AZs the NAT gateway supports and their corresponding EIPs.

\n

A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.

\n

For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.

", + "smithy.api#xmlName": "autoProvisionZones" + } + }, + "AttachedAppliances": { + "target": "com.amazonaws.ec2#NatGatewayAttachedApplianceList", + "traits": { + "aws.protocols#ec2QueryName": "AttachedApplianceSet", + "smithy.api#documentation": "

The proxy appliances attached to the NAT Gateway for filtering and inspecting traffic to prevent data exfiltration.

", + "smithy.api#xmlName": "attachedApplianceSet" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#documentation": "

For regional NAT gateways only, this is the ID of the NAT gateway.

", + "smithy.api#xmlName": "routeTableId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a NAT gateway.

" + } + }, + "com.amazonaws.ec2#NatGatewayAddress": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway.

", + "smithy.api#xmlName": "allocationId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface associated with the NAT gateway.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIp", + "smithy.api#documentation": "

The private IP address associated with the NAT gateway.

", + "smithy.api#xmlName": "privateIp" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

[Public NAT gateway only] The Elastic IP address associated with the NAT gateway.

", + "smithy.api#xmlName": "publicIp" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

[Public NAT gateway only] The association ID of the Elastic IP address that's associated with the NAT gateway.

", + "smithy.api#xmlName": "associationId" + } + }, + "IsPrimary": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPrimary", + "smithy.api#documentation": "

Defines if the IP address is the primary address.

", + "smithy.api#xmlName": "isPrimary" + } + }, + "FailureMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureMessage", + "smithy.api#documentation": "

The address failure message.

", + "smithy.api#xmlName": "failureMessage" + } + }, + "Status": { + "target": "com.amazonaws.ec2#NatGatewayAddressStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The address status.

", + "smithy.api#xmlName": "status" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone where this Elastic IP address (EIP) is being used to handle outbound NAT traffic.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone where this Elastic IP address (EIP) is being used to handle outbound NAT traffic. Use this instead of AvailabilityZone for consistent identification of AZs across Amazon Web Services Regions.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the IP addresses and network interface associated with a NAT gateway.

" + } + }, + "com.amazonaws.ec2#NatGatewayAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NatGatewayAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NatGatewayAddressStatus": { + "type": "enum", + "members": { + "ASSIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "assigning" + } + }, + "UNASSIGNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unassigning" + } + }, + "ASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "DISASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#NatGatewayApplianceModifyState": { + "type": "enum", + "members": { + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#NatGatewayApplianceState": { + "type": "enum", + "members": { + "ATTACHING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attaching" + } + }, + "ATTACHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attached" + } + }, + "DETACHING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detaching" + } + }, + "DETACHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detached" + } + }, + "ATTACH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attach-failed" + } + }, + "DETACH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detach-failed" + } + } + } + }, + "com.amazonaws.ec2#NatGatewayApplianceType": { + "type": "enum", + "members": { + "NETWORK_FIREWALL_PROXY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-firewall-proxy" + } + } + } + }, + "com.amazonaws.ec2#NatGatewayAttachedAppliance": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#NatGatewayApplianceType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of appliance attached to the NAT Gateway. For network firewall proxy functionality, this will be \"network-firewall-proxy\".

", + "smithy.api#xmlName": "type" + } + }, + "ApplianceArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ApplianceArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the attached appliance, identifying the specific proxy or security appliance resource.

", + "smithy.api#xmlName": "applianceArn" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The VPC endpoint ID used to route traffic from application VPCs to the proxy for inspection and filtering.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "AttachmentState": { + "target": "com.amazonaws.ec2#NatGatewayApplianceState", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentState", + "smithy.api#documentation": "

The current attachment state of the appliance.

", + "smithy.api#xmlName": "attachmentState" + } + }, + "ModificationState": { + "target": "com.amazonaws.ec2#NatGatewayApplianceModifyState", + "traits": { + "aws.protocols#ec2QueryName": "ModificationState", + "smithy.api#documentation": "

The current modification state of the appliance.

", + "smithy.api#xmlName": "modificationState" + } + }, + "FailureCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureCode", + "smithy.api#documentation": "

The failure code if the appliance attachment or modification operation failed.

", + "smithy.api#xmlName": "failureCode" + } + }, + "FailureMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureMessage", + "smithy.api#documentation": "

A descriptive message explaining the failure if the appliance attachment or modification operation failed.

", + "smithy.api#xmlName": "failureMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an appliance attached to a NAT Gateway, providing managed security solutions for traffic filtering and inspection.

" + } + }, + "com.amazonaws.ec2#NatGatewayAttachedApplianceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NatGatewayAttachedAppliance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NatGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#NatGatewayIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NatGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NatGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NatGatewayState": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#NativeApplicationOidcOptions": { + "type": "structure", + "members": { + "PublicSigningKeyEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicSigningKeyEndpoint", + "smithy.api#documentation": "

The public signing key endpoint.

", + "smithy.api#xmlName": "publicSigningKeyEndpoint" + } + }, + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Issuer", + "smithy.api#documentation": "

The OIDC issuer identifier of the IdP.

", + "smithy.api#xmlName": "issuer" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AuthorizationEndpoint", + "smithy.api#documentation": "

The authorization endpoint of the IdP.

", + "smithy.api#xmlName": "authorizationEndpoint" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TokenEndpoint", + "smithy.api#documentation": "

The token endpoint of the IdP.

", + "smithy.api#xmlName": "tokenEndpoint" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserInfoEndpoint", + "smithy.api#documentation": "

The user info endpoint of the IdP.

", + "smithy.api#xmlName": "userInfoEndpoint" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientId", + "smithy.api#documentation": "

The OAuth 2.0 client identifier.

", + "smithy.api#xmlName": "clientId" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

The set of user claims to be requested from the IdP.

", + "smithy.api#xmlName": "scope" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the OpenID Connect (OIDC) options.

" + } + }, + "com.amazonaws.ec2#NestedVirtualizationSpecification": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#NetmaskLength": { + "type": "integer" + }, + "com.amazonaws.ec2#NetworkAcl": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#NetworkAclAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "AssociationSet", + "smithy.api#documentation": "

Any associations between the network ACL and your subnets

", + "smithy.api#xmlName": "associationSet" + } + }, + "Entries": { + "target": "com.amazonaws.ec2#NetworkAclEntryList", + "traits": { + "aws.protocols#ec2QueryName": "EntrySet", + "smithy.api#documentation": "

The entries (rules) in the network ACL.

", + "smithy.api#xmlName": "entrySet" + } + }, + "IsDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Default", + "smithy.api#documentation": "

Indicates whether this is the default network ACL for the VPC.

", + "smithy.api#xmlName": "default" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#documentation": "

The ID of the network ACL.

", + "smithy.api#xmlName": "networkAclId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the network ACL.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC for the network ACL.

", + "smithy.api#xmlName": "vpcId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the network ACL.

", + "smithy.api#xmlName": "ownerId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network ACL.

" + } + }, + "com.amazonaws.ec2#NetworkAclAssociation": { + "type": "structure", + "members": { + "NetworkAclAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclAssociationId", + "smithy.api#documentation": "

The ID of the association between a network ACL and a subnet.

", + "smithy.api#xmlName": "networkAclAssociationId" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#documentation": "

The ID of the network ACL.

", + "smithy.api#xmlName": "networkAclId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a network ACL and a subnet.

" + } + }, + "com.amazonaws.ec2#NetworkAclAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkAclAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkAclAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkAclEntry": { + "type": "structure", + "members": { + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 network range to allow or deny, in CIDR notation.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "Egress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Egress", + "smithy.api#documentation": "

Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).

", + "smithy.api#xmlName": "egress" + } + }, + "IcmpTypeCode": { + "target": "com.amazonaws.ec2#IcmpTypeCode", + "traits": { + "aws.protocols#ec2QueryName": "IcmpTypeCode", + "smithy.api#documentation": "

ICMP protocol: The ICMP type and code.

", + "smithy.api#xmlName": "icmpTypeCode" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 network range to allow or deny, in CIDR notation.

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + }, + "PortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "PortRange", + "smithy.api#documentation": "

TCP or UDP protocols: The range of ports the rule applies to.

", + "smithy.api#xmlName": "portRange" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol number. A value of \"-1\" means all protocols.

", + "smithy.api#xmlName": "protocol" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#RuleAction", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#documentation": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "smithy.api#xmlName": "ruleAction" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#documentation": "

The rule number for the entry. ACL entries are processed in ascending order by rule number.

", + "smithy.api#xmlName": "ruleNumber" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an entry in a network ACL.

" + } + }, + "com.amazonaws.ec2#NetworkAclEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkAclEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkAclId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkAclIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkAclList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkAcl", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkBandwidthGbps": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum\n limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no\n maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

\n \n

Setting the minimum bandwidth does not guarantee that your instance will achieve the \n minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum \n bandwidth, but the actual bandwidth of your instance might go below the specified minimum \n at times. For more information, see Available instance bandwidth in the\n Amazon EC2 User Guide.

\n
" + } + }, + "com.amazonaws.ec2#NetworkBandwidthGbpsRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

\n \n

Setting the minimum bandwidth does not guarantee that your instance will achieve the \n minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum \n bandwidth, but the actual bandwidth of your instance might go below the specified minimum \n at times. For more information, see Available instance bandwidth in the\n Amazon EC2 User Guide.

\n
" + } + }, + "com.amazonaws.ec2#NetworkCardIndex": { + "type": "integer" + }, + "com.amazonaws.ec2#NetworkCardInfo": { + "type": "structure", + "members": { + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#NetworkCardIndex", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + }, + "NetworkPerformance": { + "target": "com.amazonaws.ec2#NetworkPerformance", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformance", + "smithy.api#documentation": "

The network performance of the network card.

", + "smithy.api#xmlName": "networkPerformance" + } + }, + "MaximumNetworkInterfaces": { + "target": "com.amazonaws.ec2#MaxNetworkInterfaces", + "traits": { + "aws.protocols#ec2QueryName": "MaximumNetworkInterfaces", + "smithy.api#documentation": "

The maximum number of network interfaces for the network card.

", + "smithy.api#xmlName": "maximumNetworkInterfaces" + } + }, + "AdditionalFlexibleNetworkInterfaces": { + "target": "com.amazonaws.ec2#AdditionalFlexibleNetworkInterfaces", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalFlexibleNetworkInterfaces", + "smithy.api#documentation": "

The number of additional network interfaces that can be attached to an instance when using\n flexible Elastic Network Adapter (ENA) queues. This number is in addition to the base number\n specified by maximumNetworkInterfaces.

", + "smithy.api#xmlName": "additionalFlexibleNetworkInterfaces" + } + }, + "BaselineBandwidthInGbps": { + "target": "com.amazonaws.ec2#BaselineBandwidthInGbps", + "traits": { + "aws.protocols#ec2QueryName": "BaselineBandwidthInGbps", + "smithy.api#documentation": "

The baseline network performance of the network card, in Gbps.

", + "smithy.api#xmlName": "baselineBandwidthInGbps" + } + }, + "PeakBandwidthInGbps": { + "target": "com.amazonaws.ec2#PeakBandwidthInGbps", + "traits": { + "aws.protocols#ec2QueryName": "PeakBandwidthInGbps", + "smithy.api#documentation": "

The peak (burst) network performance of the network card, in Gbps.

", + "smithy.api#xmlName": "peakBandwidthInGbps" + } + }, + "DefaultEnaQueueCountPerInterface": { + "target": "com.amazonaws.ec2#DefaultEnaQueueCountPerInterface", + "traits": { + "aws.protocols#ec2QueryName": "DefaultEnaQueueCountPerInterface", + "smithy.api#documentation": "

The default number of the ENA queues for each interface.

", + "smithy.api#xmlName": "defaultEnaQueueCountPerInterface" + } + }, + "MaximumEnaQueueCount": { + "target": "com.amazonaws.ec2#MaximumEnaQueueCount", + "traits": { + "aws.protocols#ec2QueryName": "MaximumEnaQueueCount", + "smithy.api#documentation": "

The maximum number of the ENA queues.

", + "smithy.api#xmlName": "maximumEnaQueueCount" + } + }, + "MaximumEnaQueueCountPerInterface": { + "target": "com.amazonaws.ec2#MaximumEnaQueueCountPerInterface", + "traits": { + "aws.protocols#ec2QueryName": "MaximumEnaQueueCountPerInterface", + "smithy.api#documentation": "

The maximum number of the ENA queues for each interface.

", + "smithy.api#xmlName": "maximumEnaQueueCountPerInterface" + } + }, + "InterfaceTypes": { + "target": "com.amazonaws.ec2#NetworkCardInterfaceTypeList", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceTypeSet", + "smithy.api#documentation": "

The supported interface types for the network card.

", + "smithy.api#xmlName": "interfaceTypeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the network card support of the instance type.

" + } + }, + "com.amazonaws.ec2#NetworkCardInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkCardInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkCardInterfaceType": { + "type": "enum", + "members": { + "interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interface" + } + }, + "efa": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa" + } + }, + "efa_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa-only" + } + }, + "secondary": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "secondary" + } + } + } + }, + "com.amazonaws.ec2#NetworkCardInterfaceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkCardInterfaceType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInfo": { + "type": "structure", + "members": { + "NetworkPerformance": { + "target": "com.amazonaws.ec2#NetworkPerformance", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformance", + "smithy.api#documentation": "

The network performance.

", + "smithy.api#xmlName": "networkPerformance" + } + }, + "MaximumNetworkInterfaces": { + "target": "com.amazonaws.ec2#MaxNetworkInterfaces", + "traits": { + "aws.protocols#ec2QueryName": "MaximumNetworkInterfaces", + "smithy.api#documentation": "

The maximum number of network interfaces for the instance type.

", + "smithy.api#xmlName": "maximumNetworkInterfaces" + } + }, + "MaximumNetworkCards": { + "target": "com.amazonaws.ec2#MaximumNetworkCards", + "traits": { + "aws.protocols#ec2QueryName": "MaximumNetworkCards", + "smithy.api#documentation": "

The maximum number of physical network cards that can be allocated to the instance.

", + "smithy.api#xmlName": "maximumNetworkCards" + } + }, + "DefaultNetworkCardIndex": { + "target": "com.amazonaws.ec2#DefaultNetworkCardIndex", + "traits": { + "aws.protocols#ec2QueryName": "DefaultNetworkCardIndex", + "smithy.api#documentation": "

The index of the default network card, starting at 0.

", + "smithy.api#xmlName": "defaultNetworkCardIndex" + } + }, + "NetworkCards": { + "target": "com.amazonaws.ec2#NetworkCardInfoList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCards", + "smithy.api#documentation": "

Describes the network cards for the instance type.

", + "smithy.api#xmlName": "networkCards" + } + }, + "Ipv4AddressesPerInterface": { + "target": "com.amazonaws.ec2#MaxIpv4AddrPerInterface", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4AddressesPerInterface", + "smithy.api#documentation": "

The maximum number of IPv4 addresses per network interface.

", + "smithy.api#xmlName": "ipv4AddressesPerInterface" + } + }, + "Ipv6AddressesPerInterface": { + "target": "com.amazonaws.ec2#MaxIpv6AddrPerInterface", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressesPerInterface", + "smithy.api#documentation": "

The maximum number of IPv6 addresses per network interface.

", + "smithy.api#xmlName": "ipv6AddressesPerInterface" + } + }, + "Ipv6Supported": { + "target": "com.amazonaws.ec2#Ipv6Flag", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Supported", + "smithy.api#documentation": "

Indicates whether IPv6 is supported.

", + "smithy.api#xmlName": "ipv6Supported" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#EnaSupport", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Indicates whether Elastic Network Adapter (ENA) is supported.

", + "smithy.api#xmlName": "enaSupport" + } + }, + "EfaSupported": { + "target": "com.amazonaws.ec2#EfaSupportedFlag", + "traits": { + "aws.protocols#ec2QueryName": "EfaSupported", + "smithy.api#documentation": "

Indicates whether Elastic Fabric Adapter (EFA) is supported.

", + "smithy.api#xmlName": "efaSupported" + } + }, + "EfaInfo": { + "target": "com.amazonaws.ec2#EfaInfo", + "traits": { + "aws.protocols#ec2QueryName": "EfaInfo", + "smithy.api#documentation": "

Describes the Elastic Fabric Adapters for the instance type.

", + "smithy.api#xmlName": "efaInfo" + } + }, + "EncryptionInTransitSupported": { + "target": "com.amazonaws.ec2#EncryptionInTransitSupported", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionInTransitSupported", + "smithy.api#documentation": "

Indicates whether the instance type automatically encrypts in-transit traffic between\n instances.

", + "smithy.api#xmlName": "encryptionInTransitSupported" + } + }, + "EnaSrdSupported": { + "target": "com.amazonaws.ec2#EnaSrdSupported", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdSupported", + "smithy.api#documentation": "

Indicates whether the instance type supports ENA Express. ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream\n and minimize tail latency of network traffic between EC2 instances.

", + "smithy.api#xmlName": "enaSrdSupported" + } + }, + "BandwidthWeightings": { + "target": "com.amazonaws.ec2#BandwidthWeightingTypeList", + "traits": { + "aws.protocols#ec2QueryName": "BandwidthWeightings", + "smithy.api#documentation": "

A list of valid settings for configurable bandwidth weighting for the instance type, if\n supported.

", + "smithy.api#xmlName": "bandwidthWeightings" + } + }, + "FlexibleEnaQueuesSupport": { + "target": "com.amazonaws.ec2#FlexibleEnaQueuesSupport", + "traits": { + "aws.protocols#ec2QueryName": "FlexibleEnaQueuesSupport", + "smithy.api#documentation": "

Indicates whether changing the number of ENA queues is supported.

", + "smithy.api#xmlName": "flexibleEnaQueuesSupport" + } + }, + "ConnectionTrackingConfiguration": { + "target": "com.amazonaws.ec2#DefaultConnectionTrackingConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionTrackingConfiguration", + "smithy.api#documentation": "

Indicates conntrack information for the instance type

", + "smithy.api#xmlName": "connectionTrackingConfiguration" + } + }, + "SecondaryNetworkSupported": { + "target": "com.amazonaws.ec2#SecondaryNetworkSupportedFlag", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkSupported", + "smithy.api#documentation": "

Indicates whether secondary interface attachments from secondary network are supported.

", + "smithy.api#xmlName": "secondaryNetworkSupported" + } + }, + "MaximumSecondaryNetworkInterfaces": { + "target": "com.amazonaws.ec2#MaximumSecondaryNetworkInterfaces", + "traits": { + "aws.protocols#ec2QueryName": "MaximumSecondaryNetworkInterfaces", + "smithy.api#documentation": "

The maximum number of secondary interfaces for the instance type.

", + "smithy.api#xmlName": "maximumSecondaryNetworkInterfaces" + } + }, + "Ipv4AddressesPerSecondaryInterface": { + "target": "com.amazonaws.ec2#Ipv4AddressesPerSecondaryInterface", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4AddressesPerSecondaryInterface", + "smithy.api#documentation": "

The maximum number of IPv4 addresses per secondary interface.

", + "smithy.api#xmlName": "ipv4AddressesPerSecondaryInterface" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the networking features of the instance type.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScope": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeId", + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeId" + } + }, + "NetworkInsightsAccessScopeArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeArn" + } + }, + "CreatedDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreatedDate", + "smithy.api#documentation": "

The creation date.

", + "smithy.api#xmlName": "createdDate" + } + }, + "UpdatedDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdatedDate", + "smithy.api#documentation": "

The last updated date.

", + "smithy.api#xmlName": "updatedDate" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Network Access Scope.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysis": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisId", + "smithy.api#documentation": "

The ID of the Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisId" + } + }, + "NetworkInsightsAccessScopeAnalysisArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysisArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysisArn" + } + }, + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeId", + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AnalysisStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "WarningMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "WarningMessage", + "smithy.api#documentation": "

The warning message.

", + "smithy.api#xmlName": "warningMessage" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The analysis start date.

", + "smithy.api#xmlName": "startDate" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The analysis end date.

", + "smithy.api#xmlName": "endDate" + } + }, + "FindingsFound": { + "target": "com.amazonaws.ec2#FindingsFound", + "traits": { + "aws.protocols#ec2QueryName": "FindingsFound", + "smithy.api#documentation": "

Indicates whether there are findings.

", + "smithy.api#xmlName": "findingsFound" + } + }, + "AnalyzedEniCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AnalyzedEniCount", + "smithy.api#documentation": "

The number of network interfaces analyzed.

", + "smithy.api#xmlName": "analyzedEniCount" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Network Access Scope analysis.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysisList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysis", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeContent": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeId", + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#xmlName": "networkInsightsAccessScopeId" + } + }, + "MatchPaths": { + "target": "com.amazonaws.ec2#AccessScopePathList", + "traits": { + "aws.protocols#ec2QueryName": "MatchPathSet", + "smithy.api#documentation": "

The paths to match.

", + "smithy.api#xmlName": "matchPathSet" + } + }, + "ExcludePaths": { + "target": "com.amazonaws.ec2#AccessScopePathList", + "traits": { + "aws.protocols#ec2QueryName": "ExcludePathSet", + "smithy.api#documentation": "

The paths to exclude.

", + "smithy.api#xmlName": "excludePathSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Network Access Scope content.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsAccessScopeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScope", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsAnalysis": { + "type": "structure", + "members": { + "NetworkInsightsAnalysisId": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAnalysisId", + "smithy.api#documentation": "

The ID of the network insights analysis.

", + "smithy.api#xmlName": "networkInsightsAnalysisId" + } + }, + "NetworkInsightsAnalysisArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAnalysisArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the network insights analysis.

", + "smithy.api#xmlName": "networkInsightsAnalysisArn" + } + }, + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPathId", + "smithy.api#documentation": "

The ID of the path.

", + "smithy.api#xmlName": "networkInsightsPathId" + } + }, + "AdditionalAccounts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalAccountSet", + "smithy.api#documentation": "

The member accounts that contain resources that the path can traverse.

", + "smithy.api#xmlName": "additionalAccountSet" + } + }, + "FilterInArns": { + "target": "com.amazonaws.ec2#ArnList", + "traits": { + "aws.protocols#ec2QueryName": "FilterInArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the resources that the path must traverse.

", + "smithy.api#xmlName": "filterInArnSet" + } + }, + "FilterOutArns": { + "target": "com.amazonaws.ec2#ArnList", + "traits": { + "aws.protocols#ec2QueryName": "FilterOutArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the resources that the path must ignore.

", + "smithy.api#xmlName": "filterOutArnSet" + } + }, + "StartDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartDate", + "smithy.api#documentation": "

The time the analysis started.

", + "smithy.api#xmlName": "startDate" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AnalysisStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the network insights analysis.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message, if the status is failed.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "WarningMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "WarningMessage", + "smithy.api#documentation": "

The warning message.

", + "smithy.api#xmlName": "warningMessage" + } + }, + "NetworkPathFound": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPathFound", + "smithy.api#documentation": "

Indicates whether the destination is reachable from the source.

", + "smithy.api#xmlName": "networkPathFound" + } + }, + "ForwardPathComponents": { + "target": "com.amazonaws.ec2#PathComponentList", + "traits": { + "aws.protocols#ec2QueryName": "ForwardPathComponentSet", + "smithy.api#documentation": "

The components in the path from source to destination.

", + "smithy.api#xmlName": "forwardPathComponentSet" + } + }, + "ReturnPathComponents": { + "target": "com.amazonaws.ec2#PathComponentList", + "traits": { + "aws.protocols#ec2QueryName": "ReturnPathComponentSet", + "smithy.api#documentation": "

The components in the path from destination to source.

", + "smithy.api#xmlName": "returnPathComponentSet" + } + }, + "Explanations": { + "target": "com.amazonaws.ec2#ExplanationList", + "traits": { + "aws.protocols#ec2QueryName": "ExplanationSet", + "smithy.api#documentation": "

The explanations. For more information, see Reachability Analyzer explanation codes.

", + "smithy.api#xmlName": "explanationSet" + } + }, + "AlternatePathHints": { + "target": "com.amazonaws.ec2#AlternatePathHintList", + "traits": { + "aws.protocols#ec2QueryName": "AlternatePathHintSet", + "smithy.api#documentation": "

Potential intermediate components.

", + "smithy.api#xmlName": "alternatePathHintSet" + } + }, + "SuggestedAccounts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SuggestedAccountSet", + "smithy.api#documentation": "

Potential intermediate accounts.

", + "smithy.api#xmlName": "suggestedAccountSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network insights analysis.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsAnalysisId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInsightsAnalysisIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysisId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsAnalysisList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysis", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#NetworkInsightsPath": { + "type": "structure", + "members": { + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPathId", + "smithy.api#documentation": "

The ID of the path.

", + "smithy.api#xmlName": "networkInsightsPathId" + } + }, + "NetworkInsightsPathArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsPathArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the path.

", + "smithy.api#xmlName": "networkInsightsPathArn" + } + }, + "CreatedDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreatedDate", + "smithy.api#documentation": "

The time stamp when the path was created.

", + "smithy.api#xmlName": "createdDate" + } + }, + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

The ID of the source.

", + "smithy.api#xmlName": "source" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Destination", + "smithy.api#documentation": "

The ID of the destination.

", + "smithy.api#xmlName": "destination" + } + }, + "SourceArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "SourceArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source.

", + "smithy.api#xmlName": "sourceArn" + } + }, + "DestinationArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "DestinationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination.

", + "smithy.api#xmlName": "destinationArn" + } + }, + "SourceIp": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "SourceIp", + "smithy.api#documentation": "

The IP address of the source.

", + "smithy.api#xmlName": "sourceIp" + } + }, + "DestinationIp": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "DestinationIp", + "smithy.api#documentation": "

The IP address of the destination.

", + "smithy.api#xmlName": "destinationIp" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#Protocol", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "DestinationPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPort", + "smithy.api#documentation": "

The destination port.

", + "smithy.api#xmlName": "destinationPort" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags associated with the path.

", + "smithy.api#xmlName": "tagSet" + } + }, + "FilterAtSource": { + "target": "com.amazonaws.ec2#PathFilter", + "traits": { + "aws.protocols#ec2QueryName": "FilterAtSource", + "smithy.api#documentation": "

Scopes the analysis to network paths that match specific filters at the source.

", + "smithy.api#xmlName": "filterAtSource" + } + }, + "FilterAtDestination": { + "target": "com.amazonaws.ec2#PathFilter", + "traits": { + "aws.protocols#ec2QueryName": "FilterAtDestination", + "smithy.api#documentation": "

Scopes the analysis to network paths that match specific filters at the destination.

", + "smithy.api#xmlName": "filterAtDestination" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path.

" + } + }, + "com.amazonaws.ec2#NetworkInsightsPathId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInsightsPathIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsPathList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInsightsPath", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInsightsResourceId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInterface": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#NetworkInterfaceAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The association information for an Elastic IP address (IPv4) associated with the\n network interface.

", + "smithy.api#xmlName": "association" + } + }, + "Attachment": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

The network interface attachment.

", + "smithy.api#xmlName": "attachment" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "ConnectionTrackingConfiguration": { + "target": "com.amazonaws.ec2#ConnectionTrackingConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionTrackingConfiguration", + "smithy.api#documentation": "

A security group connection tracking configuration that enables you to set the timeout\n for connection tracking on an Elastic network interface. For more information, see\n Connection tracking timeouts in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "connectionTrackingConfiguration" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description.

", + "smithy.api#xmlName": "description" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

Any security groups for the network interface.

", + "smithy.api#xmlName": "groupSet" + } + }, + "InterfaceType": { + "target": "com.amazonaws.ec2#NetworkInterfaceType", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceType", + "smithy.api#documentation": "

The type of network interface.

", + "smithy.api#xmlName": "interfaceType" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#NetworkInterfaceIpv6AddressesList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressesSet", + "smithy.api#documentation": "

The IPv6 addresses associated with the network interface.

", + "smithy.api#xmlName": "ipv6AddressesSet" + } + }, + "MacAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MacAddress", + "smithy.api#documentation": "

The MAC address.

", + "smithy.api#xmlName": "macAddress" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the network interface.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private hostname. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PublicDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicDnsName", + "smithy.api#documentation": "

A public hostname. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "publicDnsName" + } + }, + "PublicIpDnsNameOptions": { + "target": "com.amazonaws.ec2#PublicIpDnsNameOptions", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpDnsNameOptions", + "smithy.api#documentation": "

Public hostname type options. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "publicIpDnsNameOptions" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The IPv4 address of the network interface within the subnet.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#NetworkInterfacePrivateIpAddressList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddressesSet", + "smithy.api#documentation": "

The private IPv4 addresses associated with the network interface.

", + "smithy.api#xmlName": "privateIpAddressesSet" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#Ipv4PrefixesList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4PrefixSet", + "smithy.api#documentation": "

The IPv4 prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "ipv4PrefixSet" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#Ipv6PrefixesList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PrefixSet", + "smithy.api#documentation": "

The IPv6 prefixes that are assigned to the network interface.

", + "smithy.api#xmlName": "ipv6PrefixSet" + } + }, + "RequesterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RequesterId", + "smithy.api#documentation": "

The alias or Amazon Web Services account ID of the principal or service that created\n the network interface.

", + "smithy.api#xmlName": "requesterId" + } + }, + "RequesterManaged": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "RequesterManaged", + "smithy.api#documentation": "

Indicates whether the network interface is being managed by Amazon Web Services.

", + "smithy.api#xmlName": "requesterManaged" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "Status": { + "target": "com.amazonaws.ec2#NetworkInterfaceStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the network interface.

", + "smithy.api#xmlName": "status" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "TagSet": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the network interface.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "DenyAllIgwTraffic": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DenyAllIgwTraffic", + "smithy.api#documentation": "

Indicates whether a network interface with an IPv6 address is unreachable from the\n public internet. If the value is true, inbound traffic from the internet is\n dropped and you cannot assign an elastic IP address to the network interface. The\n network interface is reachable from peered VPCs and resources connected through a\n transit gateway, including on-premises networks.

", + "smithy.api#xmlName": "denyAllIgwTraffic" + } + }, + "Ipv6Native": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Native", + "smithy.api#documentation": "

Indicates whether this is an IPv6 only network interface.

", + "smithy.api#xmlName": "ipv6Native" + } + }, + "Ipv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Address", + "smithy.api#documentation": "

The IPv6 globally unique address associated with the network interface.

", + "smithy.api#xmlName": "ipv6Address" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the network interface.

", + "smithy.api#xmlName": "operator" + } + }, + "AssociatedSubnets": { + "target": "com.amazonaws.ec2#AssociatedSubnetList", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedSubnetSet", + "smithy.api#documentation": "

The subnets associated with this network interface.

", + "smithy.api#xmlName": "associatedSubnetSet" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceAssociation": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationId", + "smithy.api#documentation": "

The allocation ID.

", + "smithy.api#xmlName": "allocationId" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The association ID.

", + "smithy.api#xmlName": "associationId" + } + }, + "IpOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpOwnerId", + "smithy.api#documentation": "

The ID of the Elastic IP address owner.

", + "smithy.api#xmlName": "ipOwnerId" + } + }, + "PublicDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicDnsName", + "smithy.api#documentation": "

The public DNS name.

", + "smithy.api#xmlName": "publicDnsName" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The address of the Elastic IP address bound to the network interface.

", + "smithy.api#xmlName": "publicIp" + } + }, + "CustomerOwnedIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIp", + "smithy.api#documentation": "

The customer-owned IP address associated with the network interface.

", + "smithy.api#xmlName": "customerOwnedIp" + } + }, + "CarrierIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CarrierIp", + "smithy.api#documentation": "

The carrier IP address associated with the network interface.

\n

This option is only available when the network interface is in a subnet which is\n associated with a Wavelength Zone.

", + "smithy.api#xmlName": "carrierIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes association information for an Elastic IP address (IPv4 only), or a Carrier\n IP address (for a network interface which resides in a subnet in a Wavelength\n Zone).

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceAttachment": { + "type": "structure", + "members": { + "AttachTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The timestamp indicating when the attachment initiated.

", + "smithy.api#xmlName": "attachTime" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the network interface attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the network interface is deleted when the instance is\n terminated.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The device index of the network interface attachment on the instance.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the instance.

", + "smithy.api#xmlName": "instanceOwnerId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state.

", + "smithy.api#xmlName": "status" + } + }, + "EnaSrdSpecification": { + "target": "com.amazonaws.ec2#AttachmentEnaSrdSpecification", + "traits": { + "aws.protocols#ec2QueryName": "EnaSrdSpecification", + "smithy.api#documentation": "

Configures ENA Express for the network interface that this action attaches to the\n instance.

", + "smithy.api#xmlName": "enaSrdSpecification" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EnaQueueCount", + "smithy.api#documentation": "

The number of ENA queues created with the instance.

", + "smithy.api#xmlName": "enaQueueCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface attachment.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceAttachmentChanges": { + "type": "structure", + "members": { + "DefaultEnaQueueCount": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

The default number of the ENA queues.

" + } + }, + "EnaQueueCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of ENA queues to be created with the instance.

" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#NetworkInterfaceAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the network interface attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the network interface is deleted when the instance is\n terminated.

", + "smithy.api#xmlName": "deleteOnTermination" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an attachment change.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceAttachmentId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInterfaceAttribute": { + "type": "enum", + "members": { + "description": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "description" + } + }, + "groupSet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "groupSet" + } + }, + "sourceDestCheck": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sourceDestCheck" + } + }, + "attachment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attachment" + } + }, + "associatePublicIpAddress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associatePublicIpAddress" + } + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceCount": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum number of network interfaces. If this parameter is not specified, there is no\n minimum limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum number of network interfaces. If this parameter is not specified, there is no\n maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of network interfaces.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceCountRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum number of network interfaces. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of network interfaces. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of network interfaces.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceCreationType": { + "type": "enum", + "members": { + "efa": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa" + } + }, + "efa_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa-only" + } + }, + "branch": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch" + } + }, + "trunk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trunk" + } + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInterfaceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceIpv6Address": { + "type": "structure", + "members": { + "Ipv6Address": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Address", + "smithy.api#documentation": "

The IPv6 address.

", + "smithy.api#xmlName": "ipv6Address" + } + }, + "PublicIpv6DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv6DnsName", + "smithy.api#documentation": "

An IPv6-enabled public hostname for a network interface. Requests from within the VPC or from the internet resolve to the IPv6 GUA of the network interface. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "publicIpv6DnsName" + } + }, + "IsPrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPrimaryIpv6", + "smithy.api#documentation": "

Determines if an IPv6 address associated with a network interface is the primary IPv6\n address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA\n will be made the primary IPv6 address until the instance is terminated or the network\n interface is detached. For more information, see ModifyNetworkInterfaceAttribute.

", + "smithy.api#xmlName": "isPrimaryIpv6" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address associated with a network interface.

" + } + }, + "com.amazonaws.ec2#NetworkInterfaceIpv6AddressesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfaceIpv6Address", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfacePermission": { + "type": "structure", + "members": { + "NetworkInterfacePermissionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfacePermissionId", + "smithy.api#documentation": "

The ID of the network interface permission.

", + "smithy.api#xmlName": "networkInterfacePermissionId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "AwsAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsAccountId", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", + "smithy.api#xmlName": "awsAccountId" + } + }, + "AwsService": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsService", + "smithy.api#documentation": "

The Amazon Web Services service.

", + "smithy.api#xmlName": "awsService" + } + }, + "Permission": { + "target": "com.amazonaws.ec2#InterfacePermissionType", + "traits": { + "aws.protocols#ec2QueryName": "Permission", + "smithy.api#documentation": "

The type of permission.

", + "smithy.api#xmlName": "permission" + } + }, + "PermissionState": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionState", + "traits": { + "aws.protocols#ec2QueryName": "PermissionState", + "smithy.api#documentation": "

Information about the state of the permission.

", + "smithy.api#xmlName": "permissionState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a permission for a network interface.

" + } + }, + "com.amazonaws.ec2#NetworkInterfacePermissionId": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkInterfacePermissionIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionId" + } + }, + "com.amazonaws.ec2#NetworkInterfacePermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfacePermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfacePermissionState": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#NetworkInterfacePermissionStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the permission.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A status message, if applicable.

", + "smithy.api#xmlName": "statusMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a network interface permission.

" + } + }, + "com.amazonaws.ec2#NetworkInterfacePermissionStateCode": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "granted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "granted" + } + }, + "revoking": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "revoking" + } + }, + "revoked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "revoked" + } + } + } + }, + "com.amazonaws.ec2#NetworkInterfacePrivateIpAddress": { + "type": "structure", + "members": { + "Association": { + "target": "com.amazonaws.ec2#NetworkInterfaceAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The association information for an Elastic IP address (IPv4) associated with the\n network interface.

", + "smithy.api#xmlName": "association" + } + }, + "Primary": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Primary", + "smithy.api#documentation": "

Indicates whether this IPv4 address is the primary private IPv4 address of the network\n interface.

", + "smithy.api#xmlName": "primary" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private DNS name.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the private IPv4 address of a network interface.

" + } + }, + "com.amazonaws.ec2#NetworkInterfacePrivateIpAddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfacePrivateIpAddress", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceStatus": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "attaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attaching" + } + }, + "in_use": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-use" + } + }, + "detaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detaching" + } + } + } + }, + "com.amazonaws.ec2#NetworkInterfaceType": { + "type": "enum", + "members": { + "interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "interface" + } + }, + "natGateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "natGateway" + } + }, + "efa": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa" + } + }, + "efa_only": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "efa-only" + } + }, + "trunk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "trunk" + } + }, + "load_balancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "load_balancer" + } + }, + "network_load_balancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network_load_balancer" + } + }, + "vpc_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc_endpoint" + } + }, + "branch": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch" + } + }, + "transit_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit_gateway" + } + }, + "lambda": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lambda" + } + }, + "quicksight": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "quicksight" + } + }, + "global_accelerator_managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "global_accelerator_managed" + } + }, + "api_gateway_managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "api_gateway_managed" + } + }, + "gateway_load_balancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gateway_load_balancer" + } + }, + "gateway_load_balancer_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gateway_load_balancer_endpoint" + } + }, + "iot_rules_managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "iot_rules_managed" + } + }, + "aws_codestar_connections_managed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws_codestar_connections_managed" + } + } + } + }, + "com.amazonaws.ec2#NetworkNodeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkNodesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NetworkPerformance": { + "type": "string" + }, + "com.amazonaws.ec2#NetworkProtocolEnum": { + "type": "enum", + "members": { + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http" + } + }, + "HTTPS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "https" + } + } + } + }, + "com.amazonaws.ec2#NeuronDeviceCoreCount": { + "type": "integer" + }, + "com.amazonaws.ec2#NeuronDeviceCoreInfo": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#NeuronDeviceCoreCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of cores available to the neuron accelerator.

", + "smithy.api#xmlName": "count" + } + }, + "Version": { + "target": "com.amazonaws.ec2#NeuronDeviceCoreVersion", + "traits": { + "aws.protocols#ec2QueryName": "Version", + "smithy.api#documentation": "

The version of the neuron accelerator.

", + "smithy.api#xmlName": "version" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the cores available to the neuron accelerator.

" + } + }, + "com.amazonaws.ec2#NeuronDeviceCoreVersion": { + "type": "integer" + }, + "com.amazonaws.ec2#NeuronDeviceCount": { + "type": "integer" + }, + "com.amazonaws.ec2#NeuronDeviceInfo": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#NeuronDeviceCount", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of neuron accelerators for the instance type.

", + "smithy.api#xmlName": "count" + } + }, + "Name": { + "target": "com.amazonaws.ec2#NeuronDeviceName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the neuron accelerator.

", + "smithy.api#xmlName": "name" + } + }, + "CoreInfo": { + "target": "com.amazonaws.ec2#NeuronDeviceCoreInfo", + "traits": { + "aws.protocols#ec2QueryName": "CoreInfo", + "smithy.api#documentation": "

Describes the cores available to each neuron accelerator.

", + "smithy.api#xmlName": "coreInfo" + } + }, + "MemoryInfo": { + "target": "com.amazonaws.ec2#NeuronDeviceMemoryInfo", + "traits": { + "aws.protocols#ec2QueryName": "MemoryInfo", + "smithy.api#documentation": "

Describes the memory available to each neuron accelerator.

", + "smithy.api#xmlName": "memoryInfo" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the neuron accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#NeuronDeviceInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NeuronDeviceInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NeuronDeviceMemoryInfo": { + "type": "structure", + "members": { + "SizeInMiB": { + "target": "com.amazonaws.ec2#NeuronDeviceMemorySize", + "traits": { + "aws.protocols#ec2QueryName": "SizeInMiB", + "smithy.api#documentation": "

The size of the memory available to the neuron accelerator, in MiB.

", + "smithy.api#xmlName": "sizeInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the memory available to the neuron accelerator.

" + } + }, + "com.amazonaws.ec2#NeuronDeviceMemorySize": { + "type": "integer" + }, + "com.amazonaws.ec2#NeuronDeviceName": { + "type": "string" + }, + "com.amazonaws.ec2#NeuronInfo": { + "type": "structure", + "members": { + "NeuronDevices": { + "target": "com.amazonaws.ec2#NeuronDeviceInfoList", + "traits": { + "aws.protocols#ec2QueryName": "NeuronDevices", + "smithy.api#documentation": "

Describes the neuron accelerators for the instance type.

", + "smithy.api#xmlName": "neuronDevices" + } + }, + "TotalNeuronDeviceMemoryInMiB": { + "target": "com.amazonaws.ec2#TotalNeuronMemory", + "traits": { + "aws.protocols#ec2QueryName": "TotalNeuronDeviceMemoryInMiB", + "smithy.api#documentation": "

The total size of the memory for the neuron accelerators for the instance type, in\n MiB.

", + "smithy.api#xmlName": "totalNeuronDeviceMemoryInMiB" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the neuron accelerators for the instance type.

" + } + }, + "com.amazonaws.ec2#NewDhcpConfiguration": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The name of a DHCP option.

", + "smithy.api#xmlName": "key" + } + }, + "Values": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The values for the DHCP option.

", + "smithy.api#xmlName": "Value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a DHCP configuration option.

" + } + }, + "com.amazonaws.ec2#NewDhcpConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NewDhcpConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#NextToken": { + "type": "string" + }, + "com.amazonaws.ec2#NitroEnclavesSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#NitroTpmInfo": { + "type": "structure", + "members": { + "SupportedVersions": { + "target": "com.amazonaws.ec2#NitroTpmSupportedVersionsList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedVersions", + "smithy.api#documentation": "

Indicates the supported NitroTPM versions.

", + "smithy.api#xmlName": "supportedVersions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the supported NitroTPM versions for the instance type.

" + } + }, + "com.amazonaws.ec2#NitroTpmSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#NitroTpmSupportedVersionType": { + "type": "string" + }, + "com.amazonaws.ec2#NitroTpmSupportedVersionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NitroTpmSupportedVersionType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#OccurrenceDayRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#xmlName": "OccurenceDay" + } + } + }, + "com.amazonaws.ec2#OccurrenceDaySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#OdbNetworkArn": { + "type": "string" + }, + "com.amazonaws.ec2#OfferingClassType": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "CONVERTIBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "convertible" + } + } + } + }, + "com.amazonaws.ec2#OfferingId": { + "type": "string" + }, + "com.amazonaws.ec2#OfferingTypeValues": { + "type": "enum", + "members": { + "Heavy_Utilization": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Heavy Utilization" + } + }, + "Medium_Utilization": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Medium Utilization" + } + }, + "Light_Utilization": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Light Utilization" + } + }, + "No_Upfront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Upfront" + } + }, + "Partial_Upfront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Partial Upfront" + } + }, + "All_Upfront": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "All Upfront" + } + } + } + }, + "com.amazonaws.ec2#OidcOptions": { + "type": "structure", + "members": { + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Issuer", + "smithy.api#documentation": "

The OIDC issuer.

", + "smithy.api#xmlName": "issuer" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AuthorizationEndpoint", + "smithy.api#documentation": "

The OIDC authorization endpoint.

", + "smithy.api#xmlName": "authorizationEndpoint" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TokenEndpoint", + "smithy.api#documentation": "

The OIDC token endpoint.

", + "smithy.api#xmlName": "tokenEndpoint" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserInfoEndpoint", + "smithy.api#documentation": "

The OIDC user info endpoint.

", + "smithy.api#xmlName": "userInfoEndpoint" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientId", + "smithy.api#documentation": "

The client identifier.

", + "smithy.api#xmlName": "clientId" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "aws.protocols#ec2QueryName": "ClientSecret", + "smithy.api#documentation": "

The client secret.

", + "smithy.api#xmlName": "clientSecret" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

The OpenID Connect (OIDC) scope specified.

", + "smithy.api#xmlName": "scope" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for an OpenID Connect-compatible user-identity trust\n provider.

" + } + }, + "com.amazonaws.ec2#OnDemandAllocationStrategy": { + "type": "enum", + "members": { + "LOWEST_PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lowestPrice" + } + }, + "PRIORITIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prioritized" + } + } + } + }, + "com.amazonaws.ec2#OnDemandOptions": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#FleetOnDemandAllocationStrategy", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy that determines the order of the launch template overrides to use in\n fulfilling On-Demand capacity.

\n

\n lowest-price - EC2 Fleet uses price to determine the order, launching the lowest\n price first.

\n

\n prioritized - EC2 Fleet uses the priority that you assigned to each launch\n template override, launching the highest priority first.

\n

Default: lowest-price\n

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "CapacityReservationOptions": { + "target": "com.amazonaws.ec2#CapacityReservationOptions", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationOptions", + "smithy.api#documentation": "

The strategy for using unused Capacity Reservations for fulfilling On-Demand\n capacity.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "capacityReservationOptions" + } + }, + "SingleInstanceType": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SingleInstanceType", + "smithy.api#documentation": "

Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the\n fleet.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "singleInstanceType" + } + }, + "SingleAvailabilityZone": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SingleAvailabilityZone", + "smithy.api#documentation": "

Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "singleAvailabilityZone" + } + }, + "MinTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MinTargetCapacity", + "smithy.api#documentation": "

The minimum target capacity for On-Demand Instances in the fleet. If this minimum capacity isn't\n reached, no instances are launched.

\n

Constraints: Maximum value of 1000. Supported only for fleets of type\n instant.

\n

At least one of the following must be specified: SingleAvailabilityZone |\n SingleInstanceType\n

", + "smithy.api#xmlName": "minTargetCapacity" + } + }, + "MaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MaxTotalPrice", + "smithy.api#documentation": "

The maximum amount per hour for On-Demand Instances that you're willing to pay.

\n \n

If your fleet includes T instances that are configured as unlimited, and\n if their average CPU usage exceeds the baseline utilization, you will incur a charge for\n surplus credits. The maxTotalPrice does not account for surplus credits,\n and, if you use surplus credits, your final cost might be higher than what you specified\n for maxTotalPrice. For more information, see Surplus credits can incur charges in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#xmlName": "maxTotalPrice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of On-Demand Instances in an EC2 Fleet.

" + } + }, + "com.amazonaws.ec2#OnDemandOptionsRequest": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#FleetOnDemandAllocationStrategy", + "traits": { + "smithy.api#documentation": "

The strategy that determines the order of the launch template overrides to use in\n fulfilling On-Demand capacity.

\n

\n lowest-price - EC2 Fleet uses price to determine the order, launching the lowest\n price first.

\n

\n prioritized - EC2 Fleet uses the priority that you assigned to each launch\n template override, launching the highest priority first.

\n

Default: lowest-price\n

" + } + }, + "CapacityReservationOptions": { + "target": "com.amazonaws.ec2#CapacityReservationOptionsRequest", + "traits": { + "smithy.api#documentation": "

The strategy for using unused Capacity Reservations for fulfilling On-Demand\n capacity.

\n

Supported only for fleets of type instant.

" + } + }, + "SingleInstanceType": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the\n fleet.

\n

Supported only for fleets of type instant.

" + } + }, + "SingleAvailabilityZone": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.

\n

Supported only for fleets of type instant.

" + } + }, + "MinTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum target capacity for On-Demand Instances in the fleet. If this minimum capacity isn't\n reached, no instances are launched.

\n

Constraints: Maximum value of 1000. Supported only for fleets of type\n instant.

\n

At least one of the following must be specified: SingleAvailabilityZone |\n SingleInstanceType\n

" + } + }, + "MaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The maximum amount per hour for On-Demand Instances that you're willing to pay.

\n \n

If your fleet includes T instances that are configured as unlimited,\n and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n for surplus credits. The MaxTotalPrice does not account for surplus\n credits, and, if you use surplus credits, your final cost might be higher than what you\n specified for MaxTotalPrice. For more information, see Surplus credits can incur charges in the Amazon EC2 User Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of On-Demand Instances in an EC2 Fleet.

" + } + }, + "com.amazonaws.ec2#OperationType": { + "type": "enum", + "members": { + "add": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "add" + } + }, + "remove": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "remove" + } + } + } + }, + "com.amazonaws.ec2#OperatorRequest": { + "type": "structure", + "members": { + "Principal": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The service provider that manages the resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service provider that manages the resource.

" + } + }, + "com.amazonaws.ec2#OperatorResponse": { + "type": "structure", + "members": { + "Managed": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Managed", + "smithy.api#documentation": "

If true, the resource is managed by a service provider.

", + "smithy.api#xmlName": "managed" + } + }, + "Principal": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Principal", + "smithy.api#documentation": "

If managed is true, then the principal is returned. The\n principal is the service provider that manages the resource.

", + "smithy.api#xmlName": "principal" + } + }, + "HiddenByDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "HiddenByDefault", + "smithy.api#documentation": "

If true, the resource is hidden by default based on the managed resource\n visibility settings for the account.

", + "smithy.api#xmlName": "hiddenByDefault" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether the resource is managed by a service provider and, if so, describes\n the service provider that manages it.

" + } + }, + "com.amazonaws.ec2#OrganizationArnStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "OrganizationArn" + } + } + }, + "com.amazonaws.ec2#OrganizationalUnitArnStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "OrganizationalUnitArn" + } + } + }, + "com.amazonaws.ec2#OutpostArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$" + } + }, + "com.amazonaws.ec2#OutpostLag": { + "type": "structure", + "members": { + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the Outpost LAG.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Outpost LAG owner.

", + "smithy.api#xmlName": "ownerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the Outpost LAG.

", + "smithy.api#xmlName": "state" + } + }, + "OutpostLagId": { + "target": "com.amazonaws.ec2#OutpostLagId", + "traits": { + "aws.protocols#ec2QueryName": "OutpostLagId", + "smithy.api#documentation": "

The ID of the Outpost LAG.

", + "smithy.api#xmlName": "outpostLagId" + } + }, + "LocalGatewayVirtualInterfaceIds": { + "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceIdSet", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayVirtualInterfaceIdSet", + "smithy.api#documentation": "

The IDs of the local gateway virtual interfaces associated with the Outpost LAG.

", + "smithy.api#xmlName": "localGatewayVirtualInterfaceIdSet" + } + }, + "ServiceLinkVirtualInterfaceIds": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceIdSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceLinkVirtualInterfaceIdSet", + "smithy.api#documentation": "

The service link virtual interface IDs associated with the Outpost LAG.

", + "smithy.api#xmlName": "serviceLinkVirtualInterfaceIdSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags associated with the Outpost LAG.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Outpost link aggregation group (LAG).

" + } + }, + "com.amazonaws.ec2#OutpostLagId": { + "type": "string" + }, + "com.amazonaws.ec2#OutpostLagIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#OutpostLagId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#OutpostLagMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#OutpostLagSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#OutpostLag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#OutputFormat": { + "type": "enum", + "members": { + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "csv" + } + }, + "PARQUET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "parquet" + } + } + } + }, + "com.amazonaws.ec2#OwnerStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "Owner" + } + } + }, + "com.amazonaws.ec2#PacketHeaderStatement": { + "type": "structure", + "members": { + "SourceAddresses": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SourceAddressSet", + "smithy.api#documentation": "

The source addresses.

", + "smithy.api#xmlName": "sourceAddressSet" + } + }, + "DestinationAddresses": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationAddressSet", + "smithy.api#documentation": "

The destination addresses.

", + "smithy.api#xmlName": "destinationAddressSet" + } + }, + "SourcePorts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortSet", + "smithy.api#documentation": "

The source ports.

", + "smithy.api#xmlName": "sourcePortSet" + } + }, + "DestinationPorts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortSet", + "smithy.api#documentation": "

The destination ports.

", + "smithy.api#xmlName": "destinationPortSet" + } + }, + "SourcePrefixLists": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SourcePrefixListSet", + "smithy.api#documentation": "

The source prefix lists.

", + "smithy.api#xmlName": "sourcePrefixListSet" + } + }, + "DestinationPrefixLists": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPrefixListSet", + "smithy.api#documentation": "

The destination prefix lists.

", + "smithy.api#xmlName": "destinationPrefixListSet" + } + }, + "Protocols": { + "target": "com.amazonaws.ec2#ProtocolList", + "traits": { + "aws.protocols#ec2QueryName": "ProtocolSet", + "smithy.api#documentation": "

The protocols.

", + "smithy.api#xmlName": "protocolSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a packet header statement.

" + } + }, + "com.amazonaws.ec2#PacketHeaderStatementRequest": { + "type": "structure", + "members": { + "SourceAddresses": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The source addresses.

", + "smithy.api#xmlName": "SourceAddress" + } + }, + "DestinationAddresses": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The destination addresses.

", + "smithy.api#xmlName": "DestinationAddress" + } + }, + "SourcePorts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The source ports.

", + "smithy.api#xmlName": "SourcePort" + } + }, + "DestinationPorts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The destination ports.

", + "smithy.api#xmlName": "DestinationPort" + } + }, + "SourcePrefixLists": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The source prefix lists.

", + "smithy.api#xmlName": "SourcePrefixList" + } + }, + "DestinationPrefixLists": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The destination prefix lists.

", + "smithy.api#xmlName": "DestinationPrefixList" + } + }, + "Protocols": { + "target": "com.amazonaws.ec2#ProtocolList", + "traits": { + "smithy.api#documentation": "

The protocols.

", + "smithy.api#xmlName": "Protocol" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a packet header statement.

" + } + }, + "com.amazonaws.ec2#PartitionLoadFrequency": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "DAILY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "daily" + } + }, + "WEEKLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "weekly" + } + }, + "MONTHLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "monthly" + } + } + } + }, + "com.amazonaws.ec2#PasswordData": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#PathComponent": { + "type": "structure", + "members": { + "SequenceNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SequenceNumber", + "smithy.api#documentation": "

The sequence number.

", + "smithy.api#xmlName": "sequenceNumber" + } + }, + "AclRule": { + "target": "com.amazonaws.ec2#AnalysisAclRule", + "traits": { + "aws.protocols#ec2QueryName": "AclRule", + "smithy.api#documentation": "

The network ACL rule.

", + "smithy.api#xmlName": "aclRule" + } + }, + "AttachedTo": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "AttachedTo", + "smithy.api#documentation": "

The resource to which the path component is attached.

", + "smithy.api#xmlName": "attachedTo" + } + }, + "Component": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Component", + "smithy.api#documentation": "

The component.

", + "smithy.api#xmlName": "component" + } + }, + "DestinationVpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "DestinationVpc", + "smithy.api#documentation": "

The destination VPC.

", + "smithy.api#xmlName": "destinationVpc" + } + }, + "OutboundHeader": { + "target": "com.amazonaws.ec2#AnalysisPacketHeader", + "traits": { + "aws.protocols#ec2QueryName": "OutboundHeader", + "smithy.api#documentation": "

The outbound header.

", + "smithy.api#xmlName": "outboundHeader" + } + }, + "InboundHeader": { + "target": "com.amazonaws.ec2#AnalysisPacketHeader", + "traits": { + "aws.protocols#ec2QueryName": "InboundHeader", + "smithy.api#documentation": "

The inbound header.

", + "smithy.api#xmlName": "inboundHeader" + } + }, + "RouteTableRoute": { + "target": "com.amazonaws.ec2#AnalysisRouteTableRoute", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableRoute", + "smithy.api#documentation": "

The route table route.

", + "smithy.api#xmlName": "routeTableRoute" + } + }, + "SecurityGroupRule": { + "target": "com.amazonaws.ec2#AnalysisSecurityGroupRule", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRule", + "smithy.api#documentation": "

The security group rule.

", + "smithy.api#xmlName": "securityGroupRule" + } + }, + "SourceVpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "SourceVpc", + "smithy.api#documentation": "

The source VPC.

", + "smithy.api#xmlName": "sourceVpc" + } + }, + "Subnet": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Subnet", + "smithy.api#documentation": "

The subnet.

", + "smithy.api#xmlName": "subnet" + } + }, + "Vpc": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "Vpc", + "smithy.api#documentation": "

The component VPC.

", + "smithy.api#xmlName": "vpc" + } + }, + "AdditionalDetails": { + "target": "com.amazonaws.ec2#AdditionalDetailList", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalDetailSet", + "smithy.api#documentation": "

The additional details.

", + "smithy.api#xmlName": "additionalDetailSet" + } + }, + "TransitGateway": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "TransitGateway", + "smithy.api#documentation": "

The transit gateway.

", + "smithy.api#xmlName": "transitGateway" + } + }, + "TransitGatewayRouteTableRoute": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableRoute", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableRoute", + "smithy.api#documentation": "

The route in a transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableRoute" + } + }, + "TransitGatewayPolicyTableEntry": { + "target": "com.amazonaws.ec2#AnalysisTransitGatewayPolicyTableEntry", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableEntry", + "smithy.api#documentation": "

The entry in a transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTableEntry" + } + }, + "Explanations": { + "target": "com.amazonaws.ec2#ExplanationList", + "traits": { + "aws.protocols#ec2QueryName": "ExplanationSet", + "smithy.api#documentation": "

The explanation codes.

", + "smithy.api#xmlName": "explanationSet" + } + }, + "ElasticLoadBalancerListener": { + "target": "com.amazonaws.ec2#AnalysisComponent", + "traits": { + "aws.protocols#ec2QueryName": "ElasticLoadBalancerListener", + "smithy.api#documentation": "

The load balancer listener.

", + "smithy.api#xmlName": "elasticLoadBalancerListener" + } + }, + "FirewallStatelessRule": { + "target": "com.amazonaws.ec2#FirewallStatelessRule", + "traits": { + "aws.protocols#ec2QueryName": "FirewallStatelessRule", + "smithy.api#documentation": "

The Network Firewall stateless rule.

", + "smithy.api#xmlName": "firewallStatelessRule" + } + }, + "FirewallStatefulRule": { + "target": "com.amazonaws.ec2#FirewallStatefulRule", + "traits": { + "aws.protocols#ec2QueryName": "FirewallStatefulRule", + "smithy.api#documentation": "

The Network Firewall stateful rule.

", + "smithy.api#xmlName": "firewallStatefulRule" + } + }, + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceName", + "smithy.api#documentation": "

The name of the VPC endpoint service.

", + "smithy.api#xmlName": "serviceName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path component.

" + } + }, + "com.amazonaws.ec2#PathComponentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PathComponent", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PathFilter": { + "type": "structure", + "members": { + "SourceAddress": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "SourceAddress", + "smithy.api#documentation": "

The source IPv4 address.

", + "smithy.api#xmlName": "sourceAddress" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#FilterPortRange", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRange", + "smithy.api#documentation": "

The source port range.

", + "smithy.api#xmlName": "sourcePortRange" + } + }, + "DestinationAddress": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "aws.protocols#ec2QueryName": "DestinationAddress", + "smithy.api#documentation": "

The destination IPv4 address.

", + "smithy.api#xmlName": "destinationAddress" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#FilterPortRange", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRange", + "smithy.api#documentation": "

The destination port range.

", + "smithy.api#xmlName": "destinationPortRange" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a set of filters for a path analysis. Use path filters to scope the analysis when\n there can be multiple resulting paths.

" + } + }, + "com.amazonaws.ec2#PathRequestFilter": { + "type": "structure", + "members": { + "SourceAddress": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "smithy.api#documentation": "

The source IPv4 address.

" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#RequestFilterPortRange", + "traits": { + "smithy.api#documentation": "

The source port range.

" + } + }, + "DestinationAddress": { + "target": "com.amazonaws.ec2#IpAddress", + "traits": { + "smithy.api#documentation": "

The destination IPv4 address.

" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#RequestFilterPortRange", + "traits": { + "smithy.api#documentation": "

The destination port range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a set of filters for a path analysis. Use path filters to scope the analysis when\n there can be multiple resulting paths.

" + } + }, + "com.amazonaws.ec2#PathStatement": { + "type": "structure", + "members": { + "PacketHeaderStatement": { + "target": "com.amazonaws.ec2#PacketHeaderStatement", + "traits": { + "aws.protocols#ec2QueryName": "PacketHeaderStatement", + "smithy.api#documentation": "

The packet header statement.

", + "smithy.api#xmlName": "packetHeaderStatement" + } + }, + "ResourceStatement": { + "target": "com.amazonaws.ec2#ResourceStatement", + "traits": { + "aws.protocols#ec2QueryName": "ResourceStatement", + "smithy.api#documentation": "

The resource statement.

", + "smithy.api#xmlName": "resourceStatement" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path statement.

" + } + }, + "com.amazonaws.ec2#PathStatementRequest": { + "type": "structure", + "members": { + "PacketHeaderStatement": { + "target": "com.amazonaws.ec2#PacketHeaderStatementRequest", + "traits": { + "smithy.api#documentation": "

The packet header statement.

" + } + }, + "ResourceStatement": { + "target": "com.amazonaws.ec2#ResourceStatementRequest", + "traits": { + "smithy.api#documentation": "

The resource statement.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a path statement.

" + } + }, + "com.amazonaws.ec2#PayerResponsibility": { + "type": "enum", + "members": { + "ServiceOwner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceOwner" + } + } + } + }, + "com.amazonaws.ec2#PayerResponsibilityEntry": { + "type": "structure", + "members": { + "Scope": { + "target": "com.amazonaws.ec2#PayerResponsibilityScope", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

The scope of usage/charges.

", + "smithy.api#xmlName": "scope" + } + }, + "PayerResponsibilityType": { + "target": "com.amazonaws.ec2#PayerResponsibilityType", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibilityType", + "smithy.api#documentation": "

The Amazon Web Services account to which the usage is charged.

", + "smithy.api#xmlName": "payerResponsibilityType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a payer responsibility setting for a VPC endpoint.

" + } + }, + "com.amazonaws.ec2#PayerResponsibilityScope": { + "type": "enum", + "members": { + "VpcEndpointCharges": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-charges" + } + }, + "ResourceGatewayCharges": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-gateway-charges" + } + } + } + }, + "com.amazonaws.ec2#PayerResponsibilitySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PayerResponsibilityEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PayerResponsibilityType": { + "type": "enum", + "members": { + "VpcEndpointAccount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-account" + } + }, + "ResourceGatewayAccount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource-gateway-account" + } + }, + "VpcEndpointServiceAccount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-service-account" + } + } + } + }, + "com.amazonaws.ec2#PaymentOption": { + "type": "enum", + "members": { + "ALL_UPFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AllUpfront" + } + }, + "PARTIAL_UPFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PartialUpfront" + } + }, + "NO_UPFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NoUpfront" + } + } + } + }, + "com.amazonaws.ec2#PciId": { + "type": "structure", + "members": { + "DeviceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the device.

" + } + }, + "VendorId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the vendor.

" + } + }, + "SubsystemId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the subsystem.

" + } + }, + "SubsystemVendorId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the vendor for the subsystem.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the data that identifies an Amazon FPGA image (AFI) on the PCI bus.

" + } + }, + "com.amazonaws.ec2#PeakBandwidthInGbps": { + "type": "double" + }, + "com.amazonaws.ec2#PeeringAttachmentStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The status message, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of the transit gateway peering attachment.

" + } + }, + "com.amazonaws.ec2#PeeringConnectionOptions": { + "type": "structure", + "members": { + "AllowDnsResolutionFromRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowDnsResolutionFromRemoteVpc", + "smithy.api#documentation": "

If true, the public DNS hostnames of instances in the specified VPC resolve to private\n IP addresses when queried from instances in the peer VPC.

", + "smithy.api#xmlName": "allowDnsResolutionFromRemoteVpc" + } + }, + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc" + } + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC peering connection options.

" + } + }, + "com.amazonaws.ec2#PeeringConnectionOptionsRequest": { + "type": "structure", + "members": { + "AllowDnsResolutionFromRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, enables a local VPC to resolve public DNS hostnames to private IP addresses \n when queried from instances in the peer VPC.

" + } + }, + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The VPC peering connection options.

" + } + }, + "com.amazonaws.ec2#PeeringTgwInfo": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "CoreNetworkId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkId", + "smithy.api#documentation": "

The ID of the core network where the transit gateway peer is located.

", + "smithy.api#xmlName": "coreNetworkId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Region": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Region", + "smithy.api#documentation": "

The Region of the transit gateway.

", + "smithy.api#xmlName": "region" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the transit gateway in the peering attachment.

" + } + }, + "com.amazonaws.ec2#PerformanceFactorReference": { + "type": "structure", + "members": { + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family to use as a baseline reference.

\n \n

Ensure that you specify the correct value for the instance family. The instance\n family is everything before the period (.) in the instance type name. For\n example, in the instance type c6i.large, the instance family is\n c6i, not c6. For more information, see Amazon EC2\n instance type naming conventions in Amazon EC2 Instance\n Types.

\n
\n

The following instance families are not supported for performance\n protection:

\n
    \n
  • \n

    \n c1\n

    \n
  • \n
  • \n

    \n g3 | g3s\n

    \n
  • \n
  • \n

    \n hpc7g\n

    \n
  • \n
  • \n

    \n m1 | m2\n

    \n
  • \n
  • \n

    \n mac1 | mac2 | mac2-m1ultra |\n mac2-m2 | mac2-m2pro\n

    \n
  • \n
  • \n

    \n p3dn | p4d | p5\n

    \n
  • \n
  • \n

    \n t1\n

    \n
  • \n
  • \n

    \n u-12tb1 | u-18tb1 | u-24tb1 |\n u-3tb1 | u-6tb1 | u-9tb1 |\n u7i-12tb | u7in-16tb | u7in-24tb |\n u7in-32tb\n

    \n
  • \n
\n

If you enable performance protection by specifying a supported instance family, the\n returned instance types will exclude the above unsupported instance families.

\n

If you specify an unsupported instance family as a value for baseline performance, the\n API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest.

", + "smithy.api#xmlName": "instanceFamily" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specify an instance family to use as the baseline reference for CPU performance. All\n instance types that match your specified attributes will be compared against the CPU\n performance of the referenced instance family, regardless of CPU manufacturer or\n architecture.

\n \n

Currently, only one instance family can be specified in the list.

\n
" + } + }, + "com.amazonaws.ec2#PerformanceFactorReferenceRequest": { + "type": "structure", + "members": { + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The instance family to use as a baseline reference.

\n \n

Ensure that you specify the correct value for the instance family. The instance\n family is everything before the period (.) in the instance type name. For\n example, in the instance type c6i.large, the instance family is\n c6i, not c6. For more information, see Amazon EC2\n instance type naming conventions in Amazon EC2 Instance\n Types.

\n
\n

The following instance families are not supported for performance\n protection:

\n
    \n
  • \n

    \n c1\n

    \n
  • \n
  • \n

    \n g3 | g3s\n

    \n
  • \n
  • \n

    \n hpc7g\n

    \n
  • \n
  • \n

    \n m1 | m2\n

    \n
  • \n
  • \n

    \n mac1 | mac2 | mac2-m1ultra |\n mac2-m2 | mac2-m2pro\n

    \n
  • \n
  • \n

    \n p3dn | p4d | p5\n

    \n
  • \n
  • \n

    \n t1\n

    \n
  • \n
  • \n

    \n u-12tb1 | u-18tb1 | u-24tb1 |\n u-3tb1 | u-6tb1 | u-9tb1 |\n u7i-12tb | u7in-16tb | u7in-24tb |\n u7in-32tb\n

    \n
  • \n
\n

If you enable performance protection by specifying a supported instance family, the\n returned instance types will exclude the above unsupported instance families.

\n

If you specify an unsupported instance family as a value for baseline performance, the\n API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specify an instance family to use as the baseline reference for CPU performance. All\n instance types that match your specified attributes will be compared against the CPU\n performance of the referenced instance family, regardless of CPU manufacturer or\n architecture.

\n \n

Currently, only one instance family can be specified in the list.

\n
" + } + }, + "com.amazonaws.ec2#PerformanceFactorReferenceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PerformanceFactorReference", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PerformanceFactorReferenceSetRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PerformanceFactorReferenceRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PerformanceStatusSummary": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#SummaryStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current status.

", + "smithy.api#xmlName": "status" + } + }, + "ImpairedSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ImpairedSince", + "smithy.api#documentation": "

The date and time when the performance status became impaired.

", + "smithy.api#xmlName": "impairedSince" + } + }, + "Remediation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Remediation", + "smithy.api#documentation": "

The recommended action to remediate the impaired instance, if one is available. This\n value is returned only when the instance is impaired.

", + "smithy.api#xmlName": "remediation" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summary of the performance status check results for an instance.

" + } + }, + "com.amazonaws.ec2#Period": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 3600 + } + } + }, + "com.amazonaws.ec2#PeriodType": { + "type": "enum", + "members": { + "five_minutes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "five-minutes" + } + }, + "fifteen_minutes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fifteen-minutes" + } + }, + "one_hour": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "one-hour" + } + }, + "three_hours": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "three-hours" + } + }, + "one_day": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "one-day" + } + }, + "one_week": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "one-week" + } + } + } + }, + "com.amazonaws.ec2#PermissionGroup": { + "type": "enum", + "members": { + "all": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + } + }, + "com.amazonaws.ec2#Phase1DHGroupNumbersList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1DHGroupNumbersListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1DHGroupNumbersListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The Diffie-Hellmann group number.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Diffie-Hellmann group number for phase 1 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase1DHGroupNumbersRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1DHGroupNumbersRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1DHGroupNumbersRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The Diffie-Hellmann group number.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#Phase1EncryptionAlgorithmsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1EncryptionAlgorithmsListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1EncryptionAlgorithmsListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value for the encryption algorithm.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The encryption algorithm for phase 1 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase1EncryptionAlgorithmsRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1EncryptionAlgorithmsRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1EncryptionAlgorithmsRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value for the encryption algorithm.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#Phase1IntegrityAlgorithmsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1IntegrityAlgorithmsListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1IntegrityAlgorithmsListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value for the integrity algorithm.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The integrity algorithm for phase 1 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase1IntegrityAlgorithmsRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase1IntegrityAlgorithmsRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase1IntegrityAlgorithmsRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value for the integrity algorithm.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2DHGroupNumbersList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2DHGroupNumbersListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2DHGroupNumbersListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The Diffie-Hellmann group number.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Diffie-Hellmann group number for phase 2 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2DHGroupNumbersRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2DHGroupNumbersRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2DHGroupNumbersRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The Diffie-Hellmann group number.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2EncryptionAlgorithmsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2EncryptionAlgorithmsListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2EncryptionAlgorithmsListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The encryption algorithm.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The encryption algorithm for phase 2 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2EncryptionAlgorithmsRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2EncryptionAlgorithmsRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2EncryptionAlgorithmsRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The encryption algorithm.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2IntegrityAlgorithmsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2IntegrityAlgorithmsListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2IntegrityAlgorithmsListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The integrity algorithm.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

The integrity algorithm for phase 2 IKE negotiations.

" + } + }, + "com.amazonaws.ec2#Phase2IntegrityAlgorithmsRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Phase2IntegrityAlgorithmsRequestListValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Phase2IntegrityAlgorithmsRequestListValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The integrity algorithm.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "com.amazonaws.ec2#PhcSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#Placement": { + "type": "structure", + "members": { + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the instance.

\n

On input, you can specify AvailabilityZone or AvailabilityZoneId, \n but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone\n for you.

\n

This parameter is not supported for CreateFleet.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Affinity": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Affinity", + "smithy.api#documentation": "

The affinity setting for the instance on the Dedicated Host.

\n

This parameter is not supported for CreateFleet or ImportInstance.

", + "smithy.api#xmlName": "affinity" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group that the instance is in.

\n

On input, you can specify GroupId or GroupName,\n but not both.

", + "smithy.api#xmlName": "groupName" + } + }, + "PartitionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PartitionNumber", + "smithy.api#documentation": "

The number of the partition that the instance is in. Valid only if the placement group\n strategy is set to partition.

\n

This parameter is not supported for CreateFleet.

", + "smithy.api#xmlName": "partitionNumber" + } + }, + "HostId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#documentation": "

The ID of the Dedicated Host on which the instance resides.

\n

This parameter is not supported for CreateFleet or ImportInstance.

", + "smithy.api#xmlName": "hostId" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the instance. An instance with a\n tenancy of dedicated runs on single-tenant hardware.

\n

This parameter is not supported for CreateFleet. The\n host tenancy is not supported for ImportInstance or\n for T3 instances that are configured for the unlimited CPU credit\n option.

", + "smithy.api#xmlName": "tenancy" + } + }, + "SpreadDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpreadDomain", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "spreadDomain" + } + }, + "HostResourceGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HostResourceGroupArn", + "smithy.api#documentation": "

The ARN of the host resource group in which to launch the instances.

\n

On input, if you specify this parameter, either omit the Tenancy parameter or set it to host.

\n

This parameter is not supported for CreateFleet.

", + "smithy.api#xmlName": "hostResourceGroupArn" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the placement group that the instance is in.

\n

On input, you can specify GroupId or GroupName,\n but not both.

", + "smithy.api#xmlName": "groupId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the instance.

\n

On input, you can specify AvailabilityZone or AvailabilityZoneId, \n but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone\n for you.

\n

This parameter is not supported for CreateFleet.

", + "smithy.api#xmlName": "availabilityZone" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement of an instance.

" + } + }, + "com.amazonaws.ec2#PlacementGroup": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group.

", + "smithy.api#xmlName": "groupName" + } + }, + "State": { + "target": "com.amazonaws.ec2#PlacementGroupState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the placement group.

", + "smithy.api#xmlName": "state" + } + }, + "Strategy": { + "target": "com.amazonaws.ec2#PlacementStrategy", + "traits": { + "aws.protocols#ec2QueryName": "Strategy", + "smithy.api#documentation": "

The placement strategy.

", + "smithy.api#xmlName": "strategy" + } + }, + "PartitionCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PartitionCount", + "smithy.api#documentation": "

The number of partitions. Valid only if strategy is\n set to partition.

", + "smithy.api#xmlName": "partitionCount" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the placement group.

", + "smithy.api#xmlName": "groupId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags applied to the placement group.

", + "smithy.api#xmlName": "tagSet" + } + }, + "GroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the placement group.

", + "smithy.api#xmlName": "groupArn" + } + }, + "SpreadLevel": { + "target": "com.amazonaws.ec2#SpreadLevel", + "traits": { + "aws.protocols#ec2QueryName": "SpreadLevel", + "smithy.api#documentation": "

The spread level for the placement group. Only Outpost placement\n groups can be spread across hosts.

", + "smithy.api#xmlName": "spreadLevel" + } + }, + "LinkedGroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "aws.protocols#ec2QueryName": "LinkedGroupId", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "linkedGroupId" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the Placement Group.

", + "smithy.api#xmlName": "operator" + } + }, + "ParentGroupId": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "aws.protocols#ec2QueryName": "ParentGroupId", + "smithy.api#documentation": "

The ID of the parent placement group.

", + "smithy.api#xmlName": "parentGroupId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a placement group.

" + } + }, + "com.amazonaws.ec2#PlacementGroupArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/^.{1,255}$" + } + }, + "com.amazonaws.ec2#PlacementGroupId": { + "type": "string" + }, + "com.amazonaws.ec2#PlacementGroupIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PlacementGroupId", + "traits": { + "smithy.api#xmlName": "GroupId" + } + } + }, + "com.amazonaws.ec2#PlacementGroupInfo": { + "type": "structure", + "members": { + "SupportedStrategies": { + "target": "com.amazonaws.ec2#PlacementGroupStrategyList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedStrategies", + "smithy.api#documentation": "

The supported placement group types.

", + "smithy.api#xmlName": "supportedStrategies" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement group support of the instance type.

" + } + }, + "com.amazonaws.ec2#PlacementGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PlacementGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PlacementGroupName": { + "type": "string" + }, + "com.amazonaws.ec2#PlacementGroupNameWithResolver": { + "type": "string" + }, + "com.amazonaws.ec2#PlacementGroupState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#PlacementGroupStrategy": { + "type": "enum", + "members": { + "cluster": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cluster" + } + }, + "partition": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "partition" + } + }, + "spread": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spread" + } + } + } + }, + "com.amazonaws.ec2#PlacementGroupStrategyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PlacementGroupStrategy", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PlacementGroupStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PlacementGroupName" + } + }, + "com.amazonaws.ec2#PlacementResponse": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group that the instance is in.

", + "smithy.api#xmlName": "groupName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement of an instance.

" + } + }, + "com.amazonaws.ec2#PlacementStrategy": { + "type": "enum", + "members": { + "cluster": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cluster" + } + }, + "spread": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spread" + } + }, + "partition": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "partition" + } + }, + "precision_time": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "precision-time" + } + } + } + }, + "com.amazonaws.ec2#PlatformValues": { + "type": "enum", + "members": { + "Windows": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows" + } + } + } + }, + "com.amazonaws.ec2#PoolCidrBlock": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolCidrBlock", + "smithy.api#documentation": "

The CIDR block.

", + "smithy.api#xmlName": "poolCidrBlock" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a CIDR block for an address pool.

" + } + }, + "com.amazonaws.ec2#PoolCidrBlocksSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PoolCidrBlock", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PoolMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ec2#Port": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 65535 + } + } + }, + "com.amazonaws.ec2#PortNumber": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 65535 + } + } + }, + "com.amazonaws.ec2#PortRange": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "From", + "smithy.api#documentation": "

The first port in the range.

", + "smithy.api#xmlName": "from" + } + }, + "To": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "To", + "smithy.api#documentation": "

The last port in the range.

", + "smithy.api#xmlName": "to" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a range of ports.

" + } + }, + "com.amazonaws.ec2#PortRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixList": { + "type": "structure", + "members": { + "Cidrs": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "CidrSet", + "smithy.api#documentation": "

The IP address range of the Amazon Web Services service.

", + "smithy.api#xmlName": "cidrSet" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "PrefixListName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListName", + "smithy.api#documentation": "

The name of the prefix.

", + "smithy.api#xmlName": "prefixListName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes prefixes for Amazon Web Services services.

" + } + }, + "com.amazonaws.ec2#PrefixListAssociation": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwner", + "smithy.api#documentation": "

The owner of the resource.

", + "smithy.api#xmlName": "resourceOwner" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the resource with which a prefix list is associated.

" + } + }, + "com.amazonaws.ec2#PrefixListAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrefixListAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListEntry": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR block.

", + "smithy.api#xmlName": "cidr" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description.

", + "smithy.api#xmlName": "description" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a prefix list entry.

" + } + }, + "com.amazonaws.ec2#PrefixListEntrySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrefixListEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListId": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the security group rule that references this prefix list ID.

\n

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9,\n spaces, and ._-:/()#,@[]+=;{}!$*

", + "smithy.api#xmlName": "description" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix.

", + "smithy.api#xmlName": "prefixListId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a prefix list ID.

" + } + }, + "com.amazonaws.ec2#PrefixListIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrefixListId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#PrefixListResourceId": { + "type": "string" + }, + "com.amazonaws.ec2#PrefixListResourceIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrefixList", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrefixListState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "modify_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-in-progress" + } + }, + "modify_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-complete" + } + }, + "modify_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modify-failed" + } + }, + "restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-in-progress" + } + }, + "restore_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-complete" + } + }, + "restore_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "restore-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#PriceSchedule": { + "type": "structure", + "members": { + "Active": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Active", + "smithy.api#documentation": "

The current price schedule, as determined by the term remaining for the Reserved Instance\n in the listing.

\n

A specific price schedule is always in effect, but only one price schedule can be active\n at any time. Take, for example, a Reserved Instance listing that has five months remaining in\n its term. When you specify price schedules for five months and two months, this means that\n schedule 1, covering the first three months of the remaining term, will be active during\n months 5, 4, and 3. Then schedule 2, covering the last two months of the term, will be active\n for months 2 and 1.

", + "smithy.api#xmlName": "active" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency for transacting the Reserved Instance resale. At this time, the only\n supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Price": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Price", + "smithy.api#documentation": "

The fixed price for the term.

", + "smithy.api#xmlName": "price" + } + }, + "Term": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Term", + "smithy.api#documentation": "

The number of months remaining in the reservation. For example, 2 is the second to the\n last month before the capacity reservation expires.

", + "smithy.api#xmlName": "term" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the price for a Reserved Instance.

" + } + }, + "com.amazonaws.ec2#PriceScheduleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PriceSchedule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PriceScheduleSpecification": { + "type": "structure", + "members": { + "Term": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Term", + "smithy.api#documentation": "

The number of months remaining in the reservation. For example, 2 is the second to the\n last month before the capacity reservation expires.

", + "smithy.api#xmlName": "term" + } + }, + "Price": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Price", + "smithy.api#documentation": "

The fixed price for the term.

", + "smithy.api#xmlName": "price" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency for transacting the Reserved Instance resale. At this time, the only\n supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the price for a Reserved Instance.

" + } + }, + "com.amazonaws.ec2#PriceScheduleSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PriceScheduleSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PricingDetail": { + "type": "structure", + "members": { + "Count": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Count", + "smithy.api#documentation": "

The number of reservations available for the price.

", + "smithy.api#xmlName": "count" + } + }, + "Price": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Price", + "smithy.api#documentation": "

The price per instance.

", + "smithy.api#xmlName": "price" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance offering.

" + } + }, + "com.amazonaws.ec2#PricingDetailsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PricingDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrincipalIdFormat": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

PrincipalIdFormatARN description

", + "smithy.api#xmlName": "arn" + } + }, + "Statuses": { + "target": "com.amazonaws.ec2#IdFormatList", + "traits": { + "aws.protocols#ec2QueryName": "StatusSet", + "smithy.api#documentation": "

PrincipalIdFormatStatuses description

", + "smithy.api#xmlName": "statusSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

PrincipalIdFormat description

" + } + }, + "com.amazonaws.ec2#PrincipalIdFormatList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrincipalIdFormat", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrincipalType": { + "type": "enum", + "members": { + "All": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "All" + } + }, + "Service": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Service" + } + }, + "OrganizationUnit": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OrganizationUnit" + } + }, + "Account": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Account" + } + }, + "User": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "User" + } + }, + "Role": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Role" + } + } + } + }, + "com.amazonaws.ec2#Priority": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": -1, + "max": 65535 + } + } + }, + "com.amazonaws.ec2#PrivateDnsDetails": { + "type": "structure", + "members": { + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private DNS name assigned to the VPC endpoint service.

", + "smithy.api#xmlName": "privateDnsName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Private DNS name for interface endpoints.

" + } + }, + "com.amazonaws.ec2#PrivateDnsDetailsSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrivateDnsDetails", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrivateDnsNameConfiguration": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#DnsNameState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The verification state of the VPC endpoint service.

\n

Consumers\n of the endpoint service can use the private name only when the state is\n verified.

", + "smithy.api#xmlName": "state" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The endpoint service verification type, for example TXT.

", + "smithy.api#xmlName": "type" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value the service provider adds to the private DNS name domain record before verification.

", + "smithy.api#xmlName": "value" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the record subdomain the service provider needs to create. The service provider adds the value text to the name.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the private DNS name for the service endpoint.

" + } + }, + "com.amazonaws.ec2#PrivateDnsNameOptionsOnLaunch": { + "type": "structure", + "members": { + "HostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "aws.protocols#ec2QueryName": "HostnameType", + "smithy.api#documentation": "

The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name\n must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name\n must be based on the instance ID. For dual-stack subnets, you can specify whether DNS\n names use the instance IPv4 address or the instance ID.

", + "smithy.api#xmlName": "hostnameType" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsARecord" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostname with DNS AAAA\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsAAAARecord" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for instance hostnames.

" + } + }, + "com.amazonaws.ec2#PrivateDnsNameOptionsRequest": { + "type": "structure", + "members": { + "HostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "smithy.api#documentation": "

The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name\n must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name\n must be based on the instance ID. For dual-stack subnets, you can specify whether DNS\n names use the instance IPv4 address or the instance ID.

" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n records.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for instance hostnames.

" + } + }, + "com.amazonaws.ec2#PrivateDnsNameOptionsResponse": { + "type": "structure", + "members": { + "HostnameType": { + "target": "com.amazonaws.ec2#HostnameType", + "traits": { + "aws.protocols#ec2QueryName": "HostnameType", + "smithy.api#documentation": "

The type of hostname to assign to an instance.

", + "smithy.api#xmlName": "hostnameType" + } + }, + "EnableResourceNameDnsARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS A\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsARecord" + } + }, + "EnableResourceNameDnsAAAARecord": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord", + "smithy.api#documentation": "

Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n records.

", + "smithy.api#xmlName": "enableResourceNameDnsAAAARecord" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for instance hostnames.

" + } + }, + "com.amazonaws.ec2#PrivateDnsSpecifiedDomainSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#PrivateIpAddressConfigSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstancesPrivateIpAddressConfig", + "traits": { + "smithy.api#xmlName": "PrivateIpAddressConfigSet" + } + } + }, + "com.amazonaws.ec2#PrivateIpAddressCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 31 + } + } + }, + "com.amazonaws.ec2#PrivateIpAddressSpecification": { + "type": "structure", + "members": { + "Primary": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Primary", + "smithy.api#documentation": "

Indicates whether the private IPv4 address is the primary private IPv4 address. Only\n one IPv4 address can be designated as primary.

", + "smithy.api#xmlName": "primary" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary private IPv4 address for a network interface.

" + } + }, + "com.amazonaws.ec2#PrivateIpAddressSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PrivateIpAddressSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PrivateIpAddressStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "PrivateIpAddress" + } + } + }, + "com.amazonaws.ec2#ProcessorInfo": { + "type": "structure", + "members": { + "SupportedArchitectures": { + "target": "com.amazonaws.ec2#ArchitectureTypeList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedArchitectures", + "smithy.api#documentation": "

The architectures supported by the instance type.

", + "smithy.api#xmlName": "supportedArchitectures" + } + }, + "SustainedClockSpeedInGhz": { + "target": "com.amazonaws.ec2#ProcessorSustainedClockSpeed", + "traits": { + "aws.protocols#ec2QueryName": "SustainedClockSpeedInGhz", + "smithy.api#documentation": "

The speed of the processor, in GHz.

", + "smithy.api#xmlName": "sustainedClockSpeedInGhz" + } + }, + "SupportedFeatures": { + "target": "com.amazonaws.ec2#SupportedAdditionalProcessorFeatureList", + "traits": { + "aws.protocols#ec2QueryName": "SupportedFeatures", + "smithy.api#documentation": "

Indicates whether the instance type supports AMD SEV-SNP. If the request returns\n amd-sev-snp, AMD SEV-SNP is supported. Otherwise, it is not supported. For more\n information, see AMD\n SEV-SNP.

", + "smithy.api#xmlName": "supportedFeatures" + } + }, + "Manufacturer": { + "target": "com.amazonaws.ec2#CpuManufacturerName", + "traits": { + "aws.protocols#ec2QueryName": "Manufacturer", + "smithy.api#documentation": "

The manufacturer of the processor.

", + "smithy.api#xmlName": "manufacturer" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the processor used by the instance type.

" + } + }, + "com.amazonaws.ec2#ProcessorSustainedClockSpeed": { + "type": "double" + }, + "com.amazonaws.ec2#ProductCode": { + "type": "structure", + "members": { + "ProductCodeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ProductCode", + "smithy.api#documentation": "

The product code.

", + "smithy.api#xmlName": "productCode" + } + }, + "ProductCodeType": { + "target": "com.amazonaws.ec2#ProductCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of product code.

", + "smithy.api#xmlName": "type" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a product code.

" + } + }, + "com.amazonaws.ec2#ProductCodeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ProductCode", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ProductCodeStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "ProductCode" + } + } + }, + "com.amazonaws.ec2#ProductCodeValues": { + "type": "enum", + "members": { + "devpay": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "devpay" + } + }, + "marketplace": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "marketplace" + } + } + } + }, + "com.amazonaws.ec2#ProductDescriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String" + } + }, + "com.amazonaws.ec2#PropagatingVgw": { + "type": "structure", + "members": { + "GatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#xmlName": "gatewayId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a virtual private gateway propagating route.

" + } + }, + "com.amazonaws.ec2#PropagatingVgwList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PropagatingVgw", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Protocol": { + "type": "enum", + "members": { + "tcp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tcp" + } + }, + "udp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "udp" + } + } + } + }, + "com.amazonaws.ec2#ProtocolInt": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.ec2#ProtocolIntList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ProtocolInt", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ProtocolList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Protocol", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ProtocolValue": { + "type": "enum", + "members": { + "gre": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gre" + } + } + } + }, + "com.amazonaws.ec2#ProvisionByoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ProvisionByoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ProvisionByoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Provisions an IPv4 or IPv6 address range for use with your Amazon Web Services resources through bring your own IP \n addresses (BYOIP) and creates a corresponding address pool. After the address range is\n provisioned, it is ready to be advertised.

\n

Amazon Web Services verifies that you own the address range and are authorized to advertise it. \n You must ensure that the address range is registered to you and that you created an \n RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise the address range. \n For the Amazon Web Services GovCloud (US) Regions, authorize only ASN 8987. For the Amazon Web Services\n European Sovereign Cloud, authorize ASNs 16509 and 214101.\n For more information, see Bring your own IP addresses (BYOIP) in the Amazon EC2 User Guide.

\n

Provisioning an address range is an asynchronous operation, so the call returns immediately,\n but the address range is not ready to use until its status changes from pending-provision\n to provisioned. For more information, see Onboard your address range.

" + } + }, + "com.amazonaws.ec2#ProvisionByoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The public IPv4 or IPv6 address range, in CIDR notation. The most specific IPv4 prefix that you can \n specify is /24. The most specific IPv6 address range that you can bring is /48 for CIDRs that are publicly advertisable and /56 for CIDRs that are not publicly advertisable. The address range cannot overlap with another address range that you've \n brought to this or another Region.

", + "smithy.api#required": {} + } + }, + "CidrAuthorizationContext": { + "target": "com.amazonaws.ec2#CidrAuthorizationContext", + "traits": { + "smithy.api#documentation": "

A signed document that proves that you are authorized to bring the specified IP address \n range to Amazon using BYOIP.

" + } + }, + "PubliclyAdvertisable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

(IPv6 only) Indicate whether the address range will be publicly advertised to the\n internet.

\n

Default: true

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A description for the address range and the address pool.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PoolTagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the address pool.

", + "smithy.api#xmlName": "PoolTagSpecification" + } + }, + "MultiRegion": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Reserved.

" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

If you have Local Zones enabled, you can choose a network border group for Local Zones when you provision and advertise a BYOIPv4 CIDR. Choose the network border group carefully as the EIP and the Amazon Web Services resource it is associated with must reside in the same network border group.

\n

You can provision BYOIP address ranges to and advertise them in the following Local Zone network border groups:

\n
    \n
  • \n

    us-east-1-dfw-2

    \n
  • \n
  • \n

    us-west-2-lax-1

    \n
  • \n
  • \n

    us-west-2-phx-2

    \n
  • \n
\n \n

You cannot provision or advertise BYOIPv6 address ranges in Local Zones at this time.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ProvisionByoipCidrResult": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidr", + "smithy.api#documentation": "

Information about the address range.

", + "smithy.api#xmlName": "byoipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ProvisionIpamByoasn": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ProvisionIpamByoasnRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ProvisionIpamByoasnResult" + }, + "traits": { + "smithy.api#documentation": "

Provisions your Autonomous System Number (ASN) for use in your Amazon Web Services account. This action requires authorization context for Amazon to bring the ASN to an Amazon Web Services account. For more information, see Tutorial: Bring your ASN to IPAM in the Amazon VPC IPAM guide.

" + } + }, + "com.amazonaws.ec2#ProvisionIpamByoasnRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamId": { + "target": "com.amazonaws.ec2#IpamId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An IPAM ID.

", + "smithy.api#required": {} + } + }, + "Asn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A public 2-byte or 4-byte ASN.

", + "smithy.api#required": {} + } + }, + "AsnAuthorizationContext": { + "target": "com.amazonaws.ec2#AsnAuthorizationContext", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An ASN authorization context.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ProvisionIpamByoasnResult": { + "type": "structure", + "members": { + "Byoasn": { + "target": "com.amazonaws.ec2#Byoasn", + "traits": { + "aws.protocols#ec2QueryName": "Byoasn", + "smithy.api#documentation": "

An ASN and BYOIP CIDR association.

", + "smithy.api#xmlName": "byoasn" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ProvisionIpamPoolCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ProvisionIpamPoolCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ProvisionIpamPoolCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Provision a CIDR to an IPAM pool. You can use this action to provision new CIDRs to a top-level pool or to transfer a CIDR from a top-level pool to a pool within it.

\n

For more information, see Provision CIDRs to pools in the Amazon VPC IPAM User Guide.\n

" + } + }, + "com.amazonaws.ec2#ProvisionIpamPoolCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool to which you want to assign a CIDR.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR you want to assign to the IPAM pool. Either \"NetmaskLength\" or \"Cidr\" is required. This value will be null if you specify \"NetmaskLength\" and will be filled in during the provisioning process.

" + } + }, + "CidrAuthorizationContext": { + "target": "com.amazonaws.ec2#IpamCidrAuthorizationContext", + "traits": { + "smithy.api#documentation": "

A signed document that proves that you are authorized to bring a specified IP address range to Amazon using BYOIP. This option only applies to IPv4 and IPv6 pools in the public scope.

" + } + }, + "NetmaskLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The netmask length of the CIDR you'd like to provision to a pool. Can be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools and for provisioning CIDRs to pools with source pools. Cannot be used to provision BYOIP CIDRs to top-level pools. Either \"NetmaskLength\" or \"Cidr\" is required.

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "VerificationMethod": { + "target": "com.amazonaws.ec2#VerificationMethod", + "traits": { + "smithy.api#documentation": "

The method for verifying control of a public IP address range. Defaults to remarks-x509 if not specified. This option only applies to IPv4 and IPv6 pools in the public scope.

" + } + }, + "IpamExternalResourceVerificationTokenId": { + "target": "com.amazonaws.ec2#IpamExternalResourceVerificationTokenId", + "traits": { + "smithy.api#documentation": "

Verification token ID. This option only applies to IPv4 and IPv6 pools in the public scope.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ProvisionIpamPoolCidrResult": { + "type": "structure", + "members": { + "IpamPoolCidr": { + "target": "com.amazonaws.ec2#IpamPoolCidr", + "traits": { + "aws.protocols#ec2QueryName": "IpamPoolCidr", + "smithy.api#documentation": "

Information about the provisioned CIDR.

", + "smithy.api#xmlName": "ipamPoolCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Provision a CIDR to a public IPv4 pool.

\n

For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool you would like to use to allocate this CIDR.

", + "smithy.api#required": {} + } + }, + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the public IPv4 pool you would like to use for this CIDR.

", + "smithy.api#required": {} + } + }, + "NetmaskLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The netmask length of the CIDR you would like to allocate to the public IPv4 pool. The least specific netmask length you can define is 24.

", + "smithy.api#required": {} + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) or Local Zone (LZ) network border group that the resource that the IP address is assigned to is in. Defaults to an AZ network border group. For more information on available Local Zones, see Local Zone availability in the Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ProvisionPublicIpv4PoolCidrResult": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the pool that you want to provision the CIDR to.

", + "smithy.api#xmlName": "poolId" + } + }, + "PoolAddressRange": { + "target": "com.amazonaws.ec2#PublicIpv4PoolRange", + "traits": { + "aws.protocols#ec2QueryName": "PoolAddressRange", + "smithy.api#documentation": "

Information about the address range of the public IPv4 pool.

", + "smithy.api#xmlName": "poolAddressRange" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ProvisionedBandwidth": { + "type": "structure", + "members": { + "ProvisionTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ProvisionTime", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "provisionTime" + } + }, + "Provisioned": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Provisioned", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "provisioned" + } + }, + "RequestTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "RequestTime", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "requestTime" + } + }, + "Requested": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Requested", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "requested" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Reserved. If you need to sustain traffic greater than the documented limits, \n contact Amazon Web Services Support.

" + } + }, + "com.amazonaws.ec2#PtrUpdateStatus": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value for the PTR record update.

", + "smithy.api#xmlName": "value" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the PTR record update.

", + "smithy.api#xmlName": "status" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason for the PTR record update.

", + "smithy.api#xmlName": "reason" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of an updated pointer (PTR) record for an Elastic IP address.

" + } + }, + "com.amazonaws.ec2#PublicIpAddress": { + "type": "string" + }, + "com.amazonaws.ec2#PublicIpDnsNameOptions": { + "type": "structure", + "members": { + "DnsHostnameType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DnsHostnameType", + "smithy.api#documentation": "

The public hostname type. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "dnsHostnameType" + } + }, + "PublicIpv4DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4DnsName", + "smithy.api#documentation": "

An IPv4-enabled public hostname for a network interface. Requests from within the VPC resolve to the private primary IPv4 address of the network interface. Requests from the internet resolve to the public IPv4 address of the network interface.

", + "smithy.api#xmlName": "publicIpv4DnsName" + } + }, + "PublicIpv6DnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv6DnsName", + "smithy.api#documentation": "

An IPv6-enabled public hostname for a network interface. Requests from within the VPC or from the internet resolve to the IPv6 GUA of the network interface.

", + "smithy.api#xmlName": "publicIpv6DnsName" + } + }, + "PublicDualStackDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicDualStackDnsName", + "smithy.api#documentation": "

A dual-stack public hostname for a network interface. Requests from within the VPC resolve to both the private IPv4 address and the IPv6 Global Unicast Address of the network interface. Requests from the internet resolve to both the public IPv4 and the IPv6 GUA address of the network interface.

", + "smithy.api#xmlName": "publicDualStackDnsName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Public hostname type options. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#PublicIpDnsOption": { + "type": "enum", + "members": { + "public_dual_stack_dns_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-dual-stack-dns-name" + } + }, + "public_ipv4_dns_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-ipv4-dns-name" + } + }, + "public_ipv6_dns_name": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-ipv6-dns-name" + } + } + } + }, + "com.amazonaws.ec2#PublicIpStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "PublicIp" + } + } + }, + "com.amazonaws.ec2#PublicIpv4Pool": { + "type": "structure", + "members": { + "PoolId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PoolId", + "smithy.api#documentation": "

The ID of the address pool.

", + "smithy.api#xmlName": "poolId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the address pool.

", + "smithy.api#xmlName": "description" + } + }, + "PoolAddressRanges": { + "target": "com.amazonaws.ec2#PublicIpv4PoolRangeSet", + "traits": { + "aws.protocols#ec2QueryName": "PoolAddressRangeSet", + "smithy.api#documentation": "

The address ranges.

", + "smithy.api#xmlName": "poolAddressRangeSet" + } + }, + "TotalAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalAddressCount", + "smithy.api#documentation": "

The total number of addresses.

", + "smithy.api#xmlName": "totalAddressCount" + } + }, + "TotalAvailableAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalAvailableAddressCount", + "smithy.api#documentation": "

The total number of available addresses.

", + "smithy.api#xmlName": "totalAvailableAddressCount" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The name of the location from which the address pool is advertised. \n A network border group is a unique set of Availability Zones or Local Zones \n from where Amazon Web Services advertises public IP addresses.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags for the address pool.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 address pool.

" + } + }, + "com.amazonaws.ec2#PublicIpv4PoolIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Ipv4PoolEc2Id", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PublicIpv4PoolRange": { + "type": "structure", + "members": { + "FirstAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FirstAddress", + "smithy.api#documentation": "

The first IP address in the range.

", + "smithy.api#xmlName": "firstAddress" + } + }, + "LastAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastAddress", + "smithy.api#documentation": "

The last IP address in the range.

", + "smithy.api#xmlName": "lastAddress" + } + }, + "AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AddressCount", + "smithy.api#documentation": "

The number of addresses in the range.

", + "smithy.api#xmlName": "addressCount" + } + }, + "AvailableAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableAddressCount", + "smithy.api#documentation": "

The number of available addresses in the range.

", + "smithy.api#xmlName": "availableAddressCount" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an address range of an IPv4 address pool.

" + } + }, + "com.amazonaws.ec2#PublicIpv4PoolRangeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PublicIpv4PoolRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PublicIpv4PoolSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PublicIpv4Pool", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Purchase": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency in which the UpfrontPrice and HourlyPrice\n amounts are specified. At this time, the only supported currency is\n USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Duration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Duration", + "smithy.api#documentation": "

The duration of the reservation's term in seconds.

", + "smithy.api#xmlName": "duration" + } + }, + "HostIdSet": { + "target": "com.amazonaws.ec2#ResponseHostIdSet", + "traits": { + "aws.protocols#ec2QueryName": "HostIdSet", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts associated with the reservation.

", + "smithy.api#xmlName": "hostIdSet" + } + }, + "HostReservationId": { + "target": "com.amazonaws.ec2#HostReservationId", + "traits": { + "aws.protocols#ec2QueryName": "HostReservationId", + "smithy.api#documentation": "

The ID of the reservation.

", + "smithy.api#xmlName": "hostReservationId" + } + }, + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly price of the reservation per hour.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "InstanceFamily": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceFamily", + "smithy.api#documentation": "

The instance family on the Dedicated Host that the reservation can be associated\n with.

", + "smithy.api#xmlName": "instanceFamily" + } + }, + "PaymentOption": { + "target": "com.amazonaws.ec2#PaymentOption", + "traits": { + "aws.protocols#ec2QueryName": "PaymentOption", + "smithy.api#documentation": "

The payment option for the reservation.

", + "smithy.api#xmlName": "paymentOption" + } + }, + "UpfrontPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UpfrontPrice", + "smithy.api#documentation": "

The upfront price of the reservation.

", + "smithy.api#xmlName": "upfrontPrice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the result of the purchase.

" + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockResult" + }, + "traits": { + "smithy.api#documentation": "

Purchase the Capacity Block for use with your account. With Capacity Blocks you ensure\n\t\t\tGPU capacity is available for machine learning (ML) workloads. You must specify the ID\n\t\t\tof the Capacity Block offering you are purchasing.

" + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtension": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtensionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseCapacityBlockExtensionResult" + }, + "traits": { + "smithy.api#documentation": "

Purchase the Capacity Block extension for use with your account. You must specify the\n\t\t\tID of the Capacity Block extension offering you are purchasing.

" + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtensionRequest": { + "type": "structure", + "members": { + "CapacityBlockExtensionOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Block extension offering to purchase.

", + "smithy.api#required": {} + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity reservation to be extended.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockExtensionResult": { + "type": "structure", + "members": { + "CapacityBlockExtensions": { + "target": "com.amazonaws.ec2#CapacityBlockExtensionSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockExtensionSet", + "smithy.api#documentation": "

The purchased Capacity Block extensions.

", + "smithy.api#xmlName": "capacityBlockExtensionSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Capacity Block during launch.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "CapacityBlockOfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Block offering.

", + "smithy.api#required": {} + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of operating system for which to reserve capacity.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseCapacityBlockResult": { + "type": "structure", + "members": { + "CapacityReservation": { + "target": "com.amazonaws.ec2#CapacityReservation", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservation", + "smithy.api#documentation": "

The Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservation" + } + }, + "CapacityBlocks": { + "target": "com.amazonaws.ec2#CapacityBlockSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityBlockSet", + "smithy.api#documentation": "

The Capacity Block.

", + "smithy.api#xmlName": "capacityBlockSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#PurchaseHostReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseHostReservationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseHostReservationResult" + }, + "traits": { + "smithy.api#documentation": "

Purchase a reservation with configurations that match those of your Dedicated Host.\n You must have active Dedicated Hosts in your account before you purchase a reservation.\n This action results in the specified reservation being purchased and charged to your\n account.

" + } + }, + "com.amazonaws.ec2#PurchaseHostReservationRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "smithy.api#documentation": "

The currency in which the totalUpfrontPrice, LimitPrice, and\n totalHourlyPrice amounts are specified. At this time, the only\n supported currency is USD.

" + } + }, + "HostIdSet": { + "target": "com.amazonaws.ec2#RequestHostIdSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Dedicated Hosts with which the reservation will be associated.

", + "smithy.api#required": {} + } + }, + "LimitPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The specified limit is checked against the total upfront cost of the reservation\n (calculated as the offering's upfront cost multiplied by the host count). If the total\n upfront cost is greater than the specified price limit, the request fails. This is used\n to ensure that the purchase does not exceed the expected upfront cost of the purchase.\n At this time, the only supported currency is USD. For example, to indicate\n a limit price of USD 100, specify 100.00.

" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#OfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the offering.

", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the Dedicated Host Reservation during purchase.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseHostReservationResult": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency in which the totalUpfrontPrice and\n totalHourlyPrice amounts are specified. At this time, the only\n supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "Purchase": { + "target": "com.amazonaws.ec2#PurchaseSet", + "traits": { + "aws.protocols#ec2QueryName": "Purchase", + "smithy.api#documentation": "

Describes the details of the purchase.

", + "smithy.api#xmlName": "purchase" + } + }, + "TotalHourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TotalHourlyPrice", + "smithy.api#documentation": "

The total hourly price of the reservation calculated per hour.

", + "smithy.api#xmlName": "totalHourlyPrice" + } + }, + "TotalUpfrontPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TotalUpfrontPrice", + "smithy.api#documentation": "

The total amount charged to your account when you purchase the reservation.

", + "smithy.api#xmlName": "totalUpfrontPrice" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#PurchaseRequest": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of instances.

", + "smithy.api#required": {} + } + }, + "PurchaseToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The purchase token.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a request to purchase Scheduled Instances.

" + } + }, + "com.amazonaws.ec2#PurchaseRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#PurchaseRequest", + "traits": { + "smithy.api#xmlName": "PurchaseRequest" + } + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.ec2#PurchaseReservedInstancesOffering": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseReservedInstancesOfferingRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseReservedInstancesOfferingResult" + }, + "traits": { + "smithy.api#documentation": "

Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay\n a lower hourly rate compared to On-Demand instance pricing.

\n

Use DescribeReservedInstancesOfferings to get a list of Reserved\n Instance offerings that match your specifications. After you've purchased a Reserved Instance,\n you can check for your new Reserved Instance with DescribeReservedInstances.

\n

To queue a purchase for a future date and time, specify a purchase time. If you do not\n specify a purchase time, the default is the current time.

\n

For more information, see Reserved\n Instances and Sell in the Reserved Instance\n Marketplace in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#PurchaseReservedInstancesOfferingRequest": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of Reserved Instances to purchase.

", + "smithy.api#required": {} + } + }, + "ReservedInstancesOfferingId": { + "target": "com.amazonaws.ec2#ReservedInstancesOfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Reserved Instance offering to purchase.

", + "smithy.api#required": {} + } + }, + "PurchaseTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The time at which to purchase the Reserved Instance, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making\n the request, and provides an error response. If you have the required permissions, the error\n response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "LimitPrice": { + "target": "com.amazonaws.ec2#ReservedInstanceLimitPrice", + "traits": { + "aws.protocols#ec2QueryName": "LimitPrice", + "smithy.api#documentation": "

Specified for Reserved Instance Marketplace offerings to limit the total order and ensure\n that the Reserved Instances are not purchased at unexpected prices.

", + "smithy.api#xmlName": "limitPrice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for PurchaseReservedInstancesOffering.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseReservedInstancesOfferingResult": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The IDs of the purchased Reserved Instances. If your purchase crosses into a discounted\n pricing tier, the final Reserved Instances IDs might change. For more information, see Crossing pricing tiers in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "reservedInstancesId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of PurchaseReservedInstancesOffering.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#PurchaseScheduledInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#PurchaseScheduledInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#PurchaseScheduledInstancesResult" + }, + "traits": { + "smithy.api#documentation": "\n

You can no longer purchase Scheduled Instances.

\n
\n

Purchases the Scheduled Instances with the specified schedule.

\n

Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term.\n Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability\n to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance,\n you must call RunScheduledInstances during each scheduled time period.

\n

After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

" + } + }, + "com.amazonaws.ec2#PurchaseScheduledInstancesRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that ensures the idempotency of the request. \n For more information, see Ensuring Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PurchaseRequests": { + "target": "com.amazonaws.ec2#PurchaseRequestSet", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The purchase requests.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "PurchaseRequest" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for PurchaseScheduledInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#PurchaseScheduledInstancesResult": { + "type": "structure", + "members": { + "ScheduledInstanceSet": { + "target": "com.amazonaws.ec2#PurchasedScheduledInstanceSet", + "traits": { + "aws.protocols#ec2QueryName": "ScheduledInstanceSet", + "smithy.api#documentation": "

Information about the Scheduled Instances.

", + "smithy.api#xmlName": "scheduledInstanceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of PurchaseScheduledInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#PurchaseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Purchase", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#PurchasedScheduledInstanceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RIProductDescription": { + "type": "enum", + "members": { + "Linux_UNIX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux/UNIX" + } + }, + "Linux_UNIX_Amazon_VPC_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Linux/UNIX (Amazon VPC)" + } + }, + "Windows": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows" + } + }, + "Windows_Amazon_VPC_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Windows (Amazon VPC)" + } + } + } + }, + "com.amazonaws.ec2#RamdiskId": { + "type": "string" + }, + "com.amazonaws.ec2#RdsDbClusterArn": { + "type": "string" + }, + "com.amazonaws.ec2#RdsDbInstanceArn": { + "type": "string" + }, + "com.amazonaws.ec2#RdsDbProxyArn": { + "type": "string" + }, + "com.amazonaws.ec2#ReasonCodesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReportInstanceReasonCodes", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RebootInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RebootInstancesRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Requests a reboot of the specified instances. This operation is asynchronous; it only\n queues a request to reboot the specified instances. The operation succeeds if the\n instances are valid and belong to you. Requests to reboot terminated instances are\n ignored.

\n

If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a\n hard reboot.

\n

For more information about troubleshooting, see Troubleshoot an unreachable\n instance in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To reboot an EC2 instance", + "documentation": "This example reboots the specified EC2 instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef5" + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#RebootInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instance IDs.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RebootMigrationSupport": { + "type": "enum", + "members": { + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "supported" + } + } + } + }, + "com.amazonaws.ec2#RecurringCharge": { + "type": "structure", + "members": { + "Amount": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Amount", + "smithy.api#documentation": "

The amount of the recurring charge.

", + "smithy.api#xmlName": "amount" + } + }, + "Frequency": { + "target": "com.amazonaws.ec2#RecurringChargeFrequency", + "traits": { + "aws.protocols#ec2QueryName": "Frequency", + "smithy.api#documentation": "

The frequency of the recurring charge.

", + "smithy.api#xmlName": "frequency" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a recurring charge.

" + } + }, + "com.amazonaws.ec2#RecurringChargeFrequency": { + "type": "enum", + "members": { + "Hourly": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Hourly" + } + } + } + }, + "com.amazonaws.ec2#RecurringChargesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RecurringCharge", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReferencedSecurityGroup": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "PeeringStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeeringStatus", + "smithy.api#documentation": "

The status of a VPC peering connection, if applicable.

", + "smithy.api#xmlName": "peeringStatus" + } + }, + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserId", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", + "smithy.api#xmlName": "userId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of the VPC peering connection (if applicable).

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the security group that is referenced in the security group rule.

" + } + }, + "com.amazonaws.ec2#Region": { + "type": "structure", + "members": { + "OptInStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OptInStatus", + "smithy.api#documentation": "

The Region opt-in status. The possible values are opt-in-not-required, opted-in, and \n not-opted-in.

", + "smithy.api#xmlName": "optInStatus" + } + }, + "Geography": { + "target": "com.amazonaws.ec2#RegionGeographyList", + "traits": { + "aws.protocols#ec2QueryName": "GeographySet", + "smithy.api#documentation": "

The geography information for the Region. The geography is returned as a list.

", + "smithy.api#xmlName": "geographySet" + } + }, + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RegionName", + "smithy.api#documentation": "

The name of the Region.

", + "smithy.api#xmlName": "regionName" + } + }, + "Endpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RegionEndpoint", + "smithy.api#documentation": "

The Region service endpoint.

", + "smithy.api#xmlName": "regionEndpoint" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Region.

" + } + }, + "com.amazonaws.ec2#RegionGeography": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the geography, for example, United States of America.

", + "smithy.api#xmlName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the geography information for a Region.

" + } + }, + "com.amazonaws.ec2#RegionGeographyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RegionGeography", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RegionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Region", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RegionNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "RegionName" + } + } + }, + "com.amazonaws.ec2#RegionNames": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#RegionalSummary": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RegionName", + "smithy.api#documentation": "

The Amazon Web Services Region.

", + "smithy.api#xmlName": "regionName" + } + }, + "NumberOfMatchedAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfMatchedAccounts", + "smithy.api#documentation": "

The number of accounts in the Region with the same configuration value for the\n attribute that is most frequently observed.

", + "smithy.api#xmlName": "numberOfMatchedAccounts" + } + }, + "NumberOfUnmatchedAccounts": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NumberOfUnmatchedAccounts", + "smithy.api#documentation": "

The number of accounts in the Region with a configuration value different from the\n most frequently observed value for the attribute.

", + "smithy.api#xmlName": "numberOfUnmatchedAccounts" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary report for the attribute for a Region.

" + } + }, + "com.amazonaws.ec2#RegionalSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RegionalSummary", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RegisterImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RegisterImageRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RegisterImageResult" + }, + "traits": { + "smithy.api#documentation": "

Registers an AMI. When you're creating an instance-store backed AMI, registering the AMI\n is the final step in the creation process. For more information about creating AMIs, see\n Create an AMI from a snapshot and Create an instance-store\n backed AMI in the Amazon EC2 User Guide.

\n

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI\n backed by an instance store volume invalidates its registration. If you make changes to an\n image, deregister the previous image and register the new image.

\n

\n Register a snapshot of a root device volume\n

\n

You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot\n of a root device volume. You specify the snapshot using a block device mapping. You can't set\n the encryption state of the volume using the block device mapping. If the snapshot is\n encrypted, or encryption by default is enabled, the root volume of an instance launched from\n the AMI is encrypted.

\n

For more information, see Create an AMI from a snapshot and Use encryption with EBS-backed AMIs\n in the Amazon EC2 User Guide.

\n

\n Amazon Web Services Marketplace product codes\n

\n

If any snapshots have Amazon Web Services Marketplace product codes, they are copied to the new AMI.

\n

In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require correct licensing\n information to be present on the AMI. For more information, see Understand AMI billing\n information in the Amazon EC2 User Guide. When creating an AMI from\n a snapshot, the RegisterImage operation derives the correct billing information\n from the snapshot's metadata, but this requires the appropriate metadata to be present. To\n verify if the correct billing information was applied, check the PlatformDetails\n field on the new AMI. If the field is empty or doesn't match the expected operating system\n code (for example, Windows, RedHat, SUSE, or SQL), the AMI creation was unsuccessful, and you\n should discard the AMI and instead create the AMI from an instance. \n For more information, see Create an AMI\n from an instance in the Amazon EC2 User Guide.

\n

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched\n from an AMI with a billing product code, make sure that the Reserved Instance has the matching\n billing product code. If you purchase a Reserved Instance without the matching billing product\n code, the Reserved Instance is not applied to the On-Demand Instance. For information\n about how to obtain the platform details and billing information of an AMI, see Understand AMI\n billing information in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#RegisterImageRequest": { + "type": "structure", + "members": { + "ImageLocation": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The full path to your AMI manifest in Amazon S3 storage. The specified bucket must have the\n aws-exec-read canned access control list (ACL) to ensure that it can be\n accessed by Amazon EC2. For more information, see Canned ACL in the\n Amazon S3 Service Developer Guide.

" + } + }, + "BillingProducts": { + "target": "com.amazonaws.ec2#BillingProductList", + "traits": { + "smithy.api#documentation": "

The billing product codes. Your account must be authorized to specify billing product\n codes.

\n

If your account is not authorized to specify billing product codes, you can publish AMIs\n that include billable software and list them on the Amazon Web Services Marketplace. You must first register as a seller\n on the Amazon Web Services Marketplace. For more information, see Getting started as an Amazon Web Services Marketplace seller and AMI-based products in Amazon Web Services Marketplace in the Amazon Web Services Marketplace Seller Guide.

", + "smithy.api#xmlName": "BillingProduct" + } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "smithy.api#documentation": "

The boot mode of the AMI. A value of uefi-preferred indicates that the AMI\n supports both UEFI and Legacy BIOS.

\n \n

The operating system contained in the AMI must be configured to support the specified\n boot mode.

\n
\n

For more information, see Instance launch behavior with Amazon EC2\n boot modes in the Amazon EC2 User Guide.

" + } + }, + "TpmSupport": { + "target": "com.amazonaws.ec2#TpmSupportValues", + "traits": { + "smithy.api#documentation": "

Set to v2.0 to enable Trusted Platform Module (TPM) support. For more\n information, see NitroTPM in the Amazon EC2 User Guide.

" + } + }, + "UefiData": { + "target": "com.amazonaws.ec2#ImageUefiDataRequest", + "traits": { + "smithy.api#documentation": "

Base64 representation of the non-volatile UEFI variable store. To retrieve the UEFI data,\n use the GetInstanceUefiData command. You can inspect and modify the UEFI data by using the\n python-uefivars tool on\n GitHub. For more information, see UEFI Secure Boot for Amazon EC2\n instances in the Amazon EC2 User Guide.

" + } + }, + "ImdsSupport": { + "target": "com.amazonaws.ec2#ImdsSupportValues", + "traits": { + "smithy.api#documentation": "

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. Instances\n launched from this AMI will have HttpTokens automatically set to\n required so that, by default, the instance requires that IMDSv2 is used when\n requesting instance metadata. In addition, HttpPutResponseHopLimit is set to\n 2. For more information, see Configure the AMI in the Amazon EC2 User Guide.

\n \n

If you set the value to v2.0, make sure that your AMI software can support\n IMDSv2.

\n
" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the AMI.

\n

To tag the AMI, the value for ResourceType must be image. If you\n specify another value for ResourceType, the request fails.

\n

To tag an AMI after it has been registered, see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Name": { + "target": "com.amazonaws.ec2#ImageNameRequest", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A name for your AMI.

\n

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces\n ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or\n underscores(_)

", + "smithy.api#required": {}, + "smithy.api#xmlName": "name" + } + }, + "Description": { + "target": "com.amazonaws.ec2#ImageDescriptionRequest", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for your AMI.

", + "smithy.api#xmlName": "description" + } + }, + "Architecture": { + "target": "com.amazonaws.ec2#ArchitectureValues", + "traits": { + "aws.protocols#ec2QueryName": "Architecture", + "smithy.api#documentation": "

The architecture of the AMI.

\n

Default: For Amazon EBS-backed AMIs, i386. For instance store-backed AMIs, the\n architecture specified in the manifest file.

", + "smithy.api#xmlName": "architecture" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#KernelId", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The ID of the kernel.

", + "smithy.api#xmlName": "kernelId" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#RamdiskId", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The ID of the RAM disk.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "RootDeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RootDeviceName", + "smithy.api#documentation": "

The device name of the root device volume (for example, /dev/sda1).

", + "smithy.api#xmlName": "rootDeviceName" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingRequestList", + "traits": { + "smithy.api#documentation": "

The block device mapping entries.

\n

If you specify an Amazon EBS volume using the ID of an Amazon EBS snapshot, you can't specify the\n encryption state of the volume.

\n

If you create an AMI on an Outpost, then all backing snapshots must be on the same Outpost\n or in the Region of that Outpost. AMIs on an Outpost that include local snapshots can be used\n to launch instances on the same Outpost only. For more information, Create AMIs from\n local snapshots in the Amazon EBS User Guide.

", + "smithy.api#xmlName": "BlockDeviceMapping" + } + }, + "VirtualizationType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VirtualizationType", + "smithy.api#documentation": "

The type of virtualization (hvm | paravirtual).

\n

Default: paravirtual\n

", + "smithy.api#xmlName": "virtualizationType" + } + }, + "SriovNetSupport": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SriovNetSupport", + "smithy.api#documentation": "

Set to simple to enable enhanced networking with the Intel 82599 Virtual\n Function interface for the AMI and any instances that you launch from the AMI.

\n

There is no way to disable sriovNetSupport at this time.

\n

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make\n instances launched from the AMI unreachable.

", + "smithy.api#xmlName": "sriovNetSupport" + } + }, + "EnaSupport": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnaSupport", + "smithy.api#documentation": "

Set to true to enable enhanced networking with ENA for the AMI and any\n instances that you launch from the AMI.

\n

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make\n instances launched from the AMI unreachable.

", + "smithy.api#xmlName": "enaSupport" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for RegisterImage.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RegisterImageResult": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the newly registered AMI.

", + "smithy.api#xmlName": "imageId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of RegisterImage.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesResult" + }, + "traits": { + "smithy.api#documentation": "

Registers a set of tag keys to include in scheduled event notifications for your\n resources.\n

\n

To remove tags, use DeregisterInstanceEventNotificationAttributes.

" + } + }, + "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceTagAttribute": { + "target": "com.amazonaws.ec2#RegisterInstanceTagAttributeRequest", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Information about the tag keys to register.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RegisterInstanceEventNotificationAttributesResult": { + "type": "structure", + "members": { + "InstanceTagAttribute": { + "target": "com.amazonaws.ec2#InstanceTagNotificationAttribute", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTagAttribute", + "smithy.api#documentation": "

The resulting set of tag keys.

", + "smithy.api#xmlName": "instanceTagAttribute" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RegisterInstanceTagAttributeRequest": { + "type": "structure", + "members": { + "IncludeAllTagsOfInstance": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to register all tag keys in the current Region. Specify\n true to register all tag keys.

" + } + }, + "InstanceTagKeys": { + "target": "com.amazonaws.ec2#InstanceTagKeySet", + "traits": { + "smithy.api#documentation": "

The tag keys to register.

", + "smithy.api#xmlName": "InstanceTagKey" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the tag keys to register for the current Region. You can either\n specify individual tag keys or register all tag keys in the current Region. You must\n specify either IncludeAllTagsOfInstance or InstanceTagKeys in the\n request

" + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembers": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersResult" + }, + "traits": { + "smithy.api#documentation": "

Registers members (network interfaces) with the transit gateway multicast group. A member is a network interface associated\n with a supported EC2 instance that receives multicast traffic. For more information, see\n Multicast\n on transit gateways in the Amazon Web Services Transit Gateways Guide.

\n

After you add the members, use SearchTransitGatewayMulticastGroups to verify that the members were added\n to the transit gateway multicast group.

" + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#TransitGatewayNetworkInterfaceIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The group members' network interface IDs to register with the transit gateway multicast group.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupMembersResult": { + "type": "structure", + "members": { + "RegisteredMulticastGroupMembers": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastRegisteredGroupMembers", + "traits": { + "aws.protocols#ec2QueryName": "RegisteredMulticastGroupMembers", + "smithy.api#documentation": "

Information about the registered transit gateway multicast group members.

", + "smithy.api#xmlName": "registeredMulticastGroupMembers" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSources": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesResult" + }, + "traits": { + "smithy.api#documentation": "

Registers sources (network interfaces) with the specified transit gateway multicast group.

\n

A multicast source is a network interface attached to a supported instance that sends\n multicast traffic. For more information about supported instances, see Multicast\n on transit gateways in the Amazon Web Services Transit Gateways Guide.

\n

After you add the source, use SearchTransitGatewayMulticastGroups to verify that the source was added to the multicast\n group.

" + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#TransitGatewayNetworkInterfaceIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The group sources' network interface IDs to register with the transit gateway multicast group.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RegisterTransitGatewayMulticastGroupSourcesResult": { + "type": "structure", + "members": { + "RegisteredMulticastGroupSources": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastRegisteredGroupSources", + "traits": { + "aws.protocols#ec2QueryName": "RegisteredMulticastGroupSources", + "smithy.api#documentation": "

Information about the transit gateway multicast group sources.

", + "smithy.api#xmlName": "registeredMulticastGroupSources" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RegisteredInstance": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the SQL Server High Availability instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "SqlServerLicenseUsage": { + "target": "com.amazonaws.ec2#SqlServerLicenseUsage", + "traits": { + "aws.protocols#ec2QueryName": "SqlServerLicenseUsage", + "smithy.api#documentation": "

The license type for the SQL Server license. Valid values include:

\n
    \n
  • \n

    \n full - The SQL Server High Availability instance is using a full SQL Server license.

    \n
  • \n
  • \n

    \n waived - The SQL Server High Availability instance is waived from the SQL Server license.

    \n
  • \n
", + "smithy.api#xmlName": "sqlServerLicenseUsage" + } + }, + "HaStatus": { + "target": "com.amazonaws.ec2#HaStatus", + "traits": { + "aws.protocols#ec2QueryName": "HaStatus", + "smithy.api#documentation": "

The SQL Server High Availability status of the instance. Valid values are:

\n
    \n
  • \n

    \n processing - The SQL Server High Availability status for the SQL Server High Availability instance is being updated.

    \n
  • \n
  • \n

    \n active - The SQL Server High Availability instance is an active node in an SQL Server High Availability cluster.

    \n
  • \n
  • \n

    \n standby - The SQL Server High Availability instance is a standby failover node in an SQL Server High Availability \n cluster.

    \n
  • \n
  • \n

    \n invalid - An error occurred due to misconfigured permissions, or unable \n to dertemine SQL Server High Availability status for the SQL Server High Availability instance.

    \n
  • \n
", + "smithy.api#xmlName": "haStatus" + } + }, + "ProcessingStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ProcessingStatus", + "smithy.api#documentation": "

A brief description of the SQL Server High Availability status. If the instance is in the invalid \n High Availability status, this parameter includes the error message.

", + "smithy.api#xmlName": "processingStatus" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedTime", + "smithy.api#documentation": "

The date and time when the instance's SQL Server High Availability status was last updated, in the ISO 8601 format\n in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ).

", + "smithy.api#xmlName": "lastUpdatedTime" + } + }, + "SqlServerCredentials": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SqlServerCredentials", + "smithy.api#documentation": "

The ARN of the Secrets Manager secret containing the SQL Server access credentials for the SQL Server High Availability instance. \n If not specified, deafult local user credentials will be used by the Amazon Web Services Systems Manager agent.

", + "smithy.api#xmlName": "sqlServerCredentials" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the SQL Server High Availability instance.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon EC2 instance that is enabled for SQL Server High Availability standby \n detection monitoring.

" + } + }, + "com.amazonaws.ec2#RegisteredInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RegisteredInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RejectCapacityReservationBillingOwnership": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a request to assign billing of the available capacity of a shared Capacity\n\t\t\tReservation to your account. For more information, see Billing assignment for shared\n\t\t\t\t\tAmazon EC2 Capacity Reservations.

" + } + }, + "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Capacity Reservation for which to reject the request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectCapacityReservationBillingOwnershipResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a Transit Gateway attachment request for a Client VPN endpoint. The Transit Gateway owner can reject the attachment request to prevent the Client VPN endpoint from routing traffic through the Transit Gateway.

" + } + }, + "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Transit Gateway attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayClientVpnAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayClientVpnAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayClientVpnAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayClientVpnAttachment", + "smithy.api#documentation": "

Information about the Transit Gateway Client VPN attachment.

", + "smithy.api#xmlName": "transitGatewayClientVpnAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a request to associate cross-account subnets with a transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the transit gateway attachment.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets to associate with the transit gateway multicast domain.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayMulticastDomainAssociationsResult": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociations", + "traits": { + "aws.protocols#ec2QueryName": "Associations", + "smithy.api#documentation": "

Information about the multicast domain associations.

", + "smithy.api#xmlName": "associations" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a transit gateway peering attachment request.

" + } + }, + "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway peering attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayPeeringAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayPeeringAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPeeringAttachment", + "smithy.api#documentation": "

The transit gateway peering attachment.

", + "smithy.api#xmlName": "transitGatewayPeeringAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a request to attach a VPC to a transit gateway.

\n

The VPC attachment must be in the pendingAcceptance state.\n Use DescribeTransitGatewayVpcAttachments to view your pending VPC attachment requests.\n Use AcceptTransitGatewayVpcAttachment to accept a VPC attachment request.

" + } + }, + "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentRequest": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectTransitGatewayVpcAttachmentResult": { + "type": "structure", + "members": { + "TransitGatewayVpcAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayVpcAttachment", + "smithy.api#documentation": "

Information about the attachment.

", + "smithy.api#xmlName": "transitGatewayVpcAttachment" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectVpcEndpointConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectVpcEndpointConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectVpcEndpointConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects VPC endpoint connection requests to your VPC endpoint service.

" + } + }, + "com.amazonaws.ec2#RejectVpcEndpointConnectionsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#required": {} + } + }, + "VpcEndpointIds": { + "target": "com.amazonaws.ec2#VpcEndpointIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the VPC endpoints.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "VpcEndpointId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectVpcEndpointConnectionsResult": { + "type": "structure", + "members": { + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemSet", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

Information about the endpoints that were not rejected, if applicable.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RejectVpcPeeringConnection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RejectVpcPeeringConnectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RejectVpcPeeringConnectionResult" + }, + "traits": { + "smithy.api#documentation": "

Rejects a VPC peering connection request. The VPC peering connection must be in the\n\t\t\t\tpending-acceptance state. Use the DescribeVpcPeeringConnections request\n\t\t\tto view your outstanding VPC peering connection requests. To delete an active VPC peering\n\t\t\tconnection, or to delete a VPC peering connection request that you initiated, use\tDeleteVpcPeeringConnection.

" + } + }, + "com.amazonaws.ec2#RejectVpcPeeringConnectionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the VPC peering connection.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RejectVpcPeeringConnectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReleaseAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReleaseAddressRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Releases the specified Elastic IP address.

\n

[Default VPC] Releasing an Elastic IP address automatically disassociates it\n\t\t\t\tfrom any instance that it's associated with. Alternatively, you can disassociate an Elastic IP address without\n\t\t\t\treleasing it.

\n

[Nondefault VPC] You must disassociate the Elastic IP address\n\t\t\t before you can release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

\n

After releasing an Elastic IP address, it is released to the IP address pool. \n Be sure to update your DNS records and any servers or devices that communicate with the address. \n If you attempt to release an Elastic IP address that you already released, you'll get an\n AuthFailure error if the address is already allocated to another Amazon Web Services account.

\n

After you release an Elastic IP address, you might be able to recover it.\n For more information, see Release an Elastic IP address.

", + "smithy.api#examples": [ + { + "title": "To release an Elastic IP address", + "documentation": "This example releases the specified Elastic IP address.", + "input": { + "AllocationId": "eipalloc-64d5890a" + } + } + ] + } + }, + "com.amazonaws.ec2#ReleaseAddressRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#documentation": "

The allocation ID. This parameter is required.

" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n IP addresses.

\n

If you provide an incorrect network border group, you receive an InvalidAddress.NotFound error.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReleaseHosts": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReleaseHostsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReleaseHostsResult" + }, + "traits": { + "smithy.api#documentation": "

When you no longer want to use an On-Demand Dedicated Host it can be released.\n On-Demand billing is stopped and the host goes into released state. The\n host ID of Dedicated Hosts that have been released can no longer be specified in another\n request, for example, to modify the host. You must stop or terminate all instances on a\n host before it can be released.

\n

When Dedicated Hosts are released, it may take some time for them to stop counting\n toward your limit and you may receive capacity errors when trying to allocate new\n Dedicated Hosts. Wait a few minutes and then try again.

\n

Released hosts still appear in a DescribeHosts response.

" + } + }, + "com.amazonaws.ec2#ReleaseHostsRequest": { + "type": "structure", + "members": { + "HostIds": { + "target": "com.amazonaws.ec2#RequestHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "HostId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the Dedicated Hosts to release.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "hostId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReleaseHostsResult": { + "type": "structure", + "members": { + "Successful": { + "target": "com.amazonaws.ec2#ResponseHostIdList", + "traits": { + "aws.protocols#ec2QueryName": "Successful", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts that were successfully released.

", + "smithy.api#xmlName": "successful" + } + }, + "Unsuccessful": { + "target": "com.amazonaws.ec2#UnsuccessfulItemList", + "traits": { + "aws.protocols#ec2QueryName": "Unsuccessful", + "smithy.api#documentation": "

The IDs of the Dedicated Hosts that could not be released, including an error\n message.

", + "smithy.api#xmlName": "unsuccessful" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReleaseIpamPoolAllocation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReleaseIpamPoolAllocationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReleaseIpamPoolAllocationResult" + }, + "traits": { + "smithy.api#documentation": "

Release an allocation within an IPAM pool. The Region you use should be the IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM pool is available for allocations. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using ModifyIpamResourceCidr. For more information, see Release an allocation in the Amazon VPC IPAM User Guide.\n

\n \n

All EC2 API actions follow an eventual consistency model.

\n
" + } + }, + "com.amazonaws.ec2#ReleaseIpamPoolAllocationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

A check for whether you have the required permissions for the action without actually making the request \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "IpamPoolId": { + "target": "com.amazonaws.ec2#IpamPoolId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the IPAM pool which contains the allocation you want to release.

", + "smithy.api#required": {} + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR of the allocation you want to release.

", + "smithy.api#required": {} + } + }, + "IpamPoolAllocationId": { + "target": "com.amazonaws.ec2#IpamPoolAllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the allocation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReleaseIpamPoolAllocationResult": { + "type": "structure", + "members": { + "Success": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Success", + "smithy.api#documentation": "

Indicates if the release was successful.

", + "smithy.api#xmlName": "success" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RemoveIpamOperatingRegion": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the operating Region you want to remove.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Remove an operating Region from an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

\n

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide\n

" + } + }, + "com.amazonaws.ec2#RemoveIpamOperatingRegionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RemoveIpamOperatingRegion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusion": { + "type": "structure", + "members": { + "OrganizationsEntityPath": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Organizations entity path. Build the path for the OU(s) using Amazon Web Services Organizations IDs separated by a /. Include all child OUs by ending the path with /*.

\n
    \n
  • \n

    Example 1

    \n
      \n
    • \n

      Path to a child OU: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/\n

      \n
    • \n
    • \n

      In this example, o-a1b2c3d4e5 is the organization ID, r-f6g7h8i9j0example is the root ID , ou-ghi0-awsccccc is an OU ID, and ou-jkl0-awsddddd is a child OU ID.

      \n
    • \n
    • \n

      IPAM will not manage the IP addresses in accounts in the child OU.

      \n
    • \n
    \n
  • \n
  • \n

    Example 2

    \n
      \n
    • \n

      Path where all child OUs will be part of the exclusion: o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/*\n

      \n
    • \n
    • \n

      In this example, IPAM will not manage the IP addresses in accounts in the OU (ou-ghi0-awsccccc) or in accounts in any OUs that are children of the OU.

      \n
    • \n
    \n
  • \n
\n

For more information on how to construct an entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Remove an Organizational Unit (OU) exclusion to your IPAM. If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion. There is a limit on the number of exclusions you can create. For more information, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.

" + } + }, + "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RemoveIpamOrganizationalUnitExclusion" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ec2#RemovePrefixListEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RemovePrefixListEntry" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#RemovePrefixListEntry": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR block.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An entry for a prefix list.

" + } + }, + "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Replaces an IAM instance profile for the specified running instance. You can use\n this action to change the IAM instance profile that's associated with an instance\n without having to disassociate the existing IAM instance profile first.

\n

Use DescribeIamInstanceProfileAssociations to get the association\n ID.

" + } + }, + "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationRequest": { + "type": "structure", + "members": { + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#required": {} + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the existing IAM instance profile association.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceIamInstanceProfileAssociationResult": { + "type": "structure", + "members": { + "IamInstanceProfileAssociation": { + "target": "com.amazonaws.ec2#IamInstanceProfileAssociation", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfileAssociation", + "smithy.api#documentation": "

Information about the IAM instance profile association.

", + "smithy.api#xmlName": "iamInstanceProfileAssociation" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsResult" + }, + "traits": { + "smithy.api#documentation": "

Sets or replaces the criteria for Allowed AMIs.

\n

The ImageCriteria can include up to:

\n
    \n
  • \n

    10 ImageCriterion\n

    \n
  • \n
\n \n

The Allowed AMIs feature does not restrict the AMIs owned by your account. Regardless of\n the criteria you set, the AMIs created by your account will always be discoverable and\n usable by users in your account.

\n
\n

For more information, see Control the discovery and use of AMIs in\n Amazon EC2 with Allowed AMIs in\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsRequest": { + "type": "structure", + "members": { + "ImageCriteria": { + "target": "com.amazonaws.ec2#ImageCriterionRequestList", + "traits": { + "smithy.api#documentation": "

The list of criteria that are evaluated to determine whether AMIs are discoverable and\n usable in the account in the specified Amazon Web Services Region.

", + "smithy.api#xmlName": "ImageCriterion" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceImageCriteriaInAllowedImagesSettingsResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationResult" + }, + "traits": { + "smithy.api#documentation": "

Replaces or removes the instance type specification for an AMI. The instance type\n specification defines which instance types are compatible with the AMI.

\n

When you launch an instance using\n RunInstances, Amazon EC2 validates the requested instance type against the AMI's\n instance type specification. If the instance type is not compatible, the request fails with an\n InvalidParameterCombination error.

\n

You can specify supported instance types, unsupported instance types, or both. The\n evaluation logic is as follows:

\n
    \n
  • \n

    No specification set – all instance types are allowed.

    \n
  • \n
  • \n

    Only UnsupportedInstanceTypes set – All instance types are allowed\n except those that match the unsupported list.

    \n
  • \n
  • \n

    \n SupportedInstanceTypes set – The instance type must match the\n supported list and must not match the unsupported list.

    \n
  • \n
\n

Instance type entries support wildcard patterns using * (for example,\n t3.* matches all t3 sizes).

\n

To remove an existing instance type specification, omit the\n InstanceTypeSpecification parameter or set it to null.

\n

To set the instance type specification, you must be the AMI owner. You cannot set an instance\n type specification on an AMI that is listed in Amazon Web Services Marketplace, and you cannot list an AMI\n in Amazon Web Services Marketplace if it has an instance type specification set.

" + } + }, + "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "InstanceTypeSpecification": { + "target": "com.amazonaws.ec2#InstanceTypeSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The instance type specification to set on the AMI. Omit this parameter to remove the\n existing instance type specification.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceImageInstanceTypeSpecificationResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReturnValue", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "returnValue" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceNetworkAclAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceNetworkAclAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceNetworkAclAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Changes which network ACL a subnet is associated with. By default when you create a\n\t\t\tsubnet, it's automatically associated with the default network ACL. For more\n\t\t\tinformation, see Network ACLs in the Amazon VPC User Guide.

\n

This is an idempotent operation.

", + "smithy.api#examples": [ + { + "title": "To replace the network ACL associated with a subnet", + "documentation": "This example associates the specified network ACL with the subnet for the specified network ACL association.", + "input": { + "AssociationId": "aclassoc-e5b95c8c", + "NetworkAclId": "acl-5fb85d36" + }, + "output": { + "NewAssociationId": "aclassoc-3999875b" + } + } + ] + } + }, + "com.amazonaws.ec2#ReplaceNetworkAclAssociationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#NetworkAclAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the current association between the original network ACL and the subnet.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "associationId" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the new network ACL to associate with the subnet.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkAclId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceNetworkAclAssociationResult": { + "type": "structure", + "members": { + "NewAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NewAssociationId", + "smithy.api#documentation": "

The ID of the new association.

", + "smithy.api#xmlName": "newAssociationId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceNetworkAclEntry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceNetworkAclEntryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Replaces an entry (rule) in a network ACL. For more information, see Network ACLs in the\n\t\t\t\tAmazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To replace a network ACL entry", + "documentation": "This example replaces an entry for the specified network ACL. The new rule 100 allows ingress traffic from 203.0.113.12/24 on UDP port 53 (DNS) into any associated subnet.", + "input": { + "NetworkAclId": "acl-5fb85d36", + "RuleNumber": 100, + "Protocol": "17", + "RuleAction": "allow", + "Egress": false, + "CidrBlock": "203.0.113.12/24", + "PortRange": { + "From": 53, + "To": 53 + } + } + } + ] + } + }, + "com.amazonaws.ec2#ReplaceNetworkAclEntryRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.ec2#NetworkAclId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkAclId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the ACL.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkAclId" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The rule number of the entry to replace.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ruleNumber" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The protocol number. A value of \"-1\" means all protocols. If you specify \"-1\" or a\n protocol number other than \"6\" (TCP), \"17\" (UDP), or \"1\" (ICMP), traffic on all ports is \n allowed, regardless of any ports or ICMP types or codes that you specify. If you specify \n protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and \n codes allowed, regardless of any that you specify. If you specify protocol \"58\" (ICMPv6) \n and specify an IPv6 CIDR block, you must specify an ICMP type and code.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "protocol" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#RuleAction", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "ruleAction" + } + }, + "Egress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Egress", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether to replace the egress rule.

\n

Default: If no value is specified, we replace the ingress rule.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "egress" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 network range to allow or deny, in CIDR notation (for example\n 172.16.0.0/24).

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 network range to allow or deny, in CIDR notation (for example\n 2001:bd8:1234:1a00::/64).

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + }, + "IcmpTypeCode": { + "target": "com.amazonaws.ec2#IcmpTypeCode", + "traits": { + "smithy.api#documentation": "

ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol\n\t\t 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.

", + "smithy.api#xmlName": "Icmp" + } + }, + "PortRange": { + "target": "com.amazonaws.ec2#PortRange", + "traits": { + "aws.protocols#ec2QueryName": "PortRange", + "smithy.api#documentation": "

TCP or UDP protocols: The range of ports the rule applies to. \n\t\t Required if specifying protocol 6 (TCP) or 17 (UDP).

", + "smithy.api#xmlName": "portRange" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceRootVolumeTask": { + "type": "structure", + "members": { + "ReplaceRootVolumeTaskId": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTaskId", + "traits": { + "aws.protocols#ec2QueryName": "ReplaceRootVolumeTaskId", + "smithy.api#documentation": "

The ID of the root volume replacement task.

", + "smithy.api#xmlName": "replaceRootVolumeTaskId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance for which the root volume replacement task was created.

", + "smithy.api#xmlName": "instanceId" + } + }, + "TaskState": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTaskState", + "traits": { + "aws.protocols#ec2QueryName": "TaskState", + "smithy.api#documentation": "

The state of the task. The task can be in one of the following states:

\n
    \n
  • \n

    \n pending - the replacement volume is being created.

    \n
  • \n
  • \n

    \n in-progress - the original volume is being detached and the \n replacement volume is being attached.

    \n
  • \n
  • \n

    \n succeeded - the replacement volume has been successfully attached \n to the instance and the instance is available.

    \n
  • \n
  • \n

    \n failing - the replacement task is in the process of failing.

    \n
  • \n
  • \n

    \n failed - the replacement task has failed but the original root \n volume is still attached.

    \n
  • \n
  • \n

    \n failing-detached - the replacement task is in the process of failing. \n The instance might have no root volume attached.

    \n
  • \n
  • \n

    \n failed-detached - the replacement task has failed and the instance \n has no root volume attached.

    \n
  • \n
", + "smithy.api#xmlName": "taskState" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time the task was started.

", + "smithy.api#xmlName": "startTime" + } + }, + "CompleteTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CompleteTime", + "smithy.api#documentation": "

The time the task completed.

", + "smithy.api#xmlName": "completeTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the task.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI used to create the replacement root volume.

", + "smithy.api#xmlName": "imageId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot used to create the replacement root volume.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "DeleteReplacedRootVolume": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteReplacedRootVolume", + "smithy.api#documentation": "

Indicates whether the original root volume is to be deleted after the root volume \n replacement task completes.

", + "smithy.api#xmlName": "deleteReplacedRootVolume" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a root volume replacement task.

" + } + }, + "com.amazonaws.ec2#ReplaceRootVolumeTaskId": { + "type": "string" + }, + "com.amazonaws.ec2#ReplaceRootVolumeTaskIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTaskId", + "traits": { + "smithy.api#xmlName": "ReplaceRootVolumeTaskId" + } + } + }, + "com.amazonaws.ec2#ReplaceRootVolumeTaskState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-progress" + } + }, + "failing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "succeeded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "failed_detached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-detached" + } + } + } + }, + "com.amazonaws.ec2#ReplaceRootVolumeTasks": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReplaceRootVolumeTask", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReplaceRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceRouteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Replaces an existing route within a route table in a VPC.

\n

You must specify either a destination CIDR block or a prefix list ID. You must also specify \n exactly one of the resources from the parameter list, or reset the local route to its default \n target.

\n

For more information, see Route tables in the\n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To replace a route", + "documentation": "This example replaces the specified route in the specified table table. The new route matches the specified CIDR and sends the traffic to the specified virtual private gateway.", + "input": { + "RouteTableId": "rtb-22574640", + "DestinationCidrBlock": "10.0.0.0/16", + "GatewayId": "vgw-9a4cacf3" + } + } + ] + } + }, + "com.amazonaws.ec2#ReplaceRouteRequest": { + "type": "structure", + "members": { + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the prefix list for the route.

" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#documentation": "

The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.

" + } + }, + "LocalTarget": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to reset the local route to its default target (local).

" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of a transit gateway.

" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#LocalGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the local gateway.

" + } + }, + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#CarrierGatewayId", + "traits": { + "smithy.api#documentation": "

[IPv4 traffic only] The ID of a carrier gateway.

" + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.ec2#CoreNetworkArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the core network.

" + } + }, + "OdbNetworkArn": { + "target": "com.amazonaws.ec2#OdbNetworkArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ODB network.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR address block used for the destination match. The value that you\n\t\t\tprovide must match the CIDR of an existing route in the table.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "GatewayId": { + "target": "com.amazonaws.ec2#RouteGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of an internet gateway or virtual private gateway.

", + "smithy.api#xmlName": "gatewayId" + } + }, + "DestinationIpv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationIpv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR address block used for the destination match. The value that you\n\t\t\tprovide must match the CIDR of an existing route in the table.

", + "smithy.api#xmlName": "destinationIpv6CidrBlock" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewayId", + "smithy.api#documentation": "

[IPv6 traffic only] The ID of an egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGatewayId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of a NAT instance in your VPC.

", + "smithy.api#xmlName": "instanceId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of a network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of a VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

[IPv4 traffic only] The ID of a NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceRouteTableAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceRouteTableAssociationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceRouteTableAssociationResult" + }, + "traits": { + "smithy.api#documentation": "

Changes the route table associated with a given subnet, internet gateway, or virtual private gateway in a VPC. After the operation\n completes, the subnet or gateway uses the routes in the new route table. For more\n information about route tables, see Route\n tables in the Amazon VPC User Guide.

\n

You can also use this operation to change which table is the main route table in the VPC. Specify the main route table's association ID and the route table ID of the new main route table.

", + "smithy.api#examples": [ + { + "title": "To replace the route table associated with a subnet", + "documentation": "This example associates the specified route table with the subnet for the specified route table association.", + "input": { + "AssociationId": "rtbassoc-781d0d1a", + "RouteTableId": "rtb-22574640" + }, + "output": { + "NewAssociationId": "rtbassoc-3a1f0f58" + } + } + ] + } + }, + "com.amazonaws.ec2#ReplaceRouteTableAssociationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "AssociationId": { + "target": "com.amazonaws.ec2#RouteTableAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The association ID.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "associationId" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the new route table to associate with the subnet.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "routeTableId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceRouteTableAssociationResult": { + "type": "structure", + "members": { + "NewAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NewAssociationId", + "smithy.api#documentation": "

The ID of the new association.

", + "smithy.api#xmlName": "newAssociationId" + } + }, + "AssociationState": { + "target": "com.amazonaws.ec2#RouteTableAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "AssociationState", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "associationState" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceTransitGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceTransitGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceTransitGatewayRouteResult" + }, + "traits": { + "smithy.api#documentation": "

Replaces the specified route in the specified transit gateway route table.

" + } + }, + "com.amazonaws.ec2#ReplaceTransitGatewayRouteRequest": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The CIDR range used for the destination match. Routing decisions are based on the most specific match.

", + "smithy.api#required": {} + } + }, + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#required": {} + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The ID of the attachment.

" + } + }, + "Blackhole": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether traffic matching this route is to be dropped.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceTransitGatewayRouteResult": { + "type": "structure", + "members": { + "Route": { + "target": "com.amazonaws.ec2#TransitGatewayRoute", + "traits": { + "aws.protocols#ec2QueryName": "Route", + "smithy.api#documentation": "

Information about the modified route.

", + "smithy.api#xmlName": "route" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplaceVpnTunnel": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReplaceVpnTunnelRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ReplaceVpnTunnelResult" + }, + "traits": { + "smithy.api#documentation": "

Trigger replacement of specified VPN tunnel.

" + } + }, + "com.amazonaws.ec2#ReplaceVpnTunnelRequest": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Site-to-Site VPN connection.

", + "smithy.api#required": {} + } + }, + "VpnTunnelOutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#required": {} + } + }, + "ApplyPendingMaintenance": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Trigger pending tunnel endpoint maintenance.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReplaceVpnTunnelResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Confirmation of replace tunnel operation.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ReplacementStrategy": { + "type": "enum", + "members": { + "LAUNCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launch" + } + }, + "LAUNCH_BEFORE_TERMINATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launch-before-terminate" + } + } + } + }, + "com.amazonaws.ec2#ReportInstanceReasonCodes": { + "type": "enum", + "members": { + "instance_stuck_in_state": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-stuck-in-state" + } + }, + "unresponsive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unresponsive" + } + }, + "not_accepting_credentials": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-accepting-credentials" + } + }, + "password_not_available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "password-not-available" + } + }, + "performance_network": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "performance-network" + } + }, + "performance_instance_store": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "performance-instance-store" + } + }, + "performance_ebs_volume": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "performance-ebs-volume" + } + }, + "performance_other": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "performance-other" + } + }, + "other": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + } + } + }, + "com.amazonaws.ec2#ReportInstanceStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ReportInstanceStatusRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Submits feedback about the status of an instance. The instance must be in the\n running state. If your experience with the instance differs from the\n instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon\n EC2 collects this information to improve the accuracy of status checks.

\n

Use of this action does not change the value returned by DescribeInstanceStatus.

" + } + }, + "com.amazonaws.ec2#ReportInstanceStatusRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Instances": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ReportStatusType", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The status of all instances listed.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "status" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time at which the reported instance health state began.

", + "smithy.api#xmlName": "startTime" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndTime", + "smithy.api#documentation": "

The time at which the reported instance health state ended.

", + "smithy.api#xmlName": "endTime" + } + }, + "ReasonCodes": { + "target": "com.amazonaws.ec2#ReasonCodesList", + "traits": { + "aws.protocols#ec2QueryName": "ReasonCode", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The reason codes that describe the health state of your instance.

\n
    \n
  • \n

    \n instance-stuck-in-state: My instance is stuck in a state.

    \n
  • \n
  • \n

    \n unresponsive: My instance is unresponsive.

    \n
  • \n
  • \n

    \n not-accepting-credentials: My instance is not accepting my\n credentials.

    \n
  • \n
  • \n

    \n password-not-available: A password is not available for my\n instance.

    \n
  • \n
  • \n

    \n performance-network: My instance is experiencing performance\n problems that I believe are network related.

    \n
  • \n
  • \n

    \n performance-instance-store: My instance is experiencing performance\n problems that I believe are related to the instance stores.

    \n
  • \n
  • \n

    \n performance-ebs-volume: My instance is experiencing performance\n problems that I believe are related to an EBS volume.

    \n
  • \n
  • \n

    \n performance-other: My instance is experiencing performance\n problems.

    \n
  • \n
  • \n

    \n other: [explain using the description parameter]

    \n
  • \n
", + "smithy.api#required": {}, + "smithy.api#xmlName": "reasonCode" + } + }, + "Description": { + "target": "com.amazonaws.ec2#ReportInstanceStatusRequestDescription", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#deprecated": { + "message": "This member has been deprecated" + }, + "smithy.api#documentation": "

Descriptive text about the health state of your instance.

", + "smithy.api#xmlName": "description" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ReportInstanceStatusRequestDescription": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ReportState": { + "type": "enum", + "members": { + "running": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "complete" + } + }, + "error": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + } + }, + "com.amazonaws.ec2#ReportStatusType": { + "type": "enum", + "members": { + "ok": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ok" + } + }, + "impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + } + } + }, + "com.amazonaws.ec2#RequestFilterPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "smithy.api#documentation": "

The first port in the range.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Port", + "traits": { + "smithy.api#documentation": "

The last port in the range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a port range.

" + } + }, + "com.amazonaws.ec2#RequestHostIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RequestHostIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#DedicatedHostId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RequestInstanceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#RequestIpamResourceTag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value for the tag.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A tag on an IPAM resource.

" + } + }, + "com.amazonaws.ec2#RequestIpamResourceTagList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RequestIpamResourceTag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RequestLaunchTemplateData": { + "type": "structure", + "members": { + "KernelId": { + "target": "com.amazonaws.ec2#KernelId", + "traits": { + "smithy.api#documentation": "

The ID of the kernel.

\n \n

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more\n information, see User provided kernels in the\n Amazon Linux 2 User Guide.

\n
" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n provide optimal Amazon EBS I/O performance. This optimization isn't available with all\n instance types. Additional usage charges apply when using an EBS-optimized\n instance.

" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#LaunchTemplateIamInstanceProfileSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of an IAM instance profile.

" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingRequestList", + "traits": { + "smithy.api#documentation": "

The block device mapping.

", + "smithy.api#xmlName": "BlockDeviceMapping" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList", + "traits": { + "smithy.api#documentation": "

The network interfaces for the instance.

", + "smithy.api#xmlName": "NetworkInterface" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#documentation": "

The ID of the AMI in the format ami-0ac394d6a3example.

\n

Alternatively, you can specify a Systems Manager parameter, using one of the following\n formats. The Systems Manager parameter will resolve to an AMI ID on launch.

\n

To reference a public parameter:

\n
    \n
  • \n

    \n resolve:ssm:public-parameter\n \n

    \n
  • \n
\n

To reference a parameter stored in the same account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-name\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-name:label\n \n

    \n
  • \n
\n

To reference a parameter shared from another Amazon Web Services account:

\n
    \n
  • \n

    \n resolve:ssm:parameter-ARN\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:version-number\n \n

    \n
  • \n
  • \n

    \n resolve:ssm:parameter-ARN:label\n \n

    \n
  • \n
\n

For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

\n \n

If the launch template will be used for an EC2 Fleet or Spot Fleet, note the\n following:

\n
    \n
  • \n

    Only EC2 Fleets of type instant support specifying a Systems\n Manager parameter.

    \n
  • \n
  • \n

    For EC2 Fleets of type maintain or request, or\n for Spot Fleets, you must specify the AMI ID.

    \n
  • \n
\n
" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type. For more information, see Amazon EC2 instance types in\n the Amazon EC2 User Guide.

\n

If you specify InstanceType, you can't specify\n InstanceRequirements.

" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairName", + "traits": { + "smithy.api#documentation": "

The name of the key pair. You can create a key pair using CreateKeyPair or\n ImportKeyPair.

\n \n

If you do not specify a key pair, you can't connect to the instance unless you\n choose an AMI that is configured to allow users another way to log in.

\n
" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#LaunchTemplatesMonitoringRequest", + "traits": { + "smithy.api#documentation": "

The monitoring for the instance.

" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#LaunchTemplatePlacementRequest", + "traits": { + "smithy.api#documentation": "

The placement for the instance.

" + } + }, + "RamDiskId": { + "target": "com.amazonaws.ec2#RamdiskId", + "traits": { + "smithy.api#documentation": "

The ID of the RAM disk.

\n \n

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more\n information, see User provided\n kernels in the Amazon EC2 User Guide.

\n
" + } + }, + "DisableApiTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether termination protection is enabled for the instance. The default is\n false, which means that you can terminate the instance using the Amazon EC2\n console, command line tools, or API. You can enable termination protection when you\n launch an instance, while the instance is running, or while the instance is\n stopped.

" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#ShutdownBehavior", + "traits": { + "smithy.api#documentation": "

Indicates whether an instance stops or terminates when you initiate shutdown from the\n instance (using the operating system command for system shutdown).

\n

Default: stop\n

" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "smithy.api#documentation": "

The user data to make available to the instance. You must provide base64-encoded text.\n User data is limited to 16 KB. For more information, see Run commands when you launch an EC2\n instance with user data input in the\n Amazon EC2 User Guide.

\n

If you are creating the launch template for use with Batch, the user\n data must be provided in the MIME multi-part archive format. For more information, see Amazon EC2 user data in launch templates in the\n Batch User Guide.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#LaunchTemplateTagSpecificationRequestList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the resources that are created during instance launch. These tags\n are not applied to the launch template.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ElasticGpuSpecifications": { + "target": "com.amazonaws.ec2#ElasticGpuSpecificationList", + "traits": { + "smithy.api#deprecated": { + "since": "2024-01-08", + "message": "Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API." + }, + "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
", + "smithy.api#xmlName": "ElasticGpuSpecification" + } + }, + "ElasticInferenceAccelerators": { + "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorList", + "traits": { + "smithy.api#deprecated": { + "since": "2024-01-08", + "message": "Specifying Elastic Inference accelerators is no longer supported on the RunInstances API." + }, + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

An elastic inference accelerator to associate with the instance. Elastic inference\n accelerators are a resource you can attach to your Amazon EC2 instances to accelerate\n your Deep Learning (DL) inference workloads.

\n

You cannot specify accelerators from different generations in the same request.

", + "smithy.api#xmlName": "ElasticInferenceAccelerator" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#SecurityGroupStringList", + "traits": { + "smithy.api#documentation": "

The names of the security groups. For a nondefault VPC, you must use security group\n IDs instead.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", + "smithy.api#xmlName": "SecurityGroup" + } + }, + "InstanceMarketOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMarketOptionsRequest", + "traits": { + "smithy.api#documentation": "

The market (purchasing) option for the instances.

" + } + }, + "CreditSpecification": { + "target": "com.amazonaws.ec2#CreditSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The credit option for CPU usage of the instance. Valid only for T instances.

" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateCpuOptionsRequest", + "traits": { + "smithy.api#documentation": "

The CPU options for the instance. For more information, see CPU\n options for Amazon EC2 instances in the\n Amazon EC2 User Guide.

" + } + }, + "CapacityReservationSpecification": { + "target": "com.amazonaws.ec2#LaunchTemplateCapacityReservationSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The Capacity Reservation targeting option. If you do not specify this parameter, the\n instance's Capacity Reservation preference defaults to open, which enables\n it to run in any open Capacity Reservation that has matching attributes (instance type,\n platform, Availability Zone).

" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#LaunchTemplateLicenseSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The license configurations.

", + "smithy.api#xmlName": "LicenseSpecification" + } + }, + "HibernationOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateHibernationOptionsRequest", + "traits": { + "smithy.api#documentation": "

Indicates whether an instance is enabled for hibernation. This parameter is valid only\n if the instance meets the hibernation\n prerequisites. For more information, see Hibernate your Amazon EC2 instance\n in the Amazon EC2 User Guide.

" + } + }, + "MetadataOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptionsRequest", + "traits": { + "smithy.api#documentation": "

The metadata options for the instance. For more information, see Configure\n the Instance Metadata Service options in the\n Amazon EC2 User Guide.

" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateEnclaveOptionsRequest", + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more\n information, see What is Nitro Enclaves? in the\n Amazon Web Services Nitro Enclaves User Guide.

\n

You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance.

" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with these attributes.

\n

You must specify VCpuCount and MemoryMiB. All other attributes\n are optional. Any unspecified optional attribute is set to its default.

\n

When you specify multiple attributes, you get instance types that satisfy all of the\n specified attributes. If you specify multiple values for an attribute, you get instance\n types that satisfy any of the specified values.

\n

To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n you can use one of the following parameters, but not both in the same request:

\n
    \n
  • \n

    \n AllowedInstanceTypes - The instance types to include in the list. All \n other instance types are ignored, even if they match your specified attributes.

    \n
  • \n
  • \n

    \n ExcludedInstanceTypes - The instance types to exclude from the list, \n even if they match your specified attributes.

    \n
  • \n
\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n

Attribute-based instance type selection is only supported when using Auto Scaling\n groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n the launch instance\n wizard, or with the RunInstances API or\n AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements.

\n
\n

For more information, see Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot\n placement score in the Amazon EC2 User Guide.

" + } + }, + "PrivateDnsNameOptions": { + "target": "com.amazonaws.ec2#LaunchTemplatePrivateDnsNameOptionsRequest", + "traits": { + "smithy.api#documentation": "

The options for the instance hostname. The default values are inherited from the\n subnet.

" + } + }, + "MaintenanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMaintenanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

The maintenance options for the instance.

" + } + }, + "DisableApiStop": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to enable the instance for stop protection. For more information,\n see Enable stop protection for your EC2 instances in the\n Amazon EC2 User Guide.

" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

The entity that manages the launch template.

" + } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

Contains launch template settings to boost network performance for the type of\n workload that runs on your instance.

" + } + }, + "SecondaryInterfaces": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationRequestList", + "traits": { + "smithy.api#documentation": "

The secondary interfaces to associate with instances launched from the template.

", + "smithy.api#xmlName": "SecondaryInterface" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information to include in the launch template.

\n \n

You must specify at least one parameter for the launch template data.

\n
" + } + }, + "com.amazonaws.ec2#RequestSpotFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RequestSpotFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RequestSpotFleetResponse" + }, + "traits": { + "smithy.api#documentation": "

Creates a Spot Fleet request.

\n

The Spot Fleet request specifies the total target capacity and the On-Demand target\n capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand\n capacity, and launches the difference as Spot capacity.

\n

You can submit a single request that includes multiple launch specifications that vary\n by instance type, AMI, Availability Zone, or subnet.

\n

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the\n price per unit is the lowest. Each launch specification can include its own instance\n weighting that reflects the value of the instance type to your application\n workload.

\n

Alternatively, you can specify that the Spot Fleet distribute the target capacity\n across the Spot pools included in its launch specifications. By ensuring that the Spot\n Instances in your Spot Fleet are in different Spot pools, you can improve the\n availability of your fleet.

\n

You can specify tags for the Spot Fleet request and instances launched by the fleet.\n You cannot tag other resource types in a Spot Fleet request because only the\n spot-fleet-request and instance resource types are\n supported.

\n

For more information, see Spot Fleet requests\n in the Amazon EC2 User Guide.

\n \n

We strongly discourage using the RequestSpotFleet API because it is a legacy\n API with no planned investment. For options for requesting Spot Instances, see\n Which\n is the best Spot request method to use? in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To request a Spot fleet in the subnet with the lowest price", + "documentation": "This example creates a Spot fleet request with two launch specifications that differ only by subnet. The Spot fleet launches the instances in the specified subnet with the lowest price. If the instances are launched in a default VPC, they receive a public IP address by default. If the instances are launched in a nondefault VPC, they do not receive a public IP address by default. Note that you can't specify different subnets from the same Availability Zone in a Spot fleet request.", + "input": { + "SpotFleetRequestConfig": { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupId": "sg-1a2b3c4d" + } + ], + "InstanceType": "m3.medium", + "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f", + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + ] + } + }, + "output": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } + }, + { + "title": "To request a Spot fleet in the Availability Zone with the lowest price", + "documentation": "This example creates a Spot fleet request with two launch specifications that differ only by Availability Zone. The Spot fleet launches the instances in the specified Availability Zone with the lowest price. If your account supports EC2-VPC only, Amazon EC2 launches the Spot instances in the default subnet of the Availability Zone.", + "input": { + "SpotFleetRequestConfig": { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroups": [ + { + "GroupId": "sg-1a2b3c4d" + } + ], + "InstanceType": "m3.medium", + "Placement": { + "AvailabilityZone": "us-west-2a, us-west-2b" + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + ] + } + }, + "output": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } + }, + { + "title": "To launch Spot instances in a subnet and assign them public IP addresses", + "documentation": "This example assigns public addresses to instances launched in a nondefault VPC. Note that when you specify a network interface, you must include the subnet ID and security group ID using the network interface.", + "input": { + "SpotFleetRequestConfig": { + "SpotPrice": "0.04", + "TargetCapacity": 2, + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "InstanceType": "m3.medium", + "NetworkInterfaces": [ + { + "DeviceIndex": 0, + "SubnetId": "subnet-1a2b3c4d", + "Groups": [ + "sg-1a2b3c4d" + ], + "AssociatePublicIpAddress": true + } + ], + "IamInstanceProfile": { + "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" + } + } + ] + } + }, + "output": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } + }, + { + "title": "To request a Spot fleet using the diversified allocation strategy", + "documentation": "This example creates a Spot fleet request that launches 30 instances using the diversified allocation strategy. The launch specifications differ by instance type. The Spot fleet distributes the instances across the launch specifications such that there are 10 instances of each type.", + "input": { + "SpotFleetRequestConfig": { + "SpotPrice": "0.70", + "TargetCapacity": 30, + "AllocationStrategy": "diversified", + "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", + "LaunchSpecifications": [ + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "c4.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + }, + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "m3.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + }, + { + "ImageId": "ami-1a2b3c4d", + "InstanceType": "r3.2xlarge", + "SubnetId": "subnet-1a2b3c4d" + } + ] + } + }, + "output": { + "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" + } + } + ] + } + }, + "com.amazonaws.ec2#RequestSpotFleetRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotFleetRequestConfig": { + "target": "com.amazonaws.ec2#SpotFleetRequestConfigData", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestConfig", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration for the Spot Fleet request.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "spotFleetRequestConfig" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for RequestSpotFleet.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RequestSpotFleetResponse": { + "type": "structure", + "members": { + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of RequestSpotFleet.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RequestSpotInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RequestSpotInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RequestSpotInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Spot Instance request.

\n

For more information, see Work with Spot Instance in\n the Amazon EC2 User Guide.

\n \n

We strongly discourage using the RequestSpotInstances API because it is a legacy\n API with no planned investment. For options for requesting Spot Instances, see\n Which\n is the best Spot request method to use? in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To create a one-time Spot Instance request", + "documentation": "This example creates a one-time Spot Instance request for five instances in the specified Availability Zone. If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone.", + "input": { + "SpotPrice": "0.03", + "InstanceCount": 5, + "Type": "one-time", + "LaunchSpecification": { + "ImageId": "ami-1a2b3c4d", + "KeyName": "my-key-pair", + "SecurityGroupIds": [ + "sg-1a2b3c4d" + ], + "InstanceType": "m3.medium", + "Placement": { + "AvailabilityZone": "us-west-2a" + }, + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + } + }, + { + "title": "To create a one-time Spot Instance request", + "documentation": "This example command creates a one-time Spot Instance request for five instances in the specified subnet. Amazon EC2 launches the instances in the specified subnet. If the VPC is a nondefault VPC, the instances do not receive a public IP address by default.", + "input": { + "SpotPrice": "0.050", + "InstanceCount": 5, + "Type": "one-time", + "LaunchSpecification": { + "ImageId": "ami-1a2b3c4d", + "SecurityGroupIds": [ + "sg-1a2b3c4d" + ], + "InstanceType": "m3.medium", + "SubnetId": "subnet-1a2b3c4d", + "IamInstanceProfile": { + "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" + } + } + } + } + ] + } + }, + "com.amazonaws.ec2#RequestSpotInstancesRequest": { + "type": "structure", + "members": { + "LaunchSpecification": { + "target": "com.amazonaws.ec2#RequestSpotLaunchSpecification", + "traits": { + "smithy.api#documentation": "

The launch specification.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key-value pair for tagging the Spot Instance request on creation. The value for\n ResourceType must be spot-instances-request, otherwise the\n Spot Instance request fails. To tag the Spot Instance request after it has been created,\n see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted. The default is terminate.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend \n using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see Ensuring idempotency in\n Amazon EC2 API requests in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "clientToken" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The maximum number of Spot Instances to launch.

\n

Default: 1

", + "smithy.api#xmlName": "instanceCount" + } + }, + "Type": { + "target": "com.amazonaws.ec2#SpotInstanceType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The Spot Instance request type.

\n

Default: one-time\n

", + "smithy.api#xmlName": "type" + } + }, + "ValidFrom": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidFrom", + "smithy.api#documentation": "

The start date of the request. If this is a one-time request, the request becomes\n active at this date and time and remains active until all instances launch, the request\n expires, or the request is canceled. If the request is persistent, the request becomes\n active at this date and time and remains active until it expires or is canceled.

\n

The specified start date and time cannot be equal to the current date and time. You\n must specify a start date and time that occurs after the current date and time.

", + "smithy.api#xmlName": "validFrom" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidUntil", + "smithy.api#documentation": "

The end date of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ).

\n
    \n
  • \n

    For a persistent request, the request remains active until the\n ValidUntil date and time is reached. Otherwise, the request\n remains active until you cancel it.

    \n
  • \n
  • \n

    For a one-time request, the request remains active until all instances launch,\n the request is canceled, or the ValidUntil date and time is\n reached. By default, the request is valid for 7 days from the date the request\n was created.

    \n
  • \n
", + "smithy.api#xmlName": "validUntil" + } + }, + "LaunchGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchGroup", + "smithy.api#documentation": "

The instance launch group. Launch groups are Spot Instances that launch together and\n terminate together.

\n

Default: Instances are launched and terminated individually

", + "smithy.api#xmlName": "launchGroup" + } + }, + "AvailabilityZoneGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneGroup", + "smithy.api#documentation": "

The user-specified name for a logical grouping of requests.

\n

When you specify an Availability Zone group in a Spot Instance request, all Spot\n Instances in the request are launched in the same Availability Zone. Instance proximity\n is maintained with this parameter, but the choice of Availability Zone is not. The group\n applies only to requests for Spot Instances of the same instance type. Any additional\n Spot Instance requests that are specified with the same Availability Zone group name are\n launched in that same Availability Zone, as long as at least one instance from the group\n is still active.

\n

If there is no active instance running in the Availability Zone group that you specify\n for a new Spot Instance request (all instances are terminated, the request is expired,\n or the maximum price you specified falls below current Spot price), then Amazon EC2 launches\n the instance in any Availability Zone where the constraint can be met. Consequently, the\n subsequent set of Spot Instances could be placed in a different zone from the original\n request, even if you specified the same Availability Zone group.

\n

Default: Instances are launched in any available Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneGroup" + } + }, + "BlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "BlockDurationMinutes", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "blockDurationMinutes" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for RequestSpotInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RequestSpotInstancesResult": { + "type": "structure", + "members": { + "SpotInstanceRequests": { + "target": "com.amazonaws.ec2#SpotInstanceRequestList", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestSet", + "smithy.api#documentation": "

The Spot Instance requests.

", + "smithy.api#xmlName": "spotInstanceRequestSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of RequestSpotInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RequestSpotLaunchSpecification": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#RequestSpotLaunchSpecificationSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#RequestSpotLaunchSpecificationSecurityGroupList", + "traits": { + "smithy.api#documentation": "

Not supported.

", + "smithy.api#xmlName": "SecurityGroup" + } + }, + "AddressingType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressingType", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "addressingType" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

The block device mapping entries. You can't specify both a snapshot ID and an encryption value. \n This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, \n it is not blank and its encryption status is used for the volume encryption status.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

\n

Default: false\n

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. Only one instance type can be specified.

", + "smithy.api#xmlName": "instanceType" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#KernelId", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The ID of the kernel.

", + "smithy.api#xmlName": "kernelId" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairNameWithResolver", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#RunInstancesMonitoringEnabled", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

Indicates whether basic or detailed monitoring is enabled for the instance.

\n

Default: Disabled

", + "smithy.api#xmlName": "monitoring" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", + "traits": { + "smithy.api#documentation": "

The network interfaces. If you specify a network interface, you must specify \n subnet IDs and security group IDs using the network interface.

", + "smithy.api#xmlName": "NetworkInterface" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#SpotPlacement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The placement information for the instance.

", + "smithy.api#xmlName": "placement" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#RamdiskId", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The ID of the RAM disk.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet in which to launch the instance.

", + "smithy.api#xmlName": "subnetId" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", + "smithy.api#xmlName": "userData" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch specification for an instance.

" + } + }, + "com.amazonaws.ec2#RequestSpotLaunchSpecificationSecurityGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RequestSpotLaunchSpecificationSecurityGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Reservation": { + "type": "structure", + "members": { + "ReservationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservationId", + "smithy.api#documentation": "

The ID of the reservation.

", + "smithy.api#xmlName": "reservationId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the reservation.

", + "smithy.api#xmlName": "ownerId" + } + }, + "RequesterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RequesterId", + "smithy.api#documentation": "

The ID of the requester that launched the instances on your behalf (for example,\n Amazon Web Services Management Console or Auto Scaling).

", + "smithy.api#xmlName": "requesterId" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

Not supported.

", + "smithy.api#xmlName": "groupSet" + } + }, + "Instances": { + "target": "com.amazonaws.ec2#InstanceList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

The instances.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a launch request for one or more instances, and includes owner, requester,\n and security group information that applies to all instances in the launch\n request.

" + } + }, + "com.amazonaws.ec2#ReservationEndDateType": { + "type": "enum", + "members": { + "LIMITED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "limited" + } + }, + "UNLIMITED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlimited" + } + } + } + }, + "com.amazonaws.ec2#ReservationFleetInstanceSpecification": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type for which the Capacity Reservation Fleet reserves capacity.

" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation Fleet reserves\n\t\t\tcapacity.

" + } + }, + "Weight": { + "target": "com.amazonaws.ec2#DoubleWithConstraints", + "traits": { + "smithy.api#documentation": "

The number of capacity units provided by the specified instance type. This value,\n\t\t\ttogether with the total target capacity that you specify for the Fleet determine the\n\t\t\tnumber of instances for which the Fleet reserves capacity. Both values are based on\n\t\t\tunits that make sense for your workload. For more information, see Total target\n\t\t\t\tcapacity in the Amazon EC2 User Guide.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A\n\t\t\tCapacity Reservation Fleet can't span Availability Zones. All instance type\n\t\t\tspecifications that you specify for the Fleet must use the same Availability\n\t\t\tZone.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the\n\t\t\tcapacity. A Capacity Reservation Fleet can't span Availability Zones. All instance type\n\t\t\tspecifications that you specify for the Fleet must use the same Availability\n\t\t\tZone.

" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances\n\t\t\ttypes. This optimization provides dedicated throughput to Amazon EBS and an\n\t\t\toptimized configuration stack to provide optimal I/O performance. This optimization\n\t\t\tisn't available with all instance types. Additional usage charges apply when using\n\t\t\tEBS-optimized instance types.

" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#IntegerWithConstraints", + "traits": { + "smithy.api#documentation": "

The priority to assign to the instance type. This value is used to determine which of\n\t\t\tthe instance types specified for the Fleet should be prioritized for use. A lower value\n\t\t\tindicates a high priority. For more information, see Instance type\n\t\t\t\tpriority in the Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an instance type to use in a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#ReservationFleetInstanceSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservationFleetInstanceSpecification" + } + }, + "com.amazonaws.ec2#ReservationId": { + "type": "string" + }, + "com.amazonaws.ec2#ReservationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Reservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservationState": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "DELAYED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delayed" + } + }, + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "PAYMENT_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "PAYMENT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + }, + "RETIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "retired" + } + } + } + }, + "com.amazonaws.ec2#ReservationType": { + "type": "enum", + "members": { + "CAPACITY_BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "ODCR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "odcr" + } + } + } + }, + "com.amazonaws.ec2#ReservationTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetReservationType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservationTypeListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetReservationType", + "traits": { + "smithy.api#xmlName": "ReservationType" + } + } + }, + "com.amazonaws.ec2#ReservationValue": { + "type": "structure", + "members": { + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly rate of the reservation.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "RemainingTotalValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RemainingTotalValue", + "smithy.api#documentation": "

The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of\n hours remaining).

", + "smithy.api#xmlName": "remainingTotalValue" + } + }, + "RemainingUpfrontValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RemainingUpfrontValue", + "smithy.api#documentation": "

The remaining upfront cost of the reservation.

", + "smithy.api#xmlName": "remainingUpfrontValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

The cost associated with the Reserved Instance.

" + } + }, + "com.amazonaws.ec2#ReservedCapacityAllocationStrategy": { + "type": "enum", + "members": { + "PRIORITIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prioritized" + } + } + } + }, + "com.amazonaws.ec2#ReservedCapacityFallbackMarketType": { + "type": "enum", + "members": { + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + } + } + }, + "com.amazonaws.ec2#ReservedCapacityFallbackMarketTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedCapacityFallbackMarketType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedCapacityFallbackOptions": { + "type": "structure", + "members": { + "MarketTypes": { + "target": "com.amazonaws.ec2#ReservedCapacityFallbackMarketTypeList", + "traits": { + "aws.protocols#ec2QueryName": "MarketTypeSet", + "smithy.api#documentation": "

The instance purchasing options to fall back to when the reserved capacity is not\n enough to meet the target capacity. The only supported value is on-demand,\n which launches On-Demand Instances to fulfill the remaining target capacity.

", + "smithy.api#xmlName": "marketTypeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the fallback behavior for an EC2 Fleet that uses reserved capacity when the\n reserved capacity is not enough to meet the target capacity. If you don't specify\n fallback options, EC2 Fleet does not fall back to any other market type after the specified\n reservation types are exhausted.

" + } + }, + "com.amazonaws.ec2#ReservedCapacityFallbackOptionsRequest": { + "type": "structure", + "members": { + "MarketTypes": { + "target": "com.amazonaws.ec2#ReservedCapacityFallbackMarketTypeList", + "traits": { + "smithy.api#documentation": "

The instance purchasing options to fall back to when the reserved capacity is not\n enough to meet the target capacity. The only supported value is on-demand,\n which launches On-Demand Instances to fulfill the remaining target capacity.

", + "smithy.api#xmlName": "MarketType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the fallback behavior for an EC2 Fleet that uses reserved capacity when the\n reserved capacity is not enough to meet the target capacity. If you don't specify\n fallback options, EC2 Fleet does not fall back to any other market type after the specified\n reservation types are exhausted.

" + } + }, + "com.amazonaws.ec2#ReservedCapacityOptions": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#ReservedCapacityAllocationStrategy", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy that determines the order in which EC2 Fleet launches instances across the\n reservation types that you specify. The only supported value is prioritized,\n which launches instances in the priority order that you specify in your launch template\n overrides. If you don't specify an allocation strategy, instances are launched in a\n random order.

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "ReservationTypes": { + "target": "com.amazonaws.ec2#ReservationTypeList", + "traits": { + "aws.protocols#ec2QueryName": "ReservationTypeSet", + "smithy.api#documentation": "

The types of Capacity Reservations used for fulfilling the EC2 Fleet request.

", + "smithy.api#xmlName": "reservationTypeSet" + } + }, + "ReservedCapacityFallbackOptions": { + "target": "com.amazonaws.ec2#ReservedCapacityFallbackOptions", + "traits": { + "aws.protocols#ec2QueryName": "ReservedCapacityFallbackOptions", + "smithy.api#documentation": "

The fallback behavior for the EC2 Fleet when there is not enough reserved capacity available\n to meet the target capacity.

", + "smithy.api#xmlName": "reservedCapacityFallbackOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType\n is set to reserved-capacity. EC2 Fleet can fulfill reserved capacity using On-Demand Capacity Reservations,\n Capacity Blocks for ML, and interruptible Capacity Reservations.

" + } + }, + "com.amazonaws.ec2#ReservedCapacityOptionsRequest": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#ReservedCapacityAllocationStrategy", + "traits": { + "smithy.api#documentation": "

The strategy that determines the order in which EC2 Fleet launches instances across the\n reservation types that you specify. The only supported value is prioritized,\n which launches instances in the priority order that you specify in your launch template\n overrides. If you don't specify an allocation strategy, instances are launched in a\n random order.

" + } + }, + "ReservationTypes": { + "target": "com.amazonaws.ec2#ReservationTypeListRequest", + "traits": { + "smithy.api#documentation": "

The types of Capacity Reservations to use for fulfilling the EC2 Fleet request. This is an\n ordered list: EC2 Fleet attempts to launch instances into each Capacity Reservation type in the order\n that you specify them before moving on to the next type.

", + "smithy.api#xmlName": "ReservationType" + } + }, + "CapacityReservationTarget": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTargetRequest", + "traits": { + "smithy.api#documentation": "

The Capacity Reservations or Capacity Reservation Resource Groups to use for fulfilling the EC2 Fleet\n request. You can specify Capacity Reservation IDs or a Capacity Reservation Resource Group\n ARN, but not both.

" + } + }, + "ReservedCapacityFallbackOptions": { + "target": "com.amazonaws.ec2#ReservedCapacityFallbackOptionsRequest", + "traits": { + "smithy.api#documentation": "

The fallback behavior for the EC2 Fleet when there is not enough reserved capacity available\n to meet the target capacity. This member takes a\n ReservedCapacityFallbackOptionsRequest structure, in which you set\n MarketTypes to the instance purchasing options to fall back to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType\n is set to reserved-capacity. EC2 Fleet can fulfill reserved capacity using On-Demand Capacity Reservations,\n Capacity Blocks for ML, and interruptible Capacity Reservations.

\n \n

This configuration can only be used if the EC2 Fleet is of type\n instant.

\n
\n

When you specify ReservedCapacityOptions, you must also set\n DefaultTargetCapacityType to reserved-capacity in the\n TargetCapacitySpecification.

\n

For more information about interruptible Capacity Reservations, see Launch\n instances into an interruptible Capacity Reservation in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#ReservedInstanceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservationId", + "traits": { + "smithy.api#xmlName": "ReservedInstanceId" + } + } + }, + "com.amazonaws.ec2#ReservedInstanceLimitPrice": { + "type": "structure", + "members": { + "Amount": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Amount", + "smithy.api#documentation": "

Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total\n order (instanceCount * price).

", + "smithy.api#xmlName": "amount" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency in which the limitPrice amount is specified. At this time, the\n only supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the limit price of a Reserved Instance offering.

" + } + }, + "com.amazonaws.ec2#ReservedInstanceReservationValue": { + "type": "structure", + "members": { + "ReservationValue": { + "target": "com.amazonaws.ec2#ReservationValue", + "traits": { + "aws.protocols#ec2QueryName": "ReservationValue", + "smithy.api#documentation": "

The total value of the Convertible Reserved Instance that you are exchanging.

", + "smithy.api#xmlName": "reservationValue" + } + }, + "ReservedInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstanceId", + "smithy.api#documentation": "

The ID of the Convertible Reserved Instance that you are exchanging.

", + "smithy.api#xmlName": "reservedInstanceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The total value of the Convertible Reserved Instance.

" + } + }, + "com.amazonaws.ec2#ReservedInstanceReservationValueSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstanceReservationValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstanceState": { + "type": "enum", + "members": { + "payment_pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "payment_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "payment-failed" + } + }, + "retired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "retired" + } + }, + "queued": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "queued" + } + }, + "queued_deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "queued-deleted" + } + } + } + }, + "com.amazonaws.ec2#ReservedInstances": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the Reserved Instance. It's specified using ISO 4217 standard currency\n codes. At this time, the only supported currency is USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTenancy", + "smithy.api#documentation": "

The tenancy of the instance.

", + "smithy.api#xmlName": "instanceTenancy" + } + }, + "OfferingClass": { + "target": "com.amazonaws.ec2#OfferingClassType", + "traits": { + "aws.protocols#ec2QueryName": "OfferingClass", + "smithy.api#documentation": "

The offering class of the Reserved Instance.

", + "smithy.api#xmlName": "offeringClass" + } + }, + "OfferingType": { + "target": "com.amazonaws.ec2#OfferingTypeValues", + "traits": { + "aws.protocols#ec2QueryName": "OfferingType", + "smithy.api#documentation": "

The Reserved Instance offering type.

", + "smithy.api#xmlName": "offeringType" + } + }, + "RecurringCharges": { + "target": "com.amazonaws.ec2#RecurringChargesList", + "traits": { + "aws.protocols#ec2QueryName": "RecurringCharges", + "smithy.api#documentation": "

The recurring charge tag assigned to the resource.

", + "smithy.api#xmlName": "recurringCharges" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#scope", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

The scope of the Reserved Instance.

", + "smithy.api#xmlName": "scope" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the resource.

", + "smithy.api#xmlName": "tagSet" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID of the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstancesId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type on which the Reserved Instance can be used.

", + "smithy.api#xmlName": "instanceType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the Reserved Instance can be used.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Start": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Start", + "smithy.api#documentation": "

The date and time the Reserved Instance started.

", + "smithy.api#xmlName": "start" + } + }, + "End": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "End", + "smithy.api#documentation": "

The time when the Reserved Instance expires.

", + "smithy.api#xmlName": "end" + } + }, + "Duration": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Duration", + "smithy.api#documentation": "

The duration of the Reserved Instance, in seconds.

", + "smithy.api#xmlName": "duration" + } + }, + "UsagePrice": { + "target": "com.amazonaws.ec2#Float", + "traits": { + "aws.protocols#ec2QueryName": "UsagePrice", + "smithy.api#documentation": "

The usage price of the Reserved Instance, per hour.

", + "smithy.api#xmlName": "usagePrice" + } + }, + "FixedPrice": { + "target": "com.amazonaws.ec2#Float", + "traits": { + "aws.protocols#ec2QueryName": "FixedPrice", + "smithy.api#documentation": "

The purchase price of the Reserved Instance.

", + "smithy.api#xmlName": "fixedPrice" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of reservations purchased.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "ProductDescription": { + "target": "com.amazonaws.ec2#RIProductDescription", + "traits": { + "aws.protocols#ec2QueryName": "ProductDescription", + "smithy.api#documentation": "

The Reserved Instance product platform description.

", + "smithy.api#xmlName": "productDescription" + } + }, + "State": { + "target": "com.amazonaws.ec2#ReservedInstanceState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Reserved Instance purchase.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesConfiguration": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone for the modified Reserved Instances.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of modified Reserved Instances.

\n \n

This is a required field for a request.

\n
", + "smithy.api#xmlName": "instanceCount" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type for the modified Reserved Instances.

", + "smithy.api#xmlName": "instanceType" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The network platform of the modified Reserved Instances.

", + "smithy.api#xmlName": "platform" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#scope", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

Whether the Reserved Instance is applied to instances in a Region or instances in a\n specific Availability Zone.

", + "smithy.api#xmlName": "scope" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration settings for the modified Reserved Instances.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesId": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID of the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstancesId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the ID of a Reserved Instance.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservationId", + "traits": { + "smithy.api#xmlName": "ReservedInstancesId" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstances", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesListing": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

A unique, case-sensitive key supplied by the client to ensure that the request is\n idempotent. For more information, see Ensuring\n Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The time the listing was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "InstanceCounts": { + "target": "com.amazonaws.ec2#InstanceCountList", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCounts", + "smithy.api#documentation": "

The number of instances in this state.

", + "smithy.api#xmlName": "instanceCounts" + } + }, + "PriceSchedules": { + "target": "com.amazonaws.ec2#PriceScheduleList", + "traits": { + "aws.protocols#ec2QueryName": "PriceSchedules", + "smithy.api#documentation": "

The price of the Reserved Instance listing.

", + "smithy.api#xmlName": "priceSchedules" + } + }, + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID of the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstancesId" + } + }, + "ReservedInstancesListingId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesListingId", + "smithy.api#documentation": "

The ID of the Reserved Instance listing.

", + "smithy.api#xmlName": "reservedInstancesListingId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#ListingStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the Reserved Instance listing.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The reason for the current status of the Reserved Instance listing. The response can be\n blank.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the resource.

", + "smithy.api#xmlName": "tagSet" + } + }, + "UpdateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateDate", + "smithy.api#documentation": "

The last modified timestamp of the listing.

", + "smithy.api#xmlName": "updateDate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance listing.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesListingId": { + "type": "string" + }, + "com.amazonaws.ec2#ReservedInstancesListingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesListing", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesModification": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

A unique, case-sensitive key supplied by the client to ensure that the request is\n idempotent. For more information, see Ensuring\n Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The time when the modification request was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "EffectiveDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "EffectiveDate", + "smithy.api#documentation": "

The time for the modification to become effective.

", + "smithy.api#xmlName": "effectiveDate" + } + }, + "ModificationResults": { + "target": "com.amazonaws.ec2#ReservedInstancesModificationResultList", + "traits": { + "aws.protocols#ec2QueryName": "ModificationResultSet", + "smithy.api#documentation": "

Contains target configurations along with their corresponding new Reserved Instance\n IDs.

", + "smithy.api#xmlName": "modificationResultSet" + } + }, + "ReservedInstancesIds": { + "target": "com.amazonaws.ec2#ReservedIntancesIds", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesSet", + "smithy.api#documentation": "

The IDs of one or more Reserved Instances.

", + "smithy.api#xmlName": "reservedInstancesSet" + } + }, + "ReservedInstancesModificationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesModificationId", + "smithy.api#documentation": "

A unique ID for the Reserved Instance modification.

", + "smithy.api#xmlName": "reservedInstancesModificationId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the Reserved Instances modification request.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The reason for the status.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "UpdateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateDate", + "smithy.api#documentation": "

The time when the modification request was last updated.

", + "smithy.api#xmlName": "updateDate" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance modification.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesModificationId": { + "type": "string" + }, + "com.amazonaws.ec2#ReservedInstancesModificationIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesModificationId", + "traits": { + "smithy.api#xmlName": "ReservedInstancesModificationId" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesModificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesModification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesModificationResult": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID for the Reserved Instances that were created as part of the modification request.\n This field is only available when the modification is fulfilled.

", + "smithy.api#xmlName": "reservedInstancesId" + } + }, + "TargetConfiguration": { + "target": "com.amazonaws.ec2#ReservedInstancesConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "TargetConfiguration", + "smithy.api#documentation": "

The target Reserved Instances configurations supplied as part of the modification\n request.

", + "smithy.api#xmlName": "targetConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the modification request/s.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesModificationResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesModificationResult", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedInstancesOffering": { + "type": "structure", + "members": { + "CurrencyCode": { + "target": "com.amazonaws.ec2#CurrencyCodeValues", + "traits": { + "aws.protocols#ec2QueryName": "CurrencyCode", + "smithy.api#documentation": "

The currency of the Reserved Instance offering you are purchasing. It's specified using\n ISO 4217 standard currency codes. At this time, the only supported currency is\n USD.

", + "smithy.api#xmlName": "currencyCode" + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTenancy", + "smithy.api#documentation": "

The tenancy of the instance.

", + "smithy.api#xmlName": "instanceTenancy" + } + }, + "Marketplace": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Marketplace", + "smithy.api#documentation": "

Indicates whether the offering is available through the Reserved Instance Marketplace\n (resale) or Amazon Web Services. If it's a Reserved Instance Marketplace offering, this is\n true.

", + "smithy.api#xmlName": "marketplace" + } + }, + "OfferingClass": { + "target": "com.amazonaws.ec2#OfferingClassType", + "traits": { + "aws.protocols#ec2QueryName": "OfferingClass", + "smithy.api#documentation": "

If convertible it can be exchanged for Reserved Instances of the same or\n higher monetary value, with different configurations. If standard, it is not\n possible to perform an exchange.

", + "smithy.api#xmlName": "offeringClass" + } + }, + "OfferingType": { + "target": "com.amazonaws.ec2#OfferingTypeValues", + "traits": { + "aws.protocols#ec2QueryName": "OfferingType", + "smithy.api#documentation": "

The Reserved Instance offering type.

", + "smithy.api#xmlName": "offeringType" + } + }, + "PricingDetails": { + "target": "com.amazonaws.ec2#PricingDetailsList", + "traits": { + "aws.protocols#ec2QueryName": "PricingDetailsSet", + "smithy.api#documentation": "

The pricing details of the Reserved Instance offering.

", + "smithy.api#xmlName": "pricingDetailsSet" + } + }, + "RecurringCharges": { + "target": "com.amazonaws.ec2#RecurringChargesList", + "traits": { + "aws.protocols#ec2QueryName": "RecurringCharges", + "smithy.api#documentation": "

The recurring charge tag assigned to the resource.

", + "smithy.api#xmlName": "recurringCharges" + } + }, + "Scope": { + "target": "com.amazonaws.ec2#scope", + "traits": { + "aws.protocols#ec2QueryName": "Scope", + "smithy.api#documentation": "

Whether the Reserved Instance is applied to instances in a Region or an Availability\n Zone.

", + "smithy.api#xmlName": "scope" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "ReservedInstancesOfferingId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesOfferingId", + "smithy.api#documentation": "

The ID of the Reserved Instance offering. This is the offering ID used in GetReservedInstancesExchangeQuote to confirm that an exchange can be\n made.

", + "smithy.api#xmlName": "reservedInstancesOfferingId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type on which the Reserved Instance can be used.

", + "smithy.api#xmlName": "instanceType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the Reserved Instance can be used.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Duration": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Duration", + "smithy.api#documentation": "

The duration of the Reserved Instance, in seconds.

", + "smithy.api#xmlName": "duration" + } + }, + "UsagePrice": { + "target": "com.amazonaws.ec2#Float", + "traits": { + "aws.protocols#ec2QueryName": "UsagePrice", + "smithy.api#documentation": "

The usage price of the Reserved Instance, per hour.

", + "smithy.api#xmlName": "usagePrice" + } + }, + "FixedPrice": { + "target": "com.amazonaws.ec2#Float", + "traits": { + "aws.protocols#ec2QueryName": "FixedPrice", + "smithy.api#documentation": "

The purchase price of the Reserved Instance.

", + "smithy.api#xmlName": "fixedPrice" + } + }, + "ProductDescription": { + "target": "com.amazonaws.ec2#RIProductDescription", + "traits": { + "aws.protocols#ec2QueryName": "ProductDescription", + "smithy.api#documentation": "

The Reserved Instance product platform description.

", + "smithy.api#xmlName": "productDescription" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance offering.

" + } + }, + "com.amazonaws.ec2#ReservedInstancesOfferingId": { + "type": "string" + }, + "com.amazonaws.ec2#ReservedInstancesOfferingIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesOfferingId" + } + }, + "com.amazonaws.ec2#ReservedInstancesOfferingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesOffering", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ReservedIntancesIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservedInstancesId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ResetAddressAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetAddressAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ResetAddressAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Resets the attribute of the specified IP address. For requirements, see Using reverse DNS for email applications.

" + } + }, + "com.amazonaws.ec2#ResetAddressAttributeRequest": { + "type": "structure", + "members": { + "AllocationId": { + "target": "com.amazonaws.ec2#AllocationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

[EC2-VPC] The allocation ID.

", + "smithy.api#required": {} + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#AddressAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attribute of the IP address.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetAddressAttributeResult": { + "type": "structure", + "members": { + "Address": { + "target": "com.amazonaws.ec2#AddressAttribute", + "traits": { + "aws.protocols#ec2QueryName": "Address", + "smithy.api#documentation": "

Information about the IP address.

", + "smithy.api#xmlName": "address" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ResetEbsDefaultKmsKeyId": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdResult" + }, + "traits": { + "smithy.api#documentation": "

Resets the default KMS key for EBS encryption for your account in this Region \n to the Amazon Web Services managed KMS key for EBS.

\n

After resetting the default KMS key to the Amazon Web Services managed KMS key, you can continue to encrypt by a \n customer managed KMS key by specifying it when you create the volume. For more information, see\n Amazon EBS encryption\n in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetEbsDefaultKmsKeyIdResult": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the default KMS key for EBS encryption by default.

", + "smithy.api#xmlName": "kmsKeyId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ResetFpgaImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetFpgaImageAttributeRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ResetFpgaImageAttributeResult" + }, + "traits": { + "smithy.api#documentation": "

Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its default value.\n\t\t You can only reset the load permission attribute.

" + } + }, + "com.amazonaws.ec2#ResetFpgaImageAttributeName": { + "type": "enum", + "members": { + "loadPermission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "loadPermission" + } + } + } + }, + "com.amazonaws.ec2#ResetFpgaImageAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "FpgaImageId": { + "target": "com.amazonaws.ec2#FpgaImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AFI.

", + "smithy.api#required": {} + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#ResetFpgaImageAttributeName", + "traits": { + "smithy.api#documentation": "

The attribute.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetFpgaImageAttributeResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Is true if the request succeeds, and an error otherwise.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ResetImageAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetImageAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Resets an attribute of an AMI to its default value.

", + "smithy.api#examples": [ + { + "title": "To reset the launchPermission attribute", + "documentation": "This example resets the launchPermission attribute for the specified AMI. By default, AMIs are private.", + "input": { + "Attribute": "launchPermission", + "ImageId": "ami-5731123e" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ResetImageAttributeName": { + "type": "enum", + "members": { + "launchPermission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launchPermission" + } + } + } + }, + "com.amazonaws.ec2#ResetImageAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#ResetImageAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attribute to reset (currently you can only reset the launch permission\n attribute).

", + "smithy.api#required": {} + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ResetImageAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetInstanceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetInstanceAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Resets an attribute of an instance to its default value. To reset the\n kernel or ramdisk, the instance must be in a stopped\n state. To reset the sourceDestCheck, the instance can be either running or\n stopped.

\n

The sourceDestCheck attribute controls whether source/destination\n checking is enabled. The default value is true, which means checking is\n enabled. This value must be false for a NAT instance to perform NAT. For\n more information, see NAT instances in the\n Amazon VPC User Guide.

", + "smithy.api#examples": [ + { + "title": "To reset the sourceDestCheck attribute", + "documentation": "This example resets the sourceDestCheck attribute for the specified instance.", + "input": { + "Attribute": "sourceDestCheck", + "InstanceId": "i-1234567890abcdef0" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ResetInstanceAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "instanceId" + } + }, + "Attribute": { + "target": "com.amazonaws.ec2#InstanceAttributeName", + "traits": { + "aws.protocols#ec2QueryName": "Attribute", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attribute to reset.

\n \n

You can only reset the following attributes: kernel |\n ramdisk | sourceDestCheck.

\n
", + "smithy.api#required": {}, + "smithy.api#xmlName": "attribute" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetNetworkInterfaceAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetNetworkInterfaceAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Resets a network interface attribute. You can specify only one attribute at a\n time.

" + } + }, + "com.amazonaws.ec2#ResetNetworkInterfaceAttributeRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually\n making the request, and provides an error response. If you have the required\n permissions, the error response is DryRunOperation. Otherwise, it is\n UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

The source/destination checking attribute. Resets the value to\n true.

", + "smithy.api#xmlName": "sourceDestCheck" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for ResetNetworkInterfaceAttribute.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResetSnapshotAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ResetSnapshotAttributeRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Resets permission settings for the specified snapshot.

\n

For more information about modifying snapshot permissions, see Share a snapshot in the\n Amazon EBS User Guide.

", + "smithy.api#examples": [ + { + "title": "To reset a snapshot attribute", + "documentation": "This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.", + "input": { + "SnapshotId": "snap-1234567890abcdef0", + "Attribute": "createVolumePermission" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#ResetSnapshotAttributeRequest": { + "type": "structure", + "members": { + "Attribute": { + "target": "com.amazonaws.ec2#SnapshotAttributeName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The attribute to reset. Currently, only the attribute for permission to create volumes can\n be reset.

", + "smithy.api#required": {} + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ResourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1283 + } + } + }, + "com.amazonaws.ec2#ResourceConfigurationArn": { + "type": "string" + }, + "com.amazonaws.ec2#ResourceGroupName": { + "type": "string" + }, + "com.amazonaws.ec2#ResourceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TaggableResourceId" + } + }, + "com.amazonaws.ec2#ResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ResourceStatement": { + "type": "structure", + "members": { + "Resources": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceSet", + "smithy.api#documentation": "

The resources.

", + "smithy.api#xmlName": "resourceSet" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "ResourceTypeSet", + "smithy.api#documentation": "

The resource types.

", + "smithy.api#xmlName": "resourceTypeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a resource statement.

" + } + }, + "com.amazonaws.ec2#ResourceStatementRequest": { + "type": "structure", + "members": { + "Resources": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The resources.

", + "smithy.api#xmlName": "Resource" + } + }, + "ResourceTypes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The resource types.

", + "smithy.api#xmlName": "ResourceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a resource statement.

" + } + }, + "com.amazonaws.ec2#ResourceType": { + "type": "enum", + "members": { + "capacity_reservation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-reservation" + } + }, + "client_vpn_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "client-vpn-endpoint" + } + }, + "customer_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "customer-gateway" + } + }, + "carrier_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "carrier-gateway" + } + }, + "coip_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "coip-pool" + } + }, + "declarative_policies_report": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "declarative-policies-report" + } + }, + "dedicated_host": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated-host" + } + }, + "dhcp_options": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dhcp-options" + } + }, + "egress_only_internet_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "egress-only-internet-gateway" + } + }, + "elastic_ip": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elastic-ip" + } + }, + "elastic_gpu": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elastic-gpu" + } + }, + "export_image_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "export-image-task" + } + }, + "export_instance_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "export-instance-task" + } + }, + "fleet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fleet" + } + }, + "fpga_image": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fpga-image" + } + }, + "host_reservation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host-reservation" + } + }, + "image": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image" + } + }, + "image_usage_report": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image-usage-report" + } + }, + "import_image_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "import-image-task" + } + }, + "import_snapshot_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "import-snapshot-task" + } + }, + "instance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + }, + "instance_event_window": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-event-window" + } + }, + "internet_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "internet-gateway" + } + }, + "ipam": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam" + } + }, + "ipam_pool": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-pool" + } + }, + "ipam_scope": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-scope" + } + }, + "ipv4pool_ec2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4pool-ec2" + } + }, + "ipv6pool_ec2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6pool-ec2" + } + }, + "key_pair": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key-pair" + } + }, + "launch_template": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "launch-template" + } + }, + "local_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway" + } + }, + "local_gateway_route_table": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway-route-table" + } + }, + "local_gateway_virtual_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway-virtual-interface" + } + }, + "local_gateway_virtual_interface_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway-virtual-interface-group" + } + }, + "local_gateway_route_table_vpc_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway-route-table-vpc-association" + } + }, + "local_gateway_route_table_virtual_interface_group_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local-gateway-route-table-virtual-interface-group-association" + } + }, + "natgateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "natgateway" + } + }, + "network_acl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-acl" + } + }, + "network_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-interface" + } + }, + "network_insights_analysis": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-insights-analysis" + } + }, + "network_insights_path": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-insights-path" + } + }, + "network_insights_access_scope": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-insights-access-scope" + } + }, + "network_insights_access_scope_analysis": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-insights-access-scope-analysis" + } + }, + "outpost_lag": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "outpost-lag" + } + }, + "placement_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "placement-group" + } + }, + "prefix_list": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prefix-list" + } + }, + "replace_root_volume_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "replace-root-volume-task" + } + }, + "reserved_instances": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reserved-instances" + } + }, + "route_table": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "route-table" + } + }, + "security_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "security-group" + } + }, + "security_group_rule": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "security-group-rule" + } + }, + "service_link_virtual_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service-link-virtual-interface" + } + }, + "snapshot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "snapshot" + } + }, + "spot_fleet_request": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-fleet-request" + } + }, + "spot_instances_request": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot-instances-request" + } + }, + "subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet" + } + }, + "subnet_cidr_reservation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subnet-cidr-reservation" + } + }, + "traffic_mirror_filter": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "traffic-mirror-filter" + } + }, + "traffic_mirror_session": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "traffic-mirror-session" + } + }, + "traffic_mirror_target": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "traffic-mirror-target" + } + }, + "transit_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway" + } + }, + "transit_gateway_attachment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-attachment" + } + }, + "transit_gateway_connect_peer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-connect-peer" + } + }, + "transit_gateway_multicast_domain": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-multicast-domain" + } + }, + "transit_gateway_policy_table": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-policy-table" + } + }, + "transit_gateway_metering_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-metering-policy" + } + }, + "transit_gateway_route_table": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-route-table" + } + }, + "transit_gateway_route_table_announcement": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-route-table-announcement" + } + }, + "volume": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volume" + } + }, + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "vpc_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint" + } + }, + "vpc_endpoint_connection": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-connection" + } + }, + "vpc_endpoint_service": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-service" + } + }, + "vpc_endpoint_service_permission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-service-permission" + } + }, + "vpc_peering_connection": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-peering-connection" + } + }, + "vpn_connection": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn-connection" + } + }, + "vpn_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn-gateway" + } + }, + "vpc_flow_log": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-flow-log" + } + }, + "capacity_reservation_fleet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-reservation-fleet" + } + }, + "traffic_mirror_filter_rule": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "traffic-mirror-filter-rule" + } + }, + "vpc_endpoint_connection_device_type": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-endpoint-connection-device-type" + } + }, + "verified_access_instance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-instance" + } + }, + "verified_access_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-group" + } + }, + "verified_access_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-endpoint" + } + }, + "verified_access_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-policy" + } + }, + "verified_access_trust_provider": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-trust-provider" + } + }, + "vpn_connection_device_type": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn-connection-device-type" + } + }, + "vpc_block_public_access_exclusion": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-block-public-access-exclusion" + } + }, + "vpc_encryption_control": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc-encryption-control" + } + }, + "route_server": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "route-server" + } + }, + "route_server_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "route-server-endpoint" + } + }, + "route_server_peer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "route-server-peer" + } + }, + "ipam_resource_discovery": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-resource-discovery" + } + }, + "ipam_resource_discovery_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-resource-discovery-association" + } + }, + "instance_connect_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-connect-endpoint" + } + }, + "verified_access_endpoint_target": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified-access-endpoint-target" + } + }, + "ipam_external_resource_verification_token": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-external-resource-verification-token" + } + }, + "capacity_block": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + }, + "mac_modification_task": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mac-modification-task" + } + }, + "ipam_prefix_list_resolver": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-prefix-list-resolver" + } + }, + "ipam_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-policy" + } + }, + "ipam_prefix_list_resolver_target": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-prefix-list-resolver-target" + } + }, + "ipam_internet_registry_association": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-internet-registry-association" + } + }, + "secondary_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "secondary-interface" + } + }, + "secondary_network": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "secondary-network" + } + }, + "secondary_subnet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "secondary-subnet" + } + }, + "capacity_manager_data_export": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-manager-data-export" + } + }, + "vpn_concentrator": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn-concentrator" + } + }, + "ipam_pool_allocation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipam-pool-allocation" + } + }, + "capacity_reservation_cancellation_quote": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-reservation-cancellation-quote" + } + }, + "application_status_check": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "application-status-check" + } + }, + "capacity_reservation_modification_quote": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-reservation-modification-quote" + } + } + } + }, + "com.amazonaws.ec2#ResourceTypeOption": { + "type": "structure", + "members": { + "OptionName": { + "target": "com.amazonaws.ec2#ImageReferenceOptionName", + "traits": { + "smithy.api#documentation": "

The name of the option.

\n
    \n
  • \n

    For ec2:Instance:

    \n

    Specify state-name - The current state of the EC2 instance.

    \n
  • \n
  • \n

    For ec2:LaunchTemplate:

    \n

    Specify version-depth - The number of launch template versions to check,\n starting from the most recent version.

    \n
  • \n
" + } + }, + "OptionValues": { + "target": "com.amazonaws.ec2#ResourceTypeOptionValuesList", + "traits": { + "smithy.api#documentation": "

A value for the specified option.

\n
    \n
  • \n

    For state-name:

    \n
      \n
    • \n

      Valid values: pending | running | shutting-down |\n terminated | stopping | stopped\n

      \n
    • \n
    • \n

      Default: All states

      \n
    • \n
    \n
  • \n
  • \n

    For version-depth:

    \n
      \n
    • \n

      Valid values: Integers between 1 and 10000\n

      \n
    • \n
    • \n

      Default: 10\n

      \n
    • \n
    \n
  • \n
", + "smithy.api#xmlName": "OptionValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options that affect the scope of the response.

" + } + }, + "com.amazonaws.ec2#ResourceTypeOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ResourceTypeOption" + } + }, + "com.amazonaws.ec2#ResourceTypeOptionValue": { + "type": "string" + }, + "com.amazonaws.ec2#ResourceTypeOptionValuesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ResourceTypeOptionValue" + } + }, + "com.amazonaws.ec2#ResourceTypeRequest": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ImageReferenceResourceType", + "traits": { + "smithy.api#documentation": "

The resource type.

" + } + }, + "ResourceTypeOptions": { + "target": "com.amazonaws.ec2#ResourceTypeOptionList", + "traits": { + "smithy.api#documentation": "

The options that affect the scope of the response. Valid only when\n ResourceType is ec2:Instance or\n ec2:LaunchTemplate.

", + "smithy.api#xmlName": "ResourceTypeOption" + } + } + }, + "traits": { + "smithy.api#documentation": "

A resource type to check for image references. Associated options can also be specified if the\n resource type is an EC2 instance or launch template.

" + } + }, + "com.amazonaws.ec2#ResourceTypeRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ResourceTypeRequest" + } + }, + "com.amazonaws.ec2#ResponseError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#LaunchTemplateErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the error that's returned when you cannot delete a launch template\n version.

" + } + }, + "com.amazonaws.ec2#ResponseHostIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ResponseHostIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ResponseLaunchTemplateData": { + "type": "structure", + "members": { + "KernelId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The ID of the kernel, if applicable.

", + "smithy.api#xmlName": "kernelId" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#LaunchTemplateIamInstanceProfileSpecification", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#LaunchTemplateBlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMappingSet", + "smithy.api#documentation": "

The block device mappings.

", + "smithy.api#xmlName": "blockDeviceMappingSet" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceSet", + "smithy.api#documentation": "

The network interfaces.

", + "smithy.api#xmlName": "networkInterfaceSet" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI or a Systems Manager parameter. The Systems Manager parameter will\n resolve to the ID of the AMI at instance launch.

\n

The value depends on what you specified in the request. The possible values\n are:

\n
    \n
  • \n

    If an AMI ID was specified in the request, then this is the AMI ID.

    \n
  • \n
  • \n

    If a Systems Manager parameter was specified in the request, and\n ResolveAlias was configured as true, then this is\n the AMI ID that the parameter is mapped to in the Parameter Store.

    \n
  • \n
  • \n

    If a Systems Manager parameter was specified in the request, and\n ResolveAlias was configured as false, then this is\n the parameter value.

    \n
  • \n
\n

For more information, see Use a Systems Manager parameter instead of an AMI ID in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "imageId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#LaunchTemplatesMonitoring", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

The monitoring for the instance.

", + "smithy.api#xmlName": "monitoring" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#LaunchTemplatePlacement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The placement of the instance.

", + "smithy.api#xmlName": "placement" + } + }, + "RamDiskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RamDiskId", + "smithy.api#documentation": "

The ID of the RAM disk, if applicable.

", + "smithy.api#xmlName": "ramDiskId" + } + }, + "DisableApiTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiTermination", + "smithy.api#documentation": "

If set to true, indicates that the instance cannot be terminated using\n the Amazon EC2 console, command line tool, or API.

", + "smithy.api#xmlName": "disableApiTermination" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#ShutdownBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInitiatedShutdownBehavior", + "smithy.api#documentation": "

Indicates whether an instance stops or terminates when you initiate shutdown from the\n instance (using the operating system command for system shutdown).

", + "smithy.api#xmlName": "instanceInitiatedShutdownBehavior" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The user data for the instance.

", + "smithy.api#xmlName": "userData" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#LaunchTemplateTagSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "TagSpecificationSet", + "smithy.api#documentation": "

The tags that are applied to the resources that are created during instance\n launch.

", + "smithy.api#xmlName": "tagSpecificationSet" + } + }, + "ElasticGpuSpecifications": { + "target": "com.amazonaws.ec2#ElasticGpuSpecificationResponseList", + "traits": { + "aws.protocols#ec2QueryName": "ElasticGpuSpecificationSet", + "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
", + "smithy.api#xmlName": "elasticGpuSpecificationSet" + } + }, + "ElasticInferenceAccelerators": { + "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorResponseList", + "traits": { + "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorSet", + "smithy.api#documentation": "\n

Amazon Elastic Inference is no longer available.

\n
\n

An elastic inference accelerator to associate with the instance. Elastic inference\n accelerators are a resource you can attach to your Amazon EC2 instances to accelerate\n your Deep Learning (DL) inference workloads.

\n

You cannot specify accelerators from different generations in the same request.

", + "smithy.api#xmlName": "elasticInferenceAcceleratorSet" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupIdSet", + "smithy.api#documentation": "

The security group IDs.

", + "smithy.api#xmlName": "securityGroupIdSet" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupSet", + "smithy.api#documentation": "

The security group names.

", + "smithy.api#xmlName": "securityGroupSet" + } + }, + "InstanceMarketOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMarketOptions", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMarketOptions", + "smithy.api#documentation": "

The market (purchasing) option for the instances.

", + "smithy.api#xmlName": "instanceMarketOptions" + } + }, + "CreditSpecification": { + "target": "com.amazonaws.ec2#CreditSpecification", + "traits": { + "aws.protocols#ec2QueryName": "CreditSpecification", + "smithy.api#documentation": "

The credit option for CPU usage of the instance.

", + "smithy.api#xmlName": "creditSpecification" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateCpuOptions", + "traits": { + "aws.protocols#ec2QueryName": "CpuOptions", + "smithy.api#documentation": "

The CPU options for the instance. For more information, see CPU\n options for Amazon EC2 instances in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "cpuOptions" + } + }, + "CapacityReservationSpecification": { + "target": "com.amazonaws.ec2#LaunchTemplateCapacityReservationSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationSpecification", + "smithy.api#documentation": "

Information about the Capacity Reservation targeting option.

", + "smithy.api#xmlName": "capacityReservationSpecification" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#LaunchTemplateLicenseList", + "traits": { + "aws.protocols#ec2QueryName": "LicenseSet", + "smithy.api#documentation": "

The license configurations.

", + "smithy.api#xmlName": "licenseSet" + } + }, + "HibernationOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateHibernationOptions", + "traits": { + "aws.protocols#ec2QueryName": "HibernationOptions", + "smithy.api#documentation": "

Indicates whether an instance is configured for hibernation. For more information, see\n Hibernate\n your Amazon EC2 instance in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "hibernationOptions" + } + }, + "MetadataOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataOptions", + "traits": { + "aws.protocols#ec2QueryName": "MetadataOptions", + "smithy.api#documentation": "

The metadata options for the instance. For more information, see Configure\n the Instance Metadata Service options in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "metadataOptions" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateEnclaveOptions", + "traits": { + "aws.protocols#ec2QueryName": "EnclaveOptions", + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

", + "smithy.api#xmlName": "enclaveOptions" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirements", + "traits": { + "aws.protocols#ec2QueryName": "InstanceRequirements", + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with these attributes.

\n

If you specify InstanceRequirements, you can't specify\n InstanceTypes.

", + "smithy.api#xmlName": "instanceRequirements" + } + }, + "PrivateDnsNameOptions": { + "target": "com.amazonaws.ec2#LaunchTemplatePrivateDnsNameOptions", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameOptions", + "smithy.api#documentation": "

The options for the instance hostname.

", + "smithy.api#xmlName": "privateDnsNameOptions" + } + }, + "MaintenanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMaintenanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "MaintenanceOptions", + "smithy.api#documentation": "

The maintenance options for your instance.

", + "smithy.api#xmlName": "maintenanceOptions" + } + }, + "DisableApiStop": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiStop", + "smithy.api#documentation": "

Indicates whether the instance is enabled for stop protection. For more information,\n see Enable stop protection for your EC2 instances in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "disableApiStop" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The entity that manages the launch template.

", + "smithy.api#xmlName": "operator" + } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#LaunchTemplateNetworkPerformanceOptions", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPerformanceOptions", + "smithy.api#documentation": "

Contains the launch template settings for network performance options for your\n instance.

", + "smithy.api#xmlName": "networkPerformanceOptions" + } + }, + "SecondaryInterfaces": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceSecondaryInterfaceSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceSet", + "smithy.api#documentation": "

The secondary interfaces associated with the launch template.

", + "smithy.api#xmlName": "secondaryInterfaceSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information for a launch template.

" + } + }, + "com.amazonaws.ec2#RestorableByStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String" + } + }, + "com.amazonaws.ec2#RestoreAddressToClassic": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreAddressToClassicRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreAddressToClassicResult" + }, + "traits": { + "smithy.api#documentation": "\n

This action is deprecated.

\n
\n

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

" + } + }, + "com.amazonaws.ec2#RestoreAddressToClassicRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Elastic IP address.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "publicIp" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreAddressToClassicResult": { + "type": "structure", + "members": { + "PublicIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIp", + "smithy.api#documentation": "

The Elastic IP address.

", + "smithy.api#xmlName": "publicIp" + } + }, + "Status": { + "target": "com.amazonaws.ec2#Status", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The move status for the IP address.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RestoreImageFromRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreImageFromRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreImageFromRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Restores an AMI from the Recycle Bin. For more information, see Recover deleted Amazon EBS\n snapshots and EBS-back AMIs with Recycle Bin in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#RestoreImageFromRecycleBinRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI to restore.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreImageFromRecycleBinResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RestoreManagedPrefixListVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreManagedPrefixListVersionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreManagedPrefixListVersionResult" + }, + "traits": { + "smithy.api#documentation": "

Restores the entries from a previous version of a managed prefix list to a new version of the prefix list.

" + } + }, + "com.amazonaws.ec2#RestoreManagedPrefixListVersionRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#required": {} + } + }, + "PreviousVersion": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The version to restore.

", + "smithy.api#required": {} + } + }, + "CurrentVersion": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The current version number for the prefix list.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreManagedPrefixListVersionResult": { + "type": "structure", + "members": { + "PrefixList": { + "target": "com.amazonaws.ec2#ManagedPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "PrefixList", + "smithy.api#documentation": "

Information about the prefix list.

", + "smithy.api#xmlName": "prefixList" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RestoreSnapshotFromRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Restores a snapshot from the Recycle Bin. For more information, see Restore \n snapshots from the Recycle Bin in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot to restore.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreSnapshotFromRecycleBinResult": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The ARN of the Outpost on which the snapshot is stored. For more information, see Amazon EBS local snapshots on Outposts in the \n Amazon EBS User Guide.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description for the snapshot.

", + "smithy.api#xmlName": "description" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the snapshot is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the EBS snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The progress of the snapshot, as a percentage.

", + "smithy.api#xmlName": "progress" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time stamp when the snapshot was initiated.

", + "smithy.api#xmlName": "startTime" + } + }, + "State": { + "target": "com.amazonaws.ec2#SnapshotState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The state of the snapshot.

", + "smithy.api#xmlName": "status" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume that was used to create the snapshot.

", + "smithy.api#xmlName": "volumeId" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#xmlName": "volumeSize" + } + }, + "SseType": { + "target": "com.amazonaws.ec2#SSEType", + "traits": { + "aws.protocols#ec2QueryName": "SseType", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "sseType" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RestoreSnapshotTier": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreSnapshotTierRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreSnapshotTierResult" + }, + "traits": { + "smithy.api#documentation": "

Restores an archived Amazon EBS snapshot for use temporarily or permanently, or modifies the restore \n period or restore type for a snapshot that was previously temporarily restored.

\n

For more information see \n Restore an archived snapshot and \n modify the restore period or restore type for a temporarily restored snapshot in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#RestoreSnapshotTierRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot to restore.

", + "smithy.api#required": {} + } + }, + "TemporaryRestoreDays": { + "target": "com.amazonaws.ec2#RestoreSnapshotTierRequestTemporaryRestoreDays", + "traits": { + "smithy.api#documentation": "

Specifies the number of days for which to temporarily restore an archived snapshot. \n Required for temporary restores only. The snapshot will be automatically re-archived \n after this period.

\n

To temporarily restore an archived snapshot, specify the number of days and omit \n the PermanentRestore parameter or set it to \n false.

" + } + }, + "PermanentRestore": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to permanently restore an archived snapshot. To permanently restore \n an archived snapshot, specify true and omit the \n RestoreSnapshotTierRequest$TemporaryRestoreDays parameter.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreSnapshotTierRequestTemporaryRestoreDays": { + "type": "integer" + }, + "com.amazonaws.ec2#RestoreSnapshotTierResult": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "RestoreStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RestoreStartTime", + "smithy.api#documentation": "

The date and time when the snapshot restore process started.

", + "smithy.api#xmlName": "restoreStartTime" + } + }, + "RestoreDuration": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RestoreDuration", + "smithy.api#documentation": "

For temporary restores only. The number of days for which the archived snapshot \n is temporarily restored.

", + "smithy.api#xmlName": "restoreDuration" + } + }, + "IsPermanentRestore": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsPermanentRestore", + "smithy.api#documentation": "

Indicates whether the snapshot is permanently restored. true indicates a permanent \n restore. false indicates a temporary restore.

", + "smithy.api#xmlName": "isPermanentRestore" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RestoreVolumeFromRecycleBin": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RestoreVolumeFromRecycleBinRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RestoreVolumeFromRecycleBinResult" + }, + "traits": { + "smithy.api#documentation": "

Restores a volume from the Recycle Bin. For more information, see Restore \n volumes from the Recycle Bin in the Amazon EBS User Guide.

" + } + }, + "com.amazonaws.ec2#RestoreVolumeFromRecycleBinRequest": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the volume to restore.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RestoreVolumeFromRecycleBinResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ResultRange": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 20, + "max": 500 + } + } + }, + "com.amazonaws.ec2#RetentionPeriodRequestDays": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 36500 + } + } + }, + "com.amazonaws.ec2#RetentionPeriodResponseDays": { + "type": "integer" + }, + "com.amazonaws.ec2#RevokeClientVpnIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RevokeClientVpnIngressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RevokeClientVpnIngressResult" + }, + "traits": { + "smithy.api#documentation": "

Removes an ingress authorization rule from a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#RevokeClientVpnIngressRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint with which the authorization rule is associated.

", + "smithy.api#required": {} + } + }, + "TargetNetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IPv4 address range, in CIDR notation, of the network for which access is being removed.

", + "smithy.api#required": {} + } + }, + "AccessGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Active Directory group for which to revoke access.

" + } + }, + "RevokeAllGroups": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether access should be revoked for all groups for a single TargetNetworkCidr that earlier authorized ingress for all groups using AuthorizeAllGroups.\n\t\t\tThis does not impact other authorization rules that allowed ingress to the same TargetNetworkCidr with a specific AccessGroupId.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RevokeClientVpnIngressResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#ClientVpnAuthorizationRuleStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the authorization rule.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupEgress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RevokeSecurityGroupEgressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RevokeSecurityGroupEgressResult" + }, + "traits": { + "smithy.api#documentation": "

Removes the specified outbound (egress) rules from the specified security group.

\n

You can specify rules using either rule IDs or security group rule properties. If you use\n rule properties, the values that you specify (for example, ports) must match the existing rule's \n values exactly. Each rule has a protocol, from and to ports, and destination (CIDR range, \n security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n and code. If the security group rule has a description, you do not need to specify the description \n to revoke the rule.

\n

For a default VPC, if the values you specify do not match the existing rule's values, no error is\n returned, and the output describes the security group rules that were not revoked.

\n

Amazon Web Services recommends that you describe the security group to verify that the rules were removed.

\n

Rule changes are propagated to instances within the security group as quickly as possible. However, \n a small delay might occur.

" + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupEgressRequest": { + "type": "structure", + "members": { + "SecurityGroupRuleIds": { + "target": "com.amazonaws.ec2#SecurityGroupRuleIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the security group rules.

", + "smithy.api#xmlName": "SecurityGroupRuleId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "groupId" + } + }, + "SourceSecurityGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceSecurityGroupName", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify a\n destination security group.

", + "smithy.api#xmlName": "sourceSecurityGroupName" + } + }, + "SourceSecurityGroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceSecurityGroupOwnerId", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify a destination security\n group.

", + "smithy.api#xmlName": "sourceSecurityGroupOwnerId" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify the protocol name or\n number.

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify the port.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify the port.

", + "smithy.api#xmlName": "toPort" + } + }, + "CidrIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIp", + "smithy.api#documentation": "

Not supported. Use a set of IP permissions to specify the CIDR.

", + "smithy.api#xmlName": "cidrIp" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "IpPermissions", + "smithy.api#documentation": "

The sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions.

", + "smithy.api#xmlName": "ipPermissions" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupEgressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "UnknownIpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "UnknownIpPermissionSet", + "smithy.api#documentation": "

The outbound rules that were unknown to the service. In some cases,\n unknownIpPermissionSet might be in a different format from the request\n parameter.

", + "smithy.api#xmlName": "unknownIpPermissionSet" + } + }, + "RevokedSecurityGroupRules": { + "target": "com.amazonaws.ec2#RevokedSecurityGroupRuleList", + "traits": { + "aws.protocols#ec2QueryName": "RevokedSecurityGroupRuleSet", + "smithy.api#documentation": "

Details about the revoked security group rules.

", + "smithy.api#xmlName": "revokedSecurityGroupRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RevokeSecurityGroupIngressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RevokeSecurityGroupIngressResult" + }, + "traits": { + "smithy.api#documentation": "

Removes the specified inbound (ingress) rules from a security group.

\n

You can specify rules using either rule IDs or security group rule properties. If you use\n rule properties, the values that you specify (for example, ports) must match the existing rule's \n values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, \n security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n and code. If the security group rule has a description, you do not need to specify the description \n to revoke the rule.

\n

For a default VPC, if the values you specify do not match the existing rule's values,\n no error is returned, and the output describes the security group rules that were not\n revoked.

\n

For a non-default VPC, if the values you specify do not match the existing rule's\n values, an InvalidPermission.NotFound client error is returned, and no\n rules are revoked.

\n

Amazon Web Services recommends that you describe the security group to verify that the rules were removed.

\n

Rule changes are propagated to instances within the security group as quickly as possible. \n However, a small delay might occur.

" + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupIngressRequest": { + "type": "structure", + "members": { + "CidrIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range.\n If the protocol is ICMP, this is the ICMP type or -1 (all ICMP types).

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the security group. You must specify either the\n security group ID or the security group name in the request. For security groups in a\n nondefault VPC, you must specify the security group ID.

" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "smithy.api#documentation": "

The sets of IP permissions. You can't specify a source security group and a CIDR IP address range in the same set of permissions.

" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp) or number \n (see Protocol Numbers). \n Use -1 to specify all.

" + } + }, + "SourceSecurityGroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the source security group. You can't specify this parameter \n in combination with the following parameters: the CIDR IP address range, the start of the port range, \n the IP protocol, and the end of the port range. The source security group must be in the same VPC. \n To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.

" + } + }, + "SourceSecurityGroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Not supported.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP, this is the ICMP code or -1 (all ICMP codes).

" + } + }, + "SecurityGroupRuleIds": { + "target": "com.amazonaws.ec2#SecurityGroupRuleIdList", + "traits": { + "smithy.api#documentation": "

The IDs of the security group rules.

", + "smithy.api#xmlName": "SecurityGroupRuleId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RevokeSecurityGroupIngressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + }, + "UnknownIpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "UnknownIpPermissionSet", + "smithy.api#documentation": "

The inbound rules that were unknown to the service. In some cases,\n unknownIpPermissionSet might be in a different format from the request\n parameter.

", + "smithy.api#xmlName": "unknownIpPermissionSet" + } + }, + "RevokedSecurityGroupRules": { + "target": "com.amazonaws.ec2#RevokedSecurityGroupRuleList", + "traits": { + "aws.protocols#ec2QueryName": "RevokedSecurityGroupRuleSet", + "smithy.api#documentation": "

Details about the revoked security group rules.

", + "smithy.api#xmlName": "revokedSecurityGroupRuleSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#RevokedSecurityGroupRule": { + "type": "structure", + "members": { + "SecurityGroupRuleId": { + "target": "com.amazonaws.ec2#SecurityGroupRuleId", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleId", + "smithy.api#documentation": "

A security group rule ID.

", + "smithy.api#xmlName": "securityGroupRuleId" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

A security group ID.

", + "smithy.api#xmlName": "groupId" + } + }, + "IsEgress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsEgress", + "smithy.api#documentation": "

Defines if a security group rule is an outbound rule.

", + "smithy.api#xmlName": "isEgress" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

The security group rule's protocol.

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

The 'from' port number of the security group rule.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

The 'to' port number of the security group rule.

", + "smithy.api#xmlName": "toPort" + } + }, + "CidrIpv4": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIpv4", + "smithy.api#documentation": "

The IPv4 CIDR of the traffic source.

", + "smithy.api#xmlName": "cidrIpv4" + } + }, + "CidrIpv6": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIpv6", + "smithy.api#documentation": "

The IPv6 CIDR of the traffic source.

", + "smithy.api#xmlName": "cidrIpv6" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of a prefix list that's the traffic source.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "ReferencedGroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "ReferencedGroupId", + "smithy.api#documentation": "

The ID of a referenced security group.

", + "smithy.api#xmlName": "referencedGroupId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the revoked security group rule.

", + "smithy.api#xmlName": "description" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group rule removed with RevokeSecurityGroupEgress or RevokeSecurityGroupIngress.

" + } + }, + "com.amazonaws.ec2#RevokedSecurityGroupRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RevokedSecurityGroupRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Rir": { + "type": "enum", + "members": { + "ripe": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ripe" + } + }, + "apnic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "apnic" + } + }, + "arin": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "arin" + } + }, + "lacnic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lacnic" + } + }, + "nicbr": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nicbr" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Regional Internet Registry (RIR).

" + } + }, + "com.amazonaws.ec2#RoleId": { + "type": "string" + }, + "com.amazonaws.ec2#RootDeviceType": { + "type": "enum", + "members": { + "ebs": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ebs" + } + }, + "instance_store": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance-store" + } + } + } + }, + "com.amazonaws.ec2#RootDeviceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RootDeviceType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Route": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block used for the destination match.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "DestinationIpv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationIpv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block used for the destination match.

", + "smithy.api#xmlName": "destinationIpv6CidrBlock" + } + }, + "DestinationPrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPrefixListId", + "smithy.api#documentation": "

The prefix of the Amazon Web Services service.

", + "smithy.api#xmlName": "destinationPrefixListId" + } + }, + "EgressOnlyInternetGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGatewayId", + "smithy.api#documentation": "

The ID of the egress-only internet gateway.

", + "smithy.api#xmlName": "egressOnlyInternetGatewayId" + } + }, + "GatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of a gateway attached to your VPC.

", + "smithy.api#xmlName": "gatewayId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of a NAT instance in your VPC.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceOwnerId", + "smithy.api#documentation": "

The ID of Amazon Web Services account that owns the instance.

", + "smithy.api#xmlName": "instanceOwnerId" + } + }, + "NatGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of a NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of a transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "LocalGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalGatewayId", + "smithy.api#documentation": "

The ID of the local gateway.

", + "smithy.api#xmlName": "localGatewayId" + } + }, + "CarrierGatewayId": { + "target": "com.amazonaws.ec2#CarrierGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "CarrierGatewayId", + "smithy.api#documentation": "

The ID of the carrier gateway.

", + "smithy.api#xmlName": "carrierGatewayId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Origin": { + "target": "com.amazonaws.ec2#RouteOrigin", + "traits": { + "aws.protocols#ec2QueryName": "Origin", + "smithy.api#documentation": "

Describes how the route was created.

\n
    \n
  • \n

    \n CreateRouteTable - The route was automatically created when the route table was created.

    \n
  • \n
  • \n

    \n CreateRoute - The route was manually added to the route table.

    \n
  • \n
  • \n

    \n EnableVgwRoutePropagation - The route was propagated by route propagation.

    \n
  • \n
  • \n

    \n Advertisement - The route was created dynamically by Amazon VPC Route Server.

    \n
  • \n
", + "smithy.api#xmlName": "origin" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the route. The blackhole state indicates that the\n\t\t\t\troute's target isn't available (for example, the specified gateway isn't attached to the\n\t\t\t\tVPC, or the specified NAT instance has been terminated).

", + "smithy.api#xmlName": "state" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of a VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.ec2#CoreNetworkArn", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the core network.

", + "smithy.api#xmlName": "coreNetworkArn" + } + }, + "OdbNetworkArn": { + "target": "com.amazonaws.ec2#OdbNetworkArn", + "traits": { + "aws.protocols#ec2QueryName": "OdbNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ODB network.

", + "smithy.api#xmlName": "odbNetworkArn" + } + }, + "IpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpAddress", + "smithy.api#documentation": "

The next hop IP address for routes propagated by VPC Route \n Server into VPC route tables.

", + "smithy.api#xmlName": "ipAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route in a route table.

" + } + }, + "com.amazonaws.ec2#RouteGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Route", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteOrigin": { + "type": "enum", + "members": { + "CreateRouteTable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateRouteTable" + } + }, + "CreateRoute": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateRoute" + } + }, + "EnableVgwRoutePropagation": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EnableVgwRoutePropagation" + } + }, + "Advertisement": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Advertisement" + } + } + } + }, + "com.amazonaws.ec2#RouteServer": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerId", + "smithy.api#documentation": "

The unique identifier of the route server.

", + "smithy.api#xmlName": "routeServerId" + } + }, + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "AmazonSideAsn", + "smithy.api#documentation": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.

", + "smithy.api#xmlName": "amazonSideAsn" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteServerState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the route server.

", + "smithy.api#xmlName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the route server.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PersistRoutesState": { + "target": "com.amazonaws.ec2#RouteServerPersistRoutesState", + "traits": { + "aws.protocols#ec2QueryName": "PersistRoutesState", + "smithy.api#documentation": "

The current state of route persistence for the route server.

", + "smithy.api#xmlName": "persistRoutesState" + } + }, + "PersistRoutesDuration": { + "target": "com.amazonaws.ec2#BoxedLong", + "traits": { + "aws.protocols#ec2QueryName": "PersistRoutesDuration", + "smithy.api#documentation": "

The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. The default value is 1. Only valid if persistRoutesState is 'enabled'.

\n

If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.

", + "smithy.api#xmlName": "persistRoutesDuration" + } + }, + "SnsNotificationsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SnsNotificationsEnabled", + "smithy.api#documentation": "

Indicates whether SNS notifications are enabled for the route server. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by Amazon Web Services.

", + "smithy.api#xmlName": "snsNotificationsEnabled" + } + }, + "SnsTopicArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnsTopicArn", + "smithy.api#documentation": "

The ARN of the SNS topic where notifications are published.

", + "smithy.api#xmlName": "snsTopicArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route server and its configuration.

\n

Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, \nVPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.

\n

Route server supports the follow route table types:

\n
    \n
  • \n

    VPC route tables not associated with subnets

    \n
  • \n
  • \n

    Subnet route tables

    \n
  • \n
  • \n

    Internet gateway route tables

    \n
  • \n
\n

Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.

" + } + }, + "com.amazonaws.ec2#RouteServerAssociation": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerId", + "smithy.api#documentation": "

The ID of the associated route server.

", + "smithy.api#xmlName": "routeServerId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the associated VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteServerAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the association between a route server and a VPC.

\n

A route server association is the connection established between a route server and a VPC.

" + } + }, + "com.amazonaws.ec2#RouteServerAssociationState": { + "type": "enum", + "members": { + "ASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "ASSOCIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "DISASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + } + } + }, + "com.amazonaws.ec2#RouteServerAssociationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerBfdState": { + "type": "enum", + "members": { + "UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "up" + } + }, + "DOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "down" + } + } + } + }, + "com.amazonaws.ec2#RouteServerBfdStatus": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#RouteServerBfdState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The operational status of the BFD session.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

The current status of Bidirectional Forwarding Detection (BFD) for a BGP session.

" + } + }, + "com.amazonaws.ec2#RouteServerBgpOptions": { + "type": "structure", + "members": { + "PeerAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "PeerAsn", + "smithy.api#documentation": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.

", + "smithy.api#xmlName": "peerAsn" + } + }, + "PeerLivenessDetection": { + "target": "com.amazonaws.ec2#RouteServerPeerLivenessMode", + "traits": { + "aws.protocols#ec2QueryName": "PeerLivenessDetection", + "smithy.api#documentation": "

The liveness detection protocol used for the BGP peer.

\n

The requested liveness detection protocol for the BGP peer.

\n
    \n
  • \n

    \n bgp-keepalive: The standard BGP keep alive mechanism (RFC4271) that is stable but may take longer to fail-over in cases of network impact or router failure.

    \n
  • \n
  • \n

    \n bfd: An additional Bidirectional Forwarding Detection (BFD) protocol (RFC5880) that enables fast failover by using more sensitive liveness detection.

    \n
  • \n
\n

Defaults to bgp-keepalive.

", + "smithy.api#xmlName": "peerLivenessDetection" + } + } + }, + "traits": { + "smithy.api#documentation": "

The BGP configuration options for a route server peer.

" + } + }, + "com.amazonaws.ec2#RouteServerBgpOptionsRequest": { + "type": "structure", + "members": { + "PeerAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.

", + "smithy.api#required": {} + } + }, + "PeerLivenessDetection": { + "target": "com.amazonaws.ec2#RouteServerPeerLivenessMode", + "traits": { + "smithy.api#documentation": "

The requested liveness detection protocol for the BGP peer.

\n
    \n
  • \n

    \n bgp-keepalive: The standard BGP keep alive mechanism (RFC4271) that is stable but may take longer to fail-over in cases of network impact or router failure.

    \n
  • \n
  • \n

    \n bfd: An additional Bidirectional Forwarding Detection (BFD) protocol (RFC5880) that enables fast failover by using more sensitive liveness detection.

    \n
  • \n
\n

Defaults to bgp-keepalive.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The BGP configuration options requested for a route server peer.

" + } + }, + "com.amazonaws.ec2#RouteServerBgpState": { + "type": "enum", + "members": { + "UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "up" + } + }, + "DOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "down" + } + } + } + }, + "com.amazonaws.ec2#RouteServerBgpStatus": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.ec2#RouteServerBgpState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The operational status of the BGP session. The status enables you to monitor session liveness if you lack monitoring on your router/appliance.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

The current status of a BGP session.

" + } + }, + "com.amazonaws.ec2#RouteServerEndpoint": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerId", + "smithy.api#documentation": "

The ID of the route server associated with this endpoint.

", + "smithy.api#xmlName": "routeServerId" + } + }, + "RouteServerEndpointId": { + "target": "com.amazonaws.ec2#RouteServerEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpointId", + "smithy.api#documentation": "

The unique identifier of the route server endpoint.

", + "smithy.api#xmlName": "routeServerEndpointId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC containing the endpoint.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet to place the route server endpoint into.

", + "smithy.api#xmlName": "subnetId" + } + }, + "EniId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "EniId", + "smithy.api#documentation": "

The ID of the Elastic network interface for the endpoint.

", + "smithy.api#xmlName": "eniId" + } + }, + "EniAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EniAddress", + "smithy.api#documentation": "

The IP address of the Elastic network interface for the endpoint.

", + "smithy.api#xmlName": "eniAddress" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteServerEndpointState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the route server endpoint.

", + "smithy.api#xmlName": "state" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

The reason for any failure in endpoint creation or operation.

", + "smithy.api#xmlName": "failureReason" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the route server endpoint.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route server endpoint and its properties.

\n

A route server endpoint is an Amazon Web Services-managed component inside a subnet that facilitates BGP (Border Gateway Protocol) connections between your route server and your BGP peers.

" + } + }, + "com.amazonaws.ec2#RouteServerEndpointId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteServerEndpointIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerEndpointId" + } + }, + "com.amazonaws.ec2#RouteServerEndpointState": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "FAILING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#RouteServerEndpointsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerEndpoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteServerIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerId" + } + }, + "com.amazonaws.ec2#RouteServerMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#RouteServerPeer": { + "type": "structure", + "members": { + "RouteServerPeerId": { + "target": "com.amazonaws.ec2#RouteServerPeerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPeerId", + "smithy.api#documentation": "

The unique identifier of the route server peer.

", + "smithy.api#xmlName": "routeServerPeerId" + } + }, + "RouteServerEndpointId": { + "target": "com.amazonaws.ec2#RouteServerEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpointId", + "smithy.api#documentation": "

The ID of the route server endpoint associated with this peer.

", + "smithy.api#xmlName": "routeServerEndpointId" + } + }, + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerId", + "smithy.api#documentation": "

The ID of the route server associated with this peer.

", + "smithy.api#xmlName": "routeServerId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC containing the route server peer.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet containing the route server peer.

", + "smithy.api#xmlName": "subnetId" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteServerPeerState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the route server peer.

", + "smithy.api#xmlName": "state" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

The reason for any failure in peer creation or operation.

", + "smithy.api#xmlName": "failureReason" + } + }, + "EndpointEniId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "EndpointEniId", + "smithy.api#documentation": "

The ID of the Elastic network interface for the route server endpoint.

", + "smithy.api#xmlName": "endpointEniId" + } + }, + "EndpointEniAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EndpointEniAddress", + "smithy.api#documentation": "

The IP address of the Elastic network interface for the route server endpoint.

", + "smithy.api#xmlName": "endpointEniAddress" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerAddress", + "smithy.api#documentation": "

The IPv4 address of the peer device.

", + "smithy.api#xmlName": "peerAddress" + } + }, + "BgpOptions": { + "target": "com.amazonaws.ec2#RouteServerBgpOptions", + "traits": { + "aws.protocols#ec2QueryName": "BgpOptions", + "smithy.api#documentation": "

The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.

", + "smithy.api#xmlName": "bgpOptions" + } + }, + "BgpStatus": { + "target": "com.amazonaws.ec2#RouteServerBgpStatus", + "traits": { + "aws.protocols#ec2QueryName": "BgpStatus", + "smithy.api#documentation": "

The current status of the BGP session with this peer.

", + "smithy.api#xmlName": "bgpStatus" + } + }, + "BfdStatus": { + "target": "com.amazonaws.ec2#RouteServerBfdStatus", + "traits": { + "aws.protocols#ec2QueryName": "BfdStatus", + "smithy.api#documentation": "

The current status of the BFD session with this peer.

", + "smithy.api#xmlName": "bfdStatus" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the route server peer.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a BGP peer configuration for a route server endpoint.

\n

A route server peer is a session between a route server endpoint and the device deployed in Amazon Web Services (such as a firewall appliance or other network security function running on an EC2 instance). The device must meet these requirements:

\n
    \n
  • \n

    Have an elastic network interface in the VPC

    \n
  • \n
  • \n

    Support BGP (Border Gateway Protocol)

    \n
  • \n
  • \n

    Can initiate BGP sessions

    \n
  • \n
" + } + }, + "com.amazonaws.ec2#RouteServerPeerId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteServerPeerIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerPeerId" + } + }, + "com.amazonaws.ec2#RouteServerPeerLivenessMode": { + "type": "enum", + "members": { + "BFD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bfd" + } + }, + "BGP_KEEPALIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bgp-keepalive" + } + } + } + }, + "com.amazonaws.ec2#RouteServerPeerState": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "FAILING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#RouteServerPeersList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerPeer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerPersistRoutesAction": { + "type": "enum", + "members": { + "ENABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "DISABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + }, + "RESET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reset" + } + } + } + }, + "com.amazonaws.ec2#RouteServerPersistRoutesState": { + "type": "enum", + "members": { + "ENABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "RESETTING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resetting" + } + }, + "DISABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + } + } + }, + "com.amazonaws.ec2#RouteServerPropagation": { + "type": "structure", + "members": { + "RouteServerId": { + "target": "com.amazonaws.ec2#RouteServerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerId", + "smithy.api#documentation": "

The ID of the route server configured for route propagation.

", + "smithy.api#xmlName": "routeServerId" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#documentation": "

The ID of the route table configured for route server propagation.

", + "smithy.api#xmlName": "routeTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#RouteServerPropagationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of route propagation.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the route propagation configuration between a route server and a route table.

\n

When enabled, route server propagation installs the routes in the FIB on the route table you've specified. Route server supports IPv4 and IPv6 route propagation.

" + } + }, + "com.amazonaws.ec2#RouteServerPropagationState": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#RouteServerPropagationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerPropagation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerRoute": { + "type": "structure", + "members": { + "RouteServerEndpointId": { + "target": "com.amazonaws.ec2#RouteServerEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerEndpointId", + "smithy.api#documentation": "

The ID of the route server endpoint that received this route.

", + "smithy.api#xmlName": "routeServerEndpointId" + } + }, + "RouteServerPeerId": { + "target": "com.amazonaws.ec2#RouteServerPeerId", + "traits": { + "aws.protocols#ec2QueryName": "RouteServerPeerId", + "smithy.api#documentation": "

The ID of the route server peer that advertised this route.

", + "smithy.api#xmlName": "routeServerPeerId" + } + }, + "RouteInstallationDetails": { + "target": "com.amazonaws.ec2#RouteServerRouteInstallationDetails", + "traits": { + "aws.protocols#ec2QueryName": "RouteInstallationDetailSet", + "smithy.api#documentation": "

Details about the installation status of this route in route tables.

", + "smithy.api#xmlName": "routeInstallationDetailSet" + } + }, + "RouteStatus": { + "target": "com.amazonaws.ec2#RouteServerRouteStatus", + "traits": { + "aws.protocols#ec2QueryName": "RouteStatus", + "smithy.api#documentation": "

The current status of the route in the routing database. Values are in-rib or in-fib depending on if the routes are in the RIB or the FIB database.

\n

The Routing Information Base (RIB) serves as a database that stores all the routing information and network topology data collected by a router or routing system, such as routes learned from BGP peers. The RIB is constantly updated as new routing information is received or existing routes change. This ensures that the route server always has the most current view of the network topology and can make optimal routing decisions.

\n

The Forwarding Information Base (FIB) serves as a forwarding table for what route server has determined are the best-path routes in the RIB after evaluating all available routing information and policies. The FIB routes are installed on the route tables. The FIB is recomputed whenever there are changes to the RIB.

", + "smithy.api#xmlName": "routeStatus" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The destination CIDR block of the route.

", + "smithy.api#xmlName": "prefix" + } + }, + "AsPaths": { + "target": "com.amazonaws.ec2#AsPath", + "traits": { + "aws.protocols#ec2QueryName": "AsPathSet", + "smithy.api#documentation": "

The AS path attributes of the BGP route.

", + "smithy.api#xmlName": "asPathSet" + } + }, + "Med": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Med", + "smithy.api#documentation": "

The Multi-Exit Discriminator (MED) value of the BGP route.

", + "smithy.api#xmlName": "med" + } + }, + "NextHopIp": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextHopIp", + "smithy.api#documentation": "

The IP address for the next hop.

", + "smithy.api#xmlName": "nextHopIp" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route in the route server's routing database.

" + } + }, + "com.amazonaws.ec2#RouteServerRouteInstallationDetail": { + "type": "structure", + "members": { + "RouteTableId": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#documentation": "

The ID of the route table where the route is being installed.

", + "smithy.api#xmlName": "routeTableId" + } + }, + "RouteInstallationStatus": { + "target": "com.amazonaws.ec2#RouteServerRouteInstallationStatus", + "traits": { + "aws.protocols#ec2QueryName": "RouteInstallationStatus", + "smithy.api#documentation": "

The current installation status of the route in the route table.

", + "smithy.api#xmlName": "routeInstallationStatus" + } + }, + "RouteInstallationStatusReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteInstallationStatusReason", + "smithy.api#documentation": "

The reason for the current installation status of the route.

", + "smithy.api#xmlName": "routeInstallationStatusReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the installation status of a route in a route table.

" + } + }, + "com.amazonaws.ec2#RouteServerRouteInstallationDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerRouteInstallationDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerRouteInstallationStatus": { + "type": "enum", + "members": { + "INSTALLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "installed" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + } + } + }, + "com.amazonaws.ec2#RouteServerRouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServerRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteServerRouteStatus": { + "type": "enum", + "members": { + "IN_RIB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-rib" + } + }, + "IN_FIB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-fib" + } + } + } + }, + "com.amazonaws.ec2#RouteServerState": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#RouteServersList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteServer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "blackhole": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blackhole" + } + }, + "filtered": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "filtered" + } + } + } + }, + "com.amazonaws.ec2#RouteTable": { + "type": "structure", + "members": { + "Associations": { + "target": "com.amazonaws.ec2#RouteTableAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "AssociationSet", + "smithy.api#documentation": "

The associations between the route table and your subnets or gateways.

", + "smithy.api#xmlName": "associationSet" + } + }, + "PropagatingVgws": { + "target": "com.amazonaws.ec2#PropagatingVgwList", + "traits": { + "aws.protocols#ec2QueryName": "PropagatingVgwSet", + "smithy.api#documentation": "

Any virtual private gateway (VGW) propagating routes.

", + "smithy.api#xmlName": "propagatingVgwSet" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#xmlName": "routeTableId" + } + }, + "Routes": { + "target": "com.amazonaws.ec2#RouteList", + "traits": { + "aws.protocols#ec2QueryName": "RouteSet", + "smithy.api#documentation": "

The routes in the route table.

", + "smithy.api#xmlName": "routeSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the route table.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the route table.

", + "smithy.api#xmlName": "ownerId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route table.

" + } + }, + "com.amazonaws.ec2#RouteTableAssociation": { + "type": "structure", + "members": { + "Main": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Main", + "smithy.api#documentation": "

Indicates whether this is the main route table.

", + "smithy.api#xmlName": "main" + } + }, + "RouteTableAssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableAssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "routeTableAssociationId" + } + }, + "RouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableId", + "smithy.api#documentation": "

The ID of the route table.

", + "smithy.api#xmlName": "routeTableId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet. A subnet ID is not returned for an implicit association.

", + "smithy.api#xmlName": "subnetId" + } + }, + "GatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GatewayId", + "smithy.api#documentation": "

The ID of the internet gateway or virtual private gateway.

", + "smithy.api#xmlName": "gatewayId" + } + }, + "PublicIpv4Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicIpv4Pool", + "smithy.api#documentation": "

The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 addresses that you've brought to Amazon Web Services with BYOIP.

", + "smithy.api#xmlName": "publicIpv4Pool" + } + }, + "AssociationState": { + "target": "com.amazonaws.ec2#RouteTableAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "AssociationState", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "associationState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a route table and a subnet or gateway.

" + } + }, + "com.amazonaws.ec2#RouteTableAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteTableAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteTableAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteTableAssociationState": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#RouteTableAssociationStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

The status message, if applicable.

", + "smithy.api#xmlName": "statusMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of an association between a route table and a subnet or gateway.

" + } + }, + "com.amazonaws.ec2#RouteTableAssociationStateCode": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#RouteTableId": { + "type": "string" + }, + "com.amazonaws.ec2#RouteTableIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RouteTableList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteTable", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RuleAction": { + "type": "enum", + "members": { + "allow": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allow" + } + }, + "deny": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deny" + } + } + } + }, + "com.amazonaws.ec2#RuleGroupRuleOptionsPair": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupArn", + "smithy.api#documentation": "

The ARN of the rule group.

", + "smithy.api#xmlName": "ruleGroupArn" + } + }, + "RuleOptions": { + "target": "com.amazonaws.ec2#RuleOptionList", + "traits": { + "aws.protocols#ec2QueryName": "RuleOptionSet", + "smithy.api#documentation": "

The rule options.

", + "smithy.api#xmlName": "ruleOptionSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the rule options for a stateful rule group.

" + } + }, + "com.amazonaws.ec2#RuleGroupRuleOptionsPairList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RuleGroupRuleOptionsPair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RuleGroupTypePair": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupArn", + "smithy.api#documentation": "

The ARN of the rule group.

", + "smithy.api#xmlName": "ruleGroupArn" + } + }, + "RuleGroupType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RuleGroupType", + "smithy.api#documentation": "

The rule group type. The possible values are Domain List and Suricata.

", + "smithy.api#xmlName": "ruleGroupType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the type of a stateful rule group.

" + } + }, + "com.amazonaws.ec2#RuleGroupTypePairList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RuleGroupTypePair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RuleOption": { + "type": "structure", + "members": { + "Keyword": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Keyword", + "smithy.api#documentation": "

The Suricata keyword.

", + "smithy.api#xmlName": "keyword" + } + }, + "Settings": { + "target": "com.amazonaws.ec2#StringList", + "traits": { + "aws.protocols#ec2QueryName": "SettingSet", + "smithy.api#documentation": "

The settings for the keyword.

", + "smithy.api#xmlName": "settingSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes additional settings for a stateful rule.

" + } + }, + "com.amazonaws.ec2#RuleOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RuleOption", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#RunInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RunInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#Reservation" + }, + "traits": { + "smithy.api#documentation": "

Launches the specified number of instances using an AMI for which you have\n permissions.

\n

You can specify a number of options, or leave the default options. The following rules\n apply:

\n
    \n
  • \n

    If you don't specify a subnet ID, we choose a default subnet from\n your default VPC for you. If you don't have a default VPC, you must specify a\n subnet ID in the request.

    \n
  • \n
  • \n

    All instances have a network interface with a primary private IPv4\n address. If you don't specify this address, we choose one from the IPv4 range of\n your subnet.

    \n
  • \n
  • \n

    Not all instance types support IPv6 addresses. For more information, see\n Instance\n types.

    \n
  • \n
  • \n

    If you don't specify a security group ID, we use the default security group\n for the VPC. For more information, see Security\n groups.

    \n
  • \n
  • \n

    If any of the AMIs have a product code attached for which the user has not\n subscribed, the request fails.

    \n
  • \n
\n

You can create a launch template,\n which is a resource that contains the parameters to launch an instance. When you launch\n an instance using RunInstances, you can specify the launch template\n instead of specifying the launch parameters.

\n

To ensure faster instance launches, break up large requests into smaller batches. For\n example, create five separate launch requests for 100 instances each instead of one\n launch request for 500 instances.

\n

\n RunInstances is subject to both request rate limiting and resource rate\n limiting. For more information, see Request throttling.

\n

An instance is ready for you to use when it's in the running state. You\n can check the state of your instance using DescribeInstances. You can\n tag instances and EBS volumes during launch, after launch, or both. For more\n information, see CreateTags and Tagging your Amazon EC2\n resources.

\n

Linux instances have access to the public key of the key pair at boot. You can use\n this key to provide secure access to the instance. Amazon EC2 public images use this\n feature to provide secure access without passwords. For more information, see Key\n pairs.

\n

For troubleshooting, see What to do if\n an instance immediately terminates, and Troubleshooting connecting to your instance.

", + "smithy.api#examples": [ + { + "title": "To launch an instance", + "documentation": "This example launches an instance using the specified AMI, instance type, security group, subnet, block device mapping, and tags.", + "input": { + "BlockDeviceMappings": [ + { + "DeviceName": "/dev/sdh", + "Ebs": { + "VolumeSize": 100 + } + } + ], + "ImageId": "ami-abc12345", + "InstanceType": "t2.micro", + "KeyName": "my-key-pair", + "MaxCount": 1, + "MinCount": 1, + "SecurityGroupIds": [ + "sg-1a2b3c4d" + ], + "SubnetId": "subnet-6e7f829e", + "TagSpecifications": [ + { + "ResourceType": "instance", + "Tags": [ + { + "Key": "Purpose", + "Value": "test" + } + ] + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#RunInstancesMonitoringEnabled": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is\n enabled.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "enabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the monitoring of an instance.

" + } + }, + "com.amazonaws.ec2#RunInstancesRequest": { + "type": "structure", + "members": { + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingRequestList", + "traits": { + "smithy.api#documentation": "

The block device mapping, which defines the EBS volumes and instance store volumes to\n attach to the instance at launch. For more information, see Block device\n mappings in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "BlockDeviceMapping" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#documentation": "

The ID of the AMI. An AMI ID is required to launch an instance and must be specified\n here or in a launch template.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type. For more information, see Amazon EC2 Instance\n Types Guide.

" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 addresses to associate with the primary network\n interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. You\n cannot specify this option and the option to assign specific IPv6 addresses in the same\n request. You can specify this option if you've specified a minimum number of instances\n to launch.

\n

You cannot specify this option and the network interfaces option in the same\n request.

" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#InstanceIpv6AddressList", + "traits": { + "smithy.api#documentation": "

The IPv6 addresses from the range of the subnet to associate with the\n primary network interface. You cannot specify this option and the option to assign a\n number of IPv6 addresses in the same request. You cannot specify this option if you've\n specified a minimum number of instances to launch.

\n

You cannot specify this option and the network interfaces option in the same\n request.

", + "smithy.api#xmlName": "Ipv6Address" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#KernelId", + "traits": { + "smithy.api#documentation": "

The ID of the kernel.

\n \n

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more\n information, see PV-GRUB in the\n Amazon EC2 User Guide.

\n
" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairName", + "traits": { + "smithy.api#documentation": "

The name of the key pair. For more information, see Create a key pair for your EC2 instance.

\n \n

If you do not specify a key pair, you can't connect to the instance unless you\n choose an AMI that is configured to allow users another way to log in.

\n
" + } + }, + "MaxCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The maximum number of instances to launch. If you specify a value that is more\n capacity than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 \n launches the largest possible number of instances above the specified minimum\n count.

\n

Constraints: Between 1 and the quota for the specified instance type for your account for this Region. \n For more information, see Amazon EC2 instance type quotas.

", + "smithy.api#required": {} + } + }, + "MinCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The minimum number of instances to launch. If you specify a value that is more\n capacity than Amazon EC2 can provide in the target Availability Zone, Amazon EC2 does\n not launch any instances.

\n

Constraints: Between 1 and the quota for the specified instance type for your account for this Region.\n For more information, see Amazon EC2 instance type quotas.

", + "smithy.api#required": {} + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#RunInstancesMonitoringEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether detailed monitoring is enabled for the instance.

" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#Placement", + "traits": { + "smithy.api#documentation": "

The placement for the instance.

" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#RamdiskId", + "traits": { + "smithy.api#documentation": "

The ID of the RAM disk to select. Some kernels require additional drivers at launch.\n Check the kernel requirements for information about whether you need to specify a RAM\n disk. To find kernel requirements, go to the Amazon Web Services Resource Center and\n search for the kernel ID.

\n \n

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more\n information, see PV-GRUB in the\n Amazon EC2 User Guide.

\n
" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdStringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#SecurityGroupStringList", + "traits": { + "smithy.api#documentation": "

[Default VPC] The names of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

\n

Default: Amazon EC2 uses the default security group.

", + "smithy.api#xmlName": "SecurityGroup" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet to launch the instance into.

\n

If you specify a network interface, you must specify any subnets as part of the\n network interface instead of using this parameter.

" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#RunInstancesUserData", + "traits": { + "smithy.api#documentation": "

The user data to make available to the instance. User data must be base64-encoded.\n Depending on the tool or SDK that you're using, the base64-encoding might be performed for you.\n For more information, see Run commands at launch using instance user data.

" + } + }, + "ElasticGpuSpecification": { + "target": "com.amazonaws.ec2#ElasticGpuSpecifications", + "traits": { + "smithy.api#deprecated": { + "since": "2024-01-08", + "message": "Specifying Elastic Graphics accelerators is no longer supported on the RunInstances API." + }, + "smithy.api#documentation": "

An elastic GPU to associate with the instance.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
" + } + }, + "ElasticInferenceAccelerators": { + "target": "com.amazonaws.ec2#ElasticInferenceAccelerators", + "traits": { + "smithy.api#deprecated": { + "since": "2024-01-08", + "message": "Specifying Elastic Inference accelerators is no longer supported on the RunInstances API." + }, + "smithy.api#documentation": "

An elastic inference accelerator to associate with the instance.

\n \n

Amazon Elastic Inference is no longer available.

\n
", + "smithy.api#xmlName": "ElasticInferenceAccelerator" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the resources that are created during instance launch.

\n

You can specify tags for the following resources only:

\n
    \n
  • \n

    Instances

    \n
  • \n
  • \n

    Volumes

    \n
  • \n
  • \n

    Spot Instance requests

    \n
  • \n
  • \n

    Network interfaces

    \n
  • \n
\n

To tag a resource after it has been created, see CreateTags.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.ec2#LaunchTemplateSpecification", + "traits": { + "smithy.api#documentation": "

The launch template. Any additional parameters that you specify for the new instance \n overwrite the corresponding parameters included in the launch template.

" + } + }, + "InstanceMarketOptions": { + "target": "com.amazonaws.ec2#InstanceMarketOptionsRequest", + "traits": { + "smithy.api#documentation": "

The market (purchasing) option for the instances.

\n

For RunInstances, persistent Spot Instance requests are\n only supported when InstanceInterruptionBehavior is set\n to either hibernate or stop.

" + } + }, + "CreditSpecification": { + "target": "com.amazonaws.ec2#CreditSpecificationRequest", + "traits": { + "smithy.api#documentation": "

The credit option for CPU usage of the burstable performance instance. Valid values\n are standard and unlimited. To change this attribute after\n launch, use \n ModifyInstanceCreditSpecification. For more information, see Burstable\n performance instances in the Amazon EC2 User Guide.

\n

Default: standard (T2 instances) or unlimited (T3/T3a/T4g\n instances)

\n

For T3 instances with host tenancy, only standard is\n supported.

" + } + }, + "CpuOptions": { + "target": "com.amazonaws.ec2#CpuOptionsRequest", + "traits": { + "smithy.api#documentation": "

The CPU options for the instance. For more information, see Optimize CPU options in the Amazon EC2 User Guide.

" + } + }, + "CapacityReservationSpecification": { + "target": "com.amazonaws.ec2#CapacityReservationSpecification", + "traits": { + "smithy.api#documentation": "

Information about the Capacity Reservation targeting option. If you do not specify this parameter, the\n instance's Capacity Reservation preference defaults to open, which enables\n it to run in any open Capacity Reservation that has matching attributes (instance type,\n platform, Availability Zone, and tenancy).

" + } + }, + "HibernationOptions": { + "target": "com.amazonaws.ec2#HibernationOptionsRequest", + "traits": { + "smithy.api#documentation": "

Indicates whether an instance is enabled for hibernation. This parameter is valid only\n if the instance meets the hibernation\n prerequisites. For more information, see Hibernate your Amazon EC2\n instance in the Amazon EC2 User Guide.

\n

You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same\n instance.

" + } + }, + "LicenseSpecifications": { + "target": "com.amazonaws.ec2#LicenseSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The license configurations.

", + "smithy.api#xmlName": "LicenseSpecification" + } + }, + "MetadataOptions": { + "target": "com.amazonaws.ec2#InstanceMetadataOptionsRequest", + "traits": { + "smithy.api#documentation": "

The metadata options for the instance. For more information, see Configure the Instance Metadata Service options.

" + } + }, + "EnclaveOptions": { + "target": "com.amazonaws.ec2#EnclaveOptionsRequest", + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For\n more information, see Amazon Web Services Nitro\n Enclaves User Guide.

\n

You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same\n instance.

" + } + }, + "PrivateDnsNameOptions": { + "target": "com.amazonaws.ec2#PrivateDnsNameOptionsRequest", + "traits": { + "smithy.api#documentation": "

The options for the instance hostname. \n The default values are inherited from the subnet.\n Applies only if creating a network interface, not attaching an existing one.

" + } + }, + "MaintenanceOptions": { + "target": "com.amazonaws.ec2#InstanceMaintenanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

The maintenance and recovery options for the instance.

" + } + }, + "DisableApiStop": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether an instance is enabled for stop protection. For more information,\n see Enable stop protection for your EC2 instances.

" + } + }, + "EnablePrimaryIpv6": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If you’re launching an instance into a dual-stack or IPv6-only subnet, you can enable\n assigning a primary IPv6 address. A primary IPv6 address is an IPv6 GUA address\n associated with an ENI that you have enabled to use a primary IPv6 address. Use this\n option if an instance relies on its IPv6 address not changing. When you launch the\n instance, Amazon Web Services will automatically assign an IPv6 address associated with\n the ENI attached to your instance to be the primary IPv6 address. Once you enable an\n IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6\n GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6\n address until the instance is terminated or the network interface is detached. If you\n have multiple IPv6 addresses associated with an ENI attached to your instance and you\n enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI\n becomes the primary IPv6 address.

" + } + }, + "NetworkPerformanceOptions": { + "target": "com.amazonaws.ec2#InstanceNetworkPerformanceOptionsRequest", + "traits": { + "smithy.api#documentation": "

Contains settings for the network performance options for the instance.

" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorRequest", + "traits": { + "smithy.api#documentation": "

Reserved for internal use.

" + } + }, + "SecondaryInterfaces": { + "target": "com.amazonaws.ec2#InstanceSecondaryInterfaceSpecificationListRequest", + "traits": { + "smithy.api#documentation": "

The secondary interfaces to associate with the instance.

", + "smithy.api#xmlName": "SecondaryInterface" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "DisableApiTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DisableApiTermination", + "smithy.api#documentation": "

Indicates whether termination protection is enabled for the instance. The default\n is false, which means that you can terminate the instance using\n the Amazon EC2 console, command line tools, or API. You can enable termination protection\n when you launch an instance, while the instance is running, or while the instance\n is stopped.

", + "smithy.api#xmlName": "disableApiTermination" + } + }, + "InstanceInitiatedShutdownBehavior": { + "target": "com.amazonaws.ec2#ShutdownBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInitiatedShutdownBehavior", + "smithy.api#documentation": "

Indicates whether an instance stops or terminates when you initiate shutdown from the\n instance (using the operating system command for system shutdown).

\n

Default: stop\n

", + "smithy.api#xmlName": "instanceInitiatedShutdownBehavior" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The primary IPv4 address. You must specify a value from the IPv4 address\n range of the subnet.

\n

Only one private IP address can be designated as primary. You can't specify this\n option if you've specified the option to designate a private IP address as the primary\n IP address in a network interface specification. You cannot specify this option if\n you're launching more than one instance in the request.

\n

You cannot specify this option and the network interfaces option in the same\n request.

", + "smithy.api#xmlName": "privateIpAddress" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the\n request. If you do not specify a client token, a randomly generated token is used for\n the request to ensure idempotency.

\n

For more information, see Ensuring idempotency in Amazon EC2 API requests.

\n

Constraints: Maximum 64 ASCII characters

", + "smithy.api#idempotencyToken": {}, + "smithy.api#xmlName": "clientToken" + } + }, + "AdditionalInfo": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalInfo", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "additionalInfo" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterface", + "smithy.api#documentation": "

The network interfaces to associate with the instance.

", + "smithy.api#xmlName": "networkInterface" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of an IAM instance\n profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n provide optimal Amazon EBS I/O performance. This optimization isn't available with all\n instance types. Additional usage charges apply when using an EBS-optimized\n instance.

\n

Default: false\n

", + "smithy.api#xmlName": "ebsOptimized" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RunInstancesUserData": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#RunScheduledInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#RunScheduledInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#RunScheduledInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Launches the specified Scheduled Instances.

\n

Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances.

\n

You must launch a Scheduled Instance during its scheduled time period. You can't stop or\n reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a\n Scheduled Instance before the current scheduled time period ends, you can launch it again\n after a few minutes.

" + } + }, + "com.amazonaws.ec2#RunScheduledInstancesRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that ensures the idempotency of the request. \n For more information, see Ensuring Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances.

\n

Default: 1

" + } + }, + "LaunchSpecification": { + "target": "com.amazonaws.ec2#ScheduledInstancesLaunchSpecification", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The launch specification. You must match the instance type, Availability Zone, \n network, and platform of the schedule that you purchased.

", + "smithy.api#required": {} + } + }, + "ScheduledInstanceId": { + "target": "com.amazonaws.ec2#ScheduledInstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Scheduled Instance ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for RunScheduledInstances.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#RunScheduledInstancesResult": { + "type": "structure", + "members": { + "InstanceIdSet": { + "target": "com.amazonaws.ec2#InstanceIdSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceIdSet", + "smithy.api#documentation": "

The IDs of the newly launched instances.

", + "smithy.api#xmlName": "instanceIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the output of RunScheduledInstances.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#S3ObjectTag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The key of the tag.

\n

Constraints: Tag keys are case-sensitive and can be up to 128 Unicode characters in\n length. May not begin with aws:.

" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value of the tag.

\n

Constraints: Tag values are case-sensitive and can be up to 256 Unicode characters in\n length.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tags to apply to the AMI object that will be stored in the Amazon S3 bucket. For more\n information, see Categorizing your storage using\n tags in the Amazon Simple Storage Service User Guide.

" + } + }, + "com.amazonaws.ec2#S3ObjectTagList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#S3ObjectTag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#S3Storage": { + "type": "structure", + "members": { + "AWSAccessKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The access key ID of the owner of the bucket. Before you specify a value for your access\n key ID, review and follow the guidance in Best Practices for Amazon Web Services\n accounts in the Account ManagementReference Guide.

" + } + }, + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Bucket", + "smithy.api#documentation": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a\n new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone\n else, Amazon EC2 returns an error.

", + "smithy.api#xmlName": "bucket" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The beginning of the file name of the AMI.

", + "smithy.api#xmlName": "prefix" + } + }, + "UploadPolicy": { + "target": "com.amazonaws.ec2#SecureBlob", + "traits": { + "aws.protocols#ec2QueryName": "UploadPolicy", + "smithy.api#documentation": "

An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your\n behalf.

", + "smithy.api#xmlName": "uploadPolicy" + } + }, + "UploadPolicySignature": { + "target": "com.amazonaws.ec2#S3StorageUploadPolicySignature", + "traits": { + "aws.protocols#ec2QueryName": "UploadPolicySignature", + "smithy.api#documentation": "

The signature of the JSON document.

", + "smithy.api#xmlName": "uploadPolicySignature" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the storage parameters for Amazon S3 and Amazon S3 buckets for an instance store-backed\n AMI.

" + } + }, + "com.amazonaws.ec2#S3StorageUploadPolicySignature": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#SSEType": { + "type": "enum", + "members": { + "sse_ebs": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sse-ebs" + } + }, + "sse_kms": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sse-kms" + } + }, + "none": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ec2#ScanResultCondition": { + "type": "structure", + "members": { + "MaxDaysSinceLastFindingScan": { + "target": "com.amazonaws.ec2#MaxDaysSinceLastFindingScanValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceLastFindingScan", + "smithy.api#documentation": "

The maximum number of days that have elapsed since Amazon Inspector last scanned the AMI.\n For example, a value of 7 allows AMIs that were scanned within the last 7 days.\n AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceLastFindingScan" + } + }, + "MaximumSeverityLabel": { + "target": "com.amazonaws.ec2#SeverityLabel", + "traits": { + "aws.protocols#ec2QueryName": "MaximumSeverityLabel", + "smithy.api#documentation": "

The maximum severity that an AMI's Amazon Inspector findings can have for the AMI to be\n allowed. Findings count whether or not a fix is available. For example, a value of\n medium allows AMIs whose highest severity is informational,\n low, or medium.

\n

The valid values are the following Amazon Inspector severity levels, which correspond to\n CVSS score ranges:

\n
    \n
  • \n

    \n informational - CVSS score of 0.

    \n
  • \n
  • \n

    \n low - CVSS score of 0.1 to 3.9.

    \n
  • \n
  • \n

    \n medium - CVSS score of 4.0 to 6.9.

    \n
  • \n
  • \n

    \n high - CVSS score of 7.0 to 8.9.

    \n
  • \n
  • \n

    \n critical - CVSS score of 9.0 to 10.0.

    \n
  • \n
\n

For more information, see Software\n package vulnerability severity in the Amazon Inspector User Guide.

\n

A scanned AMI that has no findings meets this limit.

\n

AMIs that Amazon Inspector has not scanned are not allowed when you specify this\n condition.

", + "smithy.api#xmlName": "maximumSeverityLabel" + } + }, + "MaxDaysSinceInformationalFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceInformationalFixAvailable", + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for an\n informational severity finding on the AMI. For example, a value of 7\n does not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no informational severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceInformationalFixAvailable" + } + }, + "MaxDaysSinceLowFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceLowFixAvailable", + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n low severity finding on the AMI. For example, a value of 7 does not\n allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no low severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceLowFixAvailable" + } + }, + "MaxDaysSinceMediumFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceMediumFixAvailable", + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n medium severity finding on the AMI. For example, a value of 7 does\n not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no medium severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceMediumFixAvailable" + } + }, + "MaxDaysSinceHighFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceHighFixAvailable", + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n high severity finding on the AMI. For example, a value of 7 does not\n allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no high severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceHighFixAvailable" + } + }, + "MaxDaysSinceCriticalFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "aws.protocols#ec2QueryName": "MaxDaysSinceCriticalFixAvailable", + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n critical severity finding on the AMI. For example, a value of 7 does\n not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no critical severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

", + "smithy.api#xmlName": "maxDaysSinceCriticalFixAvailable" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Inspector scan-result criteria that an AMI must meet to be allowed. The\n criteria can limit the highest finding severity. They can also limit, for each severity, the\n days since Amazon Inspector reported a fix as available.

\n

The severity limit applies to all findings, whether or not a fix is available. The day\n limits for each severity apply only to findings that have a fix available. A scanned AMI that\n has no fix-available finding of a given severity meets that severity's day limit. AMIs that\n Amazon Inspector has not scanned are not allowed when you specify this condition.

" + } + }, + "com.amazonaws.ec2#ScanResultConditionRequest": { + "type": "structure", + "members": { + "MaxDaysSinceLastFindingScan": { + "target": "com.amazonaws.ec2#MaxDaysSinceLastFindingScanValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days that have elapsed since Amazon Inspector last scanned the AMI.\n For example, a value of 7 allows AMIs that were scanned within the last 7 days.\n AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaximumSeverityLabel": { + "target": "com.amazonaws.ec2#SeverityLabel", + "traits": { + "smithy.api#documentation": "

The maximum severity that an AMI's Amazon Inspector findings can have for the AMI to be\n allowed. Findings count whether or not a fix is available. For example, a value of\n medium allows AMIs whose highest severity is informational,\n low, or medium.

\n

The valid values are the following Amazon Inspector severity levels, which correspond to\n CVSS score ranges:

\n
    \n
  • \n

    \n informational - CVSS score of 0.

    \n
  • \n
  • \n

    \n low - CVSS score of 0.1 to 3.9.

    \n
  • \n
  • \n

    \n medium - CVSS score of 4.0 to 6.9.

    \n
  • \n
  • \n

    \n high - CVSS score of 7.0 to 8.9.

    \n
  • \n
  • \n

    \n critical - CVSS score of 9.0 to 10.0.

    \n
  • \n
\n

For more information, see Software\n package vulnerability severity in the Amazon Inspector User Guide.

\n

A scanned AMI that has no findings meets this limit.

\n

AMIs that Amazon Inspector has not scanned are not allowed when you specify this\n condition.

" + } + }, + "MaxDaysSinceInformationalFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for an\n informational severity finding on the AMI. For example, a value of 7\n does not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no informational severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaxDaysSinceLowFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n low severity finding on the AMI. For example, a value of 7 does not\n allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no low severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaxDaysSinceMediumFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n medium severity finding on the AMI. For example, a value of 7 does\n not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no medium severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaxDaysSinceHighFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n high severity finding on the AMI. For example, a value of 7 does not\n allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no high severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + }, + "MaxDaysSinceCriticalFixAvailable": { + "target": "com.amazonaws.ec2#MaxDaysSinceFixAvailableValue", + "traits": { + "smithy.api#documentation": "

The maximum number of days since Amazon Inspector reported a fix as available for a\n critical severity finding on the AMI. For example, a value of 7 does\n not allow an AMI if Amazon Inspector reported such a fix more than 7 days ago.

\n

A scanned AMI that has no critical severity finding with a fix available meets\n this limit. AMIs that Amazon Inspector has not scanned are not allowed.

\n

Constraints: Minimum value of 0. Maximum value of 2147483647.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Inspector scan-result criteria that an AMI must meet to be allowed. The\n criteria can limit the highest finding severity. They can also limit, for each severity, the\n days since Amazon Inspector reported a fix as available.

\n

The severity limit applies to all findings, whether or not a fix is available. The day\n limits for each severity apply only to findings that have a fix available. A scanned AMI that\n has no fix-available finding of a given severity meets that severity's day limit. AMIs that\n Amazon Inspector has not scanned are not allowed when you specify this condition.

" + } + }, + "com.amazonaws.ec2#ScanResults": { + "type": "structure", + "members": { + "HighestFindingSeverityLabel": { + "target": "com.amazonaws.ec2#SeverityLabel", + "traits": { + "aws.protocols#ec2QueryName": "HighestFindingSeverityLabel", + "smithy.api#documentation": "

The highest severity among the AMI's Amazon Inspector findings, whether or not a fix is\n available.

\n

The valid values are the following Amazon Inspector severity levels, which correspond to\n CVSS score ranges:

\n
    \n
  • \n

    \n informational - CVSS score of 0.

    \n
  • \n
  • \n

    \n low - CVSS score of 0.1 to 3.9.

    \n
  • \n
  • \n

    \n medium - CVSS score of 4.0 to 6.9.

    \n
  • \n
  • \n

    \n high - CVSS score of 7.0 to 8.9.

    \n
  • \n
  • \n

    \n critical - CVSS score of 9.0 to 10.0.

    \n
  • \n
\n

For more information, see Software\n package vulnerability severity in the Amazon Inspector User Guide.

\n

This value is present only if the AMI has at least one finding.

", + "smithy.api#xmlName": "highestFindingSeverityLabel" + } + }, + "FindingScanDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "FindingScanDate", + "smithy.api#documentation": "

The date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), of the most recent Amazon Inspector scan of the AMI.

", + "smithy.api#xmlName": "findingScanDate" + } + }, + "InformationalFixAvailableSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "InformationalFixAvailableSince", + "smithy.api#documentation": "

The earliest date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as available for an\n informational severity finding on the AMI. This value is present only if the AMI\n has at least one informational severity finding with a fix available. Amazon\n Inspector recomputes this value on each scan.

", + "smithy.api#xmlName": "informationalFixAvailableSince" + } + }, + "LowFixAvailableSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LowFixAvailableSince", + "smithy.api#documentation": "

The earliest date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as available for a\n low severity finding on the AMI. This value is present only if the AMI has at\n least one low severity finding with a fix available. Amazon Inspector recomputes\n this value on each scan.

", + "smithy.api#xmlName": "lowFixAvailableSince" + } + }, + "MediumFixAvailableSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "MediumFixAvailableSince", + "smithy.api#documentation": "

The earliest date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as available for a\n medium severity finding on the AMI. This value is present only if the AMI has at\n least one medium severity finding with a fix available. Amazon Inspector\n recomputes this value on each scan.

", + "smithy.api#xmlName": "mediumFixAvailableSince" + } + }, + "HighFixAvailableSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "HighFixAvailableSince", + "smithy.api#documentation": "

The earliest date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as available for a\n high severity finding on the AMI. This value is present only if the AMI has at\n least one high severity finding with a fix available. Amazon Inspector recomputes\n this value on each scan.

", + "smithy.api#xmlName": "highFixAvailableSince" + } + }, + "CriticalFixAvailableSince": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CriticalFixAvailableSince", + "smithy.api#documentation": "

The earliest date and time, in the ISO 8601 format in the UTC time zone\n (YYYY-MM-DDThh:mm:ss.sssZ), at which Amazon Inspector reported a fix as available for a\n critical severity finding on the AMI. This value is present only if the AMI has\n at least one critical severity finding with a fix available. Amazon Inspector\n recomputes this value on each scan.

", + "smithy.api#xmlName": "criticalFixAvailableSince" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Inspector scan results for an AMI. This information is present only for AMIs\n that Amazon Inspector has scanned.

\n

When you share an AMI with other accounts, organizations, or organizational units\n (OUs), or make it public, its scan results are available to the accounts that can use the\n AMI.

\n

The fix-available dates are specific to the AMI. Each date reflects when a fix became\n available for a finding on that AMI, not when the vendor released the fix. As a result, a date\n can be later than the vendor's release date, and AMIs with the same vulnerability can have\n different dates.

" + } + }, + "com.amazonaws.ec2#Schedule": { + "type": "enum", + "members": { + "HOURLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hourly" + } + } + } + }, + "com.amazonaws.ec2#ScheduledInstance": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The date when the Scheduled Instance was purchased.

", + "smithy.api#xmlName": "createDate" + } + }, + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly price for a single instance.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances.

", + "smithy.api#xmlName": "instanceCount" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "NetworkPlatform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPlatform", + "smithy.api#documentation": "

The network platform.

", + "smithy.api#xmlName": "networkPlatform" + } + }, + "NextSlotStartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "NextSlotStartTime", + "smithy.api#documentation": "

The time for the next schedule to start.

", + "smithy.api#xmlName": "nextSlotStartTime" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The platform (Linux/UNIX or Windows).

", + "smithy.api#xmlName": "platform" + } + }, + "PreviousSlotEndTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "PreviousSlotEndTime", + "smithy.api#documentation": "

The time that the previous schedule ended or will end.

", + "smithy.api#xmlName": "previousSlotEndTime" + } + }, + "Recurrence": { + "target": "com.amazonaws.ec2#ScheduledInstanceRecurrence", + "traits": { + "aws.protocols#ec2QueryName": "Recurrence", + "smithy.api#documentation": "

The schedule recurrence.

", + "smithy.api#xmlName": "recurrence" + } + }, + "ScheduledInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ScheduledInstanceId", + "smithy.api#documentation": "

The Scheduled Instance ID.

", + "smithy.api#xmlName": "scheduledInstanceId" + } + }, + "SlotDurationInHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SlotDurationInHours", + "smithy.api#documentation": "

The number of hours in the schedule.

", + "smithy.api#xmlName": "slotDurationInHours" + } + }, + "TermEndDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "TermEndDate", + "smithy.api#documentation": "

The end date for the Scheduled Instance.

", + "smithy.api#xmlName": "termEndDate" + } + }, + "TermStartDate": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "TermStartDate", + "smithy.api#documentation": "

The start date for the Scheduled Instance.

", + "smithy.api#xmlName": "termStartDate" + } + }, + "TotalScheduledInstanceHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalScheduledInstanceHours", + "smithy.api#documentation": "

The total number of hours for a single instance for the entire term.

", + "smithy.api#xmlName": "totalScheduledInstanceHours" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstanceAvailability": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailableInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableInstanceCount", + "smithy.api#documentation": "

The number of available instances.

", + "smithy.api#xmlName": "availableInstanceCount" + } + }, + "FirstSlotStartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "FirstSlotStartTime", + "smithy.api#documentation": "

The time period for the first schedule to start.

", + "smithy.api#xmlName": "firstSlotStartTime" + } + }, + "HourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "HourlyPrice", + "smithy.api#documentation": "

The hourly price for a single instance.

", + "smithy.api#xmlName": "hourlyPrice" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type. You can specify one of the C3, C4, M4, or R3 instance types.

", + "smithy.api#xmlName": "instanceType" + } + }, + "MaxTermDurationInDays": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MaxTermDurationInDays", + "smithy.api#documentation": "

The maximum term. The only possible value is 365 days.

", + "smithy.api#xmlName": "maxTermDurationInDays" + } + }, + "MinTermDurationInDays": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MinTermDurationInDays", + "smithy.api#documentation": "

The minimum term. The only possible value is 365 days.

", + "smithy.api#xmlName": "minTermDurationInDays" + } + }, + "NetworkPlatform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkPlatform", + "smithy.api#documentation": "

The network platform.

", + "smithy.api#xmlName": "networkPlatform" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

The platform (Linux/UNIX or Windows).

", + "smithy.api#xmlName": "platform" + } + }, + "PurchaseToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PurchaseToken", + "smithy.api#documentation": "

The purchase token. This token expires in two hours.

", + "smithy.api#xmlName": "purchaseToken" + } + }, + "Recurrence": { + "target": "com.amazonaws.ec2#ScheduledInstanceRecurrence", + "traits": { + "aws.protocols#ec2QueryName": "Recurrence", + "smithy.api#documentation": "

The schedule recurrence.

", + "smithy.api#xmlName": "recurrence" + } + }, + "SlotDurationInHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SlotDurationInHours", + "smithy.api#documentation": "

The number of hours in the schedule.

", + "smithy.api#xmlName": "slotDurationInHours" + } + }, + "TotalScheduledInstanceHours": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalScheduledInstanceHours", + "smithy.api#documentation": "

The total number of hours for a single instance for the entire term.

", + "smithy.api#xmlName": "totalScheduledInstanceHours" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a schedule that is available for your Scheduled Instances.

" + } + }, + "com.amazonaws.ec2#ScheduledInstanceAvailabilitySet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstanceAvailability", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ScheduledInstanceId": { + "type": "string" + }, + "com.amazonaws.ec2#ScheduledInstanceIdRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstanceId", + "traits": { + "smithy.api#xmlName": "ScheduledInstanceId" + } + } + }, + "com.amazonaws.ec2#ScheduledInstanceRecurrence": { + "type": "structure", + "members": { + "Frequency": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Frequency", + "smithy.api#documentation": "

The frequency (Daily, Weekly, or Monthly).

", + "smithy.api#xmlName": "frequency" + } + }, + "Interval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Interval", + "smithy.api#documentation": "

The interval quantity. The interval unit depends on the value of frequency. For example, every 2\n weeks or every 2 months.

", + "smithy.api#xmlName": "interval" + } + }, + "OccurrenceDaySet": { + "target": "com.amazonaws.ec2#OccurrenceDaySet", + "traits": { + "aws.protocols#ec2QueryName": "OccurrenceDaySet", + "smithy.api#documentation": "

The days. For a monthly schedule, this is one or more days of the month (1-31). For a weekly schedule, this is one or more days of the week (1-7, where 1 is Sunday).

", + "smithy.api#xmlName": "occurrenceDaySet" + } + }, + "OccurrenceRelativeToEnd": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OccurrenceRelativeToEnd", + "smithy.api#documentation": "

Indicates whether the occurrence is relative to the end of the specified week or month.

", + "smithy.api#xmlName": "occurrenceRelativeToEnd" + } + }, + "OccurrenceUnit": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OccurrenceUnit", + "smithy.api#documentation": "

The unit for occurrenceDaySet (DayOfWeek or DayOfMonth).

", + "smithy.api#xmlName": "occurrenceUnit" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the recurring schedule for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstanceRecurrenceRequest": { + "type": "structure", + "members": { + "Frequency": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The frequency (Daily, Weekly, or Monthly).

" + } + }, + "Interval": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The interval quantity. The interval unit depends on the value of Frequency. For example, every 2 \n weeks or every 2 months.

" + } + }, + "OccurrenceDays": { + "target": "com.amazonaws.ec2#OccurrenceDayRequestSet", + "traits": { + "smithy.api#documentation": "

The days. For a monthly schedule, this is one or more days of the month (1-31). For a weekly schedule, this is one or more days of the week (1-7, where 1 is Sunday). You can't specify this value with a daily schedule. If the occurrence is relative to the end of the month, you can specify only a single day.

", + "smithy.api#xmlName": "OccurrenceDay" + } + }, + "OccurrenceRelativeToEnd": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.

" + } + }, + "OccurrenceUnit": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The unit for OccurrenceDays (DayOfWeek or DayOfMonth).\n This value is required for a monthly schedule.\n You can't specify DayOfWeek with a weekly schedule.\n You can't specify this value with a daily schedule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the recurring schedule for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstanceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ScheduledInstancesBlockDeviceMapping": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The device name (for example, /dev/sdh or xvdh).

" + } + }, + "Ebs": { + "target": "com.amazonaws.ec2#ScheduledInstancesEbs", + "traits": { + "smithy.api#documentation": "

Parameters used to set up EBS volumes automatically when the instance is launched.

" + } + }, + "NoDevice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

To omit the device from the block device mapping, specify an empty string.

" + } + }, + "VirtualName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The virtual device name (ephemeralN). Instance store volumes are numbered\n starting from 0. An instance type with two available instance store volumes can specify mappings\n for ephemeral0 and ephemeral1. The number of available instance store\n volumes depends on the instance type. After you connect to the instance, you must mount the\n volume.

\n

Constraints: For M3 instances, you must specify instance store volumes in the block device \n mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes \n specified in the block device mapping for the AMI.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a block device mapping for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesBlockDeviceMappingSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstancesBlockDeviceMapping", + "traits": { + "smithy.api#xmlName": "BlockDeviceMapping" + } + } + }, + "com.amazonaws.ec2#ScheduledInstancesEbs": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume is deleted on instance termination.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that \n support them.

" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) to provision for a gp3, io1, or io2 \n \t volume.

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#documentation": "

The ID of the snapshot.

" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The size of the volume, in GiB.

\n

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default \n is the snapshot size.

" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The volume type.

\n

Default: gp2\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EBS volume for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesIamInstanceProfile": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN).

" + } + }, + "Name": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IAM instance profile for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesIpv6Address": { + "type": "structure", + "members": { + "Ipv6Address": { + "target": "com.amazonaws.ec2#Ipv6Address", + "traits": { + "smithy.api#documentation": "

The IPv6 address.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 address.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesIpv6AddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstancesIpv6Address", + "traits": { + "smithy.api#xmlName": "Ipv6Address" + } + } + }, + "com.amazonaws.ec2#ScheduledInstancesLaunchSpecification": { + "type": "structure", + "members": { + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#ScheduledInstancesBlockDeviceMappingSet", + "traits": { + "smithy.api#documentation": "

The block device mapping entries.

", + "smithy.api#xmlName": "BlockDeviceMapping" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

\n

Default: false\n

" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#ScheduledInstancesIamInstanceProfile", + "traits": { + "smithy.api#documentation": "

The IAM instance profile.

" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon Machine Image (AMI).

", + "smithy.api#required": {} + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The instance type.

" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#KernelId", + "traits": { + "smithy.api#documentation": "

The ID of the kernel.

" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairName", + "traits": { + "smithy.api#documentation": "

The name of the key pair.

" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#ScheduledInstancesMonitoring", + "traits": { + "smithy.api#documentation": "

Enable or disable monitoring for the instances.

" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#ScheduledInstancesNetworkInterfaceSet", + "traits": { + "smithy.api#documentation": "

The network interfaces.

", + "smithy.api#xmlName": "NetworkInterface" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#ScheduledInstancesPlacement", + "traits": { + "smithy.api#documentation": "

The placement information.

" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#RamdiskId", + "traits": { + "smithy.api#documentation": "

The ID of the RAM disk.

" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#ScheduledInstancesSecurityGroupIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

", + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet in which to launch the instances.

" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The base64-encoded MIME user data.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch specification for a Scheduled Instance.

\n

If you are launching the Scheduled Instance in EC2-VPC, you must specify the ID of the subnet.\n You can specify the subnet using either SubnetId or NetworkInterface.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ScheduledInstancesMonitoring": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether monitoring is enabled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether monitoring is enabled for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesNetworkInterface": { + "type": "structure", + "members": { + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to instances launched in a VPC. The\n public IPv4 address can only be assigned to a network interface for eth0, and can only be\n assigned to a new network interface, not an existing one. You cannot specify more than one\n network interface in the request. If launching into a default subnet, the default value is\n true.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to delete the interface when the instance is terminated.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description.

" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The index of the device for the network interface attachment.

" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#ScheduledInstancesSecurityGroupIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups.

", + "smithy.api#xmlName": "Group" + } + }, + "Ipv6AddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.

" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#ScheduledInstancesIpv6AddressList", + "traits": { + "smithy.api#documentation": "

The specific IPv6 addresses from the subnet range.

", + "smithy.api#xmlName": "Ipv6Address" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#documentation": "

The ID of the network interface.

" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 address of the network interface within the subnet.

" + } + }, + "PrivateIpAddressConfigs": { + "target": "com.amazonaws.ec2#PrivateIpAddressConfigSet", + "traits": { + "smithy.api#documentation": "

The private IPv4 addresses.

", + "smithy.api#xmlName": "PrivateIpAddressConfig" + } + }, + "SecondaryPrivateIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of secondary private IPv4 addresses.

" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a network interface for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesNetworkInterfaceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ScheduledInstancesNetworkInterface", + "traits": { + "smithy.api#xmlName": "NetworkInterface" + } + } + }, + "com.amazonaws.ec2#ScheduledInstancesPlacement": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "smithy.api#documentation": "

The name of the placement group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the placement for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesPrivateIpAddressConfig": { + "type": "structure", + "members": { + "Primary": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.

" + } + }, + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 address.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address for a Scheduled Instance.

" + } + }, + "com.amazonaws.ec2#ScheduledInstancesSecurityGroupIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "SecurityGroupId" + } + } + }, + "com.amazonaws.ec2#SearchLocalGatewayRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#SearchLocalGatewayRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#SearchLocalGatewayRoutesResult" + }, + "traits": { + "smithy.api#documentation": "

Searches for routes in the specified local gateway route table.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Routes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#SearchLocalGatewayRoutesRequest": { + "type": "structure", + "members": { + "LocalGatewayRouteTableId": { + "target": "com.amazonaws.ec2#LocalGatewayRoutetableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the local gateway route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

\n
    \n
  • \n

    \n prefix-list-id - The ID of the prefix list.

    \n
  • \n
  • \n

    \n route-search.exact-match - The exact match of the specified filter.

    \n
  • \n
  • \n

    \n route-search.longest-prefix-match - The longest prefix that matches the route.

    \n
  • \n
  • \n

    \n route-search.subnet-of-match - The routes with a subnet that match the specified CIDR filter.

    \n
  • \n
  • \n

    \n route-search.supernet-of-match - The routes with a CIDR that encompass the CIDR filter. \n For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match \n as 10.0.1.0/30, then the result returns 10.0.1.0/29.

    \n
  • \n
  • \n

    \n state - The state of the route.

    \n
  • \n
  • \n

    \n type - The route type.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#MaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#SearchLocalGatewayRoutesResult": { + "type": "structure", + "members": { + "Routes": { + "target": "com.amazonaws.ec2#LocalGatewayRouteList", + "traits": { + "aws.protocols#ec2QueryName": "RouteSet", + "smithy.api#documentation": "

Information about the routes.

", + "smithy.api#xmlName": "routeSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#SearchTransitGatewayMulticastGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsResult" + }, + "traits": { + "smithy.api#documentation": "

Searches one or more transit gateway multicast groups and returns the group membership information.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MulticastGroups", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsRequest": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n group-ip-address - The IP address of the transit gateway multicast group.

    \n
  • \n
  • \n

    \n is-group-member - The resource is a group member. Valid values are true | false.

    \n
  • \n
  • \n

    \n is-group-source - The resource is a group source. Valid values are true | false.

    \n
  • \n
  • \n

    \n member-type - The member type. Valid values are igmp | static.

    \n
  • \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The type of resource. Valid values are vpc | vpn | direct-connect-gateway | tgw-peering.

    \n
  • \n
  • \n

    \n source-type - The source type. Valid values are igmp | static.

    \n
  • \n
  • \n

    \n subnet-id - The ID of the subnet.

    \n
  • \n
  • \n

    \n transit-gateway-attachment-id - The id of the transit gateway attachment.

    \n
  • \n
", + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#SearchTransitGatewayMulticastGroupsResult": { + "type": "structure", + "members": { + "MulticastGroups": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastGroupList", + "traits": { + "aws.protocols#ec2QueryName": "MulticastGroups", + "smithy.api#documentation": "

Information about the transit gateway multicast group.

", + "smithy.api#xmlName": "multicastGroups" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#SearchTransitGatewayRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#SearchTransitGatewayRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#SearchTransitGatewayRoutesResult" + }, + "traits": { + "smithy.api#documentation": "

Searches for routes in the specified transit gateway route table.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Routes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#SearchTransitGatewayRoutesRequest": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n attachment.transit-gateway-attachment-id- The id of the transit gateway attachment.

    \n
  • \n
  • \n

    \n attachment.resource-id - The resource id of the transit gateway attachment.

    \n
  • \n
  • \n

    \n attachment.resource-type - The attachment resource type. Valid values\n are vpc | vpn | direct-connect-gateway |\n peering | connect.

    \n
  • \n
  • \n

    \n prefix-list-id - The ID of the prefix list.

    \n
  • \n
  • \n

    \n route-search.exact-match - The exact match of the specified filter.

    \n
  • \n
  • \n

    \n route-search.longest-prefix-match - The longest prefix that matches the route.

    \n
  • \n
  • \n

    \n route-search.subnet-of-match - The routes with a subnet that match the specified CIDR filter.

    \n
  • \n
  • \n

    \n route-search.supernet-of-match - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29.

    \n
  • \n
  • \n

    \n state - The state of the route (active | blackhole).

    \n
  • \n
  • \n

    \n type - The type of route (propagated |\n static).

    \n
  • \n
", + "smithy.api#required": {}, + "smithy.api#xmlName": "Filter" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#TransitGatewayMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of routes to return. If a value is not provided, the default is\n 1000.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token for the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#SearchTransitGatewayRoutesResult": { + "type": "structure", + "members": { + "Routes": { + "target": "com.amazonaws.ec2#TransitGatewayRouteList", + "traits": { + "aws.protocols#ec2QueryName": "RouteSet", + "smithy.api#documentation": "

Information about the routes.

", + "smithy.api#xmlName": "routeSet" + } + }, + "AdditionalRoutesAvailable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalRoutesAvailable", + "smithy.api#documentation": "

Indicates whether there are additional routes available.

", + "smithy.api#xmlName": "additionalRoutesAvailable" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#SecondaryInterface": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the secondary interface.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the secondary interface.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Attachment": { + "target": "com.amazonaws.ec2#SecondaryInterfaceAttachment", + "traits": { + "aws.protocols#ec2QueryName": "Attachment", + "smithy.api#documentation": "

The attachment information for the secondary interface.

", + "smithy.api#xmlName": "attachment" + } + }, + "MacAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MacAddress", + "smithy.api#documentation": "

The MAC address of the secondary interface.

", + "smithy.api#xmlName": "macAddress" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the secondary interface.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PrivateIpv4Addresses": { + "target": "com.amazonaws.ec2#SecondaryInterfaceIpv4AddressList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpv4AddressSet", + "smithy.api#documentation": "

The private IPv4 addresses associated with the secondary interface.

", + "smithy.api#xmlName": "privateIpv4AddressSet" + } + }, + "SecondaryInterfaceId": { + "target": "com.amazonaws.ec2#SecondaryInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceId", + "smithy.api#documentation": "

The ID of the secondary interface.

", + "smithy.api#xmlName": "secondaryInterfaceId" + } + }, + "SecondaryInterfaceArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secondary interface.

", + "smithy.api#xmlName": "secondaryInterfaceArn" + } + }, + "SecondaryInterfaceType": { + "target": "com.amazonaws.ec2#SecondaryInterfaceType", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryInterfaceType", + "smithy.api#documentation": "

The type of secondary interface.

", + "smithy.api#xmlName": "secondaryInterfaceType" + } + }, + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetId", + "smithy.api#documentation": "

The ID of the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnetId" + } + }, + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkId", + "smithy.api#documentation": "

The ID of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkId" + } + }, + "SecondaryNetworkType": { + "target": "com.amazonaws.ec2#SecondaryNetworkType", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkType", + "smithy.api#documentation": "

The type of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkType" + } + }, + "SourceDestCheck": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SourceDestCheck", + "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", + "smithy.api#xmlName": "sourceDestCheck" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SecondaryInterfaceStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the secondary interface.

", + "smithy.api#xmlName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the secondary interface.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary interface.

" + } + }, + "com.amazonaws.ec2#SecondaryInterfaceAttachment": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "AttachTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The timestamp when the attachment was created.

", + "smithy.api#xmlName": "attachTime" + } + }, + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the secondary interface is deleted when the instance is terminated.

\n

The only supported value for this field is true.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "DeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DeviceIndex", + "smithy.api#documentation": "

The device index of the secondary interface.

", + "smithy.api#xmlName": "deviceIndex" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance to which the secondary interface is attached.

", + "smithy.api#xmlName": "instanceId" + } + }, + "InstanceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the instance.

", + "smithy.api#xmlName": "instanceOwnerId" + } + }, + "NetworkCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "NetworkCardIndex", + "smithy.api#documentation": "

The index of the network card.

", + "smithy.api#xmlName": "networkCardIndex" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the attachment of a secondary interface to an instance.

" + } + }, + "com.amazonaws.ec2#SecondaryInterfaceId": { + "type": "string" + }, + "com.amazonaws.ec2#SecondaryInterfaceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryInterfaceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryInterfaceIpv4Address": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address for a secondary interface.

" + } + }, + "com.amazonaws.ec2#SecondaryInterfaceIpv4AddressList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryInterfaceIpv4Address", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryInterfaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecification": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The private IPv4 address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address specification for a secondary interface.

" + } + }, + "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationRequest", + "traits": { + "smithy.api#xmlName": "SecondaryInterfacePrivateIpAddressSpecification" + } + } + }, + "com.amazonaws.ec2#SecondaryInterfacePrivateIpAddressSpecificationRequest": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The private IPv4 address.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a private IPv4 address specification for a secondary interface request.

" + } + }, + "com.amazonaws.ec2#SecondaryInterfaceStatus": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "in_use": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-use" + } + } + } + }, + "com.amazonaws.ec2#SecondaryInterfaceType": { + "type": "enum", + "members": { + "SECONDARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "secondary" + } + } + } + }, + "com.amazonaws.ec2#SecondaryNetwork": { + "type": "structure", + "members": { + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkId", + "smithy.api#documentation": "

The ID of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkId" + } + }, + "SecondaryNetworkArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the secondary network.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Type": { + "target": "com.amazonaws.ec2#SecondaryNetworkType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of the secondary network.

", + "smithy.api#xmlName": "type" + } + }, + "State": { + "target": "com.amazonaws.ec2#SecondaryNetworkState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the secondary network.

", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the current state of the secondary network.

", + "smithy.api#xmlName": "stateReason" + } + }, + "Ipv4CidrBlockAssociations": { + "target": "com.amazonaws.ec2#SecondaryNetworkIpv4CidrBlockAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4CidrBlockAssociationSet", + "smithy.api#documentation": "

Information about the IPv4 CIDR blocks associated with the secondary network.

", + "smithy.api#xmlName": "ipv4CidrBlockAssociationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the secondary network.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary network.

" + } + }, + "com.amazonaws.ec2#SecondaryNetworkCidrAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#SecondaryNetworkCidrBlockAssociationState": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "association_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "association-failed" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "disassociation_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociation-failed" + } + } + } + }, + "com.amazonaws.ec2#SecondaryNetworkId": { + "type": "string" + }, + "com.amazonaws.ec2#SecondaryNetworkIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryNetworkIpv4CidrBlockAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#SecondaryNetworkCidrAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The association ID for the IPv4 CIDR block.

", + "smithy.api#xmlName": "associationId" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "State": { + "target": "com.amazonaws.ec2#SecondaryNetworkCidrBlockAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the CIDR block association.

", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the current state of the CIDR block association.

", + "smithy.api#xmlName": "stateReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 CIDR block associated with a secondary network.

" + } + }, + "com.amazonaws.ec2#SecondaryNetworkIpv4CidrBlockAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryNetworkIpv4CidrBlockAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryNetworkList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondaryNetwork", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondaryNetworkState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#SecondaryNetworkSupportedFlag": { + "type": "boolean" + }, + "com.amazonaws.ec2#SecondaryNetworkType": { + "type": "enum", + "members": { + "rdma": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rdma" + } + } + } + }, + "com.amazonaws.ec2#SecondarySubnet": { + "type": "structure", + "members": { + "SecondarySubnetId": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetId", + "smithy.api#documentation": "

The ID of the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnetId" + } + }, + "SecondarySubnetArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecondarySubnetArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secondary subnet.

", + "smithy.api#xmlName": "secondarySubnetArn" + } + }, + "SecondaryNetworkId": { + "target": "com.amazonaws.ec2#SecondaryNetworkId", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkId", + "smithy.api#documentation": "

The ID of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkId" + } + }, + "SecondaryNetworkType": { + "target": "com.amazonaws.ec2#SecondaryNetworkType", + "traits": { + "aws.protocols#ec2QueryName": "SecondaryNetworkType", + "smithy.api#documentation": "

The type of the secondary network.

", + "smithy.api#xmlName": "secondaryNetworkType" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the secondary subnet.

", + "smithy.api#xmlName": "ownerId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#AvailabilityZoneId", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone of the secondary subnet.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#AvailabilityZoneName", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the secondary subnet.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "Ipv4CidrBlockAssociations": { + "target": "com.amazonaws.ec2#SecondarySubnetIpv4CidrBlockAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4CidrBlockAssociationSet", + "smithy.api#documentation": "

Information about the IPv4 CIDR blocks associated with the secondary subnet.

", + "smithy.api#xmlName": "ipv4CidrBlockAssociationSet" + } + }, + "State": { + "target": "com.amazonaws.ec2#SecondarySubnetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the secondary subnet.

", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the current state of the secondary subnet.

", + "smithy.api#xmlName": "stateReason" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the secondary subnet.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a secondary subnet.

" + } + }, + "com.amazonaws.ec2#SecondarySubnetCidrAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#SecondarySubnetCidrBlockAssociationState": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "association_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "association-failed" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "disassociation_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociation-failed" + } + } + } + }, + "com.amazonaws.ec2#SecondarySubnetId": { + "type": "string" + }, + "com.amazonaws.ec2#SecondarySubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondarySubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondarySubnetIpv4CidrBlockAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#SecondarySubnetCidrAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The association ID for the IPv4 CIDR block.

", + "smithy.api#xmlName": "associationId" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "State": { + "target": "com.amazonaws.ec2#SecondarySubnetCidrBlockAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the CIDR block association.

", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The reason for the current state of the CIDR block association.

", + "smithy.api#xmlName": "stateReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 CIDR block associated with a secondary subnet.

" + } + }, + "com.amazonaws.ec2#SecondarySubnetIpv4CidrBlockAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondarySubnetIpv4CidrBlockAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondarySubnetList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecondarySubnet", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecondarySubnetState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#SecretArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(?=.{20,2048}$)arn:aws[a-z-]*:secretsmanager:[a-z0-9-]+:\\d{12}:secret:[a-zA-Z0-9/_+=.@-]+$" + } + }, + "com.amazonaws.ec2#SecureBlob": { + "type": "blob", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#SecureBlobAttributeValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ec2#SecureBlob", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The attribute value.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a value for a resource attribute that is a Base64-encoded binary data object.

" + } + }, + "com.amazonaws.ec2#SecurityGroup": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "IpPermissionsEgress": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "IpPermissionsEgress", + "smithy.api#documentation": "

The outbound rules associated with the security group.

", + "smithy.api#xmlName": "ipPermissionsEgress" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the security group.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC for the security group.

", + "smithy.api#xmlName": "vpcId" + } + }, + "SecurityGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupArn", + "smithy.api#documentation": "

The ARN of the security group.

", + "smithy.api#xmlName": "securityGroupArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the security group.

", + "smithy.api#xmlName": "ownerId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the security group.

", + "smithy.api#xmlName": "groupName" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupDescription", + "smithy.api#documentation": "

A description of the security group.

", + "smithy.api#xmlName": "groupDescription" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "aws.protocols#ec2QueryName": "IpPermissions", + "smithy.api#documentation": "

The inbound rules associated with the security group.

", + "smithy.api#xmlName": "ipPermissions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group.

" + } + }, + "com.amazonaws.ec2#SecurityGroupForVpc": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The security group's description.

", + "smithy.api#xmlName": "description" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The security group name.

", + "smithy.api#xmlName": "groupName" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The security group owner ID.

", + "smithy.api#xmlName": "ownerId" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The security group ID.

", + "smithy.api#xmlName": "groupId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The security group tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PrimaryVpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrimaryVpcId", + "smithy.api#documentation": "

The VPC ID in which the security group was created.

", + "smithy.api#xmlName": "primaryVpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group that can be used by interfaces in the VPC.

" + } + }, + "com.amazonaws.ec2#SecurityGroupForVpcList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupForVpc", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupId": { + "type": "string" + }, + "com.amazonaws.ec2#SecurityGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "SecurityGroupId" + } + } + }, + "com.amazonaws.ec2#SecurityGroupIdStringListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 16 + } + } + }, + "com.amazonaws.ec2#SecurityGroupIdentifier": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the security group.

", + "smithy.api#xmlName": "groupName" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group.

" + } + }, + "com.amazonaws.ec2#SecurityGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupName": { + "type": "string" + }, + "com.amazonaws.ec2#SecurityGroupReference": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of your security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "ReferencingVpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReferencingVpcId", + "smithy.api#documentation": "

The ID of the VPC with the referencing security group.

", + "smithy.api#xmlName": "referencingVpcId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of the VPC peering connection (if applicable). For more information about security group referencing for peering connections, see \n Update your security groups to reference peer security groups \n in the VPC Peering Guide.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway (if applicable).

", + "smithy.api#xmlName": "transitGatewayId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC with a security group that references your security group.

" + } + }, + "com.amazonaws.ec2#SecurityGroupReferences": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupReference", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupReferencingSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#SecurityGroupRule": { + "type": "structure", + "members": { + "SecurityGroupRuleId": { + "target": "com.amazonaws.ec2#SecurityGroupRuleId", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleId", + "smithy.api#documentation": "

The ID of the security group rule.

", + "smithy.api#xmlName": "securityGroupRuleId" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "GroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the security group.

", + "smithy.api#xmlName": "groupOwnerId" + } + }, + "IsEgress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsEgress", + "smithy.api#documentation": "

Indicates whether the security group rule is an outbound rule.

", + "smithy.api#xmlName": "isEgress" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp,\n icmpv6) or number (see Protocol Numbers).

\n

Use -1 to specify all protocols.

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). \n If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).

", + "smithy.api#xmlName": "toPort" + } + }, + "CidrIpv4": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIpv4", + "smithy.api#documentation": "

The IPv4 CIDR range.

", + "smithy.api#xmlName": "cidrIpv4" + } + }, + "CidrIpv6": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrIpv6", + "smithy.api#documentation": "

The IPv6 CIDR range.

", + "smithy.api#xmlName": "cidrIpv6" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "ReferencedGroupInfo": { + "target": "com.amazonaws.ec2#ReferencedSecurityGroup", + "traits": { + "aws.protocols#ec2QueryName": "ReferencedGroupInfo", + "smithy.api#documentation": "

Describes the security group that is referenced in the rule.

", + "smithy.api#xmlName": "referencedGroupInfo" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The security group rule description.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags applied to the security group rule.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SecurityGroupRuleArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupRuleArn", + "smithy.api#documentation": "

The ARN of the security group rule.

", + "smithy.api#xmlName": "securityGroupRuleArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group rule.

" + } + }, + "com.amazonaws.ec2#SecurityGroupRuleDescription": { + "type": "structure", + "members": { + "SecurityGroupRuleId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the security group rule.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the security group rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the description of a security group rule.

\n

You can use this when you want to update the security group rule description for either an inbound or outbound rule.

" + } + }, + "com.amazonaws.ec2#SecurityGroupRuleDescriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupRuleDescription", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupRuleId": { + "type": "string" + }, + "com.amazonaws.ec2#SecurityGroupRuleIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupRuleRequest": { + "type": "structure", + "members": { + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp,\n icmpv6) or number (see Protocol Numbers).

\n

Use -1 to specify all protocols.

" + } + }, + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). \n If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).

" + } + }, + "CidrIpv4": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR range. To specify a single IPv4 address, use the /32 prefix length.

" + } + }, + "CidrIpv6": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR range. To specify a single IPv6 address, use the /128 prefix length.

" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the prefix list.

" + } + }, + "ReferencedGroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group that is referenced in the security group rule.

" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the security group rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group rule.

\n

You must specify exactly one of the following parameters, based on the rule type:

\n
    \n
  • \n

    CidrIpv4

    \n
  • \n
  • \n

    CidrIpv6

    \n
  • \n
  • \n

    PrefixListId

    \n
  • \n
  • \n

    ReferencedGroupId

    \n
  • \n
\n \n

\n Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, \n Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will \n return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the \n non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized \n form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.

\n
\n

When you modify a rule, you cannot change the rule type. For example, if the rule \n uses an IPv4 address range, you must use CidrIpv4 to specify a new IPv4 \n address range.

" + } + }, + "com.amazonaws.ec2#SecurityGroupRuleUpdate": { + "type": "structure", + "members": { + "SecurityGroupRuleId": { + "target": "com.amazonaws.ec2#SecurityGroupRuleId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the security group rule.

", + "smithy.api#required": {} + } + }, + "SecurityGroupRule": { + "target": "com.amazonaws.ec2#SecurityGroupRuleRequest", + "traits": { + "smithy.api#documentation": "

Information about the security group rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an update to a security group rule.

" + } + }, + "com.amazonaws.ec2#SecurityGroupRuleUpdateList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupRuleUpdate", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#xmlName": "SecurityGroup" + } + } + }, + "com.amazonaws.ec2#SecurityGroupVpcAssociation": { + "type": "structure", + "members": { + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The association's security group ID.

", + "smithy.api#xmlName": "groupId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The association's VPC ID.

", + "smithy.api#xmlName": "vpcId" + } + }, + "VpcOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the VPC.

", + "smithy.api#xmlName": "vpcOwnerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#SecurityGroupVpcAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The association's state.

", + "smithy.api#xmlName": "state" + } + }, + "StateReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateReason", + "smithy.api#documentation": "

The association's state reason.

", + "smithy.api#xmlName": "stateReason" + } + }, + "GroupOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupOwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the owner of the security group.

", + "smithy.api#xmlName": "groupOwnerId" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group association with a VPC that you made with AssociateSecurityGroupVpc.

" + } + }, + "com.amazonaws.ec2#SecurityGroupVpcAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupVpcAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SecurityGroupVpcAssociationState": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "association_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "association-failed" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "disassociation_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociation-failed" + } + } + } + }, + "com.amazonaws.ec2#SelfServicePortal": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#SendDiagnosticInterrupt": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#SendDiagnosticInterruptRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger a\n kernel panic (on Linux instances), or a blue\n screen/stop error (on Windows instances). For\n instances based on Intel and AMD processors, the interrupt is received as a\n non-maskable interrupt (NMI).

\n

In general, the operating system crashes and reboots when a kernel panic or stop error\n is triggered. The operating system can also be configured to perform diagnostic tasks,\n such as generating a memory dump file, loading a secondary kernel, or obtaining a call\n trace.

\n

Before sending a diagnostic interrupt to your instance, ensure that its operating\n system is configured to perform the required diagnostic tasks.

\n

For more information about configuring your operating system to generate a crash dump\n when a kernel panic or stop error occurs, see Send a diagnostic interrupt\n (for advanced users) in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#SendDiagnosticInterruptRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#SensitiveMacCredentials": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#SensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#SensitiveUrl": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#SensitiveUserData": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#ServiceConfiguration": { + "type": "structure", + "members": { + "ServiceType": { + "target": "com.amazonaws.ec2#ServiceTypeDetailSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceType", + "smithy.api#documentation": "

The type of service.

", + "smithy.api#xmlName": "serviceType" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the service.

", + "smithy.api#xmlName": "serviceId" + } + }, + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceName", + "smithy.api#documentation": "

The name of the service.

", + "smithy.api#xmlName": "serviceName" + } + }, + "ServiceState": { + "target": "com.amazonaws.ec2#ServiceState", + "traits": { + "aws.protocols#ec2QueryName": "ServiceState", + "smithy.api#documentation": "

The service state.

", + "smithy.api#xmlName": "serviceState" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneIdSet", + "smithy.api#documentation": "

The IDs of the Availability Zones in which the service is available.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "availabilityZoneIdSet" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneSet", + "smithy.api#documentation": "

The Availability Zones in which the service is available.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "availabilityZoneSet" + } + }, + "AcceptanceRequired": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AcceptanceRequired", + "smithy.api#documentation": "

Indicates whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.

", + "smithy.api#xmlName": "acceptanceRequired" + } + }, + "ManagesVpcEndpoints": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ManagesVpcEndpoints", + "smithy.api#documentation": "

Indicates whether the service manages its VPC endpoints. Management of the service VPC\n endpoints using the VPC endpoint API is restricted.

", + "smithy.api#xmlName": "managesVpcEndpoints" + } + }, + "NetworkLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkLoadBalancerArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the Network Load Balancers for the service.

", + "smithy.api#xmlName": "networkLoadBalancerArnSet" + } + }, + "GatewayLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "GatewayLoadBalancerArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service.

", + "smithy.api#xmlName": "gatewayLoadBalancerArnSet" + } + }, + "SupportedIpAddressTypes": { + "target": "com.amazonaws.ec2#SupportedIpAddressTypes", + "traits": { + "aws.protocols#ec2QueryName": "SupportedIpAddressTypeSet", + "smithy.api#documentation": "

The supported IP address types.

", + "smithy.api#xmlName": "supportedIpAddressTypeSet" + } + }, + "BaseEndpointDnsNames": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "BaseEndpointDnsNameSet", + "smithy.api#documentation": "

The DNS names for the service.

", + "smithy.api#xmlName": "baseEndpointDnsNameSet" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private DNS name for the service.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PrivateDnsNameConfiguration": { + "target": "com.amazonaws.ec2#PrivateDnsNameConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameConfiguration", + "smithy.api#documentation": "

Information about the endpoint service private DNS name configuration.

", + "smithy.api#xmlName": "privateDnsNameConfiguration" + } + }, + "PayerResponsibility": { + "target": "com.amazonaws.ec2#PayerResponsibility", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibility", + "smithy.api#documentation": "

The payer responsibility.

", + "smithy.api#xmlName": "payerResponsibility" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the service.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SupportedRegions": { + "target": "com.amazonaws.ec2#SupportedRegionSet", + "traits": { + "aws.protocols#ec2QueryName": "SupportedRegionSet", + "smithy.api#documentation": "

The supported Regions.

", + "smithy.api#xmlName": "supportedRegionSet" + } + }, + "RemoteAccessEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "RemoteAccessEnabled", + "smithy.api#documentation": "

Indicates whether consumers can access the service from a Region other than the \n Region where the service is hosted.

", + "smithy.api#xmlName": "remoteAccessEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a service configuration for a VPC endpoint service.

" + } + }, + "com.amazonaws.ec2#ServiceConfigurationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ServiceConnectivityType": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + } + } + }, + "com.amazonaws.ec2#ServiceDetail": { + "type": "structure", + "members": { + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceName", + "smithy.api#documentation": "

The name of the service.

", + "smithy.api#xmlName": "serviceName" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the endpoint service.

", + "smithy.api#xmlName": "serviceId" + } + }, + "ServiceType": { + "target": "com.amazonaws.ec2#ServiceTypeDetailSet", + "traits": { + "aws.protocols#ec2QueryName": "ServiceType", + "smithy.api#documentation": "

The type of service.

", + "smithy.api#xmlName": "serviceType" + } + }, + "ServiceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceRegion", + "smithy.api#documentation": "

The Region where the service is hosted.

", + "smithy.api#xmlName": "serviceRegion" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneIdSet", + "smithy.api#documentation": "

The IDs of the Availability Zones in which the service is available.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "availabilityZoneIdSet" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneSet", + "smithy.api#documentation": "

The Availability Zones in which the service is available.

\n

Either AvailabilityZone or AvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "availabilityZoneSet" + } + }, + "Owner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Owner", + "smithy.api#documentation": "

The Amazon Web Services account ID of the service owner.

", + "smithy.api#xmlName": "owner" + } + }, + "BaseEndpointDnsNames": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "BaseEndpointDnsNameSet", + "smithy.api#documentation": "

The DNS names for the service.

", + "smithy.api#xmlName": "baseEndpointDnsNameSet" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsName", + "smithy.api#documentation": "

The private DNS name for the service.

", + "smithy.api#xmlName": "privateDnsName" + } + }, + "PrivateDnsNames": { + "target": "com.amazonaws.ec2#PrivateDnsDetailsSet", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameSet", + "smithy.api#documentation": "

The private DNS names assigned to the VPC endpoint service.

", + "smithy.api#xmlName": "privateDnsNameSet" + } + }, + "VpcEndpointPolicySupported": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointPolicySupported", + "smithy.api#documentation": "

Indicates whether the service supports endpoint policies.

", + "smithy.api#xmlName": "vpcEndpointPolicySupported" + } + }, + "AcceptanceRequired": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AcceptanceRequired", + "smithy.api#documentation": "

Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner.

", + "smithy.api#xmlName": "acceptanceRequired" + } + }, + "ManagesVpcEndpoints": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ManagesVpcEndpoints", + "smithy.api#documentation": "

Indicates whether the service manages its VPC endpoints. Management of the service VPC\n endpoints using the VPC endpoint API is restricted.

", + "smithy.api#xmlName": "managesVpcEndpoints" + } + }, + "PayerResponsibility": { + "target": "com.amazonaws.ec2#PayerResponsibility", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibility", + "smithy.api#documentation": "

The payer responsibility.

", + "smithy.api#xmlName": "payerResponsibility" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the service.

", + "smithy.api#xmlName": "tagSet" + } + }, + "PrivateDnsNameVerificationState": { + "target": "com.amazonaws.ec2#DnsNameState", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameVerificationState", + "smithy.api#documentation": "

The verification state of the VPC endpoint service.

\n

Consumers of the endpoint service cannot use the private name when the state is not verified.

", + "smithy.api#xmlName": "privateDnsNameVerificationState" + } + }, + "SupportedIpAddressTypes": { + "target": "com.amazonaws.ec2#SupportedIpAddressTypes", + "traits": { + "aws.protocols#ec2QueryName": "SupportedIpAddressTypeSet", + "smithy.api#documentation": "

The supported IP address types.

", + "smithy.api#xmlName": "supportedIpAddressTypeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC endpoint service.

" + } + }, + "com.amazonaws.ec2#ServiceDetailSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ServiceLinkMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#ServiceLinkVirtualInterface": { + "type": "structure", + "members": { + "ServiceLinkVirtualInterfaceId": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "ServiceLinkVirtualInterfaceId", + "smithy.api#documentation": "

The ID of the service link virtual interface.

", + "smithy.api#xmlName": "serviceLinkVirtualInterfaceId" + } + }, + "ServiceLinkVirtualInterfaceArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "ServiceLinkVirtualInterfaceArn", + "smithy.api#documentation": "

The Amazon Resource Number (ARN) for the service link virtual interface.

", + "smithy.api#xmlName": "serviceLinkVirtualInterfaceArn" + } + }, + "OutpostId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostId", + "smithy.api#documentation": "

The Outpost ID for the service link virtual interface.

", + "smithy.api#xmlName": "outpostId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Outpost Amazon Resource Number (ARN) for the service link virtual interface.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the service link virtual interface..

", + "smithy.api#xmlName": "ownerId" + } + }, + "LocalAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalAddress", + "smithy.api#documentation": "

The IPv4 address assigned to the local gateway virtual interface on the Outpost side.

", + "smithy.api#xmlName": "localAddress" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerAddress", + "smithy.api#documentation": "

The IPv4 peer address for the service link virtual interface.

", + "smithy.api#xmlName": "peerAddress" + } + }, + "PeerBgpAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "PeerBgpAsn", + "smithy.api#documentation": "

The ASN for the Border Gateway Protocol (BGP) associated with the service link virtual interface.

", + "smithy.api#xmlName": "peerBgpAsn" + } + }, + "Vlan": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Vlan", + "smithy.api#documentation": "

The virtual local area network for the service link virtual interface.

", + "smithy.api#xmlName": "vlan" + } + }, + "OutpostLagId": { + "target": "com.amazonaws.ec2#OutpostLagId", + "traits": { + "aws.protocols#ec2QueryName": "OutpostLagId", + "smithy.api#documentation": "

The link aggregation group (LAG) ID for the service link virtual interface.

", + "smithy.api#xmlName": "outpostLagId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags associated with the service link virtual interface.

", + "smithy.api#xmlName": "tagSet" + } + }, + "ConfigurationState": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceConfigurationState", + "traits": { + "aws.protocols#ec2QueryName": "ConfigurationState", + "smithy.api#documentation": "

The current state of the service link virtual interface.

", + "smithy.api#xmlName": "configurationState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the service link virtual interfaces that establish connectivity between Amazon Web Services Outpost and on-premises networks.

" + } + }, + "com.amazonaws.ec2#ServiceLinkVirtualInterfaceConfigurationState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#ServiceLinkVirtualInterfaceId": { + "type": "string" + }, + "com.amazonaws.ec2#ServiceLinkVirtualInterfaceIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterfaceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ServiceLinkVirtualInterfaceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceLinkVirtualInterface", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ServiceManaged": { + "type": "enum", + "members": { + "alb": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "alb" + } + }, + "nlb": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nlb" + } + }, + "rnat": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rnat" + } + }, + "rds": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rds" + } + } + } + }, + "com.amazonaws.ec2#ServiceNetworkArn": { + "type": "string" + }, + "com.amazonaws.ec2#ServiceState": { + "type": "enum", + "members": { + "Pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "Available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Available" + } + }, + "Deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleting" + } + }, + "Deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleted" + } + }, + "Failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + } + } + }, + "com.amazonaws.ec2#ServiceType": { + "type": "enum", + "members": { + "Interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Interface" + } + }, + "Gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Gateway" + } + }, + "GatewayLoadBalancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GatewayLoadBalancer" + } + } + } + }, + "com.amazonaws.ec2#ServiceTypeDetail": { + "type": "structure", + "members": { + "ServiceType": { + "target": "com.amazonaws.ec2#ServiceType", + "traits": { + "aws.protocols#ec2QueryName": "ServiceType", + "smithy.api#documentation": "

The type of service.

", + "smithy.api#xmlName": "serviceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the type of service for a VPC endpoint.

" + } + }, + "com.amazonaws.ec2#ServiceTypeDetailSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceTypeDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SeverityLabel": { + "type": "enum", + "members": { + "informational": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "informational" + } + }, + "low": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "low" + } + }, + "medium": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "medium" + } + }, + "high": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "high" + } + }, + "critical": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "critical" + } + } + } + }, + "com.amazonaws.ec2#ShutdownBehavior": { + "type": "enum", + "members": { + "stop": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stop" + } + }, + "terminate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminate" + } + } + } + }, + "com.amazonaws.ec2#SlotDateTimeRangeRequest": { + "type": "structure", + "members": { + "EarliestTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The earliest date and time, in UTC, for the Scheduled Instance to start.

", + "smithy.api#required": {} + } + }, + "LatestTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The latest date and time, in UTC, for the Scheduled Instance to start. This value must be later than or equal to the earliest date and at most three months in the future.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the time period for a Scheduled Instance to start its first schedule. The time period must span less than one day.

" + } + }, + "com.amazonaws.ec2#SlotStartTimeRangeRequest": { + "type": "structure", + "members": { + "EarliestTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The earliest date and time, in UTC, for the Scheduled Instance to start.

" + } + }, + "LatestTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The latest date and time, in UTC, for the Scheduled Instance to start.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the time period for a Scheduled Instance to start its first schedule.

" + } + }, + "com.amazonaws.ec2#Snapshot": { + "type": "structure", + "members": { + "OwnerAlias": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerAlias", + "smithy.api#documentation": "

The Amazon Web Services owner alias, from an Amazon-maintained list (amazon). This is not \n the user-configured Amazon Web Services account alias set using the IAM console.

", + "smithy.api#xmlName": "ownerAlias" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The ARN of the Outpost on which the snapshot is stored. For more information, see Amazon EBS local snapshots on Outposts in the \n \t\tAmazon EBS User Guide.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the snapshot.

", + "smithy.api#xmlName": "tagSet" + } + }, + "StorageTier": { + "target": "com.amazonaws.ec2#StorageTier", + "traits": { + "aws.protocols#ec2QueryName": "StorageTier", + "smithy.api#documentation": "

The storage tier in which the snapshot is stored. standard indicates \n that the snapshot is stored in the standard snapshot storage tier and that it is ready \n for use. archive indicates that the snapshot is currently archived and that \n it must be restored before it can be used.

", + "smithy.api#xmlName": "storageTier" + } + }, + "RestoreExpiryTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RestoreExpiryTime", + "smithy.api#documentation": "

Only for archived snapshots that are temporarily restored. Indicates the date and \n time when a temporarily restored snapshot will be automatically re-archived.

", + "smithy.api#xmlName": "restoreExpiryTime" + } + }, + "SseType": { + "target": "com.amazonaws.ec2#SSEType", + "traits": { + "aws.protocols#ec2QueryName": "SseType", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "sseType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone or Local Zone of the snapshot. For example, us-west-1a \n (Availability Zone) or us-west-2-lax-1a (Local Zone).

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "TransferType": { + "target": "com.amazonaws.ec2#TransferType", + "traits": { + "aws.protocols#ec2QueryName": "TransferType", + "smithy.api#documentation": "\n

Only for snapshot copies.

\n
\n

Indicates whether the snapshot copy was created with a standard or time-based \n snapshot copy operation. Time-based snapshot copy operations complete within the \n completion duration specified in the request. Standard snapshot copy operations \n are completed on a best-effort basis.

\n
    \n
  • \n

    \n standard - The snapshot copy was created with a standard \n snapshot copy operation.

    \n
  • \n
  • \n

    \n time-based - The snapshot copy was created with a time-based \n snapshot copy operation.

    \n
  • \n
", + "smithy.api#xmlName": "transferType" + } + }, + "CompletionDurationMinutes": { + "target": "com.amazonaws.ec2#SnapshotCompletionDurationMinutesResponse", + "traits": { + "aws.protocols#ec2QueryName": "CompletionDurationMinutes", + "smithy.api#documentation": "\n

Only for snapshot copies created with time-based snapshot copy operations.

\n
\n

The completion duration requested for the time-based snapshot copy operation.

", + "smithy.api#xmlName": "completionDurationMinutes" + } + }, + "CompletionTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CompletionTime", + "smithy.api#documentation": "

The time stamp when the snapshot was completed.

", + "smithy.api#xmlName": "completionTime" + } + }, + "FullSnapshotSizeInBytes": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "FullSnapshotSizeInBytes", + "smithy.api#documentation": "

The full size of the snapshot, in bytes.

\n \n

This is not the incremental size of the snapshot. \n This is the full snapshot size and represents the size of all the blocks that were \n written to the source volume at the time the snapshot was created.

\n
", + "smithy.api#xmlName": "fullSnapshotSizeInBytes" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot. Each snapshot receives a unique identifier when it is\n created.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume that was used to create the snapshot. Snapshots created by a copy\n snapshot operation have an arbitrary volume ID that you should not use for any purpose.

", + "smithy.api#xmlName": "volumeId" + } + }, + "State": { + "target": "com.amazonaws.ec2#SnapshotState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The snapshot state.

", + "smithy.api#xmlName": "status" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot copy operation fails\n (for example, if the proper KMS permissions are not obtained) this field displays error\n state details to help you diagnose why the error occurred. This parameter is only returned by\n DescribeSnapshots.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The time stamp when the snapshot was initiated.

", + "smithy.api#xmlName": "startTime" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The progress of the snapshot, as a percentage.

", + "smithy.api#xmlName": "progress" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the EBS snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description for the snapshot.

", + "smithy.api#xmlName": "description" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#xmlName": "volumeSize" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the snapshot is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key that was used to protect the\n volume encryption key for the parent volume.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "DataEncryptionKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DataEncryptionKeyId", + "smithy.api#documentation": "

The data encryption key identifier for the snapshot. This value is a unique identifier\n that corresponds to the data encryption key that was used to encrypt the original volume or\n snapshot copy. Because data encryption keys are inherited by volumes created from snapshots,\n and vice versa, if snapshots share the same data encryption key identifier, then they belong\n to the same volume/snapshot lineage. This parameter is only returned by DescribeSnapshots.

", + "smithy.api#xmlName": "dataEncryptionKeyId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a snapshot.

" + } + }, + "com.amazonaws.ec2#SnapshotAttributeName": { + "type": "enum", + "members": { + "productCodes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "productCodes" + } + }, + "createVolumePermission": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "createVolumePermission" + } + } + } + }, + "com.amazonaws.ec2#SnapshotBlockPublicAccessState": { + "type": "enum", + "members": { + "block_all_sharing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-all-sharing" + } + }, + "block_new_sharing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "block-new-sharing" + } + }, + "unblocked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unblocked" + } + } + } + }, + "com.amazonaws.ec2#SnapshotCompletionDurationMinutesRequest": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 2880 + } + } + }, + "com.amazonaws.ec2#SnapshotCompletionDurationMinutesResponse": { + "type": "integer" + }, + "com.amazonaws.ec2#SnapshotDetail": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the snapshot.

", + "smithy.api#xmlName": "description" + } + }, + "DeviceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceName", + "smithy.api#documentation": "

The block device mapping for the snapshot.

", + "smithy.api#xmlName": "deviceName" + } + }, + "DiskImageSize": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "DiskImageSize", + "smithy.api#documentation": "

The size of the disk in the snapshot, in GiB.

", + "smithy.api#xmlName": "diskImageSize" + } + }, + "Format": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Format", + "smithy.api#documentation": "

The format of the disk image from which the snapshot is created.

", + "smithy.api#xmlName": "format" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The percentage of progress for the task.

", + "smithy.api#xmlName": "progress" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The snapshot ID of the disk being imported.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

A brief status of the snapshot creation.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A detailed status message for the snapshot creation.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Url": { + "target": "com.amazonaws.ec2#SensitiveUrl", + "traits": { + "aws.protocols#ec2QueryName": "Url", + "smithy.api#documentation": "

The URL used to access the disk image.

", + "smithy.api#xmlName": "url" + } + }, + "UserBucket": { + "target": "com.amazonaws.ec2#UserBucketDetails", + "traits": { + "aws.protocols#ec2QueryName": "UserBucket", + "smithy.api#documentation": "

The Amazon S3 bucket for the disk image.

", + "smithy.api#xmlName": "userBucket" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the snapshot created from the imported disk.

" + } + }, + "com.amazonaws.ec2#SnapshotDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SnapshotDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SnapshotDiskContainer": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The description of the disk image being imported.

" + } + }, + "Format": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The format of the disk image being imported.

\n

Valid values: VHD | VMDK | RAW\n

" + } + }, + "Url": { + "target": "com.amazonaws.ec2#SensitiveUrl", + "traits": { + "smithy.api#documentation": "

The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon\n S3 URL (s3://..).

" + } + }, + "UserBucket": { + "target": "com.amazonaws.ec2#UserBucket", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket for the disk image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The disk container object for the import snapshot request.

" + } + }, + "com.amazonaws.ec2#SnapshotId": { + "type": "string" + }, + "com.amazonaws.ec2#SnapshotIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#xmlName": "SnapshotId" + } + } + }, + "com.amazonaws.ec2#SnapshotInfo": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

Description specified by the CreateSnapshotRequest that has been applied to all \n snapshots.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Tags associated with this snapshot.

", + "smithy.api#xmlName": "tagSet" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the snapshot is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

Source volume from which this snapshot was created.

", + "smithy.api#xmlName": "volumeId" + } + }, + "State": { + "target": "com.amazonaws.ec2#SnapshotState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

Current state of the snapshot.

", + "smithy.api#xmlName": "state" + } + }, + "VolumeSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeSize", + "smithy.api#documentation": "

Size of the volume from which this snapshot was created.

", + "smithy.api#xmlName": "volumeSize" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

Time this snapshot was started. This is the same for all snapshots initiated by the\n same request.

", + "smithy.api#xmlName": "startTime" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

Progress this snapshot has made towards completing.

", + "smithy.api#xmlName": "progress" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

Account id used when creating this snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

Snapshot id that can be used to describe this snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The ARN of the Outpost on which the snapshot is stored. For more information, see Amazon EBS local snapshots on Outposts in the \n \t\tAmazon EBS User Guide.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "SseType": { + "target": "com.amazonaws.ec2#SSEType", + "traits": { + "aws.protocols#ec2QueryName": "SseType", + "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#xmlName": "sseType" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone or Local Zone of the snapshots. For example, us-west-1a \n (Availability Zone) or us-west-2-lax-1a (Local Zone).

", + "smithy.api#xmlName": "availabilityZone" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a snapshot.

" + } + }, + "com.amazonaws.ec2#SnapshotList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Snapshot", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SnapshotLocationEnum": { + "type": "enum", + "members": { + "REGIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "regional" + } + }, + "LOCAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "local" + } + } + } + }, + "com.amazonaws.ec2#SnapshotRecycleBinInfo": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "RecycleBinEnterTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinEnterTime", + "smithy.api#documentation": "

The date and time when the snapshot entered the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinEnterTime" + } + }, + "RecycleBinExitTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinExitTime", + "smithy.api#documentation": "

The date and time when the snapshot is to be permanently deleted from the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinExitTime" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description for the snapshot.

", + "smithy.api#xmlName": "description" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume from which the snapshot was created.

", + "smithy.api#xmlName": "volumeId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a snapshot that is currently in the Recycle Bin.

" + } + }, + "com.amazonaws.ec2#SnapshotRecycleBinInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SnapshotRecycleBinInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SnapshotReturnCodes": { + "type": "enum", + "members": { + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "success" + } + }, + "WARN_SKIPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "skipped" + } + }, + "ERROR_MISSING_PERMISSIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "missing-permissions" + } + }, + "ERROR_CODE_INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "internal-error" + } + }, + "ERROR_CODE_CLIENT_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "client-error" + } + } + } + }, + "com.amazonaws.ec2#SnapshotSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SnapshotInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SnapshotState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "error": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "recoverable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "recoverable" + } + }, + "recovering": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "recovering" + } + } + } + }, + "com.amazonaws.ec2#SnapshotTaskDetail": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the disk image being imported.

", + "smithy.api#xmlName": "description" + } + }, + "DiskImageSize": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "DiskImageSize", + "smithy.api#documentation": "

The size of the disk in the snapshot, in GiB.

", + "smithy.api#xmlName": "diskImageSize" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the snapshot is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "Format": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Format", + "smithy.api#documentation": "

The format of the disk image from which the snapshot is created.

", + "smithy.api#xmlName": "format" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The identifier for the KMS key that was used to create the encrypted snapshot.

", + "smithy.api#xmlName": "kmsKeyId" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The percentage of completion for the import snapshot task.

", + "smithy.api#xmlName": "progress" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The snapshot ID of the disk being imported.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

A brief status for the import snapshot task.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A detailed status message for the import snapshot task.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "Url": { + "target": "com.amazonaws.ec2#SensitiveUrl", + "traits": { + "aws.protocols#ec2QueryName": "Url", + "smithy.api#documentation": "

The URL of the disk image from which the snapshot is created.

", + "smithy.api#xmlName": "url" + } + }, + "UserBucket": { + "target": "com.amazonaws.ec2#UserBucketDetails", + "traits": { + "aws.protocols#ec2QueryName": "UserBucket", + "smithy.api#documentation": "

The Amazon S3 bucket for the disk image.

", + "smithy.api#xmlName": "userBucket" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the import snapshot task.

" + } + }, + "com.amazonaws.ec2#SnapshotTierStatus": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume from which the snapshot was created.

", + "smithy.api#xmlName": "volumeId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SnapshotState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The state of the snapshot.

", + "smithy.api#xmlName": "status" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the snapshot.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags that are assigned to the snapshot.

", + "smithy.api#xmlName": "tagSet" + } + }, + "StorageTier": { + "target": "com.amazonaws.ec2#StorageTier", + "traits": { + "aws.protocols#ec2QueryName": "StorageTier", + "smithy.api#documentation": "

The storage tier in which the snapshot is stored. standard indicates \n that the snapshot is stored in the standard snapshot storage tier and that it is ready \n for use. archive indicates that the snapshot is currently archived and that \n it must be restored before it can be used.

", + "smithy.api#xmlName": "storageTier" + } + }, + "LastTieringStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastTieringStartTime", + "smithy.api#documentation": "

The date and time when the last archive or restore process was started.

", + "smithy.api#xmlName": "lastTieringStartTime" + } + }, + "LastTieringProgress": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "LastTieringProgress", + "smithy.api#documentation": "

The progress of the last archive or restore process, as a percentage.

", + "smithy.api#xmlName": "lastTieringProgress" + } + }, + "LastTieringOperationStatus": { + "target": "com.amazonaws.ec2#TieringOperationStatus", + "traits": { + "aws.protocols#ec2QueryName": "LastTieringOperationStatus", + "smithy.api#documentation": "

The status of the last archive or restore process.

", + "smithy.api#xmlName": "lastTieringOperationStatus" + } + }, + "LastTieringOperationStatusDetail": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastTieringOperationStatusDetail", + "smithy.api#documentation": "

A message describing the status of the last archive or restore process.

", + "smithy.api#xmlName": "lastTieringOperationStatusDetail" + } + }, + "ArchivalCompleteTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ArchivalCompleteTime", + "smithy.api#documentation": "

The date and time when the last archive process was completed.

", + "smithy.api#xmlName": "archivalCompleteTime" + } + }, + "RestoreExpiryTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RestoreExpiryTime", + "smithy.api#documentation": "

Only for archived snapshots that are temporarily restored. Indicates the date and \n time when a temporarily restored snapshot will be automatically re-archived.

", + "smithy.api#xmlName": "restoreExpiryTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information about a snapshot's storage tier.

" + } + }, + "com.amazonaws.ec2#SpotAllocationStrategy": { + "type": "enum", + "members": { + "LOWEST_PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lowest-price" + } + }, + "DIVERSIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "diversified" + } + }, + "CAPACITY_OPTIMIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-optimized" + } + }, + "CAPACITY_OPTIMIZED_PRIORITIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-optimized-prioritized" + } + }, + "PRICE_CAPACITY_OPTIMIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "price-capacity-optimized" + } + } + } + }, + "com.amazonaws.ec2#SpotCapacityRebalance": { + "type": "structure", + "members": { + "ReplacementStrategy": { + "target": "com.amazonaws.ec2#ReplacementStrategy", + "traits": { + "aws.protocols#ec2QueryName": "ReplacementStrategy", + "smithy.api#documentation": "

The replacement strategy to use. Only available for fleets of type\n maintain.

\n

\n launch - Spot Fleet launches a new replacement Spot Instance when a\n rebalance notification is emitted for an existing Spot Instance in the fleet. Spot Fleet\n does not terminate the instances that receive a rebalance notification. You can\n terminate the old instances, or you can leave them running. You are charged for all\n instances while they are running.

\n

\n launch-before-terminate - Spot Fleet launches a new replacement Spot\n Instance when a rebalance notification is emitted for an existing Spot Instance in the\n fleet, and then, after a delay that you specify (in TerminationDelay),\n terminates the instances that received a rebalance notification.

", + "smithy.api#xmlName": "replacementStrategy" + } + }, + "TerminationDelay": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TerminationDelay", + "smithy.api#documentation": "

The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n Instance after launching a new replacement Spot Instance.

\n

Required when ReplacementStrategy is set to launch-before-terminate.

\n

Not valid when ReplacementStrategy is set to launch.

\n

Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds.

", + "smithy.api#xmlName": "terminationDelay" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your\n Spot Instance is at an elevated risk of being interrupted. For more information, see\n Capacity\n rebalancing in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#SpotDatafeedSubscription": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Bucket", + "smithy.api#documentation": "

The name of the Amazon S3 bucket where the Spot Instance data feed is located.

", + "smithy.api#xmlName": "bucket" + } + }, + "Fault": { + "target": "com.amazonaws.ec2#SpotInstanceStateFault", + "traits": { + "aws.protocols#ec2QueryName": "Fault", + "smithy.api#documentation": "

The fault codes for the Spot Instance request, if any.

", + "smithy.api#xmlName": "fault" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The Amazon Web Services account ID of the account.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The prefix for the data feed files.

", + "smithy.api#xmlName": "prefix" + } + }, + "State": { + "target": "com.amazonaws.ec2#DatafeedSubscriptionState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Spot Instance data feed subscription.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the data feed for a Spot Instance.

" + } + }, + "com.amazonaws.ec2#SpotFleetLaunchSpecification": { + "type": "structure", + "members": { + "AddressingType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AddressingType", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "addressingType" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.ec2#BlockDeviceMappingList", + "traits": { + "aws.protocols#ec2QueryName": "BlockDeviceMapping", + "smithy.api#documentation": "

One or more block devices that are mapped to the Spot Instances. You can't specify both\n a snapshot ID and an encryption value. This is because only blank volumes can be\n encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its\n encryption status is used for the volume encryption status.

", + "smithy.api#xmlName": "blockDeviceMapping" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

\n

Default: false\n

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.ec2#IamInstanceProfileSpecification", + "traits": { + "aws.protocols#ec2QueryName": "IamInstanceProfile", + "smithy.api#documentation": "

The IAM instance profile.

", + "smithy.api#xmlName": "iamInstanceProfile" + } + }, + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "aws.protocols#ec2QueryName": "ImageId", + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#xmlName": "imageId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "KernelId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KernelId", + "smithy.api#documentation": "

The ID of the kernel.

", + "smithy.api#xmlName": "kernelId" + } + }, + "KeyName": { + "target": "com.amazonaws.ec2#KeyPairName", + "traits": { + "aws.protocols#ec2QueryName": "KeyName", + "smithy.api#documentation": "

The name of the key pair.

", + "smithy.api#xmlName": "keyName" + } + }, + "Monitoring": { + "target": "com.amazonaws.ec2#SpotFleetMonitoring", + "traits": { + "aws.protocols#ec2QueryName": "Monitoring", + "smithy.api#documentation": "

Enable or disable monitoring for the instances.

", + "smithy.api#xmlName": "monitoring" + } + }, + "NetworkInterfaces": { + "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceSet", + "smithy.api#documentation": "

The network interfaces.

\n \n

\n SpotFleetLaunchSpecification does not support Elastic Fabric Adapter (EFA). \n You must use LaunchTemplateConfig instead.

\n
", + "smithy.api#xmlName": "networkInterfaceSet" + } + }, + "Placement": { + "target": "com.amazonaws.ec2#SpotPlacement", + "traits": { + "aws.protocols#ec2QueryName": "Placement", + "smithy.api#documentation": "

The placement information.

", + "smithy.api#xmlName": "placement" + } + }, + "RamdiskId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RamdiskId", + "smithy.api#documentation": "

The ID of the RAM disk. Some kernels require additional drivers at launch. Check the kernel \n requirements for information about whether you need to specify a RAM disk. To find kernel \n requirements, refer to the Amazon Web Services Resource Center and search for the kernel ID.

", + "smithy.api#xmlName": "ramdiskId" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to \n increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate\n them using commas; for example, \"subnet-1234abcdeexample1, subnet-0987cdef6example2\".

\n

If you specify a network interface, you must specify any subnets as part of the\n network interface instead of using this parameter.

", + "smithy.api#xmlName": "subnetId" + } + }, + "UserData": { + "target": "com.amazonaws.ec2#SensitiveUserData", + "traits": { + "aws.protocols#ec2QueryName": "UserData", + "smithy.api#documentation": "

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", + "smithy.api#xmlName": "userData" + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "WeightedCapacity", + "smithy.api#documentation": "

The number of units provided by the specified instance type. These are the same units\n that you chose to set the target capacity in terms of instances, or a performance\n characteristic such as vCPUs, memory, or I/O.

\n

If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the\n number of instances to the next whole number. If this value is not specified, the default\n is 1.

\n \n

When specifying weights, the price used in the lowestPrice and\n priceCapacityOptimized allocation strategies is per\n unit hour (where the instance price is divided by the specified\n weight). However, if all the specified weights are above the requested\n TargetCapacity, resulting in only 1 instance being launched, the price\n used is per instance hour.

\n
", + "smithy.api#xmlName": "weightedCapacity" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#SpotFleetTagSpecificationList", + "traits": { + "aws.protocols#ec2QueryName": "TagSpecificationSet", + "smithy.api#documentation": "

The tags to apply during creation.

", + "smithy.api#xmlName": "tagSpecificationSet" + } + }, + "InstanceRequirements": { + "target": "com.amazonaws.ec2#InstanceRequirements", + "traits": { + "aws.protocols#ec2QueryName": "InstanceRequirements", + "smithy.api#documentation": "

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n identify instance types with those attributes.

\n \n

If you specify InstanceRequirements, you can't specify\n InstanceType.

\n
", + "smithy.api#xmlName": "instanceRequirements" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#GroupIdentifierList", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

The security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", + "smithy.api#xmlName": "groupSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the launch specification for one or more Spot Instances. If you include\n On-Demand capacity in your fleet request or want to specify an EFA network device, you\n can't use SpotFleetLaunchSpecification; you must use LaunchTemplateConfig.

" + } + }, + "com.amazonaws.ec2#SpotFleetMonitoring": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Enables monitoring for the instance.

\n

Default: false\n

", + "smithy.api#xmlName": "enabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes whether monitoring is enabled.

" + } + }, + "com.amazonaws.ec2#SpotFleetRequestConfig": { + "type": "structure", + "members": { + "ActivityStatus": { + "target": "com.amazonaws.ec2#ActivityStatus", + "traits": { + "aws.protocols#ec2QueryName": "ActivityStatus", + "smithy.api#documentation": "

The progress of the Spot Fleet request. \n If there is an error, the status is error.\n After all requests are placed, the status is pending_fulfillment.\n If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled.\n If the size of the fleet is decreased, the status is pending_termination\n while Spot Instances are terminating.

", + "smithy.api#xmlName": "activityStatus" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The creation date and time of the request.

", + "smithy.api#xmlName": "createTime" + } + }, + "SpotFleetRequestConfig": { + "target": "com.amazonaws.ec2#SpotFleetRequestConfigData", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestConfig", + "smithy.api#documentation": "

The configuration of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestConfig" + } + }, + "SpotFleetRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestId", + "smithy.api#documentation": "

The ID of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestId" + } + }, + "SpotFleetRequestState": { + "target": "com.amazonaws.ec2#BatchState", + "traits": { + "aws.protocols#ec2QueryName": "SpotFleetRequestState", + "smithy.api#documentation": "

The state of the Spot Fleet request.

", + "smithy.api#xmlName": "spotFleetRequestState" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for a Spot Fleet resource.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Fleet request.

" + } + }, + "com.amazonaws.ec2#SpotFleetRequestConfigData": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#AllocationStrategy", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance\n pools specified by the Spot Fleet launch configuration. For more information, see Allocation\n strategies for Spot Instances in the Amazon EC2 User Guide.

\n
\n
priceCapacityOptimized (recommended)
\n
\n

Spot Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. Spot Fleet then requests Spot Instances from the lowest priced of these pools.

\n
\n
capacityOptimized
\n
\n

Spot Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. To give certain\n instance types a higher chance of launching first, use\n capacityOptimizedPrioritized. Set a priority for each instance type by\n using the Priority parameter for LaunchTemplateOverrides. You can\n assign the same priority to different LaunchTemplateOverrides. EC2 implements\n the priorities on a best-effort basis, but optimizes for capacity first.\n capacityOptimizedPrioritized is supported only if your Spot Fleet uses a\n launch template. Note that if the OnDemandAllocationStrategy is set to\n prioritized, the same priority is applied when fulfilling On-Demand\n capacity.

\n
\n
diversified
\n
\n

Spot Fleet requests instances from all of the Spot Instance pools that you\n specify.

\n
\n
lowestPrice (not recommended)
\n
\n \n

We don't recommend the lowestPrice allocation strategy because\n it has the highest risk of interruption for your Spot Instances.

\n
\n

Spot Fleet requests instances from the lowest priced Spot Instance pool that has available\n capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances\n come from the next lowest priced pool that has available capacity. If a pool runs\n out of capacity before fulfilling your desired capacity, Spot Fleet will continue to\n fulfill your request by drawing from the next lowest priced pool. To ensure that\n your desired capacity is met, you might receive Spot Instances from several pools. Because\n this strategy only considers instance price and not capacity availability, it\n might lead to high interruption rates.

\n
\n
\n

Default: lowestPrice\n

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "OnDemandAllocationStrategy": { + "target": "com.amazonaws.ec2#OnDemandAllocationStrategy", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandAllocationStrategy", + "smithy.api#documentation": "

The order of the launch template overrides to use in fulfilling On-Demand capacity. If\n you specify lowestPrice, Spot Fleet uses price to determine the order, launching\n the lowest price first. If you specify prioritized, Spot Fleet uses the priority\n that you assign to each Spot Fleet launch template override, launching the highest priority\n first. If you do not specify a value, Spot Fleet defaults to lowestPrice.

", + "smithy.api#xmlName": "onDemandAllocationStrategy" + } + }, + "SpotMaintenanceStrategies": { + "target": "com.amazonaws.ec2#SpotMaintenanceStrategies", + "traits": { + "aws.protocols#ec2QueryName": "SpotMaintenanceStrategies", + "smithy.api#documentation": "

The strategies for managing your Spot Instances that are at an elevated risk of being\n interrupted.

", + "smithy.api#xmlName": "spotMaintenanceStrategies" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientToken", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of your\n listings. This helps to avoid duplicate listings. For more information, see Ensuring Idempotency.

", + "smithy.api#xmlName": "clientToken" + } + }, + "ExcessCapacityTerminationPolicy": { + "target": "com.amazonaws.ec2#ExcessCapacityTerminationPolicy", + "traits": { + "aws.protocols#ec2QueryName": "ExcessCapacityTerminationPolicy", + "smithy.api#documentation": "

Indicates whether running instances should be terminated if you decrease the\n target capacity of the Spot Fleet request below the current size of the Spot Fleet.

\n

Supported only for fleets of type maintain.

", + "smithy.api#xmlName": "excessCapacityTerminationPolicy" + } + }, + "FulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "FulfilledCapacity", + "smithy.api#documentation": "

The number of units fulfilled by this request compared to the set target capacity. You\n cannot set this value.

", + "smithy.api#xmlName": "fulfilledCapacity" + } + }, + "OnDemandFulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandFulfilledCapacity", + "smithy.api#documentation": "

The number of On-Demand units fulfilled by this request compared to the set target\n On-Demand capacity.

", + "smithy.api#xmlName": "onDemandFulfilledCapacity" + } + }, + "IamFleetRole": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IamFleetRole", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that grants the Spot Fleet the permission to request, launch, terminate, and tag instances\n on your behalf. For more information, see Spot\n Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can\n terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set\n TerminateInstancesWithExpiration.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "iamFleetRole" + } + }, + "LaunchSpecifications": { + "target": "com.amazonaws.ec2#LaunchSpecsList", + "traits": { + "aws.protocols#ec2QueryName": "LaunchSpecifications", + "smithy.api#documentation": "

The launch specifications for the Spot Fleet request. If you specify\n LaunchSpecifications, you can't specify\n LaunchTemplateConfigs. If you include On-Demand capacity in your\n request, you must use LaunchTemplateConfigs.

\n \n

If an AMI specified in a launch specification is deregistered or disabled, no new\n instances can be launched from the AMI. For fleets of type maintain, the\n target capacity will not be maintained.

\n
", + "smithy.api#xmlName": "launchSpecifications" + } + }, + "LaunchTemplateConfigs": { + "target": "com.amazonaws.ec2#LaunchTemplateConfigList", + "traits": { + "aws.protocols#ec2QueryName": "LaunchTemplateConfigs", + "smithy.api#documentation": "

The launch template and overrides. If you specify LaunchTemplateConfigs,\n you can't specify LaunchSpecifications. If you include On-Demand capacity\n in your request, you must use LaunchTemplateConfigs.

", + "smithy.api#xmlName": "launchTemplateConfigs" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend \n using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "TargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetCapacity", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of units to request for the Spot Fleet. You can choose to set the target\n capacity in terms of instances or a performance characteristic that is important to your\n application workload, such as vCPUs, memory, or I/O. If the request type is\n maintain, you can specify a target capacity of 0 and add capacity\n later.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "targetCapacity" + } + }, + "OnDemandTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandTargetCapacity", + "smithy.api#documentation": "

The number of On-Demand units to request. You can choose to set the target capacity in\n terms of instances or a performance characteristic that is important to your application\n workload, such as vCPUs, memory, or I/O. If the request type is maintain,\n you can specify a target capacity of 0 and add capacity later.

", + "smithy.api#xmlName": "onDemandTargetCapacity" + } + }, + "OnDemandMaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandMaxTotalPrice", + "smithy.api#documentation": "

The maximum amount per hour for On-Demand Instances that you're willing to pay. You\n can use the onDemandMaxTotalPrice parameter, the\n spotMaxTotalPrice parameter, or both parameters to ensure that your\n fleet cost does not exceed your budget. If you set a maximum price per hour for the\n On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the\n maximum amount you're willing to pay. When the maximum amount you're willing to pay is\n reached, the fleet stops launching instances even if it hasn’t met the target\n capacity.

\n \n

If your fleet includes T instances that are configured as unlimited,\n and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n for surplus credits. The onDemandMaxTotalPrice does not account for surplus\n credits, and, if you use surplus credits, your final cost might be higher than what you\n specified for onDemandMaxTotalPrice. For more information, see Surplus credits can incur charges in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#xmlName": "onDemandMaxTotalPrice" + } + }, + "SpotMaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotMaxTotalPrice", + "smithy.api#documentation": "

The maximum amount per hour for Spot Instances that you're willing to pay. You can use\n the spotMaxTotalPrice parameter, the onDemandMaxTotalPrice\n parameter, or both parameters to ensure that your fleet cost does not exceed your budget.\n If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will\n launch instances until it reaches the maximum amount you're willing to pay. When the\n maximum amount you're willing to pay is reached, the fleet stops launching instances even\n if it hasn’t met the target capacity.

\n \n

If your fleet includes T instances that are configured as unlimited,\n and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n for surplus credits. The spotMaxTotalPrice does not account for surplus\n credits, and, if you use surplus credits, your final cost might be higher than what you\n specified for spotMaxTotalPrice. For more information, see Surplus credits can incur charges in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#xmlName": "spotMaxTotalPrice" + } + }, + "TerminateInstancesWithExpiration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "TerminateInstancesWithExpiration", + "smithy.api#documentation": "

Indicates whether running Spot Instances are terminated when the Spot Fleet request\n expires.

", + "smithy.api#xmlName": "terminateInstancesWithExpiration" + } + }, + "Type": { + "target": "com.amazonaws.ec2#FleetType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of request. Indicates whether the Spot Fleet only requests the target\n capacity or also attempts to maintain it. When this value is request, the\n Spot Fleet only places the required requests. It does not attempt to replenish Spot\n Instances if capacity is diminished, nor does it submit requests in alternative Spot\n pools if capacity is not available. When this value is maintain, the Spot\n Fleet maintains the target capacity. The Spot Fleet places the required requests to meet\n capacity and automatically replenishes any interrupted instances. Default:\n maintain. instant is listed but is not used by Spot\n Fleet.

", + "smithy.api#xmlName": "type" + } + }, + "ValidFrom": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidFrom", + "smithy.api#documentation": "

The start date and time of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ).\n By default, Amazon EC2 starts fulfilling the request immediately.

", + "smithy.api#xmlName": "validFrom" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidUntil", + "smithy.api#documentation": "

The end date and time of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ).\n After the end date and time, no new Spot Instance requests are placed or able to fulfill\n the request. If no value is specified, the Spot Fleet request remains until you cancel\n it.

", + "smithy.api#xmlName": "validUntil" + } + }, + "ReplaceUnhealthyInstances": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ReplaceUnhealthyInstances", + "smithy.api#documentation": "

Indicates whether Spot Fleet should replace unhealthy instances.

", + "smithy.api#xmlName": "replaceUnhealthyInstances" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInterruptionBehavior", + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted. The default is\n terminate.

", + "smithy.api#xmlName": "instanceInterruptionBehavior" + } + }, + "LoadBalancersConfig": { + "target": "com.amazonaws.ec2#LoadBalancersConfig", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancersConfig", + "smithy.api#documentation": "

One or more Classic Load Balancers and target groups to attach to the Spot Fleet\n request. Spot Fleet registers the running Spot Instances with the specified Classic Load\n Balancers and target groups.

\n

With Network Load Balancers, Spot Fleet cannot register instances that have the\n following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2,\n M3, and T1.

", + "smithy.api#xmlName": "loadBalancersConfig" + } + }, + "InstancePoolsToUseCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstancePoolsToUseCount", + "smithy.api#documentation": "

The number of Spot pools across which to allocate your target Spot capacity. Valid\n only when Spot AllocationStrategy is set to\n lowest-price. Spot Fleet selects the cheapest Spot pools and evenly\n allocates your target Spot capacity across the number of Spot pools that you\n specify.

\n

Note that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest\n pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n the number of pools that you specified. Similarly, if most of the pools have no Spot\n capacity, you might receive your full target capacity from fewer than the number of\n pools that you specified.

", + "smithy.api#xmlName": "instancePoolsToUseCount" + } + }, + "Context": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Context", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "context" + } + }, + "TargetCapacityUnitType": { + "target": "com.amazonaws.ec2#TargetCapacityUnitType", + "traits": { + "aws.protocols#ec2QueryName": "TargetCapacityUnitType", + "smithy.api#documentation": "

The unit for the target capacity. You can specify this parameter only when \n using attribute-based instance type selection.

\n

Default: units (the number of instances)

", + "smithy.api#xmlName": "targetCapacityUnitType" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The key-value pair for tagging the Spot Fleet request on creation. The value for\n ResourceType must be spot-fleet-request, otherwise the\n Spot Fleet request fails. To tag instances at launch, specify the tags in the launch\n template (valid only if you use LaunchTemplateConfigs) or in\n the \n SpotFleetTagSpecification\n (valid only if you use\n LaunchSpecifications). For information about tagging after launch, see\n Tag your resources.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of a Spot Fleet request.

" + } + }, + "com.amazonaws.ec2#SpotFleetRequestConfigSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotFleetRequestConfig", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpotFleetRequestId": { + "type": "string" + }, + "com.amazonaws.ec2#SpotFleetRequestIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotFleetRequestId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpotFleetTagSpecification": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource. Currently, the only resource type that is supported is\n instance. To tag the Spot Fleet request on creation, use the\n TagSpecifications parameter in \n SpotFleetRequestConfigData\n .

", + "smithy.api#xmlName": "resourceType" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "Tag", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tags for a Spot Fleet resource.

" + } + }, + "com.amazonaws.ec2#SpotFleetTagSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotFleetTagSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpotInstanceInterruptionBehavior": { + "type": "enum", + "members": { + "hibernate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hibernate" + } + }, + "stop": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stop" + } + }, + "terminate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "terminate" + } + } + } + }, + "com.amazonaws.ec2#SpotInstanceRequest": { + "type": "structure", + "members": { + "ActualBlockHourlyPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ActualBlockHourlyPrice", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "actualBlockHourlyPrice" + } + }, + "AvailabilityZoneGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneGroup", + "smithy.api#documentation": "

The Availability Zone group. If you specify the same Availability Zone group for all Spot Instance requests, all Spot Instances are launched in the same Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneGroup" + } + }, + "BlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "BlockDurationMinutes", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "blockDurationMinutes" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time when the Spot Instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "createTime" + } + }, + "Fault": { + "target": "com.amazonaws.ec2#SpotInstanceStateFault", + "traits": { + "aws.protocols#ec2QueryName": "Fault", + "smithy.api#documentation": "

The fault codes for the Spot Instance request, if any.

", + "smithy.api#xmlName": "fault" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The instance ID, if an instance has been launched to fulfill the Spot Instance request.

", + "smithy.api#xmlName": "instanceId" + } + }, + "LaunchGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchGroup", + "smithy.api#documentation": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

", + "smithy.api#xmlName": "launchGroup" + } + }, + "LaunchSpecification": { + "target": "com.amazonaws.ec2#LaunchSpecification", + "traits": { + "aws.protocols#ec2QueryName": "LaunchSpecification", + "smithy.api#documentation": "

Additional information for launching instances.

", + "smithy.api#xmlName": "launchSpecification" + } + }, + "LaunchedAvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchedAvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the request is launched.

\n

Either launchedAvailabilityZone or launchedAvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "launchedAvailabilityZone" + } + }, + "LaunchedAvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LaunchedAvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the request is launched.

\n

Either launchedAvailabilityZone or launchedAvailabilityZoneId can be specified, but not both

", + "smithy.api#xmlName": "launchedAvailabilityZoneId" + } + }, + "ProductDescription": { + "target": "com.amazonaws.ec2#RIProductDescription", + "traits": { + "aws.protocols#ec2QueryName": "ProductDescription", + "smithy.api#documentation": "

The product description associated with the Spot Instance.

", + "smithy.api#xmlName": "productDescription" + } + }, + "SpotInstanceRequestId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotInstanceRequestId", + "smithy.api#documentation": "

The ID of the Spot Instance request.

", + "smithy.api#xmlName": "spotInstanceRequestId" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend \n using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "State": { + "target": "com.amazonaws.ec2#SpotInstanceState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Spot Instance request. Spot request status information helps track your Spot\n Instance requests. For more information, see Spot request status in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "state" + } + }, + "Status": { + "target": "com.amazonaws.ec2#SpotInstanceStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status code and status message describing the Spot Instance request.

", + "smithy.api#xmlName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the resource.

", + "smithy.api#xmlName": "tagSet" + } + }, + "Type": { + "target": "com.amazonaws.ec2#SpotInstanceType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The Spot Instance request type.

", + "smithy.api#xmlName": "type" + } + }, + "ValidFrom": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidFrom", + "smithy.api#documentation": "

The start date of the request, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).\n The request becomes active at this date and time.

", + "smithy.api#xmlName": "validFrom" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ValidUntil", + "smithy.api#documentation": "

The end date of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ).

\n
    \n
  • \n

    For a persistent request, the request remains active until the validUntil date\n and time is reached. Otherwise, the request remains active until you cancel it.\n

    \n
  • \n
  • \n

    For a one-time request, the request remains active until all instances launch,\n the request is canceled, or the validUntil date and time is reached. By default, the\n request is valid for 7 days from the date the request was created.

    \n
  • \n
", + "smithy.api#xmlName": "validUntil" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInterruptionBehavior", + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted.

", + "smithy.api#xmlName": "instanceInterruptionBehavior" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Instance request.

" + } + }, + "com.amazonaws.ec2#SpotInstanceRequestId": { + "type": "string" + }, + "com.amazonaws.ec2#SpotInstanceRequestIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotInstanceRequestId", + "traits": { + "smithy.api#xmlName": "SpotInstanceRequestId" + } + } + }, + "com.amazonaws.ec2#SpotInstanceRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotInstanceRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpotInstanceState": { + "type": "enum", + "members": { + "open": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "closed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "closed" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#SpotInstanceStateFault": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The reason code for the Spot Instance state change.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The message for the Spot Instance state change.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Spot Instance state change.

" + } + }, + "com.amazonaws.ec2#SpotInstanceStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status code. For a list of status codes, see Spot request status codes in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The description for the status code.

", + "smithy.api#xmlName": "message" + } + }, + "UpdateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateTime", + "smithy.api#documentation": "

The date and time of the most recent status update, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "updateTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of a Spot Instance request.

" + } + }, + "com.amazonaws.ec2#SpotInstanceType": { + "type": "enum", + "members": { + "one_time": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "one-time" + } + }, + "persistent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "persistent" + } + } + } + }, + "com.amazonaws.ec2#SpotMaintenanceStrategies": { + "type": "structure", + "members": { + "CapacityRebalance": { + "target": "com.amazonaws.ec2#SpotCapacityRebalance", + "traits": { + "aws.protocols#ec2QueryName": "CapacityRebalance", + "smithy.api#documentation": "

The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your\n Spot Instance is at an elevated risk of being interrupted. For more information, see\n Capacity\n rebalancing in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "capacityRebalance" + } + } + }, + "traits": { + "smithy.api#documentation": "

The strategies for managing your Spot Instances that are at an elevated risk of being\n interrupted.

" + } + }, + "com.amazonaws.ec2#SpotMarketOptions": { + "type": "structure", + "members": { + "MaxPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The maximum hourly price that you're willing to pay for a Spot Instance. We do not\n recommend using this parameter because it can lead to increased interruptions. If you do\n not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your Spot Instances will be interrupted more\n frequently than if you do not specify this parameter.

\n

If you specify a maximum price, it must be more than USD $0.001. Specifying a value\n below USD $0.001 will result in an InvalidParameterValue error\n message.

\n
" + } + }, + "SpotInstanceType": { + "target": "com.amazonaws.ec2#SpotInstanceType", + "traits": { + "smithy.api#documentation": "

The Spot Instance request type. For RunInstances, persistent\n Spot Instance requests are only supported when the instance interruption behavior is\n either hibernate or stop.

" + } + }, + "BlockDurationMinutes": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

Deprecated.

" + } + }, + "ValidUntil": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "smithy.api#documentation": "

The end date of the request, in UTC format\n (YYYY-MM-DDTHH:MM:SSZ).\n Supported only for persistent requests.

\n
    \n
  • \n

    For a persistent request, the request remains active until the\n ValidUntil date and time is reached. Otherwise, the request\n remains active until you cancel it.

    \n
  • \n
  • \n

    For a one-time request, ValidUntil is not supported. The request\n remains active until all instances launch or you cancel the request.

    \n
  • \n
" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#InstanceInterruptionBehavior", + "traits": { + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted.

\n

If Configured (for \n HibernationOptions\n ) is set to true, the\n InstanceInterruptionBehavior parameter is automatically set to\n hibernate. If you set it to stop or\n terminate, you'll get an error.

\n

If Configured (for \n HibernationOptions\n ) is set to false or\n null, the InstanceInterruptionBehavior parameter is\n automatically set to terminate. You can also set it to stop or\n hibernate.

\n

For more information, see Interruption\n behavior in the Amazon EC2 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options for Spot Instances.

" + } + }, + "com.amazonaws.ec2#SpotOptions": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#SpotAllocationStrategy", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance\n pools specified by the EC2 Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the\n Amazon EC2 User Guide.

\n
\n
price-capacity-optimized (recommended)
\n
\n

EC2 Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. EC2 Fleet then requests Spot Instances from the lowest priced of these pools.

\n
\n
capacity-optimized
\n
\n

EC2 Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. To give certain\n instance types a higher chance of launching first, use\n capacity-optimized-prioritized. Set a priority for each instance type by\n using the Priority parameter for LaunchTemplateOverrides. You can\n assign the same priority to different LaunchTemplateOverrides. EC2 implements\n the priorities on a best-effort basis, but optimizes for capacity first.\n capacity-optimized-prioritized is supported only if your EC2 Fleet uses a\n launch template. Note that if the On-Demand AllocationStrategy is set to\n prioritized, the same priority is applied when fulfilling On-Demand\n capacity.

\n
\n
diversified
\n
\n

EC2 Fleet requests instances from all of the Spot Instance pools that you\n specify.

\n
\n
lowest-price (not recommended)
\n
\n \n

We don't recommend the lowest-price allocation strategy because\n it has the highest risk of interruption for your Spot Instances.

\n
\n

EC2 Fleet requests instances from the lowest priced Spot Instance pool that has available\n capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances\n come from the next lowest priced pool that has available capacity. If a pool runs\n out of capacity before fulfilling your desired capacity, EC2 Fleet will continue to\n fulfill your request by drawing from the next lowest priced pool. To ensure that\n your desired capacity is met, you might receive Spot Instances from several pools. Because\n this strategy only considers instance price and not capacity availability, it\n might lead to high interruption rates.

\n
\n
\n

Default: lowest-price\n

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "MaintenanceStrategies": { + "target": "com.amazonaws.ec2#FleetSpotMaintenanceStrategies", + "traits": { + "aws.protocols#ec2QueryName": "MaintenanceStrategies", + "smithy.api#documentation": "

The strategies for managing your workloads on your Spot Instances that will be\n interrupted. Currently only the capacity rebalance strategy is available.

", + "smithy.api#xmlName": "maintenanceStrategies" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#SpotInstanceInterruptionBehavior", + "traits": { + "aws.protocols#ec2QueryName": "InstanceInterruptionBehavior", + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted.

\n

Default: terminate\n

", + "smithy.api#xmlName": "instanceInterruptionBehavior" + } + }, + "InstancePoolsToUseCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstancePoolsToUseCount", + "smithy.api#documentation": "

The number of Spot pools across which to allocate your target Spot capacity. Supported\n only when AllocationStrategy is set to lowest-price. EC2 Fleet selects\n the cheapest Spot pools and evenly allocates your target Spot capacity across the number of\n Spot pools that you specify.

\n

Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest\n pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n the number of pools that you specified. Similarly, if most of the pools have no Spot\n capacity, you might receive your full target capacity from fewer than the number of pools\n that you specified.

", + "smithy.api#xmlName": "instancePoolsToUseCount" + } + }, + "SingleInstanceType": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SingleInstanceType", + "smithy.api#documentation": "

Indicates that the fleet uses a single instance type to launch all Spot Instances in the\n fleet.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "singleInstanceType" + } + }, + "SingleAvailabilityZone": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "SingleAvailabilityZone", + "smithy.api#documentation": "

Indicates that the fleet launches all Spot Instances into a single Availability Zone.

\n

Supported only for fleets of type instant.

", + "smithy.api#xmlName": "singleAvailabilityZone" + } + }, + "MinTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "MinTargetCapacity", + "smithy.api#documentation": "

The minimum target capacity for Spot Instances in the fleet. If this minimum capacity isn't\n reached, no instances are launched.

\n

Constraints: Maximum value of 1000. Supported only for fleets of type\n instant.

\n

At least one of the following must be specified: SingleAvailabilityZone |\n SingleInstanceType\n

", + "smithy.api#xmlName": "minTargetCapacity" + } + }, + "MaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MaxTotalPrice", + "smithy.api#documentation": "

The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n using this parameter because it can lead to increased interruptions. If you do not specify\n this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

\n
\n \n

If your fleet includes T instances that are configured as unlimited, and\n if their average CPU usage exceeds the baseline utilization, you will incur a charge for\n surplus credits. The maxTotalPrice does not account for surplus credits,\n and, if you use surplus credits, your final cost might be higher than what you specified\n for maxTotalPrice. For more information, see Surplus credits can incur charges in the\n Amazon EC2 User Guide.

\n
", + "smithy.api#xmlName": "maxTotalPrice" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of Spot Instances in an EC2 Fleet.

" + } + }, + "com.amazonaws.ec2#SpotOptionsRequest": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#SpotAllocationStrategy", + "traits": { + "smithy.api#documentation": "

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance\n pools specified by the EC2 Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the\n Amazon EC2 User Guide.

\n
\n
price-capacity-optimized (recommended)
\n
\n

EC2 Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. EC2 Fleet then requests Spot Instances from the lowest priced of these pools.

\n
\n
capacity-optimized
\n
\n

EC2 Fleet identifies the pools with \n the highest capacity availability for the number of instances that are launching. This means \n that we will request Spot Instances from the pools that we believe have the lowest chance of interruption \n in the near term. To give certain\n instance types a higher chance of launching first, use\n capacity-optimized-prioritized. Set a priority for each instance type by\n using the Priority parameter for LaunchTemplateOverrides. You can\n assign the same priority to different LaunchTemplateOverrides. EC2 implements\n the priorities on a best-effort basis, but optimizes for capacity first.\n capacity-optimized-prioritized is supported only if your EC2 Fleet uses a\n launch template. Note that if the On-Demand AllocationStrategy is set to\n prioritized, the same priority is applied when fulfilling On-Demand\n capacity.

\n
\n
diversified
\n
\n

EC2 Fleet requests instances from all of the Spot Instance pools that you\n specify.

\n
\n
lowest-price (not recommended)
\n
\n \n

We don't recommend the lowest-price allocation strategy because\n it has the highest risk of interruption for your Spot Instances.

\n
\n

EC2 Fleet requests instances from the lowest priced Spot Instance pool that\n has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances\n come from the next lowest priced pool that has available capacity. If a pool runs out of\n capacity before fulfilling your desired capacity, EC2 Fleet will continue to fulfill your\n request by drawing from the next lowest priced pool. To ensure that your desired capacity is\n met, you might receive Spot Instances from several pools. Because this strategy only considers instance \n price and not capacity availability, it might lead to high interruption rates.

\n
\n
\n

Default: lowest-price\n

" + } + }, + "MaintenanceStrategies": { + "target": "com.amazonaws.ec2#FleetSpotMaintenanceStrategiesRequest", + "traits": { + "smithy.api#documentation": "

The strategies for managing your Spot Instances that are at an elevated risk of being\n interrupted.

" + } + }, + "InstanceInterruptionBehavior": { + "target": "com.amazonaws.ec2#SpotInstanceInterruptionBehavior", + "traits": { + "smithy.api#documentation": "

The behavior when a Spot Instance is interrupted.

\n

Default: terminate\n

" + } + }, + "InstancePoolsToUseCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of Spot pools across which to allocate your target Spot capacity. Supported\n only when Spot AllocationStrategy is set to lowest-price. EC2 Fleet\n selects the cheapest Spot pools and evenly allocates your target Spot capacity across the\n number of Spot pools that you specify.

\n

Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest\n pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n the number of pools that you specified. Similarly, if most of the pools have no Spot\n capacity, you might receive your full target capacity from fewer than the number of pools\n that you specified.

" + } + }, + "SingleInstanceType": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates that the fleet uses a single instance type to launch all Spot Instances in the\n fleet.

\n

Supported only for fleets of type instant.

" + } + }, + "SingleAvailabilityZone": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates that the fleet launches all Spot Instances into a single Availability Zone.

\n

Supported only for fleets of type instant.

" + } + }, + "MinTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The minimum target capacity for Spot Instances in the fleet. If this minimum capacity isn't\n reached, no instances are launched.

\n

Constraints: Maximum value of 1000. Supported only for fleets of type\n instant.

\n

At least one of the following must be specified: SingleAvailabilityZone |\n SingleInstanceType\n

" + } + }, + "MaxTotalPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n using this parameter because it can lead to increased interruptions. If you do not specify\n this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

\n
\n \n

If your fleet includes T instances that are configured as unlimited, and\n if their average CPU usage exceeds the baseline utilization, you will incur a charge for\n surplus credits. The MaxTotalPrice does not account for surplus credits,\n and, if you use surplus credits, your final cost might be higher than what you specified\n for MaxTotalPrice. For more information, see Surplus credits can incur charges in the\n Amazon EC2 User Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of Spot Instances in an EC2 Fleet request.

" + } + }, + "com.amazonaws.ec2#SpotPlacement": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone. For example, us-east-2a.

\n

[Spot Fleet only] To specify multiple Availability Zones, separate them using commas;\n for example, \"us-east-2a, us-east-2b\".

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#PlacementGroupName", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the placement group.

", + "smithy.api#xmlName": "groupName" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a\n tenancy of dedicated runs on single-tenant hardware. The host\n tenancy is not supported for Spot Instances.

", + "smithy.api#xmlName": "tenancy" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone. For example, use2-az1.

\n

[Spot Fleet only] To specify multiple Availability Zones, separate them using commas;\n for example, \"use2-az1, use2-bz1\".

\n

Either AvailabilityZone or AvailabilityZoneId must be\n specified in the request, but not both.

", + "smithy.api#xmlName": "availabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes Spot Instance placement.

" + } + }, + "com.amazonaws.ec2#SpotPlacementScore": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Region", + "smithy.api#documentation": "

The Region.

", + "smithy.api#xmlName": "region" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Score": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Score", + "smithy.api#documentation": "

The placement score, on a scale from 1 to 10. A score of\n 10 indicates that your Spot request is highly likely to succeed in this\n Region or Availability Zone. A score of 1 indicates that your Spot request is\n not likely to succeed.

", + "smithy.api#xmlName": "score" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Spot placement score for this Region or Availability Zone. The score is calculated\n based on the assumption that the capacity-optimized allocation strategy is\n used and that all of the Availability Zones in the Region can be used.

" + } + }, + "com.amazonaws.ec2#SpotPlacementScores": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotPlacementScore", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpotPlacementScoresMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 10, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#SpotPlacementScoresTargetCapacity": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 2000000000 + } + } + }, + "com.amazonaws.ec2#SpotPrice": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type.

", + "smithy.api#xmlName": "instanceType" + } + }, + "ProductDescription": { + "target": "com.amazonaws.ec2#RIProductDescription", + "traits": { + "aws.protocols#ec2QueryName": "ProductDescription", + "smithy.api#documentation": "

A general description of the AMI.

", + "smithy.api#xmlName": "productDescription" + } + }, + "SpotPrice": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SpotPrice", + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend \n using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
", + "smithy.api#xmlName": "spotPrice" + } + }, + "Timestamp": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "Timestamp", + "smithy.api#documentation": "

The date and time the request was created, in UTC format (for example,\n YYYY-MM-DDTHH:MM:SSZ).

", + "smithy.api#xmlName": "timestamp" + } + } + }, + "traits": { + "smithy.api#documentation": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend \n using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

\n \n

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

\n
" + } + }, + "com.amazonaws.ec2#SpotPriceHistoryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SpotPrice", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SpreadLevel": { + "type": "enum", + "members": { + "host": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "rack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rack" + } + } + } + }, + "com.amazonaws.ec2#SqlServerLicenseUsage": { + "type": "enum", + "members": { + "full": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "full" + } + }, + "waived": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "waived" + } + } + } + }, + "com.amazonaws.ec2#StaleIpPermission": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the start of the port range. \n If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).

", + "smithy.api#xmlName": "fromPort" + } + }, + "IpProtocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IpProtocol", + "smithy.api#documentation": "

The IP protocol name (tcp, udp, icmp, icmpv6) or number\n (see Protocol Numbers).

", + "smithy.api#xmlName": "ipProtocol" + } + }, + "IpRanges": { + "target": "com.amazonaws.ec2#IpRanges", + "traits": { + "aws.protocols#ec2QueryName": "IpRanges", + "smithy.api#documentation": "

The IP ranges. Not applicable for stale security group rules.

", + "smithy.api#xmlName": "ipRanges" + } + }, + "PrefixListIds": { + "target": "com.amazonaws.ec2#PrefixListIdSet", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListIds", + "smithy.api#documentation": "

The prefix list IDs. Not applicable for stale security group rules.

", + "smithy.api#xmlName": "prefixListIds" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

If the protocol is TCP or UDP, this is the end of the port range.\n If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes).

", + "smithy.api#xmlName": "toPort" + } + }, + "UserIdGroupPairs": { + "target": "com.amazonaws.ec2#UserIdGroupPairSet", + "traits": { + "aws.protocols#ec2QueryName": "Groups", + "smithy.api#documentation": "

The security group pairs. Returns the ID of the referenced security group and VPC, and the ID and status of the VPC peering connection.

", + "smithy.api#xmlName": "groups" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a stale rule in a security group.

" + } + }, + "com.amazonaws.ec2#StaleIpPermissionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#StaleIpPermission", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#StaleSecurityGroup": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the security group.

", + "smithy.api#xmlName": "description" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

The name of the security group.

", + "smithy.api#xmlName": "groupName" + } + }, + "StaleIpPermissions": { + "target": "com.amazonaws.ec2#StaleIpPermissionSet", + "traits": { + "aws.protocols#ec2QueryName": "StaleIpPermissions", + "smithy.api#documentation": "

Information about the stale inbound rules in the security group.

", + "smithy.api#xmlName": "staleIpPermissions" + } + }, + "StaleIpPermissionsEgress": { + "target": "com.amazonaws.ec2#StaleIpPermissionSet", + "traits": { + "aws.protocols#ec2QueryName": "StaleIpPermissionsEgress", + "smithy.api#documentation": "

Information about the stale outbound rules in the security group.

", + "smithy.api#xmlName": "staleIpPermissionsEgress" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC for the security group.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a stale security group (a security group that contains stale rules).

" + } + }, + "com.amazonaws.ec2#StaleSecurityGroupSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#StaleSecurityGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#StartDeclarativePoliciesReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StartDeclarativePoliciesReportRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StartDeclarativePoliciesReportResult" + }, + "traits": { + "smithy.api#documentation": "

Generates an account status report. The report is generated asynchronously, and can\n take several hours to complete.

\n

The report provides the current status of all attributes supported by declarative\n policies for the accounts within the specified scope. The scope is determined by the\n specified TargetId, which can represent an individual account, or all the\n accounts that fall under the specified organizational unit (OU) or root (the entire\n Amazon Web Services Organization).

\n

The report is saved to your specified S3 bucket, using the following path structure\n (with the capitalized placeholders representing your specific values):

\n

\n s3://AMZN-S3-DEMO-BUCKET/YOUR-OPTIONAL-S3-PREFIX/ec2_TARGETID_REPORTID_YYYYMMDDTHHMMZ.csv\n

\n

\n Prerequisites for generating a report\n

\n
    \n
  • \n

    The StartDeclarativePoliciesReport API can only be called by the\n management account or delegated administrators for the organization.

    \n
  • \n
  • \n

    An S3 bucket must be available before generating the report (you can create a\n new one or use an existing one), it must be in the same Region where the report\n generation request is made, and it must have an appropriate bucket policy. For a\n sample S3 policy, see Sample Amazon S3 policy under Examples.

    \n
  • \n
  • \n

    Trusted access must be enabled for the service for which the declarative\n policy will enforce a baseline configuration. If you use the Amazon Web Services Organizations\n console, this is done automatically when you enable declarative policies. The\n API uses the following service principal to identify the EC2 service:\n ec2.amazonaws.com. For more information on how to enable\n trusted access with the Amazon Web Services CLI and Amazon Web Services SDKs, see Using\n Organizations with other Amazon Web Services services in the\n Amazon Web Services Organizations User Guide.

    \n
  • \n
  • \n

    Only one report per organization can be generated at a time. Attempting to\n generate a report while another is in progress will result in an error.

    \n
  • \n
\n

For more information, including the required IAM permissions to run this API, see\n Generating the account status report for declarative policies in the\n Amazon Web Services Organizations User Guide.

" + } + }, + "com.amazonaws.ec2#StartDeclarativePoliciesReportRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the S3 bucket where the report will be saved. The bucket must be in the\n same Region where the report generation request is made.

", + "smithy.api#required": {} + } + }, + "S3Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The prefix for your S3 object.

" + } + }, + "TargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The root ID, organizational unit ID, or account ID.

\n

Format:

\n
    \n
  • \n

    For root: r-ab12\n

    \n
  • \n
  • \n

    For OU: ou-ab12-cdef1234\n

    \n
  • \n
  • \n

    For account: 123456789012\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply.

", + "smithy.api#xmlName": "TagSpecification" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StartDeclarativePoliciesReportResult": { + "type": "structure", + "members": { + "ReportId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReportId", + "smithy.api#documentation": "

The ID of the report.

", + "smithy.api#xmlName": "reportId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#StartInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StartInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StartInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Starts an Amazon EBS-backed instance that you've previously stopped.

\n

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and\n started. When an instance is stopped, the compute resources are released and you are not\n billed for instance usage. However, your root partition Amazon EBS volume remains and\n continues to persist your data, and you are charged for Amazon EBS volume usage. You can\n restart your instance at any time. Every time you start your instance, Amazon EC2\n charges a one-minute minimum for instance usage, and thereafter charges per second for\n instance usage.

\n

Before stopping an instance, make sure it is in a state from which it can be\n restarted. Stopping an instance does not preserve data stored in RAM.

\n

Performing this operation on an instance that uses an instance store as its root\n device returns an error.

\n

If you attempt to start a T3 instance with host tenancy and the\n unlimited CPU credit option, the request fails. The\n unlimited CPU credit option is not supported on Dedicated Hosts. Before\n you start the instance, either change its CPU credit option to standard, or\n change its tenancy to default or dedicated.

\n

For more information, see Stop and start Amazon EC2\n instances in the Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To start a stopped EC2 instance", + "documentation": "This example starts the specified EC2 instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef0" + ] + }, + "output": { + "StartingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 0, + "Name": "pending" + }, + "PreviousState": { + "Code": 80, + "Name": "stopped" + } + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#StartInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "AdditionalInfo": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AdditionalInfo", + "smithy.api#documentation": "

Reserved.

", + "smithy.api#xmlName": "additionalInfo" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StartInstancesResult": { + "type": "structure", + "members": { + "StartingInstances": { + "target": "com.amazonaws.ec2#InstanceStateChangeList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

Information about the started instances.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisResult" + }, + "traits": { + "smithy.api#documentation": "

Starts analyzing the specified Network Access Scope.

" + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisRequest": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeId": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Network Access Scope.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, \n see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAccessScopeAnalysisResult": { + "type": "structure", + "members": { + "NetworkInsightsAccessScopeAnalysis": { + "target": "com.amazonaws.ec2#NetworkInsightsAccessScopeAnalysis", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAccessScopeAnalysis", + "smithy.api#documentation": "

The Network Access Scope analysis.

", + "smithy.api#xmlName": "networkInsightsAccessScopeAnalysis" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StartNetworkInsightsAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StartNetworkInsightsAnalysisResult" + }, + "traits": { + "smithy.api#documentation": "

Starts analyzing the specified path. If the path is reachable, the\n operation returns the shortest feasible path.

" + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAnalysisRequest": { + "type": "structure", + "members": { + "NetworkInsightsPathId": { + "target": "com.amazonaws.ec2#NetworkInsightsPathId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the path.

", + "smithy.api#required": {} + } + }, + "AdditionalAccounts": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

The member accounts that contain resources that the path can traverse.

", + "smithy.api#xmlName": "AdditionalAccount" + } + }, + "FilterInArns": { + "target": "com.amazonaws.ec2#ArnList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the resources that the path must traverse.

", + "smithy.api#xmlName": "FilterInArn" + } + }, + "FilterOutArns": { + "target": "com.amazonaws.ec2#ArnList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARN) of the resources that the path will ignore.

", + "smithy.api#xmlName": "FilterOutArn" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to apply.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, \n see How to ensure idempotency.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StartNetworkInsightsAnalysisResult": { + "type": "structure", + "members": { + "NetworkInsightsAnalysis": { + "target": "com.amazonaws.ec2#NetworkInsightsAnalysis", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInsightsAnalysis", + "smithy.api#documentation": "

Information about the network insights analysis.

", + "smithy.api#xmlName": "networkInsightsAnalysis" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerification": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationResult" + }, + "traits": { + "smithy.api#documentation": "

Initiates the verification process to prove that the service provider owns the private\n DNS name domain for the endpoint service.

\n

The service provider must successfully perform the verification before the consumer can use the name to access the service.

\n

Before the service provider runs this command, they must add a record to the DNS server.

" + } + }, + "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the endpoint service.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StartVpcEndpointServicePrivateDnsVerificationResult": { + "type": "structure", + "members": { + "ReturnValue": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#State": { + "type": "enum", + "members": { + "PendingAcceptance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PendingAcceptance" + } + }, + "Pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending" + } + }, + "Available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Available" + } + }, + "Deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleting" + } + }, + "Deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deleted" + } + }, + "Rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Rejected" + } + }, + "Failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "Expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expired" + } + }, + "Partial": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Partial" + } + } + } + }, + "com.amazonaws.ec2#StateReason": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The reason code for the state change.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The message for the state change.

\n
    \n
  • \n

    \n Server.InsufficientInstanceCapacity: There was insufficient\n capacity available to satisfy the launch request.

    \n
  • \n
  • \n

    \n Server.InternalError: An internal error caused the instance to\n terminate during launch.

    \n
  • \n
  • \n

    \n Server.ScheduledStop: The instance was stopped due to a scheduled\n retirement.

    \n
  • \n
  • \n

    \n Server.SpotInstanceShutdown: The instance was stopped because the\n number of Spot requests with a maximum price equal to or higher than the Spot\n price exceeded available capacity or because of an increase in the Spot\n price.

    \n
  • \n
  • \n

    \n Server.SpotInstanceTermination: The instance was terminated\n because the number of Spot requests with a maximum price equal to or higher than\n the Spot price exceeded available capacity or because of an increase in the Spot\n price.

    \n
  • \n
  • \n

    \n Client.InstanceInitiatedShutdown: The instance was shut down\n from the operating system of the instance.

    \n
  • \n
  • \n

    \n Client.InstanceTerminated: The instance was terminated or\n rebooted during AMI creation.

    \n
  • \n
  • \n

    \n Client.InternalError: A client error caused the instance to\n terminate during launch.

    \n
  • \n
  • \n

    \n Client.InvalidSnapshot.NotFound: The specified snapshot was not\n found.

    \n
  • \n
  • \n

    \n Client.UserInitiatedHibernate: Hibernation was initiated on the\n instance.

    \n
  • \n
  • \n

    \n Client.UserInitiatedShutdown: The instance was shut down using\n the Amazon EC2 API.

    \n
  • \n
  • \n

    \n Client.VolumeLimitExceeded: The limit on the number of EBS\n volumes or total storage was exceeded. Decrease usage or request an increase in\n your account limits.

    \n
  • \n
", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a state change.

" + } + }, + "com.amazonaws.ec2#StaticSourcesSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#StatisticType": { + "type": "enum", + "members": { + "p50": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "p50" + } + } + } + }, + "com.amazonaws.ec2#Status": { + "type": "enum", + "members": { + "moveInProgress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MoveInProgress" + } + }, + "inVpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InVpc" + } + }, + "inClassic": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InClassic" + } + } + } + }, + "com.amazonaws.ec2#StatusName": { + "type": "enum", + "members": { + "reachability": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reachability" + } + } + } + }, + "com.amazonaws.ec2#StatusType": { + "type": "enum", + "members": { + "passed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "passed" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "insufficient_data": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + }, + "initializing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initializing" + } + } + } + }, + "com.amazonaws.ec2#StopInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#StopInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#StopInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Stops an Amazon EBS-backed instance. You can restart your instance at any time using\n the StartInstances API. For more information, see Stop and start Amazon EC2\n instances in the Amazon EC2 User Guide.

\n

When you stop or hibernate an instance, we shut it down. By default, this includes a\n graceful operating system (OS) shutdown. To bypass the graceful shutdown, use the\n skipOsShutdown parameter; however, this might risk data\n integrity.

\n

You can use the StopInstances operation together with the Hibernate\n parameter to hibernate an instance if the instance is enabled for\n hibernation and meets the hibernation\n prerequisites. Stopping an instance doesn't preserve data stored in RAM,\n while hibernation does. If hibernation fails, a normal shutdown occurs. For more\n information, see Hibernate your Amazon EC2\n instance in the Amazon EC2 User Guide.

\n

If your instance appears stuck in the stopping state, there might be an\n issue with the underlying host computer. You can use the StopInstances operation\n together with the Force parameter to force stop your instance. For more information, see\n Troubleshoot\n Amazon EC2 instance stop issues in the\n Amazon EC2 User Guide.

\n

Stopping and hibernating an instance differs from rebooting or terminating it. For\n example, a stopped or hibernated instance retains its root volume and any data volumes,\n unlike terminated instances where these volumes are automatically deleted. For more\n information about the differences between stopping, hibernating, rebooting, and\n terminating instances, see Amazon EC2\n instance state changes in the Amazon EC2 User Guide.

\n

We don't charge for instance usage or data transfer fees when an instance is stopped.\n However, the root volume and any data volumes remain and continue to persist your data,\n and you're charged for volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, followed by per-second\n billing.

\n

You can't stop or hibernate instance store-backed instances.

", + "smithy.api#examples": [ + { + "title": "To stop a running EC2 instance", + "documentation": "This example stops the specified EC2 instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef0" + ] + }, + "output": { + "StoppingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 64, + "Name": "stopping" + }, + "PreviousState": { + "Code": 16, + "Name": "running" + } + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#StopInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "Hibernate": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Hibernates the instance if the instance was enabled for hibernation at launch. If the\n instance cannot hibernate successfully, a normal shutdown occurs. For more information,\n see Hibernate\n your Amazon EC2 instance in the\n Amazon EC2 User Guide.

\n

Default: false\n

" + } + }, + "SkipOsShutdown": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to bypass the graceful OS shutdown process when the instance is\n stopped.

\n \n

Bypassing the graceful OS shutdown might result in data loss or corruption (for\n example, memory contents not flushed to disk or loss of in-flight IOs) or skipped\n shutdown scripts.

\n
\n

Default: false\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Force", + "smithy.api#documentation": "

Forces the instance to stop. The instance will first attempt a graceful shutdown,\n which includes flushing file system caches and metadata. If the graceful shutdown fails\n to complete within the timeout period, the instance shuts down forcibly without flushing\n the file system caches and metadata.

\n

After using this option, you must perform file system check and repair procedures.\n This option is not recommended for Windows instances. For more information, see Troubleshoot\n Amazon EC2 instance stop issues in the\n Amazon EC2 User Guide.

\n

Default: false\n

", + "smithy.api#xmlName": "force" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#StopInstancesResult": { + "type": "structure", + "members": { + "StoppingInstances": { + "target": "com.amazonaws.ec2#InstanceStateChangeList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

Information about the stopped instances.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#Storage": { + "type": "structure", + "members": { + "S3": { + "target": "com.amazonaws.ec2#S3Storage", + "traits": { + "smithy.api#documentation": "

An Amazon S3 storage location.

", + "smithy.api#xmlName": "S3" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the storage location for an instance store-backed AMI.

" + } + }, + "com.amazonaws.ec2#StorageLocation": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket.

" + } + }, + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a storage location in Amazon S3.

" + } + }, + "com.amazonaws.ec2#StorageTier": { + "type": "enum", + "members": { + "archive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "archive" + } + }, + "standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + } + } + }, + "com.amazonaws.ec2#StoreImageTaskResult": { + "type": "structure", + "members": { + "AmiId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AmiId", + "smithy.api#documentation": "

The ID of the AMI that is being stored.

", + "smithy.api#xmlName": "amiId" + } + }, + "TaskStartTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "TaskStartTime", + "smithy.api#documentation": "

The time the task started.

", + "smithy.api#xmlName": "taskStartTime" + } + }, + "Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Bucket", + "smithy.api#documentation": "

The name of the Amazon S3 bucket that contains the stored AMI object.

", + "smithy.api#xmlName": "bucket" + } + }, + "S3objectKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3objectKey", + "smithy.api#documentation": "

The name of the stored AMI object in the bucket.

", + "smithy.api#xmlName": "s3objectKey" + } + }, + "ProgressPercentage": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ProgressPercentage", + "smithy.api#documentation": "

The progress of the task as a percentage.

", + "smithy.api#xmlName": "progressPercentage" + } + }, + "StoreTaskState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StoreTaskState", + "smithy.api#documentation": "

The state of the store task (InProgress, Completed, or\n Failed).

", + "smithy.api#xmlName": "storeTaskState" + } + }, + "StoreTaskFailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StoreTaskFailureReason", + "smithy.api#documentation": "

If the tasks fails, the reason for the failure is returned. If the task succeeds,\n null is returned.

", + "smithy.api#xmlName": "storeTaskFailureReason" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information about the AMI store task, including the progress of the task.

" + } + }, + "com.amazonaws.ec2#StoreImageTaskResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#StoreImageTaskResult", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#String": { + "type": "string" + }, + "com.amazonaws.ec2#StringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Subnet": { + "type": "structure", + "members": { + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The AZ ID of the subnet.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "EnableLniAtDeviceIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EnableLniAtDeviceIndex", + "smithy.api#documentation": "

\n Indicates the device position for local network interfaces in this subnet. For example, \n 1 indicates local network interfaces in this subnet are the secondary \n network interface (eth1). \n

", + "smithy.api#xmlName": "enableLniAtDeviceIndex" + } + }, + "MapCustomerOwnedIpOnLaunch": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "MapCustomerOwnedIpOnLaunch", + "smithy.api#documentation": "

Indicates whether a network interface created in this subnet (including a network\n interface created by RunInstances) receives a customer-owned IPv4 address.

", + "smithy.api#xmlName": "mapCustomerOwnedIpOnLaunch" + } + }, + "CustomerOwnedIpv4Pool": { + "target": "com.amazonaws.ec2#CoipPoolId", + "traits": { + "aws.protocols#ec2QueryName": "CustomerOwnedIpv4Pool", + "smithy.api#documentation": "

The customer-owned IPv4 address pool associated with the subnet.

", + "smithy.api#xmlName": "customerOwnedIpv4Pool" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the subnet.

", + "smithy.api#xmlName": "ownerId" + } + }, + "AssignIpv6AddressOnCreation": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssignIpv6AddressOnCreation", + "smithy.api#documentation": "

Indicates whether a network interface created in this subnet (including a network\n interface created by RunInstances) receives an IPv6 address.

", + "smithy.api#xmlName": "assignIpv6AddressOnCreation" + } + }, + "Ipv6CidrBlockAssociationSet": { + "target": "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociationSet", + "smithy.api#documentation": "

Information about the IPv6 CIDR blocks associated with the subnet.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the subnet.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SubnetArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the subnet.

", + "smithy.api#xmlName": "subnetArn" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "EnableDns64": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableDns64", + "smithy.api#documentation": "

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet \n should return synthetic IPv6 addresses for IPv4-only destinations.

", + "smithy.api#xmlName": "enableDns64" + } + }, + "Ipv6Native": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Native", + "smithy.api#documentation": "

Indicates whether this is an IPv6 only subnet.

", + "smithy.api#xmlName": "ipv6Native" + } + }, + "PrivateDnsNameOptionsOnLaunch": { + "target": "com.amazonaws.ec2#PrivateDnsNameOptionsOnLaunch", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsNameOptionsOnLaunch", + "smithy.api#documentation": "

The type of hostnames to assign to instances in the subnet at launch. An instance hostname\n is based on the IPv4 address or ID of the instance.

", + "smithy.api#xmlName": "privateDnsNameOptionsOnLaunch" + } + }, + "BlockPublicAccessStates": { + "target": "com.amazonaws.ec2#BlockPublicAccessStates", + "traits": { + "aws.protocols#ec2QueryName": "BlockPublicAccessStates", + "smithy.api#documentation": "

The state of VPC Block Public Access (BPA).

", + "smithy.api#xmlName": "blockPublicAccessStates" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

Indicates if this is a subnet used with Amazon Elastic VMware Service (EVS).\n Possible values are Elastic VMware Service or no value. For more\n information about Amazon EVS, see \n Amazon Elastic VMware Service\n API Reference\n .

", + "smithy.api#xmlName": "type" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "State": { + "target": "com.amazonaws.ec2#SubnetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the subnet.

\n
    \n
  • \n

    \n failed: The underlying infrastructure to support the subnet failed to provision\n as expected.

    \n
  • \n
  • \n

    \n failed-insufficient-capacity: The underlying infrastructure to support the subnet\n failed to provision due to a shortage of EC2 instance capacity.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC the subnet is in.

", + "smithy.api#xmlName": "vpcId" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block assigned to the subnet.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "AvailableIpAddressCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AvailableIpAddressCount", + "smithy.api#documentation": "

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses for any\n\t\t\tstopped instances are considered unavailable.

", + "smithy.api#xmlName": "availableIpAddressCount" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the subnet.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "DefaultForAz": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DefaultForAz", + "smithy.api#documentation": "

Indicates whether this is the default subnet for the Availability Zone.

", + "smithy.api#xmlName": "defaultForAz" + } + }, + "MapPublicIpOnLaunch": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "MapPublicIpOnLaunch", + "smithy.api#documentation": "

Indicates whether instances launched in this subnet receive a public IPv4 address.

\n

Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses \nassociated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.

", + "smithy.api#xmlName": "mapPublicIpOnLaunch" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a subnet.

" + } + }, + "com.amazonaws.ec2#SubnetAssociation": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayMulitcastDomainAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the subnet association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the subnet association with the transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#SubnetAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetCidrAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#SubnetCidrBlockState": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#SubnetCidrBlockStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of a CIDR block.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A message about the status of the CIDR block, if applicable.

", + "smithy.api#xmlName": "statusMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a CIDR block.

" + } + }, + "com.amazonaws.ec2#SubnetCidrBlockStateCode": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "failing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#SubnetCidrReservation": { + "type": "structure", + "members": { + "SubnetCidrReservationId": { + "target": "com.amazonaws.ec2#SubnetCidrReservationId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetCidrReservationId", + "smithy.api#documentation": "

The ID of the subnet CIDR reservation.

", + "smithy.api#xmlName": "subnetCidrReservationId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR that has been reserved.

", + "smithy.api#xmlName": "cidr" + } + }, + "ReservationType": { + "target": "com.amazonaws.ec2#SubnetCidrReservationType", + "traits": { + "aws.protocols#ec2QueryName": "ReservationType", + "smithy.api#documentation": "

The type of reservation.

", + "smithy.api#xmlName": "reservationType" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the account that owns the subnet CIDR reservation.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description assigned to the subnet CIDR reservation.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the subnet CIDR reservation.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a subnet CIDR reservation.

" + } + }, + "com.amazonaws.ec2#SubnetCidrReservationId": { + "type": "string" + }, + "com.amazonaws.ec2#SubnetCidrReservationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetCidrReservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetCidrReservationType": { + "type": "enum", + "members": { + "prefix": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prefix" + } + }, + "explicit": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "explicit" + } + } + } + }, + "com.amazonaws.ec2#SubnetConfiguration": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#documentation": "

The ID of the subnet.

" + } + }, + "Ipv4": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 address to assign to the endpoint network interface in the subnet. You must provide \n an IPv4 address if the VPC endpoint supports IPv4.

\n

If you specify an IPv4 address when modifying a VPC endpoint, we replace the existing \n endpoint network interface with a new endpoint network interface with this IP address. \n This process temporarily disconnects the subnet and the VPC endpoint.

" + } + }, + "Ipv6": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 address to assign to the endpoint network interface in the subnet. You must provide \n an IPv6 address if the VPC endpoint supports IPv6.

\n

If you specify an IPv6 address when modifying a VPC endpoint, we replace the existing \n endpoint network interface with a new endpoint network interface with this IP address. \n This process temporarily disconnects the subnet and the VPC endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of a subnet for a VPC endpoint.

" + } + }, + "com.amazonaws.ec2#SubnetConfigurationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetId": { + "type": "string" + }, + "com.amazonaws.ec2#SubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "AssociatedSubnetId" + } + } + }, + "com.amazonaws.ec2#SubnetIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "SubnetId" + } + } + }, + "com.amazonaws.ec2#SubnetIpPrefixes": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "IpPrefixes": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "IpPrefixSet", + "smithy.api#documentation": "

Array of SubnetIpPrefixes objects.

", + "smithy.api#xmlName": "ipPrefixSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Prefixes of the subnet IP.

" + } + }, + "com.amazonaws.ec2#SubnetIpPrefixesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetIpPrefixes", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#SubnetCidrAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "associationId" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block.

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + }, + "Ipv6CidrBlockState": { + "target": "com.amazonaws.ec2#SubnetCidrBlockState", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockState", + "smithy.api#documentation": "

The state of the CIDR block.

", + "smithy.api#xmlName": "ipv6CidrBlockState" + } + }, + "Ipv6AddressAttribute": { + "target": "com.amazonaws.ec2#Ipv6AddressAttribute", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressAttribute", + "smithy.api#documentation": "

Public IPv6 addresses are those advertised on the internet from Amazon Web Services. Private IP addresses are not and cannot be advertised on the internet from Amazon Web Services.

", + "smithy.api#xmlName": "ipv6AddressAttribute" + } + }, + "IpSource": { + "target": "com.amazonaws.ec2#IpSource", + "traits": { + "aws.protocols#ec2QueryName": "IpSource", + "smithy.api#documentation": "

The source that allocated the IP address space. byoip or amazon indicates public IP address space allocated by Amazon or space that you have allocated with Bring your own IP (BYOIP). none indicates private space.

", + "smithy.api#xmlName": "ipSource" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a subnet and an IPv6 CIDR block.

" + } + }, + "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetIpv6CidrBlockAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Subnet", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SubnetState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "failed_insufficient_capacity": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed-insufficient-capacity" + } + } + } + }, + "com.amazonaws.ec2#Subscription": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

The Region or Availability Zone that's the source for the subscription. For example, us-east-1.

", + "smithy.api#xmlName": "source" + } + }, + "Destination": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Destination", + "smithy.api#documentation": "

The Region or Availability Zone that's the target for the subscription. For example, eu-west-1.

", + "smithy.api#xmlName": "destination" + } + }, + "Metric": { + "target": "com.amazonaws.ec2#MetricType", + "traits": { + "aws.protocols#ec2QueryName": "Metric", + "smithy.api#documentation": "

The metric used for the subscription.

", + "smithy.api#xmlName": "metric" + } + }, + "Statistic": { + "target": "com.amazonaws.ec2#StatisticType", + "traits": { + "aws.protocols#ec2QueryName": "Statistic", + "smithy.api#documentation": "

The statistic used for the subscription.

", + "smithy.api#xmlName": "statistic" + } + }, + "Period": { + "target": "com.amazonaws.ec2#PeriodType", + "traits": { + "aws.protocols#ec2QueryName": "Period", + "smithy.api#documentation": "

The data aggregation time for the subscription.

", + "smithy.api#xmlName": "period" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Infrastructure Performance subscription.

" + } + }, + "com.amazonaws.ec2#SubscriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Subscription", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SuccessfulAssociationResponseObject": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckId", + "smithy.api#documentation": "

The ID of the application status check.

", + "smithy.api#xmlName": "applicationStatusCheckId" + } + }, + "AssociationType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationType", + "smithy.api#documentation": "

The type of association. Valid values: EC2TAG and INSTANCE_ID.

", + "smithy.api#xmlName": "associationType" + } + }, + "AssociationValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationValue", + "smithy.api#documentation": "

The association value. For EC2TAG, the value is formatted as key=value. For INSTANCE_ID, the value is the instance ID.

", + "smithy.api#xmlName": "associationValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a successful application status check association.

" + } + }, + "com.amazonaws.ec2#SuccessfulAssociationResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SuccessfulAssociationResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SuccessfulInstanceCreditSpecificationItem": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the burstable performance instance whose credit option for CPU usage was\n successfully modified.

" + } + }, + "com.amazonaws.ec2#SuccessfulInstanceCreditSpecificationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SuccessfulInstanceCreditSpecificationItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SuccessfulQueuedPurchaseDeletion": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ReservedInstancesId", + "smithy.api#documentation": "

The ID of the Reserved Instance.

", + "smithy.api#xmlName": "reservedInstancesId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Reserved Instance whose queued purchase was successfully deleted.

" + } + }, + "com.amazonaws.ec2#SuccessfulQueuedPurchaseDeletionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SuccessfulQueuedPurchaseDeletion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SuccessfulSuppressionResponseObject": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "SuppressAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SuppressAt", + "smithy.api#documentation": "

The date and time when suppression started.

", + "smithy.api#xmlName": "suppressAt" + } + }, + "ResumeAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ResumeAt", + "smithy.api#documentation": "

The date and time when suppression ends and health checks resume.

", + "smithy.api#xmlName": "resumeAt" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a successful application status check suppression.

" + } + }, + "com.amazonaws.ec2#SuccessfulSuppressionResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SuccessfulSuppressionResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SummaryStatus": { + "type": "enum", + "members": { + "ok": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ok" + } + }, + "impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + }, + "insufficient_data": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + }, + "not_applicable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-applicable" + } + }, + "initializing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initializing" + } + } + } + }, + "com.amazonaws.ec2#SupportabilityInstanceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#SupportabilityMarketType": { + "type": "enum", + "members": { + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + }, + "SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + } + } + }, + "com.amazonaws.ec2#SupportabilityScore": { + "type": "enum", + "members": { + "HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "high" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "medium" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "low" + } + }, + "UNSUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + } + } + }, + "com.amazonaws.ec2#SupportedAdditionalProcessorFeature": { + "type": "enum", + "members": { + "AMD_SEV_SNP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amd-sev-snp" + } + }, + "NESTED_VIRTUALIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nested-virtualization" + } + } + } + }, + "com.amazonaws.ec2#SupportedAdditionalProcessorFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SupportedAdditionalProcessorFeature", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SupportedInRegion": { + "type": "boolean" + }, + "com.amazonaws.ec2#SupportedInstanceTypeRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeItemRequest", + "traits": { + "smithy.api#xmlName": "Item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#SupportedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#SupportedIpAddressTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ServiceConnectivityType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } + } + }, + "com.amazonaws.ec2#SupportedRegionDetail": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Region", + "smithy.api#documentation": "

The Region code.

", + "smithy.api#xmlName": "region" + } + }, + "ServiceState": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceState", + "smithy.api#documentation": "

The service state. The possible values are Pending, Available, \n Deleting, Deleted, Failed, and Closed.

", + "smithy.api#xmlName": "serviceState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a supported Region.

" + } + }, + "com.amazonaws.ec2#SupportedRegionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SupportedRegionDetail", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The key of the tag.

\n

Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. \n May not begin with aws:.

", + "smithy.api#xmlName": "key" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The value of the tag.

\n

Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a tag.

" + } + }, + "com.amazonaws.ec2#TagDescription": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Key", + "smithy.api#documentation": "

The tag key.

", + "smithy.api#xmlName": "key" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#ResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type.

", + "smithy.api#xmlName": "resourceType" + } + }, + "Value": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Value", + "smithy.api#documentation": "

The tag value.

", + "smithy.api#xmlName": "value" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a tag.

" + } + }, + "com.amazonaws.ec2#TagDescriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TagDescription", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TagFieldSpecificationListRequest": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TagFieldSpecificationRequest", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.ec2#TagFieldSpecificationListResponse": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TagFieldSpecificationResponse", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.ec2#TagFieldSpecificationRequest": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#TaggableResourceType", + "traits": { + "smithy.api#documentation": "

The resource type for the tag keys associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

" + } + }, + "TagKeys": { + "target": "com.amazonaws.ec2#TagKeyList", + "traits": { + "smithy.api#documentation": "

The tag keys on your tagged resources to be displayed by the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

", + "smithy.api#xmlName": "TagKey" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single resource's tag configuration associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

" + } + }, + "com.amazonaws.ec2#TagFieldSpecificationResponse": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#TaggableResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type for the tag keys associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

", + "smithy.api#xmlName": "resourceType" + } + }, + "TagKeys": { + "target": "com.amazonaws.ec2#TagKeyList", + "traits": { + "aws.protocols#ec2QueryName": "TagKeySet", + "smithy.api#documentation": "

The tag keys on your tagged resources to be displayed by the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

", + "smithy.api#xmlName": "tagKeySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single resource's tag configuration associated with the Flow Logs Amazon EC2 Tags feature fields in your custom log format.

" + } + }, + "com.amazonaws.ec2#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.ec2#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TagKey", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.ec2#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Tag", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TagSpecification": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.ec2#ResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource to tag on creation.

", + "smithy.api#xmlName": "resourceType" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "smithy.api#documentation": "

The tags to apply to the resource.

", + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tags to apply to a resource when the resource is being created. When you specify a tag, you must \n specify the resource type to tag, otherwise the request will fail.

\n \n

The Valid Values lists all the resource types that can be tagged.\n However, the action you're using might not support tagging all of these resource types.\n If you try to tag a resource type that is unsupported for the action you're using,\n you'll get an error.

\n
" + } + }, + "com.amazonaws.ec2#TagSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TagSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TaggableResourceId": { + "type": "string" + }, + "com.amazonaws.ec2#TaggableResourceType": { + "type": "enum", + "members": { + "network_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-interface" + } + }, + "instance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + }, + "auto_scaling_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto-scaling-group" + } + } + } + }, + "com.amazonaws.ec2#TargetCapacitySpecification": { + "type": "structure", + "members": { + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalTargetCapacity", + "smithy.api#documentation": "

The number of units to request, filled the default target capacity type.

", + "smithy.api#xmlName": "totalTargetCapacity" + } + }, + "OnDemandTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OnDemandTargetCapacity", + "smithy.api#documentation": "

The number of On-Demand units to request. If you specify a target capacity for Spot units, you cannot specify a target capacity for On-Demand units.

", + "smithy.api#xmlName": "onDemandTargetCapacity" + } + }, + "SpotTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SpotTargetCapacity", + "smithy.api#documentation": "

The maximum number of Spot units to launch. If you specify a target capacity for On-Demand units, you cannot specify a target capacity for Spot units.

", + "smithy.api#xmlName": "spotTargetCapacity" + } + }, + "DefaultTargetCapacityType": { + "target": "com.amazonaws.ec2#DefaultTargetCapacityType", + "traits": { + "aws.protocols#ec2QueryName": "DefaultTargetCapacityType", + "smithy.api#documentation": "

The default target capacity type.

", + "smithy.api#xmlName": "defaultTargetCapacityType" + } + }, + "TargetCapacityUnitType": { + "target": "com.amazonaws.ec2#TargetCapacityUnitType", + "traits": { + "aws.protocols#ec2QueryName": "TargetCapacityUnitType", + "smithy.api#documentation": "

The unit for the target capacity.

", + "smithy.api#xmlName": "targetCapacityUnitType" + } + } + }, + "traits": { + "smithy.api#documentation": "

The number of units to request. You can choose to set the target capacity in terms of\n instances or a performance characteristic that is important to your application workload,\n such as vCPUs, memory, or I/O. If the request type is maintain, you can\n specify a target capacity of 0 and add capacity later.

\n

You can use the On-Demand Instance MaxTotalPrice parameter, the Spot Instance\n MaxTotalPrice, or both to ensure that your fleet cost does not exceed your\n budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, EC2 Fleet\n will launch instances until it reaches the maximum amount that you're willing to pay. When\n the maximum amount you're willing to pay is reached, the fleet stops launching instances\n even if it hasn’t met the target capacity. The MaxTotalPrice parameters are\n located in OnDemandOptions \n and SpotOptions.

" + } + }, + "com.amazonaws.ec2#TargetCapacitySpecificationRequest": { + "type": "structure", + "members": { + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of units to request, filled using the default target capacity type.

", + "smithy.api#required": {} + } + }, + "OnDemandTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of On-Demand units to request.

" + } + }, + "SpotTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of Spot units to request.

" + } + }, + "DefaultTargetCapacityType": { + "target": "com.amazonaws.ec2#DefaultTargetCapacityType", + "traits": { + "smithy.api#documentation": "

The default target capacity type.

" + } + }, + "TargetCapacityUnitType": { + "target": "com.amazonaws.ec2#TargetCapacityUnitType", + "traits": { + "smithy.api#documentation": "

The unit for the target capacity. You can specify this parameter only when using\n attributed-based instance type selection.

\n

Default: units (the number of instances)

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The number of units to request. You can choose to set the target capacity as the number of \n instances. Or you can set the target capacity to a performance characteristic that is important to your application workload,\n such as vCPUs, memory, or I/O. If the request type is maintain, you can\n specify a target capacity of 0 and add capacity later.

\n

You can use the On-Demand Instance MaxTotalPrice parameter, the Spot Instance\n MaxTotalPrice parameter, or both parameters to ensure that your fleet cost\n does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances\n in your request, EC2 Fleet will launch instances until it reaches the maximum amount that you're\n willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops\n launching instances even if it hasn't met the target capacity. The\n MaxTotalPrice parameters are located in OnDemandOptionsRequest \n and SpotOptionsRequest.

" + } + }, + "com.amazonaws.ec2#TargetCapacityUnitType": { + "type": "enum", + "members": { + "VCPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vcpu" + } + }, + "MEMORY_MIB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "memory-mib" + } + }, + "UNITS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "units" + } + } + } + }, + "com.amazonaws.ec2#TargetConfiguration": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

The number of instances the Convertible Reserved Instance offering can be applied to. This\n parameter is reserved and cannot be specified in a request

", + "smithy.api#xmlName": "instanceCount" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OfferingId", + "smithy.api#documentation": "

The ID of the Convertible Reserved Instance offering.

", + "smithy.api#xmlName": "offeringId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Convertible Reserved Instance offering.

" + } + }, + "com.amazonaws.ec2#TargetConfigurationRequest": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances the Convertible Reserved Instance offering can be applied to. This\n parameter is reserved and cannot be specified in a request

" + } + }, + "OfferingId": { + "target": "com.amazonaws.ec2#ReservedInstancesOfferingId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Convertible Reserved Instance offering ID.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the target configuration.

" + } + }, + "com.amazonaws.ec2#TargetConfigurationRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TargetConfigurationRequest", + "traits": { + "smithy.api#xmlName": "TargetConfigurationRequest" + } + } + }, + "com.amazonaws.ec2#TargetGroup": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Arn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target group.

", + "smithy.api#xmlName": "arn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load balancer target group.

" + } + }, + "com.amazonaws.ec2#TargetGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TargetGroup", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ec2#TargetGroupsConfig": { + "type": "structure", + "members": { + "TargetGroups": { + "target": "com.amazonaws.ec2#TargetGroups", + "traits": { + "aws.protocols#ec2QueryName": "TargetGroups", + "smithy.api#documentation": "

One or more target groups.

", + "smithy.api#xmlName": "targetGroups" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the target groups to attach to a Spot Fleet. Spot Fleet registers the\n running Spot Instances with these target groups.

" + } + }, + "com.amazonaws.ec2#TargetNetwork": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "associationId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC in which the target network (subnet) is located.

", + "smithy.api#xmlName": "vpcId" + } + }, + "TargetNetworkId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TargetNetworkId", + "smithy.api#documentation": "

The ID of the subnet specified as the target network.

", + "smithy.api#xmlName": "targetNetworkId" + } + }, + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint with which the target network is associated.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Status": { + "target": "com.amazonaws.ec2#AssociationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The current state of the target network association.

", + "smithy.api#xmlName": "status" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroups", + "smithy.api#documentation": "

The IDs of the security groups applied to the target network association.

", + "smithy.api#xmlName": "securityGroups" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneSet", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneSet", + "smithy.api#documentation": "

The Availability Zone names for the target network association, if the Client VPN endpoint uses a Transit Gateway.

", + "smithy.api#xmlName": "availabilityZoneSet" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneIdSet", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneIdSet", + "smithy.api#documentation": "

The Availability Zone IDs for the target network association, if the Client VPN endpoint uses a Transit Gateway.

", + "smithy.api#xmlName": "availabilityZoneIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a target network associated with a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#TargetNetworkSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TargetNetwork", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TargetReservationValue": { + "type": "structure", + "members": { + "ReservationValue": { + "target": "com.amazonaws.ec2#ReservationValue", + "traits": { + "aws.protocols#ec2QueryName": "ReservationValue", + "smithy.api#documentation": "

The total value of the Convertible Reserved Instances that make up the exchange. This is\n the sum of the list value, remaining upfront price, and additional upfront cost of the\n exchange.

", + "smithy.api#xmlName": "reservationValue" + } + }, + "TargetConfiguration": { + "target": "com.amazonaws.ec2#TargetConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "TargetConfiguration", + "smithy.api#documentation": "

The configuration of the Convertible Reserved Instances that make up the exchange.

", + "smithy.api#xmlName": "targetConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "

The total value of the new Convertible Reserved Instances.

" + } + }, + "com.amazonaws.ec2#TargetReservationValueSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TargetReservationValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TargetStorageTier": { + "type": "enum", + "members": { + "archive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "archive" + } + } + } + }, + "com.amazonaws.ec2#TelemetryStatus": { + "type": "enum", + "members": { + "UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UP" + } + }, + "DOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOWN" + } + } + } + }, + "com.amazonaws.ec2#Tenancy": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "dedicated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + }, + "host": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + } + } + }, + "com.amazonaws.ec2#TerminateClientVpnConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#TerminateClientVpnConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#TerminateClientVpnConnectionsResult" + }, + "traits": { + "smithy.api#documentation": "

Terminates active Client VPN endpoint connections. This action can be used to terminate a specific client connection, or up to five connections established by a specific user.

" + } + }, + "com.amazonaws.ec2#TerminateClientVpnConnectionsRequest": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Client VPN endpoint to which the client is connected.

", + "smithy.api#required": {} + } + }, + "ConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the client connection to be terminated.

" + } + }, + "Username": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the user who initiated the connection. Use this option to terminate all active connections for \n\t\t\tthe specified user. This option can only be used if the user has established up to five connections.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#TerminateClientVpnConnectionsResult": { + "type": "structure", + "members": { + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "Username": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Username", + "smithy.api#documentation": "

The user who established the terminated client connections.

", + "smithy.api#xmlName": "username" + } + }, + "ConnectionStatuses": { + "target": "com.amazonaws.ec2#TerminateConnectionStatusSet", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionStatuses", + "smithy.api#documentation": "

The current state of the client connections.

", + "smithy.api#xmlName": "connectionStatuses" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#TerminateConnectionStatus": { + "type": "structure", + "members": { + "ConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ConnectionId", + "smithy.api#documentation": "

The ID of the client connection.

", + "smithy.api#xmlName": "connectionId" + } + }, + "PreviousStatus": { + "target": "com.amazonaws.ec2#ClientVpnConnectionStatus", + "traits": { + "aws.protocols#ec2QueryName": "PreviousStatus", + "smithy.api#documentation": "

The state of the client connection.

", + "smithy.api#xmlName": "previousStatus" + } + }, + "CurrentStatus": { + "target": "com.amazonaws.ec2#ClientVpnConnectionStatus", + "traits": { + "aws.protocols#ec2QueryName": "CurrentStatus", + "smithy.api#documentation": "

A message about the status of the client connection, if applicable.

", + "smithy.api#xmlName": "currentStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a terminated Client VPN endpoint client connection.

" + } + }, + "com.amazonaws.ec2#TerminateConnectionStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TerminateConnectionStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TerminateInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#TerminateInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#TerminateInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Terminates (deletes) the specified instances. This operation is idempotent; if you\n terminate an instance more than once, each call succeeds.

\n \n

\n Terminating an instance is permanent and irreversible.\n

\n

After you terminate an instance, you can no longer connect to it, and it can't be recovered. \n All attached Amazon EBS volumes that are configured to be deleted on termination are also permanently \n deleted and can't be recovered. All data stored on instance store volumes is permanently lost. \n For more information, see \n How instance termination works.

\n

Before you terminate an instance, ensure that you have backed up all data that you need to \n retain after the termination to persistent storage.

\n
\n

If you specify multiple instances and the request fails (for example, because of a\n single incorrect instance ID), none of the instances are terminated.

\n

If you terminate multiple instances across multiple Availability Zones, and one or\n more of the specified instances are enabled for termination protection, the request\n fails with the following results:

\n
    \n
  • \n

    The specified instances that are in the same Availability Zone as the\n protected instance are not terminated.

    \n
  • \n
  • \n

    The specified instances that are in different Availability Zones, where no\n other specified instances are protected, are successfully terminated.

    \n
  • \n
\n

For example, say you have the following instances:

\n
    \n
  • \n

    Instance A: us-east-1a; Not protected

    \n
  • \n
  • \n

    Instance B: us-east-1a; Not protected

    \n
  • \n
  • \n

    Instance C: us-east-1b; Protected

    \n
  • \n
  • \n

    Instance D: us-east-1b; not protected

    \n
  • \n
\n

If you attempt to terminate all of these instances in the same request, the request\n reports failure with the following results:

\n
    \n
  • \n

    Instance A and Instance B are successfully terminated because none of the\n specified instances in us-east-1a are enabled for termination\n protection.

    \n
  • \n
  • \n

    Instance C and Instance D fail to terminate because at least one of the\n specified instances in us-east-1b (Instance C) is enabled for\n termination protection.

    \n
  • \n
\n

Terminated instances remain visible after termination (for approximately one\n hour).

\n

By default, Amazon EC2 deletes all EBS volumes that were attached when the instance\n launched. Volumes attached after instance launch continue running.

\n

By default, the TerminateInstances operation includes a graceful operating system (OS)\n shutdown. To bypass the graceful shutdown, use the skipOsShutdown\n parameter; however, this might risk data integrity.

\n

You can stop, start, and terminate EBS-backed instances. You can only terminate\n instance store-backed instances. What happens to an instance differs if you stop or\n terminate it. For example, when you stop an instance, the root device and any other\n devices attached to the instance persist. When you terminate an instance, any attached\n EBS volumes with the DeleteOnTermination block device mapping parameter set\n to true are automatically deleted. For more information about the\n differences between stopping and terminating instances, see Amazon EC2\n instance state changes in the Amazon EC2 User Guide.

\n

When you terminate an instance, we attempt to terminate it forcibly after a short\n while. If your instance appears stuck in the shutting-down state after a period of time,\n there might be an issue with the underlying host computer. For more information about\n terminating and troubleshooting terminating your instances, see Terminate Amazon EC2 instances and\n Troubleshooting terminating your instance in the\n Amazon EC2 User Guide.

", + "smithy.api#examples": [ + { + "title": "To terminate an EC2 instance", + "documentation": "This example terminates the specified EC2 instance.", + "input": { + "InstanceIds": [ + "i-1234567890abcdef0" + ] + }, + "output": { + "TerminatingInstances": [ + { + "InstanceId": "i-1234567890abcdef0", + "CurrentState": { + "Code": 32, + "Name": "shutting-down" + }, + "PreviousState": { + "Code": 16, + "Name": "running" + } + } + ] + } + } + ] + } + }, + "com.amazonaws.ec2#TerminateInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances.

\n

Constraints: Up to 1000 instance IDs. We recommend breaking up this request into\n smaller batches.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "Force": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Forces the instances to terminate. The instance will first attempt a graceful\n shutdown, which includes flushing file system caches and metadata. If the graceful\n shutdown fails to complete within the timeout period, the instance shuts down forcibly\n without flushing the file system caches and metadata.

" + } + }, + "SkipOsShutdown": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to bypass the graceful OS shutdown process when the instance is\n terminated.

\n

Default: false\n

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#TerminateInstancesResult": { + "type": "structure", + "members": { + "TerminatingInstances": { + "target": "com.amazonaws.ec2#InstanceStateChangeList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

Information about the terminated instances.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ThreadsPerCore": { + "type": "integer" + }, + "com.amazonaws.ec2#ThreadsPerCoreList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ThreadsPerCore", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ThroughResourcesStatement": { + "type": "structure", + "members": { + "ResourceStatement": { + "target": "com.amazonaws.ec2#ResourceStatement", + "traits": { + "aws.protocols#ec2QueryName": "ResourceStatement", + "smithy.api#documentation": "

The resource statement.

", + "smithy.api#xmlName": "resourceStatement" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a through resource statement.

" + } + }, + "com.amazonaws.ec2#ThroughResourcesStatementList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ThroughResourcesStatement", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ThroughResourcesStatementRequest": { + "type": "structure", + "members": { + "ResourceStatement": { + "target": "com.amazonaws.ec2#ResourceStatementRequest", + "traits": { + "smithy.api#documentation": "

The resource statement.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a through resource statement.

" + } + }, + "com.amazonaws.ec2#ThroughResourcesStatementRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ThroughResourcesStatementRequest", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TieringOperationStatus": { + "type": "enum", + "members": { + "archival_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "archival-in-progress" + } + }, + "archival_completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "archival-completed" + } + }, + "archival_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "archival-failed" + } + }, + "temporary_restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "temporary-restore-in-progress" + } + }, + "temporary_restore_completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "temporary-restore-completed" + } + }, + "temporary_restore_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "temporary-restore-failed" + } + }, + "permanent_restore_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permanent-restore-in-progress" + } + }, + "permanent_restore_completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permanent-restore-completed" + } + }, + "permanent_restore_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permanent-restore-failed" + } + } + } + }, + "com.amazonaws.ec2#TokenState": { + "type": "enum", + "members": { + "valid": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "valid" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + } + } + }, + "com.amazonaws.ec2#TotalLocalStorageGB": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum amount of total local storage, in GB. If this parameter is not specified, there is\n no minimum limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum amount of total local storage, in GB. If this parameter is not specified, there is\n no maximum limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total local storage, in GB.

" + } + }, + "com.amazonaws.ec2#TotalLocalStorageGBRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The minimum amount of total local storage, in GB. To specify no minimum limit, omit this\n parameter.

" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "smithy.api#documentation": "

The maximum amount of total local storage, in GB. To specify no maximum limit, omit this\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of total local storage, in GB.

" + } + }, + "com.amazonaws.ec2#TotalMediaMemory": { + "type": "integer" + }, + "com.amazonaws.ec2#TotalNeuronMemory": { + "type": "integer" + }, + "com.amazonaws.ec2#TpmSupportValues": { + "type": "enum", + "members": { + "v2_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v2.0" + } + } + } + }, + "com.amazonaws.ec2#TrafficDirection": { + "type": "enum", + "members": { + "ingress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ingress" + } + }, + "egress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "egress" + } + } + } + }, + "com.amazonaws.ec2#TrafficIpAddressType": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + }, + "dual_stack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dual-stack" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilter": { + "type": "structure", + "members": { + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterId", + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#xmlName": "trafficMirrorFilterId" + } + }, + "IngressFilterRules": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleList", + "traits": { + "aws.protocols#ec2QueryName": "IngressFilterRuleSet", + "smithy.api#documentation": "

Information about the ingress rules that are associated with the Traffic Mirror filter.

", + "smithy.api#xmlName": "ingressFilterRuleSet" + } + }, + "EgressFilterRules": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleList", + "traits": { + "aws.protocols#ec2QueryName": "EgressFilterRuleSet", + "smithy.api#documentation": "

Information about the egress rules that are associated with the Traffic Mirror filter.

", + "smithy.api#xmlName": "egressFilterRuleSet" + } + }, + "NetworkServices": { + "target": "com.amazonaws.ec2#TrafficMirrorNetworkServiceList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkServiceSet", + "smithy.api#documentation": "

The network service traffic that is associated with the Traffic Mirror filter.

", + "smithy.api#xmlName": "networkServiceSet" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the Traffic Mirror filter.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Traffic Mirror filter.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Traffic Mirror filter.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterId": { + "type": "string" + }, + "com.amazonaws.ec2#TrafficMirrorFilterIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRule": { + "type": "structure", + "members": { + "TrafficMirrorFilterRuleId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterRuleId", + "smithy.api#documentation": "

The ID of the Traffic Mirror rule.

", + "smithy.api#xmlName": "trafficMirrorFilterRuleId" + } + }, + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterId", + "smithy.api#documentation": "

The ID of the Traffic Mirror filter that the rule is associated with.

", + "smithy.api#xmlName": "trafficMirrorFilterId" + } + }, + "TrafficDirection": { + "target": "com.amazonaws.ec2#TrafficDirection", + "traits": { + "aws.protocols#ec2QueryName": "TrafficDirection", + "smithy.api#documentation": "

The traffic direction assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "trafficDirection" + } + }, + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#documentation": "

The rule number of the Traffic Mirror rule.

", + "smithy.api#xmlName": "ruleNumber" + } + }, + "RuleAction": { + "target": "com.amazonaws.ec2#TrafficMirrorRuleAction", + "traits": { + "aws.protocols#ec2QueryName": "RuleAction", + "smithy.api#documentation": "

The action assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "ruleAction" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "protocol" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRange", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRange", + "smithy.api#documentation": "

The destination port range assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "destinationPortRange" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#TrafficMirrorPortRange", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRange", + "smithy.api#documentation": "

The source port range assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "sourcePortRange" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The destination CIDR block assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceCidrBlock", + "smithy.api#documentation": "

The source CIDR block assigned to the Traffic Mirror rule.

", + "smithy.api#xmlName": "sourceCidrBlock" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the Traffic Mirror rule.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Tags on Traffic Mirroring filter rules.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Traffic Mirror rule.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleField": { + "type": "enum", + "members": { + "destination_port_range": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "destination-port-range" + } + }, + "source_port_range": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "source-port-range" + } + }, + "protocol": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "protocol" + } + }, + "description": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "description" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleField" + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRuleIdWithResolver", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleIdWithResolver": { + "type": "string" + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterRuleSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilterRule", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorFilterSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorFilter", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorNetworkService": { + "type": "enum", + "members": { + "amazon_dns": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-dns" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirrorNetworkServiceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorNetworkService", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.

", + "smithy.api#xmlName": "toPort" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Traffic Mirror port range.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorPortRangeRequest": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.

" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the Traffic Mirror filter rule port range.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorRuleAction": { + "type": "enum", + "members": { + "accept": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accept" + } + }, + "reject": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reject" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirrorSession": { + "type": "structure", + "members": { + "TrafficMirrorSessionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorSessionId", + "smithy.api#documentation": "

The ID for the Traffic Mirror session.

", + "smithy.api#xmlName": "trafficMirrorSessionId" + } + }, + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorTargetId", + "smithy.api#documentation": "

The ID of the Traffic Mirror target.

", + "smithy.api#xmlName": "trafficMirrorTargetId" + } + }, + "TrafficMirrorFilterId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorFilterId", + "smithy.api#documentation": "

The ID of the Traffic Mirror filter.

", + "smithy.api#xmlName": "trafficMirrorFilterId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the Traffic Mirror session's network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the account that owns the Traffic Mirror session.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PacketLength": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "PacketLength", + "smithy.api#documentation": "

The number of bytes in each packet to mirror. These are the bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet

", + "smithy.api#xmlName": "packetLength" + } + }, + "SessionNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "SessionNumber", + "smithy.api#documentation": "

The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.

\n

Valid values are 1-32766.

", + "smithy.api#xmlName": "sessionNumber" + } + }, + "VirtualNetworkId": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VirtualNetworkId", + "smithy.api#documentation": "

The virtual network ID associated with the Traffic Mirror session.

", + "smithy.api#xmlName": "virtualNetworkId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the Traffic Mirror session.

", + "smithy.api#xmlName": "description" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Traffic Mirror session.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Traffic Mirror session.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorSessionField": { + "type": "enum", + "members": { + "packet_length": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "packet-length" + } + }, + "description": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "description" + } + }, + "virtual_network_id": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "virtual-network-id" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirrorSessionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionField" + } + }, + "com.amazonaws.ec2#TrafficMirrorSessionId": { + "type": "string" + }, + "com.amazonaws.ec2#TrafficMirrorSessionIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorSessionId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorSessionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorSession", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorTarget": { + "type": "structure", + "members": { + "TrafficMirrorTargetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrafficMirrorTargetId", + "smithy.api#documentation": "

The ID of the Traffic Mirror target.

", + "smithy.api#xmlName": "trafficMirrorTargetId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The network interface ID that is attached to the target.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "NetworkLoadBalancerArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkLoadBalancerArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Network Load Balancer.

", + "smithy.api#xmlName": "networkLoadBalancerArn" + } + }, + "Type": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of Traffic Mirror target.

", + "smithy.api#xmlName": "type" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

Information about the Traffic Mirror target.

", + "smithy.api#xmlName": "description" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the account that owns the Traffic Mirror target.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Traffic Mirror target.

", + "smithy.api#xmlName": "tagSet" + } + }, + "GatewayLoadBalancerEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GatewayLoadBalancerEndpointId", + "smithy.api#documentation": "

The ID of the Gateway Load Balancer endpoint.

", + "smithy.api#xmlName": "gatewayLoadBalancerEndpointId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Traffic Mirror target.

" + } + }, + "com.amazonaws.ec2#TrafficMirrorTargetId": { + "type": "string" + }, + "com.amazonaws.ec2#TrafficMirrorTargetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorTargetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorTargetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrafficMirrorTarget", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrafficMirrorTargetType": { + "type": "enum", + "members": { + "network_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-interface" + } + }, + "network_load_balancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-load-balancer" + } + }, + "gateway_load_balancer_endpoint": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gateway-load-balancer-endpoint" + } + } + } + }, + "com.amazonaws.ec2#TrafficMirroringMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#TrafficType": { + "type": "enum", + "members": { + "ACCEPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCEPT" + } + }, + "REJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECT" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + } + }, + "com.amazonaws.ec2#TransferType": { + "type": "enum", + "members": { + "time_based": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "time-based" + } + }, + "standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + } + } + }, + "com.amazonaws.ec2#TransitAssociationGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGateway": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "TransitGatewayArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayArn" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway.

", + "smithy.api#xmlName": "state" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of the transit gateway.

", + "smithy.api#xmlName": "description" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The transit gateway options.

", + "smithy.api#xmlName": "options" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the transit gateway.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAssociation": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a resource attachment and a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAssociationState": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachment": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "TransitGatewayOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway.

", + "smithy.api#xmlName": "transitGatewayOwnerId" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the resource.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The attachment state. Note that the initiating state has been deprecated.

", + "smithy.api#xmlName": "state" + } + }, + "Association": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Association", + "smithy.api#documentation": "

The association.

", + "smithy.api#xmlName": "association" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the attachment.

", + "smithy.api#xmlName": "tagSet" + } + }, + "NatGatewaySupport": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportState", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewaySupport", + "smithy.api#documentation": "

The state of NAT gateway support for the attachment. Only the owner of the transit gateway receives this parameter.

", + "smithy.api#xmlName": "natGatewaySupport" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an attachment between a resource and a transit gateway.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentAssociation": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the route table for the transit gateway.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableId", + "smithy.api#documentation": "

The ID of the transit gateway policy table associated with the attachment.

", + "smithy.api#xmlName": "transitGatewayPolicyTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentBgpConfiguration": { + "type": "structure", + "members": { + "TransitGatewayAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAsn", + "smithy.api#documentation": "

The transit gateway Autonomous System Number (ASN).

", + "smithy.api#xmlName": "transitGatewayAsn" + } + }, + "PeerAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "PeerAsn", + "smithy.api#documentation": "

The peer Autonomous System Number (ASN).

", + "smithy.api#xmlName": "peerAsn" + } + }, + "TransitGatewayAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAddress", + "smithy.api#documentation": "

The interior BGP peer IP address for the transit gateway.

", + "smithy.api#xmlName": "transitGatewayAddress" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerAddress", + "smithy.api#documentation": "

The interior BGP peer IP address for the appliance.

", + "smithy.api#xmlName": "peerAddress" + } + }, + "BgpStatus": { + "target": "com.amazonaws.ec2#BgpStatus", + "traits": { + "aws.protocols#ec2QueryName": "BgpStatus", + "smithy.api#documentation": "

The BGP status.

", + "smithy.api#xmlName": "bgpStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

The BGP configuration information.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentBgpConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentBgpConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayAttachmentIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId" + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportState": { + "type": "enum", + "members": { + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentNatGatewaySupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentNatSystemRouteSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentPropagation": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the propagation route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPropagationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the propagation route table.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a propagation route table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentPropagationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentPropagation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentResourceType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + }, + "vpn": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn" + } + }, + "vpn_concentrator": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpn-concentrator" + } + }, + "direct_connect_gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "direct-connect-gateway" + } + }, + "connect": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "connect" + } + }, + "peering": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "peering" + } + }, + "tgw_peering": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tgw-peering" + } + }, + "network_function": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-function" + } + }, + "client_vpn": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "client-vpn" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentState": { + "type": "enum", + "members": { + "initiating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initiating" + } + }, + "initiatingRequest": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initiatingRequest" + } + }, + "pendingAcceptance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pendingAcceptance" + } + }, + "rollingBack": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rollingBack" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "modifying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + }, + "rejecting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejecting" + } + }, + "failing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayAttachmentStatusType": { + "type": "enum", + "members": { + "pending_acceptance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-acceptance" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayCidrBlockStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayClientVpnAttachment": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the Transit Gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the Transit Gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "ClientVpnEndpointId": { + "target": "com.amazonaws.ec2#ClientVpnEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnEndpointId", + "smithy.api#documentation": "

The ID of the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnEndpointId" + } + }, + "ClientVpnOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientVpnOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the Client VPN endpoint.

", + "smithy.api#xmlName": "clientVpnOwnerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentStatusType", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Transit Gateway attachment.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The date and time the Transit Gateway attachment was created.

", + "smithy.api#xmlName": "creationTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Transit Gateway attachment for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConfigurationDescribeEndpointStructure": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the Transit Gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the Transit Gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneSet", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneSet", + "smithy.api#documentation": "

The Availability Zone names for the Transit Gateway association.

", + "smithy.api#xmlName": "availabilityZoneSet" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneIdSet", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneIdSet", + "smithy.api#documentation": "

The Availability Zone IDs for the Transit Gateway association.

", + "smithy.api#xmlName": "availabilityZoneIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Transit Gateway configuration for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConfigurationInputStructure": { + "type": "structure", + "members": { + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#documentation": "

The ID of the Transit Gateway to associate with the Client VPN endpoint.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneSet", + "traits": { + "smithy.api#documentation": "

The Availability Zone names for the Transit Gateway association. You can specify up to the maximum number of Availability Zones supported by the Transit Gateway. You cannot specify both AvailabilityZones and AvailabilityZoneIds.

", + "smithy.api#xmlName": "AvailabilityZone" + } + }, + "AvailabilityZoneIds": { + "target": "com.amazonaws.ec2#ClientVpnAvailabilityZoneIdSet", + "traits": { + "smithy.api#documentation": "

The Availability Zone IDs for the Transit Gateway association. You can specify up to the maximum number of Availability Zones supported by the Transit Gateway. You cannot specify both AvailabilityZones and AvailabilityZoneIds.

", + "smithy.api#xmlName": "AvailabilityZoneId" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Transit Gateway configuration for a Client VPN endpoint.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConnect": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the Connect attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "TransportTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransportTransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment from which the Connect attachment was created.

", + "smithy.api#xmlName": "transportTransitGatewayAttachmentId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the attachment.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayConnectOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The Connect attachment options.

", + "smithy.api#xmlName": "options" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the attachment.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway Connect attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConnectList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayConnect", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayConnectOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#ProtocolValue", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The tunnel protocol.

", + "smithy.api#xmlName": "protocol" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Connect attachment options.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConnectPeer": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the Connect attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "TransitGatewayConnectPeerId": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayConnectPeerId", + "smithy.api#documentation": "

The ID of the Connect peer.

", + "smithy.api#xmlName": "transitGatewayConnectPeerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Connect peer.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "ConnectPeerConfiguration": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "ConnectPeerConfiguration", + "smithy.api#documentation": "

The Connect peer details.

", + "smithy.api#xmlName": "connectPeerConfiguration" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the Connect peer.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway Connect peer.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConnectPeerConfiguration": { + "type": "structure", + "members": { + "TransitGatewayAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAddress", + "smithy.api#documentation": "

The Connect peer IP address on the transit gateway side of the tunnel.

", + "smithy.api#xmlName": "transitGatewayAddress" + } + }, + "PeerAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerAddress", + "smithy.api#documentation": "

The Connect peer IP address on the appliance side of the tunnel.

", + "smithy.api#xmlName": "peerAddress" + } + }, + "InsideCidrBlocks": { + "target": "com.amazonaws.ec2#InsideCidrBlocksStringList", + "traits": { + "aws.protocols#ec2QueryName": "InsideCidrBlocks", + "smithy.api#documentation": "

The range of interior BGP peer IP addresses.

", + "smithy.api#xmlName": "insideCidrBlocks" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#ProtocolValue", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The tunnel protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "BgpConfigurations": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentBgpConfigurationList", + "traits": { + "aws.protocols#ec2QueryName": "BgpConfigurations", + "smithy.api#documentation": "

The BGP configuration details.

", + "smithy.api#xmlName": "bgpConfigurations" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Connect peer details.

" + } + }, + "com.amazonaws.ec2#TransitGatewayConnectPeerId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayConnectPeerIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeerId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayConnectPeerList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayConnectPeer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayConnectPeerState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayConnectRequestBgpOptions": { + "type": "structure", + "members": { + "PeerAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

The peer Autonomous System Number (ASN).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The BGP options for the Connect attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPayerType": { + "type": "enum", + "members": { + "source_attachment_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "source-attachment-owner" + } + }, + "destination_attachment_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "destination-attachment-owner" + } + }, + "transit_gateway_owner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "transit-gateway-owner" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicy": { + "type": "structure", + "members": { + "TransitGatewayMeteringPolicyId": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMeteringPolicyId", + "smithy.api#documentation": "

The ID of the transit gateway metering policy.

", + "smithy.api#xmlName": "transitGatewayMeteringPolicyId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway associated with the metering policy.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "MiddleboxAttachmentIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "MiddleboxAttachmentIdSet", + "smithy.api#documentation": "

The IDs of the middlebox attachments associated with the metering policy.

", + "smithy.api#xmlName": "middleboxAttachmentIdSet" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway metering policy.

", + "smithy.api#xmlName": "state" + } + }, + "UpdateEffectiveAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateEffectiveAt", + "smithy.api#documentation": "

The date and time when the metering policy update becomes effective.

", + "smithy.api#xmlName": "updateEffectiveAt" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the transit gateway metering policy.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntry": { + "type": "structure", + "members": { + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyRuleNumber", + "smithy.api#documentation": "

The rule number of the metering policy entry.

", + "smithy.api#xmlName": "policyRuleNumber" + } + }, + "MeteredAccount": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPayerType", + "traits": { + "aws.protocols#ec2QueryName": "MeteredAccount", + "smithy.api#documentation": "

The Amazon Web Services account ID to which the metered traffic is attributed.

", + "smithy.api#xmlName": "meteredAccount" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntryState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the metering policy entry.

", + "smithy.api#xmlName": "state" + } + }, + "UpdatedAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdatedAt", + "smithy.api#documentation": "

The date and time when the metering policy entry was last updated.

", + "smithy.api#xmlName": "updatedAt" + } + }, + "UpdateEffectiveAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "UpdateEffectiveAt", + "smithy.api#documentation": "

The date and time when the metering policy entry update becomes effective.

", + "smithy.api#xmlName": "updateEffectiveAt" + } + }, + "MeteringPolicyRule": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyRule", + "traits": { + "aws.protocols#ec2QueryName": "MeteringPolicyRule", + "smithy.api#documentation": "

The metering policy rule that defines traffic matching criteria.

", + "smithy.api#xmlName": "meteringPolicyRule" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an entry in a transit gateway metering policy.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyEntryState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicyId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMeteringPolicy", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyRule": { + "type": "structure", + "members": { + "SourceTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "SourceTransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the source transit gateway attachment.

", + "smithy.api#xmlName": "sourceTransitGatewayAttachmentId" + } + }, + "SourceTransitGatewayAttachmentType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "SourceTransitGatewayAttachmentType", + "smithy.api#documentation": "

The type of the source transit gateway attachment. Note that the tgw-peering resource type has been deprecated. To configure metering policies for Connect, use the transport attachment type.

", + "smithy.api#xmlName": "sourceTransitGatewayAttachmentType" + } + }, + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceCidrBlock", + "smithy.api#documentation": "

The source CIDR block for the rule.

", + "smithy.api#xmlName": "sourceCidrBlock" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRange", + "smithy.api#documentation": "

The source port range for the rule.

", + "smithy.api#xmlName": "sourcePortRange" + } + }, + "DestinationTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "DestinationTransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the destination transit gateway attachment.

", + "smithy.api#xmlName": "destinationTransitGatewayAttachmentId" + } + }, + "DestinationTransitGatewayAttachmentType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "DestinationTransitGatewayAttachmentType", + "smithy.api#documentation": "

The type of the destination transit gateway attachment. Note that the tgw-peering resource type has been deprecated. To configure metering policies for Connect, use the transport attachment type.

", + "smithy.api#xmlName": "destinationTransitGatewayAttachmentType" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The destination CIDR block for the rule.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRange", + "smithy.api#documentation": "

The destination port range for the rule.

", + "smithy.api#xmlName": "destinationPortRange" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol for the rule (1, 6, 17, etc.).

", + "smithy.api#xmlName": "protocol" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the traffic matching criteria for a transit gateway metering policy rule.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMeteringPolicyState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "modifying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulitcastDomainAssociationState": { + "type": "enum", + "members": { + "pendingAcceptance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pendingAcceptance" + } + }, + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDeregisteredGroupMembers": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "DeregisteredNetworkInterfaceIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DeregisteredNetworkInterfaceIds", + "smithy.api#documentation": "

The network interface IDs of the deregistered members.

", + "smithy.api#xmlName": "deregisteredNetworkInterfaceIds" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupIpAddress", + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

", + "smithy.api#xmlName": "groupIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the deregistered transit gateway multicast group members.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDeregisteredGroupSources": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "DeregisteredNetworkInterfaceIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "DeregisteredNetworkInterfaceIds", + "smithy.api#documentation": "

The network interface IDs of the non-registered members.

", + "smithy.api#xmlName": "deregisteredNetworkInterfaceIds" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupIpAddress", + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

", + "smithy.api#xmlName": "groupIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the deregistered transit gateway multicast group sources.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomain": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "TransitGatewayMulticastDomainArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway multicast domain.

", + "smithy.api#xmlName": "ownerId" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The options for the transit gateway multicast domain.

", + "smithy.api#xmlName": "options" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway multicast domain.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The time the transit gateway multicast domain was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the transit gateway multicast domain.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociation": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource, for example a VPC attachment.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway multicast domain association resource.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "Subnet": { + "target": "com.amazonaws.ec2#SubnetAssociation", + "traits": { + "aws.protocols#ec2QueryName": "Subnet", + "smithy.api#documentation": "

The subnet associated with the transit gateway multicast domain.

", + "smithy.api#xmlName": "subnet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the resources associated with the transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainAssociations": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource, for example a VPC attachment.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the resource.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "Subnets": { + "target": "com.amazonaws.ec2#SubnetAssociationList", + "traits": { + "aws.protocols#ec2QueryName": "Subnets", + "smithy.api#documentation": "

The subnets associated with the multicast domain.

", + "smithy.api#xmlName": "subnets" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the multicast domain associations.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomainId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastDomain", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainOptions": { + "type": "structure", + "members": { + "Igmpv2Support": { + "target": "com.amazonaws.ec2#Igmpv2SupportValue", + "traits": { + "aws.protocols#ec2QueryName": "Igmpv2Support", + "smithy.api#documentation": "

Indicates whether Internet Group Management Protocol (IGMP) version 2 is turned on for the transit gateway multicast domain.

", + "smithy.api#xmlName": "igmpv2Support" + } + }, + "StaticSourcesSupport": { + "target": "com.amazonaws.ec2#StaticSourcesSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "StaticSourcesSupport", + "smithy.api#documentation": "

Indicates whether support for statically configuring transit gateway multicast group sources is turned on.

", + "smithy.api#xmlName": "staticSourcesSupport" + } + }, + "AutoAcceptSharedAssociations": { + "target": "com.amazonaws.ec2#AutoAcceptSharedAssociationsValue", + "traits": { + "aws.protocols#ec2QueryName": "AutoAcceptSharedAssociations", + "smithy.api#documentation": "

Indicates whether to automatically cross-account subnet associations that are associated with the transit gateway multicast domain.

", + "smithy.api#xmlName": "autoAcceptSharedAssociations" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for a transit gateway multicast domain.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastDomainState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastGroup": { + "type": "structure", + "members": { + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupIpAddress", + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

", + "smithy.api#xmlName": "groupIpAddress" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "SubnetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubnetId", + "smithy.api#documentation": "

The ID of the subnet.

", + "smithy.api#xmlName": "subnetId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource, for example a VPC attachment.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the transit gateway multicast domain group resource.

", + "smithy.api#xmlName": "resourceOwnerId" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "GroupMember": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "GroupMember", + "smithy.api#documentation": "

Indicates that the resource is a transit gateway multicast group member.

", + "smithy.api#xmlName": "groupMember" + } + }, + "GroupSource": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "GroupSource", + "smithy.api#documentation": "

Indicates that the resource is a transit gateway multicast group member.

", + "smithy.api#xmlName": "groupSource" + } + }, + "MemberType": { + "target": "com.amazonaws.ec2#MembershipType", + "traits": { + "aws.protocols#ec2QueryName": "MemberType", + "smithy.api#documentation": "

The member type (for example, static).

", + "smithy.api#xmlName": "memberType" + } + }, + "SourceType": { + "target": "com.amazonaws.ec2#MembershipType", + "traits": { + "aws.protocols#ec2QueryName": "SourceType", + "smithy.api#documentation": "

The source type.

", + "smithy.api#xmlName": "sourceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the transit gateway multicast group resources.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayMulticastGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastRegisteredGroupMembers": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "RegisteredNetworkInterfaceIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "RegisteredNetworkInterfaceIds", + "smithy.api#documentation": "

The ID of the registered network interfaces.

", + "smithy.api#xmlName": "registeredNetworkInterfaceIds" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupIpAddress", + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

", + "smithy.api#xmlName": "groupIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the registered transit gateway multicast group members.

" + } + }, + "com.amazonaws.ec2#TransitGatewayMulticastRegisteredGroupSources": { + "type": "structure", + "members": { + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayMulticastDomainId", + "smithy.api#documentation": "

The ID of the transit gateway multicast domain.

", + "smithy.api#xmlName": "transitGatewayMulticastDomainId" + } + }, + "RegisteredNetworkInterfaceIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "RegisteredNetworkInterfaceIds", + "smithy.api#documentation": "

The IDs of the network interfaces members registered with the transit gateway multicast group.

", + "smithy.api#xmlName": "registeredNetworkInterfaceIds" + } + }, + "GroupIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupIpAddress", + "smithy.api#documentation": "

The IP address assigned to the transit gateway multicast group.

", + "smithy.api#xmlName": "groupIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the members registered with the transit gateway multicast group.

" + } + }, + "com.amazonaws.ec2#TransitGatewayNatRule": { + "type": "structure", + "members": { + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RuleNumber", + "smithy.api#documentation": "

The rule number.

", + "smithy.api#xmlName": "ruleNumber" + } + }, + "MatchSourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MatchSourceCidr", + "smithy.api#documentation": "

The IPv4 CIDR block of the source addresses to translate.

", + "smithy.api#xmlName": "matchSourceCidr" + } + }, + "NatCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NatCidr", + "smithy.api#documentation": "

The IPv4 CIDR block that the transit gateway translates the source addresses to.

", + "smithy.api#xmlName": "natCidr" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayNatRuleState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the NAT gateway rule. The possible values are:

\n
    \n
  • \n

    \n pending - The transit gateway is applying a change to the rule.

    \n
  • \n
  • \n

    \n activated - The rule is in effect because NAT gateway support is enabled for the attachment.

    \n
  • \n
  • \n

    \n deactivated - The rule isn't in effect because NAT gateway support is disabled for the attachment.

    \n
  • \n
", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a NAT gateway rule for a transit gateway attachment, including the rule number, the source CIDR block, the translated CIDR block, and the state of the rule.

" + } + }, + "com.amazonaws.ec2#TransitGatewayNatRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayNatRule", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#TransitGatewayNatRuleRequest": { + "type": "structure", + "members": { + "RuleNumber": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The rule number. Valid values are 1 to 32766. Each rule number must be unique within the request.

" + } + }, + "MatchSourceCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR block of the source addresses to translate. The CIDR block can't overlap the multicast \n range (224.0.0.0/4) or the link-local range (169.254.0.0/16).

" + } + }, + "NatCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR block to translate the source addresses to. The CIDR block must be in a private (RFC 1918) \n or shared address space (RFC 6598) range, and must have the same prefix length as MatchSourceCidr. \n The CIDR blocks in the rules for an attachment can't overlap each other.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a NAT gateway rule to apply to a transit gateway attachment. A NAT gateway rule translates source addresses in the \n MatchSourceCidr range to the corresponding addresses in the NatCidr range.

" + } + }, + "com.amazonaws.ec2#TransitGatewayNatRuleRequestList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayNatRuleRequest", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ec2#TransitGatewayNatRuleState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "activated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "activated" + } + }, + "deactivated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deactivated" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayNetworkInterfaceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayOptions": { + "type": "structure", + "members": { + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "AmazonSideAsn", + "smithy.api#documentation": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.

", + "smithy.api#xmlName": "amazonSideAsn" + } + }, + "TransitGatewayCidrBlocks": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayCidrBlocks", + "smithy.api#documentation": "

The transit gateway CIDR blocks.

", + "smithy.api#xmlName": "transitGatewayCidrBlocks" + } + }, + "AutoAcceptSharedAttachments": { + "target": "com.amazonaws.ec2#AutoAcceptSharedAttachmentsValue", + "traits": { + "aws.protocols#ec2QueryName": "AutoAcceptSharedAttachments", + "smithy.api#documentation": "

Indicates whether attachment requests are automatically accepted.

", + "smithy.api#xmlName": "autoAcceptSharedAttachments" + } + }, + "DefaultRouteTableAssociation": { + "target": "com.amazonaws.ec2#DefaultRouteTableAssociationValue", + "traits": { + "aws.protocols#ec2QueryName": "DefaultRouteTableAssociation", + "smithy.api#documentation": "

Indicates whether resource attachments are automatically associated with the default\n association route table. Enabled by default. Either defaultRouteTableAssociation or defaultRouteTablePropagation must be set to enable for Amazon Web Services Transit Gateway to create the default transit gateway route table.

", + "smithy.api#xmlName": "defaultRouteTableAssociation" + } + }, + "AssociationDefaultRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationDefaultRouteTableId", + "smithy.api#documentation": "

The ID of the default association route table.

", + "smithy.api#xmlName": "associationDefaultRouteTableId" + } + }, + "DefaultRouteTablePropagation": { + "target": "com.amazonaws.ec2#DefaultRouteTablePropagationValue", + "traits": { + "aws.protocols#ec2QueryName": "DefaultRouteTablePropagation", + "smithy.api#documentation": "

Indicates whether resource attachments automatically propagate routes to the default\n propagation route table. Enabled by default. If defaultRouteTablePropagation\n is set to enable,\n Amazon Web Services Transit Gateway creates the default transit gateway route\n table.

", + "smithy.api#xmlName": "defaultRouteTablePropagation" + } + }, + "PropagationDefaultRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PropagationDefaultRouteTableId", + "smithy.api#documentation": "

The ID of the default propagation route table.

", + "smithy.api#xmlName": "propagationDefaultRouteTableId" + } + }, + "VpnEcmpSupport": { + "target": "com.amazonaws.ec2#VpnEcmpSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "VpnEcmpSupport", + "smithy.api#documentation": "

Indicates whether Equal Cost Multipath Protocol support is enabled.

", + "smithy.api#xmlName": "vpnEcmpSupport" + } + }, + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "DnsSupport", + "smithy.api#documentation": "

Indicates whether DNS support is enabled.

", + "smithy.api#xmlName": "dnsSupport" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupReferencingSupport", + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.\n\n

\n

This option is disabled by default.

", + "smithy.api#xmlName": "securityGroupReferencingSupport" + } + }, + "MulticastSupport": { + "target": "com.amazonaws.ec2#MulticastSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "MulticastSupport", + "smithy.api#documentation": "

Indicates whether multicast is enabled on the transit gateway

", + "smithy.api#xmlName": "multicastSupport" + } + }, + "EncryptionSupport": { + "target": "com.amazonaws.ec2#EncryptionSupport", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionSupport", + "smithy.api#documentation": "

Defines if the Transit Gateway supports VPC Encryption Control.

", + "smithy.api#xmlName": "encryptionSupport" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for a transit gateway.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPeeringAttachment": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway peering attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "AccepterTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AccepterTransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the accepter transit gateway attachment.

", + "smithy.api#xmlName": "accepterTransitGatewayAttachmentId" + } + }, + "RequesterTgwInfo": { + "target": "com.amazonaws.ec2#PeeringTgwInfo", + "traits": { + "aws.protocols#ec2QueryName": "RequesterTgwInfo", + "smithy.api#documentation": "

Information about the requester transit gateway.

", + "smithy.api#xmlName": "requesterTgwInfo" + } + }, + "AccepterTgwInfo": { + "target": "com.amazonaws.ec2#PeeringTgwInfo", + "traits": { + "aws.protocols#ec2QueryName": "AccepterTgwInfo", + "smithy.api#documentation": "

Information about the accepter transit gateway.

", + "smithy.api#xmlName": "accepterTgwInfo" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachmentOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

Details about the transit gateway peering attachment.

", + "smithy.api#xmlName": "options" + } + }, + "Status": { + "target": "com.amazonaws.ec2#PeeringAttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the transit gateway peering attachment.

", + "smithy.api#xmlName": "status" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway peering attachment. Note that the initiating state has been deprecated.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The time the transit gateway peering attachment was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the transit gateway peering attachment.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the transit gateway peering attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPeeringAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPeeringAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPeeringAttachmentOptions": { + "type": "structure", + "members": { + "DynamicRouting": { + "target": "com.amazonaws.ec2#DynamicRoutingValue", + "traits": { + "aws.protocols#ec2QueryName": "DynamicRouting", + "smithy.api#documentation": "

Describes whether dynamic routing is enabled or disabled for the transit gateway peering attachment.

", + "smithy.api#xmlName": "dynamicRouting" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes dynamic routing for the transit gateway peering attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyRule": { + "type": "structure", + "members": { + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceCidrBlock", + "smithy.api#documentation": "

The source CIDR block for the transit gateway policy rule.

", + "smithy.api#xmlName": "sourceCidrBlock" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourcePortRange", + "smithy.api#documentation": "

The source port or port range for the transit gateway policy rule.

", + "smithy.api#xmlName": "sourcePortRange" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The destination CIDR block for the transit gateway policy rule.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationPortRange", + "smithy.api#documentation": "

The destination port or port range for the transit gateway policy rule.

", + "smithy.api#xmlName": "destinationPortRange" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol used by the transit gateway policy rule.

", + "smithy.api#xmlName": "protocol" + } + }, + "MetaData": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyRuleMetaData", + "traits": { + "aws.protocols#ec2QueryName": "MetaData", + "smithy.api#documentation": "

The meta data tags used for the transit gateway policy rule.

", + "smithy.api#xmlName": "metaData" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a rule associated with a transit gateway policy.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyRuleMetaData": { + "type": "structure", + "members": { + "MetaDataKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MetaDataKey", + "smithy.api#documentation": "

The key name for the transit gateway policy rule meta data tag.

", + "smithy.api#xmlName": "metaDataKey" + } + }, + "MetaDataValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "MetaDataValue", + "smithy.api#documentation": "

The value of the key for the transit gateway policy rule meta data tag.

", + "smithy.api#xmlName": "metaDataValue" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the meta data tags associated with a transit gateway policy rule.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTable": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableId", + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTableId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway policy table

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The timestamp when the transit gateway policy table was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

he key-value pairs associated with the transit gateway policy table.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway policy table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableAssociation": { + "type": "structure", + "members": { + "TransitGatewayPolicyTableId": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayPolicyTableId", + "smithy.api#documentation": "

The ID of the transit gateway policy table.

", + "smithy.api#xmlName": "transitGatewayPolicyTableId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The resource ID of the transit gateway attachment.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type for the transit gateway policy table association.

", + "smithy.api#xmlName": "resourceType" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway policy table association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway policy table association.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableEntry": { + "type": "structure", + "members": { + "PolicyRuleNumber": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyRuleNumber", + "smithy.api#documentation": "

The rule number for the transit gateway policy table entry.

", + "smithy.api#xmlName": "policyRuleNumber" + } + }, + "PolicyRule": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyRule", + "traits": { + "aws.protocols#ec2QueryName": "PolicyRule", + "smithy.api#documentation": "

The policy rule associated with the transit gateway policy table.

", + "smithy.api#xmlName": "policyRule" + } + }, + "TargetRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "TargetRouteTableId", + "smithy.api#documentation": "

The ID of the target route table.

", + "smithy.api#xmlName": "targetRouteTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntryState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway policy table entry.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway policy table entry

" + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableEntry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableEntryState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTableId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPolicyTable", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPolicyTableState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayPrefixListAttachment": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway prefix list attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPrefixListReference": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "PrefixListOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListOwnerId", + "smithy.api#documentation": "

The ID of the prefix list owner.

", + "smithy.api#xmlName": "prefixListOwnerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReferenceState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the prefix list reference.

", + "smithy.api#xmlName": "state" + } + }, + "Blackhole": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Blackhole", + "smithy.api#documentation": "

Indicates whether traffic that matches this route is dropped.

", + "smithy.api#xmlName": "blackhole" + } + }, + "TransitGatewayAttachment": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListAttachment", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachment", + "smithy.api#documentation": "

Information about the transit gateway attachment.

", + "smithy.api#xmlName": "transitGatewayAttachment" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a prefix list reference.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPrefixListReferenceSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayPrefixListReference", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayPrefixListReferenceState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "modifying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayPropagation": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPropagationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state.

", + "smithy.api#xmlName": "state" + } + }, + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncementId", + "smithy.api#documentation": "

The ID of the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncementId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes route propagation.

" + } + }, + "com.amazonaws.ec2#TransitGatewayPropagationState": { + "type": "enum", + "members": { + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayRequestOptions": { + "type": "structure", + "members": { + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "smithy.api#documentation": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs. The default is 64512.

" + } + }, + "AutoAcceptSharedAttachments": { + "target": "com.amazonaws.ec2#AutoAcceptSharedAttachmentsValue", + "traits": { + "smithy.api#documentation": "

Enable or disable automatic acceptance of attachment requests. Disabled by default.

" + } + }, + "DefaultRouteTableAssociation": { + "target": "com.amazonaws.ec2#DefaultRouteTableAssociationValue", + "traits": { + "smithy.api#documentation": "

Enable or disable automatic association with the default association route table. Enabled by default.

" + } + }, + "DefaultRouteTablePropagation": { + "target": "com.amazonaws.ec2#DefaultRouteTablePropagationValue", + "traits": { + "smithy.api#documentation": "

Enable or disable automatic propagation of routes to the default propagation route table. Enabled by default.

" + } + }, + "VpnEcmpSupport": { + "target": "com.amazonaws.ec2#VpnEcmpSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable Equal Cost Multipath Protocol support. Enabled by default.

" + } + }, + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "smithy.api#documentation": "

Enable or disable DNS support. Enabled by default.

" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.\n\n

\n

This option is disabled by default.

\n

For more information about security group referencing, see Security group referencing in the Amazon Web Services Transit Gateways Guide.

" + } + }, + "MulticastSupport": { + "target": "com.amazonaws.ec2#MulticastSupportValue", + "traits": { + "smithy.api#documentation": "

Indicates whether multicast is enabled on the transit gateway

" + } + }, + "TransitGatewayCidrBlocks": { + "target": "com.amazonaws.ec2#TransitGatewayCidrBlockStringList", + "traits": { + "smithy.api#documentation": "

One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for a transit gateway.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRequestPolicyRule": { + "type": "structure", + "members": { + "SourceCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source CIDR block for the policy rule.

" + } + }, + "SourcePortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The source port or port range for the policy rule. You can specify a port range only when Protocol is 6 (TCP) or 17 (UDP); for all other protocols, this value must be *.

" + } + }, + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination CIDR block for the policy rule.

" + } + }, + "DestinationPortRange": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The destination port or port range for the policy rule. You can specify a port range only when Protocol is 6 (TCP) or 17 (UDP); for all other protocols, this value must be *.

" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The protocol for the policy rule. Valid values are 1 (ICMP), 6 (TCP), 17 (UDP), 47 (GRE), or * for all protocols.

" + } + }, + "MetaData": { + "target": "com.amazonaws.ec2#TransitGatewayRequestPolicyRuleMetaData", + "traits": { + "smithy.api#documentation": "

The metadata key-value pair for the policy rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The matching criteria for a transit gateway policy table entry.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRequestPolicyRuleMetaData": { + "type": "structure", + "members": { + "MetaDataKey": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The key of the metadata pair for the policy rule.

" + } + }, + "MetaDataValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The value of the metadata pair for the policy rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A metadata key-value pair for a transit gateway policy rule.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRoute": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The CIDR block used for destination matches.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#PrefixListResourceId", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix list used for destination matches.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncementId", + "smithy.api#documentation": "

The ID of the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncementId" + } + }, + "TransitGatewayAttachments": { + "target": "com.amazonaws.ec2#TransitGatewayRouteAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachments", + "smithy.api#documentation": "

The attachments.

", + "smithy.api#xmlName": "transitGatewayAttachments" + } + }, + "Type": { + "target": "com.amazonaws.ec2#TransitGatewayRouteType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The route type.

", + "smithy.api#xmlName": "type" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayRouteState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the route.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route for a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteAttachment": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "blackhole": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blackhole" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTable": { + "type": "structure", + "members": { + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway route table.

", + "smithy.api#xmlName": "state" + } + }, + "DefaultAssociationRouteTable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DefaultAssociationRouteTable", + "smithy.api#documentation": "

Indicates whether this is the default association route table for the transit gateway.

", + "smithy.api#xmlName": "defaultAssociationRouteTable" + } + }, + "DefaultPropagationRouteTable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DefaultPropagationRouteTable", + "smithy.api#documentation": "

Indicates whether this is the default propagation route table for the transit gateway.

", + "smithy.api#xmlName": "defaultPropagationRouteTable" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the route table.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncement": { + "type": "structure", + "members": { + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncementId", + "smithy.api#documentation": "

The ID of the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncementId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "CoreNetworkId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkId", + "smithy.api#documentation": "

The ID of the core network for the transit gateway route table announcement.

", + "smithy.api#xmlName": "coreNetworkId" + } + }, + "PeerTransitGatewayId": { + "target": "com.amazonaws.ec2#TransitGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "PeerTransitGatewayId", + "smithy.api#documentation": "

The ID of the peer transit gateway.

", + "smithy.api#xmlName": "peerTransitGatewayId" + } + }, + "PeerCoreNetworkId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeerCoreNetworkId", + "smithy.api#documentation": "

The ID of the core network ID for the peer.

", + "smithy.api#xmlName": "peerCoreNetworkId" + } + }, + "PeeringAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "aws.protocols#ec2QueryName": "PeeringAttachmentId", + "smithy.api#documentation": "

The ID of the peering attachment.

", + "smithy.api#xmlName": "peeringAttachmentId" + } + }, + "AnnouncementDirection": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementDirection", + "traits": { + "aws.protocols#ec2QueryName": "AnnouncementDirection", + "smithy.api#documentation": "

The direction for the route table announcement.

", + "smithy.api#xmlName": "announcementDirection" + } + }, + "TransitGatewayRouteTableId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableId", + "smithy.api#documentation": "

The ID of the transit gateway route table.

", + "smithy.api#xmlName": "transitGatewayRouteTableId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the transit gateway announcement.

", + "smithy.api#xmlName": "state" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The timestamp when the transit gateway route table announcement was created.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The key-value pairs associated with the route table announcement.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a transit gateway route table announcement.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementDirection": { + "type": "enum", + "members": { + "outgoing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "outgoing" + } + }, + "incoming": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incoming" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncement", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementState": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "failing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAssociation": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the association.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an association between a route table and a resource attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableId": { + "type": "string" + }, + "com.amazonaws.ec2#TransitGatewayRouteTableIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTable", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTablePropagation": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentResourceType", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The type of resource. Note that the tgw-peering resource type has been deprecated.

", + "smithy.api#xmlName": "resourceType" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayPropagationState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the resource.

", + "smithy.api#xmlName": "state" + } + }, + "TransitGatewayRouteTableAnnouncementId": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTableAnnouncementId", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayRouteTableAnnouncementId", + "smithy.api#documentation": "

The ID of the transit gateway route table announcement.

", + "smithy.api#xmlName": "transitGatewayRouteTableAnnouncementId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route table propagation.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTablePropagationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayRouteTablePropagation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableRoute": { + "type": "structure", + "members": { + "DestinationCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidr", + "smithy.api#documentation": "

The CIDR block used for destination matches.

", + "smithy.api#xmlName": "destinationCidr" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the route.

", + "smithy.api#xmlName": "state" + } + }, + "RouteOrigin": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RouteOrigin", + "smithy.api#documentation": "

The route origin. The following are the possible values:

\n
    \n
  • \n

    static

    \n
  • \n
  • \n

    propagated

    \n
  • \n
", + "smithy.api#xmlName": "routeOrigin" + } + }, + "PrefixListId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PrefixListId", + "smithy.api#documentation": "

The ID of the prefix list.

", + "smithy.api#xmlName": "prefixListId" + } + }, + "AttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentId", + "smithy.api#documentation": "

The ID of the route attachment.

", + "smithy.api#xmlName": "attachmentId" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource for the route attachment.

", + "smithy.api#xmlName": "resourceId" + } + }, + "ResourceType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceType", + "smithy.api#documentation": "

The resource type for the route attachment.

", + "smithy.api#xmlName": "resourceType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route in a transit gateway route table.

" + } + }, + "com.amazonaws.ec2#TransitGatewayRouteTableState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayRouteType": { + "type": "enum", + "members": { + "static": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static" + } + }, + "propagated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "propagated" + } + }, + "system": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "system" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewayState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "modifying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#TransitGatewaySubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayVpcAttachment": { + "type": "structure", + "members": { + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the attachment.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "VpcOwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcOwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC.

", + "smithy.api#xmlName": "vpcOwnerId" + } + }, + "State": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the VPC attachment. Note that the initiating state has been deprecated.

", + "smithy.api#xmlName": "state" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIds", + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "subnetIds" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "Options": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachmentOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The VPC attachment options.

", + "smithy.api#xmlName": "options" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the VPC attachment.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC attachment.

" + } + }, + "com.amazonaws.ec2#TransitGatewayVpcAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TransitGatewayVpcAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TransitGatewayVpcAttachmentOptions": { + "type": "structure", + "members": { + "DnsSupport": { + "target": "com.amazonaws.ec2#DnsSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "DnsSupport", + "smithy.api#documentation": "

Indicates whether DNS support is enabled.

", + "smithy.api#xmlName": "dnsSupport" + } + }, + "SecurityGroupReferencingSupport": { + "target": "com.amazonaws.ec2#SecurityGroupReferencingSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupReferencingSupport", + "smithy.api#documentation": "

Enables you to reference a security group across VPCs attached to a transit gateway to simplify security group management.

\n

This option is enabled by default.

\n

For more information about security group referencing, see Security group referencing in the Amazon Web Services Transit Gateways Guide.

", + "smithy.api#xmlName": "securityGroupReferencingSupport" + } + }, + "Ipv6Support": { + "target": "com.amazonaws.ec2#Ipv6SupportValue", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Support", + "smithy.api#documentation": "

Indicates whether IPv6 support is disabled.

", + "smithy.api#xmlName": "ipv6Support" + } + }, + "ApplianceModeSupport": { + "target": "com.amazonaws.ec2#ApplianceModeSupportValue", + "traits": { + "aws.protocols#ec2QueryName": "ApplianceModeSupport", + "smithy.api#documentation": "

Indicates whether appliance mode support is enabled.

", + "smithy.api#xmlName": "applianceModeSupport" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC attachment options.

" + } + }, + "com.amazonaws.ec2#TransportProtocol": { + "type": "enum", + "members": { + "tcp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tcp" + } + }, + "udp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "udp" + } + } + } + }, + "com.amazonaws.ec2#TrunkInterfaceAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociationId", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The ID of the association.

", + "smithy.api#xmlName": "associationId" + } + }, + "BranchInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BranchInterfaceId", + "smithy.api#documentation": "

The ID of the branch network interface.

", + "smithy.api#xmlName": "branchInterfaceId" + } + }, + "TrunkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TrunkInterfaceId", + "smithy.api#documentation": "

The ID of the trunk network interface.

", + "smithy.api#xmlName": "trunkInterfaceId" + } + }, + "InterfaceProtocol": { + "target": "com.amazonaws.ec2#InterfaceProtocolType", + "traits": { + "aws.protocols#ec2QueryName": "InterfaceProtocol", + "smithy.api#documentation": "

The interface protocol. Valid values are VLAN and GRE.

", + "smithy.api#xmlName": "interfaceProtocol" + } + }, + "VlanId": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VlanId", + "smithy.api#documentation": "

The ID of the VLAN when you use the VLAN protocol.

", + "smithy.api#xmlName": "vlanId" + } + }, + "GreKey": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "GreKey", + "smithy.api#documentation": "

The application key when you use the GRE protocol.

", + "smithy.api#xmlName": "greKey" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags for the trunk interface association.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an association between a branch network interface with a trunk network interface.

" + } + }, + "com.amazonaws.ec2#TrunkInterfaceAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#TrunkInterfaceAssociationIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociationId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrunkInterfaceAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TrunkInterfaceAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#TrustProviderType": { + "type": "enum", + "members": { + "user": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "device": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "device" + } + } + } + }, + "com.amazonaws.ec2#TunnelInsideIpVersion": { + "type": "enum", + "members": { + "ipv4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv4" + } + }, + "ipv6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipv6" + } + } + } + }, + "com.amazonaws.ec2#TunnelOption": { + "type": "structure", + "members": { + "OutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutsideIpAddress", + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

", + "smithy.api#xmlName": "outsideIpAddress" + } + }, + "TunnelInsideCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TunnelInsideCidr", + "smithy.api#documentation": "

The range of inside IPv4 addresses for the tunnel.

", + "smithy.api#xmlName": "tunnelInsideCidr" + } + }, + "TunnelInsideIpv6Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TunnelInsideIpv6Cidr", + "smithy.api#documentation": "

The range of inside IPv6 addresses for the tunnel.

", + "smithy.api#xmlName": "tunnelInsideIpv6Cidr" + } + }, + "PreSharedKey": { + "target": "com.amazonaws.ec2#preSharedKey", + "traits": { + "aws.protocols#ec2QueryName": "PreSharedKey", + "smithy.api#documentation": "

The pre-shared key (PSK) to establish initial authentication between the virtual\n private gateway and the customer gateway.

", + "smithy.api#xmlName": "preSharedKey" + } + }, + "Phase1LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Phase1LifetimeSeconds", + "smithy.api#documentation": "

The lifetime for phase 1 of the IKE negotiation, in seconds.

", + "smithy.api#xmlName": "phase1LifetimeSeconds" + } + }, + "Phase2LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Phase2LifetimeSeconds", + "smithy.api#documentation": "

The lifetime for phase 2 of the IKE negotiation, in seconds.

", + "smithy.api#xmlName": "phase2LifetimeSeconds" + } + }, + "RekeyMarginTimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RekeyMarginTimeSeconds", + "smithy.api#documentation": "

The margin time, in seconds, before the phase 2 lifetime expires, during which the\n Amazon Web Services side of the VPN connection performs an IKE rekey.

", + "smithy.api#xmlName": "rekeyMarginTimeSeconds" + } + }, + "RekeyFuzzPercentage": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "RekeyFuzzPercentage", + "smithy.api#documentation": "

The percentage of the rekey window determined by RekeyMarginTimeSeconds\n during which the rekey time is randomly selected.

", + "smithy.api#xmlName": "rekeyFuzzPercentage" + } + }, + "ReplayWindowSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "ReplayWindowSize", + "smithy.api#documentation": "

The number of packets in an IKE replay window.

", + "smithy.api#xmlName": "replayWindowSize" + } + }, + "DpdTimeoutSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "DpdTimeoutSeconds", + "smithy.api#documentation": "

The number of seconds after which a DPD timeout occurs.

", + "smithy.api#xmlName": "dpdTimeoutSeconds" + } + }, + "DpdTimeoutAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DpdTimeoutAction", + "smithy.api#documentation": "

The action to take after a DPD timeout occurs.

", + "smithy.api#xmlName": "dpdTimeoutAction" + } + }, + "Phase1EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase1EncryptionAlgorithmsList", + "traits": { + "aws.protocols#ec2QueryName": "Phase1EncryptionAlgorithmSet", + "smithy.api#documentation": "

The permitted encryption algorithms for the VPN tunnel for phase 1 IKE\n negotiations.

", + "smithy.api#xmlName": "phase1EncryptionAlgorithmSet" + } + }, + "Phase2EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase2EncryptionAlgorithmsList", + "traits": { + "aws.protocols#ec2QueryName": "Phase2EncryptionAlgorithmSet", + "smithy.api#documentation": "

The permitted encryption algorithms for the VPN tunnel for phase 2 IKE\n negotiations.

", + "smithy.api#xmlName": "phase2EncryptionAlgorithmSet" + } + }, + "Phase1IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase1IntegrityAlgorithmsList", + "traits": { + "aws.protocols#ec2QueryName": "Phase1IntegrityAlgorithmSet", + "smithy.api#documentation": "

The permitted integrity algorithms for the VPN tunnel for phase 1 IKE\n negotiations.

", + "smithy.api#xmlName": "phase1IntegrityAlgorithmSet" + } + }, + "Phase2IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase2IntegrityAlgorithmsList", + "traits": { + "aws.protocols#ec2QueryName": "Phase2IntegrityAlgorithmSet", + "smithy.api#documentation": "

The permitted integrity algorithms for the VPN tunnel for phase 2 IKE\n negotiations.

", + "smithy.api#xmlName": "phase2IntegrityAlgorithmSet" + } + }, + "Phase1DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase1DHGroupNumbersList", + "traits": { + "aws.protocols#ec2QueryName": "Phase1DHGroupNumberSet", + "smithy.api#documentation": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE\n negotiations.

", + "smithy.api#xmlName": "phase1DHGroupNumberSet" + } + }, + "Phase2DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase2DHGroupNumbersList", + "traits": { + "aws.protocols#ec2QueryName": "Phase2DHGroupNumberSet", + "smithy.api#documentation": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE\n negotiations.

", + "smithy.api#xmlName": "phase2DHGroupNumberSet" + } + }, + "IkeVersions": { + "target": "com.amazonaws.ec2#IKEVersionsList", + "traits": { + "aws.protocols#ec2QueryName": "IkeVersionSet", + "smithy.api#documentation": "

The IKE versions that are permitted for the VPN tunnel.

", + "smithy.api#xmlName": "ikeVersionSet" + } + }, + "StartupAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StartupAction", + "smithy.api#documentation": "

The action to take when the establishing the VPN tunnels for a VPN connection.

", + "smithy.api#xmlName": "startupAction" + } + }, + "LogOptions": { + "target": "com.amazonaws.ec2#VpnTunnelLogOptions", + "traits": { + "aws.protocols#ec2QueryName": "LogOptions", + "smithy.api#documentation": "

Options for logging VPN tunnel activity.

", + "smithy.api#xmlName": "logOptions" + } + }, + "EnableTunnelLifecycleControl": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableTunnelLifecycleControl", + "smithy.api#documentation": "

Status of tunnel endpoint lifecycle control feature.

", + "smithy.api#xmlName": "enableTunnelLifecycleControl" + } + } + }, + "traits": { + "smithy.api#documentation": "

The VPN tunnel options.

" + } + }, + "com.amazonaws.ec2#TunnelOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#TunnelOption", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnassignIpv6Addresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UnassignIpv6AddressesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UnassignIpv6AddressesResult" + }, + "traits": { + "smithy.api#documentation": "

Unassigns the specified IPv6 addresses or Prefix Delegation prefixes from a network\n interface.

" + } + }, + "com.amazonaws.ec2#UnassignIpv6AddressesRequest": { + "type": "structure", + "members": { + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "smithy.api#documentation": "

The IPv6 prefixes to unassign from the network interface.

", + "smithy.api#xmlName": "Ipv6Prefix" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Ipv6Addresses": { + "target": "com.amazonaws.ec2#Ipv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Addresses", + "smithy.api#documentation": "

The IPv6 addresses to unassign from the network interface.

", + "smithy.api#xmlName": "ipv6Addresses" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UnassignIpv6AddressesResult": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "UnassignedIpv6Addresses": { + "target": "com.amazonaws.ec2#Ipv6AddressList", + "traits": { + "aws.protocols#ec2QueryName": "UnassignedIpv6Addresses", + "smithy.api#documentation": "

The IPv6 addresses that have been unassigned from the network interface.

", + "smithy.api#xmlName": "unassignedIpv6Addresses" + } + }, + "UnassignedIpv6Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "aws.protocols#ec2QueryName": "UnassignedIpv6PrefixSet", + "smithy.api#documentation": "

The IPv6 prefixes that have been unassigned from the network interface.

", + "smithy.api#xmlName": "unassignedIpv6PrefixSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UnassignPrivateIpAddresses": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UnassignPrivateIpAddressesRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Unassigns the specified secondary private IP addresses or IPv4 Prefix Delegation\n prefixes from a network interface.

", + "smithy.api#examples": [ + { + "title": "To unassign a secondary private IP address from a network interface", + "documentation": "This example unassigns the specified private IP address from the specified network interface.", + "input": { + "NetworkInterfaceId": "eni-e5aa89a3", + "PrivateIpAddresses": [ + "10.0.0.82" + ] + } + } + ] + } + }, + "com.amazonaws.ec2#UnassignPrivateIpAddressesRequest": { + "type": "structure", + "members": { + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#IpPrefixList", + "traits": { + "smithy.api#documentation": "

The IPv4 prefixes to unassign from the network interface.

", + "smithy.api#xmlName": "Ipv4Prefix" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#PrivateIpAddressStringList", + "traits": { + "aws.protocols#ec2QueryName": "PrivateIpAddress", + "smithy.api#documentation": "

The secondary private IP addresses to unassign from the network interface. You can\n specify this option multiple times to unassign more than one IP address.

", + "smithy.api#xmlName": "privateIpAddress" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters for UnassignPrivateIpAddresses.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UnassignPrivateNatGatewayAddress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressResult" + }, + "traits": { + "smithy.api#documentation": "

Unassigns secondary private IPv4 addresses from a private NAT gateway. You cannot unassign your primary private IP. For more information, \n see Edit secondary IP address associations \n in the Amazon VPC User Guide.

\n

While unassigning is in progress, you cannot assign/unassign additional IP addresses while the connections are being drained. You are, however, allowed to delete the NAT gateway.

\n

A private IP address will only be released at the end of MaxDrainDurationSeconds. The\n private IP addresses stay associated and support the existing connections, but do not\n support any new connections (new connections are distributed across the remaining\n assigned private IP address). After the existing connections drain out, the private IP\n addresses are released.

\n

\n

" + } + }, + "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressRequest": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#required": {} + } + }, + "PrivateIpAddresses": { + "target": "com.amazonaws.ec2#IpList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The private IPv4 addresses you want to unassign.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "PrivateIpAddress" + } + }, + "MaxDrainDurationSeconds": { + "target": "com.amazonaws.ec2#DrainSeconds", + "traits": { + "smithy.api#documentation": "

The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressResult": { + "type": "structure", + "members": { + "NatGatewayId": { + "target": "com.amazonaws.ec2#NatGatewayId", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayId", + "smithy.api#documentation": "

The ID of the NAT gateway.

", + "smithy.api#xmlName": "natGatewayId" + } + }, + "NatGatewayAddresses": { + "target": "com.amazonaws.ec2#NatGatewayAddressList", + "traits": { + "aws.protocols#ec2QueryName": "NatGatewayAddressSet", + "smithy.api#documentation": "

Information about the NAT gateway IP addresses.

", + "smithy.api#xmlName": "natGatewayAddressSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UnlimitedSupportedInstanceFamily": { + "type": "enum", + "members": { + "t2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t2" + } + }, + "t3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3" + } + }, + "t3a": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t3a" + } + }, + "t4g": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g" + } + }, + "t8i": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t8i" + } + } + } + }, + "com.amazonaws.ec2#UnlockSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UnlockSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UnlockSnapshotResult" + }, + "traits": { + "smithy.api#documentation": "

Unlocks a snapshot that is locked in governance mode or that is locked in compliance mode \n but still in the cooling-off period. You can't unlock a snapshot that is locked in compliance \n mode after the cooling-off period has expired.

" + } + }, + "com.amazonaws.ec2#UnlockSnapshotRequest": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#SnapshotId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the snapshot to unlock.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UnlockSnapshotResult": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The ID of the snapshot.

", + "smithy.api#xmlName": "snapshotId" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UnmonitorInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UnmonitorInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UnmonitorInstancesResult" + }, + "traits": { + "smithy.api#documentation": "

Disables detailed monitoring for a running instance. For more information, see Monitoring\n your instances and volumes in the\n Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#UnmonitorInstancesRequest": { + "type": "structure", + "members": { + "InstanceIds": { + "target": "com.amazonaws.ec2#InstanceIdStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the instances.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DryRun", + "smithy.api#documentation": "

Checks whether you have the required permissions for the operation, without actually making the \n request, and provides an error response. If you have the required permissions, the error response is \n DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "smithy.api#xmlName": "dryRun" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UnmonitorInstancesResult": { + "type": "structure", + "members": { + "InstanceMonitorings": { + "target": "com.amazonaws.ec2#InstanceMonitoringList", + "traits": { + "aws.protocols#ec2QueryName": "InstancesSet", + "smithy.api#documentation": "

The monitoring information.

", + "smithy.api#xmlName": "instancesSet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UnsuccessfulAssociationResponseObject": { + "type": "structure", + "members": { + "ApplicationStatusCheckId": { + "target": "com.amazonaws.ec2#ApplicationStatusCheckId", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationStatusCheckId", + "smithy.api#documentation": "

The ID of the application status check.

", + "smithy.api#xmlName": "applicationStatusCheckId" + } + }, + "AssociationType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationType", + "smithy.api#documentation": "

The type of association. Valid values: EC2TAG and INSTANCE_ID.

", + "smithy.api#xmlName": "associationType" + } + }, + "AssociationValue": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationValue", + "smithy.api#documentation": "

The association value. For EC2TAG, the value is formatted as key=value. For INSTANCE_ID, the value is the instance ID.

", + "smithy.api#xmlName": "associationValue" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason the association failed.

", + "smithy.api#xmlName": "reason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an unsuccessful application status check association.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulAssociationResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UnsuccessfulAssociationResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationErrorCode": { + "type": "enum", + "members": { + "INVALID_INSTANCE_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvalidInstanceID.Malformed" + } + }, + "INSTANCE_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvalidInstanceID.NotFound" + } + }, + "INCORRECT_INSTANCE_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IncorrectInstanceState" + } + }, + "INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceCreditSpecification.NotSupported" + } + } + } + }, + "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationItem": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Error": { + "target": "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationItemError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

The applicable error for the burstable performance instance whose credit option for\n CPU usage was not modified.

", + "smithy.api#xmlName": "error" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the burstable performance instance whose credit option for CPU usage was not\n modified.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationItemError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The applicable error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the error for the burstable performance instance whose credit option\n for CPU usage was not modified.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UnsuccessfulInstanceCreditSpecificationItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnsuccessfulItem": { + "type": "structure", + "members": { + "Error": { + "target": "com.amazonaws.ec2#UnsuccessfulItemError", + "traits": { + "aws.protocols#ec2QueryName": "Error", + "smithy.api#documentation": "

Information about the error.

", + "smithy.api#xmlName": "error" + } + }, + "ResourceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceId", + "smithy.api#documentation": "

The ID of the resource.

", + "smithy.api#xmlName": "resourceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about items that were not successfully processed in a batch call.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulItemError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message accompanying the error code.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the error that occurred. For more information about errors, see Error codes.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulItemList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UnsuccessfulItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnsuccessfulItemSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UnsuccessfulItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnsuccessfulSuppressionResponseObject": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "SuppressAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "SuppressAt", + "smithy.api#documentation": "

The date and time when suppression was attempted.

", + "smithy.api#xmlName": "suppressAt" + } + }, + "ResumeAt": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "ResumeAt", + "smithy.api#documentation": "

The date and time when health checks would have resumed.

", + "smithy.api#xmlName": "resumeAt" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason the suppression failed.

", + "smithy.api#xmlName": "reason" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an unsuccessful application status check suppression.

" + } + }, + "com.amazonaws.ec2#UnsuccessfulSuppressionResponseSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UnsuccessfulSuppressionResponseObject", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UnsupportedInstanceTypeRequestSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeItemRequest", + "traits": { + "smithy.api#xmlName": "Item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ec2#UnsupportedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#InstanceTypeItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysResult" + }, + "traits": { + "smithy.api#documentation": "

\nActivates or deactivates tag keys for monitoring by EC2 Capacity Manager. Activated tag keys are included as dimensions in capacity metric data, enabling you to group and filter metrics by tag values.\n

" + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysRequest": { + "type": "structure", + "members": { + "ActivateTagKeys": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

\nThe tag keys to activate for monitoring. Once activated, these tag keys will be included as dimensions in capacity metric data.\n

", + "smithy.api#xmlName": "ActivateTagKey" + } + }, + "DeactivateTagKeys": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "smithy.api#documentation": "

\nThe tag keys to deactivate. Deactivated tag keys will no longer be included as dimensions in capacity metric data.\n

", + "smithy.api#xmlName": "DeactivateTagKey" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response.\nIf you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nUnique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerMonitoredTagKeysResult": { + "type": "structure", + "members": { + "CapacityManagerTagKeys": { + "target": "com.amazonaws.ec2#CapacityManagerMonitoredTagKeyList", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerTagKeySet", + "smithy.api#documentation": "

\nThe list of tag keys affected by the update, including their current status and metadata.\n

", + "smithy.api#xmlName": "capacityManagerTagKeySet" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessResult" + }, + "traits": { + "smithy.api#documentation": "

\nUpdates the Organizations access setting for EC2 Capacity Manager. This controls whether Capacity Manager can aggregate \ndata from all accounts in your Amazon Web Services Organization or only from the current account.\n

" + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessRequest": { + "type": "structure", + "members": { + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#BoxedBoolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n Specifies whether to enable or disable cross-account access for Amazon Web Services Organizations. When enabled, Capacity Manager aggregates data from all accounts in your organization.\n

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\nChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If \nyou have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

\nUnique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UpdateCapacityManagerOrganizationsAccessResult": { + "type": "structure", + "members": { + "CapacityManagerStatus": { + "target": "com.amazonaws.ec2#CapacityManagerStatus", + "traits": { + "aws.protocols#ec2QueryName": "CapacityManagerStatus", + "smithy.api#documentation": "

\nThe current status of Capacity Manager after the update operation.\n

", + "smithy.api#xmlName": "capacityManagerStatus" + } + }, + "OrganizationsAccess": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OrganizationsAccess", + "smithy.api#documentation": "

\nThe updated Organizations access setting indicating whether cross-account data aggregation is enabled.\n

", + "smithy.api#xmlName": "organizationsAccess" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocation": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationResult" + }, + "traits": { + "smithy.api#documentation": "

\n\t\t\tModifies the number of instances allocated to an interruptible reservation, allowing you to add more capacity or reclaim capacity to your source Capacity Reservation.\n\t\t

" + } + }, + "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationRequest": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

\n\t\t\tThe ID of the source Capacity Reservation containing the interruptible allocation to modify.\n\t\t

", + "smithy.api#required": {} + } + }, + "TargetInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

\n\t\t\tThe new number of instances to allocate. Enter a higher number to add more capacity to share, or a lower number to reclaim capacity to your source Capacity Reservation.\n\t\t

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\n\t\t\tChecks whether you have the required permissions for the action, without actually making the request, and provides an error response.\n\t\t

" + } + }, + "ZeroSizePreference": { + "target": "com.amazonaws.ec2#ZeroSizePreference", + "traits": { + "smithy.api#documentation": "

\n\t\t\tSpecifies the updated behavior for the interruptible Capacity Reservation when you reduce its allocation to zero instances. Specify retain to keep the interruptible Capacity Reservation active at zero capacity so that you can allocate instances to it again later. Specify default to cancel the interruptible Capacity Reservation and return the capacity to your source Capacity Reservation.\n\t\t

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UpdateInterruptibleCapacityReservationAllocationResult": { + "type": "structure", + "members": { + "InterruptibleCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "InterruptibleCapacityReservationId", + "smithy.api#documentation": "

\n\t\t\tThe ID of the interruptible Capacity Reservation that was modified.\n\t\t

", + "smithy.api#xmlName": "interruptibleCapacityReservationId" + } + }, + "SourceCapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "SourceCapacityReservationId", + "smithy.api#documentation": "

\n\t\t\tThe ID of the source Capacity Reservation to which capacity was reclaimed or from which capacity was allocated.\n\t\t

", + "smithy.api#xmlName": "sourceCapacityReservationId" + } + }, + "InstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "InstanceCount", + "smithy.api#documentation": "

\n\t\t\tThe current number of instances allocated to the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "instanceCount" + } + }, + "TargetInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetInstanceCount", + "smithy.api#documentation": "

\n\t\t\tThe requested number of instances for the interruptible Capacity Reservation.\n\t\t

", + "smithy.api#xmlName": "targetInstanceCount" + } + }, + "Status": { + "target": "com.amazonaws.ec2#InterruptibleCapacityReservationAllocationStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

\n\t\t\tThe current status of the allocation (updating during reclamation, active when complete).\n\t\t

", + "smithy.api#xmlName": "status" + } + }, + "InterruptionType": { + "target": "com.amazonaws.ec2#InterruptionType", + "traits": { + "aws.protocols#ec2QueryName": "InterruptionType", + "smithy.api#documentation": "

\n\t\t\tThe interruption type for the interruptible reservation.\n\t\t

", + "smithy.api#xmlName": "interruptionType" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressResult" + }, + "traits": { + "smithy.api#documentation": "

Updates the description of an egress (outbound) security group rule. You\n\t\t\tcan replace an existing description, or add a description to a rule that did not have one\n\t\t\tpreviously. You can remove a description for a security group rule by omitting the \n\t\t\tdescription parameter in the request.

", + "smithy.api#examples": [ + { + "title": "To update an outbound security group rule description", + "documentation": "This example updates the description for the specified security group rule.", + "input": { + "GroupId": "sg-123abc12", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 80, + "ToPort": 80, + "IpRanges": [ + { + "CidrIp": "203.0.113.0/24", + "Description": "Outbound HTTP access to server 2" + } + ] + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group. You must specify either the security group ID or the\n\t\t\tsecurity group name in the request. For security groups in a nondefault VPC, you must\n\t\t\tspecify the security group ID.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the security group. You must specify either the security group\n\t\t\tID or the security group name.

" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "smithy.api#documentation": "

The IP permissions for the security group rule. You must specify either the IP permissions\n\t\t or the description.

" + } + }, + "SecurityGroupRuleDescriptions": { + "target": "com.amazonaws.ec2#SecurityGroupRuleDescriptionList", + "traits": { + "smithy.api#documentation": "

The description for the egress security group rules. You must specify either the\n description or the IP permissions.

", + "smithy.api#xmlName": "SecurityGroupRuleDescription" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressRequest" + }, + "output": { + "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressResult" + }, + "traits": { + "smithy.api#documentation": "

Updates the description of an ingress (inbound) security group rule. You can replace an\n\t\t\texisting description, or add a description to a rule that did not have one previously.\n\t\t You can remove a description for a security group rule by omitting the description \n\t\t parameter in the request.

", + "smithy.api#examples": [ + { + "title": "To update an inbound security group rule description", + "documentation": "This example updates the description for the specified security group rule.", + "input": { + "GroupId": "sg-123abc12", + "IpPermissions": [ + { + "IpProtocol": "tcp", + "FromPort": 22, + "ToPort": 22, + "IpRanges": [ + { + "CidrIp": "203.0.113.0/16", + "Description": "SSH access from the LA office" + } + ] + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The ID of the security group. You must specify either the security group ID or the\n\t\t\tsecurity group name in the request. For security groups in a nondefault VPC, you must\n\t\t\tspecify the security group ID.

" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#SecurityGroupName", + "traits": { + "smithy.api#documentation": "

[Default VPC] The name of the security group. You must specify either the\n security group ID or the security group name. For security groups in a\n nondefault VPC, you must specify the security group ID.

" + } + }, + "IpPermissions": { + "target": "com.amazonaws.ec2#IpPermissionList", + "traits": { + "smithy.api#documentation": "

The IP permissions for the security group rule. You must specify either IP permissions\n\t\t or a description.

" + } + }, + "SecurityGroupRuleDescriptions": { + "target": "com.amazonaws.ec2#SecurityGroupRuleDescriptionList", + "traits": { + "smithy.api#documentation": "

The description for the ingress security group rules. You must specify either\n a description or IP permissions.

", + "smithy.api#xmlName": "SecurityGroupRuleDescription" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, returns an error.

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#UsageClassType": { + "type": "enum", + "members": { + "spot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spot" + } + }, + "on_demand": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "on-demand" + } + }, + "capacity_block": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "capacity-block" + } + } + } + }, + "com.amazonaws.ec2#UsageClassTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UsageClassType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UserBucket": { + "type": "structure", + "members": { + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket where the disk image is located.

" + } + }, + "S3Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The file name of the disk image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon S3 bucket for the disk image.

" + } + }, + "com.amazonaws.ec2#UserBucketDetails": { + "type": "structure", + "members": { + "S3Bucket": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Bucket", + "smithy.api#documentation": "

The Amazon S3 bucket from which the disk image was created.

", + "smithy.api#xmlName": "s3Bucket" + } + }, + "S3Key": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "S3Key", + "smithy.api#documentation": "

The file name of the disk image.

", + "smithy.api#xmlName": "s3Key" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon S3 bucket for the disk image.

" + } + }, + "com.amazonaws.ec2#UserData": { + "type": "structure", + "members": { + "Data": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Data", + "smithy.api#documentation": "

The user data. If you are using an Amazon Web Services SDK or command line tool, Base64-encoding is performed for you, and you\n can load the text from a file. Otherwise, you must provide Base64-encoded text.

", + "smithy.api#xmlName": "data" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the user data for an instance.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#UserGroupStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "UserGroup" + } + } + }, + "com.amazonaws.ec2#UserIdGroupPair": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the security group rule that references this user ID group\n\t\t\tpair.

\n

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9,\n spaces, and ._-:/()#,@[]+=;{}!$*

", + "smithy.api#xmlName": "description" + } + }, + "UserId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserId", + "smithy.api#documentation": "

The ID of an Amazon Web Services account.

\n

For a referenced security group in another VPC, the account ID of the referenced\n security group is returned in the response. If the referenced security group is deleted,\n this value is not returned.

", + "smithy.api#xmlName": "userId" + } + }, + "GroupName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupName", + "smithy.api#documentation": "

[Default VPC] The name of the security group. For a security group in a nondefault VPC, \n use the security group ID.

\n

For a referenced security group in another VPC, this value is not returned if the\n referenced security group is deleted.

", + "smithy.api#xmlName": "groupName" + } + }, + "GroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "GroupId", + "smithy.api#documentation": "

The ID of the security group.

", + "smithy.api#xmlName": "groupId" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC for the referenced security group, if applicable.

", + "smithy.api#xmlName": "vpcId" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of the VPC peering connection, if applicable.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + }, + "PeeringStatus": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PeeringStatus", + "smithy.api#documentation": "

The status of a VPC peering connection, if applicable.

", + "smithy.api#xmlName": "peeringStatus" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a security group and Amazon Web Services account ID pair.

" + } + }, + "com.amazonaws.ec2#UserIdGroupPairList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UserIdGroupPair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UserIdGroupPairSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#UserIdGroupPair", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UserIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#UserIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "UserId" + } + } + }, + "com.amazonaws.ec2#UserTrustProviderType": { + "type": "enum", + "members": { + "iam_identity_center": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "iam-identity-center" + } + }, + "oidc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "oidc" + } + } + } + }, + "com.amazonaws.ec2#VCpuCount": { + "type": "integer" + }, + "com.amazonaws.ec2#VCpuCountRange": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Min", + "smithy.api#documentation": "

The minimum number of vCPUs. If the value is 0, there is no minimum\n limit.

", + "smithy.api#xmlName": "min" + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Max", + "smithy.api#documentation": "

The maximum number of vCPUs. If this parameter is not specified, there is no maximum\n limit.

", + "smithy.api#xmlName": "max" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of vCPUs.

" + } + }, + "com.amazonaws.ec2#VCpuCountRangeRequest": { + "type": "structure", + "members": { + "Min": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The minimum number of vCPUs. To specify no minimum limit, specify 0.

", + "smithy.api#required": {} + } + }, + "Max": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of vCPUs. To specify no maximum limit, omit this parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of vCPUs.

" + } + }, + "com.amazonaws.ec2#VCpuInfo": { + "type": "structure", + "members": { + "DefaultVCpus": { + "target": "com.amazonaws.ec2#VCpuCount", + "traits": { + "aws.protocols#ec2QueryName": "DefaultVCpus", + "smithy.api#documentation": "

The default number of vCPUs for the instance type.

", + "smithy.api#xmlName": "defaultVCpus" + } + }, + "DefaultCores": { + "target": "com.amazonaws.ec2#CoreCount", + "traits": { + "aws.protocols#ec2QueryName": "DefaultCores", + "smithy.api#documentation": "

The default number of cores for the instance type.

", + "smithy.api#xmlName": "defaultCores" + } + }, + "DefaultThreadsPerCore": { + "target": "com.amazonaws.ec2#ThreadsPerCore", + "traits": { + "aws.protocols#ec2QueryName": "DefaultThreadsPerCore", + "smithy.api#documentation": "

The default number of threads per core for the instance type.

", + "smithy.api#xmlName": "defaultThreadsPerCore" + } + }, + "ValidCores": { + "target": "com.amazonaws.ec2#CoreCountList", + "traits": { + "aws.protocols#ec2QueryName": "ValidCores", + "smithy.api#documentation": "

The valid number of cores that can be configured for the instance type.

", + "smithy.api#xmlName": "validCores" + } + }, + "ValidThreadsPerCore": { + "target": "com.amazonaws.ec2#ThreadsPerCoreList", + "traits": { + "aws.protocols#ec2QueryName": "ValidThreadsPerCore", + "smithy.api#documentation": "

The valid number of threads per core that can be configured for the instance type.

", + "smithy.api#xmlName": "validThreadsPerCore" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the vCPU configurations for the instance type.

" + } + }, + "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterface": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceResult" + }, + "traits": { + "smithy.api#documentation": "

Validates whether the specified security groups can be associated with a single\n network interface. The operation checks Amazon Virtual Private Cloud (Amazon VPC)\n quotas. It checks inbound or outbound rules per security group and security groups\n per network interface. Only authorized Amazon Web Services services can call this operation.

\n

For more information about security group quotas, see Amazon\n VPC quotas in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceRequest": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The IDs of the security groups to validate for association with a single network\n interface. You must specify at least one ID, and each ID must be unique. The number\n of IDs cannot exceed the maximum number of security groups allowed per network\n interface.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SecurityGroupId" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#ValidateSecurityGroupQuotasForInterfaceResult": { + "type": "structure", + "members": { + "Valid": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Valid", + "smithy.api#documentation": "

Specifies whether the specified security groups can be associated with a single\n network interface without exceeding the quotas. If associating the security groups\n would exceed a quota, the operation returns an error.

", + "smithy.api#xmlName": "valid" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#ValidationError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code that indicates why the parameter or parameter combination is not valid.\n For more information about error codes, see Error codes.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message that describes why the parameter or parameter combination is not\n valid. For more information about error messages, see Error codes.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

The error code and error message that is returned for a parameter or parameter\n combination that is not valid when a new launch template or new version of a launch\n template is created.

" + } + }, + "com.amazonaws.ec2#ValidationWarning": { + "type": "structure", + "members": { + "Errors": { + "target": "com.amazonaws.ec2#ErrorSet", + "traits": { + "aws.protocols#ec2QueryName": "ErrorSet", + "smithy.api#documentation": "

The error codes and error messages.

", + "smithy.api#xmlName": "errorSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

The error codes and error messages that are returned for the parameters or parameter\n combinations that are not valid when a new launch template or new version of a launch\n template is created.

" + } + }, + "com.amazonaws.ec2#ValueStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerificationMethod": { + "type": "enum", + "members": { + "remarks_x509": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "remarks-x509" + } + }, + "dns_token": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dns-token" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpoint": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstanceId" + } + }, + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroupId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroupId" + } + }, + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access endpoint.

", + "smithy.api#xmlName": "verifiedAccessEndpointId" + } + }, + "ApplicationDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ApplicationDomain", + "smithy.api#documentation": "

The DNS name for users to reach your application.

", + "smithy.api#xmlName": "applicationDomain" + } + }, + "EndpointType": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointType", + "traits": { + "aws.protocols#ec2QueryName": "EndpointType", + "smithy.api#documentation": "

The type of Amazon Web Services Verified Access endpoint. Incoming application requests will be sent to an IP\n address, load balancer or a network interface depending on the endpoint type\n specified.

", + "smithy.api#xmlName": "endpointType" + } + }, + "AttachmentType": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointAttachmentType", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentType", + "smithy.api#documentation": "

The type of attachment used to provide connectivity between the Amazon Web Services Verified Access endpoint and the\n application.

", + "smithy.api#xmlName": "attachmentType" + } + }, + "DomainCertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DomainCertificateArn", + "smithy.api#documentation": "

The ARN of a public TLS/SSL certificate imported into or created with ACM.

", + "smithy.api#xmlName": "domainCertificateArn" + } + }, + "EndpointDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EndpointDomain", + "smithy.api#documentation": "

A DNS name that is generated for the endpoint.

", + "smithy.api#xmlName": "endpointDomain" + } + }, + "DeviceValidationDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeviceValidationDomain", + "smithy.api#documentation": "

Returned if endpoint has a device trust provider attached.

", + "smithy.api#xmlName": "deviceValidationDomain" + } + }, + "SecurityGroupIds": { + "target": "com.amazonaws.ec2#SecurityGroupIdList", + "traits": { + "aws.protocols#ec2QueryName": "SecurityGroupIdSet", + "smithy.api#documentation": "

The IDs of the security groups for the endpoint.

", + "smithy.api#xmlName": "securityGroupIdSet" + } + }, + "LoadBalancerOptions": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointLoadBalancerOptions", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerOptions", + "smithy.api#documentation": "

The load balancer details if creating the Amazon Web Services Verified Access endpoint as\n load-balancertype.

", + "smithy.api#xmlName": "loadBalancerOptions" + } + }, + "NetworkInterfaceOptions": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointEniOptions", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceOptions", + "smithy.api#documentation": "

The options for network-interface type endpoint.

", + "smithy.api#xmlName": "networkInterfaceOptions" + } + }, + "Status": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The endpoint status.

", + "smithy.api#xmlName": "status" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the Amazon Web Services Verified Access endpoint.

", + "smithy.api#xmlName": "description" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedTime", + "smithy.api#documentation": "

The last updated time.

", + "smithy.api#xmlName": "lastUpdatedTime" + } + }, + "DeletionTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeletionTime", + "smithy.api#documentation": "

The deletion time.

", + "smithy.api#xmlName": "deletionTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SseSpecification", + "smithy.api#documentation": "

The options in use for server side encryption.

", + "smithy.api#xmlName": "sseSpecification" + } + }, + "RdsOptions": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointRdsOptions", + "traits": { + "aws.protocols#ec2QueryName": "RdsOptions", + "smithy.api#documentation": "

The options for an RDS endpoint.

", + "smithy.api#xmlName": "rdsOptions" + } + }, + "CidrOptions": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointCidrOptions", + "traits": { + "aws.protocols#ec2QueryName": "CidrOptions", + "smithy.api#documentation": "

The options for a CIDR endpoint.

", + "smithy.api#xmlName": "cidrOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon Web Services Verified Access endpoint specifies the application that Amazon Web Services Verified Access provides access to. It must be\n attached to an Amazon Web Services Verified Access group. An Amazon Web Services Verified Access endpoint must also have an attached access policy\n before you attached it to a group.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointAttachmentType": { + "type": "enum", + "members": { + "vpc": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vpc" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointCidrOptions": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR.

", + "smithy.api#xmlName": "cidr" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "PortRangeSet", + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "portRangeSet" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointSubnetIdList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIdSet", + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "subnetIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the CIDR options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointEniOptions": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "target": "com.amazonaws.ec2#NetworkInterfaceId", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceId", + "smithy.api#documentation": "

The ID of the network interface.

", + "smithy.api#xmlName": "networkInterfaceId" + } + }, + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The IP protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The IP port number.

", + "smithy.api#xmlName": "port" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "PortRangeSet", + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "portRangeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for a network-interface type endpoint.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointId": { + "type": "string" + }, + "com.amazonaws.ec2#VerifiedAccessEndpointIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointLoadBalancerOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The IP protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The IP port number.

", + "smithy.api#xmlName": "port" + } + }, + "LoadBalancerArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LoadBalancerArn", + "smithy.api#documentation": "

The ARN of the load balancer.

", + "smithy.api#xmlName": "loadBalancerArn" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointSubnetIdList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIdSet", + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "subnetIdSet" + } + }, + "PortRanges": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortRangeList", + "traits": { + "aws.protocols#ec2QueryName": "PortRangeSet", + "smithy.api#documentation": "

The port ranges.

", + "smithy.api#xmlName": "portRangeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a load balancer when creating an Amazon Web Services Verified Access endpoint using the\n load-balancer type.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 65535 + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "aws.protocols#ec2QueryName": "FromPort", + "smithy.api#documentation": "

The start of the port range.

", + "smithy.api#xmlName": "fromPort" + } + }, + "ToPort": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "aws.protocols#ec2QueryName": "ToPort", + "smithy.api#documentation": "

The end of the port range.

", + "smithy.api#xmlName": "toPort" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a port range.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointPortRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortRange", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointProtocol": { + "type": "enum", + "members": { + "http": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http" + } + }, + "https": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "https" + } + }, + "tcp": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tcp" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointRdsOptions": { + "type": "structure", + "members": { + "Protocol": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointProtocol", + "traits": { + "aws.protocols#ec2QueryName": "Protocol", + "smithy.api#documentation": "

The protocol.

", + "smithy.api#xmlName": "protocol" + } + }, + "Port": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber", + "traits": { + "aws.protocols#ec2QueryName": "Port", + "smithy.api#documentation": "

The port.

", + "smithy.api#xmlName": "port" + } + }, + "RdsDbInstanceArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RdsDbInstanceArn", + "smithy.api#documentation": "

The ARN of the RDS instance.

", + "smithy.api#xmlName": "rdsDbInstanceArn" + } + }, + "RdsDbClusterArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RdsDbClusterArn", + "smithy.api#documentation": "

The ARN of the DB cluster.

", + "smithy.api#xmlName": "rdsDbClusterArn" + } + }, + "RdsDbProxyArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RdsDbProxyArn", + "smithy.api#documentation": "

The ARN of the RDS proxy.

", + "smithy.api#xmlName": "rdsDbProxyArn" + } + }, + "RdsEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RdsEndpoint", + "smithy.api#documentation": "

The RDS endpoint.

", + "smithy.api#xmlName": "rdsEndpoint" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointSubnetIdList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIdSet", + "smithy.api#documentation": "

The IDs of the subnets.

", + "smithy.api#xmlName": "subnetIdSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the RDS options for a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status code of the Verified Access endpoint.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The status message of the Verified Access endpoint.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of a Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointStatusCode": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "updating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "updating" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointSubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointTarget": { + "type": "structure", + "members": { + "VerifiedAccessEndpointId": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointId", + "smithy.api#documentation": "

The ID of the Verified Access endpoint.

", + "smithy.api#xmlName": "verifiedAccessEndpointId" + } + }, + "VerifiedAccessEndpointTargetIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointTargetIpAddress", + "smithy.api#documentation": "

The IP address of the target.

", + "smithy.api#xmlName": "verifiedAccessEndpointTargetIpAddress" + } + }, + "VerifiedAccessEndpointTargetDns": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessEndpointTargetDns", + "smithy.api#documentation": "

The DNS name of the target.

", + "smithy.api#xmlName": "verifiedAccessEndpointTargetDns" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the targets for the specified Verified Access endpoint.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointTargetList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessEndpointTarget", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessEndpointType": { + "type": "enum", + "members": { + "load_balancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "load-balancer" + } + }, + "network_interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "network-interface" + } + }, + "rds": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rds" + } + }, + "cidr": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cidr" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessGroup": { + "type": "structure", + "members": { + "VerifiedAccessGroupId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroupId", + "smithy.api#documentation": "

The ID of the Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroupId" + } + }, + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstanceId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the Amazon Web Services Verified Access group.

", + "smithy.api#xmlName": "description" + } + }, + "Owner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Owner", + "smithy.api#documentation": "

The Amazon Web Services account number that owns the group.

", + "smithy.api#xmlName": "owner" + } + }, + "VerifiedAccessGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessGroupArn", + "smithy.api#documentation": "

The ARN of the Verified Access group.

", + "smithy.api#xmlName": "verifiedAccessGroupArn" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedTime", + "smithy.api#documentation": "

The last updated time.

", + "smithy.api#xmlName": "lastUpdatedTime" + } + }, + "DeletionTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeletionTime", + "smithy.api#documentation": "

The deletion time.

", + "smithy.api#xmlName": "deletionTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SseSpecification", + "smithy.api#documentation": "

The options in use for server side encryption.

", + "smithy.api#xmlName": "sseSpecification" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Verified Access group.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessGroupId": { + "type": "string" + }, + "com.amazonaws.ec2#VerifiedAccessGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessGroup", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstance": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstanceId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the Amazon Web Services Verified Access instance.

", + "smithy.api#xmlName": "description" + } + }, + "VerifiedAccessTrustProviders": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderCondensedList", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProviderSet", + "smithy.api#documentation": "

The IDs of the Amazon Web Services Verified Access trust providers.

", + "smithy.api#xmlName": "verifiedAccessTrustProviderSet" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedTime", + "smithy.api#documentation": "

The last updated time.

", + "smithy.api#xmlName": "lastUpdatedTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "FipsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "FipsEnabled", + "smithy.api#documentation": "

Indicates whether support for Federal Information Processing Standards (FIPS) is enabled on the instance.

", + "smithy.api#xmlName": "fipsEnabled" + } + }, + "CidrEndpointsCustomSubDomain": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceCustomSubDomain", + "traits": { + "aws.protocols#ec2QueryName": "CidrEndpointsCustomSubDomain", + "smithy.api#documentation": "

The custom subdomain.

", + "smithy.api#xmlName": "cidrEndpointsCustomSubDomain" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Verified Access instance.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceCustomSubDomain": { + "type": "structure", + "members": { + "SubDomain": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SubDomain", + "smithy.api#documentation": "

The subdomain.

", + "smithy.api#xmlName": "subDomain" + } + }, + "Nameservers": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "NameserverSet", + "smithy.api#documentation": "

The name servers.

", + "smithy.api#xmlName": "nameserverSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a custom subdomain for a network CIDR endpoint for Verified Access.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceId": { + "type": "string" + }, + "com.amazonaws.ec2#VerifiedAccessInstanceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessInstance", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceLoggingConfiguration": { + "type": "structure", + "members": { + "VerifiedAccessInstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessInstanceId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access instance.

", + "smithy.api#xmlName": "verifiedAccessInstanceId" + } + }, + "AccessLogs": { + "target": "com.amazonaws.ec2#VerifiedAccessLogs", + "traits": { + "aws.protocols#ec2QueryName": "AccessLogs", + "smithy.api#documentation": "

Details about the logging options.

", + "smithy.api#xmlName": "accessLogs" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes logging options for an Amazon Web Services Verified Access instance.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceLoggingConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceLoggingConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfiguration": { + "type": "structure", + "members": { + "Config": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Config", + "smithy.api#documentation": "

The base64-encoded Open VPN client configuration.

", + "smithy.api#xmlName": "config" + } + }, + "Routes": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationRouteList", + "traits": { + "aws.protocols#ec2QueryName": "RouteSet", + "smithy.api#documentation": "

The routes.

", + "smithy.api#xmlName": "routeSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a set of routes.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfiguration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationRoute": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Cidr", + "smithy.api#documentation": "

The CIDR block.

", + "smithy.api#xmlName": "cidr" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a route.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationRouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessInstanceOpenVpnClientConfigurationRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessInstanceUserTrustProviderClientConfiguration": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.ec2#UserTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The trust provider type.

", + "smithy.api#xmlName": "type" + } + }, + "Scopes": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Scopes", + "smithy.api#documentation": "

The set of user claims to be requested from the IdP.

", + "smithy.api#xmlName": "scopes" + } + }, + "Issuer": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Issuer", + "smithy.api#documentation": "

The OIDC issuer identifier of the IdP.

", + "smithy.api#xmlName": "issuer" + } + }, + "AuthorizationEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AuthorizationEndpoint", + "smithy.api#documentation": "

The authorization endpoint of the IdP.

", + "smithy.api#xmlName": "authorizationEndpoint" + } + }, + "PublicSigningKeyEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PublicSigningKeyEndpoint", + "smithy.api#documentation": "

The public signing key endpoint.

", + "smithy.api#xmlName": "publicSigningKeyEndpoint" + } + }, + "TokenEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TokenEndpoint", + "smithy.api#documentation": "

The token endpoint of the IdP.

", + "smithy.api#xmlName": "tokenEndpoint" + } + }, + "UserInfoEndpoint": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "UserInfoEndpoint", + "smithy.api#documentation": "

The user info endpoint of the IdP.

", + "smithy.api#xmlName": "userInfoEndpoint" + } + }, + "ClientId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ClientId", + "smithy.api#documentation": "

The OAuth 2.0 client identifier.

", + "smithy.api#xmlName": "clientId" + } + }, + "ClientSecret": { + "target": "com.amazonaws.ec2#ClientSecretType", + "traits": { + "aws.protocols#ec2QueryName": "ClientSecret", + "smithy.api#documentation": "

The OAuth 2.0 client secret.

", + "smithy.api#xmlName": "clientSecret" + } + }, + "PkceEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PkceEnabled", + "smithy.api#documentation": "

Indicates whether Proof of Key Code Exchange (PKCE) is enabled.

", + "smithy.api#xmlName": "pkceEnabled" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the trust provider.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogCloudWatchLogsDestination": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#xmlName": "enabled" + } + }, + "DeliveryStatus": { + "target": "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatus", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryStatus", + "smithy.api#documentation": "

The delivery status for access logs.

", + "smithy.api#xmlName": "deliveryStatus" + } + }, + "LogGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogGroup", + "smithy.api#documentation": "

The ID of the CloudWatch Logs log group.

", + "smithy.api#xmlName": "logGroup" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for CloudWatch Logs as a logging destination.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogCloudWatchLogsDestinationOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#required": {} + } + }, + "LogGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the CloudWatch Logs log group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for CloudWatch Logs as a logging destination.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatus": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatusCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The status message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a log delivery status.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatusCode": { + "type": "enum", + "members": { + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "success" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#VerifiedAccessLogKinesisDataFirehoseDestination": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#xmlName": "enabled" + } + }, + "DeliveryStatus": { + "target": "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatus", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryStatus", + "smithy.api#documentation": "

The delivery status.

", + "smithy.api#xmlName": "deliveryStatus" + } + }, + "DeliveryStream": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryStream", + "smithy.api#documentation": "

The ID of the delivery stream.

", + "smithy.api#xmlName": "deliveryStream" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for Kinesis as a logging destination.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogKinesisDataFirehoseDestinationOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#required": {} + } + }, + "DeliveryStream": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the delivery stream.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes Amazon Kinesis Data Firehose logging options.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogOptions": { + "type": "structure", + "members": { + "S3": { + "target": "com.amazonaws.ec2#VerifiedAccessLogS3DestinationOptions", + "traits": { + "smithy.api#documentation": "

Sends Verified Access logs to Amazon S3.

" + } + }, + "CloudWatchLogs": { + "target": "com.amazonaws.ec2#VerifiedAccessLogCloudWatchLogsDestinationOptions", + "traits": { + "smithy.api#documentation": "

Sends Verified Access logs to CloudWatch Logs.

" + } + }, + "KinesisDataFirehose": { + "target": "com.amazonaws.ec2#VerifiedAccessLogKinesisDataFirehoseDestinationOptions", + "traits": { + "smithy.api#documentation": "

Sends Verified Access logs to Kinesis.

" + } + }, + "LogVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The logging version.

\n

Valid values: ocsf-0.1 | ocsf-1.0.0-rc.2\n

" + } + }, + "IncludeTrustContext": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to include trust data sent by trust providers in the logs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for Verified Access logs.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogS3Destination": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Enabled", + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#xmlName": "enabled" + } + }, + "DeliveryStatus": { + "target": "com.amazonaws.ec2#VerifiedAccessLogDeliveryStatus", + "traits": { + "aws.protocols#ec2QueryName": "DeliveryStatus", + "smithy.api#documentation": "

The delivery status.

", + "smithy.api#xmlName": "deliveryStatus" + } + }, + "BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BucketName", + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#xmlName": "bucketName" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Prefix", + "smithy.api#documentation": "

The bucket prefix.

", + "smithy.api#xmlName": "prefix" + } + }, + "BucketOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "BucketOwner", + "smithy.api#documentation": "

The Amazon Web Services account number that owns the bucket.

", + "smithy.api#xmlName": "bucketOwner" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for Amazon S3 as a logging destination.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogS3DestinationOptions": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Indicates whether logging is enabled.

", + "smithy.api#required": {} + } + }, + "BucketName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The bucket name.

" + } + }, + "Prefix": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The bucket prefix.

" + } + }, + "BucketOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the Amazon S3 bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for Amazon S3 as a logging destination.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessLogs": { + "type": "structure", + "members": { + "S3": { + "target": "com.amazonaws.ec2#VerifiedAccessLogS3Destination", + "traits": { + "aws.protocols#ec2QueryName": "S3", + "smithy.api#documentation": "

Amazon S3 logging options.

", + "smithy.api#xmlName": "s3" + } + }, + "CloudWatchLogs": { + "target": "com.amazonaws.ec2#VerifiedAccessLogCloudWatchLogsDestination", + "traits": { + "aws.protocols#ec2QueryName": "CloudWatchLogs", + "smithy.api#documentation": "

CloudWatch Logs logging destination.

", + "smithy.api#xmlName": "cloudWatchLogs" + } + }, + "KinesisDataFirehose": { + "target": "com.amazonaws.ec2#VerifiedAccessLogKinesisDataFirehoseDestination", + "traits": { + "aws.protocols#ec2QueryName": "KinesisDataFirehose", + "smithy.api#documentation": "

Kinesis logging destination.

", + "smithy.api#xmlName": "kinesisDataFirehose" + } + }, + "LogVersion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LogVersion", + "smithy.api#documentation": "

The log version.

", + "smithy.api#xmlName": "logVersion" + } + }, + "IncludeTrustContext": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IncludeTrustContext", + "smithy.api#documentation": "

Indicates whether trust data is included in the logs.

", + "smithy.api#xmlName": "includeTrustContext" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the options for Verified Access logs.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest": { + "type": "structure", + "members": { + "CustomerManagedKeyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

\n Enable or disable the use of customer managed KMS keys for server side encryption.\n

\n

Valid values: True | False\n

" + } + }, + "KmsKeyArn": { + "target": "com.amazonaws.ec2#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

\n The ARN of the KMS key.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Verified Access provides server side encryption by default to data at rest using Amazon Web Services-owned KMS keys. You also have the option of using customer managed KMS keys, which can be specified using the options below. \n

" + } + }, + "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse": { + "type": "structure", + "members": { + "CustomerManagedKeyEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "CustomerManagedKeyEnabled", + "smithy.api#documentation": "

Indicates whether customer managed KMS keys are in use for server side encryption.

\n

Valid values: True | False\n

", + "smithy.api#xmlName": "customerManagedKeyEnabled" + } + }, + "KmsKeyArn": { + "target": "com.amazonaws.ec2#KmsKeyArn", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyArn", + "smithy.api#documentation": "

The ARN of the KMS key.

", + "smithy.api#xmlName": "kmsKeyArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

The options in use for server side encryption.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessTrustProvider": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProviderId", + "smithy.api#documentation": "

The ID of the Amazon Web Services Verified Access trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProviderId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description for the Amazon Web Services Verified Access trust provider.

", + "smithy.api#xmlName": "description" + } + }, + "TrustProviderType": { + "target": "com.amazonaws.ec2#TrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "TrustProviderType", + "smithy.api#documentation": "

The type of Verified Access trust provider.

", + "smithy.api#xmlName": "trustProviderType" + } + }, + "UserTrustProviderType": { + "target": "com.amazonaws.ec2#UserTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "UserTrustProviderType", + "smithy.api#documentation": "

The type of user-based trust provider.

", + "smithy.api#xmlName": "userTrustProviderType" + } + }, + "DeviceTrustProviderType": { + "target": "com.amazonaws.ec2#DeviceTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "DeviceTrustProviderType", + "smithy.api#documentation": "

The type of device-based trust provider.

", + "smithy.api#xmlName": "deviceTrustProviderType" + } + }, + "OidcOptions": { + "target": "com.amazonaws.ec2#OidcOptions", + "traits": { + "aws.protocols#ec2QueryName": "OidcOptions", + "smithy.api#documentation": "

The options for an OpenID Connect-compatible user-identity trust provider.

", + "smithy.api#xmlName": "oidcOptions" + } + }, + "DeviceOptions": { + "target": "com.amazonaws.ec2#DeviceOptions", + "traits": { + "aws.protocols#ec2QueryName": "DeviceOptions", + "smithy.api#documentation": "

The options for device-identity trust provider.

", + "smithy.api#xmlName": "deviceOptions" + } + }, + "PolicyReferenceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyReferenceName", + "smithy.api#documentation": "

The identifier to be used when working with policy rules.

", + "smithy.api#xmlName": "policyReferenceName" + } + }, + "CreationTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CreationTime", + "smithy.api#documentation": "

The creation time.

", + "smithy.api#xmlName": "creationTime" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdatedTime", + "smithy.api#documentation": "

The last updated time.

", + "smithy.api#xmlName": "lastUpdatedTime" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "SseSpecification": { + "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse", + "traits": { + "aws.protocols#ec2QueryName": "SseSpecification", + "smithy.api#documentation": "

The options in use for server side encryption.

", + "smithy.api#xmlName": "sseSpecification" + } + }, + "NativeApplicationOidcOptions": { + "target": "com.amazonaws.ec2#NativeApplicationOidcOptions", + "traits": { + "aws.protocols#ec2QueryName": "NativeApplicationOidcOptions", + "smithy.api#documentation": "

The OpenID Connect (OIDC) options.

", + "smithy.api#xmlName": "nativeApplicationOidcOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Verified Access trust provider.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessTrustProviderCondensed": { + "type": "structure", + "members": { + "VerifiedAccessTrustProviderId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VerifiedAccessTrustProviderId", + "smithy.api#documentation": "

The ID of the trust provider.

", + "smithy.api#xmlName": "verifiedAccessTrustProviderId" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

The description of trust provider.

", + "smithy.api#xmlName": "description" + } + }, + "TrustProviderType": { + "target": "com.amazonaws.ec2#TrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "TrustProviderType", + "smithy.api#documentation": "

The type of trust provider (user- or device-based).

", + "smithy.api#xmlName": "trustProviderType" + } + }, + "UserTrustProviderType": { + "target": "com.amazonaws.ec2#UserTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "UserTrustProviderType", + "smithy.api#documentation": "

The type of user-based trust provider.

", + "smithy.api#xmlName": "userTrustProviderType" + } + }, + "DeviceTrustProviderType": { + "target": "com.amazonaws.ec2#DeviceTrustProviderType", + "traits": { + "aws.protocols#ec2QueryName": "DeviceTrustProviderType", + "smithy.api#documentation": "

The type of device-based trust provider.

", + "smithy.api#xmlName": "deviceTrustProviderType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Condensed information about a trust provider.

" + } + }, + "com.amazonaws.ec2#VerifiedAccessTrustProviderCondensedList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderCondensed", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessTrustProviderId": { + "type": "string" + }, + "com.amazonaws.ec2#VerifiedAccessTrustProviderIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProviderId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VerifiedAccessTrustProviderList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VerifiedAccessTrustProvider", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VersionDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.ec2#VersionStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VgwTelemetry": { + "type": "structure", + "members": { + "AcceptedRouteCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "AcceptedRouteCount", + "smithy.api#documentation": "

The number of accepted routes.

", + "smithy.api#xmlName": "acceptedRouteCount" + } + }, + "LastStatusChange": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastStatusChange", + "smithy.api#documentation": "

The date and time of the last change in status. This field is updated when changes in IKE (Phase 1), IPSec (Phase 2), or BGP status are detected.

", + "smithy.api#xmlName": "lastStatusChange" + } + }, + "OutsideIpAddress": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutsideIpAddress", + "smithy.api#documentation": "

The Internet-routable IP address of the virtual private gateway's outside\n interface.

", + "smithy.api#xmlName": "outsideIpAddress" + } + }, + "Status": { + "target": "com.amazonaws.ec2#TelemetryStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the VPN tunnel.

", + "smithy.api#xmlName": "status" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

If an error occurs, a description of the error.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "CertificateArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CertificateArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the VPN tunnel endpoint certificate.

", + "smithy.api#xmlName": "certificateArn" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes telemetry for a VPN tunnel.

" + } + }, + "com.amazonaws.ec2#VgwTelemetryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VgwTelemetry", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VirtualizationType": { + "type": "enum", + "members": { + "hvm": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hvm" + } + }, + "paravirtual": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "paravirtual" + } + } + } + }, + "com.amazonaws.ec2#VirtualizationTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VirtualizationType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VirtualizationTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VirtualizationType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } + } + }, + "com.amazonaws.ec2#Volume": { + "type": "structure", + "members": { + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone for the volume.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "SourceVolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceVolumeId", + "smithy.api#documentation": "

The ID of the source volume from which the volume copy was created. Only for \n volume copies.

", + "smithy.api#xmlName": "sourceVolumeId" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Iops", + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents \n the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline \n performance of the volume and the rate at which the volume accumulates I/O credits for bursting.

", + "smithy.api#xmlName": "iops" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the volume.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "VolumeType", + "smithy.api#documentation": "

The volume type.

", + "smithy.api#xmlName": "volumeType" + } + }, + "FastRestored": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "FastRestored", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Indicates whether the volume was created using fast snapshot restore.

", + "smithy.api#xmlName": "fastRestored" + } + }, + "MultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "MultiAttachEnabled", + "smithy.api#documentation": "

Indicates whether Amazon EBS Multi-Attach is enabled.

", + "smithy.api#xmlName": "multiAttachEnabled" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Throughput", + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

", + "smithy.api#xmlName": "throughput" + } + }, + "SseType": { + "target": "com.amazonaws.ec2#SSEType", + "traits": { + "aws.protocols#ec2QueryName": "SseType", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Reserved for future use.

", + "smithy.api#xmlName": "sseType" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the volume.

", + "smithy.api#xmlName": "operator" + } + }, + "VolumeInitializationRate": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "VolumeInitializationRate", + "smithy.api#documentation": "

The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, \n in MiB/s. If no volume initialization rate was specified, the value is null.

", + "smithy.api#xmlName": "volumeInitializationRate" + } + }, + "VolumeArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the volume.

", + "smithy.api#xmlName": "volumeArn" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the volume.

", + "smithy.api#xmlName": "ownerId" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Size", + "smithy.api#documentation": "

The size of the volume, in GiBs.

", + "smithy.api#xmlName": "size" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The snapshot from which the volume was created, if applicable.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone for the volume.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "State": { + "target": "com.amazonaws.ec2#VolumeState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The volume state.

", + "smithy.api#xmlName": "status" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The time stamp when volume creation was initiated.

", + "smithy.api#xmlName": "createTime" + } + }, + "Attachments": { + "target": "com.amazonaws.ec2#VolumeAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentSet", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Information about the volume attachments.

", + "smithy.api#xmlName": "attachmentSet" + } + }, + "Encrypted": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Encrypted", + "smithy.api#documentation": "

Indicates whether the volume is encrypted.

", + "smithy.api#xmlName": "encrypted" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "KmsKeyId", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key that was used to protect the\n volume encryption key for the volume.

", + "smithy.api#xmlName": "kmsKeyId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a volume.

" + } + }, + "com.amazonaws.ec2#VolumeAttachment": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "DeleteOnTermination", + "smithy.api#documentation": "

Indicates whether the EBS volume is deleted on instance termination.

", + "smithy.api#xmlName": "deleteOnTermination" + } + }, + "AssociatedResource": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedResource", + "smithy.api#documentation": "

The ARN of the Amazon Web Services-managed resource \n to which the volume is attached.

", + "smithy.api#xmlName": "associatedResource" + } + }, + "InstanceOwningService": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceOwningService", + "smithy.api#documentation": "

The service principal of the Amazon Web Services service that owns the underlying \n resource to which the volume is attached.

\n

This parameter is returned only for volumes that are attached to \n Amazon Web Services-managed resources.

", + "smithy.api#xmlName": "instanceOwningService" + } + }, + "EbsCardIndex": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "EbsCardIndex", + "smithy.api#documentation": "

The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.

", + "smithy.api#xmlName": "ebsCardIndex" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

\n

If the volume is attached to an Amazon Web Services-managed resource, this parameter \n returns null.

", + "smithy.api#xmlName": "instanceId" + } + }, + "Device": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Device", + "smithy.api#documentation": "

The device name.

\n

If the volume is attached to an Amazon Web Services-managed resource, this parameter \n returns null.

", + "smithy.api#xmlName": "device" + } + }, + "State": { + "target": "com.amazonaws.ec2#VolumeAttachmentState", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The attachment state of the volume.

", + "smithy.api#xmlName": "status" + } + }, + "AttachTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "AttachTime", + "smithy.api#documentation": "

The time stamp when the attachment initiated.

", + "smithy.api#xmlName": "attachTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes volume attachment details.

" + } + }, + "com.amazonaws.ec2#VolumeAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeAttachmentState": { + "type": "enum", + "members": { + "attaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attaching" + } + }, + "attached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "attached" + } + }, + "detaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detaching" + } + }, + "detached": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "detached" + } + }, + "busy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "busy" + } + } + } + }, + "com.amazonaws.ec2#VolumeAttributeName": { + "type": "enum", + "members": { + "autoEnableIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoEnableIO" + } + }, + "productCodes": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "productCodes" + } + } + } + }, + "com.amazonaws.ec2#VolumeDetail": { + "type": "structure", + "members": { + "Size": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Size", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "size" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an EBS volume.

" + } + }, + "com.amazonaws.ec2#VolumeId": { + "type": "string" + }, + "com.amazonaws.ec2#VolumeIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "smithy.api#xmlName": "VolumeId" + } + } + }, + "com.amazonaws.ec2#VolumeIdWithResolver": { + "type": "string" + }, + "com.amazonaws.ec2#VolumeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Volume", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeModification": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "ModificationState": { + "target": "com.amazonaws.ec2#VolumeModificationState", + "traits": { + "aws.protocols#ec2QueryName": "ModificationState", + "smithy.api#documentation": "

The current modification state.

", + "smithy.api#xmlName": "modificationState" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A status message about the modification progress or failure.

", + "smithy.api#xmlName": "statusMessage" + } + }, + "TargetSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetSize", + "smithy.api#documentation": "

The target size of the volume, in GiB.

", + "smithy.api#xmlName": "targetSize" + } + }, + "TargetIops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetIops", + "smithy.api#documentation": "

The target IOPS rate of the volume.

", + "smithy.api#xmlName": "targetIops" + } + }, + "TargetVolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "TargetVolumeType", + "smithy.api#documentation": "

The target EBS volume type of the volume.

", + "smithy.api#xmlName": "targetVolumeType" + } + }, + "TargetThroughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TargetThroughput", + "smithy.api#documentation": "

The target throughput of the volume, in MiB/s.

", + "smithy.api#xmlName": "targetThroughput" + } + }, + "TargetMultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "TargetMultiAttachEnabled", + "smithy.api#documentation": "

The target setting for Amazon EBS Multi-Attach.

", + "smithy.api#xmlName": "targetMultiAttachEnabled" + } + }, + "OriginalSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OriginalSize", + "smithy.api#documentation": "

The original size of the volume, in GiB.

", + "smithy.api#xmlName": "originalSize" + } + }, + "OriginalIops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OriginalIops", + "smithy.api#documentation": "

The original IOPS rate of the volume.

", + "smithy.api#xmlName": "originalIops" + } + }, + "OriginalVolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "OriginalVolumeType", + "smithy.api#documentation": "

The original EBS volume type of the volume.

", + "smithy.api#xmlName": "originalVolumeType" + } + }, + "OriginalThroughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "OriginalThroughput", + "smithy.api#documentation": "

The original throughput of the volume, in MiB/s.

", + "smithy.api#xmlName": "originalThroughput" + } + }, + "OriginalMultiAttachEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "OriginalMultiAttachEnabled", + "smithy.api#documentation": "

The original setting for Amazon EBS Multi-Attach.

", + "smithy.api#xmlName": "originalMultiAttachEnabled" + } + }, + "Progress": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "Progress", + "smithy.api#documentation": "

The modification progress, from 0 to 100 percent complete.

", + "smithy.api#xmlName": "progress" + } + }, + "StartTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "StartTime", + "smithy.api#documentation": "

The modification start time.

", + "smithy.api#xmlName": "startTime" + } + }, + "EndTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndTime", + "smithy.api#documentation": "

The modification completion or failure time.

", + "smithy.api#xmlName": "endTime" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the resource.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the modification status of an EBS volume.

" + } + }, + "com.amazonaws.ec2#VolumeModificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeModification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeModificationState": { + "type": "enum", + "members": { + "modifying": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "optimizing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "optimizing" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#VolumeRecycleBinInfo": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.ec2#VolumeId", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The ID of the volume.

", + "smithy.api#xmlName": "volumeId" + } + }, + "VolumeType": { + "target": "com.amazonaws.ec2#VolumeType", + "traits": { + "aws.protocols#ec2QueryName": "VolumeType", + "smithy.api#documentation": "

The volume type.

", + "smithy.api#xmlName": "volumeType" + } + }, + "State": { + "target": "com.amazonaws.ec2#VolumeState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the volume.

", + "smithy.api#xmlName": "state" + } + }, + "Size": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Size", + "smithy.api#documentation": "

The size of the volume, in GiB.

", + "smithy.api#xmlName": "size" + } + }, + "Iops": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Iops", + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) for the volume.

", + "smithy.api#xmlName": "iops" + } + }, + "Throughput": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "Throughput", + "smithy.api#documentation": "

The throughput that the volume supports, in MiB/s.

", + "smithy.api#xmlName": "throughput" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The ARN of the Outpost on which the volume is stored. For more information, see Amazon EBS volumes on Outposts in the \n Amazon EBS User Guide.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone for the volume.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone for the volume.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "SourceVolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceVolumeId", + "smithy.api#documentation": "

The ID of the source volume.

", + "smithy.api#xmlName": "sourceVolumeId" + } + }, + "SnapshotId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SnapshotId", + "smithy.api#documentation": "

The snapshot from which the volume was created, if applicable.

", + "smithy.api#xmlName": "snapshotId" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the volume.

", + "smithy.api#xmlName": "operator" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The time stamp when volume creation was initiated.

", + "smithy.api#xmlName": "createTime" + } + }, + "RecycleBinEnterTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinEnterTime", + "smithy.api#documentation": "

The date and time when the volume entered the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinEnterTime" + } + }, + "RecycleBinExitTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "RecycleBinExitTime", + "smithy.api#documentation": "

The date and time when the volume is to be permanently deleted from the Recycle Bin.

", + "smithy.api#xmlName": "recycleBinExitTime" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a volume that is currently in the Recycle Bin.

" + } + }, + "com.amazonaws.ec2#VolumeRecycleBinInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeRecycleBinInfo", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeState": { + "type": "enum", + "members": { + "creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "in_use": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in-use" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "error": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + } + }, + "com.amazonaws.ec2#VolumeStatusAction": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The code identifying the operation, for example, enable-volume-io.

", + "smithy.api#xmlName": "code" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the operation.

", + "smithy.api#xmlName": "description" + } + }, + "EventId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventId", + "smithy.api#documentation": "

The ID of the event associated with this operation.

", + "smithy.api#xmlName": "eventId" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventType", + "smithy.api#documentation": "

The event type associated with this operation.

", + "smithy.api#xmlName": "eventType" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a volume status operation code.

" + } + }, + "com.amazonaws.ec2#VolumeStatusActionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeStatusAction", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeStatusAttachmentStatus": { + "type": "structure", + "members": { + "IoPerformance": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "IoPerformance", + "smithy.api#documentation": "

The maximum IOPS supported by the attached instance.

", + "smithy.api#xmlName": "ioPerformance" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the attached instance.

", + "smithy.api#xmlName": "instanceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the instances to which the volume is attached.

" + } + }, + "com.amazonaws.ec2#VolumeStatusAttachmentStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeStatusAttachmentStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeStatusDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ec2#VolumeStatusName", + "traits": { + "aws.protocols#ec2QueryName": "Name", + "smithy.api#documentation": "

The name of the volume status.

\n ", + "smithy.api#xmlName": "name" + } + }, + "Status": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The intended status of the volume status.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a volume status.

" + } + }, + "com.amazonaws.ec2#VolumeStatusDetailsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeStatusDetails", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeStatusEvent": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the event.

", + "smithy.api#xmlName": "description" + } + }, + "EventId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventId", + "smithy.api#documentation": "

The ID of this event.

", + "smithy.api#xmlName": "eventId" + } + }, + "EventType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "EventType", + "smithy.api#documentation": "

The type of this event.

", + "smithy.api#xmlName": "eventType" + } + }, + "NotAfter": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotAfter", + "smithy.api#documentation": "

The latest end time of the event.

", + "smithy.api#xmlName": "notAfter" + } + }, + "NotBefore": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "NotBefore", + "smithy.api#documentation": "

The earliest start time of the event.

", + "smithy.api#xmlName": "notBefore" + } + }, + "InstanceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance associated with the event.

", + "smithy.api#xmlName": "instanceId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a volume status event.

" + } + }, + "com.amazonaws.ec2#VolumeStatusEventsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeStatusEvent", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeStatusInfo": { + "type": "structure", + "members": { + "Details": { + "target": "com.amazonaws.ec2#VolumeStatusDetailsList", + "traits": { + "aws.protocols#ec2QueryName": "Details", + "smithy.api#documentation": "

The details of the volume status.

", + "smithy.api#xmlName": "details" + } + }, + "Status": { + "target": "com.amazonaws.ec2#VolumeStatusInfoStatus", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the volume.

", + "smithy.api#xmlName": "status" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of a volume.

" + } + }, + "com.amazonaws.ec2#VolumeStatusInfoStatus": { + "type": "enum", + "members": { + "ok": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ok" + } + }, + "impaired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "impaired" + } + }, + "insufficient_data": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-data" + } + }, + "warning": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "warning" + } + } + } + }, + "com.amazonaws.ec2#VolumeStatusItem": { + "type": "structure", + "members": { + "Actions": { + "target": "com.amazonaws.ec2#VolumeStatusActionsList", + "traits": { + "aws.protocols#ec2QueryName": "ActionsSet", + "smithy.api#documentation": "

The details of the operation.

", + "smithy.api#xmlName": "actionsSet" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone of the volume.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "OutpostArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutpostArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#xmlName": "outpostArn" + } + }, + "Events": { + "target": "com.amazonaws.ec2#VolumeStatusEventsList", + "traits": { + "aws.protocols#ec2QueryName": "EventsSet", + "smithy.api#documentation": "

A list of events associated with the volume.

", + "smithy.api#xmlName": "eventsSet" + } + }, + "VolumeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VolumeId", + "smithy.api#documentation": "

The volume ID.

", + "smithy.api#xmlName": "volumeId" + } + }, + "VolumeStatus": { + "target": "com.amazonaws.ec2#VolumeStatusInfo", + "traits": { + "aws.protocols#ec2QueryName": "VolumeStatus", + "smithy.api#documentation": "

The volume status.

", + "smithy.api#xmlName": "volumeStatus" + } + }, + "AttachmentStatuses": { + "target": "com.amazonaws.ec2#VolumeStatusAttachmentStatusList", + "traits": { + "aws.protocols#ec2QueryName": "AttachmentStatuses", + "smithy.api#documentation": "

Information about the instances to which the volume is attached.

", + "smithy.api#xmlName": "attachmentStatuses" + } + }, + "InitializationStatusDetails": { + "target": "com.amazonaws.ec2#InitializationStatusDetails", + "traits": { + "aws.protocols#ec2QueryName": "InitializationStatusDetails", + "smithy.api#documentation": "

Information about the volume initialization. It can take up to 5 minutes \n for the volume initialization information to be updated.

\n

Only available for volumes created from snapshots. Not available for empty \n volumes created without a snapshot.

\n

For more information, see \n \n Initialize Amazon EBS volumes.

", + "smithy.api#xmlName": "initializationStatusDetails" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "Operator": { + "target": "com.amazonaws.ec2#OperatorResponse", + "traits": { + "aws.protocols#ec2QueryName": "Operator", + "smithy.api#documentation": "

The service provider that manages the resource.

", + "smithy.api#xmlName": "operator" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the volume status.

" + } + }, + "com.amazonaws.ec2#VolumeStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VolumeStatusItem", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VolumeStatusName": { + "type": "enum", + "members": { + "io_enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "io-enabled" + } + }, + "io_performance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "io-performance" + } + }, + "initialization_state": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initialization-state" + } + } + } + }, + "com.amazonaws.ec2#VolumeType": { + "type": "enum", + "members": { + "standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "io1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "io1" + } + }, + "io2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "io2" + } + }, + "gp2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gp2" + } + }, + "sc1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sc1" + } + }, + "st1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "st1" + } + }, + "gp3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gp3" + } + } + } + }, + "com.amazonaws.ec2#Vpc": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC.

", + "smithy.api#xmlName": "ownerId" + } + }, + "InstanceTenancy": { + "target": "com.amazonaws.ec2#Tenancy", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTenancy", + "smithy.api#documentation": "

The allowed tenancy of instances launched into the VPC.

", + "smithy.api#xmlName": "instanceTenancy" + } + }, + "Ipv6CidrBlockAssociationSet": { + "target": "com.amazonaws.ec2#VpcIpv6CidrBlockAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockAssociationSet", + "smithy.api#documentation": "

Information about the IPv6 CIDR blocks associated with the VPC.

", + "smithy.api#xmlName": "ipv6CidrBlockAssociationSet" + } + }, + "CidrBlockAssociationSet": { + "target": "com.amazonaws.ec2#VpcCidrBlockAssociationSet", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlockAssociationSet", + "smithy.api#documentation": "

Information about the IPv4 CIDR blocks associated with the VPC.

", + "smithy.api#xmlName": "cidrBlockAssociationSet" + } + }, + "IsDefault": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsDefault", + "smithy.api#documentation": "

Indicates whether the VPC is the default VPC.

", + "smithy.api#xmlName": "isDefault" + } + }, + "EncryptionControl": { + "target": "com.amazonaws.ec2#VpcEncryptionControl", + "traits": { + "aws.protocols#ec2QueryName": "EncryptionControl", + "smithy.api#xmlName": "encryptionControl" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the VPC.

", + "smithy.api#xmlName": "tagSet" + } + }, + "BlockPublicAccessStates": { + "target": "com.amazonaws.ec2#BlockPublicAccessStates", + "traits": { + "aws.protocols#ec2QueryName": "BlockPublicAccessStates", + "smithy.api#documentation": "

The state of VPC Block Public Access (BPA).

", + "smithy.api#xmlName": "blockPublicAccessStates" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpcState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the VPC.

", + "smithy.api#xmlName": "state" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The primary IPv4 CIDR block for the VPC.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "DhcpOptionsId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DhcpOptionsId", + "smithy.api#documentation": "

The ID of the set of DHCP options you've associated with the VPC.

", + "smithy.api#xmlName": "dhcpOptionsId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC.

" + } + }, + "com.amazonaws.ec2#VpcAttachment": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "State": { + "target": "com.amazonaws.ec2#AttachmentStatus", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the attachment.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an attachment between a virtual private gateway and a VPC.

" + } + }, + "com.amazonaws.ec2#VpcAttachmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcAttachment", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcAttributeName": { + "type": "enum", + "members": { + "enableDnsSupport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enableDnsSupport" + } + }, + "enableDnsHostnames": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enableDnsHostnames" + } + }, + "enableNetworkAddressUsageMetrics": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enableNetworkAddressUsageMetrics" + } + } + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusion": { + "type": "structure", + "members": { + "ExclusionId": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionId", + "traits": { + "aws.protocols#ec2QueryName": "ExclusionId", + "smithy.api#documentation": "

The ID of the exclusion.

", + "smithy.api#xmlName": "exclusionId" + } + }, + "InternetGatewayExclusionMode": { + "target": "com.amazonaws.ec2#InternetGatewayExclusionMode", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayExclusionMode", + "smithy.api#documentation": "

The exclusion mode for internet gateway traffic.

\n
    \n
  • \n

    \n allow-bidirectional: Allow all internet traffic to and from the excluded VPCs and subnets.

    \n
  • \n
  • \n

    \n allow-egress: Allow outbound internet traffic from the excluded VPCs and subnets. Block inbound internet traffic to the excluded VPCs and subnets. Only applies when VPC Block Public Access is set to Bidirectional.

    \n
  • \n
", + "smithy.api#xmlName": "internetGatewayExclusionMode" + } + }, + "ResourceArn": { + "target": "com.amazonaws.ec2#ResourceArn", + "traits": { + "aws.protocols#ec2QueryName": "ResourceArn", + "smithy.api#documentation": "

The ARN of the exclusion.

", + "smithy.api#xmlName": "resourceArn" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the exclusion.

", + "smithy.api#xmlName": "state" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason for the current exclusion state.

", + "smithy.api#xmlName": "reason" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTimestamp", + "smithy.api#documentation": "

When the exclusion was created.

", + "smithy.api#xmlName": "creationTimestamp" + } + }, + "LastUpdateTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdateTimestamp", + "smithy.api#documentation": "

When the exclusion was last updated.

", + "smithy.api#xmlName": "lastUpdateTimestamp" + } + }, + "DeletionTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "DeletionTimestamp", + "smithy.api#documentation": "

When the exclusion was deleted.

", + "smithy.api#xmlName": "deletionTimestamp" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

\n tag - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that exempts it from the account’s BPA mode and will allow bidirectional or egress-only access. You can create BPA exclusions for VPCs and subnets even when BPA is not enabled on the account to ensure that there is no traffic disruption to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusionId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusionIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusion", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusionState": { + "type": "enum", + "members": { + "create_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-in-progress" + } + }, + "create_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-complete" + } + }, + "create_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "create-failed" + } + }, + "update_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-in-progress" + } + }, + "update_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-complete" + } + }, + "update_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-failed" + } + }, + "delete_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-in-progress" + } + }, + "delete_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-complete" + } + }, + "disable_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable-in-progress" + } + }, + "disable_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable-complete" + } + } + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessExclusionsAllowed": { + "type": "enum", + "members": { + "allowed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allowed" + } + }, + "not_allowed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-allowed" + } + } + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessOptions": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsAccountId", + "smithy.api#documentation": "

An Amazon Web Services account ID.

", + "smithy.api#xmlName": "awsAccountId" + } + }, + "AwsRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AwsRegion", + "smithy.api#documentation": "

An Amazon Web Services Region.

", + "smithy.api#xmlName": "awsRegion" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of VPC BPA.

", + "smithy.api#xmlName": "state" + } + }, + "InternetGatewayBlockMode": { + "target": "com.amazonaws.ec2#InternetGatewayBlockMode", + "traits": { + "aws.protocols#ec2QueryName": "InternetGatewayBlockMode", + "smithy.api#documentation": "

The current mode of VPC BPA.

\n
    \n
  • \n

    \n off: VPC BPA is not enabled and traffic is allowed to and from internet gateways and egress-only internet gateways in this Region.

    \n
  • \n
  • \n

    \n block-bidirectional: Block all traffic to and from internet gateways and egress-only internet gateways in this Region (except for excluded VPCs and subnets).

    \n
  • \n
  • \n

    \n block-ingress: Block all internet traffic to the VPCs in this Region (except for VPCs or subnets which are excluded). Only traffic to and from NAT gateways and egress-only internet gateways is allowed because these gateways only allow outbound connections to be established.

    \n
  • \n
", + "smithy.api#xmlName": "internetGatewayBlockMode" + } + }, + "Reason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Reason", + "smithy.api#documentation": "

The reason for the current state.

", + "smithy.api#xmlName": "reason" + } + }, + "LastUpdateTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "LastUpdateTimestamp", + "smithy.api#documentation": "

The last time the VPC BPA mode was updated.

", + "smithy.api#xmlName": "lastUpdateTimestamp" + } + }, + "ManagedBy": { + "target": "com.amazonaws.ec2#ManagedBy", + "traits": { + "aws.protocols#ec2QueryName": "ManagedBy", + "smithy.api#documentation": "

The entity that manages the state of VPC BPA. Possible values include:

\n
    \n
  • \n

    \n account - The state is managed by the account.

    \n
  • \n
  • \n

    \n declarative-policy - The state is managed by a declarative policy\n and can't be modified by the account.

    \n
  • \n
", + "smithy.api#xmlName": "managedBy" + } + }, + "ExclusionsAllowed": { + "target": "com.amazonaws.ec2#VpcBlockPublicAccessExclusionsAllowed", + "traits": { + "aws.protocols#ec2QueryName": "ExclusionsAllowed", + "smithy.api#documentation": "

Determines if exclusions are allowed. If you have enabled VPC BPA at the Organization level, exclusions may be\n not-allowed. Otherwise, they are allowed.

", + "smithy.api#xmlName": "exclusionsAllowed" + } + } + }, + "traits": { + "smithy.api#documentation": "

VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. To learn more about VPC BPA, see Block public access to VPCs and subnets in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcBlockPublicAccessState": { + "type": "enum", + "members": { + "default_state": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default-state" + } + }, + "update_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-in-progress" + } + }, + "update_complete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update-complete" + } + } + } + }, + "com.amazonaws.ec2#VpcCidrAssociationId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcCidrBlockAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The association ID for the IPv4 CIDR block.

", + "smithy.api#xmlName": "associationId" + } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "CidrBlockState": { + "target": "com.amazonaws.ec2#VpcCidrBlockState", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlockState", + "smithy.api#documentation": "

Information about the state of the CIDR block.

", + "smithy.api#xmlName": "cidrBlockState" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv4 CIDR block associated with a VPC.

" + } + }, + "com.amazonaws.ec2#VpcCidrBlockAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcCidrBlockAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcCidrBlockState": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#VpcCidrBlockStateCode", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the CIDR block.

", + "smithy.api#xmlName": "state" + } + }, + "StatusMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StatusMessage", + "smithy.api#documentation": "

A message about the status of the CIDR block, if applicable.

", + "smithy.api#xmlName": "statusMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of a CIDR block.

" + } + }, + "com.amazonaws.ec2#VpcCidrBlockStateCode": { + "type": "enum", + "members": { + "associating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associating" + } + }, + "associated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associated" + } + }, + "disassociating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociating" + } + }, + "disassociated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disassociated" + } + }, + "failing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#VpcClassicLink": { + "type": "structure", + "members": { + "ClassicLinkEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "ClassicLinkEnabled", + "smithy.api#documentation": "

Indicates whether the VPC is enabled for ClassicLink.

", + "smithy.api#xmlName": "classicLinkEnabled" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the VPC.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Deprecated.

\n
\n

Describes whether a VPC is enabled for ClassicLink.

" + } + }, + "com.amazonaws.ec2#VpcClassicLinkIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#xmlName": "VpcId" + } + } + }, + "com.amazonaws.ec2#VpcClassicLinkList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcClassicLink", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControl": { + "type": "structure", + "members": { + "VpcId": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC associated with the encryption control configuration.

", + "smithy.api#xmlName": "vpcId" + } + }, + "VpcEncryptionControlId": { + "target": "com.amazonaws.ec2#VpcEncryptionControlId", + "traits": { + "aws.protocols#ec2QueryName": "VpcEncryptionControlId", + "smithy.api#documentation": "

The ID of the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "vpcEncryptionControlId" + } + }, + "Mode": { + "target": "com.amazonaws.ec2#VpcEncryptionControlMode", + "traits": { + "aws.protocols#ec2QueryName": "Mode", + "smithy.api#documentation": "

The encryption mode for the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "mode" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpcEncryptionControlState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message providing additional information about the encryption control state.

", + "smithy.api#xmlName": "stateMessage" + } + }, + "ResourceExclusions": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusions", + "traits": { + "aws.protocols#ec2QueryName": "ResourceExclusions", + "smithy.api#documentation": "

Information about resource exclusions for the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "resourceExclusions" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the VPC Encryption Control configuration.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration and state of VPC encryption controls.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcEncryptionControlConfiguration": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.ec2#VpcEncryptionControlMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The encryption mode for the VPC Encryption Control configuration.

", + "smithy.api#required": {} + } + }, + "InternetGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude internet gateway traffic from encryption enforcement.

" + } + }, + "EgressOnlyInternetGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude egress-only internet gateway traffic from encryption enforcement.

" + } + }, + "NatGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude NAT gateway traffic from encryption enforcement.

" + } + }, + "VirtualPrivateGatewayExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude virtual private gateway traffic from encryption enforcement.

" + } + }, + "VpcPeeringExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC peering connection traffic from encryption enforcement.

" + } + }, + "LambdaExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Lambda function traffic from encryption enforcement.

" + } + }, + "VpcLatticeExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude VPC Lattice traffic from encryption enforcement.

" + } + }, + "ElasticFileSystemExclusion": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput", + "traits": { + "smithy.api#documentation": "

Specifies whether to exclude Elastic File System traffic from encryption enforcement.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration settings for VPC Encryption Control.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcEncryptionControlExclusion": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusionState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the exclusion configuration.

", + "smithy.api#xmlName": "state" + } + }, + "StateMessage": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "StateMessage", + "smithy.api#documentation": "

A message providing additional information about the exclusion state.

", + "smithy.api#xmlName": "stateMessage" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an exclusion configuration for VPC Encryption Control.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcEncryptionControlExclusionState": { + "type": "enum", + "members": { + "enabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "disabling": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControlExclusionStateInput": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControlExclusions": { + "type": "structure", + "members": { + "InternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "InternetGateway", + "smithy.api#documentation": "

The exclusion configuration for internet gateway traffic.

", + "smithy.api#xmlName": "internetGateway" + } + }, + "EgressOnlyInternetGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "EgressOnlyInternetGateway", + "smithy.api#documentation": "

The exclusion configuration for egress-only internet gateway traffic.

", + "smithy.api#xmlName": "egressOnlyInternetGateway" + } + }, + "NatGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "NatGateway", + "smithy.api#documentation": "

The exclusion configuration for NAT gateway traffic.

", + "smithy.api#xmlName": "natGateway" + } + }, + "VirtualPrivateGateway": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VirtualPrivateGateway", + "smithy.api#documentation": "

The exclusion configuration for virtual private gateway traffic.

", + "smithy.api#xmlName": "virtualPrivateGateway" + } + }, + "VpcPeering": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeering", + "smithy.api#documentation": "

The exclusion configuration for VPC peering connection traffic.

", + "smithy.api#xmlName": "vpcPeering" + } + }, + "Lambda": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "Lambda", + "smithy.api#documentation": "

The exclusion configuration for Lambda function traffic.

", + "smithy.api#xmlName": "lambda" + } + }, + "VpcLattice": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "VpcLattice", + "smithy.api#documentation": "

The exclusion configuration for VPC Lattice traffic.

", + "smithy.api#xmlName": "vpcLattice" + } + }, + "ElasticFileSystem": { + "target": "com.amazonaws.ec2#VpcEncryptionControlExclusion", + "traits": { + "aws.protocols#ec2QueryName": "ElasticFileSystem", + "smithy.api#documentation": "

The exclusion configuration for Elastic File System traffic.

", + "smithy.api#xmlName": "elasticFileSystem" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the exclusion configurations for various resource types in VPC Encryption Control.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcEncryptionControlId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcEncryptionControlIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEncryptionControlId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControlList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEncryptionControl", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControlMode": { + "type": "enum", + "members": { + "monitor": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "monitor" + } + }, + "enforce": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enforce" + } + } + } + }, + "com.amazonaws.ec2#VpcEncryptionControlState": { + "type": "enum", + "members": { + "enforce_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enforce-in-progress" + } + }, + "monitor_in_progress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "monitor-in-progress" + } + }, + "enforce_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enforce-failed" + } + }, + "monitor_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "monitor-failed" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "delete_failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delete-failed" + } + } + } + }, + "com.amazonaws.ec2#VpcEncryptionNonCompliantResource": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The ID of the non-compliant resource.

", + "smithy.api#xmlName": "id" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of the non-compliant resource.

", + "smithy.api#xmlName": "type" + } + }, + "Description": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Description", + "smithy.api#documentation": "

A description of the non-compliant resource.

", + "smithy.api#xmlName": "description" + } + }, + "IsExcludable": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "IsExcludable", + "smithy.api#documentation": "

Indicates whether the resource can be excluded from encryption enforcement.

", + "smithy.api#xmlName": "isExcludable" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a resource that is not compliant with VPC encryption requirements.

\n

For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide.

" + } + }, + "com.amazonaws.ec2#VpcEncryptionNonCompliantResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEncryptionNonCompliantResource", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpoint": { + "type": "structure", + "members": { + "VpcEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The ID of the endpoint.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "VpcEndpointType": { + "target": "com.amazonaws.ec2#VpcEndpointType", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointType", + "smithy.api#documentation": "

The type of endpoint.

\n

For more information about the types of VPC endpoints, see VPC endpoints in the Amazon Web Services PrivateLink User Guide.

", + "smithy.api#xmlName": "vpcEndpointType" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC to which the endpoint is associated.

", + "smithy.api#xmlName": "vpcId" + } + }, + "ServiceName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceName", + "smithy.api#documentation": "

The name of the service to which the endpoint is associated.

", + "smithy.api#xmlName": "serviceName" + } + }, + "State": { + "target": "com.amazonaws.ec2#State", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the endpoint.

", + "smithy.api#xmlName": "state" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PolicyDocument", + "smithy.api#documentation": "

The policy document associated with the endpoint, if applicable.

", + "smithy.api#xmlName": "policyDocument" + } + }, + "RouteTableIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "RouteTableIdSet", + "smithy.api#documentation": "

(Gateway endpoint) The IDs of the route tables associated with the endpoint.

", + "smithy.api#xmlName": "routeTableIdSet" + } + }, + "SubnetIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "SubnetIdSet", + "smithy.api#documentation": "

(Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, and Tunnel endpoints only) The subnets for the endpoint.

", + "smithy.api#xmlName": "subnetIdSet" + } + }, + "Groups": { + "target": "com.amazonaws.ec2#GroupIdentifierSet", + "traits": { + "aws.protocols#ec2QueryName": "GroupSet", + "smithy.api#documentation": "

(Interface, Resource, ServiceNetwork, and Tunnel endpoints only) Information about the security groups that are associated with\n the network interface.

", + "smithy.api#xmlName": "groupSet" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "aws.protocols#ec2QueryName": "IpAddressType", + "smithy.api#documentation": "

The IP address type for the endpoint.

", + "smithy.api#xmlName": "ipAddressType" + } + }, + "DnsOptions": { + "target": "com.amazonaws.ec2#DnsOptions", + "traits": { + "aws.protocols#ec2QueryName": "DnsOptions", + "smithy.api#documentation": "

The DNS options for the endpoint.

", + "smithy.api#xmlName": "dnsOptions" + } + }, + "PrivateDnsEnabled": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsEnabled", + "smithy.api#documentation": "

(Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.

", + "smithy.api#xmlName": "privateDnsEnabled" + } + }, + "RequesterManaged": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "RequesterManaged", + "smithy.api#documentation": "

Indicates whether the endpoint is being managed by its service.

", + "smithy.api#xmlName": "requesterManaged" + } + }, + "NetworkInterfaceIds": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkInterfaceIdSet", + "smithy.api#documentation": "

(Interface, Gateway Load Balancer endpoints, Resource, ServiceNetwork, and Tunnel endpoints only) The network interfaces for the endpoint.

", + "smithy.api#xmlName": "networkInterfaceIdSet" + } + }, + "DnsEntries": { + "target": "com.amazonaws.ec2#DnsEntrySet", + "traits": { + "aws.protocols#ec2QueryName": "DnsEntrySet", + "smithy.api#documentation": "

(Interface endpoint) The DNS entries for the endpoint.

", + "smithy.api#xmlName": "dnsEntrySet" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTimestamp", + "smithy.api#documentation": "

The date and time that the endpoint was created.

", + "smithy.api#xmlName": "creationTimestamp" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the endpoint.

", + "smithy.api#xmlName": "tagSet" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the endpoint.

", + "smithy.api#xmlName": "ownerId" + } + }, + "LastError": { + "target": "com.amazonaws.ec2#LastError", + "traits": { + "aws.protocols#ec2QueryName": "LastError", + "smithy.api#documentation": "

The last error that occurred for endpoint.

", + "smithy.api#xmlName": "lastError" + } + }, + "Ipv4Prefixes": { + "target": "com.amazonaws.ec2#SubnetIpPrefixesList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv4PrefixSet", + "smithy.api#documentation": "

Array of IPv4 prefixes.

", + "smithy.api#xmlName": "ipv4PrefixSet" + } + }, + "Ipv6Prefixes": { + "target": "com.amazonaws.ec2#SubnetIpPrefixesList", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6PrefixSet", + "smithy.api#documentation": "

Array of IPv6 prefixes.

", + "smithy.api#xmlName": "ipv6PrefixSet" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

Reason for the failure.

", + "smithy.api#xmlName": "failureReason" + } + }, + "ServiceNetworkArn": { + "target": "com.amazonaws.ec2#ServiceNetworkArn", + "traits": { + "aws.protocols#ec2QueryName": "ServiceNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service network.

", + "smithy.api#xmlName": "serviceNetworkArn" + } + }, + "ResourceConfigurationArn": { + "target": "com.amazonaws.ec2#ResourceConfigurationArn", + "traits": { + "aws.protocols#ec2QueryName": "ResourceConfigurationArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource configuration.

", + "smithy.api#xmlName": "resourceConfigurationArn" + } + }, + "ServiceRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceRegion", + "smithy.api#documentation": "

The Region where the service is hosted.

", + "smithy.api#xmlName": "serviceRegion" + } + }, + "PayerResponsibilities": { + "target": "com.amazonaws.ec2#PayerResponsibilitySet", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibilitySet", + "smithy.api#documentation": "

The payer responsibility settings for the endpoint.

", + "smithy.api#xmlName": "payerResponsibilitySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC endpoint.

" + } + }, + "com.amazonaws.ec2#VpcEndpointAssociation": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Id", + "smithy.api#documentation": "

The ID of the VPC endpoint association.

", + "smithy.api#xmlName": "id" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The ID of the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "ServiceNetworkArn": { + "target": "com.amazonaws.ec2#ServiceNetworkArn", + "traits": { + "aws.protocols#ec2QueryName": "ServiceNetworkArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service network.

", + "smithy.api#xmlName": "serviceNetworkArn" + } + }, + "ServiceNetworkName": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceNetworkName", + "smithy.api#documentation": "

The name of the service network.

", + "smithy.api#xmlName": "serviceNetworkName" + } + }, + "AssociatedResourceAccessibility": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedResourceAccessibility", + "smithy.api#documentation": "

The connectivity status of the resources associated to a VPC endpoint. The resource is\n accessible if the associated resource configuration is AVAILABLE, otherwise\n the resource is inaccessible.

", + "smithy.api#xmlName": "associatedResourceAccessibility" + } + }, + "FailureReason": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureReason", + "smithy.api#documentation": "

A message related to why an VPC endpoint association failed.

", + "smithy.api#xmlName": "failureReason" + } + }, + "FailureCode": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "FailureCode", + "smithy.api#documentation": "

An error code related to why an VPC endpoint association failed.

", + "smithy.api#xmlName": "failureCode" + } + }, + "DnsEntry": { + "target": "com.amazonaws.ec2#DnsEntry", + "traits": { + "aws.protocols#ec2QueryName": "DnsEntry", + "smithy.api#documentation": "

The DNS entry of the VPC endpoint association.

", + "smithy.api#xmlName": "dnsEntry" + } + }, + "PrivateDnsEntry": { + "target": "com.amazonaws.ec2#DnsEntry", + "traits": { + "aws.protocols#ec2QueryName": "PrivateDnsEntry", + "smithy.api#documentation": "

The private DNS entry of the VPC endpoint association.

", + "smithy.api#xmlName": "privateDnsEntry" + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociatedResourceArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the associated resource.

", + "smithy.api#xmlName": "associatedResourceArn" + } + }, + "ResourceConfigurationGroupArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ResourceConfigurationGroupArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource configuration group.

", + "smithy.api#xmlName": "resourceConfigurationGroupArn" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags to apply to the VPC endpoint association.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC resources, VPC endpoint services, Lattice services, or service\n networks associated with the VPC endpoint.

" + } + }, + "com.amazonaws.ec2#VpcEndpointAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEndpointAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointConnection": { + "type": "structure", + "members": { + "ServiceId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "ServiceId", + "smithy.api#documentation": "

The ID of the service to which the endpoint is connected.

", + "smithy.api#xmlName": "serviceId" + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointId", + "smithy.api#documentation": "

The ID of the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointId" + } + }, + "VpcEndpointOwner": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointOwner", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointOwner" + } + }, + "VpcEndpointState": { + "target": "com.amazonaws.ec2#State", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointState", + "smithy.api#documentation": "

The state of the VPC endpoint.

", + "smithy.api#xmlName": "vpcEndpointState" + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreationTimestamp", + "smithy.api#documentation": "

The date and time that the VPC endpoint was created.

", + "smithy.api#xmlName": "creationTimestamp" + } + }, + "DnsEntries": { + "target": "com.amazonaws.ec2#DnsEntrySet", + "traits": { + "aws.protocols#ec2QueryName": "DnsEntrySet", + "smithy.api#documentation": "

The DNS entries for the VPC endpoint.

", + "smithy.api#xmlName": "dnsEntrySet" + } + }, + "NetworkLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "NetworkLoadBalancerArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the network load balancers for the service.

", + "smithy.api#xmlName": "networkLoadBalancerArnSet" + } + }, + "GatewayLoadBalancerArns": { + "target": "com.amazonaws.ec2#ValueStringList", + "traits": { + "aws.protocols#ec2QueryName": "GatewayLoadBalancerArnSet", + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service.

", + "smithy.api#xmlName": "gatewayLoadBalancerArnSet" + } + }, + "IpAddressType": { + "target": "com.amazonaws.ec2#IpAddressType", + "traits": { + "aws.protocols#ec2QueryName": "IpAddressType", + "smithy.api#documentation": "

The IP address type for the endpoint.

", + "smithy.api#xmlName": "ipAddressType" + } + }, + "VpcEndpointConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointConnectionId", + "smithy.api#documentation": "

The ID of the VPC endpoint connection.

", + "smithy.api#xmlName": "vpcEndpointConnectionId" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcEndpointRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcEndpointRegion", + "smithy.api#documentation": "

The Region of the endpoint.

", + "smithy.api#xmlName": "vpcEndpointRegion" + } + }, + "PayerResponsibilities": { + "target": "com.amazonaws.ec2#PayerResponsibilitySet", + "traits": { + "aws.protocols#ec2QueryName": "PayerResponsibilitySet", + "smithy.api#documentation": "

The payer responsibility settings for the endpoint.

", + "smithy.api#xmlName": "payerResponsibilitySet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC endpoint connection to a service.

" + } + }, + "com.amazonaws.ec2#VpcEndpointConnectionSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEndpointConnection", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcEndpointIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEndpointId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointRouteTableIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#RouteTableId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointSecurityGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SecurityGroupId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointServiceId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcEndpointServiceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEndpointServiceId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcEndpoint", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointSubnetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SubnetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcEndpointType": { + "type": "enum", + "members": { + "Interface": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Interface" + } + }, + "Gateway": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Gateway" + } + }, + "GatewayLoadBalancer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GatewayLoadBalancer" + } + }, + "Resource": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Resource" + } + }, + "ServiceNetwork": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceNetwork" + } + }, + "Tunnel": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Tunnel" + } + } + } + }, + "com.amazonaws.ec2#VpcFlowLogId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcId", + "traits": { + "smithy.api#xmlName": "VpcId" + } + } + }, + "com.amazonaws.ec2#VpcIpv6CidrBlockAssociation": { + "type": "structure", + "members": { + "AssociationId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AssociationId", + "smithy.api#documentation": "

The association ID for the IPv6 CIDR block.

", + "smithy.api#xmlName": "associationId" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlock", + "smithy.api#documentation": "

The IPv6 CIDR block.

", + "smithy.api#xmlName": "ipv6CidrBlock" + } + }, + "Ipv6CidrBlockState": { + "target": "com.amazonaws.ec2#VpcCidrBlockState", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockState", + "smithy.api#documentation": "

Information about the state of the CIDR block.

", + "smithy.api#xmlName": "ipv6CidrBlockState" + } + }, + "NetworkBorderGroup": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NetworkBorderGroup", + "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which Amazon Web Services advertises IP addresses, for example, us-east-1-wl1-bos-wlz-1.

", + "smithy.api#xmlName": "networkBorderGroup" + } + }, + "Ipv6Pool": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6Pool", + "smithy.api#documentation": "

The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.

", + "smithy.api#xmlName": "ipv6Pool" + } + }, + "Ipv6AddressAttribute": { + "target": "com.amazonaws.ec2#Ipv6AddressAttribute", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6AddressAttribute", + "smithy.api#documentation": "

Public IPv6 addresses are those advertised on the internet from Amazon Web Services. Private IP addresses are not and cannot be advertised on the internet from Amazon Web Services.

", + "smithy.api#xmlName": "ipv6AddressAttribute" + } + }, + "IpSource": { + "target": "com.amazonaws.ec2#IpSource", + "traits": { + "aws.protocols#ec2QueryName": "IpSource", + "smithy.api#documentation": "

The source that allocated the IP address space. byoip or amazon indicates public IP address space allocated by Amazon or space that you have allocated with Bring your own IP (BYOIP). none indicates private space.

", + "smithy.api#xmlName": "ipSource" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an IPv6 CIDR block associated with a VPC.

" + } + }, + "com.amazonaws.ec2#VpcIpv6CidrBlockAssociationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcIpv6CidrBlockAssociation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Vpc", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcPeeringConnection": { + "type": "structure", + "members": { + "AccepterVpcInfo": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionVpcInfo", + "traits": { + "aws.protocols#ec2QueryName": "AccepterVpcInfo", + "smithy.api#documentation": "

Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.

", + "smithy.api#xmlName": "accepterVpcInfo" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.ec2#DateTime", + "traits": { + "aws.protocols#ec2QueryName": "ExpirationTime", + "smithy.api#documentation": "

The time that an unaccepted VPC peering connection will expire.

", + "smithy.api#xmlName": "expirationTime" + } + }, + "RequesterVpcInfo": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionVpcInfo", + "traits": { + "aws.protocols#ec2QueryName": "RequesterVpcInfo", + "smithy.api#documentation": "

Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.

", + "smithy.api#xmlName": "requesterVpcInfo" + } + }, + "Status": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionStateReason", + "traits": { + "aws.protocols#ec2QueryName": "Status", + "smithy.api#documentation": "

The status of the VPC peering connection.

", + "smithy.api#xmlName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the resource.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", + "smithy.api#documentation": "

The ID of the VPC peering connection.

", + "smithy.api#xmlName": "vpcPeeringConnectionId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC peering connection.

" + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionId": { + "type": "string" + }, + "com.amazonaws.ec2#VpcPeeringConnectionIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionIdWithResolver": { + "type": "string" + }, + "com.amazonaws.ec2#VpcPeeringConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpcPeeringConnection", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionOptionsDescription": { + "type": "structure", + "members": { + "AllowDnsResolutionFromRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowDnsResolutionFromRemoteVpc", + "smithy.api#documentation": "

Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses \n when queried from instances in a peer VPC.

", + "smithy.api#xmlName": "allowDnsResolutionFromRemoteVpc" + } + }, + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc" + } + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink", + "smithy.api#documentation": "

Deprecated.

", + "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the VPC peering connection options.

" + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionStateReason": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionStateReasonCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The status of the VPC peering connection.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

A message that provides more information about the status, if applicable.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the status of a VPC peering connection.

" + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionStateReasonCode": { + "type": "enum", + "members": { + "initiating_request": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initiating-request" + } + }, + "pending_acceptance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-acceptance" + } + }, + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + }, + "rejected": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rejected" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "provisioning": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "provisioning" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#VpcPeeringConnectionVpcInfo": { + "type": "structure", + "members": { + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlock", + "smithy.api#documentation": "

The IPv4 CIDR block for the VPC.

", + "smithy.api#xmlName": "cidrBlock" + } + }, + "Ipv6CidrBlockSet": { + "target": "com.amazonaws.ec2#Ipv6CidrBlockSet", + "traits": { + "aws.protocols#ec2QueryName": "Ipv6CidrBlockSet", + "smithy.api#documentation": "

The IPv6 CIDR block for the VPC.

", + "smithy.api#xmlName": "ipv6CidrBlockSet" + } + }, + "CidrBlockSet": { + "target": "com.amazonaws.ec2#CidrBlockSet", + "traits": { + "aws.protocols#ec2QueryName": "CidrBlockSet", + "smithy.api#documentation": "

Information about the IPv4 CIDR blocks for the VPC.

", + "smithy.api#xmlName": "cidrBlockSet" + } + }, + "OwnerId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OwnerId", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC.

", + "smithy.api#xmlName": "ownerId" + } + }, + "PeeringOptions": { + "target": "com.amazonaws.ec2#VpcPeeringConnectionOptionsDescription", + "traits": { + "aws.protocols#ec2QueryName": "PeeringOptions", + "smithy.api#documentation": "

Information about the VPC peering connection options for the accepter or requester VPC.

", + "smithy.api#xmlName": "peeringOptions" + } + }, + "VpcId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpcId", + "smithy.api#documentation": "

The ID of the VPC.

", + "smithy.api#xmlName": "vpcId" + } + }, + "Region": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Region", + "smithy.api#documentation": "

The Region in which the VPC is located.

", + "smithy.api#xmlName": "region" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPC in a VPC peering connection.

" + } + }, + "com.amazonaws.ec2#VpcState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.ec2#VpcTenancy": { + "type": "enum", + "members": { + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#VpnConcentrator": { + "type": "structure", + "members": { + "VpnConcentratorId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnConcentratorId", + "smithy.api#documentation": "

The ID of the VPN concentrator.

", + "smithy.api#xmlName": "vpnConcentratorId" + } + }, + "State": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the VPN concentrator.

", + "smithy.api#xmlName": "state" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway associated with the VPN concentrator.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "TransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayAttachmentId", + "smithy.api#documentation": "

The ID of the transit gateway attachment for the VPN concentrator.

", + "smithy.api#xmlName": "transitGatewayAttachmentId" + } + }, + "Type": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of VPN concentrator.

", + "smithy.api#xmlName": "type" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the VPN concentrator.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPN concentrator.

" + } + }, + "com.amazonaws.ec2#VpnConcentratorId": { + "type": "string" + }, + "com.amazonaws.ec2#VpnConcentratorIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnConcentratorId", + "traits": { + "smithy.api#xmlName": "VpnConcentratorId" + } + } + }, + "com.amazonaws.ec2#VpnConcentratorList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnConcentrator", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpnConcentratorType": { + "type": "enum", + "members": { + "ipsec_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipsec.1" + } + } + } + }, + "com.amazonaws.ec2#VpnConnection": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Category", + "smithy.api#documentation": "

The category of the VPN connection. A value of VPN indicates an Amazon Web Services VPN connection. A value of VPN-Classic indicates an Amazon Web Services Classic VPN connection.

", + "smithy.api#xmlName": "category" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransitGatewayId", + "smithy.api#documentation": "

The ID of the transit gateway associated with the VPN connection.

", + "smithy.api#xmlName": "transitGatewayId" + } + }, + "VpnConcentratorId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnConcentratorId", + "smithy.api#documentation": "

The ID of the VPN concentrator associated with the VPN connection.

", + "smithy.api#xmlName": "vpnConcentratorId" + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkArn", + "smithy.api#documentation": "

The ARN of the core network.

", + "smithy.api#xmlName": "coreNetworkArn" + } + }, + "CoreNetworkAttachmentArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CoreNetworkAttachmentArn", + "smithy.api#documentation": "

The ARN of the core network attachment.

", + "smithy.api#xmlName": "coreNetworkAttachmentArn" + } + }, + "GatewayAssociationState": { + "target": "com.amazonaws.ec2#GatewayAssociationState", + "traits": { + "aws.protocols#ec2QueryName": "GatewayAssociationState", + "smithy.api#documentation": "

The current state of the gateway association.

", + "smithy.api#xmlName": "gatewayAssociationState" + } + }, + "Options": { + "target": "com.amazonaws.ec2#VpnConnectionOptions", + "traits": { + "aws.protocols#ec2QueryName": "Options", + "smithy.api#documentation": "

The VPN connection options.

", + "smithy.api#xmlName": "options" + } + }, + "Routes": { + "target": "com.amazonaws.ec2#VpnStaticRouteList", + "traits": { + "aws.protocols#ec2QueryName": "Routes", + "smithy.api#documentation": "

The static routes associated with the VPN connection.

", + "smithy.api#xmlName": "routes" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the VPN connection.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VgwTelemetry": { + "target": "com.amazonaws.ec2#VgwTelemetryList", + "traits": { + "aws.protocols#ec2QueryName": "VgwTelemetry", + "smithy.api#documentation": "

Information about the VPN tunnel.

", + "smithy.api#xmlName": "vgwTelemetry" + } + }, + "PreSharedKeyArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "PreSharedKeyArn", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Secrets Manager secret storing the pre-shared key(s) for the VPN connection.

", + "smithy.api#xmlName": "preSharedKeyArn" + } + }, + "VpnConnectionId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionId", + "smithy.api#documentation": "

The ID of the VPN connection.

", + "smithy.api#xmlName": "vpnConnectionId" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpnState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the VPN connection.

", + "smithy.api#xmlName": "state" + } + }, + "CustomerGatewayConfiguration": { + "target": "com.amazonaws.ec2#customerGatewayConfiguration", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGatewayConfiguration", + "smithy.api#documentation": "

The configuration information for the VPN connection's customer gateway (in the native\n XML format). This element is always present in the CreateVpnConnection\n response; however, it's present in the DescribeVpnConnections response\n only if the VPN connection is in the pending or available\n state.

", + "smithy.api#xmlName": "customerGatewayConfiguration" + } + }, + "Type": { + "target": "com.amazonaws.ec2#GatewayType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of VPN connection.

", + "smithy.api#xmlName": "type" + } + }, + "CustomerGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CustomerGatewayId", + "smithy.api#documentation": "

The ID of the customer gateway at your end of the VPN connection.

", + "smithy.api#xmlName": "customerGatewayId" + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnGatewayId", + "smithy.api#documentation": "

The ID of the virtual private gateway at the Amazon Web Services side of the VPN\n connection.

", + "smithy.api#xmlName": "vpnGatewayId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a VPN connection.

" + } + }, + "com.amazonaws.ec2#VpnConnectionDeviceSampleConfiguration": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#VpnConnectionDeviceType": { + "type": "structure", + "members": { + "VpnConnectionDeviceTypeId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnConnectionDeviceTypeId", + "smithy.api#documentation": "

Customer gateway device identifier.

", + "smithy.api#xmlName": "vpnConnectionDeviceTypeId" + } + }, + "Vendor": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Vendor", + "smithy.api#documentation": "

Customer gateway device vendor.

", + "smithy.api#xmlName": "vendor" + } + }, + "Platform": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Platform", + "smithy.api#documentation": "

Customer gateway device platform.

", + "smithy.api#xmlName": "platform" + } + }, + "Software": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Software", + "smithy.api#documentation": "

Customer gateway device software version.

", + "smithy.api#xmlName": "software" + } + } + }, + "traits": { + "smithy.api#documentation": "

List of customer gateway devices that have a sample configuration file available for\n use. You can also see the list of device types with sample configuration files available\n under Your customer\n gateway device in the Amazon Web Services Site-to-Site VPN User Guide.

" + } + }, + "com.amazonaws.ec2#VpnConnectionDeviceTypeId": { + "type": "string" + }, + "com.amazonaws.ec2#VpnConnectionDeviceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnConnectionDeviceType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpnConnectionId": { + "type": "string" + }, + "com.amazonaws.ec2#VpnConnectionIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnConnectionId", + "traits": { + "smithy.api#xmlName": "VpnConnectionId" + } + } + }, + "com.amazonaws.ec2#VpnConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnConnection", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpnConnectionOptions": { + "type": "structure", + "members": { + "EnableAcceleration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EnableAcceleration", + "smithy.api#documentation": "

Indicates whether acceleration is enabled for the VPN connection.

", + "smithy.api#xmlName": "enableAcceleration" + } + }, + "StaticRoutesOnly": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "StaticRoutesOnly", + "smithy.api#documentation": "

Indicates whether the VPN connection uses static routes only. Static routes must be\n used for devices that don't support BGP.

", + "smithy.api#xmlName": "staticRoutesOnly" + } + }, + "LocalIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalIpv4NetworkCidr", + "smithy.api#documentation": "

The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.

", + "smithy.api#xmlName": "localIpv4NetworkCidr" + } + }, + "RemoteIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RemoteIpv4NetworkCidr", + "smithy.api#documentation": "

The IPv4 CIDR on the Amazon Web Services side of the VPN connection.

", + "smithy.api#xmlName": "remoteIpv4NetworkCidr" + } + }, + "LocalIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LocalIpv6NetworkCidr", + "smithy.api#documentation": "

The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.

", + "smithy.api#xmlName": "localIpv6NetworkCidr" + } + }, + "RemoteIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "RemoteIpv6NetworkCidr", + "smithy.api#documentation": "

The IPv6 CIDR on the Amazon Web Services side of the VPN connection.

", + "smithy.api#xmlName": "remoteIpv6NetworkCidr" + } + }, + "OutsideIpAddressType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "OutsideIpAddressType", + "smithy.api#documentation": "

The type of IPv4 address assigned to the outside interface of the customer gateway.

\n

Valid values: PrivateIpv4 | PublicIpv4 | Ipv6\n

\n

Default: PublicIpv4\n

", + "smithy.api#xmlName": "outsideIpAddressType" + } + }, + "TransportTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "TransportTransitGatewayAttachmentId", + "smithy.api#documentation": "

The transit gateway attachment ID in use for the VPN tunnel.

", + "smithy.api#xmlName": "transportTransitGatewayAttachmentId" + } + }, + "TunnelInsideIpVersion": { + "target": "com.amazonaws.ec2#TunnelInsideIpVersion", + "traits": { + "aws.protocols#ec2QueryName": "TunnelInsideIpVersion", + "smithy.api#documentation": "

Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.

", + "smithy.api#xmlName": "tunnelInsideIpVersion" + } + }, + "TunnelOptions": { + "target": "com.amazonaws.ec2#TunnelOptionsList", + "traits": { + "aws.protocols#ec2QueryName": "TunnelOptionSet", + "smithy.api#documentation": "

Indicates the VPN tunnel options.

", + "smithy.api#xmlName": "tunnelOptionSet" + } + }, + "TunnelBandwidth": { + "target": "com.amazonaws.ec2#VpnTunnelBandwidth", + "traits": { + "aws.protocols#ec2QueryName": "TunnelBandwidth", + "smithy.api#documentation": "

\n\t\t\tThe configured bandwidth for the VPN tunnel. Represents the current throughput capacity setting for the tunnel connection. standard tunnel bandwidth supports up to 1.25 Gbps per tunnel while large\n\t\t\tsupports up to 5 Gbps per tunnel. If no tunnel bandwidth was specified for the connection, standard is used as the default value.\n\t\t

", + "smithy.api#xmlName": "tunnelBandwidth" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes VPN connection options.

" + } + }, + "com.amazonaws.ec2#VpnConnectionOptionsSpecification": { + "type": "structure", + "members": { + "EnableAcceleration": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicate whether to enable acceleration for the VPN connection.

\n

Default: false\n

" + } + }, + "TunnelInsideIpVersion": { + "target": "com.amazonaws.ec2#TunnelInsideIpVersion", + "traits": { + "smithy.api#documentation": "

Indicate whether the VPN tunnels process IPv4 or IPv6 traffic.

\n

Default: ipv4\n

" + } + }, + "TunnelOptions": { + "target": "com.amazonaws.ec2#VpnTunnelOptionsSpecificationsList", + "traits": { + "smithy.api#documentation": "

The tunnel options for the VPN connection.

" + } + }, + "LocalIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.

\n

Default: 0.0.0.0/0\n

" + } + }, + "RemoteIpv4NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 CIDR on the Amazon Web Services side of the VPN connection.

\n

Default: 0.0.0.0/0\n

" + } + }, + "LocalIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.

\n

Default: ::/0\n

" + } + }, + "RemoteIpv6NetworkCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv6 CIDR on the Amazon Web Services side of the VPN connection.

\n

Default: ::/0\n

" + } + }, + "OutsideIpAddressType": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The type of IP address assigned to the outside interface of the customer gateway device.

\n

Valid values: PrivateIpv4 | PublicIpv4 | Ipv6\n

\n

Default: PublicIpv4\n

" + } + }, + "TransportTransitGatewayAttachmentId": { + "target": "com.amazonaws.ec2#TransitGatewayAttachmentId", + "traits": { + "smithy.api#documentation": "

The transit gateway attachment ID to use for the VPN tunnel.

\n

Required if OutsideIpAddressType is set to PrivateIpv4.

" + } + }, + "TunnelBandwidth": { + "target": "com.amazonaws.ec2#VpnTunnelBandwidth", + "traits": { + "smithy.api#documentation": "

\n\t\t\tThe desired bandwidth specification for the VPN tunnel, used when creating or modifying VPN connection options to set the tunnel's throughput \n\t\t\tcapacity. standard supports up to 1.25 Gbps per tunnel, while large supports up to 5 Gbps per tunnel. The default value is standard. Existing\n\t\t\tVPN connections without a bandwidth setting will automatically default to standard.\n\t\t

" + } + }, + "StaticRoutesOnly": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "StaticRoutesOnly", + "smithy.api#documentation": "

Indicate whether the VPN connection uses static routes only. If you are creating a VPN\n connection for a device that does not support BGP, you must specify true.\n Use CreateVpnConnectionRoute to create a static route.

\n

Default: false\n

", + "smithy.api#xmlName": "staticRoutesOnly" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes VPN connection options.

" + } + }, + "com.amazonaws.ec2#VpnEcmpSupportValue": { + "type": "enum", + "members": { + "enable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enable" + } + }, + "disable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disable" + } + } + } + }, + "com.amazonaws.ec2#VpnGateway": { + "type": "structure", + "members": { + "AmazonSideAsn": { + "target": "com.amazonaws.ec2#Long", + "traits": { + "aws.protocols#ec2QueryName": "AmazonSideAsn", + "smithy.api#documentation": "

The private Autonomous System Number (ASN) for the Amazon side of a BGP\n session.

", + "smithy.api#xmlName": "amazonSideAsn" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

Any tags assigned to the virtual private gateway.

", + "smithy.api#xmlName": "tagSet" + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "VpnGatewayId", + "smithy.api#documentation": "

The ID of the virtual private gateway.

", + "smithy.api#xmlName": "vpnGatewayId" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpnState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the virtual private gateway.

", + "smithy.api#xmlName": "state" + } + }, + "Type": { + "target": "com.amazonaws.ec2#GatewayType", + "traits": { + "aws.protocols#ec2QueryName": "Type", + "smithy.api#documentation": "

The type of VPN connection the virtual private gateway supports.

", + "smithy.api#xmlName": "type" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone where the virtual private gateway was created, if applicable.\n This field may be empty or not returned.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "VpcAttachments": { + "target": "com.amazonaws.ec2#VpcAttachmentList", + "traits": { + "aws.protocols#ec2QueryName": "Attachments", + "smithy.api#documentation": "

Any VPCs attached to the virtual private gateway.

", + "smithy.api#xmlName": "attachments" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a virtual private gateway.

" + } + }, + "com.amazonaws.ec2#VpnGatewayId": { + "type": "string" + }, + "com.amazonaws.ec2#VpnGatewayIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnGatewayId", + "traits": { + "smithy.api#xmlName": "VpnGatewayId" + } + } + }, + "com.amazonaws.ec2#VpnGatewayList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnGateway", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpnProtocol": { + "type": "enum", + "members": { + "openvpn": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "openvpn" + } + } + } + }, + "com.amazonaws.ec2#VpnState": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "deleting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "deleted": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleted" + } + } + } + }, + "com.amazonaws.ec2#VpnStaticRoute": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DestinationCidrBlock", + "smithy.api#documentation": "

The CIDR block associated with the local subnet of the customer data center.

", + "smithy.api#xmlName": "destinationCidrBlock" + } + }, + "Source": { + "target": "com.amazonaws.ec2#VpnStaticRouteSource", + "traits": { + "aws.protocols#ec2QueryName": "Source", + "smithy.api#documentation": "

Indicates how the routes were provided.

", + "smithy.api#xmlName": "source" + } + }, + "State": { + "target": "com.amazonaws.ec2#VpnState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The current state of the static route.

", + "smithy.api#xmlName": "state" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a static route for a VPN connection.

" + } + }, + "com.amazonaws.ec2#VpnStaticRouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnStaticRoute", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#VpnStaticRouteSource": { + "type": "enum", + "members": { + "Static": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Static" + } + } + } + }, + "com.amazonaws.ec2#VpnTunnelBandwidth": { + "type": "enum", + "members": { + "standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "large": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "large" + } + } + } + }, + "com.amazonaws.ec2#VpnTunnelLogOptions": { + "type": "structure", + "members": { + "CloudWatchLogOptions": { + "target": "com.amazonaws.ec2#CloudWatchLogOptions", + "traits": { + "aws.protocols#ec2QueryName": "CloudWatchLogOptions", + "smithy.api#documentation": "

Options for sending VPN tunnel logs to CloudWatch.

", + "smithy.api#xmlName": "cloudWatchLogOptions" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for logging VPN tunnel activity.

" + } + }, + "com.amazonaws.ec2#VpnTunnelLogOptionsSpecification": { + "type": "structure", + "members": { + "CloudWatchLogOptions": { + "target": "com.amazonaws.ec2#CloudWatchLogOptionsSpecification", + "traits": { + "smithy.api#documentation": "

Options for sending VPN tunnel logs to CloudWatch.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for logging VPN tunnel activity.

" + } + }, + "com.amazonaws.ec2#VpnTunnelOptionsSpecification": { + "type": "structure", + "members": { + "TunnelInsideCidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The range of inside IPv4 addresses for the tunnel. Any specified CIDR blocks must be\n unique across all VPN connections that use the same virtual private gateway.

\n

Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The\n following CIDR blocks are reserved and cannot be used:

\n
    \n
  • \n

    \n 169.254.0.0/30\n

    \n
  • \n
  • \n

    \n 169.254.1.0/30\n

    \n
  • \n
  • \n

    \n 169.254.2.0/30\n

    \n
  • \n
  • \n

    \n 169.254.3.0/30\n

    \n
  • \n
  • \n

    \n 169.254.4.0/30\n

    \n
  • \n
  • \n

    \n 169.254.5.0/30\n

    \n
  • \n
  • \n

    \n 169.254.169.252/30\n

    \n
  • \n
" + } + }, + "TunnelInsideIpv6Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must be\n unique across all VPN connections that use the same transit gateway.

\n

Constraints: A size /126 CIDR block from the local fd00::/8 range.

" + } + }, + "PreSharedKey": { + "target": "com.amazonaws.ec2#preSharedKey", + "traits": { + "smithy.api#documentation": "

The pre-shared key (PSK) to establish initial authentication between the virtual\n private gateway and customer gateway.

\n

Constraints: Allowed characters are alphanumeric characters, periods (.), and\n underscores (_). Must be between 8 and 64 characters in length and cannot start with\n zero (0).

" + } + }, + "Phase1LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 1 of the IKE negotiation, in seconds.

\n

Constraints: A value between 900 and 28,800.

\n

Default: 28800\n

" + } + }, + "Phase2LifetimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 2 of the IKE negotiation, in seconds.

\n

Constraints: A value between 900 and 3,600. The value must be less than the value for\n Phase1LifetimeSeconds.

\n

Default: 3600\n

" + } + }, + "RekeyMarginTimeSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The margin time, in seconds, before the phase 2 lifetime expires, during which the\n Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time\n of the rekey is randomly selected based on the value for\n RekeyFuzzPercentage.

\n

Constraints: A value between 60 and half of Phase2LifetimeSeconds.

\n

Default: 270\n

" + } + }, + "RekeyFuzzPercentage": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of the rekey window (determined by RekeyMarginTimeSeconds)\n during which the rekey time is randomly selected.

\n

Constraints: A value between 0 and 100.

\n

Default: 100\n

" + } + }, + "ReplayWindowSize": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of packets in an IKE replay window.

\n

Constraints: A value between 64 and 2048.

\n

Default: 1024\n

" + } + }, + "DPDTimeoutSeconds": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds after which a DPD timeout occurs.

\n

Constraints: A value greater than or equal to 30.

\n

Default: 30\n

" + } + }, + "DPDTimeoutAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The action to take after DPD timeout occurs. Specify restart to restart\n the IKE initiation. Specify clear to end the IKE session.

\n

Valid Values: clear | none | restart\n

\n

Default: clear\n

" + } + }, + "Phase1EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase1EncryptionAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more encryption algorithms that are permitted for the VPN tunnel for phase 1\n IKE negotiations.

\n

Valid values: AES128 | AES256 | AES128-GCM-16 |\n AES256-GCM-16\n

", + "smithy.api#xmlName": "Phase1EncryptionAlgorithm" + } + }, + "Phase2EncryptionAlgorithms": { + "target": "com.amazonaws.ec2#Phase2EncryptionAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more encryption algorithms that are permitted for the VPN tunnel for phase 2\n IKE negotiations.

\n

Valid values: AES128 | AES256 | AES128-GCM-16 |\n AES256-GCM-16\n

", + "smithy.api#xmlName": "Phase2EncryptionAlgorithm" + } + }, + "Phase1IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase1IntegrityAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE\n negotiations.

\n

Valid values: SHA1 | SHA2-256 | SHA2-384 |\n SHA2-512\n

", + "smithy.api#xmlName": "Phase1IntegrityAlgorithm" + } + }, + "Phase2IntegrityAlgorithms": { + "target": "com.amazonaws.ec2#Phase2IntegrityAlgorithmsRequestList", + "traits": { + "smithy.api#documentation": "

One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE\n negotiations.

\n

Valid values: SHA1 | SHA2-256 | SHA2-384 |\n SHA2-512\n

", + "smithy.api#xmlName": "Phase2IntegrityAlgorithm" + } + }, + "Phase1DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase1DHGroupNumbersRequestList", + "traits": { + "smithy.api#documentation": "

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for\n phase 1 IKE negotiations.

\n

Valid values: 2 | 14 | 15 | 16 |\n 17 | 18 | 19 | 20 |\n 21 | 22 | 23 | 24\n

", + "smithy.api#xmlName": "Phase1DHGroupNumber" + } + }, + "Phase2DHGroupNumbers": { + "target": "com.amazonaws.ec2#Phase2DHGroupNumbersRequestList", + "traits": { + "smithy.api#documentation": "

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for\n phase 2 IKE negotiations.

\n

Valid values: 2 | 5 | 14 | 15 |\n 16 | 17 | 18 | 19 |\n 20 | 21 | 22 | 23 |\n 24\n

", + "smithy.api#xmlName": "Phase2DHGroupNumber" + } + }, + "IKEVersions": { + "target": "com.amazonaws.ec2#IKEVersionsRequestList", + "traits": { + "smithy.api#documentation": "

The IKE versions that are permitted for the VPN tunnel.

\n

Valid values: ikev1 | ikev2\n

", + "smithy.api#xmlName": "IKEVersion" + } + }, + "StartupAction": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The action to take when the establishing the tunnel for the VPN connection. By\n default, your customer gateway device must initiate the IKE negotiation and bring up the\n tunnel. Specify start for Amazon Web Services to initiate the IKE\n negotiation.

\n

Valid Values: add | start\n

\n

Default: add\n

" + } + }, + "LogOptions": { + "target": "com.amazonaws.ec2#VpnTunnelLogOptionsSpecification", + "traits": { + "smithy.api#documentation": "

Options for logging VPN tunnel activity.

" + } + }, + "EnableTunnelLifecycleControl": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Turn on or off tunnel endpoint lifecycle control feature.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tunnel options for a single VPN tunnel.

" + } + }, + "com.amazonaws.ec2#VpnTunnelOptionsSpecificationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#VpnTunnelOptionsSpecification" + } + }, + "com.amazonaws.ec2#VpnTunnelProvisioningStatus": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, + "com.amazonaws.ec2#WeekDay": { + "type": "enum", + "members": { + "sunday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sunday" + } + }, + "monday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "monday" + } + }, + "tuesday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tuesday" + } + }, + "wednesday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "wednesday" + } + }, + "thursday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "thursday" + } + }, + "friday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "friday" + } + }, + "saturday": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "saturday" + } + } + } + }, + "com.amazonaws.ec2#WithdrawByoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#WithdrawByoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.ec2#WithdrawByoipCidrResult" + }, + "traits": { + "smithy.api#documentation": "

Stops advertising an address range that is provisioned as an address pool.

\n

You can perform this operation at most once every 10 seconds, even if you specify different \n address ranges each time.

\n

It can take a few minutes before traffic to the specified addresses stops routing to Amazon Web Services\n because of BGP propagation delays.

" + } + }, + "com.amazonaws.ec2#WithdrawByoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The address range, in CIDR notation.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#WithdrawByoipCidrResult": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.ec2#ByoipCidr", + "traits": { + "aws.protocols#ec2QueryName": "ByoipCidr", + "smithy.api#documentation": "

Information about the address pool.

", + "smithy.api#xmlName": "byoipCidr" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ec2#Workload": { + "type": "string" + }, + "com.amazonaws.ec2#WorkloadsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#Workload", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#ZeroSizePreference": { + "type": "enum", + "members": { + "retain": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "retain" + } + }, + "default": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + } + } + }, + "com.amazonaws.ec2#ZoneIdStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "ZoneId" + } + } + }, + "com.amazonaws.ec2#ZoneNameStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#xmlName": "ZoneName" + } + } + }, + "com.amazonaws.ec2#customerGatewayConfiguration": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#preSharedKey": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ec2#scope": { + "type": "enum", + "members": { + "AVAILABILITY_ZONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Availability Zone" + } + }, + "REGIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Region" + } + } + } + }, + "com.amazonaws.ec2#snapshotTierStatusSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#SnapshotTierStatus", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#totalFpgaMemory": { + "type": "integer" + }, + "com.amazonaws.ec2#totalGpuMemory": { + "type": "integer" + }, + "com.amazonaws.ec2#totalInferenceMemory": { + "type": "integer" + } + } +} diff --git a/codegen/aws-models/ecs.json b/codegen/aws-models/ecs.json new file mode 100644 index 00000000..ab1155ff --- /dev/null +++ b/codegen/aws-models/ecs.json @@ -0,0 +1,29069 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.ecs#AcceleratorCountRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum number of accelerators. Instance types with fewer accelerators are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of accelerators. Instance types with more accelerators are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of accelerators (such as GPUs) for instance type selection. This is used for workloads that require specific numbers of accelerators.

" + } + }, + "com.amazonaws.ecs#AcceleratorManufacturer": { + "type": "enum", + "members": { + "AMAZON_WEB_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-web-services" + } + }, + "AMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amd" + } + }, + "NVIDIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nvidia" + } + }, + "XILINX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "xilinx" + } + }, + "HABANA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "habana" + } + } + } + }, + "com.amazonaws.ecs#AcceleratorManufacturerSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AcceleratorManufacturer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#AcceleratorName": { + "type": "enum", + "members": { + "A100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a100" + } + }, + "INFERENTIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inferentia" + } + }, + "K520": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "k520" + } + }, + "K80": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "k80" + } + }, + "M60": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "m60" + } + }, + "RADEON_PRO_V520": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "radeon-pro-v520" + } + }, + "T4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4" + } + }, + "VU9P": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "vu9p" + } + }, + "V100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v100" + } + }, + "A10G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a10g" + } + }, + "H100": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "h100" + } + }, + "T4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4g" + } + }, + "L40S": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l40s" + } + }, + "L4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l4" + } + } + } + }, + "com.amazonaws.ecs#AcceleratorNameSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AcceleratorName", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#AcceleratorTotalMemoryMiBRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum total accelerator memory in MiB. Instance types with less accelerator memory are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum total accelerator memory in MiB. Instance types with more accelerator memory are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum total accelerator memory in mebibytes (MiB) for instance type selection. This is important for GPU workloads that require specific amounts of video memory.

" + } + }, + "com.amazonaws.ecs#AcceleratorType": { + "type": "enum", + "members": { + "GPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gpu" + } + }, + "FPGA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fpga" + } + }, + "INFERENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inference" + } + } + } + }, + "com.amazonaws.ecs#AcceleratorTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AcceleratorType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You don't have authorization to perform the requested action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.ecs#AccessType": { + "type": "enum", + "members": { + "PUBLIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The resource is publicly accessible from the internet.

", + "smithy.api#enumValue": "PUBLIC" + } + }, + "PRIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The resource is private and reachable only from within the VPC.

", + "smithy.api#enumValue": "PRIVATE" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether a resource is publicly accessible from the internet or private to a VPC.

" + } + }, + "com.amazonaws.ecs#AccessTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AccessType" + }, + "traits": { + "smithy.api#documentation": "

A list of access types.

Valid values:

  • PUBLIC - The ingress path is publicly accessible.

  • PRIVATE - The ingress path is only accessible privately.

", + "smithy.api#length": { + "max": 2 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.ecs#AdvancedConfiguration": { + "type": "structure", + "members": { + "alternateTargetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the alternate target group for Amazon ECS blue/green deployments.

" + } + }, + "productionListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that that identifies the production listener rule (in the case of an Application Load Balancer) or listener (in the case for an Network Load Balancer) for routing production traffic.

" + } + }, + "testListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies ) that identifies the test listener rule (in the case of an Application Load Balancer) or listener (in the case for an Network Load Balancer) for routing test traffic.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that grants Amazon ECS permission to call the Elastic Load Balancing APIs for you.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The advanced settings for a load balancer used in blue/green deployments. Specify the alternate target group, listener rules, and IAM role required for traffic shifting during blue/green deployments. For more information, see Required resources for Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#AgentUpdateStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "STAGING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STAGING" + } + }, + "STAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STAGED" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.ecs#AllowedInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$" + } + }, + "com.amazonaws.ecs#AllowedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AllowedInstanceType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 400 + } + } + }, + "com.amazonaws.ecs#AmazonEC2ContainerServiceV20141113": { + "type": "service", + "version": "2014-11-13", + "operations": [ + { + "target": "com.amazonaws.ecs#ContinueServiceDeployment" + }, + { + "target": "com.amazonaws.ecs#DeleteAccountSetting" + }, + { + "target": "com.amazonaws.ecs#DeregisterTaskDefinition" + }, + { + "target": "com.amazonaws.ecs#DescribeTaskDefinition" + }, + { + "target": "com.amazonaws.ecs#DiscoverPollEndpoint" + }, + { + "target": "com.amazonaws.ecs#ListAccountSettings" + }, + { + "target": "com.amazonaws.ecs#ListServicesByNamespace" + }, + { + "target": "com.amazonaws.ecs#ListTagsForResource" + }, + { + "target": "com.amazonaws.ecs#ListTaskDefinitionFamilies" + }, + { + "target": "com.amazonaws.ecs#PutAccountSetting" + }, + { + "target": "com.amazonaws.ecs#PutAccountSettingDefault" + }, + { + "target": "com.amazonaws.ecs#TagResource" + }, + { + "target": "com.amazonaws.ecs#UntagResource" + } + ], + "resources": [ + { + "target": "com.amazonaws.ecs#CapacityProviderResource" + }, + { + "target": "com.amazonaws.ecs#ClusterResource" + }, + { + "target": "com.amazonaws.ecs#ContainerInstanceResource" + }, + { + "target": "com.amazonaws.ecs#DaemonDeploymentResource" + }, + { + "target": "com.amazonaws.ecs#DaemonResource" + }, + { + "target": "com.amazonaws.ecs#DaemonRevisionResource" + }, + { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionResource" + }, + { + "target": "com.amazonaws.ecs#GatewayResource" + }, + { + "target": "com.amazonaws.ecs#GatewayRouteResource" + }, + { + "target": "com.amazonaws.ecs#ServiceDeploymentResource" + }, + { + "target": "com.amazonaws.ecs#ServiceResource" + }, + { + "target": "com.amazonaws.ecs#ServiceRevisionResource" + }, + { + "target": "com.amazonaws.ecs#TaskDefinitionResource" + }, + { + "target": "com.amazonaws.ecs#TaskResource" + }, + { + "target": "com.amazonaws.ecs#TaskSetResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "ECS", + "arnNamespace": "ecs", + "cloudFormationName": "ECS", + "cloudTrailEventSource": "ecs.amazonaws.com", + "endpointPrefix": "ecs", + "cloudWatchNamespace": "AWS/ECS" + }, + "aws.api#tagEnabled": {}, + "aws.auth#sigv4": { + "name": "ecs" + }, + "aws.iam#defineConditionKeys": { + "ecs:cluster": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS cluster", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:service": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:task-definition": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS task definition", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:container-instances": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS container instance", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:capacity-provider": { + "type": "ArrayOfARN", + "documentation": "Filters access by the ARN of an Amazon ECS capacity provider", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:task": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS task", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:container-name": { + "type": "String", + "documentation": "Filters access by the name of an Amazon ECS container which is defined in the ECS task definition", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:enable-ebs-volumes": { + "type": "String", + "documentation": "Filters access by the Amazon ECS managed Amazon EBS volume capability of your ECS task or service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:enable-execute-command": { + "type": "String", + "documentation": "Filters access by the execute-command capability of your Amazon ECS task or Amazon ECS service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:enable-service-connect": { + "type": "String", + "documentation": "Filters access by the enable field value in the Service Connect configuration", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:enable-vpc-lattice": { + "type": "String", + "documentation": "Filters access by the VPC lattice capability of your Amazon ECS service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:namespace": { + "type": "ARN", + "documentation": "Filters access by the ARN of AWS Cloud Map namespace which is defined in the Service Connect Configuration", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:ResourceTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the tag key-value pairs attached to the resource", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies" + }, + "aws:ResourceTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the tag key-value pairs attached to the resource", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag" + }, + "aws:RequestTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the tags that are passed in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag" + }, + "aws:TagKeys": { + "type": "ArrayOfString", + "documentation": "Filters access by the tag keys that are passed in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys" + }, + "ecs:CreateAction": { + "type": "String", + "documentation": "Filters access by the name of a resource-creating API action", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-createaction" + }, + "ecs:account-setting": { + "type": "String", + "documentation": "Filters access by the Amazon ECS account setting name", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:fargate-ephemeral-storage-kms-key": { + "type": "String", + "documentation": "Filters access by the AWS KMS key id provided in the request", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:enable-ecs-managed-tags": { + "type": "Bool", + "documentation": "Filters access by the enableECSManagedTags configuration of your Amazon ECS task or Amazon ECS service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:auto-assign-public-ip": { + "type": "Bool", + "documentation": "Filters access by the public IP assignment configuration of your Amazon ECS task or Amazon ECS service that uses awsvpc network mode", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:propagate-tags": { + "type": "String", + "documentation": "Filters access by the tag propagation configuration of your Amazon ECS task or Amazon ECS service", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:instance-metadata-tags-propagation": { + "type": "Bool", + "documentation": "Filters access by the instance metadata tags propagation setting of your Amazon ECS capacity provider", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:subnet": { + "type": "ArrayOfString", + "documentation": "Filters access by the subnet configuration of your Amazon ECS task or Amazon ECS service that uses awsvpc network mode", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:compute-compatibility": { + "type": "ArrayOfString", + "documentation": "Filters access by the required compatibilities field provided in the request", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:privileged": { + "type": "String", + "documentation": "Filters access by the privileged field provided in the request", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:task-cpu": { + "type": "Numeric", + "documentation": "Filters access by the task cpu, as an integer with 1024 = 1 vCPU, provided in the request", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:task-memory": { + "type": "Numeric", + "documentation": "Filters access by the task memory, as an integer representing MiB, provided in the request", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:daemon": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS daemon", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:daemon-task-definition": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS daemon task definition", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + }, + "ecs:gateway": { + "type": "ARN", + "documentation": "Filters access by the ARN of an Amazon ECS gateway", + "relativeDocumentation": "security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-conditionkeys" + } + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure.

", + "smithy.api#title": "Amazon EC2 Container Service", + "smithy.api#xmlNamespace": { + "uri": "http://ecs.amazonaws.com/doc/2014-11-13/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 13, + "nodes": "/////wAAAAH/////AAAAAAAAAAwAAAADAAAAAQAAAAQF9eELAAAAAgAAAAUF9eELAAAAAwAAAAgAAAAGAAAABAAAAAcF9eEKAAAABQX14QgF9eEJAAAABAAAAAoAAAAJAAAABgX14QYF9eEHAAAABQAAAAsF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAANAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{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://ecs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-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://ecs-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://ecs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-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 disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + } + }, + "com.amazonaws.ecs#ApplicationProtocol": { + "type": "enum", + "members": { + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http" + } + }, + "HTTP2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http2" + } + }, + "GRPC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "grpc" + } + } + } + }, + "com.amazonaws.ecs#AssignPublicIp": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#AssociateGatewayWithCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#AssociateGatewayWithClusterRequest" + }, + "output": { + "target": "com.amazonaws.ecs#AssociateGatewayWithClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to associate an Amazon ECS gateway with a cluster", + "relativeDocumentation": "API_AssociateGatewayWithCluster.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Associates a gateway with an Amazon ECS cluster. After a cluster is associated with a gateway, services in that cluster can use the gateway for ingress. No changes take effect until you update a service in the cluster to use the gateway. A single cluster can be associated with up to 5 gateways.

", + "smithy.api#examples": [ + { + "title": "To associate a gateway with a cluster", + "documentation": "This example associates the gateway named my-gateway with the cluster named my-cluster so that services in the cluster can use the gateway for ingress.", + "input": { + "gateway": "my-gateway", + "cluster": "my-cluster" + }, + "output": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "ACTIVE" + } + } + ] + } + }, + "com.amazonaws.ecs#AssociateGatewayWithClusterRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway to associate.

", + "smithy.api#required": {} + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the cluster to associate the gateway with.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#AssociateGatewayWithClusterResponse": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationStatus", + "traits": { + "smithy.api#documentation": "

The status of the association. A new association is ACTIVE.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#Attachment": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the attachment.

" + } + }, + "type": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The type of the attachment, such as ElasticNetworkInterface, Service Connect, and AmazonElasticBlockStorage.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING, ATTACHED, DETACHING, DETACHED, DELETED, and FAILED.

" + } + }, + "details": { + "target": "com.amazonaws.ecs#AttachmentDetails", + "traits": { + "smithy.api#documentation": "

Details of the attachment.

For elastic network interfaces, this includes the network interface ID, the MAC address, the subnet ID, and the private IPv4 address.

For Service Connect services, this includes portName, clientAliases, discoveryName, and ingressPortOverride.

For Elastic Block Storage, this includes roleArn, deleteOnTermination, volumeName, volumeId, and statusReason (only when the attachment fails to create or attach).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a container instance or task attachment.

" + } + }, + "com.amazonaws.ecs#AttachmentDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#KeyValuePair" + } + }, + "com.amazonaws.ecs#AttachmentStateChange": { + "type": "structure", + "members": { + "attachmentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the attachment.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the attachment.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a change in state for a task attachment.

" + } + }, + "com.amazonaws.ecs#AttachmentStateChanges": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#AttachmentStateChange" + } + }, + "com.amazonaws.ecs#Attachments": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Attachment" + } + }, + "com.amazonaws.ecs#AttestationPolicyStatus": { + "type": "enum", + "members": { + "CONFIGURED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

An attestation policy is configured for the task.

", + "smithy.api#enumValue": "CONFIGURED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of the attestation policy for a task that uses the CONFIDENTIAL_SANDBOX isolation mode.

" + } + }, + "com.amazonaws.ecs#Attribute": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the attribute. The name must contain between 1 and 128 characters. The name may contain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), forward slashes (/), back slashes (\\), or periods (.).

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The value of the attribute. The value must contain between 1 and 128 characters. It can contain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), periods (.), at signs (@), forward slashes (/), back slashes (\\), colons (:), or spaces. The value can't start or end with a space.

" + } + }, + "targetType": { + "target": "com.amazonaws.ecs#TargetType", + "traits": { + "smithy.api#documentation": "

The type of the target to attach the attribute with. This parameter is required if you use the short form ID for a resource instead of the full ARN.

" + } + }, + "targetId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An attribute is a name-value pair that's associated with an Amazon ECS object. Use attributes to extend the Amazon ECS data model by adding custom metadata to your resources. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#AttributeLimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can apply up to 10 custom attributes for each resource. You can view the attributes of a resource with ListAttributes. You can remove existing attributes on a resource with DeleteAttributes.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#Attributes": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Attribute" + } + }, + "com.amazonaws.ecs#AutoRepairActionsStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#AutoRepairConfiguration": { + "type": "structure", + "members": { + "actionsStatus": { + "target": "com.amazonaws.ecs#AutoRepairActionsStatus", + "traits": { + "smithy.api#documentation": "

The status of auto repair actions for the capacity provider. When set to ENABLED, Amazon ECS automatically replaces container instances with an IMPAIRED health status. When set to DISABLED, Amazon ECS still monitors container instance health but does not automatically replace impaired instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The auto repair configuration for an Amazon ECS Managed Instances capacity provider. When enabled, Amazon ECS automatically replaces container instances that are detected as unhealthy based on container instance health checks, including accelerated compute device and daemon health checks.

" + } + }, + "com.amazonaws.ecs#AutoScalingGroupProvider": { + "type": "structure", + "members": { + "autoScalingGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the Auto Scaling group name.

", + "smithy.api#required": {} + } + }, + "managedScaling": { + "target": "com.amazonaws.ecs#ManagedScaling", + "traits": { + "smithy.api#documentation": "

The managed scaling settings for the Auto Scaling group capacity provider.

" + } + }, + "managedTerminationProtection": { + "target": "com.amazonaws.ecs#ManagedTerminationProtection", + "traits": { + "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is off.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on as well. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" + } + }, + "managedDraining": { + "target": "com.amazonaws.ecs#ManagedDraining", + "traits": { + "smithy.api#documentation": "

The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of the Auto Scaling group for the capacity provider.

" + } + }, + "com.amazonaws.ecs#AutoScalingGroupProviderUpdate": { + "type": "structure", + "members": { + "managedScaling": { + "target": "com.amazonaws.ecs#ManagedScaling", + "traits": { + "smithy.api#documentation": "

The managed scaling settings for the Auto Scaling group capacity provider.

" + } + }, + "managedTerminationProtection": { + "target": "com.amazonaws.ecs#ManagedTerminationProtection", + "traits": { + "smithy.api#documentation": "

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" + } + }, + "managedDraining": { + "target": "com.amazonaws.ecs#ManagedDraining", + "traits": { + "smithy.api#documentation": "

The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of the Auto Scaling group capacity provider to update.

" + } + }, + "com.amazonaws.ecs#AvailabilityZoneRebalancing": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#AwsVpcConfiguration": { + "type": "structure", + "members": { + "subnets": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified.

All specified subnets must be from the same VPC.

", + "smithy.api#required": {} + } + }, + "securityGroups": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified.

All specified security groups must be from the same VPC.

" + } + }, + "assignPublicIp": { + "target": "com.amazonaws.ecs#AssignPublicIp", + "traits": { + "smithy.api#documentation": "

Whether the task's elastic network interface receives a public IP address.

Consider the following when you set this value:

  • When you use create-service or update-service, the default is DISABLED.

  • When the service deploymentController is ECS, the value must be DISABLED.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the networking details for a task or service. For example awsVpcConfiguration={subnets=[\"subnet-12344321\"],securityGroups=[\"sg-12344321\"]}.

" + } + }, + "com.amazonaws.ecs#BareMetal": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ecs#BaselineEbsBandwidthMbpsRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum baseline Amazon EBS bandwidth in Mbps. Instance types with lower Amazon EBS bandwidth are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum baseline Amazon EBS bandwidth in Mbps. Instance types with higher Amazon EBS bandwidth are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps) for instance type selection. This is important for workloads with high storage I/O requirements.

" + } + }, + "com.amazonaws.ecs#BlockedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Your Amazon Web Services account was blocked. For more information, contact Amazon Web Services Support.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#Boolean": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, + "com.amazonaws.ecs#BoxedBoolean": { + "type": "boolean" + }, + "com.amazonaws.ecs#BoxedDouble": { + "type": "double" + }, + "com.amazonaws.ecs#BoxedInteger": { + "type": "integer" + }, + "com.amazonaws.ecs#BurstablePerformance": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ecs#CPUArchitecture": { + "type": "enum", + "members": { + "X86_64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "X86_64" + } + }, + "ARM64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARM64" + } + } + } + }, + "com.amazonaws.ecs#CanaryConfiguration": { + "type": "structure", + "members": { + "canaryPercent": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The percentage of production traffic to shift to the new service revision during the canary phase. Valid values are multiples of 0.1 from 0.1 to 100.0. The default value is 5.0.

" + } + }, + "canaryBakeTimeInMinutes": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The amount of time in minutes to wait during the canary phase before shifting the remaining production traffic to the new service revision. Valid values are 0 to 1440 minutes (24 hours). The default value is 10.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for a canary deployment strategy that shifts a fixed percentage of traffic to the new service revision, waits for a specified bake time, then shifts the remaining traffic.

This is only valid when you run CreateService or UpdateService with deploymentController set to ECS and a deploymentConfiguration with a strategy set to CANARY.

" + } + }, + "com.amazonaws.ecs#CapacityOptionType": { + "type": "enum", + "members": { + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON_DEMAND" + } + }, + "SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPOT" + } + }, + "RESERVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESERVED" + } + } + } + }, + "com.amazonaws.ecs#CapacityProvider": { + "type": "structure", + "members": { + "capacityProviderArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the capacity provider.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the capacity provider.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The cluster that this capacity provider is associated with. Managed instances capacity providers are cluster-scoped, meaning they can only be used within their associated cluster.

This is required for Managed instances.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#CapacityProviderStatus", + "traits": { + "smithy.api#documentation": "

The current status of the capacity provider. Only capacity providers in an ACTIVE state can be used in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE status.

" + } + }, + "autoScalingGroupProvider": { + "target": "com.amazonaws.ecs#AutoScalingGroupProvider", + "traits": { + "smithy.api#documentation": "

The Auto Scaling group settings for the capacity provider.

" + } + }, + "managedInstancesProvider": { + "target": "com.amazonaws.ecs#ManagedInstancesProvider", + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon ECS Managed Instances provider. This includes the infrastructure role, the launch template configuration, and tag propagation settings.

" + } + }, + "updateStatus": { + "target": "com.amazonaws.ecs#CapacityProviderUpdateStatus", + "traits": { + "smithy.api#documentation": "

The update status of the capacity provider. The following are the possible states that is returned.

DELETE_IN_PROGRESS

The capacity provider is in the process of being deleted.

DELETE_COMPLETE

The capacity provider was successfully deleted and has an INACTIVE status.

DELETE_FAILED

The capacity provider can't be deleted. The update status reason provides further details about why the delete failed.

" + } + }, + "updateStatusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The update status reason. This provides further details about the update status for the capacity provider.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the capacity provider to help you categorize and organize it. 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.

" + } + }, + "type": { + "target": "com.amazonaws.ecs#CapacityProviderType", + "traits": { + "smithy.api#documentation": "

The type of capacity provider. For Amazon ECS Managed Instances, this value is MANAGED_INSTANCES, indicating that Amazon ECS manages the underlying Amazon EC2 instances on your behalf.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for a capacity provider.

" + } + }, + "com.amazonaws.ecs#CapacityProviderField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#CapacityProviderFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#CapacityProviderField" + } + }, + "com.amazonaws.ecs#CapacityProviderResource": { + "type": "resource", + "identifiers": { + "CapacityProviderName": { + "target": "com.amazonaws.ecs#String" + } + }, + "put": { + "target": "com.amazonaws.ecs#CreateCapacityProvider" + }, + "update": { + "target": "com.amazonaws.ecs#UpdateCapacityProvider" + }, + "delete": { + "target": "com.amazonaws.ecs#DeleteCapacityProvider" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeCapacityProviders" + } + ], + "traits": { + "aws.api#arn": { + "template": "capacity-provider/{CapacityProviderName}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "capacity-provider", + "relativeDocumentation": "create-capacity-provider-console-v2.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a collection of parameters that are used to scale an ECS cluster when attached" + } + }, + "com.amazonaws.ecs#CapacityProviderStatus": { + "type": "enum", + "members": { + "PROVISIONING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROVISIONING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DEPROVISIONING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEPROVISIONING" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + } + } + }, + "com.amazonaws.ecs#CapacityProviderStrategy": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#CapacityProviderStrategyItem" + } + }, + "com.amazonaws.ecs#CapacityProviderStrategyItem": { + "type": "structure", + "members": { + "capacityProvider": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name of the capacity provider.

", + "smithy.api#required": {} + } + }, + "weight": { + "target": "com.amazonaws.ecs#CapacityProviderStrategyItemWeight", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.

If no weight value is specified, the default value of 0 is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of 0 can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any RunTask or CreateService actions using the capacity provider strategy will fail.

Weight value characteristics:

  • Weight is considered after the base value is satisfied

  • The default value is 0 if not specified

  • The valid range is 0 to 1,000

  • At least one capacity provider must have a weight greater than zero

  • Capacity providers with weight of 0 cannot place tasks

Task distribution logic:

  1. Base satisfaction: The minimum number of tasks specified by the base value are placed on that capacity provider

  2. Weight distribution: After base requirements are met, additional tasks are distributed according to weight ratios

Examples:

Equal Distribution: Two capacity providers both with weight 1 will split tasks evenly after base requirements are met.

Weighted Distribution: If capacityProviderA has weight 1 and capacityProviderB has weight 4, then for every 1 task on A, 4 tasks will run on B.

" + } + }, + "base": { + "target": "com.amazonaws.ecs#CapacityProviderStrategyItemBase", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The base value designates how many tasks, at a minimum, to run on the specified capacity provider for each service. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used.

Base value characteristics:

  • Only one capacity provider in a strategy can have a base defined

  • The default value is 0 if not specified

  • The valid range is 0 to 100,000

  • Base requirements are satisfied first before weight distribution

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTaskor CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateClusterCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

With FARGATE_SPOT, you can run interruption tolerant tasks at a rate that's discounted compared to the FARGATE price. FARGATE_SPOT runs tasks on spare compute capacity. When Amazon Web Services needs the capacity back, your tasks are interrupted with a two-minute warning. FARGATE_SPOT supports Linux tasks with the X86_64 architecture on platform version 1.3.0 or later. FARGATE_SPOT supports Linux tasks with the ARM64 architecture on platform version 1.4.0 or later.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" + } + }, + "com.amazonaws.ecs#CapacityProviderStrategyItemBase": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 100000 + } + } + }, + "com.amazonaws.ecs#CapacityProviderStrategyItemWeight": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.ecs#CapacityProviderType": { + "type": "enum", + "members": { + "EC2_AUTOSCALING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC2_AUTOSCALING" + } + }, + "MANAGED_INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED_INSTANCES" + } + }, + "FARGATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FARGATE" + } + }, + "FARGATE_SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FARGATE_SPOT" + } + } + } + }, + "com.amazonaws.ecs#CapacityProviderUpdateStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_COMPLETE" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_COMPLETE" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_COMPLETE" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } + } + } + }, + "com.amazonaws.ecs#CapacityProviders": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#CapacityProvider" + } + }, + "com.amazonaws.ecs#CapacityReservationPreference": { + "type": "enum", + "members": { + "RESERVATIONS_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESERVATIONS_ONLY" + } + }, + "RESERVATIONS_FIRST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESERVATIONS_FIRST" + } + }, + "RESERVATIONS_EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESERVATIONS_EXCLUDED" + } + } + } + }, + "com.amazonaws.ecs#CapacityReservationRequest": { + "type": "structure", + "members": { + "reservationGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Capacity Reservation resource group in which to run the instance.

" + } + }, + "reservationPreference": { + "target": "com.amazonaws.ecs#CapacityReservationPreference", + "traits": { + "smithy.api#documentation": "

The preference on when capacity reservations should be used.

Valid values are:

  • RESERVATIONS_ONLY - Exclusively launch instances into capacity reservations that match the instance requirements configured for the capacity provider. If none exist, instances will fail to provision.

  • RESERVATIONS_FIRST - Prefer to launch instances into a capacity reservation if any exist that match the instance requirements configured for the capacity provider. If none exist, fall back to launching instances On-Demand.

  • RESERVATIONS_EXCLUDED - Avoid using capacity reservations and launch exclusively On-Demand.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Capacity Reservation configurations to be used when using the RESERVED capacity option type.

" + } + }, + "com.amazonaws.ecs#ClientException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

These errors are usually caused by a client action. This client action might be using an action or resource on behalf of a user that doesn't have permissions to use the action or resource. Or, it might be specifying an identifier that isn't valid.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#Cluster": { + "type": "structure", + "members": { + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" + } + }, + "clusterName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A user-generated string that you use to identify your cluster.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#ClusterConfiguration", + "traits": { + "smithy.api#documentation": "

The execute command and managed storage configuration for the cluster.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the cluster. The following are the possible states that are returned.

ACTIVE

The cluster is ready to accept tasks and if applicable you can register container instances with the cluster.

PROVISIONING

The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being created.

DEPROVISIONING

The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being deleted.

FAILED

The cluster has capacity providers that are associated with it and the resources needed for the capacity provider have failed to create.

INACTIVE

The cluster has been deleted. Clusters with an INACTIVE status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE clusters persisting.

" + } + }, + "registeredContainerInstancesCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of container instances registered into the cluster. This includes container instances in both ACTIVE and DRAINING status.

" + } + }, + "runningTasksCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the cluster that are in the RUNNING state.

" + } + }, + "pendingTasksCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the cluster that are in the PENDING state.

" + } + }, + "activeServicesCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

" + } + }, + "statistics": { + "target": "com.amazonaws.ecs#Statistics", + "traits": { + "smithy.api#documentation": "

Additional information about your clusters that are separated by launch type. They include the following:

  • runningEC2TasksCount

  • RunningFargateTasksCount

  • pendingEC2TasksCount

  • pendingFargateTasksCount

  • activeEC2ServiceCount

  • activeFargateServiceCount

  • drainingEC2ServiceCount

  • drainingFargateServiceCount

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the cluster to help you categorize and organize them. 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.

" + } + }, + "settings": { + "target": "com.amazonaws.ecs#ClusterSettings", + "traits": { + "smithy.api#documentation": "

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is on or off for a cluster.

" + } + }, + "capacityProviders": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The capacity providers associated with the cluster.

" + } + }, + "defaultCapacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.

" + } + }, + "attachments": { + "target": "com.amazonaws.ecs#Attachments", + "traits": { + "smithy.api#documentation": "

The resources attached to a cluster. When using a capacity provider with a cluster, the capacity provider and associated resources are returned as cluster attachments.

" + } + }, + "attachmentsStatus": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the capacity providers associated with the cluster. The following are the states that are returned.

UPDATE_IN_PROGRESS

The available capacity providers for the cluster are updating.

UPDATE_COMPLETE

The capacity providers have successfully updated.

UPDATE_FAILED

The capacity provider updates failed.

" + } + }, + "serviceConnectDefaults": { + "target": "com.amazonaws.ecs#ClusterServiceConnectDefaults", + "traits": { + "smithy.api#documentation": "

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A regional grouping of one or more container instances where you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

" + } + }, + "com.amazonaws.ecs#ClusterConfiguration": { + "type": "structure", + "members": { + "executeCommandConfiguration": { + "target": "com.amazonaws.ecs#ExecuteCommandConfiguration", + "traits": { + "smithy.api#documentation": "

The details of the execute command configuration.

" + } + }, + "managedStorageConfiguration": { + "target": "com.amazonaws.ecs#ManagedStorageConfiguration", + "traits": { + "smithy.api#documentation": "

The details of the managed storage configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The execute command and managed storage configuration for the cluster.

" + } + }, + "com.amazonaws.ecs#ClusterContainsCapacityProviderException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The cluster contains one or more capacity providers that prevent the requested operation. This exception occurs when you try to delete a cluster that still has active capacity providers, including Amazon ECS Managed Instances capacity providers. You must first delete all capacity providers from the cluster before you can delete the cluster itself.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ClusterContainsContainerInstancesException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can't delete a cluster that has registered container instances. First, deregister the container instances before you can delete the cluster. For more information, see DeregisterContainerInstance.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ClusterContainsServicesException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can't delete a cluster that contains services. First, update the service to reduce its desired task count to 0, and then delete the service. For more information, see UpdateService and DeleteService.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ClusterContainsTasksException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can't delete a cluster that has active tasks.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ClusterField": { + "type": "enum", + "members": { + "ATTACHMENTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATTACHMENTS" + } + }, + "CONFIGURATIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURATIONS" + } + }, + "SETTINGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SETTINGS" + } + }, + "STATISTICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATISTICS" + } + }, + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#ClusterFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ClusterField" + } + }, + "com.amazonaws.ecs#ClusterNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ClusterResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + } + }, + "update": { + "target": "com.amazonaws.ecs#UpdateCluster" + }, + "delete": { + "target": "com.amazonaws.ecs#DeleteCluster" + }, + "operations": [ + { + "target": "com.amazonaws.ecs#PutClusterCapacityProviders" + }, + { + "target": "com.amazonaws.ecs#UpdateClusterSettings" + } + ], + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#CreateCluster" + }, + { + "target": "com.amazonaws.ecs#DeregisterContainerInstance" + }, + { + "target": "com.amazonaws.ecs#DescribeClusters" + }, + { + "target": "com.amazonaws.ecs#ExecuteCommand" + }, + { + "target": "com.amazonaws.ecs#ListAttributes" + }, + { + "target": "com.amazonaws.ecs#ListClusters" + }, + { + "target": "com.amazonaws.ecs#ListContainerInstances" + }, + { + "target": "com.amazonaws.ecs#SubmitAttachmentStateChanges" + }, + { + "target": "com.amazonaws.ecs#SubmitContainerStateChange" + }, + { + "target": "com.amazonaws.ecs#SubmitTaskStateChange" + } + ], + "traits": { + "aws.api#arn": { + "template": "cluster/{ClusterName}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "cluster", + "relativeDocumentation": "clusters.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a logical grouping of container instances that you can place tasks on. " + } + }, + "com.amazonaws.ecs#ClusterServiceConnectDefaults": { + "type": "structure", + "members": { + "namespace": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace. When you create a service and don't specify a Service Connect configuration, this namespace is used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ClusterServiceConnectDefaultsRequest": { + "type": "structure", + "members": { + "namespace": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include greater than (>), less than (<), double quotation marks (\"), or slash (/).

If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this Amazon Web Services Region.

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a Cloud Map namespace with the \"API calls\" method of instance discovery only. This instance discovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance discovery aren't used by Service Connect.

If you update the cluster with an empty string \"\" for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in Cloud Map and must be deleted separately.

For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ClusterSetting": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#ClusterSettingName", + "traits": { + "smithy.api#documentation": "

The name of the cluster setting. The value is containerInsights.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The value to set for the cluster setting. The supported values are enhanced, enabled, and disabled.

To use Container Insights with enhanced observability, set the containerInsights account setting to enhanced.

To use Container Insights, set the containerInsights account setting to enabled.

If a cluster value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights with enhanced observability or CloudWatch Container Insights for a cluster.

Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up.

For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ClusterSettingName": { + "type": "enum", + "members": { + "CONTAINER_INSIGHTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "containerInsights" + } + } + } + }, + "com.amazonaws.ecs#ClusterSettings": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ClusterSetting" + } + }, + "com.amazonaws.ecs#Clusters": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Cluster" + } + }, + "com.amazonaws.ecs#Compatibility": { + "type": "enum", + "members": { + "EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC2" + } + }, + "FARGATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FARGATE" + } + }, + "EXTERNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL" + } + }, + "MANAGED_INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED_INSTANCES" + } + } + } + }, + "com.amazonaws.ecs#CompatibilityList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Compatibility" + } + }, + "com.amazonaws.ecs#ConflictException": { + "type": "structure", + "members": { + "resourceIds": { + "target": "com.amazonaws.ecs#ResourceIds", + "traits": { + "smithy.api#documentation": "

The existing task ARNs which are already associated with the clientToken.

" + } + }, + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request could not be processed because of conflict in the current state of the resource.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#Connectivity": { + "type": "enum", + "members": { + "CONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONNECTED" + } + }, + "DISCONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISCONNECTED" + } + } + } + }, + "com.amazonaws.ecs#Container": { + "type": "structure", + "members": { + "containerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container.

" + } + }, + "taskArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the task.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

" + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The image used for the container.

" + } + }, + "imageDigest": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image manifest digest.

" + } + }, + "runtimeId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the Docker container.

" + } + }, + "lastStatus": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The last known status of the container.

" + } + }, + "exitCode": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The exit code returned from the container.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A short (1024 max characters) human-readable string to provide additional details about a running or stopped container.

" + } + }, + "networkBindings": { + "target": "com.amazonaws.ecs#NetworkBindings", + "traits": { + "smithy.api#documentation": "

The network bindings associated with the container.

" + } + }, + "networkInterfaces": { + "target": "com.amazonaws.ecs#NetworkInterfaces", + "traits": { + "smithy.api#documentation": "

The network interfaces associated with the container.

" + } + }, + "healthStatus": { + "target": "com.amazonaws.ecs#HealthStatus", + "traits": { + "smithy.api#documentation": "

The health status of the container. If health checks aren't configured for this container in its task definition, then it reports the health status as UNKNOWN.

" + } + }, + "managedAgents": { + "target": "com.amazonaws.ecs#ManagedAgents", + "traits": { + "smithy.api#documentation": "

The details of any Amazon ECS managed agents associated with the container.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units set for the container. The value is 0 if no value was specified in the container definition when the task definition was registered.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The hard limit (in MiB) of memory set for the container.

" + } + }, + "memoryReservation": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The soft limit (in MiB) of memory set for the container.

" + } + }, + "gpuIds": { + "target": "com.amazonaws.ecs#GpuIds", + "traits": { + "smithy.api#documentation": "

The IDs of each GPU assigned to the container.

" + } + }, + "neuronDeviceIds": { + "target": "com.amazonaws.ecs#NeuronDeviceIds", + "traits": { + "smithy.api#documentation": "

The IDs of each Neuron device assigned to the container.

" + } + }, + "gpuSharingStrategy": { + "target": "com.amazonaws.ecs#SharingStrategy", + "traits": { + "smithy.api#documentation": "

The GPU sharing strategy that the task definition specifies for the container. This field is present only for containers whose resource requirements include sharingStrategy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A Docker container that's part of a task.

" + } + }, + "com.amazonaws.ecs#ContainerCondition": { + "type": "enum", + "members": { + "START": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "START" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "HEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEALTHY" + } + } + } + }, + "com.amazonaws.ecs#ContainerDefinition": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of a container. If you're linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to name in the docker container create command and the --name option to docker run.

" + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest . For images using tags (repository-url/image:tag), up to 255 characters total are allowed, including letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs (#). For images using digests (repository-url/image@digest), the 255 character limit applies only to the repository URL and image name (everything before the @ sign). The only supported hash function is sha256, and the hash value after sha256: must be exactly 64 characters (only letters A-F, a-f, and numbers 0-9 are allowed). This parameter maps to Image in the docker container create command and the IMAGE parameter of docker run.

  • When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks.

  • Images in Amazon ECR repositories can be specified by either using the full registry/repository:tag or registry/repository@digest. For example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

  • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

  • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

" + } + }, + "repositoryCredentials": { + "target": "com.amazonaws.ecs#RepositoryCredentials", + "traits": { + "smithy.api#documentation": "

The private repository authentication credentials to use.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of cpu units reserved for the container. This parameter maps to CpuShares in the docker container create command and the --cpu-shares option to docker run.

This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level cpu value.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.

On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version:

  • Agent versions less than or equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.

  • Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values of 1 are passed to Docker as 2.

  • Agent versions greater than or equal to 1.84.0: CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares.

On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as 0, which Windows interprets as 1% of one CPU.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task memory value, if one is specified. This parameter maps to Memory in the docker container create command and the --memory option to docker run.

If using the Fargate launch type, this parameter is optional.

If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level memory and memoryReservation value, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers.

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers.

" + } + }, + "memoryReservation": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the docker container create command and the --memory-reservation option to docker run.

If a task-level memory value is not specified, you must specify a non-zero integer for one or both of memory or memoryReservation in a container definition. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers.

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers.

" + } + }, + "links": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The links parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is bridge. The name:internalName construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.. This parameter maps to Links in the docker container create command and the --link option to docker run.

This parameter is not supported for Windows containers.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

" + } + }, + "portMappings": { + "target": "com.amazonaws.ecs#PortMappingList", + "traits": { + "smithy.api#documentation": "

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.

For task definitions that use the awsvpc network mode, only specify the containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

Port mappings on Windows use the NetNAT gateway address rather than localhost. There's no loopback for port mappings on Windows, so you can't access a container's mapped port from the host itself.

This parameter maps to PortBindings in the docker container create command and the --publish option to docker run. If the network mode of a task definition is set to none, then you can't specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the networkBindings section DescribeTasks responses.

" + } + }, + "essential": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "restartPolicy": { + "target": "com.amazonaws.ecs#ContainerRestartPolicy", + "traits": { + "smithy.api#documentation": "

The restart policy for a container. When you set up a restart policy, Amazon ECS can restart the container without needing to replace the task. For more information, see Restart individual containers in Amazon ECS tasks with container restart policies in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "entryPoint": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

Early versions of the Amazon ECS container agent don't properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that's passed to the container. This parameter maps to Entrypoint in the docker container create command and the --entrypoint option to docker run.

" + } + }, + "command": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The command that's passed to the container. This parameter maps to Cmd in the docker container create command and the COMMAND parameter to docker run. If there are multiple arguments, each argument is a separated string in the array.

" + } + }, + "environment": { + "target": "com.amazonaws.ecs#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to pass to a container. This parameter maps to Env in the docker container create command and the --env option to docker run.

We don't recommend that you use plaintext environment variables for sensitive information, such as credential data.

" + } + }, + "environmentFiles": { + "target": "com.amazonaws.ecs#EnvironmentFiles", + "traits": { + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container. This parameter maps to the --env-file option to docker run.

You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file contains an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored.

If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see Specifying Environment Variables in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "mountPoints": { + "target": "com.amazonaws.ecs#MountPointList", + "traits": { + "smithy.api#documentation": "

The mount points for data volumes in your container.

This parameter maps to Volumes in the docker container create command and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers can't mount directories on a different drive, and mount point can't be across drives.

" + } + }, + "volumesFrom": { + "target": "com.amazonaws.ecs#VolumeFromList", + "traits": { + "smithy.api#documentation": "

Data volumes to mount from another container. This parameter maps to VolumesFrom in the docker container create command and the --volumes-from option to docker run.

" + } + }, + "linuxParameters": { + "target": "com.amazonaws.ecs#LinuxParameters", + "traits": { + "smithy.api#documentation": "

Linux-specific modifications that are applied to the default Docker container configuration, such as Linux kernel capabilities. For more information see KernelCapabilities.

This parameter is not supported for Windows containers.

" + } + }, + "secrets": { + "target": "com.amazonaws.ecs#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the container. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "dependsOn": { + "target": "com.amazonaws.ecs#ContainerDependencies", + "traits": { + "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain multiple dependencies on other containers in a task definition. When a dependency is defined for container startup, for container shutdown it is reversed.

For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

For tasks using the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

" + } + }, + "startTimeout": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS, or HEALTHY status. If a startTimeout value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a STOPPED state.

When the ECS_CONTAINER_START_TIMEOUT container agent configuration variable is used, it's enforced independently from this start timeout value.

For tasks using the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

For tasks using the EC2 launch type, your container instances require at least version 1.26.0 of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

The valid values for Fargate are 2-120 seconds.

" + } + }, + "stopTimeout": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.

For tasks using the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

For tasks that use the Fargate launch type, the max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.

For tasks that use the EC2 launch type, if the stopTimeout parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ECS_CONTAINER_STOP_TIMEOUT is used. If neither the stopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

The valid values for Fargate are 2-120 seconds.

" + } + }, + "versionConsistency": { + "target": "com.amazonaws.ecs#VersionConsistency", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is enabled. If you set the value for a container as disabled, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see Container image resolution in the Amazon ECS Developer Guide.

" + } + }, + "hostname": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The hostname to use for your container. This parameter maps to Hostname in the docker container create command and the --hostname option to docker run.

The hostname parameter is not supported if you're using the awsvpc network mode.

" + } + }, + "user": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The user to use inside the container. This parameter maps to User in the docker container create command and the --user option to docker run.

When running tasks using the host network mode, don't run containers using the root user (UID 0). We recommend using a non-root user for better security.

You can specify the user using the following formats. If specifying a UID or GID, you must specify it as a positive integer.

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

This parameter is not supported for Windows containers.

" + } + }, + "workingDirectory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The working directory to run commands inside the container in. This parameter maps to WorkingDir in the docker container create command and the --workdir option to docker run.

" + } + }, + "disableNetworking": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, networking is off within the container. This parameter maps to NetworkDisabled in the docker container create command.

This parameter is not supported for Windows containers.

" + } + }, + "privileged": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the docker container create command and the --privileged option to docker run

This parameter is not supported for Windows containers or tasks run on Fargate.

" + } + }, + "readonlyRootFilesystem": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the docker container create command and the --read-only option to docker run.

This parameter is not supported for Windows containers.

" + } + }, + "dnsServers": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of DNS servers that are presented to the container. This parameter maps to Dns in the docker container create command and the --dns option to docker run.

This parameter is not supported for Windows containers.

" + } + }, + "dnsSearchDomains": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the docker container create command and the --dns-search option to docker run.

This parameter is not supported for Windows containers.

" + } + }, + "extraHosts": { + "target": "com.amazonaws.ecs#HostEntryList", + "traits": { + "smithy.api#documentation": "

A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the docker container create command and the --add-host option to docker run.

This parameter isn't supported for Windows containers or tasks that use the awsvpc network mode.

" + } + }, + "dockerSecurityOptions": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of strings to provide custom configuration for multiple security systems. This field isn't valid for containers in tasks using the Fargate launch type.

For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.

For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see Using gMSAs for Windows Containers and Using gMSAs for Linux Containers in the Amazon Elastic Container Service Developer Guide.

This parameter maps to SecurityOpt in the docker container create command and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" | \"credentialspec:CredentialSpecFilePath\"

" + } + }, + "interactive": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, you can deploy containerized applications that require stdin or a tty to be allocated. This parameter maps to OpenStdin in the docker container create command and the --interactive option to docker run.

" + } + }, + "pseudoTerminal": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, a TTY is allocated. This parameter maps to Tty in the docker container create command and the --tty option to docker run.

" + } + }, + "dockerLabels": { + "target": "com.amazonaws.ecs#DockerLabelsMap", + "traits": { + "smithy.api#documentation": "

A key/value map of labels to add to the container. This parameter maps to Labels in the docker container create command and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

" + } + }, + "ulimits": { + "target": "com.amazonaws.ecs#UlimitList", + "traits": { + "smithy.api#documentation": "

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the docker container create command and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 65535 and the default hard limit is 65535.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" + } + }, + "logConfiguration": { + "target": "com.amazonaws.ecs#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration specification for the container.

This parameter maps to LogConfig in the docker container create command and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However the container can use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options).

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "healthCheck": { + "target": "com.amazonaws.ecs#HealthCheck", + "traits": { + "smithy.api#documentation": "

The container health check command and associated configuration parameters for the container. This parameter maps to HealthCheck in the docker container create command and the HEALTHCHECK parameter of docker run.

" + } + }, + "systemControls": { + "target": "com.amazonaws.ecs#SystemControls", + "traits": { + "smithy.api#documentation": "

A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the docker container create command and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

" + } + }, + "resourceRequirements": { + "target": "com.amazonaws.ecs#ResourceRequirements", + "traits": { + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The supported resources are GPUs and Neuron devices.

" + } + }, + "firelensConfiguration": { + "target": "com.amazonaws.ecs#FirelensConfiguration", + "traits": { + "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom Log Routing in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "credentialSpecs": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of ARNs in SSM or Amazon S3 to a credential spec (CredSpec) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the dockerSecurityOptions. The maximum number of ARNs is 1.

There are two formats for each ARN.

credentialspecdomainless:MyARN

You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in Secrets Manager. You provide the login credentials to the domain in the secret.

Each task that runs on any container instance can join different domains.

You can use this format without joining the container instance to a domain.

credentialspec:MyARN

You use credentialspec:MyARN to provide a CredSpec for a single domain.

You must join the container instance to the domain before you start any tasks that use this task definition.

In both formats, replace MyARN with the ARN in SSM or Amazon S3.

If you provide a credentialspecdomainless:MyARN, the credspec must provide a ARN in Secrets Manager for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see Using gMSAs for Windows Containers and Using gMSAs for Linux Containers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container definitions are used in task definitions to describe the different containers that are launched as part of a task.

" + } + }, + "com.amazonaws.ecs#ContainerDefinitions": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerDefinition" + } + }, + "com.amazonaws.ecs#ContainerDependencies": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerDependency" + } + }, + "com.amazonaws.ecs#ContainerDependency": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of a container.

", + "smithy.api#required": {} + } + }, + "condition": { + "target": "com.amazonaws.ecs#ContainerCondition", + "traits": { + "smithy.api#documentation": "

The dependency condition of the container. The following are the available conditions and their behavior:

  • START - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.

  • COMPLETE - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.

  • SUCCESS - This condition is the same as COMPLETE, but it also requires that the container exits with a zero status. This condition can't be set on an essential container.

  • HEALTHY - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.

Your Amazon ECS container instances require at least version 1.26.0 of the container agent to use container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

For tasks that use the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

For more information about how to create a container dependency, see Container dependency in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ContainerImage": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

" + } + }, + "imageDigest": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image digest.

" + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details about the container image a service revision uses.

To ensure that all tasks in a service use the same container image, Amazon ECS resolves container image names and any image tags specified in the task definition to container image digests.

After the container image digest has been established, Amazon ECS uses the digest to start any other desired tasks, and for any future service and service revision updates. This leads to all tasks in a service always running identical container images, resulting in version consistency for your software. For more information, see Container image resolution in the Amazon ECS Developer Guide.

" + } + }, + "com.amazonaws.ecs#ContainerImages": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerImage" + } + }, + "com.amazonaws.ecs#ContainerInstance": { + "type": "structure", + "members": { + "containerInstanceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container instance. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" + } + }, + "ec2InstanceId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2 instance ID. For external instances, this value is the Amazon Web Services Systems Manager managed instance ID.

" + } + }, + "capacityProviderName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The capacity provider that's associated with the container instance.

" + } + }, + "version": { + "target": "com.amazonaws.ecs#Long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you're replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the detail object) to verify that the version in your event stream is current.

" + } + }, + "versionInfo": { + "target": "com.amazonaws.ecs#VersionInfo", + "traits": { + "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon running on the container instance.

" + } + }, + "remainingResources": { + "target": "com.amazonaws.ecs#Resources", + "traits": { + "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the remaining CPU and memory that wasn't already allocated to tasks and is therefore available for new tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent (at instance registration time) and any task containers that have reserved port mappings on the host (with the host or bridge network mode). Any port that's not specified here is available for new tasks.

" + } + }, + "registeredResources": { + "target": "com.amazonaws.ecs#Resources", + "traits": { + "smithy.api#documentation": "

For CPU and memory resource types, this parameter describes the amount of each resource that was available on the container instance when the container agent registered it with Amazon ECS. This value represents the total amount of CPU and memory that can be allocated on this container instance to tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED, ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.

If your account has opted in to the awsvpcTrunking account setting, then any newly registered container instance will transition to a REGISTERING status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a REGISTRATION_FAILED status. You can describe the container instance and see the reason for failure in the statusReason parameter. Once the container instance is terminated, the instance transitions to a DEREGISTERING status while the trunk elastic network interface is deprovisioned. The instance then transitions to an INACTIVE status.

The ACTIVE status indicates that the container instance can accept tasks. The DRAINING indicates that new tasks aren't placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container instance draining in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason that the container instance reached its current status.

" + } + }, + "agentConnected": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This parameter returns true if the agent is connected to Amazon ECS. An instance with an agent that may be unhealthy or stopped return false. Only instances connected to an agent can accept task placement requests.

" + } + }, + "runningTasksCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks on the container instance that have a desired status (desiredStatus) of RUNNING.

" + } + }, + "pendingTasksCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks on the container instance that are in the PENDING status.

" + } + }, + "agentUpdateStatus": { + "target": "com.amazonaws.ecs#AgentUpdateStatus", + "traits": { + "smithy.api#documentation": "

The status of the most recent agent update. If an update wasn't ever requested, this value is NULL.

" + } + }, + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the PutAttributes operation.

" + } + }, + "registeredAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the container instance was registered.

" + } + }, + "attachments": { + "target": "com.amazonaws.ecs#Attachments", + "traits": { + "smithy.api#documentation": "

The resources attached to a container instance, such as an elastic network interface.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the container instance to help you categorize and organize them. 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.

" + } + }, + "healthStatus": { + "target": "com.amazonaws.ecs#ContainerInstanceHealthStatus", + "traits": { + "smithy.api#documentation": "

An object representing the health status of the container instance.

" + } + }, + "gpuDevices": { + "target": "com.amazonaws.ecs#GpuDevices", + "traits": { + "smithy.api#documentation": "

The state of each GPU on the container instance, including its sharing mode and available memory. This field is present only for container instances that support GPU sharing.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon EC2 or External instance that's running the Amazon ECS agent and has been registered with a cluster.

" + } + }, + "com.amazonaws.ecs#ContainerInstanceField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + }, + "CONTAINER_INSTANCE_HEALTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINER_INSTANCE_HEALTH" + } + } + } + }, + "com.amazonaws.ecs#ContainerInstanceFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerInstanceField" + } + }, + "com.amazonaws.ecs#ContainerInstanceHealthStatus": { + "type": "structure", + "members": { + "overallStatus": { + "target": "com.amazonaws.ecs#InstanceHealthCheckState", + "traits": { + "smithy.api#documentation": "

The overall health status of the container instance. This is an aggregate status of all container instance health checks.

" + } + }, + "details": { + "target": "com.amazonaws.ecs#InstanceHealthCheckResultList", + "traits": { + "smithy.api#documentation": "

An array of objects representing the details of the container instance health status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the health status of the container instance.

" + } + }, + "com.amazonaws.ecs#ContainerInstanceResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "ContainerInstanceId": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DeleteAttributes" + }, + { + "target": "com.amazonaws.ecs#DescribeContainerInstances" + }, + { + "target": "com.amazonaws.ecs#ListTasks" + }, + { + "target": "com.amazonaws.ecs#PutAttributes" + }, + { + "target": "com.amazonaws.ecs#RegisterContainerInstance" + }, + { + "target": "com.amazonaws.ecs#UpdateContainerAgent" + }, + { + "target": "com.amazonaws.ecs#UpdateContainerInstancesState" + } + ], + "traits": { + "aws.api#arn": { + "template": "container-instance/{ClusterName}/{ContainerInstanceId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "container-instance", + "relativeDocumentation": "create-capacity.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents an Amazon EC2 instance that is running the Amazon ECS container agent and has been registered into a cluster. When you run tasks with Amazon ECS, your tasks are placed on your active container instances" + } + }, + "com.amazonaws.ecs#ContainerInstanceStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DRAINING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRAINING" + } + }, + "REGISTERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REGISTERING" + } + }, + "DEREGISTERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEREGISTERING" + } + }, + "REGISTRATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REGISTRATION_FAILED" + } + } + } + }, + "com.amazonaws.ecs#ContainerInstances": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerInstance" + } + }, + "com.amazonaws.ecs#ContainerOverride": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container that receives the override. This parameter is required if any override is specified.

" + } + }, + "command": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.

" + } + }, + "environment": { + "target": "com.amazonaws.ecs#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.

" + } + }, + "environmentFiles": { + "target": "com.amazonaws.ecs#EnvironmentFiles", + "traits": { + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container, instead of the value from the container definition.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.

" + } + }, + "memoryReservation": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name.

" + } + }, + "resourceRequirements": { + "target": "com.amazonaws.ecs#ResourceRequirements", + "traits": { + "smithy.api#documentation": "

The type and amount of a resource to assign to a container, instead of the default value from the task definition. The supported resources are GPUs and Neuron devices.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The overrides that are sent to a container. An empty container override can be passed in. An example of an empty container override is {\"containerOverrides\": [ ] }. If a non-empty container override is specified, the name parameter must be included.

You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the sensitive data. For more information, see Retrieve secrets through environment variables in the Amazon ECS Developer Guide.

" + } + }, + "com.amazonaws.ecs#ContainerOverrides": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerOverride" + } + }, + "com.amazonaws.ecs#ContainerRestartPolicy": { + "type": "structure", + "members": { + "enabled": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether a restart policy is enabled for the container.

", + "smithy.api#required": {} + } + }, + "ignoredExitCodes": { + "target": "com.amazonaws.ecs#IntegerList", + "traits": { + "smithy.api#documentation": "

A list of exit codes that Amazon ECS will ignore and not attempt a restart on. You can specify a maximum of 50 container exit codes. By default, Amazon ECS does not ignore any exit codes.

" + } + }, + "restartAttemptPeriod": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

A period of time (in seconds) that the container must run for before a restart can be attempted. A container can be restarted only once every restartAttemptPeriod seconds. If a container isn't able to run for this time period and exits early, it will not be restarted. You can set a minimum restartAttemptPeriod of 60 seconds and a maximum restartAttemptPeriod of 1800 seconds. By default, a container must run for 300 seconds before it can be restarted.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can enable a restart policy for each container defined in your task definition, to overcome transient failures faster and maintain task availability. When you enable a restart policy for a container, Amazon ECS can restart the container if it exits, without needing to replace the task. For more information, see Restart individual containers in Amazon ECS tasks with container restart policies in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ContainerStateChange": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

" + } + }, + "imageDigest": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image SHA 256 digest.

" + } + }, + "runtimeId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the Docker container.

" + } + }, + "exitCode": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The exit code for the container, if the state change is a result of the container exiting.

" + } + }, + "networkBindings": { + "target": "com.amazonaws.ecs#NetworkBindings", + "traits": { + "smithy.api#documentation": "

Any network bindings that are associated with the container.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the state change.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the container.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents a change in state for a container.

" + } + }, + "com.amazonaws.ecs#ContainerStateChanges": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerStateChange" + } + }, + "com.amazonaws.ecs#Containers": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Container" + } + }, + "com.amazonaws.ecs#ContinueServiceDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ContinueServiceDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ContinueServiceDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceDeploymentNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to continue a paused service deployment", + "relativeDocumentation": "API_ContinueServiceDeployment.html", + "resources": { + "required": { + "service-deployment": { + "conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + }, + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Continues or rolls back an Amazon ECS service deployment that is paused at a lifecycle hook.

When a service deployment reaches a lifecycle stage that has a PAUSE hook configured, the deployment pauses and waits for an explicit action. Use this API to either continue the deployment to the next stage or roll back to the previous service revision.

To find the hookId of the paused hook, call DescribeServiceDeployments and inspect the lifecycleHookDetails field.

For more information, see Continuing Amazon ECS service deployments in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To continue a paused service deployment", + "documentation": "This example continues a service deployment that is paused at a lifecycle hook, using the CONTINUE action to proceed to the next deployment stage.", + "input": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r", + "hookId": "ecs-pause-Xk7rT2mP9sLwQn4vB8fYd3hJ6gA1cE5iO0uR_ZpWq", + "action": "CONTINUE" + }, + "output": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r" + } + }, + { + "title": "To roll back a paused service deployment", + "documentation": "This example rolls back a service deployment that is paused at a lifecycle hook, using the ROLLBACK action to revert to the previous service revision.", + "input": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r", + "hookId": "ecs-pause-Xk7rT2mP9sLwQn4vB8fYd3hJ6gA1cE5iO0uR_ZpWq", + "action": "ROLLBACK" + }, + "output": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r" + } + } + ] + } + }, + "com.amazonaws.ecs#ContinueServiceDeploymentRequest": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment to continue or roll back.

", + "smithy.api#required": {} + } + }, + "hookId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the paused lifecycle hook to act on. You can find the hookId by calling DescribeServiceDeployments and inspecting the lifecycleHookDetails field of the service deployment.

", + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookAction", + "traits": { + "smithy.api#documentation": "

The action to take on the paused lifecycle hook. Valid values are:

  • CONTINUE - Proceeds the deployment to the next lifecycle stage.

  • ROLLBACK - Rolls back the deployment to the previous service revision.

If no value is specified, the default action is CONTINUE.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ContinueServiceDeploymentResponse": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment that was continued or rolled back.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CpuManufacturer": { + "type": "enum", + "members": { + "INTEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "intel" + } + }, + "AMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amd" + } + }, + "AMAZON_WEB_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "amazon-web-services" + } + } + } + }, + "com.amazonaws.ecs#CpuManufacturerSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#CpuManufacturer", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#CreateCapacityProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateCapacityProviderRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateCapacityProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:instance-metadata-tags-propagation", + "ecs:propagate-tags", + "aws:RequestTag/${TagKey}", + "aws:TagKeys" + ], + "aws.iam#iamAction": { + "createsResources": [ + "capacity-provider" + ], + "documentation": "Grants permission to create 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", + "relativeDocumentation": "API_CreateCapacityProvider.html", + "resources": { + "required": { + "capacity-provider": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Creates a capacity provider. Capacity providers are associated with a cluster and are used in capacity provider strategies to facilitate cluster auto scaling. You can create capacity providers for Amazon ECS Managed Instances and EC2 instances. Fargate has the predefined FARGATE and FARGATE_SPOT capacity providers.

", + "smithy.api#examples": [ + { + "title": "To create a capacity provider ", + "documentation": "This example creates a capacity provider that uses the specified Auto Scaling group MyASG and has managed scaling and manager termination protection enabled. ", + "input": { + "name": "MyCapacityProvider", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100 + }, + "managedTerminationProtection": "ENABLED" + } + }, + "output": { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:132456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000, + "instanceWarmupPeriod": 300 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [] + } + } + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#CreateCapacityProviderRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the capacity provider. Up to 255 characters are allowed. They include letters (both upper and lowercase letters), numbers, underscores (_), and hyphens (-). The name can't be prefixed with \"aws\", \"ecs\", or \"fargate\".

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "CapacityProviderName" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster to associate with the capacity provider. When you create a capacity provider with Amazon ECS Managed Instances, it becomes available only within the specified cluster.

" + } + }, + "autoScalingGroupProvider": { + "target": "com.amazonaws.ecs#AutoScalingGroupProvider", + "traits": { + "smithy.api#documentation": "

The details of the Auto Scaling group for the capacity provider.

" + } + }, + "managedInstancesProvider": { + "target": "com.amazonaws.ecs#CreateManagedInstancesProviderConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon ECS Managed Instances provider. This configuration specifies how Amazon ECS manages Amazon EC2 instances on your behalf, including the infrastructure role, instance launch template, and tag propagation settings.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the capacity provider to categorize and organize them more conveniently. Each tag consists of a key and an optional value. You define both of 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.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateCapacityProviderResponse": { + "type": "structure", + "members": { + "capacityProvider": { + "target": "com.amazonaws.ecs#CapacityProvider", + "traits": { + "smithy.api#documentation": "

The full description of the new capacity provider.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateClusterRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:capacity-provider", + "ecs:fargate-ephemeral-storage-kms-key", + "aws:RequestTag/${TagKey}", + "aws:TagKeys" + ], + "aws.iam#iamAction": { + "createsResources": [ + "cluster" + ], + "documentation": "Grants permission to create a new Amazon ECS cluster", + "relativeDocumentation": "API_CreateCluster.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

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.

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.

", + "smithy.api#examples": [ + { + "title": "To create a new cluster", + "documentation": "This example creates a cluster in your default region.", + "input": { + "clusterName": "my_cluster" + }, + "output": { + "cluster": { + "status": "ACTIVE", + "clusterName": "my_cluster", + "registeredContainerInstancesCount": 0, + "pendingTasksCount": 0, + "runningTasksCount": 0, + "activeServicesCount": 0, + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster" + } + } + } + ] + } + }, + "com.amazonaws.ecs#CreateClusterRequest": { + "type": "structure", + "members": { + "clusterName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of your cluster. If you don't specify a name for your cluster, you create a cluster that's named default. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the cluster to help you categorize and organize them. 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.

" + } + }, + "settings": { + "target": "com.amazonaws.ecs#ClusterSettings", + "traits": { + "smithy.api#documentation": "

The setting to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. If this value is specified, it overrides the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#ClusterConfiguration", + "traits": { + "smithy.api#documentation": "

The execute command configuration for the cluster.

" + } + }, + "capacityProviders": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The short name of one or more capacity providers to associate with the cluster. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy when calling the CreateService or RunTask actions.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must be created but not associated with another cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutCapacityProvider API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

" + } + }, + "defaultCapacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy to set as the default for the cluster. After a default capacity provider strategy is set for a cluster, when you call the CreateService or RunTask APIs with no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used.

If a default capacity provider strategy isn't defined for a cluster when it was created, it can be defined later with the PutClusterCapacityProviders API operation.

" + } + }, + "serviceConnectDefaults": { + "target": "com.amazonaws.ecs#ClusterServiceConnectDefaultsRequest", + "traits": { + "smithy.api#documentation": "

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateClusterResponse": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#Cluster", + "traits": { + "smithy.api#documentation": "

The full description of your new cluster.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateDaemon": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateDaemonRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateDaemonResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:capacity-provider", + "ecs:daemon-task-definition", + "ecs:enable-ecs-managed-tags", + "ecs:enable-execute-command", + "ecs:propagate-tags", + "ecs:task-cpu", + "ecs:task-memory" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to create a new daemon in a specified cluster", + "createsResources": [ + "daemon" + ], + "resources": { + "required": { + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Creates a new daemon in the specified cluster and capacity providers. A daemon deploys cross-cutting software agents such as security monitoring, telemetry, and logging independently across your Amazon ECS infrastructure.

Amazon ECS deploys exactly one daemon task on each container instance of the specified capacity providers. When a container instance registers with the cluster, Amazon ECS automatically starts daemon tasks. Amazon ECS starts a daemon task before scheduling other tasks.

Daemons are essential for instance health - if a daemon task stops, Amazon ECS automatically drains and replaces that container instance.

ECS Managed Daemons is only supported for Amazon ECS Managed Instances Capacity Providers.

", + "smithy.api#examples": [ + { + "title": "To create a daemon", + "documentation": "This example creates a daemon named my-monitoring-daemon in the specified cluster that uses the monitoring-agent daemon task definition and deploys to the specified capacity provider.", + "input": { + "daemonName": "my-monitoring-daemon", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1", + "capacityProviderArns": [ + "arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-capacity-provider" + ], + "deploymentConfiguration": { + "drainPercent": 10.0, + "bakeTimeInMinutes": 5 + } + }, + "output": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "status": "ACTIVE", + "createdAt": "2025-03-15T12:00:00.000Z", + "deploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/aB1cD2eF3gH4iJ5k" + } + } + ] + } + }, + "com.amazonaws.ecs#CreateDaemonRequest": { + "type": "structure", + "members": { + "daemonName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the daemon. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

", + "smithy.api#required": {} + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster to create the daemon in.

" + } + }, + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon task definition to use for the daemon.

", + "smithy.api#required": {} + } + }, + "capacityProviderArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the capacity providers to associate with the daemon. The daemon deploys tasks on container instances managed by these capacity providers.

", + "smithy.api#required": {} + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DaemonDeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how the daemon rolls out updates, including the drain percentage, alarm-based rollback, and bake time.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the daemon to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of 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.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#DaemonPropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the daemon to the daemon tasks. If you don't specify a value, the tags aren't propagated. You can only propagate tags to daemon tasks during task creation. To add tags to a task after task creation, use the TagResource API action.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks in the daemon. For more information, see Tagging your Amazon ECS resources in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the daemon. If true, the execute command functionality is turned on for all tasks in the daemon.

" + } + }, + "clientToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 36 ASCII characters in the range of 33-126 (inclusive) are allowed.

" + } + }, + "critical": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If the critical parameter of a daemon is true, and the daemon task fails, stops, or becomes unhealthy, Amazon ECS drains the container instance and stops the other tasks running on it. If the critical parameter is false, the daemon task failure doesn't affect the other tasks on the instance. The default value is true.

A non-critical daemon doesn't block instance registration. The container instance becomes active and continues to run your other tasks, whether the daemon task fails during scale-out or during a deployment.

Amazon ECS emits an EventBridge event when a daemon task fails to start, for both critical and non-critical daemons.

Daemon task launch failures during a deployment are still counted by the deployment circuit breaker. The circuit breaker can roll back an unstable target revision.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateDaemonResponse": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

", + "smithy.api#notProperty": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon.

", + "smithy.api#notProperty": {} + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was created.

", + "smithy.api#notProperty": {} + } + }, + "deploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the initial daemon deployment. This deployment places daemon tasks on each container instance of the specified capacity providers.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateExpressGatewayService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateExpressGatewayServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateExpressGatewayServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:task-cpu", + "ecs:task-memory", + "ecs:task-definition", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:propagate-tags", + "ecs:subnet", + "ecs:enable-ecs-managed-tags" + ], + "aws.iam#iamAction": { + "createsResources": [ + "service" + ], + "documentation": "Grants permission to create a new Amazon ECS Express Gateway service with cluster and task definition", + "relativeDocumentation": "API_CreateExpressGatewayService.html", + "requiredActions": [ + "iam:PassRole", + "ecs:RegisterTaskDefinition" + ], + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Creates an Express service that simplifies deploying containerized web applications on Amazon ECS with managed Amazon Web Services infrastructure. This operation provisions and configures Application Load Balancers, target groups, security groups, and auto-scaling policies automatically.

Specify a primary container configuration with your application image and basic settings. Amazon ECS creates the necessary Amazon Web Services resources for traffic distribution, health monitoring, network access control, and capacity management.

Provide an execution role for task operations and an infrastructure role for managing Amazon Web Services resources on your behalf.

" + } + }, + "com.amazonaws.ecs#CreateExpressGatewayServiceRequest": { + "type": "structure", + "members": { + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf. This role is required for Amazon ECS to pull container images from Amazon ECR, send container logs to Amazon CloudWatch Logs, and retrieve sensitive data from Amazon Web Services Systems Manager Parameter Store or Amazon Web Services Secrets Manager.

The execution role must include the AmazonECSTaskExecutionRolePolicy managed policy or equivalent permissions. For Express services, this role is used during task startup and runtime for container management operations.

" + } + }, + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the infrastructure role that grants Amazon ECS permission to create and manage Amazon Web Services resources on your behalf for the Express service. This role is used to provision and manage Application Load Balancers, target groups, security groups, auto-scaling policies, and other Amazon Web Services infrastructure components.

The infrastructure role must include permissions for Elastic Load Balancing, Application Auto Scaling, Amazon EC2 (for security groups), and other services required for managed infrastructure. This role is only used during Express service creation, updates, and deletion operations.

", + "smithy.api#required": {} + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the Express service. This name must be unique within the specified cluster and can contain up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens. The name is used to identify the service in the Amazon ECS console and API operations.

If you don't specify a service name, Amazon ECS generates a unique name for the service. The service name becomes part of the service ARN and cannot be changed after the service is created.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to create the Express service. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "healthCheckPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The path on the container that the Application Load Balancer uses for health checks. This should be a valid HTTP endpoint that returns a successful response (HTTP 200) when the application is healthy.

If not specified, the default health check path is /ping. The health check path must start with a forward slash and can include query parameters. Examples: /health, /api/status, /ping?format=json.

" + } + }, + "primaryContainer": { + "target": "com.amazonaws.ecs#ExpressGatewayContainer", + "traits": { + "smithy.api#documentation": "

The primary container configuration for the Express service. This defines the main application container that will receive traffic from the Application Load Balancer.

The primary container must specify at minimum a container image. You can also configure the container port (defaults to 80), logging configuration, environment variables, secrets, and startup commands. The container image can be from Amazon ECR, Docker Hub, or any other container registry accessible to your execution role.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. This role allows your application code to access other Amazon Web Services services securely.

The task role is different from the execution role. While the execution role is used by the Amazon ECS agent to set up the task, the task role is used by your application code running inside the container to make Amazon Web Services API calls. If your application doesn't need to access Amazon Web Services services, you can omit this parameter.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the Express service tasks. This specifies the VPC subnets and security groups for the tasks.

For Express services, you can specify custom security groups and subnets. If not provided, Amazon ECS will use the default VPC configuration and create appropriate security groups automatically. The network configuration determines how your service integrates with your VPC and what network access it has.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the task. This parameter determines the CPU allocation for each task in the Express service. The default value for an Express service is 256 (.25 vCPU).

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) used by the task. This parameter determines the memory allocation for each task in the Express service. The default value for an express service is 512 MiB.

" + } + }, + "cpuArchitecture": { + "target": "com.amazonaws.ecs#ExpressCpuArchitecture", + "traits": { + "smithy.api#documentation": "

The CPU architecture that the task runs on. If you don't specify a value, the default is X86_64.

Valid values:

  • X86_64 - The x86 64-bit architecture.

  • ARM64 - The 64-bit ARM architecture.

Ensure that the container image you specify supports the architecture you choose. The operating system family for an Express service is always LINUX.

You can't specify cpuArchitecture together with taskDefinitionArn.

" + } + }, + "scalingTarget": { + "target": "com.amazonaws.ecs#ExpressGatewayScalingTarget", + "traits": { + "smithy.api#documentation": "

The auto-scaling configuration for the Express service. This defines how the service automatically adjusts the number of running tasks based on demand.

You can specify the minimum and maximum number of tasks, the scaling metric (CPU utilization, memory utilization, or request count per target), and the target value for the metric. If not specified, the default target value for an Express service is 60.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the Express service to help categorize and organize it. Each tag consists of a key and an optional value. You can apply up to 50 tags to a service.

" + } + }, + "taskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a task definition to use to create the Express Gateway service. This allows you to manage your own task definition, giving you more control over the service configuration such as adding sidecar containers.

The task definition must have a container named Main with a single TCP port mapping that includes a container port and port name. The task definition must also have FARGATE compatibility.

If you provide a task definition ARN, you cannot also specify primaryContainer, executionRoleArn, taskRoleArn, cpu, memory, or cpuArchitecture.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateExpressGatewayServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#ECSExpressGatewayService", + "traits": { + "smithy.api#documentation": "

The full description of your Express service following the create operation.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:enable-ecs-managed-tags", + "ecs:propagate-tags" + ], + "aws.iam#iamAction": { + "createsResources": [ + "gateway" + ], + "documentation": "Grants permission to create an Amazon ECS gateway", + "relativeDocumentation": "API_CreateGateway.html", + "requiredActions": [ + "iam:PassRole" + ], + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Creates a gateway. A gateway defines and dynamically manages ingress paths for your Amazon ECS services, handling traffic routing and infrastructure across multiple services while optimizing infrastructure usage. CreateGateway is a synchronous operation and the gateway is returned with a status of ACTIVE. The load balancers and other infrastructure that a gateway manages aren't created until a service in an associated cluster begins using the gateway.

To use this operation, you must have the iam:PassRole permission for the infrastructure role that you specify in infrastructureRoleArn.

", + "smithy.api#examples": [ + { + "title": "To create a gateway", + "documentation": "This example creates a gateway named my-gateway that uses internet-facing Application Load Balancers with host-based routing in the specified subnets.", + "input": { + "name": "my-gateway", + "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "configuration": { + "hostSharedAlb": { + "networkConfiguration": { + "subnets": [ + "subnet-0123456789abcdef0", + "subnet-0fedcba9876543210" + ], + "ipAddressType": "ipv4" + }, + "scheme": "internet-facing", + "protocol": "HTTPS", + "port": 443, + "maxAlbCount": 10, + "httpDesync": "defensive" + } + }, + "tags": [ + { + "key": "team", + "value": "web" + } + ], + "propagateTags": "GATEWAY" + }, + "output": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "name": "my-gateway", + "status": "ACTIVE" + } + } + ] + } + }, + "com.amazonaws.ecs#CreateGatewayRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name for the gateway. The name must be unique within your account and can be up to 255 characters.

", + "smithy.api#required": {} + } + }, + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the gateway assumes to create and manage infrastructure on your behalf.

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure that the operation completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.

", + "smithy.api#idempotencyToken": {} + } + }, + "deletionProtection": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the gateway. When enabled, the gateway can't be deleted, and the gateway propagates this setting to the load balancers it manages. The default is true.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#GatewayConfiguration", + "traits": { + "smithy.api#documentation": "

The type-specific configuration for the gateway. Exactly one configuration variant must be set, and it determines the gateway type. For example, hostSharedAlb configures a gateway that uses Application Load Balancers with host-based routing.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the gateway to help you categorize and organize it. Each tag consists of a key and an optional value. Depending on propagateTags, these tags can be applied to the infrastructure the gateway manages.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateGatewayTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the gateway to the infrastructure that the gateway manages. The default is GATEWAY.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateGatewayResponse": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the gateway.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway. A newly created gateway is always ACTIVE.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateManagedInstancesProviderConfiguration": { + "type": "structure", + "members": { + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the infrastructure role that Amazon ECS uses to manage instances on your behalf. This role must have permissions to launch, terminate, and manage Amazon EC2 instances, as well as access to other Amazon Web Services services required for Amazon ECS Managed Instances functionality.

For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "instanceLaunchTemplate": { + "target": "com.amazonaws.ecs#InstanceLaunchTemplate", + "traits": { + "smithy.api#documentation": "

The launch template configuration that specifies how Amazon ECS should launch Amazon EC2 instances. This includes the instance profile, network configuration, storage settings, and instance requirements for attribute-based instance type selection.

For more information, see Store instance launch parameters in Amazon EC2 launch templates in the Amazon EC2 User Guide.

", + "smithy.api#required": {} + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateMITags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate tags from the capacity provider to the Amazon ECS Managed Instances. When enabled, tags applied to the capacity provider are automatically applied to all instances launched by this provider.

" + } + }, + "infrastructureOptimization": { + "target": "com.amazonaws.ecs#InfrastructureOptimization", + "traits": { + "smithy.api#documentation": "

Defines how Amazon ECS Managed Instances optimizes the infrastastructure in your capacity provider. Provides control over the delay between when EC2 instances become idle or underutilized and when Amazon ECS optimizes them.

" + } + }, + "autoRepairConfiguration": { + "target": "com.amazonaws.ecs#AutoRepairConfiguration", + "traits": { + "smithy.api#documentation": "

The auto repair configuration for the Amazon ECS Managed Instances capacity provider. Use this to enable or disable automatic replacement of container instances that are detected as unhealthy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for creating a Amazon ECS Managed Instances provider. This specifies how Amazon ECS should manage Amazon EC2 instances, including the infrastructure role, instance launch template, and whether to propagate tags from the capacity provider to the instances.

" + } + }, + "com.amazonaws.ecs#CreateService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + "ecs:task-cpu", + "aws:RequestTag/${TagKey}", + "ecs:enable-service-connect", + "ecs:enable-ecs-managed-tags", + "ecs:capacity-provider", + "ecs:namespace", + "ecs:auto-assign-public-ip", + "ecs:enable-vpc-lattice", + "ecs:task-memory", + "ecs:task-definition", + "aws:TagKeys", + "ecs:propagate-tags", + "ecs:subnet" + ], + "aws.iam#iamAction": { + "createsResources": [ + "service" + ], + "documentation": "Grants permission to run and maintain a desired number of tasks from a specified task definition via service creation", + "relativeDocumentation": "API_CreateService.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, use UpdateService.

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

Amazon Elastic Inference (EI) is no longer available to customers.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. volumeConfigurations is only supported for REPLICA service and not DAEMON service. For more information, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Amazon ECS services in the Amazon Elastic Container Service Developer Guide.

The deployment controller is the mechanism that determines how tasks are deployed for your service. The valid options are:

  • ECS

    When you create a service which uses the ECS deployment controller, you can choose between the following deployment strategies (which you can set in the “strategy” field in “deploymentConfiguration”): :

    • ROLLING: When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration. For more information, see Deploy Amazon ECS services by replacing tasks in the Amazon Elastic Container Service Developer Guide.

      Rolling update deployments are best suited for the following scenarios:

      • Gradual service updates: You need to update your service incrementally without taking the entire service offline at once.

      • Limited resource requirements: You want to avoid the additional resource costs of running two complete environments simultaneously (as required by blue/green deployments).

      • Acceptable deployment time: Your application can tolerate a longer deployment process, as rolling updates replace tasks one by one.

      • No need for instant roll back: Your service can tolerate a rollback process that takes minutes rather than seconds.

      • Simple deployment process: You prefer a straightforward deployment approach without the complexity of managing multiple environments, target groups, and listeners.

      • No load balancer requirement: Your service doesn't use or require a load balancer, Application Load Balancer, Network Load Balancer, or Service Connect (which are required for blue/green deployments).

      • Stateful applications: Your application maintains state that makes it difficult to run two parallel environments.

      • Cost sensitivity: You want to minimize deployment costs by not running duplicate environments during deployment.

      Rolling updates are the default deployment strategy for services and provide a balance between deployment safety and resource efficiency for many common application scenarios.

    • BLUE_GREEN: A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed. For more information, see Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

      Amazon ECS blue/green deployments are best suited for the following scenarios:

      • Service validation: When you need to validate new service revisions before directing production traffic to them

      • Zero downtime: When your service requires zero-downtime deployments

      • Instant roll back: When you need the ability to quickly roll back if issues are detected

      • Load balancer requirement: When your service uses Application Load Balancer, Network Load Balancer, or Service Connect

    • LINEAR: A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentage increments. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic.

      Linear deployments are best suited for the following scenarios:

      • Gradual validation: When you want to gradually validate your new service version with increasing traffic

      • Performance monitoring: When you need time to monitor metrics and performance during the deployment

      • Risk minimization: When you want to minimize risk by exposing the new version to production traffic incrementally

      • Load balancer requirement: When your service uses Application Load Balancer or Service Connect

    • CANARY: A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.

      Canary deployments are best suited for the following scenarios:

      • Feature testing: When you want to test new features with a small subset of users before full rollout

      • Production validation: When you need to validate performance and functionality with real production traffic

      • Blast radius control: When you want to minimize blast radius if issues are discovered in the new version

      • Load balancer requirement: When your service uses Application Load Balancer or Service Connect

  • External

    Use a third-party deployment controller.

  • Blue/green deployment (powered by CodeDeploy)

    CodeDeploy installs an updated version of the application as a new replacement task set and reroutes production traffic from the original application task set to the replacement task set. The original task set is terminated after a successful deployment. Use this deployment controller to verify a new deployment of a service before sending production traffic to it.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide

", + "smithy.api#examples": [ + { + "title": "To create a new service", + "documentation": "This example creates a service in your default region called ``ecs-simple-service``. The service uses the ``hello_world`` task definition and it maintains 10 copies of that task.", + "input": { + "serviceName": "ecs-simple-service", + "taskDefinition": "hello_world", + "desiredCount": 10 + }, + "output": { + "service": { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "createdAt": "2016-08-29T16:13:47.298Z", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "createdAt": "2016-08-29T16:13:47.298Z", + "desiredCount": 10, + "id": "ecs-svc/9223370564342348388", + "pendingCount": 0, + "runningCount": 0, + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6", + "updatedAt": "2016-08-29T16:13:47.298Z" + }, + { + "createdAt": "2016-08-29T15:52:44.481Z", + "desiredCount": 0, + "id": "ecs-svc/9223370564343611322", + "pendingCount": 0, + "runningCount": 0, + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6", + "updatedAt": "2016-08-29T16:11:38.941Z" + } + ], + "desiredCount": 10, + "events": [], + "loadBalancers": [], + "pendingCount": 0, + "runningCount": 0, + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-simple-service", + "serviceName": "ecs-simple-service", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/default/hello_world:6" + } + } + }, + { + "title": "To create a new service behind a load balancer", + "documentation": "This example creates a service in your default region called ``ecs-simple-service-elb``. The service uses the ``ecs-demo`` task definition and it maintains 10 copies of that task. You must reference an existing load balancer in the same region by its name.", + "input": { + "loadBalancers": [ + { + "containerName": "simple-app", + "containerPort": 80, + "loadBalancerName": "EC2Contai-EcsElast-15DCDAURT3ZO2" + } + ], + "serviceName": "ecs-simple-service-elb", + "role": "ecsServiceRole", + "taskDefinition": "console-sample-app-static", + "desiredCount": 10 + }, + "output": { + "service": { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "createdAt": "2016-08-29T16:02:54.884Z", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "createdAt": "2016-08-29T16:02:54.884Z", + "desiredCount": 10, + "id": "ecs-svc/9223370564343000923", + "pendingCount": 0, + "runningCount": 0, + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-static:6", + "updatedAt": "2016-08-29T16:02:54.884Z" + } + ], + "desiredCount": 10, + "events": [], + "loadBalancers": [ + { + "containerName": "simple-app", + "containerPort": 80, + "loadBalancerName": "EC2Contai-EcsElast-15DCDAURT3ZO2" + } + ], + "pendingCount": 0, + "roleArn": "arn:aws:iam::012345678910:role/ecsServiceRole", + "runningCount": 0, + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-simple-service-elb", + "serviceName": "ecs-simple-service-elb", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/default/console-sample-app-static:6" + } + } + }, + { + "title": "To create a service with a pause lifecycle hook", + "documentation": "This example creates a service with a blue/green deployment strategy that includes a pause lifecycle hook at the POST_PRODUCTION_TRAFFIC_SHIFT stage. The deployment will pause at that stage until you explicitly continue or roll back using the ContinueServiceDeployment API, or until the 60-minute timeout expires and triggers a rollback.", + "input": { + "serviceName": "ecs-service-with-pause-hook", + "taskDefinition": "ecs-demo", + "desiredCount": 2, + "deploymentConfiguration": { + "strategy": "BLUE_GREEN", + "lifecycleHooks": [ + { + "targetType": "PAUSE", + "lifecycleStages": [ + "POST_PRODUCTION_TRAFFIC_SHIFT" + ], + "timeoutConfiguration": { + "timeoutInMinutes": 60, + "action": "ROLLBACK" + } + } + ] + } + }, + "output": { + "service": { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "createdAt": "2026-05-06T16:00:00.000Z", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "strategy": "BLUE_GREEN", + "lifecycleHooks": [ + { + "targetType": "PAUSE", + "lifecycleStages": [ + "POST_PRODUCTION_TRAFFIC_SHIFT" + ], + "timeoutConfiguration": { + "timeoutInMinutes": 60, + "action": "ROLLBACK" + } + } + ] + }, + "deployments": [ + { + "createdAt": "2026-05-06T16:00:00.000Z", + "desiredCount": 2, + "id": "ecs-svc/9223370564342348388", + "pendingCount": 0, + "runningCount": 0, + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1", + "updatedAt": "2026-05-06T16:00:00.000Z" + } + ], + "desiredCount": 2, + "events": [], + "loadBalancers": [], + "pendingCount": 0, + "runningCount": 0, + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-service-with-pause-hook", + "serviceName": "ecs-service-with-pause-hook", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1" + } + } + }, + { + "title": "To create a service with a monitoring configuration", + "documentation": "This example creates a service with a monitoring configuration that sets 20-second resolution for CPUUtilization and MemoryUtilization CloudWatch metrics. The monitoring configuration is not returned in the CreateService response. Use DescribeServiceRevisions to view the monitoring configuration.", + "input": { + "serviceName": "ecs-monitored-service", + "taskDefinition": "my-app:1", + "desiredCount": 2, + "monitoring": { + "metricConfigurations": [ + { + "metricNames": [ + "CPUUtilization", + "MemoryUtilization" + ], + "resolutionSeconds": 20 + } + ] + } + }, + "output": { + "service": { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "serviceName": "ecs-monitored-service", + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-monitored-service", + "status": "ACTIVE", + "desiredCount": 2, + "runningCount": 0, + "pendingCount": 0, + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/my-app:1", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + } + } + } + } + ] + } + }, + "com.amazonaws.ecs#CreateServiceRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.

", + "smithy.api#required": {} + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision isn't specified, the latest ACTIVE revision is used.

A task definition must be specified if the service uses either the ECS or CODE_DEPLOY deployment controllers.

For more information about deployment types, see Amazon ECS deployment types.

" + } + }, + "availabilityZoneRebalancing": { + "target": "com.amazonaws.ecs#AvailabilityZoneRebalancing", + "traits": { + "smithy.api#documentation": "

Indicates whether to use Availability Zone rebalancing for the service.

For more information, see Balancing an Amazon ECS service across Availability Zones in the Amazon Elastic Container Service Developer Guide .

The default behavior of AvailabilityZoneRebalancing differs between create and update requests:

  • For create service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults the value to ENABLED.

  • For update service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults to the existing service’s AvailabilityZoneRebalancing value. If the service never had an AvailabilityZoneRebalancing value set, Amazon ECS treats this as DISABLED.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

A load balancer object representing the load balancers to use with your service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

If the service uses the ECS deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If the service uses the CODE_DEPLOY deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you specify two target groups (referred to as a targetGroupPair). During a deployment, CodeDeploy determines which task set in your service has the status PRIMARY, and it associates one target group with it. Then, it also associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that you can use to perform validation tests with Lambda functions before routing production traffic to it.

If you use the CODE_DEPLOY deployment controller, these values can be changed when updating the service.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name, and the container port to access from the load balancer. The container name must be as it appears in a container definition. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group that's specified here.

For Classic Load Balancers, this object must contain the load balancer name, the container name , and the container port to access from the load balancer. The container name must be as it appears in a container definition. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer that's specified here.

Services with tasks that use the awsvpc network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers aren't supported. Also, when you create any target groups for these services, you must choose ip as the target type, not instance. This is because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The details of the service discovery registry to associate with this service. For more information, see Service discovery.

Each service may be associated with one service registry. Multiple service registries for each service isn't supported.

" + } + }, + "desiredCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instantiations of the specified task definition to place and keep running in your service.

This is required if schedulingStrategy is REPLICA or isn't specified. If schedulingStrategy is DAEMON then this isn't required.

" + } + }, + "clientToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 36 ASCII characters in the range of 33-126 (inclusive) are allowed.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The infrastructure that you run your service on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

If you want to use Amazon ECS Managed Instances, you must use the capacityProviderStrategy request parameter and omit the launchType request parameter.

The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS Developer Guide.

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

A service can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy to use for the service.

If you want to use Amazon ECS Managed Instances, you must use the capacityProviderStrategy request parameter and omit the launchType request parameter.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "role": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition doesn't use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you don't specify a role here. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#PlacementConstraints", + "traits": { + "smithy.api#documentation": "

An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints for each task. This limit includes constraints in the task definition and those specified at runtime.

" + } + }, + "placementStrategy": { + "target": "com.amazonaws.ecs#PlacementStrategies", + "traits": { + "smithy.api#documentation": "

The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules for each service.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it isn't supported for other network modes. For more information, see Task networking in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "healthCheckGracePeriodSeconds": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then healthCheckGracePeriodSeconds is unused.

If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.

" + } + }, + "schedulingStrategy": { + "target": "com.amazonaws.ecs#SchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The scheduling strategy to use for the service. For more information, see Services.

There are two service scheduler strategies available:

  • REPLICA-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. This scheduler strategy is required if the service uses the CODE_DEPLOY or EXTERNAL deployment controller types.

  • DAEMON-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that don't meet the placement constraints. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies.

    Tasks using the Fargate launch type or the CODE_DEPLOY or EXTERNAL deployment controller types don't support the DAEMON scheduling strategy.

" + } + }, + "deploymentController": { + "target": "com.amazonaws.ecs#DeploymentController", + "traits": { + "smithy.api#documentation": "

The deployment controller to use for the service. If no deployment controller is specified, the default value of ECS is used.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.

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.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see Tagging your Amazon ECS resources in the Amazon Elastic Container Service Developer Guide.

When you use Amazon ECS managed tags, you must set the propagateTags request parameter.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

You must set this to a value other than NONE when you use Cost Explorer. For more information, see Amazon ECS usage reports in the Amazon Elastic Container Service Developer Guide.

The default is NONE.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If true, this enables execute command functionality on all containers in the service tasks.

" + } + }, + "serviceConnectConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.

" + } + }, + "vpcLatticeConfigurations": { + "target": "com.amazonaws.ecs#VpcLatticeConfigurations", + "traits": { + "smithy.api#documentation": "

The VPC Lattice configuration for the service being created.

" + } + }, + "gatewayConnectors": { + "target": "com.amazonaws.ecs#GatewayConnectorList", + "traits": { + "smithy.api#documentation": "

The gateway connectors that attach the service to a gateway ingress path. You can specify at most one gateway connector.

" + } + }, + "monitoring": { + "target": "com.amazonaws.ecs#MonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

The optional monitoring configuration for the service, which defines the resolution for the service-level CPUUtilization and MemoryUtilization Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of 60 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#Service", + "traits": { + "smithy.api#documentation": "

The full description of your service following the create call.

A service will return either a capacityProviderStrategy or launchType parameter, but not both, depending where one was specified when it was created.

If a service is using the ECS deployment controller, the deploymentController and taskSets parameters will not be returned.

if the service uses the CODE_DEPLOY deployment controller, the deploymentController, taskSets and deployments parameters will be returned, however the deployments parameter will be an empty list.

The response includes a lifecycleHookDetails field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (DescribeServiceDeployments).

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreateTaskSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#CreateTaskSetRequest" + }, + "output": { + "target": "com.amazonaws.ecs#CreateTaskSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:capacity-provider", + "ecs:task-definition", + "aws:RequestTag/${TagKey}", + "ecs:cluster", + "aws:TagKeys", + "ecs:service" + ], + "aws.iam#iamAction": { + "createsResources": [ + "task-set" + ], + "documentation": "Grants permission to create a new Amazon ECS task set", + "relativeDocumentation": "API_CreateTaskSet.html", + "resources": { + "required": { + "task-set": {} + } + } + }, + "smithy.api#documentation": "

Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

For information about the maximum number of task sets and other quotas, see Amazon ECS service quotas in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To create a task set", + "documentation": "This example creates a task set in a service that uses the EXTERNAL deployment controller.", + "input": { + "service": "MyService", + "cluster": "MyCluster", + "taskDefinition": "MyTaskDefinition:2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ] + } + } + }, + "output": { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/MyTaskDefinition:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557128360.711, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557128360.711 + } + } + } + ] + } + }, + "com.amazonaws.ecs#CreateTaskSetRequest": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service to create the task set in.

", + "smithy.api#required": {} + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.

", + "smithy.api#required": {} + } + }, + "externalId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map attribute set to the provided value.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition for the tasks in the task set to use. If a revision isn't specified, the latest ACTIVE revision is used.

", + "smithy.api#required": {} + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

An object representing the network configuration for a task set.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The details of the service discovery registries to assign to this task set. For more information, see Service discovery.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type that new tasks in the task set uses. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy to use for the task set.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProviderProviderAPI operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version that the tasks in the task set uses. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used.

" + } + }, + "scale": { + "target": "com.amazonaws.ecs#Scale", + "traits": { + "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task set.

" + } + }, + "clientToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 36 ASCII characters in the range of 33-126 (inclusive) are allowed.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both. When a service is deleted, the tags are deleted.

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.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#CreateTaskSetResponse": { + "type": "structure", + "members": { + "taskSet": { + "target": "com.amazonaws.ecs#TaskSet", + "traits": { + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. A task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#CreatedAt": { + "type": "structure", + "members": { + "before": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

Include service deployments in the result that were created before this time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "after": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

Include service deployments in the result that were created after this time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The optional filter to narrow the ListServiceDeployment results.

If you do not specify a value, service deployments that were created before the current time are included in the result.

" + } + }, + "com.amazonaws.ecs#DaemonAlarmConfiguration": { + "type": "structure", + "members": { + "alarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The CloudWatch alarm names to monitor during a daemon deployment.

" + } + }, + "enable": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use the CloudWatch alarm option in the daemon deployment process. The default value is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudWatch alarm configuration for a daemon. When enabled, CloudWatch alarms determine whether a daemon deployment has failed.

" + } + }, + "com.amazonaws.ecs#DaemonCapacityProvider": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the capacity provider.

" + } + }, + "runningCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of daemon tasks running on this capacity provider.

" + } + }, + "withoutDaemonCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of instances on this capacity provider that are running without the daemon task. This applies to daemons that aren't critical, where the instance remains available for your other tasks even if the daemon task can't start or stops. These instances aren't included in runningCount.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a capacity provider associated with a daemon revision.

" + } + }, + "com.amazonaws.ecs#DaemonCapacityProviderList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonCapacityProvider" + } + }, + "com.amazonaws.ecs#DaemonCircuitBreaker": { + "type": "structure", + "members": { + "failureCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of times the circuit breaker detected a daemon deployment failure.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

The circuit breaker status. Amazon ECS is not using the circuit breaker for daemon deployment failures when the status is DISABLED.

" + } + }, + "threshold": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The threshold which determines that the daemon deployment failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the circuit breaker used to determine when a daemon deployment has failed.

" + } + }, + "com.amazonaws.ecs#DaemonContainerDefinition": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

" + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The image used to start the container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest .

", + "smithy.api#required": {} + } + }, + "memory": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The amount (in MiB) of memory to present to the container. If the container attempts to exceed the memory specified here, the container is killed.

" + } + }, + "memoryReservation": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The soft limit (in MiB) of memory to reserve for the container.

" + } + }, + "repositoryCredentials": { + "target": "com.amazonaws.ecs#RepositoryCredentials", + "traits": { + "smithy.api#documentation": "

The private repository authentication credentials to use.

" + } + }, + "healthCheck": { + "target": "com.amazonaws.ecs#HealthCheck", + "traits": { + "smithy.api#documentation": "

The container health check command and associated configuration parameters for the container.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of cpu units reserved for the container.

" + } + }, + "essential": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped.

" + } + }, + "entryPoint": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The entry point that's passed to the container.

" + } + }, + "command": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The command that's passed to the container.

" + } + }, + "workingDirectory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The working directory to run commands inside the container in.

" + } + }, + "environmentFiles": { + "target": "com.amazonaws.ecs#EnvironmentFiles", + "traits": { + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container.

" + } + }, + "environment": { + "target": "com.amazonaws.ecs#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to pass to a container.

" + } + }, + "secrets": { + "target": "com.amazonaws.ecs#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the container.

" + } + }, + "readonlyRootFilesystem": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given read-only access to its root file system.

" + } + }, + "mountPoints": { + "target": "com.amazonaws.ecs#MountPointList", + "traits": { + "smithy.api#documentation": "

The mount points for data volumes in your container.

" + } + }, + "logConfiguration": { + "target": "com.amazonaws.ecs#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration specification for the container.

" + } + }, + "firelensConfiguration": { + "target": "com.amazonaws.ecs#FirelensConfiguration", + "traits": { + "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a log router for container logs.

" + } + }, + "privileged": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).

" + } + }, + "user": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The user to use inside the container.

" + } + }, + "ulimits": { + "target": "com.amazonaws.ecs#UlimitList", + "traits": { + "smithy.api#documentation": "

A list of ulimits to set in the container.

" + } + }, + "linuxParameters": { + "target": "com.amazonaws.ecs#DaemonLinuxParameters", + "traits": { + "smithy.api#documentation": "

Linux-specific modifications that are applied to the container configuration, such as Linux kernel capabilities.

" + } + }, + "dependsOn": { + "target": "com.amazonaws.ecs#ContainerDependencies", + "traits": { + "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain multiple dependencies on other containers in a task definition.

" + } + }, + "startTimeout": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a container.

" + } + }, + "stopTimeout": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.

" + } + }, + "systemControls": { + "target": "com.amazonaws.ecs#SystemControls", + "traits": { + "smithy.api#documentation": "

A list of namespaced kernel parameters to set in the container.

" + } + }, + "interactive": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, you can deploy containerized applications that require stdin or a tty to be allocated.

" + } + }, + "pseudoTerminal": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

When this parameter is true, a TTY is allocated.

" + } + }, + "restartPolicy": { + "target": "com.amazonaws.ecs#ContainerRestartPolicy", + "traits": { + "smithy.api#documentation": "

The restart policy for the container. When you set up a restart policy, Amazon ECS can restart the container without needing to replace the task.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container definition for a daemon task. Daemon container definitions describe the containers that run as part of a daemon task on container instances managed by capacity providers.

" + } + }, + "com.amazonaws.ecs#DaemonContainerDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonContainerDefinition" + } + }, + "com.amazonaws.ecs#DaemonContainerImage": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

" + } + }, + "imageDigest": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image digest.

" + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details about the container image a daemon revision uses.

" + } + }, + "com.amazonaws.ecs#DaemonContainerImages": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonContainerImage" + } + }, + "com.amazonaws.ecs#DaemonDeployment": { + "type": "structure", + "members": { + "daemonDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon deployment.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that hosts the daemon.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonDeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon deployment.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the daemon deployment is in the current status.

" + } + }, + "targetDaemonRevision": { + "target": "com.amazonaws.ecs#DaemonDeploymentRevisionDetail", + "traits": { + "smithy.api#documentation": "

The daemon revision being deployed.

" + } + }, + "sourceDaemonRevisions": { + "target": "com.amazonaws.ecs#DaemonDeploymentRevisionDetailList", + "traits": { + "smithy.api#documentation": "

The currently deployed daemon revisions that are being replaced.

" + } + }, + "circuitBreaker": { + "target": "com.amazonaws.ecs#DaemonCircuitBreaker", + "traits": { + "smithy.api#documentation": "

The circuit breaker configuration that determines when a daemon deployment has failed.

" + } + }, + "alarms": { + "target": "com.amazonaws.ecs#DaemonDeploymentAlarms", + "traits": { + "smithy.api#documentation": "

The CloudWatch alarms that determine when a daemon deployment fails.

" + } + }, + "rollback": { + "target": "com.amazonaws.ecs#DaemonRollback", + "traits": { + "smithy.api#documentation": "

The rollback options for the daemon deployment.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DaemonDeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

The deployment configuration used for this daemon deployment.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "stoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment stopped. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment finished. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a daemon deployment. A daemon deployment orchestrates the progressive rollout of daemon task updates across container instances.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentAlarms": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#DaemonDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

The status of the alarms check. Amazon ECS is not using alarms for daemon deployment failures when the status is DISABLED.

" + } + }, + "alarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch alarms that determine when a daemon deployment failed.

" + } + }, + "triggeredAlarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

One or more CloudWatch alarm names that have been triggered during the daemon deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudWatch alarms used to determine a daemon deployment failed.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentCapacityProvider": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the capacity provider.

" + } + }, + "runningInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instances running daemon tasks on this capacity provider.

" + } + }, + "withoutDaemonInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instances on this capacity provider that are running without the daemon task. This applies to daemons that aren't critical, where the instance remains available for your other tasks even if the daemon task can't start or stops. These instances aren't included in runningInstanceCount.

" + } + }, + "drainingInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instances being drained on this capacity provider during the deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a capacity provider during a daemon deployment.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentCapacityProviderList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonDeploymentCapacityProvider" + } + }, + "com.amazonaws.ecs#DaemonDeploymentConfiguration": { + "type": "structure", + "members": { + "drainPercent": { + "target": "com.amazonaws.ecs#DaemonDrainPercent", + "traits": { + "smithy.api#documentation": "

The percentage of container instances to drain simultaneously during a daemon deployment. Valid values are between 0.0 and 100.0.

" + } + }, + "alarms": { + "target": "com.amazonaws.ecs#DaemonAlarmConfiguration", + "traits": { + "smithy.api#documentation": "

The CloudWatch alarm configuration for the daemon deployment. When alarms are triggered during a deployment, the deployment can be automatically rolled back.

" + } + }, + "bakeTimeInMinutes": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The amount of time (in minutes) to wait after a successful deployment step before proceeding. This allows time to monitor for issues before continuing. The default value is 0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how a daemon rolls out updates across container instances.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonDeployment" + } + }, + "com.amazonaws.ecs#DaemonDeploymentResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonDeploymentId": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonName": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeDaemonDeployments" + } + ], + "traits": { + "aws.api#arn": { + "template": "daemon-deployment/{ClusterName}/{DaemonName}/{DaemonDeploymentId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:cluster", + "ecs:daemon", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "daemon-deployment", + "relativeDocumentation": "daemon-deployment.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a deployment that moves a daemon from one daemon revision to another" + } + }, + "com.amazonaws.ecs#DaemonDeploymentRevisionDetail": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon revision.

" + } + }, + "capacityProviders": { + "target": "com.amazonaws.ecs#DaemonDeploymentCapacityProviderList", + "traits": { + "smithy.api#documentation": "

The capacity providers associated with this daemon revision during the deployment.

" + } + }, + "totalRunningInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The total number of instances running daemon tasks for this revision.

" + } + }, + "totalWithoutDaemonInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The total number of instances running without the daemon task for this revision, across all capacity providers. These instances aren't included in totalRunningInstanceCount.

" + } + }, + "totalDrainingInstanceCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The total number of instances being drained for this revision during the deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a daemon revision during a deployment, including running and draining instance counts per capacity provider.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentRevisionDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonDeploymentRevisionDetail" + } + }, + "com.amazonaws.ecs#DaemonDeploymentRollbackMonitorsStatus": { + "type": "enum", + "members": { + "TRIGGERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRIGGERED" + } + }, + "MONITORING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING" + } + }, + "MONITORING_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING_COMPLETE" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#DaemonDeploymentStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESSFUL" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + }, + "STOP_REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOP_REQUESTED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_SUCCESSFUL" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + } + } + }, + "com.amazonaws.ecs#DaemonDeploymentStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonDeploymentStatus" + } + }, + "com.amazonaws.ecs#DaemonDeploymentSummary": { + "type": "structure", + "members": { + "daemonDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon deployment.

" + } + }, + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that hosts the daemon.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonDeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon deployment.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the daemon deployment is in the current status.

" + } + }, + "targetDaemonRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the daemon revision being deployed.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment was created.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment started.

" + } + }, + "stoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment stopped.

" + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the daemon deployment finished.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a daemon deployment.

" + } + }, + "com.amazonaws.ecs#DaemonDeploymentSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonDeploymentSummary" + } + }, + "com.amazonaws.ecs#DaemonDetail": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that the daemon is running in.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon.

" + } + }, + "currentRevisions": { + "target": "com.amazonaws.ecs#DaemonRevisionDetailList", + "traits": { + "smithy.api#documentation": "

The current daemon revision details, including the running task counts per capacity provider.

" + } + }, + "deploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the most recent daemon deployment.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The detailed information about a daemon.

" + } + }, + "com.amazonaws.ecs#DaemonDrainPercent": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.0, + "max": 100.0 + } + } + }, + "com.amazonaws.ecs#DaemonIpcMode": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The daemon gets its own isolated IPC namespace.

", + "smithy.api#enumValue": "none" + } + }, + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The daemon shares the IPC namespace with co-located tasks on the same container instance.

", + "smithy.api#enumValue": "shared" + } + } + } + }, + "com.amazonaws.ecs#DaemonLinuxParameters": { + "type": "structure", + "members": { + "capabilities": { + "target": "com.amazonaws.ecs#KernelCapabilities", + "traits": { + "smithy.api#documentation": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.

" + } + }, + "devices": { + "target": "com.amazonaws.ecs#DevicesList", + "traits": { + "smithy.api#documentation": "

Any host devices to expose to the container.

" + } + }, + "initProcessEnabled": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Run an init process inside the container that forwards signals and reaps processes.

" + } + }, + "tmpfs": { + "target": "com.amazonaws.ecs#TmpfsList", + "traits": { + "smithy.api#documentation": "

The container path, mount options, and size (in MiB) of the tmpfs mount.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Linux-specific options that are applied to the daemon container, such as Linux kernel capabilities.

" + } + }, + "com.amazonaws.ecs#DaemonNotActiveException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified daemon isn't active. You can't update a daemon that's inactive. If you have previously deleted a daemon, you can re-create it with CreateDaemon.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#DaemonNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified daemon wasn't found. You can view your available daemons with ListDaemons. Amazon ECS daemons are cluster specific and Region specific.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#DaemonPidMode": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The daemon gets its own isolated PID namespace.

", + "smithy.api#enumValue": "none" + } + }, + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The daemon shares the PID namespace with co-located tasks on the same container instance.

", + "smithy.api#enumValue": "shared" + } + } + } + }, + "com.amazonaws.ecs#DaemonPropagateTags": { + "type": "enum", + "members": { + "DAEMON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAEMON" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.ecs#DaemonResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonName": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#CreateDaemon" + }, + { + "target": "com.amazonaws.ecs#DeleteDaemon" + }, + { + "target": "com.amazonaws.ecs#DescribeDaemon" + }, + { + "target": "com.amazonaws.ecs#ListDaemonDeployments" + }, + { + "target": "com.amazonaws.ecs#ListDaemons" + }, + { + "target": "com.amazonaws.ecs#UpdateDaemon" + } + ], + "traits": { + "aws.api#arn": { + "template": "daemon/{ClusterName}/{DaemonName}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "daemon", + "relativeDocumentation": "ecs_daemons.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents an independent process that runs alongside applications to perform devops related functions in an ECS cluster" + } + }, + "com.amazonaws.ecs#DaemonRevision": { + "type": "structure", + "members": { + "daemonRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon revision.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that hosts the daemon.

" + } + }, + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon for this revision.

" + } + }, + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon task definition used by this revision.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon revision was created.

" + } + }, + "containerImages": { + "target": "com.amazonaws.ecs#DaemonContainerImages", + "traits": { + "smithy.api#documentation": "

The container images used by the daemon revision.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#DaemonPropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether tags are propagated from the daemon to the daemon tasks.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon ECS managed tags are turned on for the daemon tasks.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the execute command functionality is turned on for the daemon tasks.

" + } + }, + "critical": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If the critical parameter of this daemon revision is true, and the daemon task fails, stops, or becomes unhealthy, Amazon ECS drains the container instance and stops the other tasks running on it. If the parameter is false, the daemon task failure doesn't affect the other tasks on the instance, and doesn't block instance registration. The default value is true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a daemon revision. A daemon revision is a snapshot of the daemon's configuration at the time a deployment was initiated.

" + } + }, + "com.amazonaws.ecs#DaemonRevisionDetail": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon revision.

" + } + }, + "capacityProviders": { + "target": "com.amazonaws.ecs#DaemonCapacityProviderList", + "traits": { + "smithy.api#documentation": "

The capacity providers associated with this daemon revision.

" + } + }, + "totalRunningCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total number of daemon tasks running for this revision.

" + } + }, + "totalWithoutDaemonCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total number of instances running without the daemon task for this revision, across all capacity providers. These instances aren't included in totalRunningCount.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a daemon revision, including the running task counts per capacity provider.

" + } + }, + "com.amazonaws.ecs#DaemonRevisionDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonRevisionDetail" + } + }, + "com.amazonaws.ecs#DaemonRevisionResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonRevisionId": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonName": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeDaemonRevisions" + } + ], + "traits": { + "aws.api#arn": { + "template": "daemon-revision/{ClusterName}/{DaemonName}/{DaemonRevisionId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:cluster", + "ecs:daemon", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "daemon-revision", + "relativeDocumentation": "daemon-revision.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a unique configuration that makes up a daemon at a point in time" + } + }, + "com.amazonaws.ecs#DaemonRevisions": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonRevision" + } + }, + "com.amazonaws.ecs#DaemonRollback": { + "type": "structure", + "members": { + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason the rollback happened. For example, the circuit breaker initiated the rollback operation.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "rollbackTargetDaemonRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the daemon revision deployed as part of the rollback.

" + } + }, + "rollbackCapacityProviders": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The capacity providers involved in the rollback.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a daemon deployment rollback.

" + } + }, + "com.amazonaws.ecs#DaemonStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + } + } + }, + "com.amazonaws.ecs#DaemonSummariesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonSummary" + } + }, + "com.amazonaws.ecs#DaemonSummary": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a daemon.

" + } + }, + "com.amazonaws.ecs#DaemonTaskDefinition": { + "type": "structure", + "members": { + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the daemon task definition.

" + } + }, + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of a family that this daemon task definition is registered to.

" + } + }, + "revision": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The revision of the daemon task in a particular family. The revision is a version number of a daemon task definition in a family. When you register a daemon task definition for the first time, the revision is 1. Each time that you register a new revision of a daemon task definition in the same family, the revision value always increases by one.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the IAM role that grants containers in the daemon task permission to call Amazon Web Services APIs on your behalf.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf.

" + } + }, + "containerDefinitions": { + "target": "com.amazonaws.ecs#DaemonContainerDefinitionList", + "traits": { + "smithy.api#documentation": "

A list of container definitions in JSON format that describe the containers that make up the daemon task.

" + } + }, + "volumes": { + "target": "com.amazonaws.ecs#DaemonVolumeList", + "traits": { + "smithy.api#documentation": "

The list of data volume definitions for the daemon task.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the daemon task.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) used by the daemon task.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon task definition. The valid values are ACTIVE, DELETE_IN_PROGRESS, and DELETED.

" + } + }, + "registeredAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon task definition was registered.

" + } + }, + "deleteRequestedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon task definition delete was requested.

" + } + }, + "registeredBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The principal that registered the daemon task definition.

" + } + }, + "pidMode": { + "target": "com.amazonaws.ecs#DaemonPidMode", + "traits": { + "smithy.api#documentation": "

The PID namespace mode for the daemon. The valid values are none and shared. The default is none.

If none is specified or no value is provided, the daemon runs with its own PID namespace, isolated from other tasks. If shared is specified, the daemon joins the host PID namespace, making it accessible to non-daemon tasks that use pidMode: \"host\" or other daemons that use pidMode: \"shared\".

" + } + }, + "ipcMode": { + "target": "com.amazonaws.ecs#DaemonIpcMode", + "traits": { + "smithy.api#documentation": "

The IPC namespace mode for the daemon. The valid values are none and shared. The default is none.

If none is specified or no value is provided, the daemon runs with its own IPC namespace, isolated from other tasks. If shared is specified, the daemon joins the host IPC namespace, making it accessible to non-daemon tasks that use ipcMode: \"host\" or other daemons that use ipcMode: \"shared\".

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a daemon task definition. A daemon task definition is a template that describes the containers that form a daemon. Daemons deploy cross-cutting software agents independently across your Amazon ECS infrastructure.

" + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionResource": { + "type": "resource", + "identifiers": { + "DaemonTaskDefinitionFamilyName": { + "target": "com.amazonaws.ecs#String" + }, + "DaemonTaskDefinitionRevisionNumber": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DeleteDaemonTaskDefinition" + }, + { + "target": "com.amazonaws.ecs#DescribeDaemonTaskDefinition" + }, + { + "target": "com.amazonaws.ecs#ListDaemonTaskDefinitions" + }, + { + "target": "com.amazonaws.ecs#RegisterDaemonTaskDefinition" + } + ], + "traits": { + "aws.api#arn": { + "template": "daemon-task-definition/{DaemonTaskDefinitionFamilyName}:{DaemonTaskDefinitionRevisionNumber}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "daemon-task-definition", + "relativeDocumentation": "daemon-task-definitions.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a collection of settings that are used to run daemon tasks in Amazon ECS" + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionRevisionFilter": { + "type": "enum", + "members": { + "LAST_REGISTERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAST_REGISTERED" + } + } + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + } + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionStatusFilter": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionSummary" + } + }, + "com.amazonaws.ecs#DaemonTaskDefinitionSummary": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon task definition.

" + } + }, + "registeredAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon task definition was registered.

" + } + }, + "registeredBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The principal that registered the daemon task definition.

" + } + }, + "deleteRequestedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon task definition delete was requested.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon task definition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a daemon task definition.

" + } + }, + "com.amazonaws.ecs#DaemonVolume": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

" + } + }, + "host": { + "target": "com.amazonaws.ecs#HostVolumeProperties", + "traits": { + "smithy.api#documentation": "

The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it's stored.

" + } + }, + "logDriverVolumeConfiguration": { + "target": "com.amazonaws.ecs#LogDriverVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

The log driver volume configuration. With a log driver volume, the containers in a daemon task can read the log files that a log driver writes for the other tasks on the container instance. To read the log files, mount the volume into a container in the daemon task with mountPoints.

Use host to bind mount a path on the container instance. Use logDriverVolumeConfiguration to read the log output of other tasks. You can't specify both for the same volume.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A data volume definition for a daemon task.

" + } + }, + "com.amazonaws.ecs#DaemonVolumeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DaemonVolume" + } + }, + "com.amazonaws.ecs#DeleteAccountSetting": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteAccountSettingRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteAccountSettingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:account-setting" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are disabled for new resources that are created", + "relativeDocumentation": "API_DeleteAccountSetting.html" + }, + "smithy.api#documentation": "

Disables an account setting for a specified user, role, or the root user for an account.

", + "smithy.api#examples": [ + { + "title": "To delete your account setting", + "documentation": "This example deletes the account setting for your user for the specified resource type.", + "input": { + "name": "serviceLongArnFormat" + }, + "output": { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + } + }, + { + "title": "To delete the account settings for a specific IAM user or IAM role", + "documentation": "This example deletes the account setting for a specific IAM user or IAM role for the specified resource type. Only the root user can view or modify the account settings for another user.", + "input": { + "name": "containerInstanceLongArnFormat", + "principalArn": "arn:aws:iam:::user/principalName" + }, + "output": { + "setting": { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + } + } + ] + } + }, + "com.amazonaws.ecs#DeleteAccountSettingRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#SettingName", + "traits": { + "smithy.api#documentation": "

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.

", + "smithy.api#required": {} + } + }, + "principalArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal. It can be a user, role, or the root user. If you specify the root user, it disables the account setting for all users, roles, and the root user of the account unless a user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

In order to use this parameter, you must be the root user, or the principal.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteAccountSettingResponse": { + "type": "structure", + "members": { + "setting": { + "target": "com.amazonaws.ecs#Setting", + "traits": { + "smithy.api#documentation": "

The account setting for the specified principal ARN.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#TargetNotFoundException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to delete one or more custom attributes from an Amazon ECS resource", + "relativeDocumentation": "API_DeleteAttributes.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

Deletes one or more custom attributes from an Amazon ECS resource.

", + "smithy.api#examples": [ + { + "title": "To delete a custom attribute from an Amazon ECS instance", + "documentation": "This example deletes an attribute named stack from a container instance. ", + "input": { + "attributes": [ + { + "name": "stack", + "targetId": "aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34" + } + ] + }, + "output": { + "attributes": [ + { + "name": "stack", + "targetId": "aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } + } + ] + } + }, + "com.amazonaws.ecs#DeleteAttributesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The attributes to delete from your resource. You can specify up to 10 attributes for each request. For custom attributes, specify the attribute name and target ID, but don't specify the value. If you specify the target ID using the short form, you must also specify the target type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteAttributesResponse": { + "type": "structure", + "members": { + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

A list of attribute objects that were successfully deleted from your resource.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteCapacityProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteCapacityProviderRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteCapacityProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified capacity provider", + "relativeDocumentation": "API_DeleteCapacityProvider.html", + "resources": { + "required": { + "capacity-provider": {} + } + } + }, + "smithy.api#documentation": "

Deletes the specified capacity provider.

The FARGATE and FARGATE_SPOT capacity providers are reserved and can't be deleted. You can disassociate them from a cluster using either PutClusterCapacityProviders or by deleting the cluster.

Prior to a capacity provider being deleted, the capacity provider must be removed from the capacity provider strategy from all services. The UpdateService API can be used to remove a capacity provider from a service's capacity provider strategy. When updating a service, the forceNewDeployment option can be used to ensure that any tasks using the Amazon EC2 instance capacity provided by the capacity provider are transitioned to use the capacity from the remaining capacity providers. Only capacity providers that aren't associated with a cluster can be deleted. To remove a capacity provider from a cluster, you can either use PutClusterCapacityProviders or delete the cluster.

", + "smithy.api#examples": [ + { + "title": "To delete a specified capacity provider", + "documentation": "This example deletes a specified capacity provider. ", + "input": { + "capacityProvider": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider" + }, + "output": { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", + "name": "ExampleCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000 + }, + "managedTerminationProtection": "DISABLED" + }, + "updateStatus": "DELETE_IN_PROGRESS", + "tags": [] + } + } + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#DeleteCapacityProviderRequest": { + "type": "structure", + "members": { + "capacityProvider": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the capacity provider to delete.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "CapacityProviderName" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster that contains the capacity provider to delete. Managed instances capacity providers are cluster-scoped and can only be deleted from their associated cluster.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteCapacityProviderResponse": { + "type": "structure", + "members": { + "capacityProvider": { + "target": "com.amazonaws.ecs#CapacityProvider", + "traits": { + "smithy.api#documentation": "

The details of the capacity provider.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteClusterRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterContainsCapacityProviderException" + }, + { + "target": "com.amazonaws.ecs#ClusterContainsContainerInstancesException" + }, + { + "target": "com.amazonaws.ecs#ClusterContainsServicesException" + }, + { + "target": "com.amazonaws.ecs#ClusterContainsTasksException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified cluster", + "relativeDocumentation": "API_DeleteCluster.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deletes the specified cluster. The cluster transitions to the INACTIVE state. Clusters with an INACTIVE status might remain discoverable in your account for a period of time. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE clusters persisting.

You must deregister all container instances from this cluster before you may delete it. You can list the container instances in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.

", + "smithy.api#examples": [ + { + "title": "To delete an empty cluster", + "documentation": "This example deletes an empty cluster in your default region.", + "input": { + "cluster": "my_cluster" + }, + "output": { + "cluster": { + "activeServicesCount": 0, + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster", + "clusterName": "my_cluster", + "pendingTasksCount": 0, + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "status": "INACTIVE" + } + } + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#DeleteClusterRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to delete.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteClusterResponse": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#Cluster", + "traits": { + "smithy.api#documentation": "

The full description of the deleted cluster.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteDaemon": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteDaemonRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteDaemonResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#DaemonNotActiveException" + }, + { + "target": "com.amazonaws.ecs#DaemonNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a specified daemon within a cluster", + "resources": { + "required": { + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deletes the specified daemon. The daemon must be in an ACTIVE state to be deleted. Deleting a daemon stops all running daemon tasks on the associated container instances. Amazon ECS drains existing container instances and provisions new instances without the deleted daemon. Amazon ECS automatically launches replacement tasks for your Amazon ECS services.

ECS Managed Daemons is only supported for Amazon ECS Managed Instances Capacity Providers.

", + "smithy.api#examples": [ + { + "title": "To delete a daemon", + "documentation": "This example deletes the my-monitoring-daemon daemon.", + "input": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon" + }, + "output": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "status": "DELETE_IN_PROGRESS", + "createdAt": "2025-03-15T12:00:00.000Z", + "updatedAt": "2025-03-25T09:00:00.000Z", + "deploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/mN3oP4qR5sT6uV7w" + } + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#DeleteDaemonRequest": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteDaemonResponse": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

", + "smithy.api#notProperty": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon. After you call DeleteDaemon, the status changes to DELETE_IN_PROGRESS.

", + "smithy.api#notProperty": {} + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was created.

", + "smithy.api#notProperty": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was last updated.

", + "smithy.api#notProperty": {} + } + }, + "deploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon deployment that was triggered by the delete operation. This deployment drains existing daemon tasks from the container instances.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteDaemonTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteDaemonTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteDaemonTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified daemon task definition", + "resources": { + "required": { + "daemon-task-definition": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deletes the specified daemon task definition. After a daemon task definition is deleted, no new daemons can be created using this definition. Existing daemons that reference the deleted daemon task definition continue to run.

A daemon task definition must be in an ACTIVE state to be deleted.

", + "smithy.api#examples": [ + { + "title": "To delete a daemon task definition", + "documentation": "This example deletes the first revision of the monitoring-agent daemon task definition.", + "input": { + "daemonTaskDefinition": "monitoring-agent:1" + }, + "output": { + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1" + } + } + ] + } + }, + "com.amazonaws.ecs#DeleteDaemonTaskDefinitionRequest": { + "type": "structure", + "members": { + "daemonTaskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the daemon task definition to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteDaemonTaskDefinitionResponse": { + "type": "structure", + "members": { + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the deleted daemon task definition.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteExpressGatewayService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteExpressGatewayServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteExpressGatewayServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a specified Express Gateway service", + "relativeDocumentation": "API_DeleteExpressGatewayService.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deletes an Express service and removes all associated Amazon Web Services resources. This operation stops service tasks, removes the Application Load Balancer, target groups, security groups, auto-scaling policies, and other managed infrastructure components.

The service enters a DRAINING state where existing tasks complete current requests without starting new tasks. After all tasks stop, the service and infrastructure are permanently removed.

This operation cannot be reversed. Back up important data and verify the service is no longer needed before deletion.

" + } + }, + "com.amazonaws.ecs#DeleteExpressGatewayServiceRequest": { + "type": "structure", + "members": { + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Express service to delete. The ARN uniquely identifies the service within your Amazon Web Services account and region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteExpressGatewayServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#ECSExpressGatewayService", + "traits": { + "smithy.api#documentation": "

The full description of the deleted express service.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete an Amazon ECS gateway", + "relativeDocumentation": "API_DeleteGateway.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deletes a gateway. Before you can delete a gateway, deletion protection must be disabled and the gateway must not have any cluster associations that are in the ACTIVE or DISASSOCIATING state. If associations exist, the operation fails; disassociate all clusters first. DeleteGateway is a synchronous operation. After you delete a gateway, subsequent requests for it return a GatewayNotFoundException.

", + "smithy.api#examples": [ + { + "title": "To delete a gateway", + "documentation": "This example deletes the gateway named my-gateway. Deletion protection must be disabled and the gateway must not be associated with any clusters.", + "input": { + "gateway": "my-gateway" + }, + "output": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "name": "my-gateway", + "status": "DELETED" + } + } + ] + } + }, + "com.amazonaws.ecs#DeleteGatewayRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteGatewayResponse": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the deleted gateway.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the deleted gateway.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway. After a successful delete, the status is DELETED.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a specified service within a cluster", + "relativeDocumentation": "API_DeleteService.html", + "resources": { + "required": { + "service": {} + } + } + }, + "smithy.api#documentation": "

Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you can't delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService.

When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in the ListServices API operation. After all tasks have transitioned to either STOPPING or STOPPED status, the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with the DescribeServices API operation. However, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices calls on those services return a ServiceNotFoundException error.

If you attempt to create a new service with the same name as an existing service in either ACTIVE or DRAINING status, you receive an error.

", + "smithy.api#examples": [ + { + "title": "To delete a service", + "documentation": "This example deletes the my-http-service service. The service must have a desired count and running count of 0 before you can delete it.", + "input": { + "service": "my-http-service" + }, + "output": {} + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#DeleteServiceRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the service to delete.

", + "smithy.api#required": {} + } + }, + "force": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If true, allows you to delete a service even if it wasn't scaled down to zero tasks. It's only necessary to use this if the service uses the REPLICA scheduling strategy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#Service", + "traits": { + "smithy.api#documentation": "

The full description of the deleted service.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteTaskDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteTaskDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteTaskDefinitionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified task definitions by family and revision", + "relativeDocumentation": "API_DeleteTaskDefinitions.html", + "resources": { + "required": { + "task-definition": {} + } + } + }, + "smithy.api#documentation": "

Deletes one or more task definitions.

You must deregister a task definition revision before you delete it. For more information, see DeregisterTaskDefinition.

When you delete a task definition revision, it is immediately transitions from the INACTIVE to DELETE_IN_PROGRESS. Existing tasks and services that reference a DELETE_IN_PROGRESS task definition revision continue to run without disruption. Existing services that reference a DELETE_IN_PROGRESS task definition revision can still scale up or down by modifying the service's desired count.

You can't use a DELETE_IN_PROGRESS task definition revision to run new tasks or create new services. You also can't update an existing service to reference a DELETE_IN_PROGRESS task definition revision.

A task definition revision will stay in DELETE_IN_PROGRESS status until all the associated tasks and services have been terminated.

When you delete all INACTIVE task definition revisions, the task definition name is not displayed in the console and not returned in the API. If a task definition revisions are in the DELETE_IN_PROGRESS state, the task definition name is displayed in the console and returned in the API. The task definition name is retained by Amazon ECS and the revision is incremented the next time you create a task definition with that name.

", + "smithy.api#examples": [ + { + "title": "To delete a task definition that has been deregistered", + "documentation": "This example deletes a specified deregistered task definition. ", + "input": { + "taskDefinitions": [ + "Example-task-definition:1" + ] + }, + "output": { + "failures": [], + "taskDefinitions": [ + { + "containerDefinitions": [ + { + "command": [ + "apt-get update; apt-get install stress; while true; do stress --cpu $(( RANDOM % 4 )) -t $(( RANDOM % 10 )); done" + ], + "cpu": 50, + "entryPoint": [ + "bash", + "-c" + ], + "environment": [], + "essential": true, + "image": "public.ecr.aws/docker/library/ubuntu:latest", + "memory": 100, + "mountPoints": [], + "name": "wave", + "portMappings": [], + "volumesFrom": [] + } + ], + "family": "cpu-wave", + "revision": 1, + "status": "DELETE_IN_PROGRESS", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/Example-task-definition:1", + "volumes": [] + } + ] + } + } + ] + } + }, + "com.amazonaws.ecs#DeleteTaskDefinitionsRequest": { + "type": "structure", + "members": { + "taskDefinitions": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to delete. You must specify a revision.

You can specify up to 10 task definitions as a comma separated list.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteTaskDefinitionsResponse": { + "type": "structure", + "members": { + "taskDefinitions": { + "target": "com.amazonaws.ecs#TaskDefinitionList", + "traits": { + "smithy.api#documentation": "

The list of deleted task definitions.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeleteTaskSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeleteTaskSetRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeleteTaskSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#TaskSetNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified task set", + "relativeDocumentation": "API_DeleteTaskSet.html", + "resources": { + "required": { + "task-set": {} + } + } + }, + "smithy.api#documentation": "

Deletes a specified task set within a service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a task set within a service that uses the EXTERNAL deployment controller type", + "documentation": "This example deletes a task set and uses the force flag to force deletion if it hasn't scaled to zero.", + "input": { + "cluster": "MyCluster", + "service": "MyService", + "taskSet": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "force": true + }, + "output": { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "DRAINING", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557130260.276, + "updatedAt": 1557130290.707, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12345678" + ], + "securityGroups": [ + "sg-12345678" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557130290.707 + } + } + } + ], + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.ecs#DeleteTaskSetRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set found in to delete.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service that hosts the task set to delete.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ServiceName" + } + }, + "taskSet": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task set ID or full Amazon Resource Name (ARN) of the task set to delete.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "TaskSetId" + } + }, + "force": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If true, you can delete a task set even if it hasn't been scaled down to zero.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeleteTaskSetResponse": { + "type": "structure", + "members": { + "taskSet": { + "target": "com.amazonaws.ecs#TaskSet", + "traits": { + "smithy.api#documentation": "

Details about the task set.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#Deployment": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the deployment.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the deployment. The following describes each state.

PRIMARY

The most recent deployment of a service.

ACTIVE

A service deployment that still has running tasks, but are in the process of being replaced with a new PRIMARY deployment.

INACTIVE

A deployment that has been completely replaced.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The most recent task definition that was specified for the tasks in the service to use.

" + } + }, + "desiredCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The most recent desired count of tasks that was specified for the service to deploy or maintain.

" + } + }, + "pendingCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the deployment that are in the PENDING status.

" + } + }, + "runningCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the deployment that are in the RUNNING status.

" + } + }, + "failedTasks": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of consecutively failed tasks in the deployment. A task is considered a failure if the service scheduler can't launch the task, the task doesn't transition to a RUNNING state, or if it fails any of its defined health checks and is stopped.

Once a service deployment has one or more successfully running tasks, the failed task count resets to zero and stops being evaluated.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the service deployment was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the service deployment was last updated.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy that the deployment is using.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type the tasks in the service are using. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only specified for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The operating system that your tasks in the service, or tasks are running on. A platform family is specified only for tasks using the Fargate launch type.

All tasks that run as part of this service must use the same platformFamily value as the service, for example, LINUX..

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

" + } + }, + "rolloutState": { + "target": "com.amazonaws.ecs#DeploymentRolloutState", + "traits": { + "smithy.api#documentation": "

The rolloutState of a service is only returned for services that use the rolling update (ECS) deployment type that aren't behind a Classic Load Balancer.

The rollout state of the deployment. When a service deployment is started, it begins in an IN_PROGRESS state. When the service reaches a steady state, the deployment transitions to a COMPLETED state. If the service fails to reach a steady state and circuit breaker is turned on, the deployment transitions to a FAILED state. A deployment in FAILED state doesn't launch any new tasks. For more information, see DeploymentCircuitBreaker.

" + } + }, + "rolloutStateReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A description of the rollout state of a deployment.

" + } + }, + "serviceConnectConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectConfiguration", + "traits": { + "smithy.api#documentation": "

The details of the Service Connect configuration that's used by this deployment. Compare the configuration between multiple deployments when troubleshooting issues with new deployments.

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "serviceConnectResources": { + "target": "com.amazonaws.ecs#ServiceConnectServiceResourceList", + "traits": { + "smithy.api#documentation": "

The list of Service Connect resources that are associated with this deployment. Each list entry maps a discovery name to a Cloud Map service name.

" + } + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure different settings like the size, throughput, volumeType, and ecryption in ServiceManagedEBSVolumeConfiguration. The name of the volume must match the name from the task definition.

" + } + }, + "fargateEphemeralStorage": { + "target": "com.amazonaws.ecs#DeploymentEphemeralStorage", + "traits": { + "smithy.api#documentation": "

The Fargate ephemeral storage settings for the deployment.

" + } + }, + "vpcLatticeConfigurations": { + "target": "com.amazonaws.ecs#VpcLatticeConfigurations", + "traits": { + "smithy.api#documentation": "

The VPC Lattice configuration for the service deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of an Amazon ECS service deployment. This is used only when a service uses the ECS deployment controller type.

" + } + }, + "com.amazonaws.ecs#DeploymentAlarms": { + "type": "structure", + "members": { + "alarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

One or more CloudWatch alarm names. Use a \",\" to separate the alarms.

", + "smithy.api#required": {} + } + }, + "rollback": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.

", + "smithy.api#required": {} + } + }, + "enable": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use the CloudWatch alarm option in the service deployment process.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

One of the methods which provide a way for you to quickly identify when a deployment has failed, and then to optionally roll back the failure to the last working deployment.

When the alarms are generated, Amazon ECS sets the service deployment to failed. Set the rollback parameter to have Amazon ECS to roll back your service to the last completed deployment after a failure.

You can only use the DeploymentAlarms method to detect failures when the DeploymentController is set to ECS.

For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide .

" + } + }, + "com.amazonaws.ecs#DeploymentCircuitBreaker": { + "type": "structure", + "members": { + "enable": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use the deployment circuit breaker logic for the service.

", + "smithy.api#required": {} + } + }, + "rollback": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is on, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.

", + "smithy.api#required": {} + } + }, + "resetOnHealthyTask": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the deployment circuit breaker resets its failure count when a task reaches a healthy state. When set to true, a task that reaches a healthy state resets the failure count to 0. When set to false, Amazon ECS does not reset the failure count. The default is true.

" + } + }, + "thresholdConfiguration": { + "target": "com.amazonaws.ecs#ThresholdConfiguration", + "traits": { + "smithy.api#documentation": "

The threshold configuration that controls when the deployment circuit breaker triggers. The type and value together determine how many task failures are tolerated before the circuit breaker activates.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If it is turned on, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide.

For more information about API failure reasons, see API failure reasons in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#DeploymentConfiguration": { + "type": "structure", + "members": { + "deploymentCircuitBreaker": { + "target": "com.amazonaws.ecs#DeploymentCircuitBreaker", + "traits": { + "smithy.api#documentation": "

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide

" + } + }, + "maximumPercent": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

If a service is using the rolling update (ECS) deployment type, the maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the REPLICA service scheduler and has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default maximumPercent value for a service using the REPLICA service scheduler is 200%.

The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types, and tasks in the service use the EC2 launch type, the maximum percent value is set to the default value. The maximum percent value is used to define the upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom maximumPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If the service uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.

" + } + }, + "minimumHealthyPercent": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

If any tasks are unhealthy and if maximumPercent doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the minimumHealthyPercent as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.

For services that do not use a load balancer, the following should be noted:

  • A service is considered healthy if all essential containers within the tasks in the service pass their health checks.

  • If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a RUNNING state before the task is counted towards the minimum healthy percent total.

  • If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.

For services that do use a load balancer, the following should be noted:

  • If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

  • If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

The default value for a replica service for minimumHealthyPercent is 100%. The default minimumHealthyPercent value for a service using the DAEMON service schedule is 0% for the CLI, the Amazon Web Services SDKs, and the APIs and 50% for the Amazon Web Services Management Console.

The minimum number of healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value. The minimum healthy percent value is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom minimumHealthyPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

" + } + }, + "alarms": { + "target": "com.amazonaws.ecs#DeploymentAlarms", + "traits": { + "smithy.api#documentation": "

Information about the CloudWatch alarms.

" + } + }, + "strategy": { + "target": "com.amazonaws.ecs#DeploymentStrategy", + "traits": { + "smithy.api#documentation": "

The deployment strategy for the service. Choose from these valid values:

  • ROLLING - When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.

  • BLUE_GREEN - A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.

  • LINEAR - A linear deployment strategy (LINEAR) gradually shifts traffic from the current production environment to a new environment in equal percentages over time. With Amazon ECS linear deployments, you can control the pace of traffic shifting and validate new service revisions with increasing amounts of production traffic.

  • CANARY - A canary deployment strategy (CANARY) shifts a small percentage of traffic to the new service revision first, then shifts the remaining traffic all at once after a specified time period. This allows you to test the new version with a subset of users before full deployment.

" + } + }, + "bakeTimeInMinutes": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The time period when both blue and green service revisions are running simultaneously after the production traffic has shifted.

You must provide this parameter when you use the BLUE_GREEN deployment strategy.

" + } + }, + "lifecycleHooks": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookList", + "traits": { + "smithy.api#documentation": "

An array of deployment lifecycle hook objects to run custom logic or pause the deployment at specific stages of the deployment lifecycle.

" + } + }, + "linearConfiguration": { + "target": "com.amazonaws.ecs#LinearConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration for linear deployment strategy. Only valid when the deployment strategy is LINEAR. This configuration enables progressive traffic shifting in equal percentage increments with configurable bake times between each step.

" + } + }, + "canaryConfiguration": { + "target": "com.amazonaws.ecs#CanaryConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration for canary deployment strategy. Only valid when the deployment strategy is CANARY. This configuration enables shifting a fixed percentage of traffic for testing, followed by shifting the remaining traffic after a bake period.

" + } + }, + "earlySuccessCriteria": { + "target": "com.amazonaws.ecs#DeploymentEarlySuccessCriteria", + "traits": { + "smithy.api#documentation": "

The early success criteria configuration for a rolling deployment. With early success criteria, you can configure an Amazon ECS deployment to complete faster. Amazon ECS declares a deployment successful once a target percentage of tasks are healthy, instead of waiting for the service to fully stabilize.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.

" + } + }, + "com.amazonaws.ecs#DeploymentController": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#DeploymentControllerType", + "traits": { + "smithy.api#documentation": "

The deployment controller type to use.

The deployment controller is the mechanism that determines how tasks are deployed for your service. The valid options are:

  • ECS

    When you create a service which uses the ECS deployment controller, you can choose between the following deployment strategies:

    • ROLLING: When you create a service which uses the rolling update (ROLLING) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.

      Rolling update deployments are best suited for the following scenarios:

      • Gradual service updates: You need to update your service incrementally without taking the entire service offline at once.

      • Limited resource requirements: You want to avoid the additional resource costs of running two complete environments simultaneously (as required by blue/green deployments).

      • Acceptable deployment time: Your application can tolerate a longer deployment process, as rolling updates replace tasks one by one.

      • No need for instant roll back: Your service can tolerate a rollback process that takes minutes rather than seconds.

      • Simple deployment process: You prefer a straightforward deployment approach without the complexity of managing multiple environments, target groups, and listeners.

      • No load balancer requirement: Your service doesn't use or require a load balancer, Application Load Balancer, Network Load Balancer, or Service Connect (which are required for blue/green deployments).

      • Stateful applications: Your application maintains state that makes it difficult to run two parallel environments.

      • Cost sensitivity: You want to minimize deployment costs by not running duplicate environments during deployment.

      Rolling updates are the default deployment strategy for services and provide a balance between deployment safety and resource efficiency for many common application scenarios.

    • BLUE_GREEN: A blue/green deployment strategy (BLUE_GREEN) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.

      Amazon ECS blue/green deployments are best suited for the following scenarios:

      • Service validation: When you need to validate new service revisions before directing production traffic to them

      • Zero downtime: When your service requires zero-downtime deployments

      • Instant roll back: When you need the ability to quickly roll back if issues are detected

      • Load balancer requirement: When your service uses Application Load Balancer, Network Load Balancer, or Service Connect

  • External

    Use a third-party deployment controller.

  • Blue/green deployment (powered by CodeDeploy)

    CodeDeploy installs an updated version of the application as a new replacement task set and reroutes production traffic from the original application task set to the replacement task set. The original task set is terminated after a successful deployment. Use this deployment controller to verify a new deployment of a service before sending production traffic to it.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The deployment controller to use for the service.

" + } + }, + "com.amazonaws.ecs#DeploymentControllerType": { + "type": "enum", + "members": { + "ECS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECS" + } + }, + "CODE_DEPLOY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODE_DEPLOY" + } + }, + "EXTERNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL" + } + } + } + }, + "com.amazonaws.ecs#DeploymentEarlySuccessCriteria": { + "type": "structure", + "members": { + "enable": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to use the early success criteria for the service deployment. When set to false, the deployment uses the default behavior, where Amazon ECS considers the deployment successful when the target service revision fully stabilizes and the previous tasks are removed. The default value is false.

When set to true, Amazon ECS monitors the deployment to meet early success criteria. You must also specify healthyPercent and sourceServiceRevisionCleanup.

", + "smithy.api#required": {} + } + }, + "healthyPercent": { + "target": "com.amazonaws.ecs#HealthyPercentInteger", + "traits": { + "smithy.api#documentation": "

The percentage of healthy tasks that the target service revision must reach before Amazon ECS considers the deployment successful. This percentage is relative to the service's desiredCount and must be an integer between 0 and 100. This value must be greater than or equal to the minimumHealthyPercent value.

After this percentage of tasks is healthy and the bake time elapses, Amazon ECS completes the deployment. Amazon ECS continues to scale the target service revision to 100 percent in the background.

" + } + }, + "sourceServiceRevisionCleanup": { + "target": "com.amazonaws.ecs#ServiceRevisionCleanup", + "traits": { + "smithy.api#documentation": "

The time when Amazon ECS removes the source revisions' tasks relative to deployment completion. The valid values are:

  • BLOCKING—Amazon ECS removes the previous tasks before it marks the deployment as successful.

  • DEFERRED—Amazon ECS marks the deployment successful, and then removes the previous tasks in the background.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

You can use early success criteria only with rolling deployment strategy.

The configuration that determines when a rolling update deployment is considered successful. Early success criteria defines the percentage of tasks that must be healthy before a deployment completes. It also controls whether Amazon ECS must remove the previous tasks before a deployment completes.

" + } + }, + "com.amazonaws.ecs#DeploymentEphemeralStorage": { + "type": "structure", + "members": { + "kmsKeyId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the deployment.

" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHook": { + "type": "structure", + "members": { + "targetType": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookTargetType", + "traits": { + "smithy.api#documentation": "

The type of action the lifecycle hook performs. Valid values are:

  • AWS_LAMBDA - Invokes a Lambda function at the specified lifecycle stage. This is the default value.

  • PAUSE - Pauses the deployment at the specified lifecycle stage until you call ContinueServiceDeployment to continue or roll back.

This field is optional. If not specified, the default value is AWS_LAMBDA.

" + } + }, + "hookTargetArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the hook target. For AWS_LAMBDA hooks, this is the Lambda function ARN. This field is not applicable for PAUSE hooks.

You must provide this parameter when configuring an AWS_LAMBDA lifecycle hook.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that grants Amazon ECS permission to call Lambda functions on your behalf.

For more information, see Permissions required for Lambda functions in Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "lifecycleStages": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookStageList", + "traits": { + "smithy.api#documentation": "

The lifecycle stages at which to run the hook. Choose from these valid values:

  • RECONCILE_SERVICE

    The reconciliation stage that only happens when you start a new service deployment with more than 1 service revision in an ACTIVE state.

    You can use a lifecycle hook for this stage.

  • PRE_SCALE_UP

    The green service revision has not started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

    You can use a lifecycle hook for this stage.

  • POST_SCALE_UP

    The green service revision has started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

    You can use a lifecycle hook for this stage.

  • TEST_TRAFFIC_SHIFT

    The blue and green service revisions are running. The blue service revision handles 100% of the production traffic. The green service revision is migrating from 0% to 100% of test traffic.

    You can use a lifecycle hook for this stage.

  • POST_TEST_TRAFFIC_SHIFT

    The test traffic shift is complete. The green service revision handles 100% of the test traffic.

    You can use a lifecycle hook for this stage.

  • PRE_PRODUCTION_TRAFFIC_SHIFT

    Occurs before production traffic shift. For linear and canary deployments, this stage is invoked before every traffic shift step.

    You can use a lifecycle hook for this stage.

  • PRODUCTION_TRAFFIC_SHIFT

    Production traffic is shifting to the green service revision. The green service revision is migrating from 0% to 100% of production traffic. For linear and canary deployments, this stage is invoked at every traffic shift step.

    You can use a lifecycle hook for this stage.

  • POST_PRODUCTION_TRAFFIC_SHIFT

    The production traffic shift is complete.

    You can use a lifecycle hook for this stage.

PAUSE hooks cannot be configured at TEST_TRAFFIC_SHIFT or PRODUCTION_TRAFFIC_SHIFT stages. These stages are only valid for AWS_LAMBDA hooks.

You must provide this parameter when configuring a deployment lifecycle hook.

" + } + }, + "hookDetails": { + "target": "com.amazonaws.ecs#HookDetails", + "traits": { + "smithy.api#documentation": "

Use this field to specify custom parameters that Amazon ECS passes to your Lambda function on each invocation. This field is not used for PAUSE hooks.

" + } + }, + "timeoutConfiguration": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookTimeoutConfiguration", + "traits": { + "smithy.api#documentation": "

The timeout configuration for the lifecycle hook. This specifies how long Amazon ECS waits before taking the timeout action if the hook is not resolved.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A deployment lifecycle hook runs custom logic or pauses the deployment at specific stages of the deployment process. You can use Lambda functions or pause hooks as hook targets.

For more information, see Lifecycle hooks for Amazon ECS service deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookAction": { + "type": "enum", + "members": { + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + }, + "CONTINUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTINUE" + } + } + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookDetail": { + "type": "structure", + "members": { + "hookId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the lifecycle hook. Use this value when calling ContinueServiceDeployment to continue or roll back a paused deployment.

" + } + }, + "targetType": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookTargetType", + "traits": { + "smithy.api#documentation": "

The type of action the lifecycle hook performs, such as AWS_LAMBDA or PAUSE.

" + } + }, + "targetArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the hook target. For AWS_LAMBDA hooks, this is the Lambda function ARN. For PAUSE hooks, this field is not set.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookStatus", + "traits": { + "smithy.api#documentation": "

The status of the lifecycle hook. Valid values include AWAITING_ACTION, IN_PROGRESS, SUCCEEDED, FAILED, and TIMED_OUT.

" + } + }, + "expiresAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the lifecycle hook times out. If the hook has not been completed by this time, Amazon ECS takes the timeout action.

" + } + }, + "timeoutAction": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookAction", + "traits": { + "smithy.api#documentation": "

The action Amazon ECS takes when the lifecycle hook times out. Valid values are CONTINUE and ROLLBACK.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a deployment lifecycle hook that is active during a service deployment.

You can view lifecycle hook details by calling DescribeServiceDeployments.

" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookDetail" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookDuration": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 20160 + } + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHook" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookStage": { + "type": "enum", + "members": { + "RECONCILE_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RECONCILE_SERVICE" + } + }, + "PRE_SCALE_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRE_SCALE_UP" + } + }, + "POST_SCALE_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_SCALE_UP" + } + }, + "TEST_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEST_TRAFFIC_SHIFT" + } + }, + "POST_TEST_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_TEST_TRAFFIC_SHIFT" + } + }, + "PRE_PRODUCTION_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRE_PRODUCTION_TRAFFIC_SHIFT" + } + }, + "PRODUCTION_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRODUCTION_TRAFFIC_SHIFT" + } + }, + "POST_PRODUCTION_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_PRODUCTION_TRAFFIC_SHIFT" + } + } + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookStageList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookStage" + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookStatus": { + "type": "enum", + "members": { + "AWAITING_ACTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWAITING_ACTION" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "TIMED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIMED_OUT" + } + } + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookTargetType": { + "type": "enum", + "members": { + "AWS_LAMBDA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_LAMBDA" + } + }, + "PAUSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PAUSE" + } + } + } + }, + "com.amazonaws.ecs#DeploymentLifecycleHookTimeoutConfiguration": { + "type": "structure", + "members": { + "timeoutInMinutes": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookDuration", + "traits": { + "smithy.api#documentation": "

The number of minutes Amazon ECS waits for the lifecycle hook to complete before taking the timeout action.

Default: 1440 (24 hours)

" + } + }, + "action": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookAction", + "traits": { + "smithy.api#documentation": "

The action Amazon ECS takes when the lifecycle hook times out. Valid values are:

  • CONTINUE - Proceeds the deployment to the next lifecycle stage.

  • ROLLBACK - Rolls back the deployment to the previous service revision.

Default: ROLLBACK

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The timeout configuration for a deployment lifecycle hook. This determines how long Amazon ECS waits for the hook to complete before taking the specified timeout action.

" + } + }, + "com.amazonaws.ecs#DeploymentRolloutState": { + "type": "enum", + "members": { + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + } + } + }, + "com.amazonaws.ecs#DeploymentStrategy": { + "type": "enum", + "members": { + "ROLLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLING" + } + }, + "BLUE_GREEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLUE_GREEN" + } + }, + "LINEAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINEAR" + } + }, + "CANARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANARY" + } + } + } + }, + "com.amazonaws.ecs#Deployments": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Deployment" + } + }, + "com.amazonaws.ecs#DeregisterContainerInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeregisterContainerInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeregisterContainerInstanceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to deregister an Amazon ECS container instance from the specified cluster", + "relativeDocumentation": "API_DeregisterContainerInstance.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, we recommend that you stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it doesn't terminate the EC2 instance. If you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents aren't automatically deregistered when terminated).

", + "smithy.api#examples": [ + { + "title": "To deregister a container instance from a cluster", + "documentation": "This example deregisters a container instance from the specified cluster in your default region. If there are still tasks running on the container instance, you must either stop those tasks before deregistering, or use the force option.", + "input": { + "cluster": "default", + "force": true, + "containerInstance": "container_instance_UUID" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ecs#DeregisterContainerInstanceRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "containerInstance": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container instance ID or full ARN of the container instance to deregister. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "force": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Forces the container instance to be deregistered. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they're orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered. They begin connection draining according to the settings on the load balancer or target group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeregisterContainerInstanceResponse": { + "type": "structure", + "members": { + "containerInstance": { + "target": "com.amazonaws.ecs#ContainerInstance", + "traits": { + "smithy.api#documentation": "

The container instance that was deregistered.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DeregisterTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DeregisterTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DeregisterTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to deregister the specified task definition by family and revision", + "relativeDocumentation": "API_DeregisterTaskDefinition.html" + }, + "smithy.api#documentation": "

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count. If you want to delete a task definition revision, you must first deregister the task definition revision.

You can't use an INACTIVE task definition to run new tasks or create new services, and you can't update an existing service to reference an INACTIVE task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect.

At this time, INACTIVE task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

You must deregister a task definition revision before you delete it. For more information, see DeleteTaskDefinitions.

", + "smithy.api#examples": [ + { + "title": "To deregister a revision of a task definition", + "documentation": "This example deregisters the first revision of the fargate-task task definition", + "input": { + "taskDefinition": "fargate-task:1" + }, + "output": { + "taskDefinition": { + "status": "INACTIVE", + "family": "fargate-task", + "volumes": [], + "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/fargate-task:1", + "containerDefinitions": [ + { + "memory": 128, + "cpu": 256, + "portMappings": [ + { + "hostPort": 80, + "containerPort": 80, + "protocol": "tcp" + } + ], + "essential": true, + "name": "nginx", + "image": "public.ecr.aws/docker/library/nginx:latest" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.ecs#DeregisterTaskDefinitionRequest": { + "type": "structure", + "members": { + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DeregisterTaskDefinitionResponse": { + "type": "structure", + "members": { + "taskDefinition": { + "target": "com.amazonaws.ecs#TaskDefinition", + "traits": { + "smithy.api#documentation": "

The full description of the deregistered task.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeCapacityProviders": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeCapacityProvidersRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeCapacityProvidersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to describe one or more Amazon ECS capacity providers", + "relativeDocumentation": "API_DescribeCapacityProviders.html", + "resources": { + "required": { + "capacity-provider": {} + } + } + }, + "smithy.api#documentation": "

Describes one or more of your capacity providers.

", + "smithy.api#examples": [ + { + "title": "To describe all capacity providers", + "documentation": "This example retrieves details about all capacity providers. ", + "output": { + "capacityProviders": [ + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 1000 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [] + }, + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE", + "name": "FARGATE", + "status": "ACTIVE", + "tags": [] + }, + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE_SPOT", + "name": "FARGATE_SPOT", + "status": "ACTIVE", + "tags": [] + } + ] + } + }, + { + "title": "To describe a specific capacity provider", + "documentation": "This example retrieves details about the capacity provider MyCapacityProvider", + "input": { + "capacityProviders": [ + "MyCapacityProvider" + ], + "include": [ + "TAGS" + ] + }, + "output": { + "capacityProviders": [ + { + "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 100, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 1000 + }, + "managedTerminationProtection": "ENABLED" + }, + "tags": [ + { + "key": "environment", + "value": "production" + } + ] + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeCapacityProvidersRequest": { + "type": "structure", + "members": { + "capacityProviders": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to 100 capacity providers can be described in an action.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster to describe capacity providers for. When specified, only capacity providers associated with this cluster are returned, including Amazon ECS Managed Instances capacity providers.

" + } + }, + "include": { + "target": "com.amazonaws.ecs#CapacityProviderFieldList", + "traits": { + "smithy.api#documentation": "

Specifies whether or not you want to see the resource tags for the capacity provider. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of account setting results returned by DescribeCapacityProviders in paginated output. When this parameter is used, DescribeCapacityProviders only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeCapacityProviders request with the returned nextToken value. This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders returns up to 10 results and a nextToken value if applicable.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a previous paginated DescribeCapacityProviders 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 only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeCapacityProvidersResponse": { + "type": "structure", + "members": { + "capacityProviders": { + "target": "com.amazonaws.ecs#CapacityProviders", + "traits": { + "smithy.api#documentation": "

The list of capacity providers.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future DescribeCapacityProviders request. When the results of a DescribeCapacityProviders request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeClusters": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeClustersRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeClustersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describes one or more of your clusters", + "relativeDocumentation": "API_DescribeClusters.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes one or more of your clusters.

For CLI examples, see describe-clusters.rst on GitHub.

", + "smithy.api#examples": [ + { + "title": "To describe a cluster", + "documentation": "This example provides a description of the specified cluster in your default region.", + "input": { + "clusters": [ + "default" + ] + }, + "output": { + "clusters": [ + { + "clusterName": "default", + "status": "ACTIVE", + "clusterArn": "arn:aws:ecs:us-east-1:aws_account_id:cluster/default" + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeClustersRequest": { + "type": "structure", + "members": { + "clusters": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "include": { + "target": "com.amazonaws.ecs#ClusterFieldList", + "traits": { + "smithy.api#documentation": "

Determines whether to include additional information about the clusters in the response. If this field is omitted, this information isn't included.

If ATTACHMENTS is specified, the attachments for the container instances or tasks within the cluster are included, for example the capacity providers.

If SETTINGS is specified, the settings for the cluster are included.

If CONFIGURATIONS is specified, the configuration for the cluster is included.

If STATISTICS is specified, the task and service count is included, separated by launch type.

If TAGS is specified, the metadata tags associated with the cluster are included.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeClustersResponse": { + "type": "structure", + "members": { + "clusters": { + "target": "com.amazonaws.ecs#Clusters", + "traits": { + "smithy.api#documentation": "

The list of clusters.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeContainerInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeContainerInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeContainerInstancesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to describes Amazon ECS container instances", + "relativeDocumentation": "API_DescribeContainerInstances.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

Describes one or more container instances. Returns metadata about each container instance requested.

", + "smithy.api#examples": [ + { + "title": "To describe container instance", + "documentation": "This example provides a description of the specified container instance in your default region, using the container instance UUID as an identifier.", + "input": { + "cluster": "default", + "containerInstances": [ + "f2756532-8f13-4d53-87c9-aed50dc94cd7" + ] + }, + "output": { + "failures": [], + "containerInstances": [ + { + "status": "ACTIVE", + "registeredResources": [ + { + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "integerValue": 2048, + "name": "CPU" + }, + { + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "integerValue": 3768, + "name": "MEMORY" + }, + { + "name": "PORTS", + "longValue": 0, + "doubleValue": 0.0, + "stringSetValue": [ + "2376", + "22", + "51678", + "2375" + ], + "type": "STRINGSET", + "integerValue": 0 + } + ], + "ec2InstanceId": "i-807f3249", + "agentConnected": true, + "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/default/f2756532-8f13-4d53-87c9-aed50dc94cd7", + "pendingTasksCount": 0, + "remainingResources": [ + { + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "integerValue": 1948, + "name": "CPU" + }, + { + "doubleValue": 0.0, + "type": "INTEGER", + "longValue": 0, + "integerValue": 3668, + "name": "MEMORY" + }, + { + "name": "PORTS", + "longValue": 0, + "doubleValue": 0.0, + "stringSetValue": [ + "2376", + "22", + "80", + "51678", + "2375" + ], + "type": "STRINGSET", + "integerValue": 0 + } + ], + "runningTasksCount": 1 + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeContainerInstancesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the container instance or container instances you are describing were launched in any cluster other than the default cluster.

" + } + }, + "containerInstances": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 100 container instance IDs or full Amazon Resource Name (ARN) entries.

", + "smithy.api#required": {} + } + }, + "include": { + "target": "com.amazonaws.ecs#ContainerInstanceFieldList", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the container instance. If TAGS is specified, the tags are included in the response. If CONTAINER_INSTANCE_HEALTH is specified, the container instance health is included in the response. If this field is omitted, tags and container instance health status aren't included in the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeContainerInstancesResponse": { + "type": "structure", + "members": { + "containerInstances": { + "target": "com.amazonaws.ecs#ContainerInstances", + "traits": { + "smithy.api#documentation": "

The list of container instances.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeDaemon": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeDaemonRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeDaemonResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#DaemonNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe the specified daemon running in your cluster", + "resources": { + "required": { + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes the specified daemon.

", + "smithy.api#examples": [ + { + "title": "To describe a daemon", + "documentation": "This example describes the my-monitoring-daemon daemon.", + "input": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon" + }, + "output": { + "daemon": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "ACTIVE", + "currentRevisions": [ + { + "arn": "arn:aws:ecs:us-east-1:123456789012:daemon-revision/my-cluster/my-monitoring-daemon/4980306466373577095", + "capacityProviders": [ + { + "arn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-capacity-provider", + "runningCount": 3 + } + ], + "totalRunningCount": 3 + } + ], + "deploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/aB1cD2eF3gH4iJ5k", + "createdAt": "2025-03-15T12:00:00.000Z", + "updatedAt": "2025-03-20T15:30:00.000Z" + } + } + } + ], + "smithy.api#readonly": {}, + "smithy.waiters#waitable": { + "DaemonActive": { + "minDelay": 15, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "daemon.status", + "expected": "ACTIVE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemon.status", + "expected": "DELETE_IN_PROGRESS", + "comparator": "stringEquals" + } + } + } + ] + } + } + } + }, + "com.amazonaws.ecs#DescribeDaemonDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeDaemonDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeDaemonDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe one or more of your daemon deployments", + "resources": { + "required": { + "daemon-deployment": { + "conditionKeys": [ + "ecs:cluster", + "ecs:daemon", + "aws:ResourceTag/${TagKey}" + ] + }, + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes one or more of your daemon deployments.

A daemon deployment orchestrates the progressive rollout of daemon task updates across container instances managed by the daemon's capacity providers. Each deployment includes circuit breaker and alarm-based rollback capabilities.

", + "smithy.api#examples": [ + { + "title": "To describe daemon deployments", + "documentation": "This example describes a daemon deployment for the my-monitoring-daemon daemon.", + "input": { + "daemonDeploymentArns": [ + "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/aB1cD2eF3gH4iJ5k" + ] + }, + "output": { + "daemonDeployments": [ + { + "daemonDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/aB1cD2eF3gH4iJ5k", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "SUCCESSFUL", + "statusReason": "Deployment completed successfully.", + "targetDaemonRevision": { + "arn": "arn:aws:ecs:us-east-1:123456789012:daemon-revision/my-cluster/my-monitoring-daemon/4980306466373577095", + "capacityProviders": [ + { + "arn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-capacity-provider", + "runningInstanceCount": 3, + "drainingInstanceCount": 0 + } + ], + "totalRunningInstanceCount": 3, + "totalDrainingInstanceCount": 0 + }, + "sourceDaemonRevisions": [], + "circuitBreaker": { + "failureCount": 0, + "status": "MONITORING_COMPLETE", + "threshold": 10 + }, + "alarms": { + "status": "DISABLED", + "alarmNames": [], + "triggeredAlarmNames": [] + }, + "deploymentConfiguration": { + "drainPercent": 10.0, + "bakeTimeInMinutes": 5, + "alarms": { + "alarmNames": [], + "enable": false + } + }, + "createdAt": "2025-03-15T12:00:00.000Z", + "startedAt": "2025-03-15T12:00:05.000Z", + "finishedAt": "2025-03-15T12:15:00.000Z" + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {}, + "smithy.waiters#waitable": { + "DaemonDeploymentSuccessful": { + "minDelay": 15, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "daemonDeployments[].status", + "expected": "SUCCESSFUL", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemonDeployments[].status", + "expected": "STOPPED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemonDeployments[].status", + "expected": "ROLLBACK_FAILED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemonDeployments[].status", + "expected": "ROLLBACK_SUCCESSFUL", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "failures[].reason", + "expected": "MISSING", + "comparator": "anyStringEquals" + } + } + } + ] + }, + "DaemonDeploymentStopped": { + "minDelay": 15, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "daemonDeployments[].status", + "expected": "STOPPED", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "failures[].reason", + "expected": "MISSING", + "comparator": "anyStringEquals" + } + } + } + ] + } + } + } + }, + "com.amazonaws.ecs#DescribeDaemonDeploymentsRequest": { + "type": "structure", + "members": { + "daemonDeploymentArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The ARN of the daemon deployments to describe. You can specify up to 20 ARNs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonDeploymentsResponse": { + "type": "structure", + "members": { + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + }, + "daemonDeployments": { + "target": "com.amazonaws.ecs#DaemonDeploymentList", + "traits": { + "smithy.api#documentation": "

The list of daemon deployments.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonRequest": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonResponse": { + "type": "structure", + "members": { + "daemon": { + "target": "com.amazonaws.ecs#DaemonDetail", + "traits": { + "smithy.api#documentation": "

The full description of the daemon, including the current revisions, deployment ARN, cluster, and status information.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonRevisions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeDaemonRevisionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeDaemonRevisionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe one or more of your daemon revisions", + "resources": { + "required": { + "daemon-revision": { + "conditionKeys": [ + "ecs:cluster", + "ecs:daemon", + "aws:ResourceTag/${TagKey}" + ] + }, + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes one or more of your daemon revisions.

A daemon revision is a snapshot of a daemon's configuration at the time a deployment was initiated. It captures the daemon task definition, container images, tag propagation, and execute command settings. Daemon revisions are immutable.

", + "smithy.api#examples": [ + { + "title": "To describe daemon revisions", + "documentation": "This example describes a daemon revision for the my-monitoring-daemon daemon.", + "input": { + "daemonRevisionArns": [ + "arn:aws:ecs:us-east-1:123456789012:daemon-revision/my-cluster/my-monitoring-daemon/4980306466373577095" + ] + }, + "output": { + "daemonRevisions": [ + { + "daemonRevisionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-revision/my-cluster/my-monitoring-daemon/4980306466373577095", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1", + "createdAt": "2025-03-15T12:00:00.000Z", + "containerImages": [ + { + "containerName": "cloudwatch-agent", + "imageDigest": "sha256:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2", + "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest" + } + ], + "propagateTags": "NONE", + "enableECSManagedTags": false, + "enableExecuteCommand": false + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonRevisionsRequest": { + "type": "structure", + "members": { + "daemonRevisionArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The ARN of the daemon revisions to describe. You can specify up to 20 ARNs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonRevisionsResponse": { + "type": "structure", + "members": { + "daemonRevisions": { + "target": "com.amazonaws.ecs#DaemonRevisions", + "traits": { + "smithy.api#documentation": "

The list of daemon revisions.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeDaemonTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeDaemonTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe a daemon task definition", + "resources": { + "required": { + "daemon-task-definition": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes a daemon task definition. You can specify a family and revision to find information about a specific daemon task definition, or you can simply specify the family to find the latest ACTIVE revision in that family.

", + "smithy.api#examples": [ + { + "title": "To describe a daemon task definition", + "documentation": "This example describes the first revision of the monitoring-agent daemon task definition.", + "input": { + "daemonTaskDefinition": "monitoring-agent:1" + }, + "output": { + "daemonTaskDefinition": { + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1", + "family": "monitoring-agent", + "revision": 1, + "containerDefinitions": [ + { + "name": "cloudwatch-agent", + "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", + "memory": 256, + "cpu": 128, + "essential": true, + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "/ecs/daemon/monitoring-agent", + "awslogs-region": "us-east-1", + "awslogs-stream-prefix": "ecs" + } + }, + "environment": [ + { + "name": "USE_DEFAULT_CONFIG", + "value": "true" + } + ], + "mountPoints": [], + "secrets": [] + } + ], + "cpu": "128", + "memory": "256", + "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", + "taskRoleArn": "arn:aws:iam::123456789012:role/ecsDaemonTaskRole", + "volumes": [], + "status": "ACTIVE", + "registeredAt": "2025-03-15T10:30:00.000Z", + "registeredBy": "arn:aws:iam::123456789012:user/admin" + } + } + } + ], + "smithy.api#readonly": {}, + "smithy.waiters#waitable": { + "DaemonTaskDefinitionActive": { + "minDelay": 15, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "daemonTaskDefinition.status", + "expected": "ACTIVE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemonTaskDefinition.status", + "expected": "DELETE_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "daemonTaskDefinition.status", + "expected": "DELETED", + "comparator": "stringEquals" + } + } + } + ] + }, + "DaemonTaskDefinitionDeleted": { + "minDelay": 15, + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "daemonTaskDefinition.status", + "expected": "DELETED", + "comparator": "stringEquals" + } + } + } + ] + } + } + } + }, + "com.amazonaws.ecs#DescribeDaemonTaskDefinitionRequest": { + "type": "structure", + "members": { + "daemonTaskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the daemon task definition to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeDaemonTaskDefinitionResponse": { + "type": "structure", + "members": { + "daemonTaskDefinition": { + "target": "com.amazonaws.ecs#DaemonTaskDefinition", + "traits": { + "smithy.api#documentation": "

The full daemon task definition description.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeExpressGatewayService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeExpressGatewayServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeExpressGatewayServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe the specified Express Gateway service", + "relativeDocumentation": "API_DescribeExpressGatewayService.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Retrieves detailed information about an Express service, including current status, configuration, managed infrastructure, and service revisions.

Returns comprehensive service details, active service revisions, ingress paths with endpoints, and managed Amazon Web Services resource status including load balancers and auto-scaling policies.

Use the include parameter to retrieve additional information such as resource tags.

", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeExpressGatewayServiceRequest": { + "type": "structure", + "members": { + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Express service to describe. The ARN uniquely identifies the service within your Amazon Web Services account and region.

", + "smithy.api#required": {} + } + }, + "include": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceIncludeList", + "traits": { + "smithy.api#documentation": "

Specifies additional information to include in the response. Valid values are TAGS to include resource tags associated with the Express service.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeExpressGatewayServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#ECSExpressGatewayService", + "traits": { + "smithy.api#documentation": "

The full description of the described express service.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe an Amazon ECS gateway", + "relativeDocumentation": "API_DescribeGateway.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes a gateway, including its configuration, status, and the type-specific infrastructure settings that it uses.

", + "smithy.api#examples": [ + { + "title": "To describe a gateway", + "documentation": "This example describes the gateway named my-gateway.", + "input": { + "gateway": "my-gateway" + }, + "output": { + "gateway": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "name": "my-gateway", + "status": "ACTIVE", + "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", + "deletionProtection": true, + "configuration": { + "hostSharedAlb": { + "networkConfiguration": { + "subnets": [ + "subnet-0123456789abcdef0", + "subnet-0fedcba9876543210" + ], + "ipAddressType": "ipv4" + }, + "scheme": "internet-facing", + "protocol": "HTTPS", + "port": 443, + "httpDesync": "defensive", + "maxAlbCount": 10, + "currentAlbCount": 1 + } + }, + "accessType": "PUBLIC", + "propagateTags": "GATEWAY", + "tags": [ + { + "key": "team", + "value": "web" + } + ], + "createdAt": "2026-10-20T12:00:00.000Z", + "updatedAt": "2026-10-20T12:00:00.000Z" + } + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayAlbConfiguration": { + "type": "structure", + "members": { + "networkConfiguration": { + "target": "com.amazonaws.ecs#GatewayElbNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the load balancers that the gateway manages.

" + } + }, + "scheme": { + "target": "com.amazonaws.ecs#GatewayElbScheme", + "traits": { + "smithy.api#documentation": "

Specifies whether the load balancers the gateway manages are internet-facing or internal.

" + } + }, + "accessLogs": { + "target": "com.amazonaws.ecs#GatewayElbAccessLogConfiguration", + "traits": { + "smithy.api#documentation": "

The access log configuration for the load balancers that the gateway manages.

" + } + }, + "webACLArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL associated with the load balancers that the gateway manages.

" + } + }, + "port": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port that the load balancer listener uses is 443. The gateway supports only HTTPS at port 443.

" + } + }, + "protocol": { + "target": "com.amazonaws.ecs#GatewayAlbProtocol", + "traits": { + "smithy.api#documentation": "

The protocol for the load balancer listener is HTTPS. No other protocol is supported.

" + } + }, + "maxAlbCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of Application Load Balancers that the gateway manages.

" + } + }, + "currentAlbCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The current number of Application Load Balancers that the gateway has allocated.

" + } + }, + "httpDesync": { + "target": "com.amazonaws.ecs#GatewayAlbDesyncMitigationMode", + "traits": { + "smithy.api#documentation": "

The desync mitigation mode for the load balancers that the gateway manages.

" + } + }, + "testTrafficRules": { + "target": "com.amazonaws.ecs#GatewayAlbTestTrafficRules", + "traits": { + "smithy.api#documentation": "

The rules that route test traffic for progressive deployments.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a gateway that uses shared Application Load Balancers, as returned by DescribeGateway. This includes the current number of load balancers in addition to the configured settings.

" + } + }, + "com.amazonaws.ecs#DescribeGatewayConfiguration": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#DescribeGatewayAlbConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for a host-based, shared Application Load Balancer gateway.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type-specific configuration for a gateway that is returned by DescribeGateway.

" + } + }, + "com.amazonaws.ecs#DescribeGatewayRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeGatewayResourcesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeGatewayResourcesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe the resources associated with an Amazon ECS gateway", + "relativeDocumentation": "API_DescribeGatewayResources.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns the infrastructure that a gateway has created and manages, so that you can follow the traffic path from top-level shared resources, such as load balancers, to the service-specific resources represented as gateway routes. Responses include only the Amazon Resource Names (ARNs) of gateway-managed infrastructure. For the current state of a resource, describe it with the corresponding Amazon Web Services service (Elastic Load Balancing, Amazon EC2, or Amazon Web Services Certificate Manager). The results are paginated.

", + "smithy.api#examples": [ + { + "title": "To describe the infrastructure that a gateway manages", + "documentation": "This example returns the load balancers, listeners, and gateway routes that the gateway named my-gateway manages.", + "input": { + "gateway": "my-gateway" + }, + "output": { + "gatewayResources": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "resources": { + "hostSharedAlb": [ + { + "loadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/ecs-gateway-alb-1/50dc6c495c0c9188", + "listenerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2", + "securityGroup": "sg-0123456789abcdef0", + "gatewayRouteArns": [ + "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f" + ] + } + ] + } + } + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayResourcesRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway.

", + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results that the operation returns in a single page. The maximum value is 20 and the default is 10.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a previous paginated request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayResourcesResponse": { + "type": "structure", + "members": { + "gatewayResources": { + "target": "com.amazonaws.ecs#GatewayResources", + "traits": { + "smithy.api#documentation": "

The infrastructure resources that the gateway manages, grouped by gateway type.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future request to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayResponse": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#Gateway", + "traits": { + "smithy.api#documentation": "

The details of the gateway.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayRoute": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeGatewayRouteRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeGatewayRouteResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe a route for an Amazon ECS gateway", + "relativeDocumentation": "API_DescribeGatewayRoute.html", + "resources": { + "required": { + "gateway-route": { + "conditionKeys": [ + "ecs:gateway", + "aws:ResourceTag/${TagKey}" + ] + }, + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes a gateway route, including its status, the service it routes traffic to, and the service-specific infrastructure, such as target groups and listener rules, that the gateway manages for it.

", + "smithy.api#examples": [ + { + "title": "To describe a gateway route", + "documentation": "This example describes the specified gateway route, including the service URL and the load balancer resources that the gateway manages for the route.", + "input": { + "gatewayRouteArn": "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f" + }, + "output": { + "gatewayRoute": { + "gatewayRouteArn": "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/my-cluster/my-web-service", + "serviceContainerPortName": "web", + "status": "ACTIVE", + "serviceUrl": "https://my-web-service.example.com", + "resources": { + "hostSharedAlb": [ + { + "acmCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/12345678-90ab-cdef-1234-567890abcdef", + "loadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/ecs-gateway-alb-1/50dc6c495c0c9188", + "listenerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2", + "listenerRuleArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener-rule/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", + "testListenerRuleArns": [ + "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener-rule/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cc1d2" + ], + "loadBalancerSecurityGroups": [ + { + "arn": "arn:aws:ec2:us-east-1:123456789012:security-group/sg-0123456789abcdef0", + "ruleArns": [ + "arn:aws:ec2:us-east-1:123456789012:security-group-rule/sgr-0123456789abcdef0" + ] + } + ], + "serviceSecurityGroupArn": "arn:aws:ec2:us-east-1:123456789012:security-group/sg-0fedcba9876543210" + } + ] + } + } + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayRouteRequest": { + "type": "structure", + "members": { + "gatewayRouteArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway route to describe.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeGatewayRouteResponse": { + "type": "structure", + "members": { + "gatewayRoute": { + "target": "com.amazonaws.ecs#GatewayRoute", + "traits": { + "smithy.api#documentation": "

The details of the gateway route.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeServiceDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeServiceDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeServiceDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe one or more of your service deployments", + "relativeDocumentation": "API_DescribeServiceDeployments.html", + "resources": { + "required": { + "service-deployment": { + "conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + }, + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes one or more of your service deployments.

A service deployment happens when you release a software update for the service. For more information, see View service history using Amazon ECS service deployments.

", + "smithy.api#examples": [ + { + "title": "To describe a service deployment ", + "documentation": "This example describes a service deployment for the service sd-example in the example cluster. ", + "input": { + "serviceDeploymentArns": [ + "arn:aws:ecs:us-west-2:123456789012:service-deployment/example/sd-example/NCWGC2ZR-taawPAYrIaU5" + ] + }, + "output": { + "serviceDeployments": [ + { + "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/example/sd-example/NCWGC2ZR-taawPAYrIaU5", + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/example/sd-example", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/example", + "updatedAt": "2024-09-10T16:49:35.57Z", + "targetServiceRevision": { + "arn": "arn:aws:ecs:us-west-2:123456789012:service-revision/example/sd-example/4980306466373577095", + "requestedTaskCount": 0, + "runningTaskCount": 0, + "pendingTaskCount": 0 + }, + "status": "PENDING", + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true, + "resetOnHealthyTask": true, + "thresholdConfiguration": { + "type": "BOUNDED_PERCENT", + "value": 50 + } + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100 + } + } + ], + "failures": [] + } + }, + { + "title": "To describe a service deployment with a paused lifecycle hook", + "documentation": "This example describes a service deployment that is currently paused at a lifecycle hook. The lifecycleHookDetails field shows the status of the pause hook, including when it will expire and what action will be taken if the timeout is reached.", + "input": { + "serviceDeploymentArns": [ + "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r" + ] + }, + "output": { + "serviceDeployments": [ + { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "updatedAt": "2026-05-06T16:00:00.000Z", + "targetServiceRevision": { + "arn": "arn:aws:ecs:us-east-1:123456789012:service-revision/MyCluster/MyService/1234567890123456789", + "requestedTaskCount": 2, + "runningTaskCount": 1, + "pendingTaskCount": 1 + }, + "status": "IN_PROGRESS", + "lifecycleStage": "POST_PRODUCTION_TRAFFIC_SHIFT", + "lifecycleHookDetails": [ + { + "hookId": "ecs-pause-Xk7rT2mP9sLwQn4vB8fYd3hJ6gA1cE5iO0uR_ZpWq", + "targetType": "PAUSE", + "status": "AWAITING_ACTION", + "expiresAt": "2026-05-06T17:00:00.000Z", + "timeoutAction": "ROLLBACK" + } + ], + "deploymentConfiguration": { + "deploymentCircuitBreaker": { + "enable": true, + "rollback": true, + "resetOnHealthyTask": true, + "thresholdConfiguration": { + "type": "BOUNDED_PERCENT", + "value": 50 + } + }, + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "strategy": "BLUE_GREEN", + "lifecycleHooks": [ + { + "targetType": "PAUSE", + "lifecycleStages": [ + "POST_PRODUCTION_TRAFFIC_SHIFT" + ], + "timeoutConfiguration": { + "timeoutInMinutes": 60, + "action": "ROLLBACK" + } + } + ] + } + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeServiceDeploymentsRequest": { + "type": "structure", + "members": { + "serviceDeploymentArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment.

You can specify a maximum of 20 ARNs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeServiceDeploymentsResponse": { + "type": "structure", + "members": { + "serviceDeployments": { + "target": "com.amazonaws.ecs#ServiceDeployments", + "traits": { + "smithy.api#documentation": "

The list of service deployments described.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

If you decsribe a deployment with a service revision created before October 25, 2024, the call fails. The failure includes the service revision ARN and the reason set to MISSING.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeServiceRevisions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeServiceRevisionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeServiceRevisionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe one or more of your service revisions", + "relativeDocumentation": "API_DescribeServiceRevisions.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + }, + "service-revision": { + "conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Describes one or more service revisions.

A service revision is a version of the service that includes the values for the Amazon ECS resources (for example, task definition) and the environment resources (for example, load balancers, subnets, and security groups). For more information, see Amazon ECS service revisions.

You can't describe a service revision that was created before October 25, 2024.

", + "smithy.api#examples": [ + { + "title": "To describe a service revision ", + "documentation": "This example describes a service revision with the specified ARN", + "input": { + "serviceRevisionArns": [ + "arn:aws:ecs:us-west-2:123456789012:service-revision/testc/sd1/4980306466373577095" + ] + }, + "output": { + "serviceRevisions": [ + { + "serviceRevisionArn": "arn:aws:ecs:us-west-2:123456789012:service-revision/example/sd-example/4980306466373577095", + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/example/sd-example", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/example", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/large-ngingx:1", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "DockerLinux", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-0a4040e73895f04e1" + ], + "securityGroups": [ + "sg-09605d60a6bc1b296" + ], + "assignPublicIp": "ENABLED" + } + }, + "createdAt": "2024-09-10T16:49:26.39Z" + } + ], + "failures": [] + } + }, + { + "title": "To describe a service revision with a monitoring configuration", + "documentation": "This example describes a service revision that has a monitoring configuration with 20-second resolution for CPUUtilization and MemoryUtilization CloudWatch metrics.", + "input": { + "serviceRevisionArns": [ + "arn:aws:ecs:us-east-1:012345678910:service-revision/default/ecs-monitored-service/8675309012345678901" + ] + }, + "output": { + "serviceRevisions": [ + { + "serviceRevisionArn": "arn:aws:ecs:us-east-1:012345678910:service-revision/default/ecs-monitored-service/8675309012345678901", + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-monitored-service", + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/my-app:1", + "launchType": "FARGATE", + "platformVersion": "1.4.0", + "platformFamily": "DockerLinux", + "monitoring": { + "metricConfigurations": [ + { + "metricNames": [ + "CPUUtilization", + "MemoryUtilization" + ], + "resolutionSeconds": 20 + } + ] + }, + "createdAt": "2026-06-10T12:00:00.00Z" + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeServiceRevisionsRequest": { + "type": "structure", + "members": { + "serviceRevisionArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision.

You can specify a maximum of 20 ARNs.

You can call ListServiceDeployments to get the ARNs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeServiceRevisionsResponse": { + "type": "structure", + "members": { + "serviceRevisions": { + "target": "com.amazonaws.ecs#ServiceRevisions", + "traits": { + "smithy.api#documentation": "

The list of service revisions described.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeServices": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeServicesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeServicesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to describe the specified services running in your cluster", + "relativeDocumentation": "API_DescribeServices.html", + "resources": { + "required": { + "service": {} + } + } + }, + "smithy.api#documentation": "

Describes the specified services running in your cluster.

", + "smithy.api#examples": [ + { + "title": "To describe a service", + "documentation": "This example provides descriptive information about the service named ``ecs-simple-service``.", + "input": { + "services": [ + "ecs-simple-service" + ] + }, + "output": { + "failures": [], + "services": [ + { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "createdAt": "2016-08-29T16:25:52.130Z", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100 + }, + "deployments": [ + { + "createdAt": "2016-08-29T16:25:52.130Z", + "desiredCount": 1, + "id": "ecs-svc/9223370564341623665", + "pendingCount": 0, + "runningCount": 0, + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6", + "updatedAt": "2016-08-29T16:25:52.130Z" + } + ], + "desiredCount": 1, + "events": [ + { + "createdAt": "2016-08-29T16:25:58.520Z", + "id": "38c285e5-d335-4b68-8b15-e46dedc8e88d", + "message": "(service ecs-simple-service) was unable to place a task because no container instance met all of its requirements. The closest matching (container-instance 3f4de1c5-ffdd-4954-af7e-75b4be0c8841) is already using a port required by your task. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide." + } + ], + "loadBalancers": [], + "pendingCount": 0, + "runningCount": 0, + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-simple-service", + "serviceName": "ecs-simple-service", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/default/hello_world:6" + } + ] + } + }, + { + "title": "To describe a service with a pause lifecycle hook", + "documentation": "This example provides descriptive information about the service ``ecs-service-with-pause-hook``, which is configured with a pause lifecycle hook in its deployment configuration.", + "input": { + "services": [ + "ecs-service-with-pause-hook" + ] + }, + "output": { + "failures": [], + "services": [ + { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "createdAt": "2026-05-06T16:00:00.000Z", + "deploymentConfiguration": { + "maximumPercent": 200, + "minimumHealthyPercent": 100, + "strategy": "BLUE_GREEN", + "lifecycleHooks": [ + { + "targetType": "PAUSE", + "lifecycleStages": [ + "POST_PRODUCTION_TRAFFIC_SHIFT" + ], + "timeoutConfiguration": { + "timeoutInMinutes": 60, + "action": "ROLLBACK" + } + } + ] + }, + "deployments": [ + { + "createdAt": "2026-05-06T16:00:00.000Z", + "desiredCount": 2, + "id": "ecs-svc/9223370564341623665", + "pendingCount": 0, + "runningCount": 2, + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1", + "updatedAt": "2026-05-06T16:00:00.000Z" + } + ], + "desiredCount": 2, + "events": [], + "loadBalancers": [], + "pendingCount": 0, + "runningCount": 2, + "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-service-with-pause-hook", + "serviceName": "ecs-service-with-pause-hook", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/ecs-demo:1" + } + ] + } + } + ], + "smithy.api#readonly": {}, + "smithy.waiters#waitable": { + "ServicesInactive": { + "acceptors": [ + { + "state": "failure", + "matcher": { + "output": { + "path": "failures[].reason", + "expected": "MISSING", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "services[].status", + "expected": "INACTIVE", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 15, + "maxDelay": 600 + }, + "ServicesStable": { + "acceptors": [ + { + "state": "failure", + "matcher": { + "output": { + "path": "failures[].reason", + "expected": "MISSING", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "services[].status", + "expected": "DRAINING", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "services[].status", + "expected": "INACTIVE", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + } + ], + "minDelay": 15, + "maxDelay": 600 + } + } + } + }, + "com.amazonaws.ecs#DescribeServicesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are describing were launched in any cluster other than the default cluster.

" + } + }, + "services": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of services to describe. You may specify up to 10 services to describe in a single operation.

", + "smithy.api#required": {} + } + }, + "include": { + "target": "com.amazonaws.ecs#ServiceFieldList", + "traits": { + "smithy.api#documentation": "

Determines whether you want to see the resource tags for the service. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeServicesResponse": { + "type": "structure", + "members": { + "services": { + "target": "com.amazonaws.ecs#Services", + "traits": { + "smithy.api#documentation": "

The list of services described.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to describe a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family", + "relativeDocumentation": "API_DescribeTaskDefinition.html" + }, + "smithy.api#documentation": "

Describes a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family.

You can only describe INACTIVE task definitions while an active task or service references them.

", + "smithy.api#examples": [ + { + "title": "To describe a task definition", + "documentation": "This example provides a description of the specified task definition.", + "input": { + "taskDefinition": "hello_world:8" + }, + "output": { + "taskDefinition": { + "family": "hello_world", + "taskDefinitionArn": "arn:aws:ecs:us-east-1::task-definition/hello_world:8", + "containerDefinitions": [ + { + "mountPoints": [], + "name": "wordpress", + "links": [ + "mysql" + ], + "image": "wordpress", + "cpu": 10, + "environment": [], + "memory": 500, + "portMappings": [ + { + "containerPort": 80, + "hostPort": 80 + } + ], + "essential": true, + "volumesFrom": [] + }, + { + "mountPoints": [], + "name": "mysql", + "image": "mysql", + "cpu": 10, + "environment": [ + { + "name": "MYSQL_ROOT_PASSWORD", + "value": "password" + } + ], + "memory": 500, + "portMappings": [], + "volumesFrom": [], + "essential": true + } + ], + "volumes": [], + "revision": 8 + } + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeTaskDefinitionRequest": { + "type": "structure", + "members": { + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe.

", + "smithy.api#required": {} + } + }, + "include": { + "target": "com.amazonaws.ecs#TaskDefinitionFieldList", + "traits": { + "smithy.api#documentation": "

Determines whether to see the resource tags for the task definition. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeTaskDefinitionResponse": { + "type": "structure", + "members": { + "taskDefinition": { + "target": "com.amazonaws.ecs#TaskDefinition", + "traits": { + "smithy.api#documentation": "

The full task definition description.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that's applied to the task definition to help you categorize and organize them. 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.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeTaskSets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeTaskSetsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeTaskSetsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to describe Amazon ECS task sets", + "relativeDocumentation": "API_DescribeTaskSets.html", + "resources": { + "required": { + "task-set": {} + } + } + }, + "smithy.api#documentation": "

Describes the task sets in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a task set ", + "documentation": "This example describes a task set in service MyService that uses an EXTERNAL deployment controller. ", + "input": { + "cluster": "MyCluster", + "service": "MyService", + "taskSets": [ + "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789" + ] + }, + "output": { + "taskSets": [ + { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557207715.195, + "updatedAt": 1557207740.014, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-1234431" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 0, + "unit": "PERCENT" + }, + "stabilityStatus": "STEADY_STATE", + "stabilityStatusAt": 1557207740.014 + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#DescribeTaskSetsRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

", + "smithy.api#required": {} + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service that the task sets exist in.

", + "smithy.api#required": {} + } + }, + "taskSets": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The ID or full Amazon Resource Name (ARN) of task sets to describe.

" + } + }, + "include": { + "target": "com.amazonaws.ecs#TaskSetFieldList", + "traits": { + "smithy.api#documentation": "

Specifies whether to see the resource tags for the task set. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeTaskSetsResponse": { + "type": "structure", + "members": { + "taskSets": { + "target": "com.amazonaws.ecs#TaskSets", + "traits": { + "smithy.api#documentation": "

The list of task sets described.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeTasksRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeTasksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to describe a specified task or tasks", + "relativeDocumentation": "API_DescribeTasks.html", + "resources": { + "required": { + "task": {} + } + } + }, + "smithy.api#documentation": "

Describes a specified task or tasks.

Currently, stopped tasks appear in the returned results for at least one hour.

If you have tasks with tags, and then delete the cluster, the tagged tasks are returned in the response. If you create a new cluster with the same name as the deleted cluster, the tagged tasks are not included in the response.

", + "smithy.api#examples": [ + { + "title": "To describe a task", + "documentation": "This example provides a description of the specified task, using the task UUID as an identifier.", + "input": { + "tasks": [ + "c5cba4eb-5dad-405e-96db-71ef8eefe6a8" + ] + }, + "output": { + "failures": [], + "tasks": [ + { + "taskArn": "arn:aws:ecs:::task/default/c5cba4eb-5dad-405e-96db-71ef8eefe6a8", + "overrides": { + "containerOverrides": [ + { + "name": "ecs-demo" + } + ] + }, + "lastStatus": "RUNNING", + "containerInstanceArn": "arn:aws:ecs:::container-instance/default/18f9eda5-27d7-4c19-b133-45adc516e8fb", + "clusterArn": "arn:aws:ecs:::cluster/default", + "desiredStatus": "RUNNING", + "taskDefinitionArn": "arn:aws:ecs:::task-definition/amazon-ecs-sample:1", + "startedBy": "ecs-svc/9223370608528463088", + "containers": [ + { + "containerArn": "arn:aws:ecs:::container/7c01765b-c588-45b3-8290-4ba38bd6c5a6", + "taskArn": "arn:aws:ecs:::task/default/c5cba4eb-5dad-405e-96db-71ef8eefe6a8", + "lastStatus": "RUNNING", + "name": "ecs-demo", + "networkBindings": [ + { + "bindIP": "0.0.0.0", + "containerPort": 80, + "hostPort": 80 + } + ] + } + ] + } + ] + } + } + ], + "smithy.api#readonly": {}, + "smithy.waiters#waitable": { + "TasksRunning": { + "acceptors": [ + { + "state": "failure", + "matcher": { + "output": { + "path": "tasks[].lastStatus", + "expected": "STOPPED", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "failures[].reason", + "expected": "MISSING", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "tasks[].lastStatus", + "expected": "RUNNING", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 6, + "maxDelay": 600 + }, + "TasksStopped": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "tasks[].lastStatus", + "expected": "STOPPED", + "comparator": "allStringEquals" + } + } + } + ], + "minDelay": 6, + "maxDelay": 600 + } + } + } + }, + "com.amazonaws.ecs#DescribeTasksRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to describe. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "tasks": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 100 task IDs or full ARN entries.

", + "smithy.api#required": {} + } + }, + "include": { + "target": "com.amazonaws.ecs#TaskFieldList", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to see the resource tags for the task. If TAGS is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeTasksResponse": { + "type": "structure", + "members": { + "tasks": { + "target": "com.amazonaws.ecs#Tasks", + "traits": { + "smithy.api#documentation": "

The list of tasks.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DesiredStatus": { + "type": "enum", + "members": { + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + } + } + }, + "com.amazonaws.ecs#Device": { + "type": "structure", + "members": { + "hostPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The path for the device on the host container instance.

", + "smithy.api#required": {} + } + }, + "containerPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The path inside the container at which to expose the host device.

" + } + }, + "permissions": { + "target": "com.amazonaws.ecs#DeviceCgroupPermissions", + "traits": { + "smithy.api#documentation": "

The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a container instance host device.

" + } + }, + "com.amazonaws.ecs#DeviceCgroupPermission": { + "type": "enum", + "members": { + "READ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "read" + } + }, + "WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "write" + } + }, + "MKNOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mknod" + } + } + } + }, + "com.amazonaws.ecs#DeviceCgroupPermissions": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#DeviceCgroupPermission" + } + }, + "com.amazonaws.ecs#DevicesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Device" + } + }, + "com.amazonaws.ecs#DisassociateGatewayFromCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DisassociateGatewayFromClusterRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DisassociateGatewayFromClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to disassociate an Amazon ECS gateway from a cluster", + "relativeDocumentation": "API_DisassociateGatewayFromCluster.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Removes the association between a gateway and an Amazon ECS cluster. The association remains in the DISASSOCIATING state until you remove all of the gateway routes for the cluster by updating the associated services. You can use ListGatewayRoutes with a cluster filter to determine which routes are preventing disassociation. No infrastructure changes are made until the affected services are updated.

", + "smithy.api#examples": [ + { + "title": "To disassociate a gateway from a cluster", + "documentation": "This example removes the association between the gateway named my-gateway and the cluster named my-cluster. The association remains in the DISASSOCIATING state until all gateway routes for the cluster are removed.", + "input": { + "gateway": "my-gateway", + "cluster": "my-cluster" + }, + "output": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "DISASSOCIATING" + } + } + ] + } + }, + "com.amazonaws.ecs#DisassociateGatewayFromClusterRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway to disassociate.

", + "smithy.api#required": {} + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the cluster to disassociate the gateway from.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DisassociateGatewayFromClusterResponse": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationStatus", + "traits": { + "smithy.api#documentation": "

The status of the association. After a successful request, the status is DISASSOCIATING until all routes are removed, after which the association is deleted.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DiscoverPollEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DiscoverPollEndpointRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DiscoverPollEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get an endpoint for the Amazon ECS agent to poll for updates", + "relativeDocumentation": "API_DiscoverPollEndpoint.html" + }, + "smithy.api#documentation": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon ECS agent to poll for updates.

" + } + }, + "com.amazonaws.ecs#DiscoverPollEndpointRequest": { + "type": "structure", + "members": { + "containerInstance": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container instance ID or full ARN of the container instance. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DiscoverPollEndpointResponse": { + "type": "structure", + "members": { + "endpoint": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The endpoint for the Amazon ECS agent to poll.

" + } + }, + "telemetryEndpoint": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The telemetry endpoint for the Amazon ECS agent.

" + } + }, + "serviceConnectEndpoint": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The endpoint for the Amazon ECS agent to poll for Service Connect configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DockerLabelsMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ecs#String" + }, + "value": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#DockerVolumeConfiguration": { + "type": "structure", + "members": { + "scope": { + "target": "com.amazonaws.ecs#Scope", + "traits": { + "smithy.api#documentation": "

The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a task are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as shared persist after the task stops.

" + } + }, + "autoprovision": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If this value is true, the Docker volume is created if it doesn't already exist.

This field is only used if the scope is shared.

" + } + }, + "driver": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. If the driver was installed using the Docker plugin CLI, use docker plugin ls to retrieve the driver name from your container instance. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name. This parameter maps to Driver in the docker container create command and the xxdriver option to docker volume create.

" + } + }, + "driverOpts": { + "target": "com.amazonaws.ecs#StringMap", + "traits": { + "smithy.api#documentation": "

A map of Docker driver-specific options passed through. This parameter maps to DriverOpts in the docker create-volume command and the xxopt option to docker volume create.

" + } + }, + "labels": { + "target": "com.amazonaws.ecs#StringMap", + "traits": { + "smithy.api#documentation": "

Custom metadata to add to your Docker volume. This parameter maps to Labels in the docker container create command and the xxlabel option to docker volume create.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This parameter is specified when you're using Docker volumes. Docker volumes are only supported when you're using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify a host instead.

" + } + }, + "com.amazonaws.ecs#Double": { + "type": "double", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.ecs#Duration": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.ecs#EBSKMSKeyId": { + "type": "string" + }, + "com.amazonaws.ecs#EBSResourceType": { + "type": "enum", + "members": { + "VOLUME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volume" + } + } + } + }, + "com.amazonaws.ecs#EBSSnapshotId": { + "type": "string" + }, + "com.amazonaws.ecs#EBSTagSpecification": { + "type": "structure", + "members": { + "resourceType": { + "target": "com.amazonaws.ecs#EBSResourceType", + "traits": { + "smithy.api#documentation": "

The type of volume resource.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The tags applied to this Amazon EBS volume. AmazonECSCreated and AmazonECSManaged are reserved tags that can't be used.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition to the Amazon EBS volume. Tags can only propagate to a SERVICE specified in ServiceVolumeConfiguration. If no value is specified, the tags aren't propagated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The tag specifications of an Amazon EBS volume.

" + } + }, + "com.amazonaws.ecs#EBSTagSpecifications": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#EBSTagSpecification" + } + }, + "com.amazonaws.ecs#EBSVolumeType": { + "type": "string" + }, + "com.amazonaws.ecs#ECSExpressGatewayService": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full ARN of the cluster that hosts the Express service.

" + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the Express service.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN that identifies the Express service.

" + } + }, + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the infrastructure role that manages Amazon Web Services resources for the Express service.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceStatus", + "traits": { + "smithy.api#documentation": "

The current status of the Express service.

" + } + }, + "currentDeployment": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The current deployment configuration for the Express service.

" + } + }, + "activeConfigurations": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceConfigurations", + "traits": { + "smithy.api#documentation": "

The list of active service configurations for the Express service.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata applied to the Express service.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Express service was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Express service was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents an Express service, which provides a simplified way to deploy containerized web applications on Amazon ECS with managed Amazon Web Services infrastructure. An Express service automatically provisions and manages Application Load Balancers, target groups, security groups, and auto-scaling policies.

Express services use a service revision architecture where each service can have multiple active configurations, enabling blue-green deployments and gradual rollouts. The service maintains a list of active configurations and manages the lifecycle of the underlying Amazon Web Services resources.

" + } + }, + "com.amazonaws.ecs#ECSManagedResources": { + "type": "structure", + "members": { + "ingressPaths": { + "target": "com.amazonaws.ecs#ManagedIngressPaths", + "traits": { + "smithy.api#documentation": "

The ingress paths and endpoints for the Express service.

" + } + }, + "autoScaling": { + "target": "com.amazonaws.ecs#ManagedAutoScaling", + "traits": { + "smithy.api#documentation": "

The auto-scaling configuration and policies for the Express service.

" + } + }, + "metricAlarms": { + "target": "com.amazonaws.ecs#ManagedMetricAlarms", + "traits": { + "smithy.api#documentation": "

The CloudWatch metric alarms associated with the Express service.

" + } + }, + "serviceSecurityGroups": { + "target": "com.amazonaws.ecs#ManagedSecurityGroups", + "traits": { + "smithy.api#documentation": "

The security groups managed by the Express service.

" + } + }, + "logGroups": { + "target": "com.amazonaws.ecs#ManagedLogGroups", + "traits": { + "smithy.api#documentation": "

The log groups managed by the Express service.

" + } + }, + "gatewayConnections": { + "target": "com.amazonaws.ecs#GatewayConnectionList", + "traits": { + "smithy.api#documentation": "

The gateway-managed connections for the service revision, including the gateway routes and infrastructure that a gateway created for the service's connector.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the Amazon Web Services resources managed by Amazon ECS for an Express service, including ingress paths, auto-scaling policies, metric alarms, and security groups.

" + } + }, + "com.amazonaws.ecs#ECSVolumeName": { + "type": "string" + }, + "com.amazonaws.ecs#EFSAuthorizationConfig": { + "type": "structure", + "members": { + "accessPointId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" + } + }, + "iam": { + "target": "com.amazonaws.ecs#EFSAuthorizationConfigIAM", + "traits": { + "smithy.api#documentation": "

Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS access points in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The authorization configuration details for the Amazon EFS file system.

" + } + }, + "com.amazonaws.ecs#EFSAuthorizationConfigIAM": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#EFSTransitEncryption": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#EFSVolumeConfiguration": { + "type": "structure", + "members": { + "fileSystemId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon EFS file system ID to use.

", + "smithy.api#required": {} + } + }, + "rootDirectory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter.

If an EFS access point is specified in the authorizationConfig, the root directory parameter must either be omitted or set to / which will enforce the path set on the EFS access point.

" + } + }, + "transitEncryption": { + "target": "com.amazonaws.ecs#EFSTransitEncryption", + "traits": { + "smithy.api#documentation": "

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting data in transit in the Amazon Elastic File System User Guide.

" + } + }, + "transitEncryptionPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see EFS mount helper in the Amazon Elastic File System User Guide.

" + } + }, + "authorizationConfig": { + "target": "com.amazonaws.ecs#EFSAuthorizationConfig", + "traits": { + "smithy.api#documentation": "

The authorization configuration details for the Amazon EFS file system.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This parameter is specified when you're using an Amazon Elastic File System file system for task storage. For more information, see Amazon EFS volumes in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ElbGatewayResources": { + "type": "structure", + "members": { + "loadBalancerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer.

" + } + }, + "listenerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener on the load balancer.

" + } + }, + "securityGroup": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the security group attached to the load balancer.

" + } + }, + "gatewayRouteArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the gateway routes that use this load balancer for ingress.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Application Load Balancer and its associated resources that a gateway manages.

" + } + }, + "com.amazonaws.ecs#ElbGatewayResourcesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ElbGatewayResources" + }, + "traits": { + "smithy.api#documentation": "

A list of Application Load Balancer resource groups that a gateway manages.

", + "smithy.api#length": { + "max": 20 + } + } + }, + "com.amazonaws.ecs#EnvironmentFile": { + "type": "structure", + "members": { + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.ecs#EnvironmentFileType", + "traits": { + "smithy.api#documentation": "

The file type to use. Environment files are objects in Amazon S3. The only supported value is s3.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file should contain an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored.

If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see Use a file to pass environment variables to a container in the Amazon Elastic Container Service Developer Guide.

Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply.

You must use the following platforms for the Fargate launch type:

  • Linux platform version 1.4.0 or later.

Consider the following when using the Fargate launch type:

  • The file is handled like a native Docker env-file.

  • There is no support for shell escape handling.

  • The container entry point interperts the VARIABLE values.

" + } + }, + "com.amazonaws.ecs#EnvironmentFileType": { + "type": "enum", + "members": { + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3" + } + } + } + }, + "com.amazonaws.ecs#EnvironmentFiles": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#EnvironmentFile" + } + }, + "com.amazonaws.ecs#EnvironmentVariables": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#KeyValuePair" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ecs#EphemeralStorage": { + "type": "structure", + "members": { + "sizeInGiB": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Using data volumes in tasks in the Amazon ECS Developer Guide;.

For tasks using the Fargate launch type, the task requires the following platforms:

  • Linux platform version 1.4.0 or later.

" + } + }, + "com.amazonaws.ecs#ExcludedInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$" + } + }, + "com.amazonaws.ecs#ExcludedInstanceTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ExcludedInstanceType", + "traits": { + "smithy.api#xmlName": "item" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 400 + } + } + }, + "com.amazonaws.ecs#ExecuteCommand": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ExecuteCommandRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ExecuteCommandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#TargetNotConnectedException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:cluster", + "ecs:container-name", + "ecs:task", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to run a command remotely on an Amazon ECS container", + "relativeDocumentation": "API_ExecuteCommand.html", + "resources": { + "required": { + "cluster": {}, + "task": {} + } + } + }, + "smithy.api#documentation": "

Runs a command remotely on a container within a task.

If you use a condition key in your IAM policy to refine the conditions for the policy statement, for example limit the actions to a specific cluster, you receive an AccessDeniedException when there is a mismatch between the condition key value and the corresponding parameter value.

For information about required permissions and considerations, see Using Amazon ECS Exec for debugging in the Amazon ECS Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To run a command remotely on a container in a task", + "documentation": "This example runs an interactive /bin/sh command on a container MyContainer. ", + "input": { + "cluster": "MyCluster", + "container": "MyContainer", + "command": "/bin/sh", + "interactive": true, + "task": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE" + }, + "output": { + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE/43ba4b77-37f7-4a41-b923-69d4abEXAMPLE", + "containerName": "MyContainer", + "interactive": true, + "session": { + "sessionId": "ecs-execute-command-794nnsxobsg4p2hiur6gxu9a9e", + "streamUrl": "wss://ssmmessages.us-east-1.amazonaws.com/v1/data-channel/ecs-execute-command-794nnsxobsg4p2hiur6gxu9a9e?role=publish_subscribe&cell-number=AAEAAfiZG4oybxqsYj3Zhm15s4J0W1k7d9nxVRenNO8Kl5nzAAAAAGdbWGl479/y/4IrTWPadUic3eBrMu3vmB7aPvI+s12lbpDc142y1KZy", + "tokenValue": "AAEAAcVb7ww10N9aNUI5Cl7K7DbHjbD2Ed4Mw6uaGYIc+UFNAAAAAGdbWGmMDaPbGfDkzrVIhyKEsc4CPT2hcToPU6yzlddPm7rRZvYQtpaAgsvQdjbCAd9OB6ohtDYfqZI9gzMqLKegXq0E+KbDcGPnQVODFNHmQxnR1BvC6vNcHqh6HAJuKnQD7RSYx/J5bfYNHj4hCYHuN0HNcueSDOOTRB/MBt5DBDY7Djv2uzs9FD0N1kcsGljZkZWLuPTVKHHyrU3zh0awfrFFC3RXvgaUCBnloIIvZeq2CjTesxn9JJS+3N4I0DVxfkHdWWBbBY/5+wH82JVTJpqN3yOAt74u/W7TvYBd7Xu2lQbvtpuAnEszl++bFG2ZoV3dfnmBkSnfD/qV1FJcEskbxUHKgmqe0Paouv4zwrQKNfWYfcv9xkWskqcExh07IeaxZz1tp/WegZ5D76sD6xYeuH+35TMNXMoY7oudLgxIXsA7b39ElM7orGi4Jy3W2tLyuNIvDoI2JI6ww4tYdEjYZnld9rhKwV9rDHk1Z8wjHMs++3BIkHrFQRsv7BFUWlZ9lyqO9GWlXeBe7dQtOeFNahBuJUE9z/xLHJn1x13VkdROKqUVHTJrT4sXAnI5roWiGPoQPVY7aHVYJnwjSxrPRWJBsgyHiVN3dAWTmeVMjp0VbOiJaLlpBI+AUWs8OeVRzuJSZ+1alETpK7Ukag7ma9K4lxq/N7IxYo2ub0cG/bvX42zQqdJAW+9St9sQ1QMaMvkSq1tdbLoOuY0QjN7JrkuKLFQA5bhs+o1YwItzIp7bNrzQ9Z9IN51qoGL5HDXQzi1kNFfYtAryhwt6BgtQU9Z0k+RpE+V5G+V68E0MMUvb313f0nRBYj1u5VKonWb708wADPbUU+s7nvbWuD5oLp1Z6A4iqI9Om0R4RrFASj/7fVY7r3raNXcIYA=" + }, + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE" + } + } + ] + } + }, + "com.amazonaws.ecs#ExecuteCommandConfiguration": { + "type": "structure", + "members": { + "kmsKeyId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the data between the local client and the container.

" + } + }, + "logging": { + "target": "com.amazonaws.ecs#ExecuteCommandLogging", + "traits": { + "smithy.api#documentation": "

The log setting to use for redirecting logs for your execute command results. The following log settings are available.

  • NONE: The execute command session is not logged.

  • DEFAULT: The awslogs configuration in the task definition is used. If no logging parameter is specified, it defaults to this value. If no awslogs log driver is configured in the task definition, the output won't be logged.

  • OVERRIDE: Specify the logging details as a part of logConfiguration. If the OVERRIDE logging option is specified, the logConfiguration is required.

" + } + }, + "logConfiguration": { + "target": "com.amazonaws.ecs#ExecuteCommandLogConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE is specified, a logConfiguration must be provided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of the execute command configuration.

" + } + }, + "com.amazonaws.ecs#ExecuteCommandLogConfiguration": { + "type": "structure", + "members": { + "cloudWatchLogGroupName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch log group to send logs to.

The CloudWatch log group must already be created.

" + } + }, + "cloudWatchEncryptionEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be off.

" + } + }, + "s3BucketName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket to send logs to.

The S3 bucket must already be created.

" + } + }, + "s3EncryptionEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use encryption on the S3 logs. If not specified, encryption is not used.

" + } + }, + "s3KeyPrefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An optional folder in the S3 bucket to place logs in.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket.

" + } + }, + "com.amazonaws.ecs#ExecuteCommandLogging": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEFAULT" + } + }, + "OVERRIDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OVERRIDE" + } + } + } + }, + "com.amazonaws.ecs#ExecuteCommandRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or short name of the cluster the task is running in. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "container": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container to execute the command on. A container name only needs to be specified for tasks containing multiple containers.

" + } + }, + "command": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The command to run on the container.

", + "smithy.api#required": {} + } + }, + "interactive": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Use this flag to run your command in interactive mode.

", + "smithy.api#required": {} + } + }, + "task": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or ID of the task the container is part of.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ExecuteCommandResponse": { + "type": "structure", + "members": { + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

", + "smithy.api#notProperty": {} + } + }, + "containerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container.

", + "smithy.api#notProperty": {} + } + }, + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

", + "smithy.api#notProperty": {} + } + }, + "interactive": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether the execute command session is running in interactive mode. Amazon ECS only supports initiating interactive sessions, so you must specify true for this value.

", + "smithy.api#notProperty": {} + } + }, + "session": { + "target": "com.amazonaws.ecs#Session", + "traits": { + "smithy.api#documentation": "

The details of the SSM session that was created for this instance of execute-command.

", + "smithy.api#notProperty": {} + } + }, + "taskArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ExpressCpuArchitecture": { + "type": "enum", + "members": { + "X86_64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "X86_64" + } + }, + "ARM64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARM64" + } + } + } + }, + "com.amazonaws.ecs#ExpressGatewayContainer": { + "type": "structure", + "members": { + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest.

For Express services, the image typically contains a web application that listens on the specified container port. The image can be stored in Amazon ECR, Docker Hub, or any other container registry accessible to your execution role.

", + "smithy.api#required": {} + } + }, + "containerPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port number on the container that receives traffic from the load balancer. Default is 80.

" + } + }, + "awsLogsConfiguration": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceAwsLogsConfiguration", + "traits": { + "smithy.api#documentation": "

The log configuration for the container.

" + } + }, + "repositoryCredentials": { + "target": "com.amazonaws.ecs#ExpressGatewayRepositoryCredentials", + "traits": { + "smithy.api#documentation": "

The configuration for repository credentials for private registry authentication.

" + } + }, + "command": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The command that is passed to the container.

" + } + }, + "environment": { + "target": "com.amazonaws.ecs#EnvironmentVariables", + "traits": { + "smithy.api#documentation": "

The environment variables to pass to the container.

" + } + }, + "secrets": { + "target": "com.amazonaws.ecs#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the container.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the configuration for the primary container in an Express service. This container receives traffic from the Application Load Balancer and runs your application code.

The container configuration includes the container image, port mapping, logging settings, environment variables, and secrets. The container image is the only required parameter, with sensible defaults provided for other settings.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayRepositoryCredentials": { + "type": "structure", + "members": { + "credentialsParameter": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The repository credentials for private registry authentication to pass to the container.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayScalingTarget": { + "type": "structure", + "members": { + "minTaskCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum number of tasks to run in the Express service.

" + } + }, + "maxTaskCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of tasks to run in the Express service.

" + } + }, + "autoScalingMetric": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceScalingMetric", + "traits": { + "smithy.api#documentation": "

The metric used for auto-scaling decisions. The default metric used for an Express service is CPUUtilization.

" + } + }, + "autoScalingTargetValue": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The target value for the auto-scaling metric. The default value for an Express service is 60.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the auto-scaling configuration for an Express service. This determines how the service automatically adjusts the number of running tasks based on demand metrics such as CPU utilization, memory utilization, or request count per target.

Auto-scaling helps ensure your application can handle varying levels of traffic while optimizing costs by scaling down during low-demand periods. You can specify the minimum and maximum number of tasks, the scaling metric, and the target value for that metric.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceAwsLogsConfiguration": { + "type": "structure", + "members": { + "logGroup": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch Logs log group to send container logs to.

", + "smithy.api#required": {} + } + }, + "logStreamPrefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The prefix for the CloudWatch Logs log stream names. The default for an Express service is ecs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Amazon CloudWatch Logs configuration for the Express service container.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceConfiguration": { + "type": "structure", + "members": { + "serviceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the task execution role for the service revision.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the task role for the service revision.

" + } + }, + "taskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the task definition used by this service revision. This is present for all Express services and reflects the task definition in use, whether managed by Amazon ECS or provided by the customer.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The CPU allocation for tasks in this service revision.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The memory allocation for tasks in this service revision.

" + } + }, + "cpuArchitecture": { + "target": "com.amazonaws.ecs#ExpressCpuArchitecture", + "traits": { + "smithy.api#documentation": "

The CPU architecture that the task runs on.

Valid values:

  • X86_64 - The x86 64-bit architecture.

  • ARM64 - The 64-bit ARM architecture.

Different service revisions can report different architectures. This value isn't returned when the service uses a customer-provided task definition that doesn't specify a CPU architecture.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for tasks in this service revision.

" + } + }, + "healthCheckPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The health check path for this service revision.

" + } + }, + "primaryContainer": { + "target": "com.amazonaws.ecs#ExpressGatewayContainer", + "traits": { + "smithy.api#documentation": "

The primary container configuration for this service revision.

" + } + }, + "scalingTarget": { + "target": "com.amazonaws.ecs#ExpressGatewayScalingTarget", + "traits": { + "smithy.api#documentation": "

The auto-scaling configuration for this service revision.

" + } + }, + "ingressPaths": { + "target": "com.amazonaws.ecs#IngressPathSummaries", + "traits": { + "smithy.api#documentation": "

The entry point into this service revision.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when this service revision was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a specific configuration revision of an Express service, containing all the settings and parameters for that revision.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceConfiguration" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceInclude": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceIncludeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceInclude" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceNetworkConfiguration": { + "type": "structure", + "members": { + "securityGroups": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups associated with the Express service.

" + } + }, + "subnets": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets associated with the Express service.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The network configuration for an Express service. By default, an Express service utilizes subnets and security groups associated with the default VPC.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceScalingMetric": { + "type": "enum", + "members": { + "AverageCPUUtilization": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVERAGE_CPU" + } + }, + "AverageMemoryUtilization": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVERAGE_MEMORY" + } + }, + "RequestCountPerTarget": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUEST_COUNT_PER_TARGET" + } + } + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceStatus": { + "type": "structure", + "members": { + "statusCode": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceStatusCode", + "traits": { + "smithy.api#documentation": "

The status of the Express service.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the Express service is in the current status.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that defines the status of Express service creation and information about the status of the service.

" + } + }, + "com.amazonaws.ecs#ExpressGatewayServiceStatusCode": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DRAINING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRAINING" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + } + } + }, + "com.amazonaws.ecs#FSxWindowsFileServerAuthorizationConfig": { + "type": "structure", + "members": { + "credentialsParameter": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an Secrets Manager secret or SSM Parameter Store parameter. The ARN refers to the stored credentials.

", + "smithy.api#required": {} + } + }, + "domain": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A fully qualified domain name hosted by an Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon ECS API Reference.

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#FSxWindowsFileServerVolumeConfiguration": { + "type": "structure", + "members": { + "fileSystemId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon FSx for Windows File Server file system ID to use.

", + "smithy.api#required": {} + } + }, + "rootDirectory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.

", + "smithy.api#required": {} + } + }, + "authorizationConfig": { + "target": "com.amazonaws.ecs#FSxWindowsFileServerAuthorizationConfig", + "traits": { + "smithy.api#documentation": "

The authorization configuration details for the Amazon FSx for Windows File Server file system.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task storage.

For more information and the input format, see Amazon FSx for Windows File Server volumes in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#Failure": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the failed resource.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the failure.

" + } + }, + "detail": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The details of the failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A failed resource. For a list of common causes, see API failure reasons in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#Failures": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Failure" + } + }, + "com.amazonaws.ecs#FirelensConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#FirelensConfigurationType", + "traits": { + "smithy.api#documentation": "

The log router to use. The valid values are fluentd or fluentbit.

", + "smithy.api#required": {} + } + }, + "options": { + "target": "com.amazonaws.ecs#FirelensConfigurationOptionsMap", + "traits": { + "smithy.api#documentation": "

The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is \"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}. For more information, see Creating a task definition that uses a FireLens configuration in the Amazon Elastic Container Service Developer Guide.

Tasks hosted on Fargate only support the file configuration file type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom log routing in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#FirelensConfigurationOptionsMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ecs#String" + }, + "value": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#FirelensConfigurationType": { + "type": "enum", + "members": { + "FLUENTD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fluentd" + } + }, + "FLUENTBIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fluentbit" + } + } + } + }, + "com.amazonaws.ecs#Gateway": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the gateway.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A human-readable explanation of the current status. This value is populated when the gateway is in a failure state, such as UPDATE_FAILED.

" + } + }, + "failures": { + "target": "com.amazonaws.ecs#GatewayResourceFailureList", + "traits": { + "smithy.api#documentation": "

The per-resource failure details for asynchronous gateway processes, such as an UpdateGateway operation that couldn't update every load balancer.

" + } + }, + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the gateway uses to manage infrastructure on your behalf.

" + } + }, + "deletionProtection": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether deletion protection is enabled for the gateway.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#DescribeGatewayConfiguration", + "traits": { + "smithy.api#documentation": "

The type-specific configuration for the gateway.

" + } + }, + "accessType": { + "target": "com.amazonaws.ecs#AccessType", + "traits": { + "smithy.api#documentation": "

Specifies whether the gateway is publicly accessible (PUBLIC) or private (PRIVATE). The gateway derives this value from its scheme when you create the gateway, and the value is immutable.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateGatewayTags", + "traits": { + "smithy.api#documentation": "

Specifies whether the gateway propagates its tags to the infrastructure it manages.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata applied to the gateway. Each tag consists of a key and an optional value.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the gateway was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the gateway was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a gateway, including its configuration, status, and the infrastructure settings for its type.

" + } + }, + "com.amazonaws.ecs#GatewayAlbDesyncMitigationMode": { + "type": "enum", + "members": { + "MONITOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers forward requests that are considered ambiguous but allow them to be monitored.

", + "smithy.api#enumValue": "monitor" + } + }, + "DEFENSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers allow through most requests but drop those that pose a significant security risk.

", + "smithy.api#enumValue": "defensive" + } + }, + "STRICTEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers allow through only requests that comply with HTTP/1.1.

", + "smithy.api#enumValue": "strictest" + } + } + }, + "traits": { + "smithy.api#documentation": "

The desync mitigation mode for a gateway's load balancers, which determines how the load balancers handle requests that might pose a security risk.

" + } + }, + "com.amazonaws.ecs#GatewayAlbProtocol": { + "type": "enum", + "members": { + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The listener uses HTTP.

", + "smithy.api#enumValue": "HTTP" + } + }, + "HTTPS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The listener uses HTTPS.

", + "smithy.api#enumValue": "HTTPS" + } + } + }, + "traits": { + "smithy.api#documentation": "

The protocol for a gateway's load balancer listener.

" + } + }, + "com.amazonaws.ecs#GatewayAlbTestTrafficRules": { + "type": "structure", + "members": { + "header": { + "target": "com.amazonaws.ecs#GatewayTestTrafficHeader", + "traits": { + "smithy.api#documentation": "

The header-based rule that identifies test traffic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The rules that route test traffic to services behind a gateway during progressive deployments.

" + } + }, + "com.amazonaws.ecs#GatewayClusterAssociationStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The association is active.

", + "smithy.api#enumValue": "ACTIVE" + } + }, + "DISASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The association is being removed and remains in this state until all gateway routes for the cluster are removed.

", + "smithy.api#enumValue": "DISASSOCIATING" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of an association between a gateway and a cluster.

" + } + }, + "com.amazonaws.ecs#GatewayClusterAssociationStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationStatus" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.ecs#GatewayClusterAssociationSummary": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationStatus", + "traits": { + "smithy.api#documentation": "

The status of the association.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of an association between a gateway and a cluster.

" + } + }, + "com.amazonaws.ecs#GatewayClusterAssociationSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationSummary" + }, + "traits": { + "smithy.api#documentation": "

A list of gateway-cluster association summaries.

" + } + }, + "com.amazonaws.ecs#GatewayConfiguration": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#HostSharedAlbConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for a host-based, shared Application Load Balancer gateway. Each service that uses the gateway is assigned a unique DNS host name.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type-specific configuration for a gateway that you provide when you create it. Exactly one variant is set, and it determines the gateway type.

" + } + }, + "com.amazonaws.ecs#GatewayConnection": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "gatewayRouteArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway route for the connection.

" + } + }, + "portName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the service port that receives gateway-managed ingress traffic.

" + } + }, + "serviceUrl": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The URL that the gateway uses to route ingress traffic to the service.

" + } + }, + "accessType": { + "target": "com.amazonaws.ecs#AccessType", + "traits": { + "smithy.api#documentation": "

The access type of the gateway ingress path.

Valid values:

  • PUBLIC - The ingress path is publicly accessible.

  • PRIVATE - The ingress path is only accessible privately.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayRouteStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway route for the connection.

" + } + }, + "resources": { + "target": "com.amazonaws.ecs#GatewayConnectionResources", + "traits": { + "smithy.api#documentation": "

The gateway-managed infrastructure resources for the connection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A gateway-managed connection for a service revision. A connection represents the association between the service's gateway connector and a specific gateway, along with the infrastructure that the gateway created for it.

" + } + }, + "com.amazonaws.ecs#GatewayConnectionAlbResources": { + "type": "structure", + "members": { + "acmCertificateArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager certificate that is attached to the load balancer listener.

" + } + }, + "loadBalancerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer.

" + } + }, + "loadBalancerSecurityGroupArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security groups that the gateway attaches to the load balancer.

" + } + }, + "listenerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener on the load balancer.

" + } + }, + "listenerRuleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener rule that routes production traffic to the service.

" + } + }, + "testListenerRuleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener rule that routes test traffic to the service during progressive deployments.

" + } + }, + "targetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target group that receives production traffic.

" + } + }, + "alternateTargetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the alternate target group that the gateway uses during progressive deployments.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Application Load Balancer resources that a gateway created and manages for a connection.

" + } + }, + "com.amazonaws.ecs#GatewayConnectionAlbResourcesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayConnectionAlbResources" + }, + "traits": { + "smithy.api#documentation": "

A list of Application Load Balancer resource groups for a gateway connection.

", + "smithy.api#length": { + "max": 1 + } + } + }, + "com.amazonaws.ecs#GatewayConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayConnection" + }, + "traits": { + "smithy.api#documentation": "

A list of gateway-managed connections for a service revision.

", + "smithy.api#length": { + "max": 5 + } + } + }, + "com.amazonaws.ecs#GatewayConnectionResources": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#GatewayConnectionAlbResourcesList", + "traits": { + "smithy.api#documentation": "

The Application Load Balancer resources for a host-based, shared ALB gateway.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The gateway-managed infrastructure resources for a connection, as a union keyed by gateway type.

" + } + }, + "com.amazonaws.ecs#GatewayConnector": { + "type": "structure", + "members": { + "portName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the service port that the gateway routes ingress traffic to.

", + "smithy.api#required": {} + } + }, + "healthCheck": { + "target": "com.amazonaws.ecs#GatewayConnectorHealthCheck", + "traits": { + "smithy.api#documentation": "

The health check that the gateway uses to determine whether the targets for this connector are healthy.

" + } + }, + "filters": { + "target": "com.amazonaws.ecs#GatewayConnectorFilters", + "traits": { + "smithy.api#documentation": "

The filters that control which gateway ingress paths the connector applies to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A gateway connector that attaches an Amazon ECS service to a gateway ingress path. The connector specifies the service port that receives gateway-managed ingress traffic, along with the health check and traffic filters that the gateway applies. A service can have at most one gateway connector.

" + } + }, + "com.amazonaws.ecs#GatewayConnectorFilters": { + "type": "structure", + "members": { + "accessTypes": { + "target": "com.amazonaws.ecs#AccessTypeList", + "traits": { + "smithy.api#documentation": "

The access types of the gateway ingress paths that the connector applies to.

The access type can be one of the following values:

  • PUBLIC - The ingress path is publicly accessible.

  • PRIVATE - The ingress path is only accessible privately.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filters that determine which gateway ingress paths a connector applies to.

" + } + }, + "com.amazonaws.ecs#GatewayConnectorHealthCheck": { + "type": "structure", + "members": { + "healthCheckProtocol": { + "target": "com.amazonaws.ecs#GatewayConnectorHealthCheckProtocol", + "traits": { + "smithy.api#documentation": "

The protocol that the gateway uses to perform health checks.

Valid values:

  • HTTP - Health checks are performed over HTTP.

  • HTTPS - Health checks are performed over HTTPS.

" + } + }, + "healthCheckPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port that the gateway uses to perform health checks on the targets.

" + } + }, + "healthCheckPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The destination path for health check requests.

" + } + }, + "healthCheckTimeoutSeconds": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, during which no response from a target means a failed health check.

" + } + }, + "healthCheckIntervalSeconds": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The approximate amount of time, in seconds, between health checks of an individual target.

" + } + }, + "healthyThresholdCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of consecutive successful health checks that a target must pass before the gateway considers it healthy.

" + } + }, + "unhealthyThresholdCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of consecutive failed health checks that a target must fail before the gateway considers it unhealthy.

" + } + }, + "matcher": { + "target": "com.amazonaws.ecs#GatewayConnectorHealthCheckMatcher", + "traits": { + "smithy.api#documentation": "

The HTTP or gRPC codes that indicate a successful health check response from a target.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The health check configuration that a gateway uses to evaluate the targets associated with a gateway connector.

" + } + }, + "com.amazonaws.ecs#GatewayConnectorHealthCheckMatcher": { + "type": "structure", + "members": { + "httpCode": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The HTTP codes that indicate a successful response from a target.

" + } + }, + "grpcCode": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The gRPC codes that indicate a successful response from a target.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The codes that indicate a successful health check response from a target.

" + } + }, + "com.amazonaws.ecs#GatewayConnectorHealthCheckProtocol": { + "type": "enum", + "members": { + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway performs health checks over HTTP.

", + "smithy.api#enumValue": "HTTP" + } + }, + "HTTPS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway performs health checks over HTTPS.

", + "smithy.api#enumValue": "HTTPS" + } + } + }, + "traits": { + "smithy.api#documentation": "

The protocol that a gateway uses to perform health checks on connector targets.

" + } + }, + "com.amazonaws.ecs#GatewayConnectorList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayConnector" + }, + "traits": { + "smithy.api#documentation": "

A list of gateway connectors. A service can have at most one gateway connector.

", + "smithy.api#length": { + "max": 1 + } + } + }, + "com.amazonaws.ecs#GatewayElbAccessLogConfiguration": { + "type": "structure", + "members": { + "destination": { + "target": "com.amazonaws.ecs#GatewayElbAccessLogDestination", + "traits": { + "smithy.api#documentation": "

The destination where access logs are delivered.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The access log configuration for the load balancers that a gateway manages.

" + } + }, + "com.amazonaws.ecs#GatewayElbAccessLogDestination": { + "type": "union", + "members": { + "s3": { + "target": "com.amazonaws.ecs#GatewayElbAccessLogS3Destination", + "traits": { + "smithy.api#documentation": "

The Amazon S3 destination for access logs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The destination where the access logs for a gateway's load balancers are delivered.

" + } + }, + "com.amazonaws.ecs#GatewayElbAccessLogS3Destination": { + "type": "structure", + "members": { + "bucket": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket where access logs are delivered.

", + "smithy.api#required": {} + } + }, + "prefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The object key prefix for the access logs in the Amazon S3 bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 destination for the access logs of a gateway's load balancers.

" + } + }, + "com.amazonaws.ecs#GatewayElbIpAddressType": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers use IPv4 addresses only.

", + "smithy.api#enumValue": "ipv4" + } + }, + "DUALSTACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers use both IPv4 and IPv6 addresses.

", + "smithy.api#enumValue": "dualstack" + } + }, + "DUALSTACK_WITHOUT_PUBLIC_IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers use IPv6 addresses and private IPv4 addresses, without public IPv4 addresses.

", + "smithy.api#enumValue": "dualstack-without-public-ipv4" + } + } + }, + "traits": { + "smithy.api#documentation": "

The IP address type for the load balancers that a gateway manages.

" + } + }, + "com.amazonaws.ecs#GatewayElbNetworkConfiguration": { + "type": "structure", + "members": { + "inboundSecurityGroup": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of a security group that you provide to control inbound traffic to the load balancers that the gateway manages. When you specify a security group, the gateway doesn't create inbound rules on the security group it manages.

" + } + }, + "subnets": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The subnets for the load balancers that the gateway manages. The default is the subnets in the default VPC.

" + } + }, + "ipAddressType": { + "target": "com.amazonaws.ecs#GatewayElbIpAddressType", + "traits": { + "smithy.api#documentation": "

The IP address type for the load balancers that the gateway manages. The default is dualstack.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The network configuration for the load balancers that a gateway manages.

" + } + }, + "com.amazonaws.ecs#GatewayElbScheme": { + "type": "enum", + "members": { + "INTERNET_FACING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers are internet-facing.

", + "smithy.api#enumValue": "internet-facing" + } + }, + "INTERNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The load balancers are internal.

", + "smithy.api#enumValue": "internal" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether the load balancers that a gateway manages are internet-facing or internal.

" + } + }, + "com.amazonaws.ecs#GatewayInfrastructureResources": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#ElbGatewayResourcesList", + "traits": { + "smithy.api#documentation": "

The Application Load Balancer resource groups for a host-based, shared ALB gateway.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The gateway-managed infrastructure in a DescribeGatewayResources response, as a union keyed by gateway type.

" + } + }, + "com.amazonaws.ecs#GatewayNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified gateway wasn't found. Check that the gateway name or ARN is correct and that the gateway exists in your account and Region.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#GatewayOperationError": { + "type": "structure", + "members": { + "operation": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The IAM-style action identifier of the operation that failed, such as elasticloadbalancing:ModifyLoadBalancerAttributes.

" + } + }, + "code": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The error code returned by the failed operation, passed through from the downstream service, such as AccessDenied.

" + } + }, + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The detailed error message.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single failed operation against a resource that a gateway manages.

" + } + }, + "com.amazonaws.ecs#GatewayOperationErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayOperationError" + }, + "traits": { + "smithy.api#documentation": "

A list of operation errors.

", + "smithy.api#length": { + "max": 5 + } + } + }, + "com.amazonaws.ecs#GatewayResource": { + "type": "resource", + "identifiers": { + "GatewayName": { + "target": "com.amazonaws.ecs#String" + }, + "GatewayId": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#AssociateGatewayWithCluster" + }, + { + "target": "com.amazonaws.ecs#CreateGateway" + }, + { + "target": "com.amazonaws.ecs#DeleteGateway" + }, + { + "target": "com.amazonaws.ecs#DescribeGateway" + }, + { + "target": "com.amazonaws.ecs#DescribeGatewayResources" + }, + { + "target": "com.amazonaws.ecs#DisassociateGatewayFromCluster" + }, + { + "target": "com.amazonaws.ecs#ListGatewayClusterAssociations" + }, + { + "target": "com.amazonaws.ecs#ListGateways" + }, + { + "target": "com.amazonaws.ecs#UpdateGateway" + } + ], + "traits": { + "aws.api#arn": { + "template": "gateway/{GatewayName}/{GatewayId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "gateway", + "relativeDocumentation": "gateway.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents an Application Load Balancer gateway that is managed by Amazon ECS" + } + }, + "com.amazonaws.ecs#GatewayResourceFailure": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource that failed to update, such as a load balancer ARN.

" + } + }, + "errors": { + "target": "com.amazonaws.ecs#GatewayOperationErrorList", + "traits": { + "smithy.api#documentation": "

The errors that were encountered while operating on the resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The failures for a single resource that was touched by an asynchronous gateway process.

" + } + }, + "com.amazonaws.ecs#GatewayResourceFailureList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayResourceFailure" + }, + "traits": { + "smithy.api#documentation": "

A list of resource failures.

", + "smithy.api#length": { + "max": 200 + } + } + }, + "com.amazonaws.ecs#GatewayResources": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "resources": { + "target": "com.amazonaws.ecs#GatewayInfrastructureResources", + "traits": { + "smithy.api#documentation": "

The infrastructure resources that the gateway manages.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

DescribeGatewayResources returns the gateway-managed infrastructure, grouped by gateway type.

" + } + }, + "com.amazonaws.ecs#GatewayRoute": { + "type": "structure", + "members": { + "gatewayRouteArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway route.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service associated with the route.

" + } + }, + "serviceContainerPortName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition container port name that the route targets on the service.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayRouteStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway route.

" + } + }, + "serviceUrl": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The URL for accessing the service, including the https:// scheme.

" + } + }, + "resources": { + "target": "com.amazonaws.ecs#GatewayRouteResources", + "traits": { + "smithy.api#documentation": "

The service-specific infrastructure that the gateway manages for the route, keyed by gateway type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A gateway route, which represents the association between a service and a gateway and the service-specific infrastructure that the gateway manages for the service's revisions.

" + } + }, + "com.amazonaws.ecs#GatewayRouteAlbResources": { + "type": "structure", + "members": { + "acmCertificateArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager certificate.

" + } + }, + "loadBalancerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer.

" + } + }, + "listenerArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener.

" + } + }, + "listenerRuleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener rule for production traffic.

" + } + }, + "testListenerRuleArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the listener rules for test traffic. There is one rule except when a test header configuration is being changed to another.

" + } + }, + "loadBalancerSecurityGroups": { + "target": "com.amazonaws.ecs#GatewayRouteLoadBalancerSecurityGroupList", + "traits": { + "smithy.api#documentation": "

The security groups attached to the load balancer.

" + } + }, + "serviceSecurityGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service security group in which the gateway manages the ingress rule for this route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Application Load Balancer resources that a gateway manages for a route.

" + } + }, + "com.amazonaws.ecs#GatewayRouteAlbResourcesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayRouteAlbResources" + }, + "traits": { + "smithy.api#documentation": "

A list of the Application Load Balancer resources for a gateway route.

" + } + }, + "com.amazonaws.ecs#GatewayRouteLoadBalancerSecurityGroup": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the security group.

" + } + }, + "ruleArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security group rules.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group attached to the load balancer for a gateway route.

" + } + }, + "com.amazonaws.ecs#GatewayRouteLoadBalancerSecurityGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayRouteLoadBalancerSecurityGroup" + }, + "traits": { + "smithy.api#documentation": "

A list of the security groups attached to a gateway route's load balancer.

" + } + }, + "com.amazonaws.ecs#GatewayRouteResource": { + "type": "resource", + "identifiers": { + "GatewayName": { + "target": "com.amazonaws.ecs#String" + }, + "GatewayId": { + "target": "com.amazonaws.ecs#String" + }, + "RouteId": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeGatewayRoute" + }, + { + "target": "com.amazonaws.ecs#ListGatewayRoutes" + } + ], + "traits": { + "aws.api#arn": { + "template": "gateway-route/{GatewayName}/{GatewayId}/{RouteId}" + }, + "aws.iam#conditionKeys": [ + "ecs:gateway", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "gateway-route", + "relativeDocumentation": "gateway-route.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a route that maps traffic to a target on an Amazon ECS gateway" + } + }, + "com.amazonaws.ecs#GatewayRouteResources": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#GatewayRouteAlbResourcesList", + "traits": { + "smithy.api#documentation": "

The Application Load Balancer resources for a host-based, shared ALB gateway.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service-specific infrastructure that a gateway manages for a route, keyed by gateway type.

" + } + }, + "com.amazonaws.ecs#GatewayRouteStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route is active and routing traffic.

", + "smithy.api#enumValue": "ACTIVE" + } + }, + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route is being created.

", + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route couldn't be created.

", + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route is being updated.

", + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route couldn't be updated.

", + "smithy.api#enumValue": "UPDATE_FAILED" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route is being deleted.

", + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway route couldn't be deleted.

", + "smithy.api#enumValue": "DELETE_FAILED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of a gateway route.

" + } + }, + "com.amazonaws.ecs#GatewayRouteStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayRouteStatus" + }, + "traits": { + "smithy.api#length": { + "max": 7 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.ecs#GatewayRouteSummary": { + "type": "structure", + "members": { + "gatewayRouteArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway route.

" + } + }, + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service.

" + } + }, + "serviceContainerPortName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition container port name that the route targets on the service.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayRouteStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a gateway route that is returned by the ListGatewayRoutes operation.

" + } + }, + "com.amazonaws.ecs#GatewayRouteSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayRouteSummary" + }, + "traits": { + "smithy.api#documentation": "

A list of gateway route summaries.

" + } + }, + "com.amazonaws.ecs#GatewayStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway is active and available for use.

", + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

An update to the gateway is in progress.

", + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The update to the gateway completed successfully.

", + "smithy.api#enumValue": "UPDATE_COMPLETE" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The update to the gateway failed. See statusReason for details.

", + "smithy.api#enumValue": "UPDATE_FAILED" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The gateway is deleted.

", + "smithy.api#enumValue": "DELETED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of a gateway.

" + } + }, + "com.amazonaws.ecs#GatewayStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewayStatus" + }, + "traits": { + "smithy.api#length": { + "max": 5 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.ecs#GatewaySummary": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the gateway.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the gateway was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a gateway that is returned by the ListGateways operation.

" + } + }, + "com.amazonaws.ecs#GatewaySummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GatewaySummary" + }, + "traits": { + "smithy.api#documentation": "

A list of gateway summaries.

" + } + }, + "com.amazonaws.ecs#GatewayTestTrafficHeader": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the header to match for test traffic routing.

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The header values to match for test traffic routing.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A header-based rule that identifies test traffic for progressive deployments.

" + } + }, + "com.amazonaws.ecs#GetTaskProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#GetTaskProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#GetTaskProtectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve the protection status of tasks in an Amazon ECS service", + "relativeDocumentation": "API_GetTaskProtection.html", + "resources": { + "required": { + "task": {} + } + } + }, + "smithy.api#documentation": "

Retrieves the protection status of tasks in an Amazon ECS service.

", + "smithy.api#examples": [ + { + "title": "To get the protection status of a task", + "documentation": "In this example, we get the protection status for a single task.", + "input": { + "cluster": "test-task-protection", + "tasks": [ + "b8b1cf532d0e46ba8d44a40d1de16772" + ] + }, + "output": { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772", + "protectionEnabled": true, + "expirationDate": "2022-11-02T06:56:32.553Z" + } + ], + "failures": [] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#GetTaskProtectionRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

", + "smithy.api#required": {} + } + }, + "tasks": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 100 task IDs or full ARN entries.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#GetTaskProtectionResponse": { + "type": "structure", + "members": { + "protectedTasks": { + "target": "com.amazonaws.ecs#ProtectedTasks", + "traits": { + "smithy.api#documentation": "

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is turned on for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#GpuDevice": { + "type": "structure", + "members": { + "gpuId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the GPU. This ID matches the GPU IDs in the gpuIds of the containers that Amazon ECS assigned to the GPU.

" + } + }, + "sharingMode": { + "target": "com.amazonaws.ecs#GpuSharingMode", + "traits": { + "smithy.api#documentation": "

How the GPU is shared between containers.

Valid values:

  • IDLE - No containers are assigned to the GPU, and all of its memory is available.

  • NVIDIA_MPS - One or more containers share the GPU by using NVIDIA Multi-Process Service (MPS).

  • DEDICATED - One container has exclusive use of the GPU.

" + } + }, + "totalMemoryInMiB": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The total amount of GPU memory, in MiB, that the Amazon ECS container agent reported for the GPU. This is the memory that's available to containers, and it can be less than the nominal memory of the GPU.

" + } + }, + "remainingMemoryInMiB": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The amount of GPU memory, in MiB, that's available to allocate to new containers that use the nvidiaMps sharing strategy. Amazon ECS calculates this value from the memory that it allocated to containers on the GPU, not from the memory that the containers use.

" + } + }, + "containerCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of containers that Amazon ECS assigned to the GPU. This value is 0 when the sharing mode is IDLE and 1 when the sharing mode is DEDICATED. Amazon ECS counts the containers that it assigned to the GPU, not the processes that are running on it.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of a GPU on a container instance, including its sharing mode and the memory that's available for new containers.

" + } + }, + "com.amazonaws.ecs#GpuDevices": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#GpuDevice" + } + }, + "com.amazonaws.ecs#GpuIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#GpuSharingMode": { + "type": "enum", + "members": { + "IDLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

No containers are assigned to the GPU, and all of its memory is available.

", + "smithy.api#enumValue": "IDLE" + } + }, + "NVIDIA_MPS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

One or more containers share the GPU by using NVIDIA Multi-Process Service (MPS). While the GPU is in this mode, Amazon ECS assigns it only to containers that use the nvidiaMps sharing strategy.

", + "smithy.api#enumValue": "NVIDIA_MPS" + } + }, + "DEDICATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

One container has exclusive use of the GPU. Amazon ECS assigns GPUs this way to containers that specify value instead of sharingStrategy for the GPU resource type.

", + "smithy.api#enumValue": "DEDICATED" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes how a GPU on a container instance is shared between containers.

" + } + }, + "com.amazonaws.ecs#HealthCheck": { + "type": "structure", + "members": { + "command": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A string array representing the command that the container runs to determine if it is healthy. The string array must start with CMD to run the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in double quotes and brackets.

[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]

You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.

CMD-SHELL, curl -f http://localhost/ || exit 1

An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the docker container create command.

", + "smithy.api#required": {} + } + }, + "interval": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a command.

" + } + }, + "timeout": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a command.

" + } + }, + "retries": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a command.

" + } + }, + "startPeriod": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the startPeriod is off. This value applies only when you specify a command.

If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the HEALTHCHECK parameter of docker run.

The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.

You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.

The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.

Amazon ECS performs health checks on containers with the default that launched the container instance or the task.

The following describes the possible healthStatus values for a container:

  • HEALTHY-The container health check has passed successfully.

  • UNHEALTHY-The container health check has failed.

  • UNKNOWN-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.

The following describes the possible healthStatus values based on the container health checker status of essential containers in the task with the following priority order (high to low):

  • UNHEALTHY-One or more essential containers have failed their health check.

  • UNKNOWN-Any essential container running within the task is in an UNKNOWN state and no other essential containers have an UNHEALTHY state.

  • HEALTHY-All essential containers within the task have passed their health checks.

Consider the following task health example with 2 containers.

  • If Container1 is UNHEALTHY and Container2 is UNKNOWN, the task health is UNHEALTHY.

  • If Container1 is UNHEALTHY and Container2 is HEALTHY, the task health is UNHEALTHY.

  • If Container1 is HEALTHY and Container2 is UNKNOWN, the task health is UNKNOWN.

  • If Container1 is HEALTHY and Container2 is HEALTHY, the task health is HEALTHY.

Consider the following task health example with 3 containers.

  • If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNHEALTHY.

  • If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNHEALTHY.

  • If Container1 is UNHEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is UNHEALTHY.

  • If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNKNOWN.

  • If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNKNOWN.

  • If Container1 is HEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is HEALTHY.

If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.

When a container health check fails for a task that is part of a service, the following process occurs:

  1. The task is marked as UNHEALTHY.

  2. The unhealthy task will be stopped, and during the stopping process, it will go through the following states:

    • DEACTIVATING - In this state, Amazon ECS performs additional steps before stopping the task. For example, for tasks that are part of services configured to use Elastic Load Balancing target groups, target groups will be deregistered in this state.

    • STOPPING - The task is in the process of being stopped.

    • DEPROVISIONING - Resources associated with the task are being cleaned up.

    • STOPPED - The task has been completely stopped.

  3. After the old task stops, a new task will be launched to ensure service operation, and the new task will go through the following lifecycle:

    • PROVISIONING - Resources required for the task are being provisioned.

    • PENDING - The task is waiting to be placed on a container instance.

    • ACTIVATING - In this state, Amazon ECS pulls container images, creates containers, configures task networking, registers load balancer target groups, and configures service discovery status.

    • RUNNING - The task is running and performing its work.

For more detailed information about task lifecycle states, see Task lifecycle in the Amazon Elastic Container Service Developer Guide.

The following are notes about container health check support:

  • If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this won't cause a container to transition to an UNHEALTHY status. This is by design, to ensure that containers remain running during agent restarts or temporary unavailability. The health check status is the \"last heard from\" response from the Amazon ECS agent, so if the container was considered HEALTHY prior to the disconnect, that status will remain until the agent reconnects and another health check occurs. There are no assumptions made about the status of the container health checks.

  • Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.

  • Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.

  • Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.

For an example of how to specify a task definition with multiple containers where container dependency is specified, see Container dependency in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#HealthStatus": { + "type": "enum", + "members": { + "HEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEALTHY" + } + }, + "UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNHEALTHY" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNKNOWN" + } + } + } + }, + "com.amazonaws.ecs#HealthyPercentInteger": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.ecs#HookDetails": { + "type": "document" + }, + "com.amazonaws.ecs#HostEntry": { + "type": "structure", + "members": { + "hostname": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The hostname to use in the /etc/hosts entry.

", + "smithy.api#required": {} + } + }, + "ipAddress": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The IP address to use in the /etc/hosts entry.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Hostnames and IP address entries that are added to the /etc/hosts file of a container via the extraHosts parameter of its ContainerDefinition.

" + } + }, + "com.amazonaws.ecs#HostEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#HostEntry" + } + }, + "com.amazonaws.ecs#HostSharedAlbConfiguration": { + "type": "structure", + "members": { + "networkConfiguration": { + "target": "com.amazonaws.ecs#GatewayElbNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the load balancers that the gateway manages.

" + } + }, + "scheme": { + "target": "com.amazonaws.ecs#GatewayElbScheme", + "traits": { + "smithy.api#documentation": "

Specifies whether the load balancers the gateway manages are internet-facing or internal. The default is internet-facing.

" + } + }, + "webACLArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL to associate with the load balancers that the gateway manages.

" + } + }, + "accessLogs": { + "target": "com.amazonaws.ecs#GatewayElbAccessLogConfiguration", + "traits": { + "smithy.api#documentation": "

The access log configuration for the load balancers that the gateway manages.

" + } + }, + "port": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port that the load balancer listener uses is 443. The gateway supports only HTTPS at port 443.

" + } + }, + "protocol": { + "target": "com.amazonaws.ecs#GatewayAlbProtocol", + "traits": { + "smithy.api#documentation": "

The protocol for the load balancer listener is HTTPS. No other protocol is supported.

" + } + }, + "maxAlbCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of Application Load Balancers that the gateway manages. The default is 10.

" + } + }, + "httpDesync": { + "target": "com.amazonaws.ecs#GatewayAlbDesyncMitigationMode", + "traits": { + "smithy.api#documentation": "

The desync mitigation mode for the load balancers that the gateway manages, which determines how the load balancers handle requests that might pose a security risk. The default is defensive.

" + } + }, + "testTrafficRules": { + "target": "com.amazonaws.ecs#GatewayAlbTestTrafficRules", + "traits": { + "smithy.api#documentation": "

The rules that route test traffic for progressive deployments. During a progressive deployment, requests whose headers match these rules are routed to the new service revision so that it can be validated before production traffic shifts to it.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a gateway that uses shared Application Load Balancers with host-based routing. Where they apply, the field names and values are kept consistent with the Elastic Load Balancing API.

" + } + }, + "com.amazonaws.ecs#HostVolumeProperties": { + "type": "structure", + "members": { + "sourcePath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

When the host parameter is used, specify a sourcePath to declare the path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the host parameter contains a sourcePath file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the sourcePath value doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.

If you're using the Fargate launch type, the sourcePath parameter is not supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on a container instance bind mount host volume.

" + } + }, + "com.amazonaws.ecs#IAMRoleArn": { + "type": "string" + }, + "com.amazonaws.ecs#InferenceAccelerator": { + "type": "structure", + "members": { + "deviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.

", + "smithy.api#required": {} + } + }, + "deviceType": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator type to use.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#deprecated": { + "message": "This feature is no longer available.", + "since": "2023-04-15" + }, + "smithy.api#documentation": "

Details on an Elastic Inference accelerator. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#InferenceAcceleratorOverride": { + "type": "structure", + "members": { + "deviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition.

" + } + }, + "deviceType": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator type to use.

" + } + } + }, + "traits": { + "smithy.api#deprecated": { + "message": "This feature is no longer available.", + "since": "2023-04-15" + }, + "smithy.api#documentation": "

Details on an Elastic Inference accelerator task override. This parameter is used to override the Elastic Inference accelerator specified in the task definition. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#InferenceAcceleratorOverrides": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#InferenceAcceleratorOverride" + }, + "traits": { + "smithy.api#deprecated": { + "message": "This feature is no longer available.", + "since": "2023-04-15" + } + } + }, + "com.amazonaws.ecs#InferenceAccelerators": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#InferenceAccelerator" + }, + "traits": { + "smithy.api#deprecated": { + "message": "This feature is no longer available.", + "since": "2023-04-15" + } + } + }, + "com.amazonaws.ecs#InfrastructureOptimization": { + "type": "structure", + "members": { + "scaleInAfter": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

This parameter defines the number of seconds Amazon ECS Managed Instances waits before optimizing EC2 instances that have become idle or underutilized. A longer delay increases the likelihood of placing new tasks on idle or underutilized instances instances, reducing startup time. A shorter delay helps reduce infrastructure costs by optimizing idle or underutilized instances,instances more quickly.

Valid values are:

  • null - Uses the default optimization behavior.

  • -1 - Disables automatic infrastructure optimization.

  • A value between 0 and 3600 (inclusive) - Specifies the number of seconds to wait before optimizing instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration that controls how Amazon ECS optimizes your infrastructure.

" + } + }, + "com.amazonaws.ecs#IngressPathSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#IngressPathSummary" + } + }, + "com.amazonaws.ecs#IngressPathSummary": { + "type": "structure", + "members": { + "accessType": { + "target": "com.amazonaws.ecs#AccessType", + "traits": { + "smithy.api#documentation": "

The type of access to the endpoint for the Express service.

", + "smithy.api#required": {} + } + }, + "endpoint": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The endpoint for access to the service.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The entry point into an Express service.

" + } + }, + "com.amazonaws.ecs#InstanceGeneration": { + "type": "enum", + "members": { + "CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "current" + } + }, + "PREVIOUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "previous" + } + } + } + }, + "com.amazonaws.ecs#InstanceGenerationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#InstanceGeneration", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#InstanceHealthCheckResult": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#InstanceHealthCheckType", + "traits": { + "smithy.api#documentation": "

The type of container instance health status that was verified.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#InstanceHealthCheckState", + "traits": { + "smithy.api#documentation": "

The container instance health status.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the container instance health status.

" + } + }, + "lastUpdated": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the container instance health status was last updated.

" + } + }, + "lastStatusChange": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the container instance health status last changed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the result of a container instance health status check.

" + } + }, + "com.amazonaws.ecs#InstanceHealthCheckResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#InstanceHealthCheckResult" + } + }, + "com.amazonaws.ecs#InstanceHealthCheckState": { + "type": "enum", + "members": { + "OK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OK" + } + }, + "IMPAIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPAIRED" + } + }, + "INSUFFICIENT_DATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_DATA" + } + }, + "INITIALIZING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INITIALIZING" + } + } + } + }, + "com.amazonaws.ecs#InstanceHealthCheckType": { + "type": "enum", + "members": { + "CONTAINER_RUNTIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINER_RUNTIME" + } + }, + "ACCELERATED_COMPUTE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCELERATED_COMPUTE" + } + }, + "DAEMON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAEMON" + } + }, + "AGENT_CONNECTIVITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AGENT_CONNECTIVITY" + } + } + } + }, + "com.amazonaws.ecs#InstanceLaunchTemplate": { + "type": "structure", + "members": { + "ec2InstanceProfileArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the instance profile that Amazon ECS applies to Amazon ECS Managed Instances. This instance profile must include the necessary permissions for your tasks to access Amazon Web Services services and resources.

For more information, see Amazon ECS instance profile for Managed Instances in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for Amazon ECS Managed Instances. This specifies the subnets and security groups that instances use for network connectivity.

", + "smithy.api#required": {} + } + }, + "storageConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesStorageConfiguration", + "traits": { + "smithy.api#documentation": "

The storage configuration for Amazon ECS Managed Instances. This defines the data volume properties for the instances.

" + } + }, + "localStorageConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesLocalStorageConfiguration", + "traits": { + "smithy.api#documentation": "

The local storage configuration for Amazon ECS Managed Instances. This defines how ECS uses instance store volumes available on the container instance.

" + } + }, + "monitoring": { + "target": "com.amazonaws.ecs#ManagedInstancesMonitoringOptions", + "traits": { + "smithy.api#documentation": "

CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring. By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see Detailed monitoring for Amazon ECS Managed Instances in the Amazon ECS Developer Guide.

" + } + }, + "capacityOptionType": { + "target": "com.amazonaws.ecs#CapacityOptionType", + "traits": { + "smithy.api#documentation": "

The capacity option type. This determines whether Amazon ECS launches On-Demand, Spot or Capacity Reservation Instances for your managed instance capacity provider.

Valid values are:

  • ON_DEMAND - Launches standard On-Demand Instances. On-Demand Instances provide predictable pricing and availability.

  • SPOT - Launches Spot Instances that use spare Amazon EC2 capacity at reduced cost. Spot Instances can be interrupted by Amazon EC2 with a two-minute notification when the capacity is needed back.

  • RESERVED - Launches Instances using Amazon EC2 Capacity Reservations. Capacity Reservations allow you to reserve compute capacity for Amazon EC2 instances in a specific Availability Zone.

The default is On-Demand

For more information about Amazon EC2 capacity options, see Instance purchasing options in the Amazon EC2 User Guide.

" + } + }, + "instanceMetadataTagsPropagation": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether tags are propagated to the instance metadata service (IMDS) for Amazon EC2 instances launched by the Managed Instances capacity provider. When enabled, all tags associated with the instance are available through the instance metadata service. When disabled, tags are not propagated to IMDS.

Disable this setting if your tags contain characters that are not compatible with IMDS, such as /. IMDS requires tag keys to match the pattern [0-9a-zA-Z\\-_+=,.@:]{1,255}.

The default value is true.

For more information, see Work with instance tags in instance metadata in the Amazon EC2 User Guide.

" + } + }, + "instanceRequirements": { + "target": "com.amazonaws.ecs#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

The instance requirements. You can specify:

  • The instance types

  • Instance requirements such as vCPU count, memory, network performance, and accelerator specifications

Amazon ECS automatically selects the instances that match the specified criteria.

" + } + }, + "fipsEnabled": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether to enable FIPS 140-2 validated cryptographic modules on EC2 instances launched by the capacity provider. If true, instances use FIPS-compliant cryptographic algorithms and modules for enhanced security compliance. If false, instances use standard cryptographic implementations.

If not specified, instances are launched with FIPS enabled in Amazon Web Services GovCloud (US) regions and FIPS disabled in other regions.

" + } + }, + "capacityReservations": { + "target": "com.amazonaws.ecs#CapacityReservationRequest", + "traits": { + "smithy.api#documentation": "

Capacity reservation specifications. You can specify:

  • Capacity reservation preference

  • Reservation resource group to be used for targeted capacity reservations

Amazon ECS will launch instances according to the specified criteria.

" + } + }, + "nitroEnclavesEnabled": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether instances that this capacity provider launches have Nitro Sandbox enabled. Enable this setting to run tasks that use the ISOLATED_SANDBOX or CONFIDENTIAL_SANDBOX isolation mode.

When you enable this setting, the capacity provider must include at least one instance type that supports Nitro Sandbox. You can't enable this setting together with local storage (the useLocalStorage setting in localStorageConfiguration).

The default value is false.

For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The launch template configuration for Amazon ECS Managed Instances. This defines how Amazon ECS launches Amazon EC2 instances, including the instance profile for your tasks, network and storage configuration, capacity options, and instance requirements for flexible instance type selection.

" + } + }, + "com.amazonaws.ecs#InstanceLaunchTemplateUpdate": { + "type": "structure", + "members": { + "ec2InstanceProfileArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The updated Amazon Resource Name (ARN) of the instance profile. The new instance profile must have the necessary permissions for your tasks.

For more information, see Amazon ECS instance profile for Managed Instances in the Amazon ECS Developer Guide.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The updated network configuration for Amazon ECS Managed Instances. Changes to subnets and security groups affect new instances launched after the update.

" + } + }, + "storageConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesStorageConfiguration", + "traits": { + "smithy.api#documentation": "

The updated storage configuration for Amazon ECS Managed Instances. Changes to storage settings apply to new instances launched after the update.

" + } + }, + "instanceMetadataTagsPropagation": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether tags are propagated to the instance metadata service (IMDS) for Amazon EC2 instances launched by the Managed Instances capacity provider. When enabled, all tags associated with the instance are available through the instance metadata service. When disabled, tags are not propagated to IMDS.

Disable this setting if your tags contain characters that are not compatible with IMDS, such as /. IMDS requires tag keys to match the pattern [0-9a-zA-Z\\-_+=,.@:]{1,255}.

The default value is true.

For more information, see Work with instance tags in instance metadata in the Amazon EC2 User Guide.

" + } + }, + "localStorageConfiguration": { + "target": "com.amazonaws.ecs#ManagedInstancesLocalStorageConfiguration", + "traits": { + "smithy.api#documentation": "

The updated local storage configuration for Amazon ECS Managed Instances. Changes to local storage settings apply to new instances launched after the update.

" + } + }, + "monitoring": { + "target": "com.amazonaws.ecs#ManagedInstancesMonitoringOptions", + "traits": { + "smithy.api#documentation": "

CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring. By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see Detailed monitoring for Amazon ECS Managed Instances in the Amazon ECS Developer Guide.

" + } + }, + "instanceRequirements": { + "target": "com.amazonaws.ecs#InstanceRequirementsRequest", + "traits": { + "smithy.api#documentation": "

The updated instance requirements for attribute-based instance type selection. Changes to instance requirements affect which instance types Amazon ECS selects for new instances.

" + } + }, + "capacityReservations": { + "target": "com.amazonaws.ecs#CapacityReservationRequest", + "traits": { + "smithy.api#documentation": "

The updated capacity reservations specifications for Amazon ECS Managed Instances. Changes to capacity reservations settings apply to new instances launched after the update.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated launch template configuration for Amazon ECS Managed Instances. You can modify the instance profile, network configuration, storage settings, and instance requirements. Changes apply to new instances launched after the update.

For more information, see Store instance launch parameters in Amazon EC2 launch templates in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ecs#InstanceRequirementsRequest": { + "type": "structure", + "members": { + "vCpuCount": { + "target": "com.amazonaws.ecs#VCpuCountRangeRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of vCPUs for the instance types. Amazon ECS selects instance types that have vCPU counts within this range.

", + "smithy.api#required": {} + } + }, + "memoryMiB": { + "target": "com.amazonaws.ecs#MemoryMiBRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory in mebibytes (MiB) for the instance types. Amazon ECS selects instance types that have memory within this range.

", + "smithy.api#required": {} + } + }, + "cpuManufacturers": { + "target": "com.amazonaws.ecs#CpuManufacturerSet", + "traits": { + "smithy.api#documentation": "

The CPU manufacturers to include or exclude. You can specify intel, amd, or amazon-web-services to control which CPU types are used for your workloads.

", + "smithy.api#xmlName": "CpuManufacturer" + } + }, + "memoryGiBPerVCpu": { + "target": "com.amazonaws.ecs#MemoryGiBPerVCpuRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.

" + } + }, + "excludedInstanceTypes": { + "target": "com.amazonaws.ecs#ExcludedInstanceTypeSet", + "traits": { + "smithy.api#documentation": "

The instance types to exclude from selection. Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.

", + "smithy.api#xmlName": "ExcludedInstanceType" + } + }, + "instanceGenerations": { + "target": "com.amazonaws.ecs#InstanceGenerationSet", + "traits": { + "smithy.api#documentation": "

The instance generations to include. You can specify current to use the latest generation instances, or previous to include previous generation instances for cost optimization.

", + "smithy.api#xmlName": "InstanceGeneration" + } + }, + "spotMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance. This helps control Spot instance costs while maintaining access to capacity.

" + } + }, + "onDemandMaxPricePercentageOverLowestPrice": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

" + } + }, + "bareMetal": { + "target": "com.amazonaws.ecs#BareMetal", + "traits": { + "smithy.api#documentation": "

Indicates whether to include bare metal instance types. Set to included to allow bare metal instances, excluded to exclude them, or required to use only bare metal instances.

" + } + }, + "burstablePerformance": { + "target": "com.amazonaws.ecs#BurstablePerformance", + "traits": { + "smithy.api#documentation": "

Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g). Set to included to allow burstable instances, excluded to exclude them, or required to use only burstable instances.

" + } + }, + "requireHibernateSupport": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the instance types must support hibernation. When set to true, only instance types that support hibernation are selected.

" + } + }, + "networkInterfaceCount": { + "target": "com.amazonaws.ecs#NetworkInterfaceCountRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of network interfaces for the instance types. This is useful for workloads that require multiple network interfaces.

" + } + }, + "localStorage": { + "target": "com.amazonaws.ecs#LocalStorage", + "traits": { + "smithy.api#documentation": "

Indicates whether to include instance types with local storage. Set to included to allow local storage, excluded to exclude it, or required to use only instances with local storage.

" + } + }, + "localStorageTypes": { + "target": "com.amazonaws.ecs#LocalStorageTypeSet", + "traits": { + "smithy.api#documentation": "

The local storage types to include. You can specify hdd for hard disk drives, ssd for solid state drives, or both.

", + "smithy.api#xmlName": "LocalStorageType" + } + }, + "totalLocalStorageGB": { + "target": "com.amazonaws.ecs#TotalLocalStorageGBRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.

" + } + }, + "baselineEbsBandwidthMbps": { + "target": "com.amazonaws.ecs#BaselineEbsBandwidthMbpsRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps). This is important for workloads with high storage I/O requirements.

" + } + }, + "acceleratorTypes": { + "target": "com.amazonaws.ecs#AcceleratorTypeSet", + "traits": { + "smithy.api#documentation": "

The accelerator types to include. You can specify gpu for graphics processing units, fpga for field programmable gate arrays, or inference for machine learning inference accelerators.

", + "smithy.api#xmlName": "AcceleratorType" + } + }, + "acceleratorCount": { + "target": "com.amazonaws.ecs#AcceleratorCountRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of accelerators for the instance types. This is used when you need instances with specific numbers of GPUs or other accelerators.

" + } + }, + "acceleratorManufacturers": { + "target": "com.amazonaws.ecs#AcceleratorManufacturerSet", + "traits": { + "smithy.api#documentation": "

The accelerator manufacturers to include. You can specify nvidia, amd, amazon-web-services, or xilinx depending on your accelerator requirements.

", + "smithy.api#xmlName": "AcceleratorManufacturer" + } + }, + "acceleratorNames": { + "target": "com.amazonaws.ecs#AcceleratorNameSet", + "traits": { + "smithy.api#documentation": "

The specific accelerator names to include. For example, you can specify a100, v100, k80, or other specific accelerator models.

", + "smithy.api#xmlName": "AcceleratorName" + } + }, + "acceleratorTotalMemoryMiB": { + "target": "com.amazonaws.ecs#AcceleratorTotalMemoryMiBRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum total accelerator memory in mebibytes (MiB). This is important for GPU workloads that require specific amounts of video memory.

" + } + }, + "networkBandwidthGbps": { + "target": "com.amazonaws.ecs#NetworkBandwidthGbpsRequest", + "traits": { + "smithy.api#documentation": "

The minimum and maximum network bandwidth in gigabits per second (Gbps). This is crucial for network-intensive workloads that require high throughput.

" + } + }, + "allowedInstanceTypes": { + "target": "com.amazonaws.ecs#AllowedInstanceTypeSet", + "traits": { + "smithy.api#documentation": "

The instance types to include in the selection. When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.

", + "smithy.api#xmlName": "AllowedInstanceType" + } + }, + "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum price for Spot instances as a percentage of the optimal On-Demand price. This provides more precise cost control for Spot instance selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The instance requirements for attribute-based instance type selection. Instead of specifying exact instance types, you define requirements such as vCPU count, memory size, network performance, and accelerator specifications. Amazon ECS automatically selects Amazon EC2 instance types that match these requirements, providing flexibility and helping to mitigate capacity constraints.

" + } + }, + "com.amazonaws.ecs#Integer": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.ecs#IntegerList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#BoxedInteger" + } + }, + "com.amazonaws.ecs#InvalidParameterException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified parameter isn't valid. Review the available parameters for the API request.

For more information about service event errors, see Amazon ECS service event messages.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#IpcMode": { + "type": "enum", + "members": { + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "TASK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "task" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ecs#IsolationMode": { + "type": "enum", + "members": { + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The task shares the underlying Amazon EC2 instance with other tasks. This is the default isolation mode.

", + "smithy.api#enumValue": "SHARED" + } + }, + "ISOLATED_SANDBOX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System. Each task's sandbox is isolated from every other task's sandbox on the same Amazon EC2 instance. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

", + "smithy.api#enumValue": "ISOLATED_SANDBOX" + } + }, + "CONFIDENTIAL_SANDBOX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System, with cryptographic attestation. The host can't access the sandbox's memory or storage. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

", + "smithy.api#enumValue": "CONFIDENTIAL_SANDBOX" + } + } + }, + "traits": { + "smithy.api#documentation": "

The isolation mode determines how a task is isolated from other tasks on the same Amazon EC2 instance.

" + } + }, + "com.amazonaws.ecs#KernelCapabilities": { + "type": "structure", + "members": { + "add": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to CapAdd in the docker container create command and the --cap-add option to docker run.

Tasks launched on Fargate only support adding the SYS_PTRACE kernel capability.

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

" + } + }, + "drop": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to CapDrop in the docker container create command and the --cap-drop option to docker run.

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the capabilities(7) Linux manual page.

The following describes how Docker processes the Linux capabilities specified in the add and drop request parameters. For information about the latest behavior, see Docker Compose: order of cap_drop and cap_add in the Docker Community Forum.

  • When the container is a privleged container, the container capabilities are all of the default Docker capabilities. The capabilities specified in the add request parameter, and the drop request parameter are ignored.

  • When the add request parameter is set to ALL, the container capabilities are all of the default Docker capabilities, excluding those specified in the drop request parameter.

  • When the drop request parameter is set to ALL, the container capabilities are the capabilities specified in the add request parameter.

  • When the add request parameter and the drop request parameter are both empty, the capabilities the container capabilities are all of the default Docker capabilities.

  • The default is to first drop the capabilities specified in the drop request parameter, and then add the capabilities specified in the add request parameter.

" + } + }, + "com.amazonaws.ecs#KeyValuePair": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the key-value pair. For environment variables, this is the name of the environment variable.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The value of the key-value pair. For environment variables, this is the value of the environment variable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A key-value pair object.

" + } + }, + "com.amazonaws.ecs#LaunchType": { + "type": "enum", + "members": { + "EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC2" + } + }, + "FARGATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FARGATE" + } + }, + "EXTERNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL" + } + }, + "MANAGED_INSTANCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED_INSTANCES" + } + } + } + }, + "com.amazonaws.ecs#LimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The limit for the resource was exceeded.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#LinearConfiguration": { + "type": "structure", + "members": { + "stepPercent": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The percentage of production traffic to shift in each step during a linear deployment. Valid values are multiples of 0.1 from 3.0 to 100.0. The default value is 10.0.

" + } + }, + "stepBakeTimeInMinutes": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The amount of time in minutes to wait between each traffic shifting step during a linear deployment. Valid values are 0 to 1440 minutes (24 hours). The default value is 6. This bake time is not applied after reaching 100 percent traffic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for linear deployment strategy that shifts production traffic in equal percentage increments with configurable wait times between each step until 100% of traffic is shifted to the new service revision. This is only valid when you run CreateService or UpdateService with deploymentController set to ECS and a deploymentConfiguration with a strategy set to LINEAR.

" + } + }, + "com.amazonaws.ecs#LinuxParameters": { + "type": "structure", + "members": { + "capabilities": { + "target": "com.amazonaws.ecs#KernelCapabilities", + "traits": { + "smithy.api#documentation": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.

For tasks that use the Fargate launch type, capabilities is supported for all platform versions but the add parameter is only supported if using platform version 1.4.0 or later.

" + } + }, + "devices": { + "target": "com.amazonaws.ecs#DevicesList", + "traits": { + "smithy.api#documentation": "

Any host devices to expose to the container. This parameter maps to Devices in the docker container create command and the --device option to docker run.

If you're using tasks that use the Fargate launch type, the devices parameter isn't supported.

" + } + }, + "initProcessEnabled": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

" + } + }, + "sharedMemorySize": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the --shm-size option to docker run.

If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter is not supported.

" + } + }, + "tmpfs": { + "target": "com.amazonaws.ecs#TmpfsList", + "traits": { + "smithy.api#documentation": "

The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the --tmpfs option to docker run.

" + } + }, + "maxSwap": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the --memory-swap option to docker run where the value would be the sum of the container memory plus the maxSwap value.

If a maxSwap value of 0 is specified, the container will not use swap. Accepted values are 0 or any positive integer. If the maxSwap parameter is omitted, the container will use the swap configuration for the container instance it is running on. A maxSwap value must be set for the swappiness parameter to be used.

If you're using tasks that use the Fargate launch type, the maxSwap parameter isn't supported.

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't supported.

" + } + }, + "swappiness": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

This allows you to tune a container's memory swappiness behavior. A swappiness value of 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between 0 and 100. If the swappiness parameter is not specified, a default value of 60 is used. If a value is not specified for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness option to docker run.

If you're using tasks that use the Fargate launch type, the swappiness parameter isn't supported.

If you're using tasks on Amazon Linux 2023 the swappiness parameter isn't supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

" + } + }, + "com.amazonaws.ecs#ListAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListAccountSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListAccountSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list the account settings for an Amazon ECS resource for a specified principal", + "relativeDocumentation": "API_ListAccountSettings.html" + }, + "smithy.api#documentation": "

Lists the account settings for a specified principal.

", + "smithy.api#examples": [ + { + "title": "To view your effective account settings", + "documentation": "This example displays the effective account settings for your account.", + "input": { + "effectiveSettings": true + }, + "output": { + "settings": [ + { + "name": "containerInstanceLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "taskLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + ] + } + }, + { + "title": "To view the effective account settings for a specific IAM user or IAM role", + "documentation": "This example displays the effective account settings for the specified user or role.", + "input": { + "effectiveSettings": true, + "principalArn": "arn:aws:iam:::user/principalName" + }, + "output": { + "settings": [ + { + "name": "containerInstanceLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "taskLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "settings", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListAccountSettingsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#SettingName", + "traits": { + "smithy.api#documentation": "

The name of the account setting you want to list the settings for.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The value of the account settings to filter results with. You must also specify an account setting name to use this parameter.

" + } + }, + "principalArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the principal, which can be a user, role, or the root user. If this field is omitted, the account settings are listed only for the authenticated user.

In order to use this parameter, you must be the root user, or the principal.

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" + } + }, + "effectiveSettings": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to return the effective settings. If true, the account settings for the root user or the default setting for the principalArn are returned. If false, the account settings for the principalArn are returned if they're set. Otherwise, no account settings are returned.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListAccountSettings request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it's possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum number of account setting results returned by ListAccountSettings in paginated output. When this parameter is used, ListAccountSettings only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListAccountSettings request with the returned nextToken value. This value can be between 1 and 10. If this parameter isn't used, then ListAccountSettings returns up to 10 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListAccountSettingsResponse": { + "type": "structure", + "members": { + "settings": { + "target": "com.amazonaws.ecs#Settings", + "traits": { + "smithy.api#documentation": "

The account settings for the resource.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListAccountSettings request. When the results of a ListAccountSettings request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to lists the attributes for Amazon ECS resources within a specified target type and cluster", + "relativeDocumentation": "API_ListAttributes.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, ListAttributes returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value. You can do this, for example, to see which container instances in a cluster are running a Linux AMI (ecs.os-type=linux).

", + "smithy.api#examples": [ + { + "title": "To list container instances that have a specific attribute", + "documentation": "This example lists attributes for a container instance with the attribute \"stack\" equal to the value \"production\".", + "input": { + "cluster": "MyCluster", + "targetType": "container-instance", + "attributeName": "stack", + "attributeValue": "production" + }, + "output": { + "attributes": [ + { + "name": "stack", + "targetId": "arn:aws:ecs:us-west-2:123456789012:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "attributes", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListAttributesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "targetType": { + "target": "com.amazonaws.ecs#TargetType", + "traits": { + "smithy.api#documentation": "

The type of the target to list attributes with.

", + "smithy.api#required": {} + } + }, + "attributeName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the attribute to filter the results with.

" + } + }, + "attributeValue": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The value of the attribute to filter results with. You must also specify an attribute name to use this parameter.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListAttributes request indicating that more results are available to fulfill the request and further calls are needed. If maxResults was provided, it's possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of cluster results that ListAttributes returned in paginated output. When this parameter is used, ListAttributes only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListAttributes request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListAttributes returns up to 100 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListAttributesResponse": { + "type": "structure", + "members": { + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

A list of attribute objects that meet the criteria of the request.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListAttributes request. When the results of a ListAttributes request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListClusters": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListClustersRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListClustersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of existing clusters", + "relativeDocumentation": "API_ListClusters.html" + }, + "smithy.api#documentation": "

Returns a list of existing clusters.

", + "smithy.api#examples": [ + { + "title": "To list your available clusters", + "documentation": "This example lists all of your available clusters in your default region.", + "output": { + "clusterArns": [ + "arn:aws:ecs:us-east-1::cluster/test", + "arn:aws:ecs:us-east-1::cluster/default" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "clusterArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListClustersSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.ecs#ListClustersRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListClusters request indicating that more results are available to fulfill the request and further calls are needed. If maxResults was provided, it's possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of cluster results that ListClusters returned in paginated output. When this parameter is used, ListClusters only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListClusters request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListClusters returns up to 100 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListClustersResponse": { + "type": "structure", + "members": { + "clusterArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of full Amazon Resource Name (ARN) entries for each cluster that's associated with your account.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListContainerInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListContainerInstancesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListContainerInstancesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of container instances in a specified cluster", + "relativeDocumentation": "API_ListContainerInstances.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To list your available container instances in a cluster", + "documentation": "This example lists all of your available container instances in the specified cluster in your default region.", + "input": { + "cluster": "default" + }, + "output": { + "containerInstanceArns": [ + "arn:aws:ecs:us-east-1::container-instance/default/f6bbb147-5370-4ace-8c73-c7181ded911f", + "arn:aws:ecs:us-east-1::container-instance/default/ffe3d344-77e2-476c-a4d0-bf560ad50acb" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "containerInstanceArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListContainerInstancesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "filter": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

You can filter the results of a ListContainerInstances operation with cluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListContainerInstances request indicating that more results are available to fulfill the request and further calls are needed. If maxResults was provided, it's possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of container instance results that ListContainerInstances returned in paginated output. When this parameter is used, ListContainerInstances only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListContainerInstances request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListContainerInstances returns up to 100 results and a nextToken value if applicable.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ContainerInstanceStatus", + "traits": { + "smithy.api#documentation": "

Filters the container instances by status. For example, if you specify the DRAINING status, the results include only container instances that have been set to DRAINING using UpdateContainerInstancesState. If you don't specify this parameter, the The default is to include container instances set to all states other than INACTIVE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListContainerInstancesResponse": { + "type": "structure", + "members": { + "containerInstanceArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of container instances with full ARN entries for each container instance associated with the specified cluster.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListContainerInstances request. When the results of a ListContainerInstances request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListDaemonDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListDaemonDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListDaemonDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of daemon deployments for a specified daemon", + "resources": { + "required": { + "daemon": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns a list of daemon deployments for a specified daemon. You can filter the results by status or creation time.

", + "smithy.api#examples": [ + { + "title": "To list daemon deployments", + "documentation": "This example lists all successful daemon deployments for the my-monitoring-daemon daemon.", + "input": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "status": [ + "SUCCESSFUL" + ] + }, + "output": { + "daemonDeployments": [ + { + "daemonDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/aB1cD2eF3gH4iJ5k", + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "SUCCESSFUL", + "statusReason": "Deployment completed successfully.", + "targetDaemonRevisionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-revision/my-cluster/my-monitoring-daemon/4980306466373577095", + "createdAt": "2025-03-15T12:00:00.000Z", + "startedAt": "2025-03-15T12:00:05.000Z", + "finishedAt": "2025-03-15T12:15:00.000Z" + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListDaemonDeploymentsRequest": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon to list deployments for.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonDeploymentStatusList", + "traits": { + "smithy.api#documentation": "

An optional filter to narrow the ListDaemonDeployments results by deployment status. If you don't specify a status, all deployments are returned.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#CreatedAt", + "traits": { + "smithy.api#documentation": "

An optional filter to narrow the ListDaemonDeployments results by creation time. If you don't specify a time range, all deployments are returned.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of daemon deployment results that ListDaemonDeployments returned in paginated output. When this parameter is used, ListDaemonDeployments only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListDaemonDeployments request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListDaemonDeployments returns up to 20 results and a nextToken value if applicable.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListDaemonDeployments request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it's possible for the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListDaemonDeploymentsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListDaemonDeployments request. When the results of a ListDaemonDeployments request exceed maxResults, this value can be used to retrieve the next page of results.

", + "smithy.api#notProperty": {} + } + }, + "daemonDeployments": { + "target": "com.amazonaws.ecs#DaemonDeploymentSummaryList", + "traits": { + "smithy.api#documentation": "

The list of daemon deployment summaries.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListDaemonTaskDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListDaemonTaskDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListDaemonTaskDefinitionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of daemon task definitions that are registered to your account" + }, + "smithy.api#documentation": "

Returns a list of daemon task definitions that are registered to your account. You can filter the results by family name, status, or both to find daemon task definitions that match your criteria.

", + "smithy.api#examples": [ + { + "title": "To list daemon task definitions", + "documentation": "This example lists all daemon task definitions in your account that start with the monitoring prefix.", + "input": { + "familyPrefix": "monitoring" + }, + "output": { + "daemonTaskDefinitions": [ + { + "arn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:2", + "registeredAt": "2025-03-20T14:00:00.000Z", + "registeredBy": "arn:aws:iam::123456789012:user/admin", + "status": "ACTIVE" + }, + { + "arn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1", + "registeredAt": "2025-03-15T10:30:00.000Z", + "registeredBy": "arn:aws:iam::123456789012:user/admin", + "status": "ACTIVE" + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListDaemonTaskDefinitionsRequest": { + "type": "structure", + "members": { + "familyPrefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full family name to filter the ListDaemonTaskDefinitions results with. Specifying a familyPrefix limits the listed daemon task definitions to daemon task definition families that start with the familyPrefix string.

" + } + }, + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The exact name of the daemon task definition family to filter results with.

" + } + }, + "revision": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionRevisionFilter", + "traits": { + "smithy.api#documentation": "

The revision filter to apply. Specify LAST_REGISTERED to return only the last registered revision for each daemon task definition family.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionStatusFilter", + "traits": { + "smithy.api#documentation": "

The daemon task definition status to filter the ListDaemonTaskDefinitions results with. By default, only ACTIVE daemon task definitions are listed. If you set this parameter to DELETE_IN_PROGRESS, only daemon task definitions that are in the process of being deleted are listed. If you set this parameter to ALL, all daemon task definitions are listed regardless of status.

" + } + }, + "sort": { + "target": "com.amazonaws.ecs#SortOrder", + "traits": { + "smithy.api#documentation": "

The order to sort the results. Valid values are ASC and DESC. By default (ASC), daemon task definitions are listed in ascending order by family name and revision number.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListDaemonTaskDefinitions request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it's possible for the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of daemon task definition results that ListDaemonTaskDefinitions returned in paginated output. When this parameter is used, ListDaemonTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListDaemonTaskDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListDaemonTaskDefinitions returns up to 100 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListDaemonTaskDefinitionsResponse": { + "type": "structure", + "members": { + "daemonTaskDefinitions": { + "target": "com.amazonaws.ecs#DaemonTaskDefinitionSummaries", + "traits": { + "smithy.api#documentation": "

The list of daemon task definition summaries.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListDaemonTaskDefinitions request. When the results of a ListDaemonTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListDaemons": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListDaemonsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListDaemonsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of daemons that are running in a specified cluster" + }, + "smithy.api#documentation": "

Returns a list of daemons. You can filter the results by cluster or capacity provider.

", + "smithy.api#examples": [ + { + "title": "To list daemons in a cluster", + "documentation": "This example lists all daemons in the specified cluster.", + "input": { + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster" + }, + "output": { + "daemonSummariesList": [ + { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "status": "ACTIVE", + "createdAt": "2025-03-15T12:00:00.000Z", + "updatedAt": "2025-03-20T15:30:00.000Z" + }, + { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-logging-daemon", + "status": "ACTIVE", + "createdAt": "2025-03-16T09:00:00.000Z", + "updatedAt": "2025-03-16T09:00:00.000Z" + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListDaemonsRequest": { + "type": "structure", + "members": { + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster to filter daemons by. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "capacityProviderArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the capacity providers to filter daemons by. Only daemons associated with the specified capacity providers are returned.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of daemon results that ListDaemons returned in paginated output. When this parameter is used, ListDaemons only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListDaemons request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListDaemons returns up to 100 results and a nextToken value if applicable.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListDaemons request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it's possible for the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListDaemonsResponse": { + "type": "structure", + "members": { + "daemonSummariesList": { + "target": "com.amazonaws.ecs#DaemonSummariesList", + "traits": { + "smithy.api#documentation": "

The list of daemon summaries.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListDaemons request. When the results of a ListDaemons request exceed maxResults, this value can be used to retrieve the next page of results.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListGatewayClusterAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListGatewayClusterAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListGatewayClusterAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list the cluster associations for Amazon ECS gateways", + "relativeDocumentation": "API_ListGatewayClusterAssociations.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "ecs:gateway", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + }, + "optional": { + "cluster": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns a list of the associations between gateways and clusters. You can filter the results by gateway, cluster, and status. The results are paginated. We recommend that you use pagination to ensure that the operation returns quickly and successfully.

", + "smithy.api#examples": [ + { + "title": "To list the clusters associated with a gateway", + "documentation": "This example lists the clusters that are associated with the gateway named my-gateway.", + "input": { + "gateway": "my-gateway" + }, + "output": { + "gatewayClusterAssociations": [ + { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "status": "ACTIVE" + }, + { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-staging-cluster", + "status": "ACTIVE" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "gatewayClusterAssociations" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListGatewayClusterAssociationsRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a gateway to filter the results by.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a cluster to filter the results by.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationStatusList", + "traits": { + "smithy.api#documentation": "

The association status to filter the results by.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results that the operation returns in a single page. The default is 100.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a previous paginated request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListGatewayClusterAssociationsResponse": { + "type": "structure", + "members": { + "gatewayClusterAssociations": { + "target": "com.amazonaws.ecs#GatewayClusterAssociationSummaryList", + "traits": { + "smithy.api#documentation": "

The gateway-cluster associations that match the request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future request to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListGatewayRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListGatewayRoutesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListGatewayRoutesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list the routes for an Amazon ECS gateway", + "relativeDocumentation": "API_ListGatewayRoutes.html", + "resources": { + "optional": { + "gateway-route": {}, + "gateway": { + "conditionKeys": [ + "ecs:gateway", + "aws:ResourceTag/${TagKey}" + ] + }, + "cluster": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + }, + "service": { + "conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns a list of gateway routes. A gateway route represents the association between a service and a gateway and the service-specific infrastructure the gateway manages for it. You can filter the results by gateway, cluster, service, container port name, and status. The results are paginated. We recommend that you use pagination to ensure that the operation returns quickly and successfully.

", + "smithy.api#examples": [ + { + "title": "To list the gateway routes for a gateway", + "documentation": "This example lists the gateway routes for the gateway named my-gateway in the cluster named my-cluster.", + "input": { + "gateway": "my-gateway", + "cluster": "my-cluster" + }, + "output": { + "gatewayRoutes": [ + { + "gatewayRouteArn": "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f", + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", + "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/my-cluster/my-web-service", + "serviceContainerPortName": "web", + "status": "ACTIVE" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "gatewayRoutes" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListGatewayRoutesRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a gateway to filter the results by.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a cluster to filter the results by.

" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a service to filter the results by. Because services can span clusters, a service name isn't necessarily unique and can match multiple services.

" + } + }, + "serviceContainerPortName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of a task definition container port to filter the results by.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayRouteStatusList", + "traits": { + "smithy.api#documentation": "

The gateway route status to filter the results by.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results that the operation returns in a single page. The default is 100.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a previous paginated request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListGatewayRoutesResponse": { + "type": "structure", + "members": { + "gatewayRoutes": { + "target": "com.amazonaws.ecs#GatewayRouteSummaryList", + "traits": { + "smithy.api#documentation": "

The gateway routes that match the request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future request to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListGateways": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListGatewaysRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListGatewaysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list Amazon ECS gateways", + "relativeDocumentation": "API_ListGateways.html", + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "ecs:gateway", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Returns a list of gateways in your account. You can filter the results by gateway name and status. The results are paginated. We recommend that you use pagination to ensure that the operation returns quickly and successfully.

", + "smithy.api#examples": [ + { + "title": "To list active gateways", + "documentation": "This example lists the gateways in your account that have a status of ACTIVE.", + "input": { + "status": [ + "ACTIVE" + ] + }, + "output": { + "gateways": [ + { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "name": "my-gateway", + "status": "ACTIVE", + "createdAt": "2026-10-20T12:00:00.000Z" + }, + { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-internal-gateway/0f1e2d3c4b5a69788796a5b4c3d2e1f0", + "name": "my-internal-gateway", + "status": "ACTIVE", + "createdAt": "2026-10-21T09:30:00.000Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "gateways" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListGatewaysRequest": { + "type": "structure", + "members": { + "names": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The gateway names to filter the results by. You can specify up to 10 names.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatusList", + "traits": { + "smithy.api#documentation": "

The gateway statuses to filter the results by.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of gateway results that ListGateways returns in a single page. The default is 100.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a previous paginated ListGateways request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListGatewaysResponse": { + "type": "structure", + "members": { + "gateways": { + "target": "com.amazonaws.ecs#GatewaySummaryList", + "traits": { + "smithy.api#documentation": "

The list of gateways that match the request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListGateways request. When the results of a ListGateways request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListServiceDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListServiceDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListServiceDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of service deployments for a specified service", + "relativeDocumentation": "API_ListServiceDeployments.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

This operation lists all the service deployments that meet the specified filter criteria.

A service deployment happens when you release a software update for the service. You route traffic from the running service revisions to the new service revison and control the number of running tasks.

This API returns the values that you use for the request parameters in DescribeServiceRevisions.

", + "smithy.api#examples": [ + { + "title": "To list service deployments that meet the specified criteria", + "documentation": "This example lists all successful service deployments for the service \"sd-example\" in the cluster \"example\".", + "input": { + "service": "sd-example", + "cluster": "example", + "status": [ + "SUCCESSFUL" + ] + }, + "output": { + "serviceDeployments": [ + { + "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/example/sd-example/NCWGC2ZR-taawPAYrIaU5", + "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/example/sd-example", + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/example", + "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:123456789012:service-revision/example/sd-example/4980306466373577095", + "status": "SUCCESSFUL" + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListServiceDeploymentsRequest": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN or name of the service

", + "smithy.api#required": {} + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The cluster that hosts the service. This can either be the cluster name or ARN. Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. If you don't specify a cluster, default is used.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatusList", + "traits": { + "smithy.api#documentation": "

An optional filter you can use to narrow the results. If you do not specify a status, then all status values are included in the result.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#CreatedAt", + "traits": { + "smithy.api#documentation": "

An optional filter you can use to narrow the results by the service creation date. If you do not specify a value, the result includes all services created before the current time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListServiceDeployments request indicating that more results are available to fulfill the request and further calls are needed. If you provided maxResults, it's possible the number of results is fewer than maxResults.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of service deployment results that ListServiceDeployments returned in paginated output. When this parameter is used, ListServiceDeployments only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServiceDeployments request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListServiceDeployments returns up to 20 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListServiceDeploymentsResponse": { + "type": "structure", + "members": { + "serviceDeployments": { + "target": "com.amazonaws.ecs#ServiceDeploymentsBrief", + "traits": { + "smithy.api#documentation": "

An overview of the service deployment, including the following properties:

  • The ARN of the service deployment.

  • The ARN of the service being deployed.

  • The ARN of the cluster that hosts the service in the service deployment.

  • The time that the service deployment started.

  • The time that the service deployment completed.

  • The service deployment status.

  • Information about why the service deployment is in the current state.

  • The ARN of the service revision that is being deployed.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListServiceDeployments request. When the results of a ListServiceDeployments request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListServices": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListServicesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListServicesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of services that are running in a specified cluster", + "relativeDocumentation": "API_ListServices.html" + }, + "smithy.api#documentation": "

Returns a list of services. You can filter the results by cluster, launch type, and scheduling strategy.

", + "smithy.api#examples": [ + { + "title": "To list the services in a cluster", + "documentation": "This example lists the services running in the default cluster for an account.", + "output": { + "serviceArns": [ + "arn:aws:ecs:us-east-1:012345678910:service/default/my-http-service" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "serviceArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListServicesByNamespace": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListServicesByNamespaceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListServicesByNamespaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:namespace" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of services that are running in a specified AWS Cloud Map Namespace", + "relativeDocumentation": "API_ListServicesByNamespace.html" + }, + "smithy.api#documentation": "

This operation lists all of the services that are associated with a Cloud Map namespace. This list might include services in different clusters. In contrast, ListServices can only list services in one cluster at a time. If you need to filter the list of services in a single cluster by various parameters, use ListServices. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "serviceArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListServicesByNamespaceRequest": { + "type": "structure", + "members": { + "namespace": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace to list the services in.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value that's returned from a ListServicesByNamespace request. It indicates that more results are available to fulfill the request and further calls are needed. If maxResults is returned, it is possible the number of results is less than maxResults.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of service results that ListServicesByNamespace returns in paginated output. When this parameter is used, ListServicesByNamespace only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServicesByNamespace request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListServicesByNamespace returns up to 10 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListServicesByNamespaceResponse": { + "type": "structure", + "members": { + "serviceArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of full ARN entries for each service that's associated with the specified namespace.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListServicesByNamespace request. When the results of a ListServicesByNamespace request exceed maxResults, this value can be used to retrieve the next page of results. When there are no more results to return, this value is null.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListServicesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the ListServices results. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListServices request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it is possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of service results that ListServices returned in paginated output. When this parameter is used, ListServices only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServices request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListServices returns up to 10 results and a nextToken value if applicable.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type to use when filtering the ListServices results.

" + } + }, + "schedulingStrategy": { + "target": "com.amazonaws.ecs#SchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The scheduling strategy to use when filtering the ListServices results.

" + } + }, + "resourceManagementType": { + "target": "com.amazonaws.ecs#ResourceManagementType", + "traits": { + "smithy.api#documentation": "

The resourceManagementType type to use when filtering the ListServices results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListServicesResponse": { + "type": "structure", + "members": { + "serviceArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of full ARN entries for each service that's associated with the specified cluster.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListServices request. When the results of a ListServices request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of tags for the specified resource", + "relativeDocumentation": "API_ListTagsForResource.html", + "resources": { + "optional": { + "cluster": {}, + "task": {}, + "container-instance": {}, + "task-definition": {}, + "service": {}, + "task-set": {}, + "capacity-provider": {} + } + } + }, + "smithy.api#documentation": "

List the tags for an Amazon ECS resource.

", + "smithy.api#examples": [ + { + "title": "To list the tags for a cluster.", + "documentation": "This example lists the tags for the 'dev' cluster.", + "input": { + "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev" + }, + "output": { + "tags": [ + { + "key": "team", + "value": "dev" + } + ] + } + } + ], + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resources are Amazon ECS tasks, services, task definitions, clusters, and container instances.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The tags for the resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitionFamilies": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListTaskDefinitionFamiliesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListTaskDefinitionFamiliesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of task definition families that are registered to your account (which may include task definition families that no longer have any ACTIVE task definitions)", + "relativeDocumentation": "API_ListTaskDefinitionFamilies.html" + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To list your registered task definition families", + "documentation": "This example lists all of your registered task definition families.", + "output": { + "families": [ + "node-js-app", + "web-timer", + "hpcc", + "hpcc-c4-8xlarge" + ] + } + }, + { + "title": "To filter your registered task definition families", + "documentation": "This example lists the task definition revisions that start with \"hpcc\".", + "input": { + "familyPrefix": "hpcc" + }, + "output": { + "families": [ + "hpcc", + "hpcc-c4-8xlarge" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "families", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitionFamiliesRequest": { + "type": "structure", + "members": { + "familyPrefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The familyPrefix is a string that's used to filter the results of ListTaskDefinitionFamilies. If you specify a familyPrefix, only task definition family names that begin with the familyPrefix string are returned.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#TaskDefinitionFamilyStatus", + "traits": { + "smithy.api#documentation": "

The task definition family status to filter the ListTaskDefinitionFamilies results with. By default, both ACTIVE and INACTIVE task definition families are listed. If this parameter is set to ACTIVE, only task definition families that have an ACTIVE task definition revision are returned. If this parameter is set to INACTIVE, only task definition families that do not have any ACTIVE task definition revisions are returned. If you paginate the resulting output, be sure to keep the status value constant in each subsequent request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListTaskDefinitionFamilies request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it is possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of task definition family results that ListTaskDefinitionFamilies returned in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitionFamilies request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListTaskDefinitionFamilies returns up to 100 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitionFamiliesResponse": { + "type": "structure", + "members": { + "families": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of task definition family names that match the ListTaskDefinitionFamilies request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListTaskDefinitionFamilies request. When the results of a ListTaskDefinitionFamilies request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListTaskDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListTaskDefinitionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of task definitions that are registered to your account", + "relativeDocumentation": "API_ListTaskDefinitions.html" + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To list your registered task definitions", + "documentation": "This example lists all of your registered task definitions.", + "output": { + "taskDefinitionArns": [ + "arn:aws:ecs:us-east-1::task-definition/sleep300:2", + "arn:aws:ecs:us-east-1::task-definition/sleep360:1", + "arn:aws:ecs:us-east-1::task-definition/wordpress:3", + "arn:aws:ecs:us-east-1::task-definition/wordpress:4", + "arn:aws:ecs:us-east-1::task-definition/wordpress:5", + "arn:aws:ecs:us-east-1::task-definition/wordpress:6" + ] + } + }, + { + "title": "To list the registered task definitions in a family", + "documentation": "This example lists the task definition revisions of a specified family.", + "input": { + "familyPrefix": "wordpress" + }, + "output": { + "taskDefinitionArns": [ + "arn:aws:ecs:us-east-1::task-definition/wordpress:3", + "arn:aws:ecs:us-east-1::task-definition/wordpress:4", + "arn:aws:ecs:us-east-1::task-definition/wordpress:5", + "arn:aws:ecs:us-east-1::task-definition/wordpress:6" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "taskDefinitionArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitionsRequest": { + "type": "structure", + "members": { + "familyPrefix": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full family name to filter the ListTaskDefinitions results with. Specifying a familyPrefix limits the listed task definitions to task definition revisions that belong to that family.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#TaskDefinitionStatus", + "traits": { + "smithy.api#documentation": "

The task definition status to filter the ListTaskDefinitions results with. By default, only ACTIVE task definitions are listed. By setting this parameter to INACTIVE, you can view task definitions that are INACTIVE as long as an active task or service still references them. If you paginate the resulting output, be sure to keep the status value constant in each subsequent request.

" + } + }, + "sort": { + "target": "com.amazonaws.ecs#SortOrder", + "traits": { + "smithy.api#documentation": "

The order to sort the results in. Valid values are ASC and DESC. By default, (ASC) task definitions are listed lexicographically by family name and in ascending numerical order by revision so that the newest task definitions in a family are listed last. Setting this parameter to DESC reverses the sort order on family name and revision. This is so that the newest task definitions in a family are listed first.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListTaskDefinitions request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it is possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of task definition results that ListTaskDefinitions returned in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListTaskDefinitions returns up to 100 results and a nextToken value if applicable.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListTaskDefinitionsResponse": { + "type": "structure", + "members": { + "taskDefinitionArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions request.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListTaskDefinitions request. When the results of a ListTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#ListTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListTasksRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListTasksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to get a list of tasks for a specified cluster", + "relativeDocumentation": "API_ListTasks.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To list the tasks in a cluster", + "documentation": "This example lists all of the tasks in a cluster.", + "input": { + "cluster": "default" + }, + "output": { + "taskArns": [ + "arn:aws:ecs:us-east-1:012345678910:task/default/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84", + "arn:aws:ecs:us-east-1:012345678910:task/default/6b809ef6-c67e-4467-921f-ee261c15a0a1" + ] + } + }, + { + "title": "To list the tasks on a particular container instance", + "documentation": "This example lists the tasks of a specified container instance. Specifying a ``containerInstance`` value limits the results to tasks that belong to that container instance.", + "input": { + "cluster": "default", + "containerInstance": "f6bbb147-5370-4ace-8c73-c7181ded911f" + }, + "output": { + "taskArns": [ + "arn:aws:ecs:us-east-1:012345678910:task/default/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "taskArns", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.ecs#ListTasksRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the ListTasks results. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "containerInstance": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container instance ID or full ARN of the container instance to use when filtering the ListTasks results. Specifying a containerInstance limits the results to tasks that belong to that container instance.

" + } + }, + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the task definition family to use when filtering the ListTasks results. Specifying a family limits the results to tasks that belong to that family.

" + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value returned from a ListTasks request indicating that more results are available to fulfill the request and further calls will be needed. If maxResults was provided, it's possible the number of results to be fewer than maxResults.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

" + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of task results that ListTasks returned in paginated output. When this parameter is used, ListTasks only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTasks request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListTasks returns up to 100 results and a nextToken value if applicable.

" + } + }, + "startedBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The startedBy value to filter the task results with. Specifying a startedBy value limits the results to tasks that were started with that value.

When you specify startedBy as the filter, it must be the only filter that you use.

" + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the service to use when filtering the ListTasks results. Specifying a serviceName limits the results to tasks that belong to that service.

" + } + }, + "desiredStatus": { + "target": "com.amazonaws.ecs#DesiredStatus", + "traits": { + "smithy.api#documentation": "

The task desired status to use when filtering the ListTasks results. Specifying a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has set the desired status to STOPPED. This can be useful for debugging tasks that aren't starting properly or have died or finished. The default status filter is RUNNING, which shows tasks that Amazon ECS has set the desired status to RUNNING.

Although you can filter results based on a desired status of PENDING, this doesn't return any results. Amazon ECS never sets the desired status of a task to that value (only a task's lastStatus may have a value of PENDING).

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type to use when filtering the ListTasks results.

" + } + }, + "daemonName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the daemon to use when filtering the ListTasks results. Specifying a daemonName limits the results to tasks that belong to that daemon.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListTasksResponse": { + "type": "structure", + "members": { + "taskArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of task ARN entries for the ListTasks request.

", + "smithy.api#notProperty": {} + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The nextToken value to include in a future ListTasks request. When the results of a ListTasks request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#LoadBalancer": { + "type": "structure", + "members": { + "targetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer.

For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

For services using the CODE_DEPLOY deployment controller, you're required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

If your service's task definition uses the awsvpc network mode, you must choose ip as the target type, not instance. Do this when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.

" + } + }, + "loadBalancerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the load balancer to associate with the Amazon ECS service or task set.

If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.

" + } + }, + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container (as it appears in a container definition) to associate with the load balancer.

You need to specify the container name when configuring the target group for an Amazon ECS load balancer.

" + } + }, + "containerPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the hostPort of the port mapping.

" + } + }, + "advancedConfiguration": { + "target": "com.amazonaws.ecs#AdvancedConfiguration", + "traits": { + "smithy.api#documentation": "

The advanced settings for the load balancer used in blue/green deployments. Specify the alternate target group, listener rules, and IAM role required for traffic shifting during blue/green deployments.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The load balancer configuration to use with a service or task set.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#LoadBalancers": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#LoadBalancer" + } + }, + "com.amazonaws.ecs#LocalStorage": { + "type": "enum", + "members": { + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "required" + } + }, + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + } + } + }, + "com.amazonaws.ecs#LocalStorageType": { + "type": "enum", + "members": { + "HDD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hdd" + } + }, + "SSD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ssd" + } + } + } + }, + "com.amazonaws.ecs#LocalStorageTypeSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#LocalStorageType", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ecs#LogConfiguration": { + "type": "structure", + "members": { + "logDriver": { + "target": "com.amazonaws.ecs#LogDriver", + "traits": { + "smithy.api#documentation": "

The log driver to use for the container.

For tasks on Fargate, the supported log drivers are awslogs, splunk, and awsfirelens.

For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs, fluentd, gelf, json-file, journald, syslog, splunk, and awsfirelens.

For tasks on Amazon ECS Managed Instances, the supported log drivers are awslogs, splunk, awsfirelens, and json-file.

For more information about using the awslogs log driver, see Send Amazon ECS logs to CloudWatch in the Amazon Elastic Container Service Developer Guide.

For more information about using the awsfirelens log driver, see Send Amazon ECS logs to an Amazon Web Services service or Amazon Web Services Partner.

If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software.

", + "smithy.api#required": {} + } + }, + "options": { + "target": "com.amazonaws.ecs#LogConfigurationOptionsMap", + "traits": { + "smithy.api#documentation": "

The configuration options to send to the log driver.

The options you can specify depend on the log driver. Some of the options you can specify when you use the awslogs log driver to route logs to Amazon CloudWatch include the following:

awslogs-create-group

Required: No

Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false.

Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group.

awslogs-region

Required: Yes

Specify the Amazon Web Services Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option.

awslogs-group

Required: Yes

Make sure to specify a log group that the awslogs log driver sends its log streams to.

awslogs-stream-prefix

Required: Yes, when using Fargate.Optional when using EC2.

Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id.

If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option.

For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to.

You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console.

awslogs-datetime-format

Required: No

This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages.

One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry.

For more information, see awslogs-datetime-format.

You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options.

Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance.

awslogs-multiline-pattern

Required: No

This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages.

For more information, see awslogs-multiline-pattern.

This option is ignored if awslogs-datetime-format is also configured.

You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options.

Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance.

The following options apply to all supported log drivers.

mode

Required: No

Valid values: non-blocking | blocking

This option defines the delivery mode of log messages from the container to the log driver specified using logDriver. The delivery mode you choose affects application availability when the flow of logs from container is interrupted.

If you use the blocking mode and the flow of logs is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure.

If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver.

You can set a default mode for all containers in a specific Amazon Web Services Region by using the defaultLogDriverMode account setting. If you don't specify the mode option or configure the account setting, Amazon ECS will default to the non-blocking mode. For more information about the account setting, see Default log driver mode in the Amazon Elastic Container Service Developer Guide.

On June 25, 2025, Amazon ECS changed the default log driver mode from blocking to non-blocking to prioritize task availability over logging. To continue using the blocking mode after this change, do one of the following:

  • Set the mode option in your container definition's logConfiguration as blocking.

  • Set the defaultLogDriverMode account setting to blocking.

max-buffer-size

Required: No

Default value: 10m

When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost.

To route logs using the splunk log router, you need to specify a splunk-token and a splunk-url.

When you use the awsfirelens log router to route logs to an Amazon Web Services Service or Amazon Web Services Partner Network destination for log storage and analytics, you can set the log-driver-buffer-limit option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.

Other options you can specify when using awsfirelens to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the Amazon Web Services Region with region and a name for the log stream with delivery_stream.

When you export logs to Amazon Kinesis Data Streams, you can specify an Amazon Web Services Region with region and a data stream name with stream.

When you export logs to Amazon OpenSearch Service, you can specify options like Name, Host (OpenSearch Service endpoint without protocol), Port, Index, Type, Aws_auth, Aws_region, Suppress_Type_Name, and tls. For more information, see Under the hood: FireLens for Amazon ECS Tasks.

When you export logs to Amazon S3, you can specify the bucket using the bucket option. You can also specify region, total_file_size, upload_timeout, and use_put_object as options.

This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

" + } + }, + "secretOptions": { + "target": "com.amazonaws.ecs#SecretList", + "traits": { + "smithy.api#documentation": "

The secrets to pass to the log configuration. For more information, see Specifying sensitive data in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The log configuration for the container. This parameter maps to LogConfig in the docker container create command and the --log-driver option to docker run.

By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition.

Understand the following when specifying a log configuration for your containers.

  • Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon. Additional log drivers may be available in future releases of the Amazon ECS container agent.

    For tasks on Fargate, the supported log drivers are awslogs, splunk, and awsfirelens.

    For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs, fluentd, gelf, json-file, journald,syslog, splunk, and awsfirelens.

    For tasks on Amazon ECS Managed Instances, the supported log drivers are awslogs, splunk, awsfirelens, and json-file.

  • This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

  • For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

  • For tasks that are on Fargate, because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.

" + } + }, + "com.amazonaws.ecs#LogConfigurationOptionsMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ecs#String" + }, + "value": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#LogDriver": { + "type": "enum", + "members": { + "JSON_FILE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "json-file" + } + }, + "SYSLOG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "syslog" + } + }, + "JOURNALD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "journald" + } + }, + "GELF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "gelf" + } + }, + "FLUENTD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fluentd" + } + }, + "AWSLOGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "awslogs" + } + }, + "SPLUNK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "splunk" + } + }, + "AWSFIRELENS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "awsfirelens" + } + } + } + }, + "com.amazonaws.ecs#LogDriverVolumeConfiguration": { + "type": "structure", + "members": { + "driver": { + "target": "com.amazonaws.ecs#LogDriver", + "traits": { + "smithy.api#documentation": "

The log driver whose log files the volume contains. The only supported value is json-file.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a log driver volume in a daemon task definition. The volume contains the log files for each container on the container instance that uses the specified log driver in its logConfiguration. Containers that use a different log driver don't write log files to the volume.

For the json-file log driver, the volume has one directory for each container, named with the container ID. Each directory contains the container's log file, <container-id>-json.log, and any rotated log files. After a container stops and Amazon ECS removes it, Amazon ECS deletes the container's directory. Read the log files before the container is removed.

" + } + }, + "com.amazonaws.ecs#Long": { + "type": "long", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.ecs#ManagedAgent": { + "type": "structure", + "members": { + "lastStartedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the managed agent was last started.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#ManagedAgentName", + "traits": { + "smithy.api#documentation": "

The name of the managed agent. When the execute command feature is turned on, the managed agent name is ExecuteCommandAgent.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for why the managed agent is in the state it is in.

" + } + }, + "lastStatus": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The last known status of the managed agent.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the managed agent status for the container.

" + } + }, + "com.amazonaws.ecs#ManagedAgentName": { + "type": "enum", + "members": { + "ExecuteCommandAgent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ExecuteCommandAgent" + } + } + } + }, + "com.amazonaws.ecs#ManagedAgentStateChange": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container that's associated with the managed agent.

", + "smithy.api#required": {} + } + }, + "managedAgentName": { + "target": "com.amazonaws.ecs#ManagedAgentName", + "traits": { + "smithy.api#documentation": "

The name of the managed agent.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the managed agent.

", + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the status of the managed agent.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a change in state for a managed agent.

" + } + }, + "com.amazonaws.ecs#ManagedAgentStateChanges": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedAgentStateChange" + } + }, + "com.amazonaws.ecs#ManagedAgents": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedAgent" + } + }, + "com.amazonaws.ecs#ManagedApplicationAutoScalingPolicies": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedApplicationAutoScalingPolicy" + } + }, + "com.amazonaws.ecs#ManagedApplicationAutoScalingPolicy": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Application Auto Scaling policy associated with the Express service.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of Application Auto Scaling policy creation.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the Application Auto Scaling policy is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Application Auto Scaling policy was last updated.

", + "smithy.api#required": {} + } + }, + "policyType": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The type of Application Auto Scaling policy associated with the Express service. Valid values are TargetTrackingScaling, StepScaling, and PredictiveScaling.

", + "smithy.api#required": {} + } + }, + "targetValue": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The target value for the auto scaling metric.

", + "smithy.api#required": {} + } + }, + "metric": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The metric used for auto scaling decisions. The available metrics are ECSServiceAverageCPUUtilization, ECSServiceAverageMemoryUtilization, and ALBRequestCOuntPerTarget.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Application Auto Scaling policy created by Amazon ECS when you create an Express service.

" + } + }, + "com.amazonaws.ecs#ManagedAutoScaling": { + "type": "structure", + "members": { + "scalableTarget": { + "target": "com.amazonaws.ecs#ManagedScalableTarget", + "traits": { + "smithy.api#documentation": "

Represents a scalable target.

" + } + }, + "applicationAutoScalingPolicies": { + "target": "com.amazonaws.ecs#ManagedApplicationAutoScalingPolicies", + "traits": { + "smithy.api#documentation": "

The policy used for auto scaling.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The auto scaling configuration created by Amazon ECS for an Express service.

" + } + }, + "com.amazonaws.ecs#ManagedCertificate": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ACM certificate.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the ACM; certificate.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the ACM certificate is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the ACM certificate was last updated

", + "smithy.api#required": {} + } + }, + "domainName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) that is secured with this ACM certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The ACM certificate associated with the HTTPS domain created for the Express service.

" + } + }, + "com.amazonaws.ecs#ManagedDraining": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#ManagedIngressPath": { + "type": "structure", + "members": { + "accessType": { + "target": "com.amazonaws.ecs#AccessType", + "traits": { + "smithy.api#documentation": "

The type of access to the endpoint for the Express service.

", + "smithy.api#required": {} + } + }, + "endpoint": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The endpoint for access to the Express service.

", + "smithy.api#required": {} + } + }, + "loadBalancer": { + "target": "com.amazonaws.ecs#ManagedLoadBalancer", + "traits": { + "smithy.api#documentation": "

The Application Load Balancer associated with the Express service.

" + } + }, + "loadBalancerSecurityGroups": { + "target": "com.amazonaws.ecs#ManagedSecurityGroups", + "traits": { + "smithy.api#documentation": "

The security groups associated with the Application Load Balancer.

" + } + }, + "certificate": { + "target": "com.amazonaws.ecs#ManagedCertificate", + "traits": { + "smithy.api#documentation": "

The ACM certificate for the Express service's domain.

" + } + }, + "listener": { + "target": "com.amazonaws.ecs#ManagedListener", + "traits": { + "smithy.api#documentation": "

The listeners associated with the Application Load Balancer.

" + } + }, + "rule": { + "target": "com.amazonaws.ecs#ManagedListenerRule", + "traits": { + "smithy.api#documentation": "

The listener rules for the Application Load Balancer.

" + } + }, + "targetGroups": { + "target": "com.amazonaws.ecs#ManagedTargetGroups", + "traits": { + "smithy.api#documentation": "

The target groups associated with the Application Load Balancer.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The entry point into the Express service.

" + } + }, + "com.amazonaws.ecs#ManagedIngressPaths": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedIngressPath" + } + }, + "com.amazonaws.ecs#ManagedInstancesLocalStorageConfiguration": { + "type": "structure", + "members": { + "useLocalStorage": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Use instance store volumes for data storage when available. EBS volumes are not provisioned for data storage. If the container instance has multiple instance store volumes, a single data volume is created. Consider defining instance store requirements using the localStorage, localStorageTypes and totalLocalStorageGB properties.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The local storage configuration for Amazon ECS Managed Instances. This defines how ECS uses and configures instance store volumes available on container instance.

" + } + }, + "com.amazonaws.ecs#ManagedInstancesMonitoringOptions": { + "type": "enum", + "members": { + "BASIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BASIC" + } + }, + "DETAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DETAILED" + } + } + } + }, + "com.amazonaws.ecs#ManagedInstancesNetworkConfiguration": { + "type": "structure", + "members": { + "subnets": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of subnet IDs where Amazon ECS can launch Amazon ECS Managed Instances. Instances are distributed across the specified subnets for high availability. All subnets must be in the same VPC.

" + } + }, + "securityGroups": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of security group IDs to apply to Amazon ECS Managed Instances. These security groups control the network traffic allowed to and from the instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The network configuration for Amazon ECS Managed Instances. This specifies the VPC subnets and security groups that instances use for network connectivity. Amazon ECS Managed Instances support multiple network modes including awsvpc (instances receive ENIs for task isolation), host (instances share network namespace with tasks), and none (no external network connectivity), ensuring backward compatibility for migrating workloads from Fargate or Amazon EC2.

" + } + }, + "com.amazonaws.ecs#ManagedInstancesProvider": { + "type": "structure", + "members": { + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the infrastructure role that Amazon ECS assumes to manage instances. This role must include permissions for Amazon EC2 instance lifecycle management, networking, and any additional Amazon Web Services services required for your workloads.

For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.

" + } + }, + "instanceLaunchTemplate": { + "target": "com.amazonaws.ecs#InstanceLaunchTemplate", + "traits": { + "smithy.api#documentation": "

The launch template that defines how Amazon ECS launches Amazon ECS Managed Instances. This includes the instance profile for your tasks, network and storage configuration, and instance requirements that determine which Amazon EC2 instance types can be used.

For more information, see Store instance launch parameters in Amazon EC2 launch templates in the Amazon EC2 User Guide.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateMITags", + "traits": { + "smithy.api#documentation": "

Determines whether tags from the capacity provider are automatically applied to Amazon ECS Managed Instances. This helps with cost allocation and resource management by ensuring consistent tagging across your infrastructure.

" + } + }, + "infrastructureOptimization": { + "target": "com.amazonaws.ecs#InfrastructureOptimization", + "traits": { + "smithy.api#documentation": "

Defines how Amazon ECS Managed Instances optimizes the infrastastructure in your capacity provider. Configure it to turn on or off the infrastructure optimization in your capacity provider, and to control the idle or underutilized EC2 instances optimization delay.

" + } + }, + "autoRepairConfiguration": { + "target": "com.amazonaws.ecs#AutoRepairConfiguration", + "traits": { + "smithy.api#documentation": "

The auto repair configuration for the Amazon ECS Managed Instances capacity provider. Indicates whether Amazon ECS automatically replaces container instances that are detected as unhealthy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a Amazon ECS Managed Instances provider. Amazon ECS uses this configuration to automatically launch, manage, and terminate Amazon EC2 instances on your behalf. Managed instances provide access to the full range of Amazon EC2 instance types and features while offloading infrastructure management to Amazon Web Services.

" + } + }, + "com.amazonaws.ecs#ManagedInstancesStorageConfiguration": { + "type": "structure", + "members": { + "storageSizeGiB": { + "target": "com.amazonaws.ecs#TaskVolumeStorageGiB", + "traits": { + "smithy.api#documentation": "

The size of the data volume.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The storage configuration for Amazon ECS Managed Instances. This defines the data volume configuration for the instances.

" + } + }, + "com.amazonaws.ecs#ManagedListener": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer listener.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the load balancer listener.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Informaion about why the load balancer listener is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when this listener was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The listeners associated with the Express service's Application Load Balancer.

" + } + }, + "com.amazonaws.ecs#ManagedListenerRule": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer listener rule.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the load balancer listener rule.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the load balancer listener rule is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when this listener rule was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The listener rule associated with the Express service's Application Load Balancer.

" + } + }, + "com.amazonaws.ecs#ManagedLoadBalancer": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the load balancer.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the load balancer.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the load balancer is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when this load balancer was most recently updated.

", + "smithy.api#required": {} + } + }, + "scheme": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The scheme of the load balancer. By default, the scheme of the load balancer is internet-facing.

", + "smithy.api#required": {} + } + }, + "subnetIds": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the subnets associated with the load balancer.

" + } + }, + "securityGroupIds": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The IDs of the security groups associated with the load balancer.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Application Load Balancer associated with the Express service.

" + } + }, + "com.amazonaws.ecs#ManagedLogGroup": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Cloudwatch Log Group associated with the Express service.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the Cloudwatch LogGroup.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the Cloudwatch LogGroup is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Cloudwatch LogGroup was last updated

", + "smithy.api#required": {} + } + }, + "logGroupName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the Cloudwatch Log Group associated with the Express service.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Cloudwatch Log Group created by Amazon ECS for an Express service.

" + } + }, + "com.amazonaws.ecs#ManagedLogGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedLogGroup" + } + }, + "com.amazonaws.ecs#ManagedMetricAlarm": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch metric alarm.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the CloudWatch metric alarm.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the CloudWatch metric alarm is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the CloudWatch metric alarm was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudWatch metric alarm associated with the Express service's scaling policy.

" + } + }, + "com.amazonaws.ecs#ManagedMetricAlarms": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedMetricAlarm" + } + }, + "com.amazonaws.ecs#ManagedResourceStatus": { + "type": "enum", + "members": { + "PROVISIONING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROVISIONING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DEPROVISIONING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEPROVISIONING" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.ecs#ManagedScalableTarget": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the scalable target.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the scalable target.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the scalable target is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the target was most recently updated.

", + "smithy.api#required": {} + } + }, + "minCapacity": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The minimum value to scale to in response to a scale-in activity.

", + "smithy.api#required": {} + } + }, + "maxCapacity": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum value to scale to in response to a scale-out activity.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a scalable target.

" + } + }, + "com.amazonaws.ecs#ManagedScaling": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#ManagedScalingStatus", + "traits": { + "smithy.api#documentation": "

Determines whether to use managed scaling for the capacity provider.

" + } + }, + "targetCapacity": { + "target": "com.amazonaws.ecs#ManagedScalingTargetCapacity", + "traits": { + "smithy.api#documentation": "

The target capacity utilization as a percentage for the capacity provider. The specified value must be greater than 0 and less than or equal to 100. For example, if you want the capacity provider to maintain 10% spare capacity, then that means the utilization is 90%, so use a targetCapacity of 90. The default value of 100 percent results in the Amazon EC2 instances in your Auto Scaling group being completely used.

" + } + }, + "minimumScalingStepSize": { + "target": "com.amazonaws.ecs#ManagedScalingStepSize", + "traits": { + "smithy.api#documentation": "

The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in process is not affected by this parameter If this parameter is omitted, the default value of 1 is used.

When additional capacity is required, Amazon ECS will scale up the minimum scaling step size even if the actual demand is less than the minimum scaling step size.

" + } + }, + "maximumScalingStepSize": { + "target": "com.amazonaws.ecs#ManagedScalingStepSize", + "traits": { + "smithy.api#documentation": "

The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this parameter is omitted, the default value of 10000 is used.

" + } + }, + "instanceWarmupPeriod": { + "target": "com.amazonaws.ecs#ManagedScalingInstanceWarmupPeriod", + "traits": { + "smithy.api#documentation": "

The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is off, the user must manage the scaling of the Auto Scaling group.

" + } + }, + "com.amazonaws.ecs#ManagedScalingInstanceWarmupPeriod": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 10000 + } + } + }, + "com.amazonaws.ecs#ManagedScalingStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#ManagedScalingStepSize": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.ecs#ManagedScalingTargetCapacity": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ecs#ManagedSecurityGroup": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the security group.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the security group.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the security group is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the security group was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A security group associated with the Express service.

" + } + }, + "com.amazonaws.ecs#ManagedSecurityGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedSecurityGroup" + } + }, + "com.amazonaws.ecs#ManagedStorageConfiguration": { + "type": "structure", + "members": { + "kmsKeyId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Specify a Key Management Service key ID to encrypt Amazon ECS managed storage.

When you specify a kmsKeyId, Amazon ECS uses the key to encrypt data volumes managed by Amazon ECS that are attached to tasks in the cluster. The following data volumes are managed by Amazon ECS: Amazon EBS. For more information about encryption of Amazon EBS volumes attached to Amazon ECS tasks, see Encrypt data stored in Amazon EBS volumes for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

The key must be a single Region key.

" + } + }, + "fargateEphemeralStorageKmsKeyId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Specify the Key Management Service key ID for Fargate ephemeral storage.

When you specify a fargateEphemeralStorageKmsKeyId, Amazon Web Services Fargate uses the key to encrypt data at rest in ephemeral storage. For more information about Fargate ephemeral storage encryption, see Customer managed keys for Amazon Web Services Fargate ephemeral storage for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

The key must be a single Region key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The managed storage configuration for the cluster.

" + } + }, + "com.amazonaws.ecs#ManagedTargetGroup": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target group.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ManagedResourceStatus", + "traits": { + "smithy.api#documentation": "

The status of the target group.

", + "smithy.api#required": {} + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the target group is in the current status.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the target group was last updated.

", + "smithy.api#required": {} + } + }, + "healthCheckPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The destination for health checks on the targets.

", + "smithy.api#required": {} + } + }, + "healthCheckPort": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The port the load balancer uses when performing health checks on targets.

", + "smithy.api#required": {} + } + }, + "port": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The port on which the targets receive traffic.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The target group associated with the Express service's Application Load Balancer. For more information about load balancer target groups, see CreateTargetGroup in the Elastic Load Balancing API Reference

" + } + }, + "com.amazonaws.ecs#ManagedTargetGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ManagedTargetGroup" + } + }, + "com.amazonaws.ecs#ManagedTerminationProtection": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#MemoryGiBPerVCpuRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The minimum amount of memory per vCPU in GiB. Instance types with a lower memory-to-vCPU ratio are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory per vCPU in GiB. Instance types with a higher memory-to-vCPU ratio are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.

" + } + }, + "com.amazonaws.ecs#MemoryMiBRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum amount of memory in MiB. Instance types with less memory than this value are excluded from selection.

", + "smithy.api#required": {} + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory in MiB. Instance types with more memory than this value are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum amount of memory in mebibytes (MiB) for instance type selection. This ensures that selected instance types have adequate memory for your workloads.

" + } + }, + "com.amazonaws.ecs#MetricConfiguration": { + "type": "structure", + "members": { + "metricNames": { + "target": "com.amazonaws.ecs#MetricNamesList", + "traits": { + "smithy.api#documentation": "

The list of metric names to configure. The supported metric names are CPUUtilization and MemoryUtilization.

", + "smithy.api#required": {} + } + }, + "resolutionSeconds": { + "target": "com.amazonaws.ecs#MetricResolutionSeconds", + "traits": { + "smithy.api#documentation": "

The resolution, in seconds, at which to collect the metrics. The valid values are 20 and 60.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a specific set of metrics to collect for a service.

" + } + }, + "com.amazonaws.ecs#MetricConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#MetricConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 + } + } + }, + "com.amazonaws.ecs#MetricName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.ecs#MetricNamesList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#MetricName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ecs#MetricResolutionSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 20, + "max": 60 + } + } + }, + "com.amazonaws.ecs#MissingVersionException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon ECS can't determine the current version of the Amazon ECS container agent on the container instance and doesn't have enough information to proceed with an update. This could be because the agent running on the container instance is a previous or custom version that doesn't use our version information.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#MonitoringConfiguration": { + "type": "structure", + "members": { + "metricConfigurations": { + "target": "com.amazonaws.ecs#MetricConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of metric configurations for the service monitoring.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The optional monitoring configuration for a service, which defines the resolution for the service-level CPUUtilization and MemoryUtilization Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of 60 seconds.

" + } + }, + "com.amazonaws.ecs#MountPoint": { + "type": "structure", + "members": { + "sourceVolume": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the volume to mount. Must be a volume name referenced in the name parameter of task definition volume.

" + } + }, + "containerPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The path on the container to mount the host volume at.

" + } + }, + "readOnly": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for a volume mount point that's used in a container definition.

" + } + }, + "com.amazonaws.ecs#MountPointList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#MountPoint" + } + }, + "com.amazonaws.ecs#NamespaceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified namespace wasn't found.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#NetworkBandwidthGbpsRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The minimum network bandwidth in Gbps. Instance types with lower network bandwidth are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The maximum network bandwidth in Gbps. Instance types with higher network bandwidth are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum network bandwidth in gigabits per second (Gbps) for instance type selection. This is important for network-intensive workloads.

" + } + }, + "com.amazonaws.ecs#NetworkBinding": { + "type": "structure", + "members": { + "bindIP": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The IP address that the container is bound to on the container instance.

" + } + }, + "containerPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port number on the container that's used with the network binding.

" + } + }, + "hostPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port number on the host that's used with the network binding.

" + } + }, + "protocol": { + "target": "com.amazonaws.ecs#TransportProtocol", + "traits": { + "smithy.api#documentation": "

The protocol used for the network binding.

" + } + }, + "containerPortRange": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host port range.

The following rules apply when you specify a containerPortRange:

  • You must use either the bridge network mode or the awsvpc network mode.

  • This parameter is available for both the EC2 and Fargate launch types.

  • This parameter is available for both the Linux and Windows operating systems.

  • The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ecs-init package

  • You can specify a maximum of 100 port ranges per container.

  • You do not specify a hostPortRange. The value of the hostPortRange is set as follows:

    • For containers in a task with the awsvpc network mode, the hostPortRange is set to the same value as the containerPortRange. This is a static mapping strategy.

    • For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

  • The containerPortRange valid values are between 1 and 65535.

  • A port can only be included in one port mapping per container.

  • You cannot specify overlapping port ranges.

  • The first port in the range must be less than last port in the range.

  • Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    For more information, see Issue #11185 on the Github website.

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

You can call DescribeTasks to view the hostPortRange which are the host ports that are bound to the container ports.

" + } + }, + "hostPortRange": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The port number range on the host that's used with the network binding. This is assigned is assigned by Docker and delivered by the Amazon ECS agent.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on the network bindings between a container and its host container instance. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

" + } + }, + "com.amazonaws.ecs#NetworkBindings": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#NetworkBinding" + } + }, + "com.amazonaws.ecs#NetworkConfiguration": { + "type": "structure", + "members": { + "awsvpcConfiguration": { + "target": "com.amazonaws.ecs#AwsVpcConfiguration", + "traits": { + "smithy.api#documentation": "

The VPC subnets and security groups that are associated with a task.

All specified subnets and security groups must be from the same VPC.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The network configuration for a task or service.

" + } + }, + "com.amazonaws.ecs#NetworkInterface": { + "type": "structure", + "members": { + "attachmentId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The attachment ID for the network interface.

" + } + }, + "privateIpv4Address": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The private IPv4 address for the network interface.

" + } + }, + "ipv6Address": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The private IPv6 address for the network interface.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the elastic network interface for tasks that use the awsvpc network mode.

" + } + }, + "com.amazonaws.ecs#NetworkInterfaceCountRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum number of network interfaces. Instance types that support fewer network interfaces are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of network interfaces. Instance types that support more network interfaces are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of network interfaces for instance type selection. This is useful for workloads that require multiple network interfaces.

" + } + }, + "com.amazonaws.ecs#NetworkInterfaces": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#NetworkInterface" + } + }, + "com.amazonaws.ecs#NetworkMode": { + "type": "enum", + "members": { + "BRIDGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bridge" + } + }, + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "AWSVPC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "awsvpc" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.ecs#NeuronDeviceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#NoUpdateAvailableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

There's no update available for this Amazon ECS container agent. This might be because the agent is already running the latest version or because it's so old that there's no update path to the current version.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#NvidiaMpsAllocation": { + "type": "structure", + "members": { + "memory": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The amount of GPU memory, in MiB, to allocate to the container. Amazon ECS assigns the container a GPU that has at least the specified amount of memory available, and sets the CUDA_MPS_PINNED_DEVICE_MEM_LIMIT environment variable in the container to limit its memory to this amount. The memory must be available on a single GPU. If more than one container in a task uses nvidiaMps, Amazon ECS assigns them the same GPU, which must have enough memory available for all of them.

", + "smithy.api#range": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "maxComputePercent": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum percentage of the GPU's compute capacity that the container can use. Amazon ECS sets the CUDA_MPS_ACTIVE_THREAD_PERCENTAGE environment variable in the container to this value. This value is a limit, not a reservation.

If you don't specify this parameter, Amazon ECS doesn't set CUDA_MPS_ACTIVE_THREAD_PERCENTAGE, and the active thread percentage of the MPS server on the container instance applies. By default, this is 100 percent.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The GPU memory and compute limits for a container that shares a GPU by using NVIDIA Multi-Process Service (MPS). Amazon ECS assigns the container a single GPU that has enough memory available. Other containers that use MPS can share the same GPU.

" + } + }, + "com.amazonaws.ecs#OSFamily": { + "type": "enum", + "members": { + "WINDOWS_SERVER_2019_FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2019_FULL" + } + }, + "WINDOWS_SERVER_2019_CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2019_CORE" + } + }, + "WINDOWS_SERVER_2016_FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2016_FULL" + } + }, + "WINDOWS_SERVER_2004_CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2004_CORE" + } + }, + "WINDOWS_SERVER_2022_CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2022_CORE" + } + }, + "WINDOWS_SERVER_2022_FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2022_FULL" + } + }, + "WINDOWS_SERVER_2025_CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2025_CORE" + } + }, + "WINDOWS_SERVER_2025_FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_2025_FULL" + } + }, + "WINDOWS_SERVER_20H2_CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_SERVER_20H2_CORE" + } + }, + "LINUX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINUX" + } + } + } + }, + "com.amazonaws.ecs#PidMode": { + "type": "enum", + "members": { + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "TASK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "task" + } + } + } + }, + "com.amazonaws.ecs#PlacementConstraint": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#PlacementConstraintType", + "traits": { + "smithy.api#documentation": "

The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict the selection to a group of valid candidates.

" + } + }, + "expression": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is distinctInstance. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing a constraint on task placement. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

If you're using the Fargate launch type, task placement constraints aren't supported.

" + } + }, + "com.amazonaws.ecs#PlacementConstraintType": { + "type": "enum", + "members": { + "DISTINCT_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "distinctInstance" + } + }, + "MEMBER_OF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "memberOf" + } + } + } + }, + "com.amazonaws.ecs#PlacementConstraints": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#PlacementConstraint" + } + }, + "com.amazonaws.ecs#PlacementStrategies": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#PlacementStrategy" + } + }, + "com.amazonaws.ecs#PlacementStrategy": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#PlacementStrategyType", + "traits": { + "smithy.api#documentation": "

The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that's specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory but still enough to run the task.

" + } + }, + "field": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that's applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The task placement strategy for a task or service. For more information, see Task placement strategies in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#PlacementStrategyType": { + "type": "enum", + "members": { + "RANDOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "random" + } + }, + "SPREAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "spread" + } + }, + "BINPACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "binpack" + } + } + } + }, + "com.amazonaws.ecs#PlatformDevice": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID for the GPU or Neuron device on the container instance. For GPUs, the available GPU IDs can also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json file. For Neuron devices, the ID corresponds to the device index (for example, 0 for /dev/neuron0).

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.ecs#PlatformDeviceType", + "traits": { + "smithy.api#documentation": "

The type of device that's available on the container instance. The supported values are GPU and NEURON_DEVICE.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The devices that are available on the container instance. The supported device types are GPUs and Neuron devices.

" + } + }, + "com.amazonaws.ecs#PlatformDeviceType": { + "type": "enum", + "members": { + "GPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GPU" + } + }, + "NEURON_DEVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEURON_DEVICE" + } + } + } + }, + "com.amazonaws.ecs#PlatformDevices": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#PlatformDevice" + } + }, + "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified platform version doesn't satisfy the required capabilities of the task definition.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#PlatformUnknownException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified platform version doesn't exist.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#PortMapping": { + "type": "structure", + "members": { + "containerPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port number on the container that's bound to the user-specified or automatically assigned host port.

If you use containers in a task with the awsvpc or host network mode, specify the exposed ports using containerPort.

If you use containers in a task with the bridge network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see hostPort. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.

" + } + }, + "hostPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port number on the container instance to reserve for your container.

If you specify a containerPortRange, leave this field empty and the value of the hostPort is set as follows:

  • For containers in a task with the awsvpc network mode, the hostPort is set to the same value as the containerPort. This is a static mapping strategy.

  • For containers in a task with the bridge network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

" + } + }, + "protocol": { + "target": "com.amazonaws.ecs#TransportProtocol", + "traits": { + "smithy.api#documentation": "

The protocol that's used for the port mapping. Valid values are tcp and udp (case-sensitive). The default is tcp. Amazon ECS treats any other specified value as tcp. protocol is immutable in a Service Connect service. To update this field, you must delete and redeploy the service.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name that's used for the port mapping. This parameter is the name that you use in the serviceConnectConfiguration and the vpcLatticeConfigurations of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

" + } + }, + "appProtocol": { + "target": "com.amazonaws.ecs#ApplicationProtocol", + "traits": { + "smithy.api#documentation": "

The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.

If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.

appProtocol is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "containerPortRange": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The port number range on the container that's bound to the dynamically mapped host port range.

The following rules apply when you specify a containerPortRange:

  • You must use either the bridge network mode or the awsvpc network mode.

  • This parameter is available for both the EC2 and Fargate launch types.

  • This parameter is available for both the Linux and Windows operating systems.

  • The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ecs-init package

  • You can specify a maximum of 100 port ranges per container.

  • You do not specify a hostPortRange. The value of the hostPortRange is set as follows:

    • For containers in a task with the awsvpc network mode, the hostPortRange is set to the same value as the containerPortRange. This is a static mapping strategy.

    • For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

  • The containerPortRange valid values are between 1 and 65535.

  • A port can only be included in one port mapping per container.

  • You cannot specify overlapping port ranges.

  • The first port in the range must be less than last port in the range.

  • Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    For more information, see Issue #11185 on the Github website.

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

You can call DescribeTasks to view the hostPortRange which are the host ports that are bound to the container ports.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition.

If you use containers in a task with the awsvpc or host network mode, specify the exposed ports using containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

Most fields of this parameter (containerPort, hostPort, protocol) maps to PortBindings in the docker container create command and the --publish option to docker run. If the network mode of a task definition is set to host, host ports must either be undefined or match the container port in the port mapping.

You can't expose the same container port for multiple protocols. If you attempt this, an error is returned.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

" + } + }, + "com.amazonaws.ecs#PortMappingList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#PortMapping" + } + }, + "com.amazonaws.ecs#PortNumber": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 65535 + } + } + }, + "com.amazonaws.ecs#PropagateGatewayTags": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Tags aren't propagated to managed infrastructure.

", + "smithy.api#enumValue": "NONE" + } + }, + "GATEWAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Tags on the gateway are propagated to the infrastructure that the gateway manages.

", + "smithy.api#enumValue": "GATEWAY" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether the tags on a gateway are propagated to the infrastructure that the gateway manages.

" + } + }, + "com.amazonaws.ecs#PropagateMITags": { + "type": "enum", + "members": { + "CAPACITY_PROVIDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAPACITY_PROVIDER" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.ecs#PropagateTags": { + "type": "enum", + "members": { + "TASK_DEFINITION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TASK_DEFINITION" + } + }, + "SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.ecs#ProtectedTask": { + "type": "structure", + "members": { + "taskArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task ARN.

" + } + }, + "protectionEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

The protection status of the task. If scale-in protection is on for a task, the value is true. Otherwise, it is false.

" + } + }, + "expirationDate": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The epoch time when protection for the task will expire.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the protection status details for a task. You can set the protection status with the UpdateTaskProtection API and get the status of tasks with the GetTaskProtection API.

" + } + }, + "com.amazonaws.ecs#ProtectedTasks": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ProtectedTask" + } + }, + "com.amazonaws.ecs#ProxyConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#ProxyConfigurationType", + "traits": { + "smithy.api#documentation": "

The proxy type. The only supported value is APPMESH.

" + } + }, + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container that will serve as the App Mesh proxy.

", + "smithy.api#required": {} + } + }, + "properties": { + "target": "com.amazonaws.ecs#ProxyConfigurationProperties", + "traits": { + "smithy.api#documentation": "

The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.

  • IgnoredUID - (Required) The user ID (UID) of the proxy container as defined by the user parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If IgnoredGID is specified, this field can be empty.

  • IgnoredGID - (Required) The group ID (GID) of the proxy container as defined by the user parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If IgnoredUID is specified, this field can be empty.

  • AppPorts - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.

  • ProxyIngressPort - (Required) Specifies the port that incoming traffic to the AppPorts is directed to.

  • ProxyEgressPort - (Required) Specifies the port that outgoing traffic from the AppPorts is directed to.

  • EgressIgnoredPorts - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ProxyEgressPort. It can be an empty list.

  • EgressIgnoredIPs - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ProxyEgressPort. It can be an empty list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

For tasks that use the EC2 launch type, the container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ecs-init package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI

" + } + }, + "com.amazonaws.ecs#ProxyConfigurationProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#KeyValuePair" + } + }, + "com.amazonaws.ecs#ProxyConfigurationType": { + "type": "enum", + "members": { + "APPMESH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APPMESH" + } + } + } + }, + "com.amazonaws.ecs#PutAccountSetting": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#PutAccountSettingRequest" + }, + "output": { + "target": "com.amazonaws.ecs#PutAccountSettingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:account-setting" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are enabled for new resources that are created. Enabling this setting is required to use new Amazon ECS features such as resource tagging", + "relativeDocumentation": "API_PutAccountSetting.html" + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To modify your account settings", + "documentation": "This example modifies your account settings to opt in to the new ARN and resource ID format for Amazon ECS services. If you’re using this command as the root user, then changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.", + "input": { + "name": "serviceLongArnFormat", + "value": "enabled" + }, + "output": { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + } + }, + { + "title": "To modify the account settings for a specific IAM user or IAM role", + "documentation": "This example modifies the account setting for a specific IAM user or IAM role to opt in to the new ARN and resource ID format for Amazon ECS container instances. If you’re using this command as the root user, then changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.", + "input": { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + "output": { + "setting": { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + } + } + } + ] + } + }, + "com.amazonaws.ecs#PutAccountSettingDefault": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#PutAccountSettingDefaultRequest" + }, + "output": { + "target": "com.amazonaws.ecs#PutAccountSettingDefaultResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:account-setting" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the ARN and resource ID format of a resource type for all IAM users on an account for which no individual account setting has been set. Enabling this setting is required to use new Amazon ECS features such as resource tagging", + "relativeDocumentation": "API_PutAccountSettingDefault.html" + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To modify the default account settings for all IAM users or roles on an account", + "documentation": "This example modifies the default account setting for the specified resource for all IAM users or roles on an account. These changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.", + "input": { + "name": "serviceLongArnFormat", + "value": "enabled" + }, + "output": { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::root" + } + } + } + ] + } + }, + "com.amazonaws.ecs#PutAccountSettingDefaultRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#SettingName", + "traits": { + "smithy.api#documentation": "

The resource name for which to modify the account setting.

The following are the valid values for the account setting name.

  • serviceLongArnFormat - When modified, 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.

  • taskLongArnFormat - When modified, 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.

  • containerInstanceLongArnFormat - When modified, 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.

  • awsvpcTrunking - When modified, 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.

  • containerInsights - Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up.

    To use Container Insights with enhanced observability, set the containerInsights account setting to enhanced.

    To use Container Insights, set the containerInsights account setting to enabled.

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

  • dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks using the awsvpc network mode can have an IPv6 address assigned. For more information on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks launched on Fargate, see Using a VPC in dual-stack mode.

  • fargateFIPSMode - If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected.

  • fargateTaskRetirementWaitPeriod - 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.

  • fargateEventWindows - 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 fargateEventWindows to use EC2 Event Windows associated with Fargate tasks to configure time windows for task retirement.

  • tagResourceAuthorization - 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.

  • defaultLogDriverMode -Amazon ECS supports setting a default delivery mode of log messages from a container to the logDriver that you specify in the container's logConfiguration. The delivery mode affects application stability when the flow of logs from the container to the log driver is interrupted. The defaultLogDriverMode setting supports two values: blocking and non-blocking. If you don't specify a delivery mode in your container definition's logConfiguration, the mode you specify using this account setting will be used as the default. For more information about log delivery modes, see LogConfiguration.

    On June 25, 2025, Amazon ECS changed the default log driver mode from blocking to non-blocking to prioritize task availability over logging. To continue using the blocking mode after this change, do one of the following:

    • Set the mode option in your container definition's logConfiguration as blocking.

    • Set the defaultLogDriverMode account setting to blocking.

  • guardDutyActivate - 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.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, on, enhanced, and off.

When you specify fargateTaskRetirementWaitPeriod for the name, the following are the valid values:

  • 0 - Amazon Web Services sends the notification, and immediately retires the affected tasks.

  • 7 - Amazon Web Services sends the notification, and waits 7 calendar days to retire the tasks.

  • 14 - Amazon Web Services sends the notification, and waits 14 calendar days to retire the tasks.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#PutAccountSettingDefaultResponse": { + "type": "structure", + "members": { + "setting": { + "target": "com.amazonaws.ecs#Setting", + "traits": { + "smithy.api#documentation": "

The current setting for a resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#PutAccountSettingRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#SettingName", + "traits": { + "smithy.api#documentation": "

The Amazon ECS account setting name to modify.

The following are the valid values for the account setting name.

  • serviceLongArnFormat - When modified, 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.

  • taskLongArnFormat - When modified, 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.

  • containerInstanceLongArnFormat - When modified, 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.

  • awsvpcTrunking - When modified, 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.

  • containerInsights - Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up.

    To use Container Insights with enhanced observability, set the containerInsights account setting to enhanced.

    To use Container Insights, set the containerInsights account setting to enabled.

    For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

  • dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your tasks using the awsvpc network mode can have an IPv6 address assigned. For more information on using IPv6 with tasks launched on Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 with tasks launched on Fargate, see Using a VPC in dual-stack mode.

  • fargateTaskRetirementWaitPeriod - 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.

  • fargateEventWindows - 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 fargateEventWindows to use EC2 Event Windows associated with Fargate tasks to configure time windows for task retirement.

  • tagResourceAuthorization - 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.

  • defaultLogDriverMode - Amazon ECS supports setting a default delivery mode of log messages from a container to the logDriver that you specify in the container's logConfiguration. The delivery mode affects application stability when the flow of logs from the container to the log driver is interrupted. The defaultLogDriverMode setting supports two values: blocking and non-blocking. If you don't specify a delivery mode in your container definition's logConfiguration, the mode you specify using this account setting will be used as the default. For more information about log delivery modes, see LogConfiguration.

    On June 25, 2025, Amazon ECS changed the default log driver mode from blocking to non-blocking to prioritize task availability over logging. To continue using the blocking mode after this change, do one of the following:

    • Set the mode option in your container definition's logConfiguration as blocking.

    • Set the defaultLogDriverMode account setting to blocking.

  • guardDutyActivate - 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.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The account setting value for the specified principal ARN. Accepted values are enabled, disabled, enhanced, on, and off.

When you specify fargateTaskRetirementWaitPeriod for the name, the following are the valid values:

  • 0 - Amazon Web Services sends the notification, and immediately retires the affected tasks.

  • 7 - Amazon Web Services sends the notification, and waits 7 calendar days to retire the tasks.

  • 14 - Amazon Web Services sends the notification, and waits 14 calendar days to retire the tasks.

", + "smithy.api#required": {} + } + }, + "principalArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the principal, which can be a user, role, or the root user. If you specify the root user, it modifies the account setting for all users, roles, and the root user of the account unless a user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

In order to use this parameter, you must be the root user, or the principal.

You must use the root user when you set the Fargate wait time (fargateTaskRetirementWaitPeriod).

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#PutAccountSettingResponse": { + "type": "structure", + "members": { + "setting": { + "target": "com.amazonaws.ecs#Setting", + "traits": { + "smithy.api#documentation": "

The current account setting for a resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#PutAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#PutAttributesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#PutAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#AttributeLimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#TargetNotFoundException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to create or update an attribute on an Amazon ECS resource", + "relativeDocumentation": "API_PutAttributes.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

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.

", + "smithy.api#examples": [ + { + "title": "To create or update an attribute on a resource", + "documentation": "This example adds an attribute \"stack\" with the value \"production\" to a container instance.", + "input": { + "cluster": "MyCluster", + "attributes": [ + { + "targetId": "arn:aws:ecs:us-west-2:123456789012:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "name": "stack", + "value": "production" + } + ] + }, + "output": { + "attributes": [ + { + "name": "stack", + "targetId": "arn:aws:ecs:us-west-2:123456789012:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "value": "production" + } + ] + } + } + ] + } + }, + "com.amazonaws.ecs#PutAttributesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The attributes to apply to your resource. You can specify up to 10 custom attributes for each resource. You can specify up to 10 attributes in a single call.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#PutAttributesResponse": { + "type": "structure", + "members": { + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The attributes applied to your resource.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#PutClusterCapacityProviders": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#PutClusterCapacityProvidersRequest" + }, + "output": { + "target": "com.amazonaws.ecs#PutClusterCapacityProvidersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceInUseException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:capacity-provider" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the available capacity providers and the default capacity provider strategy for a cluster", + "relativeDocumentation": "API_PutClusterCapacityProviders.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

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.

Amazon ECS Managed Instances doesn't support this, because when you create a capacity provider with Amazon ECS Managed Instances, it becomes available only within the specified cluster.

", + "smithy.api#examples": [ + { + "title": "To add an existing capacity provider to a cluuster", + "documentation": "This example adds an existing capacity provider \"MyCapacityProvider2\" to a cluster that already has the capacity provider \"MyCapacityProvider1\" associated with it. Both \"MyCapacityProvider2\" and \"MyCapacityProvider1\" need to be specified. ", + "input": { + "cluster": "MyCluster", + "capacityProviders": [ + "MyCapacityProvider1", + "MyCapacityProvider2" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1 + }, + { + "capacityProvider": "MyCapacityProvider2", + "weight": 1 + } + ] + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "MyCapacityProvider1", + "MyCapacityProvider2" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + }, + { + "capacityProvider": "MyCapacityProvider2", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + }, + { + "title": "To remove a capacity provider from a cluster", + "documentation": "This example removes a capacity provider \"MyCapacityProvider2\" from a cluster that has both \"MyCapacityProvider2\" and \"MyCapacityProvider1\" associated with it. Only \"MyCapacityProvider1\" needs to be specified in this scenario. ", + "input": { + "cluster": "MyCluster", + "capacityProviders": [ + "MyCapacityProvider1" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + } + ] + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [ + "MyCapacityProvider1" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "MyCapacityProvider1", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "ACTIVE", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + }, + { + "title": "To remove all capacity providers from a cluster", + "documentation": "This example removes all capacity providers associated with a cluster. ", + "input": { + "cluster": "MyCluster", + "capacityProviders": [], + "defaultCapacityProviderStrategy": [] + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "MyCluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ], + "capacityProviders": [], + "defaultCapacityProviderStrategy": [], + "attachments": [ + { + "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider1" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" + } + ] + }, + { + "id": "ae592060-2382-4663-9476-b015c685593c", + "type": "as_policy", + "status": "DELETING", + "details": [ + { + "name": "capacityProviderName", + "value": "MyCapacityProvider2" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" + } + ] + } + ], + "attachmentsStatus": "UPDATE_IN_PROGRESS" + } + } + } + ] + } + }, + "com.amazonaws.ecs#PutClusterCapacityProvidersRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider settings for. If you don't specify a cluster, the default cluster is assumed.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "capacityProviders": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The name of one or more capacity providers to associate with the cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

", + "smithy.api#required": {} + } + }, + "defaultCapacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy to use by default for the cluster.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#PutClusterCapacityProvidersResponse": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#Cluster", + "traits": { + "smithy.api#documentation": "

Details about the cluster.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#RegisterContainerInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#RegisterContainerInstanceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#RegisterContainerInstanceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:RequestTag/${TagKey}" + ], + "aws.iam#iamAction": { + "createsResources": [ + "container-instance" + ], + "documentation": "Grants permission to register an EC2 instance into the specified cluster", + "relativeDocumentation": "API_RegisterContainerInstance.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

" + } + }, + "com.amazonaws.ecs#RegisterContainerInstanceRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance with. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "instanceIdentityDocument": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The instance identity document for the EC2 instance to register. This document can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/

" + } + }, + "instanceIdentityDocumentSignature": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The instance identity document signature for the EC2 instance to register. This signature can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/signature/

" + } + }, + "totalResources": { + "target": "com.amazonaws.ecs#Resources", + "traits": { + "smithy.api#documentation": "

The resources available on the instance.

" + } + }, + "versionInfo": { + "target": "com.amazonaws.ecs#VersionInfo", + "traits": { + "smithy.api#documentation": "

The version information for the Amazon ECS container agent and Docker daemon that runs on the container instance.

" + } + }, + "containerInstanceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the container instance (if it was previously registered).

" + } + }, + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The container instance attributes that this container instance supports.

" + } + }, + "platformDevices": { + "target": "com.amazonaws.ecs#PlatformDevices", + "traits": { + "smithy.api#documentation": "

The devices that are available on the container instance. The supported device types are GPUs and Neuron devices.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the container instance to help you categorize and organize them. 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.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#RegisterContainerInstanceResponse": { + "type": "structure", + "members": { + "containerInstance": { + "target": "com.amazonaws.ecs#ContainerInstance", + "traits": { + "smithy.api#documentation": "

The container instance that was registered.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#RegisterDaemonTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#RegisterDaemonTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#RegisterDaemonTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:privileged", + "ecs:task-cpu", + "ecs:task-memory" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to register a new daemon task definition from the supplied family and containerDefinitions", + "createsResources": [ + "daemon-task-definition" + ], + "resources": { + "required": { + "daemon-task-definition": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Registers a new daemon task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information, see Daemon task definitions in the Amazon Elastic Container Service Developer Guide.

A daemon task definition is a template that describes the containers that form a daemon. Daemons deploy cross-cutting software agents such as security monitoring, telemetry, and logging across your Amazon ECS infrastructure.

Each time you call RegisterDaemonTaskDefinition, a new revision of the daemon task definition is created. You can't modify a revision after you register it.

", + "smithy.api#examples": [ + { + "title": "To register a daemon task definition", + "documentation": "This example registers a daemon task definition in the monitoring-agent family with a single container that runs a CloudWatch agent.", + "input": { + "family": "monitoring-agent", + "containerDefinitions": [ + { + "name": "cloudwatch-agent", + "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", + "memory": 256, + "cpu": 128, + "essential": true, + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "/ecs/daemon/monitoring-agent", + "awslogs-region": "us-east-1", + "awslogs-stream-prefix": "ecs" + } + }, + "environment": [ + { + "name": "USE_DEFAULT_CONFIG", + "value": "true" + } + ] + } + ], + "cpu": "128", + "memory": "256", + "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", + "taskRoleArn": "arn:aws:iam::123456789012:role/ecsDaemonTaskRole" + }, + "output": { + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:1" + } + } + ] + } + }, + "com.amazonaws.ecs#RegisterDaemonTaskDefinitionRequest": { + "type": "structure", + "members": { + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

You must specify a family for a daemon task definition. This family is used as a name for your daemon task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

", + "smithy.api#required": {} + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this daemon task can assume. All containers in this daemon task are granted the permissions that are specified in this role.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf. The task execution role is required for daemon tasks that pull container images from Amazon ECR or send container logs to CloudWatch.

" + } + }, + "containerDefinitions": { + "target": "com.amazonaws.ecs#DaemonContainerDefinitionList", + "traits": { + "smithy.api#documentation": "

A list of container definitions in JSON format that describe the containers that make up your daemon task.

", + "smithy.api#required": {} + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the daemon task. It can be expressed as an integer using CPU units (for example, 1024).

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) used by the daemon task. It can be expressed as an integer using MiB (for example, 1024).

" + } + }, + "volumes": { + "target": "com.amazonaws.ecs#DaemonVolumeList", + "traits": { + "smithy.api#documentation": "

A list of volume definitions in JSON format that containers in your daemon task can use.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the daemon task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of 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.

" + } + }, + "pidMode": { + "target": "com.amazonaws.ecs#DaemonPidMode", + "traits": { + "smithy.api#documentation": "

The PID namespace mode for the daemon. The valid values are none and shared. The default is none.

If none is specified or no value is provided, the daemon runs with its own PID namespace, isolated from other tasks. If shared is specified, the daemon joins the host PID namespace, making it accessible to non-daemon tasks that use pidMode: \"host\" or other daemons that use pidMode: \"shared\".

" + } + }, + "ipcMode": { + "target": "com.amazonaws.ecs#DaemonIpcMode", + "traits": { + "smithy.api#documentation": "

The IPC namespace mode for the daemon. The valid values are none and shared. The default is none.

If none is specified or no value is provided, the daemon runs with its own IPC namespace, isolated from other tasks. If shared is specified, the daemon joins the host IPC namespace, making it accessible to non-daemon tasks that use ipcMode: \"host\" or other daemons that use ipcMode: \"shared\".

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#RegisterDaemonTaskDefinitionResponse": { + "type": "structure", + "members": { + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the registered daemon task definition.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#RegisterTaskDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#RegisterTaskDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#RegisterTaskDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:task-memory", + "ecs:compute-compatibility", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:privileged", + "ecs:task-cpu" + ], + "aws.iam#iamAction": { + "createsResources": [ + "task-definition" + ], + "documentation": "Grants permission to register a new task definition from the supplied family and containerDefinitions", + "relativeDocumentation": "API_RegisterTaskDefinition.html", + "resources": { + "required": { + "task-definition": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify a role for your task with the taskRoleArn parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in the policy that's associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To register a task definition", + "documentation": "This example registers a task definition to the specified family.", + "input": { + "family": "sleep360", + "taskRoleArn": "", + "containerDefinitions": [ + { + "name": "sleep", + "image": "public.ecr.aws/docker/library/busybox:latest", + "cpu": 10, + "command": [ + "sleep", + "360" + ], + "memory": 10, + "essential": true + } + ], + "volumes": [] + }, + "output": { + "taskDefinition": { + "volumes": [], + "taskDefinitionArn": "arn:aws:ecs:us-east-1::task-definition/sleep360:19", + "containerDefinitions": [ + { + "environment": [], + "name": "sleep", + "mountPoints": [], + "image": "public.ecr.aws/docker/library/busybox:latest", + "cpu": 10, + "portMappings": [], + "command": [ + "sleep", + "360" + ], + "memory": 10, + "essential": true, + "volumesFrom": [] + } + ], + "family": "sleep360", + "revision": 1 + } + } + } + ] + } + }, + "com.amazonaws.ecs#RegisterTaskDefinitionRequest": { + "type": "structure", + "members": { + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

You must specify a family for a task definition. You can use it track multiple versions of the same task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

", + "smithy.api#required": {} + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "networkMode": { + "target": "com.amazonaws.ecs#NetworkMode", + "traits": { + "smithy.api#documentation": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. If no network mode is specified, the default is bridge.

For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc can be used. If the network mode is set to none, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode.

With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.

When using the host network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.

If the network mode is awsvpc, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

If the network mode is host, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.

" + } + }, + "containerDefinitions": { + "target": "com.amazonaws.ecs#ContainerDefinitions", + "traits": { + "smithy.api#documentation": "

A list of container definitions in JSON format that describe the different containers that make up your task.

", + "smithy.api#required": {} + } + }, + "volumes": { + "target": "com.amazonaws.ecs#VolumeList", + "traits": { + "smithy.api#documentation": "

A list of volume definitions in JSON format that containers in your task might use.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraints", + "traits": { + "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for each task. This limit includes constraints in the task definition and those specified at runtime.

" + } + }, + "requiresCompatibilities": { + "target": "com.amazonaws.ecs#CompatibilityList", + "traits": { + "smithy.api#documentation": "

The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter is omitted from the response.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example, 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task definition. String values are converted to an integer indicating the CPU units when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If you're using the EC2 launch type or external launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 196608 CPU units (192 vCPUs). If you do not specify a value, the parameter is ignored.

This field is required for Fargate. For information about the valid values, see Task size in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,1024) or as a string using GB (for example, 1GB or 1 GB) in a task definition. String values are converted to an integer indicating the MiB when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If using the EC2 launch type, this field is optional.

If using the Fargate launch type, this field is required and you must use one of the following values. This determines your range of supported values for the cpu parameter.

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of 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.

" + } + }, + "pidMode": { + "target": "com.amazonaws.ecs#PidMode", + "traits": { + "smithy.api#documentation": "

The process namespace to use for the containers in the task. The valid values are host or task. On Fargate for Linux containers, the only valid value is task. For example, monitoring sidecars might need pidMode to access information about other containers running in the same task.

If host is specified, all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same process namespace.

If no value is specified, the The default is a private namespace for each container.

If the host PID mode is used, there's a heightened risk of undesired process namespace exposure.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

" + } + }, + "ipcMode": { + "target": "com.amazonaws.ecs#IpcMode", + "traits": { + "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

  • For tasks that use the host IPC mode, IPC namespace related systemControls are not supported.

  • For tasks that use the task IPC mode, IPC namespace related systemControls will apply to all containers within a task.

This parameter is not supported for Windows containers or tasks run on Fargate.

" + } + }, + "proxyConfiguration": { + "target": "com.amazonaws.ecs#ProxyConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

For tasks hosted on Amazon EC2 instances, the container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ecs-init package to use a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "inferenceAccelerators": { + "target": "com.amazonaws.ecs#InferenceAccelerators", + "traits": { + "smithy.api#deprecated": { + "message": "This feature is no longer available.", + "since": "2023-04-15" + }, + "smithy.api#documentation": "

The Elastic Inference accelerators to use for the containers in the task.

" + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.ecs#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Using data volumes in tasks in the Amazon ECS Developer Guide.

For tasks using the Fargate launch type, the task requires the following platforms:

  • Linux platform version 1.4.0 or later.

" + } + }, + "runtimePlatform": { + "target": "com.amazonaws.ecs#RuntimePlatform", + "traits": { + "smithy.api#documentation": "

The operating system that your tasks definitions run on.

" + } + }, + "enableFaultInjection": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Enables fault injection when you register your task definition and allows for fault injection requests to be accepted from the task's containers. The default value is false.

" + } + }, + "trustedExecutionConfiguration": { + "target": "com.amazonaws.ecs#TrustedExecutionConfiguration", + "traits": { + "smithy.api#documentation": "

The trusted execution configuration for tasks that use this task definition, including the isolation mode and, if configured, an attestation policy.

Trusted execution is supported only for Amazon ECS Managed Instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#RegisterTaskDefinitionResponse": { + "type": "structure", + "members": { + "taskDefinition": { + "target": "com.amazonaws.ecs#TaskDefinition", + "traits": { + "smithy.api#documentation": "

The full description of the registered task definition.

", + "smithy.api#notProperty": {} + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The list of tags associated with the task definition.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#RepositoryCredentials": { + "type": "structure", + "members": { + "credentialsParameter": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

When you use the Amazon ECS API, CLI, or Amazon Web Services SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret. When you use the Amazon Web Services Management Console, you must specify the full ARN of the secret.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The repository credentials for private registry authentication.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ecs#RequiresAttributes": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Attribute" + } + }, + "com.amazonaws.ecs#ResolvedConfiguration": { + "type": "structure", + "members": { + "loadBalancers": { + "target": "com.amazonaws.ecs#ServiceRevisionLoadBalancers", + "traits": { + "smithy.api#documentation": "

The resolved load balancer configuration for the service revision. This includes information about which target groups serve traffic and which listener rules direct traffic to them.

" + } + }, + "vpcLatticeConfigurations": { + "target": "com.amazonaws.ecs#ServiceRevisionVpcLatticeConfigurations", + "traits": { + "smithy.api#documentation": "

The resolved VPC Lattice configuration for the service revision. This includes information about which target groups serve traffic and which listener rules direct traffic to them.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resolved configuration for a service revision, which contains the actual resources your service revision uses, such as which target groups serve traffic.

" + } + }, + "com.amazonaws.ecs#Resource": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined resource.

" + } + }, + "type": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The type of the resource. Valid values: INTEGER, DOUBLE, LONG, or STRINGSET.

" + } + }, + "doubleValue": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

When the doubleValue type is set, the value of the resource must be a double precision floating-point type.

" + } + }, + "longValue": { + "target": "com.amazonaws.ecs#Long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

When the longValue type is set, the value of the resource must be an extended precision floating-point type.

" + } + }, + "integerValue": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

When the integerValue type is set, the value of the resource must be an integer.

" + } + }, + "stringSetValue": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

When the stringSetValue type is set, the value of the resource must be a string type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the resources available for a container instance.

" + } + }, + "com.amazonaws.ecs#ResourceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#ResourceInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified resource is in-use and can't be removed.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ResourceManagementType": { + "type": "enum", + "members": { + "CUSTOMER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOMER" + } + }, + "ECS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECS" + } + } + } + }, + "com.amazonaws.ecs#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified resource wasn't found.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ResourceRequirement": { + "type": "structure", + "members": { + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The value for the specified resource type.

You must specify this parameter unless the type is GPU and you specify sharingStrategy.

When the type is GPU, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. You can also specify ALL to allocate all available GPUs on the instance to the container.

When the type is NeuronDevice, the value must be ALL. This allocates all available Neuron devices on the instance to the container. Only one container in a task can specify NeuronDevice resources. This resource type is only supported on Managed Instances.

When the type is InferenceAccelerator, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" + } + }, + "type": { + "target": "com.amazonaws.ecs#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource to assign to a container.

", + "smithy.api#required": {} + } + }, + "sharingStrategy": { + "target": "com.amazonaws.ecs#SharingStrategy", + "traits": { + "smithy.api#documentation": "

The strategy that the container uses to share a GPU with other containers. Specify a sharing strategy only when the type is GPU. For a GPU resource requirement, specify either value or sharingStrategy, but not both. If you don't specify a sharing strategy, the container has exclusive use of each GPU that Amazon ECS assigns to it. The containers in a task that request GPUs must all use the same option.

You can use GPU sharing with tasks that run on Amazon EC2 instances or Amazon ECS Managed Instances. Task definitions that require EXTERNAL compatibility don't support GPU sharing.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type and amount of a resource to assign to a container. The supported resource types are GPUs, Neuron devices, and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide

" + } + }, + "com.amazonaws.ecs#ResourceRequirements": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ResourceRequirement" + } + }, + "com.amazonaws.ecs#ResourceType": { + "type": "enum", + "members": { + "GPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GPU" + } + }, + "INFERENCE_ACCELERATOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InferenceAccelerator" + } + }, + "NEURON_DEVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NeuronDevice" + } + } + } + }, + "com.amazonaws.ecs#Resources": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Resource" + } + }, + "com.amazonaws.ecs#Rollback": { + "type": "structure", + "members": { + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason the rollback happened. For example, the circuit breaker initiated the rollback operation.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

Time time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "serviceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision deployed as part of the rollback.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the service deployment rollback.

" + } + }, + "com.amazonaws.ecs#RunTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#RunTaskRequest" + }, + "output": { + "target": "com.amazonaws.ecs#RunTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#BlockedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ConflictException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:capacity-provider", + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + "aws:RequestTag/${TagKey}", + "ecs:cluster", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "createsResources": [ + "task" + ], + "documentation": "Grants permission to start a task using random placement and the default Amazon ECS scheduler", + "relativeDocumentation": "API_RunTask.html", + "requiredActions": [ + "iam:PassRole" + ], + "resources": { + "required": { + "task-definition": {} + } + } + }, + "smithy.api#documentation": "

Starts a new task using the specified task definition.

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

Amazon Elastic Inference (EI) is no longer available to customers.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more information, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.

To manage eventual consistency, you can do the following:

  • Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.

  • Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.

If you get a ConflictException error, the RunTask request could not be processed due to conflicts. The provided clientToken is already in use with a different RunTask request. The resourceIds are the existing task ARNs which are already associated with the clientToken.

To fix this issue:

  • Run RunTask with a unique clientToken.

  • Run RunTask with the clientToken and the original set of parameters

If you get a ClientExceptionerror, the RunTask could not be processed because you use managed scaling and there is a capacity error because the quota of tasks in the PROVISIONING per cluster has been reached. For information about the service quotas, see Amazon ECS service quotas.

", + "smithy.api#examples": [ + { + "title": "To run a task on your default cluster", + "documentation": "This example runs the specified task definition on your default cluster.", + "input": { + "cluster": "default", + "taskDefinition": "sleep360:1" + }, + "output": { + "tasks": [ + { + "taskArn": "arn:aws:ecs:us-east-1::task/default/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0", + "overrides": { + "containerOverrides": [ + { + "name": "sleep" + } + ] + }, + "lastStatus": "PENDING", + "containerInstanceArn": "arn:aws:ecs:us-east-1::container-instance/default/ffe3d344-77e2-476c-a4d0-bf560ad50acb", + "desiredStatus": "RUNNING", + "taskDefinitionArn": "arn:aws:ecs:us-east-1::task-definition/sleep360:1", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1::container/default/58591c8e-be29-4ddf-95aa-ee459d4c59fd", + "taskArn": "arn:aws:ecs:us-east-1::task/default/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0", + "lastStatus": "PENDING", + "name": "sleep" + } + ] + } + ] + } + } + ] + } + }, + "com.amazonaws.ecs#RunTaskRequest": { + "type": "structure", + "members": { + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy to use for the task.

If you want to use Amazon ECS Managed Instances, you must use the capacityProviderStrategy request parameter and omit the launchType request parameter.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster to run your task on. If you do not specify a cluster, the default cluster is assumed.

Each account receives a default cluster the first time you use the service, but you may also create other clusters.

" + } + }, + "count": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks for each call.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.

If true, then the task definition must have a task role, or you must provide one as an override.

" + } + }, + "group": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The infrastructure to run your standalone task on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

If you want to use Amazon ECS Managed Instances, you must use the capacityProviderStrategy request parameter and omit the launchType request parameter.

The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.

Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see Fargate capacity providers in the Amazon ECS Developer Guide.

The EC2 launch type runs your tasks on Amazon EC2 instances registered to your cluster.

The EXTERNAL launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.

A task can use either a launch type or a capacity provider strategy. If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the task. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it isn't supported for other network modes. For more information, see Task networking in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "overrides": { + "target": "com.amazonaws.ecs#TaskOverride", + "traits": { + "smithy.api#documentation": "

A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that's specified in the task definition or Docker image) with a command override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an environment override.

A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#PlacementConstraints", + "traits": { + "smithy.api#documentation": "

An array of placement constraint objects to use for the task. You can specify up to 10 constraints for each task (including constraints in the task definition and those specified at runtime).

" + } + }, + "placementStrategy": { + "target": "com.amazonaws.ecs#PlacementStrategies", + "traits": { + "smithy.api#documentation": "

The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules for each task.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version the task uses. A platform version is only specified for tasks hosted on Fargate. If one isn't specified, the LATEST platform version is used. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use theTagResource API action.

An error will be received if you specify the SERVICE option when running a task.

" + } + }, + "referenceId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

This parameter is only used by Amazon ECS. It is not intended for use by customers.

" + } + }, + "startedBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 128 letters (uppercase and lowercase), numbers, hyphens (-), forward slash (/), and underscores (_) are allowed.

If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

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.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the task definition to run. If a revision isn't specified, the latest ACTIVE revision is used.

The full ARN value must match the value that you specified as the Resource of the principal's permissions policy.

When you specify a task definition, you must either specify a specific revision, or all revisions in the ARN.

To specify a specific revision, include the revision number in the ARN. For example, to specify revision 2, use arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2.

To specify all revisions, use the wildcard (*) in the ARN. For example, to specify all revisions, use arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*.

For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 64 characters are allowed. The valid characters are characters in the range of 33-126, inclusive. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#TaskVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must match the name from the task definition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#RunTaskResponse": { + "type": "structure", + "members": { + "tasks": { + "target": "com.amazonaws.ecs#Tasks", + "traits": { + "smithy.api#documentation": "

A full description of the tasks that were run. The tasks that were successfully placed on your cluster are described here.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

For information about how to address failures, see Service event messages and API failure reasons in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#RuntimePlatform": { + "type": "structure", + "members": { + "cpuArchitecture": { + "target": "com.amazonaws.ecs#CPUArchitecture", + "traits": { + "smithy.api#documentation": "

The CPU architecture.

You can run your Linux tasks on an ARM-based platform by setting the value to ARM64. This option is available for tasks that run on Linux Amazon EC2 instance, Amazon ECS Managed Instances, or Linux containers on Fargate.

" + } + }, + "operatingSystemFamily": { + "target": "com.amazonaws.ecs#OSFamily", + "traits": { + "smithy.api#documentation": "

The operating system.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the platform for the Amazon ECS service or task.

For more information about RuntimePlatform, see RuntimePlatform in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#RuntimePlatformOverride": { + "type": "structure", + "members": { + "cpuArchitecture": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The CPU architecture that tasks in this service revision run on. This value might differ from the architecture declared in the task definition—for example, when Amazon ECS detects an architecture mismatch during an Amazon ECS Express deployment and runs tasks on a different architecture. You can't set this value.

Valid values:

  • X86_64 - The x86 64-bit architecture.

  • ARM64 - The 64-bit ARM architecture.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The runtime platform that Amazon ECS applies to a service revision. This value overrides the runtime platform specified in the task definition. You can't set this value.

" + } + }, + "com.amazonaws.ecs#S3FilesVolumeConfiguration": { + "type": "structure", + "members": { + "fileSystemArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full ARN of the S3 Files file system to mount.

", + "smithy.api#required": {} + } + }, + "rootDirectory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The directory within the Amazon S3 Files file system to mount as the root directory. If this parameter is omitted, the root of the Amazon S3 Files file system will be used. Specifying / will have the same effect as omitting this parameter.

If a S3 Files access point is specified in the accessPointArn, the root directory parameter must either be omitted or set to / which will enforce the path set on the S3 Files access point.

" + } + }, + "transitEncryptionPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port to use for sending encrypted data between the ECS host and the S3 Files file system. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon S3 Files mount helper uses. For more information, see S3 Files mount helper.

" + } + }, + "accessPointArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full ARN of the S3 Files access point to use. If an access point is specified, the root directory value specified in the S3FilesVolumeConfiguration must either be omitted or set to / which will enforce the path set on the S3 Files access point. For more information, see Creating S3 Files access points.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This parameter is specified when you're using an Amazon S3 Files file system for task storage. For more information, see Amazon S3 Files volumes in the Amazon Elastic Container Service Developer Guide.

Your task definition must include a Task IAM Role. See IAM role for attaching your file system to Amazon Web Services compute resources for required permissions.

" + } + }, + "com.amazonaws.ecs#Scale": { + "type": "structure", + "members": { + "value": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The value, specified as a percent total of a service's desiredCount, to scale the task set. Accepted values are numbers between 0 and 100.

" + } + }, + "unit": { + "target": "com.amazonaws.ecs#ScaleUnit", + "traits": { + "smithy.api#documentation": "

The unit of measure for the scale value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task set.

" + } + }, + "com.amazonaws.ecs#ScaleUnit": { + "type": "enum", + "members": { + "PERCENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PERCENT" + } + } + } + }, + "com.amazonaws.ecs#SchedulingStrategy": { + "type": "enum", + "members": { + "REPLICA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICA" + } + }, + "DAEMON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAEMON" + } + } + } + }, + "com.amazonaws.ecs#Scope": { + "type": "enum", + "members": { + "TASK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "task" + } + }, + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "shared" + } + } + } + }, + "com.amazonaws.ecs#Secret": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the secret.

", + "smithy.api#required": {} + } + }, + "valueFrom": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The secret to expose to the container. The supported values are either the full ARN of the Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store.

For information about the require Identity and Access Management permissions, see Required IAM permissions for Amazon ECS secrets (for Secrets Manager) or Required IAM permissions for Amazon ECS secrets (for Systems Manager Parameter store) in the Amazon Elastic Container Service Developer Guide.

If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#SecretList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Secret" + } + }, + "com.amazonaws.ecs#SensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.ecs#ServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

These errors are usually caused by a server issue.

", + "smithy.api#error": "server" + } + }, + "com.amazonaws.ecs#Service": { + "type": "structure", + "members": { + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN that identifies the service. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster. However, you can have similarly named services in multiple clusters within a Region or across multiple Regions.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that hosts the service.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more information, see Service Discovery.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

" + } + }, + "desiredCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService , and it can be modified with UpdateService.

" + } + }, + "runningCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the cluster that are in the RUNNING state.

" + } + }, + "pendingCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the cluster that are in the PENDING state.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy the service uses. When using the DescribeServices API, this field is omitted if the service was created using a launch type.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version to run your service on. A platform version is only specified for tasks that are hosted on Fargate. If one isn't specified, the LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The operating system that your tasks in the service run on. A platform family is specified only for tasks using the Fargate launch type.

All tasks that run as part of this service must use the same platformFamily value as the service (for example, LINUX).

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

" + } + }, + "taskSets": { + "target": "com.amazonaws.ecs#TaskSets", + "traits": { + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.

" + } + }, + "deployments": { + "target": "com.amazonaws.ecs#Deployments", + "traits": { + "smithy.api#documentation": "

The current state of deployments for the service.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role that's associated with the service. It allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.

" + } + }, + "events": { + "target": "com.amazonaws.ecs#ServiceEvents", + "traits": { + "smithy.api#documentation": "

The event stream for your service. A maximum of 100 of the latest events are displayed.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the service was created.

" + } + }, + "currentServiceDeployment": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the current service deployment.

" + } + }, + "currentServiceRevisions": { + "target": "com.amazonaws.ecs#ServiceCurrentRevisionSummaryList", + "traits": { + "smithy.api#documentation": "

The list of the service revisions.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#PlacementConstraints", + "traits": { + "smithy.api#documentation": "

The placement constraints for the tasks in the service.

" + } + }, + "placementStrategy": { + "target": "com.amazonaws.ecs#PlacementStrategies", + "traits": { + "smithy.api#documentation": "

The placement strategy that determines how tasks for the service are placed.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

" + } + }, + "healthCheckGracePeriodSeconds": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started.

If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.

" + } + }, + "schedulingStrategy": { + "target": "com.amazonaws.ecs#SchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The scheduling strategy to use for the service. For more information, see Services.

There are two service scheduler strategies available.

  • REPLICA-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions.

  • DAEMON-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.

    Fargate tasks don't support the DAEMON scheduling strategy.

" + } + }, + "deploymentController": { + "target": "com.amazonaws.ecs#DeploymentController", + "traits": { + "smithy.api#documentation": "

The deployment controller type the service is using.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value. You define bot the key and value.

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.

" + } + }, + "createdBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The principal that created the service.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to use Amazon ECS managed tags for the tasks in the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether the execute command functionality is turned on for the service. If true, the execute command functionality is turned on for all containers in tasks as part of the service.

" + } + }, + "availabilityZoneRebalancing": { + "target": "com.amazonaws.ecs#AvailabilityZoneRebalancing", + "traits": { + "smithy.api#documentation": "

Indicates whether to use Availability Zone rebalancing for the service.

For more information, see Balancing an Amazon ECS service across Availability Zones in the Amazon Elastic Container Service Developer Guide .

The default behavior of AvailabilityZoneRebalancing differs between create and update requests:

  • For create service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults the value to ENABLED.

  • For update service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults to the existing service’s AvailabilityZoneRebalancing value. If the service never had an AvailabilityZoneRebalancing value set, Amazon ECS treats this as DISABLED.

" + } + }, + "resourceManagementType": { + "target": "com.amazonaws.ecs#ResourceManagementType", + "traits": { + "smithy.api#documentation": "

Identifies whether an ECS Service is an Express Service managed by ECS, or managed by the customer. The valid values are ECS and CUSTOMER

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on a service within a cluster.

" + } + }, + "com.amazonaws.ecs#ServiceConnectAccessLogConfiguration": { + "type": "structure", + "members": { + "format": { + "target": "com.amazonaws.ecs#ServiceConnectAccessLoggingFormat", + "traits": { + "smithy.api#documentation": "

The format for Service Connect access log output. Choose TEXT for human-readable logs or JSON for structured data that integrates well with log analysis tools.

", + "smithy.api#required": {} + } + }, + "includeQueryParameters": { + "target": "com.amazonaws.ecs#ServiceConnectIncludeQueryParameters", + "traits": { + "smithy.api#documentation": "

Specifies whether to include query parameters in Service Connect access logs.

When enabled, query parameters from HTTP requests are included in the access logs. Consider security and privacy implications when enabling this feature, as query parameters may contain sensitive information such as request IDs and tokens. By default, this parameter is DISABLED.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for Service Connect access logging. Access logs provide detailed information about requests made to your service, including request patterns, response codes, and timing data for debugging and monitoring purposes.

To enable access logs, you must also specify a logConfiguration in the serviceConnectConfiguration.

" + } + }, + "com.amazonaws.ecs#ServiceConnectAccessLoggingFormat": { + "type": "enum", + "members": { + "TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEXT" + } + }, + "JSON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JSON" + } + } + }, + "traits": { + "smithy.api#documentation": "

The format for Service Connect access log output. Choose TEXT for human-readable logs or JSON for structured data that integrates well with log analysis tools.

" + } + }, + "com.amazonaws.ecs#ServiceConnectClientAlias": { + "type": "structure", + "members": { + "port": { + "target": "com.amazonaws.ecs#PortNumber", + "traits": { + "smithy.api#documentation": "

The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace.

To avoid changing your applications in client Amazon ECS services, set this to the same port that the client application uses by default. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "dnsName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The dnsName is the name that you use in the applications of client tasks to connect to this service. The name must be a valid DNS name but doesn't need to be fully-qualified. The name can include up to 127 characters. The name can include lowercase letters, numbers, underscores (_), hyphens (-), and periods (.). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

To avoid changing your applications in client Amazon ECS services, set this to the same name that the client application uses by default. For example, a few common names are database, db, or the lowercase name of a database, such as mysql or redis. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "testTrafficRules": { + "target": "com.amazonaws.ecs#ServiceConnectTestTrafficRules", + "traits": { + "smithy.api#documentation": "

The configuration for test traffic routing rules used during blue/green deployments with Amazon ECS Service Connect. This allows you to route a portion of traffic to the new service revision of your service for testing before shifting all production traffic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Each alias (\"endpoint\") is a fully-qualified name and port number that other tasks (\"clients\") can use to connect to this service.

Each name and port mapping must be unique within the namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceConnectClientAliasList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceConnectClientAlias" + } + }, + "com.amazonaws.ecs#ServiceConnectConfiguration": { + "type": "structure", + "members": { + "enabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to use Service Connect with this service.

", + "smithy.api#required": {} + } + }, + "namespace": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" + } + }, + "services": { + "target": "com.amazonaws.ecs#ServiceConnectServiceList", + "traits": { + "smithy.api#documentation": "

The list of Service Connect service objects. These are names and aliases (also known as endpoints) that are used by other Amazon ECS services to connect to this service.

This field is not required for a \"client\" Amazon ECS service that's a member of a namespace only to connect to other services within the namespace. An example of this would be a frontend application that accepts incoming requests from either a load balancer that's attached to the service or by other means.

An object selects a port from the task definition, assigns a name for the Cloud Map service, and a list of aliases (endpoints) and ports for client applications to refer to this service.

" + } + }, + "logConfiguration": { + "target": "com.amazonaws.ecs#LogConfiguration" + }, + "accessLogConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectAccessLogConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for Service Connect access logging. Access logs capture detailed information about requests made to your service, including request patterns, response codes, and timing data. They can be useful for debugging connectivity issues, monitoring service performance, and auditing service-to-service communication for security and compliance purposes.

To enable access logs, you must also specify a logConfiguration in the serviceConnectConfiguration.

" + } + }, + "containerConfigurations": { + "target": "com.amazonaws.ecs#ServiceConnectContainerConfigurations", + "traits": { + "smithy.api#documentation": "

The settings for the Service Connect proxy container that Amazon ECS adds to each task in this service. Each object in the list sets exactly one setting, and each setting can appear only once in the list.

Your changes to these settings apply only to tasks that Amazon ECS launches after you update the service. Your running tasks keep their existing settings until Amazon ECS replaces them. If you update the serviceConnectConfiguration of your service and don't include containerConfigurations, the proxy container settings return to their defaults.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Service Connect configuration of your Amazon ECS service. The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceConnectContainerConfiguration": { + "type": "union", + "members": { + "logLevel": { + "target": "com.amazonaws.ecs#ServiceConnectContainerLogLevel", + "traits": { + "smithy.api#documentation": "

The log level of the Service Connect proxy container. Set the log level to debug to collect more detailed proxy logs when you troubleshoot connectivity issues between services, and set it back to info when you finish. Debug logging increases the volume of logs that the proxy container writes. If you don't specify a log level, the default is info.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a configuration setting for the Service Connect proxy container, such as the log level. Specify exactly one member in each object.

" + } + }, + "com.amazonaws.ecs#ServiceConnectContainerConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceConnectContainerConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ecs#ServiceConnectContainerLogLevel": { + "type": "enum", + "members": { + "DEBUG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "debug" + } + }, + "INFO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "info" + } + } + }, + "traits": { + "smithy.api#documentation": "

The log level of the Service Connect proxy container.

Valid values:

  • debug - Collects more detailed proxy logs for troubleshooting connectivity issues between services.

  • info - The default log level.

" + } + }, + "com.amazonaws.ecs#ServiceConnectIncludeQueryParameters": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "

Controls whether query parameters are included in Service Connect access logs. Consider security and privacy implications when enabling this feature. By default, this parameter is DISABLED.

" + } + }, + "com.amazonaws.ecs#ServiceConnectService": { + "type": "structure", + "members": { + "portName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The portName must match the name of one of the portMappings from all the containers in the task definition of this Amazon ECS service.

", + "smithy.api#required": {} + } + }, + "discoveryName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + } + }, + "clientAliases": { + "target": "com.amazonaws.ecs#ServiceConnectClientAliasList", + "traits": { + "smithy.api#documentation": "

The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1.

Each alias (\"endpoint\") is a fully-qualified name and port number that other Amazon ECS tasks (\"clients\") can use to connect to this service.

Each name and port mapping must be unique within the namespace.

For each ServiceConnectService, you must provide at least one clientAlias with one port.

" + } + }, + "ingressPortOverride": { + "target": "com.amazonaws.ecs#PortNumber", + "traits": { + "smithy.api#documentation": "

The port number for the Service Connect proxy to listen on.

Use the value of this field to bypass the proxy for traffic on the port number specified in the named portMapping in the task definition of this application, and then use it in your VPC security groups to allow traffic into the proxy for this Amazon ECS service.

In awsvpc mode and Fargate, the default value is the container port number. The container port number is in the portMapping in the task definition. In bridge mode, the default value is the ephemeral port of the Service Connect proxy.

" + } + }, + "timeout": { + "target": "com.amazonaws.ecs#TimeoutConfiguration", + "traits": { + "smithy.api#documentation": "

A reference to an object that represents the configured timeouts for Service Connect.

" + } + }, + "tls": { + "target": "com.amazonaws.ecs#ServiceConnectTlsConfiguration", + "traits": { + "smithy.api#documentation": "

A reference to an object that represents a Transport Layer Security (TLS) configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Service Connect service object configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceConnectServiceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceConnectService" + } + }, + "com.amazonaws.ecs#ServiceConnectServiceResource": { + "type": "structure", + "members": { + "discoveryName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The discovery name of this Service Connect resource.

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + } + }, + "discoveryArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the service in Cloud Map that matches the discovery name for this Service Connect resource. You can use this ARN in other integrations with Cloud Map. However, Service Connect can't ensure connectivity outside of Amazon ECS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Service Connect resource. Each configuration maps a discovery name to a Cloud Map service name. The data is stored in Cloud Map as part of the Service Connect configuration for each discovery name of this Amazon ECS service.

A task can resolve the dnsName for each of the clientAliases of a service. However a task can't resolve the discovery names. If you want to connect to a service, refer to the ServiceConnectConfiguration of that service for the list of clientAliases that you can use.

" + } + }, + "com.amazonaws.ecs#ServiceConnectServiceResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceConnectServiceResource" + } + }, + "com.amazonaws.ecs#ServiceConnectTestTrafficHeaderMatchRules": { + "type": "structure", + "members": { + "exact": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The exact value that the HTTP header must match for the test traffic routing rule to apply. This provides precise control over which requests are routed to the new service revision during blue/green deployments.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The header matching rules for test traffic routing in Amazon ECS blue/green deployments. These rules determine how incoming requests are matched based on HTTP headers to route test traffic to the new service revision.

" + } + }, + "com.amazonaws.ecs#ServiceConnectTestTrafficHeaderRules": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the HTTP header to examine for test traffic routing. Common examples include custom headers like X-Test-Version or X-Canary-Request that can be used to identify test traffic.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.ecs#ServiceConnectTestTrafficHeaderMatchRules", + "traits": { + "smithy.api#documentation": "

The header value matching configuration that determines how the HTTP header value is evaluated for test traffic routing decisions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The HTTP header rules used to identify and route test traffic during Amazon ECS blue/green deployments. These rules specify which HTTP headers to examine and what values to match for routing decisions.

For more information, see Service Connect for Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceConnectTestTrafficRules": { + "type": "structure", + "members": { + "header": { + "target": "com.amazonaws.ecs#ServiceConnectTestTrafficHeaderRules", + "traits": { + "smithy.api#documentation": "

The HTTP header-based routing rules that determine which requests should be routed to the new service version during blue/green deployment testing. These rules provide fine-grained control over test traffic routing based on request headers.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The test traffic routing configuration for Amazon ECS blue/green deployments. This configuration allows you to define rules for routing specific traffic to the new service revision during the deployment process, allowing for safe testing before full production traffic shift.

For more information, see Service Connect for Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceConnectTlsCertificateAuthority": { + "type": "structure", + "members": { + "awsPcaAuthorityArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon Web Services Private Certificate Authority certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The certificate root authority that secures your service.

" + } + }, + "com.amazonaws.ecs#ServiceConnectTlsConfiguration": { + "type": "structure", + "members": { + "issuerCertificateAuthority": { + "target": "com.amazonaws.ecs#ServiceConnectTlsCertificateAuthority", + "traits": { + "smithy.api#documentation": "

The signer certificate authority.

", + "smithy.api#required": {} + } + }, + "kmsKey": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Key Management Service key.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that's associated with the Service Connect TLS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The key that encrypts and decrypts your resources for Service Connect TLS.

" + } + }, + "com.amazonaws.ecs#ServiceCurrentRevisionSummary": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the current service revision.

" + } + }, + "requestedTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of requested tasks in the current service revision

" + } + }, + "runningTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of running tasks of the current service revision

" + } + }, + "pendingTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of pending tasks in the current service revision

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of the current service revision configuration

" + } + }, + "com.amazonaws.ecs#ServiceCurrentRevisionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceCurrentRevisionSummary" + } + }, + "com.amazonaws.ecs#ServiceDeployment": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service for this service deployment.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the cluster that hosts the service.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the service deployment finished. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "stoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the service deployment stopped. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

The service deployment stops when any of the following actions happen:

  • A user manually stops the deployment

  • The rollback option is not in use for the failure detection mechanism (the circuit breaker or alarm-based) and the service fails.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the service deployment was last updated. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "sourceServiceRevisions": { + "target": "com.amazonaws.ecs#ServiceRevisionsSummaryList", + "traits": { + "smithy.api#documentation": "

The currently deployed workload configuration.

" + } + }, + "targetServiceRevision": { + "target": "com.amazonaws.ecs#ServiceRevisionSummary", + "traits": { + "smithy.api#documentation": "

The workload configuration being deployed.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus", + "traits": { + "smithy.api#documentation": "

The service deployment state.

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example, the circuit breaker detected a failure.

" + } + }, + "lifecycleStage": { + "target": "com.amazonaws.ecs#ServiceDeploymentLifecycleStage", + "traits": { + "smithy.api#documentation": "

The current lifecycle stage of the deployment. Possible values include:

  • RECONCILE_SERVICE

    The reconciliation stage that only happens when you start a new service deployment with more than 1 service revision in an ACTIVE state.

  • PRE_SCALE_UP

    The green service revision has not started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  • SCALE_UP

    The stage when the green service revision scales up to 100% and launches new tasks. The green service revision is not serving any traffic at this point.

  • POST_SCALE_UP

    The green service revision has started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  • TEST_TRAFFIC_SHIFT

    The blue and green service revisions are running. The blue service revision handles 100% of the production traffic. The green service revision is migrating from 0% to 100% of test traffic.

  • POST_TEST_TRAFFIC_SHIFT

    The test traffic shift is complete. The green service revision handles 100% of the test traffic.

  • PRE_PRODUCTION_TRAFFIC_SHIFT

    Occurs before production traffic shift. For linear and canary deployments, this stage is invoked before every traffic shift step.

  • PRODUCTION_TRAFFIC_SHIFT

    Production traffic is shifting to the green service revision. The green service revision is migrating from 0% to 100% of production traffic. For linear and canary deployments, this stage is invoked at every traffic shift step.

  • POST_PRODUCTION_TRAFFIC_SHIFT

    The production traffic shift is complete.

  • BAKE_TIME

    The stage when both blue and green service revisions are running simultaneously after the production traffic has shifted.

  • CLEAN_UP

    The stage when the blue service revision has completely scaled down to 0 running tasks. The green service revision is now the production service revision after this stage.

" + } + }, + "lifecycleHookDetails": { + "target": "com.amazonaws.ecs#DeploymentLifecycleHookDetailList", + "traits": { + "smithy.api#documentation": "

The details of the lifecycle hooks for the current service deployment.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DeploymentConfiguration" + }, + "rollback": { + "target": "com.amazonaws.ecs#Rollback", + "traits": { + "smithy.api#documentation": "

The rollback options the service deployment uses when the deployment fails.

" + } + }, + "deploymentCircuitBreaker": { + "target": "com.amazonaws.ecs#ServiceDeploymentCircuitBreaker", + "traits": { + "smithy.api#documentation": "

The circuit breaker configuration that determines a service deployment failed.

" + } + }, + "alarms": { + "target": "com.amazonaws.ecs#ServiceDeploymentAlarms", + "traits": { + "smithy.api#documentation": "

The CloudWatch alarms that determine when a service deployment fails.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the service deployment.

Service deployments provide a comprehensive view of your deployments. For information about service deployments, see View service history using Amazon ECS service deployments in the Amazon Elastic Container Service Developer Guide .

" + } + }, + "com.amazonaws.ecs#ServiceDeploymentAlarms": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

The status of the alarms check. Amazon ECS is not using alarms for service deployment failures when the status is DISABLED.

" + } + }, + "alarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch alarms that determine when a service deployment failed. A \",\" separates the alarms.

" + } + }, + "triggeredAlarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

One or more CloudWatch alarm names that have been triggered during the service deployment. A \",\" separates the alarm names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudWatch alarms used to determine a service deployment failed.

Amazon ECS considers the service deployment as failed when any of the alarms move to the ALARM state. For more information, see How CloudWatch alarms detect Amazon ECS deployment failures in the Amazon ECS Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceDeploymentBrief": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service for this service deployment.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the cluster that hosts the service.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the service deployment completed. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

" + } + }, + "targetServiceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision being deplyed.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of the service deployment

" + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Information about why the service deployment is in the current status. For example, the circuit breaker detected a deployment failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service deployment properties that are retured when you call ListServiceDeployments.

This provides a high-level overview of the service deployment.

" + } + }, + "com.amazonaws.ecs#ServiceDeploymentCircuitBreaker": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

The circuit breaker status. Amazon ECS is not using the circuit breaker for service deployment failures when the status is DISABLED.

" + } + }, + "failureCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of times the circuit breaker detected a service deploymeny failure.

" + } + }, + "threshold": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The threshhold which determines that the service deployment failed.

The deployment circuit breaker calculates the threshold value, and then uses the value to determine when to move the deployment to a FAILED state. The deployment circuit breaker has a minimum threshold of 3 and a maximum threshold of 200. and uses the values in the following formula to determine the deployment failure.

0.5 * desired task count

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the circuit breaker used to determine when a service deployment has failed.

The deployment circuit breaker is the rolling update mechanism that determines if the tasks reach a steady state. The deployment circuit breaker has an option that will automatically roll back a failed deployment to the last cpompleted service revision. For more information, see How the Amazon ECS deployment circuit breaker detects failures in the Amazon ECS Developer Guide.

" + } + }, + "com.amazonaws.ecs#ServiceDeploymentLifecycleStage": { + "type": "enum", + "members": { + "RECONCILE_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RECONCILE_SERVICE" + } + }, + "PRE_SCALE_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRE_SCALE_UP" + } + }, + "SCALE_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SCALE_UP" + } + }, + "POST_SCALE_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_SCALE_UP" + } + }, + "TEST_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TEST_TRAFFIC_SHIFT" + } + }, + "POST_TEST_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_TEST_TRAFFIC_SHIFT" + } + }, + "PRODUCTION_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRODUCTION_TRAFFIC_SHIFT" + } + }, + "POST_PRODUCTION_TRAFFIC_SHIFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POST_PRODUCTION_TRAFFIC_SHIFT" + } + }, + "BAKE_TIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAKE_TIME" + } + }, + "CLEAN_UP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLEAN_UP" + } + } + } + }, + "com.amazonaws.ecs#ServiceDeploymentNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service deploy ARN that you specified in the ContinueServiceDeployment doesn't exist. You can use ListServiceDeployments to retrieve the service deployment ARNs.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ServiceDeploymentResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceDeploymentId": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceName": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeServiceDeployments" + } + ], + "traits": { + "aws.api#arn": { + "template": "service-deployment/{ClusterName}/{ServiceName}/{ServiceDeploymentId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "service-deployment", + "relativeDocumentation": "service-deployment.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a deployment that moves a service from one service revision to another" + } + }, + "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus": { + "type": "enum", + "members": { + "TRIGGERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRIGGERED" + } + }, + "MONITORING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING" + } + }, + "MONITORING_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING_COMPLETE" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#ServiceDeploymentStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESSFUL" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + }, + "STOP_REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOP_REQUESTED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "ROLLBACK_REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_REQUESTED" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_SUCCESSFUL" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + } + } + }, + "com.amazonaws.ecs#ServiceDeploymentStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus" + } + }, + "com.amazonaws.ecs#ServiceDeployments": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeployment" + } + }, + "com.amazonaws.ecs#ServiceDeploymentsBrief": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeploymentBrief" + } + }, + "com.amazonaws.ecs#ServiceEvent": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID string for the event.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the event was triggered.

" + } + }, + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The event message.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for an event that's associated with a service.

" + } + }, + "com.amazonaws.ecs#ServiceEvents": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceEvent" + } + }, + "com.amazonaws.ecs#ServiceField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#ServiceFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceField" + } + }, + "com.amazonaws.ecs#ServiceManagedEBSVolumeConfiguration": { + "type": "structure", + "members": { + "encrypted": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If you turn on Region-level Amazon EBS encryption by default but set this value as false, the setting is overridden and the volume is encrypted with the KMS key specified for Amazon EBS encryption by default. This parameter maps 1:1 with the Encrypted parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "kmsKeyId": { + "target": "com.amazonaws.ecs#EBSKMSKeyId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When a key is specified using this parameter, it overrides Amazon EBS default encryption or any KMS key that you specified for cluster-level managed storage encryption. This parameter maps 1:1 with the KmsKeyId parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information about encrypting Amazon EBS volumes attached to tasks, see Encrypt data stored in Amazon EBS volumes attached to Amazon ECS tasks.

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or ARN that is invalid, the action can appear to complete, but eventually fails.

" + } + }, + "volumeType": { + "target": "com.amazonaws.ecs#EBSVolumeType", + "traits": { + "smithy.api#documentation": "

The volume type. This parameter maps 1:1 with the VolumeType parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide.

The following are the supported volume types.

  • General Purpose SSD: gp2|gp3

  • Provisioned IOPS SSD: io1|io2

  • Throughput Optimized HDD: st1

  • Cold HDD: sc1

  • Magnetic: standard

    The magnetic volume type is not supported on Fargate.

" + } + }, + "sizeInGiB": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify a snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a volume size greater than or equal to the snapshot size. This parameter maps 1:1 with the Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

The following are the supported volume size values for each volume type.

  • gp2 and gp3: 1-16,384

  • io1 and io2: 4-16,384

  • st1 and sc1: 125-16,384

  • standard: 1-1,024

" + } + }, + "snapshotId": { + "target": "com.amazonaws.ecs#EBSSnapshotId", + "traits": { + "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create volumes for attachment to tasks maintained by the service. You must specify either snapshotId or sizeInGiB in your volume configuration. This parameter maps 1:1 with the SnapshotId parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "volumeInitializationRate": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The rate, in MiB/s, at which data is fetched from a snapshot of an existing EBS volume to create new volumes for attachment to the tasks maintained by the service. This property can be specified only if you specify a snapshotId. For more information, see Initialize Amazon EBS volumes in the Amazon EBS User Guide.

" + } + }, + "iops": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.

The following are the supported values for each volume type.

  • gp3: 3,000 - 16,000 IOPS

  • io1: 100 - 64,000 IOPS

  • io2: 100 - 256,000 IOPS

This parameter is required for io1 and io2 volume types. The default for gp3 volumes is 3,000 IOPS. This parameter is not supported for st1, sc1, or standard volume types.

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "throughput": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter maps 1:1 with the Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

This parameter is only supported for the gp3 volume type.

" + } + }, + "tagSpecifications": { + "target": "com.amazonaws.ecs#EBSTagSpecifications", + "traits": { + "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes IAM policy with this role. For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "filesystemType": { + "target": "com.amazonaws.ecs#TaskFilesystemType", + "traits": { + "smithy.api#documentation": "

The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.

The available Linux filesystem types are ext3, ext4, and xfs. If no value is specified, the xfs filesystem type is used by default.

The available Windows filesystem types are NTFS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. For information about the supported launch types and operating systems, see Supported operating systems and launch types in the Amazon Elastic Container Service Developer Guide.

Many of these parameters map 1:1 with the Amazon EBS CreateVolume API request parameters.

" + } + }, + "com.amazonaws.ecs#ServiceNotActiveException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified service isn't active. You can't update a service that's inactive. If you have previously deleted a service, you can re-create it with CreateService.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ServiceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region specific.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#ServiceRegistries": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRegistry" + } + }, + "com.amazonaws.ecs#ServiceRegistry": { + "type": "structure", + "members": { + "registryArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is Cloud Map. For more information, see CreateService.

" + } + }, + "port": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port value used if your service discovery service specified an SRV record. This field might be used if both the awsvpc network mode and SRV records are used.

" + } + }, + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container name value to be used for your service discovery service. It's already specified in the task definition. If the task definition that your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition that your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value. However, you can't specify both.

" + } + }, + "containerPort": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The port value to be used for your service discovery service. It's already specified in the task definition. If the task definition your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value. However, you can't specify both.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for the service registry.

Each service may be associated with one service registry. Multiple service registries for each service are not supported.

When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration.

" + } + }, + "com.amazonaws.ecs#ServiceResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceName": { + "target": "com.amazonaws.ecs#String" + } + }, + "operations": [ + { + "target": "com.amazonaws.ecs#UpdateServicePrimaryTaskSet" + } + ], + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#CreateExpressGatewayService" + }, + { + "target": "com.amazonaws.ecs#CreateService" + }, + { + "target": "com.amazonaws.ecs#DeleteExpressGatewayService" + }, + { + "target": "com.amazonaws.ecs#DeleteService" + }, + { + "target": "com.amazonaws.ecs#DescribeExpressGatewayService" + }, + { + "target": "com.amazonaws.ecs#DescribeServices" + }, + { + "target": "com.amazonaws.ecs#ListServiceDeployments" + }, + { + "target": "com.amazonaws.ecs#ListServices" + }, + { + "target": "com.amazonaws.ecs#StopServiceDeployment" + }, + { + "target": "com.amazonaws.ecs#UpdateExpressGatewayService" + }, + { + "target": "com.amazonaws.ecs#UpdateService" + } + ], + "traits": { + "aws.api#arn": { + "template": "service/{ClusterName}/{ServiceName}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "service", + "relativeDocumentation": "ecs_services.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a collection of instances of a task definition that are running simultaneously in an ECS cluster" + } + }, + "com.amazonaws.ecs#ServiceRevision": { + "type": "structure", + "members": { + "serviceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service for the service revision.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the cluster that hosts the service.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition the service revision uses.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy the service revision uses.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type the service revision uses.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

For the Fargate launch type, the platform version the service revision uses.

" + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform family the service revision uses.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

The load balancers the service revision uses.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The service registries (for Service Discovery) the service revision uses.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration" + }, + "containerImages": { + "target": "com.amazonaws.ecs#ContainerImages", + "traits": { + "smithy.api#documentation": "

The container images the service revision uses.

" + } + }, + "guardDutyEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether Runtime Monitoring is turned on.

" + } + }, + "serviceConnectConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectConfiguration" + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The volumes that are configured at deployment that the service revision uses.

" + } + }, + "fargateEphemeralStorage": { + "target": "com.amazonaws.ecs#DeploymentEphemeralStorage" + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the service revision was created. The format is yyyy-mm-dd HH:mm:ss.SSSSS.

" + } + }, + "vpcLatticeConfigurations": { + "target": "com.amazonaws.ecs#VpcLatticeConfigurations", + "traits": { + "smithy.api#documentation": "

The VPC Lattice configuration for the service revision.

" + } + }, + "resolvedConfiguration": { + "target": "com.amazonaws.ecs#ResolvedConfiguration", + "traits": { + "smithy.api#documentation": "

The resolved configuration for the service revision which contains the actual resources your service revision uses, such as which target groups serve traffic.

" + } + }, + "ecsManagedResources": { + "target": "com.amazonaws.ecs#ECSManagedResources", + "traits": { + "smithy.api#documentation": "

The resources created and managed by Amazon ECS when you create an Express service for Amazon ECS.

" + } + }, + "overrides": { + "target": "com.amazonaws.ecs#ServiceRevisionOverrides", + "traits": { + "smithy.api#documentation": "

The effective runtime overrides that Amazon ECS applies to this service revision. This value is present only when Amazon ECS detects a difference between the task definition and the actual runtime configuration.

" + } + }, + "gatewayConnectors": { + "target": "com.amazonaws.ecs#GatewayConnectorList", + "traits": { + "smithy.api#documentation": "

The gateway connectors that are associated with the service revision.

" + } + }, + "monitoring": { + "target": "com.amazonaws.ecs#MonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

The optional monitoring configuration for the service, which defines the resolution for the service-level CPUUtilization and MemoryUtilization Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of 60 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the service revision.

A service revision contains a record of the workload configuration Amazon ECS is attempting to deploy. Whenever you create or deploy a service, Amazon ECS automatically creates and captures the configuration that you're trying to deploy in the service revision. For information about service revisions, see Amazon ECS service revisions in the Amazon Elastic Container Service Developer Guide .

" + } + }, + "com.amazonaws.ecs#ServiceRevisionCleanup": { + "type": "enum", + "members": { + "BLOCKING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLOCKING" + } + }, + "DEFERRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEFERRED" + } + } + }, + "traits": { + "smithy.api#documentation": "

The time when Amazon ECS removes the source revisions' tasks relative to deployment completion. When set to BLOCKING, Amazon ECS removes the previous tasks before completing the deployment. When set to DEFERRED, Amazon ECS completes the deployment first and removes the previous tasks in the background.

" + } + }, + "com.amazonaws.ecs#ServiceRevisionLoadBalancer": { + "type": "structure", + "members": { + "targetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target group associated with the service revision.

" + } + }, + "productionListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the production listener rule or listener that directs traffic to the target group associated with the service revision.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resolved load balancer configuration for a service revision. This includes information about which target groups serve traffic and which listener rules direct traffic to them.

" + } + }, + "com.amazonaws.ecs#ServiceRevisionLoadBalancers": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevisionLoadBalancer" + } + }, + "com.amazonaws.ecs#ServiceRevisionOverrides": { + "type": "structure", + "members": { + "runtimePlatform": { + "target": "com.amazonaws.ecs#RuntimePlatformOverride", + "traits": { + "smithy.api#documentation": "

The runtime platform override that Amazon ECS automatically applies to the service revision. You can't set this value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the runtime overrides that Amazon ECS automatically applies to a service revision when the effective runtime configuration differs from the task definition. This value is read-only.

" + } + }, + "com.amazonaws.ecs#ServiceRevisionResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceName": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceRevisionId": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeServiceRevisions" + } + ], + "traits": { + "aws.api#arn": { + "template": "service-revision/{ClusterName}/{ServiceName}/{ServiceRevisionId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "service-revision", + "relativeDocumentation": "service-revision.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a unique configuration that makes up a service at a point in time" + } + }, + "com.amazonaws.ecs#ServiceRevisionSummary": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service revision.

" + } + }, + "requestedTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of requested tasks for the service revision.

" + } + }, + "runningTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of running tasks for the service revision.

" + } + }, + "pendingTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of pending tasks for the service revision.

" + } + }, + "requestedTestTrafficWeight": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The percentage of test traffic that is directed to this service revision. This value represents a snapshot of the traffic distribution and may not reflect real-time changes during active deployments. Valid values are 0.0 to 100.0.

" + } + }, + "requestedProductionTrafficWeight": { + "target": "com.amazonaws.ecs#Double", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The percentage of production traffic that is directed to this service revision. This value represents a snapshot of the traffic distribution and may not reflect real-time changes during active deployments. Valid values are 0.0 to 100.0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information about the number of requested, pending, and running tasks for a service revision.

" + } + }, + "com.amazonaws.ecs#ServiceRevisionVpcLatticeConfiguration": { + "type": "structure", + "members": { + "targetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the target group associated with the service revision.

" + } + }, + "productionListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the production listener rule or listener that directs traffic to the target group associated with the service revision.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resolved VPC Lattice configuration for a service revision. This includes information about which target groups serve traffic and which listener rules direct traffic to them.

" + } + }, + "com.amazonaws.ecs#ServiceRevisionVpcLatticeConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevisionVpcLatticeConfiguration" + } + }, + "com.amazonaws.ecs#ServiceRevisions": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevision" + } + }, + "com.amazonaws.ecs#ServiceRevisionsSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevisionSummary" + } + }, + "com.amazonaws.ecs#ServiceVolumeConfiguration": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#ECSVolumeName", + "traits": { + "smithy.api#documentation": "

The name of the volume. This value must match the volume name from the Volume object in the task definition.

", + "smithy.api#required": {} + } + }, + "managedEBSVolume": { + "target": "com.amazonaws.ecs#ServiceManagedEBSVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.

" + } + }, + "com.amazonaws.ecs#ServiceVolumeConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceVolumeConfiguration" + } + }, + "com.amazonaws.ecs#Services": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Service" + } + }, + "com.amazonaws.ecs#Session": { + "type": "structure", + "members": { + "sessionId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the execute command session.

" + } + }, + "streamUrl": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A URL to the managed agent on the container that the SSM Session Manager client uses to send commands and receive output from the container.

" + } + }, + "tokenValue": { + "target": "com.amazonaws.ecs#SensitiveString", + "traits": { + "smithy.api#documentation": "

An encrypted token value containing session and caller information. It's used to authenticate the connection to the container.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for the execute command session.

" + } + }, + "com.amazonaws.ecs#Setting": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#SettingName", + "traits": { + "smithy.api#documentation": "

The Amazon ECS resource name.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Determines whether the account setting is on or off for the specified resource.

" + } + }, + "principalArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the principal. It can be a user, role, or the root user. If this field is omitted, the authenticated user is assumed.

" + } + }, + "type": { + "target": "com.amazonaws.ecs#SettingType", + "traits": { + "smithy.api#documentation": "

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.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The current account setting for a resource.

" + } + }, + "com.amazonaws.ecs#SettingName": { + "type": "enum", + "members": { + "SERVICE_LONG_ARN_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "serviceLongArnFormat" + } + }, + "TASK_LONG_ARN_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "taskLongArnFormat" + } + }, + "CONTAINER_INSTANCE_LONG_ARN_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "containerInstanceLongArnFormat" + } + }, + "AWSVPC_TRUNKING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "awsvpcTrunking" + } + }, + "CONTAINER_INSIGHTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "containerInsights" + } + }, + "FARGATE_FIPS_MODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fargateFIPSMode" + } + }, + "TAG_RESOURCE_AUTHORIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tagResourceAuthorization" + } + }, + "FARGATE_TASK_RETIREMENT_WAIT_PERIOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fargateTaskRetirementWaitPeriod" + } + }, + "GUARD_DUTY_ACTIVATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "guardDutyActivate" + } + }, + "DEFAULT_LOG_DRIVER_MODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "defaultLogDriverMode" + } + }, + "FARGATE_EVENT_WINDOWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fargateEventWindows" + } + } + } + }, + "com.amazonaws.ecs#SettingType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "AWS_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws_managed" + } + } + } + }, + "com.amazonaws.ecs#Settings": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Setting" + } + }, + "com.amazonaws.ecs#SharingStrategy": { + "type": "union", + "members": { + "nvidiaMps": { + "target": "com.amazonaws.ecs#NvidiaMpsAllocation", + "traits": { + "smithy.api#documentation": "

Shares a GPU between containers by using NVIDIA Multi-Process Service (MPS). You specify the GPU memory to allocate to the container and, optionally, the maximum percentage of the GPU's compute capacity that the container can use.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The strategy that a container uses to share a GPU with other containers. Specify exactly one member.

" + } + }, + "com.amazonaws.ecs#SortOrder": { + "type": "enum", + "members": { + "ASC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASC" + } + }, + "DESC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESC" + } + } + } + }, + "com.amazonaws.ecs#StabilityStatus": { + "type": "enum", + "members": { + "STEADY_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STEADY_STATE" + } + }, + "STABILIZING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STABILIZING" + } + } + } + }, + "com.amazonaws.ecs#StartTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#StartTaskRequest" + }, + "output": { + "target": "com.amazonaws.ecs#StartTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:enable-ebs-volumes", + "ecs:container-instances", + "ecs:enable-execute-command", + "aws:RequestTag/${TagKey}", + "ecs:cluster", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "createsResources": [ + "task" + ], + "documentation": "Grants permission to start a new task from the specified task definition on the specified container instance or instances", + "relativeDocumentation": "API_StartTask.html", + "requiredActions": [ + "iam:PassRole" + ], + "resources": { + "required": { + "task-definition": {} + } + } + }, + "smithy.api#documentation": "

Starts a new task from the specified task definition on the specified container instance or instances.

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

Amazon Elastic Inference (EI) is no longer available to customers.

Alternatively, you can useRunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more information, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To start a new task", + "documentation": "This example starts a new task in the cluster \"MyCluster\" on the specified container instance using the latest revision of the \"hello-world\" task definition.", + "input": { + "cluster": "MyCluster", + "containerInstances": [ + "4c543eed-f83f-47da-b1d8-3d23f1da4c64" + ], + "taskDefinition": "hello-world" + }, + "output": { + "tasks": [ + { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default", + "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/default/4c543eed-f83f-47da-b1d8-3d23f1da4c64", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/e76594d4-27e1-4c74-98b5-46a6435eb769", + "lastStatus": "PENDING", + "name": "wordpress", + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/default/fdf2c302-468c-4e55-b884-5331d816e7fb" + }, + { + "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/default/b19106ea-4fa8-4f1d-9767-96922c82b070", + "lastStatus": "PENDING", + "name": "mysql", + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/default/fdf2c302-468c-4e55-b884-5331d816e7fb" + } + ], + "createdAt": 1479765460.842, + "desiredStatus": "RUNNING", + "lastStatus": "PENDING", + "overrides": { + "containerOverrides": [ + { + "name": "wordpress" + }, + { + "name": "mysql" + } + ] + }, + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/default/fdf2c302-468c-4e55-b884-5331d816e7fb", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6", + "version": 1 + } + ], + "failures": [] + } + } + ] + } + }, + "com.amazonaws.ecs#StartTaskRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster where to start your task. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "containerInstances": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The container instance IDs or full ARN entries for the container instances where you would like to place your task. You can specify up to 10 container instances.

", + "smithy.api#required": {} + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Whether or not the execute command functionality is turned on for the task. If true, this turns on the execute command functionality on all containers in the task.

" + } + }, + "group": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

" + } + }, + "overrides": { + "target": "com.amazonaws.ecs#TaskOverride", + "traits": { + "smithy.api#documentation": "

A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it receives. You can override the default command for a container (that's specified in the task definition or Docker image) with a command override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an environment override.

A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.

" + } + }, + "referenceId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

This parameter is only used by Amazon ECS. It is not intended for use by customers.

" + } + }, + "startedBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An optional tag specified when a task is started. For example, if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, hyphens (-), forward slash (/), and underscores (_) are allowed.

If a task is started by an Amazon ECS service, the startedBy parameter contains the deployment ID of the service that starts it.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

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.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the task definition to start. If a revision isn't specified, the latest ACTIVE revision is used.

", + "smithy.api#required": {} + } + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#TaskVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must match the name from the task definition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#StartTaskResponse": { + "type": "structure", + "members": { + "tasks": { + "target": "com.amazonaws.ecs#Tasks", + "traits": { + "smithy.api#documentation": "

A full description of the tasks that were started. Each task that was successfully placed on your container instances is described.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#Statistics": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#KeyValuePair" + } + }, + "com.amazonaws.ecs#StopServiceDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#StopServiceDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.ecs#StopServiceDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ConflictException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceDeploymentNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to stop an ongoing service deployment", + "relativeDocumentation": "API_StopServiceDeployment.html", + "resources": { + "required": { + "service-deployment": { + "conditionKeys": [ + "ecs:service", + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + }, + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Stops an ongoing service deployment.

The following stop types are avaiable:

  • ROLLBACK - This option rolls back the service deployment to the previous service revision.

    You can use this option even if you didn't configure the service deployment for the rollback option.

For more information, see Stopping Amazon ECS service deployments in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To stop a service deployment", + "documentation": "This example stops the service deployment using the ROLLBACK option.", + "input": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r", + "stopType": "ROLLBACK" + }, + "output": { + "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/MyCluster/MyService/r9i43YFjvgF_xlg7m2eJ1r" + } + } + ] + } + }, + "com.amazonaws.ecs#StopServiceDeploymentRequest": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the service deployment that you want to stop.

", + "smithy.api#required": {} + } + }, + "stopType": { + "target": "com.amazonaws.ecs#StopServiceDeploymentStopType", + "traits": { + "smithy.api#documentation": "

How you want Amazon ECS to stop the service.

The valid values are ROLLBACK.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#StopServiceDeploymentResponse": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the stopped service deployment.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#StopServiceDeploymentStopType": { + "type": "enum", + "members": { + "ABORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ABORT" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + } + } + }, + "com.amazonaws.ecs#StopTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#StopTaskRequest" + }, + "output": { + "target": "com.amazonaws.ecs#StopTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to stop a running task", + "relativeDocumentation": "API_StopTask.html", + "resources": { + "required": { + "task": {} + } + } + }, + "smithy.api#documentation": "

Stops a running task. Any tags associated with the task will be deleted.

When you call StopTask on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a stop signal value and a default 30-second timeout, after which the SIGKILL value is sent and the containers are forcibly stopped. This signal can be defined in your container image with the STOPSIGNAL instruction and will default to SIGTERM. If the container handles the SIGTERM value gracefully and exits within 30 seconds from receiving it, no SIGKILL value is sent.

For Windows containers, POSIX signals do not work and runtime stops the container by sending a CTRL_SHUTDOWN_EVENT. For more information, see Unable to react to graceful shutdown of (Windows) container #25982 on GitHub.

The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To stop a task", + "documentation": "This example stops a task with ID \"1dc5c17a-422b-4dc4-b493-371970c6c4d6\" in cluster \"MyCluster\".", + "input": { + "cluster": "MyCluster", + "task": "1dc5c17a-422b-4dc4-b493-371970c6c4d6", + "reason": "testing stop task." + }, + "output": { + "task": { + "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/MyCluster", + "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/MyCluster/5991d8da-1d59-49d2-a31f-4230f9e73140", + "containers": [ + { + "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/4df26bb4-f057-467b-a079-961675296e64", + "lastStatus": "RUNNING", + "name": "simple-app", + "networkBindings": [ + { + "bindIP": "0.0.0.0", + "containerPort": 80, + "hostPort": 32774, + "protocol": "tcp" + } + ], + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/MyCluster/1dc5c17a-422b-4dc4-b493-371970c6c4d6" + }, + { + "containerArn": "arn:aws:ecs:us-east-1:012345678910:container/e09064f7-7361-4c87-8ab9-8d073bbdbcb9", + "lastStatus": "RUNNING", + "name": "busybox", + "networkBindings": [], + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/MyCluster/1dc5c17a-422b-4dc4-b493-371970c6c4d6" + } + ], + "createdAt": 1476822811.295, + "desiredStatus": "STOPPED", + "lastStatus": "RUNNING", + "overrides": { + "containerOverrides": [ + { + "name": "simple-app" + }, + { + "name": "busybox" + } + ] + }, + "startedAt": 1476822833.998, + "startedBy": "ecs-svc/9223370560032507596", + "stoppedReason": "testing stop task.", + "taskArn": "arn:aws:ecs:us-east-1:012345678910:task/1dc5c17a-422b-4dc4-b493-371970c6c4d6", + "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/console-sample-app-dynamic-ports:1", + "version": 0 + } + } + } + ] + } + }, + "com.amazonaws.ecs#StopTaskRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "task": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Thefull Amazon Resource Name (ARN) of the task.

", + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

An optional message specified when a task is stopped. For example, if you're using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent DescribeTasks> API operations on this task.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#StopTaskResponse": { + "type": "structure", + "members": { + "task": { + "target": "com.amazonaws.ecs#Task", + "traits": { + "smithy.api#documentation": "

The task that was stopped.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#String": { + "type": "string" + }, + "com.amazonaws.ecs#StringList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#StringMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ecs#String" + }, + "value": { + "target": "com.amazonaws.ecs#String" + } + }, + "com.amazonaws.ecs#SubmitAttachmentStateChanges": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#SubmitAttachmentStateChangesRequest" + }, + "output": { + "target": "com.amazonaws.ecs#SubmitAttachmentStateChangesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to send an acknowledgement that attachments changed states", + "relativeDocumentation": "API_SubmitAttachmentStateChanges.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that an attachment changed states.

" + } + }, + "com.amazonaws.ecs#SubmitAttachmentStateChangesRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full ARN of the cluster that hosts the container instance the attachment belongs to.

" + } + }, + "attachments": { + "target": "com.amazonaws.ecs#AttachmentStateChanges", + "traits": { + "smithy.api#documentation": "

Any attachments associated with the state change request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#SubmitAttachmentStateChangesResponse": { + "type": "structure", + "members": { + "acknowledgment": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Acknowledgement of the state change.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#SubmitContainerStateChange": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#SubmitContainerStateChangeRequest" + }, + "output": { + "target": "com.amazonaws.ecs#SubmitContainerStateChangeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to send an acknowledgement that a container changed states", + "relativeDocumentation": "API_SubmitContainerStateChange.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a container changed states.

" + } + }, + "com.amazonaws.ecs#SubmitContainerStateChangeRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full ARN of the cluster that hosts the container.

" + } + }, + "task": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task ID or full Amazon Resource Name (ARN) of the task that hosts the container.

" + } + }, + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the container.

" + } + }, + "runtimeId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the Docker container.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the state change request.

" + } + }, + "exitCode": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The exit code that's returned for the state change request.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the state change request.

" + } + }, + "networkBindings": { + "target": "com.amazonaws.ecs#NetworkBindings", + "traits": { + "smithy.api#documentation": "

The network bindings of the container.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#SubmitContainerStateChangeResponse": { + "type": "structure", + "members": { + "acknowledgment": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Acknowledgement of the state change.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#SubmitTaskStateChange": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#SubmitTaskStateChangeRequest" + }, + "output": { + "target": "com.amazonaws.ecs#SubmitTaskStateChangeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to send an acknowledgement that a task changed states", + "relativeDocumentation": "API_SubmitTaskStateChange.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a task changed states.

" + } + }, + "com.amazonaws.ecs#SubmitTaskStateChangeRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.

" + } + }, + "task": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task ID or full ARN of the task in the state change request.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the state change request.

" + } + }, + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason for the state change request.

" + } + }, + "containers": { + "target": "com.amazonaws.ecs#ContainerStateChanges", + "traits": { + "smithy.api#documentation": "

Any containers that's associated with the state change request.

" + } + }, + "attachments": { + "target": "com.amazonaws.ecs#AttachmentStateChanges", + "traits": { + "smithy.api#documentation": "

Any attachments associated with the state change request.

" + } + }, + "managedAgents": { + "target": "com.amazonaws.ecs#ManagedAgentStateChanges", + "traits": { + "smithy.api#documentation": "

The details for the managed agent that's associated with the task.

" + } + }, + "pullStartedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the container image pull started.

" + } + }, + "pullStoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the container image pull completed.

" + } + }, + "executionStoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task execution stopped.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#SubmitTaskStateChangeResponse": { + "type": "structure", + "members": { + "acknowledgment": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Acknowledgement of the state change.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#SystemControl": { + "type": "structure", + "members": { + "namespace": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespaced kernel parameter to set a value for.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The namespaced kernel parameter to set a value for.

Valid IPC namespace values: \"kernel.msgmax\" | \"kernel.msgmnb\" | \"kernel.msgmni\" | \"kernel.sem\" | \"kernel.shmall\" | \"kernel.shmmax\" | \"kernel.shmmni\" | \"kernel.shm_rmid_forced\", and Sysctls that start with \"fs.mqueue.*\"

Valid network namespace values: Sysctls that start with \"net.*\". Only namespaced Sysctls that exist within the container starting with \"net.* are accepted.

All of these values are supported by Fargate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the docker container create command and the --sysctl option to docker run. For example, you can configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections.

We don't recommend that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network mode. Doing this has the following disadvantages:

  • For tasks that use the awsvpc network mode including Fargate, if you set systemControls for any container, it applies to all containers in the task. If you set different systemControls for multiple containers in a single task, the container that's started last determines which systemControls take effect.

  • For tasks that use the host network mode, the network namespace systemControls aren't supported.

If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see IPC mode.

  • For tasks that use the host IPC mode, IPC namespace systemControls aren't supported.

  • For tasks that use the task IPC mode, IPC namespace systemControls values apply to all containers within a task.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

" + } + }, + "com.amazonaws.ecs#SystemControls": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#SystemControl" + } + }, + "com.amazonaws.ecs#Tag": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.ecs#TagKey", + "traits": { + "smithy.api#documentation": "

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.

" + } + }, + "value": { + "target": "com.amazonaws.ecs#TagValue", + "traits": { + "smithy.api#documentation": "

The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

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.

" + } + }, + "com.amazonaws.ecs#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.ecs#TagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TagKey" + } + }, + "com.amazonaws.ecs#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:CreateAction", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to tag the specified resource", + "relativeDocumentation": "API_TagResource.html", + "resources": { + "optional": { + "cluster": {}, + "task": {}, + "container-instance": {}, + "task-definition": {}, + "service": {}, + "task-set": {}, + "capacity-provider": {}, + "daemon": {}, + "daemon-task-definition": {}, + "gateway": {} + } + } + }, + "smithy.api#documentation": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags that are associated with that resource are deleted as well.

", + "smithy.api#examples": [ + { + "title": "To tag a cluster.", + "documentation": "This example tags the 'dev' cluster with key 'team' and value 'dev'.", + "input": { + "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev", + "tags": [ + { + "key": "team", + "value": "dev" + } + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ecs#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. For more information, see Migrate an Amazon ECS short service ARN to a long ARN in the Amazon Elastic Container Service Developer Guide.

arn:aws:ecs:region:aws_account_id:service/service-name

After the migration is complete, the service has the long ARN format, as shown below. Use this ARN to tag the service.

arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

If you try to tag a service with a short ARN, you receive an InvalidParameterException error.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The tags to add to the resource. A tag is an array of key-value pairs.

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.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.ecs#Tags": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.ecs#TargetNotConnectedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The execute command cannot run. This error can be caused by any of the following configuration issues:

  • Incorrect IAM permissions

  • The SSM agent is not installed or is not running

  • There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for Systems Manager Session Manager

For information about how to troubleshoot the issues, see Troubleshooting issues with ECS Exec in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#TargetNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified target wasn't found. You can view your available container instances with ListContainerInstances. Amazon ECS container instances are cluster-specific and Region-specific.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#TargetType": { + "type": "enum", + "members": { + "CONTAINER_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "container-instance" + } + } + } + }, + "com.amazonaws.ecs#Task": { + "type": "structure", + "members": { + "attachments": { + "target": "com.amazonaws.ecs#Attachments", + "traits": { + "smithy.api#documentation": "

The Elastic Network Adapter that's associated with the task if the task uses the awsvpc network mode.

" + } + }, + "attributes": { + "target": "com.amazonaws.ecs#Attributes", + "traits": { + "smithy.api#documentation": "

The attributes of the task

" + } + }, + "availabilityZone": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone for the task.

" + } + }, + "capacityProviderName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The capacity provider that's associated with the task.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the cluster that hosts the task.

" + } + }, + "connectivity": { + "target": "com.amazonaws.ecs#Connectivity", + "traits": { + "smithy.api#documentation": "

The connectivity status of a task.

" + } + }, + "connectivityAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task last went into CONNECTED status.

" + } + }, + "containerInstanceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the container instances that host the task.

" + } + }, + "containers": { + "target": "com.amazonaws.ecs#Containers", + "traits": { + "smithy.api#documentation": "

The containers that's associated with the task.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the task as expressed in a task definition. It can be expressed as an integer using CPU units (for example, 1024). It can also be expressed as a string using vCPUs (for example, 1 vCPU or 1 vcpu). String values are converted to an integer that indicates the CPU units when the task definition is registered.

If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 196608 CPU units (192 vCPUs). If you do not specify a value, the parameter is ignored.

This field is required for Fargate. For information about the valid values, see Task size in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task was created. More specifically, it's for the time when the task entered the PENDING state.

" + } + }, + "desiredStatus": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The desired status of the task. For more information, see Task Lifecycle.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task.

" + } + }, + "executionStoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task execution stopped.

" + } + }, + "group": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the task group that's associated with the task.

" + } + }, + "healthStatus": { + "target": "com.amazonaws.ecs#HealthStatus", + "traits": { + "smithy.api#documentation": "

The health status for the task. It's determined by the health of the essential containers in the task. If all essential containers in the task are reporting as HEALTHY, the task status also reports as HEALTHY. If any essential containers in the task are reporting as UNHEALTHY or UNKNOWN, the task status also reports as UNHEALTHY or UNKNOWN.

The Amazon ECS container agent doesn't monitor or report on Docker health checks that are embedded in a container image and not specified in the container definition. For example, this includes those specified in a parent image or from the image's Dockerfile. Health check parameters that are specified in a container definition override any Docker health checks that are found in the container image.

" + } + }, + "inferenceAccelerators": { + "target": "com.amazonaws.ecs#InferenceAccelerators", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator that's associated with the task.

" + } + }, + "lastStatus": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The last known status for the task. For more information, see Task Lifecycle.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The infrastructure where your task runs on. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) that the task uses as expressed in a task definition. It can be expressed as an integer using MiB (for example, 1024). If it's expressed as a string using GB (for example, 1GB or 1 GB), it's converted to an integer indicating the MiB when the task definition is registered.

If you use the EC2 launch type, this field is optional.

If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines the range of supported values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" + } + }, + "overrides": { + "target": "com.amazonaws.ecs#TaskOverride", + "traits": { + "smithy.api#documentation": "

One or more container overrides.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version where your task runs on. A platform version is only specified for tasks that use the Fargate launch type. If you didn't specify one, the LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The operating system that your tasks are running on. A platform family is specified only for tasks that use the Fargate launch type.

All tasks that run as part of this service must use the same platformFamily value as the service (for example, LINUX.).

" + } + }, + "pullStartedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the container image pull began.

" + } + }, + "pullStoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the container image pull completed.

" + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task started. More specifically, it's for the time when the task transitioned from the PENDING state to the RUNNING state.

" + } + }, + "startedBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The tag specified when a task is started. If an Amazon ECS service started the task, the startedBy parameter contains the deployment ID of that service.

" + } + }, + "stopCode": { + "target": "com.amazonaws.ecs#TaskStopCode", + "traits": { + "smithy.api#documentation": "

The stop code indicating why a task was stopped. The stoppedReason might contain additional details.

For more information about stop code, see Stopped tasks error codes in the Amazon ECS Developer Guide.

" + } + }, + "stoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task was stopped. More specifically, it's for the time when the task transitioned from the RUNNING state to the STOPPED state.

" + } + }, + "stoppedReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The reason that the task was stopped.

" + } + }, + "stoppingAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task stops. More specifically, it's for the time when the task transitions from the RUNNING state to STOPPING.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task to help you categorize and organize the task. Each tag consists of a key and an optional value. You define both the key and value.

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.

" + } + }, + "taskArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task.

" + } + }, + "taskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the task definition that creates the task.

" + } + }, + "version": { + "target": "com.amazonaws.ecs#Long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The version counter for the task. Every time a task experiences a change that starts a CloudWatch event, the version counter is incremented. If you replicate your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API actions with the version reported in CloudWatch Events for the task (inside the detail object) to verify that the version in your event stream is current.

" + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.ecs#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The ephemeral storage settings for the task.

" + } + }, + "fargateEphemeralStorage": { + "target": "com.amazonaws.ecs#TaskEphemeralStorage", + "traits": { + "smithy.api#documentation": "

The Fargate ephemeral storage settings for the task.

" + } + }, + "trustedExecutionSummary": { + "target": "com.amazonaws.ecs#TrustedExecutionSummary", + "traits": { + "smithy.api#documentation": "

A summary of the trusted execution configuration for the task, including the isolation mode. This is a read-only view of the configuration that was set on the task definition.

Trusted execution is supported only for Amazon ECS Managed Instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on a task in a cluster.

" + } + }, + "com.amazonaws.ecs#TaskDefinition": { + "type": "structure", + "members": { + "taskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the task definition.

" + } + }, + "containerDefinitions": { + "target": "com.amazonaws.ecs#ContainerDefinitions", + "traits": { + "smithy.api#documentation": "

A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "family": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of a family that this task definition is registered to. Up to 255 characters are allowed. Letters (both uppercase and lowercase letters), numbers, hyphens (-), and underscores (_) are allowed.

A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the Identity and Access Management role that grants containers in the task permission to call Amazon Web Services APIs on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make Amazon Web Services API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "networkMode": { + "target": "com.amazonaws.ecs#NetworkMode", + "traits": { + "smithy.api#documentation": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. If no network mode is specified, the default is bridge.

For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc can be used. If the network mode is set to none, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode.

With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.

When using the host network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.

If the network mode is awsvpc, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

If the network mode is host, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.

" + } + }, + "revision": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is 1. Each time that you register a new revision of a task definition in the same family, the revision value always increases by one. This is even if you deregistered previous revisions in this family.

" + } + }, + "volumes": { + "target": "com.amazonaws.ecs#VolumeList", + "traits": { + "smithy.api#documentation": "

The list of data volume definitions for the task. For more information, see Using data volumes in tasks in the Amazon Elastic Container Service Developer Guide.

The host and sourcePath parameters aren't supported for tasks run on Fargate.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#TaskDefinitionStatus", + "traits": { + "smithy.api#documentation": "

The status of the task definition.

" + } + }, + "requiresAttributes": { + "target": "com.amazonaws.ecs#RequiresAttributes", + "traits": { + "smithy.api#documentation": "

The container instance attributes required by your task. When an Amazon EC2 instance is registered to your cluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply custom attributes. These are specified as key-value pairs using the Amazon ECS console or the PutAttributes API. These attributes are used when determining task placement for tasks hosted on Amazon EC2 instances. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

This parameter isn't supported for tasks run on Fargate.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraints", + "traits": { + "smithy.api#documentation": "

An array of placement constraint objects to use for tasks.

This parameter isn't supported for tasks run on Fargate.

" + } + }, + "compatibilities": { + "target": "com.amazonaws.ecs#CompatibilityList", + "traits": { + "smithy.api#documentation": "

Amazon ECS validates the task definition parameters with those supported by the launch type. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "runtimePlatform": { + "target": "com.amazonaws.ecs#RuntimePlatform", + "traits": { + "smithy.api#documentation": "

The operating system that your task definitions are running on. A platform family is specified only for tasks using the Fargate launch type.

When you specify a task in a service, this value must match the runtimePlatform value of the service.

" + } + }, + "requiresCompatibilities": { + "target": "com.amazonaws.ecs#CompatibilityList", + "traits": { + "smithy.api#documentation": "

The task launch types the task definition was validated against. The valid values are MANAGED_INSTANCES, EC2, FARGATE, and EXTERNAL. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of cpu units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the memory parameter.

If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 196608 CPU units (192 vCPUs).

This field is required for Fargate. For information about the valid values, see Task size in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount (in MiB) of memory used by the task.

If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.

If your tasks runs on Fargate, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" + } + }, + "inferenceAccelerators": { + "target": "com.amazonaws.ecs#InferenceAccelerators", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator that's associated with the task.

" + } + }, + "pidMode": { + "target": "com.amazonaws.ecs#PidMode", + "traits": { + "smithy.api#documentation": "

The process namespace to use for the containers in the task. The valid values are host or task. On Fargate for Linux containers, the only valid value is task. For example, monitoring sidecars might need pidMode to access information about other containers running in the same task.

If host is specified, all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same process namespace.

If no value is specified, the The default is a private namespace for each container.

If the host PID mode is used, there's a heightened risk of undesired process namespace exposure.

This parameter is not supported for Windows containers.

This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate.

" + } + }, + "ipcMode": { + "target": "com.amazonaws.ecs#IpcMode", + "traits": { + "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

  • For tasks that use the host IPC mode, IPC namespace related systemControls are not supported.

  • For tasks that use the task IPC mode, IPC namespace related systemControls will apply to all containers within a task.

This parameter is not supported for Windows containers or tasks run on Fargate.

" + } + }, + "proxyConfiguration": { + "target": "com.amazonaws.ecs#ProxyConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ecs-init package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version 20190301 or later, they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "registeredAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task definition was registered.

" + } + }, + "deregisteredAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task definition was deregistered.

" + } + }, + "deleteRequestedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task definition delete was requested.

" + } + }, + "registeredBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The principal that registered the task definition.

" + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.ecs#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The ephemeral storage settings to use for tasks run with the task definition.

" + } + }, + "enableFaultInjection": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is false.

" + } + }, + "trustedExecutionConfiguration": { + "target": "com.amazonaws.ecs#TrustedExecutionConfiguration", + "traits": { + "smithy.api#documentation": "

The trusted execution configuration for tasks that use this task definition, including the isolation mode and, if configured, an attestation policy.

Trusted execution is supported only for Amazon ECS Managed Instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a task definition which describes the container and volume definitions of an Amazon Elastic Container Service task. You can specify which Docker images to use, the required resources, and other configurations related to launching the task definition through an Amazon ECS service or task.

" + } + }, + "com.amazonaws.ecs#TaskDefinitionFamilyStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + } + }, + "com.amazonaws.ecs#TaskDefinitionField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#TaskDefinitionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskDefinitionField" + } + }, + "com.amazonaws.ecs#TaskDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskDefinition" + } + }, + "com.amazonaws.ecs#TaskDefinitionPlacementConstraint": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraintType", + "traits": { + "smithy.api#documentation": "

The type of constraint. The MemberOf constraint restricts selection to be from a group of valid candidates.

" + } + }, + "expression": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

A cluster query language expression to apply to the constraint. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The constraint on task placement in the task definition. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

Task placement constraints aren't supported for tasks run on Fargate.

" + } + }, + "com.amazonaws.ecs#TaskDefinitionPlacementConstraintType": { + "type": "enum", + "members": { + "MEMBER_OF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "memberOf" + } + } + } + }, + "com.amazonaws.ecs#TaskDefinitionPlacementConstraints": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskDefinitionPlacementConstraint" + } + }, + "com.amazonaws.ecs#TaskDefinitionResource": { + "type": "resource", + "identifiers": { + "TaskDefinitionFamilyName": { + "target": "com.amazonaws.ecs#String" + }, + "TaskDefinitionRevisionNumber": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DeleteTaskDefinitions" + }, + { + "target": "com.amazonaws.ecs#ListTaskDefinitions" + }, + { + "target": "com.amazonaws.ecs#RegisterTaskDefinition" + } + ], + "traits": { + "aws.api#arn": { + "template": "task-definition/{TaskDefinitionFamilyName}:{TaskDefinitionRevisionNumber}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "task-definition", + "relativeDocumentation": "task_definitions.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a collection of settings that are used to run Docker containers in Amazon ECS" + } + }, + "com.amazonaws.ecs#TaskDefinitionStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INACTIVE" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + } + } + }, + "com.amazonaws.ecs#TaskEphemeralStorage": { + "type": "structure", + "members": { + "sizeInGiB": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total amount, in GiB, of the ephemeral storage to set for the task. The minimum supported value is 20 GiB and the maximum supported value is 200 GiB.

" + } + }, + "kmsKeyId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Specify an Key Management Service key ID to encrypt the ephemeral storage for the task.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task.

" + } + }, + "com.amazonaws.ecs#TaskField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#TaskFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskField" + } + }, + "com.amazonaws.ecs#TaskFilesystemType": { + "type": "enum", + "members": { + "EXT3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ext3" + } + }, + "EXT4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ext4" + } + }, + "XFS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "xfs" + } + }, + "NTFS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ntfs" + } + } + } + }, + "com.amazonaws.ecs#TaskManagedEBSVolumeConfiguration": { + "type": "structure", + "members": { + "encrypted": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume should be encrypted. If you turn on Region-level Amazon EBS encryption by default but set this value as false, the setting is overridden and the volume is encrypted with the KMS key specified for Amazon EBS encryption by default. This parameter maps 1:1 with the Encrypted parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "kmsKeyId": { + "target": "com.amazonaws.ecs#EBSKMSKeyId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When a key is specified using this parameter, it overrides Amazon EBS default encryption or any KMS key that you specified for cluster-level managed storage encryption. This parameter maps 1:1 with the KmsKeyId parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information about encrypting Amazon EBS volumes attached to a task, see Encrypt data stored in Amazon EBS volumes attached to Amazon ECS tasks.

Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or ARN that is invalid, the action can appear to complete, but eventually fails.

" + } + }, + "volumeType": { + "target": "com.amazonaws.ecs#EBSVolumeType", + "traits": { + "smithy.api#documentation": "

The volume type. This parameter maps 1:1 with the VolumeType parameter of the CreateVolume API in the Amazon EC2 API Reference. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide.

The following are the supported volume types.

  • General Purpose SSD: gp2|gp3

  • Provisioned IOPS SSD: io1|io2

  • Throughput Optimized HDD: st1

  • Cold HDD: sc1

  • Magnetic: standard

    The magnetic volume type is not supported on Fargate.

" + } + }, + "sizeInGiB": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify a snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a volume size greater than or equal to the snapshot size. This parameter maps 1:1 with the Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

The following are the supported volume size values for each volume type.

  • gp2 and gp3: 1-16,384

  • io1 and io2: 4-16,384

  • st1 and sc1: 125-16,384

  • standard: 1-1,024

" + } + }, + "snapshotId": { + "target": "com.amazonaws.ecs#EBSSnapshotId", + "traits": { + "smithy.api#documentation": "

The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot ID or a volume size. This parameter maps 1:1 with the SnapshotId parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "volumeInitializationRate": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The rate, in MiB/s, at which data is fetched from a snapshot of an existing Amazon EBS volume to create a new volume for attachment to the task. This property can be specified only if you specify a snapshotId. For more information, see Initialize Amazon EBS volumes in the Amazon EBS User Guide.

" + } + }, + "iops": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.

The following are the supported values for each volume type.

  • gp3: 3,000 - 16,000 IOPS

  • io1: 100 - 64,000 IOPS

  • io2: 100 - 256,000 IOPS

This parameter is required for io1 and io2 volume types. The default for gp3 volumes is 3,000 IOPS. This parameter is not supported for st1, sc1, or standard volume types.

This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "throughput": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter maps 1:1 with the Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

This parameter is only supported for the gp3 volume type.

" + } + }, + "tagSpecifications": { + "target": "com.amazonaws.ecs#EBSTagSpecifications", + "traits": { + "smithy.api#documentation": "

The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

" + } + }, + "roleArn": { + "target": "com.amazonaws.ecs#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed AmazonECSInfrastructureRolePolicyForVolumes IAM policy with this role. For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "terminationPolicy": { + "target": "com.amazonaws.ecs#TaskManagedEBSVolumeTerminationPolicy", + "traits": { + "smithy.api#documentation": "

The termination policy for the volume when the task exits. This provides a way to control whether Amazon ECS terminates the Amazon EBS volume when the task stops.

" + } + }, + "filesystemType": { + "target": "com.amazonaws.ecs#TaskFilesystemType", + "traits": { + "smithy.api#documentation": "

The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.

The available filesystem types are ext3, ext4, and xfs. If no value is specified, the xfs filesystem type is used by default.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task.

" + } + }, + "com.amazonaws.ecs#TaskManagedEBSVolumeTerminationPolicy": { + "type": "structure", + "members": { + "deleteOnTermination": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume should be deleted on when the task stops. If a value of true is specified, Amazon ECS deletes the Amazon EBS volume on your behalf when the task goes into the STOPPED state. If no value is specified, the default value is true is used. When set to false, Amazon ECS leaves the volume in your account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The termination policy for the Amazon EBS volume when the task exits. For more information, see Amazon ECS volume termination policy.

" + } + }, + "com.amazonaws.ecs#TaskOverride": { + "type": "structure", + "members": { + "containerOverrides": { + "target": "com.amazonaws.ecs#ContainerOverrides", + "traits": { + "smithy.api#documentation": "

One or more container overrides that are sent to a task.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The CPU override for the task.

" + } + }, + "inferenceAcceleratorOverrides": { + "target": "com.amazonaws.ecs#InferenceAcceleratorOverrides", + "traits": { + "smithy.api#documentation": "

The Elastic Inference accelerator override for the task.

" + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The memory override for the task.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Role for Tasks in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "ephemeralStorage": { + "target": "com.amazonaws.ecs#EphemeralStorage", + "traits": { + "smithy.api#documentation": "

The ephemeral storage setting override for the task.

This parameter is only supported for tasks hosted on Fargate that use the following platform versions:

  • Linux platform version 1.4.0 or later.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The overrides that are associated with a task.

" + } + }, + "com.amazonaws.ecs#TaskResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "TaskId": { + "target": "com.amazonaws.ecs#String" + } + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#DescribeTasks" + }, + { + "target": "com.amazonaws.ecs#GetTaskProtection" + }, + { + "target": "com.amazonaws.ecs#RunTask" + }, + { + "target": "com.amazonaws.ecs#StartTask" + }, + { + "target": "com.amazonaws.ecs#StopTask" + }, + { + "target": "com.amazonaws.ecs#UpdateTaskProtection" + } + ], + "traits": { + "aws.api#arn": { + "template": "task/{ClusterName}/{TaskId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "task", + "relativeDocumentation": "scheduling_tasks.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents an instantiation of a task definition on a container instance that is within your cluster" + } + }, + "com.amazonaws.ecs#TaskSet": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of the task set.

" + } + }, + "taskSetArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task set.

" + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service the task set exists in.

" + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.

" + } + }, + "startedBy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The tag specified when a task set is started. If an CodeDeploy deployment created the task set, the startedBy parameter is CODE_DEPLOY. If an external deployment created the task set, the startedBy field isn't used.

" + } + }, + "externalId": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The external ID associated with the task set.

If an CodeDeploy deployment created a task set, the externalId parameter contains the CodeDeploy deployment ID.

If a task set is created for an external deployment and is associated with a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID Cloud Map attribute.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The status of the task set. The following describes each state.

PRIMARY

The task set is serving production traffic.

ACTIVE

The task set isn't serving production traffic.

DRAINING

The tasks in the task set are being stopped, and their corresponding targets are being deregistered from their target group.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The task definition that the task set is using.

" + } + }, + "computedDesiredCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The computed desired count for the task set. This is calculated by multiplying the service's desiredCount by the task set's scale percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.

" + } + }, + "pendingCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the task set that are in the PENDING status during a deployment. A task in the PENDING state is preparing to enter the RUNNING state. A task set enters the PENDING status when it launches for the first time or when it's restarted after being in the STOPPED state.

" + } + }, + "runningCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of tasks in the task set that are in the RUNNING status during a deployment. A task in the RUNNING state is running and ready for use.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task set was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task set was last updated.

" + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The capacity provider strategy that are associated with the task set.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Fargate platform version where the tasks in the task set are running. A platform version is only specified for tasks run on Fargate. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The operating system that your tasks in the set are running on. A platform family is specified only for tasks that use the Fargate launch type.

All tasks in the set must have the same value.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the task set.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

Details on a load balancer that are used with a task set.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The details for the service discovery registries to assign to this task set. For more information, see Service discovery.

" + } + }, + "scale": { + "target": "com.amazonaws.ecs#Scale", + "traits": { + "smithy.api#documentation": "

A floating-point percentage of your desired number of tasks to place and keep running in the task set.

" + } + }, + "stabilityStatus": { + "target": "com.amazonaws.ecs#StabilityStatus", + "traits": { + "smithy.api#documentation": "

The stability status. This indicates whether the task set has reached a steady state. If the following conditions are met, the task set are in STEADY_STATE:

  • The task runningCount is equal to the computedDesiredCount.

  • The pendingCount is 0.

  • There are no tasks that are running on container instances in the DRAINING status.

  • All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks.

If any of those conditions aren't met, the stability status returns STABILIZING.

" + } + }, + "stabilityStatusAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the task set stability status was retrieved.

" + } + }, + "tags": { + "target": "com.amazonaws.ecs#Tags", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the task set to help you categorize and organize them. 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.

" + } + }, + "fargateEphemeralStorage": { + "target": "com.amazonaws.ecs#DeploymentEphemeralStorage", + "traits": { + "smithy.api#documentation": "

The Fargate ephemeral storage settings for the task set.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.

" + } + }, + "com.amazonaws.ecs#TaskSetField": { + "type": "enum", + "members": { + "TAGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAGS" + } + } + } + }, + "com.amazonaws.ecs#TaskSetFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskSetField" + } + }, + "com.amazonaws.ecs#TaskSetNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified task set wasn't found. You can view your available task sets with DescribeTaskSets. Task sets are specific to each cluster, service and Region.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#TaskSetResource": { + "type": "resource", + "identifiers": { + "ClusterName": { + "target": "com.amazonaws.ecs#String" + }, + "ServiceName": { + "target": "com.amazonaws.ecs#String" + }, + "TaskSetId": { + "target": "com.amazonaws.ecs#String" + } + }, + "update": { + "target": "com.amazonaws.ecs#UpdateTaskSet" + }, + "delete": { + "target": "com.amazonaws.ecs#DeleteTaskSet" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.ecs#CreateTaskSet" + }, + { + "target": "com.amazonaws.ecs#DescribeTaskSets" + } + ], + "traits": { + "aws.api#arn": { + "template": "task-set/{ClusterName}/{ServiceName}/{TaskSetId}" + }, + "aws.api#taggable": {}, + "aws.iam#conditionKeys": [ + "ecs:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamResource": { + "name": "task-set", + "relativeDocumentation": "deployment-type-external.html", + "disableConditionKeyInheritance": true + }, + "smithy.api#documentation": "Represents a primitive that is used to manage application deployments in a controlled manner within a single ECS Service" + } + }, + "com.amazonaws.ecs#TaskSets": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskSet" + } + }, + "com.amazonaws.ecs#TaskStopCode": { + "type": "enum", + "members": { + "TASK_FAILED_TO_START": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TaskFailedToStart" + } + }, + "ESSENTIAL_CONTAINER_EXITED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EssentialContainerExited" + } + }, + "USER_INITIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UserInitiated" + } + }, + "SERVICE_SCHEDULER_INITIATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServiceSchedulerInitiated" + } + }, + "SPOT_INTERRUPTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SpotInterruption" + } + }, + "TERMINATION_NOTICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TerminationNotice" + } + }, + "INFRASTRUCTURE_HEALTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InfrastructureHealth" + } + } + } + }, + "com.amazonaws.ecs#TaskVolumeConfiguration": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#ECSVolumeName", + "traits": { + "smithy.api#documentation": "

The name of the volume. This value must match the volume name from the Volume object in the task definition.

", + "smithy.api#required": {} + } + }, + "managedEBSVolume": { + "target": "com.amazonaws.ecs#TaskManagedEBSVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration settings for the task volume that was configuredAtLaunch that weren't set during RegisterTaskDef.

" + } + }, + "com.amazonaws.ecs#TaskVolumeConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#TaskVolumeConfiguration" + } + }, + "com.amazonaws.ecs#TaskVolumeStorageGiB": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.ecs#Tasks": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Task" + } + }, + "com.amazonaws.ecs#ThresholdConfiguration": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.ecs#ThresholdType", + "traits": { + "smithy.api#documentation": "

Determines how Amazon ECS uses value to calculate the failure threshold. For the percentage types (BOUNDED_PERCENT and UNBOUNDED_PERCENT), Amazon ECS multiplies value by the latest service desired count. For COUNT, Amazon ECS uses value directly as the threshold. The default is BOUNDED_PERCENT.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Specifies the integer that Amazon ECS uses to calculate the failure threshold. When type is COUNT, this value is the failure threshold itself. When type is a percentage type, Amazon ECS multiplies this value by the latest service desired count to produce the failure threshold. The default is 50.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the failure threshold that the deployment circuit breaker uses to monitor a deployment. The type and value together determine the number of task failures that are tolerated before the circuit breaker triggers.

By default, the threshold configuration uses a type of BOUNDED_PERCENT with a value of 50.

" + } + }, + "com.amazonaws.ecs#ThresholdType": { + "type": "enum", + "members": { + "COUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Amazon ECS uses the integer provided in value directly as the failure threshold.

", + "smithy.api#enumValue": "COUNT" + } + }, + "BOUNDED_PERCENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Amazon ECS calculates the failure threshold by multiplying value by the latest service desired count, then clamping the result to a minimum of 3 and a maximum of 200. This is the default threshold type, with a default value of 50.

", + "smithy.api#enumValue": "BOUNDED_PERCENT" + } + }, + "UNBOUNDED_PERCENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Amazon ECS calculates the failure threshold by multiplying value by the latest service desired count, without applying the 3-to-200 bounds. Use this when the desired count is large enough that the calculated threshold should be allowed to exceed 200.

", + "smithy.api#enumValue": "UNBOUNDED_PERCENT" + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines how the deployment circuit breaker calculates the number of task failures tolerated before it triggers, based on the configured value.

" + } + }, + "com.amazonaws.ecs#TimeoutConfiguration": { + "type": "structure", + "members": { + "idleTimeoutSeconds": { + "target": "com.amazonaws.ecs#Duration", + "traits": { + "smithy.api#documentation": "

The amount of time in seconds a connection will stay active while idle. A value of 0 can be set to disable idleTimeout.

The idleTimeout default for HTTP/HTTP2/GRPC is 5 minutes.

The idleTimeout default for TCP is 1 hour.

" + } + }, + "perRequestTimeoutSeconds": { + "target": "com.amazonaws.ecs#Duration", + "traits": { + "smithy.api#documentation": "

The amount of time waiting for the upstream to respond with a complete response per request. A value of 0 can be set to disable perRequestTimeout. perRequestTimeout can only be set if Service Connect appProtocol isn't TCP. Only idleTimeout is allowed for TCP appProtocol.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the timeout configurations for Service Connect.

If idleTimeout is set to a time that is less than perRequestTimeout, the connection will close when the idleTimeout is reached and not the perRequestTimeout.

" + } + }, + "com.amazonaws.ecs#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.ecs#Tmpfs": { + "type": "structure", + "members": { + "containerPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The absolute file path where the tmpfs volume is to be mounted.

", + "smithy.api#required": {} + } + }, + "size": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum size (in MiB) of the tmpfs volume.

", + "smithy.api#required": {} + } + }, + "mountOptions": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container path, mount options, and size of the tmpfs mount.

" + } + }, + "com.amazonaws.ecs#TmpfsList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Tmpfs" + } + }, + "com.amazonaws.ecs#TotalLocalStorageGBRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The minimum total local storage in GB. Instance types with less local storage are excluded from selection.

" + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedDouble", + "traits": { + "smithy.api#documentation": "

The maximum total local storage in GB. Instance types with more local storage are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage. This is useful for workloads that require local storage for temporary data or caching.

" + } + }, + "com.amazonaws.ecs#TransportProtocol": { + "type": "enum", + "members": { + "TCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tcp" + } + }, + "UDP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "udp" + } + } + } + }, + "com.amazonaws.ecs#TrustedExecutionConfiguration": { + "type": "structure", + "members": { + "isolationMode": { + "target": "com.amazonaws.ecs#IsolationMode", + "traits": { + "smithy.api#documentation": "

The isolation mode for tasks that use this task definition. The isolation mode determines how a task is isolated from other tasks on the same Amazon EC2 instance.

  • SHARED: The task shares the underlying Amazon EC2 instance with other tasks. This is the default isolation mode.

  • ISOLATED_SANDBOX: The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System. Each task's sandbox is isolated from every other task's sandbox on the same Amazon EC2 instance, so one task can't access another task's memory or storage. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

  • CONFIDENTIAL_SANDBOX: The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System, with cryptographic attestation. The host can't access the sandbox's memory or storage, and only the approved workload can decrypt data that you encrypt with your Key Management Service key. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "attestationPolicy": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The base64-encoded attestation policy envelope for the task. The policy specifies which containers are allowed to run and the runtime configuration that is cryptographically attested. This parameter is required when isolationMode is CONFIDENTIAL_SANDBOX.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The trusted execution configuration for a task. This configuration controls the isolation mode and attestation policy. You set this configuration when you register a task definition.

Trusted execution is supported only for Amazon ECS Managed Instances.

" + } + }, + "com.amazonaws.ecs#TrustedExecutionSummary": { + "type": "structure", + "members": { + "isolationMode": { + "target": "com.amazonaws.ecs#IsolationMode", + "traits": { + "smithy.api#documentation": "

The isolation mode that the task runs in. This value mirrors the isolationMode that was set in the task definition's TrustedExecutionConfiguration.

  • SHARED: The task shares the underlying Amazon EC2 instance with other tasks. This is the default isolation mode.

  • ISOLATED_SANDBOX: The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System. Each task's sandbox is isolated from every other task's sandbox on the same Amazon EC2 instance, so one task can't access another task's memory or storage. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

  • CONFIDENTIAL_SANDBOX: The task runs in its own Nitro Sandbox, which is a lightweight virtual machine that is isolated by the Amazon Web Services Nitro System, with cryptographic attestation. The host can't access the sandbox's memory or storage, and only the approved workload can decrypt data that you encrypt with your Key Management Service key. For more information, see Isolated and confidential tasks in Amazon Elastic Container Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "attestationPolicyStatus": { + "target": "com.amazonaws.ecs#AttestationPolicyStatus", + "traits": { + "smithy.api#documentation": "

The status of the attestation policy for the task. This value is present only for tasks that use the CONFIDENTIAL_SANDBOX isolation mode.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the trusted execution configuration for a task. This is a read-only view of the isolation configuration that was set on the task definition. Use it to see a task's isolation configuration in the response to DescribeTasks, RunTask, or StopTask without calling DescribeTaskDefinition. This summary never includes the attestation policy itself.

Trusted execution is supported only for Amazon ECS Managed Instances.

" + } + }, + "com.amazonaws.ecs#Ulimit": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#UlimitName", + "traits": { + "smithy.api#documentation": "

The type of the ulimit.

", + "smithy.api#required": {} + } + }, + "softLimit": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The soft limit for the ulimit type. The value can be specified in bytes, seconds, or as a count, depending on the type of the ulimit.

", + "smithy.api#required": {} + } + }, + "hardLimit": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The hard limit for the ulimit type. The value can be specified in bytes, seconds, or as a count, depending on the type of the ulimit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The ulimit settings to pass to the container.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 65535 and the default hard limit is 65535.

You can specify the ulimit settings for a container in a task definition.

" + } + }, + "com.amazonaws.ecs#UlimitList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Ulimit" + } + }, + "com.amazonaws.ecs#UlimitName": { + "type": "enum", + "members": { + "CORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "core" + } + }, + "CPU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cpu" + } + }, + "DATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "data" + } + }, + "FSIZE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fsize" + } + }, + "LOCKS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "locks" + } + }, + "MEMLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "memlock" + } + }, + "MSGQUEUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "msgqueue" + } + }, + "NICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nice" + } + }, + "NOFILE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nofile" + } + }, + "NPROC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nproc" + } + }, + "RSS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rss" + } + }, + "RTPRIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rtprio" + } + }, + "RTTIME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rttime" + } + }, + "SIGPENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sigpending" + } + }, + "STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stack" + } + } + } + }, + "com.amazonaws.ecs#UnsupportedFeatureException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The specified task isn't supported in this Region.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to untag the specified resource", + "relativeDocumentation": "API_UntagResource.html", + "resources": { + "optional": { + "cluster": {}, + "task": {}, + "container-instance": {}, + "task-definition": {}, + "service": {}, + "task-set": {}, + "capacity-provider": {}, + "daemon": {}, + "daemon-task-definition": {}, + "gateway": {} + } + } + }, + "smithy.api#documentation": "

Deletes specified tags from a resource.

", + "smithy.api#examples": [ + { + "title": "To untag a cluster.", + "documentation": "This example deletes the 'team' tag from the 'dev' cluster.", + "input": { + "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev", + "tagKeys": [ + "team" + ] + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ecs#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

", + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.ecs#TagKeys", + "traits": { + "smithy.api#documentation": "

The keys of the tags to be removed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateCapacityProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateCapacityProviderRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateCapacityProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:instance-metadata-tags-propagation", + "ecs:propagate-tags", + "aws:ResourceTag/${TagKey}" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to update the specified capacity provider", + "relativeDocumentation": "API_UpdateCapacityProvider.html", + "resources": { + "required": { + "capacity-provider": {} + } + } + }, + "smithy.api#documentation": "

Modifies the parameters for a capacity provider.

These changes only apply to new Amazon ECS Managed Instances, or EC2 instances, not existing ones.

", + "smithy.api#examples": [ + { + "title": "To update a capacity provider's parameters", + "documentation": "This example updates the targetCapacity and instanceWarmupPeriod parameters for the capacity provider MyCapacityProvider to 90 and 150 respectively.", + "input": { + "name": "MyCapacityProvider", + "autoScalingGroupProvider": { + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 90, + "instanceWarmupPeriod": 150 + } + } + }, + "output": { + "capacityProvider": { + "capacityProviderArn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/MyCapacityProvider", + "name": "MyCapacityProvider", + "status": "ACTIVE", + "autoScalingGroupProvider": { + "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:132456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", + "managedScaling": { + "status": "ENABLED", + "targetCapacity": 90, + "minimumScalingStepSize": 1, + "maximumScalingStepSize": 10000, + "instanceWarmupPeriod": 150 + }, + "managedTerminationProtection": "ENABLED" + }, + "updateStatus": "UPDATE_COMPLETE", + "tags": [] + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateCapacityProviderRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the capacity provider to update.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "CapacityProviderName" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster that contains the capacity provider to update. Managed instances capacity providers are cluster-scoped and can only be updated within their associated cluster.

" + } + }, + "autoScalingGroupProvider": { + "target": "com.amazonaws.ecs#AutoScalingGroupProviderUpdate", + "traits": { + "smithy.api#documentation": "

An object that represent the parameters to update for the Auto Scaling group capacity provider.

" + } + }, + "managedInstancesProvider": { + "target": "com.amazonaws.ecs#UpdateManagedInstancesProviderConfiguration", + "traits": { + "smithy.api#documentation": "

The updated configuration for the Amazon ECS Managed Instances provider. You can modify the infrastructure role, instance launch template, and tag propagation settings. Changes take effect for new instances launched after the update.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateCapacityProviderResponse": { + "type": "structure", + "members": { + "capacityProvider": { + "target": "com.amazonaws.ecs#CapacityProvider", + "traits": { + "smithy.api#documentation": "

Details about the capacity provider.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateClusterRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:fargate-ephemeral-storage-kms-key" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the configuration or settings to use for a cluster", + "relativeDocumentation": "API_UpdateCluster.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Updates the cluster.

", + "smithy.api#examples": [ + { + "title": "To update a cluster's observability settings.", + "documentation": "This example turns on enhanced containerInsights in an existing cluster. ", + "input": { + "cluster": "ECS-project-update-cluster", + "settings": [ + { + "name": "containerInsights", + "value": "enhanced" + } + ] + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", + "clusterName": "ECS-project-update-cluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enhanced" + } + ], + "capacityProviders": [ + "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", + "type": "as_policy", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" + } + ] + }, + { + "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", + "type": "managed_draining", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "autoScalingLifecycleHookName", + "value": "ecs-managed-draining-termination-hook" + } + ] + }, + { + "id": "45d0b36f-8cff-46b6-9380-1288744802ab", + "type": "sc", + "status": "ATTACHED", + "details": [] + } + ], + "attachmentsStatus": "UPDATE_COMPLETE", + "serviceConnectDefaults": { + "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-igwrsylmy3kwvcdx" + } + } + } + }, + { + "title": "To update a cluster's Service Connect defaults.", + "documentation": "This example sets a default Service Connect namespace. ", + "input": { + "cluster": "ECS-project-update-cluster", + "serviceConnectDefaults": { + "namespace": "test" + } + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", + "clusterName": "ECS-project-update-cluster", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enhanced" + } + ], + "capacityProviders": [ + "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + ], + "defaultCapacityProviderStrategy": [ + { + "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", + "weight": 1, + "base": 0 + } + ], + "attachments": [ + { + "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", + "type": "as_policy", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "scalingPolicyName", + "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" + } + ] + }, + { + "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", + "type": "managed_draining", + "status": "CREATED", + "details": [ + { + "name": "capacityProviderName", + "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" + }, + { + "name": "autoScalingLifecycleHookName", + "value": "ecs-managed-draining-termination-hook" + } + ] + }, + { + "id": "45d0b36f-8cff-46b6-9380-1288744802ab", + "type": "sc", + "status": "DELETED", + "details": [] + }, + { + "id": "3e6890c3-609c-4832-91de-d6ca891b3ef1", + "type": "sc", + "status": "ATTACHED", + "details": [] + }, + { + "id": "961b8ec1-c2f1-4070-8495-e669b7668e90", + "type": "sc", + "status": "DELETED", + "details": [] + } + ], + "attachmentsStatus": "UPDATE_COMPLETE", + "serviceConnectDefaults": { + "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-dtjmxqpfi46ht7dr" + } + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateClusterRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster to modify the settings for.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "settings": { + "target": "com.amazonaws.ecs#ClusterSettings", + "traits": { + "smithy.api#documentation": "

The cluster settings for your cluster.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#ClusterConfiguration", + "traits": { + "smithy.api#documentation": "

The execute command configuration for the cluster.

" + } + }, + "serviceConnectDefaults": { + "target": "com.amazonaws.ecs#ClusterServiceConnectDefaultsRequest", + "traits": { + "smithy.api#documentation": "

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateClusterResponse": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#Cluster", + "traits": { + "smithy.api#documentation": "

Details about the cluster.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateClusterSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateClusterSettingsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateClusterSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the settings to use for a cluster", + "relativeDocumentation": "API_UpdateClusterSettings.html", + "resources": { + "required": { + "cluster": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Modifies the settings to use for a cluster.

", + "smithy.api#examples": [ + { + "title": "To update a cluster's settings", + "documentation": "This example enables CloudWatch Container Insights for the default cluster.", + "input": { + "cluster": "default", + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ] + }, + "output": { + "cluster": { + "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", + "clusterName": "default", + "status": "ACTIVE", + "registeredContainerInstancesCount": 0, + "runningTasksCount": 0, + "pendingTasksCount": 0, + "activeServicesCount": 0, + "statistics": [], + "tags": [], + "settings": [ + { + "name": "containerInsights", + "value": "enabled" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateClusterSettingsRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the cluster to modify the settings for.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "settings": { + "target": "com.amazonaws.ecs#ClusterSettings", + "traits": { + "smithy.api#documentation": "

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. If this value is specified, it overrides the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

Currently, if you delete an existing cluster that does not have Container Insights turned on, and then create a new cluster with the same name with Container Insights tuned on, Container Insights will not actually be turned on. If you want to preserve the same name for your existing cluster and turn on Container Insights, you must wait 7 days before you can re-create it.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateClusterSettingsResponse": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#Cluster", + "traits": { + "smithy.api#documentation": "

Details about the cluster

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateContainerAgent": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateContainerAgentRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateContainerAgentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#MissingVersionException" + }, + { + "target": "com.amazonaws.ecs#NoUpdateAvailableException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UpdateInProgressException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to update the Amazon ECS container agent on a specified container instance", + "relativeDocumentation": "API_UpdateContainerAgent.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent doesn't interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

The UpdateContainerAgent API isn't supported for container instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the ecs-init package. This updates the agent. For more information, see Updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

Agent updates with the UpdateContainerAgent API operation do not apply to Windows container instances. We recommend that you launch new container instances to update the agent version in your Windows clusters.

The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon Linux AMI with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To update the container agent version on a container instance", + "documentation": "This example updates the container agent version on the specified container instance in cluster MyCluster.", + "input": { + "cluster": "MyCluster", + "containerInstance": "53ac7152-dcd1-4102-81f5-208962864132" + }, + "output": { + "containerInstance": { + "agentConnected": true, + "agentUpdateStatus": "PENDING", + "versionInfo": { + "agentHash": "4023248", + "agentVersion": "1.0.0", + "dockerVersion": "DockerVersion: 1.5.0" + } + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateContainerAgentRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "containerInstance": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The container instance ID or full ARN entries for the container instance where you would like to update the Amazon ECS container agent.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateContainerAgentResponse": { + "type": "structure", + "members": { + "containerInstance": { + "target": "com.amazonaws.ecs#ContainerInstance", + "traits": { + "smithy.api#documentation": "

The container instance that the container agent was updated for.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateContainerInstancesState": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateContainerInstancesStateRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateContainerInstancesStateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to the user to modify the status of an Amazon ECS container instance", + "relativeDocumentation": "API_UpdateContainerInstancesState.html", + "resources": { + "required": { + "container-instance": {} + } + } + }, + "smithy.api#documentation": "

Modifies the status of an Amazon ECS container instance.

Once a container instance has reached an ACTIVE state, you can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.

A container instance can't be changed to DRAINING until it has reached an ACTIVE status. If the instance is in any other status, an error will be received.

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately.

Service tasks on the container instance that are in the RUNNING state are stopped and replaced according to the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. You can change the deployment configuration of your service using UpdateService.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during task replacement. For example, desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. If the minimum is 100%, the service scheduler can't remove existing tasks until the replacement tasks are considered healthy. Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during task replacement. You can use this to define the replacement batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four tasks to be drained, provided that the cluster resources required to do this are available. If the maximum is 100%, then replacement tasks can't start until the draining tasks have stopped.

Any PENDING or RUNNING tasks that do not belong to a service aren't affected. You must wait for them to finish or stop them manually.

A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks.

When a container instance has been drained, you can set a container instance to ACTIVE status and once it has reached that status the Amazon ECS scheduler can begin scheduling tasks on the instance again.

", + "smithy.api#examples": [ + { + "title": "To update the state of a container instance", + "documentation": "This example updates the state of the specified container instance in the default cluster to DRAINING. ", + "input": { + "cluster": "default", + "containerInstances": [ + "1c3be8ed-df30-47b4-8f1e-6e68ebd01f34" + ], + "status": "DRAINING" + }, + "output": { + "containerInstances": [ + { + "agentConnected": true, + "attributes": [ + { + "name": "ecs.availability-zone", + "value": "us-west-2b" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.syslog" + }, + { + "name": "ecs.instance-type", + "value": "c4.xlarge" + }, + { + "name": "ecs.ami-id", + "value": "ami-a2ca61c2" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" + }, + { + "name": "com.amazonaws.ecs.capability.logging-driver.json-file" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" + }, + { + "name": "com.amazonaws.ecs.capability.privileged-container" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" + }, + { + "name": "com.amazonaws.ecs.capability.ecr-auth" + }, + { + "name": "ecs.os-type", + "value": "linux" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" + }, + { + "name": "com.amazonaws.ecs.capability.task-iam-role" + }, + { + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" + } + ], + "containerInstanceArn": "arn:aws:ecs:us-west-2:012345678910:container-instance/default/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", + "ec2InstanceId": "i-05d99c76955727ec6", + "pendingTasksCount": 0, + "registeredResources": [ + { + "doubleValue": 0, + "integerValue": 4096, + "longValue": 0, + "name": "CPU", + "type": "INTEGER" + }, + { + "doubleValue": 0, + "integerValue": 7482, + "longValue": 0, + "name": "MEMORY", + "type": "INTEGER" + }, + { + "doubleValue": 0, + "integerValue": 0, + "longValue": 0, + "name": "PORTS", + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ], + "type": "STRINGSET" + }, + { + "doubleValue": 0, + "integerValue": 0, + "longValue": 0, + "name": "PORTS_UDP", + "stringSetValue": [], + "type": "STRINGSET" + } + ], + "remainingResources": [ + { + "doubleValue": 0, + "integerValue": 4096, + "longValue": 0, + "name": "CPU", + "type": "INTEGER" + }, + { + "doubleValue": 0, + "integerValue": 7482, + "longValue": 0, + "name": "MEMORY", + "type": "INTEGER" + }, + { + "doubleValue": 0, + "integerValue": 0, + "longValue": 0, + "name": "PORTS", + "stringSetValue": [ + "22", + "2376", + "2375", + "51678", + "51679" + ], + "type": "STRINGSET" + }, + { + "doubleValue": 0, + "integerValue": 0, + "longValue": 0, + "name": "PORTS_UDP", + "stringSetValue": [], + "type": "STRINGSET" + } + ], + "runningTasksCount": 0, + "status": "DRAINING", + "version": 30, + "versionInfo": { + "agentHash": "efe53c6", + "agentVersion": "1.13.1", + "dockerVersion": "DockerVersion: 1.11.2" + } + } + ], + "failures": [] + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateContainerInstancesStateRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update. If you do not specify a cluster, the default cluster is assumed.

" + } + }, + "containerInstances": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 10 container instance IDs or full ARN entries.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#ContainerInstanceStatus", + "traits": { + "smithy.api#documentation": "

The container instance state to update the container instance with. The only valid values for this action are ACTIVE and DRAINING. A container instance can only be updated to DRAINING status once it has reached an ACTIVE state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED state you can describe the container instance but can't update the container instance state.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateContainerInstancesStateResponse": { + "type": "structure", + "members": { + "containerInstances": { + "target": "com.amazonaws.ecs#ContainerInstances", + "traits": { + "smithy.api#documentation": "

The list of container instances.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateDaemon": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateDaemonRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateDaemonResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#DaemonNotActiveException" + }, + { + "target": "com.amazonaws.ecs#DaemonNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:capacity-provider", + "ecs:daemon-task-definition", + "ecs:enable-ecs-managed-tags", + "ecs:enable-execute-command", + "ecs:propagate-tags", + "ecs:task-cpu", + "ecs:task-memory" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the parameters of a daemon", + "resources": { + "required": { + "daemon": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Updates the specified daemon. When you update a daemon, a new deployment is triggered that progressively rolls out the changes to the container instances associated with the daemon's capacity providers. For more information, see Daemon deployments in the Amazon Elastic Container Service Developer Guide.

Amazon ECS drains existing container instances and provisions new instances with the updated daemon. Amazon ECS automatically launches replacement tasks for your services.

Updating a daemon triggers a rolling deployment that drains and replaces container instances. Plan updates during maintenance windows to minimize impact on running services.

ECS Managed Daemons is only supported for Amazon ECS Managed Instances Capacity Providers.

", + "smithy.api#examples": [ + { + "title": "To update a daemon", + "documentation": "This example updates the my-monitoring-daemon daemon to use a new daemon task definition revision.", + "input": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/monitoring-agent:2", + "capacityProviderArns": [ + "arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-capacity-provider" + ], + "deploymentConfiguration": { + "drainPercent": 10.0, + "bakeTimeInMinutes": 5 + } + }, + "output": { + "daemonArn": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-monitoring-daemon", + "status": "ACTIVE", + "createdAt": "2025-03-15T12:00:00.000Z", + "updatedAt": "2025-03-20T15:30:00.000Z", + "deploymentArn": "arn:aws:ecs:us-east-1:123456789012:daemon-deployment/my-cluster/my-monitoring-daemon/xY9zA8bC7dE6fG5h" + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateDaemonRequest": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon to update.

", + "smithy.api#required": {} + } + }, + "daemonTaskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon task definition to use for the updated daemon.

", + "smithy.api#required": {} + } + }, + "capacityProviderArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the capacity providers to associate with the daemon.

", + "smithy.api#required": {} + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DaemonDeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how the daemon rolls out updates, including the drain percentage, alarm-based rollback, and bake time.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#DaemonPropagateTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the daemon to the daemon tasks. If you don't specify a value, the tags aren't propagated. You can only propagate tags to daemon tasks during task creation.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks in the daemon. For more information, see Tagging your Amazon ECS resources in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

If true, the execute command functionality is turned on for all tasks in the daemon. If false, the execute command functionality is turned off.

" + } + }, + "critical": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If the critical parameter of a daemon is true, and the daemon task fails, stops, or becomes unhealthy, Amazon ECS drains the container instance and stops the other tasks running on it. If the critical parameter is false, the daemon task failure doesn't affect the other tasks on the instance. The default value is true.

A non-critical daemon doesn't block instance registration. The container instance becomes active and continues to run your other tasks, whether the daemon task fails during scale-out or during a deployment.

Amazon ECS emits an EventBridge event when a daemon task fails to start, for both critical and non-critical daemons.

Daemon task launch failures during a deployment are still counted by the deployment circuit breaker. The circuit breaker can roll back an unstable target revision.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateDaemonResponse": { + "type": "structure", + "members": { + "daemonArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon.

", + "smithy.api#notProperty": {} + } + }, + "status": { + "target": "com.amazonaws.ecs#DaemonStatus", + "traits": { + "smithy.api#documentation": "

The status of the daemon.

", + "smithy.api#notProperty": {} + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was created.

", + "smithy.api#notProperty": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for the time when the daemon was last updated.

", + "smithy.api#notProperty": {} + } + }, + "deploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the daemon deployment that was triggered by the update.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateExpressGatewayService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateExpressGatewayServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateExpressGatewayServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:task-memory", + "ecs:propagate-tags", + "ecs:subnet", + "ecs:enable-ecs-managed-tags", + "ecs:task-cpu", + "ecs:task-definition" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the parameters of an Express Gateway service", + "relativeDocumentation": "API_UpdateExpressGatewayService.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Updates an existing Express service configuration. Modifies container settings, resource allocation, auto-scaling configuration, and other service parameters without recreating the service.

Amazon ECS creates a new service revision with updated configuration and performs a rolling deployment to replace existing tasks. The service remains available during updates, ensuring zero-downtime deployments.

Some parameters like the infrastructure role cannot be modified after service creation and require creating a new service.

" + } + }, + "com.amazonaws.ecs#UpdateExpressGatewayServiceRequest": { + "type": "structure", + "members": { + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Express service to update.

", + "smithy.api#required": {} + } + }, + "executionRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution role for the Express service.

" + } + }, + "healthCheckPath": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The path on the container for Application Load Balancer health checks.

" + } + }, + "primaryContainer": { + "target": "com.amazonaws.ecs#ExpressGatewayContainer", + "traits": { + "smithy.api#documentation": "

The primary container configuration for the Express service.

" + } + }, + "taskRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role for containers in this task.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The network configuration for the Express service tasks. By default, the network configuration for an Express service uses the default VPC.

" + } + }, + "cpu": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The number of CPU units used by the task.

" + } + }, + "memory": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) used by the task.

" + } + }, + "cpuArchitecture": { + "target": "com.amazonaws.ecs#ExpressCpuArchitecture", + "traits": { + "smithy.api#documentation": "

The CPU architecture that the task runs on. If you don't specify a value, the service keeps its current architecture.

Valid values:

  • X86_64 - The x86 64-bit architecture.

  • ARM64 - The 64-bit ARM architecture.

Changing the architecture starts a new deployment that replaces the running tasks. Ensure that the container image you specify supports the architecture you choose. The operating system family for an Express service is always LINUX.

You can't specify cpuArchitecture together with taskDefinitionArn.

" + } + }, + "scalingTarget": { + "target": "com.amazonaws.ecs#ExpressGatewayScalingTarget", + "traits": { + "smithy.api#documentation": "

The auto-scaling configuration for the Express service.

" + } + }, + "taskDefinitionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a task definition to use to update the Express Gateway service. This allows you to manage your own task definition, giving you more control over the service configuration such as adding sidecar containers.

The task definition must have a container named Main with a single TCP port mapping that includes a container port and port name. The task definition must also have FARGATE compatibility.

If you provide a task definition ARN, you cannot also specify primaryContainer, executionRoleArn, taskRoleArn, cpu, memory, or cpuArchitecture.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateExpressGatewayServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#UpdatedExpressGatewayService", + "traits": { + "smithy.api#documentation": "

The full description of your express gateway service following the update call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateGatewayRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#GatewayNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:enable-ecs-managed-tags", + "ecs:propagate-tags" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the parameters of an Amazon ECS gateway", + "relativeDocumentation": "API_UpdateGateway.html", + "requiredActions": [ + "iam:PassRole" + ], + "resources": { + "required": { + "gateway": { + "conditionKeys": [ + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Modifies the configuration of a gateway. You can change only the properties that can be applied without interrupting traffic, and the configuration variant that you provide must match the gateway's type. UpdateGateway is an asynchronous operation: the changes are applied to each load balancer the gateway manages, and the gateway reports a status of UPDATE_IN_PROGRESS until the update completes. If Amazon ECS can't update one or more resources, it makes a best effort to update the rest and the gateway status changes to UPDATE_FAILED. Use DescribeGateway to inspect the gateway's statusReason and failures list, which gives the ARN of each load balancer that was not updated and the operation, error code, and message for each failure.

If you specify infrastructureRoleArn, you must have the iam:PassRole permission for that role.

", + "smithy.api#examples": [ + { + "title": "To update a gateway", + "documentation": "This example raises the maximum number of Application Load Balancers that the gateway named my-gateway manages, and changes the desync mitigation mode to strictest.", + "input": { + "gateway": "my-gateway", + "configuration": { + "hostSharedAlb": { + "maxAlbCount": 20, + "httpDesync": "strictest" + } + } + }, + "output": { + "gatewayArn": "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678", + "name": "my-gateway", + "status": "UPDATE_IN_PROGRESS" + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateGatewayAlbConfiguration": { + "type": "structure", + "members": { + "networkConfiguration": { + "target": "com.amazonaws.ecs#UpdateGatewayNetworkConfiguration", + "traits": { + "smithy.api#documentation": "

The mutable network configuration for the load balancers that the gateway manages.

" + } + }, + "maxAlbCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of Application Load Balancers that the gateway manages.

" + } + }, + "webACLArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the WAF web ACL to associate with the load balancers that the gateway manages.

" + } + }, + "accessLogs": { + "target": "com.amazonaws.ecs#GatewayElbAccessLogConfiguration", + "traits": { + "smithy.api#documentation": "

The access log configuration for the load balancers that the gateway manages.

" + } + }, + "httpDesync": { + "target": "com.amazonaws.ecs#GatewayAlbDesyncMitigationMode", + "traits": { + "smithy.api#documentation": "

The desync mitigation mode for the load balancers that the gateway manages.

" + } + }, + "testTrafficRules": { + "target": "com.amazonaws.ecs#GatewayAlbTestTrafficRules", + "traits": { + "smithy.api#documentation": "

The rules that route test traffic for progressive deployments.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The mutable configuration fields for a gateway that uses shared Application Load Balancers. Only fields that can be changed without interrupting traffic are included.

" + } + }, + "com.amazonaws.ecs#UpdateGatewayConfiguration": { + "type": "union", + "members": { + "hostSharedAlb": { + "target": "com.amazonaws.ecs#UpdateGatewayAlbConfiguration", + "traits": { + "smithy.api#documentation": "

The mutable configuration for a host-based, shared Application Load Balancer gateway.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type-specific configuration to change on a gateway. The variant must match the gateway's existing type.

" + } + }, + "com.amazonaws.ecs#UpdateGatewayNetworkConfiguration": { + "type": "structure", + "members": { + "inboundSecurityGroup": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ID of a security group that you provide to control inbound traffic to the load balancers that the gateway manages. When you specify a security group, the gateway doesn't create inbound rules on the security group it manages.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The mutable network configuration for the load balancers that a gateway manages.

" + } + }, + "com.amazonaws.ecs#UpdateGatewayRequest": { + "type": "structure", + "members": { + "gateway": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of the gateway to update.

", + "smithy.api#required": {} + } + }, + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the gateway assumes to manage infrastructure on your behalf.

" + } + }, + "deletionProtection": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the gateway. When enabled, the gateway can't be deleted.

" + } + }, + "configuration": { + "target": "com.amazonaws.ecs#UpdateGatewayConfiguration", + "traits": { + "smithy.api#documentation": "

The updated type-specific configuration for the gateway. The configuration variant must match the gateway's existing type, and only mutable fields can be changed.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateGatewayTags", + "traits": { + "smithy.api#documentation": "

Specifies whether to propagate the tags from the gateway to the infrastructure that the gateway manages. If you don't specify a value, the gateway's existing setting is unchanged.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateGatewayResponse": { + "type": "structure", + "members": { + "gatewayArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the gateway.

" + } + }, + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the gateway.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#GatewayStatus", + "traits": { + "smithy.api#documentation": "

The status of the gateway. After a successful update request, the status is UPDATE_IN_PROGRESS.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateInProgressException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

Message that describes the cause of the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

There's already a current Amazon ECS container agent update in progress on the container instance that's specified. If the container agent becomes disconnected while it's in a transitional stage, such as PENDING or STAGING, the update process can get stuck in that state. However, when the agent reconnects, it resumes where it stopped previously.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecs#UpdateManagedInstancesProviderConfiguration": { + "type": "structure", + "members": { + "infrastructureRoleArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The updated Amazon Resource Name (ARN) of the infrastructure role. The new role must have the necessary permissions to manage instances and access required Amazon Web Services services.

For more information, see Amazon ECS infrastructure IAM role in the Amazon ECS Developer Guide.

", + "smithy.api#required": {} + } + }, + "instanceLaunchTemplate": { + "target": "com.amazonaws.ecs#InstanceLaunchTemplateUpdate", + "traits": { + "smithy.api#documentation": "

The updated launch template configuration. Changes to the launch template affect new instances launched after the update, while existing instances continue to use their original configuration.

", + "smithy.api#required": {} + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateMITags", + "traits": { + "smithy.api#documentation": "

The updated tag propagation setting. When changed, this affects only new instances launched after the update.

" + } + }, + "infrastructureOptimization": { + "target": "com.amazonaws.ecs#InfrastructureOptimization", + "traits": { + "smithy.api#documentation": "

The updated infrastructure optimization configuration. Changes to this setting affect how Amazon ECS optimizes instances going forward.

" + } + }, + "autoRepairConfiguration": { + "target": "com.amazonaws.ecs#AutoRepairConfiguration", + "traits": { + "smithy.api#documentation": "

The updated auto repair configuration for the Amazon ECS Managed Instances capacity provider.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated configuration for a Amazon ECS Managed Instances provider. You can modify the infrastructure role, instance launch template, and tag propagation settings. Changes apply to new instances launched after the update.

" + } + }, + "com.amazonaws.ecs#UpdateService": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateServiceRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateServiceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#NamespaceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException" + }, + { + "target": "com.amazonaws.ecs#PlatformUnknownException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + "ecs:task-cpu", + "ecs:enable-service-connect", + "ecs:enable-ecs-managed-tags", + "ecs:capacity-provider", + "ecs:namespace", + "ecs:auto-assign-public-ip", + "ecs:enable-vpc-lattice", + "ecs:task-memory", + "ecs:task-definition", + "ecs:propagate-tags", + "ecs:subnet" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the parameters of a service", + "relativeDocumentation": "API_UpdateService.html", + "resources": { + "required": { + "service": { + "conditionKeys": [ + "ecs:cluster", + "aws:ResourceTag/${TagKey}" + ] + } + } + } + }, + "smithy.api#documentation": "

Modifies the parameters of a service.

On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

For services using the rolling update (ECS) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a task, or when creating or updating a service. For more information, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide. You can update your volume configurations and trigger a new deployment. volumeConfigurations is only supported for REPLICA service and not DAEMON service. If you leave volumeConfigurations null, it doesn't trigger a new deployment. For more information on volumes, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when starting or running a task, or when creating or updating a service. For more information, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

If you have updated the container image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.

  • Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.

    • Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

  • Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.

  • Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.

", + "smithy.api#examples": [ + { + "title": "To change the task definition used in a service", + "documentation": "This example updates the my-http-service service to use the amazon-ecs-sample task definition.", + "input": { + "service": "my-http-service", + "taskDefinition": "amazon-ecs-sample" + }, + "output": {} + }, + { + "title": "To change the number of tasks in a service", + "documentation": "This example updates the desired count of the my-http-service service to 10.", + "input": { + "service": "my-http-service", + "desiredCount": 10 + }, + "output": {} + }, + { + "title": "To update a service to add a pause lifecycle hook", + "documentation": "This example updates the my-blue-green-service service to add a pause lifecycle hook at the POST_PRODUCTION_TRAFFIC_SHIFT stage. The deployment will pause at that stage until you explicitly continue or roll back using the ContinueServiceDeployment API, or until the 30-minute timeout expires and triggers a continue.", + "input": { + "service": "my-blue-green-service", + "deploymentConfiguration": { + "strategy": "BLUE_GREEN", + "lifecycleHooks": [ + { + "targetType": "PAUSE", + "lifecycleStages": [ + "POST_PRODUCTION_TRAFFIC_SHIFT" + ], + "timeoutConfiguration": { + "timeoutInMinutes": 30, + "action": "CONTINUE" + } + } + ] + } + }, + "output": {} + }, + { + "title": "To update a service with a monitoring configuration", + "documentation": "This example updates a service to add a monitoring configuration that sets 20-second resolution for CPUUtilization and MemoryUtilization CloudWatch metrics. The monitoring configuration is not returned in the UpdateService response. Use DescribeServiceRevisions to view the monitoring configuration.", + "input": { + "service": "ecs-monitored-service", + "monitoring": { + "metricConfigurations": [ + { + "metricNames": [ + "CPUUtilization", + "MemoryUtilization" + ], + "resolutionSeconds": 20 + } + ] + } + }, + "output": {} + } + ] + } + }, + "com.amazonaws.ecs#UpdateServicePrimaryTaskSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateServicePrimaryTaskSetRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateServicePrimaryTaskSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#TaskSetNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the primary task set used in a service", + "relativeDocumentation": "API_UpdateServicePrimaryTaskSet.html", + "resources": { + "required": { + "service": {} + } + } + }, + "smithy.api#documentation": "

Modifies which task set in a service is the primary task set. Any parameters that are updated on the primary task set in a service will transition to the service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To update the primary task set for a service", + "documentation": "This example updates the primary task set for a service MyService that uses the EXTERNAL deployment controller type. ", + "input": { + "cluster": "MyCluster", + "service": "MyService", + "primaryTaskSet": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789" + }, + "output": { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "PRIMARY", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 1, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557129412.653, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344312" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 50, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557129279.914 + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateServicePrimaryTaskSetRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ServiceName" + } + }, + "primaryTaskSet": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the task set to set as the primary task set in the deployment.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateServicePrimaryTaskSetResponse": { + "type": "structure", + "members": { + "taskSet": { + "target": "com.amazonaws.ecs#TaskSet", + "traits": { + "smithy.api#documentation": "

The details about the task set.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateServiceRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that your service runs on. If you do not specify a cluster, the default cluster is assumed.

You can't change the cluster name.

" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the service to update.

", + "smithy.api#required": {} + } + }, + "desiredCount": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The number of instantiations of the task to place and keep running in your service.

This parameter doesn't trigger a new service deployment.

" + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.

This parameter triggers a new service deployment.

" + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

The details of a capacity provider strategy. You can set a capacity provider when you create a cluster, run a task, or update a service.

If you want to use Amazon ECS Managed Instances, you must use the capacityProviderStrategy request parameter.

When you use Fargate, the capacity providers are FARGATE or FARGATE_SPOT.

When you use Amazon EC2, the capacity providers are Auto Scaling groups.

You can change capacity providers for rolling deployments and blue/green deployments.

The following list provides the valid transitions:

  • Update the Fargate launch type to an Auto Scaling group capacity provider.

  • Update the Amazon EC2 launch type to a Fargate capacity provider.

  • Update the Fargate capacity provider to an Auto Scaling group capacity provider.

  • Update the Amazon EC2 capacity provider to a Fargate capacity provider.

  • Update the Auto Scaling group or Fargate capacity provider back to the launch type.

    Pass an empty list in the capacityProviderStrategy parameter.

For information about Amazon Web Services CDK considerations, see Amazon Web Services CDK considerations.

This parameter doesn't trigger a new service deployment.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

This parameter doesn't trigger a new service deployment.

" + } + }, + "availabilityZoneRebalancing": { + "target": "com.amazonaws.ecs#AvailabilityZoneRebalancing", + "traits": { + "smithy.api#documentation": "

Indicates whether to use Availability Zone rebalancing for the service.

For more information, see Balancing an Amazon ECS service across Availability Zones in the Amazon Elastic Container Service Developer Guide .

The default behavior of AvailabilityZoneRebalancing differs between create and update requests:

  • For create service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults the value to ENABLED.

  • For update service requests, when no value is specified for AvailabilityZoneRebalancing, Amazon ECS defaults to the existing service’s AvailabilityZoneRebalancing value. If the service never had an AvailabilityZoneRebalancing value set, Amazon ECS treats this as DISABLED.

This parameter doesn't trigger a new service deployment.

" + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

An object representing the network configuration for the service.

This parameter triggers a new service deployment.

" + } + }, + "placementConstraints": { + "target": "com.amazonaws.ecs#PlacementConstraints", + "traits": { + "smithy.api#documentation": "

An array of task placement constraint objects to update the service to use. If no value is specified, the existing placement constraints for the service will remain unchanged. If this value is specified, it will override any existing placement constraints defined for the service. To remove all existing placement constraints, specify an empty array.

You can specify a maximum of 10 constraints for each task. This limit includes constraints in the task definition and those specified at runtime.

This parameter doesn't trigger a new service deployment.

" + } + }, + "placementStrategy": { + "target": "com.amazonaws.ecs#PlacementStrategies", + "traits": { + "smithy.api#documentation": "

The task placement strategy objects to update the service to use. If no value is specified, the existing placement strategy for the service will remain unchanged. If this value is specified, it will override the existing placement strategy defined for the service. To remove an existing placement strategy, specify an empty object.

You can specify a maximum of five strategy rules for each service.

This parameter doesn't trigger a new service deployment.

" + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The platform version that your tasks in the service run on. A platform version is only specified for tasks using the Fargate launch type. If a platform version is not specified, the LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

This parameter triggers a new service deployment.

" + } + }, + "forceNewDeployment": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (my_image:latest) or to roll Fargate tasks onto a newer platform version.

" + } + }, + "healthCheckGracePeriodSeconds": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of 0 is used. If you don't use any of the health checks, then healthCheckGracePeriodSeconds is unused.

If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.

This parameter doesn't trigger a new service deployment.

" + } + }, + "deploymentController": { + "target": "com.amazonaws.ecs#DeploymentController" + }, + "enableExecuteCommand": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If true, this enables execute command functionality on all task containers.

If you do not want to override the value that was set when the service was created, you can set this to null when performing this action.

This parameter doesn't trigger a new service deployment.

" + } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

Only tasks launched after the update will reflect the update. To update the tags on all tasks, set forceNewDeployment to true, so that Amazon ECS starts new tasks with the updated tags.

This parameter doesn't trigger a new service deployment.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

You must have a service-linked role when you update this property

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.

When you add, update, or remove a load balancer configuration, Amazon ECS starts new tasks with the updated Elastic Load Balancing configuration, and then stops the old tasks when the new tasks are running.

For services that use rolling updates, you can add, update, or remove Elastic Load Balancing target groups. You can update from a single target group to multiple target groups and from multiple target groups to a single target group.

For services that use blue/green deployments, you can update Elastic Load Balancing target groups by using CreateDeployment through CodeDeploy. Note that multiple target groups are not supported for blue/green deployments. For more information see Register multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

For services that use the external deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. Note that multiple target groups are not supported for external deployments. For more information see Register multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

You can remove existing loadBalancers by passing an empty list.

This parameter triggers a new service deployment.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.

Only tasks launched after the update will reflect the update. To update the tags on all tasks, set forceNewDeployment to true, so that Amazon ECS starts new tasks with the updated tags.

This parameter doesn't trigger a new service deployment.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

You must have a service-linked role when you update this property.

For more information about the role see the CreateService request parameter role .

The details for the service discovery registries to assign to this service. For more information, see Service Discovery.

When you add, update, or remove the service registries configuration, Amazon ECS starts new tasks with the updated service registries configuration, and then stops the old tasks when the new tasks are running.

You can remove existing serviceRegistries by passing an empty list.

This parameter triggers a new service deployment.

" + } + }, + "serviceConnectConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

This parameter triggers a new service deployment.

" + } + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

The details of the volume that was configuredAtLaunch. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name of the volume must match the name from the task definition. If set to null, no new deployment is triggered. Otherwise, if this configuration differs from the existing one, it triggers a new deployment.

This parameter triggers a new service deployment.

" + } + }, + "vpcLatticeConfigurations": { + "target": "com.amazonaws.ecs#VpcLatticeConfigurations", + "traits": { + "smithy.api#documentation": "

An object representing the VPC Lattice configuration for the service being updated.

This parameter triggers a new service deployment.

" + } + }, + "gatewayConnectors": { + "target": "com.amazonaws.ecs#GatewayConnectorList", + "traits": { + "smithy.api#documentation": "

The updated set of gateway connectors that connect the service to a gateway ingress path. A service supports no more than one gateway connector.

" + } + }, + "monitoring": { + "target": "com.amazonaws.ecs#MonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

The optional monitoring configuration for the service, which defines the resolution for the service-level CPUUtilization and MemoryUtilization Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of 60 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateServiceResponse": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#Service", + "traits": { + "smithy.api#documentation": "

The full description of your service following the update call.

The response includes a lifecycleHookDetails field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (DescribeServiceDeployments).

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateTaskProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateTaskProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateTaskProtectionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to modify the protection status of a task", + "relativeDocumentation": "API_UpdateTaskProtection.html", + "resources": { + "required": { + "task": {} + } + } + }, + "smithy.api#documentation": "

Updates the protection status of a task. You can set protectionEnabled to true to protect your task from termination during scale-in events from Service Autoscaling or deployments.

Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the protectionEnabled property making the task eligible for termination by a subsequent scale-in event.

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes property. The expiresInMinutes property is always reset when you invoke this operation for a task that already has protectionEnabled set to true. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.

To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID failure. For more information, see API failure reasons.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

", + "smithy.api#examples": [ + { + "title": "To set task scale-in protection for a task for 60 minutes", + "documentation": "This example enables scale-in protection for a task for 60 minutes.", + "input": { + "cluster": "test-task-protection", + "tasks": [ + "b8b1cf532d0e46ba8d44a40d1de16772" + ], + "protectionEnabled": true, + "expiresInMinutes": 60 + }, + "output": { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772", + "protectionEnabled": true, + "expirationDate": "2022-11-02T06:56:32.553Z" + } + ], + "failures": [] + } + }, + { + "title": "To set task scale-in protection for the default time period in minutes", + "documentation": "This example enables task scale-in protection for a task, without specifying the expiresInMinutes parameter, for the default protection period of 120 minutes.", + "input": { + "cluster": "test-task-protection", + "tasks": [ + "b8b1cf532d0e46ba8d44a40d1de16772" + ], + "protectionEnabled": true + }, + "output": { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772", + "protectionEnabled": true, + "expirationDate": "2022-11-02T06:56:32.553Z" + } + ], + "failures": [] + } + }, + { + "title": "To remove task scale-in protection", + "documentation": "This example removes scale-in protection for a task.", + "input": { + "cluster": "test-task-protection", + "tasks": [ + "b8b1cf532d0e46ba8d44a40d1de16772" + ], + "protectionEnabled": false + }, + "output": { + "protectedTasks": [ + { + "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772", + "protectionEnabled": false + } + ], + "failures": [] + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateTaskProtectionRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

", + "smithy.api#required": {} + } + }, + "tasks": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

A list of up to 10 task IDs or full ARN entries.

", + "smithy.api#required": {} + } + }, + "protectionEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specify true to mark a task for protection and false to unset protection, making it eligible for termination.

", + "smithy.api#required": {} + } + }, + "expiresInMinutes": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

If you set protectionEnabled to true, you can specify the duration for task protection in minutes. You can specify a value from 1 minute to up to 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in events from Service Auto Scaling or deployments. After this time period lapses, protectionEnabled will be reset to false.

If you don’t specify the time, then the task is automatically protected for 120 minutes (2 hours).

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateTaskProtectionResponse": { + "type": "structure", + "members": { + "protectedTasks": { + "target": "com.amazonaws.ecs#ProtectedTasks", + "traits": { + "smithy.api#documentation": "

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is turned on for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

", + "smithy.api#notProperty": {} + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

Any failures associated with the call.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdateTaskSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#UpdateTaskSetRequest" + }, + "output": { + "target": "com.amazonaws.ecs#UpdateTaskSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#LimitExceededException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotActiveException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#TaskSetNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to update the specified task set", + "relativeDocumentation": "API_UpdateTaskSet.html", + "resources": { + "required": { + "task-set": {} + } + } + }, + "smithy.api#documentation": "

Modifies a task set. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

", + "smithy.api#examples": [ + { + "title": "To update a task set", + "documentation": "This example updates the task set to adjust the scale.", + "input": { + "cluster": "MyCluster", + "service": "MyService", + "taskSet": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "scale": { + "value": 50, + "unit": "PERCENT" + } + }, + "output": { + "taskSet": { + "id": "ecs-svc/1234567890123456789", + "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", + "status": "ACTIVE", + "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", + "computedDesiredCount": 0, + "pendingCount": 0, + "runningCount": 0, + "createdAt": 1557128360.711, + "updatedAt": 1557129279.914, + "launchType": "EC2", + "networkConfiguration": { + "awsvpcConfiguration": { + "subnets": [ + "subnet-12344321" + ], + "securityGroups": [ + "sg-12344321" + ], + "assignPublicIp": "DISABLED" + } + }, + "loadBalancers": [], + "serviceRegistries": [], + "scale": { + "value": 50, + "unit": "PERCENT" + }, + "stabilityStatus": "STABILIZING", + "stabilityStatusAt": 1557129279.914 + } + } + } + ] + } + }, + "com.amazonaws.ecs#UpdateTaskSetRequest": { + "type": "structure", + "members": { + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set is found in.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ClusterName" + } + }, + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the service that the task set is found in.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "ServiceName" + } + }, + "taskSet": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The short name or full Amazon Resource Name (ARN) of the task set to update.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "TaskSetId" + } + }, + "scale": { + "target": "com.amazonaws.ecs#Scale", + "traits": { + "smithy.api#documentation": "

A floating-point percentage of the desired number of tasks to place and keep running in the task set.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#UpdateTaskSetResponse": { + "type": "structure", + "members": { + "taskSet": { + "target": "com.amazonaws.ecs#TaskSet", + "traits": { + "smithy.api#documentation": "

Details about the task set.

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#UpdatedExpressGatewayService": { + "type": "structure", + "members": { + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Express service that is being updated.

" + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The cluster associated with the Express service that is being updated.

" + } + }, + "serviceName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the Express service that is being updated.

" + } + }, + "status": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceStatus", + "traits": { + "smithy.api#documentation": "

The status of the Express service that is being updated.

" + } + }, + "targetConfiguration": { + "target": "com.amazonaws.ecs#ExpressGatewayServiceConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration to which the current Express service is being updated to.

" + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Express service that is being updated was created.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

The Unix timestamp for when the Express service that is being updated was most recently updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that describes an Express service to be updated.

" + } + }, + "com.amazonaws.ecs#VCpuCountRangeRequest": { + "type": "structure", + "members": { + "min": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The minimum number of vCPUs. Instance types with fewer vCPUs than this value are excluded from selection.

", + "smithy.api#required": {} + } + }, + "max": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of vCPUs. Instance types with more vCPUs than this value are excluded from selection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum and maximum number of vCPUs for instance type selection. This allows you to specify a range of vCPU counts that meet your workload requirements.

" + } + }, + "com.amazonaws.ecs#VersionConsistency": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + } + }, + "com.amazonaws.ecs#VersionInfo": { + "type": "structure", + "members": { + "agentVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The version number of the Amazon ECS container agent.

" + } + }, + "agentHash": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub repository.

" + } + }, + "dockerVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Docker version that's running on the container instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Docker and Amazon ECS container agent version information about a container instance.

" + } + }, + "com.amazonaws.ecs#Volume": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

When using a volume configured at launch, the name is required and must also be specified as the volume name in the ServiceVolumeConfiguration or TaskVolumeConfiguration parameter when creating your service or standalone task.

For all other types of volumes, this name is referenced in the sourceVolume parameter of the mountPoints object in the container definition.

When a volume is using the efsVolumeConfiguration, the name is required.

When a volume is using the s3filesVolumeConfiguration, the name is required.

" + } + }, + "host": { + "target": "com.amazonaws.ecs#HostVolumeProperties", + "traits": { + "smithy.api#documentation": "

This parameter is specified when you use bind mount host volumes. The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount C:\\my\\path:C:\\my\\path and D:\\:D:\\, but not D:\\my\\path:C:\\my\\path or D:\\:C:\\my\\path.

" + } + }, + "dockerVolumeConfiguration": { + "target": "com.amazonaws.ecs#DockerVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

This parameter is specified when you use Docker volumes.

Windows containers only support the use of the local driver. To use bind mounts, specify the host parameter instead.

Docker volumes aren't supported by tasks run on Fargate.

" + } + }, + "efsVolumeConfiguration": { + "target": "com.amazonaws.ecs#EFSVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

This parameter is specified when you use an Amazon Elastic File System file system for task storage.

" + } + }, + "s3filesVolumeConfiguration": { + "target": "com.amazonaws.ecs#S3FilesVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

This parameter is specified when you use an Amazon S3 Files file system for task storage.

" + } + }, + "fsxWindowsFileServerVolumeConfiguration": { + "target": "com.amazonaws.ecs#FSxWindowsFileServerVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

This parameter is specified when you use Amazon FSx for Windows File Server file system for task storage.

" + } + }, + "configuredAtLaunch": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each task definition revision may only have one volume configured at launch in the volume configuration.

To configure a volume at launch time, use this task definition revision and specify a volumeConfigurations object when calling the CreateService, UpdateService, RunTask or StartTask APIs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a name and one of either configuredAtLaunch, dockerVolumeConfiguration, efsVolumeConfiguration, s3filesVolumeConfiguration, fsxWindowsFileServerVolumeConfiguration, or host. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see Using data volumes in tasks.

" + } + }, + "com.amazonaws.ecs#VolumeFrom": { + "type": "structure", + "members": { + "sourceContainer": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of another container within the same task definition to mount volumes from.

" + } + }, + "readOnly": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details on a data volume from another container in the same task definition.

" + } + }, + "com.amazonaws.ecs#VolumeFromList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#VolumeFrom" + } + }, + "com.amazonaws.ecs#VolumeList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#Volume" + } + }, + "com.amazonaws.ecs#VpcLatticeAdvancedConfiguration": { + "type": "structure", + "members": { + "alternateTargetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the alternate target group associated with the VPC Lattice Configuration for Amazon ECS blue/green deployments.

" + } + }, + "productionListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the production listener rule or listener for routing production traffic.

" + } + }, + "testListenerRule": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the test listener rule or listener for routing test traffic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The advanced settings for VPC Lattice used in blue/green deployments. Specify the alternate target group and listener rules required for traffic shifting during blue/green deployments. For more information, see Required resources for Amazon ECS blue/green deployments in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "com.amazonaws.ecs#VpcLatticeConfiguration": { + "type": "structure", + "members": { + "roleArn": { + "target": "com.amazonaws.ecs#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS infrastructure IAM role that is used to manage your VPC Lattice infrastructure.

", + "smithy.api#required": {} + } + }, + "targetGroupArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.

", + "smithy.api#required": {} + } + }, + "portName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

The name of the port mapping to register in the VPC Lattice target group. This is the name of the portMapping you defined in your task definition.

", + "smithy.api#required": {} + } + }, + "advancedConfiguration": { + "target": "com.amazonaws.ecs#VpcLatticeAdvancedConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "

The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.

" + } + }, + "com.amazonaws.ecs#VpcLatticeConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#VpcLatticeConfiguration" + } + } + } +} diff --git a/codegen/aws-models/guardduty.json b/codegen/aws-models/guardduty.json index 1a39b9a6..4e53f6dc 100644 --- a/codegen/aws-models/guardduty.json +++ b/codegen/aws-models/guardduty.json @@ -5525,6 +5525,13 @@ "smithy.api#documentation": "

The ARN of the KMS key to use for encryption.

", "smithy.api#jsonName": "kmsKeyArn" } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.guardduty#AccountId", + "traits": { + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID of the account that owns the Amazon S3 bucket specified in the DestinationArn parameter.

When you provide this value, GuardDuty verifies that the specified account owns the bucket before it exports findings. If the account ID doesn't match the actual owner of the bucket, GuardDuty doesn't export findings to that bucket. This helps prevent GuardDuty from exporting your findings to a bucket that a different Amazon Web Services account owns (for example, if the original bucket was deleted and its name was later claimed by another account). If you don't specify this value, GuardDuty doesn't perform this verification. GuardDuty strongly recommends that you provide the expected bucket owner when possible.

When you update a publishing destination, omitting this field leaves the currently stored value unchanged. This field appears in the response only if it was provided when the publishing destination was created or updated.

For more information, see Verifying the Amazon S3 bucket owner in the Amazon GuardDuty User Guide.

", + "smithy.api#jsonName": "expectedBucketOwner" + } } }, "traits": { @@ -5588,6 +5595,16 @@ } } }, + "com.amazonaws.guardduty#DetectionRuleAgentVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[0-9]+(\\.[0-9]+){1,3}$" + } + }, "com.amazonaws.guardduty#DetectionRuleArn": { "type": "string", "traits": { @@ -5629,6 +5646,12 @@ "traits": { "smithy.api#enumValue": "CloudTrailManagementEvent" } + }, + "RUNTIME_MONITORING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RuntimeMonitoring" + } } } }, @@ -5641,6 +5664,51 @@ } } }, + "com.amazonaws.guardduty#DetectionRuleEc2Requirements": { + "type": "structure", + "members": { + "MinAgentVersion": { + "target": "com.amazonaws.guardduty#DetectionRuleAgentVersion", + "traits": { + "smithy.api#documentation": "

The minimum GuardDuty agent version required to run the rule on Amazon EC2.

", + "smithy.api#jsonName": "minAgentVersion" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requirements for running a Runtime Monitoring custom detection rule on Amazon EC2.

" + } + }, + "com.amazonaws.guardduty#DetectionRuleEcsFargateRequirements": { + "type": "structure", + "members": { + "MinAgentVersion": { + "target": "com.amazonaws.guardduty#DetectionRuleAgentVersion", + "traits": { + "smithy.api#documentation": "

The minimum GuardDuty agent version required to run the rule on Amazon ECS with the Fargate launch type.

", + "smithy.api#jsonName": "minAgentVersion" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requirements for running a Runtime Monitoring custom detection rule on Amazon ECS with the Fargate launch type.

" + } + }, + "com.amazonaws.guardduty#DetectionRuleEksRequirements": { + "type": "structure", + "members": { + "MinAgentVersion": { + "target": "com.amazonaws.guardduty#DetectionRuleAgentVersion", + "traits": { + "smithy.api#documentation": "

The minimum GuardDuty agent version required to run the rule on Amazon EKS.

", + "smithy.api#jsonName": "minAgentVersion" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requirements for running a Runtime Monitoring custom detection rule on Amazon EKS.

" + } + }, "com.amazonaws.guardduty#DetectionRuleFilter": { "type": "structure", "members": { @@ -5892,6 +5960,50 @@ "target": "com.amazonaws.guardduty#DetectionRuleOrgConfigurationSummary" } }, + "com.amazonaws.guardduty#DetectionRuleRuntimeMonitoringDetails": { + "type": "structure", + "members": { + "Platforms": { + "target": "com.amazonaws.guardduty#DetectionRuleRuntimePlatforms", + "traits": { + "smithy.api#documentation": "

The platforms on which the rule can run. The presence of a platform member indicates that the rule is supported on that platform; the absence of a member indicates that the rule cannot run on that platform at any agent version.

", + "smithy.api#jsonName": "platforms" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains Runtime Monitoring-specific details for a custom detection rule.

" + } + }, + "com.amazonaws.guardduty#DetectionRuleRuntimePlatforms": { + "type": "structure", + "members": { + "Eks": { + "target": "com.amazonaws.guardduty#DetectionRuleEksRequirements", + "traits": { + "smithy.api#documentation": "

The requirements for running the rule on Amazon EKS.

", + "smithy.api#jsonName": "eks" + } + }, + "Ec2": { + "target": "com.amazonaws.guardduty#DetectionRuleEc2Requirements", + "traits": { + "smithy.api#documentation": "

The requirements for running the rule on Amazon EC2.

", + "smithy.api#jsonName": "ec2" + } + }, + "EcsFargate": { + "target": "com.amazonaws.guardduty#DetectionRuleEcsFargateRequirements", + "traits": { + "smithy.api#documentation": "

The requirements for running the rule on Amazon ECS with the Fargate launch type.

", + "smithy.api#jsonName": "ecsFargate" + } + } + }, + "traits": { + "smithy.api#documentation": "

The platforms on which a Runtime Monitoring custom detection rule can run. A member's presence is the support statement: when present, the rule runs on that platform and minAgentVersion is the minimum GuardDuty agent version required there. When absent, the rule cannot run on that platform at any agent version.

" + } + }, "com.amazonaws.guardduty#DetectionRuleServiceName": { "type": "string", "traits": { @@ -7424,6 +7536,13 @@ "traits": { "smithy.api#enumValue": "EC2_AGENT_MANAGEMENT" } + }, + "RDS_DATA_RISK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

RDS Data Activity Monitoring, which monitors data activity on supported Amazon RDS database engines to detect potentially unauthorized access to your data.

", + "smithy.api#enumValue": "RDS_DATA_RISK" + } } } }, @@ -7794,6 +7913,14 @@ "smithy.api#documentation": "

Amazon Resource Name (ARN) associated with the attack sequence finding.

", "smithy.api#jsonName": "associatedAttackSequenceArn" } + }, + "CustomDetectionRuleName": { + "target": "com.amazonaws.guardduty#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the custom detection rule that generated this finding.

", + "smithy.api#jsonName": "customDetectionRuleName" + } } }, "traits": { @@ -17131,6 +17258,13 @@ "traits": { "smithy.api#enumValue": "EC2_AGENT_MANAGEMENT" } + }, + "RDS_DATA_RISK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

RDS Data Activity Monitoring, which monitors data activity on supported Amazon RDS database engines to detect potentially unauthorized access to your data.

", + "smithy.api#enumValue": "RDS_DATA_RISK" + } } } }, @@ -19201,6 +19335,13 @@ "smithy.api#jsonName": "schema" } }, + "RuntimeMonitoringDetails": { + "target": "com.amazonaws.guardduty#DetectionRuleRuntimeMonitoringDetails", + "traits": { + "smithy.api#documentation": "

Runtime Monitoring-specific details for the rule, including the platforms on which the rule can run and the minimum GuardDuty agent version required on each.

", + "smithy.api#jsonName": "runtimeMonitoringDetails" + } + }, "CreatedAt": { "target": "com.amazonaws.guardduty#Timestamp", "traits": { @@ -23791,6 +23932,34 @@ "smithy.api#enumValue": "RDS_DBI_PROTECTION_SERVERLESS" } }, + "RDS_DBI_PROTECTION_LIMITLESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Usage attributed to RDS Protection database infrastructure monitoring for Amazon Aurora DSQL Limitless databases.

", + "smithy.api#enumValue": "RDS_DBI_PROTECTION_LIMITLESS" + } + }, + "RDS_DATA_ACTIVITY_DBI_PROTECTION_PROVISIONED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Usage attributed to RDS Data Activity Monitoring for provisioned Amazon RDS databases.

", + "smithy.api#enumValue": "RDS_DATA_ACTIVITY_DBI_PROTECTION_PROVISIONED" + } + }, + "RDS_DATA_ACTIVITY_DBI_PROTECTION_SERVERLESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Usage attributed to RDS Data Activity Monitoring for Amazon Aurora Serverless databases.

", + "smithy.api#enumValue": "RDS_DATA_ACTIVITY_DBI_PROTECTION_SERVERLESS" + } + }, + "RDS_DATA_ACTIVITY_DBI_PROTECTION_LIMITLESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#documentation": "

Usage attributed to RDS Data Activity Monitoring for Amazon Aurora DSQL Limitless databases.

", + "smithy.api#enumValue": "RDS_DATA_ACTIVITY_DBI_PROTECTION_LIMITLESS" + } + }, "AI_PROTECTION": { "target": "smithy.api#Unit", "traits": { @@ -24204,4 +24373,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/iam.json b/codegen/aws-models/iam.json new file mode 100644 index 00000000..34828db9 --- /dev/null +++ b/codegen/aws-models/iam.json @@ -0,0 +1,21926 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.iam#AWSIdentityManagementV20100508": { + "type": "service", + "version": "2010-05-08", + "operations": [ + { + "target": "com.amazonaws.iam#AcceptDelegationRequest" + }, + { + "target": "com.amazonaws.iam#AcquireRole" + }, + { + "target": "com.amazonaws.iam#AddClientIDToOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#AddRoleToInstanceProfile" + }, + { + "target": "com.amazonaws.iam#AddUserToGroup" + }, + { + "target": "com.amazonaws.iam#AssociateDelegationRequest" + }, + { + "target": "com.amazonaws.iam#AttachGroupPolicy" + }, + { + "target": "com.amazonaws.iam#AttachRolePolicy" + }, + { + "target": "com.amazonaws.iam#AttachUserPolicy" + }, + { + "target": "com.amazonaws.iam#ChangePassword" + }, + { + "target": "com.amazonaws.iam#CreateAccessKey" + }, + { + "target": "com.amazonaws.iam#CreateAccountAlias" + }, + { + "target": "com.amazonaws.iam#CreateDelegationRequest" + }, + { + "target": "com.amazonaws.iam#CreateGroup" + }, + { + "target": "com.amazonaws.iam#CreateInstanceProfile" + }, + { + "target": "com.amazonaws.iam#CreateLoginProfile" + }, + { + "target": "com.amazonaws.iam#CreateOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#CreatePolicy" + }, + { + "target": "com.amazonaws.iam#CreatePolicyVersion" + }, + { + "target": "com.amazonaws.iam#CreateRole" + }, + { + "target": "com.amazonaws.iam#CreateSAMLProvider" + }, + { + "target": "com.amazonaws.iam#CreateServiceLinkedRole" + }, + { + "target": "com.amazonaws.iam#CreateServiceSpecificCredential" + }, + { + "target": "com.amazonaws.iam#CreateUser" + }, + { + "target": "com.amazonaws.iam#CreateVirtualMFADevice" + }, + { + "target": "com.amazonaws.iam#DeactivateMFADevice" + }, + { + "target": "com.amazonaws.iam#DeleteAccessKey" + }, + { + "target": "com.amazonaws.iam#DeleteAccountAlias" + }, + { + "target": "com.amazonaws.iam#DeleteAccountPasswordPolicy" + }, + { + "target": "com.amazonaws.iam#DeleteGroup" + }, + { + "target": "com.amazonaws.iam#DeleteGroupPolicy" + }, + { + "target": "com.amazonaws.iam#DeleteInstanceProfile" + }, + { + "target": "com.amazonaws.iam#DeleteLoginProfile" + }, + { + "target": "com.amazonaws.iam#DeleteOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#DeletePolicy" + }, + { + "target": "com.amazonaws.iam#DeletePolicyVersion" + }, + { + "target": "com.amazonaws.iam#DeleteRole" + }, + { + "target": "com.amazonaws.iam#DeleteRolePermissionsBoundary" + }, + { + "target": "com.amazonaws.iam#DeleteRolePolicy" + }, + { + "target": "com.amazonaws.iam#DeleteSAMLProvider" + }, + { + "target": "com.amazonaws.iam#DeleteServerCertificate" + }, + { + "target": "com.amazonaws.iam#DeleteServiceLinkedRole" + }, + { + "target": "com.amazonaws.iam#DeleteServiceSpecificCredential" + }, + { + "target": "com.amazonaws.iam#DeleteSigningCertificate" + }, + { + "target": "com.amazonaws.iam#DeleteSSHPublicKey" + }, + { + "target": "com.amazonaws.iam#DeleteUser" + }, + { + "target": "com.amazonaws.iam#DeleteUserPermissionsBoundary" + }, + { + "target": "com.amazonaws.iam#DeleteUserPolicy" + }, + { + "target": "com.amazonaws.iam#DeleteVirtualMFADevice" + }, + { + "target": "com.amazonaws.iam#DetachGroupPolicy" + }, + { + "target": "com.amazonaws.iam#DetachRolePolicy" + }, + { + "target": "com.amazonaws.iam#DetachUserPolicy" + }, + { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagement" + }, + { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessions" + }, + { + "target": "com.amazonaws.iam#DisableOutboundWebIdentityFederation" + }, + { + "target": "com.amazonaws.iam#EnableMFADevice" + }, + { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagement" + }, + { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessions" + }, + { + "target": "com.amazonaws.iam#EnableOutboundWebIdentityFederation" + }, + { + "target": "com.amazonaws.iam#GenerateCredentialReport" + }, + { + "target": "com.amazonaws.iam#GenerateOrganizationsAccessReport" + }, + { + "target": "com.amazonaws.iam#GenerateServiceLastAccessedDetails" + }, + { + "target": "com.amazonaws.iam#GetAccessKeyLastUsed" + }, + { + "target": "com.amazonaws.iam#GetAccountAuthorizationDetails" + }, + { + "target": "com.amazonaws.iam#GetAccountPasswordPolicy" + }, + { + "target": "com.amazonaws.iam#GetAccountProperties" + }, + { + "target": "com.amazonaws.iam#GetAccountSummary" + }, + { + "target": "com.amazonaws.iam#GetContextKeysForCustomPolicy" + }, + { + "target": "com.amazonaws.iam#GetContextKeysForPrincipalPolicy" + }, + { + "target": "com.amazonaws.iam#GetCredentialReport" + }, + { + "target": "com.amazonaws.iam#GetDelegationRequest" + }, + { + "target": "com.amazonaws.iam#GetGroup" + }, + { + "target": "com.amazonaws.iam#GetGroupPolicy" + }, + { + "target": "com.amazonaws.iam#GetHumanReadableSummary" + }, + { + "target": "com.amazonaws.iam#GetInstanceProfile" + }, + { + "target": "com.amazonaws.iam#GetLoginProfile" + }, + { + "target": "com.amazonaws.iam#GetMFADevice" + }, + { + "target": "com.amazonaws.iam#GetOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#GetOrganizationsAccessReport" + }, + { + "target": "com.amazonaws.iam#GetOutboundWebIdentityFederationInfo" + }, + { + "target": "com.amazonaws.iam#GetPolicy" + }, + { + "target": "com.amazonaws.iam#GetPolicyVersion" + }, + { + "target": "com.amazonaws.iam#GetRole" + }, + { + "target": "com.amazonaws.iam#GetRolePolicy" + }, + { + "target": "com.amazonaws.iam#GetRoleTemplateVersion" + }, + { + "target": "com.amazonaws.iam#GetSAMLProvider" + }, + { + "target": "com.amazonaws.iam#GetServerCertificate" + }, + { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetails" + }, + { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntities" + }, + { + "target": "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatus" + }, + { + "target": "com.amazonaws.iam#GetSSHPublicKey" + }, + { + "target": "com.amazonaws.iam#GetUser" + }, + { + "target": "com.amazonaws.iam#GetUserPolicy" + }, + { + "target": "com.amazonaws.iam#ListAccessKeys" + }, + { + "target": "com.amazonaws.iam#ListAccountAliases" + }, + { + "target": "com.amazonaws.iam#ListAttachedGroupPolicies" + }, + { + "target": "com.amazonaws.iam#ListAttachedRolePolicies" + }, + { + "target": "com.amazonaws.iam#ListAttachedUserPolicies" + }, + { + "target": "com.amazonaws.iam#ListDelegationRequests" + }, + { + "target": "com.amazonaws.iam#ListEntitiesForPolicy" + }, + { + "target": "com.amazonaws.iam#ListGroupPolicies" + }, + { + "target": "com.amazonaws.iam#ListGroups" + }, + { + "target": "com.amazonaws.iam#ListGroupsForUser" + }, + { + "target": "com.amazonaws.iam#ListInstanceProfiles" + }, + { + "target": "com.amazonaws.iam#ListInstanceProfilesForRole" + }, + { + "target": "com.amazonaws.iam#ListInstanceProfileTags" + }, + { + "target": "com.amazonaws.iam#ListMFADevices" + }, + { + "target": "com.amazonaws.iam#ListMFADeviceTags" + }, + { + "target": "com.amazonaws.iam#ListOpenIDConnectProviders" + }, + { + "target": "com.amazonaws.iam#ListOpenIDConnectProviderTags" + }, + { + "target": "com.amazonaws.iam#ListOrganizationsFeatures" + }, + { + "target": "com.amazonaws.iam#ListPolicies" + }, + { + "target": "com.amazonaws.iam#ListPoliciesGrantingServiceAccess" + }, + { + "target": "com.amazonaws.iam#ListPolicyTags" + }, + { + "target": "com.amazonaws.iam#ListPolicyVersions" + }, + { + "target": "com.amazonaws.iam#ListRolePolicies" + }, + { + "target": "com.amazonaws.iam#ListRoles" + }, + { + "target": "com.amazonaws.iam#ListRoleTags" + }, + { + "target": "com.amazonaws.iam#ListSAMLProviders" + }, + { + "target": "com.amazonaws.iam#ListSAMLProviderTags" + }, + { + "target": "com.amazonaws.iam#ListServerCertificates" + }, + { + "target": "com.amazonaws.iam#ListServerCertificateTags" + }, + { + "target": "com.amazonaws.iam#ListServiceSpecificCredentials" + }, + { + "target": "com.amazonaws.iam#ListSigningCertificates" + }, + { + "target": "com.amazonaws.iam#ListSSHPublicKeys" + }, + { + "target": "com.amazonaws.iam#ListUserPolicies" + }, + { + "target": "com.amazonaws.iam#ListUsers" + }, + { + "target": "com.amazonaws.iam#ListUserTags" + }, + { + "target": "com.amazonaws.iam#ListVirtualMFADevices" + }, + { + "target": "com.amazonaws.iam#PutAccountProperties" + }, + { + "target": "com.amazonaws.iam#PutGroupPolicy" + }, + { + "target": "com.amazonaws.iam#PutRolePermissionsBoundary" + }, + { + "target": "com.amazonaws.iam#PutRolePolicy" + }, + { + "target": "com.amazonaws.iam#PutUserPermissionsBoundary" + }, + { + "target": "com.amazonaws.iam#PutUserPolicy" + }, + { + "target": "com.amazonaws.iam#RejectDelegationRequest" + }, + { + "target": "com.amazonaws.iam#RemoveClientIDFromOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#RemoveRoleFromInstanceProfile" + }, + { + "target": "com.amazonaws.iam#RemoveUserFromGroup" + }, + { + "target": "com.amazonaws.iam#ResetServiceSpecificCredential" + }, + { + "target": "com.amazonaws.iam#ResyncMFADevice" + }, + { + "target": "com.amazonaws.iam#SendDelegationToken" + }, + { + "target": "com.amazonaws.iam#SetDefaultPolicyVersion" + }, + { + "target": "com.amazonaws.iam#SetSecurityTokenServicePreferences" + }, + { + "target": "com.amazonaws.iam#SimulateCustomPolicy" + }, + { + "target": "com.amazonaws.iam#SimulatePrincipalPolicy" + }, + { + "target": "com.amazonaws.iam#TagInstanceProfile" + }, + { + "target": "com.amazonaws.iam#TagMFADevice" + }, + { + "target": "com.amazonaws.iam#TagOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#TagPolicy" + }, + { + "target": "com.amazonaws.iam#TagRole" + }, + { + "target": "com.amazonaws.iam#TagSAMLProvider" + }, + { + "target": "com.amazonaws.iam#TagServerCertificate" + }, + { + "target": "com.amazonaws.iam#TagUser" + }, + { + "target": "com.amazonaws.iam#UntagInstanceProfile" + }, + { + "target": "com.amazonaws.iam#UntagMFADevice" + }, + { + "target": "com.amazonaws.iam#UntagOpenIDConnectProvider" + }, + { + "target": "com.amazonaws.iam#UntagPolicy" + }, + { + "target": "com.amazonaws.iam#UntagRole" + }, + { + "target": "com.amazonaws.iam#UntagSAMLProvider" + }, + { + "target": "com.amazonaws.iam#UntagServerCertificate" + }, + { + "target": "com.amazonaws.iam#UntagUser" + }, + { + "target": "com.amazonaws.iam#UpdateAccessKey" + }, + { + "target": "com.amazonaws.iam#UpdateAccountPasswordPolicy" + }, + { + "target": "com.amazonaws.iam#UpdateAssumeRolePolicy" + }, + { + "target": "com.amazonaws.iam#UpdateDelegationRequest" + }, + { + "target": "com.amazonaws.iam#UpdateGroup" + }, + { + "target": "com.amazonaws.iam#UpdateLoginProfile" + }, + { + "target": "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprint" + }, + { + "target": "com.amazonaws.iam#UpdateRole" + }, + { + "target": "com.amazonaws.iam#UpdateRoleDescription" + }, + { + "target": "com.amazonaws.iam#UpdateSAMLProvider" + }, + { + "target": "com.amazonaws.iam#UpdateServerCertificate" + }, + { + "target": "com.amazonaws.iam#UpdateServiceSpecificCredential" + }, + { + "target": "com.amazonaws.iam#UpdateSigningCertificate" + }, + { + "target": "com.amazonaws.iam#UpdateSSHPublicKey" + }, + { + "target": "com.amazonaws.iam#UpdateUser" + }, + { + "target": "com.amazonaws.iam#UploadServerCertificate" + }, + { + "target": "com.amazonaws.iam#UploadSigningCertificate" + }, + { + "target": "com.amazonaws.iam#UploadSSHPublicKey" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "IAM", + "arnNamespace": "iam", + "cloudFormationName": "IAM", + "cloudTrailEventSource": "iam.amazonaws.com", + "endpointPrefix": "iam" + }, + "aws.auth#sigv4": { + "name": "iam" + }, + "aws.protocols#awsQuery": {}, + "smithy.api#documentation": "Identity and Access Management\n

Identity and Access Management (IAM) is a web service for securely controlling \n access to Amazon Web Services services. With IAM, you can centrally manage users, security credentials\n such as access keys, and permissions that control which Amazon Web Services resources users and \n applications can access. For more information about IAM, see Identity and Access Management (IAM) and the Identity and Access Management User Guide.

\n

\n Programmatic access to IAM\n

\n

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to IAM. The Amazon Web Services\n SDKs consist of libraries and sample code for various programming languages and platforms\n (for example, Java, Ruby, .NET, iOS, and Android). The SDKs provide a convenient way to\n create programmatic access to IAM and Amazon Web Services. For example, the SDKs take care of tasks such as\n cryptographically signing requests, managing errors, and retrying requests automatically.\n For more information, see Tools to build on\n Amazon Web Services.

\n

Alternatively, you can also use the IAM Query API to make direct calls to the IAM\n service. For more information about calling the IAM Query API, see Making query\n requests in the Identity and Access Management User Guide. IAM supports GET and\n POST requests for all actions. That is, the API does not require you to use GET for some\n actions and POST for others. However, GET requests are subject to the limitation size of a\n URL. Therefore, for operations that require larger sizes, use a POST request.

\n

\n Signing requests\n

\n

Requests must be signed using an access key ID and a secret access key. We strongly\n recommend that you do not use your Amazon Web Services account access key ID and secret access key for\n everyday work with IAM. You can use the access key ID and secret access key for an\n IAM user or you can use the Security Token Service to generate temporary security credentials and use\n those to sign requests.

\n

To sign requests, we recommend that you use Signature Version 4. If you have an\n existing application that uses Signature Version 2, you do not have to update it to use\n Signature Version 4. However, some operations now require Signature Version 4. The\n documentation for operations that require version 4 indicate this requirement.

\n

\n Additional resources\n

\n ", + "smithy.api#title": "AWS Identity and Access Management", + "smithy.api#xmlNamespace": { + "uri": "https://iam.amazonaws.com/doc/2010-05-08/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "parameters": { + "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" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-e" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-f" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-eusc" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.global.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-gov.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.api.aws.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.aws.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.api.aws.scloud", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.aws.scloud", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.eu-isoe-west-1.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.api.cloud-aws.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.cloud-aws.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-isof-south-1.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.api.aws.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.aws.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.eusc-de-east-1.amazonaws.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.amazonaws.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.global.api.amazonwebservices.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.api.amazonwebservices.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 43, + "nodes": "/////wAAAAH/////AAAAAAAAACoAAAADAAAAAQAAAAQF9eEpAAAAAgAAAAUF9eEpAAAAAwAAACcAAAAGAAAABAAAACQAAAAHAAAABQAAACMAAAAIAAAABgAAACAAAAAJAAAABwAAABQAAAAKAAAACAAAAA8AAAALAAAACQX14RIAAAAMAAAACgX14RYAAAANAAAACwX14RoAAAAOAAAADAX14R4F9eEoAAAACQX14RQAAAAQAAAACgX14RgAAAARAAAACwX14RwAAAASAAAADAX14SAAAAATAAAADQX14SYF9eEnAAAACAAAABoAAAAVAAAACQX14RMAAAAWAAAACgX14RcAAAAXAAAACwX14RsAAAAYAAAADAX14R8AAAAZAAAADgX14SQF9eElAAAACQX14RUAAAAbAAAACgX14RkAAAAcAAAACwX14R0AAAAdAAAADAX14SEAAAAeAAAADQAAAB8F9eEjAAAADgX14SIF9eEjAAAABwAAACIAAAAhAAAACAX14RAF9eEOAAAACAX14REF9eEPAAAACAX14QwF9eENAAAABwAAACYAAAAlAAAACAX14QgF9eEKAAAACAX14QkF9eELAAAABwAAACkAAAAoAAAACAX14QYF9eEEAAAACAX14QcF9eEFAAAABwX14QEAAAArAAAACAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "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" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the 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": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.global.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.global.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.api.aws.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.aws.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.api.aws.scloud", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.aws.scloud", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-e" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.eu-isoe-west-1.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-e" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.cloud.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-e" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.api.cloud-aws.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-e" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.cloud-aws.adc-e.uk", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-f" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.us-isof-south-1.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-f" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.csp.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-f" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.api.aws.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-f" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.aws.hci.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-eusc" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam.eusc-de-east-1.amazonaws.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-eusc" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-eusc" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam.global.api.amazonwebservices.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-eusc" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://iam-fips.api.amazonwebservices.eu", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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 + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "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://iam.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://iam-fips.global.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://iam-fips.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://iam.global.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": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://iam.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "url": "https://iam-fips.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "url": "https://iam-fips.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "url": "https://iam.global.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1" + } + ] + }, + "url": "https://iam.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eusc-de-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "url": "https://iam-fips.amazonaws.eu" + } + }, + "params": { + "Region": "eusc-de-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eusc-de-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eusc-de-east-1" + } + ] + }, + "url": "https://iam.eusc-de-east-1.amazonaws.eu" + } + }, + "params": { + "Region": "eusc-de-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://iam-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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://iam.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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://iam-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 disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://iam-fips.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://iam.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://iam-fips.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://iam.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://iam.us-gov.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://iam.us-gov.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://iam.us-gov.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://iam.us-gov.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.iam#AcceptDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AcceptDelegationRequestRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Accepts a delegation request, granting the requested temporary access.

\n

Once the delegation request is accepted, it is eligible to send the exchange token to the partner.\n The SendDelegationToken\n API has to be explicitly called to send the delegation token.\n

\n

At the time of acceptance, IAM records the details and the state of the identity that called this API.\n This is the identity that gets mapped to the delegated credential.\n

\n

An accepted request may be rejected before the exchange token is sent to the partner.

" + } + }, + "com.amazonaws.iam#AcceptDelegationRequestRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request to accept.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AccessAdvisorUsageGranularityType": { + "type": "enum", + "members": { + "SERVICE_LEVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_LEVEL" + } + }, + "ACTION_LEVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTION_LEVEL" + } + } + } + }, + "com.amazonaws.iam#AccessDetail": { + "type": "structure", + "members": { + "ServiceName": { + "target": "com.amazonaws.iam#serviceNameType", + "traits": { + "smithy.api#documentation": "

The name of the service in which access was attempted.

", + "smithy.api#required": {} + } + }, + "ServiceNamespace": { + "target": "com.amazonaws.iam#serviceNamespaceType", + "traits": { + "smithy.api#documentation": "

The namespace of the service in which access was attempted.

\n

To learn the service namespace of a service, see Actions, resources, and condition keys for Amazon Web Services services in the\n Service Authorization Reference. Choose the name of the service to\n view details for that service. In the first paragraph, find the service prefix. For\n example, (service prefix: a4b). For more information about service namespaces,\n see Amazon Web Services\n service namespaces in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "Region": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The Region where the last service access attempt occurred.

\n

This field is null if no principals in the reported Organizations entity attempted to access the\n service within the tracking period.

" + } + }, + "EntityPath": { + "target": "com.amazonaws.iam#organizationsEntityPathType", + "traits": { + "smithy.api#documentation": "

The path of the Organizations entity (root, organizational unit, or account) from which an\n authenticated principal last attempted to access the service. Amazon Web Services does not report\n unauthenticated requests.

\n

This field is null if no principals (IAM users, IAM roles, or root user) in the\n reported Organizations entity attempted to access the service within the tracking period.

" + } + }, + "LastAuthenticatedTime": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when an authenticated principal most recently attempted to access the\n service. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no principals in the reported Organizations entity attempted to access the\n service within the tracking period.

" + } + }, + "TotalAuthenticatedEntities": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The number of accounts with authenticated principals (root user, IAM users, and IAM\n roles) that attempted to access the service in the tracking period.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains details about when a principal in the reported Organizations entity\n last attempted to access an Amazon Web Services service. A principal can be an IAM user, an IAM role,\n or the Amazon Web Services account root user within the reported Organizations entity.

\n

This data type is a response element in the GetOrganizationsAccessReport operation.

" + } + }, + "com.amazonaws.iam#AccessDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#AccessDetail" + } + }, + "com.amazonaws.iam#AccessKey": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user that the access key is associated with.

", + "smithy.api#required": {} + } + }, + "AccessKeyId": { + "target": "com.amazonaws.iam#accessKeyIdType", + "traits": { + "smithy.api#documentation": "

The ID for this access key.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the access key. Active means that the key is valid for API\n calls, while Inactive means it is not.

", + "smithy.api#required": {} + } + }, + "SecretAccessKey": { + "target": "com.amazonaws.iam#accessKeySecretType", + "traits": { + "smithy.api#documentation": "

The secret key used to sign requests.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the access key was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an Amazon Web Services access key.

\n

This data type is used as a response element in the CreateAccessKey and\n ListAccessKeys operations.

\n \n

The SecretAccessKey value is returned only in response to CreateAccessKey. You can get a secret access key only when you first create\n an access key; you cannot recover the secret access key later. If you lose a secret\n access key, you must create a new access key.

\n
" + } + }, + "com.amazonaws.iam#AccessKeyLastUsed": { + "type": "structure", + "members": { + "LastUsedDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the access key was most recently used. This field is null in the\n following situations:

\n
    \n
  • \n

    The user does not have an access key.

    \n
  • \n
  • \n

    An access key exists but has not been used since IAM began tracking this\n information.

    \n
  • \n
  • \n

    There is no sign-in data associated with the user.

    \n
  • \n
" + } + }, + "ServiceName": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services service with which this access key was most recently used. The\n value of this field is \"N/A\" in the following situations:

\n
    \n
  • \n

    The user does not have an access key.

    \n
  • \n
  • \n

    An access key exists but has not been used since IAM started tracking this\n information.

    \n
  • \n
  • \n

    There is no sign-in data associated with the user.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Region": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region where this access key was most recently used. The value for this field\n is \"N/A\" in the following situations:

\n
    \n
  • \n

    The user does not have an access key.

    \n
  • \n
  • \n

    An access key exists but has not been used since IAM began tracking this\n information.

    \n
  • \n
  • \n

    There is no sign-in data associated with the user.

    \n
  • \n
\n

For more information about Amazon Web Services Regions, see Regions and endpoints in the Amazon Web Services\n General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the last time an Amazon Web Services access key was used since IAM began\n tracking this information on April 22, 2015.

\n

This data type is used as a response element in the GetAccessKeyLastUsed\n operation.

" + } + }, + "com.amazonaws.iam#AccessKeyMetadata": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user that the key is associated with.

" + } + }, + "AccessKeyId": { + "target": "com.amazonaws.iam#accessKeyIdType", + "traits": { + "smithy.api#documentation": "

The ID for this access key.

" + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the access key. Active means that the key is valid for API\n calls; Inactive means it is not.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the access key was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an Amazon Web Services access key, without its secret key.

\n

This data type is used as a response element in the ListAccessKeys\n operation.

" + } + }, + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the account making the request is not the management\n account or delegated administrator account for centralized root\n access.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#AcquireRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AcquireRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#AcquireRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NameConflictException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#RoleModifiedException" + }, + { + "target": "com.amazonaws.iam#RoleTemplateDisabledException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an IAM role from the specified role template. The new role takes its\n configuration—including its name, path, trust policy, inline and managed policies,\n permissions boundary, tags, and maximum session duration—from the role\n template version that you specify. For more information about roles, see IAM roles in the\n IAM User Guide.

\n

If the template version defines parameters, use the ReplacementValues\n parameter to supply the values that the service substitutes into the role during\n creation.

" + } + }, + "com.amazonaws.iam#AcquireRoleRequest": { + "type": "structure", + "members": { + "TemplateArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role template to create the role from.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "TemplateMinorVersion": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The minor version of the role template to use. If you do not specify a minor version,\n the service uses the template's default minor version.

" + } + }, + "ReplacementValues": { + "target": "com.amazonaws.iam#mapStringReplacementValueEntry", + "traits": { + "smithy.api#documentation": "

A map of values to substitute for the parameters that are defined in the role template\n version. Each key is a parameter name from the template, and each value is a structure\n that contains the replacement values for that parameter.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AcquireRoleResponse": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.iam#Role", + "traits": { + "smithy.api#documentation": "

A structure that contains details about the IAM role that was created.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ActionNameListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ActionNameType" + } + }, + "com.amazonaws.iam#ActionNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 128 + } + } + }, + "com.amazonaws.iam#AddClientIDToOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AddClientIDToOpenIDConnectProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds a new client ID (also known as audience) to the list of client IDs already\n registered for the specified IAM OpenID Connect (OIDC) provider resource.

\n

This operation is idempotent; it does not fail or return an error if you add an\n existing client ID to the provider.

", + "smithy.api#examples": [ + { + "title": "To add a client ID (audience) to an Open-ID Connect (OIDC) provider", + "documentation": "The following add-client-id-to-open-id-connect-provider command adds the client ID my-application-ID to the OIDC provider named server.example.com:", + "input": { + "ClientID": "my-application-ID", + "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com" + } + } + ] + } + }, + "com.amazonaws.iam#AddClientIDToOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to\n add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

", + "smithy.api#required": {} + } + }, + "ClientID": { + "target": "com.amazonaws.iam#clientIDType", + "traits": { + "smithy.api#documentation": "

The client ID (also known as audience) to add to the IAM OpenID Connect provider\n resource.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AddRoleToInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AddRoleToInstanceProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds the specified IAM role to the specified instance profile. An instance profile\n can contain only one role, and this quota cannot be increased. You can remove the\n existing role and then add a different role to an instance profile. You must then wait\n for the change to appear across all of Amazon Web Services because of eventual\n consistency. To force the change, you must disassociate the instance profile and then associate the\n instance profile, or you can stop your instance and then restart it.

\n \n

The caller of this operation must be granted the PassRole permission\n on the IAM role by a permissions policy.

\n
\n \n

When using the iam:AssociatedResourceArn condition in a policy to restrict the PassRole IAM action, special considerations apply if the policy is\n intended to define access for the AddRoleToInstanceProfile action. In\n this case, you cannot specify a Region or instance ID in the EC2 instance ARN. The\n ARN value must be arn:aws:ec2:*:CallerAccountId:instance/*. Using any\n other ARN value may lead to unexpected evaluation results.

\n
\n

For more information about roles, see IAM roles in the\n IAM User Guide. For more information about instance profiles,\n see Using\n instance profiles in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a role to an instance profile", + "documentation": "The following command adds the role named S3Access to the instance profile named Webserver:", + "input": { + "RoleName": "S3Access", + "InstanceProfileName": "Webserver" + } + } + ] + } + }, + "com.amazonaws.iam#AddRoleToInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the instance profile to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to add.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AddUserToGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AddUserToGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds the specified user to the specified group.

", + "smithy.api#examples": [ + { + "title": "To add a user to an IAM group", + "documentation": "The following command adds an IAM user named Bob to the IAM group named Admins:", + "input": { + "UserName": "Bob", + "GroupName": "Admins" + } + } + ] + } + }, + "com.amazonaws.iam#AddUserToGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to add.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ArnListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#arnType" + } + }, + "com.amazonaws.iam#AssociateDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AssociateDelegationRequestRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates a delegation request with the current identity.

\n

If the partner that created the delegation request has specified the owner account during creation,\n only an identity from that owner account can call the AssociateDelegationRequest API for\n the specified delegation request. Once the AssociateDelegationRequest API call is successful,\n the ARN of the current calling identity will be stored as the\n ownerId\n of the request.\n

\n

If the partner that created the delegation request has not specified the owner account during creation,\n any caller from any account can call the AssociateDelegationRequest API for\n the delegation request. Once this API call is successful, the ARN of the current calling identity will be stored as the\n ownerId\n and the Amazon Web Services account ID of the current calling identity will be stored as the\n ownerAccount\n of the request.\n

\n

\n For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#AssociateDelegationRequestRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request to associate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AttachGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AttachGroupPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyNotAttachableException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches the specified managed policy to the specified IAM group.

\n

You use this operation to attach a managed policy to a group. To embed an inline\n policy in a group, use \n PutGroupPolicy\n .

\n

As a best practice, you can validate your IAM policies. \n To learn more, see Validating IAM policies \n in the IAM User Guide.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To attach a managed policy to an IAM group", + "documentation": "The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM group named Finance.", + "input": { + "GroupName": "Finance", + "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess" + } + } + ] + } + }, + "com.amazonaws.iam#AttachGroupPolicyRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the group to attach the policy to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AttachRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AttachRolePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyNotAttachableException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches the specified managed policy to the specified IAM role. When you attach a\n managed policy to a role, the managed policy becomes part of the role's permission\n (access) policy.

\n \n

You cannot use a managed policy as the role's trust policy. The role's trust\n policy is created at the same time as the role, using \n CreateRole\n . You can update a role's trust policy using\n \n UpdateAssumerolePolicy\n .

\n
\n

Use this operation to attach a managed policy to a role. To embed\n an inline policy in a role, use \n PutRolePolicy\n . For more information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

As a best practice, you can validate your IAM policies. \n To learn more, see Validating IAM policies \n in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To attach a managed policy to an IAM role", + "documentation": "The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM role named ReadOnlyRole.", + "input": { + "RoleName": "ReadOnlyRole", + "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess" + } + } + ] + } + }, + "com.amazonaws.iam#AttachRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the role to attach the policy to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AttachUserPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#AttachUserPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyNotAttachableException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches the specified managed policy to the specified user.

\n

You use this operation to attach a managed policy to a user. To\n embed an inline policy in a user, use \n PutUserPolicy\n .

\n

As a best practice, you can validate your IAM policies. \n To learn more, see Validating IAM policies \n in the IAM User Guide.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To attach a managed policy to an IAM user", + "documentation": "The following command attaches the AWS managed policy named AdministratorAccess to the IAM user named Alice.", + "input": { + "UserName": "Alice", + "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" + } + } + ] + } + }, + "com.amazonaws.iam#AttachUserPolicyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM user to attach the policy to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#AttachedPermissionsBoundary": { + "type": "structure", + "members": { + "PermissionsBoundaryType": { + "target": "com.amazonaws.iam#PermissionsBoundaryAttachmentType", + "traits": { + "smithy.api#documentation": "

The permissions boundary usage type that indicates what type of IAM resource is used\n as the permissions boundary for an entity. This data type can only have a value of\n Policy.

" + } + }, + "PermissionsBoundaryArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the policy used to set the permissions boundary for the user or role.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an attached permissions boundary.

\n

An attached permissions boundary is a managed policy that has been attached to a user or\n role to set the permissions boundary.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#AttachedPolicy": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The friendly name of the attached policy.

" + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType" + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an attached policy.

\n

An attached policy is a managed policy that has been attached to a user, group, or role.\n This data type is used as a response element in the ListAttachedGroupPolicies, ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails operations.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#AttachmentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#AttachmentType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "group" + } + }, + "ROLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "role" + } + } + } + }, + "com.amazonaws.iam#BootstrapDatum": { + "type": "blob", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#CallerIsNotManagementAccountException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the account making the request is not the management\n account for the organization.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#CertificationKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#CertificationMapType": { + "type": "map", + "key": { + "target": "com.amazonaws.iam#CertificationKeyType" + }, + "value": { + "target": "com.amazonaws.iam#CertificationValueType" + } + }, + "com.amazonaws.iam#CertificationValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#ChangePassword": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ChangePasswordRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#InvalidUserTypeException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PasswordPolicyViolationException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the password of the IAM user who is calling this operation. This operation\n can be performed using the CLI, the Amazon Web Services API, or the My\n Security Credentials page in the Amazon Web Services Management Console. The Amazon Web Services account root user password is\n not affected by this operation.

\n

Use UpdateLoginProfile\n to use the CLI, the Amazon Web Services API, or the Users page in\n the IAM console to change the password for any IAM user. For more information about\n modifying passwords, see Managing passwords in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To change the password for your IAM user", + "documentation": "The following command changes the password for the current IAM user.", + "input": { + "NewPassword": "]35d/{pB9Fo9wJ", + "OldPassword": "3s0K_;xh4~8XXI" + } + } + ] + } + }, + "com.amazonaws.iam#ChangePasswordRequest": { + "type": "structure", + "members": { + "OldPassword": { + "target": "com.amazonaws.iam#passwordType", + "traits": { + "smithy.api#documentation": "

The IAM user's current password.

", + "smithy.api#required": {} + } + }, + "NewPassword": { + "target": "com.amazonaws.iam#passwordType", + "traits": { + "smithy.api#documentation": "

The new password. The new password must conform to the Amazon Web Services account's password\n policy, if one exists.

\n

The regex pattern \n that is used to validate this parameter is a string of characters. That string can include almost any printable \n ASCII character from the space (\\u0020) through the end of the ASCII character range (\\u00FF). \n You can also include the tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) \n characters. Any of these characters are valid in a password. However, many tools, such \n as the Amazon Web Services Management Console, might restrict the ability to type certain characters because they have \n special meaning within that tool.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ColumnNumber": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.iam#ConcurrentModificationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#ConcurrentModificationMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConcurrentModification", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because multiple requests to change this object were submitted\n simultaneously. Wait a few minutes and submit your request again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#ConcurrentModificationMessage": { + "type": "string" + }, + "com.amazonaws.iam#ContextEntry": { + "type": "structure", + "members": { + "ContextKeyName": { + "target": "com.amazonaws.iam#ContextKeyNameType", + "traits": { + "smithy.api#documentation": "

The full name of a condition context key, including the service prefix. For example,\n aws:SourceIp or s3:VersionId.

" + } + }, + "ContextKeyValues": { + "target": "com.amazonaws.iam#ContextKeyValueListType", + "traits": { + "smithy.api#documentation": "

The value (or values, if the condition context key supports multiple values) to provide\n to the simulation when the key is referenced by a Condition element in an\n input policy.

" + } + }, + "ContextKeyType": { + "target": "com.amazonaws.iam#ContextKeyTypeEnum", + "traits": { + "smithy.api#documentation": "

The data type of the value (or values) specified in the ContextKeyValues\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a condition context key. It includes the name of the key and\n specifies the value (or values, if the context key supports multiple values) to use in the\n simulation. This information is used when evaluating the Condition elements of\n the input policies.

\n

This data type is used as an input parameter to SimulateCustomPolicy\n and SimulatePrincipalPolicy.

" + } + }, + "com.amazonaws.iam#ContextEntryListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ContextEntry" + } + }, + "com.amazonaws.iam#ContextKeyNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 256 + } + } + }, + "com.amazonaws.iam#ContextKeyNamesResultListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ContextKeyNameType" + } + }, + "com.amazonaws.iam#ContextKeyTypeEnum": { + "type": "enum", + "members": { + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "string" + } + }, + "STRING_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stringList" + } + }, + "NUMERIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "numeric" + } + }, + "NUMERIC_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "numericList" + } + }, + "BOOLEAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "boolean" + } + }, + "BOOLEAN_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "booleanList" + } + }, + "IP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ip" + } + }, + "IP_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ipList" + } + }, + "BINARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "binary" + } + }, + "BINARY_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "binaryList" + } + }, + "DATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "date" + } + }, + "DATE_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dateList" + } + } + } + }, + "com.amazonaws.iam#ContextKeyValueListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ContextKeyValueType" + } + }, + "com.amazonaws.iam#ContextKeyValueType": { + "type": "string" + }, + "com.amazonaws.iam#CreateAccessKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateAccessKeyRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateAccessKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new Amazon Web Services secret access key and corresponding Amazon Web Services access key ID for the\n specified user. The default status for new keys is Active.

\n

If you do not specify a user name, IAM determines the user name implicitly based on\n the Amazon Web Services access key ID signing the request. This operation works for access keys under\n the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root\n user credentials. This is true even if the Amazon Web Services account has no associated users.

\n

For information about quotas on the number of keys you can create, see IAM and STS\n quotas in the IAM User Guide.

\n \n

To ensure the security of your Amazon Web Services account, the secret access key is accessible\n only during key and user creation. You must save the key (for example, in a text\n file) if you want to be able to access it again. If a secret key is lost, you can\n delete the access keys for the associated user and then create new keys.

\n
", + "smithy.api#examples": [ + { + "title": "To create an access key for an IAM user", + "documentation": "The following command creates an access key (access key ID and secret access key) for the IAM user named Bob.", + "input": { + "UserName": "Bob" + }, + "output": { + "AccessKey": { + "UserName": "Bob", + "Status": "Active", + "CreateDate": "2015-03-09T18:39:23.411Z", + "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateAccessKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user that the new key will belong to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateAccessKeyResponse": { + "type": "structure", + "members": { + "AccessKey": { + "target": "com.amazonaws.iam#AccessKey", + "traits": { + "smithy.api#documentation": "

A structure with details about the access key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateAccessKey request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateAccountAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateAccountAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an alias for your Amazon Web Services account. For information about using an Amazon Web Services account\n alias, see Creating, deleting, and\n listing an Amazon Web Services account alias in the Amazon Web Services Sign-In User\n Guide.

", + "smithy.api#examples": [ + { + "title": "To create an account alias", + "documentation": "The following command associates the alias examplecorp to your AWS account.", + "input": { + "AccountAlias": "examplecorp" + } + } + ] + } + }, + "com.amazonaws.iam#CreateAccountAliasRequest": { + "type": "structure", + "members": { + "AccountAlias": { + "target": "com.amazonaws.iam#accountAliasType", + "traits": { + "smithy.api#documentation": "

The account alias to create.

\n

This parameter allows (through its regex pattern) a string of characters consisting of \n lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have \n two dashes in a row.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateDelegationRequestRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateDelegationRequestResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an IAM delegation request for temporary access delegation.

\n

This API is not available for general use. In order to use this API, a caller first need to\n go through an onboarding process described in the\n partner onboarding documentation.\n

" + } + }, + "com.amazonaws.iam#CreateDelegationRequestRequest": { + "type": "structure", + "members": { + "OwnerAccountId": { + "target": "com.amazonaws.iam#accountIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID this delegation request is targeted to.

\n

If the account ID is not known, this parameter can be omitted, resulting in a request that can be associated by\n any account. If the account ID passed, then the created delegation request can only be associated with an\n identity of that target account.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#delegationRequestDescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the delegation request.

", + "smithy.api#required": {} + } + }, + "Permissions": { + "target": "com.amazonaws.iam#DelegationPermission", + "traits": { + "smithy.api#documentation": "

The permissions to be delegated in this delegation request.

", + "smithy.api#required": {} + } + }, + "RequestMessage": { + "target": "com.amazonaws.iam#requestMessageType", + "traits": { + "smithy.api#documentation": "

A message explaining the reason for the delegation request.

\n

Requesters can utilize this field to add a custom note to the delegation request. This field is different from the\n description such that this is to be utilized for a custom messaging on a case-by-case basis.

\n

For example, if the current delegation request is in response to a previous request being rejected, this explanation\n can be added to the request via this field.

" + } + }, + "RequestorWorkflowId": { + "target": "com.amazonaws.iam#requestorWorkflowIdType", + "traits": { + "smithy.api#documentation": "

The workflow ID associated with the requestor.

\n

This is the unique identifier on the partner side that can be used to track the progress of the request.

\n

IAM maintains a uniqueness check on this workflow id for each request - if a workflow id for an existing request\n is passed, this API call will fail.

", + "smithy.api#required": {} + } + }, + "RedirectUrl": { + "target": "com.amazonaws.iam#redirectUrlType", + "traits": { + "smithy.api#documentation": "

The URL to redirect to after the delegation request is processed.

\n

This URL is used by the IAM console to show a link to the customer to re-load the partner workflow.

" + } + }, + "NotificationChannel": { + "target": "com.amazonaws.iam#notificationChannelType", + "traits": { + "smithy.api#documentation": "

The notification channel for updates about the delegation request.

\n

At this time,only SNS topic ARNs are accepted for notification. This topic ARN must have a resource policy granting\n SNS:Publish permission to the IAM service principal (iam.amazonaws.com). See\n partner onboarding documentation for more details.\n

", + "smithy.api#required": {} + } + }, + "SessionDuration": { + "target": "com.amazonaws.iam#sessionDurationType", + "traits": { + "smithy.api#documentation": "

The duration for which the delegated session should remain active, in seconds.

\n

The active time window for the session starts when the customer calls the\n SendDelegationToken API.

", + "smithy.api#required": {} + } + }, + "OnlySendByOwner": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the delegation token should only be sent by the owner.

\n

This flag prevents any party other than the owner from calling SendDelegationToken API for this delegation request.\n This behavior becomes useful when the delegation request owner needs to be present for subsequent partner interactions, but the delegation request was sent\n to a more privileged user for approval due to the owner lacking sufficient delegation permissions.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateDelegationRequestResponse": { + "type": "structure", + "members": { + "ConsoleDeepLink": { + "target": "com.amazonaws.iam#consoleDeepLinkType", + "traits": { + "smithy.api#documentation": "

A deep link URL to the Amazon Web Services Management Console for managing the delegation request.

\n

For a console based workflow, partners should redirect the customer to this URL.\n If the customer is not logged in to any Amazon Web Services account, the Amazon Web Services workflow will\n automatically direct the customer to log in and then display the delegation request approval page.

" + } + }, + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the created delegation request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateGroupRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new group.

\n

For information about the number of groups you can create, see IAM and STS\n quotas in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an IAM group", + "documentation": "The following command creates an IAM group named Admins.", + "input": { + "GroupName": "Admins" + }, + "output": { + "Group": { + "Path": "/", + "CreateDate": "2015-03-09T20:30:24.940Z", + "GroupId": "AIDGPMS9RO4H3FEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admins", + "GroupName": "Admins" + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateGroupRequest": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the group. For more information about paths, see IAM\n identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group to create. Do not include the path in this value.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateGroupResponse": { + "type": "structure", + "members": { + "Group": { + "target": "com.amazonaws.iam#Group", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateGroup request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateInstanceProfileRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateInstanceProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new instance profile. For information about instance profiles, see Using\n roles for applications on Amazon EC2 in the\n IAM User Guide, and Instance profiles in the Amazon EC2 User Guide.

\n

For information about the number of instance profiles you can create, see IAM object\n quotas in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an instance profile", + "documentation": "The following command creates an instance profile named Webserver that is ready to have a role attached and then be associated with an EC2 instance.", + "input": { + "InstanceProfileName": "Webserver" + }, + "output": { + "InstanceProfile": { + "InstanceProfileId": "AIPAJMBYC7DLSPEXAMPLE", + "Roles": [], + "CreateDate": "2015-03-09T20:33:19.626Z", + "InstanceProfileName": "Webserver", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:instance-profile/Webserver" + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the instance profile to create.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the instance profile. For more information about paths, see IAM\n Identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the newly created IAM instance profile.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateInstanceProfileResponse": { + "type": "structure", + "members": { + "InstanceProfile": { + "target": "com.amazonaws.iam#InstanceProfile", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new instance profile.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateInstanceProfile\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateLoginProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateLoginProfileRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateLoginProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PasswordPolicyViolationException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a password for the specified IAM user. A password allows an IAM user to\n access Amazon Web Services services through the Amazon Web Services Management Console.

\n

You can use the CLI, the Amazon Web Services API, or the Users\n page in the IAM console to create a password for any IAM user. Use ChangePassword to update your own existing password in the My Security Credentials page in the Amazon Web Services Management Console.

\n

For more information about managing passwords, see Managing passwords in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an instance profile", + "documentation": "The following command changes IAM user Bob's password and sets the flag that required Bob to change the password the next time he signs in.", + "input": { + "UserName": "Bob", + "Password": "h]6EszR}vJ*m", + "PasswordResetRequired": true + }, + "output": { + "LoginProfile": { + "UserName": "Bob", + "CreateDate": "2015-03-10T20:55:40.274Z", + "PasswordResetRequired": true + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateLoginProfileRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user to create a password for. The user must already\n exist.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "Password": { + "target": "com.amazonaws.iam#passwordType", + "traits": { + "smithy.api#documentation": "

The new password for the user.

\n

This parameter must be omitted when you make the request with an AssumeRoot session. It is required in all other cases.

\n

The regex pattern \n that is used to validate this parameter is a string of characters. That string can include almost any printable \n ASCII character from the space (\\u0020) through the end of the ASCII character range (\\u00FF). \n You can also include the tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) \n characters. Any of these characters are valid in a password. However, many tools, such \n as the Amazon Web Services Management Console, might restrict the ability to type certain characters because they have \n special meaning within that tool.

" + } + }, + "PasswordResetRequired": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the user is required to set a new password on next sign-in.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateLoginProfileResponse": { + "type": "structure", + "members": { + "LoginProfile": { + "target": "com.amazonaws.iam#LoginProfile", + "traits": { + "smithy.api#documentation": "

A structure containing the user name and password create date.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateLoginProfile\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateOpenIDConnectProviderRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateOpenIDConnectProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#OpenIdIdpCommunicationErrorException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

\n

The OIDC provider that you create with this operation can be used as a principal in a\n role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and\n the OIDC provider.

\n

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't\n need to create a separate IAM identity provider. These OIDC identity providers are\n already built-in to Amazon Web Services and are available for your use. Instead, you can move directly\n to creating new roles using your identity provider. To learn more, see Creating\n a role for web identity or OpenID connect federation in the IAM\n User Guide.

\n

When you create the IAM OIDC provider, you specify the following:

\n
    \n
  • \n

    The URL of the OIDC identity provider (IdP) to trust

    \n
  • \n
  • \n

    A list of client IDs (also known as audiences) that identify the application\n or applications allowed to authenticate using the OIDC provider

    \n
  • \n
  • \n

    A list of tags that are attached to the specified IAM OIDC provider

    \n
  • \n
  • \n

    A list of thumbprints of one or more server certificates that the IdP\n uses

    \n
  • \n
\n

You get all of this information from the OIDC IdP you want to use to access\n Amazon Web Services.

\n \n

Amazon Web Services secures communication with OIDC identity providers (IdPs) using our library of\n trusted root certificate authorities (CAs) to verify the JSON Web Key Set (JWKS)\n endpoint's TLS certificate. If your OIDC IdP relies on a certificate that is not signed\n by one of these trusted CAs, only then we secure communication using the thumbprints set\n in the IdP's configuration.

\n
\n \n

The trust for the OIDC provider is derived from the IAM provider that this\n operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged\n users.

\n
", + "smithy.api#examples": [ + { + "title": "To create an instance profile", + "documentation": "The following example defines a new OIDC provider in IAM with a client ID of my-application-id and pointing at the server with a URL of https://server.example.com.", + "input": { + "ClientIDList": [ + "my-application-id" + ], + "ThumbprintList": [ + "3768084dfb3d2b68b7897bf5f565da8efEXAMPLE" + ], + "Url": "https://server.example.com" + }, + "output": { + "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com" + } + } + ] + } + }, + "com.amazonaws.iam#CreateOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.iam#OpenIDConnectProviderUrlType", + "traits": { + "smithy.api#documentation": "

The URL of the identity provider. The URL must begin with https:// and\n should correspond to the iss claim in the provider's OpenID Connect ID\n tokens. Per the OIDC standard, path components are allowed but query parameters are not.\n Typically the URL consists of only a hostname, like\n https://server.example.org or https://example.com. The URL\n should not contain a port number.

\n

You cannot register the same provider multiple times in a single Amazon Web Services account. If you\n try to submit a URL that has already been used for an OpenID Connect provider in the\n Amazon Web Services account, you will get an error.

", + "smithy.api#required": {} + } + }, + "ClientIDList": { + "target": "com.amazonaws.iam#clientIDListType", + "traits": { + "smithy.api#documentation": "

Provides a list of client IDs, also known as audiences. When a mobile or web app\n registers with an OpenID Connect provider, they establish a value that identifies the\n application. This is the value that's sent as the client_id parameter on\n OAuth requests.

\n

You can register multiple client IDs with the same provider. For example, you might\n have multiple applications that use the same OIDC provider. You cannot register more\n than 100 client IDs with a single IAM OIDC provider.

\n

There is no defined format for a client ID. The\n CreateOpenIDConnectProviderRequest operation accepts client IDs up to\n 255 characters long.

" + } + }, + "ThumbprintList": { + "target": "com.amazonaws.iam#thumbprintListType", + "traits": { + "smithy.api#documentation": "

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity\n provider's server certificates. Typically this list includes only one entry. However,\n IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain\n multiple thumbprints if the identity provider is rotating certificates.

\n

This parameter is optional. If it is not included, IAM will retrieve and use the top\n intermediate certificate authority (CA) thumbprint of the OpenID Connect identity\n provider server certificate.

\n

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509\n certificate used by the domain where the OpenID Connect provider makes its keys\n available. It is always a 40-character string.

\n

For example, assume that the OIDC provider is server.example.com and the\n provider stores its keys at https://keys.server.example.com/openid-connect. In that\n case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate\n used by https://keys.server.example.com.\n

\n

For more information about obtaining the OIDC provider thumbprint, see Obtaining the\n thumbprint for an OpenID Connect provider in the IAM user\n Guide.

\n \n

If your OIDC provider's discovery endpoint and JWKS endpoint\n (jwks_uri) use different certificates or hosts, include the\n thumbprints for both endpoints in this list.

\n
" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateOpenIDConnectProviderResponse": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that is\n created. For more information, see OpenIDConnectProviderListEntry.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the new IAM OIDC provider. The returned list of\n tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateOpenIDConnectProvider request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreatePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreatePolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreatePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new managed policy for your Amazon Web Services account.

\n

This operation creates a policy version with a version identifier of v1\n and sets v1 as the policy's default version. For more information about policy versions,\n see Versioning for managed policies in the\n IAM User Guide.

\n

As a best practice, you can validate your IAM policies. \n To learn more, see Validating IAM policies \n in the IAM User Guide.

\n

For more information about managed policies in general, see Managed\n policies and inline policies in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#CreatePolicyRequest": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The friendly name of the policy.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

", + "smithy.api#required": {} + } + }, + "Path": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path for the policy.

\n

For more information about paths, see IAM identifiers in the\n IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

\n \n

You cannot use an asterisk (*) in the path name.

\n
" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The JSON policy document that you want to use as the content for the new\n policy.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation\n templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

To learn more about JSON policy grammar, see Grammar of the IAM JSON\n policy language in the IAM User Guide.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.iam#policyDescriptionType", + "traits": { + "smithy.api#documentation": "

A friendly description of the policy.

\n

Typically used to store information about the permissions defined in the policy. For\n example, \"Grants access to production DynamoDB tables.\"

\n

The policy description is immutable. After a value is assigned, it cannot be\n changed.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new IAM customer managed policy.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreatePolicyResponse": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.iam#Policy", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreatePolicy request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreatePolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreatePolicyVersionRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreatePolicyVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new version of the specified managed policy. To update a managed policy, you\n create a new policy version. A managed policy can have up to five versions. If the\n policy has five versions, you must delete an existing version using DeletePolicyVersion before you create a new version.

\n

Optionally, you can set the new version as the policy's default version. The default\n version is the version that is in effect for the IAM users, groups, and roles to which\n the policy is attached.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#CreatePolicyVersionRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy to which you want to add a new\n version.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The JSON policy document that you want to use as the content for this new version of\n the policy.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation\n templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "SetAsDefault": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to set this version as the policy's default version.

\n

When this parameter is true, the new policy version becomes the operative\n version. That is, it becomes the version that is in effect for the IAM users, groups,\n and roles that the policy is attached to.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreatePolicyVersionResponse": { + "type": "structure", + "members": { + "PolicyVersion": { + "target": "com.amazonaws.iam#PolicyVersion", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new policy version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreatePolicyVersion\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new role for your Amazon Web Services account.

\n

For more information about roles, see IAM roles in the\n IAM User Guide. For information about quotas for role names\n and the number of roles you can create, see IAM and STS quotas in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an IAM role", + "documentation": "The following command creates a role named Test-Role and attaches a trust policy that you must convert from JSON to a string. Upon success, the response includes the same policy as a URL-encoded JSON string.", + "input": { + "AssumeRolePolicyDocument": "", + "Path": "/", + "RoleName": "Test-Role" + }, + "output": { + "Role": { + "Arn": "arn:aws:iam::123456789012:role/Test-Role", + "AssumeRolePolicyDocument": "", + "CreateDate": "2013-06-07T20:43:32.821Z", + "Path": "/", + "RoleId": "AKIAIOSFODNN7EXAMPLE", + "RoleName": "Test-Role" + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateRoleRequest": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the role. For more information about paths, see IAM\n Identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to create.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "AssumeRolePolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The trust relationship policy document that grants an entity permission to assume the\n role.

\n

In IAM, you must provide a JSON policy that has been converted to a string. However,\n for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML\n format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
\n

Upon success, the response includes the same trust policy in JSON format.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.iam#roleDescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the role.

" + } + }, + "MaxSessionDuration": { + "target": "com.amazonaws.iam#roleMaxSessionDurationType", + "traits": { + "smithy.api#documentation": "

The maximum session duration (in seconds) that you want to set for the specified role.\n If you do not specify a value for this setting, the default value of one hour is\n applied. This setting can have a value from 1 hour to 12 hours.

\n

Anyone who assumes the role from the CLI or API can use the\n DurationSeconds API parameter or the duration-seconds\n CLI parameter to request a longer session. The MaxSessionDuration setting\n determines the maximum duration that can be requested using the\n DurationSeconds parameter. If users don't specify a value for the\n DurationSeconds parameter, their security credentials are valid for one\n hour by default. This applies when you use the AssumeRole* API operations\n or the assume-role* CLI operations but does not apply when you use those\n operations to create a console URL. For more information, see Using IAM\n roles in the IAM User Guide.

" + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the managed policy that is used to set the permissions boundary for the\n role.

\n

A permissions boundary policy defines the maximum permissions that identity-based\n policies can grant to an entity, but does not grant permissions. Permissions boundaries\n do not define the maximum permissions that a resource-based policy can grant to an\n entity. To learn more, see Permissions boundaries\n for IAM entities in the IAM User Guide.

\n

For more information about policy types, see Policy types\n in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new role. Each tag consists of a key name and an associated value.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateRoleResponse": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.iam#Role", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new role.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateRole request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateSAMLProviderRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateSAMLProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an IAM resource that describes an identity provider (IdP) that supports SAML\n 2.0.

\n

The SAML provider resource that you create with this operation can be used as a\n principal in an IAM role's trust policy. Such a policy can enable federated users who\n sign in using the SAML IdP to assume the role. You can create an IAM role that\n supports Web-based single sign-on (SSO) to the Amazon Web Services Management Console or one that supports API access\n to Amazon Web Services.

\n

When you create the SAML provider resource, you upload a SAML metadata document that\n you get from your IdP. That document includes the issuer's name, expiration information,\n and keys that can be used to validate the SAML authentication response (assertions) that\n the IdP sends. You must generate the metadata document using the identity management\n software that is used as your organization's IdP.

\n \n

This operation requires Signature Version 4.

\n
\n

For more information, see Enabling SAML 2.0\n federated users to access the Amazon Web Services Management Console and About SAML 2.0-based\n federation in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#CreateSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLMetadataDocument": { + "target": "com.amazonaws.iam#SAMLMetadataDocumentType", + "traits": { + "smithy.api#documentation": "

An XML document generated by an identity provider (IdP) that supports SAML 2.0. The\n document includes the issuer's name, expiration information, and keys that can be used\n to validate the SAML authentication response (assertions) that are received from the\n IdP. You must generate the metadata document using the identity management software that\n is used as your organization's IdP.

\n

For more information, see About SAML 2.0-based\n federation in the IAM User Guide\n

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.iam#SAMLProviderNameType", + "traits": { + "smithy.api#documentation": "

The name of the provider to create.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new IAM SAML provider.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + }, + "AssertionEncryptionMode": { + "target": "com.amazonaws.iam#assertionEncryptionModeType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption setting for the SAML provider.

" + } + }, + "AddPrivateKey": { + "target": "com.amazonaws.iam#privateKeyType", + "traits": { + "smithy.api#documentation": "

The private key generated from your external identity provider. The private key must\n be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML\n assertions.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateSAMLProviderResponse": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the new SAML provider resource in IAM.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the new IAM SAML provider. The returned list of tags is sorted by tag key.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateSAMLProvider\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateServiceLinkedRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateServiceLinkedRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateServiceLinkedRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an IAM role that is linked to a specific Amazon Web Services service. The service controls\n the attached policies and when the role can be deleted. This helps ensure that the\n service is not broken by an unexpectedly changed or deleted role, which could put your\n Amazon Web Services resources into an unknown state. Allowing the service to control the role helps\n improve service stability and proper cleanup when a service and its role are no longer\n needed. For more information, see Using service-linked\n roles in the IAM User Guide.

\n

To attach a policy to this service-linked role, you must make the request using the\n Amazon Web Services service that depends on this role.

" + } + }, + "com.amazonaws.iam#CreateServiceLinkedRoleRequest": { + "type": "structure", + "members": { + "AWSServiceName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The service principal for the Amazon Web Services service to which this role is attached. You use a\n string similar to a URL but without the http:// in front. For example:\n elasticbeanstalk.amazonaws.com.

\n

Service principals are unique and case-sensitive. To find the exact service principal\n for your service-linked role, see Amazon Web Services services\n that work with IAM in the IAM User Guide. Look for\n the services that have Yes in the Service-Linked Role column. Choose the Yes link to view the service-linked role documentation for that\n service.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.iam#roleDescriptionType", + "traits": { + "smithy.api#documentation": "

The description of the role.

" + } + }, + "CustomSuffix": { + "target": "com.amazonaws.iam#customSuffixType", + "traits": { + "smithy.api#documentation": "

\n

A string that you provide, which is combined with the service-provided prefix to form\n the complete role name. If you make multiple requests for the same service, then you\n must supply a different CustomSuffix for each request. Otherwise the\n request fails with a duplicate role name error. For example, you could add\n -1 or -debug to the suffix.

\n

Some services do not support the CustomSuffix parameter. If you provide\n an optional suffix and the operation fails, try the operation again without the\n suffix.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateServiceLinkedRoleResponse": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.iam#Role", + "traits": { + "smithy.api#documentation": "

A Role\n object that contains details about the newly created role.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateServiceSpecificCredential": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateServiceSpecificCredentialRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateServiceSpecificCredentialResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceNotSupportedException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a set of credentials consisting of a user name and password that can be used\n to access the service specified in the request. These credentials are generated by\n IAM, and can be used only for the specified service.

\n

You can have a maximum of two sets of service-specific credentials for each supported\n service per user.

\n

You can reset the password to a new service-generated value by calling ResetServiceSpecificCredential.

\n

For more information about using service-specific credentials to authenticate to an\n Amazon Web Services service, refer to the following docs:

\n " + } + }, + "com.amazonaws.iam#CreateServiceSpecificCredentialRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user that is to be associated with the credentials. The new\n service-specific credentials have the same permissions as the associated user except\n that they can be used only to access the specified service.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "ServiceName": { + "target": "com.amazonaws.iam#serviceName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services service that is to be associated with the credentials. The\n service you specify here is the only service that can be accessed using these\n credentials.

", + "smithy.api#required": {} + } + }, + "CredentialAgeDays": { + "target": "com.amazonaws.iam#credentialAgeDays", + "traits": { + "smithy.api#documentation": "

The number of days until the service specific credential expires. This field is only\n valid for services that support long-term API keys and must be a positive integer. When\n not specified, the credential will not expire.

\n

To see which services support long-term API keys, refer to API keys\n for Amazon Web Services services in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateServiceSpecificCredentialResponse": { + "type": "structure", + "members": { + "ServiceSpecificCredential": { + "target": "com.amazonaws.iam#ServiceSpecificCredential", + "traits": { + "smithy.api#documentation": "

A structure that contains information about the newly created service-specific\n credential.

\n \n

This is the only time that the password for this credential set is available. It\n cannot be recovered later. Instead, you must reset the password with ResetServiceSpecificCredential.

\n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateUserRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new IAM user for your Amazon Web Services account.

\n

For information about quotas for the number of IAM users you can create, see IAM and STS\n quotas in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an IAM user", + "documentation": "The following create-user command creates an IAM user named Bob in the current account.", + "input": { + "UserName": "Bob" + }, + "output": { + "User": { + "UserName": "Bob", + "Path": "/", + "CreateDate": "2013-06-08T03:20:41.270Z", + "UserId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Bob" + } + } + } + ] + } + }, + "com.amazonaws.iam#CreateUserRequest": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path for the user name. For more information about paths, see IAM\n identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to create.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

", + "smithy.api#required": {} + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the managed policy that is used to set the permissions boundary for the\n user.

\n

A permissions boundary policy defines the maximum permissions that identity-based\n policies can grant to an entity, but does not grant permissions. Permissions boundaries\n do not define the maximum permissions that a resource-based policy can grant to an\n entity. To learn more, see Permissions boundaries\n for IAM entities in the IAM User Guide.

\n

For more information about policy types, see Policy types\n in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateUserResponse": { + "type": "structure", + "members": { + "User": { + "target": "com.amazonaws.iam#User", + "traits": { + "smithy.api#documentation": "

A structure with details about the new IAM user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateUser request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CreateVirtualMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#CreateVirtualMFADeviceRequest" + }, + "output": { + "target": "com.amazonaws.iam#CreateVirtualMFADeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new virtual MFA device for the Amazon Web Services account. After creating the virtual\n MFA, use EnableMFADevice to\n attach the MFA device to an IAM user. For more information about creating and working\n with virtual MFA devices, see Using a virtual MFA device in the\n IAM User Guide.

\n

For information about the maximum number of MFA devices you can create, see IAM and STS\n quotas in the IAM User Guide.

\n \n

The seed information contained in the QR code and the Base32 string should be\n treated like any other secret access information. In other words, protect the seed\n information as you would your Amazon Web Services access keys or your passwords. After you\n provision your virtual device, you should ensure that the information is destroyed\n following secure procedures.

\n
" + } + }, + "com.amazonaws.iam#CreateVirtualMFADeviceRequest": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path for the virtual MFA device. For more information about paths, see IAM\n identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "VirtualMFADeviceName": { + "target": "com.amazonaws.iam#virtualMFADeviceName", + "traits": { + "smithy.api#documentation": "

The name of the virtual MFA device, which must be unique. Use with path to uniquely\n identify a virtual MFA device.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new IAM virtual MFA device.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#CreateVirtualMFADeviceResponse": { + "type": "structure", + "members": { + "VirtualMFADevice": { + "target": "com.amazonaws.iam#VirtualMFADevice", + "traits": { + "smithy.api#documentation": "

A structure containing details about the new virtual MFA device.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful CreateVirtualMFADevice\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#CredentialReportExpiredException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#credentialReportExpiredExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReportExpired", + "httpResponseCode": 410 + }, + "smithy.api#documentation": "

The request was rejected because the most recent credential report has expired. To\n generate a new credential report, use GenerateCredentialReport. For more information about credential report expiration,\n see Getting\n credential reports in the IAM User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 410 + } + }, + "com.amazonaws.iam#CredentialReportNotPresentException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#credentialReportNotPresentExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReportNotPresent", + "httpResponseCode": 410 + }, + "smithy.api#documentation": "

The request was rejected because the credential report does not exist. To generate a\n credential report, use GenerateCredentialReport.

", + "smithy.api#error": "client", + "smithy.api#httpError": 410 + } + }, + "com.amazonaws.iam#CredentialReportNotReadyException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#credentialReportNotReadyExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReportInProgress", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The request was rejected because the credential report is still being generated.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.iam#DeactivateMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeactivateMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deactivates the specified MFA device and removes it from association with the user\n name for which it was originally enabled.

\n

For more information about creating and working with virtual MFA devices, see Enabling a virtual\n multi-factor authentication (MFA) device in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#DeactivateMFADeviceRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose MFA device you want to deactivate.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices,\n the serial number is the device ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of upper and lowercase alphanumeric characters with no spaces. You can also include any of the \n following characters: =,.@:/-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DelegationPermission": { + "type": "structure", + "members": { + "PolicyTemplateArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

This ARN maps to a pre-registered policy content for this partner.\n See the partner onboarding documentation to understand how to create a delegation template.

" + } + }, + "Parameters": { + "target": "com.amazonaws.iam#policyParameterListType", + "traits": { + "smithy.api#documentation": "

A list of policy parameters that define the scope and constraints of the delegated permissions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the permissions being delegated in a delegation request.

" + } + }, + "com.amazonaws.iam#DelegationRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the delegation request.

" + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.iam#accountIdType", + "traits": { + "smithy.api#documentation": "

Amazon Web Services account ID of the owner of the delegation request.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#delegationRequestDescriptionType", + "traits": { + "smithy.api#documentation": "

Description of the delegation request. This is a message that is provided by the Amazon Web Services\n partner that filed the delegation request.

" + } + }, + "RequestMessage": { + "target": "com.amazonaws.iam#requestMessageType", + "traits": { + "smithy.api#documentation": "

A custom message that is added to the delegation request by the partner.

\n

This element is different from the Description element such that this is a\n request specific message injected by the partner. The Description is typically\n a generic explanation of what the delegation request is targeted to do.

" + } + }, + "Permissions": { + "target": "com.amazonaws.iam#DelegationPermission" + }, + "PermissionPolicy": { + "target": "com.amazonaws.iam#permissionType", + "traits": { + "smithy.api#documentation": "

JSON content of the associated permission policy of this delegation request.

" + } + }, + "RolePermissionRestrictionArns": { + "target": "com.amazonaws.iam#rolePermissionRestrictionArnListType", + "traits": { + "smithy.api#documentation": "

If the PermissionPolicy includes role creation permissions, this element will\n include the list of permissions boundary policies associated with the role creation.\n See Permissions boundaries for IAM entities\n for more details about IAM permission boundaries.\n

" + } + }, + "OwnerId": { + "target": "com.amazonaws.iam#ownerIdType", + "traits": { + "smithy.api#documentation": "

ARN of the owner of this delegation request.

" + } + }, + "ApproverId": { + "target": "com.amazonaws.iam#arnType" + }, + "State": { + "target": "com.amazonaws.iam#stateType", + "traits": { + "smithy.api#documentation": "

The state of this delegation request.

\n

See the Understanding the Request Lifecycle for an explanation of how these\n states are transitioned.

" + } + }, + "ExpirationTime": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The expiry time of this delegation request

\n

See the Understanding the Request Lifecycle for\n details on the life time of a delegation request at each state.

" + } + }, + "RequestorId": { + "target": "com.amazonaws.iam#accountIdType", + "traits": { + "smithy.api#documentation": "

Identity of the requestor of this delegation request. This will be an Amazon Web Services account ID.

" + } + }, + "RequestorName": { + "target": "com.amazonaws.iam#requestorNameType", + "traits": { + "smithy.api#documentation": "

A friendly name of the requestor.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

Creation date (timestamp) of this delegation request.

" + } + }, + "SessionDuration": { + "target": "com.amazonaws.iam#sessionDurationType", + "traits": { + "smithy.api#documentation": "

The life-time of the requested session credential.

" + } + }, + "RedirectUrl": { + "target": "com.amazonaws.iam#redirectUrlType", + "traits": { + "smithy.api#documentation": "

A URL to be redirected to once the delegation request is approved. Partners provide this URL when\n creating the delegation request.

" + } + }, + "Notes": { + "target": "com.amazonaws.iam#notesType", + "traits": { + "smithy.api#documentation": "

Notes added to this delegation request, if this request was updated via the\n UpdateDelegationRequest\n API.

" + } + }, + "RejectionReason": { + "target": "com.amazonaws.iam#notesType", + "traits": { + "smithy.api#documentation": "

Reasons for rejecting this delegation request, if this request was rejected. See also\n RejectDelegationRequest\n API documentation.\n

" + } + }, + "OnlySendByOwner": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag indicating whether the\n SendDelegationToken\n must be called by the owner of this delegation request. This is set by the requesting partner.

" + } + }, + "UpdatedTime": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

Last updated timestamp of the request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a delegation request, including its status, permissions, and associated metadata.

" + } + }, + "com.amazonaws.iam#DeleteAccessKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteAccessKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the access key pair associated with the specified IAM user.

\n

If you do not specify a user name, IAM determines the user name implicitly based on\n the Amazon Web Services access key ID signing the request. This operation works for access keys under\n the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root\n user credentials even if the Amazon Web Services account has no associated users.

", + "smithy.api#examples": [ + { + "title": "To delete an access key for an IAM user", + "documentation": "The following command deletes one access key (access key ID and secret access key) assigned to the IAM user named Bob.", + "input": { + "UserName": "Bob", + "AccessKeyId": "AKIDPMS9RO4H3FEXAMPLE" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteAccessKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose access key pair you want to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "AccessKeyId": { + "target": "com.amazonaws.iam#accessKeyIdType", + "traits": { + "smithy.api#documentation": "

The access key ID for the access key ID and secret access key you want to\n delete.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteAccountAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteAccountAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified Amazon Web Services account alias. For information about using an Amazon Web Services\n account alias, see Creating, deleting, and\n listing an Amazon Web Services account alias in the Amazon Web Services Sign-In User\n Guide.

", + "smithy.api#examples": [ + { + "title": "To delete an account alias", + "documentation": "The following command removes the alias mycompany from the current AWS account:", + "input": { + "AccountAlias": "mycompany" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteAccountAliasRequest": { + "type": "structure", + "members": { + "AccountAlias": { + "target": "com.amazonaws.iam#accountAliasType", + "traits": { + "smithy.api#documentation": "

The name of the account alias to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of \n lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have \n two dashes in a row.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteAccountPasswordPolicy": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the password policy for the Amazon Web Services account. There are no parameters.

", + "smithy.api#examples": [ + { + "title": "To delete the current account password policy", + "documentation": "The following command removes the password policy from the current AWS account:" + } + ] + } + }, + "com.amazonaws.iam#DeleteConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#deleteConflictMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DeleteConflict", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because it attempted to delete a resource that has attached\n subordinate entities. The error message describes these entities.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#DeleteGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified IAM group. The group must not contain any users or have any\n attached policies.

" + } + }, + "com.amazonaws.iam#DeleteGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteGroupPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified inline policy that is embedded in the specified IAM\n group.

\n

A group can also have managed policies attached to it. To detach a managed policy from\n a group, use DetachGroupPolicy.\n For more information about policies, refer to Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a policy from an IAM group", + "documentation": "The following command deletes the policy named ExamplePolicy from the group named Admins:", + "input": { + "GroupName": "Admins", + "PolicyName": "ExamplePolicy" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteGroupPolicyRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the group that the policy is embedded\n in.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name identifying the policy document to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM group to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteInstanceProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified instance profile. The instance profile must not have an\n associated role.

\n \n

Make sure that you do not have any Amazon EC2 instances running with the instance\n profile you are about to delete. Deleting a role or instance profile that is\n associated with a running instance will break any applications running on the\n instance.

\n
\n

For more information about instance profiles, see Using\n instance profiles in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete an instance profile", + "documentation": "The following command deletes the instance profile named ExampleInstanceProfile", + "input": { + "InstanceProfileName": "ExampleInstanceProfile" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the instance profile to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteLoginProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteLoginProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the password for the specified IAM user or root user, For more information, see\n Managing\n passwords for IAM users.

\n

You can use the CLI, the Amazon Web Services API, or the Users\n page in the IAM console to delete a password for any IAM user. You can use ChangePassword to update, but not delete, your own password in the\n My Security Credentials page in the\n Amazon Web Services Management Console.

\n \n

Deleting a user's password does not prevent a user from accessing Amazon Web Services through\n the command line interface or the API. To prevent all user access, you must also\n either make any access keys inactive or delete them. For more information about\n making keys inactive or deleting them, see UpdateAccessKey\n and DeleteAccessKey.

\n
", + "smithy.api#examples": [ + { + "title": "To delete a password for an IAM user", + "documentation": "The following command deletes the password for the IAM user named Bob.", + "input": { + "UserName": "Bob" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteLoginProfileRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose password you want to delete.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteOpenIDConnectProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an OpenID Connect identity provider (IdP) resource object in IAM.

\n

Deleting an IAM OIDC provider resource does not update any roles that reference the\n provider as a principal in their trust policies. Any attempt to assume a role that\n references a deleted provider fails.

\n

This operation is idempotent; it does not fail or return an error if you call the\n operation for a provider that does not exist.

" + } + }, + "com.amazonaws.iam#DeleteOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to\n delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeletePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeletePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified managed policy.

\n

Before you can delete a managed policy, you must first detach the policy from all\n users, groups, and roles that it is attached to. In addition, you must delete all the\n policy's versions. The following steps describe the process for deleting a managed\n policy:

\n
    \n
  • \n

    Detach the policy from all users, groups, and roles that the policy is\n attached to, using DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy. To list all the users, groups, and roles that a\n policy is attached to, use ListEntitiesForPolicy.

    \n
  • \n
  • \n

    Delete all versions of the policy using DeletePolicyVersion. To list the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion to delete the version that is marked as the\n default version. You delete the policy's default version in the next step of the\n process.

    \n
  • \n
  • \n

    Delete the policy (this automatically deletes the policy's default version)\n using this operation.

    \n
  • \n
\n

For information about managed policies, see Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#DeletePolicyRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to delete.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeletePolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeletePolicyVersionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified version from the specified managed policy.

\n

You cannot delete the default version from a policy using this operation. To delete\n the default version from a policy, use DeletePolicy. To find\n out which version of a policy is marked as the default version, use ListPolicyVersions.

\n

For information about versions for managed policies, see Versioning for managed\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#DeletePolicyVersionRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy from which you want to delete a\n version.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

The policy version to delete.

\n

This parameter allows (through its regex pattern) a string of characters that \n consists of the lowercase letter 'v' followed by one or two digits, and optionally \n followed by a period '.' and a string of letters and digits.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteRoleRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified role. Unlike the Amazon Web Services Management Console, when you delete a role\n programmatically, you must delete the items attached to the role manually, or the\n deletion fails. For more information, see Deleting an IAM role. Before attempting to delete a role, remove the\n following attached items:

\n \n \n

Make sure that you do not have any Amazon EC2 instances running with the role you are\n about to delete. Deleting a role or instance profile that is associated with a\n running instance will break any applications running on the instance.

\n
", + "smithy.api#examples": [ + { + "title": "To delete an IAM role", + "documentation": "The following command removes the role named Test-Role.", + "input": { + "RoleName": "Test-Role" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteRolePermissionsBoundary": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteRolePermissionsBoundaryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the permissions boundary for the specified IAM role.

\n

You cannot set the boundary for a service-linked role.

\n \n

Deleting the permissions boundary for a role might increase its permissions. For\n example, it might allow anyone who assumes the role to perform all the actions\n granted in its permissions policies.

\n
" + } + }, + "com.amazonaws.iam#DeleteRolePermissionsBoundaryRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM role from which you want to remove the\n permissions boundary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteRolePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified inline policy that is embedded in the specified IAM\n role.

\n

A role can also have managed policies attached to it. To detach a managed policy from\n a role, use DetachRolePolicy.\n For more information about policies, refer to Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove a policy from an IAM role", + "documentation": "The following command removes the policy named ExamplePolicy from the role named Test-Role.", + "input": { + "RoleName": "Test-Role", + "PolicyName": "ExamplePolicy" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the role that the policy is embedded\n in.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the inline policy to delete from the specified IAM role.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteSAMLProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a SAML provider resource in IAM.

\n

Deleting the provider resource from IAM does not update any roles that reference the\n SAML provider resource's ARN as a principal in their trust policies. Any attempt to\n assume a role that references a non-existent provider resource ARN fails.

\n \n

This operation requires Signature Version 4.

\n
" + } + }, + "com.amazonaws.iam#DeleteSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SAML provider to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteSSHPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteSSHPublicKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified SSH public key.

\n

The SSH public key deleted by this operation is used only for authenticating the\n associated IAM user to an CodeCommit repository. For more information about using SSH keys\n to authenticate to an CodeCommit repository, see Set up CodeCommit for\n SSH connections in the CodeCommit User Guide.

" + } + }, + "com.amazonaws.iam#DeleteSSHPublicKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyId": { + "target": "com.amazonaws.iam#publicKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteServerCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified server certificate.

\n

For more information about working with server certificates, see Working\n with server certificates in the IAM User Guide. This\n topic also includes a list of Amazon Web Services services that can use the server certificates that\n you manage with IAM.

\n \n

If you are using a server certificate with Elastic Load Balancing, deleting the\n certificate could have implications for your application. If Elastic Load Balancing\n doesn't detect the deletion of bound certificates, it may continue to use the\n certificates. This could cause Elastic Load Balancing to stop accepting traffic. We\n recommend that you remove the reference to the certificate from Elastic Load\n Balancing before using this command to delete the certificate. For more information,\n see DeleteLoadBalancerListeners in the Elastic Load Balancing API\n Reference.

\n
" + } + }, + "com.amazonaws.iam#DeleteServerCertificateRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the server certificate you want to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteServiceLinkedRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteServiceLinkedRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#DeleteServiceLinkedRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Submits a service-linked role deletion request and returns a\n DeletionTaskId, which you can use to check the status of the deletion.\n Before you call this operation, confirm that the role has no active sessions and that\n any resources used by the role in the linked service are deleted. If you call this\n operation more than once for the same service-linked role and an earlier deletion task\n is not complete, then the DeletionTaskId of the earlier request is\n returned.

\n

If you submit a deletion request for a service-linked role whose linked service is\n still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus operation returns the reason for the\n failure, usually including the resources that must be deleted. To delete the\n service-linked role, you must first remove those resources from the linked service and\n then submit the deletion request again. Resources are specific to the service that is\n linked to the role. For more information about removing resources from a service, see\n the Amazon Web Services documentation for your\n service.

\n

For more information about service-linked roles, see Roles terms and concepts: Amazon Web Services service-linked role in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#DeleteServiceLinkedRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the service-linked role to be deleted.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteServiceLinkedRoleResponse": { + "type": "structure", + "members": { + "DeletionTaskId": { + "target": "com.amazonaws.iam#DeletionTaskIdType", + "traits": { + "smithy.api#documentation": "

The deletion task identifier that you can use to check the status of the deletion.\n This identifier is returned in the format\n task/aws-service-role///.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#DeleteServiceSpecificCredential": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteServiceSpecificCredentialRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified service-specific credential.

" + } + }, + "com.amazonaws.iam#DeleteServiceSpecificCredentialRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the service-specific credential. If this\n value is not specified, then the operation assumes the user whose credentials are used\n to call the operation.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "ServiceSpecificCredentialId": { + "target": "com.amazonaws.iam#serviceSpecificCredentialId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the service-specific credential. You can get this value by\n calling ListServiceSpecificCredentials.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteSigningCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteSigningCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a signing certificate associated with the specified IAM user.

\n

If you do not specify a user name, IAM determines the user name implicitly based on\n the Amazon Web Services access key ID signing the request. This operation works for access keys under\n the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root\n user credentials even if the Amazon Web Services account has no associated IAM users.

", + "smithy.api#examples": [ + { + "title": "To delete a signing certificate for an IAM user", + "documentation": "The following command deletes the specified signing certificate for the IAM user named Anika.", + "input": { + "UserName": "Anika", + "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteSigningCertificateRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user the signing certificate belongs to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "CertificateId": { + "target": "com.amazonaws.iam#certificateIdType", + "traits": { + "smithy.api#documentation": "

The ID of the signing certificate to delete.

\n

The format of this parameter, as described by its regex pattern, is a string of\n characters that can be upper- or lower-cased letters or digits.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified IAM user. Unlike the Amazon Web Services Management Console, when you delete a user\n programmatically, you must delete the items attached to the user manually, or the\n deletion fails. For more information, see Deleting an IAM\n user. Before attempting to delete a user, remove the following items:

\n ", + "smithy.api#examples": [ + { + "title": "To delete an IAM user", + "documentation": "The following command removes the IAM user named Bob from the current account.", + "input": { + "UserName": "Bob" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteUserPermissionsBoundary": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteUserPermissionsBoundaryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the permissions boundary for the specified IAM user.

\n \n

Deleting the permissions boundary for a user might increase its permissions by\n allowing the user to perform all the actions granted in its permissions policies.\n

\n
" + } + }, + "com.amazonaws.iam#DeleteUserPermissionsBoundaryRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM user from which you want to remove the\n permissions boundary.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteUserPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteUserPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified inline policy that is embedded in the specified IAM\n user.

\n

A user can also have managed policies attached to it. To detach a managed policy from\n a user, use DetachUserPolicy.\n For more information about policies, refer to Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove a policy from an IAM user", + "documentation": "The following delete-user-policy command removes the specified policy from the IAM user named Juan:", + "input": { + "UserName": "Juan", + "PolicyName": "ExamplePolicy" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteUserPolicyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the user that the policy is embedded\n in.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name identifying the policy document to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeleteVirtualMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DeleteVirtualMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#DeleteConflictException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a virtual MFA device.

\n \n

You must deactivate a user's virtual MFA device before you can delete it. For\n information about deactivating MFA devices, see DeactivateMFADevice.

\n
", + "smithy.api#examples": [ + { + "title": "To remove a virtual MFA device", + "documentation": "The following delete-virtual-mfa-device command removes the specified MFA device from the current AWS account.", + "input": { + "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleName" + } + } + ] + } + }, + "com.amazonaws.iam#DeleteVirtualMFADeviceRequest": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices,\n the serial number is the same as the ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of upper and lowercase alphanumeric characters with no spaces. You can also include any of the \n following characters: =,.@:/-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DeletionTaskFailureReasonType": { + "type": "structure", + "members": { + "Reason": { + "target": "com.amazonaws.iam#ReasonType", + "traits": { + "smithy.api#documentation": "

A short description of the reason that the service-linked role deletion failed.

" + } + }, + "RoleUsageList": { + "target": "com.amazonaws.iam#RoleUsageListType", + "traits": { + "smithy.api#documentation": "

A list of objects that contains details about the service-linked role deletion failure,\n if that information is returned by the service. If the service-linked role has active\n sessions or if any resources that were used by the role have not been deleted from the\n linked service, the role can't be deleted. This parameter includes a list of the resources\n that are associated with the role and the Region in which the resources are being\n used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The reason that the service-linked role deletion failed.

\n

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" + } + }, + "com.amazonaws.iam#DeletionTaskIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.iam#DeletionTaskStatusType": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "NOT_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_STARTED" + } + } + } + }, + "com.amazonaws.iam#DetachGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DetachGroupPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified managed policy from the specified IAM group.

\n

A group can also have inline policies embedded with it. To delete an inline policy,\n use DeleteGroupPolicy. For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#DetachGroupPolicyRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM group to detach the policy from.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to detach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DetachRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DetachRolePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified managed policy from the specified role.

\n

A role can also have inline policies embedded with it. To delete an inline policy, use\n DeleteRolePolicy. For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#DetachRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM role to detach the policy from.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to detach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DetachUserPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DetachUserPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified managed policy from the specified user.

\n

A user can also have inline policies embedded with it. To delete an inline policy, use\n DeleteUserPolicy. For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#DetachUserPolicyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM user to detach the policy from.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy you want to detach.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementRequest" + }, + "output": { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables the management of privileged root user credentials across member accounts in\n your organization. When you disable this feature, the management account and the\n delegated administrator for IAM can no longer manage root user credentials for member\n accounts in your organization.

", + "smithy.api#examples": [ + { + "title": "To disable the RootCredentialsManagement feature in your organization", + "documentation": "The following command disables the management of privileged root user credentials across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootSessions" + ] + } + } + ] + } + }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features enabled for centralized root access for member accounts in your\n organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessionsRequest" + }, + "output": { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables root user sessions for privileged tasks across member accounts in your\n organization. When you disable this feature, the management account and the delegated\n administrator for IAM can no longer perform privileged tasks on member accounts in\n your organization.

", + "smithy.api#examples": [ + { + "title": "To disable the RootSessions feature in your organization", + "documentation": "The following command disables root user sessions for privileged tasks across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessionsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessionsResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access of member accounts in your\n organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#DisableOutboundWebIdentityFederation": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#FeatureDisabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables the outbound identity federation feature for your Amazon Web Services account. When disabled, IAM principals in the account cannot \n use the GetWebIdentityToken API to obtain JSON Web Tokens (JWTs) for authentication with external services. This operation \n does not affect tokens that were issued before the feature was disabled.

" + } + }, + "com.amazonaws.iam#DuplicateCertificateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#duplicateCertificateMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DuplicateCertificate", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the same certificate is associated with an IAM user in\n the account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#DuplicateSSHPublicKeyException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#duplicateSSHPublicKeyMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DuplicateSSHPublicKey", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the SSH public key is already associated with the\n specified IAM user.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#EnableMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#EnableMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#InvalidAuthenticationCodeException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables the specified MFA device and associates it with the specified IAM user. When\n enabled, the MFA device is required for every subsequent login by the IAM user\n associated with the device.

" + } + }, + "com.amazonaws.iam#EnableMFADeviceRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user for whom you want to enable the MFA device.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices,\n the serial number is the device ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of upper and lowercase alphanumeric characters with no spaces. You can also include any of the \n following characters: =,.@:/-

", + "smithy.api#required": {} + } + }, + "AuthenticationCode1": { + "target": "com.amazonaws.iam#authenticationCodeType", + "traits": { + "smithy.api#documentation": "

An authentication code emitted by the device.

\n

The format for this parameter is a string of six digits.

\n \n

Submit your request immediately after generating the authentication codes. If you\n generate the codes and then wait too long to submit the request, the MFA device\n successfully associates with the user but the MFA device becomes out of sync. This\n happens because time-based one-time passwords (TOTP) expire after a short period of\n time. If this happens, you can resync the\n device.

\n
", + "smithy.api#required": {} + } + }, + "AuthenticationCode2": { + "target": "com.amazonaws.iam#authenticationCodeType", + "traits": { + "smithy.api#documentation": "

A subsequent authentication code emitted by the device.

\n

The format for this parameter is a string of six digits.

\n \n

Submit your request immediately after generating the authentication codes. If you\n generate the codes and then wait too long to submit the request, the MFA device\n successfully associates with the user but the MFA device becomes out of sync. This\n happens because time-based one-time passwords (TOTP) expire after a short period of\n time. If this happens, you can resync the\n device.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementRequest" + }, + "output": { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#CallerIsNotManagementAccountException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables the management of privileged root user credentials across member accounts in your\n organization. When you enable root credentials management for centralized root access, the management account and the delegated\n administrator for IAM can manage root user credentials for member accounts in your\n organization.

\n

Before you enable centralized root access, you must have an account configured with\n the following settings:

\n
    \n
  • \n

    You must manage your Amazon Web Services accounts in Organizations.

    \n
  • \n
  • \n

    Enable trusted access for Identity and Access Management in Organizations. For details, see\n IAM and Organizations in the Organizations User\n Guide.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To enable the RootCredentialsManagement feature in your organization", + "documentation": "The following command enables the management of privileged root user credentials across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessionsRequest" + }, + "output": { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#CallerIsNotManagementAccountException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Allows the management account or delegated administrator to perform privileged tasks\n on member accounts in your organization. For more information, see Centrally manage root access for member accounts in the Identity and Access Management\n User Guide.

\n

Before you enable this feature, you must have an account configured with the following\n settings:

\n
    \n
  • \n

    You must manage your Amazon Web Services accounts in Organizations.

    \n
  • \n
  • \n

    Enable trusted access for Identity and Access Management in Organizations. For details, see\n IAM and Organizations in the Organizations User\n Guide.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To enable the RootSessions feature in your organization", + "documentation": "The following command allows the management account or delegated administrator to perform privileged tasks on member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement", + "RootSessions" + ] + } + } + ] + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessionsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessionsResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#EnableOutboundWebIdentityFederation": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#EnableOutboundWebIdentityFederationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#FeatureEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables the outbound identity federation feature for your Amazon Web Services account. When enabled, IAM principals in your account \n can use the GetWebIdentityToken API to obtain JSON Web Tokens (JWTs) for secure authentication with external services. \n This operation also generates a unique issuer URL for your Amazon Web Services account.

" + } + }, + "com.amazonaws.iam#EnableOutboundWebIdentityFederationResponse": { + "type": "structure", + "members": { + "IssuerIdentifier": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

A unique issuer URL for your Amazon Web Services account that hosts the OpenID Connect (OIDC) discovery endpoints \n at /.well-known/openid-configuration and /.well-known/jwks.json. The OpenID Connect (OIDC) discovery endpoints contain verification keys and metadata necessary \n for token verification.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#EntityAlreadyExistsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#entityAlreadyExistsMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "EntityAlreadyExists", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because it attempted to create a resource that already\n exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#EntityDetails": { + "type": "structure", + "members": { + "EntityInfo": { + "target": "com.amazonaws.iam#EntityInfo", + "traits": { + "smithy.api#documentation": "

The EntityInfo object that contains details about the entity (user or\n role).

", + "smithy.api#required": {} + } + }, + "LastAuthenticated": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the authenticated entity last attempted to access Amazon Web Services. Amazon Web Services does\n not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains details about when the IAM entities (users or roles) were last\n used in an attempt to access the specified Amazon Web Services service.

\n

This data type is a response element in the GetServiceLastAccessedDetailsWithEntities operation.

" + } + }, + "com.amazonaws.iam#EntityInfo": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the entity (user or role).

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.iam#policyOwnerEntityType", + "traits": { + "smithy.api#documentation": "

The type of entity (user or role).

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The identifier of the entity (user or role).

", + "smithy.api#required": {} + } + }, + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the entity (user or role). For more information about paths, see IAM\n identifiers in the IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the specified entity (user or role).

\n

This data type is an element of the EntityDetails\n object.

" + } + }, + "com.amazonaws.iam#EntityTemporarilyUnmodifiableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#entityTemporarilyUnmodifiableMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "EntityTemporarilyUnmodifiable", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because it referenced an entity that is temporarily unmodifiable,\n such as a user name that was deleted and then recreated. The error indicates that the request\n is likely to succeed if you try again after waiting several minutes. The error message\n describes the entity.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#EntityType": { + "type": "enum", + "members": { + "User": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "User" + } + }, + "Role": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Role" + } + }, + "Group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Group" + } + }, + "LocalManagedPolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LocalManagedPolicy" + } + }, + "AWSManagedPolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWSManagedPolicy" + } + } + } + }, + "com.amazonaws.iam#ErrorDetails": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

Detailed information about the reason that the operation failed.

", + "smithy.api#required": {} + } + }, + "Code": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The error code associated with the operation failure.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the reason that the operation failed.

\n

This data type is used as a response element in the GetOrganizationsAccessReport, GetServiceLastAccessedDetails, and GetServiceLastAccessedDetailsWithEntities operations.

" + } + }, + "com.amazonaws.iam#EvalDecisionDetailsType": { + "type": "map", + "key": { + "target": "com.amazonaws.iam#EvalDecisionSourceType" + }, + "value": { + "target": "com.amazonaws.iam#PolicyEvaluationDecisionType" + } + }, + "com.amazonaws.iam#EvalDecisionSourceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 256 + } + } + }, + "com.amazonaws.iam#EvaluationResult": { + "type": "structure", + "members": { + "EvalActionName": { + "target": "com.amazonaws.iam#ActionNameType", + "traits": { + "smithy.api#documentation": "

The name of the API operation tested on the indicated resource.

", + "smithy.api#required": {} + } + }, + "EvalResourceName": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

The ARN template for the simulated resource type (for example,\n arn:${Partition}:s3:::${BucketName}/${KeyName}), or * if no\n ARN format is defined for the action. This is not a specific customer-provided resource\n ARN. To find the decision for a specific resource, use\n ResourceSpecificResults.

\n \n

If you previously relied on EvalResourceName to identify which specific\n resource a result applies to, you must now use the EvalResourceName field\n within individual entries in ResourceSpecificResults instead.

\n
" + } + }, + "EvalDecision": { + "target": "com.amazonaws.iam#PolicyEvaluationDecisionType", + "traits": { + "smithy.api#documentation": "

The result of the simulation.

", + "smithy.api#required": {} + } + }, + "MatchedStatements": { + "target": "com.amazonaws.iam#StatementListType", + "traits": { + "smithy.api#documentation": "

A list of the statements in the input policies that determine the result for this\n scenario. Remember that even if multiple statements allow the operation on the resource, if\n only one statement denies that operation, then the explicit deny overrides any allow. In\n addition, the deny statement is the only entry included in the result.

\n

In the top-level result, this field contains the union of matched statements across all\n requested resources. Only statements that contributed to the reported decision are\n included. For per-resource matched statements, see\n ResourceSpecificResults. This field doesn't include statements from\n service control policies (SCPs). Only statements from identity-based and resource-based\n policies appear here.

" + } + }, + "MissingContextValues": { + "target": "com.amazonaws.iam#ContextKeyNamesResultListType", + "traits": { + "smithy.api#documentation": "

A list of context keys that are required by the included input policies but that were\n not provided by one of the input parameters. This list is used when the resource in a\n simulation is \"*\", either explicitly, or when the ResourceArns parameter\n blank. If you include a list of resources, then any missing context values are instead\n included under the ResourceSpecificResults section. To discover the context\n keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

\n

In the top-level result, this field contains the deduplicated set of missing context\n values across all requested resources. This field doesn't include context keys referenced\n by service control policies (SCPs). Only context keys referenced by identity-based and\n resource-based policies appear here.

" + } + }, + "OrganizationsDecisionDetail": { + "target": "com.amazonaws.iam#OrganizationsDecisionDetail", + "traits": { + "smithy.api#documentation": "

A structure that details how Organizations and its service control policies affect the results of\n the simulation. Only applies if the simulated user's account is part of an\n organization.

\n

For resources that don't support organization-level evaluation, this field is omitted\n from the top-level result. For per-resource details, see\n ResourceSpecificResults.

" + } + }, + "PermissionsBoundaryDecisionDetail": { + "target": "com.amazonaws.iam#PermissionsBoundaryDecisionDetail", + "traits": { + "smithy.api#documentation": "

Contains information about the effect that a permissions boundary has on a policy\n simulation when the boundary is applied to an IAM entity.

" + } + }, + "EvalDecisionDetails": { + "target": "com.amazonaws.iam#EvalDecisionDetailsType", + "traits": { + "smithy.api#documentation": "

Additional details about the results of the cross-account evaluation decision. This\n parameter is populated for only cross-account simulations. It contains a brief summary of\n how each policy type contributes to the final evaluation decision.

\n

In the top-level result, this map reports the most restrictive decision per policy\n type across all requested resources.

\n

If the simulation evaluates policies within the same account and includes a resource\n ARN, then the parameter is present but the response is empty. If the simulation evaluates\n policies within the same account and specifies all resources (*), then the\n parameter is not returned.

\n

When you make a cross-account request, Amazon Web Services evaluates the request in the trusting\n account and the trusted account. The request is allowed only if both evaluations return\n true. For more information about how policies are evaluated, see Evaluating policies within a single account.

\n

If an Organizations SCP included in the evaluation denies access, the simulation ends. In\n this case, policy evaluation does not proceed any further and this parameter is not\n returned.

" + } + }, + "ResourceSpecificResults": { + "target": "com.amazonaws.iam#ResourceSpecificResultListType", + "traits": { + "smithy.api#documentation": "

The individual results of the simulation of the API operation specified in\n EvalActionName on each resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the results of a simulation.

\n

This data type is used by the return parameter of \n SimulateCustomPolicy\n and \n SimulatePrincipalPolicy\n .

\n \n

The simulator now returns a single EvaluationResult per action,\n regardless of how many resource ARNs are provided. Previously, simulating one action\n against N resources returned N evaluation results, each containing the same aggregate\n decision. The top-level fields (EvalDecision,\n MatchedStatements, MissingContextValues,\n EvalDecisionDetails) now represent the\n aggregate decision across all requested resources. The top-level\n EvalDecision reflects the most restrictive decision across all resources\n (for example, if any resource produces explicitDeny, the top-level\n decision is explicitDeny).

\n

To see the decision for each individual resource, use\n ResourceSpecificResults. If your application parses evaluation results per\n resource ARN, update your code to read per-resource decisions from\n ResourceSpecificResults rather than from the top-level result.

\n
" + } + }, + "com.amazonaws.iam#EvaluationResultsListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#EvaluationResult" + } + }, + "com.amazonaws.iam#ExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#FeatureDisabledException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#FeatureDisabledMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "FeatureDisabled", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The request failed because outbound identity federation is already disabled for your Amazon Web Services account. You cannot disable the feature multiple times

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.iam#FeatureDisabledMessage": { + "type": "string" + }, + "com.amazonaws.iam#FeatureEnabledException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#FeatureEnabledMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "FeatureEnabled", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request failed because outbound identity federation is already enabled for your Amazon Web Services account. You\n cannot enable the feature multiple times. To fetch the current configuration (including the unique issuer URL), use the GetOutboundWebIdentityFederationInfo operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#FeatureEnabledMessage": { + "type": "string" + }, + "com.amazonaws.iam#FeatureType": { + "type": "enum", + "members": { + "ROOT_CREDENTIALS_MANAGEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RootCredentialsManagement" + } + }, + "ROOT_SESSIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RootSessions" + } + } + } + }, + "com.amazonaws.iam#FeaturesListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#FeatureType" + } + }, + "com.amazonaws.iam#GenerateCredentialReport": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#GenerateCredentialReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a credential report for the Amazon Web Services account. For more information about the\n credential report, see Getting credential reports in\n the IAM User Guide.

" + } + }, + "com.amazonaws.iam#GenerateCredentialReportResponse": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.iam#ReportStateType", + "traits": { + "smithy.api#documentation": "

Information about the state of the credential report.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#ReportStateDescriptionType", + "traits": { + "smithy.api#documentation": "

Information about the credential report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GenerateCredentialReport request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GenerateOrganizationsAccessReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GenerateOrganizationsAccessReportRequest" + }, + "output": { + "target": "com.amazonaws.iam#GenerateOrganizationsAccessReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ReportGenerationLimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a report for service last accessed data for Organizations. You can generate a\n report for any entities (organization root, organizational unit, or account) or policies\n in your organization.

\n

To call this operation, you must be signed in using your Organizations management account\n credentials. You can use your long-term IAM user or root user credentials, or temporary\n credentials from assuming an IAM role. SCPs must be enabled for your organization\n root. You must have the required IAM and Organizations permissions. For more information, see\n Refining permissions using service last accessed data in the\n IAM User Guide.

\n

You can generate a service last accessed data report for entities by specifying only\n the entity's path. This data includes a list of services that are allowed by any service\n control policies (SCPs) that apply to the entity.

\n

You can generate a service last accessed data report for a policy by specifying an\n entity's path and an optional Organizations policy ID. This data includes a list of services that\n are allowed by the specified SCP.

\n

For each service in both report types, the data includes the most recent account\n activity that the policy allows to account principals in the entity or the entity's\n children. For important information about the data, reporting period, permissions\n required, troubleshooting, and supported Regions see Reducing permissions using\n service last accessed data in the\n IAM User Guide.

\n \n

The data includes all attempts to access Amazon Web Services, not just the successful ones. This\n includes all attempts that were made using the Amazon Web Services Management Console, the Amazon Web Services API through any\n of the SDKs, or any of the command line tools. An unexpected entry in the service\n last accessed data does not mean that an account has been compromised, because the\n request might have been denied. Refer to your CloudTrail logs as the authoritative\n source for information about all API calls and whether they were successful or\n denied access. For more information, see Logging IAM events with\n CloudTrail in the IAM User Guide.

\n
\n

This operation returns a JobId. Use this parameter in the \n GetOrganizationsAccessReport\n operation to check the status of\n the report generation. To check the status of this request, use the JobId\n parameter in the \n GetOrganizationsAccessReport\n operation and test the\n JobStatus response parameter. When the job is complete, you can\n retrieve the report.

\n

To generate a service last accessed data report for entities, specify an entity path\n without specifying the optional Organizations policy ID. The type of entity that you specify\n determines the data returned in the report.

\n
    \n
  • \n

    \n Root – When you specify the\n organizations root as the entity, the resulting report lists all of the services\n allowed by SCPs that are attached to your root. For each service, the report\n includes data for all accounts in your organization except the\n management account, because the management account is not limited by SCPs.

    \n
  • \n
  • \n

    \n OU – When you specify an\n organizational unit (OU) as the entity, the resulting report lists all of the\n services allowed by SCPs that are attached to the OU and its parents. For each\n service, the report includes data for all accounts in the OU or its children.\n This data excludes the management account, because the management account is not\n limited by SCPs.

    \n
  • \n
  • \n

    \n management account – When you specify the\n management account, the resulting report lists all Amazon Web Services services, because the\n management account is not limited by SCPs. For each service, the report includes\n data for only the management account.

    \n
  • \n
  • \n

    \n Account – When you specify another\n account as the entity, the resulting report lists all of the services allowed by\n SCPs that are attached to the account and its parents. For each service, the\n report includes data for only the specified account.

    \n
  • \n
\n

To generate a service last accessed data report for policies, specify an entity path\n and the optional Organizations policy ID. The type of entity that you specify determines the data\n returned for each service.

\n
    \n
  • \n

    \n Root – When you specify the root\n entity and a policy ID, the resulting report lists all of the services that are\n allowed by the specified SCP. For each service, the report includes data for all\n accounts in your organization to which the SCP applies. This data excludes the\n management account, because the management account is not limited by SCPs. If the\n SCP is not attached to any entities in the organization, then the report will\n return a list of services with no data.

    \n
  • \n
  • \n

    \n OU – When you specify an OU entity and\n a policy ID, the resulting report lists all of the services that are allowed by\n the specified SCP. For each service, the report includes data for all accounts\n in the OU or its children to which the SCP applies. This means that other\n accounts outside the OU that are affected by the SCP might not be included in\n the data. This data excludes the management account, because the\n management account is not limited by SCPs. If the SCP is not attached to the OU\n or one of its children, the report will return a list of services with no\n data.

    \n
  • \n
  • \n

    \n management account – When you specify the\n management account, the resulting report lists all Amazon Web Services services, because the\n management account is not limited by SCPs. If you specify a policy ID in the CLI\n or API, the policy is ignored. For each service, the report includes data for\n only the management account.

    \n
  • \n
  • \n

    \n Account – When you specify another\n account entity and a policy ID, the resulting report lists all of the services\n that are allowed by the specified SCP. For each service, the report includes\n data for only the specified account. This means that other accounts in the\n organization that are affected by the SCP might not be included in the data. If\n the SCP is not attached to the account, the report will return a list of\n services with no data.

    \n
  • \n
\n \n

Service last accessed data does not use other policy types when determining\n whether a principal could access a service. These other policy types include\n identity-based policies, resource-based policies, access control lists, IAM\n permissions boundaries, and STS assume role policies. It only applies SCP logic.\n For more about the evaluation of policy types, see Evaluating policies in the\n IAM User Guide.

\n
\n

For more information about service last accessed data, see Reducing policy scope by\n viewing user activity in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To generate a service last accessed data report for an organizational unit", + "documentation": "The following operation generates a report for the organizational unit ou-rge0-awexample", + "input": { + "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example" + }, + "output": { + "JobId": "examplea-1234-b567-cde8-90fg123abcd4" + } + } + ] + } + }, + "com.amazonaws.iam#GenerateOrganizationsAccessReportRequest": { + "type": "structure", + "members": { + "EntityPath": { + "target": "com.amazonaws.iam#organizationsEntityPathType", + "traits": { + "smithy.api#documentation": "

The path of the Organizations entity (root, OU, or account). You can build an entity path\n using the known structure of your organization. For example, assume that your account ID\n is 123456789012 and its parent OU ID is ou-rge0-awsabcde. The\n organization root ID is r-f6g7h8i9j0example and your organization ID is\n o-a1b2c3d4e5. Your entity path is\n o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-rge0-awsabcde/123456789012.

", + "smithy.api#required": {} + } + }, + "OrganizationsPolicyId": { + "target": "com.amazonaws.iam#organizationsPolicyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the Organizations service control policy (SCP). This parameter is\n optional.

\n

This ID is used to generate information about when an account principal that is\n limited by the SCP attempted to access an Amazon Web Services service.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GenerateOrganizationsAccessReportResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.iam#jobIDType", + "traits": { + "smithy.api#documentation": "

The job identifier that you can use in the GetOrganizationsAccessReport operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GenerateServiceLastAccessedDetails": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GenerateServiceLastAccessedDetailsRequest" + }, + "output": { + "target": "com.amazonaws.iam#GenerateServiceLastAccessedDetailsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a report that includes details about when an IAM resource (user, group,\n role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity\n usually appears within four hours. IAM reports activity for at least the last 400\n days, or less if your Region began supporting this feature within the last year. For\n more information, see Regions where data is tracked. For more information about services and\n actions for which action last accessed information is displayed, see IAM\n action last accessed information services and actions.

\n \n

The service last accessed data includes all attempts to access an Amazon Web Services API, not\n just the successful ones. This includes all attempts that were made using the\n Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools.\n An unexpected entry in the service last accessed data does not mean that your\n account has been compromised, because the request might have been denied. Refer to\n your CloudTrail logs as the authoritative source for information about all API calls\n and whether they were successful or denied access. For more information, see Logging\n IAM events with CloudTrail in the\n IAM User Guide.

\n
\n

The GenerateServiceLastAccessedDetails operation returns a\n JobId. Use this parameter in the following operations to retrieve the\n following details from your report:

\n
    \n
  • \n

    \n GetServiceLastAccessedDetails – Use this operation for\n users, groups, roles, or policies to list every Amazon Web Services service that the resource\n could access using permissions policies. For each service, the response includes\n information about the most recent access attempt.

    \n

    The JobId returned by\n GenerateServiceLastAccessedDetail must be used by the same role\n within a session, or by the same user when used to call\n GetServiceLastAccessedDetail.

    \n
  • \n
  • \n

    \n GetServiceLastAccessedDetailsWithEntities – Use this\n operation for groups and policies to list information about the associated\n entities (users or roles) that attempted to access a specific Amazon Web Services service.\n

    \n
  • \n
\n

To check the status of the GenerateServiceLastAccessedDetails request,\n use the JobId parameter in the same operations and test the\n JobStatus response parameter.

\n

For additional information about the permissions policies that allow an identity\n (user, group, or role) to access specific services, use the ListPoliciesGrantingServiceAccess operation.

\n \n

Service last accessed data does not use other policy types when determining\n whether a resource could access a service. These other policy types include\n resource-based policies, access control lists, Organizations policies, IAM permissions\n boundaries, and STS assume role policies. It only applies permissions policy\n logic. For more about the evaluation of policy types, see Evaluating policies in the\n IAM User Guide.

\n
\n

For more information about service and action last accessed data, see Reducing permissions using service last accessed data in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To generate a service last accessed data report for a policy", + "documentation": "The following operation generates a report for the policy: ExamplePolicy1", + "input": { + "Arn": "arn:aws:iam::123456789012:policy/ExamplePolicy1" + }, + "output": { + "JobId": "examplef-1305-c245-eba4-71fe298bcda7" + } + } + ] + } + }, + "com.amazonaws.iam#GenerateServiceLastAccessedDetailsRequest": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM resource (user, group, role, or managed policy) used to generate\n information about when the resource was last used in an attempt to access an Amazon Web Services\n service.

", + "smithy.api#required": {} + } + }, + "Granularity": { + "target": "com.amazonaws.iam#AccessAdvisorUsageGranularityType", + "traits": { + "smithy.api#documentation": "

The level of detail that you want to generate. You can specify whether you want to\n generate information about the last attempt to access services or actions. If you\n specify service-level granularity, this operation generates only service data. If you\n specify action-level granularity, it generates service and action data. If you don't\n include this optional parameter, the operation generates service data.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GenerateServiceLastAccessedDetailsResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.iam#jobIDType", + "traits": { + "smithy.api#documentation": "

The JobId that you can use in the GetServiceLastAccessedDetails or GetServiceLastAccessedDetailsWithEntities operations. The\n JobId returned by GenerateServiceLastAccessedDetail must\n be used by the same role within a session, or by the same user when used to call\n GetServiceLastAccessedDetail.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetAccessKeyLastUsed": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetAccessKeyLastUsedRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetAccessKeyLastUsedResponse" + }, + "traits": { + "smithy.api#documentation": "

Retrieves information about when the specified access key was last used. The\n information includes the date and time of last use, along with the Amazon Web Services service and\n Region that were specified in the last request made with that key.

" + } + }, + "com.amazonaws.iam#GetAccessKeyLastUsedRequest": { + "type": "structure", + "members": { + "AccessKeyId": { + "target": "com.amazonaws.iam#accessKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of an access key.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetAccessKeyLastUsedResponse": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user that owns this access key.

\n

" + } + }, + "AccessKeyLastUsed": { + "target": "com.amazonaws.iam#AccessKeyLastUsed", + "traits": { + "smithy.api#documentation": "

Contains information about the last time the access key was used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetAccessKeyLastUsed\n request. It is also returned as a member of the AccessKeyMetaData structure\n returned by the ListAccessKeys action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetAccountAuthorizationDetails": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetAccountAuthorizationDetailsRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetAccountAuthorizationDetailsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about all IAM users, groups, roles, and policies in your Amazon Web Services\n account, including their relationships to one another. Use this operation to obtain a\n snapshot of the configuration of IAM permissions (users, groups, roles, and policies)\n in your account.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
\n

You can optionally filter the results using the Filter parameter. You can\n paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#GetAccountAuthorizationDetailsRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.iam#entityListType", + "traits": { + "smithy.api#documentation": "

A list of entity types used to filter the results. Only the entities that match the\n types you specify are included in the output. Use the value\n LocalManagedPolicy to include customer managed policies.

\n

The format for this parameter is a comma-separated (if more than one) list of strings.\n Each string value in the list must be one of the valid values listed below.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetAccountAuthorizationDetailsResponse": { + "type": "structure", + "members": { + "UserDetailList": { + "target": "com.amazonaws.iam#userDetailListType", + "traits": { + "smithy.api#documentation": "

A list containing information about IAM users.

" + } + }, + "GroupDetailList": { + "target": "com.amazonaws.iam#groupDetailListType", + "traits": { + "smithy.api#documentation": "

A list containing information about IAM groups.

" + } + }, + "RoleDetailList": { + "target": "com.amazonaws.iam#roleDetailListType", + "traits": { + "smithy.api#documentation": "

A list containing information about IAM roles.

" + } + }, + "Policies": { + "target": "com.amazonaws.iam#ManagedPolicyDetailListType", + "traits": { + "smithy.api#documentation": "

A list containing information about managed policies.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetAccountAuthorizationDetails request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetAccountPasswordPolicy": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#GetAccountPasswordPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the password policy for the Amazon Web Services account. This tells you the complexity\n requirements and mandatory rotation periods for the IAM user passwords in your account.\n For more information about using a password policy, see Managing an IAM password\n policy.

", + "smithy.api#examples": [ + { + "title": "To see the current account password policy", + "documentation": "The following command displays details about the password policy for the current AWS account.", + "output": { + "PasswordPolicy": { + "AllowUsersToChangePassword": false, + "RequireNumbers": true, + "RequireLowercaseCharacters": false, + "RequireUppercaseCharacters": false, + "MinimumPasswordLength": 8, + "RequireSymbols": true, + "ExpirePasswords": false, + "PasswordReusePrevention": 12, + "MaxPasswordAge": 90, + "HardExpiry": false + } + } + } + ] + } + }, + "com.amazonaws.iam#GetAccountPasswordPolicyResponse": { + "type": "structure", + "members": { + "PasswordPolicy": { + "target": "com.amazonaws.iam#PasswordPolicy", + "traits": { + "smithy.api#documentation": "

A structure that contains details about the account's password policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetAccountPasswordPolicy request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetAccountProperties": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetAccountPropertiesRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetAccountPropertiesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the account-level properties for the caller's Amazon Web Services account. Account\n properties are configuration settings that control account-wide IAM features such as\n Role Manager.

\n

The service returns properties as key-value pairs in\n Namespace/PropertyName format. Each namespace groups related\n configuration settings. Use PutAccountProperties to modify these properties.

" + } + }, + "com.amazonaws.iam#GetAccountPropertiesRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetAccountPropertiesResponse": { + "type": "structure", + "members": { + "Properties": { + "target": "com.amazonaws.iam#accountPropertiesMapType", + "traits": { + "smithy.api#documentation": "

A map of account property key-value pairs. Keys are in the format\n Namespace/PropertyName.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetAccountSummary": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#GetAccountSummaryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about IAM entity usage and IAM quotas in the Amazon Web Services\n account.

\n

For information about IAM quotas, see IAM and STS quotas in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To get information about IAM entity quotas and usage in the current account", + "documentation": "The following command returns information about the IAM entity quotas and usage in the current AWS account.", + "output": { + "SummaryMap": { + "Users": 27, + "UsersQuota": 5000, + "Groups": 15, + "GroupsQuota": 100, + "Policies": 8, + "PoliciesQuota": 1000, + "PolicySizeQuota": 5120, + "PolicyVersionsInUse": 22, + "PolicyVersionsInUseQuota": 10000, + "VersionsPerPolicyQuota": 5, + "ServerCertificates": 1, + "ServerCertificatesQuota": 20, + "UserPolicySizeQuota": 2048, + "GroupPolicySizeQuota": 5120, + "GroupsPerUserQuota": 10, + "GlobalEndpointTokenVersion": 2, + "SigningCertificatesPerUserQuota": 2, + "AccessKeysPerUserQuota": 2, + "MFADevices": 6, + "MFADevicesInUse": 3, + "AccountMFAEnabled": 0, + "AccountAccessKeysPresent": 1, + "AccountSigningCertificatesPresent": 0, + "AttachedPoliciesPerGroupQuota": 10, + "AttachedPoliciesPerRoleQuota": 10, + "AttachedPoliciesPerUserQuota": 10 + } + } + } + ] + } + }, + "com.amazonaws.iam#GetAccountSummaryResponse": { + "type": "structure", + "members": { + "SummaryMap": { + "target": "com.amazonaws.iam#summaryMapType", + "traits": { + "smithy.api#documentation": "

A set of key–value pairs containing information about IAM entity usage and\n IAM quotas.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetAccountSummary request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetContextKeysForCustomPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetContextKeysForCustomPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetContextKeysForPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of all of the context keys referenced in the input policies. The policies\n are supplied as a list of one or more strings. To get the context keys from policies\n associated with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.

\n

Context keys are variables maintained by Amazon Web Services and its services that provide details\n about the context of an API query request. Context keys can be evaluated by testing\n against a value specified in an IAM policy. Use\n GetContextKeysForCustomPolicy to understand what key names and values\n you must supply when you call SimulateCustomPolicy. Note that all parameters are shown in unencoded form\n here for clarity but must be URL encoded to be included as a part of a real HTML\n request.

" + } + }, + "com.amazonaws.iam#GetContextKeysForCustomPolicyRequest": { + "type": "structure", + "members": { + "PolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

A list of policies for which you want the list of context keys referenced in those\n policies. Each document is specified as a string containing the complete, valid JSON\n text of an IAM policy.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetContextKeysForPolicyResponse": { + "type": "structure", + "members": { + "ContextKeyNames": { + "target": "com.amazonaws.iam#ContextKeyNamesResultListType", + "traits": { + "smithy.api#documentation": "

The list of context keys that are referenced in the input policies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetContextKeysForPrincipalPolicy or GetContextKeysForCustomPolicy request.

" + } + }, + "com.amazonaws.iam#GetContextKeysForPrincipalPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetContextKeysForPrincipalPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetContextKeysForPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of all of the context keys referenced in all the IAM policies that are\n attached to the specified IAM entity. The entity can be an IAM user, group, or role.\n If you specify a user, then the request also includes all of the policies attached to\n groups that the user is a member of.

\n

You can optionally include a list of one or more additional policies, specified as\n strings. If you want to include only a list of policies by string,\n use GetContextKeysForCustomPolicy instead.

\n

\n Note: This operation discloses information about the\n permissions granted to other users. If you do not want users to see other user's\n permissions, then consider allowing them to use GetContextKeysForCustomPolicy instead.

\n

Context keys are variables maintained by Amazon Web Services and its services that provide details\n about the context of an API query request. Context keys can be evaluated by testing\n against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to understand what key names and values\n you must supply when you call SimulatePrincipalPolicy. This operation doesn't return context keys\n referenced by service control policies (SCPs). Only context keys referenced by the\n identity-based policies attached to the specified entity, and any additional policies\n that you provide, are included.

" + } + }, + "com.amazonaws.iam#GetContextKeysForPrincipalPolicyRequest": { + "type": "structure", + "members": { + "PolicySourceArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of a user, group, or role whose policies contain the context keys that you\n want listed. If you specify a user, the list includes context keys that are found in all\n policies that are attached to the user. The list also includes all groups that the user\n is a member of. If you pick a group or a role, then it includes only those context keys\n that are found in policies attached to that entity. Note that all parameters are shown\n in unencoded form here for clarity, but must be URL encoded to be included as a part of\n a real HTML request.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "PolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

An optional list of additional policies for which you want the list of context keys\n that are referenced.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetCredentialReport": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#GetCredentialReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#CredentialReportExpiredException" + }, + { + "target": "com.amazonaws.iam#CredentialReportNotPresentException" + }, + { + "target": "com.amazonaws.iam#CredentialReportNotReadyException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a credential report for the Amazon Web Services account. For more information about the\n credential report, see Getting credential reports in\n the IAM User Guide.

" + } + }, + "com.amazonaws.iam#GetCredentialReportResponse": { + "type": "structure", + "members": { + "Content": { + "target": "com.amazonaws.iam#ReportContentType", + "traits": { + "smithy.api#documentation": "

Contains the credential report. The report is Base64-encoded.

" + } + }, + "ReportFormat": { + "target": "com.amazonaws.iam#ReportFormatType", + "traits": { + "smithy.api#documentation": "

The format (MIME type) of the credential report.

" + } + }, + "GeneratedTime": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the credential report was created, in ISO 8601 date-time format.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetCredentialReport\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetDelegationRequestRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetDelegationRequestResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about a specific delegation request.

\n

\n If a delegation request has no owner or owner account, GetDelegationRequest for that delegation request can be called by any account.\n If the owner account is assigned but there is\n no owner id, only identities within that owner account can call GetDelegationRequest\n for the delegation request. Once the delegation request is fully owned, the owner of the request gets\n a default permission to get that delegation request. For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#GetDelegationRequestRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request to retrieve.

", + "smithy.api#required": {} + } + }, + "DelegationPermissionCheck": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether to perform a permission check for the delegation request.

\n

If set to true, the GetDelegationRequest API call will start a permission check process. This process\n calculates whether the caller has sufficient permissions to cover the asks from this delegation request.

\n

Setting this parameter to true does not guarantee an answer in the response. See the PermissionCheckStatus\n and the PermissionCheckResult response attributes for further details.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetDelegationRequestResponse": { + "type": "structure", + "members": { + "DelegationRequest": { + "target": "com.amazonaws.iam#DelegationRequest", + "traits": { + "smithy.api#documentation": "

The delegation request object containing all details about the request.

" + } + }, + "PermissionCheckStatus": { + "target": "com.amazonaws.iam#permissionCheckStatusType", + "traits": { + "smithy.api#documentation": "

The status of the permission check for the delegation request.

\n

This value indicates the status of the process to check whether the caller has sufficient permissions to cover the requested actions in the delegation request.\n Since this is an asynchronous process, there are three potential values:

\n
    \n
  • \n

    \n IN_PROGRESS : The permission check process has started.

    \n
  • \n
  • \n

    \n COMPLETED : The permission check process has completed. The PermissionCheckResult will include the result.

    \n
  • \n
  • \n

    \n FAILED : The permission check process has failed.

    \n
  • \n
" + } + }, + "PermissionCheckResult": { + "target": "com.amazonaws.iam#permissionCheckResultType", + "traits": { + "smithy.api#documentation": "

The result of the permission check, indicating whether the caller has sufficient permissions to cover the requested permissions.\n This is an approximate result.

\n
    \n
  • \n

    \n ALLOWED : The caller has sufficient permissions cover all the requested permissions.

    \n
  • \n
  • \n

    \n DENIED : The caller does not have sufficient permissions to cover all the requested permissions.

    \n
  • \n
  • \n

    \n UNSURE : It is not possible to determine whether the caller has all the permissions needed.\n This output is most likely for cases when the caller has permissions with conditions.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetGroupRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of IAM users that are in the specified IAM group. You can paginate\n the results using the MaxItems and Marker parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Users", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#GetGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetGroupPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetGroupPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the specified inline policy document that is embedded in the specified IAM\n group.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
\n

An IAM group can also have managed policies attached to it. To retrieve a managed\n policy document that is attached to a group, use GetPolicy to determine the\n policy's default version, then use GetPolicyVersion to\n retrieve the policy document.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#GetGroupPolicyRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group the policy is associated with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document to get.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetGroupPolicyResponse": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The group the policy is associated with.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

IAM stores policies in JSON format. However, resources that were created using CloudFormation\n templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format\n before submitting it to IAM.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetGroupPolicy request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetGroupResponse": { + "type": "structure", + "members": { + "Group": { + "target": "com.amazonaws.iam#Group", + "traits": { + "smithy.api#documentation": "

A structure that contains details about the group.

", + "smithy.api#required": {} + } + }, + "Users": { + "target": "com.amazonaws.iam#userListType", + "traits": { + "smithy.api#documentation": "

A list of users in the group.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetGroup request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetHumanReadableSummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetHumanReadableSummaryRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetHumanReadableSummaryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a human readable summary for a given entity. At this time, the only supported\n entity type is delegation-request\n

\n

This method uses a Large Language Model (LLM) to generate the summary.

\n

\n If a delegation request has no owner or owner account, GetHumanReadableSummary for that delegation request can be called by any account.\n If the owner account is assigned but there is\n no owner id, only identities within that owner account can call GetHumanReadableSummary\n for the delegation request to retrieve a summary of that request.\n Once the delegation request is fully owned, the owner of the request gets\n a default permission to get that delegation request. For more details, read\n default permissions granted to delegation requests. These rules are identical to\n GetDelegationRequest\n API behavior, such that a party who has permissions to call\n GetDelegationRequest\n for a given delegation request will always be able to retrieve the human readable summary for that request.\n

" + } + }, + "com.amazonaws.iam#GetHumanReadableSummaryRequest": { + "type": "structure", + "members": { + "EntityArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

Arn of the entity to be summarized. At this time, the only supported\n entity type is delegation-request\n

", + "smithy.api#required": {} + } + }, + "Locale": { + "target": "com.amazonaws.iam#localeType", + "traits": { + "smithy.api#documentation": "

A string representing the locale to use for the summary generation. The\n supported locale strings are based on the \n Supported languages of the Amazon Web Services Management Console\n .

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetHumanReadableSummaryResponse": { + "type": "structure", + "members": { + "SummaryContent": { + "target": "com.amazonaws.iam#summaryContentType", + "traits": { + "smithy.api#documentation": "

Summary content in the specified locale. Summary content is non-empty only if the\n SummaryState is AVAILABLE.

" + } + }, + "Locale": { + "target": "com.amazonaws.iam#localeType", + "traits": { + "smithy.api#documentation": "

The locale that this response was generated for. This maps to the input locale.

" + } + }, + "SummaryState": { + "target": "com.amazonaws.iam#summaryStateType", + "traits": { + "smithy.api#documentation": "

State of summary generation. This generation process is asynchronous and this attribute indicates the\n state of the generation process.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetInstanceProfileRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetInstanceProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified instance profile, including the instance\n profile's path, GUID, ARN, and role. For more information about instance profiles, see\n Using\n instance profiles in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To get information about an instance profile", + "documentation": "The following command gets information about the instance profile named ExampleInstanceProfile.", + "input": { + "InstanceProfileName": "ExampleInstanceProfile" + }, + "output": { + "InstanceProfile": { + "InstanceProfileId": "AID2MAB8DPLSRHEXAMPLE", + "Roles": [ + { + "AssumeRolePolicyDocument": "", + "RoleId": "AIDGPMS9RO4H3FEXAMPLE", + "CreateDate": "2013-01-09T06:33:26Z", + "Path": "/", + "RoleName": "Test-Role", + "Arn": "arn:aws:iam::336924118301:role/Test-Role" + } + ], + "CreateDate": "2013-06-12T23:52:02Z", + "InstanceProfileName": "ExampleInstanceProfile", + "Path": "/", + "Arn": "arn:aws:iam::336924118301:instance-profile/ExampleInstanceProfile" + } + } + } + ], + "smithy.waiters#waitable": { + "InstanceProfileExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NoSuchEntityException" + } + } + ], + "minDelay": 1 + } + } + } + }, + "com.amazonaws.iam#GetInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the instance profile to get information about.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetInstanceProfileResponse": { + "type": "structure", + "members": { + "InstanceProfile": { + "target": "com.amazonaws.iam#InstanceProfile", + "traits": { + "smithy.api#documentation": "

A structure containing details about the instance profile.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetInstanceProfile\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetLoginProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetLoginProfileRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetLoginProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the user name for the specified IAM user. A login profile is created when\n you create a password for the user to access the Amazon Web Services Management Console. If the user does not exist\n or does not have a password, the operation returns a 404 (NoSuchEntity)\n error.

\n

If you create an IAM user with access to the console, the CreateDate\n reflects the date you created the initial password for the user.

\n

If you create an IAM user with programmatic access, and then later add a password\n for the user to access the Amazon Web Services Management Console, the CreateDate reflects the initial\n password creation date. A user with programmatic access does not have a login profile\n unless you create a password for the user to access the Amazon Web Services Management Console.

", + "smithy.api#examples": [ + { + "title": "To get password information for an IAM user", + "documentation": "The following command gets information about the password for the IAM user named Anika.", + "input": { + "UserName": "Anika" + }, + "output": { + "LoginProfile": { + "UserName": "Anika", + "CreateDate": "2012-09-21T23:03:39Z" + } + } + } + ] + } + }, + "com.amazonaws.iam#GetLoginProfileRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose login profile you want to retrieve.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetLoginProfileResponse": { + "type": "structure", + "members": { + "LoginProfile": { + "target": "com.amazonaws.iam#LoginProfile", + "traits": { + "smithy.api#documentation": "

A structure containing the user name and the profile creation date for the\n user.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetLoginProfile request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetMFADeviceRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetMFADeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about an MFA device for a specified user.

" + } + }, + "com.amazonaws.iam#GetMFADeviceRequest": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

Serial number that uniquely identifies the MFA device. For this API, we only accept\n FIDO security key ARNs.

", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The friendly name identifying the user.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetMFADeviceResponse": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The friendly name identifying the user.

" + } + }, + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

Serial number that uniquely identifies the MFA device. For this API, we only accept\n FIDO security key ARNs.

", + "smithy.api#required": {} + } + }, + "EnableDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date that a specified user's MFA device was first enabled.

" + } + }, + "Certifications": { + "target": "com.amazonaws.iam#CertificationMapType", + "traits": { + "smithy.api#documentation": "

The certifications of a specified user's MFA device. We currently provide FIPS-140-2,\n FIPS-140-3, and FIDO certification levels obtained from FIDO Alliance Metadata Service\n (MDS).

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetOpenIDConnectProviderRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetOpenIDConnectProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the specified OpenID Connect (OIDC) provider resource object\n in IAM.

" + } + }, + "com.amazonaws.iam#GetOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get\n information for. You can get a list of OIDC provider resource ARNs by using the ListOpenIDConnectProviders operation.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetOpenIDConnectProviderResponse": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.iam#OpenIDConnectProviderUrlType", + "traits": { + "smithy.api#documentation": "

The URL that the IAM OIDC provider resource object is associated with. For more\n information, see CreateOpenIDConnectProvider.

" + } + }, + "ClientIDList": { + "target": "com.amazonaws.iam#clientIDListType", + "traits": { + "smithy.api#documentation": "

A list of client IDs (also known as audiences) that are associated with the specified\n IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.

" + } + }, + "ThumbprintList": { + "target": "com.amazonaws.iam#thumbprintListType", + "traits": { + "smithy.api#documentation": "

A list of certificate thumbprints that are associated with the specified IAM OIDC\n provider resource object. For more information, see CreateOpenIDConnectProvider.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the IAM OIDC provider resource object was created in the\n Amazon Web Services account.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the specified IAM OIDC provider. The returned list of tags is sorted by tag key.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetOpenIDConnectProvider request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetOrganizationsAccessReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetOrganizationsAccessReportRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetOrganizationsAccessReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the service last accessed data report for Organizations that was previously\n generated using the \n GenerateOrganizationsAccessReport\n operation. This operation\n retrieves the status of your report job and the report contents.

\n

Depending on the parameters that you passed when you generated the report, the data\n returned could include different information. For details, see GenerateOrganizationsAccessReport.

\n

To call this operation, you must be signed in to the management account in your\n organization. SCPs must be enabled for your organization root. You must have permissions\n to perform this operation. For more information, see Refining permissions using\n service last accessed data in the\n IAM User Guide.

\n

For each service that principals in an account (root user, IAM users, or IAM roles)\n could access using SCPs, the operation returns details about the most recent access\n attempt. If there was no attempt, the service is listed without details about the most\n recent attempt to access the service. If the operation fails, it returns the reason that\n it failed.

\n

By default, the list is sorted by service namespace.

", + "smithy.api#examples": [ + { + "title": "To get details from a previously generated organizational unit report", + "documentation": "The following operation gets details about the report with the job ID: examplea-1234-b567-cde8-90fg123abcd4", + "input": { + "JobId": "examplea-1234-b567-cde8-90fg123abcd4" + }, + "output": { + "IsTruncated": false, + "JobCompletionDate": "2019-06-18T19:47:35.241Z", + "JobCreationDate": "2019-06-18T19:47:31.466Z", + "JobStatus": "COMPLETED", + "NumberOfServicesAccessible": 3, + "NumberOfServicesNotAccessed": 1, + "AccessDetails": [ + { + "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/111122223333", + "LastAuthenticatedTime": "2019-05-25T16:29:52Z", + "Region": "us-east-1", + "ServiceName": "Amazon DynamoDB", + "ServiceNamespace": "dynamodb", + "TotalAuthenticatedEntities": 2 + }, + { + "EntityPath": "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/123456789012", + "LastAuthenticatedTime": "2019-06-15T13:12:06Z", + "Region": "us-east-1", + "ServiceName": "AWS Identity and Access Management", + "ServiceNamespace": "iam", + "TotalAuthenticatedEntities": 4 + }, + { + "ServiceName": "Amazon Simple Storage Service", + "ServiceNamespace": "s3", + "TotalAuthenticatedEntities": 0 + } + ] + } + } + ] + } + }, + "com.amazonaws.iam#GetOrganizationsAccessReportRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.iam#jobIDType", + "traits": { + "smithy.api#documentation": "

The identifier of the request generated by the GenerateOrganizationsAccessReport operation.

", + "smithy.api#required": {} + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "SortKey": { + "target": "com.amazonaws.iam#sortKeyType", + "traits": { + "smithy.api#documentation": "

The key that is used to sort the results. If you choose the namespace key, the results\n are returned in alphabetical order. If you choose the time key, the results are sorted\n numerically by the date and time.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetOrganizationsAccessReportResponse": { + "type": "structure", + "members": { + "JobStatus": { + "target": "com.amazonaws.iam#jobStatusType", + "traits": { + "smithy.api#documentation": "

The status of the job.

", + "smithy.api#required": {} + } + }, + "JobCreationDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the report job was created.

", + "smithy.api#required": {} + } + }, + "JobCompletionDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the generated report job was completed or failed.

\n

This field is null if the job is still in progress, as indicated by a job status value\n of IN_PROGRESS.

" + } + }, + "NumberOfServicesAccessible": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The number of services that the applicable SCPs allow account principals to\n access.

" + } + }, + "NumberOfServicesNotAccessed": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The number of services that account principals are allowed but did not attempt to\n access.

" + } + }, + "AccessDetails": { + "target": "com.amazonaws.iam#AccessDetails", + "traits": { + "smithy.api#documentation": "

An object that contains details about the most recent attempt to access the\n service.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + }, + "ErrorDetails": { + "target": "com.amazonaws.iam#ErrorDetails" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetOutboundWebIdentityFederationInfo": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.iam#GetOutboundWebIdentityFederationInfoResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#FeatureDisabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the configuration information for the outbound identity federation feature in your Amazon Web Services account. The response includes the unique issuer URL for your \n Amazon Web Services account and the current enabled/disabled status of the feature. Use this operation to obtain the issuer URL that you need to configure trust relationships with external services.

" + } + }, + "com.amazonaws.iam#GetOutboundWebIdentityFederationInfoResponse": { + "type": "structure", + "members": { + "IssuerIdentifier": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

A unique issuer URL for your Amazon Web Services account that hosts the OpenID Connect (OIDC) discovery endpoints at \n /.well-known/openid-configuration and /.well-known/jwks.json. The OpenID Connect (OIDC) discovery endpoints contain verification keys and metadata necessary for token verification.

" + } + }, + "JwtVendingEnabled": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether outbound identity federation is currently enabled for your \n Amazon Web Services account. When true, IAM principals in the account can call the GetWebIdentityToken API to obtain JSON Web Tokens (JWTs) for authentication with external services.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified managed policy, including the policy's\n default version and the total number of IAM users, groups, and roles to which the\n policy is attached. To retrieve the list of the specific users, groups, and roles that\n the policy is attached to, use ListEntitiesForPolicy. This operation returns metadata about the policy. To\n retrieve the actual policy document for a specific version of the policy, use GetPolicyVersion.

\n

This operation retrieves information about managed policies. To retrieve information\n about an inline policy that is embedded with an IAM user, group, or role, use GetUserPolicy, GetGroupPolicy, or\n GetRolePolicy.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "PolicyExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NoSuchEntity" + } + } + ], + "minDelay": 1 + } + } + } + }, + "com.amazonaws.iam#GetPolicyRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the managed policy that you want information\n about.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetPolicyResponse": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.iam#Policy", + "traits": { + "smithy.api#documentation": "

A structure containing details about the policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetPolicy request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetPolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetPolicyVersionRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetPolicyVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified version of the specified managed policy,\n including the policy document.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
\n

To list the available versions for a policy, use ListPolicyVersions.

\n

This operation retrieves information about managed policies. To retrieve information\n about an inline policy that is embedded in a user, group, or role, use GetUserPolicy, GetGroupPolicy, or\n GetRolePolicy.

\n

For more information about the types of policies, see Managed policies and inline\n policies in the IAM User Guide.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#GetPolicyVersionRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the managed policy that you want information\n about.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

Identifies the policy version to retrieve.

\n

This parameter allows (through its regex pattern) a string of characters that \n consists of the lowercase letter 'v' followed by one or two digits, and optionally \n followed by a period '.' and a string of letters and digits.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetPolicyVersionResponse": { + "type": "structure", + "members": { + "PolicyVersion": { + "target": "com.amazonaws.iam#PolicyVersion", + "traits": { + "smithy.api#documentation": "

A structure containing details about the policy version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetPolicyVersion request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified role, including the role's path, GUID, ARN,\n and the role's trust policy that grants permission to assume the role. For more\n information about roles, see IAM roles in the\n IAM User Guide.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
", + "smithy.api#examples": [ + { + "title": "To get information about an IAM role", + "documentation": "The following command gets information about the role named Test-Role.", + "input": { + "RoleName": "Test-Role" + }, + "output": { + "Role": { + "Arn": "arn:aws:iam::123456789012:role/Test-Role", + "AssumeRolePolicyDocument": "", + "CreateDate": "2013-04-18T05:01:58Z", + "MaxSessionDuration": 3600, + "Path": "/", + "RoleId": "AROADBQP57FF2AEXAMPLE", + "RoleLastUsed": { + "LastUsedDate": "2019-11-18T05:01:58Z", + "Region": "us-east-1" + }, + "RoleName": "Test-Role" + } + } + } + ], + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "RoleExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NoSuchEntity" + } + } + ], + "minDelay": 1 + } + } + } + }, + "com.amazonaws.iam#GetRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetRolePolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetRolePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the specified inline policy document that is embedded with the specified\n IAM role.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
\n

An IAM role can also have managed policies attached to it. To retrieve a managed\n policy document that is attached to a role, use GetPolicy to determine the\n policy's default version, then use GetPolicyVersion to\n retrieve the policy document.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

\n

For more information about roles, see IAM roles in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#GetRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role associated with the policy.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document to get.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetRolePolicyResponse": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The role the policy is associated with.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

IAM stores policies in JSON format. However, resources that were created using CloudFormation\n templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format\n before submitting it to IAM.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetRolePolicy request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to get information about.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetRoleResponse": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.iam#Role", + "traits": { + "smithy.api#documentation": "

A structure containing details about the IAM role.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetRole request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetRoleTemplateVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetRoleTemplateVersionRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetRoleTemplateVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about a version of the specified role template. Role templates\n define a reusable configuration—including role name and path patterns, trust\n policy, inline and managed policies, permissions boundary, tags, and maximum session\n duration—that you use to create IAM roles with AcquireRole.

\n

If you do not specify a minor version, the service returns the template's default\n minor version.

" + } + }, + "com.amazonaws.iam#GetRoleTemplateVersionRequest": { + "type": "structure", + "members": { + "TemplateArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role template whose version you want to\n retrieve.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "MinorVersion": { + "target": "com.amazonaws.iam#minorVersionType", + "traits": { + "smithy.api#documentation": "

The minor version of the role template to retrieve. If you do not specify a minor\n version, the service returns the template's default minor version.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetRoleTemplateVersionResponse": { + "type": "structure", + "members": { + "RoleTemplateVersion": { + "target": "com.amazonaws.iam#RoleTemplateVersion", + "traits": { + "smithy.api#documentation": "

A structure that contains details about the requested role template version.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetSAMLProviderRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetSAMLProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the SAML provider metadocument that was uploaded when the IAM SAML provider\n resource object was created or updated.

\n \n

This operation requires Signature Version 4.

\n
" + } + }, + "com.amazonaws.iam#GetSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SAML provider resource object in IAM to get\n information about.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetSAMLProviderResponse": { + "type": "structure", + "members": { + "SAMLProviderUUID": { + "target": "com.amazonaws.iam#privateKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier assigned to the SAML provider.

" + } + }, + "SAMLMetadataDocument": { + "target": "com.amazonaws.iam#SAMLMetadataDocumentType", + "traits": { + "smithy.api#documentation": "

The XML metadata document that includes information about an identity provider.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the SAML provider was created.

" + } + }, + "ValidUntil": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The expiration date and time for the SAML provider.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the specified IAM SAML provider. The returned list of tags is sorted by tag key.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "AssertionEncryptionMode": { + "target": "com.amazonaws.iam#assertionEncryptionModeType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption setting for the SAML provider.

" + } + }, + "PrivateKeyList": { + "target": "com.amazonaws.iam#privateKeyList", + "traits": { + "smithy.api#documentation": "

The private key metadata for the SAML provider.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetSAMLProvider request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetSSHPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetSSHPublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetSSHPublicKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#UnrecognizedPublicKeyEncodingException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the specified SSH public key, including metadata about the key.

\n

The SSH public key retrieved by this operation is used only for authenticating the\n associated IAM user to an CodeCommit repository. For more information about using SSH keys\n to authenticate to an CodeCommit repository, see Set up CodeCommit for SSH\n connections in the CodeCommit User Guide.

" + } + }, + "com.amazonaws.iam#GetSSHPublicKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyId": { + "target": "com.amazonaws.iam#publicKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + }, + "Encoding": { + "target": "com.amazonaws.iam#encodingType", + "traits": { + "smithy.api#documentation": "

Specifies the public key encoding format to use in the response. To retrieve the\n public key in ssh-rsa format, use SSH. To retrieve the public key in PEM\n format, use PEM.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetSSHPublicKeyResponse": { + "type": "structure", + "members": { + "SSHPublicKey": { + "target": "com.amazonaws.iam#SSHPublicKey", + "traits": { + "smithy.api#documentation": "

A structure containing details about the SSH public key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetSSHPublicKey\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetServerCertificateRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetServerCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified server certificate stored in IAM.

\n

For more information about working with server certificates, see Working\n with server certificates in the IAM User Guide. This\n topic includes a list of Amazon Web Services services that can use the server certificates that you\n manage with IAM.

" + } + }, + "com.amazonaws.iam#GetServerCertificateRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the server certificate you want to retrieve information about.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetServerCertificateResponse": { + "type": "structure", + "members": { + "ServerCertificate": { + "target": "com.amazonaws.iam#ServerCertificate", + "traits": { + "smithy.api#documentation": "

A structure containing details about the server certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetServerCertificate\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetails": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetailsRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetailsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a service last accessed report that was created using the\n GenerateServiceLastAccessedDetails operation. You can use the\n JobId parameter in GetServiceLastAccessedDetails to\n retrieve the status of your report job. When the report is complete, you can retrieve\n the generated report. The report includes a list of Amazon Web Services services that the resource\n (user, group, role, or managed policy) can access.

\n \n

Service last accessed data does not use other policy types when determining\n whether a resource could access a service. These other policy types include\n resource-based policies, access control lists, Organizations policies, IAM permissions\n boundaries, and STS assume role policies. It only applies permissions policy\n logic. For more about the evaluation of policy types, see Evaluating policies in the\n IAM User Guide.

\n
\n

For each service that the resource could access using permissions policies, the\n operation returns details about the most recent access attempt. If there was no attempt,\n the service is listed without details about the most recent attempt to access the\n service. If the operation fails, the GetServiceLastAccessedDetails\n operation returns the reason that it failed.

\n

The GetServiceLastAccessedDetails operation returns a list of services.\n This list includes the number of entities that have attempted to access the service and\n the date and time of the last attempt. It also returns the ARN of the following entity,\n depending on the resource ARN that you used to generate the report:

\n
    \n
  • \n

    \n User – Returns the user ARN that you\n used to generate the report

    \n
  • \n
  • \n

    \n Group – Returns the ARN of the group\n member (user) that last attempted to access the service

    \n
  • \n
  • \n

    \n Role – Returns the role ARN that you\n used to generate the report

    \n
  • \n
  • \n

    \n Policy – Returns the ARN of the user\n or role that last used the policy to attempt to access the service

    \n
  • \n
\n

By default, the list is sorted by service namespace.

\n

If you specified ACTION_LEVEL granularity when you generated the report,\n this operation returns service and action last accessed data. This includes the most\n recent access attempt for each tracked action within a service. Otherwise, this\n operation returns only service data.

\n

For more information about service and action last accessed data, see Reducing permissions using service last accessed data in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To get details from a previously-generated report", + "documentation": "The following operation gets details about the report with the job ID: examplef-1305-c245-eba4-71fe298bcda7", + "input": { + "JobId": "examplef-1305-c245-eba4-71fe298bcda7" + }, + "output": { + "JobStatus": "COMPLETED", + "JobCreationDate": "2018-10-24T19:47:31.466Z", + "ServicesLastAccessed": [ + { + "TotalAuthenticatedEntities": 2, + "LastAuthenticated": "2018-10-24T19:11:00Z", + "ServiceNamespace": "iam", + "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/AWSExampleUser01", + "ServiceName": "AWS Identity and Access Management" + }, + { + "TotalAuthenticatedEntities": 0, + "ServiceNamespace": "s3", + "ServiceName": "Amazon Simple Storage Service" + } + ], + "JobCompletionDate": "2018-10-24T19:47:35.241Z", + "IsTruncated": false + } + } + ] + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetailsRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.iam#jobIDType", + "traits": { + "smithy.api#documentation": "

The ID of the request generated by the GenerateServiceLastAccessedDetails operation. The JobId\n returned by GenerateServiceLastAccessedDetail must be used by the same role\n within a session, or by the same user when used to call\n GetServiceLastAccessedDetail.

", + "smithy.api#required": {} + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetailsResponse": { + "type": "structure", + "members": { + "JobStatus": { + "target": "com.amazonaws.iam#jobStatusType", + "traits": { + "smithy.api#documentation": "

The status of the job.

", + "smithy.api#required": {} + } + }, + "JobType": { + "target": "com.amazonaws.iam#AccessAdvisorUsageGranularityType", + "traits": { + "smithy.api#documentation": "

The type of job. Service jobs return information about when each service was last\n accessed. Action jobs also include information about when tracked actions within the\n service were last accessed.

" + } + }, + "JobCreationDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the report job was created.

", + "smithy.api#required": {} + } + }, + "ServicesLastAccessed": { + "target": "com.amazonaws.iam#ServicesLastAccessed", + "traits": { + "smithy.api#documentation": "

A ServiceLastAccessed object that contains details about the most recent\n attempt to access the service.

", + "smithy.api#required": {} + } + }, + "JobCompletionDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the generated report job was completed or failed.

\n

This field is null if the job is still in progress, as indicated by a job status value\n of IN_PROGRESS.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + }, + "Error": { + "target": "com.amazonaws.iam#ErrorDetails", + "traits": { + "smithy.api#documentation": "

An object that contains details about the reason the operation failed.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntities": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

After you generate a group or policy report using the\n GenerateServiceLastAccessedDetails operation, you can use the\n JobId parameter in\n GetServiceLastAccessedDetailsWithEntities. This operation retrieves the\n status of your report job and a list of entities that could have used group or policy\n permissions to access the specified service.

\n
    \n
  • \n

    \n Group – For a group report, this\n operation returns a list of users in the group that could have used the group’s\n policies in an attempt to access the service.

    \n
  • \n
  • \n

    \n Policy – For a policy report, this\n operation returns a list of entities (users or roles) that could have used the\n policy in an attempt to access the service.

    \n
  • \n
\n

You can also use this operation for user or role reports to retrieve details about\n those entities.

\n

If the operation fails, the GetServiceLastAccessedDetailsWithEntities\n operation returns the reason that it failed.

\n

By default, the list of associated entities is sorted by date, with the most recent\n access listed first.

", + "smithy.api#examples": [ + { + "title": "To get sntity details from a previously-generated report", + "documentation": "The following operation returns details about the entities that attempted to access the IAM service.", + "input": { + "JobId": "examplef-1305-c245-eba4-71fe298bcda7", + "ServiceNamespace": "iam" + }, + "output": { + "JobStatus": "COMPLETED", + "JobCreationDate": "2018-10-24T19:47:31.466Z", + "JobCompletionDate": "2018-10-24T19:47:35.241Z", + "EntityDetailsList": [ + { + "EntityInfo": { + "Id": "AIDAEX2EXAMPLEB6IGCDC", + "Name": "AWSExampleUser01", + "Type": "USER", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:user/AWSExampleUser01" + }, + "LastAuthenticated": "2018-10-24T19:10:00Z" + }, + { + "EntityInfo": { + "Id": "AROAEAEXAMPLEIANXSIU4", + "Name": "AWSExampleRole01", + "Type": "ROLE", + "Path": "/", + "Arn": "arn:aws:iam::123456789012:role/AWSExampleRole01" + } + } + ], + "IsTruncated": false + } + } + ] + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.iam#jobIDType", + "traits": { + "smithy.api#documentation": "

The ID of the request generated by the GenerateServiceLastAccessedDetails\n operation.

", + "smithy.api#required": {} + } + }, + "ServiceNamespace": { + "target": "com.amazonaws.iam#serviceNamespaceType", + "traits": { + "smithy.api#documentation": "

The service namespace for an Amazon Web Services service. Provide the service namespace to learn\n when the IAM entity last attempted to access the specified service.

\n

To learn the service namespace for a service, see Actions, resources, and condition keys for Amazon Web Services services in the\n IAM User Guide. Choose the name of the service to view\n details for that service. In the first paragraph, find the service prefix. For example,\n (service prefix: a4b). For more information about service namespaces,\n see Amazon Web Services\n service namespaces in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetServiceLastAccessedDetailsWithEntitiesResponse": { + "type": "structure", + "members": { + "JobStatus": { + "target": "com.amazonaws.iam#jobStatusType", + "traits": { + "smithy.api#documentation": "

The status of the job.

", + "smithy.api#required": {} + } + }, + "JobCreationDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the report job was created.

", + "smithy.api#required": {} + } + }, + "JobCompletionDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the generated report job was completed or failed.

\n

This field is null if the job is still in progress, as indicated by a job status value\n of IN_PROGRESS.

", + "smithy.api#required": {} + } + }, + "EntityDetailsList": { + "target": "com.amazonaws.iam#entityDetailsListType", + "traits": { + "smithy.api#documentation": "

An EntityDetailsList object that contains details about when an IAM\n entity (user or role) used group or policy permissions in an attempt to access the\n specified Amazon Web Services service.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + }, + "Error": { + "target": "com.amazonaws.iam#ErrorDetails", + "traits": { + "smithy.api#documentation": "

An object that contains details about the reason the operation failed.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the status of your service-linked role deletion. After you use DeleteServiceLinkedRole to submit a service-linked role for deletion, you\n can use the DeletionTaskId parameter in\n GetServiceLinkedRoleDeletionStatus to check the status of the deletion.\n If the deletion fails, this operation returns the reason that it failed, if that\n information is returned by the service.

" + } + }, + "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusRequest": { + "type": "structure", + "members": { + "DeletionTaskId": { + "target": "com.amazonaws.iam#DeletionTaskIdType", + "traits": { + "smithy.api#documentation": "

The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format\n task/aws-service-role///.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetServiceLinkedRoleDeletionStatusResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.iam#DeletionTaskStatusType", + "traits": { + "smithy.api#documentation": "

The status of the deletion.

", + "smithy.api#required": {} + } + }, + "Reason": { + "target": "com.amazonaws.iam#DeletionTaskFailureReasonType", + "traits": { + "smithy.api#documentation": "

An object that contains details about the reason the deletion failed.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetUserRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about the specified IAM user, including the user's creation\n date, path, unique ID, and ARN.

\n

If you do not specify a user name, IAM determines the user name implicitly based on\n the Amazon Web Services access key ID used to sign the request to this operation.

", + "smithy.api#examples": [ + { + "title": "To get information about an IAM user", + "documentation": "The following command gets information about the IAM user named Bob.", + "input": { + "UserName": "Bob" + }, + "output": { + "User": { + "UserName": "Bob", + "Path": "/", + "CreateDate": "2012-09-21T23:03:13Z", + "UserId": "AKIAIOSFODNN7EXAMPLE", + "Arn": "arn:aws:iam::123456789012:user/Bob" + } + } + } + ], + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.test#smokeTests": [ + { + "id": "GetUserFailure", + "params": { + "UserName": "fake_user" + }, + "vendorParams": { + "region": "us-east-1" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], + "smithy.waiters#waitable": { + "UserExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NoSuchEntity" + } + } + ], + "minDelay": 1 + } + } + } + }, + "com.amazonaws.iam#GetUserPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#GetUserPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#GetUserPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the specified inline policy document that is embedded in the specified IAM\n user.

\n \n

Policies returned by this operation are URL-encoded compliant \n with RFC 3986. You can use a URL \n decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n can use the decode method of the java.net.URLDecoder utility class in \n the Java SDK. Other languages and SDKs provide similar functionality, and some SDKs do this decoding \n automatically.

\n
\n

An IAM user can also have managed policies attached to it. To retrieve a managed\n policy document that is attached to a user, use GetPolicy to determine the\n policy's default version. Then use GetPolicyVersion to\n retrieve the policy document.

\n

For more information about policies, see Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#GetUserPolicyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user who the policy is associated with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document to get.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetUserPolicyResponse": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The user the policy is associated with.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

IAM stores policies in JSON format. However, resources that were created using CloudFormation\n templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format\n before submitting it to IAM.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetUserPolicy request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#GetUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to get information about.

\n

This parameter is optional. If it is not included, it defaults to the user making the\n request. This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#GetUserResponse": { + "type": "structure", + "members": { + "User": { + "target": "com.amazonaws.iam#User", + "traits": { + "smithy.api#documentation": "

A structure containing details about the IAM user.

\n \n

Due to a service issue, password last used data does not include password use from\n May 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects last sign-in dates shown in the IAM console and password last used\n dates in the IAM credential\n report, and returned by this operation. If users signed in during the\n affected time, the password last used date that is returned is the date the user\n last signed in before May 3, 2018. For users that signed in after May 23, 2018 14:08\n PDT, the returned password last used date is accurate.

\n

You can use password last used information to identify unused credentials for\n deletion. For example, you might delete users who did not sign in to Amazon Web Services in the\n last 90 days. In cases like this, we recommend that you adjust your evaluation\n window to include dates after May 23, 2018. Alternatively, if your users use access\n keys to access Amazon Web Services programmatically you can refer to access key last used\n information because it is accurate for all dates.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful GetUser request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#Group": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the group. For more information about paths, see IAM identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the group.

", + "smithy.api#required": {} + } + }, + "GroupId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the group. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the group. For more information about ARNs\n and how to use them in policies, see IAM identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the group was created.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM group entity.

\n

This data type is used as a response element in the following operations:

\n " + } + }, + "com.amazonaws.iam#GroupDetail": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the group. For more information about paths, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the group.

" + } + }, + "GroupId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the group. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType" + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the group was created.

" + } + }, + "GroupPolicyList": { + "target": "com.amazonaws.iam#policyDetailListType", + "traits": { + "smithy.api#documentation": "

A list of the inline policies embedded in the group.

" + } + }, + "AttachedManagedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of the managed policies attached to the group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM group, including all of the group's policies.

\n

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + } + }, + "com.amazonaws.iam#InlinePolicy": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the inline policy.

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The inline policy document.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains an inline policy template that the service embeds in roles that you create from a\n role template.

" + } + }, + "com.amazonaws.iam#InlinePolicyIdentifierType": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the inline policy.

", + "smithy.api#required": {} + } + }, + "AttachmentType": { + "target": "com.amazonaws.iam#AttachmentType", + "traits": { + "smithy.api#documentation": "

The type of IAM entity that the inline policy is attached to.

", + "smithy.api#required": {} + } + }, + "AttachmentName": { + "target": "com.amazonaws.iam#AttachmentName", + "traits": { + "smithy.api#documentation": "

The name of the IAM user, group, or role that the inline policy is attached to.\n Wildcard characters are supported to match multiple entities: use at most one\n * (matches any sequence of characters, including none), and any number of\n ? (each matches exactly one character).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies one or more inline policies that are embedded in IAM users, groups, or\n roles, by the name of the policy together with the type and name of the entity that it is\n attached to. Wildcard characters in the entity name can match multiple entities, so a\n single identifier can select more than one attached inline policy.

" + } + }, + "com.amazonaws.iam#InstanceProfile": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the instance profile. For more information about paths, see IAM\n identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name identifying the instance profile.

", + "smithy.api#required": {} + } + }, + "InstanceProfileId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the instance profile. For more information\n about IDs, see IAM identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the instance profile. For more information\n about ARNs and how to use them in policies, see IAM identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the instance profile was created.

", + "smithy.api#required": {} + } + }, + "Roles": { + "target": "com.amazonaws.iam#roleListType", + "traits": { + "smithy.api#documentation": "

The role associated with the instance profile.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the instance profile. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an instance profile.

\n

This data type is used as a response element in the following operations:

\n " + } + }, + "com.amazonaws.iam#InvalidAuthenticationCodeException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#invalidAuthenticationCodeMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidAuthenticationCode", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

The request was rejected because the authentication code was not recognized. The error\n message describes the specific error.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.iam#InvalidCertificateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#invalidCertificateMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidCertificate", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the certificate is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#InvalidInputException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#invalidInputMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidInput", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because an invalid or out-of-range value was supplied for an\n input parameter.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#InvalidPublicKeyException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#invalidPublicKeyMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidPublicKey", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the public key is malformed or otherwise invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#InvalidUserTypeException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#invalidUserTypeMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidUserType", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the type of user for the transaction was\n incorrect.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#KeyPairMismatchException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#keyPairMismatchMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KeyPairMismatch", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the public key certificate and the private key do not\n match.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#LimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#limitExceededMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "LimitExceeded", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because it attempted to create resources beyond the current\n Amazon Web Services account limits. The error message describes the limit exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#LineNumber": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.iam#ListAccessKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListAccessKeysRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListAccessKeysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the access key IDs associated with the specified IAM user.\n If there is none, the operation returns an empty list.

\n

Although each user is limited to a small number of keys, you can still paginate the\n results using the MaxItems and Marker parameters.

\n

If the UserName is not specified, the user name is determined implicitly\n based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is\n used, then UserName is required. If a long-term key is assigned to the\n user, then UserName is not required.

\n

This operation works for access keys under the Amazon Web Services account. If the Amazon Web Services account has\n no associated users, the root user returns it's own access key IDs by running this\n command.

\n \n

To ensure the security of your Amazon Web Services account, the secret access key is accessible\n only during key and user creation.

\n
", + "smithy.api#examples": [ + { + "title": "To list the access key IDs for an IAM user", + "documentation": "The following command lists the access keys IDs for the IAM user named Alice.", + "input": { + "UserName": "Alice" + }, + "output": { + "AccessKeyMetadata": [ + { + "UserName": "Alice", + "Status": "Active", + "CreateDate": "2016-12-01T22:19:58Z", + "AccessKeyId": "AKIA111111111EXAMPLE" + }, + { + "UserName": "Alice", + "Status": "Active", + "CreateDate": "2016-12-01T22:20:01Z", + "AccessKeyId": "AKIA222222222EXAMPLE" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "AccessKeyMetadata", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListAccessKeysRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListAccessKeysResponse": { + "type": "structure", + "members": { + "AccessKeyMetadata": { + "target": "com.amazonaws.iam#accessKeyMetadataListType", + "traits": { + "smithy.api#documentation": "

A list of objects containing metadata about the access keys.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListAccessKeys request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListAccountAliases": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListAccountAliasesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListAccountAliasesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the account alias associated with the Amazon Web Services account (Note: you can have only\n one). For information about using an Amazon Web Services account alias, see Creating,\n deleting, and listing an Amazon Web Services account alias in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To list account aliases", + "documentation": "The following command lists the aliases for the current account.", + "output": { + "AccountAliases": [ + "exmaple-corporation" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "AccountAliases", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListAccountAliasesRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListAccountAliasesResponse": { + "type": "structure", + "members": { + "AccountAliases": { + "target": "com.amazonaws.iam#accountAliasListType", + "traits": { + "smithy.api#documentation": "

A list of aliases associated with the account. Amazon Web Services supports only one alias per\n account.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListAccountAliases\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListAttachedGroupPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListAttachedGroupPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListAttachedGroupPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all managed policies that are attached to the specified IAM group.

\n

An IAM group can also have inline policies embedded with it. To list the inline\n policies for a group, use ListGroupPolicies.\n For information about policies, see Managed policies and inline\n policies in the IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. You can use the PathPrefix parameter to limit the list of\n policies to only those matching the specified path prefix. If there are no policies\n attached to the specified group (or none that match the specified path prefix), the\n operation returns an empty list.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "AttachedPolicies", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListAttachedGroupPoliciesRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the group to list attached policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PathPrefix": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. This parameter is optional. If it is not\n included, it defaults to a slash (/), listing all policies.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListAttachedGroupPoliciesResponse": { + "type": "structure", + "members": { + "AttachedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of the attached policies.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListAttachedGroupPolicies request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListAttachedRolePolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListAttachedRolePoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListAttachedRolePoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all managed policies that are attached to the specified IAM role.

\n

An IAM role can also have inline policies embedded with it. To list the inline\n policies for a role, use ListRolePolicies.\n For information about policies, see Managed policies and inline\n policies in the IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. You can use the PathPrefix parameter to limit the list of\n policies to only those matching the specified path prefix. If there are no policies\n attached to the specified role (or none that match the specified path prefix), the\n operation returns an empty list.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "AttachedPolicies", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListAttachedRolePoliciesRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the role to list attached policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PathPrefix": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. This parameter is optional. If it is not\n included, it defaults to a slash (/), listing all policies.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListAttachedRolePoliciesResponse": { + "type": "structure", + "members": { + "AttachedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of the attached policies.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListAttachedRolePolicies request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListAttachedUserPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListAttachedUserPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListAttachedUserPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all managed policies that are attached to the specified IAM user.

\n

An IAM user can also have inline policies embedded with it. To list the inline\n policies for a user, use ListUserPolicies.\n For information about policies, see Managed policies and inline\n policies in the IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. You can use the PathPrefix parameter to limit the list of\n policies to only those matching the specified path prefix. If there are no policies\n attached to the specified group (or none that match the specified path prefix), the\n operation returns an empty list.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "AttachedPolicies", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListAttachedUserPoliciesRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the user to list attached policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PathPrefix": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. This parameter is optional. If it is not\n included, it defaults to a slash (/), listing all policies.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListAttachedUserPoliciesResponse": { + "type": "structure", + "members": { + "AttachedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of the attached policies.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListAttachedUserPolicies request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListDelegationRequests": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListDelegationRequestsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListDelegationRequestsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists delegation requests based on the specified criteria.

\n

If a delegation request has no owner, even if it is assigned to a specific account, it will not be part of the\n ListDelegationRequests output for that account.

\n

\n For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#ListDelegationRequestsRequest": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.iam#ownerIdType", + "traits": { + "smithy.api#documentation": "

The owner ID to filter delegation requests by.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after you receive a response\n indicating that the results are truncated. Set it to the value of the\n Marker\n element in the response that you received to indicate where the next\n call should start.\n

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the maximum number of items you\n want in the response. If additional items exist beyond the maximum you specify, the\n IsTruncated\n response element is true.\n

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM may return fewer results, even when there are more results available. In that case,\n the IsTruncated response element returns true, and\n Marker\n contains a value to include in the subsequent call that tells the\n service where to continue from.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListDelegationRequestsResponse": { + "type": "structure", + "members": { + "DelegationRequests": { + "target": "com.amazonaws.iam#delegationRequestsListType", + "traits": { + "smithy.api#documentation": "

A list of delegation requests that match the specified criteria.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

When isTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" + } + }, + "isTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return.\n If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListEntitiesForPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListEntitiesForPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListEntitiesForPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all IAM users, groups, and roles that the specified managed policy is attached\n to.

\n

You can use the optional EntityFilter parameter to limit the results to a\n particular type of entity (users, groups, or roles). For example, to list only the roles\n that are attached to the specified policy, set EntityFilter to\n Role.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListEntitiesForPolicyRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy for which you want the\n versions.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "EntityFilter": { + "target": "com.amazonaws.iam#EntityType", + "traits": { + "smithy.api#documentation": "

The entity type to use for filtering the results.

\n

For example, when EntityFilter is Role, only the roles that\n are attached to the specified policy are returned. This parameter is optional. If it is\n not included, all attached entities (users, groups, and roles) are returned. The\n argument for this parameter must be one of the valid values listed below.

" + } + }, + "PathPrefix": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. This parameter is optional. If it is not\n included, it defaults to a slash (/), listing all entities.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "PolicyUsageFilter": { + "target": "com.amazonaws.iam#PolicyUsageType", + "traits": { + "smithy.api#documentation": "

The policy usage method to use for filtering the results.

\n

To list only permissions policies,\n set PolicyUsageFilter to PermissionsPolicy. To list only\n the policies used to set permissions boundaries, set the value\n to PermissionsBoundary.

\n

This parameter is optional. If it is not included, all policies are returned.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListEntitiesForPolicyResponse": { + "type": "structure", + "members": { + "PolicyGroups": { + "target": "com.amazonaws.iam#PolicyGroupListType", + "traits": { + "smithy.api#documentation": "

A list of IAM groups that the policy is attached to.

" + } + }, + "PolicyUsers": { + "target": "com.amazonaws.iam#PolicyUserListType", + "traits": { + "smithy.api#documentation": "

A list of IAM users that the policy is attached to.

" + } + }, + "PolicyRoles": { + "target": "com.amazonaws.iam#PolicyRoleListType", + "traits": { + "smithy.api#documentation": "

A list of IAM roles that the policy is attached to.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListEntitiesForPolicy\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListGroupPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListGroupPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListGroupPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the names of the inline policies that are embedded in the specified IAM\n group.

\n

An IAM group can also have managed policies attached to it. To list the managed\n policies that are attached to a group, use ListAttachedGroupPolicies. For more information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. If there are no inline policies embedded with the specified group, the\n operation returns an empty list.

", + "smithy.api#examples": [ + { + "title": "To list the in-line policies for an IAM group", + "documentation": "The following command lists the names of in-line policies that are embedded in the IAM group named Admins.", + "input": { + "GroupName": "Admins" + }, + "output": { + "PolicyNames": [ + "AdminRoot", + "KeyPolicy" + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "PolicyNames", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListGroupPoliciesRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group to list policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListGroupPoliciesResponse": { + "type": "structure", + "members": { + "PolicyNames": { + "target": "com.amazonaws.iam#policyNameListType", + "traits": { + "smithy.api#documentation": "

A list of policy names.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListGroupPolicies request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListGroupsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the IAM groups that have the specified path prefix.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#examples": [ + { + "title": "To list the IAM groups for the current account", + "documentation": "The following command lists the IAM groups in the current account:", + "output": { + "Groups": [ + { + "Path": "/division_abc/subdivision_xyz/", + "GroupName": "Admins", + "CreateDate": "2016-12-15T21:40:08.121Z", + "GroupId": "AGPA1111111111EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/Admins" + }, + { + "Path": "/division_abc/subdivision_xyz/product_1234/engineering/", + "GroupName": "Test", + "CreateDate": "2016-11-30T14:10:01.156Z", + "GroupId": "AGP22222222222EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test" + }, + { + "Path": "/division_abc/subdivision_xyz/product_1234/", + "GroupName": "Managers", + "CreateDate": "2016-06-12T20:14:52.032Z", + "GroupId": "AGPI3333333333EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Groups", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListGroupsForUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListGroupsForUserRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListGroupsForUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the IAM groups that the specified IAM user belongs to.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#examples": [ + { + "title": "To list the groups that an IAM user belongs to", + "documentation": "The following command displays the groups that the IAM user named Bob belongs to.", + "input": { + "UserName": "Bob" + }, + "output": { + "Groups": [ + { + "Path": "/division_abc/subdivision_xyz/product_1234/engineering/", + "GroupName": "Test", + "CreateDate": "2016-11-30T14:10:01.156Z", + "GroupId": "AGP2111111111EXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test" + }, + { + "Path": "/division_abc/subdivision_xyz/product_1234/", + "GroupName": "Managers", + "CreateDate": "2016-06-12T20:14:52.032Z", + "GroupId": "AGPI222222222SEXAMPLE", + "Arn": "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Groups", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListGroupsForUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to list groups for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListGroupsForUserResponse": { + "type": "structure", + "members": { + "Groups": { + "target": "com.amazonaws.iam#groupListType", + "traits": { + "smithy.api#documentation": "

A list of groups.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListGroupsForUser request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListGroupsRequest": { + "type": "structure", + "members": { + "PathPrefix": { + "target": "com.amazonaws.iam#pathPrefixType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. For example, the prefix\n /division_abc/subdivision_xyz/ gets all groups whose path starts with\n /division_abc/subdivision_xyz/.

\n

This parameter is optional. If it is not included, it defaults to a slash (/), listing\n all groups. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListGroupsResponse": { + "type": "structure", + "members": { + "Groups": { + "target": "com.amazonaws.iam#groupListType", + "traits": { + "smithy.api#documentation": "

A list of groups.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListGroups request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListInstanceProfileTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListInstanceProfileTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListInstanceProfileTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified IAM instance profile. The returned list of tags is sorted by tag key.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListInstanceProfileTagsRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM instance profile whose tags you want to see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListInstanceProfileTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the IAM instance profile. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListInstanceProfiles": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListInstanceProfilesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListInstanceProfilesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the instance profiles that have the specified path prefix. If there are none,\n the operation returns an empty list. For more information about instance profiles, see\n Using\n instance profiles in the IAM User Guide.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see\n GetInstanceProfile.

\n
\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "InstanceProfiles", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListInstanceProfilesForRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListInstanceProfilesForRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListInstanceProfilesForRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the instance profiles that have the specified associated IAM role. If there\n are none, the operation returns an empty list. For more information about instance\n profiles, go to Using\n instance profiles in the IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "InstanceProfiles", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListInstanceProfilesForRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to list instance profiles for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListInstanceProfilesForRoleResponse": { + "type": "structure", + "members": { + "InstanceProfiles": { + "target": "com.amazonaws.iam#instanceProfileListType", + "traits": { + "smithy.api#documentation": "

A list of instance profiles.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListInstanceProfilesForRole request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListInstanceProfilesRequest": { + "type": "structure", + "members": { + "PathPrefix": { + "target": "com.amazonaws.iam#pathPrefixType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. For example, the prefix\n /application_abc/component_xyz/ gets all instance profiles whose path\n starts with /application_abc/component_xyz/.

\n

This parameter is optional. If it is not included, it defaults to a slash (/), listing\n all instance profiles. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListInstanceProfilesResponse": { + "type": "structure", + "members": { + "InstanceProfiles": { + "target": "com.amazonaws.iam#instanceProfileListType", + "traits": { + "smithy.api#documentation": "

A list of instance profiles.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListInstanceProfiles\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListMFADeviceTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListMFADeviceTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListMFADeviceTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified IAM virtual multi-factor authentication (MFA) device. The returned list of tags is\n sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListMFADeviceTagsRequest": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the IAM virtual MFA device whose tags you want to see.\n For virtual MFA devices, the serial number is the same as the ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListMFADeviceTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the virtual MFA device. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListMFADevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListMFADevicesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListMFADevicesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the MFA devices for an IAM user. If the request includes a IAM user name,\n then this operation lists all the MFA devices associated with the specified user. If you\n do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services\n access key ID signing the request for this operation.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "MFADevices", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListMFADevicesRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose MFA devices you want to list.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListMFADevicesResponse": { + "type": "structure", + "members": { + "MFADevices": { + "target": "com.amazonaws.iam#mfaDeviceListType", + "traits": { + "smithy.api#documentation": "

A list of MFA devices.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListMFADevices request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListOpenIDConnectProviderTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListOpenIDConnectProviderTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListOpenIDConnectProviderTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified OpenID Connect (OIDC)-compatible\n identity provider. The returned list of tags is sorted by tag key. For more information, see About web identity\n federation.

\n

For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListOpenIDConnectProviderTagsRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the OpenID Connect (OIDC) identity provider whose tags you want to\n see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListOpenIDConnectProviderTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the OpenID Connect (OIDC) identity\n provider. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListOpenIDConnectProviders": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListOpenIDConnectProvidersRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListOpenIDConnectProvidersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists information about the IAM OpenID Connect (OIDC) provider resource objects\n defined in the Amazon Web Services account.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an OIDC provider, see GetOpenIDConnectProvider.

\n
" + } + }, + "com.amazonaws.iam#ListOpenIDConnectProvidersRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListOpenIDConnectProvidersResponse": { + "type": "structure", + "members": { + "OpenIDConnectProviderList": { + "target": "com.amazonaws.iam#OpenIDConnectProviderListType", + "traits": { + "smithy.api#documentation": "

The list of IAM OIDC provider resource objects defined in the Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListOpenIDConnectProviders request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListOrganizationsFeatures": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListOrganizationsFeaturesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListOrganizationsFeaturesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the centralized root access features enabled for your organization. For more\n information, see Centrally manage root access for member accounts.

", + "smithy.api#examples": [ + { + "title": "To list the centralized root access features enabled for your organization", + "documentation": "he following command lists the centralized root access features enabled for your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#ListOrganizationsFeaturesRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListOrganizationsFeaturesResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

Specifies the features that are currently available in your organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all the managed policies that are available in your Amazon Web Services account, including\n your own customer-defined managed policies and all Amazon Web Services managed policies.

\n

You can filter the list of policies that is returned using the optional\n OnlyAttached, Scope, and PathPrefix\n parameters. For example, to list only the customer managed policies in your Amazon Web Services\n account, set Scope to Local. To list only Amazon Web Services managed\n policies, set Scope to AWS.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

\n

For more information about managed policies, see Managed policies and inline\n policies in the IAM User Guide.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a customer manged policy, see\n GetPolicy.

\n
", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Policies", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListPoliciesGrantingServiceAccess": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListPoliciesGrantingServiceAccessRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListPoliciesGrantingServiceAccessResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of policies that the IAM identity (user, group, or role) can use to\n access each specified service.

\n \n

This operation does not use other policy types when determining whether a resource\n could access a service. These other policy types include resource-based policies,\n access control lists, Organizations policies, IAM permissions boundaries, and STS\n assume role policies. It only applies permissions policy logic. For more about the\n evaluation of policy types, see Evaluating policies in the\n IAM User Guide.

\n
\n

The list of policies returned by the operation depends on the ARN of the identity that\n you provide.

\n
    \n
  • \n

    \n User – The list of policies includes\n the managed and inline policies that are attached to the user directly. The list\n also includes any additional managed and inline policies that are attached to\n the group to which the user belongs.

    \n
  • \n
  • \n

    \n Group – The list of policies includes\n only the managed and inline policies that are attached to the group directly.\n Policies that are attached to the group’s user are not included.

    \n
  • \n
  • \n

    \n Role – The list of policies includes\n only the managed and inline policies that are attached to the role.

    \n
  • \n
\n

For each managed policy, this operation returns the ARN and policy name. For each\n inline policy, it returns the policy name and the entity to which it is attached. Inline\n policies do not have an ARN. For more information about these policy types, see Managed policies and inline policies in the\n IAM User Guide.

\n

Policies that are attached to users and roles as permissions boundaries are not\n returned. To view which managed policy is currently used to set the permissions boundary\n for a user or role, use the GetUser or GetRole\n operations.

", + "smithy.api#examples": [ + { + "title": "To list policies that allow access to a service", + "documentation": "The following operation lists policies that allow ExampleUser01 to access IAM or EC2.", + "input": { + "Arn": "arn:aws:iam::123456789012:user/ExampleUser01", + "ServiceNamespaces": [ + "iam", + "ec2" + ] + }, + "output": { + "IsTruncated": false, + "PoliciesGrantingServiceAccess": [ + { + "Policies": [ + { + "PolicyArn": "arn:aws:iam::123456789012:policy/ExampleIamPolicy", + "PolicyType": "MANAGED", + "PolicyName": "ExampleIamPolicy" + }, + { + "EntityName": "AWSExampleGroup1", + "EntityType": "GROUP", + "PolicyType": "INLINE", + "PolicyName": "ExampleGroup1Policy" + } + ], + "ServiceNamespace": "iam" + }, + { + "Policies": [ + { + "PolicyArn": "arn:aws:iam::123456789012:policy/ExampleEc2Policy", + "PolicyType": "MANAGED", + "PolicyName": "ExampleEc2Policy" + } + ], + "ServiceNamespace": "ec2" + } + ] + } + } + ] + } + }, + "com.amazonaws.iam#ListPoliciesGrantingServiceAccessEntry": { + "type": "structure", + "members": { + "ServiceNamespace": { + "target": "com.amazonaws.iam#serviceNamespaceType", + "traits": { + "smithy.api#documentation": "

The namespace of the service that was accessed.

\n

To learn the service namespace of a service, see Actions, resources, and condition keys for Amazon Web Services services in the\n Service Authorization Reference. Choose the name of the service to\n view details for that service. In the first paragraph, find the service prefix. For\n example, (service prefix: a4b). For more information about service namespaces,\n see Amazon Web Services\n service namespaces in the Amazon Web Services General Reference.

" + } + }, + "Policies": { + "target": "com.amazonaws.iam#policyGrantingServiceAccessListType", + "traits": { + "smithy.api#documentation": "

The PoliciesGrantingServiceAccess object that contains details about the\n policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the permissions policies that are attached to the specified\n identity (user, group, or role).

\n

This data type is used as a response element in the ListPoliciesGrantingServiceAccess operation.

" + } + }, + "com.amazonaws.iam#ListPoliciesGrantingServiceAccessRequest": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM identity (user, group, or role) whose policies you want to\n list.

", + "smithy.api#required": {} + } + }, + "ServiceNamespaces": { + "target": "com.amazonaws.iam#serviceNamespaceListType", + "traits": { + "smithy.api#documentation": "

The service namespace for the Amazon Web Services services whose policies you want to list.

\n

To learn the service namespace for a service, see Actions, resources, and condition keys for Amazon Web Services services in the\n IAM User Guide. Choose the name of the service to view\n details for that service. In the first paragraph, find the service prefix. For example,\n (service prefix: a4b). For more information about service namespaces,\n see Amazon Web Services\n service namespaces in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListPoliciesGrantingServiceAccessResponse": { + "type": "structure", + "members": { + "PoliciesGrantingServiceAccess": { + "target": "com.amazonaws.iam#listPolicyGrantingServiceAccessResponseListType", + "traits": { + "smithy.api#documentation": "

A ListPoliciesGrantingServiceAccess object that contains details about\n the permissions policies attached to the specified identity (user, group, or\n role).

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your results were\n truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. We recommend that you check\n IsTruncated after every call to ensure that you receive all your\n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListPoliciesRequest": { + "type": "structure", + "members": { + "Scope": { + "target": "com.amazonaws.iam#policyScopeType", + "traits": { + "smithy.api#documentation": "

The scope to use for filtering the results.

\n

To list only Amazon Web Services managed policies, set Scope to AWS. To\n list only the customer managed policies in your Amazon Web Services account, set Scope to\n Local.

\n

This parameter is optional. If it is not included, or if it is set to\n All, all policies are returned.

" + } + }, + "OnlyAttached": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag to filter the results to only the attached policies.

\n

When OnlyAttached is true, the returned list contains only\n the policies that are attached to an IAM user, group, or role. When\n OnlyAttached is false, or when the parameter is not\n included, all policies are returned.

" + } + }, + "PathPrefix": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. This parameter is optional. If it is not\n included, it defaults to a slash (/), listing all policies. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "PolicyUsageFilter": { + "target": "com.amazonaws.iam#PolicyUsageType", + "traits": { + "smithy.api#documentation": "

The policy usage method to use for filtering the results.

\n

To list only permissions policies,\n set PolicyUsageFilter to PermissionsPolicy. To list only\n the policies used to set permissions boundaries, set the value\n to PermissionsBoundary.

\n

This parameter is optional. If it is not included, all policies are returned.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListPoliciesResponse": { + "type": "structure", + "members": { + "Policies": { + "target": "com.amazonaws.iam#policyListType", + "traits": { + "smithy.api#documentation": "

A list of policies.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListPolicies request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListPolicyTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListPolicyTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListPolicyTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified IAM customer managed policy.\n The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListPolicyTagsRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM customer managed policy whose tags you want to see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListPolicyTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the IAM customer managed policy.\n Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListPolicyVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListPolicyVersionsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListPolicyVersionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists information about the versions of the specified managed policy, including the\n version that is currently set as the policy's default version.

\n

For more information about managed policies, see Managed policies and inline\n policies in the IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Versions", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListPolicyVersionsRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy for which you want the\n versions.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListPolicyVersionsResponse": { + "type": "structure", + "members": { + "Versions": { + "target": "com.amazonaws.iam#policyDocumentVersionListType", + "traits": { + "smithy.api#documentation": "

A list of policy versions.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListPolicyVersions\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListRolePolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListRolePoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListRolePoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the names of the inline policies that are embedded in the specified IAM\n role.

\n

An IAM role can also have managed policies attached to it. To list the managed\n policies that are attached to a role, use ListAttachedRolePolicies. For more information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. If there are no inline policies embedded with the specified role, the\n operation returns an empty list.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "PolicyNames", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListRolePoliciesRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to list policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListRolePoliciesResponse": { + "type": "structure", + "members": { + "PolicyNames": { + "target": "com.amazonaws.iam#policyNameListType", + "traits": { + "smithy.api#documentation": "

A list of policy names.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListRolePolicies request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListRoleTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListRoleTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListRoleTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified role. The returned list of tags is\n sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To list the tags attached to an IAM role", + "documentation": "The following example shows how to list the tags attached to a role.", + "input": { + "RoleName": "taggedrole1" + }, + "output": { + "Tags": [ + { + "Key": "Dept", + "Value": "12345" + }, + { + "Key": "Team", + "Value": "Accounting" + } + ], + "IsTruncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListRoleTagsRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM role for which you want to see the list of tags.

\n

This parameter accepts (through its regex pattern) a string of characters that consist of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListRoleTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the role. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListRoles": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListRolesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListRolesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the IAM roles that have the specified path prefix. If there are none, the\n operation returns an empty list. For more information about roles, see IAM roles in the\n IAM User Guide.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

\n
    \n
  • \n

    PermissionsBoundary

    \n
  • \n
  • \n

    RoleLastUsed

    \n
  • \n
  • \n

    Tags

    \n
  • \n
\n

To view all of the information for a role, see GetRole.

\n
\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Roles", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListRolesRequest": { + "type": "structure", + "members": { + "PathPrefix": { + "target": "com.amazonaws.iam#pathPrefixType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. For example, the prefix\n /application_abc/component_xyz/ gets all roles whose path starts with\n /application_abc/component_xyz/.

\n

This parameter is optional. If it is not included, it defaults to a slash (/), listing\n all roles. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListRolesResponse": { + "type": "structure", + "members": { + "Roles": { + "target": "com.amazonaws.iam#roleListType", + "traits": { + "smithy.api#documentation": "

A list of roles.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListRoles request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListSAMLProviderTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListSAMLProviderTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListSAMLProviderTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified Security Assertion Markup Language\n (SAML) identity provider. The returned list of tags is sorted by tag key. For more information, see About SAML 2.0-based\n federation.

\n

For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListSAMLProviderTagsRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the Security Assertion Markup Language (SAML) identity provider whose tags\n you want to see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListSAMLProviderTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the Security Assertion Markup Language\n (SAML) identity provider. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListSAMLProviders": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListSAMLProvidersRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListSAMLProvidersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the SAML provider resource objects defined in IAM in the account.\n IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a SAML provider, see GetSAMLProvider.

\n \n

This operation requires Signature Version 4.

\n
" + } + }, + "com.amazonaws.iam#ListSAMLProvidersRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListSAMLProvidersResponse": { + "type": "structure", + "members": { + "SAMLProviderList": { + "target": "com.amazonaws.iam#SAMLProviderListType", + "traits": { + "smithy.api#documentation": "

The list of SAML provider resource objects defined in IAM for this Amazon Web Services\n account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListSAMLProviders request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListSSHPublicKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListSSHPublicKeysRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListSSHPublicKeysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the SSH public keys associated with the specified IAM\n user. If none exists, the operation returns an empty list.

\n

The SSH public keys returned by this operation are used only for authenticating the\n IAM user to an CodeCommit repository. For more information about using SSH keys to\n authenticate to an CodeCommit repository, see Set up CodeCommit for\n SSH connections in the CodeCommit User Guide.

\n

Although each user is limited to a small number of keys, you can still paginate the\n results using the MaxItems and Marker parameters.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "SSHPublicKeys", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListSSHPublicKeysRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user to list SSH public keys for. If none is specified, the\n UserName field is determined implicitly based on the Amazon Web Services access key\n used to sign the request.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListSSHPublicKeysResponse": { + "type": "structure", + "members": { + "SSHPublicKeys": { + "target": "com.amazonaws.iam#SSHPublicKeyListType", + "traits": { + "smithy.api#documentation": "

A list of the SSH public keys assigned to IAM user.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListSSHPublicKeys\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListServerCertificateTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListServerCertificateTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListServerCertificateTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified IAM server certificate. The\n returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

For certificates in a Region supported by Certificate Manager (ACM), we\n recommend that you don't use IAM server certificates. Instead, use ACM to provision,\n manage, and deploy your server certificates. For more information about IAM server\n certificates, Working with server\n certificates in the IAM User Guide.

\n
", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListServerCertificateTagsRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM server certificate whose tags you want to see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListServerCertificateTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the IAM server certificate.\n Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListServerCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListServerCertificatesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListServerCertificatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the server certificates stored in IAM that have the specified path prefix. If\n none exist, the operation returns an empty list.

\n

You can paginate the results using the MaxItems and Marker\n parameters.

\n

For more information about working with server certificates, see Working\n with server certificates in the IAM User Guide. This\n topic also includes a list of Amazon Web Services services that can use the server certificates that\n you manage with IAM.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a servercertificate, see\n GetServerCertificate.

\n
", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "ServerCertificateMetadataList", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListServerCertificatesRequest": { + "type": "structure", + "members": { + "PathPrefix": { + "target": "com.amazonaws.iam#pathPrefixType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. For example:\n /company/servercerts would get all server certificates for which the\n path starts with /company/servercerts.

\n

This parameter is optional. If it is not included, it defaults to a slash (/), listing\n all server certificates. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListServerCertificatesResponse": { + "type": "structure", + "members": { + "ServerCertificateMetadataList": { + "target": "com.amazonaws.iam#serverCertificateMetadataListType", + "traits": { + "smithy.api#documentation": "

A list of server certificates.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListServerCertificates\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListServiceSpecificCredentials": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListServiceSpecificCredentialsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListServiceSpecificCredentialsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceNotSupportedException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the service-specific credentials associated with the\n specified IAM user. If none exists, the operation returns an empty list. The\n service-specific credentials returned by this operation are used only for authenticating\n the IAM user to a specific service. For more information about using service-specific\n credentials to authenticate to an Amazon Web Services service, refer to the following docs:

\n " + } + }, + "com.amazonaws.iam#ListServiceSpecificCredentialsRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose service-specific credentials you want information about. If\n this value is not specified, then the operation assumes the user whose credentials are\n used to call the operation.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "ServiceName": { + "target": "com.amazonaws.iam#serviceName", + "traits": { + "smithy.api#documentation": "

Filters the returned results to only those for the specified Amazon Web Services service. If not\n specified, then Amazon Web Services returns service-specific credentials for all services.

" + } + }, + "AllUsers": { + "target": "com.amazonaws.iam#allUsers", + "traits": { + "smithy.api#documentation": "

A flag indicating whether to list service specific credentials for all users. This\n parameter cannot be specified together with UserName. When true, returns all credentials\n associated with the specified service.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after you receive a response\n indicating that the results are truncated. Set it to the value of the Marker from the\n response that you received to indicate where the next call should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the maximum number of items you want\n in the response. If additional items exist beyond the maximum you specify, the\n IsTruncated response element is true.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListServiceSpecificCredentialsResponse": { + "type": "structure", + "members": { + "ServiceSpecificCredentials": { + "target": "com.amazonaws.iam#ServiceSpecificCredentialsListType", + "traits": { + "smithy.api#documentation": "

A list of structures that each contain details about a service-specific\n credential.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element is present and contains the value to use for\n the Marker parameter in a subsequent pagination request.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your results were\n truncated, you can make a subsequent pagination request using the Marker request\n parameter to retrieve more items.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListSigningCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListSigningCertificatesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListSigningCertificatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the signing certificates associated with the specified IAM\n user. If none exists, the operation returns an empty list.

\n

Although each user is limited to a small number of signing certificates, you can still\n paginate the results using the MaxItems and Marker\n parameters.

\n

If the UserName field is not specified, the user name is determined\n implicitly based on the Amazon Web Services access key ID used to sign the request for this operation.\n This operation works for access keys under the Amazon Web Services account. Consequently, you can use\n this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no\n associated users.

", + "smithy.api#examples": [ + { + "title": "To list the signing certificates for an IAM user", + "documentation": "The following command lists the signing certificates for the IAM user named Bob.", + "input": { + "UserName": "Bob" + }, + "output": { + "Certificates": [ + { + "UserName": "Bob", + "Status": "Active", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----", + "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", + "UploadDate": "2013-06-06T21:40:08Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Certificates", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListSigningCertificatesRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user whose signing certificates you want to examine.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListSigningCertificatesResponse": { + "type": "structure", + "members": { + "Certificates": { + "target": "com.amazonaws.iam#certificateListType", + "traits": { + "smithy.api#documentation": "

A list of the user's signing certificate information.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListSigningCertificates request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListUserPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListUserPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListUserPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the names of the inline policies embedded in the specified IAM user.

\n

An IAM user can also have managed policies attached to it. To list the managed\n policies that are attached to a user, use ListAttachedUserPolicies. For more information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

You can paginate the results using the MaxItems and Marker\n parameters. If there are no inline policies embedded with the specified user, the\n operation returns an empty list.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "PolicyNames", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListUserPoliciesRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to list policies for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListUserPoliciesResponse": { + "type": "structure", + "members": { + "PolicyNames": { + "target": "com.amazonaws.iam#policyNameListType", + "traits": { + "smithy.api#documentation": "

A list of policy names.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListUserPolicies request.\n

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListUserTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListUserTagsRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListUserTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags that are attached to the specified IAM user. The returned list of tags is sorted by tag key. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To list the tags attached to an IAM user", + "documentation": "The following example shows how to list the tags attached to a user.", + "input": { + "UserName": "anika" + }, + "output": { + "Tags": [ + { + "Key": "Dept", + "Value": "12345" + }, + { + "Key": "Team", + "Value": "Accounting" + } + ], + "IsTruncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Tags", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListUserTagsRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user whose tags you want to see.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListUserTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that are currently attached to the user. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListUsers": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListUsersRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListUsersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the IAM users that have the specified path prefix. If no path prefix is\n specified, the operation returns all users in the Amazon Web Services account. If there are none, the\n operation returns an empty list.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:

\n
    \n
  • \n

    PermissionsBoundary

    \n
  • \n
  • \n

    Tags

    \n
  • \n
\n

To view all of the information for a user, see GetUser.

\n
\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#examples": [ + { + "title": "To list IAM users", + "documentation": "The following command lists the IAM users in the current account.", + "output": { + "Users": [ + { + "UserId": "AID2MAB8DPLSRHEXAMPLE", + "Path": "/division_abc/subdivision_xyz/engineering/", + "UserName": "Juan", + "Arn": "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Juan", + "CreateDate": "2012-09-05T19:38:48Z", + "PasswordLastUsed": "2016-09-08T21:47:36Z" + }, + { + "UserId": "AIDIODR4TAW7CSEXAMPLE", + "Path": "/division_abc/subdivision_xyz/engineering/", + "UserName": "Anika", + "Arn": "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Anika", + "CreateDate": "2014-04-09T15:43:45Z", + "PasswordLastUsed": "2016-09-24T16:18:07Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Users", + "pageSize": "MaxItems" + }, + "smithy.test#smokeTests": [ + { + "id": "ListUsersSuccess", + "params": {}, + "vendorParams": { + "region": "us-east-1" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.iam#ListUsersRequest": { + "type": "structure", + "members": { + "PathPrefix": { + "target": "com.amazonaws.iam#pathPrefixType", + "traits": { + "smithy.api#documentation": "

The path prefix for filtering the results. For example:\n /division_abc/subdivision_xyz/, which would get all user names whose\n path starts with /division_abc/subdivision_xyz/.

\n

This parameter is optional. If it is not included, it defaults to a slash (/), listing\n all user names. This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListUsersResponse": { + "type": "structure", + "members": { + "Users": { + "target": "com.amazonaws.iam#userListType", + "traits": { + "smithy.api#documentation": "

A list of users.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListUsers request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ListVirtualMFADevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListVirtualMFADevicesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListVirtualMFADevicesResponse" + }, + "traits": { + "smithy.api#documentation": "

Lists the virtual MFA devices defined in the Amazon Web Services account by assignment status. If\n you do not specify an assignment status, the operation returns a list of all virtual MFA\n devices. Assignment status can be Assigned, Unassigned, or\n Any.

\n \n

IAM resource-listing operations return a subset of the available \n attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view tag information for a virtual MFA device, see ListMFADeviceTags.

\n
\n

You can paginate the results using the MaxItems and Marker\n parameters.

", + "smithy.api#examples": [ + { + "title": "To list virtual MFA devices", + "documentation": "The following command lists the virtual MFA devices that have been configured for the current account.", + "output": { + "VirtualMFADevices": [ + { + "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleMFADevice" + }, + { + "SerialNumber": "arn:aws:iam::123456789012:mfa/Juan" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "VirtualMFADevices", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#ListVirtualMFADevicesRequest": { + "type": "structure", + "members": { + "AssignmentStatus": { + "target": "com.amazonaws.iam#assignmentStatusType", + "traits": { + "smithy.api#documentation": "

The status (Unassigned or Assigned) of the devices to list.\n If you do not specify an AssignmentStatus, the operation defaults to\n Any, which lists both assigned and unassigned virtual MFA\n devices.,

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListVirtualMFADevicesResponse": { + "type": "structure", + "members": { + "VirtualMFADevices": { + "target": "com.amazonaws.iam#virtualMFADeviceListType", + "traits": { + "smithy.api#documentation": "

The list of virtual MFA devices in the current account that match the\n AssignmentStatus value that was passed in the request.

", + "smithy.api#required": {} + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element is present and\n contains the value to use for the Marker parameter in a subsequent\n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful ListVirtualMFADevices\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#LoginProfile": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user, which can be used for signing in to the Amazon Web Services Management Console.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the password for the user was created.

", + "smithy.api#required": {} + } + }, + "PasswordResetRequired": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the user is required to set a new password on next sign-in.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the user name and password create date for a user.

\n

This data type is used as a response element in the CreateLoginProfile and\n GetLoginProfile operations.

" + } + }, + "com.amazonaws.iam#MFADevice": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The user with whom the MFA device is associated.

", + "smithy.api#required": {} + } + }, + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices, the\n serial number is the device ARN.

", + "smithy.api#required": {} + } + }, + "EnableDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the MFA device was enabled for the user.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an MFA device.

\n

This data type is used as a response element in the ListMFADevices\n operation.

" + } + }, + "com.amazonaws.iam#MalformedCertificateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#malformedCertificateMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "MalformedCertificate", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the certificate was malformed or expired. The error\n message describes the specific error.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#MalformedPolicyDocumentException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#malformedPolicyDocumentMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "MalformedPolicyDocument", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the policy document was malformed. The error message\n describes the specific error.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#ManagedPolicyDetail": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The friendly name (not ARN) identifying the policy.

" + } + }, + "PolicyId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the policy.

\n

For more information about IDs, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType" + }, + "Path": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path to the policy.

\n

For more information about paths, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "DefaultVersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

The identifier for the version of the policy that is set as the default (operative)\n version.

\n

For more information about policy versions, see Versioning for managed\n policies in the IAM User Guide.

" + } + }, + "AttachmentCount": { + "target": "com.amazonaws.iam#attachmentCountType", + "traits": { + "smithy.api#documentation": "

The number of principal entities (users, groups, and roles) that the policy is attached\n to.

" + } + }, + "PermissionsBoundaryUsageCount": { + "target": "com.amazonaws.iam#attachmentCountType", + "traits": { + "smithy.api#documentation": "

The number of entities (users and roles) for which the policy is used as the permissions\n boundary.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "IsAttachable": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the policy can be attached to an IAM user, group, or role.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#policyDescriptionType", + "traits": { + "smithy.api#documentation": "

A friendly description of the policy.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the policy was created.

" + } + }, + "UpdateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the policy was last updated.

\n

When a policy has only one version, this field contains the date and time when the\n policy was created. When a policy has more than one version, this field contains the date\n and time when the most recent policy version was created.

" + } + }, + "PolicyVersionList": { + "target": "com.amazonaws.iam#policyDocumentVersionListType", + "traits": { + "smithy.api#documentation": "

A list containing information about the versions of the policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a managed policy, including the policy's ARN, versions, and\n the number of principal entities (users, groups, and roles) that the policy is attached\n to.

\n

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

\n

For more information about managed policies, see Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#ManagedPolicyDetailListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ManagedPolicyDetail" + } + }, + "com.amazonaws.iam#NameConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#nameConflictMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NameConflict", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the resulting role name conflicts with an existing role\n in the account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#NoSuchEntityException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#noSuchEntityMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NoSuchEntity", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The request was rejected because it referenced a resource entity that does not exist. The\n error message describes the resource.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.iam#OpenIDConnectProviderListEntry": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.iam#arnType" + } + }, + "traits": { + "smithy.api#documentation": "

Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect provider.

" + } + }, + "com.amazonaws.iam#OpenIDConnectProviderListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#OpenIDConnectProviderListEntry" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of IAM OpenID Connect providers.

" + } + }, + "com.amazonaws.iam#OpenIDConnectProviderUrlType": { + "type": "string", + "traits": { + "smithy.api#documentation": "

Contains a URL that specifies the endpoint for an OpenID Connect provider.

", + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.iam#OpenIdIdpCommunicationErrorException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#openIdIdpCommunicationErrorExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OpenIdIdpCommunicationError", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request failed because IAM cannot connect to the OpenID Connect identity provider\n URL.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#OrderedOrganizationPolicyType": { + "type": "structure", + "members": { + "ServiceControlPolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

A list of SCP documents that apply at this level of the Organizations hierarchy. Each document\n is specified as a string containing the complete, valid JSON text of an SCP.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents one level of an Organizations hierarchy—the organization root, an organizational\n unit (OU), or an account—together with the service control policies (SCPs) that apply at\n that level. Each element in the list represents one level of the hierarchy, ordered from\n the organization root down to the account.

\n

For more information about SCPs, see Service control\n policies (SCPs) in the Organizations User Guide.

" + } + }, + "com.amazonaws.iam#OrganizationIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 34 + }, + "smithy.api#pattern": "^o-[a-z0-9]{10,32}$" + } + }, + "com.amazonaws.iam#OrganizationNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because no organization is associated with your account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because your organization does not have All features enabled. For\n more information, see Available feature sets in the Organizations User\n Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#OrganizationPolicyListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#OrderedOrganizationPolicyType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 7 + } + } + }, + "com.amazonaws.iam#OrganizationsDecisionDetail": { + "type": "structure", + "members": { + "AllowedByOrganizations": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the simulated operation is allowed by the Organizations service control\n policies that impact the simulated user's account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the effect that Organizations has on a policy simulation.

" + } + }, + "com.amazonaws.iam#ParameterDefinition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.iam#parameterNameType", + "traits": { + "smithy.api#documentation": "

The name of the parameter.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.iam#parameterTypeType", + "traits": { + "smithy.api#documentation": "

The data type of the parameter. Valid values are String,\n StringList, Number, NumberList,\n Arn, and ArnList.

", + "smithy.api#required": {} + } + }, + "SubType": { + "target": "com.amazonaws.iam#parameterSubTypeType", + "traits": { + "smithy.api#documentation": "

An optional subtype that further constrains the values that are allowed for the\n parameter.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#parameterDescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the parameter.

" + } + }, + "IsRequired": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether you must supply a value for the parameter when you create a role from\n the template.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.iam#parameterDefaultValueType", + "traits": { + "smithy.api#documentation": "

The value that the service uses for the parameter when you do not supply one.

" + } + }, + "Immutable": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether you can change the parameter value after you create the role.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines a parameter that a role template accepts. You supply values for these parameters\n when you create a role with AcquireRole.

" + } + }, + "com.amazonaws.iam#PasswordPolicy": { + "type": "structure", + "members": { + "MinimumPasswordLength": { + "target": "com.amazonaws.iam#minimumPasswordLengthType", + "traits": { + "smithy.api#documentation": "

Minimum length to require for IAM user passwords.

" + } + }, + "RequireSymbols": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one of the following\n symbols:

\n

! @ # $ % ^ & * ( ) _ + - = [ ] { } | '

" + } + }, + "RequireNumbers": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one numeric character (0 to\n 9).

" + } + }, + "RequireUppercaseCharacters": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one uppercase character (A\n to Z).

" + } + }, + "RequireLowercaseCharacters": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one lowercase character (a\n to z).

" + } + }, + "AllowUsersToChangePassword": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM users are allowed to change their own password. Gives IAM\n users permissions to iam:ChangePassword for only their user and to the\n iam:GetAccountPasswordPolicy action. This option does not attach a\n permissions policy to each user, rather the permissions are applied at the account-level\n for all users by IAM.

" + } + }, + "ExpirePasswords": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether passwords in the account expire. Returns true if\n MaxPasswordAge contains a value greater than 0. Returns false if\n MaxPasswordAge is 0 or not present.

" + } + }, + "MaxPasswordAge": { + "target": "com.amazonaws.iam#maxPasswordAgeType", + "traits": { + "smithy.api#documentation": "

The number of days that an IAM user password is valid.

" + } + }, + "PasswordReusePrevention": { + "target": "com.amazonaws.iam#passwordReusePreventionType", + "traits": { + "smithy.api#documentation": "

Specifies the number of previous passwords that IAM users are prevented from\n reusing.

" + } + }, + "HardExpiry": { + "target": "com.amazonaws.iam#booleanObjectType", + "traits": { + "smithy.api#documentation": "

Specifies whether IAM users are prevented from setting a new password via the\n Amazon Web Services Management Console after their password has expired. The IAM user cannot access the console until\n an administrator resets the password. IAM users with iam:ChangePassword\n permission and active access keys can reset their own expired console password using the\n CLI or API.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the account password policy.

\n

This data type is used as a response element in the GetAccountPasswordPolicy operation.

" + } + }, + "com.amazonaws.iam#PasswordPolicyViolationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#passwordPolicyViolationMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "PasswordPolicyViolation", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the provided password did not meet the requirements\n imposed by the account password policy.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#PermissionsBoundaryAttachmentType": { + "type": "enum", + "members": { + "Policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PermissionsBoundaryPolicy" + } + } + } + }, + "com.amazonaws.iam#PermissionsBoundaryDecisionDetail": { + "type": "structure", + "members": { + "AllowedByPermissionsBoundary": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether an action is allowed by a permissions boundary that is applied to an\n IAM entity (user or role). A value of true means that the permissions\n boundary does not deny the action. This means that the policy includes an\n Allow statement that matches the request. In this case, if an\n identity-based policy also allows the action, the request is allowed. A value of\n false means that either the requested action is not allowed (implicitly\n denied) or that the action is explicitly denied by the permissions boundary. In both of\n these cases, the action is not allowed, regardless of the identity-based policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the effect that a permissions boundary has on a policy\n simulation when the boundary is applied to an IAM entity.

" + } + }, + "com.amazonaws.iam#Policy": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The friendly name (not ARN) identifying the policy.

" + } + }, + "PolicyId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the policy.

\n

For more information about IDs, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType" + }, + "Path": { + "target": "com.amazonaws.iam#policyPathType", + "traits": { + "smithy.api#documentation": "

The path to the policy.

\n

For more information about paths, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "DefaultVersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

The identifier for the version of the policy that is set as the default version.

" + } + }, + "AttachmentCount": { + "target": "com.amazonaws.iam#attachmentCountType", + "traits": { + "smithy.api#documentation": "

The number of entities (users, groups, and roles) that the policy is attached to.

" + } + }, + "PermissionsBoundaryUsageCount": { + "target": "com.amazonaws.iam#attachmentCountType", + "traits": { + "smithy.api#documentation": "

The number of entities (users and roles) for which the policy is used to set the\n permissions boundary.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "IsAttachable": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the policy can be attached to an IAM user, group, or role.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#policyDescriptionType", + "traits": { + "smithy.api#documentation": "

A friendly description of the policy.

\n

This element is included in the response to the GetPolicy operation. It is not\n included in the response to the ListPolicies operation.\n

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the policy was created.

" + } + }, + "UpdateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the policy was last updated.

\n

When a policy has only one version, this field contains the date and time when the\n policy was created. When a policy has more than one version, this field contains the date\n and time when the most recent policy version was created.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the instance profile. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a managed policy.

\n

This data type is used as a response element in the CreatePolicy, GetPolicy,\n and ListPolicies operations.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#PolicyDetail": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy.

" + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM policy, including the policy document.

\n

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + } + }, + "com.amazonaws.iam#PolicyEvaluationDecisionType": { + "type": "enum", + "members": { + "ALLOWED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allowed" + } + }, + "EXPLICIT_DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "explicitDeny" + } + }, + "IMPLICIT_DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "implicitDeny" + } + } + } + }, + "com.amazonaws.iam#PolicyEvaluationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#policyEvaluationErrorMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "PolicyEvaluation", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request failed because a provided policy could not be successfully evaluated. An\n additional detailed message indicates the source of the failure.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.iam#PolicyExclusionsListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.iam#PolicyGrantingServiceAccess": { + "type": "structure", + "members": { + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The policy name.

", + "smithy.api#required": {} + } + }, + "PolicyType": { + "target": "com.amazonaws.iam#policyType", + "traits": { + "smithy.api#documentation": "

The policy type. For more information about these policy types, see Managed\n policies and inline policies in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType" + }, + "EntityType": { + "target": "com.amazonaws.iam#policyOwnerEntityType", + "traits": { + "smithy.api#documentation": "

The type of entity (user or role) that used the policy to access the service to which\n the inline policy is attached.

\n

This field is null for managed policies. For more information about these policy types,\n see Managed policies and inline policies in the\n IAM User Guide.

" + } + }, + "EntityName": { + "target": "com.amazonaws.iam#entityNameType", + "traits": { + "smithy.api#documentation": "

The name of the entity (user or role) to which the inline policy is attached.

\n

This field is null for managed policies. For more information about these policy types,\n see Managed policies and inline policies in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the permissions policies that are attached to the specified\n identity (user, group, or role).

\n

This data type is an element of the ListPoliciesGrantingServiceAccessEntry object.

" + } + }, + "com.amazonaws.iam#PolicyGroup": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the group.

" + } + }, + "GroupId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the group. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a group that a managed policy is attached to.

\n

This data type is used as a response element in the ListEntitiesForPolicy operation.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#PolicyGroupListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyGroup" + } + }, + "com.amazonaws.iam#PolicyIdentifier": { + "type": "union", + "members": { + "PolicyType": { + "target": "com.amazonaws.iam#PolicyIdentifierPolicyType", + "traits": { + "smithy.api#documentation": "

The policy type to identify. All policies of the specified type are matched.

" + } + }, + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Web Services managed policy or a customer managed policy\n that is attached to an IAM user, group, or role. Wildcard characters are supported in\n the resource name portion of the ARN to match multiple managed policies: use at most one\n * (matches any sequence of characters, including none), and any number of\n ? (each matches exactly one character).

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "InlinePolicyIdentifier": { + "target": "com.amazonaws.iam#InlinePolicyIdentifierType", + "traits": { + "smithy.api#documentation": "

An inline policy identifier consisting of a policy name and the entity it is attached\n to. Wildcard characters (* and ?) in the entity name can match\n multiple entities.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies one or more policies as a union type. Specify exactly one of\n PolicyType, PolicyArn, or\n InlinePolicyIdentifier to identify policies by their type, by Amazon\n Resource Name (ARN), or by the name of an inline policy and the entity it is attached\n to.

" + } + }, + "com.amazonaws.iam#PolicyIdentifierPolicyType": { + "type": "enum", + "members": { + "INLINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inline" + } + }, + "AWS_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws-managed" + } + }, + "USER_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user-managed" + } + }, + "PERMISSION_BOUNDARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "permission-boundary" + } + }, + "SCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scp" + } + }, + "RCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rcp" + } + } + } + }, + "com.amazonaws.iam#PolicyIdentifierType": { + "type": "string" + }, + "com.amazonaws.iam#PolicyNotAttachableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#policyNotAttachableMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "PolicyNotAttachable", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request failed because Amazon Web Services service role policies can only be attached to the\n service-linked role for that service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#PolicyParameter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.iam#policyParameterNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy parameter.

" + } + }, + "Values": { + "target": "com.amazonaws.iam#policyParameterValuesListType", + "traits": { + "smithy.api#documentation": "

The allowed values for the policy parameter.

" + } + }, + "Type": { + "target": "com.amazonaws.iam#PolicyParameterTypeEnum", + "traits": { + "smithy.api#documentation": "

The data type of the policy parameter value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a policy parameter used to customize delegated permissions.

" + } + }, + "com.amazonaws.iam#PolicyParameterTypeEnum": { + "type": "enum", + "members": { + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "string" + } + }, + "STRING_LIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stringList" + } + } + } + }, + "com.amazonaws.iam#PolicyRole": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the role.

" + } + }, + "RoleId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the role. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a role that a managed policy is attached to.

\n

This data type is used as a response element in the ListEntitiesForPolicy operation.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#PolicyRoleListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyRole" + } + }, + "com.amazonaws.iam#PolicySourceType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "group" + } + }, + "ROLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "role" + } + }, + "AWS_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws-managed" + } + }, + "USER_MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user-managed" + } + }, + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + } + } + }, + "com.amazonaws.iam#PolicyUsageType": { + "type": "enum", + "members": { + "PermissionsPolicy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PermissionsPolicy" + } + }, + "PermissionsBoundary": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PermissionsBoundary" + } + } + }, + "traits": { + "smithy.api#documentation": "

The policy usage type that indicates whether the policy is used as a permissions policy\n or as the permissions boundary for an entity.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#PolicyUser": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) identifying the user.

" + } + }, + "UserId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the user. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a user that a managed policy is attached to.

\n

This data type is used as a response element in the ListEntitiesForPolicy operation.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#PolicyUserListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyUser" + } + }, + "com.amazonaws.iam#PolicyVersion": { + "type": "structure", + "members": { + "Document": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

The policy document is returned in the response to the GetPolicyVersion and\n GetAccountAuthorizationDetails operations. It is not returned in the response\n to the CreatePolicyVersion\n or ListPolicyVersions operations.

\n

The policy document returned in this structure is URL-encoded compliant with RFC 3986. You can use a URL decoding\n method to convert the policy back to plain JSON text. For example, if you use Java, you can\n use the decode method of the java.net.URLDecoder utility class in\n the Java SDK. Other languages and SDKs provide similar functionality.

" + } + }, + "VersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

The identifier for the policy version.

\n

Policy version identifiers always begin with v (always lowercase). When a\n policy is created, the first policy version is v1.

" + } + }, + "IsDefaultVersion": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the policy version is set as the policy's default version.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the policy version was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a version of a managed policy.

\n

This data type is used as a response element in the CreatePolicyVersion,\n GetPolicyVersion, ListPolicyVersions,\n and GetAccountAuthorizationDetails operations.

\n

For more information about managed policies, refer to Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#Position": { + "type": "structure", + "members": { + "Line": { + "target": "com.amazonaws.iam#LineNumber", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The line containing the specified position in the document.

" + } + }, + "Column": { + "target": "com.amazonaws.iam#ColumnNumber", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The column in the line containing the specified position in the document.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the row and column of a location of a Statement element in a\n policy document.

\n

This data type is used as a member of the \n Statement\n type.

" + } + }, + "com.amazonaws.iam#PutAccountProperties": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutAccountPropertiesRequest" + }, + "output": { + "target": "com.amazonaws.iam#PutAccountPropertiesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets account-level properties for the caller's Amazon Web Services account. Account properties are\n configuration settings that control account-wide IAM features such as Role\n Manager.

\n

Specify properties as key-value pairs in\n Namespace/PropertyName format. All properties in a single request must\n belong to the same namespace. Use GetAccountProperties to view the current properties.

" + } + }, + "com.amazonaws.iam#PutAccountPropertiesRequest": { + "type": "structure", + "members": { + "Properties": { + "target": "com.amazonaws.iam#accountPropertiesMapType", + "traits": { + "smithy.api#documentation": "

A map of property key-value pairs to set. All keys must belong to the same\n namespace.

\n

Each key uses the format Namespace/PropertyName. The key must contain\n exactly one / separating the namespace from the property name, and cannot\n start or end with /.

\n

The service validates each value based on the property key's expected type. For\n example, boolean properties expect true or false.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#PutAccountPropertiesResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#PutGroupPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutGroupPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates an inline policy document that is embedded in the specified IAM\n group.

\n

A user can also have managed policies attached to it. To attach a managed policy to a\n group, use \n AttachGroupPolicy\n . To create a new managed policy, use\n \n CreatePolicy\n . For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

For information about the maximum number of inline policies that you can embed in a\n group, see IAM and STS quotas in the IAM User Guide.

\n \n

Because policy documents can be large, you should use POST rather than GET when\n calling PutGroupPolicy. For general information about using the Query\n API with IAM, see Making query requests in the\n IAM User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To add a policy to a group", + "documentation": "The following command adds a policy named IAMReadAccess to the IAM group named PowerUsers.", + "input": { + "GroupName": "PowerUsers", + "PolicyName": "IAMReadAccess", + "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":[\"iam:Get*\",\"iam:List*\",\"iam:Generate*\"],\"Resource\":\"*\"}}" + } + } + ] + } + }, + "com.amazonaws.iam#PutGroupPolicyRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group to associate the policy with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation templates\n formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always\n converts a YAML policy to JSON format before submitting it to IAM.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#PutRolePermissionsBoundary": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutRolePermissionsBoundaryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyNotAttachableException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates the policy that is specified as the IAM role's permissions boundary.\n You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for\n a role. Use the boundary to control the maximum permissions that the role can have.\n Setting a permissions boundary is an advanced feature that can affect the permissions\n for the role.

\n

You cannot set the boundary for a service-linked role.

\n \n

Policies used as permissions boundaries do not provide permissions. You must also\n attach a permissions policy to the role. To learn how the effective permissions for\n a role are evaluated, see IAM JSON policy\n evaluation logic in the IAM User Guide.

\n
" + } + }, + "com.amazonaws.iam#PutRolePermissionsBoundaryRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM role for which you want to set the\n permissions boundary.

", + "smithy.api#required": {} + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the managed policy that is used to set the permissions boundary for the\n role.

\n

A permissions boundary policy defines the maximum permissions that identity-based\n policies can grant to an entity, but does not grant permissions. Permissions boundaries\n do not define the maximum permissions that a resource-based policy can grant to an\n entity. To learn more, see Permissions boundaries\n for IAM entities in the IAM User Guide.

\n

For more information about policy types, see Policy types\n in the IAM User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#PutRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutRolePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates an inline policy document that is embedded in the specified IAM\n role.

\n

When you embed an inline policy in a role, the inline policy is used as part of the\n role's access (permissions) policy. The role's trust policy is created at the same time\n as the role, using \n CreateRole\n .\n You can update a role's trust policy using \n UpdateAssumeRolePolicy\n . For more information about roles,\n see IAM\n roles in the IAM User Guide.

\n

A role can also have a managed policy attached to it. To attach a managed policy to a\n role, use \n AttachRolePolicy\n . To create a new managed policy, use\n \n CreatePolicy\n . For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

For information about the maximum number of inline policies that you can embed with a\n role, see IAM and STS quotas in the IAM User Guide.

\n \n

Because policy documents can be large, you should use POST rather than GET when\n calling PutRolePolicy. For general information about using the Query\n API with IAM, see Making query requests in the\n IAM User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To attach a permissions policy to an IAM role", + "documentation": "The following command adds a permissions policy to the role named Test-Role.", + "input": { + "RoleName": "S3Access", + "PolicyName": "S3AccessPolicy", + "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}}" + } + } + ] + } + }, + "com.amazonaws.iam#PutRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to associate the policy with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation\n templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#PutUserPermissionsBoundary": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutUserPermissionsBoundaryRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyNotAttachableException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates the policy that is specified as the IAM user's permissions\n boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the\n boundary for a user. Use the boundary to control the maximum permissions that the user\n can have. Setting a permissions boundary is an advanced feature that can affect the\n permissions for the user.

\n \n

Policies that are used as permissions boundaries do not provide permissions. You\n must also attach a permissions policy to the user. To learn how the effective\n permissions for a user are evaluated, see IAM JSON policy\n evaluation logic in the IAM User Guide.

\n
" + } + }, + "com.amazonaws.iam#PutUserPermissionsBoundaryRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name (friendly name, not ARN) of the IAM user for which you want to set the\n permissions boundary.

", + "smithy.api#required": {} + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the managed policy that is used to set the permissions boundary for the\n user.

\n

A permissions boundary policy defines the maximum permissions that identity-based\n policies can grant to an entity, but does not grant permissions. Permissions boundaries\n do not define the maximum permissions that a resource-based policy can grant to an\n entity. To learn more, see Permissions boundaries\n for IAM entities in the IAM User Guide.

\n

For more information about policy types, see Policy types\n in the IAM User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#PutUserPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#PutUserPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates an inline policy document that is embedded in the specified IAM\n user.

\n

An IAM user can also have a managed policy attached to it. To attach a managed\n policy to a user, use \n AttachUserPolicy\n . To create a new managed policy, use\n \n CreatePolicy\n . For information about policies, see Managed\n policies and inline policies in the\n IAM User Guide.

\n

For information about the maximum number of inline policies that you can embed in a\n user, see IAM and STS quotas in the IAM User Guide.

\n \n

Because policy documents can be large, you should use POST rather than GET when\n calling PutUserPolicy. For general information about using the Query\n API with IAM, see Making query requests in the\n IAM User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To attach a policy to an IAM user", + "documentation": "The following command attaches a policy to the IAM user named Bob.", + "input": { + "UserName": "Bob", + "PolicyName": "AllAccessPolicy", + "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"*\",\"Resource\":\"*\"}}" + } + } + ] + } + }, + "com.amazonaws.iam#PutUserPolicyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to associate the policy with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.iam#policyNameType", + "traits": { + "smithy.api#documentation": "

The name of the policy document.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy document.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation\n templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ReasonType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.iam#RegionNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.iam#RejectDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#RejectDelegationRequestRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Rejects a delegation request, denying the requested temporary access.

\n

Once a request is rejected, it cannot be accepted or updated later. Rejected requests expire after 7 days.

\n

When rejecting a request, an optional explanation can be added using the Notes request parameter.

\n

\n For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#RejectDelegationRequestRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request to reject.

", + "smithy.api#required": {} + } + }, + "Notes": { + "target": "com.amazonaws.iam#notesType", + "traits": { + "smithy.api#documentation": "

Optional notes explaining the reason for rejecting the delegation request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#RemoveClientIDFromOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#RemoveClientIDFromOpenIDConnectProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified client ID (also known as audience) from the list of client IDs\n registered for the specified IAM OpenID Connect (OIDC) provider resource\n object.

\n

This operation is idempotent; it does not fail or return an error if you try to remove\n a client ID that does not exist.

" + } + }, + "com.amazonaws.iam#RemoveClientIDFromOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove the\n client ID from. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "ClientID": { + "target": "com.amazonaws.iam#clientIDType", + "traits": { + "smithy.api#documentation": "

The client ID (also known as audience) to remove from the IAM OIDC provider\n resource. For more information about client IDs, see CreateOpenIDConnectProvider.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#RemoveRoleFromInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#RemoveRoleFromInstanceProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified IAM role from the specified Amazon EC2 instance profile.

\n \n

Make sure that you do not have any Amazon EC2 instances running with the role you are\n about to remove from the instance profile. Removing a role from an instance profile\n that is associated with a running instance might break any applications running on\n the instance.

\n
\n

For more information about roles, see IAM roles in the\n IAM User Guide. For more information about instance profiles,\n see Using\n instance profiles in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove a role from an instance profile", + "documentation": "The following command removes the role named Test-Role from the instance profile named ExampleInstanceProfile.", + "input": { + "RoleName": "Test-Role", + "InstanceProfileName": "ExampleInstanceProfile" + } + } + ] + } + }, + "com.amazonaws.iam#RemoveRoleFromInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the instance profile to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to remove.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#RemoveUserFromGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#RemoveUserFromGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified user from the specified group.

", + "smithy.api#examples": [ + { + "title": "To remove a user from an IAM group", + "documentation": "The following command removes the user named Bob from the IAM group named Admins.", + "input": { + "UserName": "Bob", + "GroupName": "Admins" + } + } + ] + } + }, + "com.amazonaws.iam#RemoveUserFromGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

The name of the group to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user to remove.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ReplacementValueEntry": { + "type": "structure", + "members": { + "Values": { + "target": "com.amazonaws.iam#replacementValueListType", + "traits": { + "smithy.api#documentation": "

The list of replacement values for the template parameter.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the list of replacement values for a single template parameter used when\n creating a role from a role template.

" + } + }, + "com.amazonaws.iam#ReportContentType": { + "type": "blob" + }, + "com.amazonaws.iam#ReportFormatType": { + "type": "enum", + "members": { + "text_csv": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "text/csv" + } + } + } + }, + "com.amazonaws.iam#ReportGenerationLimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#reportGenerationLimitExceededMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReportGenerationLimitExceeded", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request failed because the maximum number of concurrent requests for this account are\n already running.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#ReportStateDescriptionType": { + "type": "string" + }, + "com.amazonaws.iam#ReportStateType": { + "type": "enum", + "members": { + "STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STARTED" + } + }, + "INPROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INPROGRESS" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + } + } + }, + "com.amazonaws.iam#ResetServiceSpecificCredential": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ResetServiceSpecificCredentialRequest" + }, + "output": { + "target": "com.amazonaws.iam#ResetServiceSpecificCredentialResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Resets the password for a service-specific credential. The new password is Amazon Web Services\n generated and cryptographically strong. It cannot be configured by the user. Resetting\n the password immediately invalidates the previous password associated with this\n user.

" + } + }, + "com.amazonaws.iam#ResetServiceSpecificCredentialRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the service-specific credential. If this\n value is not specified, then the operation assumes the user whose credentials are used\n to call the operation.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "ServiceSpecificCredentialId": { + "target": "com.amazonaws.iam#serviceSpecificCredentialId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the service-specific credential.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ResetServiceSpecificCredentialResponse": { + "type": "structure", + "members": { + "ServiceSpecificCredential": { + "target": "com.amazonaws.iam#ServiceSpecificCredential", + "traits": { + "smithy.api#documentation": "

A structure with details about the updated service-specific credential, including the\n new password.

\n \n

This is the only time that you can access the\n password. You cannot recover the password later, but you can reset it again.

\n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#ResourceHandlingOptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.iam#ResourceNameListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ResourceNameType" + } + }, + "com.amazonaws.iam#ResourceNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.iam#ResourceSpecificResult": { + "type": "structure", + "members": { + "EvalResourceName": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

The name of the simulated resource, in Amazon Resource Name (ARN) format.

", + "smithy.api#required": {} + } + }, + "EvalResourceDecision": { + "target": "com.amazonaws.iam#PolicyEvaluationDecisionType", + "traits": { + "smithy.api#documentation": "

The result of the simulation of the simulated API operation on the resource specified in\n EvalResourceName.

", + "smithy.api#required": {} + } + }, + "MatchedStatements": { + "target": "com.amazonaws.iam#StatementListType", + "traits": { + "smithy.api#documentation": "

A list of the statements in the input policies that determine the result for this part\n of the simulation. Remember that even if multiple statements allow the operation on the\n resource, if any statement denies that operation, then the explicit\n deny overrides any allow. In addition, the deny statement is the only entry included in the\n result.

" + } + }, + "MissingContextValues": { + "target": "com.amazonaws.iam#ContextKeyNamesResultListType", + "traits": { + "smithy.api#documentation": "

A list of context keys that are required by the included input policies but that were\n not provided by one of the input parameters. This list is used when a list of ARNs is\n included in the ResourceArns parameter instead of \"*\". If you do not specify\n individual resources, by setting ResourceArns to \"*\" or by not including the\n ResourceArns parameter, then any missing context values are instead\n included under the EvaluationResults section. To discover the context keys\n used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.

" + } + }, + "EvalDecisionDetails": { + "target": "com.amazonaws.iam#EvalDecisionDetailsType", + "traits": { + "smithy.api#documentation": "

Additional details about the results of the evaluation decision on a single resource.\n This parameter is returned only for cross-account simulations. This parameter explains how\n each policy type contributes to the resource-specific evaluation decision.

" + } + }, + "PermissionsBoundaryDecisionDetail": { + "target": "com.amazonaws.iam#PermissionsBoundaryDecisionDetail", + "traits": { + "smithy.api#documentation": "

Contains information about the effect that a permissions boundary has on a policy\n simulation when that boundary is applied to an IAM entity.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of the simulation of a single API operation call on a single\n resource.

\n

This data type is used by a member of the EvaluationResult data\n type.

" + } + }, + "com.amazonaws.iam#ResourceSpecificResultListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ResourceSpecificResult" + } + }, + "com.amazonaws.iam#ResyncMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ResyncMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidAuthenticationCodeException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Synchronizes the specified MFA device with its IAM resource object on the Amazon Web Services\n servers.

\n

For more information about creating and working with virtual MFA devices, see Using a virtual MFA\n device in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#ResyncMFADeviceRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose MFA device you want to resynchronize.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

Serial number that uniquely identifies the MFA device.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "AuthenticationCode1": { + "target": "com.amazonaws.iam#authenticationCodeType", + "traits": { + "smithy.api#documentation": "

An authentication code emitted by the device.

\n

The format for this parameter is a sequence of six digits.

", + "smithy.api#required": {} + } + }, + "AuthenticationCode2": { + "target": "com.amazonaws.iam#authenticationCodeType", + "traits": { + "smithy.api#documentation": "

A subsequent authentication code emitted by the device.

\n

The format for this parameter is a sequence of six digits.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#Role": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the role. For more information about paths, see IAM identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the role.

", + "smithy.api#required": {} + } + }, + "RoleId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the role. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and\n how to use them in policies, see IAM identifiers in the\n IAM User Guide guide.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the role was created.

", + "smithy.api#required": {} + } + }, + "AssumeRolePolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy that grants an entity permission to assume the role.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#roleDescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the role that you provide.

" + } + }, + "MaxSessionDuration": { + "target": "com.amazonaws.iam#roleMaxSessionDurationType", + "traits": { + "smithy.api#documentation": "

The maximum session duration (in seconds) for the specified role. Anyone who uses the\n CLI, or API to assume the role can specify the duration using the optional\n DurationSeconds API parameter or duration-seconds CLI\n parameter.

" + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#AttachedPermissionsBoundary", + "traits": { + "smithy.api#documentation": "

The ARN of the policy used to set the permissions boundary for the role.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "RoleLastUsed": { + "target": "com.amazonaws.iam#RoleLastUsed", + "traits": { + "smithy.api#documentation": "

Contains information about the last time that an IAM role was used. This includes the\n date and time and the Region in which the role was last used. Activity is only reported for\n the trailing 400 days. This period can be shorter if your Region began supporting these\n features within the last year. The role might have been used more than 400 days ago. For\n more information, see Regions where data is tracked in the IAM user\n Guide.

" + } + }, + "SourceRoleTemplate": { + "target": "com.amazonaws.iam#SourceRoleTemplate", + "traits": { + "smithy.api#documentation": "

Contains information about the role template that this role was created from. This\n member is present only for roles created with AcquireRole.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM role. This structure is returned as a response\n element in several API operations that interact with roles.

" + } + }, + "com.amazonaws.iam#RoleDetail": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the role. For more information about paths, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the role.

" + } + }, + "RoleId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the role. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType" + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the role was created.

" + } + }, + "AssumeRolePolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The trust policy that grants permission to assume the role.

" + } + }, + "InstanceProfileList": { + "target": "com.amazonaws.iam#instanceProfileListType", + "traits": { + "smithy.api#documentation": "

A list of instance profiles that contain this role.

" + } + }, + "RolePolicyList": { + "target": "com.amazonaws.iam#policyDetailListType", + "traits": { + "smithy.api#documentation": "

A list of inline policies embedded in the role. These policies are the role's access\n (permissions) policies.

" + } + }, + "AttachedManagedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of managed policies attached to the role. These policies are the role's access\n (permissions) policies.

" + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#AttachedPermissionsBoundary", + "traits": { + "smithy.api#documentation": "

The ARN of the policy used to set the permissions boundary for the role.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "RoleLastUsed": { + "target": "com.amazonaws.iam#RoleLastUsed", + "traits": { + "smithy.api#documentation": "

Contains information about the last time that an IAM role was used. This includes the\n date and time and the Region in which the role was last used. Activity is only reported for\n the trailing 400 days. This period can be shorter if your Region began supporting these\n features within the last year. The role might have been used more than 400 days ago. For\n more information, see Regions where data is tracked in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM role, including all of the role's policies.

\n

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + } + }, + "com.amazonaws.iam#RoleLastUsed": { + "type": "structure", + "members": { + "LastUsedDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format that the role was last used.

\n

This field is null if the role has not been used within the IAM tracking period. For\n more information about the tracking period, see Regions where data is tracked in the IAM User Guide.\n

" + } + }, + "Region": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Web Services Region in which the role was last used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the last time that an IAM role was used. This includes the\n date and time and the Region in which the role was last used. Activity is only reported for\n the trailing 400 days. This period can be shorter if your Region began supporting these\n features within the last year. The role might have been used more than 400 days ago. For\n more information, see Regions where data is tracked in the IAM user\n Guide.

\n

This data type is returned as a response element in the GetRole and GetAccountAuthorizationDetails operations.

" + } + }, + "com.amazonaws.iam#RoleModifiedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#roleModifiedMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "RoleModified", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because someone modified the role template while the service was\n creating the role. Wait a few minutes and try the request again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.iam#RoleTemplateDisabledException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#roleTemplateDisabledMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "RoleTemplateDisabled", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified role template is disabled. A disabled\n role template cannot be used to create new roles. Contact your administrator to enable the\n role template, or use a different role template.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#RoleTemplateVersion": { + "type": "structure", + "members": { + "TemplateArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the role template.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "TemplateName": { + "target": "com.amazonaws.iam#roleTemplateNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the role template.

" + } + }, + "TemplateVersionId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The identifier of the role template version.

" + } + }, + "Description": { + "target": "com.amazonaws.iam#roleTemplateDescriptionType", + "traits": { + "smithy.api#documentation": "

The description of the role template.

" + } + }, + "MajorVersion": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The major version number of the role template.

" + } + }, + "DefaultMinorVersion": { + "target": "com.amazonaws.iam#minorVersionType", + "traits": { + "smithy.api#documentation": "

The minor version that the service uses by default when you create a role from this template\n without specifying a minor version.

" + } + }, + "ManagedByType": { + "target": "com.amazonaws.iam#managedByTypeType", + "traits": { + "smithy.api#documentation": "

Indicates that the role template is managed by an Amazon Web Services service.

" + } + }, + "ManagedByValue": { + "target": "com.amazonaws.iam#managedByValueType", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Web Services service that manages the role template.

" + } + }, + "Enabled": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the role template is enabled. When a template is disabled, you cannot\n create roles from it.

" + } + }, + "MinorVersion": { + "target": "com.amazonaws.iam#minorVersionType", + "traits": { + "smithy.api#documentation": "

The minor version number of this role template version.

" + } + }, + "RoleNamePattern": { + "target": "com.amazonaws.iam#roleNamePatternType", + "traits": { + "smithy.api#documentation": "

The pattern that is used to generate the name of a role that is created from this\n template. The pattern can include @{parameter} placeholders that are replaced\n with the values you supply in the ReplacementValues parameter of AcquireRole.

" + } + }, + "RolePathPattern": { + "target": "com.amazonaws.iam#rolePathPatternType", + "traits": { + "smithy.api#documentation": "

The pattern that is used to generate the path of a role that is created from this\n template.

" + } + }, + "RoleDescriptionPattern": { + "target": "com.amazonaws.iam#roleDescriptionPatternType", + "traits": { + "smithy.api#documentation": "

The pattern that is used to generate the description of a role that is created from this\n template.

" + } + }, + "AssumeRolePolicyDocumentTemplate": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The trust policy template that grants an entity permission to assume roles that you\n create from this template.

" + } + }, + "InlinePolicyTemplates": { + "target": "com.amazonaws.iam#inlinePolicyTemplateListType", + "traits": { + "smithy.api#documentation": "

A list of inline policy templates that the service embeds in roles that you create from\n this template.

" + } + }, + "ManagedPolicyArns": { + "target": "com.amazonaws.iam#managedPolicyArnListType", + "traits": { + "smithy.api#documentation": "

A list of the ARNs of the managed policies that the service attaches to roles that you\n create from this template.

" + } + }, + "PermissionBoundaryArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the policy that sets the permissions boundary for roles that you create from\n this template.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "ParametersDefinition": { + "target": "com.amazonaws.iam#parametersDefinitionListType", + "traits": { + "smithy.api#documentation": "

A list of the parameters that are defined for this role template version. You supply\n values for these parameters when you create a role with AcquireRole.

" + } + }, + "RoleTagsTemplate": { + "target": "com.amazonaws.iam#tagTemplateListType", + "traits": { + "smithy.api#documentation": "

A list of tag templates that are applied to roles that are created from this\n template.

" + } + }, + "MaxSessionDuration": { + "target": "com.amazonaws.iam#roleMaxSessionDurationType", + "traits": { + "smithy.api#documentation": "

The maximum session duration (in seconds) for roles that are created from this\n template.

" + } + }, + "VersionEnabled": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether this specific minor version of the role template is enabled.

" + } + }, + "CreateTimestamp": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the role template version was created.

" + } + }, + "UpdateTimestamp": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the role template version was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a version of an IAM role template, including the\n configuration that is used to create roles with AcquireRole. This structure\n is returned as a response element by the GetRoleTemplateVersion operation.

" + } + }, + "com.amazonaws.iam#RoleUsageListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#RoleUsageType" + } + }, + "com.amazonaws.iam#RoleUsageType": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.iam#RegionNameType", + "traits": { + "smithy.api#documentation": "

The name of the Region where the service-linked role is being used.

" + } + }, + "Resources": { + "target": "com.amazonaws.iam#ArnListType", + "traits": { + "smithy.api#documentation": "

The name of the resource that is using the service-linked role.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains details about how a service-linked role is used, if that\n information is returned by the service.

\n

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

" + } + }, + "com.amazonaws.iam#SAMLMetadataDocumentType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1000, + "max": 10000000 + } + } + }, + "com.amazonaws.iam#SAMLPrivateKey": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.iam#privateKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SAML private key.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the private key was uploaded.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the private keys for the SAML provider.

\n

This data type is used as a response element in the GetSAMLProvider\n operation.

" + } + }, + "com.amazonaws.iam#SAMLProviderListEntry": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SAML provider.

" + } + }, + "ValidUntil": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The expiration date and time for the SAML provider.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the SAML provider was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the list of SAML providers for this account.

" + } + }, + "com.amazonaws.iam#SAMLProviderListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#SAMLProviderListEntry" + } + }, + "com.amazonaws.iam#SAMLProviderNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w._-]+$" + } + }, + "com.amazonaws.iam#SSHPublicKey": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the SSH public key.

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyId": { + "target": "com.amazonaws.iam#publicKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SSH public key.

", + "smithy.api#required": {} + } + }, + "Fingerprint": { + "target": "com.amazonaws.iam#publicKeyFingerprintType", + "traits": { + "smithy.api#documentation": "

The MD5 message digest of the SSH public key.

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyBody": { + "target": "com.amazonaws.iam#publicKeyMaterialType", + "traits": { + "smithy.api#documentation": "

The SSH public key.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the SSH public key. Active means that the key can be used for\n authentication with an CodeCommit repository. Inactive means that the key cannot be\n used.

", + "smithy.api#required": {} + } + }, + "UploadDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the SSH public key was uploaded.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an SSH public key.

\n

This data type is used as a response element in the GetSSHPublicKey and\n UploadSSHPublicKey operations.

" + } + }, + "com.amazonaws.iam#SSHPublicKeyListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#SSHPublicKeyMetadata" + } + }, + "com.amazonaws.iam#SSHPublicKeyMetadata": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the SSH public key.

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyId": { + "target": "com.amazonaws.iam#publicKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SSH public key.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the SSH public key. Active means that the key can be used for\n authentication with an CodeCommit repository. Inactive means that the key cannot be\n used.

", + "smithy.api#required": {} + } + }, + "UploadDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the SSH public key was uploaded.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an SSH public key, without the key's body or\n fingerprint.

\n

This data type is used as a response element in the ListSSHPublicKeys\n operation.

" + } + }, + "com.amazonaws.iam#SendDelegationToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#SendDelegationTokenRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Sends the exchange token for an accepted delegation request.

\n

The exchange token is sent to the partner via an asynchronous notification channel, established by the partner.

\n

The delegation request must be in the ACCEPTED state when calling this API. After the\n SendDelegationToken API\n call is successful, the request transitions to a FINALIZED state and cannot be rolled back. However, a user may reject\n an accepted request before the SendDelegationToken API is called.

\n

\n For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#SendDelegationTokenRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request for which to send the token.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ServerCertificate": { + "type": "structure", + "members": { + "ServerCertificateMetadata": { + "target": "com.amazonaws.iam#ServerCertificateMetadata", + "traits": { + "smithy.api#documentation": "

The meta information of the server certificate, such as its name, path, ID, and\n ARN.

", + "smithy.api#required": {} + } + }, + "CertificateBody": { + "target": "com.amazonaws.iam#certificateBodyType", + "traits": { + "smithy.api#documentation": "

The contents of the public key certificate.

", + "smithy.api#required": {} + } + }, + "CertificateChain": { + "target": "com.amazonaws.iam#certificateChainType", + "traits": { + "smithy.api#documentation": "

The contents of the public key certificate chain.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the server certificate. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a server certificate.

\n

This data type is used as a response element in the GetServerCertificate\n operation.

" + } + }, + "com.amazonaws.iam#ServerCertificateMetadata": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the server certificate. For more information about paths, see IAM\n identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name that identifies the server certificate.

", + "smithy.api#required": {} + } + }, + "ServerCertificateId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the server certificate. For more information\n about IDs, see IAM identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the server certificate. For more information\n about ARNs and how to use them in policies, see IAM identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "UploadDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the server certificate was uploaded.

" + } + }, + "Expiration": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date on which the certificate is set to expire.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a server certificate without its certificate body,\n certificate chain, and private key.

\n

This data type is used as a response element in the UploadServerCertificate and ListServerCertificates operations.

" + } + }, + "com.amazonaws.iam#ServiceAccessNotEnabledException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the Organizations User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#ServiceFailureException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#serviceFailureExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ServiceFailure", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request processing has failed because of an unknown error, exception or\n failure.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.iam#ServiceLastAccessed": { + "type": "structure", + "members": { + "ServiceName": { + "target": "com.amazonaws.iam#serviceNameType", + "traits": { + "smithy.api#documentation": "

The name of the service in which access was attempted.

", + "smithy.api#required": {} + } + }, + "LastAuthenticated": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when an authenticated entity most recently attempted to access the\n service. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + }, + "ServiceNamespace": { + "target": "com.amazonaws.iam#serviceNamespaceType", + "traits": { + "smithy.api#documentation": "

The namespace of the service in which access was attempted.

\n

To learn the service namespace of a service, see Actions, resources, and condition keys for Amazon Web Services services in the\n Service Authorization Reference. Choose the name of the service to\n view details for that service. In the first paragraph, find the service prefix. For\n example, (service prefix: a4b). For more information about service namespaces,\n see Amazon Web Services\n Service Namespaces in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "LastAuthenticatedEntity": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the authenticated entity (user or role) that last attempted to access the\n service. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + }, + "LastAuthenticatedRegion": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The Region from which the authenticated entity (user or role) last attempted to access\n the service. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + }, + "TotalAuthenticatedEntities": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The total number of authenticated principals (root user, IAM users, or IAM roles) that\n have attempted to access the service.

\n

This field is null if no principals attempted to access the service within the tracking period.

" + } + }, + "TrackedActionsLastAccessed": { + "target": "com.amazonaws.iam#TrackedActionsLastAccessed", + "traits": { + "smithy.api#documentation": "

An object that contains details about the most recent attempt to access a tracked action\n within the service.

\n

This field is null if there no tracked actions or if the principal did not use the\n tracked actions within the tracking period. This field is also null if the report was generated at the\n service level and not the action level. For more information, see the\n Granularity field in GenerateServiceLastAccessedDetails.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the most recent attempt to access the service.

\n

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" + } + }, + "com.amazonaws.iam#ServiceNotSupportedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#serviceNotSupportedMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NotSupportedService", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified service does not support service-specific credentials.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.iam#ServiceSpecificCredential": { + "type": "structure", + "members": { + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the service-specific credential were created.

", + "smithy.api#required": {} + } + }, + "ExpirationDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the service specific credential expires. This field is only\n present for Bedrock API keys and CloudWatch Logs API keys that were created with an expiration period.

" + } + }, + "ServiceName": { + "target": "com.amazonaws.iam#serviceName", + "traits": { + "smithy.api#documentation": "

The name of the service associated with the service-specific credential.

", + "smithy.api#required": {} + } + }, + "ServiceUserName": { + "target": "com.amazonaws.iam#serviceUserName", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The generated user name for the service-specific credential. This value is generated by\n combining the IAM user's name combined with the ID number of the Amazon Web Services account, as in\n jane-at-123456789012, for example. This value cannot be configured by the\n user.

" + } + }, + "ServicePassword": { + "target": "com.amazonaws.iam#servicePassword", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The generated password for the service-specific credential.

" + } + }, + "ServiceCredentialAlias": { + "target": "com.amazonaws.iam#serviceCredentialAlias", + "traits": { + "smithy.api#documentation": "

For Bedrock API keys and CloudWatch Logs API keys, this is the public portion of the credential that includes the IAM\n user name and a suffix containing version and creation information.

" + } + }, + "ServiceCredentialSecret": { + "target": "com.amazonaws.iam#serviceCredentialSecret", + "traits": { + "smithy.api#documentation": "

For Bedrock API keys and CloudWatch Logs API keys, this is the secret portion of the credential that should be used\n to authenticate API calls. This value is returned only when the credential is\n created.

" + } + }, + "ServiceSpecificCredentialId": { + "target": "com.amazonaws.iam#serviceSpecificCredentialId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the service-specific credential.

", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the service-specific credential.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the service-specific credential. Active means that the key is\n valid for API calls, while Inactive means it is not.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of a service-specific credential.

" + } + }, + "com.amazonaws.iam#ServiceSpecificCredentialMetadata": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the service-specific credential.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the service-specific credential. Active means that the key is\n valid for API calls, while Inactive means it is not.

", + "smithy.api#required": {} + } + }, + "ServiceUserName": { + "target": "com.amazonaws.iam#serviceUserName", + "traits": { + "smithy.api#addedDefault": {}, + "smithy.api#default": "", + "smithy.api#documentation": "

The generated user name for the service-specific credential.

" + } + }, + "ServiceCredentialAlias": { + "target": "com.amazonaws.iam#serviceCredentialAlias", + "traits": { + "smithy.api#documentation": "

For Bedrock API keys and CloudWatch Logs API keys, this is the public portion of the credential that includes the IAM\n user name and a suffix containing version and creation information.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the service-specific credential were created.

", + "smithy.api#required": {} + } + }, + "ExpirationDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time when the service specific credential expires. This field is only\n present for Bedrock API keys and CloudWatch Logs API keys that were created with an expiration period.

" + } + }, + "ServiceSpecificCredentialId": { + "target": "com.amazonaws.iam#serviceSpecificCredentialId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the service-specific credential.

", + "smithy.api#required": {} + } + }, + "ServiceName": { + "target": "com.amazonaws.iam#serviceName", + "traits": { + "smithy.api#documentation": "

The name of the service associated with the service-specific credential.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains additional details about a service-specific credential.

" + } + }, + "com.amazonaws.iam#ServiceSpecificCredentialsListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ServiceSpecificCredentialMetadata" + } + }, + "com.amazonaws.iam#ServicesLastAccessed": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ServiceLastAccessed" + } + }, + "com.amazonaws.iam#SetDefaultPolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#SetDefaultPolicyVersionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the specified version of the specified policy as the policy's default (operative)\n version.

\n

This operation affects all users, groups, and roles that the policy is attached to. To\n list the users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy.

\n

For information about managed policies, see Managed policies and inline\n policies in the IAM User Guide.

" + } + }, + "com.amazonaws.iam#SetDefaultPolicyVersionRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM policy whose default version you want to\n set.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.iam#policyVersionIdType", + "traits": { + "smithy.api#documentation": "

The version of the policy to set as the default (operative) version.

\n

For more information about managed policy versions, see Versioning for managed\n policies in the IAM User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#SetSecurityTokenServicePreferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#SetSecurityTokenServicePreferencesRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the specified version of the global endpoint token as the token version used for\n the Amazon Web Services account.

\n

By default, Security Token Service (STS) is available as a global service, and all STS requests\n go to a single endpoint at https://sts.amazonaws.com. Amazon Web Services recommends\n using Regional STS endpoints to reduce latency, build in redundancy, and increase\n session token availability. For information about Regional endpoints for STS, see\n Security Token Service\n endpoints and quotas in the Amazon Web Services General Reference.

\n

If you make an STS call to the global endpoint, the resulting session tokens might\n be valid in some Regions but not others. It depends on the version that is set in this\n operation. Version 1 tokens are valid only in Amazon Web Services Regions that are\n available by default. These tokens do not work in manually enabled Regions, such as Asia\n Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2\n tokens are longer and might affect systems where you temporarily store tokens. For\n information, see Activating and\n deactivating STS in an Amazon Web Services Region in the\n IAM User Guide.

\n

To view the current session token version, see the\n GlobalEndpointTokenVersion entry in the response of the GetAccountSummary operation.

", + "smithy.api#examples": [ + { + "title": "To delete an access key for an IAM user", + "documentation": "The following command sets the STS global endpoint token to version 2. Version 2 tokens are valid in all Regions.", + "input": { + "GlobalEndpointTokenVersion": "v2Token" + } + } + ] + } + }, + "com.amazonaws.iam#SetSecurityTokenServicePreferencesRequest": { + "type": "structure", + "members": { + "GlobalEndpointTokenVersion": { + "target": "com.amazonaws.iam#globalEndpointTokenVersion", + "traits": { + "smithy.api#documentation": "

The version of the global endpoint token. Version 1 tokens are valid only in Amazon Web Services Regions that are available by default. These tokens do not work in\n manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid\n in all Regions. However, version 2 tokens are longer and might affect systems where you\n temporarily store tokens.

\n

For information, see Activating and\n deactivating STS in an Amazon Web Services Region in the\n IAM User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#SigningCertificate": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user the signing certificate is associated with.

", + "smithy.api#required": {} + } + }, + "CertificateId": { + "target": "com.amazonaws.iam#certificateIdType", + "traits": { + "smithy.api#documentation": "

The ID for the signing certificate.

", + "smithy.api#required": {} + } + }, + "CertificateBody": { + "target": "com.amazonaws.iam#certificateBodyType", + "traits": { + "smithy.api#documentation": "

The contents of the signing certificate.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status of the signing certificate. Active means that the key is valid\n for API calls, while Inactive means it is not.

", + "smithy.api#required": {} + } + }, + "UploadDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date when the signing certificate was uploaded.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an X.509 signing certificate.

\n

This data type is used as a response element in the UploadSigningCertificate and ListSigningCertificates operations.

" + } + }, + "com.amazonaws.iam#SimulateCustomPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#SimulateCustomPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#SimulatePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#PolicyEvaluationException" + } + ], + "traits": { + "smithy.api#documentation": "

Simulate how a set of IAM policies and optionally a resource-based policy works with\n a list of API operations and Amazon Web Services resources to determine the policies' effective\n permissions. The policies are provided as strings.

\n

The simulation does not perform the API operations; it only checks the authorization\n to determine if the simulated policies allow or deny the operations. You can simulate\n resources that don't exist in your account.

\n

If you want to simulate existing policies that are attached to an IAM user, group,\n or role, use SimulatePrincipalPolicy instead.

\n

Context keys are variables that are maintained by Amazon Web Services and its services and which\n provide details about the context of an API query request. You can use the\n Condition element of an IAM policy to evaluate context keys. To get\n the list of context keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.

\n

If the output is long, you can use MaxItems and Marker\n parameters to paginate the results.

\n \n

The IAM policy simulator evaluates statements in identity-based policies,\n service control policies (SCPs) including their condition keys and resource\n scoping, and the inputs that you provide during simulation. The policy\n simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies\n against your live Amazon Web Services environment after testing using the policy simulator to\n confirm that you have the desired results. For more information about using the\n policy simulator, see Testing IAM\n policies with the IAM policy simulator in the\n IAM User Guide.

\n
", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "EvaluationResults", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#SimulateCustomPolicyRequest": { + "type": "structure", + "members": { + "PolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

A list of policy documents to include in the simulation. Each document is specified as\n a string containing the complete, valid JSON text of an IAM policy. Do not include any\n resource-based policies in this parameter. Any resource-based policy must be submitted\n with the ResourcePolicy parameter. The policies cannot be \"scope-down\"\n policies, such as you could include in a call to GetFederationToken or one of\n the AssumeRole API operations. In other words, do not use policies designed to\n restrict what a user can do while using the temporary credentials.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "PermissionsBoundaryPolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

The IAM permissions boundary policy to simulate. The permissions boundary sets the\n maximum permissions that an IAM entity can have. You can input only one permissions\n boundary when you pass a policy to this operation. For more information about\n permissions boundaries, see Permissions boundaries for IAM\n entities in the IAM User Guide. The policy input is\n specified as a string that contains the complete, valid JSON text of a permissions\n boundary policy.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
" + } + }, + "OrderedOrganizationPolicyInputList": { + "target": "com.amazonaws.iam#OrganizationPolicyListType", + "traits": { + "smithy.api#documentation": "

An ordered list of service control policies (SCPs) to include in the simulation. Each\n element represents one level of an Organizations hierarchy, from the organization root to the\n account.

\n

The simulator evaluates SCPs in the order that you provide, consistent with how Organizations\n enforces SCPs. The first element must represent the organization root, and the last\n element must represent the account. Any elements between them represent organizational\n units (OUs) in descending order.

\n

Use this parameter to simulate the effect of an SCP hierarchy without calling SimulatePrincipalPolicy.

" + } + }, + "ActionNames": { + "target": "com.amazonaws.iam#ActionNameListType", + "traits": { + "smithy.api#documentation": "

A list of names of API operations to evaluate in the simulation. Each operation is\n evaluated against each resource. Each operation must include the service identifier,\n such as iam:CreateUser. This operation does not support using wildcards (*)\n in an action name.

", + "smithy.api#required": {} + } + }, + "ResourceArns": { + "target": "com.amazonaws.iam#ResourceNameListType", + "traits": { + "smithy.api#documentation": "

A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is\n not provided, then the value defaults to * (all resources). Each API in the\n ActionNames parameter is evaluated for each resource in this list. The\n simulation determines the access result (allowed or denied) of each combination and\n reports it in the response. You can simulate resources that don't exist in your\n account.

\n

The simulation does not automatically retrieve policies for the specified resources.\n If you want to include a resource policy in the simulation, then you must include the\n policy as a string in the ResourcePolicy parameter.

\n

If you include a ResourcePolicy, then it must be applicable to all of the\n resources included in the simulation or you receive an invalid input error.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

\n \n

Simulation of resource-based policies isn't supported for IAM roles.

\n
" + } + }, + "ResourcePolicy": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

A resource-based policy to include in the simulation provided as a string. Each\n resource in the simulation is treated as if it had this policy attached. You can include\n only one resource-based policy in a simulation.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
\n \n

Simulation of resource-based policies isn't supported for IAM roles.

\n
" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

An ARN representing the Amazon Web Services account ID that specifies the owner of any simulated\n resource that does not identify its owner in the resource ARN. Examples of resource ARNs\n include an S3 bucket or object. If ResourceOwner is specified, it is also\n used as the account owner of any ResourcePolicy included in the simulation.\n If the ResourceOwner parameter is not specified, then the owner of the\n resources and the resource policy defaults to the account of the identity provided in\n CallerArn. This parameter is required only if you specify a\n resource-based policy and account that owns the resource is different from the account\n that owns the simulated calling user CallerArn.

\n

The ARN for an account uses the following syntax:\n arn:aws:iam::AWS-account-ID:root. For example,\n to represent the account with the 112233445566 ID, use the following ARN:\n arn:aws:iam::112233445566-ID:root.

" + } + }, + "CallerArn": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM user, group, or role that you want to use as the simulated\n caller of the API operations. CallerArn is required if you include a\n ResourcePolicy so that the policy's Principal element has\n a value to use in evaluating the policy.

\n

You cannot specify the ARN of an assumed role, federated user, or a service\n principal.

" + } + }, + "ContextEntries": { + "target": "com.amazonaws.iam#ContextEntryListType", + "traits": { + "smithy.api#documentation": "

A list of context keys and corresponding values for the simulation to use. Whenever a\n context key is evaluated in one of the simulated IAM permissions policies, the\n corresponding value is supplied.

" + } + }, + "ResourceHandlingOption": { + "target": "com.amazonaws.iam#ResourceHandlingOptionType", + "traits": { + "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the Amazon EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the\n network interface resource. If it includes an IP subnet, then you must specify the\n subnet resource. For more information on the Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#SimulatePolicyResponse": { + "type": "structure", + "members": { + "EvaluationResults": { + "target": "com.amazonaws.iam#EvaluationResultsListType", + "traits": { + "smithy.api#documentation": "

The results of the simulation.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items to return. If your \n results were truncated, you can make a subsequent pagination request using the Marker\n request parameter to retrieve more items. Note that IAM might return fewer than the \n MaxItems number of results even when there are more results available. We recommend \n that you check IsTruncated after every call to ensure that you receive all your \n results.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#responseMarkerType", + "traits": { + "smithy.api#documentation": "

When IsTruncated is true, this element\n is present and contains the value to use for the Marker parameter in a subsequent \n pagination request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy\n request.

" + } + }, + "com.amazonaws.iam#SimulatePrincipalPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#SimulatePrincipalPolicyRequest" + }, + "output": { + "target": "com.amazonaws.iam#SimulatePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PolicyEvaluationException" + } + ], + "traits": { + "smithy.api#documentation": "

Simulate how a set of IAM policies attached to an IAM entity works with a list of\n API operations and Amazon Web Services resources to determine the policies' effective permissions. The\n entity can be an IAM user, group, or role. If you specify a user, then the simulation\n also includes all of the policies that are attached to groups that the user belongs to.\n You can simulate resources that don't exist in your account.

\n

You can optionally include a list of one or more additional policies specified as\n strings to include in the simulation. If you want to simulate only policies specified as\n strings, use SimulateCustomPolicy instead.

\n

You can also optionally include one resource-based policy to be evaluated with each of\n the resources included in the simulation for IAM users only.

\n

The simulation does not perform the API operations; it only checks the authorization\n to determine if the simulated policies allow or deny the operations.

\n

For cross-account simulations, EvalDecisionDetails returns the decision\n for each policy type (identity-based policy, resource-based policy, and permissions\n boundary). This helps you identify which policy type is responsible for an allow or\n deny decision when policies span multiple accounts.

\n

\n Note: This operation discloses information about the\n permissions granted to other users. If you do not want users to see other user's\n permissions, then consider allowing them to use SimulateCustomPolicy instead.

\n

Context keys are variables maintained by Amazon Web Services and its services that provide details\n about the context of an API query request. You can use the Condition\n element of an IAM policy to evaluate context keys. To get the list of context keys\n that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.

\n

If the output is long, you can use the MaxItems and Marker\n parameters to paginate the results.

\n \n

The IAM policy simulator evaluates statements in identity-based policies,\n service control policies (SCPs) including their condition keys and resource\n scoping, and the inputs that you provide during simulation. The policy\n simulator results can differ from your live Amazon Web Services environment. We recommend that you check your policies\n against your live Amazon Web Services environment after testing using the policy simulator to\n confirm that you have the desired results. For more information about using the\n policy simulator, see Testing IAM\n policies with the IAM policy simulator in the\n IAM User Guide.

\n
", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "EvaluationResults", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.iam#SimulatePrincipalPolicyRequest": { + "type": "structure", + "members": { + "PolicySourceArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a user, group, or role whose policies you want to\n include in the simulation. If you specify a user, group, or role, the simulation\n includes all policies that are associated with that entity. If you specify a user, the\n simulation also includes all policies that are attached to any groups the user belongs\n to.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "PolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

An optional list of additional policy documents to include in the simulation. Each\n document is specified as a string containing the complete, valid JSON text of an IAM\n policy.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
" + } + }, + "PermissionsBoundaryPolicyInputList": { + "target": "com.amazonaws.iam#SimulationPolicyListType", + "traits": { + "smithy.api#documentation": "

The IAM permissions boundary policy to simulate. The permissions boundary sets the\n maximum permissions that the entity can have. You can input only one permissions\n boundary when you pass a policy to this operation. An IAM entity can only have one\n permissions boundary in effect at a time. For example, if a permissions boundary is\n attached to an entity and you pass in a different permissions boundary policy using this\n parameter, then the new permissions boundary policy is used for the simulation. For more\n information about permissions boundaries, see Permissions boundaries for IAM\n entities in the IAM User Guide. The policy input is\n specified as a string containing the complete, valid JSON text of a permissions boundary\n policy.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
" + } + }, + "PolicyExclusionList": { + "target": "com.amazonaws.iam#PolicyExclusionsListType", + "traits": { + "smithy.api#documentation": "

A list of policies to exclude from the simulation. Use this parameter to test what\n the simulation result would be if a policy were removed, without changing which\n policies are actually attached to the principal identified by\n PolicySourceArn.

\n

Each entry is a PolicyIdentifier\n that identifies one or more policies to exclude by policy type, by Amazon Resource Name\n (ARN), or by the name of an inline policy and the entity it is attached to.

\n

Syntactically invalid identifiers, such as malformed ARNs or wildcards in disallowed\n positions, cause the request to fail with an InvalidInput error.\n Syntactically valid identifiers that don't match any attached policy are ignored.\n Resource control policies (RCPs) are not supported in this release; identifiers that\n target RCPs are also ignored.

" + } + }, + "ActionNames": { + "target": "com.amazonaws.iam#ActionNameListType", + "traits": { + "smithy.api#documentation": "

A list of names of API operations to evaluate in the simulation. Each operation is\n evaluated for each resource. Each operation must include the service identifier, such as\n iam:CreateUser.

", + "smithy.api#required": {} + } + }, + "ResourceArns": { + "target": "com.amazonaws.iam#ResourceNameListType", + "traits": { + "smithy.api#documentation": "

A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is\n not provided, then the value defaults to * (all resources). Each API in the\n ActionNames parameter is evaluated for each resource in this list. The\n simulation determines the access result (allowed or denied) of each combination and\n reports it in the response. You can simulate resources that don't exist in your\n account.

\n

The simulation does not automatically retrieve policies for the specified resources.\n If you want to include a resource policy in the simulation, then you must include the\n policy as a string in the ResourcePolicy parameter.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

\n \n

Simulation of resource-based policies isn't supported for IAM roles.

\n
" + } + }, + "ResourcePolicy": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

A resource-based policy to include in the simulation provided as a string. Each\n resource in the simulation is treated as if it had this policy attached. You can include\n only one resource-based policy in a simulation.

\n

The maximum length of the policy document that you can pass in this operation,\n including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see IAM and STS character quotas.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
\n \n

Simulation of resource-based policies isn't supported for IAM roles.

\n
" + } + }, + "ResourceOwner": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

An Amazon Web Services account ID that specifies the owner of any simulated resource that does not\n identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket\n or object. If ResourceOwner is specified, it is also used as the account\n owner of any ResourcePolicy included in the simulation. If the\n ResourceOwner parameter is not specified, then the owner of the\n resources and the resource policy defaults to the account of the identity provided in\n CallerArn. This parameter is required only if you specify a\n resource-based policy and account that owns the resource is different from the account\n that owns the simulated calling user CallerArn.

" + } + }, + "CallerArn": { + "target": "com.amazonaws.iam#ResourceNameType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM user, group, or role that you want to specify as the simulated\n caller of the API operations. If you do not specify a CallerArn, it\n defaults to the ARN of the user, group, or role that you specify in\n PolicySourceArn. If you include both a PolicySourceArn\n (for example, arn:aws:iam::123456789012:user/David) and a\n CallerArn (for example,\n arn:aws:iam::123456789012:user/Bob), the result is that you simulate\n calling the API operations as Bob, as if Bob had David's policies.

\n

You can specify the ARN of an IAM user, group, or role. You cannot specify the ARN\n of an assumed role, federated user, or a service principal.

\n

\n CallerArn is required if you include a ResourcePolicy and\n the PolicySourceArn is not the ARN for an IAM user, group, or role. This\n is required so that the resource-based policy's Principal element has a\n value to use in evaluating the policy.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "ContextEntries": { + "target": "com.amazonaws.iam#ContextEntryListType", + "traits": { + "smithy.api#documentation": "

A list of context keys and corresponding values for the simulation to use. Whenever a\n context key is evaluated in one of the simulated IAM permissions policies, the\n corresponding value is supplied.

" + } + }, + "ResourceHandlingOption": { + "target": "com.amazonaws.iam#ResourceHandlingOptionType", + "traits": { + "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the Amazon EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the\n network interface resource. If it includes an IP subnet, then you must specify the\n subnet resource. For more information on the Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" + } + }, + "MaxItems": { + "target": "com.amazonaws.iam#maxItemsType", + "traits": { + "smithy.api#documentation": "

Use this only when paginating results to indicate the \n maximum number of items you want in the response. If additional items exist beyond the maximum \n you specify, the IsTruncated response element is true.

\n

If you do not include this parameter, the number of items defaults to 100. Note that\n IAM might return fewer results, even when there are more results available. In that case, the\n IsTruncated response element returns true, and Marker \n contains a value to include in the subsequent call that tells the service where to continue \n from.

" + } + }, + "Marker": { + "target": "com.amazonaws.iam#markerType", + "traits": { + "smithy.api#documentation": "

Use this parameter only when paginating results and only after \n you receive a response indicating that the results are truncated. Set it to the value of the\n Marker element in the response that you received to indicate where the next call \n should start.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#SimulationPolicyListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#policyDocumentType" + } + }, + "com.amazonaws.iam#SourceRoleTemplate": { + "type": "structure", + "members": { + "TemplateArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role template that the role was created\n from.

", + "smithy.api#required": {} + } + }, + "TemplateMinorVersion": { + "target": "com.amazonaws.iam#integerType", + "traits": { + "smithy.api#documentation": "

The minor version of the role template that was used to create the role.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the role template that a role was created from.

" + } + }, + "com.amazonaws.iam#Statement": { + "type": "structure", + "members": { + "SourcePolicyId": { + "target": "com.amazonaws.iam#PolicyIdentifierType", + "traits": { + "smithy.api#documentation": "

The identifier of the policy that was provided as an input.

" + } + }, + "SourcePolicyType": { + "target": "com.amazonaws.iam#PolicySourceType", + "traits": { + "smithy.api#documentation": "

The type of the policy.

" + } + }, + "StartPosition": { + "target": "com.amazonaws.iam#Position", + "traits": { + "smithy.api#documentation": "

The row and column of the beginning of the Statement in an IAM\n policy.

" + } + }, + "EndPosition": { + "target": "com.amazonaws.iam#Position", + "traits": { + "smithy.api#documentation": "

The row and column of the end of a Statement in an IAM policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a reference to a Statement element in a policy document that\n determines the result of the simulation.

\n

This data type is used by the MatchedStatements member of the \n EvaluationResult\n type.

" + } + }, + "com.amazonaws.iam#StatementListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#Statement" + } + }, + "com.amazonaws.iam#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.iam#tagKeyType", + "traits": { + "smithy.api#documentation": "

The key name that can be used to look up or retrieve the associated value. For example,\n Department or Cost Center are common choices.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.iam#tagValueType", + "traits": { + "smithy.api#documentation": "

The value associated with this tag. For example, tags with a key name of\n Department could have values such as Human Resources,\n Accounting, and Support. Tags with a key name of Cost\n Center might have values that consist of the number associated with the different\n cost centers in your company. Typically, many resources have tags with the same key name but\n with different values.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A structure that represents user-provided metadata that can be associated with an IAM\n resource. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#TagInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagInstanceProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM instance profile. If a tag with the same key name\n already exists, then that tag is overwritten with the new value.

\n

Each tag consists of a key name and an associated value. By assigning tags to your resources, you can do the\n following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only an IAM instance\n profile that has a specified tag attached. For examples of policies that show how to use\n tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM instance profile to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM instance profile.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM virtual multi-factor authentication (MFA) device. If\n a tag with the same key name already exists, then that tag is overwritten with the new\n value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only an IAM virtual\n MFA device that has a specified tag attached. For examples of policies that show how to\n use tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagMFADeviceRequest": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the IAM virtual MFA device to which you want to add tags.\n For virtual MFA devices, the serial number is the same as the ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM virtual MFA device.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagOpenIDConnectProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider. For\n more information about these providers, see About web identity federation. If\n a tag with the same key name already exists, then that tag is overwritten with the new\n value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM identity-based\n and resource-based policies. You can use tags to restrict access to only an OIDC provider\n that has a specified tag attached. For examples of policies that show how to use tags to\n control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the OIDC identity provider in IAM to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the OIDC identity provider in IAM.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM customer managed policy. If a tag with the same key\n name already exists, then that tag is overwritten with the new value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only an IAM customer\n managed policy that has a specified tag attached. For examples of policies that show how\n to use tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagPolicyRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM customer managed policy to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM customer managed policy.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagRoleRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM role. The role can be a regular role or a\n service-linked role. If a tag with the same key name already exists, then that tag is\n overwritten with the new value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only an IAM role\n that has a specified tag attached. You can also restrict access to only those resources\n that have a certain tag attached. For examples of policies that show how to use tags to\n control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
  • \n

    \n Cost allocation - Use tags to help track which\n individuals and teams are using which Amazon Web Services resources.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
\n

For more information about tagging, see Tagging IAM identities in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a tag key and value to an IAM role", + "documentation": "The following example shows how to add tags to an existing role.", + "input": { + "RoleName": "taggedrole", + "Tags": [ + { + "Key": "Dept", + "Value": "Accounting" + }, + { + "Key": "CostCenter", + "Value": "12345" + } + ] + } + } + ] + } + }, + "com.amazonaws.iam#TagRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to which you want to add tags.

\n

This parameter accepts (through its regex pattern) a string of characters that consist of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM role. Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagSAMLProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to a Security Assertion Markup Language (SAML) identity provider.\n For more information about these providers, see About SAML 2.0-based federation .\n If a tag with the same key name already exists, then that tag is overwritten with the new\n value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only a SAML identity\n provider that has a specified tag attached. For examples of policies that show how to use\n tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the SAML identity provider in IAM to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the SAML identity provider in IAM.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagServerCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM server certificate. If a tag with the same key name\n already exists, then that tag is overwritten with the new value.

\n \n

For certificates in a Region supported by Certificate Manager (ACM), we\n recommend that you don't use IAM server certificates. Instead, use ACM to provision,\n manage, and deploy your server certificates. For more information about IAM server\n certificates, Working with server\n certificates in the IAM User Guide.

\n
\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM user-based\n and resource-based policies. You can use tags to restrict access to only a server\n certificate that has a specified tag attached. For examples of policies that show how to\n use tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
  • \n

    \n Cost allocation - Use tags to help track which\n individuals and teams are using which Amazon Web Services resources.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.iam#TagServerCertificateRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM server certificate to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM server certificate.\n Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TagTemplate": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.iam#tagTemplateKeyType", + "traits": { + "smithy.api#documentation": "

The key name of the tag.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.iam#tagTemplateValueType", + "traits": { + "smithy.api#documentation": "

The value associated with the tag key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a tag that is applied to roles that are created from a role template. The key\n and value can include @{parameter} placeholders that are replaced with\n template parameter values when the role is created.

" + } + }, + "com.amazonaws.iam#TagUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#TagUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds one or more tags to an IAM user. If a tag with the same key name already exists,\n then that tag is overwritten with the new value.

\n

A tag consists of a key name and an associated value. By assigning tags to your\n resources, you can do the following:

\n
    \n
  • \n

    \n Administrative grouping and discovery - Attach\n tags to resources to aid in organization and search. For example, you could search for all\n resources with the key name Project and the value\n MyImportantProject. Or search for all resources with the key name\n Cost Center and the value 41200.

    \n
  • \n
  • \n

    \n Access control - Include tags in IAM identity-based\n and resource-based policies. You can use tags to restrict access to only an IAM\n requesting user that has a specified tag attached. You can also restrict access to only\n those resources that have a certain tag attached. For examples of policies that show how\n to use tags to control access, see Control access using IAM tags in the\n IAM User Guide.

    \n
  • \n
  • \n

    \n Cost allocation - Use tags to help track which\n individuals and teams are using which Amazon Web Services resources.

    \n
  • \n
\n \n
    \n
  • \n

    If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

    \n
  • \n
  • \n

    Amazon Web Services always interprets the tag Value as a single string. If you\n need to store an array, you can store comma-separated values in the string. However, you\n must interpret the value in your code.

    \n
  • \n
\n
\n

For more information about tagging, see Tagging IAM identities in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To add a tag key and value to an IAM user", + "documentation": "The following example shows how to add tags to an existing user.", + "input": { + "UserName": "anika", + "Tags": [ + { + "Key": "Dept", + "Value": "Accounting" + }, + { + "Key": "CostCenter", + "Value": "12345" + } + ] + } + } + ] + } + }, + "com.amazonaws.iam#TagUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user to which you want to add tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

The list of tags that you want to attach to the IAM user. Each tag consists of a key name and an associated value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#TrackedActionLastAccessed": { + "type": "structure", + "members": { + "ActionName": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The name of the tracked action to which access was attempted. Tracked actions are\n actions that report activity to IAM.

" + } + }, + "LastAccessedEntity": { + "target": "com.amazonaws.iam#arnType" + }, + "LastAccessedTime": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when an authenticated entity most recently attempted to access the\n tracked service. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + }, + "LastAccessedRegion": { + "target": "com.amazonaws.iam#stringType", + "traits": { + "smithy.api#documentation": "

The Region from which the authenticated entity (user or role) last attempted to access\n the tracked action. Amazon Web Services does not report unauthenticated requests.

\n

This field is null if no IAM entities attempted to access the service within the\n tracking period.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the most recent attempt to access an action within the\n service.

\n

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" + } + }, + "com.amazonaws.iam#TrackedActionsLastAccessed": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#TrackedActionLastAccessed" + } + }, + "com.amazonaws.iam#UnmodifiableEntityException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#unmodifiableEntityMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "UnmodifiableEntity", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because service-linked roles are protected Amazon Web Services resources. Only\n the service that depends on the service-linked role can modify or delete the role on your\n behalf. The error message includes the name of the service that depends on this service-linked\n role. You must request the change through that service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#UnrecognizedPublicKeyEncodingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#unrecognizedPublicKeyEncodingMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "UnrecognizedPublicKeyEncoding", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the public key encoding format is unsupported or\n unrecognized.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#UntagInstanceProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagInstanceProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the IAM instance profile. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#UntagInstanceProfileRequest": { + "type": "structure", + "members": { + "InstanceProfileName": { + "target": "com.amazonaws.iam#instanceProfileNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM instance profile from which you want to remove tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified instance profile.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagMFADevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagMFADeviceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the IAM virtual multi-factor authentication (MFA)\n device. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#UntagMFADeviceRequest": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the IAM virtual MFA device from which you want to remove\n tags. For virtual MFA devices, the serial number is the same as the ARN.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified instance profile.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagOpenIDConnectProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagOpenIDConnectProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the specified OpenID Connect (OIDC)-compatible identity\n provider in IAM. For more information about OIDC providers, see About web identity federation.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#UntagOpenIDConnectProviderRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the OIDC provider in IAM from which you want to remove tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified OIDC provider.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the customer managed policy. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#UntagPolicyRequest": { + "type": "structure", + "members": { + "PolicyArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM customer managed policy from which you want to remove\n tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagRoleRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the role. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove a tag from an IAM role", + "documentation": "The following example shows how to remove a tag with the key 'Dept' from a role named 'taggedrole'.", + "input": { + "RoleName": "taggedrole", + "TagKeys": [ + "Dept" + ] + } + } + ] + } + }, + "com.amazonaws.iam#UntagRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM role from which you want to remove tags.

\n

This parameter accepts (through its regex pattern) a string of characters that consist of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified role.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagSAMLProviderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the specified Security Assertion Markup Language (SAML)\n identity provider in IAM. For more information about these providers, see About web identity\n federation. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + }, + "com.amazonaws.iam#UntagSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The ARN of the SAML identity provider in IAM from which you want to remove\n tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified SAML identity provider.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagServerCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the IAM server certificate.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

For certificates in a Region supported by Certificate Manager (ACM), we\n recommend that you don't use IAM server certificates. Instead, use ACM to provision,\n manage, and deploy your server certificates. For more information about IAM server\n certificates, Working with server\n certificates in the IAM User Guide.

\n
" + } + }, + "com.amazonaws.iam#UntagServerCertificateRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM server certificate from which you want to remove tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified IAM server certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UntagUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UntagUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the specified tags from the user. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove a tag from an IAM user", + "documentation": "The following example shows how to remove tags that are attached to a user named 'anika'.", + "input": { + "UserName": "anika", + "TagKeys": [ + "Dept" + ] + } + } + ] + } + }, + "com.amazonaws.iam#UntagUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user from which you want to remove tags.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.iam#tagKeyListType", + "traits": { + "smithy.api#documentation": "

A list of key names as a simple array of strings. The tags with matching keys are\n removed from the specified user.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateAccessKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateAccessKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the status of the specified access key from Active to Inactive, or vice versa.\n This operation can be used to disable a user's key as part of a key rotation\n workflow.

\n

If the UserName is not specified, the user name is determined implicitly\n based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is\n used, then UserName is required. If a long-term key is assigned to the\n user, then UserName is not required. This operation works for access keys\n under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user\n credentials even if the Amazon Web Services account has no associated users.

\n

For information about rotating keys, see Managing keys and certificates\n in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To activate or deactivate an access key for an IAM user", + "documentation": "The following command deactivates the specified access key (access key ID and secret access key) for the IAM user named Bob.", + "input": { + "UserName": "Bob", + "Status": "Inactive", + "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateAccessKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose key you want to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "AccessKeyId": { + "target": "com.amazonaws.iam#accessKeyIdType", + "traits": { + "smithy.api#documentation": "

The access key ID of the secret access key you want to update.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status you want to assign to the secret access key. Active means\n that the key can be used for programmatic calls to Amazon Web Services, while Inactive\n means that the key cannot be used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateAccountPasswordPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateAccountPasswordPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the password policy settings for the Amazon Web Services account.

\n \n

This operation does not support partial updates. No parameters are required, but\n if you do not specify a parameter, that parameter's value reverts to its default\n value. See the Request Parameters section for each\n parameter's default value. Also note that some parameters do not allow the default\n parameter to be explicitly set. Instead, to invoke the default value, do not include\n that parameter when you invoke the operation.

\n
\n

For more information about using a password policy, see Managing an IAM password\n policy in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To set or change the current account password policy", + "documentation": "The following command sets the password policy to require a minimum length of eight characters and to require one or more numbers in the password:", + "input": { + "MinimumPasswordLength": 8, + "RequireNumbers": true + } + } + ] + } + }, + "com.amazonaws.iam#UpdateAccountPasswordPolicyRequest": { + "type": "structure", + "members": { + "MinimumPasswordLength": { + "target": "com.amazonaws.iam#minimumPasswordLengthType", + "traits": { + "smithy.api#documentation": "

The minimum number of characters allowed in an IAM user password.

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of 6.

" + } + }, + "RequireSymbols": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one of the following\n non-alphanumeric characters:

\n

! @ # $ % ^ & * ( ) _ + - = [ ] { } | '

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that passwords do not require at least one\n symbol character.

" + } + }, + "RequireNumbers": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one numeric character (0\n to 9).

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that passwords do not require at least one\n numeric character.

" + } + }, + "RequireUppercaseCharacters": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one uppercase character\n from the ISO basic Latin alphabet (A to Z).

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that passwords do not require at least one\n uppercase character.

" + } + }, + "RequireLowercaseCharacters": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether IAM user passwords must contain at least one lowercase character\n from the ISO basic Latin alphabet (a to z).

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that passwords do not require at least one\n lowercase character.

" + } + }, + "AllowUsersToChangePassword": { + "target": "com.amazonaws.iam#booleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Allows all IAM users in your account to use the Amazon Web Services Management Console to change their own\n passwords. For more information, see Permitting\n IAM users to change their own passwords in the\n IAM User Guide.

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that IAM users in the account do not\n automatically have permissions to change their own password.

" + } + }, + "MaxPasswordAge": { + "target": "com.amazonaws.iam#maxPasswordAgeType", + "traits": { + "smithy.api#documentation": "

The number of days that an IAM user password is valid.

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of 0. The result is that IAM user passwords never expire.

" + } + }, + "PasswordReusePrevention": { + "target": "com.amazonaws.iam#passwordReusePreventionType", + "traits": { + "smithy.api#documentation": "

Specifies the number of previous passwords that IAM users are prevented from\n reusing.

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of 0. The result is that IAM users are not prevented from reusing\n previous passwords.

" + } + }, + "HardExpiry": { + "target": "com.amazonaws.iam#booleanObjectType", + "traits": { + "smithy.api#documentation": "

Prevents IAM users who are accessing the account via the Amazon Web Services Management Console from setting a\n new console password after their password has expired. The IAM user cannot access the\n console until an administrator resets the password.

\n

If you do not specify a value for this parameter, then the operation uses the default\n value of false. The result is that IAM users can change their passwords\n after they expire and continue to sign in as the user.

\n \n

In the Amazon Web Services Management Console, the custom password policy option Allow\n users to change their own password gives IAM users permissions to\n iam:ChangePassword for only their user and to the\n iam:GetAccountPasswordPolicy action. This option does not attach a\n permissions policy to each user, rather the permissions are applied at the\n account-level for all users by IAM. IAM users with\n iam:ChangePassword permission and active access keys can reset\n their own expired console password using the CLI or API.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateAssumeRolePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateAssumeRolePolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the policy that grants an IAM entity permission to assume a role. This is\n typically referred to as the \"role trust policy\". For more information about roles, see\n Using roles to\n delegate permissions and federate identities.

", + "smithy.api#examples": [ + { + "title": "To update the trust policy for an IAM role", + "documentation": "The following command updates the role trust policy for the role named Test-Role:", + "input": { + "PolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}", + "RoleName": "S3AccessForEC2Instances" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateAssumeRolePolicyRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role to update with the new policy.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.iam#policyDocumentType", + "traits": { + "smithy.api#documentation": "

The policy that grants an entity permission to assume the role.

\n

You must provide policies in JSON format in IAM. However, for CloudFormation\n templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to\n IAM.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateDelegationRequest": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateDelegationRequestRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates an existing delegation request with additional information. When the delegation\n request is updated, it reaches the PENDING_APPROVAL state.\n

\n

Once a delegation request has an owner, that owner gets a default permission to update the\n delegation request. For more details, see\n \n Managing Permissions for Delegation Requests.\n

" + } + }, + "com.amazonaws.iam#UpdateDelegationRequestRequest": { + "type": "structure", + "members": { + "DelegationRequestId": { + "target": "com.amazonaws.iam#delegationRequestIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the delegation request to update.

", + "smithy.api#required": {} + } + }, + "Notes": { + "target": "com.amazonaws.iam#notesType", + "traits": { + "smithy.api#documentation": "

Additional notes or comments to add to the delegation request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the name and/or the path of the specified IAM group.

\n \n

You should understand the implications of changing a group's path or name. For\n more information, see Renaming users and\n groups in the IAM User Guide.

\n
\n \n

The person making the request (the principal), must have permission to change the\n role group with the old name and the new name. For example, to change the group\n named Managers to MGRs, the principal must have a policy\n that allows them to update both groups. If the principal has permission to update\n the Managers group, but not the MGRs group, then the\n update fails. For more information about permissions, see Access management.\n

\n
", + "smithy.api#examples": [ + { + "title": "To rename an IAM group", + "documentation": "The following command changes the name of the IAM group Test to Test-1.", + "input": { + "GroupName": "Test", + "NewGroupName": "Test-1" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateGroupRequest": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

Name of the IAM group to update. If you're changing the name of the group, this is\n the original name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "NewPath": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

New path for the IAM group. Only include this if changing the group's path.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "NewGroupName": { + "target": "com.amazonaws.iam#groupNameType", + "traits": { + "smithy.api#documentation": "

New name for the IAM group. Only include this if changing the group's name.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateLoginProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateLoginProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#PasswordPolicyViolationException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the password for the specified IAM user. You can use the CLI, the Amazon Web Services\n API, or the Users page in the IAM console to change\n the password for any IAM user. Use ChangePassword to\n change your own password in the My Security Credentials\n page in the Amazon Web Services Management Console.

\n

For more information about modifying passwords, see Managing passwords in the\n IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To change the password for an IAM user", + "documentation": "The following command creates or changes the password for the IAM user named Bob.", + "input": { + "UserName": "Bob", + "Password": "SomeKindOfPassword123!@#" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateLoginProfileRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the user whose password you want to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "Password": { + "target": "com.amazonaws.iam#passwordType", + "traits": { + "smithy.api#documentation": "

The new password for the specified IAM user.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
\n

However, the format can be further restricted by the account administrator by setting\n a password policy on the Amazon Web Services account. For more information, see UpdateAccountPasswordPolicy.

" + } + }, + "PasswordResetRequired": { + "target": "com.amazonaws.iam#booleanObjectType", + "traits": { + "smithy.api#documentation": "

Allows this new password to be used only once by requiring the specified IAM user to\n set a new password on next sign-in.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprint": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprintRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Replaces the existing list of server certificate thumbprints associated with an OpenID\n Connect (OIDC) provider resource object with a new list of thumbprints.

\n

The list that you pass with this operation completely replaces the existing list of\n thumbprints. (The lists are not merged.)

\n

Typically, you need to update a thumbprint only when the identity provider certificate\n changes, which occurs rarely. However, if the provider's certificate\n does change, any attempt to assume an IAM role that specifies\n the OIDC provider as a principal fails until the certificate thumbprint is\n updated.

\n \n

Amazon Web Services secures communication with OIDC identity providers (IdPs) using our library of\n trusted root certificate authorities (CAs) to verify the JSON Web Key Set (JWKS)\n endpoint's TLS certificate. If your OIDC IdP relies on a certificate that is not signed\n by one of these trusted CAs, only then we secure communication using the thumbprints set\n in the IdP's configuration.

\n
\n \n

Trust for the OIDC provider is derived from the provider certificate and is\n validated by the thumbprint. Therefore, it is best to limit access to the\n UpdateOpenIDConnectProviderThumbprint operation to highly\n privileged users.

\n
" + } + }, + "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprintRequest": { + "type": "structure", + "members": { + "OpenIDConnectProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which\n you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the\n ListOpenIDConnectProviders operation.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "ThumbprintList": { + "target": "com.amazonaws.iam#thumbprintListType", + "traits": { + "smithy.api#documentation": "

A list of certificate thumbprints that are associated with the specified IAM OpenID\n Connect provider. For more information, see CreateOpenIDConnectProvider.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateRole": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateRoleRequest" + }, + "output": { + "target": "com.amazonaws.iam#UpdateRoleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the description or maximum session duration setting of a role.

" + } + }, + "com.amazonaws.iam#UpdateRoleDescription": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateRoleDescriptionRequest" + }, + "output": { + "target": "com.amazonaws.iam#UpdateRoleDescriptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + }, + { + "target": "com.amazonaws.iam#UnmodifiableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Use UpdateRole instead.

\n

Modifies only the description of a role. This operation performs the same function as\n the Description parameter in the UpdateRole operation.

" + } + }, + "com.amazonaws.iam#UpdateRoleDescriptionRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role that you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.iam#roleDescriptionType", + "traits": { + "smithy.api#documentation": "

The new description that you want to apply to the specified role.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateRoleDescriptionResponse": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.iam#Role", + "traits": { + "smithy.api#documentation": "

A structure that contains details about the modified role.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#UpdateRoleRequest": { + "type": "structure", + "members": { + "RoleName": { + "target": "com.amazonaws.iam#roleNameType", + "traits": { + "smithy.api#documentation": "

The name of the role that you want to modify.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.iam#roleDescriptionType", + "traits": { + "smithy.api#documentation": "

The new description that you want to apply to the specified role.

" + } + }, + "MaxSessionDuration": { + "target": "com.amazonaws.iam#roleMaxSessionDurationType", + "traits": { + "smithy.api#documentation": "

The maximum session duration (in seconds) that you want to set for the specified role.\n If you do not specify a value for this setting, the default value of one hour is\n applied. This setting can have a value from 1 hour to 12 hours.

\n

Anyone who assumes the role from the CLI or API can use the\n DurationSeconds API parameter or the duration-seconds\n CLI parameter to request a longer session. The MaxSessionDuration setting\n determines the maximum duration that can be requested using the\n DurationSeconds parameter. If users don't specify a value for the\n DurationSeconds parameter, their security credentials are valid for one\n hour by default. This applies when you use the AssumeRole* API operations\n or the assume-role* CLI operations but does not apply when you use those\n operations to create a console URL. For more information, see Using IAM\n roles in the IAM User Guide.

\n \n

IAM role credentials provided by Amazon EC2 instances assigned to the role are not\n subject to the specified maximum session duration.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateRoleResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#UpdateSAMLProvider": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateSAMLProviderRequest" + }, + "output": { + "target": "com.amazonaws.iam#UpdateSAMLProviderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the metadata document, SAML encryption settings, and private keys for an\n existing SAML provider. To rotate private keys, add your new private key and then remove\n the old key in a separate request.

" + } + }, + "com.amazonaws.iam#UpdateSAMLProviderRequest": { + "type": "structure", + "members": { + "SAMLMetadataDocument": { + "target": "com.amazonaws.iam#SAMLMetadataDocumentType", + "traits": { + "smithy.api#documentation": "

An XML document generated by an identity provider (IdP) that supports SAML 2.0. The\n document includes the issuer's name, expiration information, and keys that can be used\n to validate the SAML authentication response (assertions) that are received from the\n IdP. You must generate the metadata document using the identity management software that\n is used as your IdP.

" + } + }, + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SAML provider to update.

\n

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "AssertionEncryptionMode": { + "target": "com.amazonaws.iam#assertionEncryptionModeType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption setting for the SAML provider.

" + } + }, + "AddPrivateKey": { + "target": "com.amazonaws.iam#privateKeyType", + "traits": { + "smithy.api#documentation": "

Specifies the new private key from your external identity provider. The private key\n must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML\n assertions.

" + } + }, + "RemovePrivateKey": { + "target": "com.amazonaws.iam#privateKeyIdType", + "traits": { + "smithy.api#documentation": "

The Key ID of the private key to remove.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateSAMLProviderResponse": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SAML provider that was updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful UpdateSAMLProvider\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#UpdateSSHPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateSSHPublicKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the status of an IAM user's SSH public key to active or inactive. SSH public\n keys that are inactive cannot be used for authentication. This operation can be used to\n disable a user's SSH public key as part of a key rotation work flow.

\n

The SSH public key affected by this operation is used only for authenticating the\n associated IAM user to an CodeCommit repository. For more information about using SSH keys\n to authenticate to an CodeCommit repository, see Set up CodeCommit for\n SSH connections in the CodeCommit User Guide.

" + } + }, + "com.amazonaws.iam#UpdateSSHPublicKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyId": { + "target": "com.amazonaws.iam#publicKeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the SSH public key.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status to assign to the SSH public key. Active means that the key can\n be used for authentication with an CodeCommit repository. Inactive means that\n the key cannot be used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateServerCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the name and/or the path of the specified server certificate stored in\n IAM.

\n

For more information about working with server certificates, see Working\n with server certificates in the IAM User Guide. This\n topic also includes a list of Amazon Web Services services that can use the server certificates that\n you manage with IAM.

\n \n

You should understand the implications of changing a server certificate's path or\n name. For more information, see Renaming a server certificate in the\n IAM User Guide.

\n
\n \n

The person making the request (the principal), must have permission to change the\n server certificate with the old name and the new name. For example, to change the\n certificate named ProductionCert to ProdCert, the\n principal must have a policy that allows them to update both certificates. If the\n principal has permission to update the ProductionCert group, but not\n the ProdCert certificate, then the update fails. For more information\n about permissions, see Access management in the IAM User Guide.

\n
" + } + }, + "com.amazonaws.iam#UpdateServerCertificateRequest": { + "type": "structure", + "members": { + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name of the server certificate that you want to update.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "NewPath": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The new path for the server certificate. Include this only if you are updating the\n server certificate's path.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "NewServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The new name for the server certificate. Include this only if you are updating the\n server certificate's name. The name of the certificate cannot contain any spaces.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateServiceSpecificCredential": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateServiceSpecificCredentialRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#NoSuchEntityException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the status of a service-specific credential to Active or\n Inactive. Service-specific credentials that are inactive cannot be used\n for authentication to the service. This operation can be used to disable a user's\n service-specific credential as part of a credential rotation work flow.

" + } + }, + "com.amazonaws.iam#UpdateServiceSpecificCredentialRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user associated with the service-specific credential. If you do\n not specify this value, then the operation assumes the user whose credentials are used\n to call the operation.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "ServiceSpecificCredentialId": { + "target": "com.amazonaws.iam#serviceSpecificCredentialId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the service-specific credential.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status to be assigned to the service-specific credential.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateSigningCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateSigningCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the status of the specified user signing certificate from active to disabled,\n or vice versa. This operation can be used to disable an IAM user's signing\n certificate as part of a certificate rotation work flow.

\n

If the UserName field is not specified, the user name is determined\n implicitly based on the Amazon Web Services access key ID used to sign the request. This operation\n works for access keys under the Amazon Web Services account. Consequently, you can use this operation\n to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated\n users.

", + "smithy.api#examples": [ + { + "title": "To change the active status of a signing certificate for an IAM user", + "documentation": "The following command changes the status of a signing certificate for a user named Bob to Inactive.", + "input": { + "UserName": "Bob", + "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", + "Status": "Inactive" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateSigningCertificateRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user the signing certificate belongs to.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "CertificateId": { + "target": "com.amazonaws.iam#certificateIdType", + "traits": { + "smithy.api#documentation": "

The ID of the signing certificate you want to update.

\n

This parameter allows (through its regex pattern) a string of characters that can \n consist of any upper or lowercased letter or digit.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.iam#statusType", + "traits": { + "smithy.api#documentation": "

The status you want to assign to the certificate. Active means that the\n certificate can be used for programmatic calls to Amazon Web Services Inactive means that\n the certificate cannot be used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UpdateUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UpdateUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#EntityTemporarilyUnmodifiableException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the name and/or the path of the specified IAM user.

\n \n

You should understand the implications of changing an IAM user's path or\n name. For more information, see Renaming an IAM\n user and Renaming an IAM\n group in the IAM User Guide.

\n
\n \n

To change a user name, the requester must have appropriate permissions on both\n the source object and the target object. For example, to change Bob to Robert, the\n entity making the request must have permission on Bob and Robert, or must have\n permission on all (*). For more information about permissions, see Permissions and policies.

\n
", + "smithy.api#examples": [ + { + "title": "To change an IAM user's name", + "documentation": "The following command changes the name of the IAM user Bob to Robert. It does not change the user's path.", + "input": { + "UserName": "Bob", + "NewUserName": "Robert" + } + } + ] + } + }, + "com.amazonaws.iam#UpdateUserRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

Name of the user to update. If you're changing the name of the user, this is the\n original user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "NewPath": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

New path for the IAM user. Include this parameter only if you're changing the user's\n path.

\n

This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

" + } + }, + "NewUserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

New name for the user. Include this parameter only if you're changing the user's\n name.

\n

IAM user, group, role, and policy names must be unique within the account. Names are\n not distinguished by case. For example, you cannot create resources named both\n \"MyResource\" and \"myresource\".

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UploadSSHPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UploadSSHPublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.iam#UploadSSHPublicKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#DuplicateSSHPublicKeyException" + }, + { + "target": "com.amazonaws.iam#InvalidPublicKeyException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#UnrecognizedPublicKeyEncodingException" + } + ], + "traits": { + "smithy.api#documentation": "

Uploads an SSH public key and associates it with the specified IAM user.

\n

The SSH public key uploaded by this operation can be used only for authenticating the\n associated IAM user to an CodeCommit repository. For more information about using SSH keys\n to authenticate to an CodeCommit repository, see Set up CodeCommit for\n SSH connections in the CodeCommit User Guide.

" + } + }, + "com.amazonaws.iam#UploadSSHPublicKeyRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The name of the IAM user to associate the SSH public key with.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "SSHPublicKeyBody": { + "target": "com.amazonaws.iam#publicKeyMaterialType", + "traits": { + "smithy.api#documentation": "

The SSH public key. The public key must be encoded in ssh-rsa format or PEM format.\n The minimum bit-length of the public key is 2048 bits. For example, you can generate a\n 2048-bit key, and the resulting PEM file is 1679 bytes long.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UploadSSHPublicKeyResponse": { + "type": "structure", + "members": { + "SSHPublicKey": { + "target": "com.amazonaws.iam#SSHPublicKey", + "traits": { + "smithy.api#documentation": "

Contains information about the SSH public key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful UploadSSHPublicKey\n request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#UploadServerCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UploadServerCertificateRequest" + }, + "output": { + "target": "com.amazonaws.iam#UploadServerCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidInputException" + }, + { + "target": "com.amazonaws.iam#KeyPairMismatchException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedCertificateException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Uploads a server certificate entity for the Amazon Web Services account. The server certificate\n entity includes a public key certificate, a private key, and an optional certificate\n chain, which should all be PEM-encoded.

\n

We recommend that you use Certificate Manager to\n provision, manage, and deploy your server certificates. With ACM you can request a\n certificate, deploy it to Amazon Web Services resources, and let ACM handle certificate renewals for\n you. Certificates provided by ACM are free. For more information about using ACM,\n see the Certificate Manager User\n Guide.

\n

For more information about working with server certificates, see Working\n with server certificates in the IAM User Guide. This\n topic includes a list of Amazon Web Services services that can use the server certificates that you\n manage with IAM.

\n

For information about the number of server certificates you can upload, see IAM and STS\n quotas in the IAM User Guide.

\n \n

Because the body of the public key certificate, private key, and the certificate\n chain can be large, you should use POST rather than GET when calling\n UploadServerCertificate. For information about setting up\n signatures and authorization through the API, see Signing Amazon Web Services API\n requests in the Amazon Web Services General Reference. For general\n information about using the Query API with IAM, see Calling the API by making HTTP query\n requests in the IAM User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To upload a server certificate to your AWS account", + "documentation": "The following upload-server-certificate command uploads a server certificate to your AWS account:", + "input": { + "ServerCertificateName": "ProdServerCert", + "Path": "/company/servercerts/", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----", + "PrivateKey": "-----BEGIN DSA PRIVATE KEY----------END DSA PRIVATE KEY-----" + }, + "output": { + "ServerCertificateMetadata": { + "ServerCertificateName": "ProdServerCert", + "Path": "/company/servercerts/", + "Arn": "arn:aws:iam::123456789012:server-certificate/company/servercerts/ProdServerCert", + "UploadDate": "2010-05-08T01:02:03.004Z", + "ServerCertificateId": "ASCA1111111111EXAMPLE", + "Expiration": "2012-05-08T01:02:03.004Z" + } + } + } + ] + } + }, + "com.amazonaws.iam#UploadServerCertificateRequest": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path for the server certificate. For more information about paths, see IAM\n identifiers in the IAM User Guide.

\n

This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its regex pattern) a string of characters consisting \n of either a forward slash (/) by itself or a string that must begin and end with forward slashes.\n In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including \n most punctuation characters, digits, and upper and lowercased letters.

\n \n

If you are uploading a server certificate specifically for use with Amazon\n CloudFront distributions, you must specify a path using the path\n parameter. The path must begin with /cloudfront and must include a\n trailing slash (for example, /cloudfront/test/).

\n
" + } + }, + "ServerCertificateName": { + "target": "com.amazonaws.iam#serverCertificateNameType", + "traits": { + "smithy.api#documentation": "

The name for the server certificate. Do not include the path in this value. The name\n of the certificate cannot contain any spaces.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "smithy.api#required": {} + } + }, + "CertificateBody": { + "target": "com.amazonaws.iam#certificateBodyType", + "traits": { + "smithy.api#documentation": "

The contents of the public key certificate in PEM-encoded format.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "PrivateKey": { + "target": "com.amazonaws.iam#privateKeyType", + "traits": { + "smithy.api#documentation": "

The contents of the private key in PEM-encoded format.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "CertificateChain": { + "target": "com.amazonaws.iam#certificateChainType", + "traits": { + "smithy.api#documentation": "

The contents of the certificate chain. This is typically a concatenation of the\n PEM-encoded public key certificates of the chain.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that you want to attach to the new IAM server certificate resource.\n Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

\n \n

If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request \n fails and the resource is not created.

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UploadServerCertificateResponse": { + "type": "structure", + "members": { + "ServerCertificateMetadata": { + "target": "com.amazonaws.iam#ServerCertificateMetadata", + "traits": { + "smithy.api#documentation": "

The meta information of the uploaded server certificate without its certificate body,\n certificate chain, and private key.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the new IAM server certificate. The returned list of tags is sorted by tag key.\n For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful UploadServerCertificate request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#UploadSigningCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#UploadSigningCertificateRequest" + }, + "output": { + "target": "com.amazonaws.iam#UploadSigningCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.iam#DuplicateCertificateException" + }, + { + "target": "com.amazonaws.iam#EntityAlreadyExistsException" + }, + { + "target": "com.amazonaws.iam#InvalidCertificateException" + }, + { + "target": "com.amazonaws.iam#LimitExceededException" + }, + { + "target": "com.amazonaws.iam#MalformedCertificateException" + }, + { + "target": "com.amazonaws.iam#NoSuchEntityException" + }, + { + "target": "com.amazonaws.iam#ServiceFailureException" + } + ], + "traits": { + "smithy.api#documentation": "

Uploads an X.509 signing certificate and associates it with the specified IAM user.\n Some Amazon Web Services services require you to use certificates to validate requests that are signed\n with a corresponding private key. When you upload the certificate, its default status is\n Active.

\n

For information about when you would use an X.509 signing certificate, see Managing\n server certificates in IAM in the\n IAM User Guide.

\n

If the UserName is not specified, the IAM user name is determined\n implicitly based on the Amazon Web Services access key ID used to sign the request. This operation\n works for access keys under the Amazon Web Services account. Consequently, you can use this operation\n to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated\n users.

\n \n

Because the body of an X.509 certificate can be large, you should use POST rather\n than GET when calling UploadSigningCertificate. For information about\n setting up signatures and authorization through the API, see Signing\n Amazon Web Services API requests in the Amazon Web Services General Reference. For\n general information about using the Query API with IAM, see Making query\n requests in the IAM User Guide.

\n
", + "smithy.api#examples": [ + { + "title": "To upload a signing certificate for an IAM user", + "documentation": "The following command uploads a signing certificate for the IAM user named Bob.", + "input": { + "UserName": "Bob", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----" + }, + "output": { + "Certificate": { + "CertificateId": "ID123456789012345EXAMPLE", + "UserName": "Bob", + "Status": "Active", + "CertificateBody": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----", + "UploadDate": "2015-06-06T21:40:08.121Z" + } + } + } + ] + } + }, + "com.amazonaws.iam#UploadSigningCertificateRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.iam#existingUserNameType", + "traits": { + "smithy.api#documentation": "

The name of the user the signing certificate is for.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" + } + }, + "CertificateBody": { + "target": "com.amazonaws.iam#certificateBodyType", + "traits": { + "smithy.api#documentation": "

The contents of the signing certificate.

\n

The regex pattern \n used to validate this parameter is a string of characters consisting of the following:

\n
    \n
  • \n

    Any printable ASCII \n character ranging from the space character (\\u0020) through the end of the ASCII character range

    \n
  • \n
  • \n

    The printable characters in the Basic Latin and Latin-1 Supplement character set \n (through \\u00FF)

    \n
  • \n
  • \n

    The special characters tab (\\u0009), line feed (\\u000A), and \n carriage return (\\u000D)

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#UploadSigningCertificateResponse": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.iam#SigningCertificate", + "traits": { + "smithy.api#documentation": "

Information about the certificate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the response to a successful UploadSigningCertificate request.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#User": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the user. For more information about paths, see IAM identifiers in the\n IAM User Guide.

\n

The ARN of the policy used to set the permissions boundary for the user.

", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The friendly name identifying the user.

", + "smithy.api#required": {} + } + }, + "UserId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the user. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs\n and how to use ARNs in policies, see IAM Identifiers in the\n IAM User Guide.

", + "smithy.api#required": {} + } + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the user was created.

", + "smithy.api#required": {} + } + }, + "PasswordLastUsed": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the user's password was last used to sign in to an Amazon Web Services website.\n For a list of Amazon Web Services websites that capture a user's last sign-in time, see the Credential\n reports topic in the IAM User Guide. If a password is\n used more than once in a five-minute span, only the first use is returned in this field. If\n the field is null (no value), then it indicates that they never signed in with a password.\n This can be because:

\n
    \n
  • \n

    The user never had a password.

    \n
  • \n
  • \n

    A password exists but has not been used since IAM started tracking this\n information on October 20, 2014.

    \n
  • \n
\n

A null value does not mean that the user never had a password.\n Also, if the user does not currently have a password but had one in the past, then this\n field contains the date and time the most recent password was used.

\n

This value is returned only in the GetUser and ListUsers\n operations.

" + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#AttachedPermissionsBoundary", + "traits": { + "smithy.api#documentation": "

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM user entity.

\n

This data type is used as a response element in the following operations:

\n " + } + }, + "com.amazonaws.iam#UserDetail": { + "type": "structure", + "members": { + "Path": { + "target": "com.amazonaws.iam#pathType", + "traits": { + "smithy.api#documentation": "

The path to the user. For more information about paths, see IAM identifiers in the\n IAM User Guide.

" + } + }, + "UserName": { + "target": "com.amazonaws.iam#userNameType", + "traits": { + "smithy.api#documentation": "

The friendly name identifying the user.

" + } + }, + "UserId": { + "target": "com.amazonaws.iam#idType", + "traits": { + "smithy.api#documentation": "

The stable and unique string identifying the user. For more information about IDs, see\n IAM\n identifiers in the IAM User Guide.

" + } + }, + "Arn": { + "target": "com.amazonaws.iam#arnType" + }, + "CreateDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the user was created.

" + } + }, + "UserPolicyList": { + "target": "com.amazonaws.iam#policyDetailListType", + "traits": { + "smithy.api#documentation": "

A list of the inline policies embedded in the user.

" + } + }, + "GroupList": { + "target": "com.amazonaws.iam#groupNameListType", + "traits": { + "smithy.api#documentation": "

A list of IAM groups that the user is in.

" + } + }, + "AttachedManagedPolicies": { + "target": "com.amazonaws.iam#attachedPoliciesListType", + "traits": { + "smithy.api#documentation": "

A list of the managed policies attached to the user.

" + } + }, + "PermissionsBoundary": { + "target": "com.amazonaws.iam#AttachedPermissionsBoundary", + "traits": { + "smithy.api#documentation": "

The ARN of the policy used to set the permissions boundary for the user.

\n

For more information about permissions boundaries, see Permissions boundaries for IAM\n identities in the IAM User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an IAM user, including all the user's policies and all the\n IAM groups the user is in.

\n

This data type is used as a response element in the GetAccountAuthorizationDetails operation.

" + } + }, + "com.amazonaws.iam#VirtualMFADevice": { + "type": "structure", + "members": { + "SerialNumber": { + "target": "com.amazonaws.iam#serialNumberType", + "traits": { + "smithy.api#documentation": "

The serial number associated with VirtualMFADevice.

", + "smithy.api#required": {} + } + }, + "Base32StringSeed": { + "target": "com.amazonaws.iam#BootstrapDatum", + "traits": { + "smithy.api#documentation": "

The base32 seed defined as specified in RFC3548. The Base32StringSeed is base32-encoded.

" + } + }, + "QRCodePNG": { + "target": "com.amazonaws.iam#BootstrapDatum", + "traits": { + "smithy.api#documentation": "

A QR code PNG image that encodes\n otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String\n where $virtualMFADeviceName is one of the create call arguments.\n AccountName is the user name if set (otherwise, the account ID otherwise),\n and Base32String is the seed in base32 format. The Base32String\n value is base64-encoded.

" + } + }, + "User": { + "target": "com.amazonaws.iam#User", + "traits": { + "smithy.api#documentation": "

The IAM user associated with this virtual MFA device.

" + } + }, + "EnableDate": { + "target": "com.amazonaws.iam#dateType", + "traits": { + "smithy.api#documentation": "

The date and time on which the virtual MFA device was enabled.

" + } + }, + "Tags": { + "target": "com.amazonaws.iam#tagListType", + "traits": { + "smithy.api#documentation": "

A list of tags that are attached to the virtual MFA device. For more information about tagging, see Tagging IAM resources in the\n IAM User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a virtual MFA device.

" + } + }, + "com.amazonaws.iam#accessKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 16, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.iam#accessKeyMetadataListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#AccessKeyMetadata" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of access key metadata.

\n

This data type is used as a response element in the ListAccessKeys\n operation.

" + } + }, + "com.amazonaws.iam#accessKeySecretType": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#accountAliasListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#accountAliasType" + } + }, + "com.amazonaws.iam#accountAliasType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": "^[a-z0-9]([a-z0-9]|-(?!-)){1,61}[a-z0-9]$" + } + }, + "com.amazonaws.iam#accountIdType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\d{12}$" + } + }, + "com.amazonaws.iam#accountPropertiesMapType": { + "type": "map", + "key": { + "target": "com.amazonaws.iam#accountPropertyKeyType" + }, + "value": { + "target": "com.amazonaws.iam#accountPropertyValueType" + } + }, + "com.amazonaws.iam#accountPropertyKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "^[A-Za-z][A-Za-z0-9/_-]*$" + } + }, + "com.amazonaws.iam#accountPropertyValueType": { + "type": "string", + "traits": { + "smithy.api#documentation": "String representation of the property value. The service will validate\n and coerce the value based on the property key's expected type.\n For example, integer properties expect numeric strings, and boolean\n properties expect \"true\" or \"false\".", + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.iam#allUsers": { + "type": "boolean" + }, + "com.amazonaws.iam#arnType": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon Web Services resources.

\n

For more information about ARNs, go to Amazon Resource Names (ARNs) in\n the Amazon Web Services General Reference.

", + "smithy.api#length": { + "min": 20, + "max": 2048 + } + } + }, + "com.amazonaws.iam#assertionEncryptionModeType": { + "type": "enum", + "members": { + "Required": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Required" + } + }, + "Allowed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Allowed" + } + } + } + }, + "com.amazonaws.iam#assignmentStatusType": { + "type": "enum", + "members": { + "Assigned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Assigned" + } + }, + "Unassigned": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Unassigned" + } + }, + "Any": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Any" + } + } + } + }, + "com.amazonaws.iam#attachedPoliciesListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#AttachedPolicy" + } + }, + "com.amazonaws.iam#attachmentCountType": { + "type": "integer" + }, + "com.amazonaws.iam#authenticationCodeType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 6, + "max": 6 + }, + "smithy.api#pattern": "^[\\d]+$" + } + }, + "com.amazonaws.iam#booleanObjectType": { + "type": "boolean" + }, + "com.amazonaws.iam#booleanType": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, + "com.amazonaws.iam#certificateBodyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#certificateChainType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2097152 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#certificateIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 24, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.iam#certificateListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#SigningCertificate" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of signing certificates.

\n

This data type is used as a response element in the ListSigningCertificates operation.

" + } + }, + "com.amazonaws.iam#clientIDListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#clientIDType" + } + }, + "com.amazonaws.iam#clientIDType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.iam#consoleDeepLinkType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.iam#credentialAgeDays": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 36600 + } + } + }, + "com.amazonaws.iam#credentialReportExpiredExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#credentialReportNotPresentExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#credentialReportNotReadyExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#customSuffixType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#dateType": { + "type": "timestamp" + }, + "com.amazonaws.iam#delegationRequestDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#delegationRequestIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 16, + "max": 128 + }, + "smithy.api#pattern": "^[\\w-]+$" + } + }, + "com.amazonaws.iam#delegationRequestsListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#DelegationRequest" + } + }, + "com.amazonaws.iam#deleteConflictMessage": { + "type": "string" + }, + "com.amazonaws.iam#duplicateCertificateMessage": { + "type": "string" + }, + "com.amazonaws.iam#duplicateSSHPublicKeyMessage": { + "type": "string" + }, + "com.amazonaws.iam#encodingType": { + "type": "enum", + "members": { + "SSH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSH" + } + }, + "PEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PEM" + } + } + } + }, + "com.amazonaws.iam#entityAlreadyExistsMessage": { + "type": "string" + }, + "com.amazonaws.iam#entityDetailsListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#EntityDetails" + } + }, + "com.amazonaws.iam#entityListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#EntityType" + } + }, + "com.amazonaws.iam#entityNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#entityTemporarilyUnmodifiableMessage": { + "type": "string" + }, + "com.amazonaws.iam#existingUserNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#globalEndpointTokenVersion": { + "type": "enum", + "members": { + "v1Token": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v1Token" + } + }, + "v2Token": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "v2Token" + } + } + } + }, + "com.amazonaws.iam#groupDetailListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#GroupDetail" + } + }, + "com.amazonaws.iam#groupListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#Group" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of IAM groups.

\n

This data type is used as a response element in the ListGroups operation.

" + } + }, + "com.amazonaws.iam#groupNameListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#groupNameType" + } + }, + "com.amazonaws.iam#groupNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#idType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 16, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.iam#inlinePolicyTemplateListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#InlinePolicy" + } + }, + "com.amazonaws.iam#instanceProfileListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#InstanceProfile" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of instance profiles.

" + } + }, + "com.amazonaws.iam#instanceProfileNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#integerType": { + "type": "integer" + }, + "com.amazonaws.iam#invalidAuthenticationCodeMessage": { + "type": "string" + }, + "com.amazonaws.iam#invalidCertificateMessage": { + "type": "string" + }, + "com.amazonaws.iam#invalidInputMessage": { + "type": "string" + }, + "com.amazonaws.iam#invalidPublicKeyMessage": { + "type": "string" + }, + "com.amazonaws.iam#invalidUserTypeMessage": { + "type": "string" + }, + "com.amazonaws.iam#jobIDType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + } + } + }, + "com.amazonaws.iam#jobStatusType": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.iam#keyPairMismatchMessage": { + "type": "string" + }, + "com.amazonaws.iam#limitExceededMessage": { + "type": "string" + }, + "com.amazonaws.iam#listPolicyGrantingServiceAccessResponseListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ListPoliciesGrantingServiceAccessEntry" + } + }, + "com.amazonaws.iam#localeType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 12 + } + } + }, + "com.amazonaws.iam#malformedCertificateMessage": { + "type": "string" + }, + "com.amazonaws.iam#malformedPolicyDocumentMessage": { + "type": "string" + }, + "com.amazonaws.iam#managedByTypeType": { + "type": "enum", + "members": { + "Service": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Service" + } + } + } + }, + "com.amazonaws.iam#managedByValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.iam#managedPolicyArnListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#arnType" + } + }, + "com.amazonaws.iam#mapStringReplacementValueEntry": { + "type": "map", + "key": { + "target": "com.amazonaws.iam#stringType" + }, + "value": { + "target": "com.amazonaws.iam#ReplacementValueEntry" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + } + } + }, + "com.amazonaws.iam#markerType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 320 + }, + "smithy.api#pattern": "^[\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#maxItemsType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.iam#maxPasswordAgeType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1095 + } + } + }, + "com.amazonaws.iam#mfaDeviceListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#MFADevice" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of MFA devices.

\n

This data type is used as a response element in the ListMFADevices and ListVirtualMFADevices operations.

" + } + }, + "com.amazonaws.iam#minimumPasswordLengthType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 6, + "max": 128 + } + } + }, + "com.amazonaws.iam#minorVersionType": { + "type": "integer" + }, + "com.amazonaws.iam#nameConflictMessage": { + "type": "string" + }, + "com.amazonaws.iam#noSuchEntityMessage": { + "type": "string" + }, + "com.amazonaws.iam#notesType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#notificationChannelType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 400 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:_.-]+$" + } + }, + "com.amazonaws.iam#openIdIdpCommunicationErrorExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#organizationsEntityPathType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 427 + }, + "smithy.api#pattern": "^o-[0-9a-z]{10,32}\\/r-[0-9a-z]{4,32}[0-9a-z-\\/]*$" + } + }, + "com.amazonaws.iam#organizationsPolicyIdType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^p-[0-9a-zA-Z_]{8,128}$" + } + }, + "com.amazonaws.iam#ownerIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/+=,.@_-]+$" + } + }, + "com.amazonaws.iam#parameterDefaultValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.iam#parameterDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.iam#parameterNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.iam#parameterSubTypeType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.iam#parameterTypeType": { + "type": "enum", + "members": { + "String": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "String" + } + }, + "StringList": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StringList" + } + }, + "Number": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Number" + } + }, + "NumberList": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NumberList" + } + }, + "Arn": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Arn" + } + }, + "ArnList": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ArnList" + } + } + } + }, + "com.amazonaws.iam#parametersDefinitionListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ParameterDefinition" + } + }, + "com.amazonaws.iam#passwordPolicyViolationMessage": { + "type": "string" + }, + "com.amazonaws.iam#passwordReusePreventionType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 24 + } + } + }, + "com.amazonaws.iam#passwordType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#pathPrefixType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^\\u002F[\\u0021-\\u007F]*$" + } + }, + "com.amazonaws.iam#pathType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)$" + } + }, + "com.amazonaws.iam#permissionCheckResultType": { + "type": "enum", + "members": { + "ALLOWED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALLOWED" + } + }, + "DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DENIED" + } + }, + "UNSURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSURE" + } + } + } + }, + "com.amazonaws.iam#permissionCheckStatusType": { + "type": "enum", + "members": { + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.iam#permissionType": { + "type": "string" + }, + "com.amazonaws.iam#policyDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.iam#policyDetailListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyDetail" + } + }, + "com.amazonaws.iam#policyDocumentType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 131072 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#policyDocumentVersionListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyVersion" + } + }, + "com.amazonaws.iam#policyEvaluationErrorMessage": { + "type": "string" + }, + "com.amazonaws.iam#policyGrantingServiceAccessListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyGrantingServiceAccess" + } + }, + "com.amazonaws.iam#policyListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#Policy" + } + }, + "com.amazonaws.iam#policyNameListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#policyNameType" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of policy names.

\n

This data type is used as a response element in the ListPolicies\n operation.

" + } + }, + "com.amazonaws.iam#policyNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#policyNotAttachableMessage": { + "type": "string" + }, + "com.amazonaws.iam#policyOwnerEntityType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER" + } + }, + "ROLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLE" + } + }, + "GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GROUP" + } + } + } + }, + "com.amazonaws.iam#policyParameterListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#PolicyParameter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.iam#policyParameterNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 256 + }, + "smithy.api#pattern": "^[ -~]+$" + } + }, + "com.amazonaws.iam#policyParameterValueType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[ -~]+$" + } + }, + "com.amazonaws.iam#policyParameterValuesListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#policyParameterValueType" + } + }, + "com.amazonaws.iam#policyPathType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^((/[A-Za-z0-9\\.,\\+@=_-]+)*)/$" + } + }, + "com.amazonaws.iam#policyScopeType": { + "type": "enum", + "members": { + "All": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "All" + } + }, + "AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS" + } + }, + "Local": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Local" + } + } + } + }, + "com.amazonaws.iam#policyType": { + "type": "enum", + "members": { + "INLINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INLINE" + } + }, + "MANAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANAGED" + } + } + } + }, + "com.amazonaws.iam#policyVersionIdType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^v[1-9][0-9]*(\\.[A-Za-z0-9-]*)?$" + } + }, + "com.amazonaws.iam#privateKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 22, + "max": 64 + }, + "smithy.api#pattern": "^[A-Z0-9]+$" + } + }, + "com.amazonaws.iam#privateKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#SAMLPrivateKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } + } + }, + "com.amazonaws.iam#privateKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#publicKeyFingerprintType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 48, + "max": 48 + }, + "smithy.api#pattern": "^[:\\w]+$" + } + }, + "com.amazonaws.iam#publicKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.iam#publicKeyMaterialType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.iam#redirectUrlType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^http(s?)://[a-zA-Z0-9._/-]*(\\?[a-zA-Z0-9._=&-]*)?(#[a-zA-Z0-9._/-]*)?$" + } + }, + "com.amazonaws.iam#replacementValueListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#stringType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.iam#reportGenerationLimitExceededMessage": { + "type": "string" + }, + "com.amazonaws.iam#requestMessageType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#requestorNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#requestorWorkflowIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 400 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+$" + } + }, + "com.amazonaws.iam#responseMarkerType": { + "type": "string" + }, + "com.amazonaws.iam#roleDescriptionPatternType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + } + } + }, + "com.amazonaws.iam#roleDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#roleDetailListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#RoleDetail" + } + }, + "com.amazonaws.iam#roleListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#Role" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of IAM roles.

\n

This data type is used as a response element in the ListRoles operation.

" + } + }, + "com.amazonaws.iam#roleMaxSessionDurationType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 3600, + "max": 43200 + } + } + }, + "com.amazonaws.iam#roleModifiedMessage": { + "type": "string" + }, + "com.amazonaws.iam#roleNamePatternType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.iam#roleNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#rolePathPatternType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^/[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*/$" + } + }, + "com.amazonaws.iam#rolePermissionRestrictionArnListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#arnType" + } + }, + "com.amazonaws.iam#roleTemplateDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*$" + } + }, + "com.amazonaws.iam#roleTemplateDisabledMessage": { + "type": "string" + }, + "com.amazonaws.iam#roleTemplateNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.\\-]+$" + } + }, + "com.amazonaws.iam#serialNumberType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 9, + "max": 256 + }, + "smithy.api#pattern": "^[\\w+=/:,.@-]+$" + } + }, + "com.amazonaws.iam#serverCertificateMetadataListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#ServerCertificateMetadata" + } + }, + "com.amazonaws.iam#serverCertificateNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#serviceCredentialAlias": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#serviceCredentialSecret": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#serviceFailureExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#serviceName": { + "type": "string" + }, + "com.amazonaws.iam#serviceNameType": { + "type": "string" + }, + "com.amazonaws.iam#serviceNamespaceListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#serviceNamespaceType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.iam#serviceNamespaceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\w-]*$" + } + }, + "com.amazonaws.iam#serviceNotSupportedMessage": { + "type": "string" + }, + "com.amazonaws.iam#servicePassword": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.iam#serviceSpecificCredentialId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.iam#serviceUserName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + }, + "smithy.api#pattern": "^[\\w+=,.@-]*$" + } + }, + "com.amazonaws.iam#sessionDurationType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 300, + "max": 43200 + } + } + }, + "com.amazonaws.iam#sortKeyType": { + "type": "enum", + "members": { + "SERVICE_NAMESPACE_ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_NAMESPACE_ASCENDING" + } + }, + "SERVICE_NAMESPACE_DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_NAMESPACE_DESCENDING" + } + }, + "LAST_AUTHENTICATED_TIME_ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAST_AUTHENTICATED_TIME_ASCENDING" + } + }, + "LAST_AUTHENTICATED_TIME_DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAST_AUTHENTICATED_TIME_DESCENDING" + } + } + } + }, + "com.amazonaws.iam#stateType": { + "type": "enum", + "members": { + "UNASSIGNED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNASSIGNED" + } + }, + "ASSIGNED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASSIGNED" + } + }, + "PENDING_APPROVAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_APPROVAL" + } + }, + "FINALIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FINALIZED" + } + }, + "ACCEPTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCEPTED" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRED" + } + } + } + }, + "com.amazonaws.iam#statusType": { + "type": "enum", + "members": { + "Active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Active" + } + }, + "Inactive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Inactive" + } + }, + "Expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expired" + } + } + } + }, + "com.amazonaws.iam#stringType": { + "type": "string" + }, + "com.amazonaws.iam#summaryContentType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10000 + } + } + }, + "com.amazonaws.iam#summaryKeyType": { + "type": "enum", + "members": { + "Users": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Users" + } + }, + "UsersQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UsersQuota" + } + }, + "Groups": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Groups" + } + }, + "GroupsQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GroupsQuota" + } + }, + "ServerCertificates": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServerCertificates" + } + }, + "ServerCertificatesQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ServerCertificatesQuota" + } + }, + "UserPolicySizeQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UserPolicySizeQuota" + } + }, + "GroupPolicySizeQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GroupPolicySizeQuota" + } + }, + "GroupsPerUserQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GroupsPerUserQuota" + } + }, + "SigningCertificatesPerUserQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SigningCertificatesPerUserQuota" + } + }, + "AccessKeysPerUserQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccessKeysPerUserQuota" + } + }, + "MFADevices": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MFADevices" + } + }, + "MFADevicesInUse": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MFADevicesInUse" + } + }, + "AccountMFAEnabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountMFAEnabled" + } + }, + "AccountAccessKeysPresent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountAccessKeysPresent" + } + }, + "AccountPasswordPresent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountPasswordPresent" + } + }, + "AccountSigningCertificatesPresent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountSigningCertificatesPresent" + } + }, + "AttachedPoliciesPerGroupQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AttachedPoliciesPerGroupQuota" + } + }, + "AttachedPoliciesPerRoleQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AttachedPoliciesPerRoleQuota" + } + }, + "AttachedPoliciesPerUserQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AttachedPoliciesPerUserQuota" + } + }, + "Policies": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Policies" + } + }, + "PoliciesQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PoliciesQuota" + } + }, + "PolicySizeQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PolicySizeQuota" + } + }, + "PolicyVersionsInUse": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PolicyVersionsInUse" + } + }, + "PolicyVersionsInUseQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PolicyVersionsInUseQuota" + } + }, + "VersionsPerPolicyQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VersionsPerPolicyQuota" + } + }, + "GlobalEndpointTokenVersion": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GlobalEndpointTokenVersion" + } + }, + "AssumeRolePolicySizeQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AssumeRolePolicySizeQuota" + } + }, + "InstanceProfiles": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceProfiles" + } + }, + "InstanceProfilesQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceProfilesQuota" + } + }, + "Providers": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Providers" + } + }, + "RolePolicySizeQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RolePolicySizeQuota" + } + }, + "Roles": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Roles" + } + }, + "RolesQuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RolesQuota" + } + } + } + }, + "com.amazonaws.iam#summaryMapType": { + "type": "map", + "key": { + "target": "com.amazonaws.iam#summaryKeyType" + }, + "value": { + "target": "com.amazonaws.iam#summaryValueType" + } + }, + "com.amazonaws.iam#summaryStateType": { + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "NOT_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_AVAILABLE" + } + }, + "NOT_SUPPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_SUPPORTED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.iam#summaryValueType": { + "type": "integer" + }, + "com.amazonaws.iam#tagKeyListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#tagKeyType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.iam#tagKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+$" + } + }, + "com.amazonaws.iam#tagListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.iam#tagTemplateKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@{}]+$" + } + }, + "com.amazonaws.iam#tagTemplateListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#TagTemplate" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.iam#tagTemplateValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@{}]*$" + } + }, + "com.amazonaws.iam#tagValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$" + } + }, + "com.amazonaws.iam#thumbprintListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#thumbprintType" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of thumbprints of identity provider server certificates.

" + } + }, + "com.amazonaws.iam#thumbprintType": { + "type": "string", + "traits": { + "smithy.api#documentation": "

Contains a thumbprint for an identity provider's server certificate.

\n

The identity provider's server certificate thumbprint is the hex-encoded SHA-1 hash\n value of the self-signed X.509 certificate. This thumbprint is used by the domain where the\n OpenID Connect provider makes its keys available. The thumbprint is always a 40-character\n string.

", + "smithy.api#length": { + "min": 40, + "max": 40 + } + } + }, + "com.amazonaws.iam#unmodifiableEntityMessage": { + "type": "string" + }, + "com.amazonaws.iam#unrecognizedPublicKeyEncodingMessage": { + "type": "string" + }, + "com.amazonaws.iam#userDetailListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#UserDetail" + } + }, + "com.amazonaws.iam#userListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#User" + }, + "traits": { + "smithy.api#documentation": "

Contains a list of users.

\n

This data type is used as a response element in the GetGroup and ListUsers\n operations.

" + } + }, + "com.amazonaws.iam#userNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + }, + "com.amazonaws.iam#virtualMFADeviceListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#VirtualMFADevice" + } + }, + "com.amazonaws.iam#virtualMFADeviceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + }, + "smithy.api#pattern": "^[\\w+=,.@-]+$" + } + } + } +} diff --git a/codegen/aws-models/kinesis.json b/codegen/aws-models/kinesis.json new file mode 100644 index 00000000..564415ec --- /dev/null +++ b/codegen/aws-models/kinesis.json @@ -0,0 +1,17531 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + }, + { + "id": "RuleSetAwsBuiltIn.AWS::Auth::AccountIdEndpointMode", + "namespace": "*" + }, + { + "id": "RuleSetAwsBuiltIn.AWS::Auth::AccountId", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.kinesis#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Specifies that you do not have the permissions required to perform this\n operation.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#AddTagsToStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#AddTagsToStreamInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates tags for the specified Kinesis data stream. You can assign up to 50\n tags to a data stream.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

If tags have already been assigned to the stream, AddTagsToStream\n overwrites any existing tags that correspond to the specified tag keys.

\n

\n AddTagsToStream has a limit of five transactions per second per\n account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#AddTagsToStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream.

" + } + }, + "Tags": { + "target": "com.amazonaws.kinesis#TagMap", + "traits": { + "smithy.api#documentation": "

A set of up to 50 key-value pairs to use to create the tags. A tag consists of a required key and an optional value. You can add up to 50 tags per resource.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for AddTagsToStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#BooleanObject": { + "type": "boolean" + }, + "com.amazonaws.kinesis#BucketARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[-a-z0-9]*:s3:::[a-z0-9._-]{3,63}$" + } + }, + "com.amazonaws.kinesis#ChannelARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws.*:kinesis:.*:\\d{12}:channel/\\S+$" + } + }, + "com.amazonaws.kinesis#ChannelCountObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000000 + } + } + }, + "com.amazonaws.kinesis#ChannelDescription": { + "type": "structure", + "members": { + "ChannelName": { + "target": "com.amazonaws.kinesis#ChannelName", + "traits": { + "smithy.api#documentation": "

The name of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelARN": { + "target": "com.amazonaws.kinesis#ChannelARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelId": { + "target": "com.amazonaws.kinesis#ChannelId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelStatus": { + "target": "com.amazonaws.kinesis#ChannelStatus", + "traits": { + "smithy.api#documentation": "

The current status of the channel. Valid values:

\n
    \n
  • \n

    \n CREATING - The channel is being created.

    \n
  • \n
  • \n

    \n ACTIVE - The channel is ready to deliver records.

    \n
  • \n
  • \n

    \n UPDATING - The channel configuration is being updated.

    \n
  • \n
  • \n

    \n DELETING - The channel is being deleted.

    \n
  • \n
  • \n

    \n FAILED - See ChannelStatusReason for the failure cause.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "ChannelStatusReason": { + "target": "com.amazonaws.kinesis#ChannelStatusReason", + "traits": { + "smithy.api#documentation": "

A message describing the reason for a FAILED status.

" + } + }, + "ChannelCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the channel was created.

", + "smithy.api#required": {} + } + }, + "ServiceExecutionRoleARN": { + "target": "com.amazonaws.kinesis#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Data Streams assumes to write records to the destination.

", + "smithy.api#required": {} + } + }, + "StreamConfigurationList": { + "target": "com.amazonaws.kinesis#ChannelStreamDescriptionList", + "traits": { + "smithy.api#documentation": "

The source stream configuration for the channel.

", + "smithy.api#required": {} + } + }, + "S3DestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3DestinationDescription", + "traits": { + "smithy.api#documentation": "

The configuration for delivery to a general purpose Amazon S3 bucket. Present only when the channel destination is a general purpose Amazon S3 bucket.

" + } + }, + "S3TablesDestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3TablesDestinationDescription", + "traits": { + "smithy.api#documentation": "

The configuration for delivery to streaming tables on Apache Iceberg in Amazon S3 Tables. Present only when the channel destination is a streaming table.

" + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.kinesis#ChannelEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key configuration that Amazon Kinesis Data Streams uses to encrypt data delivered to the channel's destination.

" + } + }, + "LoggingConfiguration": { + "target": "com.amazonaws.kinesis#ChannelLoggingConfiguration", + "traits": { + "smithy.api#documentation": "

The Amazon CloudWatch Logs configuration for the channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration and current status of a channel.

" + } + }, + "com.amazonaws.kinesis#ChannelDestinationType": { + "type": "enum", + "members": { + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" + } + }, + "S3_TABLES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3_TABLES" + } + } + } + }, + "com.amazonaws.kinesis#ChannelEncryptionConfiguration": { + "type": "structure", + "members": { + "EncryptionType": { + "target": "com.amazonaws.kinesis#ChannelEncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type. The only valid value is KMS.

", + "smithy.api#required": {} + } + }, + "KeyId": { + "target": "com.amazonaws.kinesis#KeyId", + "traits": { + "smithy.api#documentation": "

The identifier of the customer managed Amazon Web Services KMS key. You cannot use the Amazon Kinesis Data Streams service key (aws/kinesis).

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS key that Amazon Kinesis Data Streams uses to encrypt data delivered to the channel's destination.

" + } + }, + "com.amazonaws.kinesis#ChannelEncryptionType": { + "type": "enum", + "members": { + "KMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KMS" + } + } + } + }, + "com.amazonaws.kinesis#ChannelId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.kinesis#ChannelLoggingConfiguration": { + "type": "structure", + "members": { + "CloudWatchLogs": { + "target": "com.amazonaws.kinesis#CloudWatchLogs", + "traits": { + "smithy.api#documentation": "

The Amazon CloudWatch Logs settings for the channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon CloudWatch Logs configuration for a channel.

" + } + }, + "com.amazonaws.kinesis#ChannelLoggingUpdateInput": { + "type": "structure", + "members": { + "CloudWatchLogs": { + "target": "com.amazonaws.kinesis#CloudWatchLogsUpdateInput", + "traits": { + "smithy.api#documentation": "

The updated Amazon CloudWatch Logs settings, including whether logging is enabled and the target log group and log stream.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated Amazon CloudWatch Logs configuration for a channel. Used in UpdateChannel.

" + } + }, + "com.amazonaws.kinesis#ChannelName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" + } + }, + "com.amazonaws.kinesis#ChannelStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.kinesis#ChannelStatusReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.kinesis#ChannelStreamConfiguration": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source Kinesis data stream.

", + "smithy.api#required": {} + } + }, + "RecordConfiguration": { + "target": "com.amazonaws.kinesis#RecordConfiguration", + "traits": { + "smithy.api#documentation": "

The record format configuration for the source stream.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the source stream and record configuration when creating a channel.

" + } + }, + "com.amazonaws.kinesis#ChannelStreamConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ChannelStreamConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ChannelStreamDescription": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source Kinesis data stream.

", + "smithy.api#required": {} + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the source stream was created.

", + "smithy.api#required": {} + } + }, + "RecordConfiguration": { + "target": "com.amazonaws.kinesis#RecordConfiguration", + "traits": { + "smithy.api#documentation": "

The record format configuration for the source stream.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the source stream of a channel.

" + } + }, + "com.amazonaws.kinesis#ChannelStreamDescriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ChannelStreamDescription" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ChannelStreamIdentifier": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source Kinesis data stream.

", + "smithy.api#required": {} + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the source stream was created.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Identifies a source stream associated with a channel.

" + } + }, + "com.amazonaws.kinesis#ChannelStreamIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ChannelStreamIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ChannelSummary": { + "type": "structure", + "members": { + "ChannelName": { + "target": "com.amazonaws.kinesis#ChannelName", + "traits": { + "smithy.api#documentation": "

The name of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelARN": { + "target": "com.amazonaws.kinesis#ChannelARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelId": { + "target": "com.amazonaws.kinesis#ChannelId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the channel.

", + "smithy.api#required": {} + } + }, + "ChannelStatus": { + "target": "com.amazonaws.kinesis#ChannelStatus", + "traits": { + "smithy.api#documentation": "

The current status of the channel. Valid values:

\n
    \n
  • \n

    \n CREATING - The channel is being created.

    \n
  • \n
  • \n

    \n ACTIVE - The channel is ready to deliver records.

    \n
  • \n
  • \n

    \n UPDATING - The channel configuration is being updated.

    \n
  • \n
  • \n

    \n DELETING - The channel is being deleted.

    \n
  • \n
  • \n

    \n FAILED - See ChannelStatusReason for the failure cause.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "ChannelStatusReason": { + "target": "com.amazonaws.kinesis#ChannelStatusReason", + "traits": { + "smithy.api#documentation": "

A message describing the reason for a FAILED status.

" + } + }, + "ChannelCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time at which the channel was created.

", + "smithy.api#required": {} + } + }, + "ChannelDestinationType": { + "target": "com.amazonaws.kinesis#ChannelDestinationType", + "traits": { + "smithy.api#documentation": "

The destination type of the channel. Valid values:

\n
    \n
  • \n

    \n S3 - Delivery to a general purpose Amazon S3 bucket.

    \n
  • \n
  • \n

    \n S3_TABLES - Delivery to streaming tables on Apache Iceberg.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Streams": { + "target": "com.amazonaws.kinesis#ChannelStreamIdentifierList", + "traits": { + "smithy.api#documentation": "

The source streams associated with the channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of a channel, returned by ListChannels.

" + } + }, + "com.amazonaws.kinesis#ChannelSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ChannelSummary" + } + }, + "com.amazonaws.kinesis#ChildShard": { + "type": "structure", + "members": { + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the existing child shard of the current shard.

", + "smithy.api#required": {} + } + }, + "ParentShards": { + "target": "com.amazonaws.kinesis#ShardIdList", + "traits": { + "smithy.api#documentation": "

The current shard that is the parent of the existing child shard.

", + "smithy.api#required": {} + } + }, + "HashKeyRange": { + "target": "com.amazonaws.kinesis#HashKeyRange", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Output parameter of the GetRecords API. The existing child shard of the current\n shard.

" + } + }, + "com.amazonaws.kinesis#ChildShardList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ChildShard" + } + }, + "com.amazonaws.kinesis#CloudWatchLogGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]+$" + } + }, + "com.amazonaws.kinesis#CloudWatchLogStreamName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[^:*]*$" + } + }, + "com.amazonaws.kinesis#CloudWatchLogs": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Specifies whether logging to Amazon CloudWatch Logs is enabled.

", + "smithy.api#required": {} + } + }, + "LogGroupName": { + "target": "com.amazonaws.kinesis#CloudWatchLogGroupName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log group. Defaults to /aws/kinesis/{channelName}/{channelId}.

" + } + }, + "LogStreamName": { + "target": "com.amazonaws.kinesis#CloudWatchLogStreamName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log stream. Defaults to DestinationDelivery.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon CloudWatch Logs settings for channel logging.

" + } + }, + "com.amazonaws.kinesis#CloudWatchLogsUpdateInput": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Specifies whether logging to Amazon CloudWatch Logs is enabled.

", + "smithy.api#required": {} + } + }, + "LogGroupName": { + "target": "com.amazonaws.kinesis#CloudWatchLogGroupName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log group.

" + } + }, + "LogStreamName": { + "target": "com.amazonaws.kinesis#CloudWatchLogStreamName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log stream.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated Amazon CloudWatch Logs settings for a channel.

" + } + }, + "com.amazonaws.kinesis#Consumer": { + "type": "structure", + "members": { + "ConsumerName": { + "target": "com.amazonaws.kinesis#ConsumerName", + "traits": { + "smithy.api#documentation": "

The name of the consumer is something you choose when you register the\n consumer.

", + "smithy.api#required": {} + } + }, + "ConsumerARN": { + "target": "com.amazonaws.kinesis#ConsumerARN", + "traits": { + "smithy.api#documentation": "

When you register a consumer, Kinesis Data Streams generates an ARN for it. You need\n this ARN to be able to call SubscribeToShard.

\n

If you delete a consumer and then create a new one with the same name, it won't have\n the same ARN. That's because consumer ARNs contain the creation timestamp. This is\n important to keep in mind if you have IAM policies that reference consumer ARNs.

", + "smithy.api#required": {} + } + }, + "ConsumerStatus": { + "target": "com.amazonaws.kinesis#ConsumerStatus", + "traits": { + "smithy.api#documentation": "

A consumer can't read data while in the CREATING or DELETING\n states.

", + "smithy.api#required": {} + } + }, + "ConsumerCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the details of the consumer you registered. This type of\n object is returned by RegisterStreamConsumer.

" + } + }, + "com.amazonaws.kinesis#ConsumerARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+$" + } + }, + "com.amazonaws.kinesis#ConsumerCountObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000000 + } + } + }, + "com.amazonaws.kinesis#ConsumerDescription": { + "type": "structure", + "members": { + "ConsumerName": { + "target": "com.amazonaws.kinesis#ConsumerName", + "traits": { + "smithy.api#documentation": "

The name of the consumer is something you choose when you register the\n consumer.

", + "smithy.api#required": {} + } + }, + "ConsumerARN": { + "target": "com.amazonaws.kinesis#ConsumerARN", + "traits": { + "smithy.api#documentation": "

When you register a consumer, Kinesis Data Streams generates an ARN for it. You need\n this ARN to be able to call SubscribeToShard.

\n

If you delete a consumer and then create a new one with the same name, it won't have\n the same ARN. That's because consumer ARNs contain the creation timestamp. This is\n important to keep in mind if you have IAM policies that reference consumer ARNs.

", + "smithy.api#required": {} + } + }, + "ConsumerStatus": { + "target": "com.amazonaws.kinesis#ConsumerStatus", + "traits": { + "smithy.api#documentation": "

A consumer can't read data while in the CREATING or DELETING\n states.

", + "smithy.api#required": {} + } + }, + "ConsumerCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream with which you registered the consumer.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the details of a registered consumer. This type of object is\n returned by DescribeStreamConsumer.

" + } + }, + "com.amazonaws.kinesis#ConsumerList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#Consumer" + } + }, + "com.amazonaws.kinesis#ConsumerName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" + } + }, + "com.amazonaws.kinesis#ConsumerStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + } + } + }, + "com.amazonaws.kinesis#CreateChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#CreateChannelInput" + }, + "output": { + "target": "com.amazonaws.kinesis#CreateChannelOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a channel that delivers records from a Kinesis data stream to a destination. A channel reads records from the specified stream and writes them to streaming tables on Apache Iceberg (Amazon S3 Tables) or to a general purpose Amazon S3 bucket.

\n

You must specify either S3DestinationConfiguration or S3TablesDestinationConfiguration, but not both.

\n

To use this operation, you must have permission to pass the specified service execution IAM role to Amazon Kinesis Data Streams (the iam:PassRole permission on that role).

\n

Creating a channel is an asynchronous operation. Upon receiving the request, Amazon Kinesis Data Streams returns immediately with the channel in the CREATING state. After provisioning is complete, Amazon Kinesis Data Streams sets the state to ACTIVE. You can use DescribeChannel to check the current state.

\n

This operation is only supported for data streams with the on-demand capacity mode.

\n

This operation has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. Exceeding 5 TPS results in a LimitExceededException.

", + "smithy.api#examples": [ + { + "title": "To create an S3 channel", + "input": { + "ChannelName": "my-channel-name", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ], + "S3DestinationConfiguration": { + "StorageConfiguration": { + "BucketARN": "arn:aws:s3:::my-channel-bucket", + "ExpectedBucketOwner": "123456789012", + "CompressionType": "ZSTD" + }, + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012" + } + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + }, + "output": { + "ChannelDescription": { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "CREATING", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ], + "S3DestinationConfiguration": { + "DataFreshnessInSeconds": 300, + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012", + "ErrorOutputPrefix": "kinesis-channel/errors/my-channel/my-channel-id/" + }, + "StorageConfiguration": { + "BucketARN": "arn:aws:s3:::my-channel-bucket", + "ExpectedBucketOwner": "123456789012", + "OutputKeyTemplate": "kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}", + "StorageClass": "STANDARD", + "CompressionType": "ZSTD" + } + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + } + } + }, + { + "title": "To create an S3 Tables channel", + "input": { + "ChannelName": "my-channel-name", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "RecordConfiguration": { + "RecordFormatType": "JSON", + "GSRSchemaARN": "arn:aws:glue:us-east-1:123456789012:schema/my-registry/my-schema" + } + } + ], + "S3TablesDestinationConfiguration": { + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012" + }, + "S3TablesConfigurationList": [ + { + "TableBucketARN": "arn:aws:s3tables:us-east-1:123456789012:bucket/my-table-bucket", + "Namespace": "my_namespace", + "TableName": "my_table", + "CompressionType": "ZSTD", + "PartitionSpec": { + "PartitionFields": [ + { + "Transform": "TIME_HOUR", + "SourceName": "creation_ts" + } + ] + } + } + ] + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + }, + "output": { + "ChannelDescription": { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "CREATING", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z", + "RecordConfiguration": { + "RecordFormatType": "JSON", + "GSRSchemaARN": "arn:aws:glue:us-east-1:123456789012:schema/my-registry/my-schema" + } + } + ], + "S3TablesDestinationConfiguration": { + "DataFreshnessInSeconds": 300, + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012", + "ErrorOutputPrefix": "kinesis-channel/errors/my-channel/my-channel-id/" + }, + "S3TablesConfigurationList": [ + { + "TableBucketARN": "arn:aws:s3tables:us-east-1:123456789012:bucket/my-table-bucket", + "Namespace": "my_namespace", + "TableName": "my_table", + "CompressionType": "ZSTD", + "PartitionSpec": { + "PartitionFields": [ + { + "Transform": "TIME_HOUR", + "SourceName": "creation_ts" + } + ] + } + } + ] + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + } + } + } + ], + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#CreateChannelInput": { + "type": "structure", + "members": { + "ChannelName": { + "target": "com.amazonaws.kinesis#ChannelName", + "traits": { + "smithy.api#documentation": "

The name of the channel. The name is unique within your Amazon Web Services account and Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "ServiceExecutionRoleARN": { + "target": "com.amazonaws.kinesis#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Data Streams assumes to write records to the destination.

", + "smithy.api#required": {} + } + }, + "StreamConfigurationList": { + "target": "com.amazonaws.kinesis#ChannelStreamConfigurationList", + "traits": { + "smithy.api#documentation": "

The source stream configuration for the channel. Currently, one stream is supported per channel.

", + "smithy.api#required": {} + } + }, + "S3DestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3DestinationConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for delivery to a general purpose Amazon S3 bucket. Specify this parameter when S3TablesDestinationConfiguration is not specified.

" + } + }, + "S3TablesDestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3TablesDestinationConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for delivery to streaming tables on Apache Iceberg in Amazon S3 Tables. Specify this parameter when S3DestinationConfiguration is not specified.

" + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.kinesis#ChannelEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

The server-side encryption configuration that uses an Amazon Web Services KMS key to encrypt data delivered to the destination.

" + } + }, + "Tags": { + "target": "com.amazonaws.kinesis#TagMap", + "traits": { + "smithy.api#documentation": "

A set of key-value pairs to assign to the channel. A tag consists of a required key and an optional value.

" + } + }, + "LoggingConfiguration": { + "target": "com.amazonaws.kinesis#ChannelLoggingConfiguration", + "traits": { + "smithy.api#documentation": "

The Amazon CloudWatch Logs configuration for the channel.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#CreateChannelOutput": { + "type": "structure", + "members": { + "ChannelDescription": { + "target": "com.amazonaws.kinesis#ChannelDescription", + "traits": { + "smithy.api#documentation": "

The configuration and current status of the channel, including its ARN, destination configuration, and lifecycle state. Immediately after creation, the state is CREATING.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#CreateStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#CreateStreamInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a Kinesis data stream. A stream captures and transports data records that are\n continuously emitted from different data sources or producers.\n Scale-out within a stream is explicitly supported by means of shards, which are uniquely\n identified groups of data records in a stream.

\n

You can create your data stream using either on-demand or provisioned capacity mode. Data streams with an on-demand mode require no capacity planning and automatically scale to handle gigabytes of write and read throughput per minute. With the on-demand mode, Kinesis Data Streams automatically manages the shards in order to provide the necessary throughput.

\n

If you'd still like to proactively scale your on-demand data stream’s capacity, you can unlock the warm throughput feature for on-demand data streams by enabling MinimumThroughputBillingCommitment for your account. Once your account has MinimumThroughputBillingCommitment enabled, you can specify the warm throughput in MiB per second that your stream can support in writes.

\n

For the data streams with a provisioned mode, you must specify the number of shards for the data stream. Each shard can support reads up to five transactions per second, up to a maximum data read total of 2 MiB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MiB per second. If the amount of data input increases or decreases, you can add or remove shards.

\n

The stream name identifies the stream. The name is scoped to the Amazon Web Services\n account used by the application. It is also scoped by Amazon Web Services Region. That\n is, two streams in two different accounts can have the same name, and two streams in the\n same account, but in two different Regions, can have the same name.

\n

\n CreateStream is an asynchronous operation. Upon receiving a\n CreateStream request, Kinesis Data Streams immediately returns and sets\n the stream status to CREATING. After the stream is created, Kinesis Data\n Streams sets the stream status to ACTIVE. You should perform read and write\n operations only on an ACTIVE stream.

\n

You receive a LimitExceededException when making a\n CreateStream request when you try to do one of the following:

\n
    \n
  • \n

    Have more than five streams in the CREATING state at any point in\n time.

    \n
  • \n
  • \n

    Create more shards than are authorized for your account.

    \n
  • \n
\n

For the default shard or on-demand throughput limits for an Amazon Web Services account, see Amazon Kinesis Data Streams Limits in the Amazon Kinesis Data Streams Developer Guide. To increase this limit, contact Amazon Web Services Support.

\n

You can use DescribeStreamSummary to check the stream status, which\n is returned in StreamStatus.

\n

\n CreateStream has a limit of five transactions per second per\n account.

\n

You can add tags to the stream when making a CreateStream request by setting the Tags parameter. If you pass the Tags parameter, in addition to having the kinesis:CreateStream permission, you must also have the kinesis:AddTagsToStream permission for the stream that will be created. The kinesis:TagResource permission won’t work to tag streams on creation. Tags will take effect from the CREATING status of the stream, but you can't make any updates to the tags until the stream is in ACTIVE state.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#CreateStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

A name to identify the stream. The stream name is scoped to the Amazon Web Services\n account used by the application that creates the stream. It is also scoped by Amazon Web Services Region. That is, two streams in two different Amazon Web Services accounts\n can have the same name. Two streams in the same Amazon Web Services account but in two\n different Regions can also have the same name.

", + "smithy.api#required": {} + } + }, + "ShardCount": { + "target": "com.amazonaws.kinesis#PositiveIntegerObject", + "traits": { + "smithy.api#documentation": "

The number of shards that the stream will use. The throughput of the stream is a\n function of the number of shards; more shards are required for greater provisioned\n throughput.

" + } + }, + "StreamModeDetails": { + "target": "com.amazonaws.kinesis#StreamModeDetails", + "traits": { + "smithy.api#documentation": "

Indicates the capacity mode of the data stream. Currently, in Kinesis Data Streams,\n you can choose between an on-demand capacity mode and a\n provisioned capacity mode for your data\n streams.

" + } + }, + "Tags": { + "target": "com.amazonaws.kinesis#TagMap", + "traits": { + "smithy.api#documentation": "

A set of up to 50 key-value pairs to use to create the tags. A tag consists of a required key and an optional value.

" + } + }, + "WarmThroughputMiBps": { + "target": "com.amazonaws.kinesis#NaturalIntegerObject", + "traits": { + "smithy.api#documentation": "

The target warm throughput in MB/s that the stream should be scaled to handle. This represents the throughput capacity that will be immediately available for write operations.

" + } + }, + "MaxRecordSizeInKiB": { + "target": "com.amazonaws.kinesis#MaxRecordSizeInKiB", + "traits": { + "smithy.api#documentation": "

The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream.

" + } + }, + "RecordDistributionStrategy": { + "target": "com.amazonaws.kinesis#RecordDistributionStrategy", + "traits": { + "smithy.api#documentation": "

The record distribution strategy for the stream, which determines how Amazon Kinesis\n Data Streams distributes records across shards. Specify one of the following\n values:

\n
    \n
  • \n

    \n AUTO – Amazon Kinesis Data Streams distributes records evenly\n across shards and ignores any partition key and ExplicitHashKey\n that producers supply. Use this value for stateless workloads that do not\n require partition-key ordering.

    \n
  • \n
  • \n

    \n USER_PARTITION_KEY – Producers must supply a partition key, which\n Amazon Kinesis Data Streams uses to determine shard placement. This is the\n default.

    \n
  • \n
\n

The record distribution strategy is only supported for streams that use the on-demand\n capacity mode. If you do not specify this parameter, the stream uses\n USER_PARTITION_KEY.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for CreateStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#Data": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10485760 + } + } + }, + "com.amazonaws.kinesis#DataFreshnessInSeconds": { + "type": "integer" + }, + "com.amazonaws.kinesis#DeadLetterQueueS3Configuration": { + "type": "structure", + "members": { + "BucketARN": { + "target": "com.amazonaws.kinesis#BucketARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the dead-letter queue Amazon S3 bucket.

", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.kinesis#ExpectedBucketOwner", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the expected owner of the dead-letter queue bucket.

", + "smithy.api#required": {} + } + }, + "ErrorOutputPrefix": { + "target": "com.amazonaws.kinesis#S3ErrorOutputPrefix", + "traits": { + "smithy.api#documentation": "

The Amazon S3 key prefix for error records.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 dead-letter queue configuration for records that cannot be delivered.

" + } + }, + "com.amazonaws.kinesis#DecreaseStreamRetentionPeriod": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DecreaseStreamRetentionPeriodInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Decreases the Kinesis data stream's retention period, which is the length of time data\n records are accessible after they are added to the stream. The minimum value of a\n stream's retention period is 24 hours.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

This operation may result in lost data. For example, if the stream's retention period\n is 48 hours and is decreased to 24 hours, any data already in the stream that is older\n than 24 hours is inaccessible.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DecreaseStreamRetentionPeriodInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to modify.

" + } + }, + "RetentionPeriodHours": { + "target": "com.amazonaws.kinesis#RetentionPeriodHours", + "traits": { + "smithy.api#documentation": "

The new retention period of the stream, in hours. Must be less than the current\n retention period.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for DecreaseStreamRetentionPeriod.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DeleteChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DeleteChannelInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified channel. Deleting a channel stops delivery from the source stream to the destination. Data already delivered to the destination is not deleted.

\n

A stream cannot be deleted while it has active channels. Use ListChannels with a stream filter to find the channels attached to a stream before deleting it.

\n

This operation has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. Exceeding 5 TPS results in a LimitExceededException.

", + "smithy.api#examples": [ + { + "title": "To delete a channel", + "input": { + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id" + }, + "output": {} + } + ], + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DeleteChannelInput": { + "type": "structure", + "members": { + "ChannelARN": { + "target": "com.amazonaws.kinesis#ChannelARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the channel to delete.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ChannelARN" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DeleteResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DeleteResourcePolicyInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Delete a policy for the specified data stream or consumer. Request patterns can be one of the following:

\n
    \n
  • \n

    Data stream pattern: arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+\n

    \n
  • \n
  • \n

    Consumer pattern: ^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+\n

    \n
  • \n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DeleteResourcePolicyInput": { + "type": "structure", + "members": { + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data stream or consumer.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DeleteStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DeleteStreamInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a Kinesis data stream and all its shards and data. You must shut down any\n applications that are operating on the stream before you delete the stream. If an\n application attempts to operate on a deleted stream, it receives the exception\n ResourceNotFoundException.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

If the stream is in the ACTIVE state, you can delete it. After a\n DeleteStream request, the specified stream is in the\n DELETING state until Kinesis Data Streams completes the\n deletion.

\n

\n Note: Kinesis Data Streams might continue to accept\n data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the\n DELETING state until the stream deletion is complete.

\n

When you delete a stream, any shards in that stream are also deleted, and any tags are\n dissociated from the stream.

\n

You can use the DescribeStreamSummary operation to check the state\n of the stream, which is returned in StreamStatus.

\n

\n DeleteStream has a limit of five transactions per second per\n account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DeleteStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to delete.

" + } + }, + "EnforceConsumerDeletion": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

If this parameter is unset (null) or if you set it to false,\n and the stream has registered consumers, the call to DeleteStream fails\n with a ResourceInUseException.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for DeleteStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DeregisterStreamConsumer": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DeregisterStreamConsumerInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

To deregister a consumer, provide its ARN. Alternatively, you can provide the ARN of\n the data stream and the name you gave the consumer when you registered it. You may also\n provide all three parameters, as long as they don't conflict with each other. If you\n don't know the name or ARN of the consumer that you want to deregister, you can use the\n ListStreamConsumers operation to get a list of the descriptions of\n all the consumers that are currently registered with a given data stream. The\n description of a consumer contains its name and ARN.

\n

This operation has a limit of five transactions per second per stream.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DeregisterStreamConsumerInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the Kinesis data stream that the consumer is registered with. For more\n information, see Amazon Resource Names (ARNs) and Amazon Web Services Service\n Namespaces.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "ConsumerName": { + "target": "com.amazonaws.kinesis#ConsumerName", + "traits": { + "smithy.api#documentation": "

The name that you gave to the consumer.

" + } + }, + "ConsumerARN": { + "target": "com.amazonaws.kinesis#ConsumerARN", + "traits": { + "smithy.api#documentation": "

The ARN returned by Kinesis Data Streams when you registered the consumer. If you\n don't know the ARN of the consumer that you want to deregister, you can use the\n ListStreamConsumers operation to get a list of the descriptions of all the consumers\n that are currently registered with a given data stream. The description of a consumer\n contains its ARN.

", + "smithy.rules#contextParam": { + "name": "ConsumerARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeAccountSettingsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeAccountSettingsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the account-level settings for Amazon Kinesis Data Streams. This operation returns information about the minimum throughput billing commitments and other account-level configurations.

\n

This API has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. TPS over 5 will initiate the LimitExceededException.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DescribeAccountSettingsInput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeAccountSettingsOutput": { + "type": "structure", + "members": { + "MinimumThroughputBillingCommitment": { + "target": "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentOutput", + "traits": { + "smithy.api#documentation": "

The current configuration of the minimum throughput billing commitment for your Amazon Web Services account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DescribeChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeChannelInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeChannelOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the specified channel, including its configuration and current status.

\n

Use this operation to verify that a channel reached the ACTIVE state after creation, or to diagnose a channel in the FAILED state by reading the ChannelStatusReason.

\n

This operation has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. Exceeding 5 TPS results in a LimitExceededException.

", + "smithy.api#examples": [ + { + "title": "To describe a channel", + "input": { + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id" + }, + "output": { + "ChannelDescription": { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "ACTIVE", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ], + "S3DestinationConfiguration": { + "DataFreshnessInSeconds": 300, + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012", + "ErrorOutputPrefix": "kinesis-channel/errors/my-channel/my-channel-id/" + }, + "StorageConfiguration": { + "BucketARN": "arn:aws:s3:::my-channel-bucket", + "ExpectedBucketOwner": "123456789012", + "OutputKeyTemplate": "kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}", + "StorageClass": "STANDARD", + "CompressionType": "ZSTD" + } + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + } + } + } + ], + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + }, + "smithy.waiters#waitable": { + "ChannelActive": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "ChannelDescription.ChannelStatus", + "expected": "ACTIVE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "ChannelDescription.ChannelStatus", + "expected": "CREATING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "ChannelDescription.ChannelStatus", + "expected": "UPDATING", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ChannelDescription.ChannelStatus", + "expected": "DELETING", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "ChannelDescription.ChannelStatus", + "expected": "FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 10 + } + } + } + }, + "com.amazonaws.kinesis#DescribeChannelInput": { + "type": "structure", + "members": { + "ChannelARN": { + "target": "com.amazonaws.kinesis#ChannelARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the channel to describe.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ChannelARN" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeChannelOutput": { + "type": "structure", + "members": { + "ChannelDescription": { + "target": "com.amazonaws.kinesis#ChannelDescription", + "traits": { + "smithy.api#documentation": "

The configuration and current status of the channel, including its ARN, source stream, destination configuration, and lifecycle state.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DescribeLimits": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeLimitsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeLimitsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the shard limits and usage for the account.

\n

If you update your account limits, the old limits might be returned for a few\n minutes.

\n

This operation has a limit of one transaction per second per account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DescribeLimitsInput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeLimitsOutput": { + "type": "structure", + "members": { + "ShardLimit": { + "target": "com.amazonaws.kinesis#ShardCountObject", + "traits": { + "smithy.api#documentation": "

The maximum number of shards.

", + "smithy.api#required": {} + } + }, + "OpenShardCount": { + "target": "com.amazonaws.kinesis#ShardCountObject", + "traits": { + "smithy.api#documentation": "

The number of open shards.

", + "smithy.api#required": {} + } + }, + "OnDemandStreamCount": { + "target": "com.amazonaws.kinesis#OnDemandStreamCountObject", + "traits": { + "smithy.api#documentation": "

Indicates the number of data streams with the on-demand capacity mode.

", + "smithy.api#required": {} + } + }, + "OnDemandStreamCountLimit": { + "target": "com.amazonaws.kinesis#OnDemandStreamCountLimitObject", + "traits": { + "smithy.api#documentation": "

The maximum number of data streams with the on-demand capacity mode.

", + "smithy.api#required": {} + } + }, + "ChannelCount": { + "target": "com.amazonaws.kinesis#ChannelCountObject", + "traits": { + "smithy.api#documentation": "

The number of channels in the account.

" + } + }, + "ChannelCountLimit": { + "target": "com.amazonaws.kinesis#ChannelCountObject", + "traits": { + "smithy.api#documentation": "

The maximum number of channels allowed in the account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DescribeStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeStreamInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeStreamOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the specified Kinesis data stream.

\n \n

This API has been revised. It's highly recommended that you use the DescribeStreamSummary API to get a summarized description of the\n specified Kinesis data stream and the ListShards API to list the\n shards in a specified data stream and obtain information about each shard.

\n
\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

The information returned includes the stream name, Amazon Resource Name (ARN),\n creation time, enhanced metric configuration, and shard map. The shard map is an array\n of shard objects. For each shard object, there is the hash key and sequence number\n ranges that the shard spans, and the IDs of any earlier shards that played in a role in\n creating the shard. Every record ingested in the stream is identified by a sequence\n number, which is assigned when the record is put into the stream.

\n

You can limit the number of shards returned by each call. For more information, see\n Retrieving\n Shards from a Stream in the Amazon Kinesis Data Streams Developer\n Guide.

\n

There are no guarantees about the chronological order shards returned. To process\n shards in chronological order, use the ID of the parent shard to track the lineage to\n the oldest shard.

\n

This operation has a limit of 10 transactions per second per account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + }, + "smithy.test#smokeTests": [ + { + "id": "DescribeStreamFailure", + "params": { + "StreamName": "bogus-stream-name" + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], + "smithy.waiters#waitable": { + "StreamExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "StreamDescription.StreamStatus", + "expected": "ACTIVE", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 10 + }, + "StreamNotExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "errorType": "ResourceNotFoundException" + } + } + ], + "minDelay": 10 + } + } + } + }, + "com.amazonaws.kinesis#DescribeStreamConsumer": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeStreamConsumerInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeStreamConsumerOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

To get the description of a registered consumer, provide the ARN of the consumer.\n Alternatively, you can provide the ARN of the data stream and the name you gave the\n consumer when you registered it. You may also provide all three parameters, as long as\n they don't conflict with each other. If you don't know the name or ARN of the consumer\n that you want to describe, you can use the ListStreamConsumers\n operation to get a list of the descriptions of all the consumers that are currently\n registered with a given data stream.

\n

This operation has a limit of 20 transactions per second per stream.

\n \n

When making a cross-account call with DescribeStreamConsumer, make sure to provide the ARN of the consumer.

\n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DescribeStreamConsumerInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the Kinesis data stream that the consumer is registered with. For more\n information, see Amazon Resource Names (ARNs) and Amazon Web Services Service\n Namespaces.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "ConsumerName": { + "target": "com.amazonaws.kinesis#ConsumerName", + "traits": { + "smithy.api#documentation": "

The name that you gave to the consumer.

" + } + }, + "ConsumerARN": { + "target": "com.amazonaws.kinesis#ConsumerARN", + "traits": { + "smithy.api#documentation": "

The ARN returned by Kinesis Data Streams when you registered the consumer.

", + "smithy.rules#contextParam": { + "name": "ConsumerARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeStreamConsumerOutput": { + "type": "structure", + "members": { + "ConsumerDescription": { + "target": "com.amazonaws.kinesis#ConsumerDescription", + "traits": { + "smithy.api#documentation": "

An object that represents the details of the consumer.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DescribeStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to describe.

" + } + }, + "Limit": { + "target": "com.amazonaws.kinesis#DescribeStreamInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of shards to return in a single call. The default value is 100. If\n you specify a value greater than 100, at most 100 results are returned.

" + } + }, + "ExclusiveStartShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard to start with.

\n

Specify this parameter to indicate that you want to describe the stream starting with\n the shard whose ID immediately follows ExclusiveStartShardId.

\n

If you don't specify this parameter, the default behavior for\n DescribeStream is to describe the stream starting with the first shard\n in the stream.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for DescribeStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeStreamInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#DescribeStreamOutput": { + "type": "structure", + "members": { + "StreamDescription": { + "target": "com.amazonaws.kinesis#StreamDescription", + "traits": { + "smithy.api#documentation": "

The current status of the stream, the stream Amazon Resource Name (ARN), an array of\n shard objects that comprise the stream, and whether there are more shards\n available.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for DescribeStream.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DescribeStreamSummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DescribeStreamSummaryInput" + }, + "output": { + "target": "com.amazonaws.kinesis#DescribeStreamSummaryOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides a summarized description of the specified Kinesis data stream without the\n shard list.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

The information returned includes the stream name, Amazon Resource Name (ARN), status,\n record retention period, approximate creation time, monitoring, encryption details, and\n open shard count.

\n

\n DescribeStreamSummary has a limit of 20 transactions per second per\n account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DescribeStreamSummaryInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to describe.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DescribeStreamSummaryOutput": { + "type": "structure", + "members": { + "StreamDescriptionSummary": { + "target": "com.amazonaws.kinesis#StreamDescriptionSummary", + "traits": { + "smithy.api#documentation": "

A StreamDescriptionSummary containing information about the\n stream.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#DisableEnhancedMonitoring": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#DisableEnhancedMonitoringInput" + }, + "output": { + "target": "com.amazonaws.kinesis#EnhancedMonitoringOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables enhanced monitoring.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#DisableEnhancedMonitoringInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the Kinesis data stream for which to disable enhanced monitoring.

" + } + }, + "ShardLevelMetrics": { + "target": "com.amazonaws.kinesis#MetricsNameList", + "traits": { + "smithy.api#documentation": "

List of shard-level metrics to disable.

\n

The following are the valid shard-level metrics. The value \"ALL\" disables\n every metric.

\n
    \n
  • \n

    \n IncomingBytes\n

    \n
  • \n
  • \n

    \n IncomingRecords\n

    \n
  • \n
  • \n

    \n OutgoingBytes\n

    \n
  • \n
  • \n

    \n OutgoingRecords\n

    \n
  • \n
  • \n

    \n WriteProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n ReadProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n IteratorAgeMilliseconds\n

    \n
  • \n
  • \n

    \n ALL\n

    \n
  • \n
\n

For more information, see Monitoring the Amazon\n Kinesis Data Streams Service with Amazon CloudWatch in the Amazon\n Kinesis Data Streams Developer Guide.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for DisableEnhancedMonitoring.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#DryRunOperationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the DryRun parameter was specified.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#EnableEnhancedMonitoring": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#EnableEnhancedMonitoringInput" + }, + "output": { + "target": "com.amazonaws.kinesis#EnhancedMonitoringOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables enhanced Kinesis data stream monitoring for shard-level metrics.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#EnableEnhancedMonitoringInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream for which to enable enhanced monitoring.

" + } + }, + "ShardLevelMetrics": { + "target": "com.amazonaws.kinesis#MetricsNameList", + "traits": { + "smithy.api#documentation": "

List of shard-level metrics to enable.

\n

The following are the valid shard-level metrics. The value \"ALL\" enables\n every metric.

\n
    \n
  • \n

    \n IncomingBytes\n

    \n
  • \n
  • \n

    \n IncomingRecords\n

    \n
  • \n
  • \n

    \n OutgoingBytes\n

    \n
  • \n
  • \n

    \n OutgoingRecords\n

    \n
  • \n
  • \n

    \n WriteProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n ReadProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n IteratorAgeMilliseconds\n

    \n
  • \n
  • \n

    \n ALL\n

    \n
  • \n
\n

For more information, see Monitoring the Amazon\n Kinesis Data Streams Service with Amazon CloudWatch in the Amazon\n Kinesis Data Streams Developer Guide.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for EnableEnhancedMonitoring.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#EncryptionType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "KMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KMS" + } + } + } + }, + "com.amazonaws.kinesis#EnhancedMetrics": { + "type": "structure", + "members": { + "ShardLevelMetrics": { + "target": "com.amazonaws.kinesis#MetricsNameList", + "traits": { + "smithy.api#documentation": "

List of shard-level metrics.

\n

The following are the valid shard-level metrics. The value \"ALL\" enhances\n every metric.

\n
    \n
  • \n

    \n IncomingBytes\n

    \n
  • \n
  • \n

    \n IncomingRecords\n

    \n
  • \n
  • \n

    \n OutgoingBytes\n

    \n
  • \n
  • \n

    \n OutgoingRecords\n

    \n
  • \n
  • \n

    \n WriteProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n ReadProvisionedThroughputExceeded\n

    \n
  • \n
  • \n

    \n IteratorAgeMilliseconds\n

    \n
  • \n
  • \n

    \n ALL\n

    \n
  • \n
\n

For more information, see Monitoring the Amazon\n Kinesis Data Streams Service with Amazon CloudWatch in the Amazon\n Kinesis Data Streams Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents enhanced metrics types.

" + } + }, + "com.amazonaws.kinesis#EnhancedMonitoringList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#EnhancedMetrics" + } + }, + "com.amazonaws.kinesis#EnhancedMonitoringOutput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the Kinesis data stream.

" + } + }, + "CurrentShardLevelMetrics": { + "target": "com.amazonaws.kinesis#MetricsNameList", + "traits": { + "smithy.api#documentation": "

Represents the current state of the metrics that are in the enhanced state before the\n operation.

" + } + }, + "DesiredShardLevelMetrics": { + "target": "com.amazonaws.kinesis#MetricsNameList", + "traits": { + "smithy.api#documentation": "

Represents the list of all the metrics that would be in the enhanced state after the\n operation.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for EnableEnhancedMonitoring and DisableEnhancedMonitoring.

" + } + }, + "com.amazonaws.kinesis#ErrorCode": { + "type": "string" + }, + "com.amazonaws.kinesis#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.kinesis#ExpectedBucketOwner": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^\\d{12}$" + } + }, + "com.amazonaws.kinesis#ExpiredIteratorException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The provided iterator exceeds the maximum age allowed.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#ExpiredNextTokenException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The pagination token passed to the operation is expired.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#GSRSchemaARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:aws[-a-z0-9]*:glue:[-a-z0-9]+:\\d{12}:schema/[-a-zA-Z0-9_$#.]+/[-a-zA-Z0-9_$#.]+$" + } + }, + "com.amazonaws.kinesis#GetRecords": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#GetRecordsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#GetRecordsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#DryRunOperationException" + }, + { + "target": "com.amazonaws.kinesis#ExpiredIteratorException" + }, + { + "target": "com.amazonaws.kinesis#InternalFailureException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + { + "target": "com.amazonaws.kinesis#ProvisionedThroughputExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets data records from a Kinesis data stream's shard.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

Specify a shard iterator using the ShardIterator parameter. The shard\n iterator specifies the position in the shard from which you want to start reading data\n records sequentially. If there are no records available in the portion of the shard that\n the iterator points to, GetRecords returns an empty list. It might\n take multiple calls to get to a portion of the shard that contains records.

\n

You can scale by provisioning multiple shards per stream while considering service\n limits (for more information, see Amazon Kinesis Data Streams\n Limits in the Amazon Kinesis Data Streams Developer\n Guide). Your application should have one thread per shard, each reading\n continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the\n shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in\n NextShardIterator. Specify the shard iterator returned in\n NextShardIterator in subsequent calls to GetRecords.\n If the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator.\n You can terminate the loop when the shard is closed, or when the shard iterator reaches\n the record with the sequence number or other attribute that marks it as the last record\n to process.

\n

Each data record can be up to 1 MiB in size by default. Amazon Kinesis Data Streams supports \n large records up to 10 MiB in size, but the average throughput for your stream cannot exceed \n 1 MiB per second. For more information about how large records are handled, see \n Large records. \n Each shard can read up to 2 MiB per second. You can ensure that your calls don't exceed \n the maximum supported size or throughput by using the Limit parameter to \n specify the maximum number of records that GetRecords can return. \n Consider your average record size when determining this limit. The maximum number of records \n that can be returned per call is 10,000.

\n

The size of the data returned by GetRecords varies depending on the\n utilization of the shard. It is recommended that consumer applications retrieve records\n via the GetRecords command using the 5 TPS limit to remain caught up.\n Retrieving records less frequently can lead to consumer applications falling behind. The\n maximum size of data that GetRecords can return is 10 MiB. If a call\n returns this amount of data, subsequent calls made within the next 5 seconds throw\n ProvisionedThroughputExceededException. If there is insufficient\n provisioned throughput on the stream, subsequent calls made within the next 1 second\n throw ProvisionedThroughputExceededException. GetRecords\n doesn't return any data when it throws an exception. For this reason, we recommend that\n you wait 1 second between calls to GetRecords. However, it's possible\n that the application will get exceptions for longer than 1 second.

\n

To detect whether the application is falling behind in processing, you can use the\n MillisBehindLatest response attribute. You can also monitor the stream\n using CloudWatch metrics and other mechanisms (see Monitoring in the Amazon\n Kinesis Data Streams Developer Guide).

\n

Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp,\n that is set when a stream successfully receives and stores a record. This is commonly\n referred to as a server-side time stamp, whereas a client-side time stamp is set when a\n data producer creates or sends the record to a stream (a data producer is any data\n source putting data records into a stream, for example with PutRecords). The time stamp has millisecond precision. There are no guarantees about the time\n stamp accuracy, or that the time stamp is always increasing. For example, records in a\n shard or across a stream might have time stamps that are out of order.

\n

This operation has a limit of five transactions per second per shard.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "data" + } + } + } + }, + "com.amazonaws.kinesis#GetRecordsInput": { + "type": "structure", + "members": { + "ShardIterator": { + "target": "com.amazonaws.kinesis#ShardIterator", + "traits": { + "smithy.api#documentation": "

The position in the shard from which you want to start sequentially reading data\n records. A shard iterator specifies this position using the sequence number of a data\n record in the shard.

", + "smithy.api#required": {} + } + }, + "Limit": { + "target": "com.amazonaws.kinesis#GetRecordsInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of records to return. Specify a value of up to 10,000. If you\n specify a value that is greater than 10,000, GetRecords throws\n InvalidArgumentException. The default value is 10,000.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "DryRun": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for GetRecords.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#GetRecordsInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#GetRecordsOutput": { + "type": "structure", + "members": { + "Records": { + "target": "com.amazonaws.kinesis#RecordList", + "traits": { + "smithy.api#documentation": "

The data records retrieved from the shard.

", + "smithy.api#required": {} + } + }, + "NextShardIterator": { + "target": "com.amazonaws.kinesis#ShardIterator", + "traits": { + "smithy.api#documentation": "

The next position in the shard from which to start sequentially reading data records.\n If set to null, the shard has been closed and the requested iterator does\n not return any more data.

" + } + }, + "MillisBehindLatest": { + "target": "com.amazonaws.kinesis#MillisBehindLatest", + "traits": { + "smithy.api#documentation": "

The number of milliseconds the GetRecords response is from the tip\n of the stream, indicating how far behind current time the consumer is. A value of zero\n indicates that record processing is caught up, and there are no new records to process\n at this moment.

" + } + }, + "ChildShards": { + "target": "com.amazonaws.kinesis#ChildShardList", + "traits": { + "smithy.api#documentation": "

The list of the current shard's child shards, returned in the GetRecords\n API's response only when the end of the current shard is reached.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for GetRecords.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#GetResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#GetResourcePolicyInput" + }, + "output": { + "target": "com.amazonaws.kinesis#GetResourcePolicyOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a policy attached to the specified data stream or consumer. Request patterns can be one of the following:

\n
    \n
  • \n

    Data stream pattern: arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+\n

    \n
  • \n
  • \n

    Consumer pattern: ^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+\n

    \n
  • \n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#GetResourcePolicyInput": { + "type": "structure", + "members": { + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data stream or consumer.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#GetResourcePolicyOutput": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.kinesis#Policy", + "traits": { + "smithy.api#documentation": "

Details of the resource policy. This is formatted as a JSON string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#GetShardIterator": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#GetShardIteratorInput" + }, + "output": { + "target": "com.amazonaws.kinesis#GetShardIteratorOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#DryRunOperationException" + }, + { + "target": "com.amazonaws.kinesis#InternalFailureException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#ProvisionedThroughputExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets an Amazon Kinesis shard iterator. A shard iterator expires 5 minutes after it is\n returned to the requester.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

A shard iterator specifies the shard position from which to start reading data records\n sequentially. The position is specified using the sequence number of a data record in a\n shard. A sequence number is the identifier associated with every record ingested in the\n stream, and is assigned when a record is put into the stream. Each stream has one or\n more shards.

\n

You must specify the shard iterator type. For example, you can set the\n ShardIteratorType parameter to read exactly from the position denoted\n by a specific sequence number by using the AT_SEQUENCE_NUMBER shard\n iterator type. Alternatively, the parameter can read right after the sequence number by\n using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers\n returned by earlier calls to PutRecord, PutRecords,\n GetRecords, or DescribeStream. In the request,\n you can specify the shard iterator type AT_TIMESTAMP to read records from\n an arbitrary point in time, TRIM_HORIZON to cause\n ShardIterator to point to the last untrimmed record in the shard in the\n system (the oldest data record in the shard), or LATEST so that you always\n read the most recent data in the shard.

\n

When you read repeatedly from a stream, use a GetShardIterator\n request to get the first shard iterator for use in your first GetRecords request and for subsequent reads use the shard iterator returned by the GetRecords request in NextShardIterator. A new shard\n iterator is returned by every GetRecords request in\n NextShardIterator, which you use in the ShardIterator\n parameter of the next GetRecords request.

\n

If a GetShardIterator request is made too often, you receive a\n ProvisionedThroughputExceededException. For more information about\n throughput limits, see GetRecords, and Streams Limits in the\n Amazon Kinesis Data Streams Developer Guide.

\n

If the shard is closed, GetShardIterator returns a valid iterator\n for the last sequence number of the shard. A shard can be closed as a result of using\n SplitShard or MergeShards.

\n

\n GetShardIterator has a limit of five transactions per second per\n account per open shard.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "data" + } + } + } + }, + "com.amazonaws.kinesis#GetShardIteratorInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream.

" + } + }, + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the Kinesis Data Streams shard to get the iterator for.

", + "smithy.api#required": {} + } + }, + "ShardIteratorType": { + "target": "com.amazonaws.kinesis#ShardIteratorType", + "traits": { + "smithy.api#documentation": "

Determines how the shard iterator is used to start reading data records from the\n shard.

\n

The following are the valid Amazon Kinesis shard iterator types:

\n
    \n
  • \n

    AT_SEQUENCE_NUMBER - Start reading from the position denoted by a specific\n sequence number, provided in the value\n StartingSequenceNumber.

    \n
  • \n
  • \n

    AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted by a\n specific sequence number, provided in the value\n StartingSequenceNumber.

    \n
  • \n
  • \n

    AT_TIMESTAMP - Start reading from the position denoted by a specific time\n stamp, provided in the value Timestamp.

    \n
  • \n
  • \n

    TRIM_HORIZON - Start reading at the last untrimmed record in the shard in the\n system, which is the oldest data record in the shard.

    \n
  • \n
  • \n

    LATEST - Start reading just after the most recent record in the shard, so that\n you always read the most recent data in the shard.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "StartingSequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The sequence number of the data record in the shard from which to start reading. Used\n with shard iterator type AT_SEQUENCE_NUMBER and AFTER_SEQUENCE_NUMBER.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of the data record from which to start reading. Used with shard\n iterator type AT_TIMESTAMP. A time stamp is the Unix epoch date with precision in\n milliseconds. For example, 2016-04-04T19:58:46.480-00:00 or\n 1459799926.480. If a record with this exact time stamp does not exist,\n the iterator returned is for the next (later) record. If the time stamp is older than\n the current trim horizon, the iterator returned is for the oldest untrimmed data record\n (TRIM_HORIZON).

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "DryRun": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for GetShardIterator.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#GetShardIteratorOutput": { + "type": "structure", + "members": { + "ShardIterator": { + "target": "com.amazonaws.kinesis#ShardIterator", + "traits": { + "smithy.api#documentation": "

The position in the shard from which to start reading data records sequentially. A\n shard iterator specifies this position using the sequence number of a data record in a\n shard.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for GetShardIterator.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#HashKey": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(0|([1-9]\\d{0,38}))$" + } + }, + "com.amazonaws.kinesis#HashKeyRange": { + "type": "structure", + "members": { + "StartingHashKey": { + "target": "com.amazonaws.kinesis#HashKey", + "traits": { + "smithy.api#documentation": "

The starting hash key of the hash key range.

", + "smithy.api#required": {} + } + }, + "EndingHashKey": { + "target": "com.amazonaws.kinesis#HashKey", + "traits": { + "smithy.api#documentation": "

The ending hash key of the hash key range.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The range of possible hash key values for the shard, which is a set of ordered\n contiguous positive integers.

" + } + }, + "com.amazonaws.kinesis#IncreaseStreamRetentionPeriod": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#IncreaseStreamRetentionPeriodInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Increases the Kinesis data stream's retention period, which is the length of time data\n records are accessible after they are added to the stream. The maximum value of a\n stream's retention period is 8760 hours (365 days).

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

If you choose a longer stream retention period, this operation increases the time\n period during which records that have not yet expired are accessible. However, it does\n not make previous, expired data (older than the stream's previous retention period)\n accessible after the operation has been called. For example, if a stream's retention\n period is set to 24 hours and is increased to 168 hours, any data that is older than 24\n hours remains inaccessible to consumer applications.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#IncreaseStreamRetentionPeriodInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to modify.

" + } + }, + "RetentionPeriodHours": { + "target": "com.amazonaws.kinesis#RetentionPeriodHours", + "traits": { + "smithy.api#documentation": "

The new retention period of the stream, in hours. Must be more than the current\n retention period.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for IncreaseStreamRetentionPeriod.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#InternalFailureException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The processing of the request failed because of an unknown error, exception, or\n failure.

", + "smithy.api#error": "server" + } + }, + "com.amazonaws.kinesis#InvalidArgumentException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A specified parameter exceeds its restrictions, is not supported, or can't be used.\n For more information, see the returned message.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSAccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ciphertext references a key that doesn't exist or that you don't have access\n to.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSDisabledException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the specified customer master key (CMK) isn't\n enabled.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSInvalidStateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the state of the specified resource isn't valid for\n this request. For more information, see How Key State Affects Use of a\n Customer Master Key in the Amazon Web Services Key Management\n Service Developer Guide.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the specified entity or resource can't be\n found.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSOptInRequired": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Web Services access key ID needs a subscription for the service.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KMSThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied due to request throttling. For more information about\n throttling, see Limits in\n the Amazon Web Services Key Management Service Developer\n Guide.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#KeyId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.kinesis#Kinesis_20131202": { + "type": "service", + "version": "2013-12-02", + "operations": [ + { + "target": "com.amazonaws.kinesis#AddTagsToStream" + }, + { + "target": "com.amazonaws.kinesis#CreateChannel" + }, + { + "target": "com.amazonaws.kinesis#CreateStream" + }, + { + "target": "com.amazonaws.kinesis#DecreaseStreamRetentionPeriod" + }, + { + "target": "com.amazonaws.kinesis#DeleteChannel" + }, + { + "target": "com.amazonaws.kinesis#DeleteResourcePolicy" + }, + { + "target": "com.amazonaws.kinesis#DeleteStream" + }, + { + "target": "com.amazonaws.kinesis#DeregisterStreamConsumer" + }, + { + "target": "com.amazonaws.kinesis#DescribeAccountSettings" + }, + { + "target": "com.amazonaws.kinesis#DescribeChannel" + }, + { + "target": "com.amazonaws.kinesis#DescribeLimits" + }, + { + "target": "com.amazonaws.kinesis#DescribeStream" + }, + { + "target": "com.amazonaws.kinesis#DescribeStreamConsumer" + }, + { + "target": "com.amazonaws.kinesis#DescribeStreamSummary" + }, + { + "target": "com.amazonaws.kinesis#DisableEnhancedMonitoring" + }, + { + "target": "com.amazonaws.kinesis#EnableEnhancedMonitoring" + }, + { + "target": "com.amazonaws.kinesis#GetRecords" + }, + { + "target": "com.amazonaws.kinesis#GetResourcePolicy" + }, + { + "target": "com.amazonaws.kinesis#GetShardIterator" + }, + { + "target": "com.amazonaws.kinesis#IncreaseStreamRetentionPeriod" + }, + { + "target": "com.amazonaws.kinesis#ListChannels" + }, + { + "target": "com.amazonaws.kinesis#ListShards" + }, + { + "target": "com.amazonaws.kinesis#ListStreamConsumers" + }, + { + "target": "com.amazonaws.kinesis#ListStreams" + }, + { + "target": "com.amazonaws.kinesis#ListTagsForResource" + }, + { + "target": "com.amazonaws.kinesis#ListTagsForStream" + }, + { + "target": "com.amazonaws.kinesis#MergeShards" + }, + { + "target": "com.amazonaws.kinesis#PutRecord" + }, + { + "target": "com.amazonaws.kinesis#PutRecords" + }, + { + "target": "com.amazonaws.kinesis#PutResourcePolicy" + }, + { + "target": "com.amazonaws.kinesis#RegisterStreamConsumer" + }, + { + "target": "com.amazonaws.kinesis#RemoveTagsFromStream" + }, + { + "target": "com.amazonaws.kinesis#SplitShard" + }, + { + "target": "com.amazonaws.kinesis#StartStreamEncryption" + }, + { + "target": "com.amazonaws.kinesis#StopStreamEncryption" + }, + { + "target": "com.amazonaws.kinesis#SubscribeToShard" + }, + { + "target": "com.amazonaws.kinesis#TagResource" + }, + { + "target": "com.amazonaws.kinesis#UntagResource" + }, + { + "target": "com.amazonaws.kinesis#UpdateAccountSettings" + }, + { + "target": "com.amazonaws.kinesis#UpdateChannel" + }, + { + "target": "com.amazonaws.kinesis#UpdateMaxRecordSize" + }, + { + "target": "com.amazonaws.kinesis#UpdateShardCount" + }, + { + "target": "com.amazonaws.kinesis#UpdateStreamMode" + }, + { + "target": "com.amazonaws.kinesis#UpdateStreamRecordDistributionStrategy" + }, + { + "target": "com.amazonaws.kinesis#UpdateStreamWarmThroughput" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Kinesis", + "arnNamespace": "kinesis", + "cloudFormationName": "Kinesis", + "cloudTrailEventSource": "kinesis.amazonaws.com", + "endpointPrefix": "kinesis" + }, + "aws.auth#sigv4": { + "name": "kinesis" + }, + "aws.protocols#awsJson1_1": { + "http": [ + "http/1.1", + "h2" + ], + "eventStreamHttp": [ + "h2" + ] + }, + "smithy.api#documentation": "Amazon Kinesis Data Streams Service API Reference\n

Amazon Kinesis Data Streams is a managed service that scales elastically for real-time\n processing of streaming big data.

", + "smithy.api#title": "Amazon Kinesis", + "smithy.api#xmlNamespace": { + "uri": "http://kinesis.amazonaws.com/doc/2013-12-02" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + }, + "OperationType": { + "required": false, + "documentation": "Internal parameter to distinguish between Control/Data plane API and accordingly generate control/data plane endpoint", + "type": "string" + }, + "StreamId": { + "required": false, + "documentation": "The unique identifier of the Kinesis stream", + "type": "string" + }, + "StreamARN": { + "required": false, + "documentation": "The ARN of the Kinesis stream", + "type": "string" + }, + "ConsumerARN": { + "required": false, + "documentation": "The ARN of the Kinesis consumer", + "type": "string" + }, + "ResourceARN": { + "required": false, + "documentation": "The ARN of the Kinesis resource", + "type": "string" + }, + "ChannelARN": { + "required": false, + "documentation": "The ARN of the Kinesis data channel", + "type": "string" + }, + "AccountId": { + "builtIn": "AWS::Auth::AccountId", + "required": false, + "documentation": "The AWS AccountId used for the request.", + "type": "string" + }, + "AccountIdEndpointMode": { + "builtIn": "AWS::Auth::AccountIdEndpointMode", + "required": false, + "documentation": "The AccountId Endpoint Mode.", + "type": "string" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "StreamId" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 21, + 24, + false + ], + "assign": "StreamIdSuffixValue" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 0, + 20, + false + ], + "assign": "StreamIdPrefixValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 20, + 21, + false + ] + }, + "" + ] + }, + "-" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 3, + 4, + true + ] + }, + "" + ] + }, + "-" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "StreamARN" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "ConsumerARN" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ConsumerARN" + } + ], + "assign": "arn_ssa_2" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 15, + 20, + false + ], + "assign": "HttpsCustomEndpointSuffixValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 15, + 16, + false + ] + }, + "" + ] + }, + "-" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 20, + 21, + false + ] + }, + "" + ] + }, + "." + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 7, + 12, + false + ], + "assign": "PlainCustomEndpointSuffixValue" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_2" + }, + "accountId" + ] + }, + false + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_2" + }, + "region" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_2" + }, + "service" + ] + }, + "kinesis" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_2" + }, + "resourceId[0]" + ], + "assign": "arnType_ssa_2" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_2" + }, + "" + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "StreamARN" + } + ], + "assign": "arn_ssa_4" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_4" + }, + "accountId" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_2" + }, + "stream" + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_4" + }, + "region" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_2" + }, + "partition" + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_4" + }, + "service" + ] + }, + "kinesis" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_4" + }, + "resourceId[0]" + ], + "assign": "arnType_ssa_1" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_1" + }, + "" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "ResourceARN" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "ChannelARN" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ChannelARN" + } + ], + "assign": "arn_ssa_1" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "accountId" + ] + }, + false + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "region" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "service" + ] + }, + "kinesis" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "resourceId[0]" + ], + "assign": "arnType_ssa_4" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_4" + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_4" + }, + "channel" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "partition" + ] + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ResourceARN" + } + ], + "assign": "arn_ssa_3" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "accountId" + ] + }, + false + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "region" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "service" + ] + }, + "kinesis" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "resourceId[0]" + ], + "assign": "arnType_ssa_3" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_3" + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_3" + }, + "stream" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_3" + }, + "channel" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "partition" + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType_ssa_1" + }, + "stream" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_4" + }, + "partition" + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "required" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_3" + }, + "resourceId[1]" + ], + "assign": "resourceId_ssa_1" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "resourceId_ssa_1" + }, + false + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn_ssa_1" + }, + "resourceId[1]" + ], + "assign": "resourceId_ssa_2" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "resourceId_ssa_2" + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "OperationType" + }, + "data" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 7, + 8, + false + ] + }, + "" + ] + }, + "-" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 12, + 13, + false + ] + }, + "" + ] + }, + "." + ] + } + ], + "results": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled, but this partition does not support DualStack.", + "type": "error" + }, + { + "conditions": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_4#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_4#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_4#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_4#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Partition: {arn_ssa_4#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Kinesis ARNs don't support `{arnType_ssa_1}` arn types.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_4#service}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid region.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid account id.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Failed to parse ARN.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_2#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_2#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_2#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_2#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Partition: {arn_ssa_2#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Kinesis ARNs don't support `{arnType_ssa_2}` arn types.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_2#service}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Unsupported resource type `{arnType_ssa_3}`. Expected: stream or channel", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_3#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_3#accountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_3#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{arn_ssa_3#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_1}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_1}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_1}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_1}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid channel id.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Missing channel id.", + "type": "error" + }, + { + "conditions": [], + "error": "Partition: {arn_ssa_3#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_3#service}.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_2}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_2}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_2}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId_ssa_2}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "ChannelARN does not support the `data` operation type.", + "type": "error" + }, + { + "conditions": [], + "error": "Partition: {arn_ssa_1#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: ChannelARN only supports `channel` arn types, found: `{arnType_ssa_4}`.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn_ssa_1#service}.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid account id.", + "type": "error" + }, + { + "conditions": [], + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 155, + "nodes": "/////wAAAAH/////AAAAAAAAAAMAAAAEAAAAAQAAAAUAAAAEAAAACQAAAJoF9eFJAAAAAgAAAI8AAAAGAAAAAwAAAI8AAAAHAAAABAAAAAgAAAAMAAAABQAAAAkAAAAMAAAABgAAAAoAAAAMAAAABwAAAAsAAAAMAAAACAAAAG0AAAAMAAAACQAAAJoAAAANAAAACgAAAF0AAAAOAAAACwAAAE0AAAAPAAAAHgAAADEAAAAQAAAAHwAAAB4AAAARAAAAIAAAABIAAACSAAAAIQAAABMAAAAdAAAAIwAAAB0AAAAUAAAAJAAAABUF9eE9AAAAOAAAABYF9eERAAAAPwAAABkAAAAXAAAAQAAAABgF9eE8AAAAQgX14TsF9eEHAAAAQAAAABsAAAAaAAAAQQX14ToF9eEFAAAAQQAAABwF9eEDAAAAQgX14TkF9eECAAAANwX14T4AAACSAAAAIgAAAB8F9eEcAAAAJQAAACAF9eEbAAAAJgAAACEF9eEaAAAAJwAAACIF9eE4AAAAKAAAACMF9eEYAAAAKQX14RgAAAAkAAAAKgAAACUF9eE3AAAAKwAAACYF9eE2AAAAOAAAACcF9eERAAAAOwAAACgF9eEuAAAAPAAAACkF9eEtAAAAPQX14TUAAAAqAAAAPwAAAC0AAAArAAAAQAAAACwF9eE0AAAAQgX14TMF9eEHAAAAQAAAAC8AAAAuAAAAQQX14TIF9eEFAAAAQQAAADAF9eEDAAAAQgX14TEF9eECAAAALAAAADIF9eEcAAAALQAAADMF9eEbAAAALgAAADQF9eEaAAAALwAAADUF9eEwAAAAMAAAADYF9eEYAAAAMQX14RgAAAA3AAAAMgAAAEQAAAA4AAAAMwAAADkF9eEkAAAANAAAADoF9eEvAAAAOAAAADsF9eERAAAAOQAAADwF9eEuAAAAOgAAAD0F9eEtAAAAPwAAAEAAAAA+AAAAQAAAAD8F9eEsAAAAQgX14SsF9eEHAAAAQAAAAEIAAABBAAAAQQX14SoF9eEFAAAAQQAAAEMF9eEDAAAAQgX14SkF9eECAAAANAAAAEUF9eEvAAAAOAAAAEYF9eERAAAAPwAAAEkAAABHAAAAQAAAAEgF9eEoAAAAQgX14ScF9eEHAAAAQAAAAEsAAABKAAAAQQX14SYF9eEFAAAAQQAAAEwF9eEDAAAAQgX14SUF9eECAAAADAAAAE4F9eEcAAAAEQAAAE8F9eEbAAAAEgAAAFAF9eEaAAAAEwAAAFEF9eEjAAAAFAAAAFIF9eEYAAAAFQX14RgAAABTAAAAGAAAAFQF9eEiAAAAGgAAAFUF9eEhAAAAOAAAAFYF9eERAAAAPwAAAFkAAABXAAAAQAAAAFgF9eEgAAAAQgX14R8F9eEHAAAAQAAAAFsAAABaAAAAQQX14R4F9eEFAAAAQQAAAFwF9eEDAAAAQgX14R0F9eECAAAAFgAAAF4F9eEcAAAAFwAAAF8F9eEbAAAAGQAAAGAF9eEaAAAAGwAAAGEF9eEZAAAAHAAAAGIF9eEYAAAAHQX14RgAAABjAAAANQAAAGQF9eEXAAAANgAAAGUF9eEWAAAAOAAAAGYF9eERAAAAPwAAAGkAAABnAAAAQAAAAGgF9eEVAAAAQgX14RQF9eEHAAAAQAAAAGsAAABqAAAAQQX14RMF9eEFAAAAQQAAAGwF9eEDAAAAQgX14RIF9eECAAAACQAAAG4AAAByAAAADQAAAG8AAABxAAAADgAAAHAAAABxAAAADwAAAIcAAABxAAAAEAAAAHMAAAByAAAAOAAAAHUF9eERAAAAOAAAAHQF9eERAAAAPgAAAHwAAAB1AAAAPwAAAHgAAAB2AAAAQAAAAHcF9eEQAAAAQgX14Q8F9eEHAAAAQAAAAHoAAAB5AAAAQQX14Q4F9eEFAAAAQQAAAHsF9eEDAAAAQgX14Q0F9eECAAAAPwAAAIEAAAB9AAAAQAAAAH8AAAB+AAAARAX14QwF9eEQAAAAQgAAAIAF9eEHAAAARAX14QsF9eEPAAAAQAAAAIQAAACCAAAAQQAAAIMF9eEFAAAARAX14QoF9eEOAAAAQQAAAIUF9eEDAAAAQgAAAIYF9eECAAAARAX14QkF9eENAAAAOAAAAIgF9eERAAAAPwAAAIsAAACJAAAAQAAAAIoF9eEIAAAAQgX14QYF9eEHAAAAQAAAAI0AAACMAAAAQQX14QQF9eEFAAAAQQAAAI4F9eEDAAAAQgX14QEF9eECAAAACQAAAJoAAACQAAAAIAAAAJEAAACSAAAANwX14T8AAACSAAAAPwAAAJUAAACTAAAAQAAAAJQF9eFIAAAAQgX14UcF9eEHAAAAQAAAAJgAAACWAAAAQQAAAJcF9eEFAAAAQwX14UUF9eFGAAAAQQAAAJkF9eFEAAAAQgX14UMF9eFEAAAAPwX14UAAAACbAAAAQAX14UEF9eFC" + }, + "smithy.rules#endpointRuleSet": { + "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" + }, + "OperationType": { + "required": false, + "documentation": "Internal parameter to distinguish between Control/Data plane API and accordingly generate control/data plane endpoint", + "type": "string" + }, + "StreamId": { + "required": false, + "documentation": "The unique identifier of the Kinesis stream", + "type": "string" + }, + "StreamARN": { + "required": false, + "documentation": "The ARN of the Kinesis stream", + "type": "string" + }, + "ConsumerARN": { + "required": false, + "documentation": "The ARN of the Kinesis consumer", + "type": "string" + }, + "ResourceARN": { + "required": false, + "documentation": "The ARN of the Kinesis resource", + "type": "string" + }, + "ChannelARN": { + "required": false, + "documentation": "The ARN of the Kinesis data channel", + "type": "string" + }, + "AccountId": { + "builtIn": "AWS::Auth::AccountId", + "required": false, + "documentation": "The AWS AccountId used for the request.", + "type": "string" + }, + "AccountIdEndpointMode": { + "builtIn": "AWS::Auth::AccountIdEndpointMode", + "required": false, + "documentation": "The AccountId Endpoint Mode.", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "StreamId" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 20, + 21, + false + ], + "assign": "StreamIdDelimiterValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "StreamIdDelimiterValue" + }, + "-" + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 3, + 4, + true + ], + "assign": "StreamIdDelimiterReversedValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "StreamIdDelimiterReversedValue" + }, + "-" + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 0, + 20, + false + ], + "assign": "StreamIdPrefixValue" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "StreamId" + }, + 21, + 24, + false + ], + "assign": "StreamIdSuffixValue" + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 15, + 16, + false + ], + "assign": "HttpsCustomEndpointDelimiterValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "HttpsCustomEndpointDelimiterValue" + }, + "-" + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 20, + 21, + false + ], + "assign": "HttpsEndpointDelimiterValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "HttpsEndpointDelimiterValue" + }, + "." + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 15, + 20, + false + ], + "assign": "HttpsCustomEndpointSuffixValue" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{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://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{HttpsCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 7, + 8, + false + ], + "assign": "PlainCustomEndpointDelimiterValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "PlainCustomEndpointDelimiterValue" + }, + "-" + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 12, + 13, + false + ], + "assign": "PlainEndpointDelimiterValue" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "PlainEndpointDelimiterValue" + }, + "." + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Endpoint" + }, + 7, + 12, + false + ], + "assign": "PlainCustomEndpointSuffixValue" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{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://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis{PlainCustomEndpointSuffixValue}.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{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://{StreamIdPrefixValue}.{StreamIdSuffixValue}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "StreamARN" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "StreamARN" + } + ], + "assign": "arn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "region" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "service" + ] + }, + "kinesis" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "stream" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "{arn#partition}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis.{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://{arn#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Partition: {arn#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Kinesis ARNs don't support `{arnType}` arn types.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn#service}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid region.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid account id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Failed to parse ARN.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ConsumerARN" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ConsumerARN" + } + ], + "assign": "arn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "region" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "service" + ] + }, + "kinesis" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "stream" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "{arn#partition}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis.{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://{arn#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Partition: {arn#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Kinesis ARNs don't support `{arnType}` arn types.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn#service}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid region.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid account id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Failed to parse ARN.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ResourceARN" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ResourceARN" + } + ], + "assign": "arn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "region" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "service" + ] + }, + "kinesis" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "stream" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "channel" + ] + } + ] + } + ], + "error": "Invalid ARN: Unsupported resource type `{arnType}`. Expected: stream or channel", + "type": "error" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "{arn#partition}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "stream" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{arn#accountId}.{OperationType}-kinesis.{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://{arn#accountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "channel" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[1]" + ], + "assign": "resourceId" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "resourceId" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{resourceId}.{OperationType}-kinesis.{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://{resourceId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid channel id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Missing channel id.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Partition: {arn#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn#service}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid region.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid account id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Failed to parse ARN.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ChannelARN" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "ChannelARN" + } + ], + "assign": "arn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "region" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "service" + ] + }, + "kinesis" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "channel" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "{arn#partition}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arn" + }, + "resourceId[1]" + ], + "assign": "channelId" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "channelId" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "OperationType" + }, + "data" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{channelId}.{OperationType}-kinesis-fips.{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": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{channelId}.{OperationType}-kinesis-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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{channelId}.{OperationType}-kinesis.{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://{channelId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "ChannelARN does not support the `data` operation type.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid channel id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Missing channel id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Partition: {arn#partition} from ARN doesn't match with partition name: {PartitionResult#name}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: ChannelARN only supports `channel` arn types, found: `{arnType}`.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: {arn#service}.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid region.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Invalid account id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Failed to parse ARN.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OperationType" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled, but this partition does not support DualStack.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled, but this partition does not support FIPS.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "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": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "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://{AccountId}.{OperationType}-kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": { + "metricValues": [ + "O" + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Operation Type is not set. Please contact service team for resolution.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid account id.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "required" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://kinesis.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{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://kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-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://kinesis-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://kinesis.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-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 disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + }, + { + "documentation": "Invalid ARN: Failed to parse ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn" + } + }, + { + "documentation": "Invalid ARN: partition missing from ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn::kinesis:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "Invalid ARN: partitions mismatch.", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "Invalid ARN: Not Kinesis", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "Invalid ARN: Region is missing in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis::123456789012:stream/testStream" + } + }, + { + "documentation": "Invalid ARN: Region is empty string in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis: :123456789012:stream/testStream" + } + }, + { + "documentation": "Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis:us-east-1::stream/testStream", + "OperationType": "control" + } + }, + { + "documentation": "Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis:us-east-1: :stream/testStream", + "OperationType": "control" + } + }, + { + "documentation": "Invalid ARN: Kinesis ARNs only support stream arn types", + "expect": { + "error": "Invalid ARN: Kinesis ARNs don't support `accesspoint` arn types." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream" + } + }, + { + "documentation": "OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream" + } + }, + { + "documentation": "Custom Endpoint is specified", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Account endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with fips targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with FIPS and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "RegionMismatch: client region should be used for endpoint region", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/testStream" + } + }, + { + "documentation": "Account endpoint with FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with FIPS and DualStack enabled for cn regions.", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "data", + "StreamARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with fips targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Account endpoint with fips targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream" + } + }, + { + "documentation": "Invalid ConsumerARN: Failed to parse ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn" + } + }, + { + "documentation": "Invalid ConsumerARN: partition missing from ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn::kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Invalid ARN: partitions mismatch.", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Invalid ARN: Not Kinesis", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Invalid ARN: Region is missing in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis::123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Invalid ARN: Region is empty string in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis: :123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis:us-east-1::stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control" + } + }, + { + "documentation": "Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis:us-east-1: :stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control" + } + }, + { + "documentation": "Invalid ARN: Kinesis ARNs only support stream arn/consumer arn types", + "expect": { + "error": "Invalid ARN: Kinesis ARNs don't support `accesspoint` arn types." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Custom Endpoint is specified", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Account endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with fips targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with FIPS and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "RegionMismatch: client region should be used for endpoint region", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-west-1:123:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with FIPS and DualStack enabled for cn regions.", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "data", + "ConsumerARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with fips targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Account endpoint with fips targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ConsumerARN targeting US-EAST-1", + "expect": { + "endpoint": { + "url": "https://123456789123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789123:stream/foobar/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "Both StreamARN and ConsumerARN specified. StreamARN should take precedence", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/foobar", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123456789123:stream/foobar/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN test: Invalid ARN: Failed to parse ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: partition missing from ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn::kinesis:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: partitions mismatch.", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Not Kinesis", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Region is missing in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis::123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Region is empty string in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis: :123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1::stream/testStream", + "OperationType": "control" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1: :stream/testStream", + "OperationType": "control" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Invalid ARN: Kinesis ARNs only support stream arn types", + "expect": { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Custom Endpoint is specified", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with fips targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with FIPS and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: RegionMismatch: client region should be used for endpoint region", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/testStream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with FIPS and DualStack enabled for cn regions.", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with fips targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as StreamARN test: Account endpoint with fips targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: partition missing from ARN.", + "expect": { + "error": "Invalid ARN: Failed to parse ARN." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn::kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: partitions mismatch.", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Not Kinesis", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:s3:us-west-2:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Region is missing in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis::123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Region is empty string in ARN", + "expect": { + "error": "Invalid ARN: Invalid region." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis: :123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1::stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Invalid account id", + "expect": { + "error": "Invalid ARN: Invalid account id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1: :stream/testStream/consumer/test-consumer:1525898737", + "OperationType": "control" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Invalid ARN: Kinesis ARNs only support stream arn/consumer arn types", + "expect": { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1:123:accesspoint/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Custom Endpoint is specified", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with fips targeting data operation type", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with FIPS and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: RegionMismatch: client region should be used for endpoint region", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws:kinesis:us-west-1:123:stream/testStream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with FIPS enabled", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with FIPS and DualStack enabled for cn regions.", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "data", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-west-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with fips targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ConsumerARN test: Account endpoint with fips targeting data operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "ResourceARN": "arn:aws-iso-b:kinesis:us-isob-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Invalid ARN: unsupported resource type", + "expect": { + "error": "Invalid ARN: Unsupported resource type `accesspoint`. Expected: stream or channel" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:accesspoint/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Invalid ARN: Not Kinesis", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:s3:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Invalid ARN: partitions mismatch", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Missing channel id", + "expect": { + "error": "Invalid ARN: Missing channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Invalid channel id (subdomains not allowed)", + "expect": { + "error": "Invalid ARN: Invalid channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8.ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Custom Endpoint is specified", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: RegionMismatch: client region should be used for endpoint region", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Account endpoint with FIPS enabled for cn regions", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Account endpoint with FIPS and DualStack enabled for cn regions", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ResourceARN": "arn:aws-cn:kinesis:cn-northwest-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Account endpoint targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ResourceARN as ChannelARN test: Account endpoint with fips targeting control operation type in ADC regions", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws-iso:kinesis:us-iso-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "StreamId test: OperationType not set with StreamId", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "StreamId": "af4lwng4k01746835071-xyz" + } + }, + { + "documentation": "StreamId test: Stream endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetShardIterator", + "operationParams": { + "ShardId": "shardId-000000000001", + "ShardIteratorType": "LATEST", + "StreamId": "af4lwng4k01746835071-xyz" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with fips targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with fips targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with Dual Stack and FIPS enabled", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with Dual Stack enabled", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with FIPS and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "ListShards", + "operationParams": { + "StreamId": "af4lwng4k01746835071-xyz" + } + } + ], + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "StreamARN": "arn:aws:kinesis:us-west-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint FIPS and DualStack disabled with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint targeting data operation type with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint with fips targeting data operation type with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint with fips targeting control operation type with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint with Dual Stack and FIPS enabled with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint with Dual Stack enabled with endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint targeting data operation type with https endpoint", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with FIPS enabled targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with FIPS enabled targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with DualStack enabled targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with DualStack enabled targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with FIPS and DualStack enabled targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with FIPS and DualStack enabled targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod1-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod1.us-east-1.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with FIPS enabled in different region", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis-pod2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com" + } + }, + { + "documentation": "StreamId test: HTTPS endpoint with DualStack enabled in different region", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis-pod2.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Stream endpoint with ConsumerARN targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "StreamId test: Stream endpoint with ConsumerARN targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "ConsumerARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream/consumer/test-consumer:1525898737" + } + }, + { + "documentation": "StreamId test: Stream endpoint with ResourceARN targeting control operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Stream endpoint with ResourceARN targeting data operation type", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid StreamId with ARN", + "expect": { + "endpoint": { + "url": "https://123.data-kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "StreamId": "af4lwng4k01746835071=xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid streamId with custom endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis-pod2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com" + } + }, + { + "documentation": "StreamId test: Invalid streamId", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz" + } + }, + { + "documentation": "StreamId test: Invalid streamId with custom endpoint and ARN", + "expect": { + "endpoint": { + "url": "https://kinesis-pod2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071=xyz", + "Endpoint": "https://kinesis-pod2.us-west-2.amazonaws.com", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid streamId with longer prefix", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k0174683507123-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid streamId with shorter prefix", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835-xyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid streamId with longer suffix", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-wxyz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "StreamId test: Invalid streamId with shorter suffix", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-yz", + "ResourceARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream" + } + }, + { + "documentation": "ChannelARN: endpoint targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "DescribeChannel", + "operationParams": { + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ChannelARN: endpoint with FIPS targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteChannel", + "operationParams": { + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ChannelARN: endpoint with DualStack targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "UpdateChannel", + "operationParams": { + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "ChannelARN: endpoint with FIPS and DualStack targeting control operation type", + "expect": { + "endpoint": { + "url": "https://apu0zt8ge6utbndxe.control-kinesis-fips.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "DescribeChannel", + "operationParams": { + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: ChannelARN only supports channel arn types", + "expect": { + "error": "Invalid ARN: ChannelARN only supports `channel` arn types, found: `stream`." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:stream/test-stream" + } + }, + { + "documentation": "Invalid ChannelARN: ARN was not for the Kinesis service", + "expect": { + "error": "Invalid ARN: The ARN was not for the Kinesis service, found: s3." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ChannelARN": "arn:aws:s3:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: OperationType not set", + "expect": { + "error": "Operation Type is not set. Please contact service team for resolution." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: partitions mismatch", + "expect": { + "error": "Partition: aws from ARN doesn't match with partition name: aws-us-gov." + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-west-2:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: missing channel id", + "expect": { + "error": "Invalid ARN: Missing channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel" + } + }, + { + "documentation": "Invalid ChannelARN: channel id contains a period (subdomains not allowed)", + "expect": { + "error": "Invalid ARN: Invalid channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8.ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: channel id exceeds 63 character host label limit", + "expect": { + "error": "Invalid ARN: Invalid channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + }, + { + "documentation": "Invalid ChannelARN: channel id starts with a hyphen", + "expect": { + "error": "Invalid ARN: Invalid channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/-pu0zt8ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: channel id contains an invalid character", + "expect": { + "error": "Invalid ARN: Invalid channel id." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8_ge6utbndxe" + } + }, + { + "documentation": "Invalid ChannelARN: data operation type is not supported for channel", + "expect": { + "error": "ChannelARN does not support the `data` operation type." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "ChannelARN": "arn:aws:kinesis:us-east-1:298091445058:channel/apu0zt8ge6utbndxe" + } + }, + { + "documentation": "AccountId test: Account Id present", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://012345678901.data-kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "GetShardIterator", + "operationParams": { + "ShardId": "shardId-000000000001", + "ShardIteratorType": "LATEST", + "StreamName": "test-stream" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "data", + "AccountId": "012345678901", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "AccountId test: Account Id present with fips", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123.control-kinesis-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123", + "AWS::Auth::AccountIdEndpointMode": "required", + "AWS::UseFIPS": true + }, + "operationName": "ListShards", + "operationParams": { + "StreamName": "testStream" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "AccountId test: Account Id present with dual stack", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123.control-kinesis.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "AccountId test: Account Id present with fips and dual stack", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123.control-kinesis-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present with streamId", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present with stream ARN", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-east-1:123:stream/test-stream", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present with consumer ARN", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ConsumerARN": "arn:aws:kinesis:us-west-2:123:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present with resource ARN", + "expect": { + "endpoint": { + "url": "https://123.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:123:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present and stream ARN with different accountId", + "expect": { + "endpoint": { + "url": "https://456.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id present and consumer ARN with different accountId", + "expect": { + "endpoint": { + "url": "https://456.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id, streamId and resource ARN with different accountId", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "ResourceARN": "arn:aws:kinesis:us-west-2:456:stream/testStream/consumer/test-consumer:1525898737", + "AccountId": "123", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id with account id endpoint mode disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListShards", + "operationParams": { + "StreamName": "testStream" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "Account Id and StreamArn with account id endpoint mode disabled", + "expect": { + "endpoint": { + "url": "https://456.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountId": "123", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode required", + "expect": { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "ListShards", + "operationParams": { + "StreamName": "testStream" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode required, fips and dual stack enabled", + "expect": { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode required in ADC region", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id present with account id endpoint mode required in ADC region", + "expect": { + "error": "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id present with account id endpoint mode preferred in ADC region", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode required and endpoint override", + "expect": { + "endpoint": { + "url": "https://kinesis-pod1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "Endpoint": "https://kinesis-pod1.us-west-2.amazonaws.com", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id missing with StreamArn and account id endpoint mode required", + "expect": { + "endpoint": { + "url": "https://456.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamARN": "arn:aws:kinesis:us-west-2:456:stream/testStream", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id missing with StreamId and account id endpoint mode required", + "expect": { + "endpoint": { + "url": "https://af4lwng4k01746835071.xyz.control-kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "StreamId": "af4lwng4k01746835071-xyz", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode preferred", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "Account Id missing with account id endpoint mode disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateStream: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateStream: control operation type with FIPS and AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "ListStreams: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListStreams" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "ListStreams: control operation type with FIPS and DualStack", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListStreams" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "DescribeLimits: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "DescribeLimits" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "DescribeLimits: control operation type with FIPS", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true + }, + "operationName": "DescribeLimits" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "DescribeAccountSettings: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "DescribeAccountSettings" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "DescribeAccountSettings: control operation type with FIPS and DualStack", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "DescribeAccountSettings" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "UpdateAccountSettings: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "UpdateAccountSettings", + "operationParams": { + "MinimumThroughputBillingCommitment": { + "Status": "ENABLED" + } + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "UpdateAccountSettings: control operation type with FIPS", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true + }, + "operationName": "UpdateAccountSettings", + "operationParams": { + "MinimumThroughputBillingCommitment": { + "Status": "ENABLED" + } + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateStream: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "ListStreams: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListStreams" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "DescribeLimits: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "DescribeLimits" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "DescribeAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "DescribeAccountSettings" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "UpdateAccountSettings: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "UpdateAccountSettings", + "operationParams": { + "MinimumThroughputBillingCommitment": { + "Status": "ENABLED" + } + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateStream: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseFIPS": true + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateStream: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseDualStack": true + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateStream: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "CreateStream", + "operationParams": { + "StreamName": "test-stream", + "ShardCount": 1 + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateChannel: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateChannel: control operation type with FIPS and AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateChannel: control operation type with DualStack and AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseDualStack": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateChannel: control operation type with FIPS and DualStack and AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "CreateChannel: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateChannel: account id endpoint mode disabled with FIPS falls back to regional FIPS endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseFIPS": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateChannel: account id endpoint mode disabled with DualStack falls back to regional DualStack endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseDualStack": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "CreateChannel: account id endpoint mode disabled with FIPS and DualStack falls back to regional FIPS DualStack endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "CreateChannel", + "operationParams": { + "ChannelName": "test-channel", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/test-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ] + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "ListChannels: control operation type with AccountId", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListChannels" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "ListChannels: control operation type with FIPS and DualStack", + "expect": { + "endpoint": { + "properties": { + "metricValues": [ + "O" + ] + }, + "url": "https://123456789012.control-kinesis-fips.us-west-2.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListChannels" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "ListChannels: account id endpoint mode disabled falls back to regional endpoint", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::Auth::AccountId": "123456789012", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListChannels" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "OperationType": "control", + "AccountId": "123456789012", + "AccountIdEndpointMode": "disabled" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.kinesis#LimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requested resource exceeds the maximum number allowed, or the number of concurrent\n stream requests exceeds the maximum number allowed.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#ListChannels": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListChannelsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListChannelsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#ExpiredNextTokenException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the channels in your account. You can filter the results by source stream. The results are paginated. Use the NextToken value returned in the response to retrieve additional results.

\n

Use this operation to find channels before deleting a stream, or to audit the channels configured in an Amazon Web Services Region.

\n

This operation has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. Exceeding 5 TPS results in a LimitExceededException.

", + "smithy.api#examples": [ + { + "title": "To list channels", + "output": { + "ChannelSummaries": [ + { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "ACTIVE", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ChannelDestinationType": "S3", + "Streams": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z" + } + ] + } + ] + } + }, + { + "title": "To list channels filtered by stream", + "input": { + "StreamFilter": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name" + } + ], + "MaxResults": 10 + }, + "output": { + "ChannelSummaries": [ + { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "ACTIVE", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ChannelDestinationType": "S3", + "Streams": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z" + } + ] + } + ], + "NextToken": "AAAAAgAAAAEAAAABbXktbmV4dC1wYWdlLXRva2Vu" + } + } + ], + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ChannelSummaries", + "pageSize": "MaxResults" + }, + "smithy.api#readonly": {}, + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#ListChannelsInput": { + "type": "structure", + "members": { + "StreamFilter": { + "target": "com.amazonaws.kinesis#StreamFilterList", + "traits": { + "smithy.api#documentation": "

Filters the results to channels associated with the specified streams.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.kinesis#ListChannelsInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of channels to return in a single call. The default value is 100. If you specify a value greater than 100, at most 100 results are returned.

" + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token returned by a previous call. Specify this token to retrieve the next page of results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListChannelsInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ListChannelsOutput": { + "type": "structure", + "members": { + "ChannelSummaries": { + "target": "com.amazonaws.kinesis#ChannelSummaryList", + "traits": { + "smithy.api#documentation": "

A list of channel summaries.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token to use in a subsequent call to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ListShards": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListShardsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListShardsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#ExpiredNextTokenException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the shards in a stream and provides information about each shard. This operation\n has a limit of 1000 transactions per second per data stream.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

This action does not list expired shards. For information about expired shards, see\n Data Routing, Data Persistence, and Shard State after a Reshard.

\n \n

This API is a new operation that is used by the Amazon Kinesis Client Library\n (KCL). If you have a fine-grained IAM policy that only allows specific operations,\n you must update your policy to allow calls to this API. For more information, see\n Controlling Access to Amazon Kinesis Data Streams Resources Using\n IAM.

\n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#ListShardsInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the data stream whose shards you want to list.

\n

You cannot specify this parameter if you specify the NextToken\n parameter.

" + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

When the number of shards in the data stream is greater than the default value for the\n MaxResults parameter, or if you explicitly specify a value for\n MaxResults that is less than the number of shards in the data stream,\n the response includes a pagination token named NextToken. You can specify\n this NextToken value in a subsequent call to ListShards to\n list the next set of shards.

\n

Don't specify StreamName or StreamCreationTimestamp if you\n specify NextToken because the latter unambiguously identifies the\n stream.

\n

You can optionally specify a value for the MaxResults parameter when you\n specify NextToken. If you specify a MaxResults value that is\n less than the number of shards that the operation returns if you don't specify\n MaxResults, the response will contain a new NextToken\n value. You can use the new NextToken value in a subsequent call to the\n ListShards operation.

\n \n

Tokens expire after 300 seconds. When you obtain a value for\n NextToken in the response to a call to ListShards, you\n have 300 seconds to use that value. If you specify an expired token in a call to\n ListShards, you get ExpiredNextTokenException.

\n
" + } + }, + "ExclusiveStartShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

Specify this parameter to indicate that you want to list the shards starting with the\n shard whose ID immediately follows ExclusiveStartShardId.

\n

If you don't specify this parameter, the default behavior is for\n ListShards to list the shards starting with the first one in the\n stream.

\n

You cannot specify this parameter if you specify NextToken.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.kinesis#ListShardsInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of shards to return in a single call to ListShards.\n The maximum number of shards to return in a single call. The default value is 1000. If\n you specify a value greater than 1000, at most 1000 results are returned.

\n

When the number of shards to be listed is greater than the value of\n MaxResults, the response contains a NextToken value that\n you can use in a subsequent call to ListShards to list the next set of\n shards.

" + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

Specify this input parameter to distinguish data streams that have the same name. For\n example, if you create a data stream and then delete it, and you later create another\n data stream with the same name, you can use this input parameter to specify which of the\n two streams you want to list the shards for.

\n

You cannot specify this parameter if you specify the NextToken\n parameter.

" + } + }, + "ShardFilter": { + "target": "com.amazonaws.kinesis#ShardFilter", + "traits": { + "smithy.api#documentation": "

Enables you to filter out the response of the ListShards API. You can\n only specify one filter at a time.

\n

If you use the ShardFilter parameter when invoking the ListShards API,\n the Type is the required property and must be specified. If you specify the\n AT_TRIM_HORIZON, FROM_TRIM_HORIZON, or\n AT_LATEST types, you do not need to specify either the\n ShardId or the Timestamp optional properties.

\n

If you specify the AFTER_SHARD_ID type, you must also provide the value\n for the optional ShardId property. The ShardId property is\n identical in fuctionality to the ExclusiveStartShardId parameter of the\n ListShards API. When ShardId property is specified, the\n response includes the shards starting with the shard whose ID immediately follows the\n ShardId that you provided.

\n

If you specify the AT_TIMESTAMP or FROM_TIMESTAMP_ID type,\n you must also provide the value for the optional Timestamp property. If you\n specify the AT_TIMESTAMP type, then all shards that were open at the provided timestamp\n are returned. If you specify the FROM_TIMESTAMP type, then all shards starting from the\n provided timestamp to TIP are returned.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListShardsInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ListShardsOutput": { + "type": "structure", + "members": { + "Shards": { + "target": "com.amazonaws.kinesis#ShardList", + "traits": { + "smithy.api#documentation": "

An array of JSON objects. Each object represents one shard and specifies the IDs of\n the shard, the shard's parent, and the shard that's adjacent to the shard's parent. Each\n object also contains the starting and ending hash keys and the starting and ending\n sequence numbers for the shard.

" + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

When the number of shards in the data stream is greater than the default value for the\n MaxResults parameter, or if you explicitly specify a value for\n MaxResults that is less than the number of shards in the data stream,\n the response includes a pagination token named NextToken. You can specify\n this NextToken value in a subsequent call to ListShards to\n list the next set of shards. For more information about the use of this pagination token\n when calling the ListShards operation, see ListShardsInput$NextToken.

\n \n

Tokens expire after 300 seconds. When you obtain a value for\n NextToken in the response to a call to ListShards, you\n have 300 seconds to use that value. If you specify an expired token in a call to\n ListShards, you get ExpiredNextTokenException.

\n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ListStreamConsumers": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListStreamConsumersInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListStreamConsumersOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#ExpiredNextTokenException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the consumers registered to receive data from a stream using enhanced fan-out,\n and provides information about each consumer.

\n

This operation has a limit of 5 transactions per second per stream.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + }, + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#ListStreamConsumersInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the Kinesis data stream for which you want to list the registered\n consumers. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service\n Namespaces.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

When the number of consumers that are registered with the data stream is greater than\n the default value for the MaxResults parameter, or if you explicitly\n specify a value for MaxResults that is less than the number of consumers\n that are registered with the data stream, the response includes a pagination token named\n NextToken. You can specify this NextToken value in a\n subsequent call to ListStreamConsumers to list the next set of registered\n consumers.

\n

Don't specify StreamName or StreamCreationTimestamp if you\n specify NextToken because the latter unambiguously identifies the\n stream.

\n

You can optionally specify a value for the MaxResults parameter when you\n specify NextToken. If you specify a MaxResults value that is\n less than the number of consumers that the operation returns if you don't specify\n MaxResults, the response will contain a new NextToken\n value. You can use the new NextToken value in a subsequent call to the\n ListStreamConsumers operation to list the next set of consumers.

\n \n

Tokens expire after 300 seconds. When you obtain a value for\n NextToken in the response to a call to\n ListStreamConsumers, you have 300 seconds to use that value. If you\n specify an expired token in a call to ListStreamConsumers, you get\n ExpiredNextTokenException.

\n
" + } + }, + "MaxResults": { + "target": "com.amazonaws.kinesis#ListStreamConsumersInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of consumers that you want a single call of\n ListStreamConsumers to return. The default value is 100. If you specify\n a value greater than 100, at most 100 results are returned.

" + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

Specify this input parameter to distinguish data streams that have the same name. For\n example, if you create a data stream and then delete it, and you later create another\n data stream with the same name, you can use this input parameter to specify which of the\n two streams you want to list the consumers for.

\n

You can't specify this parameter if you specify the NextToken parameter.

" + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListStreamConsumersInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ListStreamConsumersOutput": { + "type": "structure", + "members": { + "Consumers": { + "target": "com.amazonaws.kinesis#ConsumerList", + "traits": { + "smithy.api#documentation": "

An array of JSON objects. Each object represents one registered consumer.

" + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

When the number of consumers that are registered with the data stream is greater than\n the default value for the MaxResults parameter, or if you explicitly\n specify a value for MaxResults that is less than the number of registered\n consumers, the response includes a pagination token named NextToken. You\n can specify this NextToken value in a subsequent call to\n ListStreamConsumers to list the next set of registered consumers. For\n more information about the use of this pagination token when calling the\n ListStreamConsumers operation, see ListStreamConsumersInput$NextToken.

\n \n

Tokens expire after 300 seconds. When you obtain a value for\n NextToken in the response to a call to\n ListStreamConsumers, you have 300 seconds to use that value. If you\n specify an expired token in a call to ListStreamConsumers, you get\n ExpiredNextTokenException.

\n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ListStreams": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListStreamsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListStreamsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#ExpiredNextTokenException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists your Kinesis data streams.

\n

The number of streams may be too large to return from a single call to\n ListStreams. You can limit the number of returned streams using the\n Limit parameter. If you do not specify a value for the\n Limit parameter, Kinesis Data Streams uses the default limit, which is\n currently 100.

\n

You can detect if there are more streams available to list by using the\n HasMoreStreams flag from the returned output. If there are more streams\n available, you can request more streams by using the name of the last stream returned by\n the ListStreams request in the ExclusiveStartStreamName\n parameter in a subsequent request to ListStreams. The group of stream names\n returned by the subsequent request is then added to the list. You can continue this\n process until all the stream names have been collected in the list.

\n

\n ListStreams has a limit of five transactions per second per\n account.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "Limit" + }, + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + }, + "smithy.test#smokeTests": [ + { + "id": "ListStreamsSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.kinesis#ListStreamsInput": { + "type": "structure", + "members": { + "Limit": { + "target": "com.amazonaws.kinesis#ListStreamsInputLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of streams to list. The default value is 100. If you specify a\n value greater than 100, at most 100 results are returned.

" + } + }, + "ExclusiveStartStreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to start the list with.

" + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for ListStreams.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListStreamsInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#ListStreamsOutput": { + "type": "structure", + "members": { + "StreamNames": { + "target": "com.amazonaws.kinesis#StreamNameList", + "traits": { + "smithy.api#documentation": "

The names of the streams that are associated with the Amazon Web Services account\n making the ListStreams request.

", + "smithy.api#required": {} + } + }, + "HasMoreStreams": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

If set to true, there are more streams available to list.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.kinesis#NextToken", + "traits": { + "smithy.api#documentation": "

" + } + }, + "StreamSummaries": { + "target": "com.amazonaws.kinesis#StreamSummaryList", + "traits": { + "smithy.api#documentation": "

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for ListStreams.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListTagsForResourceInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListTagsForResourceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

List all tags added to the specified Kinesis 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.

\n

For more information about tagging Kinesis resources, see Tag your Amazon Kinesis Data Streams resources.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#ListTagsForResourceInput": { + "type": "structure", + "members": { + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Kinesis resource for which to list tags.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListTagsForResourceOutput": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.kinesis#TagList", + "traits": { + "smithy.api#documentation": "

An array of tags associated with the specified Kinesis resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ListTagsForStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#ListTagsForStreamInput" + }, + "output": { + "target": "com.amazonaws.kinesis#ListTagsForStreamOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags for the specified Kinesis data stream. This operation has a limit of\n five transactions per second per account.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#ListTagsForStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream.

" + } + }, + "ExclusiveStartTagKey": { + "target": "com.amazonaws.kinesis#TagKey", + "traits": { + "smithy.api#documentation": "

The key to use as the starting point for the list of tags. If this parameter is set,\n ListTagsForStream gets all tags that occur after\n ExclusiveStartTagKey.

" + } + }, + "Limit": { + "target": "com.amazonaws.kinesis#ListTagsForStreamInputLimit", + "traits": { + "smithy.api#documentation": "

The number of tags to return. If this number is less than the total number of tags\n associated with the stream, HasMoreTags is set to true. To\n list additional tags, set ExclusiveStartTagKey to the last key in the\n response.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for ListTagsForStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ListTagsForStreamInputLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.kinesis#ListTagsForStreamOutput": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.kinesis#TagList", + "traits": { + "smithy.api#documentation": "

A list of tags associated with StreamName, starting with the first tag\n after ExclusiveStartTagKey and up to the specified Limit.\n

", + "smithy.api#required": {} + } + }, + "HasMoreTags": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

If set to true, more tags are available. To request additional tags, set\n ExclusiveStartTagKey to the key of the last tag returned.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for ListTagsForStream.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#MaxRecordSizeInKiB": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1024, + "max": 10240 + } + } + }, + "com.amazonaws.kinesis#MergeShards": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#MergeShardsInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Merges two adjacent shards in a Kinesis data stream and combines them into a single\n shard to reduce the stream's capacity to ingest and transport data. This API is only\n supported for the data streams with the provisioned capacity mode. Two shards are\n considered adjacent if the union of the hash key ranges for the two shards form a\n contiguous set with no gaps. For example, if you have two shards, one with a hash key\n range of 276...381 and the other with a hash key range of 382...454, then you could\n merge these two shards into a single shard that would have a hash key range of\n 276...454. After the merge, the single child shard receives data for all hash key values\n covered by the two parent shards.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

\n MergeShards is called when there is a need to reduce the overall capacity\n of a stream because of excess capacity that is not being used. You must specify the\n shard to be merged and the adjacent shard for a stream. For more information about\n merging shards, see Merge Two\n Shards in the Amazon Kinesis Data Streams Developer\n Guide.

\n

If the stream is in the ACTIVE state, you can call\n MergeShards. If a stream is in the CREATING,\n UPDATING, or DELETING state, MergeShards\n returns a ResourceInUseException. If the specified stream does not exist,\n MergeShards returns a ResourceNotFoundException.

\n

You can use DescribeStreamSummary to check the state of the stream,\n which is returned in StreamStatus.

\n

\n MergeShards is an asynchronous operation. Upon receiving a\n MergeShards request, Amazon Kinesis Data Streams immediately returns a\n response and sets the StreamStatus to UPDATING. After the\n operation is completed, Kinesis Data Streams sets the StreamStatus to\n ACTIVE. Read and write operations continue to work while the stream is\n in the UPDATING state.

\n

You use DescribeStreamSummary and the ListShards\n APIs to determine the shard IDs that are specified in the MergeShards\n request.

\n

If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards,\n or SplitShard, you receive a LimitExceededException.

\n

\n MergeShards has a limit of five transactions per second per account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#MergeShardsInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream for the merge.

" + } + }, + "ShardToMerge": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard to combine with the adjacent shard for the merge.

", + "smithy.api#required": {} + } + }, + "AdjacentShardToMerge": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the adjacent shard for the merge.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for MergeShards.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#MetricsName": { + "type": "enum", + "members": { + "INCOMING_BYTES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IncomingBytes" + } + }, + "INCOMING_RECORDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IncomingRecords" + } + }, + "OUTGOING_BYTES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OutgoingBytes" + } + }, + "OUTGOING_RECORDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OutgoingRecords" + } + }, + "WRITE_PROVISIONED_THROUGHPUT_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WriteProvisionedThroughputExceeded" + } + }, + "READ_PROVISIONED_THROUGHPUT_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReadProvisionedThroughputExceeded" + } + }, + "ITERATOR_AGE_MILLISECONDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IteratorAgeMilliseconds" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + } + } + }, + "com.amazonaws.kinesis#MetricsNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#MetricsName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 7 + } + } + }, + "com.amazonaws.kinesis#MillisBehindLatest": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentInput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentInputStatus", + "traits": { + "smithy.api#documentation": "

The desired status of the minimum throughput billing commitment.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the request parameters for configuring minimum throughput billing commitment.

\n \n
    \n
  • \n

    Minimum throughput billing commitments provide cost savings on on-demand data streams in exchange for committing to a minimum level of throughput usage.

    \n
  • \n
  • \n

    Commitments have a minimum duration of 24 hours that must be honored before they can be disabled.

    \n
  • \n
  • \n

    If you attempt to disable a commitment before the minimum commitment period ends, the commitment will be scheduled for automatic disable at the earliest allowed end time.

    \n
  • \n
  • \n

    You can cancel a pending disable by enabling the commitment again before the earliest allowed end time.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentInputStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentOutput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentOutputStatus", + "traits": { + "smithy.api#documentation": "

The current status of the minimum throughput billing commitment.

", + "smithy.api#required": {} + } + }, + "StartedAt": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the commitment was started.

" + } + }, + "EndedAt": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the commitment was ended.

" + } + }, + "EarliestAllowedEndAt": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The earliest timestamp when the commitment can be ended.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the current status of minimum throughput billing commitment for an account.

" + } + }, + "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentOutputStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED_UNTIL_EARLIEST_ALLOWED_END": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED_UNTIL_EARLIEST_ALLOWED_END" + } + } + } + }, + "com.amazonaws.kinesis#NaturalIntegerObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0 + } + } + }, + "com.amazonaws.kinesis#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1048576 + } + } + }, + "com.amazonaws.kinesis#OnDemandStreamCountLimitObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000000 + } + } + }, + "com.amazonaws.kinesis#OnDemandStreamCountObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000000 + } + } + }, + "com.amazonaws.kinesis#PartitionField": { + "type": "structure", + "members": { + "Transform": { + "target": "com.amazonaws.kinesis#PartitionTransform", + "traits": { + "smithy.api#documentation": "

The partition transform to apply. The only valid value is TIME_HOUR.

", + "smithy.api#required": {} + } + }, + "SourceName": { + "target": "com.amazonaws.kinesis#PartitionSourceName", + "traits": { + "smithy.api#documentation": "

The name of the source column used for partitioning. This column must be of the timestamptz type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a single partition field.

" + } + }, + "com.amazonaws.kinesis#PartitionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#PartitionField" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.kinesis#PartitionKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.kinesis#PartitionSourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\_]+$" + } + }, + "com.amazonaws.kinesis#PartitionSpec": { + "type": "structure", + "members": { + "PartitionFields": { + "target": "com.amazonaws.kinesis#PartitionFieldList", + "traits": { + "smithy.api#documentation": "

The list of partition fields.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies how the destination table is partitioned.

" + } + }, + "com.amazonaws.kinesis#PartitionTransform": { + "type": "enum", + "members": { + "TIME_HOUR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIME_HOUR" + } + } + } + }, + "com.amazonaws.kinesis#Policy": { + "type": "string" + }, + "com.amazonaws.kinesis#PositiveIntegerObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.kinesis#ProvisionedThroughputExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request rate for the stream is too high, or the requested data is too large for\n the available throughput. Reduce the frequency or size of your requests. For more\n information, see Streams Limits in the\n Amazon Kinesis Data Streams Developer Guide, and Error Retries and\n Exponential Backoff in Amazon Web Services in the Amazon Web Services General Reference.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#PutRecord": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#PutRecordInput" + }, + "output": { + "target": "com.amazonaws.kinesis#PutRecordOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#DryRunOperationException" + }, + { + "target": "com.amazonaws.kinesis#InternalFailureException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + { + "target": "com.amazonaws.kinesis#ProvisionedThroughputExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Writes a single data record into an Amazon Kinesis data stream. Call\n PutRecord to send data into the stream for real-time ingestion and\n subsequent processing, one record at a time. Each shard can support writes up to 1,000\n records per second, up to a maximum data write total of 10 MiB per second.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

You must specify the name of the stream that captures, stores, and transports the\n data; a partition key; and the data blob itself.

\n

The data blob can be any type of data; for example, a segment from a log file,\n geographic/location data, website clickstream data, and so on.

\n

The partition key is used by Kinesis Data Streams to distribute data across shards.\n Kinesis Data Streams segregates the data records that belong to a stream into multiple\n shards, using the partition key associated with each data record to determine the shard\n to which a given data record belongs.

\n

Partition keys are Unicode strings, with a maximum length limit of 256 characters for\n each key. An MD5 hash function is used to map partition keys to 128-bit integer values\n and to map associated data records to shards using the hash key ranges of the shards.\n You can override hashing the partition key to determine the shard by explicitly\n specifying a hash value using the ExplicitHashKey parameter. For more\n information, see Adding Data to a Stream in the Amazon Kinesis Data Streams\n Developer Guide.

\n

\n PutRecord returns the shard ID of where the data record was placed and the\n sequence number that was assigned to the data record.

\n

Sequence numbers increase over time and are specific to a shard within a stream, not\n across all shards within a stream. To guarantee strictly increasing ordering, write\n serially to a shard and use the SequenceNumberForOrdering parameter. For\n more information, see Adding Data to a Stream in the Amazon Kinesis Data Streams\n Developer Guide.

\n \n

After you write a record to a stream, you cannot modify that record or its order\n within the stream.

\n
\n

If a PutRecord request cannot be processed because of insufficient\n provisioned throughput on the shard involved in the request, PutRecord\n throws ProvisionedThroughputExceededException.

\n

By default, data records are accessible for 24 hours from the time that they are added\n to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "data" + } + } + } + }, + "com.amazonaws.kinesis#PutRecordInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to put the data record into.

" + } + }, + "Data": { + "target": "com.amazonaws.kinesis#Data", + "traits": { + "smithy.api#documentation": "

The data blob to put into the record, which is base64-encoded when the blob is\n serialized. When the data blob (the payload before base64-encoding) is added to the\n partition key size, the total size must not exceed the maximum record size (10\n MiB).

", + "smithy.api#required": {} + } + }, + "PartitionKey": { + "target": "com.amazonaws.kinesis#PartitionKey", + "traits": { + "smithy.api#documentation": "

Determines which shard in the stream the data record is assigned to. Partition keys\n are Unicode strings with a maximum length limit of 256 characters for each key. Amazon\n Kinesis Data Streams uses the partition key as input to a hash function that maps the\n partition key and associated data to a specific shard. Specifically, an MD5 hash\n function is used to map partition keys to 128-bit integer values and to map associated\n data records to shards. As a result of this hashing mechanism, all data records with the\n same partition key map to the same shard within the stream.

\n

If the stream uses the USER_PARTITION_KEY record distribution strategy\n (the default), a partition key is required. If the stream uses the AUTO\n record distribution strategy, the partition key is optional and any value you provide is\n ignored, along with any ExplicitHashKey you provide. In that case, Amazon\n Kinesis Data Streams distributes the record across shards using service-managed\n algorithms. For more information, see\n UpdateStreamRecordDistributionStrategy.

" + } + }, + "ExplicitHashKey": { + "target": "com.amazonaws.kinesis#HashKey", + "traits": { + "smithy.api#documentation": "

The hash value used to explicitly determine the shard the data record is assigned to\n by overriding the partition key hash.

" + } + }, + "SequenceNumberForOrdering": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

Guarantees strictly increasing sequence numbers, for puts from the same client and to\n the same partition key. Usage: set the SequenceNumberForOrdering of record\n n to the sequence number of record n-1 (as\n returned in the result when putting record n-1). If this parameter\n is not set, records are coarsely ordered based on arrival time.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "DryRun": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for PutRecord.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#PutRecordOutput": { + "type": "structure", + "members": { + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard where the data record was placed.

", + "smithy.api#required": {} + } + }, + "SequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The sequence number identifier that was assigned to the put data record. The sequence\n number for the record is unique across all records in the stream. A sequence number is\n the identifier associated with every record put into the stream.

", + "smithy.api#required": {} + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type to use on the record. This parameter can be one of the following\n values:

\n
    \n
  • \n

    \n NONE: Do not encrypt the records in the stream.

    \n
  • \n
  • \n

    \n KMS: Use server-side encryption on the records in the stream\n using a customer-managed Amazon Web Services KMS key.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for PutRecord.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#PutRecords": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#PutRecordsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#PutRecordsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#DryRunOperationException" + }, + { + "target": "com.amazonaws.kinesis#InternalFailureException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + { + "target": "com.amazonaws.kinesis#ProvisionedThroughputExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Writes multiple data records into a Kinesis data stream in a single call (also\n referred to as a PutRecords request). Use this operation to send data into\n the stream for data ingestion and processing.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

Each PutRecords request can support up to 500 records. Each record in the\n request can be as large as 10 MiB, up to a limit of 10 MiB for the entire request,\n including partition keys. Each shard can support writes up to 1,000 records per second,\n up to a maximum data write total of 1 MB per second.

\n

You must specify the name of the stream that captures, stores, and transports the\n data; and an array of request Records, with each record in the array\n requiring a partition key and data blob. The record size limit applies to the total size\n of the partition key and data blob.

\n

The data blob can be any type of data; for example, a segment from a log file,\n geographic/location data, website clickstream data, and so on.

\n

The partition key is used by Kinesis Data Streams as input to a hash function that\n maps the partition key and associated data to a specific shard. An MD5 hash function is\n used to map partition keys to 128-bit integer values and to map associated data records\n to shards. As a result of this hashing mechanism, all data records with the same\n partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Data Streams\n Developer Guide.

\n

Each record in the Records array may include an optional parameter,\n ExplicitHashKey, which overrides the partition key to shard mapping.\n This parameter allows a data producer to determine explicitly the shard where the record\n is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis\n Data Streams Developer Guide.

\n

The PutRecords response includes an array of response\n Records. Each record in the response array directly correlates with a\n record in the request array using natural ordering, from the top to the bottom of the\n request and response. The response Records array always includes the same\n number of records as the request array.

\n

The response Records array includes both successfully and unsuccessfully\n processed records. Kinesis Data Streams attempts to process all records in each\n PutRecords request. A single record failure does not stop the\n processing of subsequent records. As a result, PutRecords doesn't guarantee the ordering\n of records. If you need to read records in the same order they are written to the\n stream, use PutRecord instead of PutRecords, and write to\n the same shard.

\n

A successfully processed record includes ShardId and\n SequenceNumber values. The ShardId parameter identifies\n the shard in the stream where the record is stored. The SequenceNumber\n parameter is an identifier assigned to the put record, unique to all records in the\n stream.

\n

An unsuccessfully processed record includes ErrorCode and\n ErrorMessage values. ErrorCode reflects the type of error\n and can be one of the following values:\n ProvisionedThroughputExceededException or InternalFailure.\n ErrorMessage provides more detailed information about the\n ProvisionedThroughputExceededException exception including the account\n ID, stream name, and shard ID of the record that was throttled. For more information\n about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis\n Data Streams Developer Guide.

\n \n

After you write a record to a stream, you cannot modify that record or its order\n within the stream.

\n
\n

By default, data records are accessible for 24 hours from the time that they are added\n to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "data" + } + } + } + }, + "com.amazonaws.kinesis#PutRecordsInput": { + "type": "structure", + "members": { + "Records": { + "target": "com.amazonaws.kinesis#PutRecordsRequestEntryList", + "traits": { + "smithy.api#documentation": "

The records associated with the request.

", + "smithy.api#required": {} + } + }, + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The stream name associated with the request.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "DryRun": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional\n parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A PutRecords request.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#PutRecordsOutput": { + "type": "structure", + "members": { + "FailedRecordCount": { + "target": "com.amazonaws.kinesis#PositiveIntegerObject", + "traits": { + "smithy.api#documentation": "

The number of unsuccessfully processed records in a PutRecords\n request.

" + } + }, + "Records": { + "target": "com.amazonaws.kinesis#PutRecordsResultEntryList", + "traits": { + "smithy.api#documentation": "

An array of successfully and unsuccessfully processed record results. A record that is\n successfully added to a stream includes SequenceNumber and\n ShardId in the result. A record that fails to be added to a stream\n includes ErrorCode and ErrorMessage in the result.

", + "smithy.api#required": {} + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type used on the records. This parameter can be one of the following\n values:

\n
    \n
  • \n

    \n NONE: Do not encrypt the records.

    \n
  • \n
  • \n

    \n KMS: Use server-side encryption on the records using a\n customer-managed Amazon Web Services KMS key.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n PutRecords results.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#PutRecordsRequestEntry": { + "type": "structure", + "members": { + "Data": { + "target": "com.amazonaws.kinesis#Data", + "traits": { + "smithy.api#documentation": "

The data blob to put into the record, which is base64-encoded when the blob is\n serialized. When the data blob (the payload before base64-encoding) is added to the\n partition key size, the total size must not exceed the maximum record size (10\n MiB).

", + "smithy.api#required": {} + } + }, + "ExplicitHashKey": { + "target": "com.amazonaws.kinesis#HashKey", + "traits": { + "smithy.api#documentation": "

The hash value used to determine explicitly the shard that the data record is assigned\n to by overriding the partition key hash.

" + } + }, + "PartitionKey": { + "target": "com.amazonaws.kinesis#PartitionKey", + "traits": { + "smithy.api#documentation": "

Determines which shard in the stream the data record is assigned to. Partition keys\n are Unicode strings with a maximum length limit of 256 characters for each key. Amazon\n Kinesis Data Streams uses the partition key as input to a hash function that maps the\n partition key and associated data to a specific shard. Specifically, an MD5 hash\n function is used to map partition keys to 128-bit integer values and to map associated\n data records to shards. As a result of this hashing mechanism, all data records with the\n same partition key map to the same shard within the stream.

\n

If the stream uses the USER_PARTITION_KEY record distribution strategy\n (the default), a partition key is required for each record. If the stream uses the\n AUTO record distribution strategy, the partition key is optional and any\n value you provide is ignored, along with any ExplicitHashKey you provide.\n In that case, Amazon Kinesis Data Streams distributes records across shards using\n service-managed algorithms. For more information, see\n UpdateStreamRecordDistributionStrategy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for PutRecords.

" + } + }, + "com.amazonaws.kinesis#PutRecordsRequestEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#PutRecordsRequestEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.kinesis#PutRecordsResultEntry": { + "type": "structure", + "members": { + "SequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The sequence number for an individual record result.

" + } + }, + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID for an individual record result.

" + } + }, + "ErrorCode": { + "target": "com.amazonaws.kinesis#ErrorCode", + "traits": { + "smithy.api#documentation": "

The error code for an individual record result. ErrorCodes can be either\n ProvisionedThroughputExceededException or\n InternalFailure.

" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

The error message for an individual record result. An ErrorCode value of\n ProvisionedThroughputExceededException has an error message that\n includes the account ID, stream name, and shard ID. An ErrorCode value of\n InternalFailure has the error message \"Internal Service\n Failure\".

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the result of an individual record from a PutRecords request.\n A record that is successfully added to a stream includes SequenceNumber and\n ShardId in the result. A record that fails to be added to the stream\n includes ErrorCode and ErrorMessage in the result.

" + } + }, + "com.amazonaws.kinesis#PutRecordsResultEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#PutRecordsResultEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.kinesis#PutResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#PutResourcePolicyInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches a resource-based policy to a data stream or registered consumer. If you are using an identity other than the root user of \n the Amazon Web Services account that owns the resource, the calling identity must have the PutResourcePolicy permissions on the \n specified Kinesis Data Streams resource and belong to the owner's account in order to use this operation.\n If you don't have PutResourcePolicy permissions, Amazon Kinesis Data Streams returns a 403 Access Denied error. \n If you receive a ResourceNotFoundException, check to see if you passed a valid stream or consumer resource.\n

\n

Request patterns can be one of the following:

\n
    \n
  • \n

    Data stream pattern: arn:aws.*:kinesis:.*:\\d{12}:.*stream/\\S+\n

    \n
  • \n
  • \n

    Consumer pattern: ^(arn):aws.*:kinesis:.*:\\d{12}:.*stream\\/[a-zA-Z0-9_.-]+\\/consumer\\/[a-zA-Z0-9_.-]+:[0-9]+\n

    \n
  • \n
\n

For more information, see Controlling Access to Amazon Kinesis Data Streams Resources Using IAM.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#PutResourcePolicyInput": { + "type": "structure", + "members": { + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data stream or consumer.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "Policy": { + "target": "com.amazonaws.kinesis#Policy", + "traits": { + "smithy.api#documentation": "

Details of the resource policy. It must include the identity of the principal and the actions allowed on this resource. This is formatted as a JSON string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#Record": { + "type": "structure", + "members": { + "SequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The unique identifier of the record within its shard.

", + "smithy.api#required": {} + } + }, + "ApproximateArrivalTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The approximate time that the record was inserted into the stream.

" + } + }, + "Data": { + "target": "com.amazonaws.kinesis#Data", + "traits": { + "smithy.api#documentation": "

The data blob. The data in the blob is both opaque and immutable to Kinesis Data\n Streams, which does not inspect, interpret, or change the data in the blob in any way.\n When the data blob (the payload before base64-encoding) is added to the partition key\n size, the total size must not exceed the maximum record size (10 MiB).

", + "smithy.api#required": {} + } + }, + "PartitionKey": { + "target": "com.amazonaws.kinesis#PartitionKey", + "traits": { + "smithy.api#documentation": "

Identifies which shard in the stream the data record is assigned to.

\n

For a stream that uses the AUTO record distribution strategy, this value\n is not returned if the producer did not provide a partition key when writing the record.\n If the producer provided a partition key, the original value is returned even though it\n was not used to determine shard placement.

" + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type used on the record. This parameter can be one of the following\n values:

\n
    \n
  • \n

    \n NONE: Do not encrypt the records in the stream.

    \n
  • \n
  • \n

    \n KMS: Use server-side encryption on the records in the stream\n using a customer-managed Amazon Web Services KMS key.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The unit of data of the Kinesis data stream, which is composed of a sequence number, a\n partition key, and a data blob.

" + } + }, + "com.amazonaws.kinesis#RecordConfiguration": { + "type": "structure", + "members": { + "RecordFormatType": { + "target": "com.amazonaws.kinesis#RecordFormatType", + "traits": { + "smithy.api#documentation": "

The format of records on the source stream. Valid values:

\n
    \n
  • \n

    \n GSR_JSON - Supported only for streaming table (Amazon S3 Tables) destinations.

    \n
  • \n
  • \n

    \n JSON - Supported for both general purpose Amazon S3 and streaming table destinations.

    \n
  • \n
  • \n

    \n STRING - Supported only for general purpose Amazon S3 destinations.

    \n
  • \n
  • \n

    \n BYTE_ARRAY - Supported only for general purpose Amazon S3 destinations.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "GSRSchemaARN": { + "target": "com.amazonaws.kinesis#GSRSchemaARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Glue Schema Registry schema used to validate records. Required when the channel destination is a streaming table.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the format of records read from the source stream.

" + } + }, + "com.amazonaws.kinesis#RecordDistributionStrategy": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "USER_PARTITION_KEY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER_PARTITION_KEY" + } + } + } + }, + "com.amazonaws.kinesis#RecordFormatType": { + "type": "enum", + "members": { + "GSR_JSON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GSR_JSON" + } + }, + "JSON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JSON" + } + }, + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRING" + } + }, + "BYTE_ARRAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BYTE_ARRAY" + } + } + } + }, + "com.amazonaws.kinesis#RecordList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#Record" + } + }, + "com.amazonaws.kinesis#RegisterStreamConsumer": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#RegisterStreamConsumerInput" + }, + "output": { + "target": "com.amazonaws.kinesis#RegisterStreamConsumerOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Registers a consumer with a Kinesis data stream. When you use this operation, the\n consumer you register can then call SubscribeToShard to receive data\n from the stream using enhanced fan-out, at a rate of up to 2 MiB per second for every\n shard you subscribe to. This rate is unaffected by the total number of consumers that\n read from the same stream.

\n

You can add tags to the registered consumer when making a RegisterStreamConsumer request by setting the Tags parameter. If you pass the Tags parameter, in addition to having the kinesis:RegisterStreamConsumer permission, you must also have the kinesis:TagResource permission for the consumer that will be registered. Tags will take effect from the CREATING status of the consumer.

\n

With On-demand Advantage streams, you can register up to 50 consumers per stream to use Enhanced Fan-out. With On-demand Standard and Provisioned streams, you can register up to 20 consumers per stream to use Enhanced Fan-out. A given consumer can only be \n registered with one stream at a time.

\n

For an example of how to use this operation, see Enhanced Fan-Out\n Using the Kinesis Data Streams API.

\n

The use of this operation has a limit of five transactions per second per account.\n Also, only 5 consumers can be created simultaneously. In other words, you cannot have\n more than 5 consumers in a CREATING status at the same time. Registering a\n 6th consumer while there are 5 in a CREATING status results in a\n LimitExceededException.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#RegisterStreamConsumerInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the Kinesis data stream that you want to register the consumer with. For\n more info, see Amazon Resource Names (ARNs) and Amazon Web Services Service\n Namespaces.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "ConsumerName": { + "target": "com.amazonaws.kinesis#ConsumerName", + "traits": { + "smithy.api#documentation": "

For a given Kinesis data stream, each consumer must have a unique name. However,\n consumer names don't have to be unique across data streams.

", + "smithy.api#required": {} + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "Tags": { + "target": "com.amazonaws.kinesis#TagMap", + "traits": { + "smithy.api#documentation": "

A set of up to 50 key-value pairs. A tag consists of a required key and an optional value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#RegisterStreamConsumerOutput": { + "type": "structure", + "members": { + "Consumer": { + "target": "com.amazonaws.kinesis#Consumer", + "traits": { + "smithy.api#documentation": "

An object that represents the details of the consumer you registered. When you\n register a consumer, it gets an ARN that is generated by Kinesis Data Streams.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#RemoveTagsFromStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#RemoveTagsFromStreamInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes tags from the specified Kinesis data stream. Removed tags are deleted and\n cannot be recovered after this operation successfully completes.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

If you specify a tag that does not exist, it is ignored.

\n

\n RemoveTagsFromStream has a limit of five transactions per second per\n account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#RemoveTagsFromStreamInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream.

" + } + }, + "TagKeys": { + "target": "com.amazonaws.kinesis#TagKeyList", + "traits": { + "smithy.api#documentation": "

A list of tag keys. Each corresponding tag is removed from the stream.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for RemoveTagsFromStream.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#ResourceARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws.*:kinesis:.*:\\d{12}:.*(stream|channel)/\\S+$" + } + }, + "com.amazonaws.kinesis#ResourceInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The resource is not available for this operation. For successful operation, the\n resource must be in the ACTIVE state.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A message that provides information about the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The requested resource could not be found. The stream might not be specified\n correctly.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#RetentionPeriodHours": { + "type": "integer" + }, + "com.amazonaws.kinesis#RoleARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:aws[-a-z0-9]*:iam::\\d{12}:role/[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, + "com.amazonaws.kinesis#S3CompressionType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "GZIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GZIP" + } + }, + "ZSTD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZSTD" + } + } + } + }, + "com.amazonaws.kinesis#S3DestinationConfiguration": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data before the channel delivers it to the destination. The default value is 300 seconds.

" + } + }, + "DeadLetterQueueS3Configuration": { + "target": "com.amazonaws.kinesis#DeadLetterQueueS3Configuration", + "traits": { + "smithy.api#documentation": "

The dead-letter queue configuration for records that cannot be delivered. Optional for general purpose Amazon S3 destinations. If not specified, it defaults to the destination bucket with an error prefix.

" + } + }, + "StorageConfiguration": { + "target": "com.amazonaws.kinesis#S3StorageConfiguration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 storage configuration for the channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for delivery to a general purpose Amazon S3 bucket. Used in CreateChannel.

" + } + }, + "com.amazonaws.kinesis#S3DestinationDescription": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data.

", + "smithy.api#required": {} + } + }, + "DeadLetterQueueS3Configuration": { + "target": "com.amazonaws.kinesis#DeadLetterQueueS3Configuration", + "traits": { + "smithy.api#documentation": "

The dead-letter queue configuration for records that cannot be delivered.

", + "smithy.api#required": {} + } + }, + "StorageConfiguration": { + "target": "com.amazonaws.kinesis#S3StorageConfiguration", + "traits": { + "smithy.api#documentation": "

The Amazon S3 storage configuration for the channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for delivery to a general purpose Amazon S3 bucket. Returned in ChannelDescription.

" + } + }, + "com.amazonaws.kinesis#S3DestinationUpdateInput": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data before the channel delivers it to the destination.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated configuration for a general purpose Amazon S3 destination. Used in UpdateChannel. Only DataFreshnessInSeconds can be updated.

" + } + }, + "com.amazonaws.kinesis#S3ErrorOutputPrefix": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[0-9A-Za-z!\\-_'.*()\\/]+$" + } + }, + "com.amazonaws.kinesis#S3OutputKeyTemplate": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[0-9A-Za-z!\\-_'.*()\\/=:{}]+$" + } + }, + "com.amazonaws.kinesis#S3StorageClass": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "INTELLIGENT_TIERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTELLIGENT_TIERING" + } + }, + "GLACIER_IR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER_IR" + } + } + } + }, + "com.amazonaws.kinesis#S3StorageConfiguration": { + "type": "structure", + "members": { + "BucketARN": { + "target": "com.amazonaws.kinesis#BucketARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination Amazon S3 bucket.

", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.kinesis#ExpectedBucketOwner", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the expected owner of the destination bucket. This value helps prevent delivery to an unintended bucket if ownership changes.

", + "smithy.api#required": {} + } + }, + "OutputKeyTemplate": { + "target": "com.amazonaws.kinesis#S3OutputKeyTemplate", + "traits": { + "smithy.api#documentation": "

The template used to construct the Amazon S3 object key for delivered objects. If not specified, a default template is used.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.kinesis#S3StorageClass", + "traits": { + "smithy.api#documentation": "

The Amazon S3 storage class for delivered objects. Valid values:

\n
    \n
  • \n

    \n STANDARD - The default storage class, for frequently accessed data.

    \n
  • \n
  • \n

    \n INTELLIGENT_TIERING - Automatically moves objects to the most cost-effective access tier based on usage patterns.

    \n
  • \n
  • \n

    \n GLACIER_IR - Low-cost storage for rarely accessed data that requires millisecond retrieval.

    \n
  • \n
" + } + }, + "CompressionType": { + "target": "com.amazonaws.kinesis#S3CompressionType", + "traits": { + "smithy.api#documentation": "

The compression applied to delivered objects. Valid values:

\n
    \n
  • \n

    \n NONE - No compression.

    \n
  • \n
  • \n

    \n GZIP - gzip compression.

    \n
  • \n
  • \n

    \n ZSTD - Zstandard compression.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 storage settings for a general purpose Amazon S3 destination.

" + } + }, + "com.amazonaws.kinesis#S3TablesCompressionType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "ZSTD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZSTD" + } + }, + "SNAPPY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SNAPPY" + } + } + } + }, + "com.amazonaws.kinesis#S3TablesConfiguration": { + "type": "structure", + "members": { + "TableBucketARN": { + "target": "com.amazonaws.kinesis#TableBucketARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon S3 table bucket.

", + "smithy.api#required": {} + } + }, + "Namespace": { + "target": "com.amazonaws.kinesis#S3TablesNamespace", + "traits": { + "smithy.api#documentation": "

The namespace (database) of the destination table.

", + "smithy.api#required": {} + } + }, + "TableName": { + "target": "com.amazonaws.kinesis#S3TablesTableName", + "traits": { + "smithy.api#documentation": "

The name of the destination table. Amazon Kinesis Data Streams creates this table in the specified table bucket.

", + "smithy.api#required": {} + } + }, + "CompressionType": { + "target": "com.amazonaws.kinesis#S3TablesCompressionType", + "traits": { + "smithy.api#documentation": "

The compression applied to Parquet data files. Valid values:

\n
    \n
  • \n

    \n NONE - No compression.

    \n
  • \n
  • \n

    \n ZSTD - Zstandard compression.

    \n
  • \n
  • \n

    \n SNAPPY - Snappy compression.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "PartitionSpec": { + "target": "com.amazonaws.kinesis#PartitionSpec", + "traits": { + "smithy.api#documentation": "

The partitioning specification for the destination table.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a destination streaming table on Apache Iceberg.

" + } + }, + "com.amazonaws.kinesis#S3TablesConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#S3TablesConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#S3TablesDestinationConfiguration": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data before the channel delivers it to the destination. The default value is 300 seconds.

" + } + }, + "DeadLetterQueueS3Configuration": { + "target": "com.amazonaws.kinesis#DeadLetterQueueS3Configuration", + "traits": { + "smithy.api#documentation": "

The dead-letter queue configuration for records that cannot be delivered. Required for streaming table destinations.

", + "smithy.api#required": {} + } + }, + "S3TablesConfigurationList": { + "target": "com.amazonaws.kinesis#S3TablesConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of streaming table configurations. Currently, one table is supported per channel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for delivery to streaming tables on Apache Iceberg. Used in CreateChannel.

" + } + }, + "com.amazonaws.kinesis#S3TablesDestinationDescription": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data.

", + "smithy.api#required": {} + } + }, + "DeadLetterQueueS3Configuration": { + "target": "com.amazonaws.kinesis#DeadLetterQueueS3Configuration", + "traits": { + "smithy.api#documentation": "

The dead-letter queue configuration for records that cannot be delivered.

", + "smithy.api#required": {} + } + }, + "S3TablesConfigurationList": { + "target": "com.amazonaws.kinesis#S3TablesConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of streaming table configurations.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for delivery to streaming tables on Apache Iceberg. Returned in ChannelDescription.

" + } + }, + "com.amazonaws.kinesis#S3TablesDestinationUpdateInput": { + "type": "structure", + "members": { + "DataFreshnessInSeconds": { + "target": "com.amazonaws.kinesis#DataFreshnessInSeconds", + "traits": { + "smithy.api#documentation": "

The maximum age, in seconds, of undelivered data before the channel delivers it to the destination.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The updated configuration for a streaming table destination. Used in UpdateChannel. Only DataFreshnessInSeconds can be updated.

" + } + }, + "com.amazonaws.kinesis#S3TablesNamespace": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[0-9a-z_]+$" + } + }, + "com.amazonaws.kinesis#S3TablesTableName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[0-9a-z_]+$" + } + }, + "com.amazonaws.kinesis#ScalingType": { + "type": "enum", + "members": { + "UNIFORM_SCALING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNIFORM_SCALING" + } + } + } + }, + "com.amazonaws.kinesis#SequenceNumber": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(0|([1-9]\\d{0,128}))$" + } + }, + "com.amazonaws.kinesis#SequenceNumberRange": { + "type": "structure", + "members": { + "StartingSequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The starting sequence number for the range.

", + "smithy.api#required": {} + } + }, + "EndingSequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The ending sequence number for the range. Shards that are in the OPEN state have an\n ending sequence number of null.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The range of possible sequence numbers for the shard.

" + } + }, + "com.amazonaws.kinesis#Shard": { + "type": "structure", + "members": { + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the shard within the stream.

", + "smithy.api#required": {} + } + }, + "ParentShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard's parent.

" + } + }, + "AdjacentParentShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard adjacent to the shard's parent.

" + } + }, + "HashKeyRange": { + "target": "com.amazonaws.kinesis#HashKeyRange", + "traits": { + "smithy.api#documentation": "

The range of possible hash key values for the shard, which is a set of ordered\n contiguous positive integers.

", + "smithy.api#required": {} + } + }, + "SequenceNumberRange": { + "target": "com.amazonaws.kinesis#SequenceNumberRange", + "traits": { + "smithy.api#documentation": "

The range of possible sequence numbers for the shard.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A uniquely identified group of data records in a Kinesis data stream.

" + } + }, + "com.amazonaws.kinesis#ShardCountObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000000 + } + } + }, + "com.amazonaws.kinesis#ShardFilter": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.kinesis#ShardFilterType", + "traits": { + "smithy.api#documentation": "

The shard type specified in the ShardFilter parameter. This is a required\n property of the ShardFilter parameter.

\n

You can specify the following valid values:

\n
    \n
  • \n

    \n AFTER_SHARD_ID - the response includes all the shards, starting\n with the shard whose ID immediately follows the ShardId that you\n provided.

    \n
  • \n
  • \n

    \n AT_TRIM_HORIZON - the response includes all the shards that were\n open at TRIM_HORIZON.

    \n
  • \n
  • \n

    \n FROM_TRIM_HORIZON - (default), the response includes all the\n shards within the retention period of the data stream (trim to tip).

    \n
  • \n
  • \n

    \n AT_LATEST - the response includes only the currently open shards\n of the data stream.

    \n
  • \n
  • \n

    \n AT_TIMESTAMP - the response includes all shards whose start\n timestamp is less than or equal to the given timestamp and end timestamp is\n greater than or equal to the given timestamp or still open.

    \n
  • \n
  • \n

    \n FROM_TIMESTAMP - the response incldues all closed shards whose\n end timestamp is greater than or equal to the given timestamp and also all open\n shards. Corrected to TRIM_HORIZON of the data stream if\n FROM_TIMESTAMP is less than the TRIM_HORIZON\n value.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The exclusive start shardID speified in the ShardFilter\n parameter. This property can only be used if the AFTER_SHARD_ID shard type\n is specified.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamps specified in the ShardFilter parameter. A timestamp is a\n Unix epoch date with precision in milliseconds. For example,\n 2016-04-04T19:58:46.480-00:00 or 1459799926.480. This property can only be used if\n FROM_TIMESTAMP or AT_TIMESTAMP shard types are\n specified.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request parameter used to filter out the response of the ListShards\n API.

" + } + }, + "com.amazonaws.kinesis#ShardFilterType": { + "type": "enum", + "members": { + "AFTER_SHARD_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER_SHARD_ID" + } + }, + "AT_TRIM_HORIZON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT_TRIM_HORIZON" + } + }, + "FROM_TRIM_HORIZON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FROM_TRIM_HORIZON" + } + }, + "AT_LATEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT_LATEST" + } + }, + "AT_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT_TIMESTAMP" + } + }, + "FROM_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FROM_TIMESTAMP" + } + } + } + }, + "com.amazonaws.kinesis#ShardId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" + } + }, + "com.amazonaws.kinesis#ShardIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#ShardId" + } + }, + "com.amazonaws.kinesis#ShardIterator": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + } + } + }, + "com.amazonaws.kinesis#ShardIteratorType": { + "type": "enum", + "members": { + "AT_SEQUENCE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT_SEQUENCE_NUMBER" + } + }, + "AFTER_SEQUENCE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER_SEQUENCE_NUMBER" + } + }, + "TRIM_HORIZON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRIM_HORIZON" + } + }, + "LATEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LATEST" + } + }, + "AT_TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT_TIMESTAMP" + } + } + } + }, + "com.amazonaws.kinesis#ShardList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#Shard" + } + }, + "com.amazonaws.kinesis#SplitShard": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#SplitShardInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Splits a shard into two new shards in the Kinesis data stream, to increase the\n stream's capacity to ingest and transport data. SplitShard is called when\n there is a need to increase the overall capacity of a stream because of an expected\n increase in the volume of data records being ingested. This API is only supported for\n the data streams with the provisioned capacity mode.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

You can also use SplitShard when a shard appears to be approaching its\n maximum utilization; for example, the producers sending data into the specific shard are\n suddenly sending more than previously anticipated. You can also call\n SplitShard to increase stream capacity, so that more Kinesis Data\n Streams applications can simultaneously read data from the stream for real-time\n processing.

\n

You must specify the shard to be split and the new hash key, which is the position in\n the shard where the shard gets split in two. In many cases, the new hash key might be\n the average of the beginning and ending hash key, but it can be any hash key value in\n the range being mapped into the shard. For more information, see Split a\n Shard in the Amazon Kinesis Data Streams Developer\n Guide.

\n

You can use DescribeStreamSummary and the ListShards APIs to determine the shard ID and hash key values for the ShardToSplit\n and NewStartingHashKey parameters that are specified in the\n SplitShard request.

\n

\n SplitShard is an asynchronous operation. Upon receiving a\n SplitShard request, Kinesis Data Streams immediately returns a response\n and sets the stream status to UPDATING. After the operation is completed,\n Kinesis Data Streams sets the stream status to ACTIVE. Read and write\n operations continue to work while the stream is in the UPDATING state.

\n

You can use DescribeStreamSummary to check the status of the stream,\n which is returned in StreamStatus. If the stream is in the\n ACTIVE state, you can call SplitShard.\n

\n

If the specified stream does not exist, DescribeStreamSummary\n returns a ResourceNotFoundException. If you try to create more shards than\n are authorized for your account, you receive a LimitExceededException.

\n

For the default shard limit for an Amazon Web Services account, see Kinesis\n Data Streams Limits in the Amazon Kinesis Data Streams Developer\n Guide. To increase this limit, contact Amazon Web Services\n Support.

\n

If you try to operate on too many streams simultaneously using CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive a\n LimitExceededException.

\n

\n SplitShard has a limit of five transactions per second per account.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#SplitShardInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream for the shard split.

" + } + }, + "ShardToSplit": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The shard ID of the shard to split.

", + "smithy.api#required": {} + } + }, + "NewStartingHashKey": { + "target": "com.amazonaws.kinesis#HashKey", + "traits": { + "smithy.api#documentation": "

A hash key value for the starting hash key of one of the child shards created by the\n split. The hash key range for a given shard constitutes a set of ordered contiguous\n positive integers. The value for NewStartingHashKey must be in the range of\n hash keys being mapped into the shard. The NewStartingHashKey hash key\n value and all higher hash key values in hash key range are distributed to one of the\n child shards. All the lower hash key values in the range are distributed to the other\n child shard.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the input for SplitShard.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#StartStreamEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#StartStreamEncryptionInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables or updates server-side encryption using an Amazon Web Services KMS key for a\n specified stream.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis\n Data Streams returns immediately and sets the status of the stream to\n UPDATING. After the update is complete, Kinesis Data Streams sets the\n status of the stream back to ACTIVE. Updating or applying encryption\n normally takes a few seconds to complete, but it can take minutes. You can continue to\n read and write data to your stream while its status is UPDATING. Once the\n status of the stream is ACTIVE, encryption begins for records written to\n the stream.

\n

API Limits: You can successfully apply a new Amazon Web Services KMS key for\n server-side encryption 25 times in a rolling 24-hour period.

\n

Note: It can take up to 5 seconds after the stream is in an ACTIVE status\n before all records written to the stream are encrypted. After you enable encryption, you\n can verify that encryption is applied by inspecting the API response from\n PutRecord or PutRecords.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#StartStreamEncryptionInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream for which to start encrypting records.

" + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type to use. The only valid value is KMS.

", + "smithy.api#required": {} + } + }, + "KeyId": { + "target": "com.amazonaws.kinesis#KeyId", + "traits": { + "smithy.api#documentation": "

The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified Amazon Resource Name\n (ARN) to either an alias or a key, or an alias name prefixed by \"alias/\".You can also\n use a master key owned by Kinesis Data Streams by specifying the alias\n aws/kinesis.

\n
    \n
  • \n

    Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias ARN example:\n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName\n

    \n
  • \n
  • \n

    Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias name example: alias/MyAliasName\n

    \n
  • \n
  • \n

    Master key owned by Kinesis Data Streams:\n alias/aws/kinesis\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#StartingPosition": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.kinesis#ShardIteratorType", + "traits": { + "smithy.api#documentation": "

You can set the starting position to one of the following values:

\n

\n AT_SEQUENCE_NUMBER: Start streaming from the position denoted by the\n sequence number specified in the SequenceNumber field.

\n

\n AFTER_SEQUENCE_NUMBER: Start streaming right after the position denoted\n by the sequence number specified in the SequenceNumber field.

\n

\n AT_TIMESTAMP: Start streaming from the position denoted by the time stamp\n specified in the Timestamp field.

\n

\n TRIM_HORIZON: Start streaming at the last untrimmed record in the shard,\n which is the oldest data record in the shard.

\n

\n LATEST: Start streaming just after the most recent record in the shard,\n so that you always read the most recent data in the shard.

", + "smithy.api#required": {} + } + }, + "SequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

The sequence number of the data record in the shard from which to start streaming. To\n specify a sequence number, set StartingPosition to\n AT_SEQUENCE_NUMBER or AFTER_SEQUENCE_NUMBER.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The time stamp of the data record from which to start reading. To specify a time\n stamp, set StartingPosition to Type AT_TIMESTAMP. A time stamp\n is the Unix epoch date with precision in milliseconds. For example,\n 2016-04-04T19:58:46.480-00:00 or 1459799926.480. If a\n record with this exact time stamp does not exist, records will be streamed from the next\n (later) record. If the time stamp is older than the current trim horizon, records will\n be streamed from the oldest untrimmed data record (TRIM_HORIZON).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The starting position in the data stream from which to start streaming.

" + } + }, + "com.amazonaws.kinesis#StopStreamEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#StopStreamEncryptionInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables server-side encryption for a specified stream.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

Stopping encryption is an asynchronous operation. Upon receiving the request, Kinesis\n Data Streams returns immediately and sets the status of the stream to\n UPDATING. After the update is complete, Kinesis Data Streams sets the\n status of the stream back to ACTIVE. Stopping encryption normally takes a\n few seconds to complete, but it can take minutes. You can continue to read and write\n data to your stream while its status is UPDATING. Once the status of the\n stream is ACTIVE, records written to the stream are no longer encrypted by\n Kinesis Data Streams.

\n

API Limits: You can successfully disable server-side encryption 25 times in a rolling\n 24-hour period.

\n

Note: It can take up to 5 seconds after the stream is in an ACTIVE status\n before all records written to the stream are no longer subject to encryption. After you\n disabled encryption, you can verify that encryption is not applied by inspecting the API\n response from PutRecord or PutRecords.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#StopStreamEncryptionInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream on which to stop encrypting records.

" + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type. The only valid value is KMS.

", + "smithy.api#required": {} + } + }, + "KeyId": { + "target": "com.amazonaws.kinesis#KeyId", + "traits": { + "smithy.api#documentation": "

The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified Amazon Resource Name\n (ARN) to either an alias or a key, or an alias name prefixed by \"alias/\".You can also\n use a master key owned by Kinesis Data Streams by specifying the alias\n aws/kinesis.

\n
    \n
  • \n

    Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias ARN example:\n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName\n

    \n
  • \n
  • \n

    Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias name example: alias/MyAliasName\n

    \n
  • \n
  • \n

    Master key owned by Kinesis Data Streams:\n alias/aws/kinesis\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#StreamARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws.*:kinesis:.*:\\d{12}:stream/\\S+$" + } + }, + "com.amazonaws.kinesis#StreamDescription": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream being described.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the stream being described.

", + "smithy.api#required": {} + } + }, + "StreamStatus": { + "target": "com.amazonaws.kinesis#StreamStatus", + "traits": { + "smithy.api#documentation": "

The current status of the stream being described. The stream status is one of the\n following states:

\n
    \n
  • \n

    \n CREATING - The stream is being created. Kinesis Data Streams\n immediately returns and sets StreamStatus to\n CREATING.

    \n
  • \n
  • \n

    \n DELETING - The stream is being deleted. The specified stream is in\n the DELETING state until Kinesis Data Streams completes the\n deletion.

    \n
  • \n
  • \n

    \n ACTIVE - The stream exists and is ready for read and write\n operations or deletion. You should perform read and write operations only on an\n ACTIVE stream.

    \n
  • \n
  • \n

    \n UPDATING - Shards in the stream are being merged or split. Read and\n write operations continue to work while the stream is in the\n UPDATING state.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "StreamModeDetails": { + "target": "com.amazonaws.kinesis#StreamModeDetails", + "traits": { + "smithy.api#documentation": "

Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand capacity mode and a provisioned capacity mode for your data streams.

" + } + }, + "Shards": { + "target": "com.amazonaws.kinesis#ShardList", + "traits": { + "smithy.api#documentation": "

The shards that comprise the stream.

", + "smithy.api#required": {} + } + }, + "HasMoreShards": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

If set to true, more shards in the stream are available to\n describe.

", + "smithy.api#required": {} + } + }, + "RetentionPeriodHours": { + "target": "com.amazonaws.kinesis#RetentionPeriodHours", + "traits": { + "smithy.api#documentation": "

The current retention period, in hours. Minimum value of 24. Maximum value of\n 168.

", + "smithy.api#required": {} + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The approximate time that the stream was created.

", + "smithy.api#required": {} + } + }, + "EnhancedMonitoring": { + "target": "com.amazonaws.kinesis#EnhancedMonitoringList", + "traits": { + "smithy.api#documentation": "

Represents the current enhanced monitoring settings of the stream.

", + "smithy.api#required": {} + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The server-side encryption type used on the stream. This parameter can be one of the\n following values:

\n
    \n
  • \n

    \n NONE: Do not encrypt the records in the stream.

    \n
  • \n
  • \n

    \n KMS: Use server-side encryption on the records in the stream\n using a customer-managed Amazon Web Services KMS key.

    \n
  • \n
" + } + }, + "KeyId": { + "target": "com.amazonaws.kinesis#KeyId", + "traits": { + "smithy.api#documentation": "

The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified ARN to either an alias\n or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by\n Kinesis Data Streams by specifying the alias aws/kinesis.

\n
    \n
  • \n

    Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias ARN example:\n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName\n

    \n
  • \n
  • \n

    Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias name example: alias/MyAliasName\n

    \n
  • \n
  • \n

    Master key owned by Kinesis Data Streams:\n alias/aws/kinesis\n

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for DescribeStream.

" + } + }, + "com.amazonaws.kinesis#StreamDescriptionSummary": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream being described.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the stream being described.

", + "smithy.api#required": {} + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

" + } + }, + "StreamStatus": { + "target": "com.amazonaws.kinesis#StreamStatus", + "traits": { + "smithy.api#documentation": "

The current status of the stream being described. The stream status is one of the\n following states:

\n
    \n
  • \n

    \n CREATING - The stream is being created. Kinesis Data Streams\n immediately returns and sets StreamStatus to\n CREATING.

    \n
  • \n
  • \n

    \n DELETING - The stream is being deleted. The specified stream is in\n the DELETING state until Kinesis Data Streams completes the\n deletion.

    \n
  • \n
  • \n

    \n ACTIVE - The stream exists and is ready for read and write\n operations or deletion. You should perform read and write operations only on an\n ACTIVE stream.

    \n
  • \n
  • \n

    \n UPDATING - Shards in the stream are being merged or split. Read and\n write operations continue to work while the stream is in the\n UPDATING state.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "StreamModeDetails": { + "target": "com.amazonaws.kinesis#StreamModeDetails", + "traits": { + "smithy.api#documentation": "

Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand ycapacity mode and a provisioned capacity mode for your data streams.

" + } + }, + "RetentionPeriodHours": { + "target": "com.amazonaws.kinesis#RetentionPeriodHours", + "traits": { + "smithy.api#documentation": "

The current retention period, in hours.

", + "smithy.api#required": {} + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The approximate time that the stream was created.

", + "smithy.api#required": {} + } + }, + "EnhancedMonitoring": { + "target": "com.amazonaws.kinesis#EnhancedMonitoringList", + "traits": { + "smithy.api#documentation": "

Represents the current enhanced monitoring settings of the stream.

", + "smithy.api#required": {} + } + }, + "EncryptionType": { + "target": "com.amazonaws.kinesis#EncryptionType", + "traits": { + "smithy.api#documentation": "

The encryption type used. This value is one of the following:

\n
    \n
  • \n

    \n KMS\n

    \n
  • \n
  • \n

    \n NONE\n

    \n
  • \n
" + } + }, + "KeyId": { + "target": "com.amazonaws.kinesis#KeyId", + "traits": { + "smithy.api#documentation": "

The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified ARN to either an alias\n or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by\n Kinesis Data Streams by specifying the alias aws/kinesis.

\n
    \n
  • \n

    Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias ARN example: \n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName\n

    \n
  • \n
  • \n

    Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012\n

    \n
  • \n
  • \n

    Alias name example: alias/MyAliasName\n

    \n
  • \n
  • \n

    Master key owned by Kinesis Data Streams:\n alias/aws/kinesis\n

    \n
  • \n
" + } + }, + "OpenShardCount": { + "target": "com.amazonaws.kinesis#ShardCountObject", + "traits": { + "smithy.api#documentation": "

The number of open shards in the stream.

", + "smithy.api#required": {} + } + }, + "ConsumerCount": { + "target": "com.amazonaws.kinesis#ConsumerCountObject", + "traits": { + "smithy.api#documentation": "

The number of enhanced fan-out consumers registered with the stream.

" + } + }, + "WarmThroughput": { + "target": "com.amazonaws.kinesis#WarmThroughputObject", + "traits": { + "smithy.api#documentation": "

The warm throughput in MB/s for the stream. This represents the throughput capacity that will be immediately available for write operations.

" + } + }, + "MaxRecordSizeInKiB": { + "target": "com.amazonaws.kinesis#MaxRecordSizeInKiB", + "traits": { + "smithy.api#documentation": "

The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream.

" + } + }, + "ChannelCount": { + "target": "com.amazonaws.kinesis#ChannelCountObject", + "traits": { + "smithy.api#documentation": "

The number of channels associated with the stream.

" + } + }, + "RecordDistributionStrategy": { + "target": "com.amazonaws.kinesis#RecordDistributionStrategy", + "traits": { + "smithy.api#documentation": "

The record distribution strategy that the stream currently uses. A value of\n AUTO indicates that Amazon Kinesis Data Streams distributes records across\n shards using service-managed algorithms. A value of USER_PARTITION_KEY\n indicates that shard placement is determined by the partition key that producers supply.\n This field is only present for streams that use the on-demand capacity mode.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the output for DescribeStreamSummary\n

" + } + }, + "com.amazonaws.kinesis#StreamFilter": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source stream to filter by.

", + "smithy.api#required": {} + } + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The creation timestamp of the source stream.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filters ListChannels results by source stream.

" + } + }, + "com.amazonaws.kinesis#StreamFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#StreamFilter" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.kinesis#StreamId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 24 + }, + "smithy.api#pattern": "^[a-z0-9]{20}-[a-z0-9]{3}$" + } + }, + "com.amazonaws.kinesis#StreamMode": { + "type": "enum", + "members": { + "PROVISIONED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROVISIONED" + } + }, + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON_DEMAND" + } + } + } + }, + "com.amazonaws.kinesis#StreamModeDetails": { + "type": "structure", + "members": { + "StreamMode": { + "target": "com.amazonaws.kinesis#StreamMode", + "traits": { + "smithy.api#documentation": "

Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand capacity mode and a provisioned capacity mode for your data streams.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand capacity mode and a provisioned capacity mode for your data streams.

" + } + }, + "com.amazonaws.kinesis#StreamName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" + } + }, + "com.amazonaws.kinesis#StreamNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#StreamName" + } + }, + "com.amazonaws.kinesis#StreamStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + } + } + }, + "com.amazonaws.kinesis#StreamSummary": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of a stream.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.api#required": {} + } + }, + "StreamStatus": { + "target": "com.amazonaws.kinesis#StreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the stream.

", + "smithy.api#required": {} + } + }, + "StreamModeDetails": { + "target": "com.amazonaws.kinesis#StreamModeDetails" + }, + "StreamCreationTimestamp": { + "target": "com.amazonaws.kinesis#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp at which the stream was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of a stream.

" + } + }, + "com.amazonaws.kinesis#StreamSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#StreamSummary" + } + }, + "com.amazonaws.kinesis#SubscribeToShard": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#SubscribeToShardInput" + }, + "output": { + "target": "com.amazonaws.kinesis#SubscribeToShardOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#DryRunOperationException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

This operation establishes an HTTP/2 connection between the consumer you specify in\n the ConsumerARN parameter and the shard you specify in the\n ShardId parameter. After the connection is successfully established,\n Kinesis Data Streams pushes records from the shard to the consumer over this connection.\n Before you call this operation, call RegisterStreamConsumer to\n register the consumer with Kinesis Data Streams.

\n

When the SubscribeToShard call succeeds, your consumer starts receiving\n events of type SubscribeToShardEvent over the HTTP/2 connection for up\n to 5 minutes, after which time you need to call SubscribeToShard again to\n renew the subscription if you want to continue to receive records.

\n

You can make one call to SubscribeToShard per second per registered\n consumer per shard. For example, if you have a 4000 shard stream and two registered\n stream consumers, you can make one SubscribeToShard request per second for\n each combination of shard and registered consumer, allowing you to subscribe both\n consumers to all 4000 shards in one second.

\n

If you call SubscribeToShard again with the same ConsumerARN\n and ShardId within 5 seconds of a successful call, you'll get a\n ResourceInUseException. If you call SubscribeToShard 5\n seconds or more after a successful call, the second call takes over the subscription and\n the previous connection expires or fails with a\n ResourceInUseException.

\n

For an example of how to use this operation, see Enhanced Fan-Out\n Using the Kinesis Data Streams API.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "data" + } + } + } + }, + "com.amazonaws.kinesis#SubscribeToShardEvent": { + "type": "structure", + "members": { + "Records": { + "target": "com.amazonaws.kinesis#RecordList", + "traits": { + "smithy.api#documentation": "

", + "smithy.api#required": {} + } + }, + "ContinuationSequenceNumber": { + "target": "com.amazonaws.kinesis#SequenceNumber", + "traits": { + "smithy.api#documentation": "

Use this as SequenceNumber in the next call to SubscribeToShard, with StartingPosition set to\n AT_SEQUENCE_NUMBER or AFTER_SEQUENCE_NUMBER. Use\n ContinuationSequenceNumber for checkpointing because it captures your\n shard progress even when no data is written to the shard.

", + "smithy.api#required": {} + } + }, + "MillisBehindLatest": { + "target": "com.amazonaws.kinesis#MillisBehindLatest", + "traits": { + "smithy.api#documentation": "

The number of milliseconds the read records are from the tip of the stream, indicating\n how far behind current time the consumer is. A value of zero indicates that record\n processing is caught up, and there are no new records to process at this moment.

", + "smithy.api#required": {} + } + }, + "ChildShards": { + "target": "com.amazonaws.kinesis#ChildShardList", + "traits": { + "smithy.api#documentation": "

The list of the child shards of the current shard, returned only at the end of the\n current shard.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

After you call SubscribeToShard, Kinesis Data Streams sends events\n of this type over an HTTP/2 connection to your consumer.

" + } + }, + "com.amazonaws.kinesis#SubscribeToShardEventStream": { + "type": "union", + "members": { + "SubscribeToShardEvent": { + "target": "com.amazonaws.kinesis#SubscribeToShardEvent", + "traits": { + "smithy.api#documentation": "

After you call SubscribeToShard, Kinesis Data Streams sends events\n of this type to your consumer. For an example of how to handle these events, see Enhanced Fan-Out\n Using the Kinesis Data Streams API.

" + } + }, + "ResourceNotFoundException": { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + "ResourceInUseException": { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + "KMSDisabledException": { + "target": "com.amazonaws.kinesis#KMSDisabledException" + }, + "KMSInvalidStateException": { + "target": "com.amazonaws.kinesis#KMSInvalidStateException" + }, + "KMSAccessDeniedException": { + "target": "com.amazonaws.kinesis#KMSAccessDeniedException" + }, + "KMSNotFoundException": { + "target": "com.amazonaws.kinesis#KMSNotFoundException" + }, + "KMSOptInRequired": { + "target": "com.amazonaws.kinesis#KMSOptInRequired" + }, + "KMSThrottlingException": { + "target": "com.amazonaws.kinesis#KMSThrottlingException" + }, + "InternalFailureException": { + "target": "com.amazonaws.kinesis#InternalFailureException", + "traits": { + "smithy.api#documentation": "

The processing of the request failed because of an unknown error, exception, or\n failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This is a tagged union for all of the types of events an enhanced fan-out consumer can\n receive over HTTP/2 after a call to SubscribeToShard.

", + "smithy.api#streaming": {} + } + }, + "com.amazonaws.kinesis#SubscribeToShardInput": { + "type": "structure", + "members": { + "ConsumerARN": { + "target": "com.amazonaws.kinesis#ConsumerARN", + "traits": { + "smithy.api#documentation": "

For this parameter, use the value you obtained when you called RegisterStreamConsumer.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ConsumerARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "ShardId": { + "target": "com.amazonaws.kinesis#ShardId", + "traits": { + "smithy.api#documentation": "

The ID of the shard you want to subscribe to. To see a list of all the shards for a\n given stream, use ListShards.

", + "smithy.api#required": {} + } + }, + "StartingPosition": { + "target": "com.amazonaws.kinesis#StartingPosition", + "traits": { + "smithy.api#documentation": "

The starting position in the data stream from which to start streaming.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.kinesis#BooleanObject", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional\n parameter.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#SubscribeToShardOutput": { + "type": "structure", + "members": { + "EventStream": { + "target": "com.amazonaws.kinesis#SubscribeToShardEventStream", + "traits": { + "smithy.api#documentation": "

The event stream that your consumer can use to read records from the shard.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#TableBucketARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[-a-z0-9]*:s3tables:[-a-z0-9]+:\\d{12}:bucket/[a-z0-9_-]{3,63}$" + } + }, + "com.amazonaws.kinesis#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.kinesis#TagKey", + "traits": { + "smithy.api#documentation": "

A unique identifier for the tag. Maximum length: 128 characters. Valid characters:\n Unicode letters, digits, white space, _ . / = + - % @

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.kinesis#TagValue", + "traits": { + "smithy.api#documentation": "

An optional string, typically used to describe or define the tag. Maximum length: 256\n characters. Valid characters: Unicode letters, digits, white space, _ . / = + - %\n @

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata assigned to the stream or consumer, consisting of a key-value pair.

" + } + }, + "com.amazonaws.kinesis#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.kinesis#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.kinesis#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.kinesis#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.kinesis#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.kinesis#TagKey" + }, + "value": { + "target": "com.amazonaws.kinesis#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.kinesis#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#TagResourceInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or updates tags for the specified Kinesis 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 can assign up to 50 tags to a Kinesis resource.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#TagResourceInput": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.kinesis#TagMap", + "traits": { + "smithy.api#documentation": "

An array of tags to be added to the Kinesis resource. A tag consists of a required key and an optional value. You can add up to 50 tags per resource.

\n

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

", + "smithy.api#required": {} + } + }, + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Kinesis resource to which to add tags.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.kinesis#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.kinesis#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UntagResourceInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes tags from the specified Kinesis resource. Removed tags are deleted and can't be recovered after this operation completes successfully.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UntagResourceInput": { + "type": "structure", + "members": { + "TagKeys": { + "target": "com.amazonaws.kinesis#TagKeyList", + "traits": { + "smithy.api#documentation": "

A list of tag key-value pairs. Existing tags of the resource whose keys are members of this list will be removed from the Kinesis resource.

", + "smithy.api#required": {} + } + }, + "ResourceARN": { + "target": "com.amazonaws.kinesis#ResourceARN", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ResourceARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateAccountSettingsInput" + }, + "output": { + "target": "com.amazonaws.kinesis#UpdateAccountSettingsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the account-level settings for Amazon Kinesis Data Streams.

\n

Updating account settings is a synchronous operation. Upon receiving the request, Kinesis Data Streams will return immediately with your account’s updated settings.

\n

\n API limits\n

\n
    \n
  • \n

    Certain account configurations have minimum commitment windows. Attempting to update your settings prior to the end of the minimum commitment window might have certain restrictions.

    \n
  • \n
  • \n

    This API has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. TPS over 5 will initiate the LimitExceededException.

    \n
  • \n
", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateAccountSettingsInput": { + "type": "structure", + "members": { + "MinimumThroughputBillingCommitment": { + "target": "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentInput", + "traits": { + "smithy.api#documentation": "

Specifies the minimum throughput billing commitment configuration for your account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateAccountSettingsOutput": { + "type": "structure", + "members": { + "MinimumThroughputBillingCommitment": { + "target": "com.amazonaws.kinesis#MinimumThroughputBillingCommitmentOutput", + "traits": { + "smithy.api#documentation": "

The updated configuration of the minimum throughput billing commitment for your account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#UpdateChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateChannelInput" + }, + "output": { + "target": "com.amazonaws.kinesis#UpdateChannelOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the data freshness interval or the Amazon CloudWatch Logs configuration of an existing channel. You cannot change the destination, source stream, record format, schema, encryption configuration, or service execution role of an existing channel. To change any other setting, delete the channel and create a new one.

\n

Updating a channel is an asynchronous operation. Upon receiving the request, Amazon Kinesis Data Streams sets the channel to the UPDATING state and returns immediately. After the change is applied, Amazon Kinesis Data Streams sets the channel back to the ACTIVE state.

\n

This operation has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. Exceeding 5 TPS results in a LimitExceededException.

", + "smithy.api#examples": [ + { + "title": "To update a channel", + "input": { + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "S3DestinationConfiguration": { + "DataFreshnessInSeconds": 600 + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + }, + "output": { + "ChannelDescription": { + "ChannelName": "my-channel-name", + "ChannelARN": "arn:aws:kinesis:us-east-1:123456789012:channel/my-channel-id", + "ChannelId": "my-channel-id", + "ChannelStatus": "UPDATING", + "ChannelCreationTimestamp": "2024-07-02T00:00:00Z", + "ServiceExecutionRoleARN": "arn:aws:iam::123456789012:role/my-channel-role", + "StreamConfigurationList": [ + { + "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream-name", + "StreamCreationTimestamp": "2024-07-01T00:00:00Z", + "RecordConfiguration": { + "RecordFormatType": "JSON" + } + } + ], + "S3DestinationConfiguration": { + "DataFreshnessInSeconds": 600, + "DeadLetterQueueS3Configuration": { + "BucketARN": "arn:aws:s3:::my-channel-dlq-bucket", + "ExpectedBucketOwner": "123456789012", + "ErrorOutputPrefix": "kinesis-channel/errors/my-channel/my-channel-id/" + }, + "StorageConfiguration": { + "BucketARN": "arn:aws:s3:::my-channel-bucket", + "ExpectedBucketOwner": "123456789012", + "OutputKeyTemplate": "kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}", + "StorageClass": "STANDARD", + "CompressionType": "ZSTD" + } + }, + "EncryptionConfiguration": { + "EncryptionType": "KMS", + "KeyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "LoggingConfiguration": { + "CloudWatchLogs": { + "Enabled": true, + "LogGroupName": "/aws/kinesis/my-channel", + "LogStreamName": "my-channel-log-stream" + } + } + } + } + } + ], + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateChannelInput": { + "type": "structure", + "members": { + "ChannelARN": { + "target": "com.amazonaws.kinesis#ChannelARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the channel to update.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "ChannelARN" + } + } + }, + "S3DestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3DestinationUpdateInput", + "traits": { + "smithy.api#documentation": "

The updated configuration for a general purpose Amazon S3 destination. Specify this parameter when the channel delivers to a general purpose Amazon S3 bucket. Only DataFreshnessInSeconds can be updated.

" + } + }, + "S3TablesDestinationConfiguration": { + "target": "com.amazonaws.kinesis#S3TablesDestinationUpdateInput", + "traits": { + "smithy.api#documentation": "

The updated configuration for a streaming table destination. Specify this parameter when the channel delivers to streaming tables on Apache Iceberg in Amazon S3 Tables. Only DataFreshnessInSeconds can be updated.

" + } + }, + "LoggingConfiguration": { + "target": "com.amazonaws.kinesis#ChannelLoggingUpdateInput", + "traits": { + "smithy.api#documentation": "

The updated Amazon CloudWatch Logs configuration for the channel.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateChannelOutput": { + "type": "structure", + "members": { + "ChannelDescription": { + "target": "com.amazonaws.kinesis#ChannelDescription", + "traits": { + "smithy.api#documentation": "

The configuration and current status of the channel after the update, including its ARN, destination configuration, and lifecycle state. Immediately after the request, the state is UPDATING.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#UpdateMaxRecordSize": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateMaxRecordSizeInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

This allows you to update the MaxRecordSize of a single record that you can write to, and read from a stream. You can ingest and digest single records up to 10240 KiB.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateMaxRecordSizeInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the stream for the MaxRecordSize update.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "MaxRecordSizeInKiB": { + "target": "com.amazonaws.kinesis#MaxRecordSizeInKiB", + "traits": { + "smithy.api#documentation": "

The maximum record size of a single record in KiB that you can write to, and read from a stream. Specify a value between 1024 and 10240 KiB (1 to 10 MiB). If you specify a value that is out of this range, UpdateMaxRecordSize sends back an ValidationException message.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateShardCount": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateShardCountInput" + }, + "output": { + "target": "com.amazonaws.kinesis#UpdateShardCountOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the shard count of the specified stream to the specified number of shards.\n This API is only supported for the data streams with the provisioned capacity\n mode.

\n \n

When invoking this API, you must use either the StreamARN or the\n StreamName parameter, or both. It is recommended that you use the\n StreamARN input parameter when you invoke this API.

\n
\n

Updating the shard count is an asynchronous operation. Upon receiving the request,\n Kinesis Data Streams returns immediately and sets the status of the stream to\n UPDATING. After the update is complete, Kinesis Data Streams sets the\n status of the stream back to ACTIVE. Depending on the size of the stream,\n the scaling action could take a few minutes to complete. You can continue to read and\n write data to your stream while its status is UPDATING.

\n

To update the shard count, Kinesis Data Streams performs splits or merges on\n individual shards. This can cause short-lived shards to be created, in addition to the\n final shards. These short-lived shards count towards your total shard limit for your\n account in the Region.

\n

When using this operation, we recommend that you specify a target shard count that is\n a multiple of 25% (25%, 50%, 75%, 100%). You can specify any target value within your\n shard limit. However, if you specify a target that isn't a multiple of 25%, the scaling\n action might take longer to complete.

\n

This operation has the following default limits. By default, you cannot do the\n following:

\n
    \n
  • \n

    Scale more than ten times per rolling 24-hour period per stream

    \n
  • \n
  • \n

    Scale up to more than double your current shard count for a stream

    \n
  • \n
  • \n

    Scale down below half your current shard count for a stream

    \n
  • \n
  • \n

    Scale up to more than 10000 shards in a stream

    \n
  • \n
  • \n

    Scale a stream with more than 10000 shards down unless the result is less than\n 10000 shards

    \n
  • \n
  • \n

    Scale up to more than the shard limit for your account

    \n
  • \n
  • \n

    Make over 10 TPS. TPS over 10 will trigger the LimitExceededException

    \n
  • \n
\n

For the default limits for an Amazon Web Services account, see Streams\n Limits in the Amazon Kinesis Data Streams Developer\n Guide. To request an increase in the call rate limit, the shard limit for\n this API, or your overall shard limit, use the limits form.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateShardCountInput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream.

" + } + }, + "TargetShardCount": { + "target": "com.amazonaws.kinesis#PositiveIntegerObject", + "traits": { + "smithy.api#documentation": "

The new number of shards. This value has the following default limits. By default, you\n cannot do the following:

\n
    \n
  • \n

    Set this value to more than double your current shard count for a\n stream.

    \n
  • \n
  • \n

    Set this value below half your current shard count for a stream.

    \n
  • \n
  • \n

    Set this value to more than 10000 shards in a stream (the default limit for\n shard count per stream is 10000 per account per region), unless you request a\n limit increase.

    \n
  • \n
  • \n

    Scale a stream with more than 10000 shards down unless you set this value to\n less than 10000 shards.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "ScalingType": { + "target": "com.amazonaws.kinesis#ScalingType", + "traits": { + "smithy.api#documentation": "

The scaling type. Uniform scaling creates shards of equal size.

", + "smithy.api#required": {} + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateShardCountOutput": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream.

" + } + }, + "CurrentShardCount": { + "target": "com.amazonaws.kinesis#PositiveIntegerObject", + "traits": { + "smithy.api#documentation": "

The current number of shards.

" + } + }, + "TargetShardCount": { + "target": "com.amazonaws.kinesis#PositiveIntegerObject", + "traits": { + "smithy.api#documentation": "

The updated number of shards.

" + } + }, + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#UpdateStreamMode": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateStreamModeInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the capacity mode of the data stream. Currently, in Kinesis Data Streams, you\n can choose between an on-demand capacity mode and a\n provisioned capacity mode for your data stream.\n

\n

If you'd still like to proactively scale your on-demand data stream’s capacity, you can unlock the warm throughput feature for on-demand data streams by enabling MinimumThroughputBillingCommitment for your account. Once your account has MinimumThroughputBillingCommitment enabled, you can specify the warm throughput in MiB per second that your stream can support in writes.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateStreamModeInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

Specifies the ARN of the data stream whose capacity mode you want to update.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "StreamModeDetails": { + "target": "com.amazonaws.kinesis#StreamModeDetails", + "traits": { + "smithy.api#documentation": "

Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand capacity mode and a provisioned capacity mode for your data streams.

", + "smithy.api#required": {} + } + }, + "WarmThroughputMiBps": { + "target": "com.amazonaws.kinesis#NaturalIntegerObject", + "traits": { + "smithy.api#documentation": "

The target warm throughput in MB/s that the stream should be scaled to handle. This represents the throughput capacity that will be immediately available for write operations. This field is only valid when the stream mode is being updated to on-demand.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateStreamRecordDistributionStrategy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateStreamRecordDistributionStrategyInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the record distribution strategy for the specified Amazon Kinesis Data Streams\n on-demand data stream. The record distribution strategy determines how Amazon Kinesis\n Data Streams distributes records across the shards in a stream.

\n \n

You must specify the stream using the StreamARN parameter.

\n
\n

The record distribution strategy is a stream-level setting. You can switch between the\n following strategies at any time, and the change takes effect immediately without\n downtime, data loss, or disruption to producer or consumer applications:

\n
    \n
  • \n

    \n AUTO – Amazon Kinesis Data Streams distributes records evenly\n across shards using service-managed algorithms, and ignores any partition key\n and ExplicitHashKey that a producer provides. Use this strategy for\n stateless workloads that do not require partition-key ordering.

    \n
  • \n
  • \n

    \n USER_PARTITION_KEY – Producers must provide a partition key, and\n Amazon Kinesis Data Streams uses the partition key to determine shard placement.\n Records that share a partition key are sent to the same shard. This is the\n default strategy.

    \n
  • \n
\n

This operation is only supported for data streams that use the on-demand capacity\n mode. Provisioned capacity mode streams do not support the record distribution strategy\n setting. Attempting to set AUTO on a provisioned stream results in an\n InvalidArgumentException.

\n

New records that arrive after the change are distributed according to the new\n strategy. Records already in the stream keep their original shard assignments and are\n not redistributed.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateStreamRecordDistributionStrategyInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the stream to update.

", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "RecordDistributionStrategy": { + "target": "com.amazonaws.kinesis#RecordDistributionStrategy", + "traits": { + "smithy.api#documentation": "

The record distribution strategy to apply to the stream. Specify one of the following\n values:

\n
    \n
  • \n

    \n AUTO – Amazon Kinesis Data Streams distributes records evenly\n across shards and ignores any partition key and ExplicitHashKey\n that producers supply.

    \n
  • \n
  • \n

    \n USER_PARTITION_KEY – Producers must supply a partition key, which\n Amazon Kinesis Data Streams uses to determine shard placement. This is the\n default.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateStreamWarmThroughput": { + "type": "operation", + "input": { + "target": "com.amazonaws.kinesis#UpdateStreamWarmThroughputInput" + }, + "output": { + "target": "com.amazonaws.kinesis#UpdateStreamWarmThroughputOutput" + }, + "errors": [ + { + "target": "com.amazonaws.kinesis#AccessDeniedException" + }, + { + "target": "com.amazonaws.kinesis#InvalidArgumentException" + }, + { + "target": "com.amazonaws.kinesis#LimitExceededException" + }, + { + "target": "com.amazonaws.kinesis#ResourceInUseException" + }, + { + "target": "com.amazonaws.kinesis#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.kinesis#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the warm throughput configuration for the specified Amazon Kinesis Data Streams on-demand data stream. Updates the warm throughput configuration for the specified on-demand data stream. Use this operation to scale your stream to a specified throughput level before anticipated traffic spikes, or to release excess capacity after traffic has decreased.

\n \n

When invoking this API, you must use either the StreamARN or the StreamName parameter, or both. It is recommended that you use the StreamARN input parameter when you invoke this API.

\n
\n

Updating the warm throughput is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Data Streams sets the status of the stream back to ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is UPDATING.

\n

This operation is only supported for data streams with the on-demand capacity mode in accounts that have MinimumThroughputBillingCommitment enabled. Provisioned capacity mode streams do not support warm throughput configuration.

\n

To release excess capacity, call the API again and set the warm throughput to the same or a lower value.

\n

This operation has the following default limits. By default, you cannot do the following:

\n
    \n
  • \n

    Scale to more than 10 GiBps for an on-demand stream.

    \n
  • \n
  • \n

    This API has a call limit of 5 transactions per second (TPS) for each Amazon Web Services account. TPS over 5 will initiate the LimitExceededException.

    \n
  • \n
\n

For the default limits for an Amazon Web Services account, see Streams Limits in the Amazon Kinesis Data Streams Developer\n Guide. To request an increase in the call rate limit, the shard limit for this API, or your overall shard limit, use the limits form.

", + "smithy.rules#staticContextParams": { + "OperationType": { + "value": "control" + } + } + } + }, + "com.amazonaws.kinesis#UpdateStreamWarmThroughputInput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream to be updated.

", + "smithy.rules#contextParam": { + "name": "StreamARN" + } + } + }, + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream to be updated.

" + } + }, + "StreamId": { + "target": "com.amazonaws.kinesis#StreamId", + "traits": { + "smithy.api#documentation": "

Not Implemented. Reserved for future use.

", + "smithy.rules#contextParam": { + "name": "StreamId" + } + } + }, + "WarmThroughputMiBps": { + "target": "com.amazonaws.kinesis#NaturalIntegerObject", + "traits": { + "smithy.api#documentation": "

The target warm throughput in MB/s that the stream should be scaled to handle. This represents the throughput capacity that will be immediately available for write operations.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kinesis#UpdateStreamWarmThroughputOutput": { + "type": "structure", + "members": { + "StreamARN": { + "target": "com.amazonaws.kinesis#StreamARN", + "traits": { + "smithy.api#documentation": "

The ARN of the stream that was updated.

" + } + }, + "StreamName": { + "target": "com.amazonaws.kinesis#StreamName", + "traits": { + "smithy.api#documentation": "

The name of the stream that was updated.

" + } + }, + "WarmThroughput": { + "target": "com.amazonaws.kinesis#WarmThroughputObject", + "traits": { + "smithy.api#documentation": "

Specifies the updated warm throughput configuration for your data stream.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kinesis#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kinesis#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Specifies that you tried to invoke this API for a data stream with the on-demand\n capacity mode. This API is only supported for data streams with the provisioned capacity\n mode.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.kinesis#WarmThroughputObject": { + "type": "structure", + "members": { + "TargetMiBps": { + "target": "com.amazonaws.kinesis#NaturalIntegerObject", + "traits": { + "smithy.api#documentation": "

The target warm throughput value on the stream. This indicates that the stream is currently scaling towards this target value.

" + } + }, + "CurrentMiBps": { + "target": "com.amazonaws.kinesis#NaturalIntegerObject", + "traits": { + "smithy.api#documentation": "

The current warm throughput value on the stream. This is the write throughput in MiBps that the stream is currently scaled to handle.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the warm throughput configuration on the stream. This is only present for On-Demand Kinesis Data Streams in accounts that have MinimumThroughputBillingCommitment enabled.

" + } + } + } +} diff --git a/codegen/aws-models/kms.json b/codegen/aws-models/kms.json new file mode 100644 index 00000000..7ffba3d2 --- /dev/null +++ b/codegen/aws-models/kms.json @@ -0,0 +1,10898 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.kms#AWSAccountIdType": { + "type": "string" + }, + "com.amazonaws.kms#AccountIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.kms#AlgorithmSpec": { + "type": "enum", + "members": { + "RSAES_PKCS1_V1_5": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_PKCS1_V1_5" + } + }, + "RSAES_OAEP_SHA_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_OAEP_SHA_1" + } + }, + "RSAES_OAEP_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_OAEP_SHA_256" + } + }, + "RSA_AES_KEY_WRAP_SHA_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_AES_KEY_WRAP_SHA_1" + } + }, + "RSA_AES_KEY_WRAP_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_AES_KEY_WRAP_SHA_256" + } + }, + "SM2PKE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2PKE" + } + } + } + }, + "com.amazonaws.kms#AliasList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#AliasListEntry" + } + }, + "com.amazonaws.kms#AliasListEntry": { + "type": "structure", + "members": { + "AliasName": { + "target": "com.amazonaws.kms#AliasNameType", + "traits": { + "smithy.api#documentation": "

String that contains the alias. This value begins with alias/.

" + } + }, + "AliasArn": { + "target": "com.amazonaws.kms#ArnType", + "traits": { + "smithy.api#documentation": "

String that contains the key ARN.

" + } + }, + "TargetKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

String that contains the key identifier of the KMS key associated with the alias.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Date and time that the alias was most recently created in the account and Region.\n Formatted as Unix time.

" + } + }, + "LastUpdatedDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Date and time that the alias was most recently associated with a KMS key in the account\n and Region. Formatted as Unix time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an alias.

" + } + }, + "com.amazonaws.kms#AliasNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/_-]+$" + } + }, + "com.amazonaws.kms#AlreadyExistsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AlreadyExists", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because it attempted to create a resource that already\n exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.kms#ArnType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + } + } + }, + "com.amazonaws.kms#AttestationDocumentType": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 262144 + } + } + }, + "com.amazonaws.kms#BackingKeyIdResponseType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 + }, + "smithy.api#pattern": "^[a-f0-9]+$" + } + }, + "com.amazonaws.kms#BackingKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 64, + "max": 64 + }, + "smithy.api#pattern": "^[a-f0-9]+$" + } + }, + "com.amazonaws.kms#BooleanType": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, + "com.amazonaws.kms#CancelKeyDeletion": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#CancelKeyDeletionRequest" + }, + "output": { + "target": "com.amazonaws.kms#CancelKeyDeletionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels the deletion of a KMS key. When this operation succeeds, the key state of the KMS\n key is Disabled. To enable the KMS key, use EnableKey.

\n

For more information about scheduling and canceling deletion of a KMS key, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:CancelKeyDeletion (key policy)

\n

\n Related operations: ScheduleKeyDeletion\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To cancel deletion of a KMS key", + "documentation": "The following example cancels deletion of the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#CancelKeyDeletionRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key whose deletion is being canceled.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#CancelKeyDeletionResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key whose deletion is canceled.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#CiphertextType": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6144 + } + } + }, + "com.amazonaws.kms#CloudHsmClusterIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 24 + }, + "smithy.api#pattern": "^cluster-[2-7a-zA-Z]{11,16}$" + } + }, + "com.amazonaws.kms#CloudHsmClusterInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified CloudHSM cluster is already associated with an\n CloudHSM key store in the account, or it shares a backup history with an CloudHSM key store in the\n account. Each CloudHSM key store in the account must be associated with a different CloudHSM\n cluster.

\n

CloudHSM clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of an CloudHSM cluster, use the DescribeClusters operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterInvalidConfigurationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the associated CloudHSM cluster did not meet the\n configuration requirements for an CloudHSM key store.

\n
    \n
  • \n

    The CloudHSM cluster must be configured with private subnets in at least two different\n Availability Zones in the Region.

    \n
  • \n
  • \n

    The security group for\n the cluster (cloudhsm-cluster--sg) must\n include inbound rules and outbound rules that allow TCP traffic on ports 2223-2225. The\n Source in the inbound rules and the Destination in the outbound rules must match the security group\n ID. These rules are set by default when you create the CloudHSM cluster. Do not delete or\n change them. To get information about a particular security group, use the DescribeSecurityGroups operation.

    \n
  • \n
  • \n

    The CloudHSM cluster must contain at least as many HSMs as the operation requires. To add\n HSMs, use the CloudHSM CreateHsm operation.

    \n

    For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey operations, the CloudHSM cluster must have at least two\n active HSMs, each in a different Availability Zone. For the ConnectCustomKeyStore operation, the CloudHSM must contain at least one active\n HSM.

    \n
  • \n
\n

For information about the requirements for an CloudHSM cluster that is associated with an\n CloudHSM key store, see Assemble the Prerequisites\n in the Key Management Service Developer Guide. For information about creating a private subnet for an CloudHSM cluster,\n see Create a Private\n Subnet in the CloudHSM User Guide. For information about cluster security groups, see\n Configure a Default Security\n Group in the \n CloudHSM User Guide\n .

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CloudHsmClusterNotActiveException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotActiveException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the CloudHSM cluster associated with the CloudHSM key store is\n not active. Initialize and activate the cluster and try the command again. For detailed\n instructions, see Getting\n Started in the CloudHSM User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CloudHsmClusterNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because KMS cannot find the CloudHSM cluster with the specified\n cluster ID. Retry the request with a different cluster ID.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CloudHsmClusterNotRelatedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotRelatedException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified CloudHSM cluster has a different cluster\n certificate than the original cluster. You cannot use the operation to specify an unrelated\n cluster for an CloudHSM key store.

\n

Specify an CloudHSM cluster that shares a backup history with the original cluster. This\n includes clusters that were created from a backup of the current cluster, and clusters that\n were created from the same backup that produced the current cluster.

\n

CloudHSM clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of an CloudHSM cluster, use the DescribeClusters operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CloudTrailEventIdType": { + "type": "string" + }, + "com.amazonaws.kms#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because an automatic rotation of this key is currently in\n progress or scheduled to begin within the next 20 minutes.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.kms#ConnectCustomKeyStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ConnectCustomKeyStoreRequest" + }, + "output": { + "target": "com.amazonaws.kms#ConnectCustomKeyStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotActiveException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

Connects or reconnects a custom key store to its backing key store. For an CloudHSM key\n store, ConnectCustomKeyStore connects the key store to its associated CloudHSM\n cluster. For an external key store, ConnectCustomKeyStore connects the key store\n to the external key store proxy that communicates with your external key manager.

\n

The custom key store must be connected before you can create KMS keys in the key store or\n use the KMS keys it contains. You can disconnect and reconnect a custom key store at any\n time.

\n

The connection process for a custom key store can take an extended amount of time to\n complete. This operation starts the connection process, but it does not wait for it to\n complete. When it succeeds, this operation quickly returns an HTTP 200 response and a JSON\n object with no properties. However, this response does not indicate that the custom key store\n is connected. To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n

The ConnectCustomKeyStore operation might fail for various reasons. To find\n the reason, use the DescribeCustomKeyStores operation and see the\n ConnectionErrorCode in the response. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

To fix the failure, use the DisconnectCustomKeyStore operation to\n disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use\n ConnectCustomKeyStore again.

\n

\n CloudHSM key store\n

\n

During the connection process for an CloudHSM key store, KMS finds the CloudHSM cluster that\n is associated with the custom key store, creates the connection infrastructure, connects to\n the cluster, logs into the CloudHSM client as the kmsuser CU, and rotates its\n password.

\n

To connect an CloudHSM key store, its associated CloudHSM cluster must have at least one active\n HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs\n to the cluster, use the CreateHsm operation. Also, the \n kmsuser crypto\n user (CU) must not be logged into the cluster. This prevents KMS from using this\n account to log in.

\n

If you are having trouble connecting or disconnecting a CloudHSM key store, see Troubleshooting an CloudHSM key\n store in the Key Management Service Developer Guide.

\n

\n External key store\n

\n

When you connect an external key store that uses public endpoint connectivity, KMS tests\n its ability to communicate with your external key manager by sending a request via the\n external key store proxy.

\n

When you connect to an external key store that uses VPC endpoint service connectivity,\n KMS establishes the networking elements that it needs to communicate with your external key\n manager via the external key store proxy. This includes creating an interface endpoint to the\n VPC endpoint service and a private hosted zone for traffic between KMS and the VPC endpoint\n service.

\n

To connect an external key store, KMS must be able to connect to the external key store\n proxy, the external key store proxy must be able to communicate with your external key\n manager, and the external key manager must be available for cryptographic operations.

\n

If you are having trouble connecting or disconnecting an external key store, see Troubleshooting an external\n key store in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:ConnectCustomKeyStore (IAM policy)

\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To connect a custom key store", + "documentation": "This example connects an AWS KMS custom key store to its backing key store. For an AWS CloudHSM key store, it connects the key store to its AWS CloudHSM cluster. For an external key store, it connects the key store to the external key store proxy that communicates with your external key manager. This operation does not return any data. To verify that the custom key store is connected, use the DescribeCustomKeyStores operation.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.kms#ConnectCustomKeyStoreRequest": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Enter the key store ID of the custom key store that you want to connect.\n To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ConnectCustomKeyStoreResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ConnectionErrorCodeType": { + "type": "enum", + "members": { + "INVALID_CREDENTIALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_CREDENTIALS" + } + }, + "CLUSTER_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLUSTER_NOT_FOUND" + } + }, + "NETWORK_ERRORS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NETWORK_ERRORS" + } + }, + "INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_ERROR" + } + }, + "INSUFFICIENT_CLOUDHSM_HSMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_CLOUDHSM_HSMS" + } + }, + "USER_LOCKED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER_LOCKED_OUT" + } + }, + "USER_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER_NOT_FOUND" + } + }, + "USER_LOGGED_IN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER_LOGGED_IN" + } + }, + "SUBNET_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUBNET_NOT_FOUND" + } + }, + "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET" + } + }, + "XKS_PROXY_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_ACCESS_DENIED" + } + }, + "XKS_PROXY_NOT_REACHABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_NOT_REACHABLE" + } + }, + "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND" + } + }, + "XKS_PROXY_INVALID_RESPONSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_INVALID_RESPONSE" + } + }, + "XKS_PROXY_INVALID_CONFIGURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_INVALID_CONFIGURATION" + } + }, + "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION" + } + }, + "XKS_PROXY_TIMED_OUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_TIMED_OUT" + } + }, + "XKS_PROXY_INVALID_TLS_CONFIGURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XKS_PROXY_INVALID_TLS_CONFIGURATION" + } + } + } + }, + "com.amazonaws.kms#ConnectionStateType": { + "type": "enum", + "members": { + "CONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONNECTED" + } + }, + "CONNECTING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONNECTING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "DISCONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISCONNECTED" + } + }, + "DISCONNECTING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISCONNECTING" + } + } + } + }, + "com.amazonaws.kms#CreateAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#CreateAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#AlreadyExistsException" + }, + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidAliasNameException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a friendly name for a KMS key.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and\n GenerateDataKey. You can also change the KMS key that's associated with\n the alias (UpdateAlias) or delete the alias (DeleteAlias)\n at any time. These operations don't affect the underlying KMS key.

\n

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each\n alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases.\n A valid KMS key is required. You can't create an alias without a KMS key.

\n

The alias must be unique in the account and Region, but you can have aliases with the same\n name in different Regions. For detailed information about aliases, see Aliases in KMS in the\n Key Management Service Developer Guide.

\n

This operation does not return a response. To get the alias that you created, use the\n ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To create an alias", + "documentation": "The following example creates an alias for the specified KMS key.", + "input": { + "AliasName": "alias/ExampleAlias", + "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#CreateAliasRequest": { + "type": "structure", + "members": { + "AliasName": { + "target": "com.amazonaws.kms#AliasNameType", + "traits": { + "smithy.api#documentation": "

Specifies the alias name. This value must begin with alias/ followed by a\n name, such as alias/ExampleAlias.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

The AliasName value must be string of 1-256 characters. It can contain only\n alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name\n cannot begin with alias/aws/. The alias/aws/ prefix is reserved for\n Amazon Web Services managed\n keys.

", + "smithy.api#required": {} + } + }, + "TargetKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Associates the alias with the specified customer managed key. The KMS key\n must be in the same Amazon Web Services Region.

\n

A valid key ID is required. If you supply a null or empty string value, this operation\n returns an error.

\n

For help finding the key ID and ARN, see Find the key ID and key ARN in\n the \n Key Management Service Developer Guide\n .

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#CreateCustomKeyStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#CreateCustomKeyStoreRequest" + }, + "output": { + "target": "com.amazonaws.kms#CreateCustomKeyStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CloudHsmClusterInUseException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotActiveException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotFoundException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNameInUseException" + }, + { + "target": "com.amazonaws.kms#IncorrectTrustAnchorException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException" + }, + { + "target": "com.amazonaws.kms#XksProxyInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#XksProxyInvalidResponseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriEndpointInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriUnreachableException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a custom key store backed by a key store that you own and manage. When you use a\n KMS key in a custom key store for a cryptographic operation, the cryptographic operation is\n actually performed in your key store using your keys. KMS supports CloudHSM key stores\n backed by an CloudHSM cluster\n and external key\n stores backed by an external key store proxy and external key manager outside of\n Amazon Web Services.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n

Before you create the custom key store, the required elements must be in place and\n operational. We recommend that you use the test tools that KMS provides to verify the\n configuration your external key store proxy. For details about the required elements and\n verification tests, see Assemble the prerequisites (for\n CloudHSM key stores) or Assemble the prerequisites (for\n external key stores) in the Key Management Service Developer Guide.

\n

To create a custom key store, use the following parameters.

\n
    \n
  • \n

    To create an CloudHSM key store, specify the CustomKeyStoreName,\n CloudHsmClusterId, KeyStorePassword, and\n TrustAnchorCertificate. The CustomKeyStoreType parameter is\n optional for CloudHSM key stores. If you include it, set it to the default value,\n AWS_CLOUDHSM. For help with failures, see Troubleshooting an CloudHSM key store in the\n Key Management Service Developer Guide.

    \n
  • \n
  • \n

    To create an external key store, specify the CustomKeyStoreName and a\n CustomKeyStoreType of EXTERNAL_KEY_STORE. Also, specify values\n for XksProxyConnectivity, XksProxyAuthenticationCredential,\n XksProxyUriEndpoint, and XksProxyUriPath. If your\n XksProxyConnectivity value is VPC_ENDPOINT_SERVICE, specify\n the XksProxyVpcEndpointServiceName parameter. For help with failures, see\n Troubleshooting\n an external key store in the Key Management Service Developer Guide.

    \n
  • \n
\n \n

For external key stores:

\n

Some external key managers provide a simpler method for creating an external key store.\n For details, see your external key manager documentation.

\n

When creating an external key store in the KMS console, you can upload a JSON-based\n proxy configuration file with the desired values. You cannot use a proxy configuration with\n the CreateCustomKeyStore operation. However, you can use the values in the file\n to help you determine the correct values for the CreateCustomKeyStore\n parameters.

\n
\n

When the operation completes successfully, it returns the ID of the new custom key store.\n Before you can use your new custom key store, you need to use the ConnectCustomKeyStore operation to connect a new CloudHSM key store to its CloudHSM\n cluster, or to connect a new external key store to the external key store proxy for your\n external key manager. Even if you are not going to use your custom key store immediately, you\n might want to connect it to verify that all settings are correct and then disconnect it until\n you are ready to use it.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:CreateCustomKeyStore (IAM policy).

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To create an AWS CloudHSM key store", + "documentation": "This example creates a custom key store that is associated with an AWS CloudHSM cluster.", + "input": { + "CustomKeyStoreName": "ExampleKeyStore", + "CloudHsmClusterId": "cluster-234abcdefABC", + "TrustAnchorCertificate": "", + "KeyStorePassword": "kmsPswd" + }, + "output": { + "CustomKeyStoreId": "cks-1234567890abcdef0" + } + } + ] + } + }, + "com.amazonaws.kms#CreateCustomKeyStoreRequest": { + "type": "structure", + "members": { + "CustomKeyStoreName": { + "target": "com.amazonaws.kms#CustomKeyStoreNameType", + "traits": { + "smithy.api#documentation": "

Specifies a friendly name for the custom key store. The name must be unique in your\n Amazon Web Services account and Region. This parameter is required for all custom key stores.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
", + "smithy.api#required": {} + } + }, + "CloudHsmClusterId": { + "target": "com.amazonaws.kms#CloudHsmClusterIdType", + "traits": { + "smithy.api#documentation": "

Identifies the CloudHSM cluster for an CloudHSM key store. This parameter is required for custom\n key stores with CustomKeyStoreType of AWS_CLOUDHSM.

\n

Enter the cluster ID of any active CloudHSM cluster that is not already associated with a\n custom key store. To find the cluster ID, use the DescribeClusters operation.

" + } + }, + "TrustAnchorCertificate": { + "target": "com.amazonaws.kms#TrustAnchorCertificateType", + "traits": { + "smithy.api#documentation": "

Specifies the certificate for an CloudHSM key store. This parameter is required for custom\n key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

\n

Enter the content of the trust anchor certificate for the CloudHSM cluster. This is the\n content of the customerCA.crt file that you created when you initialized the\n cluster.

" + } + }, + "KeyStorePassword": { + "target": "com.amazonaws.kms#KeyStorePasswordType", + "traits": { + "smithy.api#documentation": "

Specifies the kmsuser password for an CloudHSM key store. This parameter is\n required for custom key stores with a CustomKeyStoreType of\n AWS_CLOUDHSM.

\n

Enter the password of the \n kmsuser crypto user\n (CU) account in the specified CloudHSM cluster. KMS logs into the cluster as this\n user to manage key material on your behalf.

\n

The password must be a string of 7 to 32 characters. Its value is case sensitive.

\n

This parameter tells KMS the kmsuser account password; it does not change\n the password in the CloudHSM cluster.

" + } + }, + "CustomKeyStoreType": { + "target": "com.amazonaws.kms#CustomKeyStoreType", + "traits": { + "smithy.api#documentation": "

Specifies the type of custom key store. The default value is\n AWS_CLOUDHSM.

\n

For a custom key store backed by an CloudHSM cluster, omit the parameter or enter\n AWS_CLOUDHSM. For a custom key store backed by an external key manager outside\n of Amazon Web Services, enter EXTERNAL_KEY_STORE. You cannot change this property after the key\n store is created.

" + } + }, + "XksProxyUriEndpoint": { + "target": "com.amazonaws.kms#XksProxyUriEndpointType", + "traits": { + "smithy.api#documentation": "

Specifies the endpoint that KMS uses to send requests to the external key store proxy\n (XKS proxy). This parameter is required for custom key stores with a\n CustomKeyStoreType of EXTERNAL_KEY_STORE.

\n

The protocol must be HTTPS. KMS communicates on port 443. Do not specify the port in the\n XksProxyUriEndpoint value.

\n

For external key stores with XksProxyConnectivity value of\n VPC_ENDPOINT_SERVICE, specify https:// followed by the private DNS\n name of the VPC endpoint service.

\n

For external key stores with PUBLIC_ENDPOINT connectivity, this endpoint must\n be reachable before you create the custom key store. KMS connects to the external key store\n proxy while creating the custom key store. For external key stores with\n VPC_ENDPOINT_SERVICE connectivity, KMS connects when you call the ConnectCustomKeyStore operation.

\n

The value of this parameter must begin with https://. The remainder can\n contain upper and lower case letters (A-Z and a-z), numbers (0-9), dots (.), and\n hyphens (-). Additional slashes (/ and \\) are not\n permitted.

\n

\n Uniqueness requirements: \n

\n
    \n
  • \n

    The combined XksProxyUriEndpoint and XksProxyUriPath values\n must be unique in the Amazon Web Services account and Region.

    \n
  • \n
  • \n

    An external key store with PUBLIC_ENDPOINT connectivity cannot use the\n same XksProxyUriEndpoint value as an external key store with\n VPC_ENDPOINT_SERVICE connectivity in this Amazon Web Services Region.

    \n
  • \n
  • \n

    Each external key store with VPC_ENDPOINT_SERVICE connectivity must have\n its own private DNS name. The XksProxyUriEndpoint value for external key\n stores with VPC_ENDPOINT_SERVICE connectivity (private DNS name) must be\n unique in the Amazon Web Services account and Region.

    \n
  • \n
" + } + }, + "XksProxyUriPath": { + "target": "com.amazonaws.kms#XksProxyUriPathType", + "traits": { + "smithy.api#documentation": "

Specifies the base path to the proxy APIs for this external key store. To find this value,\n see the documentation for your external key store proxy. This parameter is required for all\n custom key stores with a CustomKeyStoreType of\n EXTERNAL_KEY_STORE.

\n

The value must start with / and must end with /kms/xks/v1 where\n v1 represents the version of the KMS external key store proxy API. This path\n can include an optional prefix between the required elements such as\n /prefix/kms/xks/v1.

\n

\n Uniqueness requirements: \n

\n
    \n
  • \n

    The combined XksProxyUriEndpoint and XksProxyUriPath values\n must be unique in the Amazon Web Services account and Region.

    \n
  • \n
" + } + }, + "XksProxyVpcEndpointServiceName": { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNameType", + "traits": { + "smithy.api#documentation": "

Specifies the name of the Amazon VPC endpoint service for interface endpoints that is used to\n communicate with your external key store proxy (XKS proxy). This parameter is required when\n the value of CustomKeyStoreType is EXTERNAL_KEY_STORE and the value\n of XksProxyConnectivity is VPC_ENDPOINT_SERVICE.

\n

The Amazon VPC endpoint service must fulfill all\n requirements for use with an external key store.

\n

\n Uniqueness requirements:\n

\n
    \n
  • \n

    External key stores with VPC_ENDPOINT_SERVICE connectivity can share an\n Amazon VPC, but each external key store must have its own VPC endpoint service and private DNS\n name.

    \n
  • \n
" + } + }, + "XksProxyVpcEndpointServiceOwner": { + "target": "com.amazonaws.kms#AccountIdType", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services account ID that owns the Amazon VPC service endpoint for the interface that\n is used to communicate with your external key store proxy (XKS proxy). This parameter is\n optional. If not provided, the Amazon Web Services account ID calling the action will be used.

" + } + }, + "XksProxyAuthenticationCredential": { + "target": "com.amazonaws.kms#XksProxyAuthenticationCredentialType", + "traits": { + "smithy.api#documentation": "

Specifies an authentication credential for the external key store proxy (XKS proxy). This\n parameter is required for all custom key stores with a CustomKeyStoreType of\n EXTERNAL_KEY_STORE.

\n

The XksProxyAuthenticationCredential has two required elements:\n RawSecretAccessKey, a secret key, and AccessKeyId, a unique\n identifier for the RawSecretAccessKey. For character requirements, see XksProxyAuthenticationCredentialType.

\n

KMS uses this authentication credential to sign requests to the external key store proxy\n on your behalf. This credential is unrelated to Identity and Access Management (IAM) and Amazon Web Services credentials.

\n

This parameter doesn't set or change the authentication credentials on the XKS proxy. It\n just tells KMS the credential that you established on your external key store proxy. If you\n rotate your proxy authentication credential, use the UpdateCustomKeyStore\n operation to provide the new credential to KMS.

" + } + }, + "XksProxyConnectivity": { + "target": "com.amazonaws.kms#XksProxyConnectivityType", + "traits": { + "smithy.api#documentation": "

Indicates how KMS communicates with the external key store proxy. This parameter is\n required for custom key stores with a CustomKeyStoreType of\n EXTERNAL_KEY_STORE.

\n

If the external key store proxy uses a public endpoint, specify\n PUBLIC_ENDPOINT. If the external key store proxy uses a Amazon VPC\n endpoint service for communication with KMS, specify VPC_ENDPOINT_SERVICE. For\n help making this choice, see Choosing a connectivity option in\n the Key Management Service Developer Guide.

\n

An Amazon VPC endpoint service keeps your communication with KMS in a private address space\n entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a\n verified private DNS name. A public endpoint is simpler to set up, but it might be slower and\n might not fulfill your security requirements. You might consider testing with a public\n endpoint, and then establishing a VPC endpoint service for production tasks. Note that this\n choice does not determine the location of the external key store proxy. Even if you choose a\n VPC endpoint service, the proxy can be hosted within the VPC or outside of Amazon Web Services such as in\n your corporate data center.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#CreateCustomKeyStoreResponse": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the new custom key store.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#CreateGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#CreateGrantRequest" + }, + "output": { + "target": "com.amazonaws.kms#CreateGrantResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds a grant to a KMS key.

\n

A grant is a policy instrument that allows Amazon Web Services principals to use\n KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key,\n grants are considered along with key policies and IAM policies. Grants are often used for\n temporary permissions because you can create one, use its permissions, and delete it without\n changing your key policies or IAM policies.

\n

You can create a grant for an Amazon Web Services principal (IAM user, IAM role, or Amazon Web Services account) by\n specifying the GranteePrincipal parameter. You can also create a grant for an\n Amazon Web Services service principal by specifying the GranteeServicePrincipal\n parameter.

\n

For detailed information about grants, including grant terminology, see Grants in KMS in the\n \n Key Management Service Developer Guide\n . For examples of creating grants in several\n programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

\n

The CreateGrant operation returns a GrantToken and a\n GrantId.

\n
    \n
  • \n

    When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. Once the grant has achieved eventual consistency, the grantee\n principal can use the permissions in the grant without identifying the grant.

    \n

    However, to use the permissions in the grant immediately, use the\n GrantToken that CreateGrant returns. For details, see Using a grant\n token in the \n Key Management Service Developer Guide\n .

    \n
  • \n
  • \n

    The CreateGrant operation also returns a GrantId. You can\n use the GrantId and a key identifier to identify the grant in the RetireGrant and RevokeGrant operations. To find the grant\n ID, use the ListGrants or ListRetirableGrants\n operations.

    \n
  • \n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:CreateGrant (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To create a grant", + "documentation": "The following example creates a grant that allows the specified IAM role to encrypt data with the specified KMS key.", + "input": { + "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", + "Operations": [ + "Encrypt", + "Decrypt" + ] + }, + "output": { + "GrantToken": "AQpAM2RhZTk1MGMyNTk2ZmZmMzEyYWVhOWViN2I1MWM4Mzc0MWFiYjc0ZDE1ODkyNGFlNTIzODZhMzgyZjBlNGY3NiKIAgEBAgB4Pa6VDCWW__MSrqnre1HIN0Grt00ViSSuUjhqOC8OT3YAAADfMIHcBgkqhkiG9w0BBwaggc4wgcsCAQAwgcUGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMmqLyBTAegIn9XlK5AgEQgIGXZQjkBcl1dykDdqZBUQ6L1OfUivQy7JVYO2-ZJP7m6f1g8GzV47HX5phdtONAP7K_HQIflcgpkoCqd_fUnE114mSmiagWkbQ5sqAVV3ov-VeqgrvMe5ZFEWLMSluvBAqdjHEdMIkHMlhlj4ENZbzBfo9Wxk8b8SnwP4kc4gGivedzFXo-dwN8fxjjq_ZZ9JFOj2ijIbj5FyogDCN0drOfi8RORSEuCEmPvjFRMFAwcmwFkN2NPp89amA", + "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60" + } + }, + { + "title": "To create a grant for a service principal", + "documentation": "The following example creates a grant that allows the specified AWS service principal to encrypt and decrypt data with the specified KMS key. The grant includes a SourceArn constraint that restricts the grant permissions to requests associated with the specified DynamoDB table.", + "input": { + "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "GranteeServicePrincipal": "service-name.amazonaws.com", + "RetiringServicePrincipal": "service-name.amazonaws.com", + "Operations": [ + "Encrypt", + "Decrypt", + "GenerateDataKey", + "DescribeKey" + ], + "Constraints": { + "SourceArn": "arn:aws:dynamodb:us-east-2:444455556666:table/ExampleTable" + } + }, + "output": { + "GrantToken": "AQpAM2RhZTk1MGMyNTk2ZmZmMzEyYWVhOWViN2I1MWM4Mzc0MWFiYjc0ZDE1ODkyNGFlNTIzODZhMzgyZjBlNGY3NiKIAgEBAgB4Pa6VDCWW...", + "GrantId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2" + } + } + ] + } + }, + "com.amazonaws.kms#CreateGrantRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key for the grant. The grant gives principals permission to use this\n KMS key.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "GranteePrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The identity that gets the permissions specified in the grant.

\n

To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services\n principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles,\n federated users, and assumed role users. For help with the ARN syntax for a principal, see\n IAM ARNs in the \n Identity and Access Management User Guide\n .

\n

You must specify either GranteePrincipal or\n GranteeServicePrincipal, but not both.

" + } + }, + "RetiringPrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The principal that has permission to use the RetireGrant operation to\n retire the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an\n Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles,\n federated users, and assumed role users. For help with the ARN syntax for a principal, see\n IAM ARNs in the \n Identity and Access Management User Guide\n .

\n

The grant determines the retiring principal. Other principals might have permission to\n retire the grant or revoke the grant. For details, see RevokeGrant and\n Retiring and revoking\n grants in the Key Management Service Developer Guide.

\n

You can specify either RetiringPrincipal or\n RetiringServicePrincipal, but not both.

" + } + }, + "Operations": { + "target": "com.amazonaws.kms#GrantOperationList", + "traits": { + "smithy.api#documentation": "

A list of operations that the grant permits.

\n

This list must include only operations that are permitted in a grant. Also, the operation\n must be supported on the KMS key. For example, you cannot create a grant for a symmetric\n encryption KMS key that allows the Sign operation, or a grant for an\n asymmetric KMS key that allows the GenerateDataKey operation. If you try,\n KMS returns a ValidationError exception. For details, see Grant\n operations in the Key Management Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "Constraints": { + "target": "com.amazonaws.kms#GrantConstraints", + "traits": { + "smithy.api#documentation": "

Specifies a grant constraint.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

KMS supports the following grant constraints.

\n
    \n
  • \n

    \n EncryptionContextEquals and EncryptionContextSubset — These\n encryption context grant constraints allow the permissions in the grant only when the\n encryption context in the request matches (EncryptionContextEquals) or\n includes (EncryptionContextSubset) the encryption context specified in the\n constraint.

    \n

    Encryption context grant constraints are supported only on grant operations that\n include an EncryptionContext parameter, such as cryptographic operations on\n symmetric encryption KMS keys. You cannot use an encryption context grant constraint for\n cryptographic operations with asymmetric KMS keys or HMAC KMS keys. Operations with these\n keys don't support an encryption context. Grants with encryption context grant constraints\n can include the DescribeKey and RetireGrant operations,\n but the constraint doesn't apply to these operations. If a grant with an encryption context\n grant constraint includes the CreateGrant operation, the constraint requires\n that any grants created with the CreateGrant permission have an equally strict\n or stricter encryption context constraint.

    \n

    Each constraint value can include up to 8 encryption context pairs. The encryption\n context value in each constraint cannot exceed 384 characters. For more information about\n encryption context, see Encryption context in the \n Key Management Service Developer Guide\n .

    \n
  • \n
  • \n

    \n SourceArn — This grant constraint allows the permissions in the grant only when the\n request is made on behalf of a specific Amazon Web Services resource, identified by its Amazon Resource Name (ARN). This is effectively\n the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint is supported on grants\n for all types of KMS keys and can also be applied to the DescribeKey operation when\n specified in the request. However, it does not apply to RetireGrant operation.

    \n
  • \n
\n

For information about grant constraints, see Using grant\n constraints in the Key Management Service Developer Guide.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "Name": { + "target": "com.amazonaws.kms#GrantNameType", + "traits": { + "smithy.api#documentation": "

A friendly name for the grant. Use this value to prevent the unintended creation of\n duplicate grants when retrying this request.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

When this value is absent, all CreateGrant requests result in a new grant\n with a unique GrantId even if all the supplied parameters are identical. This can\n result in unintended duplicates when you retry the CreateGrant request.

\n

When this value is present, you can retry a CreateGrant request with\n identical parameters; if the grant already exists, the original GrantId is\n returned without creating a new grant. Note that the returned grant token is unique with every\n CreateGrant request, even when a duplicate GrantId is returned.\n All grant tokens for the same grant ID can be used interchangeably.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + }, + "GranteeServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service\n principal that gets the permissions specified in the grant.

\n

When you specify a GranteeServicePrincipal, you must also specify a\n SourceArn grant constraint. In addition, you must specify either a\n RetiringPrincipal or a RetiringServicePrincipal.\n

\n

You must specify either GranteePrincipal or\n GranteeServicePrincipal, but not both.

" + } + }, + "RetiringServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service\n principal that has permission to use the RetireGrant\n operation to retire the grant.

\n

You can specify either RetiringPrincipal or\n RetiringServicePrincipal, but not both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#CreateGrantResponse": { + "type": "structure", + "members": { + "GrantToken": { + "target": "com.amazonaws.kms#GrantTokenType", + "traits": { + "smithy.api#documentation": "

The grant token.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "GrantId": { + "target": "com.amazonaws.kms#GrantIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the grant.

\n

You can use the GrantId in a ListGrants, RetireGrant, or RevokeGrant operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#CreateKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#CreateKeyRequest" + }, + "output": { + "target": "com.amazonaws.kms#CreateKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.kms#TagException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + }, + { + "target": "com.amazonaws.kms#XksKeyAlreadyInUseException" + }, + { + "target": "com.amazonaws.kms#XksKeyInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#XksKeyNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a unique customer managed KMS key in your Amazon Web Services account and Region.\n You can use a KMS key in cryptographic operations, such as encryption and signing. Some Amazon Web Services\n services let you use KMS keys that you create and manage to protect your service\n resources.

\n

A KMS key is a logical representation of a cryptographic key. In addition to the key\n material used in cryptographic operations, a KMS key includes metadata, such as the key ID,\n key policy, creation date, description, and key state.

\n

Use the parameters of CreateKey to specify the type of KMS key, the source of\n its key material, its key policy, description, tags, and other properties.

\n \n

KMS has replaced the term customer master key (CMK) with Key Management Service key \n and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n
\n

To create different types of KMS keys, use the following guidance:

\n
\n
Symmetric encryption KMS key
\n
\n

By default, CreateKey creates a symmetric encryption KMS key with key\n material that KMS generates. This is the basic and most widely used type of KMS key, and\n provides the best performance.

\n

To create a symmetric encryption KMS key, you don't need to specify any parameters.\n The default value for KeySpec, SYMMETRIC_DEFAULT, the default\n value for KeyUsage, ENCRYPT_DECRYPT, and the default value for\n Origin, AWS_KMS, create a symmetric encryption KMS key with\n KMS key material.

\n

If you need a key for basic encryption and decryption or you are creating a KMS key\n to protect your resources in an Amazon Web Services service, create a symmetric encryption KMS key.\n The key material in a symmetric encryption key never leaves KMS unencrypted. You can\n use a symmetric encryption KMS key to encrypt and decrypt data up to 4,096 bytes, but\n they are typically used to generate data keys and data keys pairs. For details, see\n GenerateDataKey and GenerateDataKeyPair.

\n

\n
\n
Asymmetric KMS keys
\n
\n

To create an asymmetric KMS key, use the KeySpec parameter to specify\n the type of key material in the KMS key. Then, use the KeyUsage parameter\n to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n You can't change these properties after the KMS key is created.

\n

Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key pair, ML-DSA\n key pair or an SM2 key pair (China Regions only). The private key in an asymmetric KMS\n key never leaves KMS unencrypted. However, you can use the GetPublicKey operation to download the public key so it can be used\n outside of KMS. Each KMS key can have only one key usage. KMS keys with RSA key pairs\n can be used to encrypt and decrypt data or sign and verify messages (but not both). KMS\n keys with NIST-standard ECC key pairs can be used to sign and verify messages or\n derive shared secrets (but not both). KMS keys with ECC_SECG_P256K1 can be\n used only to sign and verify messages. KMS keys with ML-DSA key pairs can be used to\n sign and verify messages. KMS keys with SM2 key pairs (China Regions only) can be used\n to either encrypt and decrypt data, sign and verify messages, or derive shared secrets\n (you must choose one key usage type). For information about asymmetric KMS keys, see\n Asymmetric\n KMS keys in the Key Management Service Developer Guide.

\n

\n
\n
HMAC KMS key
\n
\n

To create an HMAC KMS key, set the KeySpec parameter to a key spec\n value for HMAC KMS keys. Then set the KeyUsage parameter to\n GENERATE_VERIFY_MAC. You must set the key usage even though\n GENERATE_VERIFY_MAC is the only valid key usage value for HMAC KMS keys.\n You can't change these properties after the KMS key is created.

\n

HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You can use\n HMAC keys to generate (GenerateMac) and verify (VerifyMac) HMAC codes for messages up to 4096 bytes.

\n

\n
\n
Multi-Region primary keys
\n
\n

To create a multi-Region primary key in the local Amazon Web Services Region,\n use the MultiRegion parameter with a value of True. To create\n a multi-Region replica key, that is, a KMS key with the same key ID\n and key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its\n primary key to a replica key, use the UpdatePrimaryRegion\n operation.

\n

You can create multi-Region KMS keys for all supported KMS key types: symmetric\n encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n signing KMS keys. You can also create multi-Region keys with imported key material.\n However, you can't create multi-Region keys in a custom key store.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

\n

\n
\n
Imported key material
\n
\n

To import your own key material into a KMS key, begin by creating a KMS key with no\n key material. To do this, use the Origin parameter of\n CreateKey with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token. Use\n the wrapping public key to encrypt your key material. Then, use ImportKeyMaterial with your import token to import the key material. For\n step-by-step instructions, see Importing Key Material in the \n Key Management Service Developer Guide\n .

\n

You can import key material into KMS keys of all supported KMS key types: symmetric\n encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n signing KMS keys. You can also create multi-Region keys with imported key material.\n However, you can't import key material into a KMS key in a custom key store.

\n

To create a multi-Region primary key with imported key material, use the\n Origin parameter of CreateKey with a value of\n EXTERNAL and the MultiRegion parameter with a value of\n True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For instructions, see Importing key material step\n 1. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

\n

\n
\n
Custom key store
\n
\n

A custom key store lets you protect your Amazon Web Services resources using keys in a backing key\n store that you own and manage. When you request a cryptographic operation with a KMS key\n in a custom key store, the operation is performed in the backing key store using its\n cryptographic keys.

\n

KMS supports CloudHSM key stores backed by an CloudHSM cluster and external key stores backed by an\n external key manager outside of Amazon Web Services. When you create a KMS key in an CloudHSM key store,\n KMS generates an encryption key in the CloudHSM cluster and associates it with the KMS\n key. When you create a KMS key in an external key store, you specify an existing\n encryption key in the external key manager.

\n \n

Some external key managers provide a simpler method for creating a KMS key in an\n external key store. For details, see your external key manager documentation.

\n
\n

Before you create a KMS key in a custom key store, the ConnectionState\n of the key store must be CONNECTED. To connect the custom key store, use\n the ConnectCustomKeyStore operation. To find the\n ConnectionState, use the DescribeCustomKeyStores\n operation.

\n

To create a KMS key in a custom key store, use the CustomKeyStoreId.\n Use the default KeySpec value, SYMMETRIC_DEFAULT, and the\n default KeyUsage value, ENCRYPT_DECRYPT to create a symmetric\n encryption key. No other key type is supported in a custom key store.

\n

To create a KMS key in an CloudHSM key store, use the\n Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM\n cluster that is associated with the custom key store must have at least two active HSMs\n in different Availability Zones in the Amazon Web Services Region.

\n

To create a KMS key in an external key store, use the\n Origin parameter with a value of EXTERNAL_KEY_STORE and an\n XksKeyId parameter that identifies an existing external key.

\n \n

Some external key managers provide a simpler method for creating a KMS key in an\n external key store. For details, see your external key manager documentation.

\n
\n
\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:CreateKey (IAM policy). To use the\n Tags parameter, kms:TagResource (IAM policy). For examples and information about related\n permissions, see Allow a user\n to create KMS keys in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

" + } + }, + "com.amazonaws.kms#CreateKeyRequest": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.kms#PolicyType", + "traits": { + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

If you provide a key policy, it must meet the following criteria:

\n
    \n
  • \n

    The key policy must allow the calling principal to make a\n subsequent PutKeyPolicy request on the KMS key. This reduces the risk that\n the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit\n this condition, set BypassPolicyLockoutSafetyCheck to true.)

    \n
  • \n
  • \n

    Each statement in the key policy must contain one or more principals. The principals\n in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services\n principal, you might need to enforce a delay before including the new principal in a key\n policy because the new principal might not be immediately visible to KMS. For more\n information, see Changes that I make are not always immediately visible in the Amazon Web Services\n Identity and Access Management User Guide.

    \n
  • \n
\n \n

If either of the required Resource or Action elements are\n missing from a key policy statement, the policy statement has no effect. When a key policy\n statement is missing one of these elements, the KMS console correctly reports an error,\n but the CreateKey and PutKeyPolicy API requests succeed, even\n though the policy statement is ineffective.

\n

For more information on required key policy elements, see Elements in a key\n policy in the Key Management Service Developer Guide.

\n
\n

If you do not provide a key policy, KMS attaches a default key policy to the KMS key.\n For more information, see Default key policy in the\n Key Management Service Developer Guide.

\n \n

If the key policy exceeds the length constraint, KMS returns a\n LimitExceededException.

\n
\n

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

" + } + }, + "Description": { + "target": "com.amazonaws.kms#DescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the KMS key. Use a description that helps you decide whether the KMS key\n is appropriate for a task. The default value is an empty string (no description).

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

To set or change the description after the key is created, use UpdateKeyDescription.

" + } + }, + "KeyUsage": { + "target": "com.amazonaws.kms#KeyUsageType", + "traits": { + "smithy.api#documentation": "

Determines the cryptographic operations for which you can use the KMS key. The default value is\n ENCRYPT_DECRYPT. This parameter is optional when you are creating a symmetric\n encryption KMS key; otherwise, it is required. You can't change the \n KeyUsage\n value after the KMS key is created. Each KMS key can have\n only one key usage. This follows key usage best practices according to NIST SP 800-57 Recommendations for\n Key Management, section 5.2, Key usage.

\n

Select only one valid value.

\n
    \n
  • \n

    For symmetric encryption KMS keys, omit the parameter or specify\n ENCRYPT_DECRYPT.

    \n
  • \n
  • \n

    For HMAC KMS keys (symmetric), specify GENERATE_VERIFY_MAC.

    \n
  • \n
  • \n

    For asymmetric KMS keys with RSA key pairs, specify ENCRYPT_DECRYPT or\n SIGN_VERIFY.

    \n
  • \n
  • \n

    For asymmetric KMS keys with NIST-standard elliptic curve key pairs, specify\n SIGN_VERIFY or KEY_AGREEMENT.

    \n
  • \n
  • \n

    For asymmetric KMS keys with ECC_SECG_P256K1 key pairs, specify\n SIGN_VERIFY.

    \n
  • \n
  • \n

    For asymmetric KMS keys with ML-DSA key pairs, specify\n SIGN_VERIFY.

    \n
  • \n
  • \n

    For asymmetric KMS keys with ML-KEM key pairs, specify\n ENCAPSULATE_DECAPSULATE.

    \n
  • \n
  • \n

    For asymmetric KMS keys with SM2 key pairs (China Regions only), specify\n ENCRYPT_DECRYPT, SIGN_VERIFY, or\n KEY_AGREEMENT.

    \n
  • \n
" + } + }, + "CustomerMasterKeySpec": { + "target": "com.amazonaws.kms#CustomerMasterKeySpec", + "traits": { + "smithy.api#deprecated": { + "message": "This parameter has been deprecated. Instead, use the KeySpec parameter." + }, + "smithy.api#documentation": "

Instead, use the KeySpec parameter.

\n

The KeySpec and CustomerMasterKeySpec parameters work the same\n way. Only the names differ. We recommend that you use KeySpec parameter in your\n code. However, to avoid breaking changes, KMS supports both parameters.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", + "traits": { + "smithy.api#documentation": "

Specifies the type of KMS key to create. The default value,\n SYMMETRIC_DEFAULT, creates a KMS key with a 256-bit AES-GCM key that is used for\n encryption and decryption, except in China Regions, where it creates a 128-bit symmetric key\n that uses SM4 encryption. For a detailed description of all supported key specs, see Key spec\n reference in the \n Key Management Service Developer Guide\n .

\n

The KeySpec determines whether the KMS key contains a symmetric key or an\n asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't\n change the KeySpec after the KMS key is created. To further restrict the\n algorithms that can be used with the KMS key, use a condition key in its key policy or IAM\n policy. For more information, see kms:EncryptionAlgorithm, kms:MacAlgorithm, kms:KeyAgreementAlgorithm, or kms:SigningAlgorithm in the \n Key Management Service Developer Guide\n .

\n \n

\n Amazon Web Services services that\n are integrated with KMS use symmetric encryption KMS keys to protect your data.\n These services do not support asymmetric KMS keys or HMAC KMS keys.

\n
\n

KMS supports the following key specs for KMS keys:

\n
    \n
  • \n

    Symmetric encryption key (default)

    \n
      \n
    • \n

      \n SYMMETRIC_DEFAULT\n

      \n
    • \n
    \n
  • \n
  • \n

    HMAC keys (symmetric)

    \n
      \n
    • \n

      \n HMAC_224\n

      \n
    • \n
    • \n

      \n HMAC_256\n

      \n
    • \n
    • \n

      \n HMAC_384\n

      \n
    • \n
    • \n

      \n HMAC_512\n

      \n
    • \n
    \n
  • \n
  • \n

    Asymmetric RSA key pairs (encryption and decryption -or- signing and\n verification)

    \n
      \n
    • \n

      \n RSA_2048\n

      \n
    • \n
    • \n

      \n RSA_3072\n

      \n
    • \n
    • \n

      \n RSA_4096\n

      \n
    • \n
    \n
  • \n
  • \n

    Asymmetric NIST-standard elliptic curve key pairs (signing and verification -or-\n deriving shared secrets)

    \n
      \n
    • \n

      \n ECC_NIST_P256 (secp256r1)

      \n
    • \n
    • \n

      \n ECC_NIST_P384 (secp384r1)

      \n
    • \n
    • \n

      \n ECC_NIST_P521 (secp521r1)

      \n
    • \n
    • \n

      \n ECC_NIST_EDWARDS25519 (ed25519) - signing and verification only

      \n
        \n
      • \n

        \n Note: For ECC_NIST_EDWARDS25519 KMS keys, the\n ED25519_SHA_512 signing algorithm requires \n MessageType:RAW\n , while ED25519_PH_SHA_512 requires \n MessageType:DIGEST\n . These message types cannot be used interchangeably.

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    Other asymmetric elliptic curve key pairs (signing and verification)

    \n
      \n
    • \n

      \n ECC_SECG_P256K1 (secp256k1), commonly used for\n cryptocurrencies.

      \n
    • \n
    \n
  • \n
  • \n

    Asymmetric ML-DSA key pairs (signing and verification)

    \n
      \n
    • \n

      \n ML_DSA_44\n

      \n
    • \n
    • \n

      \n ML_DSA_65\n

      \n
    • \n
    • \n

      \n ML_DSA_87\n

      \n
    • \n
    \n
  • \n
  • \n

    Asymmetric ML-KEM key pairs (establishing shared secrets)

    \n
      \n
    • \n

      \n ML_KEM_512\n

      \n
    • \n
    • \n

      \n ML_KEM_768\n

      \n
    • \n
    • \n

      \n ML_KEM_1024\n

      \n
    • \n
    \n

    The ML-KEM key specs are not available in China Regions.

    \n
  • \n
  • \n

    SM2 key pairs (encryption and decryption -or- signing and verification -or- deriving\n shared secrets)

    \n
      \n
    • \n

      \n SM2 (China Regions only)

      \n
    • \n
    \n
  • \n
" + } + }, + "Origin": { + "target": "com.amazonaws.kms#OriginType", + "traits": { + "smithy.api#documentation": "

The source of the key material for the KMS key. You cannot change the origin after you\n create the KMS key. The default is AWS_KMS, which means that KMS creates the\n key material.

\n

To create a\n KMS key with no key material (for imported key material), set this value to\n EXTERNAL. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide. The EXTERNAL origin value is valid\n only for symmetric KMS keys.

\n

To create a KMS\n key in an CloudHSM key store and create its key material in the associated CloudHSM\n cluster, set this value to AWS_CLOUDHSM. You must also use the\n CustomKeyStoreId parameter to identify the CloudHSM key store. The\n KeySpec value must be SYMMETRIC_DEFAULT.

\n

To create a KMS key in\n an external key store, set this value to EXTERNAL_KEY_STORE. You must\n also use the CustomKeyStoreId parameter to identify the external key store and\n the XksKeyId parameter to identify the associated external key. The\n KeySpec value must be SYMMETRIC_DEFAULT.

" + } + }, + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Creates the KMS key in the specified custom key store. The ConnectionState of\n the custom key store must be CONNECTED. To find the CustomKeyStoreID and\n ConnectionState use the DescribeCustomKeyStores operation.

\n

This parameter is valid only for symmetric encryption KMS keys in a single Region. You\n cannot create any other type of KMS key in a custom key store.

\n

When you create a KMS key in an CloudHSM key store, KMS generates a non-exportable 256-bit\n symmetric key in its associated CloudHSM cluster and associates it with the KMS key. When you\n create a KMS key in an external key store, you must use the XksKeyId parameter to\n specify an external key that serves as key material for the KMS key.

" + } + }, + "BypassPolicyLockoutSafetyCheck": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, see Default key policy in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy\n request on the KMS key.

" + } + }, + "Tags": { + "target": "com.amazonaws.kms#TagList", + "traits": { + "smithy.api#documentation": "

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is\n created. To tag an existing KMS key, use the TagResource operation.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag\n value, KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tags in KMS.

" + } + }, + "MultiRegion": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You\n cannot change this value after you create the KMS key.

\n

For a multi-Region key, set this parameter to True. For a single-Region KMS\n key, omit this parameter or set it to False. The default value is\n False.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

\n

This value creates a primary key, not a replica. To create a\n replica key, use the ReplicateKey operation.

\n

You can create a symmetric or asymmetric multi-Region key, and you can create a\n multi-Region key with imported key material. However, you cannot create a multi-Region key in\n a custom key store.

" + } + }, + "XksKeyId": { + "target": "com.amazonaws.kms#XksKeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the external key that\n serves as key material for the KMS key in an external key store. Specify the ID that\n the external key store proxy uses to refer to the external key. For help, see the\n documentation for your external key store proxy.

\n

This parameter is required for a KMS key with an Origin value of\n EXTERNAL_KEY_STORE. It is not valid for KMS keys with any other\n Origin value.

\n

The external key must be an existing 256-bit AES symmetric encryption key hosted outside\n of Amazon Web Services in an external key manager associated with the external key store specified by the\n CustomKeyStoreId parameter. This key must be enabled and configured to perform\n encryption and decryption. Each KMS key in an external key store must use a different external\n key. For details, see Requirements for a KMS key in\n an external key store in the Key Management Service Developer Guide.

\n

Each KMS key in an external key store is associated two backing keys. One is key material\n that KMS generates. The other is the external key specified by this parameter. When you use\n the KMS key in an external key store to encrypt data, the encryption operation is performed\n first by KMS using the KMS key material, and then by the external key manager using the\n specified external key, a process known as double encryption. For\n details, see Double\n encryption in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#CreateKeyResponse": { + "type": "structure", + "members": { + "KeyMetadata": { + "target": "com.amazonaws.kms#KeyMetadata", + "traits": { + "smithy.api#documentation": "

Metadata associated with the KMS key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#CustomKeyStoreHasCMKsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreHasCMKsException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the custom key store contains KMS keys. After verifying\n that you do not need to use the KMS keys, use the ScheduleKeyDeletion\n operation to delete the KMS keys. After they are deleted, you can delete the custom key\n store.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CustomKeyStoreIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.kms#CustomKeyStoreInvalidStateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreInvalidStateException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because of the ConnectionState of the custom key\n store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores operation.

\n

This exception is thrown under the following conditions:

\n
    \n
  • \n

    You requested the ConnectCustomKeyStore operation on a custom key\n store with a ConnectionState of DISCONNECTING or\n FAILED. This operation is valid for all other ConnectionState\n values. To reconnect a custom key store in a FAILED state, disconnect it\n (DisconnectCustomKeyStore), then connect it\n (ConnectCustomKeyStore).

    \n
  • \n
  • \n

    You requested the CreateKey operation in a custom key store that is\n not connected. This operations is valid only when the custom key store\n ConnectionState is CONNECTED.

    \n
  • \n
  • \n

    You requested the DisconnectCustomKeyStore operation on a custom key\n store with a ConnectionState of DISCONNECTING or\n DISCONNECTED. This operation is valid for all other\n ConnectionState values.

    \n
  • \n
  • \n

    You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation on a custom key store that is not\n disconnected. UpdateCustomKeyStore can be called on a custom key store in the\n CONNECTED state only to update NewCustomKeyStoreName.\n For all other properties, the custom key store\n ConnectionState must be DISCONNECTED.

    \n
  • \n
  • \n

    You requested the GenerateRandom operation in an CloudHSM key store\n that is not connected. This operation is valid only when the CloudHSM key store\n ConnectionState is CONNECTED.

    \n
  • \n
", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CustomKeyStoreNameInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreNameInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified custom key store name is already assigned\n to another custom key store in the account. Try again with a custom key store name that is\n unique in the account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CustomKeyStoreNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.kms#CustomKeyStoreNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because KMS cannot find a custom key store with the specified\n key store name or ID.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#CustomKeyStoreType": { + "type": "enum", + "members": { + "AWS_CLOUDHSM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_CLOUDHSM" + } + }, + "EXTERNAL_KEY_STORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL_KEY_STORE" + } + } + } + }, + "com.amazonaws.kms#CustomKeyStoresList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#CustomKeyStoresListEntry" + } + }, + "com.amazonaws.kms#CustomKeyStoresListEntry": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the custom key store.

" + } + }, + "CustomKeyStoreName": { + "target": "com.amazonaws.kms#CustomKeyStoreNameType", + "traits": { + "smithy.api#documentation": "

The user-specified friendly name for the custom key store.

" + } + }, + "CloudHsmClusterId": { + "target": "com.amazonaws.kms#CloudHsmClusterIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the CloudHSM cluster that is associated with an CloudHSM key store. This\n field appears only when the CustomKeyStoreType is\n AWS_CLOUDHSM.

" + } + }, + "TrustAnchorCertificate": { + "target": "com.amazonaws.kms#TrustAnchorCertificateType", + "traits": { + "smithy.api#documentation": "

The trust anchor certificate of the CloudHSM cluster associated with an CloudHSM key store. When\n you initialize\n the cluster, you create this certificate and save it in the\n customerCA.crt file.

\n

This field appears only when the CustomKeyStoreType is\n AWS_CLOUDHSM.

" + } + }, + "ConnectionState": { + "target": "com.amazonaws.kms#ConnectionStateType", + "traits": { + "smithy.api#documentation": "

Indicates whether the custom key store is connected to its backing key store. For an CloudHSM\n key store, the ConnectionState indicates whether it is connected to its CloudHSM\n cluster. For an external key store, the ConnectionState indicates whether it is\n connected to the external key store proxy that communicates with your external key\n manager.

\n

You can create and use KMS keys in your custom key stores only when its\n ConnectionState is CONNECTED.

\n

The ConnectionState value is DISCONNECTED only if the key store\n has never been connected or you use the DisconnectCustomKeyStore operation\n to disconnect it. If the value is CONNECTED but you are having trouble using the\n custom key store, make sure that the backing key store is reachable and active. For an CloudHSM\n key store, verify that its associated CloudHSM cluster is active and contains at least one active\n HSM. For an external key store, verify that the external key store proxy and external key\n manager are connected and enabled.

\n

A value of FAILED indicates that an attempt to connect was unsuccessful. The\n ConnectionErrorCode field in the response indicates the cause of the failure.\n For help resolving a connection failure, see Troubleshooting a custom key store in the\n Key Management Service Developer Guide.

" + } + }, + "ConnectionErrorCode": { + "target": "com.amazonaws.kms#ConnectionErrorCodeType", + "traits": { + "smithy.api#documentation": "

Describes the connection error. This field appears in the response only when the\n ConnectionState is FAILED.

\n

Many failures can be resolved by updating the properties of the custom key store. To\n update a custom key store, disconnect it (DisconnectCustomKeyStore), correct\n the errors (UpdateCustomKeyStore), and try to connect again (ConnectCustomKeyStore). For additional help resolving these errors, see How to Fix a\n Connection Failure in Key Management Service Developer Guide.

\n

\n All custom key stores:\n

\n
    \n
  • \n

    \n INTERNAL_ERROR — KMS could not complete the request due to an\n internal error. Retry the request. For ConnectCustomKeyStore requests,\n disconnect the custom key store before trying to connect again.

    \n
  • \n
  • \n

    \n NETWORK_ERRORS — Network errors are preventing KMS from\n connecting the custom key store to its backing key store.

    \n
  • \n
\n

\n CloudHSM key stores:\n

\n
    \n
  • \n

    \n CLUSTER_NOT_FOUND — KMS cannot find the CloudHSM cluster with the\n specified cluster ID.

    \n
  • \n
  • \n

    \n INSUFFICIENT_CLOUDHSM_HSMS — The associated CloudHSM cluster does not\n contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster\n must contain at least one active HSM.

    \n
  • \n
  • \n

    \n INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET — At least one private\n subnet associated with the CloudHSM cluster doesn't have any available IP addresses. A CloudHSM\n key store connection requires one free IP address in each of the associated private\n subnets, although two are preferable. For details, see How to Fix a Connection\n Failure in the Key Management Service Developer Guide.

    \n
  • \n
  • \n

    \n INVALID_CREDENTIALS — The KeyStorePassword for the\n custom key store doesn't match the current password of the kmsuser crypto\n user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM\n cluster, you must change the kmsuser account password and update the\n KeyStorePassword value for the custom key store.

    \n
  • \n
  • \n

    \n SUBNET_NOT_FOUND — A subnet in the CloudHSM cluster configuration was\n deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to\n connect the custom key store to the CloudHSM cluster fail. To fix this error, create a\n cluster from a recent backup and associate it with your custom key store. (This process\n creates a new cluster configuration with a VPC and private subnets.) For details, see\n How\n to Fix a Connection Failure in the Key Management Service Developer Guide.

    \n
  • \n
  • \n

    \n USER_LOCKED_OUT — The kmsuser CU account is locked\n out of the associated CloudHSM cluster due to too many failed password attempts. Before you\n can connect your custom key store to its CloudHSM cluster, you must change the\n kmsuser account password and update the key store password value for the\n custom key store.

    \n
  • \n
  • \n

    \n USER_LOGGED_IN — The kmsuser CU account is logged\n into the associated CloudHSM cluster. This prevents KMS from rotating the\n kmsuser account password and logging into the cluster. Before you can\n connect your custom key store to its CloudHSM cluster, you must log the kmsuser\n CU out of the cluster. If you changed the kmsuser password to log into the\n cluster, you must also and update the key store password value for the custom key store.\n For help, see How to Log Out and\n Reconnect in the Key Management Service Developer Guide.

    \n
  • \n
  • \n

    \n USER_NOT_FOUND — KMS cannot find a kmsuser CU\n account in the associated CloudHSM cluster. Before you can connect your custom key store to\n its CloudHSM cluster, you must create a kmsuser CU account in the cluster, and\n then update the key store password value for the custom key store.

    \n
  • \n
\n

\n External key stores:\n

\n
    \n
  • \n

    \n INVALID_CREDENTIALS — One or both of the\n XksProxyAuthenticationCredential values is not valid on the specified\n external key store proxy.

    \n
  • \n
  • \n

    \n XKS_PROXY_ACCESS_DENIED — KMS requests are denied access to the\n external key store proxy. If the external key store proxy has authorization rules, verify\n that they permit KMS to communicate with the proxy on your behalf.

    \n
  • \n
  • \n

    \n XKS_PROXY_INVALID_CONFIGURATION — A configuration error is\n preventing the external key store from connecting to its proxy. Verify the value of the\n XksProxyUriPath.

    \n
  • \n
  • \n

    \n XKS_PROXY_INVALID_RESPONSE — KMS cannot interpret the response\n from the external key store proxy. If you see this connection error code repeatedly,\n notify your external key store proxy vendor.

    \n
  • \n
  • \n

    \n XKS_PROXY_INVALID_TLS_CONFIGURATION — KMS cannot connect to the\n external key store proxy because the TLS configuration is invalid. Verify that the XKS\n proxy supports TLS 1.2 or 1.3. Also, verify that the TLS certificate is not expired, and\n that it matches the hostname in the XksProxyUriEndpoint value, and that it is\n signed by a certificate authority included in the Trusted Certificate Authorities list.

    \n
  • \n
  • \n

    \n XKS_PROXY_NOT_REACHABLE — KMS can't communicate with your\n external key store proxy. Verify that the XksProxyUriEndpoint and\n XksProxyUriPath are correct. Use the tools for your external key store\n proxy to verify that the proxy is active and available on its network. Also, verify that\n your external key manager instances are operating properly. Connection attempts fail with\n this connection error code if the proxy reports that all external key manager instances\n are unavailable.

    \n
  • \n
  • \n

    \n XKS_PROXY_TIMED_OUT — KMS can connect to the external key store\n proxy, but the proxy does not respond to KMS in the time allotted. If you see this\n connection error code repeatedly, notify your external key store proxy vendor.

    \n
  • \n
  • \n

    \n XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION — The Amazon VPC\n endpoint service configuration doesn't conform to the requirements for an KMS external\n key store.

    \n
      \n
    • \n

      The VPC endpoint service must be an endpoint service for interface endpoints in the caller's Amazon Web Services account.

      \n
    • \n
    • \n

      It must have a network load balancer (NLB) connected to at least two subnets, each in a different Availability Zone.

      \n
    • \n
    • \n

      The Allow principals list must include \n\t the KMS service principal for the Region, cks.kms..amazonaws.com, \n\t such as cks.kms.us-east-1.amazonaws.com.

      \n
    • \n
    • \n

      It must not require acceptance of connection requests.

      \n
    • \n
    • \n

      It must have a private DNS name. The private DNS name for an external key store with VPC_ENDPOINT_SERVICE connectivity\n\t must be unique in its Amazon Web Services Region.

      \n
    • \n
    • \n

      The domain of the private DNS name must have a verification status of\n\t verified.

      \n
    • \n
    • \n

      The TLS certificate specifies the private DNS hostname at which the endpoint is reachable.

      \n
    • \n
    \n
  • \n
  • \n

    \n XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND — KMS can't find the VPC\n endpoint service that it uses to communicate with the external key store proxy. Verify\n that the XksProxyVpcEndpointServiceName is correct and the KMS service\n principal has service consumer permissions on the Amazon VPC endpoint service.

    \n
  • \n
" + } + }, + "CreationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the custom key store was created.

" + } + }, + "CustomKeyStoreType": { + "target": "com.amazonaws.kms#CustomKeyStoreType", + "traits": { + "smithy.api#documentation": "

Indicates the type of the custom key store. AWS_CLOUDHSM indicates a custom\n key store backed by an CloudHSM cluster. EXTERNAL_KEY_STORE indicates a custom key\n store backed by an external key store proxy and external key manager outside of Amazon Web Services.

" + } + }, + "XksProxyConfiguration": { + "target": "com.amazonaws.kms#XksProxyConfigurationType", + "traits": { + "smithy.api#documentation": "

Configuration settings for the external key store proxy (XKS proxy). The external key\n store proxy translates KMS requests into a format that your external key manager can\n understand. The proxy configuration includes connection information that KMS\n requires.

\n

This field appears only when the CustomKeyStoreType is\n EXTERNAL_KEY_STORE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about each custom key store in the custom key store list.

" + } + }, + "com.amazonaws.kms#CustomerMasterKeySpec": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "RSA_3072": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_3072" + } + }, + "RSA_4096": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_4096" + } + }, + "ECC_NIST_P256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P256" + } + }, + "ECC_NIST_P384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P384" + } + }, + "ECC_NIST_P521": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P521" + } + }, + "ECC_SECG_P256K1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_SECG_P256K1" + } + }, + "SYMMETRIC_DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SYMMETRIC_DEFAULT" + } + }, + "HMAC_224": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_224" + } + }, + "HMAC_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_256" + } + }, + "HMAC_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_384" + } + }, + "HMAC_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_512" + } + }, + "SM2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2" + } + } + }, + "traits": { + "smithy.api#deprecated": { + "message": "This enum has been deprecated. Instead, use the KeySpec enum." + } + } + }, + "com.amazonaws.kms#DataKeyPairSpec": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "RSA_3072": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_3072" + } + }, + "RSA_4096": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_4096" + } + }, + "ECC_NIST_P256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P256" + } + }, + "ECC_NIST_P384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P384" + } + }, + "ECC_NIST_P521": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P521" + } + }, + "ECC_SECG_P256K1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_SECG_P256K1" + } + }, + "SM2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2" + } + }, + "ECC_NIST_EDWARDS25519": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_EDWARDS25519" + } + }, + "ML_KEM_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_512" + } + }, + "ML_KEM_768": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_768" + } + }, + "ML_KEM_1024": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_1024" + } + } + } + }, + "com.amazonaws.kms#DataKeySpec": { + "type": "enum", + "members": { + "AES_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AES_256" + } + }, + "AES_128": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AES_128" + } + } + } + }, + "com.amazonaws.kms#DateType": { + "type": "timestamp" + }, + "com.amazonaws.kms#Decapsulate": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DecapsulateRequest" + }, + "output": { + "target": "com.amazonaws.kms#DecapsulateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidCiphertextException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Recovers the shared secret that was encapsulated with the public key of an ML-KEM KMS key.\n Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM), specified in FIPS 203 on the NIST website, is a\n post-quantum algorithm for establishing a shared secret between two parties. For an example \n of how two parties establish a shared secret over an insecure channel using ML-KEM, see \n ML-KEM\n keys in KMS in the Key Management Service Developer Guide.

\n

The Decapsulate operation is not available in China Regions.

\n

\n Decapsulate returns the shared secret as a 32-byte value. You can use it directly\n as key material, or run it through a key derivation function to derive multiple keys and nonces.

\n \n

\n Decapsulate returns an InvalidCiphertextException when the\n length of the SharedSecretCiphertextBlob is inconsistent with the ML-KEM key\n spec. In all other cases, Decapsulate returns a 32-byte pseudo-random\n value. This is true even when the SharedSecretCiphertextBlob was created using\n a different ML-KEM key or altered from its original value. This behavior is a security\n feature called implicit rejection that helps protect against\n chosen-ciphertext attacks.

\n

Because a response does not indicate that the ciphertext and key are valid, confirm the\n two parties derived the same shared secret before using it.

\n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:Decapsulate (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To recover a shared secret from its encapsulated ciphertext", + "documentation": "Recovers a shared secret from its encapsulated ciphertext (SharedSecretCiphertextBlob) using the private key in an asymmetric ML-KEM KMS key. Your peer calls Encapsulate to generate the shared secret and ciphertext.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "SharedSecretCiphertextBlob": "", + "EncapsulationAlgorithm": "ML_KEM" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "SharedSecret": "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=", + "EncapsulationAlgorithm": "ML_KEM" + } + } + ] + } + }, + "com.amazonaws.kms#DecapsulateRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the asymmetric ML-KEM KMS key whose public key was used to produce the\n encapsulated shared secret. KMS uses the private key in the specified key pair to decapsulate\n the shared secret.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "SharedSecretCiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encapsulated (ciphertext) form of the shared secret to recover. This is the\n SharedSecretCiphertextBlob value that the Encapsulate operation\n returns. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "smithy.api#required": {} + } + }, + "EncapsulationAlgorithm": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the key encapsulation algorithm used to recover the shared secret. The only valid\n value is ML_KEM.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DecapsulateResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the ML-KEM KMS key used to decapsulate the shared secret.

" + } + }, + "SharedSecret": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The plaintext shared secret recovered from the encapsulated form. It is a 32-byte value that\n matches the shared secret held by the encapsulating party. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "EncapsulationAlgorithm": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The key encapsulation algorithm used to recover the shared secret.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#Decrypt": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DecryptRequest" + }, + "output": { + "target": "com.amazonaws.kms#DecryptResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#IncorrectKeyException" + }, + { + "target": "com.amazonaws.kms#InvalidCiphertextException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Decrypts ciphertext that was encrypted by a KMS key using any of the following\n operations:

\n \n

You can use this operation to decrypt ciphertext that was encrypted under a symmetric\n encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you\n must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext.\n For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

The Decrypt operation also decrypts ciphertext that was encrypted outside of\n KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric\n ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption.\n These libraries return a ciphertext format that is incompatible with KMS.

\n

If the ciphertext was encrypted under a symmetric encryption KMS key, the\n KeyId parameter is optional. KMS can get this information from metadata that\n it adds to the symmetric ciphertext blob. This feature adds durability to your implementation\n by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even\n if they've lost track of the key ID. However, specifying the KMS key is always recommended as\n a best practice. When you use the KeyId parameter to specify a KMS key, KMS\n only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key,\n the Decrypt operation fails. This practice ensures that you use the KMS key that\n you intend.

\n

Whenever possible, use key policies to give users permission to call the\n Decrypt operation on a particular KMS key, instead of using IAM policies.\n Otherwise, you might create an IAM policy that gives the user Decrypt\n permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys\n in other accounts if the key policy for the cross-account KMS key permits it. If you must use\n an IAM policy for Decrypt permissions, limit the user to particular KMS keys or\n particular trusted accounts. For details, see Best practices for IAM\n policies in the Key Management Service Developer Guide.

\n

\n Decrypt also supports Amazon Web Services Nitro Enclaves and NitroTPM, which\n provide attested environments in Amazon EC2. To call Decrypt for a Nitro enclave or\n NitroTPM, use the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK. Use the Recipient\n parameter to provide the attestation document for the attested environment. Instead of the\n plaintext data, the response includes the plaintext data encrypted with the public key from\n the attestation document (CiphertextForRecipient). For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To specify a KMS key\n in a different Amazon Web Services account, use the key ARN or alias\n ARN. A short key ID is also acceptable\n when decrypting symmetric ciphertexts, though using a full key ARN is recommended\n to be more explicit about the intended KMS key.

\n

\n Required permissions: kms:Decrypt (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To decrypt data with an asymmetric encryption KMS key", + "documentation": "The following example decrypts data that was encrypted with an asymmetric encryption KMS key. When the KMS encryption key is asymmetric, you must specify the KMS key ID and the encryption algorithm that was used to encrypt the data.", + "input": { + "CiphertextBlob": "", + "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", + "EncryptionAlgorithm": "RSAES_OAEP_SHA_256" + }, + "output": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "Plaintext": "", + "EncryptionAlgorithm": "RSAES_OAEP_SHA_256" + } + }, + { + "title": "To decrypt data with a symmetric encryption KMS key", + "documentation": "The following example decrypts data that was encrypted with a symmetric encryption KMS key. The KeyId is not required when decrypting with a symmetric encryption key, but it is a best practice.", + "input": { + "CiphertextBlob": "", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "Plaintext": "", + "EncryptionAlgorithm": "SYMMETRIC_DEFAULT", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#DecryptRequest": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

Ciphertext to be decrypted. The blob includes metadata.

\n

This parameter is required in all cases except when DryRun is true and DryRunModifiers is set to IGNORE_CIPHERTEXT.

" + } + }, + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context to use when decrypting the data.\n An encryption context is valid only for cryptographic operations with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context.

\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the KMS key that KMS uses to decrypt the ciphertext.

\n

Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a\n different KMS key, the Decrypt operation throws an\n IncorrectKeyException.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key or when DryRun is true and DryRunModifiers is set to IGNORE_CIPHERTEXT. If you used a symmetric encryption KMS key, KMS can get the KMS key from metadata that\n it adds to the symmetric ciphertext blob. However, it is always recommended as a best\n practice. This practice ensures that you use the KMS key that you intend.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you should use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + } + }, + "EncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify\n the same algorithm that was used to encrypt the data. If you specify a different algorithm,\n the Decrypt operation fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key. The default value, SYMMETRIC_DEFAULT, represents the only supported\n algorithm that is valid for symmetric encryption KMS keys.

" + } + }, + "Recipient": { + "target": "com.amazonaws.kms#RecipientInfo", + "traits": { + "smithy.api#documentation": "

A signed attestation\n document from an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to\n use with the public key in the attestation document. The only valid encryption algorithm is\n RSAES_OAEP_SHA_256.

\n

This parameter supports the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK for\n Amazon Web Services Nitro Enclaves. It supports any Amazon Web Services SDK for Amazon Web Services NitroTPM.

\n

When you use this parameter, instead of returning the plaintext data, KMS encrypts the\n plaintext data with the public key in the attestation document, and returns the resulting\n ciphertext in the CiphertextForRecipient field in the response. This ciphertext\n can be decrypted only with the private key in the attested environment. The\n Plaintext field in the response is null or empty.

\n

For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + }, + "DryRunModifiers": { + "target": "com.amazonaws.kms#DryRunModifierList", + "traits": { + "smithy.api#documentation": "

Specifies the modifiers to apply to the dry run operation. DryRunModifiers is an optional parameter that only applies when DryRun is \n set to true.

\n

When set to IGNORE_CIPHERTEXT, KMS performs only authorization validation without ciphertext validation. This allows you to test permissions \n without requiring a valid ciphertext blob.

\n

To learn more about how to use this parameter, see Testing your \n permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DecryptResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to decrypt the ciphertext.

" + } + }, + "Plaintext": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

Decrypted plaintext data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

If the response includes the CiphertextForRecipient field, the\n Plaintext field is null or empty.

" + } + }, + "EncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The encryption algorithm that was used to decrypt the ciphertext.

" + } + }, + "CiphertextForRecipient": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The plaintext data encrypted with the public key from the attestation document. This\n ciphertext can be decrypted only by using a private key from the attested environment.

\n

This field is included in the response only when the Recipient parameter in\n the request includes a valid attestation document from an Amazon Web Services Nitro enclave or NitroTPM.\n For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to decrypt the ciphertext. This field is present\n only when the operation uses a symmetric encryption KMS key. This field is omitted if the\n request includes the Recipient parameter.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DeleteAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DeleteAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified alias.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

Because an alias is not a property of a KMS key, you can delete and change the aliases of\n a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the\n DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

\n

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to\n create a new alias. To associate an existing alias with a different KMS key, call UpdateAlias.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To delete an alias", + "documentation": "The following example deletes the specified alias.", + "input": { + "AliasName": "alias/ExampleAlias" + } + } + ] + } + }, + "com.amazonaws.kms#DeleteAliasRequest": { + "type": "structure", + "members": { + "AliasName": { + "target": "com.amazonaws.kms#AliasNameType", + "traits": { + "smithy.api#documentation": "

The alias to be deleted. The alias name must begin with alias/ followed by\n the alias name, such as alias/ExampleAlias.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DeleteCustomKeyStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DeleteCustomKeyStoreRequest" + }, + "output": { + "target": "com.amazonaws.kms#DeleteCustomKeyStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CustomKeyStoreHasCMKsException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom key store. This operation does not affect any backing elements of the\n custom key store. It does not delete the CloudHSM cluster that is associated with an CloudHSM key\n store, or affect any users or keys in the cluster. For an external key store, it does not\n affect the external key store proxy, external key manager, or any external keys.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n

The custom key store that you delete cannot contain any KMS keys. Before deleting the key store,\n verify that you will never need to use any of the KMS keys in the key store for any\n cryptographic operations. Then, use ScheduleKeyDeletion to delete the KMS keys from the\n key store. After the required waiting period expires and all KMS keys are deleted from the\n custom key store, use DisconnectCustomKeyStore to disconnect the key store\n from KMS. Then, you can delete the custom key store.

\n

For keys in an CloudHSM key store, the ScheduleKeyDeletion operation makes a\n best effort to delete the key material from the associated cluster. However, you might need to\n manually delete the orphaned key\n material from the cluster and its backups. KMS never creates, manages, or deletes\n cryptographic keys in the external key manager associated with an external key store. You must\n manage them using your external key manager tools.

\n

Instead of deleting the custom key store, consider using the DisconnectCustomKeyStore operation to disconnect the custom key store from its\n backing key store. While the key store is disconnected, you cannot create or use the KMS keys\n in the key store. But, you do not need to delete KMS keys and you can reconnect a disconnected\n custom key store at any time.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DeleteCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To delete a custom key store from AWS KMS", + "documentation": "This example deletes a custom key store from AWS KMS. This operation does not affect the backing key store, such as a CloudHSM cluster, external key store proxy, or your external key manager. This operation doesn't return any data. To verify that the operation was successful, use the DescribeCustomKeyStores operation.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.kms#DeleteCustomKeyStoreRequest": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Enter the ID of the custom key store you want to delete. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DeleteCustomKeyStoreResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DeleteImportedKeyMaterial": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DeleteImportedKeyMaterialRequest" + }, + "output": { + "target": "com.amazonaws.kms#DeleteImportedKeyMaterialResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes key material that was previously imported. This operation makes the specified KMS\n key temporarily unusable. To restore the usability of the KMS key, reimport the same key\n material. For more information about importing key material into KMS, see Importing Key Material\n in the Key Management Service Developer Guide.

\n

When the specified KMS key is in the PendingDeletion state, this operation\n does not change the KMS key's state. Otherwise, it changes the KMS key's state to\n PendingImport.

\n

\n Considerations for multi-Region symmetric encryption keys\n

\n
    \n
  • \n

    When you delete the key material of a primary Region key that is in\n PENDING_ROTATION or PENDING_MULTI_REGION_IMPORT_AND_ROTATIONstate,\n you'll also be deleting the key materials for the replica Region keys.

    \n
  • \n
  • \n

    If you delete any key material of a replica Region key, the primary Region key and\n other replica Region keys remain unchanged.

    \n
  • \n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:DeleteImportedKeyMaterial (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To delete imported key material", + "documentation": "The following example deletes the imported key material from the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#DeleteImportedKeyMaterialRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key from which you are deleting imported key material. The\n Origin of the KMS key must be EXTERNAL.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the imported key material you are deleting.

\n \n

If no KeyMaterialId is specified, KMS deletes the current key material.

\n
\n

To get the list of key material IDs associated with a KMS key, use ListKeyRotations.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DeleteImportedKeyMaterialResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key from which the key material was deleted.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdResponseType", + "traits": { + "smithy.api#documentation": "

Identifies the deleted key material.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DependencyTimeoutException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DependencyTimeout", + "httpResponseCode": 503 + }, + "smithy.api#documentation": "

The system timed out while trying to fulfill the request. You can retry the\n request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 503 + } + }, + "com.amazonaws.kms#DeriveSharedSecret": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DeriveSharedSecretRequest" + }, + "output": { + "target": "com.amazonaws.kms#DeriveSharedSecretResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Derives a shared secret using a key agreement algorithm.

\n \n

You must use an asymmetric NIST-standard elliptic curve (ECC) or SM2 (China Regions\n only) KMS key pair with a KeyUsage value of KEY_AGREEMENT to call\n DeriveSharedSecret.

\n
\n

DeriveSharedSecret uses the Elliptic Curve Cryptography Cofactor Diffie-Hellman Primitive (ECDH) to establish a\n key agreement between two peers by deriving a shared secret from their elliptic curve\n public-private key pairs. You can use the raw shared secret that DeriveSharedSecret returns to\n derive a symmetric key that can encrypt and decrypt data that is sent between the two peers,\n or that can generate and verify HMACs. KMS recommends that you follow NIST\n recommendations for key derivation when using the raw shared secret to derive a\n symmetric key.

\n

The following workflow demonstrates how to establish key agreement over an insecure\n communication channel using DeriveSharedSecret.

\n
    \n
  1. \n

    \n Alice calls CreateKey to create an\n asymmetric KMS key pair with a KeyUsage value of\n KEY_AGREEMENT.

    \n

    The asymmetric KMS key must use a NIST-standard elliptic curve (ECC) or SM2 (China\n Regions only) key spec.

    \n
  2. \n
  3. \n

    \n Bob creates an elliptic curve key pair.

    \n

    Bob can call CreateKey to create an asymmetric KMS key pair or\n generate a key pair outside of KMS. Bob's key pair must use the same NIST-standard\n elliptic curve (ECC) or SM2 (China Regions ony) curve as Alice.

    \n
  4. \n
  5. \n

    Alice and Bob exchange their public keys through an\n insecure communication channel (like the internet).

    \n

    Use GetPublicKey to download the public key of your asymmetric KMS\n key pair.

    \n \n

    KMS strongly recommends verifying that the public key you receive came from the\n expected party before using it to derive a shared secret.

    \n
    \n
  6. \n
  7. \n

    \n Alice calls DeriveSharedSecret.

    \n

    KMS uses the private key from the KMS key pair generated in Step 1, Bob's public key, and the Elliptic Curve Cryptography Cofactor\n Diffie-Hellman Primitive to derive the shared secret. The private key in your KMS key pair\n never leaves KMS unencrypted. DeriveSharedSecret returns the raw shared secret.

    \n
  8. \n
  9. \n

    \n Bob uses the Elliptic Curve Cryptography Cofactor\n Diffie-Hellman Primitive to calculate the same raw secret using his private key and\n Alice's public key.

    \n
  10. \n
\n

To derive a shared secret you must provide a key agreement algorithm, the private key of\n the caller's asymmetric NIST-standard elliptic curve or SM2 (China Regions only) KMS key\n pair, and the public key from your peer's NIST-standard elliptic curve or SM2 (China\n Regions only) key pair. The public key can be from another asymmetric KMS key pair or from a\n key pair generated outside of KMS, but both key pairs must be on the same elliptic\n curve.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:DeriveSharedSecret (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To derive a shared secret", + "documentation": "The following example derives a shared secret using a key agreement algorithm.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyAgreementAlgorithm": "ECDH", + "PublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag" + }, + "output": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", + "KeyAgreementAlgorithm": "ECDH", + "KeyOrigin": "AWS_KMS" + } + } + ] + } + }, + "com.amazonaws.kms#DeriveSharedSecretRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies an asymmetric NIST-standard ECC or SM2 (China Regions only) KMS key. KMS\n uses the private key in the specified key pair to derive the shared secret. The key usage of\n the KMS key must be KEY_AGREEMENT. To find the KeyUsage of a KMS\n key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "KeyAgreementAlgorithm": { + "target": "com.amazonaws.kms#KeyAgreementAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the key agreement algorithm used to derive the shared secret. The only valid\n value is ECDH.

", + "smithy.api#required": {} + } + }, + "PublicKey": { + "target": "com.amazonaws.kms#PublicKeyType", + "traits": { + "smithy.api#documentation": "

Specifies the public key in your peer's NIST-standard elliptic curve (ECC) or SM2\n (China Regions only) key pair.

\n

The public key must be a DER-encoded X.509 public key, also known as\n SubjectPublicKeyInfo (SPKI), as defined in RFC 5280.

\n

\n GetPublicKey returns the public key of an asymmetric KMS key pair in the\n required DER-encoded format.

\n \n

If you use Amazon Web Services CLI version 1, you must provide the DER-encoded X.509 public key in a file.\n Otherwise, the Amazon Web Services CLI Base64-encodes the public key a second time, resulting in a\n ValidationException.

\n
\n

You can specify the public key as binary data in a file using fileb\n (fileb://) or in-line using a Base64 encoded string.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + }, + "Recipient": { + "target": "com.amazonaws.kms#RecipientInfo", + "traits": { + "smithy.api#documentation": "

A signed attestation document from\n an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to use with the public key in\n the attestation document. The only valid encryption algorithm is\n RSAES_OAEP_SHA_256.

\n

This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves or\n Amazon Web Services NitroTPM. To call DeriveSharedSecret generate an attestation document use either\n Amazon Web Services Nitro Enclaves SDK for an Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM tools for\n Amazon Web Services NitroTPM. Then use the Recipient parameter from any Amazon Web Services SDK to provide the\n attestation document for the attested environment.

\n

When you use this parameter, instead of returning a plaintext copy of the shared secret,\n KMS encrypts the plaintext shared secret under the public key in the attestation document,\n and returns the resulting ciphertext in the CiphertextForRecipient field in the\n response. This ciphertext can be decrypted only with the private key in the attested\n environment. The CiphertextBlob field in the response contains the encrypted\n shared secret derived from the KMS key specified by the KeyId parameter and\n public key specified by the PublicKey parameter. The SharedSecret\n field in the response is null or empty.

\n

For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DeriveSharedSecretResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key used to derive the shared secret.

" + } + }, + "SharedSecret": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The raw secret derived from the specified key agreement algorithm, private key in the\n asymmetric KMS key, and your peer's public key.

\n

If the response includes the CiphertextForRecipient field, the\n SharedSecret field is null or empty.

" + } + }, + "CiphertextForRecipient": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The plaintext shared secret encrypted with the public key from the attestation document.\n This ciphertext can be decrypted only by using a private key from the attested environment.

\n

This field is included in the response only when the Recipient parameter in\n the request includes a valid attestation document from an Amazon Web Services Nitro enclave or NitroTPM.\n For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "KeyAgreementAlgorithm": { + "target": "com.amazonaws.kms#KeyAgreementAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Identifies the key agreement algorithm used to derive the shared secret.

" + } + }, + "KeyOrigin": { + "target": "com.amazonaws.kms#OriginType", + "traits": { + "smithy.api#documentation": "

The source of the key material for the specified KMS key.

\n

When this value is AWS_KMS, KMS created the key material. When this value\n is EXTERNAL, the key material was imported or the KMS key doesn't have any key\n material.

\n

The only valid values for DeriveSharedSecret are AWS_KMS and\n EXTERNAL. DeriveSharedSecret does not support KMS keys with a\n KeyOrigin value of AWS_CLOUDHSM or\n EXTERNAL_KEY_STORE.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DescribeCustomKeyStores": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DescribeCustomKeyStoresRequest" + }, + "output": { + "target": "com.amazonaws.kms#DescribeCustomKeyStoresResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information about custom key stores in the account and Region.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n

By default, this operation returns information about all custom key stores in the account\n and Region. To get only information about a particular custom key store, use either the\n CustomKeyStoreName or CustomKeyStoreId parameter (but not\n both).

\n

To determine whether the custom key store is connected to its CloudHSM cluster or external\n key store proxy, use the ConnectionState element in the response. If an attempt\n to connect the custom key store failed, the ConnectionState value is\n FAILED and the ConnectionErrorCode element in the response\n indicates the cause of the failure. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

Custom key stores have a DISCONNECTED connection state if the key store has\n never been connected or you used the DisconnectCustomKeyStore operation to\n disconnect it. Otherwise, the connection state is CONNECTED. If your custom key store\n connection state is CONNECTED but you are having trouble using it, verify that\n the backing store is active and available. For an CloudHSM key store, verify that the associated\n CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if\n any. For an external key store, verify that the external key store proxy and its associated\n external key manager are reachable and enabled.

\n

For help repairing your CloudHSM key store, see the Troubleshooting CloudHSM key stores. For help\n repairing your external key store, see the Troubleshooting external key stores.\n Both topics are in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DescribeCustomKeyStores (IAM policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To get detailed information about custom key stores in the account and Region", + "documentation": "This example gets detailed information about all AWS KMS custom key stores in an AWS account and Region. To get all key stores, do not enter a custom key store name or ID.", + "output": { + "CustomKeyStores": [] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "CustomKeyStores", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#DescribeCustomKeyStoresRequest": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Gets only information about the specified custom key store. Enter the key store ID.

\n

By default, this operation gets information about all custom key stores in the account and\n Region. To limit the output to a particular custom key store, provide either the\n CustomKeyStoreId or CustomKeyStoreName parameter, but not\n both.

" + } + }, + "CustomKeyStoreName": { + "target": "com.amazonaws.kms#CustomKeyStoreNameType", + "traits": { + "smithy.api#documentation": "

Gets only information about the specified custom key store. Enter the friendly name of the\n custom key store.

\n

By default, this operation gets information about all custom key stores in the account and\n Region. To limit the output to a particular custom key store, provide either the\n CustomKeyStoreId or CustomKeyStoreName parameter, but not\n both.

" + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DescribeCustomKeyStoresResponse": { + "type": "structure", + "members": { + "CustomKeyStores": { + "target": "com.amazonaws.kms#CustomKeyStoresList", + "traits": { + "smithy.api#documentation": "

Contains metadata about each custom key store.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DescribeKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DescribeKeyRequest" + }, + "output": { + "target": "com.amazonaws.kms#DescribeKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides detailed information about a KMS key. You can run DescribeKey on a\n customer\n managed key or an Amazon Web Services managed key.

\n

This detailed information includes the key ARN, creation date (and deletion date, if\n applicable), the key state, and the origin and expiration date (if any) of the key material.\n It includes fields, like KeySpec, that help you distinguish different types of\n KMS keys. It also displays the key usage (encryption, signing, or generating and verifying\n MACs) and the algorithms that the KMS key supports.

\n

For multi-Region keys, DescribeKey displays the primary key and all\n related replica keys. For KMS keys in CloudHSM key stores, it includes information\n about the key store, such as the key store ID and the CloudHSM cluster ID. For KMS keys in external key stores,\n it includes the custom key store ID and the ID of the external key.

\n

\n DescribeKey does not return the following information:

\n
    \n
  • \n

    Aliases associated with the KMS key. To get this information, use ListAliases.

    \n
  • \n
  • \n

    Whether automatic key rotation is enabled on the KMS key. To get this information, use\n GetKeyRotationStatus. Also, some key states prevent a KMS key from\n being automatically rotated. For details, see How key rotation\n works in the Key Management Service Developer Guide.

    \n
  • \n
  • \n

    Tags on the KMS key. To get this information, use ListResourceTags.

    \n
  • \n
  • \n

    Key policies and grants on the KMS key. To get this information, use GetKeyPolicy and ListGrants.

    \n
  • \n
\n

In general, DescribeKey is a non-mutating operation. It returns data about\n KMS keys, but doesn't change them. However, Amazon Web Services services use DescribeKey to\n create Amazon Web Services\n managed keys from a predefined Amazon Web Services alias with no key\n ID.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:DescribeKey (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To get details about a KMS key in an AWS CloudHSM key store", + "documentation": "The following example gets the metadata of a KMS key in an AWS CloudHSM key store.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyMetadata": { + "AWSAccountId": "123456789012", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": 1646160362.664, + "Description": "CloudHSM key store test key", + "Enabled": true, + "MultiRegion": false, + "KeyManager": "CUSTOMER", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "Origin": "AWS_CLOUDHSM", + "CloudHsmClusterId": "cluster-234abcdefABC", + "CustomKeyStoreId": "cks-1234567890abcdef0", + "KeySpec": "SYMMETRIC_DEFAULT", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ] + } + } + }, + { + "title": "To get details about a KMS key in an external key store", + "documentation": "The following example gets the metadata of a KMS key in an external key store.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyMetadata": { + "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "AWSAccountId": "123456789012", + "CreationDate": 1646160362.664, + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "CustomKeyStoreId": "cks-1234567890abcdef0", + "Description": "External key store test key", + "Enabled": true, + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", + "KeySpec": "SYMMETRIC_DEFAULT", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "MultiRegion": false, + "Origin": "EXTERNAL_KEY_STORE", + "XksKeyConfiguration": { + "Id": "bb8562717f809024" + } + } + } + }, + { + "title": "To get details about a multi-Region key", + "documentation": "The following example gets metadata for a multi-Region replica key. This multi-Region key is a symmetric encryption key. DescribeKey returns information about the primary key and all of its replicas.", + "input": { + "KeyId": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab" + }, + "output": { + "KeyMetadata": { + "MultiRegion": true, + "AWSAccountId": "111122223333", + "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "CreationDate": 1586329200.918, + "Description": "", + "Enabled": true, + "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", + "KeyManager": "CUSTOMER", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "Origin": "AWS_KMS", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ], + "MultiRegionConfiguration": { + "MultiRegionKeyType": "PRIMARY", + "PrimaryKey": { + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "us-west-2" + }, + "ReplicaKeys": [ + { + "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "eu-west-1" + }, + { + "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "ap-northeast-1" + }, + { + "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "sa-east-1" + } + ] + } + } + } + }, + { + "title": "To get details about an HMAC KMS key", + "documentation": "The following example gets the metadata of an HMAC KMS key.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyMetadata": { + "AWSAccountId": "123456789012", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": 1566160362.664, + "Enabled": true, + "Description": "Development test key", + "KeyUsage": "GENERATE_VERIFY_MAC", + "KeyState": "Enabled", + "Origin": "AWS_KMS", + "KeyManager": "CUSTOMER", + "CustomerMasterKeySpec": "HMAC_256", + "MacAlgorithms": [ + "HMAC_SHA_256" + ], + "MultiRegion": false + } + } + }, + { + "title": "To get details about an RSA asymmetric KMS key", + "documentation": "The following example gets metadata for an asymmetric RSA KMS key used for signing and verification.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyMetadata": { + "AWSAccountId": "111122223333", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": 1571767572.317, + "CustomerMasterKeySpec": "RSA_2048", + "Enabled": false, + "Description": "", + "KeyState": "Disabled", + "Origin": "AWS_KMS", + "MultiRegion": false, + "KeyManager": "CUSTOMER", + "KeySpec": "RSA_2048", + "KeyUsage": "SIGN_VERIFY", + "SigningAlgorithms": [ + "RSASSA_PKCS1_V1_5_SHA_256", + "RSASSA_PKCS1_V1_5_SHA_384", + "RSASSA_PKCS1_V1_5_SHA_512", + "RSASSA_PSS_SHA_256", + "RSASSA_PSS_SHA_384", + "RSASSA_PSS_SHA_512" + ] + } + } + } + ] + } + }, + "com.amazonaws.kms#DescribeKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Describes the specified KMS key.

\n

If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), KMS associates\n the alias with an Amazon Web Services managed key and returns its KeyId and Arn in the\n response.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DescribeKeyResponse": { + "type": "structure", + "members": { + "KeyMetadata": { + "target": "com.amazonaws.kms#KeyMetadata", + "traits": { + "smithy.api#documentation": "

Metadata associated with the key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 8192 + } + } + }, + "com.amazonaws.kms#DisableKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DisableKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the state of a KMS key to disabled. This change temporarily prevents use of the KMS\n key for cryptographic operations.

\n

The KMS key that you use for this operation must be in a compatible key state. For more\n information about how key state affects the use of a KMS key, see Key states of KMS keys in the\n \n Key Management Service Developer Guide\n .

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:DisableKey (key policy)

\n

\n Related operations: EnableKey\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To disable a KMS key", + "documentation": "The following example disables the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#DisableKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key to disable.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DisableKeyRotation": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DisableKeyRotationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables automatic rotation of the key material of the specified symmetric encryption KMS\n key.

\n

Automatic key rotation is supported only on symmetric encryption KMS keys.\n You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

You can enable (EnableKeyRotation) and disable automatic rotation of the\n key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not\n configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS\n keys varies.

\n \n

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three\n years to every year. For details, see EnableKeyRotation.

\n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To disable automatic rotation of key material", + "documentation": "The following example disables automatic annual rotation of the key material for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#DisableKeyRotationRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation\n of asymmetric KMS keys, HMAC\n KMS keys, KMS keys with imported key material, or KMS keys in a\n custom key store.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DisabledException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "Disabled", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key is not enabled.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.kms#DisconnectCustomKeyStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#DisconnectCustomKeyStoreRequest" + }, + "output": { + "target": "com.amazonaws.kms#DisconnectCustomKeyStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

Disconnects the custom key store from its backing key store. This operation disconnects an\n CloudHSM key store from its associated CloudHSM cluster or disconnects an external key store from\n the external key store proxy that communicates with your external key manager.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n

While a custom key store is disconnected, you can manage the custom key store and its KMS\n keys, but you cannot create or use its KMS keys. You can reconnect the custom key store at any\n time.

\n \n

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will\n fail. This action can prevent users from storing and accessing sensitive data.

\n
\n

When you disconnect a custom key store, its ConnectionState changes to\n Disconnected. To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the\n ConnectCustomKeyStore operation.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To disconnect a custom key store from its CloudHSM cluster", + "documentation": "This example disconnects an AWS KMS custom key store from its backing key store. For an AWS CloudHSM key store, it disconnects the key store from its AWS CloudHSM cluster. For an external key store, it disconnects the key store from the external key store proxy that communicates with your external key manager. This operation doesn't return any data. To verify that the custom key store is disconnected, use the DescribeCustomKeyStores operation.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.kms#DisconnectCustomKeyStoreRequest": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Enter the ID of the custom key store you want to disconnect. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#DisconnectCustomKeyStoreResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#DryRunModifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#DryRunModifierType" + } + }, + "com.amazonaws.kms#DryRunModifierType": { + "type": "enum", + "members": { + "IGNORE_CIPHERTEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE_CIPHERTEXT" + } + } + } + }, + "com.amazonaws.kms#DryRunOperationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DryRunOperation", + "httpResponseCode": 412 + }, + "smithy.api#documentation": "

The request was rejected because the DryRun parameter was specified.

", + "smithy.api#error": "client", + "smithy.api#httpError": 412 + } + }, + "com.amazonaws.kms#EnableKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#EnableKeyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets the key state of a KMS key to enabled. This allows you to use the KMS key for\n cryptographic operations.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:EnableKey (key policy)

\n

\n Related operations: DisableKey\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To enable a KMS key", + "documentation": "The following example enables the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#EnableKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key to enable.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#EnableKeyRotation": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#EnableKeyRotationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables automatic rotation of the key material of the specified symmetric encryption KMS\n key.

\n

By default, when you enable automatic rotation of a customer managed KMS key, KMS\n rotates the key material of the KMS key one year (approximately 365 days) from the enable date\n and every year thereafter. You can use the optional RotationPeriodInDays\n parameter to specify a custom rotation period when you enable key rotation, or you can use\n RotationPeriodInDays to modify the rotation period of a key that you previously\n enabled automatic key rotation on.

\n

You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer managed KMS key, use\n the DisableKeyRotation operation. You can use the GetKeyRotationStatus operation to identify any in progress rotations. You can\n use the ListKeyRotations operation to view the details of completed\n rotations.

\n

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

You cannot enable or disable automatic rotation of Amazon Web Services managed KMS keys. KMS\n always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS\n keys is managed by the Amazon Web Services service that owns the key.

\n \n

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three\n years (approximately 1,095 days) to every year (approximately 365 days).

\n

New Amazon Web Services managed keys are automatically rotated one year after they are created, and\n approximately every year thereafter.

\n

Existing Amazon Web Services managed keys are automatically rotated one year after their most recent\n rotation, and every year thereafter.

\n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To enable automatic rotation of key material", + "documentation": "The following example enables automatic rotation with a rotation period of 365 days for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "RotationPeriodInDays": 365 + } + } + ] + } + }, + "com.amazonaws.kms#EnableKeyRotationRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies a symmetric encryption KMS key. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "RotationPeriodInDays": { + "target": "com.amazonaws.kms#RotationPeriodInDaysType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify a custom period of time between each rotation date. If no\n value is specified, the default value is 365 days.

\n

The rotation period defines the number of days after you enable automatic key rotation\n that KMS will rotate your key material, and the number of days between each automatic\n rotation thereafter.

\n

You can use the \n kms:RotationPeriodInDays\n condition key to further constrain the\n values that principals can specify in the RotationPeriodInDays parameter.

\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#Encapsulate": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#EncapsulateRequest" + }, + "output": { + "target": "com.amazonaws.kms#EncapsulateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a shared secret and its encapsulated (ciphertext) form using the public key of\n an ML-KEM KMS key pair. Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM), specified in FIPS 203 on the NIST website, is a\n post-quantum algorithm for establishing a shared secret between two parties.

\n

For an example of how two parties establish a shared secret over an insecure channel using\n ML-KEM, see ML-KEM keys in\n KMS in the Key Management Service Developer Guide.

\n

The Encapsulate operation is not available in China Regions.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:Encapsulate (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate a shared secret and its encapsulated ciphertext", + "documentation": "Generates a shared secret and its encapsulated ciphertext (SharedSecretCiphertextBlob) using the public key in an asymmetric ML-KEM KMS key. Send the ciphertext to your peer, who calls Decapsulate to recover the same shared secret.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "EncapsulationAlgorithm": "ML_KEM" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "SharedSecret": "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=", + "SharedSecretCiphertextBlob": "", + "EncapsulationAlgorithm": "ML_KEM" + } + } + ] + } + }, + "com.amazonaws.kms#EncapsulateRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies an asymmetric ML-KEM KMS key. KMS uses the public key in the specified key pair\n to encapsulate the shared secret. ML-KEM KMS keys have a KeySpec value of ML_KEM_512, \n ML_KEM_768, or ML_KEM_1024 and a KeyUsage value of \n ENCAPSULATE_DECAPSULATE. To find the KeySpec and KeyUsage of a \n KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "EncapsulationAlgorithm": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the key encapsulation algorithm used to generate the shared secret and its\n encapsulated form. The only valid value is ML_KEM.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#EncapsulateResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the ML-KEM KMS key used to encapsulate the shared secret.

" + } + }, + "SharedSecret": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The plaintext shared secret. It is a 32-byte cryptographically random value that both\n parties can use directly as key material or pass through a key derivation function to generate\n multiple keys and nonces. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "SharedSecretCiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encapsulated form of the shared secret. Pass this value to the Decapsulate operation to recover the shared secret. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.\n The length of SharedSecretCiphertextBlob depends on the ML-KEM key spec.\n Before Base64 encoding, the encapsulated shared secret is 768 bytes for ML_KEM_512,\n 1088 bytes for ML_KEM_768, and 1568 bytes for ML_KEM_1024.\n

" + } + }, + "EncapsulationAlgorithm": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The key encapsulation algorithm used to generate the shared secret.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#EncapsulationAlgorithmSpec": { + "type": "enum", + "members": { + "ML_KEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM" + } + } + } + }, + "com.amazonaws.kms#EncapsulationAlgorithmSpecList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpec" + } + }, + "com.amazonaws.kms#Encrypt": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#EncryptRequest" + }, + "output": { + "target": "com.amazonaws.kms#EncryptResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a symmetric or\n asymmetric KMS key with a KeyUsage of ENCRYPT_DECRYPT.

\n

You can use this operation to encrypt small amounts of arbitrary data, such as a personal\n identifier or database password, or other sensitive information. You don't need to use the\n Encrypt operation to encrypt a data key. The GenerateDataKey\n and GenerateDataKeyPair operations return a plaintext data key and an\n encrypted copy of that data key.

\n

If you use a symmetric encryption KMS key, you can use an encryption context to add\n additional security to your encryption operation. If you specify an\n EncryptionContext when encrypting data, you must specify the same encryption\n context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to\n decrypt fails with an InvalidCiphertextException. For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

\n

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n algorithm must be compatible with the KMS key spec.

\n \n

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

\n

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

\n
\n

The maximum size of the data that you can encrypt varies with the type of KMS key and the\n encryption algorithm that you choose.

\n
    \n
  • \n

    Symmetric encryption KMS keys

    \n
      \n
    • \n

      \n SYMMETRIC_DEFAULT: 4096 bytes

      \n
    • \n
    \n
  • \n
  • \n

    \n RSA_2048\n

    \n
      \n
    • \n

      \n RSAES_OAEP_SHA_1: 214 bytes

      \n
    • \n
    • \n

      \n RSAES_OAEP_SHA_256: 190 bytes

      \n
    • \n
    \n
  • \n
  • \n

    \n RSA_3072\n

    \n
      \n
    • \n

      \n RSAES_OAEP_SHA_1: 342 bytes

      \n
    • \n
    • \n

      \n RSAES_OAEP_SHA_256: 318 bytes

      \n
    • \n
    \n
  • \n
  • \n

    \n RSA_4096\n

    \n
      \n
    • \n

      \n RSAES_OAEP_SHA_1: 470 bytes

      \n
    • \n
    • \n

      \n RSAES_OAEP_SHA_256: 446 bytes

      \n
    • \n
    \n
  • \n
  • \n

    \n SM2PKE: 1024 bytes (China Regions only)

    \n
  • \n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:Encrypt (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To encrypt data with a symmetric encryption KMS key", + "documentation": "The following example encrypts data with the specified symmetric encryption KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Plaintext": "" + }, + "output": { + "CiphertextBlob": "", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "EncryptionAlgorithm": "SYMMETRIC_DEFAULT" + } + }, + { + "title": "To encrypt data with an asymmetric encryption KMS key", + "documentation": "The following example encrypts data with the specified RSA asymmetric KMS key. When you encrypt with an asymmetric key, you must specify the encryption algorithm.", + "input": { + "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", + "Plaintext": "", + "EncryptionAlgorithm": "RSAES_OAEP_SHA_256" + }, + "output": { + "CiphertextBlob": "", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "EncryptionAlgorithm": "RSAES_OAEP_SHA_256" + } + } + ] + } + }, + "com.amazonaws.kms#EncryptRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key to use in the encryption operation. The KMS key must have a\n KeyUsage of ENCRYPT_DECRYPT. To find the KeyUsage of\n a KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "Plaintext": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

Data to be encrypted.

", + "smithy.api#required": {} + } + }, + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context that will be used to encrypt the data.\n An encryption context is valid only for cryptographic operations with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "EncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n The algorithm must be compatible with the KMS key that you specify.

\n

This parameter is required only for asymmetric KMS keys. The default value,\n SYMMETRIC_DEFAULT, is the algorithm used for symmetric encryption KMS keys. If\n you are using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

\n

The SM2PKE algorithm is only available in China Regions.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#EncryptResponse": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted plaintext. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to encrypt the plaintext.

" + } + }, + "EncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The encryption algorithm that was used to encrypt the plaintext.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#EncryptionAlgorithmSpec": { + "type": "enum", + "members": { + "SYMMETRIC_DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SYMMETRIC_DEFAULT" + } + }, + "RSAES_OAEP_SHA_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_OAEP_SHA_1" + } + }, + "RSAES_OAEP_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_OAEP_SHA_256" + } + }, + "SM2PKE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2PKE" + } + } + } + }, + "com.amazonaws.kms#EncryptionAlgorithmSpecList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec" + } + }, + "com.amazonaws.kms#EncryptionContextKey": { + "type": "string" + }, + "com.amazonaws.kms#EncryptionContextType": { + "type": "map", + "key": { + "target": "com.amazonaws.kms#EncryptionContextKey" + }, + "value": { + "target": "com.amazonaws.kms#EncryptionContextValue" + } + }, + "com.amazonaws.kms#EncryptionContextValue": { + "type": "string" + }, + "com.amazonaws.kms#ErrorMessageType": { + "type": "string" + }, + "com.amazonaws.kms#ExpirationModelType": { + "type": "enum", + "members": { + "KEY_MATERIAL_EXPIRES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_MATERIAL_EXPIRES" + } + }, + "KEY_MATERIAL_DOES_NOT_EXPIRE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_MATERIAL_DOES_NOT_EXPIRE" + } + } + } + }, + "com.amazonaws.kms#ExpiredImportTokenException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ExpiredImportTokenException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified import token is expired. Use GetParametersForImport to get a new import token and public key, use the new\n public key to encrypt the key material, and then try the request again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#GenerateDataKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateDataKeyRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateDataKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a unique symmetric data key for use outside of KMS. This operation returns a\n plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS\n key that you specify. The bytes in the plaintext key are random; they are not related to the\n caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and\n store the encrypted data key with the encrypted data.

\n

To generate a data key, specify the symmetric encryption KMS key that will be used to\n encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the\n type of your KMS key, use the DescribeKey operation.

\n

You must also specify the length of the data key. Use either the KeySpec or\n NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use\n the KeySpec parameter.

\n

To generate a 128-bit SM4 data key (China Regions only), specify a KeySpec\n value of AES_128 or a NumberOfBytes value of 16. The\n symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption\n key.

\n

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use\n the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure\n random byte string, use GenerateRandom.

\n

You can use an optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

\n GenerateDataKey also supports Amazon Web Services Nitro Enclaves, which provide an\n isolated compute environment in Amazon EC2. To call GenerateDataKey for an Amazon Web Services Nitro\n enclave or NitroTPM, use the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK. Use the\n Recipient parameter to provide the attestation document for the attested\n environment. GenerateDataKey returns a copy of the data key encrypted under the\n specified KMS key, as usual. But instead of a plaintext copy of the data key, the response\n includes a copy of the data key encrypted under the public key from the attestation document\n (CiphertextForRecipient). For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n How to use your data key\n

\n

We recommend that you use the following pattern to encrypt data locally in your\n application. You can write your own code or use a client-side encryption library, such as the\n Amazon Web Services Encryption SDK, the\n Amazon DynamoDB Encryption Client,\n or Amazon S3\n client-side encryption to do these tasks for you.

\n

To encrypt data outside of KMS:

\n
    \n
  1. \n

    Use the GenerateDataKey operation to get a data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key (in the Plaintext field of the response) to\n encrypt your data outside of KMS. Then erase the plaintext data key from memory.

    \n
  4. \n
  5. \n

    Store the encrypted data key (in the CiphertextBlob field of the\n response) with the encrypted data.

    \n
  6. \n
\n

To decrypt data outside of KMS:

\n
    \n
  1. \n

    Use the Decrypt operation to decrypt the encrypted data key. The\n operation returns a plaintext copy of the data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n data key from memory.

    \n
  4. \n
\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GenerateDataKey (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate a data key", + "documentation": "The following example generates a 256-bit symmetric data encryption key (data key) in two formats. One is the unencrypted (plainext) data key, and the other is the data key encrypted with the specified KMS key.", + "input": { + "KeyId": "alias/ExampleAlias", + "KeySpec": "AES_256" + }, + "output": { + "CiphertextBlob": "", + "Plaintext": "", + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateDataKeyPair": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateDataKeyPairRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateDataKeyPairResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n a plaintext public key, a plaintext private key, and a copy of the private key that is\n encrypted under the symmetric encryption KMS key you specify. You can use the data key pair to\n perform asymmetric cryptography and implement digital signatures outside of KMS. The bytes\n in the keys are random; they are not related to the caller or to the KMS key that is used to\n encrypt the private key.

\n

You can use the public key that GenerateDataKeyPair returns to encrypt data\n or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that\n you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or\n signing, but not both. However, KMS cannot enforce any restrictions on the use of data key\n pairs outside of KMS.

\n

If you are using the data key pair to encrypt data, or for any operation where you don't\n immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation.\n GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an\n encrypted private key, but omits the plaintext private key that you need only to decrypt\n ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n the Decrypt operation to decrypt the encrypted private key in the data key\n pair.

\n

\n GenerateDataKeyPair returns a unique data key pair for each request. The\n bytes in the keys are random; they are not related to the caller or the KMS key that is used\n to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as\n specified in RFC 5280. The private\n key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC 5958.

\n \n

For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains the private key\n in seed format. As a result, the length of the private key is the same for all ML-KEM key pair\n specs.

\n
\n

\n GenerateDataKeyPair also supports Amazon Web Services Nitro Enclaves, which provide an\n isolated compute environment in Amazon EC2. To call GenerateDataKeyPair for an Amazon Web Services\n Nitro enclave or NitroTPM, use the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK. Use the\n Recipient parameter to provide the attestation document for the attested\n environment. GenerateDataKeyPair returns the public data key and a copy of the\n private data key encrypted under the specified KMS key, as usual. But instead of a plaintext\n copy of the private data key (PrivateKeyPlaintext), the response includes a copy\n of the private data key encrypted under the public key from the attestation document\n (CiphertextForRecipient). For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

\n

You can use an optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GenerateDataKeyPair (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate an RSA key pair for encryption and decryption", + "documentation": "This example generates an RSA data key pair for encryption and decryption. The operation returns a plaintext public key and private key, and a copy of the private key that is encrypted under a symmetric encryption KMS key that you specify.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyPairSpec": "RSA_3072" + }, + "output": { + "PrivateKeyCiphertextBlob": "", + "PrivateKeyPlaintext": "", + "PublicKey": "", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "KeyPairSpec": "RSA_3072" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateDataKeyPairRequest": { + "type": "structure", + "members": { + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the symmetric encryption KMS key that encrypts the private key in the data key\n pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the\n type and origin of your KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "KeyPairSpec": { + "target": "com.amazonaws.kms#DataKeyPairSpec", + "traits": { + "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), the rule that permits you to use ECC KMS keys only to sign and verify, and the rule that permits you to use ML-DSA key pairs to sign and verify only are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions. The ML-KEM key specs are not available in China Regions.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "Recipient": { + "target": "com.amazonaws.kms#RecipientInfo", + "traits": { + "smithy.api#documentation": "

A signed attestation document from\n an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to use with the public key in\n the attestation document. The only valid encryption algorithm is\n RSAES_OAEP_SHA_256.

\n

This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves or\n Amazon Web Services NitroTPM. To call GenerateDataKeyPair generate an attestation document use either\n Amazon Web Services Nitro Enclaves SDK for an Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM tools for\n Amazon Web Services NitroTPM. Then use the Recipient parameter from any Amazon Web Services SDK to provide the\n attestation document for the attested environment.

\n

When you use this parameter, instead of returning a plaintext copy of the private data\n key, KMS encrypts the plaintext private data key under the public key in the attestation\n document, and returns the resulting ciphertext in the CiphertextForRecipient\n field in the response. This ciphertext can be decrypted only with the private key in the\n attested environment. The CiphertextBlob field in the response contains a copy of\n the private data key encrypted under the KMS key specified by the KeyId\n parameter. The PrivateKeyPlaintext field in the response is null or empty.

\n

For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyPairResponse": { + "type": "structure", + "members": { + "PrivateKeyCiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "PrivateKeyPlaintext": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The plaintext copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

If the response includes the CiphertextForRecipient field, the\n PrivateKeyPlaintext field is null or empty.

" + } + }, + "PublicKey": { + "target": "com.amazonaws.kms#PublicKeyType", + "traits": { + "smithy.api#documentation": "

The public key (in plaintext). When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the private key.

" + } + }, + "KeyPairSpec": { + "target": "com.amazonaws.kms#DataKeyPairSpec", + "traits": { + "smithy.api#documentation": "

The type of data key pair that was generated.

" + } + }, + "CiphertextForRecipient": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The plaintext private data key encrypted with the public key from the attestation\n document. This ciphertext can be decrypted only by using a private key from the attested\n environment.

\n

This field is included in the response only when the Recipient parameter in\n the request includes a valid attestation document from an Amazon Web Services Nitro enclave or NitroTPM.\n For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to encrypt the private key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintext": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n a plaintext public key and a copy of the private key that is encrypted under the symmetric\n encryption KMS key you specify. Unlike GenerateDataKeyPair, this operation\n does not return a plaintext private key. The bytes in the keys are random; they are not\n related to the caller or to the KMS key that is used to encrypt the private key.

\n

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns\n to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that\n you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or\n signing, but not both. However, KMS cannot enforce any restrictions on the use of data key\n pairs outside of KMS.

\n

\n GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each\n request. The bytes in the key are not related to the caller or KMS key that is used to encrypt\n the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n RFC 5280.

\n \n

For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo contains the private key\n in seed format. As a result, the length of the private key is the same for all ML-KEM key pair\n specs.

\n
\n

You can use an optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key\n policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate an asymmetric data key pair without a plaintext key", + "documentation": "This example returns an asymmetric elliptic curve (ECC) data key pair. The private key is encrypted under the symmetric encryption KMS key that you specify. This operation doesn't return a plaintext (unencrypted) private key.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyPairSpec": "ECC_NIST_P521" + }, + "output": { + "PrivateKeyCiphertextBlob": "", + "PublicKey": "", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "KeyPairSpec": "ECC_NIST_P521" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest": { + "type": "structure", + "members": { + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the symmetric encryption KMS key that encrypts the private key in the data key\n pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the\n type and origin of your KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "KeyPairSpec": { + "target": "com.amazonaws.kms#DataKeyPairSpec", + "traits": { + "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), the rule that permits you to use ECC KMS keys only to sign and verify, and the rule that permits you to use ML-DSA key pairs to sign and verify only are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions. The ML-KEM key specs are not available in China Regions.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextResponse": { + "type": "structure", + "members": { + "PrivateKeyCiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "PublicKey": { + "target": "com.amazonaws.kms#PublicKeyType", + "traits": { + "smithy.api#documentation": "

The public key (in plaintext). When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the private key.

" + } + }, + "KeyPairSpec": { + "target": "com.amazonaws.kms#DataKeyPairSpec", + "traits": { + "smithy.api#documentation": "

The type of data key pair that was generated.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to encrypt the private key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the symmetric encryption KMS key that encrypts the data key. You cannot specify\n an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your\n KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "NumberOfBytes": { + "target": "com.amazonaws.kms#NumberOfBytesType", + "traits": { + "smithy.api#documentation": "

Specifies the length of the data key in bytes. For example, use the value 64 to generate a\n 512-bit data key (64 bytes is 512 bits). For 128-bit (16-byte) and 256-bit (32-byte) data\n keys, use the KeySpec parameter.

\n

You must specify either the KeySpec or the NumberOfBytes\n parameter (but not both) in every GenerateDataKey request.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#DataKeySpec", + "traits": { + "smithy.api#documentation": "

Specifies the length of the data key. Use AES_128 to generate a 128-bit\n symmetric key, or AES_256 to generate a 256-bit symmetric key.

\n

You must specify either the KeySpec or the NumberOfBytes\n parameter (but not both) in every GenerateDataKey request.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "Recipient": { + "target": "com.amazonaws.kms#RecipientInfo", + "traits": { + "smithy.api#documentation": "

A signed attestation document from\n an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to use with the public key in\n the attestation document. The only valid encryption algorithm is\n RSAES_OAEP_SHA_256.

\n

This parameter supports the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK for\n Amazon Web Services Nitro Enclaves. It supports any Amazon Web Services SDK for Amazon Web Services NitroTPM.

\n

When you use this parameter, instead of returning the plaintext data key, KMS encrypts\n the plaintext data key under the public key in the attestation document, and returns the\n resulting ciphertext in the CiphertextForRecipient field in the response. This\n ciphertext can be decrypted only with the private key in the enclave. The\n CiphertextBlob field in the response contains a copy of the data key encrypted\n under the KMS key specified by the KeyId parameter. The Plaintext\n field in the response is null or empty.

\n

For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyResponse": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted copy of the data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "Plaintext": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The plaintext data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of\n KMS. Then, remove it from memory as soon as possible.

\n

If the response includes the CiphertextForRecipient field, the\n Plaintext field is null or empty.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.

" + } + }, + "CiphertextForRecipient": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The plaintext data key encrypted with the public key from the attestation document. This\n ciphertext can be decrypted only by using a private key from the attested environment.

\n

This field is included in the response only when the Recipient parameter in\n the request includes a valid attestation document from an Amazon Web Services Nitro enclave or NitroTPM.\n For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to encrypt the data key. This field is omitted if\n the request includes the Recipient parameter.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyWithoutPlaintext": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a unique symmetric data key for use outside of KMS. This operation returns a\n data key that is encrypted under a symmetric encryption KMS key that you specify. The bytes in\n the key are random; they are not related to the caller or to the KMS key.

\n

\n GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that it does not return a plaintext copy of the\n data key.

\n

This operation is useful for systems that need to encrypt data at some point, but not\n immediately. When you need to encrypt the data, you call the Decrypt\n operation on the encrypted copy of the key.

\n

It's also useful in distributed systems with different levels of trust. For example, you\n might store encrypted data in containers. One component of your system creates new containers\n and stores an encrypted data key with each container. Then, a different component puts the\n data into the containers. That component first decrypts the data key, uses the plaintext data\n key to encrypt data, puts the encrypted data into the container, and then destroys the\n plaintext data key. In this system, the component that creates the containers never sees the\n plaintext data key.

\n

To request an asymmetric data key pair, use the GenerateDataKeyPair or\n GenerateDataKeyPairWithoutPlaintext operations.

\n

To generate a data key, you must specify the symmetric encryption KMS key that is used to\n encrypt the data key. You cannot use an asymmetric KMS key or a key in a custom key store to\n generate a data key. To get the type of your KMS key, use the DescribeKey\n operation.

\n

You must also specify the length of the data key. Use either the KeySpec or\n NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use\n the KeySpec parameter.

\n

To generate an SM4 data key (China Regions only), specify a KeySpec value of\n AES_128 or NumberOfBytes value of 16. The symmetric\n encryption key used in China Regions to encrypt your data key is an SM4 encryption key.

\n

If the operation succeeds, you will find the encrypted copy of the data key in the\n CiphertextBlob field.

\n

You can use an optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GenerateDataKeyWithoutPlaintext (key\n policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate an encrypted data key", + "documentation": "The following example generates an encrypted copy of a 256-bit symmetric data encryption key (data key). The data key is encrypted with the specified KMS key.", + "input": { + "KeyId": "alias/ExampleAlias", + "KeySpec": "AES_256" + }, + "output": { + "CiphertextBlob": "", + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the symmetric encryption KMS key that encrypts the data key. You cannot specify\n an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your\n KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "EncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#DataKeySpec", + "traits": { + "smithy.api#documentation": "

The length of the data key. Use AES_128 to generate a 128-bit symmetric key,\n or AES_256 to generate a 256-bit symmetric key.

" + } + }, + "NumberOfBytes": { + "target": "com.amazonaws.kms#NumberOfBytesType", + "traits": { + "smithy.api#documentation": "

The length of the data key in bytes. For example, use the value 64 to generate a 512-bit\n data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys),\n we recommend that you use the KeySpec field instead of this one.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextResponse": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to encrypt the data key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GenerateMac": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateMacRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateMacResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Generates a hash-based message authentication code (HMAC) for a message using an HMAC KMS\n key and a MAC algorithm that the key supports. HMAC KMS keys and the HMAC algorithms that\n KMS uses conform to industry standards defined in RFC 2104.

\n

You can use value that GenerateMac returns in the VerifyMac operation to\n demonstrate that the original message has not changed. Also, because a secret key is used to\n create the hash, you can verify that the party that generated the hash has the required secret\n key. You can also use the raw result to implement HMAC-based algorithms such as key derivation\n functions. This operation is part of KMS support for HMAC KMS keys. For\n details, see HMAC keys in\n KMS in the \n Key Management Service Developer Guide\n .

\n \n

Best practices recommend that you limit the time during which any signing mechanism,\n including an HMAC, is effective. This deters an attack where the actor uses a signed message\n to establish validity repeatedly or long after the message is superseded. HMAC tags do not\n include a timestamp, but you can include a timestamp in the token or message to help you\n detect when its time to refresh the HMAC.

\n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GenerateMac (key policy)

\n

\n Related operations: VerifyMac\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate an HMAC for a message", + "documentation": "This example generates an HMAC for a message, an HMAC KMS key, and a MAC algorithm. The algorithm must be supported by the specified HMAC KMS key.", + "input": { + "Message": "Hello World", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "MacAlgorithm": "HMAC_SHA_384" + }, + "output": { + "Mac": "", + "MacAlgorithm": "HMAC_SHA_384", + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateMacRequest": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The message to be hashed. Specify a message of up to 4,096 bytes.

\n

\n GenerateMac and VerifyMac do not provide special handling\n for message digests. If you generate an HMAC for a hash digest of a message, you must verify\n the HMAC of the same hash digest.

", + "smithy.api#required": {} + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The HMAC KMS key to use in the operation. The MAC algorithm computes the HMAC for the\n message and the key as described in RFC 2104.

\n

To identify an HMAC KMS key, use the DescribeKey operation and see the\n KeySpec field in the response.

", + "smithy.api#required": {} + } + }, + "MacAlgorithm": { + "target": "com.amazonaws.kms#MacAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The MAC algorithm used in the operation.

\n

The algorithm must be compatible with the HMAC KMS key that you specify. To find the MAC\n algorithms that your HMAC KMS key supports, use the DescribeKey operation\n and see the MacAlgorithms field in the DescribeKey response.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateMacResponse": { + "type": "structure", + "members": { + "Mac": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The hash-based message authentication code (HMAC) that was generated for the specified\n message, HMAC KMS key, and MAC algorithm.

\n

This is the standard, raw HMAC defined in RFC 2104.

" + } + }, + "MacAlgorithm": { + "target": "com.amazonaws.kms#MacAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The MAC algorithm that was used to generate the HMAC.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The HMAC KMS key used in the operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GenerateRandom": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GenerateRandomRequest" + }, + "output": { + "target": "com.amazonaws.kms#GenerateRandomResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a random byte string that is cryptographically secure.

\n

You must use the NumberOfBytes parameter to specify the length of the random\n byte string. There is no default value for string length.

\n

By default, the random byte string is generated in KMS. To generate the byte string in\n the CloudHSM cluster associated with an CloudHSM key store, use the CustomKeyStoreId\n parameter.

\n

\n GenerateRandom also supports Amazon Web Services Nitro Enclaves, which provide an\n isolated compute environment in Amazon EC2. To call GenerateRandom for a Nitro enclave\n or NitroTPM, use the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK. Use the Recipient\n parameter to provide the attestation document for the attested environment. Instead of\n plaintext bytes, the response includes the plaintext bytes encrypted under the public key from\n the attestation document (CiphertextForRecipient). For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

\n

For more information about entropy and random number generation, see Entropy and random number generation in the Key Management Service Developer Guide.

\n

\n Cross-account use: Not applicable.\n GenerateRandom does not use any account-specific resources, such as KMS\n keys.

\n

\n Required permissions: kms:GenerateRandom (IAM policy)

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To generate random data", + "documentation": "The following example generates 32 bytes of random data.", + "input": { + "NumberOfBytes": 32 + }, + "output": { + "Plaintext": "" + } + } + ] + } + }, + "com.amazonaws.kms#GenerateRandomRequest": { + "type": "structure", + "members": { + "NumberOfBytes": { + "target": "com.amazonaws.kms#NumberOfBytesType", + "traits": { + "smithy.api#documentation": "

The length of the random byte string. This parameter is required.

" + } + }, + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Generates the random byte string in the CloudHSM cluster that is associated with the\n specified CloudHSM key store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

\n

External key store IDs are not valid for this parameter. If you specify the ID of an\n external key store, GenerateRandom throws an\n UnsupportedOperationException.

" + } + }, + "Recipient": { + "target": "com.amazonaws.kms#RecipientInfo", + "traits": { + "smithy.api#documentation": "

A signed attestation document from\n an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to use with the public key in\n the attestation document. The only valid encryption algorithm is\n RSAES_OAEP_SHA_256.

\n

This parameter supports the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK for\n Amazon Web Services Nitro Enclaves. It supports any Amazon Web Services SDK for Amazon Web Services NitroTPM.

\n

When you use this parameter, instead of returning plaintext bytes, KMS encrypts the\n plaintext bytes under the public key in the attestation document, and returns the resulting\n ciphertext in the CiphertextForRecipient field in the response. This ciphertext\n can be decrypted only with the private key in the attested environment. The\n Plaintext field in the response is null or empty.

\n

For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GenerateRandomResponse": { + "type": "structure", + "members": { + "Plaintext": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The random byte string. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

If the response includes the CiphertextForRecipient field, the\n Plaintext field is null or empty.

" + } + }, + "CiphertextForRecipient": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The plaintext random bytes encrypted with the public key from the attestation document.\n This ciphertext can be decrypted only by using a private key from the attested environment.

\n

This field is included in the response only when the Recipient parameter in\n the request includes a valid attestation document from an Amazon Web Services Nitro enclave or NitroTPM.\n For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GetKeyLastUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GetKeyLastUsageRequest" + }, + "output": { + "target": "com.amazonaws.kms#GetKeyLastUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns usage information about the last successful cryptographic operation performed with a\n specified KMS key, including the operation type, timestamp, and associated CloudTrail event\n ID.

\n

The TrackingStartDate in the GetKeyLastUsage response indicates\n the date from which KMS began recording cryptographic activity for a given key. Use this\n value together with KeyCreationDate to understand the key's usage\n history:

\n
    \n
  • \n

    If the KeyLastUsage response element is present,\n the key has been used for a successful cryptographic operation since the\n TrackingStartDate. The response includes the operation type, timestamp, and\n associated CloudTrail event ID.

    \n
  • \n
  • \n

    If the KeyLastUsage response element is empty and\n KeyCreationDate is on or after TrackingStartDate, the key has\n not been used for a successful cryptographic operation since it was created.

    \n
  • \n
  • \n

    If the KeyLastUsage response element is empty and\n KeyCreationDate is before TrackingStartDate, there is no record\n of the key being used for a successful cryptographic operation since the\n TrackingStartDate. However, the key may have been used before tracking\n began. To determine whether the key was used before the TrackingStartDate,\n examine your past CloudTrail logs.

    \n
  • \n
\n

For multi-Region KMS keys, primary and replica keys track last usage independently. Each\n key in a multi-Region key set maintains its own usage information.

\n

The ReEncrypt operation uses two keys: a source key for decryption and a\n destination key for encryption. Usage information is recorded for both keys independently,\n each with the CloudTrail event ID from the respective key owner's account.

\n \n

Do not use GetKeyLastUsage as the sole indicator when scheduling a key for\n deletion. Instead, first disable the key and monitor CloudTrail for\n DisabledException entries, as there could be infrequent workflows that are\n dependent on the key. By looking for this exception, you can identify potential dependencies\n and workload failures before they occur. CloudTrail remains the authoritative source for all\n API calls made to your key.

\n
\n

\n Cross-account use: No. You cannot perform this operation\n on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:GetKeyLastUsage (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To retrieve the last usage for a KMS key", + "documentation": "The following example retrieves usage information about the last successful cryptographic operation performed with the specified KMS key, including the operation type, timestamp, and associated AWS CloudTrail event ID.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyCreationDate": 1773253425.56, + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "TrackingStartDate": 1773253425.56, + "KeyLastUsage": { + "Timestamp": 1773253497.0, + "Operation": "Encrypt", + "KmsRequestId": "040cce3e-9ef3-4651-b8cf-e47c9bafdc9b", + "CloudTrailEventId": "2cfd5892-ea8c-4342-ad49-4b9594b06a8b" + } + } + } + ] + } + }, + "com.amazonaws.kms#GetKeyLastUsageRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key to get usage information for. To specify a KMS key, use its key ID\n or key ARN. Alias names are not supported.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GetKeyLastUsageResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The globally unique identifier for the KMS key.

" + } + }, + "KeyLastUsage": { + "target": "com.amazonaws.kms#KeyLastUsageData", + "traits": { + "smithy.api#documentation": "

Contains usage information about the last time the KMS key was used for a successful cryptographic\n operation. If the key has not been used since tracking began, this response element is an\n empty object.

" + } + }, + "TrackingStartDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date from which KMS began recording cryptographic activity for this key, or the date\n the KMS key was created, whichever is later.

" + } + }, + "KeyCreationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the KMS key was created.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GetKeyPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GetKeyPolicyRequest" + }, + "output": { + "target": "com.amazonaws.kms#GetKeyPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a key policy attached to the specified KMS key.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:GetKeyPolicy (key policy)

\n

\n Related operations: PutKeyPolicy\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To retrieve a key policy", + "documentation": "The following example retrieves the key policy for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "PolicyName": "default" + }, + "output": { + "Policy": "{\n \"Version\" : \"2012-10-17\",\n \"Id\" : \"key-default-1\",\n \"Statement\" : [ {\n \"Sid\" : \"Enable IAM User Permissions\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"arn:aws:iam::111122223333:root\"\n },\n \"Action\" : \"kms:*\",\n \"Resource\" : \"*\"\n } ]\n}" + } + } + ] + } + }, + "com.amazonaws.kms#GetKeyPolicyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets the key policy for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.kms#PolicyNameType", + "traits": { + "smithy.api#documentation": "

Specifies the name of the key policy. If no policy name is specified, the default value is\n default. The only valid name is default. To get the names of key\n policies, use ListKeyPolicies.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GetKeyPolicyResponse": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.kms#PolicyType", + "traits": { + "smithy.api#documentation": "

A key policy document in JSON format.

" + } + }, + "PolicyName": { + "target": "com.amazonaws.kms#PolicyNameType", + "traits": { + "smithy.api#documentation": "

The name of the key policy. The only valid value is default.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GetKeyRotationStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GetKeyRotationStatusRequest" + }, + "output": { + "target": "com.amazonaws.kms#GetKeyRotationStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides detailed information about the rotation status for a KMS key, including whether\n automatic\n rotation of the key material is enabled for the specified KMS key, the rotation\n period, and the next scheduled rotation date.

\n

Automatic key rotation is supported only on symmetric encryption KMS keys.\n You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key\n material rotation of Amazon Web Services managed KMS keys is not\n configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The\n key rotation status for Amazon Web Services managed KMS keys is always true.

\n

You can perform on-demand (RotateKeyOnDemand) rotation of the key\n material in customer managed KMS keys, regardless of whether or not automatic key rotation is\n enabled. You can use GetKeyRotationStatus to identify the date and time that an in progress\n on-demand rotation was initiated. You can use ListKeyRotations to view the\n details of completed rotations.

\n \n

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three\n years to every year. For details, see EnableKeyRotation.

\n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n
    \n
  • \n

    Disabled: The key rotation status does not change when you disable a KMS key. However,\n while the KMS key is disabled, KMS does not rotate the key material. When you re-enable\n the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been\n rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been\n less than a year since the key material in the re-enabled KMS key was rotated, the KMS key\n resumes its prior rotation schedule.

    \n
  • \n
  • \n

    Pending deletion: While a KMS key is pending deletion, its key rotation status is\n false and KMS does not rotate the key material. If you cancel the\n deletion, the original key rotation status returns to true.

    \n
  • \n
\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

" + } + }, + "com.amazonaws.kms#GetKeyRotationStatusRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets the rotation status for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GetKeyRotationStatusResponse": { + "type": "structure", + "members": { + "KeyRotationEnabled": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A Boolean value that specifies whether key rotation is enabled.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the specified symmetric encryption KMS key.

" + } + }, + "RotationPeriodInDays": { + "target": "com.amazonaws.kms#RotationPeriodInDaysType", + "traits": { + "smithy.api#documentation": "

The number of days between each automatic rotation. The default value is 365 days.

" + } + }, + "NextRotationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The next date that KMS will automatically rotate the key material.

" + } + }, + "OnDemandRotationStartDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Identifies the date and time that an in progress on-demand rotation was initiated.

\n

KMS uses a background process to perform rotations. As a result, there might be a slight\n delay between initiating on-demand key rotation and the rotation's completion. Once the\n on-demand rotation is complete, KMS removes this field from the response. You can use ListKeyRotations to view the details of the completed on-demand rotation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GetParametersForImport": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GetParametersForImportRequest" + }, + "output": { + "target": "com.amazonaws.kms#GetParametersForImportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the public key and an import token you need to import or reimport key material for\n a KMS key.

\n

By default, KMS keys are created with key material that KMS generates. This operation\n supports Importing key\n material, an advanced feature that lets you generate and import the cryptographic\n key material for a KMS key.

\n

Before calling GetParametersForImport, use the CreateKey\n operation with an Origin value of EXTERNAL to create a KMS key with\n no key material. You can import key material for a symmetric encryption KMS key, HMAC KMS key,\n asymmetric encryption KMS key, or asymmetric signing KMS key. You can also import key material\n into a multi-Region key of any supported type. However, you can't import key material into\n a KMS key in a custom\n key store. You can also use GetParametersForImport to get a public key\n and import token to reimport\n the original key material into a KMS key whose key material expired or was\n deleted.

\n

\n GetParametersForImport returns the items that you need to import your key\n material.

\n
    \n
  • \n

    The public key (or \"wrapping key\") of an RSA key pair that KMS generates.

    \n

    You will use this public key to encrypt (\"wrap\") your key material while it's in\n transit to KMS.

    \n
  • \n
  • \n

    A import token that ensures that KMS can decrypt your key material and associate it\n with the correct KMS key.

    \n
  • \n
\n

The public key and its import token are permanently linked and must be used together. Each\n public key and import token set is valid for 24 hours. The expiration date and time appear in\n the ParametersValidTo field in the GetParametersForImport response.\n You cannot use an expired public key or import token in an ImportKeyMaterial\n request. If your key and token expire, send another GetParametersForImport\n request.

\n

\n GetParametersForImport requires the following information:

\n
    \n
  • \n

    The key ID of the KMS key for which you are importing the key material.

    \n
  • \n
  • \n

    The key spec of the public key (\"wrapping key\") that you will use to encrypt your key\n material during import.

    \n
  • \n
  • \n

    The wrapping algorithm that you will use with the public key to encrypt your key\n material.

    \n
  • \n
\n

You can use the same or a different public key spec and wrapping algorithm each time you\n import or reimport the same key material.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:GetParametersForImport (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

" + } + }, + "com.amazonaws.kms#GetParametersForImportRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key that will be associated with the imported key material. The\n Origin of the KMS key must be EXTERNAL.

\n

All KMS key types are supported, including multi-Region keys. However, you cannot import\n key material into a KMS key in a custom key store.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "WrappingAlgorithm": { + "target": "com.amazonaws.kms#AlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The algorithm you will use with the RSA public key (PublicKey) in the\n response to protect your key material during import. For more information, see Select a wrapping algorithm in the Key Management Service Developer Guide.

\n

For RSA_AES wrapping algorithms, you encrypt your key material with an AES key that you\n generate, then encrypt your AES key with the RSA public key from KMS. For RSAES wrapping\n algorithms, you encrypt your key material directly with the RSA public key from KMS.

\n

The wrapping algorithms that you can use depend on the type of key material that you are\n importing. To import an RSA private key, you must use an RSA_AES wrapping algorithm.

\n
    \n
  • \n

    \n RSA_AES_KEY_WRAP_SHA_256 — Supported for\n wrapping RSA and ECC key material.

    \n
  • \n
  • \n

    \n RSA_AES_KEY_WRAP_SHA_1 — Supported for\n wrapping RSA and ECC key material.

    \n
  • \n
  • \n

    \n RSAES_OAEP_SHA_256 — Supported for all types\n of key material, except RSA key material (private key).

    \n

    You cannot use the RSAES_OAEP_SHA_256 wrapping algorithm with the RSA_2048 wrapping\n key spec to wrap ECC_NIST_P521 key material.

    \n
  • \n
  • \n

    \n RSAES_OAEP_SHA_1 — Supported for all types of\n key material, except RSA key material (private key).

    \n

    You cannot use the RSAES_OAEP_SHA_1 wrapping algorithm with the RSA_2048 wrapping key\n spec to wrap ECC_NIST_P521 key material.

    \n
  • \n
  • \n

    \n RSAES_PKCS1_V1_5 (Deprecated) — As of October\n 10, 2023, KMS does not support the RSAES_PKCS1_V1_5 wrapping algorithm.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "WrappingKeySpec": { + "target": "com.amazonaws.kms#WrappingKeySpec", + "traits": { + "smithy.api#documentation": "

The type of RSA public key to return in the response. You will use this wrapping key with\n the specified wrapping algorithm to protect your key material during import.

\n

Use the longest RSA wrapping key that is practical.

\n

You cannot use an RSA_2048 public key to directly wrap an ECC_NIST_P521 private key.\n Instead, use an RSA_AES wrapping algorithm or choose a longer RSA public key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GetParametersForImportResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key to use in a subsequent ImportKeyMaterial request. This is the same KMS key specified in the GetParametersForImport\n request.

" + } + }, + "ImportToken": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The import token to send in a subsequent ImportKeyMaterial\n request.

" + } + }, + "PublicKey": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The public key to use to encrypt the key material before importing it with ImportKeyMaterial.

" + } + }, + "ParametersValidTo": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The time at which the import token and public key are no longer valid. After this time,\n you cannot use them to make an ImportKeyMaterial request and you must send\n another GetParametersForImport request to get new ones.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GetPublicKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#GetPublicKeyRequest" + }, + "output": { + "target": "com.amazonaws.kms#GetPublicKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric\n KMS key, which never leaves KMS unencrypted, callers with kms:GetPublicKey\n permission can download the public key of an asymmetric KMS key. You can share the public key\n to allow others to encrypt messages and verify signatures outside of KMS.\n For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

You do not need to download the public key. Instead, you can use the public key within\n KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the\n public key within KMS, you benefit from the authentication, authorization, and logging that\n are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n decrypted. These features are not effective outside of KMS.

\n

To help you use the public key safely outside of KMS, GetPublicKey returns\n important information about the public key in the response, including:

\n
    \n
  • \n

    \n KeySpec: The type of key material in the public key, such as\n RSA_4096 or ECC_NIST_P521.

    \n
  • \n
  • \n

    \n KeyUsage: Whether the key is used for encryption, signing, or deriving a shared\n secret.

    \n
  • \n
  • \n

    \n EncryptionAlgorithms, KeyAgreementAlgorithms, or SigningAlgorithms: A list of the encryption algorithms, key agreement\n algorithms, or signing algorithms for the key.

    \n
  • \n
\n

Although KMS cannot enforce these restrictions on external operations, it is crucial\n that you use this information to prevent the public key from being used improperly. For\n example, you can prevent a public signing key from being used encrypt data, or prevent a\n public key from being used with an encryption algorithm that is not supported by KMS. You\n can also avoid errors, such as using the wrong signing algorithm in a verification\n operation.

\n

To verify a signature outside of KMS with an SM2 public key (China Regions only), you\n must specify the distinguishing ID. By default, KMS uses 1234567812345678 as\n the distinguishing ID. For more information, see Offline\n verification with SM2 key pairs.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:GetPublicKey (key policy)

\n

\n Related operations: CreateKey\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To download the public key of an asymmetric KMS key", + "documentation": "This example gets the public key of an asymmetric RSA KMS key used for encryption and decryption. The operation returns the key spec, key usage, and encryption or signing algorithms to help you use the public key correctly outside of AWS KMS.", + "input": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" + }, + "output": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "PublicKey": "", + "CustomerMasterKeySpec": "RSA_4096", + "KeyUsage": "ENCRYPT_DECRYPT", + "EncryptionAlgorithms": [ + "RSAES_OAEP_SHA_1", + "RSAES_OAEP_SHA_256" + ] + } + } + ] + } + }, + "com.amazonaws.kms#GetPublicKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the asymmetric KMS key that includes the public key.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#GetPublicKeyResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key from which the public key was\n downloaded.

" + } + }, + "PublicKey": { + "target": "com.amazonaws.kms#PublicKeyType", + "traits": { + "smithy.api#documentation": "

The exported public key.

\n

The value is a DER-encoded X.509 public key, also known as\n SubjectPublicKeyInfo (SPKI), as defined in RFC 5280. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

" + } + }, + "CustomerMasterKeySpec": { + "target": "com.amazonaws.kms#CustomerMasterKeySpec", + "traits": { + "smithy.api#deprecated": { + "message": "This field has been deprecated. Instead, use the KeySpec field." + }, + "smithy.api#documentation": "

Instead, use the KeySpec field in the GetPublicKey\n response.

\n

The KeySpec and CustomerMasterKeySpec fields have the same\n value. We recommend that you use the KeySpec field in your code. However, to\n avoid breaking changes, KMS supports both fields.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", + "traits": { + "smithy.api#documentation": "

The type of the of the public key that was downloaded.

" + } + }, + "KeyUsage": { + "target": "com.amazonaws.kms#KeyUsageType", + "traits": { + "smithy.api#documentation": "

The permitted use of the public key. Valid values for asymmetric key pairs are\n ENCRYPT_DECRYPT, SIGN_VERIFY, and KEY_AGREEMENT.

\n

This information is critical. For example, if a public key with SIGN_VERIFY\n key usage encrypts data outside of KMS, the ciphertext cannot be decrypted.

" + } + }, + "EncryptionAlgorithms": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The encryption algorithms that KMS supports for this key.

\n

This information is critical. If a public key encrypts data outside of KMS by using an\n unsupported encryption algorithm, the ciphertext cannot be decrypted.

\n

This field appears in the response only when the KeyUsage of the public key\n is ENCRYPT_DECRYPT.

" + } + }, + "SigningAlgorithms": { + "target": "com.amazonaws.kms#SigningAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The signing algorithms that KMS supports for this key.

\n

This field appears in the response only when the KeyUsage of the public key\n is SIGN_VERIFY.

" + } + }, + "KeyAgreementAlgorithms": { + "target": "com.amazonaws.kms#KeyAgreementAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The key agreement algorithm used to derive a shared secret. This field is present only\n when the KMS key has a KeyUsage value of KEY_AGREEMENT.

" + } + }, + "EncapsulationAlgorithms": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The key encapsulation algorithm used to establish a shared secret. This field is present\n only when the KMS key has a KeyUsage value of\n ENCAPSULATE_DECAPSULATE.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#GrantConstraintSourceArnType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 512 + }, + "smithy.api#pattern": "^arn:aws[a-z0-9-]*:[a-z0-9-]+:[a-z0-9-]*:[0-9]{12}:.+$" + } + }, + "com.amazonaws.kms#GrantConstraints": { + "type": "structure", + "members": { + "EncryptionContextSubset": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

A list of key-value pairs that must be included in the encryption context of the\n cryptographic operation request. The grant allows the cryptographic operation only when the encryption\n context in the request includes the key-value pairs specified in this constraint, although it\n can include additional key-value pairs.

" + } + }, + "EncryptionContextEquals": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

A list of key-value pairs that must match the encryption context in the cryptographic operation\n request. The grant allows the operation only when the encryption context in the request is the\n same as the encryption context specified in this constraint.

" + } + }, + "SourceArn": { + "target": "com.amazonaws.kms#GrantConstraintSourceArnType", + "traits": { + "smithy.api#documentation": "

The \n Amazon Resource Name (ARN) of an Amazon Web Services resource on behalf of which the request is made.\n This is effectively the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint ensures\n that the principal can use the KMS key only when the request is made on behalf of the specified resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this structure to allow cryptographic operations in the grant only when the operation request\n meets the specified constraints.

\n

KMS supports the following grant constraints:

\n
    \n
  • \n

    \n EncryptionContextEquals and EncryptionContextSubset —\n These encryption context constraints apply only to cryptographic operations that support\n an encryption context, that is, all cryptographic operations with a symmetric KMS key.\n Encryption context grant constraints are not applied to operations that do not support an\n encryption context, such as cryptographic operations with asymmetric KMS keys and\n management operations, such as DescribeKey or RetireGrant.

    \n \n

    In a cryptographic operation, the encryption context in the decryption operation must be\n an exact, case-sensitive match for the keys and values in the encryption context of the\n encryption operation. Only the order of the pairs can vary.

    \n

    However, in a grant constraint, the key in each key-value pair is not case sensitive,\n but the value is case sensitive.

    \n

    To avoid confusion, do not use multiple encryption context pairs that differ only by\n case. To require a fully case-sensitive encryption context, use the\n kms:EncryptionContext: and kms:EncryptionContextKeys conditions\n in an IAM or key policy. For details, see kms:EncryptionContext:context-key in the\n \n Key Management Service Developer Guide\n .

    \n
    \n
  • \n
  • \n

    \n SourceArn — This grant constraint allows the permissions in the grant only when the\n request is made on behalf of a specific Amazon Web Services resource, identified by its Amazon Resource Name (ARN). This is effectively\n the same as having the aws:SourceArn global condition key in the grant. The SourceArn constraint is supported on grants\n for all types of KMS keys and can also be applied to the DescribeKey operation when\n specified in the request. However, it does not apply to RetireGrant operation.

    \n
  • \n
" + } + }, + "com.amazonaws.kms#GrantIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.kms#GrantList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#GrantListEntry" + } + }, + "com.amazonaws.kms#GrantListEntry": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the KMS key to which the grant applies.

" + } + }, + "GrantId": { + "target": "com.amazonaws.kms#GrantIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier for the grant.

" + } + }, + "Name": { + "target": "com.amazonaws.kms#GrantNameType", + "traits": { + "smithy.api#documentation": "

The friendly name that identifies the grant. If a name was provided in the CreateGrant request, that name is returned. Otherwise this value is null.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the grant was created.

" + } + }, + "GranteePrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The identity that gets the permissions in the grant.

\n

When a grant is created with the GranteePrincipal field, the ListGrants\n response usually contains the user or role designated as the grantee principal in the grant. However, if the grantee principal\n is an Amazon Web Services service, the GranteePrincipal field contains an Amazon Web Services service principal, which\n might correspond to several different grantee principals, such as an IAM user, IAM role, or Amazon Web Services account.

" + } + }, + "RetiringPrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The principal that can retire the grant.

" + } + }, + "IssuingAccount": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account under which the grant was issued.

" + } + }, + "Operations": { + "target": "com.amazonaws.kms#GrantOperationList", + "traits": { + "smithy.api#documentation": "

The list of operations permitted by the grant.

" + } + }, + "Constraints": { + "target": "com.amazonaws.kms#GrantConstraints", + "traits": { + "smithy.api#documentation": "

The constraints on the grant, such as encryption context pairs or a SourceArn,\n that restrict the subsequent operations the grant allows.

" + } + }, + "GranteeServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service\n principal that gets the permissions in the grant.

" + } + }, + "RetiringServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service\n principal that can retire the grant.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a grant.

" + } + }, + "com.amazonaws.kms#GrantNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/_-]+$" + } + }, + "com.amazonaws.kms#GrantOperation": { + "type": "enum", + "members": { + "Decrypt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Decrypt" + } + }, + "Encrypt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Encrypt" + } + }, + "GenerateDataKey": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKey" + } + }, + "GenerateDataKeyWithoutPlaintext": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyWithoutPlaintext" + } + }, + "ReEncryptFrom": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReEncryptFrom" + } + }, + "ReEncryptTo": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReEncryptTo" + } + }, + "Sign": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Sign" + } + }, + "Verify": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Verify" + } + }, + "GetPublicKey": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GetPublicKey" + } + }, + "CreateGrant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateGrant" + } + }, + "RetireGrant": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RetireGrant" + } + }, + "DescribeKey": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DescribeKey" + } + }, + "GenerateDataKeyPair": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyPair" + } + }, + "GenerateDataKeyPairWithoutPlaintext": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyPairWithoutPlaintext" + } + }, + "GenerateMac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateMac" + } + }, + "VerifyMac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VerifyMac" + } + }, + "DeriveSharedSecret": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeriveSharedSecret" + } + }, + "Encapsulate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Encapsulate" + } + }, + "Decapsulate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Decapsulate" + } + } + } + }, + "com.amazonaws.kms#GrantOperationList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#GrantOperation" + } + }, + "com.amazonaws.kms#GrantTokenList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#GrantTokenType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.kms#GrantTokenType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8192 + } + } + }, + "com.amazonaws.kms#ImportKeyMaterial": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ImportKeyMaterialRequest" + }, + "output": { + "target": "com.amazonaws.kms#ImportKeyMaterialResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#ExpiredImportTokenException" + }, + { + "target": "com.amazonaws.kms#IncorrectKeyMaterialException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidCiphertextException" + }, + { + "target": "com.amazonaws.kms#InvalidImportTokenException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Imports or reimports key material into an existing KMS key that was created without key\n material. You can also use this operation to set or update the expiration model and expiration\n date of the imported key material.

\n

By default, KMS creates KMS keys with key material that it generates. You can also\n generate and import your own key material. For more information about importing key material,\n see Importing key\n material.

\n

For asymmetric and HMAC keys, you cannot change the key material after the initial import.\n You can import multiple key materials into symmetric encryption keys and rotate the key\n material on demand using RotateKeyOnDemand.

\n

You can import new key materials into multi-Region symmetric encryption keys. To do so, you must\n import the new key material into the primary Region key. Then you can import the same key\n materials into the replica Region keys. You cannot directly import new key material into\n the replica Region keys.

\n

To import new key material for a multi-Region symmetric key, you’ll need to complete the\n following:

\n
    \n
  1. \n

    Call ImportKeyMaterial on the primary Region key with the\n ImportTypeset to NEW_KEY_MATERIAL.

    \n
  2. \n
  3. \n

    Call ImportKeyMaterial on the replica Region key with the\n ImportType set to EXISTING_KEY_MATERIAL using the same key\n material imported to the primary Region key. You must do this for every replica\n Region key before you can perform the RotateKeyOnDemand operation\n on the primary Region key.

    \n
  4. \n
\n

After you import key material, you can reimport\n the same key material into that KMS key or, if the key supports on-demand rotation,\n import new key material. You can use the ImportType parameter to indicate whether\n you are importing new key material or re-importing previously imported key material. You might\n reimport key material to replace key material that expired or key material that you deleted.\n You might also reimport key material to change the expiration model or expiration date of the\n key material.

\n

Each time you import key material into KMS, you can determine whether\n (ExpirationModel) and when (ValidTo) the key material expires. To\n change the expiration of your key material, you must import it again, either by calling\n ImportKeyMaterial or using the import features of the KMS console.

\n

Before you call ImportKeyMaterial, complete these steps:

\n
    \n
  • \n

    Create or identify a KMS key with EXTERNAL origin, which indicates that\n the KMS key is designed for imported key material.

    \n

    To create a new KMS key for imported key material, call the CreateKey operation with an Origin value of EXTERNAL. You can create a\n symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS key, asymmetric key\n agreement key, or asymmetric signing KMS key. You can also import key material into a\n multi-Region key of any supported type. However, you can't import key material\n into a KMS key in a custom key store.

    \n
  • \n
  • \n

    Call the GetParametersForImport operation to get a public key and\n import token set for importing key material.

    \n
  • \n
  • \n

    Use the public key in the GetParametersForImport response to encrypt\n your key material.

    \n
  • \n
\n

Then, in an ImportKeyMaterial request, you submit your encrypted key\n material and import token. When calling this operation, you must specify the following\n values:

\n
    \n
  • \n

    The key ID or key ARN of the KMS key to associate with the imported key material. Its\n Origin must be EXTERNAL and its KeyState must be\n PendingImport or Enabled. You cannot perform this operation on\n a KMS key in a custom key store, or on a KMS key in a different Amazon Web Services account. To get the\n Origin and KeyState of a KMS key, call DescribeKey.

    \n
  • \n
  • \n

    The encrypted key material.

    \n
  • \n
  • \n

    The import token that GetParametersForImport returned. You must use\n a public key and token from the same GetParametersForImport response.

    \n
  • \n
  • \n

    Whether the key material expires (ExpirationModel) and, if so, when\n (ValidTo). For help with this choice, see Setting an expiration time in the Key Management Service Developer Guide.

    \n

    If you set an expiration date, KMS deletes the key material from the KMS key on the\n specified date, making the KMS key unusable. To use the KMS key in cryptographic\n operations again, you must reimport the same key material. However, you can delete and\n reimport the key material at any time, including before the key material expires. Each\n time you reimport, you can eliminate or reset the expiration time.

    \n
  • \n
\n

When this operation is successful, the state of the KMS key changes to Enabled,\n and you can use the KMS key in cryptographic operations. For symmetric encryption keys, you will\n need to import all of the key materials associated with the KMS key to change its state to\n Enabled. Use the ListKeyRotations operation to list the ID and import\n state of each key material associated with a KMS key.

\n

If this operation fails, use the exception to help determine the problem. If the error is\n related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key\n and repeat the import procedure. For help, see Create a KMS key with imported key\n material in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ImportKeyMaterial (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To import key material into a KMS key", + "documentation": "The following example imports key material into the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "ImportToken": "", + "EncryptedKeyMaterial": "", + "ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#ImportKeyMaterialRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key that will be associated with the imported key material. This\n must be the same KMS key specified in the KeyID parameter of the corresponding\n GetParametersForImport request. The Origin of the KMS key\n must be EXTERNAL and its KeyState must be\n PendingImport.

\n

The KMS key can be a symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS\n key, or asymmetric signing KMS key, including a multi-Region key of any supported\n type. You cannot perform this operation on a KMS key in a custom key store, or on a KMS key in\n a different Amazon Web Services account.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "ImportToken": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The import token that you received in the response to a previous GetParametersForImport request. It must be from the same response that contained\n the public key that you used to encrypt the key material.

", + "smithy.api#required": {} + } + }, + "EncryptedKeyMaterial": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The encrypted key material to import. The key material must be encrypted under the public\n wrapping key that GetParametersForImport returned, using the wrapping\n algorithm that you specified in the same GetParametersForImport request.

", + "smithy.api#required": {} + } + }, + "ValidTo": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the imported key material expires. This parameter is required when\n the value of the ExpirationModel parameter is KEY_MATERIAL_EXPIRES.\n Otherwise it is not valid.

\n

The value of this parameter must be a future date and time. The maximum value is 365 days\n from the request date.

\n

When the key material expires, KMS deletes the key material from the KMS key. Without\n its key material, the KMS key is unusable. To use the KMS key in cryptographic operations, you\n must reimport the same key material.

\n

You cannot change the ExpirationModel or ValidTo values for the\n current import after the request completes. To change either value, you must delete (DeleteImportedKeyMaterial) and reimport the key material.

" + } + }, + "ExpirationModel": { + "target": "com.amazonaws.kms#ExpirationModelType", + "traits": { + "smithy.api#documentation": "

Specifies whether the key material expires. The default is\n KEY_MATERIAL_EXPIRES. For help with this choice, see Setting\n an expiration time in the Key Management Service Developer Guide.

\n

When the value of ExpirationModel is KEY_MATERIAL_EXPIRES, you\n must specify a value for the ValidTo parameter. When value is\n KEY_MATERIAL_DOES_NOT_EXPIRE, you must omit the ValidTo\n parameter.

\n

You cannot change the ExpirationModel or ValidTo values for the\n current import after the request completes. To change either value, you must reimport the key\n material.

" + } + }, + "ImportType": { + "target": "com.amazonaws.kms#ImportType", + "traits": { + "smithy.api#documentation": "

Indicates whether the key material being imported is previously associated with this KMS\n key or not. This parameter is optional and only usable with symmetric encryption keys. If no\n key material has ever been imported into the KMS key, and this parameter is omitted, the\n parameter defaults to NEW_KEY_MATERIAL. After the first key material is imported,\n if this parameter is omitted then the parameter defaults to\n EXISTING_KEY_MATERIAL.

\n

For multi-Region keys, you must first import new key material into\nthe primary Region key. You should use the NEW_KEY_MATERIAL import type when importing key\nmaterial into the primary Region key. Then, you can import the same key material into the replica Region\nkey. The import type for the replica Region key should be EXISTING_KEY_MATERIAL.

" + } + }, + "KeyMaterialDescription": { + "target": "com.amazonaws.kms#KeyMaterialDescriptionType", + "traits": { + "smithy.api#documentation": "

Description for the key material being imported. This parameter is optional and only\n usable with symmetric encryption keys. If you do not specify a key material description, KMS\n retains the value you specified when you last imported the same key material into this KMS\n key.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the key material being imported. This parameter is optional and only usable\n with symmetric encryption keys. You cannot specify a key material ID with\n ImportType set to NEW_KEY_MATERIAL. Whenever you import key\n material into a symmetric encryption key, KMS assigns a unique identifier to the key\n material based on the KMS key ID and the imported key material. When you re-import key\n material with a specified key material ID, KMS:

\n
    \n
  • \n

    Computes the identifier for the key material

    \n
  • \n
  • \n

    Matches the computed identifier against the specified key material ID

    \n
  • \n
  • \n

    Verifies that the key material ID is already associated with the KMS key

    \n
  • \n
\n

To get the list of key material IDs associated with a KMS key, use ListKeyRotations.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ImportKeyMaterialResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key into which key material was imported.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the imported key material.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ImportState": { + "type": "enum", + "members": { + "IMPORTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPORTED" + } + }, + "PENDING_IMPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_IMPORT" + } + } + } + }, + "com.amazonaws.kms#ImportType": { + "type": "enum", + "members": { + "NEW_KEY_MATERIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEW_KEY_MATERIAL" + } + }, + "EXISTING_KEY_MATERIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXISTING_KEY_MATERIAL" + } + } + } + }, + "com.amazonaws.kms#IncludeKeyMaterial": { + "type": "enum", + "members": { + "ALL_KEY_MATERIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL_KEY_MATERIAL" + } + }, + "ROTATIONS_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROTATIONS_ONLY" + } + } + } + }, + "com.amazonaws.kms#IncorrectKeyException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IncorrectKeyException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key cannot decrypt the data. The\n KeyId in a Decrypt request and the SourceKeyId\n in a ReEncrypt request must identify the same KMS key that was used to\n encrypt the ciphertext.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#IncorrectKeyMaterialException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IncorrectKeyMaterialException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the key material in the request is, expired, invalid, or\n does not meet expectations. For example, it is not the same key material that was previously\n imported or KMS expected new key material but the key material being imported is already\n associated with the KMS key.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#IncorrectTrustAnchorException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IncorrectTrustAnchorException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the trust anchor certificate in the request to create an\n CloudHSM key store is not the trust anchor certificate for the specified CloudHSM cluster.

\n

When you initialize the CloudHSM cluster, you create the trust anchor certificate and save it\n in the customerCA.crt file.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidAliasNameException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidAliasName", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified alias name is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidArnException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidArn", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because a specified ARN, or an ARN in a key policy, is not\n valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidCiphertextException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidCiphertext", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

From the Decrypt or ReEncrypt operation, the request\n was rejected because the specified ciphertext, or additional authenticated data incorporated\n into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise\n invalid.

\n

From the ImportKeyMaterial operation, the request was rejected because\n KMS could not decrypt the encrypted (wrapped) key material.

\n

From the Decapsulate operation, the request was rejected because the\n length of the SharedSecretCiphertextBlob is inconsistent with the specified ML-KEM\n key spec.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidGrantIdException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidGrantId", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified GrantId is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidGrantTokenException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidGrantToken", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified grant token is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidImportTokenException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidImportTokenException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the provided import token is invalid or is associated\n with a different KMS key.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidKeyUsageException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidKeyUsage", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected for one of the following reasons:

\n
    \n
  • \n

    The KeyUsage value of the KMS key is incompatible with the API\n operation.

    \n
  • \n
  • \n

    The encryption algorithm or signing algorithm specified for the operation is\n incompatible with the type of key material in the KMS key (KeySpec).

    \n
  • \n
\n

For encrypting, decrypting, re-encrypting, and generating data keys, the\n KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying\n messages, the KeyUsage must be SIGN_VERIFY. For generating and\n verifying message authentication codes (MACs), the KeyUsage must be\n GENERATE_VERIFY_MAC. For deriving key agreement secrets, the\n KeyUsage must be KEY_AGREEMENT. For encapsulating and decapsulating\n shared secrets, the KeyUsage must be ENCAPSULATE_DECAPSULATE. To find\n the KeyUsage of a KMS key, use the DescribeKey operation.

\n

To find the encryption or signing algorithms supported for a particular KMS key, use the\n DescribeKey operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#InvalidMarkerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidMarker", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the marker that specifies where pagination should next\n begin is not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#KMSInternalException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSInternal", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request was rejected because an internal exception occurred. The request can be\n retried.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.kms#KMSInvalidMacException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSInvalidMac", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the HMAC verification failed. HMAC verification fails\n when the HMAC computed by using the specified message, HMAC KMS key, and MAC algorithm does\n not match the HMAC specified in the request.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#KMSInvalidSignatureException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSInvalidSignature", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the signature verification failed. Signature verification\n fails when it cannot confirm that signature was produced by signing the specified message with\n the specified KMS key and signing algorithm.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#KMSInvalidStateException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSInvalidStateException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the state of the specified resource is not valid for this\n request.

\n

This exceptions means one of the following:

\n
    \n
  • \n

    The key state of the KMS key is not compatible with the operation.

    \n

    To find the key state, use the DescribeKey operation. For more\n information about which key states are compatible with each KMS operation, see\n Key states of KMS keys in the \n Key Management Service Developer Guide\n .

    \n
  • \n
  • \n

    For cryptographic operations on KMS keys in custom key stores, this exception\n represents a general failure with many possible causes. To identify the cause, see the\n error message that accompanies the exception.

    \n
  • \n
", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.kms#KeyAgreementAlgorithmSpec": { + "type": "enum", + "members": { + "ECDH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECDH" + } + } + } + }, + "com.amazonaws.kms#KeyAgreementAlgorithmSpecList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#KeyAgreementAlgorithmSpec" + } + }, + "com.amazonaws.kms#KeyEncryptionMechanism": { + "type": "enum", + "members": { + "RSAES_OAEP_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSAES_OAEP_SHA_256" + } + } + } + }, + "com.amazonaws.kms#KeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.kms#KeyLastUsageData": { + "type": "structure", + "members": { + "Operation": { + "target": "com.amazonaws.kms#KeyLastUsageTrackingOperation", + "traits": { + "smithy.api#documentation": "

The last successful cryptographic operation the KMS key was used for. Absent if the key has not been\n used since KMS began tracking.

" + } + }, + "Timestamp": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the KMS key was most recently used for a successful cryptographic\n operation. Absent if the key has not been used since KMS began tracking.

" + } + }, + "CloudTrailEventId": { + "target": "com.amazonaws.kms#CloudTrailEventIdType", + "traits": { + "smithy.api#documentation": "

The CloudTrail eventId associated with the last successful cryptographic operation.\n Absent if the key has not been used since KMS began tracking.

" + } + }, + "KmsRequestId": { + "target": "com.amazonaws.kms#KmsRequestIdType", + "traits": { + "smithy.api#documentation": "

The KMS request ID associated with the last successful cryptographic operation. Absent if the key\n has not been used since KMS began tracking.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains usage information about the last time the KMS key was used for a successful cryptographic\n operation.

" + } + }, + "com.amazonaws.kms#KeyLastUsageTrackingOperation": { + "type": "enum", + "members": { + "Decrypt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Decrypt" + } + }, + "DeriveSharedSecret": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeriveSharedSecret" + } + }, + "Encrypt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Encrypt" + } + }, + "GenerateDataKey": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKey" + } + }, + "GenerateDataKeyPair": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyPair" + } + }, + "GenerateDataKeyPairWithoutPlaintext": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyPairWithoutPlaintext" + } + }, + "GenerateDataKeyWithoutPlaintext": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateDataKeyWithoutPlaintext" + } + }, + "GenerateMac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GenerateMac" + } + }, + "ReEncrypt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReEncrypt" + } + }, + "Sign": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Sign" + } + }, + "Verify": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Verify" + } + }, + "VerifyMac": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VerifyMac" + } + }, + "Encapsulate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Encapsulate" + } + }, + "Decapsulate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Decapsulate" + } + } + } + }, + "com.amazonaws.kms#KeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#KeyListEntry" + } + }, + "com.amazonaws.kms#KeyListEntry": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Unique identifier of the key.

" + } + }, + "KeyArn": { + "target": "com.amazonaws.kms#ArnType", + "traits": { + "smithy.api#documentation": "

ARN of the key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about each entry in the key list.

" + } + }, + "com.amazonaws.kms#KeyManagerType": { + "type": "enum", + "members": { + "AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS" + } + }, + "CUSTOMER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOMER" + } + } + } + }, + "com.amazonaws.kms#KeyMaterialDescriptionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/_\\s.-]+$" + } + }, + "com.amazonaws.kms#KeyMaterialState": { + "type": "enum", + "members": { + "NON_CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NON_CURRENT" + } + }, + "CURRENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CURRENT" + } + }, + "PENDING_ROTATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_ROTATION" + } + }, + "PENDING_MULTI_REGION_IMPORT_AND_ROTATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_MULTI_REGION_IMPORT_AND_ROTATION" + } + } + } + }, + "com.amazonaws.kms#KeyMetadata": { + "type": "structure", + "members": { + "AWSAccountId": { + "target": "com.amazonaws.kms#AWSAccountIdType", + "traits": { + "smithy.api#documentation": "

The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The globally unique identifier for the KMS key.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.kms#ArnType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management Service (KMS) in the Example ARNs section of the Amazon Web Services General\n Reference.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time when the KMS key was created.

" + } + }, + "Enabled": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies whether the KMS key is enabled. When KeyState is\n Enabled this value is true, otherwise it is false.

" + } + }, + "Description": { + "target": "com.amazonaws.kms#DescriptionType", + "traits": { + "smithy.api#documentation": "

The description of the KMS key.

" + } + }, + "KeyUsage": { + "target": "com.amazonaws.kms#KeyUsageType", + "traits": { + "smithy.api#documentation": "

The cryptographic operations for which you can use the KMS key.

" + } + }, + "KeyState": { + "target": "com.amazonaws.kms#KeyState", + "traits": { + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key states of KMS keys in\n the Key Management Service Developer Guide.

" + } + }, + "DeletionDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time after which KMS deletes this KMS key. This value is present only when\n the KMS key is scheduled for deletion, that is, when its KeyState is\n PendingDeletion.

\n

When the primary key in a multi-Region key is scheduled for deletion but still has replica\n keys, its key state is PendingReplicaDeletion and the length of its waiting\n period is displayed in the PendingDeletionWindowInDays field.

" + } + }, + "ValidTo": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The earliest time at which any imported key material permanently associated with this KMS\n key expires. When a key material expires, KMS deletes the key material and the KMS key\n becomes unusable. This value is present only for KMS keys whose Origin is\n EXTERNAL and the ExpirationModel is\n KEY_MATERIAL_EXPIRES, otherwise this value is omitted.

" + } + }, + "Origin": { + "target": "com.amazonaws.kms#OriginType", + "traits": { + "smithy.api#documentation": "

The source of the key material for the KMS key. When this value is AWS_KMS,\n KMS created the key material. When this value is EXTERNAL, the key material was\n imported or the KMS key doesn't have any key material. When this value is\n AWS_CLOUDHSM, the key material was created in the CloudHSM cluster associated with\n a custom key store.

" + } + }, + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the custom key store that contains the KMS key. This field is\n present only when the KMS key is created in a custom key store.

" + } + }, + "CloudHsmClusterId": { + "target": "com.amazonaws.kms#CloudHsmClusterIdType", + "traits": { + "smithy.api#documentation": "

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When\n you create a KMS key in an CloudHSM custom key store, KMS creates the key material for the KMS\n key in the associated CloudHSM cluster. This field is present only when the KMS key is created in\n an CloudHSM key store.

" + } + }, + "ExpirationModel": { + "target": "com.amazonaws.kms#ExpirationModelType", + "traits": { + "smithy.api#documentation": "

Specifies whether the KMS key's key material expires. This value is present only when\n Origin is EXTERNAL, otherwise this value is omitted.

" + } + }, + "KeyManager": { + "target": "com.amazonaws.kms#KeyManagerType", + "traits": { + "smithy.api#documentation": "

The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or\n Amazon Web Services managed. For more information about the difference, see KMS keys in the Key Management Service Developer Guide.

" + } + }, + "CustomerMasterKeySpec": { + "target": "com.amazonaws.kms#CustomerMasterKeySpec", + "traits": { + "smithy.api#deprecated": { + "message": "This field has been deprecated. Instead, use the KeySpec field." + }, + "smithy.api#documentation": "

Instead, use the KeySpec field.

\n

The KeySpec and CustomerMasterKeySpec fields have the same\n value. We recommend that you use the KeySpec field in your code. However, to\n avoid breaking changes, KMS supports both fields.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", + "traits": { + "smithy.api#documentation": "

Describes the type of key material in the KMS key.

" + } + }, + "EncryptionAlgorithms": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The encryption algorithms that the KMS key supports. You cannot use the KMS key with other\n encryption algorithms within KMS.

\n

This value is present only when the KeyUsage of the KMS key is\n ENCRYPT_DECRYPT.

" + } + }, + "SigningAlgorithms": { + "target": "com.amazonaws.kms#SigningAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The signing algorithms that the KMS key supports. You cannot use the KMS key with other\n signing algorithms within KMS.

\n

This field appears only when the KeyUsage of the KMS key is\n SIGN_VERIFY.

" + } + }, + "KeyAgreementAlgorithms": { + "target": "com.amazonaws.kms#KeyAgreementAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The key agreement algorithm used to derive a shared secret.

" + } + }, + "EncapsulationAlgorithms": { + "target": "com.amazonaws.kms#EncapsulationAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The key encapsulation algorithm that the KMS key supports. This field appears only for KMS\n keys with a KeyUsage value of ENCAPSULATE_DECAPSULATE.

" + } + }, + "MultiRegion": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Indicates whether the KMS key is a multi-Region (True) or regional\n (False) key. This value is True for multi-Region primary and\n replica keys and False for regional KMS keys.

\n

For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

" + } + }, + "MultiRegionConfiguration": { + "target": "com.amazonaws.kms#MultiRegionConfiguration", + "traits": { + "smithy.api#documentation": "

Lists the primary and replica keys in same multi-Region key. This field is present only\n when the value of the MultiRegion field is True.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

\n
    \n
  • \n

    \n MultiRegionKeyType indicates whether the KMS key is a\n PRIMARY or REPLICA key.

    \n
  • \n
  • \n

    \n PrimaryKey displays the key ARN and Region of the primary key. This field\n displays the current KMS key if it is the primary key.

    \n
  • \n
  • \n

    \n ReplicaKeys displays the key ARNs and Regions of all replica keys. This\n field includes the current KMS key if it is a replica key.

    \n
  • \n
" + } + }, + "PendingDeletionWindowInDays": { + "target": "com.amazonaws.kms#PendingWindowInDaysType", + "traits": { + "smithy.api#documentation": "

The waiting period before the primary key in a multi-Region key is deleted. This waiting\n period begins when the last of its replica keys is deleted. This value is present only when\n the KeyState of the KMS key is PendingReplicaDeletion. That\n indicates that the KMS key is the primary key in a multi-Region key, it is scheduled for\n deletion, and it still has existing replica keys.

\n

When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its\n deletion date is displayed in the DeletionDate field. However, when the primary\n key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until\n all of its replica keys are deleted. This value displays that waiting period. When the last\n replica key in the multi-Region key is deleted, the KeyState of the scheduled\n primary key changes from PendingReplicaDeletion to PendingDeletion\n and the deletion date appears in the DeletionDate field.

" + } + }, + "MacAlgorithms": { + "target": "com.amazonaws.kms#MacAlgorithmSpecList", + "traits": { + "smithy.api#documentation": "

The message authentication code (MAC) algorithm that the HMAC KMS key supports.

\n

This value is present only when the KeyUsage of the KMS key is\n GENERATE_VERIFY_MAC.

" + } + }, + "XksKeyConfiguration": { + "target": "com.amazonaws.kms#XksKeyConfigurationType", + "traits": { + "smithy.api#documentation": "

Information about the external key that is associated with a KMS key in an external key\n store.

\n

For more information, see External key in the\n Key Management Service Developer Guide.

" + } + }, + "CurrentKeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the current key material. This value is present for symmetric encryption keys\n with AWS_KMS or EXTERNAL origin. These KMS keys support automatic\n or on-demand key rotation and can have multiple key materials associated with them. KMS uses\n the current key material for both encryption and decryption, and the non-current key material\n for decryption operations only.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains metadata about a KMS key.

\n

This data type is used as a response element for the CreateKey, DescribeKey, and ReplicateKey operations.

" + } + }, + "com.amazonaws.kms#KeySpec": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "RSA_3072": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_3072" + } + }, + "RSA_4096": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_4096" + } + }, + "ECC_NIST_P256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P256" + } + }, + "ECC_NIST_P384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P384" + } + }, + "ECC_NIST_P521": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_P521" + } + }, + "ECC_SECG_P256K1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_SECG_P256K1" + } + }, + "SYMMETRIC_DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SYMMETRIC_DEFAULT" + } + }, + "HMAC_224": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_224" + } + }, + "HMAC_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_256" + } + }, + "HMAC_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_384" + } + }, + "HMAC_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_512" + } + }, + "SM2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2" + } + }, + "ML_DSA_44": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_DSA_44" + } + }, + "ML_DSA_65": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_DSA_65" + } + }, + "ML_DSA_87": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_DSA_87" + } + }, + "ECC_NIST_EDWARDS25519": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECC_NIST_EDWARDS25519" + } + }, + "ML_KEM_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_512" + } + }, + "ML_KEM_768": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_768" + } + }, + "ML_KEM_1024": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_KEM_1024" + } + } + } + }, + "com.amazonaws.kms#KeyState": { + "type": "enum", + "members": { + "Creating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Creating" + } + }, + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + }, + "PendingDeletion": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PendingDeletion" + } + }, + "PendingImport": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PendingImport" + } + }, + "PendingReplicaDeletion": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PendingReplicaDeletion" + } + }, + "Unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Unavailable" + } + }, + "Updating": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Updating" + } + } + } + }, + "com.amazonaws.kms#KeyStorePasswordType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 7, + "max": 32 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.kms#KeyUnavailableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KeyUnavailable", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key was not available. You can retry\n the request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.kms#KeyUsageType": { + "type": "enum", + "members": { + "SIGN_VERIFY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SIGN_VERIFY" + } + }, + "ENCRYPT_DECRYPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENCRYPT_DECRYPT" + } + }, + "GENERATE_VERIFY_MAC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GENERATE_VERIFY_MAC" + } + }, + "KEY_AGREEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KEY_AGREEMENT" + } + }, + "ENCAPSULATE_DECAPSULATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENCAPSULATE_DECAPSULATE" + } + } + } + }, + "com.amazonaws.kms#KmsRequestIdType": { + "type": "string" + }, + "com.amazonaws.kms#LimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "LimitExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because a length constraint or quota was exceeded. For more\n information, see Quotas in\n the Key Management Service Developer Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#LimitType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.kms#ListAliases": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListAliasesRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListAliasesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of aliases in the caller's Amazon Web Services account and region. For more information\n about aliases, see CreateAlias.

\n

By default, the ListAliases operation returns all aliases in the account and\n region. To get only the aliases associated with a particular KMS key, use the\n KeyId parameter.

\n

The ListAliases response can include aliases that you created and associated\n with your customer managed keys, and aliases that Amazon Web Services created and associated with Amazon Web Services\n managed keys in your account. You can recognize Amazon Web Services aliases because their names have the\n format aws/, such as aws/dynamodb.

\n

The response might also include aliases that have no TargetKeyId field. These\n are predefined aliases that Amazon Web Services has created but has not yet associated with a KMS key.\n Aliases that Amazon Web Services creates in your account, including predefined aliases, do not count against\n your KMS\n aliases quota.

\n

\n Cross-account use: No. ListAliases does not\n return aliases in other Amazon Web Services accounts.

\n

\n Required permissions: kms:ListAliases (IAM policy)

\n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To list aliases", + "documentation": "The following example lists aliases.", + "output": { + "Aliases": [ + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/acm", + "AliasName": "alias/aws/acm", + "TargetKeyId": "da03f6f7-d279-427a-9cae-de48d07e5b66" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/ebs", + "AliasName": "alias/aws/ebs", + "TargetKeyId": "25a217e7-7170-4b8c-8bf6-045ea5f70e5b" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/rds", + "AliasName": "alias/aws/rds", + "TargetKeyId": "7ec3104e-c3f2-4b5c-bf42-bfc4772c6685" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/redshift", + "AliasName": "alias/aws/redshift", + "TargetKeyId": "08f7a25a-69e2-4fb5-8f10-393db27326fa" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/aws/s3", + "AliasName": "alias/aws/s3", + "TargetKeyId": "d2b0f1a3-580d-4f79-b836-bc983be8cfa5" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example1", + "AliasName": "alias/example1", + "TargetKeyId": "4da1e216-62d0-46c5-a7c0-5f3a3d2f8046" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example2", + "AliasName": "alias/example2", + "TargetKeyId": "f32fef59-2cc2-445b-8573-2d73328acbee" + }, + { + "AliasArn": "arn:aws:kms:us-east-2:111122223333:alias/example3", + "AliasName": "alias/example3", + "TargetKeyId": "1374ef38-d34e-4d5f-b2c9-4e0daee38855" + } + ], + "Truncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Aliases", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListAliasesRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Lists only aliases that are associated with the specified KMS key. Enter a KMS key in your\n Amazon Web Services account.

\n

This parameter is optional. If you omit it, ListAliases returns all aliases\n in the account and Region.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListAliasesResponse": { + "type": "structure", + "members": { + "Aliases": { + "target": "com.amazonaws.kms#AliasList", + "traits": { + "smithy.api#documentation": "

A list of aliases.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListGrants": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListGrantsRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListGrantsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantIdException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of all grants for the specified KMS key.

\n

You must specify the KMS key in all requests. You can filter the grant list by grant ID,\n grantee principal, or grantee service principal.

\n

For detailed information about grants, including grant terminology, see Grants in KMS in the\n \n Key Management Service Developer Guide\n . For examples of creating grants in several\n programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

\n \n

When a grant is created with the GranteePrincipal field, the ListGrants\n response usually contains the user or role designated as the grantee principal in the grant. However, if the grantee principal\n is an Amazon Web Services service, the GranteePrincipal field contains an Amazon Web Services service principal, which\n might correspond to several different grantee principals, such as an IAM user, IAM role, or Amazon Web Services account.

\n

When a grant is created with the GranteeServicePrincipal field, the ListGrants\n\t response always includes a GranteeServicePrincipal that indicates the grantee is actually\n an Amazon Web Services service principal.

\n
\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:ListGrants (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Grants", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListGrantsRequest": { + "type": "structure", + "members": { + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Returns only grants for the specified KMS key. This parameter is required.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "GrantId": { + "target": "com.amazonaws.kms#GrantIdType", + "traits": { + "smithy.api#documentation": "

Returns only the grant with the specified grant ID. The grant ID uniquely identifies the\n grant.

" + } + }, + "GranteePrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

Returns only grants where the specified principal is the grantee principal for the\n grant.

\n

You can specify either GranteePrincipal or\n GranteeServicePrincipal, but not both.

" + } + }, + "GranteeServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

Returns only grants where the specified Amazon Web Services service principal is the grantee service\n principal for the grant. This filter is only usable by callers in a service principal.

\n

You can specify either GranteePrincipal or\n GranteeServicePrincipal, but not both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListGrantsResponse": { + "type": "structure", + "members": { + "Grants": { + "target": "com.amazonaws.kms#GrantList", + "traits": { + "smithy.api#documentation": "

A list of grants.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + } + }, + "com.amazonaws.kms#ListKeyPolicies": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListKeyPoliciesRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListKeyPoliciesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the names of the key policies that are attached to a KMS key. This operation is\n designed to get policy names that you can use in a GetKeyPolicy operation.\n However, the only valid policy name is default.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ListKeyPolicies (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To list key policies for a KMS key", + "documentation": "The following example lists key policies for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "PolicyNames": [ + "default" + ], + "Truncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "PolicyNames", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListKeyPoliciesRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets the names of key policies for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

\n

Only one policy can be attached to a key.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListKeyPoliciesResponse": { + "type": "structure", + "members": { + "PolicyNames": { + "target": "com.amazonaws.kms#PolicyNameList", + "traits": { + "smithy.api#documentation": "

A list of key policy names. The only valid value is default.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListKeyRotations": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListKeyRotationsRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListKeyRotationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the key materials associated with the specified KMS key. You can\n use the optional IncludeKeyMaterial parameter to control which key materials are\n included in the response.

\n

You must specify the KMS key in all requests. You can refine the key rotations list by\n limiting the number of rotations returned.

\n

For detailed information about automatic and on-demand key rotations, see Rotate KMS keys in the\n Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ListKeyRotations (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Rotations", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListKeyRotationsRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets the key rotations for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "IncludeKeyMaterial": { + "target": "com.amazonaws.kms#IncludeKeyMaterial", + "traits": { + "smithy.api#documentation": "

Use this optional parameter to control which key materials associated with this key are\n listed in the response. The default value of this parameter is ROTATIONS_ONLY. If\n you omit this parameter, KMS returns information on the key materials created by automatic\n or on-demand key rotation. When you specify a value of ALL_KEY_MATERIAL, KMS\n adds the first key material and any imported key material pending rotation to the response.\n This parameter can only be used with KMS keys that support automatic or on-demand key\n rotation.

" + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListKeyRotationsResponse": { + "type": "structure", + "members": { + "Rotations": { + "target": "com.amazonaws.kms#RotationsList", + "traits": { + "smithy.api#documentation": "

A list of completed key material rotations. When the optional input parameter\n IncludeKeyMaterial is specified with a value of ALL_KEY_MATERIAL,\n this list includes the first key material and any imported key material pending\n rotation.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListKeys": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListKeysRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListKeysResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets a list of all KMS keys in the caller's Amazon Web Services account and Region.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ListKeys (IAM policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To list KMS keys", + "documentation": "The following example lists KMS keys.", + "output": { + "Keys": [ + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/0d990263-018e-4e65-a703-eff731de951e", + "KeyId": "0d990263-018e-4e65-a703-eff731de951e" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/144be297-0ae1-44ac-9c8f-93cd8c82f841", + "KeyId": "144be297-0ae1-44ac-9c8f-93cd8c82f841" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/21184251-b765-428e-b852-2c7353e72571", + "KeyId": "21184251-b765-428e-b852-2c7353e72571" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/214fe92f-5b03-4ae1-b350-db2a45dbe10c", + "KeyId": "214fe92f-5b03-4ae1-b350-db2a45dbe10c" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/339963f2-e523-49d3-af24-a0fe752aa458", + "KeyId": "339963f2-e523-49d3-af24-a0fe752aa458" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/b776a44b-df37-4438-9be4-a27494e4271a", + "KeyId": "b776a44b-df37-4438-9be4-a27494e4271a" + }, + { + "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb", + "KeyId": "deaf6c9e-cf2c-46a6-bf6d-0b6d487cffbb" + } + ], + "Truncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Keys", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListKeysRequest": { + "type": "structure", + "members": { + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListKeysResponse": { + "type": "structure", + "members": { + "Keys": { + "target": "com.amazonaws.kms#KeyList", + "traits": { + "smithy.api#documentation": "

A list of KMS keys.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListResourceTags": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListResourceTagsRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListResourceTagsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns all tags on the specified KMS key.

\n

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in\n the Amazon Web Services General Reference. For information about using\n tags in KMS, see Tags in\n KMS.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ListResourceTags (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To list tags for a KMS key", + "documentation": "The following example lists tags for a KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "Tags": [ + { + "TagKey": "CostCenter", + "TagValue": "87654" + }, + { + "TagKey": "CreatedBy", + "TagValue": "ExampleUser" + }, + { + "TagKey": "Purpose", + "TagValue": "Test" + } + ], + "Truncated": false + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Tags", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListResourceTagsRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets tags on the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1 and 50, inclusive. If\n you do not include a value, it defaults to 50.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

\n

Do not attempt to construct this value. Use only the value of NextMarker from\n the truncated response you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListResourceTagsResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.kms#TagList", + "traits": { + "smithy.api#documentation": "

A list of tags. Each tag consists of a tag key and a tag value.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

\n

Do not assume or infer any information from this value.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListRetirableGrants": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListRetirableGrantsRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListGrantsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about all grants in the Amazon Web Services account and Region that have the\n specified retiring principal or retiring service principal.

\n

You can specify any principal in your Amazon Web Services account. The grants that are returned include\n grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this\n operation to determine which grants you may retire. To retire a grant, use the RetireGrant operation.

\n

For detailed information about grants, including grant terminology, see Grants in KMS in the\n \n Key Management Service Developer Guide\n . For examples of creating grants in several\n programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

\n

\n Cross-account use: You must specify a principal in your\n Amazon Web Services account. This operation returns a list of grants where the retiring principal specified\n in the ListRetirableGrants request is the same retiring principal on the grant.\n This can include grants on KMS keys owned by other Amazon Web Services accounts, but you do not need\n kms:ListRetirableGrants permission (or any other additional permission) in any\n Amazon Web Services account other than your own.

\n

\n Required permissions: kms:ListRetirableGrants (IAM policy) in your\n Amazon Web Services account.

\n \n

When listing retirable grants by RetiringPrincipal, KMS authorizes\n ListRetirableGrants requests by evaluating the caller\n account's kms:ListRetirableGrants permissions. The authorized resource in\n ListRetirableGrants calls is the retiring principal specified in the request.\n KMS does not evaluate the caller's permissions to verify their access to any KMS keys or\n grants that might be returned by the ListRetirableGrants call.

\n

The RetiringServicePrincipal filter is only usable by callers in a\n service principal.

\n
\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Grants", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListRetirableGrantsRequest": { + "type": "structure", + "members": { + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + }, + "RetiringPrincipal": { + "target": "com.amazonaws.kms#PrincipalIdType", + "traits": { + "smithy.api#documentation": "

The retiring principal for which to list grants. Enter a principal in your\n Amazon Web Services account.

\n

To specify the retiring principal, use the Amazon Resource Name (ARN) of an\n Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles,\n federated users, and assumed role users. For help with the ARN syntax for a principal, see\n IAM ARNs in the \n Identity and Access Management User Guide\n .

\n

You must specify either RetiringPrincipal or\n RetiringServicePrincipal, but not both.

" + } + }, + "RetiringServicePrincipal": { + "target": "com.amazonaws.kms#ServicePrincipalType", + "traits": { + "smithy.api#documentation": "

The retiring service principal for which to list grants. This filter is only usable by\n callers in a service principal.

\n

You must specify either RetiringPrincipal or\n RetiringServicePrincipal, but not both.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#MacAlgorithmSpec": { + "type": "enum", + "members": { + "HMAC_SHA_224": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_SHA_224" + } + }, + "HMAC_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_SHA_256" + } + }, + "HMAC_SHA_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_SHA_384" + } + }, + "HMAC_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HMAC_SHA_512" + } + } + } + }, + "com.amazonaws.kms#MacAlgorithmSpecList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#MacAlgorithmSpec" + } + }, + "com.amazonaws.kms#MalformedPolicyDocumentException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "MalformedPolicyDocument", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified policy is not syntactically or semantically\n correct.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#MarkerType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\u0020-\\u00FF]*$" + } + }, + "com.amazonaws.kms#MessageType": { + "type": "enum", + "members": { + "RAW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RAW" + } + }, + "DIGEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DIGEST" + } + }, + "EXTERNAL_MU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL_MU" + } + } + } + }, + "com.amazonaws.kms#MultiRegionConfiguration": { + "type": "structure", + "members": { + "MultiRegionKeyType": { + "target": "com.amazonaws.kms#MultiRegionKeyType", + "traits": { + "smithy.api#documentation": "

Indicates whether the KMS key is a PRIMARY or REPLICA\n key.

" + } + }, + "PrimaryKey": { + "target": "com.amazonaws.kms#MultiRegionKey", + "traits": { + "smithy.api#documentation": "

Displays the key ARN and Region of the primary key. This field includes the current KMS\n key if it is the primary key.

" + } + }, + "ReplicaKeys": { + "target": "com.amazonaws.kms#MultiRegionKeyList", + "traits": { + "smithy.api#documentation": "

displays the key ARNs and Regions of all replica keys. This field includes the current KMS\n key if it is a replica key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of this multi-Region key. This field appears only when the KMS\n key is a primary or replica of a multi-Region key.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

" + } + }, + "com.amazonaws.kms#MultiRegionKey": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.kms#ArnType", + "traits": { + "smithy.api#documentation": "

Displays the key ARN of a primary or replica key of a multi-Region key.

" + } + }, + "Region": { + "target": "com.amazonaws.kms#RegionType", + "traits": { + "smithy.api#documentation": "

Displays the Amazon Web Services Region of a primary or replica key in a multi-Region key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the primary or replica key in a multi-Region key.

" + } + }, + "com.amazonaws.kms#MultiRegionKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#MultiRegionKey" + } + }, + "com.amazonaws.kms#MultiRegionKeyType": { + "type": "enum", + "members": { + "PRIMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRIMARY" + } + }, + "REPLICA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICA" + } + } + } + }, + "com.amazonaws.kms#NotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The request was rejected because the specified entity or resource could not be\n found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.kms#NullableBooleanType": { + "type": "boolean" + }, + "com.amazonaws.kms#NumberOfBytesType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.kms#OriginType": { + "type": "enum", + "members": { + "AWS_KMS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_KMS" + } + }, + "EXTERNAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL" + } + }, + "AWS_CLOUDHSM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_CLOUDHSM" + } + }, + "EXTERNAL_KEY_STORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL_KEY_STORE" + } + } + } + }, + "com.amazonaws.kms#PendingWindowInDaysType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 365 + } + } + }, + "com.amazonaws.kms#PlaintextType": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.kms#PolicyNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#PolicyNameType" + } + }, + "com.amazonaws.kms#PolicyNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w]+$" + } + }, + "com.amazonaws.kms#PolicyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 131072 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + } + }, + "com.amazonaws.kms#PrincipalIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[\\w+=,.@:/-]+$" + } + }, + "com.amazonaws.kms#PublicKeyType": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8192 + } + } + }, + "com.amazonaws.kms#PutKeyPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#PutKeyPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Attaches a key policy to the specified KMS key.

\n

For more information about key policies, see Key Policies in the Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n . For examples of adding a key policy in multiple programming languages,\n see Use\n PutKeyPolicy with an Amazon Web Services SDK or CLI in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:PutKeyPolicy (key policy)

\n

\n Related operations: GetKeyPolicy\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To attach a key policy to a KMS key", + "documentation": "The following example attaches a key policy to the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "PolicyName": "default", + "Policy": "{\n \"Version\": \"2012-10-17\",\n \"Id\": \"custom-policy-2016-12-07\",\n \"Statement\": [\n {\n \"Sid\": \"Enable IAM User Permissions\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::111122223333:root\"\n },\n \"Action\": \"kms:*\",\n \"Resource\": \"*\"\n },\n {\n \"Sid\": \"Allow access for Key Administrators\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": [\n \"arn:aws:iam::111122223333:user/ExampleAdminUser\",\n \"arn:aws:iam::111122223333:role/ExampleAdminRole\"\n ]\n },\n \"Action\": [\n \"kms:Create*\",\n \"kms:Describe*\",\n \"kms:Enable*\",\n \"kms:List*\",\n \"kms:Put*\",\n \"kms:Update*\",\n \"kms:Revoke*\",\n \"kms:Disable*\",\n \"kms:Get*\",\n \"kms:Delete*\",\n \"kms:ScheduleKeyDeletion\",\n \"kms:CancelKeyDeletion\"\n ],\n \"Resource\": \"*\"\n },\n {\n \"Sid\": \"Allow use of the key\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"\n },\n \"Action\": [\n \"kms:Encrypt\",\n \"kms:Decrypt\",\n \"kms:ReEncrypt*\",\n \"kms:GenerateDataKey*\",\n \"kms:DescribeKey\"\n ],\n \"Resource\": \"*\"\n },\n {\n \"Sid\": \"Allow attachment of persistent resources\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::111122223333:role/ExamplePowerUserRole\"\n },\n \"Action\": [\n \"kms:CreateGrant\",\n \"kms:ListGrants\",\n \"kms:RevokeGrant\"\n ],\n \"Resource\": \"*\",\n \"Condition\": {\n \"Bool\": {\n \"kms:GrantIsForAWSResource\": \"true\"\n }\n }\n }\n ]\n}\n" + } + } + ] + } + }, + "com.amazonaws.kms#PutKeyPolicyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Sets the key policy on the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "PolicyName": { + "target": "com.amazonaws.kms#PolicyNameType", + "traits": { + "smithy.api#documentation": "

The name of the key policy. If no policy name is specified, the default value is\n default. The only valid value is default.

" + } + }, + "Policy": { + "target": "com.amazonaws.kms#PolicyType", + "traits": { + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

The key policy must meet the following criteria:

\n
    \n
  • \n

    The key policy must allow the calling principal to make a\n subsequent PutKeyPolicy request on the KMS key. This reduces the risk that\n the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit\n this condition, set BypassPolicyLockoutSafetyCheck to true.)

    \n
  • \n
  • \n

    Each statement in the key policy must contain one or more principals. The principals\n in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services\n principal, you might need to enforce a delay before including the new principal in a key\n policy because the new principal might not be immediately visible to KMS. For more\n information, see Changes that I make are not always immediately visible in the Amazon Web Services\n Identity and Access Management User Guide.

    \n
  • \n
\n \n

If either of the required Resource or Action elements are\n missing from a key policy statement, the policy statement has no effect. When a key policy\n statement is missing one of these elements, the KMS console correctly reports an error,\n but the PutKeyPolicy API request succeeds, even though the policy statement is\n ineffective.

\n

For more information on required key policy elements, see Elements in a key\n policy in the Key Management Service Developer Guide.

\n
\n

A key policy document can include only the following characters:

\n
    \n
  • \n

    Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

    \n
  • \n
  • \n

    Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

    \n
  • \n
  • \n

    The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

    \n
  • \n
\n \n

If the key policy exceeds the length constraint, KMS returns a\n LimitExceededException.

\n
\n

For information about key policies, see Key policies in KMS in the\n Key Management Service Developer Guide.For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

", + "smithy.api#required": {} + } + }, + "BypassPolicyLockoutSafetyCheck": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, see Default key policy in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy\n request on the KMS key.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ReEncrypt": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ReEncryptRequest" + }, + "output": { + "target": "com.amazonaws.kms#ReEncryptResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#IncorrectKeyException" + }, + { + "target": "com.amazonaws.kms#InvalidCiphertextException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this\n operation to change the KMS key under which data is encrypted, such as when you manually rotate a\n KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt\n ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

\n

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a\n KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the\n public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced\n by other libraries, such as the Amazon Web Services\n Encryption SDK or Amazon S3 client-side encryption.\n These libraries return a ciphertext format that is incompatible with KMS.

\n

When you use the ReEncrypt operation, you need to provide information for the\n decrypt operation and the subsequent encrypt operation.

\n
    \n
  • \n

    If your ciphertext was encrypted under an asymmetric KMS key, you must use the\n SourceKeyId parameter to identify the KMS key that encrypted the\n ciphertext. You must also supply the encryption algorithm that was used. This information\n is required to decrypt the data.

    \n
  • \n
  • \n

    If your ciphertext was encrypted under a symmetric encryption KMS key, the\n SourceKeyId parameter is optional. KMS can get this information from\n metadata that it adds to the symmetric ciphertext blob. This feature adds durability to\n your implementation by ensuring that authorized users can decrypt ciphertext decades after\n it was encrypted, even if they've lost track of the key ID. However, specifying the source\n KMS key is always recommended as a best practice. When you use the\n SourceKeyId parameter to specify a KMS key, KMS uses only the KMS key you\n specify. If the ciphertext was encrypted under a different KMS key, the\n ReEncrypt operation fails. This practice ensures that you use the KMS key\n that you intend.

    \n
  • \n
  • \n

    To reencrypt the data, you must use the DestinationKeyId parameter to\n specify the KMS key that re-encrypts the data after it is decrypted. If the destination\n KMS key is an asymmetric KMS key, you must also provide the encryption algorithm. The\n algorithm that you choose must be compatible with the KMS key.

    \n \n

    When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

    \n

    You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

    \n
    \n
  • \n
\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n \n

When using grants with SourceArn constraints for\n ReEncrypt operations, the grants on both the source KMS key (for\n ReEncryptFrom) and the destination KMS key (for ReEncryptTo)\n must specify the same SourceArn value.

\n
\n

\n Cross-account use: Yes. The source KMS key and\n destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a\n different account than the caller. To specify a KMS key in a different account, use the key ARN\n or alias ARN. A short key ID\n is also acceptable for the source key when decrypting symmetric ciphertexts, though\n using a full key ARN is recommended to be more explicit about the intended KMS key.

\n

\n Required permissions:

\n
    \n
  • \n

    \n kms:ReEncryptFrom\n permission on the source KMS key (key policy)

    \n
  • \n
  • \n

    \n kms:ReEncryptTo\n permission on the destination KMS key (key policy)

    \n
  • \n
\n

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\"\n permission in your key policy. This permission is\n automatically included in the key policy when you use the console to create a KMS key. But you\n must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To reencrypt data", + "documentation": "The following example reencrypts data with the specified KMS key.", + "input": { + "CiphertextBlob": "", + "DestinationKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" + }, + "output": { + "CiphertextBlob": "", + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "DestinationKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", + "DestinationEncryptionAlgorithm": "SYMMETRIC_DEFAULT", + "SourceEncryptionAlgorithm": "SYMMETRIC_DEFAULT", + "SourceKeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "SourceKeyMaterialId": "1c6be7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" + } + } + ] + } + }, + "com.amazonaws.kms#ReEncryptRequest": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

Ciphertext of the data to reencrypt.

\n

This parameter is required in all cases except when DryRun is true and DryRunModifiers is set to IGNORE_CIPHERTEXT.

" + } + }, + "SourceEncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies the encryption context to use to decrypt the ciphertext. Enter the same\n encryption context that was used to encrypt the ciphertext.

\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "SourceKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Specifies the KMS key that KMS will use to decrypt the ciphertext before it is\n re-encrypted.

\n

Enter a key ID of the KMS key that was used to encrypt the ciphertext. If you identify a\n different KMS key, the ReEncrypt operation throws an\n IncorrectKeyException.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key or when DryRun is true and DryRunModifiers is set to\n IGNORE_CIPHERTEXT. If you used a symmetric encryption KMS key, KMS can get the KMS key\n from metadata that it adds to the symmetric ciphertext blob. However, it is always recommended as a best\n practice. This practice ensures that you use the KMS key that you intend.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you should use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + } + }, + "DestinationKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the KMS key that is used to reencrypt the data. Specify a\n symmetric encryption KMS key or an asymmetric KMS key with a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage value of a KMS key, use the\n DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "DestinationEncryptionContext": { + "target": "com.amazonaws.kms#EncryptionContextType", + "traits": { + "smithy.api#documentation": "

Specifies that encryption context to use when the reencrypting the data.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

A destination encryption context is valid only when the destination KMS key is a symmetric\n encryption KMS key. The standard ciphertext format for asymmetric KMS keys does not include\n fields for metadata.

\n

An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. \nWhen you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported\nonly on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended.

\n

For more information, see\nEncryption context in the Key Management Service Developer Guide.

" + } + }, + "SourceEncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it\n is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm\n used for symmetric encryption KMS keys.

\n

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a\n different algorithm, the decrypt attempt fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key.

" + } + }, + "DestinationEncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to reecrypt the data after it has\n decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption\n algorithm used for symmetric encryption KMS keys.

\n

This parameter is required only when the destination KMS key is an asymmetric KMS\n key.

" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + }, + "DryRunModifiers": { + "target": "com.amazonaws.kms#DryRunModifierList", + "traits": { + "smithy.api#documentation": "

Specifies the modifiers to apply to the dry run operation. DryRunModifiers is an optional parameter that only applies when DryRun is \n set to true.

\n

When set to IGNORE_CIPHERTEXT, KMS performs only authorization validation without ciphertext validation. This allows you to test permissions \n without requiring a valid ciphertext blob.

\n

To learn more about how to use this parameter, see Testing your \n permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ReEncryptResponse": { + "type": "structure", + "members": { + "CiphertextBlob": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The reencrypted data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "SourceKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Unique identifier of the KMS key used to originally encrypt the data.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to reencrypt the data.

" + } + }, + "SourceEncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The encryption algorithm that was used to decrypt the ciphertext before it was\n reencrypted.

" + } + }, + "DestinationEncryptionAlgorithm": { + "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The encryption algorithm that was used to reencrypt the data.

" + } + }, + "SourceKeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to originally encrypt the data. This field is\n present only when the original encryption used a symmetric encryption KMS key.

" + } + }, + "DestinationKeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

The identifier of the key material used to reencrypt the data. This field is present only\n when data is reencrypted using a symmetric encryption KMS key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#RecipientInfo": { + "type": "structure", + "members": { + "KeyEncryptionAlgorithm": { + "target": "com.amazonaws.kms#KeyEncryptionMechanism", + "traits": { + "smithy.api#documentation": "

The encryption algorithm that KMS should use with the public key for an Amazon Web Services Nitro\n Enclave or NitroTPM to encrypt plaintext values for the response. The only valid value is\n RSAES_OAEP_SHA_256.

" + } + }, + "AttestationDocument": { + "target": "com.amazonaws.kms#AttestationDocumentType", + "traits": { + "smithy.api#documentation": "

The attestation document for an Amazon Web Services Nitro Enclave or a NitroTPM. This document includes\n the enclave's public key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the party that receives the response from the API\n operation.

\n

This data type is designed to support Amazon Web Services Nitro Enclaves and Amazon Web Services NitroTPM,\n which lets you create an attested environment in Amazon EC2. For information about the interaction between KMS and Amazon Web Services Nitro Enclaves or Amazon Web Services NitroTPM, see Cryptographic attestation support in KMS in the Key Management Service Developer Guide.

" + } + }, + "com.amazonaws.kms#RegionType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^([a-z]+-){2,3}\\d+$" + } + }, + "com.amazonaws.kms#ReplicateKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ReplicateKeyRequest" + }, + "output": { + "target": "com.amazonaws.kms#ReplicateKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#AlreadyExistsException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#MalformedPolicyDocumentException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#TagException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Replicates a multi-Region key into the specified Region. This operation creates a\n multi-Region replica key based on a multi-Region primary key in a different Region of the same\n Amazon Web Services partition. You can create multiple replicas of a primary key, but each must be in a\n different Region. To create a multi-Region primary key, use the CreateKey\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

\n

A replica key is a fully-functional KMS key that can be used\n independently of its primary and peer replica keys. A primary key and its replica keys share\n properties that make them interoperable. They have the same key ID and key material. They also\n have the same key spec, key usage, key material origin, and automatic key rotation status.\n KMS automatically synchronizes these shared properties among related multi-Region keys. All\n other properties of a replica key can differ, including its key policy, tags, aliases, and key state. KMS pricing and quotas for KMS keys\n apply to each primary key and replica key.

\n

When this operation completes, the new replica key has a transient key state of\n Creating. This key state changes to Enabled (or\n PendingImport) after a few seconds when the process of creating the new replica\n key is complete. While the key state is Creating, you can manage key, but you\n cannot yet use it in cryptographic operations. If you are creating and using the replica key\n programmatically, retry on KMSInvalidStateException or call\n DescribeKey to check its KeyState value before using it. For\n details about the Creating key state, see Key states of KMS keys in the\n Key Management Service Developer Guide.

\n

You cannot create more than one replica of a primary key in any Region. If the Region\n already includes a replica of the key you're trying to replicate, ReplicateKey\n returns an AlreadyExistsException error. If the key state of the existing replica\n is PendingDeletion, you can cancel the scheduled key deletion (CancelKeyDeletion) or wait for the key to be deleted. The new replica key you\n create will have the same shared\n properties as the original replica key.

\n

The CloudTrail log of a ReplicateKey operation records a\n ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

\n

If you replicate a multi-Region primary key with imported key material, the replica key is\n created with no key material. You must import the same key material that you imported into the\n primary key.

\n

To convert a replica key to a primary key, use the UpdatePrimaryRegion\n operation.

\n \n

\n ReplicateKey uses different default values for the KeyPolicy\n and Tags parameters than those used in the KMS console. For details, see the\n parameter descriptions.

\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a replica key in a different Amazon Web Services account.

\n

\n Required permissions:

\n
    \n
  • \n

    \n kms:ReplicateKey on the primary key (in the primary key's Region).\n Include this permission in the primary key's key policy.

    \n
  • \n
  • \n

    \n kms:CreateKey in an IAM policy in the replica Region.

    \n
  • \n
  • \n

    To use the Tags parameter, kms:TagResource in an IAM policy\n in the replica Region.

    \n
  • \n
\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To replicate a multi-Region key in a different AWS Region", + "documentation": "This example creates a multi-Region replica key in us-west-2 of a multi-Region primary key in us-east-1.", + "input": { + "KeyId": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "ReplicaRegion": "us-west-2" + }, + "output": { + "ReplicaKeyMetadata": { + "MultiRegion": true, + "MultiRegionConfiguration": { + "MultiRegionKeyType": "REPLICA", + "PrimaryKey": { + "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "us-east-1" + }, + "ReplicaKeys": [ + { + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "Region": "us-west-2" + } + ] + }, + "AWSAccountId": "111122223333", + "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "CreationDate": 1607472987.918, + "Description": "", + "Enabled": true, + "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", + "KeyManager": "CUSTOMER", + "KeyState": "Enabled", + "KeyUsage": "ENCRYPT_DECRYPT", + "Origin": "AWS_KMS", + "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", + "EncryptionAlgorithms": [ + "SYMMETRIC_DEFAULT" + ] + }, + "ReplicaPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Id\" : \"key-default-1\",...}", + "ReplicaTags": [] + } + } + ] + } + }, + "com.amazonaws.kms#ReplicateKeyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the multi-Region primary key that is being replicated. To determine whether a\n KMS key is a multi-Region primary key, use the DescribeKey operation to\n check the value of the MultiRegionKeyType property.

\n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n
    \n
  • \n

    Key ID: mrk-1234abcd12ab34cd56ef1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "ReplicaRegion": { + "target": "com.amazonaws.kms#RegionType", + "traits": { + "smithy.api#documentation": "

The Region ID of the Amazon Web Services Region for this replica key.

\n

Enter the Region ID, such as us-east-1 or ap-southeast-2. For a\n list of Amazon Web Services Regions in which KMS is supported, see KMS service endpoints in the\n Amazon Web Services General Reference.

\n

The replica must be in a different Amazon Web Services Region than its primary key and other replicas of\n that primary key, but in the same Amazon Web Services partition. KMS must be available in the replica\n Region. If the Region is not enabled by default, the Amazon Web Services account must be enabled in the\n Region. For information about Amazon Web Services partitions, see Amazon Resource Names (ARNs) in the\n Amazon Web Services General Reference. For information about enabling and disabling Regions, see Enabling a\n Region and Disabling a Region in the\n Amazon Web Services General Reference.

", + "smithy.api#required": {} + } + }, + "Policy": { + "target": "com.amazonaws.kms#PolicyType", + "traits": { + "smithy.api#documentation": "

The key policy to attach to the KMS key. This parameter is optional. If you do not provide\n a key policy, KMS attaches the default key policy to the KMS key.

\n

The key policy is not a shared property of multi-Region keys. You can specify the same key\n policy or a different key policy for each key in a set of related multi-Region keys. KMS\n does not synchronize this property.

\n

If you provide a key policy, it must meet the following criteria:

\n
    \n
  • \n

    The key policy must allow the calling principal to make a\n subsequent PutKeyPolicy request on the KMS key. This reduces the risk that\n the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit\n this condition, set BypassPolicyLockoutSafetyCheck to true.)

    \n
  • \n
  • \n

    Each statement in the key policy must contain one or more principals. The principals\n in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services\n principal, you might need to enforce a delay before including the new principal in a key\n policy because the new principal might not be immediately visible to KMS. For more\n information, see Changes that I make are not always immediately visible in the Amazon Web Services\n Identity and Access Management User Guide.

    \n
  • \n
\n

A key policy document can include only the following characters:

\n
    \n
  • \n

    Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

    \n
  • \n
  • \n

    Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

    \n
  • \n
  • \n

    The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

    \n
  • \n
\n

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

" + } + }, + "BypassPolicyLockoutSafetyCheck": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, see Default key policy in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy\n request on the KMS key.

" + } + }, + "Description": { + "target": "com.amazonaws.kms#DescriptionType", + "traits": { + "smithy.api#documentation": "

A description of the KMS key. The default value is an empty string (no\n description).

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

The description is not a shared property of multi-Region keys. You can specify the same\n description or a different description for each key in a set of related multi-Region keys.\n KMS does not synchronize this property.

" + } + }, + "Tags": { + "target": "com.amazonaws.kms#TagList", + "traits": { + "smithy.api#documentation": "

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it\n is created. To tag an existing KMS key, use the TagResource\n operation.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Tags are not a shared property of multi-Region keys. You can specify the same tags or\n different tags for each key in a set of related multi-Region keys. KMS does not synchronize\n this property.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag\n value, KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tags in KMS.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ReplicateKeyResponse": { + "type": "structure", + "members": { + "ReplicaKeyMetadata": { + "target": "com.amazonaws.kms#KeyMetadata", + "traits": { + "smithy.api#documentation": "

Displays details about the new replica key, including its Amazon Resource Name (key ARN) and\n Key states of KMS keys. It also includes the ARN and Amazon Web Services Region of its primary key and other\n replica keys.

" + } + }, + "ReplicaPolicy": { + "target": "com.amazonaws.kms#PolicyType", + "traits": { + "smithy.api#documentation": "

The key policy of the new replica key. The value is a key policy document in JSON\n format.

" + } + }, + "ReplicaTags": { + "target": "com.amazonaws.kms#TagList", + "traits": { + "smithy.api#documentation": "

The tags on the new replica key. The value is a list of tag key and tag value\n pairs.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#RetireGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#RetireGrantRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantIdException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To\n identify the grant to retire, use a grant token, or both the grant ID and a\n key identifier (key ID or key ARN) of the KMS key. The CreateGrant operation\n returns both values.

\n

This operation can be called by the retiring principal for a grant,\n by the grantee principal if the grant allows the RetireGrant\n operation, and by the Amazon Web Services account in which the grant is created. It can also be called by\n principals to whom permission for retiring a grant is delegated.

\n

For detailed information about grants, including grant terminology, see Grants in KMS in the\n \n Key Management Service Developer Guide\n . For examples of creating grants in several\n programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

\n

\n Cross-account use: Yes. You can retire a grant on a KMS\n key in a different Amazon Web Services account.

\n

\n Required permissions: Permission to retire a grant is\n determined primarily by the grant. For details, see Retiring and revoking grants in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To retire a grant", + "documentation": "The following example retires a grant.", + "input": { + "KeyId": "arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60" + } + } + ] + } + }, + "com.amazonaws.kms#RetireGrantRequest": { + "type": "structure", + "members": { + "GrantToken": { + "target": "com.amazonaws.kms#GrantTokenType", + "traits": { + "smithy.api#documentation": "

Identifies the grant to be retired. You can use a grant token to identify a new grant even\n before it has achieved eventual consistency.

\n

Only the CreateGrant operation returns a grant token. For details, see\n Grant token\n and Eventual consistency in the Key Management Service Developer Guide.

" + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The key ARN KMS key associated with the grant. To find the key ARN, use the ListKeys operation.

\n

For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

" + } + }, + "GrantId": { + "target": "com.amazonaws.kms#GrantIdType", + "traits": { + "smithy.api#documentation": "

Identifies the grant to retire. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

\n
    \n
  • \n

    Grant ID Example -\n 0123456789012345678901234567890123456789012345678901234567890123

    \n
  • \n
" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#RevokeGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#RevokeGrantRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantIdException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the\n grant allows. For more information, see Retiring and revoking grants in the\n \n Key Management Service Developer Guide\n .

\n

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in\n the \n Key Management Service Developer Guide\n .

\n

For detailed information about grants, including grant terminology, see Grants in KMS in the\n \n Key Management Service Developer Guide\n . For examples of creating grants in several\n programming languages, see Use CreateGrant with an Amazon Web Services SDK or CLI.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:RevokeGrant (key policy).

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To revoke a grant", + "documentation": "The following example revokes a grant.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "GrantId": "0c237476b39f8bc44e45212e08498fbe3151305030726c0590dd8d3e9f3d6a60" + } + } + ] + } + }, + "com.amazonaws.kms#RevokeGrantRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the KMS key associated with the grant. To get the key ID and key\n ARN for a KMS key, use ListKeys or DescribeKey.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "GrantId": { + "target": "com.amazonaws.kms#GrantIdType", + "traits": { + "smithy.api#documentation": "

Identifies the grant to revoke. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#RotateKeyOnDemand": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#RotateKeyOnDemandRequest" + }, + "output": { + "target": "com.amazonaws.kms#RotateKeyOnDemandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#ConflictException" + }, + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Immediately initiates rotation of the key material of the specified symmetric encryption\n KMS key.

\n

You can perform on-demand rotation of the key\n material in customer managed KMS keys, regardless of whether or not automatic key\n rotation is enabled. On-demand rotations do not change existing automatic rotation\n schedules. For example, consider a KMS key that has automatic key rotation enabled with a\n rotation period of 730 days. If the key is scheduled to automatically rotate on April 14,\n 2024, and you perform an on-demand rotation on April 10, 2024, the key will automatically\n rotate, as scheduled, on April 14, 2024 and every 730 days thereafter.

\n \n

You can perform on-demand key rotation a maximum of 25\n times per KMS key. You can use the KMS console to view the number of\n remaining on-demand rotations available for a KMS key.

\n
\n

You can use GetKeyRotationStatus to identify any in progress on-demand\n rotations. You can use ListKeyRotations to identify the date that completed\n on-demand rotations were performed. You can monitor rotation of the key material for your KMS\n keys in CloudTrail and Amazon CloudWatch.

\n

On-demand key rotation is supported only on symmetric encryption KMS keys. You cannot\n perform on-demand rotation of asymmetric KMS keys, HMAC KMS keys, or KMS keys in a\n custom key store. When you initiate on-demand key rotation on a symmetric encryption KMS key\n with imported key material, you must have already imported new key material and that\n key material's state should be PENDING_ROTATION. Use the\n ListKeyRotations operation to check the state of all key materials associated\n with a KMS key. To perform on-demand rotation of a set of related multi-Region keys, import\n new key material in the primary Region key, import the same key material in each replica\n Region key, and invoke the on-demand rotation on the primary Region key.

\n

You cannot initiate on-demand rotation of Amazon Web Services managed KMS keys. KMS\n always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS\n keys is managed by the Amazon Web Services service that owns the key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:RotateKeyOnDemand (key policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To perform on-demand rotation of key material", + "documentation": "The following example immediately initiates rotation of the key material for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#RotateKeyOnDemandRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies a symmetric encryption KMS key. You cannot perform on-demand rotation of asymmetric KMS\n keys, HMAC KMS\n keys, multi-Region KMS keys with imported key material, or KMS keys in a\n custom key store. To perform on-demand rotation of a set of related multi-Region\n keys, invoke the on-demand rotation on the primary key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#RotateKeyOnDemandResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the symmetric encryption KMS key that you initiated on-demand rotation\n on.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#RotationPeriodInDaysType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 90, + "max": 2560 + } + } + }, + "com.amazonaws.kms#RotationType": { + "type": "enum", + "members": { + "AUTOMATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTOMATIC" + } + }, + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON_DEMAND" + } + } + } + }, + "com.amazonaws.kms#RotationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#RotationsListEntry" + } + }, + "com.amazonaws.kms#RotationsListEntry": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Unique identifier of the key.

" + } + }, + "KeyMaterialId": { + "target": "com.amazonaws.kms#BackingKeyIdType", + "traits": { + "smithy.api#documentation": "

Unique identifier of the key material.

" + } + }, + "KeyMaterialDescription": { + "target": "com.amazonaws.kms#KeyMaterialDescriptionType", + "traits": { + "smithy.api#documentation": "

User-specified description of the key material. This field is only present for symmetric\n encryption KMS keys with EXTERNAL origin.

" + } + }, + "ImportState": { + "target": "com.amazonaws.kms#ImportState", + "traits": { + "smithy.api#documentation": "

Indicates if the key material is currently imported into KMS. It has two possible\n values: IMPORTED or PENDING_IMPORT. This field is only present for\n symmetric encryption KMS keys with EXTERNAL origin.

" + } + }, + "KeyMaterialState": { + "target": "com.amazonaws.kms#KeyMaterialState", + "traits": { + "smithy.api#documentation": "

There are four possible values for this field: CURRENT,\n NON_CURRENT, PENDING_MULTI_REGION_IMPORT_AND_ROTATION and\n PENDING_ROTATION. KMS uses CURRENT\n key material for both encryption and decryption and NON_CURRENT key material only\n for decryption. PENDING_ROTATION identifies key material that has been imported\n for on-demand key rotation but the rotation hasn't completed. The key material state\n PENDING_MULTI_REGION_IMPORT_AND_ROTATION is unique to multi-region,\n symmetric encryption keys with imported key material. It indicates key material that has\n been imported into the primary Region key but not all of the replica Region keys. When this key material\n is imported in to all of the replica Region keys, the key material state will change to\n PENDING_ROTATION. Key material in PENDING_MULTI_REGION_IMPORT_AND_ROTATION\n or PENDING_ROTATION state is not permanently associated with the KMS key. You can delete\n this key material and import different key material in its place. The PENDING_MULTI_REGION_IMPORT_AND_ROTATION\n and PENDING_ROTATION values are only used in symmetric encryption keys with imported\n key material. The other values, CURRENT and NON_CURRENT, are used\n for all KMS keys that support automatic or on-demand key rotation.

" + } + }, + "ExpirationModel": { + "target": "com.amazonaws.kms#ExpirationModelType", + "traits": { + "smithy.api#documentation": "

Indicates if the key material is configured to automatically expire. There are two\n possible values for this field: KEY_MATERIAL_EXPIRES and\n KEY_MATERIAL_DOES_NOT_EXPIRE. For any key material that expires, the expiration\n date and time is indicated in ValidTo. This field is only present for symmetric\n encryption KMS keys with EXTERNAL origin.

" + } + }, + "ValidTo": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Date and time at which the key material expires. This field is only present for symmetric\n encryption KMS keys with EXTERNAL origin in rotation list entries with an\n ExpirationModel value of KEY_MATERIAL_EXPIRES.

" + } + }, + "RotationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Date and time that the key material rotation completed. Formatted as Unix time. This field\n is not present for the first key material or an imported key material in\n PENDING_ROTATION state.

" + } + }, + "RotationType": { + "target": "com.amazonaws.kms#RotationType", + "traits": { + "smithy.api#documentation": "

Identifies whether the key material rotation was a scheduled automatic rotation or an on-demand\n rotation. This field is not present for the first key material or an imported key\n material in PENDING_ROTATION state.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Each entry contains information about one of the key materials associated with a KMS\n key.

" + } + }, + "com.amazonaws.kms#ScheduleKeyDeletion": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ScheduleKeyDeletionRequest" + }, + "output": { + "target": "com.amazonaws.kms#ScheduleKeyDeletionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30\n days, but you can specify a waiting period of 7-30 days. When this operation is successful,\n the key state of the KMS key changes to PendingDeletion and the key can't be used\n in any cryptographic operations. It remains in this state for the duration of the waiting\n period. Before the waiting period ends, you can use CancelKeyDeletion to\n cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n its key material, and all KMS data associated with it, including all aliases that refer to\n it.

\n \n

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key\n is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only\n exception is a multi-Region replica key, or an asymmetric or HMAC KMS key with\n imported key material.) To prevent the use of a KMS key without deleting it, use\n DisableKey.

\n
\n

You can schedule the deletion of a multi-Region primary key and its replica keys at any\n time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n you schedule the deletion of a primary key with replicas, its key state changes to\n PendingReplicaDeletion and it cannot be replicated or used in cryptographic\n operations. This status can continue indefinitely. When the last of its replicas keys is\n deleted (not just scheduled), the key state of the primary key changes to\n PendingDeletion and its waiting period (PendingWindowInDays)\n begins. For details, see Deleting multi-Region keys in\n the Key Management Service Developer Guide.

\n

When KMS deletes a KMS key from an CloudHSM\n key store, it makes a best effort to delete the associated key material from the\n associated CloudHSM cluster. However, you might need to manually delete the orphaned key\n material from the cluster and its backups. Deleting a KMS key from an external key\n store has no effect on the associated external key. However, for both types of\n custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt\n ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key.\n Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with\n the same key material.

\n

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:ScheduleKeyDeletion (key\n policy)

\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

" + } + }, + "com.amazonaws.kms#ScheduleKeyDeletionRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier of the KMS key to delete.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "PendingWindowInDays": { + "target": "com.amazonaws.kms#PendingWindowInDaysType", + "traits": { + "smithy.api#documentation": "

The waiting period, specified in number of days. After the waiting period ends, KMS\n deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replica keys, the waiting period begins\n when the last of its replica keys is deleted. Otherwise, the waiting period begins\n immediately.

\n

This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n you do not include a value, it defaults to 30. You can use the \n kms:ScheduleKeyDeletionPendingWindowInDays\n condition key to further\n constrain the values that principals can specify in the PendingWindowInDays\n parameter.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ScheduleKeyDeletionResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key whose deletion is scheduled.

" + } + }, + "DeletionDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The date and time after which KMS deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replica keys, this field does not\n appear. The deletion date for the primary key isn't known until its last replica key is\n deleted.

" + } + }, + "KeyState": { + "target": "com.amazonaws.kms#KeyState", + "traits": { + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see\n Key states of KMS keys in the Key Management Service Developer Guide.

" + } + }, + "PendingWindowInDays": { + "target": "com.amazonaws.kms#PendingWindowInDaysType", + "traits": { + "smithy.api#documentation": "

The waiting period before the KMS key is deleted.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when\n the last of its replica keys is deleted. Otherwise, the waiting period begins\n immediately.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ServicePrincipalType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([A-Za-z0-9\\-]+)\\.([A-Za-z0-9\\-]+)(\\.[A-Za-z0-9\\-]+)+$" + } + }, + "com.amazonaws.kms#Sign": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#SignRequest" + }, + "output": { + "target": "com.amazonaws.kms#SignResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a digital\n signature for a message or message digest by using the private key in an asymmetric\n signing KMS key. To verify the signature, use the Verify operation, or use\n the public key in the same asymmetric KMS key outside of KMS. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

Digital signatures are generated and verified by using asymmetric key pair, such as an\n RSA, ECC, or ML-DSA pair that is represented by an asymmetric KMS key. The key owner (or an\n authorized user) uses their private key to sign a message. Anyone with the public key can\n verify that the message was signed with that particular private key and that the message\n hasn't changed since it was signed.

\n

To use the Sign operation, provide the following information:

\n
    \n
  • \n

    Use the KeyId parameter to identify an asymmetric KMS key with a\n KeyUsage value of SIGN_VERIFY. To get the\n KeyUsage value of a KMS key, use the DescribeKey\n operation. The caller must have kms:Sign permission on the KMS key.

    \n
  • \n
  • \n

    Use the Message parameter to specify the message or message digest to\n sign. You can submit messages of up to 4096 bytes. To sign a larger message, generate a\n hash digest of the message, and then provide the hash digest in the Message\n parameter. To indicate whether the message is a full message, a digest, or an ML-DSA\n EXTERNAL_MU, use the MessageType parameter.

    \n
  • \n
  • \n

    Choose a signing algorithm that is compatible with the KMS key.

    \n
  • \n
\n \n

When signing a message, be sure to record the KMS key and the signing algorithm. This\n information is required to verify the signature.

\n
\n \n

Best practices recommend that you limit the time during which any signature is\n effective. This deters an attack where the actor uses a signed message to establish validity\n repeatedly or long after the message is superseded. Signatures do not include a timestamp,\n but you can include a timestamp in the signed message to help you detect when its time to\n refresh the signature.

\n
\n

To verify the signature that this operation generates, use the Verify\n operation. Or use the GetPublicKey operation to download the public key and\n then use the public key to verify the signature outside of KMS.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:Sign (key policy)

\n

\n Related operations: Verify\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To digitally sign a message digest with an asymmetric KMS key.", + "documentation": "This operation uses the private key in an asymmetric RSA signing KMS key to generate a digital signature for a message digest. In this example, a large message was hashed and the resulting digest is provided in the Message parameter. To tell KMS not to hash the message again, the MessageType field is set to DIGEST", + "input": { + "KeyId": "alias/RSA_signing_key", + "Message": "", + "MessageType": "DIGEST", + "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "Signature": "", + "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" + } + }, + { + "title": "To digitally sign a message with an asymmetric KMS key.", + "documentation": "This operation uses the private key in an asymmetric elliptic curve (ECC) KMS key to generate a digital signature for a given message.", + "input": { + "KeyId": "alias/ECC_signing_key", + "Message": "", + "MessageType": "RAW", + "SigningAlgorithm": "ECDSA_SHA_384" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "Signature": "", + "SigningAlgorithm": "ECDSA_SHA_384" + } + } + ] + } + }, + "com.amazonaws.kms#SignRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to\n sign the message. The KeyUsage type of the KMS key must be\n SIGN_VERIFY. To find the KeyUsage of a KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a\n larger message, provide a message digest.

\n

If you provide a message digest, use the DIGEST value of\n MessageType to prevent the digest from being hashed again while signing.

", + "smithy.api#required": {} + } + }, + "MessageType": { + "target": "com.amazonaws.kms#MessageType", + "traits": { + "smithy.api#documentation": "

Tells KMS whether the value of the Message parameter should be hashed as\n part of the signing algorithm. Use RAW for unhashed messages; use\n DIGEST for message digests, which are already hashed; use\n EXTERNAL_MU for 64-byte representative μ used in ML-DSA signing as defined\n in NIST FIPS 204 Section 6.2.

\n

When the value of MessageType is RAW, KMS uses the standard\n signing algorithm, which begins with a hash function. When the value is DIGEST,\n KMS skips the hashing step in the signing algorithm. When the value is\n EXTERNAL_MU KMS skips the concatenated hashing of the public key hash and the\n message done in the ML-DSA signing algorithm.

\n \n

Use the DIGEST or EXTERNAL_MU value only when the value of the\n Message parameter is a message digest. If you use the DIGEST\n value with an unhashed message, the security of the signing operation can be\n compromised.

\n
\n

When using ECC_NIST_EDWARDS25519 KMS keys:

\n
    \n
  • \n

    ED25519_SHA_512 signing algorithm requires KMS MessageType:RAW\n

    \n
  • \n
  • \n

    ED25519_PH_SHA_512 signing algorithm requires KMS MessageType:DIGEST\n

    \n
  • \n
\n \n

When you specify the ED25519_PH_SHA_512 signing algorithm with MessageType:DIGEST, KMS\n still performs the SHA-512 prehash described in Step 1\n of Section 7.8.1 in FIPS 186-5. This means the input is hashed twice: once by you and once by KMS.\n

\n
\n

When the value of MessageType is DIGEST, the length of the\n Message value must match the length of hashed messages for the specified\n signing algorithm.

\n

When the value of MessageType is EXTERNAL_MU the length of the\n Message value must be 64 bytes.

\n

You can submit a message digest and omit the MessageType or specify\n RAW so the digest is hashed again while signing. However, this can cause\n verification failures when verifying with a system that assumes a single hash.

\n

The hashing algorithm that Sign uses is based on the\n SigningAlgorithm value.

\n
    \n
  • \n

    Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHAKE_256 use the SHAKE_256 hashing algorithm.

    \n
  • \n
  • \n

    SM2DSA uses the SM3 hashing algorithm. For details, see Offline\n verification with SM2 key pairs.

    \n
  • \n
" + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "SigningAlgorithm": { + "target": "com.amazonaws.kms#SigningAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

Specifies the signing algorithm to use when signing the message.

\n

Choose an algorithm that is compatible with the type and size of the specified asymmetric\n KMS key. When signing with RSA key pairs, RSASSA-PSS algorithms are preferred. We include\n RSASSA-PKCS1-v1_5 algorithms for compatibility with existing applications.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#SignResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key that was used to sign the message.

" + } + }, + "Signature": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The cryptographic signature that was generated for the message.

\n
    \n
  • \n

    When used with the supported RSA signing algorithms, the encoding of this value is\n defined by PKCS #1 in RFC\n 8017.

    \n
  • \n
  • \n

    When used with the ECDSA_SHA_256, ECDSA_SHA_384, or\n ECDSA_SHA_512 signing algorithms, this value is a DER-encoded object as\n defined by ANSI X9.62–2005 and RFC 3279 Section 2.2.3.\n This is the most commonly used signature format and is appropriate for most uses.\n

    \n
  • \n
\n

When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + } + }, + "SigningAlgorithm": { + "target": "com.amazonaws.kms#SigningAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The signing algorithm that was used to sign the message.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#SigningAlgorithmSpec": { + "type": "enum", + "members": { + "RSASSA_PSS_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PSS_SHA_256" + } + }, + "RSASSA_PSS_SHA_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PSS_SHA_384" + } + }, + "RSASSA_PSS_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PSS_SHA_512" + } + }, + "RSASSA_PKCS1_V1_5_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PKCS1_V1_5_SHA_256" + } + }, + "RSASSA_PKCS1_V1_5_SHA_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PKCS1_V1_5_SHA_384" + } + }, + "RSASSA_PKCS1_V1_5_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSASSA_PKCS1_V1_5_SHA_512" + } + }, + "ECDSA_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECDSA_SHA_256" + } + }, + "ECDSA_SHA_384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECDSA_SHA_384" + } + }, + "ECDSA_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECDSA_SHA_512" + } + }, + "SM2DSA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2DSA" + } + }, + "ML_DSA_SHAKE_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML_DSA_SHAKE_256" + } + }, + "ED25519_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ED25519_SHA_512" + } + }, + "ED25519_PH_SHA_512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ED25519_PH_SHA_512" + } + } + } + }, + "com.amazonaws.kms#SigningAlgorithmSpecList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#SigningAlgorithmSpec" + } + }, + "com.amazonaws.kms#Tag": { + "type": "structure", + "members": { + "TagKey": { + "target": "com.amazonaws.kms#TagKeyType", + "traits": { + "smithy.api#documentation": "

The key of the tag.

", + "smithy.api#required": {} + } + }, + "TagValue": { + "target": "com.amazonaws.kms#TagValueType", + "traits": { + "smithy.api#documentation": "

The value of the tag.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are\n both required, but tag values can be empty (null) strings.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the Amazon Web Services Billing and Cost Management\n User Guide.

" + } + }, + "com.amazonaws.kms#TagException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TagException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because one or more tags are not valid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#TagKeyType" + } + }, + "com.amazonaws.kms#TagKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.kms#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#Tag" + } + }, + "com.amazonaws.kms#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#TagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#TagException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds or edits tags on a customer managed key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings.\n The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag\n value. To edit a tag, specify an existing tag key and a new tag value.

\n

You can use this operation to tag a customer managed key, but you\n cannot tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store,\n or an alias.

\n

You can also add tags to a KMS key while creating it (CreateKey) or\n replicating it (ReplicateKey).

\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:TagResource (key policy)

\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To tag a KMS key", + "documentation": "The following example tags a KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Tags": [ + { + "TagKey": "Purpose", + "TagValue": "Test" + } + ] + } + } + ] + } + }, + "com.amazonaws.kms#TagResourceRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies a customer managed key in the account and Region.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.kms#TagList", + "traits": { + "smithy.api#documentation": "

One or more tags. Each tag consists of a tag key and a tag value. The tag value can be an\n empty (null) string.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

You cannot have more than one tag on a KMS key with the same tag key. If you specify an\n existing tag key with a different tag value, KMS replaces the current tag value with the\n specified one.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#TagValueType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.kms#TrentService": { + "type": "service", + "version": "2014-11-01", + "operations": [ + { + "target": "com.amazonaws.kms#CancelKeyDeletion" + }, + { + "target": "com.amazonaws.kms#ConnectCustomKeyStore" + }, + { + "target": "com.amazonaws.kms#CreateAlias" + }, + { + "target": "com.amazonaws.kms#CreateCustomKeyStore" + }, + { + "target": "com.amazonaws.kms#CreateGrant" + }, + { + "target": "com.amazonaws.kms#CreateKey" + }, + { + "target": "com.amazonaws.kms#Decapsulate" + }, + { + "target": "com.amazonaws.kms#Decrypt" + }, + { + "target": "com.amazonaws.kms#DeleteAlias" + }, + { + "target": "com.amazonaws.kms#DeleteCustomKeyStore" + }, + { + "target": "com.amazonaws.kms#DeleteImportedKeyMaterial" + }, + { + "target": "com.amazonaws.kms#DeriveSharedSecret" + }, + { + "target": "com.amazonaws.kms#DescribeCustomKeyStores" + }, + { + "target": "com.amazonaws.kms#DescribeKey" + }, + { + "target": "com.amazonaws.kms#DisableKey" + }, + { + "target": "com.amazonaws.kms#DisableKeyRotation" + }, + { + "target": "com.amazonaws.kms#DisconnectCustomKeyStore" + }, + { + "target": "com.amazonaws.kms#EnableKey" + }, + { + "target": "com.amazonaws.kms#EnableKeyRotation" + }, + { + "target": "com.amazonaws.kms#Encapsulate" + }, + { + "target": "com.amazonaws.kms#Encrypt" + }, + { + "target": "com.amazonaws.kms#GenerateDataKey" + }, + { + "target": "com.amazonaws.kms#GenerateDataKeyPair" + }, + { + "target": "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintext" + }, + { + "target": "com.amazonaws.kms#GenerateDataKeyWithoutPlaintext" + }, + { + "target": "com.amazonaws.kms#GenerateMac" + }, + { + "target": "com.amazonaws.kms#GenerateRandom" + }, + { + "target": "com.amazonaws.kms#GetKeyLastUsage" + }, + { + "target": "com.amazonaws.kms#GetKeyPolicy" + }, + { + "target": "com.amazonaws.kms#GetKeyRotationStatus" + }, + { + "target": "com.amazonaws.kms#GetParametersForImport" + }, + { + "target": "com.amazonaws.kms#GetPublicKey" + }, + { + "target": "com.amazonaws.kms#ImportKeyMaterial" + }, + { + "target": "com.amazonaws.kms#ListAliases" + }, + { + "target": "com.amazonaws.kms#ListGrants" + }, + { + "target": "com.amazonaws.kms#ListKeyPolicies" + }, + { + "target": "com.amazonaws.kms#ListKeyRotations" + }, + { + "target": "com.amazonaws.kms#ListKeys" + }, + { + "target": "com.amazonaws.kms#ListResourceTags" + }, + { + "target": "com.amazonaws.kms#ListRetirableGrants" + }, + { + "target": "com.amazonaws.kms#PutKeyPolicy" + }, + { + "target": "com.amazonaws.kms#ReEncrypt" + }, + { + "target": "com.amazonaws.kms#ReplicateKey" + }, + { + "target": "com.amazonaws.kms#RetireGrant" + }, + { + "target": "com.amazonaws.kms#RevokeGrant" + }, + { + "target": "com.amazonaws.kms#RotateKeyOnDemand" + }, + { + "target": "com.amazonaws.kms#ScheduleKeyDeletion" + }, + { + "target": "com.amazonaws.kms#Sign" + }, + { + "target": "com.amazonaws.kms#TagResource" + }, + { + "target": "com.amazonaws.kms#UntagResource" + }, + { + "target": "com.amazonaws.kms#UpdateAlias" + }, + { + "target": "com.amazonaws.kms#UpdateCustomKeyStore" + }, + { + "target": "com.amazonaws.kms#UpdateKeyDescription" + }, + { + "target": "com.amazonaws.kms#UpdatePrimaryRegion" + }, + { + "target": "com.amazonaws.kms#Verify" + }, + { + "target": "com.amazonaws.kms#VerifyMac" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "KMS", + "arnNamespace": "kms", + "cloudFormationName": "KMS", + "cloudTrailEventSource": "kms.amazonaws.com", + "endpointPrefix": "kms" + }, + "aws.auth#sigv4": { + "name": "kms" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Key Management Service\n

Key Management Service (KMS) is an encryption and key management web service. This guide describes\n the KMS operations that you can call programmatically. For general information about KMS,\n see the \n Key Management Service Developer Guide\n .

\n \n

KMS has replaced the term customer master key (CMK) with Key Management Service key \n and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming\n languages and platforms (Java, Rust, Python, Ruby, .Net, macOS, Android, etc.). The SDKs\n provide a convenient way to create programmatic access to KMS and other Amazon Web Services services.\n For example, the SDKs take care of tasks such as signing requests (see below), managing\n errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs,\n including how to download and install them, see Tools\n for Amazon Web Services.

\n
\n

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

\n

If you need to use FIPS 140-2 validated cryptographic modules when communicating with\n Amazon Web Services, use one of the FIPS endpoints in your preferred Amazon Web Services Region. If you need communicate\n over IPv6, use the dual-stack endpoint in your preferred Amazon Web Services Region. For more information\n see Service\n endpoints in the Key Management Service topic of the Amazon Web Services General Reference and Dual-stack endpoint\n support in the KMS Developer Guide.

\n

All KMS API calls must be signed and be transmitted using Transport Layer Security\n (TLS). KMS recommends you always use the latest supported TLS version. Clients must also\n support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman\n (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7\n and later support these modes.

\n \n

With current technology, brute force attacks on KMS TLS cipher suite key exchange\n mechanisms are not feasible. However, cipher suites that use Rivest–Shamir–Adleman (RSA)\n or Diffie-Hellman (DH) key exchange will be susceptible if large-scale quantum computing\n becomes practical.\n NIST IR 8547\n on the NIST website establishes a timeline to phase out quantum-vulnerable algorithms\n by 2030 and disallow them entirely by 2035. If your applications rely on the long-term\n confidentiality of KMS API traffic, we recommend that you\n use post-quantum TLS with KMS.\n For more information about post-quantum cybersecurity, see Post-Quantum Cybersecurity Resources on the\n National Security Agency (NSA) website.

\n
\n

\n Signing Requests\n

\n

Requests must be signed using an access key ID and a secret access key. We strongly\n recommend that you do not use your Amazon Web Services account root access key ID and secret access key for\n everyday work. You can use the access key ID and secret access key for an IAM user or you\n can use the Security Token Service (STS) to generate temporary security credentials and use those to sign\n requests.

\n

All KMS requests must be signed with Signature Version 4.

\n

\n Logging API Requests\n

\n

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your\n Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the\n information collected by CloudTrail, you can determine what requests were made to KMS, who made\n the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it\n on and find your log files, see the CloudTrail User Guide.

\n

\n Additional Resources\n

\n

For more information about credentials and request signing, see the following:

\n \n

\n Commonly Used API Operations\n

\n

Of the API operations discussed in this guide, the following will prove the most useful\n for most applications. You will likely perform operations other than these, such as creating\n keys and assigning policies, by using the console.

\n ", + "smithy.api#title": "AWS Key Management Service", + "smithy.api#xmlNamespace": { + "uri": "https://trent.amazonaws.com/doc/2014-11-01/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://kms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 13, + "nodes": "/////wAAAAH/////AAAAAAAAAAwAAAADAAAAAQAAAAQF9eELAAAAAgAAAAUF9eELAAAAAwAAAAgAAAAGAAAABAAAAAcF9eEKAAAABQX14QgF9eEJAAAABAAAAAoAAAAJAAAABgX14QYF9eEHAAAABQAAAAsF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAANAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms.{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://kms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-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://kms-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://kms.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-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 disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + } + }, + "com.amazonaws.kms#TrustAnchorCertificateType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5000 + } + } + }, + "com.amazonaws.kms#UnsupportedOperationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "UnsupportedOperation", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because a specified parameter is not supported or a specified\n resource is not valid for this operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#UntagResourceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#TagException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes tags from a customer managed key. To delete a\n tag, specify the tag key and the KMS key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

When it succeeds, the UntagResource operation doesn't return any output.\n Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or\n return a response. To confirm that the operation worked, use the ListResourceTags operation.

\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:UntagResource (key policy)

\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To remove tags from a KMS key", + "documentation": "The following example removes tags from a KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "TagKeys": [ + "Purpose", + "CostCenter" + ] + } + } + ] + } + }, + "com.amazonaws.kms#UntagResourceRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the KMS key from which you are removing tags.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.kms#TagKeyList", + "traits": { + "smithy.api#documentation": "

One or more tag keys. Specify only the tag keys, not the tag values.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#UpdateAlias": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#UpdateAliasRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates an existing KMS alias with a different KMS key. Each alias is associated with\n only one KMS key at a time, although a KMS key can have multiple aliases. The alias and the\n KMS key must be in the same Amazon Web Services account and Region.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

\n
\n

The current and new KMS key must be the same type (both symmetric or both asymmetric or\n both HMAC), and they must have the same key usage. This restriction prevents errors in code\n that uses aliases. If you must assign an alias to a different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create\n a new alias.

\n

You cannot use UpdateAlias to change an alias name. To change an alias name,\n use DeleteAlias to delete the old alias and CreateAlias to\n create a new alias.

\n

Because an alias is not a property of a KMS key, you can create, update, and delete the\n aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the\n response from the DescribeKey operation. To get the aliases of all KMS keys\n in the account, use the ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To update an alias", + "documentation": "The following example updates the specified alias to refer to the specified KMS key.", + "input": { + "AliasName": "alias/ExampleAlias", + "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#UpdateAliasRequest": { + "type": "structure", + "members": { + "AliasName": { + "target": "com.amazonaws.kms#AliasNameType", + "traits": { + "smithy.api#documentation": "

Identifies the alias that is changing its KMS key. This value must begin with\n alias/ followed by the alias name, such as alias/ExampleAlias. You\n cannot use UpdateAlias to change the alias name.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
", + "smithy.api#required": {} + } + }, + "TargetKeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the customer managed key to associate\n with the alias. You don't have permission to associate an alias with an Amazon Web Services managed\n key.

\n

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new\n target KMS key must be the same type as the current target KMS key (both symmetric or both\n asymmetric or both HMAC) and they must have the same key usage.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n

To verify that the alias is mapped to the correct KMS key, use ListAliases.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#UpdateCustomKeyStore": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#UpdateCustomKeyStoreRequest" + }, + "output": { + "target": "com.amazonaws.kms#UpdateCustomKeyStoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotActiveException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotFoundException" + }, + { + "target": "com.amazonaws.kms#CloudHsmClusterNotRelatedException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreInvalidStateException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNameInUseException" + }, + { + "target": "com.amazonaws.kms#CustomKeyStoreNotFoundException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException" + }, + { + "target": "com.amazonaws.kms#XksProxyInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#XksProxyInvalidResponseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriEndpointInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyUriUnreachableException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException" + }, + { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the properties of a custom key store. You can use this operation to change the\n properties of an CloudHSM key store or an external key store.

\n

Use the required CustomKeyStoreId parameter to identify the custom key store.\n Use the remaining optional parameters to change its properties. This operation does not return\n any property values. To verify the updated property values, use the DescribeCustomKeyStores operation.

\n

This operation is part of the custom key stores feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.

\n \n

When updating the properties of an external key store, verify that the updated settings\n connect your key store, via the external key store proxy, to the same external key manager\n as the previous settings, or to a backup or snapshot of the external key manager with the\n same cryptographic keys. If the updated connection settings fail, you can fix them and\n retry, although an extended delay might disrupt Amazon Web Services services. However, if KMS\n permanently loses its access to cryptographic keys, ciphertext encrypted under those keys is\n unrecoverable.

\n
\n \n

For external key stores:

\n

Some external key managers provide a simpler method for updating an external key store.\n For details, see your external key manager documentation.

\n

When updating an external key store in the KMS console, you can upload a JSON-based\n proxy configuration file with the desired values. You cannot upload the proxy configuration\n file to the UpdateCustomKeyStore operation. However, you can use the file to\n help you determine the correct values for the UpdateCustomKeyStore\n parameters.

\n
\n

For an CloudHSM key store, you can use this operation to change the custom key store friendly\n name (NewCustomKeyStoreName), to tell KMS about a change to the\n kmsuser crypto user password (KeyStorePassword), or to associate\n the custom key store with a different, but related, CloudHSM cluster\n (CloudHsmClusterId). To update most properties of an CloudHSM key store, the\n ConnectionState of the CloudHSM key store must be DISCONNECTED. \n However, you can update the CustomKeyStoreName of an AWS CloudHSM key store \n when it is in the CONNECTED or DISCONNECTED state.

\n

For an external key store, you can use this operation to change the custom key store\n friendly name (NewCustomKeyStoreName), or to tell KMS about a change to the\n external key store proxy authentication credentials\n (XksProxyAuthenticationCredential), connection method\n (XksProxyConnectivity), external proxy endpoint\n (XksProxyUriEndpoint) and path (XksProxyUriPath). For external key\n stores with an XksProxyConnectivity of VPC_ENDPOINT_SERVICE, you can\n also update the Amazon VPC endpoint service name (XksProxyVpcEndpointServiceName). To\n update most properties of an external key store, the ConnectionState of the\n external key store must be DISCONNECTED. However, you can update the\n CustomKeyStoreName, XksProxyAuthenticationCredential, and\n XksProxyUriPath of an external key store when it is in the CONNECTED or\n DISCONNECTED state.

\n

If your update requires a DISCONNECTED state, before using\n UpdateCustomKeyStore, use the DisconnectCustomKeyStore\n operation to disconnect the custom key store. After the UpdateCustomKeyStore\n operation completes, use the ConnectCustomKeyStore to reconnect the custom\n key store. To find the ConnectionState of the custom key store, use the DescribeCustomKeyStores operation.

\n

\n

\n

Before updating the custom key store, verify that the new values allow KMS to connect\n the custom key store to its backing key store. For example, before you change the\n XksProxyUriPath value, verify that the external key store proxy is reachable at\n the new path.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:UpdateCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To edit the friendly name of a custom key store", + "documentation": "This example changes the friendly name of the AWS KMS custom key store to the name that you specify. This operation does not return any data. To verify that the operation worked, use the DescribeCustomKeyStores operation.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0", + "NewCustomKeyStoreName": "DevelopmentKeys" + }, + "output": {} + }, + { + "title": "To edit the password of an AWS CloudHSM key store", + "documentation": "This example tells AWS KMS the password for the kmsuser crypto user in the AWS CloudHSM cluster that is associated with the AWS KMS custom key store. (It does not change the password in the CloudHSM cluster.) This operation does not return any data.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0", + "KeyStorePassword": "ExamplePassword" + }, + "output": {} + }, + { + "title": "To update the proxy connectivity of an external key store to VPC_ENDPOINT_SERVICE", + "documentation": "To change the external key store proxy connectivity option from public endpoint connectivity to VPC endpoint service connectivity, in addition to changing the XksProxyConnectivity value, you must change the XksProxyUriEndpoint value to reflect the private DNS name associated with the VPC endpoint service. You must also add an XksProxyVpcEndpointServiceName value.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0", + "XksProxyConnectivity": "VPC_ENDPOINT_SERVICE", + "XksProxyUriEndpoint": "https://myproxy-private.xks.example.com", + "XksProxyVpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" + }, + "output": {} + }, + { + "title": "To edit the proxy URI path of an external key store.", + "documentation": "This example updates the proxy URI path for an external key store", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0", + "XksProxyUriPath": "/new-path/kms/xks/v1" + }, + "output": {} + }, + { + "title": "To associate the custom key store with a different, but related, AWS CloudHSM cluster.", + "documentation": "This example changes the AWS CloudHSM cluster that is associated with an AWS CloudHSM key store to a related cluster, such as a different backup of the same cluster. This operation does not return any data. To verify that the operation worked, use the DescribeCustomKeyStores operation.", + "input": { + "CustomKeyStoreId": "cks-1234567890abcdef0", + "CloudHsmClusterId": "cluster-234abcdefABC" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.kms#UpdateCustomKeyStoreRequest": { + "type": "structure", + "members": { + "CustomKeyStoreId": { + "target": "com.amazonaws.kms#CustomKeyStoreIdType", + "traits": { + "smithy.api#documentation": "

Identifies the custom key store that you want to update. Enter the ID of the custom key\n store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", + "smithy.api#required": {} + } + }, + "NewCustomKeyStoreName": { + "target": "com.amazonaws.kms#CustomKeyStoreNameType", + "traits": { + "smithy.api#documentation": "

Changes the friendly name of the custom key store to the value that you specify. The\n custom key store name must be unique in the Amazon Web Services account.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

To change this value, the custom key store can be connected or disconnected.

" + } + }, + "KeyStorePassword": { + "target": "com.amazonaws.kms#KeyStorePasswordType", + "traits": { + "smithy.api#documentation": "

Enter the current password of the kmsuser crypto user (CU) in the CloudHSM\n cluster that is associated with the custom key store. This parameter is valid only for custom\n key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

\n

This parameter tells KMS the current password of the kmsuser crypto user\n (CU). It does not set or change the password of any users in the CloudHSM cluster.

\n

To change this value, the CloudHSM key store must be disconnected.

" + } + }, + "CloudHsmClusterId": { + "target": "com.amazonaws.kms#CloudHsmClusterIdType", + "traits": { + "smithy.api#documentation": "

Associates the custom key store with a related CloudHSM cluster. This parameter is valid only\n for custom key stores with a CustomKeyStoreType of\n AWS_CLOUDHSM.

\n

Enter the cluster ID of the cluster that you used to create the custom key store or a\n cluster that shares a backup history and has the same cluster certificate as the original\n cluster. You cannot use this parameter to associate a custom key store with an unrelated\n cluster. In addition, the replacement cluster must fulfill the requirements for\n a cluster associated with a custom key store. To view the cluster certificate of a cluster,\n use the DescribeClusters operation.

\n

To change this value, the CloudHSM key store must be disconnected.

" + } + }, + "XksProxyUriEndpoint": { + "target": "com.amazonaws.kms#XksProxyUriEndpointType", + "traits": { + "smithy.api#documentation": "

Changes the URI endpoint that KMS uses to connect to your external key store proxy (XKS\n proxy). This parameter is valid only for custom key stores with a\n CustomKeyStoreType of EXTERNAL_KEY_STORE.

\n

For external key stores with an XksProxyConnectivity value of\n PUBLIC_ENDPOINT, the protocol must be HTTPS.

\n

For external key stores with an XksProxyConnectivity value of\n VPC_ENDPOINT_SERVICE, specify https:// followed by the private DNS\n name associated with the VPC endpoint service. Each external key store must use a different\n private DNS name.

\n

The combined XksProxyUriEndpoint and XksProxyUriPath values must\n be unique in the Amazon Web Services account and Region.

\n

To change this value, the external key store must be disconnected.

" + } + }, + "XksProxyUriPath": { + "target": "com.amazonaws.kms#XksProxyUriPathType", + "traits": { + "smithy.api#documentation": "

Changes the base path to the proxy APIs for this external key store. To find this value,\n see the documentation for your external key manager and external key store proxy (XKS proxy).\n This parameter is valid only for custom key stores with a CustomKeyStoreType of\n EXTERNAL_KEY_STORE.

\n

The value must start with / and must end with /kms/xks/v1, where\n v1 represents the version of the KMS external key store proxy API. You can\n include an optional prefix between the required elements such as\n /example/kms/xks/v1.

\n

The combined XksProxyUriEndpoint and XksProxyUriPath values must\n be unique in the Amazon Web Services account and Region.

\n

You can change this value when the external key store is connected or disconnected.

" + } + }, + "XksProxyVpcEndpointServiceName": { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNameType", + "traits": { + "smithy.api#documentation": "

Changes the name that KMS uses to identify the Amazon VPC endpoint service for your external\n key store proxy (XKS proxy). This parameter is valid when the CustomKeyStoreType\n is EXTERNAL_KEY_STORE and the XksProxyConnectivity is\n VPC_ENDPOINT_SERVICE.

\n

To change this value, the external key store must be disconnected.

" + } + }, + "XksProxyVpcEndpointServiceOwner": { + "target": "com.amazonaws.kms#AccountIdType", + "traits": { + "smithy.api#documentation": "

Changes the Amazon Web Services account ID that KMS uses to identify the Amazon VPC endpoint service for\n your external key store proxy (XKS proxy). This parameter is optional. If not specified, the current\n Amazon Web Services account ID for the VPC endpoint service will not be updated.

\n

To change this value, the external key store must be disconnected.

" + } + }, + "XksProxyAuthenticationCredential": { + "target": "com.amazonaws.kms#XksProxyAuthenticationCredentialType", + "traits": { + "smithy.api#documentation": "

Changes the credentials that KMS uses to sign requests to the external key store proxy\n (XKS proxy). This parameter is valid only for custom key stores with a\n CustomKeyStoreType of EXTERNAL_KEY_STORE.

\n

You must specify both the AccessKeyId and SecretAccessKey value\n in the authentication credential, even if you are only updating one value.

\n

This parameter doesn't establish or change your authentication credentials on the proxy.\n It just tells KMS the credential that you established with your external key store proxy.\n For example, if you rotate the credential on your external key store proxy, you can use this\n parameter to update the credential in KMS.

\n

You can change this value when the external key store is connected or disconnected.

" + } + }, + "XksProxyConnectivity": { + "target": "com.amazonaws.kms#XksProxyConnectivityType", + "traits": { + "smithy.api#documentation": "

Changes the connectivity setting for the external key store. To indicate that the external\n key store proxy uses a Amazon VPC endpoint service to communicate with KMS, specify\n VPC_ENDPOINT_SERVICE. Otherwise, specify PUBLIC_ENDPOINT.

\n

If you change the XksProxyConnectivity to VPC_ENDPOINT_SERVICE,\n you must also change the XksProxyUriEndpoint and add an\n XksProxyVpcEndpointServiceName value.

\n

If you change the XksProxyConnectivity to PUBLIC_ENDPOINT, you\n must also change the XksProxyUriEndpoint and specify a null or empty string for\n the XksProxyVpcEndpointServiceName value.

\n

To change this value, the external key store must be disconnected.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#UpdateCustomKeyStoreResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#UpdateKeyDescription": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#UpdateKeyDescriptionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the description of a KMS key. To see the description of a KMS key, use DescribeKey.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:UpdateKeyDescription (key policy)

\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To update the description of a KMS key", + "documentation": "The following example updates the description of the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "Description": "Example description that indicates the intended use of this KMS key." + } + } + ] + } + }, + "com.amazonaws.kms#UpdateKeyDescriptionRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Updates the description of the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.kms#DescriptionType", + "traits": { + "smithy.api#documentation": "

New description for the KMS key.

\n \n

Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#UpdatePrimaryRegion": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#UpdatePrimaryRegionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the primary key of a multi-Region key.

\n

This operation changes the replica key in the specified Region to a primary key and\n changes the former primary key to a replica key. For example, suppose you have a primary key\n in us-east-1 and a replica key in eu-west-2. If you run\n UpdatePrimaryRegion with a PrimaryRegion value of\n eu-west-2, the primary key is now the key in eu-west-2, and the\n key in us-east-1 becomes a replica key. For details, see Change the primary key in a\n set of multi-Region keys in the Key Management Service Developer Guide.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

\n

The primary key of a multi-Region key is the source for properties\n that are always shared by primary and replica keys, including the key material, key ID, key spec, key usage, key material\n origin, and automatic\n key rotation. It's the only key that can be replicated. You cannot delete the primary\n key until all replica keys are deleted.

\n

The key ID and primary Region that you specify uniquely identify the replica key that will\n become the primary key. The primary Region must already have a replica key. This operation\n does not create a KMS key in the specified Region. To find the replica keys, use the DescribeKey operation on the primary key or any replica key. To create a replica\n key, use the ReplicateKey operation.

\n

You can run this operation while using the affected multi-Region keys in cryptographic\n operations. This operation should not delay, interrupt, or cause failures in cryptographic\n operations.

\n

Even after this operation completes, the process of updating the primary Region might\n still be in progress for a few more seconds. Operations such as DescribeKey might\n display both the old and new primary keys as replicas. The old and new primary keys have a\n transient key state of Updating. The original key state is restored when the\n update is complete. While the key state is Updating, you can use the keys in\n cryptographic operations, but you cannot replicate the new primary key or perform certain\n management operations, such as enabling or disabling these keys. For details about the\n Updating key state, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

This operation does not return any output. To verify that primary key is changed, use the\n DescribeKey operation.

\n

\n Cross-account use: No. You cannot use this operation in a\n different Amazon Web Services account.

\n

\n Required permissions:

\n
    \n
  • \n

    \n kms:UpdatePrimaryRegion on the current primary key (in the primary key's\n Region). Include this permission primary key's key policy.

    \n
  • \n
  • \n

    \n kms:UpdatePrimaryRegion on the current replica key (in the replica key's\n Region). Include this permission in the replica key's key policy.

    \n
  • \n
\n

\n Related operations\n

\n \n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To update the primary Region of a multi-Region KMS key", + "documentation": "The following UpdatePrimaryRegion example changes the multi-Region replica key in the eu-central-1 Region to the primary key. The current primary key in the us-west-1 Region becomes a replica key. \n\nThe KeyId parameter identifies the current primary key in the us-west-1 Region. The PrimaryRegion parameter indicates the Region of the replica key that will become the new primary key.\n\nThis operation does not return any output. To verify that primary key is changed, use the DescribeKey operation.", + "input": { + "KeyId": "arn:aws:kms:us-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", + "PrimaryRegion": "eu-central-1" + } + } + ] + } + }, + "com.amazonaws.kms#UpdatePrimaryRegionRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the current primary key. When the operation completes, this KMS key will be a\n replica key.

\n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n
    \n
  • \n

    Key ID: mrk-1234abcd12ab34cd56ef1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "PrimaryRegion": { + "target": "com.amazonaws.kms#RegionType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region of the new primary key. Enter the Region ID, such as\n us-east-1 or ap-southeast-2. There must be an existing replica key\n in this Region.

\n

When the operation completes, the multi-Region key in this Region will be the primary\n key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#Verify": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#VerifyRequest" + }, + "output": { + "target": "com.amazonaws.kms#VerifyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidSignatureException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Verifies a digital signature that was generated by the Sign operation.

\n

\n

Verification confirms that an authorized user signed the message with the specified KMS\n key and signing algorithm, and the message hasn't changed since it was signed. If the\n signature is verified, the value of the SignatureValid field in the response is\n True. If the signature verification fails, the Verify operation\n fails with an KMSInvalidSignatureException exception.

\n

A digital signature is generated by using the private key in an asymmetric KMS key. The\n signature is verified by using the public key in the same asymmetric KMS key.\n For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

To use the Verify operation, specify the same asymmetric KMS key, message,\n and signing algorithm that were used to produce the signature. The message type does not need\n to be the same as the one used for signing, but it must indicate whether the value of the\n Message parameter should be hashed as part of the verification process.

\n

You can also verify the digital signature by using the public key of the KMS key outside\n of KMS. Use the GetPublicKey operation to download the public key in the\n asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n advantage of using the Verify operation is that it is performed within KMS. As\n a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n the KMS key to verify signatures.

\n

To verify a signature outside of KMS with an SM2 public key (China Regions only), you\n must specify the distinguishing ID. By default, KMS uses 1234567812345678 as\n the distinguishing ID. For more information, see Offline\n verification with SM2 key pairs.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:Verify (key policy)

\n

\n Related operations: Sign\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To use an asymmetric KMS key to verify a digital signature", + "documentation": "This operation uses the public key in an elliptic curve (ECC) asymmetric key to verify a digital signature within AWS KMS.", + "input": { + "KeyId": "alias/ECC_signing_key", + "Message": "", + "MessageType": "RAW", + "Signature": "", + "SigningAlgorithm": "ECDSA_SHA_384" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "SignatureValid": true, + "SigningAlgorithm": "ECDSA_SHA_384" + } + }, + { + "title": "To use an asymmetric KMS key to verify a digital signature on a message digest", + "documentation": "This operation uses the public key in an RSA asymmetric signing key pair to verify the digital signature of a message digest. Hashing a message into a digest before sending it to KMS lets you verify messages that exceed the 4096-byte message size limit. To indicate that the value of Message is a digest, use the MessageType parameter ", + "input": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "Message": "", + "MessageType": "DIGEST", + "Signature": "", + "SigningAlgorithm": "RSASSA_PSS_SHA_512" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", + "SignatureValid": true, + "SigningAlgorithm": "RSASSA_PSS_SHA_512" + } + } + ] + } + }, + "com.amazonaws.kms#VerifyMac": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#VerifyMacRequest" + }, + "output": { + "target": "com.amazonaws.kms#VerifyMacResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#DryRunOperationException" + }, + { + "target": "com.amazonaws.kms#InvalidGrantTokenException" + }, + { + "target": "com.amazonaws.kms#InvalidKeyUsageException" + }, + { + "target": "com.amazonaws.kms#KeyUnavailableException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidMacException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Verifies the hash-based message authentication code (HMAC) for a specified message, HMAC\n KMS key, and MAC algorithm. To verify the HMAC, VerifyMac computes an HMAC using\n the message, HMAC KMS key, and MAC algorithm that you specify, and compares the computed HMAC\n to the HMAC that you specify. If the HMACs are identical, the verification succeeds;\n otherwise, it fails. Verification indicates that the message hasn't changed since the HMAC was\n calculated, and the specified key was used to generate and verify the HMAC.

\n

HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry standards\n defined in RFC 2104.

\n

This operation is part of KMS support for HMAC KMS keys. For details, see\n HMAC keys in KMS in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key states of KMS keys in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:VerifyMac (key policy)

\n

\n Related operations: GenerateMac\n

\n

\n Eventual consistency: The KMS API follows an eventual consistency model. \n For more information, see KMS eventual consistency.

", + "smithy.api#examples": [ + { + "title": "To verify an HMAC", + "documentation": "This example verifies an HMAC for a particular message, HMAC KMS keys, and MAC algorithm. A value of 'true' in the MacValid value in the response indicates that the HMAC is valid.", + "input": { + "Message": "Hello World", + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "MacAlgorithm": "HMAC_SHA_384", + "Mac": "" + }, + "output": { + "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "MacValid": true, + "MacAlgorithm": "HMAC_SHA_384" + } + } + ] + } + }, + "com.amazonaws.kms#VerifyMacRequest": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

The message that will be used in the verification. Enter the same message that was used to\n generate the HMAC.

\n

\n GenerateMac and VerifyMac do not provide special handling\n for message digests. If you generated an HMAC for a hash digest of a message, you must verify\n the HMAC for the same hash digest.

", + "smithy.api#required": {} + } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The KMS key that will be used in the verification.

\n

Enter a key ID of the KMS key that was used to generate the HMAC. If you identify a\n different KMS key, the VerifyMac operation fails.

", + "smithy.api#required": {} + } + }, + "MacAlgorithm": { + "target": "com.amazonaws.kms#MacAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The MAC algorithm that will be used in the verification. Enter the same MAC algorithm that\n was used to compute the HMAC. This algorithm must be supported by the HMAC KMS key identified\n by the KeyId parameter.

", + "smithy.api#required": {} + } + }, + "Mac": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The HMAC to verify. Enter the HMAC that was generated by the GenerateMac\n operation when you specified the same message, HMAC KMS key, and MAC algorithm as the values\n specified in this request.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#VerifyMacResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The HMAC KMS key used in the verification.

" + } + }, + "MacValid": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A Boolean value that indicates whether the HMAC was verified. A value of True\n indicates that the HMAC (Mac) was generated with the specified\n Message, HMAC KMS key (KeyID) and\n MacAlgorithm..

\n

If the HMAC is not verified, the VerifyMac operation fails with a\n KMSInvalidMacException exception. This exception indicates that one or more of\n the inputs changed since the HMAC was computed.

" + } + }, + "MacAlgorithm": { + "target": "com.amazonaws.kms#MacAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The MAC algorithm used in the verification.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#VerifyRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the asymmetric KMS key that will be used to verify the signature. This must be\n the same KMS key that was used to generate the signature. If you specify a different KMS key,\n the signature verification fails.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Alias name: alias/ExampleAlias\n

    \n
  • \n
  • \n

    Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.kms#PlaintextType", + "traits": { + "smithy.api#documentation": "

Specifies the message that was signed. You can submit a raw message of up to 4096 bytes,\n or a hash digest of the message. If you submit a digest, use the MessageType\n parameter with a value of DIGEST.

\n

If the message specified here is different from the message that was signed, the signature\n verification fails. A message and its hash digest are considered to be the same\n message.

", + "smithy.api#required": {} + } + }, + "MessageType": { + "target": "com.amazonaws.kms#MessageType", + "traits": { + "smithy.api#documentation": "

Tells KMS whether the value of the Message parameter should be hashed as\n part of the signing algorithm. Use RAW for unhashed messages; use\n DIGEST for message digests, which are already hashed; use\n EXTERNAL_MU for 64-byte representative μ used in ML-DSA signing as defined\n in NIST FIPS 204 Section 6.2.

\n

When the value of MessageType is RAW, KMS uses the standard\n signing algorithm, which begins with a hash function. When the value is DIGEST,\n KMS skips the hashing step in the signing algorithm. When the value is\n EXTERNAL_MU KMS skips the concatenated hashing of the public key hash and the\n message done in the ML-DSA signing algorithm.

\n \n

Use the DIGEST or EXTERNAL_MU value only when the value of the\n Message parameter is a message digest. If you use the DIGEST\n value with an unhashed message, the security of the signing operation can be\n compromised.

\n
\n

When using ECC_NIST_EDWARDS25519 KMS keys:

\n
    \n
  • \n

    ED25519_SHA_512 signing algorithm requires KMS MessageType:RAW\n

    \n
  • \n
  • \n

    ED25519_PH_SHA_512 signing algorithm requires KMS MessageType:DIGEST\n

    \n
  • \n
\n \n

When you specify the ED25519_PH_SHA_512 signing algorithm with MessageType:DIGEST, KMS\n still performs the SHA-512 prehash described in Step 1\n of Section 7.8.1 in FIPS 186-5. This means the input is hashed twice: once by you and once by KMS.\n

\n
\n

When the value of MessageType is DIGEST, the length of the\n Message value must match the length of hashed messages for the specified\n signing algorithm.

\n

When the value of MessageType is EXTERNAL_MU the length of the\n Message value must be 64 bytes.

\n

You can submit a message digest and omit the MessageType or specify\n RAW so the digest is hashed again while signing. However, if the signed message\n is hashed once while signing, but twice while verifying, verification fails, even when the\n message hasn't changed.

\n

The hashing algorithm that Verify uses is based on the\n SigningAlgorithm value.

\n
    \n
  • \n

    Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.

    \n
  • \n
  • \n

    Signing algorithms that end in SHAKE_256 use the SHAKE_256 hashing algorithm.

    \n
  • \n
  • \n

    SM2DSA uses the SM3 hashing algorithm. For details, see Offline\n verification with SM2 key pairs.

    \n
  • \n
" + } + }, + "Signature": { + "target": "com.amazonaws.kms#CiphertextType", + "traits": { + "smithy.api#documentation": "

The signature that the Sign operation generated.

", + "smithy.api#required": {} + } + }, + "SigningAlgorithm": { + "target": "com.amazonaws.kms#SigningAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The signing algorithm that was used to sign the message. If you submit a different\n algorithm, the signature verification fails.

", + "smithy.api#required": {} + } + }, + "GrantTokens": { + "target": "com.amazonaws.kms#GrantTokenList", + "traits": { + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" + } + }, + "DryRun": { + "target": "com.amazonaws.kms#NullableBooleanType", + "traits": { + "smithy.api#documentation": "

Checks if your request will succeed. DryRun is an optional parameter.

\n

To learn more about how to use this parameter, see Testing your permissions in the Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#VerifyResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key that was used to verify the signature.

" + } + }, + "SignatureValid": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A Boolean value that indicates whether the signature was verified. A value of\n True indicates that the Signature was produced by signing the\n Message with the specified KeyID and\n SigningAlgorithm. If the signature is not verified, the Verify\n operation fails with a KMSInvalidSignatureException exception.

" + } + }, + "SigningAlgorithm": { + "target": "com.amazonaws.kms#SigningAlgorithmSpec", + "traits": { + "smithy.api#documentation": "

The signing algorithm that was used to verify the signature.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#WrappingKeySpec": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_2048" + } + }, + "RSA_3072": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_3072" + } + }, + "RSA_4096": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSA_4096" + } + }, + "SM2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM2" + } + } + } + }, + "com.amazonaws.kms#XksKeyAlreadyInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksKeyAlreadyInUse", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the (XksKeyId) is already associated with\n another KMS key in this external key store. Each KMS key in an external key store must be\n associated with a different external key.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksKeyConfigurationType": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.kms#XksKeyIdType", + "traits": { + "smithy.api#documentation": "

The ID of the external key in its external key manager. This is the ID that the external\n key store proxy uses to identify the external key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the external key that is\n associated with a KMS key in an external key store.

\n

This element appears in a CreateKey or DescribeKey\n response only for a KMS key in an external key store.

\n

The external key is a symmetric encryption key that is hosted by an\n external key manager outside of Amazon Web Services. When you use the KMS key in an external key store in a\n cryptographic operation, the cryptographic operation is performed in the external key manager\n using the specified external key. For more information, see External key in the\n Key Management Service Developer Guide.

" + } + }, + "com.amazonaws.kms#XksKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_.]+$" + } + }, + "com.amazonaws.kms#XksKeyInvalidConfigurationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksKeyInvalidConfiguration", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the external key specified by the XksKeyId\n parameter did not meet the configuration requirements for an external key store.

\n

The external key must be an AES-256 symmetric key that is enabled and performs encryption\n and decryption.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksKeyNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksKeyNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the external key store proxy could not find the external\n key. This exception is thrown when the value of the XksKeyId parameter doesn't\n identify a key in the external key manager associated with the external key proxy.

\n

Verify that the XksKeyId represents an existing key in the external key\n manager. Use the key identifier that the external key store proxy uses to identify the key.\n For details, see the documentation provided with your external key store proxy or key\n manager.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyAuthenticationAccessKeyIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 30 + }, + "smithy.api#pattern": "^[A-Z2-7]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.kms#XksProxyAuthenticationCredentialType": { + "type": "structure", + "members": { + "AccessKeyId": { + "target": "com.amazonaws.kms#XksProxyAuthenticationAccessKeyIdType", + "traits": { + "smithy.api#documentation": "

A unique identifier for the raw secret access key.

", + "smithy.api#required": {} + } + }, + "RawSecretAccessKey": { + "target": "com.amazonaws.kms#XksProxyAuthenticationRawSecretAccessKeyType", + "traits": { + "smithy.api#documentation": "

A secret string of 43-64 characters. Valid characters are a-z, A-Z, 0-9, /, +, and\n =.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

KMS uses the authentication credential to sign requests that it sends to the external\n key store proxy (XKS proxy) on your behalf. You establish these credentials on your external\n key store proxy and report them to KMS.

\n

The XksProxyAuthenticationCredential includes two required elements.

" + } + }, + "com.amazonaws.kms#XksProxyAuthenticationRawSecretAccessKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 43, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\/+=]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.kms#XksProxyConfigurationType": { + "type": "structure", + "members": { + "Connectivity": { + "target": "com.amazonaws.kms#XksProxyConnectivityType", + "traits": { + "smithy.api#documentation": "

Indicates whether the external key store proxy uses a public endpoint or an Amazon VPC endpoint\n service to communicate with KMS.

" + } + }, + "AccessKeyId": { + "target": "com.amazonaws.kms#XksProxyAuthenticationAccessKeyIdType", + "traits": { + "smithy.api#documentation": "

The part of the external key store proxy authentication credential that uniquely identifies the secret access\n key.

" + } + }, + "UriEndpoint": { + "target": "com.amazonaws.kms#XksProxyUriEndpointType", + "traits": { + "smithy.api#documentation": "

The URI endpoint for the external key store proxy.

\n

If the external key store proxy has a public endpoint, it is displayed here.

\n

If the external key store proxy uses an Amazon VPC endpoint service name, this field displays\n the private DNS name associated with the VPC endpoint service.

" + } + }, + "UriPath": { + "target": "com.amazonaws.kms#XksProxyUriPathType", + "traits": { + "smithy.api#documentation": "

The path to the external key store proxy APIs.

" + } + }, + "VpcEndpointServiceName": { + "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNameType", + "traits": { + "smithy.api#documentation": "

The Amazon VPC endpoint service used to communicate with the external key store proxy. This\n field appears only when the external key store proxy uses an Amazon VPC endpoint service to\n communicate with KMS.

" + } + }, + "VpcEndpointServiceOwner": { + "target": "com.amazonaws.kms#AccountIdType", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the Amazon VPC endpoint service used to communicate with the\n external key store proxy (XKS). This field appears only when the XKS uses an VPC endpoint\n service to communicate with KMS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information about the external key store proxy (XKS proxy). Your external key\n store proxy translates KMS requests into a format that your external key manager can\n understand. These fields appear in a DescribeCustomKeyStores response only\n when the CustomKeyStoreType is EXTERNAL_KEY_STORE.

" + } + }, + "com.amazonaws.kms#XksProxyConnectivityType": { + "type": "enum", + "members": { + "PUBLIC_ENDPOINT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUBLIC_ENDPOINT" + } + }, + "VPC_ENDPOINT_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPC_ENDPOINT_SERVICE" + } + } + } + }, + "com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyIncorrectAuthenticationCredentialException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the proxy credentials failed to authenticate to the\n specified external key store proxy. The specified external key store proxy rejected a status\n request from KMS due to invalid credentials. This can indicate an error in the credentials\n or in the identification of the external key store proxy.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyInvalidConfigurationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyInvalidConfigurationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the external key store proxy is not configured correctly.\n To identify the cause, see the error message that accompanies the exception.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyInvalidResponseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyInvalidResponseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

\n

KMS cannot interpret the response it received from the external key store proxy. The\n problem might be a poorly constructed response, but it could also be a transient network\n issue. If you see this error repeatedly, report it to the proxy vendor.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyUriEndpointInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyUriEndpointInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the XksProxyUriEndpoint is already\n associated with another external key store in this Amazon Web Services Region. To identify the cause, see\n the error message that accompanies the exception.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyUriEndpointType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 128 + }, + "smithy.api#pattern": "^https://[a-zA-Z0-9.-]+$" + } + }, + "com.amazonaws.kms#XksProxyUriInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyUriInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the concatenation of the XksProxyUriEndpoint\n and XksProxyUriPath is already associated with another external key store in this\n Amazon Web Services Region. Each external key store in a Region must use a unique external key store proxy\n API address.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyUriPathType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 128 + }, + "smithy.api#pattern": "^(/[a-zA-Z0-9\\/_-]+/kms/xks/v\\d{1,2})$|^(/kms/xks/v\\d{1,2})$" + } + }, + "com.amazonaws.kms#XksProxyUriUnreachableException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyUriUnreachableException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

KMS was unable to reach the specified XksProxyUriPath. The path must be\n reachable before you create the external key store or update its settings.

\n

This exception is also thrown when the external key store proxy response to a\n GetHealthStatus request indicates that all external key manager instances are\n unavailable.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyVpcEndpointServiceInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified Amazon VPC endpoint service is already\n associated with another external key store in this Amazon Web Services Region. Each external key store in a\n Region must use a different Amazon VPC endpoint service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyVpcEndpointServiceInvalidConfigurationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the Amazon VPC endpoint service configuration does not fulfill\n the requirements for an external key store. To identify the cause, see the error message that\n accompanies the exception and review the\n requirements for Amazon VPC endpoint service connectivity for an external key\n store.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.kms#XksProxyVpcEndpointServiceNameType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 64 + }, + "smithy.api#pattern": "^(com|eu)\\.amazonaws\\.vpce\\.([a-z]+-){2,3}\\d+\\.vpce-svc-[0-9a-z]+$" + } + }, + "com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "XksProxyVpcEndpointServiceNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because KMS could not find the specified VPC endpoint service.\n Use DescribeCustomKeyStores to verify the VPC endpoint service name for the\n external key store. Also, confirm that the Allow principals list for the VPC\n endpoint service includes the KMS service principal for the Region, such as\n cks.kms.us-east-1.amazonaws.com.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + } + } +} diff --git a/codegen/aws-models/lambda.json b/codegen/aws-models/lambda.json index 2e0fa8e5..4449393a 100644 --- a/codegen/aws-models/lambda.json +++ b/codegen/aws-models/lambda.json @@ -191,7 +191,7 @@ "FederatedUser" ], "aws.protocols#restJson1": {}, - "smithy.api#documentation": "Lambda

Overview

Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any type of application or backend service. For more information about the Lambda service, see What is Lambda in the Lambda Developer Guide.

The Lambda API Reference provides information about each of the API methods, including details about the parameters in each API request and response.

You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. For installation instructions, see Tools for Amazon Web Services.

For a list of Region-specific endpoints that Lambda supports, see Lambda endpoints and quotas in the Amazon Web Services General Reference..

When making the API calls, you will need to authenticate your request by providing a signature. Lambda supports signature version 4. For more information, see Signature Version 4 signing process in the Amazon Web Services General Reference..

CA certificates

Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate environment and do not manage your own computer, you might need to ask an administrator to assist with the update process. The following list shows minimum operating system and Java versions:

  • Microsoft Windows versions that have updates from January 2005 or later installed contain at least one of the required CAs in their trust list.

  • Mac OS X 10.4 with Java for Mac OS X 10.4 Release 5 (February 2007), Mac OS X 10.5 (October 2007), and later versions contain at least one of the required CAs in their trust list.

  • Red Hat Enterprise Linux 5 (March 2007), 6, and 7 and CentOS 5, 6, and 7 all contain at least one of the required CAs in their default trusted CA list.

  • Java 1.4.2_12 (May 2006), 5 Update 2 (March 2005), and all later versions, including Java 6 (December 2006), 7, and 8, contain at least one of the required CAs in their default trusted CA list.

When accessing the Lambda management console or Lambda API endpoints, whether through browsers or programmatically, you will need to ensure your client machines support any of the following CAs:

  • Amazon Root CA 1

  • Starfield Services Root Certificate Authority - G2

  • Starfield Class 2 Certification Authority

Root certificates from the first two authorities are available from Amazon trust services, but keeping your computer up-to-date is the more straightforward solution. To learn more about ACM-provided certificates, see Amazon Web Services Certificate Manager FAQs.

", + "smithy.api#documentation": "Lambda

Overview

Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any type of application or backend service. For more information about the Lambda service, see What is Lambda in the Lambda Developer Guide.

Lambda Event Functions, previously known as Lambda functions, run your code in response to events and API calls. In the Lambda API, the Amazon Web Services SDKs, and the CLI, Event Functions are still called functions, for example in CreateFunction and Invoke. You don't need to change any existing code.

The Lambda API Reference provides information about each of the API methods for Lambda Event Functions, including details about the parameters in each API request and response.

You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. For installation instructions, see Tools for Amazon Web Services.

For a list of Region-specific endpoints that Lambda supports, see Lambda endpoints and quotas in the Amazon Web Services General Reference..

When making the API calls, you will need to authenticate your request by providing a signature. Lambda supports signature version 4. For more information, see Signature Version 4 signing process in the Amazon Web Services General Reference..

CA certificates

Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate environment and do not manage your own computer, you might need to ask an administrator to assist with the update process. The following list shows minimum operating system and Java versions:

  • Microsoft Windows versions that have updates from January 2005 or later installed contain at least one of the required CAs in their trust list.

  • Mac OS X 10.4 with Java for Mac OS X 10.4 Release 5 (February 2007), Mac OS X 10.5 (October 2007), and later versions contain at least one of the required CAs in their trust list.

  • Red Hat Enterprise Linux 5 (March 2007), 6, and 7 and CentOS 5, 6, and 7 all contain at least one of the required CAs in their default trusted CA list.

  • Java 1.4.2_12 (May 2006), 5 Update 2 (March 2005), and all later versions, including Java 6 (December 2006), 7, and 8, contain at least one of the required CAs in their default trusted CA list.

When accessing the Lambda management console or Lambda API endpoints, whether through browsers or programmatically, you will need to ensure your client machines support any of the following CAs:

  • Amazon Root CA 1

  • Starfield Services Root Certificate Authority - G2

  • Starfield Class 2 Certification Authority

Root certificates from the first two authorities are available from Amazon trust services, but keeping your computer up-to-date is the more straightforward solution. To learn more about ACM-provided certificates, see Amazon Web Services Certificate Manager FAQs.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -2583,7 +2583,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 262144 + "max": 1048576 }, "smithy.api#sensitive": {}, "smithy.api#tags": [ @@ -2955,6 +2955,10 @@ "com.amazonaws.lambda#CapacityProviderArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::CapacityProvider", + "resource": "com.amazonaws.lambda#CapacityProviderResource" + }, "smithy.api#length": { "min": 1, "max": 140 @@ -3472,6 +3476,15 @@ "feature:public" ] } + }, + "XAmznTraceId": { + "target": "com.amazonaws.lambda#XAmznTraceId", + "traits": { + "smithy.api#documentation": "

The X-Ray trace header to use when starting the chained invocation. This parameter is optional. If you omit this value, the child invocation inherits the parent durable execution's trace header.

Specify this value on the START update for the chained invocation operation. For more information about the header format, see Tracing header in the X-Ray Developer Guide.

", + "smithy.api#tags": [ + "feature:public" + ] + } } }, "traits": { @@ -3957,6 +3970,10 @@ "com.amazonaws.lambda#CodeSigningConfigArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::CodeSigningConfig", + "resource": "com.amazonaws.lambda#CodeSigningConfigResource" + }, "smithy.api#length": { "min": 0, "max": 200 @@ -4461,7 +4478,7 @@ } } }, - "smithy.api#documentation": "

Creates an alias for a Lambda function version. Use aliases to provide clients with a function identifier that you can update to invoke a different version.

You can also map an alias to split invocation requests between two versions. Use the RoutingConfig parameter to specify a second version and the percentage of invocation requests that it receives.

", + "smithy.api#documentation": "

Creates an alias for a Lambda Event Function version. Use aliases to provide clients with a function identifier that you can update to invoke a different version.

You can also map an alias to split invocation requests between two versions. Use the RoutingConfig parameter to specify a second version and the percentage of invocation requests that it receives.

", "smithy.api#examples": [ { "documentation": "The following example creates an alias named LIVE that points to version 1 of the my-function Lambda function.", @@ -4602,7 +4619,7 @@ } } }, - "smithy.api#documentation": "

Creates a capacity provider that manages compute resources for Lambda functions

", + "smithy.api#documentation": "

Creates a capacity provider that manages compute resources for Lambda Event Functions

", "smithy.api#http": { "method": "POST", "uri": "/2025-11-30/capacity-providers", @@ -4876,7 +4893,7 @@ "documentation": "Grants permission to create a mapping between an event source and an AWS Lambda function", "relativeDocumentation": "API_CreateEventSourceMapping.html" }, - "smithy.api#documentation": "

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are available for stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • OnFailure – Send discarded records to an Amazon SQS queue, Amazon SNS topic, Kafka topic, or Amazon S3 bucket. For more information, see Adding a destination.

The following option is available only for DynamoDB and Kinesis event sources:

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

", + "smithy.api#documentation": "

Creates a mapping between an event source and an Lambda Event Function. Lambda reads items from the event source and invokes the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are available for stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • OnFailure – Send discarded records to an Amazon SQS queue, Amazon SNS topic, Kafka topic, or Amazon S3 bucket. For more information, see Adding a destination.

The following option is available only for DynamoDB and Kinesis event sources:

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

", "smithy.api#examples": [ { "documentation": "The following example creates a mapping between an SQS queue and the my-function Lambda function.", @@ -4889,7 +4906,7 @@ "BatchSize": 5, "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:my-queue", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", - "LastModified": 1.569284520333E9, + "LastModified": 1569284520.333, "State": "Creating", "StateTransitionReason": "USER_INITIATED", "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" @@ -4995,7 +5012,7 @@ "MaximumBatchingWindowInSeconds": { "target": "com.amazonaws.lambda#MaximumBatchingWindowInSeconds", "traits": { - "smithy.api#documentation": "

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

", + "smithy.api#documentation": "

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

Not supported for Kafka event source mappings when ConsumptionMode is Queue.

", "smithy.api#tags": [ "feature:public" ] @@ -5013,7 +5030,7 @@ "StartingPosition": { "target": "com.amazonaws.lambda#EventSourcePosition", "traits": { - "smithy.api#documentation": "

The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.

", + "smithy.api#documentation": "

The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.

Not supported for Kafka event source mappings when ConsumptionMode is Queue.

", "smithy.api#tags": [ "feature:public" ] @@ -5022,7 +5039,7 @@ "StartingPositionTimestamp": { "target": "com.amazonaws.lambda#Date", "traits": { - "smithy.api#documentation": "

With StartingPosition set to AT_TIMESTAMP, the time from which to start reading. StartingPositionTimestamp cannot be in the future.

", + "smithy.api#documentation": "

With StartingPosition set to AT_TIMESTAMP, the time from which to start reading. StartingPositionTimestamp cannot be in the future.

Not supported for Kafka event source mappings when ConsumptionMode is Queue.

", "smithy.api#tags": [ "feature:public" ] @@ -5058,7 +5075,7 @@ "MaximumRetryAttempts": { "target": "com.amazonaws.lambda#MaximumRetryAttemptsEventSourceMapping", "traits": { - "smithy.api#documentation": "

(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

", + "smithy.api#documentation": "

(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

For Kafka Stream consumption mode, the default is -1 (infinite retries; capped at 10 when an on-failure destination is configured). For Kafka Queue consumption mode, the default is 0, and if no on-failure destination is configured the Kafka broker performs retries.

", "smithy.api#tags": [ "feature:public" ] @@ -5237,7 +5254,7 @@ } } }, - "smithy.api#documentation": "

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing.

If the deployment package is a container image, then you set the package type to Image. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.

If the deployment package is a .zip file archive, then you set the package type to Zip. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64). If you do not specify the architecture, then the default value is x86-64.

When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The State, StateReason, and StateReasonCode fields in the response from GetFunctionConfiguration indicate when the function is ready to invoke. For more information, see Lambda function states.

A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the Publish parameter to create version 1 of your function from its initial configuration.

The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply to both the unpublished and published versions of the function, and include tags (TagResource) and per-function concurrency limits (PutFunctionConcurrency).

You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set of signing profiles, which define the trusted publishers for this function.

If another Amazon Web Services account or an Amazon Web Services service invokes your function, use AddPermission to grant permission by creating a resource-based Identity and Access Management (IAM) policy. You can grant permissions at the function level, on a version, or on an alias.

To invoke your function directly, use Invoke. To invoke your function in response to events in other Amazon Web Services services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Lambda functions.

", + "smithy.api#documentation": "

Creates a Lambda Event Function. To create a function, you need a deployment package and an execution role. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing.

If the deployment package is a container image, then you set the package type to Image. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.

If the deployment package is a .zip file archive, then you set the package type to Zip. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64). If you do not specify the architecture, then the default value is x86-64.

When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The State, StateReason, and StateReasonCode fields in the response from GetFunctionConfiguration indicate when the function is ready to invoke. For more information, see Lambda function states.

A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the Publish parameter to create version 1 of your function from its initial configuration.

The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply to both the unpublished and published versions of the function, and include tags (TagResource) and per-function concurrency limits (PutFunctionConcurrency).

You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set of signing profiles, which define the trusted publishers for this function.

If another Amazon Web Services account or an Amazon Web Services service invokes your function, use AddPermission to grant permission by creating a resource-based Identity and Access Management (IAM) policy. You can grant permissions at the function level, on a version, or on an alias.

To invoke your function directly, use Invoke. To invoke your function in response to events in other Amazon Web Services services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Lambda functions.

", "smithy.api#examples": [ { "documentation": "The following example creates a function with a deployment package in Amazon S3 and enables X-Ray tracing and environment variable encryption.", @@ -5842,7 +5859,7 @@ } } }, - "smithy.api#documentation": "

Deletes a Lambda function alias.

", + "smithy.api#documentation": "

Deletes a Lambda Event Function alias.

", "smithy.api#examples": [ { "documentation": "The following example deletes an alias named BLUE from a function named my-function", @@ -6192,7 +6209,7 @@ } } }, - "smithy.api#documentation": "

Deletes a Lambda function. To delete a specific function version, use the Qualifier parameter. Otherwise, all versions and aliases are deleted. This doesn't require the user to have explicit permissions for DeleteAlias.

A deleted Lambda function cannot be recovered. Ensure that you specify the correct function name and version before deleting.

To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For Amazon Web Services services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

", + "smithy.api#documentation": "

Deletes a Lambda Event Function. To delete a specific function version, use the Qualifier parameter. Otherwise, all versions and aliases are deleted. This doesn't require the user to have explicit permissions for DeleteAlias.

A deleted Lambda function cannot be recovered. Ensure that you specify the correct function name and version before deleting.

To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For Amazon Web Services services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

", "smithy.api#examples": [ { "documentation": "The following example deletes version 1 of a Lambda function named my-function.", @@ -6319,7 +6336,7 @@ } } }, - "smithy.api#documentation": "

Removes a concurrent execution limit from a function.

", + "smithy.api#documentation": "

Removes a concurrent execution limit from a Lambda Event Function.

", "smithy.api#examples": [ { "documentation": "The following example deletes the reserved concurrent execution limit from a function named my-function.", @@ -6914,7 +6931,7 @@ "traits": { "smithy.api#enumValue": "ENABLED", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } }, @@ -6923,7 +6940,7 @@ "traits": { "smithy.api#enumValue": "DISABLED", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } }, @@ -6932,14 +6949,14 @@ "traits": { "smithy.api#enumValue": "AUTO", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } } }, "traits": { "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } }, @@ -7095,6 +7112,10 @@ "com.amazonaws.lambda#DurableExecutionArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::DurableExecution", + "resource": "com.amazonaws.lambda#DurableExecution" + }, "smithy.api#length": { "min": 1, "max": 1024 @@ -8163,6 +8184,10 @@ "com.amazonaws.lambda#EventSourceMappingArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::EventSourceMapping", + "resource": "com.amazonaws.lambda#EventSourceMapping" + }, "smithy.api#length": { "min": 85, "max": 120 @@ -9292,7 +9317,7 @@ "traits": { "smithy.api#documentation": "

The configuration for how your function accesses data on an Amazon S3 file system. Valid only when the file system access point ARN is an Amazon S3 Files access point. If you specify a different access point type (for example, Amazon Elastic File System), the operation returns an InvalidParameterException.

", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } } @@ -9635,6 +9660,10 @@ "com.amazonaws.lambda#FunctionArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::Function", + "resource": "com.amazonaws.lambda#Function" + }, "smithy.api#length": { "min": 0, "max": 10000 @@ -10832,7 +10861,7 @@ } } }, - "smithy.api#documentation": "

Returns details about a Lambda function alias.

", + "smithy.api#documentation": "

Returns details about a Lambda Event Function alias.

", "smithy.api#examples": [ { "documentation": "The following example returns details about an alias named BLUE for a function named my-function", @@ -11347,7 +11376,7 @@ "InputPayload": { "target": "com.amazonaws.lambda#InputPayload", "traits": { - "smithy.api#documentation": "

The JSON input payload that was provided when the durable execution was started. For asynchronous invocations, this is limited to 256 KB. For synchronous invocations, this can be up to 6 MB.

", + "smithy.api#documentation": "

The JSON input payload that you provided when you started the durable execution. Asynchronous invocations support up to 1 MB, and synchronous invocations support up to 6 MB.

", "smithy.api#tags": [ "feature:public" ] @@ -11356,7 +11385,7 @@ "Result": { "target": "com.amazonaws.lambda#OutputPayload", "traits": { - "smithy.api#documentation": "

The JSON result returned by the durable execution if it completed successfully. This field is only present when the execution status is SUCCEEDED. The result is limited to 256 KB.

", + "smithy.api#documentation": "

The JSON result returned by the durable execution if it completed successfully. This field is only present when the execution status is SUCCEEDED. Asynchronous invocations support up to 1 MB, and synchronous invocations support up to 6 MB.

", "smithy.api#tags": [ "feature:public" ] @@ -11365,7 +11394,7 @@ "Error": { "target": "com.amazonaws.lambda#ErrorObject", "traits": { - "smithy.api#documentation": "

Error information if the durable execution failed. This field is only present when the execution status is FAILED, TIMED_OUT, or STOPPED. The combined size of all error fields is limited to 256 KB.

", + "smithy.api#documentation": "

Error information if the durable execution failed. This field is only present when the execution status is FAILED, TIMED_OUT, or STOPPED. The combined size of all error fields is limited to 1 MB.

", "smithy.api#tags": [ "feature:public" ] @@ -11713,7 +11742,7 @@ } } }, - "smithy.api#documentation": "

Returns information about the function or function version, with a link to download the deployment package that's valid for 10 minutes. If you specify a function version, only details that are specific to that version are returned.

", + "smithy.api#documentation": "

Returns information about a Lambda Event Function or function version, with a link to download the deployment package that's valid for 10 minutes. If you specify a function version, only details that are specific to that version are returned.

", "smithy.api#examples": [ { "documentation": "The following example returns code and configuration details for version 1 of a function named my-function.", @@ -12099,7 +12128,7 @@ } } }, - "smithy.api#documentation": "

Returns the version-specific settings of a Lambda function or version. The output includes only options that can vary between versions of a function. To modify these settings, use UpdateFunctionConfiguration.

To get all of a function's details, including function-level settings, use GetFunction.

", + "smithy.api#documentation": "

Returns the version-specific settings of a Lambda Event Function or version. The output includes only options that can vary between versions of a function. To modify these settings, use UpdateFunctionConfiguration.

To get all of a function's details, including function-level settings, use GetFunction.

", "smithy.api#examples": [ { "documentation": "The following example returns and configuration details for version 1 of a function named my-function.", @@ -14610,7 +14639,7 @@ } } }, - "smithy.api#documentation": "

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for synchronous invocations only.

For synchronous invocations, the maximum payload size is 6 MB. For asynchronous invocations, the maximum payload size is 1 MB.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

", + "smithy.api#documentation": "

Invokes a Lambda Event Function. You can invoke a function synchronously (and wait for the response), or asynchronously. By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for synchronous invocations only.

For synchronous invocations, the maximum payload size is 6 MB. For asynchronous invocations, the maximum payload size is 1 MB.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

", "smithy.api#examples": [ { "documentation": "The following example invokes version 1 of a function named my-function with an empty event payload.", @@ -14915,6 +14944,15 @@ "target": "com.amazonaws.lambda#InvokeWithResponseStreamResponse" }, "errors": [ + { + "target": "com.amazonaws.lambda#CodeArtifactUserDeletedException" + }, + { + "target": "com.amazonaws.lambda#CodeArtifactUserFailedException" + }, + { + "target": "com.amazonaws.lambda#CodeArtifactUserPendingException" + }, { "target": "com.amazonaws.lambda#EC2AccessDeniedException" }, @@ -15041,7 +15079,7 @@ } } }, - "smithy.api#documentation": "

Configure your Lambda functions to stream response payloads back to clients. For more information, see Configuring a Lambda function to stream responses.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

", + "smithy.api#documentation": "

Configure your Lambda Event Functions to stream response payloads back to clients. For more information, see Configuring a Lambda function to stream responses.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

", "smithy.api#http": { "method": "POST", "uri": "/2021-11-15/functions/{FunctionName}/response-streaming-invocations", @@ -15429,13 +15467,41 @@ ] } }, + "com.amazonaws.lambda#KafkaEventSourceMappingConsumptionMode": { + "type": "enum", + "members": { + "Stream": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stream", + "smithy.api#tags": [ + "feature:kafka-queue-smk" + ] + } + }, + "Queue": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Queue", + "smithy.api#tags": [ + "feature:kafka-queue-smk" + ] + } + } + }, + "traits": { + "smithy.api#tags": [ + "feature:kafka-queue-smk" + ] + } + }, "com.amazonaws.lambda#KafkaSchemaRegistryAccessConfig": { "type": "structure", "members": { "Type": { "target": "com.amazonaws.lambda#KafkaSchemaRegistryAuthType", "traits": { - "smithy.api#documentation": "

The type of authentication Lambda uses to access your schema registry.

", + "smithy.api#documentation": "

The type of authentication Lambda uses to access your schema registry.

  • BASIC_AUTH – The Secrets Manager ARN of your secret key used for basic authentication with your Confluent schema registry.

  • CLIENT_CERTIFICATE_TLS_AUTH – The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication with your Confluent schema registry.

  • SERVER_ROOT_CA_CERTIFICATE – The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption with your Confluent schema registry.

  • OAUTHBEARER_AUTH – The Secrets Manager ARN of your secret key containing the OAuth 2.0 credentials that Lambda uses to acquire an access token for your Confluent schema registry. For the contents of the secret, see Configuring the OAuth secret.

", "smithy.api#tags": [ "feature:public" ] @@ -15503,6 +15569,15 @@ "feature:public" ] } + }, + "OAUTHBEARER_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_AUTH", + "smithy.api#tags": [ + "feature:public" + ] + } } }, "traits": { @@ -16091,6 +16166,10 @@ "com.amazonaws.lambda#LayerArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::Layer", + "resource": "com.amazonaws.lambda#LayerResource" + }, "smithy.api#length": { "min": 1, "max": 2048 @@ -16238,6 +16317,10 @@ "com.amazonaws.lambda#LayerVersionArn": { "type": "string", "traits": { + "aws.api#arnReference": { + "type": "AWS::Lambda::LayerVersion", + "resource": "com.amazonaws.lambda#LayerVersion" + }, "smithy.api#length": { "min": 1, "max": 2048 @@ -16585,7 +16668,7 @@ } } }, - "smithy.api#documentation": "

Returns a list of aliases for a Lambda function.

", + "smithy.api#documentation": "

Returns a list of aliases for a Lambda Event Function.

", "smithy.api#examples": [ { "documentation": "The following example returns a list of aliases for a function named my-function.", @@ -16989,7 +17072,7 @@ "Qualifier": { "target": "com.amazonaws.lambda#NumericLatestPublishedOrAliasQualifier", "traits": { - "smithy.api#documentation": "

The function version or alias. If not specified, lists executions for the $LATEST version.

", + "smithy.api#documentation": "

The function version to filter executions by. If you don't specify a qualifier, this operation returns executions across all versions of the Lambda function.

", "smithy.api#httpQuery": "Qualifier", "smithy.api#tags": [ "feature:public" @@ -17145,7 +17228,7 @@ "BatchSize": 5, "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", - "LastModified": 1.569284520333E9, + "LastModified": 1569284520.333, "State": "Enabled", "StateTransitionReason": "USER_INITIATED", "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" @@ -17281,7 +17364,7 @@ } } }, - "smithy.api#documentation": "

Retrieves a list of configurations for asynchronous invocation for a function.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

", + "smithy.api#documentation": "

Retrieves a list of configurations for asynchronous invocation for a Lambda Event Function. To retrieve more configurations, use the Marker parameter.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

", "smithy.api#examples": [ { "documentation": "The following example returns a list of asynchronous invocation configurations for a function named my-function.", @@ -17292,13 +17375,13 @@ "FunctionEventInvokeConfigs": [ { "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:GREEN", - "LastModified": 1.577824406719E9, + "LastModified": 1577824406.719, "MaximumEventAgeInSeconds": 1800, "MaximumRetryAttempts": 2 }, { "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:BLUE", - "LastModified": 1.577824396653E9, + "LastModified": 1577824396.653, "MaximumEventAgeInSeconds": 3600, "MaximumRetryAttempts": 0 } @@ -17670,7 +17753,7 @@ "documentation": "Grants permission to retrieve a list of AWS Lambda functions, with the version-specific configuration of each function", "relativeDocumentation": "API_ListFunctions.html" }, - "smithy.api#documentation": "

Returns a list of Lambda functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version.

The ListFunctions operation returns a subset of the FunctionConfiguration fields. To get the additional fields (State, StateReasonCode, StateReason, LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode, RuntimeVersionConfig) for a function or version, use GetFunction.

", + "smithy.api#documentation": "

Returns a list of Lambda Event Functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version.

The ListFunctions operation returns a subset of the FunctionConfiguration fields. To get the additional fields (State, StateReasonCode, StateReason, LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode, RuntimeVersionConfig) for a function or version, use GetFunction.

", "smithy.api#examples": [ { "documentation": "This operation returns a list of Lambda functions.", @@ -18541,7 +18624,7 @@ } } }, - "smithy.api#documentation": "

Returns a list of versions, with the version-specific configuration of each. Lambda returns up to 50 versions per call.

", + "smithy.api#documentation": "

Returns a list of versions of a Lambda Event Function, with the version-specific configuration of each. Lambda returns up to 50 versions per call.

", "smithy.api#examples": [ { "documentation": "The following example returns a list of versions of a function named my-function", @@ -19696,7 +19779,7 @@ "Payload": { "target": "com.amazonaws.lambda#OperationPayload", "traits": { - "smithy.api#documentation": "

The payload for successful operations. The maximum payload size is 6 MB for synchronous EXECUTION operations (RequestResponse invocationType), 1 MB for asynchronous EXECUTION (Event invocationType) and CHAINED_INVOKE operations, and 256 KB for CONTEXT, STEP, WAIT, and CALLBACK operations.

", + "smithy.api#documentation": "

The payload for successful operations. The maximum payload size is 6 MB for synchronous EXECUTION operations (RequestResponse invocationType), and 1 MB for asynchronous EXECUTION (Event invocationType), CHAINED_INVOKE, CONTEXT, STEP, WAIT, and CALLBACK operations.

", "smithy.api#tags": [ "feature:public" ] @@ -19705,7 +19788,7 @@ "Error": { "target": "com.amazonaws.lambda#ErrorObject", "traits": { - "smithy.api#documentation": "

The error information for failed operations.

", + "smithy.api#documentation": "

The error information for failed operations. The combined size of all error fields is limited to 1 MB.

", "smithy.api#tags": [ "feature:public" ] @@ -19958,7 +20041,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(:(\\$LATEST(\\.PUBLISHED)?|[a-zA-Z0-9-_])+)?$", + "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:(runtime/|function:)[a-zA-Z0-9-_]+(:(\\$LATEST(\\.PUBLISHED)?|[a-zA-Z0-9-_])+)?$", "smithy.api#tags": [ "feature:public" ] @@ -20648,7 +20731,7 @@ } } }, - "smithy.api#documentation": "

Creates a version from the current code and configuration of a function. Use versions to create a snapshot of your function code and configuration that doesn't change.

Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use UpdateFunctionCode or UpdateFunctionConfiguration to update the function before publishing a version.

Clients can invoke versions directly or with an alias. To create an alias, use CreateAlias.

", + "smithy.api#documentation": "

Creates a version from the current code and configuration of a Lambda Event Function. Use versions to create a snapshot of your function code and configuration that doesn't change.

Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use UpdateFunctionCode or UpdateFunctionConfiguration to update the function before publishing a version.

Clients can invoke versions directly or with an alias. To create an alias, use CreateAlias.

", "smithy.api#examples": [ { "documentation": "This operation publishes a version of a Lambda function", @@ -20919,7 +21002,7 @@ } } }, - "smithy.api#documentation": "

Sets the maximum number of simultaneous executions for a function, and reserves capacity for that concurrency level.

Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both ensures that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use GetFunction to see the current setting for a function.

Use GetAccountSettings to see your Regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren't configured with a per-function limit. For more information, see Lambda function scaling.

", + "smithy.api#documentation": "

Sets the maximum number of simultaneous executions for a Lambda Event Function, and reserves capacity for that concurrency level.

Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both ensures that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use GetFunction to see the current setting for a function.

Use GetAccountSettings to see your Regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren't configured with a per-function limit. For more information, see Lambda function scaling.

", "smithy.api#examples": [ { "documentation": "The following example configures 100 reserved concurrent executions for the my-function function.", @@ -21136,7 +21219,7 @@ } } }, - "smithy.api#documentation": "

Sets your function's recursive loop detection configuration.

When you configure a Lambda function to output to the same service or resource that invokes the function, it's possible to create an infinite recursive loop. For example, a Lambda function might write a message to an Amazon Simple Queue Service (Amazon SQS) queue, which then invokes the same function. This invocation causes the function to write another message to the queue, which in turn invokes the function again.

Lambda can detect certain types of recursive loops shortly after they occur. When Lambda detects a recursive loop and your function's recursive loop detection configuration is set to Terminate, it stops your function being invoked and notifies you.

", + "smithy.api#documentation": "

Sets the recursive loop detection configuration for a Lambda Event Function.

When you configure a Lambda function to output to the same service or resource that invokes the function, it's possible to create an infinite recursive loop. For example, a Lambda function might write a message to an Amazon Simple Queue Service (Amazon SQS) queue, which then invokes the same function. This invocation causes the function to write another message to the queue, which in turn invokes the function again.

Lambda can detect certain types of recursive loops shortly after they occur. When Lambda detects a recursive loop and your function's recursive loop detection configuration is set to Terminate, it stops your function being invoked and notifies you.

", "smithy.api#http": { "method": "PUT", "uri": "/2024-08-31/functions/{FunctionName}/recursion-config", @@ -22844,7 +22927,7 @@ "traits": { "smithy.api#enumValue": "nodejs26.x", "smithy.api#tags": [ - "feature:nodejs-26" + "feature:public" ] } }, @@ -22853,7 +22936,7 @@ "traits": { "smithy.api#enumValue": "python3.15", "smithy.api#tags": [ - "feature:python-315" + "feature:public" ] } }, @@ -22898,7 +22981,7 @@ "min": 26, "max": 2048 }, - "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*):lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}::runtime:.+$", + "smithy.api#pattern": "^((arn:(aws[a-zA-Z-]*):lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}::runtime:.+)|(arn:(aws[a-zA-Z-]*):lambda:(eusc-)?[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:runtime/[A-Za-z0-9_.-]{1,128}/version/[A-Za-z0-9_.-]{1,128}))$", "smithy.api#tags": [ "feature:public" ] @@ -22983,7 +23066,7 @@ "traits": { "smithy.api#documentation": "

Specifies if a function reads from the file system for the lowest latency, or through Amazon S3 Files feature \"direct Amazon S3 bucket reads\" for the highest throughput. Valid values:

  • AUTO (default) – Direct reads are active for functions you configure with 512 MB or more of memory.

  • ENABLED – Enforces all reads are directly from the Amazon S3 bucket, regardless of available memory (less than 512 MB).

  • DISABLED – Routes all reads through the file system, regardless of memory configuration.

To use direct reads, you must grant the execution role the s3:GetObject and s3:GetObjectVersion permissions. If a direct read fails, Lambda automatically falls back to reading through the file system.

", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } } @@ -22991,7 +23074,7 @@ "traits": { "smithy.api#documentation": "

Setting controls how your function accesses data from an Amazon S3 file system.

", "smithy.api#tags": [ - "feature:s3files-rbp" + "feature:public" ] } }, @@ -23279,6 +23362,15 @@ "feature:public" ] } + }, + "ConsumptionMode": { + "target": "com.amazonaws.lambda#KafkaEventSourceMappingConsumptionMode", + "traits": { + "smithy.api#documentation": "

The mode that Lambda uses to consume records from your self-managed Apache Kafka topic. The default is Stream.

  • Stream – Lambda consumes records using a Kafka consumer group and preserves the order of records within each partition. This is the default when you omit ConsumptionMode.

  • Queue – Lambda consumes records using a Kafka share group. Multiple consumers can process records from the same partitions concurrently. Queue mode does not preserve per-partition order. Queue mode requires an Apache Kafka cluster running version 4.2 or later with share groups enabled.

You cannot change ConsumptionMode after you create the event source mapping. To use a different consumption mode, create a new event source mapping.

When ConsumptionMode is Queue, the StartingPosition, StartingPositionTimestamp, and MaximumBatchingWindowInSeconds parameters are not supported.

", + "smithy.api#tags": [ + "feature:kafka-queue-smk" + ] + } } }, "traits": { @@ -23362,7 +23454,7 @@ "Error": { "target": "com.amazonaws.lambda#ErrorObject", "traits": { - "smithy.api#documentation": "

Error details describing why the callback operation failed.

", + "smithy.api#documentation": "

Error details describing why the callback operation failed. The combined size of all error fields is limited to 1 MB.

", "smithy.api#httpPayload": {}, "smithy.api#tags": [ "feature:public" @@ -23538,7 +23630,7 @@ "Result": { "target": "com.amazonaws.lambda#BinaryOperationPayload", "traits": { - "smithy.api#documentation": "

The result data from the successful callback operation. Maximum size is 256 KB.

", + "smithy.api#documentation": "

The result data from the successful callback operation. Maximum size is 1 MB.

", "smithy.api#httpPayload": {}, "smithy.api#tags": [ "feature:public" @@ -23923,7 +24015,7 @@ "Type": { "target": "com.amazonaws.lambda#SourceAccessType", "traits": { - "smithy.api#documentation": "

The type of authentication protocol, VPC components, or virtual host for your event source. For example: \"Type\":\"SASL_SCRAM_512_AUTH\".

  • BASIC_AUTH – (Amazon MQ) The Secrets Manager secret that stores your broker credentials.

  • BASIC_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.

  • VPC_SUBNET – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.

  • VPC_SECURITY_GROUP – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.

  • SASL_SCRAM_256_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.

  • SASL_SCRAM_512_AUTH – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.

  • VIRTUAL_HOST –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.

  • CLIENT_CERTIFICATE_TLS_AUTH – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.

  • SERVER_ROOT_CA_CERTIFICATE – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.

", + "smithy.api#documentation": "

The type of authentication protocol, VPC components, or virtual host for your event source. For example: \"Type\":\"SASL_SCRAM_512_AUTH\".

  • BASIC_AUTH – (Amazon MQ) The Secrets Manager secret that stores your broker credentials.

  • BASIC_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.

  • VPC_SUBNET – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.

  • VPC_SECURITY_GROUP – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.

  • SASL_SCRAM_256_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.

  • SASL_SCRAM_512_AUTH – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.

  • VIRTUAL_HOST –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.

  • CLIENT_CERTIFICATE_TLS_AUTH – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.

  • SERVER_ROOT_CA_CERTIFICATE – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.

  • OAUTHBEARER_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the OAuth 2.0 credentials that Lambda uses for SASL/OAUTHBEARER authentication with your Apache Kafka brokers. For the contents of the secret, see Configuring the OAuth secret.

  • OAUTHBEARER_SCOPE – (Self-managed Apache Kafka) The OAuth 2.0 scope that Lambda requests when it acquires an access token. The URI field holds the scope value, not a secret ARN. This type requires OAUTHBEARER_AUTH.

  • OAUTHBEARER_AUDIENCE – (Self-managed Apache Kafka) The OAuth 2.0 audience that Lambda requests when it acquires an access token. The URI field holds the audience value, not a secret ARN. This type requires either OAUTHBEARER_AUTH or IAM_OAUTHBEARER_AUTH.

  • OAUTHBEARER_LOGICAL_CLUSTER – (Self-managed Apache Kafka) The logical cluster identifier that Lambda sends to a Confluent Cloud broker. The URI field holds the identifier, not a secret ARN. This type requires OAUTHBEARER_AUTH.

  • OAUTHBEARER_IDENTITY_POOL – (Self-managed Apache Kafka) The identity pool identifier that Lambda sends to a Confluent Cloud broker. The URI field holds the identifier, not a secret ARN. This type requires OAUTHBEARER_AUTH.

  • IAM_AUTH – (Self-managed Apache Kafka) Authenticate with Identity and Access Management (IAM). Your function's execution role signs each connection, so there is no secret to provide. Omit the URI field for this type.

  • IAM_OAUTHBEARER_AUTH – (Self-managed Apache Kafka) Authenticate with an Amazon Web Services web identity token over SASL/OAUTHBEARER. Lambda requests the token for your function's execution role, so there is no secret to provide. Omit the URI field for this type. This type requires OAUTHBEARER_AUDIENCE and does not support the other OAUTHBEARER types.

", "smithy.api#tags": [ "feature:public" ] @@ -24040,6 +24132,69 @@ "feature:public" ] } + }, + "OAUTHBEARER_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_AUTH", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "OAUTHBEARER_SCOPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_SCOPE", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "OAUTHBEARER_AUDIENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_AUDIENCE", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "OAUTHBEARER_LOGICAL_CLUSTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_LOGICAL_CLUSTER", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "OAUTHBEARER_IDENTITY_POOL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OAUTHBEARER_IDENTITY_POOL", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "IAM_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM_AUTH", + "smithy.api#tags": [ + "feature:public" + ] + } + }, + "IAM_OAUTHBEARER_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM_OAUTHBEARER_AUTH", + "smithy.api#tags": [ + "feature:public" + ] + } } }, "traits": { @@ -24775,7 +24930,7 @@ "Error": { "target": "com.amazonaws.lambda#ErrorObject", "traits": { - "smithy.api#documentation": "

Optional error details explaining why the execution is being stopped.

", + "smithy.api#documentation": "

Optional error details explaining why the execution is being stopped. The combined size of all error fields is limited to 1 MB.

", "smithy.api#httpPayload": {}, "smithy.api#tags": [ "feature:public" @@ -25747,7 +25902,7 @@ } } }, - "smithy.api#documentation": "

Updates the configuration of a Lambda function alias.

", + "smithy.api#documentation": "

Updates the configuration of a Lambda Event Function alias.

", "smithy.api#examples": [ { "documentation": "The following example updates the alias named BLUE to send 30% of traffic to version 2 and 70% to version 1.", @@ -26243,7 +26398,7 @@ "MaximumBatchingWindowInSeconds": { "target": "com.amazonaws.lambda#MaximumBatchingWindowInSeconds", "traits": { - "smithy.api#documentation": "

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

", + "smithy.api#documentation": "

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

Not supported for Kafka event source mappings when ConsumptionMode is Queue.

", "smithy.api#tags": [ "feature:public" ] @@ -26288,7 +26443,7 @@ "MaximumRetryAttempts": { "target": "com.amazonaws.lambda#MaximumRetryAttemptsEventSourceMapping", "traits": { - "smithy.api#documentation": "

(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

", + "smithy.api#documentation": "

(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

For Kafka Stream consumption mode, the default is -1 (infinite retries; capped at 10 when an on-failure destination is configured). For Kafka Queue consumption mode, the default is 0, and if no on-failure destination is configured the Kafka broker performs retries.

", "smithy.api#tags": [ "feature:public" ] @@ -26413,7 +26568,7 @@ } } }, - "smithy.api#documentation": "

Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed by a trusted publisher. For more information, see Configuring code signing for Lambda.

If the function's package type is Image, then you must specify the code package in ImageUri as the URI of a container image in the Amazon ECR registry.

If the function's package type is Zip, then you must specify the deployment package as a .zip file archive. Enter the Amazon S3 bucket and key of the code .zip file location. You can also provide the function code inline using the ZipFile field.

The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64).

The function's code is locked when you publish a version. You can't modify the code of a published version, only the unpublished version.

For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if you update the image tag to a new image, Lambda does not automatically update the function.

", + "smithy.api#documentation": "

Updates a Lambda Event Function's code. If code signing is enabled for the function, the code package must be signed by a trusted publisher. For more information, see Configuring code signing for Lambda.

If the function's package type is Image, then you must specify the code package in ImageUri as the URI of a container image in the Amazon ECR registry.

If the function's package type is Zip, then you must specify the deployment package as a .zip file archive. Enter the Amazon S3 bucket and key of the code .zip file location. You can also provide the function code inline using the ZipFile field.

The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64).

The function's code is locked when you publish a version. You can't modify the code of a published version, only the unpublished version.

For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if you update the image tag to a new image, Lambda does not automatically update the function.

", "smithy.api#examples": [ { "documentation": "The following example replaces the code of the unpublished ($LATEST) version of a function named my-function with the contents of the specified zip file in Amazon S3.", @@ -26641,7 +26796,7 @@ } } }, - "smithy.api#documentation": "

Modify the version-specific settings of a Lambda function.

When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The LastUpdateStatus, LastUpdateStatusReason, and LastUpdateStatusReasonCode fields in the response from GetFunctionConfiguration indicate when the update is complete and the function is processing events with the new configuration. For more information, see Lambda function states.

These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an Amazon Web Services account or Amazon Web Services service, use AddPermission.

", + "smithy.api#documentation": "

Modifies the version-specific settings of a Lambda Event Function.

When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The LastUpdateStatus, LastUpdateStatusReason, and LastUpdateStatusReasonCode fields in the response from GetFunctionConfiguration indicate when the update is complete and the function is processing events with the new configuration. For more information, see Lambda function states.

These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an Amazon Web Services account or Amazon Web Services service, use AddPermission.

", "smithy.api#examples": [ { "documentation": "The following example modifies the memory size to be 256 MB for the unpublished ($LATEST) version of a function named my-function.", @@ -26945,7 +27100,7 @@ "OnSuccess": {} }, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", - "LastModified": 1.573687896493E9, + "LastModified": 1573687896.493, "MaximumEventAgeInSeconds": 3600, "MaximumRetryAttempts": 0 }, @@ -27060,7 +27215,7 @@ } } }, - "smithy.api#documentation": "

Updates the configuration for a Lambda function URL.

", + "smithy.api#documentation": "

Updates the configuration for a function URL of a Lambda Event Function.

", "smithy.api#http": { "method": "PUT", "uri": "/2021-10-31/functions/{FunctionName}/url", @@ -27518,4 +27673,4 @@ } } } -} \ No newline at end of file +} diff --git a/codegen/aws-models/polly.json b/codegen/aws-models/polly.json index de2484a1..b862d7e6 100644 --- a/codegen/aws-models/polly.json +++ b/codegen/aws-models/polly.json @@ -32,6 +32,15 @@ "com.amazonaws.polly#Alphabet": { "type": "string" }, + "com.amazonaws.polly#AmazonResourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1011 + } + } + }, "com.amazonaws.polly#AudioChunk": { "type": "blob" }, @@ -316,6 +325,9 @@ "com.amazonaws.polly#ErrorMessage": { "type": "string" }, + "com.amazonaws.polly#ExceptionMessage": { + "type": "string" + }, "com.amazonaws.polly#FlushStreamConfiguration": { "type": "structure", "members": { @@ -570,6 +582,19 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.polly#InvalidTagParameterException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.polly#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The resource ARN or a tag in the request isn't valid. Specify the ARN\n of a supported resource in the Amazon Web Services account and Region of the request.\n Tag keys can have a maximum length of 128 characters, and tag values can\n have a maximum length of 256 characters. Correct the ARN or the tags, and\n then try again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.polly#InvalidTaskIdException": { "type": "structure", "members": { @@ -900,7 +925,7 @@ "Alphabet": { "target": "com.amazonaws.polly#Alphabet", "traits": { - "smithy.api#documentation": "

Phonetic alphabet used in the lexicon. Valid values are\n ipa and x-sampa.

" + "smithy.api#documentation": "

Phonetic alphabet used in the lexicon. Valid values are\n ipa, x-sampa, x-amazon-pinyin,\n x-amazon-jyutping, x-amazon-pron-kana, and\n x-amazon-yomigana.

" } }, "LanguageCode": { @@ -1043,7 +1068,7 @@ { "Attributes": { "LanguageCode": "en-US", - "LastModified": 1.478542980117E9, + "LastModified": 1478542980.117, "Alphabet": "ipa", "LexemesCount": 1, "LexiconArn": "arn:aws:polly:us-east-1:123456789012:lexicon/example", @@ -1176,6 +1201,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.polly#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.polly#ListTagsForResourceInput" + }, + "output": { + "target": "com.amazonaws.polly#ListTagsForResourceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.polly#InvalidTagParameterException" + }, + { + "target": "com.amazonaws.polly#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.polly#ServiceFailureException" + }, + { + "target": "com.amazonaws.polly#ThrottlingException" + }, + { + "target": "com.amazonaws.polly#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the tags for an Amazon Polly resource.

", + "smithy.api#examples": [ + { + "title": "To list the tags on a lexicon", + "documentation": "The following example lists the tags associated with a pronunciation lexicon.", + "input": { + "ResourceArn": "arn:aws:polly:us-east-1:111122223333:lexicon/example" + }, + "output": { + "Tags": { + "Project": "Narration", + "Environment": "Production" + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/v1/listTagsForResource", + "code": 200 + } + } + }, + "com.amazonaws.polly#ListTagsForResourceInput": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.polly#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the resource for which\n to list the tags. Currently, the only supported resource is an Amazon Polly\n lexicon.

", + "smithy.api#httpQuery": "arn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.polly#ListTagsForResourceOutput": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.polly#TagMap", + "traits": { + "smithy.api#documentation": "

The tags for the resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.polly#MarksNotSupportedForFormatException": { "type": "structure", "members": { @@ -1317,6 +1421,9 @@ { "target": "com.amazonaws.polly#ListSpeechSynthesisTasks" }, + { + "target": "com.amazonaws.polly#ListTagsForResource" + }, { "target": "com.amazonaws.polly#PutLexicon" }, @@ -1328,6 +1435,12 @@ }, { "target": "com.amazonaws.polly#SynthesizeSpeech" + }, + { + "target": "com.amazonaws.polly#TagResource" + }, + { + "target": "com.amazonaws.polly#UntagResource" } ], "traits": { @@ -1350,7 +1463,7 @@ "h2" ] }, - "smithy.api#documentation": "

Amazon Polly is a web service that makes it easy to synthesize speech from\n text.

\n

The Amazon Polly service provides API operations for synthesizing\n high-quality speech from plain text and Speech Synthesis Markup Language\n (SSML), along with managing pronunciations lexicons that enable you to get\n the best results for your application domain.

", + "smithy.api#documentation": "

Amazon Polly is a web service that makes it easy to synthesize speech from\n text.

\n

The Amazon Polly service provides API operations for synthesizing\n high-quality speech from plain text and Speech Synthesis Markup Language\n (SSML), along with managing pronunciations lexicons that enable you to get\n the best results for your application domain.

\n

Authenticated API calls must be signed using the Signature Version 4 Signing Process. For more information, see Signing Amazon Web Services API Requests in the IAM User Guide.

", "smithy.api#title": "Amazon Polly", "smithy.api#xmlNamespace": { "uri": "http://polly.amazonaws.com/doc/v1" @@ -2453,6 +2566,9 @@ { "target": "com.amazonaws.polly#InvalidLexiconException" }, + { + "target": "com.amazonaws.polly#InvalidTagParameterException" + }, { "target": "com.amazonaws.polly#LexiconSizeExceededException" }, @@ -2465,15 +2581,21 @@ { "target": "com.amazonaws.polly#ServiceFailureException" }, + { + "target": "com.amazonaws.polly#TooManyTagsException" + }, { "target": "com.amazonaws.polly#UnsupportedPlsAlphabetException" }, { "target": "com.amazonaws.polly#UnsupportedPlsLanguageException" + }, + { + "target": "com.amazonaws.polly#ValidationException" } ], "traits": { - "smithy.api#documentation": "

Stores a pronunciation lexicon in an Amazon Web Services Region. If\n a lexicon with the same name already exists in the region, it is\n overwritten by the new lexicon. Lexicon operations have eventual\n consistency, therefore, it might take some time before the lexicon is\n available to the SynthesizeSpeech operation.

\n

For more information, see Managing Lexicons.

", + "smithy.api#documentation": "

Stores a pronunciation lexicon in an Amazon Web Services Region. If\n a lexicon with the same name already exists in the region, it is\n overwritten by the new lexicon. Lexicon operations have eventual\n consistency, therefore, it might take some time before the lexicon is\n available to the SynthesizeSpeech operation.

\n

Overwriting a lexicon keeps its existing tags. You can specify tags\n only when you create a lexicon. If you specify tags for a lexicon that\n already exists, the request fails with a ValidationException.\n To change the tags of an existing lexicon, use TagResource\n and UntagResource.

\n

For more information, see Managing Lexicons.

", "smithy.api#examples": [ { "title": "To save a lexicon", @@ -2498,7 +2620,7 @@ "Name": { "target": "com.amazonaws.polly#LexiconName", "traits": { - "smithy.api#documentation": "

Name of the lexicon. The name must follow the regular express\n format [0-9A-Za-z]{1,20}. That is, the name is a case-sensitive\n alphanumeric string up to 20 characters long.

", + "smithy.api#documentation": "

Name of the lexicon. The name must follow the regular expression\n format [0-9A-Za-z]{1,20}. That is, the name is a case-sensitive\n alphanumeric string up to 20 characters long.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2509,6 +2631,12 @@ "smithy.api#documentation": "

Content of the PLS lexicon as string data.

", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.polly#TagMap", + "traits": { + "smithy.api#documentation": "

The metadata that you apply to the lexicon to help you categorize and\n organize it. Each tag consists of a key and an optional value, both of\n which you define. Tag keys can have a maximum character length of 128\n characters, and tag values can have a maximum length of 256\n characters. You can't replace the tags of an existing lexicon by\n overwriting it with PutLexicon.

" + } } }, "traits": { @@ -2545,6 +2673,50 @@ "smithy.api#default": 0 } }, + "com.amazonaws.polly#ResourceId": { + "type": "string" + }, + "com.amazonaws.polly#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.polly#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.polly#ResourceId", + "traits": { + "smithy.api#documentation": "

The identifier of the resource that wasn't found.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.polly#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of the resource that wasn't found.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon Polly can't find the specified resource. Verify that the resource\n exists in the Amazon Web Services account and Region of the request and that its ARN is\n spelled correctly, and then try again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.polly#ResourceType": { + "type": "enum", + "members": { + "LEXICON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lexicon" + } + } + } + }, "com.amazonaws.polly#SampleRate": { "type": "string" }, @@ -2611,7 +2783,7 @@ "com.amazonaws.polly#SnsTopicArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:aws(-(cn|iso(-b)?|us-gov))?:sns:[a-z0-9_-]{1,50}:\\d{12}:[a-zA-Z0-9_-]{1,251}([a-zA-Z0-9_-]{0,5}|\\.fifo)$" + "smithy.api#pattern": "^arn:aws(-(cn|iso(-b)?|us-gov|eusc))?:sns:[a-z0-9_-]{1,50}:\\d{12}:[a-zA-Z0-9_-]{1,251}([a-zA-Z0-9_-]{0,5}|\\.fifo)$" } }, "com.amazonaws.polly#SpeechMarkType": { @@ -2691,7 +2863,7 @@ } ], "traits": { - "smithy.api#documentation": "

Synthesizes UTF-8 input, plain text, or SSML over a bidirectional streaming connection. \n Specify synthesis parameters in HTTP/2 headers, send text incrementally as events on the input stream,\n and receive synthesized audio as it becomes available.

\n

This operation serves as a bidirectional counterpart to SynthesizeSpeech:

\n ", + "smithy.api#documentation": "

Synthesizes UTF-8 input, plain text, or SSML over a bidirectional streaming connection. \n Specify synthesis parameters in HTTP/2 headers, send text incrementally as events on the input stream,\n and receive synthesized audio as it becomes available.

\n

This operation serves as a bidirectional counterpart to SynthesizeSpeech:

\n ", "smithy.api#http": { "method": "POST", "uri": "/v1/synthesisStream", @@ -2805,7 +2977,7 @@ "VoiceId": { "target": "com.amazonaws.polly#VoiceId", "traits": { - "smithy.api#documentation": "

The voice to use in synthesis. To get a list of available voice IDs, use the DescribeVoices operation.

", + "smithy.api#documentation": "

The voice to use in synthesis. To get a list of available voice IDs, use the DescribeVoices operation.

", "smithy.api#httpHeader": "x-amzn-VoiceId", "smithy.api#required": {} } @@ -3286,6 +3458,131 @@ "smithy.api#output": {} } }, + "com.amazonaws.polly#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.polly#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.polly#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.polly#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.polly#TagKey" + }, + "value": { + "target": "com.amazonaws.polly#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } + } + }, + "com.amazonaws.polly#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.polly#TagResourceInput" + }, + "output": { + "target": "com.amazonaws.polly#TagResourceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.polly#InvalidTagParameterException" + }, + { + "target": "com.amazonaws.polly#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.polly#ServiceFailureException" + }, + { + "target": "com.amazonaws.polly#ThrottlingException" + }, + { + "target": "com.amazonaws.polly#TooManyTagsException" + }, + { + "target": "com.amazonaws.polly#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds specified tags to a resource with the specified ARN. Existing tags\n on a resource are not changed if they are not specified in the request\n parameters. If you specify a tag key that already exists on the resource,\n the value in the request replaces the existing value.

", + "smithy.api#examples": [ + { + "title": "To add tags to a lexicon", + "documentation": "The following example adds the specified tags to a pronunciation lexicon.", + "input": { + "ResourceArn": "arn:aws:polly:us-east-1:111122223333:lexicon/example", + "Tags": { + "Project": "Narration", + "Environment": "Production" + } + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/v1/tagResource", + "code": 200 + } + } + }, + "com.amazonaws.polly#TagResourceInput": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.polly#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to which to add tags.\n Currently, the only supported resource is an Amazon Polly lexicon.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.polly#TagMap", + "traits": { + "smithy.api#documentation": "

The tags to add to the resource, as key-value pairs. Tag keys can have\n a maximum character length of 128 characters, and tag values can have a\n maximum length of 256 characters.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.polly#TagResourceOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.polly#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, "com.amazonaws.polly#TaskId": { "type": "string", "traits": { @@ -3433,6 +3730,19 @@ "target": "com.amazonaws.polly#ThrottlingReason" } }, + "com.amazonaws.polly#TooManyTagsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.polly#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The list of tags on the resource is over the limit. The maximum number\n of tags that can be applied to a resource is 50. Remove unused tags or\n reduce the number of tags in the request, and then try again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.polly#UnsupportedPlsAlphabetException": { "type": "structure", "members": { @@ -3441,7 +3751,7 @@ } }, "traits": { - "smithy.api#documentation": "

The alphabet specified by the lexicon is not a supported alphabet.\n Valid values are x-sampa and ipa.

", + "smithy.api#documentation": "

The alphabet specified by the lexicon is not a supported alphabet.\n Valid values are ipa, x-sampa,\n x-amazon-pinyin, x-amazon-jyutping,\n x-amazon-pron-kana, and\n x-amazon-yomigana. Replace the unsupported alphabet\n with one of the valid values and resubmit your request.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3459,6 +3769,82 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.polly#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.polly#UntagResourceInput" + }, + "output": { + "target": "com.amazonaws.polly#UntagResourceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.polly#InvalidTagParameterException" + }, + { + "target": "com.amazonaws.polly#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.polly#ServiceFailureException" + }, + { + "target": "com.amazonaws.polly#ThrottlingException" + }, + { + "target": "com.amazonaws.polly#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes specified tags from a resource.

", + "smithy.api#examples": [ + { + "title": "To remove tags from a lexicon", + "documentation": "The following example removes the tags with the specified keys from a pronunciation lexicon.", + "input": { + "ResourceArn": "arn:aws:polly:us-east-1:111122223333:lexicon/example", + "TagKeys": [ + "Environment" + ] + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/v1/untagResource", + "code": 200 + } + } + }, + "com.amazonaws.polly#UntagResourceInput": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.polly#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource from which to remove\n tags. Currently, the only supported resource is an Amazon Polly lexicon.

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.polly#TagKeyList", + "traits": { + "smithy.api#documentation": "

The keys of the tags to be removed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.polly#UntagResourceOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.polly#ValidationException": { "type": "structure", "members": { @@ -4239,6 +4625,66 @@ "traits": { "smithy.api#enumValue": "Tiffany" } + }, + "Arjun": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Arjun" + } + }, + "Carlos": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Carlos" + } + }, + "Carolina": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Carolina" + } + }, + "Curtis": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Curtis" + } + }, + "Hyunduk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Hyunduk" + } + }, + "Kenneth": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Kenneth" + } + }, + "Kiara": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Kiara" + } + }, + "Leo": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Leo" + } + }, + "Nate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Nate" + } + }, + "Tina": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Tina" + } } } }, diff --git a/codegen/aws-models/rds.json b/codegen/aws-models/rds.json new file mode 100644 index 00000000..2cc1523a --- /dev/null +++ b/codegen/aws-models/rds.json @@ -0,0 +1,35697 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.rds#AccountAttributesMessage": { + "type": "structure", + "members": { + "AccountQuotas": { + "target": "com.amazonaws.rds#AccountQuotaList", + "traits": { + "smithy.api#documentation": "

A list of AccountQuota objects. Within this list, each quota has a name, a count of usage toward the quota maximum, and a maximum value for the quota.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Data returned by the DescribeAccountAttributes action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#AccountQuota": { + "type": "structure", + "members": { + "AccountQuotaName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon RDS quota for this Amazon Web Services account.

" + } + }, + "Used": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

The amount currently used toward the quota maximum.

" + } + }, + "Max": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

The maximum allowed value for the quota.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a quota for an Amazon Web Services account.

The following are account quotas:

  • AllocatedStorage - The total allocated storage per account, in GiB. The used value is the total allocated storage in the account, in GiB.

  • AuthorizationsPerDBSecurityGroup - The number of ingress rules per DB security group. The used value is the highest number of ingress rules in a DB security group in the account. Other DB security groups in the account might have a lower number of ingress rules.

  • CustomEndpointsPerDBCluster - The number of custom endpoints per DB cluster. The used value is the highest number of custom endpoints in a DB clusters in the account. Other DB clusters in the account might have a lower number of custom endpoints.

  • DBClusterParameterGroups - The number of DB cluster parameter groups per account, excluding default parameter groups. The used value is the count of nondefault DB cluster parameter groups in the account.

  • DBClusterRoles - The number of associated Amazon Web Services Identity and Access Management (IAM) roles per DB cluster. The used value is the highest number of associated IAM roles for a DB cluster in the account. Other DB clusters in the account might have a lower number of associated IAM roles.

  • DBClusters - The number of DB clusters per account. The used value is the count of DB clusters in the account.

  • DBInstanceRoles - The number of associated IAM roles per DB instance. The used value is the highest number of associated IAM roles for a DB instance in the account. Other DB instances in the account might have a lower number of associated IAM roles.

  • DBInstances - The number of DB instances per account. The used value is the count of the DB instances in the account.

    Amazon RDS DB instances, Amazon Aurora DB instances, Amazon Neptune instances, and Amazon DocumentDB instances apply to this quota.

  • DBParameterGroups - The number of DB parameter groups per account, excluding default parameter groups. The used value is the count of nondefault DB parameter groups in the account.

  • DBSecurityGroups - The number of DB security groups (not VPC security groups) per account, excluding the default security group. The used value is the count of nondefault DB security groups in the account.

  • DBSubnetGroups - The number of DB subnet groups per account. The used value is the count of the DB subnet groups in the account.

  • EventSubscriptions - The number of event subscriptions per account. The used value is the count of the event subscriptions in the account.

  • ManualClusterSnapshots - The number of manual DB cluster snapshots per account. The used value is the count of the manual DB cluster snapshots in the account.

  • ManualSnapshots - The number of manual DB instance snapshots per account. The used value is the count of the manual DB instance snapshots in the account.

  • OptionGroups - The number of DB option groups per account, excluding default option groups. The used value is the count of nondefault DB option groups in the account.

  • ReadReplicasPerMaster - The number of read replicas per DB instance. The used value is the highest number of read replicas for a DB instance in the account. Other DB instances in the account might have a lower number of read replicas.

  • ReservedDBInstances - The number of reserved DB instances per account. The used value is the count of the active reserved DB instances in the account.

  • SubnetsPerDBSubnetGroup - The number of subnets per DB subnet group. The used value is highest number of subnets for a DB subnet group in the account. Other DB subnet groups in the account might have a lower number of subnets.

For more information, see Quotas for Amazon RDS in the Amazon RDS User Guide and Quotas for Amazon Aurora in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#AccountQuotaList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AccountQuota", + "traits": { + "smithy.api#xmlName": "AccountQuota" + } + } + }, + "com.amazonaws.rds#ActivityStreamMode": { + "type": "enum", + "members": { + "sync": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sync" + } + }, + "async": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "async" + } + } + } + }, + "com.amazonaws.rds#ActivityStreamModeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#ActivityStreamPolicyStatus": { + "type": "enum", + "members": { + "locked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "locked" + } + }, + "unlocked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlocked" + } + }, + "locking_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "locking-policy" + } + }, + "unlocking_policy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlocking-policy" + } + } + } + }, + "com.amazonaws.rds#ActivityStreamStatus": { + "type": "enum", + "members": { + "stopped": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stopped" + } + }, + "starting": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starting" + } + }, + "started": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "started" + } + }, + "stopping": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stopping" + } + } + } + }, + "com.amazonaws.rds#AddRoleToDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#AddRoleToDBClusterMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Associates an Identity and Access Management (IAM) role with a DB cluster.

", + "smithy.api#examples": [ + { + "title": "To associate an AWS Identity and Access Management (IAM) role with a DB cluster", + "documentation": "The following example associates a role with a DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster", + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3" + } + } + ] + } + }, + "com.amazonaws.rds#AddRoleToDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster to associate the IAM role with.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#IAMRoleArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

", + "smithy.api#required": {} + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the feature for the DB cluster that the IAM role is to be associated with. For information about supported feature names, see DBEngineVersion.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#AddRoleToDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#AddRoleToDBInstanceMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceRoleAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Associates an Amazon Web Services Identity and Access Management (IAM) role with a DB instance.

To add a role to a DB instance, the status of the DB instance must be available.

This command doesn't apply to RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To associate an AWS Identity and Access Management (IAM) role with a DB instance", + "documentation": "The following example adds the role to a DB instance named test-instance.", + "input": { + "DBInstanceIdentifier": "test-instance", + "RoleArn": "arn:aws:iam::111122223333:role/rds-s3-integration-role", + "FeatureName": "S3_INTEGRATION" + } + } + ] + } + }, + "com.amazonaws.rds#AddRoleToDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB instance to associate the IAM role with.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to associate with the DB instance, for example arn:aws:iam::123456789012:role/AccessRole.

", + "smithy.api#required": {} + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the feature for the DB instance that the IAM role is to be associated with. For information about supported feature names, see DBEngineVersion.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#AddSourceIdentifierToSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#AddSourceIdentifierToSubscriptionMessage" + }, + "output": { + "target": "com.amazonaws.rds#AddSourceIdentifierToSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#SourceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Adds a source identifier to an existing RDS event notification subscription.

", + "smithy.api#examples": [ + { + "title": "To add a source identifier to a subscription", + "documentation": "The following example adds another source identifier to an existing subscription.", + "input": { + "SubscriptionName": "my-instance-events", + "SourceIdentifier": "test-instance-repl" + }, + "output": { + "EventSubscription": { + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "CustSubscriptionId": "my-instance-events", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "Enabled": false, + "Status": "modifying", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "CustomerAwsId": "123456789012", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "SourceType": "db-instance", + "SourceIdsList": [ + "test-instance", + "test-instance-repl" + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#AddSourceIdentifierToSubscriptionMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the RDS event notification subscription you want to add a source identifier to.

", + "smithy.api#required": {} + } + }, + "SourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the event source to be added.

Constraints:

  • If the source type is a DB instance, a DBInstanceIdentifier value must be supplied.

  • If the source type is a DB cluster, a DBClusterIdentifier value must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName value must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName value must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier value must be supplied.

  • If the source type is a DB cluster snapshot, a DBClusterSnapshotIdentifier value must be supplied.

  • If the source type is an RDS Proxy, a DBProxyName value must be supplied.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#AddSourceIdentifierToSubscriptionResult": { + "type": "structure", + "members": { + "EventSubscription": { + "target": "com.amazonaws.rds#EventSubscription" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#AddTagsToResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#AddTagsToResourceMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterEndpointStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Adds metadata tags to an Amazon RDS resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon RDS resources, or used in a Condition statement in an IAM policy for Amazon RDS.

For an overview on tagging your relational database resources, see Tagging Amazon RDS Resources or Tagging Amazon Aurora and Amazon RDS Resources.

", + "smithy.api#examples": [ + { + "title": "To add tags to a resource", + "documentation": "This example adds a tag to an option group.", + "input": { + "ResourceName": "arn:aws:rds:us-east-1:992648334831:og:mymysqloptiongroup", + "Tags": [ + { + "Key": "Staging", + "Value": "LocationDB" + } + ] + } + } + ] + } + }, + "com.amazonaws.rds#AddTagsToResourceMessage": { + "type": "structure", + "members": { + "ResourceName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon RDS resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The tags to be assigned to the Amazon RDS resource.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#AdditionalStorageVolume": { + "type": "structure", + "members": { + "VolumeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the additional storage volume.

Valid Values: RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4

", + "smithy.api#required": {} + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).

" + } + }, + "IOPS": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) provisioned for the additional storage volume.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the additional storage volume, in mebibytes per second (MiBps). This setting applies only to the General Purpose SSD (gp3) storage type.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type for the additional storage volume.

Valid Values: GP3 | IO2

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about an additional storage volume for a DB instance. RDS support additional storage volumes for RDS for Oracle and RDS for SQL Server.

" + } + }, + "com.amazonaws.rds#AdditionalStorageVolumeOutput": { + "type": "structure", + "members": { + "VolumeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the additional storage volume.

" + } + }, + "StorageVolumeStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the additional storage volume.

Valid Values: ACTIVE | CREATING | DELETING | MODIFYING | NOT-IN-USE | STORAGE-OPTIMIZATION | VOLUME-FULL

" + } + }, + "StorageOperationStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of an in-progress storage operation on the additional storage volume. This field appears only while a storage operation is in progress. It isn't present when no storage operation is active. Possible values:

  • Initializing - The volume is initializing from a snapshot, such as during a snapshot restore, point-in-time restore, read replica creation, or blue/green deployment. Performance can be lower than provisioned until initialization completes.

  • Optimizing - The volume is optimizing following a storage scaling or modification operation.

" + } + }, + "StorageOperationPercentProgress": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The percentage of the in-progress storage operation on the additional storage volume that has completed, from 0 to 100. This field appears only while a storage operation is in progress. It isn't present when no storage operation is active.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).

" + } + }, + "IOPS": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) provisioned for the additional storage volume.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the additional storage volume, in mebibytes per second (MiBps).

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type for the additional storage volume.

Valid Values: GP3 | IO2

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an additional storage volume for a DB instance.

" + } + }, + "com.amazonaws.rds#AdditionalStorageVolumesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AdditionalStorageVolume" + } + }, + "com.amazonaws.rds#AdditionalStorageVolumesOutputList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AdditionalStorageVolumeOutput" + } + }, + "com.amazonaws.rds#AmazonRDSv19": { + "type": "service", + "version": "2014-10-31", + "operations": [ + { + "target": "com.amazonaws.rds#AddRoleToDBCluster" + }, + { + "target": "com.amazonaws.rds#AddRoleToDBInstance" + }, + { + "target": "com.amazonaws.rds#AddSourceIdentifierToSubscription" + }, + { + "target": "com.amazonaws.rds#AddTagsToResource" + }, + { + "target": "com.amazonaws.rds#ApplyPendingMaintenanceAction" + }, + { + "target": "com.amazonaws.rds#AuthorizeDBSecurityGroupIngress" + }, + { + "target": "com.amazonaws.rds#BacktrackDBCluster" + }, + { + "target": "com.amazonaws.rds#CancelDBCapacityReservation" + }, + { + "target": "com.amazonaws.rds#CancelExportTask" + }, + { + "target": "com.amazonaws.rds#CopyDBClusterParameterGroup" + }, + { + "target": "com.amazonaws.rds#CopyDBClusterSnapshot" + }, + { + "target": "com.amazonaws.rds#CopyDBParameterGroup" + }, + { + "target": "com.amazonaws.rds#CopyDBSnapshot" + }, + { + "target": "com.amazonaws.rds#CopyOptionGroup" + }, + { + "target": "com.amazonaws.rds#CreateBlueGreenDeployment" + }, + { + "target": "com.amazonaws.rds#CreateCustomDBEngineVersion" + }, + { + "target": "com.amazonaws.rds#CreateDBCapacityReservation" + }, + { + "target": "com.amazonaws.rds#CreateDBCluster" + }, + { + "target": "com.amazonaws.rds#CreateDBClusterEndpoint" + }, + { + "target": "com.amazonaws.rds#CreateDBClusterParameterGroup" + }, + { + "target": "com.amazonaws.rds#CreateDBClusterSnapshot" + }, + { + "target": "com.amazonaws.rds#CreateDBInstance" + }, + { + "target": "com.amazonaws.rds#CreateDBInstanceReadReplica" + }, + { + "target": "com.amazonaws.rds#CreateDBParameterGroup" + }, + { + "target": "com.amazonaws.rds#CreateDBProxy" + }, + { + "target": "com.amazonaws.rds#CreateDBProxyEndpoint" + }, + { + "target": "com.amazonaws.rds#CreateDBSecurityGroup" + }, + { + "target": "com.amazonaws.rds#CreateDBShardGroup" + }, + { + "target": "com.amazonaws.rds#CreateDBSnapshot" + }, + { + "target": "com.amazonaws.rds#CreateDBSubnetGroup" + }, + { + "target": "com.amazonaws.rds#CreateEventSubscription" + }, + { + "target": "com.amazonaws.rds#CreateGlobalCluster" + }, + { + "target": "com.amazonaws.rds#CreateIntegration" + }, + { + "target": "com.amazonaws.rds#CreateOptionGroup" + }, + { + "target": "com.amazonaws.rds#CreateTenantDatabase" + }, + { + "target": "com.amazonaws.rds#DeleteBlueGreenDeployment" + }, + { + "target": "com.amazonaws.rds#DeleteCustomDBEngineVersion" + }, + { + "target": "com.amazonaws.rds#DeleteDBCluster" + }, + { + "target": "com.amazonaws.rds#DeleteDBClusterAutomatedBackup" + }, + { + "target": "com.amazonaws.rds#DeleteDBClusterEndpoint" + }, + { + "target": "com.amazonaws.rds#DeleteDBClusterParameterGroup" + }, + { + "target": "com.amazonaws.rds#DeleteDBClusterSnapshot" + }, + { + "target": "com.amazonaws.rds#DeleteDBInstance" + }, + { + "target": "com.amazonaws.rds#DeleteDBInstanceAutomatedBackup" + }, + { + "target": "com.amazonaws.rds#DeleteDBParameterGroup" + }, + { + "target": "com.amazonaws.rds#DeleteDBProxy" + }, + { + "target": "com.amazonaws.rds#DeleteDBProxyEndpoint" + }, + { + "target": "com.amazonaws.rds#DeleteDBSecurityGroup" + }, + { + "target": "com.amazonaws.rds#DeleteDBShardGroup" + }, + { + "target": "com.amazonaws.rds#DeleteDBSnapshot" + }, + { + "target": "com.amazonaws.rds#DeleteDBSubnetGroup" + }, + { + "target": "com.amazonaws.rds#DeleteEventSubscription" + }, + { + "target": "com.amazonaws.rds#DeleteGlobalCluster" + }, + { + "target": "com.amazonaws.rds#DeleteIntegration" + }, + { + "target": "com.amazonaws.rds#DeleteOptionGroup" + }, + { + "target": "com.amazonaws.rds#DeleteTenantDatabase" + }, + { + "target": "com.amazonaws.rds#DeregisterDBProxyTargets" + }, + { + "target": "com.amazonaws.rds#DescribeAccountAttributes" + }, + { + "target": "com.amazonaws.rds#DescribeBlueGreenDeployments" + }, + { + "target": "com.amazonaws.rds#DescribeCertificates" + }, + { + "target": "com.amazonaws.rds#DescribeDBCapacityReservations" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterAutomatedBackups" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterBacktracks" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterEndpoints" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterParameterGroups" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterParameters" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusters" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterSnapshotAttributes" + }, + { + "target": "com.amazonaws.rds#DescribeDBClusterSnapshots" + }, + { + "target": "com.amazonaws.rds#DescribeDBEngineVersions" + }, + { + "target": "com.amazonaws.rds#DescribeDBInstanceAutomatedBackups" + }, + { + "target": "com.amazonaws.rds#DescribeDBInstances" + }, + { + "target": "com.amazonaws.rds#DescribeDBLogFiles" + }, + { + "target": "com.amazonaws.rds#DescribeDBMajorEngineVersions" + }, + { + "target": "com.amazonaws.rds#DescribeDBParameterGroups" + }, + { + "target": "com.amazonaws.rds#DescribeDBParameters" + }, + { + "target": "com.amazonaws.rds#DescribeDBProxies" + }, + { + "target": "com.amazonaws.rds#DescribeDBProxyEndpoints" + }, + { + "target": "com.amazonaws.rds#DescribeDBProxyTargetGroups" + }, + { + "target": "com.amazonaws.rds#DescribeDBProxyTargets" + }, + { + "target": "com.amazonaws.rds#DescribeDBRecommendations" + }, + { + "target": "com.amazonaws.rds#DescribeDBSecurityGroups" + }, + { + "target": "com.amazonaws.rds#DescribeDBShardGroups" + }, + { + "target": "com.amazonaws.rds#DescribeDBSnapshotAttributes" + }, + { + "target": "com.amazonaws.rds#DescribeDBSnapshots" + }, + { + "target": "com.amazonaws.rds#DescribeDBSnapshotTenantDatabases" + }, + { + "target": "com.amazonaws.rds#DescribeDBSubnetGroups" + }, + { + "target": "com.amazonaws.rds#DescribeEngineDefaultClusterParameters" + }, + { + "target": "com.amazonaws.rds#DescribeEngineDefaultParameters" + }, + { + "target": "com.amazonaws.rds#DescribeEventCategories" + }, + { + "target": "com.amazonaws.rds#DescribeEvents" + }, + { + "target": "com.amazonaws.rds#DescribeEventSubscriptions" + }, + { + "target": "com.amazonaws.rds#DescribeExportTasks" + }, + { + "target": "com.amazonaws.rds#DescribeGlobalClusters" + }, + { + "target": "com.amazonaws.rds#DescribeIntegrations" + }, + { + "target": "com.amazonaws.rds#DescribeOptionGroupOptions" + }, + { + "target": "com.amazonaws.rds#DescribeOptionGroups" + }, + { + "target": "com.amazonaws.rds#DescribeOrderableDBInstanceOptions" + }, + { + "target": "com.amazonaws.rds#DescribePendingMaintenanceActions" + }, + { + "target": "com.amazonaws.rds#DescribeReservedDBInstances" + }, + { + "target": "com.amazonaws.rds#DescribeReservedDBInstancesOfferings" + }, + { + "target": "com.amazonaws.rds#DescribeServerlessV2PlatformVersions" + }, + { + "target": "com.amazonaws.rds#DescribeSourceRegions" + }, + { + "target": "com.amazonaws.rds#DescribeTenantDatabases" + }, + { + "target": "com.amazonaws.rds#DescribeValidDBInstanceModifications" + }, + { + "target": "com.amazonaws.rds#DisableHttpEndpoint" + }, + { + "target": "com.amazonaws.rds#DownloadDBLogFilePortion" + }, + { + "target": "com.amazonaws.rds#EnableHttpEndpoint" + }, + { + "target": "com.amazonaws.rds#FailoverDBCluster" + }, + { + "target": "com.amazonaws.rds#FailoverGlobalCluster" + }, + { + "target": "com.amazonaws.rds#ListTagsForResource" + }, + { + "target": "com.amazonaws.rds#ModifyActivityStream" + }, + { + "target": "com.amazonaws.rds#ModifyCertificates" + }, + { + "target": "com.amazonaws.rds#ModifyCurrentDBClusterCapacity" + }, + { + "target": "com.amazonaws.rds#ModifyCustomDBEngineVersion" + }, + { + "target": "com.amazonaws.rds#ModifyDBCapacityReservation" + }, + { + "target": "com.amazonaws.rds#ModifyDBCluster" + }, + { + "target": "com.amazonaws.rds#ModifyDBClusterEndpoint" + }, + { + "target": "com.amazonaws.rds#ModifyDBClusterParameterGroup" + }, + { + "target": "com.amazonaws.rds#ModifyDBClusterSnapshotAttribute" + }, + { + "target": "com.amazonaws.rds#ModifyDBInstance" + }, + { + "target": "com.amazonaws.rds#ModifyDBParameterGroup" + }, + { + "target": "com.amazonaws.rds#ModifyDBProxy" + }, + { + "target": "com.amazonaws.rds#ModifyDBProxyEndpoint" + }, + { + "target": "com.amazonaws.rds#ModifyDBProxyTargetGroup" + }, + { + "target": "com.amazonaws.rds#ModifyDBRecommendation" + }, + { + "target": "com.amazonaws.rds#ModifyDBShardGroup" + }, + { + "target": "com.amazonaws.rds#ModifyDBSnapshot" + }, + { + "target": "com.amazonaws.rds#ModifyDBSnapshotAttribute" + }, + { + "target": "com.amazonaws.rds#ModifyDBSubnetGroup" + }, + { + "target": "com.amazonaws.rds#ModifyEventSubscription" + }, + { + "target": "com.amazonaws.rds#ModifyGlobalCluster" + }, + { + "target": "com.amazonaws.rds#ModifyIntegration" + }, + { + "target": "com.amazonaws.rds#ModifyOptionGroup" + }, + { + "target": "com.amazonaws.rds#ModifyTenantDatabase" + }, + { + "target": "com.amazonaws.rds#PromoteReadReplica" + }, + { + "target": "com.amazonaws.rds#PromoteReadReplicaDBCluster" + }, + { + "target": "com.amazonaws.rds#PurchaseReservedDBInstancesOffering" + }, + { + "target": "com.amazonaws.rds#RebootDBCluster" + }, + { + "target": "com.amazonaws.rds#RebootDBInstance" + }, + { + "target": "com.amazonaws.rds#RebootDBShardGroup" + }, + { + "target": "com.amazonaws.rds#RegisterDBProxyTargets" + }, + { + "target": "com.amazonaws.rds#RemoveFromGlobalCluster" + }, + { + "target": "com.amazonaws.rds#RemoveRoleFromDBCluster" + }, + { + "target": "com.amazonaws.rds#RemoveRoleFromDBInstance" + }, + { + "target": "com.amazonaws.rds#RemoveSourceIdentifierFromSubscription" + }, + { + "target": "com.amazonaws.rds#RemoveTagsFromResource" + }, + { + "target": "com.amazonaws.rds#ResetDBClusterParameterGroup" + }, + { + "target": "com.amazonaws.rds#ResetDBParameterGroup" + }, + { + "target": "com.amazonaws.rds#RestoreDBClusterFromS3" + }, + { + "target": "com.amazonaws.rds#RestoreDBClusterFromSnapshot" + }, + { + "target": "com.amazonaws.rds#RestoreDBClusterToPointInTime" + }, + { + "target": "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshot" + }, + { + "target": "com.amazonaws.rds#RestoreDBInstanceFromS3" + }, + { + "target": "com.amazonaws.rds#RestoreDBInstanceToPointInTime" + }, + { + "target": "com.amazonaws.rds#RevokeDBSecurityGroupIngress" + }, + { + "target": "com.amazonaws.rds#StartActivityStream" + }, + { + "target": "com.amazonaws.rds#StartDBCluster" + }, + { + "target": "com.amazonaws.rds#StartDBInstance" + }, + { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplication" + }, + { + "target": "com.amazonaws.rds#StartExportTask" + }, + { + "target": "com.amazonaws.rds#StopActivityStream" + }, + { + "target": "com.amazonaws.rds#StopDBCluster" + }, + { + "target": "com.amazonaws.rds#StopDBInstance" + }, + { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplication" + }, + { + "target": "com.amazonaws.rds#SwitchoverBlueGreenDeployment" + }, + { + "target": "com.amazonaws.rds#SwitchoverGlobalCluster" + }, + { + "target": "com.amazonaws.rds#SwitchoverReadReplica" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "RDS", + "arnNamespace": "rds", + "cloudFormationName": "RDS", + "cloudTrailEventSource": "rds.amazonaws.com", + "endpointPrefix": "rds" + }, + "aws.auth#sigv4": { + "name": "rds" + }, + "aws.protocols#awsQuery": {}, + "smithy.api#documentation": "Amazon Relational Database Service

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique.

Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, Db2, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your DB instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use.

This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide.

Amazon RDS API Reference

Amazon RDS User Guide

", + "smithy.api#title": "Amazon Relational Database Service", + "smithy.api#xmlNamespace": { + "uri": "http://rds.amazonaws.com/doc/2014-10-31/" + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "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" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "root": 2, + "nodeCount": 14, + "nodes": "/////wAAAAH/////AAAAAAAAAA0AAAADAAAAAQAAAAQF9eEMAAAAAgAAAAUF9eEMAAAAAwAAAAgAAAAGAAAABAAAAAcF9eELAAAABQX14QkF9eEKAAAABAAAAAsAAAAJAAAABgAAAAoF9eEIAAAABwX14QYF9eEHAAAABQAAAAwF9eEFAAAABgX14QQF9eEFAAAAAwX14QEAAAAOAAAABAX14QIF9eED" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "string" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{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://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-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://rds-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://rds.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-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 disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "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" + } + } + }, + "com.amazonaws.rds#ApplyMethod": { + "type": "enum", + "members": { + "immediate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "immediate" + } + }, + "pending_reboot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-reboot" + } + } + } + }, + "com.amazonaws.rds#ApplyPendingMaintenanceAction": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ApplyPendingMaintenanceActionMessage" + }, + "output": { + "target": "com.amazonaws.rds#ApplyPendingMaintenanceActionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Applies a pending maintenance action to a resource (for example, to a DB instance).

", + "smithy.api#examples": [ + { + "title": "To apply pending maintenance actions", + "documentation": "The following example applies the pending maintenance actions for a DB cluster.", + "input": { + "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster", + "ApplyAction": "system-update", + "OptInType": "immediate" + }, + "output": { + "ResourcePendingMaintenanceActions": { + "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:my-db-cluster", + "PendingMaintenanceActionDetails": [ + { + "Action": "system-update", + "OptInStatus": "immediate", + "CurrentApplyDate": "2021-01-23T01:07:36.100Z", + "Description": "Upgrade to Aurora PostgreSQL 3.3.2" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#ApplyPendingMaintenanceActionMessage": { + "type": "structure", + "members": { + "ResourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "ApplyAction": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The pending maintenance action to apply to this resource.

Valid Values:

  • ca-certificate-rotation

  • db-upgrade

  • hardware-maintenance

  • os-upgrade

  • system-update

For more information about these actions, see Maintenance actions for Amazon Aurora or Maintenance actions for Amazon RDS.

", + "smithy.api#required": {} + } + }, + "OptInType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate can't be undone.

Valid Values:

  • immediate - Apply the maintenance action immediately.

  • next-maintenance - Apply the maintenance action during the next maintenance window for the resource.

  • undo-opt-in - Cancel any existing next-maintenance opt-in requests.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ApplyPendingMaintenanceActionResult": { + "type": "structure", + "members": { + "ResourcePendingMaintenanceActions": { + "target": "com.amazonaws.rds#ResourcePendingMaintenanceActions" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + } + } + }, + "com.amazonaws.rds#AttributeValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "AttributeValue" + } + } + }, + "com.amazonaws.rds#AuditPolicyState": { + "type": "enum", + "members": { + "LOCKED_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "locked" + } + }, + "UNLOCKED_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlocked" + } + } + } + }, + "com.amazonaws.rds#AuthScheme": { + "type": "enum", + "members": { + "SECRETS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SECRETS" + } + } + } + }, + "com.amazonaws.rds#AuthUserName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.rds#AuthorizationAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AuthorizationAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified CIDR IP range or Amazon EC2 security group is already authorized for the specified DB security group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#AuthorizationNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AuthorizationNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified CIDR IP range or Amazon EC2 security group might not be authorized for the specified DB security group.

Or, RDS might not be authorized to perform necessary actions using IAM on your behalf.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#AuthorizationQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AuthorizationQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB security group authorization quota has been reached.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#AuthorizeDBSecurityGroupIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressMessage" + }, + "output": { + "target": "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#AuthorizationQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSecurityGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To authorize DB security group integress", + "documentation": "This example authorizes access to the specified security group by the specified CIDR block.", + "input": { + "DBSecurityGroupName": "mydbsecuritygroup", + "CIDRIP": "203.0.113.5/32" + }, + "output": { + "DBSecurityGroup": {} + } + } + ] + } + }, + "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressMessage": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB security group to add authorization to.

", + "smithy.api#required": {} + } + }, + "CIDRIP": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The IP range to authorize.

" + } + }, + "EC2SecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Name of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + }, + "EC2SecurityGroupId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Id of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + }, + "EC2SecurityGroupOwnerId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Amazon Web Services account number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The Amazon Web Services access key ID isn't an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#AuthorizeDBSecurityGroupIngressResult": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "target": "com.amazonaws.rds#DBSecurityGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#AutomationMode": { + "type": "enum", + "members": { + "FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "full" + } + }, + "ALL_PAUSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all-paused" + } + } + } + }, + "com.amazonaws.rds#AvailabilityZone": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Availability Zone.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains Availability Zone information.

This data type is used as an element in the OrderableDBInstanceOption data type.

" + } + }, + "com.amazonaws.rds#AvailabilityZoneList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AvailabilityZone", + "traits": { + "smithy.api#xmlName": "AvailabilityZone" + } + } + }, + "com.amazonaws.rds#AvailabilityZones": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "AvailabilityZone" + } + } + }, + "com.amazonaws.rds#AvailableAdditionalStorageVolumesOption": { + "type": "structure", + "members": { + "SupportsStorageAutoscaling": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the additional storage volume supports storage autoscaling.

" + } + }, + "SupportsStorageThroughput": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the additional storage volume supports configurable storage throughput.

" + } + }, + "SupportsIops": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the additional storage volume supports provisioned IOPS.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type for the additional storage volume.

Valid Values: GP3 | IO2

" + } + }, + "MinStorageSize": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The minimum amount of storage that you can allocate for the additional storage volume, in gibibytes (GiB).

" + } + }, + "MaxStorageSize": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum amount of storage that you can allocate for the additional storage volume, in gibibytes (GiB).

" + } + }, + "MinIops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The minimum number of I/O operations per second (IOPS) that the additional storage volume supports.

" + } + }, + "MaxIops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of I/O operations per second (IOPS) that the additional storage volume supports.

" + } + }, + "MinIopsPerGib": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum ratio of I/O operations per second (IOPS) to gibibytes (GiB) of storage for the additional storage volume.

" + } + }, + "MaxIopsPerGib": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The maximum ratio of I/O operations per second (IOPS) to gibibytes (GiB) of storage for the additional storage volume.

" + } + }, + "MinStorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The minimum storage throughput that the additional storage volume supports, in mebibytes per second (MiBps).

" + } + }, + "MaxStorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum storage throughput that the additional storage volume supports, in mebibytes per second (MiBps).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the available options for additional storage volumes for a DB instance class.

" + } + }, + "com.amazonaws.rds#AvailableAdditionalStorageVolumesOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AvailableAdditionalStorageVolumesOption", + "traits": { + "smithy.api#xmlName": "AvailableAdditionalStorageVolumesOption" + } + } + }, + "com.amazonaws.rds#AvailableCapacityPerAvailabilityZone": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Availability Zone.

" + } + }, + "AvailableCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of DB instances that remain available in this Availability Zone. Amazon RDS decreases this value when a DB instance takes a unit of reserved capacity in this Availability Zone, and it increases this value when a DB instance releases that unit.

A DB instance with a pending modification also holds a unit of reserved capacity. A DB instance has a pending modification when Amazon RDS accepts a change to the DB instance and applies that change later, during the maintenance window. Amazon RDS holds the unit from the time that it accepts the request. To find a DB instance with a pending modification, check PendingModifiedValues in the response of DescribeDBInstances.

Amazon RDS reports available capacity only for a reservation that is in the active state and not past its end date. Otherwise, this value is 0.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the unused capacity of a DB capacity reservation in one Availability Zone.

This data type is used as a response element in the following operations:

  • CancelDBCapacityReservation

  • CreateDBCapacityReservation

  • DescribeDBCapacityReservations

  • ModifyDBCapacityReservation

" + } + }, + "com.amazonaws.rds#AvailableCapacityPerAvailabilityZoneList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AvailableCapacityPerAvailabilityZone", + "traits": { + "smithy.api#xmlName": "AvailableCapacityPerAvailabilityZone" + } + } + }, + "com.amazonaws.rds#AvailableProcessorFeature": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the processor feature. Valid names are coreCount and threadsPerCore.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default value for the processor feature of the DB instance class.

" + } + }, + "AllowedValues": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The allowed values for the processor feature of the DB instance class.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the available processor feature information for the DB instance class of a DB instance.

For more information, see Configuring the Processor of the DB Instance Class in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#AvailableProcessorFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#AvailableProcessorFeature", + "traits": { + "smithy.api#xmlName": "AvailableProcessorFeature" + } + } + }, + "com.amazonaws.rds#AwsBackupRecoveryPointArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 43, + "max": 350 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:backup:[-a-z0-9]+:[0-9]{12}:[-a-z]+:([a-z0-9\\-]+:)?[a-z][a-z0-9\\-]{0,255}$" + } + }, + "com.amazonaws.rds#BacktrackDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#BacktrackDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterBacktrack" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Backtracks a DB cluster to a specific time, without creating a new DB cluster.

For more information on backtracking, see Backtracking an Aurora DB Cluster in the Amazon Aurora User Guide.

This action applies only to Aurora MySQL DB clusters.

" + } + }, + "com.amazonaws.rds#BacktrackDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster to be backtracked. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "smithy.api#required": {} + } + }, + "BacktrackTo": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The timestamp of the time to backtrack the DB cluster to, specified in ISO 8601 format. For more information about ISO 8601, see the ISO8601 Wikipedia page.

If the specified time isn't a consistent time for the DB cluster, Aurora automatically chooses the nearest possible consistent time for the DB cluster.

Constraints:

  • Must contain a valid ISO 8601 timestamp.

  • Can't contain a timestamp set in the future.

Example: 2017-07-08T18:00Z

", + "smithy.api#required": {} + } + }, + "Force": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to force the DB cluster to backtrack when binary logging is enabled. Otherwise, an error occurs when binary logging is enabled.

" + } + }, + "UseEarliestTimeOnPointInTimeUnavailable": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to backtrack the DB cluster to the earliest possible backtrack time when BacktrackTo is set to a timestamp earlier than the earliest backtrack time. When this parameter is disabled and BacktrackTo is set to a timestamp earlier than the earliest backtrack time, an error occurs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#BackupPolicyNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BackupPolicyNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#deprecated": { + "message": "Please avoid using this fault" + }, + "smithy.api#documentation": "

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#BlueGreenDeployment": { + "type": "structure", + "members": { + "BlueGreenDeploymentIdentifier": { + "target": "com.amazonaws.rds#BlueGreenDeploymentIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the blue/green deployment.

" + } + }, + "BlueGreenDeploymentName": { + "target": "com.amazonaws.rds#BlueGreenDeploymentName", + "traits": { + "smithy.api#documentation": "

The user-supplied name of the blue/green deployment.

" + } + }, + "Source": { + "target": "com.amazonaws.rds#DatabaseArn", + "traits": { + "smithy.api#documentation": "

The source database for the blue/green deployment.

Before switchover, the source database is the production database in the blue environment.

" + } + }, + "Target": { + "target": "com.amazonaws.rds#DatabaseArn", + "traits": { + "smithy.api#documentation": "

The target database for the blue/green deployment.

Before switchover, the target database is the clone database in the green environment.

" + } + }, + "SwitchoverDetails": { + "target": "com.amazonaws.rds#SwitchoverDetailList", + "traits": { + "smithy.api#documentation": "

The details about each source and target resource in the blue/green deployment.

" + } + }, + "Tasks": { + "target": "com.amazonaws.rds#BlueGreenDeploymentTaskList", + "traits": { + "smithy.api#documentation": "

Either tasks to be performed or tasks that have been completed on the target database before switchover.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#BlueGreenDeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of the blue/green deployment.

Valid Values:

  • PROVISIONING - Resources are being created in the green environment.

  • AVAILABLE - Resources are available in the green environment.

  • SWITCHOVER_IN_PROGRESS - The deployment is being switched from the blue environment to the green environment.

  • SWITCHOVER_COMPLETED - Switchover from the blue environment to the green environment is complete.

  • INVALID_CONFIGURATION - Resources in the green environment are invalid, so switchover isn't possible.

  • SWITCHOVER_FAILED - Switchover was attempted but failed.

  • DELETING - The blue/green deployment is being deleted.

" + } + }, + "StatusDetails": { + "target": "com.amazonaws.rds#BlueGreenDeploymentStatusDetails", + "traits": { + "smithy.api#documentation": "

Additional information about the status of the blue/green deployment.

" + } + }, + "CreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the blue/green deployment was created, in Universal Coordinated Time (UTC).

" + } + }, + "DeleteTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the blue/green deployment was deleted, in Universal Coordinated Time (UTC).

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

Details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BlueGreenDeploymentAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A blue/green deployment with the specified name already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#BlueGreenDeploymentIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[A-Za-z][0-9A-Za-z-:._]*$" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#BlueGreenDeployment" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 60 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BlueGreenDeploymentNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

BlueGreenDeploymentIdentifier doesn't refer to an existing blue/green deployment.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#BlueGreenDeploymentStatus": { + "type": "string" + }, + "com.amazonaws.rds#BlueGreenDeploymentStatusDetails": { + "type": "string" + }, + "com.amazonaws.rds#BlueGreenDeploymentTask": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#BlueGreenDeploymentTaskName", + "traits": { + "smithy.api#documentation": "

The name of the blue/green deployment task.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#BlueGreenDeploymentTaskStatus", + "traits": { + "smithy.api#documentation": "

The status of the blue/green deployment task.

Valid Values:

  • PENDING - The resource is being prepared for deployment.

  • IN_PROGRESS - The resource is being deployed.

  • COMPLETED - The resource has been deployed.

  • FAILED - Deployment of the resource failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a task for a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#BlueGreenDeploymentTask" + } + }, + "com.amazonaws.rds#BlueGreenDeploymentTaskName": { + "type": "string" + }, + "com.amazonaws.rds#BlueGreenDeploymentTaskStatus": { + "type": "string" + }, + "com.amazonaws.rds#Boolean": { + "type": "boolean" + }, + "com.amazonaws.rds#BooleanOptional": { + "type": "boolean" + }, + "com.amazonaws.rds#BucketName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.rds#CACertificateIdentifiersList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#CancelDBCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CancelDBCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.rds#CancelDBCapacityReservationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels a DB capacity reservation. Amazon RDS changes the state of the reservation to cancelled and stops reporting available capacity for it. Amazon RDS then releases the reserved capacity.

A DB instance that uses the reservation keeps running. It continues on unreserved capacity, and Amazon RDS doesn't stop it or modify it. However, Amazon RDS no longer reserves capacity for the DB instance. If Amazon RDS later moves the DB instance to different hardware, for example during hardware maintenance, that move can fail when the Amazon Web Services Region has insufficient capacity for the DB instance class.

You can't cancel a reservation in the active state during a capacity commitment. The response of DescribeDBCapacityReservations reports the end of the commitment in CommitmentInfo.

Constraints:

  • The reservation must be in the active, assessing, or delayed state.

  • The reservation must not be past its end date.

", + "smithy.api#examples": [ + { + "title": "To cancel a DB capacity reservation", + "documentation": "The following example cancels the specified DB capacity reservation. Amazon RDS releases the reserved capacity. A DB instance that uses the reservation keeps running on unreserved capacity.", + "input": { + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a" + }, + "output": { + "DBCapacityReservation": { + "DBCapacityReservationName": "my-mysql-reservation", + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBInstanceClass": "db.m5.large", + "Engine": "mysql", + "ReservedCapacityPerAvailabilityZone": 2, + "AvailableCapacityPerAvailabilityZoneList": [ + { + "AvailabilityZone": "us-east-1a", + "AvailableCapacity": 0 + }, + { + "AvailabilityZone": "us-east-1b", + "AvailableCapacity": 0 + } + ], + "State": "cancelled", + "CreateDate": "2026-09-10T18:22:41.612Z", + "TagList": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#CancelDBCapacityReservationRequest": { + "type": "structure", + "members": { + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to cancel. You can specify the identifier, which has the prefix dbcr-, or the reservation name.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CancelDBCapacityReservationResponse": { + "type": "structure", + "members": { + "DBCapacityReservation": { + "target": "com.amazonaws.rds#DBCapacityReservation", + "traits": { + "smithy.api#documentation": "

Contains the details of the canceled DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CancelExportTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CancelExportTaskMessage" + }, + "output": { + "target": "com.amazonaws.rds#ExportTask" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ExportTaskNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidExportTaskStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels an export task in progress that is exporting a snapshot or cluster to Amazon S3. Any data that has already been written to the S3 bucket isn't removed.

", + "smithy.api#examples": [ + { + "title": "To cancel a snapshot export to Amazon S3", + "documentation": "The following example cancels an export task in progress that is exporting a snapshot to Amazon S3.", + "input": { + "ExportTaskIdentifier": "my-s3-export-1" + }, + "output": { + "ExportTaskIdentifier": "my-s3-export-1", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:snapshot:publisher-final-snapshot", + "SnapshotTime": "2019-03-24T20:01:09.815Z", + "S3Bucket": "mybucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/export-snap-S3-role", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcd0000-7bfd-4594-af38-aabbccddeeff", + "Status": "CANCELING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + } + ] + } + }, + "com.amazonaws.rds#CancelExportTaskMessage": { + "type": "structure", + "members": { + "ExportTaskIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the snapshot or cluster export task to cancel.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#Certificate": { + "type": "structure", + "members": { + "CertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The unique key that identifies a certificate.

" + } + }, + "CertificateType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of the certificate.

" + } + }, + "Thumbprint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The thumbprint of the certificate.

" + } + }, + "ValidFrom": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The starting date from which the certificate is valid.

" + } + }, + "ValidTill": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The final date that the certificate continues to be valid.

" + } + }, + "CertificateArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the certificate.

" + } + }, + "CustomerOverride": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether there is an override for the default certificate identifier.

" + } + }, + "CustomerOverrideValidTill": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

If there is an override for the default certificate identifier, when the override expires.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A CA certificate for an Amazon Web Services account.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#CertificateDetails": { + "type": "structure", + "members": { + "CAIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA identifier of the CA certificate used for the DB instance's server certificate.

" + } + }, + "ValidTill": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The expiration date of the DB instance’s server certificate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of the DB instance’s server certificate.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#CertificateList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Certificate", + "traits": { + "smithy.api#xmlName": "Certificate" + } + } + }, + "com.amazonaws.rds#CertificateMessage": { + "type": "structure", + "members": { + "DefaultCertificateForNewLaunches": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default root CA for new databases created by your Amazon Web Services account. This is either the root CA override set on your Amazon Web Services account or the system default CA for the Region if no override exists. To override the default CA, use the ModifyCertificates operation.

" + } + }, + "Certificates": { + "target": "com.amazonaws.rds#CertificateList", + "traits": { + "smithy.api#documentation": "

The list of Certificate objects for the Amazon Web Services account.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Data returned by the DescribeCertificates action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CertificateNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CertificateNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

CertificateIdentifier doesn't refer to an existing certificate.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#CharacterSet": { + "type": "structure", + "members": { + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the character set.

" + } + }, + "CharacterSetDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the character set.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the action DescribeDBEngineVersions.

" + } + }, + "com.amazonaws.rds#ClientPasswordAuthType": { + "type": "enum", + "members": { + "MYSQL_NATIVE_PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MYSQL_NATIVE_PASSWORD" + } + }, + "MYSQL_CACHING_SHA2_PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MYSQL_CACHING_SHA2_PASSWORD" + } + }, + "POSTGRES_SCRAM_SHA_256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POSTGRES_SCRAM_SHA_256" + } + }, + "POSTGRES_MD5": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POSTGRES_MD5" + } + }, + "SQL_SERVER_AUTHENTICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SQL_SERVER_AUTHENTICATION" + } + } + } + }, + "com.amazonaws.rds#CloudwatchLogsExportConfiguration": { + "type": "structure", + "members": { + "EnableLogTypes": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of log types to enable.

The following values are valid for each DB engine:

  • Aurora MySQL - audit | error | general | slowquery

  • Aurora PostgreSQL - postgresql

  • RDS for MySQL - error | general | slowquery

  • RDS for PostgreSQL - postgresql | upgrade

" + } + }, + "DisableLogTypes": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of log types to disable.

The following values are valid for each DB engine:

  • Aurora MySQL - audit | error | general | slowquery

  • Aurora PostgreSQL - postgresql

  • RDS for MySQL - error | general | slowquery

  • RDS for PostgreSQL - postgresql | upgrade

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.

The EnableLogTypes and DisableLogTypes arrays determine which logs will be exported (or not exported) to CloudWatch Logs. The values within these arrays depend on the DB engine being used.

For more information about exporting CloudWatch Logs for Amazon RDS DB instances, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora DB clusters, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#ClusterPendingModifiedValues": { + "type": "structure", + "members": { + "PendingCloudwatchLogsExports": { + "target": "com.amazonaws.rds#PendingCloudwatchLogsExports" + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DBClusterIdentifier value for the DB cluster.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The master credentials for the DB cluster.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine version.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic DB snapshots are retained.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type for the DB cluster.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The allocated storage size in gibibytes (GiB) for all database engines except Amazon Aurora. For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.

" + } + }, + "RdsCustomClusterConfiguration": { + "target": "com.amazonaws.rds#RdsCustomClusterConfiguration", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The Provisioned IOPS (I/O operations per second) value. This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "CertificateDetails": { + "target": "com.amazonaws.rds#CertificateDetails" + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the ModifyDBCluster operation and contains changes that will be applied during the next maintenance window.

" + } + }, + "com.amazonaws.rds#ClusterScalabilityType": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "LIMITLESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "limitless" + } + } + } + }, + "com.amazonaws.rds#ConnectionPoolConfiguration": { + "type": "structure", + "members": { + "MaxConnectionsPercent": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum size of the connection pool for each target in a target group. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

If you specify MaxIdleConnectionsPercent, then you must also include a value for this parameter.

Default: 10 for RDS for Microsoft SQL Server, and 100 for all other engines

Constraints:

  • Must be between 1 and 100.

" + } + }, + "MaxIdleConnectionsPercent": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

A value that controls how actively the proxy closes idle database connections in the connection pool. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. With a high value, the proxy leaves a high percentage of idle database connections open. A low value causes the proxy to close more idle connections and return them to the database.

If you specify this parameter, then you must also include a value for MaxConnectionsPercent.

Default: The default value is half of the value of MaxConnectionsPercent. For example, if MaxConnectionsPercent is 80, then the default value of MaxIdleConnectionsPercent is 40. If the value of MaxConnectionsPercent isn't specified, then for SQL Server, MaxIdleConnectionsPercent is 5, and for all other engines, the default is 50.

Constraints:

  • Must be between 0 and the value of MaxConnectionsPercent.

" + } + }, + "ConnectionBorrowTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds for a proxy to wait for a connection to become available in the connection pool. This setting only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions.

Default: 120

Constraints:

  • Must be between 0 and 300.

" + } + }, + "SessionPinningFilters": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior.

Default: no session pinning filters

" + } + }, + "InitQuery": { + "target": "com.amazonaws.rds#OperatorSensitiveString", + "traits": { + "smithy.api#documentation": "

Add an initialization query, or modify the current one. You can specify one or more SQL statements for the proxy to run when opening each new database connection. The setting is typically used with SET statements to make sure that each connection has identical settings. Make sure the query added here is valid. This is an optional field, so you can choose to leave it empty. For including multiple variables in a single SET statement, use a comma separator.

For example: SET variable1=value1, variable2=value2

Default: no initialization query

Since you can access initialization query as part of target group configuration, it is not protected by authentication or cryptographic methods. Anyone with access to view or manage your proxy target group configuration can view the initialization query. You should not add sensitive data, such as passwords or long-lived encryption keys, to this option.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the settings that control the size and behavior of the connection pool associated with a DBProxyTargetGroup.

" + } + }, + "com.amazonaws.rds#ConnectionPoolConfigurationInfo": { + "type": "structure", + "members": { + "MaxConnectionsPercent": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The maximum size of the connection pool for each target in a target group. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

" + } + }, + "MaxIdleConnectionsPercent": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

Controls how actively the proxy closes idle database connections in the connection pool. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. With a high value, the proxy leaves a high percentage of idle database connections open. A low value causes the proxy to close more idle connections and return them to the database.

" + } + }, + "ConnectionBorrowTimeout": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions.

" + } + }, + "SessionPinningFilters": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. This setting is only supported for MySQL engine family databases. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS.

" + } + }, + "InitQuery": { + "target": "com.amazonaws.rds#OperatorSensitiveString", + "traits": { + "smithy.api#documentation": "

One or more SQL statements for the proxy to run when opening each new database connection. The setting is typically used with SET statements to make sure that each connection has identical settings. The query added here must be valid. For including multiple variables in a single SET statement, use a comma separator. This is an optional field.

For example: SET variable1=value1, variable2=value2

Since you can access initialization query as part of target group configuration, it is not protected by authentication or cryptographic methods. Anyone with access to view or manage your proxy target group configuration can view the initialization query. You should not add sensitive data, such as passwords or long-lived encryption keys, to this option.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Displays the settings that control the size and behavior of the connection pool associated with a DBProxyTarget.

" + } + }, + "com.amazonaws.rds#ContextAttribute": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The key of ContextAttribute.

" + } + }, + "Value": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The value of ContextAttribute.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The additional attributes of RecommendedAction data type.

" + } + }, + "com.amazonaws.rds#ContextAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ContextAttribute" + } + }, + "com.amazonaws.rds#CopyDBClusterParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CopyDBClusterParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CopyDBClusterParameterGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Copies the specified DB cluster parameter group.

You can't copy a default DB cluster parameter group. Instead, create a new custom DB cluster parameter group, which copies the default parameters and values for the specified DB cluster parameter group family.

", + "smithy.api#examples": [ + { + "title": "To copy a DB cluster parameter group", + "documentation": "This example copies a DB cluster parameter group.", + "input": { + "SourceDBClusterParameterGroupIdentifier": "mydbclusterparametergroup", + "TargetDBClusterParameterGroupIdentifier": "mydbclusterparametergroup-copy", + "TargetDBClusterParameterGroupDescription": "My DB cluster parameter group copy" + }, + "output": { + "DBClusterParameterGroup": { + "DBClusterParameterGroupName": "mydbclusterparametergroup-copy", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup-copy", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "My DB cluster parameter group copy" + } + } + } + ] + } + }, + "com.amazonaws.rds#CopyDBClusterParameterGroupMessage": { + "type": "structure", + "members": { + "SourceDBClusterParameterGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an ARN for Amazon RDS in the Amazon Aurora User Guide.

Constraints:

  • Must specify a valid DB cluster parameter group.

", + "smithy.api#required": {} + } + }, + "TargetDBClusterParameterGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the copied DB cluster parameter group.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-cluster-param-group1

", + "smithy.api#required": {} + } + }, + "TargetDBClusterParameterGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A description for the copied DB cluster parameter group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CopyDBClusterParameterGroupResult": { + "type": "structure", + "members": { + "DBClusterParameterGroup": { + "target": "com.amazonaws.rds#DBClusterParameterGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CopyDBClusterSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CopyDBClusterSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#CopyDBClusterSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot operation is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values:

  • KmsKeyId - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the SourceDBClusterSnapshotIdentifier in the presigned URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see Copying a Snapshot in the Amazon Aurora User Guide.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To copy a DB cluster snapshot", + "documentation": "The following example creates a copy of a DB cluster snapshot, including its tags.", + "input": { + "SourceDBClusterSnapshotIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:myaurora-2019-06-04-09-16", + "TargetDBClusterSnapshotIdentifier": "myclustersnapshotcopy", + "CopyTags": true + }, + "output": { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "myclustersnapshotcopy", + "DBClusterIdentifier": "myaurora", + "SnapshotCreateTime": "2019-06-04T09:16:42.649Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-123example", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:myclustersnapshotcopy", + "IAMDatabaseAuthenticationEnabled": false + } + } + } + ] + } + }, + "com.amazonaws.rds#CopyDBClusterSnapshotMessage": { + "type": "structure", + "members": { + "SourceDBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster snapshot to copy. This parameter isn't case-sensitive.

Constraints:

  • Must specify a valid source snapshot in the \"available\" state.

  • If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier.

  • If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB cluster snapshot ARN. You can also specify an ARN of a snapshot that is in a different account and a different Amazon Web Services Region. For more information, go to Copying Snapshots Across Amazon Web Services Regions in the Amazon Aurora User Guide.

Example: my-cluster-snapshot1

", + "smithy.api#required": {} + } + }, + "TargetDBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster-snapshot2

", + "smithy.api#required": {} + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS key.

If you copy an encrypted DB cluster snapshot from your Amazon Web Services account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS key. If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot.

If you copy an encrypted DB cluster snapshot that is shared from another Amazon Web Services account, then you must specify a value for KmsKeyId.

To copy an encrypted DB cluster snapshot to another Amazon Web Services Region, you must set KmsKeyId to the Amazon Web Services KMS key identifier you want to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon Web Services Region.

If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, an error is returned.

" + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

When you are copying a DB cluster snapshot from one Amazon Web Services GovCloud (US) Region to another, the URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API operation in the Amazon Web Services Region that contains the source DB cluster snapshot to copy. Use the PreSignedUrl parameter when copying an encrypted DB cluster snapshot from another Amazon Web Services Region. Don't specify PreSignedUrl when copying an encrypted DB cluster snapshot in the same Amazon Web Services Region.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

The presigned URL must be a valid request for the CopyDBClusterSnapshot API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to copy. The presigned URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBClusterSnapshot operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • DestinationRegion - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" + } + }, + "CopyTags": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot. By default, tags are not copied.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CopyDBClusterSnapshotResult": { + "type": "structure", + "members": { + "DBClusterSnapshot": { + "target": "com.amazonaws.rds#DBClusterSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CopyDBParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CopyDBParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CopyDBParameterGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Copies the specified DB parameter group.

You can't copy a default DB parameter group. Instead, create a new custom DB parameter group, which copies the default parameters and values for the specified DB parameter group family.

", + "smithy.api#examples": [ + { + "title": "To copy a DB parameter group", + "documentation": "The following example makes a copy of a DB parameter group.", + "input": { + "SourceDBParameterGroupIdentifier": "mydbpg", + "TargetDBParameterGroupIdentifier": "mydbpgcopy", + "TargetDBParameterGroupDescription": "Copy of mydbpg parameter group" + }, + "output": { + "DBParameterGroup": { + "DBParameterGroupName": "mydbpgcopy", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:814387698303:pg:mydbpgcopy", + "DBParameterGroupFamily": "mysql5.7", + "Description": "Copy of mydbpg parameter group" + } + } + } + ] + } + }, + "com.amazonaws.rds#CopyDBParameterGroupMessage": { + "type": "structure", + "members": { + "SourceDBParameterGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier or ARN for the source DB parameter group. For information about creating an ARN, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide.

Constraints:

  • Must specify a valid DB parameter group.

", + "smithy.api#required": {} + } + }, + "TargetDBParameterGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the copied DB parameter group.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-db-parameter-group

", + "smithy.api#required": {} + } + }, + "TargetDBParameterGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A description for the copied DB parameter group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CopyDBParameterGroupResult": { + "type": "structure", + "members": { + "DBParameterGroup": { + "target": "com.amazonaws.rds#DBParameterGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CopyDBSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CopyDBSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#CopyDBSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CustomAvailabilityZoneNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Copies the specified DB snapshot. The source DB snapshot must be in the available state.

You can copy a snapshot from one Amazon Web Services Region to another. In that case, the Amazon Web Services Region where you call the CopyDBSnapshot operation is the destination Amazon Web Services Region for the DB snapshot copy.

This command doesn't apply to RDS Custom.

For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To copy a DB snapshot", + "documentation": "The following example creates a copy of a DB snapshot.", + "input": { + "SourceDBSnapshotIdentifier": "rds:database-mysql-2019-06-06-08-38", + "TargetDBSnapshotIdentifier": "mydbsnapshotcopy" + }, + "output": { + "DBSnapshot": { + "VpcId": "vpc-6594f31c", + "Status": "creating", + "Encrypted": true, + "SourceDBSnapshotIdentifier": "arn:aws:rds:us-east-1:123456789012:snapshot:rds:database-mysql-2019-06-06-08-38", + "MasterUsername": "admin", + "Iops": 1000, + "Port": 3306, + "LicenseModel": "general-public-license", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshotcopy", + "EngineVersion": "5.6.40", + "OptionGroupName": "default:mysql-5-6", + "ProcessorFeatures": [], + "Engine": "mysql", + "StorageType": "io1", + "DbiResourceId": "db-ZI7UJ5BLKMBYFGX7FDENCKADC4", + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "SnapshotType": "manual", + "IAMDatabaseAuthenticationEnabled": false, + "SourceRegion": "us-east-1", + "DBInstanceIdentifier": "database-mysql", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "AvailabilityZone": "us-east-1f", + "PercentProgress": 0, + "AllocatedStorage": 100, + "DBSnapshotIdentifier": "mydbsnapshotcopy" + } + } + } + ] + } + }, + "com.amazonaws.rds#CopyDBSnapshotMessage": { + "type": "structure", + "members": { + "SourceDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the source DB snapshot.

If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier. For example, you might specify rds:mysql-instance1-snapshot-20130805.

If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.

If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB snapshot ARN. You can also specify an ARN of a snapshot that is in a different account and a different Amazon Web Services Region. For example, you might specify arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805.

Constraints:

  • Must specify a valid source snapshot in the \"available\" state.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

", + "smithy.api#required": {} + } + }, + "TargetDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the copy of the snapshot.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-db-snapshot

", + "smithy.api#required": {} + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you copy an encrypted DB snapshot from your Amazon Web Services account, you can specify a value for this parameter to encrypt the copy with a new KMS key. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same Amazon Web Services KMS key as the source DB snapshot.

If you copy an encrypted DB snapshot that is shared from another Amazon Web Services account, then you must specify a value for this parameter.

If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted.

If you copy an encrypted snapshot to a different Amazon Web Services Region, then you must specify an Amazon Web Services KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon Web Services Region.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "CopyTags": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the source DB snapshot to the target DB snapshot. By default, tags aren't copied.

" + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

When you are copying a snapshot from one Amazon Web Services GovCloud (US) Region to another, the URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API operation in the source Amazon Web Services Region that contains the source DB snapshot to copy.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

You must specify this parameter when you copy an encrypted DB snapshot from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are copying an encrypted DB snapshot in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CopyDBClusterSnapshot API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to copy. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted DB snapshot is copied to. This Amazon Web Services Region is the same one where the CopyDBSnapshot operation is called that contains this presigned URL.

    For example, if you copy an encrypted DB snapshot from the us-west-2 Amazon Web Services Region to the us-east-1 Amazon Web Services Region, then you call the CopyDBSnapshot operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CopyDBSnapshot operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBSnapshot operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of an option group to associate with the copy of the snapshot.

Specify this option if you are copying a snapshot from one Amazon Web Services Region to another, and your DB instance uses a nondefault option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across Amazon Web Services Regions. For more information, see Option group considerations in the Amazon RDS User Guide.

" + } + }, + "TargetCustomAvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The external custom Availability Zone (CAZ) identifier for the target CAZ.

Example: rds-caz-aiqhTgQv.

" + } + }, + "SnapshotTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Configures the location where RDS will store copied snapshots.

Valid Values:

  • local (Dedicated Local Zone)

  • outposts (Amazon Web Services Outposts)

  • region (Amazon Web Services Region)

" + } + }, + "CopyOptionGroup": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy the DB option group associated with the source DB snapshot to the target Amazon Web Services account or Amazon Web Services Region and associate it with the target DB snapshot.

" + } + }, + "SnapshotAvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the Availability Zone where RDS stores the DB snapshot. This value is valid only for snapshots that RDS stores on a Dedicated Local Zone.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the copied option group. By default, the copied option group isn't tagged.

Valid Values:

  • og - The copied option group.

Constraints:

  • Can only be specified when CopyOptionGroup is true

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CopyDBSnapshotResult": { + "type": "structure", + "members": { + "DBSnapshot": { + "target": "com.amazonaws.rds#DBSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CopyOptionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CopyOptionGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CopyOptionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#OptionGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#OptionGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Copies the specified option group.

", + "smithy.api#examples": [ + { + "title": "To copy an option group", + "documentation": "The following example makes a copy of an option group.", + "input": { + "SourceOptionGroupIdentifier": "myoptiongroup", + "TargetOptionGroupIdentifier": "new-option-group", + "TargetOptionGroupDescription": "My option group copy" + }, + "output": { + "OptionGroup": { + "Options": [], + "OptionGroupName": "new-option-group", + "MajorEngineVersion": "11.2", + "OptionGroupDescription": "My option group copy", + "AllowsVpcAndNonVpcInstanceMemberships": true, + "EngineName": "oracle-ee", + "OptionGroupArn": "arn:aws:rds:us-east-1:123456789012:og:new-option-group" + } + } + } + ] + } + }, + "com.amazonaws.rds#CopyOptionGroupMessage": { + "type": "structure", + "members": { + "SourceOptionGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the source option group.

Constraints:

  • Must specify a valid option group.

", + "smithy.api#required": {} + } + }, + "TargetOptionGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the copied option group.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-option-group

", + "smithy.api#required": {} + } + }, + "TargetOptionGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description for the copied option group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CopyOptionGroupResult": { + "type": "structure", + "members": { + "OptionGroup": { + "target": "com.amazonaws.rds#OptionGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateBlueGreenDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateBlueGreenDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.rds#CreateBlueGreenDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#SourceClusterNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#SourceDatabaseNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a blue/green deployment.

A blue/green deployment creates a staging environment that copies the production environment. In a blue/green deployment, the blue environment is the current production environment. The green environment is the staging environment, and it stays in sync with the current production environment.

You can make changes to the databases in the green environment without affecting production workloads. For example, you can upgrade the major or minor DB engine version, change database parameters, or make schema changes in the staging environment. You can thoroughly test changes in the green environment. When ready, you can switch over the environments to promote the green environment to be the new production environment. The switchover typically takes under a minute.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a blue/green deployment for an RDS for MySQL DB instance", + "documentation": "The following example creates a blue/green deployment for a MySQL DB instance.", + "input": { + "BlueGreenDeploymentName": "bgd-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetEngineVersion": "8.0", + "TargetDBParameterGroupName": "mysql-80-group" + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "PENDING" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "PENDING" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "PENDING" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "PENDING" + } + ], + "Status": "PROVISIONING", + "CreateTime": "2022-02-25T21:18:51.183Z" + } + } + }, + { + "title": "To create a blue/green deployment for an Aurora MySQL DB cluster", + "documentation": "The following example creates a blue/green deployment for an Aurora MySQL DB cluster.", + "input": { + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetEngineVersion": "8.0", + "TargetDBParameterGroupName": "ams-80-binlog-enabled", + "TargetDBClusterParameterGroupName": "mysql-80-cluster-group" + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "Status": "PROVISIONING" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "Status": "PROVISIONING" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "PENDING" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "PENDING" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "PENDING" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "PENDING" + } + ], + "Status": "PROVISIONING", + "CreateTime": "2022-02-25T21:12:00.288Z" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateBlueGreenDeploymentRequest": { + "type": "structure", + "members": { + "BlueGreenDeploymentName": { + "target": "com.amazonaws.rds#BlueGreenDeploymentName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the blue/green deployment.

Constraints:

  • Can't be the same as an existing blue/green deployment name in the same account and Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "Source": { + "target": "com.amazonaws.rds#DatabaseArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source production database.

Specify the database that you want to clone. The blue/green deployment creates this database in the green environment. You can make updates to the database in the green environment, such as an engine version upgrade. When you are ready, you can switch the database in the green environment to be the production database.

", + "smithy.api#required": {} + } + }, + "TargetEngineVersion": { + "target": "com.amazonaws.rds#TargetEngineVersion", + "traits": { + "smithy.api#documentation": "

The engine version of the database in the green environment.

Specify the engine version to upgrade to in the green environment.

" + } + }, + "TargetDBParameterGroupName": { + "target": "com.amazonaws.rds#TargetDBParameterGroupName", + "traits": { + "smithy.api#documentation": "

The DB parameter group associated with the DB instance in the green environment.

To test parameter changes, specify a DB parameter group that is different from the one associated with the source DB instance.

" + } + }, + "TargetDBClusterParameterGroupName": { + "target": "com.amazonaws.rds#TargetDBClusterParameterGroupName", + "traits": { + "smithy.api#documentation": "

The DB cluster parameter group associated with the Aurora DB cluster in the green environment.

To test parameter changes, specify a DB cluster parameter group that is different from the one associated with the source DB cluster.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the blue/green deployment.

" + } + }, + "TargetDBInstanceClass": { + "target": "com.amazonaws.rds#TargetDBInstanceClass", + "traits": { + "smithy.api#documentation": "

Specify the DB instance class for the databases in the green environment.

This parameter only applies to RDS DB instances, because DB instances within an Aurora DB cluster can have multiple different instance classes. If you're creating a blue/green deployment from an Aurora DB cluster, don't specify this parameter. After the green environment is created, you can individually modify the instance classes of the DB instances within the green DB cluster.

" + } + }, + "UpgradeTargetStorageConfig": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Whether to upgrade the storage file system configuration on the green database. This option migrates the green DB instance from the older 32-bit file system to the preferred configuration. For more information, see Upgrading the storage file system for a DB instance.

" + } + }, + "TargetIops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to allocate for the green DB instance. For information about valid IOPS values, see Amazon RDS DB instance storage in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora blue/green deployments.

" + } + }, + "TargetStorageType": { + "target": "com.amazonaws.rds#TargetStorageType", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the green DB instance.

Valid Values: gp2 | gp3 | io1 | io2

This setting doesn't apply to Amazon Aurora blue/green deployments.

" + } + }, + "TargetAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to allocate for the green DB instance. You can choose to increase or decrease the allocated storage on the green DB instance.

This setting doesn't apply to Amazon Aurora blue/green deployments.

" + } + }, + "TargetStorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the green DB instance.

This setting applies only to the gp3 storage type.

This setting doesn't apply to Amazon Aurora blue/green deployments.

" + } + }, + "TargetResourceConfigurations": { + "target": "com.amazonaws.rds#TargetResourceConfigurationList", + "traits": { + "smithy.api#documentation": "

Specifies resource-level configuration overrides for the green environment.

Each entry identifies a resource in the blue environment by its Amazon Resource Name (ARN). It defines the desired configuration for the corresponding resource in the green environment. Any resource that you don't include in this parameter retains the same configuration as its counterpart in the blue environment.

Use this parameter when one or more resources in the green environment require a different configuration than what they have in the blue environment.

Constraints:

  • You can't specify the same SourceArn in more than one entry.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateBlueGreenDeploymentResponse": { + "type": "structure", + "members": { + "BlueGreenDeployment": { + "target": "com.amazonaws.rds#BlueGreenDeployment" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateCustomDBEngineVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateCustomDBEngineVersionMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBEngineVersion" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CreateCustomDBEngineVersionFault" + }, + { + "target": "com.amazonaws.rds#CustomDBEngineVersionAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CustomDBEngineVersionQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#Ec2ImagePropertiesNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a custom DB engine version (CEV).

" + } + }, + "com.amazonaws.rds#CreateCustomDBEngineVersionFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CreateCustomDBEngineVersionFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

An error occurred while trying to create the CEV.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#CreateCustomDBEngineVersionMessage": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#CustomEngineName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine.

RDS Custom for Oracle supports the following values:

  • custom-oracle-ee

  • custom-oracle-ee-cdb

  • custom-oracle-se2

  • custom-oracle-se2-cdb

RDS Custom for SQL Server supports the following values:

  • custom-sqlserver-ee

  • custom-sqlserver-se

  • custom-sqlserver-web

  • custom-sqlserver-dev

RDS for SQL Server supports the following values:

  • sqlserver-ee (Bring Your Own Media)

  • sqlserver-se (Bring Your Own Media)

  • sqlserver-dev-ee

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#CustomEngineVersion", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of your custom engine version (CEV).

For RDS Custom for Oracle, the name format is 19.*customized_string*. For example, a valid CEV name is 19.my_cev1.

For RDS Custom for SQL Server and RDS for SQL Server sqlserver-dev-ee, the name format is *major_engine_version*.*minor_engine_version*.*customized_string*. For example, a valid CEV name is 16.00.4215.2.my_cev1.

For RDS for SQL Server Bring Your Own Media (sqlserver-ee, sqlserver-se), specify the RDS engine version that you want to use. For example, 16.00.4175.1.v1.

The CEV name is unique per customer per Amazon Web Services Regions.

", + "smithy.api#required": {} + } + }, + "DatabaseInstallationFilesS3BucketName": { + "target": "com.amazonaws.rds#BucketName", + "traits": { + "smithy.api#documentation": "

The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is my-custom-installation-files.

" + } + }, + "DatabaseInstallationFilesS3Prefix": { + "target": "com.amazonaws.rds#String255", + "traits": { + "smithy.api#documentation": "

The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is 123456789012/cev1. If this setting isn't specified, no prefix is assumed.

" + } + }, + "DatabaseInstallationFiles": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The database installation files (ISO and EXE) uploaded to Amazon S3 for your database engine version to import to Amazon RDS.

For RDS for SQL Server Bring Your Own Media (sqlserver-ee, sqlserver-se), provide the SQL Server RTM ISO file once per major version and edition combination. Minor versions reuse the same file.

" + } + }, + "ImageId": { + "target": "com.amazonaws.rds#String255", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Machine Image (AMI). For RDS Custom for SQL Server, an AMI ID is required to create a CEV. For RDS Custom for Oracle, the default is the most recent AMI available, but you can specify an AMI ID that was used in a different Oracle CEV. Find the AMIs used by your CEVs by calling the DescribeDBEngineVersions operation.

" + } + }, + "KMSKeyId": { + "target": "com.amazonaws.rds#KmsKeyIdOrArn", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.

If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in Creating a symmetric encryption KMS key in the Amazon Web Services Key Management Service Developer Guide.

You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.

" + } + }, + "SourceCustomDbEngineVersionIdentifier": { + "target": "com.amazonaws.rds#String255", + "traits": { + "smithy.api#documentation": "

The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either Source or UseAwsProvidedLatestImage. You can't specify a different JSON manifest when you specify SourceCustomDbEngineVersionIdentifier.

" + } + }, + "UseAwsProvidedLatestImage": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify UseAwsProvidedLatestImage, you can't also specify ImageId.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#Description", + "traits": { + "smithy.api#documentation": "

An optional description of your CEV.

" + } + }, + "Manifest": { + "target": "com.amazonaws.rds#CustomDBEngineVersionManifest", + "traits": { + "smithy.api#documentation": "

The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.

The following JSON fields are valid:

MediaImportTemplateVersion

Version of the CEV manifest. The date is in the format YYYY-MM-DD.

databaseInstallationFileNames

Ordered list of installation files for the CEV.

opatchFileNames

Ordered list of OPatch installers used for the Oracle DB engine.

psuRuPatchFileNames

The PSU and RU patches for this CEV.

OtherPatchFileNames

The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches.

For more information, see Creating the CEV manifest in the Amazon RDS User Guide.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBCapacityReservationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBCapacityReservationAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationUnsupportedFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a DB capacity reservation. A DB capacity reservation reserves compute and memory capacity for DB instances of one DB instance class and one database engine. Amazon RDS reserves that capacity in each Availability Zone that you specify.

Amazon RDS reserves the same amount of capacity in every Availability Zone in the request. You set that amount with CapacityPerAvailabilityZone, and you set the Availability Zones with AvailabilityZones. The total reserved capacity is CapacityPerAvailabilityZone multiplied by the number of Availability Zones.

Specify StartDate and CommitmentDuration together to create a future-dated reservation. A future-dated reservation reserves capacity for a period that starts later. Amazon RDS holds that capacity for the length of the commitment.

A future-dated reservation has the following additional constraints:

  • DBInstanceClass must be a db.c, db.m, db.r, db.t, or db.x DB instance class. The letter after db. gives the DB instance class family. For example, db.x2g.xlarge qualifies, and db.z1d.xlarge doesn't.

  • If DBInstanceClass is a db.m or db.r DB instance class, it must be from generation 7 or later. The digit after the family letter gives the generation. For example, db.m7g.xlarge qualifies, and db.m5.xlarge doesn't. A db.c, db.t, or db.x DB instance class has no generation requirement.

  • The reserved capacity must total at least 32 vCPUs in each Availability Zone. Multiply CapacityPerAvailabilityZone by the number of vCPUs of the DB instance class. The product must be 32 or more.

  • CommitmentDuration must be at least 14 days. For a db.x DB instance class, it must be at least 84 days.

  • StartDate must be from 5 to 120 days in the future.

Therefore, a DB instance class with 2 vCPUs needs a CapacityPerAvailabilityZone of 16 or more, a class with 4 vCPUs needs 8 or more, a class with 8 vCPUs needs 4 or more, and a class with 16 vCPUs needs 2 or more. For the number of vCPUs of each DB instance class, see DB instance classes in the Amazon RDS User Guide.

You can't modify a future-dated reservation before it starts. You can't cancel a future-dated reservation in the scheduled state. You can't cancel a reservation in the active state during its capacity commitment. Therefore, you can't cancel a future-dated reservation from the time that Amazon RDS schedules it until the commitment ends.

", + "smithy.api#examples": [ + { + "title": "To create a DB capacity reservation in two Availability Zones", + "documentation": "The following example reserves capacity for two db.m5.large RDS for MySQL DB instances in each of two Availability Zones. Amazon RDS reserves the same capacity in every Availability Zone in the request. The total reserved capacity is four units. Four units serve four Single-AZ DB instances, or two Multi-AZ DB instances, because a Multi-AZ DB instance uses one unit in each of two Availability Zones.", + "input": { + "DBCapacityReservationName": "my-mysql-reservation", + "DBInstanceClass": "db.m5.large", + "Engine": "mysql", + "CapacityPerAvailabilityZone": 2, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b" + ] + }, + "output": { + "DBCapacityReservation": { + "DBCapacityReservationName": "my-mysql-reservation", + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBInstanceClass": "db.m5.large", + "Engine": "mysql", + "ReservedCapacityPerAvailabilityZone": 2, + "AvailableCapacityPerAvailabilityZoneList": [ + { + "AvailabilityZone": "us-east-1a", + "AvailableCapacity": 2 + }, + { + "AvailabilityZone": "us-east-1b", + "AvailableCapacity": 2 + } + ], + "State": "active", + "CreateDate": "2026-09-10T18:22:41.612Z", + "TagList": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBCapacityReservationRequest": { + "type": "structure", + "members": { + "DBCapacityReservationName": { + "target": "com.amazonaws.rds#DBCapacityReservationName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB capacity reservation. This name must be unique for your Amazon Web Services account in the Amazon Web Services Region.

Constraints:

  • Must contain from 1 to 63 lowercase letters, digits, or hyphens.

  • First character must be a lowercase letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

  • Can't contain more than 16 groups of characters separated by hyphens.

  • Can't begin with dbcr-.

", + "smithy.api#required": {} + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#DBInstanceClass", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The compute and memory capacity to reserve, for example db.m5.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB instance classes in the Amazon RDS User Guide.

Constraints:

  • Must be a DB instance class that the specified Engine supports.

  • For RDS for Oracle with LicenseModel set to license-included, some DB instance classes aren't supported. Either choose a supported DB instance class, or set LicenseModel to bring-your-own-license.

", + "smithy.api#required": {} + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine to reserve capacity for.

Valid Values: aurora-mysql | aurora-postgresql | mysql | postgres | mariadb | oracle-ee | oracle-ee-cdb | oracle-se2 | oracle-se2-cdb | sqlserver-ee | sqlserver-se | sqlserver-web | sqlserver-ex | sqlserver-dev-ee | sqlserver-dev-se | db2-ae | db2-ce | db2-se

The Developer Edition engines sqlserver-dev-ee and sqlserver-dev-se support no Multi-AZ DB instance and no read replica. Therefore, a reservation for either engine serves Single-AZ DB instances only.

", + "smithy.api#required": {} + } + }, + "CapacityPerAvailabilityZone": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The number of DB instances to reserve in each Availability Zone that you list in AvailabilityZones. Amazon RDS reserves this number of DB instances in every listed Availability Zone.

A Single-AZ DB instance uses one unit of reserved capacity, in one Availability Zone. A Multi-AZ DB instance is one DB instance, and it uses one unit of reserved capacity in each of two Availability Zones. Therefore, a Multi-AZ DB instance uses two units in total. A read replica uses one unit of reserved capacity, in the same way as any other DB instance.

Amazon RDS reserves capacity in each Availability Zone separately. Reserved capacity in one Availability Zone can't serve a DB instance in another Availability Zone. A request for a DB instance fails when the Availability Zone of the DB instance has no available capacity.

Therefore, set this value to the number of DB instances that you want to run at the same time in one Availability Zone. Don't set it to the number that you want in total.

This value multiplied by the number of Availability Zones counts against the DB instances quota for your Amazon Web Services account in the Amazon Web Services Region. Your existing DB instances, and the unused capacity of your other reservations, count against the same quota.

To find the value of the DB instances quota, see Quotas and constraints for Amazon RDS in the Amazon RDS User Guide.

Constraints:

  • Minimum 1.

", + "smithy.api#required": {} + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of Availability Zones for the reservation.

You can't change the Availability Zones of a reservation after you create it. Reserved capacity in an Availability Zone that no DB instance uses stays unused.

Constraints:

  • Must specify one or more Availability Zones.

  • Each Availability Zone can appear only once.

  • Each Availability Zone must be in the Amazon Web Services Region of the request.

  • Each Availability Zone must have capacity for the requested DB instance class.

  • Must include two or more Availability Zones to use the reservation for a Multi-AZ DB instance.

  • A DB instance can use reserved capacity only in an Availability Zone that its DB subnet group covers.

Example: us-east-1a

", + "smithy.api#required": {} + } + }, + "EndDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the reservation expires, in Universal Coordinated Time (UTC). If you don't specify a value, the reservation doesn't expire.

To change the expiration of an existing reservation, use ModifyDBCapacityReservation. That operation takes EndDateType along with EndDate.

Constraints:

  • Must be a date and time in the future.

  • For a future-dated reservation, must be at or after StartDate plus CommitmentDuration. For example, a reservation that starts on 2026-12-01 with a 30-day commitment can't expire before 2026-12-31. To reserve capacity for one calendar month, set CommitmentDuration to 30 days or fewer, not to the length of the month.

Example: 2026-12-31T23:59:59Z

" + } + }, + "StartDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the reservation starts, in Universal Coordinated Time (UTC). Specify this parameter to create a future-dated reservation. If you don't specify a value, the reservation starts immediately.

A reservation that starts later always carries a capacity commitment. Therefore, a request that specifies StartDate must also meet every constraint of a future-dated reservation, including the minimum reserved capacity in each Availability Zone.

Constraints:

  • Must be from 5 to 120 days in the future.

  • You must also specify CommitmentDuration.

Example: 2026-12-01T00:00:00Z

" + } + }, + "CommitmentDuration": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The length of the capacity commitment that you request for a future-dated reservation, in seconds. Amazon RDS measures this length from StartDate.

Amazon RDS can grant a shorter capacity commitment than you request. Therefore, read CommitmentEndDate in CommitmentInfo for the commitment that Amazon RDS granted.

The commitment doesn't end the reservation. Specify EndDate to set an expiration date. You can't cancel a reservation in the active state during the commitment.

Constraints:

  • Minimum 1209600, which is 14 days. For a db.x DB instance class, such as db.x2g.xlarge, the minimum is 7257600, which is 84 days.

  • Must be less than 315576000, which is 10 years.

  • You must also specify StartDate.

Example: 2592000

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model to reserve capacity for. Specify this parameter only for RDS for Microsoft SQL Server Enterprise Edition, Standard Edition, and Developer Edition, for RDS for Oracle, or for RDS for Db2 Standard Edition and Advanced Edition. Amazon RDS rejects the request for any other engine. This includes Amazon Aurora, the Web and Express editions of RDS for Microsoft SQL Server, and RDS for Db2 Community Edition.

Valid Values:

  • RDS for Microsoft SQL Server Enterprise Edition and Standard Edition - license-included | bring-your-own-media

  • RDS for Microsoft SQL Server Developer Edition - bring-your-own-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for Db2 Standard Edition and Advanced Edition - bring-your-own-license | marketplace-license

A DB instance launches into the reservation only when the license model of the DB instance matches the license model of the reservation. For a reservation that holds no license model, Amazon RDS applies no license model check at launch.

For RDS for Microsoft SQL Server Enterprise Edition and Standard Edition, if you don't specify a value, Amazon RDS uses license-included.

For RDS for Microsoft SQL Server Developer Edition, if you don't specify a value, Amazon RDS uses bring-your-own-license. That is the only license model that these engines accept, and Amazon RDS rejects any other value.

For RDS for Oracle, if you don't specify a value, Amazon RDS uses the only orderable license model for the DB instance class. If more than one license model is orderable, you must specify one.

For RDS for Db2 Standard Edition and Advanced Edition, if you don't specify a value, Amazon RDS uses bring-your-own-license. To reserve capacity for Db2 DB instances that you license through Amazon Web Services Marketplace, specify marketplace-license.

For RDS for Oracle, the license models that you can reserve depend on the engine and the DB instance class. RDS for Oracle Enterprise Edition doesn't support license-included.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBCapacityReservationResponse": { + "type": "structure", + "members": { + "DBCapacityReservation": { + "target": "com.amazonaws.rds#DBCapacityReservation", + "traits": { + "smithy.api#documentation": "

Contains the details of the newly created DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InsufficientStorageClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

If you create an Aurora DB cluster, the request creates an empty cluster. You must explicitly create the writer instance for your DB cluster using the CreateDBInstance operation. If you create a Multi-AZ DB cluster, the request creates a writer and two reader DB instances for you, each in a different Availability Zone.

You can use the ReplicationSourceIdentifier parameter to create an Amazon Aurora DB cluster as a read replica of another DB cluster or Amazon RDS for MySQL or PostgreSQL DB instance. For more information about Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

You can also use the ReplicationSourceIdentifier parameter to create a Multi-AZ DB cluster read replica with an RDS for MySQL or PostgreSQL DB instance as the source. For more information about Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

You can use the WithExpressConfiguration parameter to create an Aurora DB Cluster with express configuration and create cluster in seconds. Express configuration provides a cluster with a writer instance and feature specific values set to all other input parameters of this API.

You can use the AssociatedRoles parameter to associate one or more Amazon Web Services Identity and Access Management (IAM) roles with an Aurora DB cluster. Each associated role lets the DB cluster access other Amazon Web Services on your behalf, such as Amazon S3 for data import and export, or Amazon Web Services Lambda for invoking functions.

", + "smithy.api#examples": [ + { + "title": "To create a MySQL 5.7-compatible DB cluster", + "documentation": "The following example creates a MySQL 5.7-compatible Aurora DB cluster.", + "input": { + "DBClusterIdentifier": "sample-cluster", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.12", + "MasterUsername": "admin", + "MasterUserPassword": "mypassword", + "DBSubnetGroupName": "default", + "VpcSecurityGroupIds": [ + "sg-0b91305example" + ] + }, + "output": { + "DBCluster": { + "DBSubnetGroup": "default", + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b91305example", + "Status": "active" + } + ], + "AllocatedStorage": 1, + "AssociatedRoles": [], + "PreferredBackupWindow": "09:12-09:42", + "ClusterCreateTime": "2019-06-07T23:21:33.048Z", + "DeletionProtection": false, + "IAMDatabaseAuthenticationEnabled": false, + "ReadReplicaIdentifiers": [], + "EngineMode": "provisioned", + "Engine": "aurora-mysql", + "StorageEncrypted": false, + "MultiAZ": false, + "PreferredMaintenanceWindow": "mon:04:31-mon:05:01", + "HttpEndpointEnabled": false, + "BackupRetentionPeriod": 1, + "DbClusterResourceId": "cluster-ANPAJ4AE5446DAEXAMPLE", + "DBClusterIdentifier": "sample-cluster", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "MasterUsername": "master", + "EngineVersion": "5.7.12", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", + "DBClusterMembers": [], + "Port": 3306, + "Status": "creating", + "Endpoint": "sample-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "HostedZoneId": "Z2R2ITUGPM61AM", + "ReaderEndpoint": "sample-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "CopyTagsToSnapshot": false + } + } + }, + { + "title": "To create a PostgreSQL-compatible DB cluster", + "documentation": "The following example creates a PostgreSQL-compatible Aurora DB cluster.", + "input": { + "DBClusterIdentifier": "sample-pg-cluster", + "Engine": "aurora-postgresql", + "MasterUsername": "admin", + "MasterUserPassword": "mypassword", + "VpcSecurityGroupIds": [ + "sg-0b91305example" + ], + "DBSubnetGroupName": "default" + }, + "output": { + "DBCluster": { + "Endpoint": "sample-pg-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "HttpEndpointEnabled": false, + "DBClusterMembers": [], + "EngineMode": "provisioned", + "CopyTagsToSnapshot": false, + "HostedZoneId": "Z2R2ITUGPM61AM", + "IAMDatabaseAuthenticationEnabled": false, + "AllocatedStorage": 1, + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b91305example", + "Status": "active" + } + ], + "DeletionProtection": false, + "StorageEncrypted": false, + "BackupRetentionPeriod": 1, + "PreferredBackupWindow": "09:56-10:26", + "ClusterCreateTime": "2019-06-07T23:26:08.371Z", + "DBClusterParameterGroup": "default.aurora-postgresql9.6", + "EngineVersion": "9.6.9", + "Engine": "aurora-postgresql", + "Status": "creating", + "DBClusterIdentifier": "sample-pg-cluster", + "MultiAZ": false, + "Port": 5432, + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-pg-cluster", + "AssociatedRoles": [], + "DbClusterResourceId": "cluster-ANPAJ4AE5446DAEXAMPLE", + "PreferredMaintenanceWindow": "wed:03:33-wed:04:03", + "ReaderEndpoint": "sample-pg-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "MasterUsername": "master", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c" + ], + "ReadReplicaIdentifiers": [], + "DBSubnetGroup": "default" + } + } + }, + { + "title": "To create a Aurora DB cluster with express configuration", + "documentation": "The following example creates a Aurora DB cluster with express configuration.", + "input": { + "DBClusterIdentifier": "sample-cluster", + "Engine": "aurora-postgresql", + "WithExpressConfiguration": true + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1c", + "us-east-1a", + "us-east-1b" + ], + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "sample-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "creating", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "06:15-06:45", + "PreferredMaintenanceWindow": "sat:03:44-sat:04:14", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "sample-cluster-instance-1", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-OWV7DRHS2W7R4LXZRYNXCHZST4", + "DBClusterArn": "arn:aws:rds:us-east-1:654654253058:cluster:sample-cluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": true, + "ClusterCreateTime": "2026-01-10T22:14:02Z", + "EngineMode": "provisioned", + "AutoMinorVersionUpgrade": true, + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [], + "TagList": [], + "ServerlessV2ScalingConfiguration": { + "MinCapacity": 0.0, + "MaxCapacity": 16.0, + "SecondsUntilAutoPause": 300 + }, + "ServerlessV2PlatformVersion": "3", + "DatabaseInsightsMode": "standard", + "PerformanceInsightsEnabled": false, + "LocalWriteForwardingStatus": "disabled", + "EngineLifecycleSupport": "open-source-rds-extended-support" + } + } + }, + { + "title": "To create an Aurora DB cluster with an associated IAM role for Amazon S3 import", + "documentation": "The following example creates an Aurora PostgreSQL-compatible DB cluster and associates an IAM role for Amazon S3 import in a single call.", + "input": { + "DBClusterIdentifier": "sample-cluster", + "Engine": "aurora-postgresql", + "MasterUsername": "admin", + "MasterUserPassword": "mypassword", + "AssociatedRoles": [ + { + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3", + "FeatureName": "s3Import" + } + ] + }, + "output": { + "DBCluster": { + "Endpoint": "sample-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "sample-cluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "HttpEndpointEnabled": false, + "DBClusterMembers": [], + "EngineMode": "provisioned", + "CopyTagsToSnapshot": false, + "HostedZoneId": "Z2R2ITUGPM61AM", + "IAMDatabaseAuthenticationEnabled": false, + "AllocatedStorage": 1, + "VpcSecurityGroups": [], + "DeletionProtection": false, + "StorageEncrypted": false, + "BackupRetentionPeriod": 1, + "PreferredBackupWindow": "09:56-10:26", + "PreferredMaintenanceWindow": "wed:03:33-wed:04:03", + "ClusterCreateTime": "2024-06-07T23:26:08.371Z", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "EngineVersion": "17.7", + "Engine": "aurora-postgresql", + "Status": "creating", + "DBClusterIdentifier": "sample-cluster", + "MultiAZ": false, + "Port": 5432, + "MasterUsername": "admin", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", + "DbClusterResourceId": "cluster-ANPAJ4AE5446DAEXAMPLE", + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1c" + ], + "ReadReplicaIdentifiers": [], + "DBSubnetGroup": "default", + "AssociatedRoles": [ + { + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3", + "FeatureName": "s3Import", + "Status": "ACTIVE" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBClusterEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBClusterEndpointMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterEndpoint" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterEndpointAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterEndpointQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new custom endpoint and associates it with an Amazon Aurora DB cluster.

This action applies only to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To create a custom DB cluster endpoint", + "documentation": "The following example creates a custom DB cluster endpoint and associate it with the specified Aurora DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointIdentifier": "mycustomendpoint", + "EndpointType": "reader", + "StaticMembers": [ + "dbinstance1", + "dbinstance2" + ] + }, + "output": { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBClusterEndpointMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "DBClusterEndpointIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier to use for the new endpoint. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "EndpointType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of the endpoint, one of: READER, WRITER, ANY.

", + "smithy.api#required": {} + } + }, + "StaticMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that are part of the custom endpoint group.

" + } + }, + "ExcludedMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. This parameter is relevant only if the list of static members is empty.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

The tags to be assigned to the Amazon RDS resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBClusterMessage": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

A list of Availability Zones (AZs) where you specifically want to create DB instances in the DB cluster.

For the first three DB instances that you create, RDS distributes each DB instance to a different AZ that you specify. For additional DB instances that you create, RDS randomly distributes them to the AZs that you specified. For example, if you create a DB cluster with one writer instance and three reader instances, RDS might distribute the writer instance to AZ 1, the first reader instance to AZ 2, the second reader instance to AZ 3, and the third reader instance to either AZ 1, AZ 2, or AZ 3.

For more information, see Availability Zones and High availability for Aurora DB instances in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

Constraints:

  • Can't specify more than three AZs.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Default: 1

Constraints:

  • Must be a value from 1 to 35.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the character set (CharacterSet) to associate the DB cluster with.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name for your database of up to 64 alphanumeric characters. A database named postgres is always created. If this parameter is specified, an additional database with this name is created.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for this DB cluster. This parameter is stored as a lowercase string.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must contain from 1 to 63 (for Aurora DB clusters) or 1 to 52 (for Multi-AZ DB clusters) letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "smithy.api#required": {} + } + }, + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group to associate with this DB cluster. If you don't specify a value, then the default DB cluster parameter group for the specified DB engine and version is used.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • If supplied, must match the name of an existing DB cluster parameter group.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with this DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A DB subnet group to associate with this DB cluster.

This setting is required to create a Multi-AZ DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must match the name of an existing DB subnet group.

Example: mydbsubnetgroup

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine to use for this DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values:

  • aurora-mysql

  • aurora-postgresql

  • mysql

  • postgres

  • neptune - For information about using Amazon Neptune, see the Amazon Neptune User Guide .

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to use.

To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (MySQL 8.0-compatible), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

You can supply either 5.7 or 8.0 to use the default engine version for Aurora MySQL version 2 or version 3, respectively.

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

For information about a specific engine, see the following topics:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the instances in the DB cluster accept connections.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: 1150-65535

Default:

  • RDS for MySQL and Aurora MySQL - 3306

  • RDS for PostgreSQL and Aurora PostgreSQL - 5432

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the master user for the DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Can't be a reserved word for the chosen database engine.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the master database user.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must contain from 8 to 41 characters.

  • Can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

  • Can't be specified if ManageMasterUserPassword is turned on.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to associate the DB cluster with.

DB clusters are associated with a default option group that can't be modified.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window in the Amazon Aurora User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • Days must be one of Mon | Tue | Wed | Thu | Fri | Sat | Sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must be at least 30 minutes.

" + } + }, + "ReplicationSourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster is encrypted.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

When a KMS key isn't specified in KmsKeyId:

  • If ReplicationSourceIdentifier identifies an encrypted source, then Amazon RDS uses the KMS key used to encrypt the source. Otherwise, Amazon RDS uses your default KMS key.

  • If the StorageEncrypted parameter is enabled and ReplicationSourceIdentifier isn't specified, then Amazon RDS uses your default KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

If you create a read replica of an encrypted DB cluster in another Amazon Web Services Region, make sure to set KmsKeyId to a KMS key identifier that is valid in the destination Amazon Web Services Region. This KMS key is used to encrypt the read replica in that Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

When you are replicating a DB cluster from one Amazon Web Services GovCloud (US) Region to another, an URL that contains a Signature Version 4 signed request for the CreateDBCluster operation to be called in the source Amazon Web Services Region where the DB cluster is replicated from. Specify PreSignedUrl only when you are performing cross-Region replication from an encrypted DB cluster.

The presigned URL must be a valid request for the CreateDBCluster API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster to copy.

The presigned URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster in the destination Amazon Web Services Region. This should refer to the same KMS key for both the CreateDBCluster operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • DestinationRegion - The name of the Amazon Web Services Region that Aurora read replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster from the us-west-2 Amazon Web Services Region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide or IAM database authentication for MariaDB, MySQL, and PostgreSQL in the Amazon RDS User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Valid for Cluster Type: Aurora MySQL DB clusters only

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of log types that need to be enabled for exporting to CloudWatch Logs.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

The following values are valid for each DB engine:

  • Aurora MySQL - audit | error | general | instance | slowquery | iam-db-auth-error

  • Aurora PostgreSQL - instance | postgresql | iam-db-auth-error

  • RDS for MySQL - error | general | slowquery | iam-db-auth-error

  • RDS for PostgreSQL - postgresql | upgrade | iam-db-auth-error

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

The serverless engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the provisioned engine mode.

For information about limitations and requirements for Serverless DB clusters, see the following sections in the Amazon Aurora User Guide:

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "ScalingConfiguration": { + "target": "com.amazonaws.rds#ScalingConfiguration", + "traits": { + "smithy.api#documentation": "

For DB clusters in serverless DB engine mode, the scaling properties of the DB cluster.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "RdsCustomClusterConfiguration": { + "target": "com.amazonaws.rds#RdsCustomClusterConfiguration", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "DBClusterInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Valid for Cluster Type: Multi-AZ DB clusters only

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.

Valid for Cluster Type: Multi-AZ DB clusters only

This setting is required to create a Multi-AZ DB cluster.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the DB cluster.

For information on storage types for Aurora DB clusters, see Storage configurations for Amazon Aurora DB clusters. For information on storage types for Multi-AZ DB clusters, see Settings for creating Multi-AZ DB clusters.

This setting is required to create a Multi-AZ DB cluster.

When specified for a Multi-AZ DB cluster, a value for the Iops parameter is required.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values:

  • Aurora DB clusters - aurora | aurora-iopt1

  • Multi-AZ DB clusters - io1 | io2 | gp3

Default:

  • Aurora DB clusters - aurora

  • Multi-AZ DB clusters - io1

When you create an Aurora DB cluster with the storage type set to aurora-iopt1, the storage type is returned in the response. The storage type isn't returned when you set it to aurora.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Provisioned IOPS storage in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Valid for Cluster Type: Multi-AZ DB clusters only

Constraints:

  • Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster is publicly accessible.

Valid for Cluster Type: Multi-AZ DB clusters only

When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.

When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.

The default behavior when PubliclyAccessible is not specified depends on whether a DBSubnetGroup is specified.

If DBSubnetGroup isn't specified, PubliclyAccessible defaults to true.

If DBSubnetGroup is specified, PubliclyAccessible defaults to false unless the value of DBSubnetGroup is default, in which case PubliclyAccessible defaults to true.

If PubliclyAccessible is true and the VPC that the DBSubnetGroup is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#documentation": "

The global cluster ID of an Aurora cluster that becomes the primary cluster in the new global database cluster.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "EnableHttpEndpoint": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.

When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.

For more information, see Using RDS Data API in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to create the DB cluster in.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate users that connect to the DB cluster.

For more information, see Kerberos authentication in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "EnableGlobalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.

You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster, and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by a global cluster API operation, but it does nothing until then.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB cluster.

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

Valid Values: IPV4 | DUAL

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfiguration" + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, also set MonitoringInterval to a value other than 0.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see Setting up and enabling Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, supply a MonitoringRoleArn value.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of Database Insights to enable for the DB cluster.

If you set this value to advanced, you must also set the PerformanceInsightsEnabled parameter to true and the PerformanceInsightsRetentionPeriod parameter to 465.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to turn on Performance Insights for the DB cluster.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS issues an error.

" + } + }, + "EnableLimitlessDatabase": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

Valid for: Aurora DB clusters only

This setting is no longer used. Instead use the ClusterScalabilityType setting.

" + } + }, + "ClusterScalabilityType": { + "target": "com.amazonaws.rds#ClusterScalabilityType", + "traits": { + "smithy.api#documentation": "

Specifies the scalability mode of the Aurora DB cluster. When set to limitless, the cluster operates as an Aurora Limitless Database. When set to standard (the default), the cluster uses normal DB instance creation.

Valid for: Aurora DB clusters only

You can't modify this setting after you create the DB cluster.

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "EnableLocalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB cluster's server certificate.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide.

Valid for Cluster Type: Multi-AZ DB clusters

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB cluster.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB cluster.

Valid Values:

  • cluster-auto-backup - The DB cluster's automated backup.

" + } + }, + "MasterUserAuthenticationType": { + "target": "com.amazonaws.rds#MasterUserAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication type for the master user. With IAM master user authentication, you can configure the master DB user with IAM database authentication when you create a DB cluster.

You can specify one of the following values:

  • password - Use standard database authentication with a password.

  • iam-db-auth - Use IAM database authentication for the master user.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL engines.

" + } + }, + "WithExpressConfiguration": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies to create an Aurora DB Cluster with express configuration in seconds. Express configuration provides a cluster with a writer instance and feature specific values set to all other input parameters of this API.

Valid for Cluster Type: Aurora DB clusters

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBClusterAssociatedRoles", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services Identity and Access Management (IAM) roles to associate with the DB cluster. Each role grants the DB cluster permission to access other Amazon Web Services on your behalf. For each role, specify a role ARN and, optionally, the feature name (such as s3Import, s3Export, or Lambda).

Valid for Cluster Type: Aurora DB clusters only

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBClusterParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBClusterParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBClusterParameterGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster.

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a DB cluster parameter group", + "documentation": "The following example creates a DB cluster parameter group.", + "input": { + "DBClusterParameterGroupName": "mydbclusterparametergroup", + "DBParameterGroupFamily": "aurora5.6", + "Description": "My new cluster parameter group" + }, + "output": { + "DBClusterParameterGroup": { + "DBClusterParameterGroupName": "mydbclusterparametergroup", + "DBParameterGroupFamily": "aurora5.6", + "Description": "My new cluster parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBClusterParameterGroupMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster parameter group.

Constraints:

  • Must not match the name of an existing DB cluster parameter group.

This value is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.

Aurora MySQL

Example: aurora-mysql5.7, aurora-mysql8.0

Aurora PostgreSQL

Example: aurora-postgresql14

RDS for MySQL

Example: mysql8.0

RDS for PostgreSQL

Example: postgres13

To list all of the available parameter group families for a DB engine, use the following command:

aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine <engine>

For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:

aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql

The output contains duplicates.

The following are the valid DB engine values:

  • aurora-mysql

  • aurora-postgresql

  • mysql

  • postgres

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description for the DB cluster parameter group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB cluster parameter group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBClusterParameterGroupResult": { + "type": "structure", + "members": { + "DBClusterParameterGroup": { + "target": "com.amazonaws.rds#DBClusterParameterGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBClusterSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBClusterSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBClusterSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a snapshot of a DB cluster.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a DB cluster snapshot", + "documentation": "The following example creates a DB cluster snapshot.", + "input": { + "DBClusterSnapshotIdentifier": "mydbcluster", + "DBClusterIdentifier": "mydbclustersnapshot" + }, + "output": { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "mydbclustersnapshot", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-18T21:21:00.469Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 1, + "Status": "creating", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 0, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:mydbclustersnapshot", + "IAMDatabaseAuthenticationEnabled": false + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBClusterSnapshotMessage": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1-snapshot1

", + "smithy.api#required": {} + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster to create a snapshot for. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DBCluster.

Example: my-cluster1

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

The tags to be assigned to the DB cluster snapshot.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBClusterSnapshotResult": { + "type": "structure", + "members": { + "DBClusterSnapshot": { + "target": "com.amazonaws.rds#DBClusterSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB instance.

The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster. For an Aurora DB cluster, you can call this operation multiple times to add more than one DB instance to the cluster.

For more information about creating an RDS DB instance, see Creating an Amazon RDS DB instance in the Amazon RDS User Guide.

For more information about creating a DB instance in an Aurora DB cluster, see Creating an Amazon Aurora DB cluster in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a DB instance", + "documentation": "The following example uses the required options to launch a new DB instance.", + "input": { + "DBInstanceIdentifier": "test-mysql-instance", + "AllocatedStorage": 20, + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "MasterUsername": "admin", + "MasterUserPassword": "secret99" + }, + "output": { + "DBInstance": { + "DBInstanceIdentifier": "test-mysql-instance", + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "DBInstanceStatus": "creating", + "MasterUsername": "admin", + "AllocatedStorage": 20, + "PreferredBackupWindow": "12:55-13:25", + "BackupRetentionPeriod": 1, + "DBSecurityGroups": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-12345abc", + "Status": "active" + } + ], + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.mysql5.7", + "ParameterApplyStatus": "in-sync" + } + ], + "DBSubnetGroup": { + "DBSubnetGroupName": "default", + "DBSubnetGroupDescription": "default", + "VpcId": "vpc-2ff2ff2f", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-########", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ] + }, + "PreferredMaintenanceWindow": "sun:08:07-sun:08:37", + "PendingModifiedValues": { + "MasterUserPassword": "****" + }, + "MultiAZ": false, + "EngineVersion": "5.7.22", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "general-public-license", + "OptionGroupMemberships": [ + { + "OptionGroupName": "default:mysql-5-7", + "Status": "in-sync" + } + ], + "PubliclyAccessible": true, + "StorageType": "gp2", + "DbInstancePort": 0, + "StorageEncrypted": false, + "DbiResourceId": "db-5555EXAMPLE44444444EXAMPLE", + "CACertificateIdentifier": "rds-ca-2019", + "DomainMemberships": [], + "CopyTagsToSnapshot": false, + "MonitoringInterval": 0, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:test-mysql-instance", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBInstanceMessage": { + "type": "structure", + "members": { + "DBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The meaning of this parameter differs according to the database engine you use.

Amazon Aurora MySQL

The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster.

Constraints:

  • Must contain 1 to 64 alphanumeric characters.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the database engine.

Amazon Aurora PostgreSQL

The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. A database named postgres is always created. If this parameter is specified, an additional database with this name is created.

Constraints:

  • It must contain 1 to 63 alphanumeric characters.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0 to 9).

  • Can't be a word reserved by the database engine.

Amazon RDS Custom for Oracle

The Oracle System ID (SID) of the created RDS Custom DB instance. If you don't specify a value, the default value is ORCL for non-CDBs and RDSCDB for CDBs.

Default: ORCL

Constraints:

  • Must contain 1 to 8 alphanumeric characters.

  • Must contain a letter.

  • Can't be a word reserved by the database engine.

Amazon RDS Custom for SQL Server

Not applicable. Must be null.

RDS for Db2

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance. In some cases, we recommend that you don't add a database name. For more information, see Additional considerations in the Amazon RDS User Guide.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine.

RDS for MariaDB

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine.

RDS for MySQL

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine.

RDS for Oracle

The Oracle System ID (SID) of the created DB instance. If you don't specify a value, the default value is ORCL. You can't specify the string null, or any other reserved word, for DBName.

Default: ORCL

Constraints:

  • Can't be longer than 8 characters.

RDS for PostgreSQL

The name of the database to create when the DB instance is created. A database named postgres is always created. If this parameter is specified, an additional database with this name is created.

Constraints:

  • Must contain 1 to 63 letters, numbers, or underscores.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine.

RDS for SQL Server

Not applicable. Must be null.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for this DB instance. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "smithy.api#required": {} + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to allocate for the DB instance.

This setting doesn't apply to Amazon Aurora DB instances. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.

Amazon RDS Custom

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

RDS for Db2

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 100 to 65536.

RDS for MariaDB

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

RDS for MySQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

RDS for Oracle

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 10 to 3072.

RDS for PostgreSQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1, io2): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

RDS for SQL Server

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3):

    • Enterprise and Standard editions: Must be an integer from 20 to 16384.

    • Web and Express editions: Must be an integer from 20 to 16384.

  • Provisioned IOPS storage (io1, io2):

    • Enterprise and Standard editions: Must be an integer from 100 to 16384.

    • Web and Express editions: Must be an integer from 100 to 16384.

  • Magnetic storage (standard):

    • Enterprise and Standard editions: Must be an integer from 20 to 1024.

    • Web and Express editions: Must be an integer from 20 to 1024.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The compute and memory capacity of the DB instance, for example db.m5.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB instance classes in the Amazon RDS User Guide or Aurora DB instance classes in the Amazon Aurora User Guide.

", + "smithy.api#required": {} + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine to use for this DB instance.

Not every database engine is available in every Amazon Web Services Region.

Valid Values:

  • aurora-mysql (for Aurora MySQL DB instances)

  • aurora-postgresql (for Aurora PostgreSQL DB instances)

  • custom-oracle-ee (for RDS Custom for Oracle DB instances)

  • custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances)

  • custom-oracle-se2 (for RDS Custom for Oracle DB instances)

  • custom-oracle-se2-cdb (for RDS Custom for Oracle DB instances)

  • custom-sqlserver-ee (for RDS Custom for SQL Server DB instances)

  • custom-sqlserver-se (for RDS Custom for SQL Server DB instances)

  • custom-sqlserver-web (for RDS Custom for SQL Server DB instances)

  • custom-sqlserver-dev (for RDS Custom for SQL Server DB instances)

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-dev-ee

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "smithy.api#required": {} + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name for the master user.

This setting doesn't apply to Amazon Aurora DB instances. The name for the master user is managed by the DB cluster.

This setting is required for RDS DB instances.

Constraints:

  • Must be 1 to 16 letters, numbers, or underscores.

  • First character must be a letter.

  • Can't be a reserved word for the chosen database engine.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the master user.

This setting doesn't apply to Amazon Aurora DB instances. The password for the master user is managed by the DB cluster.

Constraints:

  • Can't be specified if ManageMasterUserPassword is turned on.

  • Can include any printable ASCII character except \"/\", \"\"\", or \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the \"'\" (single quotes) character.

Length Constraints:

  • RDS for Db2 - Must contain from 8 to 255 characters.

  • RDS for MariaDB - Must contain from 8 to 41 characters.

  • RDS for Microsoft SQL Server - Must contain from 8 to 128 characters.

  • RDS for MySQL - Must contain from 8 to 41 characters.

  • RDS for Oracle - Must contain from 8 to 30 characters.

  • RDS for PostgreSQL - Must contain from 8 to 128 characters.

" + } + }, + "DBSecurityGroups": { + "target": "com.amazonaws.rds#DBSecurityGroupNameList", + "traits": { + "smithy.api#documentation": "

A list of DB security groups to associate with this DB instance.

This setting applies to the legacy EC2-Classic platform, which is no longer used to create new DB instances. Use the VpcSecurityGroupIds setting instead.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of Amazon EC2 VPC security groups to associate with this DB instance.

This setting doesn't apply to Amazon Aurora DB instances. The associated list of EC2 VPC security groups is managed by the DB cluster.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) where the database will be created. For information on Amazon Web Services Regions and Availability Zones, see Regions and Availability Zones.

For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one.

Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.

Constraints:

  • The AvailabilityZone parameter can't be specified if the DB instance is a Multi-AZ deployment.

  • The specified Availability Zone must be in the same Amazon Web Services Region as the current endpoint.

Example: us-east-1d

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A DB subnet group to associate with this DB instance.

Constraints:

  • Must match the name of an existing DB subnet group.

Example: mydbsubnetgroup

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time range each week during which system maintenance can occur. For more information, see Amazon RDS Maintenance Window in the Amazon RDS User Guide.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • The day values must be mon | tue | wed | thu | fri | sat | sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred backup window.

  • Must be at least 30 minutes.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to associate with this DB instance. If you don't specify a value, then Amazon RDS uses the default DB parameter group for the specified DB engine and version.

This setting doesn't apply to RDS Custom DB instances.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

This setting doesn't apply to Amazon Aurora DB instances. The retention period for automated backups is managed by the DB cluster.

Default: 1

Constraints:

  • Must be a value from 0 to 35.

  • Can't be set to 0 if the DB instance is a source to read replicas.

  • Can't be set to 0 for an RDS Custom for Oracle DB instance.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see Backup window in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora DB instances. The daily time range for creating automated backups is managed by the DB cluster.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the database accepts connections.

This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.

Valid Values: 1150-65535

Default:

  • RDS for Db2 - 50000

  • RDS for MariaDB - 3306

  • RDS for Microsoft SQL Server - 1433

  • RDS for MySQL - 3306

  • RDS for Oracle - 1521

  • RDS for PostgreSQL - 5432

Constraints:

  • For RDS for Microsoft SQL Server, the value can't be 1234, 1434, 3260, 3343, 3389, 47001, or 49152-49156.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

This setting doesn't apply to Amazon Aurora because the DB instance Availability Zones (AZs) are managed by the DB cluster.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to use.

This setting doesn't apply to Amazon Aurora DB instances. The version number of the database engine the DB instance uses is managed by the DB cluster.

For a list of valid engine versions, use the DescribeDBEngineVersions operation.

The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region.

Amazon RDS Custom for Oracle

A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string. A valid CEV name is 19.my_cev1. For more information, see Creating an RDS Custom for Oracle DB instance in the Amazon RDS User Guide.

Amazon RDS Custom for SQL Server

See RDS Custom for SQL Server general requirements in the Amazon RDS User Guide.

RDS for Db2

For information, see Db2 on Amazon RDS versions in the Amazon RDS User Guide.

RDS for MariaDB

For information, see MariaDB on Amazon RDS versions in the Amazon RDS User Guide.

RDS for Microsoft SQL Server

For information, see Microsoft SQL Server versions on Amazon RDS in the Amazon RDS User Guide.

RDS for MySQL

For information, see MySQL on Amazon RDS versions in the Amazon RDS User Guide.

RDS for Oracle

For information, see Oracle Database Engine release notes in the Amazon RDS User Guide.

RDS for PostgreSQL

For information, see Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.

If you create an RDS Custom DB instance, you must set AutoMinorVersionUpgrade to false.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for this DB instance.

License models for RDS for Db2 require additional configuration. The bring your own license (BYOL) model requires a custom parameter group and an Amazon Web Services License Manager self-managed license. The Db2 license through Amazon Web Services Marketplace model requires an Amazon Web Services Marketplace subscription. For more information, see Amazon RDS for Db2 licensing options in the Amazon RDS User Guide.

The default for RDS for Db2 is bring-your-own-license.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

Valid Values:

  • RDS for Db2 - bring-your-own-license | marketplace-license

  • RDS for MariaDB - general-public-license

  • RDS for Microsoft SQL Server - license-included | bring-your-own-media

  • RDS for MySQL - general-public-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for PostgreSQL - postgresql-license

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB instance. For information about valid IOPS values, see Amazon RDS DB instance storage in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora DB instances. Storage is managed by the DB cluster.

Constraints:

  • For RDS for Db2, MariaDB, MySQL, Oracle, and PostgreSQL - Must be a multiple between .5 and 50 of the storage amount for the DB instance.

  • For RDS for SQL Server - Must be a multiple between 1 and 50 of the storage amount for the DB instance.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value, in mebibyte per second (MiBps), for the DB instance.

This setting applies only to the gp3 storage type.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to associate the DB instance with.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance after it is associated with a DB instance.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

For supported engines, the character set (CharacterSet) to associate the DB instance with.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora - The character set is managed by the DB cluster. For more information, see CreateDBCluster.

  • RDS Custom - However, if you need to change the character set, you can change it on the database itself.

" + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the NCHAR character set for the Oracle DB instance.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB instance is controlled by its security group settings.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

The default behavior when PubliclyAccessible is not specified depends on whether a DBSubnetGroup is specified.

If DBSubnetGroup isn't specified, PubliclyAccessible defaults to false for Aurora instances and true for non-Aurora instances.

If DBSubnetGroup is specified, PubliclyAccessible defaults to false unless the value of DBSubnetGroup is default, in which case PubliclyAccessible defaults to true.

If PubliclyAccessible is true and the VPC that the DBSubnetGroup is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB instance.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the DB cluster that this DB instance will belong to.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the DB instance.

If you specify io1, io2, or gp3, you must also include a value for the Iops parameter.

This setting doesn't apply to Amazon Aurora DB instances. Storage is managed by the DB cluster.

Valid Values: gp2 | gp3 | io1 | io2 | standard

Default: io1, if the Iops parameter is specified. Otherwise, gp3.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "TdeCredentialPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the given ARN from the key store in order to access the device.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifes whether the DB instance is encrypted. By default, it isn't encrypted.

For RDS Custom DB instances, either enable this setting or leave it unset. Otherwise, Amazon RDS reports an error.

This setting doesn't apply to Amazon Aurora DB instances. The encryption for DB instances is managed by the DB cluster.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

This setting doesn't apply to Amazon Aurora DB instances. The Amazon Web Services KMS key identifier is managed by the DB cluster. For more information, see CreateDBCluster.

If StorageEncrypted is enabled, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

For Amazon RDS Custom, a KMS key is required for DB instances. For most RDS engines, if you leave this parameter empty while enabling StorageEncrypted, the engine uses the default KMS key. However, RDS Custom doesn't use the default key when this parameter is empty. You must explicitly specify a key.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to create the DB instance in. Currently, you can create only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (The domain is managed by the DB cluster.)

  • RDS Custom

" + } + }, + "DomainFqdn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of an Active Directory domain.

Constraints:

  • Can't be longer than 64 characters.

Example: mymanagedADtest.mymanagedAD.mydomain

" + } + }, + "DomainOu": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for your DB instance to join.

Constraints:

  • Must be in the distinguished name format.

  • Can't be longer than 64 characters.

Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain

" + } + }, + "DomainAuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456

" + } + }, + "DomainDnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

Constraints:

  • Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list.

Example: 123.124.125.126,234.235.236.237

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.

This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, then you must set MonitoringInterval to a value other than 0.

This setting doesn't apply to RDS Custom DB instances.

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see Setting Up and Enabling Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (The domain is managed by the DB cluster.)

  • RDS Custom

" + } + }, + "PromotionTier": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The order of priority in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

This setting doesn't apply to RDS Custom DB instances.

Default: 1

Valid Values: 0 - 15

" + } + }, + "Timezone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time zone of the DB instance. The time zone parameter is currently supported only by RDS for Db2 and RDS for SQL Server.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (Mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster.)

  • RDS Custom

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of Database Insights to enable for the DB instance.

Aurora DB instances inherit this value from the DB cluster, so you can't change this value.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Performance Insights for the DB instance. For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

This setting doesn't apply to RDS Custom DB instances.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error.

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of log types to enable for exporting to CloudWatch Logs. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (CloudWatch Logs exports are managed by the DB cluster.)

  • RDS Custom

The following values are valid for each DB engine:

  • RDS for Db2 - diag.log | notify.log | iam-db-auth-error

  • RDS for MariaDB - audit | error | general | slowquery | iam-db-auth-error

  • RDS for Microsoft SQL Server - agent | error

  • RDS for MySQL - audit | error | general | slowquery | iam-db-auth-error

  • RDS for Oracle - alert | audit | listener | trace | oemagent

  • RDS for PostgreSQL - postgresql | upgrade | iam-db-auth-error

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see CreateDBCluster. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (Storage is managed by the DB cluster.)

  • RDS Custom

" + } + }, + "EnableCustomerOwnedIp": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

Valid Values: IPV4 | DUAL

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The location for storing automated backups and manual snapshots.

Valid Values:

  • local (Dedicated Local Zone)

  • outposts (Amazon Web Services Outposts)

  • region (Amazon Web Services Region)

Default: region

For more information, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "CustomIamInstanceProfile": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.

This setting is required for RDS Custom.

Constraints:

  • The profile must exist in your account.

  • The profile must have an IAM role that Amazon EC2 has permissions to assume.

  • The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom.

For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide.

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term \"Oracle database instance\" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to RDSCDB. The Oracle SID is also the name of your CDB.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to use the multi-tenant configuration or the single-tenant configuration (default). This parameter only applies to RDS for Oracle container database (CDB) engines.

Note the following restrictions:

  • The DB engine that you specify in the request must support the multi-tenant configuration. If you attempt to enable the multi-tenant configuration on a DB engine that doesn't support it, the request fails.

  • If you specify the multi-tenant configuration when you create your DB instance, you can't later modify this DB instance to use the single-tenant configuration.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB instance.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB instance into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, creating the DB instance will fail if the DB major version is past its end of standard support date.

This setting applies only to RDS for MySQL and RDS for PostgreSQL. For Amazon Aurora DB instances, the engine lifecycle support is managed by the DB cluster.

You can use this setting to enroll your DB instance into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB instance past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to create for the DB instance. You can create up to three additional storage volumes using the names rdsdbdata2, rdsdbdata3, and rdsdbdata4. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to associate with this DB instance. You can specify the identifier, which has the prefix dbcr-, or the reservation name. When you specify this parameter, the DB instance uses reserved capacity from the specified reservation.

If you specify AvailabilityZone, Amazon RDS places the DB instance in that Availability Zone, and the reservation must cover it.

Constraints:

  • The reservation must reserve capacity for the DB instance class and the database engine of the DB instance.

  • If the reservation reserves capacity for a specific license model, the license model of the DB instance must match it.

  • The reservation must be in the active state, and it must not be past its end date.

  • If you specify AvailabilityZone, it must be one of the Availability Zones of the reservation.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones. If the reservation covers more than two Availability Zones, Amazon RDS chooses the two that the DB instance uses.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

" + } + }, + "MasterUserAuthenticationType": { + "target": "com.amazonaws.rds#MasterUserAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication type for the master user. With IAM master user authentication, you can configure the master DB user with IAM database authentication when you create a DB instance.

You can specify one of the following values:

  • password - Use standard database authentication with a password.

  • iam-db-auth - Use IAM database authentication for the master user.

This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL engines.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBInstanceReadReplica": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBInstanceReadReplicaMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBInstanceReadReplicaResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotAllowedFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB instance that acts as a read replica for an existing source DB instance or Multi-AZ DB cluster. You can create a read replica for a DB instance running Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server. You can create a read replica for a Multi-AZ DB cluster running MySQL or PostgreSQL. For more information, see Working with read replicas and Migrating from a Multi-AZ DB cluster to a DB instance using a read replica in the Amazon RDS User Guide.

Amazon Aurora doesn't support this operation. To create a DB instance for an Aurora DB cluster, use the CreateDBInstance operation.

RDS creates read replicas with backups disabled. All other attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance or cluster, except as specified.

Your source DB instance or cluster must have backup retention enabled.

", + "smithy.api#examples": [ + { + "title": "To create a DB instance read replica", + "documentation": "This example creates a read replica of an existing DB instance named test-instance. The read replica is named test-instance-repl.", + "input": { + "DBInstanceIdentifier": "test-instance-repl", + "SourceDBInstanceIdentifier": "test-instance" + }, + "output": { + "DBInstance": { + "IAMDatabaseAuthenticationEnabled": false, + "MonitoringInterval": 0, + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance-repl", + "ReadReplicaSourceDBInstanceIdentifier": "test-instance", + "DBInstanceIdentifier": "test-instance-repl" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBInstanceReadReplicaMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "SourceDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have up to 15 read replicas, except for the following engines:

  • Db2 - Can have up to three replicas.

  • Oracle - Can have up to five read replicas.

  • SQL Server - Can have up to five read replicas.

Constraints:

  • Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server DB instance.

  • Can't be specified if the SourceDBClusterIdentifier parameter is also specified.

  • For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User Guide.

  • For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide.

  • The specified DB instance must have automatic backups enabled, that is, its backup retention period must be greater than 0.

  • If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL Server or RDS Custom, which don't support cross-Region replicas.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of the read replica, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: Inherits the value from the source DB instance.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) where the read replica will be created.

Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.

Example: us-east-1d

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number that the DB instance uses for connections.

Valid Values: 1150-65535

Default: Inherits the value from the source DB instance.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the read replica is in a Multi-AZ deployment.

You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance is independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB cluster.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to automatically apply minor engine upgrades to the read replica during the maintenance window.

This setting doesn't apply to RDS Custom DB instances.

Default: Inherits the value from the source DB instance.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB instance.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the storage throughput value for the read replica.

This setting doesn't apply to RDS Custom or Amazon Aurora DB instances.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to associate the DB instance with. If not specified, RDS uses the option group associated with the source DB instance or cluster.

For SQL Server, you must use the option group associated with the source.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to associate with this read replica DB instance.

For the Db2 DB engine, if your source DB instance uses the bring your own license (BYOL) model, then a custom parameter group must be associated with the replica. For a same Amazon Web Services Region replica, if you don't specify a custom parameter group, Amazon RDS associates the custom parameter group associated with the source DB instance. For a cross-Region replica, you must specify a custom parameter group. This custom parameter group must include your IBM Site ID and IBM Customer ID. For more information, see IBM IDs for bring your own license (BYOL) for Db2.

For Single-AZ or Multi-AZ DB instance read replica instances, if you don't specify a value for DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of the source DB instance for a same Region read replica, or the default DBParameterGroup for the specified DB engine for a cross-Region read replica.

For Multi-AZ DB cluster same Region read replica instances, if you don't specify a value for DBParameterGroupName, then Amazon RDS uses the default DBParameterGroup.

Specifying a parameter group for this operation is only supported for MySQL DB instances for cross-Region read replicas, for Multi-AZ DB cluster read replica instances, for Db2 DB instances, and for Oracle DB instances. It isn't supported for MySQL DB instances for same Region read replicas or for RDS Custom.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC.

Constraints:

  • If supplied, must match the name of an existing DB subnet group.

  • The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is running.

  • All read replicas in one Amazon Web Services Region that are created from the same source DB instance must either:

    • Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC.

    • Not specify a DB subnet group. All these read replicas are created outside of any VPC.

Example: mydbsubnetgroup

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of Amazon EC2 VPC security groups to associate with the read replica.

This setting doesn't apply to RDS Custom DB instances.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the read replica.

If you specify io1, io2, or gp3, you must also include a value for the Iops parameter.

Valid Values: gp2 | gp3 | io1 | io2 | standard

Default: io1 if the Iops parameter is specified. Otherwise, gp3.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, tags aren't copied.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read replica. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.

If MonitoringRoleArn is specified, then you must set MonitoringInterval to a value other than 0.

This setting doesn't apply to RDS Custom DB instances.

Valid Values: 0, 1, 5, 10, 15, 30, 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted read replica.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

For a read replica in the same Amazon Web Services Region as the source DB instance or Multi-AZ DB cluster, specifying this parameter is optional. If you specify a KMS key identifier, the read replica is encrypted with that KMS key, which can be different from the KMS key of the source.

If you don't specify a value for this parameter, the read replica is encrypted with the same KMS key as the source DB instance or Multi-AZ DB cluster.

If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon Web Services Region.

You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster.

This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica.

" + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. It's ignored in other Amazon Web Services Regions.

This setting applies only when replicating from a source DB instance. Source DB clusters aren't supported in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions.

You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read replica in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica operation is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information about IAM database authentication, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of Database Insights to enable for the read replica.

This setting isn't supported.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Performance Insights for the read replica.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

This setting doesn't apply to RDS Custom DB instances.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error.

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "UseDefaultProcessorFeatures": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance class of the DB instance uses its default processor features.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainFqdn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of an Active Directory domain.

Constraints:

  • Can't be longer than 64 characters.

Example: mymanagedADtest.mymanagedAD.mydomain

" + } + }, + "DomainOu": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for your DB instance to join.

Constraints:

  • Must be in the distinguished name format.

  • Can't be longer than 64 characters.

Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain

" + } + }, + "DomainAuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456

" + } + }, + "DomainDnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

Constraints:

  • Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list.

Example: 123.124.125.126,234.235.236.237

" + } + }, + "ReplicaMode": { + "target": "com.amazonaws.rds#ReplicaMode", + "traits": { + "smithy.api#documentation": "

The open mode of the replica database.

This parameter is only supported for Db2 DB instances and Oracle DB instances.

Db2

Standby DB replicas are included in Db2 Advanced Edition (AE), Db2 Community Edition (CE), and Db2 Standard Edition (SE). The main use case for standby replicas is cross-Region disaster recovery. Because it doesn't accept user connections, a standby replica can't serve a read-only workload.

You can create a combination of standby and read-only DB replicas for the same primary DB instance. For more information, see Working with replicas for Amazon RDS for Db2 in the Amazon RDS User Guide.

To create standby DB replicas for RDS for Db2, set this parameter to mounted.

Oracle

Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload.

You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more information, see Working with read replicas for Amazon RDS for Oracle in the Amazon RDS User Guide.

For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by default. After replica creation, you can manage the open mode manually.

" + } + }, + "EnableCustomerOwnedIp": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts read replica.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the read replica from outside of its virtual private cloud (VPC) on your local network.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for read replica. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The location where RDS stores automated backups and manual snapshots.

Valid Values:

  • local for Dedicated Local Zones

  • region for Amazon Web Services Region

" + } + }, + "CustomIamInstanceProfile": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:

  • The profile must exist in your account.

  • The profile must have an IAM role that Amazon EC2 has permissions to assume.

  • The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom.

For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide.

This setting is required for RDS Custom DB instances.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules specified in CreateDBInstance.

This setting isn't valid for RDS for SQL Server.

Be sure to allocate enough storage for your read replica so that the create operation can succeed. You can also allocate additional storage for future growth.

" + } + }, + "SourceDBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.

Constraints:

  • Must be the identifier of an existing Multi-AZ DB cluster.

  • Can't be specified if the SourceDBInstanceIdentifier parameter is also specified.

  • The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be greater than 0.

  • The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region replication isn't supported.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "UpgradeStorageConfig": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Whether to upgrade the storage file system configuration on the read replica. This option migrates the read replica from the old storage file system layout to the preferred layout.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the read replica's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to create for the DB instance. You can create up to three additional storage volumes using the names rdsdbdata2, rdsdbdata3, and rdsdbdata4. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to associate with this read replica. You can specify the identifier, which has the prefix dbcr-, or the reservation name. When you specify this parameter, the read replica uses reserved capacity from the specified reservation. A read replica uses one unit of reserved capacity, in the same way as any other DB instance.

If you specify AvailabilityZone, Amazon RDS places the DB instance in that Availability Zone, and the reservation must cover it.

Constraints:

  • The reservation must reserve capacity for the DB instance class and the database engine of the DB instance.

  • If the reservation reserves capacity for a specific license model, the license model of the source DB instance must match it. A read replica inherits its license model from the source DB instance.

  • The reservation must be in the active state, and it must not be past its end date.

  • If you specify AvailabilityZone, it must be one of the Availability Zones of the reservation.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones. If the reservation covers more than two Availability Zones, Amazon RDS chooses the two that the DB instance uses.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBInstanceReadReplicaResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBParameterGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB parameter group.

A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBParameterGroup. Once you've created a DB parameter group, you need to associate it with your DB instance using ModifyDBInstance. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect.

This command doesn't apply to RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To create a DB parameter group", + "documentation": "The following example creates a DB parameter group.", + "input": { + "DBParameterGroupName": "mydbparametergroup", + "DBParameterGroupFamily": "MySQL8.0", + "Description": "My new parameter group" + }, + "output": { + "DBParameterGroup": { + "DBParameterGroupName": "mydbparametergroup", + "DBParameterGroupFamily": "mysql8.0", + "Description": "My new parameter group", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:mydbparametergroup" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBParameterGroupMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.

To list all of the available parameter group families for a DB engine, use the following command:

aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine <engine>

For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:

aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql

The output contains duplicates.

The following are the valid DB engine values:

  • aurora-mysql

  • aurora-postgresql

  • db2-ae

  • db2-ce

  • db2-se

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description for the DB parameter group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB parameter group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBParameterGroupResult": { + "type": "structure", + "members": { + "DBParameterGroup": { + "target": "com.amazonaws.rds#DBParameterGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBProxy": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBProxyRequest" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBProxyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBProxyQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB proxy.

" + } + }, + "com.amazonaws.rds#CreateDBProxyEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBProxyEndpointRequest" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBProxyEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyEndpointAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBProxyEndpointQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a DBProxyEndpoint. Only applies to proxies that are associated with Aurora DB clusters. You can use DB proxy endpoints to specify read/write or read-only access to the DB cluster. You can also use DB proxy endpoints to access a DB proxy through a different VPC than the proxy's default VPC.

" + } + }, + "com.amazonaws.rds#CreateDBProxyEndpointRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB proxy associated with the DB proxy endpoint that you create.

", + "smithy.api#required": {} + } + }, + "DBProxyEndpointName": { + "target": "com.amazonaws.rds#DBProxyEndpointName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB proxy endpoint to create.

", + "smithy.api#required": {} + } + }, + "VpcSubnetIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The VPC subnet IDs for the DB proxy endpoint that you create. You can specify a different set of subnet IDs than for the original DB proxy.

", + "smithy.api#required": {} + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The VPC security group IDs for the DB proxy endpoint that you create. You can specify a different set of security group IDs than for the original DB proxy. The default is the default security group for the VPC.

" + } + }, + "TargetRole": { + "target": "com.amazonaws.rds#DBProxyEndpointTargetRole", + "traits": { + "smithy.api#documentation": "

The role of the DB proxy endpoint. The role determines whether the endpoint can be used for read/write or only read operations. The default is READ_WRITE. The only role that proxies for RDS for Microsoft SQL Server support is READ_WRITE.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "EndpointNetworkType": { + "target": "com.amazonaws.rds#EndpointNetworkType", + "traits": { + "smithy.api#documentation": "

The network type of the DB proxy endpoint. The network type determines the IP version that the proxy endpoint supports.

Valid values:

  • IPV4 - The proxy endpoint supports IPv4 only.

  • IPV6 - The proxy endpoint supports IPv6 only.

  • DUAL - The proxy endpoint supports both IPv4 and IPv6.

Default: IPV4

Constraints:

  • If you specify IPV6 or DUAL, the VPC and all subnets must have an IPv6 CIDR block.

  • If you specify IPV6 or DUAL, the VPC tenancy cannot be dedicated.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBProxyEndpointResponse": { + "type": "structure", + "members": { + "DBProxyEndpoint": { + "target": "com.amazonaws.rds#DBProxyEndpoint", + "traits": { + "smithy.api#documentation": "

The DBProxyEndpoint object that is created by the API operation. The DB proxy endpoint that you create might provide capabilities such as read/write or read-only operations, or using a different VPC than the proxy's default VPC.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBProxyRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

", + "smithy.api#required": {} + } + }, + "EngineFamily": { + "target": "com.amazonaws.rds#EngineFamily", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify MYSQL. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify POSTGRESQL. For RDS for Microsoft SQL Server, specify SQLSERVER.

", + "smithy.api#required": {} + } + }, + "DefaultAuthScheme": { + "target": "com.amazonaws.rds#DefaultAuthScheme", + "traits": { + "smithy.api#documentation": "

The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. Valid values are NONE and IAM_AUTH. When set to IAM_AUTH, the proxy uses end-to-end IAM authentication to connect to the database. If you don't specify DefaultAuthScheme or specify this parameter as NONE, you must specify the Auth option.

" + } + }, + "Auth": { + "target": "com.amazonaws.rds#UserAuthConfigList", + "traits": { + "smithy.api#documentation": "

The authorization mechanism that the proxy uses.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#Arn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services Secrets Manager.

", + "smithy.api#required": {} + } + }, + "VpcSubnetIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more VPC subnet IDs to associate with the new proxy.

", + "smithy.api#required": {} + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

One or more VPC security group IDs to associate with the new proxy.

" + } + }, + "RequireTLS": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.

" + } + }, + "IdleClientTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.

" + } + }, + "DebugLogging": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the proxy logs detailed connection and query information. When you enable DebugLogging, the proxy captures connection details and connection pool behavior from your queries. Debug logging increases CloudWatch costs and can impact proxy performance. Enable this option only when you need to troubleshoot connection or performance issues.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy.

" + } + }, + "EndpointNetworkType": { + "target": "com.amazonaws.rds#EndpointNetworkType", + "traits": { + "smithy.api#documentation": "

The network type of the DB proxy endpoint. The network type determines the IP version that the proxy endpoint supports.

Valid values:

  • IPV4 - The proxy endpoint supports IPv4 only.

  • IPV6 - The proxy endpoint supports IPv6 only.

  • DUAL - The proxy endpoint supports both IPv4 and IPv6.

Default: IPV4

Constraints:

  • If you specify IPV6 or DUAL, the VPC and all subnets must have an IPv6 CIDR block.

  • If you specify IPV6 or DUAL, the VPC tenancy cannot be dedicated.

" + } + }, + "TargetConnectionNetworkType": { + "target": "com.amazonaws.rds#TargetConnectionNetworkType", + "traits": { + "smithy.api#documentation": "

The network type that the proxy uses to connect to the target database. The network type determines the IP version that the proxy uses for connections to the database.

Valid values:

  • IPV4 - The proxy connects to the database using IPv4 only.

  • IPV6 - The proxy connects to the database using IPv6 only.

Default: IPV4

Constraints:

  • If you specify IPV6, the database must support dual-stack mode. RDS doesn't support IPv6-only databases.

  • All targets registered with the proxy must be compatible with the specified network type.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBProxyResponse": { + "type": "structure", + "members": { + "DBProxy": { + "target": "com.amazonaws.rds#DBProxy", + "traits": { + "smithy.api#documentation": "

The DBProxy structure corresponding to the new proxy.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBSecurityGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBSecurityGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBSecurityGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSecurityGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB security group. DB security groups control access to a DB instance.

A DB security group controls access to EC2-Classic DB instances that are not in a VPC.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To create a DB security group.", + "documentation": "This example creates a DB security group.", + "input": { + "DBSecurityGroupName": "mydbsecuritygroup", + "DBSecurityGroupDescription": "My DB security group" + }, + "output": { + "DBSecurityGroup": {} + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBSecurityGroupMessage": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name for the DB security group. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

Example: mysecuritygroup

", + "smithy.api#required": {} + } + }, + "DBSecurityGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description for the DB security group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB security group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBSecurityGroupResult": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "target": "com.amazonaws.rds#DBSecurityGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBShardGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBShardGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBShardGroup" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#MaxDBShardGroupLimitReached" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#UnsupportedDBEngineVersionFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

Valid for: Aurora DB clusters only

" + } + }, + "com.amazonaws.rds#CreateDBShardGroupMessage": { + "type": "structure", + "members": { + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB shard group.

", + "smithy.api#required": {} + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the primary DB cluster for the DB shard group.

", + "smithy.api#required": {} + } + }, + "ComputeRedundancy": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to create standby standby DB data access shard for the DB shard group. Valid values are the following:

  • 0 - Creates a DB shard group without a standby DB data access shard. This is the default value.

  • 1 - Creates a DB shard group with a standby DB data access shard in a different Availability Zone (AZ).

  • 2 - Creates a DB shard group with two standby DB data access shard in two different AZs.

" + } + }, + "MaxACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

", + "smithy.api#required": {} + } + }, + "MinACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum capacity of the DB shard group in Aurora capacity units (ACUs).

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB shard group is publicly accessible.

When the DB shard group is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB shard group's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB shard group's VPC. Access to the DB shard group is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB shard group doesn't permit it.

When the DB shard group isn't publicly accessible, it is an internal DB shard group with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether DBSubnetGroupName is specified.

If DBSubnetGroupName isn't specified, and PubliclyAccessible isn't specified, the following applies:

  • If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB shard group is private.

  • If the default VPC in the target Region has an internet gateway attached to it, the DB shard group is public.

If DBSubnetGroupName is specified, and PubliclyAccessible isn't specified, the following applies:

  • If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB shard group is private.

  • If the subnets are part of a VPC that has an internet gateway attached to it, the DB shard group is public.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a snapshot of a DB instance. The source DB instance must be in the available or storage-optimization state.

", + "smithy.api#examples": [ + { + "title": "To create a DB snapshot", + "documentation": "The following example creates a DB snapshot.", + "input": { + "DBSnapshotIdentifier": "database-mysql", + "DBInstanceIdentifier": "mydbsnapshot" + }, + "output": { + "DBSnapshot": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "database-mysql", + "Engine": "mysql", + "AllocatedStorage": 100, + "Status": "creating", + "Port": 3306, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "MasterUsername": "admin", + "EngineVersion": "8.0.32", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "Iops": 1000, + "OptionGroupName": "default:mysql-8-0", + "PercentProgress": 0, + "StorageType": "io1", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBSnapshotMessage": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB snapshot.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "smithy.api#required": {} + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB instance that you want to create the snapshot of.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBSnapshotResult": { + "type": "structure", + "members": { + "DBSnapshot": { + "target": "com.amazonaws.rds#DBSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateDBSubnetGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateDBSubnetGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateDBSubnetGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSubnetGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

", + "smithy.api#examples": [ + { + "title": "To create a DB subnet group", + "documentation": "The following example creates a DB subnet group called mysubnetgroup using existing subnets.", + "input": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "test DB subnet group", + "SubnetIds": [ + "subnet-0a1dc4e1a6f123456", + "subnet-070dd7ecb3aaaaaaa", + "subnet-00f5b198bc0abcdef" + ] + }, + "output": { + "DBSubnetGroup": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "test DB subnet group", + "VpcId": "vpc-0f08e7610a1b2c3d4", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-070dd7ecb3aaaaaaa", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-00f5b198bc0abcdef", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0a1dc4e1a6f123456", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:0123456789012:subgrp:mysubnetgroup" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateDBSubnetGroupMessage": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints:

  • Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.

  • Must not be default.

  • First character must be a letter.

Example: mydbsubnetgroup

", + "smithy.api#required": {} + } + }, + "DBSubnetGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description for the DB subnet group.

", + "smithy.api#required": {} + } + }, + "SubnetIds": { + "target": "com.amazonaws.rds#SubnetIdentifierList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The EC2 Subnet IDs for the DB subnet group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the DB subnet group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateDBSubnetGroupResult": { + "type": "structure", + "members": { + "DBSubnetGroup": { + "target": "com.amazonaws.rds#DBSubnetGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateEventSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateEventSubscriptionMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateEventSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#EventSubscriptionQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#SNSInvalidTopicFault" + }, + { + "target": "com.amazonaws.rds#SNSNoAuthorizationFault" + }, + { + "target": "com.amazonaws.rds#SNSTopicArnNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SourceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionAlreadyExistFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionCategoryNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) that you want to be notified of and provide a list of RDS sources (SourceIds) that triggers the events. You can also provide a list of event categories (EventCategories) for events that you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIds = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify SourceIds, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the SourceIds, you are notified of events generated from all RDS sources belonging to your customer account.

For more information about subscribing to an event for RDS DB engines, see Subscribing to Amazon RDS event notification in the Amazon RDS User Guide.

For more information about subscribing to an event for Aurora DB engines, see Subscribing to Amazon RDS event notification in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To create an event subscription", + "documentation": "The following example creates a subscription for backup and recovery events for DB instances in the current AWS account. Notifications are sent to an Amazon Simple Notification Service topic.", + "input": { + "SubscriptionName": "my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "SourceType": "db-instance", + "EventCategories": [ + "backup", + "recovery" + ] + }, + "output": { + "EventSubscription": { + "Status": "creating", + "CustSubscriptionId": "my-instance-events", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "CustomerAwsId": "123456789012", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SourceType": "db-instance", + "Enabled": true + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateEventSubscriptionMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the subscription.

Constraints: The name must be less than 255 characters.

", + "smithy.api#required": {} + } + }, + "SnsTopicArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. SNS automatically creates the ARN when you create a topic and subscribe to it.

RDS doesn't support FIFO (first in, first out) topics. For more information, see Message ordering and deduplication (FIFO topics) in the Amazon Simple Notification Service Developer Guide.

", + "smithy.api#required": {} + } + }, + "SourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to db-instance. For RDS Proxy events, specify db-proxy. If this value isn't specified, all events are returned.

Valid Values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment

" + } + }, + "EventCategories": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

A list of event categories for a particular source type (SourceType) that you want to subscribe to. You can see a list of the categories for a given source type in the \"Amazon RDS event categories and event messages\" section of the Amazon RDS User Guide or the Amazon Aurora User Guide . You can also see this list by using the DescribeEventCategories operation.

" + } + }, + "SourceIds": { + "target": "com.amazonaws.rds#SourceIdsList", + "traits": { + "smithy.api#documentation": "

The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If SourceIds are supplied, SourceType must also be provided.

  • If the source type is a DB instance, a DBInstanceIdentifier value must be supplied.

  • If the source type is a DB cluster, a DBClusterIdentifier value must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName value must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName value must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier value must be supplied.

  • If the source type is a DB cluster snapshot, a DBClusterSnapshotIdentifier value must be supplied.

  • If the source type is an RDS Proxy, a DBProxyName value must be supplied.

" + } + }, + "Enabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to activate the subscription. If the event notification subscription isn't activated, the subscription is created but not active.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateEventSubscriptionResult": { + "type": "structure", + "members": { + "EventSubscription": { + "target": "com.amazonaws.rds#EventSubscription" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBShardGroupStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.

You can create a global database that is initially empty, and then create the primary and secondary DB clusters in the global database. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database.

This operation applies only to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To create a global DB cluster", + "documentation": "The following example creates a new Aurora MySQL-compatible global DB cluster.", + "input": { + "GlobalClusterIdentifier": "myglobalcluster", + "Engine": "aurora-mysql" + }, + "output": { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The cluster identifier for this global database cluster. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "SourceDBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) to use as the primary cluster of the global database.

If you provide a value for this parameter, don't specify values for the following settings because Amazon Aurora uses the values from the specified source DB cluster:

  • DatabaseName

  • Engine

  • EngineVersion

  • StorageEncrypted

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine to use for this global database cluster.

Valid Values: aurora-mysql | aurora-postgresql

Constraints:

  • Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the engine of the source DB cluster.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine version to use for this global database cluster.

Constraints:

  • Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the engine version of the source DB cluster.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this global database cluster.

By default, this value is set to open-source-rds-extended-support, which enrolls your global cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, creating the global cluster will fail if the DB major version is past its end of standard support date.

This setting only applies to Aurora PostgreSQL-based global databases.

You can use this setting to enroll your global cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your global cluster past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support with Amazon Aurora in the Amazon Aurora User Guide.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the new global database cluster. The global database can't be deleted when deletion protection is enabled.

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name for your database of up to 64 alphanumeric characters. If you don't specify a name, Amazon Aurora doesn't create a database in the global database cluster.

Constraints:

  • Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the database name from the source DB cluster.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable storage encryption for the new global database cluster.

Constraints:

  • Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the setting from the source DB cluster.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the global cluster.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateIntegrationMessage" + }, + "output": { + "target": "com.amazonaws.rds#Integration" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#IntegrationConflictOperationFault" + }, + { + "target": "com.amazonaws.rds#IntegrationQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a zero-ETL integration with Amazon Redshift.

", + "smithy.api#examples": [ + { + "title": "To create a zero-ETL integration", + "documentation": "The following example creates a zero-ETL integration with Amazon Redshift.", + "input": { + "IntegrationName": "my-integration", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8" + }, + "output": { + "IntegrationName": "my-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", + "Tags": [], + "CreateTime": "2023-12-28T17:20:20.629Z", + "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "Status": "creating" + } + } + ] + } + }, + "com.amazonaws.rds#CreateIntegrationMessage": { + "type": "structure", + "members": { + "SourceArn": { + "target": "com.amazonaws.rds#SourceArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the database to use as the source for replication.

", + "smithy.api#required": {} + } + }, + "TargetArn": { + "target": "com.amazonaws.rds#Arn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ARN of the Redshift data warehouse to use as the target for replication.

", + "smithy.api#required": {} + } + }, + "IntegrationName": { + "target": "com.amazonaws.rds#IntegrationName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the integration.

", + "smithy.api#required": {} + } + }, + "KMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default Amazon Web Services owned key.

" + } + }, + "AdditionalEncryptionContext": { + "target": "com.amazonaws.rds#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

An optional set of non-secret key–value pairs that contains additional contextual information about the data. For more information, see Encryption context in the Amazon Web Services Key Management Service Developer Guide.

You can only include this parameter if you specify the KMSKeyId parameter.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "DataFilter": { + "target": "com.amazonaws.rds#DataFilter", + "traits": { + "smithy.api#documentation": "

Data filtering options for the integration. For more information, see Data filtering for Aurora zero-ETL integrations with Amazon Redshift or Data filtering for Amazon RDS zero-ETL integrations with Amazon Redshift.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "

A description of the integration.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateOptionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateOptionGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateOptionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#OptionGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#OptionGroupQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new option group. You can create up to 20 option groups.

This command doesn't apply to RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To Create an Amazon RDS option group", + "documentation": "The following example creates a new Amazon RDS option group for Oracle MySQL version 8,0 named MyOptionGroup.", + "input": { + "OptionGroupName": "MyOptionGroup", + "EngineName": "mysql", + "MajorEngineVersion": "8.0", + "OptionGroupDescription": "MySQL 8.0 option group" + }, + "output": { + "OptionGroup": { + "OptionGroupName": "myoptiongroup", + "OptionGroupDescription": "MySQL 8.0 option group", + "EngineName": "mysql", + "MajorEngineVersion": "8.0", + "Options": [], + "AllowsVpcAndNonVpcInstanceMemberships": true, + "OptionGroupArn": "arn:aws:rds:us-east-1:123456789012:og:myoptiongroup" + } + } + } + ] + } + }, + "com.amazonaws.rds#CreateOptionGroupMessage": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies the name of the option group to be created.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: myoptiongroup

", + "smithy.api#required": {} + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the engine to associate this option group with.

Valid Values:

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "smithy.api#required": {} + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies the major version of the engine that this option group should be associated with.

", + "smithy.api#required": {} + } + }, + "OptionGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The description of the option group.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

Tags to assign to the option group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateOptionGroupResult": { + "type": "structure", + "members": { + "OptionGroup": { + "target": "com.amazonaws.rds#OptionGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CreateTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a tenant database in a DB instance that uses the multi-tenant configuration. Only RDS for Oracle container database (CDB) instances are supported.

" + } + }, + "com.amazonaws.rds#CreateTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied DB instance identifier. RDS creates your tenant database in this DB instance. This parameter isn't case-sensitive.

", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied name of the tenant database that you want to create in your DB instance. This parameter has the same constraints as DBName in CreateDBInstance.

", + "smithy.api#required": {} + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name for the master user account in your tenant database. RDS creates this user account in the tenant database and grants privileges to the master user. This parameter is case-sensitive.

Constraints:

  • Must be 1 to 16 letters, numbers, or underscores.

  • First character must be a letter.

  • Can't be a reserved word for the chosen database engine.

", + "smithy.api#required": {} + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the master user in your tenant database.

Constraints:

  • Must be 8 to 30 characters.

  • Can include any printable ASCII character except forward slash (/), double quote (\"), at symbol (@), ampersand (&), or single quote (').

  • Can't be specified when ManageMasterUserPassword is enabled.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The character set for your tenant database. If you don't specify a value, the character set name defaults to AL32UTF8.

" + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The NCHAR value for the tenant database.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#CustomAvailabilityZoneNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomAvailabilityZoneNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

CustomAvailabilityZoneId doesn't refer to an existing custom Availability Zone identifier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#CustomDBEngineVersionAMI": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value that indicates the ID of the AMI.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value that indicates the status of a custom engine version (CEV).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A value that indicates the AMI information.

" + } + }, + "com.amazonaws.rds#CustomDBEngineVersionAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomDBEngineVersionAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A CEV with the specified name already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#CustomDBEngineVersionManifest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 51000 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } + }, + "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomDBEngineVersionNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified CEV was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#CustomDBEngineVersionQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomDBEngineVersionQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You have exceeded your CEV quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#CustomEngineName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 35 + }, + "smithy.api#pattern": "^[A-Za-z0-9-]{1,35}$" + } + }, + "com.amazonaws.rds#CustomEngineVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 60 + }, + "smithy.api#pattern": "^[a-z0-9_.-]{1,60}$" + } + }, + "com.amazonaws.rds#CustomEngineVersionStatus": { + "type": "enum", + "members": { + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "inactive": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inactive" + } + }, + "inactive_except_restore": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inactive-except-restore" + } + } + } + }, + "com.amazonaws.rds#DBAndClusterArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 39, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:rds(-[a-z]+)?:[a-z0-9-]*:[0-9]{12}:(cluster|db):[a-zA-Z][a-zA-Z0-9-]{0,62}$" + } + }, + "com.amazonaws.rds#DBCapacityReservation": { + "type": "structure", + "members": { + "DBCapacityReservationName": { + "target": "com.amazonaws.rds#DBCapacityReservationName", + "traits": { + "smithy.api#documentation": "

The name that you specified for the DB capacity reservation.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#DBInstanceClass", + "traits": { + "smithy.api#documentation": "

The DB instance class for the reserved capacity. You specify this value when you create the reservation, and you can't change it afterward.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine for the reserved capacity. You specify this value when you create the reservation, and you can't change it afterward.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model for the reserved capacity. Amazon RDS returns this value only for a reservation that reserves capacity for a specific license model. Amazon RDS doesn't return this value for a reservation whose database engine doesn't support a license model.

A DB instance launches into the reservation only when the license model of the DB instance matches this value. For a reservation that holds no license model, Amazon RDS applies no license model check at launch.

Valid Values:

  • RDS for Microsoft SQL Server Enterprise Edition and Standard Edition - license-included | bring-your-own-media

  • RDS for Microsoft SQL Server Developer Edition - bring-your-own-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for Db2 Standard Edition and Advanced Edition - bring-your-own-license | marketplace-license

For RDS for Db2 Standard Edition and Advanced Edition, a reservation created without a license model holds bring-your-own-license.

" + } + }, + "ReservedCapacityPerAvailabilityZone": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of DB instances that Amazon RDS reserves in each Availability Zone of the reservation. This value matches the CapacityPerAvailabilityZone parameter of the request. The total reserved capacity is this value multiplied by the number of Availability Zones of the reservation.

" + } + }, + "AvailableCapacityPerAvailabilityZoneList": { + "target": "com.amazonaws.rds#AvailableCapacityPerAvailabilityZoneList", + "traits": { + "smithy.api#documentation": "

The unused capacity of the reservation, reported for each Availability Zone of the reservation. Each entry names one Availability Zone, and it reports the number of DB instances that remain available in that Availability Zone.

Amazon RDS reports available capacity only for a reservation that is in the active state and not past its end date. Otherwise, each entry reports an available capacity of 0. A future-dated reservation that hasn't started reports 0, and a reservation that Amazon RDS is modifying reports 0.

A reservation reports the pending state while Amazon RDS modifies it. Therefore, a reservation in the active state that reports no available capacity has no unused capacity.

" + } + }, + "EndDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the reservation expires, in Universal Coordinated Time (UTC). Amazon RDS doesn't return this value if the reservation doesn't expire.

A DB instance that uses the reservation keeps running after the reservation expires. It continues on unreserved capacity, and Amazon RDS doesn't stop it or modify it. However, Amazon RDS no longer reserves capacity for the DB instance. Amazon RDS might later move the DB instance to different hardware, for example during hardware maintenance. That move can fail when the Amazon Web Services Region has insufficient capacity for the DB instance class.

" + } + }, + "CreateDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the reservation was created, in Universal Coordinated Time (UTC).

" + } + }, + "StartDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when a future-dated reservation starts, in Universal Coordinated Time (UTC). Amazon RDS doesn't return this value for a reservation that started immediately.

" + } + }, + "CommitmentInfo": { + "target": "com.amazonaws.rds#DBCapacityReservationCommitmentInfo", + "traits": { + "smithy.api#documentation": "

The capacity commitment of the reservation. Amazon RDS returns this object only for a future-dated reservation.

" + } + }, + "State": { + "target": "com.amazonaws.rds#DBCapacityReservationState", + "traits": { + "smithy.api#documentation": "

The current state of the DB capacity reservation. A DB instance can use the reservation in the active state only.

Valid Values:

  • active - Amazon RDS holds the reserved capacity, and a DB instance can use it.

  • pending - The reservation isn't ready to use yet. Amazon RDS is creating the reserved capacity, or it is applying a requested modification.

  • assessing - Amazon RDS is evaluating the request for a future-dated reservation.

  • scheduled - Amazon RDS accepted a future-dated reservation, and the reservation is waiting for its start date.

  • delayed - Amazon RDS couldn't provide the reserved capacity of a future-dated reservation by its start date.

  • unsupported - Amazon RDS can't fulfill the future-dated reservation as requested.

  • expired - The reservation passed its end date. Amazon RDS releases the reserved capacity.

  • cancelled - You cancelled the reservation, and Amazon RDS released the reserved capacity.

  • failed - Amazon RDS couldn't reserve the capacity.

The values assessing, scheduled, delayed, and unsupported apply to a future-dated reservation only.

" + } + }, + "DBCapacityReservationArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB capacity reservation.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the DB capacity reservation. The identifier has the prefix dbcr-. Every other DB capacity reservation operation takes this identifier.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

The tags associated with the DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of a DB capacity reservation.

This data type is used as a response element in the following operations:

  • CancelDBCapacityReservation

  • CreateDBCapacityReservation

  • DescribeDBCapacityReservations

  • ModifyDBCapacityReservation

" + } + }, + "com.amazonaws.rds#DBCapacityReservationAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBCapacityReservationAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You already have a DB capacity reservation with the given name. Choose a different name for the new reservation, or use the existing reservation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBCapacityReservationCommitmentInfo": { + "type": "structure", + "members": { + "CommittedCapacityPerAvailabilityZone": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of DB instances that Amazon RDS holds in each Availability Zone of the reservation for the length of the commitment.

" + } + }, + "CommitmentEndDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the commitment ends, in Universal Coordinated Time (UTC). This date reports the capacity commitment that Amazon RDS granted.

Amazon RDS can grant a shorter capacity commitment than you request in CommitmentDuration. Therefore, this date can fall earlier than StartDate plus CommitmentDuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the capacity commitment details of a DB capacity reservation, including the number of committed DB instances in each Availability Zone and the end date of the commitment period. Amazon RDS holds the committed capacity until the commitment ends. Amazon RDS rejects a request to cancel a reservation in the active state, and a request to reduce the reserved capacity below the commitment.

This data type is used as a response element in the following operations:

  • CancelDBCapacityReservation

  • CreateDBCapacityReservation

  • DescribeDBCapacityReservations

  • ModifyDBCapacityReservation

" + } + }, + "com.amazonaws.rds#DBCapacityReservationIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-z](?:-?[a-z0-9]+){0,15}$" + } + }, + "com.amazonaws.rds#DBCapacityReservationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBCapacityReservation" + } + }, + "com.amazonaws.rds#DBCapacityReservationName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-z](?:-?[a-z0-9]+){0,15}$" + } + }, + "com.amazonaws.rds#DBCapacityReservationNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBCapacityReservationNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBCapacityReservationIdentifier doesn't refer to an existing DB capacity reservation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBCapacityReservationState": { + "type": "enum", + "members": { + "active": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "expired": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "expired" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "assessing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "assessing" + } + }, + "scheduled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "delayed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "delayed" + } + }, + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + } + } + }, + "com.amazonaws.rds#DBCapacityReservationUnsupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBCapacityReservationUnsupported", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified configuration isn't supported for DB capacity reservations.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBCluster": { + "type": "structure", + "members": { + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

AllocatedStorage specifies the allocated storage size in gibibytes (GiB). For Aurora, AllocatedStorage can vary because Aurora DB cluster storage size adjusts as needed.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

The list of Availability Zones (AZs) where instances in the DB cluster can be created.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic DB snapshots are retained.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If present, specifies the name of the character set that this cluster is associated with.

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the initial database that was specified for the DB cluster when it was created, if one was provided. This same name is returned for the life of the DB cluster.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied identifier for the DB cluster. This identifier is the unique key that identifies a DB cluster.

" + } + }, + "DBClusterParameterGroup": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group for the DB cluster.

" + } + }, + "DBSubnetGroup": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Information about the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The current state of this DB cluster.

" + } + }, + "PercentProgress": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The progress of the operation as a percentage.

" + } + }, + "EarliestRestorableTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The earliest time to which a database can be restored with point-in-time restore.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The connection endpoint for the primary instance of the DB cluster.

" + } + }, + "ReaderEndpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.

If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.

" + } + }, + "CustomEndpoints": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The custom endpoints associated with the DB cluster.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster has instances in multiple Availability Zones.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine used for this DB cluster.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine.

" + } + }, + "LatestRestorableTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The latest time to which a database can be restored with point-in-time restore.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port that the database engine is listening on.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master username for the DB cluster.

" + } + }, + "DBClusterOptionGroupMemberships": { + "target": "com.amazonaws.rds#DBClusterOptionGroupMemberships", + "traits": { + "smithy.api#documentation": "

The list of option group memberships for this DB cluster.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

" + } + }, + "UpgradeRolloutOrder": { + "target": "com.amazonaws.rds#UpgradeRolloutOrder", + "traits": { + "smithy.api#documentation": "

This data type represents the order in which the clusters are upgraded.

  • [first] - Typically used for development or testing environments.

  • [second] - Default order for resources not specifically configured.

  • [last] - Usually reserved for production environments.

" + } + }, + "ReplicationSourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the source DB cluster if this DB cluster is a read replica.

" + } + }, + "ReadReplicaIdentifiers": { + "target": "com.amazonaws.rds#ReadReplicaIdentifierList", + "traits": { + "smithy.api#documentation": "

Contains one or more identifiers of the read replicas associated with this DB cluster.

" + } + }, + "StatusInfos": { + "target": "com.amazonaws.rds#DBClusterStatusInfoList", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "DBClusterMembers": { + "target": "com.amazonaws.rds#DBClusterMemberList", + "traits": { + "smithy.api#documentation": "

The list of DB instances that make up the DB cluster.

" + } + }, + "VpcSecurityGroups": { + "target": "com.amazonaws.rds#VpcSecurityGroupMembershipList", + "traits": { + "smithy.api#documentation": "

The list of VPC security groups that the DB cluster belongs to.

" + } + }, + "HostedZoneId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID that Amazon Route 53 assigns when you create a hosted zone.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster is encrypted with an Amazon Web Services managed key or a customer managed key.

If the DB cluster is encrypted with an Amazon Web Services owned key, this value is false and StorageEncryptionType is sse-rds. In that case, the data at rest is still encrypted. To determine how the data at rest is protected, use StorageEncryptionType.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the DB cluster. Possible values:

  • none - The DB cluster is not encrypted.

  • sse-rds - The DB cluster is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The DB cluster is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If StorageEncrypted is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the KMS key for the DB cluster is accessed.

" + } + }, + "DBClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB cluster.

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBClusterRoles", + "traits": { + "smithy.api#documentation": "

A list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "CloneGroupId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of the clone group with which the DB cluster is associated. For newly created clusters, the ID is typically null.

If you clone a DB cluster when the ID is null, the operation populates the ID value for the source cluster and the clone because both clusters become part of the same clone group. Even if you delete the clone cluster, the clone group ID remains for the lifetime of the source cluster to show that it was used in a cloning operation.

For PITR, the clone group ID is inherited from the source cluster. For snapshot restore operations, the clone group ID isn't inherited from the source cluster.

" + } + }, + "ClusterCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the DB cluster was created, in Universal Coordinated Time (UTC).

" + } + }, + "EarliestBacktrackTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The earliest time to which a DB cluster can be backtracked.

" + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.

" + } + }, + "BacktrackConsumedChangeRecords": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The number of change records stored for Backtrack.

" + } + }, + "EnabledCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

A list of log types that this DB cluster is configured to export to CloudWatch Logs.

Log types vary by DB engine. For information about the log types for each DB engine, see Amazon RDS Database Log Files in the Amazon Aurora User Guide.

" + } + }, + "Capacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The current capacity of an Aurora Serverless v1 DB cluster. The capacity is 0 (zero) when the cluster is paused.

For more information about Aurora Serverless v1, see Using Amazon Aurora Serverless v1 in the Amazon Aurora User Guide.

" + } + }, + "PendingModifiedValues": { + "target": "com.amazonaws.rds#ClusterPendingModifiedValues", + "traits": { + "smithy.api#documentation": "

Information about pending changes to the DB cluster. This information is returned only when there are pending changes. Specific changes are identified by subelements.

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

For more information, see CreateDBCluster.

" + } + }, + "ScalingConfigurationInfo": { + "target": "com.amazonaws.rds#ScalingConfigurationInfo" + }, + "RdsCustomClusterConfiguration": { + "target": "com.amazonaws.rds#RdsCustomClusterConfiguration", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "DBClusterInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the compute and memory capacity class of the DB instance.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type associated with the DB cluster.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The Provisioned IOPS (I/O operations per second) value.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the DB cluster. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "IOOptimizedNextAllowedModificationTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The next time you can modify the DB cluster to use the aurora-iopt1 storage type.

This setting is only for Aurora DB clusters.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster is publicly accessible.

When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.

For more information, see CreateDBCluster.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether minor version patches are applied automatically.

This setting is for Aurora DB clusters and Multi-AZ DB clusters.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.

" + } + }, + "HttpEndpointEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the HTTP endpoint is enabled for an Aurora DB cluster.

When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.

For more information, see Using RDS Data API in the Amazon Aurora User Guide.

" + } + }, + "ActivityStreamMode": { + "target": "com.amazonaws.rds#ActivityStreamMode", + "traits": { + "smithy.api#documentation": "

The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously.

" + } + }, + "ActivityStreamStatus": { + "target": "com.amazonaws.rds#ActivityStreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the database activity stream.

" + } + }, + "ActivityStreamKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "ActivityStreamKinesisStreamName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream used for the database activity stream.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether tags are copied from the DB cluster to snapshots of the DB cluster.

" + } + }, + "CrossAccountClone": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.

" + } + }, + "DomainMemberships": { + "target": "com.amazonaws.rds#DomainMembershipList", + "traits": { + "smithy.api#documentation": "

The Active Directory Domain membership records associated with the DB cluster.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#documentation": "

Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster.

" + } + }, + "GlobalWriteForwardingStatus": { + "target": "com.amazonaws.rds#WriteForwardingStatus", + "traits": { + "smithy.api#documentation": "

The status of write forwarding for a secondary cluster in an Aurora global database.

" + } + }, + "GlobalWriteForwardingRequested": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether write forwarding is enabled for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of GlobalWriteForwardingStatus to confirm that the request has completed before using the write forwarding feature for this cluster.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

This setting is only for Aurora DB clusters.

Valid Values: IPV4 | DUAL

" + } + }, + "AutomaticRestartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when a stopped DB cluster is restarted automatically.

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfigurationInfo" + }, + "ServerlessV2PlatformVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the Aurora Serverless V2 platform used by the DB cluster. For more information, see Using Aurora Serverless v2 in the Amazon Aurora User Guide.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster.

This setting is only for -Aurora DB clusters and Multi-AZ DB clusters.

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.

This setting is only for Aurora DB clusters and Multi-AZ DB clusters.

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of Database Insights that is enabled for the DB cluster.

" + } + }, + "PerformanceInsightsEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether Performance Insights is enabled for the DB cluster.

This setting is only for Aurora DB clusters and Multi-AZ DB clusters.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

This setting is only for Aurora DB clusters and Multi-AZ DB clusters.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

This setting is only for Aurora DB clusters and Multi-AZ DB clusters.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "MasterUserSecret": { + "target": "com.amazonaws.rds#MasterUserSecret", + "traits": { + "smithy.api#documentation": "

The secret managed by RDS in Amazon Web Services Secrets Manager for the master user password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

" + } + }, + "LocalWriteForwardingStatus": { + "target": "com.amazonaws.rds#LocalWriteForwardingStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether an Aurora DB cluster has in-cluster write forwarding enabled, not enabled, requested, or is in the process of enabling it.

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" + } + }, + "LimitlessDatabase": { + "target": "com.amazonaws.rds#LimitlessDatabase", + "traits": { + "smithy.api#documentation": "

The details for Aurora Limitless Database.

" + } + }, + "ClusterScalabilityType": { + "target": "com.amazonaws.rds#ClusterScalabilityType", + "traits": { + "smithy.api#documentation": "

The scalability mode of the Aurora DB cluster. When set to limitless, the cluster operates as an Aurora Limitless Database. When set to standard (the default), the cluster uses normal DB instance creation.

" + } + }, + "CertificateDetails": { + "target": "com.amazonaws.rds#CertificateDetails" + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for the DB cluster.

For more information, see CreateDBCluster.

" + } + }, + "VPCNetworkingEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster uses VPC-based networking.

This setting is applicable only for Aurora PostgreSQL clusters created through express configuration.

" + } + }, + "InternetAccessGatewayEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB cluster has internet-based connectivity enabled through an internet access gateway.

This setting is applicable only for Aurora PostgreSQL clusters created through express configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB cluster.

For an Amazon Aurora DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, PromoteReadReplicaDBCluster, RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, RestoreDBClusterToPointInTime, StartDBCluster, and StopDBCluster.

For a Multi-AZ DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, RebootDBCluster, RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#DBClusterAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The user already has a DB cluster with the given identifier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterAssociatedRole": { + "type": "structure", + "members": { + "RoleArn": { + "target": "com.amazonaws.rds#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to associate with the DB cluster.

", + "smithy.api#required": {} + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the feature associated with the IAM role. For information about supported feature names, see DBEngineVersion.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an Amazon Web Services Identity and Access Management (IAM) role to associate with a DB cluster. You can specify this structure in the AssociatedRoles parameter of CreateDBCluster, RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

" + } + }, + "com.amazonaws.rds#DBClusterAssociatedRoles": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterAssociatedRole", + "traits": { + "smithy.api#xmlName": "DBClusterAssociatedRole" + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 15 + } + } + }, + "com.amazonaws.rds#DBClusterAutomatedBackup": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine for this automated backup.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The VPC ID associated with the DB cluster.

" + } + }, + "DBClusterAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the automated backups.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the source DB cluster, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "RestoreWindow": { + "target": "com.amazonaws.rds#RestoreWindow" + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master user name of the automated backup.

" + } + }, + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID for the source DB cluster, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "Region": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region associated with the automated backup.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for this DB cluster automated backup.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A list of status information for an automated backup:

  • retained - Automated backups for deleted clusters.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "ClusterCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the DB cluster was created, in Universal Coordinated Time (UTC).

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the source DB cluster is encrypted.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the automated backup. Possible values:

  • none - The automated backup is not encrypted.

  • sse-rds - The automated backup is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The automated backup is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

For all database engines except Amazon Aurora, AllocatedStorage specifies the allocated storage size in gibibytes (GiB). For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine for the automated backup.

" + } + }, + "DBClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the source DB cluster.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The retention period for the automated backups.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine mode of the database engine for the automated backup.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

The Availability Zones where instances in the DB cluster can be created. For information on Amazon Web Services Regions and Availability Zones, see Regions and Availability Zones.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The port number that the automated backup used for connections.

Default: Inherits from the source DB cluster

Valid Values: 1150-65535

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key ID for an automated backup.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type associated with the DB cluster.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The IOPS (I/O operations per second) value for the automated backup.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the automated backup. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

An automated backup of a DB cluster. It consists of system backups, transaction logs, and the database cluster properties that existed at the time you deleted the source cluster.

" + } + }, + "com.amazonaws.rds#DBClusterAutomatedBackupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterAutomatedBackup", + "traits": { + "smithy.api#xmlName": "DBClusterAutomatedBackup" + } + } + }, + "com.amazonaws.rds#DBClusterAutomatedBackupMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

" + } + }, + "DBClusterAutomatedBackups": { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupList", + "traits": { + "smithy.api#documentation": "

A list of DBClusterAutomatedBackup backups.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterAutomatedBackupNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

No automated backup for this DB cluster was found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterAutomatedBackupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterAutomatedBackupQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The quota for retained automated backups was exceeded. This prevents you from retaining any additional automated backups. The retained automated backups quota is the same as your DB cluster quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterBacktrack": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.

" + } + }, + "BacktrackIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Contains the backtrack identifier.

" + } + }, + "BacktrackTo": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the time to which the DB cluster was backtracked.

" + } + }, + "BacktrackedFrom": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the time from which the DB cluster was backtracked.

" + } + }, + "BacktrackRequestCreationTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the time at which the backtrack was requested.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the backtrack. This property returns one of the following values:

  • applying - The backtrack is currently being applied to or rolled back from the DB cluster.

  • completed - The backtrack has successfully been applied to or rolled back from the DB cluster.

  • failed - An error occurred while the backtrack was applied to or rolled back from the DB cluster.

  • pending - The backtrack is currently pending application to or rollback from the DB cluster.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeDBClusterBacktracks action.

" + } + }, + "com.amazonaws.rds#DBClusterBacktrackList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterBacktrack", + "traits": { + "smithy.api#xmlName": "DBClusterBacktrack" + } + } + }, + "com.amazonaws.rds#DBClusterBacktrackMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeDBClusterBacktracks request.

" + } + }, + "DBClusterBacktracks": { + "target": "com.amazonaws.rds#DBClusterBacktrackList", + "traits": { + "smithy.api#documentation": "

Contains a list of backtracks for the user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBClusterBacktracks action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterBacktrackNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterBacktrackNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

BacktrackIdentifier doesn't refer to an existing backtrack.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterCapacityInfo": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.

" + } + }, + "PendingCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

A value that specifies the capacity that the DB cluster scales to next.

" + } + }, + "CurrentCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The current capacity of the DB cluster.

" + } + }, + "SecondsBeforeTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds before a call to ModifyCurrentDBClusterCapacity times out.

" + } + }, + "TimeoutAction": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The timeout action of a call to ModifyCurrentDBClusterCapacity, either ForceApplyCapacityChange or RollbackCapacityChange.

" + } + } + } + }, + "com.amazonaws.rds#DBClusterEndpoint": { + "type": "structure", + "members": { + "DBClusterEndpointIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier associated with the endpoint. This parameter is stored as a lowercase string.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.

" + } + }, + "DBClusterEndpointResourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DNS address of the endpoint.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The current status of the endpoint. One of: creating, available, deleting, inactive, modifying. The inactive state applies to an endpoint that can't be used for a certain kind of cluster, such as a writer endpoint for a read-only secondary cluster in a global database.

" + } + }, + "EndpointType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of the endpoint. One of: READER, WRITER, CUSTOM.

" + } + }, + "CustomEndpointType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type associated with a custom endpoint. One of: READER, WRITER, ANY.

" + } + }, + "StaticMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that are part of the custom endpoint group.

" + } + }, + "ExcludedMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

" + } + }, + "DBClusterEndpointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type represents the information you need to connect to an Amazon Aurora DB cluster. This data type is used as a response element in the following actions:

  • CreateDBClusterEndpoint

  • DescribeDBClusterEndpoints

  • ModifyDBClusterEndpoint

  • DeleteDBClusterEndpoint

For the data structure that represents Amazon RDS DB instance endpoints, see Endpoint.

" + } + }, + "com.amazonaws.rds#DBClusterEndpointAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterEndpointAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified custom endpoint can't be created because it already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterEndpoint", + "traits": { + "smithy.api#xmlName": "DBClusterEndpointList" + } + } + }, + "com.amazonaws.rds#DBClusterEndpointMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterEndpoints request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBClusterEndpoints": { + "target": "com.amazonaws.rds#DBClusterEndpointList", + "traits": { + "smithy.api#documentation": "

Contains the details of the endpoints associated with the cluster and matching any filter conditions.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterEndpointNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterEndpointNotFoundFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified custom endpoint doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterEndpointQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterEndpointQuotaExceededFault", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

The cluster already has the maximum number of custom endpoints.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.rds#DBClusterIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[A-Za-z][0-9A-Za-z-:._]*$" + } + }, + "com.amazonaws.rds#DBClusterList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBCluster", + "traits": { + "smithy.api#xmlName": "DBCluster" + } + } + }, + "com.amazonaws.rds#DBClusterMember": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the instance identifier for this member of the DB cluster.

" + } + }, + "IsClusterWriter": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the cluster member is the primary DB instance for the DB cluster.

" + } + }, + "DBClusterParameterGroupStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the status of the DB cluster parameter group for this member of the DB cluster.

" + } + }, + "PromotionTier": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an instance that is part of a DB cluster.

" + } + }, + "com.amazonaws.rds#DBClusterMemberList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterMember", + "traits": { + "smithy.api#xmlName": "DBClusterMember" + } + } + }, + "com.amazonaws.rds#DBClusterMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeDBClusters request.

" + } + }, + "DBClusters": { + "target": "com.amazonaws.rds#DBClusterList", + "traits": { + "smithy.api#documentation": "

Contains a list of DB clusters for the user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBClusters action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBClusterIdentifier doesn't refer to an existing DB cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterOptionGroupMemberships": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterOptionGroupStatus", + "traits": { + "smithy.api#xmlName": "DBClusterOptionGroup" + } + } + }, + "com.amazonaws.rds#DBClusterOptionGroupStatus": { + "type": "structure", + "members": { + "DBClusterOptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the DB cluster option group.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the status of the DB cluster option group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains status information for a DB cluster option group.

" + } + }, + "com.amazonaws.rds#DBClusterParameterGroup": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group.

" + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group family that this DB cluster parameter group is compatible with.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the customer-specified description for this DB cluster parameter group.

" + } + }, + "DBClusterParameterGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB cluster parameter group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon RDS DB cluster parameter group.

This data type is used as a response element in the DescribeDBClusterParameterGroups action.

" + } + }, + "com.amazonaws.rds#DBClusterParameterGroupDetails": { + "type": "structure", + "members": { + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#documentation": "

Provides a list of parameters for the DB cluster parameter group.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides details about a DB cluster parameter group including the parameters in the DB cluster parameter group.

" + } + }, + "com.amazonaws.rds#DBClusterParameterGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterParameterGroup", + "traits": { + "smithy.api#xmlName": "DBClusterParameterGroup" + } + } + }, + "com.amazonaws.rds#DBClusterParameterGroupNameMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group.

Constraints:

  • Must be 1 to 255 letters or numbers.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

" + } + }, + "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterParameterGroupNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBClusterParameterGroupName doesn't refer to an existing DB cluster parameter group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterParameterGroupsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBClusterParameterGroups": { + "target": "com.amazonaws.rds#DBClusterParameterGroupList", + "traits": { + "smithy.api#documentation": "

A list of DB cluster parameter groups.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterQuotaExceededFault", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

The user attempted to create a new DB cluster and the user has already reached the maximum allowed DB cluster quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.rds#DBClusterRole": { + "type": "structure", + "members": { + "RoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Describes the state of association between the IAM role and the DB cluster. The Status property returns one of the following values:

  • ACTIVE - the IAM role ARN is associated with the DB cluster and can be used to access other Amazon Web Services on your behalf.

  • PENDING - the IAM role ARN is being associated with the DB cluster.

  • INVALID - the IAM role ARN is associated with the DB cluster, but the DB cluster is unable to assume the IAM role in order to access other Amazon Web Services on your behalf.

" + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the feature associated with the Amazon Web Services Identity and Access Management (IAM) role. For information about supported feature names, see DBEngineVersion.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon Web Services Identity and Access Management (IAM) role that is associated with a DB cluster.

" + } + }, + "com.amazonaws.rds#DBClusterRoleAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterRoleAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified IAM role Amazon Resource Name (ARN) is already associated with the specified DB cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterRoleNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterRoleNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified IAM role Amazon Resource Name (ARN) isn't associated with the specified DB cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterRoleQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterRoleQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You have exceeded the maximum number of IAM roles that can be associated with the specified DB cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterRoles": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterRole", + "traits": { + "smithy.api#xmlName": "DBClusterRole" + } + } + }, + "com.amazonaws.rds#DBClusterSnapshot": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

The list of Availability Zones (AZs) where instances in the DB cluster snapshot can be restored.

" + } + }, + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the DB cluster snapshot.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.

" + } + }, + "SnapshotCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the snapshot was taken, in Universal Coordinated Time (UTC).

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine for this DB cluster snapshot.

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine mode of the database engine for this DB cluster snapshot.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The allocated storage size of the DB cluster snapshot in gibibytes (GiB).

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of this DB cluster snapshot. Valid statuses are the following:

  • available

  • copying

  • creating

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The port that the DB cluster was listening on at the time of the snapshot.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The VPC ID associated with the DB cluster snapshot.

" + } + }, + "ClusterCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the DB cluster was created, in Universal Coordinated Time (UTC).

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master username for this DB cluster snapshot.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine for this DB cluster snapshot.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for this DB cluster snapshot.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of the DB cluster snapshot.

" + } + }, + "PercentProgress": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of the estimated data that has been transferred.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster snapshot is encrypted with an Amazon Web Services managed key or a customer managed key.

If the DB cluster snapshot is encrypted with an Amazon Web Services owned key, this value is false and StorageEncryptionType is sse-rds. In that case, the data at rest is still encrypted. To determine how the data at rest is protected, use StorageEncryptionType.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the DB cluster snapshot. Possible values:

  • none - The DB cluster snapshot is not encrypted.

  • sse-rds - The DB cluster snapshot is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The DB cluster snapshot is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic DB snapshots are retained.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If StorageEncrypted is true, the Amazon Web Services KMS key identifier for the encrypted DB cluster snapshot.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "DBClusterSnapshotArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB cluster snapshot.

" + } + }, + "SourceDBClusterSnapshotArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type associated with the DB cluster snapshot.

This setting is only for Aurora DB clusters.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the DB cluster snapshot. The throughput is automatically set based on the IOPS that you provision, and is not configurable.

This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the DB cluster that this DB cluster snapshot was created from.

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details for an Amazon RDS DB cluster snapshot

This data type is used as a response element in the DescribeDBClusterSnapshots action.

" + } + }, + "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterSnapshotAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The user already has a DB cluster snapshot with the given identifier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBClusterSnapshotAttribute": { + "type": "structure", + "members": { + "AttributeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the manual DB cluster snapshot attribute.

The attribute named restore refers to the list of Amazon Web Services accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action.

" + } + }, + "AttributeValues": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

The value(s) for the manual DB cluster snapshot attribute.

If the AttributeName field is set to restore, then this element returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual DB cluster snapshot. If a value of all is in the list, then the manual DB cluster snapshot is public and available for any Amazon Web Services account to copy or restore.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the name and values of a manual DB cluster snapshot attribute.

Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action.

" + } + }, + "com.amazonaws.rds#DBClusterSnapshotAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterSnapshotAttribute", + "traits": { + "smithy.api#xmlName": "DBClusterSnapshotAttribute" + } + } + }, + "com.amazonaws.rds#DBClusterSnapshotAttributesResult": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the manual DB cluster snapshot that the attributes apply to.

" + } + }, + "DBClusterSnapshotAttributes": { + "target": "com.amazonaws.rds#DBClusterSnapshotAttributeList", + "traits": { + "smithy.api#documentation": "

The list of attributes and values for the manual DB cluster snapshot.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the results of a successful call to the DescribeDBClusterSnapshotAttributes API action.

Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action.

" + } + }, + "com.amazonaws.rds#DBClusterSnapshotList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterSnapshot", + "traits": { + "smithy.api#xmlName": "DBClusterSnapshot" + } + } + }, + "com.amazonaws.rds#DBClusterSnapshotMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBClusterSnapshots": { + "target": "com.amazonaws.rds#DBClusterSnapshotList", + "traits": { + "smithy.api#documentation": "

Provides a list of DB cluster snapshots for the user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a list of DB cluster snapshots for the user as the result of a call to the DescribeDBClusterSnapshots action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBClusterSnapshotNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBClusterSnapshotNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBClusterSnapshotIdentifier doesn't refer to an existing DB cluster snapshot.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBClusterStatusInfo": { + "type": "structure", + "members": { + "StatusType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "Normal": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "Message": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "com.amazonaws.rds#DBClusterStatusInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBClusterStatusInfo", + "traits": { + "smithy.api#xmlName": "DBClusterStatusInfo" + } + } + }, + "com.amazonaws.rds#DBEngineVersion": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine.

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The major engine version of the CEV.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine.

" + } + }, + "DatabaseInstallationFilesS3BucketName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket that contains your database installation files.

" + } + }, + "DatabaseInstallationFilesS3Prefix": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon S3 directory that contains the database installation files. If not specified, then no prefix is assumed.

" + } + }, + "DatabaseInstallationFiles": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The database installation files (ISO and EXE) that were uploaded to Amazon S3 and used to import the database engine version to Amazon RDS. Returned for RDS for SQL Server engine versions (sqlserver-ee, sqlserver-se, and sqlserver-dev-ee) created from customer-supplied installation media.

" + } + }, + "CustomDBEngineVersionManifest": { + "target": "com.amazonaws.rds#CustomDBEngineVersionManifest", + "traits": { + "smithy.api#documentation": "

JSON string that lists the installation files and parameters that RDS Custom uses to create a custom engine version (CEV). RDS Custom applies the patches in the order in which they're listed in the manifest. You can set the Oracle home, Oracle base, and UNIX/Linux user and group using the installation parameters. For more information, see JSON fields in the CEV manifest in the Amazon RDS User Guide.

" + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group family for the database engine.

" + } + }, + "DBEngineDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the database engine.

" + } + }, + "DBEngineVersionArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN of the custom engine version.

" + } + }, + "DBEngineVersionDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the database engine version.

" + } + }, + "DefaultCharacterSet": { + "target": "com.amazonaws.rds#CharacterSet", + "traits": { + "smithy.api#documentation": "

The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API isn't specified.

" + } + }, + "FailureReason": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The reason that the custom engine version creation failed with an incompatible-installation-media status. Applicable to RDS for SQL Server engine versions (sqlserver-ee, sqlserver-se, and sqlserver-dev-ee).

" + } + }, + "Image": { + "target": "com.amazonaws.rds#CustomDBEngineVersionAMI", + "traits": { + "smithy.api#documentation": "

The EC2 image

" + } + }, + "DBEngineMediaType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The source of the installation media for this engine version. A value of Customer Provided indicates that the engine version was created from customer-supplied installation media using CreateCustomDBEngineVersion. Applicable to RDS Custom for SQL Server and to RDS for SQL Server engine versions (sqlserver-ee and sqlserver-se with the bring-your-own-media license model, and sqlserver-dev-ee).

" + } + }, + "KMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted CEV. This parameter is required for RDS Custom, but optional for Amazon RDS.

" + } + }, + "CreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The creation time of the DB engine version.

" + } + }, + "SupportedCharacterSets": { + "target": "com.amazonaws.rds#SupportedCharacterSetsList", + "traits": { + "smithy.api#documentation": "

A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation.

" + } + }, + "SupportedNcharCharacterSets": { + "target": "com.amazonaws.rds#SupportedCharacterSetsList", + "traits": { + "smithy.api#documentation": "

A list of the character sets supported by the Oracle DB engine for the NcharCharacterSetName parameter of the CreateDBInstance operation.

" + } + }, + "ValidUpgradeTarget": { + "target": "com.amazonaws.rds#ValidUpgradeTargetList", + "traits": { + "smithy.api#documentation": "

A list of engine versions that this database engine version can be upgraded to.

" + } + }, + "SupportedTimezones": { + "target": "com.amazonaws.rds#SupportedTimezonesList", + "traits": { + "smithy.api#documentation": "

A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action.

" + } + }, + "ExportableLogTypes": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The types of logs that the database engine has available for export to CloudWatch Logs.

" + } + }, + "SupportsLogExportsToCloudwatchLogs": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs.

" + } + }, + "SupportsReadReplica": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the database engine version supports read replicas.

" + } + }, + "SupportedEngineModes": { + "target": "com.amazonaws.rds#EngineModeList", + "traits": { + "smithy.api#documentation": "

A list of the supported DB engine modes.

" + } + }, + "SupportedFeatureNames": { + "target": "com.amazonaws.rds#FeatureNameList", + "traits": { + "smithy.api#documentation": "

A list of features supported by the DB engine.

The supported features vary by DB engine and DB engine version.

To determine the supported features for a specific DB engine and DB engine version using the CLI, use the following command:

aws rds describe-db-engine-versions --engine <engine_name> --engine-version <engine_version>

For example, to determine the supported features for RDS for PostgreSQL version 13.3 using the CLI, use the following command:

aws rds describe-db-engine-versions --engine postgres --engine-version 13.3

The supported features are listed under SupportedFeatureNames in the output.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the DB engine version, either available or deprecated.

" + } + }, + "SupportsParallelQuery": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Aurora parallel query with a specific DB engine version.

" + } + }, + "SupportsGlobalDatabases": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Aurora global databases with a specific DB engine version.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "SupportsBabelfish": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the engine version supports Babelfish for Aurora PostgreSQL.

" + } + }, + "SupportsLimitlessDatabase": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports Aurora Limitless Database.

" + } + }, + "SupportsCertificateRotationWithoutRestart": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the engine version supports rotating the server certificate without rebooting the DB instance.

" + } + }, + "SupportedCACertificateIdentifiers": { + "target": "com.amazonaws.rds#CACertificateIdentifiersList", + "traits": { + "smithy.api#documentation": "

A list of the supported CA certificate identifiers.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "SupportsLocalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

" + } + }, + "SupportsIntegrations": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

" + } + }, + "ServerlessV2FeaturesSupport": { + "target": "com.amazonaws.rds#ServerlessV2FeaturesSupport", + "traits": { + "smithy.api#documentation": "

Specifies any Aurora Serverless v2 properties or limits that differ between Aurora engine versions. You can test the values of this attribute when deciding which Aurora version to use in a new or upgraded DB cluster. You can also retrieve the version of an existing DB cluster and check whether that version supports certain Aurora Serverless v2 features before you attempt to use those features.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the action DescribeDBEngineVersions.

" + } + }, + "com.amazonaws.rds#DBEngineVersionList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBEngineVersion", + "traits": { + "smithy.api#xmlName": "DBEngineVersion" + } + } + }, + "com.amazonaws.rds#DBEngineVersionMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBEngineVersions": { + "target": "com.amazonaws.rds#DBEngineVersionList", + "traits": { + "smithy.api#documentation": "

A list of DBEngineVersion elements.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBEngineVersions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied database identifier. This identifier is the unique key that identifies a DB instance.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the compute and memory capacity class of the DB instance.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine used for this DB instance.

" + } + }, + "DBInstanceStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The current state of this database.

For information about DB instance statuses, see Viewing DB instance status in the Amazon RDS User Guide.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master username for the DB instance.

" + } + }, + "DBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The initial database name that you provided (if required) when you created the DB instance. This name is returned for the life of your DB instance. For an RDS for Oracle CDB instance, the name identifies the PDB rather than the CDB.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#Endpoint", + "traits": { + "smithy.api#documentation": "

The connection endpoint for the DB instance.

The endpoint might not be shown for instances with the status of creating.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) allocated for the DB instance.

" + } + }, + "InstanceCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the DB instance was created.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic DB snapshots are retained.

" + } + }, + "DBSecurityGroups": { + "target": "com.amazonaws.rds#DBSecurityGroupMembershipList", + "traits": { + "smithy.api#documentation": "

A list of DB security group elements containing DBSecurityGroup.Name and DBSecurityGroup.Status subelements.

" + } + }, + "VpcSecurityGroups": { + "target": "com.amazonaws.rds#VpcSecurityGroupMembershipList", + "traits": { + "smithy.api#documentation": "

The list of Amazon EC2 VPC security groups that the DB instance belongs to.

" + } + }, + "DBParameterGroups": { + "target": "com.amazonaws.rds#DBParameterGroupStatusList", + "traits": { + "smithy.api#documentation": "

The list of DB parameter groups applied to this DB instance.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Availability Zone where the DB instance is located.

" + } + }, + "DBSubnetGroup": { + "target": "com.amazonaws.rds#DBSubnetGroup", + "traits": { + "smithy.api#documentation": "

Information about the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

" + } + }, + "UpgradeRolloutOrder": { + "target": "com.amazonaws.rds#UpgradeRolloutOrder", + "traits": { + "smithy.api#documentation": "

This data type represents the order in which the instances are upgraded.

  • [first] - Typically used for development or testing environments.

  • [second] - Default order for resources not specifically configured.

  • [last] - Usually reserved for production environments.

" + } + }, + "PendingModifiedValues": { + "target": "com.amazonaws.rds#PendingModifiedValues", + "traits": { + "smithy.api#documentation": "

Information about pending changes to the DB instance. This information is returned only when there are pending changes. Specific changes are identified by subelements.

" + } + }, + "LatestRestorableTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The latest time to which a database in this DB instance can be restored with point-in-time restore.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance is a Multi-AZ deployment. This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether minor version patches are applied automatically.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "ReadReplicaSourceDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the source DB instance if this DB instance is a read replica.

" + } + }, + "ReadReplicaDBInstanceIdentifiers": { + "target": "com.amazonaws.rds#ReadReplicaDBInstanceIdentifierList", + "traits": { + "smithy.api#documentation": "

The identifiers of the read replicas associated with this DB instance.

" + } + }, + "ReadReplicaDBClusterIdentifiers": { + "target": "com.amazonaws.rds#ReadReplicaDBClusterIdentifierList", + "traits": { + "smithy.api#documentation": "

The identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS for MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output doesn't contain information about cross-Region Aurora read replicas.

Currently, each RDS DB instance can have only one Aurora read replica.

" + } + }, + "ReplicaMode": { + "target": "com.amazonaws.rds#ReplicaMode", + "traits": { + "smithy.api#documentation": "

The open mode of a Db2 or an Oracle read replica. The default is open-read-only. For more information, see Working with replicas for Amazon RDS for Db2 and Working with read replicas for Amazon RDS for Oracle in the Amazon RDS User Guide.

This attribute is only supported in RDS for Db2, RDS for Oracle, and RDS Custom for Oracle.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for this DB instance. This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The Provisioned IOPS (I/O operations per second) value for the DB instance.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the DB instance.

This setting applies only to the gp3 storage type.

" + } + }, + "OptionGroupMemberships": { + "target": "com.amazonaws.rds#OptionGroupMembershipList", + "traits": { + "smithy.api#documentation": "

The list of option group memberships for this DB instance.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If present, specifies the name of the character set that this instance is associated with.

" + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2.

" + } + }, + "SecondaryAvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance is publicly accessible.

When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

" + } + }, + "StatusInfos": { + "target": "com.amazonaws.rds#DBInstanceStatusInfoList", + "traits": { + "smithy.api#documentation": "

The status of a read replica. If the DB instance isn't a read replica, the value is blank.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type associated with the DB instance.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the DB instance. Possible values:

  • none - The DB instance is not encrypted.

  • sse-rds - The DB instance is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The DB instance is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which the instance is associated for TDE encryption.

" + } + }, + "DbInstancePort": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If the DB instance is a member of a DB cluster, indicates the name of the DB cluster that the DB instance is a member of.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance is encrypted.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If StorageEncrypted is enabled, the Amazon Web Services KMS key identifier for the encrypted DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS key for the DB instance is accessed.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the CA certificate for this DB instance.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "DomainMemberships": { + "target": "com.amazonaws.rds#DomainMembershipList", + "traits": { + "smithy.api#documentation": "

The Active Directory Domain membership records associated with the DB instance.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether tags are copied from the DB instance to snapshots of the DB instance.

This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see DBCluster.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.

" + } + }, + "EnhancedMonitoringResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.

" + } + }, + "PromotionTier": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The order of priority in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

" + } + }, + "DBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB instance.

" + } + }, + "Timezone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for RDS for Db2 and RDS for SQL Server DB instances that were created with a time zone specified.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled for the DB instance.

For a list of engine versions that support IAM database authentication, see IAM database authentication in the Amazon RDS User Guide and IAM database authentication in Aurora in the Amazon Aurora User Guide.

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

The mode of Database Insights that is enabled for the instance.

" + } + }, + "PerformanceInsightsEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether Performance Insights is enabled for the DB instance.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

" + } + }, + "EnabledCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

A list of log types that this DB instance is configured to export to CloudWatch Logs.

Log types vary by DB engine. For information about the log types for each DB engine, see Monitoring Amazon RDS log files in the Amazon RDS User Guide.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see Deleting a DB Instance.

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBInstanceRoles", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance.

" + } + }, + "ListenerEndpoint": { + "target": "com.amazonaws.rds#Endpoint", + "traits": { + "smithy.api#documentation": "

The listener connection endpoint for SQL Server Always On.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "AutomationMode": { + "target": "com.amazonaws.rds#AutomationMode", + "traits": { + "smithy.api#documentation": "

The automation mode of the RDS Custom DB instance: full or all paused. If full, the DB instance automates monitoring and instance recovery. If all paused, the instance pauses automation for the duration set by --resume-full-automation-mode-minutes.

" + } + }, + "ResumeFullAutomationModeTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The number of minutes to pause the automation. When the time period ends, RDS Custom resumes full automation. The minimum value is 60 (default). The maximum value is 1,440.

" + } + }, + "CustomerOwnedIpEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide and Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid Values: IPV4 | DUAL

" + } + }, + "ActivityStreamStatus": { + "target": "com.amazonaws.rds#ActivityStreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the database activity stream.

" + } + }, + "ActivityStreamKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "ActivityStreamKinesisStreamName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream used for the database activity stream.

" + } + }, + "ActivityStreamMode": { + "target": "com.amazonaws.rds#ActivityStreamMode", + "traits": { + "smithy.api#documentation": "

The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.

" + } + }, + "ActivityStreamEngineNativeAuditFieldsIncluded": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether engine-native audit fields are included in the database activity stream.

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" + } + }, + "DBInstanceAutomatedBackupsReplications": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList", + "traits": { + "smithy.api#documentation": "

The list of replicated automated backups associated with the DB instance.

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The location where automated backups and manual snapshots are stored: Dedicated Local Zones, Amazon Web Services Outposts or the Amazon Web Services Region.

" + } + }, + "AutomaticRestartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when a stopped DB instance is restarted automatically.

" + } + }, + "CustomIamInstanceProfile": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:

  • The profile must exist in your account.

  • The profile must have an IAM role that Amazon EC2 has permissions to assume.

  • The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom.

For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide.

" + } + }, + "ActivityStreamPolicyStatus": { + "target": "com.amazonaws.rds#ActivityStreamPolicyStatus", + "traits": { + "smithy.api#documentation": "

The status of the policy state of the activity stream.

" + } + }, + "CertificateDetails": { + "target": "com.amazonaws.rds#CertificateDetails", + "traits": { + "smithy.api#documentation": "

The details of the DB instance's server certificate.

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is only valid for RDS Custom DB instances.

" + } + }, + "MasterUserSecret": { + "target": "com.amazonaws.rds#MasterUserSecret", + "traits": { + "smithy.api#documentation": "

The secret managed by RDS in Amazon Web Services Secrets Manager for the master user password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

" + } + }, + "ReadReplicaSourceDBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the source DB cluster if this DB instance is a read replica.

" + } + }, + "PercentProgress": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The progress of the storage optimization operation as a percentage.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is in the multi-tenant configuration (TRUE) or the single-tenant configuration (FALSE).

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "IsStorageConfigUpgradeAvailable": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether an upgrade is recommended for the storage file system configuration on the DB instance. To migrate to the preferred configuration, you can either create a blue/green deployment, or create a read replica from the DB instance. For more information, see Upgrading the storage file system for a DB instance.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for the DB instance.

For more information, see CreateDBInstance.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesOutputList", + "traits": { + "smithy.api#documentation": "

The additional storage volumes associated with the DB instance. RDS supports additional storage volumes for RDS for Oracle and RDS for SQL Server.

" + } + }, + "StorageVolumeStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The detailed status information for storage volumes associated with the DB instance. This information helps identify which specific volume is causing the instance to be in a storage-full state.

" + } + }, + "StorageOperationStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of an in-progress storage operation on the DB instance. This field appears only while a storage operation is in progress. It isn't present when no storage operation is active. Possible values:

  • Initializing - The volume is initializing from a snapshot, such as during a snapshot restore, point-in-time restore, read replica creation, or blue/green deployment. Performance can be lower than provisioned until initialization completes.

  • Optimizing - The volume is optimizing following a storage scaling or modification operation.

" + } + }, + "StorageOperationPercentProgress": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The percentage of the in-progress storage operation on the DB instance that has completed, from 0 to 100. This field appears only while a storage operation is in progress. It isn't present when no storage operation is active.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier of the DB capacity reservation associated with this DB instance. Amazon RDS doesn't return this value if the DB instance doesn't use a DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon RDS DB instance.

This data type is used as a response element in the operations CreateDBInstance, CreateDBInstanceReadReplica, DeleteDBInstance, DescribeDBInstances, ModifyDBInstance, PromoteReadReplica, RebootDBInstance, RestoreDBInstanceFromDBSnapshot, RestoreDBInstanceFromS3, RestoreDBInstanceToPointInTime, StartDBInstance, and StopDBInstance.

" + } + }, + "com.amazonaws.rds#DBInstanceAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The user already has a DB instance with the given identifier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackup": { + "type": "structure", + "members": { + "DBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the automated backups.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "Region": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region associated with the automated backup.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "RestoreWindow": { + "target": "com.amazonaws.rds#RestoreWindow", + "traits": { + "smithy.api#documentation": "

The earliest and latest time a DB instance can be restored to.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The allocated storage size for the automated backup in gibibytes (GiB).

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A list of status information for an automated backup:

  • active - Automated backups for current instances.

  • retained - Automated backups for deleted instances.

  • creating - Automated backups that are waiting for the first automated snapshot to be available.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The port number that the automated backup used for connections.

Default: Inherits from the source DB instance

Valid Values: 1150-65535

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone that the automated backup was created in. For information on Amazon Web Services Regions and Availability Zones, see Regions and Availability Zones.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The VPC ID associated with the DB instance.

" + } + }, + "InstanceCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the DB instance was created.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master user name of an automated backup.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine for this automated backup.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine for the automated backup.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for the automated backup.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The IOPS (I/O operations per second) value for the automated backup.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput for the automated backup.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which the automated backup is associated for TDE encryption.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the automated backup is encrypted.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the automated backup. Possible values:

  • none - The automated backup is not encrypted.

  • sse-rds - The automated backup is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The automated backup is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type associated with the automated backup.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key ID for an automated backup.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "Timezone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time zone of the automated backup. In most cases, the Timezone element is empty. Timezone content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The retention period for the automated backups.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the replicated automated backups.

" + } + }, + "DBInstanceAutomatedBackupsReplications": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList", + "traits": { + "smithy.api#documentation": "

The list of replications to different Amazon Web Services Regions associated with the automated backup.

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The location where automated backups are stored: Dedicated Local Zones, Amazon Web Services Outposts or the Amazon Web Services Region.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the automatic backup is for a DB instance in the multi-tenant configuration (TRUE) or the single-tenant configuration (FALSE).

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

The additional storage volumes associated with the automated backup.

Valid Values: GP3 | IO2

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that existed at the time you deleted the source instance.

" + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup", + "traits": { + "smithy.api#xmlName": "DBInstanceAutomatedBackup" + } + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBInstanceAutomatedBackups": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupList", + "traits": { + "smithy.api#documentation": "

A list of DBInstanceAutomatedBackup instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBInstanceAutomatedBackups action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceAutomatedBackupNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

No automated backup for this DB instance was found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceAutomatedBackupQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The quota for retained automated backups was exceeded. This prevents you from retaining any additional automated backups. The retained automated backups quota is the same as your DB instance quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupsReplication": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the replicated automated backups.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Automated backups of a DB instance replicated to another Amazon Web Services Region. They consist of system backups, transaction logs, and database instance properties.

" + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplication", + "traits": { + "smithy.api#xmlName": "DBInstanceAutomatedBackupsReplication" + } + } + }, + "com.amazonaws.rds#DBInstanceClass": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 30 + }, + "smithy.api#pattern": "^db\\.[0-9a-z]{2,6}\\.[0-9a-z\\.]{4,20}$" + } + }, + "com.amazonaws.rds#DBInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstance", + "traits": { + "smithy.api#xmlName": "DBInstance" + } + } + }, + "com.amazonaws.rds#DBInstanceMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

" + } + }, + "DBInstances": { + "target": "com.amazonaws.rds#DBInstanceList", + "traits": { + "smithy.api#documentation": "

A list of DBInstance instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBInstances action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBInstanceNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBInstanceIdentifier doesn't refer to an existing DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBInstanceNotReadyFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceNotReady", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

An attempt to download or examine log files didn't succeed because an Aurora Serverless v2 instance was paused.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBInstanceRole": { + "type": "structure", + "members": { + "RoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.

" + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the feature associated with the Amazon Web Services Identity and Access Management (IAM) role. For information about supported feature names, see DBEngineVersion.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Information about the state of association between the IAM role and the DB instance. The Status property returns one of the following values:

  • ACTIVE - the IAM role ARN is associated with the DB instance and can be used to access other Amazon Web Services services on your behalf.

  • PENDING - the IAM role ARN is being associated with the DB instance.

  • INVALID - the IAM role ARN is associated with the DB instance, but the DB instance is unable to assume the IAM role in order to access other Amazon Web Services services on your behalf.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about an Amazon Web Services Identity and Access Management (IAM) role that is associated with a DB instance.

" + } + }, + "com.amazonaws.rds#DBInstanceRoleAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceRoleAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified RoleArn or FeatureName value is already associated with the DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBInstanceRoleNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceRoleNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified RoleArn value doesn't match the specified feature for the DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBInstanceRoleQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBInstanceRoleQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't associate any more Amazon Web Services Identity and Access Management (IAM) roles with the DB instance because the quota has been reached.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBInstanceRoles": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstanceRole", + "traits": { + "smithy.api#xmlName": "DBInstanceRole" + } + } + }, + "com.amazonaws.rds#DBInstanceStatusInfo": { + "type": "structure", + "members": { + "StatusType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

This value is currently \"read replication.\"

" + } + }, + "Normal": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the instance is operating normally (TRUE) or is in an error state (FALSE).

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the DB instance. For a StatusType of read replica, the values can be replicating, replication stop point set, replication stop point reached, error, stopped, or terminated.

" + } + }, + "Message": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Details of the error if there is an error for the instance. If the instance isn't in an error state, this value is blank.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a list of status information for a DB instance.

" + } + }, + "com.amazonaws.rds#DBInstanceStatusInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstanceStatusInfo", + "traits": { + "smithy.api#xmlName": "DBInstanceStatusInfo" + } + } + }, + "com.amazonaws.rds#DBLogFileNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBLogFileNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

LogFileName doesn't refer to an existing DB log file.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBMajorEngineVersion": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine.

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The major version number of the database engine.

" + } + }, + "SupportedEngineLifecycles": { + "target": "com.amazonaws.rds#SupportedEngineLifecycleList", + "traits": { + "smithy.api#documentation": "

A list of the lifecycles supported by this engine for the DescribeDBMajorEngineVersions operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the operation DescribeDBMajorEngineVersions.

" + } + }, + "com.amazonaws.rds#DBMajorEngineVersionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBMajorEngineVersion", + "traits": { + "smithy.api#xmlName": "DBMajorEngineVersion" + } + } + }, + "com.amazonaws.rds#DBParameterGroup": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group.

" + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group family that this DB parameter group is compatible with.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the customer-specified description for this DB parameter group.

" + } + }, + "DBParameterGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB parameter group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon RDS DB parameter group.

This data type is used as a response element in the DescribeDBParameterGroups action.

" + } + }, + "com.amazonaws.rds#DBParameterGroupAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBParameterGroupAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A DB parameter group with the same name exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBParameterGroupDetails": { + "type": "structure", + "members": { + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#documentation": "

A list of Parameter values.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBParameters action.

" + } + }, + "com.amazonaws.rds#DBParameterGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBParameterGroup", + "traits": { + "smithy.api#xmlName": "DBParameterGroup" + } + } + }, + "com.amazonaws.rds#DBParameterGroupNameMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the ModifyDBParameterGroup or ResetDBParameterGroup operation.

" + } + }, + "com.amazonaws.rds#DBParameterGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBParameterGroupNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBParameterGroupName doesn't refer to an existing DB parameter group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBParameterGroupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBParameterGroupQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of DB parameter groups.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBParameterGroupStatus": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group.

" + } + }, + "ParameterApplyStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of parameter updates. Valid values are:

  • applying: The parameter group change is being applied to the database.

  • failed-to-apply: The parameter group is in an invalid state.

  • in-sync: The parameter group change is synchronized with the database.

  • pending-database-upgrade: The parameter group change will be applied after the DB instance is upgraded.

  • pending-reboot: The parameter group change will be applied after the DB instance reboots.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status of the DB parameter group.

This data type is used as a response element in the following actions:

  • CreateDBInstance

  • CreateDBInstanceReadReplica

  • DeleteDBInstance

  • ModifyDBInstance

  • RebootDBInstance

  • RestoreDBInstanceFromDBSnapshot

" + } + }, + "com.amazonaws.rds#DBParameterGroupStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBParameterGroupStatus", + "traits": { + "smithy.api#xmlName": "DBParameterGroup" + } + } + }, + "com.amazonaws.rds#DBParameterGroupsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBParameterGroups": { + "target": "com.amazonaws.rds#DBParameterGroupList", + "traits": { + "smithy.api#documentation": "

A list of DBParameterGroup instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBParameterGroups action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBProxy": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region.

" + } + }, + "DBProxyArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the proxy.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#DBProxyStatus", + "traits": { + "smithy.api#documentation": "

The current status of this proxy. A status of available means the proxy is ready to handle requests. Other values indicate that you must wait for the proxy to be ready, or take some action to resolve an issue.

" + } + }, + "EngineFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. MYSQL supports Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases. POSTGRESQL supports Aurora PostgreSQL and RDS for PostgreSQL databases. SQLSERVER supports RDS for Microsoft SQL Server databases.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the VPC ID of the DB proxy.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

Provides a list of VPC security groups that the proxy belongs to.

" + } + }, + "VpcSubnetIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The EC2 subnet IDs for the proxy.

" + } + }, + "DefaultAuthScheme": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. Valid values are NONE and IAM_AUTH. When set to IAM_AUTH, the proxy uses end-to-end IAM authentication to connect to the database.

" + } + }, + "Auth": { + "target": "com.amazonaws.rds#UserAuthConfigInfoList", + "traits": { + "smithy.api#documentation": "

One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance or Aurora DB cluster.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access Amazon Secrets Manager.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.

" + } + }, + "RequireTLS": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether Transport Layer Security (TLS) encryption is required for connections to the proxy.

" + } + }, + "IdleClientTimeout": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds a connection to the proxy can have no activity before the proxy drops the client connection. The proxy keeps the underlying database connection open and puts it back into the connection pool for reuse by later connection requests.

Default: 1800 (30 minutes)

Constraints: 1 to 28,800

" + } + }, + "DebugLogging": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the proxy logs detailed connection and query information. When you enable DebugLogging, the proxy captures connection details and connection pool behavior from your queries. Debug logging increases CloudWatch costs and can impact proxy performance. Enable this option only when you need to troubleshoot connection or performance issues.

" + } + }, + "CreatedDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the proxy was first created.

" + } + }, + "UpdatedDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the proxy was last updated.

" + } + }, + "EndpointNetworkType": { + "target": "com.amazonaws.rds#EndpointNetworkType", + "traits": { + "smithy.api#documentation": "

The network type of the DB proxy endpoint. The network type determines the IP version that the proxy endpoint supports.

Valid values:

  • IPV4 - The proxy endpoint supports IPv4 only.

  • IPV6 - The proxy endpoint supports IPv6 only.

  • DUAL - The proxy endpoint supports both IPv4 and IPv6.

" + } + }, + "TargetConnectionNetworkType": { + "target": "com.amazonaws.rds#TargetConnectionNetworkType", + "traits": { + "smithy.api#documentation": "

The network type that the proxy uses to connect to the target database. The network type determines the IP version that the proxy uses for connections to the database.

Valid values:

  • IPV4 - The proxy connects to the database using IPv4 only.

  • IPV6 - The proxy connects to the database using IPv6 only.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The data structure representing a proxy managed by the RDS Proxy.

This data type is used as a response element in the DescribeDBProxies action.

" + } + }, + "com.amazonaws.rds#DBProxyAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified proxy name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBProxyEndpoint": { + "type": "structure", + "members": { + "DBProxyEndpointName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name for the DB proxy endpoint. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "DBProxyEndpointArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB proxy endpoint.

" + } + }, + "DBProxyName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the DB proxy that is associated with this DB proxy endpoint.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#DBProxyEndpointStatus", + "traits": { + "smithy.api#documentation": "

The current status of this DB proxy endpoint. A status of available means the endpoint is ready to handle requests. Other values indicate that you must wait for the endpoint to be ready, or take some action to resolve an issue.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the VPC ID of the DB proxy endpoint.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

Provides a list of VPC security groups that the DB proxy endpoint belongs to.

" + } + }, + "VpcSubnetIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The EC2 subnet IDs for the DB proxy endpoint.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.

" + } + }, + "CreatedDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the DB proxy endpoint was first created.

" + } + }, + "TargetRole": { + "target": "com.amazonaws.rds#DBProxyEndpointTargetRole", + "traits": { + "smithy.api#documentation": "

A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this endpoint is the default endpoint for the associated DB proxy. Default DB proxy endpoints always have read/write capability. Other endpoints that you associate with the DB proxy can be either read/write or read-only.

" + } + }, + "EndpointNetworkType": { + "target": "com.amazonaws.rds#EndpointNetworkType", + "traits": { + "smithy.api#documentation": "

The network type of the DB proxy endpoint. The network type determines the IP version that the proxy endpoint supports.

Valid values:

  • IPV4 - The proxy endpoint supports IPv4 only.

  • IPV6 - The proxy endpoint supports IPv6 only.

  • DUAL - The proxy endpoint supports both IPv4 and IPv6.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The data structure representing an endpoint associated with a DB proxy. RDS automatically creates one endpoint for each DB proxy. For Aurora DB clusters, you can associate additional endpoints with the same DB proxy. These endpoints can be read/write or read-only. They can also reside in different VPCs than the associated DB proxy.

This data type is used as a response element in the DescribeDBProxyEndpoints operation.

" + } + }, + "com.amazonaws.rds#DBProxyEndpointAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyEndpointAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified DB proxy endpoint name must be unique for all DB proxy endpoints owned by your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBProxyEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBProxyEndpoint" + } + }, + "com.amazonaws.rds#DBProxyEndpointName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#DBProxyEndpointNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyEndpointNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The DB proxy endpoint doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBProxyEndpointQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyEndpointQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB proxy already has the maximum number of endpoints.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBProxyEndpointStatus": { + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "INCOMPATIBLE_NETWORK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incompatible-network" + } + }, + "INSUFFICIENT_RESOURCE_LIMITS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-resource-limits" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + } + } + }, + "com.amazonaws.rds#DBProxyEndpointTargetRole": { + "type": "enum", + "members": { + "READ_WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_WRITE" + } + }, + "READ_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_ONLY" + } + } + } + }, + "com.amazonaws.rds#DBProxyList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBProxy" + } + }, + "com.amazonaws.rds#DBProxyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#DBProxyNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified proxy name doesn't correspond to a proxy owned by your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBProxyQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Your Amazon Web Services account already has the maximum number of proxies in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBProxyStatus": { + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "INCOMPATIBLE_NETWORK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "incompatible-network" + } + }, + "INSUFFICIENT_RESOURCE_LIMITS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "insufficient-resource-limits" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "SUSPENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspending" + } + }, + "REACTIVATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "reactivating" + } + } + } + }, + "com.amazonaws.rds#DBProxyTarget": { + "type": "structure", + "members": { + "TargetArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB cluster.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The writer endpoint for the RDS DB instance or Aurora DB cluster.

" + } + }, + "TrackedClusterId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB cluster identifier when the target represents an Aurora DB cluster. This field is blank when the target represents an RDS DB instance.

" + } + }, + "RdsResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier representing the target. It can be the instance identifier for an RDS DB instance, or the cluster identifier for an Aurora DB cluster.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The port that the RDS Proxy uses to connect to the target RDS DB instance or Aurora DB cluster.

" + } + }, + "Type": { + "target": "com.amazonaws.rds#TargetType", + "traits": { + "smithy.api#documentation": "

Specifies the kind of database, such as an RDS DB instance or an Aurora DB cluster, that the target represents.

" + } + }, + "Role": { + "target": "com.amazonaws.rds#TargetRole", + "traits": { + "smithy.api#documentation": "

A value that indicates whether the target of the proxy can be used for read/write or read-only operations.

" + } + }, + "TargetHealth": { + "target": "com.amazonaws.rds#TargetHealth", + "traits": { + "smithy.api#documentation": "

Information about the connection health of the RDS Proxy target.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details for an RDS Proxy target. It represents an RDS DB instance or Aurora DB cluster that the proxy can connect to. One or more targets are associated with an RDS Proxy target group.

This data type is used as a response element in the DescribeDBProxyTargets action.

" + } + }, + "com.amazonaws.rds#DBProxyTargetAlreadyRegisteredFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyTargetAlreadyRegisteredFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The proxy is already associated with the specified RDS DB instance or Aurora DB cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBProxyTargetGroup": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the RDS proxy associated with this target group.

" + } + }, + "TargetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the target group. This name must be unique for all target groups owned by your Amazon Web Services account in the specified Amazon Web Services Region.

" + } + }, + "TargetGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) representing the target group.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this target group is the first one used for connection requests by the associated proxy. Because each proxy is currently associated with a single target group, currently this setting is always true.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The current status of this target group. A status of available means the target group is correctly associated with a database. Other values indicate that you must wait for the target group to be ready, or take some action to resolve an issue.

" + } + }, + "ConnectionPoolConfig": { + "target": "com.amazonaws.rds#ConnectionPoolConfigurationInfo", + "traits": { + "smithy.api#documentation": "

The settings that determine the size and behavior of the connection pool for the target group.

" + } + }, + "CreatedDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the target group was first created.

" + } + }, + "UpdatedDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time when the target group was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a set of RDS DB instances, Aurora DB clusters, or both that a proxy can connect to. Currently, each target group is associated with exactly one RDS DB instance or Aurora DB cluster.

This data type is used as a response element in the DescribeDBProxyTargetGroups action.

" + } + }, + "com.amazonaws.rds#DBProxyTargetGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyTargetGroupNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified target group isn't available for a proxy owned by your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBProxyTargetNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBProxyTargetNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified RDS DB instance or Aurora DB cluster isn't available for a proxy owned by your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBRecommendation": { + "type": "structure", + "members": { + "RecommendationId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The unique identifier of the recommendation.

" + } + }, + "TypeId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value that indicates the type of recommendation. This value determines how the description is rendered.

" + } + }, + "Severity": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The severity level of the recommendation. The severity level can help you decide the urgency with which to address the recommendation.

Valid values:

  • high

  • medium

  • low

  • informational

" + } + }, + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RDS resource associated with the recommendation.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The current status of the recommendation.

Valid values:

  • active - The recommendations which are ready for you to apply.

  • pending - The applied or scheduled recommendations which are in progress.

  • resolved - The recommendations which are completed.

  • dismissed - The recommendations that you dismissed.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the recommendation was created. For example, 2023-09-28T01:13:53.931000+00:00.

" + } + }, + "UpdatedTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the recommendation was last updated.

" + } + }, + "Detection": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description of the issue identified for this recommendation. The description might contain markdown.

" + } + }, + "Recommendation": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description of the recommendation to resolve an issue. The description might contain markdown.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A detailed description of the recommendation. The description might contain markdown.

" + } + }, + "Reason": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The reason why this recommendation was created. The information might contain markdown.

" + } + }, + "RecommendedActions": { + "target": "com.amazonaws.rds#RecommendedActionList", + "traits": { + "smithy.api#documentation": "

A list of recommended actions.

" + } + }, + "Category": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The category of the recommendation.

Valid values:

  • performance efficiency

  • security

  • reliability

  • cost optimization

  • operational excellence

  • sustainability

" + } + }, + "Source": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service that generated the recommendations.

" + } + }, + "TypeDetection": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description of the recommendation type. The description might contain markdown.

" + } + }, + "TypeRecommendation": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description that summarizes the recommendation to fix all the issues of the recommendation type. The description might contain markdown.

" + } + }, + "Impact": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description that explains the possible impact of an issue.

" + } + }, + "AdditionalInfo": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Additional information about the recommendation. The information might contain markdown.

" + } + }, + "Links": { + "target": "com.amazonaws.rds#DocLinkList", + "traits": { + "smithy.api#documentation": "

A link to documentation that provides additional information about the recommendation.

" + } + }, + "IssueDetails": { + "target": "com.amazonaws.rds#IssueDetails", + "traits": { + "smithy.api#documentation": "

Details of the issue that caused the recommendation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommendation for your DB instances, DB clusters, and DB parameter groups.

" + } + }, + "com.amazonaws.rds#DBRecommendationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBRecommendation" + } + }, + "com.amazonaws.rds#DBRecommendationMessage": { + "type": "structure", + "members": { + "DBRecommendation": { + "target": "com.amazonaws.rds#DBRecommendation" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBRecommendationsMessage": { + "type": "structure", + "members": { + "DBRecommendations": { + "target": "com.amazonaws.rds#DBRecommendationList", + "traits": { + "smithy.api#documentation": "

A list of recommendations which is returned from DescribeDBRecommendations API request.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DBRecommendationsMessage request. This token can be used later in a DescribeDBRecomendations request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the Amazon Web Services ID of the owner of a specific DB security group.

" + } + }, + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the DB security group.

" + } + }, + "DBSecurityGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the description of the DB security group.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the VpcId of the DB security group.

" + } + }, + "EC2SecurityGroups": { + "target": "com.amazonaws.rds#EC2SecurityGroupList", + "traits": { + "smithy.api#documentation": "

Contains a list of EC2SecurityGroup elements.

" + } + }, + "IPRanges": { + "target": "com.amazonaws.rds#IPRangeList", + "traits": { + "smithy.api#documentation": "

Contains a list of IPRange elements.

" + } + }, + "DBSecurityGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB security group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details for an Amazon RDS DB security group.

This data type is used as a response element in the DescribeDBSecurityGroups action.

" + } + }, + "com.amazonaws.rds#DBSecurityGroupAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSecurityGroupAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A DB security group with the name specified in DBSecurityGroupName already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSecurityGroupMembership": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB security group.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the DB security group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the following actions:

  • ModifyDBInstance

  • RebootDBInstance

  • RestoreDBInstanceFromDBSnapshot

  • RestoreDBInstanceToPointInTime

" + } + }, + "com.amazonaws.rds#DBSecurityGroupMembershipList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSecurityGroupMembership", + "traits": { + "smithy.api#xmlName": "DBSecurityGroup" + } + } + }, + "com.amazonaws.rds#DBSecurityGroupMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBSecurityGroups": { + "target": "com.amazonaws.rds#DBSecurityGroups", + "traits": { + "smithy.api#documentation": "

A list of DBSecurityGroup instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBSecurityGroups action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBSecurityGroupNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "DBSecurityGroupName" + } + } + }, + "com.amazonaws.rds#DBSecurityGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSecurityGroupNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBSecurityGroupName doesn't refer to an existing DB security group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBSecurityGroupNotSupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSecurityGroupNotSupported", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A DB security group isn't allowed for this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSecurityGroupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "QuotaExceeded.DBSecurityGroup", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of DB security groups.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSecurityGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSecurityGroup", + "traits": { + "smithy.api#xmlName": "DBSecurityGroup" + } + } + }, + "com.amazonaws.rds#DBShardGroup": { + "type": "structure", + "members": { + "DBShardGroupResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region-unique, immutable identifier for the DB shard group.

" + } + }, + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#DBShardGroupIdentifier", + "traits": { + "smithy.api#documentation": "

The name of the DB shard group.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the primary DB cluster for the DB shard group.

" + } + }, + "MaxACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

" + } + }, + "MinACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum capacity of the DB shard group in Aurora capacity units (ACUs).

" + } + }, + "ComputeRedundancy": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to create standby DB shard groups for the DB shard group. Valid values are the following:

  • 0 - Creates a DB shard group without a standby DB shard group. This is the default value.

  • 1 - Creates a DB shard group with a standby DB shard group in a different Availability Zone (AZ).

  • 2 - Creates a DB shard group with two standby DB shard groups in two different AZs.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the DB shard group.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB shard group is publicly accessible.

When the DB shard group is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB shard group's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB shard group's VPC. Access to the DB shard group is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB shard group doesn't permit it.

When the DB shard group isn't publicly accessible, it is an internal DB shard group with a DNS name that resolves to a private IP address.

For more information, see CreateDBShardGroup.

This setting is only for Aurora Limitless Database.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The connection endpoint for the DB shard group.

" + } + }, + "DBShardGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB shard group.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details for an Amazon RDS DB shard group.

" + } + }, + "com.amazonaws.rds#DBShardGroupAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBShardGroupAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified DB shard group name must be unique in your Amazon Web Services account in the specified Amazon Web Services Region.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBShardGroupIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#DBShardGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBShardGroupNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified DB shard group name wasn't found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBShardGroupsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBShardGroup", + "traits": { + "smithy.api#xmlName": "DBShardGroup" + } + } + }, + "com.amazonaws.rds#DBSnapshot": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the identifier for the DB snapshot.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the DB instance identifier of the DB instance this DB snapshot was created from.

" + } + }, + "SnapshotCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

Specifies when the snapshot was taken in Coordinated Universal Time (UTC). Changes for the copy when the snapshot is copied.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the database engine.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the allocated storage size in gibibytes (GiB).

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the status of this DB snapshot.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the port that the database engine was listening on at the time of the snapshot.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the VPC ID associated with the DB snapshot.

" + } + }, + "InstanceCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the master username for the DB snapshot.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the version of the database engine.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

License model information for the restored DB instance.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the type of the DB snapshot.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the storage throughput for the DB snapshot.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the option group name for the DB snapshot.

" + } + }, + "PercentProgress": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of the estimated data that has been transferred.

" + } + }, + "SourceRegion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region that the DB snapshot was created in or copied from.

" + } + }, + "SourceDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has a value in the case of a cross-account or cross-Region copy.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type associated with DB snapshot.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which to associate the instance for TDE encryption.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB snapshot is encrypted.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the DB snapshot. Possible values:

  • none - The DB snapshot is not encrypted.

  • sse-rds - The DB snapshot is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The DB snapshot is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automatic DB snapshots are retained.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If Encrypted is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "DBSnapshotArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB snapshot.

" + } + }, + "Timezone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time zone of the DB snapshot. In most cases, the Timezone element is empty. Timezone content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified.

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + }, + "SnapshotTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies where manual snapshots are stored: Dedicated Local Zones, Amazon Web Services Outposts or the Amazon Web Services Region.

" + } + }, + "OriginalSnapshotCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

Specifies the time of the CreateDBSnapshot operation in Coordinated Universal Time (UTC). Doesn't change when the snapshot is copied.

" + } + }, + "SnapshotDatabaseTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the most recent transaction applied to the database that you're backing up. Thus, if you restore a snapshot, SnapshotDatabaseTime is the most recent transaction in the restored DB instance. In contrast, originalSnapshotCreateTime specifies the system time that the snapshot completed.

If you back up a read replica, you can determine the replica lag by comparing SnapshotDatabaseTime with originalSnapshotCreateTime. For example, if originalSnapshotCreateTime is two hours later than SnapshotDatabaseTime, then the replica lag is two hours.

" + } + }, + "DBSystemId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. The Oracle SID is also the name of your CDB.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the snapshot is of a DB instance using the multi-tenant configuration (TRUE) or the single-tenant configuration (FALSE).

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

The additional storage volumes associated with the DB snapshot. RDS supports additional storage volumes for RDS for Oracle and RDS for SQL Server.

" + } + }, + "SnapshotAvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the Availability Zone where RDS stores the DB snapshot. This value is valid only for snapshots that RDS stores on a Dedicated Local Zone.

" + } + }, + "FullSnapshotSizeInBytes": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The full size of the DB snapshot, in bytes.

This is not the incremental size of the snapshot. This is the full snapshot size and represents the size of all the blocks that were written to the source volume at the time the snapshot was created.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon RDS DB snapshot.

This data type is used as a response element in the DescribeDBSnapshots action.

" + } + }, + "com.amazonaws.rds#DBSnapshotAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSnapshotAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

DBSnapshotIdentifier is already used by an existing snapshot.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSnapshotAttribute": { + "type": "structure", + "members": { + "AttributeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the manual DB snapshot attribute.

The attribute named restore refers to the list of Amazon Web Services accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBSnapshotAttribute API action.

" + } + }, + "AttributeValues": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

The value or values for the manual DB snapshot attribute.

If the AttributeName field is set to restore, then this element returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual DB snapshot. If a value of all is in the list, then the manual DB snapshot is public and available for any Amazon Web Services account to copy or restore.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the name and values of a manual DB snapshot attribute

Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute API.

" + } + }, + "com.amazonaws.rds#DBSnapshotAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSnapshotAttribute", + "traits": { + "smithy.api#xmlName": "DBSnapshotAttribute" + } + } + }, + "com.amazonaws.rds#DBSnapshotAttributesResult": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the manual DB snapshot that the attributes apply to.

" + } + }, + "DBSnapshotAttributes": { + "target": "com.amazonaws.rds#DBSnapshotAttributeList", + "traits": { + "smithy.api#documentation": "

The list of attributes and values for the manual DB snapshot.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the results of a successful call to the DescribeDBSnapshotAttributes API action.

Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute API action.

" + } + }, + "com.amazonaws.rds#DBSnapshotList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSnapshot", + "traits": { + "smithy.api#xmlName": "DBSnapshot" + } + } + }, + "com.amazonaws.rds#DBSnapshotMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBSnapshots": { + "target": "com.amazonaws.rds#DBSnapshotList", + "traits": { + "smithy.api#documentation": "

A list of DBSnapshot instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBSnapshots action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBSnapshotNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSnapshotNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBSnapshotIdentifier doesn't refer to an existing DB snapshot.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabase": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the snapshot of the DB instance.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID for the DB instance that contains the tenant databases.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource identifier of the source CDB instance. This identifier can't be changed and is unique to an Amazon Web Services Region.

" + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of DB snapshot.

" + } + }, + "TenantDatabaseCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time the DB snapshot was taken, specified in Coordinated Universal Time (UTC). If you copy the snapshot, the creation time changes.

" + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the tenant database.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master username of the tenant database.

" + } + }, + "TenantDatabaseResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the tenant database.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the character set of a tenant database.

" + } + }, + "DBSnapshotTenantDatabaseARN": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the snapshot tenant database.

" + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The NCHAR character set name of the tenant database.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of a tenant database in a snapshot of a DB instance.

" + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSnapshotTenantDatabaseNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified snapshot tenant database wasn't found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabasesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabase", + "traits": { + "smithy.api#xmlName": "DBSnapshotTenantDatabase" + } + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabasesMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBSnapshotTenantDatabases": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabasesList", + "traits": { + "smithy.api#documentation": "

A list of DB snapshot tenant databases.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB subnet group.

" + } + }, + "DBSubnetGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the description of the DB subnet group.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the VpcId of the DB subnet group.

" + } + }, + "SubnetGroupStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the status of the DB subnet group.

" + } + }, + "Subnets": { + "target": "com.amazonaws.rds#SubnetList", + "traits": { + "smithy.api#documentation": "

Contains a list of Subnet elements. The list of subnets shown here might not reflect the current state of your VPC. For the most up-to-date information, we recommend checking your VPC configuration directly.

" + } + }, + "DBSubnetGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the DB subnet group.

" + } + }, + "SupportedNetworkTypes": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The network type of the DB subnet group.

Valid values:

  • IPV4

  • DUAL

A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of an Amazon RDS DB subnet group.

This data type is used as a response element in the DescribeDBSubnetGroups action.

" + } + }, + "com.amazonaws.rds#DBSubnetGroupAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetGroupAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

DBSubnetGroupName is already used by an existing DB subnet group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetGroupDoesNotCoverEnoughAZs", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSubnetGroupMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DBSubnetGroups": { + "target": "com.amazonaws.rds#DBSubnetGroups", + "traits": { + "smithy.api#documentation": "

A list of DBSubnetGroup instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeDBSubnetGroups action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DBSubnetGroupNotAllowedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetGroupNotAllowedFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DBSubnetGroup shouldn't be specified while creating read replicas that lie in the same region as the source instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSubnetGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetGroupNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

DBSubnetGroupName doesn't refer to an existing DB subnet group.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBSubnetGroupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetGroupQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of DB subnet groups.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBSubnetGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSubnetGroup", + "traits": { + "smithy.api#xmlName": "DBSubnetGroup" + } + } + }, + "com.amazonaws.rds#DBSubnetQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSubnetQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of subnets in a DB subnet groups.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DBUpgradeDependencyFailureFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBUpgradeDependencyFailure", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB upgrade failed because a resource the DB depends on can't be modified.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#DataFilter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25600 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*$" + } + }, + "com.amazonaws.rds#DatabaseArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[A-Za-z][0-9A-Za-z-:._]*$" + } + }, + "com.amazonaws.rds#DatabaseInsightsMode": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "ADVANCED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "advanced" + } + } + } + }, + "com.amazonaws.rds#DefaultAuthScheme": { + "type": "enum", + "members": { + "IAM_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IAM_AUTH" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.rds#DeleteBlueGreenDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteBlueGreenDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.rds#DeleteBlueGreenDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete resources in green environment for an RDS for MySQL DB instance", + "documentation": "The following example deletes the resources in a green environment for an RDS for MySQL DB instance.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "DeleteTarget": true + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-j382ha", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ejv4ao", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-vlpz3t", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "DELETING", + "CreateTime": "2022-02-25T21:18:51.183Z", + "DeleteTime": "2022-02-25T22:25:31.331Z" + } + } + }, + { + "title": "To delete resources in green environment for an Aurora MySQL DB cluster", + "documentation": "The following example deletes the resources in a green environment for an Aurora MySQL DB cluster.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "DeleteTarget": true + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-gpmaxf", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-j2oajq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-mkxies", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-4sqjrq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-gwwzlg", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "DELETING", + "CreateTime": "2022-02-25T21:12:00.288Z", + "DeleteTime": "2022-02-25T22:29:11.336Z" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteBlueGreenDeploymentRequest": { + "type": "structure", + "members": { + "BlueGreenDeploymentIdentifier": { + "target": "com.amazonaws.rds#BlueGreenDeploymentIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of the blue/green deployment to delete. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing blue/green deployment identifier.

", + "smithy.api#required": {} + } + }, + "DeleteTarget": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to delete the resources in the green environment. You can't specify this option if the blue/green deployment status is SWITCHOVER_COMPLETED.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteBlueGreenDeploymentResponse": { + "type": "structure", + "members": { + "BlueGreenDeployment": { + "target": "com.amazonaws.rds#BlueGreenDeployment" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteCustomDBEngineVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteCustomDBEngineVersionMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBEngineVersion" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom engine version. To run this command, make sure you meet the following prerequisites:

  • The CEV must not be the default for RDS Custom. If it is, change the default before running this command.

  • The CEV must not be associated with an RDS Custom DB instance, RDS Custom instance snapshot, or automated backup of your RDS Custom instance.

Typically, deletion takes a few minutes.

The MediaImport service that imports files from Amazon S3 to create CEVs isn't integrated with Amazon Web Services CloudTrail. If you turn on data logging for Amazon RDS in CloudTrail, calls to the DeleteCustomDbEngineVersion event aren't logged. However, you might see calls from the API gateway that accesses your Amazon S3 bucket. These calls originate from the MediaImport service for the DeleteCustomDbEngineVersion event.

For more information, see Deleting a CEV in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#DeleteCustomDBEngineVersionMessage": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#CustomEngineName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine.

RDS Custom for Oracle supports the following values:

  • custom-oracle-ee

  • custom-oracle-ee-cdb

  • custom-oracle-se2

  • custom-oracle-se2-cdb

RDS Custom for SQL Server supports the following values:

  • custom-sqlserver-ee

  • custom-sqlserver-se

  • custom-sqlserver-web

  • custom-sqlserver-dev

RDS for SQL Server supports the following values:

  • sqlserver-ee (Bring Your Own Media)

  • sqlserver-se (Bring Your Own Media)

  • sqlserver-dev-ee

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#CustomEngineVersion", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The custom engine version (CEV) for your DB instance. This option is required for RDS Custom, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Amazon Web Services Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

If you're deleting a Multi-AZ DB cluster with read replicas, all cluster members are terminated and read replicas are promoted to standalone instances.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a DB cluster", + "documentation": "The following example deletes the DB cluster named mycluster and takes a final snapshot named mycluster-final-snapshot. The status of the DB cluster is available while the snapshot is being taken. ", + "input": { + "DBClusterIdentifier": "mycluster", + "SkipFinalSnapshot": false, + "FinalDBSnapshotIdentifier": "mycluster-final-snapshot" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 20, + "AvailabilityZones": [ + "eu-central-1b", + "eu-central-1c", + "eu-central-1a" + ], + "BackupRetentionPeriod": 7, + "DBClusterIdentifier": "mycluster", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default-vpc-aa11bb22", + "Status": "available" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBClusterAutomatedBackup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBClusterAutomatedBackupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBClusterAutomatedBackupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterAutomatedBackupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes automated backups using the DbClusterResourceId value of the source DB cluster or the Amazon Resource Name (ARN) of the automated backups.

" + } + }, + "com.amazonaws.rds#DeleteDBClusterAutomatedBackupMessage": { + "type": "structure", + "members": { + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the source DB cluster, which can't be changed and which is unique to an Amazon Web Services Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterAutomatedBackupResult": { + "type": "structure", + "members": { + "DBClusterAutomatedBackup": { + "target": "com.amazonaws.rds#DBClusterAutomatedBackup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBClusterEndpointMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterEndpoint" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterEndpointStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom endpoint and removes it from an Amazon Aurora DB cluster.

This action only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To delete a custom DB cluster endpoint", + "documentation": "The following example deletes the specified custom DB cluster endpoint.", + "input": { + "DBClusterEndpointIdentifier": "mycustomendpoint" + }, + "output": { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "deleting", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2", + "dbinstance3" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBClusterEndpointMessage": { + "type": "structure", + "members": { + "DBClusterEndpointIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier associated with the custom endpoint. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing DBClusterIdentifier.

", + "smithy.api#required": {} + } + }, + "SkipFinalSnapshot": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to skip the creation of a final DB cluster snapshot before RDS deletes the DB cluster. If you set this value to true, RDS doesn't create a final DB cluster snapshot. If you set this value to false or don't specify it, RDS creates a DB cluster snapshot before it deletes the DB cluster. By default, this parameter is disabled, so RDS creates a final DB cluster snapshot.

If SkipFinalSnapshot is disabled, you must specify a value for the FinalDBSnapshotIdentifier parameter.

" + } + }, + "FinalDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is disabled.

If you specify this parameter and also skip the creation of a final DB cluster snapshot with the SkipFinalShapshot parameter, the request results in an error.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

" + } + }, + "DeleteAutomatedBackups": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to remove automated backups immediately after the DB cluster is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB cluster is deleted, unless the Amazon Web Services Backup policy specifies a point-in-time restore rule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBClusterParameterGroupMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a DB cluster parameter group", + "documentation": "The following example deletes the specified DB cluster parameter group.", + "input": { + "DBClusterParameterGroupName": "mydbclusterparametergroup" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBClusterParameterGroupMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster parameter group.

Constraints:

  • Must be the name of an existing DB cluster parameter group.

  • You can't delete a default DB cluster parameter group.

  • Can't be associated with any DB clusters.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBClusterSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBClusterSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB cluster snapshot must be in the available state to be deleted.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a DB cluster snapshot", + "documentation": "", + "input": { + "DBClusterSnapshotIdentifier": "mydbclustersnapshot" + }, + "output": { + "DBClusterSnapshot": { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "mydbclustersnapshot", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-18T21:21:00.469Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:mydbclustersnapshot", + "IAMDatabaseAuthenticationEnabled": false + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBClusterSnapshotMessage": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster snapshot to delete.

Constraints: Must be the name of an existing DB cluster snapshot in the available state.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBClusterSnapshotResult": { + "type": "structure", + "members": { + "DBClusterSnapshot": { + "target": "com.amazonaws.rds#DBClusterSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. However, manual DB snapshots of the DB instance aren't deleted.

If you request a final DB snapshot, the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. This operation can't be canceled or reverted after it begins. To monitor the status of this operation, use DescribeDBInstance.

When a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when you skip creation of the final snapshot with the SkipFinalSnapshot parameter.

If the specified DB instance is part of an Amazon Aurora DB cluster, you can't delete the DB instance if both of the following conditions are true:

  • The DB cluster is a read replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first use the PromoteReadReplicaDBCluster operation to promote the DB cluster so that it's no longer a read replica. After the promotion completes, use the DeleteDBInstance operation to delete the final instance in the DB cluster.

For RDS Custom DB instances, deleting the DB instance permanently deletes the EC2 instance and the associated EBS volumes. Make sure that you don't terminate or delete these resources before you delete the DB instance. Otherwise, deleting the DB instance and creation of the final snapshot might fail.

", + "smithy.api#examples": [ + { + "title": "To delete a DB instance", + "documentation": "The following example deletes the specified DB instance after creating a final DB snapshot named test-instance-final-snap.", + "input": { + "DBInstanceIdentifier": "test-instance", + "SkipFinalSnapshot": false, + "FinalDBSnapshotIdentifier": "test-instance-final-snap" + }, + "output": { + "DBInstance": { + "DBInstanceIdentifier": "test-instance", + "DBInstanceStatus": "deleting" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBInstanceAutomatedBackup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceAutomatedBackupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes automated backups using the DbiResourceId value of the source DB instance or the Amazon Resource Name (ARN) of the automated backups.

", + "smithy.api#examples": [ + { + "title": "To delete a replicated automated backup from a Region", + "documentation": "The following example deletes the automated backup with the specified Amazon Resource Name (ARN).", + "input": { + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + }, + "output": { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": {}, + "AllocatedStorage": 20, + "Status": "deleting", + "Port": 1521, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-########", + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 7, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupMessage": { + "type": "structure", + "members": { + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.

" + } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the automated backups to delete, for example, arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

This setting doesn't apply to RDS Custom.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Parameter input for the DeleteDBInstanceAutomatedBackup operation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupResult": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackup": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match the name of an existing DB instance.

", + "smithy.api#required": {} + } + }, + "SkipFinalSnapshot": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to skip the creation of a final DB snapshot before deleting the instance. If you enable this parameter, RDS doesn't create a DB snapshot. If you don't enable this parameter, RDS creates a DB snapshot before the DB instance is deleted. By default, skip isn't enabled, and the DB snapshot is created.

If you don't enable this parameter, you must specify the FinalDBSnapshotIdentifier parameter.

When a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, RDS can delete the instance only if you enable this parameter.

If you delete a read replica or an RDS Custom instance, you must enable this setting.

This setting is required for RDS Custom.

" + } + }, + "FinalDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DBSnapshotIdentifier of the new DBSnapshot created when the SkipFinalSnapshot parameter is disabled.

If you enable this parameter and also enable SkipFinalShapshot, the command results in an error.

This setting doesn't apply to RDS Custom.

Constraints:

  • Must be 1 to 255 letters or numbers.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

  • Can't be specified when deleting a read replica.

" + } + }, + "DeleteAutomatedBackups": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBParameterGroupMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a specified DB parameter group. The DB parameter group to be deleted can't be associated with any DB instances.

", + "smithy.api#examples": [ + { + "title": "To delete a DB parameter group", + "documentation": "The following example deletes a DB parameter group.", + "input": { + "DBParameterGroupName": "mydbparametergroup" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBParameterGroupMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • You can't delete a default DB parameter group

  • Can't be associated with any DB instances

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBProxy": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBProxyRequest" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBProxyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an existing DB proxy.

" + } + }, + "com.amazonaws.rds#DeleteDBProxyEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBProxyEndpointRequest" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBProxyEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyEndpointStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a DBProxyEndpoint. Doing so removes the ability to access the DB proxy using the endpoint that you defined. The endpoint that you delete might have provided capabilities such as read/write or read-only operations, or using a different VPC than the DB proxy's default VPC.

" + } + }, + "com.amazonaws.rds#DeleteDBProxyEndpointRequest": { + "type": "structure", + "members": { + "DBProxyEndpointName": { + "target": "com.amazonaws.rds#DBProxyEndpointName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB proxy endpoint to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBProxyEndpointResponse": { + "type": "structure", + "members": { + "DBProxyEndpoint": { + "target": "com.amazonaws.rds#DBProxyEndpoint", + "traits": { + "smithy.api#documentation": "

The data structure representing the details of the DB proxy endpoint that you delete.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBProxyRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB proxy to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBProxyResponse": { + "type": "structure", + "members": { + "DBProxy": { + "target": "com.amazonaws.rds#DBProxy", + "traits": { + "smithy.api#documentation": "

The data structure representing the details of the DB proxy that you delete.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBSecurityGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBSecurityGroupMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSecurityGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To delete a DB security group", + "documentation": "The following example deletes a DB security group.", + "input": { + "DBSecurityGroupName": "mysecgroup" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBSecurityGroupMessage": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB security group to delete.

You can't delete the default DB security group.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBShardGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBShardGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBShardGroup" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBShardGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an Aurora Limitless Database DB shard group.

" + } + }, + "com.amazonaws.rds#DeleteDBShardGroupMessage": { + "type": "structure", + "members": { + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#DBShardGroupIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB shard group to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteDBSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a DB snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB snapshot must be in the available state to be deleted.

", + "smithy.api#examples": [ + { + "title": "To delete a DB snapshot", + "documentation": "The following example deletes the specified DB snapshot.", + "input": { + "DBSnapshotIdentifier": "mydbsnapshot" + }, + "output": { + "DBSnapshot": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "database-mysql", + "SnapshotCreateTime": "2019-06-18T22:08:40.702Z", + "Engine": "mysql", + "AllocatedStorage": 100, + "Status": "deleted", + "Port": 3306, + "AvailabilityZone": "us-east-1b", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2019-04-30T15:45:53.663Z", + "MasterUsername": "admin", + "EngineVersion": "5.6.40", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "Iops": 1000, + "OptionGroupName": "default:mysql-5-6", + "PercentProgress": 100, + "StorageType": "io1", + "Encrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBSnapshotMessage": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB snapshot identifier.

Constraints: Must be the name of an existing DB snapshot in the available state.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteDBSnapshotResult": { + "type": "structure", + "members": { + "DBSnapshot": { + "target": "com.amazonaws.rds#DBSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteDBSubnetGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteDBSubnetGroupMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a DB subnet group.

The specified database subnet group must not be associated with any DB instances.

", + "smithy.api#examples": [ + { + "title": "To delete a DB subnet group", + "documentation": "The following example deletes the DB subnet group called mysubnetgroup.", + "input": { + "DBSubnetGroupName": "mysubnetgroup" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteDBSubnetGroupMessage": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the database subnet group to delete.

You can't delete the default subnet group.

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mydbsubnetgroup

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteEventSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteEventSubscriptionMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteEventSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidEventSubscriptionStateFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an RDS event notification subscription.

", + "smithy.api#examples": [ + { + "title": "To delete an event subscription", + "documentation": "The following example deletes the specified event subscription.", + "input": { + "SubscriptionName": "my-instance-events" + }, + "output": { + "EventSubscription": { + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "CustomerAwsId": "123456789012", + "Enabled": false, + "SourceIdsList": [ + "test-instance" + ], + "SourceType": "db-instance", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SubscriptionCreationTime": "2018-07-31 23:22:01.893", + "CustSubscriptionId": "my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "Status": "deleting" + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteEventSubscriptionMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the RDS event notification subscription you want to delete.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteEventSubscriptionResult": { + "type": "structure", + "members": { + "EventSubscription": { + "target": "com.amazonaws.rds#EventSubscription" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a global database cluster. The primary and secondary clusters must already be detached or destroyed first.

This action only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To delete a global DB cluster", + "documentation": "The following example deletes an Aurora MySQL-compatible global DB cluster.", + "input": { + "GlobalClusterIdentifier": "myglobalcluster" + }, + "output": { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#DeleteGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The cluster identifier of the global database cluster being deleted.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeleteIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteIntegrationMessage" + }, + "output": { + "target": "com.amazonaws.rds#Integration" + }, + "errors": [ + { + "target": "com.amazonaws.rds#IntegrationConflictOperationFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidIntegrationStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a zero-ETL integration with Amazon Redshift.

", + "smithy.api#examples": [ + { + "title": "To delete a zero-ETL integration", + "documentation": "The following example deletes a zero-ETL integration with Amazon Redshift.", + "input": { + "IntegrationIdentifier": "5b9f3d79-7392-4a3e-896c-58eaa1b53231" + }, + "output": { + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "IntegrationName": "my-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", + "Tags": [], + "CreateTime": "2023-12-28T17:20:20.629Z", + "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "Status": "deleting" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteIntegrationMessage": { + "type": "structure", + "members": { + "IntegrationIdentifier": { + "target": "com.amazonaws.rds#IntegrationIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of the integration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteOptionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteOptionGroupMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidOptionGroupStateFault" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an existing option group.

", + "smithy.api#examples": [ + { + "title": "To delete an option group", + "documentation": "The following example deletes the specified option group.", + "input": { + "OptionGroupName": "myoptiongroup" + } + } + ] + } + }, + "com.amazonaws.rds#DeleteOptionGroupMessage": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the option group to be deleted.

You can't delete default option groups.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a tenant database from your DB instance. This command only applies to RDS for Oracle container database (CDB) instances.

You can't delete a tenant database when it is the only tenant in the DB instance.

" + } + }, + "com.amazonaws.rds#DeleteTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied identifier for the DB instance that contains the tenant database that you want to delete.

", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied name of the tenant database that you want to remove from your DB instance. Amazon RDS deletes the tenant database with this name. This parameter isn’t case-sensitive.

", + "smithy.api#required": {} + } + }, + "SkipFinalSnapshot": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to skip the creation of a final DB snapshot before removing the tenant database from your DB instance. If you enable this parameter, RDS doesn't create a DB snapshot. If you don't enable this parameter, RDS creates a DB snapshot before it deletes the tenant database. By default, RDS doesn't skip the final snapshot. If you don't enable this parameter, you must specify the FinalDBSnapshotIdentifier parameter.

" + } + }, + "FinalDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DBSnapshotIdentifier of the new DBSnapshot created when the SkipFinalSnapshot parameter is disabled.

If you enable this parameter and also enable SkipFinalShapshot, the command results in an error.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DeregisterDBProxyTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeregisterDBProxyTargetsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DeregisterDBProxyTargetsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Remove the association between one or more DBProxyTarget data structures and a DBProxyTargetGroup.

" + } + }, + "com.amazonaws.rds#DeregisterDBProxyTargetsRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

", + "smithy.api#required": {} + } + }, + "TargetGroupName": { + "target": "com.amazonaws.rds#DBProxyTargetGroupName", + "traits": { + "smithy.api#documentation": "

The identifier of the DBProxyTargetGroup.

" + } + }, + "DBInstanceIdentifiers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

One or more DB instance identifiers.

" + } + }, + "DBClusterIdentifiers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

One or more DB cluster identifiers.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeregisterDBProxyTargetsResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeAccountAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeAccountAttributesMessage" + }, + "output": { + "target": "com.amazonaws.rds#AccountAttributesMessage" + }, + "traits": { + "smithy.api#documentation": "

Lists all of the attributes for a customer account. The attributes include Amazon RDS quotas for the account, such as the number of DB instances allowed. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value.

This command doesn't take any parameters.

", + "smithy.api#examples": [ + { + "title": "To describe account attributes", + "documentation": "The following example retrieves the attributes for the current AWS account.", + "output": { + "AccountQuotas": [ + { + "Max": 40, + "Used": 4, + "AccountQuotaName": "DBInstances" + }, + { + "Max": 40, + "Used": 0, + "AccountQuotaName": "ReservedDBInstances" + }, + { + "Max": 100000, + "Used": 40, + "AccountQuotaName": "AllocatedStorage" + }, + { + "Max": 25, + "Used": 0, + "AccountQuotaName": "DBSecurityGroups" + }, + { + "Max": 20, + "Used": 0, + "AccountQuotaName": "AuthorizationsPerDBSecurityGroup" + }, + { + "Max": 50, + "Used": 1, + "AccountQuotaName": "DBParameterGroups" + }, + { + "Max": 100, + "Used": 3, + "AccountQuotaName": "ManualSnapshots" + }, + { + "Max": 20, + "Used": 0, + "AccountQuotaName": "EventSubscriptions" + }, + { + "Max": 50, + "Used": 1, + "AccountQuotaName": "DBSubnetGroups" + }, + { + "Max": 20, + "Used": 1, + "AccountQuotaName": "OptionGroups" + }, + { + "Max": 20, + "Used": 6, + "AccountQuotaName": "SubnetsPerDBSubnetGroup" + }, + { + "Max": 5, + "Used": 0, + "AccountQuotaName": "ReadReplicasPerMaster" + }, + { + "Max": 40, + "Used": 1, + "AccountQuotaName": "DBClusters" + }, + { + "Max": 50, + "Used": 0, + "AccountQuotaName": "DBClusterParameterGroups" + }, + { + "Max": 5, + "Used": 0, + "AccountQuotaName": "DBClusterRoles" + } + ] + } + } + ] + } + }, + "com.amazonaws.rds#DescribeAccountAttributesMessage": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeBlueGreenDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeBlueGreenDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeBlueGreenDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes one or more blue/green deployments.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a blue/green deployment of an RDS DB instance after creation completes", + "documentation": "The following example retrieves the details of a blue/green deployment after creation completes.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake" + }, + "output": { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-rkfbpe", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-j382ha", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ejv4ao", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-vlpz3t", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "AVAILABLE", + "CreateTime": "2022-02-25T21:18:51.183Z" + } + ] + } + }, + { + "title": "To describe a blue/green deployment for an Aurora MySQL DB cluster", + "documentation": "The following example retrieves the details of a blue/green deployment.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake" + }, + "output": { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3rnukl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-gpmaxf", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-j2oajq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-mkxies", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-4sqjrq", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-gwwzlg", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "AVAILABLE", + "CreateTime": "2022-02-25T21:12:00.288Z" + } + ] + } + }, + { + "title": "To describe a blue/green deployment for an Aurora MySQL cluster after switchover", + "documentation": "The following example retrieves the details about a blue/green deployment after the green environment is promoted to be the production environment.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake" + }, + "output": { + "BlueGreenDeployments": [ + { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-old1", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "Status": "SWITCHOVER_COMPLETED" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-old1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "Status": "SWITCHOVER_COMPLETED" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_COMPLETED", + "CreateTime": "2022-02-25T22:38:49.522Z" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "BlueGreenDeployments", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeBlueGreenDeploymentsRequest": { + "type": "structure", + "members": { + "BlueGreenDeploymentIdentifier": { + "target": "com.amazonaws.rds#BlueGreenDeploymentIdentifier", + "traits": { + "smithy.api#documentation": "

The blue/green deployment identifier. If you specify this parameter, the response only includes information about the specific blue/green deployment. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing blue/green deployment identifier.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more blue/green deployments to describe.

Valid Values:

  • blue-green-deployment-identifier - Accepts system-generated identifiers for blue/green deployments. The results list only includes information about the blue/green deployments with the specified identifiers.

  • blue-green-deployment-name - Accepts user-supplied names for blue/green deployments. The results list only includes information about the blue/green deployments with the specified names.

  • source - Accepts source databases for a blue/green deployment. The results list only includes information about the blue/green deployments with the specified source databases.

  • target - Accepts target databases for a blue/green deployment. The results list only includes information about the blue/green deployments with the specified target databases.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeBlueGreenDeployments request. If you specify this parameter, the response only includes records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints:

  • Must be a minimum of 20.

  • Can't exceed 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeBlueGreenDeploymentsResponse": { + "type": "structure", + "members": { + "BlueGreenDeployments": { + "target": "com.amazonaws.rds#BlueGreenDeploymentList", + "traits": { + "smithy.api#documentation": "

A list of blue/green deployments in the current account and Amazon Web Services Region.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeBlueGreenDeployments request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeCertificatesMessage" + }, + "output": { + "target": "com.amazonaws.rds#CertificateMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the set of certificate authority (CA) certificates provided by Amazon RDS for this Amazon Web Services account.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe certificates", + "documentation": "The following example retrieves the details of the certificate associated with the user's default region.", + "output": { + "Certificates": [ + { + "CertificateIdentifier": "rds-ca-ecc384-g1", + "CertificateType": "CA", + "Thumbprint": "24a97b91cbe86911190576c35c36aab4fEXAMPLE", + "ValidFrom": "2021-05-25T22:41:55Z", + "ValidTill": "2121-05-25T23:41:55Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-ecc384-g1", + "CustomerOverride": false + }, + { + "CertificateIdentifier": "rds-ca-rsa4096-g1", + "CertificateType": "CA", + "Thumbprint": "9da6fa7fd2ec09c569a400d876b01b0c1EXAMPLE", + "ValidFrom": "2021-05-25T22:38:35Z", + "ValidTill": "2121-05-25T23:38:35Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-rsa4096-g1", + "CustomerOverride": false + }, + { + "CertificateIdentifier": "rds-ca-rsa2048-g1", + "CertificateType": "CA", + "Thumbprint": "2fa77ef894d983ba9d37ad699c84ab0f6EXAMPLE", + "ValidFrom": "2021-05-25T22:34:57Z", + "ValidTill": "2061-05-25T23:34:57Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-rsa2048-g1", + "CustomerOverride": true, + "CustomerOverrideValidTill": "2061-05-25T23:34:57Z" + }, + { + "CertificateIdentifier": "rds-ca-2019", + "CertificateType": "CA", + "Thumbprint": "f0ed823ed14447bab557fdf3e49274669EXAMPLE", + "ValidFrom": "2019-09-19T18:16:53Z", + "ValidTill": "2024-08-22T17:08:50Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-2019", + "CustomerOverride": false + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Certificates", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeCertificatesMessage": { + "type": "structure", + "members": { + "CertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing CertificateIdentifier.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBCapacityReservations": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBCapacityReservationsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBCapacityReservationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes one or more DB capacity reservations. A DB capacity reservation reserves capacity for Amazon RDS DB instances in one or more Availability Zones.

If you don't specify a DBCapacityReservationIdentifier, this operation returns information about all DB capacity reservations for your Amazon Web Services account.

This operation supports pagination.

", + "smithy.api#examples": [ + { + "title": "To describe a DB capacity reservation", + "documentation": "The following example retrieves the details of the specified DB capacity reservation. The response reports the reserved capacity and the available capacity for each Availability Zone of the reservation.", + "input": { + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a" + }, + "output": { + "DBCapacityReservations": [ + { + "DBCapacityReservationName": "my-mysql-reservation", + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "DBInstanceClass": "db.m5.large", + "Engine": "mysql", + "ReservedCapacityPerAvailabilityZone": 2, + "AvailableCapacityPerAvailabilityZoneList": [ + { + "AvailabilityZone": "us-east-1a", + "AvailableCapacity": 1 + }, + { + "AvailabilityZone": "us-east-1b", + "AvailableCapacity": 2 + } + ], + "State": "active", + "CreateDate": "2026-09-10T18:22:41.612Z", + "TagList": [] + } + ] + } + }, + { + "title": "To list DB capacity reservations one page at a time", + "documentation": "The following example lists the active DB capacity reservations for the AWS account, 20 records at a time. The Marker value comes from the response of the previous DescribeDBCapacityReservations request. Omit Marker for the first request. A Marker is an opaque token. Pass it back without any change, and don't parse it or build one yourself. A Marker expires 24 hours after Amazon RDS issues it. The Marker values in this example are shortened for readability.", + "input": { + "Filters": [ + { + "Name": "state", + "Values": [ + "active" + ] + } + ], + "MaxRecords": 20, + "Marker": "eyJ2ZXJzaW9uIjoxLCJ0b2tlbkRldGFpbCI6IkFRSUNBSGhWdjlWNG1RM3JLY0xwWjh0Mlh5RjdiTjB3UmpTNXVF..." + }, + "output": { + "DBCapacityReservations": [ + { + "DBCapacityReservationName": "my-postgres-reservation", + "DBCapacityReservationIdentifier": "dbcr-3npv8ck1zt6wq9db4mhx2js7fr5gy0ea", + "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-3npv8ck1zt6wq9db4mhx2js7fr5gy0ea", + "DBInstanceClass": "db.r6g.xlarge", + "Engine": "postgres", + "ReservedCapacityPerAvailabilityZone": 4, + "AvailableCapacityPerAvailabilityZoneList": [ + { + "AvailabilityZone": "us-east-1c", + "AvailableCapacity": 4 + }, + { + "AvailabilityZone": "us-east-1d", + "AvailableCapacity": 4 + } + ], + "State": "active", + "CreateDate": "2026-09-08T11:04:07.335Z", + "TagList": [] + } + ], + "Marker": "eyJ2ZXJzaW9uIjoxLCJ0b2tlbkRldGFpbCI6IkFRSUNBSGkyWnBRN25SeERrVDN2WWJHY0w5c1dtRTB1SmZIYU41..." + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBCapacityReservations", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBCapacityReservationsRequest": { + "type": "structure", + "members": { + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to describe. You can specify the identifier, which has the prefix dbcr-, or the reservation name.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBCapacityReservations request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints:

  • Must be a minimum of 20.

  • Can't exceed 100.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies which DB capacity reservations to describe.

Supported filters:

  • db-capacity-reservation-name - Accepts DB capacity reservation names. The response includes only the reservations that these names identify. Use this filter to describe several reservations by name in one request.

  • state - Accepts reservation states. The response includes only the reservations in these states.

  • engine - Accepts database engine names. The response includes only the reservations that reserve capacity for these engines.

  • db-instance-class - Accepts DB instance classes. The response includes only the reservations that reserve capacity for these DB instance classes.

  • availability-zone - Accepts Availability Zone names. The response includes only the reservations that cover these Availability Zones.

When you specify more than one value for a filter, the response includes the reservations that match any of those values. When you specify more than one filter, the response includes only the reservations that match every filter.

Amazon RDS rejects the request when a filter name isn't in this list, or when a filter specifies no values.

The state filter doesn't accept expired. To find an expired reservation, compare EndDate against the current date and time.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBCapacityReservationsResponse": { + "type": "structure", + "members": { + "DBCapacityReservations": { + "target": "com.amazonaws.rds#DBCapacityReservationList", + "traits": { + "smithy.api#documentation": "

A list of DB capacity reservations.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that you can use in a later DescribeDBCapacityReservations request. If this value is returned, more records are available beyond this response.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterAutomatedBackups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterAutomatedBackupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Displays backups for both current and deleted DB clusters. For example, use this operation to find details about automated backups for previously deleted clusters. Current clusters are returned for both the DescribeDBClusterAutomatedBackups and DescribeDBClusters operations.

All parameters are optional.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusterAutomatedBackups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBClusterAutomatedBackupsMessage": { + "type": "structure", + "members": { + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the DB cluster that is the source of the automated backup. This parameter isn't case-sensitive.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

(Optional) The user-supplied DB cluster identifier. If this parameter is specified, it must match the identifier of an existing DB cluster. It returns information from the specific DB cluster's automated backup. This parameter isn't case-sensitive.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies which resources to return based on status.

Supported filters are the following:

  • status

    • retained - Automated backups for deleted clusters and after backup replication is stopped.

  • db-cluster-id - Accepts DB cluster identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB cluster automated backups identified by these ARNs.

  • db-cluster-resource-id - Accepts DB resource identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB cluster resources identified by these ARNs.

Returns all resources by default. The status for each resource is specified in the response.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterBacktracks": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterBacktracksMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterBacktrackMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterBacktrackNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about backtracks for a DB cluster.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

This action only applies to Aurora MySQL DB clusters.

", + "smithy.api#examples": [ + { + "title": "To describe backtracks for a DB cluster", + "documentation": "The following example retrieves details about the specified DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster" + }, + "output": { + "DBClusterBacktracks": [ + { + "DBClusterIdentifier": "mydbcluster", + "BacktrackIdentifier": "2f5f5294-0dd2-44c9-9f50-EXAMPLE", + "BacktrackTo": "2021-02-12T04:59:22Z", + "BacktrackedFrom": "2021-02-12T14:37:31.640Z", + "BacktrackRequestCreationTime": "2021-02-12T14:36:18.819Z", + "Status": "COMPLETED" + }, + { + "DBClusterIdentifier": "mydbcluster", + "BacktrackIdentifier": "3c7a6421-af2a-4ea3-ae95-EXAMPLE", + "BacktrackTo": "2021-02-11T22:53:46Z", + "BacktrackedFrom": "2021-02-12T00:09:27.006Z", + "BacktrackRequestCreationTime": "2021-02-12T00:07:53.487Z", + "Status": "COMPLETED" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusterBacktracks", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBClusterBacktracksMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster to be described. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "smithy.api#required": {} + } + }, + "BacktrackIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If specified, this value is the backtrack identifier of the backtrack to be described.

Constraints:

Example: 123e4567-e89b-12d3-a456-426655440000

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB clusters to describe. Supported filters include the following:

  • db-cluster-backtrack-id - Accepts backtrack identifiers. The results list includes information about only the backtracks identified by these identifiers.

  • db-cluster-backtrack-status - Accepts any of the following backtrack status values:

    • applying

    • completed

    • failed

    • pending

    The results list includes information about only the backtracks identified by these values.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterBacktracks request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterEndpointsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterEndpointMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about endpoints for an Amazon Aurora DB cluster.

This action only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To describe DB cluster endpoints", + "documentation": "The following example retrieves details for your DB cluster endpoints. The most common kinds of Aurora clusters have two endpoints. One endpoint has type WRITER. You can use this endpoint for all SQL statements. The other endpoint has type READER. You can use this endpoint only for SELECT and other read-only SQL statements.", + "output": { + "DBClusterEndpoints": [ + { + "DBClusterIdentifier": "my-database-1", + "Endpoint": "my-database-1.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "WRITER" + }, + { + "DBClusterIdentifier": "my-database-1", + "Endpoint": "my-database-1.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "creating", + "EndpointType": "READER" + }, + { + "DBClusterIdentifier": "mydbcluster", + "Endpoint": "mydbcluster.cluster-cnpexamle.us-east-1.rds.amazonaws.com", + "Status": "available", + "EndpointType": "WRITER" + }, + { + "DBClusterIdentifier": "mydbcluster", + "Endpoint": "mydbcluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "available", + "EndpointType": "READER" + } + ] + } + }, + { + "title": "To describe DB cluster endpoints of a single DB cluster", + "documentation": "The following example retrieves details for the DB cluster endpoints of a single specified DB cluster. Aurora Serverless clusters have only a single endpoint with a type of WRITER.", + "input": { + "DBClusterIdentifier": "serverless-cluster" + }, + "output": { + "DBClusterEndpoints": [ + { + "Status": "available", + "Endpoint": "serverless-cluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "DBClusterIdentifier": "serverless-cluster", + "EndpointType": "WRITER" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusterEndpoints", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBClusterEndpointsMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.

" + } + }, + "DBClusterEndpointIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the endpoint to describe. This parameter is stored as a lowercase string.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A set of name-value pairs that define which endpoints to include in the output. The filters are specified as name-value pairs, in the format Name=endpoint_type,Values=endpoint_type1,endpoint_type2,.... Name can be one of: db-cluster-endpoint-type, db-cluster-endpoint-custom-type, db-cluster-endpoint-id, db-cluster-endpoint-status. Values for the db-cluster-endpoint-type filter can be one or more of: reader, writer, custom. Values for the db-cluster-endpoint-custom-type filter can be one or more of: reader, any. Values for the db-cluster-endpoint-status filter can be one or more of: available, creating, deleting, inactive, modifying.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterEndpoints request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterParameterGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterParameterGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterParameterGroupsMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DBClusterParameterGroup descriptions. If a DBClusterParameterGroupName parameter is specified, the list will contain only the description of the specified DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe DB cluster parameter groups", + "documentation": "The following example retrieves details for your DB cluster parameter groups.", + "output": { + "DBClusterParameterGroups": [ + { + "DBClusterParameterGroupName": "default.aurora-mysql5.7", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Default cluster parameter group for aurora-mysql5.7", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora-mysql5.7" + }, + { + "DBClusterParameterGroupName": "default.aurora-postgresql9.6", + "DBParameterGroupFamily": "aurora-postgresql9.6", + "Description": "Default cluster parameter group for aurora-postgresql9.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora-postgresql9.6" + }, + { + "DBClusterParameterGroupName": "default.aurora5.6", + "DBParameterGroupFamily": "aurora5.6", + "Description": "Default cluster parameter group for aurora5.6", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:default.aurora5.6" + }, + { + "DBClusterParameterGroupName": "mydbclusterpg", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "My DB cluster parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterpg" + }, + { + "DBClusterParameterGroupName": "mydbclusterpgcopy", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Copy of mydbclusterpg parameter group", + "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterpgcopy" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusterParameterGroups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBClusterParameterGroupsMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of a specific DB cluster parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterParameters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterParametersMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterParameterGroupDetails" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the detailed parameter list for a particular DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe the parameters in a DB cluster parameter group", + "documentation": "The following example retrieves details about the parameters in a DB cluster parameter group.", + "input": { + "DBClusterParameterGroupName": "mydbclusterpg" + }, + "output": { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot", + "SupportedEngineModes": [ + "provisioned" + ] + }, + { + "ParameterName": "aurora_lab_mode", + "ParameterValue": "0", + "Description": "Enables new features in the Aurora engine.", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": true, + "ApplyMethod": "pending-reboot", + "SupportedEngineModes": [ + "provisioned" + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Parameters", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBClusterParametersMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of a specific DB cluster parameter group to return parameter details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", + "smithy.api#required": {} + } + }, + "Source": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific source to return parameters for.

Valid Values:

  • engine-default

  • system

  • user

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB cluster parameters to describe.

The only supported filter is parameter-name. The results list only includes information about the DB cluster parameters with these names.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterSnapshotAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DB cluster snapshot attribute names and values for a manual DB cluster snapshot.

When sharing snapshots with other Amazon Web Services accounts, DescribeDBClusterSnapshotAttributes returns the restore attribute and a list of IDs for the Amazon Web Services accounts that are authorized to copy or restore the manual DB cluster snapshot. If all is included in the list of values for the restore attribute, then the manual DB cluster snapshot is public and can be copied or restored by all Amazon Web Services accounts.

To add or remove access for an Amazon Web Services account to copy or restore a manual DB cluster snapshot, or to make the manual DB cluster snapshot public or private, use the ModifyDBClusterSnapshotAttribute API action.

", + "smithy.api#examples": [ + { + "title": "To describe the attribute names and values for a DB cluster snapshot", + "documentation": "The following example retrieves details of the attribute names and values for the specified DB cluster snapshot.", + "input": { + "DBClusterSnapshotIdentifier": "myclustersnapshot" + }, + "output": { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotIdentifier": "myclustersnapshot", + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012" + ] + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesMessage": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB cluster snapshot to describe the attributes for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterSnapshotAttributesResult": { + "type": "structure", + "members": { + "DBClusterSnapshotAttributesResult": { + "target": "com.amazonaws.rds#DBClusterSnapshotAttributesResult" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBClusterSnapshots": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClusterSnapshotsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterSnapshotMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DB cluster snapshots. This API action supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe a DB cluster snapshot for a DB cluster", + "documentation": "The following example retrieves the details for the DB cluster snapshots for the specified DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster" + }, + "output": { + "DBClusterSnapshots": [ + { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "myclustersnapshotcopy", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-04T09:16:42.649Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "manual", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:814387698303:cluster-snapshot:myclustersnapshotcopy", + "IAMDatabaseAuthenticationEnabled": false + }, + { + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "DBClusterSnapshotIdentifier": "rds:mydbcluster-2019-06-20-09-16", + "DBClusterIdentifier": "mydbcluster", + "SnapshotCreateTime": "2019-06-20T09:16:26.569Z", + "Engine": "aurora-mysql", + "AllocatedStorage": 0, + "Status": "available", + "Port": 0, + "VpcId": "vpc-6594f31c", + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "MasterUsername": "myadmin", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LicenseModel": "aurora-mysql", + "SnapshotType": "automated", + "PercentProgress": 100, + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:814387698303:key/AKIAIOSFODNN7EXAMPLE", + "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:rds:mydbcluster-2019-06-20-09-16", + "IAMDatabaseAuthenticationEnabled": false + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusterSnapshots", + "pageSize": "MaxRecords" + }, + "smithy.waiters#waitable": { + "DBClusterSnapshotAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + }, + "DBClusterSnapshotDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(DBClusterSnapshots) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBClusterSnapshotNotFoundFault" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "creating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "modifying", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "rebooting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusterSnapshots[].Status", + "expected": "resetting-master-credentials", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + } + } + } + }, + "com.amazonaws.rds#DescribeDBClusterSnapshotsMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter can't be used in conjunction with the DBClusterSnapshotIdentifier parameter. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBCluster.

" + } + }, + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific DB cluster snapshot identifier to describe. This parameter can't be used in conjunction with the DBClusterIdentifier parameter. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBClusterSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of DB cluster snapshots to be returned. You can specify one of the following values:

  • automated - Return all DB cluster snapshots that have been automatically taken by Amazon RDS for my Amazon Web Services account.

  • manual - Return all DB cluster snapshots that have been taken by my Amazon Web Services account.

  • shared - Return all manual DB cluster snapshots that have been shared to my Amazon Web Services account.

  • public - Return all DB cluster snapshots that have been marked as public.

If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by enabling the IncludeShared parameter. You can include public DB cluster snapshots with these results by enabling the IncludePublic parameter.

The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB cluster snapshots to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs).

  • db-cluster-snapshot-id - Accepts DB cluster snapshot identifiers.

  • snapshot-type - Accepts types of DB cluster snapshots.

  • engine - Accepts names of database engines.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "IncludeShared": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include shared manual DB cluster snapshots from other Amazon Web Services accounts that this Amazon Web Services account has been given permission to copy or restore. By default, these snapshots are not included.

You can give an Amazon Web Services account permission to restore a manual DB cluster snapshot from another Amazon Web Services account by the ModifyDBClusterSnapshotAttribute API action.

" + } + }, + "IncludePublic": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include manual DB cluster snapshots that are public and can be copied or restored by any Amazon Web Services account. By default, the public snapshots are not included.

You can share a manual DB cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action.

" + } + }, + "DbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific DB cluster resource ID to describe.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBClusters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBClustersMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes existing Amazon Aurora DB clusters and Multi-AZ DB clusters. This API supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

", + "smithy.api#examples": [ + { + "title": "To describe a DB cluster", + "documentation": "The following example retrieves the details of the specified DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster" + }, + "output": { + "DBClusters": [ + { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1b", + "us-east-1e" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydbcluster", + "DBClusterIdentifier": "mydbcluster", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "DBSubnetGroup": "default", + "Status": "available", + "EarliestRestorableTime": "2019-06-19T09:16:28.210Z", + "Endpoint": "mydbcluster.cluster-cnpexample.us-east-1.rds.amazonaws.com", + "ReaderEndpoint": "mydbcluster.cluster-ro-cnpexample.us-east-1.rds.amazonaws.com", + "MultiAZ": true, + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.04.2", + "LatestRestorableTime": "2019-06-20T22:38:14.908Z", + "Port": 3306, + "MasterUsername": "myadmin", + "PreferredBackupWindow": "09:09-09:39", + "PreferredMaintenanceWindow": "sat:04:09-sat:04:39", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "dbinstance3", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "dbinstance1", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "dbinstance2", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster-us-east-1b", + "IsClusterWriter": false, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + }, + { + "DBInstanceIdentifier": "mydbcluster", + "IsClusterWriter": true, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-0b9130572daf3dc16", + "Status": "active" + } + ], + "HostedZoneId": "Z2R2ITUGPM61AM", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-east-1:814387698303:key/AKIAIOSFODNN7EXAMPLE", + "DbClusterResourceId": "cluster-AKIAIOSFODNN7EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2019-04-15T14:18:42.785Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false + } + ] + } + }, + { + "title": "To describe an Aurora DB cluster without VPC networking", + "documentation": "The following example retrieves the details of the specified Aurora PostgreSQL DB cluster configured without VPC networking and with internet access gateway enabled. IAM database authentication is required when VPC networking is disabled and internet access gateway is enabled.", + "input": { + "DBClusterIdentifier": "my-vpcless-cluster" + }, + "output": { + "DBClusters": [ + { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1d", + "us-east-1a", + "us-east-1c" + ], + "BackupRetentionPeriod": 1, + "DBClusterIdentifier": "my-vpcless-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "available", + "EarliestRestorableTime": "2026-03-09T20:53:39.652Z", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.4", + "LatestRestorableTime": "2026-03-09T20:53:39.652Z", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "07:13-07:43", + "PreferredMaintenanceWindow": "mon:07:55-mon:08:25", + "UpgradeRolloutOrder": "second", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "StorageEncryptionType": "sse-rds", + "DbClusterResourceId": "cluster-AHX35HFI2YV26F3XVXVVO3MEHU", + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-vpcless-cluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": true, + "VPCNetworkingEnabled": false, + "InternetAccessGatewayEnabled": true, + "ClusterCreateTime": "2026-03-09T20:53:24.054Z", + "EngineMode": "provisioned", + "AutoMinorVersionUpgrade": true, + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "ActivityStreamStatus": "stopped", + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [], + "TagList": [], + "ServerlessV2ScalingConfiguration": { + "MinCapacity": 1.0, + "MaxCapacity": 128.0 + }, + "ServerlessV2PlatformVersion": "3", + "DatabaseInsightsMode": "standard", + "LocalWriteForwardingStatus": "disabled", + "EngineLifecycleSupport": "open-source-rds-extended-support" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBClusters", + "pageSize": "MaxRecords" + }, + "smithy.waiters#waitable": { + "DBClusterAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + }, + "DBClusterDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(DBClusters) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBClusterNotFoundFault" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "creating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "modifying", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "rebooting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBClusters[].Status", + "expected": "resetting-master-credentials", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + } + } + } + }, + "com.amazonaws.rds#DescribeDBClustersMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied DB cluster identifier or the Amazon Resource Name (ARN) of the DB cluster. If this parameter is specified, information for only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DB cluster identifier.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB clusters to describe.

Supported Filters:

  • clone-group-id - Accepts clone group identifiers. The results list only includes information about the DB clusters associated with these clone groups.

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list only includes information about the DB clusters identified by these ARNs.

  • db-cluster-resource-id - Accepts DB cluster resource identifiers. The results list will only include information about the DB clusters identified by these DB cluster resource identifiers.

  • domain - Accepts Active Directory directory IDs. The results list only includes information about the DB clusters associated with these domains.

  • engine - Accepts engine names. The results list only includes information about the DB clusters for these engines.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "IncludeShared": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the output includes information about clusters shared from other Amazon Web Services accounts.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBEngineVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBEngineVersionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBEngineVersionMessage" + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of specific versions of DB engines.

", + "smithy.api#examples": [ + { + "title": "To describe the DB engine versions for the MySQL DB engine", + "documentation": "The following example displays details about each of the DB engine versions for the specified DB engine.", + "input": { + "Engine": "mysql" + }, + "output": { + "DBEngineVersions": [ + { + "Engine": "mysql", + "EngineVersion": "5.7.33", + "DBParameterGroupFamily": "mysql5.7", + "DBEngineDescription": "MySQL Community Edition", + "DBEngineVersionDescription": "MySQL 5.7.33", + "ValidUpgradeTarget": [ + { + "Engine": "mysql", + "EngineVersion": "5.7.34", + "Description": "MySQL 5.7.34", + "AutoUpgrade": false, + "IsMajorVersionUpgrade": false + }, + { + "Engine": "mysql", + "EngineVersion": "5.7.36", + "Description": "MySQL 5.7.36", + "AutoUpgrade": false, + "IsMajorVersionUpgrade": false + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBEngineVersions", + "pageSize": "MaxRecords" + }, + "smithy.test#smokeTests": [ + { + "id": "DescribeDBEngineVersionsSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] + } + }, + "com.amazonaws.rds#DescribeDBEngineVersionsMessage": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine to return version details for.

Valid Values:

  • aurora-mysql

  • aurora-postgresql

  • custom-oracle-ee

  • custom-oracle-ee-cdb

  • custom-oracle-se2

  • custom-oracle-se2-cdb

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

  • sqlserver-dev-ee

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific database engine version to return details for.

Example: 5.1.49

" + } + }, + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of a specific DB parameter group family to return details for.

Constraints:

  • If supplied, must match an existing DB parameter group family.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB engine versions to describe.

Supported filters:

  • db-parameter-group-family - Accepts parameter groups family names. The results list only includes information about the DB engine versions for these parameter group families.

  • engine - Accepts engine names. The results list only includes information about the DB engine versions for these engines.

  • engine-mode - Accepts DB engine modes. The results list only includes information about the DB engine versions for these engine modes. Valid DB engine modes are the following:

    • global

    • multimaster

    • parallelquery

    • provisioned

    • serverless

  • engine-version - Accepts engine versions. The results list only includes information about the DB engine versions for these engine versions.

  • status - Accepts engine version statuses. The results list only includes information about the DB engine versions for these statuses. Valid statuses are the following:

    • available

    • deprecated

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DefaultOnly": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to return only the default version of the specified engine or the engine and major version combination.

" + } + }, + "ListSupportedCharacterSets": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to list the supported character sets for each engine version.

If this parameter is enabled and the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version.

For RDS Custom, the default is not to list supported character sets. If you enable this parameter, RDS Custom returns no results.

" + } + }, + "ListSupportedTimezones": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to list the supported time zones for each engine version.

If this parameter is enabled and the requested engine supports the TimeZone parameter for CreateDBInstance, the response includes a list of supported time zones for each engine version.

For RDS Custom, the default is not to list supported time zones. If you enable this parameter, RDS Custom returns no results.

" + } + }, + "IncludeAll": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to also list the engine versions that aren't available. The default is to list only available engine versions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBInstanceAutomatedBackups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBInstanceAutomatedBackupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Displays backups for both current and deleted instances. For example, use this operation to find details about automated backups for previously deleted instances. Current instances with retention periods greater than zero (0) are returned for both the DescribeDBInstanceAutomatedBackups and DescribeDBInstances operations.

All parameters are optional.

", + "smithy.api#examples": [ + { + "title": "To describe the automated backups for a DB instance", + "documentation": "The following example displays details about the automated backups for the specified DB instance. The details include replicated automated backups in other AWS Regions.", + "input": { + "DBInstanceIdentifier": "new-orcl-db" + }, + "output": { + "DBInstanceAutomatedBackups": [ + { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": { + "EarliestTime": "2020-12-07T21:05:20.939Z", + "LatestTime": "2020-12-07T21:05:20.939Z" + }, + "AllocatedStorage": 20, + "Status": "replicating", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 14, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBInstanceAutomatedBackups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBInstanceAutomatedBackupsMessage": { + "type": "structure", + "members": { + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the DB instance that is the source of the automated backup. This parameter isn't case-sensitive.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

(Optional) The user-supplied instance identifier. If this parameter is specified, it must match the identifier of an existing DB instance. It returns information from the specific DB instance's automated backup. This parameter isn't case-sensitive.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies which resources to return based on status.

Supported filters are the following:

  • status

    • active - Automated backups for current instances.

    • creating - Automated backups that are waiting for the first automated snapshot to be available.

    • retained - Automated backups for deleted instances and after backup replication is stopped.

  • db-instance-id - Accepts DB instance identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB instance automated backups identified by these ARNs.

  • dbi-resource-id - Accepts DB resource identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB instance resources identified by these ARNs.

Returns all resources by default. The status for each resource is specified in the response.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

" + } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the replicated automated backups, for example, arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

This setting doesn't apply to RDS Custom.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Parameter input for DescribeDBInstanceAutomatedBackups.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBInstancesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBInstanceMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes provisioned RDS instances. This API supports pagination.

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

", + "smithy.api#examples": [ + { + "title": "To describe a DB instance", + "documentation": "The following example retrieves details about the specified DB instance.", + "input": { + "DBInstanceIdentifier": "mydbinstancecf" + }, + "output": { + "DBInstances": [ + { + "DBInstanceIdentifier": "mydbinstancecf", + "DBInstanceClass": "db.t3.small", + "Engine": "mysql", + "DBInstanceStatus": "available", + "MasterUsername": "admin", + "Endpoint": { + "Address": "mydbinstancecf.abcexample.us-east-1.rds.amazonaws.com", + "Port": 3306, + "HostedZoneId": "Z2R2ITUGPM61AM" + } + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBInstances", + "pageSize": "MaxRecords" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.test#smokeTests": [ + { + "id": "DescribeDBInstancesFailure", + "params": { + "DBInstanceIdentifier": "fake-id" + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], + "smithy.waiters#waitable": { + "DBInstanceAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + }, + "DBInstanceDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(DBInstances) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBInstanceNotFound" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "creating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "modifying", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "rebooting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBInstances[].DBInstanceStatus", + "expected": "resetting-master-credentials", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + } + } + } + }, + "com.amazonaws.rds#DescribeDBInstancesMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied instance identifier or the Amazon Resource Name (ARN) of the DB instance. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DB instance.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB instances to describe.

Supported Filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list only includes information about the DB instances associated with the DB clusters identified by these ARNs.

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list only includes information about the DB instances identified by these ARNs.

  • dbi-resource-id - Accepts DB instance resource identifiers. The results list only includes information about the DB instances identified by these DB instance resource identifiers.

  • domain - Accepts Active Directory directory IDs. The results list only includes information about the DB instances associated with these domains.

  • engine - Accepts engine names. The results list only includes information about the DB instances for these engines.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBInstances request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBLogFiles": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBLogFilesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBLogFilesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotReadyFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DB log files for the DB instance.

This command doesn't apply to RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To describe the log files for a DB instance", + "documentation": "The following example retrieves details about the log files for the specified DB instance.", + "input": { + "DBInstanceIdentifier": "test-instance" + }, + "output": { + "DescribeDBLogFiles": [ + { + "Size": 0, + "LastWritten": 1533060000000, + "LogFileName": "error/mysql-error-running.log" + }, + { + "Size": 2683, + "LastWritten": 1532994300000, + "LogFileName": "error/mysql-error-running.log.0" + }, + { + "Size": 107, + "LastWritten": 1533057300000, + "LogFileName": "error/mysql-error-running.log.18" + }, + { + "Size": 13105, + "LastWritten": 1532991000000, + "LogFileName": "error/mysql-error-running.log.23" + }, + { + "Size": 0, + "LastWritten": 1533061200000, + "LogFileName": "error/mysql-error.log" + }, + { + "Size": 3519, + "LastWritten": 1532989252000, + "LogFileName": "mysqlUpgrade" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DescribeDBLogFiles", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBLogFilesDetails": { + "type": "structure", + "members": { + "LogFileName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the log file for the specified DB instance.

" + } + }, + "LastWritten": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

A POSIX timestamp when the last log entry was written.

" + } + }, + "Size": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

The size, in bytes, of the log file for the specified DB instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element to DescribeDBLogFiles.

" + } + }, + "com.amazonaws.rds#DescribeDBLogFilesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DescribeDBLogFilesDetails", + "traits": { + "smithy.api#xmlName": "DescribeDBLogFilesDetails" + } + } + }, + "com.amazonaws.rds#DescribeDBLogFilesMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "smithy.api#required": {} + } + }, + "FilenameContains": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Filters the available log files for log file names that contain the specified string.

" + } + }, + "FileLastWritten": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

Filters the available log files for files written since the specified date, in POSIX timestamp format with milliseconds.

" + } + }, + "FileSize": { + "target": "com.amazonaws.rds#Long", + "traits": { + "smithy.api#documentation": "

Filters the available log files for files larger than the specified size.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBLogFilesResponse": { + "type": "structure", + "members": { + "DescribeDBLogFiles": { + "target": "com.amazonaws.rds#DescribeDBLogFilesList", + "traits": { + "smithy.api#documentation": "

The DB log files returned.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeDBLogFiles request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The response from a call to DescribeDBLogFiles.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBMajorEngineVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBMajorEngineVersionsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBMajorEngineVersionsResponse" + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of specific major versions of DB engines.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBMajorEngineVersions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBMajorEngineVersionsRequest": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#Engine", + "traits": { + "smithy.api#documentation": "

The database engine to return major version details for.

Valid Values:

  • aurora-mysql

  • aurora-postgresql

  • custom-sqlserver-ee

  • custom-sqlserver-se

  • custom-sqlserver-web

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#MajorEngineVersion", + "traits": { + "smithy.api#documentation": "

A specific database major engine version to return details for.

Example: 8.4

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#Marker", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBMajorEngineVersionsResponse": { + "type": "structure", + "members": { + "DBMajorEngineVersions": { + "target": "com.amazonaws.rds#DBMajorEngineVersionsList", + "traits": { + "smithy.api#documentation": "

A list of DBMajorEngineVersion elements.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBParameterGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBParameterGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBParameterGroupsMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DBParameterGroup descriptions. If a DBParameterGroupName is specified, the list will contain only the description of the specified DB parameter group.

", + "smithy.api#examples": [ + { + "title": "To describe your DB parameter groups", + "documentation": "The following example retrieves details about your DB parameter groups.", + "output": { + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.aurora-mysql5.7", + "DBParameterGroupFamily": "aurora-mysql5.7", + "Description": "Default parameter group for aurora-mysql5.7", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora-mysql5.7" + }, + { + "DBParameterGroupName": "default.aurora-postgresql9.6", + "DBParameterGroupFamily": "aurora-postgresql9.6", + "Description": "Default parameter group for aurora-postgresql9.6", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora-postgresql9.6" + }, + { + "DBParameterGroupName": "default.aurora5.6", + "DBParameterGroupFamily": "aurora5.6", + "Description": "Default parameter group for aurora5.6", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.aurora5.6" + }, + { + "DBParameterGroupName": "default.mariadb10.1", + "DBParameterGroupFamily": "mariadb10.1", + "Description": "Default parameter group for mariadb10.1", + "DBParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:pg:default.mariadb10.1" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBParameterGroups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBParameterGroupsMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of a specific DB parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBParameters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBParametersMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBParameterGroupDetails" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the detailed parameter list for a particular DB parameter group.

", + "smithy.api#examples": [ + { + "title": "To describe the parameters in a DB parameter group", + "documentation": "The following example retrieves the details of the specified DB parameter group.", + "input": { + "DBParameterGroupName": "mydbpg" + }, + "output": { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot" + }, + { + "ParameterName": "auto_generate_certs", + "Description": "Controls whether the server autogenerates SSL key and certificate files in the data directory, if they do not already exist.", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false, + "ApplyMethod": "pending-reboot" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Parameters", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBParametersMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of a specific DB parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", + "smithy.api#required": {} + } + }, + "Source": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The parameter types to return.

Default: All parameter types returned

Valid Values: user | system | engine-default

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB parameters to describe.

The only supported filter is parameter-name. The results list only includes information about the DB parameters with these names.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBProxies": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBProxiesRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBProxiesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DB proxies.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBProxies", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBProxiesRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#documentation": "

The name of the DB proxy. If you omit this parameter, the output includes information about all DB proxies owned by your Amazon Web Services account ID.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter is not currently supported.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBProxiesResponse": { + "type": "structure", + "members": { + "DBProxies": { + "target": "com.amazonaws.rds#DBProxyList", + "traits": { + "smithy.api#documentation": "

A return value representing an arbitrary number of DBProxy data structures.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBProxyEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBProxyEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DB proxy endpoints.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBProxyEndpoints", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBProxyEndpointsRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#documentation": "

The name of the DB proxy whose endpoints you want to describe. If you omit this parameter, the output includes information about all DB proxy endpoints associated with all your DB proxies.

" + } + }, + "DBProxyEndpointName": { + "target": "com.amazonaws.rds#DBProxyEndpointName", + "traits": { + "smithy.api#documentation": "

The name of a DB proxy endpoint to describe. If you omit this parameter, the output includes information about all DB proxy endpoints associated with the specified proxy.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter is not currently supported.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyEndpointsResponse": { + "type": "structure", + "members": { + "DBProxyEndpoints": { + "target": "com.amazonaws.rds#DBProxyEndpointList", + "traits": { + "smithy.api#documentation": "

The list of ProxyEndpoint objects returned by the API operation.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyTargetGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBProxyTargetGroupsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBProxyTargetGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DB proxy target groups, represented by DBProxyTargetGroup data structures.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "TargetGroups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBProxyTargetGroupsRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DBProxy associated with the target group.

", + "smithy.api#required": {} + } + }, + "TargetGroupName": { + "target": "com.amazonaws.rds#DBProxyTargetGroupName", + "traits": { + "smithy.api#documentation": "

The identifier of the DBProxyTargetGroup to describe.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter is not currently supported.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyTargetGroupsResponse": { + "type": "structure", + "members": { + "TargetGroups": { + "target": "com.amazonaws.rds#TargetGroupList", + "traits": { + "smithy.api#documentation": "

An arbitrary number of DBProxyTargetGroup objects, containing details of the corresponding target groups.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBProxyTargetsRequest" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBProxyTargetsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DBProxyTarget objects. This API supports pagination.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Targets", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBProxyTargetsRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DBProxyTarget to describe.

", + "smithy.api#required": {} + } + }, + "TargetGroupName": { + "target": "com.amazonaws.rds#DBProxyTargetGroupName", + "traits": { + "smithy.api#documentation": "

The identifier of the DBProxyTargetGroup to describe.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter is not currently supported.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBProxyTargetsResponse": { + "type": "structure", + "members": { + "Targets": { + "target": "com.amazonaws.rds#TargetList", + "traits": { + "smithy.api#documentation": "

An arbitrary number of DBProxyTarget objects, containing details of the corresponding targets.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBRecommendationsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBRecommendationsMessage" + }, + "traits": { + "smithy.api#documentation": "

Describes the recommendations to resolve the issues for your DB instances, DB clusters, and DB parameter groups.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBRecommendations", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBRecommendationsMessage": { + "type": "structure", + "members": { + "LastUpdatedAfter": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

A filter to include only the recommendations that were updated after this specified time.

" + } + }, + "LastUpdatedBefore": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

A filter to include only the recommendations that were updated before this specified time.

" + } + }, + "Locale": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The language that you choose to return the list of recommendations.

Valid values:

  • en

  • en_UK

  • de

  • es

  • fr

  • id

  • it

  • ja

  • ko

  • pt_BR

  • zh_TW

  • zh_CN

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more recommendations to describe.

Supported Filters:

  • recommendation-id - Accepts a list of recommendation identifiers. The results list only includes the recommendations whose identifier is one of the specified filter values.

  • status - Accepts a list of recommendation statuses.

    Valid values:

    • active - The recommendations which are ready for you to apply.

    • pending - The applied or scheduled recommendations which are in progress.

    • resolved - The recommendations which are completed.

    • dismissed - The recommendations that you dismissed.

    The results list only includes the recommendations whose status is one of the specified filter values.

  • severity - Accepts a list of recommendation severities. The results list only includes the recommendations whose severity is one of the specified filter values.

    Valid values:

    • high

    • medium

    • low

    • informational

  • type-id - Accepts a list of recommendation type identifiers. The results list only includes the recommendations whose type is one of the specified filter values.

  • dbi-resource-id - Accepts a list of database resource identifiers. The results list only includes the recommendations that generated for the specified databases.

  • cluster-resource-id - Accepts a list of cluster resource identifiers. The results list only includes the recommendations that generated for the specified clusters.

  • pg-arn - Accepts a list of parameter group ARNs. The results list only includes the recommendations that generated for the specified parameter groups.

  • cluster-pg-arn - Accepts a list of cluster parameter group ARNs. The results list only includes the recommendations that generated for the specified cluster parameter groups.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of recommendations to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBRecommendations request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBSecurityGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSecurityGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBSecurityGroupMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To list DB security group settings", + "documentation": "This example lists settings for the specified security group.", + "input": { + "DBSecurityGroupName": "mydbsecuritygroup" + }, + "output": {} + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBSecurityGroups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBSecurityGroupsMessage": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB security group to return details for.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBShardGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBShardGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBShardGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes existing Aurora Limitless Database DB shard groups.

" + } + }, + "com.amazonaws.rds#DescribeDBShardGroupsMessage": { + "type": "structure", + "members": { + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#DBShardGroupIdentifier", + "traits": { + "smithy.api#documentation": "

The user-supplied DB shard group identifier. If this parameter is specified, information for only the specific DB shard group is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DB shard group identifier.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB shard groups to describe.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBShardGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBShardGroupsResponse": { + "type": "structure", + "members": { + "DBShardGroups": { + "target": "com.amazonaws.rds#DBShardGroupsList", + "traits": { + "smithy.api#documentation": "

Contains a list of DB shard groups for the user.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeDBClusters request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBSnapshotAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSnapshotAttributesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeDBSnapshotAttributesResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DB snapshot attribute names and values for a manual DB snapshot.

When sharing snapshots with other Amazon Web Services accounts, DescribeDBSnapshotAttributes returns the restore attribute and a list of IDs for the Amazon Web Services accounts that are authorized to copy or restore the manual DB snapshot. If all is included in the list of values for the restore attribute, then the manual DB snapshot is public and can be copied or restored by all Amazon Web Services accounts.

To add or remove access for an Amazon Web Services account to copy or restore a manual DB snapshot, or to make the manual DB snapshot public or private, use the ModifyDBSnapshotAttribute API action.

", + "smithy.api#examples": [ + { + "title": "To describe the attribute names and values for a DB snapshot", + "documentation": "The following example describes the attribute names and values for a DB snapshot.", + "input": { + "DBSnapshotIdentifier": "mydbsnapshot" + }, + "output": { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012", + "210987654321" + ] + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#DescribeDBSnapshotAttributesMessage": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB snapshot to describe the attributes for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBSnapshotAttributesResult": { + "type": "structure", + "members": { + "DBSnapshotAttributesResult": { + "target": "com.amazonaws.rds#DBSnapshotAttributesResult" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeDBSnapshotTenantDatabases": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSnapshotTenantDatabasesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabasesMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the tenant databases that exist in a DB snapshot. This command only applies to RDS for Oracle DB instances in the multi-tenant configuration.

You can use this command to inspect the tenant databases within a snapshot before restoring it. You can't directly interact with the tenant databases in a DB snapshot. If you restore a snapshot that was taken from DB instance using the multi-tenant configuration, you restore all its tenant databases.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBSnapshotTenantDatabases", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBSnapshotTenantDatabasesMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of the DB instance used to create the DB snapshots. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" + } + }, + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of a DB snapshot that contains the tenant databases to describe. This value is stored as a lowercase string.

Constraints:

  • If you specify this parameter, the value must match the ID of an existing DB snapshot.

  • If you specify an automatic snapshot, you must also specify SnapshotType.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of DB snapshots to be returned. You can specify one of the following values:

  • automated – All DB snapshots that have been automatically taken by Amazon RDS for my Amazon Web Services account.

  • manual – All DB snapshots that have been taken by my Amazon Web Services account.

  • shared – All manual DB snapshots that have been shared to my Amazon Web Services account.

  • public – All DB snapshots that have been marked as public.

  • awsbackup – All DB snapshots managed by the Amazon Web Services Backup service.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more tenant databases to describe.

Supported filters:

  • tenant-db-name - Tenant database names. The results list only includes information about the tenant databases that match these tenant DB names.

  • tenant-database-resource-id - Tenant database resource identifiers. The results list only includes information about the tenant databases contained within the DB snapshots.

  • dbi-resource-id - DB instance resource identifiers. The results list only includes information about snapshots containing tenant databases contained within the DB instances identified by these resource identifiers.

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs).

  • db-snapshot-id - Accepts DB snapshot identifiers.

  • snapshot-type - Accepts types of DB snapshots.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBSnapshotTenantDatabases request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific DB resource identifier to describe.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBSnapshots": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSnapshotsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBSnapshotMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about DB snapshots. This API action supports pagination.

", + "smithy.api#examples": [ + { + "title": "To describe a DB snapshot for a DB instance", + "documentation": "The following example retrieves the details of a DB snapshot for a DB instance.", + "input": { + "DBSnapshotIdentifier": "mydbsnapshot" + }, + "output": { + "DBSnapshots": [ + { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBInstanceIdentifier": "mysqldb", + "SnapshotCreateTime": "2018-02-08T22:28:08.598Z", + "Engine": "mysql", + "AllocatedStorage": 20, + "Status": "available", + "Port": 3306, + "AvailabilityZone": "us-east-1f", + "VpcId": "vpc-6594f31c", + "InstanceCreateTime": "2018-02-08T22:24:55.973Z", + "MasterUsername": "mysqladmin", + "EngineVersion": "5.6.37", + "LicenseModel": "general-public-license", + "SnapshotType": "manual", + "OptionGroupName": "default:mysql-5-6", + "PercentProgress": 100, + "StorageType": "gp2", + "Encrypted": false, + "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBSnapshots", + "pageSize": "MaxRecords" + }, + "smithy.api#suppress": [ + "WaitableTraitInvalidErrorType" + ], + "smithy.waiters#waitable": { + "DBSnapshotAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "deleting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "failed", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + }, + "DBSnapshotDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(DBSnapshots) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBSnapshotNotFound" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "creating", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "modifying", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "rebooting", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "DBSnapshots[].Status", + "expected": "resetting-master-credentials", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + } + } + } + }, + "com.amazonaws.rds#DescribeDBSnapshotsMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of the DB instance to retrieve the list of DB snapshots for. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" + } + }, + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific DB snapshot identifier to describe. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

" + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of snapshots to be returned. You can specify one of the following values:

  • automated - Return all DB snapshots that have been automatically taken by Amazon RDS for my Amazon Web Services account.

  • manual - Return all DB snapshots that have been taken by my Amazon Web Services account.

  • shared - Return all manual DB snapshots that have been shared to my Amazon Web Services account.

  • public - Return all DB snapshots that have been marked as public.

  • awsbackup - Return the DB snapshots managed by the Amazon Web Services Backup service.

    For information about Amazon Web Services Backup, see the Amazon Web Services Backup Developer Guide.

    The awsbackup type does not apply to Aurora.

If you don't specify a SnapshotType value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. You can include shared snapshots with these results by enabling the IncludeShared parameter. You can include public snapshots with these results by enabling the IncludePublic parameter.

The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more DB snapshots to describe.

Supported filters:

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs).

  • db-snapshot-id - Accepts DB snapshot identifiers.

  • dbi-resource-id - Accepts identifiers of source DB instances.

  • snapshot-type - Accepts types of DB snapshots.

  • engine - Accepts names of database engines.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "IncludeShared": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include shared manual DB cluster snapshots from other Amazon Web Services accounts that this Amazon Web Services account has been given permission to copy or restore. By default, these snapshots are not included.

You can give an Amazon Web Services account permission to restore a manual DB snapshot from another Amazon Web Services account by using the ModifyDBSnapshotAttribute API action.

This setting doesn't apply to RDS Custom.

" + } + }, + "IncludePublic": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to include manual DB cluster snapshots that are public and can be copied or restored by any Amazon Web Services account. By default, the public snapshots are not included.

You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API.

This setting doesn't apply to RDS Custom.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific DB resource ID to describe.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeDBSubnetGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSubnetGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBSubnetGroupMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified, the list will contain only the descriptions of the specified DBSubnetGroup.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

", + "smithy.api#examples": [ + { + "title": "To describe a DB subnet group", + "documentation": "The following example retrieves the details of the specified DB subnet group.", + "output": { + "DBSubnetGroups": [ + { + "DBSubnetGroupName": "mydbsubnetgroup", + "DBSubnetGroupDescription": "My DB Subnet Group", + "VpcId": "vpc-971c12ee", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-d8c8e7f4", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-718fdc7d", + "SubnetAvailabilityZone": { + "Name": "us-east-1f" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-cbc8e7e7", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0ccde220", + "SubnetAvailabilityZone": { + "Name": "us-east-1a" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-east-1:123456789012:subgrp:mydbsubnetgroup" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBSubnetGroups", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBSubnetGroupsMessage": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB subnet group to return details for.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeEngineDefaultClusterParameters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeEngineDefaultClusterParametersMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeEngineDefaultClusterParametersResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the default engine and system parameter information for the cluster database engine.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To describe the default engine and system parameter information for the Aurora database engine", + "documentation": "The following example retrieves the details of the default engine and system parameter information for Aurora DB clusters with MySQL 5.7 compatibility.", + "input": { + "DBParameterGroupFamily": "aurora-mysql5.7" + }, + "output": { + "EngineDefaults": { + "Parameters": [ + { + "ParameterName": "aurora_load_from_s3_role", + "Description": "IAM role ARN used to load data from AWS S3", + "Source": "engine-default", + "ApplyType": "dynamic", + "DataType": "string", + "IsModifiable": true, + "SupportedEngineModes": [ + "provisioned" + ] + } + ] + } + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "EngineDefaults.Marker", + "items": "EngineDefaults.Parameters", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeEngineDefaultClusterParametersMessage": { + "type": "structure", + "members": { + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster parameter group family to return engine parameter information for.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeEngineDefaultClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeEngineDefaultClusterParametersResult": { + "type": "structure", + "members": { + "EngineDefaults": { + "target": "com.amazonaws.rds#EngineDefaults" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeEngineDefaultParameters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeEngineDefaultParametersMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeEngineDefaultParametersResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the default engine and system parameter information for the specified database engine.

", + "smithy.api#examples": [ + { + "title": "To describe the default engine and system parameter information for the database engine", + "documentation": "The following example retrieves details for the default engine and system parameter information for MySQL 5.7 DB instances.", + "input": { + "DBParameterGroupFamily": "mysql5.7" + }, + "output": { + "EngineDefaults": { + "Parameters": [ + { + "ParameterName": "allow-suspicious-udfs", + "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", + "Source": "engine-default", + "ApplyType": "static", + "DataType": "boolean", + "AllowedValues": "0,1", + "IsModifiable": false + } + ] + } + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "EngineDefaults.Marker", + "items": "EngineDefaults.Parameters", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeEngineDefaultParametersMessage": { + "type": "structure", + "members": { + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB parameter group family.

Valid Values:

  • aurora-mysql5.7

  • aurora-mysql8.0

  • aurora-postgresql10

  • aurora-postgresql11

  • aurora-postgresql12

  • aurora-postgresql13

  • aurora-postgresql14

  • custom-oracle-ee-19

  • custom-oracle-ee-cdb-19

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb10.2

  • mariadb10.3

  • mariadb10.4

  • mariadb10.5

  • mariadb10.6

  • mysql5.7

  • mysql8.0

  • oracle-ee-19

  • oracle-ee-cdb-19

  • oracle-ee-cdb-21

  • oracle-se2-19

  • oracle-se2-cdb-19

  • oracle-se2-cdb-21

  • postgres10

  • postgres11

  • postgres12

  • postgres13

  • postgres14

  • sqlserver-ee-11.0

  • sqlserver-ee-12.0

  • sqlserver-ee-13.0

  • sqlserver-ee-14.0

  • sqlserver-ee-15.0

  • sqlserver-ex-11.0

  • sqlserver-ex-12.0

  • sqlserver-ex-13.0

  • sqlserver-ex-14.0

  • sqlserver-ex-15.0

  • sqlserver-se-11.0

  • sqlserver-se-12.0

  • sqlserver-se-13.0

  • sqlserver-se-14.0

  • sqlserver-se-15.0

  • sqlserver-web-11.0

  • sqlserver-web-12.0

  • sqlserver-web-13.0

  • sqlserver-web-14.0

  • sqlserver-web-15.0

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more parameters to describe.

The only supported filter is parameter-name. The results list only includes information about the parameters with these names.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeEngineDefaultParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeEngineDefaultParametersResult": { + "type": "structure", + "members": { + "EngineDefaults": { + "target": "com.amazonaws.rds#EngineDefaults" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeEventCategories": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeEventCategoriesMessage" + }, + "output": { + "target": "com.amazonaws.rds#EventCategoriesMessage" + }, + "traits": { + "smithy.api#documentation": "

Displays a list of categories for all event source types, or, if specified, for a specified source type. You can also see this list in the \"Amazon RDS event categories and event messages\" section of the Amazon RDS User Guide or the Amazon Aurora User Guide .

", + "smithy.api#examples": [ + { + "title": "To describe event categories", + "documentation": "The following example retrieves details about the event categories for all available event sources.", + "input": { + "SourceType": "", + "Filters": [] + }, + "output": { + "EventCategoriesMapList": [ + { + "SourceType": "db-instance", + "EventCategories": [ + "deletion", + "read replica", + "failover", + "restoration", + "maintenance", + "low storage", + "configuration change", + "backup", + "creation", + "availability", + "recovery", + "failure", + "backtrack", + "notification" + ] + }, + { + "SourceType": "db-security-group", + "EventCategories": [ + "configuration change", + "failure" + ] + }, + { + "SourceType": "db-parameter-group", + "EventCategories": [ + "configuration change" + ] + }, + { + "SourceType": "db-snapshot", + "EventCategories": [ + "deletion", + "creation", + "restoration", + "notification" + ] + }, + { + "SourceType": "db-cluster", + "EventCategories": [ + "failover", + "failure", + "notification" + ] + }, + { + "SourceType": "db-cluster-snapshot", + "EventCategories": [ + "backup" + ] + } + ] + } + } + ] + } + }, + "com.amazonaws.rds#DescribeEventCategoriesMessage": { + "type": "structure", + "members": { + "SourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of source that is generating the events. For RDS Proxy events, specify db-proxy.

Valid Values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeEventSubscriptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeEventSubscriptionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#EventSubscriptionsMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#SubscriptionNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all the subscription descriptions for a customer account. The description for a subscription includes SubscriptionName, SNSTopicARN, CustomerID, SourceType, SourceID, CreationTime, and Status.

If you specify a SubscriptionName, lists the description for that subscription.

", + "smithy.api#examples": [ + { + "title": "To describe event subscriptions", + "documentation": "This example describes all of the Amazon RDS event subscriptions for the current AWS account.", + "output": { + "EventSubscriptionsList": [ + { + "EventCategoriesList": [ + "backup", + "recovery" + ], + "Enabled": true, + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "Status": "creating", + "SourceType": "db-instance", + "CustomerAwsId": "123456789012", + "SubscriptionCreationTime": "2018-07-31 23:22:01.893", + "CustSubscriptionId": "my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "EventSubscriptionsList", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeEventSubscriptionsMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the RDS event notification subscription you want to describe.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeEvents": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeEventsMessage" + }, + "output": { + "target": "com.amazonaws.rds#EventsMessage" + }, + "traits": { + "smithy.api#documentation": "

Returns events related to DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS Proxies for the past 14 days. Events specific to a particular DB instance, DB cluster, DB parameter group, DB security group, DB snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by providing the name as a parameter.

For more information on working with events, see Monitoring Amazon RDS events in the Amazon RDS User Guide and Monitoring Amazon Aurora events in the Amazon Aurora User Guide.

By default, RDS returns events that were generated in the past hour.

", + "smithy.api#examples": [ + { + "title": "To describe events", + "documentation": "The following retrieves details for the events that have occurred for the specified DB instance.", + "input": { + "SourceIdentifier": "test-instance", + "SourceType": "db-instance" + }, + "output": { + "Events": [ + { + "SourceType": "db-instance", + "SourceIdentifier": "test-instance", + "EventCategories": [ + "backup" + ], + "Message": "Backing up DB instance", + "Date": "2018-07-31T23:09:23.983Z", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance" + }, + { + "SourceType": "db-instance", + "SourceIdentifier": "test-instance", + "EventCategories": [ + "backup" + ], + "Message": "Finished DB Instance backup", + "Date": "2018-07-31T23:15:13.049Z", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Events", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeEventsMessage": { + "type": "structure", + "members": { + "SourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the event source for which events are returned. If not specified, then all sources are included in the response.

Constraints:

  • If SourceIdentifier is supplied, SourceType must also be provided.

  • If the source type is a DB instance, a DBInstanceIdentifier value must be supplied.

  • If the source type is a DB cluster, a DBClusterIdentifier value must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName value must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName value must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier value must be supplied.

  • If the source type is a DB cluster snapshot, a DBClusterSnapshotIdentifier value must be supplied.

  • If the source type is an RDS Proxy, a DBProxyName value must be supplied.

  • Can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#SourceType", + "traits": { + "smithy.api#documentation": "

The event source to retrieve events for. If no value is specified, all events are returned.

" + } + }, + "StartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

" + } + }, + "EndTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

" + } + }, + "Duration": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of minutes to retrieve events for.

Default: 60

" + } + }, + "EventCategories": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

A list of event categories that trigger notifications for a event notification subscription.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeEvents request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeExportTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeExportTasksMessage" + }, + "output": { + "target": "com.amazonaws.rds#ExportTasksMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ExportTaskNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about a snapshot or cluster export to Amazon S3. This API operation supports pagination.

", + "smithy.api#examples": [ + { + "title": "To describe snapshot export tasks", + "documentation": "The following example returns information about snapshot exports to Amazon S3.", + "output": { + "ExportTasks": [ + { + "ExportTaskIdentifier": "test-snapshot-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:test-snapshot", + "SnapshotTime": "2020-03-02T18:26:28.163Z", + "TaskStartTime": "2020-03-02T18:57:56.896Z", + "TaskEndTime": "2020-03-02T19:10:31.985Z", + "S3Bucket": "mybucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "COMPLETE", + "PercentProgress": 100, + "TotalExtractedDataInGB": 0 + }, + { + "ExportTaskIdentifier": "my-s3-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test", + "SnapshotTime": "2020-03-27T20:48:42.023Z", + "S3Bucket": "mybucket", + "S3Prefix": "", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "STARTING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "ExportTasks", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeExportTasksMessage": { + "type": "structure", + "members": { + "ExportTaskIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the snapshot or cluster export task to be described.

" + } + }, + "SourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

Filters specify one or more snapshot or cluster exports to describe. The filters are specified as name-value pairs that define what to include in the output. Filter names and values are case-sensitive.

Supported filters include the following:

  • export-task-identifier - An identifier for the snapshot or cluster export task.

  • s3-bucket - The Amazon S3 bucket the data is exported to.

  • source-arn - The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

  • status - The status of the export task. Must be lowercase. Valid statuses are the following:

    • canceled

    • canceling

    • complete

    • failed

    • in_progress

    • starting

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeExportTasks request. If you specify this parameter, the response includes only records beyond the marker, up to the value specified by the MaxRecords parameter.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#MaxRecords", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified value, a pagination token called a marker is included in the response. You can use the marker in a later DescribeExportTasks request to retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#ExportSourceType", + "traits": { + "smithy.api#documentation": "

The type of source for the export.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeGlobalClusters": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeGlobalClustersMessage" + }, + "output": { + "target": "com.amazonaws.rds#GlobalClustersMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about Aurora global database clusters. This API supports pagination.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

This action only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To describe global DB clusters", + "documentation": "The following example lists Aurora global DB clusters in the current AWS Region.", + "output": { + "GlobalClusters": [ + { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f5982077e3b5aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": false, + "GlobalClusterMembers": [] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "GlobalClusters", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeGlobalClustersMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#documentation": "

The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DBClusterIdentifier.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more global database clusters to describe. This parameter is case-sensitive.

Currently, the only supported filter is region.

If used, the request returns information about any global cluster with at least one member (primary or secondary) in the specified Amazon Web Services Regions.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeGlobalClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeIntegrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeIntegrationsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeIntegrationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describe one or more zero-ETL integrations with Amazon Redshift.

", + "smithy.api#examples": [ + { + "title": "To describe a zero-ETL integration", + "documentation": "The following example retrieves information about a zero-ETL integration with Amazon Redshift.", + "input": { + "IntegrationIdentifier": "5b9f3d79-7392-4a3e-896c-58eaa1b53231" + }, + "output": { + "Integrations": [ + { + "IntegrationName": "my-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", + "Tags": [], + "CreateTime": "2023-12-28T17:20:20.629Z", + "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "Status": "active" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Integrations", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeIntegrationsMessage": { + "type": "structure", + "members": { + "IntegrationIdentifier": { + "target": "com.amazonaws.rds#IntegrationIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the integration.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more resources to return.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#Marker", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeIntegrations request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeIntegrationsResponse": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#Marker", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeIntegrations request.

" + } + }, + "Integrations": { + "target": "com.amazonaws.rds#IntegrationList", + "traits": { + "smithy.api#documentation": "

A list of integrations.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DescribeOptionGroupOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeOptionGroupOptionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#OptionGroupOptionsMessage" + }, + "traits": { + "smithy.api#documentation": "

Describes all available options for the specified engine.

", + "smithy.api#examples": [ + { + "title": "To describe all available options", + "documentation": "The following example lists the options for an RDS for MySQL version 8.0 DB instance.", + "input": { + "EngineName": "mysql", + "MajorEngineVersion": "8.0" + }, + "output": { + "OptionGroupOptions": [ + { + "Name": "MARIADB_AUDIT_PLUGIN", + "Description": "MariaDB Audit Plugin", + "EngineName": "mysql", + "MajorEngineVersion": "8.0", + "MinimumRequiredMinorEngineVersion": "25", + "PortRequired": false, + "OptionsDependedOn": [], + "OptionsConflictsWith": [], + "Persistent": false, + "Permanent": false, + "RequiresAutoMinorEngineVersionUpgrade": false, + "VpcOnly": false, + "OptionGroupOptionSettings": [ + { + "SettingName": "SERVER_AUDIT_INCL_USERS", + "SettingDescription": "Include specified users", + "ApplyType": "DYNAMIC", + "IsModifiable": true, + "IsRequired": false, + "MinimumEngineVersionPerAllowedValue": [] + }, + { + "SettingName": "SERVER_AUDIT_EXCL_USERS", + "SettingDescription": "Exclude specified users", + "ApplyType": "DYNAMIC", + "IsModifiable": true, + "IsRequired": false, + "MinimumEngineVersionPerAllowedValue": [] + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "OptionGroupOptions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeOptionGroupOptionsMessage": { + "type": "structure", + "members": { + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the engine to describe options for.

Valid Values:

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "smithy.api#required": {} + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If specified, filters the results to include only options for the specified major engine version.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeOptionGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeOptionGroupsMessage" + }, + "output": { + "target": "com.amazonaws.rds#OptionGroups" + }, + "errors": [ + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the available option groups.

", + "smithy.api#examples": [ + { + "title": "To describe the available option groups", + "documentation": "The following example lists the options groups for an Oracle Database 19c instance.", + "input": { + "EngineName": "oracle-ee", + "MajorEngineVersion": "19" + }, + "output": { + "OptionGroupsList": [ + { + "OptionGroupName": "default:oracle-ee-19", + "OptionGroupDescription": "Default option group for oracle-ee 19", + "EngineName": "oracle-ee", + "MajorEngineVersion": "19", + "Options": [], + "AllowsVpcAndNonVpcInstanceMemberships": true, + "OptionGroupArn": "arn:aws:rds:us-west-1:111122223333:og:default:oracle-ee-19" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "OptionGroupsList", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeOptionGroupsMessage": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group to describe. Can't be supplied together with EngineName or MajorEngineVersion.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeOptionGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A filter to only include option groups associated with this database engine.

Valid Values:

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Filters the list of option groups to only include groups associated with a specific database engine version. If specified, then EngineName must also be specified.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeOrderableDBInstanceOptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeOrderableDBInstanceOptionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#OrderableDBInstanceOptionsMessage" + }, + "traits": { + "smithy.api#documentation": "

Describes the orderable DB instance options for a specified DB engine.

", + "smithy.api#examples": [ + { + "title": "To describe orderable DB instance options", + "documentation": "The following example retrieves details about the orderable options for a DB instances running the MySQL DB engine.", + "input": { + "Engine": "mysql" + }, + "output": { + "OrderableDBInstanceOptions": [ + { + "Engine": "mysql", + "EngineVersion": "5.7.33", + "DBInstanceClass": "db.m4.10xlarge", + "LicenseModel": "general-public-license", + "AvailabilityZones": [ + { + "Name": "us-east-1a" + }, + { + "Name": "us-east-1b" + }, + { + "Name": "us-east-1c" + }, + { + "Name": "us-east-1d" + }, + { + "Name": "us-east-1e" + }, + { + "Name": "us-east-1f" + } + ], + "MultiAZCapable": true, + "ReadReplicaCapable": true, + "Vpc": true, + "SupportsStorageEncryption": true, + "StorageType": "gp2" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "OrderableDBInstanceOptions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeOrderableDBInstanceOptionsMessage": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the database engine to describe DB instance options for.

Valid Values:

  • aurora-mysql

  • aurora-postgresql

  • custom-oracle-ee

  • custom-oracle-ee-cdb

  • custom-oracle-se2

  • custom-oracle-se2-cdb

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A filter to include only the available options for the specified engine version.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A filter to include only the available options for the specified DB instance class.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A filter to include only the available options for the specified license model.

RDS Custom supports only the BYOL licensing model.

" + } + }, + "AvailabilityZoneGroup": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone group associated with a Local Zone. Specify this parameter to retrieve available options for the Local Zones in the group.

Omit this parameter to show the available options in the specified Amazon Web Services Region.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "Vpc": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to show only VPC or non-VPC offerings. RDS Custom supports only VPC offerings.

RDS Custom supports only VPC offerings. If you describe non-VPC offerings for RDS Custom, the output shows VPC offerings.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 1000.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribePendingMaintenanceActions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribePendingMaintenanceActionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#PendingMaintenanceActionsMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of resources (for example, DB instances) that have at least one pending maintenance action.

This API follows an eventual consistency model. This means that the result of the DescribePendingMaintenanceActions command might not be immediately visible to all subsequent RDS commands. Keep this in mind when you use DescribePendingMaintenanceActions immediately after using a previous API command such as ApplyPendingMaintenanceActions.

", + "smithy.api#examples": [ + { + "title": "To list resources with at least one pending maintenance action", + "documentation": "The following example lists the pending maintenace action for a DB instance.", + "output": { + "PendingMaintenanceActions": [ + { + "ResourceIdentifier": "arn:aws:rds:us-west-2:123456789012:cluster:global-db1-cl1", + "PendingMaintenanceActionDetails": [ + { + "Action": "system-update", + "Description": "Upgrade to Aurora PostgreSQL 2.4.2" + } + ] + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "PendingMaintenanceActions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribePendingMaintenanceActionsMessage": { + "type": "structure", + "members": { + "ResourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN of a resource to return pending maintenance actions for.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more resources to return pending maintenance actions for.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list only includes pending maintenance actions for the DB clusters identified by these ARNs.

  • db-instance-id - Accepts DB instance identifiers and DB instance ARNs. The results list only includes pending maintenance actions for the DB instances identified by these ARNs.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeReservedDBInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeReservedDBInstancesMessage" + }, + "output": { + "target": "com.amazonaws.rds#ReservedDBInstanceMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ReservedDBInstanceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about reserved DB instances for this account, or about a specified reserved DB instance.

", + "smithy.api#examples": [ + { + "title": "To describe reserved DB instances", + "documentation": "The following example retrieves details about any reserved DB instances in the current AWS account.", + "output": { + "ReservedDBInstances": [ + { + "ReservedDBInstanceId": "myreservedinstance", + "ReservedDBInstancesOfferingId": "12ab34cd-59af-4b2c-a660-1abcdef23456", + "DBInstanceClass": "db.t3.micro", + "StartTime": "2020-06-01T13:44:21.436Z", + "Duration": 31536000, + "FixedPrice": 0, + "UsagePrice": 0, + "CurrencyCode": "USD", + "DBInstanceCount": 1, + "ProductDescription": "sqlserver-ex(li)", + "OfferingType": "No Upfront", + "MultiAZ": false, + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.014, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservedDBInstanceArn": "arn:aws:rds:us-west-2:123456789012:ri:myreservedinstance", + "LeaseId": "a1b2c3d4-6b69-4a59-be89-5e11aa446666" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "ReservedDBInstances", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeReservedDBInstancesMessage": { + "type": "structure", + "members": { + "ReservedDBInstanceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The reserved DB instance identifier filter value. Specify this parameter to show only the reservation that matches the specified reservation ID.

" + } + }, + "ReservedDBInstancesOfferingId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering identifier filter value. Specify this parameter to show only purchased reservations matching the specified offering identifier.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB instance class filter value. Specify this parameter to show only those reservations matching the specified DB instances class.

" + } + }, + "Duration": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

" + } + }, + "ProductDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The product description filter value. Specify this parameter to show only those reservations matching the specified product description.

" + } + }, + "OfferingType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Partial Upfront\" | \"All Upfront\" | \"No Upfront\"

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to show only those reservations that support Multi-AZ.

" + } + }, + "LeaseId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lease identifier filter value. Specify this parameter to show only the reservation that matches the specified lease ID.

Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeReservedDBInstancesOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeReservedDBInstancesOfferingsMessage" + }, + "output": { + "target": "com.amazonaws.rds#ReservedDBInstancesOfferingMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ReservedDBInstancesOfferingNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Lists available reserved DB instance offerings.

", + "smithy.api#examples": [ + { + "title": "To describe reserved DB instance offerings", + "documentation": "The following example retrieves details about reserved DB instance options for RDS for Oracle.", + "input": { + "ProductDescription": "oracle" + }, + "output": { + "ReservedDBInstancesOfferings": [ + { + "CurrencyCode": "USD", + "UsagePrice": 0, + "ProductDescription": "oracle-se2(li)", + "ReservedDBInstancesOfferingId": "005bdee3-9ef4-4182-aa0c-58ef7cb6c2f8", + "MultiAZ": true, + "DBInstanceClass": "db.m4.xlarge", + "OfferingType": "Partial Upfront", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.594, + "RecurringChargeFrequency": "Hourly" + } + ], + "FixedPrice": 4089, + "Duration": 31536000 + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "ReservedDBInstancesOfferings", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeReservedDBInstancesOfferingsMessage": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering identifier filter value. Specify this parameter to show only the available offering that matches the specified reservation identifier.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.

" + } + }, + "Duration": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

" + } + }, + "ProductDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Product description filter value. Specify this parameter to show only the available offerings that contain the specified product description.

The results show offerings that partially match the filter value.

" + } + }, + "OfferingType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Partial Upfront\" | \"All Upfront\" | \"No Upfront\"

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to show only those reservations that support Multi-AZ.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeServerlessV2PlatformVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeServerlessV2PlatformVersionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#ServerlessV2PlatformVersionsMessage" + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of specific platform versions for Aurora Serverless v2.

", + "smithy.api#examples": [ + { + "title": "To describe the serverless platform versions for the Aurora MySQL DB engine", + "documentation": "The following example displays details about each of the serverless platform versions for the specified DB engine.", + "input": { + "Engine": "aurora-mysql" + }, + "output": { + "ServerlessV2PlatformVersions": [ + { + "Engine": "aurora-mysql", + "IsDefault": true, + "ServerlessV2FeaturesSupport": { + "MaxCapacity": 256.0, + "MinCapacity": 0.0 + }, + "ServerlessV2PlatformVersion": "4", + "ServerlessV2PlatformVersionDescription": "Version 4 offering scaling up to 256 ACUs, and performance improvement up to 30% compared to version 3", + "Status": "enabled" + }, + { + "Engine": "aurora-mysql", + "IsDefault": false, + "ServerlessV2FeaturesSupport": { + "MaxCapacity": 256.0, + "MinCapacity": 0.0 + }, + "ServerlessV2PlatformVersion": "3", + "ServerlessV2PlatformVersionDescription": "Version 3 offering scaling up to 256 ACUs, and performance improvement up to 30% compared to version 2", + "Status": "enabled" + }, + { + "Engine": "aurora-mysql", + "IsDefault": false, + "ServerlessV2FeaturesSupport": { + "MaxCapacity": 256.0, + "MinCapacity": 0.0 + }, + "ServerlessV2PlatformVersion": "2", + "ServerlessV2PlatformVersionDescription": "Version 2 offering scaling up to 256 ACUs", + "Status": "enabled" + }, + { + "Engine": "aurora-mysql", + "IsDefault": false, + "ServerlessV2FeaturesSupport": { + "MaxCapacity": 128.0, + "MinCapacity": 0.0 + }, + "ServerlessV2PlatformVersion": "1", + "ServerlessV2PlatformVersionDescription": "Version 1 offering scaling up to 128 ACUs", + "Status": "enabled" + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "ServerlessV2PlatformVersions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeServerlessV2PlatformVersionsMessage": { + "type": "structure", + "members": { + "ServerlessV2PlatformVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A specific platform version to return details for.

Example: 3

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine to return platform version details for.

Valid Values:

  • aurora-mysql

  • aurora-postgresql

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + }, + "DefaultOnly": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to return only the default platform versions for each engine. The default platform version is the version used for new DB clusters.

" + } + }, + "IncludeAll": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to also include platform versions which are no longer in use.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 20

Constraints: Minimum 1, maximum 200.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeSourceRegions": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeSourceRegionsMessage" + }, + "output": { + "target": "com.amazonaws.rds#SourceRegionMessage" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of the source Amazon Web Services Regions where the current Amazon Web Services Region can create a read replica, copy a DB snapshot from, or replicate automated backups from.

Use this operation to determine whether cross-Region features are supported between other Regions and your current Region. This operation supports pagination.

To return information about the Regions that are enabled for your account, or all Regions, use the EC2 operation DescribeRegions. For more information, see DescribeRegions in the Amazon EC2 API Reference.

", + "smithy.api#examples": [ + { + "title": "To describe source Regions", + "documentation": "The following example retrieves details about all source AWS Regions where the current AWS Region can create a read replica, copy a DB snapshot from, or replicate automated backups from. It also shows that automated backups can be replicated only from US West (Oregon) to the destination AWS Region, US East (N. Virginia).", + "input": { + "RegionName": "us-east-1" + }, + "output": { + "SourceRegions": [ + { + "RegionName": "af-south-1", + "Endpoint": "https://rds.af-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-east-1", + "Endpoint": "https://rds.ap-east-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-northeast-1", + "Endpoint": "https://rds.ap-northeast-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-northeast-2", + "Endpoint": "https://rds.ap-northeast-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-northeast-3", + "Endpoint": "https://rds.ap-northeast-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ap-south-1", + "Endpoint": "https://rds.ap-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-1", + "Endpoint": "https://rds.ap-southeast-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-2", + "Endpoint": "https://rds.ap-southeast-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "ap-southeast-3", + "Endpoint": "https://rds.ap-southeast-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "ca-central-1", + "Endpoint": "https://rds.ca-central-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-north-1", + "Endpoint": "https://rds.eu-north-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-south-1", + "Endpoint": "https://rds.eu-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "eu-west-1", + "Endpoint": "https://rds.eu-west-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-west-2", + "Endpoint": "https://rds.eu-west-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "eu-west-3", + "Endpoint": "https://rds.eu-west-3.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "me-central-1", + "Endpoint": "https://rds.me-central-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "me-south-1", + "Endpoint": "https://rds.me-south-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": false + }, + { + "RegionName": "sa-east-1", + "Endpoint": "https://rds.sa-east-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-east-2", + "Endpoint": "https://rds.us-east-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-west-1", + "Endpoint": "https://rds.us-west-1.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + }, + { + "RegionName": "us-west-2", + "Endpoint": "https://rds.us-west-2.amazonaws.com", + "Status": "available", + "SupportsDBInstanceAutomatedBackupsReplication": true + } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "SourceRegions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeSourceRegionsMessage": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The source Amazon Web Services Region name. For example, us-east-1.

Constraints:

  • Must specify a valid Amazon Web Services Region name.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeTenantDatabases": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeTenantDatabasesMessage" + }, + "output": { + "target": "com.amazonaws.rds#TenantDatabasesMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the tenant databases in a DB instance that uses the multi-tenant configuration. Only RDS for Oracle CDB instances are supported.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "TenantDatabases", + "pageSize": "MaxRecords" + }, + "smithy.waiters#waitable": { + "TenantDatabaseAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + }, + "TenantDatabaseDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(TenantDatabases) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBInstanceNotFoundFault" + } + } + ], + "minDelay": 30, + "maxDelay": 1800 + } + } + } + }, + "com.amazonaws.rds#DescribeTenantDatabasesMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied DB instance identifier, which must match the identifier of an existing instance owned by the Amazon Web Services account. This parameter isn't case-sensitive.

" + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied tenant database name, which must match the name of an existing tenant database on the specified DB instance owned by your Amazon Web Services account. This parameter isn’t case-sensitive.

" + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

A filter that specifies one or more database tenants to describe.

Supported filters:

  • tenant-db-name - Tenant database names. The results list only includes information about the tenant databases that match these tenant DB names.

  • tenant-database-resource-id - Tenant database resource identifiers.

  • dbi-resource-id - DB instance resource identifiers. The results list only includes information about the tenants contained within the DB instances identified by these resource identifiers.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeTenantDatabases request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeValidDBInstanceModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeValidDBInstanceModificationsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeValidDBInstanceModificationsResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

You can call DescribeValidDBInstanceModifications to learn what modifications you can make to your DB instance. You can use this information when you call ModifyDBInstance.

This command doesn't apply to RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To describe valid modifications for a DB instance", + "documentation": "The following example retrieves details about the valid modifications for the specified DB instance.", + "input": { + "DBInstanceIdentifier": "database-test1" + }, + "output": { + "ValidDBInstanceModificationsMessage": { + "Storage": [ + { + "StorageType": "gp2", + "StorageSize": [ + { + "From": 20, + "To": 20, + "Step": 1 + }, + { + "From": 22, + "To": 6144, + "Step": 1 + } + ] + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#DescribeValidDBInstanceModificationsMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The customer identifier or the ARN of your DB instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeValidDBInstanceModificationsResult": { + "type": "structure", + "members": { + "ValidDBInstanceModificationsMessage": { + "target": "com.amazonaws.rds#ValidDBInstanceModificationsMessage" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.rds#DisableHttpEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DisableHttpEndpointRequest" + }, + "output": { + "target": "com.amazonaws.rds#DisableHttpEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidResourceStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Disables the HTTP endpoint for the specified DB cluster. Disabling this endpoint disables RDS Data API.

For more information, see Using RDS Data API in the Amazon Aurora User Guide.

This operation applies only to Aurora Serverless v2 and provisioned DB clusters. To disable the HTTP endpoint for Aurora Serverless v1 DB clusters, use the EnableHttpEndpoint parameter of the ModifyDBCluster operation.

" + } + }, + "com.amazonaws.rds#DisableHttpEndpointRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB cluster.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DisableHttpEndpointResponse": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN of the DB cluster.

" + } + }, + "HttpEndpointEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the HTTP endpoint is enabled or disabled for the DB cluster.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#DocLink": { + "type": "structure", + "members": { + "Text": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The text with the link to documentation for the recommendation.

" + } + }, + "Url": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The URL for the documentation for the recommendation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A link to documentation that provides additional information for a recommendation.

" + } + }, + "com.amazonaws.rds#DocLinkList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DocLink" + } + }, + "com.amazonaws.rds#DomainMembership": { + "type": "structure", + "members": { + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the Active Directory Domain.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the Active Directory Domain membership for the DB instance or cluster. Values include joined, pending-join, failed, and so on.

" + } + }, + "FQDN": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of the Active Directory Domain.

" + } + }, + "IAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role used when making API calls to the Directory Service.

" + } + }, + "OU": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for the DB instance or cluster.

" + } + }, + "AuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user that's a member of the domain.

" + } + }, + "DnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of the primary and secondary Active Directory domain controllers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Active Directory Domain membership record associated with the DB instance or cluster.

" + } + }, + "com.amazonaws.rds#DomainMembershipList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DomainMembership", + "traits": { + "smithy.api#xmlName": "DomainMembership" + } + } + }, + "com.amazonaws.rds#DomainNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DomainNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

Domain doesn't refer to an existing Active Directory domain.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#Double": { + "type": "double" + }, + "com.amazonaws.rds#DoubleOptional": { + "type": "double" + }, + "com.amazonaws.rds#DoubleRange": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The minimum value in the range.

" + } + }, + "To": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The maximum value in the range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A range of double values.

" + } + }, + "com.amazonaws.rds#DoubleRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DoubleRange", + "traits": { + "smithy.api#xmlName": "DoubleRange" + } + } + }, + "com.amazonaws.rds#DownloadDBLogFilePortion": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DownloadDBLogFilePortionMessage" + }, + "output": { + "target": "com.amazonaws.rds#DownloadDBLogFilePortionDetails" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotReadyFault" + }, + { + "target": "com.amazonaws.rds#DBLogFileNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Downloads all or a portion of the specified log file, up to 1 MB in size.

This command doesn't apply to RDS Custom.

This operation uses resources on database instances. Because of this, we recommend publishing database logs to CloudWatch and then using the GetLogEvents operation. For more information, see GetLogEvents in the Amazon CloudWatch Logs API Reference.

", + "smithy.api#examples": [ + { + "title": "To download a DB log file", + "documentation": "The following example downloads only the latest part of your log file.", + "input": { + "DBInstanceIdentifier": "test-instance", + "LogFileName": "log.txt" + }, + "output": {} + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "pageSize": "NumberOfLines" + } + } + }, + "com.amazonaws.rds#DownloadDBLogFilePortionDetails": { + "type": "structure", + "members": { + "LogFileData": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

Entries from the specified log file.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DownloadDBLogFilePortion request.

" + } + }, + "AdditionalDataPending": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

A Boolean value that, if true, indicates there is more data to be downloaded.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element to DownloadDBLogFilePortion.

" + } + }, + "com.amazonaws.rds#DownloadDBLogFilePortionMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "smithy.api#required": {} + } + }, + "LogFileName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the log file to be downloaded.

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The pagination token provided in the previous request or \"0\". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines.

" + } + }, + "NumberOfLines": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file is truncated at 1 MB in size.

If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter.

  • If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first.

  • If NumberOfLines is specified and Marker isn't specified, then the most recent lines from the end of the log file are returned.

  • If Marker is specified as \"0\", then the specified number of lines from the beginning of the log file are returned.

  • You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of \"0\" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#EC2SecurityGroup": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the status of the EC2 security group. Status can be \"authorizing\", \"authorized\", \"revoking\", and \"revoked\".

" + } + }, + "EC2SecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the EC2 security group.

" + } + }, + "EC2SecurityGroupId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the id of the EC2 security group.

" + } + }, + "EC2SecurityGroupOwnerId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services ID of the owner of the EC2 security group specified in the EC2SecurityGroupName field.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the following actions:

  • AuthorizeDBSecurityGroupIngress

  • DescribeDBSecurityGroups

  • RevokeDBSecurityGroupIngress

" + } + }, + "com.amazonaws.rds#EC2SecurityGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#EC2SecurityGroup", + "traits": { + "smithy.api#xmlName": "EC2SecurityGroup" + } + } + }, + "com.amazonaws.rds#Ec2ImagePropertiesNotSupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "Ec2ImagePropertiesNotSupportedFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The AMI configuration prerequisite has not been met.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#EnableHttpEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#EnableHttpEndpointRequest" + }, + "output": { + "target": "com.amazonaws.rds#EnableHttpEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidResourceStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Enables the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.

When enabled, this endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the Aurora DB cluster. You can also query your database from inside the RDS console with the RDS query editor.

For more information, see Using RDS Data API in the Amazon Aurora User Guide.

This operation applies only to Aurora Serverless v2 and provisioned DB clusters. To enable the HTTP endpoint for Aurora Serverless v1 DB clusters, use the EnableHttpEndpoint parameter of the ModifyDBCluster operation.

" + } + }, + "com.amazonaws.rds#EnableHttpEndpointRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB cluster.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#EnableHttpEndpointResponse": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN of the DB cluster.

" + } + }, + "HttpEndpointEnabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the HTTP endpoint is enabled or disabled for the DB cluster.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#EncryptionContextMap": { + "type": "map", + "key": { + "target": "com.amazonaws.rds#String" + }, + "value": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#EndDateType": { + "type": "enum", + "members": { + "unlimited": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unlimited" + } + }, + "limited": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "limited" + } + } + } + }, + "com.amazonaws.rds#Endpoint": { + "type": "structure", + "members": { + "Address": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the DNS address of the DB instance.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

Specifies the port that the database engine is listening on.

" + } + }, + "HostedZoneId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a response element in the following actions:

  • CreateDBInstance

  • DescribeDBInstances

  • DeleteDBInstance

For the data structure that represents Amazon Aurora DB cluster endpoints, see DBClusterEndpoint.

" + } + }, + "com.amazonaws.rds#EndpointNetworkType": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV4" + } + }, + "IPV6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV6" + } + }, + "DUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DUAL" + } + } + } + }, + "com.amazonaws.rds#Engine": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.rds#EngineDefaults": { + "type": "structure", + "members": { + "DBParameterGroupFamily": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the DB parameter group family that the engine default parameters apply to.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

" + } + }, + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#documentation": "

Contains a list of engine default parameters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeEngineDefaultParameters action.

" + } + }, + "com.amazonaws.rds#EngineFamily": { + "type": "enum", + "members": { + "MYSQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MYSQL" + } + }, + "POSTGRESQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POSTGRESQL" + } + }, + "SQLSERVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SQLSERVER" + } + } + } + }, + "com.amazonaws.rds#EngineModeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#Event": { + "type": "structure", + "members": { + "SourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the identifier for the source of the event.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#SourceType", + "traits": { + "smithy.api#documentation": "

Specifies the source type for this event.

" + } + }, + "Message": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides the text of this event.

" + } + }, + "EventCategories": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

Specifies the category for the event.

" + } + }, + "Date": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

Specifies the date and time of the event.

" + } + }, + "SourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the event.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeEvents action.

" + } + }, + "com.amazonaws.rds#EventCategoriesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "EventCategory" + } + } + }, + "com.amazonaws.rds#EventCategoriesMap": { + "type": "structure", + "members": { + "SourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The source type that the returned categories belong to

" + } + }, + "EventCategories": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

The event categories for the specified source type

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the results of a successful invocation of the DescribeEventCategories operation.

" + } + }, + "com.amazonaws.rds#EventCategoriesMapList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#EventCategoriesMap", + "traits": { + "smithy.api#xmlName": "EventCategoriesMap" + } + } + }, + "com.amazonaws.rds#EventCategoriesMessage": { + "type": "structure", + "members": { + "EventCategoriesMapList": { + "target": "com.amazonaws.rds#EventCategoriesMapList", + "traits": { + "smithy.api#documentation": "

A list of EventCategoriesMap data types.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Data returned from the DescribeEventCategories operation.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#EventList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Event", + "traits": { + "smithy.api#xmlName": "Event" + } + } + }, + "com.amazonaws.rds#EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services customer account associated with the RDS event notification subscription.

" + } + }, + "CustSubscriptionId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The RDS event notification subscription Id.

" + } + }, + "SnsTopicArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The topic ARN of the RDS event notification subscription.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the RDS event notification subscription.

Constraints:

Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist

The status \"no-permission\" indicates that RDS no longer has permission to post to the SNS topic. The status \"topic-not-exist\" indicates that the topic was deleted after the subscription was created.

" + } + }, + "SubscriptionCreationTime": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time the RDS event notification subscription was created.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The source type for the RDS event notification subscription.

" + } + }, + "SourceIdsList": { + "target": "com.amazonaws.rds#SourceIdsList", + "traits": { + "smithy.api#documentation": "

A list of source IDs for the RDS event notification subscription.

" + } + }, + "EventCategoriesList": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

A list of event categories for the RDS event notification subscription.

" + } + }, + "Enabled": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the subscription is enabled. True indicates the subscription is enabled.

" + } + }, + "EventSubscriptionArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the event subscription.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the results of a successful invocation of the DescribeEventSubscriptions action.

" + } + }, + "com.amazonaws.rds#EventSubscriptionQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "EventSubscriptionQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You have reached the maximum number of event subscriptions.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#EventSubscriptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#EventSubscription", + "traits": { + "smithy.api#xmlName": "EventSubscription" + } + } + }, + "com.amazonaws.rds#EventSubscriptionsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "EventSubscriptionsList": { + "target": "com.amazonaws.rds#EventSubscriptionsList", + "traits": { + "smithy.api#documentation": "

A list of EventSubscriptions data types.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Data returned by the DescribeEventSubscriptions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#EventsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous Events request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "Events": { + "target": "com.amazonaws.rds#EventList", + "traits": { + "smithy.api#documentation": "

A list of Event instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeEvents action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ExceptionMessage": { + "type": "string" + }, + "com.amazonaws.rds#ExportSourceType": { + "type": "enum", + "members": { + "SNAPSHOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SNAPSHOT" + } + }, + "CLUSTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLUSTER" + } + } + } + }, + "com.amazonaws.rds#ExportTask": { + "type": "structure", + "members": { + "ExportTaskIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A unique identifier for the snapshot or cluster export task. This ID isn't an identifier for the Amazon S3 bucket where the data is exported.

" + } + }, + "SourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

" + } + }, + "ExportOnly": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The data exported from the snapshot or cluster.

Valid Values:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot or cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot or cluster. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" + } + }, + "SnapshotTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the snapshot was created.

" + } + }, + "TaskStartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the snapshot or cluster export task started.

" + } + }, + "TaskEndTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the snapshot or cluster export task ended.

" + } + }, + "S3Bucket": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket where the snapshot or cluster is exported to.

" + } + }, + "S3Prefix": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket prefix that is the file name and path of the exported data.

" + } + }, + "IamRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role that is used to write to Amazon S3 when exporting a snapshot or cluster.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The key identifier of the Amazon Web Services KMS key that is used to encrypt the data when it's exported to Amazon S3. The KMS key identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the export must have encryption and decryption permissions to use this KMS key.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The progress status of the export task. The status can be one of the following:

  • CANCELED

  • CANCELING

  • COMPLETE

  • FAILED

  • IN_PROGRESS

  • STARTING

" + } + }, + "PercentProgress": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The progress of the snapshot or cluster export task as a percentage.

" + } + }, + "TotalExtractedDataInGB": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The total amount of data exported, in gigabytes.

" + } + }, + "FailureCause": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The reason the export failed, if it failed.

" + } + }, + "WarningMessage": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A warning about the snapshot or cluster export task.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#ExportSourceType", + "traits": { + "smithy.api#documentation": "

The type of source for the export.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details of a snapshot or cluster export to Amazon S3.

This data type is used as a response element in the DescribeExportTasks operation.

" + } + }, + "com.amazonaws.rds#ExportTaskAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ExportTaskAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't start an export task that's already running.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#ExportTaskNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ExportTaskNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The export task doesn't exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ExportTasksList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ExportTask", + "traits": { + "smithy.api#xmlName": "ExportTask" + } + } + }, + "com.amazonaws.rds#ExportTasksMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeExportTasks request. A marker is used for pagination to identify the location to begin output for the next response of DescribeExportTasks.

" + } + }, + "ExportTasks": { + "target": "com.amazonaws.rds#ExportTasksList", + "traits": { + "smithy.api#documentation": "

Information about an export of a snapshot or cluster to Amazon S3.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#FailoverDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#FailoverDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#FailoverDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Forces a failover for a DB cluster.

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

For a Multi-AZ DB cluster, after RDS terminates the primary DB instance, the internal monitoring system detects that the primary DB instance is unhealthy and promotes a readable standby (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer). Failover times are typically less than 35 seconds.

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To perform a failover for a DB cluster", + "documentation": "This example performs a failover for the specified DB cluster to the specified DB instance.", + "input": { + "DBClusterIdentifier": "myaurorainstance-cluster", + "TargetDBInstanceIdentifier": "myaurorareplica" + }, + "output": { + "DBCluster": {} + } + } + ] + } + }, + "com.amazonaws.rds#FailoverDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster to force a failover for. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DB cluster.

", + "smithy.api#required": {} + } + }, + "TargetDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB instance to promote to the primary DB instance.

Specify the DB instance identifier for an Aurora Replica or a Multi-AZ readable standby in the DB cluster, for example mydbcluster-replica1.

This setting isn't supported for RDS for MySQL Multi-AZ DB clusters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#FailoverDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#FailoverGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#FailoverGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#FailoverGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Promotes the specified secondary DB cluster to be the primary DB cluster in the global database cluster to fail over or switch over a global database. Switchover operations were previously called \"managed planned failovers.\"

Although this operation can be used either to fail over or to switch over a global database cluster, its intended use is for global database failover. To switch over a global database cluster, we recommend that you use the SwitchoverGlobalCluster operation instead.

How you use this operation depends on whether you are failing over or switching over your global database cluster:

  • Failing over - Specify the AllowDataLoss parameter and don't specify the Switchover parameter.

  • Switching over - Specify the Switchover parameter or omit it, but don't specify the AllowDataLoss parameter.

About failing over and switching over

While failing over and switching over a global database cluster both change the primary DB cluster, you use these operations for different reasons:

  • Failing over - Use this operation to respond to an unplanned event, such as a Regional disaster in the primary Region. Failing over can result in a loss of write transaction data that wasn't replicated to the chosen secondary before the failover event occurred. However, the recovery process that promotes a DB instance on the chosen seconday DB cluster to be the primary writer DB instance guarantees that the data is in a transactionally consistent state.

    For more information about failing over an Amazon Aurora global database, see Performing managed failovers for Aurora global databases in the Amazon Aurora User Guide.

  • Switching over - Use this operation on a healthy global database cluster for planned events, such as Regional rotation or to fail back to the original primary DB cluster after a failover operation. With this operation, there is no data loss.

    For more information about switching over an Amazon Aurora global database, see Performing switchovers for Aurora global databases in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#FailoverGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the global database cluster (Aurora global database) this operation should apply to. The identifier is the unique key assigned by the user when the Aurora global database is created. In other words, it's the name of the Aurora global database.

Constraints:

  • Must match the identifier of an existing global database cluster.

", + "smithy.api#required": {} + } + }, + "TargetDbClusterIdentifier": { + "target": "com.amazonaws.rds#DBClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the secondary Aurora DB cluster that you want to promote to the primary for the global database cluster. Use the Amazon Resource Name (ARN) for the identifier so that Aurora can locate the cluster in its Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "AllowDataLoss": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to allow data loss for this global database cluster operation. Allowing data loss triggers a global failover operation.

If you don't specify AllowDataLoss, the global database cluster operation defaults to a switchover.

Constraints:

  • Can't be specified together with the Switchover parameter.

" + } + }, + "Switchover": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to switch over this global database cluster.

Constraints:

  • Can't be specified together with the AllowDataLoss parameter.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#FailoverGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#FailoverState": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.rds#FailoverStatus", + "traits": { + "smithy.api#documentation": "

The current status of the global cluster. Possible values are as follows:

  • pending – The service received a request to switch over or fail over the global cluster. The global cluster's primary DB cluster and the specified secondary DB cluster are being verified before the operation starts.

  • failing-over – Aurora is promoting the chosen secondary Aurora DB cluster to become the new primary DB cluster to fail over the global cluster.

  • cancelling – The request to switch over or fail over the global cluster was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.

  • switching-over – This status covers the range of Aurora internal operations that take place during the switchover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing replicas.

" + } + }, + "FromDbClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state.

" + } + }, + "ToDbClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.

" + } + }, + "IsDataLossAllowed": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the operation is a global switchover or a global failover. If data loss is allowed, then the operation is a global failover. Otherwise, it's a switchover.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the state of scheduled or in-process operations on a global cluster (Aurora global database). This data type is empty unless a switchover or failover operation is scheduled or is in progress on the Aurora global database.

" + } + }, + "com.amazonaws.rds#FailoverStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "FAILING_OVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failing-over" + } + }, + "CANCELLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelling" + } + } + } + }, + "com.amazonaws.rds#FeatureNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#Filter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the filter. Filter names are case-sensitive.

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.rds#FilterValueList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

One or more filter values. Filter values are case-sensitive.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as IDs. The filters supported by a describe operation are documented with the describe operation.

Currently, wildcards are not supported in filters.

The following actions can be filtered:

  • DescribeDBCapacityReservations

  • DescribeDBClusterBacktracks

  • DescribeDBClusterEndpoints

  • DescribeDBClusters

  • DescribeDBInstances

  • DescribeDBRecommendations

  • DescribeDBShardGroups

  • DescribePendingMaintenanceActions

" + } + }, + "com.amazonaws.rds#FilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Filter", + "traits": { + "smithy.api#xmlName": "Filter" + } + } + }, + "com.amazonaws.rds#FilterValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "Value" + } + } + }, + "com.amazonaws.rds#GlobalCluster": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#documentation": "

Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster.

" + } + }, + "GlobalClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services partition-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS key for the DB cluster is accessed.

" + } + }, + "GlobalClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the global database cluster.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the current state of this global database cluster.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Aurora database engine used by the global database cluster.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the database engine version.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for the global cluster.

For more information, see CreateGlobalCluster.

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default database name within the new global database cluster.

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

The storage encryption setting for the global database cluster.

" + } + }, + "StorageEncryptionType": { + "target": "com.amazonaws.rds#StorageEncryptionType", + "traits": { + "smithy.api#documentation": "

The type of encryption used to protect data at rest in the global database cluster. Possible values:

  • none - The global database cluster is not encrypted.

  • sse-rds - The global database cluster is encrypted using an Amazon Web Services owned KMS key.

  • sse-kms - The global database cluster is encrypted using a customer managed KMS key or Amazon Web Services managed KMS key.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

The deletion protection setting for the new global database cluster.

" + } + }, + "GlobalClusterMembers": { + "target": "com.amazonaws.rds#GlobalClusterMemberList", + "traits": { + "smithy.api#documentation": "

The list of primary and secondary clusters within the global database cluster.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster.

" + } + }, + "FailoverState": { + "target": "com.amazonaws.rds#FailoverState", + "traits": { + "smithy.api#documentation": "

A data object containing all properties for the current state of an in-process or pending switchover or failover process for this global cluster (Aurora global database). This object is empty unless the SwitchoverGlobalCluster or FailoverGlobalCluster operation was called on this global cluster.

" + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

A data type representing an Aurora global database.

" + } + }, + "com.amazonaws.rds#GlobalClusterAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "GlobalClusterAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The GlobalClusterIdentifier already exists. Specify a new global database identifier (unique name) to create a new global database cluster or to rename an existing one.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#GlobalClusterIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[A-Za-z][0-9A-Za-z-:._]*$" + } + }, + "com.amazonaws.rds#GlobalClusterList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#GlobalCluster", + "traits": { + "smithy.api#xmlName": "GlobalClusterMember" + } + } + }, + "com.amazonaws.rds#GlobalClusterMember": { + "type": "structure", + "members": { + "DBClusterArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for each Aurora DB cluster in the global cluster.

" + } + }, + "Readers": { + "target": "com.amazonaws.rds#ReadersArnList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for each read-only secondary cluster associated with the global cluster.

" + } + }, + "IsWriter": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the Aurora DB cluster is the primary cluster (that is, has read-write capability) for the global cluster with which it is associated.

" + } + }, + "GlobalWriteForwardingStatus": { + "target": "com.amazonaws.rds#WriteForwardingStatus", + "traits": { + "smithy.api#documentation": "

The status of write forwarding for a secondary cluster in the global cluster.

" + } + }, + "SynchronizationStatus": { + "target": "com.amazonaws.rds#GlobalClusterMemberSynchronizationStatus", + "traits": { + "smithy.api#documentation": "

The status of synchronization of each Aurora DB cluster in the global cluster.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A data structure with information about any primary and secondary clusters associated with a global cluster (Aurora global database).

" + } + }, + "com.amazonaws.rds#GlobalClusterMemberList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#GlobalClusterMember", + "traits": { + "smithy.api#xmlName": "GlobalClusterMember" + } + } + }, + "com.amazonaws.rds#GlobalClusterMemberSynchronizationStatus": { + "type": "enum", + "members": { + "CONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "connected" + } + }, + "PENDING_RESYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending-resync" + } + } + } + }, + "com.amazonaws.rds#GlobalClusterNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "GlobalClusterNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The GlobalClusterIdentifier doesn't refer to an existing global database cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#GlobalClusterQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "GlobalClusterQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The number of global database clusters for this account is already at the maximum allowed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#GlobalClustersMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeGlobalClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "GlobalClusters": { + "target": "com.amazonaws.rds#GlobalClusterList", + "traits": { + "smithy.api#documentation": "

The list of global clusters returned by this request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#IAMAuthMode": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUIRED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + } + }, + "com.amazonaws.rds#IAMRoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z-]*:iam::[0-9]*:role/.*$" + } + }, + "com.amazonaws.rds#IPRange": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the IP range. Status can be \"authorizing\", \"authorized\", \"revoking\", and \"revoked\".

" + } + }, + "CIDRIP": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The IP range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeDBSecurityGroups action.

" + } + }, + "com.amazonaws.rds#IPRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#IPRange", + "traits": { + "smithy.api#xmlName": "IPRange" + } + } + }, + "com.amazonaws.rds#IamRoleMissingPermissionsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IamRoleMissingPermissions", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The IAM role requires additional permissions to export to an Amazon S3 bucket.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IamRoleNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IamRoleNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The IAM role is missing for exporting to an Amazon S3 bucket.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#InstanceQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InstanceQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of DB instances.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InsufficientAvailableIPsInSubnetFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientAvailableIPsInSubnetFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The requested operation can't be performed because there aren't enough available IP addresses in the proxy's subnets. Add more CIDR blocks to the VPC or remove IP address that aren't required from the subnets.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InsufficientDBClusterCapacityFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientDBClusterCapacityFault", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

The DB cluster doesn't have enough capacity for the current operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.rds#InsufficientDBInstanceCapacityFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientDBInstanceCapacity", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified DB instance class isn't available in the specified Availability Zone.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InsufficientStorageClusterCapacityFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientStorageClusterCapacity", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

There is insufficient storage available for the current action. You might be able to resolve this error by updating your subnet group to use different Availability Zones that have more storage available.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#Integer": { + "type": "integer" + }, + "com.amazonaws.rds#IntegerOptional": { + "type": "integer" + }, + "com.amazonaws.rds#Integration": { + "type": "structure", + "members": { + "SourceArn": { + "target": "com.amazonaws.rds#SourceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the database used as the source for replication.

" + } + }, + "TargetArn": { + "target": "com.amazonaws.rds#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the Redshift data warehouse used as the target for replication.

" + } + }, + "IntegrationName": { + "target": "com.amazonaws.rds#IntegrationName", + "traits": { + "smithy.api#documentation": "

The name of the integration.

" + } + }, + "IntegrationArn": { + "target": "com.amazonaws.rds#IntegrationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the integration.

" + } + }, + "KMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key used to to encrypt the integration.

" + } + }, + "AdditionalEncryptionContext": { + "target": "com.amazonaws.rds#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

The encryption context for the integration. For more information, see Encryption context in the Amazon Web Services Key Management Service Developer Guide.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#IntegrationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the integration.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "DataFilter": { + "target": "com.amazonaws.rds#DataFilter", + "traits": { + "smithy.api#documentation": "

Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "

A description of the integration.

" + } + }, + "CreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the integration was created, in Universal Coordinated Time (UTC).

" + } + }, + "Errors": { + "target": "com.amazonaws.rds#IntegrationErrorList", + "traits": { + "smithy.api#documentation": "

Any errors associated with the integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A zero-ETL integration with Amazon Redshift.

" + } + }, + "com.amazonaws.rds#IntegrationAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The integration you are trying to create already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:integration:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + } + }, + "com.amazonaws.rds#IntegrationConflictOperationFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationConflictOperationFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A conflicting conditional operation is currently in progress against this resource. Typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.rds#IntegrationError": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The error code associated with the integration.

", + "smithy.api#required": {} + } + }, + "ErrorMessage": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A message explaining the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An error associated with a zero-ETL integration with Amazon Redshift.

" + } + }, + "com.amazonaws.rds#IntegrationErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#IntegrationError", + "traits": { + "smithy.api#xmlName": "IntegrationError" + } + } + }, + "com.amazonaws.rds#IntegrationIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_:\\-\\/]+$" + } + }, + "com.amazonaws.rds#IntegrationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Integration", + "traits": { + "smithy.api#xmlName": "Integration" + } + } + }, + "com.amazonaws.rds#IntegrationName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z](?:-?[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#IntegrationNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified integration could not be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#IntegrationQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't crate any more zero-ETL integrations because the quota has been reached.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "SYNCING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "syncing" + } + }, + "NEEDS_ATTENTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "needs_attention" + } + } + } + }, + "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidBlueGreenDeploymentStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The blue/green deployment can't be switched over or deleted because there is an invalid configuration in the green environment.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidCustomDBEngineVersionStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't delete the CEV.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBCapacityReservationStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBCapacityReservationState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB capacity reservation isn't in a valid state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBClusterAutomatedBackupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBClusterAutomatedBackupStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The automated backup is in an invalid state. For example, this automated backup is associated with an active cluster.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBClusterCapacityFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBClusterCapacityFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Capacity isn't a valid Aurora Serverless DB cluster capacity. Valid capacity values are 2, 4, 8, 16, 32, 64, 128, and 256.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBClusterEndpointStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBClusterEndpointStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The requested operation can't be performed on the endpoint while the endpoint is in this state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBClusterSnapshotStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The supplied value isn't a valid DB cluster snapshot state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBClusterStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBClusterStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The requested operation can't be performed while the cluster is in this state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBInstanceAutomatedBackupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBInstanceAutomatedBackupState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The automated backup is in an invalid state. For example, this automated backup is associated with an active instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBInstanceStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBInstanceState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB instance isn't in a valid state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBParameterGroupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBParameterGroupState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB parameter group is in use or is in an invalid state. If you are attempting to delete the parameter group, you can't delete it when the parameter group is in this state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBProxyEndpointStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBProxyEndpointStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't perform this operation while the DB proxy endpoint is in a particular state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBProxyStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBProxyStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The requested operation can't be performed while the proxy is in this state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBSecurityGroupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBSecurityGroupState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The state of the DB security group doesn't allow deletion.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBShardGroupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBShardGroupState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB shard group must be in the available state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBSnapshotStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBSnapshotState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The state of the DB snapshot doesn't allow deletion.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBSubnetGroupFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBSubnetGroupFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DBSubnetGroup doesn't belong to the same VPC as that of an existing cross-region read replica of the same source instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBSubnetGroupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBSubnetGroupStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB subnet group cannot be deleted because it's in use.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidDBSubnetStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidDBSubnetStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB subnet isn't in the available state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidEventSubscriptionStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidEventSubscriptionState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This error can occur if someone else is modifying a subscription. You should retry the action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidExportOnlyFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidExportOnly", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The export is invalid for exporting to an Amazon S3 bucket.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidExportSourceStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidExportSourceState", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The state of the export snapshot is invalid for exporting to an Amazon S3 bucket.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidExportTaskStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidExportTaskStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You can't cancel an export task that has completed.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidGlobalClusterStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidGlobalClusterStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The global cluster is in an invalid state and can't perform the requested operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidIntegrationStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidIntegrationStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The integration is in an invalid state and can't perform the requested operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidOptionGroupStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidOptionGroupStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The option group isn't in the available state.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidResourceStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidResourceStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The operation can't be performed because another operation is in progress.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidRestoreFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidRestoreFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Cannot restore from VPC backup to non-VPC DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidS3BucketFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidS3BucketFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified Amazon S3 bucket name can't be found or Amazon RDS isn't authorized to access the specified Amazon S3 bucket. Verify the SourceS3BucketName and S3IngestionRoleArn values and try again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidSubnet": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidSubnet", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#InvalidVPCNetworkStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidVPCNetworkStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB subnet group doesn't cover all Availability Zones after it's created because of users' change.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IssueDetails": { + "type": "structure", + "members": { + "PerformanceIssueDetails": { + "target": "com.amazonaws.rds#PerformanceIssueDetails", + "traits": { + "smithy.api#documentation": "

A detailed description of the issue when the recommendation category is performance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of an issue with your DB instances, DB clusters, and DB parameter groups.

" + } + }, + "com.amazonaws.rds#KMSKeyNotAccessibleFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSKeyNotAccessibleFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

An error occurred accessing an Amazon Web Services KMS key.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#KeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#KmsKeyIdOrArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_:\\-\\/]+$" + } + }, + "com.amazonaws.rds#LifecycleSupportName": { + "type": "enum", + "members": { + "OPEN_SOURCE_RDS_STANDARD_SUPPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open-source-rds-standard-support" + } + }, + "OPEN_SOURCE_RDS_EXTENDED_SUPPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open-source-rds-extended-support" + } + } + } + }, + "com.amazonaws.rds#LimitlessDatabase": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.rds#LimitlessDatabaseStatus", + "traits": { + "smithy.api#documentation": "

The status of Aurora Limitless Database.

" + } + }, + "MinRequiredACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum required capacity for Aurora Limitless Database in Aurora capacity units (ACUs).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details for Aurora Limitless Database.

" + } + }, + "com.amazonaws.rds#LimitlessDatabaseStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "NOT_IN_USE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not-in-use" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "ENABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "DISABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "MODIFYING_MAX_CAPACITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying-max-capacity" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + } + }, + "com.amazonaws.rds#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ListTagsForResourceMessage" + }, + "output": { + "target": "com.amazonaws.rds#TagListMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all tags on an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS Resources in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To list tags on an Amazon RDS resource", + "documentation": "The following example lists all tags on a DB instance.", + "input": { + "ResourceName": "arn:aws:rds:us-east-1:123456789012:db:orcl1" + }, + "output": { + "TagList": [ + { + "Key": "Environment", + "Value": "test" + }, + { + "Key": "Name", + "Value": "MyDatabase" + } + ] + } + } + ] + } + }, + "com.amazonaws.rds#ListTagsForResourceMessage": { + "type": "structure", + "members": { + "ResourceName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon RDS resource with tags to be listed. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide.

", + "smithy.api#required": {} + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

This parameter isn't currently supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#LocalWriteForwardingStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "ENABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "DISABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "requested" + } + } + } + }, + "com.amazonaws.rds#LogTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#Long": { + "type": "long" + }, + "com.amazonaws.rds#LongOptional": { + "type": "long" + }, + "com.amazonaws.rds#MajorEngineVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.rds#Marker": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 340 + } + } + }, + "com.amazonaws.rds#MasterUserAuthenticationType": { + "type": "enum", + "members": { + "PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "password" + } + }, + "IAM_DB_AUTH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "iam-db-auth" + } + } + } + }, + "com.amazonaws.rds#MasterUserSecret": { + "type": "structure", + "members": { + "SecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret.

" + } + }, + "SecretStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the secret.

The possible status values include the following:

  • creating - The secret is being created.

  • active - The secret is available for normal use and rotation.

  • rotating - The secret is being rotated.

  • impaired - The secret can be used to access database credentials, but it can't be rotated. A secret might have this status if, for example, permissions are changed so that RDS can no longer access either the secret or the KMS key for the secret.

    When a secret has this status, you can correct the condition that caused the status. Alternatively, modify the DB instance to turn off automatic management of database credentials, and then modify the DB instance again to turn on automatic management of database credentials.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier that is used to encrypt the secret.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the secret managed by RDS in Amazon Web Services Secrets Manager for the master user password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#MaxDBShardGroupLimitReached": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "MaxDBShardGroupLimitReached", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The maximum number of DB shard groups for your Amazon Web Services account in the specified Amazon Web Services Region has been reached.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#MaxRecords": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 20, + "max": 100 + } + } + }, + "com.amazonaws.rds#Metric": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of a metric.

" + } + }, + "References": { + "target": "com.amazonaws.rds#MetricReferenceList", + "traits": { + "smithy.api#documentation": "

A list of metric references (thresholds).

" + } + }, + "StatisticsDetails": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The details of different statistics for a metric. The description might contain markdown.

" + } + }, + "MetricQuery": { + "target": "com.amazonaws.rds#MetricQuery", + "traits": { + "smithy.api#documentation": "

The query to retrieve metric data points.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The representation of a metric.

" + } + }, + "com.amazonaws.rds#MetricList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Metric" + } + }, + "com.amazonaws.rds#MetricQuery": { + "type": "structure", + "members": { + "PerformanceInsightsMetricQuery": { + "target": "com.amazonaws.rds#PerformanceInsightsMetricQuery", + "traits": { + "smithy.api#documentation": "

The Performance Insights query that you can use to retrieve Performance Insights metric data points.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The query to retrieve metric data points.

" + } + }, + "com.amazonaws.rds#MetricReference": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the metric reference.

" + } + }, + "ReferenceDetails": { + "target": "com.amazonaws.rds#ReferenceDetails", + "traits": { + "smithy.api#documentation": "

The details of a performance issue.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The reference (threshold) for a metric.

" + } + }, + "com.amazonaws.rds#MetricReferenceList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#MetricReference" + } + }, + "com.amazonaws.rds#MinimumEngineVersionPerAllowedValue": { + "type": "structure", + "members": { + "AllowedValue": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The allowed value for an option setting.

" + } + }, + "MinimumEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The minimum DB engine version required for the allowed value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The minimum DB engine version required for each corresponding allowed value for an option setting.

" + } + }, + "com.amazonaws.rds#MinimumEngineVersionPerAllowedValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#MinimumEngineVersionPerAllowedValue", + "traits": { + "smithy.api#xmlName": "MinimumEngineVersionPerAllowedValue" + } + } + }, + "com.amazonaws.rds#ModifyActivityStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyActivityStreamRequest" + }, + "output": { + "target": "com.amazonaws.rds#ModifyActivityStreamResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the audit policy state of a database activity stream to either locked (default) or unlocked. A locked policy is read-only, whereas an unlocked policy is read/write. If your activity stream is started and locked, you can unlock it, customize your audit policy, and then lock your activity stream. Restarting the activity stream isn't required. For more information, see Modifying a database activity stream in the Amazon RDS User Guide.

This operation is supported for RDS for Oracle and Microsoft SQL Server.

" + } + }, + "com.amazonaws.rds#ModifyActivityStreamRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:db:my-orcl-db.

" + } + }, + "AuditPolicyState": { + "target": "com.amazonaws.rds#AuditPolicyState", + "traits": { + "smithy.api#documentation": "

The audit policy state. When a policy is unlocked, it is read/write. When it is locked, it is read-only. You can edit your audit policy only when the activity stream is unlocked or stopped.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyActivityStreamResponse": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of messages in the database activity stream.

" + } + }, + "KinesisStreamName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream to be used for the database activity stream.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#ActivityStreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the modification to the database activity stream.

" + } + }, + "Mode": { + "target": "com.amazonaws.rds#ActivityStreamMode", + "traits": { + "smithy.api#documentation": "

The mode of the database activity stream.

" + } + }, + "EngineNativeAuditFieldsIncluded": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether engine-native audit fields are included in the database activity stream.

" + } + }, + "PolicyStatus": { + "target": "com.amazonaws.rds#ActivityStreamPolicyStatus", + "traits": { + "smithy.api#documentation": "

The status of the modification to the policy state of the database activity stream.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyAdditionalStorageVolume": { + "type": "structure", + "members": { + "VolumeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the additional storage volume that you want to modify.

Valid Values: RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4

", + "smithy.api#required": {} + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).

" + } + }, + "IOPS": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of I/O operations per second (IOPS) provisioned for the additional storage volume. This setting is only supported for Provisioned IOPS SSD (io1 and io2) storage types.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume. You must provide a value greater than or equal to AllocatedStorage.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the additional storage volume, in mebibytes per second (MiBps). This setting applies only to the General Purpose SSD (gp3) storage type.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new storage type for the additional storage volume.

Valid Values: GP3 | IO2

" + } + }, + "SetForDelete": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether to delete the additional storage volume. The value true schedules the volume for deletion. You can delete an additional storage volume only when it doesn't contain database files or other data.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the modification of an additional storage volume.

" + } + }, + "com.amazonaws.rds#ModifyAdditionalStorageVolumesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ModifyAdditionalStorageVolume" + } + }, + "com.amazonaws.rds#ModifyCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyCertificatesMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyCertificatesResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Override the system-default Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificate for Amazon RDS for new DB instances, or remove the override.

By using this operation, you can specify an RDS-approved SSL/TLS certificate for new DB instances that is different from the default certificate provided by RDS. You can also use this operation to remove the override, so that new DB instances use the default certificate provided by RDS.

You might need to override the default certificate in the following situations:

  • You already migrated your applications to support the latest certificate authority (CA) certificate, but the new CA certificate is not yet the RDS default CA certificate for the specified Amazon Web Services Region.

  • RDS has already moved to a new default CA certificate for the specified Amazon Web Services Region, but you are still in the process of supporting the new CA certificate. In this case, you temporarily need additional time to finish your application changes.

For more information about rotating your SSL/TLS certificate for RDS DB engines, see Rotating Your SSL/TLS Certificate in the Amazon RDS User Guide.

For more information about rotating your SSL/TLS certificate for Aurora DB engines, see Rotating Your SSL/TLS Certificate in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To temporarily override the system-default SSL/TLS certificate for new DB instances", + "documentation": "The following example temporarily overrides the system-default SSL/TLS certificate for new DB instances.", + "input": { + "CertificateIdentifier": "rds-ca-2019" + }, + "output": { + "Certificate": { + "CertificateIdentifier": "rds-ca-2019", + "CertificateType": "CA", + "Thumbprint": "EXAMPLE123456789012", + "ValidFrom": "2019-09-19T18:16:53Z", + "ValidTill": "2024-08-22T17:08:50Z", + "CertificateArn": "arn:aws:rds:us-east-1::cert:rds-ca-2019", + "CustomerOverride": true, + "CustomerOverrideValidTill": "2024-08-22T17:08:50Z" + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyCertificatesMessage": { + "type": "structure", + "members": { + "CertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new default certificate identifier to override the current one with.

To determine the valid values, use the describe-certificates CLI command or the DescribeCertificates API operation.

" + } + }, + "RemoveCustomerOverride": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to remove the override for the default certificate. If the override is removed, the default certificate is the system default.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyCertificatesResult": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.rds#Certificate" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyCurrentDBClusterCapacity": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyCurrentDBClusterCapacityMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterCapacityInfo" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Set the capacity of an Aurora Serverless v1 DB cluster to a specific value.

Aurora Serverless v1 scales seamlessly based on the workload on the DB cluster. In some cases, the capacity might not scale fast enough to meet a sudden change in workload, such as a large number of new transactions. Call ModifyCurrentDBClusterCapacity to set the capacity explicitly.

After this call sets the DB cluster capacity, Aurora Serverless v1 can automatically scale the DB cluster based on the cooldown period for scaling up and the cooldown period for scaling down.

For more information about Aurora Serverless v1, see Using Amazon Aurora Serverless v1 in the Amazon Aurora User Guide.

If you call ModifyCurrentDBClusterCapacity with the default TimeoutAction, connections that prevent Aurora Serverless v1 from finding a scaling point might be dropped. For more information about scaling points, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.

This operation only applies to Aurora Serverless v1 DB clusters.

", + "smithy.api#examples": [ + { + "title": "To scale the capacity of an Aurora Serverless DB cluster", + "documentation": "The following example scales the capacity of an Aurora Serverless DB cluster to 8.", + "input": { + "DBClusterIdentifier": "mydbcluster", + "Capacity": 8 + }, + "output": { + "DBClusterIdentifier": "mydbcluster", + "PendingCapacity": 8, + "CurrentCapacity": 1, + "SecondsBeforeTimeout": 300, + "TimeoutAction": "ForceApplyCapacityChange" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyCurrentDBClusterCapacityMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier for the cluster being modified. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DB cluster.

", + "smithy.api#required": {} + } + }, + "Capacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The DB cluster capacity.

When you change the capacity of a paused Aurora Serverless v1 DB cluster, it automatically resumes.

Constraints:

  • For Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.

  • For Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.

" + } + }, + "SecondsBeforeTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300.

Specify a value between 10 and 600 seconds.

" + } + }, + "TimeoutAction": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.

ForceApplyCapacityChange, the default, sets the capacity to the specified value as soon as possible.

RollbackCapacityChange ignores the capacity change if a scaling point isn't found in the timeout period.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyCustomDBEngineVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyCustomDBEngineVersionMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBEngineVersion" + }, + "errors": [ + { + "target": "com.amazonaws.rds#CustomDBEngineVersionNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidCustomDBEngineVersionStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the status of a custom engine version (CEV). You can find CEVs to modify by calling DescribeDBEngineVersions.

The MediaImport service that imports files from Amazon S3 to create CEVs isn't integrated with Amazon Web Services CloudTrail. If you turn on data logging for Amazon RDS in CloudTrail, calls to the ModifyCustomDbEngineVersion event aren't logged. However, you might see calls from the API gateway that accesses your Amazon S3 bucket. These calls originate from the MediaImport service for the ModifyCustomDbEngineVersion event.

For more information, see Modifying CEV status in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#ModifyCustomDBEngineVersionMessage": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#CustomEngineName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine.

RDS Custom for Oracle supports the following values:

  • custom-oracle-ee

  • custom-oracle-ee-cdb

  • custom-oracle-se2

  • custom-oracle-se2-cdb

RDS Custom for SQL Server supports the following values:

  • custom-sqlserver-ee

  • custom-sqlserver-se

  • custom-sqlserver-web

  • custom-sqlserver-dev

RDS for SQL Server supports the following values:

  • sqlserver-ee (Bring Your Own Media)

  • sqlserver-se (Bring Your Own Media)

  • sqlserver-dev-ee

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#CustomEngineVersion", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The custom engine version (CEV) that you want to modify. This option is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.rds#Description", + "traits": { + "smithy.api#documentation": "

An optional description of your CEV.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#CustomEngineVersionStatus", + "traits": { + "smithy.api#documentation": "

The availability status to be assigned to the CEV. Valid values are as follows:

available

You can use this CEV to create a new RDS Custom DB instance.

inactive

You can create a new RDS Custom instance by restoring a DB snapshot with this CEV. You can't patch or create new instances with this CEV.

You can change any status to any status. A typical reason to change status is to prevent the accidental use of a CEV, or to make a deprecated CEV eligible for use again. For example, you might change the status of your CEV from available to inactive, and from inactive back to available. To change the availability status of the CEV, it must not currently be in use by an RDS Custom instance, snapshot, or automated backup.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBCapacityReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBCapacityReservationRequest" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBCapacityReservationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies a DB capacity reservation. You can change the reserved capacity in each Availability Zone of the reservation, and you can change the end date of the reservation. You can't change the Availability Zones of an existing reservation.

The reservation must be in the active state. A future-dated reservation that hasn't started isn't modifiable, and neither is a reservation that Amazon RDS is already modifying.

You must specify CapacityPerAvailabilityZone, EndDateType, or EndDate. A request that specifies none of the three changes nothing, and Amazon RDS rejects it.

", + "smithy.api#examples": [ + { + "title": "To change the capacity and the end date of a DB capacity reservation", + "documentation": "The following example raises the reserved capacity to three DB instances in each Availability Zone of the reservation, and it sets an end date. Set EndDateType to limited to give the reservation an end date. Set EndDateType to unlimited to remove the end date, and specify no EndDate. Amazon RDS applies the modification asynchronously, and it moves the reservation to the pending state. Call DescribeDBCapacityReservations to check when the reservation returns to the active state with the new capacity.", + "input": { + "DBCapacityReservationIdentifier": "dbcr-7hqk2m9xv4t1bn6cz3ws8dj5fp0gyr2a", + "CapacityPerAvailabilityZone": 3, + "EndDateType": "limited", + "EndDate": "2026-12-31T23:59:59Z" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBCapacityReservationRequest": { + "type": "structure", + "members": { + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to modify. You can specify the identifier, which has the prefix dbcr-, or the reservation name.

", + "smithy.api#required": {} + } + }, + "CapacityPerAvailabilityZone": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The new number of DB instances to reserve in each Availability Zone of the reservation. Amazon RDS applies this number to every Availability Zone of the reservation.

An increase reserves more capacity at the time of the request, so it can fail when the Amazon Web Services Region has insufficient capacity.

This value multiplied by the number of Availability Zones counts against the DB instances quota for your Amazon Web Services account in the Amazon Web Services Region. Amazon RDS checks the quota only when you increase the value.

Constraints:

  • Minimum 1.

  • Can't be less than the highest number of DB instances that use the reservation in any single Availability Zone of the reservation. That number includes a DB instance that holds a unit of reserved capacity for a pending modification. To find that number for an Availability Zone, subtract AvailableCapacity from ReservedCapacityPerAvailabilityZone.

  • During a capacity commitment, can't be less than CommittedCapacityPerAvailabilityZone.

" + } + }, + "EndDateType": { + "target": "com.amazonaws.rds#EndDateType", + "traits": { + "smithy.api#documentation": "

The end date type for the reservation.

Valid Values:

  • limited - The reservation has a specific end date. You must also specify EndDate.

  • unlimited - The reservation doesn't expire. Don't specify EndDate.

" + } + }, + "EndDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The new end date for the reservation, in Universal Coordinated Time (UTC). Required when EndDateType is limited. Don't specify a value when EndDateType is unlimited.

When you specify EndDate, you must also specify EndDateType.

Constraints:

  • Must be a date and time in the future.

  • During a capacity commitment, must be at or after CommitmentEndDate.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBCapacityReservationResponse": { + "type": "structure", + "members": { + "DBCapacityReservation": { + "target": "com.amazonaws.rds#DBCapacityReservation", + "traits": { + "smithy.api#documentation": "

Contains the details of the modified DB capacity reservation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSecurityGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotAvailableFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the settings of an Amazon Aurora DB cluster or a Multi-AZ DB cluster. You can change one or more settings by specifying these parameters and the new values in the request.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To modify a DB cluster", + "documentation": "The following example changes the master user password for the DB cluster named cluster-2 and sets the backup retention period to 14 days. The ApplyImmediately parameter causes the changes to be made immediately, instead of waiting until the next maintenance window.", + "input": { + "DBClusterIdentifier": "cluster-2", + "ApplyImmediately": true, + "BackupRetentionPeriod": 14, + "MasterUserPassword": "newpassword99" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "eu-central-1b", + "eu-central-1c", + "eu-central-1a" + ], + "BackupRetentionPeriod": 14, + "DatabaseName": "", + "DBClusterIdentifier": "cluster-2", + "DBClusterParameterGroup": "default.aurora5.6", + "DBSubnetGroup": "default-vpc-2305ca49", + "Status": "available", + "EarliestRestorableTime": "2020-06-03T02:07:29.637Z", + "Endpoint": "cluster-2.cluster-############.eu-central-1.rds.amazonaws.com", + "ReaderEndpoint": "cluster-2.cluster-ro-############.eu-central-1.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora", + "EngineVersion": "5.6.10a", + "LatestRestorableTime": "2020-06-04T15:11:25.748Z", + "Port": 3306, + "MasterUsername": "admin", + "PreferredBackupWindow": "01:55-02:25", + "PreferredMaintenanceWindow": "thu:21:14-thu:21:44", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [ + { + "DBInstanceIdentifier": "cluster-2-instance-1", + "IsClusterWriter": true, + "DBClusterParameterGroupStatus": "in-sync", + "PromotionTier": 1 + } + ], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-20a5c047", + "Status": "active" + } + ], + "HostedZoneId": "Z1RLNU0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:eu-central-1:123456789012:key/d1bd7c8f-5cdb-49ca-8a62-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-AGJ7XI77XVIS6FUXHU1EXAMPLE", + "DBClusterArn": "arn:aws:rds:eu-central-1:123456789012:cluster:cluster-2", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-04-03T14:44:02.764Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": true, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBClusterEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBClusterEndpointMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterEndpoint" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterEndpointStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the properties of an endpoint in an Amazon Aurora DB cluster.

This operation only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To modify a custom DB cluster endpoint", + "documentation": "The following example modifies the specified custom DB cluster endpoint.", + "input": { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "StaticMembers": [ + "dbinstance1", + "dbinstance2", + "dbinstance3" + ] + }, + "output": { + "DBClusterEndpointIdentifier": "mycustomendpoint", + "DBClusterIdentifier": "mydbcluster", + "DBClusterEndpointResourceIdentifier": "cluster-endpoint-ANPAJ4AE5446DAEXAMPLE", + "Endpoint": "mycustomendpoint.cluster-custom-cnpexample.us-east-1.rds.amazonaws.com", + "Status": "modifying", + "EndpointType": "CUSTOM", + "CustomEndpointType": "READER", + "StaticMembers": [ + "dbinstance1", + "dbinstance2", + "dbinstance3" + ], + "ExcludedMembers": [], + "DBClusterEndpointArn": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:mycustomendpoint" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBClusterEndpointMessage": { + "type": "structure", + "members": { + "DBClusterEndpointIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the endpoint to modify. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + }, + "EndpointType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of the endpoint. One of: READER, WRITER, ANY.

" + } + }, + "StaticMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that are part of the custom endpoint group.

" + } + }, + "ExcludedMembers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier for the cluster being modified. This parameter isn't case-sensitive.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must match the identifier of an existing DB cluster.

", + "smithy.api#required": {} + } + }, + "NewDBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster2

" + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the modifications in this request are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is disabled, changes to the DB cluster are applied during the next maintenance window.

Most modifications can be applied immediately or during the next scheduled maintenance window. Some modifications, such as turning on deletion protection and changing the master password, are applied immediately—regardless of when you choose to apply them.

By default, this parameter is disabled.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Specify a minimum value of 1.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Default: 1

Constraints:

  • Must be a value from 1 to 35.

" + } + }, + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group to use for the DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with this DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the DB cluster accepts connections.

Valid for Cluster Type: Aurora DB clusters only

Valid Values: 1150-65535

Default: The same port as the original DB cluster.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The new password for the master database user.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must contain from 8 to 41 characters.

  • Can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

  • Can't be specified if ManageMasterUserPassword is turned on.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to associate the DB cluster with.

DB clusters are associated with a default option group that can't be modified.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • Days must be one of Mon | Tue | Wed | Thu | Fri | Sat | Sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must be at least 30 minutes.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide or IAM database authentication for MariaDB, MySQL, and PostgreSQL in the Amazon RDS User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Valid for Cluster Type: Aurora MySQL DB clusters only

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

" + } + }, + "CloudwatchLogsExportConfiguration": { + "target": "com.amazonaws.rds#CloudwatchLogsExportConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB cluster.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

The following values are valid for each DB engine:

  • Aurora MySQL - audit | error | general | instance | slowquery | iam-db-auth-error

  • Aurora PostgreSQL - instance | postgresql | iam-db-auth-error

  • RDS for MySQL - error | general | slowquery | iam-db-auth-error

  • RDS for PostgreSQL - postgresql | upgrade | iam-db-auth-error

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless ApplyImmediately is enabled.

If the cluster that you're modifying has one or more read replicas, all replicas must be running an engine version that's the same or later than the version you specify.

To list all of the available engine versions for Aurora MySQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "AllowMajorVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether major version upgrades are allowed.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.

" + } + }, + "DBInstanceParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to apply to all instances of the DB cluster.

When you apply a parameter group using the DBInstanceParameterGroupName parameter, the DB cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather than during the next maintenance window.

Valid for Cluster Type: Aurora DB clusters only

Default: The existing name setting

Constraints:

  • The DB parameter group must be in the same DB parameter group family as this DB cluster.

  • The DBInstanceParameterGroupName parameter is valid in combination with the AllowMajorVersionUpgrade parameter for a major version upgrade only.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to move the DB cluster to. Specify none to remove the cluster from its current domain. The domain must be created prior to this operation.

For more information, see Kerberos Authentication in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "ScalingConfiguration": { + "target": "com.amazonaws.rds#ScalingConfiguration", + "traits": { + "smithy.api#documentation": "

The scaling properties of the DB cluster. You can only modify scaling properties for DB clusters in serverless DB engine mode.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnableHttpEndpoint": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable the HTTP endpoint for an Aurora Serverless v1 DB cluster. By default, the HTTP endpoint isn't enabled.

When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the Aurora Serverless v1 DB cluster. You can also query your database from inside the RDS console with the RDS query editor.

For more information, see Using RDS Data API in the Amazon Aurora User Guide.

This parameter applies only to Aurora Serverless v1 DB clusters. To enable or disable the HTTP endpoint for an Aurora Serverless v2 or provisioned DB cluster, use the EnableHttpEndpoint and DisableHttpEndpoint operations.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnableGlobalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.

You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster, and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by a global cluster API operation, but it does nothing until then.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "DBClusterInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for Cluster Type: Multi-AZ DB clusters only

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.

Valid for Cluster Type: Multi-AZ DB clusters only

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the DB cluster.

For information on storage types for Aurora DB clusters, see Storage configurations for Amazon Aurora DB clusters. For information on storage types for Multi-AZ DB clusters, see Settings for creating Multi-AZ DB clusters.

When specified for a Multi-AZ DB cluster, a value for the Iops parameter is required.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values:

  • Aurora DB clusters - aurora | aurora-iopt1

  • Multi-AZ DB clusters - io1 | io2 | gp3

Default:

  • Aurora DB clusters - aurora

  • Multi-AZ DB clusters - io1

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Valid for Cluster Type: Multi-AZ DB clusters only

Constraints:

  • Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB cluster.

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters only

Valid Values: IPV4 | DUAL

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfiguration" + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, also set MonitoringInterval to a value other than 0.

Valid for Cluster Type: Multi-AZ DB clusters only

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see To create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, supply a MonitoringRoleArn value.

Valid for Cluster Type: Multi-AZ DB clusters only

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

Specifies the mode of Database Insights to enable for the DB cluster.

If you change the value from standard to advanced, you must set the PerformanceInsightsEnabled parameter to true and the PerformanceInsightsRetentionPeriod parameter to 465.

If you change the value from advanced to standard, you can set the PerformanceInsightsEnabled parameter to true to collect detailed database counter and per-query metrics.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to turn on Performance Insights for the DB cluster.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS issues an error.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

If the DB cluster doesn't manage the master user password with Amazon Web Services Secrets Manager, you can turn on this management. In this case, you can't specify MasterUserPassword.

If the DB cluster already manages the master user password with Amazon Web Services Secrets Manager, and you specify that the master user password is not managed with Amazon Web Services Secrets Manager, then you must specify MasterUserPassword. In this case, RDS deletes the secret and uses the new password for the master user specified by MasterUserPassword.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "RotateMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to rotate the secret managed by Amazon Web Services Secrets Manager for the master user password.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB cluster. The secret value contains the updated password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • You must apply the change immediately when rotating the master user password.

" + } + }, + "EnableLocalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if both of the following conditions are met:

  • The DB cluster doesn't manage the master user password in Amazon Web Services Secrets Manager.

    If the DB cluster already manages the master user password in Amazon Web Services Secrets Manager, you can't change the KMS key that is used to encrypt the secret.

  • You are turning on ManageMasterUserPassword to manage the master user password in Amazon Web Services Secrets Manager.

    If you are turning on ManageMasterUserPassword and don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

The DB engine mode can be modified only from serverless to provisioned.

For more information, see CreateDBCluster.

Valid for Cluster Type: Aurora DB clusters only

" + } + }, + "AllowEngineModeChange": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether engine mode changes from serverless to provisioned are allowed.

Valid for Cluster Type: Aurora Serverless v1 DB clusters only

Constraints:

  • You must allow engine mode changes when specifying a different value for the EngineMode parameter from the DB cluster's current engine mode.

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#AwsBackupRecoveryPointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

" + } + }, + "EnableLimitlessDatabase": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Aurora Limitless Database. You must enable Aurora Limitless Database to create a DB shard group.

Valid for: Aurora DB clusters only

This setting is no longer used. Instead use the ClusterScalabilityType setting when you create your Aurora Limitless Database DB cluster.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB cluster's server certificate.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide.

Valid for Cluster Type: Multi-AZ DB clusters

" + } + }, + "MasterUserAuthenticationType": { + "target": "com.amazonaws.rds#MasterUserAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication type for the master user. With IAM master user authentication, you can change the master DB user to use IAM database authentication.

You can specify one of the following values:

  • password - Use standard database authentication with a password.

  • iam-db-auth - Use IAM database authentication for the master user.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL engines.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB cluster.

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support or to opt out. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBClusterParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBClusterParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterParameterGroupNameMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

There are two types of parameters - dynamic parameters and static parameters. Changes to dynamic parameters are applied to the DB cluster immediately without a reboot. Changes to static parameters are applied only after the DB cluster is rebooted, which can be done using RebootDBCluster operation. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To modify parameters in a DB cluster parameter group", + "documentation": "The following example modifies the values of parameters in a DB cluster parameter group.", + "input": { + "DBClusterParameterGroupName": "mydbclusterpg", + "Parameters": [ + { + "ParameterName": "server_audit_logging", + "ParameterValue": "1", + "ApplyMethod": "immediate" + }, + { + "ParameterName": "server_audit_logs_upload", + "ParameterValue": "1", + "ApplyMethod": "immediate" + } + ] + }, + "output": { + "DBClusterParameterGroupName": "mydbclusterpg" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBClusterParameterGroupMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster parameter group to modify.

", + "smithy.api#required": {} + } + }, + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A list of parameters in the DB cluster parameter group to modify.

Valid Values (for the application method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters.

When the application method is immediate, changes to dynamic parameters are applied immediately to the DB clusters associated with the parameter group. When the application method is pending-reboot, changes to dynamic and static parameters are applied after a reboot without failover to the DB clusters associated with the parameter group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBClusterSnapshotAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#SharedSnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot.

To share a manual DB cluster snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot is public or private, use the DescribeDBClusterSnapshotAttributes API operation. The accounts are returned as values for the restore attribute.

", + "smithy.api#examples": [ + { + "title": "To modify a DB cluster snapshot attribute", + "documentation": "The following example makes changes to the specified DB cluster snapshot attribute.", + "input": { + "DBClusterSnapshotIdentifier": "myclustersnapshot", + "AttributeName": "restore", + "ValuesToAdd": [ + "123456789012" + ] + }, + "output": { + "DBClusterSnapshotAttributesResult": { + "DBClusterSnapshotIdentifier": "myclustersnapshot", + "DBClusterSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "123456789012" + ] + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeMessage": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB cluster snapshot to modify the attributes for.

", + "smithy.api#required": {} + } + }, + "AttributeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBClusterSnapshotAttributes API operation.

", + "smithy.api#required": {} + } + }, + "ValuesToAdd": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

A list of DB cluster snapshot attributes to add to the attribute specified by AttributeName.

To authorize other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon Web Services account IDs, or all to make the manual DB cluster snapshot restorable by any Amazon Web Services account. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

" + } + }, + "ValuesToRemove": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

A list of DB cluster snapshot attributes to remove from the attribute specified by AttributeName.

To remove authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon Web Services account identifiers, or all to remove authorization for any Amazon Web Services account to copy or restore the DB cluster snapshot. If you specify all, an Amazon Web Services account whose account ID is explicitly added to the restore attribute can still copy or restore a manual DB cluster snapshot.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBClusterSnapshotAttributeResult": { + "type": "structure", + "members": { + "DBClusterSnapshotAttributesResult": { + "target": "com.amazonaws.rds#DBClusterSnapshotAttributesResult" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBUpgradeDependencyFailureFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSecurityGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call DescribeValidDBInstanceModifications before you call ModifyDBInstance.

", + "smithy.api#examples": [ + { + "title": "To modify a DB instance", + "documentation": "The following example associates an option group and a parameter group with a compatible Microsoft SQL Server DB instance. The ApplyImmediately parameter causes the option and parameter groups to be associated immediately, instead of waiting until the next maintenance window.", + "input": { + "DBInstanceIdentifier": "database-2", + "ApplyImmediately": true, + "DBParameterGroupName": "test-sqlserver-se-2017", + "OptionGroupName": "test-se-2017" + }, + "output": { + "DBInstance": { + "DBInstanceIdentifier": "database-2", + "DBInstanceClass": "db.r4.large", + "Engine": "sqlserver-se", + "DBInstanceStatus": "available", + "DBParameterGroups": [ + { + "DBParameterGroupName": "test-sqlserver-se-2017", + "ParameterApplyStatus": "applying" + } + ], + "AvailabilityZone": "us-west-2d", + "MultiAZ": true, + "EngineVersion": "14.00.3281.6.v1", + "AutoMinorVersionUpgrade": false, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "license-included", + "OptionGroupMemberships": [ + { + "OptionGroupName": "test-se-2017", + "Status": "pending-apply" + } + ], + "CharacterSetName": "SQL_Latin1_General_CP1_CI_AS", + "SecondaryAvailabilityZone": "us-west-2c", + "PubliclyAccessible": true, + "StorageType": "gp2", + "DeletionProtection": false, + "AssociatedRoles": [], + "MaxAllocatedStorage": 1000 + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of DB instance to modify. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DB instance.

", + "smithy.api#required": {} + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The new amount of storage in gibibytes (GiB) to allocate for the DB instance.

For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, the value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

For the valid values for allocated storage for each engine, see CreateDBInstance.

Constraints:

  • When you increase the allocated storage for a DB instance that uses Provisioned IOPS (gp3, io1, or io2 storage type), you must also specify the Iops parameter. You can use the current value for Iops.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide or Aurora DB instance classes in the Amazon Aurora User Guide. For RDS Custom, see DB instance class support for RDS Custom for Oracle and DB instance class support for RDS Custom for SQL Server.

If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless you specify ApplyImmediately in your request.

Default: Uses existing setting

Constraints:

  • If you are modifying the DB instance class and upgrading the engine version at the same time, the currently running engine version must be supported on the specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, and then run it again to modify the DB instance class.

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance isn't in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you enable ApplyImmediately.

This setting doesn't apply to RDS Custom DB instances.

Constraints:

  • If supplied, must match existing DB subnet group.

Example: mydbsubnetgroup

" + } + }, + "DBSecurityGroups": { + "target": "com.amazonaws.rds#DBSecurityGroupNameList", + "traits": { + "smithy.api#documentation": "

A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible.

This setting doesn't apply to RDS Custom DB instances.

Constraints:

  • If supplied, must match existing DB security groups.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of Amazon EC2 VPC security groups to associate with this DB instance. This change is asynchronously applied as soon as possible.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora (The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see ModifyDBCluster.)

  • RDS Custom

Constraints:

  • If supplied, must match existing VPC security group IDs.

" + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance. By default, this parameter is disabled.

If this parameter is disabled, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance in the Amazon RDS User Guide to see the impact of enabling or disabling ApplyImmediately for each modified parameter and to determine when the changes are applied.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The new password for the master user.

Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Amazon RDS API operations never return the password, so this operation provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

This setting doesn't apply to the following DB instances:

  • Amazon Aurora

    The password for the master user is managed by the DB cluster. For more information, see ModifyDBCluster.

  • RDS Custom

  • RDS for Oracle CDBs in the multi-tenant configuration

    Specify the master password in ModifyTenantDatabase instead.

Default: Uses existing setting

Constraints:

  • Can't be specified if ManageMasterUserPassword is turned on.

  • Can include any printable ASCII character except \"/\", \"\"\", or \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the \"'\" (single quotes) character.

Length Constraints:

  • RDS for Db2 - Must contain from 8 to 255 characters.

  • RDS for MariaDB - Must contain from 8 to 41 characters.

  • RDS for Microsoft SQL Server - Must contain from 8 to 128 characters.

  • RDS for MySQL - Must contain from 8 to 41 characters.

  • RDS for Oracle - Must contain from 8 to 30 characters.

  • RDS for PostgreSQL - Must contain from 8 to 128 characters.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to apply to the DB instance.

Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. In this case, the DB instance isn't rebooted automatically, and the parameter changes aren't applied during the next maintenance window. However, if you modify dynamic parameters in the newly associated DB parameter group, these changes are applied immediately without a reboot.

This setting doesn't apply to RDS Custom DB instances.

Default: Uses existing setting

Constraints:

  • Must be in the same DB parameter group family as the DB instance.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance.

These changes are applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

This setting doesn't apply to Amazon Aurora DB instances. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35.

  • Can't be set to 0 if the DB instance is a source to read replicas.

  • Can't be set to 0 for an RDS Custom for Oracle DB instance.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see Backup window in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora DB instances. The daily time range for creating automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter causes a reboot of the DB instance. If you change this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.

For more information, see Amazon RDS Maintenance Window in the Amazon RDS User Guide.

Default: Uses existing setting

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • The day values must be mon | tue | wed | thu | fri | sat | sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred backup window.

  • Must be at least 30 minutes.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage. The change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request.

For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

If you specify only a major version, Amazon RDS updates the DB instance to the default minor version if the current minor version is lower. For information about valid engine versions, see CreateDBInstance, or call DescribeDBEngineVersions.

If the instance that you're modifying is acting as a read replica, the engine version that you specify must be the same or higher than the version that the source DB instance or cluster is running.

In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the PATCH_DB_FAILURE lifecycle.

Constraints:

  • If you are upgrading the engine version and modifying the DB instance class at the same time, the currently running engine version must be supported on the specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, and then run it again to modify the DB instance class.

" + } + }, + "AllowMajorVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.

This setting doesn't apply to RDS Custom DB instances.

Constraints:

  • Major version upgrades must be allowed when specifying a value for the EngineVersion parameter that's a different major version than the DB instance's current version.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether minor version upgrades are applied automatically to the DB instance during the maintenance window. An outage occurs when all the following conditions are met:

  • The automatic upgrade is enabled for the maintenance window.

  • A newer minor version is available.

  • RDS has enabled automatic patching for the engine version.

If any of the preceding conditions isn't met, Amazon RDS applies the change as soon as possible and doesn't cause an outage.

For an RDS Custom DB instance, don't enable this setting. Otherwise, the operation returns an error.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model for the DB instance.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

Valid Values:

  • RDS for Db2 - bring-your-own-license

  • RDS for MariaDB - general-public-license

  • RDS for Microsoft SQL Server - license-included | bring-your-own-media

  • RDS for MySQL - general-public-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for PostgreSQL - postgresql-license

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance.

Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.

If you choose to migrate your DB instance from using standard storage to Provisioned IOPS (io1), or from Provisioned IOPS to standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.

Constraints:

  • For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL - The value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

  • When you increase the Provisioned IOPS, you must also specify the AllocatedStorage parameter. You can use the current value for AllocatedStorage.

Default: Uses existing setting

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the DB instance.

This setting applies only to the gp3 storage type.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to associate the DB instance with.

Changing this parameter doesn't result in an outage, with one exception. If the parameter change results in an option group that enables OEM, it can cause a brief period, lasting less than a second, during which new connections are rejected but existing connections aren't interrupted.

The change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance after it is associated with a DB instance.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "NewDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot occurs immediately if you enable ApplyImmediately, or will occur during the next maintenance window if you disable ApplyImmediately. This value is stored as a lowercase string.

This setting doesn't apply to RDS Custom DB instances.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the DB instance.

If you specify io1, io2, or gp3 you must also include a value for the Iops parameter.

If you choose to migrate your DB instance from using standard storage to gp2 (General Purpose SSD), gp3, or Provisioned IOPS (io1), or from these storage types to standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.

Valid Values: gp2 | gp3 | io1 | io2 | standard

Default: io1, if the Iops parameter is specified. Otherwise, gp2.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "TdeCredentialPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the given ARN from the key store in order to access the device.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to move the DB instance to. Specify none to remove the instance from its current domain. You must create the domain before this operation. Currently, you can create only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainFqdn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of an Active Directory domain.

Constraints:

  • Can't be longer than 64 characters.

Example: mymanagedADtest.mymanagedAD.mydomain

" + } + }, + "DomainOu": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for your DB instance to join.

Constraints:

  • Must be in the distinguished name format.

Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain

" + } + }, + "DomainAuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456

" + } + }, + "DomainDnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

Constraints:

  • Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list.

Example: 123.124.125.126,234.235.236.237

" + } + }, + "DisableDomain": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to remove the DB instance from the Active Directory domain.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags aren't copied.

This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see ModifyDBCluster.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, set MonitoringInterval to a value other than 0.

This setting doesn't apply to RDS Custom DB instances.

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "DBPortNumber": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the database accepts connections.

The value of the DBPortNumber parameter must not match any of the port values specified for options in the option group for the DB instance.

If you change the DBPortNumber value, your database restarts regardless of the value of the ApplyImmediately parameter.

This setting doesn't apply to RDS Custom DB instances.

Valid Values: 1150-65535

Default:

  • Amazon Aurora - 3306

  • RDS for Db2 - 50000

  • RDS for MariaDB - 3306

  • RDS for Microsoft SQL Server - 1433

  • RDS for MySQL - 3306

  • RDS for Oracle - 1521

  • RDS for PostgreSQL - 5432

Constraints:

  • For RDS for Microsoft SQL Server, the value can't be 1234, 1434, 3260, 3343, 3389, 47001, or 49152-49156.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB instance is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB instance doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

PubliclyAccessible only applies to DB instances in a VPC. The DB instance must be part of a public subnet and PubliclyAccessible must be enabled for it to be publicly accessible.

Changes to the PubliclyAccessible parameter are applied immediately regardless of the value of the ApplyImmediately parameter.

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see To create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, supply a MonitoringRoleArn value.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PromotionTier": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The order of priority in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

This setting doesn't apply to RDS Custom DB instances.

Default: 1

Valid Values: 0 - 15

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

This setting doesn't apply to Amazon Aurora. Mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster.

For more information about IAM database authentication, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

Specifies the mode of Database Insights to enable for the DB instance.

Aurora DB instances inherit this value from the DB cluster, so you can't change this value.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

This setting doesn't apply to RDS Custom DB instances.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error.

" + } + }, + "CloudwatchLogsExportConfiguration": { + "target": "com.amazonaws.rds#CloudwatchLogsExportConfiguration", + "traits": { + "smithy.api#documentation": "

The log types to be enabled for export to CloudWatch Logs for a specific DB instance.

A change to the CloudwatchLogsExportConfiguration parameter is always applied to the DB instance immediately. Therefore, the ApplyImmediately parameter has no effect.

This setting doesn't apply to RDS Custom DB instances.

The following values are valid for each DB engine:

  • Aurora MySQL - audit | error | general | slowquery | iam-db-auth-error

  • Aurora PostgreSQL - postgresql | iam-db-auth-error

  • RDS for MySQL - error | general | slowquery | iam-db-auth-error

  • RDS for PostgreSQL - postgresql | upgrade | iam-db-auth-error

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "UseDefaultProcessorFeatures": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance class of the DB instance uses its default processor features.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ModifyDBCluster. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "CertificateRotationRestart": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is restarted when you rotate your SSL/TLS certificate.

By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.

Set this parameter only if you are not using SSL/TLS to connect to the DB instance.

If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate:

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "ReplicaMode": { + "target": "com.amazonaws.rds#ReplicaMode", + "traits": { + "smithy.api#documentation": "

The open mode of a replica database.

This parameter is only supported for Db2 DB instances and Oracle DB instances.

Db2

Standby DB replicas are included in Db2 Advanced Edition (AE), Db2 Community Edition (CE), and Db2 Standard Edition (SE). The main use case for standby replicas is cross-Region disaster recovery. Because it doesn't accept user connections, a standby replica can't serve a read-only workload.

You can create a combination of standby and read-only DB replicas for the same primary DB instance. For more information, see Working with replicas for Amazon RDS for Db2 in the Amazon RDS User Guide.

To create standby DB replicas for RDS for Db2, set this parameter to mounted.

Oracle

Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload.

You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more information, see Working with read replicas for Amazon RDS for Oracle in the Amazon RDS User Guide.

For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by default. After replica creation, you can manage the open mode manually.

" + } + }, + "AutomationMode": { + "target": "com.amazonaws.rds#AutomationMode", + "traits": { + "smithy.api#documentation": "

The automation mode of the RDS Custom DB instance. If full, the DB instance automates monitoring and instance recovery. If all paused, the instance pauses automation for the duration set by ResumeFullAutomationModeMinutes.

" + } + }, + "ResumeFullAutomationModeMinutes": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of minutes to pause the automation. When the time period ends, RDS Custom resumes full automation.

Default: 60

Constraints:

  • Must be at least 60.

  • Must be no more than 1,440.

" + } + }, + "EnableCustomerOwnedIp": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

Valid Values: IPV4 | DUAL

" + } + }, + "AwsBackupRecoveryPointArn": { + "target": "com.amazonaws.rds#AwsBackupRecoveryPointArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

If the DB instance doesn't manage the master user password with Amazon Web Services Secrets Manager, you can turn on this management. In this case, you can't specify MasterUserPassword.

If the DB instance already manages the master user password with Amazon Web Services Secrets Manager, and you specify that the master user password is not managed with Amazon Web Services Secrets Manager, then you must specify MasterUserPassword. In this case, Amazon RDS deletes the secret and uses the new password for the master user specified by MasterUserPassword.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

  • Can't specify for RDS for Oracle CDB instances in the multi-tenant configuration. Use ModifyTenantDatabase instead.

  • Can't specify the parameters ManageMasterUserPassword and MultiTenant in the same operation.

" + } + }, + "RotateMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to rotate the secret managed by Amazon Web Services Secrets Manager for the master user password.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance. The secret value contains the updated password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • You must apply the change immediately when rotating the master user password.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if both of the following conditions are met:

  • The DB instance doesn't manage the master user password in Amazon Web Services Secrets Manager.

    If the DB instance already manages the master user password in Amazon Web Services Secrets Manager, you can't change the KMS key used to encrypt the secret.

  • You are turning on ManageMasterUserPassword to manage the master user password in Amazon Web Services Secrets Manager.

    If you are turning on ManageMasterUserPassword and don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the to convert your DB instance from the single-tenant configuration to the multi-tenant configuration. This parameter is supported only for RDS for Oracle CDB instances.

During the conversion, RDS creates an initial tenant database and associates the DB name, master user name, character set, and national character set metadata with this database. The tags associated with the instance also propagate to the initial tenant database. You can add more tenant databases to your DB instance by using the CreateTenantDatabase operation.

The conversion to the multi-tenant configuration is permanent and irreversible, so you can't later convert back to the single-tenant configuration. When you specify this parameter, you must also specify ApplyImmediately.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The target Oracle DB engine when you convert a non-CDB to a CDB. This intermediate step is necessary to upgrade an Oracle Database 19c non-CDB to an Oracle Database 21c CDB.

Note the following requirements:

  • Make sure that you specify oracle-ee-cdb or oracle-se2-cdb.

  • Make sure that your DB engine runs Oracle Database 19c with an April 2021 or later RU.

Note the following limitations:

  • You can't convert a CDB to a non-CDB.

  • You can't convert a replica database.

  • You can't convert a non-CDB to a CDB and upgrade the engine version in the same command.

  • You can't convert the existing custom parameter or option group when it has options or parameters that are permanent or persistent. In this situation, the DB instance reverts to the default option and parameter group. To avoid reverting to the default, specify a new parameter group with --db-parameter-group-name and a new option group with --option-group-name.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#ModifyAdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to modify or delete for the DB instance. You can create up to 3 additional storage volumes. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation for the DB instance to use. You can specify the identifier, which has the prefix dbcr-, or the reservation name. After the modification completes, the DB instance uses reserved capacity from this reservation.

You can't change the DB capacity reservation of a DB instance on its own. A request that changes the reservation must also change the DB instance class, the Multi-AZ setting, the license model, or the engine. Therefore, this request always changes the configuration of the DB instance.

If the DB instance already uses the reservation that you specify, this requirement doesn't apply. You can then change another setting, such as the Multi-AZ setting, and keep the reservation.

For a DB instance that uses no reservation, change DBInstanceClass to the DB instance class that the reservation reserves. A reservation reserves capacity for one DB instance class, so that change moves the DB instance onto the reserved capacity. That change also resizes the DB instance, which interrupts it.

If the DB instance already runs the DB instance class that the reservation reserves, change MultiAZ or LicenseModel instead. Only RDS for Oracle and RDS for Microsoft SQL Server accept a change of license model, so MultiAZ is the remaining choice for every other engine.

If you don't specify this parameter, Amazon RDS moves the DB instance to unreserved capacity, and it releases the reserved capacity that the DB instance holds. A request that changes the DB instance class, the Multi-AZ setting, the license model, or the engine moves the DB instance to different hardware, and Amazon RDS places the DB instance on unreserved capacity. Therefore, to keep the DB instance on reserved capacity, specify this parameter in every request that changes any of those settings.

The DB instance keeps its current reservation until Amazon RDS applies the modification. Until then, the DBCapacityReservationIdentifier field of the DB instance still reports that reservation, and PendingModifiedValues reports no reservation. Amazon RDS releases the reserved capacity when it moves the DB instance.

Constraints:

  • If the request changes which DB capacity reservation the DB instance uses, it must also set a new value for DBInstanceClass, MultiAZ, LicenseModel, or Engine. The new value must differ from the current value. The only engine change that ModifyDBInstance supports is a conversion to the CDB architecture. Repeating the current value doesn't satisfy this requirement. This requirement applies both when the DB instance uses no reservation, and when it moves to a different reservation.

  • The reservation must reserve capacity for the DB instance class that the DB instance uses after the modification, and for the database engine of the DB instance. Therefore, when the request changes DBInstanceClass, the reservation reserves capacity for a DB instance class that the DB instance doesn't use today.

  • The reservation must be in the active state, and it must not be past its end date.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses after the modification.

  • The reservation must cover the Availability Zone of the DB instance, except when the request changes the DB instance from Multi-AZ to Single-AZ.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones.

  • If the DB instance is already Multi-AZ, the reservation must cover both of its Availability Zones. If the request converts the DB instance to Multi-AZ, the reservation must cover the current Availability Zone of the DB instance, and Amazon RDS chooses the second Availability Zone from the reservation.

  • If the reservation reserves capacity for a specific license model, the license model of the DB instance must match it. Amazon RDS checks the license model only when the request specifies LicenseModel.

  • You can't specify this parameter together with a change to DBSubnetGroupName.

  • You can't specify this parameter together with a change to both DBInstanceClass and LicenseModel. Submit those changes as two separate requests.

  • Can't be specified together with a change to DBInstanceClass when the request also changes the DB instance from Multi-AZ to Single-AZ.

  • When the request changes the DB instance from Multi-AZ to Single-AZ, the reservation must cover either the primary or the secondary Availability Zone of the DB instance. Amazon RDS keeps the DB instance in its primary Availability Zone, and it removes the standby replica. Therefore, the primary Availability Zone keeps its unit of reserved capacity, and the secondary Availability Zone releases its unit.

  • Can't be specified together with LicenseModel while a modification of the DB instance class or the Multi-AZ setting is pending.

  • Can't be specified together with DBInstanceClass or MultiAZ while a modification of the license model is pending.

  • When a modification is already pending, the reservation must reserve capacity for the DB instance as it will be after both the pending modification and the requested modification complete.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

  • Isn't supported for an RDS on Outposts DB instance.

  • If the reservation expires within one week, you must also enable ApplyImmediately. Otherwise, choose a reservation with a later end date.

  • Amazon RDS holds a unit of reserved capacity for the DB instance when it accepts the request, even when the modification waits for the maintenance window.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + }, + "MasterUserAuthenticationType": { + "target": "com.amazonaws.rds#MasterUserAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication type for the master user. With IAM master user authentication, you can change the master DB user to use IAM database authentication.

You can specify one of the following values:

  • password - Use standard database authentication with a password.

  • iam-db-auth - Use IAM database authentication for the master user.

This option is only valid for RDS for PostgreSQL and Aurora PostgreSQL engines.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB instance.

This setting applies only to RDS for MySQL and RDS for PostgreSQL. For Amazon Aurora DB instances, the engine lifecycle support is managed by the DB cluster.

You can use this setting to enroll your DB instance into Amazon RDS Extended Support or to opt out. With RDS Extended Support, you can run the selected major engine version on your DB instance past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

This setting doesn't apply to RDS Custom DB instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBParameterGroupNameMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify operation before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", + "smithy.api#examples": [ + { + "title": "To modify a DB parameter group", + "documentation": "The following example changes the value of the clr enabled parameter in a DB parameter group. The value of the ApplyMethod parameter causes the DB parameter group to be modified immediately, instead of waiting until the next maintenance window.", + "input": { + "DBParameterGroupName": "test-sqlserver-se-2017", + "Parameters": [ + { + "ParameterName": "clr enabled", + "ParameterValue": "1", + "ApplyMethod": "immediate" + } + ] + }, + "output": { + "DBParameterGroupName": "test-sqlserver-se-2017" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBParameterGroupMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB parameter group.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", + "smithy.api#required": {} + } + }, + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An array of parameter names, values, and the application methods for the parameter update. At least one parameter name, value, and application method must be supplied; later arguments are optional. A maximum of 20 parameters can be modified in a single request.

Valid Values (for the application method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters.

When the application method is immediate, changes to dynamic parameters are applied immediately to the DB instances associated with the parameter group.

When the application method is pending-reboot, changes to dynamic and static parameters are applied after a reboot without failover to the DB instances associated with the parameter group.

You can't use pending-reboot with dynamic parameters on RDS for SQL Server DB instances. Use immediate.

For more information on modifying DB parameters, see Working with DB parameter groups in the Amazon RDS User Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBProxy": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBProxyRequest" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBProxyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the settings for an existing DB proxy.

" + } + }, + "com.amazonaws.rds#ModifyDBProxyEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBProxyEndpointRequest" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBProxyEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyEndpointAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyEndpointStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Changes the settings for an existing DB proxy endpoint.

" + } + }, + "com.amazonaws.rds#ModifyDBProxyEndpointRequest": { + "type": "structure", + "members": { + "DBProxyEndpointName": { + "target": "com.amazonaws.rds#DBProxyEndpointName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB proxy sociated with the DB proxy endpoint that you want to modify.

", + "smithy.api#required": {} + } + }, + "NewDBProxyEndpointName": { + "target": "com.amazonaws.rds#DBProxyEndpointName", + "traits": { + "smithy.api#documentation": "

The new identifier for the DBProxyEndpoint. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The VPC security group IDs for the DB proxy endpoint. When the DB proxy endpoint uses a different VPC than the original proxy, you also specify a different set of security group IDs than for the original proxy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBProxyEndpointResponse": { + "type": "structure", + "members": { + "DBProxyEndpoint": { + "target": "com.amazonaws.rds#DBProxyEndpoint", + "traits": { + "smithy.api#documentation": "

The DBProxyEndpoint object representing the new settings for the DB proxy endpoint.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBProxyRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DBProxy to modify.

", + "smithy.api#required": {} + } + }, + "NewDBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#documentation": "

The new identifier for the DBProxy. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "DefaultAuthScheme": { + "target": "com.amazonaws.rds#DefaultAuthScheme", + "traits": { + "smithy.api#documentation": "

The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. Valid values are NONE and IAM_AUTH. When set to IAM_AUTH, the proxy uses end-to-end IAM authentication to connect to the database.

" + } + }, + "Auth": { + "target": "com.amazonaws.rds#UserAuthConfigList", + "traits": { + "smithy.api#documentation": "

The new authentication settings for the DBProxy.

" + } + }, + "RequireTLS": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy, even if the associated database doesn't use TLS.

" + } + }, + "IdleClientTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.

" + } + }, + "DebugLogging": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the proxy logs detailed connection and query information. When you enable DebugLogging, the proxy captures connection details and connection pool behavior from your queries. Debug logging increases CloudWatch costs and can impact proxy performance. Enable this option only when you need to troubleshoot connection or performance issues.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services Secrets Manager.

" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The new list of security groups for the DBProxy.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBProxyResponse": { + "type": "structure", + "members": { + "DBProxy": { + "target": "com.amazonaws.rds#DBProxy", + "traits": { + "smithy.api#documentation": "

The DBProxy object representing the new settings for the proxy.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBProxyTargetGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBProxyTargetGroupRequest" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBProxyTargetGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the properties of a DBProxyTargetGroup.

" + } + }, + "com.amazonaws.rds#ModifyDBProxyTargetGroupRequest": { + "type": "structure", + "members": { + "TargetGroupName": { + "target": "com.amazonaws.rds#DBProxyTargetGroupName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the target group to modify.

", + "smithy.api#required": {} + } + }, + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the proxy.

", + "smithy.api#required": {} + } + }, + "ConnectionPoolConfig": { + "target": "com.amazonaws.rds#ConnectionPoolConfiguration", + "traits": { + "smithy.api#documentation": "

The settings that determine the size and behavior of the connection pool for the target group.

" + } + }, + "NewName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new name for the modified DBProxyTarget. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

You can't rename the default target group.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBProxyTargetGroupResponse": { + "type": "structure", + "members": { + "DBProxyTargetGroup": { + "target": "com.amazonaws.rds#DBProxyTargetGroup", + "traits": { + "smithy.api#documentation": "

The settings of the modified DBProxyTarget.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBRecommendation": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBRecommendationMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBRecommendationMessage" + }, + "traits": { + "smithy.api#documentation": "

Updates the recommendation status and recommended action status for the specified recommendation.

" + } + }, + "com.amazonaws.rds#ModifyDBRecommendationMessage": { + "type": "structure", + "members": { + "RecommendationId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the recommendation to update.

", + "smithy.api#required": {} + } + }, + "Locale": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The language of the modified recommendation.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The recommendation status to update.

Valid values:

  • active

  • dismissed

" + } + }, + "RecommendedActionUpdates": { + "target": "com.amazonaws.rds#RecommendedActionUpdateList", + "traits": { + "smithy.api#documentation": "

The list of recommended action status to update. You can update multiple recommended actions at one time.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBShardGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBShardGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBShardGroup" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBShardGroupAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the settings of an Aurora Limitless Database DB shard group. You can change one or more settings by specifying these parameters and the new values in the request.

" + } + }, + "com.amazonaws.rds#ModifyDBShardGroupMessage": { + "type": "structure", + "members": { + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#DBShardGroupIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB shard group to modify.

", + "smithy.api#required": {} + } + }, + "MaxACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The maximum capacity of the DB shard group in Aurora capacity units (ACUs).

" + } + }, + "MinACU": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum capacity of the DB shard group in Aurora capacity units (ACUs).

" + } + }, + "ComputeRedundancy": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to create standby DB shard groups for the DB shard group. Valid values are the following:

  • 0 - Creates a DB shard group without a standby DB shard group. This is the default value.

  • 1 - Creates a DB shard group with a standby DB shard group in a different Availability Zone (AZ).

  • 2 - Creates a DB shard group with two standby DB shard groups in two different AZs.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a manual DB snapshot with a new engine version. The snapshot can be encrypted or unencrypted, but not shared or public.

Amazon RDS supports upgrading DB snapshots for MariaDB, MySQL, PostgreSQL, and Oracle. This operation doesn't apply to RDS Custom or RDS for Db2.

", + "smithy.api#examples": [ + { + "title": "To modify a DB snapshot", + "documentation": "The following example upgrades a PostgeSQL 10.6 snapshot named db5-snapshot-upg-test to PostgreSQL 11.7. The new DB engine version is shown after the snapshot has finished upgrading and its status is available.", + "input": { + "DBSnapshotIdentifier": "db5-snapshot-upg-test", + "EngineVersion": "11.7" + }, + "output": { + "DBSnapshot": { + "DBSnapshotIdentifier": "db5-snapshot-upg-test", + "DBInstanceIdentifier": "database-5", + "SnapshotCreateTime": "2020-03-27T20:49:17.092Z", + "Engine": "postgres", + "AllocatedStorage": 20, + "Status": "upgrading", + "Port": 5432, + "AvailabilityZone": "us-west-2a", + "VpcId": "vpc-2ff27557", + "InstanceCreateTime": "2020-03-27T19:59:04.735Z", + "MasterUsername": "postgres", + "EngineVersion": "10.6", + "LicenseModel": "postgresql-license", + "SnapshotType": "manual", + "OptionGroupName": "default:postgres-11", + "PercentProgress": 100, + "StorageType": "gp2", + "Encrypted": false, + "DBSnapshotArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-upg-test", + "IAMDatabaseAuthenticationEnabled": false, + "ProcessorFeatures": [], + "DbiResourceId": "db-GJMF75LM42IL6BTFRE4UZJ5YM4" + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBSnapshotAttribute": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBSnapshotAttributeMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBSnapshotAttributeResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#SharedSnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot.

To share a manual DB snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB snapshot. Uses the value all to make the manual DB snapshot public, which means it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the DescribeDBSnapshotAttributes API operation. The accounts are returned as values for the restore attribute.

", + "smithy.api#examples": [ + { + "title": "To allow two AWS accounts to restore a DB snapshot", + "documentation": "The following example grants permission to two AWS accounts, with the identifiers 111122223333 and 444455556666, to restore the DB snapshot named mydbsnapshot.", + "input": { + "DBSnapshotIdentifier": "mydbsnapshot", + "AttributeName": "restore", + "ValuesToAdd": [ + "111122223333", + "444455556666" + ] + }, + "output": { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "111122223333", + "444455556666" + ] + } + ] + } + } + }, + { + "title": "To prevent an AWS account from restoring a DB snapshot", + "documentation": "The following example removes permission from the AWS account with the identifier 444455556666 to restore the DB snapshot named mydbsnapshot.", + "input": { + "DBSnapshotIdentifier": "mydbsnapshot", + "AttributeName": "restore", + "ValuesToRemove": [ + "444455556666" + ] + }, + "output": { + "DBSnapshotAttributesResult": { + "DBSnapshotIdentifier": "mydbsnapshot", + "DBSnapshotAttributes": [ + { + "AttributeName": "restore", + "AttributeValues": [ + "111122223333" + ] + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBSnapshotAttributeMessage": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB snapshot to modify the attributes for.

", + "smithy.api#required": {} + } + }, + "AttributeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBSnapshotAttributes API operation.

", + "smithy.api#required": {} + } + }, + "ValuesToAdd": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

A list of DB snapshot attributes to add to the attribute specified by AttributeName.

To authorize other Amazon Web Services accounts to copy or restore a manual snapshot, set this list to include one or more Amazon Web Services account IDs, or all to make the manual DB snapshot restorable by any Amazon Web Services account. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

" + } + }, + "ValuesToRemove": { + "target": "com.amazonaws.rds#AttributeValueList", + "traits": { + "smithy.api#documentation": "

A list of DB snapshot attributes to remove from the attribute specified by AttributeName.

To remove authorization for other Amazon Web Services accounts to copy or restore a manual snapshot, set this list to include one or more Amazon Web Services account identifiers, or all to remove authorization for any Amazon Web Services account to copy or restore the DB snapshot. If you specify all, an Amazon Web Services account whose account ID is explicitly added to the restore attribute can still copy or restore the manual DB snapshot.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBSnapshotAttributeResult": { + "type": "structure", + "members": { + "DBSnapshotAttributesResult": { + "target": "com.amazonaws.rds#DBSnapshotAttributesResult" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBSnapshotMessage": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB snapshot to modify.

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine version to upgrade the DB snapshot to.

The following are the database engines and engine versions that are available when you upgrade a DB snapshot.

MariaDB

For the list of engine versions that are available for upgrading a DB snapshot, see Upgrading a MariaDB DB snapshot engine version in the Amazon RDS User Guide.

MySQL

For the list of engine versions that are available for upgrading a DB snapshot, see Upgrading a MySQL DB snapshot engine version in the Amazon RDS User Guide.

Oracle

  • 21.0.0.0.ru-2025-04.rur-2025-04.r1 (supported for 21.0.0.0.ru-2022-01.rur-2022-01.r1, 21.0.0.0.ru-2022-04.rur-2022-04.r1, 21.0.0.0.ru-2022-07.rur-2022-07.r1, 21.0.0.0.ru-2022-10.rur-2022-10.r1, 21.0.0.0.ru-2023-01.rur-2023-01.r1 and 21.0.0.0.ru-2023-01.rur-2023-01.r2 DB snapshots)

  • 19.0.0.0.ru-2025-04.rur-2025-04.r1 (supported for 19.0.0.0.ru-2019-07.rur-2019-07.r1, 19.0.0.0.ru-2019-10.rur-2019-10.r1 and 0.0.0.ru-2020-01.rur-2020-01.r1 DB snapshots)

  • 19.0.0.0.ru-2022-01.rur-2022-01.r1 (supported for 12.2.0.1 DB snapshots)

  • 19.0.0.0.ru-2022-07.rur-2022-07.r1 (supported for 12.1.0.2 DB snapshots)

  • 12.1.0.2.v8 (supported for 12.1.0.1 DB snapshots)

  • 11.2.0.4.v12 (supported for 11.2.0.2 DB snapshots)

  • 11.2.0.4.v11 (supported for 11.2.0.3 DB snapshots)

PostgreSQL

For the list of engine versions that are available for upgrading a DB snapshot, see Upgrading a PostgreSQL DB snapshot engine version in the Amazon RDS User Guide.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The option group to identify with the upgraded DB snapshot.

You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see Option group considerations in the Amazon RDS User Guide.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBSnapshotResult": { + "type": "structure", + "members": { + "DBSnapshot": { + "target": "com.amazonaws.rds#DBSnapshot" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyDBSubnetGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyDBSubnetGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyDBSubnetGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#SubnetAlreadyInUse" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

", + "smithy.api#examples": [ + { + "title": "To modify a DB subnet group", + "documentation": "The following example adds a subnet with the ID subnet-08e41f9e230222222 to the DB subnet group named mysubnetgroup. To keep the existing subnets in the subnet group, include their IDs as values in the --subnet-ids option. Make sure to have subnets with at least two different Availability Zones in the DB subnet group.", + "input": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "", + "SubnetIds": [ + "subnet-0a1dc4e1a6f123456", + "subnet-070dd7ecb3aaaaaaa", + "subnet-00f5b198bc0abcdef", + "subnet-08e41f9e230222222" + ] + }, + "output": { + "DBSubnetGroup": { + "DBSubnetGroupName": "mysubnetgroup", + "DBSubnetGroupDescription": "test DB subnet group", + "VpcId": "vpc-0f08e7610a1b2c3d4", + "SubnetGroupStatus": "Complete", + "Subnets": [ + { + "SubnetIdentifier": "subnet-08e41f9e230222222", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-070dd7ecb3aaaaaaa", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-00f5b198bc0abcdef", + "SubnetAvailabilityZone": { + "Name": "us-west-2d" + }, + "SubnetStatus": "Active" + }, + { + "SubnetIdentifier": "subnet-0a1dc4e1a6f123456", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + }, + "SubnetStatus": "Active" + } + ], + "DBSubnetGroupArn": "arn:aws:rds:us-west-2:123456789012:subgrp:mysubnetgroup" + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyDBSubnetGroupMessage": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name for the DB subnet group. This value is stored as a lowercase string. You can't modify the default subnet group.

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mydbsubnetgroup

", + "smithy.api#required": {} + } + }, + "DBSubnetGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description for the DB subnet group.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.rds#SubnetIdentifierList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The EC2 subnet IDs for the DB subnet group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyDBSubnetGroupResult": { + "type": "structure", + "members": { + "DBSubnetGroup": { + "target": "com.amazonaws.rds#DBSubnetGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyEventSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyEventSubscriptionMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyEventSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#EventSubscriptionQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#SNSInvalidTopicFault" + }, + { + "target": "com.amazonaws.rds#SNSNoAuthorizationFault" + }, + { + "target": "com.amazonaws.rds#SNSTopicArnNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionCategoryNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies an existing RDS event notification subscription. You can't modify the source identifiers using this call. To change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given source type (SourceType) in Events in the Amazon RDS User Guide or by using the DescribeEventCategories operation.

", + "smithy.api#examples": [ + { + "title": "To modify an event subscription", + "documentation": "The following example turns off the specified event subscription, so that it no longer publishes notifications to the specified Amazon Simple Notification Service topic.", + "input": { + "SubscriptionName": "my-instance-events", + "Enabled": false + }, + "output": { + "EventSubscription": { + "EventCategoriesList": [ + "backup", + "recovery" + ], + "CustomerAwsId": "123456789012", + "SourceType": "db-instance", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "CustSubscriptionId": "my-instance-events", + "Status": "modifying", + "Enabled": false + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyEventSubscriptionMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the RDS event notification subscription.

", + "smithy.api#required": {} + } + }, + "SnsTopicArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

" + } + }, + "SourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. For RDS Proxy events, specify db-proxy. If this value isn't specified, all events are returned.

Valid Values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment

" + } + }, + "EventCategories": { + "target": "com.amazonaws.rds#EventCategoriesList", + "traits": { + "smithy.api#documentation": "

A list of event categories for a source type (SourceType) that you want to subscribe to. You can see a list of the categories for a given source type in Events in the Amazon RDS User Guide or by using the DescribeEventCategories operation.

" + } + }, + "Enabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to activate the subscription.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyEventSubscriptionResult": { + "type": "structure", + "members": { + "EventSubscription": { + "target": "com.amazonaws.rds#EventSubscription" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#GlobalClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies a setting for an Amazon Aurora global database cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

This operation only applies to Aurora global database clusters.

", + "smithy.api#examples": [ + { + "title": "To modify a global database cluster", + "documentation": "The following example enables deletion protection for an Aurora MySQL-based global database cluster.", + "input": { + "GlobalClusterIdentifier": "myglobalcluster", + "DeletionProtection": true + }, + "output": { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-f0e523bfe07aabb", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-mysql", + "EngineVersion": "5.7.mysql_aurora.2.07.2", + "StorageEncrypted": false, + "DeletionProtection": true, + "GlobalClusterMembers": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#ModifyGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The cluster identifier for the global cluster to modify. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing global database cluster.

", + "smithy.api#required": {} + } + }, + "NewGlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#documentation": "

The new cluster identifier for the global database cluster. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster2

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the global database cluster. The global database cluster can't be deleted when deletion protection is enabled.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to which you want to upgrade.

To list all of the available engine versions for aurora-mysql (for MySQL-based Aurora global databases), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]'

To list all of the available engine versions for aurora-postgresql (for PostgreSQL-based Aurora global databases), use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]'

" + } + }, + "AllowMajorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to allow major version upgrades.

Constraints: Must be enabled if you specify a value for the EngineVersion parameter that's a different major version than the global cluster's current version.

If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version. Apply any custom parameter groups after completing the upgrade.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyIntegrationMessage" + }, + "output": { + "target": "com.amazonaws.rds#Integration" + }, + "errors": [ + { + "target": "com.amazonaws.rds#IntegrationConflictOperationFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidIntegrationStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies a zero-ETL integration with Amazon Redshift.

", + "smithy.api#examples": [ + { + "title": "To modify a zero-ETL integration", + "documentation": "The following example modifies the name of an existing zero-ETL integration.", + "input": { + "IntegrationIdentifier": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", + "IntegrationName": "my-renamed-integration" + }, + "output": { + "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", + "IntegrationName": "my-renamed-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", + "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", + "Tags": [], + "DataFilter": "include: *.*", + "CreateTime": "2023-12-28T17:20:20.629Z", + "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", + "Status": "active" + } + } + ] + } + }, + "com.amazonaws.rds#ModifyIntegrationMessage": { + "type": "structure", + "members": { + "IntegrationIdentifier": { + "target": "com.amazonaws.rds#IntegrationIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier of the integration to modify.

", + "smithy.api#required": {} + } + }, + "IntegrationName": { + "target": "com.amazonaws.rds#IntegrationName", + "traits": { + "smithy.api#documentation": "

A new name for the integration.

" + } + }, + "DataFilter": { + "target": "com.amazonaws.rds#DataFilter", + "traits": { + "smithy.api#documentation": "

A new data filter for the integration. For more information, see Data filtering for Aurora zero-ETL integrations with Amazon Redshift or Data filtering for Amazon RDS zero-ETL integrations with Amazon Redshift.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "

A new description for the integration.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyOptionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyOptionGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyOptionGroupResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#InvalidOptionGroupStateFault" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies an existing option group.

", + "smithy.api#examples": [ + { + "title": "To modify an option group", + "documentation": "The following example adds an option to an option group.", + "input": { + "OptionGroupName": "myawsuser-og02", + "OptionsToInclude": [ + { + "OptionName": "MEMCACHED", + "DBSecurityGroupMemberships": [ + "default" + ] + } + ], + "ApplyImmediately": true + }, + "output": { + "OptionGroup": {} + } + } + ] + } + }, + "com.amazonaws.rds#ModifyOptionGroupMessage": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the option group to be modified.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", + "smithy.api#required": {} + } + }, + "OptionsToInclude": { + "target": "com.amazonaws.rds#OptionConfigurationList", + "traits": { + "smithy.api#documentation": "

Options in this list are added to the option group or, if already present, the specified configuration is used to update the existing configuration.

" + } + }, + "OptionsToRemove": { + "target": "com.amazonaws.rds#OptionNamesList", + "traits": { + "smithy.api#documentation": "

Options in this list are removed from the option group.

" + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to apply the change immediately or during the next maintenance window for each instance associated with the option group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyOptionGroupResult": { + "type": "structure", + "members": { + "OptionGroup": { + "target": "com.amazonaws.rds#OptionGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ModifyTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies an existing tenant database in a DB instance. You can change the tenant database name or the master user password. This operation is supported only for RDS for Oracle CDB instances using the multi-tenant configuration.

" + } + }, + "com.amazonaws.rds#ModifyTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB instance that contains the tenant database that you are modifying. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DB instance.

", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied name of the tenant database that you want to modify. This parameter isn’t case-sensitive.

Constraints:

  • Must match the identifier of an existing tenant database.

", + "smithy.api#required": {} + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The new password for the master user of the specified tenant database in your DB instance.

Amazon RDS operations never return the password, so this action provides a way to regain access to a tenant database user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

Constraints:

  • Can include any printable ASCII character except /, \" (double quote), @, & (ampersand), and ' (single quote).

Length constraints:

  • Must contain between 8 and 30 characters.

" + } + }, + "NewTenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The new name of the tenant database when renaming a tenant database. This parameter isn’t case-sensitive.

Constraints:

  • Can't be the string null or any other reserved word.

  • Can't be longer than 8 characters.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

If the tenant database doesn't manage the master user password with Amazon Web Services Secrets Manager, you can turn on this management. In this case, you can't specify MasterUserPassword.

If the tenant database already manages the master user password with Amazon Web Services Secrets Manager, and you specify that the master user password is not managed with Amazon Web Services Secrets Manager, then you must specify MasterUserPassword. In this case, Amazon RDS deletes the secret and uses the new password for the master user specified by MasterUserPassword.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "RotateMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to rotate the secret managed by Amazon Web Services Secrets Manager for the master user password.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance. The secret value contains the updated password.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • You must apply the change immediately when rotating the master user password.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if both of the following conditions are met:

  • The tenant database doesn't manage the master user password in Amazon Web Services Secrets Manager.

    If the tenant database already manages the master user password in Amazon Web Services Secrets Manager, you can't change the KMS key used to encrypt the secret.

  • You're turning on ManageMasterUserPassword to manage the master user password in Amazon Web Services Secrets Manager.

    If you're turning on ManageMasterUserPassword and don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a self-managed KMS key.

The Amazon Web Services KMS key identifier is any of the following:

  • Key ARN

  • Key ID

  • Alias ARN

  • Alias name for the KMS key

To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

A default KMS key exists for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#NetworkTypeNotSupported": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "NetworkTypeNotSupported", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The network type is invalid for the DB instance. Valid nework type values are IPV4 and DUAL.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#OperatorSensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.rds#Option": { + "type": "structure", + "members": { + "OptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option.

" + } + }, + "OptionDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the option.

" + } + }, + "Persistent": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this option is persistent.

" + } + }, + "Permanent": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this option is permanent.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

If required, the port configured for this option to use.

" + } + }, + "OptionVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the option.

" + } + }, + "OptionSettings": { + "target": "com.amazonaws.rds#OptionSettingConfigurationList", + "traits": { + "smithy.api#documentation": "

The option settings for this option.

" + } + }, + "DBSecurityGroupMemberships": { + "target": "com.amazonaws.rds#DBSecurityGroupMembershipList", + "traits": { + "smithy.api#documentation": "

If the option requires access to a port, then this DB security group allows access to the port.

" + } + }, + "VpcSecurityGroupMemberships": { + "target": "com.amazonaws.rds#VpcSecurityGroupMembershipList", + "traits": { + "smithy.api#documentation": "

If the option requires access to a port, then this VPC security group allows access to the port.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of an option.

" + } + }, + "com.amazonaws.rds#OptionConfiguration": { + "type": "structure", + "members": { + "OptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The configuration of options to include in a group.

", + "smithy.api#required": {} + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The optional port for the option.

" + } + }, + "OptionVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version for the option.

" + } + }, + "DBSecurityGroupMemberships": { + "target": "com.amazonaws.rds#DBSecurityGroupNameList", + "traits": { + "smithy.api#documentation": "

A list of DB security groups used for this option.

" + } + }, + "VpcSecurityGroupMemberships": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of VPC security group names used for this option.

" + } + }, + "OptionSettings": { + "target": "com.amazonaws.rds#OptionSettingsList", + "traits": { + "smithy.api#documentation": "

The option settings to include in an option group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of all available options for an option group.

" + } + }, + "com.amazonaws.rds#OptionConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionConfiguration", + "traits": { + "smithy.api#xmlName": "OptionConfiguration" + } + } + }, + "com.amazonaws.rds#OptionGroup": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the option group.

" + } + }, + "OptionGroupDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides a description of the option group.

" + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the name of the engine that this option group can be applied to.

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the major engine version associated with this option group.

" + } + }, + "Options": { + "target": "com.amazonaws.rds#OptionsList", + "traits": { + "smithy.api#documentation": "

Indicates what options are available in the option group.

" + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this option group can be applied to both VPC and non-VPC instances. The value true indicates the option group can be applied to both VPC and non-VPC instances.

" + } + }, + "VpcId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

If AllowsVpcAndNonVpcInstanceMemberships is false, this field is blank. If AllowsVpcAndNonVpcInstanceMemberships is true and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field.

" + } + }, + "OptionGroupArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) for the option group.

" + } + }, + "SourceOptionGroup": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the option group from which this option group is copied.

" + } + }, + "SourceAccountId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services account ID for the option group from which this option group is copied.

" + } + }, + "CopyTimestamp": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

Indicates when the option group was copied.

" + } + }, + "SourceRegion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services Region for the option group from which this option group is copied.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

" + } + }, + "com.amazonaws.rds#OptionGroupAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OptionGroupAlreadyExistsFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The option group you are trying to create already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#OptionGroupMembership": { + "type": "structure", + "members": { + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group that the instance belongs to.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the DB instance's option group membership. Valid values are: in-sync, pending-apply, pending-removal, pending-maintenance-apply, pending-maintenance-removal, applying, removing, and failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information on the option groups the DB instance is a member of.

" + } + }, + "com.amazonaws.rds#OptionGroupMembershipList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionGroupMembership", + "traits": { + "smithy.api#xmlName": "OptionGroupMembership" + } + } + }, + "com.amazonaws.rds#OptionGroupNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OptionGroupNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified option group could not be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#OptionGroupOption": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the option.

" + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the engine that this option can be applied to.

" + } + }, + "MajorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the major engine version that the option is available for.

" + } + }, + "MinimumRequiredMinorEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The minimum required engine version for the option to be applied.

" + } + }, + "PortRequired": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the option requires a port.

" + } + }, + "DefaultPort": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

If the option requires a port, specifies the default port for the option.

" + } + }, + "OptionsDependedOn": { + "target": "com.amazonaws.rds#OptionsDependedOn", + "traits": { + "smithy.api#documentation": "

The options that are prerequisites for this option.

" + } + }, + "OptionsConflictsWith": { + "target": "com.amazonaws.rds#OptionsConflictsWith", + "traits": { + "smithy.api#documentation": "

The options that conflict with this option.

" + } + }, + "Persistent": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Persistent options can't be removed from an option group while DB instances are associated with the option group. If you disassociate all DB instances from the option group, your can remove the persistent option from the option group.

" + } + }, + "Permanent": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Permanent options can never be removed from an option group. An option group containing a permanent option can't be removed from a DB instance.

" + } + }, + "RequiresAutoMinorEngineVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

If true, you must enable the Auto Minor Version Upgrade setting for your DB instance before you can use this option. You can enable Auto Minor Version Upgrade when you first create your DB instance, or by modifying your DB instance later.

" + } + }, + "VpcOnly": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

If true, you can only use this option with a DB instance that is in a VPC.

" + } + }, + "SupportsOptionVersionDowngrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

If true, you can change the option to an earlier version of the option. This only applies to options that have different versions available.

" + } + }, + "OptionGroupOptionSettings": { + "target": "com.amazonaws.rds#OptionGroupOptionSettingsList", + "traits": { + "smithy.api#documentation": "

The option settings that are available (and the default value) for each option in an option group.

" + } + }, + "OptionGroupOptionVersions": { + "target": "com.amazonaws.rds#OptionGroupOptionVersionsList", + "traits": { + "smithy.api#documentation": "

The versions that are available for the option.

" + } + }, + "CopyableCrossAccount": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the option can be copied across Amazon Web Services accounts.

" + } + }, + "CopyableCrossRegion": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the option can be copied across Amazon Web Services Regions.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Available option.

" + } + }, + "com.amazonaws.rds#OptionGroupOptionSetting": { + "type": "structure", + "members": { + "SettingName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group option.

" + } + }, + "SettingDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the option group option.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default value for the option group option.

" + } + }, + "ApplyType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine specific parameter type for the option group option.

" + } + }, + "AllowedValues": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the acceptable values for the option group option.

" + } + }, + "IsModifiable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this option group option can be changed from the default value.

" + } + }, + "IsRequired": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a value must be specified for this option setting of the option group option.

" + } + }, + "MinimumEngineVersionPerAllowedValue": { + "target": "com.amazonaws.rds#MinimumEngineVersionPerAllowedValueList", + "traits": { + "smithy.api#documentation": "

The minimum DB engine version required for the corresponding allowed value for this option setting.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Option group option settings are used to display settings available for each option with their default values and other information. These values are used with the DescribeOptionGroupOptions action.

" + } + }, + "com.amazonaws.rds#OptionGroupOptionSettingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionGroupOptionSetting", + "traits": { + "smithy.api#xmlName": "OptionGroupOptionSetting" + } + } + }, + "com.amazonaws.rds#OptionGroupOptionVersionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionVersion", + "traits": { + "smithy.api#xmlName": "OptionVersion" + } + } + }, + "com.amazonaws.rds#OptionGroupOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionGroupOption", + "traits": { + "smithy.api#xmlName": "OptionGroupOption" + } + }, + "traits": { + "smithy.api#documentation": "

List of available option group options.

" + } + }, + "com.amazonaws.rds#OptionGroupOptionsMessage": { + "type": "structure", + "members": { + "OptionGroupOptions": { + "target": "com.amazonaws.rds#OptionGroupOptionsList" + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#OptionGroupQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OptionGroupQuotaExceededFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The quota of 20 option groups was exceeded for this Amazon Web Services account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#OptionGroups": { + "type": "structure", + "members": { + "OptionGroupsList": { + "target": "com.amazonaws.rds#OptionGroupsList", + "traits": { + "smithy.api#documentation": "

List of option groups.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

List of option groups.

" + } + }, + "com.amazonaws.rds#OptionGroupsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionGroup", + "traits": { + "smithy.api#xmlName": "OptionGroup" + } + } + }, + "com.amazonaws.rds#OptionNamesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#OptionSetting": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option that has settings that you can set.

" + } + }, + "Value": { + "target": "com.amazonaws.rds#PotentiallySensitiveOptionSettingValue", + "traits": { + "smithy.api#documentation": "

The current value of the option setting.

" + } + }, + "DefaultValue": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The default value of the option setting.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the option setting.

" + } + }, + "ApplyType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine specific parameter type.

" + } + }, + "DataType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The data type of the option setting.

" + } + }, + "AllowedValues": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The allowed values of the option setting.

" + } + }, + "IsModifiable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the option setting can be modified from the default.

" + } + }, + "IsCollection": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the option setting is part of a collection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Option settings are the actual settings being applied or configured for that option. It is used when you modify an option group or describe option groups. For example, the NATIVE_NETWORK_ENCRYPTION option has a setting called SQLNET.ENCRYPTION_SERVER that can have several different values.

" + } + }, + "com.amazonaws.rds#OptionSettingConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionSetting", + "traits": { + "smithy.api#xmlName": "OptionSetting" + } + } + }, + "com.amazonaws.rds#OptionSettingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OptionSetting", + "traits": { + "smithy.api#xmlName": "OptionSetting" + } + } + }, + "com.amazonaws.rds#OptionVersion": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the option.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the version is the default version of the option.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The version for an option. Option group option versions are returned by the DescribeOptionGroupOptions action.

" + } + }, + "com.amazonaws.rds#OptionsConflictsWith": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "OptionConflictName" + } + } + }, + "com.amazonaws.rds#OptionsDependedOn": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "OptionName" + } + } + }, + "com.amazonaws.rds#OptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Option", + "traits": { + "smithy.api#xmlName": "Option" + } + } + }, + "com.amazonaws.rds#OrderableDBInstanceOption": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine type of a DB instance.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine version of a DB instance.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB instance class for a DB instance.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model for a DB instance.

" + } + }, + "AvailabilityZoneGroup": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone group for a DB instance.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZoneList", + "traits": { + "smithy.api#documentation": "

A list of Availability Zones for a DB instance.

" + } + }, + "MultiAZCapable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance is Multi-AZ capable.

" + } + }, + "ReadReplicaCapable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance can have a read replica.

" + } + }, + "Vpc": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance is in a VPC.

" + } + }, + "SupportsStorageEncryption": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports encrypted storage.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type for a DB instance.

" + } + }, + "SupportsIops": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports provisioned IOPS.

" + } + }, + "SupportsStorageThroughput": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports storage throughput.

" + } + }, + "SupportsEnhancedMonitoring": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports Enhanced Monitoring at intervals from 1 to 60 seconds.

" + } + }, + "SupportsIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports IAM database authentication.

" + } + }, + "SupportsPerformanceInsights": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports Performance Insights.

" + } + }, + "MinStorageSize": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Minimum storage size for a DB instance.

" + } + }, + "MaxStorageSize": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Maximum storage size for a DB instance.

" + } + }, + "MinIopsPerDbInstance": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Minimum total provisioned IOPS for a DB instance.

" + } + }, + "MaxIopsPerDbInstance": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Maximum total provisioned IOPS for a DB instance.

" + } + }, + "MinIopsPerGib": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

Minimum provisioned IOPS per GiB for a DB instance.

" + } + }, + "MaxIopsPerGib": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

Maximum provisioned IOPS per GiB for a DB instance.

" + } + }, + "MinStorageThroughputPerDbInstance": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Minimum storage throughput for a DB instance.

" + } + }, + "MaxStorageThroughputPerDbInstance": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Maximum storage throughput for a DB instance.

" + } + }, + "MinStorageThroughputPerIops": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

" + } + }, + "MaxStorageThroughputPerIops": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

" + } + }, + "AvailableProcessorFeatures": { + "target": "com.amazonaws.rds#AvailableProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

A list of the available processor features for the DB instance class of a DB instance.

" + } + }, + "SupportedEngineModes": { + "target": "com.amazonaws.rds#EngineModeList", + "traits": { + "smithy.api#documentation": "

A list of the supported DB engine modes.

" + } + }, + "SupportsStorageAutoscaling": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether Amazon RDS can automatically scale storage for DB instances that use the specified DB instance class.

" + } + }, + "SupportsKerberosAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports Kerberos Authentication.

" + } + }, + "OutpostCapable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports RDS on Outposts.

For more information about RDS on Outposts, see Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "SupportedActivityStreamModes": { + "target": "com.amazonaws.rds#ActivityStreamModeList", + "traits": { + "smithy.api#documentation": "

The list of supported modes for Database Activity Streams. Aurora PostgreSQL returns the value [sync, async]. Aurora MySQL and RDS for Oracle return [async] only. If Database Activity Streams isn't supported, the return value is an empty list.

" + } + }, + "SupportsGlobalDatabases": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Aurora global databases with a specific combination of other DB engine attributes.

" + } + }, + "SupportedNetworkTypes": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The network types supported by the DB instance (IPV4 or DUAL).

A DB instance can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + } + }, + "SupportsClusters": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether DB instances can be configured as a Multi-AZ DB cluster.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + } + }, + "SupportsDedicatedLogVolume": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports using a dedicated log volume (DLV).

" + } + }, + "SupportsAdditionalStorageVolumes": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance class supports additional storage volumes.

" + } + }, + "SupportsHttpEndpoint": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports HTTP endpoints.

" + } + }, + "AvailableAdditionalStorageVolumesOptions": { + "target": "com.amazonaws.rds#AvailableAdditionalStorageVolumesOptionList", + "traits": { + "smithy.api#documentation": "

The available options for additional storage volumes for the DB instance class.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a list of available options for a DB instance.

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

" + } + }, + "com.amazonaws.rds#OrderableDBInstanceOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#OrderableDBInstanceOption", + "traits": { + "smithy.api#xmlName": "OrderableDBInstanceOption" + } + } + }, + "com.amazonaws.rds#OrderableDBInstanceOptionsMessage": { + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "target": "com.amazonaws.rds#OrderableDBInstanceOptionsList", + "traits": { + "smithy.api#documentation": "

An OrderableDBInstanceOption structure containing information about orderable options for the DB instance.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeOrderableDBInstanceOptions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#Outpost": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A data type that represents an Outpost.

For more information about RDS on Outposts, see Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#Parameter": { + "type": "structure", + "members": { + "ParameterName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the parameter.

" + } + }, + "ParameterValue": { + "target": "com.amazonaws.rds#PotentiallySensitiveParameterValue", + "traits": { + "smithy.api#documentation": "

The value of the parameter.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Provides a description of the parameter.

" + } + }, + "Source": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The source of the parameter value.

" + } + }, + "ApplyType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the engine specific parameters type.

" + } + }, + "DataType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the valid data type for the parameter.

" + } + }, + "AllowedValues": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the valid range of values for the parameter.

" + } + }, + "IsModifiable": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

" + } + }, + "MinimumEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The earliest engine version to which the parameter can apply.

" + } + }, + "ApplyMethod": { + "target": "com.amazonaws.rds#ApplyMethod", + "traits": { + "smithy.api#documentation": "

Indicates when to apply parameter updates.

" + } + }, + "SupportedEngineModes": { + "target": "com.amazonaws.rds#EngineModeList", + "traits": { + "smithy.api#documentation": "

The valid DB engine modes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a request parameter in the ModifyDBParameterGroup and ResetDBParameterGroup actions.

This data type is used as a response element in the DescribeEngineDefaultParameters and DescribeDBParameters actions.

" + } + }, + "com.amazonaws.rds#ParametersList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Parameter", + "traits": { + "smithy.api#xmlName": "Parameter" + } + } + }, + "com.amazonaws.rds#PendingCloudwatchLogsExports": { + "type": "structure", + "members": { + "LogTypesToEnable": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

Log types that are in the process of being deactivated. After they are deactivated, these log types aren't exported to CloudWatch Logs.

" + } + }, + "LogTypesToDisable": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

Log types that are in the process of being enabled. After they are enabled, these log types are exported to CloudWatch Logs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.

" + } + }, + "com.amazonaws.rds#PendingMaintenanceAction": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of pending maintenance action that is available for the resource.

For more information about maintenance actions, see Maintaining a DB instance.

Valid Values:

  • ca-certificate-rotation

  • db-upgrade

  • hardware-maintenance

  • os-upgrade

  • serverless-platform-version-update

  • system-update

For more information about these actions, see Maintenance actions for Amazon Aurora or Maintenance actions for Amazon RDS.

" + } + }, + "AutoAppliedAfterDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date of the maintenance window when the action is applied. The maintenance action is applied to the resource during its first maintenance window after this date.

" + } + }, + "ForcedApplyDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date when the maintenance action is automatically applied.

On this date, the maintenance action is applied to the resource as soon as possible, regardless of the maintenance window for the resource. There might be a delay of one or more days from this date before the maintenance action is applied.

" + } + }, + "OptInStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Indicates the type of opt-in request that has been received for the resource.

" + } + }, + "CurrentApplyDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The effective date when the pending maintenance action is applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A description providing more detail about the maintenance action.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information about a pending maintenance action for a resource.

" + } + }, + "com.amazonaws.rds#PendingMaintenanceActionDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#PendingMaintenanceAction", + "traits": { + "smithy.api#xmlName": "PendingMaintenanceAction" + } + } + }, + "com.amazonaws.rds#PendingMaintenanceActions": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ResourcePendingMaintenanceActions", + "traits": { + "smithy.api#xmlName": "ResourcePendingMaintenanceActions" + } + } + }, + "com.amazonaws.rds#PendingMaintenanceActionsMessage": { + "type": "structure", + "members": { + "PendingMaintenanceActions": { + "target": "com.amazonaws.rds#PendingMaintenanceActions", + "traits": { + "smithy.api#documentation": "

A list of the pending maintenance actions for the resource.

" + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Data returned from the DescribePendingMaintenanceActions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the compute and memory capacity class for the DB instance.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The allocated storage size for the DB instance specified in gibibytes (GiB).

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The master credentials for the DB instance.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port for the DB instance.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the Single-AZ DB instance will change to a Multi-AZ deployment.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model for the DB instance.

Valid values: license-included | bring-your-own-license | general-public-license | bring-your-own-media

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The Provisioned IOPS value for the DB instance.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput of the DB instance.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database identifier for the DB instance.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type of the DB instance.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the CA certificate for the DB instance.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB subnet group for the DB instance.

" + } + }, + "PendingCloudwatchLogsExports": { + "target": "com.amazonaws.rds#PendingCloudwatchLogsExports" + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

" + } + }, + "AutomationMode": { + "target": "com.amazonaws.rds#AutomationMode", + "traits": { + "smithy.api#documentation": "

The automation mode of the RDS Custom DB instance: full or all-paused. If full, the DB instance automates monitoring and instance recovery. If all-paused, the instance pauses automation for the duration set by --resume-full-automation-mode-minutes.

" + } + }, + "ResumeFullAutomationModeTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The number of minutes to pause the automation. When the time period ends, RDS Custom resumes full automation. The minimum value is 60 (default). The maximum value is 1,440.

" + } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance will change to the multi-tenant configuration (TRUE) or the single-tenant configuration (FALSE).

" + } + }, + "IAMDatabaseAuthenticationEnabled": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.>

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine of the DB instance.

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

The additional storage volume modifications that are pending for the DB instance.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier of the DB capacity reservation that the DB instance uses after a pending modification completes. Amazon RDS returns this value when a ModifyDBInstance request changes the DB capacity reservation, and the change hasn't been applied yet.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the ModifyDBInstance operation and contains changes that will be applied during the next maintenance window.

" + } + }, + "com.amazonaws.rds#PerformanceInsightsMetricDimensionGroup": { + "type": "structure", + "members": { + "Dimensions": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

A list of specific dimensions from a dimension group. If this list isn't included, then all of the dimensions in the group were requested, or are present in the response.

" + } + }, + "Group": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The available dimension groups for Performance Insights metric type.

" + } + }, + "Limit": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of items to fetch for this dimension group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A logical grouping of Performance Insights metrics for a related subject area. For example, the db.sql dimension group consists of the following dimensions:

  • db.sql.id - The hash of a running SQL statement, generated by Performance Insights.

  • db.sql.db_id - Either the SQL ID generated by the database engine, or a value generated by Performance Insights that begins with pi-.

  • db.sql.statement - The full text of the SQL statement that is running, for example, SELECT * FROM employees.

  • db.sql_tokenized.id - The hash of the SQL digest generated by Performance Insights.

Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.

" + } + }, + "com.amazonaws.rds#PerformanceInsightsMetricQuery": { + "type": "structure", + "members": { + "GroupBy": { + "target": "com.amazonaws.rds#PerformanceInsightsMetricDimensionGroup", + "traits": { + "smithy.api#documentation": "

A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.

" + } + }, + "Metric": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of a Performance Insights metric to be measured.

Valid Values:

  • db.load.avg - A scaled representation of the number of active sessions for the database engine.

  • db.sampledload.avg - The raw number of active sessions for the database engine.

  • The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide.

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. For most use cases, you can query db.load.avg only.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single Performance Insights metric query to process. You must provide the metric to the query. If other parameters aren't specified, Performance Insights returns all data points for the specified metric. Optionally, you can request the data points to be aggregated by dimension group (GroupBy) and return only those data points that match your criteria (Filter).

Constraints:

  • Must be a valid Performance Insights query.

" + } + }, + "com.amazonaws.rds#PerformanceIssueDetails": { + "type": "structure", + "members": { + "StartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the performance issue started.

" + } + }, + "EndTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time when the performance issue stopped.

" + } + }, + "Metrics": { + "target": "com.amazonaws.rds#MetricList", + "traits": { + "smithy.api#documentation": "

The metrics that are relevant to the performance issue.

" + } + }, + "Analysis": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The analysis of the performance issue. The information might contain markdown.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details of the performance issue.

" + } + }, + "com.amazonaws.rds#PointInTimeRestoreNotEnabledFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "PointInTimeRestoreNotEnabled", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

SourceDBInstanceIdentifier refers to a DB instance with BackupRetentionPeriod equal to 0.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#PotentiallySensitiveOptionSettingValue": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.rds#PotentiallySensitiveParameterValue": { + "type": "string" + }, + "com.amazonaws.rds#ProcessorFeature": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the processor feature. Valid names are coreCount and threadsPerCore.

" + } + }, + "Value": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The value of a processor feature.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the processor features of a DB instance class.

To specify the number of CPU cores, use the coreCount feature name for the Name parameter. To specify the number of threads per core, use the threadsPerCore feature name for the Name parameter.

You can set the processor features of the DB instance class for a DB instance when you call one of the following actions:

  • CreateDBInstance

  • ModifyDBInstance

  • RestoreDBInstanceFromDBSnapshot

  • RestoreDBInstanceFromS3

  • RestoreDBInstanceToPointInTime

You can view the valid processor values for a particular instance class by calling the DescribeOrderableDBInstanceOptions action and specifying the instance class for the DBInstanceClass parameter.

In addition, you can use the following actions for DB instance class processor information:

  • DescribeDBInstances

  • DescribeDBSnapshots

  • DescribeValidDBInstanceModifications

If you call DescribeDBInstances, ProcessorFeature returns non-null values only if the following conditions are met:

  • You are accessing an Oracle or SQL Server DB instance.

  • Your Oracle or SQL Server DB instance class supports configuring the number of CPU cores and threads per core.

  • The current number CPU cores and threads is set to a non-default value.

For more information, see Configuring the processor for a DB instance class in RDS for Oracle, Optimizing your RDS for SQL Server CPU, and DB instance classes in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#ProcessorFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ProcessorFeature", + "traits": { + "smithy.api#xmlName": "ProcessorFeature" + } + } + }, + "com.amazonaws.rds#PromoteReadReplica": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#PromoteReadReplicaMessage" + }, + "output": { + "target": "com.amazonaws.rds#PromoteReadReplicaResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Promotes a read replica DB instance to a standalone DB instance.

  • Backup duration is a function of the amount of changes to the database since the previous backup. If you plan to promote a read replica to a standalone instance, we recommend that you enable backups and complete at least one backup prior to promotion. In addition, a read replica cannot be promoted to a standalone instance when it is in the backing-up status. If you have enabled backups on your read replica, configure the automated backup window so that daily backups do not interfere with read replica promotion.

  • This command doesn't apply to Aurora MySQL, Aurora PostgreSQL, or RDS Custom.

", + "smithy.api#examples": [ + { + "title": "To promote a read replica", + "documentation": "The following example promotes the specified read replica to become a standalone DB instance.", + "input": { + "DBInstanceIdentifier": "test-instance-repl" + }, + "output": { + "DBInstance": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance-repl", + "StorageType": "standard", + "ReadReplicaSourceDBInstanceIdentifier": "test-instance", + "DBInstanceStatus": "modifying" + } + } + } + ] + } + }, + "com.amazonaws.rds#PromoteReadReplicaDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#PromoteReadReplicaDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#PromoteReadReplicaDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Promotes a read replica DB cluster to a standalone DB cluster.

" + } + }, + "com.amazonaws.rds#PromoteReadReplicaDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DB cluster read replica to promote. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DB cluster read replica.

Example: my-cluster-replica1

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#PromoteReadReplicaDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#PromoteReadReplicaMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing read replica DB instance.

Example: mydbinstance

", + "smithy.api#required": {} + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Default: 1

Constraints:

  • Must be a value from 0 to 35.

  • Can't be set to 0 if the DB instance is a source to read replicas.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#PromoteReadReplicaResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ProvisionedIopsNotAvailableInAZFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Provisioned IOPS not available in the specified Availability Zone.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#PurchaseReservedDBInstancesOffering": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingMessage" + }, + "output": { + "target": "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#ReservedDBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#ReservedDBInstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#ReservedDBInstancesOfferingNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Purchases a reserved DB instance offering.

", + "smithy.api#examples": [ + { + "title": "To purchase a reserved DB instance", + "documentation": "The following example shows how to buy the reserved DB instance offering from the previous example.", + "input": { + "ReservedDBInstancesOfferingId": "", + "ReservedDBInstanceId": "8ba30be1-b9ec-447f-8f23-6114e3f4c7b4" + }, + "output": { + "ReservedDBInstance": { + "ReservedDBInstanceId": "ri-2020-06-29-16-54-57-670", + "ReservedDBInstancesOfferingId": "8ba30be1-b9ec-447f-8f23-6114e3f4c7b4", + "DBInstanceClass": "db.t2.micro", + "StartTime": "2020-06-29T16:54:57.670Z", + "Duration": 31536000, + "FixedPrice": 51, + "UsagePrice": 0, + "CurrencyCode": "USD", + "DBInstanceCount": 1, + "ProductDescription": "mysql", + "OfferingType": "Partial Upfront", + "MultiAZ": false, + "State": "payment-pending", + "RecurringCharges": [ + { + "RecurringChargeAmount": 0.006, + "RecurringChargeFrequency": "Hourly" + } + ], + "ReservedDBInstanceArn": "arn:aws:rds:us-west-2:123456789012:ri:ri-2020-06-29-16-54-57-670" + } + } + } + ] + } + }, + "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingMessage": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Reserved DB instance offering to purchase.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", + "smithy.api#required": {} + } + }, + "ReservedDBInstanceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Customer-specified identifier to track this reservation.

Example: myreservationID

" + } + }, + "DBInstanceCount": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of instances to reserve.

Default: 1

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#PurchaseReservedDBInstancesOfferingResult": { + "type": "structure", + "members": { + "ReservedDBInstance": { + "target": "com.amazonaws.rds#ReservedDBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#Range": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The minimum value in the range.

" + } + }, + "To": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The maximum value in the range.

" + } + }, + "Step": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The step value for the range. For example, if you have a range of 5,000 to 10,000, with a step value of 1,000, the valid values start at 5,000 and step up by 1,000. Even though 7,500 is within the range, it isn't a valid value for the range. The valid values are 5,000, 6,000, 7,000, 8,000...

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A range of integer values.

" + } + }, + "com.amazonaws.rds#RangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Range", + "traits": { + "smithy.api#xmlName": "Range" + } + } + }, + "com.amazonaws.rds#RdsCustomClusterConfiguration": { + "type": "structure", + "members": { + "InterconnectSubnetId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "TransitGatewayMulticastDomainId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "ReplicaMode": { + "target": "com.amazonaws.rds#ReplicaMode", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "com.amazonaws.rds#ReadReplicaDBClusterIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "ReadReplicaDBClusterIdentifier" + } + } + }, + "com.amazonaws.rds#ReadReplicaDBInstanceIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "ReadReplicaDBInstanceIdentifier" + } + } + }, + "com.amazonaws.rds#ReadReplicaIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "ReadReplicaIdentifier" + } + } + }, + "com.amazonaws.rds#ReadersArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#RebootDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RebootDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#RebootDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

You might need to reboot your DB cluster, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB cluster parameter group associated with the DB cluster, reboot the DB cluster for the changes to take effect.

Rebooting a DB cluster restarts the database engine service. Rebooting a DB cluster results in a momentary outage, during which the DB cluster status is set to rebooting.

Use this operation only for a non-Aurora Multi-AZ DB cluster.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" + } + }, + "com.amazonaws.rds#RebootDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBCluster.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RebootDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RebootDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RebootDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#RebootDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.

Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

For more information about rebooting, see Rebooting a DB Instance in the Amazon RDS User Guide.

This command doesn't apply to RDS Custom.

If your DB instance is part of a Multi-AZ DB cluster, you can reboot the DB cluster with the RebootDBCluster operation.

", + "smithy.api#examples": [ + { + "title": "To reboot a DB instance", + "documentation": "The following example starts a reboot of the specified DB instance.", + "input": { + "DBInstanceIdentifier": "test-mysql-instance" + }, + "output": { + "DBInstance": { + "DBInstanceIdentifier": "test-mysql-instance", + "DBInstanceClass": "db.t3.micro", + "Engine": "mysql", + "DBInstanceStatus": "rebooting", + "MasterUsername": "admin", + "Endpoint": { + "Address": "test-mysql-instance.############.us-west-2.rds.amazonaws.com", + "Port": 3306, + "HostedZoneId": "Z1PVIF0EXAMPLE" + } + } + } + } + ] + } + }, + "com.amazonaws.rds#RebootDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "smithy.api#required": {} + } + }, + "ForceFailover": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the reboot is conducted through a Multi-AZ failover.

Constraint: You can't enable force failover if the instance isn't configured for Multi-AZ.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RebootDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RebootDBShardGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RebootDBShardGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBShardGroup" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBShardGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

You might need to reboot your DB shard group, usually for maintenance reasons. For example, if you make certain modifications, reboot the DB shard group for the changes to take effect.

This operation applies only to Aurora Limitless Database DBb shard groups.

" + } + }, + "com.amazonaws.rds#RebootDBShardGroupMessage": { + "type": "structure", + "members": { + "DBShardGroupIdentifier": { + "target": "com.amazonaws.rds#DBShardGroupIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB shard group to reboot.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RecommendedAction": { + "type": "structure", + "members": { + "ActionId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The unique identifier of the recommended action.

" + } + }, + "Title": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A short description to summarize the action. The description might contain markdown.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A detailed description of the action. The description might contain markdown.

" + } + }, + "Operation": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An API operation for the action.

" + } + }, + "Parameters": { + "target": "com.amazonaws.rds#RecommendedActionParameterList", + "traits": { + "smithy.api#documentation": "

The parameters for the API operation.

" + } + }, + "ApplyModes": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The methods to apply the recommended action.

Valid values:

  • manual - The action requires you to resolve the recommendation manually.

  • immediately - The action is applied immediately.

  • next-maintainance-window - The action is applied during the next scheduled maintainance.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the action.

  • ready

  • applied

  • scheduled

  • resolved

" + } + }, + "IssueDetails": { + "target": "com.amazonaws.rds#IssueDetails", + "traits": { + "smithy.api#documentation": "

The details of the issue.

" + } + }, + "ContextAttributes": { + "target": "com.amazonaws.rds#ContextAttributeList", + "traits": { + "smithy.api#documentation": "

The supporting attributes to explain the recommended action.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommended actions to apply to resolve the issues associated with your DB instances, DB clusters, and DB parameter groups.

" + } + }, + "com.amazonaws.rds#RecommendedActionList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#RecommendedAction" + } + }, + "com.amazonaws.rds#RecommendedActionParameter": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The key of the parameter to use with the RecommendedAction API operation.

" + } + }, + "Value": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The value of the parameter to use with the RecommendedAction API operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A single parameter to use with the RecommendedAction API operation to apply the action.

" + } + }, + "com.amazonaws.rds#RecommendedActionParameterList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#RecommendedActionParameter" + } + }, + "com.amazonaws.rds#RecommendedActionUpdate": { + "type": "structure", + "members": { + "ActionId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier of the updated recommendation action.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The status of the updated recommendation action.

  • applied

  • scheduled

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The recommended status to update for the specified recommendation action ID.

" + } + }, + "com.amazonaws.rds#RecommendedActionUpdateList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#RecommendedActionUpdate" + } + }, + "com.amazonaws.rds#RecurringCharge": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The amount of the recurring charge.

" + } + }, + "RecurringChargeFrequency": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The frequency of the recurring charge.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeReservedDBInstances and DescribeReservedDBInstancesOfferings actions.

" + } + }, + "com.amazonaws.rds#RecurringChargeList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#RecurringCharge", + "traits": { + "smithy.api#xmlName": "RecurringCharge" + } + } + }, + "com.amazonaws.rds#ReferenceDetails": { + "type": "structure", + "members": { + "ScalarReferenceDetails": { + "target": "com.amazonaws.rds#ScalarReferenceDetails", + "traits": { + "smithy.api#documentation": "

The metric reference details when the reference is a scalar.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The reference details of a metric.

" + } + }, + "com.amazonaws.rds#RegisterDBProxyTargets": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RegisterDBProxyTargetsRequest" + }, + "output": { + "target": "com.amazonaws.rds#RegisterDBProxyTargetsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetAlreadyRegisteredFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientAvailableIPsInSubnetFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBProxyStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Associate one or more DBProxyTarget data structures with a DBProxyTargetGroup.

" + } + }, + "com.amazonaws.rds#RegisterDBProxyTargetsRequest": { + "type": "structure", + "members": { + "DBProxyName": { + "target": "com.amazonaws.rds#DBProxyName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

", + "smithy.api#required": {} + } + }, + "TargetGroupName": { + "target": "com.amazonaws.rds#DBProxyTargetGroupName", + "traits": { + "smithy.api#documentation": "

The identifier of the DBProxyTargetGroup.

" + } + }, + "DBInstanceIdentifiers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

One or more DB instance identifiers.

" + } + }, + "DBClusterIdentifiers": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

One or more DB cluster identifiers.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RegisterDBProxyTargetsResponse": { + "type": "structure", + "members": { + "DBProxyTargets": { + "target": "com.amazonaws.rds#TargetList", + "traits": { + "smithy.api#documentation": "

One or more DBProxyTarget objects that are created when you register targets with a target group.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RemoveFromGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RemoveFromGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#RemoveFromGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Detaches an Aurora secondary cluster from an Aurora global database cluster. The cluster becomes a standalone cluster with read-write capability instead of being read-only and receiving data from a primary cluster in a different Region.

This operation only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To detach an Aurora secondary cluster from an Aurora global database cluster", + "documentation": "The following example detaches an Aurora secondary cluster from an Aurora global database cluster. The cluster changes from being read-only to a standalone cluster with read-write capability.", + "input": { + "GlobalClusterIdentifier": "myglobalcluster", + "DbClusterIdentifier": "arn:aws:rds:us-west-2:123456789012:cluster:DB-1" + }, + "output": { + "GlobalCluster": { + "GlobalClusterIdentifier": "myglobalcluster", + "GlobalClusterResourceId": "cluster-abc123def456gh", + "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:myglobalcluster", + "Status": "available", + "Engine": "aurora-postgresql", + "EngineVersion": "10.11", + "StorageEncrypted": true, + "DeletionProtection": false, + "GlobalClusterMembers": [ + { + "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:js-global-cluster", + "Readers": [ + "arn:aws:rds:us-west-2:123456789012:cluster:DB-1" + ], + "IsWriter": true + }, + { + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:DB-1", + "Readers": [], + "IsWriter": false, + "GlobalWriteForwardingStatus": "disabled" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#RemoveFromGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The cluster identifier to detach from the Aurora global database cluster.

", + "smithy.api#required": {} + } + }, + "DbClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) identifying the cluster that was detached from the Aurora global database cluster.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RemoveFromGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RemoveRoleFromDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RemoveRoleFromDBClusterMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the asssociation of an Amazon Web Services Identity and Access Management (IAM) role from a DB cluster.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To disassociate an Identity and Access Management (IAM) role from a DB cluster", + "documentation": "The following example removes a role from a DB cluster.", + "input": { + "DBClusterIdentifier": "mydbcluster", + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3" + } + } + ] + } + }, + "com.amazonaws.rds#RemoveRoleFromDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster to disassociate the IAM role from.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#IAMRoleArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to disassociate from the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

", + "smithy.api#required": {} + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the feature for the DB cluster that the IAM role is to be disassociated from. For information about supported feature names, see DBEngineVersion.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RemoveRoleFromDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RemoveRoleFromDBInstanceMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceRoleNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Disassociates an Amazon Web Services Identity and Access Management (IAM) role from a DB instance.

" + } + }, + "com.amazonaws.rds#RemoveRoleFromDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB instance to disassociate the IAM role from.

", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB instance, for example, arn:aws:iam::123456789012:role/AccessRole.

", + "smithy.api#required": {} + } + }, + "FeatureName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the feature for the DB instance that the IAM role is to be disassociated from. For information about supported feature names, see DBEngineVersion.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RemoveSourceIdentifierFromSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionMessage" + }, + "output": { + "target": "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#SourceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#SubscriptionNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Removes a source identifier from an existing RDS event notification subscription.

", + "smithy.api#examples": [ + { + "title": "To remove a source identifier from a subscription", + "documentation": "The following example removes the specified source identifier from an existing subscription.", + "input": { + "SubscriptionName": "my-instance-events", + "SourceIdentifier": "test-instance-repl" + }, + "output": { + "EventSubscription": { + "EventSubscriptionArn": "arn:aws:rds:us-east-1:123456789012:es:my-instance-events", + "SubscriptionCreationTime": "Tue Jul 31 23:22:01 UTC 2018", + "EventCategoriesList": [ + "backup", + "recovery" + ], + "SnsTopicArn": "arn:aws:sns:us-east-1:123456789012:interesting-events", + "Status": "modifying", + "CustSubscriptionId": "my-instance-events", + "CustomerAwsId": "123456789012", + "SourceIdsList": [ + "test-instance" + ], + "SourceType": "db-instance", + "Enabled": false + } + } + } + ] + } + }, + "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionMessage": { + "type": "structure", + "members": { + "SubscriptionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the RDS event notification subscription you want to remove a source identifier from.

", + "smithy.api#required": {} + } + }, + "SourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The source identifier to be removed from the subscription, such as the DB instance identifier for a DB instance or the name of a security group.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RemoveSourceIdentifierFromSubscriptionResult": { + "type": "structure", + "members": { + "EventSubscription": { + "target": "com.amazonaws.rds#EventSubscription" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RemoveTagsFromResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RemoveTagsFromResourceMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyEndpointNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBProxyTargetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBShardGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterEndpointStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Removes metadata tags from an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS Resources in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To remove tags from a resource", + "documentation": "The following example removes tags from a resource.", + "input": { + "ResourceName": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance", + "TagKeys": [ + "Name", + "Environment" + ] + } + } + ] + } + }, + "com.amazonaws.rds#RemoveTagsFromResourceMessage": { + "type": "structure", + "members": { + "ResourceName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon RDS resource that the tags are removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide.

", + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.rds#KeyList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The tag key (name) of the tag to be removed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ReplicaMode": { + "type": "enum", + "members": { + "OPEN_READ_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "open-read-only" + } + }, + "MOUNTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mounted" + } + } + } + }, + "com.amazonaws.rds#ReservedDBInstance": { + "type": "structure", + "members": { + "ReservedDBInstanceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the reservation.

" + } + }, + "ReservedDBInstancesOfferingId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering identifier.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB instance class for the reserved DB instance.

" + } + }, + "StartTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The time the reservation started.

" + } + }, + "Duration": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The duration of the reservation in seconds.

" + } + }, + "FixedPrice": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The fixed price charged for this reserved DB instance.

" + } + }, + "UsagePrice": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The hourly price charged for this reserved DB instance.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The currency code for the reserved DB instance.

" + } + }, + "DBInstanceCount": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The number of reserved DB instances.

" + } + }, + "ProductDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the reserved DB instance.

" + } + }, + "OfferingType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering type of this reserved DB instance.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the reservation applies to Multi-AZ deployments.

" + } + }, + "State": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The state of the reserved DB instance.

" + } + }, + "RecurringCharges": { + "target": "com.amazonaws.rds#RecurringChargeList", + "traits": { + "smithy.api#documentation": "

The recurring price charged to run this reserved DB instance.

" + } + }, + "ReservedDBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the reserved DB instance.

" + } + }, + "LeaseId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the lease associated with the reserved DB instance.

Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeReservedDBInstances and PurchaseReservedDBInstancesOffering actions.

" + } + }, + "com.amazonaws.rds#ReservedDBInstanceAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReservedDBInstanceAlreadyExists", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

User already has a reservation with the given identifier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ReservedDBInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ReservedDBInstance", + "traits": { + "smithy.api#xmlName": "ReservedDBInstance" + } + } + }, + "com.amazonaws.rds#ReservedDBInstanceMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "ReservedDBInstances": { + "target": "com.amazonaws.rds#ReservedDBInstanceList", + "traits": { + "smithy.api#documentation": "

A list of reserved DB instances.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeReservedDBInstances action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ReservedDBInstanceNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReservedDBInstanceNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified reserved DB Instance not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ReservedDBInstanceQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReservedDBInstanceQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Request would exceed the user's DB Instance quota.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#ReservedDBInstancesOffering": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering identifier.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB instance class for the reserved DB instance.

" + } + }, + "Duration": { + "target": "com.amazonaws.rds#Integer", + "traits": { + "smithy.api#documentation": "

The duration of the offering in seconds.

" + } + }, + "FixedPrice": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The fixed price charged for this offering.

" + } + }, + "UsagePrice": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The hourly price charged for this offering.

" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The currency code for the reserved DB instance offering.

" + } + }, + "ProductDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine used by the offering.

" + } + }, + "OfferingType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The offering type.

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the offering applies to Multi-AZ deployments.

" + } + }, + "RecurringCharges": { + "target": "com.amazonaws.rds#RecurringChargeList", + "traits": { + "smithy.api#documentation": "

The recurring price charged to run this reserved DB instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the DescribeReservedDBInstancesOfferings action.

" + } + }, + "com.amazonaws.rds#ReservedDBInstancesOfferingList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ReservedDBInstancesOffering", + "traits": { + "smithy.api#xmlName": "ReservedDBInstancesOffering" + } + } + }, + "com.amazonaws.rds#ReservedDBInstancesOfferingMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "ReservedDBInstancesOfferings": { + "target": "com.amazonaws.rds#ReservedDBInstancesOfferingList", + "traits": { + "smithy.api#documentation": "

A list of reserved DB instance offerings.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeReservedDBInstancesOfferings action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ReservedDBInstancesOfferingNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ReservedDBInstancesOfferingNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

Specified offering does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ResetDBClusterParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ResetDBClusterParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBClusterParameterGroupNameMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB cluster parameter group, specify the DBClusterParameterGroupName and ResetAllParameters parameters.

When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. You must call RebootDBInstance for every DB instance in your DB cluster that you want the updated static parameter to apply to.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To reset all parameters to their default values", + "documentation": "The following example resets all parameter values in a customer-created DB cluster parameter group to their default values.", + "input": { + "DBClusterParameterGroupName": "mydbclpg", + "ResetAllParameters": true + }, + "output": { + "DBClusterParameterGroupName": "mydbclpg" + } + } + ] + } + }, + "com.amazonaws.rds#ResetDBClusterParameterGroupMessage": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster parameter group to reset.

", + "smithy.api#required": {} + } + }, + "ResetAllParameters": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to reset all parameters in the DB cluster parameter group to their default values. You can't use this parameter if there is a list of parameter names specified for the Parameters parameter.

" + } + }, + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#documentation": "

A list of parameter names in the DB cluster parameter group to reset to the default values. You can't use this parameter if the ResetAllParameters parameter is enabled.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ResetDBParameterGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ResetDBParameterGroupMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBParameterGroupNameMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBParameterGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request.

", + "smithy.api#examples": [ + { + "title": "To reset all parameters to their default values", + "documentation": "The following example resets all parameter values in a customer-created DB parameter group to their default values.", + "input": { + "DBParameterGroupName": "mypg", + "ResetAllParameters": true + }, + "output": { + "DBParameterGroupName": "mypg" + } + } + ] + } + }, + "com.amazonaws.rds#ResetDBParameterGroupMessage": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB parameter group.

Constraints:

  • Must match the name of an existing DBParameterGroup.

", + "smithy.api#required": {} + } + }, + "ResetAllParameters": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to reset all parameters in the DB parameter group to default values. By default, all parameters in the DB parameter group are reset to default values.

" + } + }, + "Parameters": { + "target": "com.amazonaws.rds#ParametersList", + "traits": { + "smithy.api#documentation": "

To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

MySQL

Valid Values (for Apply method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots.

MariaDB

Valid Values (for Apply method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots.

Oracle

Valid Values (for Apply method): pending-reboot

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ResourceNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified resource ID was not found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ResourcePendingMaintenanceActions": { + "type": "structure", + "members": { + "ResourceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN of the resource that has pending maintenance actions.

" + } + }, + "PendingMaintenanceActionDetails": { + "target": "com.amazonaws.rds#PendingMaintenanceActionDetails", + "traits": { + "smithy.api#documentation": "

A list that provides details about the pending maintenance actions for the resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the pending maintenance actions for a resource.

" + } + }, + "com.amazonaws.rds#RestoreDBClusterFromS3": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBClusterFromS3Message" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBClusterFromS3Result" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientStorageClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSubnetGroupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidS3BucketFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Amazon Aurora DB cluster from MySQL data stored in an Amazon S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and the data must be created using the Percona XtraBackup utility as described in Migrating Data from MySQL by Using an Amazon S3 Bucket in the Amazon Aurora User Guide.

This operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromS3 operation has completed and the DB cluster is available.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

This operation only applies to Aurora DB clusters. The source DB engine must be MySQL.

You can use the AssociatedRoles parameter to associate one or more Amazon Web Services Identity and Access Management (IAM) roles with the Aurora DB cluster when you restore it from Amazon S3.

", + "smithy.api#examples": [ + { + "title": "To restore an Amazon Aurora DB cluster from Amazon S3", + "documentation": "The following example restores an Amazon Aurora MySQL version 5.7-compatible DB cluster from a MySQL 5.7 DB backup file in Amazon S3.", + "input": { + "DBClusterIdentifier": "cluster-s3-restore", + "Engine": "aurora-mysql", + "MasterUsername": "admin", + "MasterUserPassword": "mypassword", + "SourceEngine": "mysql", + "SourceEngineVersion": "5.7.28", + "S3BucketName": "mybucket", + "S3Prefix": "test-backup", + "S3IngestionRoleArn": "arn:aws:iam::123456789012:role/service-role/TestBackup" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 1, + "DBClusterIdentifier": "cluster-s3-restore", + "DBClusterParameterGroup": "default.aurora-mysql5.7", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "cluster-s3-restore.cluster-co3xyzabc123.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "cluster-s3-restore.cluster-ro-co3xyzabc123.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-mysql", + "EngineVersion": "5.7.12", + "Port": 3306, + "MasterUsername": "admin", + "PreferredBackupWindow": "11:15-11:45", + "PreferredMaintenanceWindow": "thu:12:19-thu:12:49", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-SU5THYQQHOWCXZZDGXREXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:cluster-s3-restore", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-07-27T14:22:08.095Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#RestoreDBClusterFromS3Message": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

A list of Availability Zones (AZs) where instances in the restored DB cluster can be created.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups of the restored DB cluster are retained. You must specify a minimum value of 1.

Default: 1

Constraints:

  • Must be a value from 1 to 35

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value that indicates that the restored DB cluster should be associated with the specified CharacterSet.

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database name for the restored DB cluster.

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster to create from the source data in the Amazon S3 bucket. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "smithy.api#required": {} + } + }, + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, the default parameter group for the engine version is used.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with the restored DB cluster.

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A DB subnet group to associate with the restored DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mydbsubnetgroup

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the database engine to be used for this DB cluster.

Valid Values: aurora-mysql (for Aurora MySQL)

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to use.

To list all of the available engine versions for aurora-mysql (Aurora MySQL), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

Examples: 5.7.mysql_aurora.2.12.0, 8.0.mysql_aurora.3.04.0

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the instances in the restored DB cluster accept connections.

Default: 3306

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the master user for the restored DB cluster.

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Can't be a reserved word for the chosen database engine.

", + "smithy.api#required": {} + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the master database user. This password can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

Constraints:

  • Must contain from 8 to 41 characters.

  • Can't be specified if ManageMasterUserPassword is turned on.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value that indicates that the restored DB cluster should be associated with the specified option group.

Permanent options can't be removed from an option group. An option group can't be removed from a DB cluster once it is associated with a DB cluster.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window in the Amazon Aurora User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon Aurora User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

Constraints: Minimum 30-minute window.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the restored DB cluster is encrypted.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If the StorageEncrypted parameter is enabled, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide.

" + } + }, + "SourceEngine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the database engine that was backed up to create the files stored in the Amazon S3 bucket.

Valid Values: mysql

", + "smithy.api#required": {} + } + }, + "SourceEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The version of the database that the backup files were created from.

MySQL versions 5.7 and 8.0 are supported.

Example: 5.7.40, 8.0.28

", + "smithy.api#required": {} + } + }, + "S3BucketName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster.

", + "smithy.api#required": {} + } + }, + "S3Prefix": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The prefix for all of the file names that contain the data used to create the Amazon Aurora DB cluster. If you do not specify a SourceS3Prefix value, then the Amazon Aurora DB cluster is created by using all of the files in the Amazon S3 bucket.

" + } + }, + "S3IngestionRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf.

", + "smithy.api#required": {} + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Currently, Backtrack is only supported for Aurora MySQL DB clusters.

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

Aurora MySQL

Possible values are audit, error, general, instance, slowquery, and iam-db-auth-error.

Aurora PostgreSQL

Possible value are instance, postgresql, and iam-db-auth-error.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see Kerberos Authentication in the Amazon Aurora User Guide.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type to be associated with the DB cluster.

Valid Values: aurora, aurora-iopt1

Default: aurora

Valid for: Aurora DB clusters only

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB cluster.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfiguration" + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide and Password management with Amazon Web Services Secrets Manager in the Amazon Aurora User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB cluster.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB cluster.

Valid Values:

  • cluster-auto-backup - The DB cluster's automated backup.

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBClusterAssociatedRoles", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services Identity and Access Management (IAM) roles to associate with the DB cluster when it's restored from Amazon S3. Each role grants the DB cluster permission to access other Amazon Web Services on your behalf. For each role, specify a role ARN and, optionally, the feature name (such as s3Import, s3Export, or Lambda).

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBClusterFromS3Result": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreDBClusterFromSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBClusterFromSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBClusterFromSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InsufficientStorageClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidRestoreFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

You can use the EnableVPCNetworking and EnableInternetAccessGateway parameters together to restore an Aurora PostgreSQL cluster without VPC networking and with internet-based connectivity. These two parameters must always be specified together. Set EnableVPCNetworking to false to disable the VPC network interface (ENI) for the cluster. EnableInternetAccessGateway enables internet-based connectivity through an internet access gateway. IAM database authentication is required and must be enabled using EnableIAMDatabaseAuthentication. Once the cluster is restored, you need to modify the DB cluster to update MasterUserAuthenticationType to iam-db-auth.

You can use the AssociatedRoles parameter to associate one or more Amazon Web Services Identity and Access Management (IAM) roles with an Aurora DB cluster when you restore it from a snapshot.

This operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot operation has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To restore a DB cluster from a snapshot", + "documentation": "The following example restores an Aurora PostgreSQL DB cluster compatible with PostgreSQL version 10.7 from a DB cluster snapshot named test-instance-snapshot.", + "input": { + "DBClusterIdentifier": "newdbcluster", + "SnapshotIdentifier": "test-instance-snapshot", + "Engine": "aurora-postgresql", + "EngineVersion": "10.7" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "newdbcluster", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "newdbcluster.cluster-############.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "newdbcluster.cluster-ro-############.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "10.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/287364e4-33e3-4755-a3b0-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-5DSB5IFQDDUVAWOUWM1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:newdbcluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "ClusterCreateTime": "2020-06-05T15:06:58.634Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + }, + { + "title": "To restore a DB cluster from a snapshot without VPC networking", + "documentation": "The following example restores an Aurora DB cluster from a DB cluster snapshot named sample-cluster-snapshot without VPC networking and with internet-based connectivity enabled through an internet access gateway. The EnableVPCNetworking and EnableInternetAccessGateway parameters must always be specified together. IAM database authentication is required when both parameters are specified.", + "input": { + "DBClusterIdentifier": "restored-cluster", + "SnapshotIdentifier": "sample-cluster-snapshot", + "Engine": "aurora-postgresql", + "EnableVPCNetworking": false, + "EnableInternetAccessGateway": true, + "EnableIAMDatabaseAuthentication": true + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "restored-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "creating", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-5DSB5IFQDDUVAWOUWM1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:restored-cluster", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": true, + "ClusterCreateTime": "2020-06-05T15:06:58.634Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [] + } + } + }, + { + "title": "To restore a DB cluster from a snapshot with an associated IAM role", + "documentation": "The following example restores an Aurora PostgreSQL DB cluster from a snapshot and associates an IAM role for Amazon S3 import in a single call.", + "input": { + "DBClusterIdentifier": "restored-cluster", + "SnapshotIdentifier": "test-instance-snapshot", + "Engine": "aurora-postgresql", + "AssociatedRoles": [ + { + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3", + "FeatureName": "s3Import" + } + ] + }, + "output": { + "DBCluster": { + "DatabaseName": "", + "DBClusterIdentifier": "restored-cluster", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "creating", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-5DSB5IFQDDUVAWOUWM1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:restored-cluster", + "IAMDatabaseAuthenticationEnabled": true, + "ClusterCreateTime": "2024-06-05T15:06:58.634Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false, + "DomainMemberships": [], + "AssociatedRoles": [ + { + "RoleArn": "arn:aws:iam::123456789012:role/RDSLoadFromS3", + "FeatureName": "s3Import", + "Status": "ACTIVE" + } + ] + } + } + } + ] + } + }, + "com.amazonaws.rds#RestoreDBClusterFromSnapshotMessage": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.rds#AvailabilityZones", + "traits": { + "smithy.api#documentation": "

Provides the list of Availability Zones (AZs) where instances in the restored DB cluster can be created.

Valid for: Aurora DB clusters only

" + } + }, + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

Valid for: Aurora DB clusters and Multi-AZ DB clusters

", + "smithy.api#required": {} + } + }, + "SnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier for the DB snapshot or DB cluster snapshot to restore from.

You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.

Constraints:

  • Must match the identifier of an existing Snapshot.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

", + "smithy.api#required": {} + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The database engine to use for the new DB cluster.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Valid for: Aurora DB clusters and Multi-AZ DB clusters

", + "smithy.api#required": {} + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine to use for the new DB cluster. If you don't specify an engine version, the default version for the database engine in the Amazon Web Services Region is used.

To list all of the available engine versions for Aurora MySQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

See Database engine updates for Amazon Aurora MySQL in the Amazon Aurora User Guide.

Aurora PostgreSQL

See Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide.

MySQL

See Amazon RDS for MySQL in the Amazon RDS User Guide.

PostgreSQL

See Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the new DB cluster accepts connections.

Constraints: This value must be 1150-65535

Default: The same port as the original DB cluster.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB subnet group to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DB subnet group.

Example: mydbsubnetgroup

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DatabaseName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database name for the restored DB cluster.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group to use for the restored DB cluster.

DB clusters are associated with a default option group that can't be modified.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of VPC security groups that the new DB cluster will belong to.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

The tags to be assigned to the restored DB cluster.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

When you don't specify a value for the KmsKeyId parameter, then the following occurs:

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier isn't encrypted, then the restored DB cluster isn't encrypted.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide or IAM database authentication for MariaDB, MySQL, and PostgreSQL in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Currently, Backtrack is only supported for Aurora MySQL DB clusters.

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

Valid for: Aurora DB clusters only

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, slowquery, and iam-db-auth-error.

RDS for PostgreSQL

Possible values are postgresql, upgrade, and iam-db-auth-error.

Aurora MySQL

Possible values are audit, error, general, instance, slowquery, and iam-db-auth-error.

Aurora PostgreSQL

Possible value are instance, postgresql, and iam-db-auth-error.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

For more information, see CreateDBCluster.

Valid for: Aurora DB clusters only

" + } + }, + "ScalingConfiguration": { + "target": "com.amazonaws.rds#ScalingConfiguration", + "traits": { + "smithy.api#documentation": "

For DB clusters in serverless DB engine mode, the scaling properties of the DB cluster.

Valid for: Aurora DB clusters only

" + } + }, + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used.

Constraints:

  • If supplied, must match the name of an existing default DB cluster parameter group.

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

Valid for: Aurora DB clusters only

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to be used when making API calls to the Directory Service.

Valid for: Aurora DB clusters only

" + } + }, + "DBClusterInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type to be associated with the DB cluster.

When specified for a Multi-AZ DB cluster, a value for the Iops parameter is required.

Valid Values: aurora, aurora-iopt1 (Aurora DB clusters); io1 (Multi-AZ DB clusters)

Default: aurora (Aurora DB clusters); io1 (Multi-AZ DB clusters)

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether DBSubnetGroupName is specified.

If DBSubnetGroupName isn't specified, and PubliclyAccessible isn't specified, the following applies:

  • If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.

If DBSubnetGroupName is specified, and PubliclyAccessible isn't specified, the following applies:

  • If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB cluster.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfiguration" + }, + "RdsCustomClusterConfiguration": { + "target": "com.amazonaws.rds#RdsCustomClusterConfiguration", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, also set MonitoringInterval to a value other than 0.

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is arn:aws:iam:123456789012:role/emaccess.

If MonitoringInterval is set to a value other than 0, supply a MonitoringRoleArn value.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to turn on Performance Insights for the DB cluster.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS issues an error.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Specify a minimum value of 1.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Default: Uses existing setting

Constraints:

  • Must be a value from 1 to 35.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB cluster.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB cluster.

Valid Values:

  • cluster-auto-backup - The DB cluster's automated backup.

" + } + }, + "EnableVPCNetworking": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable VPC networking for the restored DB cluster. Set this parameter to false to create a cluster without the VPC network interface (ENI).

This parameter must be used together with EnableInternetAccessGateway. When both parameters are specified, IAM database authentication is required. You must also specify EnableIAMDatabaseAuthentication.

Valid for Cluster Type: Aurora PostgreSQL clusters

" + } + }, + "EnableInternetAccessGateway": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies that the restored DB cluster should use internet-based connectivity through an internet access gateway. This allows clients to connect to the cluster over the internet without requiring a VPC.

This parameter must be used together with EnableVPCNetworking set to false. When both parameters are specified, IAM database authentication is required. You must also specify EnableIAMDatabaseAuthentication.

Valid for Cluster Type: Aurora PostgreSQL clusters

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBClusterAssociatedRoles", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services Identity and Access Management (IAM) roles to associate with the DB cluster when it's restored from a snapshot. Each role grants the DB cluster permission to access other Amazon Web Services on your behalf. For each role, specify a role ARN and, optionally, the feature name (such as s3Import, s3Export, or Lambda).

Valid for Cluster Type: Aurora DB clusters only

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBClusterFromSnapshotResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreDBClusterToPointInTime": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBClusterToPointInTimeMessage" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBClusterToPointInTimeResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBClusterAutomatedBackupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterRoleQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InsufficientStorageClusterCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidRestoreFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group. Unless the RestoreType is set to copy-on-write, the restore may occur in a different Availability Zone (AZ) from the original DB cluster. The AZ where RDS restores the DB cluster depends on the AZs in the specified subnet group.

You can use the EnableVPCNetworking and EnableInternetAccessGateway parameters together to restore an Aurora PostgreSQL cluster without VPC networking and with internet-based connectivity. These two parameters must always be specified together. Set EnableVPCNetworking to false to disable the VPC network interface (ENI) for the cluster. EnableInternetAccessGateway enables internet-based connectivity through an internet access gateway. IAM database authentication is required and must be enabled using EnableIAMDatabaseAuthentication. Once the cluster is restored, you need to modify the DB cluster to update MasterUserAuthenticationType to iam-db-auth.

You can use the AssociatedRoles parameter to associate one or more Amazon Web Services Identity and Access Management (IAM) roles with an Aurora DB cluster when you restore it to a point in time.

For Aurora, this operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime operation has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To restore a DB cluster to a specified time", + "documentation": "The following example restores the DB cluster named database-4 to the latest possible time. Using copy-on-write as the restore type restores the new DB cluster as a clone of the source DB cluster.", + "input": { + "DBClusterIdentifier": "sample-cluster-clone", + "RestoreType": "copy-on-write", + "SourceDBClusterIdentifier": "database-4", + "UseLatestRestorableTime": true + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-west-2c", + "us-west-2a", + "us-west-2b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "sample-cluster-clone", + "DBClusterParameterGroup": "default.aurora-postgresql10", + "DBSubnetGroup": "default", + "Status": "creating", + "Endpoint": "sample-cluster-clone.cluster-############.us-west-2.rds.amazonaws.com", + "ReaderEndpoint": "sample-cluster-clone.cluster-ro-############.us-west-2.rds.amazonaws.com", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "10.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "09:33-10:03", + "PreferredMaintenanceWindow": "sun:12:22-sun:12:52", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [ + { + "VpcSecurityGroupId": "sg-########", + "Status": "active" + } + ], + "HostedZoneId": "Z1PVIF0EXAMPLE", + "StorageEncrypted": true, + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/287364e4-33e3-4755-a3b0-a1b2c3d4e5f6", + "DbClusterResourceId": "cluster-BIZ77GDSA2XBSTNPFW1EXAMPLE", + "DBClusterArn": "arn:aws:rds:us-west-2:123456789012:cluster:sample-cluster-clone", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": false, + "CloneGroupId": "8d19331a-099a-45a4-b4aa-11aa22bb33cc44dd", + "ClusterCreateTime": "2020-03-10T19:57:38.967Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false + } + } + }, + { + "title": "To restore an Aurora DB cluster to a point in time without VPC networking", + "documentation": "The following example restores an Aurora DB cluster to the latest possible time without VPC networking and with internet-based connectivity enabled through an internet access gateway. The EnableVPCNetworking and EnableInternetAccessGateway parameters must always be specified together. IAM database authentication is required when both parameters are specified.", + "input": { + "DBClusterIdentifier": "sample-cluster-restored", + "RestoreType": "copy-on-write", + "SourceDBClusterIdentifier": "sample-cluster", + "UseLatestRestorableTime": true, + "EnableVPCNetworking": false, + "EnableInternetAccessGateway": true, + "EnableIAMDatabaseAuthentication": true + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1c", + "us-east-1a", + "us-east-1b" + ], + "BackupRetentionPeriod": 7, + "DatabaseName": "", + "DBClusterIdentifier": "sample-cluster-restored", + "DBClusterParameterGroup": "default.aurora-postgresql17", + "Status": "creating", + "MultiAZ": false, + "Engine": "aurora-postgresql", + "EngineVersion": "17.7", + "Port": 5432, + "MasterUsername": "postgres", + "PreferredBackupWindow": "06:15-06:45", + "PreferredMaintenanceWindow": "sat:03:44-sat:04:14", + "ReadReplicaIdentifiers": [], + "DBClusterMembers": [], + "VpcSecurityGroups": [], + "StorageEncrypted": false, + "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", + "DBClusterArn": "arn:aws:rds:us-east-1:654654253058:cluster:sample-cluster-restored", + "AssociatedRoles": [], + "IAMDatabaseAuthenticationEnabled": true, + "ClusterCreateTime": "2026-01-15T22:14:02.000Z", + "EngineMode": "provisioned", + "DeletionProtection": false, + "HttpEndpointEnabled": false, + "CopyTagsToSnapshot": false, + "CrossAccountClone": false + } + } + } + ] + } + }, + "com.amazonaws.rds#RestoreDBClusterToPointInTimeMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the new DB cluster to be created.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Valid for: Aurora DB clusters and Multi-AZ DB clusters

", + "smithy.api#required": {} + } + }, + "RestoreType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "SourceDBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the source DB cluster from which to restore.

Constraints:

  • Must match the identifier of an existing DBCluster.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "RestoreToTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time to restore the DB cluster to.

Valid Values: Value must be a time in Universal Coordinated Time (UTC) format

Constraints:

  • Must be before the latest restorable time for the DB instance

  • Must be specified if UseLatestRestorableTime parameter isn't provided

  • Can't be specified if the UseLatestRestorableTime parameter is enabled

  • Can't be specified if the RestoreType parameter is copy-on-write

Example: 2015-03-07T23:45:00Z

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "UseLatestRestorableTime": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster isn't restored to the latest restorable backup time.

Constraints: Can't be specified if RestoreToTime parameter is provided.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the new DB cluster accepts connections.

Constraints: A value from 1150-65535.

Default: The default port for the engine.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB subnet group name to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mydbsubnetgroup

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group for the new DB cluster.

DB clusters are associated with a default option group that can't be modified.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of VPC security groups that the new DB cluster belongs to.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different from the KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key identified by the KmsKeyId parameter.

If you don't specify a value for the KmsKeyId parameter, then the following occurs:

  • If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.

  • If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted.

If DBClusterIdentifier refers to a DB cluster that isn't encrypted, then the restore request is rejected.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide or IAM database authentication for MariaDB, MySQL, and PostgreSQL in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "BacktrackWindow": { + "target": "com.amazonaws.rds#LongOptional", + "traits": { + "smithy.api#documentation": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

Valid for: Aurora MySQL DB clusters only

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, slowquery, and iam-db-auth-error.

RDS for PostgreSQL

Possible values are postgresql, upgrade, and iam-db-auth-error.

Aurora MySQL

Possible values are audit, error, general, instance, slowquery, and iam-db-auth-error.

Aurora PostgreSQL

Possible value are instance, postgresql, and iam-db-auth-error.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DBClusterParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the custom DB cluster parameter group to associate with this DB cluster.

If the DBClusterParameterGroupName parameter is omitted, the default DB cluster parameter group for the specified engine is used.

Constraints:

  • If supplied, must match the name of an existing DB cluster parameter group.

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see Kerberos Authentication in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to be used when making API calls to the Directory Service.

Valid for: Aurora DB clusters only

" + } + }, + "DBClusterInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB instance class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type to be associated with the DB cluster.

When specified for a Multi-AZ DB cluster, a value for the Iops parameter is required.

Valid Values: aurora, aurora-iopt1 (Aurora DB clusters); io1 (Multi-AZ DB clusters)

Default: aurora (Aurora DB clusters); io1 (Multi-AZ DB clusters)

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB cluster is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether DBSubnetGroupName is specified.

If DBSubnetGroupName isn't specified, and PubliclyAccessible isn't specified, the following applies:

  • If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.

If DBSubnetGroupName is specified, and PubliclyAccessible isn't specified, the following applies:

  • If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.

Valid for: Multi-AZ DB clusters only

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Multi-AZ DB clusters only

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB cluster.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } + }, + "SourceDbClusterResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the source DB cluster from which to restore.

" + } + }, + "ServerlessV2ScalingConfiguration": { + "target": "com.amazonaws.rds#ServerlessV2ScalingConfiguration" + }, + "ScalingConfiguration": { + "target": "com.amazonaws.rds#ScalingConfiguration", + "traits": { + "smithy.api#documentation": "

For DB clusters in serverless DB engine mode, the scaling properties of the DB cluster.

Valid for: Aurora DB clusters only

" + } + }, + "EngineMode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The engine mode of the new cluster. Specify provisioned or serverless, depending on the type of the cluster you are creating. You can create an Aurora Serverless v1 clone from a provisioned cluster, or a provisioned clone from an Aurora Serverless v1 cluster. To create a clone that is an Aurora Serverless v1 cluster, the original cluster must be an Aurora Serverless v1 cluster or an encrypted provisioned cluster. To create a full copy that is an Aurora Serverless v1 cluster, specify the engine mode serverless.

Valid for: Aurora DB clusters only

" + } + }, + "RdsCustomClusterConfiguration": { + "target": "com.amazonaws.rds#RdsCustomClusterConfiguration", + "traits": { + "smithy.api#documentation": "

Reserved for future use.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, also set MonitoringInterval to a value other than 0.

Valid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is arn:aws:iam:123456789012:role/emaccess.

If MonitoringInterval is set to a value other than 0, supply a MonitoringRoleArn value.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to turn on Performance Insights for the DB cluster.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you don't specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data.

Valid Values:

  • 7

  • month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), 341 (11 months * 31), 589 (19 months * 31)

  • 731

Default: 7 days

If you specify a retention period that isn't valid, such as 94, Amazon RDS issues an error.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Specify a minimum value of 1.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Default: Uses existing setting

Constraints:

  • Must be a value from 1 to 35.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see Backup window in the Amazon Aurora User Guide.

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB cluster.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB cluster.

Valid Values:

  • cluster-auto-backup - The DB cluster's automated backup.

" + } + }, + "EnableVPCNetworking": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable VPC networking for the restored DB cluster. Set this parameter to false to create a cluster without the VPC network interface (ENI).

This parameter must be used together with EnableInternetAccessGateway. When both parameters are specified, IAM database authentication is required. You must also specify EnableIAMDatabaseAuthentication.

Valid for Cluster Type: Aurora PostgreSQL clusters

" + } + }, + "EnableInternetAccessGateway": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies that the restored DB cluster should use internet-based connectivity through an internet access gateway. This allows clients to connect to the cluster over the internet without requiring a VPC.

This parameter must be used together with EnableVPCNetworking set to false. When both parameters are specified, IAM database authentication is required. You must also specify EnableIAMDatabaseAuthentication.

Valid for Cluster Type: Aurora PostgreSQL clusters

" + } + }, + "AssociatedRoles": { + "target": "com.amazonaws.rds#DBClusterAssociatedRoles", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services Identity and Access Management (IAM) roles to associate with the DB cluster when it's restored to a point in time. Each role grants the DB cluster permission to access other Amazon Web Services on your behalf. For each role, specify a role ARN and, optionally, the feature name (such as s3Import, s3Export, or Lambda).

Valid for Cluster Type: Aurora DB clusters only

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBClusterToPointInTimeResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotMessage" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSnapshotStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidRestoreFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most of the source's original configuration, including the default security group and DB parameter group. By default, the new DB instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment.

If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot operation. RDS doesn't allow two DB instances with the same name. After you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot operation. The result is that you replace the original DB instance with the DB instance created from the snapshot.

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

To restore from a DB snapshot with an unsupported engine version, you must first upgrade the engine version of the snapshot. For more information about upgrading a RDS for MySQL DB snapshot engine version, see Upgrading a MySQL DB snapshot engine version. For more information about upgrading a RDS for PostgreSQL DB snapshot engine version, Upgrading a PostgreSQL DB snapshot engine version.

This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use RestoreDBClusterFromSnapshot.

", + "smithy.api#examples": [ + { + "title": "To restore a DB instance from a DB snapshot", + "documentation": "The following example creates a new DB instance named db7-new-instance with the db.t3.small DB instance class from the specified DB snapshot. The source DB instance from which the snapshot was taken uses a deprecated DB instance class, so you can't upgrade it.", + "input": { + "DBInstanceIdentifier": "db7-new-instance", + "DBSnapshotIdentifier": "db7-test-snapshot", + "DBInstanceClass": "db.t3.small" + }, + "output": { + "DBInstance": { + "DBInstanceIdentifier": "db7-new-instance", + "DBInstanceClass": "db.t3.small", + "Engine": "mysql", + "DBInstanceStatus": "creating", + "PreferredMaintenanceWindow": "mon:07:37-mon:08:07", + "PendingModifiedValues": {}, + "MultiAZ": false, + "EngineVersion": "5.7.22", + "AutoMinorVersionUpgrade": true, + "ReadReplicaDBInstanceIdentifiers": [], + "LicenseModel": "general-public-license", + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:db7-new-instance", + "IAMDatabaseAuthenticationEnabled": false, + "PerformanceInsightsEnabled": false, + "DeletionProtection": false, + "AssociatedRoles": [] + } + } + } + ] + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 numbers, letters, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: my-snapshot-id

", + "smithy.api#required": {} + } + }, + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the DB snapshot to restore from.

Constraints:

  • Must match the identifier of an existing DB snapshot.

  • Can't be specified when DBClusterSnapshotIdentifier is specified.

  • Must be specified when DBClusterSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of the Amazon RDS DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: The same DBInstanceClass as the original DB instance.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the database accepts connections.

Default: The same port as the original DB instance

Constraints: Value must be 1150-65535

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) where the DB instance will be created.

Default: A random, system-chosen Availability Zone.

Constraint: You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

Example: us-east-1a

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB subnet group to use for the new instance.

Constraints:

  • If supplied, must match the name of an existing DB subnet group.

Example: mydbsubnetgroup

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is a Multi-AZ deployment.

This setting doesn't apply to RDS Custom.

Constraint: You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB instance is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB instance's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB instance doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to automatically apply minor version upgrades to the DB instance during the maintenance window.

If you restore an RDS Custom DB instance, you must disable this parameter.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

License model information for the restored DB instance.

License models for RDS for Db2 require additional configuration. The bring your own license (BYOL) model requires a custom parameter group and an Amazon Web Services License Manager self-managed license. The Db2 license through Amazon Web Services Marketplace model requires an Amazon Web Services Marketplace subscription. For more information, see Amazon RDS for Db2 licensing options in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

Valid Values:

  • RDS for Db2 - bring-your-own-license | marketplace-license

  • RDS for MariaDB - general-public-license

  • RDS for Microsoft SQL Server - license-included | bring-your-own-media

  • RDS for MySQL - general-public-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for PostgreSQL - postgresql-license

Default: Same as the source.

" + } + }, + "DBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database for the restored DB instance.

This parameter only applies to RDS for Oracle and RDS for SQL Server DB instances. It doesn't apply to the other engines or to RDS Custom DB instances.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine to use for the new instance.

This setting doesn't apply to RDS Custom.

Default: The same as source

Constraint: Must be compatible with the engine of the source. For example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot.

Valid Values:

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter isn't specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.

The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be an integer greater than 1000.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance after it is associated with a DB instance.

This setting doesn't apply to RDS Custom.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type to be associated with the DB instance.

Valid Values: gp2 | gp3 | io1 | io2 | standard

If you specify io1, io2, or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp3

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to RDS Custom.

" + } + }, + "TdeCredentialPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the given ARN from the key store in order to access the device.

This setting doesn't apply to RDS Custom.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with this DB instance.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to restore the DB instance in. The domain/ must be created prior to this operation. Currently, you can create only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + } + }, + "DomainFqdn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of an Active Directory domain.

Constraints:

  • Can't be longer than 64 characters.

Example: mymanagedADtest.mymanagedAD.mydomain

" + } + }, + "DomainOu": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for your DB instance to join.

Constraints:

  • Must be in the distinguished name format.

  • Can't be longer than 64 characters.

Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain

" + } + }, + "DomainAuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

Constraints:

  • Can't be longer than 64 characters.

Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456

" + } + }, + "DomainDnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

Constraints:

  • Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list.

Example: 123.124.125.126,234.235.236.237

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the restored DB instance to snapshots of the DB instance.

In most cases, tags aren't copied by default. However, when you restore a DB instance from a DB snapshot, RDS checks whether you specify new tags. If yes, the new tags are added to the restored DB instance. If there are no new tags, RDS looks for the tags from the source DB instance for the DB snapshot, and then adds those tags to the restored DB instance.

For more information, see Copying tags to DB instance snapshots in the Amazon RDS User Guide.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.

For more information about IAM database authentication, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs for the restored DB instance to export to CloudWatch Logs. The values in the list depend on the DB engine. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom.

" + } + }, + "UseDefaultProcessorFeatures": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance class of the DB instance uses its default processor features.

This setting doesn't apply to RDS Custom.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to associate with this DB instance.

If you don't specify a value for DBParameterGroupName, then RDS uses the default DBParameterGroup for the specified DB engine.

This setting doesn't apply to RDS Custom.

Constraints:

  • If supplied, must match the name of an existing DB parameter group.

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

" + } + }, + "EnableCustomerOwnedIp": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network.

This setting doesn't apply to RDS Custom.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies where automated backups and manual snapshots are stored for the restored DB instance.

Possible values are local (Dedicated Local Zone), outposts (Amazon Web Services Outposts), and region (Amazon Web Services Region). The default is region.

For more information, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "CustomIamInstanceProfile": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:

  • The profile must exist in your account.

  • The profile must have an IAM role that Amazon EC2 has permissions to assume.

  • The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom.

For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide.

This setting is required for RDS Custom.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

This setting isn't valid for RDS for SQL Server.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" + } + }, + "DBClusterSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier for the Multi-AZ DB cluster snapshot to restore from.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

Constraints:

  • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

  • Can't be specified when DBSnapshotIdentifier is specified.

  • Must be specified when DBSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

  • Can't be the identifier of an Aurora DB cluster snapshot.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance.

This setting doesn't apply to Amazon Aurora DB instances. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35.

  • Can't be set to 0 if the DB instance is a source to read replicas.

  • Can't be set to 0 for an RDS Custom for Oracle DB instance.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see Backup window in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora DB instances. The daily time range for creating automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to associate with this DB instance. You can specify the identifier, which has the prefix dbcr-, or the reservation name. When you specify this parameter, the DB instance uses reserved capacity from the specified reservation.

If you specify AvailabilityZone, Amazon RDS places the DB instance in that Availability Zone, and the reservation must cover it.

Constraints:

  • The reservation must reserve capacity for the DB instance class and the database engine of the DB instance.

  • If the reservation reserves capacity for a specific license model, the license model of the DB instance must match it.

  • The reservation must be in the active state, and it must not be past its end date.

  • If you specify AvailabilityZone, it must be one of the Availability Zones of the reservation.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones. If the reservation covers more than two Availability Zones, Amazon RDS chooses the two that the DB instance uses.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB instance.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB instance into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB instance to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB instance into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB instance past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide.

This setting applies only to RDS for MySQL and RDS for PostgreSQL. For Amazon Aurora DB instances, the engine lifecycle support is managed by the DB cluster.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to create for the DB instance. You can create up to three additional storage volumes using the names rdsdbdata2, rdsdbdata3, and rdsdbdata4. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager in the restored DB instance.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Applies to RDS for Oracle only.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromS3": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBInstanceFromS3Message" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBInstanceFromS3Result" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidS3BucketFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Amazon Relational Database Service (Amazon RDS) supports importing MySQL databases by using backup files. You can create a backup of your on-premises database, store it on Amazon Simple Storage Service (Amazon S3), and then restore the backup file onto a new Amazon RDS DB instance running MySQL. For more information, see Restoring a backup into an Amazon RDS for MySQL DB instance in the Amazon RDS User Guide.

This operation doesn't apply to RDS Custom.

" + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromS3Message": { + "type": "structure", + "members": { + "DBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database to create when the DB instance is created. Follow the naming rules specified in CreateDBInstance.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "smithy.api#required": {} + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

This setting isn't valid for RDS for SQL Server.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Importing from Amazon S3 isn't supported on the db.t2.micro DB instance class.

", + "smithy.api#required": {} + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the database engine to be used for this instance.

Valid Values: mysql

", + "smithy.api#required": {} + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name for the master user.

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Can't be a reserved word for the chosen database engine.

" + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the master user.

Constraints:

  • Can't be specified if ManageMasterUserPassword is turned on.

  • Can include any printable ASCII character except \"/\", \"\"\", or \"@\". For RDS for Oracle, can't include the \"&\" (ampersand) or the \"'\" (single quotes) character.

Length Constraints:

  • RDS for Db2 - Must contain from 8 to 128 characters.

  • RDS for MariaDB - Must contain from 8 to 41 characters.

  • RDS for Microsoft SQL Server - Must contain from 8 to 128 characters.

  • RDS for MySQL - Must contain from 8 to 41 characters.

  • RDS for Oracle - Must contain from 8 to 30 characters.

  • RDS for PostgreSQL - Must contain from 8 to 128 characters.

" + } + }, + "DBSecurityGroups": { + "target": "com.amazonaws.rds#DBSecurityGroupNameList", + "traits": { + "smithy.api#documentation": "

A list of DB security groups to associate with this DB instance.

Default: The default DB security group for the database engine.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of VPC security groups to associate with this DB instance.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone that the DB instance is created in. For information about Amazon Web Services Regions and Availability Zones, see Regions and Availability Zones in the Amazon RDS User Guide.

Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.

Example: us-east-1d

Constraint: The AvailabilityZone parameter can't be specified if the DB instance is a Multi-AZ deployment. The specified Availability Zone must be in the same Amazon Web Services Region as the current endpoint.

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A DB subnet group to associate with this DB instance.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mydbsubnetgroup

" + } + }, + "PreferredMaintenanceWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see Amazon RDS Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred backup window.

  • Must be at least 30 minutes.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to associate with this DB instance.

If you do not specify a value for DBParameterGroupName, then the default DBParameterGroup for the specified DB engine is used.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. For more information, see CreateDBInstance.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The time range each day during which automated backups are created if automated backups are enabled. For more information, see Backup window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the database accepts connections.

Type: Integer

Valid Values: 1150-65535

Default: 3306

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is a Multi-AZ deployment. If the DB instance is a Multi-AZ deployment, you can't set the AvailabilityZone parameter.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the database engine to use. Choose the latest minor version of your database engine. For information about engine versions, see CreateDBInstance, or call DescribeDBEngineVersions.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to automatically apply minor engine upgrades to the DB instance during the maintenance window. By default, minor engine upgrades are not applied automatically.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model for this DB instance. Use general-public-license.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group to associate with this DB instance. If this argument is omitted, the default option group for the specified engine is used.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB instance is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB instance's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB instance doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

A list of tags to associate with this DB instance. For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

" + } + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

Specifies the storage type to be associated with the DB instance.

Valid Values: gp2 | gp3 | io1 | io2 | standard

If you specify io1, io2, or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise gp2

" + } + }, + "StorageEncrypted": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the new DB instance is encrypted or not.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for an encrypted DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If the StorageEncrypted parameter is enabled, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.

" + } + }, + "MonitoringInterval": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

Default: 0

" + } + }, + "MonitoringRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see Setting Up and Enabling Enhanced Monitoring in the Amazon RDS User Guide.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information about IAM database authentication, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

" + } + }, + "SourceEngine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the engine of your source database.

Valid Values: mysql

", + "smithy.api#required": {} + } + }, + "SourceEngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The version of the database that the backup files were created from.

MySQL versions 5.6 and 5.7 are supported.

Example: 5.6.40

", + "smithy.api#required": {} + } + }, + "S3BucketName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of your Amazon S3 bucket that contains your database backup file.

", + "smithy.api#required": {} + } + }, + "S3Prefix": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The prefix of your Amazon S3 bucket.

" + } + }, + "S3IngestionRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An Amazon Web Services Identity and Access Management (IAM) role with a trust policy and a permissions policy that allows Amazon RDS to access your Amazon S3 bucket. For information about this role, see Creating an IAM role manually in the Amazon RDS User Guide.

", + "smithy.api#required": {} + } + }, + "DatabaseInsightsMode": { + "target": "com.amazonaws.rds#DatabaseInsightsMode", + "traits": { + "smithy.api#documentation": "

Specifies the mode of Database Insights to enable for the DB instance.

Aurora DB instances inherit this value from the DB cluster, so you can't change this value.

" + } + }, + "EnablePerformanceInsights": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

" + } + }, + "PerformanceInsightsKMSKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "PerformanceInsightsRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the restored DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

" + } + }, + "UseDefaultProcessorFeatures": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance class of the DB instance uses its default processor features.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

Valid Values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Can't manage the master user password with Amazon Web Services Secrets Manager if MasterUserPassword is specified.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to associate with this DB instance. You can specify the identifier, which has the prefix dbcr-, or the reservation name. When you specify this parameter, the DB instance uses reserved capacity from the specified reservation.

If you specify AvailabilityZone, Amazon RDS places the DB instance in that Availability Zone, and the reservation must cover it.

Constraints:

  • The reservation must reserve capacity for the DB instance class and the database engine of the DB instance.

  • If the reservation reserves capacity for a specific license model, the license model of the DB instance must match it.

  • The reservation must be in the active state, and it must not be past its end date.

  • If you specify AvailabilityZone, it must be one of the Availability Zones of the reservation.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones. If the reservation covers more than two Availability Zones, Amazon RDS chooses the two that the DB instance uses.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB instance.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB instance into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB instance to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB instance into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB instance past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support Amazon RDS in the Amazon RDS User Guide.

This setting applies only to RDS for MySQL and RDS for PostgreSQL. For Amazon Aurora DB instances, the engine lifecycle support is managed by the DB cluster.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to modify or delete for the DB instance. You can modify or delete up to three additional storage volumes using the names rdsdbdata2, rdsdbdata3, and rdsdbdata4. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceFromS3Result": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceToPointInTime": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RestoreDBInstanceToPointInTimeMessage" + }, + "output": { + "target": "com.amazonaws.rds#RestoreDBInstanceToPointInTimeResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" + }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBParameterGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DomainNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InstanceQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidRestoreFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#NetworkTypeNotSupported" + }, + { + "target": "com.amazonaws.rds#OptionGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#PointInTimeRestoreNotEnabledFault" + }, + { + "target": "com.amazonaws.rds#ProvisionedIopsNotAvailableInAZFault" + }, + { + "target": "com.amazonaws.rds#StorageQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Restores a DB instance to an arbitrary point in time. You can restore to any point in time before the time identified by the LatestRestorableTime property. You can restore to a point up to the number of days specified by the BackupRetentionPeriod property.

The target database is created with most of the original configuration, but in a system-selected Availability Zone, with the default security group, the default subnet group, and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored deployment and not a single-AZ deployment.

This operation doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use RestoreDBClusterToPointInTime.

", + "smithy.api#examples": [ + { + "title": "To restore a DB instance to a point in time", + "documentation": "The following example restores test-instance to a new DB instance named restored-test-instance, as of the specified time.", + "input": { + "SourceDBInstanceIdentifier": "test-instance", + "TargetDBInstanceIdentifier": "restored-test-instance", + "RestoreTime": "2018-07-30T23:45:00.000Z" + }, + "output": { + "DBInstance": { + "PubliclyAccessible": true, + "MasterUsername": "mymasteruser", + "MonitoringInterval": 0, + "LicenseModel": "general-public-license", + "VpcSecurityGroups": [ + { + "Status": "active", + "VpcSecurityGroupId": "sg-e5e5b0d2" + } + ], + "CopyTagsToSnapshot": false, + "OptionGroupMemberships": [ + { + "Status": "in-sync", + "OptionGroupName": "default:mysql-5-6" + } + ], + "PendingModifiedValues": {}, + "Engine": "mysql", + "MultiAZ": false, + "DBSecurityGroups": [], + "DBParameterGroups": [ + { + "DBParameterGroupName": "default.mysql5.6", + "ParameterApplyStatus": "in-sync" + } + ], + "AutoMinorVersionUpgrade": true, + "PreferredBackupWindow": "12:58-13:28", + "DBSubnetGroup": { + "Subnets": [ + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-77e8db03", + "SubnetAvailabilityZone": { + "Name": "us-west-2a" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-c39989a1", + "SubnetAvailabilityZone": { + "Name": "us-west-2b" + } + }, + { + "SubnetStatus": "Active", + "SubnetIdentifier": "subnet-4b267b0d", + "SubnetAvailabilityZone": { + "Name": "us-west-2c" + } + } + ], + "DBSubnetGroupName": "default", + "VpcId": "vpc-c1c5b3a3", + "DBSubnetGroupDescription": "default", + "SubnetGroupStatus": "Complete" + }, + "ReadReplicaDBInstanceIdentifiers": [], + "AllocatedStorage": 200, + "DBInstanceArn": "arn:aws:rds:us-west-2:123456789012:db:restored-test-instance", + "BackupRetentionPeriod": 7, + "DBName": "sample", + "PreferredMaintenanceWindow": "tue:10:16-tue:10:46", + "DBInstanceStatus": "available", + "EngineVersion": "5.6.27", + "AvailabilityZone": "us-west-2b", + "DomainMemberships": [], + "StorageType": "gp2", + "DbiResourceId": "db-VNZUCCBTEDC4WR7THXNJO72HVQ", + "CACertificateIdentifier": "rds-ca-2015", + "StorageEncrypted": false, + "DBInstanceClass": "db.t2.small", + "DbInstancePort": 0, + "DBInstanceIdentifier": "restored-test-instance" + } + } + } + ] + } + }, + "com.amazonaws.rds#RestoreDBInstanceToPointInTimeMessage": { + "type": "structure", + "members": { + "SourceDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the source DB instance from which to restore.

Constraints:

  • Must match the identifier of an existing DB instance.

" + } + }, + "TargetDBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the new DB instance to create.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

", + "smithy.api#required": {} + } + }, + "RestoreTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The date and time to restore from.

Constraints:

  • Must be a time in Universal Coordinated Time (UTC) format.

  • Must be before the latest restorable time for the DB instance.

  • Can't be specified if the UseLatestRestorableTime parameter is enabled.

Example: 2009-09-07T23:45:00Z

" + } + }, + "UseLatestRestorableTime": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.

Constraints:

  • Can't be specified if the RestoreTime parameter is provided.

" + } + }, + "DBInstanceClass": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The compute and memory capacity of the Amazon RDS DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: The same DB instance class as the original DB instance.

" + } + }, + "Port": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The port number on which the database accepts connections.

Default: The same port as the original DB instance.

Constraints:

  • The value must be 1150-65535.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone (AZ) where the DB instance will be created.

Default: A random, system-chosen Availability Zone.

Constraints:

  • You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

Example: us-east-1a

" + } + }, + "DBSubnetGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The DB subnet group name to use for the new instance.

Constraints:

  • If supplied, must match the name of an existing DB subnet group.

Example: mydbsubnetgroup

" + } + }, + "MultiAZ": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Secifies whether the DB instance is a Multi-AZ deployment.

This setting doesn't apply to RDS Custom.

Constraints:

  • You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

" + } + }, + "PubliclyAccessible": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

" + } + }, + "AutoMinorVersionUpgrade": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether minor version upgrades are applied automatically to the DB instance during the maintenance window.

This setting doesn't apply to RDS Custom.

For more information about automatic minor version upgrades, see Automatically upgrading the minor engine version.

" + } + }, + "LicenseModel": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The license model information for the restored DB instance.

License models for RDS for Db2 require additional configuration. The bring your own license (BYOL) model requires a custom parameter group and an Amazon Web Services License Manager self-managed license. The Db2 license through Amazon Web Services Marketplace model requires an Amazon Web Services Marketplace subscription. For more information, see Amazon RDS for Db2 licensing options in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.

Valid Values:

  • RDS for Db2 - bring-your-own-license | marketplace-license

  • RDS for MariaDB - general-public-license

  • RDS for Microsoft SQL Server - license-included | bring-your-own-media

  • RDS for MySQL - general-public-license

  • RDS for Oracle - bring-your-own-license | license-included

  • RDS for PostgreSQL - postgresql-license

Default: Same as the source.

" + } + }, + "DBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database name for the restored DB instance.

This parameter doesn't apply to the following DB instances:

  • RDS Custom

  • RDS for Db2

  • RDS for MariaDB

  • RDS for MySQL

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database engine to use for the new instance.

This setting doesn't apply to RDS Custom.

Valid Values:

  • db2-ae

  • db2-ce

  • db2-se

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

Default: The same as source

Constraints:

  • Must be compatible with the engine of the source.

" + } + }, + "Iops": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB instance.

This setting doesn't apply to SQL Server.

Constraints:

  • Must be an integer greater than 1000.

" + } + }, + "StorageThroughput": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" + } + }, + "OptionGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the option group to use for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance after it is associated with a DB instance

This setting doesn't apply to RDS Custom.

" + } + }, + "CopyTagsToSnapshot": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to copy all tags from the restored DB instance to snapshots of the DB instance. By default, tags are not copied.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + }, + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The storage type to associate with the DB instance.

Valid Values: gp2 | gp3 | io1 | io2 | standard

Default: io1, if the Iops parameter is specified. Otherwise, gp3.

Constraints:

  • If you specify io1, io2, or gp3, you must also include a value for the Iops parameter.

" + } + }, + "TdeCredentialArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to RDS Custom.

" + } + }, + "TdeCredentialPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The password for the given ARN from the key store in order to access the device.

This setting doesn't apply to RDS Custom.

" + } + }, + "VpcSecurityGroupIds": { + "target": "com.amazonaws.rds#VpcSecurityGroupIdList", + "traits": { + "smithy.api#documentation": "

A list of EC2 VPC security groups to associate with this DB instance.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

" + } + }, + "Domain": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory directory ID to restore the DB instance in. Create the domain before running this command. Currently, you can create only the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain.

This setting doesn't apply to RDS Custom.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

" + } + }, + "DomainIAMRoleName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the IAM role to use when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom DB instances.

" + } + }, + "DomainFqdn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The fully qualified domain name (FQDN) of an Active Directory domain.

Constraints:

  • Can't be longer than 64 characters.

Example: mymanagedADtest.mymanagedAD.mydomain

" + } + }, + "DomainOu": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Active Directory organizational unit for your DB instance to join.

Constraints:

  • Must be in the distinguished name format.

  • Can't be longer than 64 characters.

Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain

" + } + }, + "DomainAuthSecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

Constraints:

  • Can't be longer than 64 characters.

Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456

" + } + }, + "DomainDnsIps": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

Constraints:

  • Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list.

Example: 123.124.125.126,234.235.236.237

" + } + }, + "EnableIAMDatabaseAuthentication": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

This setting doesn't apply to RDS Custom.

For more information about IAM database authentication, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

" + } + }, + "EnableCloudwatchLogsExports": { + "target": "com.amazonaws.rds#LogTypeList", + "traits": { + "smithy.api#documentation": "

The list of logs that the restored DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + } + }, + "ProcessorFeatures": { + "target": "com.amazonaws.rds#ProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom.

" + } + }, + "UseDefaultProcessorFeatures": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance class of the DB instance uses its default processor features.

This setting doesn't apply to RDS Custom.

" + } + }, + "DBParameterGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the DB parameter group to associate with this DB instance.

If you do not specify a value for DBParameterGroupName, then the default DBParameterGroup for the specified DB engine is used.

This setting doesn't apply to RDS Custom.

Constraints:

  • If supplied, must match the name of an existing DB parameter group.

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance.

" + } + }, + "SourceDbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The resource ID of the source DB instance from which to restore.

" + } + }, + "MaxAllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + } + }, + "EnableCustomerOwnedIp": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance.

A CoIP provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network.

This setting doesn't apply to RDS Custom.

For more information about RDS on Outposts, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

For more information about CoIPs, see Customer-owned IP addresses in the Amazon Web Services Outposts User Guide.

" + } + }, + "NetworkType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The network type of the DB instance.

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

Valid Values:

  • IPV4

  • DUAL

" + } + }, + "SourceDBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

This setting doesn't apply to RDS Custom.

" + } + }, + "BackupTarget": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The location for storing automated backups and manual snapshots for the restored DB instance.

Valid Values:

  • local (Dedicated Local Zone)

  • outposts (Amazon Web Services Outposts)

  • region (Amazon Web Services Region)

Default: region

For more information, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "CustomIamInstanceProfile": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:

  • The profile must exist in your account.

  • The profile must have an IAM role that Amazon EC2 has permissions to assume.

  • The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom.

For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide.

This setting is required for RDS Custom.

" + } + }, + "AllocatedStorage": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

This setting isn't valid for RDS for SQL Server.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance.

This setting doesn't apply to Amazon Aurora DB instances. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35.

  • Can't be set to 0 if the DB instance is a source to read replicas.

  • Can't be set to 0 for an RDS Custom for Oracle DB instance.

" + } + }, + "PreferredBackupWindow": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see Backup window in the Amazon RDS User Guide.

This setting doesn't apply to Amazon Aurora DB instances. The daily time range for creating automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation to associate with this DB instance. You can specify the identifier, which has the prefix dbcr-, or the reservation name. When you specify this parameter, the DB instance uses reserved capacity from the specified reservation.

If you specify AvailabilityZone, Amazon RDS places the DB instance in that Availability Zone, and the reservation must cover it.

Constraints:

  • The reservation must reserve capacity for the DB instance class and the database engine of the DB instance.

  • If the reservation reserves capacity for a specific license model, the license model of the DB instance must match it.

  • The reservation must be in the active state, and it must not be past its end date.

  • If you specify AvailabilityZone, it must be one of the Availability Zones of the reservation.

  • For a Multi-AZ DB instance, the reservation must cover two or more Availability Zones. A Multi-AZ DB instance uses one unit of reserved capacity in each of two Availability Zones. If the reservation covers more than two Availability Zones, Amazon RDS chooses the two that the DB instance uses.

  • The reservation must have available capacity in each Availability Zone that the DB instance uses.

  • The DB subnet group must be in a VPC with default tenancy.

  • The DB subnet group must cover each Availability Zone that the DB instance uses.

" + } + }, + "DedicatedLogVolume": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" + } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

This setting doesn't apply to RDS Custom DB instances.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

" + } + }, + "EngineLifecycleSupport": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The lifecycle type for this DB instance.

By default, this value is set to open-source-rds-extended-support, which enrolls your DB instance into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, RDS automatically upgrades your restored DB instance to a higher engine version, if the major engine version is past its end of standard support date.

You can use this setting to enroll your DB instance into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB instance past the end of standard support for that engine version. For more information, see Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide.

This setting applies only to RDS for MySQL and RDS for PostgreSQL. For Amazon Aurora DB instances, the engine lifecycle support is managed by the DB cluster.

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled

Default: open-source-rds-extended-support

" + } + }, + "AdditionalStorageVolumes": { + "target": "com.amazonaws.rds#AdditionalStorageVolumesList", + "traits": { + "smithy.api#documentation": "

A list of additional storage volumes to restore to the DB instance. You can restore up to three additional storage volumes using the names rdsdbdata2, rdsdbdata3, and rdsdbdata4. Additional storage volumes are supported for RDS for Oracle and RDS for SQL Server DB instances only.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.rds#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

Tags to assign to resources associated with the DB instance.

Valid Values:

  • auto-backup - The DB instance's automated backup.

" + } + }, + "ManageMasterUserPassword": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether to manage the master user password with Amazon Web Services Secrets Manager in the restored DB instance.

For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.

Constraints:

  • Applies to RDS for Oracle only.

" + } + }, + "MasterUserSecretKmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier to encrypt a secret that is automatically generated and managed in Amazon Web Services Secrets Manager.

This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.

If you don't specify MasterUserSecretKmsKeyId, then the aws/secretsmanager KMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use the aws/secretsmanager KMS key to encrypt the secret, and you must use a customer managed KMS key.

There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RestoreDBInstanceToPointInTimeResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#RestoreWindow": { + "type": "structure", + "members": { + "EarliestTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The earliest time you can restore an instance to.

" + } + }, + "LatestTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The latest time you can restore an instance to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Earliest and latest time an instance can be restored to:

" + } + }, + "com.amazonaws.rds#RevokeDBSecurityGroupIngress": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#RevokeDBSecurityGroupIngressMessage" + }, + "output": { + "target": "com.amazonaws.rds#RevokeDBSecurityGroupIngressResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSecurityGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBSecurityGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC security groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To revoke ingress for a DB security group", + "documentation": "This example revokes ingress for the specified CIDR block associated with the specified DB security group.", + "input": { + "DBSecurityGroupName": "mydbsecuritygroup", + "CIDRIP": "203.0.113.5/32" + }, + "output": { + "DBSecurityGroup": {} + } + } + ] + } + }, + "com.amazonaws.rds#RevokeDBSecurityGroupIngressMessage": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the DB security group to revoke ingress from.

", + "smithy.api#required": {} + } + }, + "CIDRIP": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId can't be provided.

" + } + }, + "EC2SecurityGroupName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + }, + "EC2SecurityGroupId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The id of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + }, + "EC2SecurityGroupOwnerId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The Amazon Web Services access key ID isn't an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#RevokeDBSecurityGroupIngressResult": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "target": "com.amazonaws.rds#DBSecurityGroup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#SNSInvalidTopicFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SNSInvalidTopic", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

SNS has responded that there is a problem with the SNS topic specified.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SNSNoAuthorizationFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SNSNoAuthorization", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You do not have permission to publish to the SNS topic ARN.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SNSTopicArnNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SNSTopicArnNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The SNS topic ARN does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#ScalarReferenceDetails": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.rds#Double", + "traits": { + "smithy.api#documentation": "

The value of a scalar reference.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metric reference details when the reference is a scalar.

" + } + }, + "com.amazonaws.rds#ScalingConfiguration": { + "type": "structure", + "members": { + "MinCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The minimum capacity for an Aurora DB cluster in serverless DB engine mode.

For Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.

For Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.

The minimum capacity must be less than or equal to the maximum capacity.

" + } + }, + "MaxCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum capacity for an Aurora DB cluster in serverless DB engine mode.

For Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.

For Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.

The maximum capacity must be greater than or equal to the minimum capacity.

" + } + }, + "AutoPause": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).

If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.

" + } + }, + "SecondsUntilAutoPause": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The time, in seconds, before an Aurora DB cluster in serverless mode is paused.

Specify a value between 300 and 86,400 seconds.

" + } + }, + "TimeoutAction": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.

ForceApplyCapacityChange sets the capacity to the specified value as soon as possible.

RollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.

If you specify ForceApplyCapacityChange, connections that prevent Aurora Serverless v1 from finding a scaling point might be dropped.

For more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.

" + } + }, + "SecondsBeforeTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300.

Specify a value between 60 and 600 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the scaling configuration of an Aurora Serverless v1 DB cluster.

For more information, see Using Amazon Aurora Serverless v1 in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#ScalingConfigurationInfo": { + "type": "structure", + "members": { + "MinCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The minimum capacity for an Aurora DB cluster in serverless DB engine mode.

" + } + }, + "MaxCapacity": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The maximum capacity for an Aurora DB cluster in serverless DB engine mode.

" + } + }, + "AutoPause": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether automatic pause is allowed for the Aurora DB cluster in serverless DB engine mode.

When the value is set to false for an Aurora Serverless v1 DB cluster, the DB cluster automatically resumes.

" + } + }, + "SecondsUntilAutoPause": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The remaining amount of time, in seconds, before the Aurora DB cluster in serverless mode is paused. A DB cluster can be paused only when it's idle (it has no connections).

" + } + }, + "TimeoutAction": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The action that occurs when Aurora times out while attempting to change the capacity of an Aurora Serverless v1 cluster. The value is either ForceApplyCapacityChange or RollbackCapacityChange.

ForceApplyCapacityChange, the default, sets the capacity to the specified value as soon as possible.

RollbackCapacityChange ignores the capacity change if a scaling point isn't found in the timeout period.

" + } + }, + "SecondsBeforeTimeout": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds before scaling times out. What happens when an attempted scaling action times out is determined by the TimeoutAction setting.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The scaling configuration for an Aurora DB cluster in serverless DB engine mode.

For more information, see Using Amazon Aurora Serverless v1 in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#SensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.rds#ServerlessV2FeaturesSupport": { + "type": "structure", + "members": { + "MinCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

If the minimum capacity is 0 ACUs, the engine version or platform version supports the automatic pause/resume feature of Aurora Serverless v2.

" + } + }, + "MaxCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

Specifies the upper Aurora Serverless v2 capacity limit for a particular engine version or platform version. Depending on the engine version, the maximum capacity for an Aurora Serverless v2 cluster might be 256 or 128.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies any Aurora Serverless v2 properties or limits that differ between Aurora engine versions and platform versions. You can test the values of this attribute when deciding which Aurora version to use in a new or upgraded DB cluster. You can also retrieve the version of an existing DB cluster and check whether that version supports certain Aurora Serverless v2 features before you attempt to use those features.

" + } + }, + "com.amazonaws.rds#ServerlessV2PlatformVersionInfo": { + "type": "structure", + "members": { + "ServerlessV2PlatformVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the serverless platform.

" + } + }, + "ServerlessV2PlatformVersionDescription": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The description of the serverless platform.

" + } + }, + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database engine.

" + } + }, + "ServerlessV2FeaturesSupport": { + "target": "com.amazonaws.rds#ServerlessV2FeaturesSupport", + "traits": { + "smithy.api#documentation": "

Specifies any Aurora Serverless v2 properties or limits that differ between Aurora Serverless v2 platform versions. You can retrieve the platform version of an existing DB cluster and check whether that version supports certain Aurora Serverless v2 features before you attempt to use those features.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the serverless platform. Valid statuses are the following:

  • enabled - The platform version is in use.

  • disabled - The platform version is not in use.

" + } + }, + "IsDefault": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether this platform version is the default version for the engine. The default platform version is the version used for new DB clusters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the action DescribeServerlessV2PlatformVersions.

" + } + }, + "com.amazonaws.rds#ServerlessV2PlatformVersionList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ServerlessV2PlatformVersionInfo" + } + }, + "com.amazonaws.rds#ServerlessV2PlatformVersionsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "ServerlessV2PlatformVersions": { + "target": "com.amazonaws.rds#ServerlessV2PlatformVersionList", + "traits": { + "smithy.api#documentation": "

A list of ServerlessV2PlatformVersionInfo elements.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeServerlessV2PlatformVersions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#ServerlessV2ScalingConfiguration": { + "type": "structure", + "members": { + "MinCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.

" + } + }, + "MaxCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 32, 32.5, 33, and so on. The largest value that you can use is 256 for recent Aurora versions, or 128 for older versions. You can check the attributes of your engine version or platform version to determine the specific maximum capacity supported.

" + } + }, + "SecondsUntilAutoPause": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it.

Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the scaling configuration of an Aurora Serverless v2 DB cluster.

For more information, see Using Amazon Aurora Serverless v2 in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#ServerlessV2ScalingConfigurationInfo": { + "type": "structure", + "members": { + "MinCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.

" + } + }, + "MaxCapacity": { + "target": "com.amazonaws.rds#DoubleOptional", + "traits": { + "smithy.api#documentation": "

The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 32, 32.5, 33, and so on. The largest value that you can use is 256 for recent Aurora versions, or 128 for older versions. You can check the attributes of your engine version or platform version to determine the specific maximum capacity supported.

" + } + }, + "SecondsUntilAutoPause": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. This property is only shown when the minimum capacity for the cluster is set to 0 ACUs. Changing the minimum capacity to a nonzero value removes this property. If you later change the minimum capacity back to 0 ACUs, this property is reset to its default value unless you specify it again.

This value ranges between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The scaling configuration for an Aurora Serverless v2 DB cluster.

For more information, see Using Amazon Aurora Serverless v2 in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#SharedSnapshotQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SharedSnapshotQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You have exceeded the maximum number of accounts that you can share a manual DB snapshot with.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SnapshotQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SnapshotQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed number of DB snapshots.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:(cluster|db):[a-z][a-z0-9]*(-[a-z0-9]+)*$" + } + }, + "com.amazonaws.rds#SourceClusterNotSupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SourceClusterNotSupportedFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The source DB cluster isn't supported for a blue/green deployment.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SourceDatabaseNotSupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SourceDatabaseNotSupportedFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The source DB instance isn't supported for a blue/green deployment.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SourceIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "SourceId" + } + } + }, + "com.amazonaws.rds#SourceNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SourceNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The requested source could not be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#SourceRegion": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the source Amazon Web Services Region.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The endpoint for the source Amazon Web Services Region endpoint.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the source Amazon Web Services Region.

" + } + }, + "SupportsDBInstanceAutomatedBackupsReplication": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the source Amazon Web Services Region supports replicating automated backups to the current Amazon Web Services Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains an Amazon Web Services Region name as the result of a successful call to the DescribeSourceRegions action.

" + } + }, + "com.amazonaws.rds#SourceRegionList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#SourceRegion", + "traits": { + "smithy.api#xmlName": "SourceRegion" + } + } + }, + "com.amazonaws.rds#SourceRegionMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "SourceRegions": { + "target": "com.amazonaws.rds#SourceRegionList", + "traits": { + "smithy.api#documentation": "

A list of SourceRegion instances that contains each source Amazon Web Services Region that the current Amazon Web Services Region can get a read replica or a DB snapshot from.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the result of a successful invocation of the DescribeSourceRegions action.

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#SourceType": { + "type": "enum", + "members": { + "db_instance": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-instance" + } + }, + "db_parameter_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-parameter-group" + } + }, + "db_security_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-security-group" + } + }, + "db_snapshot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-snapshot" + } + }, + "db_cluster": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-cluster" + } + }, + "db_cluster_snapshot": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-cluster-snapshot" + } + }, + "custom_engine_version": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom-engine-version" + } + }, + "db_proxy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-proxy" + } + }, + "blue_green_deployment": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blue-green-deployment" + } + }, + "db_shard_group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "db-shard-group" + } + }, + "zero_etl": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero-etl" + } + } + } + }, + "com.amazonaws.rds#StartActivityStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartActivityStreamRequest" + }, + "output": { + "target": "com.amazonaws.rds#StartActivityStreamResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Starts a database activity stream to monitor activity on the database. For more information, see Monitoring Amazon Aurora with Database Activity Streams in the Amazon Aurora User Guide or Monitoring Amazon RDS with Database Activity Streams in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To start a database activity stream", + "documentation": "The following example starts an asynchronous activity stream to monitor an Aurora cluster named my-pg-cluster.", + "input": { + "ResourceArn": "arn:aws:rds:us-east-1:1234567890123:cluster:my-pg-cluster", + "Mode": "async", + "KmsKeyId": "arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1", + "ApplyImmediately": true + }, + "output": { + "KmsKeyId": "arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1", + "KinesisStreamName": "aws-rds-das-cluster-0ABCDEFGHI1JKLM2NOPQ3R4S", + "Status": "starting", + "Mode": "async", + "ApplyImmediately": true + } + } + ] + } + }, + "com.amazonaws.rds#StartActivityStreamRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB cluster, for example, arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

", + "smithy.api#required": {} + } + }, + "Mode": { + "target": "com.amazonaws.rds#ActivityStreamMode", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously.

", + "smithy.api#required": {} + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

", + "smithy.api#required": {} + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether or not the database activity stream is to start as soon as possible, regardless of the maintenance window for the database.

" + } + }, + "EngineNativeAuditFieldsIncluded": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the database activity stream includes engine-native audit fields. This option applies to an Oracle or Microsoft SQL Server DB instance. By default, no engine-native audit fields are included.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StartActivityStreamResponse": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of messages in the database activity stream.

" + } + }, + "KinesisStreamName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream to be used for the database activity stream.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#ActivityStreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the database activity stream.

" + } + }, + "Mode": { + "target": "com.amazonaws.rds#ActivityStreamMode", + "traits": { + "smithy.api#documentation": "

The mode of the database activity stream.

" + } + }, + "EngineNativeAuditFieldsIncluded": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether engine-native audit fields are included in the database activity stream.

" + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether or not the database activity stream will start as soon as possible, regardless of the maintenance window for the database.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StartDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#StartDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBShardGroupStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts an Amazon Aurora DB cluster that was stopped using the Amazon Web Services console, the stop-db-cluster CLI command, or the StopDBCluster operation.

For more information, see Stopping and Starting an Aurora Cluster in the Amazon Aurora User Guide.

This operation only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To start a DB cluster", + "documentation": "The following example starts a DB cluster and its DB instances.", + "input": { + "DBClusterIdentifier": "mydbcluster" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1e", + "us-east-1b" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydb", + "DBClusterIdentifier": "mydbcluster" + } + } + } + ] + } + }, + "com.amazonaws.rds#StartDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier of the Amazon Aurora DB cluster to be started. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StartDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StartDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#StartDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#AuthorizationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBCapacityReservationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupDoesNotCoverEnoughAZs" + }, + { + "target": "com.amazonaws.rds#DBSubnetGroupNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InsufficientDBInstanceCapacityFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidSubnet" + }, + { + "target": "com.amazonaws.rds#InvalidVPCNetworkStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#VpcEncryptionControlViolationException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts an Amazon RDS DB instance that was stopped using the Amazon Web Services console, the stop-db-instance CLI command, or the StopDBInstance operation.

For more information, see Starting an Amazon RDS DB instance That Was Previously Stopped in the Amazon RDS User Guide.

This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora PostgreSQL. For Aurora DB clusters, use StartDBCluster instead.

", + "smithy.api#examples": [ + { + "title": "To start a DB instance", + "documentation": "The following example starts the specified DB instance.", + "input": { + "DBInstanceIdentifier": "test-instance" + }, + "output": { + "DBInstance": { + "DBInstanceStatus": "starting" + } + } + } + ] + } + }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationMessage" + }, + "output": { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceAutomatedBackupStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + } + ], + "traits": { + "smithy.api#documentation": "

Enables replication of automated backups to a different Amazon Web Services Region.

This command doesn't apply to RDS Custom.

For more information, see Replicating Automated Backups to Another Amazon Web Services Region in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To enable cross-Region automated backups", + "documentation": "The following example replicates automated backups from a DB instance in the US East (N. Virginia) Region. The backup retention period is 14 days.", + "input": { + "SourceDBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "BackupRetentionPeriod": 14 + }, + "output": { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": {}, + "AllocatedStorage": 20, + "Status": "pending", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 14, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + } + ] + } + }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationMessage": { + "type": "structure", + "members": { + "SourceDBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase.

", + "smithy.api#required": {} + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

The retention period for the replicated automated backups.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination Amazon Web Services Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE.

" + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

In an Amazon Web Services GovCloud (US) Region, an URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication operation to call in the Amazon Web Services Region of the source DB instance. The presigned URL must be a valid request for the StartDBInstanceAutomatedBackupsReplication API operation that can run in the Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

A list of tags to associate with the replicated automated backups.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationResult": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackup": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StartDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied instance identifier.

", + "smithy.api#required": {} + } + }, + "DBCapacityReservationIdentifier": { + "target": "com.amazonaws.rds#DBCapacityReservationIdentifier", + "traits": { + "smithy.api#documentation": "

The identifier or the name of the DB capacity reservation for the DB instance to use after it starts. You can specify the identifier, which has the prefix dbcr-, or the reservation name.

Specify this parameter when the DB instance stopped using a reservation, or when you want the DB instance to use a different reservation.

If you omit this parameter, and the DB instance kept a DB capacity reservation when it stopped, Amazon RDS starts the DB instance in that reservation.

If that reservation is deleted, ended, or cancelled, the DB instance still starts. Amazon RDS starts the DB instance outside the reservation, on unreserved capacity, and it charges on-demand prices for the DB instance.

If that reservation has no available capacity in the Availability Zone of the DB instance, the request fails. Amazon RDS doesn't start the DB instance, and it doesn't wait for capacity in that Availability Zone. Specify a reservation that has available capacity in that Availability Zone, or retry the request after the reservation has available capacity.

Constraints:

  • The reservation must be in the active state.

  • The reservation must reserve capacity for the DB instance class and the engine of the DB instance.

  • The reservation must cover the Availability Zone of the DB instance, and it must have available capacity in that Availability Zone.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StartDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StartExportTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartExportTaskMessage" + }, + "output": { + "target": "com.amazonaws.rds#ExportTask" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#ExportTaskAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#IamRoleMissingPermissionsFault" + }, + { + "target": "com.amazonaws.rds#IamRoleNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidExportOnlyFault" + }, + { + "target": "com.amazonaws.rds#InvalidExportSourceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidS3BucketFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

Starts an export of DB snapshot or DB cluster data to Amazon S3. The provided IAM role must have access to the S3 bucket.

You can't export snapshot data from RDS Custom DB instances. For more information, see Supported Regions and DB engines for exporting snapshots to S3 in Amazon RDS.

For more information on exporting DB snapshot data, see Exporting DB snapshot data to Amazon S3 in the Amazon RDS User Guide or Exporting DB cluster snapshot data to Amazon S3 in the Amazon Aurora User Guide.

For more information on exporting DB cluster data, see Exporting DB cluster data to Amazon S3 in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To export a snapshot to Amazon S3", + "documentation": "The following example exports a DB snapshot named db5-snapshot-test to the Amazon S3 bucket named mybucket.", + "input": { + "ExportTaskIdentifier": "my-s3-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test", + "S3BucketName": "mybucket", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff" + }, + "output": { + "ExportTaskIdentifier": "my-s3-export", + "SourceArn": "arn:aws:rds:us-west-2:123456789012:snapshot:db5-snapshot-test", + "SnapshotTime": "2020-03-27T20:48:42.023Z", + "S3Bucket": "mybucket", + "IamRoleArn": "arn:aws:iam::123456789012:role/service-role/ExportRole", + "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd0000-7fca-4128-82f2-aabbccddeeff", + "Status": "STARTING", + "PercentProgress": 0, + "TotalExtractedDataInGB": 0 + } + } + ] + } + }, + "com.amazonaws.rds#StartExportTaskMessage": { + "type": "structure", + "members": { + "ExportTaskIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the export task. This ID isn't an identifier for the Amazon S3 bucket where the data is to be exported.

", + "smithy.api#required": {} + } + }, + "SourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the snapshot or cluster to export to Amazon S3.

", + "smithy.api#required": {} + } + }, + "S3BucketName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the Amazon S3 bucket to export the snapshot or cluster data to.

", + "smithy.api#required": {} + } + }, + "IamRoleArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The name of the IAM role to use for writing to the Amazon S3 bucket when exporting a snapshot or cluster.

In the IAM policy attached to your IAM role, include the following required actions to allow the transfer of files from Amazon RDS or Amazon Aurora to an S3 bucket:

  • s3:PutObject*

  • s3:GetObject*

  • s3:ListBucket

  • s3:DeleteObject*

  • s3:GetBucketLocation

In the policy, include the resources to identify the S3 bucket and objects in the bucket. The following list of resources shows the Amazon Resource Name (ARN) format for accessing S3:

  • arn:aws:s3:::your-s3-bucket

  • arn:aws:s3:::your-s3-bucket/*

", + "smithy.api#required": {} + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the Amazon Web Services KMS key to use to encrypt the data exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of this operation must be authorized to run the following operations. These can be set in the Amazon Web Services KMS key policy:

  • kms:CreateGrant

  • kms:DescribeKey

", + "smithy.api#required": {} + } + }, + "S3Prefix": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket prefix to use as the file name and path of the exported data.

" + } + }, + "ExportOnly": { + "target": "com.amazonaws.rds#StringList", + "traits": { + "smithy.api#documentation": "

The data to be exported from the snapshot or cluster. If this parameter isn't provided, all of the data is exported.

Valid Values:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot or cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot or cluster. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StopActivityStream": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StopActivityStreamRequest" + }, + "output": { + "target": "com.amazonaws.rds#StopActivityStreamResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#ResourceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Stops a database activity stream that was started using the Amazon Web Services console, the start-activity-stream CLI command, or the StartActivityStream operation.

For more information, see Monitoring Amazon Aurora with Database Activity Streams in the Amazon Aurora User Guide or Monitoring Amazon RDS with Database Activity Streams in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To stop a database activity stream", + "documentation": "The following example stops an activity stream in an Aurora cluster named my-pg-cluster.", + "input": { + "ResourceArn": "arn:aws:rds:us-east-1:1234567890123:cluster:my-pg-cluster", + "ApplyImmediately": true + }, + "output": { + "KmsKeyId": "arn:aws:kms:us-east-1:1234567890123:key/a12c345d-6ef7-890g-h123-456i789jk0l1", + "KinesisStreamName": "aws-rds-das-cluster-0ABCDEFGHI1JKLM2NOPQ3R4S", + "Status": "stopping" + } + } + ] + } + }, + "com.amazonaws.rds#StopActivityStreamRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB cluster for the database activity stream. For example, arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

", + "smithy.api#required": {} + } + }, + "ApplyImmediately": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether or not the database activity stream is to stop as soon as possible, regardless of the maintenance window for the database.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StopActivityStreamResponse": { + "type": "structure", + "members": { + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

" + } + }, + "KinesisStreamName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon Kinesis data stream used for the database activity stream.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#ActivityStreamStatus", + "traits": { + "smithy.api#documentation": "

The status of the database activity stream.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StopDBCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StopDBClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#StopDBClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBShardGroupStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Stops an Amazon Aurora DB cluster. When you stop a DB cluster, Aurora retains the DB cluster's metadata, including its endpoints and DB parameter groups. Aurora also retains the transaction logs so you can do a point-in-time restore if necessary.

For more information, see Stopping and Starting an Aurora Cluster in the Amazon Aurora User Guide.

This operation only applies to Aurora DB clusters.

", + "smithy.api#examples": [ + { + "title": "To stop a DB cluster", + "documentation": "The following example stops a DB cluster and its DB instances.", + "input": { + "DBClusterIdentifier": "mydbcluster" + }, + "output": { + "DBCluster": { + "AllocatedStorage": 1, + "AvailabilityZones": [ + "us-east-1a", + "us-east-1e", + "us-east-1b" + ], + "BackupRetentionPeriod": 1, + "DatabaseName": "mydb", + "DBClusterIdentifier": "mydbcluster" + } + } + } + ] + } + }, + "com.amazonaws.rds#StopDBClusterMessage": { + "type": "structure", + "members": { + "DBClusterIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB cluster identifier of the Amazon Aurora DB cluster to be stopped. This parameter is stored as a lowercase string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StopDBClusterResult": { + "type": "structure", + "members": { + "DBCluster": { + "target": "com.amazonaws.rds#DBCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StopDBInstance": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StopDBInstanceMessage" + }, + "output": { + "target": "com.amazonaws.rds#StopDBInstanceResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBSnapshotAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBCapacityReservationStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#SnapshotQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

Stops an Amazon RDS DB instance temporarily. When you stop a DB instance, Amazon RDS retains the DB instance's metadata, including its endpoint, DB parameter group, and option group membership. Amazon RDS also retains the transaction logs so you can do a point-in-time restore if necessary. The instance restarts automatically after 7 days.

For more information, see Stopping an Amazon RDS DB Instance Temporarily in the Amazon RDS User Guide.

This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora PostgreSQL. For Aurora clusters, use StopDBCluster instead.

", + "smithy.api#examples": [ + { + "title": "To stop a DB instance", + "documentation": "The following example stops the specified DB instance.", + "input": { + "DBInstanceIdentifier": "test-instance" + }, + "output": { + "DBInstance": { + "DBInstanceStatus": "stopping" + } + } + } + ] + } + }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationMessage" + }, + "output": { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Stops automated backup replication for a DB instance.

This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora PostgreSQL.

For more information, see Replicating Automated Backups to Another Amazon Web Services Region in the Amazon RDS User Guide.

", + "smithy.api#examples": [ + { + "title": "To stop replicating automated backups", + "documentation": "The following example ends replication of automated backups. Replicated backups are retained according to the set backup retention period.", + "input": { + "SourceDBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db" + }, + "output": { + "DBInstanceAutomatedBackup": { + "DBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:new-orcl-db", + "DbiResourceId": "db-JKIB2GFQ5RV7REPLZA4EXAMPLE", + "Region": "us-east-1", + "DBInstanceIdentifier": "new-orcl-db", + "RestoreWindow": { + "EarliestTime": "2020-12-04T23:13:21.030Z", + "LatestTime": "2020-12-07T19:59:57Z" + }, + "AllocatedStorage": 20, + "Status": "replicating", + "Port": 1521, + "InstanceCreateTime": "2020-12-04T15:28:31Z", + "MasterUsername": "admin", + "Engine": "oracle-se2", + "EngineVersion": "12.1.0.2.v21", + "LicenseModel": "bring-your-own-license", + "OptionGroupName": "default:oracle-se2-12-1", + "Encrypted": false, + "StorageType": "gp2", + "IAMDatabaseAuthenticationEnabled": false, + "BackupRetentionPeriod": 7, + "DBInstanceAutomatedBackupsArn": "arn:aws:rds:us-west-2:123456789012:auto-backup:ab-jkib2gfq5rv7replzadausbrktni2bn4example" + } + } + } + ] + } + }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationMessage": { + "type": "structure", + "members": { + "SourceDBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automate backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationResult": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackup": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StopDBInstanceMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The user-supplied instance identifier.

", + "smithy.api#required": {} + } + }, + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The user-supplied instance identifier of the DB Snapshot created immediately before the DB instance is stopped.

" + } + }, + "DetachFromDBCapacityReservation": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Specifies whether the DB instance stops using its DB capacity reservation when the DB instance stops. When you specify true, the DB instance belongs to no reservation after it stops, and a later start launches it outside the reservation.

By default, a stopped DB instance keeps its DB capacity reservation, and a later start returns the DB instance to the same reservation.

Every stop releases the unit of reserved capacity that the DB instance holds, for either value of this parameter. Another DB instance can then use that capacity. This parameter controls the reservation that the DB instance belongs to, and it does not control the release of the capacity.

If the DB instance uses no DB capacity reservation, this parameter has no effect.

Amazon RDS holds no capacity for a stopped DB instance. When the reservation has no available capacity in the Availability Zone of the DB instance, a later start waits for capacity in that Availability Zone. When the DB instance belongs to no reservation, a later start can fail because the Amazon Web Services Region has insufficient capacity for the DB instance class.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#StopDBInstanceResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#StorageEncryptionType": { + "type": "enum", + "members": { + "UNENCRYPTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "CMK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sse-kms" + } + }, + "SSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sse-rds" + } + } + } + }, + "com.amazonaws.rds#StorageQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StorageQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request would result in the user exceeding the allowed amount of storage available across all DB instances.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#StorageTypeNotAvailableFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StorageTypeNotAvailableFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The aurora-iopt1 storage type isn't available, because you modified the DB cluster to use this storage type less than one month ago.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#StorageTypeNotSupportedFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "StorageTypeNotSupported", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified StorageType can't be associated with the DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#String": { + "type": "string" + }, + "com.amazonaws.rds#String255": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.rds#StringList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String" + } + }, + "com.amazonaws.rds#Subnet": { + "type": "structure", + "members": { + "SubnetIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The identifier of the subnet.

" + } + }, + "SubnetAvailabilityZone": { + "target": "com.amazonaws.rds#AvailabilityZone" + }, + "SubnetOutpost": { + "target": "com.amazonaws.rds#Outpost", + "traits": { + "smithy.api#documentation": "

If the subnet is associated with an Outpost, this value specifies the Outpost.

For more information about RDS on Outposts, see Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide.

" + } + }, + "SubnetStatus": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the subnet.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element for the DescribeDBSubnetGroups operation.

" + } + }, + "com.amazonaws.rds#SubnetAlreadyInUse": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SubnetAlreadyInUse", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The DB subnet is already in use in the Availability Zone.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SubnetIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "SubnetIdentifier" + } + } + }, + "com.amazonaws.rds#SubnetList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Subnet", + "traits": { + "smithy.api#xmlName": "Subnet" + } + } + }, + "com.amazonaws.rds#SubscriptionAlreadyExistFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SubscriptionAlreadyExist", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The supplied subscription name already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#SubscriptionCategoryNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SubscriptionCategoryNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The supplied category does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#SubscriptionNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "SubscriptionNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The subscription name does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#SupportedCharacterSetsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#CharacterSet", + "traits": { + "smithy.api#xmlName": "CharacterSet" + } + } + }, + "com.amazonaws.rds#SupportedEngineLifecycle": { + "type": "structure", + "members": { + "LifecycleSupportName": { + "target": "com.amazonaws.rds#LifecycleSupportName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The type of lifecycle support that the engine version is in.

This parameter returns the following values:

  • open-source-rds-standard-support - Indicates RDS standard support or Aurora standard support.

  • open-source-rds-extended-support - Indicates Amazon RDS Extended Support.

For Amazon RDS for MySQL, Amazon RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL, this parameter returns both open-source-rds-standard-support and open-source-rds-extended-support.

For Amazon RDS for MariaDB, this parameter only returns the value open-source-rds-standard-support.

For information about Amazon RDS Extended Support, see Amazon RDS Extended Support with Amazon RDS in the Amazon RDS User Guide and Amazon RDS Extended Support with Amazon Aurora in the Amazon Aurora User Guide.

", + "smithy.api#required": {} + } + }, + "LifecycleSupportStartDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The start date for the type of support returned by LifecycleSupportName.

", + "smithy.api#required": {} + } + }, + "LifecycleSupportEndDate": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The end date for the type of support returned by LifecycleSupportName.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element in the operation DescribeDBMajorEngineVersions.

You can use the information that this data type returns to plan for upgrades.

This data type only returns information for the open source engines Amazon RDS for MariaDB, Amazon RDS for MySQL, Amazon RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL.

" + } + }, + "com.amazonaws.rds#SupportedEngineLifecycleList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#SupportedEngineLifecycle", + "traits": { + "smithy.api#xmlName": "SupportedEngineLifecycle" + } + } + }, + "com.amazonaws.rds#SupportedTimezonesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Timezone", + "traits": { + "smithy.api#xmlName": "Timezone" + } + } + }, + "com.amazonaws.rds#SwitchoverBlueGreenDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#SwitchoverBlueGreenDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.rds#SwitchoverBlueGreenDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#BlueGreenDeploymentNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Switches over a blue/green deployment.

Before you switch over, production traffic is routed to the databases in the blue environment. After you switch over, production traffic is routed to the databases in the green environment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

", + "smithy.api#examples": [ + { + "title": "To switch a blue/green deployment for an RDS DB instance", + "documentation": "The following example promotes the specified green environment as the new production environment.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "SwitchoverTimeout": 300 + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-v53303651eexfake", + "BlueGreenDeploymentName": "bgd-cli-test-instance", + "Source": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "Target": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-blhi1e", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-green-blhi1e", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-1-green-k5fv7u", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-2-green-ggsh8m", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance-replica-3-green-o2vwm0", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CONFIGURE_BACKUPS", + "Status": "COMPLETED" + }, + { + "Name": "CREATING_TOPOLOGY_OF_SOURCE", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_IN_PROGRESS", + "CreateTime": "2022-02-25T22:33:22.225Z" + } + } + }, + { + "title": "To promote a blue/green deployment for an Aurora MySQL DB cluster", + "documentation": "The following example promotes the specified green environment as the new production environment.", + "input": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "SwitchoverTimeout": 300 + }, + "output": { + "BlueGreenDeployment": { + "BlueGreenDeploymentIdentifier": "bgd-wi89nwzglccsfake", + "BlueGreenDeploymentName": "my-blue-green-deployment", + "Source": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "Target": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3ud8z6", + "SwitchoverDetails": [ + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-mysql-cluster-green-3ud8z6", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-1-green-bvxc73", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-2-green-7wc4ie", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:db:my-aurora-mysql-cluster-3-green-p4xxkz", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-excluded-member-endpoint-green-np1ikl", + "Status": "AVAILABLE" + }, + { + "SourceMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint", + "TargetMember": "arn:aws:rds:us-east-1:123456789012:cluster-endpoint:my-reader-endpoint-green-miszlf", + "Status": "AVAILABLE" + } + ], + "Tasks": [ + { + "Name": "CREATING_READ_REPLICA_OF_SOURCE", + "Status": "COMPLETED" + }, + { + "Name": "DB_ENGINE_VERSION_UPGRADE", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_DB_INSTANCES_FOR_CLUSTER", + "Status": "COMPLETED" + }, + { + "Name": "CREATE_CUSTOM_ENDPOINTS", + "Status": "COMPLETED" + } + ], + "Status": "SWITCHOVER_IN_PROGRESS", + "CreateTime": "2022-02-25T22:38:49.522Z" + } + } + } + ] + } + }, + "com.amazonaws.rds#SwitchoverBlueGreenDeploymentRequest": { + "type": "structure", + "members": { + "BlueGreenDeploymentIdentifier": { + "target": "com.amazonaws.rds#BlueGreenDeploymentIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The resource ID of the blue/green deployment.

Constraints:

  • Must match an existing blue/green deployment resource ID.

", + "smithy.api#required": {} + } + }, + "SwitchoverTimeout": { + "target": "com.amazonaws.rds#SwitchoverTimeout", + "traits": { + "smithy.api#documentation": "

The amount of time, in seconds, for the switchover to complete.

Default: 300

If the switchover takes longer than the specified duration, then any changes are rolled back, and no changes are made to the environments.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#SwitchoverBlueGreenDeploymentResponse": { + "type": "structure", + "members": { + "BlueGreenDeployment": { + "target": "com.amazonaws.rds#BlueGreenDeployment" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#SwitchoverDetail": { + "type": "structure", + "members": { + "SourceMember": { + "target": "com.amazonaws.rds#DatabaseArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a resource in the blue environment.

" + } + }, + "TargetMember": { + "target": "com.amazonaws.rds#DatabaseArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a resource in the green environment.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#SwitchoverDetailStatus", + "traits": { + "smithy.api#documentation": "

The switchover status of a resource in a blue/green deployment.

Values:

  • PROVISIONING - The resource is being prepared to switch over.

  • AVAILABLE - The resource is ready to switch over.

  • SWITCHOVER_IN_PROGRESS - The resource is being switched over.

  • SWITCHOVER_COMPLETED - The resource has been switched over.

  • SWITCHOVER_FAILED - The resource attempted to switch over but failed.

  • MISSING_SOURCE - The source resource has been deleted.

  • MISSING_TARGET - The target resource has been deleted.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#SwitchoverDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#SwitchoverDetail" + } + }, + "com.amazonaws.rds#SwitchoverDetailStatus": { + "type": "string" + }, + "com.amazonaws.rds#SwitchoverGlobalCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#SwitchoverGlobalClusterMessage" + }, + "output": { + "target": "com.amazonaws.rds#SwitchoverGlobalClusterResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#GlobalClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBClusterStateFault" + }, + { + "target": "com.amazonaws.rds#InvalidGlobalClusterStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Switches over the specified secondary DB cluster to be the new primary DB cluster in the global database cluster. Switchover operations were previously called \"managed planned failovers.\"

Aurora promotes the specified secondary cluster to assume full read/write capabilities and demotes the current primary cluster to a secondary (read-only) cluster, maintaining the orginal replication topology. All secondary clusters are synchronized with the primary at the beginning of the process so the new primary continues operations for the Aurora global database without losing any data. Your database is unavailable for a short time while the primary and selected secondary clusters are assuming their new roles. For more information about switching over an Aurora global database, see Performing switchovers for Amazon Aurora global databases in the Amazon Aurora User Guide.

This operation is intended for controlled environments, for operations such as \"regional rotation\" or to fall back to the original primary after a global database failover.

" + } + }, + "com.amazonaws.rds#SwitchoverGlobalClusterMessage": { + "type": "structure", + "members": { + "GlobalClusterIdentifier": { + "target": "com.amazonaws.rds#GlobalClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the global database cluster to switch over. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing global database cluster (Aurora global database).

", + "smithy.api#required": {} + } + }, + "TargetDbClusterIdentifier": { + "target": "com.amazonaws.rds#DBClusterIdentifier", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The identifier of the secondary Aurora DB cluster to promote to the new primary for the global database cluster. Use the Amazon Resource Name (ARN) for the identifier so that Aurora can locate the cluster in its Amazon Web Services Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#SwitchoverGlobalClusterResult": { + "type": "structure", + "members": { + "GlobalCluster": { + "target": "com.amazonaws.rds#GlobalCluster" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#SwitchoverReadReplica": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#SwitchoverReadReplicaMessage" + }, + "output": { + "target": "com.amazonaws.rds#SwitchoverReadReplicaResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Switches over an Oracle standby database in an Oracle Data Guard environment, making it the new primary database. Issue this command in the Region that hosts the current standby database.

" + } + }, + "com.amazonaws.rds#SwitchoverReadReplicaMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The DB instance identifier of the current standby database. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing Oracle read replica DB instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#SwitchoverReadReplicaResult": { + "type": "structure", + "members": { + "DBInstance": { + "target": "com.amazonaws.rds#DBInstance" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#SwitchoverTimeout": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 30 + } + } + }, + "com.amazonaws.rds#TStamp": { + "type": "timestamp" + }, + "com.amazonaws.rds#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").

" + } + }, + "Value": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

For more information, see Tagging Amazon RDS resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS resources in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Tag", + "traits": { + "smithy.api#xmlName": "Tag" + } + }, + "traits": { + "smithy.api#documentation": "

A list of tags.

For more information, see Tagging Amazon RDS resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS resources in the Amazon Aurora User Guide.

" + } + }, + "com.amazonaws.rds#TagListMessage": { + "type": "structure", + "members": { + "TagList": { + "target": "com.amazonaws.rds#TagList", + "traits": { + "smithy.api#documentation": "

List of tags returned by the ListTagsForResource operation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

", + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#TagSpecification": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The type of resource to tag on creation.

Valid Values:

  • auto-backup - The DB instance's automated backup.

  • cluster-auto-backup - The DB cluster's automated backup.

  • og - The copied option group. Valid only for CopyDBSnapshot.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

The tags to apply to resources when creating or modifying a DB instance or DB cluster, or when copying a DB instance snapshot. When you specify a tag, you must specify the resource type to tag, otherwise the request will fail.

" + } + }, + "com.amazonaws.rds#TagSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#TagSpecification", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.rds#TargetConnectionNetworkType": { + "type": "enum", + "members": { + "IPV4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV4" + } + }, + "IPV6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IPV6" + } + } + } + }, + "com.amazonaws.rds#TargetDBClusterParameterGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[A-Za-z](?!.*--)[0-9A-Za-z-]*[^-]|^default(?!.*--)(?!.*\\.\\.)[0-9A-Za-z-.]*[^-]$" + } + }, + "com.amazonaws.rds#TargetDBInstanceClass": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 20 + }, + "smithy.api#pattern": "^db\\.[0-9a-z]{2,6}\\.[0-9a-z]{4,9}$" + } + }, + "com.amazonaws.rds#TargetDBParameterGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[A-Za-z](?!.*--)[0-9A-Za-z-]*[^-]|^default(?!.*--)(?!.*\\.\\.)[0-9A-Za-z-.]*[^-]$" + } + }, + "com.amazonaws.rds#TargetEngineVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[0-9A-Za-z-_.]+$" + } + }, + "com.amazonaws.rds#TargetGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBProxyTargetGroup" + } + }, + "com.amazonaws.rds#TargetHealth": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.rds#TargetState", + "traits": { + "smithy.api#documentation": "

The current state of the connection health lifecycle for the RDS Proxy target. The following is a typical lifecycle example for the states of an RDS Proxy target:

registering > unavailable > available > unavailable > available

" + } + }, + "Reason": { + "target": "com.amazonaws.rds#TargetHealthReason", + "traits": { + "smithy.api#documentation": "

The reason for the current health State of the RDS Proxy target.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A description of the health of the RDS Proxy target. If the State is AVAILABLE, a description is not included.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the connection health of an RDS Proxy target.

" + } + }, + "com.amazonaws.rds#TargetHealthReason": { + "type": "enum", + "members": { + "UNREACHABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNREACHABLE" + } + }, + "CONNECTION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONNECTION_FAILED" + } + }, + "AUTH_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTH_FAILURE" + } + }, + "PENDING_PROXY_CAPACITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_PROXY_CAPACITY" + } + }, + "INVALID_REPLICATION_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_REPLICATION_STATE" + } + }, + "PROMOTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROMOTED" + } + } + } + }, + "com.amazonaws.rds#TargetList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBProxyTarget" + } + }, + "com.amazonaws.rds#TargetResourceConfiguration": { + "type": "structure", + "members": { + "SourceArn": { + "target": "com.amazonaws.rds#DBAndClusterArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the DB cluster or DB instance in the blue environment to which this configuration applies.

", + "smithy.api#required": {} + } + }, + "TargetKmsKeyId": { + "target": "com.amazonaws.rds#KmsKeyIdOrArn", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services KMS key identifier for encryption of the corresponding resource in the green environment.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

Specify this setting in either of the following cases:

  • You want the green resource to use a different KMS key than the blue resource.

  • The blue resource is unencrypted and you want to encrypt the green resource.

For Aurora, encryption applies at the DB cluster level. Specify a DB cluster ARN in SourceArn. All DB instances in that cluster use the same KMS key.

For RDS, encryption applies at the DB instance level. Specify a DB instance ARN in SourceArn. To encrypt read replicas, include a separate entry for each one. Each entry can specify a different KMS key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for a single resource in the green environment of a blue/green deployment.

Use SourceArn to identify a resource in the blue environment. Amazon RDS creates the corresponding resource in the green environment using this configuration.

This data type is a request parameter of the CreateBlueGreenDeployment operation.

" + } + }, + "com.amazonaws.rds#TargetResourceConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#TargetResourceConfiguration", + "traits": { + "smithy.api#xmlName": "TargetResourceConfiguration" + } + }, + "traits": { + "smithy.api#length": { + "max": 20 + } + } + }, + "com.amazonaws.rds#TargetRole": { + "type": "enum", + "members": { + "READ_WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_WRITE" + } + }, + "READ_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_ONLY" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNKNOWN" + } + } + } + }, + "com.amazonaws.rds#TargetState": { + "type": "enum", + "members": { + "registering": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REGISTERING" + } + }, + "available": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "unavailable": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNAVAILABLE" + } + }, + "unused": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNUSED" + } + } + } + }, + "com.amazonaws.rds#TargetStorageType": { + "type": "string" + }, + "com.amazonaws.rds#TargetType": { + "type": "enum", + "members": { + "RDS_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RDS_INSTANCE" + } + }, + "RDS_SERVERLESS_ENDPOINT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RDS_SERVERLESS_ENDPOINT" + } + }, + "TRACKED_CLUSTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRACKED_CLUSTER" + } + } + } + }, + "com.amazonaws.rds#TenantDatabase": { + "type": "structure", + "members": { + "TenantDatabaseCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

The creation time of the tenant database.

" + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The ID of the DB instance that contains the tenant database.

" + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The database name of the tenant database.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The status of the tenant database.

" + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The master username of the tenant database.

" + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region-unique, immutable identifier for the DB instance.

" + } + }, + "TenantDatabaseResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region-unique, immutable identifier for the tenant database.

" + } + }, + "TenantDatabaseARN": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the tenant database.

" + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The character set of the tenant database.

" + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The NCHAR character set name of the tenant database.

" + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether deletion protection is enabled for the DB instance.

" + } + }, + "PendingModifiedValues": { + "target": "com.amazonaws.rds#TenantDatabasePendingModifiedValues", + "traits": { + "smithy.api#documentation": "

Information about pending changes for a tenant database.

" + } + }, + "MasterUserSecret": { + "target": "com.amazonaws.rds#MasterUserSecret" + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

A tenant database in the DB instance. This data type is an element in the response to the DescribeTenantDatabases action.

" + } + }, + "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You attempted to either create a tenant database that already exists or modify a tenant database to use the name of an existing tenant database.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#TenantDatabaseNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified tenant database wasn't found in the DB instance.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#TenantDatabasePendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

The master password for the tenant database.

" + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the tenant database.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A response element in the ModifyTenantDatabase operation that describes changes that will be applied. Specific changes are identified by subelements.

" + } + }, + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

You attempted to create more tenant databases than are permitted in your Amazon Web Services account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#TenantDatabasesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#TenantDatabase", + "traits": { + "smithy.api#xmlName": "TenantDatabase" + } + } + }, + "com.amazonaws.rds#TenantDatabasesMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

An optional pagination token provided by a previous DescribeTenantDatabases request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + } + }, + "TenantDatabases": { + "target": "com.amazonaws.rds#TenantDatabasesList", + "traits": { + "smithy.api#documentation": "

An array of the tenant databases requested by the DescribeTenantDatabases operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.rds#Timezone": { + "type": "structure", + "members": { + "TimezoneName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the time zone.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A time zone associated with a DBInstance or a DBSnapshot. This data type is an element in the response to the DescribeDBInstances, the DescribeDBSnapshots, and the DescribeDBEngineVersions actions.

" + } + }, + "com.amazonaws.rds#UnsupportedDBEngineVersionFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "UnsupportedDBEngineVersion", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified DB engine version isn't supported for Aurora Limitless Database.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#UpgradeRolloutOrder": { + "type": "enum", + "members": { + "FIRST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "first" + } + }, + "SECOND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "second" + } + }, + "LAST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "last" + } + } + } + }, + "com.amazonaws.rds#UpgradeTarget": { + "type": "structure", + "members": { + "Engine": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the upgrade target database engine.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version number of the upgrade target database engine.

" + } + }, + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The version of the database engine that a DB instance can be upgraded to.

" + } + }, + "AutoUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the target version is applied to any source DB instances that have AutoMinorVersionUpgrade set to true.

This parameter is dynamic, and is set by RDS.

" + } + }, + "IsMajorVersionUpgrade": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether upgrading to the target version requires upgrading the major version of the database engine.

" + } + }, + "SupportedEngineModes": { + "target": "com.amazonaws.rds#EngineModeList", + "traits": { + "smithy.api#documentation": "

A list of the supported DB engine modes for the target engine version.

" + } + }, + "SupportsParallelQuery": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Aurora parallel query with the target engine version.

" + } + }, + "SupportsGlobalDatabases": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Aurora global databases with the target engine version.

" + } + }, + "SupportsBabelfish": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether you can use Babelfish for Aurora PostgreSQL with the target engine version.

" + } + }, + "SupportsLimitlessDatabase": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports Aurora Limitless Database.

" + } + }, + "SupportsLocalWriteForwarding": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the target engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

" + } + }, + "SupportsIntegrations": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The version of the database engine that a DB instance can be upgraded to.

" + } + }, + "com.amazonaws.rds#UserAuthConfig": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.rds#Description", + "traits": { + "smithy.api#documentation": "

A user-specified description about the authentication used by a proxy to log in as a specific database user.

" + } + }, + "UserName": { + "target": "com.amazonaws.rds#AuthUserName", + "traits": { + "smithy.api#documentation": "

The name of the database user to which the proxy connects.

" + } + }, + "AuthScheme": { + "target": "com.amazonaws.rds#AuthScheme", + "traits": { + "smithy.api#documentation": "

The type of authentication that the proxy uses for connections from the proxy to the underlying database.

" + } + }, + "SecretArn": { + "target": "com.amazonaws.rds#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager.

" + } + }, + "IAMAuth": { + "target": "com.amazonaws.rds#IAMAuthMode", + "traits": { + "smithy.api#documentation": "

A value that indicates whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy. The ENABLED value is valid only for proxies with RDS for Microsoft SQL Server.

" + } + }, + "ClientPasswordAuthType": { + "target": "com.amazonaws.rds#ClientPasswordAuthType", + "traits": { + "smithy.api#documentation": "

The type of authentication the proxy uses for connections from clients. The following values are defaults for the corresponding engines:

  • RDS for MySQL: MYSQL_CACHING_SHA2_PASSWORD

  • RDS for SQL Server: SQL_SERVER_AUTHENTICATION

  • RDS for PostgreSQL: POSTGRES_SCRAM_SHA2_256

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the details of authentication used by a proxy to log in as a specific database user.

" + } + }, + "com.amazonaws.rds#UserAuthConfigInfo": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

A user-specified description about the authentication used by a proxy to log in as a specific database user.

" + } + }, + "UserName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the database user to which the proxy connects.

" + } + }, + "AuthScheme": { + "target": "com.amazonaws.rds#AuthScheme", + "traits": { + "smithy.api#documentation": "

The type of authentication that the proxy uses for connections from the proxy to the underlying database.

" + } + }, + "SecretArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager.

" + } + }, + "IAMAuth": { + "target": "com.amazonaws.rds#IAMAuthMode", + "traits": { + "smithy.api#documentation": "

Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy.

" + } + }, + "ClientPasswordAuthType": { + "target": "com.amazonaws.rds#ClientPasswordAuthType", + "traits": { + "smithy.api#documentation": "

The type of authentication the proxy uses for connections from clients.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Returns the details of authentication used by a proxy to log in as a specific database user.

" + } + }, + "com.amazonaws.rds#UserAuthConfigInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#UserAuthConfigInfo" + } + }, + "com.amazonaws.rds#UserAuthConfigList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#UserAuthConfig" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.rds#ValidAdditionalStorageOptions": { + "type": "structure", + "members": { + "SupportsAdditionalStorageVolumes": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB instance supports additional storage volumes.

" + } + }, + "Volumes": { + "target": "com.amazonaws.rds#ValidVolumeOptionsList", + "traits": { + "smithy.api#documentation": "

The valid additional storage volume options for the DB instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the valid options for additional storage volumes for a DB instance.

" + } + }, + "com.amazonaws.rds#ValidDBInstanceModificationsMessage": { + "type": "structure", + "members": { + "Storage": { + "target": "com.amazonaws.rds#ValidStorageOptionsList", + "traits": { + "smithy.api#documentation": "

Valid storage options for your DB instance.

" + } + }, + "ValidProcessorFeatures": { + "target": "com.amazonaws.rds#AvailableProcessorFeatureList", + "traits": { + "smithy.api#documentation": "

Valid processor features for your DB instance.

" + } + }, + "SupportsDedicatedLogVolume": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether a DB instance supports using a dedicated log volume (DLV).

" + } + }, + "AdditionalStorage": { + "target": "com.amazonaws.rds#ValidAdditionalStorageOptions", + "traits": { + "smithy.api#documentation": "

The valid additional storage options for the DB instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action. You can use this information when you call ModifyDBInstance.

" + } + }, + "com.amazonaws.rds#ValidStorageOptions": { + "type": "structure", + "members": { + "StorageType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The valid storage types for your DB instance. For example: gp2, gp3, io1, io2.

" + } + }, + "StorageSize": { + "target": "com.amazonaws.rds#RangeList", + "traits": { + "smithy.api#documentation": "

The valid range of storage in gibibytes (GiB). For example, 100 to 16,384.

" + } + }, + "ProvisionedIops": { + "target": "com.amazonaws.rds#RangeList", + "traits": { + "smithy.api#documentation": "

The valid range of provisioned IOPS. For example, 1000-256,000.

" + } + }, + "IopsToStorageRatio": { + "target": "com.amazonaws.rds#DoubleRangeList", + "traits": { + "smithy.api#documentation": "

The valid range of Provisioned IOPS to gibibytes of storage multiplier. For example, 3-10, which means that provisioned IOPS can be between 3 and 10 times storage.

" + } + }, + "ProvisionedStorageThroughput": { + "target": "com.amazonaws.rds#RangeList", + "traits": { + "smithy.api#documentation": "

The valid range of provisioned storage throughput. For example, 500-4,000 mebibytes per second (MiBps).

" + } + }, + "StorageThroughputToIopsRatio": { + "target": "com.amazonaws.rds#DoubleRangeList", + "traits": { + "smithy.api#documentation": "

The valid range of storage throughput to provisioned IOPS ratios. For example, 0-0.25.

" + } + }, + "SupportsStorageAutoscaling": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether or not Amazon RDS can automatically scale storage for DB instances that use the new instance class.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action.

" + } + }, + "com.amazonaws.rds#ValidStorageOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ValidStorageOptions", + "traits": { + "smithy.api#xmlName": "ValidStorageOptions" + } + } + }, + "com.amazonaws.rds#ValidUpgradeTargetList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#UpgradeTarget", + "traits": { + "smithy.api#xmlName": "UpgradeTarget" + } + } + }, + "com.amazonaws.rds#ValidVolumeOptions": { + "type": "structure", + "members": { + "VolumeName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the additional storage volume.

" + } + }, + "Storage": { + "target": "com.amazonaws.rds#ValidStorageOptionsList", + "traits": { + "smithy.api#documentation": "

The valid storage options for the additional storage volume.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the valid options for an additional storage volume.

" + } + }, + "com.amazonaws.rds#ValidVolumeOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#ValidVolumeOptions" + } + }, + "com.amazonaws.rds#VpcEncryptionControlViolationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "VpcEncryptionControlViolationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The operation violates VPC encryption control settings. Make sure that your DB instance type supports the Nitro encryption-in-transit capability, or modify your VPC's encryption controls to not enforce encryption-in-transit.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#VpcSecurityGroupIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#xmlName": "VpcSecurityGroupId" + } + } + }, + "com.amazonaws.rds#VpcSecurityGroupMembership": { + "type": "structure", + "members": { + "VpcSecurityGroupId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The name of the VPC security group.

" + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The membership status of the VPC security group.

Currently, the only valid status is active.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type is used as a response element for queries on VPC security group membership.

" + } + }, + "com.amazonaws.rds#VpcSecurityGroupMembershipList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#VpcSecurityGroupMembership", + "traits": { + "smithy.api#xmlName": "VpcSecurityGroupMembership" + } + } + }, + "com.amazonaws.rds#WriteForwardingStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + }, + "ENABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabling" + } + }, + "DISABLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabling" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown" + } + } + } + } + } +} diff --git a/codegen/aws-models/s3.json b/codegen/aws-models/s3.json new file mode 100644 index 00000000..803a4a23 --- /dev/null +++ b/codegen/aws-models/s3.json @@ -0,0 +1,48873 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.s3#AbacStatus": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#BucketAbacStatus", + "traits": { + "smithy.api#documentation": "

The ABAC status of the general purpose bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see Using tags with S3 general purpose buckets.

" + } + }, + "com.amazonaws.s3#AbortDate": { + "type": "timestamp" + }, + "com.amazonaws.s3#AbortIncompleteMultipartUpload": { + "type": "structure", + "members": { + "DaysAfterInitiation": { + "target": "com.amazonaws.s3#DaysAfterInitiation", + "traits": { + "smithy.api#documentation": "

Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before\n permanently removing all parts of the upload. For more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in the\n Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#AbortMultipartUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#AbortMultipartUploadRequest" + }, + "output": { + "target": "com.amazonaws.s3#AbortMultipartUploadOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchUpload" + } + ], + "traits": { + "smithy.api#documentation": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts\n can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be\n freed. However, if any part uploads are currently in progress, those part uploads might or might not\n succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to\n completely free all storage consumed by all parts.

\n

To verify that all parts have been removed and prevent getting charged for the part storage, you\n should call the ListParts API operation and ensure that the parts list is empty.

\n \n
    \n
  • \n

    \n Directory buckets - If multipart uploads in a\n directory bucket are in progress, you can't delete the bucket until all the in-progress multipart\n uploads are aborted or completed. To delete these in-progress multipart uploads, use the\n ListMultipartUploads operation to list the in-progress multipart uploads in the\n bucket and use the AbortMultipartUpload operation to abort all the in-progress\n multipart uploads.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information\n about permissions required to use the multipart upload, see Multipart Upload and Permissions in\n the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to AbortMultipartUpload:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To abort a multipart upload", + "documentation": "The following example aborts a multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "bigobject", + "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key+}?x-id=AbortMultipartUpload", + "code": 204 + } + } + }, + "com.amazonaws.s3#AbortMultipartUploadOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#AbortMultipartUploadRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name to which the upload was taking place.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key of the object for which the multipart upload was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID that identifies the multipart upload.

", + "smithy.api#httpQuery": "uploadId", + "smithy.api#required": {} + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "IfMatchInitiatedTime": { + "target": "com.amazonaws.s3#IfMatchInitiatedTime", + "traits": { + "smithy.api#documentation": "

If present, this header aborts an in progress multipart upload only if it was initiated on the\n provided timestamp. If the initiated timestamp of the multipart upload does not match the provided\n value, the operation returns a 412 Precondition Failed error. If the initiated timestamp\n matches or if the multipart upload doesn’t exist, the operation returns a 204 Success (No\n Content) response.

\n \n

This functionality is only supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-initiated-time" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#AbortRuleId": { + "type": "string" + }, + "com.amazonaws.s3#AccelerateConfiguration": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#BucketAccelerateStatus", + "traits": { + "smithy.api#documentation": "

Specifies the transfer acceleration status of the bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see Amazon S3 Transfer\n Acceleration in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#AcceptRanges": { + "type": "string" + }, + "com.amazonaws.s3#AccessControlPolicy": { + "type": "structure", + "members": { + "Grants": { + "target": "com.amazonaws.s3#Grants", + "traits": { + "smithy.api#documentation": "

A list of grants.

", + "smithy.api#xmlName": "AccessControlList" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Container for the bucket owner's display name and ID.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the elements that set the ACL permissions for an object per grantee.

" + } + }, + "com.amazonaws.s3#AccessControlTranslation": { + "type": "structure", + "members": { + "Owner": { + "target": "com.amazonaws.s3#OwnerOverride", + "traits": { + "smithy.api#documentation": "

Specifies the replica ownership. For default and valid values, see PUT bucket replication in the\n Amazon S3 API Reference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for information about access control for replicas.

" + } + }, + "com.amazonaws.s3#AccessDenied": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

\n You might receive this error for several reasons. For details, see the description of this API \n operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.s3#AccessKeyIdValue": { + "type": "string" + }, + "com.amazonaws.s3#AccessPointAlias": { + "type": "boolean" + }, + "com.amazonaws.s3#AccessPointArn": { + "type": "string" + }, + "com.amazonaws.s3#AccountId": { + "type": "string" + }, + "com.amazonaws.s3#AllowQuotedRecordDelimiter": { + "type": "boolean" + }, + "com.amazonaws.s3#AllowedHeader": { + "type": "string" + }, + "com.amazonaws.s3#AllowedHeaders": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#AllowedHeader" + } + }, + "com.amazonaws.s3#AllowedMethod": { + "type": "string" + }, + "com.amazonaws.s3#AllowedMethods": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#AllowedMethod" + } + }, + "com.amazonaws.s3#AllowedOrigin": { + "type": "string" + }, + "com.amazonaws.s3#AllowedOrigins": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#AllowedOrigin" + } + }, + "com.amazonaws.s3#AmazonS3": { + "type": "service", + "version": "2006-03-01", + "operations": [ + { + "target": "com.amazonaws.s3#AbortMultipartUpload" + }, + { + "target": "com.amazonaws.s3#CompleteMultipartUpload" + }, + { + "target": "com.amazonaws.s3#CopyObject" + }, + { + "target": "com.amazonaws.s3#CreateBucket" + }, + { + "target": "com.amazonaws.s3#CreateBucketMetadataConfiguration" + }, + { + "target": "com.amazonaws.s3#CreateBucketMetadataTableConfiguration" + }, + { + "target": "com.amazonaws.s3#CreateMultipartUpload" + }, + { + "target": "com.amazonaws.s3#CreateSession" + }, + { + "target": "com.amazonaws.s3#DeleteBucket" + }, + { + "target": "com.amazonaws.s3#DeleteBucketAnalyticsConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketCors" + }, + { + "target": "com.amazonaws.s3#DeleteBucketEncryption" + }, + { + "target": "com.amazonaws.s3#DeleteBucketIntelligentTieringConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketInventoryConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketLifecycle" + }, + { + "target": "com.amazonaws.s3#DeleteBucketMetadataConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketMetadataTableConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketMetricsConfiguration" + }, + { + "target": "com.amazonaws.s3#DeleteBucketOwnershipControls" + }, + { + "target": "com.amazonaws.s3#DeleteBucketPolicy" + }, + { + "target": "com.amazonaws.s3#DeleteBucketReplication" + }, + { + "target": "com.amazonaws.s3#DeleteBucketTagging" + }, + { + "target": "com.amazonaws.s3#DeleteBucketWebsite" + }, + { + "target": "com.amazonaws.s3#DeleteObject" + }, + { + "target": "com.amazonaws.s3#DeleteObjectAnnotation" + }, + { + "target": "com.amazonaws.s3#DeleteObjects" + }, + { + "target": "com.amazonaws.s3#DeleteObjectTagging" + }, + { + "target": "com.amazonaws.s3#DeletePublicAccessBlock" + }, + { + "target": "com.amazonaws.s3#GetBucketAbac" + }, + { + "target": "com.amazonaws.s3#GetBucketAccelerateConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketAcl" + }, + { + "target": "com.amazonaws.s3#GetBucketAnalyticsConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketCors" + }, + { + "target": "com.amazonaws.s3#GetBucketEncryption" + }, + { + "target": "com.amazonaws.s3#GetBucketIntelligentTieringConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketInventoryConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketLifecycleConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketLocation" + }, + { + "target": "com.amazonaws.s3#GetBucketLogging" + }, + { + "target": "com.amazonaws.s3#GetBucketMetadataConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketMetadataTableConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketMetricsConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketNotificationConfiguration" + }, + { + "target": "com.amazonaws.s3#GetBucketOwnershipControls" + }, + { + "target": "com.amazonaws.s3#GetBucketPolicy" + }, + { + "target": "com.amazonaws.s3#GetBucketPolicyStatus" + }, + { + "target": "com.amazonaws.s3#GetBucketReplication" + }, + { + "target": "com.amazonaws.s3#GetBucketRequestPayment" + }, + { + "target": "com.amazonaws.s3#GetBucketTagging" + }, + { + "target": "com.amazonaws.s3#GetBucketVersioning" + }, + { + "target": "com.amazonaws.s3#GetBucketWebsite" + }, + { + "target": "com.amazonaws.s3#GetObject" + }, + { + "target": "com.amazonaws.s3#GetObjectAcl" + }, + { + "target": "com.amazonaws.s3#GetObjectAnnotation" + }, + { + "target": "com.amazonaws.s3#GetObjectAttributes" + }, + { + "target": "com.amazonaws.s3#GetObjectLegalHold" + }, + { + "target": "com.amazonaws.s3#GetObjectLockConfiguration" + }, + { + "target": "com.amazonaws.s3#GetObjectRetention" + }, + { + "target": "com.amazonaws.s3#GetObjectTagging" + }, + { + "target": "com.amazonaws.s3#GetObjectTorrent" + }, + { + "target": "com.amazonaws.s3#GetPublicAccessBlock" + }, + { + "target": "com.amazonaws.s3#HeadBucket" + }, + { + "target": "com.amazonaws.s3#HeadObject" + }, + { + "target": "com.amazonaws.s3#ListBucketAnalyticsConfigurations" + }, + { + "target": "com.amazonaws.s3#ListBucketIntelligentTieringConfigurations" + }, + { + "target": "com.amazonaws.s3#ListBucketInventoryConfigurations" + }, + { + "target": "com.amazonaws.s3#ListBucketMetricsConfigurations" + }, + { + "target": "com.amazonaws.s3#ListBuckets" + }, + { + "target": "com.amazonaws.s3#ListDirectoryBuckets" + }, + { + "target": "com.amazonaws.s3#ListMultipartUploads" + }, + { + "target": "com.amazonaws.s3#ListObjectAnnotations" + }, + { + "target": "com.amazonaws.s3#ListObjects" + }, + { + "target": "com.amazonaws.s3#ListObjectsV2" + }, + { + "target": "com.amazonaws.s3#ListObjectVersions" + }, + { + "target": "com.amazonaws.s3#ListParts" + }, + { + "target": "com.amazonaws.s3#PutBucketAbac" + }, + { + "target": "com.amazonaws.s3#PutBucketAccelerateConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketAcl" + }, + { + "target": "com.amazonaws.s3#PutBucketAnalyticsConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketCors" + }, + { + "target": "com.amazonaws.s3#PutBucketEncryption" + }, + { + "target": "com.amazonaws.s3#PutBucketIntelligentTieringConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketInventoryConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketLifecycleConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketLogging" + }, + { + "target": "com.amazonaws.s3#PutBucketMetricsConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketNotificationConfiguration" + }, + { + "target": "com.amazonaws.s3#PutBucketOwnershipControls" + }, + { + "target": "com.amazonaws.s3#PutBucketPolicy" + }, + { + "target": "com.amazonaws.s3#PutBucketReplication" + }, + { + "target": "com.amazonaws.s3#PutBucketRequestPayment" + }, + { + "target": "com.amazonaws.s3#PutBucketTagging" + }, + { + "target": "com.amazonaws.s3#PutBucketVersioning" + }, + { + "target": "com.amazonaws.s3#PutBucketWebsite" + }, + { + "target": "com.amazonaws.s3#PutObject" + }, + { + "target": "com.amazonaws.s3#PutObjectAcl" + }, + { + "target": "com.amazonaws.s3#PutObjectAnnotation" + }, + { + "target": "com.amazonaws.s3#PutObjectLegalHold" + }, + { + "target": "com.amazonaws.s3#PutObjectLockConfiguration" + }, + { + "target": "com.amazonaws.s3#PutObjectRetention" + }, + { + "target": "com.amazonaws.s3#PutObjectTagging" + }, + { + "target": "com.amazonaws.s3#PutPublicAccessBlock" + }, + { + "target": "com.amazonaws.s3#RenameObject" + }, + { + "target": "com.amazonaws.s3#RestoreObject" + }, + { + "target": "com.amazonaws.s3#SelectObjectContent" + }, + { + "target": "com.amazonaws.s3#UpdateBucketMetadataAnnotationTableConfiguration" + }, + { + "target": "com.amazonaws.s3#UpdateBucketMetadataInventoryTableConfiguration" + }, + { + "target": "com.amazonaws.s3#UpdateBucketMetadataJournalTableConfiguration" + }, + { + "target": "com.amazonaws.s3#UpdateObjectEncryption" + }, + { + "target": "com.amazonaws.s3#UploadPart" + }, + { + "target": "com.amazonaws.s3#UploadPartCopy" + }, + { + "target": "com.amazonaws.s3#WriteGetObjectResponse" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "S3", + "arnNamespace": "s3", + "cloudFormationName": "S3", + "cloudTrailEventSource": "s3.amazonaws.com", + "endpointPrefix": "s3" + }, + "aws.auth#sigv4": { + "name": "s3" + }, + "aws.protocols#restXml": { + "noErrorWrapping": true + }, + "smithy.api#documentation": "\n

For information about using the Amazon S3 API—including authentication, signing requests, code examples, and error handling—see the Amazon S3 Developer Guide.

\n
\n

Welcome to the Amazon S3 API Reference. This guide explains the Amazon Simple Storage Service (Amazon S3)\n application programming interface (API).

\n

Welcome to the Amazon S3 API Reference. This guide explains the Amazon Simple Storage Service (Amazon S3)\n application programming interface (API).

\n

You can use any toolkit that supports HTTP to use the REST API. You can even use a browser\n to fetch objects, as long as they are anonymously readable.

\n

The REST API uses the standard HTTP headers and status codes, so that standard browsers and toolkits work as expected. In some areas, we have added functionality to HTTP (for example, we added headers to support access control). In these cases, we have done our best to add the new functionality in a way that matched the style of standard HTTP usage.

\n

The current version of the Amazon S3 API is 2006-03-01.

\n

Amazon S3 supports the REST API.

\n \n

Support for SOAP over HTTP is deprecated, but it is still available over HTTPS.\n However, new Amazon S3 features will not be supported for SOAP. We recommend that\n you use either this REST API or the Amazon Web Services SDKs.

\n
", + "smithy.api#suppress": [ + "RuleSetAuthSchemes" + ], + "smithy.api#title": "Amazon Simple Storage Service", + "smithy.api#xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "smithy.rules#clientContextParams": { + "ForcePathStyle": { + "documentation": "Forces this client to use path-style addressing for buckets.", + "type": "boolean" + }, + "UseArnRegion": { + "documentation": "Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region.", + "type": "boolean" + }, + "DisableMultiRegionAccessPoints": { + "documentation": "Disables this client's usage of Multi-Region Access Points.", + "type": "boolean" + }, + "Accelerate": { + "documentation": "Enables this client to use S3 Transfer Acceleration endpoints.", + "type": "boolean" + }, + "DisableS3ExpressSessionAuth": { + "documentation": "Disables this client's usage of Session Auth for S3Express buckets and reverts to using conventional SigV4 for those.", + "type": "boolean" + } + }, + "smithy.rules#endpointBdd": { + "version": "1.1", + "parameters": { + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "string" + }, + "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" + }, + "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" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + }, + "ForcePathStyle": { + "builtIn": "AWS::S3::ForcePathStyle", + "required": true, + "default": false, + "documentation": "When true, force a path-style endpoint to be used where the bucket name is part of the path.", + "type": "boolean" + }, + "Accelerate": { + "builtIn": "AWS::S3::Accelerate", + "required": true, + "default": false, + "documentation": "When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.", + "type": "boolean" + }, + "UseGlobalEndpoint": { + "builtIn": "AWS::S3::UseGlobalEndpoint", + "required": true, + "default": false, + "documentation": "Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.", + "type": "boolean" + }, + "UseObjectLambdaEndpoint": { + "required": false, + "documentation": "Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)", + "type": "boolean" + }, + "Key": { + "required": false, + "documentation": "The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.", + "type": "string" + }, + "Prefix": { + "required": false, + "documentation": "The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.", + "type": "string" + }, + "CopySource": { + "required": false, + "documentation": "The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.", + "type": "string" + }, + "DisableAccessPoints": { + "required": false, + "documentation": "Internal parameter to disable Access Point Buckets", + "type": "boolean" + }, + "DisableMultiRegionAccessPoints": { + "builtIn": "AWS::S3::DisableMultiRegionAccessPoints", + "required": true, + "default": false, + "documentation": "Whether multi-region access points (MRAP) should be disabled.", + "type": "boolean" + }, + "UseArnRegion": { + "builtIn": "AWS::S3::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "boolean" + }, + "UseS3ExpressControlEndpoint": { + "required": false, + "documentation": "Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)", + "type": "boolean" + }, + "DisableS3ExpressSessionAuth": { + "required": false, + "documentation": "Parameter to indicate whether S3Express session auth should be disabled", + "type": "boolean" + } + }, + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 6, + true + ] + }, + "" + ] + }, + "--x-s3" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 7, + true + ] + }, + "" + ] + }, + "--xa-s3" + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 7, + true + ], + "assign": "accessPointSuffix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointSuffix" + }, + "--op-s3" + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 8, + 12, + true + ], + "assign": "regionPrefix" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 32, + 49, + true + ], + "assign": "outpostId_ssa_2" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 49, + 50, + true + ], + "assign": "hardwareType" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + }, + { + "fn": "ite", + "argv": [ + { + "ref": "UseDualStack" + }, + ".dualstack", + "" + ], + "assign": "_s3e_ds" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId_ssa_2" + }, + false + ] + }, + { + "fn": "ite", + "argv": [ + { + "ref": "UseFIPS" + }, + "-fips", + "" + ], + "assign": "_s3e_fips" + }, + { + "fn": "ite", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + false + ] + }, + "sigv4", + "sigv4-s3express" + ], + "assign": "_s3e_auth" + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + }, + false + ] + }, + true + ] + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "scheme" + ] + }, + "http" + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + }, + { + "fn": "getAttr", + "argv": [ + { + "fn": "split", + "argv": [ + { + "ref": "Bucket" + }, + "--", + 0 + ] + }, + "[-2]" + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 4, + false + ] + }, + "" + ] + }, + "arn:" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 16, + 18, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 21, + 23, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 27, + 29, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "regionPrefix" + }, + "beta" + ] + }, + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + }, + false + ] + }, + true + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName_ssa_1" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName_ssa_1" + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 14, + 16, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "e" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "o" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 19, + 21, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-object-lambda" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + false + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName_ssa_1" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 26, + 28, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[4]" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 20, + 22, + true + ] + }, + "" + ] + }, + "--" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId_ssa_1" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "coalesce", + "argv": [ + { + "ref": "UseArnRegion" + }, + true + ] + }, + true + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId_ssa_1" + }, + false + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableMultiRegionAccessPoints" + }, + true + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "partition" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3" + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName_ssa_2" + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName_ssa_1" + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + }, + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName_ssa_2" + }, + false + ] + } + ], + "results": [ + { + "conditions": [], + "error": "Accelerate cannot be used with FIPS", + "type": "error" + }, + { + "conditions": [], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [], + "error": "A custom endpoint cannot be combined with FIPS", + "type": "error" + }, + { + "conditions": [], + "error": "A custom endpoint cannot be combined with S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "error": "S3Express does not support S3 Accelerate.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "{_s3e_auth}", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "{_s3e_auth}", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3express{_s3e_fips}-{s3expressAvailabilityZoneId}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "{_s3e_auth}", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "{_s3e_auth}", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Expected a endpoint to be specified but no endpoint was found", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.ec2.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.ec2.s3-outposts.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId_ssa_2}.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId_ssa_2}.s3-outposts.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Outposts Bucket alias - it must be a valid bucket name.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "error": "Custom endpoint `{Endpoint}` was not a valid URI", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Accelerate cannot be used in this region", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Missing account id", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{accessPointName_ssa_1}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_1}`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`", + "type": "error" + }, + { + "conditions": [], + "error": "Access Points do not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{accessPointName_ssa_1}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}", + "type": "error" + }, + { + "conditions": [], + "error": "S3 MRAP does not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "error": "S3 MRAP does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "error": "S3 MRAP does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_1}.accesspoint.s3-global.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but bucket referred to partition `{bucketArn#partition}`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Access Point Name", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Outposts does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Outposts does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "error": "S3 Outposts does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_2}`", + "type": "error" + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found {outpostType}", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId_ssa_1}`", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + }, + { + "conditions": [], + "error": "Invalid ARN: `{Bucket}` was not a valid ARN", + "type": "error" + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with ARN buckets", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "A region must be set when sending requests to S3.", + "type": "error" + } + ], + "root": 2, + "nodeCount": 553, + "nodes": "/////wAAAAH/////AAAAAAAAAAMF9eFzAAAAAQAAAagAAAAEAAAAAgAAARAAAAAFAAAAAwAAAOkAAAAGAAAABAAAAFUAAAAHAAAABQAAAA8AAAAIAAAACAAAAAkF9eFzAAAAEAAAAAoAAAANAAAAEgAAAAsAAAANAAAAEwAAAAwAAAANAAAAFgX14Q4AAAANAAAAIwAAAA4F9eEqAAAAJAX14WcAAAGzAAAABgAAAQ8AAAAQAAAABwAAAQ4AAAARAAAACAAAABMAAAASAAAADgAAAfUAAABqAAAACQAAABQAAAAYAAAACgAAABUAAAAYAAAACwAAABYAAAAYAAAADAAAABcAAAAYAAAADQAAAiMAAAAYAAAADgAAAE0AAAAZAAAAFAAAAEkAAAAaAAAAGgAAABsAAABOAAAAJQAAABwF9eFWAAAAJgX14VYAAAAdAAAAJwAAAC8AAAAeAAAAMAX14ToAAAAfAAAAMgAAACAF9eFVAAAAMwAAACEAAACIAAAANwX14UwAAAAiAAAAOwAAACMF9eFUAAAAPAAAACcAAAAkAAAAPQAAACUF9eFTAAAAPgAAACYAAACSAAAAPwAAACkF9eEuAAAAPQAAACgF9eFTAAAAPgAAACkAAACWAAAAQAAAACoF9eE2AAAAQgAAACsF9eE1AAAARgAAACwF9eE0AAAARwAAAC0F9eFRAAAASQAAAC4F9eFQAAAASgX14U4F9eFPAAAAKAAAADAF9eE5AAAAKQX14TkAAAAxAAAAKgAAALkAAAAyAAAAMAAAAD4AAAAzAAAAMQX14S0AAAA0AAAAMwAAADUAAAIOAAAAPAAAADgAAAA2AAAAPgX14TcAAAA3AAAAPwAAADkF9eEuAAAAPgX14TcAAAA5AAAAQAAAADoF9eE2AAAAQgAAADsF9eE1AAAARQAAADwF9eFBAAAARgAAAD0F9eE0AAAASAX14UAF9eEzAAAAMQX14S0AAAA/AAAAMwAAAEAAAAIOAAAAPAAAAEMAAABBAAAAPgX14TcAAABCAAAAPwAAAEQF9eEuAAAAPgX14TcAAABEAAAAQAAAAEUF9eE2AAAAQgAAAEYF9eE1AAAARAX14S8AAABHAAAARgAAAEgF9eE0AAAASAX14TIF9eEzAAAAGQAAAEoF9eEqAAAALgX14ScAAABLAAAAOQAAAEwF9eEpAAAAOgX14SgF9eEpAAAAGgX14VgAAABOAAAAHAX14VcAAABPAAAAIgAAAFIAAABQAAAAIwAAAFEAAAIhAAAAJAX14WcF9eFzAAAALgX14WEAAABTAAAAOQAAAFQF9eFjAAAAOgX14WIF9eFjAAAABQAAAGUAAABWAAAACAAAAFcF9eFzAAAAEAAAAFgAAABZAAAAEgAAAFsAAABZAAAAEwAAAFoAAABcAAAAFQAAAGEAAABfAAAAEwAAAF0AAABcAAAAFQAAAGIAAABfAAAAFQAAAGEAAABeAAAAFgX14Q4AAABfAAAAIwAAAGAF9eEqAAAAJAX14WcF9eEqAAAAFgX14Q0AAABiAAAAIwAAAGMF9eEqAAAAJAX14WUAAABkAAAALgX14W4F9eFvAAAABgAAANYAAABmAAAABwAAANAAAABnAAAACAAAAHcAAABoAAAADgAAAHYAAABpAAAAFQAAAGoF9eEXAAAAGgAAAGsAAAH2AAAAJQAAAGwF9eFWAAAAJgX14VYAAABtAAAAJwAAAHAAAABuAAAAMAX14ToAAABvAAAAMgAAAIgF9eFVAAAAKAAAAHEF9eE5AAAAKQX14TkAAAByAAAAKgAAAHMAAAH0AAAAMAX14TgAAAB0AAAANAAAAHUF9eFIAAAAQQX14UUF9eFIAAAAFQAAAfUF9eEXAAAACQAAAHgAAAB8AAAACgAAAHkAAAB8AAAACwAAAHoAAAB8AAAADAAAAHsAAAB8AAAADQAAAMoAAAB8AAAADgAAAMMAAAB9AAAAFAAAAL4AAAB+AAAAFQAAAH8F9eEXAAAAFwAAAIAAAACBAAAAGAAAAL0AAACBAAAAGgAAAIIAAADFAAAAJQAAAIMF9eFWAAAAJgX14VYAAACEAAAAJwAAAJ8AAACFAAAAMAX14ToAAACGAAAAMgAAAIcF9eFVAAAAMwAAAI0AAACIAAAANwX14UwAAACJAAAAOwAAAIoF9eFUAAAAPAX14VMAAACLAAAAPQAAAIwF9eFTAAAAPwX14VMF9eEuAAAANwX14UwAAACOAAAAOwAAAI8F9eFUAAAAPAAAAJQAAACQAAAAPQAAAJEF9eFTAAAAPgAAAJMAAACSAAAAPwAAAJYF9eEuAAAAPwAAAJkF9eEuAAAAPQAAAJUF9eFTAAAAPgAAAJkAAACWAAAAQAAAAJcF9eE2AAAAQgAAAJgF9eE1AAAARgX14VIF9eE0AAAAQAAAAJoF9eE2AAAAQgAAAJsF9eE1AAAARgAAAJwF9eE0AAAARwAAAJ0F9eFRAAAASQAAAJ4F9eFQAAAASgX14U0F9eFPAAAAKAAAAKAF9eE5AAAAKQX14TkAAAChAAAAKgAAALkAAACiAAAAMAAAAK4AAACjAAAAMQX14S0AAACkAAAAMwAAAKUAAAIOAAAAPAAAAKgAAACmAAAAPgX14TcAAACnAAAAPwAAAKkF9eEuAAAAPgX14TcAAACpAAAAQAAAAKoF9eE2AAAAQgAAAKsF9eE1AAAARQAAAKwF9eFBAAAARgAAAK0F9eE0AAAASAX14T8F9eEzAAAAMQX14S0AAACvAAAAMwAAALAAAAIOAAAAPAAAALMAAACxAAAAPgX14TcAAACyAAAAPwAAALQF9eEuAAAAPgX14TcAAAC0AAAAQAAAALUF9eE2AAAAQgAAALYF9eE1AAAARAX14S8AAAC3AAAARgAAALgF9eE0AAAASAX14TAF9eEzAAAAMAX14TgAAAC6AAAANAAAALsF9eFIAAAAQQX14UUAAAC8AAAAQwX14UYF9eFHAAAAGQX14SQF9eEqAAAAFQAAAL8F9eEXAAAAGQAAAMAF9eEqAAAAHgAAAMIAAADBAAAALgX14SIF9eEkAAAALgX14SEF9eEjAAAAFQAAAMQF9eEXAAAAGgX14VgAAADFAAAAHAX14VcAAADGAAAAIgAAAMkAAADHAAAAIwAAAMgAAAIhAAAAJAX14WUF9eFzAAAALgX14V8F9eFgAAAAEQAAAMsF9eEWAAAAFAAAAMwF9eEVAAAAFQAAAM0AAAImAAAAIQAAAM4AAAImAAAALAX14RAAAADPAAAALQX14RIF9eEUAAAACAAAANEAAADXAAAAEAAAANIAAADcAAAAEgAAANMAAADcAAAAEwAAANQAAADgAAAAFAAAANUAAADjAAAAFQAAAOcAAAGRAAAACAAAANoAAADXAAAAEwAAANgF9eEJAAAAFAAAANkAAADjAAAAFQAAAOcF9eEJAAAAEAAAANsAAADcAAAAEgAAAN8AAADcAAAAEwAAAN0AAADgAAAAFAAAAN4AAADjAAAAFQAAAOcF9eEMAAAAEwAAAOIAAADgAAAAFAAAAOEF9eEJAAAAFQX14QkF9eEMAAAAFAAAAOYAAADjAAAAFQAAAOQF9eEJAAAAHgAAAOUF9eEJAAAAIgX14QcF9eEJAAAAFQAAAOcAAAGfAAAAHgAAAOgF9eEIAAAAIgX14QcF9eEIAAAABAX14QIAAADqAAAABQAAAOsAAAHgAAAABgAAAQ8AAADsAAAABwAAAQ4AAADtAAAACAAAAO4AAAHrAAAACQAAAO8AAADzAAAACgAAAPAAAADzAAAACwAAAPEAAADzAAAADAAAAPIAAADzAAAADQAAAiMAAADzAAAADgAAAQoAAAD0AAAAFAAAAQgAAAD1AAAAGgAAAPYAAAELAAAAJQAAAPcF9eFWAAAAJgX14VYAAAD4AAAAJwAAAPkAAAIGAAAAKAAAAPoF9eE5AAAAKQX14TkAAAD7AAAAKgAAAhoAAAD8AAAAMAX14SsAAAD9AAAAMQX14S0AAAD+AAAAMwAAAP8AAAIOAAAAPAAAAQIAAAEAAAAAPgX14TcAAAEBAAAAPwAAAQMF9eEuAAAAPgX14TcAAAEDAAAAQAAAAQQF9eE2AAAAQgAAAQUF9eE1AAAARQAAAQYF9eFBAAAARgAAAQcF9eE0AAAASAX14T4F9eEzAAAAGQAAAQkF9eEqAAAALgX14R8F9eEgAAAAGgX14VgAAAELAAAAHAX14VcAAAEMAAAAIgAAAQ0AAAIgAAAALgX14V0F9eFeAAAACAAAAY0F9eEJAAAACAAAAZcF9eEJAAAAAwAAAVoAAAERAAAABAX14QMAAAESAAAABQAAARwAAAETAAAACAAAARQF9eFzAAAADwX14QUAAAEVAAAAEAAAARYAAAEZAAAAEgAAARcAAAEZAAAAEwAAARgAAAEZAAAAFgX14Q4AAAEZAAAAIwAAARoF9eEqAAAAJAX14WYAAAEbAAAALgX14WoF9eFrAAAABgAAAZUAAAEdAAAABwAAAYsAAAEeAAAACAAAAScAAAEfAAAADgAAAfUAAAEgAAAAGgAAASEAAAH2AAAAJQAAASIF9eFWAAAAJgX14VYAAAEjAAAAJwAAASQAAAEzAAAAKAAAASUF9eE5AAAAKQX14TkAAAEmAAAAKgAAAU8AAAH0AAAACQAAASgAAAEsAAAACgAAASkAAAEsAAAACwAAASoAAAEsAAAADAAAASsAAAEsAAAADQAAAYoAAAEsAAAADgAAAVMAAAEtAAAADwX14QUAAAEuAAAAFAAAAVEAAAEvAAAAGgAAATAAAAFVAAAAJQAAATEF9eFWAAAAJgX14VYAAAEyAAAAJwAAATUAAAEzAAAAMAX14ToAAAE0AAAAMgX14UoF9eFVAAAAKAAAATYF9eE5AAAAKQX14TkAAAE3AAAAKgAAAU8AAAE4AAAAMAAAAUQAAAE5AAAAMQX14S0AAAE6AAAAMwAAATsAAAIOAAAAPAAAAT4AAAE8AAAAPgX14TcAAAE9AAAAPwAAAT8F9eEuAAAAPgX14TcAAAE/AAAAQAAAAUAF9eE2AAAAQgAAAUEF9eE1AAAARQAAAUIF9eFBAAAARgAAAUMF9eE0AAAASAX14T0F9eEzAAAAMQX14S0AAAFFAAAAMwAAAUYAAAIOAAAAPAAAAUkAAAFHAAAAPgX14TcAAAFIAAAAPwAAAUoF9eEuAAAAPgX14TcAAAFKAAAAQAAAAUsF9eE2AAAAQgAAAUwF9eE1AAAARAX14S8AAAFNAAAARgAAAU4F9eE0AAAASAX14TEF9eEzAAAAMAX14TgAAAFQAAAANAX14UMF9eFIAAAAGQAAAVIF9eEqAAAALgX14RsF9eEcAAAADwX14QUAAAFUAAAAGgX14VgAAAFVAAAAHAX14VcAAAFWAAAAIgAAAVkAAAFXAAAAIwAAAVgAAAIhAAAAJAX14WYF9eFzAAAALgX14VsF9eFcAAAABAX14QIAAAFbAAAABQAAAWUAAAFcAAAACAAAAV0F9eFzAAAADwX14QUAAAFeAAAAEAAAAV8AAAFiAAAAEgAAAWAAAAFiAAAAEwAAAWEAAAFiAAAAFgX14Q4AAAFiAAAAIwAAAWMF9eEqAAAAJAX14SsAAAFkAAAALgX14WgF9eFpAAAABgAAAZUAAAFmAAAABwAAAYsAAAFnAAAACAAAAWgAAAHrAAAACQAAAWkAAAFtAAAACgAAAWoAAAFtAAAACwAAAWsAAAFtAAAADAAAAWwAAAFtAAAADQAAAYoAAAFtAAAADgAAAYUAAAFuAAAADwX14QUAAAFvAAAAFAAAAYMAAAFwAAAAGgAAAXEAAAGHAAAAJQAAAXIF9eFWAAAAJgX14VYAAAFzAAAAJwAAAXQAAAIGAAAAKAAAAXUF9eE5AAAAKQX14TkAAAF2AAAAKgAAAhoAAAF3AAAAMAX14SsAAAF4AAAAMQX14S0AAAF5AAAAMwAAAXoAAAIOAAAAPAAAAX0AAAF7AAAAPgX14TcAAAF8AAAAPwAAAX4F9eEuAAAAPgX14TcAAAF+AAAAQAAAAX8F9eE2AAAAQgAAAYAF9eE1AAAARQAAAYEF9eFBAAAARgAAAYIF9eE0AAAASAX14TwF9eEzAAAAGQAAAYQF9eEqAAAALgX14RkF9eEaAAAADwX14QUAAAGGAAAAGgX14VgAAAGHAAAAHAX14VcAAAGIAAAAIgAAAYkAAAIgAAAALgX14VkF9eFaAAAADwX14QUAAAIjAAAACAAAAYwF9eEJAAAADwX14QUAAAGNAAAAEAAAAY4AAAGaAAAAEgAAAY8AAAGaAAAAEwAAAZAAAAGaAAAAFAAAAZEF9eEJAAAAGwAAAZIF9eEMAAAAHQX14QsAAAGTAAAAHwX14QsAAAGUAAAAIAX14QsAAAGmAAAACAAAAZYF9eEJAAAADwX14QUAAAGXAAAAEAAAAZgAAAGaAAAAEgAAAZkAAAGaAAAAEwAAAZsAAAGaAAAAFAX14QwF9eEJAAAAFAAAAZ4AAAGcAAAAFgAAAZ0F9eEJAAAAIgX14QoF9eEJAAAAFgAAAaAAAAGfAAAAGwAAAaMF9eEMAAAAGwAAAaIAAAGhAAAAIgX14QoF9eEMAAAAIgX14QoAAAGjAAAAKwX14QsAAAGkAAAALwX14QsAAAGlAAAANQX14QsAAAGmAAAANgX14QsAAAGnAAAAOAX14QsF9eEMAAAAAgX14QEAAAGpAAAAAwAAAd4AAAGqAAAABAX14QQAAAGrAAAABQAAAbYAAAGsAAAACAAAAa0F9eFzAAAAEAAAAa4AAAGxAAAAEgAAAa8AAAGxAAAAEwAAAbAAAAGxAAAAFgX14Q4AAAGxAAAAIwAAAbIF9eEqAAAAJAX14SwAAAGzAAAALgX14XAAAAG0AAAAOQAAAbUF9eFyAAAAOgX14XEF9eFyAAAABgX14QYAAAG3AAAABwX14QYAAAG4AAAACAAAAcIAAAG5AAAADgAAAfUAAAG6AAAAGgAAAbsAAAH2AAAAJQAAAbwF9eFWAAAAJgX14VYAAAG9AAAAJwAAAb4AAAHRAAAAKAAAAb8F9eE5AAAAKQX14TkAAAHAAAAAKgAAAdcAAAHBAAAAMAX14SwAAAH0AAAACQAAAcMAAAHHAAAACgAAAcQAAAHHAAAACwAAAcUAAAHHAAAADAAAAcYAAAHHAAAADQAAAiMAAAHHAAAADgAAAdkAAAHIAAAADwAAAcwAAAHJAAAAFAAAAcoAAAHNAAAAGQAAAcsF9eEqAAAALgX14SUF9eEmAAAAFAAAAhwAAAHNAAAAGgAAAc4AAAHaAAAAJQAAAc8F9eFWAAAAJgX14VYAAAHQAAAAJwAAAdMAAAHRAAAAMAX14ToAAAHSAAAAMgX14UsF9eFVAAAAKAAAAdQF9eE5AAAAKQX14TkAAAHVAAAAKgAAAdcAAAHWAAAAMAX14SwAAAIMAAAAMAX14SwAAAHYAAAANAX14UQF9eFIAAAAGgX14VgAAAHaAAAAHAX14VcAAAHbAAAAIgX14WQAAAHcAAAAIwAAAd0AAAIhAAAAJAX14SwF9eFzAAAABAX14QIAAAHfAAAABQAAAegAAAHgAAAACAAAAeEF9eFzAAAAEAAAAeIAAAHlAAAAEgAAAeMAAAHlAAAAEwAAAeQAAAHlAAAAFgX14Q4AAAHlAAAAIwAAAeYF9eEqAAAAJAX14SsAAAHnAAAALgX14WwF9eFtAAAABgX14QYAAAHpAAAABwX14QYAAAHqAAAACAAAAfcAAAHrAAAADgAAAfUAAAHsAAAAGgAAAe0AAAH2AAAAJQAAAe4F9eFWAAAAJgX14VYAAAHvAAAAJwAAAfAAAAIGAAAAKAAAAfEF9eE5AAAAKQX14TkAAAHyAAAAKgAAAhoAAAHzAAAAMAX14SsAAAH0AAAAMQX14S0AAAIOAAAAGgX14VgAAAH2AAAAHAX14VcF9eFzAAAACQAAAfgAAAH8AAAACgAAAfkAAAH8AAAACwAAAfoAAAH8AAAADAAAAfsAAAH8AAAADQAAAiMAAAH8AAAADgAAAh0AAAH9AAAADwAAAgEAAAH+AAAAFAAAAf8AAAICAAAAGQAAAgAF9eEqAAAALgX14R0F9eEeAAAAFAAAAhwAAAICAAAAGgAAAgMAAAIeAAAAJQAAAgQF9eFWAAAAJgX14VYAAAIFAAAAJwAAAggAAAIGAAAAMAX14ToAAAIHAAAAMgX14UkF9eFVAAAAKAAAAgkF9eE5AAAAKQX14TkAAAIKAAAAKgAAAhoAAAILAAAAMAX14SsAAAIMAAAAMQX14S0AAAINAAAAMwAAAhEAAAIOAAAAPAX14TcAAAIPAAAAPgX14TcAAAIQAAAAPwX14TcF9eEuAAAAPAAAAhQAAAISAAAAPgX14TcAAAITAAAAPwAAAhUF9eEuAAAAPgX14TcAAAIVAAAAQAAAAhYF9eE2AAAAQgAAAhcF9eE1AAAARQAAAhgF9eFBAAAARgAAAhkF9eE0AAAASAX14TsF9eEzAAAAMAX14SsAAAIbAAAANAX14UIF9eFIAAAAGQX14RgF9eEqAAAAGgX14VgAAAIeAAAAHAX14VcAAAIfAAAAIgX14WQAAAIgAAAAIwAAAiIAAAIhAAAAJAX14SoF9eFzAAAAJAX14SsF9eFzAAAAEQAAAiQF9eEWAAAAFAAAAiUF9eEVAAAAIQAAAigAAAImAAAALAX14REAAAInAAAALQX14RMF9eEUAAAALAX14Q8AAAIpAAAALQX14Q8F9eEU" + }, + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "string" + }, + "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" + }, + "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" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "string" + }, + "ForcePathStyle": { + "builtIn": "AWS::S3::ForcePathStyle", + "required": true, + "default": false, + "documentation": "When true, force a path-style endpoint to be used where the bucket name is part of the path.", + "type": "boolean" + }, + "Accelerate": { + "builtIn": "AWS::S3::Accelerate", + "required": true, + "default": false, + "documentation": "When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.", + "type": "boolean" + }, + "UseGlobalEndpoint": { + "builtIn": "AWS::S3::UseGlobalEndpoint", + "required": true, + "default": false, + "documentation": "Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.", + "type": "boolean" + }, + "UseObjectLambdaEndpoint": { + "required": false, + "documentation": "Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)", + "type": "boolean" + }, + "Key": { + "required": false, + "documentation": "The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.", + "type": "string" + }, + "Prefix": { + "required": false, + "documentation": "The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.", + "type": "string" + }, + "CopySource": { + "required": false, + "documentation": "The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.", + "type": "string" + }, + "DisableAccessPoints": { + "required": false, + "documentation": "Internal parameter to disable Access Point Buckets", + "type": "boolean" + }, + "DisableMultiRegionAccessPoints": { + "builtIn": "AWS::S3::DisableMultiRegionAccessPoints", + "required": true, + "default": false, + "documentation": "Whether multi-region access points (MRAP) should be disabled.", + "type": "boolean" + }, + "UseArnRegion": { + "builtIn": "AWS::S3::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "boolean" + }, + "UseS3ExpressControlEndpoint": { + "required": false, + "documentation": "Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)", + "type": "boolean" + }, + "DisableS3ExpressSessionAuth": { + "required": false, + "documentation": "Parameter to indicate whether S3Express session auth should be disabled", + "type": "boolean" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Accelerate cannot be used with FIPS", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "A custom endpoint cannot be combined with FIPS", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "A custom endpoint cannot be combined with S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 6, + true + ], + "assign": "bucketSuffix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "bucketSuffix" + }, + "--x-s3" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3Express does not support S3 Accelerate.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 14, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 14, + 16, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 19, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 19, + 21, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 20, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 20, + 22, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 26, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 26, + 28, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 14, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 14, + 16, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 19, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 19, + 21, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 20, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 20, + 22, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 26, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 26, + 28, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 7, + true + ], + "assign": "accessPointSuffix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointSuffix" + }, + "--xa-s3" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3Express does not support S3 Accelerate.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 16, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 16, + 18, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 20, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 20, + 22, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 21, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 21, + 23, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 27, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 27, + 29, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 16, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 16, + 18, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 20, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 20, + 22, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 21, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 21, + 23, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 7, + 27, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 27, + 29, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3express-control.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 49, + 50, + true + ], + "assign": "hardwareType" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 8, + 12, + true + ], + "assign": "regionPrefix" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 7, + true + ], + "assign": "bucketAliasSuffix" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 32, + 49, + true + ], + "assign": "outpostId" + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "regionPartition" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "bucketAliasSuffix" + }, + "--op-s3" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "e" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "regionPrefix" + }, + "beta" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "error": "Expected a endpoint to be specified but no endpoint was found", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{Bucket}.ec2.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "o" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "regionPrefix" + }, + "beta" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "error": "Expected a endpoint to be specified but no endpoint was found", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId}.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Outposts Bucket alias - it must be a valid bucket name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ] + } + ], + "error": "Custom endpoint `{Endpoint}` was not a valid URI", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + false + ] + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "S3 Accelerate cannot be used in this region", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "scheme" + ] + }, + "http" + ] + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + false + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-object-lambda" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + } + ], + "error": "Invalid ARN: Missing account id", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "{partitionResult#name}" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "Access Points do not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 MRAP does not support dual-stack", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 MRAP does not support FIPS", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 MRAP does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableMultiRegionAccessPoints" + }, + true + ] + } + ], + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "mrapPartition" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "mrapPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "partition" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Access Point Name", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Outposts does not support Dual-stack", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 Outposts does not support FIPS", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Outposts does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[4]" + ] + } + ] + } + ], + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources", + "type": "error" + }, + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ] + }, + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found {outpostType}", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 4, + false + ], + "assign": "arnPrefix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnPrefix" + }, + "arn:" + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ] + } + ], + "error": "Invalid ARN: `{Bucket}` was not a valid ARN", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + true + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "error": "Path-style addressing cannot be used with ARN buckets", + "type": "error" + }, + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "A region must be set when sending requests to S3.", + "type": "error" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "region is not a valid DNS-suffix", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "a b", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Invalid access point ARN: Not S3", + "expect": { + "error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Invalid access point ARN: invalid resource", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data" + } + }, + { + "documentation": "Invalid access point ARN: invalid no ap name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:" + } + }, + { + "documentation": "Invalid access point ARN: AccountId is invalid", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname" + } + }, + { + "documentation": "Invalid access point ARN: access point name is invalid", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name" + } + }, + { + "documentation": "Access points (disable access points explicitly false)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points: partition does not support FIPS", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Bucket region is invalid", + "expect": { + "error": "Invalid region in ARN: `us-west -2` (invalid DNS name)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points when Access points explicitly disabled (used for CreateBucket)", + "expect": { + "error": "Access points are not supported for this operation" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "missing arn type", + "expect": { + "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:" + } + }, + { + "documentation": "SDK::Host + access point + Dualstack is an error", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Access point ARN with FIPS & Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access point ARN with Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "vanilla MRAP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support FIPS", + "expect": { + "error": "S3 MRAP does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support DualStack", + "expect": { + "error": "S3 MRAP does not support dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support S3 Accelerate", + "expect": { + "error": "S3 MRAP does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "MRAP explicitly disabled", + "expect": { + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::DisableMultiRegionAccessPoints": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Dual-stack endpoint with path-style forced", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true + } + }, + { + "documentation": "Dual-stack endpoint + SDK::Host is error", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://abc.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true, + "Endpoint": "https://abc.com" + } + }, + { + "documentation": "path style + ARN bucket", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "http://abc.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "http://abc.com" + } + }, + { + "documentation": "don't allow URL injections in the bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/example.com%23" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "example.com#", + "Key": "key" + } + } + ], + "params": { + "Bucket": "example.com#", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "URI encode bucket names in the path", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket%20name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket name", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "scheme is respected", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "scheme is respected (virtual addressing)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo" + } + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + implicit private link", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid Endpoint override", + "expect": { + "error": "Custom endpoint `abcde://nota#url` was not a valid URI" + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "abcde://nota#url", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "using an IPv4 address forces path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123.123.0.1/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://123.123.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "https://123.123.0.1", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "subdomains are not allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/bucket.name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with 3 characters are allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://aaa.s3.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aaa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aaa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with fewer than 3 characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/aa" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with uppercase characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/BucketName" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "BucketName", + "Key": "key" + } + } + ], + "params": { + "Bucket": "BucketName", + "Region": "us-east-1" + } + }, + { + "documentation": "subdomains are allowed in virtual buckets on http endpoints", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://bucket.name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "http://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1", + "Endpoint": "http://example.com" + } + }, + { + "documentation": "no region set", + "expect": { + "error": "A region must be set when sending requests to S3." + }, + "params": { + "Bucket": "bucket-name" + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "cn-north-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips and dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "ListObjects", + "operationParams": { + "Bucket": "bucket-name", + "Prefix": "prefix" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Prefix": "prefix", + "Key": "key" + } + }, + { + "documentation": "virtual addressing, aws-global region with Copy Source, and Key uses the global endpoint. Copy Source and Key parameters should not be used in endpoint evaluation.", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "CopySource": "/copy/source", + "Key": "key" + } + }, + { + "documentation": "virtual addressing, aws-global region with fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, aws-global region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with fips is invalid", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "name": "sigv4" + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket-name" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ARN with aws-global region and UseArnRegion uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseArnRegion": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "cross partition MRAP ARN is an error", + "expect": { + "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-west-1" + } + }, + { + "documentation": "Endpoint override, accesspoint with HTTP, port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://beta.example.com:1234" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Endpoint": "http://beta.example.com:1234", + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Endpoint override, accesspoint with http, path, query, and port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234/path" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "non-bucket endpoint override with FIPS = error", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "FIPS + dualstack + custom endpoint", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "dualstack + custom endpoint", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "custom endpoint without FIPS/dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://beta.example.com:1234/path" + } + }, + "params": { + "Region": "us-west-2", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "s3 object lambda with access points disabled", + "expect": { + "error": "Access points are not supported for this operation" + }, + "params": { + "Region": "us-west-2", + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:myendpoint", + "DisableAccessPoints": true + } + }, + { + "documentation": "non bucket + FIPS", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "standard non bucket endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "non bucket endpoint with FIPS + Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "non bucket endpoint with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "use global endpoint + IP address endpoint override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://127.0.0.1/bucket" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "http://127.0.0.1", + "UseGlobalEndpoint": true + } + }, + { + "documentation": "non-dns endpoint + global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "endpoint override + use global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://foo.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "FIPS + dualstack + non-bucket endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "FIPS + dualstack + non-DNS endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "endpoint override + FIPS + dualstack (BUG)", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "endpoint override + non-dns bucket + FIPS (BUG)", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "FIPS + bucket endpoint + force path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "bucket + FIPS + force path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "FIPS + dualstack + use global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bucket.s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": true, + "UseDualStack": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "URI encoded bucket + use global endpoint", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": true, + "UseDualStack": false, + "UseGlobalEndpoint": true, + "Endpoint": "https://foo.com" + } + }, + { + "documentation": "FIPS + path based endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "accelerate + dualstack + global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bucket.s3-accelerate.dualstack.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "dualstack + global endpoint + non URI safe bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "Accelerate": false, + "UseDualStack": true, + "UseFIPS": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "FIPS + uri encoded bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": true, + "Accelerate": false, + "UseDualStack": false, + "UseFIPS": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "endpoint override + non-uri safe endpoint + force path style", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "ForcePathStyle": true, + "Accelerate": false, + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "http://foo.com", + "UseGlobalEndpoint": true + } + }, + { + "documentation": "FIPS + Dualstack + global endpoint + non-dns bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "bucket!", + "Accelerate": false, + "UseDualStack": true, + "UseFIPS": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "endpoint override + FIPS + dualstack", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true, + "UseGlobalEndpoint": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "non-bucket endpoint override + dualstack + global endpoint", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "UseGlobalEndpoint": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "Endpoint override + UseGlobalEndpoint + us-east-1", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "UseGlobalEndpoint": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "non-FIPS partition with FIPS set + custom endpoint", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "aws-global signs as us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "UseFIPS": true, + "Accelerate": false, + "UseDualStack": true + } + }, + { + "documentation": "aws-global signs as us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket.foo.com" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false, + "Endpoint": "https://foo.com" + } + }, + { + "documentation": "aws-global + dualstack + path-only bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": true, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global + path-only bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!" + } + }, + { + "documentation": "aws-global + fips + custom endpoint", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": false, + "UseFIPS": true, + "Accelerate": false, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "aws-global, endpoint override & path only-bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://foo.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "aws-global + dualstack + custom endpoint", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "aws-global", + "UseDualStack": true, + "UseFIPS": false, + "Accelerate": false, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "accelerate, dualstack + aws-global", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket.s3-accelerate.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket", + "UseDualStack": true, + "UseFIPS": false, + "Accelerate": true + } + }, + { + "documentation": "FIPS + aws-global + path only bucket. This is not supported by S3 but we allow garbage in garbage out", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "ForcePathStyle": true, + "UseDualStack": true, + "UseFIPS": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global + FIPS + endpoint override.", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "aws-global", + "UseFIPS": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "force path style, FIPS, aws-global & endpoint override", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "ForcePathStyle": true, + "UseFIPS": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "ip address causes path style to be forced", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://192.168.1.1/bucket" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket", + "Endpoint": "http://192.168.1.1" + } + }, + { + "documentation": "endpoint override with aws-global region", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "FIPS + path-only (TODO: consider making this an error)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket!", + "UseFIPS": true + } + }, + { + "documentation": "empty arn type", + "expect": { + "error": "Invalid ARN: No ARN type specified" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:not-s3:us-west-2:123456789012::myendpoint" + } + }, + { + "documentation": "path style can't be used with accelerate", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket!", + "Accelerate": true + } + }, + { + "documentation": "invalid region", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "us-east-2!", + "Bucket": "bucket.subdomain", + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "invalid region", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "us-east-2!", + "Bucket": "bucket", + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "empty arn type", + "expect": { + "error": "Invalid Access Point Name" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3::123456789012:accesspoint:my_endpoint" + } + }, + { + "documentation": "empty arn type", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint`) has `aws-cn`" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint", + "UseArnRegion": true + } + }, + { + "documentation": "invalid arn region", + "expect": { + "error": "Invalid region in ARN: `us-east_2` (invalid DNS name)" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-object-lambda:us-east_2:123456789012:accesspoint:my-endpoint", + "UseArnRegion": true + } + }, + { + "documentation": "invalid ARN outpost", + "expect": { + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `op_01234567890123456`" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op_01234567890123456/accesspoint/reports", + "UseArnRegion": true + } + }, + { + "documentation": "invalid ARN", + "expect": { + "error": "Invalid ARN: expected an access point name" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/reports" + } + }, + { + "documentation": "invalid ARN", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456" + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "error": "Expected an outpost type `accesspoint`, found not-accesspoint" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports" + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "error": "Invalid region in ARN: `us-east_1` (invalid DNS name)" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east_1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports" + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `12345_789012`" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:12345_789012:outpost/op-01234567890123456/not-accesspoint/reports" + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "error": "Invalid ARN: The Outpost Id was not set" + }, + "params": { + "Region": "us-east-2", + "Bucket": "arn:aws:s3-outposts:us-east-1:12345789012:outpost" + } + }, + { + "documentation": "use global endpoint virtual addressing", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucket.example.com" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket", + "Endpoint": "http://example.com", + "UseGlobalEndpoint": true + } + }, + { + "documentation": "global endpoint + ip address", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://192.168.0.1/bucket" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket", + "Endpoint": "http://192.168.0.1", + "UseGlobalEndpoint": true + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-east-2.amazonaws.com/bucket%21" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket!", + "UseGlobalEndpoint": true + } + }, + { + "documentation": "invalid outpost type", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket.s3-accelerate.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket", + "Accelerate": true, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "use global endpoint + custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://foo.com/bucket%21" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket!", + "UseGlobalEndpoint": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "use global endpoint, not us-east-1, force path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-2", + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://foo.com/bucket%21" + } + }, + "params": { + "Region": "us-east-2", + "Bucket": "bucket!", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "Endpoint": "http://foo.com" + } + }, + { + "documentation": "vanilla virtual addressing@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "accelerate + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "accelerate (dualstack=false)@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "virtual addressing + dualstack + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "accelerate + fips = error@us-west-2", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "vanilla virtual addressing@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "accelerate (dualstack=false)@cn-north-1", + "expect": { + "error": "S3 Accelerate cannot be used in this region" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + fips@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "vanilla virtual addressing@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "accelerate + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "accelerate (dualstack=false)@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "virtual addressing + dualstack + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "accelerate + fips = error@af-south-1", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "vanilla path style@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "fips@us-gov-west-2, bucket is not S3-dns-compatible (subdomains)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true, + "name": "sigv4" + } + ] + }, + "url": "https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.with.dots", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket.with.dots", + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "path style + accelerate = error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "path style + arn is error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "no path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla path style@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + fips@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "path style + accelerate = error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "path style + arn is error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "no path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla path style@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true, + "name": "sigv4" + } + ] + }, + "url": "https://s3-fips.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "path style + accelerate = error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "path style + arn is error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "no path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + FIPS@us-west-2", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "SDK::Host + DualStack@us-west-2", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "SDK::HOST + accelerate@us-west-2", + "expect": { + "error": "A custom endpoint cannot be combined with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + access point ARN@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "SDK::Host + DualStack@cn-north-1", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "SDK::HOST + accelerate@cn-north-1", + "expect": { + "error": "A custom endpoint cannot be combined with S3 Accelerate" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + access point ARN@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + FIPS@af-south-1", + "expect": { + "error": "A custom endpoint cannot be combined with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "SDK::Host + DualStack@af-south-1", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "SDK::HOST + accelerate@af-south-1", + "expect": { + "error": "A custom endpoint cannot be combined with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + access point ARN@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "access point arn + accelerate = error@us-west-2", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS + DualStack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "vanilla access point arn@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "access point arn + accelerate = error@cn-north-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS + DualStack@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "vanilla access point arn@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "access point arn + accelerate = error@af-south-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point arn + FIPS + DualStack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "S3 outposts vanilla test", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Endpoint": "https://example.amazonaws.com" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outposts arn with region mismatch, custom region and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://example.com", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outposts arn with partition mismatch and UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support dualstack", + "expect": { + "error": "S3 Outposts does not support Dual-stack" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support fips", + "expect": { + "error": "S3 Outposts does not support FIPS" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support accelerate", + "expect": { + "error": "S3 Outposts does not support S3 Accelerate" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "validates against subresource", + "expect": { + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "validates against access point host label", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `invalid.bucket#`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:invalid.bucket#" + } + }, + { + "documentation": "object lambda @us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda, colon resource deliminator @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region us-west-2, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1, with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, with fips", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - bad service and someresource", + "expect": { + "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource" + } + }, + { + "documentation": "object lambda with invalid arn - invalid resource", + "expect": { + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing region", + "expect": { + "error": "Invalid ARN: bucket ARN is missing a region" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - missing account-id", + "expect": { + "error": "Invalid ARN: Missing account id" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - account id contains invalid characters", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing access point name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: *", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: .", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains sub resources", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "object lambda with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Endpoint": "https://my-endpoint.com" + } + }, + { + "documentation": "object lambda arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse @ us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Endpoint": "https://my-endpoint.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "params": { + "Accelerate": true, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips in CN", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Region": "cn-north-1", + "UseObjectLambdaEndpoint": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with invalid partition", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "not a valid DNS name", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with an unknown partition", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "us-east.special" + } + ] + }, + "url": "https://s3-object-lambda.us-east.special.amazonaws.com" + } + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east.special", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Real Outpost Prod us-west-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Real Outpost Prod ap-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "ap-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod me-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "me-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Real Outpost Beta", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Ec2 Outpost Beta", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3-outposts", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true + }, + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias - No endpoint set for beta", + "expect": { + "error": "Expected a endpoint to be specified but no endpoint was found" + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts invalid bucket name", + "expect": { + "error": "Invalid Outposts Bucket alias - it must be a valid bucket name." + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1de75431d83bebd/8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Invalid hardware type", + "expect": { + "error": "Unrecognized hardware type: \"Expected hardware type o or e but got h\"" + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-h0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias Special character in Outpost Arn", + "expect": { + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`." + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o00000754%1d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts bucketAlias - No endpoint set for beta", + "expect": { + "error": "Expected a endpoint to be specified but no endpoint was found" + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-e0b1d075431d83bebde8xz5w8ijx1qzlbp3i3ebeta0--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Snow with bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://10.0.1.12:433/bucketName" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "http://10.0.1.12:433", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Snow without bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://10.0.1.12:433" + } + }, + "params": { + "Region": "snow", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Snow no port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://10.0.1.12/bucketName" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "http://10.0.1.12", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Snow dns endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://amazonaws.com/bucketName" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Data Plane with short zone name", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--abcd-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--abcd-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone name china region", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--abcd-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "mybucket--abcd-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone name with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone name with AP china region", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "myaccesspoint--abcd-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone names (13 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone names (13 chars) with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with medium zone names (14 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with medium zone names (14 chars) with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long zone names (20 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long zone names (20 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-ab1--x-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone fips china region", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-ab1--xa-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone fips with AP china region", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone (13 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short zone (13 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with medium zone (14 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with medium zone (14 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long zone (20 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long zone (20 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Control plane with short AZ bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane with short AZ bucket china region", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.cn-north-1.amazonaws.com.cn/mybucket--test-ab1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane with short AZ bucket and fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane with short AZ bucket and fips china region", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "cn-north-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane without bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane without bucket and fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short zone (13 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short zone (13 chars) with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short zone (13 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short zone (13 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with medium zone(14 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with medium zone(14 chars) with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone(20 chars)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone(20 chars) with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-az1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with medium zone (14 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with medium zone (14 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone (20 chars) fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone (20 chars) fips with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Control Plane host override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.custom.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Control Plane host override with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.custom.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Control Plane host override no bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://custom.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Data plane host override non virtual session auth", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://10.0.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Data plane host override non virtual session auth with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://10.0.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Control Plane host override ip", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Control Plane host override ip with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Data plane host override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.custom.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Data plane host override with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.custom.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "bad format error", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usaz1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "bad AP format error", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--usaz1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "myaccesspoint--usaz1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "bad format error no session auth", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usaz1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "bad AP format error no session auth", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--usaz1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "myaccesspoint--usaz1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "accelerate error", + "expect": { + "error": "S3Express does not support S3 Accelerate." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "accelerate error with AP", + "expect": { + "error": "S3Express does not support S3 Accelerate." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "myaccesspoint--test-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data plane bucket format error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.bucket--test-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "my.bucket--test-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data plane AP format error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.myaccesspoint--test-ab1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "my.myaccesspoint--test-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "host override data plane bucket error session auth", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.bucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "host override data plane AP error session auth", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.myaccesspoint--usw2-az1--xa-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "my.myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "host override data plane bucket error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "params": { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com", + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "host override data plane AP error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "params": { + "Region": "us-west-2", + "Bucket": "my.myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com", + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Control plane without bucket and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane without bucket, fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Data Plane with bucket containing delimiters", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://my--s3--bucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my--s3--bucket--abcd-ab1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "my--s3--bucket--abcd-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Control plane with with bucket containing delimiters", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.us-east-1.amazonaws.com/my--s3--bucket--abcd-ab1--x-s3" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "my--s3--bucket--abcd-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Data Plane with short AZ and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short AZ and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with 9-char zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az12--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with 13-char zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with 13-char zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with 13-char zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with 13-char zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with 14-char zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with 14-char zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with 14-char zone and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with 14-char zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with long zone (20 cha) and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long zone (20 char) and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone (20 char) and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long zone (20 char) and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--test1-long1-zone-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Control plane and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true + } + }, + { + "documentation": "Data plane with zone and dualstack and AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data plane with zone and FIPS with dualstack and AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with zone and dualstack and AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane AP sigv4 auth with zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with zone (9 char) and AP with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with zone (9 char) and FIPS with AP and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with (9 char) zone and dualstack with AP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Access Point sigv4 auth with (9 char) zone and FIPS with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--usw2-az12--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with zone (13 char) and AP with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with zone (13 char) and AP with FIPS and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with (13 char) zone with AP and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with (13 char) zone with AP and FIPS and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with (14 char) zone and AP with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with (14 char) zone and AP with FIPS and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane sigv4 auth with (14 char) zone and AP with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with (14 char) zone and AP with FIPS and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane with (20 char) zone and AP with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with (20 char) zone and AP with FIPS and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data plane AP with sigv4 and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data plane AP sigv4 with fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "myaccesspoint--test1-long1-zone-ab1--xa-s3", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Control plane with dualstack and bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--test-ab1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--test-ab1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.s3#AnalyticsAndOperator": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix to use when evaluating an AND predicate: The prefix that an object must have to be\n included in the metrics results.

" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

The list of tags to use when evaluating an AND predicate.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The\n operator must have at least two predicates in any combination, and an object must match all of the\n predicates for the filter to apply.

" + } + }, + "com.amazonaws.s3#AnalyticsConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#AnalyticsId", + "traits": { + "smithy.api#documentation": "

The ID that identifies the analytics configuration.

", + "smithy.api#required": {} + } + }, + "Filter": { + "target": "com.amazonaws.s3#AnalyticsFilter", + "traits": { + "smithy.api#documentation": "

The filter used to describe a set of objects for analyses. A filter must have exactly one prefix,\n one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be\n considered in any analysis.

" + } + }, + "StorageClassAnalysis": { + "target": "com.amazonaws.s3#StorageClassAnalysis", + "traits": { + "smithy.api#documentation": "

Contains data related to access patterns to be collected and made available to analyze the\n tradeoffs between different storage classes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#AnalyticsConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#AnalyticsConfiguration" + } + }, + "com.amazonaws.s3#AnalyticsExportDestination": { + "type": "structure", + "members": { + "S3BucketDestination": { + "target": "com.amazonaws.s3#AnalyticsS3BucketDestination", + "traits": { + "smithy.api#documentation": "

A destination signifying output to an S3 bucket.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Where to publish the analytics results.

" + } + }, + "com.amazonaws.s3#AnalyticsFilter": { + "type": "union", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix to use when evaluating an analytics filter.

" + } + }, + "Tag": { + "target": "com.amazonaws.s3#Tag", + "traits": { + "smithy.api#documentation": "

The tag to use when evaluating an analytics filter.

" + } + }, + "And": { + "target": "com.amazonaws.s3#AnalyticsAndOperator", + "traits": { + "smithy.api#documentation": "

A conjunction (logical AND) of predicates, which is used in evaluating an analytics filter. The\n operator must have at least two predicates.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filter used to describe a set of objects for analyses. A filter must have exactly one prefix,\n one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be\n considered in any analysis.

" + } + }, + "com.amazonaws.s3#AnalyticsId": { + "type": "string" + }, + "com.amazonaws.s3#AnalyticsS3BucketDestination": { + "type": "structure", + "members": { + "Format": { + "target": "com.amazonaws.s3#AnalyticsS3ExportFileFormat", + "traits": { + "smithy.api#documentation": "

Specifies the file format used when exporting data to Amazon S3.

", + "smithy.api#required": {} + } + }, + "BucketAccountId": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not\n validated before exporting data.

\n \n

Although this value is optional, we strongly recommend that you set it to help prevent problems\n if the destination bucket ownership changes.

\n
" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bucket to which data is exported.

", + "smithy.api#required": {} + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix to use when exporting data. The prefix is prepended to all results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about where to publish the analytics results.

" + } + }, + "com.amazonaws.s3#AnalyticsS3ExportFileFormat": { + "type": "enum", + "members": { + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CSV" + } + } + } + }, + "com.amazonaws.s3#AnnotationConfigurationState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.s3#AnnotationCount": { + "type": "integer" + }, + "com.amazonaws.s3#AnnotationDirective": { + "type": "enum", + "members": { + "COPY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COPY" + } + }, + "EXCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUDE" + } + } + } + }, + "com.amazonaws.s3#AnnotationEntry": { + "type": "structure", + "members": { + "AnnotationName": { + "target": "com.amazonaws.s3#AnnotationName", + "traits": { + "smithy.api#documentation": "

The name of the annotation.

", + "smithy.api#required": {} + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

The date and time the annotation was last modified.

", + "smithy.api#required": {} + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

The entity tag of the annotation.

" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithmList", + "traits": { + "smithy.api#documentation": "

The checksum algorithm used for the annotation.

", + "smithy.api#xmlFlattened": {} + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

The size of the annotation payload, in bytes.

", + "smithy.api#required": {} + } + }, + "ReplicationStatus": { + "target": "com.amazonaws.s3#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

The replication status of the annotation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a single annotation attached to an object, including its name, last modified time,\n size, ETag, checksum algorithm, and replication status. Returned in the response from\n ListObjectAnnotations.

" + } + }, + "com.amazonaws.s3#AnnotationLimitExceeded": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The request would exceed the maximum number of annotations allowed per object.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#AnnotationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#AnnotationEntry", + "traits": { + "smithy.api#xmlName": "AnnotationEntry" + } + } + }, + "com.amazonaws.s3#AnnotationName": { + "type": "string" + }, + "com.amazonaws.s3#AnnotationNameTooLong": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The annotation name exceeds 512 bytes.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#AnnotationPrefix": { + "type": "string" + }, + "com.amazonaws.s3#AnnotationTableConfiguration": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#AnnotationConfigurationState", + "traits": { + "smithy.api#documentation": "

The state of the annotation table. Valid values are ENABLED and DISABLED.

", + "smithy.api#required": {} + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#MetadataTableEncryptionConfiguration" + }, + "Role": { + "target": "com.amazonaws.s3#Role", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role used to manage the annotation table.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the configuration for the annotation table associated with a bucket's Amazon S3 Metadata\n configuration. The annotation table is an Iceberg table that records annotation events for objects\n in the bucket.

" + } + }, + "com.amazonaws.s3#AnnotationTableConfigurationResult": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#AnnotationConfigurationState", + "traits": { + "smithy.api#documentation": "

The current configuration state of the annotation table.

", + "smithy.api#required": {} + } + }, + "TableStatus": { + "target": "com.amazonaws.s3#MetadataTableStatus", + "traits": { + "smithy.api#documentation": "

The provisioning status of the annotation table. Possible values: CREATING, BACKFILLING, ACTIVE, FAILED.

" + } + }, + "Error": { + "target": "com.amazonaws.s3#ErrorDetails" + }, + "TableName": { + "target": "com.amazonaws.s3#S3TablesName", + "traits": { + "smithy.api#documentation": "

The name of the annotation table.

" + } + }, + "TableArn": { + "target": "com.amazonaws.s3#S3TablesArn", + "traits": { + "smithy.api#documentation": "

The ARN of the annotation table.

" + } + }, + "Role": { + "target": "com.amazonaws.s3#Role", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role associated with the annotation table.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the current state of the annotation table associated with a bucket's Amazon S3 Metadata\n configuration, including its provisioning status and identifiers.

" + } + }, + "com.amazonaws.s3#AnnotationTableConfigurationUpdates": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#AnnotationConfigurationState", + "traits": { + "smithy.api#documentation": "

The new configuration state to apply.

", + "smithy.api#required": {} + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#MetadataTableEncryptionConfiguration" + }, + "Role": { + "target": "com.amazonaws.s3#Role", + "traits": { + "smithy.api#documentation": "

The new IAM role ARN to apply.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies updates to apply to the annotation table configuration. Used as the request body for\n UpdateBucketMetadataAnnotationTableConfiguration.

" + } + }, + "com.amazonaws.s3#ArchiveStatus": { + "type": "enum", + "members": { + "ARCHIVE_ACCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARCHIVE_ACCESS" + } + }, + "DEEP_ARCHIVE_ACCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEEP_ARCHIVE_ACCESS" + } + } + } + }, + "com.amazonaws.s3#BlockedEncryptionTypes": { + "type": "structure", + "members": { + "EncryptionType": { + "target": "com.amazonaws.s3#EncryptionTypeList", + "traits": { + "smithy.api#documentation": "

The object encryption type that you want to block or unblock for an Amazon S3 general purpose bucket.

\n \n

Currently, this parameter only supports blocking or unblocking server side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see Using server-side encryption with customer-provided keys (SSE-C).

\n
", + "smithy.api#xmlFlattened": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block PutObject, CopyObject, PostObject, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see Blocking or unblocking SSE-C for a general purpose bucket.

\n

This data type is used with the following actions:

\n \n
\n
Permissions
\n
\n

You must have the s3:PutEncryptionConfiguration permission to block or unblock an encryption type for a bucket.

\n

You must have the s3:GetEncryptionConfiguration permission to view a bucket's encryption type.

\n
\n
" + } + }, + "com.amazonaws.s3#Body": { + "type": "blob" + }, + "com.amazonaws.s3#Bucket": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.s3#CreationDate", + "traits": { + "smithy.api#documentation": "

Date the bucket was created. This date can change when making changes to your bucket, such as\n editing its bucket policy.

" + } + }, + "BucketRegion": { + "target": "com.amazonaws.s3#BucketRegion", + "traits": { + "smithy.api#documentation": "

\n BucketRegion indicates the Amazon Web Services region where the bucket is located. If the request\n contains at least one valid parameter, it is included in the response.

" + } + }, + "BucketArn": { + "target": "com.amazonaws.s3#S3RegionalOrS3ExpressBucketArnString", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all\n of Amazon Web Services.

\n \n

This parameter is only supported for S3 directory buckets. For more information, see Using tags with\n directory buckets.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

In terms of implementation, a Bucket is a resource.

" + } + }, + "com.amazonaws.s3#BucketAbacStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#BucketAccelerateStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Suspended": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Suspended" + } + } + } + }, + "com.amazonaws.s3#BucketAlreadyExists": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The requested bucket name is not available. The bucket namespace is shared by all users of the\n system. Select a different name and try again.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.s3#BucketAlreadyOwnedByYou": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all Amazon Web Services\n Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing\n bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket\n access control lists (ACLs).

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.s3#BucketCannedACL": { + "type": "enum", + "members": { + "private": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + }, + "public_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-read" + } + }, + "public_read_write": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-read-write" + } + }, + "authenticated_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "authenticated-read" + } + } + } + }, + "com.amazonaws.s3#BucketInfo": { + "type": "structure", + "members": { + "DataRedundancy": { + "target": "com.amazonaws.s3#DataRedundancy", + "traits": { + "smithy.api#documentation": "

The number of Zone (Availability Zone or Local Zone) that's used for redundancy for the bucket.

" + } + }, + "Type": { + "target": "com.amazonaws.s3#BucketType", + "traits": { + "smithy.api#documentation": "

The type of bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the information about the bucket that will be created. For more information about\n directory buckets, see Directory buckets in the\n Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" + } + }, + "com.amazonaws.s3#BucketKeyEnabled": { + "type": "boolean" + }, + "com.amazonaws.s3#BucketLifecycleConfiguration": { + "type": "structure", + "members": { + "Rules": { + "target": "com.amazonaws.s3#LifecycleRules", + "traits": { + "smithy.api#documentation": "

A lifecycle rule for individual objects in an Amazon S3 bucket.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Rule" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see\n Object Lifecycle\n Management in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#BucketLocationConstraint": { + "type": "enum", + "members": { + "af_south_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "af-south-1" + } + }, + "ap_east_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-east-1" + } + }, + "ap_east_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-east-2" + } + }, + "ap_northeast_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-northeast-1" + } + }, + "ap_northeast_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-northeast-2" + } + }, + "ap_northeast_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-northeast-3" + } + }, + "ap_south_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-south-1" + } + }, + "ap_south_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-south-2" + } + }, + "ap_southeast_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-1" + } + }, + "ap_southeast_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-2" + } + }, + "ap_southeast_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-3" + } + }, + "ap_southeast_4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-4" + } + }, + "ap_southeast_5": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-5" + } + }, + "ap_southeast_6": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-6" + } + }, + "ap_southeast_7": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ap-southeast-7" + } + }, + "ca_central_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ca-central-1" + } + }, + "ca_west_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ca-west-1" + } + }, + "cn_north_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cn-north-1" + } + }, + "cn_northwest_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cn-northwest-1" + } + }, + "EU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EU" + } + }, + "eu_central_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-central-1" + } + }, + "eu_central_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-central-2" + } + }, + "eu_north_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-north-1" + } + }, + "eu_south_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-south-1" + } + }, + "eu_south_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-south-2" + } + }, + "eu_west_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-west-1" + } + }, + "eu_west_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-west-2" + } + }, + "eu_west_3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "eu-west-3" + } + }, + "il_central_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "il-central-1" + } + }, + "me_central_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "me-central-1" + } + }, + "me_south_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "me-south-1" + } + }, + "mx_central_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mx-central-1" + } + }, + "sa_east_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sa-east-1" + } + }, + "us_east_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "us-east-2" + } + }, + "us_gov_east_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "us-gov-east-1" + } + }, + "us_gov_west_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "us-gov-west-1" + } + }, + "us_west_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "us-west-1" + } + }, + "us_west_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "us-west-2" + } + } + } + }, + "com.amazonaws.s3#BucketLocationName": { + "type": "string" + }, + "com.amazonaws.s3#BucketLoggingStatus": { + "type": "structure", + "members": { + "LoggingEnabled": { + "target": "com.amazonaws.s3#LoggingEnabled" + } + }, + "traits": { + "smithy.api#documentation": "

Container for logging status information.

" + } + }, + "com.amazonaws.s3#BucketLogsPermission": { + "type": "enum", + "members": { + "FULL_CONTROL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULL_CONTROL" + } + }, + "READ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ" + } + }, + "WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WRITE" + } + } + } + }, + "com.amazonaws.s3#BucketName": { + "type": "string" + }, + "com.amazonaws.s3#BucketNamespace": { + "type": "enum", + "members": { + "ACCOUNT_REGIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "account-regional" + } + }, + "GLOBAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "global" + } + } + } + }, + "com.amazonaws.s3#BucketRegion": { + "type": "string" + }, + "com.amazonaws.s3#BucketType": { + "type": "enum", + "members": { + "Directory": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Directory" + } + } + } + }, + "com.amazonaws.s3#BucketVersioningStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Suspended": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Suspended" + } + } + } + }, + "com.amazonaws.s3#Buckets": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Bucket", + "traits": { + "smithy.api#xmlName": "Bucket" + } + } + }, + "com.amazonaws.s3#BypassGovernanceRetention": { + "type": "boolean" + }, + "com.amazonaws.s3#BytesProcessed": { + "type": "long" + }, + "com.amazonaws.s3#BytesReturned": { + "type": "long" + }, + "com.amazonaws.s3#BytesScanned": { + "type": "long" + }, + "com.amazonaws.s3#CORSConfiguration": { + "type": "structure", + "members": { + "CORSRules": { + "target": "com.amazonaws.s3#CORSRules", + "traits": { + "smithy.api#documentation": "

A set of origins and methods (cross-origin access that you want to allow). You can add up to 100\n rules to the configuration.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "CORSRule" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information,\n see Enabling Cross-Origin Resource\n Sharing in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#CORSRule": { + "type": "structure", + "members": { + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

" + } + }, + "AllowedHeaders": { + "target": "com.amazonaws.s3#AllowedHeaders", + "traits": { + "smithy.api#documentation": "

Headers that are specified in the Access-Control-Request-Headers header. These headers\n are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns\n any requested headers that are allowed.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "AllowedHeader" + } + }, + "AllowedMethods": { + "target": "com.amazonaws.s3#AllowedMethods", + "traits": { + "smithy.api#documentation": "

An HTTP method that you allow the origin to execute. Valid values are GET,\n PUT, HEAD, POST, and DELETE.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "AllowedMethod" + } + }, + "AllowedOrigins": { + "target": "com.amazonaws.s3#AllowedOrigins", + "traits": { + "smithy.api#documentation": "

One or more origins you want customers to be able to access the bucket from.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "AllowedOrigin" + } + }, + "ExposeHeaders": { + "target": "com.amazonaws.s3#ExposeHeaders", + "traits": { + "smithy.api#documentation": "

One or more headers in the response that you want customers to be able to access from their\n applications (for example, from a JavaScript XMLHttpRequest object).

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "ExposeHeader" + } + }, + "MaxAgeSeconds": { + "target": "com.amazonaws.s3#MaxAgeSeconds", + "traits": { + "smithy.api#documentation": "

The time in seconds that your browser is to cache the preflight response for the specified\n resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a cross-origin access rule for an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#CORSRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#CORSRule" + } + }, + "com.amazonaws.s3#CSVInput": { + "type": "structure", + "members": { + "FileHeaderInfo": { + "target": "com.amazonaws.s3#FileHeaderInfo", + "traits": { + "smithy.api#documentation": "

Describes the first line of input. Valid values are:

\n
    \n
  • \n

    \n NONE: First line is not a header.

    \n
  • \n
  • \n

    \n IGNORE: First line is a header, but you can't use the header values to indicate the\n column in an expression. You can use column position (such as _1, _2, …) to indicate the column\n (SELECT s._1 FROM OBJECT s).

    \n
  • \n
  • \n

    \n Use: First line is a header, and you can use the header value to identify a column\n in an expression (SELECT \"name\" FROM OBJECT).

    \n
  • \n
" + } + }, + "Comments": { + "target": "com.amazonaws.s3#Comments", + "traits": { + "smithy.api#documentation": "

A single character used to indicate that a row should be ignored when the character is present at\n the start of that row. You can specify any character to indicate a comment line. The default character\n is #.

\n

Default: #\n

" + } + }, + "QuoteEscapeCharacter": { + "target": "com.amazonaws.s3#QuoteEscapeCharacter", + "traits": { + "smithy.api#documentation": "

A single character used for escaping the quotation mark character inside an already escaped value.\n For example, the value \"\"\" a , b \"\"\" is parsed as \" a , b \".

" + } + }, + "RecordDelimiter": { + "target": "com.amazonaws.s3#RecordDelimiter", + "traits": { + "smithy.api#documentation": "

A single character used to separate individual records in the input. Instead of the default value,\n you can specify an arbitrary delimiter.

" + } + }, + "FieldDelimiter": { + "target": "com.amazonaws.s3#FieldDelimiter", + "traits": { + "smithy.api#documentation": "

A single character used to separate individual fields in a record. You can specify an arbitrary\n delimiter.

" + } + }, + "QuoteCharacter": { + "target": "com.amazonaws.s3#QuoteCharacter", + "traits": { + "smithy.api#documentation": "

A single character used for escaping when the field delimiter is part of the value. For example, if\n the value is a, b, Amazon S3 wraps this field value in quotation marks, as follows: \" a ,\n b \".

\n

Type: String

\n

Default: \"\n

\n

Ancestors: CSV\n

" + } + }, + "AllowQuotedRecordDelimiter": { + "target": "com.amazonaws.s3#AllowQuotedRecordDelimiter", + "traits": { + "smithy.api#documentation": "

Specifies that CSV field values may contain quoted record delimiters and such records should be\n allowed. Default value is FALSE. Setting this value to TRUE may lower performance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes how an uncompressed comma-separated values (CSV)-formatted input object is\n formatted.

" + } + }, + "com.amazonaws.s3#CSVOutput": { + "type": "structure", + "members": { + "QuoteFields": { + "target": "com.amazonaws.s3#QuoteFields", + "traits": { + "smithy.api#documentation": "

Indicates whether to use quotation marks around output fields.

\n
    \n
  • \n

    \n ALWAYS: Always use quotation marks for output fields.

    \n
  • \n
  • \n

    \n ASNEEDED: Use quotation marks for output fields when needed.

    \n
  • \n
" + } + }, + "QuoteEscapeCharacter": { + "target": "com.amazonaws.s3#QuoteEscapeCharacter", + "traits": { + "smithy.api#documentation": "

The single character used for escaping the quote character inside an already escaped value.

" + } + }, + "RecordDelimiter": { + "target": "com.amazonaws.s3#RecordDelimiter", + "traits": { + "smithy.api#documentation": "

A single character used to separate individual records in the output. Instead of the default value,\n you can specify an arbitrary delimiter.

" + } + }, + "FieldDelimiter": { + "target": "com.amazonaws.s3#FieldDelimiter", + "traits": { + "smithy.api#documentation": "

The value used to separate individual fields in a record. You can specify an arbitrary\n delimiter.

" + } + }, + "QuoteCharacter": { + "target": "com.amazonaws.s3#QuoteCharacter", + "traits": { + "smithy.api#documentation": "

A single character used for escaping when the field delimiter is part of the value. For example, if\n the value is a, b, Amazon S3 wraps this field value in quotation marks, as follows: \" a ,\n b \".

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes how uncompressed comma-separated values (CSV)-formatted results are formatted.

" + } + }, + "com.amazonaws.s3#CacheControl": { + "type": "string" + }, + "com.amazonaws.s3#Checksum": { + "type": "structure", + "members": { + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the object. This checksum is present\n if the object was uploaded with the CRC64NVME checksum algorithm, or if the object was\n uploaded without a checksum (and Amazon S3 added the default checksum, CRC64NVME, to the\n uploaded object). For more information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. This checksum is present\n if the object was uploaded with the SHA512 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. This checksum is present\n if the object was uploaded with the MD5 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. This checksum is present\n if the object was uploaded with the XXHASH64 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. This checksum is present\n if the object was uploaded with the XXHASH3 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. This checksum is present\n if the object was uploaded with the XXHASH128 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type that is used to calculate the object’s checksum value. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains all the possible checksum or digest values for an object.

" + } + }, + "com.amazonaws.s3#ChecksumAlgorithm": { + "type": "enum", + "members": { + "CRC32": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRC32" + } + }, + "CRC32C": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRC32C" + } + }, + "SHA1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHA1" + } + }, + "SHA256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHA256" + } + }, + "CRC64NVME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRC64NVME" + } + }, + "SHA512": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHA512" + } + }, + "MD5": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MD5" + } + }, + "XXHASH64": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XXHASH64" + } + }, + "XXHASH3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XXHASH3" + } + }, + "XXHASH128": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XXHASH128" + } + } + } + }, + "com.amazonaws.s3#ChecksumAlgorithmList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ChecksumAlgorithm" + } + }, + "com.amazonaws.s3#ChecksumCRC32": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumCRC32C": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumCRC64NVME": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumMD5": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumMode": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + } + }, + "com.amazonaws.s3#ChecksumSHA1": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumSHA256": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumSHA512": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumType": { + "type": "enum", + "members": { + "COMPOSITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPOSITE" + } + }, + "FULL_OBJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULL_OBJECT" + } + } + } + }, + "com.amazonaws.s3#ChecksumXXHASH128": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumXXHASH3": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumXXHASH64": { + "type": "string" + }, + "com.amazonaws.s3#ClientToken": { + "type": "string" + }, + "com.amazonaws.s3#Code": { + "type": "string" + }, + "com.amazonaws.s3#Comments": { + "type": "string" + }, + "com.amazonaws.s3#CommonPrefix": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Container for the specified common prefix.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for all (if there are any) keys between Prefix and the next occurrence of the string\n specified by a delimiter. CommonPrefixes lists keys that act like subdirectories in the directory\n specified by Prefix. For example, if the prefix is notes/ and the delimiter is a slash (/) as in\n notes/summer/july, the common prefix is notes/summer/.

" + } + }, + "com.amazonaws.s3#CommonPrefixList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#CommonPrefix" + } + }, + "com.amazonaws.s3#CompleteMultipartUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CompleteMultipartUploadRequest" + }, + "output": { + "target": "com.amazonaws.s3#CompleteMultipartUploadOutput" + }, + "traits": { + "smithy.api#documentation": "

Completes a multipart upload by assembling previously uploaded parts.

\n

You first initiate the multipart upload and then upload all parts using the UploadPart operation or the\n UploadPartCopy\n operation. After successfully uploading all relevant parts of an upload, you call this\n CompleteMultipartUpload operation to complete the upload. Upon receiving this request,\n Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the\n CompleteMultipartUpload request, you must provide the parts list and ensure that the parts list is\n complete. The CompleteMultipartUpload API operation concatenates the parts that you provide in the list.\n For each part in the list, you must provide the PartNumber value and the ETag\n value that are returned after that part was uploaded.

\n

The processing of a CompleteMultipartUpload request could take several minutes to finalize. After\n Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200\n OK response. While processing is in progress, Amazon S3 periodically sends white space characters to\n keep the connection from timing out. A request could fail after the initial 200 OK response\n has been sent. This means that a 200 OK response can contain either a success or an error.\n The error response might be embedded in the 200 OK response. If you call this API operation\n directly, make sure to design your application to parse the contents of the response and handle it\n appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and\n apply error handling per your configuration settings (including automatically retrying the request as\n appropriate). If the condition persists, the SDKs throw an exception (or, for the SDKs that don't use\n exceptions, they return an error).

\n

Note that if CompleteMultipartUpload fails, applications should be prepared to retry\n any failed requests (including 500 error responses). For more information, see Amazon S3 Error Best\n Practices.

\n \n

You can't use Content-Type: application/x-www-form-urlencoded for the\n CompleteMultipartUpload requests. Also, if you don't provide a Content-Type header,\n CompleteMultipartUpload can still return a 200 OK response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart Upload in\n the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information\n about permissions required to use the multipart upload API, see Multipart Upload and Permissions in\n the Amazon S3 User Guide.

    \n

    If you provide an additional checksum value in your MultipartUpload requests and the\n object is encrypted with Key Management Service, you must have permission to use the\n kms:Decrypt action for the CompleteMultipartUpload request to\n succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: EntityTooSmall\n

    \n
      \n
    • \n

      Description: Your proposed upload is smaller than the minimum allowed object size.\n Each part must be at least 5 MB in size, except the last part.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPart\n

    \n
      \n
    • \n

      Description: One or more of the specified parts could not be found. The part might not\n have been uploaded, or the specified ETag might not have matched the uploaded part's\n ETag.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPartOrder\n

    \n
      \n
    • \n

      Description: The list of parts was not in ascending order. The parts list must be\n specified in order by part number.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID might be\n invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to CompleteMultipartUpload:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To complete multipart upload", + "documentation": "The following example completes a multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "bigobject", + "MultipartUpload": { + "Parts": [ + { + "PartNumber": 1, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + }, + { + "PartNumber": 2, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + } + ] + }, + "UploadId": "7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "ETag": "\"4d9031c7644d8081c2829f4ea23c55f7-2\"", + "Bucket": "acexamplebucket", + "Location": "https://examplebucket.s3..amazonaws.com/bigobject", + "Key": "bigobject" + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}/{Key+}", + "code": 200 + } + } + }, + "com.amazonaws.s3#CompleteMultipartUploadOutput": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.s3#Location", + "traits": { + "smithy.api#documentation": "

The URI that identifies the newly created object.

" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the newly created object. Does not return the access point ARN or access point\n alias if used.

\n \n

Access points are not supported by directory buckets.

\n
" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key of the newly created object.

" + } + }, + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the object expiration is configured, this will contain the expiration date\n (expiry-date) and rule ID (rule-id). The value of rule-id is\n URL-encoded.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-expiration" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag that identifies the newly created object's data. Objects with different object data will\n have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5\n digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain\n one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal\n digits. For more information about how the entity tag is calculated, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit CRC64NVME\n checksum of the object. The CRC64NVME checksum is always a full object checksum. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type, which determines how part-level checksums are combined to create an object-level\n checksum for multipart objects. You can use this header as a data integrity check to verify that the\n checksum type that is received is the same checksum type that was specified during the\n CreateMultipartUpload request. For more information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when storing this object in Amazon S3.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
\n

", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the newly created object, in case the bucket has versioning turned on.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "CompleteMultipartUploadResult" + } + }, + "com.amazonaws.s3#CompleteMultipartUploadRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "MultipartUpload": { + "target": "com.amazonaws.s3#CompletedMultipartUpload", + "traits": { + "smithy.api#documentation": "

The container for the multipart upload request information.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "CompleteMultipartUpload" + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

ID for the initiated multipart upload.

", + "smithy.api#httpQuery": "uploadId", + "smithy.api#required": {} + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit CRC64NVME\n checksum of the object. The CRC64NVME checksum is always a full object checksum. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 160-bit SHA1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 256-bit SHA256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 512-bit SHA512\n digest of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit MD5\n digest of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH64\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH3\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit XXHASH128\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

This header specifies the checksum type of the object, which determines how part-level checksums are\n combined to create an object-level checksum for multipart objects. You can use this header as a data\n integrity check to verify that the checksum type that is received is the same checksum that was\n specified. If the checksum type doesn’t match the checksum type that was specified for the object during\n the CreateMultipartUpload request, it’ll result in a BadDigest error. For more\n information, see Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "MpuObjectSize": { + "target": "com.amazonaws.s3#MpuObjectSize", + "traits": { + "smithy.api#documentation": "

The expected total object size of the multipart upload request. If there’s a mismatch between the\n specified object size value and the actual object size value, it results in an HTTP 400\n InvalidRequest error.

", + "smithy.api#httpHeader": "x-amz-mp-object-size" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches\n the ETag of the object in S3. If the ETag values do not match, the operation returns a 412\n Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should fetch the object's ETag,\n re-initiate the multipart upload with CreateMultipartUpload, and re-upload each\n part.

\n

Expects the ETag value as a string.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket specified.\n Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should re-initiate the multipart\n upload with CreateMultipartUpload and re-upload each part.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required\n only when the object was created using a checksum algorithm or if your bucket policy requires the use of\n SSE-C. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CompletedMultipartUpload": { + "type": "structure", + "members": { + "Parts": { + "target": "com.amazonaws.s3#CompletedPartList", + "traits": { + "smithy.api#documentation": "

Array of CompletedPart data types.

\n

If you do not supply a valid Part with your request, the service sends back an HTTP 400\n response.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Part" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container for the completed multipart upload details.

" + } + }, + "com.amazonaws.s3#CompletedPart": { + "type": "structure", + "members": { + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag returned when the part was uploaded.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the part. This checksum is present if the\n multipart upload request was created with the CRC32 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the part. This checksum is present if the\n multipart upload request was created with the CRC32C checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC64NVME checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 checksum of the part. This checksum is present if the\n multipart upload request was created with the SHA1 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 checksum of the part. This checksum is present if\n the multipart upload request was created with the SHA256 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA512 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the part. This checksum is present if\n the multipart upload request was created with the MD5 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH64 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH3 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH128 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number that identifies the part. This is a positive integer between 1 and 10,000.

\n \n
    \n
  • \n

    \n General purpose buckets - In\n CompleteMultipartUpload, when a additional checksum (including\n x-amz-checksum-crc32, x-amz-checksum-crc32c,\n x-amz-checksum-sha1, or x-amz-checksum-sha256) is applied to each\n part, the PartNumber must start at 1 and the part numbers must be consecutive.\n Otherwise, Amazon S3 generates an HTTP 400 Bad Request status code and an\n InvalidPartOrder error code.

    \n
  • \n
  • \n

    \n Directory buckets - In\n CompleteMultipartUpload, the PartNumber must start at 1 and the part\n numbers must be consecutive.

    \n
  • \n
\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details of the parts that were uploaded.

" + } + }, + "com.amazonaws.s3#CompletedPartList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#CompletedPart" + } + }, + "com.amazonaws.s3#CompressionType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "GZIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GZIP" + } + }, + "BZIP2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BZIP2" + } + } + } + }, + "com.amazonaws.s3#Condition": { + "type": "structure", + "members": { + "HttpErrorCodeReturnedEquals": { + "target": "com.amazonaws.s3#HttpErrorCodeReturnedEquals", + "traits": { + "smithy.api#documentation": "

The HTTP error code when the redirect is applied. In the event of an error, if the error code equals\n this value, then the specified redirect is applied. Required when parent element Condition\n is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both\n must be true for the redirect to be applied.

" + } + }, + "KeyPrefixEquals": { + "target": "com.amazonaws.s3#KeyPrefixEquals", + "traits": { + "smithy.api#documentation": "

The object key name prefix when the redirect is applied. For example, to redirect requests for\n ExamplePage.html, the key prefix will be ExamplePage.html. To redirect\n request for all pages with the prefix docs/, the key prefix will be /docs,\n which identifies all objects in the docs/ folder. Required when the parent element\n Condition is specified and sibling HttpErrorCodeReturnedEquals is not\n specified. If both conditions are specified, both must be true for the redirect to be applied.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for describing a condition that must be met for the specified redirect to apply. For\n example, 1. If request is for pages in the /docs folder, redirect to the\n /documents folder. 2. If request results in HTTP error 4xx, redirect request to another\n host where you might process the error.

" + } + }, + "com.amazonaws.s3#ConfirmRemoveSelfBucketAccess": { + "type": "boolean" + }, + "com.amazonaws.s3#ContentDisposition": { + "type": "string" + }, + "com.amazonaws.s3#ContentEncoding": { + "type": "string" + }, + "com.amazonaws.s3#ContentLanguage": { + "type": "string" + }, + "com.amazonaws.s3#ContentLength": { + "type": "long" + }, + "com.amazonaws.s3#ContentMD5": { + "type": "string" + }, + "com.amazonaws.s3#ContentRange": { + "type": "string" + }, + "com.amazonaws.s3#ContentType": { + "type": "string" + }, + "com.amazonaws.s3#ContinuationEvent": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

" + } + }, + "com.amazonaws.s3#CopyObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CopyObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#CopyObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#ObjectNotInActiveTierError" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a copy of an object that is already stored in Amazon S3.

\n \n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n \n

You can store individual objects of up to 50 TB in Amazon S3. You create a copy of your\n object up to 5 GB in size in a single atomic action using this API. However, to copy an\n object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n (UploadPartCopy) API. For more information, see Copy Object Using the REST\n Multipart Upload API.

\n
\n

You can copy individual objects between general purpose buckets, between directory buckets, and between\n general purpose buckets and directory buckets.

\n \n
    \n
  • \n

    Amazon S3 supports copy operations using Multi-Region Access Points only as a destination when\n using the Multi-Region Access Point ARN.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    VPC endpoints don't support cross-Region requests (including copies). If you're using VPC\n endpoints, your source and destination buckets should be in the same Amazon Web Services Region as your VPC\n endpoint.

    \n
  • \n
\n
\n

Both the Region that you want to copy the object from and the Region that you want to copy the\n object to must be enabled for your account. For more information about how to enable a Region for your\n account, see Enable\n or disable a Region for standalone accounts in the Amazon Web Services Account Management\n Guide.

\n \n

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region\n copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more\n information, see Transfer Acceleration.

\n
\n
\n
Authentication and authorization
\n
\n

All CopyObject requests must be authenticated and signed by using IAM\n credentials (access key ID and secret access key for the IAM identities). All headers with the\n x-amz- prefix, including x-amz-copy-source, must be signed. For more\n information, see REST Authentication.

\n

\n Directory buckets - You must use the IAM\n credentials to authenticate and authorize your access to the CopyObject API\n operation, instead of using the temporary security credentials through the\n CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

You must have read access to the source object and\n write access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You must have\n permissions in an IAM policy based on the source and destination bucket types in a\n CopyObject operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have \n s3:GetObject\n permission to read the source object that is\n being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have \n s3:PutObject\n permission to write the object copy to the\n destination bucket.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have\n permissions in a bucket policy or an IAM identity-based policy based on the source and destination bucket types\n in a CopyObject operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a directory bucket, you must have\n the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. If no session mode is specified, \n the session will be created with the maximum allowable privilege, attempting ReadWrite \n first, then ReadOnly if ReadWrite is not permitted. If you want to explicitly \n restrict the access to be read-only, you can set the s3express:SessionMode condition key to \n ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object to the destination. The\n s3express:SessionMode condition key can't be set to ReadOnly\n on the copy destination bucket.

      \n
    • \n
    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key.

    \n

    For example policies, see Example\n bucket policies for S3 Express One Zone and Amazon Web Services\n Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Response and special errors
\n
\n

When the request is an HTTP 1.1 request, the response is chunk encoded. When the request is\n not an HTTP 1.1 request, the response would not contain the Content-Length. You\n always need to read the entire response body to check if the copy succeeds.

\n
    \n
  • \n

    If the copy is successful, you receive a response with information about the copied\n object.

    \n
  • \n
  • \n

    A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is\n copying the files. A 200 OK response can contain either a success or an\n error.

    \n
      \n
    • \n

      If the error occurs before the copy action starts, you receive a standard Amazon S3\n error.

      \n
    • \n
    • \n

      If the error occurs during the copy operation, the error response is embedded in the\n 200 OK response. For example, in a cross-region copy, you may encounter\n throttling and receive a 200 OK response. For more information, see Resolve the Error\n 200 response when copying objects to Amazon S3. The 200 OK status code\n means the copy was accepted, but it doesn't mean the copy is complete. Another example is\n when you disconnect from Amazon S3 before the copy is complete, Amazon S3 might cancel the copy and\n you may receive a 200 OK response. You must stay connected to Amazon S3 until the\n entire response is successfully received and processed.

      \n

      If you call this API operation directly, make sure to design your application to parse\n the content of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs\n handle this condition. The SDKs detect the embedded error and apply error handling per\n your configuration settings (including automatically retrying the request as appropriate).\n If the condition persists, the SDKs throw an exception (or, for the SDKs that don't use\n exceptions, they return an error).

      \n
    • \n
    \n
  • \n
\n
\n
Charge
\n
\n

The copy request charge is based on the storage class and Region that you specify for the\n destination object. The request can also result in a data retrieval charge for the source if the\n source storage class bills for data retrieval. If the copy source is in a different region, the\n data transfer is billed to the copy source account. For pricing information, see Amazon S3 pricing.

\n
\n
HTTP Host header syntax
\n
\n
    \n
  • \n

    \n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

    \n
  • \n
  • \n

    \n Amazon S3 on Outposts - When you use this action with\n S3 on Outposts through the REST API, you must direct requests to the S3 on Outposts hostname. The\n S3 on Outposts hostname takes the form\n \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com.\n The hostname isn't required when you use the Amazon Web Services CLI or SDKs.

    \n
  • \n
\n
\n
\n

The following operations are related to CopyObject:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To copy an object", + "documentation": "The following example copies an object from one bucket to another.", + "input": { + "Bucket": "destinationbucket", + "CopySource": "/sourcebucket/HappyFacejpg", + "Key": "HappyFaceCopyjpg" + }, + "output": { + "CopyObjectResult": { + "LastModified": "2016-12-15T17:38:53.000Z", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?x-id=CopyObject", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "DisableS3ExpressSessionAuth": { + "value": true + } + } + } + }, + "com.amazonaws.s3#CopyObjectOutput": { + "type": "structure", + "members": { + "CopyObjectResult": { + "target": "com.amazonaws.s3#CopyObjectResult", + "traits": { + "smithy.api#documentation": "

Container for all response elements.

", + "smithy.api#httpPayload": {} + } + }, + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the object expiration is configured, the response includes this header.

\n \n

Object expiration information is not returned in directory buckets and this header returns the\n value \"NotImplemented\" in all responses for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-expiration" + } + }, + "CopySourceVersionId": { + "target": "com.amazonaws.s3#CopySourceVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the source object that was copied.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-version-id" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the newly created copy.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of\n this header is a Base64 encoded UTF-8 string holding JSON with the encryption context key-value\n pairs.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#CopyObjectRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#ObjectCannedACL", + "traits": { + "smithy.api#documentation": "

The canned access control list (ACL) to apply to the object.

\n

When you copy an object, the ACL metadata is not preserved and is set to private by\n default. Only the owner has full access control. To override the default ACL setting, specify a new ACL\n when you generate a copy request. For more information, see Using ACLs.

\n

If the destination bucket that you're copying objects to uses the bucket owner enforced setting for\n S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting\n only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or\n an equivalent form of this ACL expressed in the XML format. For more information, see Controlling ownership\n of objects and disabling ACLs in the Amazon S3 User Guide.

\n \n
    \n
  • \n

    If your destination bucket uses the bucket owner enforced setting for Object Ownership, all\n objects written to the bucket by any account will be owned by the bucket owner.

    \n
  • \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the destination bucket.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n \n

Copying objects across different Amazon Web Services Regions isn't supported when the source or destination\n bucket is in Amazon Web Services Local Zones. The source and destination buckets must have the same parent Amazon Web Services Region.\n Otherwise, you get an HTTP 400 Bad Request error with the error code\n InvalidRequest.

\n
\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts,\n you must use the Outpost bucket access point ARN or the access point alias for the destination bucket.\n You can only copy objects within the same Outpost bucket. It's not supported to copy objects across\n different Amazon Web Services Outposts, between buckets on the same Outposts, or between Outposts buckets and any\n other bucket types. For more information about S3 on Outposts, see What is S3 on Outposts? in the\n S3 on Outposts guide. When you use this action with S3 on Outposts through the REST\n API, you must direct requests to the S3 on Outposts hostname, in the format\n \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com.\n The hostname isn't required when you use the Amazon Web Services CLI or SDKs.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Specifies the caching behavior along the request/reply chain.

", + "smithy.api#httpHeader": "Cache-Control" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

\n

When you copy an object, if the source object has a checksum, that checksum value will be copied to\n the new object by default. If the CopyObject request does not include this\n x-amz-checksum-algorithm header, the checksum algorithm will be copied from the source\n object to the destination object (if it's present on the source object). You can optionally specify a\n different checksum algorithm to use with the x-amz-checksum-algorithm header. Unrecognized\n or unsupported values will respond with the HTTP status code 400 Bad Request.

\n \n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

\n
", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object. Indicates whether an object should be displayed\n in a web browser or downloaded as a file. It allows specifying the desired filename for the downloaded\n file.

", + "smithy.api#httpHeader": "Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field.

\n \n

For directory buckets, only the aws-chunked value is supported in this header field.

\n
", + "smithy.api#httpHeader": "Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language the content is in.

", + "smithy.api#httpHeader": "Content-Language" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type that describes the format of the object data.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "CopySource": { + "target": "com.amazonaws.s3#CopySource", + "traits": { + "smithy.api#documentation": "

Specifies the source object for the copy operation. The source object can be up to 5 GB. If the\n source object is an object that was uploaded by using a multipart upload, the object copy will be a\n single part object after the source object is copied to the destination bucket.

\n

You specify the value of the copy source in one of two formats, depending on whether you want to\n access the source object through an access point:

\n
    \n
  • \n

    For objects not accessed through an access point, specify the name of the source bucket and the key of\n the source object, separated by a slash (/). For example, to copy the object\n reports/january.pdf from the general purpose bucket awsexamplebucket, use\n awsexamplebucket/reports/january.pdf. The value must be URL-encoded. To copy the\n object reports/january.pdf from the directory bucket\n awsexamplebucket--use1-az5--x-s3, use\n awsexamplebucket--use1-az5--x-s3/reports/january.pdf. The value must be\n URL-encoded.

    \n
  • \n
  • \n

    For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    \n \n
      \n
    • \n

      Amazon S3 supports copy operations using Access points only when the source and destination buckets are in the same Amazon Web Services Region.

      \n
    • \n
    • \n

      Access points are not supported by directory buckets.

      \n
    • \n
    \n
    \n

    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

    \n
  • \n
\n

If your source bucket versioning is enabled, the x-amz-copy-source header by default\n identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3\n behaves as if the object was deleted. To copy a different version, use the versionId query\n parameter. Specifically, append ?versionId= to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If\n you don't specify a version ID, Amazon S3 copies the latest version of the source object.

\n

If you enable versioning on the destination bucket, Amazon S3 generates a unique version ID for the\n copied object. This version ID is different from the version ID of the source object. Amazon S3 returns the\n version ID of the copied object in the x-amz-version-id response header in the\n response.

\n

If you do not enable versioning or suspend it on the destination bucket, the version ID that Amazon S3\n generates in the x-amz-version-id response header is always null.

\n \n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source", + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "CopySource" + } + } + }, + "CopySourceIfMatch": { + "target": "com.amazonaws.s3#CopySourceIfMatch", + "traits": { + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as\n follows, Amazon S3 returns 200 OK and copies the data:

\n
    \n
  • \n

    \n x-amz-copy-source-if-match condition evaluates to true

    \n
  • \n
  • \n

    \n x-amz-copy-source-if-unmodified-since condition evaluates to false

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-copy-source-if-match" + } + }, + "CopySourceIfModifiedSince": { + "target": "com.amazonaws.s3#CopySourceIfModifiedSince", + "traits": { + "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and evaluate as\n follows, Amazon S3 returns the 412 Precondition Failed response code:

\n
    \n
  • \n

    \n x-amz-copy-source-if-none-match condition evaluates to false

    \n
  • \n
  • \n

    \n x-amz-copy-source-if-modified-since condition evaluates to true

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-copy-source-if-modified-since" + } + }, + "CopySourceIfNoneMatch": { + "target": "com.amazonaws.s3#CopySourceIfNoneMatch", + "traits": { + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and evaluate as\n follows, Amazon S3 returns the 412 Precondition Failed response code:

\n
    \n
  • \n

    \n x-amz-copy-source-if-none-match condition evaluates to false

    \n
  • \n
  • \n

    \n x-amz-copy-source-if-modified-since condition evaluates to true

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-copy-source-if-none-match" + } + }, + "CopySourceIfUnmodifiedSince": { + "target": "com.amazonaws.s3#CopySourceIfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as\n follows, Amazon S3 returns 200 OK and copies the data:

\n
    \n
  • \n

    \n x-amz-copy-source-if-match condition evaluates to true

    \n
  • \n
  • \n

    \n x-amz-copy-source-if-unmodified-since condition evaluates to false

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-copy-source-if-unmodified-since" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable.

", + "smithy.api#httpHeader": "Expires" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the object data and its metadata.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the object ACL.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to write the ACL for the applicable object.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Copies the object if the entity tag (ETag) of the destination object matches the specified\n tag. If the ETag values do not match, the operation returns a 412 Precondition\n Failed error. If a concurrent operation occurs during the upload S3 returns a\n 409 ConditionalRequestConflict response. On a 409 failure you should fetch the\n object's ETag and retry the upload.

\n

Expects the ETag value as a string.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Copies the object only if the object key name at the destination does not already exist in\n the bucket specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error. If a\n concurrent operation occurs during the upload S3 returns a 409 ConditionalRequestConflict\n response. On a 409 failure you should retry the upload.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key of the destination object.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "MetadataDirective": { + "target": "com.amazonaws.s3#MetadataDirective", + "traits": { + "smithy.api#documentation": "

Specifies whether the metadata is copied from the source object or replaced with metadata that's\n provided in the request. When copying an object, you can preserve all metadata (the default) or specify\n new metadata. If this header isn’t specified, COPY is the default behavior.

\n

\n General purpose bucket - For general purpose buckets, when you grant\n permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain\n metadata behavior when objects are uploaded. For more information, see Amazon S3 condition key examples in the\n Amazon S3 User Guide.

\n \n

\n x-amz-website-redirect-location is unique to each object and is not copied when using\n the x-amz-metadata-directive header. To copy the value, you must specify\n x-amz-website-redirect-location in the request header.

\n
", + "smithy.api#httpHeader": "x-amz-metadata-directive" + } + }, + "TaggingDirective": { + "target": "com.amazonaws.s3#TaggingDirective", + "traits": { + "smithy.api#documentation": "

Specifies whether the object tag-set is copied from the source object or replaced with the tag-set\n that's provided in the request.

\n

The default value is COPY.

\n \n

\n Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. \nWhen the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

\n
    \n
  • \n

    When you attempt to COPY the tag-set from an S3 source object that has non-empty tags.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a source object and set a non-empty value to x-amz-tagging.

    \n
  • \n
  • \n

    When you don't set the x-amz-tagging-directive header and the source object has non-empty tags. This is because the default value of x-amz-tagging-directive is COPY.

    \n
  • \n
\n

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

\n
    \n
  • \n

    When you attempt to COPY the tag-set from a directory bucket source object that has no tags to a general purpose bucket. It copies an empty tag-set to the destination object.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a directory bucket source object and set the x-amz-tagging value of the directory bucket destination object to empty.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a general purpose bucket source object that has non-empty tags and set the x-amz-tagging value of the directory bucket destination object to empty.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a directory bucket source object and don't set the x-amz-tagging value of the directory bucket destination object. This is because the default value of x-amz-tagging is the empty value.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-tagging-directive" + } + }, + "AnnotationDirective": { + "target": "com.amazonaws.s3#AnnotationDirective", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to copy annotations from the source object or exclude them. If this\n header isn't specified, COPY is the default behavior.

\n

Valid Values: COPY | EXCLUDE\n

\n

You can specify this directive as either an HTTP header\n (x-amz-object-annotation-directive) or as a query string parameter. Use the query\n string form when generating presigned URLs that need to control annotation copy behavior.

\n

When set to COPY, you must have s3:GetObjectAnnotation permission on\n the source object and s3:PutObjectAnnotation permission on the destination. Each\n annotation copied is billed as a separate PUT request. If annotations on the source are modified\n during the copy, Amazon S3 returns a retryable error.

\n \n

For directory buckets, annotations are not supported. Use EXCLUDE to copy\n objects to directory buckets without errors. If you specify COPY for a directory\n bucket, the request returns HTTP 501 (Not Implemented).

\n
\n \n

When you copy objects using multipart upload (for example, when the Amazon Web Services CLI or Amazon Web Services SDKs\n use Transfer Manager for objects larger than approximately 8 MB), annotations are not copied by\n default. To include annotations, specify --copy-props default in the Amazon Web Services CLI or the\n equivalent SDK configuration. With this opt-in, the SDK reads source annotations, completes the\n multipart upload, and then writes each annotation to the destination. Between the upload completion\n and the last annotation write, the destination object exists without all its annotations.

\n
", + "smithy.api#httpHeader": "x-amz-object-annotation-directive" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized or\n unsupported values won’t write a destination object and will receive a 400 Bad Request\n response.

\n

Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object,\n if you don't specify encryption information in your copy request, the encryption setting of the target\n object is set to the default encryption configuration of the destination bucket. By default, all buckets\n have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys\n (SSE-S3). If the destination bucket has a different default encryption configuration, Amazon S3 uses the\n corresponding encryption key to encrypt the target object copy.

\n

With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data\n centers and decrypts the data when you access it. For more information about server-side encryption, see\n Using Server-Side\n Encryption in the Amazon S3 User Guide.

\n

\n General purpose buckets \n

\n
    \n
  • \n

    For general purpose buckets, there are the following supported options for server-side encryption:\n server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with\n Amazon Web Services KMS keys (DSSE-KMS), and server-side encryption with customer-provided encryption keys\n (SSE-C). Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target\n object copy.

    \n
  • \n
  • \n

    When you perform a CopyObject operation, if you want to use a different type of\n encryption setting for the target object, you can specify appropriate encryption-related headers to\n encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the\n encryption setting in your request is different from the default encryption configuration of the\n destination bucket, the encryption setting in your request takes precedence.

    \n
  • \n
\n

\n Directory buckets \n

\n
    \n
  • \n

    For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n
  • \n
  • \n

    To encrypt new object copies to a directory bucket with SSE-KMS, we recommend you specify\n SSE-KMS as the directory bucket's default encryption configuration with a KMS key\n (specifically, a customer managed key). The Amazon Web Services managed key (aws/s3) isn't supported. Your SSE-KMS configuration can\n only support 1 customer managed key per\n directory bucket for the lifetime of the bucket. After you specify a customer managed key for SSE-KMS, you\n can't override the customer managed key for the bucket's SSE-KMS configuration. Then, when you\n perform a CopyObject operation and want to specify server-side encryption settings for\n new object copies with SSE-KMS in the encryption-related request headers, you must ensure the\n encryption key is the same customer managed key that you specified for the directory bucket's default\n encryption configuration.\n

    \n
  • \n
  • \n

    \n S3 access points for Amazon FSx - When accessing data stored in\n Amazon FSx file systems using S3 access points, the only valid server side encryption option is\n aws:fsx. All Amazon FSx file systems have encryption configured by default and are\n encrypted at rest. Data is automatically encrypted before being written to the file system, and\n automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

If the x-amz-storage-class header is not used, the copied object will be stored in the\n STANDARD Storage Class by default. The STANDARD storage class provides high\n durability and high availability. Depending on performance needs, you can specify a different Storage\n Class.

\n \n
    \n
  • \n

    \n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones. \nUnsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

    \n
  • \n
  • \n

    \n Amazon S3 on Outposts - S3 on Outposts only uses the\n OUTPOSTS Storage Class.

    \n
  • \n
\n
\n

You can use the CopyObject action to change the storage class of an object that is\n already stored in Amazon S3 by using the x-amz-storage-class header. For more information, see\n Storage Classes\n in the Amazon S3 User Guide.

\n

Before using an object as a source object for the copy operation, you must restore a copy of it if\n it meets any of the following conditions:

\n
    \n
  • \n

    The storage class of the source object is GLACIER or\n DEEP_ARCHIVE.

    \n
  • \n
  • \n

    The storage class of the source object is INTELLIGENT_TIERING and it's S3\n Intelligent-Tiering access tier is Archive Access or Deep Archive\n Access.

    \n
  • \n
\n

For more information, see RestoreObject and Copying Objects in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-storage-class" + } + }, + "WebsiteRedirectLocation": { + "target": "com.amazonaws.s3#WebsiteRedirectLocation", + "traits": { + "smithy.api#documentation": "

If the destination bucket is configured as a website, redirects requests for this object copy to\n another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the\n object metadata. This value is unique to each object and is not copied when using the\n x-amz-metadata-directive header. Instead, you may opt to provide this header in\n combination with the x-amz-metadata-directive header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-website-redirect-location" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n

When you perform a CopyObject operation, if you want to use a different type of\n encryption setting for the target object, you can specify appropriate encryption-related headers to\n encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the\n encryption setting in your request is different from the default encryption configuration of the\n destination bucket, the encryption setting in your request takes precedence.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded. Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and\n PUT requests for an object protected by KMS will fail if they're not made via SSL or using SigV4. For\n information about configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying\n the Signature Version in Request Authentication in the\n Amazon S3 User Guide.

\n

\n Directory buckets -\n To encrypt data using SSE-KMS, it's recommended to specify the \nx-amz-server-side-encryption header to aws:kms. Then, the x-amz-server-side-encryption-aws-kms-key-id header implicitly uses \nthe bucket's default KMS customer managed key ID. If you want to explicitly set the \n x-amz-server-side-encryption-aws-kms-key-id header, it must match the bucket's default customer managed key (using key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n \n Incorrect key specification results in an HTTP 400 Bad Request error.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for the\n destination object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON\n with the encryption context key-value pairs.

\n

\n General purpose buckets - This value must be explicitly added to\n specify encryption context for CopyObject requests if you want an additional encryption\n context for your destination object. The additional encryption context of the source object won't be\n copied to the destination object. For more information, see Encryption context\n in the Amazon S3 User Guide.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption\n using Key Management Service (KMS) keys (SSE-KMS). If a target object uses SSE-KMS, you can enable an S3 Bucket Key\n for the object.

\n

Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption\n with SSE-KMS. Specifying this header with a COPY action doesn’t affect bucket-level settings for S3\n Bucket Key.

\n

For more information, see Amazon S3\n Bucket Keys in the Amazon S3 User Guide.

\n \n

\n Directory buckets -\n S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "CopySourceSSECustomerAlgorithm": { + "target": "com.amazonaws.s3#CopySourceSSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary\n encryption information in your request so that Amazon S3 can decrypt the object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-algorithm" + } + }, + "CopySourceSSECustomerKey": { + "target": "com.amazonaws.s3#CopySourceSSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The\n encryption key provided in this header must be the same one that was used when the source object was\n created.

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary\n encryption information in your request so that Amazon S3 can decrypt the object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key" + } + }, + "CopySourceSSECustomerKeyMD5": { + "target": "com.amazonaws.s3#CopySourceSSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary\n encryption information in your request so that Amazon S3 can decrypt the object for copying.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#TaggingHeader", + "traits": { + "smithy.api#documentation": "

The tag-set for the object copy in the destination bucket. This value must be used in conjunction\n with the x-amz-tagging-directive if you choose REPLACE for the\n x-amz-tagging-directive. If you choose COPY for the\n x-amz-tagging-directive, you don't need to set the x-amz-tagging header,\n because the tag-set will be copied from the source object directly. The tag-set must be encoded as URL\n Query parameters.

\n

The default value is the empty value.

\n \n

\n Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. \nWhen the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

\n
    \n
  • \n

    When you attempt to COPY the tag-set from an S3 source object that has non-empty tags.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a source object and set a non-empty value to x-amz-tagging.

    \n
  • \n
  • \n

    When you don't set the x-amz-tagging-directive header and the source object has non-empty tags. This is because the default value of x-amz-tagging-directive is COPY.

    \n
  • \n
\n

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

\n
    \n
  • \n

    When you attempt to COPY the tag-set from a directory bucket source object that has no tags to a general purpose bucket. It copies an empty tag-set to the destination object.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a directory bucket source object and set the x-amz-tagging value of the directory bucket destination object to empty.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a general purpose bucket source object that has non-empty tags and set the x-amz-tagging value of the directory bucket destination object to empty.

    \n
  • \n
  • \n

    When you attempt to REPLACE the tag-set of a directory bucket source object and don't set the x-amz-tagging value of the directory bucket destination object. This is because the default value of x-amz-tagging is the empty value.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-tagging" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

The Object Lock mode that you want to apply to the object copy.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-mode" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

The date and time when you want the Object Lock of the object copy to expire.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-retain-until-date" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to apply a legal hold to the object copy.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" + } + }, + "ObjectLockEventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

The event hold status to apply to the object copy. Set to ON to enable or\n OFF to disable.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold" + } + }, + "ObjectLockEventHoldDurationDays": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationDays", + "traits": { + "smithy.api#documentation": "

The event hold duration in days to apply to the object copy. You cannot specify a duration\n in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-days" + } + }, + "ObjectLockEventHoldDurationYears": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationYears", + "traits": { + "smithy.api#documentation": "

The event hold duration in years to apply to the object copy. You cannot specify a\n duration in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-years" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected destination bucket owner. If the account ID that you provide does not match the actual owner of the destination bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ExpectedSourceBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected source bucket owner. If the account ID that you provide does not match the actual owner of the source bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-source-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CopyObjectResult": { + "type": "structure", + "members": { + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Returns the ETag of the new object. The ETag reflects only changes to the contents of an object, not\n its metadata.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Creation date of the object.

" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type that is used to calculate the object’s checksum value. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the object. This checksum is present\n if the object being copied was uploaded with the CRC64NVME checksum algorithm, or if the\n object was uploaded without a checksum (and Amazon S3 added the default checksum, CRC64NVME, to\n the uploaded object). For more information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. This checksum is only present\n if the object was uploaded with the SHA512 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. This checksum is only present\n if the object was uploaded with the MD5 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. This checksum is only present\n if the object was uploaded with the XXHASH64 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. This checksum is only present\n if the object was uploaded with the XXHASH3 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. This checksum is only present\n if the object was uploaded with the XXHASH128 checksum algorithm. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for all response elements.

" + } + }, + "com.amazonaws.s3#CopyPartResult": { + "type": "structure", + "members": { + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag of the object.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time at which the object was uploaded.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC32 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC32C checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC64NVME checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA1 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA256 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA512 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the part. This checksum is present if\n the multipart upload request was created with the MD5 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH64 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH3 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH128 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for all response elements.

" + } + }, + "com.amazonaws.s3#CopySource": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\/?.+\\/.+$" + } + }, + "com.amazonaws.s3#CopySourceIfMatch": { + "type": "string" + }, + "com.amazonaws.s3#CopySourceIfModifiedSince": { + "type": "timestamp" + }, + "com.amazonaws.s3#CopySourceIfNoneMatch": { + "type": "string" + }, + "com.amazonaws.s3#CopySourceIfUnmodifiedSince": { + "type": "timestamp" + }, + "com.amazonaws.s3#CopySourceRange": { + "type": "string" + }, + "com.amazonaws.s3#CopySourceSSECustomerAlgorithm": { + "type": "string" + }, + "com.amazonaws.s3#CopySourceSSECustomerKey": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#CopySourceSSECustomerKeyMD5": { + "type": "string" + }, + "com.amazonaws.s3#CopySourceVersionId": { + "type": "string" + }, + "com.amazonaws.s3#CreateBucket": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CreateBucketRequest" + }, + "output": { + "target": "com.amazonaws.s3#CreateBucketOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#BucketAlreadyExists" + }, + { + "target": "com.amazonaws.s3#BucketAlreadyOwnedByYou" + } + ], + "traits": { + "smithy.api#documentation": "\n

This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see \n CreateBucket\n .

\n
\n

Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have a valid Amazon Web Services Access Key\n ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the\n bucket, you become the bucket owner.

\n

There are two types of buckets: general purpose buckets and directory buckets. For more information about\n these bucket types, see Creating, configuring, and working with Amazon S3\n buckets in the Amazon S3 User Guide.

\n

General purpose buckets exist in a global namespace, which means that each bucket name must be unique\n across all Amazon Web Services accounts in all the Amazon Web Services Regions within a partition. A partition is a grouping of\n Regions. Amazon Web Services currently has four partitions: aws (Standard Regions), aws-cn\n (China Regions), aws-us-gov (Amazon Web Services GovCloud (US)), and aws-eusc\n (European Sovereign Cloud). When you create a general purpose bucket, you can choose to create a bucket in\n the shared global namespace or you can choose to create a bucket in your account regional namespace.\n Your account regional namespace is a subdivision of the global namespace that only your account can\n create buckets in. For more information on account regional namespaces, see Namespaces for general purpose buckets.

\n \n
    \n
  • \n

    \n General purpose buckets - If you send your\n CreateBucket request to the s3.amazonaws.com global endpoint, the\n request goes to the us-east-1 Region. So the signature calculations in Signature\n Version 4 must use us-east-1 as the Region, even if the location constraint in the\n request specifies another Region where the bucket is to be created. If you create a bucket in a\n Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For\n more information, see Virtual hosting of buckets in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - In addition to the\n s3:CreateBucket permission, the following permissions are required in a policy\n when your CreateBucket request includes specific headers:

    \n
      \n
    • \n

      \n Access control lists (ACLs) - In your\n CreateBucket request, if you specify an access control list (ACL) and set\n it to public-read, public-read-write,\n authenticated-read, or if you explicitly specify any other custom ACLs,\n both s3:CreateBucket and s3:PutBucketAcl permissions are\n required. In your CreateBucket request, if you set the ACL to\n private, or if you don't specify any ACLs, only the\n s3:CreateBucket permission is required.

      \n
    • \n
    • \n

      \n Object Lock - In your\n CreateBucket request, if you set\n x-amz-bucket-object-lock-enabled to true, the\n s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning\n permissions are required.

      \n
    • \n
    • \n

      \n S3 Object Ownership - If your\n CreateBucket request includes the x-amz-object-ownership\n header, then the s3:PutBucketOwnershipControls permission is required.

      \n \n

      To set an ACL on a bucket as part of a CreateBucket request, you must\n explicitly set S3 Object Ownership for the bucket to a different value than the default,\n BucketOwnerEnforced. Additionally, if your desired bucket ACL grants\n public access, you must first create the bucket (without the bucket ACL) and then\n explicitly disable Block Public Access on the bucket before using\n PutBucketAcl to set the ACL. If you try to create a bucket with a public\n ACL, the request will fail.

      \n

      For the majority of modern use cases in S3, we recommend that you keep all Block\n Public Access settings enabled and keep ACLs disabled. If you would like to share data\n with users outside of your account, you can use bucket policies as needed. For more\n information, see Controlling ownership of\n objects and disabling ACLs for your bucket and Blocking\n public access to your Amazon S3 storage in the\n Amazon S3 User Guide.

      \n
      \n
    • \n
    • \n

      \n S3 Block Public Access - If your specific use\n case requires granting public access to your S3 resources, you can disable Block Public\n Access. Specifically, you can create a new bucket with Block Public Access enabled, then\n separately call the \n DeletePublicAccessBlock\n API. To use this operation, you must have the\n s3:PutBucketPublicAccessBlock permission. For more information about S3\n Block Public Access, see Blocking public\n access to your Amazon S3 storage in the Amazon S3 User Guide.\n

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have the\n s3express:CreateBucket permission in an IAM identity-based policy instead of a bucket policy.\n Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n \n

    The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 Block Public Access\n are not supported for directory buckets. For directory buckets, all Block Public Access\n settings are enabled at the bucket level and S3 Object Ownership is set to Bucket owner\n enforced (ACLs disabled). These settings can't be modified.

    \n

    For more information about permissions for creating and working with directory buckets,\n see Directory buckets\n in the Amazon S3 User Guide. For more information about supported S3\n features for directory buckets, see Features of\n S3 Express One Zone in the Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to CreateBucket:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To create a bucket in a specific region", + "documentation": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "input": { + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } + }, + "output": { + "Location": "http://examplebucket..s3.amazonaws.com/" + } + }, + { + "title": "To create a bucket ", + "documentation": "The following example creates a bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Location": "/examplebucket" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + }, + "DisableAccessPoints": { + "value": true + } + } + } + }, + "com.amazonaws.s3#CreateBucketConfiguration": { + "type": "structure", + "members": { + "LocationConstraint": { + "target": "com.amazonaws.s3#BucketLocationConstraint", + "traits": { + "smithy.api#documentation": "

Specifies the Region where the bucket will be created. You might choose a Region to optimize\n latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you\n will probably find it advantageous to create buckets in the Europe (Ireland) Region.

\n

If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1)\n by default. Configurations using the value EU will create a bucket in\n eu-west-1.

\n

For a list of the valid values for all of the Amazon Web Services Regions, see Regions and Endpoints.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "Location": { + "target": "com.amazonaws.s3#LocationInfo", + "traits": { + "smithy.api#documentation": "

Specifies the location where the bucket will be created.

\n

\n Directory buckets - The location type is Availability Zone or Local Zone. To\n use the Local Zone location type, your account must be enabled\n for Local Zones. Otherwise, you get an HTTP 403 Forbidden error with the error code\n AccessDenied. To learn more,\n see Enable\n accounts for Local Zones in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketInfo", + "traits": { + "smithy.api#documentation": "

Specifies the information about the bucket that will be created.

\n \n

This functionality is only supported by directory buckets.

\n
" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.

\n

You must have the s3:TagResource permission to create a general\n purpose bucket with tags or the s3express:TagResource permission to create a directory bucket with tags.

\n

When creating buckets with tags, note that tag-based conditions using aws:ResourceTag and s3:BucketTag condition keys are applicable only after ABAC is enabled on the bucket. To learn more, see Enabling ABAC in general purpose buckets.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration information for the bucket.

" + } + }, + "com.amazonaws.s3#CreateBucketMetadataConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CreateBucketMetadataConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Creates an S3 Metadata V2 metadata configuration for a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use this operation, you must have the following permissions. For more information, see\n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n

If you want to encrypt your metadata tables with server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS), you need additional permissions in your KMS key policy. For more\n information, see \n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n

If you also want to integrate your table bucket with Amazon Web Services analytics services so that you can\n query your metadata table, you need additional permissions. For more information, see Integrating\n Amazon S3 Tables with Amazon Web Services analytics services in the\n Amazon S3 User Guide.

\n

To query your metadata tables, you need additional permissions. For more information, see \n \n Permissions for querying metadata tables in the Amazon S3 User Guide.

\n
    \n
  • \n

    \n s3:CreateBucketMetadataTableConfiguration\n

    \n \n

    The IAM policy action name is the same for the V1 and V2 API operations.

    \n
    \n
  • \n
  • \n

    \n s3tables:CreateTableBucket\n

    \n
  • \n
  • \n

    \n s3tables:CreateNamespace\n

    \n
  • \n
  • \n

    \n s3tables:GetTable\n

    \n
  • \n
  • \n

    \n s3tables:CreateTable\n

    \n
  • \n
  • \n

    \n s3tables:PutTablePolicy\n

    \n
  • \n
  • \n

    \n s3tables:PutTableBucketPolicy\n

    \n
  • \n
  • \n

    \n s3tables:PutTableEncryption\n

    \n
  • \n
  • \n

    \n kms:DescribeKey\n

    \n
  • \n
  • \n

    \n iam:PassRole - required if you include an\n AnnotationTableConfiguration with an IAM role.

    \n
  • \n
\n
\n
\n

The following operations are related to CreateBucketMetadataConfiguration:

\n \n

If you include an AnnotationTableConfiguration with an IAM role, the role must\n have a trust policy that allows the Amazon S3 metadata service to assume it, and a permissions policy\n that grants the actions needed to read annotations from your bucket. The following examples show\n a trust policy and a permissions policy that you can adapt for your bucket and account.

\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}?metadataConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#CreateBucketMetadataConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The general purpose bucket that you want to create the metadata configuration for.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

\n The Content-MD5 header for the metadata configuration.\n

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

\n The checksum algorithm to use with your metadata configuration.\n

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "MetadataConfiguration": { + "target": "com.amazonaws.s3#MetadataConfiguration", + "traits": { + "smithy.api#documentation": "

\n The contents of your metadata configuration.\n

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "MetadataConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The expected owner of the general purpose bucket that corresponds to your metadata configuration.\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CreateBucketMetadataTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CreateBucketMetadataTableConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

\n We recommend that you create your S3 Metadata configurations by using the V2 \n CreateBucketMetadataConfiguration API operation. We no longer recommend using the V1 \n CreateBucketMetadataTableConfiguration API operation.\n

\n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
\n

Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use this operation, you must have the following permissions. For more information, see\n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n

If you want to encrypt your metadata tables with server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS), you need additional permissions. For more\n information, see \n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n

If you also want to integrate your table bucket with Amazon Web Services analytics services so that you can\n query your metadata table, you need additional permissions. For more information, see Integrating\n Amazon S3 Tables with Amazon Web Services analytics services in the\n Amazon S3 User Guide.

\n
    \n
  • \n

    \n s3:CreateBucketMetadataTableConfiguration\n

    \n
  • \n
  • \n

    \n s3tables:CreateNamespace\n

    \n
  • \n
  • \n

    \n s3tables:GetTable\n

    \n
  • \n
  • \n

    \n s3tables:CreateTable\n

    \n
  • \n
  • \n

    \n s3tables:PutTablePolicy\n

    \n
  • \n
\n
\n
\n

The following operations are related to CreateBucketMetadataTableConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}?metadataTable", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#CreateBucketMetadataTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The general purpose bucket that you want to create the metadata table configuration for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Content-MD5 header for the metadata table configuration.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

The checksum algorithm to use with your metadata table configuration.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "MetadataTableConfiguration": { + "target": "com.amazonaws.s3#MetadataTableConfiguration", + "traits": { + "smithy.api#documentation": "

The contents of your metadata table configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "MetadataTableConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The expected owner of the general purpose bucket that corresponds to your metadata table configuration.\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CreateBucketOutput": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.s3#Location", + "traits": { + "smithy.api#documentation": "

A forward slash followed by the name of the bucket for all account regional namespace buckets and all global general purpose buckets created in us-east-1. For example, /amzn-s3-demo-bucket. For global general purpose buckets created in other Amazon Web Services Regions, the Location field is the global endpoint URL. For example, http://amzn-s3-demo-bucket.s3.amazonaws.com/.

", + "smithy.api#httpHeader": "Location" + } + }, + "BucketArn": { + "target": "com.amazonaws.s3#S3RegionalOrS3ExpressBucketArnString", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all\n of Amazon Web Services.

\n \n

This parameter is only supported for S3 directory buckets. For more information, see Using tags with\n directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-arn" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#CreateBucketRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#BucketCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to create.

\n

\n General purpose buckets - For information about bucket naming\n restrictions, see Bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CreateBucketConfiguration": { + "target": "com.amazonaws.s3#CreateBucketConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration information for the bucket.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "CreateBucketConfiguration" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Allows grantee to list the objects in the bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the bucket ACL.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWrite": { + "target": "com.amazonaws.s3#GrantWrite", + "traits": { + "smithy.api#documentation": "

Allows grantee to create new objects in the bucket.

\n

For the bucket and object owners of existing objects, also allows deletions and overwrites of those\n objects.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-grant-write" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to write the ACL for the applicable bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "ObjectLockEnabledForBucket": { + "target": "com.amazonaws.s3#ObjectLockEnabledForBucket", + "traits": { + "smithy.api#documentation": "

Specifies whether you want S3 Object Lock to be enabled for the new bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-object-lock-enabled" + } + }, + "ObjectOwnership": { + "target": "com.amazonaws.s3#ObjectOwnership", + "traits": { + "smithy.api#httpHeader": "x-amz-object-ownership" + } + }, + "BucketNamespace": { + "target": "com.amazonaws.s3#BucketNamespace", + "traits": { + "smithy.api#documentation": "

Specifies the namespace where you want to create your general purpose bucket. When you create a\n general purpose bucket, you can choose to create a bucket in the shared global namespace or you can choose to\n create a bucket in your account regional namespace. Your account regional namespace is a subdivision of\n the global namespace that only your account can create buckets in. For more information on bucket\n namespaces, see Namespaces for general purpose buckets.

\n

General purpose buckets in your account regional namespace must follow a specific naming convention. These\n buckets consist of a bucket name prefix that you create, and a suffix that contains your 12-digit Amazon Web Services\n Account ID, the Amazon Web Services Region code, and ends with -an. Bucket names must follow the format\n bucket-name-prefix-accountId-region-an (for example,\n amzn-s3-demo-bucket-111122223333-us-west-2-an). For information about bucket naming\n restrictions, see Account regional namespace naming rules\n in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-namespace" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CreateMultipartUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CreateMultipartUploadRequest" + }, + "output": { + "target": "com.amazonaws.s3#CreateMultipartUploadOutput" + }, + "traits": { + "smithy.api#documentation": "\n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n

This action initiates a multipart upload and returns an upload ID. This upload ID is used to\n associate all of the parts in the specific multipart upload. You specify this upload ID in each of your\n subsequent upload part requests (see UploadPart). You also include this upload ID in\n the final request to either complete or abort the multipart upload request. For more information about\n multipart uploads, see Multipart\n Upload Overview in the Amazon S3 User Guide.

\n \n

After you initiate a multipart upload and upload one or more parts, to stop being charged for\n storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the\n space used to store the parts and stops charging you for storing them only after you either complete\n or abort a multipart upload.

\n
\n

If you have configured a lifecycle rule to abort incomplete multipart uploads, the created multipart\n upload must be completed within the number of days specified in the bucket lifecycle configuration.\n Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the\n multipart upload. For more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

\n \n
    \n
  • \n

    \n Directory buckets -\n S3 Lifecycle is not supported by directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Request signing
\n
\n

For request signing, multipart upload is just a series of regular requests. You initiate a\n multipart upload, send one or more requests to upload parts, and then complete the multipart\n upload process. You sign each request individually. There is nothing special about signing\n multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services\n Signature Version 4) in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To perform a\n multipart upload with encryption using an Key Management Service (KMS) KMS key, the requester must have\n permission to the kms:Decrypt and kms:GenerateDataKey actions on the\n key. The requester must also have permissions for the kms:GenerateDataKey action\n for the CreateMultipartUpload API. Then, the requester needs permissions for the\n kms:Decrypt action on the UploadPart and\n UploadPartCopy APIs. These permissions are required because Amazon S3 must decrypt\n and read data from the encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API and\n permissions and Protecting data using server-side\n encryption with Amazon Web Services KMS in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets - Server-side encryption is for\n data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers\n and decrypts it when you access it. Amazon S3 automatically encrypts all new objects that are\n uploaded to an S3 bucket. When doing a multipart upload, if you don't specify encryption\n information in your request, the encryption setting of the uploaded parts is set to the\n default encryption configuration of the destination bucket. By default, all buckets have a\n base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys\n (SSE-S3). If the destination bucket has a default encryption configuration that uses\n server-side encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided\n encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to\n encrypt the uploaded parts. When you perform a CreateMultipartUpload operation, if you want to\n use a different type of encryption setting for the uploaded parts, you can request that Amazon S3\n encrypts the object with a different encryption key (such as an Amazon S3 managed key, a KMS key,\n or a customer-provided key). When the encryption setting in your request is different from the\n default encryption configuration of the destination bucket, the encryption setting in your\n request takes precedence. If you choose to provide your own encryption key, the request\n headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the\n CreateMultipartUpload request.

    \n
      \n
    • \n

      Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key (aws/s3) and\n KMS customer managed keys stored in Key Management Service (KMS) – If you want Amazon Web Services to manage the keys used\n to encrypt data, specify the following headers in the request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-aws-kms-key-id\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-context\n

        \n
      • \n
      \n \n
        \n
      • \n

        If you specify x-amz-server-side-encryption:aws:kms, but don't\n provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the\n Amazon Web Services managed key (aws/s3 key) in KMS to protect the data.

        \n
      • \n
      • \n

        To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the\n requester must have permission to the kms:Decrypt and\n kms:GenerateDataKey* actions on the key. These permissions are\n required because Amazon S3 must decrypt and read data from the encrypted file parts\n before it completes the multipart upload. For more information, see Multipart\n upload API and permissions and Protecting data using\n server-side encryption with Amazon Web Services KMS in the\n Amazon S3 User Guide.

        \n
      • \n
      • \n

        If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the\n KMS key, then you must have these permissions on the key policy. If your IAM\n user or role is in a different account from the key, then you must have the\n permissions on both the key policy and your IAM user or role.

        \n
      • \n
      • \n

        All GET and PUT requests for an object protected by\n KMS fail if you don't make them by using Secure Sockets Layer (SSL), Transport\n Layer Security (TLS), or Signature Version 4. For information about configuring any\n of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request\n Authentication in the Amazon S3 User Guide.

        \n
      • \n
      \n
      \n

      For more information about server-side encryption with KMS keys (SSE-KMS), see\n Protecting Data Using Server-Side Encryption with KMS keys in the\n Amazon S3 User Guide.

      \n
    • \n
    • \n

      Use customer-provided encryption keys (SSE-C) – If you want to manage your own\n encryption keys, provide all the following headers in the request.

      \n
        \n
      • \n

        \n x-amz-server-side-encryption-customer-algorithm\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key\n

        \n
      • \n
      • \n

        \n x-amz-server-side-encryption-customer-key-MD5\n

        \n
      • \n
      \n

      For more information about server-side encryption with customer-provided encryption\n keys (SSE-C), see Protecting data\n using server-side encryption with customer-provided encryption keys (SSE-C) in\n the Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n

    In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, the encryption request headers must match the encryption settings that are specified in the CreateSession request. \n You can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) that are specified in the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

    \n \n

    When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n So in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n the encryption request headers must match the default encryption configuration of the directory bucket.\n\n

    \n
    \n \n

    For directory buckets, when you perform a CreateMultipartUpload operation\n and an UploadPartCopy operation, the request headers you provide in the\n CreateMultipartUpload request must match the default encryption configuration\n of the destination bucket.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to CreateMultipartUpload:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To initiate a multipart upload", + "documentation": "The following example initiates a multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "largeobject" + }, + "output": { + "Bucket": "examplebucket", + "UploadId": "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--", + "Key": "largeobject" + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}/{Key+}?uploads", + "code": 200 + } + } + }, + "com.amazonaws.s3#CreateMultipartUploadOutput": { + "type": "structure", + "members": { + "AbortDate": { + "target": "com.amazonaws.s3#AbortDate", + "traits": { + "smithy.api#documentation": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads\n and the prefix in the lifecycle rule matches the object name in the request, the response includes this\n header. The header indicates when the initiated multipart upload becomes eligible for an abort\n operation. For more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in the\n Amazon S3 User Guide.

\n

The response also includes the x-amz-abort-rule-id header that provides the ID of the\n lifecycle configuration rule that defines the abort action.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-abort-date" + } + }, + "AbortRuleId": { + "target": "com.amazonaws.s3#AbortRuleId", + "traits": { + "smithy.api#documentation": "

This header is returned along with the x-amz-abort-date header. It identifies the\n applicable lifecycle configuration rule that defines the action to abort incomplete multipart\n uploads.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-abort-rule-id" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or\n access point alias if used.

\n \n

Access points are not supported by directory buckets.

\n
", + "smithy.api#xmlName": "Bucket" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

" + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

ID for the initiated multipart upload.

" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to create a checksum of the object.

", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum\n value. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "InitiateMultipartUploadResult" + } + }, + "com.amazonaws.s3#CreateMultipartUploadRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#ObjectCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as\n canned ACLs. Each canned ACL has a predefined set of grantees and permissions.\n For more information, see Canned ACL in the\n Amazon S3 User Guide.

\n

By default, all objects are private. Only the owner has full access control. When uploading an\n object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by\n Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more\n information, see Using\n ACLs. One way to grant the permissions using the request headers is to specify a canned ACL\n with the x-amz-acl request header.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket where the multipart upload is initiated and where the object is\n uploaded.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Specifies caching behavior along the request/reply chain.

", + "smithy.api#httpHeader": "Cache-Control" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object.

", + "smithy.api#httpHeader": "Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field.

\n \n

For directory buckets, only the aws-chunked value is supported in this header field.

\n
", + "smithy.api#httpHeader": "Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language that the content is in.

", + "smithy.api#httpHeader": "Content-Language" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the object data.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable.

", + "smithy.api#httpHeader": "Expires" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions\n on the object.

\n

By default, all objects are private. Only the owner has full access control. When uploading an\n object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or\n groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see\n Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the following:

\n
    \n
  • \n

    \n id – if the value specified is the canonical user ID of an Amazon Web Services account

    \n
  • \n
  • \n

    \n uri – if you are granting permissions to a predefined group

    \n
  • \n
  • \n

    \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Specify access permissions explicitly to allow grantee to read the object data and its\n metadata.

\n

By default, all objects are private. Only the owner has full access control. When uploading an\n object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or\n groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see\n Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the following:

\n
    \n
  • \n

    \n id – if the value specified is the canonical user ID of an Amazon Web Services account

    \n
  • \n
  • \n

    \n uri – if you are granting permissions to a predefined group

    \n
  • \n
  • \n

    \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to read the object ACL.

\n

By default, all objects are private. Only the owner has full access control. When uploading an\n object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or\n groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see\n Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the following:

\n
    \n
  • \n

    \n id – if the value specified is the canonical user ID of an Amazon Web Services account

    \n
  • \n
  • \n

    \n uri – if you are granting permissions to a predefined group

    \n
  • \n
  • \n

    \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the\n applicable object.

\n

By default, all objects are private. Only the owner has full access control. When uploading an\n object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or\n groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see\n Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n

You specify each grantee as a type=value pair, where the type is one of the following:

\n
    \n
  • \n

    \n id – if the value specified is the canonical user ID of an Amazon Web Services account

    \n
  • \n
  • \n

    \n uri – if you are granting permissions to a predefined group

    \n
  • \n
  • \n

    \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

\n

\n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload is to be initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n
    \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n

    In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, the encryption request headers must match the encryption settings that are specified in the CreateSession request. \n You can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) that are specified in the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

    \n \n

    When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n So in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n the encryption request headers must match the default encryption configuration of the directory bucket.\n\n

    \n
    \n
  • \n
  • \n

    \n S3 access points for Amazon FSx - When accessing data stored in\n Amazon FSx file systems using S3 access points, the only valid server side encryption option is\n aws:fsx. All Amazon FSx file systems have encryption configured by default and are\n encrypted at rest. Data is automatically encrypted before being written to the file system, and\n automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD\n storage class provides high durability and high availability. Depending on performance needs, you can\n specify a different Storage Class. For more information, see Storage Classes in the\n Amazon S3 User Guide.

\n \n
    \n
  • \n

    Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in\n Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in\n Dedicated Local Zones.

    \n
  • \n
  • \n

    Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-storage-class" + } + }, + "WebsiteRedirectLocation": { + "target": "com.amazonaws.s3#WebsiteRedirectLocation", + "traits": { + "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another object in\n the same bucket or to an external URL. Amazon S3 stores the value of this header in the object\n metadata.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-website-redirect-location" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3\n uses this header for a message integrity check to ensure that the encryption key was transmitted without\n error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same\n account that's issuing the command, you must use the full Key ARN not the Key ID.

\n

\n General purpose buckets - If you specify x-amz-server-side-encryption with aws:kms or aws:kms:dsse, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS \n key to use. If you specify\n x-amz-server-side-encryption:aws:kms or\n x-amz-server-side-encryption:aws:kms:dsse, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key\n (aws/s3) to protect the data.

\n

\n Directory buckets - To encrypt data using SSE-KMS, it's recommended to specify the \nx-amz-server-side-encryption header to aws:kms. Then, the x-amz-server-side-encryption-aws-kms-key-id header implicitly uses \nthe bucket's default KMS customer managed key ID. If you want to explicitly set the \n x-amz-server-side-encryption-aws-kms-key-id header, it must match the bucket's default customer managed key (using key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n \n Incorrect key specification results in an HTTP 400 Bad Request error.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using Key Management Service (KMS) keys (SSE-KMS).

\n

\n General purpose buckets - Setting this header to\n true causes Amazon S3 to use an S3 Bucket Key for object encryption with\n SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3\n Bucket Key.

\n

\n Directory buckets - S3 Bucket Keys are always enabled for GET and PUT operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject, UploadPartCopy, the Copy operation in Batch Operations, or \n the import jobs. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#TaggingHeader", + "traits": { + "smithy.api#documentation": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-tagging" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

Specifies the Object Lock mode that you want to apply to the uploaded object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-mode" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

Specifies the date and time when you want the Object Lock to expire.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-retain-until-date" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to apply a legal hold to the uploaded object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" + } + }, + "ObjectLockEventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

Specifies the event hold status to apply to the uploaded object. Set to ON to enable\n or OFF to disable.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold" + } + }, + "ObjectLockEventHoldDurationDays": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationDays", + "traits": { + "smithy.api#documentation": "

Specifies the event hold duration in days to apply to the uploaded object. You cannot\n specify a duration in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-days" + } + }, + "ObjectLockEventHoldDurationYears": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationYears", + "traits": { + "smithy.api#documentation": "

Specifies the event hold duration in years to apply to the uploaded object. You cannot\n specify a duration in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-years" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For\n more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CreateSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#CreateSessionRequest" + }, + "output": { + "target": "com.amazonaws.s3#CreateSessionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchBucket" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a session that establishes temporary security credentials to support fast authentication and\n authorization for the Zonal endpoint API operations on directory buckets. For more information about Zonal endpoint API operations that\n include the Availability Zone in the request endpoint, see S3 Express One Zone APIs in the\n Amazon S3 User Guide.

\n

To make Zonal endpoint API requests on a directory bucket, use the CreateSession API\n operation. Specifically, you grant s3express:CreateSession permission to a bucket in\n a bucket policy or an IAM identity-based policy. Then, you use IAM credentials to make the CreateSession\n API request on the bucket, which returns temporary security credentials that include the access key ID,\n secret access key, session token, and expiration. These credentials have associated permissions to\n access the Zonal endpoint API operations. After the session is created, you don’t need to use other policies to grant\n permissions to each Zonal endpoint API individually. Instead, in your Zonal endpoint API requests, you sign your\n requests by applying the temporary security credentials of the session to the request headers and\n following the SigV4 protocol for authentication. You also apply the session token to the\n x-amz-s3session-token request header for authorization. Temporary security credentials\n are scoped to the bucket and expire after 5 minutes. After the expiration time, any calls that you make\n with those credentials will fail. You must use IAM credentials again to make a\n CreateSession API request that generates a new set of temporary credentials for use.\n Temporary credentials cannot be extended or refreshed beyond the original specified interval.

\n

If you use Amazon Web Services SDKs, SDKs handle the session token refreshes automatically to avoid service\n interruptions when a session expires. We recommend that you use the Amazon Web Services SDKs to initiate and manage\n requests to the CreateSession API. For more information, see Performance guidelines and design patterns in the\n Amazon S3 User Guide.

\n \n
    \n
  • \n

    You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n \n CopyObject API operation - Unlike other\n Zonal endpoint API operations, the CopyObject API operation doesn't use the temporary security\n credentials returned from the CreateSession API operation for authentication and\n authorization. For information about authentication and authorization of the\n CopyObject API operation on directory buckets, see CopyObject.

    \n
  • \n
  • \n

    \n \n HeadBucket API operation - Unlike other\n Zonal endpoint API operations, the HeadBucket API operation doesn't use the temporary security\n credentials returned from the CreateSession API operation for authentication and\n authorization. For information about authentication and authorization of the\n HeadBucket API operation on directory buckets, see HeadBucket.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n

To obtain temporary security credentials, you must create a bucket policy or an IAM identity-based policy that\n grants s3express:CreateSession permission to the bucket. In a policy, you can have\n the s3express:SessionMode condition key to control who can create a\n ReadWrite or ReadOnly session. For more information about\n ReadWrite or ReadOnly sessions, see \n x-amz-create-session-mode\n . For example policies, see Example\n bucket policies for S3 Express One Zone and Amazon Web Services Identity\n and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

\n

To grant cross-account access to Zonal endpoint API operations, the bucket policy should also grant both\n accounts the s3express:CreateSession permission.

\n

If you want to encrypt objects with SSE-KMS, you must also have the\n kms:GenerateDataKey and the kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the target KMS key.

\n
\n
Encryption
\n
\n

For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n

For Zonal endpoint (object-level) API operations except CopyObject and UploadPartCopy, \nyou authenticate and authorize requests through CreateSession for low latency. \n To encrypt new objects in a directory bucket with SSE-KMS, you must specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a customer managed key). Then, when a session is created for Zonal endpoint API operations, new objects are automatically encrypted and decrypted with SSE-KMS and S3 Bucket Keys during the session.

\n \n

\n Only 1 customer managed key is supported per directory bucket for the lifetime of the bucket. The Amazon Web Services managed key (aws/s3) isn't supported. \n After you specify SSE-KMS as your bucket's default encryption configuration with a customer managed key, you can't change the customer managed key for the bucket's SSE-KMS configuration.\n

\n
\n

In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, \n you can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) from the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

\n \n

When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n Also, in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n it's not supported to override the values of the encryption settings from the CreateSession request. \n\n

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?session", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "DisableS3ExpressSessionAuth": { + "value": true + } + } + } + }, + "com.amazonaws.s3#CreateSessionOutput": { + "type": "structure", + "members": { + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store objects in the directory bucket.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If you specify x-amz-server-side-encryption with aws:kms, this header indicates the ID of the KMS \n symmetric encryption customer managed key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. \n This value is stored as object metadata and automatically gets\n passed on to Amazon Web Services KMS for future GetObject \n operations on this object.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether to use an S3 Bucket Key for server-side encryption\n with KMS keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "Credentials": { + "target": "com.amazonaws.s3#SessionCredentials", + "traits": { + "smithy.api#documentation": "

The established temporary security credentials for the created session.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Credentials" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "CreateSessionResult" + } + }, + "com.amazonaws.s3#CreateSessionRequest": { + "type": "structure", + "members": { + "SessionMode": { + "target": "com.amazonaws.s3#SessionMode", + "traits": { + "smithy.api#documentation": "

Specifies the mode of the session that will be created, either ReadWrite or \n ReadOnly. If no session mode is specified, the default behavior attempts to create \n a session with the maximum allowable privilege. It will first attempt to create a \n ReadWrite session, and if that is not allowed by permissions, it will attempt to create a \n ReadOnly session. If neither session type is allowed, the request will return an Access Denied error. A\n ReadWrite session is capable of executing all the Zonal endpoint API operations on a directory bucket. A\n ReadOnly session is constrained to execute the following Zonal endpoint API operations:\n GetObject, HeadObject, ListObjectsV2,\n GetObjectAttributes, ListParts, and\n ListMultipartUploads.

", + "smithy.api#httpHeader": "x-amz-create-session-mode" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that you create a session for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm to use when you store objects in the directory bucket.

\n

For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). By default, Amazon S3 encrypts data with SSE-S3. \n For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n

\n S3 access points for Amazon FSx - When accessing data stored in Amazon FSx\n file systems using S3 access points, the only valid server side encryption option is aws:fsx. All\n Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is\n automatically encrypted before being written to the file system, and automatically decrypted as it is\n read. These processes are handled transparently by Amazon FSx.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If you specify x-amz-server-side-encryption with aws:kms, you must specify the \n x-amz-server-side-encryption-aws-kms-key-id header with the ID (Key ID or Key ARN) of the KMS \n symmetric encryption customer managed key to use. Otherwise, you get an HTTP 400 Bad Request error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same\n account that't issuing the command, you must use the full Key ARN not the Key ID.

\n

Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. \n This value is stored as object metadata and automatically gets passed on\n to Amazon Web Services KMS for future GetObject operations on\n this object.

\n

\n General purpose buckets - This value must be explicitly added during CopyObject operations if you want an additional encryption context for your object. For more information, see Encryption context in the Amazon S3 User Guide.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using KMS keys (SSE-KMS).

\n

S3 Bucket Keys are always enabled for GET and PUT operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject, UploadPartCopy, the Copy operation in Batch Operations, or \n the import jobs. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#CreationDate": { + "type": "timestamp" + }, + "com.amazonaws.s3#DataRedundancy": { + "type": "enum", + "members": { + "SingleAvailabilityZone": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SingleAvailabilityZone" + } + }, + "SingleLocalZone": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SingleLocalZone" + } + } + } + }, + "com.amazonaws.s3#Date": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.s3#Days": { + "type": "integer" + }, + "com.amazonaws.s3#DaysAfterInitiation": { + "type": "integer" + }, + "com.amazonaws.s3#DefaultRetention": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.s3#ObjectLockRetentionMode", + "traits": { + "smithy.api#documentation": "

The default Object Lock retention mode you want to apply to new objects placed in the specified\n bucket. Must be used with either Days or Years.

" + } + }, + "Days": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

The number of days that you want to specify for the default retention period. Must be used with\n Mode.

" + } + }, + "Years": { + "target": "com.amazonaws.s3#Years", + "traits": { + "smithy.api#documentation": "

The number of years that you want to specify for the default retention period. Must be used with\n Mode.

" + } + }, + "DefaultEventHold": { + "target": "com.amazonaws.s3#EventHoldDuration", + "traits": { + "smithy.api#documentation": "

The default event hold duration to be applied to new objects placed in the specified bucket. When\n configured, new objects will automatically have an event hold enabled with this duration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for optionally specifying the default Object Lock retention settings for new\n objects placed in the specified bucket.

\n \n
    \n
  • \n

    The DefaultRetention settings require both a mode and a period.

    \n
  • \n
  • \n

    The DefaultRetention period can be either Days or Years\n but you must select one. You cannot specify Days and Years at the same\n time.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.s3#Delete": { + "type": "structure", + "members": { + "Objects": { + "target": "com.amazonaws.s3#ObjectIdentifierList", + "traits": { + "smithy.api#documentation": "

The object to delete.

\n \n

\n Directory buckets - For directory buckets, an object\n that's composed entirely of whitespace characters is not supported by the DeleteObjects\n API operation. The request will receive a 400 Bad Request error and none of the objects\n in the request will be deleted.

\n
", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Object" + } + }, + "Quiet": { + "target": "com.amazonaws.s3#Quiet", + "traits": { + "smithy.api#documentation": "

Element to enable quiet mode for the request. When you add this element, you must set its value to\n true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the objects to delete.

" + } + }, + "com.amazonaws.s3#DeleteBucket": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket\n must be deleted before the bucket itself can be deleted.

\n \n
    \n
  • \n

    \n Directory buckets - If multipart uploads in a\n directory bucket are in progress, you can't delete the bucket until all the in-progress multipart\n uploads are aborted or completed.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the\n s3:DeleteBucket permission on the specified bucket in a policy.

    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have the\n s3express:DeleteBucket permission in an IAM identity-based policy instead of a bucket policy.\n Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucket:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete a bucket", + "documentation": "The following example deletes the specified bucket.", + "input": { + "Bucket": "forrandall2" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketAnalyticsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketAnalyticsConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes an analytics configuration for the bucket (specified by the analytics configuration\n ID).

\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to DeleteBucketAnalyticsConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?analytics", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketAnalyticsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket from which an analytics configuration is deleted.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#AnalyticsId", + "traits": { + "smithy.api#documentation": "

The ID that identifies the analytics configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketCors": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketCorsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the cors configuration information set for the bucket.

\n

To use this operation, you must have permission to perform the s3:PutBucketCORS action.\n The bucket owner has this permission by default and can grant this permission to others.

\n

For information about cors, see Enabling Cross-Origin Resource Sharing in the\n Amazon S3 User Guide.

\n

\n Related Resources\n

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete cors configuration on a bucket.", + "documentation": "The following example deletes CORS configuration on a bucket.", + "input": { + "Bucket": "examplebucket" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?cors", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketCorsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Specifies the bucket whose cors configuration is being deleted.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketEncryptionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

This implementation of the DELETE action resets the default encryption for the bucket as server-side\n encryption with Amazon S3 managed keys (SSE-S3).

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutEncryptionConfiguration permission is required in a policy. The bucket\n owner has this permission by default. The bucket owner can grant this permission to others.\n For more information about permissions, see Permissions Related to Bucket Operations and Managing Access Permissions to Your\n Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:PutEncryptionConfiguration\n permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketEncryption:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?encryption", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketEncryptionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the server-side encryption configuration to delete.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketIntelligentTieringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketIntelligentTieringConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to DeleteBucketIntelligentTieringConfiguration include:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?intelligent-tiering", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketIntelligentTieringConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#IntelligentTieringId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the S3 Intelligent-Tiering configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketInventoryConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketInventoryConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes an S3 Inventory configuration (identified by the inventory ID) from the bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n\t s3:PutInventoryConfiguration permission is required in a policy. For more information\n\t about general purpose buckets permissions, see Using Bucket Policies and User\n\t Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n\t this API operation, you must have the s3express:PutInventoryConfiguration permission in\n\t an IAM identity-based policy instead of a bucket policy.\n\t For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n \n

After deleting a configuration, Amazon S3 might still deliver one additional inventory\n report during a brief transition period while the system processes the deletion.

\n
\n

Operations related to DeleteBucketInventoryConfiguration include:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?inventory", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketInventoryConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the inventory configuration to delete.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#InventoryId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the inventory configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketLifecycle": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketLifecycleRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle\n configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire,\n and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted\n lifecycle configuration.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By default, all Amazon S3\n resources are private, including buckets, objects, and related subresources (for example,\n lifecycle configuration and website configuration). Only the resource owner (that is, the\n Amazon Web Services account that created it) can access the resource. The resource owner can optionally\n grant access permissions to others by writing an access policy. For this operation, a user\n must have the s3:PutLifecycleConfiguration permission.

    \n

    For more information about permissions, see Managing Access Permissions to Your\n Amazon S3 Resources.

    \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions - You must have the\n s3express:PutLifecycleConfiguration permission in an IAM identity-based policy\n to use this operation. Cross-account access to this API operation isn't supported. The\n resource owner can optionally grant access permissions to others by creating a role or user\n for them as long as they are within the same account as the owner and resource.

    \n

    For more information about directory bucket policies and permissions, see Authorizing Regional endpoint APIs with IAM in the Amazon S3 User\n Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n

For more information about the object expiration, see Elements to\n Describe Lifecycle Actions.

\n

Related actions include:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete lifecycle configuration on a bucket.", + "documentation": "The following example deletes lifecycle configuration on a bucket.", + "input": { + "Bucket": "examplebucket" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?lifecycle", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketLifecycleRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name of the lifecycle to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketMetadataConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketMetadataConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes an S3 Metadata configuration from a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n \n

You can use the V2 DeleteBucketMetadataConfiguration API operation with V1 or V2 \n metadata configurations. However, if you try to use the V1 \n DeleteBucketMetadataTableConfiguration API operation with V2 configurations, you\n will receive an HTTP 405 Method Not Allowed error.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have the\n s3:DeleteBucketMetadataTableConfiguration permission. For more information, see\n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n \n

The IAM policy action name is the same for the V1 and V2 API operations.

\n
\n
\n
\n

The following operations are related to DeleteBucketMetadataConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?metadataConfiguration", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketMetadataConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The general purpose bucket that you want to remove the metadata configuration from.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The expected bucket owner of the general purpose bucket that you want to remove the metadata table\n configuration from.\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketMetadataTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketMetadataTableConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

\n We recommend that you delete your S3 Metadata configurations by using the V2 \n DeleteBucketMetadataTableConfiguration API operation. We no longer recommend using \n the V1 DeleteBucketMetadataTableConfiguration API operation.\n

\n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
\n

Deletes a V1 S3 Metadata configuration from a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n \n

You can use the V2 DeleteBucketMetadataConfiguration API operation with V1 or V2 \n metadata table configurations. However, if you try to use the V1 \n DeleteBucketMetadataTableConfiguration API operation with V2 configurations, you\n will receive an HTTP 405 Method Not Allowed error.

\n

Make sure that you update your processes to use the new V2 API operations\n (CreateBucketMetadataConfiguration, GetBucketMetadataConfiguration, and\n DeleteBucketMetadataConfiguration) instead of the V1 API operations.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have the\n s3:DeleteBucketMetadataTableConfiguration permission. For more information, see\n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n
\n
\n

The following operations are related to DeleteBucketMetadataTableConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?metadataTable", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketMetadataTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The general purpose bucket that you want to remove the metadata table configuration from.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The expected bucket owner of the general purpose bucket that you want to remove the metadata table\n configuration from.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketMetricsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketMetricsConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics\n configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutMetricsConfiguration permission is required in a policy. For more information\n about general purpose buckets permissions, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:PutMetricsConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

\n

The following operations are related to DeleteBucketMetricsConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?metrics", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketMetricsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the metrics configuration to delete.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#MetricsId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the metrics configuration. The ID has a 64 character limit and can only\n contain letters, numbers, periods, dashes, and underscores.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketOwnershipControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketOwnershipControlsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the\n s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions,\n see Specifying\n Permissions in a Policy.

\n

For information about Amazon S3 Object Ownership, see Using Object Ownership.

\n

The following operations are related to DeleteBucketOwnershipControls:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?ownershipControls", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketOwnershipControlsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket whose OwnershipControls you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Deletes the policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n bucket, the calling identity must both have the DeleteBucketPolicy permissions on the\n specified bucket and belong to the bucket owner's account in order to use this operation.

\n

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access\n Denied error. If you have the correct permissions, but you're not using an identity that\n belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed\n error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets,\n the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the\n root principal's access. Bucket owner root principals can only be blocked from performing these\n API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:DeleteBucketPolicy permission is required in a policy. For more information\n about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:DeleteBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteBucketPolicy\n

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete bucket policy", + "documentation": "The following example deletes bucket policy on the specified bucket.", + "input": { + "Bucket": "examplebucket" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?policy", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketPolicyRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketReplicationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes the replication configuration from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:PutReplicationConfiguration action. The bucket owner has these permissions by default\n and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n \n

It can take a while for the deletion of a replication configuration to fully propagate.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

The following operations are related to DeleteBucketReplication:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete bucket replication configuration", + "documentation": "The following example deletes replication configuration set on bucket.", + "input": { + "Bucket": "example" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?replication", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketReplicationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Specifies the bucket being deleted.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketTaggingRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Deletes tags from the general purpose bucket if attribute based access control (ABAC) is not enabled for the bucket. When you enable ABAC for a general purpose bucket, you can no longer use this operation for that bucket and must use UntagResource instead.

\n

To use this operation, you must have permission to perform the s3:PutBucketTagging\n action. By default, the bucket owner has this permission and can grant this permission to others.

\n

The following operations are related to DeleteBucketTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete bucket tags", + "documentation": "The following example deletes bucket tags.", + "input": { + "Bucket": "examplebucket" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?tagging", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket that has the tag set to be removed.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteBucketWebsite": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteBucketWebsiteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This action removes the website configuration for a bucket. Amazon S3 returns a 200 OK\n response upon successfully deleting a website configuration on the specified bucket. You will get a\n 200 OK response if the website configuration you are trying to delete does not exist on\n the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not\n exist.

\n

This DELETE action requires the S3:DeleteBucketWebsite permission. By default, only the\n bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant\n other users permission to delete the website configuration by writing a bucket policy granting them the\n S3:DeleteBucketWebsite permission.

\n

For more information about hosting websites, see Hosting Websites on Amazon S3.

\n

The following operations are related to DeleteBucketWebsite:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete bucket website configuration", + "documentation": "The following example deletes bucket website configuration.", + "input": { + "Bucket": "examplebucket" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?website", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeleteBucketWebsiteRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name for which you want to remove the website configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteMarker": { + "type": "boolean" + }, + "com.amazonaws.s3#DeleteMarkerEntry": { + "type": "structure", + "members": { + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

The account that created the delete marker.

" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of an object.

" + } + }, + "IsLatest": { + "target": "com.amazonaws.s3#IsLatest", + "traits": { + "smithy.api#documentation": "

Specifies whether the object is (true) or is not (false) the latest version of an object.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time when the object was last modified.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the delete marker.

" + } + }, + "com.amazonaws.s3#DeleteMarkerReplication": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#DeleteMarkerReplicationStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether to replicate delete markers.

\n \n

Indicates whether to replicate delete markers.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 replicates delete markers. If you specify a Filter in your\n replication configuration, you must also include a DeleteMarkerReplication element. If your\n Filter includes a Tag element, the DeleteMarkerReplication\n Status must be set to Disabled, because Amazon S3 does not support replicating delete markers\n for tag-based rules. For an example configuration, see Basic Rule\n Configuration.

\n

For more information about delete marker replication, see Basic Rule Configuration.

\n \n

If you are using an earlier version of the replication configuration, Amazon S3 handles replication of\n delete markers differently. For more information, see Backward Compatibility.

\n
" + } + }, + "com.amazonaws.s3#DeleteMarkerReplicationStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#DeleteMarkerVersionId": { + "type": "string" + }, + "com.amazonaws.s3#DeleteMarkers": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#DeleteMarkerEntry" + } + }, + "com.amazonaws.s3#DeleteObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#DeleteObjectOutput" + }, + "traits": { + "smithy.api#documentation": "

Removes an object from a bucket. The behavior depends on the bucket's versioning state:

\n
    \n
  • \n

    If bucket versioning is not enabled, the operation permanently deletes the object.

    \n
  • \n
  • \n

    If bucket versioning is enabled, the operation inserts a delete marker, which becomes the\n current version of the object. To permanently delete an object in a versioned bucket, you must\n include the object’s versionId in the request. For more information about\n versioning-enabled buckets, see Deleting object versions from a\n versioning-enabled bucket.

    \n
  • \n
  • \n

    If bucket versioning is suspended, the operation removes the object that has a null\n versionId, if there is one, and inserts a delete marker that becomes the current\n version of the object. If there isn't an object with a null versionId, and all versions\n of the object have a versionId, Amazon S3 does not remove the object and only inserts a\n delete marker. To permanently delete an object that has a versionId, you must include\n the object’s versionId in the request. For more information about versioning-suspended\n buckets, see Deleting\n objects from versioning-suspended buckets.

    \n
  • \n
\n \n
    \n
  • \n

    \n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets.\n You can only specify null to the versionId query parameter in the\n request.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n

To remove a specific version, you must use the versionId query parameter. Using this\n query parameter permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the\n response header x-amz-delete-marker to true.

\n

If the object you want to delete is in a bucket where the bucket versioning configuration is MFA\n Delete enabled, you must include the x-amz-mfa request header in the DELETE\n versionId request. Requests that include x-amz-mfa must use HTTPS. For more\n information about MFA Delete, see Using MFA Delete in the Amazon S3 User\n Guide. To see sample requests that use versioning, see Sample Request.

\n \n

\n Directory buckets - MFA delete is not supported by directory buckets.

\n
\n

You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle) to enable Amazon S3 to\n remove them for you. If you want to block users or accounts from removing or deleting objects from your\n bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and\n s3:PutLifeCycleConfiguration actions.

\n \n

\n Directory buckets -\n S3 Lifecycle is not supported by directory buckets.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The following\n permissions are required in your policies when your DeleteObjects request\n includes specific headers.

    \n
      \n
    • \n

      \n \n s3:DeleteObject\n - To\n delete an object from a bucket, you must always have the\n s3:DeleteObject permission.

      \n
    • \n
    • \n

      \n \n s3:DeleteObjectVersion\n - To delete a specific version of an object from a versioning-enabled\n bucket, you must have the s3:DeleteObjectVersion permission.

      \n \n

      If the s3:DeleteObject or s3:DeleteObjectVersion permissions are explicitly\n denied in your bucket policy, attempts to delete any unversioned objects\n result in a 403 Access Denied error.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following action is related to DeleteObject:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
\n \n

The If-Match header is supported for both general purpose and directory buckets. IfMatchLastModifiedTime and IfMatchSize is only supported for directory buckets.

\n
", + "smithy.api#examples": [ + { + "title": "To delete an object (from a non-versioned bucket)", + "documentation": "The following example deletes an object from a non-versioned bucket.", + "input": { + "Bucket": "ExampleBucket", + "Key": "HappyFace.jpg" + } + }, + { + "title": "To delete an object", + "documentation": "The following example deletes an object from an S3 bucket.", + "input": { + "Bucket": "examplebucket", + "Key": "objectkey.jpg" + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key+}?x-id=DeleteObject", + "code": 204 + } + } + }, + "com.amazonaws.s3#DeleteObjectAnnotation": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteObjectAnnotationRequest" + }, + "output": { + "target": "com.amazonaws.s3#DeleteObjectAnnotationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchBucket" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a specific annotation from an Amazon S3 object. Use the x-amz-object-if-match\n header to perform a conditional delete that only succeeds if the object's ETag matches the\n provided value, preventing race conditions during concurrent updates.

\n

Deleting an annotation is permanent. Annotations are not independently versioned, so there is no\n delete marker or way to recover a deleted annotation.

\n

To use this operation, you must have the s3:DeleteObjectAnnotation permission. If\n the object is protected by Object Lock in governance mode, you must also include the\n x-amz-bypass-governance-retention header.

\n \n

Annotations are not supported by the following features: S3 Inventory Reports,\n API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon FSx, S3 on Outposts, and\n S3 Express One Zone (directory buckets).

\n
\n

The following operations are related to DeleteObjectAnnotation:

\n ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key+}?annotation", + "code": 204 + } + } + }, + "com.amazonaws.s3#DeleteObjectAnnotationOutput": { + "type": "structure", + "members": { + "ObjectVersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object that the annotation was deleted from.

", + "smithy.api#httpHeader": "x-amz-object-version-id" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#DeleteObjectAnnotationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AnnotationName": { + "target": "com.amazonaws.s3#AnnotationName", + "traits": { + "smithy.api#documentation": "

The name of the annotation to delete. Annotation names are UTF-8 encoded and cannot start with\n aws or s3 (case-insensitive).

\n

Length Constraints: Minimum length of 1. Maximum length of 512 bytes.

", + "smithy.api#httpQuery": "annotationName", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object.

", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ObjectIfMatch": { + "target": "com.amazonaws.s3#ObjectIfMatch", + "traits": { + "smithy.api#documentation": "

If specified, the operation only succeeds if the object's ETag matches the provided value.

", + "smithy.api#httpHeader": "x-amz-object-if-match" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteObjectOutput": { + "type": "structure", + "members": { + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true) or was not\n (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not\n (false) the current version of the object is a delete marker. To learn more about delete markers, see\n Working with delete\n markers.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-delete-marker" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Returns the version ID of the delete marker created as a result of the DELETE operation.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#DeleteObjectRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name of the bucket containing the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key name of the object to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "MFA": { + "target": "com.amazonaws.s3#MFA", + "traits": { + "smithy.api#documentation": "

The concatenation of the authentication device's serial number, a space, and the value that is\n displayed on your authentication device. Required to permanently delete a versioned object if versioning\n is configured with MFA delete enabled.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-mfa" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n \n

For directory buckets in this API operation, only the null value of the version ID is supported.

\n
", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "BypassGovernanceRetention": { + "target": "com.amazonaws.s3#BypassGovernanceRetention", + "traits": { + "smithy.api#documentation": "

Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this\n operation. To use this header, you must have the s3:BypassGovernanceRetention\n permission.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bypass-governance-retention" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. \n If the ETag values do not match, the operation returns a 412 Precondition Failed error.

\n

Expects the ETag value as a string. If-Match does accept a string value of an '*' (asterisk) character to denote a match of any ETag.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfMatchLastModifiedTime": { + "target": "com.amazonaws.s3#IfMatchLastModifiedTime", + "traits": { + "smithy.api#documentation": "

If present, the object is deleted only if its modification times matches the provided\n Timestamp. If the Timestamp values do not match, the operation returns a\n 412 Precondition Failed error. If the Timestamp matches or if the object\n doesn’t exist, the operation returns a 204 Success (No Content) response.

\n \n

This functionality is only supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-last-modified-time" + } + }, + "IfMatchSize": { + "target": "com.amazonaws.s3#IfMatchSize", + "traits": { + "smithy.api#documentation": "

If present, the object is deleted only if its size matches the provided size in bytes. If the\n Size value does not match, the operation returns a 412 Precondition Failed\n error. If the Size matches or if the object doesn’t exist, the operation returns a\n 204 Success (No Content) response.

\n \n

This functionality is only supported for directory buckets.

\n
\n \n

You can use the If-Match, x-amz-if-match-last-modified-time and\n x-amz-if-match-size conditional headers in conjunction with each-other or\n individually.

\n
", + "smithy.api#httpHeader": "x-amz-if-match-size" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteObjectTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteObjectTaggingRequest" + }, + "output": { + "target": "com.amazonaws.s3#DeleteObjectTaggingOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes the entire tag set from the specified object. For more information about managing object\n tags, see Object\n Tagging.

\n

To use this operation, you must have permission to perform the s3:DeleteObjectTagging\n action.

\n

To delete tags of a specific object version, add the versionId query parameter in the\n request. You will need permission for the s3:DeleteObjectVersionTagging action.

\n

The following operations are related to DeleteObjectTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To remove tag set from an object", + "documentation": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "VersionId": "null" + } + }, + { + "title": "To remove tag set from an object version", + "documentation": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + }, + "output": { + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + } + } + ], + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key+}?tagging", + "code": 204 + } + } + }, + "com.amazonaws.s3#DeleteObjectTaggingOutput": { + "type": "structure", + "members": { + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object the tag-set was removed from.

", + "smithy.api#httpHeader": "x-amz-version-id" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#DeleteObjectTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the objects from which to remove the tags.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key that identifies the object in the bucket from which to remove all tags.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object that the tag-set will be removed from.

", + "smithy.api#httpQuery": "versionId" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeleteObjects": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeleteObjectsRequest" + }, + "output": { + "target": "com.amazonaws.s3#DeleteObjectsOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

This operation enables you to delete multiple objects from a bucket using a single HTTP request. If\n you know the object keys that you want to delete, then this operation provides a suitable alternative to\n sending individual delete requests, reducing per-request overhead.

\n

The request can contain a list of up to 1,000 keys that you want to delete. In the XML, you provide\n the object key names, and optionally, version IDs if you want to delete a specific version of the object\n from a versioning-enabled bucket. For each key, Amazon S3 performs a delete operation and returns the result\n of that delete, success or failure, in the response. If the object specified in the request isn't found,\n Amazon S3 confirms the deletion by returning the result as deleted.

\n \n
    \n
  • \n

    \n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n

The operation supports two modes for the response: verbose and quiet. By default, the operation uses\n verbose mode in which the response includes the result of deletion of each key in your request. In quiet\n mode the response includes only keys where the delete operation encountered an error. For a successful\n deletion in a quiet mode, the operation does not return any information about the delete in the response\n body.

\n

When performing this action on an MFA Delete enabled bucket, that attempts to delete any versioned\n objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if\n there are non-versioned objects you are trying to delete. If you provide an invalid token, whether there\n are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For\n information about MFA Delete, see MFA Delete in the\n Amazon S3 User Guide.

\n \n

\n Directory buckets - MFA delete is not supported by directory buckets.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The following\n permissions are required in your policies when your DeleteObjects request\n includes specific headers.

    \n
      \n
    • \n

      \n \n s3:DeleteObject\n - To delete an\n object from a bucket, you must always specify the s3:DeleteObject\n permission.

      \n
    • \n
    • \n

      \n \n s3:DeleteObjectVersion\n - To delete a specific version of an object from a versioning-enabled\n bucket, you must specify the s3:DeleteObjectVersion permission.

      \n \n

      If the s3:DeleteObject or s3:DeleteObjectVersion permissions are explicitly\n denied in your bucket policy, attempts to delete any unversioned objects\n result in a 403 Access Denied error.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Content-MD5 request header
\n
\n
    \n
  • \n

    \n General purpose bucket - The Content-MD5 request header\n is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that\n your request body has not been altered in transit.

    \n
  • \n
  • \n

    \n Directory bucket - The Content-MD5 request header\n or a additional checksum request header (including x-amz-checksum-crc32,\n x-amz-checksum-crc32c, x-amz-checksum-sha1, or\n x-amz-checksum-sha256) is required for all Multi-Object Delete requests.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to DeleteObjects:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To delete multiple object versions from a versioned bucket", + "documentation": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", + "input": { + "Bucket": "examplebucket", + "Delete": { + "Objects": [ + { + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + }, + { + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + } + ], + "Quiet": false + } + }, + "output": { + "Deleted": [ + { + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd", + "Key": "HappyFace.jpg" + }, + { + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b", + "Key": "HappyFace.jpg" + } + ] + } + }, + { + "title": "To delete multiple objects from a versioned bucket", + "documentation": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "input": { + "Bucket": "examplebucket", + "Delete": { + "Objects": [ + { + "Key": "objectkey1" + }, + { + "Key": "objectkey2" + } + ], + "Quiet": false + } + }, + "output": { + "Deleted": [ + { + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1", + "DeleteMarker": true + }, + { + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2", + "DeleteMarker": true + } + ] + } + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}?delete", + "code": 200 + } + } + }, + "com.amazonaws.s3#DeleteObjectsOutput": { + "type": "structure", + "members": { + "Deleted": { + "target": "com.amazonaws.s3#DeletedObjects", + "traits": { + "smithy.api#documentation": "

Container element for a successful delete. It identifies the object that was successfully\n deleted.

", + "smithy.api#xmlFlattened": {} + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "Errors": { + "target": "com.amazonaws.s3#Errors", + "traits": { + "smithy.api#documentation": "

Container for a failed delete action that describes the object that Amazon S3 attempted to delete and the\n error it encountered.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Error" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "DeleteResult" + } + }, + "com.amazonaws.s3#DeleteObjectsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the objects to delete.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Delete": { + "target": "com.amazonaws.s3#Delete", + "traits": { + "smithy.api#documentation": "

Container for the request.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "Delete" + } + }, + "MFA": { + "target": "com.amazonaws.s3#MFA", + "traits": { + "smithy.api#documentation": "

The concatenation of the authentication device's serial number, a space, and the value that is\n displayed on your authentication device. Required to permanently delete a versioned object if versioning\n is configured with MFA delete enabled.

\n

When performing the DeleteObjects operation on an MFA delete enabled bucket, which\n attempts to delete the specified versioned objects, you must include an MFA token. If you don't provide\n an MFA token, the entire request will fail, even if there are non-versioned objects that you are trying\n to delete. If you provide an invalid token, whether there are versioned object keys in the request or\n not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA\n Delete in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-mfa" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "BypassGovernanceRetention": { + "target": "com.amazonaws.s3#BypassGovernanceRetention", + "traits": { + "smithy.api#documentation": "

Specifies whether you want to delete this object even if it has a Governance-type Object Lock in\n place. To use this header, you must have the s3:BypassGovernanceRetention\n permission.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bypass-governance-retention" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm\n or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

\n

For the x-amz-checksum-algorithm\n header, replace \n algorithm\n with the supported algorithm from the following list:

\n
    \n
  • \n

    \n CRC32\n

    \n
  • \n
  • \n

    \n CRC32C\n

    \n
  • \n
  • \n

    \n CRC64NVME\n

    \n
  • \n
  • \n

    \n MD5\n

    \n
  • \n
  • \n

    \n SHA1\n

    \n
  • \n
  • \n

    \n SHA256\n

    \n
  • \n
  • \n

    \n SHA512\n

    \n
  • \n
  • \n

    \n XXHASH3\n

    \n
  • \n
  • \n

    \n XXHASH64\n

    \n
  • \n
  • \n

    \n XXHASH128\n

    \n
  • \n
\n

For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If the individual checksum value you provide through x-amz-checksum-algorithm\n doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 fails the request with a BadDigest error.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeletePublicAccessBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#DeletePublicAccessBlockRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. This\n operation removes the bucket-level configuration only. The effective public access behavior\n will still be governed by account-level settings (which may inherit from organization-level\n policies). To use this operation, you must have the s3:PutBucketPublicAccessBlock\n permission. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access\n Permissions to Your Amazon S3 Resources.

\n

The following operations are related to DeletePublicAccessBlock:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/{Bucket}?publicAccessBlock", + "code": 204 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#DeletePublicAccessBlockRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#DeletedObject": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The name of the deleted object.

" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the deleted object.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Indicates whether the specified object version that was permanently deleted was (true) or was not\n (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not\n (false) the current version of the object is a delete marker. To learn more about delete markers, see\n Working with delete\n markers.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "DeleteMarkerVersionId": { + "target": "com.amazonaws.s3#DeleteMarkerVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the delete marker created as a result of the DELETE operation. If you delete a\n specific object version, the value returned by this header is the version ID of the object version\n deleted.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the deleted object.

" + } + }, + "com.amazonaws.s3#DeletedObjects": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#DeletedObject" + } + }, + "com.amazonaws.s3#Delimiter": { + "type": "string" + }, + "com.amazonaws.s3#Description": { + "type": "string" + }, + "com.amazonaws.s3#Destination": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.

", + "smithy.api#required": {} + } + }, + "Account": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change\n replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the\n AccessControlTranslation property, this is the account ID of the destination bucket\n owner. For more information, see Replication Additional Configuration: Changing\n the Replica Owner in the Amazon S3 User Guide.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By\n default, Amazon S3 uses the storage class of the source object to create the object replica.

\n

For valid values, see the StorageClass element of the PUT Bucket replication action in the\n Amazon S3 API Reference.

\n

\n FSX_OPENZFS is not an accepted value when replicating objects.

" + } + }, + "AccessControlTranslation": { + "target": "com.amazonaws.s3#AccessControlTranslation", + "traits": { + "smithy.api#documentation": "

Specify this only in a cross-account scenario (where source and destination bucket owners are not\n the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination\n bucket. If this is not specified in the replication configuration, the replicas are owned by same\n Amazon Web Services account that owns the source object.

" + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#EncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

A container that provides information about encryption. If SourceSelectionCriteria is\n specified, you must specify this element.

" + } + }, + "ReplicationTime": { + "target": "com.amazonaws.s3#ReplicationTime", + "traits": { + "smithy.api#documentation": "

A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all\n objects and operations on objects must be replicated. Must be specified together with a\n Metrics block.

" + } + }, + "Metrics": { + "target": "com.amazonaws.s3#Metrics", + "traits": { + "smithy.api#documentation": "

A container specifying replication metrics-related settings enabling replication metrics and\n events.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket\n and S3 Replication Time Control (S3 RTC).

" + } + }, + "com.amazonaws.s3#DestinationResult": { + "type": "structure", + "members": { + "TableBucketType": { + "target": "com.amazonaws.s3#S3TablesBucketType", + "traits": { + "smithy.api#documentation": "

\n The type of the table bucket where the metadata configuration is stored. The aws \n value indicates an Amazon Web Services managed table bucket, and the customer value indicates a \n customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table \n buckets, and V1 metadata configurations are stored in customer-managed table buckets. \n

" + } + }, + "TableBucketArn": { + "target": "com.amazonaws.s3#S3TablesBucketArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.\n

" + } + }, + "TableNamespace": { + "target": "com.amazonaws.s3#S3TablesNamespace", + "traits": { + "smithy.api#documentation": "

\n The namespace in the table bucket where the metadata tables for a metadata configuration are \n stored.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The destination information for the S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#DirectoryBucketToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.s3#DisplayName": { + "type": "string" + }, + "com.amazonaws.s3#ETag": { + "type": "string" + }, + "com.amazonaws.s3#EmailAddress": { + "type": "string" + }, + "com.amazonaws.s3#EnableRequestProgress": { + "type": "boolean" + }, + "com.amazonaws.s3#EncodingType": { + "type": "enum", + "members": { + "url": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "url" + } + } + }, + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response. Responses are\n encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser\n can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that\n aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the\n response. For more information about characters to avoid in object key names, see Object key\n naming guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's key name will\n be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as test_file%283%29.png.

\n
" + } + }, + "com.amazonaws.s3#Encryption": { + "type": "structure", + "members": { + "EncryptionType": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when storing job results in Amazon S3 (for example, AES256,\n aws:kms).

", + "smithy.api#required": {} + } + }, + "KMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If the encryption type is aws:kms, this optional value specifies the ID of the\n symmetric encryption customer managed key to use for encryption of job results. Amazon S3 only supports symmetric\n encryption KMS keys. For more information, see Asymmetric keys in KMS in the\n Amazon Web Services Key Management Service Developer Guide.

" + } + }, + "KMSContext": { + "target": "com.amazonaws.s3#KMSContext", + "traits": { + "smithy.api#documentation": "

If the encryption type is aws:kms, this optional value can be used to specify the\n encryption context for the restore results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the type of server-side encryption used.

" + } + }, + "com.amazonaws.s3#EncryptionConfiguration": { + "type": "structure", + "members": { + "ReplicaKmsKeyID": { + "target": "com.amazonaws.s3#ReplicaKmsKeyID", + "traits": { + "smithy.api#documentation": "

Specifies the ID (Key ARN or Alias ARN) of the customer managed Amazon Web Services KMS key stored in Amazon Web Services Key\n Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3\n only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the\n Amazon Web Services Key Management Service Developer Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated\n objects.

\n \n

If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key\n ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester’s account.\n This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and\n not the bucket owner.

\n
" + } + }, + "com.amazonaws.s3#EncryptionType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "SSE_C": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSE-C" + } + } + } + }, + "com.amazonaws.s3#EncryptionTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#EncryptionType", + "traits": { + "smithy.api#xmlName": "EncryptionType" + } + } + }, + "com.amazonaws.s3#EncryptionTypeMismatch": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The existing object was created with a different encryption type. Subsequent write requests must\n include the appropriate encryption parameters in the request or while creating the session.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#End": { + "type": "long" + }, + "com.amazonaws.s3#EndEvent": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

A message that indicates the request is complete and no more messages will be sent. You should not\n assume that the request is complete until the client receives an EndEvent.

" + } + }, + "com.amazonaws.s3#Error": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The error key.

" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the error.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "Code": { + "target": "com.amazonaws.s3#Code", + "traits": { + "smithy.api#documentation": "

The error code is a string that uniquely identifies an error condition. It is meant to be read and\n understood by programs that detect and handle errors by type. The following is a list of Amazon S3 error\n codes. For more information, see Error responses.

\n
    \n
  • \n
      \n
    • \n

      \n Code: AccessDenied

      \n
    • \n
    • \n

      \n Description: Access Denied

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: AccountProblem

      \n
    • \n
    • \n

      \n Description: There is a problem with your Amazon Web Services account that prevents\n the action from completing successfully. Contact Amazon Web Services Support for further assistance.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: AllAccessDisabled

      \n
    • \n
    • \n

      \n Description: All access to this Amazon S3 resource has been disabled.\n Contact Amazon Web Services Support for further assistance.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: AmbiguousGrantByEmailAddress

      \n
    • \n
    • \n

      \n Description: The email address you provided is associated with more\n than one account.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: AuthorizationHeaderMalformed

      \n
    • \n
    • \n

      \n Description: The authorization header you provided is invalid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n HTTP Status Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: BadDigest

      \n
    • \n
    • \n

      \n Description: The Content-MD5 you specified did not match what we\n received.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: BucketAlreadyExists

      \n
    • \n
    • \n

      \n Description: The requested bucket name is not available. The bucket\n namespace is shared by all users of the system. Please select a different name and try\n again.

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: BucketAlreadyOwnedByYou

      \n
    • \n
    • \n

      \n Description: The bucket you tried to create already exists, and you own\n it. Amazon S3 returns this error in all Amazon Web Services Regions except in the North Virginia Region. For legacy\n compatibility, if you re-create an existing bucket that you already own in the North Virginia\n Region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

      \n
    • \n
    • \n

      \n Code: 409 Conflict (in all Regions except the North Virginia Region)\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: BucketNotEmpty

      \n
    • \n
    • \n

      \n Description: The bucket you tried to delete is not empty.

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: CredentialsNotSupported

      \n
    • \n
    • \n

      \n Description: This request does not support credentials.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: CrossLocationLoggingProhibited

      \n
    • \n
    • \n

      \n Description: Cross-location logging not allowed. Buckets in one\n geographic location cannot log information to a bucket in another location.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: EntityTooSmall

      \n
    • \n
    • \n

      \n Description: Your proposed upload is smaller than the minimum allowed\n object size.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: EntityTooLarge

      \n
    • \n
    • \n

      \n Description: Your proposed upload exceeds the maximum allowed object\n size.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: ExpiredToken

      \n
    • \n
    • \n

      \n Description: The provided token has expired.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: IllegalVersioningConfigurationException

      \n
    • \n
    • \n

      \n Description: Indicates that the versioning configuration specified in\n the request is invalid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: IncompleteBody

      \n
    • \n
    • \n

      \n Description: You did not provide the number of bytes specified by the\n Content-Length HTTP header

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: IncorrectNumberOfFilesInPostRequest

      \n
    • \n
    • \n

      \n Description: POST requires exactly one file upload per request.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InlineDataTooLarge

      \n
    • \n
    • \n

      \n Description: Inline data exceeds the maximum allowed size.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InternalError

      \n
    • \n
    • \n

      \n Description: We encountered an internal error. Please try again.

      \n
    • \n
    • \n

      \n HTTP Status Code: 500 Internal Server Error

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Server

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidAccessKeyId

      \n
    • \n
    • \n

      \n Description: The Amazon Web Services access key ID you provided does not exist in our\n records.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidAddressingHeader

      \n
    • \n
    • \n

      \n Description: You must specify the Anonymous role.

      \n
    • \n
    • \n

      \n HTTP Status Code: N/A

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidArgument

      \n
    • \n
    • \n

      \n Description: Invalid Argument

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidBucketName

      \n
    • \n
    • \n

      \n Description: The specified bucket is not valid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidBucketState

      \n
    • \n
    • \n

      \n Description: The request is not valid with the current state of the\n bucket.

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidDigest

      \n
    • \n
    • \n

      \n Description: The Content-MD5 you specified is not valid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidEncryptionAlgorithmError

      \n
    • \n
    • \n

      \n Description: The encryption request you specified is not valid. The\n valid value is AES256.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidLocationConstraint

      \n
    • \n
    • \n

      \n Description: The specified location constraint is not valid. For more\n information about Regions, see How to Select a Region for Your\n Buckets.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidObjectState

      \n
    • \n
    • \n

      \n Description: The action is not valid for the current state of the\n object.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidPart

      \n
    • \n
    • \n

      \n Description: One or more of the specified parts could not be found. The\n part might not have been uploaded, or the specified entity tag might not have matched the part's\n entity tag.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidPartOrder

      \n
    • \n
    • \n

      \n Description: The list of parts was not in ascending order. Parts list\n must be specified in order by part number.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidPayer

      \n
    • \n
    • \n

      \n Description: All access to this object has been disabled. Please\n contact Amazon Web Services Support for further assistance.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidPolicyDocument

      \n
    • \n
    • \n

      \n Description: The content of the form does not meet the conditions\n specified in the policy document.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRange

      \n
    • \n
    • \n

      \n Description: The requested range cannot be satisfied.

      \n
    • \n
    • \n

      \n HTTP Status Code: 416 Requested Range Not Satisfiable

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Please use AWS4-HMAC-SHA256.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: SOAP requests must be made over an HTTPS\n connection.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Acceleration is not supported for buckets\n with non-DNS compliant names.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Acceleration is not supported for buckets\n with periods (.) in their names.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Accelerate endpoint only supports virtual\n style requests.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Accelerate is not configured on this\n bucket.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Accelerate is disabled on this\n bucket.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Acceleration is not supported on this\n bucket. Contact Amazon Web Services Support for more information.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidRequest

      \n
    • \n
    • \n

      \n Description: Amazon S3 Transfer Acceleration cannot be enabled on this\n bucket. Contact Amazon Web Services Support for more information.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n Code: N/A

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidSecurity

      \n
    • \n
    • \n

      \n Description: The provided security credentials are not valid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidSOAPRequest

      \n
    • \n
    • \n

      \n Description: The SOAP request body is invalid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidStorageClass

      \n
    • \n
    • \n

      \n Description: The storage class you specified is not valid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidTargetBucketForLogging

      \n
    • \n
    • \n

      \n Description: The target bucket for logging does not exist, is not owned\n by you, or does not have the appropriate grants for the log-delivery group.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidToken

      \n
    • \n
    • \n

      \n Description: The provided token is malformed or otherwise\n invalid.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: InvalidURI

      \n
    • \n
    • \n

      \n Description: Couldn't parse the specified URI.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: KeyTooLongError

      \n
    • \n
    • \n

      \n Description: Your key is too long.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MalformedACLError

      \n
    • \n
    • \n

      \n Description: The XML you provided was not well-formed or did not\n validate against our published schema.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MalformedPOSTRequest

      \n
    • \n
    • \n

      \n Description: The body of your POST request is not well-formed\n multipart/form-data.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MalformedXML

      \n
    • \n
    • \n

      \n Description: This happens when the user sends malformed XML (XML that\n doesn't conform to the published XSD) for the configuration. The error message is, \"The XML you\n provided was not well-formed or did not validate against our published schema.\"

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MaxMessageLengthExceeded

      \n
    • \n
    • \n

      \n Description: Your request was too big.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MaxPostPreDataLengthExceededError

      \n
    • \n
    • \n

      \n Description: Your POST request fields preceding the upload file were\n too large.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MetadataTooLarge

      \n
    • \n
    • \n

      \n Description: Your metadata headers exceed the maximum allowed metadata\n size.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MethodNotAllowed

      \n
    • \n
    • \n

      \n Description: The specified method is not allowed against this\n resource.

      \n
    • \n
    • \n

      \n HTTP Status Code: 405 Method Not Allowed

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MissingAttachment

      \n
    • \n
    • \n

      \n Description: A SOAP attachment was expected, but none were\n found.

      \n
    • \n
    • \n

      \n HTTP Status Code: N/A

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MissingContentLength

      \n
    • \n
    • \n

      \n Description: You must provide the Content-Length HTTP header.

      \n
    • \n
    • \n

      \n HTTP Status Code: 411 Length Required

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MissingRequestBodyError

      \n
    • \n
    • \n

      \n Description: This happens when the user sends an empty XML document as\n a request. The error message is, \"Request body is empty.\"

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MissingSecurityElement

      \n
    • \n
    • \n

      \n Description: The SOAP 1.1 request is missing a security element.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: MissingSecurityHeader

      \n
    • \n
    • \n

      \n Description: Your request is missing a required header.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoLoggingStatusForKey

      \n
    • \n
    • \n

      \n Description: There is no such thing as a logging status subresource for\n a key.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchBucket

      \n
    • \n
    • \n

      \n Description: The specified bucket does not exist.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchBucketPolicy

      \n
    • \n
    • \n

      \n Description: The specified bucket does not have a bucket policy.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchKey

      \n
    • \n
    • \n

      \n Description: The specified key does not exist.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchLifecycleConfiguration

      \n
    • \n
    • \n

      \n Description: The lifecycle configuration does not exist.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchUpload

      \n
    • \n
    • \n

      \n Description: The specified multipart upload does not exist. The upload\n ID might be invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NoSuchVersion

      \n
    • \n
    • \n

      \n Description: Indicates that the version ID specified in the request\n does not match an existing version.

      \n
    • \n
    • \n

      \n HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NotImplemented

      \n
    • \n
    • \n

      \n Description: A header you provided implies functionality that is not\n implemented.

      \n
    • \n
    • \n

      \n HTTP Status Code: 501 Not Implemented

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Server

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: NotSignedUp

      \n
    • \n
    • \n

      \n Description: Your account is not signed up for the Amazon S3 service. You\n must sign up before you can use Amazon S3. You can sign up at the following URL: Amazon S3\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: OperationAborted

      \n
    • \n
    • \n

      \n Description: A conflicting conditional action is currently in progress\n against this resource. Try again.

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: PermanentRedirect

      \n
    • \n
    • \n

      \n Description: The bucket you are attempting to access must be addressed\n using the specified endpoint. Send all future requests to this endpoint.

      \n
    • \n
    • \n

      \n HTTP Status Code: 301 Moved Permanently

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: PreconditionFailed

      \n
    • \n
    • \n

      \n Description: At least one of the preconditions you specified did not\n hold.

      \n
    • \n
    • \n

      \n HTTP Status Code: 412 Precondition Failed

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: Redirect

      \n
    • \n
    • \n

      \n Description: Temporary redirect.

      \n
    • \n
    • \n

      \n HTTP Status Code: 307 Moved Temporarily

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: RestoreAlreadyInProgress

      \n
    • \n
    • \n

      \n Description: Object restore is already in progress.

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: RequestIsNotMultiPartContent

      \n
    • \n
    • \n

      \n Description: Bucket POST must be of the enclosure-type\n multipart/form-data.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: RequestTimeout

      \n
    • \n
    • \n

      \n Description: Your socket connection to the server was not read from or\n written to within the timeout period.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: RequestTimeTooSkewed

      \n
    • \n
    • \n

      \n Description: The difference between the request time and the server's\n time is too large.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: RequestTorrentOfBucketError

      \n
    • \n
    • \n

      \n Description: Requesting the torrent file of a bucket is not\n permitted.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: SignatureDoesNotMatch

      \n
    • \n
    • \n

      \n Description: The request signature we calculated does not match the\n signature you provided. Check your Amazon Web Services secret access key and signing method. For more\n information, see REST Authentication and SOAP Authentication for\n details.

      \n
    • \n
    • \n

      \n HTTP Status Code: 403 Forbidden

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: ServiceUnavailable

      \n
    • \n
    • \n

      \n Description: Service is unable to handle request.

      \n
    • \n
    • \n

      \n HTTP Status Code: 503 Service Unavailable

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Server

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: SlowDown

      \n
    • \n
    • \n

      \n Description: Reduce your request rate.

      \n
    • \n
    • \n

      \n HTTP Status Code: 503 Slow Down

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Server

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: TemporaryRedirect

      \n
    • \n
    • \n

      \n Description: You are being redirected to the bucket while DNS\n updates.

      \n
    • \n
    • \n

      \n HTTP Status Code: 307 Moved Temporarily

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: TokenRefreshRequired

      \n
    • \n
    • \n

      \n Description: The provided token must be refreshed.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: TooManyBuckets

      \n
    • \n
    • \n

      \n Description: You have attempted to create more buckets than\n allowed.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: UnexpectedContent

      \n
    • \n
    • \n

      \n Description: This request does not support content.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: UnresolvableGrantByEmailAddress

      \n
    • \n
    • \n

      \n Description: The email address you provided does not match any account\n on record.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: UserKeyMustBeSpecified

      \n
    • \n
    • \n

      \n Description: The bucket POST must contain the specified field name. If\n it is specified, check the order of the fields.

      \n
    • \n
    • \n

      \n HTTP Status Code: 400 Bad Request

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n

" + } + }, + "Message": { + "target": "com.amazonaws.s3#Message", + "traits": { + "smithy.api#documentation": "

The error message contains a generic description of the error condition in English. It is intended\n for a human audience. Simple programs display the message directly to the end user if they encounter an\n error condition they don't know how or don't care to handle. Sophisticated programs with more exhaustive\n error handling and proper internationalization are more likely to ignore the error message.

" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

For information about using the Amazon S3 API—including error handling—see the Amazon S3 Developer Guide.

\n
\n

Container for all error elements.

" + } + }, + "com.amazonaws.s3#ErrorCode": { + "type": "string" + }, + "com.amazonaws.s3#ErrorDetails": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.s3#ErrorCode", + "traits": { + "smithy.api#documentation": "

If the V1 CreateBucketMetadataTableConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error code. The possible error codes and error\n messages are as follows:

\n
    \n
  • \n

    \n AccessDeniedCreatingResources - You don't have sufficient permissions to create the\n required resources. Make sure that you have s3tables:CreateNamespace,\n s3tables:CreateTable, s3tables:GetTable and\n s3tables:PutTablePolicy permissions, and then try again. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n AccessDeniedWritingToTable - Unable to write to the metadata table because of\n missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata\n table. To create a new metadata table, you must delete the metadata configuration for this bucket,\n and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n DestinationTableNotFound - The destination table doesn't exist. To create a new\n metadata table, you must delete the metadata configuration for this bucket, and then create a new\n metadata configuration.

    \n
  • \n
  • \n

    \n ServerInternalError - An internal error has occurred. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n TableAlreadyExists - The table that you specified already exists in the table\n bucket's namespace. Specify a different table name. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n TableBucketNotFound - The table bucket that you specified doesn't exist in this\n Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table,\n you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
\n

If the V2 CreateBucketMetadataConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error code. The possible error codes and error\n messages are as follows:

\n
    \n
  • \n

    \n AccessDeniedCreatingResources - You don't have sufficient permissions to create \n the required resources. Make sure that you have s3tables:CreateTableBucket, \n s3tables:CreateNamespace, s3tables:CreateTable, \n s3tables:GetTable, s3tables:PutTablePolicy, \n kms:DescribeKey, and s3tables:PutTableEncryption permissions. \n Additionally, ensure that the KMS key used to encrypt the table still exists, is active and \n has a resource policy granting access to the S3 service principals \n 'maintenance.s3tables.amazonaws.com' and 'metadata.s3.amazonaws.com'. \n To create a new metadata table, you must delete the metadata configuration for this bucket, and \n then create a new metadata configuration.

    \n
  • \n
  • \n

    \n AccessDeniedWritingToTable - Unable to write to the metadata table because of\n missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata\n table. To create a new metadata table, you must delete the metadata configuration for this bucket,\n and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n DestinationTableNotFound - The destination table doesn't exist. To create a new\n metadata table, you must delete the metadata configuration for this bucket, and then create a new\n metadata configuration.

    \n
  • \n
  • \n

    \n ServerInternalError - An internal error has occurred. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n JournalTableAlreadyExists - A journal table already exists in the Amazon Web Services managed table bucket's \n namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n InventoryTableAlreadyExists - An inventory table already exists in the Amazon Web Services managed table \n bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n JournalTableNotAvailable - The journal table that the inventory table relies on \n has a FAILED status. An inventory table requires a journal table with an \n ACTIVE status. To create a new journal or inventory table, you must delete the metadata \n configuration for this bucket, along with any journal or inventory tables, and then create a new \n metadata configuration.

    \n
  • \n
  • \n

    \n NoSuchBucket - The specified general purpose bucket does not exist.

    \n
  • \n
" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.s3#ErrorMessage", + "traits": { + "smithy.api#documentation": "

If the V1 CreateBucketMetadataTableConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error message. The possible error codes and\n error messages are as follows:

\n
    \n
  • \n

    \n AccessDeniedCreatingResources - You don't have sufficient permissions to create the\n required resources. Make sure that you have s3tables:CreateNamespace,\n s3tables:CreateTable, s3tables:GetTable and\n s3tables:PutTablePolicy permissions, and then try again. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n AccessDeniedWritingToTable - Unable to write to the metadata table because of\n missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata\n table. To create a new metadata table, you must delete the metadata configuration for this bucket,\n and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n DestinationTableNotFound - The destination table doesn't exist. To create a new\n metadata table, you must delete the metadata configuration for this bucket, and then create a new\n metadata configuration.

    \n
  • \n
  • \n

    \n ServerInternalError - An internal error has occurred. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n TableAlreadyExists - The table that you specified already exists in the table\n bucket's namespace. Specify a different table name. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n TableBucketNotFound - The table bucket that you specified doesn't exist in this\n Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table,\n you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
\n

If the V2 CreateBucketMetadataConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error code. The possible error codes and error\n messages are as follows:

\n
    \n
  • \n

    \n AccessDeniedCreatingResources - You don't have sufficient permissions to create \n the required resources. Make sure that you have s3tables:CreateTableBucket, \n s3tables:CreateNamespace, s3tables:CreateTable, \n s3tables:GetTable, s3tables:PutTablePolicy, \n kms:DescribeKey, and s3tables:PutTableEncryption permissions. \n Additionally, ensure that the KMS key used to encrypt the table still exists, is active and \n has a resource policy granting access to the S3 service principals \n 'maintenance.s3tables.amazonaws.com' and 'metadata.s3.amazonaws.com'. \n To create a new metadata table, you must delete the metadata configuration for this bucket, and \n then create a new metadata configuration.

    \n
  • \n
  • \n

    \n AccessDeniedWritingToTable - Unable to write to the metadata table because of\n missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata\n table. To create a new metadata table, you must delete the metadata configuration for this bucket,\n and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n DestinationTableNotFound - The destination table doesn't exist. To create a new\n metadata table, you must delete the metadata configuration for this bucket, and then create a new\n metadata configuration.

    \n
  • \n
  • \n

    \n ServerInternalError - An internal error has occurred. To create a new metadata\n table, you must delete the metadata configuration for this bucket, and then create a new metadata\n configuration.

    \n
  • \n
  • \n

    \n JournalTableAlreadyExists - A journal table already exists in the Amazon Web Services managed table bucket's \n namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n InventoryTableAlreadyExists - An inventory table already exists in the Amazon Web Services managed table \n bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete\n the metadata configuration for this bucket, and then create a new metadata configuration.

    \n
  • \n
  • \n

    \n JournalTableNotAvailable - The journal table that the inventory table relies on \n has a FAILED status. An inventory table requires a journal table with an \n ACTIVE status. To create a new journal or inventory table, you must delete the metadata \n configuration for this bucket, along with any journal or inventory tables, and then create a new \n metadata configuration.

    \n
  • \n
  • \n

    \n NoSuchBucket - The specified general purpose bucket does not exist.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

If an S3 Metadata V1 CreateBucketMetadataTableConfiguration or V2 \n CreateBucketMetadataConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error code and error message.

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#ErrorDocument": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key name to use when a 4XX class error occurs.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The error information.

" + } + }, + "com.amazonaws.s3#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.s3#Errors": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Error" + } + }, + "com.amazonaws.s3#Event": { + "type": "enum", + "members": { + "s3_ReducedRedundancyLostObject": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ReducedRedundancyLostObject" + } + }, + "s3_ObjectCreated_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectCreated:*" + } + }, + "s3_ObjectCreated_Put": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectCreated:Put" + } + }, + "s3_ObjectCreated_Post": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectCreated:Post" + } + }, + "s3_ObjectCreated_Copy": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectCreated:Copy" + } + }, + "s3_ObjectCreated_CompleteMultipartUpload": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectCreated:CompleteMultipartUpload" + } + }, + "s3_ObjectRemoved_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRemoved:*" + } + }, + "s3_ObjectRemoved_Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRemoved:Delete" + } + }, + "s3_ObjectRemoved_DeleteMarkerCreated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRemoved:DeleteMarkerCreated" + } + }, + "s3_ObjectRestore_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRestore:*" + } + }, + "s3_ObjectRestore_Post": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRestore:Post" + } + }, + "s3_ObjectRestore_Completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRestore:Completed" + } + }, + "s3_Replication_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:Replication:*" + } + }, + "s3_Replication_OperationFailedReplication": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:Replication:OperationFailedReplication" + } + }, + "s3_Replication_OperationNotTracked": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:Replication:OperationNotTracked" + } + }, + "s3_Replication_OperationMissedThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:Replication:OperationMissedThreshold" + } + }, + "s3_Replication_OperationReplicatedAfterThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:Replication:OperationReplicatedAfterThreshold" + } + }, + "s3_ObjectRestore_Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRestore:Delete" + } + }, + "s3_LifecycleTransition": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:LifecycleTransition" + } + }, + "s3_IntelligentTiering": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:IntelligentTiering" + } + }, + "s3_ObjectAcl_Put": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectAcl:Put" + } + }, + "s3_LifecycleExpiration_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:LifecycleExpiration:*" + } + }, + "s3_LifecycleExpiration_Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:LifecycleExpiration:Delete" + } + }, + "s3_LifecycleExpiration_DeleteMarkerCreated": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:LifecycleExpiration:DeleteMarkerCreated" + } + }, + "s3_ObjectTagging_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectTagging:*" + } + }, + "s3_ObjectTagging_Put": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectTagging:Put" + } + }, + "s3_ObjectTagging_Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectTagging:Delete" + } + }, + "s3_ObjectAnnotation_": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectAnnotation:*" + } + }, + "s3_ObjectAnnotation_Put": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectAnnotation:Put" + } + }, + "s3_ObjectAnnotation_Delete": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectAnnotation:Delete" + } + }, + "s3_ObjectRetention_Put": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "s3:ObjectRetention:Put" + } + } + }, + "traits": { + "smithy.api#documentation": "

The bucket event for which to send notifications.

" + } + }, + "com.amazonaws.s3#EventBridgeConfiguration": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

A container for specifying the configuration for Amazon EventBridge.

" + } + }, + "com.amazonaws.s3#EventHoldDuration": { + "type": "structure", + "members": { + "Days": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

The number of days for the event hold duration. The minimum value is 1 and the maximum value is\n 36,500.

" + } + }, + "Years": { + "target": "com.amazonaws.s3#Years", + "traits": { + "smithy.api#documentation": "

The number of years for the event hold duration. The minimum value is 1 and the maximum value is\n 100.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the event hold duration configuration, specified in either days or years.

" + } + }, + "com.amazonaws.s3#EventList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Event" + } + }, + "com.amazonaws.s3#ExistingObjectReplication": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#ExistingObjectReplicationStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 replicates existing source bucket objects.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects.

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating\n existing objects with S3 Batch Replication in the\n Amazon S3 User Guide.

\n
" + } + }, + "com.amazonaws.s3#ExistingObjectReplicationStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#Expiration": { + "type": "string" + }, + "com.amazonaws.s3#ExpirationState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.s3#ExpirationStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#ExpiredObjectDeleteMarker": { + "type": "boolean" + }, + "com.amazonaws.s3#Expires": { + "type": "string" + }, + "com.amazonaws.s3#ExposeHeader": { + "type": "string" + }, + "com.amazonaws.s3#ExposeHeaders": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ExposeHeader" + } + }, + "com.amazonaws.s3#Expression": { + "type": "string" + }, + "com.amazonaws.s3#ExpressionType": { + "type": "enum", + "members": { + "SQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SQL" + } + } + } + }, + "com.amazonaws.s3#FetchOwner": { + "type": "boolean" + }, + "com.amazonaws.s3#FieldDelimiter": { + "type": "string" + }, + "com.amazonaws.s3#FileHeaderInfo": { + "type": "enum", + "members": { + "USE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USE" + } + }, + "IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.s3#FilterRule": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3#FilterRuleName", + "traits": { + "smithy.api#documentation": "

The object key name prefix or suffix identifying one or more objects to which the filtering rule\n applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported.\n For more information, see Configuring Event Notifications in the Amazon S3 User Guide.

" + } + }, + "Value": { + "target": "com.amazonaws.s3#FilterRuleValue", + "traits": { + "smithy.api#documentation": "

The value that the filter searches for in object key names.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an\n object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key\n name. A prefix is a specific string of characters at the beginning of an object key name, which you can\n use to organize objects. For example, you can start the key names of related objects with a prefix, such\n as 2023- or engineering/. Then, you can use FilterRule to find\n objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is\n at the end of the object key name instead of at the beginning.

" + } + }, + "com.amazonaws.s3#FilterRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#FilterRule" + }, + "traits": { + "smithy.api#documentation": "

A list of containers for the key-value pair that defines the criteria for the filter rule.

" + } + }, + "com.amazonaws.s3#FilterRuleName": { + "type": "enum", + "members": { + "prefix": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "prefix" + } + }, + "suffix": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suffix" + } + } + } + }, + "com.amazonaws.s3#FilterRuleValue": { + "type": "string" + }, + "com.amazonaws.s3#GetBucketAbac": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketAbacRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketAbacOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the attribute-based access control (ABAC) property of the general purpose bucket. If ABAC is enabled on your bucket, you can use tags on the bucket for access control. For more information, see Enabling ABAC in general purpose buckets.

", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?abac", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetBucketAbacOutput": { + "type": "structure", + "members": { + "AbacStatus": { + "target": "com.amazonaws.s3#AbacStatus", + "traits": { + "smithy.api#documentation": "

The ABAC status of the general purpose bucket.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketAbacRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the general purpose bucket.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the general purpose bucket's owner.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketAccelerateConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketAccelerateConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketAccelerateConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action uses the accelerate subresource to return the\n Transfer Acceleration state of a bucket, which is either Enabled or Suspended.\n Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers\n to and from Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:GetAccelerateConfiguration action. The bucket owner has this permission by default.\n The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3\n Resources in the Amazon S3 User Guide.

\n

You set the Transfer Acceleration state of an existing bucket to Enabled or\n Suspended by using the PutBucketAccelerateConfiguration operation.

\n

A GET accelerate request does not return a state value for a bucket that has no\n transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set\n on the bucket.

\n

For more information about transfer acceleration, see Transfer Acceleration in the\n Amazon S3 User Guide.

\n

The following operations are related to GetBucketAccelerateConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?accelerate", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketAccelerateConfigurationOutput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#BucketAccelerateStatus", + "traits": { + "smithy.api#documentation": "

The accelerate configuration of the bucket.

" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "AccelerateConfiguration" + } + }, + "com.amazonaws.s3#GetBucketAccelerateConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which the accelerate configuration is retrieved.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketAclRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketAclOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action uses the acl subresource to return\n the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you\n must have the READ_ACP access to the bucket. If READ_ACP permission is granted\n to the anonymous user, you can return the ACL of the bucket without using an authorization\n header.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read\n ACLs are still supported and return the bucket-owner-full-control ACL with the owner\n being the account that created the bucket. For more information, see Controlling object ownership and\n disabling ACLs in the Amazon S3 User Guide.

\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
\n

The following operations are related to GetBucketAcl:

\n ", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?acl", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketAclOutput": { + "type": "structure", + "members": { + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Container for the bucket owner's ID.

" + } + }, + "Grants": { + "target": "com.amazonaws.s3#Grants", + "traits": { + "smithy.api#documentation": "

A list of grants.

", + "smithy.api#xmlName": "AccessControlList" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "AccessControlPolicy" + } + }, + "com.amazonaws.s3#GetBucketAclRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Specifies the S3 bucket whose ACL is being requested.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketAnalyticsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketAnalyticsConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketAnalyticsConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This implementation of the GET action returns an analytics configuration (identified by the\n analytics configuration ID) from the bucket.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis\n in the Amazon S3 User Guide.

\n

The following operations are related to GetBucketAnalyticsConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?analytics&x-id=GetBucketAnalyticsConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketAnalyticsConfigurationOutput": { + "type": "structure", + "members": { + "AnalyticsConfiguration": { + "target": "com.amazonaws.s3#AnalyticsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration and any analyses for the analytics filter.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketAnalyticsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket from which an analytics configuration is retrieved.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#AnalyticsId", + "traits": { + "smithy.api#documentation": "

The ID that identifies the analytics configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketCors": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketCorsRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketCorsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the\n bucket.

\n

To use this operation, you must have permission to perform the s3:GetBucketCORS\n action. By default, the bucket owner has this permission and can grant it to others.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about CORS, see Enabling Cross-Origin Resource Sharing.

\n

The following operations are related to GetBucketCors:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get cors configuration set on a bucket", + "documentation": "The following example returns cross-origin resource sharing (CORS) configuration set on a bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "CORSRules": [ + { + "AllowedHeaders": [ + "Authorization" + ], + "MaxAgeSeconds": 3000, + "AllowedMethods": [ + "GET" + ], + "AllowedOrigins": [ + "*" + ] + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?cors", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketCorsOutput": { + "type": "structure", + "members": { + "CORSRules": { + "target": "com.amazonaws.s3#CORSRules", + "traits": { + "smithy.api#documentation": "

A set of origins and methods (cross-origin access that you want to allow). You can add up to 100\n rules to the configuration.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "CORSRule" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "CORSConfiguration" + } + }, + "com.amazonaws.s3#GetBucketCorsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name for which to get the cors configuration.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketEncryptionRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketEncryptionOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets have a\n default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). This operation also returns the BucketKeyEnabled and BlockedEncryptionTypes statuses.

\n \n \n \n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetEncryptionConfiguration permission is required in a policy. The bucket\n owner has this permission by default. The bucket owner can grant this permission to others.\n For more information about permissions, see Permissions Related to Bucket Operations and Managing Access Permissions to Your\n Amazon S3 Resources.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:GetEncryptionConfiguration\n permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to GetBucketEncryption:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?encryption", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketEncryptionOutput": { + "type": "structure", + "members": { + "ServerSideEncryptionConfiguration": { + "target": "com.amazonaws.s3#ServerSideEncryptionConfiguration", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketEncryptionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket from which the server-side encryption configuration is retrieved.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketIntelligentTieringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to GetBucketIntelligentTieringConfiguration include:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationOutput": { + "type": "structure", + "members": { + "IntelligentTieringConfiguration": { + "target": "com.amazonaws.s3#IntelligentTieringConfiguration", + "traits": { + "smithy.api#documentation": "

Container for S3 Intelligent-Tiering configuration.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketIntelligentTieringConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#IntelligentTieringId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the S3 Intelligent-Tiering configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketInventoryConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketInventoryConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketInventoryConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns an S3 Inventory configuration (identified by the inventory configuration ID) from the\n bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n\t s3:GetInventoryConfiguration permission is required in a policy. For more information\n\t about general purpose buckets permissions, see Using Bucket Policies and User\n\t Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n\t this API operation, you must have the s3express:GetInventoryConfiguration permission in\n\t an IAM identity-based policy instead of a bucket policy.\n\t For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

\n

The following operations are related to GetBucketInventoryConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?inventory&x-id=GetBucketInventoryConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketInventoryConfigurationOutput": { + "type": "structure", + "members": { + "InventoryConfiguration": { + "target": "com.amazonaws.s3#InventoryConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the inventory configuration.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketInventoryConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the inventory configuration to retrieve.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#InventoryId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the inventory configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketLifecycleConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketLifecycleConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketLifecycleConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the lifecycle configuration information set on the bucket. For information about lifecycle\n configuration, see Object Lifecycle Management.

\n

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name\n prefix, one or more object tags, object size, or any combination of these. Accordingly, this section\n describes the latest API, which is compatible with the new functionality. The previous version of the\n API supported filtering based only on an object key name prefix, which is supported for general purpose\n buckets for backward compatibility. For the related API description, see GetBucketLifecycle.

\n \n

Lifecyle configurations for directory buckets only support expiring objects and cancelling\n multipart uploads. Expiring of versioned objects, transitions and tag filters are not\n supported.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By default, all Amazon S3\n resources are private, including buckets, objects, and related subresources (for example,\n lifecycle configuration and website configuration). Only the resource owner (that is, the\n Amazon Web Services account that created it) can access the resource. The resource owner can optionally\n grant access permissions to others by writing an access policy. For this operation, a user\n must have the s3:GetLifecycleConfiguration permission.

    \n

    For more information about permissions, see Managing Access Permissions to Your\n Amazon S3 Resources.

    \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions - You must have the\n s3express:GetLifecycleConfiguration permission in an IAM identity-based policy\n to use this operation. Cross-account access to this API operation isn't supported. The\n resource owner can optionally grant access permissions to others by creating a role or user\n for them as long as they are within the same account as the owner and resource.

    \n

    For more information about directory bucket policies and permissions, see Authorizing Regional endpoint APIs with IAM in the Amazon S3 User\n Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n

\n GetBucketLifecycleConfiguration has the following special error:

\n
    \n
  • \n

    Error code: NoSuchLifecycleConfiguration\n

    \n
      \n
    • \n

      Description: The lifecycle configuration does not exist.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n

The following operations are related to GetBucketLifecycleConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get lifecycle configuration on a bucket", + "documentation": "The following example retrieves lifecycle configuration on set on a bucket. ", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Rules": [ + { + "Prefix": "TaxDocs", + "Status": "Enabled", + "Transitions": [ + { + "Days": 365, + "StorageClass": "STANDARD_IA" + } + ], + "ID": "Rule for TaxDocs/" + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?lifecycle", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketLifecycleConfigurationOutput": { + "type": "structure", + "members": { + "Rules": { + "target": "com.amazonaws.s3#LifecycleRules", + "traits": { + "smithy.api#documentation": "

Container for a lifecycle rule.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Rule" + } + }, + "TransitionDefaultMinimumObjectSize": { + "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", + "traits": { + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It isn't supported for directory bucket\n lifecycle configurations.

\n
\n
    \n
  • \n

    \n all_storage_classes_128K - Objects smaller than 128 KB will not transition to\n any storage class by default.

    \n
  • \n
  • \n

    \n varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier\n Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes\n will prevent transitions smaller than 128 KB.

    \n
  • \n
\n

To customize the minimum object size for any transition you can add a filter that specifies a custom\n ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition\n rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "LifecycleConfiguration" + } + }, + "com.amazonaws.s3#GetBucketLifecycleConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the lifecycle information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketLocation": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketLocationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketLocationOutput" + }, + "traits": { + "aws.customizations#s3UnwrappedXmlOutput": {}, + "smithy.api#documentation": "\n

Using the GetBucketLocation operation is no longer a best practice. To return the \n Region that a bucket resides in, we recommend that you use the \n HeadBucket \n operation instead. For backward compatibility, Amazon S3 continues to support the \n GetBucketLocation operation.

\n
\n

Returns the Region the bucket resides in. You set the bucket's Region using the\n LocationConstraint request parameter in a CreateBucket request. For more\n information, see CreateBucket.

\n \n

In a bucket's home Region, calls to the GetBucketLocation operation are governed \n by the bucket's policy. In other Regions, the bucket policy doesn't apply, which means that \n cross-account access won't be authorized. However, calls to the HeadBucket operation \n always return the bucket’s location through an HTTP response header, whether access to the bucket \n is authorized or not. Therefore, we recommend using the HeadBucket operation for \n bucket Region discovery and to avoid using the GetBucketLocation operation.

\n
\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

This operation is not supported for directory buckets.

\n
\n

The following operations are related to GetBucketLocation:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get bucket location", + "documentation": "The following example returns bucket location.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "LocationConstraint": "us-west-2" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?location", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketLocationOutput": { + "type": "structure", + "members": { + "LocationConstraint": { + "target": "com.amazonaws.s3#BucketLocationConstraint", + "traits": { + "smithy.api#documentation": "

Specifies the Region where the bucket resides. For a list of all the Amazon S3 supported location\n constraints by Region, see Regions and Endpoints.

\n

Buckets in Region us-east-1 have a LocationConstraint of null. Buckets\n with a LocationConstraint of EU reside in eu-west-1.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "LocationConstraint" + } + }, + "com.amazonaws.s3#GetBucketLocationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the location.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketLogging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketLoggingRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketLoggingOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the logging status of a bucket and the permissions users have to view and modify that\n status.

\n

The following operations are related to GetBucketLogging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?logging", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketLoggingOutput": { + "type": "structure", + "members": { + "LoggingEnabled": { + "target": "com.amazonaws.s3#LoggingEnabled" + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "BucketLoggingStatus" + } + }, + "com.amazonaws.s3#GetBucketLoggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name for which to get the logging information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketMetadataConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketMetadataConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketMetadataConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the S3 Metadata configuration for a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n \n

You can use the V2 GetBucketMetadataConfiguration API operation with V1 or V2 \n metadata configurations. However, if you try to use the V1 \n GetBucketMetadataTableConfiguration API operation with V2 configurations, you\n will receive an HTTP 405 Method Not Allowed error.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have the s3:GetBucketMetadataTableConfiguration\n permission. For more information, see Setting up permissions for\n configuring metadata tables in the Amazon S3 User Guide.

\n \n

The IAM policy action name is the same for the V1 and V2 API operations.

\n
\n
\n
\n

The following operations are related to GetBucketMetadataConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?metadataConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketMetadataConfigurationOutput": { + "type": "structure", + "members": { + "GetBucketMetadataConfigurationResult": { + "target": "com.amazonaws.s3#GetBucketMetadataConfigurationResult", + "traits": { + "smithy.api#documentation": "

\n The metadata configuration for the general purpose bucket.\n

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketMetadataConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The general purpose bucket that corresponds to the metadata configuration that you want to\n retrieve.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The expected owner of the general purpose bucket that you want to retrieve the metadata table\n configuration for.\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketMetadataConfigurationResult": { + "type": "structure", + "members": { + "MetadataConfigurationResult": { + "target": "com.amazonaws.s3#MetadataConfigurationResult", + "traits": { + "smithy.api#documentation": "

\n The metadata configuration for a general purpose bucket.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The S3 Metadata configuration for a general purpose bucket.\n

" + } + }, + "com.amazonaws.s3#GetBucketMetadataTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketMetadataTableConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketMetadataTableConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

\n We recommend that you retrieve your S3 Metadata configurations by using the V2 \n GetBucketMetadataTableConfiguration API operation. We no longer recommend using the V1 \n GetBucketMetadataTableConfiguration API operation.\n

\n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
\n

Retrieves the V1 S3 Metadata configuration for a general purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n \n

You can use the V2 GetBucketMetadataConfiguration API operation with V1 or V2 \n metadata table configurations. However, if you try to use the V1 \n GetBucketMetadataTableConfiguration API operation with V2 configurations, you\n will receive an HTTP 405 Method Not Allowed error.

\n

Make sure that you update your processes to use the new V2 API operations\n (CreateBucketMetadataConfiguration, GetBucketMetadataConfiguration, and\n DeleteBucketMetadataConfiguration) instead of the V1 API operations.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have the s3:GetBucketMetadataTableConfiguration\n permission. For more information, see Setting up permissions for\n configuring metadata tables in the Amazon S3 User Guide.

\n
\n
\n

The following operations are related to GetBucketMetadataTableConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?metadataTable", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketMetadataTableConfigurationOutput": { + "type": "structure", + "members": { + "GetBucketMetadataTableConfigurationResult": { + "target": "com.amazonaws.s3#GetBucketMetadataTableConfigurationResult", + "traits": { + "smithy.api#documentation": "

The metadata table configuration for the general purpose bucket.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketMetadataTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The general purpose bucket that corresponds to the metadata table configuration that you want to\n retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The expected owner of the general purpose bucket that you want to retrieve the metadata table\n configuration for.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketMetadataTableConfigurationResult": { + "type": "structure", + "members": { + "MetadataTableConfigurationResult": { + "target": "com.amazonaws.s3#MetadataTableConfigurationResult", + "traits": { + "smithy.api#documentation": "

The V1 S3 Metadata configuration for a general purpose bucket.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.s3#MetadataTableStatus", + "traits": { + "smithy.api#documentation": "

The status of the metadata table. The status values are:

\n
    \n
  • \n

    \n CREATING - The metadata table is in the process of being created in the specified\n table bucket.

    \n
  • \n
  • \n

    \n ACTIVE - The metadata table has been created successfully, and records are being\n delivered to the table.

    \n
  • \n
  • \n

    \n FAILED - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver\n records. See ErrorDetails for details.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Error": { + "target": "com.amazonaws.s3#ErrorDetails", + "traits": { + "smithy.api#documentation": "

If the CreateBucketMetadataTableConfiguration request succeeds, but S3 Metadata was\n unable to create the table, this structure contains the error code and error message.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The V1 S3 Metadata configuration for a general purpose bucket.

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#GetBucketMetricsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketMetricsConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketMetricsConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that\n this doesn't include the daily storage metrics.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetMetricsConfiguration permission is required in a policy. For more information\n about general purpose buckets permissions, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:GetMetricsConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon\n CloudWatch.

\n

The following operations are related to GetBucketMetricsConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?metrics&x-id=GetBucketMetricsConfiguration", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketMetricsConfigurationOutput": { + "type": "structure", + "members": { + "MetricsConfiguration": { + "target": "com.amazonaws.s3#MetricsConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the metrics configuration.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketMetricsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the metrics configuration to retrieve.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#MetricsId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the metrics configuration. The ID has a 64 character limit and can only\n contain letters, numbers, periods, dashes, and underscores.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketNotificationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#NotificationConfiguration" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the notification configuration of a bucket.

\n

If notifications are not enabled on the bucket, the action returns an empty\n NotificationConfiguration element.

\n

By default, you must be the bucket owner to read the notification configuration of a bucket.\n However, the bucket owner can use a bucket policy to grant permission to other users to read this\n configuration with the s3:GetBucketNotification permission.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n

For more information about setting and reading the notification configuration on a bucket, see\n Setting Up Notification\n of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

\n

The following action is related to GetBucketNotification:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?notification", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketNotificationConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the notification configuration.

\n

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketOwnershipControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketOwnershipControlsRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketOwnershipControlsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have\n the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions,\n see Specifying\n permissions in a policy.

\n \n

A bucket doesn't have OwnershipControls settings in the following cases:

\n
    \n
  • \n

    The bucket was created before the BucketOwnerEnforced ownership setting was\n introduced and you've never explicitly applied this value

    \n
  • \n
  • \n

    You've manually deleted the bucket ownership control value using the\n DeleteBucketOwnershipControls API operation.

    \n
  • \n
\n

By default, Amazon S3 sets OwnershipControls for all newly created buckets.

\n
\n

For information about Amazon S3 Object Ownership, see Using Object Ownership.

\n

The following operations are related to GetBucketOwnershipControls:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?ownershipControls", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketOwnershipControlsOutput": { + "type": "structure", + "members": { + "OwnershipControls": { + "target": "com.amazonaws.s3#OwnershipControls", + "traits": { + "smithy.api#documentation": "

The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter)\n currently in effect for this Amazon S3 bucket.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketOwnershipControlsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketPolicyRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketPolicyOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the policy of a specified bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n bucket, the calling identity must both have the GetBucketPolicy permissions on the\n specified bucket and belong to the bucket owner's account in order to use this operation.

\n

If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access\n Denied error. If you have the correct permissions, but you're not using an identity that\n belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed\n error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets,\n the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the\n root principal's access. Bucket owner root principals can only be blocked from performing these\n API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetBucketPolicy permission is required in a policy. For more information\n about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:GetBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies - See Bucket policy\n examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies - See Example\n bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following action is related to GetBucketPolicy:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get bucket policy", + "documentation": "The following example returns bucket policy associated with a bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Policy": "{\"Version\":\"2008-10-17\",&TCX5-2025-waiver;\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?policy", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketPolicyOutput": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.s3#Policy", + "traits": { + "smithy.api#documentation": "

The bucket policy as a JSON document.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketPolicyRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name to get the bucket policy for.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

\n

\n Access points - When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

\n

\n Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketPolicyStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketPolicyStatusRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketPolicyStatusOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to\n use this operation, you must have the s3:GetBucketPolicyStatus permission. For more\n information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

\n

The following operations are related to GetBucketPolicyStatus:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?policyStatus", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketPolicyStatusOutput": { + "type": "structure", + "members": { + "PolicyStatus": { + "target": "com.amazonaws.s3#PolicyStatus", + "traits": { + "smithy.api#documentation": "

The policy status for the specified bucket.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketPolicyStatusRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose policy status you want to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketReplicationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketReplicationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the replication configuration of a bucket.

\n \n

It can take a while to propagate the put or delete a replication configuration to all Amazon S3\n systems. Therefore, a get request soon after put or delete can return a wrong result.

\n
\n

For information about replication configuration, see Replication in the\n Amazon S3 User Guide.

\n

This action requires permissions for the s3:GetReplicationConfiguration action. For\n more information about permissions, see Using Bucket Policies and User\n Policies.

\n

If you include the Filter element in a replication configuration, you must also include\n the DeleteMarkerReplication and Priority elements. The response also returns\n those elements.

\n

For information about GetBucketReplication errors, see List of replication-related\n error codes\n

\n

The following operations are related to GetBucketReplication:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get replication configuration set on a bucket", + "documentation": "The following example returns replication configuration set on a bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "ReplicationConfiguration": { + "Rules": [ + { + "Status": "Enabled", + "Prefix": "Tax", + "Destination": { + "Bucket": "arn:aws:s3:::destination-bucket" + }, + "ID": "MWIwNTkwZmItMTE3MS00ZTc3LWJkZDEtNzRmODQwYzc1OTQy" + } + ], + "Role": "arn:aws:iam::acct-id:role/example-role" + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?replication", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketReplicationOutput": { + "type": "structure", + "members": { + "ReplicationConfiguration": { + "target": "com.amazonaws.s3#ReplicationConfiguration", + "traits": { + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetBucketReplicationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name for which to get the replication information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketRequestPayment": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketRequestPaymentRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketRequestPaymentOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the request payment configuration of a bucket. To use this version of the operation, you\n must be the bucket owner. For more information, see Requester Pays Buckets.

\n

The following operations are related to GetBucketRequestPayment:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get bucket versioning configuration", + "documentation": "The following example retrieves bucket versioning configuration.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Payer": "BucketOwner" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?requestPayment", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketRequestPaymentOutput": { + "type": "structure", + "members": { + "Payer": { + "target": "com.amazonaws.s3#Payer", + "traits": { + "smithy.api#documentation": "

Specifies who pays for the download and request fees.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "RequestPaymentConfiguration" + } + }, + "com.amazonaws.s3#GetBucketRequestPaymentRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the payment request configuration

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketTaggingRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketTaggingOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the tag set associated with the general purpose bucket.

\n

To use this operation, you must have permission to perform the s3:GetBucketTagging\n action. By default, the bucket owner has this permission and can grant this permission to others.

\n

\n GetBucketTagging has the following special error:

\n
    \n
  • \n

    Error code: NoSuchTagSet\n

    \n
      \n
    • \n

      Description: There is no tag set associated with the bucket.

      \n
    • \n
    \n
  • \n
\n

The following operations are related to GetBucketTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get tag set associated with a bucket", + "documentation": "The following example returns tag set associated with a bucket", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "TagSet": [ + { + "Value": "value1", + "Key": "key1" + }, + { + "Value": "value2", + "Key": "key2" + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?tagging", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketTaggingOutput": { + "type": "structure", + "members": { + "TagSet": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

Contains the tag set.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "Tagging" + } + }, + "com.amazonaws.s3#GetBucketTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the tagging information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketVersioning": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketVersioningRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketVersioningOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the versioning state of a bucket.

\n

To retrieve the versioning state of a bucket, you must be the bucket owner.

\n

This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete\n status is enabled, the bucket owner must use an authentication device to change the\n versioning state of the bucket.

\n

The following operations are related to GetBucketVersioning:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get bucket versioning configuration", + "documentation": "The following example retrieves bucket versioning configuration.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Status": "Enabled", + "MFADelete": "Disabled" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?versioning", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketVersioningOutput": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#BucketVersioningStatus", + "traits": { + "smithy.api#documentation": "

The versioning state of the bucket.

" + } + }, + "MFADelete": { + "target": "com.amazonaws.s3#MFADeleteStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only\n returned if the bucket has been configured with MFA delete. If the bucket has never been so configured,\n this element is not returned.

", + "smithy.api#xmlName": "MfaDelete" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "VersioningConfiguration" + } + }, + "com.amazonaws.s3#GetBucketVersioningRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to get the versioning information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetBucketWebsite": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetBucketWebsiteRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetBucketWebsiteOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket\n as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

\n

This GET action requires the S3:GetBucketWebsite permission. By default, only the\n bucket owner can read the bucket website configuration. However, bucket owners can allow other users to\n read the website configuration by writing a bucket policy granting them the\n S3:GetBucketWebsite permission.

\n

The following operations are related to GetBucketWebsite:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get bucket website configuration", + "documentation": "The following example retrieves website configuration of a bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "IndexDocument": { + "Suffix": "index.html" + }, + "ErrorDocument": { + "Key": "error.html" + } + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?website", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetBucketWebsiteOutput": { + "type": "structure", + "members": { + "RedirectAllRequestsTo": { + "target": "com.amazonaws.s3#RedirectAllRequestsTo", + "traits": { + "smithy.api#documentation": "

Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.

" + } + }, + "IndexDocument": { + "target": "com.amazonaws.s3#IndexDocument", + "traits": { + "smithy.api#documentation": "

The name of the index document for the website (for example index.html).

" + } + }, + "ErrorDocument": { + "target": "com.amazonaws.s3#ErrorDocument", + "traits": { + "smithy.api#documentation": "

The object key name of the website error document to use for 4XX class errors.

" + } + }, + "RoutingRules": { + "target": "com.amazonaws.s3#RoutingRules", + "traits": { + "smithy.api#documentation": "

Rules that define when a redirect is applied and the redirect behavior.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "WebsiteConfiguration" + } + }, + "com.amazonaws.s3#GetBucketWebsiteRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name for which to get the website configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#InvalidObjectState" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestValidationModeMember": "ChecksumMode", + "responseAlgorithms": [ + "CRC64NVME", + "CRC32", + "CRC32C", + "SHA256", + "SHA1", + "SHA512", + "MD5", + "XXHASH64", + "XXHASH3", + "XXHASH128" + ] + }, + "smithy.api#documentation": "

Retrieves an object from Amazon S3.

\n

In the GetObject request, specify the full key name for the object.

\n

\n General purpose buckets - Both the virtual-hosted-style requests\n and the path-style requests are supported. For a virtual hosted-style request example, if you have the\n object photos/2006/February/sample.jpg, specify the object key name as\n /photos/2006/February/sample.jpg. For a path-style request example, if you have the\n object photos/2006/February/sample.jpg in the bucket named examplebucket,\n specify the object key name as /examplebucket/photos/2006/February/sample.jpg. For more\n information about request types, see HTTP Host Header Bucket\n Specification in the Amazon S3 User Guide.

\n

\n Directory buckets -\n Only virtual-hosted-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named amzn-s3-demo-bucket--usw2-az1--x-s3, specify the object key name as /photos/2006/February/sample.jpg. Also, when you make requests to this API operation, your requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the\n required permissions in a policy. To use GetObject, you must have the\n READ access to the object (or version). If you grant READ access\n to the anonymous user, the GetObject operation returns the object without using\n an authorization header. For more information, see Specifying permissions in a\n policy in the Amazon S3 User Guide.

    \n

    If you include a versionId in your request header, you must have the\n s3:GetObjectVersion permission to access a specific version of an object. The\n s3:GetObject permission is not required in this scenario.

    \n

    If you request the current version of an object without a specific versionId\n in the request header, only the s3:GetObject permission is required. The\n s3:GetObjectVersion permission is not required in this scenario.

    \n

    If the object that you request doesn’t exist, the error that Amazon S3 returns depends on\n whether you also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an\n HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP\n status code 403 Access Denied error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is\n encrypted using SSE-KMS, you must also have the kms:GenerateDataKey and\n kms:Decrypt permissions in IAM identity-based policies and KMS key policies\n for the KMS key.

    \n
  • \n
\n
\n
Storage classes
\n
\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class,\n the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the\n S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this operation returns an InvalidObjectState\n error. For information about restoring archived objects, see Restoring Archived Objects in the\n Amazon S3 User Guide.

\n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones. \nUnsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

\n
\n
Encryption
\n
\n

Encryption request headers, like x-amz-server-side-encryption, should not be sent\n for the GetObject requests, if your object uses server-side encryption with Amazon S3\n managed encryption keys (SSE-S3), server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or\n dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in\n your GetObject requests for the object that uses these types of keys, you’ll get an\n HTTP 400 Bad Request error.

\n

\n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
Overriding response header values through the request
\n
\n

There are times when you want to override certain response header values of a\n GetObject response. For example, you might override the\n Content-Disposition response header value through your GetObject\n request.

\n

You can override values for a set of response headers. These modified response header values\n are included only in a successful response, that is, when the HTTP status code 200 OK\n is returned. The headers you can override using the following query parameters in the request are\n a subset of the headers that Amazon S3 accepts when you create an object.

\n

The response headers that you can override for the GetObject response are\n Cache-Control, Content-Disposition, Content-Encoding,\n Content-Language, Content-Type, and Expires.

\n

To override values for a set of response headers in the GetObject response, you\n can use the following query parameters in the request.

\n
    \n
  • \n

    \n response-cache-control\n

    \n
  • \n
  • \n

    \n response-content-disposition\n

    \n
  • \n
  • \n

    \n response-content-encoding\n

    \n
  • \n
  • \n

    \n response-content-language\n

    \n
  • \n
  • \n

    \n response-content-type\n

    \n
  • \n
  • \n

    \n response-expires\n

    \n
  • \n
\n \n

When you use these parameters, you must sign the request by using either an Authorization\n header or a presigned URL. These parameters cannot be used with an unsigned (anonymous)\n request.

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to GetObject:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To retrieve a byte range of an object ", + "documentation": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "input": { + "Bucket": "examplebucket", + "Key": "SampleFile.txt", + "Range": "bytes=0-9" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "text/plain", + "LastModified": "2014-10-09T22:57:28.000Z", + "ContentLength": 10, + "VersionId": "null", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "ContentRange": "bytes 0-9/43", + "Metadata": {} + } + }, + { + "title": "To retrieve an object", + "documentation": "The following example retrieves an object for an S3 bucket.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "image/jpeg", + "LastModified": "2016-12-15T01:19:41.000Z", + "ContentLength": 3191, + "VersionId": "null", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "TagCount": 2, + "Metadata": {} + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?x-id=GetObject", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectAclRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectAclOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the access control list (ACL) of an object. To use this operation, you must have\n s3:GetObjectAcl permissions or READ_ACP access to the object. For more\n information, see Mapping of ACL\n permissions and access policy permissions in the Amazon S3 User Guide\n

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

By default, GET returns ACL information about the current version of an object. To return ACL\n information about a different version, use the versionId subresource.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read\n ACLs are still supported and return the bucket-owner-full-control ACL with the owner\n being the account that created the bucket. For more information, see Controlling object ownership and\n disabling ACLs in the Amazon S3 User Guide.

\n
\n

The following operations are related to GetObjectAcl:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To retrieve object ACL", + "documentation": "The following example retrieves access control list (ACL) of an object.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "Owner": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Grants": [ + { + "Grantee": { + "Type": "CanonicalUser", + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Permission": "WRITE" + }, + { + "Grantee": { + "Type": "CanonicalUser", + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Permission": "WRITE_ACP" + }, + { + "Grantee": { + "Type": "CanonicalUser", + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Permission": "READ" + }, + { + "Grantee": { + "Type": "CanonicalUser", + "DisplayName": "owner-display-name", + "ID": "852b113eexamplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Permission": "READ_ACP" + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?acl", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectAclOutput": { + "type": "structure", + "members": { + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Container for the bucket owner's ID.

" + } + }, + "Grants": { + "target": "com.amazonaws.s3#Grants", + "traits": { + "smithy.api#documentation": "

A list of grants.

", + "smithy.api#xmlName": "AccessControlList" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "AccessControlPolicy" + } + }, + "com.amazonaws.s3#GetObjectAclRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name that contains the object for which to get the ACL information.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key of the object for which to get the ACL information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectAnnotation": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectAnnotationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectAnnotationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchAnnotation" + }, + { + "target": "com.amazonaws.s3#NoSuchBucket" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestValidationModeMember": "ChecksumMode", + "responseAlgorithms": [ + "CRC64NVME", + "CRC32", + "CRC32C", + "SHA256", + "SHA1", + "SHA512", + "MD5", + "XXHASH64", + "XXHASH3", + "XXHASH128" + ] + }, + "smithy.api#documentation": "

Retrieves an annotation from an Amazon S3 object. To use this operation, you must have the\n s3:GetObjectAnnotation permission.

\n

If checksum mode is enabled via the x-amz-checksum-mode header, Amazon S3\n returns the stored checksum in the response headers for client-side validation.

\n \n

Annotations are not supported by the following features: S3 Inventory Reports,\n API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon FSx, S3 on Outposts, and\n S3 Express One Zone (directory buckets).

\n
\n

The following operations are related to GetObjectAnnotation:

\n ", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?annotation&x-id=GetObjectAnnotation", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectAnnotationOutput": { + "type": "structure", + "members": { + "AnnotationPayload": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

The annotation payload.

", + "smithy.api#httpPayload": {} + } + }, + "ObjectVersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object that the annotation is attached to.

", + "smithy.api#httpHeader": "x-amz-object-version-id" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

The date and time the annotation was last modified.

", + "smithy.api#httpHeader": "Last-Modified" + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

The size of the annotation payload, in bytes.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

The entity tag of the annotation.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The CRC32 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The CRC32C checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The CRC64NVME checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The SHA1 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The SHA256 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The SHA512 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The MD5 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The XXHASH64 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The XXHASH3 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The XXHASH128 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The type of checksum used.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ReplicationStatus": { + "target": "com.amazonaws.s3#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

The replication status of the annotation. Possible values include PENDING, COMPLETED, FAILED, and REPLICA.

", + "smithy.api#httpHeader": "x-amz-replication-status" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectAnnotationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "AnnotationName": { + "target": "com.amazonaws.s3#AnnotationName", + "traits": { + "smithy.api#documentation": "

The name of the annotation to retrieve.

\n

Length Constraints: Minimum length of 1. Maximum length of 512 bytes.

", + "smithy.api#httpQuery": "annotationName", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object.

", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with an HTTP 403 (Access Denied) error.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumMode": { + "target": "com.amazonaws.s3#ChecksumMode", + "traits": { + "smithy.api#documentation": "

Set to ENABLED to validate the checksum of the annotation payload on retrieval.

", + "smithy.api#httpHeader": "x-amz-checksum-mode" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectAttributesRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectAttributesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves all of the metadata from an object without returning the object itself. This operation is\n useful if you're interested only in an object's metadata.

\n

\n GetObjectAttributes combines the functionality of HeadObject and\n ListParts. All of the data returned with both of those individual calls can be returned\n with a single call to GetObjectAttributes.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To use\n GetObjectAttributes, you must have READ access to the object.

    \n

    The other permissions that you need to use this operation depend on whether the bucket is\n versioned and if a version ID is passed in the GetObjectAttributes request.

    \n
      \n
    • \n

      If you pass a version ID in your request, you need both the\n s3:GetObjectVersion and s3:GetObjectVersionAttributes\n permissions.

      \n
    • \n
    • \n

      If you do not pass a version ID in your request, you need the\n s3:GetObject and s3:GetObjectAttributes permissions.

      \n
    • \n
    \n

    For more information, see Specifying Permissions in a\n Policy in the Amazon S3 User Guide.

    \n

    If the object that you request does not exist, the error Amazon S3 returns depends on whether\n you also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an\n HTTP status code 404 Not Found (\"no such key\") error.

      \n
    • \n
    • \n

      If you don't have the s3:ListBucket permission, Amazon S3 returns an HTTP\n status code 403 Forbidden (\"access denied\") error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If\n the\n object is encrypted with SSE-KMS, you must also have the kms:GenerateDataKey and\n kms:Decrypt permissions in IAM identity-based policies and KMS key policies\n for the KMS key.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption, should not be\n sent for HEAD requests if your object uses server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or\n server-side encryption with Amazon S3 managed encryption keys (SSE-S3). The\n x-amz-server-side-encryption header is used when you PUT an object\n to S3 and want to specify the encryption method. If you include this header in a\n GET request for an object that uses these types of keys, you’ll get an HTTP\n 400 Bad Request error. It's because the encryption method can't be changed when\n you retrieve the object.

\n
\n

If you encrypted an object when you stored the object in Amazon S3 by using server-side encryption\n with customer-provided encryption keys (SSE-C), then when you retrieve the metadata from the\n object, you must use the following headers. These headers provide the server with the encryption\n key required to retrieve the object's metadata. The headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

\n Directory bucket permissions -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

\n
\n
\n
Versioning
\n
\n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets.\n You can only specify null to the versionId query parameter in the\n request.

\n
\n
Conditional request headers
\n
\n

Consider the following when using request headers:

\n
    \n
  • \n

    If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows, then Amazon S3 returns the HTTP status code 200 OK\n and the data requested:

    \n
      \n
    • \n

      \n If-Match condition evaluates to true.

      \n
    • \n
    • \n

      \n If-Unmodified-Since condition evaluates to false.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
  • \n

    If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows, then Amazon S3 returns the HTTP status code 304 Not\n Modified:

    \n
      \n
    • \n

      \n If-None-Match condition evaluates to false.

      \n
    • \n
    • \n

      \n If-Modified-Since condition evaluates to true.

      \n
    • \n
    \n

    For more information about conditional requests, see RFC 7232.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following actions are related to GetObjectAttributes:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?attributes", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectAttributesOutput": { + "type": "structure", + "members": { + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Specifies whether the object retrieved was (true) or was not (false) a\n delete marker. If false, this response header does not appear in the response. To learn\n more about delete markers, see Working with delete markers.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-delete-marker" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time when the object was last modified.

", + "smithy.api#httpHeader": "Last-Modified" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found\n at a URL.

" + } + }, + "Checksum": { + "target": "com.amazonaws.s3#Checksum", + "traits": { + "smithy.api#documentation": "

The checksum or digest of the object.

" + } + }, + "ObjectParts": { + "target": "com.amazonaws.s3#GetObjectAttributesParts", + "traits": { + "smithy.api#documentation": "

A collection of parts associated with a multipart upload.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

Provides the storage class information of the object. Amazon S3 returns this header for all objects\n except for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + }, + "ObjectSize": { + "target": "com.amazonaws.s3#ObjectSize", + "traits": { + "smithy.api#documentation": "

The size of the object in bytes.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "GetObjectAttributesResponse" + } + }, + "com.amazonaws.s3#GetObjectAttributesParts": { + "type": "structure", + "members": { + "TotalPartsCount": { + "target": "com.amazonaws.s3#PartsCount", + "traits": { + "smithy.api#documentation": "

The total number of parts.

", + "smithy.api#xmlName": "PartsCount" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

The marker for the current part.

" + } + }, + "NextPartNumberMarker": { + "target": "com.amazonaws.s3#NextPartNumberMarker", + "traits": { + "smithy.api#documentation": "

When a list is truncated, this element specifies the last part in the list, as well as the value to\n use for the PartNumberMarker request parameter in a subsequent request.

" + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

The maximum number of parts allowed in the response.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of parts is truncated. A value of true indicates\n that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned\n in the MaxParts element.

" + } + }, + "Parts": { + "target": "com.amazonaws.s3#PartsList", + "traits": { + "smithy.api#documentation": "

A container for elements related to a particular part. A response can contain zero or more\n Parts elements.

\n \n
    \n
  • \n

    \n General purpose buckets - For\n GetObjectAttributes, if an additional checksum (including\n x-amz-checksum-crc32, x-amz-checksum-crc32c,\n x-amz-checksum-sha1, or x-amz-checksum-sha256) isn't applied to the\n object specified in the request, the response doesn't return the Part element.

    \n
  • \n
  • \n

    \n Directory buckets - For\n GetObjectAttributes, regardless of whether an additional checksum is applied to the\n object specified in the request, the response returns the Part element.

    \n
  • \n
\n
", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Part" + } + } + }, + "traits": { + "smithy.api#documentation": "

A collection of parts associated with a multipart upload.

" + } + }, + "com.amazonaws.s3#GetObjectAttributesRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID used to reference a specific version of the object.

\n \n

S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the\n versionId query parameter in the request.

\n
", + "smithy.api#httpQuery": "versionId" + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of parts to return. For more information, see Uploading and copying objects using multipart upload\n in Amazon S3 in the Amazon Simple Storage Service user guide.

", + "smithy.api#httpHeader": "x-amz-max-parts" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

Specifies the part after which listing should begin. Only parts with higher part numbers will be\n listed. For more information, see Uploading and copying objects using multipart upload\n in Amazon S3 in the Amazon Simple Storage Service user guide.

", + "smithy.api#httpHeader": "x-amz-part-number-marker" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ObjectAttributes": { + "target": "com.amazonaws.s3#ObjectAttributesList", + "traits": { + "smithy.api#documentation": "

Specifies the fields at the root level that you want returned in the response. Fields that you do\n not specify are not returned.

", + "smithy.api#httpHeader": "x-amz-object-attributes", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectLegalHold": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectLegalHoldRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectLegalHoldOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets an object's current legal hold status. For more information, see Locking Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectLegalHold:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?legal-hold", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectLegalHoldOutput": { + "type": "structure", + "members": { + "LegalHold": { + "target": "com.amazonaws.s3#ObjectLockLegalHold", + "traits": { + "smithy.api#documentation": "

The current legal hold status for the specified object.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "LegalHold" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectLegalHoldRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object whose legal hold status you want to retrieve.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key name for the object whose legal hold status you want to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object whose legal hold status you want to retrieve.

", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectLockConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectLockConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectLockConfigurationOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration\n will be applied by default to every new object placed in the specified bucket. For more information, see\n Locking Objects.

\n

The following action is related to GetObjectLockConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?object-lock", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectLockConfigurationOutput": { + "type": "structure", + "members": { + "ObjectLockConfiguration": { + "target": "com.amazonaws.s3#ObjectLockConfiguration", + "traits": { + "smithy.api#documentation": "

The specified bucket's Object Lock configuration.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectLockConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket whose Object Lock configuration you want to retrieve.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectOutput": { + "type": "structure", + "members": { + "Body": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

Object data.

", + "smithy.api#httpPayload": {} + } + }, + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this\n response header does not appear in the response.

\n \n
    \n
  • \n

    If the current version of the object is a delete marker, Amazon S3 behaves as if the object was\n deleted and includes x-amz-delete-marker: true in the response.

    \n
  • \n
  • \n

    If the specified version in the request is a delete marker, the response returns a 405\n Method Not Allowed error and the Last-Modified: timestamp response\n header.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-delete-marker" + } + }, + "AcceptRanges": { + "target": "com.amazonaws.s3#AcceptRanges", + "traits": { + "smithy.api#documentation": "

Indicates that a range of bytes was specified in the request.

", + "smithy.api#httpHeader": "accept-ranges" + } + }, + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes this header. It\n includes the expiry-date and rule-id key-value pairs providing object\n expiration information. The value of the rule-id is URL-encoded.

\n \n

Object expiration information is not returned in directory buckets and this header returns the\n value \"NotImplemented\" in all responses for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-expiration" + } + }, + "Restore": { + "target": "com.amazonaws.s3#Restore", + "traits": { + "smithy.api#documentation": "

Provides information about object restoration action and expiration time of the restored object\n copy.

\n \n

This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
", + "smithy.api#httpHeader": "x-amz-restore" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time when the object was last modified.

\n

\n General purpose buckets - When you specify a\n versionId of the object in your request, if the specified version in the request is a\n delete marker, the response returns a 405 Method Not Allowed error and the\n Last-Modified: timestamp response header.

", + "smithy.api#httpHeader": "Last-Modified" + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

Size of the body in bytes.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a\n resource found at a URL.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. For more information, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type, which determines how part-level checksums are combined to create an object-level\n checksum for multipart objects. You can use this header response to verify that the checksum type that\n is received is the same checksum type that was specified in the CreateMultipartUpload\n request. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "MissingMeta": { + "target": "com.amazonaws.s3#MissingMeta", + "traits": { + "smithy.api#documentation": "

This is set to the number of metadata entries not returned in the headers that are prefixed with\n x-amz-meta-. This can happen if you create metadata using an API like SOAP that supports\n more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values\n are not legal HTTP headers.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-missing-meta" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Specifies caching behavior along the request/reply chain.

", + "smithy.api#httpHeader": "Cache-Control" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object.

", + "smithy.api#httpHeader": "Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Indicates what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field.

", + "smithy.api#httpHeader": "Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language the content is in.

", + "smithy.api#httpHeader": "Content-Language" + } + }, + "ContentRange": { + "target": "com.amazonaws.s3#ContentRange", + "traits": { + "smithy.api#documentation": "

The portion of the object returned in the response.

", + "smithy.api#httpHeader": "Content-Range" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the object data.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable.

", + "smithy.api#httpHeader": "Expires" + } + }, + "WebsiteRedirectLocation": { + "target": "com.amazonaws.s3#WebsiteRedirectLocation", + "traits": { + "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another object in\n the same bucket or to an external URL. Amazon S3 stores the value of this header in the object\n metadata.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-website-redirect-location" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS)\n keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except\n for S3 Standard storage class objects.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
", + "smithy.api#httpHeader": "x-amz-storage-class" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ReplicationStatus": { + "target": "com.amazonaws.s3#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

Amazon S3 can return this if your request involves a bucket that is either a source or destination in a\n replication rule.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-replication-status" + } + }, + "PartsCount": { + "target": "com.amazonaws.s3#PartsCount", + "traits": { + "smithy.api#documentation": "

The count of parts this object has. This value is only returned if you specify\n partNumber in your request and the object was uploaded as a multipart upload.

", + "smithy.api#httpHeader": "x-amz-mp-parts-count" + } + }, + "TagCount": { + "target": "com.amazonaws.s3#TagCount", + "traits": { + "smithy.api#documentation": "

The number of tags, if any, on the object, when you have the relevant permission to read object\n tags.

\n

You can use GetObjectTagging to retrieve the tag set associated with an object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-tagging-count" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

The Object Lock mode that's currently in place for this object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-mode" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

The date and time when this object's Object Lock will expire.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-retain-until-date" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether this object has an active legal hold. This field is only returned if you have\n permission to view an object's legal hold status.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" + } + }, + "ObjectLockEventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

The event hold status for this object. This header is only returned if the requester has the\n s3:GetObjectRetention permission.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold" + } + }, + "ObjectLockEventHoldDurationDays": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationDays", + "traits": { + "smithy.api#documentation": "

The event hold duration in days for this object. Only returned when the event hold is\n enabled.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-days" + } + }, + "ObjectLockEventHoldDurationYears": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationYears", + "traits": { + "smithy.api#documentation": "

The event hold duration in years for this object. Only returned when the event hold is\n enabled.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-years" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified in this header;\n otherwise, return a 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since headers are present in the\n request as follows: If-Match condition evaluates to true, and;\n If-Unmodified-Since condition evaluates to false; then, S3 returns 200\n OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfModifiedSince": { + "target": "com.amazonaws.s3#IfModifiedSince", + "traits": { + "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise, return a\n 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since headers are present in\n the request as follows: If-None-Match condition evaluates to false, and;\n If-Modified-Since condition evaluates to true; then, S3 returns 304\n Not Modified status code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Modified-Since" + } + }, + "IfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified in this header;\n otherwise, return a 304 Not Modified error.

\n

If both of the If-None-Match and If-Modified-Since headers are present in\n the request as follows: If-None-Match condition evaluates to false, and;\n If-Modified-Since condition evaluates to true; then, S3 returns 304\n Not Modified HTTP status code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "IfUnmodifiedSince": { + "target": "com.amazonaws.s3#IfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise, return a\n 412 Precondition Failed error.

\n

If both of the If-Match and If-Unmodified-Since headers are present in the\n request as follows: If-Match condition evaluates to true, and;\n If-Unmodified-Since condition evaluates to false; then, S3 returns 200\n OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Unmodified-Since" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key of the object to get.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "Range": { + "target": "com.amazonaws.s3#Range", + "traits": { + "smithy.api#documentation": "

Downloads the specified byte range of an object. For more information about the HTTP Range header,\n see https://www.rfc-editor.org/rfc/rfc9110.html#name-range.

\n \n

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

\n
", + "smithy.api#httpHeader": "Range" + } + }, + "ResponseCacheControl": { + "target": "com.amazonaws.s3#ResponseCacheControl", + "traits": { + "smithy.api#documentation": "

Sets the Cache-Control header of the response.

", + "smithy.api#httpQuery": "response-cache-control" + } + }, + "ResponseContentDisposition": { + "target": "com.amazonaws.s3#ResponseContentDisposition", + "traits": { + "smithy.api#documentation": "

Sets the Content-Disposition header of the response.

", + "smithy.api#httpQuery": "response-content-disposition" + } + }, + "ResponseContentEncoding": { + "target": "com.amazonaws.s3#ResponseContentEncoding", + "traits": { + "smithy.api#documentation": "

Sets the Content-Encoding header of the response.

", + "smithy.api#httpQuery": "response-content-encoding" + } + }, + "ResponseContentLanguage": { + "target": "com.amazonaws.s3#ResponseContentLanguage", + "traits": { + "smithy.api#documentation": "

Sets the Content-Language header of the response.

", + "smithy.api#httpQuery": "response-content-language" + } + }, + "ResponseContentType": { + "target": "com.amazonaws.s3#ResponseContentType", + "traits": { + "smithy.api#documentation": "

Sets the Content-Type header of the response.

", + "smithy.api#httpQuery": "response-content-type" + } + }, + "ResponseExpires": { + "target": "com.amazonaws.s3#ResponseExpires", + "traits": { + "smithy.api#documentation": "

Sets the Expires header of the response.

", + "smithy.api#httpQuery": "response-expires" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n

By default, the GetObject operation returns the current version of an object. To return\n a different version, use the versionId subresource.

\n \n
    \n
  • \n

    If you include a versionId in your request header, you must have the\n s3:GetObjectVersion permission to access a specific version of an object. The\n s3:GetObject permission is not required in this scenario.

    \n
  • \n
  • \n

    If you request the current version of an object without a specific versionId in\n the request header, only the s3:GetObject permission is required. The\n s3:GetObjectVersion permission is not required in this scenario.

    \n
  • \n
  • \n

    \n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets.\n You can only specify null to the versionId query parameter in the\n request.

    \n
  • \n
\n
\n

For more information about versioning, see PutBucketVersioning.

", + "smithy.api#httpQuery": "versionId" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the object (for example, AES256).

\n

If you encrypt an object by using server-side encryption with customer-provided encryption keys\n (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following\n headers:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the\n data before storing it. This value is used to decrypt the object when recovering it and must match the\n one used when storing the data. The key must be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n

If you encrypt an object by using server-side encryption with customer-provided encryption keys\n (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following\n headers:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3\n uses this header for a message integrity check to ensure that the encryption key was transmitted without\n error.

\n

If you encrypt an object by using server-side encryption with customer-provided encryption keys\n (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following\n headers:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively\n performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an\n object.

", + "smithy.api#httpQuery": "partNumber" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumMode": { + "target": "com.amazonaws.s3#ChecksumMode", + "traits": { + "smithy.api#documentation": "

To retrieve the checksum, this mode must be enabled.

", + "smithy.api#httpHeader": "x-amz-checksum-mode" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectResponseStatusCode": { + "type": "integer" + }, + "com.amazonaws.s3#GetObjectRetention": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectRetentionRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectRetentionOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves an object's retention settings. For more information, see Locking Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectRetention:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?retention", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectRetentionOutput": { + "type": "structure", + "members": { + "Retention": { + "target": "com.amazonaws.s3#ObjectLockRetention", + "traits": { + "smithy.api#documentation": "

The container element for an object's retention settings.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "Retention" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectRetentionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object whose retention settings you want to retrieve.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key name for the object whose retention settings you want to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID for the object whose retention settings you want to retrieve.

", + "smithy.api#httpQuery": "versionId" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectTaggingRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectTaggingOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns the tag-set of an object. You send the GET request against the tagging subresource\n associated with the object.

\n

To use this operation, you must have permission to perform the s3:GetObjectTagging\n action. By default, the GET action returns information about current version of an object. For a\n versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any\n other version, use the versionId query parameter. You also need permission for the\n s3:GetObjectVersionTagging action.

\n

By default, the bucket owner has this permission and can grant this permission to others.

\n

For information about the Amazon S3 object tagging feature, see Object Tagging.

\n

The following actions are related to GetObjectTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To retrieve tag set of a specific object version", + "documentation": "The following example retrieves tag set of an object. The request specifies object version.", + "input": { + "Bucket": "examplebucket", + "Key": "exampleobject", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + }, + "output": { + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI", + "TagSet": [ + { + "Value": "Value1", + "Key": "Key1" + } + ] + } + }, + { + "title": "To retrieve tag set of an object", + "documentation": "The following example retrieves tag set of an object.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "VersionId": "null", + "TagSet": [ + { + "Value": "Value4", + "Key": "Key4" + }, + { + "Value": "Value3", + "Key": "Key3" + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?tagging", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectTaggingOutput": { + "type": "structure", + "members": { + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object for which you got the tagging information.

", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "TagSet": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

Contains the tag set.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "Tagging" + } + }, + "com.amazonaws.s3#GetObjectTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object for which to get the tagging information.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which to get the tagging information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object for which to get the tagging information.

", + "smithy.api#httpQuery": "versionId" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetObjectTorrent": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectTorrentRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectTorrentOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing\n large files.

\n \n

You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted\n using server-side encryption with a customer-provided encryption key.

\n
\n

To use GET, you must have READ access to the object.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

The following action is related to GetObjectTorrent:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To retrieve torrent files for an object", + "documentation": "The following example retrieves torrent files of an object.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?torrent", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectTorrentOutput": { + "type": "structure", + "members": { + "Body": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

A Bencoded dictionary as defined by the BitTorrent specification

", + "smithy.api#httpPayload": {} + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetObjectTorrentRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the object for which to get the torrent files.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key for which to get the information.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GetPublicAccessBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetPublicAccessBlockRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetPublicAccessBlockOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. This\n operation returns the bucket-level configuration only. To understand the effective public\n access behavior, you must also consider account-level settings (which may inherit from\n organization-level policies). To use this operation, you must have the\n s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3\n permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an\n object, it checks the PublicAccessBlock configuration for both the bucket (or\n the bucket that contains the object) and the bucket owner's account. Account-level settings\n automatically inherit from organization-level policies when present. If the\n PublicAccessBlock settings are different between the bucket and the account,\n Amazon S3 uses the most restrictive combination of the bucket-level and account-level\n settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to GetPublicAccessBlock:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?publicAccessBlock", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#GetPublicAccessBlockOutput": { + "type": "structure", + "members": { + "PublicAccessBlockConfiguration": { + "target": "com.amazonaws.s3#PublicAccessBlockConfiguration", + "traits": { + "smithy.api#documentation": "

The PublicAccessBlock configuration currently in effect for this Amazon S3 bucket.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#GetPublicAccessBlockRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#GlacierJobParameters": { + "type": "structure", + "members": { + "Tier": { + "target": "com.amazonaws.s3#Tier", + "traits": { + "smithy.api#documentation": "

Retrieval tier at which the restore will be processed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for S3 Glacier job parameters.

" + } + }, + "com.amazonaws.s3#Grant": { + "type": "structure", + "members": { + "Grantee": { + "target": "com.amazonaws.s3#Grantee", + "traits": { + "smithy.api#documentation": "

The person being granted permissions.

", + "smithy.api#xmlNamespace": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + } + } + }, + "Permission": { + "target": "com.amazonaws.s3#Permission", + "traits": { + "smithy.api#documentation": "

Specifies the permission given to the grantee.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for grant information.

" + } + }, + "com.amazonaws.s3#GrantFullControl": { + "type": "string" + }, + "com.amazonaws.s3#GrantRead": { + "type": "string" + }, + "com.amazonaws.s3#GrantReadACP": { + "type": "string" + }, + "com.amazonaws.s3#GrantWrite": { + "type": "string" + }, + "com.amazonaws.s3#GrantWriteACP": { + "type": "string" + }, + "com.amazonaws.s3#Grantee": { + "type": "structure", + "members": { + "DisplayName": { + "target": "com.amazonaws.s3#DisplayName", + "traits": { + "smithy.api#documentation": "

" + } + }, + "EmailAddress": { + "target": "com.amazonaws.s3#EmailAddress", + "traits": { + "smithy.api#documentation": "

" + } + }, + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

The canonical user ID of the grantee.

" + } + }, + "URI": { + "target": "com.amazonaws.s3#URI", + "traits": { + "smithy.api#documentation": "

URI of the grantee group.

" + } + }, + "Type": { + "target": "com.amazonaws.s3#Type", + "traits": { + "smithy.api#documentation": "

Type of grantee

", + "smithy.api#required": {}, + "smithy.api#xmlAttribute": {}, + "smithy.api#xmlName": "xsi:type" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the person being granted permissions.

" + } + }, + "com.amazonaws.s3#Grants": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Grant", + "traits": { + "smithy.api#xmlName": "Grant" + } + } + }, + "com.amazonaws.s3#HeadBucket": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#HeadBucketRequest" + }, + "output": { + "target": "com.amazonaws.s3#HeadBucketOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NotFound" + } + ], + "traits": { + "smithy.api#documentation": "

You can use this operation to determine if a bucket exists and if you have permission to access it.\n The action returns a 200 OK HTTP status code if the bucket exists and you have \n permission to access it. You can make a HeadBucket call on any bucket name to any \n Region in the partition, and regardless of the permissions on the bucket, you will receive a \n response header with the correct bucket location so that you can then make a proper, signed request \n to the appropriate Regional endpoint.

\n \n

If the bucket doesn't exist or you don't have permission to access it, the HEAD \n request returns a generic 400 Bad Request, 403 Forbidden, or \n 404 Not Found HTTP status code. A message body isn't included, so you can't determine \n the exception beyond these HTTP response codes.

\n
\n
\n
Authentication and authorization
\n
\n

\n General purpose buckets - Request to public buckets that\n grant the s3:ListBucket permission publicly do not need to be signed. All other\n HeadBucket requests must be authenticated and signed by using IAM credentials\n (access key ID and secret access key for the IAM identities). All headers with the\n x-amz- prefix, including x-amz-copy-source, must be signed. For more\n information, see REST Authentication.

\n

\n Directory buckets - You must use IAM credentials to\n authenticate and authorize your access to the HeadBucket API operation, instead of\n using the temporary security credentials through the CreateSession API\n operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

\n
    \n
  • \n

    \n General purpose bucket permissions - To use this\n operation, you must have permissions to perform the s3:ListBucket action. The\n bucket owner has this permission by default and can grant this permission to others. For more\n information about permissions, see Managing access permissions to your\n Amazon S3 resources in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have the\n \n s3express:CreateSession\n permission in the\n Action element of a policy. If no session mode is specified, the session will be \n created with the maximum allowable privilege, attempting ReadWrite first, \n then ReadOnly if ReadWrite is not permitted. If you want to explicitly \n restrict the access to be read-only, you can set the s3express:SessionMode condition key to \n ReadOnly on the bucket.

    \n

    For more information about example bucket policies, see Example\n bucket policies for S3 Express One Zone and Amazon Web Services\n Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n \n

You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To determine if bucket exists", + "documentation": "This operation checks to see if a bucket exists.", + "input": { + "Bucket": "acl1" + } + } + ], + "smithy.api#http": { + "method": "HEAD", + "uri": "/{Bucket}", + "code": 200 + }, + "smithy.waiters#waitable": { + "BucketExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NotFound" + } + } + ], + "minDelay": 5 + }, + "BucketNotExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "errorType": "NotFound" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.s3#HeadBucketOutput": { + "type": "structure", + "members": { + "BucketArn": { + "target": "com.amazonaws.s3#S3RegionalOrS3ExpressBucketArnString", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all\n of Amazon Web Services.

\n \n

This parameter is only supported for S3 directory buckets. For more information, see Using tags with\n directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-arn" + } + }, + "BucketLocationType": { + "target": "com.amazonaws.s3#LocationType", + "traits": { + "smithy.api#documentation": "

The type of location where the bucket is created.

\n \n

This functionality is only supported by directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-location-type" + } + }, + "BucketLocationName": { + "target": "com.amazonaws.s3#BucketLocationName", + "traits": { + "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the Zone ID of the Availability Zone or the Local Zone where the bucket is created. An example\n Zone ID value for an Availability Zone is usw2-az1.

\n \n

This functionality is only supported by directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-bucket-location-name" + } + }, + "BucketRegion": { + "target": "com.amazonaws.s3#Region", + "traits": { + "smithy.api#documentation": "

The Region that the bucket is located.

", + "smithy.api#httpHeader": "x-amz-bucket-region" + } + }, + "AccessPointAlias": { + "target": "com.amazonaws.s3#AccessPointAlias", + "traits": { + "smithy.api#documentation": "

Indicates whether the bucket name used in the request is an access point alias.

\n \n

For directory buckets, the value of this field is false.

\n
", + "smithy.api#httpHeader": "x-amz-access-point-alias" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#HeadBucketRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. \nFor more information about InvalidAccessPointAliasError, see List of\n Error Codes.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#HeadObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#HeadObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#HeadObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NotFound" + } + ], + "traits": { + "smithy.api#documentation": "

The HEAD operation retrieves metadata from an object without returning the object\n itself. This operation is useful if you're interested only in an object's metadata.

\n \n

A HEAD request has the same options as a GET operation on an object. The\n response is identical to the GET response except that there is no response body. Because\n of this, if the HEAD request generates an error, it returns a generic code, such as\n 400 Bad Request, 403 Forbidden, 404 Not Found, 405\n Method Not Allowed, 412 Precondition Failed, or 304 Not Modified.\n It's not possible to retrieve the exact exception of these error codes.

\n
\n

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

\n
\n
Permissions
\n
\n

\n
    \n
  • \n

    \n General purpose bucket permissions - To use\n HEAD, you must have the s3:GetObject permission. You need the\n relevant read object (or version) permission for this operation. For more information, see\n Actions, resources,\n and condition keys for Amazon S3 in the Amazon S3 User Guide. For more\n information about the permissions to S3 API operations by S3 resource types, see Required permissions for\n Amazon S3 API operations in the Amazon S3 User Guide.

    \n

    If the object you request doesn't exist, the error that Amazon S3 returns depends on whether\n you also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an\n HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP\n status code 403 Forbidden error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If you enable x-amz-checksum-mode in the request and the object is encrypted\n with Amazon Web Services Key Management Service (Amazon Web Services KMS), you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key to retrieve the checksum of\n the object.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption, should not be\n sent for HEAD requests if your object uses server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or\n server-side encryption with Amazon S3 managed encryption keys (SSE-S3). The\n x-amz-server-side-encryption header is used when you PUT an object\n to S3 and want to specify the encryption method. If you include this header in a\n HEAD request for an object that uses these types of keys, you’ll get an HTTP\n 400 Bad Request error. It's because the encryption method can't be changed when\n you retrieve the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided encryption\n keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the\n object, you must use the following headers to provide the encryption key for the server to be able\n to retrieve the object's metadata. The headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

\n \n

\n Directory bucket -\n For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
\n
Versioning
\n
\n
    \n
  • \n

    If the current version of the object is a delete marker, Amazon S3 behaves as if the object was\n deleted and includes x-amz-delete-marker: true in the response.

    \n
  • \n
  • \n

    If the specified version is a delete marker, the response returns a 405 Method Not\n Allowed error and the Last-Modified: timestamp response header.

    \n
  • \n
\n \n
    \n
  • \n

    \n Directory buckets -\n Delete marker is not supported for directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets -\n S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the\n versionId query parameter in the request.

    \n
  • \n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n \n

For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
\n

The following actions are related to HeadObject:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To retrieve metadata of an object without returning the object itself", + "documentation": "The following example retrieves an object metadata.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "image/jpeg", + "LastModified": "2016-12-15T01:19:41.000Z", + "ContentLength": 3191, + "VersionId": "null", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "Metadata": {} + } + } + ], + "smithy.api#http": { + "method": "HEAD", + "uri": "/{Bucket}/{Key+}", + "code": 200 + }, + "smithy.waiters#waitable": { + "ObjectExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "success": true + } + }, + { + "state": "retry", + "matcher": { + "errorType": "NotFound" + } + } + ], + "minDelay": 5 + }, + "ObjectNotExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "errorType": "NotFound" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.s3#HeadObjectOutput": { + "type": "structure", + "members": { + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this\n response header does not appear in the response.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-delete-marker" + } + }, + "AcceptRanges": { + "target": "com.amazonaws.s3#AcceptRanges", + "traits": { + "smithy.api#documentation": "

Indicates that a range of bytes was specified.

", + "smithy.api#httpHeader": "accept-ranges" + } + }, + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the object expiration is configured (see \n PutBucketLifecycleConfiguration\n ), the response includes this header. It\n includes the expiry-date and rule-id key-value pairs providing object\n expiration information. The value of the rule-id is URL-encoded.

\n \n

Object expiration information is not returned in directory buckets and this header returns the\n value \"NotImplemented\" in all responses for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-expiration" + } + }, + "Restore": { + "target": "com.amazonaws.s3#Restore", + "traits": { + "smithy.api#documentation": "

If the object is an archived object (an object whose storage class is GLACIER), the response\n includes this header if either the archive restoration is in progress (see RestoreObject or an archive copy is already\n restored.

\n

If an archive copy is already restored, the header value indicates when Amazon S3 is scheduled to delete\n the object copy. For example:

\n

\n x-amz-restore: ongoing-request=\"false\", expiry-date=\"Fri, 21 Dec 2012 00:00:00\n GMT\"\n

\n

If the object restoration is in progress, the header returns the value\n ongoing-request=\"true\".

\n

For more information about archiving objects, see Transitioning Objects: General Considerations.

\n \n

This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
", + "smithy.api#httpHeader": "x-amz-restore" + } + }, + "ArchiveStatus": { + "target": "com.amazonaws.s3#ArchiveStatus", + "traits": { + "smithy.api#documentation": "

The archive state of the head object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-archive-status" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time when the object was last modified.

", + "smithy.api#httpHeader": "Last-Modified" + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

Size of the body in bytes.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type, which determines how part-level checksums are combined to create an object-level\n checksum for multipart objects. You can use this header response to verify that the checksum type that\n is received is the same checksum type that was specified in CreateMultipartUpload request.\n For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a\n resource found at a URL.

", + "smithy.api#httpHeader": "ETag" + } + }, + "MissingMeta": { + "target": "com.amazonaws.s3#MissingMeta", + "traits": { + "smithy.api#documentation": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This\n can happen if you create metadata using an API like SOAP that supports more flexible metadata than the\n REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP\n headers.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-missing-meta" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Specifies caching behavior along the request/reply chain.

", + "smithy.api#httpHeader": "Cache-Control" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object.

", + "smithy.api#httpHeader": "Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Indicates what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field.

", + "smithy.api#httpHeader": "Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language the content is in.

", + "smithy.api#httpHeader": "Content-Language" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the object data.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "ContentRange": { + "target": "com.amazonaws.s3#ContentRange", + "traits": { + "smithy.api#documentation": "

The portion of the object returned in the response for a GET request.

", + "smithy.api#httpHeader": "Content-Range" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable.

", + "smithy.api#httpHeader": "Expires" + } + }, + "WebsiteRedirectLocation": { + "target": "com.amazonaws.s3#WebsiteRedirectLocation", + "traits": { + "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another object in\n the same bucket or to an external URL. Amazon S3 stores the value of this header in the object\n metadata.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-website-redirect-location" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS)\n keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except\n for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
", + "smithy.api#httpHeader": "x-amz-storage-class" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ReplicationStatus": { + "target": "com.amazonaws.s3#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

Amazon S3 can return this header if your request involves a bucket that is either a source or a\n destination in a replication rule.

\n

In replication, you have a source bucket on which you configure replication and destination bucket\n or buckets where Amazon S3 stores object replicas. When you request an object (GetObject) or\n object metadata (HeadObject) from these buckets, Amazon S3 will return the\n x-amz-replication-status header in the response as follows:

\n
    \n
  • \n

    \n If requesting an object from the source bucket, Amazon S3 will\n return the x-amz-replication-status header if the object in your request is eligible\n for replication.

    \n

    For example, suppose that in your replication configuration, you specify object prefix\n TaxDocs requesting Amazon S3 to replicate objects with key prefix TaxDocs.\n Any objects you upload with this key name prefix, for example TaxDocs/document1.pdf,\n are eligible for replication. For any object request with this key name prefix, Amazon S3 will return the\n x-amz-replication-status header with value PENDING, COMPLETED or FAILED indicating\n object replication status.

    \n
  • \n
  • \n

    \n If requesting an object from a destination bucket, Amazon S3 will\n return the x-amz-replication-status header with value REPLICA if the object in your\n request is a replica that Amazon S3 created and there is no replica modification replication in\n progress.

    \n
  • \n
  • \n

    \n When replicating objects to multiple destination buckets, the\n x-amz-replication-status header acts differently. The header of the source object\n will only return a value of COMPLETED when replication is successful to all destinations. The header\n will remain at value PENDING until replication has completed for all destinations. If one or more\n destinations fails replication the header will return FAILED.

    \n
  • \n
\n

For more information, see Replication.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-replication-status" + } + }, + "PartsCount": { + "target": "com.amazonaws.s3#PartsCount", + "traits": { + "smithy.api#documentation": "

The count of parts this object has. This value is only returned if you specify\n partNumber in your request and the object was uploaded as a multipart upload.

", + "smithy.api#httpHeader": "x-amz-mp-parts-count" + } + }, + "TagCount": { + "target": "com.amazonaws.s3#TagCount", + "traits": { + "smithy.api#documentation": "

The number of tags, if any, on the object, when you have the relevant permission to read object\n tags.

\n

You can use GetObjectTagging to retrieve the tag set associated with an object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-tagging-count" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

The Object Lock mode, if any, that's in effect for this object. This header is only returned if the\n requester has the s3:GetObjectRetention permission. For more information about S3 Object\n Lock, see Object Lock.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-mode" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

The date and time when the Object Lock retention period expires. This header is only returned if the\n requester has the s3:GetObjectRetention permission.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-retain-until-date" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether a legal hold is in effect for this object. This header is only returned if the\n requester has the s3:GetObjectLegalHold permission. This header is not returned if the\n specified version of this object has never had a legal hold applied. For more information about S3\n Object Lock, see Object\n Lock.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" + } + }, + "ObjectLockEventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

The event hold status for this object. This header is only returned if the requester has the\n s3:GetObjectRetention permission.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold" + } + }, + "ObjectLockEventHoldDurationDays": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationDays", + "traits": { + "smithy.api#documentation": "

The event hold duration in days for this object. Only returned when the event hold is\n enabled.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-days" + } + }, + "ObjectLockEventHoldDurationYears": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationYears", + "traits": { + "smithy.api#documentation": "

The event hold duration in years for this object. Only returned when the event hold is\n enabled.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-years" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#HeadObjectRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return\n a 412 (precondition failed) error.

\n

If both of the If-Match and If-Unmodified-Since headers are present in the\n request as follows:

\n
    \n
  • \n

    \n If-Match condition evaluates to true, and;

    \n
  • \n
  • \n

    \n If-Unmodified-Since condition evaluates to false;

    \n
  • \n
\n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfModifiedSince": { + "target": "com.amazonaws.s3#IfModifiedSince", + "traits": { + "smithy.api#documentation": "

Return the object only if it has been modified since the specified time; otherwise, return a 304\n (not modified) error.

\n

If both of the If-None-Match and If-Modified-Since headers are present in\n the request as follows:

\n
    \n
  • \n

    \n If-None-Match condition evaluates to false, and;

    \n
  • \n
  • \n

    \n If-Modified-Since condition evaluates to true;

    \n
  • \n
\n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Modified-Since" + } + }, + "IfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Return the object only if its entity tag (ETag) is different from the one specified; otherwise,\n return a 304 (not modified) error.

\n

If both of the If-None-Match and If-Modified-Since headers are present in\n the request as follows:

\n
    \n
  • \n

    \n If-None-Match condition evaluates to false, and;

    \n
  • \n
  • \n

    \n If-Modified-Since condition evaluates to true;

    \n
  • \n
\n

Then Amazon S3 returns the 304 Not Modified response code.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "IfUnmodifiedSince": { + "target": "com.amazonaws.s3#IfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Return the object only if it has not been modified since the specified time; otherwise, return a 412\n (precondition failed) error.

\n

If both of the If-Match and If-Unmodified-Since headers are present in the\n request as follows:

\n
    \n
  • \n

    \n If-Match condition evaluates to true, and;

    \n
  • \n
  • \n

    \n If-Unmodified-Since condition evaluates to false;

    \n
  • \n
\n

Then Amazon S3 returns 200 OK and the data requested.

\n

For more information about conditional requests, see RFC 7232.

", + "smithy.api#httpHeader": "If-Unmodified-Since" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "Range": { + "target": "com.amazonaws.s3#Range", + "traits": { + "smithy.api#documentation": "

HeadObject returns only the metadata for an object. If the Range is satisfiable, only the\n ContentLength is affected in the response. If the Range is not satisfiable, S3 returns a\n 416 - Requested Range Not Satisfiable error.

", + "smithy.api#httpHeader": "Range" + } + }, + "ResponseCacheControl": { + "target": "com.amazonaws.s3#ResponseCacheControl", + "traits": { + "smithy.api#documentation": "

Sets the Cache-Control header of the response.

", + "smithy.api#httpQuery": "response-cache-control" + } + }, + "ResponseContentDisposition": { + "target": "com.amazonaws.s3#ResponseContentDisposition", + "traits": { + "smithy.api#documentation": "

Sets the Content-Disposition header of the response.

", + "smithy.api#httpQuery": "response-content-disposition" + } + }, + "ResponseContentEncoding": { + "target": "com.amazonaws.s3#ResponseContentEncoding", + "traits": { + "smithy.api#documentation": "

Sets the Content-Encoding header of the response.

", + "smithy.api#httpQuery": "response-content-encoding" + } + }, + "ResponseContentLanguage": { + "target": "com.amazonaws.s3#ResponseContentLanguage", + "traits": { + "smithy.api#documentation": "

Sets the Content-Language header of the response.

", + "smithy.api#httpQuery": "response-content-language" + } + }, + "ResponseContentType": { + "target": "com.amazonaws.s3#ResponseContentType", + "traits": { + "smithy.api#documentation": "

Sets the Content-Type header of the response.

", + "smithy.api#httpQuery": "response-content-type" + } + }, + "ResponseExpires": { + "target": "com.amazonaws.s3#ResponseExpires", + "traits": { + "smithy.api#documentation": "

Sets the Expires header of the response.

", + "smithy.api#httpQuery": "response-expires" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n \n

For directory buckets in this API operation, only the null value of the version ID is supported.

\n
", + "smithy.api#httpQuery": "versionId" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively\n performs a 'ranged' HEAD request for the part specified. Useful querying about the size of the part and\n the number of parts in this object.

", + "smithy.api#httpQuery": "partNumber" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumMode": { + "target": "com.amazonaws.s3#ChecksumMode", + "traits": { + "smithy.api#documentation": "

To retrieve the checksum, this parameter must be enabled.

\n

\n General purpose buckets -\n If you enable checksum mode and the object is uploaded with a checksum and encrypted with\n an Key Management Service (KMS) key, you must have permission to use the kms:Decrypt action to\n retrieve the checksum.

\n

\n Directory buckets - If you enable ChecksumMode\n and the object is encrypted with Amazon Web Services Key Management Service (Amazon Web Services KMS), you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based\n policies and KMS key policies for the KMS key to retrieve the checksum of the object.

", + "smithy.api#httpHeader": "x-amz-checksum-mode" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#HostName": { + "type": "string" + }, + "com.amazonaws.s3#HttpErrorCodeReturnedEquals": { + "type": "string" + }, + "com.amazonaws.s3#HttpRedirectCode": { + "type": "string" + }, + "com.amazonaws.s3#ID": { + "type": "string" + }, + "com.amazonaws.s3#IdempotencyParameterMismatch": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

Parameters on this idempotent request are inconsistent with parameters used in previous request(s).

\n

For a list of error codes and more information on Amazon S3 errors, see Error codes.

\n \n

Idempotency ensures that an API request completes no more than one time. With an idempotent\n request, if the original request completes successfully, any subsequent retries complete successfully\n without performing any further actions.

\n
", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#IfMatch": { + "type": "string" + }, + "com.amazonaws.s3#IfMatchInitiatedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#IfMatchLastModifiedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#IfMatchSize": { + "type": "long" + }, + "com.amazonaws.s3#IfModifiedSince": { + "type": "timestamp" + }, + "com.amazonaws.s3#IfNoneMatch": { + "type": "string" + }, + "com.amazonaws.s3#IfUnmodifiedSince": { + "type": "timestamp" + }, + "com.amazonaws.s3#IndexDocument": { + "type": "structure", + "members": { + "Suffix": { + "target": "com.amazonaws.s3#Suffix", + "traits": { + "smithy.api#documentation": "

A suffix that is appended to a request that is for a directory on the website endpoint. (For\n example, if the suffix is index.html and you make a request to\n samplebucket/images/, the data that is returned will be for the object with the key name\n images/index.html.) The suffix must not be empty and must not include a slash\n character.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the Suffix element.

" + } + }, + "com.amazonaws.s3#Initiated": { + "type": "timestamp" + }, + "com.amazonaws.s3#Initiator": { + "type": "structure", + "members": { + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

If the principal is an Amazon Web Services account, it provides the Canonical User ID. If the principal is an\n IAM User, it provides a user ARN value.

\n \n

\n Directory buckets - If the principal is an Amazon Web Services account,\n it provides the Amazon Web Services account ID. If the principal is an IAM User, it provides a user ARN\n value.

\n
" + } + }, + "DisplayName": { + "target": "com.amazonaws.s3#DisplayName", + "traits": { + "smithy.api#documentation": "

\n \n

This functionality is not supported for directory buckets.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container element that identifies who initiated the multipart upload.

" + } + }, + "com.amazonaws.s3#InputSerialization": { + "type": "structure", + "members": { + "CSV": { + "target": "com.amazonaws.s3#CSVInput", + "traits": { + "smithy.api#documentation": "

Describes the serialization of a CSV-encoded object.

" + } + }, + "CompressionType": { + "target": "com.amazonaws.s3#CompressionType", + "traits": { + "smithy.api#documentation": "

Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.

" + } + }, + "JSON": { + "target": "com.amazonaws.s3#JSONInput", + "traits": { + "smithy.api#documentation": "

Specifies JSON as object's input serialization format.

" + } + }, + "Parquet": { + "target": "com.amazonaws.s3#ParquetInput", + "traits": { + "smithy.api#documentation": "

Specifies Parquet as object's input serialization format.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the serialization format of the object.

" + } + }, + "com.amazonaws.s3#IntelligentTieringAccessTier": { + "type": "enum", + "members": { + "ARCHIVE_ACCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARCHIVE_ACCESS" + } + }, + "DEEP_ARCHIVE_ACCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEEP_ARCHIVE_ACCESS" + } + } + } + }, + "com.amazonaws.s3#IntelligentTieringAndOperator": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

An object key name prefix that identifies the subset of objects to which the configuration\n applies.

" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

All of these tags must exist in the object's tag set in order for the configuration to apply.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for specifying S3 Intelligent-Tiering filters. The filters determine the subset of\n objects to which the rule applies.

" + } + }, + "com.amazonaws.s3#IntelligentTieringConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#IntelligentTieringId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the S3 Intelligent-Tiering configuration.

", + "smithy.api#required": {} + } + }, + "Filter": { + "target": "com.amazonaws.s3#IntelligentTieringFilter", + "traits": { + "smithy.api#documentation": "

Specifies a bucket filter. The configuration only includes objects that meet the filter's\n criteria.

" + } + }, + "Status": { + "target": "com.amazonaws.s3#IntelligentTieringStatus", + "traits": { + "smithy.api#documentation": "

Specifies the status of the configuration.

", + "smithy.api#required": {} + } + }, + "Tierings": { + "target": "com.amazonaws.s3#TieringList", + "traits": { + "smithy.api#documentation": "

Specifies the S3 Intelligent-Tiering storage class tier of the configuration.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tiering" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.

\n

For information about the S3 Intelligent-Tiering storage class, see Storage class for\n automatically optimizing frequently and infrequently accessed objects.

" + } + }, + "com.amazonaws.s3#IntelligentTieringConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#IntelligentTieringConfiguration" + } + }, + "com.amazonaws.s3#IntelligentTieringDays": { + "type": "integer" + }, + "com.amazonaws.s3#IntelligentTieringFilter": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

An object key name prefix that identifies the subset of objects to which the rule applies.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "Tag": { + "target": "com.amazonaws.s3#Tag" + }, + "And": { + "target": "com.amazonaws.s3#IntelligentTieringAndOperator", + "traits": { + "smithy.api#documentation": "

A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The\n operator must have at least two predicates, and an object must match all of the predicates in order for\n the filter to apply.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Filter is used to identify objects that the S3 Intelligent-Tiering configuration\n applies to.

" + } + }, + "com.amazonaws.s3#IntelligentTieringId": { + "type": "string" + }, + "com.amazonaws.s3#IntelligentTieringStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#InvalidAnnotationName": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The annotation name you provided is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#InvalidObjectState": { + "type": "structure", + "members": { + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass" + }, + "AccessTier": { + "target": "com.amazonaws.s3#IntelligentTieringAccessTier" + } + }, + "traits": { + "smithy.api#documentation": "

Object is archived and inaccessible until restored.

\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the\n S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the\n S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a copy\n using RestoreObject. Otherwise, this operation returns an InvalidObjectState error. For\n information about restoring archived objects, see Restoring Archived Objects in the\n Amazon S3 User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.s3#InvalidPrefix": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The annotation prefix you provided is invalid.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#InvalidRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

A parameter or header in your request isn't valid. For details, see the description of this API \n operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#InvalidWriteOffset": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The write offset value that you specified does not match the current object size.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#InventoryConfiguration": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.s3#InventoryDestination", + "traits": { + "smithy.api#documentation": "

Contains information about where to publish the inventory results.

", + "smithy.api#required": {} + } + }, + "IsEnabled": { + "target": "com.amazonaws.s3#IsEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether the inventory is enabled or disabled. If set to True, an inventory\n list is generated. If set to False, no inventory list is generated.

", + "smithy.api#required": {} + } + }, + "Filter": { + "target": "com.amazonaws.s3#InventoryFilter", + "traits": { + "smithy.api#documentation": "

Specifies an inventory filter. The inventory only includes objects that meet the filter's\n criteria.

" + } + }, + "Id": { + "target": "com.amazonaws.s3#InventoryId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the inventory configuration.

", + "smithy.api#required": {} + } + }, + "IncludedObjectVersions": { + "target": "com.amazonaws.s3#InventoryIncludedObjectVersions", + "traits": { + "smithy.api#documentation": "

Object versions to include in the inventory list. If set to All, the list includes all\n the object versions, which adds the version-related fields VersionId,\n IsLatest, and DeleteMarker to the list. If set to Current, the\n list does not contain these version-related fields.

", + "smithy.api#required": {} + } + }, + "OptionalFields": { + "target": "com.amazonaws.s3#InventoryOptionalFields", + "traits": { + "smithy.api#documentation": "

Contains the optional fields that are included in the inventory results.

\n \n

The following optional fields are supported for directory buckets Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | \n EncryptionStatus | BucketKeyStatus | ChecksumAlgorithm | LifecycleExpirationDate. Throws MalformedXML error if unsupported optional field is provided.

\n
" + } + }, + "Schedule": { + "target": "com.amazonaws.s3#InventorySchedule", + "traits": { + "smithy.api#documentation": "

Specifies the schedule for generating inventory results.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see GET Bucket\n inventory in the Amazon S3 API Reference.

" + } + }, + "com.amazonaws.s3#InventoryConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#InventoryConfiguration" + } + }, + "com.amazonaws.s3#InventoryConfigurationState": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.s3#InventoryDestination": { + "type": "structure", + "members": { + "S3BucketDestination": { + "target": "com.amazonaws.s3#InventoryS3BucketDestination", + "traits": { + "smithy.api#documentation": "

Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where\n inventory results are published.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the S3 Inventory configuration for an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#InventoryEncryption": { + "type": "structure", + "members": { + "SSES3": { + "target": "com.amazonaws.s3#SSES3", + "traits": { + "smithy.api#documentation": "

Specifies the use of SSE-S3 to encrypt delivered inventory reports.

", + "smithy.api#xmlName": "SSE-S3" + } + }, + "SSEKMS": { + "target": "com.amazonaws.s3#SSEKMS", + "traits": { + "smithy.api#documentation": "

Specifies the use of SSE-KMS to encrypt delivered inventory reports.

", + "smithy.api#xmlName": "SSE-KMS" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the type of server-side encryption used to encrypt the S3 Inventory results.

" + } + }, + "com.amazonaws.s3#InventoryFilter": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix that an object must have to be included in the inventory results.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies an S3 Inventory filter. The inventory only includes objects that meet the filter's\n criteria.

" + } + }, + "com.amazonaws.s3#InventoryFormat": { + "type": "enum", + "members": { + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CSV" + } + }, + "ORC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORC" + } + }, + "Parquet": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Parquet" + } + } + } + }, + "com.amazonaws.s3#InventoryFrequency": { + "type": "enum", + "members": { + "Daily": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Daily" + } + }, + "Weekly": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Weekly" + } + } + } + }, + "com.amazonaws.s3#InventoryId": { + "type": "string" + }, + "com.amazonaws.s3#InventoryIncludedObjectVersions": { + "type": "enum", + "members": { + "All": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "All" + } + }, + "Current": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Current" + } + } + } + }, + "com.amazonaws.s3#InventoryOptionalField": { + "type": "enum", + "members": { + "Size": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Size" + } + }, + "LastModifiedDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LastModifiedDate" + } + }, + "StorageClass": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StorageClass" + } + }, + "ETag": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ETag" + } + }, + "IsMultipartUploaded": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IsMultipartUploaded" + } + }, + "ReplicationStatus": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReplicationStatus" + } + }, + "EncryptionStatus": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EncryptionStatus" + } + }, + "ObjectLockRetainUntilDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectLockRetainUntilDate" + } + }, + "ObjectLockMode": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectLockMode" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectLockLegalHoldStatus" + } + }, + "ObjectLockEventHoldStatus": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectLockEventHoldStatus" + } + }, + "ObjectLockEventHoldDuration": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectLockEventHoldDuration" + } + }, + "IntelligentTieringAccessTier": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IntelligentTieringAccessTier" + } + }, + "BucketKeyStatus": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BucketKeyStatus" + } + }, + "ChecksumAlgorithm": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChecksumAlgorithm" + } + }, + "ObjectAccessControlList": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectAccessControlList" + } + }, + "ObjectOwner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectOwner" + } + }, + "LifecycleExpirationDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LifecycleExpirationDate" + } + }, + "IntelligentTieringReferenceDate": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IntelligentTieringReferenceDate" + } + } + } + }, + "com.amazonaws.s3#InventoryOptionalFields": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#InventoryOptionalField", + "traits": { + "smithy.api#xmlName": "Field" + } + } + }, + "com.amazonaws.s3#InventoryS3BucketDestination": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not\n validated before exporting data.

\n \n

Although this value is optional, we strongly recommend that you set it to help prevent problems\n if the destination bucket ownership changes.

\n
" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bucket where inventory results will be published.

", + "smithy.api#required": {} + } + }, + "Format": { + "target": "com.amazonaws.s3#InventoryFormat", + "traits": { + "smithy.api#documentation": "

Specifies the output format of the inventory results.

", + "smithy.api#required": {} + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix that is prepended to all inventory results.

" + } + }, + "Encryption": { + "target": "com.amazonaws.s3#InventoryEncryption", + "traits": { + "smithy.api#documentation": "

Contains the type of server-side encryption used to encrypt the inventory results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where\n S3 Inventory results are published.

" + } + }, + "com.amazonaws.s3#InventorySchedule": { + "type": "structure", + "members": { + "Frequency": { + "target": "com.amazonaws.s3#InventoryFrequency", + "traits": { + "smithy.api#documentation": "

Specifies how frequently inventory results are produced.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the schedule for generating S3 Inventory results.

" + } + }, + "com.amazonaws.s3#InventoryTableConfiguration": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#InventoryConfigurationState", + "traits": { + "smithy.api#documentation": "

\n The configuration state of the inventory table, indicating whether the inventory table is enabled \n or disabled.\n

", + "smithy.api#required": {} + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#MetadataTableEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

\n The encryption configuration for the inventory table.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The inventory table configuration for an S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#InventoryTableConfigurationResult": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#InventoryConfigurationState", + "traits": { + "smithy.api#documentation": "

\n The configuration state of the inventory table, indicating whether the inventory table is enabled \n or disabled.\n

", + "smithy.api#required": {} + } + }, + "TableStatus": { + "target": "com.amazonaws.s3#MetadataTableStatus", + "traits": { + "smithy.api#documentation": "

The status of the inventory table. The status values are:

\n
    \n
  • \n

    \n CREATING - The inventory table is in the process of being created in the specified\n Amazon Web Services managed table bucket.

    \n
  • \n
  • \n

    \n BACKFILLING - The inventory table is in the process of being backfilled. When \n you enable the inventory table for your metadata configuration, the table goes through a \n process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve \n the initial metadata for all objects in the bucket. Depending on the number of objects in your \n bucket, this process can take several hours. When the backfilling process is finished, the \n status of your inventory table changes from BACKFILLING to ACTIVE. \n After backfilling is completed, updates to your objects are reflected in the inventory table \n within one hour.

    \n
  • \n
  • \n

    \n ACTIVE - The inventory table has been created successfully, and records are being\n delivered to the table.

    \n
  • \n
  • \n

    \n FAILED - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver\n records.

    \n
  • \n
" + } + }, + "Error": { + "target": "com.amazonaws.s3#ErrorDetails" + }, + "TableName": { + "target": "com.amazonaws.s3#S3TablesName", + "traits": { + "smithy.api#documentation": "

\n The name of the inventory table.\n

" + } + }, + "TableArn": { + "target": "com.amazonaws.s3#S3TablesArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) for the inventory table.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The inventory table configuration for an S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#InventoryTableConfigurationUpdates": { + "type": "structure", + "members": { + "ConfigurationState": { + "target": "com.amazonaws.s3#InventoryConfigurationState", + "traits": { + "smithy.api#documentation": "

\n The configuration state of the inventory table, indicating whether the inventory table is enabled \n or disabled.\n

", + "smithy.api#required": {} + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#MetadataTableEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

\n The encryption configuration for the inventory table.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The specified updates to the S3 Metadata inventory table configuration.\n

" + } + }, + "com.amazonaws.s3#IsEnabled": { + "type": "boolean" + }, + "com.amazonaws.s3#IsLatest": { + "type": "boolean" + }, + "com.amazonaws.s3#IsPublic": { + "type": "boolean" + }, + "com.amazonaws.s3#IsRestoreInProgress": { + "type": "boolean" + }, + "com.amazonaws.s3#IsTruncated": { + "type": "boolean" + }, + "com.amazonaws.s3#JSONInput": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.s3#JSONType", + "traits": { + "smithy.api#documentation": "

The type of JSON. Valid values: Document, Lines.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies JSON as object's input serialization format.

" + } + }, + "com.amazonaws.s3#JSONOutput": { + "type": "structure", + "members": { + "RecordDelimiter": { + "target": "com.amazonaws.s3#RecordDelimiter", + "traits": { + "smithy.api#documentation": "

The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a\n newline character ('\\n').

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies JSON as request's output serialization format.

" + } + }, + "com.amazonaws.s3#JSONType": { + "type": "enum", + "members": { + "DOCUMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOCUMENT" + } + }, + "LINES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINES" + } + } + } + }, + "com.amazonaws.s3#JournalTableConfiguration": { + "type": "structure", + "members": { + "RecordExpiration": { + "target": "com.amazonaws.s3#RecordExpiration", + "traits": { + "smithy.api#documentation": "

\n The journal table record expiration settings for the journal table.\n

", + "smithy.api#required": {} + } + }, + "EncryptionConfiguration": { + "target": "com.amazonaws.s3#MetadataTableEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

\n The encryption configuration for the journal table.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The journal table configuration for an S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#JournalTableConfigurationResult": { + "type": "structure", + "members": { + "TableStatus": { + "target": "com.amazonaws.s3#MetadataTableStatus", + "traits": { + "smithy.api#documentation": "

The status of the journal table. The status values are:

\n
    \n
  • \n

    \n CREATING - The journal table is in the process of being created in the specified\n table bucket.

    \n
  • \n
  • \n

    \n ACTIVE - The journal table has been created successfully, and records are being\n delivered to the table.

    \n
  • \n
  • \n

    \n FAILED - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver\n records.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "Error": { + "target": "com.amazonaws.s3#ErrorDetails" + }, + "TableName": { + "target": "com.amazonaws.s3#S3TablesName", + "traits": { + "smithy.api#documentation": "

\n The name of the journal table.\n

", + "smithy.api#required": {} + } + }, + "TableArn": { + "target": "com.amazonaws.s3#S3TablesArn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) for the journal table.\n

" + } + }, + "RecordExpiration": { + "target": "com.amazonaws.s3#RecordExpiration", + "traits": { + "smithy.api#documentation": "

\n The journal table record expiration settings for the journal table.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The journal table configuration for the S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#JournalTableConfigurationUpdates": { + "type": "structure", + "members": { + "RecordExpiration": { + "target": "com.amazonaws.s3#RecordExpiration", + "traits": { + "smithy.api#documentation": "

\n The journal table record expiration settings for the journal table.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The specified updates to the S3 Metadata journal table configuration.\n

" + } + }, + "com.amazonaws.s3#KMSContext": { + "type": "string" + }, + "com.amazonaws.s3#KeyCount": { + "type": "integer" + }, + "com.amazonaws.s3#KeyMarker": { + "type": "string" + }, + "com.amazonaws.s3#KeyPrefixEquals": { + "type": "string" + }, + "com.amazonaws.s3#KmsKeyArn": { + "type": "string" + }, + "com.amazonaws.s3#LambdaFunctionArn": { + "type": "string" + }, + "com.amazonaws.s3#LambdaFunctionConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#NotificationId" + }, + "LambdaFunctionArn": { + "target": "com.amazonaws.s3#LambdaFunctionArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function that Amazon S3 invokes when the specified event\n type occurs.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "CloudFunction" + } + }, + "Events": { + "target": "com.amazonaws.s3#EventList", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket event for which to invoke the Lambda function. For more information, see Supported Event Types in\n the Amazon S3 User Guide.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Event" + } + }, + "Filter": { + "target": "com.amazonaws.s3#NotificationConfigurationFilter" + } + }, + "traits": { + "smithy.api#documentation": "

A container for specifying the configuration for Lambda notifications.

" + } + }, + "com.amazonaws.s3#LambdaFunctionConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#LambdaFunctionConfiguration" + } + }, + "com.amazonaws.s3#LastModified": { + "type": "timestamp" + }, + "com.amazonaws.s3#LastModifiedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#LifecycleExpiration": { + "type": "structure", + "members": { + "Date": { + "target": "com.amazonaws.s3#Date", + "traits": { + "smithy.api#documentation": "

Indicates at what date the object is to be moved or deleted. The date value must conform to the ISO\n 8601 format. The time is always midnight UTC.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + }, + "Days": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a\n non-zero positive integer.

" + } + }, + "ExpiredObjectDeleteMarker": { + "target": "com.amazonaws.s3#ExpiredObjectDeleteMarker", + "traits": { + "smithy.api#documentation": "

Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the\n delete marker will be expired; if set to false the policy takes no action. This cannot be specified with\n Days or Date in a Lifecycle Expiration Policy.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the expiration for the lifecycle of the object.

\n

For more information see, Managing your storage lifecycle in\n the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#LifecycleRule": { + "type": "structure", + "members": { + "Expiration": { + "target": "com.amazonaws.s3#LifecycleExpiration", + "traits": { + "smithy.api#documentation": "

Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the\n object has a delete marker.

" + } + }, + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

The general purpose bucket prefix that identifies one or more objects to which the rule applies. We recommend using Filter instead of Prefix for new PUTs. Previous configurations where a prefix is defined will continue to operate as before.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "Filter": { + "target": "com.amazonaws.s3#LifecycleRuleFilter", + "traits": { + "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter must have exactly one of Prefix, Tag,\n ObjectSizeGreaterThan, ObjectSizeLessThan, or And specified.\n Filter is required if the LifecycleRule does not contain a\n Prefix element.

\n

For more information about Tag filters, see Adding filters to Lifecycle rules\n in the Amazon S3 User Guide.

\n \n

\n Tag filters are not supported for directory buckets.

\n
" + } + }, + "Status": { + "target": "com.amazonaws.s3#ExpirationStatus", + "traits": { + "smithy.api#documentation": "

If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being\n applied.

", + "smithy.api#required": {} + } + }, + "Transitions": { + "target": "com.amazonaws.s3#TransitionList", + "traits": { + "smithy.api#documentation": "

Specifies when an Amazon S3 object transitions to a specified storage class.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Transition" + } + }, + "NoncurrentVersionTransitions": { + "target": "com.amazonaws.s3#NoncurrentVersionTransitionList", + "traits": { + "smithy.api#documentation": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent objects\n transition to a specific storage class. If your bucket is versioning-enabled (or versioning is\n suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a\n specific storage class at a set period in the object's lifetime.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "NoncurrentVersionTransition" + } + }, + "NoncurrentVersionExpiration": { + "target": "com.amazonaws.s3#NoncurrentVersionExpiration" + }, + "AbortIncompleteMultipartUpload": { + "target": "com.amazonaws.s3#AbortIncompleteMultipartUpload" + } + }, + "traits": { + "smithy.api#documentation": "

A lifecycle rule for individual objects in an Amazon S3 bucket.

\n

For more information see, Managing your storage lifecycle in\n the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#LifecycleRuleAndOperator": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Prefix identifying one or more objects to which the rule applies.

" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

All of these tags must exist in the object's tag set in order for the rule to apply.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tag" + } + }, + "ObjectSizeGreaterThan": { + "target": "com.amazonaws.s3#ObjectSizeGreaterThanBytes", + "traits": { + "smithy.api#documentation": "

Minimum object size to which the rule applies.

" + } + }, + "ObjectSizeLessThan": { + "target": "com.amazonaws.s3#ObjectSizeLessThanBytes", + "traits": { + "smithy.api#documentation": "

Maximum object size to which the rule applies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This is used in a Lifecycle Rule Filter to apply a logical AND to two or more predicates. The\n Lifecycle Rule will apply to any object matching all of the predicates configured inside the And\n operator.

" + } + }, + "com.amazonaws.s3#LifecycleRuleFilter": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Prefix identifying one or more objects to which the rule applies.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "Tag": { + "target": "com.amazonaws.s3#Tag", + "traits": { + "smithy.api#documentation": "

This tag must exist in the object's tag set in order for the rule to apply.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + }, + "ObjectSizeGreaterThan": { + "target": "com.amazonaws.s3#ObjectSizeGreaterThanBytes", + "traits": { + "smithy.api#documentation": "

Minimum object size to which the rule applies.

" + } + }, + "ObjectSizeLessThan": { + "target": "com.amazonaws.s3#ObjectSizeLessThanBytes", + "traits": { + "smithy.api#documentation": "

Maximum object size to which the rule applies.

" + } + }, + "And": { + "target": "com.amazonaws.s3#LifecycleRuleAndOperator" + } + }, + "traits": { + "smithy.api#documentation": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter can have exactly one of Prefix, Tag,\n ObjectSizeGreaterThan, ObjectSizeLessThan, or And specified. If\n the Filter element is left empty, the Lifecycle Rule applies to all objects in the\n bucket.

" + } + }, + "com.amazonaws.s3#LifecycleRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#LifecycleRule" + } + }, + "com.amazonaws.s3#ListBucketAnalyticsConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListBucketAnalyticsConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListBucketAnalyticsConfigurationsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations\n per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at a time. You\n should always check the IsTruncated element in the response. If there are no more\n configurations to list, IsTruncated is set to false. If there are more configurations to\n list, IsTruncated is set to true, and there will be a value in\n NextContinuationToken. You use the NextContinuationToken value to continue\n the pagination of the list by passing the value in continuation-token in the request to GET\n the next page.

\n

To use this operation, you must have permissions to perform the\n s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class\n Analysis.

\n

The following operations are related to ListBucketAnalyticsConfigurations:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?analytics&x-id=ListBucketAnalyticsConfigurations", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#ListBucketAnalyticsConfigurationsOutput": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of analytics configurations is complete. A value of true\n indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent\n request.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The marker that is used as a starting point for this analytics configuration list response. This\n value is present if it was sent in the request.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

\n NextContinuationToken is sent when isTruncated is true, which indicates\n that there are more analytics configurations to list. The next request must include this\n NextContinuationToken. The token is obfuscated and is not a usable value.

" + } + }, + "AnalyticsConfigurationList": { + "target": "com.amazonaws.s3#AnalyticsConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of analytics configurations for a bucket.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "AnalyticsConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListBucketAnalyticsConfigurationResult" + } + }, + "com.amazonaws.s3#ListBucketAnalyticsConfigurationsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket from which analytics configurations are retrieved.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The ContinuationToken that represents a placeholder from where this request should\n begin.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListBucketIntelligentTieringConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Lists the S3 Intelligent-Tiering configuration from the specified bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to ListBucketIntelligentTieringConfigurations include:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsOutput": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of analytics configurations is complete. A value of\n true indicates that the list is not complete and the NextContinuationToken\n will be provided for a subsequent request.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The ContinuationToken that represents a placeholder from where this request should\n begin.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

The marker used to continue this inventory configuration listing. Use the\n NextContinuationToken from this response to continue the listing in a subsequent request.\n The continuation token is an opaque value that Amazon S3 understands.

" + } + }, + "IntelligentTieringConfigurationList": { + "target": "com.amazonaws.s3#IntelligentTieringConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of S3 Intelligent-Tiering configurations for a bucket.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "IntelligentTieringConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#ListBucketIntelligentTieringConfigurationsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The ContinuationToken that represents a placeholder from where this request should\n begin.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListBucketInventoryConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListBucketInventoryConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListBucketInventoryConfigurationsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of S3 Inventory configurations for the bucket. You can have up to 1,000 inventory\n configurations per bucket.

\n

This action supports list pagination and does not return more than 100 configurations at a time.\n Always check the IsTruncated element in the response. If there are no more configurations\n to list, IsTruncated is set to false. If there are more configurations to list,\n IsTruncated is set to true, and there is a value in NextContinuationToken.\n You use the NextContinuationToken value to continue the pagination of the list by passing\n the value in continuation-token in the request to GET the next page.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n\t s3:GetInventoryConfiguration permission is required in a policy. For more information\n\t about general purpose buckets permissions, see Using Bucket Policies and User\n\t Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n\t this API operation, you must have the s3express:GetInventoryConfiguration permission in\n\t an IAM identity-based policy instead of a bucket policy.\n\t For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory\n

\n

The following operations are related to ListBucketInventoryConfigurations:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?inventory&x-id=ListBucketInventoryConfigurations", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#ListBucketInventoryConfigurationsOutput": { + "type": "structure", + "members": { + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

If sent in the request, the marker that is used as a starting point for this inventory configuration\n list response.

" + } + }, + "InventoryConfigurationList": { + "target": "com.amazonaws.s3#InventoryConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of inventory configurations for a bucket.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "InventoryConfiguration" + } + }, + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Tells whether the returned list of inventory configurations is complete. A value of true indicates\n that the list is not complete and the NextContinuationToken is provided for a subsequent request.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

The marker used to continue this inventory configuration listing. Use the\n NextContinuationToken from this response to continue the listing in a subsequent request.\n The continuation token is an opaque value that Amazon S3 understands.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListInventoryConfigurationsResult" + } + }, + "com.amazonaws.s3#ListBucketInventoryConfigurationsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the inventory configurations to retrieve.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The marker used to continue an inventory configuration listing that has been truncated. Use the\n NextContinuationToken from a previously truncated list response to continue the listing.\n The continuation token is an opaque value that Amazon S3 understands.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListBucketMetricsConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListBucketMetricsConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListBucketMetricsConfigurationsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists the metrics configurations for the bucket. The metrics configurations are only for the request\n metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000\n configurations per bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n

This action supports list pagination and does not return more than 100 configurations at a time.\n Always check the IsTruncated element in the response. If there are no more configurations\n to list, IsTruncated is set to false. If there are more configurations to list,\n IsTruncated is set to true, and there is a value in NextContinuationToken.\n You use the NextContinuationToken value to continue the pagination of the list by passing\n the value in continuation-token in the request to GET the next page.

\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:GetMetricsConfiguration permission is required in a policy. For more information\n about general purpose buckets permissions, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:GetMetricsConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For more information about metrics configurations and CloudWatch request metrics, see Monitoring Metrics with\n Amazon CloudWatch.

\n

The following operations are related to ListBucketMetricsConfigurations:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?metrics&x-id=ListBucketMetricsConfigurations", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#ListBucketMetricsConfigurationsOutput": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of metrics configurations is complete. A value of true indicates\n that the list is not complete and the NextContinuationToken will be provided for a subsequent\n request.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The marker that is used as a starting point for this metrics configuration list response. This value\n is present if it was sent in the request.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

The marker used to continue a metrics configuration listing that has been truncated. Use the\n NextContinuationToken from a previously truncated list response to continue the listing.\n The continuation token is an opaque value that Amazon S3 understands.

" + } + }, + "MetricsConfigurationList": { + "target": "com.amazonaws.s3#MetricsConfigurationList", + "traits": { + "smithy.api#documentation": "

The list of metrics configurations for a bucket.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "MetricsConfiguration" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListMetricsConfigurationsResult" + } + }, + "com.amazonaws.s3#ListBucketMetricsConfigurationsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the metrics configurations to retrieve.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The marker that is used to continue a metrics configuration listing that has been truncated. Use the\n NextContinuationToken from a previously truncated list response to continue the listing.\n The continuation token is an opaque value that Amazon S3 understands.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListBuckets": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListBucketsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListBucketsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns a list of all buckets owned by the authenticated sender of the request. To grant IAM\n permission to use this operation, you must add the s3:ListAllMyBuckets policy action.

\n

For information about Amazon S3 buckets, see Creating, configuring, and working with Amazon S3\n buckets.

\n \n

We strongly recommend using only paginated ListBuckets requests. Unpaginated\n ListBuckets requests are only supported for Amazon Web Services accounts set to the default general\n purpose bucket quota of 10,000. If you have an approved general purpose bucket quota above 10,000, you\n must send paginated ListBuckets requests to list your account’s buckets. All unpaginated\n ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket\n quota greater than 10,000.

\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To list all buckets", + "documentation": "The following example returns all the buckets owned by the sender of this request.", + "output": { + "Owner": { + "DisplayName": "own-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31" + }, + "Buckets": [ + { + "CreationDate": "2012-02-15T21:03:02.000Z", + "Name": "examplebucket" + }, + { + "CreationDate": "2011-07-24T19:33:50.000Z", + "Name": "examplebucket2" + }, + { + "CreationDate": "2010-12-17T00:56:49.000Z", + "Name": "examplebucket3" + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/?x-id=ListBuckets", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "ContinuationToken", + "outputToken": "ContinuationToken", + "items": "Buckets", + "pageSize": "MaxBuckets" + } + } + }, + "com.amazonaws.s3#ListBucketsOutput": { + "type": "structure", + "members": { + "Buckets": { + "target": "com.amazonaws.s3#Buckets", + "traits": { + "smithy.api#documentation": "

The list of buckets owned by the requester.

" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

The owner of the buckets listed.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

\n ContinuationToken is included in the response when there are more buckets that can be\n listed with pagination. The next ListBuckets request to Amazon S3 can be continued with this\n ContinuationToken. ContinuationToken is obfuscated and is not a real\n bucket.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

If Prefix was sent with the request, it is included in the response.

\n

All bucket names in the response begin with the specified bucket name prefix.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListAllMyBucketsResult" + } + }, + "com.amazonaws.s3#ListBucketsRequest": { + "type": "structure", + "members": { + "MaxBuckets": { + "target": "com.amazonaws.s3#MaxBuckets", + "traits": { + "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the count of\n buckets that are owned by an Amazon Web Services account, return all the buckets in response.

", + "smithy.api#httpQuery": "max-buckets" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket\n with a token. ContinuationToken is obfuscated and is not a real key. You can use this\n ContinuationToken for pagination of the list results.

\n

Length Constraints: Minimum length of 0. Maximum length of 1024.

\n

Required: No.

\n \n

If you specify the bucket-region, prefix, or\n continuation-token query parameters without using max-buckets to set the\n maximum number of buckets returned in the response, Amazon S3 applies a default page size of 10,000 and\n provides a continuation token if there are more buckets.

\n
", + "smithy.api#httpQuery": "continuation-token" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Limits the response to bucket names that begin with the specified bucket name prefix.

", + "smithy.api#httpQuery": "prefix" + } + }, + "BucketRegion": { + "target": "com.amazonaws.s3#BucketRegion", + "traits": { + "smithy.api#documentation": "

Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services Region must\n be expressed according to the Amazon Web Services Region code, such as us-west-2 for the US West (Oregon)\n Region. For a list of the valid values for all of the Amazon Web Services Regions, see Regions and Endpoints.

\n \n

Requests made to a Regional endpoint that is different from the bucket-region\n parameter are not supported. For example, if you want to limit the response to your buckets in Region\n us-west-2, the request must be made to an endpoint in Region\n us-west-2.

\n
", + "smithy.api#httpQuery": "bucket-region" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListDirectoryBuckets": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListDirectoryBucketsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListDirectoryBucketsOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the request. For\n more information about directory buckets, see Directory buckets in the\n Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You must have the s3express:ListAllMyDirectoryBuckets permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is\n s3express-control.region.amazonaws.com.

\n
\n
\n \n

The BucketRegion response element is not part of the\n ListDirectoryBuckets Response Syntax.

\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "GET", + "uri": "/?x-id=ListDirectoryBuckets", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "ContinuationToken", + "outputToken": "ContinuationToken", + "items": "Buckets", + "pageSize": "MaxDirectoryBuckets" + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#ListDirectoryBucketsOutput": { + "type": "structure", + "members": { + "Buckets": { + "target": "com.amazonaws.s3#Buckets", + "traits": { + "smithy.api#documentation": "

The list of buckets owned by the requester.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#DirectoryBucketToken", + "traits": { + "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the response. You can\n use the returned ContinuationToken for pagination of the list response.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListAllMyDirectoryBucketsResult" + } + }, + "com.amazonaws.s3#ListDirectoryBucketsRequest": { + "type": "structure", + "members": { + "ContinuationToken": { + "target": "com.amazonaws.s3#DirectoryBucketToken", + "traits": { + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on buckets in this\n account with a token. ContinuationToken is obfuscated and is not a real bucket name. You\n can use this ContinuationToken for the pagination of the list results.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "MaxDirectoryBuckets": { + "target": "com.amazonaws.s3#MaxDirectoryBuckets", + "traits": { + "smithy.api#documentation": "

Maximum number of buckets to be returned in response. When the number is more than the count of\n buckets that are owned by an Amazon Web Services account, return all the buckets in response.

", + "smithy.api#httpQuery": "max-directory-buckets" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListMultipartUploads": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListMultipartUploadsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListMultipartUploadsOutput" + }, + "traits": { + "smithy.api#documentation": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a\n multipart upload that has been initiated by the CreateMultipartUpload request, but has not\n yet been completed or aborted.

\n \n

\n Directory buckets - If multipart uploads in a\n directory bucket are in progress, you can't delete the bucket until all the in-progress multipart\n uploads are aborted or completed. To delete these in-progress multipart uploads, use the\n ListMultipartUploads operation to list the in-progress multipart uploads in the bucket\n and use the AbortMultipartUpload operation to abort all the in-progress multipart\n uploads.

\n
\n

The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads in the\n response. The limit of 1,000 multipart uploads is also the default value. You can further limit the\n number of uploads in a response by specifying the max-uploads request parameter. If there\n are more than 1,000 multipart uploads that satisfy your ListMultipartUploads request, the\n response returns an IsTruncated element with the value of true, a\n NextKeyMarker element, and a NextUploadIdMarker element. To list the\n remaining multipart uploads, you need to make subsequent ListMultipartUploads requests. In\n these requests, include two query parameters: key-marker and upload-id-marker.\n Set the value of key-marker to the NextKeyMarker value from the previous\n response. Similarly, set the value of upload-id-marker to the\n NextUploadIdMarker value from the previous response.

\n \n

\n Directory buckets - The upload-id-marker\n element and the NextUploadIdMarker element aren't supported by directory buckets. To\n list the additional multipart uploads, you only need to set the value of key-marker to\n the NextKeyMarker value from the previous response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart Upload in\n the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information\n about permissions required to use the multipart upload API, see Multipart Upload and Permissions in\n the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting of multipart uploads in response
\n
\n
    \n
  • \n

    \n General purpose bucket - In the\n ListMultipartUploads response, the multipart uploads are sorted based on two\n criteria:

    \n
      \n
    • \n

      Key-based sorting - Multipart uploads are initially sorted in ascending order\n based on their object keys.

      \n
    • \n
    • \n

      Time-based sorting - For uploads that share the same object key, they are\n further sorted in ascending order based on the upload initiation time. Among uploads with\n the same key, the one that was initiated first will appear before the ones that were\n initiated later.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket - In the\n ListMultipartUploads response, the multipart uploads aren't sorted\n lexicographically based on the object keys.\n \n

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to ListMultipartUploads:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "List next set of multipart uploads when previous result is truncated", + "documentation": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", + "input": { + "Bucket": "examplebucket", + "KeyMarker": "nextkeyfrompreviousresponse", + "MaxUploads": 2, + "UploadIdMarker": "valuefrompreviousresponse" + }, + "output": { + "UploadIdMarker": "", + "NextKeyMarker": "someobjectkey", + "Bucket": "acl1", + "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "Uploads": [ + { + "Initiator": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:40:58.000Z", + "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "mohanataws", + "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + }, + { + "Initiator": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:41:27.000Z", + "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + } + ], + "KeyMarker": "", + "MaxUploads": 2, + "IsTruncated": true + } + }, + { + "title": "To list in-progress multipart uploads on a bucket", + "documentation": "The following example lists in-progress multipart uploads on a specific bucket.", + "input": { + "Bucket": "examplebucket" + }, + "output": { + "Uploads": [ + { + "Initiator": { + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:40:58.000Z", + "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + }, + { + "Initiator": { + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:41:27.000Z", + "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?uploads", + "code": 200 + } + } + }, + "com.amazonaws.s3#ListMultipartUploadsOutput": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or\n access point alias if used.

" + } + }, + "KeyMarker": { + "target": "com.amazonaws.s3#KeyMarker", + "traits": { + "smithy.api#documentation": "

The key at or after which the listing began.

" + } + }, + "UploadIdMarker": { + "target": "com.amazonaws.s3#UploadIdMarker", + "traits": { + "smithy.api#documentation": "

Together with key-marker, specifies the multipart upload after which listing should begin. If\n key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads\n for a key equal to the key-marker might be included in the list only if they have an upload ID\n lexicographically greater than the specified upload-id-marker.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "NextKeyMarker": { + "target": "com.amazonaws.s3#NextKeyMarker", + "traits": { + "smithy.api#documentation": "

When a list is truncated, this element specifies the value that should be used for the key-marker\n request parameter in a subsequent request.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

When a prefix is provided in the request, this field contains the specified prefix. The result\n contains only keys starting with the specified prefix.

\n \n

\n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

\n
" + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

Contains the delimiter you specified in the request. If you don't specify a delimiter in your\n request, this element is absent from the response.

\n \n

\n Directory buckets - For directory buckets, / is the only supported delimiter.

\n
" + } + }, + "NextUploadIdMarker": { + "target": "com.amazonaws.s3#NextUploadIdMarker", + "traits": { + "smithy.api#documentation": "

When a list is truncated, this element specifies the value that should be used for the\n upload-id-marker request parameter in a subsequent request.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "MaxUploads": { + "target": "com.amazonaws.s3#MaxUploads", + "traits": { + "smithy.api#documentation": "

Maximum number of multipart uploads that could have been included in the response.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of multipart uploads is truncated. A value of true indicates\n that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the\n limit allowed or specified by max uploads.

" + } + }, + "Uploads": { + "target": "com.amazonaws.s3#MultipartUploadList", + "traits": { + "smithy.api#documentation": "

Container for elements related to a particular multipart upload. A response can contain zero or more\n Upload elements.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Upload" + } + }, + "CommonPrefixes": { + "target": "com.amazonaws.s3#CommonPrefixList", + "traits": { + "smithy.api#documentation": "

If you specify a delimiter in the request, then the result returns each distinct key prefix\n containing the delimiter in a CommonPrefixes element. The distinct key prefixes are\n returned in the Prefix child element.

\n \n

\n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

\n
", + "smithy.api#xmlFlattened": {} + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode object keys in the response.

\n

If you specify the encoding-type request parameter, Amazon S3 includes this element in the\n response, and returns encoded key name values in the following response elements:

\n

\n Delimiter, KeyMarker, Prefix, NextKeyMarker,\n Key.

" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListMultipartUploadsResult" + } + }, + "com.amazonaws.s3#ListMultipartUploadsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

Character you use to group keys.

\n

All keys that contain the same string between the prefix, if specified, and the first occurrence of\n the delimiter after the prefix are grouped under a single result element, CommonPrefixes.\n If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The\n keys that are grouped under CommonPrefixes result element are not returned elsewhere in the\n response.

\n

\n CommonPrefixes is filtered out from results if it is not lexicographically greater than\n the key-marker.

\n \n

\n Directory buckets - For directory buckets, / is the only supported delimiter.

\n
", + "smithy.api#httpQuery": "delimiter" + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#httpQuery": "encoding-type" + } + }, + "KeyMarker": { + "target": "com.amazonaws.s3#KeyMarker", + "traits": { + "smithy.api#documentation": "

Specifies the multipart upload after which listing should begin.

\n \n
    \n
  • \n

    \n General purpose buckets - For general purpose buckets,\n key-marker is an object key. Together with upload-id-marker, this\n parameter specifies the multipart upload after which listing should begin.

    \n

    If upload-id-marker is not specified, only the keys lexicographically greater\n than the specified key-marker will be included in the list.

    \n

    If upload-id-marker is specified, any multipart uploads for a key equal to the\n key-marker might also be included, provided those multipart uploads have upload IDs\n lexicographically greater than the specified upload-id-marker.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets,\n key-marker is obfuscated and isn't a real object key. The\n upload-id-marker parameter isn't supported by directory buckets. To list the\n additional multipart uploads, you only need to set the value of key-marker to the\n NextKeyMarker value from the previous response.

    \n

    In the ListMultipartUploads response, the multipart uploads aren't sorted\n lexicographically based on the object keys.\n \n

    \n
  • \n
\n
", + "smithy.api#httpQuery": "key-marker" + } + }, + "MaxUploads": { + "target": "com.amazonaws.s3#MaxUploads", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of multipart uploads, from 1 to 1,000, to return in the response body. 1,000\n is the maximum number of uploads that can be returned in a response.

", + "smithy.api#httpQuery": "max-uploads" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Lists in-progress uploads only for those keys that begin with the specified prefix. You can use\n prefixes to separate a bucket into different grouping of keys. (You can think of using\n prefix to make groups in the same way that you'd use a folder in a file system.)

\n \n

\n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

\n
", + "smithy.api#httpQuery": "prefix", + "smithy.rules#contextParam": { + "name": "Prefix" + } + } + }, + "UploadIdMarker": { + "target": "com.amazonaws.s3#UploadIdMarker", + "traits": { + "smithy.api#documentation": "

Together with key-marker, specifies the multipart upload after which listing should begin. If\n key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads\n for a key equal to the key-marker might be included in the list only if they have an upload ID\n lexicographically greater than the specified upload-id-marker.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpQuery": "upload-id-marker" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListObjectAnnotations": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListObjectAnnotationsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListObjectAnnotationsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#InvalidPrefix" + }, + { + "target": "com.amazonaws.s3#NoSuchBucket" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the annotations attached to an Amazon S3 object. Results are paginated, with a maximum of\n 1,000 annotations per object. Use the AnnotationPrefix parameter to filter the\n results by name prefix.

\n

To use this operation, you must have the s3:ListObjectAnnotations permission.

\n \n

Annotations are not supported by the following features: S3 Inventory Reports,\n API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon FSx, S3 on Outposts, and\n S3 Express One Zone (directory buckets).

\n
\n

The following operations are related to ListObjectAnnotations:

\n ", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?annotation&x-id=ListObjectAnnotations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "ContinuationToken", + "outputToken": "NextContinuationToken", + "items": "Annotations", + "pageSize": "MaxAnnotationResults" + } + } + }, + "com.amazonaws.s3#ListObjectAnnotationsOutput": { + "type": "structure", + "members": { + "Annotations": { + "target": "com.amazonaws.s3#AnnotationList", + "traits": { + "smithy.api#documentation": "

The list of annotations attached to the object.

" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

" + } + }, + "ObjectVersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object.

", + "smithy.api#httpHeader": "x-amz-object-version-id" + } + }, + "AnnotationPrefix": { + "target": "com.amazonaws.s3#AnnotationPrefix", + "traits": { + "smithy.api#documentation": "

The prefix used to filter the response.

" + } + }, + "MaxAnnotationResults": { + "target": "com.amazonaws.s3#MaxAnnotationResults", + "traits": { + "smithy.api#documentation": "

The maximum number of annotations returned in the response.

" + } + }, + "AnnotationCount": { + "target": "com.amazonaws.s3#AnnotationCount", + "traits": { + "smithy.api#documentation": "

The number of annotations returned.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

The continuation token used in this request.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

The continuation token to use to retrieve the next page of results.

" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#ListObjectAnnotationsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object.

", + "smithy.api#httpQuery": "versionId" + } + }, + "MaxAnnotationResults": { + "target": "com.amazonaws.s3#MaxAnnotationResults", + "traits": { + "smithy.api#documentation": "

The maximum number of annotations to return in the response. Maximum is 1,000.

", + "smithy.api#httpQuery": "max-annotation-results" + } + }, + "AnnotationPrefix": { + "target": "com.amazonaws.s3#AnnotationPrefix", + "traits": { + "smithy.api#documentation": "

Filter results to annotations whose name begins with the specified prefix.

", + "smithy.api#httpQuery": "annotation-prefix" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

Continuation token returned by a previous request to retrieve the next page.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListObjectVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListObjectVersionsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListObjectVersionsOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns metadata about all versions of the objects in a bucket. You can also use request parameters\n as selection criteria to return metadata about a subset of all the object versions.

\n \n

To use this operation, you must have permission to perform the s3:ListBucketVersions\n action. Be aware of the name difference.

\n
\n \n

A 200 OK response can contain valid or invalid XML. Make sure to design your\n application to parse the contents of the response and handle it appropriately.

\n
\n

To use this operation, you must have READ access to the bucket.

\n

The following operations are related to ListObjectVersions:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To list object versions", + "documentation": "The following example returns versions of an object with specific key name prefix.", + "input": { + "Bucket": "examplebucket", + "Prefix": "HappyFace.jpg" + }, + "output": { + "Versions": [ + { + "LastModified": "2016-12-15T01:19:41.000Z", + "VersionId": "null", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "StorageClass": "STANDARD", + "Key": "HappyFace.jpg", + "Owner": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "IsLatest": true, + "Size": 3191 + }, + { + "LastModified": "2016-12-13T00:58:26.000Z", + "VersionId": "PHtexPGjH2y.zBgT8LmB7wwLI2mpbz.k", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "StorageClass": "STANDARD", + "Key": "HappyFace.jpg", + "Owner": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "IsLatest": false, + "Size": 3191 + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?versions", + "code": 200 + } + } + }, + "com.amazonaws.s3#ListObjectVersionsOutput": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether Amazon S3 returned all of the results that satisfied the search criteria.\n If your results were truncated, you can make a follow-up paginated request by using the\n NextKeyMarker and NextVersionIdMarker response parameters as a starting\n place in another request to return the rest of the results.

" + } + }, + "KeyMarker": { + "target": "com.amazonaws.s3#KeyMarker", + "traits": { + "smithy.api#documentation": "

Marks the last key returned in a truncated response.

" + } + }, + "VersionIdMarker": { + "target": "com.amazonaws.s3#VersionIdMarker", + "traits": { + "smithy.api#documentation": "

Marks the last version of the key returned in a truncated response.

" + } + }, + "NextKeyMarker": { + "target": "com.amazonaws.s3#NextKeyMarker", + "traits": { + "smithy.api#documentation": "

When the number of responses exceeds the value of MaxKeys, NextKeyMarker\n specifies the first key not returned that satisfies the search criteria. Use this value for the\n key-marker request parameter in a subsequent request.

" + } + }, + "NextVersionIdMarker": { + "target": "com.amazonaws.s3#NextVersionIdMarker", + "traits": { + "smithy.api#documentation": "

When the number of responses exceeds the value of MaxKeys,\n NextVersionIdMarker specifies the first object version not returned that satisfies the\n search criteria. Use this value for the version-id-marker request parameter in a subsequent\n request.

" + } + }, + "Versions": { + "target": "com.amazonaws.s3#ObjectVersionList", + "traits": { + "smithy.api#documentation": "

Container for version information.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Version" + } + }, + "DeleteMarkers": { + "target": "com.amazonaws.s3#DeleteMarkers", + "traits": { + "smithy.api#documentation": "

Container for an object that is a delete marker. To learn more about delete markers, see Working with delete\n markers.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "DeleteMarker" + } + }, + "Name": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Selects objects that start with the value supplied by this parameter.

" + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

The delimiter grouping the included keys. A delimiter is a character that you specify to group keys.\n All keys that contain the same string between the prefix and the first occurrence of the delimiter are\n grouped under a single result element in CommonPrefixes. These groups are counted as one\n result against the max-keys limitation. These keys are not returned elsewhere in the\n response.

" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

Specifies the maximum number of objects to return.

" + } + }, + "CommonPrefixes": { + "target": "com.amazonaws.s3#CommonPrefixList", + "traits": { + "smithy.api#documentation": "

All of the keys rolled up into a common prefix count as a single return when calculating the number\n of returns.

", + "smithy.api#xmlFlattened": {} + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode object key names in the XML response.

\n

If you specify the encoding-type request parameter, Amazon S3 includes this element in the\n response, and returns encoded key name values in the following response elements:

\n

\n KeyMarker, NextKeyMarker, Prefix, Key, and Delimiter.

" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListVersionsResult" + } + }, + "com.amazonaws.s3#ListObjectVersionsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name that contains the objects.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

A delimiter is a character that you specify to group keys. All keys that contain the same string\n between the prefix and the first occurrence of the delimiter are grouped under a single\n result element in CommonPrefixes. These groups are counted as one result against the\n max-keys limitation. These keys are not returned elsewhere in the response.

\n

\n CommonPrefixes is filtered out from results if it is not lexicographically greater than\n the key-marker.

", + "smithy.api#httpQuery": "delimiter" + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#httpQuery": "encoding-type" + } + }, + "KeyMarker": { + "target": "com.amazonaws.s3#KeyMarker", + "traits": { + "smithy.api#documentation": "

Specifies the key to start with when listing objects in a bucket.

", + "smithy.api#httpQuery": "key-marker" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of keys returned in the response. By default, the action returns up to 1,000\n key names. The response might contain fewer keys but will never contain more. If additional keys satisfy\n the search criteria, but were not returned because max-keys was exceeded, the response\n contains true. To return the additional keys, see\n key-marker and version-id-marker.

", + "smithy.api#httpQuery": "max-keys" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Use this parameter to select only those keys that begin with the specified prefix. You can use\n prefixes to separate a bucket into different groupings of keys. (You can think of using\n prefix to make groups in the same way that you'd use a folder in a file system.) You can\n use prefix with delimiter to roll up numerous objects into a single result\n under CommonPrefixes.

", + "smithy.api#httpQuery": "prefix", + "smithy.rules#contextParam": { + "name": "Prefix" + } + } + }, + "VersionIdMarker": { + "target": "com.amazonaws.s3#VersionIdMarker", + "traits": { + "smithy.api#documentation": "

Specifies the object version you want to start listing from.

", + "smithy.api#httpQuery": "version-id-marker" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "OptionalObjectAttributes": { + "target": "com.amazonaws.s3#OptionalObjectAttributesList", + "traits": { + "smithy.api#documentation": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify\n are not returned.

", + "smithy.api#httpHeader": "x-amz-optional-object-attributes" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListObjects": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListObjectsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListObjectsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchBucket" + } + ], + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as\n selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or\n invalid XML. Be sure to design your application to parse the contents of the response and handle it\n appropriately.

\n \n

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when\n developing applications. For backward compatibility, Amazon S3 continues to support\n ListObjects.

\n
\n

The following operations are related to ListObjects:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To list objects in a bucket", + "documentation": "The following example list two objects in a bucket.", + "input": { + "Bucket": "examplebucket", + "MaxKeys": 2 + }, + "output": { + "NextMarker": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==", + "Contents": [ + { + "LastModified": "2014-11-21T19:40:05.000Z", + "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + "StorageClass": "STANDARD", + "Key": "example1.jpg", + "Owner": { + "DisplayName": "myname", + "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Size": 11 + }, + { + "LastModified": "2013-11-15T01:10:49.000Z", + "ETag": "\"9c8af9a76df052144598c115ef33e511\"", + "StorageClass": "STANDARD", + "Key": "example2.jpg", + "Owner": { + "DisplayName": "myname", + "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Size": 713193 + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}", + "code": 200 + } + } + }, + "com.amazonaws.s3#ListObjectsOutput": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether Amazon S3 returned all of the results that satisfied the search\n criteria.

" + } + }, + "Marker": { + "target": "com.amazonaws.s3#Marker", + "traits": { + "smithy.api#documentation": "

Indicates where in the bucket listing begins. Marker is included in the response if it was sent with\n the request.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.s3#NextMarker", + "traits": { + "smithy.api#documentation": "

When the response is truncated (the IsTruncated element value in the response is\n true), you can use the key name in this field as the marker parameter in the\n subsequent request to get the next set of objects. Amazon S3 lists objects in alphabetical order.

\n \n

This element is returned only if you have the delimiter request parameter specified.\n If the response does not include the NextMarker element and it is truncated, you can use\n the value of the last Key element in the response as the marker parameter in\n the subsequent request to get the next set of object keys.

\n
" + } + }, + "Contents": { + "target": "com.amazonaws.s3#ObjectList", + "traits": { + "smithy.api#documentation": "

Metadata about each object returned.

", + "smithy.api#xmlFlattened": {} + } + }, + "Name": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Keys that begin with the indicated prefix.

" + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

Causes keys that contain the same string between the prefix and the first occurrence of the\n delimiter to be rolled up into a single result element in the CommonPrefixes collection.\n These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only\n one return against the MaxKeys value.

" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

The maximum number of keys returned in the response body.

" + } + }, + "CommonPrefixes": { + "target": "com.amazonaws.s3#CommonPrefixList", + "traits": { + "smithy.api#documentation": "

All of the keys (up to 1,000) rolled up in a common prefix count as a single return when calculating\n the number of returns.

\n

A response can contain CommonPrefixes only if you specify a delimiter.

\n

\n CommonPrefixes contains all (if there are any) keys between Prefix and the\n next occurrence of the string specified by the delimiter.

\n

\n CommonPrefixes lists keys that act like subdirectories in the directory specified by\n Prefix.

\n

For example, if the prefix is notes/ and the delimiter is a slash (/), as\n in notes/summer/july, the common prefix is notes/summer/. All of the keys that\n roll up into a common prefix count as a single return when calculating the number of returns.

", + "smithy.api#xmlFlattened": {} + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response. Responses are\n encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser\n can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that\n aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the\n response. For more information about characters to avoid in object key names, see Object key\n naming guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's key name will\n be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as test_file%283%29.png.

\n
" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListBucketResult" + } + }, + "com.amazonaws.s3#ListObjectsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket containing the objects.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

A delimiter is a character that you use to group keys.

\n

\n CommonPrefixes is filtered out from results if it is not lexicographically greater than\n the key-marker.

", + "smithy.api#httpQuery": "delimiter" + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#httpQuery": "encoding-type" + } + }, + "Marker": { + "target": "com.amazonaws.s3#Marker", + "traits": { + "smithy.api#documentation": "

Marker is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified\n key. Marker can be any key in the bucket.

", + "smithy.api#httpQuery": "marker" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of keys returned in the response. By default, the action returns up to 1,000\n key names. The response might contain fewer keys but will never contain more.

", + "smithy.api#httpQuery": "max-keys" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Limits the response to keys that begin with the specified prefix.

", + "smithy.api#httpQuery": "prefix", + "smithy.rules#contextParam": { + "name": "Prefix" + } + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#documentation": "

Confirms that the requester knows that she or he will be charged for the list objects request.\n Bucket owners need not specify this parameter in their requests.

", + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "OptionalObjectAttributes": { + "target": "com.amazonaws.s3#OptionalObjectAttributesList", + "traits": { + "smithy.api#documentation": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify\n are not returned.

", + "smithy.api#httpHeader": "x-amz-optional-object-attributes" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListObjectsV2": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListObjectsV2Request" + }, + "output": { + "target": "com.amazonaws.s3#ListObjectsV2Output" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchBucket" + } + ], + "traits": { + "smithy.api#documentation": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the\n request parameters as selection criteria to return a subset of the objects in a bucket. A 200\n OK response can contain valid or invalid XML. Make sure to design your application to parse the\n contents of the response and handle it appropriately. For more information about listing objects, see\n Listing object\n keys programmatically in the Amazon S3 User Guide. To get a list of your\n buckets, see ListBuckets.

\n \n
    \n
  • \n

    \n General purpose bucket - For general purpose buckets,\n ListObjectsV2 doesn't return prefixes that are related only to in-progress\n multipart uploads.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets,\n ListObjectsV2 response includes the prefixes that are related only to in-progress\n multipart uploads.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To use this\n operation, you must have READ access to the bucket. You must have permission to perform the\n s3:ListBucket action. The bucket owner has this permission by default and can\n grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access\n Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting order of returned objects
\n
\n
    \n
  • \n

    \n General purpose bucket - For general purpose buckets,\n ListObjectsV2 returns objects in lexicographical order based on their key\n names.

    \n
  • \n
  • \n

    \n Directory bucket - For directory buckets,\n ListObjectsV2 does not return objects in lexicographical order.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n \n

This section describes the latest revision of this action. We recommend that you use this revised\n API operation for application development. For backward compatibility, Amazon S3 continues to support the\n prior version of this API operation, ListObjects.

\n
\n

The following operations are related to ListObjectsV2:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To get object list", + "documentation": "The following example retrieves object list. The request specifies max keys to limit response to include only 2 object keys. ", + "input": { + "Bucket": "DOC-EXAMPLE-BUCKET", + "MaxKeys": 2 + }, + "output": { + "Name": "DOC-EXAMPLE-BUCKET", + "MaxKeys": 2, + "Prefix": "", + "KeyCount": 2, + "NextContinuationToken": "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==", + "IsTruncated": true, + "Contents": [ + { + "LastModified": "2014-11-21T19:40:05.000Z", + "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + "StorageClass": "STANDARD", + "Key": "happyface.jpg", + "Size": 11 + }, + { + "LastModified": "2014-05-02T04:51:50.000Z", + "ETag": "\"becf17f89c30367a9a44495d62ed521a-1\"", + "StorageClass": "STANDARD", + "Key": "test.jpg", + "Size": 4192256 + } + ] + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}?list-type=2", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "ContinuationToken", + "outputToken": "NextContinuationToken", + "pageSize": "MaxKeys" + } + } + }, + "com.amazonaws.s3#ListObjectsV2Output": { + "type": "structure", + "members": { + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Set to false if all of the results were returned. Set to true if more keys\n are available to return. If the number of results exceeds that specified by MaxKeys, all of\n the results might not be returned.

" + } + }, + "Contents": { + "target": "com.amazonaws.s3#ObjectList", + "traits": { + "smithy.api#documentation": "

Metadata about each object returned.

", + "smithy.api#xmlFlattened": {} + } + }, + "Name": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Keys that begin with the indicated prefix.

\n \n

\n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

\n
" + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

Causes keys that contain the same string between the prefix and the first occurrence of\n the delimiter to be rolled up into a single result element in the CommonPrefixes\n collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result\n counts as only one return against the MaxKeys value.

\n \n

\n Directory buckets - For directory buckets, / is the only supported delimiter.

\n
" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of keys returned in the response. By default, the action returns up to 1,000\n key names. The response might contain fewer keys but will never contain more.

" + } + }, + "CommonPrefixes": { + "target": "com.amazonaws.s3#CommonPrefixList", + "traits": { + "smithy.api#documentation": "

All of the keys (up to 1,000) that share the same prefix are grouped together. When counting the\n total numbers of returns by this API operation, this group of keys is considered as one item.

\n

A response can contain CommonPrefixes only if you specify a delimiter.

\n

\n CommonPrefixes contains all (if there are any) keys between Prefix and the\n next occurrence of the string specified by a delimiter.

\n

\n CommonPrefixes lists keys that act like subdirectories in the directory specified by\n Prefix.

\n

For example, if the prefix is notes/ and the delimiter is a slash (/) as\n in notes/summer/july, the common prefix is notes/summer/. All of the keys that\n roll up into a common prefix count as a single return when calculating the number of returns.

\n \n
    \n
  • \n

    \n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

    \n
  • \n
  • \n

    \n Directory buckets - When you query\n ListObjectsV2 with a delimiter during in-progress multipart uploads, the\n CommonPrefixes response parameter contains the prefixes that are associated with\n the in-progress multipart uploads. For more information about multipart uploads, see Multipart Upload\n Overview in the Amazon S3 User Guide.

    \n
  • \n
\n
", + "smithy.api#xmlFlattened": {} + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode object key names in the XML response.

\n

If you specify the encoding-type request parameter, Amazon S3 includes this element in the\n response, and returns encoded key name values in the following response elements:

\n

\n Delimiter, Prefix, Key, and StartAfter.

" + } + }, + "KeyCount": { + "target": "com.amazonaws.s3#KeyCount", + "traits": { + "smithy.api#documentation": "

\n KeyCount is the number of keys returned with this request. KeyCount will\n always be less than or equal to the MaxKeys field. For example, if you ask for 50 keys,\n your result will include 50 keys or fewer.

" + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

If ContinuationToken was sent with the request, it is included in the response. You\n can use the returned ContinuationToken for pagination of the list response.

" + } + }, + "NextContinuationToken": { + "target": "com.amazonaws.s3#NextToken", + "traits": { + "smithy.api#documentation": "

\n NextContinuationToken is sent when isTruncated is true, which means there\n are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with\n this NextContinuationToken. NextContinuationToken is obfuscated and is not a\n real key

" + } + }, + "StartAfter": { + "target": "com.amazonaws.s3#StartAfter", + "traits": { + "smithy.api#documentation": "

If StartAfter was sent with the request, it is included in the response.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListBucketResult" + } + }, + "com.amazonaws.s3#ListObjectsV2Request": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Delimiter": { + "target": "com.amazonaws.s3#Delimiter", + "traits": { + "smithy.api#documentation": "

A delimiter is a character that you use to group keys.

\n

\n CommonPrefixes is filtered out from results if it is not lexicographically greater than\n the StartAfter value.

\n \n
    \n
  • \n

    \n Directory buckets - For directory buckets, / is the only supported delimiter.

    \n
  • \n
  • \n

    \n Directory buckets - When you query\n ListObjectsV2 with a delimiter during in-progress multipart uploads, the\n CommonPrefixes response parameter contains the prefixes that are associated with\n the in-progress multipart uploads. For more information about multipart uploads, see Multipart Upload\n Overview in the Amazon S3 User Guide.

    \n
  • \n
\n
", + "smithy.api#httpQuery": "delimiter" + } + }, + "EncodingType": { + "target": "com.amazonaws.s3#EncodingType", + "traits": { + "smithy.api#documentation": "

Encoding type used by Amazon S3 to encode the object keys in the response. Responses are\n encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser\n can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that\n aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the\n response. For more information about characters to avoid in object key names, see Object key\n naming guidelines.

\n \n

When using the URL encoding type, non-ASCII characters that are used in an object's key name will\n be percent-encoded according to UTF-8 code values. For example, the object\n test_file(3).png will appear as test_file%283%29.png.

\n
", + "smithy.api#httpQuery": "encoding-type" + } + }, + "MaxKeys": { + "target": "com.amazonaws.s3#MaxKeys", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of keys returned in the response. By default, the action returns up to 1,000\n key names. The response might contain fewer keys but will never contain more.

", + "smithy.api#httpQuery": "max-keys" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

Limits the response to keys that begin with the specified prefix.

\n \n

\n Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

\n
", + "smithy.api#httpQuery": "prefix", + "smithy.rules#contextParam": { + "name": "Prefix" + } + } + }, + "ContinuationToken": { + "target": "com.amazonaws.s3#Token", + "traits": { + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket\n with a token. ContinuationToken is obfuscated and is not a real key. You can use this\n ContinuationToken for pagination of the list results.

", + "smithy.api#httpQuery": "continuation-token" + } + }, + "FetchOwner": { + "target": "com.amazonaws.s3#FetchOwner", + "traits": { + "smithy.api#documentation": "

The owner field is not present in ListObjectsV2 by default. If you want to return the\n owner field with each key in the result, then set the FetchOwner field to\n true.

\n \n

\n Directory buckets - For directory buckets, the bucket\n owner is returned as the object owner for all objects.

\n
", + "smithy.api#httpQuery": "fetch-owner" + } + }, + "StartAfter": { + "target": "com.amazonaws.s3#StartAfter", + "traits": { + "smithy.api#documentation": "

StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified\n key. StartAfter can be any key in the bucket.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpQuery": "start-after" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#documentation": "

Confirms that the requester knows that she or he will be charged for the list objects request in V2\n style. Bucket owners need not specify this parameter in their requests.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "OptionalObjectAttributes": { + "target": "com.amazonaws.s3#OptionalObjectAttributesList", + "traits": { + "smithy.api#documentation": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify\n are not returned.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-optional-object-attributes" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#ListParts": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#ListPartsRequest" + }, + "output": { + "target": "com.amazonaws.s3#ListPartsOutput" + }, + "traits": { + "smithy.api#documentation": "

Lists the parts that have been uploaded for a specific multipart upload.

\n

To use this operation, you must provide the upload ID in the request. You obtain this\n uploadID by sending the initiate multipart upload request through CreateMultipartUpload.

\n

The ListParts request returns a maximum of 1,000 uploaded parts. The limit of 1,000\n parts is also the default value. You can restrict the number of parts in a response by specifying the\n max-parts request parameter. If your multipart upload consists of more than 1,000 parts,\n the response returns an IsTruncated field with the value of true, and a\n NextPartNumberMarker element. To list remaining uploaded parts, in subsequent\n ListParts requests, include the part-number-marker query string parameter\n and set its value to the NextPartNumberMarker field value from the previous\n response.

\n

For more information on multipart uploads, see Uploading Objects Using Multipart Upload in\n the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information\n about permissions required to use the multipart upload API, see Multipart Upload and Permissions in\n the Amazon S3 User Guide.

    \n

    If the upload was created using server-side encryption with Key Management Service (KMS) keys\n (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have\n permission to the kms:Decrypt action for the ListParts request to\n succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to ListParts:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To list parts of a multipart upload.", + "documentation": "The following example lists parts uploaded for a specific multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "bigobject", + "UploadId": "example7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "Owner": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiator": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Parts": [ + { + "LastModified": "2016-12-16T00:11:42.000Z", + "PartNumber": 1, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + "Size": 26246026 + }, + { + "LastModified": "2016-12-16T00:15:01.000Z", + "PartNumber": 2, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + "Size": 26246026 + } + ], + "StorageClass": "STANDARD" + } + } + ], + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?x-id=ListParts", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "PartNumberMarker", + "outputToken": "NextPartNumberMarker", + "items": "Parts", + "pageSize": "MaxParts" + } + } + }, + "com.amazonaws.s3#ListPartsOutput": { + "type": "structure", + "members": { + "AbortDate": { + "target": "com.amazonaws.s3#AbortDate", + "traits": { + "smithy.api#documentation": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads\n and the prefix in the lifecycle rule matches the object name in the request, then the response includes\n this header indicating when the initiated multipart upload will become eligible for abort operation. For\n more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

\n

The response will also include the x-amz-abort-rule-id header that will provide the ID\n of the lifecycle configuration rule that defines this action.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-abort-date" + } + }, + "AbortRuleId": { + "target": "com.amazonaws.s3#AbortRuleId", + "traits": { + "smithy.api#documentation": "

This header is returned along with the x-amz-abort-date header. It identifies\n applicable lifecycle configuration rule that defines the action to abort incomplete multipart\n uploads.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-abort-rule-id" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or\n access point alias if used.

" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

" + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID identifying the multipart upload whose parts are being listed.

" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

Specifies the part after which listing should begin. Only parts with higher part numbers will be\n listed.

" + } + }, + "NextPartNumberMarker": { + "target": "com.amazonaws.s3#NextPartNumberMarker", + "traits": { + "smithy.api#documentation": "

When a list is truncated, this element specifies the last part in the list, as well as the value to\n use for the part-number-marker request parameter in a subsequent request.

" + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

Maximum number of parts that were allowed in the response.

" + } + }, + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

Indicates whether the returned list of parts is truncated. A true value indicates that the list was\n truncated. A list can be truncated if the number of parts exceeds the limit returned in the MaxParts\n element.

" + } + }, + "Parts": { + "target": "com.amazonaws.s3#Parts", + "traits": { + "smithy.api#documentation": "

Container for elements related to a particular part. A response can contain zero or more\n Part elements.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Part" + } + }, + "Initiator": { + "target": "com.amazonaws.s3#Initiator", + "traits": { + "smithy.api#documentation": "

Container element that identifies who initiated the multipart upload. If the initiator is an\n Amazon Web Services account, this element provides the same information as the Owner element. If the\n initiator is an IAM User, this element provides the user ARN.

" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Container element that identifies the object owner, after the object is created. If multipart upload\n is initiated by an IAM user, this element provides the parent account ID.

\n \n

\n Directory buckets - The bucket owner is returned as the\n object owner for all the parts.

\n
" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the uploaded object.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to create a checksum of the object.

" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type, which determines how part-level checksums are combined to create an object-level\n checksum for multipart objects. You can use this header response to verify that the checksum type that\n is received is the same checksum type that was specified in CreateMultipartUpload request.\n For more information, see Checking object integrity in the Amazon S3\n User Guide.

" + } + } + }, + "traits": { + "smithy.api#output": {}, + "smithy.api#xmlName": "ListPartsResult" + } + }, + "com.amazonaws.s3#ListPartsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the parts are being uploaded.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of parts to return.

", + "smithy.api#httpQuery": "max-parts" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

Specifies the part after which listing should begin. Only parts with higher part numbers will be\n listed.

", + "smithy.api#httpQuery": "part-number-marker" + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID identifying the multipart upload whose parts are being listed.

", + "smithy.api#httpQuery": "uploadId", + "smithy.api#required": {} + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created \n using a checksum algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#Location": { + "type": "string" + }, + "com.amazonaws.s3#LocationInfo": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.s3#LocationType", + "traits": { + "smithy.api#documentation": "

The type of location where the bucket will be created.

" + } + }, + "Name": { + "target": "com.amazonaws.s3#LocationNameAsString", + "traits": { + "smithy.api#documentation": "

The name of the location where the bucket will be created.

\n

For directory buckets, the name of the location is the Zone ID of the Availability Zone (AZ) or Local Zone (LZ) where\n the bucket will be created. An example AZ ID value is usw2-az1.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the location where the bucket will be created.

\n

For directory buckets, the location type is Availability Zone or Local Zone. For more information about\n directory buckets, see Working with\n directory buckets in the Amazon S3 User Guide.

\n \n

This functionality is only supported by directory buckets.

\n
" + } + }, + "com.amazonaws.s3#LocationNameAsString": { + "type": "string" + }, + "com.amazonaws.s3#LocationPrefix": { + "type": "string" + }, + "com.amazonaws.s3#LocationType": { + "type": "enum", + "members": { + "AvailabilityZone": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AvailabilityZone" + } + }, + "LocalZone": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LocalZone" + } + } + } + }, + "com.amazonaws.s3#LoggingEnabled": { + "type": "structure", + "members": { + "TargetBucket": { + "target": "com.amazonaws.s3#TargetBucket", + "traits": { + "smithy.api#documentation": "

Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs\n delivered to any bucket that you own, including the same bucket that is being logged. You can also\n configure multiple buckets to deliver their logs to the same target bucket. In this case, you should\n choose a different TargetPrefix for each source bucket so that the delivered log files can\n be distinguished by key.

", + "smithy.api#required": {} + } + }, + "TargetGrants": { + "target": "com.amazonaws.s3#TargetGrants", + "traits": { + "smithy.api#documentation": "

Container for granting information.

\n

Buckets that use the bucket owner enforced setting for Object Ownership don't support target grants.\n For more information, see Permissions for server access log delivery in the\n Amazon S3 User Guide.

" + } + }, + "TargetPrefix": { + "target": "com.amazonaws.s3#TargetPrefix", + "traits": { + "smithy.api#documentation": "

A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single\n bucket, you can use a prefix to distinguish which log files came from which bucket.

", + "smithy.api#required": {} + } + }, + "TargetObjectKeyFormat": { + "target": "com.amazonaws.s3#TargetObjectKeyFormat", + "traits": { + "smithy.api#documentation": "

Amazon S3 key format for log objects.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a\n bucket. For more information, see PUT Bucket logging in the\n Amazon S3 API Reference.

" + } + }, + "com.amazonaws.s3#MFA": { + "type": "string" + }, + "com.amazonaws.s3#MFADelete": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#MFADeleteStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#Marker": { + "type": "string" + }, + "com.amazonaws.s3#MaxAgeSeconds": { + "type": "integer" + }, + "com.amazonaws.s3#MaxAnnotationResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.s3#MaxBuckets": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.s3#MaxDirectoryBuckets": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.s3#MaxKeys": { + "type": "integer" + }, + "com.amazonaws.s3#MaxParts": { + "type": "integer" + }, + "com.amazonaws.s3#MaxUploads": { + "type": "integer" + }, + "com.amazonaws.s3#Message": { + "type": "string" + }, + "com.amazonaws.s3#Metadata": { + "type": "map", + "key": { + "target": "com.amazonaws.s3#MetadataKey" + }, + "value": { + "target": "com.amazonaws.s3#MetadataValue" + } + }, + "com.amazonaws.s3#MetadataConfiguration": { + "type": "structure", + "members": { + "JournalTableConfiguration": { + "target": "com.amazonaws.s3#JournalTableConfiguration", + "traits": { + "smithy.api#documentation": "

\n The journal table configuration for a metadata configuration.\n

", + "smithy.api#required": {} + } + }, + "InventoryTableConfiguration": { + "target": "com.amazonaws.s3#InventoryTableConfiguration", + "traits": { + "smithy.api#documentation": "

\n The inventory table configuration for a metadata configuration.\n

" + } + }, + "AnnotationTableConfiguration": { + "target": "com.amazonaws.s3#AnnotationTableConfiguration", + "traits": { + "smithy.api#documentation": "

Optional annotation table configuration to include with the metadata configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The S3 Metadata configuration for a general purpose bucket.\n

" + } + }, + "com.amazonaws.s3#MetadataConfigurationResult": { + "type": "structure", + "members": { + "DestinationResult": { + "target": "com.amazonaws.s3#DestinationResult", + "traits": { + "smithy.api#documentation": "

\n The destination settings for a metadata configuration.\n

", + "smithy.api#required": {} + } + }, + "JournalTableConfigurationResult": { + "target": "com.amazonaws.s3#JournalTableConfigurationResult", + "traits": { + "smithy.api#documentation": "

\n The journal table configuration for a metadata configuration.\n

" + } + }, + "InventoryTableConfigurationResult": { + "target": "com.amazonaws.s3#InventoryTableConfigurationResult", + "traits": { + "smithy.api#documentation": "

\n The inventory table configuration for a metadata configuration.\n

" + } + }, + "AnnotationTableConfigurationResult": { + "target": "com.amazonaws.s3#AnnotationTableConfigurationResult", + "traits": { + "smithy.api#documentation": "

The annotation table configuration result, if an annotation table is configured.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The S3 Metadata configuration for a general purpose bucket.\n

" + } + }, + "com.amazonaws.s3#MetadataDirective": { + "type": "enum", + "members": { + "COPY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COPY" + } + }, + "REPLACE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLACE" + } + } + } + }, + "com.amazonaws.s3#MetadataEntry": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3#MetadataKey", + "traits": { + "smithy.api#documentation": "

Name of the object.

" + } + }, + "Value": { + "target": "com.amazonaws.s3#MetadataValue", + "traits": { + "smithy.api#documentation": "

Value of the object.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A metadata key-value pair to store with an object.

" + } + }, + "com.amazonaws.s3#MetadataKey": { + "type": "string" + }, + "com.amazonaws.s3#MetadataTableConfiguration": { + "type": "structure", + "members": { + "S3TablesDestination": { + "target": "com.amazonaws.s3#S3TablesDestination", + "traits": { + "smithy.api#documentation": "

The destination information for the metadata table configuration. The destination table bucket must\n be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name\n must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The V1 S3 Metadata configuration for a general purpose bucket.

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#MetadataTableConfigurationResult": { + "type": "structure", + "members": { + "S3TablesDestinationResult": { + "target": "com.amazonaws.s3#S3TablesDestinationResult", + "traits": { + "smithy.api#documentation": "

The destination information for the metadata table configuration. The destination table bucket must\n be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name\n must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The V1 S3 Metadata configuration for a general purpose bucket. The destination table bucket must be\n in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name\n must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#MetadataTableEncryptionConfiguration": { + "type": "structure", + "members": { + "SseAlgorithm": { + "target": "com.amazonaws.s3#TableSseAlgorithm", + "traits": { + "smithy.api#documentation": "

\n The encryption type specified for a metadata table. To specify server-side encryption with \n Key Management Service (KMS) keys (SSE-KMS), use the aws:kms value. To specify server-side \n encryption with Amazon S3 managed keys (SSE-S3), use the AES256 value. \n

", + "smithy.api#required": {} + } + }, + "KmsKeyArn": { + "target": "com.amazonaws.s3#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

\n If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also\n specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key \n that's located in the same Region as the general purpose bucket that corresponds to the metadata \n table configuration.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The encryption settings for an S3 Metadata journal table or inventory table configuration.\n

" + } + }, + "com.amazonaws.s3#MetadataTableStatus": { + "type": "string" + }, + "com.amazonaws.s3#MetadataValue": { + "type": "string" + }, + "com.amazonaws.s3#Metrics": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#MetricsStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the replication metrics are enabled.

", + "smithy.api#required": {} + } + }, + "EventThreshold": { + "target": "com.amazonaws.s3#ReplicationTimeValue", + "traits": { + "smithy.api#documentation": "

A container specifying the time threshold for emitting the\n s3:Replication:OperationMissedThreshold event.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container specifying replication metrics-related settings enabling replication metrics and\n events.

" + } + }, + "com.amazonaws.s3#MetricsAndOperator": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix used when evaluating an AND predicate.

" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

The list of tags used when evaluating an AND predicate.

\n \n

\n Tag filters are not supported for directory buckets.

\n
", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tag" + } + }, + "AccessPointArn": { + "target": "com.amazonaws.s3#AccessPointArn", + "traits": { + "smithy.api#documentation": "

The access point ARN used when evaluating an AND predicate.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The\n operator must have at least two predicates, and an object must match all of the predicates in order for\n the filter to apply.

" + } + }, + "com.amazonaws.s3#MetricsConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#MetricsId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the metrics configuration. The ID has a 64 character limit and can only\n contain letters, numbers, periods, dashes, and underscores.

", + "smithy.api#required": {} + } + }, + "Filter": { + "target": "com.amazonaws.s3#MetricsFilter", + "traits": { + "smithy.api#documentation": "

Specifies a metrics configuration filter. The metrics configuration will only include objects that\n meet the filter's criteria. A filter must be a prefix, an object tag, an access point ARN, or a\n conjunction (MetricsAndOperator).

\n \n

Metrics configurations for directory buckets do not support tag filters.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics\n configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that\n this is a full replacement of the existing metrics configuration. If you don't include the elements you\n want to keep, they are erased. For more information, see PutBucketMetricsConfiguration.

" + } + }, + "com.amazonaws.s3#MetricsConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#MetricsConfiguration" + } + }, + "com.amazonaws.s3#MetricsFilter": { + "type": "union", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

The prefix used when evaluating a metrics filter.

" + } + }, + "Tag": { + "target": "com.amazonaws.s3#Tag", + "traits": { + "smithy.api#documentation": "

The tag used when evaluating a metrics filter.

\n \n

\n Tag filters are not supported for directory buckets.

\n
" + } + }, + "AccessPointArn": { + "target": "com.amazonaws.s3#AccessPointArn", + "traits": { + "smithy.api#documentation": "

The access point ARN used when evaluating a metrics filter.

" + } + }, + "And": { + "target": "com.amazonaws.s3#MetricsAndOperator", + "traits": { + "smithy.api#documentation": "

A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The\n operator must have at least two predicates, and an object must match all of the predicates in order for\n the filter to apply.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a metrics configuration filter. The metrics configuration only includes objects that meet\n the filter's criteria. A filter must be a prefix, an object tag, an access point ARN, or a conjunction\n (MetricsAndOperator). For more information, see PutBucketMetricsConfiguration.

" + } + }, + "com.amazonaws.s3#MetricsId": { + "type": "string" + }, + "com.amazonaws.s3#MetricsStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#Minutes": { + "type": "integer" + }, + "com.amazonaws.s3#MissingMeta": { + "type": "integer" + }, + "com.amazonaws.s3#MpuObjectSize": { + "type": "long" + }, + "com.amazonaws.s3#MultipartUpload": { + "type": "structure", + "members": { + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID that identifies the multipart upload.

" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key of the object for which the multipart upload was initiated.

" + } + }, + "Initiated": { + "target": "com.amazonaws.s3#Initiated", + "traits": { + "smithy.api#documentation": "

Date and time at which the multipart upload was initiated.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Specifies the owner of the object that is part of the multipart upload.

\n \n

\n Directory buckets - The bucket owner is returned as the\n object owner for all the objects.

\n
" + } + }, + "Initiator": { + "target": "com.amazonaws.s3#Initiator", + "traits": { + "smithy.api#documentation": "

Identifies who initiated the multipart upload.

" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to create a checksum of the object.

" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type that is used to calculate the object’s checksum value. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the MultipartUpload for the Amazon S3 object.

" + } + }, + "com.amazonaws.s3#MultipartUploadId": { + "type": "string" + }, + "com.amazonaws.s3#MultipartUploadList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#MultipartUpload" + } + }, + "com.amazonaws.s3#NextKeyMarker": { + "type": "string" + }, + "com.amazonaws.s3#NextMarker": { + "type": "string" + }, + "com.amazonaws.s3#NextPartNumberMarker": { + "type": "string" + }, + "com.amazonaws.s3#NextToken": { + "type": "string" + }, + "com.amazonaws.s3#NextUploadIdMarker": { + "type": "string" + }, + "com.amazonaws.s3#NextVersionIdMarker": { + "type": "string" + }, + "com.amazonaws.s3#NoSuchAnnotation": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The specified annotation does not exist on this object.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.s3#NoSuchBucket": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The specified bucket does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.s3#NoSuchKey": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The specified key does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.s3#NoSuchUpload": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The specified multipart upload does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.s3#NonEmptyKmsKeyArnString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-zA-Z0-9-]*:kms:[a-z0-9-]+:[0-9]{12}:key/[a-zA-Z0-9-]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#NoncurrentVersionExpiration": { + "type": "structure", + "members": { + "NoncurrentDays": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.\n The value must be a non-zero positive integer. For information about the noncurrent days calculations,\n see How Amazon S3 Calculates\n When an Object Became Noncurrent in the Amazon S3 User Guide.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + }, + "NewerNoncurrentVersions": { + "target": "com.amazonaws.s3#VersionCount", + "traits": { + "smithy.api#documentation": "

Specifies how many noncurrent versions Amazon S3 will retain. You can specify up to 100 noncurrent\n versions to retain. Amazon S3 will permanently delete any additional noncurrent versions beyond the specified\n number to retain. For more information about noncurrent versions, see Lifecycle configuration elements in\n the Amazon S3 User Guide.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the\n noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning\n enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in\n the object's lifetime.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
" + } + }, + "com.amazonaws.s3#NoncurrentVersionTransition": { + "type": "structure", + "members": { + "NoncurrentDays": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.\n For information about the noncurrent days calculations, see How Amazon S3 Calculates\n How Long an Object Has Been Noncurrent in the Amazon S3 User Guide.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#TransitionStorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the object.

" + } + }, + "NewerNoncurrentVersions": { + "target": "com.amazonaws.s3#VersionCount", + "traits": { + "smithy.api#documentation": "

Specifies how many noncurrent versions Amazon S3 will retain in the same storage class before\n transitioning objects. You can specify up to 100 noncurrent versions to retain. Amazon S3 will transition any\n additional noncurrent versions beyond the specified number to retain. For more information about\n noncurrent versions, see Lifecycle configuration elements in\n the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the transition rule that describes when noncurrent objects transition to the\n STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,\n GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your\n bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3\n transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA,\n INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or\n DEEP_ARCHIVE storage class at a specific period in the object's lifetime.

" + } + }, + "com.amazonaws.s3#NoncurrentVersionTransitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#NoncurrentVersionTransition" + } + }, + "com.amazonaws.s3#NotFound": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The specified content does not exist.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.s3#NotificationConfiguration": { + "type": "structure", + "members": { + "TopicConfigurations": { + "target": "com.amazonaws.s3#TopicConfigurationList", + "traits": { + "smithy.api#documentation": "

The topic to which notifications are sent and the events for which notifications are\n generated.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "TopicConfiguration" + } + }, + "QueueConfigurations": { + "target": "com.amazonaws.s3#QueueConfigurationList", + "traits": { + "smithy.api#documentation": "

The Amazon Simple Queue Service queues to publish messages to and the events for which to publish\n messages.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "QueueConfiguration" + } + }, + "LambdaFunctionConfigurations": { + "target": "com.amazonaws.s3#LambdaFunctionConfigurationList", + "traits": { + "smithy.api#documentation": "

Describes the Lambda functions to invoke and the events for which to invoke them.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "CloudFunctionConfiguration" + } + }, + "EventBridgeConfiguration": { + "target": "com.amazonaws.s3#EventBridgeConfiguration", + "traits": { + "smithy.api#documentation": "

Enables delivery of events to Amazon EventBridge.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for specifying the notification configuration of the bucket. If this element is empty,\n notifications are turned off for the bucket.

" + } + }, + "com.amazonaws.s3#NotificationConfigurationFilter": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#S3KeyFilter", + "traits": { + "smithy.api#xmlName": "S3Key" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies object key name filtering rules. For information about key name filtering, see Configuring\n event notifications using object key name filtering in the\n Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#NotificationId": { + "type": "string", + "traits": { + "smithy.api#documentation": "

An optional unique identifier for configurations in a notification configuration. If you don't\n provide one, Amazon S3 will assign an ID.

" + } + }, + "com.amazonaws.s3#Object": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The name that you assign to an object. You use the object key to retrieve the object.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Creation date of the object.

" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object,\n not its metadata. The ETag may or may not be an MD5 digest of the object data. Whether or not it is\n depends on how the object was created and how it is encrypted as described below:

\n
    \n
  • \n

    Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services\n Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest of\n their object data.

    \n
  • \n
  • \n

    Objects created by the PUT Object, POST Object, or Copy operation, or through the Amazon Web Services\n Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of\n their object data.

    \n
  • \n
  • \n

    If an object is created by either the Multipart Upload or Part Copy operation, the ETag is not\n an MD5 digest, regardless of the method of encryption. If an object is larger than 16 MB, the Amazon Web Services\n Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag\n will not be an MD5 digest.

    \n
  • \n
\n \n

\n Directory buckets - MD5 is not supported by directory buckets.

\n
" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithmList", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to create a checksum of the object.

", + "smithy.api#xmlFlattened": {} + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type that is used to calculate the object’s checksum value. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

Size in bytes of the object

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#ObjectStorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the object.

\n \n

\n Directory buckets -\n Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

The owner of the object

\n \n

\n Directory buckets - The bucket owner is returned as the\n object owner.

\n
" + } + }, + "RestoreStatus": { + "target": "com.amazonaws.s3#RestoreStatus", + "traits": { + "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored\n before they can be retrieved. For more information about these storage classes and how to work with\n archived objects, see \n Working with archived objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object consists of data and its descriptive metadata.

" + } + }, + "com.amazonaws.s3#ObjectAlreadyInActiveTierError": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

This action is not allowed against this storage tier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.s3#ObjectAttributes": { + "type": "enum", + "members": { + "ETAG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ETag" + } + }, + "CHECKSUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Checksum" + } + }, + "OBJECT_PARTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectParts" + } + }, + "STORAGE_CLASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StorageClass" + } + }, + "OBJECT_SIZE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectSize" + } + } + } + }, + "com.amazonaws.s3#ObjectAttributesList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectAttributes" + } + }, + "com.amazonaws.s3#ObjectCannedACL": { + "type": "enum", + "members": { + "private": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private" + } + }, + "public_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-read" + } + }, + "public_read_write": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "public-read-write" + } + }, + "authenticated_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "authenticated-read" + } + }, + "aws_exec_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws-exec-read" + } + }, + "bucket_owner_read": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bucket-owner-read" + } + }, + "bucket_owner_full_control": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "bucket-owner-full-control" + } + } + } + }, + "com.amazonaws.s3#ObjectEncryption": { + "type": "union", + "members": { + "SSEKMS": { + "target": "com.amazonaws.s3#SSEKMSEncryption", + "traits": { + "smithy.api#documentation": "

\n Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys \n (SSE-KMS). \n

", + "smithy.api#xmlName": "SSE-KMS" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The updated server-side encryption type for this object. The UpdateObjectEncryption \n operation supports the SSE-S3 and SSE-KMS encryption types.\n

\n

Valid Values: SSES3 | SSEKMS\n

" + } + }, + "com.amazonaws.s3#ObjectIdentifier": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key name of the object.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
", + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID for the specific version of the object to delete.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An entity tag (ETag) is an identifier assigned by a web server to a specific version of a resource\n found at a URL. This header field makes the request method conditional on ETags.

\n \n

Entity tags (ETags) for S3 Express One Zone are random alphanumeric strings unique to the object.\n

\n
" + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.s3#LastModifiedTime", + "traits": { + "smithy.api#documentation": "

If present, the objects are deleted only if its modification times matches the provided\n Timestamp.

\n \n

This functionality is only supported for directory buckets.

\n
" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

If present, the objects are deleted only if its size matches the provided size in bytes.

\n \n

This functionality is only supported for directory buckets.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Object Identifier is unique value to identify objects.

" + } + }, + "com.amazonaws.s3#ObjectIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectIdentifier" + } + }, + "com.amazonaws.s3#ObjectIfMatch": { + "type": "string" + }, + "com.amazonaws.s3#ObjectKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.s3#ObjectList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Object" + } + }, + "com.amazonaws.s3#ObjectLockConfiguration": { + "type": "structure", + "members": { + "ObjectLockEnabled": { + "target": "com.amazonaws.s3#ObjectLockEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether this bucket has an Object Lock configuration enabled. Enable\n ObjectLockEnabled when you apply ObjectLockConfiguration to a bucket.\n

" + } + }, + "Rule": { + "target": "com.amazonaws.s3#ObjectLockRule", + "traits": { + "smithy.api#documentation": "

Specifies the Object Lock rule for the specified object. Enable the this rule when you apply\n ObjectLockConfiguration to a bucket. Bucket settings require both a mode and a period.\n The period can be either Days or Years but you must select one. You cannot\n specify Days and Years at the same time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for Object Lock configuration parameters.

" + } + }, + "com.amazonaws.s3#ObjectLockEnabled": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + } + } + }, + "com.amazonaws.s3#ObjectLockEnabledForBucket": { + "type": "boolean" + }, + "com.amazonaws.s3#ObjectLockEventHold": { + "type": "enum", + "members": { + "ON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OFF" + } + } + } + }, + "com.amazonaws.s3#ObjectLockEventHoldDurationDays": { + "type": "integer" + }, + "com.amazonaws.s3#ObjectLockEventHoldDurationYears": { + "type": "integer" + }, + "com.amazonaws.s3#ObjectLockLegalHold": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether the specified object has a legal hold in place.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A legal hold configuration for an object.

" + } + }, + "com.amazonaws.s3#ObjectLockLegalHoldStatus": { + "type": "enum", + "members": { + "ON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OFF" + } + } + } + }, + "com.amazonaws.s3#ObjectLockMode": { + "type": "enum", + "members": { + "GOVERNANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GOVERNANCE" + } + }, + "COMPLIANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLIANCE" + } + } + } + }, + "com.amazonaws.s3#ObjectLockRetainUntilDate": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.s3#ObjectLockRetention": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.s3#ObjectLockRetentionMode", + "traits": { + "smithy.api#documentation": "

Indicates the Retention mode for the specified object.

" + } + }, + "RetainUntilDate": { + "target": "com.amazonaws.s3#Date", + "traits": { + "smithy.api#documentation": "

The date on which this Object Lock Retention will expire.

" + } + }, + "EventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

The event hold status for the object. Set to ON to enable an event hold or\n OFF to disable it.

" + } + }, + "EventHoldDuration": { + "target": "com.amazonaws.s3#EventHoldDuration", + "traits": { + "smithy.api#documentation": "

The event hold duration for the object. Specifies how long the object remains protected after the\n event hold is released.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A Retention configuration for an object.

" + } + }, + "com.amazonaws.s3#ObjectLockRetentionMode": { + "type": "enum", + "members": { + "GOVERNANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GOVERNANCE" + } + }, + "COMPLIANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLIANCE" + } + } + } + }, + "com.amazonaws.s3#ObjectLockRule": { + "type": "structure", + "members": { + "DefaultRetention": { + "target": "com.amazonaws.s3#DefaultRetention", + "traits": { + "smithy.api#documentation": "

The default Object Lock retention settings for new objects in this bucket. You can\n specify:

\n
    \n
  • \n

    A default retention period, by using Days or Years.

    \n
  • \n
  • \n

    A default event hold duration, by using DefaultEventHold. This setting also\n uses days or years.

    \n
  • \n
\n

You can set one or both. You cannot use days and years in the same setting.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for an Object Lock rule.

" + } + }, + "com.amazonaws.s3#ObjectLockToken": { + "type": "string" + }, + "com.amazonaws.s3#ObjectNotInActiveTierError": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The source object of the COPY action is not in the active tier and is only stored in Amazon S3\n Glacier.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.s3#ObjectOwnership": { + "type": "enum", + "members": { + "BucketOwnerPreferred": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BucketOwnerPreferred" + } + }, + "ObjectWriter": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ObjectWriter" + } + }, + "BucketOwnerEnforced": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BucketOwnerEnforced" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for object ownership for a bucket's ownership controls.

\n

\n BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket\n owner if the objects are uploaded with the bucket-owner-full-control canned ACL.

\n

\n ObjectWriter - The uploading account will own the object if the object is uploaded with\n the bucket-owner-full-control canned ACL.

\n

\n BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect\n permissions. The bucket owner automatically owns and has full control over every object in the bucket.\n The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner full control ACLs\n (such as the predefined bucket-owner-full-control canned ACL or a custom ACL in XML format\n that grants the same permissions).

\n

By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are\n disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access\n for each object individually. For more information about S3 Object Ownership, see Controlling\n ownership of objects and disabling ACLs for your bucket in the\n Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.

\n
" + } + }, + "com.amazonaws.s3#ObjectPart": { + "type": "structure", + "members": { + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

The part number identifying the part. This value is a positive integer between 1 and 10,000.

" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

The size of the uploaded part in bytes.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the part. This checksum is present if the\n multipart upload request was created with the CRC32 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the part. This checksum is present if the\n multipart upload request was created with the CRC32C checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC64NVME checksum algorithm, or if the\n object was uploaded without a checksum (and Amazon S3 added the default checksum, CRC64NVME, to\n the uploaded object). For more information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 checksum of the part. This checksum is present if the\n multipart upload request was created with the SHA1 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 checksum of the part. This checksum is present if\n the multipart upload request was created with the SHA256 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA512 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the part. This checksum is present if\n the multipart upload request was created with the MD5 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH64 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH3 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH128 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for elements related to an individual part.

" + } + }, + "com.amazonaws.s3#ObjectSize": { + "type": "long" + }, + "com.amazonaws.s3#ObjectSizeGreaterThanBytes": { + "type": "long" + }, + "com.amazonaws.s3#ObjectSizeLessThanBytes": { + "type": "long" + }, + "com.amazonaws.s3#ObjectStorageClass": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "REDUCED_REDUNDANCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDUCED_REDUNDANCY" + } + }, + "GLACIER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER" + } + }, + "STANDARD_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD_IA" + } + }, + "ONEZONE_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ONEZONE_IA" + } + }, + "INTELLIGENT_TIERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTELLIGENT_TIERING" + } + }, + "DEEP_ARCHIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEEP_ARCHIVE" + } + }, + "OUTPOSTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OUTPOSTS" + } + }, + "GLACIER_IR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER_IR" + } + }, + "SNOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SNOW" + } + }, + "EXPRESS_ONEZONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPRESS_ONEZONE" + } + }, + "FSX_OPENZFS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FSX_OPENZFS" + } + }, + "FSX_ONTAP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FSX_ONTAP" + } + }, + "AWS_BACKUP_WARM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_BACKUP_WARM" + } + }, + "AWS_BACKUP_LOW_COST_WARM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_BACKUP_LOW_COST_WARM" + } + } + } + }, + "com.amazonaws.s3#ObjectVersion": { + "type": "structure", + "members": { + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

The entity tag is an MD5 hash of that version of the object.

" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithmList", + "traits": { + "smithy.api#documentation": "

The algorithm that was used to create a checksum of the object.

", + "smithy.api#xmlFlattened": {} + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The checksum type that is used to calculate the object’s checksum value. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

Size in bytes of the object.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#ObjectVersionStorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the object.

" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of an object.

" + } + }, + "IsLatest": { + "target": "com.amazonaws.s3#IsLatest", + "traits": { + "smithy.api#documentation": "

Specifies whether the object is (true) or is not (false) the latest version of an object.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time when the object was last modified.

" + } + }, + "Owner": { + "target": "com.amazonaws.s3#Owner", + "traits": { + "smithy.api#documentation": "

Specifies the owner of the object.

" + } + }, + "RestoreStatus": { + "target": "com.amazonaws.s3#RestoreStatus", + "traits": { + "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored\n before they can be retrieved. For more information about these storage classes and how to work with\n archived objects, see \n Working with archived objects in the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The version of an object.

" + } + }, + "com.amazonaws.s3#ObjectVersionId": { + "type": "string" + }, + "com.amazonaws.s3#ObjectVersionList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectVersion" + } + }, + "com.amazonaws.s3#ObjectVersionStorageClass": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + } + } + }, + "com.amazonaws.s3#OptionalObjectAttributes": { + "type": "enum", + "members": { + "RESTORE_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RestoreStatus" + } + } + } + }, + "com.amazonaws.s3#OptionalObjectAttributesList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#OptionalObjectAttributes" + } + }, + "com.amazonaws.s3#OutputLocation": { + "type": "structure", + "members": { + "S3": { + "target": "com.amazonaws.s3#S3Location", + "traits": { + "smithy.api#documentation": "

Describes an S3 location that will receive the results of the restore request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the location where the restore job's output is stored.

" + } + }, + "com.amazonaws.s3#OutputSerialization": { + "type": "structure", + "members": { + "CSV": { + "target": "com.amazonaws.s3#CSVOutput", + "traits": { + "smithy.api#documentation": "

Describes the serialization of CSV-encoded Select results.

" + } + }, + "JSON": { + "target": "com.amazonaws.s3#JSONOutput", + "traits": { + "smithy.api#documentation": "

Specifies JSON as request's output serialization format.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes how results of the Select job are serialized.

" + } + }, + "com.amazonaws.s3#Owner": { + "type": "structure", + "members": { + "DisplayName": { + "target": "com.amazonaws.s3#DisplayName", + "traits": { + "smithy.api#documentation": "

" + } + }, + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

Container for the ID of the owner.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the owner's display name and ID.

" + } + }, + "com.amazonaws.s3#OwnerOverride": { + "type": "enum", + "members": { + "Destination": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Destination" + } + } + } + }, + "com.amazonaws.s3#OwnershipControls": { + "type": "structure", + "members": { + "Rules": { + "target": "com.amazonaws.s3#OwnershipControlsRules", + "traits": { + "smithy.api#documentation": "

The container element for an ownership control rule.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Rule" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for a bucket's ownership controls.

" + } + }, + "com.amazonaws.s3#OwnershipControlsRule": { + "type": "structure", + "members": { + "ObjectOwnership": { + "target": "com.amazonaws.s3#ObjectOwnership", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for an ownership control rule.

" + } + }, + "com.amazonaws.s3#OwnershipControlsRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#OwnershipControlsRule" + } + }, + "com.amazonaws.s3#ParquetInput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

Container for Parquet.

" + } + }, + "com.amazonaws.s3#Part": { + "type": "structure", + "members": { + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number identifying the part. This is a positive integer between 1 and 10,000.

" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

Date and time at which the part was uploaded.

" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag returned when the part was uploaded.

" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

Size in bytes of the uploaded part data.

" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the part. This checksum is present if the\n object was uploaded with the CRC32 checksum algorithm. For more information, see Checking object\n integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the part. This checksum is present if the\n object was uploaded with the CRC32C checksum algorithm. For more information, see Checking object\n integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the part. This checksum is present if\n the multipart upload request was created with the CRC64NVME checksum algorithm, or if the\n object was uploaded without a checksum (and Amazon S3 added the default checksum, CRC64NVME, to\n the uploaded object). For more information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 checksum of the part. This checksum is present if the\n object was uploaded with the SHA1 checksum algorithm. For more information, see Checking object\n integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 checksum of the part. This checksum is present if\n the object was uploaded with the SHA256 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the part. This checksum is present if\n the multipart upload request was created with the SHA512 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the part. This checksum is present if\n the multipart upload request was created with the MD5 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH64 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH3 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the part. This checksum is present if\n the multipart upload request was created with the XXHASH128 checksum algorithm. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for elements related to a part.

" + } + }, + "com.amazonaws.s3#PartNumber": { + "type": "integer" + }, + "com.amazonaws.s3#PartNumberMarker": { + "type": "string" + }, + "com.amazonaws.s3#PartitionDateSource": { + "type": "enum", + "members": { + "EventTime": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EventTime" + } + }, + "DeliveryTime": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeliveryTime" + } + } + } + }, + "com.amazonaws.s3#PartitionedPrefix": { + "type": "structure", + "members": { + "PartitionDateSource": { + "target": "com.amazonaws.s3#PartitionDateSource", + "traits": { + "smithy.api#documentation": "

Specifies the partition date source for the partitioned prefix. PartitionDateSource can\n be EventTime or DeliveryTime.

\n

For DeliveryTime, the time in the log file names corresponds to the delivery time for\n the log files.

\n

For EventTime, The logs delivered are for a specific day only. The year, month, and\n day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00\n in the key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon S3 keys for log objects are partitioned in the following format:

\n

\n [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

\n

PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.

", + "smithy.api#xmlName": "PartitionedPrefix" + } + }, + "com.amazonaws.s3#Parts": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Part" + } + }, + "com.amazonaws.s3#PartsCount": { + "type": "integer" + }, + "com.amazonaws.s3#PartsList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectPart" + } + }, + "com.amazonaws.s3#Payer": { + "type": "enum", + "members": { + "Requester": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Requester" + } + }, + "BucketOwner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BucketOwner" + } + } + } + }, + "com.amazonaws.s3#Permission": { + "type": "enum", + "members": { + "FULL_CONTROL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULL_CONTROL" + } + }, + "WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WRITE" + } + }, + "WRITE_ACP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WRITE_ACP" + } + }, + "READ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ" + } + }, + "READ_ACP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_ACP" + } + } + } + }, + "com.amazonaws.s3#Policy": { + "type": "string" + }, + "com.amazonaws.s3#PolicyStatus": { + "type": "structure", + "members": { + "IsPublic": { + "target": "com.amazonaws.s3#IsPublic", + "traits": { + "smithy.api#documentation": "

The policy status for this bucket. TRUE indicates that this bucket is public.\n FALSE indicates that the bucket is not public.

", + "smithy.api#xmlName": "IsPublic" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container element for a bucket's policy status.

" + } + }, + "com.amazonaws.s3#Prefix": { + "type": "string" + }, + "com.amazonaws.s3#Priority": { + "type": "integer" + }, + "com.amazonaws.s3#Progress": { + "type": "structure", + "members": { + "BytesScanned": { + "target": "com.amazonaws.s3#BytesScanned", + "traits": { + "smithy.api#documentation": "

The current number of object bytes scanned.

" + } + }, + "BytesProcessed": { + "target": "com.amazonaws.s3#BytesProcessed", + "traits": { + "smithy.api#documentation": "

The current number of uncompressed object bytes processed.

" + } + }, + "BytesReturned": { + "target": "com.amazonaws.s3#BytesReturned", + "traits": { + "smithy.api#documentation": "

The current number of bytes of records payload data returned.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type contains information about progress of an operation.

" + } + }, + "com.amazonaws.s3#ProgressEvent": { + "type": "structure", + "members": { + "Details": { + "target": "com.amazonaws.s3#Progress", + "traits": { + "smithy.api#documentation": "

The Progress event details.

", + "smithy.api#eventPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This data type contains information about the progress event of an operation.

" + } + }, + "com.amazonaws.s3#Protocol": { + "type": "enum", + "members": { + "http": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http" + } + }, + "https": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "https" + } + } + } + }, + "com.amazonaws.s3#PublicAccessBlockConfiguration": { + "type": "structure", + "members": { + "BlockPublicAcls": { + "target": "com.amazonaws.s3#Setting", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects\n in this bucket. Setting this element to TRUE causes the following behavior:

\n
    \n
  • \n

    PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.

    \n
  • \n
  • \n

    PUT Object calls fail if the request includes a public ACL.

    \n
  • \n
  • \n

    PUT Bucket calls fail if the request includes a public ACL.

    \n
  • \n
\n

Enabling this setting doesn't affect existing policies or ACLs.

", + "smithy.api#xmlName": "BlockPublicAcls" + } + }, + "IgnorePublicAcls": { + "target": "com.amazonaws.s3#Setting", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting\n this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in\n this bucket.

\n

Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new\n public ACLs from being set.

", + "smithy.api#xmlName": "IgnorePublicAcls" + } + }, + "BlockPublicPolicy": { + "target": "com.amazonaws.s3#Setting", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to\n TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy\n allows public access.

\n

Enabling this setting doesn't affect existing bucket policies.

", + "smithy.api#xmlName": "BlockPublicPolicy" + } + }, + "RestrictPublicBuckets": { + "target": "com.amazonaws.s3#Setting", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element\n to TRUE restricts access to this bucket to only Amazon Web Services service principals and\n authorized users within this account if the bucket has a public policy.

\n

Enabling this setting doesn't affect previously stored bucket policies, except that public and\n cross-account access within any public bucket policy, including non-public delegation to specific\n accounts, is blocked.

", + "smithy.api#xmlName": "RestrictPublicBuckets" + } + } + }, + "traits": { + "smithy.api#documentation": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can\n enable the configuration options in any combination. Bucket-level settings work alongside\n account-level settings (which may inherit from organization-level policies). For more\n information about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#PutBucketAbac": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketAbacRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "

Sets the attribute-based access control (ABAC) property of the general purpose bucket. You must have s3:PutBucketABAC permission to perform this action. When you enable ABAC, you can use tags for access control on your buckets. Additionally, when ABAC is enabled, you must use the TagResource and UntagResource actions to manage tags on your buckets. You can nolonger use the PutBucketTagging and DeleteBucketTagging actions to tag your bucket. For more information, see Enabling ABAC in general purpose buckets.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?abac", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutBucketAbacRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the general purpose bucket.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash of the PutBucketAbac request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more\n information, see Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID of the general purpose bucket's owner.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "AbacStatus": { + "target": "com.amazonaws.s3#AbacStatus", + "traits": { + "smithy.api#documentation": "

The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see Using tags with S3 general purpose buckets.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "AbacStatus" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketAccelerateConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketAccelerateConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a\n bucket-level feature that enables you to perform faster data transfers to Amazon S3.

\n

To use this operation, you must have permission to perform the\n s3:PutAccelerateConfiguration action. The bucket owner has this permission by default.\n The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n

The Transfer Acceleration state of a bucket can be set to one of the following two values:

\n
    \n
  • \n

    Enabled – Enables accelerated data transfers to the bucket.

    \n
  • \n
  • \n

    Suspended – Disables accelerated data transfers to the bucket.

    \n
  • \n
\n

The GetBucketAccelerateConfiguration action returns the transfer acceleration state of a\n bucket.

\n

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty\n minutes before the data transfer rates to the bucket increase.

\n

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain\n periods (\".\").

\n

For more information about transfer acceleration, see Transfer Acceleration.

\n

The following operations are related to PutBucketAccelerateConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?accelerate", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketAccelerateConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which the accelerate configuration is set.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "AccelerateConfiguration": { + "target": "com.amazonaws.s3#AccelerateConfiguration", + "traits": { + "smithy.api#documentation": "

Container for setting the transfer acceleration state.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "AccelerateConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketAclRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n \n

This operation is not supported for directory buckets.

\n
\n

Sets the permissions on an existing bucket using access control lists (ACL). For more information,\n see Using ACLs. To\n set the ACL of a bucket, you must have the WRITE_ACP permission.

\n

You can use one of the following two ways to set a bucket's permissions:

\n
    \n
  • \n

    Specify the ACL in the request body

    \n
  • \n
  • \n

    Specify permissions using request headers

    \n
  • \n
\n \n

You cannot specify access permission using both the body and the request headers.

\n
\n

Depending on your application needs, you may choose to set the ACL on a bucket using either the\n request body or the headers. For example, if you have an existing application that updates a bucket ACL\n using the request body, then you can continue to use that approach.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled\n and no longer affect permissions. You must use policies to grant access to your bucket and the objects\n in it. Requests to set ACLs or update ACLs fail and return the\n AccessControlListNotSupported error code. Requests to read ACLs are still supported.\n For more information, see Controlling object ownership in\n the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions by using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a set\n of predefined ACLs, known as canned ACLs. Each canned ACL has a\n predefined set of grantees and permissions. Specify the canned ACL name as the value of\n x-amz-acl. If you use this header, you cannot use other access control-specific\n headers in your request. For more information, see Canned ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the x-amz-grant-read,\n x-amz-grant-read-acp, x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers, you specify\n explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the\n permission. If you use these ACL-specific headers, you cannot use the x-amz-acl\n header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports\n in an ACL. For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of the\n following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID of an\n Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-write header grants create, overwrite,\n and delete objects permission to LogDelivery group predefined by Amazon S3 and two Amazon Web Services accounts\n identified by their email addresses.

    \n

    \n x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\",\n id=\"111122223333\", id=\"555566667777\" \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You cannot do\n both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights (using request\n elements) in the following ways. For examples of how to specify these grantee values in JSON\n format, see the Amazon Web Services CLI example in Enabling Amazon S3 server\n access logging in the Amazon S3 User Guide.

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>&\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl\n request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
\n

The following operations are related to PutBucketAcl:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Put bucket acl", + "documentation": "The following example replaces existing ACL on a bucket. The ACL grants the bucket owner (specified using the owner ID) and write permission to the LogDelivery group. Because this is a replace operation, you must specify all the grants in your request. To incrementally add or remove ACL grants, you might use the console.", + "input": { + "Bucket": "examplebucket", + "GrantFullControl": "id=examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484", + "GrantWrite": "uri=http://acs.amazonaws.com/groups/s3/LogDelivery" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?acl", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketAclRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#BucketCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the bucket.

", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "AccessControlPolicy": { + "target": "com.amazonaws.s3#AccessControlPolicy", + "traits": { + "smithy.api#documentation": "

Contains the elements that set the ACL permissions for an object per grantee.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "AccessControlPolicy" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket to which to apply the ACL.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. This header must be used as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, go to RFC 1864.\n

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Allows grantee to list the objects in the bucket.

", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the bucket ACL.

", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWrite": { + "target": "com.amazonaws.s3#GrantWrite", + "traits": { + "smithy.api#documentation": "

Allows grantee to create new objects in the bucket.

\n

For the bucket and object owners of existing objects, also allows deletions and overwrites of those\n objects.

", + "smithy.api#httpHeader": "x-amz-grant-write" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to write the ACL for the applicable bucket.

", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketAnalyticsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketAnalyticsConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You\n can have up to 1,000 analytics configurations per bucket.

\n

You can choose to have storage class analysis export analysis reports sent to a comma-separated\n values (CSV) flat file. See the DataExport request element. Reports are updated daily and\n are based on the object filters that you configure. When selecting data export, you specify a\n destination bucket and an optional destination prefix where the file is written. You can export the data\n to a destination bucket in a different account. However, the destination bucket must be in the same\n Region as the bucket that you are making the PUT analytics configuration to. For more information, see\n Amazon S3 Analytics –\n Storage Class Analysis.

\n \n

You must create a bucket policy on the destination bucket where the exported file is written to\n grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting\n Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n

To use this operation, you must have permissions to perform the\n s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n

\n PutBucketAnalyticsConfiguration has the following special errors:

\n
    \n
  • \n
      \n
    • \n

      \n HTTP Error: HTTP 400 Bad Request\n

      \n
    • \n
    • \n

      \n Code: InvalidArgument\n

      \n
    • \n
    • \n

      \n Cause: Invalid argument.\n

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n HTTP Error: HTTP 400 Bad Request\n

      \n
    • \n
    • \n

      \n Code: TooManyConfigurations\n

      \n
    • \n
    • \n

      \n Cause: You are attempting to create a new configuration but have already reached\n the 1,000-configuration limit.\n

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n HTTP Error: HTTP 403 Forbidden\n

      \n
    • \n
    • \n

      \n Code: AccessDenied\n

      \n
    • \n
    • \n

      \n Cause: You are not the owner of the specified bucket, or you do not have the\n s3:PutAnalyticsConfiguration bucket permission to set the configuration on the\n bucket.\n

      \n
    • \n
    \n
  • \n
\n

The following operations are related to PutBucketAnalyticsConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?analytics", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketAnalyticsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which an analytics configuration is stored.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#AnalyticsId", + "traits": { + "smithy.api#documentation": "

The ID that identifies the analytics configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "AnalyticsConfiguration": { + "target": "com.amazonaws.s3#AnalyticsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration and any analyses for the analytics filter.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "AnalyticsConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketCors": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketCorsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces\n it.

\n

To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By\n default, the bucket owner has this permission and can grant it to others.

\n

You set this configuration on a bucket so that the bucket can service cross-origin requests. For\n example, you might want to enable a request whose origin is http://www.example.com to\n access your Amazon S3 bucket at my.example.bucket.com by using the browser's\n XMLHttpRequest capability.

\n

To enable cross-origin resource sharing (CORS) on a bucket, you add the cors\n subresource to the bucket. The cors subresource is an XML document in which you configure\n rules that identify origins and the HTTP methods that can be executed on your bucket. The document is\n limited to 64 KB in size.

\n

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it\n evaluates the cors configuration on the bucket and uses the first CORSRule\n rule that matches the incoming browser request to enable a cross-origin request. For a rule to match,\n the following conditions must be met:

\n
    \n
  • \n

    The request's Origin header must match AllowedOrigin elements.

    \n
  • \n
  • \n

    The request method (for example, GET, PUT, HEAD, and so on) or the\n Access-Control-Request-Method header in case of a pre-flight OPTIONS\n request must be one of the AllowedMethod elements.

    \n
  • \n
  • \n

    Every header specified in the Access-Control-Request-Headers request header of a\n pre-flight request must match an AllowedHeader element.

    \n
  • \n
\n

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in the\n Amazon S3 User Guide.

\n

The following operations are related to PutBucketCors:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To set cors configuration on a bucket.", + "documentation": "The following example enables PUT, POST, and DELETE requests from www.example.com, and enables GET requests from any domain.", + "input": { + "Bucket": "", + "CORSConfiguration": { + "CORSRules": [ + { + "AllowedOrigins": [ + "http://www.example.com" + ], + "AllowedHeaders": [ + "*" + ], + "AllowedMethods": [ + "PUT", + "POST", + "DELETE" + ], + "MaxAgeSeconds": 3000, + "ExposeHeaders": [ + "x-amz-server-side-encryption" + ] + }, + { + "AllowedOrigins": [ + "*" + ], + "AllowedHeaders": [ + "Authorization" + ], + "AllowedMethods": [ + "GET" + ], + "MaxAgeSeconds": 3000 + } + ] + }, + "ContentMD5": "" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?cors", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketCorsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Specifies the bucket impacted by the corsconfiguration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CORSConfiguration": { + "target": "com.amazonaws.s3#CORSConfiguration", + "traits": { + "smithy.api#documentation": "

Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information,\n see Enabling Cross-Origin Resource\n Sharing in the Amazon S3 User Guide.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "CORSConfiguration" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. This header must be used as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, go to RFC 1864.\n

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketEncryptionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

This operation configures default encryption and Amazon S3 Bucket Keys for an existing bucket. You can also block encryption types using this operation.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n

By default, all buckets have a default encryption configuration that uses server-side encryption\n with Amazon S3 managed keys (SSE-S3).

\n \n
    \n
  • \n

    \n General purpose buckets\n

    \n
      \n
    • \n

      You can optionally configure default encryption for a bucket by using server-side\n encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with\n Amazon Web Services KMS keys (DSSE-KMS). If you specify default encryption by using SSE-KMS, you can also\n configure Amazon S3 Bucket\n Keys. For information about the bucket default encryption feature, see Amazon S3 Bucket Default\n Encryption in the Amazon S3 User Guide.

      \n
    • \n
    • \n

      If you use PutBucketEncryption to set your default bucket encryption to\n SSE-KMS, you should verify that your KMS key ID is correct. Amazon S3 doesn't validate the\n KMS key ID provided in PutBucketEncryption requests.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory buckets - You can optionally configure\n default encryption for a bucket by using server-side encryption with Key Management Service (KMS) keys\n (SSE-KMS).

    \n
      \n
    • \n

      We recommend that the bucket's default encryption uses the desired encryption\n configuration and you don't override the bucket default encryption in your\n CreateSession requests or PUT object requests. Then, new objects\n are automatically encrypted with the desired encryption settings.\n For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

      \n
    • \n
    • \n

      Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n

      \n
    • \n
    • \n

      S3 Bucket Keys are always enabled for GET and PUT operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject, UploadPartCopy, the Copy operation in Batch Operations, or \n the import jobs. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

      \n
    • \n
    • \n

      When you specify an KMS customer managed key for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.

      \n
    • \n
    • \n

      For directory buckets, if you use PutBucketEncryption to set your default bucket\n encryption to SSE-KMS, Amazon S3 validates the KMS key ID provided in\n PutBucketEncryption requests.

      \n
    • \n
    \n
  • \n
\n
\n \n

If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key\n ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester’s account.\n This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and\n not the bucket owner.

\n

Also, this action requires Amazon Web Services Signature Version 4. For more information, see Authenticating\n Requests (Amazon Web Services Signature Version 4).

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutEncryptionConfiguration permission is required in a policy. The bucket\n owner has this permission by default. The bucket owner can grant this permission to others.\n For more information about permissions, see Permissions Related to Bucket Operations and Managing Access Permissions to Your\n Amazon S3 Resources in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:PutEncryptionConfiguration\n permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n

    To set a directory bucket default encryption with SSE-KMS, you must also have the\n kms:GenerateDataKey and the kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the target KMS key.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketEncryption:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?encryption", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketEncryptionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

Specifies default encryption for a bucket using server-side encryption with different key\n options.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the server-side encryption\n configuration.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

\n \n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

\n
", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ServerSideEncryptionConfiguration": { + "target": "com.amazonaws.s3#ServerSideEncryptionConfiguration", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ServerSideEncryptionConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketIntelligentTieringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketIntelligentTieringConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000\n S3 Intelligent-Tiering configurations per bucket.

\n

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

\n

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

\n

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

\n

Operations related to PutBucketIntelligentTieringConfiguration include:

\n \n \n

You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically move objects\n stored in the S3 Intelligent-Tiering storage class to the Archive Access or Deep Archive Access\n tier.

\n
\n

\n PutBucketIntelligentTieringConfiguration has the following special errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration but have already\n reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or you do not have\n the s3:PutIntelligentTieringConfiguration bucket permission to set the configuration\n on the bucket.

\n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?intelligent-tiering", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketIntelligentTieringConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#IntelligentTieringId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the S3 Intelligent-Tiering configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "IntelligentTieringConfiguration": { + "target": "com.amazonaws.s3#IntelligentTieringConfiguration", + "traits": { + "smithy.api#documentation": "

Container for S3 Intelligent-Tiering configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "IntelligentTieringConfiguration" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketInventoryConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketInventoryConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

This implementation of the PUT action adds an S3 Inventory configuration (identified by\n the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

\n

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and\n the results are published to a flat file. The bucket that is inventoried is called the\n source bucket, and the bucket where the inventory flat file is stored is called\n the destination bucket. The destination bucket must be in the\n same Amazon Web Services Region as the source bucket.

\n

When you configure an inventory for a source bucket, you specify the\n destination bucket where you want the inventory to be stored, and whether to\n generate the inventory daily or weekly. You can also configure what object metadata to include and\n whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the\n Amazon S3 User Guide.

\n \n

You must create a bucket policy on the destination bucket to grant\n permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see\n Granting\n Permissions for Amazon S3 Inventory and Storage Class Analysis.

\n
\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permission to perform the\n s3:PutInventoryConfiguration action. The bucket owner has this permission by\n default and can grant this permission to others.

\n

The s3:PutInventoryConfiguration permission allows a user to create an S3 Inventory\n report that includes all object metadata fields available and to specify the destination bucket to\n store the inventory. A user with read access to objects in the destination bucket can also access\n all object metadata fields that are available in the inventory report.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n\t s3:PutInventoryConfiguration permission is required in a policy. For more information\n\t about general purpose buckets permissions, see Using Bucket Policies and User\n\t Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n\t this API operation, you must have the s3express:PutInventoryConfiguration permission in\n\t an IAM identity-based policy instead of a bucket policy.\n\t For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n

To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the\n Amazon S3 User Guide. For more information about the metadata fields available\n in S3 Inventory, see Amazon S3 Inventory\n lists in the Amazon S3 User Guide. For more information about\n permissions, see Permissions related to bucket subresource operations and Identity and access management in\n Amazon S3 in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

\n PutBucketInventoryConfiguration has the following special errors:

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: InvalidArgument

\n

\n Cause: Invalid Argument

\n
\n
HTTP 400 Bad Request Error
\n
\n

\n Code: TooManyConfigurations

\n

\n Cause: You are attempting to create a new configuration but have already\n reached the 1,000-configuration limit.

\n
\n
HTTP 403 Forbidden Error
\n
\n

\n Cause: You are not the owner of the specified bucket, or you do not have\n the s3:PutInventoryConfiguration bucket permission to set the configuration on the\n bucket.

\n
\n
\n

The following operations are related to PutBucketInventoryConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?inventory", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketInventoryConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket where the inventory configuration will be stored.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#InventoryId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the inventory configuration.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "InventoryConfiguration": { + "target": "com.amazonaws.s3#InventoryConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the inventory configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "InventoryConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketLifecycleConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketLifecycleConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutBucketLifecycleConfigurationOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want\n to retain any configuration details, they must be included in the new lifecycle configuration. For\n information about lifecycle configuration, see Managing your storage\n lifecycle.

\n \n

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name\n prefix, one or more object tags, object size, or any combination of these. Accordingly, this section\n describes the latest API. The previous version of the API supported filtering based only on an object\n key name prefix, which is supported for backward compatibility. For the related API description, see\n PutBucketLifecycle.

\n
\n
\n
Rules
\n
\n

You specify the lifecycle configuration in your request body. The lifecycle configuration is\n specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to\n 1,000 rules. This limit is not adjustable.

\n

Bucket lifecycle configuration supports specifying a lifecycle rule using an object key name\n prefix, one or more object tags, object size, or any combination of these. Accordingly, this\n section describes the latest API. The previous version of the API supported filtering based only\n on an object key name prefix, which is supported for backward compatibility for general purpose\n buckets. For the related API description, see PutBucketLifecycle.

\n \n

Lifecyle configurations for directory buckets only support expiring objects and cancelling\n multipart uploads. Expiring of versioned objects,transitions and tag filters are not\n supported.

\n
\n

A lifecycle rule consists of the following:

\n
    \n
  • \n

    A filter identifying a subset of objects to which the rule applies. The filter can be\n based on a key name prefix, object tags, object size, or any combination of these.

    \n
  • \n
  • \n

    A status indicating whether the rule is in effect.

    \n
  • \n
  • \n

    One or more lifecycle transition and expiration actions that you want Amazon S3 to perform on\n the objects identified by the filter. If the state of your bucket is versioning-enabled or\n versioning-suspended, you can have many versions of the same object (one current version and\n zero or more noncurrent versions). Amazon S3 provides predefined actions that you can specify for\n current and noncurrent object versions.

    \n
  • \n
\n

For more information, see Object Lifecycle Management and\n Lifecycle\n Configuration Elements.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - By default, all Amazon S3\n resources are private, including buckets, objects, and related subresources (for example,\n lifecycle configuration and website configuration). Only the resource owner (that is, the\n Amazon Web Services account that created it) can access the resource. The resource owner can optionally\n grant access permissions to others by writing an access policy. For this operation, a user\n must have the s3:PutLifecycleConfiguration permission.

    \n

    You can also explicitly deny permissions. An explicit deny also supersedes any other\n permissions. If you want to block users or accounts from removing or deleting objects from\n your bucket, you must deny them permissions for the following actions:

    \n \n
  • \n
\n
    \n
  • \n

    \n Directory bucket permissions - You must have the\n s3express:PutLifecycleConfiguration permission in an IAM identity-based policy\n to use this operation. Cross-account access to this API operation isn't supported. The\n resource owner can optionally grant access permissions to others by creating a role or user\n for them as long as they are within the same account as the owner and resource.

    \n

    For more information about directory bucket policies and permissions, see Authorizing Regional endpoint APIs with IAM in the Amazon S3 User\n Guide.

    \n \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is\n s3express-control.region.amazonaws.com.

\n

The following operations are related to PutBucketLifecycleConfiguration:

\n \n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Put bucket lifecycle", + "documentation": "The following example replaces existing lifecycle configuration, if any, on the specified bucket. ", + "input": { + "Bucket": "examplebucket", + "LifecycleConfiguration": { + "Rules": [ + { + "Filter": { + "Prefix": "documents/" + }, + "Status": "Enabled", + "Transitions": [ + { + "Days": 365, + "StorageClass": "GLACIER" + } + ], + "Expiration": { + "Days": 3650 + }, + "ID": "TestOnly" + } + ] + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?lifecycle", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketLifecycleConfigurationOutput": { + "type": "structure", + "members": { + "TransitionDefaultMinimumObjectSize": { + "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", + "traits": { + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
\n
    \n
  • \n

    \n all_storage_classes_128K - Objects smaller than 128 KB will not transition to\n any storage class by default.

    \n
  • \n
  • \n

    \n varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier\n Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes\n will prevent transitions smaller than 128 KB.

    \n
  • \n
\n

To customize the minimum object size for any transition you can add a filter that specifies a custom\n ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition\n rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutBucketLifecycleConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to set the configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "LifecycleConfiguration": { + "target": "com.amazonaws.s3#BucketLifecycleConfiguration", + "traits": { + "smithy.api#documentation": "

Container for lifecycle rules. You can add as many as 1,000 rules.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "LifecycleConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "TransitionDefaultMinimumObjectSize": { + "target": "com.amazonaws.s3#TransitionDefaultMinimumObjectSize", + "traits": { + "smithy.api#documentation": "

Indicates which default minimum object size behavior is applied to the lifecycle\n configuration.

\n \n

This parameter applies to general purpose buckets only. It is not supported for directory bucket\n lifecycle configurations.

\n
\n
    \n
  • \n

    \n all_storage_classes_128K - Objects smaller than 128 KB will not transition to\n any storage class by default.

    \n
  • \n
  • \n

    \n varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier\n Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes\n will prevent transitions smaller than 128 KB.

    \n
  • \n
\n

To customize the minimum object size for any transition you can add a filter that specifies a custom\n ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition\n rule. Custom filters always take precedence over the default transition behavior.

", + "smithy.api#httpHeader": "x-amz-transition-default-minimum-object-size" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketLogging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketLoggingRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n \n

This operation is not supported for directory buckets.

\n
\n

Set the logging parameters for a bucket and to specify permissions for who can view and modify the\n logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set\n the logging status of a bucket, you must be the bucket owner.

\n

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee\n request element to grant access to other people. The Permissions request element specifies\n the kind of access the grantee has to the logs.

\n \n

If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object\n Ownership, you can't use the Grantee request element to grant access to others.\n Permissions can only be granted using policies. For more information, see Permissions for server access log delivery in the\n Amazon S3 User Guide.

\n
\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights (by using request\n elements) in the following ways. For examples of how to specify these grantee values in JSON\n format, see the Amazon Web Services CLI example in Enabling Amazon S3 server\n access logging in the Amazon S3 User Guide.

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    \n DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a\n GETObjectAcl request, appears as the CanonicalUser.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
\n
\n
\n

To enable logging, you use LoggingEnabled and its children request elements. To disable\n logging, you use an empty BucketLoggingStatus request element:

\n

\n \n

\n

For more information about server access logging, see Server Access Logging in the\n Amazon S3 User Guide.

\n

For more information about creating a bucket, see CreateBucket. For more information about\n returning the logging status of a bucket, see GetBucketLogging.

\n

The following operations are related to PutBucketLogging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set logging configuration for a bucket", + "documentation": "The following example sets logging policy on a bucket. For the Log Delivery group to deliver logs to the destination bucket, it needs permission for the READ_ACP action which the policy grants.", + "input": { + "Bucket": "sourcebucket", + "BucketLoggingStatus": { + "LoggingEnabled": { + "TargetBucket": "targetbucket", + "TargetPrefix": "MyBucketLogs/", + "TargetGrants": [ + { + "Grantee": { + "Type": "Group", + "URI": "http://acs.amazonaws.com/groups/global/AllUsers" + }, + "Permission": "READ" + } + ] + } + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?logging", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketLoggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which to set the logging parameters.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "BucketLoggingStatus": { + "target": "com.amazonaws.s3#BucketLoggingStatus", + "traits": { + "smithy.api#documentation": "

Container for logging status information.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "BucketLoggingStatus" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash of the PutBucketLogging request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketMetricsConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketMetricsConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can\n have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics\n configuration, note that this is a full replacement of the existing metrics configuration. If you don't\n include the elements you want to keep, they are erased.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the\n s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutMetricsConfiguration permission is required in a policy. For more information\n about general purpose buckets permissions, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:PutMetricsConfiguration permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon\n CloudWatch.

\n

The following operations are related to PutBucketMetricsConfiguration:

\n \n

\n PutBucketMetricsConfiguration has the following special error:

\n
    \n
  • \n

    Error code: TooManyConfigurations\n

    \n
      \n
    • \n

      Description: You are attempting to create a new configuration but have already reached the\n 1,000-configuration limit.

      \n
    • \n
    • \n

      HTTP Status Code: HTTP 400 Bad Request

      \n
    • \n
    \n
  • \n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?metrics", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketMetricsConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket for which the metrics configuration is set.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Id": { + "target": "com.amazonaws.s3#MetricsId", + "traits": { + "smithy.api#documentation": "

The ID used to identify the metrics configuration. The ID has a 64 character limit and can only\n contain letters, numbers, periods, dashes, and underscores.

", + "smithy.api#httpQuery": "id", + "smithy.api#required": {} + } + }, + "MetricsConfiguration": { + "target": "com.amazonaws.s3#MetricsConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the metrics configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "MetricsConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketNotificationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketNotificationConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Enables notifications of specified events for a bucket. For more information about event\n notifications, see Configuring Event Notifications.

\n

Using this API, you can replace an existing notification configuration. The configuration is an XML\n file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3\n to publish an event notification when it detects an event of the specified type.

\n

By default, your bucket has no event notifications configured. That is, the notification\n configuration will be an empty NotificationConfiguration.

\n

\n \n

\n

\n \n

\n

This action replaces the existing notification configuration with the configuration you include in\n the request body.

\n

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service\n (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner\n has permission to publish to it by sending a test notification. In the case of Lambda destinations,\n Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the\n Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3\n Events.

\n

You can disable notifications by adding the empty NotificationConfiguration element.

\n

For more information about the number of event notification configurations that you can create per\n bucket, see Amazon S3 service\n quotas in Amazon Web Services General Reference.

\n

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners\n can use a bucket policy to grant permission to other users to set this configuration with the required\n s3:PutBucketNotification permission.

\n \n

The PUT notification is an atomic operation. For example, suppose your notification configuration\n includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with\n this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT\n action will fail, and Amazon S3 will not add the configuration to your bucket.

\n
\n

If the configuration in the request body includes only one TopicConfiguration\n specifying only the s3:ReducedRedundancyLostObject event type, the response will also\n include the x-amz-sns-test-message-id header containing the message ID of the test\n notification sent to the topic.

\n

The following action is related to PutBucketNotificationConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set notification configuration for a bucket", + "documentation": "The following example sets notification configuration on a bucket to publish the object created events to an SNS topic.", + "input": { + "Bucket": "examplebucket", + "NotificationConfiguration": { + "TopicConfigurations": [ + { + "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", + "Events": [ + "s3:ObjectCreated:*" + ] + } + ] + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?notification", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketNotificationConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "NotificationConfiguration": { + "target": "com.amazonaws.s3#NotificationConfiguration", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "NotificationConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "SkipDestinationValidation": { + "target": "com.amazonaws.s3#SkipValidation", + "traits": { + "smithy.api#documentation": "

Skips validation of Amazon SQS, Amazon SNS, and Lambda destinations.\n True or false value.

", + "smithy.api#httpHeader": "x-amz-skip-destination-validation" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketOwnershipControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketOwnershipControlsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you\n must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3\n permissions, see Specifying permissions in a policy.

\n

For information about Amazon S3 Object Ownership, see Using object ownership.

\n

The following operations are related to PutBucketOwnershipControls:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?ownershipControls", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketOwnershipControlsRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose OwnershipControls you want to set.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash of the OwnershipControls request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "OwnershipControls": { + "target": "com.amazonaws.s3#OwnershipControls", + "traits": { + "smithy.api#documentation": "

The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) that\n you want to apply to this Amazon S3 bucket.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "OwnershipControls" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This\n header will not provide any additional functionality if you don't use the SDK. When you send this\n header, there must be a corresponding x-amz-checksum-algorithm\n header\n sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketPolicyRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n bucket, the calling identity must both have the PutBucketPolicy permissions on the\n specified bucket and belong to the bucket owner's account in order to use this operation.

\n

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access\n Denied error. If you have the correct permissions, but you're not using an identity that\n belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed\n error.

\n \n

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets,\n the root principal in a bucket owner's Amazon Web Services account can perform the\n GetBucketPolicy, PutBucketPolicy, and\n DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the\n root principal's access. Bucket owner root principals can only be blocked from performing these\n API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The\n s3:PutBucketPolicy permission is required in a policy. For more information\n about general purpose buckets bucket policies, see Using Bucket Policies and User\n Policies in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to\n this API operation, you must have the s3express:PutBucketPolicy permission in\n an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource.\n For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Example bucket policies
\n
\n

\n General purpose buckets example bucket policies - See Bucket policy\n examples in the Amazon S3 User Guide.

\n

\n Directory bucket example bucket policies - See Example\n bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to PutBucketPolicy:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set bucket policy", + "documentation": "The following example sets a permission policy on a bucket.", + "input": { + "Bucket": "examplebucket", + "Policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?policy", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketPolicyRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region-code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must also follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash of the request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm\n or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

\n

For the x-amz-checksum-algorithm\n header, replace \n algorithm\n with the supported algorithm from the following list:

\n
    \n
  • \n

    \n CRC32\n

    \n
  • \n
  • \n

    \n CRC32C\n

    \n
  • \n
  • \n

    \n CRC64NVME\n

    \n
  • \n
  • \n

    \n MD5\n

    \n
  • \n
  • \n

    \n SHA1\n

    \n
  • \n
  • \n

    \n SHA256\n

    \n
  • \n
  • \n

    \n SHA512\n

    \n
  • \n
  • \n

    \n XXHASH3\n

    \n
  • \n
  • \n

    \n XXHASH64\n

    \n
  • \n
  • \n

    \n XXHASH128\n

    \n
  • \n
\n

For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If the individual checksum value you provide through x-amz-checksum-algorithm\n doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 fails the request with a BadDigest error.

\n \n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

\n
", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ConfirmRemoveSelfBucketAccess": { + "target": "com.amazonaws.s3#ConfirmRemoveSelfBucketAccess", + "traits": { + "smithy.api#documentation": "

Set this parameter to true to confirm that you want to remove your permissions to change this bucket\n policy in the future.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-confirm-remove-self-bucket-access" + } + }, + "Policy": { + "target": "com.amazonaws.s3#Policy", + "traits": { + "smithy.api#documentation": "

The bucket policy as a JSON document.

\n

For directory buckets, the only IAM action supported in the bucket policy is\n s3express:CreateSession.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

\n \n

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code \n501 Not Implemented.

\n
", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketReplicationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates a replication configuration or replaces an existing one. For more information, see Replication in the\n Amazon S3 User Guide.

\n

Specify the replication configuration in the request body. In the replication configuration, you\n provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the\n IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. You\n can invoke this request for a specific Amazon Web Services Region by using the \n aws:RequestedRegion\n condition key.

\n

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each\n rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To\n choose additional subsets of objects to replicate, add a rule for each subset.

\n

To specify a subset of the objects in the source bucket to apply a replication rule to, add the\n Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one\n or more object tags, or both. When you add the Filter element in the configuration, you must also add\n the following elements: DeleteMarkerReplication, Status, and\n Priority.

\n \n

If you are using an earlier version of the replication configuration, Amazon S3 handles replication of\n delete markers differently. For more information, see Backward Compatibility.

\n
\n

For information about enabling versioning on a bucket, see Using Versioning.

\n
\n
Handling Replication of Encrypted Objects
\n
\n

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side\n encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following:\n SourceSelectionCriteria, SseKmsEncryptedObjects, Status,\n EncryptionConfiguration, and ReplicaKmsKeyID. For information about\n replication configuration, see Replicating Objects Created\n with SSE Using KMS keys.

\n

For information on PutBucketReplication errors, see List of\n replication-related error codes\n

\n
\n
Permissions
\n
\n

To create a PutBucketReplication request, you must have\n s3:PutReplicationConfiguration permissions for the bucket.\n \n

\n

By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can\n perform this operation. The resource owner can also grant others permissions to perform the\n operation. For more information about permissions, see Specifying Permissions in a Policy\n and Managing\n Access Permissions to Your Amazon S3 Resources.

\n \n

To perform this operation, the user or role performing the action must have the iam:PassRole permission.

\n
\n
\n
\n

The following operations are related to PutBucketReplication:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set replication configuration on a bucket", + "documentation": "The following example sets replication configuration on a bucket.", + "input": { + "Bucket": "examplebucket", + "ReplicationConfiguration": { + "Role": "arn:aws:iam::123456789012:role/examplerole", + "Rules": [ + { + "Prefix": "", + "Status": "Enabled", + "Destination": { + "Bucket": "arn:aws:s3:::destinationbucket", + "StorageClass": "STANDARD" + } + } + ] + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?replication", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketReplicationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, see RFC 1864.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ReplicationConfiguration": { + "target": "com.amazonaws.s3#ReplicationConfiguration", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "ReplicationConfiguration" + } + }, + "Token": { + "target": "com.amazonaws.s3#ObjectLockToken", + "traits": { + "smithy.api#documentation": "

A token to allow Object Lock to be enabled for an existing bucket.

", + "smithy.api#httpHeader": "x-amz-bucket-object-lock-token" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketRequestPayment": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketRequestPaymentRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads\n from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person\n requesting the download will be charged for the download. For more information, see Requester Pays\n Buckets.

\n

The following operations are related to PutBucketRequestPayment:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set request payment configuration on a bucket.", + "documentation": "The following example sets request payment configuration on a bucket so that person requesting the download is charged.", + "input": { + "Bucket": "examplebucket", + "RequestPaymentConfiguration": { + "Payer": "Requester" + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?requestPayment", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketRequestPaymentRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, see RFC 1864.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "RequestPaymentConfiguration": { + "target": "com.amazonaws.s3#RequestPaymentConfiguration", + "traits": { + "smithy.api#documentation": "

Container for Payer.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "RequestPaymentConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketTaggingRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the tags for a general purpose bucket if attribute based access control (ABAC) is not enabled for the bucket. When you enable ABAC for a general purpose bucket, you can no longer use this operation for that bucket and must use the TagResource or UntagResource operations instead.

\n

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get\n your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources,\n organize your billing information according to resources with the same tag key values. For example, you\n can tag several resources with a specific application name, and then organize your billing information\n to see the total cost of that application across several services. For more information, see Cost Allocation and\n Tagging and Using Cost Allocation in Amazon S3 Bucket Tags.

\n \n

When this operation sets the tags for a bucket, it will overwrite any current tags the bucket\n already has. You cannot use this operation to add tags to an existing list of tags.

\n
\n

To use this operation, you must have permissions to perform the s3:PutBucketTagging\n action. The bucket owner has this permission by default and can grant this permission to others. For\n more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

\n

\n PutBucketTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

\n
    \n
  • \n

    \n InvalidTag - The tag provided was not a valid tag. This error can occur if\n the tag did not pass input validation. For more information, see Using Cost Allocation in Amazon S3 Bucket\n Tags.

    \n
  • \n
  • \n

    \n MalformedXML - The XML provided does not match the schema.

    \n
  • \n
  • \n

    \n OperationAborted - A conflicting conditional action is currently in progress\n against this resource. Please try again.

    \n
  • \n
  • \n

    \n InternalError - The service was unable to apply the provided tag to the\n bucket.

    \n
  • \n
\n

The following operations are related to PutBucketTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set tags on a bucket", + "documentation": "The following example sets tags on a bucket. Any existing tags are replaced.", + "input": { + "Bucket": "examplebucket", + "Tagging": { + "TagSet": [ + { + "Key": "Key1", + "Value": "Value1" + }, + { + "Key": "Key2", + "Value": "Value2" + } + ] + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?tagging", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, see RFC 1864.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#Tagging", + "traits": { + "smithy.api#documentation": "

Container for the TagSet and Tag elements.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "Tagging" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketVersioning": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketVersioningRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n \n

When you enable versioning on a bucket for the first time, it might take a short amount of time\n for the change to be fully propagated. While this change is propagating, you might encounter\n intermittent HTTP 404 NoSuchKey errors for requests to objects created or updated after\n enabling versioning. We recommend that you wait for 15 minutes after enabling versioning before\n issuing write operations (PUT or DELETE) on objects in the bucket.

\n
\n

Sets the versioning state of an existing bucket.

\n

You can set the versioning state with one of the following values:

\n

\n Enabled—Enables versioning for the objects in the bucket. All\n objects added to the bucket receive a unique version ID.

\n

\n Suspended—Disables versioning for the objects in the bucket. All\n objects added to the bucket receive the version ID null.

\n

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

\n

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to\n enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa\n request header and the Status and the MfaDelete request elements in a\n request to set the versioning state of the bucket.

\n \n

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want\n to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent\n expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the\n noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one\n current and zero or more noncurrent object versions.) For more information, see Lifecycle and\n Versioning.

\n
\n

The following operations are related to PutBucketVersioning:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set versioning configuration on a bucket", + "documentation": "The following example sets versioning configuration on bucket. The configuration enables versioning on the bucket.", + "input": { + "Bucket": "examplebucket", + "VersioningConfiguration": { + "MFADelete": "Disabled", + "Status": "Enabled" + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?versioning", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketVersioningRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

>The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, see RFC 1864.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "MFA": { + "target": "com.amazonaws.s3#MFA", + "traits": { + "smithy.api#documentation": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see Enabling versioning on buckets and Configuring MFA delete in the Amazon Simple Storage Service User Guide.

", + "smithy.api#httpHeader": "x-amz-mfa" + } + }, + "VersioningConfiguration": { + "target": "com.amazonaws.s3#VersioningConfiguration", + "traits": { + "smithy.api#documentation": "

Container for setting the versioning state.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "VersioningConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutBucketWebsite": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutBucketWebsiteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the configuration of the website that is specified in the website subresource. To\n configure a bucket as a website, you can add this subresource on the bucket with website configuration\n information such as the file name of the index document and any redirect rules. For more information,\n see Hosting Websites on\n Amazon S3.

\n

This PUT action requires the S3:PutBucketWebsite permission. By default, only the\n bucket owner can configure the website attached to a bucket; however, bucket owners can allow other\n users to set the website configuration by writing a bucket policy that grants them the\n S3:PutBucketWebsite permission.

\n

To redirect all website requests sent to the bucket's website endpoint, you add a website\n configuration with the following elements. Because all requests are sent to another website, you don't\n need to provide index document name for the bucket.

\n
    \n
  • \n

    \n WebsiteConfiguration\n

    \n
  • \n
  • \n

    \n RedirectAllRequestsTo\n

    \n
  • \n
  • \n

    \n HostName\n

    \n
  • \n
  • \n

    \n Protocol\n

    \n
  • \n
\n

If you want granular control over redirects, you can use the following elements to add routing rules\n that describe conditions for redirecting requests and information about the redirect destination. In\n this case, the website configuration must provide an index document for the bucket, because some\n requests might not be redirected.

\n
    \n
  • \n

    \n WebsiteConfiguration\n

    \n
  • \n
  • \n

    \n IndexDocument\n

    \n
  • \n
  • \n

    \n Suffix\n

    \n
  • \n
  • \n

    \n ErrorDocument\n

    \n
  • \n
  • \n

    \n Key\n

    \n
  • \n
  • \n

    \n RoutingRules\n

    \n
  • \n
  • \n

    \n RoutingRule\n

    \n
  • \n
  • \n

    \n Condition\n

    \n
  • \n
  • \n

    \n HttpErrorCodeReturnedEquals\n

    \n
  • \n
  • \n

    \n KeyPrefixEquals\n

    \n
  • \n
  • \n

    \n Redirect\n

    \n
  • \n
  • \n

    \n Protocol\n

    \n
  • \n
  • \n

    \n HostName\n

    \n
  • \n
  • \n

    \n ReplaceKeyPrefixWith\n

    \n
  • \n
  • \n

    \n ReplaceKeyWith\n

    \n
  • \n
  • \n

    \n HttpRedirectCode\n

    \n
  • \n
\n

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50\n routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the\n Amazon S3 User Guide.

\n

The maximum request length is limited to 128 KB.

\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "Set website configuration on a bucket", + "documentation": "The following example adds website configuration to a bucket.", + "input": { + "Bucket": "examplebucket", + "ContentMD5": "", + "WebsiteConfiguration": { + "IndexDocument": { + "Suffix": "index.html" + }, + "ErrorDocument": { + "Key": "error.html" + } + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?website", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutBucketWebsiteRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, see RFC 1864.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "WebsiteConfiguration": { + "target": "com.amazonaws.s3#WebsiteConfiguration", + "traits": { + "smithy.api#documentation": "

Container for the request.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "WebsiteConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#EncryptionTypeMismatch" + }, + { + "target": "com.amazonaws.s3#InvalidRequest" + }, + { + "target": "com.amazonaws.s3#InvalidWriteOffset" + }, + { + "target": "com.amazonaws.s3#TooManyParts" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "\n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n

Adds an object to a bucket.

\n \n
    \n
  • \n

    Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire\n object to the bucket. You cannot use PutObject to only update a single piece of\n metadata for an existing object. You must put the entire object with updated metadata if you want\n to update some values.

    \n
  • \n
  • \n

    If your bucket uses the bucket owner enforced setting for Object Ownership, ACLs are disabled\n and no longer affect permissions. All objects written to the bucket by any account will be owned\n by the bucket owner.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n simultaneously, it overwrites all but the last object written. However, Amazon S3 provides features that can\n modify this behavior:

\n
    \n
  • \n

    \n S3 Object Lock - To prevent objects from being deleted\n or overwritten, you can use Amazon S3 Object Lock in the Amazon S3 User Guide.

    \n \n

    This functionality is not supported for directory buckets.

    \n
    \n
  • \n
  • \n

    \n If-None-Match - Uploads the object only if the object\n key name does not already exist in the specified bucket. Otherwise, Amazon S3 returns a 412\n Precondition Failed error. If a conflicting operation occurs during the upload, S3 returns\n a 409 ConditionalRequestConflict response. On a 409 failure, retry the upload.

    \n

    Expects the * character (asterisk).

    \n

    For more information, see Add preconditions to S3 operations with\n conditional requests in the Amazon S3 User Guide or RFC 7232.

    \n \n

    This functionality is not supported for S3 on Outposts.

    \n
    \n
  • \n
  • \n

    \n S3 Versioning - When you enable versioning for a bucket,\n if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all versions\n of the objects. For each write request that is made to the same object, Amazon S3 automatically generates\n a unique version ID of that object being stored in Amazon S3. You can retrieve, replace, or delete any\n version of the object. For more information about versioning, see Adding Objects to\n Versioning-Enabled Buckets in the Amazon S3 User Guide. For information\n about returning the versioning state of a bucket, see GetBucketVersioning.

    \n \n

    This functionality is not supported for directory buckets.

    \n
    \n
  • \n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - The following\n permissions are required in your policies when your PutObject request includes\n specific headers.

    \n
      \n
    • \n

      \n \n s3:PutObject\n - To successfully\n complete the PutObject request, you must always have the\n s3:PutObject permission on a bucket to add an object to it.

      \n
    • \n
    • \n

      \n \n s3:PutObjectAcl\n - To successfully change the objects ACL of your PutObject\n request, you must have the s3:PutObjectAcl.

      \n
    • \n
    • \n

      \n \n s3:PutObjectTagging\n - To successfully set the tag-set with your PutObject\n request, you must have the s3:PutObjectTagging.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Data integrity with Content-MD5
\n
\n
    \n
  • \n

    \n General purpose bucket - To ensure that data is not\n corrupted traversing the network, use the Content-MD5 header. When you use this\n header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, Amazon S3\n returns an error. Alternatively, when the object's ETag is its MD5 digest, you can calculate\n the MD5 while putting the object to Amazon S3 and compare the returned ETag to the calculated MD5\n value.

    \n
  • \n
  • \n

    \n Directory bucket -\n This functionality is not supported for directory buckets.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n
\n
Errors
\n
\n
    \n
  • \n

    You might receive an InvalidRequest error for several reasons. Depending on the reason for the error, you might receive one of the following messages:

    \n
      \n
    • \n

      Cannot specify both a write offset value and user-defined object metadata for existing\n objects.

      \n
    • \n
    • \n

      Checksum Type mismatch occurred, expected checksum Type: sha1, actual checksum Type:\n crc32c.

      \n
    • \n
    • \n

      Request body cannot be empty when 'write offset' is specified.

      \n
    • \n
    \n
  • \n
\n
\n
\n

For more information about related Amazon S3 APIs, see the following:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To create an object.", + "documentation": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "input": { + "Body": "filetoupload", + "Bucket": "examplebucket", + "Key": "objectkey" + }, + "output": { + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + }, + { + "title": "To upload an object (specify optional headers)", + "documentation": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "input": { + "Body": "HappyFace.jpg", + "Bucket": "examplebucket", + "Key": "HappyFace.jpg", + "ServerSideEncryption": "AES256", + "StorageClass": "STANDARD_IA" + }, + "output": { + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "ServerSideEncryption": "AES256" + } + }, + { + "title": "To upload an object", + "documentation": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "input": { + "Body": "HappyFace.jpg", + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + }, + { + "title": "To upload an object and specify canned ACL.", + "documentation": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", + "input": { + "ACL": "authenticated-read", + "Body": "filetoupload", + "Bucket": "examplebucket", + "Key": "exampleobject" + }, + "output": { + "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + }, + { + "title": "To upload an object and specify optional tags", + "documentation": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", + "input": { + "Body": "c:\\HappyFace.jpg", + "Bucket": "examplebucket", + "Key": "HappyFace.jpg", + "Tagging": "key1=value1&key2=value2" + }, + "output": { + "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + }, + { + "title": "To upload an object and specify server-side encryption and object tags", + "documentation": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "input": { + "Body": "filetoupload", + "Bucket": "examplebucket", + "Key": "exampleobject", + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" + }, + "output": { + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "ServerSideEncryption": "AES256" + } + }, + { + "title": "To upload object and specify user-defined metadata", + "documentation": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", + "input": { + "Body": "filetoupload", + "Bucket": "examplebucket", + "Key": "exampleobject", + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } + }, + "output": { + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?x-id=PutObject", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectAcl": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectAclRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectAclOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, \n the request will receive an HTTP 405 (Method Not Allowed) error.

\n

This change affects 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), and South America (São Paulo).

\n
\n \n

This operation is not supported for directory buckets.

\n
\n

Uses the acl subresource to set the access control list (ACL) permissions for a new or\n existing object in an S3 bucket. You must have the WRITE_ACP permission to set the ACL of\n an object. For more information, see What permissions can I grant? in the\n Amazon S3 User Guide.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

Depending on your application needs, you can choose to set the ACL on an object using either the\n request body or the headers. For example, if you have an existing application that updates a bucket ACL\n using the request body, you can continue to use that approach. For more information, see Access Control List (ACL)\n Overview in the Amazon S3 User Guide.

\n \n

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled\n and no longer affect permissions. You must use policies to grant access to your bucket and the objects\n in it. Requests to set ACLs or update ACLs fail and return the\n AccessControlListNotSupported error code. Requests to read ACLs are still supported.\n For more information, see Controlling object ownership in\n the Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You can set access permissions using one of the following methods:

\n
    \n
  • \n

    Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a set\n of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and\n permissions. Specify the canned ACL name as the value of x-amz-acl. If you use\n this header, you cannot use other access control-specific headers in your request. For more\n information, see Canned ACL.

    \n
  • \n
  • \n

    Specify access permissions explicitly with the x-amz-grant-read,\n x-amz-grant-read-acp, x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers, you specify\n explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the\n permission. If you use these ACL-specific headers, you cannot use x-amz-acl\n header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports\n in an ACL. For more information, see Access Control List (ACL)\n Overview.

    \n

    You specify each grantee as a type=value pair, where the type is one of the\n following:

    \n
      \n
    • \n

      \n id – if the value specified is the canonical user ID of an\n Amazon Web Services account

      \n
    • \n
    • \n

      \n uri – if you are granting permissions to a predefined group

      \n
    • \n
    • \n

      \n emailAddress – if the value specified is the email address of an\n Amazon Web Services account

      \n \n

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      \n
        \n
      • \n

        US East (N. Virginia)

        \n
      • \n
      • \n

        US West (N. California)

        \n
      • \n
      • \n

        US West (Oregon)

        \n
      • \n
      • \n

        Asia Pacific (Singapore)

        \n
      • \n
      • \n

        Asia Pacific (Sydney)

        \n
      • \n
      • \n

        Asia Pacific (Tokyo)

        \n
      • \n
      • \n

        Europe (Ireland)

        \n
      • \n
      • \n

        South America (São Paulo)

        \n
      • \n
      \n

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      \n
      \n
    • \n
    \n

    For example, the following x-amz-grant-read header grants list objects\n permission to the two Amazon Web Services accounts identified by their email addresses.

    \n

    \n x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"\n \n

    \n
  • \n
\n

You can use either a canned ACL or specify access permissions explicitly. You cannot do\n both.

\n
\n
Grantee Values
\n
\n

You can specify the person (grantee) to whom you're assigning access rights (using request\n elements) in the following ways. For examples of how to specify these grantee values in JSON\n format, see the Amazon Web Services CLI example in Enabling Amazon S3 server\n access logging in the Amazon S3 User Guide.

\n
    \n
  • \n

    By the person's ID:

    \n

    \n <>ID<><>GranteesEmail<>\n \n

    \n

    DisplayName is optional and ignored in the request.

    \n
  • \n
  • \n

    By URI:

    \n

    \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

    \n
  • \n
  • \n

    By Email address:

    \n

    \n <>Grantees@email.com<>lt;/Grantee>\n

    \n

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl\n request, appears as the CanonicalUser.

    \n \n

    Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

    \n
      \n
    • \n

      US East (N. Virginia)

      \n
    • \n
    • \n

      US West (N. California)

      \n
    • \n
    • \n

      US West (Oregon)

      \n
    • \n
    • \n

      Asia Pacific (Singapore)

      \n
    • \n
    • \n

      Asia Pacific (Sydney)

      \n
    • \n
    • \n

      Asia Pacific (Tokyo)

      \n
    • \n
    • \n

      Europe (Ireland)

      \n
    • \n
    • \n

      South America (São Paulo)

      \n
    • \n
    \n

    For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    \n
    \n
  • \n
\n
\n
Versioning
\n
\n

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the\n current version of an object. To set the ACL of a different version, use the\n versionId subresource.

\n
\n
\n

The following operations are related to PutObjectAcl:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To grant permissions using object ACL", + "documentation": "The following example adds grants to an object ACL. The first permission grants user1 and user2 FULL_CONTROL and the AllUsers group READ permission.", + "input": { + "AccessControlPolicy": {}, + "Bucket": "examplebucket", + "GrantFullControl": "emailaddress=user1@example.com,emailaddress=user2@example.com", + "GrantRead": "uri=http://acs.amazonaws.com/groups/global/AllUsers", + "Key": "HappyFace.jpg" + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?acl", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectAclOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectAclRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#ObjectCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "AccessControlPolicy": { + "target": "com.amazonaws.s3#AccessControlPolicy", + "traits": { + "smithy.api#documentation": "

Contains the elements that set the ACL permissions for an object per grantee.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "AccessControlPolicy" + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name that contains the object to which you want to attach the ACL.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the data. This header must be used as a\n message integrity check to verify that the request body was not corrupted in transit. For more\n information, go to RFC 1864.>\n

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Allows grantee to list the objects in the bucket.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the bucket ACL.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWrite": { + "target": "com.amazonaws.s3#GrantWrite", + "traits": { + "smithy.api#documentation": "

Allows grantee to create new objects in the bucket.

\n

For the bucket and object owners of existing objects, also allows deletions and overwrites of those\n objects.

", + "smithy.api#httpHeader": "x-amz-grant-write" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to write the ACL for the applicable bucket.

\n

This functionality is not supported for Amazon S3 on Outposts.

", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key for which the PUT action was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID used to reference a specific version of the object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpQuery": "versionId" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectAnnotation": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectAnnotationRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectAnnotationOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#AnnotationLimitExceeded" + }, + { + "target": "com.amazonaws.s3#AnnotationNameTooLong" + }, + { + "target": "com.amazonaws.s3#InvalidAnnotationName" + }, + { + "target": "com.amazonaws.s3#InvalidRequest" + }, + { + "target": "com.amazonaws.s3#NoSuchBucket" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + }, + { + "target": "com.amazonaws.s3#UnsupportedMediaType" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "

Attaches an annotation to an Amazon S3 object. An annotation is a named payload of 1 byte to 1 MiB\n that you can associate with a specific object or object version. Each object can have up to 1,000\n annotations.

\n

For annotation naming rules and restrictions, see Annotation naming guidelines\n in the Amazon S3 User Guide.

\n

Annotations inherit the encryption of their parent object. For objects without server-side\n encryption, annotations are encrypted with SSE-S3 (the default for new objects). Objects\n encrypted with SSE-C cannot have annotations.

\n

To use this operation, you must have the s3:PutObjectAnnotation permission. If the\n bucket has Requester Pays enabled, you must include the x-amz-request-payer header.

\n \n

Annotations are not supported by the following features: S3 Inventory Reports,\n API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon FSx, S3 on Outposts, and\n S3 Express One Zone (directory buckets).

\n
\n

The following operations are related to PutObjectAnnotation:

\n ", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?annotation", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectAnnotationOutput": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

" + } + }, + "AnnotationName": { + "target": "com.amazonaws.s3#AnnotationName", + "traits": { + "smithy.api#documentation": "

The name of the annotation.

" + } + }, + "ObjectVersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object that the annotation was attached to.

", + "smithy.api#httpHeader": "x-amz-object-version-id" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

The entity tag of the annotation.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The CRC32 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The CRC32C checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The CRC64NVME checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The SHA1 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The SHA256 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The SHA512 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The MD5 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The XXHASH64 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The XXHASH3 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The XXHASH128 checksum of the stored annotation.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

The type of checksum used.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used to encrypt the annotation.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectAnnotationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket that contains the object.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object to attach the annotation to.

", + "smithy.api#httpQuery": "versionId" + } + }, + "AnnotationName": { + "target": "com.amazonaws.s3#AnnotationName", + "traits": { + "smithy.api#documentation": "

The name of the annotation.

\n

Length Constraints: Minimum length of 1. Maximum length of 512 bytes.

", + "smithy.api#httpQuery": "annotationName", + "smithy.api#required": {} + } + }, + "AnnotationPayload": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#documentation": "

The annotation payload. Must be between 1 byte and 1 MiB in size, and must be valid UTF-8\n encoded text. If the payload contains invalid UTF-8 bytes, the request fails with HTTP 415\n (Unsupported Media Type). To store binary data, encode the payload using Base64 before\n uploading.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + }, + "ObjectIfMatch": { + "target": "com.amazonaws.s3#ObjectIfMatch", + "traits": { + "smithy.api#documentation": "

If specified, the operation only succeeds if the object's ETag matches the provided value.

", + "smithy.api#httpHeader": "x-amz-object-if-match" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

The checksum algorithm to use. Supported values: CRC32, CRC32C, CRC64NVME, SHA1, SHA256, SHA512, MD5, XXHASH64, XXHASH3, XXHASH128.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

Base64-encoded CRC32 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

Base64-encoded CRC32C checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

Base64-encoded CRC64NVME checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

Base64-encoded SHA1 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

Base64-encoded SHA256 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

Base64-encoded SHA512 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

Base64-encoded MD5 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

Base64-encoded XXHASH64 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

Base64-encoded XXHASH3 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

Base64-encoded XXHASH128 checksum of the annotation payload.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

Base64-encoded MD5 digest of the message.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with an HTTP 403 (Access Denied) error.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectLegalHold": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectLegalHoldRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectLegalHoldOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Applies a legal hold configuration to the specified object. For more information, see Locking Objects.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?legal-hold", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectLegalHoldOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectLegalHoldRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object that you want to place a legal hold on.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key name for the object that you want to place a legal hold on.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "LegalHold": { + "target": "com.amazonaws.s3#ObjectLockLegalHold", + "traits": { + "smithy.api#documentation": "

Container element for the legal hold configuration you want to apply to the specified object.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "LegalHold" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID of the object that you want to place a legal hold on.

", + "smithy.api#httpQuery": "versionId" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash for the request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectLockConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectLockConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectLockConfigurationOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock\n configuration will be applied by default to every new object placed in the specified bucket. For more\n information, see Locking\n Objects.

\n \n
    \n
  • \n

    The DefaultRetention settings require both a mode and a period.

    \n
  • \n
  • \n

    The DefaultRetention period can be either Days or Years\n but you must select one. You cannot specify Days and Years at the same\n time.

    \n
  • \n
  • \n

    You can enable Object Lock for new or existing buckets. For more information, see Configuring\n Object Lock.

    \n
  • \n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?object-lock", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectLockConfigurationOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectLockConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket whose Object Lock configuration you want to create or replace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ObjectLockConfiguration": { + "target": "com.amazonaws.s3#ObjectLockConfiguration", + "traits": { + "smithy.api#documentation": "

The Object Lock configuration that you want to apply to the specified bucket.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "ObjectLockConfiguration" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "Token": { + "target": "com.amazonaws.s3#ObjectLockToken", + "traits": { + "smithy.api#documentation": "

A token to allow Object Lock to be enabled for an existing bucket.

", + "smithy.api#httpHeader": "x-amz-bucket-object-lock-token" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash for the request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectOutput": { + "type": "structure", + "members": { + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration) in the Amazon S3 User Guide, the response\n includes this header. It includes the expiry-date and rule-id key-value pairs\n that provide information about object expiration. The value of the rule-id is\n URL-encoded.

\n \n

Object expiration information is not returned in directory buckets and this header returns the\n value \"NotImplemented\" in all responses for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-expiration" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag for the uploaded object.

\n

\n General purpose buckets - To ensure that data is not corrupted\n traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate\n the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5\n value.

\n

\n Directory buckets - The ETag for the object in a\n directory bucket isn't the MD5 digest of the object.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the object. This header is present if\n the object was uploaded with the CRC64NVME checksum algorithm, or if it was uploaded\n without a checksum (and Amazon S3 added the default checksum, CRC64NVME, to the uploaded\n object). For more information about how checksums are calculated with multipart uploads, see Checking object\n integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 digest of the object. This checksum is only present if the checksum was uploaded\n with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 digest of the object. This header is present if\n the object was uploaded with the SHA512 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 digest of the object. This header is present if\n the object was uploaded with the MD5 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the object. This header is present if\n the object was uploaded with the XXHASH64 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the object. This header is present if\n the object was uploaded with the XXHASH3 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the object. This header is present if\n the object was uploaded with the XXHASH128 checksum algorithm. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "ChecksumType": { + "target": "com.amazonaws.s3#ChecksumType", + "traits": { + "smithy.api#documentation": "

This header specifies the checksum type of the object, which determines how part-level checksums are\n combined to create an object-level checksum for multipart objects. For PutObject uploads,\n the checksum type is always FULL_OBJECT. You can use this header as a data integrity check\n to verify that the checksum type that is received is the same checksum that was specified. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-type" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

Version ID of the object.

\n

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the\n object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if\n Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.\n For more information about versioning, see Adding Objects to\n Versioning-Enabled Buckets in the Amazon S3 User Guide. For information about\n returning the versioning state of a bucket, see GetBucketVersioning.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. \n This value is stored as object metadata and automatically gets\n passed on to Amazon Web Services KMS for future GetObject \n operations on this object.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

The size of the object in bytes. This value is only be present if you append to an object.

\n \n

This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in\n directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-size" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectRequest": { + "type": "structure", + "members": { + "ACL": { + "target": "com.amazonaws.s3#ObjectCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the object. For more information, see Canned ACL in the\n Amazon S3 User Guide.

\n

When adding a new object, you can use headers to grant ACL-based permissions to individual\n Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on\n the object. By default, all objects are private. Only the owner has full access control. For more\n information, see Access Control\n List (ACL) Overview and Managing ACLs Using the REST API in the\n Amazon S3 User Guide.

\n

If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object\n Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept\n PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such\n as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in\n the XML format. PUT requests that contain other ACLs (for example, custom grants to certain\n Amazon Web Services accounts) fail and return a 400 error with the error code\n AccessControlListNotSupported. For more information, see Controlling ownership of objects and\n disabling ACLs in the Amazon S3 User Guide.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-acl" + } + }, + "Body": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

Object data.

", + "smithy.api#httpPayload": {} + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name to which the PUT action was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Can be used to specify caching behavior along the request/reply chain. For more information, see\n http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

", + "smithy.api#httpHeader": "Cache-Control" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object. For more information, see https://www.rfc-editor.org/rfc/rfc6266#section-4.

", + "smithy.api#httpHeader": "Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field. For more\n information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.

", + "smithy.api#httpHeader": "Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language the content is in.

", + "smithy.api#httpHeader": "Content-Language" + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

Size of the body in bytes. This parameter is useful when the size of the body cannot be determined\n automatically. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the message (without the headers) according to\n RFC 1864. This header can be used as a message integrity check to verify that the data is the same data\n that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an\n end-to-end integrity check. For more information about REST request authentication, see REST\n Authentication.

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is required for\n any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more\n information, see Uploading objects\n to an Object Lock enabled bucket in the Amazon S3 User Guide.

\n
\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the contents. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type.

", + "smithy.api#httpHeader": "Content-Type" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm\n or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

\n

For the x-amz-checksum-algorithm\n header, replace \n algorithm\n with the supported algorithm from the following list:

\n
    \n
  • \n

    \n CRC32\n

    \n
  • \n
  • \n

    \n CRC32C\n

    \n
  • \n
  • \n

    \n CRC64NVME\n

    \n
  • \n
  • \n

    \n MD5\n

    \n
  • \n
  • \n

    \n SHA1\n

    \n
  • \n
  • \n

    \n SHA256\n

    \n
  • \n
  • \n

    \n SHA512\n

    \n
  • \n
  • \n

    \n XXHASH3\n

    \n
  • \n
  • \n

    \n XXHASH64\n

    \n
  • \n
  • \n

    \n XXHASH128\n

    \n
  • \n
\n

For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If the individual checksum value you provide through x-amz-checksum-algorithm\n doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 fails the request with a BadDigest error.

\n \n

The Content-MD5 or x-amz-sdk-checksum-algorithm header is required for\n any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more\n information, see Uploading objects\n to an Object Lock enabled bucket in the Amazon S3 User Guide.

\n
\n

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit CRC64NVME\n checksum of the object. The CRC64NVME checksum is always a full object checksum. For more\n information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 160-bit SHA1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 256-bit SHA256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 512-bit SHA512\n digest of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit MD5\n digest of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH64\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH3\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit XXHASH128\n checksum of the object. For more information, see Checking object integrity in the Amazon S3\n User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable. For more information, see https://www.rfc-editor.org/rfc/rfc7234#section-5.3.

", + "smithy.api#httpHeader": "Expires" + } + }, + "IfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches\n the ETag of the object in S3. If the ETag values do not match, the operation returns a 412\n Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should fetch the object's ETag and\n retry the upload.

\n

Expects the ETag value as a string.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "IfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Uploads the object only if the object key name does not already exist in the bucket specified.\n Otherwise, Amazon S3 returns a 412 Precondition Failed error.

\n

If a conflicting operation occurs during the upload S3 returns a 409\n ConditionalRequestConflict response. On a 409 failure you should retry the upload.

\n

Expects the '*' (asterisk) character.

\n

For more information about conditional requests, see RFC 7232, or Conditional requests in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "GrantFullControl": { + "target": "com.amazonaws.s3#GrantFullControl", + "traits": { + "smithy.api#documentation": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-full-control" + } + }, + "GrantRead": { + "target": "com.amazonaws.s3#GrantRead", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the object data and its metadata.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read" + } + }, + "GrantReadACP": { + "target": "com.amazonaws.s3#GrantReadACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to read the object ACL.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-read-acp" + } + }, + "GrantWriteACP": { + "target": "com.amazonaws.s3#GrantWriteACP", + "traits": { + "smithy.api#documentation": "

Allows grantee to write the ACL for the applicable object.

\n \n
    \n
  • \n

    This functionality is not supported for directory buckets.

    \n
  • \n
  • \n

    This functionality is not supported for Amazon S3 on Outposts.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-grant-write-acp" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the PUT action was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "WriteOffsetBytes": { + "target": "com.amazonaws.s3#WriteOffsetBytes", + "traits": { + "smithy.api#documentation": "

Specifies the offset for appending data to existing objects in bytes. The offset must be equal to\n the size of the existing object being appended to. If no object exists, setting this header to 0 will\n create a new object.

\n \n

This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in\n directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-write-offset-bytes" + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm that was used when you store this object in Amazon S3 or\n Amazon FSx.

\n
    \n
  • \n

    \n General purpose buckets - You have four mutually exclusive\n options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage\n the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3),\n Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with\n server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3\n to encrypt data at rest by using server-side encryption with other key options. For more\n information, see Using Server-Side Encryption in\n the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your \n CreateSession requests or PUT object requests. Then, new objects \n are automatically encrypted with the desired encryption settings. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide. For more information about the encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads.

    \n

    In the Zonal endpoint API calls (except CopyObject and UploadPartCopy) using the REST API, the encryption request headers must match the encryption settings that are specified in the CreateSession request. \n You can't override the values of the encryption settings (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id, x-amz-server-side-encryption-context, and x-amz-server-side-encryption-bucket-key-enabled) that are specified in the CreateSession request. \n You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and \n Amazon S3 will use the encryption settings values from the CreateSession request to protect new objects in the directory bucket. \n

    \n \n

    When you use the CLI or the Amazon Web Services SDKs, for CreateSession, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the \n CreateSession request. It's not supported to override the encryption settings values in the CreateSession request. \n So in the Zonal endpoint API calls (except CopyObject and UploadPartCopy), \n the encryption request headers must match the default encryption configuration of the directory bucket.\n\n

    \n
    \n
  • \n
  • \n

    \n S3 access points for Amazon FSx - When accessing data stored in\n Amazon FSx file systems using S3 access points, the only valid server side encryption option is\n aws:fsx. All Amazon FSx file systems have encryption configured by default and are\n encrypted at rest. Data is automatically encrypted before being written to the file system, and\n automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD\n storage class provides high durability and high availability. Depending on performance needs, you can\n specify a different Storage Class. For more information, see Storage Classes in the\n Amazon S3 User Guide.

\n \n
    \n
  • \n

    Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in\n Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in\n Dedicated Local Zones.

    \n
  • \n
  • \n

    Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.

    \n
  • \n
\n
", + "smithy.api#httpHeader": "x-amz-storage-class" + } + }, + "WebsiteRedirectLocation": { + "target": "com.amazonaws.s3#WebsiteRedirectLocation", + "traits": { + "smithy.api#documentation": "

If the bucket is configured as a website, redirects requests for this object to another object in\n the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For\n information about object metadata, see Object Key and Metadata in the Amazon S3\n User Guide.

\n

In the following example, the request header sets the redirect to an object (anotherPage.html) in\n the same bucket:

\n

\n x-amz-website-redirect-location: /anotherPage.html\n

\n

In the following example, the request header sets the object redirect to another website:

\n

\n x-amz-website-redirect-location: http://www.example.com/\n

\n

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page\n Redirects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-website-redirect-location" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same\n account that's issuing the command, you must use the full Key ARN not the Key ID.

\n

\n General purpose buckets - If you specify x-amz-server-side-encryption with aws:kms or aws:kms:dsse, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS \n key to use. If you specify\n x-amz-server-side-encryption:aws:kms or\n x-amz-server-side-encryption:aws:kms:dsse, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key\n (aws/s3) to protect the data.

\n

\n Directory buckets - To encrypt data using SSE-KMS, it's recommended to specify the \nx-amz-server-side-encryption header to aws:kms. Then, the x-amz-server-side-encryption-aws-kms-key-id header implicitly uses \nthe bucket's default KMS customer managed key ID. If you want to explicitly set the \n x-amz-server-side-encryption-aws-kms-key-id header, it must match the bucket's default customer managed key (using key ID or ARN, not alias). Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n \n Incorrect key specification results in an HTTP 400 Bad Request error.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSEKMSEncryptionContext": { + "target": "com.amazonaws.s3#SSEKMSEncryptionContext", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for object encryption. The value of\n this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. \n This value is stored as object metadata and automatically gets passed on\n to Amazon Web Services KMS for future GetObject operations on\n this object.

\n

\n General purpose buckets - This value must be explicitly added during CopyObject operations if you want an additional encryption context for your object. For more information, see Encryption context in the Amazon S3 User Guide.

\n

\n Directory buckets - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-context" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using Key Management Service (KMS) keys (SSE-KMS).

\n

\n General purpose buckets - Setting this header to\n true causes Amazon S3 to use an S3 Bucket Key for object encryption with\n SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3\n Bucket Key.

\n

\n Directory buckets - S3 Bucket Keys are always enabled for GET and PUT operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject, UploadPartCopy, the Copy operation in Batch Operations, or \n the import jobs. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#TaggingHeader", + "traits": { + "smithy.api#documentation": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example,\n \"Key1=Value1\")

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-tagging" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

The Object Lock mode that you want to apply to this object.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-mode" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

The date and time when you want this object's Object Lock to expire. Must be formatted as a\n timestamp parameter.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-retain-until-date" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether a legal hold will be applied to this object. For more information about S3 Object\n Lock, see Object Lock in\n the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" + } + }, + "ObjectLockEventHold": { + "target": "com.amazonaws.s3#ObjectLockEventHold", + "traits": { + "smithy.api#documentation": "

Specifies the event hold status to apply to this object. Set to ON to enable or\n OFF to disable.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold" + } + }, + "ObjectLockEventHoldDurationDays": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationDays", + "traits": { + "smithy.api#documentation": "

Specifies the event hold duration in days to apply to this object. You cannot specify a\n duration in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-days" + } + }, + "ObjectLockEventHoldDurationYears": { + "target": "com.amazonaws.s3#ObjectLockEventHoldDurationYears", + "traits": { + "smithy.api#documentation": "

Specifies the event hold duration in years to apply to this object. You cannot specify a\n duration in both days and years.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-object-lock-event-hold-duration-years" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectRetention": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectRetentionRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectRetentionOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Places an Object Retention configuration on an object. For more information, see Locking Objects. Users or\n accounts require the s3:PutObjectRetention permission in order to place an Object Retention\n configuration on objects. Bypassing a Governance Retention configuration requires the\n s3:BypassGovernanceRetention permission.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?retention", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectRetentionOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectRetentionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The key name for the object that you want to apply this Object Retention configuration to.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Retention": { + "target": "com.amazonaws.s3#ObjectLockRetention", + "traits": { + "smithy.api#documentation": "

The container element for the Object Retention configuration.

", + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "Retention" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The version ID for the object that you want to apply this Object Retention configuration to.

", + "smithy.api#httpQuery": "versionId" + } + }, + "BypassGovernanceRetention": { + "target": "com.amazonaws.s3#BypassGovernanceRetention", + "traits": { + "smithy.api#documentation": "

Indicates whether this action should bypass Governance-mode restrictions.

", + "smithy.api#httpHeader": "x-amz-bypass-governance-retention" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash for the request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutObjectTagging": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutObjectTaggingRequest" + }, + "output": { + "target": "com.amazonaws.s3#PutObjectTaggingOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair.\n For more information, see Object Tagging.

\n

You can associate tags with an object by sending a PUT request against the tagging subresource that\n is associated with the object. You can retrieve tags by sending a GET request. For more information, see\n GetObjectTagging.

\n

For tagging-related restrictions related to characters and encodings, see Tag\n Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

\n

To use this operation, you must have permission to perform the s3:PutObjectTagging\n action. By default, the bucket owner has this permission and can grant this permission to others.

\n

To put tags of any other version, use the versionId query parameter. You also need\n permission for the s3:PutObjectVersionTagging action.

\n

\n PutObjectTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

\n
    \n
  • \n

    \n InvalidTag - The tag provided was not a valid tag. This error can occur if\n the tag did not pass input validation. For more information, see Object Tagging.

    \n
  • \n
  • \n

    \n MalformedXML - The XML provided does not match the schema.

    \n
  • \n
  • \n

    \n OperationAborted - A conflicting conditional action is currently in progress\n against this resource. Please try again.

    \n
  • \n
  • \n

    \n InternalError - The service was unable to apply the provided tag to the\n object.

    \n
  • \n
\n

The following operations are related to PutObjectTagging:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To add tags to an existing object", + "documentation": "The following example adds tags to an existing object.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg", + "Tagging": { + "TagSet": [ + { + "Key": "Key3", + "Value": "Value3" + }, + { + "Key": "Key4", + "Value": "Value4" + } + ] + } + }, + "output": { + "VersionId": "null" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?tagging", + "code": 200 + } + } + }, + "com.amazonaws.s3#PutObjectTaggingOutput": { + "type": "structure", + "members": { + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object the tag-set was added to.

", + "smithy.api#httpHeader": "x-amz-version-id" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#PutObjectTaggingRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Name of the object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

The versionId of the object that the tag-set will be added to.

", + "smithy.api#httpQuery": "versionId" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash for the request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#Tagging", + "traits": { + "smithy.api#documentation": "

Container for the TagSet and Tag elements

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "Tagging" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#documentation": "

Confirms that the requester knows that she or he will be charged for the tagging object\n request. Bucket owners need not specify this parameter in their requests.

", + "smithy.api#httpHeader": "x-amz-request-payer" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#PutPublicAccessBlock": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#PutPublicAccessBlockRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information\n about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

\n \n

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an\n object, it checks the PublicAccessBlock configuration for both the bucket (or\n the bucket that contains the object) and the bucket owner's account. Account-level settings\n automatically inherit from organization-level policies when present. If the\n PublicAccessBlock configurations are different between the bucket and the\n account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level\n settings.

\n
\n

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

\n

The following operations are related to PutPublicAccessBlock:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?publicAccessBlock", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#PutPublicAccessBlockRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to\n set.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The MD5 hash of the PutPublicAccessBlock request body.

\n

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "PublicAccessBlockConfiguration": { + "target": "com.amazonaws.s3#PublicAccessBlockConfiguration", + "traits": { + "smithy.api#documentation": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3\n bucket. You can enable the configuration options in any combination. For more information\n about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon S3 User Guide.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "PublicAccessBlockConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#QueueArn": { + "type": "string" + }, + "com.amazonaws.s3#QueueConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#NotificationId" + }, + "QueueArn": { + "target": "com.amazonaws.s3#QueueArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it\n detects events of the specified type.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Queue" + } + }, + "Events": { + "target": "com.amazonaws.s3#EventList", + "traits": { + "smithy.api#documentation": "

A collection of bucket events for which to send notifications

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Event" + } + }, + "Filter": { + "target": "com.amazonaws.s3#NotificationConfigurationFilter" + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS)\n queue when Amazon S3 detects specified events.

" + } + }, + "com.amazonaws.s3#QueueConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#QueueConfiguration" + } + }, + "com.amazonaws.s3#Quiet": { + "type": "boolean" + }, + "com.amazonaws.s3#QuoteCharacter": { + "type": "string" + }, + "com.amazonaws.s3#QuoteEscapeCharacter": { + "type": "string" + }, + "com.amazonaws.s3#QuoteFields": { + "type": "enum", + "members": { + "ALWAYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALWAYS" + } + }, + "ASNEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASNEEDED" + } + } + } + }, + "com.amazonaws.s3#Range": { + "type": "string" + }, + "com.amazonaws.s3#RecordDelimiter": { + "type": "string" + }, + "com.amazonaws.s3#RecordExpiration": { + "type": "structure", + "members": { + "Expiration": { + "target": "com.amazonaws.s3#ExpirationState", + "traits": { + "smithy.api#documentation": "

\n Specifies whether journal table record expiration is enabled or disabled.\n

", + "smithy.api#required": {} + } + }, + "Days": { + "target": "com.amazonaws.s3#RecordExpirationDays", + "traits": { + "smithy.api#documentation": "

\n If you enable journal table record expiration, you can set the number of days to retain your \n journal table records. Journal table records must be retained for a minimum of 7 days. To set \n this value, specify any whole number from 7 to 2147483647. For example, \n to retain your journal table records for one year, set this value to 365.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The journal table record expiration settings for a journal table in an S3 Metadata configuration.\n

" + } + }, + "com.amazonaws.s3#RecordExpirationDays": { + "type": "integer" + }, + "com.amazonaws.s3#RecordsEvent": { + "type": "structure", + "members": { + "Payload": { + "target": "com.amazonaws.s3#Body", + "traits": { + "smithy.api#documentation": "

The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record\n will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might\n split the same record across multiple record frames instead of aggregating the results in memory. Some\n S3 clients (for example, the SDK for Java) handle this behavior by creating a\n ByteStream out of the response by default. Other clients might not handle this behavior\n by default. In those cases, you must aggregate the results on the client side and parse the\n response.

", + "smithy.api#eventPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The container for the records event.

" + } + }, + "com.amazonaws.s3#Redirect": { + "type": "structure", + "members": { + "HostName": { + "target": "com.amazonaws.s3#HostName", + "traits": { + "smithy.api#documentation": "

The host name to use in the redirect request.

" + } + }, + "HttpRedirectCode": { + "target": "com.amazonaws.s3#HttpRedirectCode", + "traits": { + "smithy.api#documentation": "

The HTTP redirect code to use on the response. Not required if one of the siblings is\n present.

" + } + }, + "Protocol": { + "target": "com.amazonaws.s3#Protocol", + "traits": { + "smithy.api#documentation": "

Protocol to use when redirecting requests. The default is the protocol that is used in the original\n request.

" + } + }, + "ReplaceKeyPrefixWith": { + "target": "com.amazonaws.s3#ReplaceKeyPrefixWith", + "traits": { + "smithy.api#documentation": "

The object key prefix to use in the redirect request. For example, to redirect requests for all\n pages with prefix docs/ (objects in the docs/ folder) to\n documents/, you can set a condition block with KeyPrefixEquals set to\n docs/ and in the Redirect set ReplaceKeyPrefixWith to\n /documents. Not required if one of the siblings is present. Can be present only if\n ReplaceKeyWith is not provided.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "ReplaceKeyWith": { + "target": "com.amazonaws.s3#ReplaceKeyWith", + "traits": { + "smithy.api#documentation": "

The specific object key to use in the redirect request. For example, redirect request to\n error.html. Not required if one of the siblings is present. Can be present only if\n ReplaceKeyPrefixWith is not provided.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies how requests are redirected. In the event of an error, you can specify a different error\n code to return.

" + } + }, + "com.amazonaws.s3#RedirectAllRequestsTo": { + "type": "structure", + "members": { + "HostName": { + "target": "com.amazonaws.s3#HostName", + "traits": { + "smithy.api#documentation": "

Name of the host where requests are redirected.

", + "smithy.api#required": {} + } + }, + "Protocol": { + "target": "com.amazonaws.s3#Protocol", + "traits": { + "smithy.api#documentation": "

Protocol to use when redirecting requests. The default is the protocol that is used in the original\n request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#Region": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.s3#RenameObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#RenameObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#RenameObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#IdempotencyParameterMismatch" + } + ], + "traits": { + "smithy.api#documentation": "

Renames an existing object in a directory bucket that uses the S3 Express One Zone storage class.\n You can use RenameObject by specifying an existing object’s name as the source and the new\n name of the object as the destination within the same directory bucket.

\n \n

\n RenameObject is only supported for objects stored in the S3 Express One Zone storage\n class.

\n
\n

To prevent overwriting an object, you can use the If-None-Match conditional\n header.

\n
    \n
  • \n

    \n If-None-Match - Renames the object only if an object\n with the specified name does not already exist in the directory bucket. If you don't want to\n overwrite an existing object, you can add the If-None-Match conditional header with the\n value ‘*’ in the RenameObject request. Amazon S3 then returns a 412\n Precondition Failed error if the object with the specified name already exists. For more\n information, see RFC 7232.

    \n
  • \n
\n
\n
Permissions
\n
\n

To grant access to the RenameObject operation on a directory bucket, we\n recommend that you use the CreateSession operation for session-based authorization.\n Specifically, you grant the s3express:CreateSession permission to the directory\n bucket in a bucket policy or an IAM identity-based policy. Then, you make the\n CreateSession API call on the directory bucket to obtain a session token. With the\n session token in your request header, you can make API requests to this operation. After the\n session token expires, you make another CreateSession API call to generate a new\n session token for use. The Amazon Web Services CLI and SDKs will create and manage your session including\n refreshing the session token automatically to avoid service interruptions when a session expires.\n In your bucket policy, you can specify the s3express:SessionMode condition key to\n control who can create a ReadWrite or ReadOnly session. A\n ReadWrite session is required for executing all the Zonal endpoint API operations,\n including RenameObject. For more information about authorization, see \n CreateSession\n . To learn more about Zonal endpoint API operations, see\n Authorizing Zonal endpoint API operations with CreateSession in the Amazon S3 User\n Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?renameObject", + "code": 200 + } + } + }, + "com.amazonaws.s3#RenameObjectOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#RenameObjectRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name of the directory bucket containing the object.

\n

You must use virtual-hosted-style requests in the format\n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not\n supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must\n follow the format bucket-base-name--zone-id--x-s3 (for example,\n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming restrictions, see\n Directory bucket naming rules in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Key name of the object to rename.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "RenameSource": { + "target": "com.amazonaws.s3#RenameSource", + "traits": { + "smithy.api#documentation": "

Specifies the source for the rename operation. The value must be URL encoded.

", + "smithy.api#httpHeader": "x-amz-rename-source", + "smithy.api#required": {} + } + }, + "DestinationIfMatch": { + "target": "com.amazonaws.s3#IfMatch", + "traits": { + "smithy.api#documentation": "

Renames the object only if the ETag (entity tag) value provided during the operation matches the\n ETag of the object in S3. The If-Match header field makes the request method conditional on\n ETags. If the ETag values do not match, the operation returns a 412 Precondition Failed\n error.

\n

Expects the ETag value as a string.

", + "smithy.api#httpHeader": "If-Match" + } + }, + "DestinationIfNoneMatch": { + "target": "com.amazonaws.s3#IfNoneMatch", + "traits": { + "smithy.api#documentation": "

Renames the object only if the destination does not already exist in the specified directory\n bucket. If the object does exist when you send a request with If-None-Match:*, the S3 API\n will return a 412 Precondition Failed error, preventing an overwrite. The\n If-None-Match header prevents overwrites of existing data by validating that there's not\n an object with the same key name already in your directory bucket.

\n

Expects the * character (asterisk).

", + "smithy.api#httpHeader": "If-None-Match" + } + }, + "DestinationIfModifiedSince": { + "target": "com.amazonaws.s3#IfModifiedSince", + "traits": { + "smithy.api#documentation": "

Renames the object if the destination exists and if it has been modified since the specified\n time.

", + "smithy.api#httpHeader": "If-Modified-Since" + } + }, + "DestinationIfUnmodifiedSince": { + "target": "com.amazonaws.s3#IfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Renames the object if it hasn't been modified since the specified time.

", + "smithy.api#httpHeader": "If-Unmodified-Since" + } + }, + "SourceIfMatch": { + "target": "com.amazonaws.s3#RenameSourceIfMatch", + "traits": { + "smithy.api#documentation": "

Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.\n

", + "smithy.api#httpHeader": "x-amz-rename-source-if-match" + } + }, + "SourceIfNoneMatch": { + "target": "com.amazonaws.s3#RenameSourceIfNoneMatch", + "traits": { + "smithy.api#documentation": "

Renames the object if the source exists and if its entity tag (ETag) is different than the specified\n ETag. If an asterisk (*) character is provided, the operation will fail and return a\n 412 Precondition Failed error.

", + "smithy.api#httpHeader": "x-amz-rename-source-if-none-match" + } + }, + "SourceIfModifiedSince": { + "target": "com.amazonaws.s3#RenameSourceIfModifiedSince", + "traits": { + "smithy.api#documentation": "

Renames the object if the source exists and if it has been modified since the specified time.

", + "smithy.api#httpHeader": "x-amz-rename-source-if-modified-since" + } + }, + "SourceIfUnmodifiedSince": { + "target": "com.amazonaws.s3#RenameSourceIfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Renames the object if the source exists and hasn't been modified since the specified time.

", + "smithy.api#httpHeader": "x-amz-rename-source-if-unmodified-since" + } + }, + "ClientToken": { + "target": "com.amazonaws.s3#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126.

\n \n

\n RenameObject supports idempotency using a client token. To make an idempotent API request\n using RenameObject, specify a client token in the request. You should not reuse the same\n client token for other API requests. If you retry a request that completed successfully using the same\n client token and the same parameters, the retry succeeds without performing any further actions. If\n you retry a successful request using the same client token, but one or more of the parameters are\n different, the retry fails and an IdempotentParameterMismatch error is returned.

\n
", + "smithy.api#httpHeader": "x-amz-client-token", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#RenameSource": { + "type": "string", + "traits": { + "smithy.api#pattern": "^\\/?.+\\/.+$" + } + }, + "com.amazonaws.s3#RenameSourceIfMatch": { + "type": "string" + }, + "com.amazonaws.s3#RenameSourceIfModifiedSince": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#RenameSourceIfNoneMatch": { + "type": "string" + }, + "com.amazonaws.s3#RenameSourceIfUnmodifiedSince": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#ReplaceKeyPrefixWith": { + "type": "string" + }, + "com.amazonaws.s3#ReplaceKeyWith": { + "type": "string" + }, + "com.amazonaws.s3#ReplicaKmsKeyID": { + "type": "string" + }, + "com.amazonaws.s3#ReplicaModifications": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#ReplicaModificationsStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 replicates modifications on replicas.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter that you can specify for selection for modifications on replicas. Amazon S3 doesn't replicate\n replica modifications by default. In the latest version of replication configuration (when\n Filter is specified), you can specify this element and set the status to\n Enabled to replicate modifications on replicas.

\n \n

If you don't specify the Filter element, Amazon S3 assumes that the replication\n configuration is the earlier version, V1. In the earlier version, this element is not allowed.

\n
" + } + }, + "com.amazonaws.s3#ReplicaModificationsStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#ReplicationConfiguration": { + "type": "structure", + "members": { + "Role": { + "target": "com.amazonaws.s3#Role", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that Amazon S3 assumes when replicating\n objects. For more information, see How to Set Up Replication in the\n Amazon S3 User Guide.

", + "smithy.api#required": {} + } + }, + "Rules": { + "target": "com.amazonaws.s3#ReplicationRules", + "traits": { + "smithy.api#documentation": "

A container for one or more replication rules. A replication configuration must have at least one\n rule and can contain a maximum of 1,000 rules.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Rule" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication\n configuration is 2 MB.

" + } + }, + "com.amazonaws.s3#ReplicationRule": { + "type": "structure", + "members": { + "ID": { + "target": "com.amazonaws.s3#ID", + "traits": { + "smithy.api#documentation": "

A unique identifier for the rule. The maximum value is 255 characters.

" + } + }, + "Priority": { + "target": "com.amazonaws.s3#Priority", + "traits": { + "smithy.api#documentation": "

The priority indicates which rule has precedence whenever two or more replication rules conflict.\n Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or\n more rules with the same destination bucket, then objects will be replicated according to the rule with\n the highest priority. The higher the number, the higher the priority.

\n

For more information, see Replication in the Amazon S3 User Guide.

" + } + }, + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#documentation": "

An object key name prefix that identifies the object or objects to which the rule applies. The\n maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.\n

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "Filter": { + "target": "com.amazonaws.s3#ReplicationRuleFilter" + }, + "Status": { + "target": "com.amazonaws.s3#ReplicationRuleStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the rule is enabled.

", + "smithy.api#required": {} + } + }, + "SourceSelectionCriteria": { + "target": "com.amazonaws.s3#SourceSelectionCriteria", + "traits": { + "smithy.api#documentation": "

A container that describes additional filters for identifying the source objects that you want to\n replicate. You can choose to enable or disable the replication of these objects. Currently, Amazon S3\n supports only the filter that you can specify for objects created with server-side encryption using a\n customer managed key stored in Amazon Web Services Key Management Service (SSE-KMS).

" + } + }, + "ExistingObjectReplication": { + "target": "com.amazonaws.s3#ExistingObjectReplication", + "traits": { + "smithy.api#documentation": "

Optional configuration to replicate existing source bucket objects.

\n \n

This parameter is no longer supported. To replicate existing objects, see Replicating\n existing objects with S3 Batch Replication in the\n Amazon S3 User Guide.

\n
" + } + }, + "Destination": { + "target": "com.amazonaws.s3#Destination", + "traits": { + "smithy.api#documentation": "

A container for information about the replication destination and its configurations including\n enabling the S3 Replication Time Control (S3 RTC).

", + "smithy.api#required": {} + } + }, + "DeleteMarkerReplication": { + "target": "com.amazonaws.s3#DeleteMarkerReplication" + } + }, + "traits": { + "smithy.api#documentation": "

Specifies which Amazon S3 objects to replicate and where to store the replicas.

" + } + }, + "com.amazonaws.s3#ReplicationRuleAndOperator": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

An object key name prefix that identifies the subset of objects to which the rule applies.

" + } + }, + "Tags": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

An array of tags containing key and value pairs.

", + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Tag" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for specifying rule filters. The filters determine the subset of objects to which the\n rule applies. This element is required only if you specify more than one filter.

\n

For example:

\n
    \n
  • \n

    If you specify both a Prefix and a Tag filter, wrap these filters in\n an And tag.

    \n
  • \n
  • \n

    If you specify a filter based on multiple tags, wrap the Tag elements in an\n And tag.

    \n
  • \n
" + } + }, + "com.amazonaws.s3#ReplicationRuleFilter": { + "type": "structure", + "members": { + "Prefix": { + "target": "com.amazonaws.s3#Prefix", + "traits": { + "smithy.api#documentation": "

An object key name prefix that identifies the subset of objects to which the rule applies.

\n \n

Replacement must be made for object keys containing special characters (such as carriage returns) when using \n XML requests. For more information, see \n XML related object key constraints.

\n
" + } + }, + "Tag": { + "target": "com.amazonaws.s3#Tag", + "traits": { + "smithy.api#documentation": "

A container for specifying a tag key and value.

\n

The rule applies only to objects that have the tag in their tag set.

" + } + }, + "And": { + "target": "com.amazonaws.s3#ReplicationRuleAndOperator", + "traits": { + "smithy.api#documentation": "

A container for specifying rule filters. The filters determine the subset of objects to which the\n rule applies. This element is required only if you specify more than one filter. For example:

\n
    \n
  • \n

    If you specify both a Prefix and a Tag filter, wrap these filters in\n an And tag.

    \n
  • \n
  • \n

    If you specify a filter based on multiple tags, wrap the Tag elements in an\n And tag.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter that identifies the subset of objects to which the replication rule applies. A\n Filter must specify exactly one Prefix, Tag, or an\n And child element.

" + } + }, + "com.amazonaws.s3#ReplicationRuleStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#ReplicationRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ReplicationRule" + } + }, + "com.amazonaws.s3#ReplicationStatus": { + "type": "enum", + "members": { + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "REPLICA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLICA" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + } + } + }, + "com.amazonaws.s3#ReplicationTime": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#ReplicationTimeStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the replication time is enabled.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.s3#ReplicationTimeValue", + "traits": { + "smithy.api#documentation": "

A container specifying the time by which replication should be complete for all objects and\n operations on objects.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container specifying S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and\n the time when all objects and operations on objects must be replicated. Must be specified together with\n a Metrics block.

" + } + }, + "com.amazonaws.s3#ReplicationTimeStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#ReplicationTimeValue": { + "type": "structure", + "members": { + "Minutes": { + "target": "com.amazonaws.s3#Minutes", + "traits": { + "smithy.api#documentation": "

Contains an integer specifying time in minutes.

\n

Valid value: 15

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics\n EventThreshold.

" + } + }, + "com.amazonaws.s3#RequestCharged": { + "type": "enum", + "members": { + "requester": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "requester" + } + } + }, + "traits": { + "smithy.api#documentation": "

If present, indicates that the requester was successfully charged for the request. For more\n information, see Using Requester Pays buckets for storage transfers and usage in the Amazon Simple\n Storage Service user guide.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "com.amazonaws.s3#RequestPayer": { + "type": "enum", + "members": { + "requester": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "requester" + } + } + }, + "traits": { + "smithy.api#documentation": "

Confirms that the requester knows that they will be charged for the request. Bucket owners need not\n specify this parameter in their requests. If either the source or destination S3 bucket has Requester\n Pays enabled, the requester will pay for the corresponding charges. For information about\n downloading objects from Requester Pays buckets, see Downloading Objects in Requester Pays\n Buckets in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets.

\n
" + } + }, + "com.amazonaws.s3#RequestPaymentConfiguration": { + "type": "structure", + "members": { + "Payer": { + "target": "com.amazonaws.s3#Payer", + "traits": { + "smithy.api#documentation": "

Specifies who pays for the download and request fees.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for Payer.

" + } + }, + "com.amazonaws.s3#RequestProgress": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.s3#EnableRequestProgress", + "traits": { + "smithy.api#documentation": "

Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default\n value: FALSE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for specifying if periodic QueryProgress messages should be sent.

" + } + }, + "com.amazonaws.s3#RequestRoute": { + "type": "string" + }, + "com.amazonaws.s3#RequestToken": { + "type": "string" + }, + "com.amazonaws.s3#ResponseCacheControl": { + "type": "string" + }, + "com.amazonaws.s3#ResponseContentDisposition": { + "type": "string" + }, + "com.amazonaws.s3#ResponseContentEncoding": { + "type": "string" + }, + "com.amazonaws.s3#ResponseContentLanguage": { + "type": "string" + }, + "com.amazonaws.s3#ResponseContentType": { + "type": "string" + }, + "com.amazonaws.s3#ResponseExpires": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "http-date" + } + }, + "com.amazonaws.s3#Restore": { + "type": "string" + }, + "com.amazonaws.s3#RestoreExpiryDate": { + "type": "timestamp" + }, + "com.amazonaws.s3#RestoreObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#RestoreObjectRequest" + }, + "output": { + "target": "com.amazonaws.s3#RestoreObjectOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#ObjectAlreadyInActiveTierError" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Restores an archived copy of an object back into Amazon S3

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

This action performs the following types of requests:

\n
    \n
  • \n

    \n restore an archive - Restore an archived object

    \n
  • \n
\n

For more information about the S3 structure in the request body, see the\n following:

\n \n
\n
Permissions
\n
\n

To use this operation, you must have permissions to perform the s3:RestoreObject\n action. The bucket owner has this permission by default and can grant this permission to others.\n For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

\n
\n
Restoring objects
\n
\n

Objects that you archive to the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive\n storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in\n real time. For objects in the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive\n storage classes, you must first initiate a restore request, and then wait until a temporary copy\n of the object is available. If you want a permanent copy of the object, create a copy of it in the\n Amazon S3 Standard storage class in your S3 bucket. To access an archived object, you must restore the\n object for the duration (number of days) that you specify. For objects in the Archive Access or\n Deep Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request, and\n then wait until the object is moved into the Frequent Access tier.

\n

To restore a specific object version, you can provide a version ID. If you don't provide a\n version ID, Amazon S3 restores the current version.

\n

When restoring an archived object, you can specify one of the following data access tier\n options in the Tier element of the request body:

\n
    \n
  • \n

    \n Expedited - Expedited retrievals allow you to quickly access your data stored\n in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier when occasional\n urgent requests for restoring archives are required. For all but the largest archived objects\n (250 MB+), data accessed using Expedited retrievals is typically made available within 1–5\n minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is\n available when you need it. Expedited retrievals and provisioned capacity are not available\n for objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
  • \n

    \n Standard - Standard retrievals allow you to access any of your archived\n objects within several hours. This is the default option for retrieval requests that do not\n specify the retrieval option. Standard retrievals typically finish within 3–5 hours for\n objects stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier.\n They typically finish within 12 hours for objects stored in the\n S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard\n retrievals are free for objects stored in S3 Intelligent-Tiering.

    \n
  • \n
  • \n

    \n Bulk - Bulk retrievals free for objects stored in the S3 Glacier Flexible\n Retrieval and S3 Intelligent-Tiering storage classes, enabling you to retrieve large amounts,\n even petabytes, of data at no cost. Bulk retrievals typically finish within 5–12 hours for\n objects stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier.\n Bulk retrievals are also the lowest-cost retrieval option when restoring objects from\n S3 Glacier Deep Archive. They typically finish within 48 hours for objects stored in\n the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

    \n
  • \n
\n

For more information about archive retrieval options and provisioned capacity for\n Expedited data access, see Restoring Archived Objects in the\n Amazon S3 User Guide.

\n

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it\n is in progress. For more information, see \n Upgrading the speed of an in-progress restore in the\n Amazon S3 User Guide.

\n

To get the status of object restoration, you can send a HEAD request. Operations\n return the x-amz-restore header, which provides information about the restoration\n status, in the response. You can use Amazon S3 event notifications to notify you when a restore is\n initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in\n the Amazon S3 User Guide.

\n

After restoring an archived object, you can update the restoration period by reissuing the\n request with a new period. Amazon S3 updates the restoration period relative to the current time and\n charges only for the request-there are no data transfer charges. You cannot update the\n restoration period when Amazon S3 is actively processing your current restore request for the\n object.

\n

If your bucket has a lifecycle configuration with a rule that includes an expiration action,\n the object expiration overrides the life span that you specify in a restore request. For example,\n if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3\n deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in\n Amazon S3 User Guide.

\n
\n
Responses
\n
\n

A successful action returns either the 200 OK or 202 Accepted status\n code.

\n
    \n
  • \n

    If the object is not previously restored, then Amazon S3 returns 202 Accepted in\n the response.

    \n
  • \n
  • \n

    If the object is previously restored, Amazon S3 returns 200 OK in the response.\n

    \n
  • \n
\n
    \n
  • \n

    Special errors:

    \n
      \n
    • \n

      \n Code: RestoreAlreadyInProgress\n

      \n
    • \n
    • \n

      \n Cause: Object restore is already in progress.\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 409 Conflict\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: Client\n

      \n
    • \n
    \n
  • \n
  • \n
      \n
    • \n

      \n Code: GlacierExpeditedRetrievalNotAvailable\n

      \n
    • \n
    • \n

      \n Cause: expedited retrievals are currently not available. Try again later.\n (Returned if there is insufficient capacity to process the Expedited request. This error\n applies only to Expedited retrievals and not to S3 Standard or Bulk\n retrievals.)\n

      \n
    • \n
    • \n

      \n HTTP Status Code: 503\n

      \n
    • \n
    • \n

      \n SOAP Fault Code Prefix: N/A\n

      \n
    • \n
    \n
  • \n
\n
\n
\n

The following operations are related to RestoreObject:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To restore an archived object", + "documentation": "The following example restores for one day an archived copy of an object back into Amazon S3 bucket.", + "input": { + "Bucket": "examplebucket", + "Key": "archivedobjectkey", + "RestoreRequest": { + "Days": 1, + "GlacierJobParameters": { + "Tier": "Expedited" + } + } + }, + "output": {} + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}/{Key+}?restore", + "code": 200 + } + } + }, + "com.amazonaws.s3#RestoreObjectOutput": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "RestoreOutputPath": { + "target": "com.amazonaws.s3#RestoreOutputPath", + "traits": { + "smithy.api#documentation": "

Indicates the path in the provided S3 output location where Select results will be restored\n to.

", + "smithy.api#httpHeader": "x-amz-restore-output-path" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#RestoreObjectRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name containing the object to restore.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the action was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

VersionId used to reference a specific version of the object.

", + "smithy.api#httpQuery": "versionId" + } + }, + "RestoreRequest": { + "target": "com.amazonaws.s3#RestoreRequest", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#xmlName": "RestoreRequest" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#RestoreOutputPath": { + "type": "string" + }, + "com.amazonaws.s3#RestoreRequest": { + "type": "structure", + "members": { + "Days": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

Lifetime of the active copy in days. Do not use with restores that specify\n OutputLocation.

\n

The Days element is required for regular restores, and must not be provided for select\n requests.

" + } + }, + "GlacierJobParameters": { + "target": "com.amazonaws.s3#GlacierJobParameters", + "traits": { + "smithy.api#documentation": "

S3 Glacier related parameters pertaining to this job. Do not use with restores that specify\n OutputLocation.

" + } + }, + "Type": { + "target": "com.amazonaws.s3#RestoreRequestType", + "traits": { + "smithy.api#documentation": "\n

Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can\n continue to use the feature as usual. Learn more\n

\n
\n

Type of restore request.

" + } + }, + "Tier": { + "target": "com.amazonaws.s3#Tier", + "traits": { + "smithy.api#documentation": "

Retrieval tier at which the restore will be processed.

" + } + }, + "Description": { + "target": "com.amazonaws.s3#Description", + "traits": { + "smithy.api#documentation": "

The optional description for the job.

" + } + }, + "SelectParameters": { + "target": "com.amazonaws.s3#SelectParameters", + "traits": { + "smithy.api#documentation": "\n

Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can\n continue to use the feature as usual. Learn more\n

\n
\n

Describes the parameters for Select job types.

" + } + }, + "OutputLocation": { + "target": "com.amazonaws.s3#OutputLocation", + "traits": { + "smithy.api#documentation": "

Describes the location where the restore job's output is stored.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for restore job parameters.

" + } + }, + "com.amazonaws.s3#RestoreRequestType": { + "type": "enum", + "members": { + "SELECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SELECT" + } + } + } + }, + "com.amazonaws.s3#RestoreStatus": { + "type": "structure", + "members": { + "IsRestoreInProgress": { + "target": "com.amazonaws.s3#IsRestoreInProgress", + "traits": { + "smithy.api#documentation": "

Specifies whether the object is currently being restored. If the object restoration is in progress,\n the header returns the value TRUE. For example:

\n

\n x-amz-optional-object-attributes: IsRestoreInProgress=\"true\"\n

\n

If the object restoration has completed, the header returns the value FALSE. For\n example:

\n

\n x-amz-optional-object-attributes: IsRestoreInProgress=\"false\",\n RestoreExpiryDate=\"2012-12-21T00:00:00.000Z\"\n

\n

If the object hasn't been restored, there is no header response.

" + } + }, + "RestoreExpiryDate": { + "target": "com.amazonaws.s3#RestoreExpiryDate", + "traits": { + "smithy.api#documentation": "

Indicates when the restored copy will expire. This value is populated only if the object has already\n been restored. For example:

\n

\n x-amz-optional-object-attributes: IsRestoreInProgress=\"false\",\n RestoreExpiryDate=\"2012-12-21T00:00:00.000Z\"\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored\n before they can be retrieved. For more information about these storage classes and how to work with\n archived objects, see \n Working with archived objects in the Amazon S3 User Guide.

\n \n

This functionality is not supported for directory buckets. Directory buckets only support EXPRESS_ONEZONE (the S3 Express One Zone storage class) in Availability Zones and ONEZONE_IA (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.

\n
" + } + }, + "com.amazonaws.s3#Role": { + "type": "string" + }, + "com.amazonaws.s3#RoutingRule": { + "type": "structure", + "members": { + "Condition": { + "target": "com.amazonaws.s3#Condition", + "traits": { + "smithy.api#documentation": "

A container for describing a condition that must be met for the specified redirect to apply. For\n example, 1. If request is for pages in the /docs folder, redirect to the\n /documents folder. 2. If request results in HTTP error 4xx, redirect request to another\n host where you might process the error.

" + } + }, + "Redirect": { + "target": "com.amazonaws.s3#Redirect", + "traits": { + "smithy.api#documentation": "

Container for redirect information. You can redirect requests to another host, to another page, or\n with another protocol. In the event of an error, you can specify a different error code to\n return.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the redirect behavior and when a redirect is applied. For more information about routing\n rules, see Configuring\n advanced conditional redirects in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#RoutingRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#RoutingRule", + "traits": { + "smithy.api#xmlName": "RoutingRule" + } + } + }, + "com.amazonaws.s3#S3KeyFilter": { + "type": "structure", + "members": { + "FilterRules": { + "target": "com.amazonaws.s3#FilterRuleList", + "traits": { + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "FilterRule" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for object key name prefix and suffix filtering rules.

" + } + }, + "com.amazonaws.s3#S3Location": { + "type": "structure", + "members": { + "BucketName": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket where the restore results will be placed.

", + "smithy.api#required": {} + } + }, + "Prefix": { + "target": "com.amazonaws.s3#LocationPrefix", + "traits": { + "smithy.api#documentation": "

The prefix that is prepended to the restore results for this request.

", + "smithy.api#required": {} + } + }, + "Encryption": { + "target": "com.amazonaws.s3#Encryption" + }, + "CannedACL": { + "target": "com.amazonaws.s3#ObjectCannedACL", + "traits": { + "smithy.api#documentation": "

The canned ACL to apply to the restore results.

" + } + }, + "AccessControlList": { + "target": "com.amazonaws.s3#Grants", + "traits": { + "smithy.api#documentation": "

A list of grants that control access to the staged results.

" + } + }, + "Tagging": { + "target": "com.amazonaws.s3#Tagging", + "traits": { + "smithy.api#documentation": "

The tag-set that is applied to the restore results.

" + } + }, + "UserMetadata": { + "target": "com.amazonaws.s3#UserMetadata", + "traits": { + "smithy.api#documentation": "

A list of metadata to store with the restore results in S3.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

The class of storage used to store the restore results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an Amazon S3 location that will receive the results of the restore request.

" + } + }, + "com.amazonaws.s3#S3RegionalOrS3ExpressBucketArnString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^arn:[^:]+:(s3|s3express):" + } + }, + "com.amazonaws.s3#S3TablesArn": { + "type": "string" + }, + "com.amazonaws.s3#S3TablesBucketArn": { + "type": "string" + }, + "com.amazonaws.s3#S3TablesBucketType": { + "type": "enum", + "members": { + "aws": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws" + } + }, + "customer": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "customer" + } + } + } + }, + "com.amazonaws.s3#S3TablesDestination": { + "type": "structure", + "members": { + "TableBucketArn": { + "target": "com.amazonaws.s3#S3TablesBucketArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the\n metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account\n as the general purpose bucket.

", + "smithy.api#required": {} + } + }, + "TableName": { + "target": "com.amazonaws.s3#S3TablesName", + "traits": { + "smithy.api#documentation": "

The name for the metadata table in your metadata table configuration. The specified metadata table\n name must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The destination information for a V1 S3 Metadata configuration. The destination table bucket must\n be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name\n must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#S3TablesDestinationResult": { + "type": "structure", + "members": { + "TableBucketArn": { + "target": "com.amazonaws.s3#S3TablesBucketArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the\n metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account\n as the general purpose bucket.

", + "smithy.api#required": {} + } + }, + "TableName": { + "target": "com.amazonaws.s3#S3TablesName", + "traits": { + "smithy.api#documentation": "

The name for the metadata table in your metadata table configuration. The specified metadata table\n name must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

", + "smithy.api#required": {} + } + }, + "TableArn": { + "target": "com.amazonaws.s3#S3TablesArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the metadata table in the metadata table configuration. The\n specified metadata table name must be unique within the aws_s3_metadata namespace in the\n destination table bucket.

", + "smithy.api#required": {} + } + }, + "TableNamespace": { + "target": "com.amazonaws.s3#S3TablesNamespace", + "traits": { + "smithy.api#documentation": "

The table bucket namespace for the metadata table in your metadata table configuration. This value\n is always aws_s3_metadata.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The destination information for a V1 S3 Metadata configuration. The destination table bucket must\n be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name\n must be unique within the aws_s3_metadata namespace in the destination table bucket.\n

\n \n

If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete \n and re-create your configuration by using CreateBucketMetadataConfiguration so that you can expire journal table records and create \n a live inventory table.

\n
" + } + }, + "com.amazonaws.s3#S3TablesName": { + "type": "string" + }, + "com.amazonaws.s3#S3TablesNamespace": { + "type": "string" + }, + "com.amazonaws.s3#SSECustomerAlgorithm": { + "type": "string" + }, + "com.amazonaws.s3#SSECustomerKey": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#SSECustomerKeyMD5": { + "type": "string" + }, + "com.amazonaws.s3#SSEKMS": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key to use for encrypting\n inventory reports.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the use of SSE-KMS to encrypt delivered inventory reports.

", + "smithy.api#xmlName": "SSE-KMS" + } + }, + "com.amazonaws.s3#SSEKMSEncryption": { + "type": "structure", + "members": { + "KMSKeyArn": { + "target": "com.amazonaws.s3#NonEmptyKmsKeyArnString", + "traits": { + "smithy.api#documentation": "

\n Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption \n type. Required if ObjectEncryption specifies SSEKMS. \n

\n \n

You must specify the full Amazon Web Services KMS key ARN. The KMS key ID and KMS key alias aren't \n supported.

\n
\n

Pattern: (arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+)

", + "smithy.api#required": {} + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

\n Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption \n using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to false. \n Setting this value to true causes Amazon S3 to use an S3 Bucket Key for object encryption with \n SSE-KMS. For more information, see \n \n Using Amazon S3 Bucket Keys in the Amazon S3 User Guide.\n

\n

Valid Values: true | false\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n If SSEKMS is specified for ObjectEncryption, this data type specifies\n the Amazon Web Services KMS key Amazon Resource Name (ARN) to use and whether to use an S3 Bucket Key for \n server-side encryption using Key Management Service (KMS) keys (SSE-KMS).\n

", + "smithy.api#xmlName": "SSE-KMS" + } + }, + "com.amazonaws.s3#SSEKMSEncryptionContext": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#SSEKMSKeyId": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#SSES3": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

Specifies the use of SSE-S3 to encrypt delivered inventory reports.

", + "smithy.api#xmlName": "SSE-S3" + } + }, + "com.amazonaws.s3#ScanRange": { + "type": "structure", + "members": { + "Start": { + "target": "com.amazonaws.s3#Start", + "traits": { + "smithy.api#documentation": "

Specifies the start of the byte range. This parameter is optional. Valid values: non-negative\n integers. The default value is 0. If only start is supplied, it means scan from that point\n to the end of the file. For example,\n 50 means scan from byte 50\n until the end of the file.

" + } + }, + "End": { + "target": "com.amazonaws.s3#End", + "traits": { + "smithy.api#documentation": "

Specifies the end of the byte range. This parameter is optional. Valid values: non-negative\n integers. The default value is one less than the size of the object being queried. If only the End\n parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example,\n 50 means scan the last 50\n bytes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the byte range of the object to get the records from. A record is processed when its first\n byte is contained by the range. This parameter is optional, but when specified, it must not be empty.\n See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.

" + } + }, + "com.amazonaws.s3#SelectObjectContent": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#SelectObjectContentRequest" + }, + "output": { + "target": "com.amazonaws.s3#SelectObjectContentOutput" + }, + "traits": { + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL)\n statement. In the request, along with the SQL expression, you must also specify a data serialization\n format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into\n records, and returns only records that match the specified SQL expression. You must also specify the\n data serialization format for the response.

\n

This functionality is not supported for Amazon S3 on Outposts.

\n

For more information about Amazon S3 Select, see Selecting Content from Objects\n and SELECT Command in\n the Amazon S3 User Guide.

\n

\n
\n
Permissions
\n
\n

You must have the s3:GetObject permission for this operation. Amazon S3 Select does\n not support anonymous access. For more information about permissions, see Specifying Permissions\n in a Policy in the Amazon S3 User Guide.

\n
\n
Object Data Formats
\n
\n

You can use Amazon S3 Select to query objects that have the following format properties:

\n
    \n
  • \n

    \n CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet\n format.

    \n
  • \n
  • \n

    \n UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

    \n
  • \n
  • \n

    \n GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or\n BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and\n JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3\n Select does not support whole-object compression for Parquet objects.

    \n
  • \n
  • \n

    \n Server-side encryption - Amazon S3 Select supports querying objects that\n are protected with server-side encryption.

    \n

    For objects that are encrypted with customer-provided encryption keys (SSE-C), you must\n use HTTPS, and you must use the headers that are documented in the GetObject. For more information about\n SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

    \n

    For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and Amazon Web Services KMS keys\n (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify\n anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see\n Protecting\n Data Using Server-Side Encryption in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Working with the Response Body
\n
\n

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages\n and includes a Transfer-Encoding header with chunked as its value in the\n response. For more information, see Appendix: SelectObjectContent\n Response.

\n
\n
GetObject Support
\n
\n

The SelectObjectContent action does not support the following\n GetObject functionality. For more information, see GetObject.

\n
    \n
  • \n

    \n Range: Although you can specify a scan range for an Amazon S3 Select request (see\n SelectObjectContentRequest - ScanRange in the request parameters), you\n cannot specify the range of bytes of an object to return.

    \n
  • \n
  • \n

    The GLACIER, DEEP_ARCHIVE, and REDUCED_REDUNDANCY\n storage classes, or the ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS\n access tiers of the INTELLIGENT_TIERING storage class: You cannot query objects\n in the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY\n storage classes, nor objects in the ARCHIVE_ACCESS or\n DEEP_ARCHIVE_ACCESS access tiers of the INTELLIGENT_TIERING\n storage class. For more information about storage classes, see Using Amazon S3 storage classes\n in the Amazon S3 User Guide.

    \n
  • \n
\n
\n
Special Errors
\n
\n

For a list of special errors for this operation, see List of SELECT\n Object Content Error Codes\n

\n
\n
\n

The following operations are related to SelectObjectContent:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/{Bucket}/{Key+}?select&select-type=2", + "code": 200 + } + } + }, + "com.amazonaws.s3#SelectObjectContentEventStream": { + "type": "union", + "members": { + "Records": { + "target": "com.amazonaws.s3#RecordsEvent", + "traits": { + "smithy.api#documentation": "

The Records Event.

" + } + }, + "Stats": { + "target": "com.amazonaws.s3#StatsEvent", + "traits": { + "smithy.api#documentation": "

The Stats Event.

" + } + }, + "Progress": { + "target": "com.amazonaws.s3#ProgressEvent", + "traits": { + "smithy.api#documentation": "

The Progress Event.

" + } + }, + "Cont": { + "target": "com.amazonaws.s3#ContinuationEvent", + "traits": { + "smithy.api#documentation": "

The Continuation Event.

" + } + }, + "End": { + "target": "com.amazonaws.s3#EndEvent", + "traits": { + "smithy.api#documentation": "

The End Event.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The container for selecting objects from a content event stream.

", + "smithy.api#streaming": {} + } + }, + "com.amazonaws.s3#SelectObjectContentOutput": { + "type": "structure", + "members": { + "Payload": { + "target": "com.amazonaws.s3#SelectObjectContentEventStream", + "traits": { + "smithy.api#documentation": "

The array of results.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#SelectObjectContentRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The S3 bucket.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

The object key.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created \n using a checksum algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "Expression": { + "target": "com.amazonaws.s3#Expression", + "traits": { + "smithy.api#documentation": "

The expression that is used to query the object.

", + "smithy.api#required": {} + } + }, + "ExpressionType": { + "target": "com.amazonaws.s3#ExpressionType", + "traits": { + "smithy.api#documentation": "

The type of the provided expression (for example, SQL).

", + "smithy.api#required": {} + } + }, + "RequestProgress": { + "target": "com.amazonaws.s3#RequestProgress", + "traits": { + "smithy.api#documentation": "

Specifies if periodic request progress information should be enabled.

" + } + }, + "InputSerialization": { + "target": "com.amazonaws.s3#InputSerialization", + "traits": { + "smithy.api#documentation": "

Describes the format of the data in the object that is being queried.

", + "smithy.api#required": {} + } + }, + "OutputSerialization": { + "target": "com.amazonaws.s3#OutputSerialization", + "traits": { + "smithy.api#documentation": "

Describes the format of the data that you want Amazon S3 to return in response.

", + "smithy.api#required": {} + } + }, + "ScanRange": { + "target": "com.amazonaws.s3#ScanRange", + "traits": { + "smithy.api#documentation": "

Specifies the byte range of the object to get the records from. A record is processed when its first\n byte is contained by the range. This parameter is optional, but when specified, it must not be empty.\n See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.

\n

\n ScanRangemay be used in the following ways:

\n
    \n
  • \n

    \n 50100\n - process only the records starting between the bytes 50 and 100 (inclusive, counting from\n zero)

    \n
  • \n
  • \n

    \n 50 - process only the\n records starting after the byte 50

    \n
  • \n
  • \n

    \n 50 - process only the\n records within the last 50 bytes of the file.

    \n
  • \n
" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Learn Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3\n Select can continue to use the feature as usual. Learn more\n

\n
\n

Request to filter the contents of an Amazon S3 object based on a simple Structured Query Language (SQL)\n statement. In the request, along with the SQL expression, you must specify a data serialization format\n (JSON or CSV) of the object. Amazon S3 uses this to parse object data into records. It returns only records\n that match the specified SQL expression. You must also specify the data serialization format for the\n response. For more information, see S3Select API Documentation.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#SelectParameters": { + "type": "structure", + "members": { + "InputSerialization": { + "target": "com.amazonaws.s3#InputSerialization", + "traits": { + "smithy.api#documentation": "

Describes the serialization format of the object.

", + "smithy.api#required": {} + } + }, + "ExpressionType": { + "target": "com.amazonaws.s3#ExpressionType", + "traits": { + "smithy.api#documentation": "

The type of the provided expression (for example, SQL).

", + "smithy.api#required": {} + } + }, + "Expression": { + "target": "com.amazonaws.s3#Expression", + "traits": { + "smithy.api#documentation": "\n

Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can\n continue to use the feature as usual. Learn more\n

\n
\n

The expression that is used to query the object.

", + "smithy.api#required": {} + } + }, + "OutputSerialization": { + "target": "com.amazonaws.s3#OutputSerialization", + "traits": { + "smithy.api#documentation": "

Describes how the results of the Select job are serialized.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "\n

Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can\n continue to use the feature as usual. Learn more\n

\n
\n

Describes the parameters for Select job types.

\n

Learn How to\n optimize querying your data in Amazon S3 using Amazon Athena, S3 Object Lambda, or client-side\n filtering.

" + } + }, + "com.amazonaws.s3#ServerSideEncryption": { + "type": "enum", + "members": { + "AES256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AES256" + } + }, + "aws_fsx": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws:fsx" + } + }, + "aws_backup": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws:backup" + } + }, + "aws_kms": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws:kms" + } + }, + "aws_kms_dsse": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws:kms:dsse" + } + } + } + }, + "com.amazonaws.s3#ServerSideEncryptionByDefault": { + "type": "structure", + "members": { + "SSEAlgorithm": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

Server-side encryption algorithm to use for the default encryption.

\n \n

For directory buckets, there are only two supported values for server-side encryption: AES256 and aws:kms.

\n
", + "smithy.api#required": {} + } + }, + "KMSMasterKeyID": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the default encryption.

\n \n
    \n
  • \n

    \n General purpose buckets - This parameter is allowed if and\n only if SSEAlgorithm is set to aws:kms or\n aws:kms:dsse.

    \n
  • \n
  • \n

    \n Directory buckets - This parameter is allowed if and\n only if SSEAlgorithm is set to aws:kms.

    \n
  • \n
\n
\n

You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN:\n arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key Alias: alias/alias-name\n

    \n
  • \n
\n

If you are using encryption with cross-account or Amazon Web Services service operations, you must use a fully\n qualified KMS key ARN. For more information, see Using\n encryption for cross-account operations.

\n \n
    \n
  • \n

    \n General purpose buckets - If you're specifying a customer\n managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key\n alias instead, then KMS resolves the key within the requester’s account. This behavior can\n result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket\n owner. Also, if you use a key ID, you can run into a LogDestination undeliverable error when\n creating a VPC flow log.

    \n
  • \n
  • \n

    \n Directory buckets -\n When you specify an KMS customer managed key for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.

    \n
  • \n
\n
\n \n

Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in\n Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object\n request doesn't specify any server-side encryption, this default encryption will be applied. For more\n information, see PutBucketEncryption.

\n \n
    \n
  • \n

    \n General purpose buckets - If you don't specify a customer managed key\n at configuration, Amazon S3 automatically creates an Amazon Web Services KMS key (aws/s3) in your Amazon Web Services\n account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3\n uses this KMS key for SSE-KMS.

    \n
  • \n
  • \n

    \n Directory buckets -\n Your SSE-KMS configuration can only support 1 customer managed key per directory bucket's lifetime. \nThe Amazon Web Services managed key (aws/s3) isn't supported. \n

    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.s3#ServerSideEncryptionConfiguration": { + "type": "structure", + "members": { + "Rules": { + "target": "com.amazonaws.s3#ServerSideEncryptionRules", + "traits": { + "smithy.api#documentation": "

Container for information about a particular server-side encryption configuration rule.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Rule" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the default server-side-encryption configuration.

" + } + }, + "com.amazonaws.s3#ServerSideEncryptionRule": { + "type": "structure", + "members": { + "ApplyServerSideEncryptionByDefault": { + "target": "com.amazonaws.s3#ServerSideEncryptionByDefault", + "traits": { + "smithy.api#documentation": "

Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object\n request doesn't specify any server-side encryption, this default encryption will be applied.

" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS)\n for new objects in the bucket. Existing objects are not affected. Setting the\n BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key.

\n \n
    \n
  • \n

    \n General purpose buckets - By default, S3 Bucket Key is not\n enabled. For more information, see Amazon S3 Bucket Keys in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets -\n S3 Bucket Keys are always enabled for GET and PUT operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through CopyObject, UploadPartCopy, the Copy operation in Batch Operations, or \n the import jobs. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

    \n
  • \n
\n
" + } + }, + "BlockedEncryptionTypes": { + "target": "com.amazonaws.s3#BlockedEncryptionTypes", + "traits": { + "smithy.api#documentation": "

A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type. For example, blocking an encryption type will block PutObject, CopyObject, PostObject, multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see Blocking or unblocking SSE-C for a general purpose bucket.

\n \n

Currently, this parameter only supports blocking or unblocking server-side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see Using server-side encryption with customer-provided keys (SSE-C).

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the default server-side encryption configuration.

\n \n
    \n
  • \n

    \n General purpose buckets - If you're specifying a customer\n managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key\n alias instead, then KMS resolves the key within the requester’s account. This behavior can\n result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket\n owner.

    \n
  • \n
  • \n

    \n Directory buckets -\n When you specify an KMS customer managed key for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.

    \n
  • \n
\n
" + } + }, + "com.amazonaws.s3#ServerSideEncryptionRules": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ServerSideEncryptionRule" + } + }, + "com.amazonaws.s3#SessionCredentialValue": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.s3#SessionCredentials": { + "type": "structure", + "members": { + "AccessKeyId": { + "target": "com.amazonaws.s3#AccessKeyIdValue", + "traits": { + "smithy.api#documentation": "

A unique identifier that's associated with a secret access key. The access key ID and the secret\n access key are used together to sign programmatic Amazon Web Services requests cryptographically.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "AccessKeyId" + } + }, + "SecretAccessKey": { + "target": "com.amazonaws.s3#SessionCredentialValue", + "traits": { + "smithy.api#documentation": "

A key that's used with the access key ID to cryptographically sign programmatic Amazon Web Services requests.\n Signing a request identifies the sender and prevents the request from being altered.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SecretAccessKey" + } + }, + "SessionToken": { + "target": "com.amazonaws.s3#SessionCredentialValue", + "traits": { + "smithy.api#documentation": "

A part of the temporary security credentials. The session token is used to validate the temporary\n security credentials.\n \n

", + "smithy.api#required": {}, + "smithy.api#xmlName": "SessionToken" + } + }, + "Expiration": { + "target": "com.amazonaws.s3#SessionExpiration", + "traits": { + "smithy.api#documentation": "

Temporary security credentials expire after a specified interval. After temporary credentials\n expire, any calls that you make with those credentials will fail. So you must generate a new set of\n temporary credentials. Temporary credentials cannot be extended or refreshed beyond the original\n specified interval.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Expiration" + } + } + }, + "traits": { + "smithy.api#documentation": "

The established temporary security credentials of the session.

\n \n

\n Directory buckets - These session credentials are only\n supported for the authentication and authorization of Zonal endpoint API operations on directory buckets.

\n
" + } + }, + "com.amazonaws.s3#SessionExpiration": { + "type": "timestamp" + }, + "com.amazonaws.s3#SessionMode": { + "type": "enum", + "members": { + "ReadOnly": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReadOnly" + } + }, + "ReadWrite": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReadWrite" + } + } + } + }, + "com.amazonaws.s3#Setting": { + "type": "boolean" + }, + "com.amazonaws.s3#SimplePrefix": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

To use simple format for S3 keys for log objects, set SimplePrefix to an empty object.

\n

\n [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]\n

", + "smithy.api#xmlName": "SimplePrefix" + } + }, + "com.amazonaws.s3#Size": { + "type": "long" + }, + "com.amazonaws.s3#SkipValidation": { + "type": "boolean" + }, + "com.amazonaws.s3#SourceSelectionCriteria": { + "type": "structure", + "members": { + "SseKmsEncryptedObjects": { + "target": "com.amazonaws.s3#SseKmsEncryptedObjects", + "traits": { + "smithy.api#documentation": "

A container for filter information for the selection of Amazon S3 objects encrypted with Amazon Web Services KMS. If\n you include SourceSelectionCriteria in the replication configuration, this element is\n required.

" + } + }, + "ReplicaModifications": { + "target": "com.amazonaws.s3#ReplicaModifications", + "traits": { + "smithy.api#documentation": "

A filter that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate\n replica modifications by default. In the latest version of replication configuration (when\n Filter is specified), you can specify this element and set the status to\n Enabled to replicate modifications on replicas.

\n \n

If you don't specify the Filter element, Amazon S3 assumes that the replication\n configuration is the earlier version, V1. In the earlier version, this element is not allowed

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container that describes additional filters for identifying the source objects that you want to\n replicate. You can choose to enable or disable the replication of these objects. Currently, Amazon S3\n supports only the filter that you can specify for objects created with server-side encryption using a\n customer managed key stored in Amazon Web Services Key Management Service (SSE-KMS).

" + } + }, + "com.amazonaws.s3#SseKmsEncryptedObjects": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.s3#SseKmsEncryptedObjectsStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether Amazon S3 replicates objects created with server-side encryption using an Amazon Web Services KMS key\n stored in Amazon Web Services Key Management Service.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for filter information for the selection of S3 objects encrypted with Amazon Web Services KMS.

" + } + }, + "com.amazonaws.s3#SseKmsEncryptedObjectsStatus": { + "type": "enum", + "members": { + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + }, + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + } + } + }, + "com.amazonaws.s3#Start": { + "type": "long" + }, + "com.amazonaws.s3#StartAfter": { + "type": "string" + }, + "com.amazonaws.s3#Stats": { + "type": "structure", + "members": { + "BytesScanned": { + "target": "com.amazonaws.s3#BytesScanned", + "traits": { + "smithy.api#documentation": "

The total number of object bytes scanned.

" + } + }, + "BytesProcessed": { + "target": "com.amazonaws.s3#BytesProcessed", + "traits": { + "smithy.api#documentation": "

The total number of uncompressed object bytes processed.

" + } + }, + "BytesReturned": { + "target": "com.amazonaws.s3#BytesReturned", + "traits": { + "smithy.api#documentation": "

The total number of bytes of records payload data returned.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the stats details.

" + } + }, + "com.amazonaws.s3#StatsEvent": { + "type": "structure", + "members": { + "Details": { + "target": "com.amazonaws.s3#Stats", + "traits": { + "smithy.api#documentation": "

The Stats event details.

", + "smithy.api#eventPayload": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the Stats Event.

" + } + }, + "com.amazonaws.s3#StorageClass": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "REDUCED_REDUNDANCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REDUCED_REDUNDANCY" + } + }, + "STANDARD_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD_IA" + } + }, + "ONEZONE_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ONEZONE_IA" + } + }, + "INTELLIGENT_TIERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTELLIGENT_TIERING" + } + }, + "GLACIER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER" + } + }, + "DEEP_ARCHIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEEP_ARCHIVE" + } + }, + "OUTPOSTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OUTPOSTS" + } + }, + "GLACIER_IR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER_IR" + } + }, + "SNOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SNOW" + } + }, + "EXPRESS_ONEZONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPRESS_ONEZONE" + } + }, + "FSX_OPENZFS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FSX_OPENZFS" + } + }, + "FSX_ONTAP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FSX_ONTAP" + } + }, + "AWS_BACKUP_WARM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_BACKUP_WARM" + } + }, + "AWS_BACKUP_LOW_COST_WARM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_BACKUP_LOW_COST_WARM" + } + } + } + }, + "com.amazonaws.s3#StorageClassAnalysis": { + "type": "structure", + "members": { + "DataExport": { + "target": "com.amazonaws.s3#StorageClassAnalysisDataExport", + "traits": { + "smithy.api#documentation": "

Specifies how data related to the storage class analysis for an Amazon S3 bucket should be\n exported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies data related to access patterns to be collected and made available to analyze the\n tradeoffs between different storage classes for an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#StorageClassAnalysisDataExport": { + "type": "structure", + "members": { + "OutputSchemaVersion": { + "target": "com.amazonaws.s3#StorageClassAnalysisSchemaVersion", + "traits": { + "smithy.api#documentation": "

The version of the output schema to use when exporting data. Must be V_1.

", + "smithy.api#required": {} + } + }, + "Destination": { + "target": "com.amazonaws.s3#AnalyticsExportDestination", + "traits": { + "smithy.api#documentation": "

The place to store the data for an analysis.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for data related to the storage class analysis for an Amazon S3 bucket for export.

" + } + }, + "com.amazonaws.s3#StorageClassAnalysisSchemaVersion": { + "type": "enum", + "members": { + "V_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "V_1" + } + } + } + }, + "com.amazonaws.s3#StreamingBlob": { + "type": "blob", + "traits": { + "smithy.api#streaming": {} + } + }, + "com.amazonaws.s3#Suffix": { + "type": "string" + }, + "com.amazonaws.s3#TableSseAlgorithm": { + "type": "enum", + "members": { + "aws_kms": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "aws:kms" + } + }, + "AES256": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AES256" + } + } + } + }, + "com.amazonaws.s3#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Name of the object key.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.s3#Value", + "traits": { + "smithy.api#documentation": "

Value of the tag.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container of a key value name pair.

" + } + }, + "com.amazonaws.s3#TagCount": { + "type": "integer" + }, + "com.amazonaws.s3#TagSet": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Tag", + "traits": { + "smithy.api#xmlName": "Tag" + } + } + }, + "com.amazonaws.s3#Tagging": { + "type": "structure", + "members": { + "TagSet": { + "target": "com.amazonaws.s3#TagSet", + "traits": { + "smithy.api#documentation": "

A collection for a set of tags

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for TagSet elements.

" + } + }, + "com.amazonaws.s3#TaggingDirective": { + "type": "enum", + "members": { + "COPY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COPY" + } + }, + "REPLACE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPLACE" + } + } + } + }, + "com.amazonaws.s3#TaggingHeader": { + "type": "string" + }, + "com.amazonaws.s3#TargetBucket": { + "type": "string" + }, + "com.amazonaws.s3#TargetGrant": { + "type": "structure", + "members": { + "Grantee": { + "target": "com.amazonaws.s3#Grantee", + "traits": { + "smithy.api#documentation": "

Container for the person being granted permissions.

", + "smithy.api#xmlNamespace": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + } + } + }, + "Permission": { + "target": "com.amazonaws.s3#BucketLogsPermission", + "traits": { + "smithy.api#documentation": "

Logging permissions assigned to the grantee for the bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for granting information.

\n

Buckets that use the bucket owner enforced setting for Object Ownership don't support target grants.\n For more information, see Permissions server access log delivery in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#TargetGrants": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#TargetGrant", + "traits": { + "smithy.api#xmlName": "Grant" + } + } + }, + "com.amazonaws.s3#TargetObjectKeyFormat": { + "type": "structure", + "members": { + "SimplePrefix": { + "target": "com.amazonaws.s3#SimplePrefix", + "traits": { + "smithy.api#documentation": "

To use the simple format for S3 keys for log objects. To specify SimplePrefix format, set\n SimplePrefix to {}.

", + "smithy.api#xmlName": "SimplePrefix" + } + }, + "PartitionedPrefix": { + "target": "com.amazonaws.s3#PartitionedPrefix", + "traits": { + "smithy.api#documentation": "

Partitioned S3 key for log objects.

", + "smithy.api#xmlName": "PartitionedPrefix" + } + } + }, + "traits": { + "smithy.api#documentation": "

Amazon S3 key format for log objects. Only one format, PartitionedPrefix or SimplePrefix, is\n allowed.

" + } + }, + "com.amazonaws.s3#TargetPrefix": { + "type": "string" + }, + "com.amazonaws.s3#Tier": { + "type": "enum", + "members": { + "Standard": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Standard" + } + }, + "Bulk": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Bulk" + } + }, + "Expedited": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expedited" + } + } + } + }, + "com.amazonaws.s3#Tiering": { + "type": "structure", + "members": { + "Days": { + "target": "com.amazonaws.s3#IntelligentTieringDays", + "traits": { + "smithy.api#documentation": "

The number of consecutive days of no access after which an object will be eligible to be\n transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier\n must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to\n 2 years (730 days).

", + "smithy.api#required": {} + } + }, + "AccessTier": { + "target": "com.amazonaws.s3#IntelligentTieringAccessTier", + "traits": { + "smithy.api#documentation": "

S3 Intelligent-Tiering access tier. See Storage class for\n automatically optimizing frequently and infrequently accessed objects for a list of access\n tiers in the S3 Intelligent-Tiering storage class.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically\n moving data to the most cost-effective storage access tier, without additional operational\n overhead.

" + } + }, + "com.amazonaws.s3#TieringList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Tiering" + } + }, + "com.amazonaws.s3#Token": { + "type": "string" + }, + "com.amazonaws.s3#TooManyParts": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

You have attempted to add more parts than the maximum of 10000 that are allowed for this object.\n You can use the CopyObject operation to copy this object to another and then add more data to the newly\n copied object.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.s3#TopicArn": { + "type": "string" + }, + "com.amazonaws.s3#TopicConfiguration": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.s3#NotificationId" + }, + "TopicArn": { + "target": "com.amazonaws.s3#TopicArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it\n detects events of the specified type.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "Topic" + } + }, + "Events": { + "target": "com.amazonaws.s3#EventList", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in\n the Amazon S3 User Guide.

", + "smithy.api#required": {}, + "smithy.api#xmlFlattened": {}, + "smithy.api#xmlName": "Event" + } + }, + "Filter": { + "target": "com.amazonaws.s3#NotificationConfigurationFilter" + } + }, + "traits": { + "smithy.api#documentation": "

A container for specifying the configuration for publication of messages to an Amazon Simple\n Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.

" + } + }, + "com.amazonaws.s3#TopicConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#TopicConfiguration" + } + }, + "com.amazonaws.s3#Transition": { + "type": "structure", + "members": { + "Date": { + "target": "com.amazonaws.s3#Date", + "traits": { + "smithy.api#documentation": "

Indicates when objects are transitioned to the specified storage class. The date value must be in\n ISO 8601 format. The time is always midnight UTC.

" + } + }, + "Days": { + "target": "com.amazonaws.s3#Days", + "traits": { + "smithy.api#documentation": "

Indicates the number of days after creation when objects are transitioned to the specified storage\n class. The value can be 0 or any positive integer. Be aware that some storage classes have a\n minimum storage duration and that you're charged for transitioning objects before their minimum storage\n duration. For more information, see Constraints and considerations for transitions in the Amazon S3 User\n Guide.

" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#TransitionStorageClass", + "traits": { + "smithy.api#documentation": "

The storage class to which you want the object to transition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies when an object transitions to a specified storage class. For more information about Amazon S3\n lifecycle configuration rules, see Transitioning Objects Using\n Amazon S3 Lifecycle in the Amazon S3 User Guide.

" + } + }, + "com.amazonaws.s3#TransitionDefaultMinimumObjectSize": { + "type": "enum", + "members": { + "varies_by_storage_class": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "varies_by_storage_class" + } + }, + "all_storage_classes_128K": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all_storage_classes_128K" + } + } + } + }, + "com.amazonaws.s3#TransitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#Transition" + } + }, + "com.amazonaws.s3#TransitionStorageClass": { + "type": "enum", + "members": { + "GLACIER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER" + } + }, + "STANDARD_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD_IA" + } + }, + "ONEZONE_IA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ONEZONE_IA" + } + }, + "INTELLIGENT_TIERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTELLIGENT_TIERING" + } + }, + "DEEP_ARCHIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEEP_ARCHIVE" + } + }, + "GLACIER_IR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GLACIER_IR" + } + } + } + }, + "com.amazonaws.s3#Type": { + "type": "enum", + "members": { + "CanonicalUser": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CanonicalUser" + } + }, + "AmazonCustomerByEmail": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AmazonCustomerByEmail" + } + }, + "Group": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Group" + } + } + } + }, + "com.amazonaws.s3#URI": { + "type": "string" + }, + "com.amazonaws.s3#UnsupportedMediaType": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The annotation payload is not valid UTF-8 encoded text.

", + "smithy.api#error": "client", + "smithy.api#httpError": 415 + } + }, + "com.amazonaws.s3#UpdateBucketMetadataAnnotationTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UpdateBucketMetadataAnnotationTableConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Updates the annotation table configuration for an Amazon S3 bucket's metadata configuration. Use this\n operation to enable or disable the annotation table, or to update its associated IAM role.

\n

An annotation table is a queryable Iceberg table that contains records of all annotations\n attached to objects in the bucket. To use this operation, the bucket must have an existing Amazon S3\n Metadata configuration.

\n

To use this operation, you must have the\n s3:UpdateBucketMetadataAnnotationTableConfiguration permission. If you are specifying\n or changing the IAM role, you must also have iam:PassRole permission for the role.

\n

The IAM role must have a trust policy that allows the Amazon S3 metadata service to assume it, and a\n permissions policy that grants the actions needed to read annotations from your bucket. The\n following examples show a trust policy and a permissions policy that you can adapt for your bucket\n and account.

\n

The following operations are related to\n UpdateBucketMetadataAnnotationTableConfiguration:

\n ", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?metadataAnnotationTable", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#UpdateBucketMetadataAnnotationTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket whose annotation table configuration to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

Base64-encoded MD5 digest of the message body.

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Checksum algorithm for the request payload.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "AnnotationTableConfiguration": { + "target": "com.amazonaws.s3#AnnotationTableConfigurationUpdates", + "traits": { + "smithy.api#documentation": "

The annotation table configuration updates to apply.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "AnnotationTableConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner.

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UpdateBucketMetadataInventoryTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UpdateBucketMetadataInventoryTableConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Enables or disables a live inventory table for an S3 Metadata configuration on a general \n purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use this operation, you must have the following permissions. For more information, see\n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n

If you want to encrypt your inventory table with server-side encryption with Key Management Service\n (KMS) keys (SSE-KMS), you need additional permissions in your KMS key policy. For more\n information, see \n Setting up permissions for configuring metadata tables in the\n Amazon S3 User Guide.

\n
    \n
  • \n

    \n s3:UpdateBucketMetadataInventoryTableConfiguration\n

    \n
  • \n
  • \n

    \n s3tables:CreateTableBucket\n

    \n
  • \n
  • \n

    \n s3tables:CreateNamespace\n

    \n
  • \n
  • \n

    \n s3tables:GetTable\n

    \n
  • \n
  • \n

    \n s3tables:CreateTable\n

    \n
  • \n
  • \n

    \n s3tables:PutTablePolicy\n

    \n
  • \n
  • \n

    \n s3tables:PutTableEncryption\n

    \n
  • \n
  • \n

    \n kms:DescribeKey\n

    \n
  • \n
\n
\n
\n

The following operations are related to UpdateBucketMetadataInventoryTableConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?metadataInventoryTable", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#UpdateBucketMetadataInventoryTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The general purpose bucket that corresponds to the metadata configuration that you want to \n enable or disable an inventory table for.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

\n The Content-MD5 header for the inventory table configuration.\n

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

\n The checksum algorithm to use with your inventory table configuration.\n

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "InventoryTableConfiguration": { + "target": "com.amazonaws.s3#InventoryTableConfigurationUpdates", + "traits": { + "smithy.api#documentation": "

\n The contents of your inventory table configuration. \n

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "InventoryTableConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The expected owner of the general purpose bucket that corresponds to the metadata table \n configuration that you want to enable or disable an inventory table for.\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UpdateBucketMetadataJournalTableConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UpdateBucketMetadataJournalTableConfigurationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

Enables or disables journal table record expiration for an S3 Metadata configuration on a general \n purpose bucket. For more information, see\n Accelerating\n data discovery with S3 Metadata in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use this operation, you must have the s3:UpdateBucketMetadataJournalTableConfiguration\n permission. For more information, see Setting up permissions for\n configuring metadata tables in the Amazon S3 User Guide.

\n
\n
\n

The following operations are related to UpdateBucketMetadataJournalTableConfiguration:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}?metadataJournalTable", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseS3ExpressControlEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#UpdateBucketMetadataJournalTableConfigurationRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The general purpose bucket that corresponds to the metadata configuration that you want to \n enable or disable journal table record expiration for.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

\n The Content-MD5 header for the journal table configuration.\n

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

\n The checksum algorithm to use with your journal table configuration.\n

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "JournalTableConfiguration": { + "target": "com.amazonaws.s3#JournalTableConfigurationUpdates", + "traits": { + "smithy.api#documentation": "

\n The contents of your journal table configuration.\n

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {}, + "smithy.api#xmlName": "JournalTableConfiguration" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The expected owner of the general purpose bucket that corresponds to the metadata table \n configuration that you want to enable or disable journal table record expiration for. \n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UpdateObjectEncryption": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UpdateObjectEncryptionRequest" + }, + "output": { + "target": "com.amazonaws.s3#UpdateObjectEncryptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.s3#AccessDenied" + }, + { + "target": "com.amazonaws.s3#InvalidRequest" + }, + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "\n

This operation is not supported for directory buckets or Amazon S3 on Outposts buckets.\n

\n
\n

\n Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. \n You can use the UpdateObjectEncryption operation to change encrypted objects from \n server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) \n keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the UpdateObjectEncryption operation \n to change the customer-managed KMS key used to encrypt your data so that you can comply with custom \n key-rotation standards.\n

\n

Using the UpdateObjectEncryption operation, you can atomically update the server-side \n encryption type of an existing object in a general purpose bucket without any data movement. The \n UpdateObjectEncryption operation uses envelope encryption to re-encrypt the data key used to \n encrypt and decrypt your object with your newly specified server-side encryption type. In other words, \n when you use the UpdateObjectEncryption operation, your data isn't copied, archived \n objects in the S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive storage classes aren't \n restored, and objects in the S3 Intelligent-Tiering storage class aren't moved between tiers. \n Additionally, the UpdateObjectEncryption operation preserves all object metadata \n properties, including the storage class, creation date, last modified date, ETag, and checksum \n properties. For more information, see \n \n Updating server-side encryption for existing objects in the \n Amazon S3 User Guide.

\n

By default, all UpdateObjectEncryption requests that specify a customer-managed \n KMS key are restricted to KMS keys that are owned by the bucket owner's Amazon Web Services account. If you're \n using Organizations, you can request the ability to use KMS keys owned by other member \n accounts within your organization by contacting Amazon Web Services Support.

\n \n

Source objects that are unencrypted, or encrypted with either dual-layer server-side encryption \n with KMS keys (DSSE-KMS) or server-side encryption with customer-provided keys (SSE-C) aren't \n supported by this operation. Additionally, you cannot specify SSE-S3 encryption as the requested\n new encryption type UpdateObjectEncryption request.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    To use the UpdateObjectEncryption operation, you must have the following \n permissions:

    \n
      \n
    • \n

      \n s3:UpdateObjectEncryption\n

      \n
    • \n
    • \n

      \n kms:Encrypt\n

      \n
    • \n
    • \n

      \n kms:Decrypt\n

      \n
    • \n
    • \n

      \n kms:GenerateDataKey\n

      \n
    • \n
    • \n

      \n kms:ReEncrypt*\n

      \n
    • \n
    \n
  • \n
  • \n

    If you're using Organizations, to use this operation with customer-managed \n KMS keys from other Amazon Web Services accounts within your organization, you must have the \n organizations:DescribeAccount permission.

    \n
  • \n
\n
\n
\n
\n
Errors
\n
\n
    \n
  • \n

    You might receive an InvalidRequest error for several reasons. Depending \n on the reason for the error, you might receive one of the following messages:

    \n
      \n
    • \n

      The UpdateObjectEncryption operation doesn't supported unencrypted \n source objects. Only source objects encrypted with SSE-S3 or SSE-KMS are supported.

      \n
    • \n
    • \n

      The UpdateObjectEncryption operation doesn't support source objects \n with the encryption type DSSE-KMS or SSE-C. Only source objects encrypted with SSE-S3 \n or SSE-KMS are supported.

      \n
    • \n
    • \n

      The UpdateObjectEncryption operation doesn't support updating the \n encryption type to DSSE-KMS or SSE-C. Modify the request to specify SSE-KMS \n for the updated encryption type, and then try again.

      \n
    • \n
    • \n

      Requests that modify an object encryption configuration require Amazon Web Services Signature \n Version 4. Modify the request to use Amazon Web Services Signature Version 4, and then try again.

      \n
    • \n
    • \n

      Requests that modify an object encryption configuration require a valid new \n encryption type. Valid values are SSEKMS. Modify the request to specify\n SSE-KMS for the updated encryption type, and then try again.

      \n
    • \n
    • \n

      Requests that modify an object's encryption type to SSE-KMS require an Amazon Web Services KMS key \n Amazon Resource Name (ARN). Modify the request to specify a KMS key ARN, and then \n try again.

      \n
    • \n
    • \n

      Requests that modify an object's encryption type to SSE-KMS require a valid \n Amazon Web Services KMS key Amazon Resource Name (ARN). Confirm that you have a correctly formatted \n KMS key ARN in your request, and then try again.

      \n
    • \n
    • \n

      The BucketKeyEnabled value isn't valid. Valid values are \n true or false. Modify the request to specify a valid value, \n and then try again.

      \n
    • \n
    \n
  • \n
  • \n

    You might receive an AccessDenied error for several reasons. Depending on \n the reason for the error, you might receive one of the following messages:

    \n
      \n
    • \n

      The Amazon Web Services KMS key in the request must be owned by the same account as the bucket. Modify \n the request to specify a KMS key from the same account, and then try again.

      \n
    • \n
    • \n

      The bucket owner's account was approved to make UpdateObjectEncryption requests \n that use any Amazon Web Services KMS key in their organization, but the bucket owner's account isn't part of \n an organization in Organizations. Make sure that the bucket owner's account and the \n specified KMS key belong to the same organization, and then try again.

      \n
    • \n
    • \n

      The specified Amazon Web Services KMS key must be from the same organization in Organizations as \n the bucket. Specify a KMS key that belongs to the same organization as the bucket, and then \n try again.

      \n
    • \n
    • \n

      The encryption type for the specified object can’t be updated because that object is \n protected by S3 Object Lock. If the object has a governance-mode retention period or a legal \n hold, you must first remove the Object Lock status on the object before you issue your \n UpdateObjectEncryption request. You can't use the UpdateObjectEncryption\n operation with objects that have an Object Lock compliance mode retention period applied to them.

      \n
    • \n
    \n
  • \n
\n
\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?encryption", + "code": 200 + } + } + }, + "com.amazonaws.s3#UpdateObjectEncryptionRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

\n The name of the general purpose bucket that contains the specified object key name.\n

\n

When you use this operation with an access point attached to a general purpose bucket, you \n must either provide the alias of the access point in place of the bucket name or you must specify \n the access point Amazon Resource Name (ARN). When using the access point ARN, you must direct \n requests to the access point hostname. The access point hostname takes the form \n \n AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. \n When using this operation with an access point through the Amazon Web Services SDKs, you provide the access point \n ARN in place of the bucket name. For more information about access point ARNs, see \n \n Referencing access points in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

\n The key name of the object that you want to update the server-side encryption type for.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

\n The version ID of the object that you want to update the server-side encryption type for.\n

", + "smithy.api#httpQuery": "versionId" + } + }, + "ObjectEncryption": { + "target": "com.amazonaws.s3#ObjectEncryption", + "traits": { + "smithy.api#documentation": "

\n The updated server-side encryption type for this object. The UpdateObjectEncryption \n operation supports the SSE-S3 and SSE-KMS encryption types.\n

\n

Valid Values: SSES3 | SSEKMS\n

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

\n The account ID of the expected bucket owner. If the account ID that you provide doesn't match the \n actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden \n (access denied).\n

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

\n The MD5 hash for the request body. For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.\n

", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

\n Indicates the algorithm used to create the checksum for the object when you use an Amazon Web Services SDK. This header \n doesn't provide any additional functionality if you don't use the SDK. When you send this header, \n there must be a corresponding x-amz-checksum or x-amz-trailer header sent. \n Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more \n information, see \n Checking object integrity in the Amazon S3 User Guide. \n

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm \n parameter.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UpdateObjectEncryptionResponse": { + "type": "structure", + "members": { + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#UploadIdMarker": { + "type": "string" + }, + "com.amazonaws.s3#UploadPart": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UploadPartRequest" + }, + "output": { + "target": "com.amazonaws.s3#UploadPartOutput" + }, + "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "

Uploads a part in a multipart upload.

\n \n

In this operation, you provide new data as a part of an object in your request. However, you have\n an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n upload a part from an existing object, you use the UploadPartCopy operation.

\n
\n

You must initiate a multipart upload (see CreateMultipartUpload) before you can\n upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier\n that you must include in your upload part request.

\n

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part\n and also defines its position within the object being created. If you upload a new part using the same\n part number that was used with a previous part, the previously uploaded part is overwritten.

\n

For information about maximum and minimum part sizes and other multipart upload specifications, see\n Multipart upload\n limits in the Amazon S3 User Guide.

\n \n

After you initiate multipart upload and upload one or more parts, you must either complete or\n abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after\n you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you\n for the parts storage.

\n
\n

For more information on multipart uploads, go to Multipart Upload Overview in the\n Amazon S3 User Guide .

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To perform a\n multipart upload with encryption using an Key Management Service key, the requester must have permission to\n the kms:Decrypt and kms:GenerateDataKey actions on the key. The\n requester must also have permissions for the kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs permissions for the\n kms:Decrypt action on the UploadPart and\n UploadPartCopy APIs.

    \n

    These permissions are required because Amazon S3 must decrypt and read data from the encrypted\n file parts before it completes the multipart upload. For more information about KMS\n permissions, see Protecting data using server-side\n encryption with KMS in the Amazon S3 User Guide. For information\n about the permissions required to use the multipart upload API, see Multipart upload and\n permissions and Multipart upload API and\n permissions in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Data integrity
\n
\n

\n General purpose bucket - To ensure that data is not corrupted\n traversing the network, specify the Content-MD5 header in the upload part request.\n Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an\n error. If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the\n x-amz-content-sha256 header as a checksum instead of Content-MD5. For\n more information see Authenticating Requests:\n Using the Authorization Header (Amazon Web Services Signature Version 4).

\n \n

\n Directory buckets - MD5 is not supported by directory buckets. You can use checksum algorithms to check object integrity.

\n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose bucket - Server-side encryption is for\n data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers\n and decrypts it when you access it. You have mutually exclusive options to protect data using\n server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys.\n Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys\n (SSE-KMS), and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with server-side encryption\n using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at\n rest using server-side encryption with other key options. The option you use depends on\n whether you want to use KMS keys (SSE-KMS) or provide your own encryption key\n (SSE-C).

    \n

    Server-side encryption is supported by the S3 Multipart Upload operations. Unless you are\n using a customer-provided encryption key (SSE-C), you don't need to specify the encryption\n parameters in each UploadPart request. Instead, you only need to specify the server-side\n encryption parameters in the initial Initiate Multipart request. For more information, see\n CreateMultipartUpload.

    \n \n

    If you have server-side encryption with customer-provided keys (SSE-C) blocked for your general purpose bucket, you will get an HTTP 403 Access Denied error when you specify the SSE-C request headers while writing new data to your bucket. For more information, see Blocking or unblocking SSE-C for a general purpose bucket.

    \n
    \n

    If you request server-side encryption using a customer-provided encryption key (SSE-C) in\n your initiate multipart upload request, you must provide identical encryption information in\n each part upload using the following request headers.

    \n
      \n
    • \n

      x-amz-server-side-encryption-customer-algorithm

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key

      \n
    • \n
    • \n

      x-amz-server-side-encryption-customer-key-MD5

      \n
    • \n
    \n

    For more information, see Using Server-Side\n Encryption in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms).

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID might be\n invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPart:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To upload a part", + "documentation": "The following example uploads part 1 of a multipart upload. The example specifies a file name for the part data. The Upload ID is same that is returned by the initiate multipart upload.", + "input": { + "Body": "fileToUpload", + "Bucket": "examplebucket", + "Key": "examplelargeobject", + "PartNumber": 1, + "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?x-id=UploadPart", + "code": 200 + } + } + }, + "com.amazonaws.s3#UploadPartCopy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#UploadPartCopyRequest" + }, + "output": { + "target": "com.amazonaws.s3#UploadPartCopyOutput" + }, + "traits": { + "smithy.api#documentation": "

Uploads a part by copying data from an existing object as data source. To specify the data source,\n you add the request header x-amz-copy-source in your request. To specify a byte range, you\n add the request header x-amz-copy-source-range in your request.

\n

For information about maximum and minimum part sizes and other multipart upload specifications, see\n Multipart upload\n limits in the Amazon S3 User Guide.

\n \n

Instead of copying data from an existing object as part data, you might use the UploadPart action to\n upload new data as a part of an object in your request.

\n
\n

You must initiate a multipart upload before you can upload any part. In response to your initiate\n request, Amazon S3 returns the upload ID, a unique identifier that you must include in your upload part\n request.

\n

For conceptual information about multipart uploads, see Uploading Objects Using Multipart Upload in\n the Amazon S3 User Guide. For information about copying objects using a single atomic\n action vs. a multipart upload, see Operations on Objects in the\n Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://amzn-s3-demo-bucket.s3express-zone-id.region-code.amazonaws.com/key-name\n . Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the\n Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the\n Amazon S3 User Guide.

\n
\n
\n
Authentication and authorization
\n
\n

All UploadPartCopy requests must be authenticated and signed by using IAM\n credentials (access key ID and secret access key for the IAM identities). All headers with the\n x-amz- prefix, including x-amz-copy-source, must be signed. For more\n information, see REST Authentication.

\n

\n Directory buckets - You must use IAM credentials to\n authenticate and authorize your access to the UploadPartCopy API operation, instead\n of using the temporary security credentials through the CreateSession API\n operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

You must have READ access to the source object and WRITE access to\n the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the\n permissions in a policy based on the bucket types of your source bucket and destination bucket\n in an UploadPartCopy operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have the \n s3:GetObject\n permission to read the source object that is\n being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have the \n s3:PutObject\n permission to write the object copy to\n the destination bucket.

      \n
    • \n
    • \n

      To perform a multipart upload with encryption using an Key Management Service key, the requester\n must have permission to the kms:Decrypt and kms:GenerateDataKey\n actions on the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the CreateMultipartUpload API.\n Then, the requester needs permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These permissions are\n required because Amazon S3 must decrypt and read data from the encrypted file parts before it\n completes the multipart upload. For more information about KMS permissions, see Protecting\n data using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the permissions required to\n use the multipart upload API, see Multipart upload and\n permissions and Multipart upload API\n and permissions in the Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - You must have\n permissions in a bucket policy or an IAM identity-based policy based on the source and destination bucket types\n in an UploadPartCopy operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a directory bucket, you must have\n the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. If no session mode is specified, \n the session will be created with the maximum allowable privilege, attempting \n ReadWrite first, then ReadOnly if ReadWrite is not permitted. \n If you want to explicitly restrict the access to be read-only, you can set the s3express:SessionMode \n condition key to ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object to the destination. The\n s3express:SessionMode condition key cannot be set to ReadOnly\n on the copy destination.

      \n
    • \n
    \n

    If the object is encrypted with SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM\n identity-based policies and KMS key policies for the KMS key.

    \n

    For example policies, see Example\n bucket policies for S3 Express One Zone and Amazon Web Services\n Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets -\n For information about using server-side encryption with\n customer-provided encryption keys with the UploadPartCopy operation, see CopyObject and\n UploadPart.

    \n \n

    If you have server-side encryption with customer-provided keys (SSE-C) blocked for your general purpose bucket, you will get an HTTP 403 Access Denied error when you specify the SSE-C request headers while writing new data to your bucket. For more information, see Blocking or unblocking SSE-C for a general purpose bucket.

    \n
    \n
  • \n
  • \n

    \n Directory buckets -\n For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

    \n \n

    For directory buckets, when you perform a CreateMultipartUpload operation\n and an UploadPartCopy operation, the request headers you provide in the\n CreateMultipartUpload request must match the default encryption configuration\n of the destination bucket.

    \n
    \n

    S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through UploadPartCopy. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID might be\n invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidRequest\n

    \n
      \n
    • \n

      Description: The specified copy source is not supported as a byte-range copy\n source.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket-name.s3express-zone-id.region-code.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPartCopy:

\n \n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#examples": [ + { + "title": "To upload a part by copying byte range from an existing object as data source", + "documentation": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", + "input": { + "Bucket": "examplebucket", + "CopySource": "/bucketname/sourceobjectkey", + "CopySourceRange": "bytes=1-100000", + "Key": "examplelargeobject", + "PartNumber": 2, + "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" + }, + "output": { + "CopyPartResult": { + "LastModified": "2016-12-29T21:44:28.000Z", + "ETag": "\"65d16d19e65a7508a51f043180edcc36\"" + } + } + }, + { + "title": "To upload a part by copying data from an existing object as data source", + "documentation": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", + "input": { + "Bucket": "examplebucket", + "CopySource": "/bucketname/sourceobjectkey", + "Key": "examplelargeobject", + "PartNumber": 1, + "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" + }, + "output": { + "CopyPartResult": { + "LastModified": "2016-12-29T21:24:43.000Z", + "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"" + } + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/{Bucket}/{Key+}?x-id=UploadPartCopy", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "DisableS3ExpressSessionAuth": { + "value": true + } + } + } + }, + "com.amazonaws.s3#UploadPartCopyOutput": { + "type": "structure", + "members": { + "CopySourceVersionId": { + "target": "com.amazonaws.s3#CopySourceVersionId", + "traits": { + "smithy.api#documentation": "

The version of the source object that was copied, if you have enabled versioning on the source\n bucket.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-version-id" + } + }, + "CopyPartResult": { + "target": "com.amazonaws.s3#CopyPartResult", + "traits": { + "smithy.api#documentation": "

Container for all response elements.

", + "smithy.api#httpPayload": {} + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#UploadPartCopyRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The bucket name.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n \n

Copying objects across different Amazon Web Services Regions isn't supported when the source or destination\n bucket is in Amazon Web Services Local Zones. The source and destination buckets must have the same parent Amazon Web Services Region.\n Otherwise, you get an HTTP 400 Bad Request error with the error code\n InvalidRequest.

\n
\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "CopySource": { + "target": "com.amazonaws.s3#CopySource", + "traits": { + "smithy.api#documentation": "

Specifies the source object for the copy operation. You specify the value in one of two formats,\n depending on whether you want to access the source object through an access point:

\n
    \n
  • \n

    For objects not accessed through an access point, specify the name of the source bucket and key of the\n source object, separated by a slash (/). For example, to copy the object\n reports/january.pdf from the bucket awsexamplebucket, use\n awsexamplebucket/reports/january.pdf. The value must be URL-encoded.

    \n
  • \n
  • \n

    For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    \n \n
      \n
    • \n

      Amazon S3 supports copy operations using Access points only when the source and destination buckets are in the same Amazon Web Services Region.

      \n
    • \n
    • \n

      Access points are not supported by directory buckets.

      \n
    • \n
    \n
    \n

    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

    \n
  • \n
\n

If your bucket has versioning enabled, you could have multiple versions of the same object. By\n default, x-amz-copy-source identifies the current version of the source object to copy. To\n copy a specific version of the source object to copy, append ?versionId= to\n the x-amz-copy-source request header (for example, x-amz-copy-source:\n /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).

\n

If the current version is a delete marker and you don't specify a versionId in the\n x-amz-copy-source request header, Amazon S3 returns a 404 Not Found error,\n because the object does not exist. If you specify versionId in the x-amz-copy-source and\n the versionId is a delete marker, Amazon S3 returns an HTTP 400 Bad Request error, because you\n are not allowed to specify a delete marker as a version for the x-amz-copy-source.

\n \n

\n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source", + "smithy.api#required": {} + } + }, + "CopySourceIfMatch": { + "target": "com.amazonaws.s3#CopySourceIfMatch", + "traits": { + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) matches the specified tag.

\n

If both of the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true, and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", + "smithy.api#httpHeader": "x-amz-copy-source-if-match" + } + }, + "CopySourceIfModifiedSince": { + "target": "com.amazonaws.s3#CopySourceIfModifiedSince", + "traits": { + "smithy.api#documentation": "

Copies the object if it has been modified since the specified time.

\n

If both of the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request as follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to false, and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", + "smithy.api#httpHeader": "x-amz-copy-source-if-modified-since" + } + }, + "CopySourceIfNoneMatch": { + "target": "com.amazonaws.s3#CopySourceIfNoneMatch", + "traits": { + "smithy.api#documentation": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

\n

If both of the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request as follows:

\n

\n x-amz-copy-source-if-none-match condition evaluates to false, and;

\n

\n x-amz-copy-source-if-modified-since condition evaluates to true;

\n

Amazon S3 returns 412 Precondition Failed response code.\n

", + "smithy.api#httpHeader": "x-amz-copy-source-if-none-match" + } + }, + "CopySourceIfUnmodifiedSince": { + "target": "com.amazonaws.s3#CopySourceIfUnmodifiedSince", + "traits": { + "smithy.api#documentation": "

Copies the object if it hasn't been modified since the specified time.

\n

If both of the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request as\n follows:

\n

\n x-amz-copy-source-if-match condition evaluates to true, and;

\n

\n x-amz-copy-source-if-unmodified-since condition evaluates to false;

\n

Amazon S3 returns 200 OK and copies the data.\n

", + "smithy.api#httpHeader": "x-amz-copy-source-if-unmodified-since" + } + }, + "CopySourceRange": { + "target": "com.amazonaws.s3#CopySourceRange", + "traits": { + "smithy.api#documentation": "

The range of bytes to copy from the source object. The range value must use the form\n bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example,\n bytes=0-9 indicates that you want to copy the first 10 bytes of the source. You can copy a range only if\n the source object is greater than 5 MB.

", + "smithy.api#httpHeader": "x-amz-copy-source-range" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number of part being copied. This is a positive integer between 1 and 10,000.

", + "smithy.api#httpQuery": "partNumber", + "smithy.api#required": {} + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID identifying the multipart upload whose part is being copied.

", + "smithy.api#httpQuery": "uploadId", + "smithy.api#required": {} + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption\n key specified in the initiate multipart upload request.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported when the destination bucket is a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "CopySourceSSECustomerAlgorithm": { + "target": "com.amazonaws.s3#CopySourceSSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when decrypting the source object (for example,\n AES256).

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-algorithm" + } + }, + "CopySourceSSECustomerKey": { + "target": "com.amazonaws.s3#CopySourceSSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The\n encryption key provided in this header must be one that was used when the source object was\n created.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key" + } + }, + "CopySourceSSECustomerKeyMD5": { + "target": "com.amazonaws.s3#CopySourceSSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported when the source object is in a directory bucket.

\n
", + "smithy.api#httpHeader": "x-amz-copy-source-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected destination bucket owner. If the account ID that you provide does not match the actual owner of the destination bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ExpectedSourceBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected source bucket owner. If the account ID that you provide does not match the actual owner of the source bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-source-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UploadPartOutput": { + "type": "structure", + "members": { + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

Entity tag for the uploaded object.

", + "smithy.api#httpHeader": "ETag" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 32-bit CRC32C checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit CRC64NVME checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 160-bit SHA1 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 256-bit SHA256 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 512-bit SHA512 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit MD5 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH64 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 64-bit XXHASH3 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

The Base64 encoded, 128-bit XXHASH128 checksum of the part. This will only be present if\n the checksum was provided in the request. For more information, see\n Checking\n object integrity in the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to confirm the encryption algorithm that's used.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

If server-side encryption with a customer-provided encryption key was requested, the response will\n include this header to provide the round-trip message integrity verification of the customer-provided\n encryption key.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, indicates the ID of the KMS key that was used for object encryption.

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with\n Key Management Service (KMS) keys (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-server-side-encryption-bucket-key-enabled" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.s3#UploadPartRequest": { + "type": "structure", + "members": { + "Body": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

Object data.

", + "smithy.api#httpPayload": {} + } + }, + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket to which the multipart upload was initiated.

\n

\n Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format \n Bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format \n bucket-base-name--zone-id--x-s3 (for example, \n amzn-s3-demo-bucket--usw2-az1--x-s3). For information about bucket naming\n restrictions, see Directory bucket naming\n rules in the Amazon S3 User Guide.

\n

\n Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

\n \n

Object Lambda access points are not supported by directory buckets.

\n
\n

\n S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the \n form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Bucket" + } + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

Size of the body in bytes. This parameter is useful when the size of the body cannot be determined\n automatically.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ContentMD5": { + "target": "com.amazonaws.s3#ContentMD5", + "traits": { + "smithy.api#documentation": "

The Base64 encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using\n the command from the CLI. This parameter is required if object lock parameters are specified.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "Content-MD5" + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any\n additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

\n

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm\n parameter.

\n

This checksum algorithm must be the same for all parts and it match the checksum value supplied in\n the CreateMultipartUpload request.

", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit CRC64NVME\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 160-bit SHA1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the Base64 encoded, 256-bit SHA256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 512-bit SHA512\n digest of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit MD5\n digest of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH64\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH3\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit XXHASH128\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-checksum-xxhash128" + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

Object key for which the multipart upload was initiated.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.rules#contextParam": { + "name": "Key" + } + } + }, + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

Part number of part being uploaded. This is a positive integer between 1 and 10,000.

", + "smithy.api#httpQuery": "partNumber", + "smithy.api#required": {} + } + }, + "UploadId": { + "target": "com.amazonaws.s3#MultipartUploadId", + "traits": { + "smithy.api#documentation": "

Upload ID identifying the multipart upload whose part is being uploaded.

", + "smithy.api#httpQuery": "uploadId", + "smithy.api#required": {} + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is\n used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must\n be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption\n key specified in the initiate multipart upload request.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header\n for a message integrity check to ensure that the encryption key was transmitted without error.

\n \n

This functionality is not supported for directory buckets.

\n
", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#UserMetadata": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#MetadataEntry", + "traits": { + "smithy.api#xmlName": "MetadataEntry" + } + } + }, + "com.amazonaws.s3#Value": { + "type": "string" + }, + "com.amazonaws.s3#VersionCount": { + "type": "integer" + }, + "com.amazonaws.s3#VersionIdMarker": { + "type": "string" + }, + "com.amazonaws.s3#VersioningConfiguration": { + "type": "structure", + "members": { + "MFADelete": { + "target": "com.amazonaws.s3#MFADelete", + "traits": { + "smithy.api#documentation": "

Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only\n returned if the bucket has been configured with MFA delete. If the bucket has never been so configured,\n this element is not returned.

", + "smithy.api#xmlName": "MfaDelete" + } + }, + "Status": { + "target": "com.amazonaws.s3#BucketVersioningStatus", + "traits": { + "smithy.api#documentation": "

The versioning state of the bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the versioning state of an Amazon S3 bucket. For more information, see PUT Bucket\n versioning in the Amazon S3 API Reference.

" + } + }, + "com.amazonaws.s3#WebsiteConfiguration": { + "type": "structure", + "members": { + "ErrorDocument": { + "target": "com.amazonaws.s3#ErrorDocument", + "traits": { + "smithy.api#documentation": "

The name of the error document for the website.

" + } + }, + "IndexDocument": { + "target": "com.amazonaws.s3#IndexDocument", + "traits": { + "smithy.api#documentation": "

The name of the index document for the website.

" + } + }, + "RedirectAllRequestsTo": { + "target": "com.amazonaws.s3#RedirectAllRequestsTo", + "traits": { + "smithy.api#documentation": "

The redirect behavior for every request to this bucket's website endpoint.

\n \n

If you specify this property, you can't specify any other property.

\n
" + } + }, + "RoutingRules": { + "target": "com.amazonaws.s3#RoutingRules", + "traits": { + "smithy.api#documentation": "

Rules that define when a redirect is applied and the redirect behavior.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies website configuration parameters for an Amazon S3 bucket.

" + } + }, + "com.amazonaws.s3#WebsiteRedirectLocation": { + "type": "string" + }, + "com.amazonaws.s3#WriteGetObjectResponse": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#WriteGetObjectResponseRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "aws.auth#unsignedPayload": {}, + "smithy.api#auth": [ + "aws.auth#sigv4" + ], + "smithy.api#documentation": "\n

This operation is not supported for directory buckets.

\n
\n

Passes transformed objects to a GetObject operation when using Object Lambda access points. For information\n about Object Lambda access points, see Transforming objects with Object Lambda access points in the Amazon S3 User Guide.

\n

This operation supports metadata that can be returned by GetObject, in addition to\n RequestRoute, RequestToken, StatusCode, ErrorCode,\n and ErrorMessage. The GetObject response metadata is supported so that the\n WriteGetObjectResponse caller, typically an Lambda function, can provide the same\n metadata when it internally invokes GetObject. When WriteGetObjectResponse is\n called by a customer-owned Lambda function, the metadata returned to the end user GetObject\n call might differ from what Amazon S3 would normally return.

\n

You can include any number of metadata headers. When including a metadata header, it should be\n prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header:\n MyCustomValue. The primary use case for this is to forward GetObject\n metadata.

\n

Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and\n redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are\n available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services\n Management Console when you create your Object Lambda access point.

\n

Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural\n language processing (NLP) service using machine learning to find insights and relationships in text. It\n automatically detects personally identifiable information (PII) such as names, addresses, dates, credit\n card numbers, and social security numbers from documents in your Amazon S3 bucket.

\n

Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language\n processing (NLP) service using machine learning to find insights and relationships in text. It\n automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit\n card numbers, and social security numbers from documents in your Amazon S3 bucket.

\n

Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to\n decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy,\n zlib, zstandard and ZIP.

\n

For information on how to view and use these functions, see Using Amazon Web Services built Lambda functions in the\n Amazon S3 User Guide.

\n \n

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

\n
", + "smithy.api#endpoint": { + "hostPrefix": "{RequestRoute}." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/WriteGetObjectResponse", + "code": 200 + }, + "smithy.rules#staticContextParams": { + "UseObjectLambdaEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.s3#WriteGetObjectResponseRequest": { + "type": "structure", + "members": { + "RequestRoute": { + "target": "com.amazonaws.s3#RequestRoute", + "traits": { + "smithy.api#documentation": "

Route prefix to the HTTP URL generated.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-request-route", + "smithy.api#required": {} + } + }, + "RequestToken": { + "target": "com.amazonaws.s3#RequestToken", + "traits": { + "smithy.api#documentation": "

A single use encrypted token that maps WriteGetObjectResponse to the end user\n GetObject request.

", + "smithy.api#httpHeader": "x-amz-request-token", + "smithy.api#required": {} + } + }, + "Body": { + "target": "com.amazonaws.s3#StreamingBlob", + "traits": { + "smithy.api#default": "", + "smithy.api#documentation": "

The object data.

", + "smithy.api#httpPayload": {} + } + }, + "StatusCode": { + "target": "com.amazonaws.s3#GetObjectResponseStatusCode", + "traits": { + "smithy.api#documentation": "

The integer status code for an HTTP response of a corresponding GetObject request. The\n following is a list of status codes.

\n
    \n
  • \n

    \n 200 - OK\n

    \n
  • \n
  • \n

    \n 206 - Partial Content\n

    \n
  • \n
  • \n

    \n 304 - Not Modified\n

    \n
  • \n
  • \n

    \n 400 - Bad Request\n

    \n
  • \n
  • \n

    \n 401 - Unauthorized\n

    \n
  • \n
  • \n

    \n 403 - Forbidden\n

    \n
  • \n
  • \n

    \n 404 - Not Found\n

    \n
  • \n
  • \n

    \n 405 - Method Not Allowed\n

    \n
  • \n
  • \n

    \n 409 - Conflict\n

    \n
  • \n
  • \n

    \n 411 - Length Required\n

    \n
  • \n
  • \n

    \n 412 - Precondition Failed\n

    \n
  • \n
  • \n

    \n 416 - Range Not Satisfiable\n

    \n
  • \n
  • \n

    \n 500 - Internal Server Error\n

    \n
  • \n
  • \n

    \n 503 - Service Unavailable\n

    \n
  • \n
", + "smithy.api#httpHeader": "x-amz-fwd-status" + } + }, + "ErrorCode": { + "target": "com.amazonaws.s3#ErrorCode", + "traits": { + "smithy.api#documentation": "

A string that uniquely identifies an error condition. Returned in the tag of the error\n XML response for a corresponding GetObject call. Cannot be used with a successful\n StatusCode header or when the transformed object is provided in the body. All error codes\n from S3 are sentence-cased. The regular expression (regex) value is\n \"^[A-Z][a-zA-Z]+$\".

", + "smithy.api#httpHeader": "x-amz-fwd-error-code" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.s3#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Contains a generic description of the error condition. Returned in the tag of the\n error XML response for a corresponding GetObject call. Cannot be used with a successful\n StatusCode header or when the transformed object is provided in body.

", + "smithy.api#httpHeader": "x-amz-fwd-error-message" + } + }, + "AcceptRanges": { + "target": "com.amazonaws.s3#AcceptRanges", + "traits": { + "smithy.api#documentation": "

Indicates that a range of bytes was specified.

", + "smithy.api#httpHeader": "x-amz-fwd-header-accept-ranges" + } + }, + "CacheControl": { + "target": "com.amazonaws.s3#CacheControl", + "traits": { + "smithy.api#documentation": "

Specifies caching behavior along the request/reply chain.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Cache-Control" + } + }, + "ContentDisposition": { + "target": "com.amazonaws.s3#ContentDisposition", + "traits": { + "smithy.api#documentation": "

Specifies presentational information for the object.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Content-Disposition" + } + }, + "ContentEncoding": { + "target": "com.amazonaws.s3#ContentEncoding", + "traits": { + "smithy.api#documentation": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms\n must be applied to obtain the media-type referenced by the Content-Type header field.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Content-Encoding" + } + }, + "ContentLanguage": { + "target": "com.amazonaws.s3#ContentLanguage", + "traits": { + "smithy.api#documentation": "

The language the content is in.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Content-Language" + } + }, + "ContentLength": { + "target": "com.amazonaws.s3#ContentLength", + "traits": { + "smithy.api#documentation": "

The size of the content body in bytes.

", + "smithy.api#httpHeader": "Content-Length" + } + }, + "ContentRange": { + "target": "com.amazonaws.s3#ContentRange", + "traits": { + "smithy.api#documentation": "

The portion of the object returned in the response.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Content-Range" + } + }, + "ContentType": { + "target": "com.amazonaws.s3#ContentType", + "traits": { + "smithy.api#documentation": "

A standard MIME type describing the format of the object data.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Content-Type" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This specifies the Base64 encoded, 32-bit CRC32 checksum of the\n object returned by the Object Lambda function. This may not match the checksum for the object stored in\n Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject\n request required checksum validation. For more information about checksums, see Checking object\n integrity in the Amazon S3 User Guide.

\n

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this\n request will fail.

\n

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This specifies the Base64 encoded, 32-bit CRC32C checksum of the\n object returned by the Object Lambda function. This may not match the checksum for the object stored in\n Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject\n request required checksum validation. For more information about checksums, see Checking object\n integrity in the Amazon S3 User Guide.

\n

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this\n request will fail.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-crc32c" + } + }, + "ChecksumCRC64NVME": { + "target": "com.amazonaws.s3#ChecksumCRC64NVME", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit CRC64NVME\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-crc64nvme" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This specifies the Base64 encoded, 160-bit SHA1 digest of the\n object returned by the Object Lambda function. This may not match the checksum for the object stored in\n Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject\n request required checksum validation. For more information about checksums, see Checking object\n integrity in the Amazon S3 User Guide.

\n

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this\n request will fail.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This specifies the Base64 encoded, 256-bit SHA256 digest of the\n object returned by the Object Lambda function. This may not match the checksum for the object stored in\n Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject\n request required checksum validation. For more information about checksums, see Checking object\n integrity in the Amazon S3 User Guide.

\n

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this\n request will fail.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-sha256" + } + }, + "ChecksumSHA512": { + "target": "com.amazonaws.s3#ChecksumSHA512", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 512-bit SHA512\n digest of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-sha512" + } + }, + "ChecksumMD5": { + "target": "com.amazonaws.s3#ChecksumMD5", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit MD5\n digest of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-md5" + } + }, + "ChecksumXXHASH64": { + "target": "com.amazonaws.s3#ChecksumXXHASH64", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH64\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-xxhash64" + } + }, + "ChecksumXXHASH3": { + "target": "com.amazonaws.s3#ChecksumXXHASH3", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 64-bit XXHASH3\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-xxhash3" + } + }, + "ChecksumXXHASH128": { + "target": "com.amazonaws.s3#ChecksumXXHASH128", + "traits": { + "smithy.api#documentation": "

This header can be used as a data integrity check to verify that the data received is the same data\n that was originally sent. This header specifies the Base64 encoded, 128-bit XXHASH128\n checksum of the part. For more information, see Checking object integrity in\n the Amazon S3 User Guide.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-xxhash128" + } + }, + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

Specifies whether an object stored in Amazon S3 is (true) or is not (false) a\n delete marker. To learn more about delete markers, see Working with delete markers.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-delete-marker" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

An opaque identifier assigned by a web server to a specific version of a resource found at a URL.\n

", + "smithy.api#httpHeader": "x-amz-fwd-header-ETag" + } + }, + "Expires": { + "target": "com.amazonaws.s3#Expires", + "traits": { + "smithy.api#documentation": "

The date and time at which the object is no longer cacheable.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Expires" + } + }, + "Expiration": { + "target": "com.amazonaws.s3#Expiration", + "traits": { + "smithy.api#documentation": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this\n header. It includes the expiry-date and rule-id key-value pairs that provide\n the object expiration information. The value of the rule-id is URL-encoded.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-expiration" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

The date and time that the object was last modified.

", + "smithy.api#httpHeader": "x-amz-fwd-header-Last-Modified" + } + }, + "MissingMeta": { + "target": "com.amazonaws.s3#MissingMeta", + "traits": { + "smithy.api#documentation": "

Set to the number of metadata entries not returned in x-amz-meta headers. This can\n happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST\n API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-missing-meta" + } + }, + "Metadata": { + "target": "com.amazonaws.s3#Metadata", + "traits": { + "smithy.api#documentation": "

A map of metadata to store with the object in S3.

", + "smithy.api#httpPrefixHeaders": "x-amz-meta-" + } + }, + "ObjectLockMode": { + "target": "com.amazonaws.s3#ObjectLockMode", + "traits": { + "smithy.api#documentation": "

Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3\n Object Lock, see Object\n Lock.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-object-lock-mode" + } + }, + "ObjectLockLegalHoldStatus": { + "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether an object stored in Amazon S3 has an active legal hold.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-object-lock-legal-hold" + } + }, + "ObjectLockRetainUntilDate": { + "target": "com.amazonaws.s3#ObjectLockRetainUntilDate", + "traits": { + "smithy.api#documentation": "

The date and time when Object Lock is configured to expire.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-object-lock-retain-until-date" + } + }, + "PartsCount": { + "target": "com.amazonaws.s3#PartsCount", + "traits": { + "smithy.api#documentation": "

The count of parts this object has.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-mp-parts-count" + } + }, + "ReplicationStatus": { + "target": "com.amazonaws.s3#ReplicationStatus", + "traits": { + "smithy.api#documentation": "

Indicates if request involves bucket that is either a source or destination in a Replication rule.\n For more information about S3 Replication, see Replication.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-replication-status" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-request-charged" + } + }, + "Restore": { + "target": "com.amazonaws.s3#Restore", + "traits": { + "smithy.api#documentation": "

Provides information about object restoration operation and expiration time of the restored object\n copy.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-restore" + } + }, + "ServerSideEncryption": { + "target": "com.amazonaws.s3#ServerSideEncryption", + "traits": { + "smithy.api#documentation": "

The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.

\n \n

When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side\n encryption option is aws:fsx.

\n
", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

Encryption algorithm used if server-side encryption with a customer-provided encryption key was\n specified for object stored in Amazon S3.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSEKMSKeyId": { + "target": "com.amazonaws.s3#SSEKMSKeyId", + "traits": { + "smithy.api#documentation": "

If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service\n (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3.\n For more information, see Protecting data using\n server-side encryption with customer-provided encryption keys (SSE-C).

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5" + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except\n for S3 Standard storage class objects.

\n

For more information, see Storage Classes.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-storage-class" + } + }, + "TagCount": { + "target": "com.amazonaws.s3#TagCount", + "traits": { + "smithy.api#documentation": "

The number of tags, if any, on the object.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-tagging-count" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

An ID used to reference a specific version of the object.

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-version-id" + } + }, + "BucketKeyEnabled": { + "target": "com.amazonaws.s3#BucketKeyEnabled", + "traits": { + "smithy.api#documentation": "

Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with\n Amazon Web Services KMS (SSE-KMS).

", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.s3#WriteOffsetBytes": { + "type": "long" + }, + "com.amazonaws.s3#Years": { + "type": "integer" + } + } +} diff --git a/codegen/aws-models/signin.json b/codegen/aws-models/signin.json index c03e404e..8ae13938 100644 --- a/codegen/aws-models/signin.json +++ b/codegen/aws-models/signin.json @@ -7,20 +7,20 @@ "error": { "target": "com.amazonaws.signin#OAuth2ErrorCode", "traits": { - "smithy.api#documentation": "OAuth 2.0 error code indicating the specific type of access denial\nCan be TOKEN_EXPIRED, AUTHCODE_EXPIRED, USER_CREDENTIALS_CHANGED, or INSUFFICIENT_PERMISSIONS", + "smithy.api#documentation": "One of TOKEN_EXPIRED, AUTHCODE_EXPIRED, USER_CREDENTIALS_CHANGED, or INSUFFICIENT_PERMISSIONS.", "smithy.api#required": {} } }, "message": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Detailed message explaining the access denial\nProvides specific information about why access was denied", + "smithy.api#documentation": "The reason access was denied.", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Error thrown for access denied scenarios with flexible HTTP status mapping\n\nRuntime HTTP Status Code Mapping:\n- HTTP 401 (Unauthorized): TOKEN_EXPIRED, AUTHCODE_EXPIRED\n- HTTP 403 (Forbidden): USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS\n\nThe specific HTTP status code is determined at runtime based on the error enum value.\nConsumers should use the error field to determine the specific access denial reason.", + "smithy.api#documentation": "You do not have sufficient access to perform this action.", "smithy.api#error": "client" } }, @@ -30,7 +30,7 @@ "accessKeyId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "AWS access key ID for temporary credentials", + "smithy.api#documentation": "The AWS access key ID for the temporary credentials.", "smithy.api#jsonName": "accessKeyId", "smithy.api#required": {} } @@ -38,7 +38,7 @@ "secretAccessKey": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "AWS secret access key for temporary credentials", + "smithy.api#documentation": "The AWS secret access key used to sign requests.", "smithy.api#jsonName": "secretAccessKey", "smithy.api#required": {} } @@ -46,14 +46,14 @@ "sessionToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "AWS session token for temporary credentials", + "smithy.api#documentation": "The session token that validates the temporary security credentials.", "smithy.api#jsonName": "sessionToken", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "AWS credentials structure containing temporary access credentials\n\nScoped, temporary AWS credentials with a 15-minute duration.", + "smithy.api#documentation": "Contains the scoped, temporary AWS credentials used to sign requests with SigV4. Valid for 15 minutes.", "smithy.api#sensitive": {} } }, @@ -71,17 +71,26 @@ "com.amazonaws.signin#AuthorizationCode": { "type": "string", "traits": { - "smithy.api#documentation": "Authorization code received from AWS Sign-In /v1/authorize endpoint\n\nThe authorization code received from AWS Sign-In from /v1/authorize.\nUsed in auth code redemption flow only.", + "smithy.api#documentation": "Authorization code received from AWS Sign-In. Used only in the authorization code redemption flow.", "smithy.api#length": { "min": 1, "max": 512 } } }, + "com.amazonaws.signin#BearerTokenExpiresIn": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Token lifetime in seconds.", + "smithy.api#range": { + "min": 1 + } + } + }, "com.amazonaws.signin#BearerTokenType": { "type": "string", "traits": { - "smithy.api#documentation": "Token type for access tokens. Always \"Bearer\" per OAuth 2.1.", + "smithy.api#documentation": "Token type for access tokens. Currently supports \"Bearer\" as defined in RFC 6749.", "smithy.api#pattern": "^Bearer$" } }, @@ -95,7 +104,7 @@ "com.amazonaws.signin#ClientId": { "type": "string", "traits": { - "smithy.api#documentation": "Client identifier pattern for AWS Sign-In devtools clients\n\nThe ARN used by client as part of Sign-In onboarding. Expected values:\n- arn:aws:signin:::devtools/cross-device (for cross-device devtools login)\n- arn:aws:signin:::devtools/same-device (for same-device devtools login)", + "smithy.api#documentation": "The OAuth 2.0 client identifier.", "smithy.api#pattern": "^arn:aws:signin:::devtools/(cross-device|same-device)$" } }, @@ -113,7 +122,7 @@ "com.amazonaws.signin#CodeVerifier": { "type": "string", "traits": { - "smithy.api#documentation": "PKCE code verifier for OAuth 2.0 security\n\nPKCE code verifier to prove possession of the original code challenge.\nUsed to prevent authorization code interception attacks in public clients.\nMust be 43-128 characters using unreserved characters [A-Z] / [a-z] / [0-9] / \"-\" / \".\" / \"_\" / \"~\"", + "smithy.api#documentation": "PKCE code verifier used to prove possession of the original code challenge. Must be 43 to 128 characters.", "smithy.api#length": { "min": 43, "max": 128 @@ -194,6 +203,112 @@ } } }, + "com.amazonaws.signin#CreateBearerToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.signin#CreateBearerTokenRequest" + }, + "output": { + "target": "com.amazonaws.signin#CreateBearerTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.signin#AccessDeniedException" + }, + { + "target": "com.amazonaws.signin#InternalServerException" + }, + { + "target": "com.amazonaws.signin#TooManyRequestsError" + }, + { + "target": "com.amazonaws.signin#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "CreateBearerToken", + "documentation": "Grants permission to create a bearer token for a supported AWS service using SigV4 credentials" + }, + "smithy.api#auth": [ + "aws.auth#sigv4" + ], + "smithy.api#documentation": "Creates a bearer token that represents your IAM credentials and can be used to access a supported AWS service. By default, the token is valid for 12 hours.", + "smithy.api#http": { + "method": "POST", + "uri": "/v1/token?x-amz-token-request-type=bearer" + }, + "smithy.rules#staticContextParams": { + "IsOAuthEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.signin#CreateBearerTokenRequest": { + "type": "structure", + "members": { + "grantType": { + "target": "com.amazonaws.signin#ClientCredentialsGrantType", + "traits": { + "smithy.api#documentation": "The grant type. Must be \"client_credentials\".", + "smithy.api#jsonName": "grant_type", + "smithy.api#required": {} + } + }, + "resource": { + "target": "com.amazonaws.signin#Resource", + "traits": { + "smithy.api#documentation": "The AWS service the bearer token is for.\nExample: \"ecr.amazonaws.com\".", + "smithy.api#required": {} + } + }, + "durationSeconds": { + "target": "com.amazonaws.signin#TokenDuration", + "traits": { + "smithy.api#documentation": "The requested token lifetime in seconds, from 300 (5 minutes) up to the maximum allowed for the service, currently 43200 (12 hours). If omitted, the token is valid for 12 hours.", + "smithy.api#jsonName": "duration" + } + } + }, + "traits": { + "smithy.api#documentation": "Input structure for CreateBearerToken operation", + "smithy.api#input": {} + } + }, + "com.amazonaws.signin#CreateBearerTokenResponse": { + "type": "structure", + "members": { + "accessToken": { + "target": "com.amazonaws.signin#OAuthAccessToken", + "traits": { + "smithy.api#documentation": "The bearer token. Present it to the AWS service named in the request.", + "smithy.api#jsonName": "access_token", + "smithy.api#required": {} + } + }, + "tokenType": { + "target": "com.amazonaws.signin#BearerTokenType", + "traits": { + "smithy.api#documentation": "The token type. Always \"Bearer\".", + "smithy.api#jsonName": "token_type", + "smithy.api#required": {} + } + }, + "expiresIn": { + "target": "com.amazonaws.signin#BearerTokenExpiresIn", + "traits": { + "smithy.api#documentation": "Token lifetime in seconds.", + "smithy.api#jsonName": "expires_in", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Output structure for CreateBearerToken operation\n\nContains the bearer token, its type, and its lifetime.", + "smithy.api#output": {} + } + }, "com.amazonaws.signin#CreateOAuth2Token": { "type": "operation", "input": { @@ -218,7 +333,7 @@ ], "traits": { "smithy.api#auth": [], - "smithy.api#documentation": "CreateOAuth2Token API\n\nPath: /v1/token\nRequest Method: POST\nContent-Type: application/json or application/x-www-form-urlencoded\n\nThis API implements OAuth 2.0 flows for AWS Sign-In CLI clients, supporting both:\n1. Authorization code redemption (grant_type=authorization_code) - NOT idempotent\n2. Token refresh (grant_type=refresh_token) - Idempotent within token validity window\n\nThe operation behavior is determined by the grant_type parameter in the request body:\n\n**Authorization Code Flow (NOT Idempotent):**\n- JSON or form-encoded body with client_id, grant_type=authorization_code, code, redirect_uri, code_verifier\n- Returns access_token, token_type, expires_in, refresh_token, and id_token\n- Each authorization code can only be used ONCE for security (prevents replay attacks)\n\n**Token Refresh Flow (Idempotent):**\n- JSON or form-encoded body with client_id, grant_type=refresh_token, refresh_token\n- Returns access_token, token_type, expires_in, and refresh_token (no id_token)\n- Multiple calls with same refresh_token return consistent results within validity window\n\nAuthentication and authorization:\n- Confidential clients: sigv4 signing required with signin:ExchangeToken permissions\n- CLI clients (public): authn/authz skipped based on client_id & grant_type\n\nNote: This operation cannot be marked as @idempotent because it handles both idempotent\n(token refresh) and non-idempotent (auth code redemption) flows in a single endpoint.", + "smithy.api#documentation": "Exchanges an authorization code or refresh token for an OAuth 2.0 access token and refresh token.", "smithy.api#http": { "method": "POST", "uri": "/v1/token" @@ -255,7 +370,7 @@ "tokenInput": { "target": "com.amazonaws.signin#CreateOAuth2TokenRequestBody", "traits": { - "smithy.api#documentation": "Flattened token operation inputs\nThe specific operation is determined by grant_type in the request body", + "smithy.api#documentation": "Flattened token operation inputs. The \"grant_type\" in the request body determines the specific operation.", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -272,7 +387,7 @@ "clientId": { "target": "com.amazonaws.signin#ClientId", "traits": { - "smithy.api#documentation": "The client identifier (ARN) used during Sign-In onboarding\nRequired for both authorization code and refresh token flows", + "smithy.api#documentation": "The OAuth 2.0 client identifier. Expected values: \"arn:aws:signin:::devtools/same-device\"\nor \"arn:aws:signin:::devtools/cross-device\".", "smithy.api#jsonName": "clientId", "smithy.api#required": {} } @@ -280,7 +395,7 @@ "grantType": { "target": "com.amazonaws.signin#GrantType", "traits": { - "smithy.api#documentation": "OAuth 2.0 grant type - determines which flow is used\nMust be \"authorization_code\" or \"refresh_token\"", + "smithy.api#documentation": "The OAuth 2.0 grant type. Supported values:\n- \"authorization_code\" - Exchange an authorization code for tokens.\n- \"refresh_token\" - Use a refresh token to obtain a new access token.", "smithy.api#jsonName": "grantType", "smithy.api#required": {} } @@ -288,33 +403,33 @@ "code": { "target": "com.amazonaws.signin#AuthorizationCode", "traits": { - "smithy.api#documentation": "The authorization code received from /v1/authorize\nRequired only when grant_type=authorization_code" + "smithy.api#documentation": "The authorization code received from the \"/v1/authorize\" endpoint.\nRequired when \"grant_type=authorization_code\"." } }, "redirectUri": { "target": "com.amazonaws.signin#RedirectUri", "traits": { - "smithy.api#documentation": "The redirect URI that must match the original authorization request\nRequired only when grant_type=authorization_code", + "smithy.api#documentation": "The redirect URI that was used in the original authorization request. Must match exactly.\nRequired when \"grant_type=authorization_code\".", "smithy.api#jsonName": "redirectUri" } }, "codeVerifier": { "target": "com.amazonaws.signin#CodeVerifier", "traits": { - "smithy.api#documentation": "PKCE code verifier to prove possession of the original code challenge\nRequired only when grant_type=authorization_code", + "smithy.api#documentation": "The PKCE code verifier that proves possession of the original code challenge.\nRequired when \"grant_type=authorization_code\".", "smithy.api#jsonName": "codeVerifier" } }, "refreshToken": { "target": "com.amazonaws.signin#RefreshToken", "traits": { - "smithy.api#documentation": "The refresh token returned from auth_code redemption\nRequired only when grant_type=refresh_token", + "smithy.api#documentation": "The refresh token issued by a previous token response.\nRequired when \"grant_type=refresh_token\".", "smithy.api#jsonName": "refreshToken" } } }, "traits": { - "smithy.api#documentation": "Request body payload for CreateOAuth2Token operation\n\nThe operation type is determined by the grant_type parameter:\n- grant_type=authorization_code: Requires code, redirect_uri, code_verifier\n- grant_type=refresh_token: Requires refresh_token" + "smithy.api#documentation": "The request body for creating an OAuth 2.0 token. Supports both the authorization code and\nrefresh token flows, selected by the \"grant_type\" parameter." } }, "com.amazonaws.signin#CreateOAuth2TokenResponse": { @@ -323,7 +438,7 @@ "tokenOutput": { "target": "com.amazonaws.signin#CreateOAuth2TokenResponseBody", "traits": { - "smithy.api#documentation": "Flattened token operation outputs\nThe specific response fields depend on the grant_type used in the request", + "smithy.api#documentation": "Flattened token operation outputs.\nThe specific response fields depend on the grant_type used in the request.", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -340,7 +455,7 @@ "accessToken": { "target": "com.amazonaws.signin#AccessToken", "traits": { - "smithy.api#documentation": "Scoped-down AWS credentials (15 minute duration)\nPresent for both authorization code redemption and token refresh", + "smithy.api#documentation": "The access token issued by the authorization server. The token contains temporary\nAWS security credentials that you use to sign requests with SigV4.", "smithy.api#jsonName": "accessToken", "smithy.api#required": {} } @@ -348,7 +463,7 @@ "tokenType": { "target": "com.amazonaws.signin#TokenType", "traits": { - "smithy.api#documentation": "Token type indicating this is AWS SigV4 credentials\nValue is \"aws_sigv4\" for both flows", + "smithy.api#documentation": "The type of token issued. Value is \"aws_sigv4\".", "smithy.api#jsonName": "tokenType", "smithy.api#required": {} } @@ -356,7 +471,7 @@ "expiresIn": { "target": "com.amazonaws.signin#ExpiresIn", "traits": { - "smithy.api#documentation": "Time to expiry in seconds (maximum 900)\nPresent for both authorization code redemption and token refresh", + "smithy.api#documentation": "The number of seconds until the access token expires. Maximum value is 900 seconds (15 minutes).", "smithy.api#jsonName": "expiresIn", "smithy.api#required": {} } @@ -364,7 +479,7 @@ "refreshToken": { "target": "com.amazonaws.signin#RefreshToken", "traits": { - "smithy.api#documentation": "Encrypted refresh token with cnf.jkt (SHA-256 thumbprint of presented jwk)\nAlways present in responses (required for both flows)", + "smithy.api#documentation": "A refresh token that can be used to obtain new access tokens without re-authenticating.", "smithy.api#jsonName": "refreshToken", "smithy.api#required": {} } @@ -372,13 +487,13 @@ "idToken": { "target": "com.amazonaws.signin#IdToken", "traits": { - "smithy.api#documentation": "ID token containing user identity information\nPresent only in authorization code redemption response (grant_type=authorization_code)\nNot included in token refresh responses", + "smithy.api#documentation": "A JSON Web Token (JWT) containing user identity claims. Present only when\n\"grant_type=authorization_code\". Not included in refresh token responses.", "smithy.api#jsonName": "idToken" } } }, "traits": { - "smithy.api#documentation": "Response body payload for CreateOAuth2Token operation\n\nThe response content depends on the grant_type from the request:\n- grant_type=authorization_code: Returns all fields including refresh_token and id_token\n- grant_type=refresh_token: Returns access_token, token_type, expires_in, refresh_token (no id_token)" + "smithy.api#documentation": "The response body for an OAuth 2.0 token request. The fields returned depend on the \"grant_type\".\nThe authorization code flow returns \"refresh_token\" and \"id_token\". The refresh token flow omits \"id_token\"." } }, "com.amazonaws.signin#CreateOAuth2TokenWithIAM": { @@ -411,7 +526,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "Grants permission to exchange client credentials for an OAuth 2.0 access token\nscoped to a resource that can be used to access AWS services from applications", + "smithy.api#documentation": "Exchanges client credentials for an OAuth 2.0 access token scoped to a resource, which you can use to access AWS services from applications.", "smithy.api#http": { "method": "POST", "uri": "/v1/token?x-amz-client-auth-method=iam" @@ -429,19 +544,15 @@ "grantType": { "target": "com.amazonaws.signin#ClientCredentialsGrantType", "traits": { - "smithy.api#documentation": "OAuth 2.0 grant type. Must be \"client_credentials\".", + "smithy.api#documentation": "The OAuth 2.0 grant type. Must be \"client_credentials\".", "smithy.api#jsonName": "grant_type", "smithy.api#required": {} } }, "resource": { - "target": "smithy.api#String", + "target": "com.amazonaws.signin#Resource", "traits": { "smithy.api#documentation": "The OAuth resource for which the access token is requested.\nExample: \"aws-mcp.amazonaws.com\".", - "smithy.api#length": { - "min": 1, - "max": 2048 - }, "smithy.api#required": {} } } @@ -457,15 +568,144 @@ "accessToken": { "target": "com.amazonaws.signin#OAuthAccessToken", "traits": { - "smithy.api#documentation": "JWT access token containing principal identity, resource scope, and session metadata", + "smithy.api#documentation": "Access token containing principal identity, resource scope, and session metadata.", + "smithy.api#jsonName": "access_token", + "smithy.api#required": {} + } + }, + "tokenType": { + "target": "com.amazonaws.signin#BearerTokenType", + "traits": { + "smithy.api#documentation": "The token type. Always \"Bearer\" as defined in RFC 6749.", + "smithy.api#jsonName": "token_type", + "smithy.api#required": {} + } + }, + "expiresIn": { + "target": "com.amazonaws.signin#TokenExpiresIn", + "traits": { + "smithy.api#documentation": "Token lifetime in seconds. Value is the minimum of the caller's session validity and 1 hour (3600 seconds).", + "smithy.api#jsonName": "expires_in", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Output structure for CreateOAuth2TokenWithIAM operation\n\nContains the access token, token type, and expiration as defined in RFC 6749 §5.1.", + "smithy.api#output": {} + } + }, + "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchange": { + "type": "operation", + "input": { + "target": "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeRequest" + }, + "output": { + "target": "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.signin#InternalServerException" + }, + { + "target": "com.amazonaws.signin#InvalidGrantException" + }, + { + "target": "com.amazonaws.signin#InvalidScopeException" + }, + { + "target": "com.amazonaws.signin#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.signin#TooManyRequestsError" + }, + { + "target": "com.amazonaws.signin#ValidationException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "CreateOAuth2Token", + "documentation": "Exchange a subject token for an OAuth 2.0 access token scoped to a resource" + }, + "smithy.api#auth": [], + "smithy.api#documentation": "Exchanges a supported token for an OAuth 2.0 access token scoped to a resource, which you can use to access AWS services from applications.", + "smithy.api#http": { + "method": "POST", + "uri": "/v1/token?x-amz-oauth-token-method=token-exchange" + }, + "smithy.rules#staticContextParams": { + "IsOAuthEndpoint": { + "value": true + } + } + } + }, + "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeRequest": { + "type": "structure", + "members": { + "grantType": { + "target": "com.amazonaws.signin#TokenExchangeGrantType", + "traits": { + "smithy.api#documentation": "The OAuth 2.0 grant type. Currently only supports \"urn:ietf:params:oauth:grant-type:token-exchange\".", + "smithy.api#jsonName": "grant_type", + "smithy.api#required": {} + } + }, + "subjectToken": { + "target": "com.amazonaws.signin#SubjectToken", + "traits": { + "smithy.api#documentation": "The subject token that represents the identity of the party on whose behalf the request is made.\nRequired when \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\".", + "smithy.api#jsonName": "subject_token" + } + }, + "subjectTokenType": { + "target": "com.amazonaws.signin#SubjectTokenType", + "traits": { + "smithy.api#documentation": "The token type of the subject token. Currently only supports \"urn:ietf:params:oauth:token-type:jwt\".\nRequired when \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\".", + "smithy.api#jsonName": "subject_token_type" + } + }, + "resource": { + "target": "com.amazonaws.signin#Resource", + "traits": { + "smithy.api#documentation": "The OAuth resource for which the access token is requested.\nRequired when \"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\".\nExample: \"glue.amazonaws.com\"." + } + }, + "scope": { + "target": "com.amazonaws.signin#Scope", + "traits": { + "smithy.api#documentation": "IAM managed policy Amazon Resource Names (ARNs) to apply as session policies that further\nscope down the permissions of the issued access token, provided as a space-delimited list.\nExample: \"arn:aws:iam::444455556666:policy/MyPolicy\"." + } + } + }, + "traits": { + "smithy.api#documentation": "Input structure for CreateOAuth2TokenWithTokenExchange operation", + "smithy.api#input": {} + } + }, + "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchangeResponse": { + "type": "structure", + "members": { + "accessToken": { + "target": "com.amazonaws.signin#OAuthAccessToken", + "traits": { + "smithy.api#documentation": "Access token containing principal identity, resource scope, and session metadata.", "smithy.api#jsonName": "access_token", "smithy.api#required": {} } }, + "issuedTokenType": { + "target": "com.amazonaws.signin#IssuedOAuthAccessTokenType", + "traits": { + "smithy.api#documentation": "The token type of the issued token. Always \"urn:ietf:params:oauth:token-type:access_token\" as defined in RFC 8693 §2.2.1.", + "smithy.api#jsonName": "issued_token_type" + } + }, "tokenType": { "target": "com.amazonaws.signin#BearerTokenType", "traits": { - "smithy.api#documentation": "Always \"Bearer\" per OAuth 2.1 specification", + "smithy.api#documentation": "The token type. Currently only supports \"Bearer\" as defined in RFC 6749.", "smithy.api#jsonName": "token_type", "smithy.api#required": {} } @@ -473,14 +713,14 @@ "expiresIn": { "target": "com.amazonaws.signin#TokenExpiresIn", "traits": { - "smithy.api#documentation": "Token lifetime in seconds. Value is the minimum of session validity and 1 hour.", + "smithy.api#documentation": "Token lifetime in seconds. Value is the minimum of the subject token's validity and 1 hour (3600 seconds).", "smithy.api#jsonName": "expires_in", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Output structure for CreateOAuth2TokenWithIAM operation\n\nContains the JWT access token, token type, and expiration per RFC 6749 §5.1.", + "smithy.api#documentation": "Output structure for CreateOAuth2TokenWithTokenExchange operation.\n\nContains the access token, issued token type, token type, and expiration as defined in RFC 6749 §5.1 and RFC 8693 §2.2.1.", "smithy.api#output": {} } }, @@ -657,7 +897,7 @@ "com.amazonaws.signin#ExpiresIn": { "type": "integer", "traits": { - "smithy.api#documentation": "Time to expiry in seconds\n\nThe time to expiry in seconds, for these purposes will be at most 900 (15 minutes).", + "smithy.api#documentation": "Time to expiry in seconds. At most 900 (15 minutes).", "smithy.api#range": { "min": 1, "max": 900 @@ -817,14 +1057,14 @@ "com.amazonaws.signin#GrantType": { "type": "string", "traits": { - "smithy.api#documentation": "OAuth 2.0 grant type parameter\n\nFor auth code redemption: Must be \"authorization_code\"\nFor token refresh: Must be \"refresh_token\"\n\nBased on client_id & grant_type, authn/authz is skipped for CLI endpoints.", + "smithy.api#documentation": "The OAuth 2.0 grant type. \"authorization_code\" for authorization code redemption, \"refresh_token\" for token refresh.", "smithy.api#pattern": "^(authorization_code|refresh_token)$" } }, "com.amazonaws.signin#IdToken": { "type": "string", "traits": { - "smithy.api#documentation": "ID token containing user identity information\n\nEncoded JWT token containing user identity claims and authentication context.\nReturned only in authorization code redemption responses (grant_type=authorization_code).\nContains user identity information such as ARN and other identity claims.", + "smithy.api#documentation": "ID token (JWT) containing user identity claims. Returned only for authorization code redemption.", "smithy.api#length": { "min": 1, "max": 4096 @@ -837,20 +1077,20 @@ "error": { "target": "com.amazonaws.signin#OAuth2ErrorCode", "traits": { - "smithy.api#documentation": "OAuth 2.0 error code indicating server error\nWill be SERVER_ERROR for internal server errors", + "smithy.api#documentation": "Will be server_error.", "smithy.api#required": {} } }, "message": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Detailed message explaining the server error\nMay include error details for debugging purposes", + "smithy.api#documentation": "The server error detail.", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Error thrown when an internal server error occurs\n\nHTTP Status Code: 500 Internal Server Error\n\nUsed for unexpected server-side errors that prevent request processing.", + "smithy.api#documentation": "The request failed because of an internal server error.", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -885,7 +1125,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "Grants permission to inspect the metadata and state of an OAuth 2.0\naccess token or refresh token\n\nImplements RFC 7662 OAuth 2.0 Token Introspection over a SigV4-authenticated\nendpoint. Inspects the metadata of an access_token or refresh_token issued\nby AWS Sign-In and returns the claims associated with it.\n\nInactive token semantics (RFC 7662 §2.2): when the supplied token is\nunknown, expired, revoked, malformed, or owned by a different account,\nthe response body is exactly { \"active\": false } with all other claims\nomitted.", + "smithy.api#documentation": "Inspects the metadata and active state of an OAuth 2.0 access token or refresh token.\n\nImplements RFC 7662 OAuth 2.0 Token Introspection over a SigV4-authenticated\nendpoint. Returns the claims associated with a token issued by AWS Sign-In.", "smithy.api#http": { "method": "POST", "uri": "/v1/introspect?x-amz-client-auth-method=iam" @@ -904,7 +1144,7 @@ "token": { "target": "com.amazonaws.signin#IntrospectionToken", "traits": { - "smithy.api#documentation": "The string value of the token to introspect.\nMay be either an access_token or a refresh_token issued by AWS Sign-In.", + "smithy.api#documentation": "The access token or refresh token issued by AWS Sign-In.", "smithy.api#jsonName": "token", "smithy.api#required": {} } @@ -912,7 +1152,7 @@ "tokenTypeHint": { "target": "com.amazonaws.signin#TokenTypeHint", "traits": { - "smithy.api#documentation": "Optional hint about the type of the token submitted for introspection.\nThe server uses this hint to optimize lookup, but still falls back to\nthe other token type on miss. Allowed values: access_token, refresh_token.", + "smithy.api#documentation": "An optional hint about the type of the token submitted for introspection, as defined in RFC 7662 §2.1.\nThe server checks both token types regardless of the hint. Allowed values: \"access_token\", \"refresh_token\".", "smithy.api#jsonName": "token_type_hint" } } @@ -928,7 +1168,7 @@ "active": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "Indicates whether the token is currently active. `true` only when the\ntoken is valid, has not expired, has not been revoked, and belongs to\nthe caller's account.", + "smithy.api#documentation": "Indicates whether the token is currently active. Returns \"true\" only when the token is valid,\nhas not expired, has not been revoked, and belongs to the caller's account.", "smithy.api#required": {} } }, @@ -942,7 +1182,7 @@ "userId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "User identifier matching sts:GetCallerIdentity's `UserId` field for the\ntoken's subject principal (e.g. \"AIDAEXAMPLE\" for an IAM user, or\n\"AROAEXAMPLE:session-name\" for an assumed role).", + "smithy.api#documentation": "User identifier matching the \"UserId\" field from \"sts:GetCallerIdentity\" for the token's subject principal.", "smithy.api#jsonName": "user_id" } }, @@ -977,14 +1217,14 @@ "sub": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Subject of the token: the IAM principal ARN. For assumed-role sessions,\nthis is the session ARN (matches sts:GetCallerIdentity's `Arn` field),\ne.g. arn:aws:sts::123456789012:assumed-role/MyRole/session-name.", + "smithy.api#documentation": "The IAM principal Amazon Resource Name (ARN). For assumed-role sessions, this is the session ARN.", "smithy.api#jsonName": "sub" } }, "aud": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Audience of the token: the OAuth resource the token is scoped to\n(for example, \"aws-mcp.amazonaws.com\"). Omitted for refresh tokens.", + "smithy.api#documentation": "The OAuth resource the token is scoped to. Omitted for refresh tokens.\nExample: \"aws-mcp.amazonaws.com\".", "smithy.api#jsonName": "aud" } }, @@ -1017,9 +1257,9 @@ } }, "resource": { - "target": "smithy.api#String", + "target": "com.amazonaws.signin#Resource", "traits": { - "smithy.api#documentation": "The OAuth resource the token is scoped to during Human OAuth flow.\nOnly present for refresh token introspection.", + "smithy.api#documentation": "The OAuth resource the token is scoped to. Only present for refresh token introspection.", "smithy.api#jsonName": "resource" } } @@ -1032,14 +1272,14 @@ "com.amazonaws.signin#IntrospectedTokenType": { "type": "string", "traits": { - "smithy.api#documentation": "Introspection response token_type value. Indicates which kind of token\nwas inspected.", + "smithy.api#documentation": "The token_type value in the introspection response.", "smithy.api#pattern": "^(access_token|refresh_token)$" } }, "com.amazonaws.signin#IntrospectionToken": { "type": "string", "traits": { - "smithy.api#documentation": "Token string submitted for introspection. May be an AWS Sign-In\naccess_token (prefix \"ASOA\") or refresh_token (prefix \"ASOR\").", + "smithy.api#documentation": "Token string submitted for introspection. May be an AWS Sign-In access token or refresh token.", "smithy.api#length": { "min": 1, "max": 4096 @@ -1048,6 +1288,58 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.signin#InvalidGrantException": { + "type": "structure", + "members": { + "error": { + "target": "com.amazonaws.signin#OAuth2ErrorCode", + "traits": { + "smithy.api#documentation": "Will be invalid_grant.", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The request failed because the provided grant is invalid or expired.", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.signin#InvalidScopeException": { + "type": "structure", + "members": { + "error": { + "target": "com.amazonaws.signin#OAuth2ErrorCode", + "traits": { + "smithy.api#documentation": "Will be invalid_scope.", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The request failed because the requested scope is invalid or exceeds the scope that can be granted.", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.signin#IssuedOAuthAccessTokenType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^urn:ietf:params:oauth:token-type:access_token$" + } + }, "com.amazonaws.signin#ListResourcePermissionStatements": { "type": "operation", "input": { @@ -1156,65 +1448,107 @@ "TOKEN_EXPIRED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Token has expired and needs to be refreshed", + "smithy.api#documentation": "Token has expired.", "smithy.api#enumValue": "TOKEN_EXPIRED" } }, "USER_CREDENTIALS_CHANGED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "User credentials have been changed", + "smithy.api#documentation": "User credentials have been changed.", "smithy.api#enumValue": "USER_CREDENTIALS_CHANGED" } }, "INSUFFICIENT_PERMISSIONS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Insufficient permissions to perform this operation", + "smithy.api#documentation": "Insufficient permissions to perform this operation.", "smithy.api#enumValue": "INSUFFICIENT_PERMISSIONS" } }, "AUTHCODE_EXPIRED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Authorization code has expired", + "smithy.api#documentation": "Authorization code has expired.", "smithy.api#enumValue": "AUTHCODE_EXPIRED" } }, "SERVER_ERROR": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Internal server error occurred", + "smithy.api#documentation": "Internal server error occurred.", "smithy.api#enumValue": "server_error" } }, "INVALID_REQUEST": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The request is missing a required parameter, includes an invalid parameter value, or is otherwise malformed", + "smithy.api#documentation": "The request is missing a required parameter, includes an invalid parameter value, or is otherwise malformed.", "smithy.api#enumValue": "INVALID_REQUEST" } }, "RESOURCE_NOT_FOUND": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Requested resource was not found", + "smithy.api#documentation": "Requested resource was not found.", "smithy.api#enumValue": "RESOURCE_NOT_FOUND" } }, "CONFLICT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Request conflicts with current state of the resource", + "smithy.api#documentation": "Request conflicts with the current state of the resource.", "smithy.api#enumValue": "CONFLICT" } }, "SERVICE_QUOTA_EXCEEDED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Request would cause a service quota to be exceeded", + "smithy.api#documentation": "Request would cause a service quota to be exceeded.", "smithy.api#enumValue": "SERVICE_QUOTA_EXCEEDED" } + }, + "OAUTH_UNSUPPORTED_GRANT_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported_grant_type" + } + }, + "OAUTH_INVALID_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid_request" + } + }, + "OAUTH_INVALID_GRANT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid_grant" + } + }, + "OAUTH_INVALID_SCOPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid_scope" + } + }, + "OAUTH_INVALID_TARGET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalid_target" + } + }, + "OAUTH_RATE_EXCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rate_exceeded" + } + }, + "OAUTH_SERVICE_UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_unavailable" + } } }, "traits": { @@ -1224,7 +1558,7 @@ "com.amazonaws.signin#OAuthAccessToken": { "type": "string", "traits": { - "smithy.api#documentation": "OAuth 2.0 access token (JWT) containing principal identity and resource scope.", + "smithy.api#documentation": "OAuth 2.0 access token containing principal identity and resource scope.", "smithy.api#length": { "min": 1, "max": 4096 @@ -1541,7 +1875,7 @@ "com.amazonaws.signin#RedirectUri": { "type": "string", "traits": { - "smithy.api#documentation": "Redirect URI for OAuth 2.0 flow validation\n\nThe same redirect URI used in the authorization request. This must match exactly\nwhat was sent in the original authorization request for security validation.", + "smithy.api#documentation": "The redirect URI from the authorization request. Must match the original request exactly.", "smithy.api#length": { "min": 1, "max": 2048 @@ -1551,7 +1885,7 @@ "com.amazonaws.signin#RefreshToken": { "type": "string", "traits": { - "smithy.api#documentation": "Encrypted refresh token with cnf.jkt\n\nThis is the encrypted refresh token returned from auth code redemption.\nThe token content includes cnf.jkt (SHA-256 thumbprint of the presented jwk).\nUsed in subsequent token refresh requests.", + "smithy.api#documentation": "The refresh token returned from authorization code redemption. Used in subsequent token refresh requests.", "smithy.api#length": { "min": 1, "max": 2048 @@ -1566,6 +1900,15 @@ "smithy.api#pattern": "^[a-z]{2}(-[a-z]+)+-\\d+$" } }, + "com.amazonaws.signin#Resource": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, "com.amazonaws.signin#ResourceNotFoundException": { "type": "structure", "members": { @@ -1593,7 +1936,7 @@ "com.amazonaws.signin#RevocationToken": { "type": "string", "traits": { - "smithy.api#documentation": "Refresh token string submitted for revocation. Must be an AWS Sign-In\nrefresh_token (prefix \"ASOR\").", + "smithy.api#documentation": "Refresh token string submitted for revocation.", "smithy.api#length": { "min": 1, "max": 4096 @@ -1632,7 +1975,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "Grants permission to revoke an OAuth 2.0 refresh token and its associated refresh tokens\n\nRevokes a refresh_token issued by AWS Sign-In, invalidating the entire token\nchain so that the refresh_token can no longer be used to mint new access_tokens.\n\nIdempotency: revoking an already-revoked, expired, or otherwise invalid token\nstill returns 200 OK with an empty body. Only the refresh_token type is accepted.", + "smithy.api#documentation": "Revokes an OAuth 2.0 refresh token and its associated token chain.", "smithy.api#http": { "method": "POST", "uri": "/v1/revoke?x-amz-client-auth-method=iam" @@ -1651,7 +1994,7 @@ "token": { "target": "com.amazonaws.signin#RevocationToken", "traits": { - "smithy.api#documentation": "The refresh_token to revoke. Must be a refresh_token issued by AWS\nSign-In (prefix \"ASOR\"); access_tokens are not accepted for revocation.", + "smithy.api#documentation": "The refresh token to revoke. Must be a refresh token issued by AWS Sign-In.\nAccess tokens are not accepted for revocation.", "smithy.api#jsonName": "token", "smithy.api#required": {} } @@ -1670,6 +2013,15 @@ "smithy.api#output": {} } }, + "com.amazonaws.signin#Scope": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, "com.amazonaws.signin#ServiceQuotaExceededException": { "type": "structure", "members": { @@ -1694,16 +2046,46 @@ "smithy.api#httpError": 402 } }, + "com.amazonaws.signin#ServiceUnavailableException": { + "type": "structure", + "members": { + "error": { + "target": "com.amazonaws.signin#OAuth2ErrorCode", + "traits": { + "smithy.api#documentation": "Will be service_unavailable.", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The request failed because a dependency is temporarily unavailable. You can retry the request.", + "smithy.api#error": "server", + "smithy.api#httpError": 503, + "smithy.api#retryable": {} + } + }, "com.amazonaws.signin#Signin": { "type": "service", "version": "2023-01-01", "operations": [ + { + "target": "com.amazonaws.signin#CreateBearerToken" + }, { "target": "com.amazonaws.signin#CreateOAuth2Token" }, { "target": "com.amazonaws.signin#CreateOAuth2TokenWithIAM" }, + { + "target": "com.amazonaws.signin#CreateOAuth2TokenWithTokenExchange" + }, { "target": "com.amazonaws.signin#DeleteConsoleAuthorizationConfiguration" }, @@ -1771,7 +2153,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "AWS Sign-In manages authentication for AWS services. This service provides\nsecure authentication flows for accessing AWS resources from the console and developer tools.", + "smithy.api#documentation": "AWS Sign-In manages authentication for AWS services. It implements OAuth 2.0, providing secure token exchange and refresh capabilities.", "smithy.api#title": "AWS Sign-In Service", "smithy.rules#endpointBdd": { "version": "1.1", @@ -4179,6 +4561,22 @@ "smithy.api#pattern": "^[A-Za-z0-9+/]{64}=?$" } }, + "com.amazonaws.signin#SubjectToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 20000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.signin#SubjectTokenType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^urn:ietf:params:oauth:token-type:.+$" + } + }, "com.amazonaws.signin#TargetId": { "type": "string", "traits": { @@ -4190,10 +4588,25 @@ "smithy.api#pattern": "^(\\d{12}|o-[a-z0-9]{10}|r-[0-9a-z]{4,32})$" } }, + "com.amazonaws.signin#TokenDuration": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Requested token lifetime in seconds, at least 300 (5 minutes).", + "smithy.api#range": { + "min": 300 + } + } + }, + "com.amazonaws.signin#TokenExchangeGrantType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^urn:ietf:params:oauth:grant-type:token-exchange$" + } + }, "com.amazonaws.signin#TokenExpiresIn": { "type": "integer", "traits": { - "smithy.api#documentation": "Token lifetime in seconds.\nValue is the minimum of session validity and 1 hour (3600 seconds).", + "smithy.api#documentation": "Token lifetime in seconds. The lesser of session validity and 3600 (1 hour).", "smithy.api#range": { "min": 1, "max": 3600 @@ -4203,14 +4616,14 @@ "com.amazonaws.signin#TokenType": { "type": "string", "traits": { - "smithy.api#documentation": "Token type parameter indicating credential usage\n\nA parameter which indicates to the client how the token must be used.\nValue is \"aws_sigv4\" (instead of typical \"Bearer\" for other OAuth systems)\nto indicate that the client must de-serialize the token and use it to generate a signature.", + "smithy.api#documentation": "The token type. \"aws_sigv4\" indicates the client must use the token to generate a SigV4 signature.", "smithy.api#pattern": "^aws_sigv4$" } }, "com.amazonaws.signin#TokenTypeHint": { "type": "string", "traits": { - "smithy.api#documentation": "Optional RFC 7662 §2.1 token_type_hint value. One of:\n- \"access_token\"\n- \"refresh_token\"", + "smithy.api#documentation": "Optional token_type_hint value, as defined in RFC 7662 §2.1. One of \"access_token\" or \"refresh_token\".", "smithy.api#pattern": "^(access_token|refresh_token)$" } }, @@ -4220,20 +4633,20 @@ "error": { "target": "com.amazonaws.signin#OAuth2ErrorCode", "traits": { - "smithy.api#documentation": "OAuth 2.0 error code indicating the specific type of error\nWill be INVALID_REQUEST for rate limiting scenarios", + "smithy.api#documentation": "Will be rate_exceeded.", "smithy.api#required": {} } }, "message": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Detailed message about the rate limiting\nMay include retry-after information or rate limit details", + "smithy.api#documentation": "Details about the rate limit.", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Error thrown when rate limit is exceeded\n\nHTTP Status Code: 429 Too Many Requests\n\nPossible OAuth2ErrorCode values:\n- INVALID_REQUEST: Rate limiting, too many requests, abuse prevention\n\nPossible causes:\n- Too many token requests from the same client\n- Rate limiting based on client_id or IP address\n- Abuse prevention mechanisms triggered\n- Service protection against excessive token generation", + "smithy.api#documentation": "The request failed because you exceeded the request rate limit for this operation.", "smithy.api#error": "client", "smithy.api#httpError": 429 } @@ -4244,20 +4657,20 @@ "error": { "target": "com.amazonaws.signin#OAuth2ErrorCode", "traits": { - "smithy.api#documentation": "OAuth 2.0 error code indicating validation failure\nWill be INVALID_REQUEST for validation errors", + "smithy.api#documentation": "The specific code depends on which validation failed.", "smithy.api#required": {} } }, "message": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "Detailed message explaining the validation failure\nProvides specific information about which validation failed", + "smithy.api#documentation": "The validation constraint that failed.", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Error thrown when request validation fails\n\nHTTP Status Code: 400 Bad Request\n\nUsed for request validation errors such as malformed parameters,\nmissing required fields, or invalid parameter values.", + "smithy.api#documentation": "The request failed because it contains a malformed, missing, or invalid parameter.", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -4269,4 +4682,4 @@ } } } -} \ No newline at end of file +}